From be4dd1de13b9bd99e2ac0d00ef91beed9a16cf06 Mon Sep 17 00:00:00 2001
From: LiarPrincess <4982138+LiarPrincess@users.noreply.github.com>
Date: Thu, 26 Oct 2023 15:35:19 +0200
Subject: [PATCH] In vain have I struggled. It will not do. My feelings will
not be repressed. You must allow me to tell you how ardently I admire and
love you.
---
.gitignore | 10 +
.swift-version | 1 +
.swiftlint.yml | 245 +
.vscode/launch.json | 24 +
.vscode/settings.json | 10 +
LICENSE-Hossam-Fahmy-tests | 1 +
LICENSE-Intel | 28 +
LICENSE-speleotrove-dectest | 33 +
Makefile | 74 +
Package.swift | 31 +
README.md | 238 +
Scripts/.gitignore | 1 +
Scripts/copy_interesting_intel_files.py | 136 +
.../DECIMAL_PROTOCOL_EXTENSION.swift | 667 +
Scripts/generate-src/DECIMAL_TEMPLATE.swift | 1294 +
Scripts/generate-src/__main__.py | 29 +
.../binary_floating_point_extensions.py | 92 +
.../binary_floating_point_tables.py | 296 +
.../binary_floating_point_tables.txt | 83696 ++++++++++++++++
Scripts/generate-src/common.py | 231 +
Scripts/generate-src/decimal_protocol.py | 687 +
Scripts/generate-src/decimals.py | 120 +
Scripts/generate-src/int_extensions.py | 98 +
Scripts/generate-src/wide_uint_types.py | 1414 +
Scripts/generate-tests/__main__.py | 68 +
Scripts/generate-tests/common.py | 66 +
Scripts/generate-tests/init_from_int_tests.py | 363 +
Scripts/generate-tests/intel/__init__.py | 230 +
Scripts/generate-tests/intel/fix_tests.py | 164 +
.../generate-tests/intel/parse_readtest_h.py | 318 +
.../generate-tests/intel/parse_readtest_in.py | 133 +
Scripts/generate-tests/intel/swift_code.py | 790 +
Scripts/generate-tests/intel/write_test.py | 204 +
.../speleotrove_dectest/__init__.py | 81 +
.../speleotrove_dectest/fix_tests.py | 53 +
.../speleotrove_dectest/parse_file.py | 296 +
.../speleotrove_dectest/swift_code.py | 605 +
.../speleotrove_dectest/write_test.py | 514 +
Scripts/generate-tests/to_int_tests.py | 277 +
Scripts/generate-tests/wide_uint_tests.py | 373 +
Sources/Decimal/Decimal+Add+Sub+Negate.swift | 631 +
.../Decimal/Decimal+BinaryFloatingPoint.swift | 998 +
.../Decimal+DecimalFloatingPoint.swift | 103 +
.../Decimal+DenselyPackedDecimal.swift | 135 +
Sources/Decimal/Decimal+Div.swift | 399 +
Sources/Decimal/Decimal+Dump.swift | 71 +
Sources/Decimal/Decimal+Equal+Compare.swift | 294 +
...cimal+FusedMultiplyAdd - unused code.swift | 718 +
.../Decimal/Decimal+FusedMultiplyAdd.swift | 917 +
Sources/Decimal/Decimal+Hash.swift | 48 +
Sources/Decimal/Decimal+Init.swift | 21 +
Sources/Decimal/Decimal+Int.swift | 292 +
Sources/Decimal/Decimal+LogB+ScaleB.swift | 211 +
Sources/Decimal/Decimal+Minimum+Maximum.swift | 157 +
Sources/Decimal/Decimal+Mul.swift | 119 +
Sources/Decimal/Decimal+Next.swift | 84 +
Sources/Decimal/Decimal+Pack+Unpack.swift | 559 +
Sources/Decimal/Decimal+Properties.swift | 169 +
Sources/Decimal/Decimal+Quantum.swift | 323 +
Sources/Decimal/Decimal+Rem.swift | 190 +
Sources/Decimal/Decimal+Round.swift | 285 +
Sources/Decimal/Decimal+SquareRoot.swift | 159 +
.../Decimal/Decimal+StaticProperties.swift | 120 +
Sources/Decimal/Decimal+String.swift | 509 +
Sources/Decimal/DecimalMixin.swift | 310 +
.../BinaryFloatingPoint+Decimal.swift | 473 +
.../Generated/BinaryFloatingPointTables.swift | 61531 ++++++++++++
Sources/Decimal/Generated/Decimal128.swift | 1313 +
Sources/Decimal/Generated/Decimal32.swift | 1397 +
Sources/Decimal/Generated/Decimal64.swift | 1355 +
.../Generated/DecimalFloatingPoint.swift | 2246 +
Sources/Decimal/Generated/Int+Decimal.swift | 240 +
Sources/Decimal/Generated/README.md | 2 +
Sources/Decimal/Generated/UInt128.swift | 795 +
Sources/Decimal/Generated/UInt256.swift | 995 +
.../Helpers/BinaryIntegerDecimal.swift | 98 +
.../DoubleWidthBinaryIntegerDecimal.swift | 86 +
Sources/Decimal/Helpers/Globals.swift | 158 +
Sources/Decimal/RoundingRule.swift | 35 +
Sources/Decimal/Status.swift | 107 +
.../Tables/Tables+DecimalDigitCount.swift | 382 +
.../Tables/Tables+DenselyPackedDecimal.swift | 185 +
.../Decimal/Tables/Tables+FactorCount.swift | 164 +
.../Decimal/Tables/Tables+PowersOf10.swift | 130 +
Sources/Decimal/Tables/Tables.swift | 1 +
Sources/test-hossam-fahmy/AllDecimals32.swift | 64 +
Sources/test-hossam-fahmy/Extensions.swift | 9 +
Sources/test-hossam-fahmy/FileSystem.swift | 69 +
Sources/test-hossam-fahmy/LineParser.swift | 35 +
Sources/test-hossam-fahmy/LineReader.swift | 137 +
Sources/test-hossam-fahmy/TestResult.swift | 31 +
Sources/test-hossam-fahmy/TestRunner.swift | 924 +
Sources/test-hossam-fahmy/Timer.swift | 28 +
Sources/test-hossam-fahmy/main.swift | 131 +
Test-suites/.gitignore | 11 +
Test-suites/Hossam-Fahmy-tests/.gitkeep | 0
Test-suites/IntelRDFPMathLib20U2/.gitkeep | 0
Test-suites/Oh-my-decimal-tests/.gitkeep | 0
Test-suites/speleotrove-dectest/.gitkeep | 0
Tests/DecimalTests/CodableTests.swift | 209 +
Tests/DecimalTests/Experiments.swift | 91 +
.../Generated/GeneratedInitFromIntTests.swift | 1109 +
.../Generated/GeneratedToIntTests.swift | 1506 +
.../Generated/GeneratedUInt128Tests.swift | 1391 +
.../Generated/GeneratedUInt256Tests.swift | 5137 +
Tests/DecimalTests/Generated/README.md | 2 +
Tests/DecimalTests/GlobalsTests.swift | 46 +
Tests/DecimalTests/HashableTests.swift | 251 +
.../Helpers/CartesianProduct.swift | 56 +
.../Helpers/CohortGenerator.swift | 58 +
Tests/DecimalTests/Helpers/DecimalTests.swift | 264 +
.../Helpers/RandomDecimalGenerator.swift | 88 +
Tests/DecimalTests/Helpers/extensions.swift | 9 +
Tests/DecimalTests/InitFromDecimalTests.swift | 48 +
Tests/DecimalTests/InitFromStringTests.swift | 506 +
.../Intel - generated/IntelAddTests.swift | 1030 +
.../Intel - generated/IntelCompareTests.swift | 4848 +
.../Intel - generated/IntelDivTests.swift | 763 +
.../Intel - generated/IntelEqualTests.swift | 1175 +
.../IntelFromBinaryFloatingPointTests.swift | 15016 +++
.../IntelFromDecimalTests.swift | 605 +
.../IntelFromDenselyPackedDecimalTests.swift | 511 +
.../Intel - generated/IntelFromIntTests.swift | 1082 +
.../IntelFromStringTests.swift | 303 +
.../IntelFusedMultiplyAddTests.swift | 1536 +
.../IntelLogScaleTests.swift | 2124 +
.../IntelMinMaxNumberTests.swift | 1313 +
.../Intel - generated/IntelMulTests.swift | 663 +
.../Intel - generated/IntelNextTests.swift | 301 +
.../Intel - generated/IntelOtherTests.swift | 505 +
.../IntelPropertyTests.swift | 1416 +
.../Intel - generated/IntelQuantumTests.swift | 575 +
.../Intel - generated/IntelRemTests.swift | 414 +
.../Intel - generated/IntelRoundTests.swift | 1302 +
.../IntelSquareRootTests.swift | 534 +
.../Intel - generated/IntelSubTests.swift | 592 +
.../IntelToBinaryFloatingPointTests.swift | 15951 +++
.../IntelToDenselyPackedDecimalTests.swift | 112 +
.../Intel - generated/IntelToIntTests.swift | 39029 +++++++
.../IntelToStringTests.swift | 145 +
.../IntelTotalOrderTests.swift | 611 +
.../Intel - generated/IntelUnaryTests.swift | 136 +
.../DecimalTests/Intel - generated/README.md | 2 +
.../Intel - helpers/IntelConstants.swift | 30 +
.../Intel - helpers/IntelMixin+Assert.swift | 431 +
.../IntelMixin+ConvertToIntel.swift | 148 +
.../Intel - helpers/IntelMixin+Parse.swift | 443 +
.../Intel - helpers/IntelMixin.swift | 42 +
Tests/DecimalTests/LogScaleTests.swift | 207 +
Tests/DecimalTests/PackTests.swift | 1242 +
Tests/DecimalTests/PropertiesTests.swift | 335 +
.../Speleotrove - generated/README.md | 2 +
.../SpeleotroveAddTests.swift | 2047 +
.../SpeleotroveCompareTests.swift | 2564 +
.../SpeleotroveDivTests.swift | 2232 +
.../SpeleotroveFusedMultiplyAddTests.swift | 2749 +
.../SpeleotroveInitFromStringTests.swift | 1124 +
.../SpeleotroveLogScaleTests.swift | 703 +
.../SpeleotroveMinMaxTests.swift | 2154 +
.../SpeleotroveMulTests.swift | 1014 +
.../SpeleotroveNextTests.swift | 1082 +
.../SpeleotroveOtherTests.swift | 1224 +
.../SpeleotrovePropertyTests.swift | 318 +
.../SpeleotroveQuantumTests.swift | 2001 +
.../SpeleotroveRemTests.swift | 2172 +
.../SpeleotroveRoundTests.swift | 420 +
.../SpeleotroveSubTests.swift | 1134 +
.../SpeleotroveTotalOrderTests.swift | 2534 +
.../SpeleotroveUnaryTests.swift | 262 +
.../SpeleotroveMixin+Assert.swift | 201 +
...peleotroveMixin+ConvertToSpeleotrove.swift | 316 +
.../SpeleotroveMixin+Parse.swift | 51 +
.../SpeleotroveMixin.swift | 382 +
.../DecimalTests/StaticPropertiesTests.swift | 236 +
Tests/DecimalTests/UnaryTests.swift | 92 +
175 files changed, 308202 insertions(+)
create mode 100644 .gitignore
create mode 100644 .swift-version
create mode 100644 .swiftlint.yml
create mode 100644 .vscode/launch.json
create mode 100644 .vscode/settings.json
create mode 100644 LICENSE-Hossam-Fahmy-tests
create mode 100755 LICENSE-Intel
create mode 100644 LICENSE-speleotrove-dectest
create mode 100644 Makefile
create mode 100644 Package.swift
create mode 100644 README.md
create mode 100644 Scripts/.gitignore
create mode 100644 Scripts/copy_interesting_intel_files.py
create mode 100644 Scripts/generate-src/DECIMAL_PROTOCOL_EXTENSION.swift
create mode 100644 Scripts/generate-src/DECIMAL_TEMPLATE.swift
create mode 100644 Scripts/generate-src/__main__.py
create mode 100644 Scripts/generate-src/binary_floating_point_extensions.py
create mode 100644 Scripts/generate-src/binary_floating_point_tables.py
create mode 100644 Scripts/generate-src/binary_floating_point_tables.txt
create mode 100644 Scripts/generate-src/common.py
create mode 100644 Scripts/generate-src/decimal_protocol.py
create mode 100644 Scripts/generate-src/decimals.py
create mode 100644 Scripts/generate-src/int_extensions.py
create mode 100644 Scripts/generate-src/wide_uint_types.py
create mode 100644 Scripts/generate-tests/__main__.py
create mode 100644 Scripts/generate-tests/common.py
create mode 100644 Scripts/generate-tests/init_from_int_tests.py
create mode 100644 Scripts/generate-tests/intel/__init__.py
create mode 100644 Scripts/generate-tests/intel/fix_tests.py
create mode 100644 Scripts/generate-tests/intel/parse_readtest_h.py
create mode 100644 Scripts/generate-tests/intel/parse_readtest_in.py
create mode 100644 Scripts/generate-tests/intel/swift_code.py
create mode 100644 Scripts/generate-tests/intel/write_test.py
create mode 100644 Scripts/generate-tests/speleotrove_dectest/__init__.py
create mode 100644 Scripts/generate-tests/speleotrove_dectest/fix_tests.py
create mode 100644 Scripts/generate-tests/speleotrove_dectest/parse_file.py
create mode 100644 Scripts/generate-tests/speleotrove_dectest/swift_code.py
create mode 100644 Scripts/generate-tests/speleotrove_dectest/write_test.py
create mode 100644 Scripts/generate-tests/to_int_tests.py
create mode 100644 Scripts/generate-tests/wide_uint_tests.py
create mode 100644 Sources/Decimal/Decimal+Add+Sub+Negate.swift
create mode 100644 Sources/Decimal/Decimal+BinaryFloatingPoint.swift
create mode 100644 Sources/Decimal/Decimal+DecimalFloatingPoint.swift
create mode 100644 Sources/Decimal/Decimal+DenselyPackedDecimal.swift
create mode 100644 Sources/Decimal/Decimal+Div.swift
create mode 100644 Sources/Decimal/Decimal+Dump.swift
create mode 100644 Sources/Decimal/Decimal+Equal+Compare.swift
create mode 100644 Sources/Decimal/Decimal+FusedMultiplyAdd - unused code.swift
create mode 100644 Sources/Decimal/Decimal+FusedMultiplyAdd.swift
create mode 100644 Sources/Decimal/Decimal+Hash.swift
create mode 100644 Sources/Decimal/Decimal+Init.swift
create mode 100644 Sources/Decimal/Decimal+Int.swift
create mode 100644 Sources/Decimal/Decimal+LogB+ScaleB.swift
create mode 100644 Sources/Decimal/Decimal+Minimum+Maximum.swift
create mode 100644 Sources/Decimal/Decimal+Mul.swift
create mode 100644 Sources/Decimal/Decimal+Next.swift
create mode 100644 Sources/Decimal/Decimal+Pack+Unpack.swift
create mode 100644 Sources/Decimal/Decimal+Properties.swift
create mode 100644 Sources/Decimal/Decimal+Quantum.swift
create mode 100644 Sources/Decimal/Decimal+Rem.swift
create mode 100644 Sources/Decimal/Decimal+Round.swift
create mode 100644 Sources/Decimal/Decimal+SquareRoot.swift
create mode 100644 Sources/Decimal/Decimal+StaticProperties.swift
create mode 100644 Sources/Decimal/Decimal+String.swift
create mode 100644 Sources/Decimal/DecimalMixin.swift
create mode 100644 Sources/Decimal/Generated/BinaryFloatingPoint+Decimal.swift
create mode 100644 Sources/Decimal/Generated/BinaryFloatingPointTables.swift
create mode 100644 Sources/Decimal/Generated/Decimal128.swift
create mode 100644 Sources/Decimal/Generated/Decimal32.swift
create mode 100644 Sources/Decimal/Generated/Decimal64.swift
create mode 100644 Sources/Decimal/Generated/DecimalFloatingPoint.swift
create mode 100644 Sources/Decimal/Generated/Int+Decimal.swift
create mode 100644 Sources/Decimal/Generated/README.md
create mode 100644 Sources/Decimal/Generated/UInt128.swift
create mode 100644 Sources/Decimal/Generated/UInt256.swift
create mode 100644 Sources/Decimal/Helpers/BinaryIntegerDecimal.swift
create mode 100644 Sources/Decimal/Helpers/DoubleWidthBinaryIntegerDecimal.swift
create mode 100644 Sources/Decimal/Helpers/Globals.swift
create mode 100644 Sources/Decimal/RoundingRule.swift
create mode 100644 Sources/Decimal/Status.swift
create mode 100644 Sources/Decimal/Tables/Tables+DecimalDigitCount.swift
create mode 100644 Sources/Decimal/Tables/Tables+DenselyPackedDecimal.swift
create mode 100644 Sources/Decimal/Tables/Tables+FactorCount.swift
create mode 100644 Sources/Decimal/Tables/Tables+PowersOf10.swift
create mode 100644 Sources/Decimal/Tables/Tables.swift
create mode 100644 Sources/test-hossam-fahmy/AllDecimals32.swift
create mode 100644 Sources/test-hossam-fahmy/Extensions.swift
create mode 100644 Sources/test-hossam-fahmy/FileSystem.swift
create mode 100644 Sources/test-hossam-fahmy/LineParser.swift
create mode 100644 Sources/test-hossam-fahmy/LineReader.swift
create mode 100644 Sources/test-hossam-fahmy/TestResult.swift
create mode 100644 Sources/test-hossam-fahmy/TestRunner.swift
create mode 100644 Sources/test-hossam-fahmy/Timer.swift
create mode 100644 Sources/test-hossam-fahmy/main.swift
create mode 100644 Test-suites/.gitignore
create mode 100644 Test-suites/Hossam-Fahmy-tests/.gitkeep
create mode 100644 Test-suites/IntelRDFPMathLib20U2/.gitkeep
create mode 100644 Test-suites/Oh-my-decimal-tests/.gitkeep
create mode 100644 Test-suites/speleotrove-dectest/.gitkeep
create mode 100644 Tests/DecimalTests/CodableTests.swift
create mode 100644 Tests/DecimalTests/Experiments.swift
create mode 100644 Tests/DecimalTests/Generated/GeneratedInitFromIntTests.swift
create mode 100644 Tests/DecimalTests/Generated/GeneratedToIntTests.swift
create mode 100644 Tests/DecimalTests/Generated/GeneratedUInt128Tests.swift
create mode 100644 Tests/DecimalTests/Generated/GeneratedUInt256Tests.swift
create mode 100644 Tests/DecimalTests/Generated/README.md
create mode 100644 Tests/DecimalTests/GlobalsTests.swift
create mode 100644 Tests/DecimalTests/HashableTests.swift
create mode 100644 Tests/DecimalTests/Helpers/CartesianProduct.swift
create mode 100644 Tests/DecimalTests/Helpers/CohortGenerator.swift
create mode 100644 Tests/DecimalTests/Helpers/DecimalTests.swift
create mode 100644 Tests/DecimalTests/Helpers/RandomDecimalGenerator.swift
create mode 100644 Tests/DecimalTests/Helpers/extensions.swift
create mode 100644 Tests/DecimalTests/InitFromDecimalTests.swift
create mode 100755 Tests/DecimalTests/InitFromStringTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelAddTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelCompareTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelDivTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelEqualTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelFromBinaryFloatingPointTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelFromDecimalTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelFromDenselyPackedDecimalTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelFromIntTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelFromStringTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelFusedMultiplyAddTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelLogScaleTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelMinMaxNumberTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelMulTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelNextTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelOtherTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelPropertyTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelQuantumTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelRemTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelRoundTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelSquareRootTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelSubTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelToBinaryFloatingPointTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelToDenselyPackedDecimalTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelToIntTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelToStringTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelTotalOrderTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/IntelUnaryTests.swift
create mode 100644 Tests/DecimalTests/Intel - generated/README.md
create mode 100755 Tests/DecimalTests/Intel - helpers/IntelConstants.swift
create mode 100644 Tests/DecimalTests/Intel - helpers/IntelMixin+Assert.swift
create mode 100644 Tests/DecimalTests/Intel - helpers/IntelMixin+ConvertToIntel.swift
create mode 100644 Tests/DecimalTests/Intel - helpers/IntelMixin+Parse.swift
create mode 100644 Tests/DecimalTests/Intel - helpers/IntelMixin.swift
create mode 100644 Tests/DecimalTests/LogScaleTests.swift
create mode 100644 Tests/DecimalTests/PackTests.swift
create mode 100644 Tests/DecimalTests/PropertiesTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/README.md
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveAddTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveCompareTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveDivTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveFusedMultiplyAddTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveInitFromStringTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveLogScaleTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveMinMaxTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveMulTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveNextTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveOtherTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotrovePropertyTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveQuantumTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveRemTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveRoundTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveSubTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveTotalOrderTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - generated/SpeleotroveUnaryTests.swift
create mode 100644 Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+Assert.swift
create mode 100644 Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+ConvertToSpeleotrove.swift
create mode 100644 Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+Parse.swift
create mode 100644 Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin.swift
create mode 100644 Tests/DecimalTests/StaticPropertiesTests.swift
create mode 100644 Tests/DecimalTests/UnaryTests.swift
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c0e48c1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,10 @@
+.DS_Store
+/.build
+/Packages
+.swiftpm/configuration/registries.json
+.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
+*.pyc
+default.profraw
+
+# Links to important Intel files
+/intel-lib
diff --git a/.swift-version b/.swift-version
new file mode 100644
index 0000000..819e07a
--- /dev/null
+++ b/.swift-version
@@ -0,0 +1 @@
+5.0
diff --git a/.swiftlint.yml b/.swiftlint.yml
new file mode 100644
index 0000000..c2c696d
--- /dev/null
+++ b/.swiftlint.yml
@@ -0,0 +1,245 @@
+included:
+ - Sources
+ - Tests
+
+excluded:
+ - Tests/DecimalTests/Generated
+ - Tests/DecimalTests/Intel - generated
+ - Tests/DecimalTests/Speleotrove - generated
+
+# Try to stay below 80
+line_length:
+ warning: 100
+ error: 120
+
+# We will list all of the SwiftLint rules deciding on a case-by-case basis
+# whether we want to enable them or not. Otherwise people with newer SwiftLint
+# version may be flooded with errors from rules that we have not checked against.
+only_rules:
+ # =============
+ # === Rules ===
+ # =============
+
+ # Here we are listing all of the non-optional rules.
+ # If some rule should be disabled then the line should be commented.
+
+ - block_based_kvo
+ - class_delegate_protocol
+ - closing_brace
+ - closure_parameter_position
+ - comma
+ - comment_spacing
+ - compiler_protocol_init
+ - computed_accessors_order
+ - control_statement
+ - custom_rules
+ - deployment_target
+ - discouraged_direct_init
+ - duplicate_enum_cases
+ - duplicate_imports
+ - dynamic_inline
+ - empty_enum_arguments
+ - empty_parameters
+ - empty_parentheses_with_trailing_closure
+ - for_where
+ - force_cast
+ - force_try
+ - generic_type_name
+ - implicit_getter
+ - inclusive_language
+ - inert_defer
+ - is_disjoint
+ - leading_whitespace
+ - legacy_cggeometry_functions
+ - legacy_constant
+ - legacy_constructor
+ - legacy_hashing
+ - legacy_nsgeometry_functions
+ - line_length
+ - mark
+ - multiple_closures_with_trailing_closure
+ - nesting
+ - no_fallthrough_only
+ - no_space_in_method_call
+ - notification_center_detachment
+ - nsobject_prefer_isequal
+ - opening_brace
+ - operator_whitespace
+ - orphaned_doc_comment
+ - private_over_fileprivate
+ - private_unit_test
+ - protocol_property_accessors_order
+ - reduce_boolean
+ - redundant_discardable_let
+ - redundant_objc_attribute
+ - redundant_optional_initialization
+ - redundant_set_access_control
+ - redundant_string_enum_value
+ - redundant_void_return
+ - return_arrow_whitespace
+ - shorthand_operator
+ - statement_position
+ - superfluous_disable_command
+ - switch_case_alignment
+ - syntactic_sugar
+ - todo
+ - trailing_newline
+ - trailing_semicolon
+ - trailing_whitespace
+ - unneeded_break_in_switch
+ - unused_capture_list
+ - unused_closure_parameter
+ - unused_control_flow_label
+ - unused_enumerated
+ - unused_optional_binding
+ - unused_setter_value
+ - valid_ibinspectable
+ - vertical_parameter_alignment
+ - vertical_whitespace
+ - void_return
+ - weak_delegate
+ - xctfail_message
+
+ # ==============================
+ # === Enabled optional rules ===
+ # ==============================
+
+ # This may seem like a lot, but basically we enable all of the optional rules
+ # that do not break existing code.
+
+ - anyobject_protocol
+ - array_init
+ - attributes
+ - closure_body_length
+ - closure_end_indentation
+ - closure_spacing
+ - collection_alignment
+ - contains_over_filter_count
+ - contains_over_filter_is_empty
+ - contains_over_first_not_nil
+ - contains_over_range_nil_comparison
+ - convenience_type
+ - discouraged_assert
+ - discouraged_object_literal
+ - discouraged_optional_boolean
+ - discouraged_optional_collection
+ - empty_collection_literal
+ - empty_count
+ - empty_string
+ - empty_xctest_method
+ - enum_case_associated_values_count
+ - explicit_init
+ - explicit_self
+ - fallthrough
+ - fatal_error_message
+ - file_header
+ - first_where
+ - flatmap_over_map_reduce
+ - force_unwrapping
+ - function_default_parameter_at_end
+ - identical_operands
+ - implicitly_unwrapped_optional
+ - joined_default_parameter
+ - last_where
+ - legacy_multiple
+ - legacy_objc_type # we don't use Objective-C, but why not?
+ - legacy_random
+ - let_var_whitespace
+ - literal_expression_end_indentation
+ - lower_acl_than_parent
+ - modifier_order
+ - multiline_arguments
+ - multiline_arguments_brackets # we sometimes put '(' at the same line as call
+ - multiline_function_chains
+ - multiline_literal_brackets
+ - multiline_parameters
+ - multiline_parameters_brackets # we sometimes put '(' at the same line as 'func' declaration
+ - nimble_operator
+ - no_extension_access_modifier
+ - object_literal
+ - operator_usage_whitespace
+ - optional_enum_case_matching
+ - overridden_super_call
+ - override_in_extension
+ - pattern_matching_keywords
+ - prefer_self_type_over_type_of_self
+ - prefer_zero_over_explicit_init
+ - private_action
+ - private_outlet
+ - prohibited_interface_builder
+ - prohibited_super_call
+ - quick_discouraged_call
+ - quick_discouraged_focused_test
+ - quick_discouraged_pending_test
+ - raw_value_for_camel_cased_codable_enum # we don't use 'Codable', but why not
+ - reduce_into
+ - redundant_nil_coalescing
+ - redundant_type_annotation
+ - required_enum_case
+ - single_test_class
+ - sorted_first_last
+ - static_operator
+ - toggle_bool
+ - trailing_closure
+ - unavailable_function
+ - unneeded_parentheses_in_closure_argument
+ - unowned_variable_capture
+ - untyped_error_in_catch
+ - unused_declaration
+ - unused_import
+ - vertical_parameter_alignment_on_call
+ - vertical_whitespace_closing_braces
+ - xct_specific_matcher
+ - yoda_condition
+
+ # ===================
+ # === Maybe later ===
+ # ===================
+
+ # - missing_docs
+
+ # ===============================
+ # === Disabled optional rules ===
+ # ===============================
+
+ # - balanced_xctest_lifecycle # this does not make sense for us
+ # - colon # align properties
+ # - conditional_returns_on_newline # Very often we do 'if X { return Y }'
+ # - cyclomatic_complexity # too annoying
+ # - discarded_notification_center_observer # we do not use NotificationCenter
+ # - expiring_todo # just use TODO, we do not have deadlines
+ # - explicit_acl # we don't need acl in tests
+ # - explicit_enum_raw_value # 'String' enums do not need explicit value
+ # - explicit_top_level_acl # this one requires us to put acl before 'extension XXX'
+ # - explicit_type_interface # this is weird
+ # - extension_access_modifier
+ # - file_length # too limiting
+ # - file_name # we heavily use extensions for single type
+ # - file_name_no_space # we have tons of those
+ # - file_types_order # declare helper type near usage
+ # - function_body_length # too limiting
+ # - function_parameter_count # too limiting
+ # - ibinspectable_in_extension # only for iOS
+ # - identifier_name # annoying
+ # - implicit_return # Cool for properties, not cool for functions
+ # - indentation_width # breaks when we have arguments/parameters in multiple lines
+ # - large_tuple
+ # - no_grouping_extension
+ # - nslocalizedstring_key # only for iOS
+ # - nslocalizedstring_require_bundle # only for iOS
+ # - number_separator # We have SwiftFormat for this
+ # - prefer_nimble # We are using 'XCTAssert'
+ # - prefixed_toplevel_constant
+ # - private_subject # we do not use 'Combine'
+ # - required_deinit
+ # - sorted_imports # use 'Scripts/sort_swift_imports'
+ # - strict_fileprivate # this one does not work properly?
+ # - strong_iboutlet # only for iOS
+ # - switch_case_on_newline # 'case let .error(e): return .error(e)' is an Violet idiom
+ # - test_case_accessibility # We sometimes create class hierarchy
+ # - trailing_comma # avoid git blame when adding new value
+ # - type_body_length # too limiting
+ # - type_contents_order
+ # - type_name
+ # - vertical_whitespace_between_cases
+ # - vertical_whitespace_opening_braces
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..54f5de9
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,24 @@
+{
+ "configurations": [
+ {
+ "type": "lldb",
+ "request": "launch",
+ "sourceLanguages": ["swift"],
+ "name": "Debug test-hossam-fahmy",
+ "program": "${workspaceFolder:oh-my-decimal}/.build/debug/test-hossam-fahmy",
+ "args": ["Test-suites/Hossam-Fahmy-tests", "Test-suites/Oh-my-decimal-tests"],
+ "cwd": "${workspaceFolder:oh-my-decimal}",
+ "preLaunchTask": "swift: Build Debug test-hossam-fahmy"
+ },
+ {
+ "type": "lldb",
+ "request": "launch",
+ "sourceLanguages": ["swift"],
+ "name": "Release test-hossam-fahmy",
+ "program": "${workspaceFolder:oh-my-decimal}/.build/release/test-hossam-fahmy",
+ "args": ["Test-suites/Hossam-Fahmy-tests", "Test-suites/Oh-my-decimal-tests"],
+ "cwd": "${workspaceFolder:oh-my-decimal}",
+ "preLaunchTask": "swift: Build Release test-hossam-fahmy"
+ }
+ ]
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..b176621
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,10 @@
+{
+ "files.exclude": {
+ "IntelRDFPMathLib20U2/LIBRARY/*.o": true
+ },
+ "cSpell.words": ["libbid", "significand", "Speleotrove"],
+ "python.formatting.provider": "none",
+ "[python]": {
+ "editor.defaultFormatter": "ms-python.black-formatter"
+ }
+}
diff --git a/LICENSE-Hossam-Fahmy-tests b/LICENSE-Hossam-Fahmy-tests
new file mode 100644
index 0000000..0801bec
--- /dev/null
+++ b/LICENSE-Hossam-Fahmy-tests
@@ -0,0 +1 @@
+The files provided below with test vectors for the decimal FP operations are copyrighted to Amr Sayed-Ahmed and Hossam A. H. Fahmy. They are provided as is without any implied warranties. The persons who download the files are free to use them for any purpose under their own responsibilities. The copyright owners provide the files in the hope that they will be useful to others but give no guarantees. We would appreciate if you reference our work and give us credit for it.
diff --git a/LICENSE-Intel b/LICENSE-Intel
new file mode 100755
index 0000000..c39a3f9
--- /dev/null
+++ b/LICENSE-Intel
@@ -0,0 +1,28 @@
+Copyright (c) 2018, Intel Corp.
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ his list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/LICENSE-speleotrove-dectest b/LICENSE-speleotrove-dectest
new file mode 100644
index 0000000..a34d793
--- /dev/null
+++ b/LICENSE-speleotrove-dectest
@@ -0,0 +1,33 @@
+ICU License - ICU 1.8.1 and later
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1995-2005 International Business Machines Corporation and others
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
+
+--------------------------------------------------------------------------------
+All trademarks and registered trademarks mentioned herein are the property of their respective owners.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..6f43d08
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,74 @@
+SWIFT_BUILD_FLAGS_RELEASE=--configuration release -Xswiftc -gnone -Xswiftc -O
+
+.PHONY: all
+all: build
+
+# ==================
+# == Usual things ==
+# ==================
+
+.PHONY: build build-r test test-hossam-fahmy x run clean
+
+build:
+ swift build --build-tests
+
+build-r:
+ swift build $(SWIFT_BUILD_FLAGS_RELEASE)
+
+test:
+ swift test --parallel
+
+# Run tests from: http://eece.cu.edu.eg/~hfahmy/arith_debug
+test-hossam-fahmy:
+ swift build --product test-hossam-fahmy $(SWIFT_BUILD_FLAGS_RELEASE)
+ @echo "--------------------------------------------------------------------------------"
+ @.build/release/test-hossam-fahmy \
+ "Test-suites/Hossam-Fahmy-tests" \
+ "Test-suites/Oh-my-decimal-tests"
+
+# Run only the tests related to functionality that you are currently working on.
+# Most of the time the workflow is: 'make x', 'make x', 'make x', 'make test'.
+x:
+ swift test --filter IntelAddSubNegateTests
+
+# Run the Experiments.test_main.
+# This is the 'playground' used for ad-hoc tests when writing the library.
+run:
+ swift test --filter DecimalTests.Experiments/test_main
+
+clean:
+ swift package clean
+
+# ============
+# === Code ===
+# ============
+
+.PHONY: gen intel-copy
+
+# Generate code.
+gen:
+ python3 \
+ Scripts/generate-src \
+ "Sources/Decimal/Generated"
+
+ python3 \
+ Scripts/generate-tests \
+ "Test-suites/IntelRDFPMathLib20U2/TESTS" \
+ "Test-suites/speleotrove-dectest" \
+ "Tests/DecimalTests"
+
+# Create a directory with links to the most important Intel files.
+intel-copy:
+ python3 \
+ Scripts/copy_interesting_intel_files.py \
+ "Test-suites/IntelRDFPMathLib20U2" \
+ "intel-lib"
+
+# =================
+# == Lint/format ==
+# =================
+
+.PHONY: lint
+
+lint:
+ swiftlint lint
diff --git a/Package.swift b/Package.swift
new file mode 100644
index 0000000..2da3a9a
--- /dev/null
+++ b/Package.swift
@@ -0,0 +1,31 @@
+// swift-tools-version: 5.5
+
+import PackageDescription
+
+let package = Package(
+ name: "Decimal",
+ products: [
+ .library(name: "Decimal", targets: ["Decimal"]),
+ .executable(name: "test-hossam-fahmy", targets: ["test-hossam-fahmy"])
+ ],
+ targets: [
+ .target(
+ name: "Decimal",
+ exclude: ["Generated/README.md"]
+ ),
+ // Run tests from: http://eece.cu.edu.eg/~hfahmy/arith_debug
+ .executableTarget(
+ name: "test-hossam-fahmy",
+ dependencies: ["Decimal"]
+ ),
+ .testTarget(
+ name: "DecimalTests",
+ dependencies: ["Decimal"],
+ exclude: [
+ "Generated/README.md",
+ "Intel - generated/README.md",
+ "Speleotrove - generated/README.md"
+ ]
+ )
+ ]
+)
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7d76b56
--- /dev/null
+++ b/README.md
@@ -0,0 +1,238 @@
+Oh-my-decimal is a weird Frankenstein's monster that combines:
+- decimal from IEEE 754 2008
+- `Swift.Double`
+
+If `Swift.Double` overrides the standard then `Swift.Double` behavior is implemented with the following exceptions:
+
+- sign of `sNaN` follows the same rules as sign of `qNaN` - this is not the case for `Swift.Double`. Note that while the creation of `sNaN` (`copy`, `copySign`, `scaleB` etc.) will give `sNaN`, most of the arithmetic operations will still return `qNaN` with `invalidOperation` flag raised.
+
+- value returned by the `significand` property is always positive. In Swift `(-Double.nan).significand` will return `-nan`. This is needed to make the `scaleB` axiom work: `let y = F(sign: x.sign, exponent: x.exponent, significand: x.significand)` then `x` and `y` should have the same value (for `NaN` that would be the same sign, signaling bit and payload). Note that:
+ - `oh-my-decimal` does not implement `FloatingPoint` protocol from which this requirement comes from.
+ - both `oh-my-decimal` and `Swift.Double` will return `sNaN` if the `significand` argument of `scaleB` is `sNaN`. Standard would return `qNaN` and raise `invalidOperation`.
+
+- `minimum/maximum`
+ - `oh-my-decimal` implements the standard 2008: if one of the operands is `sNaN` then the result is a `NaN` with `invalidOperation` raised.
+ - standard 2019 introduces new operations as there was [a whole debate](https://grouper.ieee.org/groups/msc/ANSI_IEEE-Std-754-2019/background/minNum_maxNum_Removal_Demotion_v3.pdf) about the corner cases of 2008.
+ - [Swift documentation](https://developer.apple.com/documentation/swift/double/minimum(_:_:)) says: "If both x and y are NaN, or either x or y is a signaling NaN, the result is NaN", with a link to the standard 2008. In practice for `sNaN` it returns the non-NaN operand.
+
+- no `.awayFromZero` rounding - this is trivial to implement, but only [speleotrove](https://speleotrove.com/decimal/) contains tests for it (they call it `round-up`). Since rounding is present in most of the operations, a single test suite is not enough to be fully sure that everything works correctly. In `oh-my-decimal` most important things are covered by: [Intel](https://www.intel.com/content/www/us/en/developer/articles/tool/intel-decimal-floating-point-math-library.html), [Speleotrove](https://speleotrove.com/decimal/), [Hossam A. H. Fahmy](http://eece.cu.edu.eg/~hfahmy/arith_debug/) and [oh-my-decimal-tests](https://github.com/LiarPrincess/Oh-my-decimal-tests) tests. Also, IEEE 754 does not require this rounding mode, so 🤷.
+
+- missing protocols:
+ - `FloatingPoint` - we have our own `DecimalFloatingPoint`.
+ - `ExpressibleByFloatLiteral` - Swift converts to `Float80`/`Double` and then converts to a number. This conversion may not be exact, so it is basically a random number generator.
+ - `Strideable` - really quickly it would break the Sterbenz lemma: `y/2 < x < 2y`. What is the distance between `greatestFiniteMagnitude` and `leastNormalMagnitude`?
+ - `Random` - apart from a few specific input ranges it would not do what user wants:
+ - simple random between 0 and 10 would be skewed towards smaller numbers
+ because more of them are representable (tons of possible negative exponents).
+ - if we generated truly random (infinitely precise) value and rounded then
+ bigger numbers would be more common (they have bigger ulp).
+
+Examples (Intel, this library was not tested on Apple silicon):
+
+```Swift
+// Container for IEEE 754 flags: inexact, invalidOperation etc.
+var status = DecimalStatus()
+
+// Standard: nan + invalidOperation
+// Swift: nan
+print(Decimal64.signalingNaN.nextUp(status: &status)) // nan + invalidOperation 🟢
+print(Double.signalingNaN.nextUp) // nan 🟢
+status.clearAll()
+
+// Standard: nan + invalidOperation
+// Swift: nan
+print(Decimal64.signalingNaN + Decimal64.signalingNaN) // nan 🟢
+print(Decimal64.signalingNaN.adding(Decimal64.signalingNaN, rounding: .towardZero, status: &status)) // nan + invalidOperation 🟢
+print(Double.signalingNaN + Double.signalingNaN) // nan 🟢
+status.clearAll()
+
+// Standard: nan + invalidOperation
+// Swift: https://www.youtube.com/watch?v=nptj1uWFy5s
+print((-Decimal64.signalingNaN).magnitude) // snan 🔴
+print((-Double.signalingNaN).magnitude) // snan 🔴
+
+// 'scaleB' axiom
+let d1 = -Decimal64.nan
+print(Decimal64(sign: d1.sign, exponent: 0, significand: d1.significand)) // -nan 🟢
+let d2 = -Double.nan
+print(Double(sign: d2.sign, exponent: 0, significand: d2.significand)) // nan 🔴
+
+// Standard: canonicalized number
+// Swift: number
+print(Decimal64.minimum(Decimal64.nan, 1, status: &status)) // 1E+0 🟢
+print(Double.minimum(Double.nan, 1)) // 1.0 🟢
+
+// Standard: nan + invalidOperation
+// Swift: number
+print(Decimal64.minimum(1, Decimal64.signalingNaN, status: &status)) // nan + invalidOperation 🟢
+print(Double.minimum(1, Double.signalingNaN)) // 1.0 🔴
+```
+
+## Branches
+- `mr-darcy` (this branch) - Swift implementation.
+- `mr-bingley` - wrapper for [Intel library](https://www.intel.com/content/www/us/en/developer/articles/tool/intel-decimal-floating-point-math-library.html). It has `pow`, but `DecimalStatus` is not publicly available.
+
+## Code
+
+**`Sources/Decimal`**
+
+- `Generated` - code generated by Python scripts.
+ - `Decimal32`
+ - `Decimal64`
+ - `Decimal128`
+ - `DecimalFloatingPoint` - dem protocol.
+
+- `DecimalMixin` - internal protocol on which every operation is defined. All of the methods from `DecimalXX` types will eventually call a method from `DecimalMixin`. Methods start with '`_`' to avoid name clashes with the `public` methods exported from `DecimalXX` types.
+
+- `DecimalFloatingPointRoundingRule` - similar to `FloatingPointRoundingRule` but without `awayFromZero` - not required by IEEE 754, not enough test cases to guarantee correctness.
+
+- `DecimalStatus` - holds IEEE 754 flags: `isInvalidOperation`, `isDivisionByZero`, `isOverflow`, `isUnderflow`, and `isInexact`. Lightweight, you can create as many statuses as you want, they are completely independent. Usually the last argument:
+
+ ```Swift
+ public func adding(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self { … }
+ ```
+
+**`Sources/test-hossam-fahmy`** - app to run `Hossam-Fahmy-tests` and `Oh-my-decimal-tests`. Use `make test-hossam-fahmy` to run in RELEASE mode. It finishes in ~10min on Intel Pentium G4560. Probably faster if you have better CPU, this thing eats CPU cores like candies.
+
+**`Tests/DecimalTests`**
+- `Generated` - unit tests generated by Python scripts.
+- `Intel - generated` - unit tests generated from Intel test suite (`Test-suites/IntelRDFPMathLib20U2`).
+- `Speleotrove - generated` - unit tests generated from [Speleotrove](https://speleotrove.com/decimal/) test suite (`Test-suites/speleotrove-dectest`).
+
+**`Test-suites`**
+
+- `IntelRDFPMathLib20U2` - put [Intel decimal](https://www.intel.com/content/www/us/en/developer/articles/tool/intel-decimal-floating-point-math-library.html) here. Or not. This is only used for generating unit tests. Use `make gen` to re-generate and `make test` to run.
+
+- `speleotrove-dectest` - put [Speleotrove](https://speleotrove.com/decimal/) test suite here. Or not. This is only used for generating unit tests. Use `make gen` to re-generate and `make test` to run.
+
+- `Hossam-Fahmy-tests` - put [Hossam A. H. Fahmy test suite](http://eece.cu.edu.eg/~hfahmy/arith_debug/) here. Use `make test-hossam-fahmy` to run.
+
+- `Oh-my-decimal-tests` - put [oh-my-decimal-test-suite](https://github.com/LiarPrincess/Oh-my-decimal-tests) here. Use `make test-hossam-fahmy` to run.
+
+**`Scripts`** - Python code generators. Use `make gen` to run.
+
+## Makefile
+
+- `make build` - …?
+- `make test` - run unit tests.
+- `make test-hossam-fahmy` - run `Hossam-Fahmy-tests` and `Oh-my-decimal-tests` tests.
+- `make x` - run a subset of unit tests. Remember to modify the `Makefile` to re-define what this subset is.
+- `make run` - run `Experiments.test_main` unit test. This is the “playground” used for ad-hoc tests when writing the library.
+- `make gen` - run Python scripts to generate code.
+- `make intel-copy` - create a directory with links to the most important Intel files.
+
+Most of the time the workflow is: `make x`, `make x`, `make x`, `make test`, and finally `make test-hossam-fahmy`.
+
+## Missing from IEEE 754
+
+- HexCharacter - `Swift.Double` actually has this, but it is not widely used and I am not into writing parsers.
+ - convertFrom
+ - convertTo
+- compareQuiet
+ - Ordered
+ - Unordered
+- compareSignaling - tiny modification of `compareQuiet` that can be added in `extension` if user so desires.
+ - Equal
+ - NotEqual
+ - Greater
+ - GreaterEqual
+ - GreaterUnordered
+ - NotGreater
+ - Less
+ - LessEqual
+ - LessUnordered
+ - NotLess
+
+Side note: for compare operations you want to read IEEE 754 2019 instead of 2008. The content is the same, but the language is more approachable.
+
+## Differences between IEEE 754 and `oh-my-decimal`
+
+| | IEEE 754 | Oh-my-decimal |
+|----------|----------|---------------|
+| Unary `+`
Unary `-`
`magnitude`
`copy`
`copySign`
`init(sign:exponent:significand:rounding:status:)` (scaleB) | `sNaN` returns `NaN` and raises `invalidOperation`. | `sNaN` returns `sNaN`, no flags raised. |
+
+Maybe something else, but in general it follows `Swift.Double`, so you know what to expect.
+
+## Do NOT use
+
+| Operation | Reason |
+|-----------|--------|
+| Cute operators like `*` or `/`
(maybe even `+` or `-`) | Use the overloads with the `rounding` argument. Bonus points for using `status`. |
+|`addingProduct`
(fused multiply add, FMA)| Most of the time you actually want the intermediate rounding.|
+|Binary floating point interop| Bullies from IEEE forced us to implement this (`formatOf-convertFormat(source)` operation). **[NEVER EVER](https://www.youtube.com/watch?v=WA4iX5D9Z64) USE THIS THINGIE. MASSIVE 🚩 WHEN YOU SEE SOMEBODY DOING THIS.**|
+|`Decimal128._UInt128`| This is not a general purpose `UInt128`. It works for `Decimal`, but it may not work in your specific case. No guarantees.|
+
+## Renames
+
+- `round(decimalDigitCount:)` = `quantized`
+ ```Swift
+ let d = Decimal128("123.456789")!
+ let precision = Decimal128("0.01")!
+ var status = DecimalStatus()
+ let result = d.quantized(to: precision, rounding: .towardZero, status: &status)
+ print(result, status) // 12345E-2, isInexact
+ status.clear(.isInexact)
+
+ // Inexact flag will not be raised if the result is… well… exact.
+ let d2 = Decimal128("123.450000")!
+ let result2 = d2.quantized(to: precision, rounding: .towardZero, status: &status)
+ print(result2, status) // 12345E-2, empty
+
+ // But remember that you can't store more digits than supported by a given format.
+ // Doing so will result in 'nan' with 'InvalidOperation' raised.
+ // For example 'Decimal32' can store only 7 significand digits:
+ let d32 = Decimal32("1234567")!
+ let precision32 = Decimal32("0.1")!
+ let result32 = d32.quantized(to: precision32, rounding: .towardZero, status: &status)
+ print(result32, status) // nan, isInvalidOperation
+ ```
+
+- multiply by power of 10 = `init(sign:exponent:significand:rounding:status:)` (also known as `scaleB`)
+
+ ```Swift
+ let d = Decimal64("1234")!
+ var status = DecimalStatus()
+ let result = Decimal64(sign: .plus, exponent: 20, significand: d, rounding: .towardZero, status: &status)
+ print(d) // 1234E+0
+ print(result, status) // 1234E+20, DecimalStatus()
+ ```
+
+## Contributions etc.
+
+Oh-my-decimal is feature complete, no new functionalities are planned. At some point I may add `pow` with `Int` argument, but probably not…
+
+Do not submit any of the following PRs - they will NOT be merged:
+- `pow` with `Int` argument - I want to write this myself.
+- PeRfOrMaNcE - especially any of the `@inlinable/usableFromInline` things. Just don't.
+
+## Code style
+
+- 2-space indents and no tabs at all
+- 80 characters per line
+ - You will get a [SwiftLint](https://github.com/realm/SwiftLint) warning if you go over 100.
+ - Over 120 will result in a compilation error.
+ - If 80 doesn't give you enough room to code, your code is too complicated - consider using subroutines (advice from [PEP-7](https://www.python.org/dev/peps/pep-0007/)).
+- Required `self` in methods and computed properties
+ - All of the other method arguments are named, so we will require it for this one.
+ - `Self`/`type name` for static methods is recommended, but not required.
+ - I’m sure that they will depreciate the implicit `self` in the next major Swift version 🤞. All of that source breakage is completely justified.
+- No whitespace at the end of the line
+ - Some editors may remove it as a matter of routine and we don’t want weird git diffs.
+- (pet peeve) Try to introduce a named variable for every `if` condition.
+ - You can use a single logical operator - something like `if !isPrincess` or `if isDisnepCharacter && isPrincess` is allowed.
+ - Do not use `&&` and `||` in the same expression, create a variable for one of them.
+ - If you need parens then it is already too complicated.
+
+## License
+
+Oh-my-decimal is distributed under the “GNU General Public License”. You are NOT permitted to copy the code and distribute it solely under MIT.
+
+`Tests/DecimalTests/Intel - generated` is generated from [Intel code](https://www.intel.com/content/www/us/en/developer/articles/tool/intel-decimal-floating-point-math-library.html). This makes it dual-licensed. Intel license is available in `LICENSE-Intel` file.
+
+`Tests/DecimalTests/Speleotrove - generated` is generated from [Speleotrove test suite](https://speleotrove.com/decimal/). This makes it dual-licensed. Speleotrove license is available in `LICENSE-speleotrove-dectest` file.
+
+`Hossam-Fahmy-tests` are not a part of this repository, but just for completeness their license is available in `LICENSE-Hossam-Fahmy-tests` file.
diff --git a/Scripts/.gitignore b/Scripts/.gitignore
new file mode 100644
index 0000000..6b79bbf
--- /dev/null
+++ b/Scripts/.gitignore
@@ -0,0 +1 @@
+/intel_scratchpad.out
diff --git a/Scripts/copy_interesting_intel_files.py b/Scripts/copy_interesting_intel_files.py
new file mode 100644
index 0000000..dcf70d7
--- /dev/null
+++ b/Scripts/copy_interesting_intel_files.py
@@ -0,0 +1,136 @@
+"""
+Select interesting files from Intel library and link them in separate dir.
+"""
+
+import os
+import sys
+import pathlib
+
+# Interesting files
+# Format: INPUT_FILE [OUTPUT_PATH]
+FILES = """
+bid_functions.h
+bid_internal.h
+bid_conf.h
+
+bid_decimal_data.c bid_decimal_data_TABLES.c
+bid_convert_data.c bid_convert_data_TABLES2.c
+bid128.c bid128_bid_nr_digits.c
+
+bid{bit_width}_noncomp.c bid{bit_width}_noncomp_PROPERTIES.c
+
+bid{bit_width}_next.c next/
+
+bid{bit_width}_compare.c compare/
+bid{bit_width}_minmax.c compare/
+
+bid{bit_width}_logb.c logb/
+bid{bit_width}_logbd.c logb/
+bid{bit_width}_scalb.c logb/
+bid{bit_width}_scalbl.c logb/
+bid{bit_width}_frexp.c logb/
+
+bid_round.c round/
+bid{bit_width}_round_integral.c round/
+
+bid{bit_width}_add.c op/
+bid{bit_width}_mul.c op/
+bid{bit_width}_div.c op/
+bid{bit_width}_rem.c op/
+bid_inline_add.h op/
+bid_div_macros.h op/
+
+bid{bit_width}_fma.c op_special/
+bid{bit_width}_pow.c op_special/
+bid{bit_width}_sqrt.c op_special/
+bid_sqrt_macros.h op_special/
+
+bid{bit_width}_string.c string/
+
+bid{bit_width}_quantumd.c quantum/
+bid{bit_width}_quantize.c quantum/
+
+bid32_to_bid64.c convert_decimal/
+bid32_to_bid128.c convert_decimal/
+bid64_to_bid128.c convert_decimal/
+
+bid{bit_width}_to_int8.c convert_int/
+bid{bit_width}_to_int16.c convert_int/
+bid{bit_width}_to_int32.c convert_int/
+bid{bit_width}_to_int64.c convert_int/
+bid{bit_width}_to_uint8.c convert_int/
+bid{bit_width}_to_uint16.c convert_int/
+bid{bit_width}_to_uint32.c convert_int/
+bid{bit_width}_to_uint64.c convert_int/
+bid_from_int.c convert_int/
+
+bid_binarydecimal.c convert_binary_fp/
+
+bid_dpd.c dpd/
+bid_b2d.h dpd/
+
+TESTS/readtest.c
+TESTS/readtest.h
+TESTS/readtest.in
+TESTS/test_bid_conf.h
+TESTS/test_bid_functions.h
+"""
+
+
+def main():
+ if len(sys.argv) != 3:
+ print(f"USAGE: python3 SCRIPT INTEL_TEST_DIR OUTPUT_DIR")
+ return
+
+ source_dir = os.path.abspath(sys.argv[1])
+ output_dir = os.path.abspath(sys.argv[2])
+ common = os.path.commonprefix([source_dir, output_dir])
+
+ for line in FILES.splitlines():
+ line = line.strip()
+
+ if not line or line.startswith("#"):
+ continue
+
+ split = line.split(" ")
+
+ if len(split) == 1:
+ source_name = line
+ link_name = line
+ elif len(split) == 2:
+ source_name = split[0]
+ is_link_dir = split[1].endswith("/")
+ link_name = split[1] + split[0] if is_link_dir else split[1]
+ else:
+ assert False, line
+
+ source_inner_dir = "" if source_name.startswith("TESTS/") else "LIBRARY/src"
+ source_path = os.path.join(source_dir, source_inner_dir, source_name)
+ link_path = os.path.join(output_dir, link_name)
+
+ for width in ("32", "64", "128"):
+ s = source_path.replace("{bit_width}", width)
+ l = link_path.replace("{bit_width}", width)
+
+ print(l.replace(common, ""), "->", s.replace(common, ""))
+
+ try:
+ link_dir = os.path.dirname(l)
+ pathlib.Path(link_dir).mkdir(parents=True, exist_ok=True)
+ except IOError:
+ pass
+
+ try:
+ os.remove(l)
+ except IOError:
+ pass
+
+ pathlib.Path(l).symlink_to(s)
+
+ # No variable -> link just once
+ if "{bit_width}" not in source_path:
+ break
+
+
+if __name__ == "__main__":
+ main()
diff --git a/Scripts/generate-src/DECIMAL_PROTOCOL_EXTENSION.swift b/Scripts/generate-src/DECIMAL_PROTOCOL_EXTENSION.swift
new file mode 100644
index 0000000..7a048d9
--- /dev/null
+++ b/Scripts/generate-src/DECIMAL_PROTOCOL_EXTENSION.swift
@@ -0,0 +1,667 @@
+extension DecimalFloatingPoint {
+
+ /// Nerd! 🤓
+ public static var is754version1985: Bool { return false }
+
+ /// Nerd! 🤓
+ public static var is754version2008: Bool { return true }
+
+ /// The radix, or base of exponentiation, for a floating-point type.
+ ///
+ /// The magnitude of a floating-point value `x` of type `F` can be calculated
+ /// by using the following formula, where `**` is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ public static var radix: Int { 10 }
+
+ /// The classification of this value.
+ ///
+ /// A value's `floatingPointClass` property describes its "class" as
+ /// described by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public var floatingPointClass: FloatingPointClassification {
+ // Taken from Swift sources.
+ if isSignalingNaN { return .signalingNaN }
+ if isNaN { return .quietNaN }
+ if isInfinite { return sign == .minus ? .negativeInfinity : .positiveInfinity }
+ if isNormal { return sign == .minus ? .negativeNormal : .positiveNormal }
+ if isSubnormal { return sign == .minus ? .negativeSubnormal : .positiveSubnormal }
+ return sign == .minus ? .negativeZero : .positiveZero
+ }
+
+ public var exponent: Exponent {
+ var status = DecimalStatus()
+ return self.exponent(status: &status)
+ }
+
+ /// Creates a decimal with a canonical value of 0.
+ public init() {
+ self = Self.zero
+ }
+
+ // overload: only rounding or no args
+ public init(
+ sign: FloatingPointSign,
+ exponent: Exponent,
+ significand: Self,
+ rounding: DecimalFloatingPointRoundingRule = .{default_rounding_scaleb}
+ ) {
+ var status = DecimalStatus()
+ self = Self(
+ sign: sign,
+ exponent: exponent,
+ significand: significand,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // overload: only status
+ public init(
+ sign: FloatingPointSign,
+ exponent: Exponent,
+ significand: Self,
+ status: inout DecimalStatus
+ ) {
+ self = Self(
+ sign: sign,
+ exponent: exponent,
+ significand: significand,
+ rounding: .{default_rounding_scaleb},
+ status: &status
+ )
+ }
+
+ // MARK: - Init from String
+
+ // overload: only rounding or no args
+ public init?(
+ _ description: S,
+ rounding: DecimalFloatingPointRoundingRule = .{default_rounding_string_to_decimal}
+ ) {
+ var status = DecimalStatus()
+
+ guard let result = Self(description, rounding: rounding, status: &status) else {
+ return nil
+ }
+
+ self = result
+ }
+
+ // overload: only status
+ public init?(
+ _ description: S,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.{default_rounding_string_to_decimal}
+
+ guard let result = Self(description, rounding: rounding, status: &status) else {
+ return nil
+ }
+
+ self = result
+ }
+
+ public init?(exactly description: S) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+
+ guard let result = Self(description, rounding: rounding, status: &status) else {
+ return nil
+ }
+
+ if status.isInexact {
+ return nil
+ }
+
+ self = result
+ }
+
+ // MARK: - Init from Int
+
+ /// Creates a new value, rounded to the closest possible representation.
+ ///
+ /// - Parameter value: The integer to convert to a floating-point value.
+ public init(_ value: Int) {
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.{default_rounding_int_to_decimal}
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ public init(integerLiteral value: Int) {
+ self = Self(value)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ value: Source,
+ rounding: DecimalFloatingPointRoundingRule = .{default_rounding_int_to_decimal}
+ ) {
+ var status = DecimalStatus()
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ value: Source,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.{default_rounding_int_to_decimal}
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new value, if the given integer can be represented exactly.
+ ///
+ /// If the given integer cannot be represented exactly, the result is `nil`.
+ ///
+ /// - Parameter value: The integer to convert to a floating-point value.
+ public init?(exactly source: Source) {
+ // This method raises:
+ // - isInexact -> fail
+ // - isOverflowInexact -> fail
+ // - isUnderflowInexact -> fail
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.towardZero
+ self = Self(source, rounding: rounding, status: &status)
+
+ if status.isInexact {
+ return nil
+ }
+
+ // Any unexpected flags?
+ status.clear(.isOverflowInexact | .isUnderflowInexact)
+ assert(status.isEmpty)
+ }
+
+ // MARK: - Init from Float
+
+{init_from_float}
+{init_from_double}
+{init_from_float80}
+
+ // MARK: - Unary
+
+ /// Returns the given number unchanged.
+ ///
+ /// You can use the unary plus operator (`+`) to provide symmetry in your
+ /// code for positive numbers when also using the unary minus operator.
+ ///
+ /// let x = -21
+ /// let y = +21
+ /// // x == -21
+ /// // y == 21
+ ///
+ /// - Returns: The given argument without any changes.
+ public static prefix func + (n: Self) -> Self {
+ return n
+ }
+
+ /// Calculates the additive inverse of a value.
+ ///
+ /// The unary minus operator (prefix `-`) calculates the negation of its
+ /// operand. The result is always exact.
+ ///
+ /// let x = 21.5
+ /// let y = -x
+ /// // y == -21.5
+ ///
+ /// - Parameter operand: The value to negate.
+ public static prefix func - (n: Self) -> Self {
+ var copy = n
+ copy.negate()
+ return copy
+ }
+
+ // MARK: - Add
+
+ /// Adds two values and produces their sum, rounding to a representable
+ /// value.
+ ///
+ /// The addition operator (`+`) calculates the sum of its two arguments. For
+ /// example:
+ ///
+ /// let x = 1.5
+ /// let y = x + 2.25
+ /// // y == 3.75
+ ///
+ /// The `+` operator implements the addition operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to add.
+ /// - rhs: The second value to add.
+ public static func + (lhs: Self, rhs: Self) -> Self {
+ return lhs.adding(rhs, rounding: .{default_rounding_math})
+ }
+
+ /// Adds two values and stores the result in the left-hand-side variable,
+ /// rounding to a representable value.
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to add.
+ /// - rhs: The second value to add.
+ public static func += (lhs: inout Self, rhs: Self) {
+ lhs = lhs.adding(rhs, rounding: .{default_rounding_math})
+ }
+
+ /// Adds two values and stores the result in the left-hand-side variable,
+ /// rounding using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to add.
+ /// - rhs: The second value to add.
+{binary_overloads_add}
+
+ // MARK: - Sub
+
+ /// Subtracts one value from another and produces their difference, rounded
+ /// to a representable value.
+ ///
+ /// The subtraction operator (`-`) calculates the difference of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x - 2.25
+ /// // y == 5.25
+ ///
+ /// The `-` operator implements the subtraction operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: A numeric value.
+ /// - rhs: The value to subtract from `lhs`.
+ public static func - (lhs: Self, rhs: Self) -> Self {
+ return lhs.subtracting(rhs, rounding: .{default_rounding_math})
+ }
+
+ /// Subtracts the second value from the first and stores the difference in
+ /// the left-hand-side variable, rounding to a representable value.
+ ///
+ /// - Parameters:
+ /// - lhs: A numeric value.
+ /// - rhs: The value to subtract from `lhs`.
+ public static func -= (lhs: inout Self, rhs: Self) {
+ lhs = lhs.subtracting(rhs, rounding: .{default_rounding_math})
+ }
+
+ /// Subtracts the second value from the first and stores the difference in
+ /// the left-hand-side variable, rounding using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - lhs: A numeric value.
+ /// - rhs: The value to subtract from `lhs`.
+{binary_overloads_sub}
+
+ // MARK: - Mul
+
+ /// Multiplies two values and produces their product, rounding to a
+ /// representable value.
+ ///
+ /// The multiplication operator (`*`) calculates the product of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x * 2.25
+ /// // y == 16.875
+ ///
+ /// The `*` operator implements the multiplication operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to multiply.
+ /// - rhs: The second value to multiply.
+ public static func * (lhs: Self, rhs: Self) -> Self {
+ return lhs.multiplied(by: rhs, rounding: .{default_rounding_math})
+ }
+
+ /// Multiplies two values and stores the result in the left-hand-side
+ /// variable, rounding to a representable value.
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to multiply.
+ /// - rhs: The second value to multiply.
+ public static func *= (lhs: inout Self, rhs: Self) {
+ lhs = lhs.multiplied(by: rhs, rounding: .{default_rounding_math})
+ }
+
+ /// Multiplies two values and stores the result in the left-hand-side
+ /// variable, rounding using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to multiply.
+ /// - rhs: The second value to multiply.
+{binary_overloads_mul}
+
+ // MARK: - Div
+
+ /// Returns the quotient of dividing the first value by the second, rounding
+ /// to a representable value.
+ ///
+ /// The division operator (`/`) calculates the quotient of the division if
+ /// `rhs` is nonzero. If `rhs` is zero, the result of the division is
+ /// infinity, with the sign of the result matching the sign of `lhs`.
+ ///
+ /// let x = 16.875
+ /// let y = x / 2.25
+ /// // y == 7.5
+ ///
+ /// let z = x / 0
+ /// // z.isInfinite == true
+ ///
+ /// The `/` operator implements the division operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The value to divide.
+ /// - rhs: The value to divide `lhs` by.
+ public static func / (lhs: Self, rhs: Self) -> Self {
+ return lhs.divided(by: rhs, rounding: .{default_rounding_math})
+ }
+
+ /// Divides the first value by the second and stores the quotient in the
+ /// left-hand-side variable, rounding to a representable value.
+ ///
+ /// - Parameters:
+ /// - lhs: The value to divide.
+ /// - rhs: The value to divide `lhs` by.
+ public static func /= (lhs: inout Self, rhs: Self) {
+ lhs = lhs.divided(by: rhs, rounding: .{default_rounding_math})
+ }
+
+ /// Divides the first value by the second and stores the quotient in the
+ /// left-hand-side variable, rounding using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - lhs: The value to divide.
+ /// - rhs: The value to divide `lhs` by.
+{binary_overloads_div}
+
+ // MARK: - Remainder
+
+ /// Replaces this value with the remainder of itself divided by the given
+ /// value.
+ ///
+ /// For two finite values `x` and `y`, the remainder `r` of dividing `x` by
+ /// `y` satisfies `x == y * q + r`, where `q` is the integer nearest to
+ /// `x / y`. If `x / y` is exactly halfway between two integers, `q` is
+ /// chosen to be even. Note that `q` is *not* `x / y` computed in
+ /// floating-point arithmetic, and that `q` may not be representable in any
+ /// available integer type.
+ ///
+ /// The following example calculates the remainder of dividing 8.625 by 0.75:
+ ///
+ /// var x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.toNearestOrEven)
+ /// // q == 12.0
+ /// x.formRemainder(dividingBy: 0.75)
+ /// // x == -0.375
+ ///
+ /// let x1 = 0.75 * q + x
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are finite numbers, the remainder is in the
+ /// closed range `-abs(other / 2)...abs(other / 2)`. The
+ /// `formRemainder(dividingBy:)` method is always exact.
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ public mutating func formRemainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) {
+ self = self.remainder(dividingBy: other, status: &status)
+ }
+
+ public mutating func formRemainder(dividingBy other: Self) {
+ var status = DecimalStatus()
+ self = self.remainder(dividingBy: other, status: &status)
+ }
+
+ public func remainder(dividingBy other: Self) -> Self {
+ var status = DecimalStatus()
+ return self.remainder(dividingBy: other, status: &status)
+ }
+
+ /// Replaces this value with the remainder of itself divided by the given
+ /// value using truncating division.
+ ///
+ /// Performing truncating division with floating-point values results in a
+ /// truncated integer quotient and a remainder. For values `x` and `y` and
+ /// their truncated integer quotient `q`, the remainder `r` satisfies
+ /// `x == y * q + r`.
+ ///
+ /// The following example calculates the truncating remainder of dividing
+ /// 8.625 by 0.75:
+ ///
+ /// var x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.towardZero)
+ /// // q == 11.0
+ /// x.formTruncatingRemainder(dividingBy: 0.75)
+ /// // x == 0.375
+ ///
+ /// let x1 = 0.75 * q + x
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are both finite numbers, the truncating
+ /// remainder has the same sign as this value and is strictly smaller in
+ /// magnitude than `other`. The `formTruncatingRemainder(dividingBy:)`
+ /// method is always exact.
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ public mutating func formTruncatingRemainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) {
+ self = self.truncatingRemainder(dividingBy: other, status: &status)
+ }
+
+ public mutating func formTruncatingRemainder(dividingBy other: Self) {
+ var status = DecimalStatus()
+ self = self.truncatingRemainder(dividingBy: other, status: &status)
+ }
+
+ public func truncatingRemainder(dividingBy other: Self) -> Self {
+ var status = DecimalStatus()
+ return self.truncatingRemainder(dividingBy: other, status: &status)
+ }
+
+ // MARK: - Square root
+
+ /// Replaces this value with its square root, rounding using the specified
+ /// rounding rule.
+{unary_overloads_square_root}
+
+ // MARK: - Adding product
+
+ /// Adds the product of the two given values to this value in place, computed
+ /// without intermediate rounding.
+ ///
+ /// - Parameters:
+ /// - lhs: One of the values to multiply before adding to this value.
+ /// - rhs: The other value to multiply.
+ public mutating func addProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = self.addingProduct(lhs, rhs, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public mutating func addProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ rounding: DecimalFloatingPointRoundingRule = .{default_rounding_math}
+ ) {
+ var status = DecimalStatus()
+ self = self.addingProduct(lhs, rhs, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public mutating func addProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.{default_rounding_math}
+ self = self.addingProduct(lhs, rhs, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public func addingProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ rounding: DecimalFloatingPointRoundingRule = .{default_rounding_math}
+ ) -> Self {
+ var status = DecimalStatus()
+ return self.addingProduct(lhs, rhs, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public func addingProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ let rounding = DecimalFloatingPointRoundingRule.{default_rounding_math}
+ return self.addingProduct(lhs, rhs, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Equal, compare
+
+ public func isEqual(to other: Self) -> Bool {
+ var status = DecimalStatus()
+ return self.isEqual(to: other, status: &status)
+ }
+
+ public func isLess(than other: Self) -> Bool {
+ var status = DecimalStatus()
+ return self.isLess(than: other, status: &status)
+ }
+
+ public func isLessThanOrEqualTo(_ other: Self) -> Bool {
+ var status = DecimalStatus()
+ return self.isLessThanOrEqualTo(other, status: &status)
+ }
+
+ public static func == (lhs: Self, rhs: Self) -> Bool {
+ return lhs.isEqual(to: rhs)
+ }
+
+ public static func < (lhs: Self, rhs: Self) -> Bool {
+ return lhs.isLess(than: rhs)
+ }
+
+ public static func <= (lhs: Self, rhs: Self) -> Bool {
+ return lhs.isLessThanOrEqualTo(rhs)
+ }
+
+ public static func > (lhs: Self, rhs: Self) -> Bool {
+ return rhs.isLess(than: lhs)
+ }
+
+ public static func >= (lhs: Self, rhs: Self) -> Bool {
+ return rhs.isLessThanOrEqualTo(lhs)
+ }
+
+ // MARK: - Total order
+
+ public func isMagnitudeTotallyOrdered(belowOrEqualTo other: Self) -> Bool {
+ let s = self.magnitude
+ let o = other.magnitude
+ return s.isTotallyOrdered(belowOrEqualTo: o)
+ }
+
+ // MARK: - Minimum/maximum
+
+ public static func minimum(_ x: Self, _ y: Self) -> Self {
+ var status = DecimalStatus()
+ return Self.minimum(x, y, status: &status)
+ }
+
+ public static func maximum(_ x: Self, _ y: Self) -> Self {
+ var status = DecimalStatus()
+ return Self.maximum(x, y, status: &status)
+ }
+
+ public static func minimumMagnitude(_ x: Self, _ y: Self) -> Self {
+ var status = DecimalStatus()
+ return Self.minimumMagnitude(x, y, status: &status)
+ }
+
+ public static func maximumMagnitude(_ x: Self, _ y: Self) -> Self {
+ var status = DecimalStatus()
+ return Self.maximumMagnitude(x, y, status: &status)
+ }
+
+ // MARK: - Next
+
+ public var nextUp: Self {
+ var status = DecimalStatus()
+ return self.nextUp(status: &status)
+ }
+
+ public var nextDown: Self {
+ var status = DecimalStatus()
+ return self.nextDown(status: &status)
+ }
+
+ // MARK: - Quantize
+
+{binary_overloads_quantize}
+
+ // MARK: - Round
+
+ /// Rounds the value to an integral value using the specified rounding rule.
+ ///
+ /// The following example rounds a value using four different rounding rules:
+ ///
+ /// // Equivalent to the C 'round' function:
+ /// var w = 6.5
+ /// w.round(.toNearestOrAwayFromZero)
+ /// // w == 7.0
+ ///
+ /// // Equivalent to the C 'trunc' function:
+ /// var x = 6.5
+ /// x.round(.towardZero)
+ /// // x == 6.0
+ ///
+ /// // Equivalent to the C 'ceil' function:
+ /// var y = 6.5
+ /// y.round(.up)
+ /// // y == 7.0
+ ///
+ /// // Equivalent to the C 'floor' function:
+ /// var z = 6.5
+ /// z.round(.down)
+ /// // z == 6.0
+ ///
+ /// For more information about the available rounding rules, see the
+ /// `DecimalFloatingPointRoundingRule` enumeration. To round a value using the
+ /// default "schoolbook rounding", you can use the shorter `round()` method
+ /// instead.
+ ///
+ /// var w1 = 6.5
+ /// w1.round()
+ /// // w1 == 7.0
+ ///
+ /// - Parameter rule: The rounding rule to use.
+{unary_overloads_round}
+}
diff --git a/Scripts/generate-src/DECIMAL_TEMPLATE.swift b/Scripts/generate-src/DECIMAL_TEMPLATE.swift
new file mode 100644
index 0000000..960fcc7
--- /dev/null
+++ b/Scripts/generate-src/DECIMAL_TEMPLATE.swift
@@ -0,0 +1,1294 @@
+// swiftlint:disable superfluous_disable_command
+// swiftlint:disable force_unwrapping
+// swiftlint:disable redundant_type_annotation
+
+public struct {name}: DecimalFloatingPoint, DecimalMixin {
+
+ internal typealias BID = {bid_type}
+ internal typealias DoubleBID = {double_bid_type}
+ /// A type that can represent any written exponent.
+ public typealias Exponent = Int
+ /// A type that stores dem bits..
+ public typealias BitPattern = {bid_type}
+
+ // MARK: - DecimalMixin
+
+ // See 'DecimalMixin' for the meaning of those fields.
+
+ internal static let combinationWidth = {combination_width}
+ internal static let exponentBias = {exponent_bias}
+ internal static let emax = {emax}
+
+ internal static let trailingSignificandWidth = {trailing_significand_width}
+ internal static let precisionInDigits = {precision_in_digits}
+ internal static let maxDecimalDigits: BID = {max_decimal_digits}
+ internal static let piDecimalDigits: BID = {pi_decimal_digits}
+
+ // MARK: - Static properties
+
+ /// A quiet NaN ("not a number").
+ ///
+ /// A NaN compares not equal, not greater than, and not less than every
+ /// value, including itself. Passing a NaN to an operation generally results
+ /// in NaN.
+ ///
+ /// let x = 1.21
+ /// // x > {name}.nan == false
+ /// // x < {name}.nan == false
+ /// // x == {name}.nan == false
+ ///
+ /// Because a NaN always compares not equal to itself, to test whether a
+ /// floating-point value is NaN, use its `isNaN` property instead of the
+ /// equal-to operator (`==`). In the following example, `y` is NaN.
+ ///
+ /// let y = x + {name}.nan
+ /// print(y == {name}.nan)
+ /// // Prints "false"
+ /// print(y.isNaN)
+ /// // Prints "true"
+ public static let nan = Self._nan
+
+ /// A signaling NaN ("not a number").
+ ///
+ /// The default IEEE 754 behavior of operations involving a signaling NaN is
+ /// to raise the Invalid flag in the floating-point environment and return a
+ /// quiet NaN.
+ ///
+ /// Other than these signaling operations, a signaling NaN behaves in the
+ /// same manner as a quiet NaN.
+ public static let signalingNaN = Self._signalingNaN
+
+ /// Positive infinity.
+ ///
+ /// Infinity compares greater than all finite numbers and equal to other
+ /// infinite values.
+ ///
+ /// let x = {name}.greatestFiniteMagnitude
+ /// let y = x * 2
+ /// // y == {name}.infinity
+ /// // y > x
+ public static let infinity = Self._infinity
+
+ /// The mathematical constant pi (π), approximately equal to 3.14159.
+ ///
+ /// When measuring an angle in radians, π is equivalent to a half-turn.
+ ///
+ /// This value is rounded toward zero to keep user computations with angles
+ /// from inadvertently ending up in the wrong quadrant.
+ ///
+ /// print({name}.pi)
+ /// // Prints "+3141592653589793E-15"
+ public static let pi = Self._pi
+
+ /// The zero value.
+ ///
+ /// Zero is the identity element for addition. For any value,
+ /// `x + .zero == x` and `.zero + x == x`.
+ public static let zero = Self._zero
+
+ /// The greatest finite number representable by this type.
+ ///
+ /// This value compares greater than or equal to all finite numbers, but less
+ /// than `infinity`.
+ ///
+ /// This value corresponds to type-specific C macros such as `FLT_MAX` and
+ /// `DBL_MAX`. The naming of those macros is slightly misleading, because
+ /// `infinity` is greater than this value.
+ public static let greatestFiniteMagnitude = Self._greatestFiniteMagnitude
+
+ /// The least positive normal number.
+ ///
+ /// This value compares less than or equal to all positive normal numbers.
+ /// There may be smaller positive numbers, but they are *subnormal*, meaning
+ /// that they are represented with less precision than normal numbers.
+ ///
+ /// This value corresponds to type-specific C macros such as `FLT_MIN` and
+ /// `DBL_MIN`. The naming of those macros is slightly misleading, because
+ /// subnormals, zeros, and negative numbers are smaller than this value.
+ public static let leastNormalMagnitude = Self._leastNormalMagnitude
+
+ /// The least positive number.
+ ///
+ /// This value compares less than or equal to all positive numbers, but
+ /// greater than zero. If the type supports subnormal values,
+ /// `leastNonzeroMagnitude` is smaller than `leastNormalMagnitude`;
+ /// otherwise they are equal.
+ public static let leastNonzeroMagnitude = Self._leastNonzeroMagnitude
+
+ // MARK: - Properties
+
+ internal var bid: BID
+
+ /// A Boolean value indicating whether the instance is equal to zero.
+ ///
+ /// The `isZero` property of a value `x` is `true` when `x` represents either
+ /// `-0.0` or `+0.0`. `x.isZero` is equivalent to the following comparison:
+ /// `x == 0.0`.
+ ///
+ /// let x = -0.0
+ /// x.isZero // true
+ /// x == 0.0 // true
+ public var isZero: Bool { self._isZero }
+
+ /// A Boolean value indicating whether this instance is finite.
+ ///
+ /// All values other than NaN and infinity are considered finite, whether
+ /// normal or subnormal. For NaN, both `isFinite` and `isInfinite` are false.
+ public var isFinite: Bool { self._isFinite }
+
+ /// A Boolean value indicating whether the instance is infinite.
+ ///
+ /// For NaN, both `isFinite` and `isInfinite` are false.
+ public var isInfinite: Bool { self._isInfinite }
+
+ /// A Boolean value indicating whether the instance's representation is in
+ /// its canonical form.
+ ///
+ /// The [IEEE 754 specification][spec] defines a *canonical*, or preferred,
+ /// encoding of a floating-point value.
+ ///
+ /// Decimal floating-point types admit a large number of non-canonical
+ /// encodings. Consult the IEEE 754 standard for additional details.
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public var isCanonical: Bool { self._isCanonical }
+
+ /// A Boolean value indicating whether this instance is normal.
+ ///
+ /// A *normal* value is a finite number that uses the full precision
+ /// available to values of a type. Zero is neither a normal nor a subnormal
+ /// number.
+ public var isNormal: Bool { self._isNormal }
+
+ /// A Boolean value indicating whether the instance is subnormal.
+ ///
+ /// A *subnormal* value is a nonzero number that has a lesser magnitude than
+ /// the smallest normal number. Subnormal values don't use the full
+ /// precision available to values of a type.
+ ///
+ /// Zero is neither a normal nor a subnormal number. Subnormal numbers are
+ /// often called *denormal* or *denormalized*---these are different names
+ /// for the same concept.
+ public var isSubnormal: Bool { self._isSubnormal }
+
+ /// A Boolean value indicating whether the instance is NaN ("not a number").
+ ///
+ /// Because NaN is not equal to any value, including NaN, use this property
+ /// instead of the equal-to operator (`==`) or not-equal-to operator (`!=`)
+ /// to test whether a value is or is not NaN. For example:
+ ///
+ /// let x = {name}()
+ /// let y = x * .infinity
+ /// // y is a NaN
+ ///
+ /// // Comparing with the equal-to operator never returns 'true'
+ /// print(x == {name}.nan)
+ /// // Prints "false"
+ /// print(y == {name}.nan)
+ /// // Prints "false"
+ ///
+ /// // Test with the 'isNaN' property instead
+ /// print(x.isNaN)
+ /// // Prints "false"
+ /// print(y.isNaN)
+ /// // Prints "true"
+ ///
+ /// This property is `true` for both quiet and signaling NaNs.
+ public var isNaN: Bool { self._isNaN }
+
+ /// A Boolean value indicating whether the instance is a signaling NaN.
+ ///
+ /// Signaling NaNs typically raise the Invalid flag when used in general
+ /// computing operations.
+ public var isSignalingNaN: Bool { self._isSignalingNaN }
+
+ /// The sign of the floating-point value.
+ ///
+ /// The `sign` property is `.minus` if the value's signbit is set, and
+ /// `.plus` otherwise. For example:
+ ///
+ /// let x = {name}(-33)
+ /// // x.sign == .minus
+ ///
+ /// Don't use this property to check whether a floating point value is
+ /// negative. For a value `x`, the comparison `x.sign == .minus` is not
+ /// necessarily the same as `x < 0`. In particular, `x.sign == .minus` if
+ /// `x` is -0, and while `x < 0` is always `false` if `x` is NaN, `x.sign`
+ /// could be either `.plus` or `.minus`.
+ public var sign: FloatingPointSign { self._floatingPointSign }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Binary integer decimal.
+ public var binaryEncoding: BitPattern { self.bid }
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Densely packed decimal.
+ public var decimalEncoding: BitPattern { self._toDenselyPackedDecimal() }
+
+ /// The exponent of the floating-point value.
+ ///
+ /// The *exponent* of a floating-point value is the integer part of the
+ /// logarithm of the value's magnitude. For a value `x` of a floating-point
+ /// type `F`, the magnitude can be calculated as the following, where `**`
+ /// is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ ///
+ /// In the next example, `y` has a value of `33.33333333333333`.
+ /// Exponent is equal to `floor(log10(y)) = floor(1.5228787) = 1`
+ /// and significand is `3.333333333333333` (always between [1, 10)).
+ ///
+ /// let y: {name} = 100 / 3 // +3333333333333333E-14 = 33.33333333333333
+ /// // y.significand == +3333333333333333E-15 // 3.333333333333333
+ /// // y.exponent == 1
+ /// // {name}.radix == 10
+ ///
+ /// The `exponent` property has the following edge cases:
+ ///
+ /// - If `x` is zero, then `x.exponent` is `Int.min`.
+ /// - If `x` is +/-infinity or NaN, then `x.exponent` is `Int.max`
+ ///
+ /// This property implements the `logB` operation defined by the [IEEE 754
+ /// specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public func exponent(status: inout DecimalStatus) -> Exponent {
+ // This method should be 'getExponent', but Swift has 'Double.exponent'
+ // property, so we will use the same name.
+ return self._getExponent(status: &status)
+ }
+
+ /// The significand of the floating-point value.
+ ///
+ /// The magnitude of a floating-point value `x` of type `F` can be calculated
+ /// by using the following formula, where `**` is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ ///
+ /// In the next example, `y` has a value of `33.33333333333333`.
+ /// Exponent is equal to `floor(log10(y)) = floor(1.5228787) = 1`
+ /// and significand is `3.333333333333333`.
+ ///
+ /// let y: {name} = 100 / 3 // +3333333333333333E-14 = 33.33333333333333
+ /// // y.significand == +3333333333333333E-15 // 3.333333333333333
+ /// // y.exponent == 1
+ /// // {name}.radix == 10
+ ///
+ /// If a type's radix is 10, then for finite nonzero numbers, the significand
+ /// is in the range `1.0 ..< 10.0`. For other values of `x`, `x.significand`
+ /// is defined as follows:
+ ///
+ /// - If `x` is zero, then `x.significand` is 0.0.
+ /// - If `x` is infinite, then `x.significand` is infinity.
+ /// - If `x` is NaN, then `x.significand` is NaN.
+ /// - Note: The significand is frequently also called the *mantissa*, but
+ /// significand is the preferred terminology in the [IEEE 754
+ /// specification][spec], to allay confusion with the use of mantissa for
+ /// the fractional part of a logarithm.
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public var significand: Self { self._getSignificand() }
+
+ /// The magnitude of this value.
+ ///
+ /// For any numeric value `x`, `x.magnitude` is the absolute value of `x`.
+ /// You can use the `magnitude` property in operations that are simpler to
+ /// implement in terms of unsigned values, such as printing the value of an
+ /// integer, which is just printing a '-' character in front of an absolute
+ /// value.
+ ///
+ /// let x = -200
+ /// // x.magnitude == 200
+ ///
+ /// The global `abs(_:)` function provides more familiar syntax when you need
+ /// to find an absolute value. In addition, because `abs(_:)` always returns
+ /// a value of the same type, even in a generic context, using the function
+ /// instead of the `magnitude` property is encouraged.
+ public var magnitude: Self { self._magnitude }
+
+ /// A textual representation of this instance.
+ ///
+ /// Calling this property directly is discouraged. Instead, convert an
+ /// instance of any type to a string by using the `String(describing:)`
+ /// initializer. This initializer works with any type, and uses the custom
+ /// `description` property for types that conform to
+ /// `CustomStringConvertible`:
+ ///
+ /// struct Point: CustomStringConvertible {
+ /// let x: Int, y: Int
+ ///
+ /// var description: String {
+ /// return "(\(x), \(y))"
+ /// }
+ /// }
+ ///
+ /// let p = Point(x: 21, y: 30)
+ /// let s = String(describing: p)
+ /// print(s)
+ /// // Prints "(21, 30)"
+ ///
+ /// The conversion of `p` to a string in the assignment to `s` uses the
+ /// `Point` type's `description` property.
+ public var description: String { self._toString() }
+
+ // MARK: - Init
+
+ /// Use `init(canonical)` instead.
+ internal init(unchecked bid: BID) {
+ self.bid = bid
+ }
+
+ /// Creates a NaN ("not a number") value with the specified payload.
+ ///
+ /// NaN values compare not equal to every value, including themselves. Most
+ /// operations with a NaN operand produce a NaN result. Don't use the
+ /// equal-to operator (`==`) to test whether a value is NaN. Instead, use
+ /// the value's `isNaN` property.
+ ///
+ /// let x = {name}(nan: 0, signaling: false)
+ /// print(x == .nan)
+ /// // Prints "false"
+ /// print(x.isNaN)
+ /// // Prints "true"
+ ///
+ /// - Parameters:
+ /// - payload: The payload to use for the new NaN value.
+ /// - signaling: Pass `true` to create a signaling NaN or `false` to create
+ /// a quiet NaN.
+ public init(nan payload: BitPattern, signaling: Bool) {
+ self = Self._init(payload: payload, signaling: signaling)
+ }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Binary integer decimal.
+ public init(binaryEncoding: BitPattern) {
+ self = Self(unchecked: binaryEncoding)
+ }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Densely packed decimal.
+ public init(decimalEncoding: BitPattern) {
+ self = Self._init(decimalEncoding: decimalEncoding)
+ }
+
+ /// Creates a new floating-point value using the sign of one value and the
+ /// magnitude of another.
+ ///
+ /// The following example uses this initializer to create a new `{name}`
+ /// instance with the sign of `a` and the magnitude of `b`:
+ ///
+ /// let a = Decimal64(-21)
+ /// let b = Decimal64(305)
+ /// let c = Decimal64(signOf: a, magnitudeOf: b)
+ /// print(c)
+ /// // Prints "-305E+0"
+ ///
+ /// This initializer implements the IEEE 754 `copysign` operation.
+ ///
+ /// - Parameters:
+ /// - signOf: A value from which to use the sign. The result of the
+ /// initializer has the same sign as `signOf`.
+ /// - magnitudeOf: A value from which to use the magnitude. The result of
+ /// the initializer has the same magnitude as `magnitudeOf`.
+ public init(signOf s: Self, magnitudeOf m: Self) {
+ self = Self._init(signOf: s, magnitudeOf: m)
+ }
+
+ /// Creates a new value from the given sign, exponent, and significand.
+ ///
+ /// This initializer is equivalent to the following calculation, where `**`
+ /// is exponentiation, computed as if by a single, correctly rounded,
+ /// floating-point operation:
+ ///
+ /// let sign: FloatingPointSign = .plus
+ /// let exponent = -2
+ /// let significand = {name}(5)
+ /// let y = (sign == .minus ? -1 : 1) * significand * 10 ** exponent
+ /// // y == +5E-2
+ ///
+ /// As with any basic operation, if this value is outside the representable
+ /// range of the type, overflow or underflow occurs, and zero, a subnormal
+ /// value, or infinity may result. In addition, there are two other edge
+ /// cases:
+ ///
+ /// - If the value you pass to `significand` is zero or infinite, the result
+ /// is zero or infinite, regardless of the value of `exponent`.
+ /// - If the value you pass to `significand` is NaN, the result is NaN.
+ ///
+ /// For any floating-point value `x` of type `F`, the result of the following
+ /// is equal to `x`, with the distinction that the result is canonicalized
+ /// if `x` is in a noncanonical encoding:
+ ///
+ /// let x0 = F(sign: x.sign, exponent: x.exponent, significand: x.significand)
+ ///
+ /// Please note that the returned `0` may be of a different cohort (different
+ /// exponent) than `x0` (for `0.exponent` returns `Int.min`).
+ ///
+ /// This initializer implements the `scaleB` operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - sign: The sign to use for the new value.
+ /// - exponent: The new value's exponent.
+ /// - significand: The new value's significand.
+ public init(
+ sign: FloatingPointSign,
+ exponent: Exponent,
+ significand: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(
+ sign: sign,
+ exponent: exponent,
+ significand: significand,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Init from String
+
+ /// Creates a new value from the given `String`, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - description: String to convert to a floating-point value.
+ public init?(
+ _ description: S,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ // Avoid polluting 'status' if we fail.
+ var s = DecimalStatus()
+ guard let result = Self._parse(description, rounding: rounding, status: &s) else {
+ return nil
+ }
+
+ self = result
+ status = status | s
+ }
+
+ // MARK: - Init from Int
+
+ /// Creates a new value, rounded using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: The integer to convert to a floating-point value.
+ public init(
+ _ value: Source,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Init from Float
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Float,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Double,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Float80,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+#endif
+
+ // MARK: - Init from Decimal
+
+{decimal_conversion}
+
+ // MARK: - Unary
+
+ /// Replaces this value with its additive inverse.
+ ///
+ /// The result is always exact. This example uses the `negate()` method to
+ /// negate the value of the variable `x`:
+ ///
+ /// var x = 21.5
+ /// x.negate()
+ /// // x == -21.5
+ public mutating func negate() {
+ self._negate()
+ }
+
+ // MARK: - Binary
+
+ /// Adds two values and produces their sum, rounding using the specified
+ /// rounding rule.
+ ///
+ /// The addition operator (`+`) calculates the sum of its two arguments. For
+ /// example:
+ ///
+ /// let x = 1.5
+ /// let y = x + 2.25
+ /// // y == 3.75
+ ///
+ /// The `+` operator implements the addition operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to add.
+ /// - rhs: The second value to add.
+ public func adding(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._adding(other: other, rounding: rounding, status: &status)
+ }
+
+ /// Subtracts one value from another and produces their difference, rounding
+ /// using the specified rounding rule.
+ ///
+ /// The subtraction operator (`-`) calculates the difference of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x - 2.25
+ /// // y == 5.25
+ ///
+ /// The `-` operator implements the subtraction operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: A numeric value.
+ /// - rhs: The value to subtract from `lhs`.
+ public func subtracting(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._subtracting(other: other, rounding: rounding, status: &status)
+ }
+
+ /// Multiplies two values and produces their product, rounding using the
+ /// specified rounding rule.
+ ///
+ /// The multiplication operator (`*`) calculates the product of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x * 2.25
+ /// // y == 16.875
+ ///
+ /// The `*` operator implements the multiplication operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to multiply.
+ /// - rhs: The second value to multiply.
+ public func multiplied(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._multiplied(by: other, rounding: rounding, status: &status)
+ }
+
+ /// Returns the quotient of dividing the first value by the second, rounding
+ /// using the specified rounding rule.
+ ///
+ /// The division operator (`/`) calculates the quotient of the division if
+ /// `rhs` is nonzero. If `rhs` is zero, the result of the division is
+ /// infinity, with the sign of the result matching the sign of `lhs`.
+ ///
+ /// let x = 16.875
+ /// let y = x / 2.25
+ /// // y == 7.5
+ ///
+ /// let z = x / 0
+ /// // z.isInfinite == true
+ ///
+ /// The `/` operator implements the division operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The value to divide.
+ /// - rhs: The value to divide `lhs` by.
+ public func divided(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._divided(by: other, rounding: rounding, status: &status)
+ }
+
+ /// Returns the remainder of this value divided by the given value.
+ ///
+ /// For two finite values `x` and `y`, the remainder `r` of dividing `x` by
+ /// `y` satisfies `x == y * q + r`, where `q` is the integer nearest to
+ /// `x / y`. If `x / y` is exactly halfway between two integers, `q` is
+ /// chosen to be even. Note that `q` is *not* `x / y` computed in
+ /// floating-point arithmetic, and that `q` may not be representable in any
+ /// available integer type.
+ ///
+ /// The following example calculates the remainder of dividing 8.625 by 0.75:
+ ///
+ /// let x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.toNearestOrEven)
+ /// // q == 12.0
+ /// let r = x.remainder(dividingBy: 0.75)
+ /// // r == -0.375
+ ///
+ /// let x1 = 0.75 * q + r
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are finite numbers, the remainder is in the
+ /// closed range `-abs(other / 2)...abs(other / 2)`. The
+ /// `remainder(dividingBy:)` method is always exact. This method implements
+ /// the remainder operation defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ /// - Returns: The remainder of this value divided by `other`.
+ public func remainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._remainder(dividingBy: other, status: &status)
+ }
+
+ /// Returns the remainder of this value divided by the given value using
+ /// truncating division.
+ ///
+ /// Performing truncating division with floating-point values results in a
+ /// truncated integer quotient and a remainder. For values `x` and `y` and
+ /// their truncated integer quotient `q`, the remainder `r` satisfies
+ /// `x == y * q + r`.
+ ///
+ /// The following example calculates the truncating remainder of dividing
+ /// 8.625 by 0.75:
+ ///
+ /// let x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.towardZero)
+ /// // q == 11.0
+ /// let r = x.truncatingRemainder(dividingBy: 0.75)
+ /// // r == 0.375
+ ///
+ /// let x1 = 0.75 * q + r
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are both finite numbers, the truncating
+ /// remainder has the same sign as this value and is strictly smaller in
+ /// magnitude than `other`. The `truncatingRemainder(dividingBy:)` method
+ /// is always exact.
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ /// - Returns: The remainder of this value divided by `other` using
+ /// truncating division.
+ public func truncatingRemainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._truncatingRemainder(dividingBy: other, status: &status)
+ }
+
+ /// Returns the square root of the value, rounding using the specified rounding
+ /// rule.
+ ///
+ /// The following example declares a function that calculates the length of
+ /// the hypotenuse of a right triangle given its two perpendicular sides.
+ ///
+ /// func hypotenuse(_ a: {name}, _ b: {name}) -> {name} {
+ /// return (a * a + b * b).squareRoot()
+ /// }
+ ///
+ /// let (dx, dy) = (3.0, 4.0)
+ /// let distance = hypotenuse(dx, dy)
+ /// // distance == 5.0
+ ///
+ /// - Returns: The square root of the value.
+ public func squareRoot(
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._squareRoot(rounding: rounding, status: &status)
+ }
+
+ // MARK: - Ternary
+
+ /// Returns the result of adding the product of the two given values to this
+ /// value, computed without intermediate rounding.
+ ///
+ /// This method is equivalent to the C `fma` function and implements the
+ /// `fusedMultiplyAdd` operation defined by the [IEEE 754
+ /// specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: One of the values to multiply before adding to this value.
+ /// - rhs: The other value to multiply.
+ /// - Returns: The product of `lhs` and `rhs`, added to this value.
+ public func addingProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._fusedMultiplyAdd(
+ mulLhs: lhs,
+ mulRhs: rhs,
+ add: self,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Equal, compare
+
+ /// Returns a Boolean value indicating whether this instance is equal to the
+ /// given value.
+ ///
+ /// This method serves as the basis for the equal-to operator (`==`) for
+ /// floating-point values. When comparing two values with this method, `-0`
+ /// is equal to `+0`. NaN is not equal to any value, including itself. For
+ /// example:
+ ///
+ /// let x = 15.0
+ /// x.isEqual(to: 15.0)
+ /// // true
+ /// x.isEqual(to: .nan)
+ /// // false
+ /// {name}.nan.isEqual(to: .nan)
+ /// // false
+ ///
+ /// The `isEqual(to:)` method implements the equality predicate defined by
+ /// the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if `other` has the same value as this instance;
+ /// otherwise, `false`. If either this value or `other` is NaN, the result
+ /// of this method is `false`.
+ public func isEqual(
+ to other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isEqual(to: other, status: &status)
+ }
+
+ /// Returns a Boolean value indicating whether this instance is less than the
+ /// given value.
+ ///
+ /// This method serves as the basis for the less-than operator (`<`) for
+ /// floating-point values. Some special cases apply:
+ ///
+ /// - Because NaN compares not less than nor greater than any value, this
+ /// method returns `false` when called on NaN or when NaN is passed as
+ /// `other`.
+ /// - `-infinity` compares less than all values except for itself and NaN.
+ /// - Every value except for NaN and `+infinity` compares less than
+ /// `+infinity`.
+ ///
+ /// let x = 15.0
+ /// x.isLess(than: 20.0)
+ /// // true
+ /// x.isLess(than: .nan)
+ /// // false
+ /// {name}.nan.isLess(than: x)
+ /// // false
+ ///
+ /// The `isLess(than:)` method implements the less-than predicate defined by
+ /// the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if this value is less than `other`; otherwise, `false`.
+ /// If either this value or `other` is NaN, the result of this method is
+ /// `false`.
+ public func isLess(
+ than other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isLess(than: other, status: &status)
+ }
+
+ /// Returns a Boolean value indicating whether this instance is less than or
+ /// equal to the given value.
+ ///
+ /// This method serves as the basis for the less-than-or-equal-to operator
+ /// (`<=`) for floating-point values. Some special cases apply:
+ ///
+ /// - Because NaN is incomparable with any value, this method returns `false`
+ /// when called on NaN or when NaN is passed as `other`.
+ /// - `-infinity` compares less than or equal to all values except NaN.
+ /// - Every value except NaN compares less than or equal to `+infinity`.
+ ///
+ /// let x = 15.0
+ /// x.isLessThanOrEqualTo(20.0)
+ /// // true
+ /// x.isLessThanOrEqualTo(.nan)
+ /// // false
+ /// {name}.nan.isLessThanOrEqualTo(x)
+ /// // false
+ ///
+ /// The `isLessThanOrEqualTo(_:)` method implements the less-than-or-equal
+ /// predicate defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if `other` is greater than this value; otherwise,
+ /// `false`. If either this value or `other` is NaN, the result of this
+ /// method is `false`.
+ public func isLessThanOrEqualTo(
+ _ other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isLessThanOrEqualTo(other, status: &status)
+ }
+
+ // MARK: - Total order
+
+ /// Returns a Boolean value indicating whether this instance should precede
+ /// or tie positions with the given value in an ascending sort.
+ ///
+ /// This relation is a refinement of the less-than-or-equal-to operator
+ /// (`<=`) that provides a total order on all values of the type, including
+ /// signed zeros and NaNs.
+ ///
+ /// The following example uses `isTotallyOrdered(belowOrEqualTo:)` to sort an
+ /// array of floating-point values, including some that are NaN:
+ ///
+ /// var numbers = [2.5, 21.25, 3.0, .nan, -9.5]
+ /// numbers.sort { !$1.isTotallyOrdered(belowOrEqualTo: $0) }
+ /// print(numbers)
+ /// // Prints "[-9.5, 2.5, 3.0, 21.25, nan]"
+ ///
+ /// The `isTotallyOrdered(belowOrEqualTo:)` method implements the total order
+ /// relation as defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: A floating-point value to compare to this value.
+ /// - Returns: `true` if this value is ordered below or the same as `other`
+ /// in a total ordering of the floating-point type; otherwise, `false`.
+ public func isTotallyOrdered(belowOrEqualTo other: Self) -> Bool {
+ return self._isTotallyOrdered(belowOrEqualTo: other)
+ }
+
+ // MARK: - Minimum/maximum
+
+ /// Returns the lesser of the two given values.
+ ///
+ /// This method returns the minimum of two values, preserving order and
+ /// eliminating NaN when possible. For two values `x` and `y`, the result of
+ /// `minimum(x, y)` is `x` if `x <= y`, `y` if `y < x`, or whichever of `x`
+ /// or `y` is a number if the other is a quiet NaN. If both `x` and `y` are
+ /// NaN, or either `x` or `y` is a signaling NaN, the result is NaN.
+ ///
+ /// {name}.minimum(10, -25)
+ /// // -25
+ /// {name}.minimum(10, .nan)
+ /// // 10
+ /// {name}.minimum(.nan, -25)
+ /// // -25
+ /// {name}.minimum(.nan, .nan)
+ /// // nan
+ ///
+ /// The `minimum` method implements the `minNum` operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: The minimum of `x` and `y`, or whichever is a number if the
+ /// other is NaN.
+ public static func minimum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._minimum(x, y, status: &status)
+ }
+
+ /// Returns the greater of the two given values.
+ ///
+ /// This method returns the maximum of two values, preserving order and
+ /// eliminating NaN when possible. For two values `x` and `y`, the result of
+ /// `maximum(x, y)` is `x` if `x > y`, `y` if `x <= y`, or whichever of `x`
+ /// or `y` is a number if the other is a quiet NaN. If both `x` and `y` are
+ /// NaN, or either `x` or `y` is a signaling NaN, the result is NaN.
+ ///
+ /// {name}.maximum(10, -25)
+ /// // 10
+ /// {name}.maximum(10, .nan)
+ /// // 10
+ /// {name}.maximum(.nan, -25)
+ /// // -25
+ /// {name}.maximum(.nan, .nan)
+ /// // nan
+ ///
+ /// The `maximum` method implements the `maxNum` operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: The greater of `x` and `y`, or whichever is a number if the
+ /// other is NaN.
+ public static func maximum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._maximum(x, y, status: &status)
+ }
+
+ /// Returns the value with lesser magnitude.
+ ///
+ /// This method returns the value with lesser magnitude of the two given
+ /// values, preserving order and eliminating NaN when possible. For two
+ /// values `x` and `y`, the result of `minimumMagnitude(x, y)` is `x` if
+ /// `x.magnitude <= y.magnitude`, `y` if `y.magnitude < x.magnitude`, or
+ /// whichever of `x` or `y` is a number if the other is a quiet NaN. If both
+ /// `x` and `y` are NaN, or either `x` or `y` is a signaling NaN, the result
+ /// is NaN.
+ ///
+ /// {name}.minimumMagnitude(10, -25)
+ /// // 10
+ /// {name}.minimumMagnitude(10, .nan)
+ /// // 10
+ /// {name}.minimumMagnitude(.nan, -25)
+ /// // -25
+ /// {name}.minimumMagnitude(.nan, .nan)
+ /// // nan
+ ///
+ /// The `minimumMagnitude` method implements the `minNumMag` operation
+ /// defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: Whichever of `x` or `y` has lesser magnitude, or whichever is
+ /// a number if the other is NaN.
+ public static func minimumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._minimumMagnitude(x, y, status: &status)
+ }
+
+ /// Returns the value with greater magnitude.
+ ///
+ /// This method returns the value with greater magnitude of the two given
+ /// values, preserving order and eliminating NaN when possible. For two
+ /// values `x` and `y`, the result of `maximumMagnitude(x, y)` is `x` if
+ /// `x.magnitude > y.magnitude`, `y` if `x.magnitude <= y.magnitude`, or
+ /// whichever of `x` or `y` is a number if the other is a quiet NaN. If both
+ /// `x` and `y` are NaN, or either `x` or `y` is a signaling NaN, the result
+ /// is NaN.
+ ///
+ /// {name}.maximumMagnitude(10, -25)
+ /// // -25
+ /// {name}.maximumMagnitude(10, .nan)
+ /// // 10
+ /// {name}.maximumMagnitude(.nan, -25)
+ /// // -25
+ /// {name}.maximumMagnitude(.nan, .nan)
+ /// // nan
+ ///
+ /// The `maximumMagnitude` method implements the `maxNumMag` operation
+ /// defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: Whichever of `x` or `y` has greater magnitude, or whichever is
+ /// a number if the other is NaN.
+ public static func maximumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._maximumMagnitude(x, y, status: &status)
+ }
+
+ // MARK: - Unit in last place
+
+ /// The unit in the last place of this value.
+ ///
+ /// This is the unit of the least significant digit in this value's
+ /// significand. For most numbers `x`, this is the difference between `x`
+ /// and the next greater (in magnitude) representable number. There are some
+ /// edge cases to be aware of:
+ ///
+ /// - If `x` is not a finite number, then `x.ulp` is NaN.
+ /// - If `x` is very small in magnitude, then `x.ulp` may be a subnormal
+ /// number. If a type does not support subnormals, `x.ulp` may be rounded
+ /// to zero.
+ /// - `greatestFiniteMagnitude.ulp` is a finite number, even though the next
+ /// greater representable value is `infinity`.
+ ///
+ /// See also the `ulpOfOne` static property.
+ public var ulp: Self { self._ulp }
+
+ /// The unit in the last place of 1.0.
+ ///
+ /// The positive difference between 1.0 and the next greater representable
+ /// number. `ulpOfOne` corresponds to the value represented by the C macros
+ /// `FLT_EPSILON`, `DBL_EPSILON`, etc, and is sometimes called *epsilon* or
+ /// *machine epsilon*. Swift deliberately avoids using the term "epsilon"
+ /// because:
+ ///
+ /// - Historically "epsilon" has been used to refer to several different
+ /// concepts in different languages, leading to confusion and bugs.
+ ///
+ /// - The name "epsilon" suggests that this quantity is a good tolerance to
+ /// choose for approximate comparisons, but it is almost always unsuitable
+ /// for that purpose.
+ ///
+ /// See also the `ulp` member property.
+ public static var ulpOfOne: Self { Self._ulpOfOne }
+
+ // MARK: - Next
+
+ /// The least representable value that compares greater than this value.
+ ///
+ /// For any finite value `x`, `x.nextUp` is greater than `x`. For `nan` or
+ /// `infinity`, `x.nextUp` is `x` itself. The following special cases also
+ /// apply:
+ ///
+ /// - If `x` is `-infinity`, then `x.nextUp` is `-greatestFiniteMagnitude`.
+ /// - If `x` is `-leastNonzeroMagnitude`, then `x.nextUp` is `-0.0`.
+ /// - If `x` is zero, then `x.nextUp` is `leastNonzeroMagnitude`.
+ /// - If `x` is `greatestFiniteMagnitude`, then `x.nextUp` is `infinity`.
+ public func nextUp(status: inout DecimalStatus) -> Self {
+ // This method should be 'getNextUp', but Swift has 'Double.nextUp'
+ // property, so we will use the same name.
+ return self._nextUp(status: &status)
+ }
+
+ /// The greatest representable value that compares less than this value.
+ ///
+ /// For any finite value `x`, `x.nextDown` is less than `x`. For `nan` or
+ /// `-infinity`, `x.nextDown` is `x` itself. The following special cases
+ /// also apply:
+ ///
+ /// - If `x` is `infinity`, then `x.nextDown` is `greatestFiniteMagnitude`.
+ /// - If `x` is `leastNonzeroMagnitude`, then `x.nextDown` is `0.0`.
+ /// - If `x` is zero, then `x.nextDown` is `-leastNonzeroMagnitude`.
+ /// - If `x` is `-greatestFiniteMagnitude`, then `x.nextDown` is `-infinity`.
+ public func nextDown(status: inout DecimalStatus) -> Self {
+ // This method should be 'getNextDown', but Swift has 'Double.nextDown'
+ // property, so we will use the same name.
+ return self._nextDown(status: &status)
+ }
+
+ // MARK: - Quantum
+
+ /// The floating-point value with the same sign and exponent as this value,
+ /// but with a significand of 1.0.
+ ///
+ /// A *quantum* is a set of decimal floating-point values that all have the
+ /// same sign and exponent. The `quantum` property is a member of the same
+ /// decade as this value, but with a unit significand.
+ ///
+ /// In this example, `x` has a value of `33.33333333333333` which is stored as
+ /// `3333333333333333E-14 = 3333333333333333 * 10 ** -14`.
+ /// Therefore, `x.quantum` is equal to `+1E-14`.
+ ///
+ /// let x = 100 / 3 // +3333333333333333E-14
+ /// let y = x.quantum // +1E-14
+ ///
+ /// IEEE-754: Definition 2.1.44 quantum
+ ///
+ /// The quantum of a finite floating-point representation is the value of a unit
+ /// in the last position of its significand. This is equal to the radix raised
+ /// to the exponent q, which is used when the significand is regarded as an integer.
+ public var quantum: Self { self._quantum }
+
+ /// IEEE-754: `sourceFormat quantize(source, source)`.
+ ///
+ /// For finite decimal operands x and y of the same format, `quantize(x, y)`
+ /// is a floating-point number in the same format that has, if possible,
+ /// the same numerical value as x and the same quantum as y.
+ ///
+ /// If the exponent is being increased, rounding according to the applicable
+ /// rounding-direction attribute might occur: the result is a different
+ /// floating-point representation and the inexact exception is signaled
+ /// if the result does not have the same numerical value as x.
+ ///
+ /// If the exponent is being decreased and the significand of the result would
+ /// have more than p digits, the invalid operation exception is signaled
+ /// and the result is NaN.
+ ///
+ /// If one or both operands are NaN, the rules in 6.2 are followed.
+ ///
+ /// Otherwise if only one operand is infinite then the invalid operation
+ /// exception is signaled and the result is NaN.
+ ///
+ /// If both operands are infinite then the result is canonical ∞ with the
+ /// sign of x.
+ ///
+ /// `quantize` does not signal underflow or overflow.
+ /// The preferred exponent is Q(y).
+ public func quantized(
+ to other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._quantize(other: other, rounding: rounding, status: &status)
+ }
+
+ /// IEEE-754: `boolean sameQuantum(source, source)`
+ ///
+ /// For numerical decimal operands x and y of the same format, sameQuantum(x, y)
+ /// is true if the exponents of x and y are the same, that is, Q(x) = Q(y),
+ /// and false otherwise.
+ ///
+ /// `sameQuantum(NaN, NaN)` and `sameQuantum(inf, inf)` are true; if exactly one
+ /// operand is infinite or exactly one operand is NaN, sameQuantum is false.
+ ///
+ /// `sameQuantum` signals no exception.
+ public func sameQuantum(as other: Self) -> Bool {
+ return self._sameQuantum(other: other)
+ }
+
+ // MARK: - Round
+
+ /// Returns this value rounded to an integral value using the specified
+ /// rounding rule.
+ ///
+ /// The following example rounds a value using four different rounding rules:
+ ///
+ /// let x = 6.5
+ ///
+ /// // Equivalent to the C 'round' function:
+ /// print(x.rounded(.toNearestOrAwayFromZero))
+ /// // Prints "7.0"
+ ///
+ /// // Equivalent to the C 'trunc' function:
+ /// print(x.rounded(.towardZero))
+ /// // Prints "6.0"
+ ///
+ /// // Equivalent to the C 'ceil' function:
+ /// print(x.rounded(.up))
+ /// // Prints "7.0"
+ ///
+ /// // Equivalent to the C 'floor' function:
+ /// print(x.rounded(.down))
+ /// // Prints "6.0"
+ ///
+ /// For more information about the available rounding rules, see the
+ /// `DecimalFloatingPointRoundingRule` enumeration. To round a value using the
+ /// default "schoolbook rounding", you can use the shorter `rounded()`
+ /// method instead.
+ ///
+ /// print(x.rounded())
+ /// // Prints "7.0"
+ ///
+ /// - Parameter rule: The rounding rule to use.
+ /// - Returns: The integral value found by rounding using `rule`.
+ public func rounded(
+ _ rule: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._round(rule, status: &status)
+ }
+
+ // MARK: - Hash
+
+ /// Hashes the essential components of this value by feeding them into the
+ /// given hasher.
+ ///
+ /// Implement this method to conform to the `Hashable` protocol. The
+ /// components used for hashing must be the same as the components compared
+ /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
+ /// with each of these components.
+ ///
+ /// - Important: In your implementation of `hash(into:)`,
+ /// don't call `finalize()` on the `hasher` instance provided,
+ /// or replace it with a different instance.
+ /// Doing so may become a compile-time error in the future.
+ ///
+ /// - Parameter hasher: The hasher to use when combining the components
+ /// of this instance.
+ public func hash(into hasher: inout Hasher) {
+ self._hash(into: &hasher)
+ }
+
+ // MARK: - Codable
+
+ public init(from decoder: Decoder) throws {
+ let container = try decoder.singleValueContainer()
+ let bidString = try container.decode(String.self)
+
+ guard let bid = BID(bidString) else {
+ throw DecodingError.dataCorruptedError(
+ in: container,
+ debugDescription: "Unable to parse {name} from \"\(bidString)\""
+ )
+ }
+
+ self.bid = bid
+ }
+
+ public func encode(to encoder: Encoder) throws {
+ var container = encoder.singleValueContainer()
+ try container.encode(self.bid.description)
+ }
+}
diff --git a/Scripts/generate-src/__main__.py b/Scripts/generate-src/__main__.py
new file mode 100644
index 0000000..fa38c4b
--- /dev/null
+++ b/Scripts/generate-src/__main__.py
@@ -0,0 +1,29 @@
+import sys
+import decimals
+import int_extensions
+import wide_uint_types
+import decimal_protocol
+import binary_floating_point_extensions
+import binary_floating_point_tables
+
+
+def main():
+ if len(sys.argv) != 2:
+ print(f"USAGE: python3 SCRIPT OUTPUT_DIR")
+ return
+
+ output_dir = sys.argv[1]
+
+ # Decimals have to be before protocol, because the protocol is based on Decimal64.
+ decimals.generate(output_dir)
+ decimal_protocol.generate(output_dir)
+
+ int_extensions.generate(output_dir)
+ wide_uint_types.generate(output_dir)
+
+ binary_floating_point_extensions.generate(output_dir)
+ binary_floating_point_tables.generate(output_dir)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/Scripts/generate-src/binary_floating_point_extensions.py b/Scripts/generate-src/binary_floating_point_extensions.py
new file mode 100644
index 0000000..39948bb
--- /dev/null
+++ b/Scripts/generate-src/binary_floating_point_extensions.py
@@ -0,0 +1,92 @@
+import os
+from io import TextIOWrapper
+from common import (
+ DecimalType,
+ BinaryFloatingPointType,
+ GENERATED_HEADER,
+ DECIMAL_TYPES,
+ BINARY_FLOATING_POINT_TYPES,
+ Rounding,
+)
+
+
+def generate(output_dir: str):
+ path = os.path.join(output_dir, f"BinaryFloatingPoint+Decimal.swift")
+
+ with open(path, "w") as f:
+ f.write(GENERATED_HEADER)
+
+ for b in BINARY_FLOATING_POINT_TYPES:
+ is_float80 = b.name == "Float80"
+
+ f.write("\n")
+ f.write(f"// MARK: - {b.name}\n")
+
+ if is_float80:
+ f.write("\n")
+ f.write(
+ "#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)\n"
+ )
+
+ f.write("\n")
+ f.write(f"extension {b.name} {{\n")
+
+ for d in DECIMAL_TYPES:
+ f.write(
+ f"""
+ /// Creates a new instance from the given value, rounding using the specified
+ /// rounding mode.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: {d.name},
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {{
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }}
+
+ // overload: only rounding or no args
+ public init(
+ _ source: {d.name},
+ rounding: DecimalFloatingPointRoundingRule = .{Rounding.decimal_to_binary_floating_point}
+ ) {{
+ var status = DecimalStatus()
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }}
+
+ // overload: only status
+ public init(
+ _ source: {d.name},
+ status: inout DecimalStatus
+ ) {{
+ let rounding = DecimalFloatingPointRoundingRule.{Rounding.decimal_to_binary_floating_point}
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }}
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ public init?(exactly source: {d.name}) {{
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.{Rounding.decimal_to_binary_floating_point}
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {{
+ return nil
+ }}
+ }}
+"""
+ )
+
+ f.write("}\n")
+
+ if is_float80:
+ f.write("\n#endif\n")
diff --git a/Scripts/generate-src/binary_floating_point_tables.py b/Scripts/generate-src/binary_floating_point_tables.py
new file mode 100644
index 0000000..161e190
--- /dev/null
+++ b/Scripts/generate-src/binary_floating_point_tables.py
@@ -0,0 +1,296 @@
+import os
+from io import TextIOWrapper
+from dataclasses import dataclass
+from common import GENERATED_HEADER
+
+# Split big tables into multiple smaller ones if needed.
+# (Because Swift compiler REALLY does not like big tables.)
+
+# Above this size we will split into smaller units.
+TABLE_SPLIT_THRESHOLD = 75
+# How many rows are in a single unit?
+SMALL_TABLE_SIZE = 50
+
+
+@dataclass
+class _AbstractTable:
+ name: str
+ # Type stored in the Array
+ stored_swift_type: str
+ # Type returned by the 'big table' function
+ returned_swift_type: str
+ lines: list[str]
+
+ def to_swift_line(self, line: str):
+ assert False, "'_AbstractTable.to_swift_line' should be overridden."
+
+
+def generate(output_dir: str):
+ tables = _read_tables()
+ path = os.path.join(output_dir, f"BinaryFloatingPointTables.swift")
+
+ with open(path, "w") as f:
+ f.write(GENERATED_HEADER)
+
+ f.write(
+ """
+// swiftlint:disable all
+
+// TODO: [Swift bug] Compiling big tables require 15min+ and 20GB+ of ram
+// We have to split big tables into a multiple smaller ones.
+// Otherwise the compilation would take at least 15min and 20GB of ram.
+// 'At least' because I never managed to compile it.
+
+/// Tables of values for the various conversions:
+///
+/// - exponents: table of output exponents
+/// - breakpoints: test values to decide between two possible exponents
+/// - multipliers1/multipliers2: corresponding reciprocal multipliers
+/// - coefflimits: used in exactness checks
+internal enum BinaryFloatingPointTables {}
+"""
+ )
+
+ for t in tables:
+ _write_mark(f, t.name)
+
+ if len(t.lines) < TABLE_SPLIT_THRESHOLD:
+ _write_small_table(f, t)
+ else:
+ _write_big_table(f, t)
+
+
+def _write_small_table(f: TextIOWrapper, table: _AbstractTable):
+ f.write("extension BinaryFloatingPointTables {\n")
+ f.write(f" internal static let {table.name}: [{table.stored_swift_type}] = [\n")
+
+ for line in table.lines:
+ _write_line(f, table, line)
+
+ f.write(f" ]\n")
+ f.write("}\n")
+
+
+def _write_big_table(f: TextIOWrapper, table: _AbstractTable):
+ table_count = (len(table.lines) // SMALL_TABLE_SIZE) + 1
+ is_returning_table_value = table.stored_swift_type == table.returned_swift_type
+
+ f.write(
+ f"""\
+extension BinaryFloatingPointTables {{
+ internal static func {table.name}(_ index: Int) -> {table.returned_swift_type} {{
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: {SMALL_TABLE_SIZE})
+"""
+ )
+
+ if not is_returning_table_value:
+ f.write(f" let result: {table.stored_swift_type}\n")
+
+ f.write("\n")
+ f.write(" switch q {\n")
+
+ for n in range(table_count):
+ f.write(f" case {n}: ")
+
+ if is_returning_table_value:
+ f.write(f"return ")
+ else:
+ f.write(f"result = ")
+
+ f.write(f"{table.name}_{n}[r]\n")
+
+ f.write(' default: preconditionFailure("Index out of range")\n')
+ f.write(" }\n")
+
+ if not is_returning_table_value:
+ f.write("\n")
+ f.write(f" return {table.returned_swift_type}(truncatingIfNeeded: result)\n")
+
+ f.write(" }\n")
+ f.write("}\n")
+
+ for n in range(table_count):
+ f.write(f"\n")
+ f.write(f"private let {table.name}_{n}: [{table.stored_swift_type}] = [\n")
+
+ start = n * SMALL_TABLE_SIZE
+ end = start + SMALL_TABLE_SIZE
+ lines = table.lines[start:end]
+
+ for line in lines:
+ _write_line(f, table, line)
+
+ f.write(f"]\n")
+
+
+def _write_line(f: TextIOWrapper, table: _AbstractTable, line: str):
+ # Split value and comment
+ split = line.split("//")
+
+ l = split[0].strip()
+ l = table.to_swift_line(l)
+ f.write(l)
+ f.write(",")
+
+ if len(split) == 2:
+ comment = split[1].strip()
+ f.write(" // ")
+ f.write(comment)
+
+ f.write("\n")
+
+
+def _write_mark(f: TextIOWrapper, s: str):
+ f.write("\n")
+ f.write("// MARK: - ")
+ f.write(s)
+ f.write("\n")
+ f.write("\n")
+
+
+# ===================
+# === Read tables ===
+# ===================
+
+
+class _Int16Table(_AbstractTable):
+ def __init__(self, name: str, lines: list[str]) -> None:
+ super().__init__(name, "Int16", "Int", lines)
+
+ def to_swift_line(self, line: str):
+ return line.replace(",", "")
+
+
+class _Int32Table(_AbstractTable):
+ def __init__(self, name: str, lines: list[str]) -> None:
+ super().__init__(name, "Int32", "Int", lines)
+
+ def to_swift_line(self, line: str):
+ return line.replace(",", "")
+
+
+class _UInt128Table(_AbstractTable):
+ def __init__(self, name: str, lines: list[str]) -> None:
+ super().__init__(name, "UInt128", "UInt128", lines)
+
+ def to_swift_line(self, line: str):
+ w1, w0 = _parse_wide_int(line)
+ return f"UInt128({w0}, {w1})"
+
+
+class _UInt256Table(_AbstractTable):
+ def __init__(self, name: str, lines: list[str]) -> None:
+ super().__init__(name, "UInt256", "UInt256", lines)
+
+ def to_swift_line(self, line: str):
+ w3, w2, w1, w0 = _parse_wide_int(line)
+ return f"UInt256({w0}, {w1}, {w2}, {w3})"
+
+
+def _parse_wide_int(line: str) -> list[str]:
+ # {{2815461535676025517ull, 98607613ull}},
+ # {{11435047252012674334ull, 201452880473063984ull, 4951948911778577462ull, 2037035976334486086ull}},
+
+ assert line.startswith("{{"), line
+ assert line.endswith("}},") or line.endswith("}}"), line
+ l = line.replace("{", "").replace("}", "").replace("ull", "")
+
+ if l.endswith(","):
+ l = l[:-1]
+
+ result: list[str] = []
+
+ for s in l.split(","):
+ s = s.strip()
+ result.append(s)
+
+ return result
+
+
+def _read_tables() -> list[_AbstractTable]:
+ dir = os.path.dirname(__file__)
+ path = os.path.join(dir, "binary_floating_point_tables.txt")
+ result: list[_AbstractTable] = []
+
+ with open(path, "r") as f:
+ while True:
+ t = _read_table(f)
+
+ if t is not None:
+ result.append(t)
+ else:
+ break
+
+ return result
+
+
+def _read_table(f: TextIOWrapper) -> _AbstractTable | None:
+ def read_line():
+ line = ""
+
+ # Skip empty
+ while not line:
+ pos_before = f.tell()
+ line = f.readline().strip()
+ pos_after = f.tell()
+
+ # EOF?
+ if pos_after == pos_before:
+ return ""
+
+ return line
+
+ line = read_line()
+
+ if line == "":
+ return None
+
+ comment_lines: list[str] = []
+
+ while line.startswith("//"):
+ comment_lines.append(line)
+ line = read_line()
+
+ # static const BID_UINT128 bid_power_five[] = {
+ assert line.startswith("static const"), line
+ line = line.replace("static const", "").replace("[]", "")
+ split = line.split()
+ assert len(split) == 4, "Invalid 1st line. Move the 1st value to next line."
+
+ name = split[1]
+ c_type = split[0]
+
+ line = read_line()
+ lines: list[str] = []
+
+ while line and line != "};":
+ # Sometimes UInt256 is split into 2 lines.
+ if c_type == "BID_UINT256" and not (
+ line.endswith("}},") or line.endswith("}}")
+ ):
+ line2 = read_line()
+ assert line2.endswith("}},") or line2.endswith("}}"), line2
+ line = line + " " + line2
+
+ lines.append(line)
+ line = read_line()
+
+ assert line == "};", line
+
+ # This table does not fit in Int16.
+ if name == "bid_exponents_binary80":
+ return _Int32Table(name, lines)
+
+ if c_type == "int":
+ return _Int16Table(name, lines)
+
+ if c_type == "BID_UINT128":
+ return _UInt128Table(name, lines)
+
+ if c_type == "BID_UINT256":
+ return _UInt256Table(name, lines)
+
+ assert False, "Unknown C type: " + c_type
diff --git a/Scripts/generate-src/binary_floating_point_tables.txt b/Scripts/generate-src/binary_floating_point_tables.txt
new file mode 100644
index 0000000..c2ff146
--- /dev/null
+++ b/Scripts/generate-src/binary_floating_point_tables.txt
@@ -0,0 +1,83696 @@
+
+static const BID_UINT128 bid_roundbound_128[] = {
+ {{0ull, (1ull << 63)}}, // BID_ROUNDING_TO_NEAREST | positive | even
+ {{~0ull, (1ull << 63) - 1}}, // BID_ROUNDING_TO_NEAREST | positive | odd
+ {{0ull, (1ull << 63)}}, // BID_ROUNDING_TO_NEAREST | negative | even
+ {{~0ull, (1ull << 63) - 1}}, // BID_ROUNDING_TO_NEAREST | negative | odd
+
+ {{~0ull, ~0ull}}, // BID_ROUNDING_DOWN | positive | even
+ {{~0ull, ~0ull}}, // BID_ROUNDING_DOWN | positive | odd
+ {{0ull, 0ull}}, // BID_ROUNDING_DOWN | negative | even
+ {{0ull, 0ull}}, // BID_ROUNDING_DOWN | negative | odd
+
+ {{0ull, 0ull}}, // BID_ROUNDING_UP | positive | even
+ {{0ull, 0ull}}, // BID_ROUNDING_UP | positive | odd
+ {{~0ull, ~0ull}}, // BID_ROUNDING_UP | negative | even
+ {{~0ull, ~0ull}}, // BID_ROUNDING_UP | negative | odd
+
+ {{~0ull, ~0ull}}, // BID_ROUNDING_TO_ZERO | positive | even
+ {{~0ull, ~0ull}}, // BID_ROUNDING_TO_ZERO | positive | odd
+ {{~0ull, ~0ull}}, // BID_ROUNDING_TO_ZERO | negative | even
+ {{~0ull, ~0ull}}, // BID_ROUNDING_TO_ZERO | negative | odd
+
+ {{~0ull, (1ull << 63) - 1}}, // BID_ROUNDING_TIES_AWAY | positive | even
+ {{~0ull, (1ull << 63) - 1}}, // BID_ROUNDING_TIES_AWAY | positive | odd
+ {{~0ull, (1ull << 63) - 1}}, // BID_ROUNDING_TIES_AWAY | negative | even
+ {{~0ull, (1ull << 63) - 1}}, // BID_ROUNDING_TIES_AWAY | negative | odd
+};
+
+// Table of powers of 5
+static const BID_UINT128 bid_power_five[] = {
+ {{1ull, 0ull}},
+ {{5ull, 0ull}},
+ {{25ull, 0ull}},
+ {{125ull, 0ull}},
+ {{625ull, 0ull}},
+ {{3125ull, 0ull}},
+ {{15625ull, 0ull}},
+ {{78125ull, 0ull}},
+ {{390625ull, 0ull}},
+ {{1953125ull, 0ull}},
+ {{9765625ull, 0ull}},
+ {{48828125ull, 0ull}},
+ {{244140625ull, 0ull}},
+ {{1220703125ull, 0ull}},
+ {{6103515625ull, 0ull}},
+ {{30517578125ull, 0ull}},
+ {{152587890625ull, 0ull}},
+ {{762939453125ull, 0ull}},
+ {{3814697265625ull, 0ull}},
+ {{19073486328125ull, 0ull}},
+ {{95367431640625ull, 0ull}},
+ {{476837158203125ull, 0ull}},
+ {{2384185791015625ull, 0ull}},
+ {{11920928955078125ull, 0ull}},
+ {{59604644775390625ull, 0ull}},
+ {{298023223876953125ull, 0ull}},
+ {{1490116119384765625ull, 0ull}},
+ {{7450580596923828125ull, 0ull}},
+ {{359414837200037393ull, 2ull}},
+ {{1797074186000186965ull, 10ull}},
+ {{8985370930000934825ull, 50ull}},
+ {{8033366502585570893ull, 252ull}},
+ {{3273344365508751233ull, 1262ull}},
+ {{16366721827543756165ull, 6310ull}},
+ {{8046632842880574361ull, 31554ull}},
+ {{3339676066983768573ull, 157772ull}},
+ {{16698380334918842865ull, 788860ull}},
+ {{9704925379756007861ull, 3944304ull}},
+ {{11631138751360936073ull, 19721522ull}},
+ {{2815461535676025517ull, 98607613ull}},
+ {{14077307678380127585ull, 493038065ull}},
+ {{15046306170771983077ull, 2465190328ull}},
+ {{1444554559021708921ull, 12325951644ull}},
+ {{7222772795108544605ull, 61629758220ull}},
+ {{17667119901833171409ull, 308148791101ull}},
+ {{14548623214327650581ull, 1540743955509ull}},
+ {{17402883850509598057ull, 7703719777548ull}},
+ {{13227442957709783821ull, 38518598887744ull}},
+ {{10796982567420264257ull, 192592994438723ull}}
+};
+
+static const BID_UINT128 bid_coefflimits_bid32[] = {
+ {{10000000ull, 0ull}},
+ {{2000000ull, 0ull}},
+ {{400000ull, 0ull}},
+ {{80000ull, 0ull}},
+ {{16000ull, 0ull}},
+ {{3200ull, 0ull}},
+ {{640ull, 0ull}},
+ {{128ull, 0ull}},
+ {{25ull, 0ull}},
+ {{5ull, 0ull}},
+ {{1ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}}
+};
+
+static const BID_UINT128 bid_coefflimits_bid64[] = {
+ {{10000000000000000ull, 0ull}},
+ {{2000000000000000ull, 0ull}},
+ {{400000000000000ull, 0ull}},
+ {{80000000000000ull, 0ull}},
+ {{16000000000000ull, 0ull}},
+ {{3200000000000ull, 0ull}},
+ {{640000000000ull, 0ull}},
+ {{128000000000ull, 0ull}},
+ {{25600000000ull, 0ull}},
+ {{5120000000ull, 0ull}},
+ {{1024000000ull, 0ull}},
+ {{204800000ull, 0ull}},
+ {{40960000ull, 0ull}},
+ {{8192000ull, 0ull}},
+ {{1638400ull, 0ull}},
+ {{327680ull, 0ull}},
+ {{65536ull, 0ull}},
+ {{13107ull, 0ull}},
+ {{2621ull, 0ull}},
+ {{524ull, 0ull}},
+ {{104ull, 0ull}},
+ {{20ull, 0ull}},
+ {{4ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}}
+};
+
+static const BID_UINT128 bid_coefflimits_bid128[] = {
+ {{4003012203950112768ull, 542101086242752ull}},
+ {{8179300070273843200ull, 108420217248550ull}},
+ {{1635860014054768640ull, 21684043449710ull}},
+ {{327172002810953728ull, 4336808689942ull}},
+ {{7444132030046011392ull, 867361737988ull}},
+ {{12556872850234933248ull, 173472347597ull}},
+ {{9890072199530807296ull, 34694469519ull}},
+ {{16735409698873802752ull, 6938893903ull}},
+ {{14415128384000491520ull, 1387778780ull}},
+ {{2883025676800098304ull, 277555756ull}},
+ {{4265953950101929984ull, 55511151ull}},
+ {{4542539604762296320ull, 11102230ull}},
+ {{908507920952459264ull, 2220446ull}},
+ {{3871050398932402176ull, 444089ull}},
+ {{15531605338754121728ull, 88817ull}},
+ {{10485018697234644992ull, 17763ull}},
+ {{13165050183672659968ull, 3552ull}},
+ {{10011707666218352640ull, 710ull}},
+ {{2002341533243670528ull, 142ull}},
+ {{7779165936132554752ull, 28ull}},
+ {{12623879631452241920ull, 5ull}},
+ {{2524775926290448384ull, 1ull}},
+ {{4194304000000000000ull, 0ull}},
+ {{838860800000000000ull, 0ull}},
+ {{167772160000000000ull, 0ull}},
+ {{33554432000000000ull, 0ull}},
+ {{6710886400000000ull, 0ull}},
+ {{1342177280000000ull, 0ull}},
+ {{268435456000000ull, 0ull}},
+ {{53687091200000ull, 0ull}},
+ {{10737418240000ull, 0ull}},
+ {{2147483648000ull, 0ull}},
+ {{429496729600ull, 0ull}},
+ {{85899345920ull, 0ull}},
+ {{17179869184ull, 0ull}},
+ {{3435973836ull, 0ull}},
+ {{687194767ull, 0ull}},
+ {{137438953ull, 0ull}},
+ {{27487790ull, 0ull}},
+ {{5497558ull, 0ull}},
+ {{1099511ull, 0ull}},
+ {{219902ull, 0ull}},
+ {{43980ull, 0ull}},
+ {{8796ull, 0ull}},
+ {{1759ull, 0ull}},
+ {{351ull, 0ull}},
+ {{70ull, 0ull}},
+ {{14ull, 0ull}},
+ {{2ull, 0ull}}
+};
+
+static const BID_UINT128 bid_breakpoints_bid32[] = {
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{11908810229357645280ull, 469708516554766ull}},
+ {{5954405114678822640ull, 234854258277383ull}},
+ {{12200574594194187128ull, 117427129138691ull}},
+ {{15323659333951869372ull, 58713564569345ull}},
+ {{2831320374921140396ull, 293567822846729ull}},
+ {{10639032224315346006ull, 146783911423364ull}},
+ {{5319516112157673003ull, 73391955711682ull}},
+ {{8150836487078813399ull, 366959778558411ull}},
+ {{13298790280394182507ull, 183479889279205ull}},
+ {{15872767177051867061ull, 91739944639602ull}},
+ {{5576859590421128845ull, 458699723198014ull}},
+ {{2788429795210564422ull, 229349861599007ull}},
+ {{10617586934460058019ull, 114674930799503ull}},
+ {{14532165504084804817ull, 57337465399751ull}},
+ {{17320595299295369240ull, 286687326998758ull}},
+ {{8660297649647684620ull, 143343663499379ull}},
+ {{13553520861678618118ull, 71671831749689ull}},
+ {{12427372087264435742ull, 358359158748448ull}},
+ {{6213686043632217871ull, 179179579374224ull}},
+ {{3106843021816108935ull, 89589789687112ull}},
+ {{15534215109080544677ull, 447948948435560ull}},
+ {{7767107554540272338ull, 223974474217780ull}},
+ {{3883553777270136169ull, 111987237108890ull}},
+ {{971024812641129231ull, 559936185544451ull}},
+ {{9708884443175340423ull, 279968092772225ull}},
+ {{14077814258442446019ull, 139984046386112ull}},
+ {{7038907129221223009ull, 69992023193056ull}},
+ {{16747791572396563433ull, 349960115965281ull}},
+ {{17597267823053057524ull, 174980057982640ull}},
+ {{8798633911526528762ull, 87490028991320ull}},
+ {{7099681410213540580ull, 437450144956602ull}},
+ {{3549840705106770290ull, 218725072478301ull}},
+ {{10998292389408160953ull, 109362536239150ull}},
+ {{18097973799621701533ull, 546812681195752ull}},
+ {{9048986899810850766ull, 273406340597876ull}},
+ {{4524493449905425383ull, 136703170298938ull}},
+ {{2262246724952712691ull, 68351585149469ull}},
+ {{11311233624763563458ull, 341757925747345ull}},
+ {{14878988849236557537ull, 170878962873672ull}},
+ {{7439494424618278768ull, 85439481436836ull}},
+ {{303983975672290610ull, 427197407184182ull}},
+ {{151991987836145305ull, 213598703592091ull}},
+ {{9299368030772848460ull, 106799351796045ull}},
+ {{9603352006445139071ull, 533996758980227ull}},
+ {{14025048040077345343ull, 266998379490113ull}},
+ {{16235896056893448479ull, 133499189745056ull}},
+ {{8117948028446724239ull, 66749594872528ull}},
+ {{3696251994814517967ull, 333747974362642ull}},
+ {{1848125997407258983ull, 166873987181321ull}},
+ {{10147435035558405299ull, 83436993590660ull}},
+ {{13843687030372923267ull, 417184967953302ull}},
+ {{6921843515186461633ull, 208592483976651ull}},
+ {{12684293794448006624ull, 104296241988325ull}},
+ {{8081236751111378276ull, 521481209941628ull}},
+ {{4040618375555689138ull, 260740604970814ull}},
+ {{2020309187777844569ull, 130370302485407ull}},
+ {{10233526630743698092ull, 65185151242703ull}},
+ {{14274145006299387230ull, 325925756213517ull}},
+ {{16360444540004469423ull, 162962878106758ull}},
+ {{8180222270002234711ull, 81481439053379ull}},
+ {{4007623202592070326ull, 407407195266897ull}},
+ {{11227183638150810971ull, 203703597633448ull}},
+ {{5613591819075405485ull, 101851798816724ull}},
+ {{9621215021667475812ull, 509258994083621ull}},
+ {{14033979547688513714ull, 254629497041810ull}},
+ {{7016989773844256857ull, 127314748520905ull}},
+ {{12731866923776904236ull, 63657374260452ull}},
+ {{8319102397755866334ull, 318286871302263ull}},
+ {{13382923235732708975ull, 159143435651131ull}},
+ {{15914833654721130295ull, 79571717825565ull}},
+ {{5787191978767445014ull, 397858589127829ull}},
+ {{12116968026238498315ull, 198929294563914ull}},
+ {{6058484013119249157ull, 99464647281957ull}},
+ {{11845675991886694171ull, 497323236409786ull}},
+ {{5922837995943347085ull, 248661618204893ull}},
+ {{12184791034826449350ull, 124330809102446ull}},
+ {{6092395517413224675ull, 62165404551223ull}},
+ {{12015233513356571761ull, 310827022756116ull}},
+ {{6007616756678285880ull, 155413511378058ull}},
+ {{3003808378339142940ull, 77706755689029ull}},
+ {{15019041891695714701ull, 388533778445145ull}},
+ {{16732892982702633158ull, 194266889222572ull}},
+ {{8366446491351316579ull, 97133444611286ull}},
+ {{4938744309337479665ull, 485667223056432ull}},
+ {{2469372154668739832ull, 242833611528216ull}},
+ {{1234686077334369916ull, 121416805764108ull}},
+ {{617343038667184958ull, 60708402882054ull}},
+ {{3086715193335924790ull, 303542014410270ull}},
+ {{1543357596667962395ull, 151771007205135ull}},
+ {{9995050835188757005ull, 75885503602567ull}},
+ {{13081766028524681796ull, 379427518012837ull}},
+ {{15764255051117116706ull, 189713759006418ull}},
+ {{7882127525558558353ull, 94856879503209ull}},
+ {{2517149480373688533ull, 474284397516047ull}},
+ {{10481946777041620074ull, 237142198758023ull}},
+ {{14464345425375585845ull, 118571099379011ull}},
+ {{16455544749542568730ull, 59285549689505ull}},
+ {{8490747452874637189ull, 296427748447529ull}},
+ {{13468745763292094402ull, 148213874223764ull}},
+ {{6734372881646047201ull, 74106937111882ull}},
+ {{15225120334520684390ull, 370534685559411ull}},
+ {{16835932204115118003ull, 185267342779705ull}},
+ {{17641338138912334809ull, 92633671389852ull}},
+ {{14419714399723467584ull, 463168356949264ull}},
+ {{7209857199861733792ull, 231584178474632ull}},
+ {{3604928599930866896ull, 115792089237316ull}},
+ {{1802464299965433448ull, 57896044618658ull}},
+ {{9012321499827167240ull, 289480223093290ull}},
+ {{4506160749913583620ull, 144740111546645ull}},
+ {{11476452411811567618ull, 72370055773322ull}},
+ {{2042029837929183242ull, 361850278866613ull}},
+ {{10244386955819367429ull, 180925139433306ull}},
+ {{5122193477909683714ull, 90462569716653ull}},
+ {{7164223315838866956ull, 452312848583266ull}},
+ {{3582111657919433478ull, 226156424291633ull}},
+ {{11014427865814492547ull, 113078212145816ull}},
+ {{5507213932907246273ull, 56539106072908ull}},
+ {{9089325590826679752ull, 282695530364541ull}},
+ {{13768034832268115684ull, 141347765182270ull}},
+ {{6884017416134057842ull, 70673882591135ull}},
+ {{15973343006960737594ull, 353369412955676ull}},
+ {{7986671503480368797ull, 176684706477838ull}},
+ {{3993335751740184398ull, 88342353238919ull}},
+ {{1519934684991370376ull, 441711766194596ull}},
+ {{759967342495685188ull, 220855883097298ull}},
+ {{379983671247842594ull, 110427941548649ull}},
+ {{1899918356239212970ull, 552139707743245ull}},
+ {{10173331214974382293ull, 276069853871622ull}},
+ {{5086665607487191146ull, 138034926935811ull}},
+ {{11766704840598371381ull, 69017463467905ull}},
+ {{3493291981863202058ull, 345087317339528ull}},
+ {{1746645990931601029ull, 172543658669764ull}},
+ {{873322995465800514ull, 86271829334882ull}},
+ {{4366614977329002573ull, 431359146674410ull}},
+ {{2183307488664501286ull, 215679573337205ull}},
+ {{10315025781187026451ull, 107839786668602ull}},
+ {{14681640758516029024ull, 539198933343012ull}},
+ {{7340820379258014512ull, 269599466671506ull}},
+ {{3670410189629007256ull, 134799733335753ull}},
+ {{11058577131669279436ull, 67399866667876ull}},
+ {{18399397510927293948ull, 336999333339382ull}},
+ {{9199698755463646974ull, 168499666669691ull}},
+ {{13823221414586599295ull, 84249833334845ull}},
+ {{13775874851804341627ull, 421249166674228ull}},
+ {{6887937425902170813ull, 210624583337114ull}},
+ {{3443968712951085406ull, 105312291668557ull}},
+ {{17219843564755427034ull, 526561458342785ull}},
+ {{17833293819232489325ull, 263280729171392ull}},
+ {{8916646909616244662ull, 131640364585696ull}},
+ {{4458323454808122331ull, 65820182292848ull}},
+ {{3844873200331060040ull, 329100911464241ull}},
+ {{11145808637020305828ull, 164550455732120ull}},
+ {{5572904318510152914ull, 82275227866060ull}},
+ {{9417777518841212954ull, 411376139330301ull}},
+ {{13932260796275382285ull, 205688069665150ull}},
+ {{6966130398137691142ull, 102844034832575ull}},
+ {{16383907916978904097ull, 514220174162876ull}},
+ {{8191953958489452048ull, 257110087081438ull}},
+ {{4095976979244726024ull, 128555043540719ull}},
+ {{11271360526477138820ull, 64277521770359ull}},
+ {{1016570411257039252ull, 321387608851798ull}},
+ {{508285205628519626ull, 160693804425899ull}},
+ {{9477514639669035621ull, 80346902212949ull}},
+ {{10494085050926074874ull, 401734511064747ull}},
+ {{14470414562317813245ull, 200867255532373ull}},
+ {{16458579318013682430ull, 100433627766186ull}},
+ {{8505920295230205688ull, 502168138830934ull}},
+ {{4252960147615102844ull, 251084069415467ull}},
+ {{11349852110662327230ull, 125542034707733ull}},
+ {{14898298092185939423ull, 62771017353866ull}},
+ {{704514166091490651ull, 313855086769334ull}},
+ {{352257083045745325ull, 156927543384667ull}},
+ {{9399500578377648470ull, 78463771692333ull}},
+ {{10104014744469139122ull, 392318858461667ull}},
+ {{14275379409089345369ull, 196159429230833ull}},
+ {{16361061741399448492ull, 98079714615416ull}},
+ {{8018332412159035998ull, 490398573077084ull}},
+ {{4009166206079517999ull, 245199286538542ull}},
+ {{2004583103039758999ull, 122599643269271ull}},
+ {{10225663588374655307ull, 61299821634635ull}},
+ {{14234829794454173307ull, 306499108173177ull}},
+ {{16340786934081862461ull, 153249554086588ull}},
+ {{8170393467040931230ull, 76624777043294ull}},
+ {{3958479187785552922ull, 383123885216472ull}},
+ {{1979239593892776461ull, 191561942608236ull}},
+ {{989619796946388230ull, 95780971304118ull}},
+ {{4948098984731941152ull, 478904856520590ull}},
+ {{2474049492365970576ull, 239452428260295ull}},
+ {{10460396783037761096ull, 119726214130147ull}},
+ {{14453570428373656356ull, 59863107065073ull}},
+ {{16927619920739626932ull, 299315535325368ull}},
+ {{8463809960369813466ull, 149657767662684ull}},
+ {{4231904980184906733ull, 74828883831342ull}},
+ {{2712780827214982049ull, 374144419156711ull}},
+ {{10579762450462266832ull, 187072209578355ull}},
+ {{14513253262085909224ull, 93536104789177ull}},
+ {{17226034089300891273ull, 467680523945888ull}},
+ {{8613017044650445636ull, 233840261972944ull}},
+ {{4306508522325222818ull, 116920130986472ull}},
+ {{2153254261162611409ull, 58460065493236ull}},
+ {{10766271305813057046ull, 292300327466180ull}},
+ {{5383135652906528523ull, 146150163733090ull}},
+ {{2691567826453264261ull, 73075081866545ull}},
+ {{13457839132266321307ull, 365375409332725ull}},
+ {{15952291602987936461ull, 182687704666362ull}},
+ {{7976145801493968230ull, 91343852333181ull}},
+ {{2987240860050737922ull, 456719261665907ull}},
+ {{10716992466880144769ull, 228359630832953ull}},
+ {{14581868270294848192ull, 114179815416476ull}},
+ {{7290934135147424096ull, 57089907708238ull}},
+ {{18007926602027568865ull, 285449538541191ull}},
+ {{18227335337868560240ull, 142724769270595ull}},
+ {{18337039705789055928ull, 71362384635297ull}},
+ {{17898222234107073178ull, 356811923176489ull}},
+ {{18172483153908312397ull, 178405961588244ull}},
+ {{9086241576954156198ull, 89202980794122ull}},
+ {{8537719737351677760ull, 446014903970612ull}},
+ {{4268859868675838880ull, 223007451985306ull}},
+ {{2134429934337919440ull, 111503725992653ull}},
+ {{10672149671689597200ull, 557518629963265ull}},
+ {{14559446872699574408ull, 278759314981632ull}},
+ {{7279723436349787204ull, 139379657490816ull}},
+ {{3639861718174893602ull, 69689828745408ull}},
+ {{18199308590874468010ull, 348449143727040ull}},
+ {{9099654295437234005ull, 174224571863520ull}},
+ {{4549827147718617002ull, 87112285931760ull}},
+ {{4302391664883533397ull, 435561429658801ull}},
+ {{11374567869296542506ull, 217780714829400ull}},
+ {{5687283934648271253ull, 108890357414700ull}},
+ {{9989675599531804650ull, 544451787073501ull}},
+ {{14218209836620678133ull, 272225893536750ull}},
+ {{7109104918310339066ull, 136112946768375ull}},
+ {{12777924496009945341ull, 68056473384187ull}},
+ {{8549390258921071858ull, 340282366920938ull}},
+ {{4274695129460535929ull, 170141183460469ull}},
+ {{11360719601585043772ull, 85070591730234ull}},
+ {{1463365786796564015ull, 425352958651173ull}},
+ {{9955054930253057815ull, 212676479325586ull}},
+ {{4977527465126528907ull, 106338239662793ull}},
+ {{6440893251923092922ull, 531691198313966ull}},
+ {{3220446625961546461ull, 265845599156983ull}},
+ {{10833595349835549038ull, 132922799578491ull}},
+ {{14640169711772550327ull, 66461399789245ull}},
+ {{17860616337734096788ull, 332306998946228ull}},
+ {{8930308168867048394ull, 166153499473114ull}},
+ {{4465154084433524197ull, 83076749736557ull}},
+ {{3879026348458069369ull, 415383748682786ull}},
+ {{1939513174229034684ull, 207691874341393ull}},
+ {{10193128623969293150ull, 103845937170696ull}},
+ {{14072154972427362520ull, 519229685853482ull}},
+ {{7036077486213681260ull, 259614842926741ull}},
+ {{12741410779961616438ull, 129807421463370ull}},
+ {{6370705389980808219ull, 64903710731685ull}},
+ {{13406782876194489479ull, 324518553658426ull}},
+ {{6703391438097244739ull, 162259276829213ull}},
+ {{12575067755903398177ull, 81129638414606ull}},
+ {{7535106558388336041ull, 405648192073033ull}},
+ {{12990925316048943828ull, 202824096036516ull}},
+ {{6495462658024471914ull, 101412048018258ull}},
+ {{14030569216412807955ull, 507060240091291ull}},
+ {{16238656645061179785ull, 253530120045645ull}},
+ {{17342700359385365700ull, 126765060022822ull}},
+ {{8671350179692682850ull, 63382530011411ull}},
+ {{6463262751044311020ull, 316912650057057ull}},
+ {{12455003412376931318ull, 158456325028528ull}},
+ {{6227501706188465659ull, 79228162514264ull}},
+ {{12690764457232776679ull, 396140812571321ull}},
+ {{15568754265471164147ull, 198070406285660ull}},
+ {{7784377132735582073ull, 99035203142830ull}},
+ {{2028397516258807136ull, 495176015714152ull}},
+ {{1014198758129403568ull, 247588007857076ull}},
+ {{507099379064701784ull, 123794003928538ull}},
+ {{253549689532350892ull, 61897001964269ull}},
+ {{1267748447661754460ull, 309485009821345ull}},
+ {{9857246260685653038ull, 154742504910672ull}},
+ {{4928623130342826519ull, 77371252455336ull}},
+ {{6196371578004580979ull, 386856262276681ull}},
+ {{12321557825857066297ull, 193428131138340ull}},
+ {{6160778912928533148ull, 96714065569170ull}},
+ {{12357150490933114128ull, 483570327845851ull}},
+ {{15401947282321332872ull, 241785163922925ull}},
+ {{16924345678015442244ull, 120892581961462ull}},
+ {{8462172839007721122ull, 60446290980731ull}},
+ {{5417376047619502378ull, 302231454903657ull}},
+ {{11932060060664526997ull, 151115727451828ull}},
+ {{5966030030332263498ull, 75557863725914ull}},
+ {{11383406077951765876ull, 377789318629571ull}},
+ {{14915075075830658746ull, 188894659314785ull}},
+ {{16680909574770105181ull, 94447329657392ull}},
+ {{9617571579012319442ull, 472236648286964ull}},
+ {{4808785789506159721ull, 236118324143482ull}},
+ {{2404392894753079860ull, 118059162071741ull}},
+ {{10425568484231315738ull, 59029581035870ull}},
+ {{15234354273737475459ull, 295147905179352ull}},
+ {{7617177136868737729ull, 147573952589676ull}},
+ {{3808588568434368864ull, 73786976294838ull}},
+ {{596198768462292708ull, 368934881474191ull}},
+ {{9521471421085922162ull, 184467440737095ull}},
+ {{13984107747397736889ull, 92233720368547ull}},
+ {{14580306515860029597ull, 461168601842738ull}},
+ {{7290153257930014798ull, 230584300921369ull}},
+ {{12868448665819783207ull, 115292150460684ull}},
+ {{6434224332909891603ull, 57646075230342ull}},
+ {{13724377590839906402ull, 288230376151711ull}},
+ {{16085560832274729009ull, 144115188075855ull}},
+ {{17266152452992140312ull, 72057594037927ull}},
+ {{12543785970122495098ull, 360287970189639ull}},
+ {{15495265021916023357ull, 180143985094819ull}},
+ {{16971004547812787486ull, 90071992547409ull}},
+ {{11068046444225730969ull, 450359962737049ull}},
+ {{14757395258967641292ull, 225179981368524ull}},
+ {{7378697629483820646ull, 112589990684262ull}},
+ {{3689348814741910323ull, 56294995342131ull}},
+ {{18446744073709551615ull, 281474976710655ull}},
+ {{18446744073709551615ull, 140737488355327ull}},
+ {{18446744073709551615ull, 70368744177663ull}},
+ {{18446744073709551615ull, 351843720888319ull}},
+ {{18446744073709551615ull, 175921860444159ull}},
+ {{18446744073709551615ull, 87960930222079ull}},
+ {{18446744073709551615ull, 439804651110399ull}},
+ {{18446744073709551615ull, 219902325555199ull}},
+ {{18446744073709551615ull, 109951162777599ull}},
+ {{18446744073709551615ull, 549755813887999ull}},
+ {{18446744073709551615ull, 274877906943999ull}},
+ {{18446744073709551615ull, 137438953471999ull}},
+ {{18446744073709551615ull, 68719476735999ull}},
+ {{18446744073709551615ull, 343597383679999ull}},
+ {{18446744073709551615ull, 171798691839999ull}},
+ {{18446744073709551615ull, 85899345919999ull}},
+ {{18446744073709551615ull, 429496729599999ull}},
+ {{18446744073709551615ull, 214748364799999ull}},
+ {{18446744073709551615ull, 107374182399999ull}},
+ {{18446744073709551615ull, 536870911999999ull}},
+ {{18446744073709551615ull, 268435455999999ull}},
+ {{18446744073709551615ull, 134217727999999ull}},
+ {{18446744073709551615ull, 67108863999999ull}},
+ {{18446744073709551615ull, 335544319999999ull}},
+ {{18446744073709551615ull, 167772159999999ull}},
+ {{18446744073709551615ull, 83886079999999ull}},
+ {{18446744073709551615ull, 419430399999999ull}},
+ {{18446744073709551615ull, 209715199999999ull}},
+ {{18446744073709551615ull, 104857599999999ull}},
+ {{18446744073709551615ull, 524287999999999ull}},
+ {{18446744073709551615ull, 262143999999999ull}},
+ {{18446744073709551615ull, 131071999999999ull}},
+ {{18446744073709551615ull, 65535999999999ull}},
+ {{18446744073709551615ull, 327679999999999ull}},
+ {{18446744073709551615ull, 163839999999999ull}},
+ {{18446744073709551615ull, 81919999999999ull}},
+ {{18446744073709551615ull, 409599999999999ull}},
+ {{18446744073709551615ull, 204799999999999ull}},
+ {{18446744073709551615ull, 102399999999999ull}},
+ {{18446744073709551615ull, 511999999999999ull}},
+ {{18446744073709551615ull, 255999999999999ull}},
+ {{18446744073709551615ull, 127999999999999ull}},
+ {{18446744073709551615ull, 63999999999999ull}},
+ {{18446744073709551615ull, 319999999999999ull}},
+ {{18446744073709551615ull, 159999999999999ull}},
+ {{18446744073709551615ull, 79999999999999ull}},
+ {{18446744073709551615ull, 399999999999999ull}},
+ {{18446744073709551615ull, 199999999999999ull}},
+ {{18446744073709551615ull, 99999999999999ull}},
+ {{18446744073709551615ull, 499999999999999ull}},
+ {{18446744073709551615ull, 249999999999999ull}},
+ {{18446744073709551615ull, 124999999999999ull}},
+ {{18446744073709551615ull, 62499999999999ull}},
+ {{18446744073709551615ull, 312499999999999ull}},
+ {{18446744073709551615ull, 156249999999999ull}},
+ {{18446744073709551615ull, 78124999999999ull}},
+ {{18446744073709551615ull, 390624999999999ull}},
+ {{18446744073709551615ull, 195312499999999ull}},
+ {{18446744073709551615ull, 97656249999999ull}},
+ {{18446744073709551615ull, 488281249999999ull}},
+ {{18446744073709551615ull, 244140624999999ull}},
+ {{18446744073709551615ull, 122070312499999ull}},
+ {{18446744073709551615ull, 61035156249999ull}},
+ {{18446744073709551615ull, 305175781249999ull}},
+ {{18446744073709551615ull, 152587890624999ull}},
+ {{18446744073709551615ull, 76293945312499ull}},
+ {{18446744073709551615ull, 381469726562499ull}},
+ {{18446744073709551615ull, 190734863281249ull}},
+ {{18446744073709551615ull, 95367431640624ull}},
+ {{18446744073709551615ull, 476837158203124ull}},
+ {{9223372036854775807ull, 238418579101562ull}},
+ {{4611686018427387903ull, 119209289550781ull}},
+ {{11529215046068469759ull, 59604644775390ull}},
+ {{2305843009213693951ull, 298023223876953ull}},
+ {{10376293541461622783ull, 149011611938476ull}},
+ {{5188146770730811391ull, 74505805969238ull}},
+ {{7493989779944505343ull, 372529029846191ull}},
+ {{12970366926827028479ull, 186264514923095ull}},
+ {{15708555500268290047ull, 93132257461547ull}},
+ {{4755801206503243775ull, 465661287307739ull}},
+ {{11601272640106397695ull, 232830643653869ull}},
+ {{15024008356907974655ull, 116415321826934ull}},
+ {{7512004178453987327ull, 58207660913467ull}},
+ {{666532744850833407ull, 291038304567337ull}},
+ {{9556638409280192511ull, 145519152283668ull}},
+ {{4778319204640096255ull, 72759576141834ull}},
+ {{5444851949490929663ull, 363797880709171ull}},
+ {{11945798011600240639ull, 181898940354585ull}},
+ {{15196271042654896127ull, 90949470177292ull}},
+ {{2194378918436274175ull, 454747350886464ull}},
+ {{1097189459218137087ull, 227373675443232ull}},
+ {{548594729609068543ull, 113686837721616ull}},
+ {{274297364804534271ull, 56843418860808ull}},
+ {{1371486824022671359ull, 284217094304040ull}},
+ {{685743412011335679ull, 142108547152020ull}},
+ {{342871706005667839ull, 71054273576010ull}},
+ {{1714358530028339199ull, 355271367880050ull}},
+ {{857179265014169599ull, 177635683940025ull}},
+ {{9651961669361860607ull, 88817841970012ull}},
+ {{11366320199390199807ull, 444089209850062ull}},
+ {{5683160099695099903ull, 222044604925031ull}},
+ {{12064952086702325759ull, 111022302462515ull}},
+ {{4984528212382973951ull, 555111512312578ull}},
+ {{2492264106191486975ull, 277555756156289ull}},
+ {{10469504089950519295ull, 138777878078144ull}},
+ {{5234752044975259647ull, 69388939039072ull}},
+ {{7727016151166746623ull, 346944695195361ull}},
+ {{13086880112438149119ull, 173472347597680ull}},
+ {{6543440056219074559ull, 86736173798840ull}},
+ {{14270456207385821183ull, 433680868994201ull}},
+ {{16358600140547686399ull, 216840434497100ull}},
+ {{8179300070273843199ull, 108420217248550ull}},
+ {{4003012203950112767ull, 542101086242752ull}},
+ {{2001506101975056383ull, 271050543121376ull}},
+ {{1000753050987528191ull, 135525271560688ull}},
+ {{500376525493764095ull, 67762635780344ull}},
+ {{2501882627468820479ull, 338813178901720ull}},
+ {{1250941313734410239ull, 169406589450860ull}},
+ {{625470656867205119ull, 84703294725430ull}},
+ {{3127353284336025599ull, 423516473627150ull}},
+ {{1563676642168012799ull, 211758236813575ull}},
+ {{10005210357938782207ull, 105879118406787ull}},
+ {{13132563642274807807ull, 529395592033937ull}},
+ {{15789653857992179711ull, 264697796016968ull}},
+ {{7894826928996089855ull, 132348898008484ull}},
+ {{3947413464498044927ull, 66174449004242ull}},
+ {{1290323248780673023ull, 330872245021211ull}},
+ {{9868533661245112319ull, 165436122510605ull}},
+ {{14157638867477331967ull, 82718061255302ull}},
+ {{15447962116258004991ull, 413590306276513ull}},
+ {{16947353094983778303ull, 206795153138256ull}},
+ {{8473676547491889151ull, 103397576569128ull}},
+ {{5474894590040342527ull, 516987882845642ull}},
+ {{2737447295020171263ull, 258493941422821ull}},
+ {{10592095684364861439ull, 129246970711410ull}},
+ {{5296047842182430719ull, 64623485355705ull}},
+ {{8033495137202601983ull, 323117426778526ull}},
+ {{4016747568601300991ull, 161558713389263ull}},
+ {{11231745821155426303ull, 80779356694631ull}},
+ {{818496884648476671ull, 403896783473158ull}},
+ {{409248442324238335ull, 201948391736579ull}},
+ {{9427996258016894975ull, 100974195868289ull}},
+ {{10246493142665371647ull, 504870979341447ull}},
+ {{14346618608187461631ull, 252435489670723ull}},
+ {{16396681340948506623ull, 126217744835361ull}},
+ {{17421712707329029119ull, 63108872417680ull}},
+ {{13321587241806939135ull, 315544362088404ull}},
+ {{6660793620903469567ull, 157772181044202ull}},
+ {{3330396810451734783ull, 78886090522101ull}},
+ {{16651984052258673919ull, 394430452610505ull}},
+ {{17549364062984112767ull, 197215226305252ull}},
+ {{8774682031492056383ull, 98607613152626ull}},
+ {{6979922010041178687ull, 493038065763132ull}},
+ {{3489961005020589343ull, 246519032881566ull}},
+ {{1744980502510294671ull, 123259516440783ull}},
+ {{10095862288109923143ull, 61629758220391ull}},
+ {{13585823293130512487ull, 308148791101957ull}},
+ {{16016283683420032051ull, 154074395550978ull}},
+ {{8008141841710016025ull, 77037197775489ull}},
+ {{3147221061130976897ull, 385185988877447ull}},
+ {{10796982567420264256ull, 192592994438723ull}},
+ {{14621863320564907936ull, 96296497219361ull}},
+ {{17769084381695884834ull, 481482486096808ull}},
+ {{8884542190847942417ull, 240741243048404ull}},
+ {{4442271095423971208ull, 120370621524202ull}},
+ {{2221135547711985604ull, 60185310762101ull}},
+ {{11105677738559928021ull, 300926553810505ull}},
+ {{14776210906134739818ull, 150463276905252ull}},
+ {{7388105453067369909ull, 75231638452626ull}},
+ {{47039117917746314ull, 376158192263132ull}},
+ {{23519558958873157ull, 188079096131566ull}},
+ {{11759779479436578ull, 94039548065783ull}},
+ {{58798897397182893ull, 470197740328915ull}},
+ {{9252771485553367254ull, 235098870164457ull}},
+ {{13849757779631459435ull, 117549435082228ull}},
+ {{6924878889815729717ull, 58774717541114ull}},
+ {{16177650375369096972ull, 293873587705571ull}},
+ {{17312197224539324294ull, 146936793852785ull}},
+ {{17879470649124437955ull, 73468396926392ull}},
+ {{15610376950783983311ull, 367341984631964ull}},
+ {{7805188475391991655ull, 183670992315982ull}},
+ {{3902594237695995827ull, 91835496157991ull}},
+ {{1066227114770427523ull, 459177480789956ull}},
+ {{533113557385213761ull, 229588740394978ull}},
+ {{266556778692606880ull, 114794370197489ull}},
+ {{9356650426201079248ull, 57397185098744ull}},
+ {{9889763983586293010ull, 286985925493722ull}},
+ {{4944881991793146505ull, 143492962746861ull}},
+ {{11695813032751349060ull, 71746481373430ull}},
+ {{3138832942628090454ull, 358732406867153ull}},
+ {{10792788508168821035ull, 179366203433576ull}},
+ {{5396394254084410517ull, 89683101716788ull}},
+ {{8535227196712500972ull, 448415508583941ull}},
+ {{13490985635211026294ull, 224207754291970ull}},
+ {{6745492817605513147ull, 112103877145985ull}},
+ {{15280720014318014119ull, 560519385729926ull}},
+ {{7640360007159007059ull, 280259692864963ull}},
+ {{13043552040434279337ull, 140129846432481ull}},
+ {{15745148057071915476ull, 70064923216240ull}},
+ {{4938763990521370920ull, 350324616081204ull}},
+ {{2469381995260685460ull, 175162308040602ull}},
+ {{1234690997630342730ull, 87581154020301ull}},
+ {{6173454988151713650ull, 437905770101505ull}},
+ {{12310099530930632633ull, 218952885050752ull}},
+ {{6155049765465316316ull, 109476442525376ull}},
+ {{12328504753617029967ull, 547382212626881ull}},
+ {{15387624413663290791ull, 273691106313440ull}},
+ {{7693812206831645395ull, 136845553156720ull}},
+ {{3846906103415822697ull, 68422776578360ull}},
+ {{787786443369561873ull, 342113882891801ull}},
+ {{9617265258539556744ull, 171056941445900ull}},
+ {{4808632629269778372ull, 85528470722950ull}},
+ {{5596419072639340246ull, 427642353614751ull}},
+ {{12021581573174445931ull, 213821176807375ull}},
+ {{15234162823441998773ull, 106910588403687ull}},
+ {{2383837822371787403ull, 534552942018439ull}},
+ {{10415290948040669509ull, 267276471009219ull}},
+ {{14431017510875110562ull, 133638235504609ull}},
+ {{16438880792292331089ull, 66819117752304ull}},
+ {{8407427666623448983ull, 334095588761524ull}},
+ {{4203713833311724491ull, 167047794380762ull}},
+ {{2101856916655862245ull, 83523897190381ull}},
+ {{10509284583279311229ull, 417619485951905ull}},
+ {{14478014328494431422ull, 208809742975952ull}},
+ {{7239007164247215711ull, 104404871487976ull}},
+ {{17748291747526526940ull, 522024357439881ull}},
+ {{18097517910618039278ull, 261012178719940ull}},
+ {{9048758955309019639ull, 130506089359970ull}},
+ {{4524379477654509819ull, 65253044679985ull}},
+ {{4175153314562997481ull, 326265223399926ull}},
+ {{2087576657281498740ull, 163132611699963ull}},
+ {{10267160365495525178ull, 81566305849981ull}},
+ {{14442313680058522660ull, 407831529249907ull}},
+ {{16444528876884037138ull, 203915764624953ull}},
+ {{17445636475296794377ull, 101957882312476ull}},
+ {{13441206081645765421ull, 509789411562384ull}},
+ {{6720603040822882710ull, 254894705781192ull}},
+ {{3360301520411441355ull, 127447352890596ull}},
+ {{1680150760205720677ull, 63723676445298ull}},
+ {{8400753801028603388ull, 318618382226490ull}},
+ {{4200376900514301694ull, 159309191113245ull}},
+ {{11323560487111926655ull, 79654595556622ull}},
+ {{1277570214430978427ull, 398272977783113ull}},
+ {{9862157144070265021ull, 199136488891556ull}},
+ {{4931078572035132510ull, 99568244445778ull}},
+ {{6208648786466110938ull, 497841222228891ull}},
+ {{12327696430087831277ull, 248920611114445ull}},
+ {{15387220251898691446ull, 124460305557222ull}},
+ {{7693610125949345723ull, 62230152778611ull}},
+ {{1574562482327625384ull, 311150763893057ull}},
+ {{10010653278018588500ull, 155575381946528ull}},
+ {{5005326639009294250ull, 77787690973264ull}},
+ {{6579889121336919634ull, 388938454866321ull}},
+ {{12513316597523235625ull, 194469227433160ull}},
+ {{6256658298761617812ull, 97234613716580ull}},
+ {{12836547420098537447ull, 486173068582901ull}},
+ {{15641645746904044531ull, 243086534291450ull}},
+ {{7820822873452022265ull, 121543267145725ull}},
+ {{13133783473580786940ull, 60771633572862ull}},
+ {{10328685146775279856ull, 303858167864313ull}},
+ {{14387714610242415736ull, 151929083932156ull}},
+ {{7193857305121207868ull, 75964541966078ull}},
+ {{17522542451896487724ull, 379822709830391ull}},
+ {{17984643262803019670ull, 189911354915195ull}},
+ {{18215693668256285643ull, 94955677457597ull}},
+ {{17291492046443221751ull, 474778387287989ull}},
+ {{17869118060076386683ull, 237389193643994ull}},
+ {{8934559030038193341ull, 118694596821997ull}},
+ {{13690651551873872478ull, 59347298410998ull}},
+ {{13113025538240707546ull, 296736492054993ull}},
+ {{15779884805975129581ull, 148368246027496ull}},
+ {{7889942402987564790ull, 74184123013748ull}},
+ {{2556223867518720721ull, 370920615068742ull}},
+ {{1278111933759360360ull, 185460307534371ull}},
+ {{9862428003734455988ull, 92730153767185ull}},
+ {{12418651871253176710ull, 463650768835927ull}},
+ {{15432697972481364163ull, 231825384417963ull}},
+ {{16939721023095457889ull, 115912692208981ull}},
+ {{17693232548402504752ull, 57956346104490ull}},
+ {{14679186447174317299ull, 289781730522454ull}},
+ {{7339593223587158649ull, 144890865261227ull}},
+ {{12893168648648355132ull, 72445432630613ull}},
+ {{9125611022113120816ull, 362227163153068ull}},
+ {{4562805511056560408ull, 181113581576534ull}},
+ {{2281402755528280204ull, 90556790788267ull}},
+ {{11407013777641401020ull, 452783953941335ull}},
+ {{14926878925675476318ull, 226391976970667ull}},
+ {{16686811499692513967ull, 113195988485333ull}},
+ {{17566777786701032791ull, 56597994242666ull}},
+ {{14046912638666957494ull, 282989971213334ull}},
+ {{7023456319333478747ull, 141494985606667ull}},
+ {{12735100196521515181ull, 70747492803333ull}},
+ {{8335268761478921059ull, 353737464016668ull}},
+ {{4167634380739460529ull, 176868732008334ull}},
+ {{2083817190369730264ull, 88434366004167ull}},
+ {{10419085951848651324ull, 442171830020835ull}},
+ {{14432915012779101470ull, 221085915010417ull}},
+ {{16439829543244326543ull, 110542957505208ull}},
+ {{8412171421383426251ull, 552714787526044ull}},
+ {{4206085710691713125ull, 276357393763022ull}},
+ {{2103042855345856562ull, 138178696881511ull}},
+ {{10274893464527704089ull, 69089348440755ull}},
+ {{14480979175219417215ull, 345446742203777ull}},
+ {{16463861624464484415ull, 172723371101888ull}},
+ {{8231930812232242207ull, 86361685550944ull}},
+ {{4266165913742107807ull, 431808427754722ull}},
+ {{2133082956871053903ull, 215904213877361ull}},
+ {{10289913515290302759ull, 107952106938680ull}},
+ {{14556079429032410566ull, 539760534693402ull}},
+ {{7278039714516205283ull, 269880267346701ull}},
+ {{12862391894112878449ull, 134940133673350ull}},
+ {{6431195947056439224ull, 67470066836675ull}},
+ {{13709235661572644508ull, 337350334183376ull}},
+ {{6854617830786322254ull, 168675167091688ull}},
+ {{3427308915393161127ull, 84337583545844ull}},
+ {{17136544576965805635ull, 421687917729220ull}},
+ {{8568272288482902817ull, 210843958864610ull}},
+ {{4284136144241451408ull, 105421979432305ull}},
+ {{2973936647497705428ull, 527109897161526ull}},
+ {{1486968323748852714ull, 263554948580763ull}},
+ {{9966856198729202165ull, 131777474290381ull}},
+ {{14206800136219376890ull, 65888737145190ull}},
+ {{15693768459968229604ull, 329443685725953ull}},
+ {{17070256266838890610ull, 164721842862976ull}}
+};
+
+static const BID_UINT128 bid_breakpoints_bid64[] = {
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{0ull, 0ull}},
+ {{632147898099709952ull, 73239311802481213ull}},
+ {{9539445985904630784ull, 36619655901240606ull}},
+ {{4769722992952315392ull, 18309827950620303ull}},
+ {{5401870891052025344ull, 91549139753101516ull}},
+ {{2700935445526012672ull, 45774569876550758ull}},
+ {{1350467722763006208ull, 22887284938275379ull}},
+ {{6752338613815031552ull, 114436424691376895ull}},
+ {{12599541343762291456ull, 57218212345688447ull}},
+ {{15523142708735921408ull, 28609106172844223ull}},
+ {{3828737248841401600ull, 143045530864221119ull}},
+ {{11137740661275476480ull, 71522765432110559ull}},
+ {{14792242367492514048ull, 35761382716055279ull}},
+ {{16619493220601032704ull, 17880691358027639ull}},
+ {{9310489808166957824ull, 89403456790138199ull}},
+ {{13878616940938254592ull, 44701728395069099ull}},
+ {{16162680507323902976ull, 22350864197534549ull}},
+ {{7026426241781309440ull, 111754320987672749ull}},
+ {{12736585157745430528ull, 55877160493836374ull}},
+ {{6368292578872715264ull, 27938580246918187ull}},
+ {{13394718820654024704ull, 139692901234590936ull}},
+ {{6697359410327012352ull, 69846450617295468ull}},
+ {{3348679705163506176ull, 34923225308647734ull}},
+ {{1674339852581753088ull, 17461612654323867ull}},
+ {{8371699262908765440ull, 87308063271619335ull}},
+ {{13409221668309158400ull, 43654031635809667ull}},
+ {{15927982871009355008ull, 21827015817904833ull}},
+ {{5852938060208568832ull, 109135079089524169ull}},
+ {{12149841066959060224ull, 54567539544762084ull}},
+ {{6074920533479529984ull, 27283769772381042ull}},
+ {{11927858593688099072ull, 136418848861905211ull}},
+ {{15187301333698825216ull, 68209424430952605ull}},
+ {{16817022703704188416ull, 34104712215476302ull}},
+ {{8408511351852094208ull, 17052356107738151ull}},
+ {{5149068611841367808ull, 85261780538690757ull}},
+ {{11797906342775459584ull, 42630890269345378ull}},
+ {{5898953171387729664ull, 21315445134672689ull}},
+ {{11048021783229097728ull, 106577225673363446ull}},
+ {{5524010891614548736ull, 53288612836681723ull}},
+ {{11985377482662050048ull, 26644306418340861ull}},
+ {{4586655192181596416ull, 133221532091704308ull}},
+ {{2293327596090798080ull, 66610766045852154ull}},
+ {{1146663798045399040ull, 33305383022926077ull}},
+ {{9796703935877475328ull, 16652691511463038ull}},
+ {{12090031531968273664ull, 83263457557315192ull}},
+ {{6045015765984136704ull, 41631728778657596ull}},
+ {{3022507882992068352ull, 20815864389328798ull}},
+ {{15112539414960342016ull, 104079321946643990ull}},
+ {{7556269707480171008ull, 52039660973321995ull}},
+ {{13001506890594861312ull, 26019830486660997ull}},
+ {{9667302231845651712ull, 130099152433304988ull}},
+ {{4833651115922825728ull, 65049576216652494ull}},
+ {{2416825557961412864ull, 32524788108326247ull}},
+ {{10431784815835482112ull, 16262394054163123ull}},
+ {{15265435931758308096ull, 81311970270815617ull}},
+ {{16856090002733929728ull, 40655985135407808ull}},
+ {{8428045001366964736ull, 20327992567703904ull}},
+ {{5246736859415721472ull, 101639962838519522ull}},
+ {{2623368429707860736ull, 50819981419259761ull}},
+ {{10535056251708706048ull, 25409990709629880ull}},
+ {{15781793111124427520ull, 127049953548149402ull}},
+ {{7890896555562213632ull, 63524976774074701ull}},
+ {{13168820314635882496ull, 31762488387037350ull}},
+ {{6584410157317941248ull, 15881244193518675ull}},
+ {{14475306712880155136ull, 79406220967593376ull}},
+ {{7237653356440077568ull, 39703110483796688ull}},
+ {{3618826678220038656ull, 19851555241898344ull}},
+ {{18094133391100194048ull, 99257776209491720ull}},
+ {{9047066695550096896ull, 49628888104745860ull}},
+ {{4523533347775048448ull, 24814444052372930ull}},
+ {{4170922665165690880ull, 124072220261864651ull}},
+ {{11308833369437621248ull, 62036110130932325ull}},
+ {{14877788721573586432ull, 31018055065466162ull}},
+ {{7438894360786793216ull, 15509027532733081ull}},
+ {{300983656514862848ull, 77545137663665407ull}},
+ {{9373863865112207104ull, 38772568831832703ull}},
+ {{13910303969410879232ull, 19386284415916351ull}},
+ {{14211287625925742080ull, 96931422079581758ull}},
+ {{7105643812962871040ull, 48465711039790879ull}},
+ {{12776193943336211200ull, 24232855519895439ull}},
+ {{8540737495552401920ull, 121164277599477198ull}},
+ {{4270368747776200960ull, 60582138799738599ull}},
+ {{11358556410742876160ull, 30291069399869299ull}},
+ {{14902650242226213888ull, 15145534699934649ull}},
+ {{726274916292863232ull, 75727673499673249ull}},
+ {{9586509495001207296ull, 37863836749836624ull}},
+ {{4793254747500603648ull, 18931918374918312ull}},
+ {{5519529663793467136ull, 94659591874591561ull}},
+ {{11983136868751509248ull, 47329795937295780ull}},
+ {{5991568434375754496ull, 23664897968647890ull}},
+ {{11511098098169221632ull, 118324489843239451ull}},
+ {{14978921085939386624ull, 59162244921619725ull}},
+ {{16712832579824468992ull, 29581122460809862ull}},
+ {{8356416289912234496ull, 14790561230404931ull}},
+ {{4888593302142069504ull, 73952806152024657ull}},
+ {{11667668687925810432ull, 36976403076012328ull}},
+ {{5833834343962905088ull, 18488201538006164ull}},
+ {{10722427646104974848ull, 92441007690030821ull}},
+ {{14584585859907263232ull, 46220503845015410ull}},
+ {{7292292929953631488ull, 23110251922507705ull}},
+ {{18014720576058606592ull, 115551259612538526ull}},
+ {{9007360288029303296ull, 57775629806269263ull}},
+ {{13727052180869427456ull, 28887814903134631ull}},
+ {{16086898127289489408ull, 14443907451567315ull}},
+ {{6647514341609241088ull, 72219537257836579ull}},
+ {{12547129207659396352ull, 36109768628918289ull}},
+ {{15496936640684473856ull, 18054884314459144ull}},
+ {{3697706908584163584ull, 90274421572295724ull}},
+ {{1848853454292081664ull, 45137210786147862ull}},
+ {{924426727146040832ull, 22568605393073931ull}},
+ {{4622133635730204416ull, 112843026965369655ull}},
+ {{11534438854719877888ull, 56421513482684827ull}},
+ {{14990591464214714624ull, 28210756741342413ull}},
+ {{1165981026235367680ull, 141053783706712069ull}},
+ {{9806362549972459520ull, 70526891853356034ull}},
+ {{4903181274986229760ull, 35263445926678017ull}},
+ {{11674962674347890688ull, 17631722963339008ull}},
+ {{3034581150610798848ull, 88158614816695043ull}},
+ {{10740662612160175104ull, 44079307408347521ull}},
+ {{14593703342934863360ull, 22039653704173760ull}},
+ {{17628284493545662208ull, 110198268520868803ull}},
+ {{18037514283627606784ull, 55099134260434401ull}},
+ {{18242129178668579072ull, 27549567130217200ull}},
+ {{17423669598504689920ull, 137747835651086004ull}},
+ {{8711834799252344832ull, 68873917825543002ull}},
+ {{4355917399626172416ull, 34436958912771501ull}},
+ {{11401330736667862016ull, 17218479456385750ull}},
+ {{1666421462210655232ull, 86092397281928753ull}},
+ {{10056582767960103424ull, 43046198640964376ull}},
+ {{5028291383980051712ull, 21523099320482188ull}},
+ {{6694712846190706944ull, 107615496602410941ull}},
+ {{12570728459950129152ull, 53807748301205470ull}},
+ {{6285364229975064576ull, 26903874150602735ull}},
+ {{12980077076165771776ull, 134519370753013676ull}},
+ {{6490038538082885888ull, 67259685376506838ull}},
+ {{3245019269041442816ull, 33629842688253419ull}},
+ {{10845881671375497216ull, 16814921344126709ull}},
+ {{17335920209458383104ull, 84074606720633547ull}},
+ {{17891332141583967232ull, 42037303360316773ull}},
+ {{18169038107646759424ull, 21018651680158386ull}},
+ {{17058214243395590912ull, 105093258400791934ull}},
+ {{8529107121697795328ull, 52546629200395967ull}},
+ {{13487925597703673344ull, 26273314600197983ull}},
+ {{12099395767389712896ull, 131366573000989918ull}},
+ {{6049697883694856448ull, 65683286500494959ull}},
+ {{12248220978702203904ull, 32841643250247479ull}},
+ {{15347482526205877760ull, 16420821625123739ull}},
+ {{2950436336191182592ull, 82104108125618699ull}},
+ {{10698590204950366976ull, 41052054062809349ull}},
+ {{14572667139329959168ull, 20526027031404674ull}},
+ {{17523103475521142016ull, 102630135157023373ull}},
+ {{17984923774615346688ull, 51315067578511686ull}},
+ {{8992461887307673344ull, 25657533789255843ull}},
+ {{8068821289119264000ull, 128287668946279217ull}},
+ {{13257782681414407680ull, 64143834473139608ull}},
+ {{6628891340707203840ull, 32071917236569804ull}},
+ {{3314445670353601792ull, 16035958618284902ull}},
+ {{16572228351768009728ull, 80179793091424510ull}},
+ {{8286114175884004864ull, 40089896545712255ull}},
+ {{13366429124796778240ull, 20044948272856127ull}},
+ {{11491913402855236352ull, 100224741364280638ull}},
+ {{5745956701427618048ull, 50112370682140319ull}},
+ {{12096350387568584704ull, 25056185341070159ull}},
+ {{5141519716714269696ull, 125280926705350798ull}},
+ {{2570759858357134848ull, 62640463352675399ull}},
+ {{10508751966033343232ull, 31320231676337699ull}},
+ {{14477748019871447296ull, 15660115838168849ull}},
+ {{17048507878228582144ull, 78300579190844248ull}},
+ {{8524253939114290944ull, 39150289595422124ull}},
+ {{4262126969557145344ull, 19575144797711062ull}},
+ {{2863890774076176128ull, 97875723988555311ull}},
+ {{10655317423892863744ull, 48937861994277655ull}},
+ {{14551030748801207552ull, 24468930997138827ull}},
+ {{17414921522877383936ull, 122344654985694138ull}},
+ {{8707460761438691840ull, 61172327492847069ull}},
+ {{13577102417574121728ull, 30586163746423534ull}},
+ {{6788551208787060736ull, 15293081873211767ull}},
+ {{15496011970225752832ull, 76465409366058836ull}},
+ {{7748005985112876288ull, 38232704683029418ull}},
+ {{3874002992556438016ull, 19116352341514709ull}},
+ {{923270889072639488ull, 95581761707573546ull}},
+ {{461635444536319744ull, 47790880853786773ull}},
+ {{9454189759122935552ull, 23895440426893386ull}},
+ {{10377460648195575040ull, 119477202134466932ull}},
+ {{5188730324097787392ull, 59738601067233466ull}},
+ {{2594365162048893696ull, 29869300533616733ull}},
+ {{10520554617879222528ull, 14934650266808366ull}},
+ {{15709284941977010176ull, 74673251334041832ull}},
+ {{7854642470988505088ull, 37336625667020916ull}},
+ {{3927321235494252544ull, 18668312833510458ull}},
+ {{1189862103761711104ull, 93341564167552291ull}},
+ {{9818303088735631360ull, 46670782083776145ull}},
+ {{14132523581222591488ull, 23335391041888072ull}},
+ {{15322385684984302592ull, 116676955209440363ull}},
+ {{16884564879346927104ull, 58338477604720181ull}},
+ {{17665654476528239360ull, 29169238802360090ull}},
+ {{8832827238264119552ull, 14584619401180045ull}},
+ {{7270648043901495296ull, 72923097005900227ull}},
+ {{12858696058805523456ull, 36461548502950113ull}},
+ {{15652720066257537536ull, 18230774251475056ull}},
+ {{4476624036449481216ull, 91153871257375284ull}},
+ {{2238312018224740608ull, 45576935628687642ull}},
+ {{1119156009112370176ull, 22788467814343821ull}},
+ {{5595780045561851392ull, 113942339071719105ull}},
+ {{12021262059635701504ull, 56971169535859552ull}},
+ {{6010631029817850624ull, 28485584767929776ull}},
+ {{11606411075379702272ull, 142427923839648881ull}},
+ {{15026577574544626944ull, 71213961919824440ull}},
+ {{7513288787272313344ull, 35606980959912220ull}},
+ {{3756644393636156672ull, 17803490479956110ull}},
+ {{336477894471232000ull, 89017452399780551ull}},
+ {{9391610984090391808ull, 44508726199890275ull}},
+ {{13919177528899971584ull, 22254363099945137ull}},
+ {{14255655423371203840ull, 111271815499725688ull}},
+ {{7127827711685601792ull, 55635907749862844ull}},
+ {{3563913855842800896ull, 27817953874931422ull}},
+ {{17819569279214004736ull, 139089769374657110ull}},
+ {{8909784639607002368ull, 69544884687328555ull}},
+ {{13678264356658276864ull, 34772442343664277ull}},
+ {{16062504215183914240ull, 17386221171832138ull}},
+ {{6525544781081364992ull, 86931105859160694ull}},
+ {{3262772390540682496ull, 43465552929580347ull}},
+ {{10854758232125116928ull, 21732776464790173ull}},
+ {{17380303013206482176ull, 108663882323950867ull}},
+ {{17913523543458016768ull, 54331941161975433ull}},
+ {{18180133808583784192ull, 27165970580987716ull}},
+ {{17113692748080714752ull, 135829852904938584ull}},
+ {{8556846374040357376ull, 67914926452469292ull}},
+ {{4278423187020178688ull, 33957463226234646ull}},
+ {{2139211593510089216ull, 16978731613117323ull}},
+ {{10696057967550446592ull, 84893658065586615ull}},
+ {{14571401020629999104ull, 42446829032793307ull}},
+ {{16509072547169775360ull, 21223414516396653ull}},
+ {{8758386441010670336ull, 106117072581983269ull}},
+ {{13602565257360110848ull, 53058536290991634ull}},
+ {{6801282628680055296ull, 26529268145495817ull}},
+ {{15559669069690725888ull, 132646340727479086ull}},
+ {{7779834534845362944ull, 66323170363739543ull}},
+ {{13113289304277457152ull, 33161585181869771ull}},
+ {{15780016688993504256ull, 16580792590934885ull}},
+ {{5113107150129315840ull, 82903962954674429ull}},
+ {{11779925611919433728ull, 41451981477337214ull}},
+ {{5889962805959716864ull, 20725990738668607ull}},
+ {{11003069956089032704ull, 103629953693343036ull}},
+ {{5501534978044516352ull, 51814976846671518ull}},
+ {{2750767489022258176ull, 25907488423335759ull}},
+ {{13753837445111290880ull, 129537442116678795ull}},
+ {{16100290759410421248ull, 64768721058339397ull}},
+ {{17273517416559986432ull, 32384360529169698ull}},
+ {{8636758708279993088ull, 16192180264584849ull}},
+ {{6290305393980862720ull, 80960901322924247ull}},
+ {{12368524733845207040ull, 40480450661462123ull}},
+ {{15407634403777379328ull, 20240225330731061ull}},
+ {{3251195724048690688ull, 101201126653655309ull}},
+ {{10848969898879121152ull, 50600563326827654ull}},
+ {{5424484949439560448ull, 25300281663413827ull}},
+ {{8675680673488251136ull, 126501408317069136ull}},
+ {{4337840336744125440ull, 63250704158534568ull}},
+ {{2168920168372062720ull, 31625352079267284ull}},
+ {{1084460084186031360ull, 15812676039633642ull}},
+ {{5422300420930157056ull, 79063380198168210ull}},
+ {{2711150210465078528ull, 39531690099084105ull}},
+ {{10578947142087314944ull, 19765845049542052ull}},
+ {{16001247563017472000ull, 98829225247710262ull}},
+ {{8000623781508736000ull, 49414612623855131ull}},
+ {{13223683927609143808ull, 24707306311927565ull}},
+ {{10778187416917064192ull, 123536531559637828ull}},
+ {{5389093708458532096ull, 61768265779818914ull}},
+ {{2694546854229265920ull, 30884132889909457ull}},
+ {{10570645463969408768ull, 15442066444954728ull}},
+ {{15959739172427940864ull, 77210332224773642ull}},
+ {{7979869586213970432ull, 38605166112386821ull}},
+ {{13213306829961761024ull, 19302583056193410ull}},
+ {{10726301928680150272ull, 96512915280967053ull}},
+ {{14586523001194850816ull, 48256457640483526ull}},
+ {{7293261500597425408ull, 24128228820241763ull}},
+ {{18019563429277575936ull, 120641144101208816ull}},
+ {{9009781714638787840ull, 60320572050604408ull}},
+ {{4504890857319393792ull, 30160286025302204ull}},
+ {{2252445428659696896ull, 15080143012651102ull}},
+ {{11262227143298484992ull, 75400715063255510ull}},
+ {{5631113571649242368ull, 37700357531627755ull}},
+ {{12038928822679396864ull, 18850178765813877ull}},
+ {{4854411892268330240ull, 94250893829069388ull}},
+ {{2427205946134164992ull, 47125446914534694ull}},
+ {{1213602973067082496ull, 23562723457267347ull}},
+ {{6068014865335412992ull, 117813617286336735ull}},
+ {{12257379469522482176ull, 58906808643168367ull}},
+ {{15352061771616016896ull, 29453404321584183ull}},
+ {{16899402922662784256ull, 14726702160792091ull}},
+ {{10710038318475714816ull, 73633510803960459ull}},
+ {{14578391196092633088ull, 36816755401980229ull}},
+ {{16512567634901092352ull, 18408377700990114ull}},
+ {{8775861879667255808ull, 92041888504950574ull}},
+ {{4387930939833627904ull, 46020944252475287ull}},
+ {{11417337506771589632ull, 23010472126237643ull}},
+ {{1746455312729293824ull, 115052360631188218ull}},
+ {{873227656364646912ull, 57526180315594109ull}},
+ {{9659985865037099264ull, 28763090157797054ull}},
+ {{11406441177766393344ull, 143815450788985272ull}},
+ {{5703220588883196672ull, 71907725394492636ull}},
+ {{2851610294441598208ull, 35953862697246318ull}},
+ {{1425805147220798976ull, 17976931348623159ull}},
+ {{7129025736103995648ull, 89884656743115795ull}},
+ {{12787884904906773504ull, 44942328371557897ull}},
+ {{15617314489308162560ull, 22471164185778948ull}},
+ {{4299596151702606848ull, 112355820928894744ull}},
+ {{2149798075851303424ull, 56177910464447372ull}},
+ {{1074899037925651712ull, 28088955232223686ull}},
+ {{5374495189628258560ull, 140444776161118430ull}},
+ {{2687247594814129152ull, 70222388080559215ull}},
+ {{10566995834261840384ull, 35111194040279607ull}},
+ {{14506869953985696000ull, 17555597020139803ull}},
+ {{17194117548799825152ull, 87777985100699018ull}},
+ {{8597058774399912448ull, 43888992550349509ull}},
+ {{13521901424054732032ull, 21944496275174754ull}},
+ {{12269274899145005824ull, 109722481375873773ull}},
+ {{15358009486427278592ull, 54861240687936886ull}},
+ {{7679004743213639168ull, 27430620343968443ull}},
+ {{1501535568649093632ull, 137153101719842217ull}},
+ {{9974139821179322624ull, 68576550859921108ull}},
+ {{4987069910589661184ull, 34288275429960554ull}},
+ {{2493534955294830592ull, 17144137714980277ull}},
+ {{12467674776474153216ull, 85720688574901385ull}},
+ {{15457209425091852288ull, 42860344287450692ull}},
+ {{7728604712545926144ull, 21430172143725346ull}},
+ {{1749535415310527744ull, 107150860718626732ull}},
+ {{874767707655263744ull, 53575430359313366ull}},
+ {{437383853827631872ull, 26787715179656683ull}},
+ {{2186919269138159872ull, 133938575898283415ull}},
+ {{10316831671423855616ull, 66969287949141707ull}},
+ {{14381787872566703616ull, 33484643974570853ull}},
+ {{16414265973138127616ull, 16742321987285426ull}},
+ {{8284353570852431616ull, 83711609936427134ull}},
+ {{4142176785426215680ull, 41855804968213567ull}},
+ {{11294460429567883520ull, 20927902484106783ull}},
+ {{1132069926710763776ull, 104639512420533918ull}},
+ {{566034963355381760ull, 52319756210266959ull}},
+ {{9506389518532466688ull, 26159878105133479ull}},
+ {{10638459445243230464ull, 130799390525667397ull}},
+ {{14542601759476390912ull, 65399695262833698ull}},
+ {{7271300879738195456ull, 32699847631416849ull}},
+ {{12859022476723873536ull, 16349923815708424ull}},
+ {{8954880162490713088ull, 81749619078542123ull}},
+ {{13700812118100132352ull, 40874809539271061ull}},
+ {{16073778095904841984ull, 20437404769635530ull}},
+ {{6581914184686003456ull, 102187023848177654ull}},
+ {{3290957092343001600ull, 51093511924088827ull}},
+ {{10868850583026276608ull, 25546755962044413ull}},
+ {{17450764767712280064ull, 127733779810222067ull}},
+ {{17948754420710915840ull, 63866889905111033ull}},
+ {{18197749247210233600ull, 31933444952555516ull}},
+ {{9098874623605116672ull, 15966722476277758ull}},
+ {{8600884970606481152ull, 79833612381388792ull}},
+ {{4300442485303240448ull, 39916806190694396ull}},
+ {{2150221242651620096ull, 19958403095347198ull}},
+ {{10751106213258101248ull, 99792015476735990ull}},
+ {{5375553106629050624ull, 49896007738367995ull}},
+ {{11911148590169300992ull, 24948003869183997ull}},
+ {{4215510729717850880ull, 124740019345919988ull}},
+ {{2107755364858925312ull, 62370009672959994ull}},
+ {{1053877682429462528ull, 31185004836479997ull}},
+ {{9750310878069507072ull, 15592502418239998ull}},
+ {{11858066242928432640ull, 77962512091199992ull}},
+ {{5929033121464216320ull, 38981256045599996ull}},
+ {{2964516560732108032ull, 19490628022799998ull}},
+ {{14822582803660540672ull, 97453140113999990ull}},
+ {{7411291401830270208ull, 48726570056999995ull}},
+ {{12929017737769910784ull, 24363285028499997ull}},
+ {{9304856467720900096ull, 121816425142499988ull}},
+ {{4652428233860450048ull, 60908212571249994ull}},
+ {{2326214116930224896ull, 30454106285624997ull}},
+ {{10386479095319888128ull, 15227053142812498ull}},
+ {{15038907329180338432ull, 76135265714062492ull}},
+ {{7519453664590169088ull, 38067632857031246ull}},
+ {{3759726832295084544ull, 19033816428515623ull}},
+ {{351890087765871360ull, 95169082142578116ull}},
+ {{175945043882935552ull, 47584541071289058ull}},
+ {{87972521941467648ull, 23792270535644529ull}},
+ {{439862609707339264ull, 118961352678222645ull}},
+ {{9443303341708445440ull, 59480676339111322ull}},
+ {{4721651670854222592ull, 29740338169555661ull}},
+ {{11584197872281886976ull, 14870169084777830ull}},
+ {{2580757140280781056ull, 74350845423889153ull}},
+ {{10513750606995166208ull, 37175422711944576ull}},
+ {{5256875303497583104ull, 18587711355972288ull}},
+ {{7837632443778364160ull, 92938556779861441ull}},
+ {{13142188258743957760ull, 46469278389930720ull}},
+ {{6571094129371978752ull, 23234639194965360ull}},
+ {{14408726573150343168ull, 116173195974826801ull}},
+ {{16427735323429947392ull, 58086597987413400ull}},
+ {{8213867661714973696ull, 29043298993706700ull}},
+ {{4106933830857486848ull, 14521649496853350ull}},
+ {{2087925080577882624ull, 72608247484266751ull}},
+ {{10267334577143717120ull, 36304123742133375ull}},
+ {{14357039325426634240ull, 18152061871066687ull}},
+ {{16444964406004516864ull, 90760309355333438ull}},
+ {{8222482203002258432ull, 45380154677666719ull}},
+ {{13334613138355905024ull, 22690077338833359ull}},
+ {{11332833470650870272ull, 113450386694166798ull}},
+ {{5666416735325435136ull, 56725193347083399ull}},
+ {{12056580404517493248ull, 28362596673541699ull}},
+ {{4942669801458812160ull, 141812983367708498ull}},
+ {{2471334900729405952ull, 70906491683854249ull}},
+ {{10459039487219478784ull, 35453245841927124ull}},
+ {{5229519743609739264ull, 17726622920963562ull}},
+ {{7700854644339145472ull, 88633114604817811ull}},
+ {{13073799359024348416ull, 44316557302408905ull}},
+ {{15760271716366949888ull, 22158278651204452ull}},
+ {{5014382286996544000ull, 110791393256022264ull}},
+ {{2507191143498272000ull, 55395696628011132ull}},
+ {{1253595571749135872ull, 27697848314005566ull}},
+ {{6267977858745679872ull, 138489241570027830ull}},
+ {{3133988929372839936ull, 69244620785013915ull}},
+ {{10790366501541195776ull, 34622310392506957ull}},
+ {{14618555287625373696ull, 17311155196253478ull}},
+ {{17752544216998213632ull, 86555775981267393ull}},
+ {{18099644145353882624ull, 43277887990633696ull}},
+ {{9049822072676941312ull, 21638943995316848ull}},
+ {{8355622215965603328ull, 108194719976584242ull}},
+ {{4177811107982801664ull, 54097359988292121ull}},
+ {{11312277590846176512ull, 27048679994146060ull}},
+ {{1221155733102228480ull, 135243399970730303ull}},
+ {{9833949903405890048ull, 67621699985365151ull}},
+ {{14140346988557720832ull, 33810849992682575ull}},
+ {{16293545531133636096ull, 16905424996341287ull}},
+ {{7680751360829974528ull, 84527124981706439ull}},
+ {{13063747717269763072ull, 42263562490853219ull}},
+ {{15755245895489657344ull, 21131781245426609ull}},
+ {{4989253182610080256ull, 105658906227133049ull}},
+ {{11717998628159815936ull, 52829453113566524ull}},
+ {{5858999314079907840ull, 26414726556783262ull}},
+ {{10848252496689988352ull, 132073632783916311ull}},
+ {{14647498285199769856ull, 66036816391958155ull}},
+ {{16547121179454660608ull, 33018408195979077ull}},
+ {{17496932626582106112ull, 16509204097989538ull}},
+ {{13697686838072324608ull, 82546020489947694ull}},
+ {{6848843419036162304ull, 41273010244973847ull}},
+ {{12647793746372856832ull, 20636505122486923ull}},
+ {{7898736510735629824ull, 103182525612434618ull}},
+ {{3949368255367814912ull, 51591262806217309ull}},
+ {{11198056164538683136ull, 25795631403108654ull}},
+ {{650048601564761600ull, 128978157015543273ull}},
+ {{9548396337637156608ull, 64489078507771636ull}},
+ {{4774198168818578176ull, 32244539253885818ull}},
+ {{2387099084409288960ull, 16122269626942909ull}},
+ {{11935495422046445824ull, 80611348134714545ull}},
+ {{15191119747877998592ull, 40305674067357272ull}},
+ {{7595559873938999296ull, 20152837033678636ull}},
+ {{1084311222275893504ull, 100764185168393182ull}},
+ {{542155611137946624ull, 50382092584196591ull}},
+ {{9494449842423749120ull, 25191046292098295ull}},
+ {{10578761064699642624ull, 125955231460491477ull}},
+ {{14512752569204596992ull, 62977615730245738ull}},
+ {{7256376284602298368ull, 31488807865122869ull}},
+ {{12851560179155924992ull, 15744403932561434ull}},
+ {{8917568674650970624ull, 78722019662807173ull}},
+ {{13682156374180261120ull, 39361009831403586ull}},
+ {{6841078187090130432ull, 19680504915701793ull}},
+ {{15758646861741101056ull, 98402524578508966ull}},
+ {{7879323430870550528ull, 49201262289254483ull}},
+ {{13163033752290051072ull, 24600631144627241ull}},
+ {{10474936540321600768ull, 123003155723136208ull}},
+ {{5237468270160800256ull, 61501577861568104ull}},
+ {{2618734135080400128ull, 30750788930784052ull}},
+ {{1309367067540199936ull, 15375394465392026ull}},
+ {{6546835337701000448ull, 76876972326960130ull}},
+ {{3273417668850500096ull, 38438486163480065ull}},
+ {{10860080871280025856ull, 19219243081740032ull}},
+ {{17406916208981026304ull, 96096215408700162ull}},
+ {{8703458104490513152ull, 48048107704350081ull}},
+ {{13575101089100032256ull, 24024053852175040ull}},
+ {{12535273224371507200ull, 120120269260875203ull}},
+ {{15491008649040529408ull, 60060134630437601ull}},
+ {{16968876361375040512ull, 30030067315218800ull}},
+ {{8484438180687520256ull, 15015033657609400ull}},
+ {{5528702756018498048ull, 75075168288047002ull}},
+ {{2764351378009249024ull, 37537584144023501ull}},
+ {{10605547725859400192ull, 18768792072011750ull}},
+ {{16134250481877898240ull, 93843960360058752ull}},
+ {{8067125240938949120ull, 46921980180029376ull}},
+ {{4033562620469474560ull, 23460990090014688ull}},
+ {{1721069028637821184ull, 117304950450073441ull}},
+ {{10083906551173686272ull, 58652475225036720ull}},
+ {{5041953275586843136ull, 29326237612518360ull}},
+ {{2520976637793421568ull, 14663118806259180ull}},
+ {{12604883188967108096ull, 73315594031295900ull}},
+ {{6302441594483554048ull, 36657797015647950ull}},
+ {{3151220797241776896ull, 18328898507823975ull}},
+ {{15756103986208884992ull, 91644492539119875ull}},
+ {{17101424029959218176ull, 45822246269559937ull}},
+ {{17774084051834384896ull, 22911123134779968ull}},
+ {{15083443964333718272ull, 114555615673899844ull}},
+ {{7541721982166859008ull, 57277807836949922ull}},
+ {{3770860991083429376ull, 28638903918474961ull}},
+ {{407560881707596288ull, 143194519592374806ull}},
+ {{203780440853798144ull, 71597259796187403ull}},
+ {{9325262257281674752ull, 35798629898093701ull}},
+ {{13886003165495613184ull, 17899314949046850ull}},
+ {{14089783606349411328ull, 89496574745234253ull}},
+ {{16268263840029481472ull, 44748287372617126ull}},
+ {{8134131920014740736ull, 22374143686308563ull}},
+ {{3777171452654600704ull, 111870718431542817ull}},
+ {{11111957763182076160ull, 55935359215771408ull}},
+ {{5555978881591037952ull, 27967679607885704ull}},
+ {{9333150334245638656ull, 139838398039428521ull}},
+ {{13889947203977595136ull, 69919199019714260ull}},
+ {{6944973601988797440ull, 34959599509857130ull}},
+ {{3472486800994398720ull, 17479799754928565ull}},
+ {{17362434004971993856ull, 87398998774642825ull}},
+ {{17904589039340772608ull, 43699499387321412ull}},
+ {{8952294519670386176ull, 21849749693660706ull}},
+ {{7867984450932828672ull, 109248748468303532ull}},
+ {{3933992225466414336ull, 54624374234151766ull}},
+ {{1966996112733207040ull, 27312187117075883ull}},
+ {{9834980563666035968ull, 136560935585379415ull}},
+ {{14140862318687793664ull, 68280467792689707ull}},
+ {{16293803196198672640ull, 34140233896344853ull}},
+ {{17370273634954112000ull, 17070116948172426ull}},
+ {{13064391879932354304ull, 85350584740862134ull}},
+ {{6532195939966177024ull, 42675292370431067ull}},
+ {{12489470006837864192ull, 21337646185215533ull}},
+ {{7107117813060667136ull, 106688230926077668ull}},
+ {{3553558906530333440ull, 53344115463038834ull}},
+ {{1776779453265166592ull, 26672057731519417ull}},
+ {{8883897266325833728ull, 133360288657597085ull}},
+ {{13665320670017692672ull, 66680144328798542ull}},
+ {{6832660335008846336ull, 33340072164399271ull}},
+ {{12639702204359198976ull, 16670036082199635ull}},
+ {{7858278800667340032ull, 83350180410998178ull}},
+ {{3929139400333669888ull, 41675090205499089ull}},
+ {{11187941737021610752ull, 20837545102749544ull}},
+ {{599476463979399168ull, 104187725513747723ull}},
+ {{9523110268844475392ull, 52093862756873861ull}},
+ {{13984927171277013504ull, 26046931378436930ull}},
+ {{14584403635256412928ull, 130234656892184653ull}},
+ {{16515573854482982144ull, 65117328446092326ull}},
+ {{8257786927241490944ull, 32558664223046163ull}},
+ {{13352265500475521280ull, 16279332111523081ull}},
+ {{11421095281248951808ull, 81396660557615408ull}},
+ {{5710547640624475904ull, 40698330278807704ull}},
+ {{2855273820312237824ull, 20349165139403852ull}},
+ {{14276369101561189888ull, 101745825697019260ull}},
+ {{7138184550780594944ull, 50872912848509630ull}},
+ {{3569092275390297344ull, 25436456424254815ull}},
+ {{17845461376951487488ull, 127182282121274075ull}},
+ {{18146102725330519552ull, 63591141060637037ull}},
+ {{18296423399520035584ull, 31795570530318518ull}},
+ {{9148211699760017664ull, 15897785265159259ull}},
+ {{8847570351380985600ull, 79488926325796297ull}},
+ {{13647157212545268480ull, 39744463162898148ull}},
+ {{6823578606272634112ull, 19872231581449074ull}},
+ {{15671148957653619968ull, 99361157907245371ull}},
+ {{17058946515681585664ull, 49680578953622685ull}},
+ {{17752845294695568640ull, 24840289476811342ull}},
+ {{14977250178639637248ull, 124201447384056714ull}},
+ {{7488625089319818496ull, 62100723692028357ull}},
+ {{12967684581514684928ull, 31050361846014178ull}},
+ {{6483842290757342464ull, 15525180923007089ull}},
+ {{13972467380077160960ull, 77625904615035446ull}},
+ {{6986233690038580480ull, 38812952307517723ull}},
+ {{12716488881874065920ull, 19406476153758861ull}},
+ {{8242212188241675520ull, 97032380768794308ull}},
+ {{4121106094120837632ull, 48516190384397154ull}},
+ {{2060553047060418816ull, 24258095192198577ull}},
+ {{10302765235302094592ull, 121290475960992885ull}},
+ {{14374754654505822976ull, 60645237980496442ull}},
+ {{7187377327252911360ull, 30322618990248221ull}},
+ {{12817060700481231360ull, 15161309495124110ull}},
+ {{8745071281277502976ull, 75806547475620553ull}},
+ {{13595907677493527296ull, 37903273737810276ull}},
+ {{6797953838746763520ull, 18951636868905138ull}},
+ {{15543025120024266496ull, 94758184344525691ull}},
+ {{16994884596866908928ull, 47379092172262845ull}},
+ {{17720814335288230144ull, 23689546086131422ull}},
+ {{14817095381602945280ull, 118447730430657114ull}},
+ {{7408547690801472512ull, 59223865215328557ull}},
+ {{12927645882255512064ull, 29611932607664278ull}},
+ {{6463822941127756032ull, 14805966303832139ull}},
+ {{13872370631929228800ull, 74029831519160696ull}},
+ {{6936185315964614400ull, 37014915759580348ull}},
+ {{3468092657982307072ull, 18507457879790174ull}},
+ {{17340463289911535872ull, 92537289398950870ull}},
+ {{8670231644955767808ull, 46268644699475435ull}},
+ {{13558487859332659712ull, 23134322349737717ull}},
+ {{12452207075534644224ull, 115671611748688588ull}},
+ {{6226103537767322112ull, 57835805874344294ull}},
+ {{3113051768883661056ull, 28917902937172147ull}},
+ {{10779897921296606208ull, 14458951468586073ull}},
+ {{17006001459063928320ull, 72294757342930367ull}},
+ {{17726372766386739968ull, 36147378671465183ull}},
+ {{18086558420048145664ull, 18073689335732591ull}},
+ {{16645815805402522624ull, 90368446678662959ull}},
+ {{17546279939556037120ull, 45184223339331479ull}},
+ {{17996512006632794368ull, 22592111669665739ull}},
+ {{16195583738325765376ull, 112960558348328699ull}},
+ {{17321163906017658368ull, 56480279174164349ull}},
+ {{17883953989863604992ull, 28240139587082174ull}},
+ {{15632793654479818752ull, 141200697935410874ull}},
+ {{7816396827239909376ull, 70600348967705437ull}},
+ {{13131570450474730496ull, 35300174483852718ull}},
+ {{6565785225237365248ull, 17650087241926359ull}},
+ {{14382182052477274624ull, 88250436209631796ull}},
+ {{7191091026238637312ull, 44125218104815898ull}},
+ {{3595545513119318528ull, 22062609052407949ull}},
+ {{17977727565596593408ull, 110313045262039745ull}},
+ {{18212235819653072384ull, 55156522631019872ull}},
+ {{9106117909826536192ull, 27578261315509936ull}},
+ {{8637101401713577984ull, 137891306577549682ull}},
+ {{4318550700856788992ull, 68945653288774841ull}},
+ {{11382647387283170304ull, 34472826644387420ull}},
+ {{5691323693641585152ull, 17236413322193710ull}},
+ {{10009874394498374144ull, 86182066610968551ull}},
+ {{14228309234103962880ull, 43091033305484275ull}},
+ {{16337526653906757120ull, 21545516652742137ull}},
+ {{7900656974695579648ull, 107727583263710689ull}},
+ {{13173700524202565632ull, 53863791631855344ull}},
+ {{6586850262101282816ull, 26931895815927672ull}},
+ {{14487507236796862464ull, 134659479079638361ull}},
+ {{16467125655253207040ull, 67329739539819180ull}},
+ {{8233562827626603520ull, 33664869769909590ull}},
+ {{4116781413813301760ull, 16832434884954795ull}},
+ {{2137162995356957184ull, 84162174424773976ull}},
+ {{1068581497678478592ull, 42081087212386988ull}},
+ {{534290748839239168ull, 21040543606193494ull}},
+ {{2671453744196196608ull, 105202718030967470ull}},
+ {{1335726872098098176ull, 52601359015483735ull}},
+ {{9891235472903824896ull, 26300679507741867ull}},
+ {{12562689217100021504ull, 131503397538709337ull}},
+ {{15504716645404786432ull, 65751698769354668ull}},
+ {{7752358322702393088ull, 32875849384677334ull}},
+ {{3876179161351196416ull, 16437924692338667ull}},
+ {{934151733046431488ull, 82189623461693336ull}},
+ {{467075866523215616ull, 41094811730846668ull}},
+ {{233537933261607680ull, 20547405865423334ull}},
+ {{1167689666308039424ull, 102737029327116670ull}},
+ {{583844833154019584ull, 51368514663558335ull}},
+ {{9515294453431785472ull, 25684257331779167ull}},
+ {{10682984119739825152ull, 128421286658895837ull}},
+ {{14564864096724688384ull, 64210643329447918ull}},
+ {{7282432048362344192ull, 32105321664723959ull}},
+ {{12864588061035947776ull, 16052660832361979ull}},
+ {{8982708084051084544ull, 80263304161809898ull}},
+ {{4491354042025542144ull, 40131652080904949ull}},
+ {{11469049057867546880ull, 20065826040452474ull}},
+ {{2005013068209080064ull, 100329130202262373ull}},
+ {{10225878570959315712ull, 50164565101131186ull}},
+ {{5112939285479657728ull, 25082282550565593ull}},
+ {{7117952353688738048ull, 125411412752827966ull}},
+ {{3558976176844368896ull, 62705706376413983ull}},
+ {{11002860125276960256ull, 31352853188206991ull}},
+ {{14724802099493255936ull, 15676426594103495ull}},
+ {{18283778276337624832ull, 78382132970517478ull}},
+ {{9141889138168812288ull, 39191066485258739ull}},
+ {{13794316605939181824ull, 19595533242629369ull}},
+ {{13631350808567255296ull, 97977666213146848ull}},
+ {{6815675404283627520ull, 48988833106573424ull}},
+ {{3407837702141813760ull, 24494416553286712ull}},
+ {{17039188510709069312ull, 122472082766433560ull}},
+ {{8519594255354534656ull, 61236041383216780ull}},
+ {{4259797127677267200ull, 30618020691608390ull}},
+ {{2129898563838633472ull, 15309010345804195ull}},
+ {{10649492819193168128ull, 76545051729020975ull}},
+ {{14548118446451359744ull, 38272525864510487ull}},
+ {{16497431260080455680ull, 19136262932255243ull}},
+ {{8700180005564072448ull, 95681314661276219ull}},
+ {{13573462039636812032ull, 47840657330638109ull}},
+ {{16010103056673181696ull, 23920328665319054ull}},
+ {{6263538988527702528ull, 119601643326595274ull}},
+ {{3131769494263851264ull, 59800821663297637ull}},
+ {{10789256783986701312ull, 29900410831648818ull}},
+ {{5394628391993350656ull, 14950205415824409ull}},
+ {{8526397886257201920ull, 74751027079122046ull}},
+ {{4263198943128600832ull, 37375513539561023ull}},
+ {{11354971508419076096ull, 18687756769780511ull}},
+ {{1434625320966726656ull, 93438783848902558ull}},
+ {{717312660483363328ull, 46719391924451279ull}},
+ {{9582028367096457472ull, 23359695962225639ull}},
+ {{11016653688063184128ull, 116798479811128197ull}},
+ {{14731698880886367744ull, 58399239905564098ull}},
+ {{7365849440443183872ull, 29199619952782049ull}},
+ {{12906296757076367616ull, 14599809976391024ull}},
+ {{9191251564253184000ull, 72999049881955123ull}},
+ {{13818997818981367808ull, 36499524940977561ull}},
+ {{16132870946345459712ull, 18249762470488780ull}},
+ {{6877378436889092096ull, 91248812352443904ull}},
+ {{3438689218444546048ull, 45624406176221952ull}},
+ {{1719344609222273024ull, 22812203088110976ull}},
+ {{8596723046111365376ull, 114061015440554880ull}},
+ {{4298361523055682560ull, 57030507720277440ull}},
+ {{2149180761527841280ull, 28515253860138720ull}},
+ {{10745903807639206656ull, 142576269300693600ull}},
+ {{5372951903819603200ull, 71288134650346800ull}},
+ {{2686475951909801472ull, 35644067325173400ull}},
+ {{1343237975954900736ull, 17822033662586700ull}},
+ {{6716189879774504192ull, 89110168312933500ull}},
+ {{3358094939887251968ull, 44555084156466750ull}},
+ {{1679047469943625984ull, 22277542078233375ull}},
+ {{8395237349718130176ull, 111387710391166875ull}},
+ {{13420990711713840896ull, 55693855195583437ull}},
+ {{15933867392711696128ull, 27846927597791718ull}},
+ {{5882360668720274688ull, 139234637988958594ull}},
+ {{2941180334360137216ull, 69617318994479297ull}},
+ {{10693962204034844416ull, 34808659497239648ull}},
+ {{5346981102017422080ull, 17404329748619824ull}},
+ {{8288161436377559552ull, 87021648743099121ull}},
+ {{13367452755043555584ull, 43510824371549560ull}},
+ {{6683726377521777664ull, 21755412185774780ull}},
+ {{14971887813899337472ull, 108777060928873901ull}},
+ {{16709315943804444416ull, 54388530464436950ull}},
+ {{8354657971902222080ull, 27194265232218475ull}},
+ {{4879801712092008192ull, 135971326161092377ull}},
+ {{11663272892900779776ull, 67985663080546188ull}},
+ {{5831636446450389760ull, 33992831540273094ull}},
+ {{2915818223225194752ull, 16996415770136547ull}},
+ {{14579091116125974784ull, 84982078850682735ull}},
+ {{16512917594917763072ull, 42491039425341367ull}},
+ {{17479830834313657344ull, 21245519712670683ull}},
+ {{13612177876730080512ull, 106227598563353419ull}},
+ {{16029460975219815936ull, 53113799281676709ull}},
+ {{17238102524464683776ull, 26556899640838354ull}},
+ {{12403536327485212928ull, 132784498204191774ull}},
+ {{6201768163742606336ull, 66392249102095887ull}},
+ {{12324256118726078976ull, 33196124551047943ull}},
+ {{15385500096217815296ull, 16598062275523971ull}},
+ {{3140524186250870016ull, 82990311377619859ull}},
+ {{10793634129980210688ull, 41495155688809929ull}},
+ {{14620189101844881152ull, 20747577844404964ull}},
+ {{17760713288095751424ull, 103737889222024823ull}},
+ {{18103728680902651392ull, 51868944611012411ull}},
+ {{18275236377306101504ull, 25934472305506205ull}},
+ {{17589205591692301312ull, 129672361527531029ull}},
+ {{18017974832700926464ull, 64836180763765514ull}},
+ {{9008987416350463232ull, 32418090381882757ull}},
+ {{13727865745030007296ull, 16209045190941378ull}},
+ {{13299096504021382144ull, 81045225954706893ull}},
+ {{15872920288865466880ull, 40522612977353446ull}},
+ {{7936460144432733440ull, 20261306488676723ull}},
+ {{2788812574744564224ull, 101306532443383617ull}},
+ {{10617778324227057920ull, 50653266221691808ull}},
+ {{5308889162113528832ull, 25326633110845904ull}},
+ {{8097701736858093056ull, 126633165554229521ull}},
+ {{13272222905283822336ull, 63316582777114760ull}},
+ {{6636111452641911040ull, 31658291388557380ull}},
+ {{3318055726320955392ull, 15829145694278690ull}},
+ {{16590278631604777984ull, 79145728471393450ull}},
+ {{8295139315802388992ull, 39572864235696725ull}},
+ {{13370941694755970304ull, 19786432117848362ull}},
+ {{11514476252651196672ull, 98932160589241813ull}},
+ {{14980610163180374016ull, 49466080294620906ull}},
+ {{7490305081590187008ull, 24733040147310453ull}},
+ {{558037260531832064ull, 123665200736552267ull}},
+ {{9502390667120691712ull, 61832600368276133ull}},
+ {{13974567370415121664ull, 30916300184138066ull}},
+ {{6987283685207560704ull, 15458150092069033ull}},
+ {{16489674352328252672ull, 77290750460345166ull}},
+ {{8244837176164126208ull, 38645375230172583ull}},
+ {{13345790624936838912ull, 19322687615086291ull}},
+ {{11388720903555539968ull, 96613438075431458ull}},
+ {{5694360451777769984ull, 48306719037715729ull}},
+ {{12070552262743660800ull, 24153359518857864ull}},
+ {{5012529092589649152ull, 120766797594289323ull}},
+ {{11729636583149600256ull, 60383398797144661ull}},
+ {{15088190328429575936ull, 30191699398572330ull}},
+ {{7544095164214787840ull, 15095849699286165ull}},
+ {{826987673654836736ull, 75479248496430827ull}},
+ {{9636865873682194176ull, 37739624248215413ull}},
+ {{14041804973695872768ull, 18869812124107706ull}},
+ {{14868792647350709760ull, 94349060620538533ull}},
+ {{16657768360530130688ull, 47174530310269266ull}},
+ {{8328884180265065216ull, 23587265155134633ull}},
+ {{4750932753906223616ull, 117936325775673167ull}},
+ {{11598838413807887616ull, 58968162887836583ull}},
+ {{15022791243758719488ull, 29484081443918291ull}},
+ {{16734767658734135552ull, 14742040721959145ull}},
+ {{9886861998832471552ull, 73710203609795729ull}},
+ {{14166803036271011584ull, 36855101804897864ull}},
+ {{7083401518135505664ull, 18427550902448932ull}},
+ {{16970263516967977216ull, 92137754512244661ull}},
+ {{17708503795338764288ull, 46068877256122330ull}},
+ {{8854251897669382144ull, 23034438628061165ull}},
+ {{7377771340927808000ull, 115172193140305827ull}},
+ {{12912257707318679808ull, 57586096570152913ull}},
+ {{15679500890514115584ull, 28793048285076456ull}},
+ {{4610528157732371968ull, 143965241425382284ull}},
+ {{2305264078866185984ull, 71982620712691142ull}},
+ {{1152632039433092864ull, 35991310356345571ull}},
+ {{9799688056571322112ull, 17995655178172785ull}},
+ {{12104952135437508352ull, 89978275890863927ull}},
+ {{15275848104573529856ull, 44989137945431963ull}},
+ {{16861296089141540608ull, 22494568972715981ull}},
+ {{10519504150869497600ull, 112472844863579909ull}},
+ {{14483124112289524480ull, 56236422431789954ull}},
+ {{7241562056144762112ull, 28118211215894977ull}},
+ {{17761066207014259712ull, 140591056079474886ull}},
+ {{8880533103507129856ull, 70295528039737443ull}},
+ {{13663638588608340736ull, 35147764019868721ull}},
+ {{16055191331158946048ull, 17573882009934360ull}},
+ {{6488980360956524544ull, 87869410049671804ull}},
+ {{3244490180478262272ull, 43934705024835902ull}},
+ {{1622245090239131136ull, 21967352512417951ull}},
+ {{8111225451195655680ull, 109836762562089755ull}},
+ {{13278984762452603648ull, 54918381281044877ull}},
+ {{15862864418081077504ull, 27459190640522438ull}},
+ {{5527345795567181568ull, 137295953202612194ull}},
+ {{2763672897783590656ull, 68647976601306097ull}},
+ {{10605208485746571008ull, 34323988300653048ull}},
+ {{5302604242873285376ull, 17161994150326524ull}},
+ {{8066277140656876288ull, 85809970751632621ull}},
+ {{13256510607183213824ull, 42904985375816310ull}},
+ {{6628255303591606784ull, 21452492687908155ull}},
+ {{14694532444248483328ull, 107262463439540776ull}},
+ {{7347266222124241664ull, 53631231719770388ull}},
+ {{3673633111062120704ull, 26815615859885194ull}},
+ {{18368165555310604288ull, 134078079299425970ull}},
+ {{9184082777655302144ull, 67039039649712985ull}},
+ {{13815413425682426880ull, 33519519824856492ull}},
+ {{6907706712841213440ull, 16759759912428246ull}},
+ {{16091789490496515584ull, 83798799562141231ull}},
+ {{17269266782103033600ull, 41899399781070615ull}},
+ {{17858005427906292480ull, 20949699890535307ull}},
+ {{15503050844693256448ull, 104748499452676539ull}},
+ {{16974897459201403904ull, 52374249726338269ull}},
+ {{17710820766455477760ull, 26187124863169134ull}},
+ {{14767127537439182848ull, 130935624315845674ull}},
+ {{7383563768719591424ull, 65467812157922837ull}},
+ {{12915153921214571520ull, 32733906078961418ull}},
+ {{6457576960607285760ull, 16366953039480709ull}},
+ {{13841140729326877184ull, 81834765197403546ull}},
+ {{6920570364663438592ull, 40917382598701773ull}},
+ {{12683657219186494976ull, 20458691299350886ull}},
+ {{8078053874803820544ull, 102293456496754433ull}},
+ {{13262398974256686080ull, 51146728248377216ull}},
+ {{6631199487128343040ull, 25573364124188608ull}},
+ {{14709253361932163584ull, 127866820620943041ull}},
+ {{16577998717820857600ull, 63933410310471520ull}},
+ {{8288999358910428672ull, 31966705155235760ull}},
+ {{4144499679455214336ull, 15983352577617880ull}},
+ {{2275754323566520320ull, 79916762888089401ull}},
+ {{10361249198638035968ull, 39958381444044700ull}},
+ {{5180624599319017984ull, 19979190722022350ull}},
+ {{7456378922885538304ull, 99895953610111751ull}},
+ {{12951561498297544960ull, 49947976805055875ull}},
+ {{15699152786003548160ull, 24973988402527937ull}},
+ {{4708787635179535104ull, 124869942012639689ull}},
+ {{11577765854444543232ull, 62434971006319844ull}},
+ {{5788882927222271488ull, 31217485503159922ull}},
+ {{2894441463611135744ull, 15608742751579961ull}},
+ {{14472207318055679232ull, 78043713757899805ull}},
+ {{16459475695882615296ull, 39021856878949902ull}},
+ {{8229737847941307648ull, 19510928439474951ull}},
+ {{4255201092287435264ull, 97554642197374757ull}},
+ {{11350972582998493440ull, 48777321098687378ull}},
+ {{5675486291499246592ull, 24388660549343689ull}},
+ {{9930687383786682112ull, 121943302746718446ull}},
+ {{4965343691893340928ull, 60971651373359223ull}},
+ {{11706043882801446144ull, 30485825686679611ull}},
+ {{15076393978255498752ull, 15242912843339805ull}},
+ {{1594993596439288320ull, 76214564216699029ull}},
+ {{10020868835074419968ull, 38107282108349514ull}},
+ {{5010434417537209856ull, 19053641054174757ull}},
+ {{6605428013976498432ull, 95268205270873786ull}},
+ {{3302714006988249088ull, 47634102635436893ull}},
+ {{10874729040348900352ull, 23817051317718446ull}},
+ {{17480157054325398784ull, 119085256588592232ull}},
+ {{8740078527162699264ull, 59542628294296116ull}},
+ {{4370039263581349632ull, 29771314147148058ull}},
+ {{2185019631790674688ull, 14885657073574029ull}},
+ {{10925098158953374208ull, 74428285367870145ull}},
+ {{14685921116331462912ull, 37214142683935072ull}},
+ {{7342960558165731328ull, 18607071341967536ull}},
+ {{18268058717119105792ull, 93035356709837681ull}},
+ {{18357401395414328576ull, 46517678354918840ull}},
+ {{9178700697707164160ull, 23258839177459420ull}},
+ {{9000015341116718336ull, 116294195887297102ull}},
+ {{4500007670558359040ull, 58147097943648551ull}},
+ {{11473375872133955328ull, 29073548971824275ull}},
+ {{14960059972921753344ull, 14536774485912137ull}},
+ {{1013323569770561024ull, 72683872429560689ull}},
+ {{9730033821740056320ull, 36341936214780344ull}},
+ {{4865016910870028032ull, 18170968107390172ull}},
+ {{5878340480640589312ull, 90854840536950861ull}},
+ {{12162542277175070464ull, 45427420268475430ull}},
+ {{6081271138587535104ull, 22713710134237715ull}},
+ {{11959611619228124416ull, 113568550671188576ull}},
+ {{5979805809614062080ull, 56784275335594288ull}},
+ {{2989902904807031040ull, 28392137667797144ull}},
+ {{14949514524035155712ull, 141960688338985720ull}},
+ {{7474757262017577728ull, 70980344169492860ull}},
+ {{3737378631008788736ull, 35490172084746430ull}},
+ {{1868689315504394240ull, 17745086042373215ull}},
+ {{9343446577521972224ull, 88725430211866075ull}},
+ {{13895095325615761920ull, 44362715105933037ull}},
+ {{16170919699662656768ull, 22181357552966518ull}},
+ {{7067622203475077376ull, 110906787764832594ull}},
+ {{3533811101737538560ull, 55453393882416297ull}},
+ {{10990277587723545088ull, 27726696941208148ull}},
+ {{18057899791198622720ull, 138633484706040742ull}},
+ {{9028949895599311360ull, 69316742353020371ull}},
+ {{13737846984654431488ull, 34658371176510185ull}},
+ {{16092295529181991424ull, 17329185588255092ull}},
+ {{6674501351071751168ull, 86645927941275464ull}},
+ {{3337250675535875584ull, 43322963970637732ull}},
+ {{1668625337767937792ull, 21661481985318866ull}},
+ {{8343126688839688960ull, 108307409926594330ull}},
+ {{4171563344419844352ull, 54153704963297165ull}},
+ {{11309153709064697856ull, 27076852481648582ull}},
+ {{1205536324194835456ull, 135384262408242913ull}},
+ {{9826140198952193536ull, 67692131204121456ull}},
+ {{4913070099476096768ull, 33846065602060728ull}},
+ {{2456535049738048256ull, 16923032801030364ull}},
+ {{12282675248690241792ull, 84615164005151820ull}},
+ {{6141337624345120768ull, 42307582002575910ull}},
+ {{3070668812172560384ull, 21153791001287955ull}},
+ {{15353344060862802432ull, 105768955006439775ull}},
+ {{16900044067286177024ull, 52884477503219887ull}},
+ {{17673394070497864192ull, 26442238751609943ull}},
+ {{14579994057651115264ull, 132211193758049719ull}},
+ {{16513369065680333312ull, 66105596879024859ull}},
+ {{17480056569694942464ull, 33052798439512429ull}},
+ {{17963400321702246912ull, 16526399219756214ull}},
+ {{16030025313673028864ull, 82631996098781074ull}},
+ {{8015012656836514304ull, 41315998049390537ull}},
+ {{13230878365273032960ull, 20657999024695268ull}},
+ {{10814159605236510208ull, 103289995123476343ull}},
+ {{14630451839473030912ull, 51644997561738171ull}},
+ {{16538597956591291136ull, 25822498780869085ull}},
+ {{8906013488118249984ull, 129112493904345429ull}},
+ {{13676378780913900800ull, 64556246952172714ull}},
+ {{6838189390456950272ull, 32278123476086357ull}},
+ {{12642466732083250944ull, 16139061738043178ull}},
+ {{7872101439287600128ull, 80695308690215893ull}},
+ {{13159422756498575872ull, 40347654345107946ull}},
+ {{6579711378249287936ull, 20173827172553973ull}},
+ {{14451812817536888064ull, 100869135862769866ull}},
+ {{7225906408768443904ull, 50434567931384933ull}},
+ {{12836325241238997760ull, 25217283965692466ull}},
+ {{8841393985066334208ull, 126086419828462333ull}},
+ {{13644069029387942912ull, 63043209914231166ull}},
+ {{6822034514693971456ull, 31521604957115583ull}},
+ {{12634389294201761536ull, 15760802478557791ull}},
+ {{7831714249880152832ull, 78804012392788958ull}},
+ {{3915857124940076288ull, 39402006196394479ull}},
+ {{11181300599324813824ull, 19701003098197239ull}},
+ {{566270775495415296ull, 98505015490986198ull}},
+ {{283135387747707648ull, 49252507745493099ull}},
+ {{9364939730728629504ull, 24626253872746549ull}},
+ {{9931210506224044800ull, 123131269363732747ull}},
+ {{14188977289966798080ull, 61565634681866373ull}},
+ {{16317860681838174720ull, 30782817340933186ull}},
+ {{8158930340919087360ull, 15391408670466593ull}},
+ {{3901163557176334080ull, 76957043352332967ull}},
+ {{11173953815442942720ull, 38478521676166483ull}},
+ {{14810348944576247040ull, 19239260838083241ull}},
+ {{264768428043029760ull, 96196304190416209ull}},
+ {{9355756250876290560ull, 48098152095208104ull}},
+ {{4677878125438145280ull, 24049076047604052ull}},
+ {{4942646553481175040ull, 120245380238020261ull}},
+ {{11694695313595363328ull, 60122690119010130ull}},
+ {{5847347656797681664ull, 30061345059505065ull}},
+ {{12147045865253616640ull, 15030672529752532ull}},
+ {{5394997105139428352ull, 75153362648762663ull}},
+ {{11920870589424489984ull, 37576681324381331ull}},
+ {{15183807331567020800ull, 18788340662190665ull}},
+ {{2132060362996897536ull, 93941703310953329ull}},
+ {{10289402218353224448ull, 46970851655476664ull}},
+ {{5144701109176612096ull, 23485425827738332ull}},
+ {{7276761472173509888ull, 117427129138691661ull}},
+ {{12861752772941530624ull, 58713564569345830ull}},
+ {{6430876386470765312ull, 29356782284672915ull}},
+ {{12438810230090158336ull, 14678391142336457ull}},
+ {{6853818929322137600ull, 73391955711682288ull}},
+ {{3426909464661068800ull, 36695977855841144ull}},
+ {{1713454732330534400ull, 18347988927920572ull}},
+ {{8567273661652672000ull, 91739944639602860ull}},
+ {{4283636830826336000ull, 45869972319801430ull}},
+ {{2141818415413167872ull, 22934986159900715ull}},
+ {{10709092077065839872ull, 114674930799503575ull}},
+ {{14577918075387695616ull, 57337465399751787ull}},
+ {{16512331074548623616ull, 28668732699875893ull}},
+ {{8774679077904912128ull, 143343663499379469ull}},
+ {{13610711575807231744ull, 71671831749689734ull}},
+ {{6805355787903615744ull, 35835915874844867ull}},
+ {{12626049930806583552ull, 17917957937422433ull}},
+ {{7790017432904263936ull, 89589789687112168ull}},
+ {{3895008716452131840ull, 44794894843556084ull}},
+ {{1947504358226065920ull, 22397447421778042ull}},
+ {{9737521791130330112ull, 111987237108890210ull}},
+ {{4868760895565165056ull, 55993618554445105ull}},
+ {{11657752484637358336ull, 27996809277222552ull}},
+ {{2948530202058136832ull, 139984046386112763ull}},
+ {{10697637137883844096ull, 69992023193056381ull}},
+ {{14572190605796697856ull, 34996011596528190ull}},
+ {{7286095302898348800ull, 17498005798264095ull}},
+ {{17983732440782193152ull, 87490028991320476ull}},
+ {{8991866220391096576ull, 43745014495660238ull}},
+ {{4495933110195548160ull, 21872507247830119ull}},
+ {{4032921477268189696ull, 109362536239150596ull}},
+ {{2016460738634094848ull, 54681268119575298ull}},
+ {{1008230369317047296ull, 27340634059787649ull}},
+ {{5041151846585237248ull, 136703170298938245ull}},
+ {{11743947960147394304ull, 68351585149469122ull}},
+ {{5871973980073697024ull, 34175792574734561ull}},
+ {{12159359026891624192ull, 17087896287367280ull}},
+ {{5456562913329467136ull, 85439481436836403ull}},
+ {{11951653493519509248ull, 42719740718418201ull}},
+ {{15199198783614530304ull, 21359870359209100ull}},
+ {{2209017623234446080ull, 106799351796045504ull}},
+ {{1104508811617222912ull, 53399675898022752ull}},
+ {{552254405808611328ull, 26699837949011376ull}},
+ {{2761272029043057664ull, 133499189745056880ull}},
+ {{1380636014521528832ull, 66749594872528440ull}},
+ {{690318007260764416ull, 33374797436264220ull}},
+ {{345159003630382080ull, 16687398718132110ull}},
+ {{1725795018151910912ull, 83436993590660550ull}},
+ {{862897509075955456ull, 41718496795330275ull}},
+ {{9654820791392753408ull, 20859248397665137ull}},
+ {{11380615809544664576ull, 104296241988325687ull}},
+ {{14913679941627108096ull, 52148120994162843ull}},
+ {{16680212007668329728ull, 26074060497081421ull}},
+ {{9614083743503442944ull, 130370302485407109ull}},
+ {{14030413908606497280ull, 65185151242703554ull}},
+ {{7015206954303248640ull, 32592575621351777ull}},
+ {{12730975514006400000ull, 16296287810675888ull}},
+ {{8314645348903345664ull, 81481439053379443ull}},
+ {{13380694711306448640ull, 40740719526689721ull}},
+ {{15913719392508000000ull, 20370359763344860ull}},
+ {{5781620667701794304ull, 101851798816724304ull}},
+ {{2890810333850897152ull, 50925899408362152ull}},
+ {{1445405166925448448ull, 25462949704181076ull}},
+ {{7227025834627242752ull, 127314748520905380ull}},
+ {{3613512917313621248ull, 63657374260452690ull}},
+ {{1806756458656810496ull, 31828687130226345ull}},
+ {{10126750266183181056ull, 15914343565113172ull}},
+ {{13740263183496802560ull, 79571717825565862ull}},
+ {{6870131591748401152ull, 39785858912782931ull}},
+ {{12658437832728976384ull, 19892929456391465ull}},
+ {{7951956942516227328ull, 99464647281957328ull}},
+ {{3975978471258113536ull, 49732323640978664ull}},
+ {{1987989235629056768ull, 24866161820489332ull}},
+ {{9939946178145284352ull, 124330809102446660ull}},
+ {{4969973089072642048ull, 62165404551223330ull}},
+ {{2484986544536321024ull, 31082702275611665ull}},
+ {{10465865309122936320ull, 15541351137805832ull}},
+ {{15435838398195578368ull, 77706755689029162ull}},
+ {{7717919199097789184ull, 38853377844514581ull}},
+ {{13082331636403670272ull, 19426688922257290ull}},
+ {{10071425960889697280ull, 97133444611286453ull}},
+ {{14259085017299624448ull, 48566722305643226ull}},
+ {{7129542508649812224ull, 24283361152821613ull}},
+ {{17200968469539509504ull, 121416805764108066ull}},
+ {{8600484234769754624ull, 60708402882054033ull}},
+ {{13523614154239653120ull, 30354201441027016ull}},
+ {{6761807077119826432ull, 15177100720513508ull}},
+ {{15362291311889581312ull, 75885503602567541ull}},
+ {{16904517692799566336ull, 37942751801283770ull}},
+ {{8452258846399783168ull, 18971375900641885ull}},
+ {{5367806084579812864ull, 94856879503209427ull}},
+ {{11907275079144682240ull, 47428439751604713ull}},
+ {{15177009576427116800ull, 23714219875802356ull}},
+ {{2098071587297378304ull, 118571099379011784ull}},
+ {{1049035793648689152ull, 59285549689505892ull}},
+ {{524517896824344576ull, 29642774844752946ull}},
+ {{262258948412172288ull, 14821387422376473ull}},
+ {{1311294742060861440ull, 74106937111882365ull}},
+ {{9879019407885206528ull, 37053468555941182ull}},
+ {{4939509703942603264ull, 18526734277970591ull}},
+ {{6250804446003464704ull, 92633671389852956ull}},
+ {{3125402223001732352ull, 46316835694926478ull}},
+ {{1562701111500866048ull, 23158417847463239ull}},
+ {{7813505557504330752ull, 115792089237316195ull}},
+ {{13130124815606941184ull, 57896044618658097ull}},
+ {{15788434444658246400ull, 28948022309329048ull}},
+ {{7894217222329123072ull, 14474011154664524ull}},
+ {{2577597964226512896ull, 72370055773322622ull}},
+ {{1288798982113256448ull, 36185027886661311ull}},
+ {{9867771527911404032ull, 18092513943330655ull}},
+ {{12445369492137916928ull, 90462569716653277ull}},
+ {{15446056782923734272ull, 45231284858326638ull}},
+ {{7723028391461867008ull, 22615642429163319ull}},
+ {{1721653809890232320ull, 113078212145816597ull}},
+ {{10084198941799891968ull, 56539106072908298ull}},
+ {{5042099470899945984ull, 28269553036454149ull}},
+ {{6763753280790178304ull, 141347765182270746ull}},
+ {{3381876640395089152ull, 70673882591135373ull}},
+ {{10914310357052320256ull, 35336941295567686ull}},
+ {{5457155178526160128ull, 17668470647783843ull}},
+ {{8839031818921249280ull, 88342353238919216ull}},
+ {{4419515909460624640ull, 44171176619459608ull}},
+ {{2209757954730312192ull, 22085588309729804ull}},
+ {{11048789773651561728ull, 110427941548649020ull}},
+ {{5524394886825780736ull, 55213970774324510ull}},
+ {{2762197443412890368ull, 27606985387162255ull}},
+ {{13810987217064452096ull, 138034926935811275ull}},
+ {{16128865645387001856ull, 69017463467905637ull}},
+ {{17287804859548276736ull, 34508731733952818ull}},
+ {{8643902429774138368ull, 17254365866976409ull}},
+ {{6326024001451588608ull, 86271829334882047ull}},
+ {{12386384037580570112ull, 43135914667441023ull}},
+ {{15416564055645060864ull, 21567957333720511ull}},
+ {{3295843983387097856ull, 107839786668602559ull}},
+ {{10871294028548324608ull, 53919893334301279ull}},
+ {{14659019051128937984ull, 26959946667150639ull}},
+ {{17954863034516036096ull, 134799733335753198ull}},
+ {{8977431517258018048ull, 67399866667876599ull}},
+ {{13712087795483784704ull, 33699933333938299ull}},
+ {{16079415934596668160ull, 16849966666969149ull}},
+ {{6610103378145134592ull, 84249833334845749ull}},
+ {{12528423725927343104ull, 42124916667422874ull}},
+ {{6264211862963671552ull, 21062458333711437ull}},
+ {{12874315241108806144ull, 105312291668557186ull}},
+ {{6437157620554403072ull, 52656145834278593ull}},
+ {{12441950847131977216ull, 26328072917139296ull}},
+ {{6869522014531232000ull, 131640364585696483ull}},
+ {{12658133044120391680ull, 65820182292848241ull}},
+ {{15552438558914971648ull, 32910091146424120ull}},
+ {{7776219279457485824ull, 16455045573212060ull}},
+ {{1987608249868325888ull, 82275227866060302ull}},
+ {{993804124934162944ull, 41137613933030151ull}},
+ {{9720274099321857280ull, 20568806966515075ull}},
+ {{11707882349190183424ull, 102844034832575377ull}},
+ {{15077313211449867520ull, 51422017416287688ull}},
+ {{7538656605724933632ull, 25711008708143844ull}},
+ {{799794881205565440ull, 128555043540719222ull}},
+ {{399897440602782720ull, 64277521770359611ull}},
+ {{9423320757156167168ull, 32138760885179805ull}},
+ {{13935032415432859392ull, 16069380442589902ull}},
+ {{14334929856035642112ull, 80346902212949513ull}},
+ {{16390836964872596736ull, 40173451106474756ull}},
+ {{8195418482436298240ull, 20086725553237378ull}},
+ {{4083604264762388992ull, 100433627766186892ull}},
+ {{2041802132381194496ull, 50216813883093446ull}},
+ {{1020901066190597120ull, 25108406941546723ull}},
+ {{5104505330952986112ull, 125542034707733615ull}},
+ {{11775624702331268864ull, 62771017353866807ull}},
+ {{15111184388020410112ull, 31385508676933403ull}},
+ {{16778964230864980736ull, 15692754338466701ull}},
+ {{10107844859486698240ull, 78463771692333509ull}},
+ {{14277294466598124800ull, 39231885846166754ull}},
+ {{7138647233299062272ull, 19615942923083377ull}},
+ {{17246492092785760768ull, 98079714615416886ull}},
+ {{8623246046392880384ull, 49039857307708443ull}},
+ {{13534995060051215872ull, 24519928653854221ull}},
+ {{12334743079127425024ull, 122599643269271108ull}},
+ {{6167371539563712512ull, 61299821634635554ull}},
+ {{3083685769781856256ull, 30649910817317777ull}},
+ {{10765214921745703936ull, 15324955408658888ull}},
+ {{16932586461309416448ull, 76624777043294442ull}},
+ {{8466293230654708224ull, 38312388521647221ull}},
+ {{13456518652182129920ull, 19156194260823610ull}},
+ {{11942361039781994752ull, 95780971304118053ull}},
+ {{15194552556745773056ull, 47890485652059026ull}},
+ {{7597276278372886528ull, 23945242826029513ull}},
+ {{1092893244445329664ull, 119726214130147567ull}},
+ {{9769818659077440512ull, 59863107065073783ull}},
+ {{14108281366393496064ull, 29931553532536891ull}},
+ {{16277512720051523840ull, 14965776766268445ull}},
+ {{7600587305419412992ull, 74828883831342229ull}},
+ {{13023665689564482304ull, 37414441915671114ull}},
+ {{6511832844782241024ull, 18707220957835557ull}},
+ {{14112420150201654016ull, 93536104789177786ull}},
+ {{7056210075100826880ull, 46768052394588893ull}},
+ {{12751477074405189120ull, 23384026197294446ull}},
+ {{8417153150897291776ull, 116920130986472233ull}},
+ {{13431948612303421696ull, 58460065493236116ull}},
+ {{6715974306151710720ull, 29230032746618058ull}},
+ {{3357987153075855360ull, 14615016373309029ull}},
+ {{16789935765379277056ull, 73075081866545145ull}},
+ {{17618339919544414208ull, 36537540933272572ull}},
+ {{8809169959772207104ull, 18268770466636286ull}},
+ {{7152361651441932800ull, 91343852333181432ull}},
+ {{3576180825720966400ull, 45671926166590716ull}},
+ {{1788090412860483072ull, 22835963083295358ull}},
+ {{8940452064302415872ull, 114179815416476790ull}},
+ {{4470226032151207936ull, 57089907708238395ull}},
+ {{11458485052930379776ull, 28544953854119197ull}},
+ {{1952193043523244032ull, 142724769270595988ull}},
+ {{976096521761622016ull, 71362384635297994ull}},
+ {{488048260880811008ull, 35681192317648997ull}},
+ {{9467396167295181312ull, 17840596158824498ull}},
+ {{10443492689056803328ull, 89202980794122492ull}},
+ {{5221746344528401664ull, 44601490397061246ull}},
+ {{2610873172264200704ull, 22300745198530623ull}},
+ {{13054365861321004288ull, 111503725992653115ull}},
+ {{15750554967515277824ull, 55751862996326557ull}},
+ {{17098649520612414720ull, 27875931498163278ull}},
+ {{11706271308223867392ull, 139379657490816394ull}},
+ {{5853135654111933696ull, 69689828745408197ull}},
+ {{12149939863910742528ull, 34844914372704098ull}},
+ {{6074969931955371264ull, 17422457186352049ull}},
+ {{11928105586067304960ull, 87112285931760246ull}},
+ {{5964052793033652480ull, 43556142965880123ull}},
+ {{12205398433371601920ull, 21778071482940061ull}},
+ {{5686759945729355520ull, 108890357414700308ull}},
+ {{2843379972864677632ull, 54445178707350154ull}},
+ {{1421689986432338688ull, 27222589353675077ull}},
+ {{7108449932161694208ull, 136112946768375385ull}},
+ {{12777597002935622912ull, 68056473384187692ull}},
+ {{6388798501467811328ull, 34028236692093846ull}},
+ {{3194399250733905664ull, 17014118346046923ull}},
+ {{15971996253669528576ull, 85070591730234615ull}},
+ {{17209370163689540096ull, 42535295865117307ull}},
+ {{17828057118699545856ull, 21267647932558653ull}},
+ {{15353309298659522816ull, 106338239662793269ull}},
+ {{16900026686184537088ull, 53169119831396634ull}},
+ {{8450013343092268544ull, 26584559915698317ull}},
+ {{5356578568042240000ull, 132922799578491587ull}},
+ {{11901661320875895808ull, 66461399789245793ull}},
+ {{15174202697292723712ull, 33230699894622896ull}},
+ {{7587101348646361856ull, 16615349947311448ull}},
+ {{1042018595812706048ull, 83076749736557242ull}},
+ {{521009297906352896ull, 41538374868278621ull}},
+ {{9483876685807952128ull, 20769187434139310ull}},
+ {{10525895281620658432ull, 103845937170696552ull}},
+ {{5262947640810329088ull, 51922968585348276ull}},
+ {{2631473820405164544ull, 25961484292674138ull}},
+ {{13157369102025822976ull, 129807421463370690ull}},
+ {{6578684551012911360ull, 64903710731685345ull}},
+ {{12512714312361231360ull, 32451855365842672ull}},
+ {{6256357156180615680ull, 16225927682921336ull}},
+ {{12835041707193527296ull, 81129638414606681ull}},
+ {{15640892890451539456ull, 40564819207303340ull}},
+ {{7820446445225769728ull, 20282409603651670ull}},
+ {{2208744078709745408ull, 101412048018258352ull}},
+ {{1104372039354872576ull, 50706024009129176ull}},
+ {{552186019677436160ull, 25353012004564588ull}},
+ {{2760930098387181568ull, 126765060022822940ull}},
+ {{1380465049193590784ull, 63382530011411470ull}},
+ {{690232524596795392ull, 31691265005705735ull}},
+ {{9568488299153173504ull, 15845632502852867ull}},
+ {{10948953348346764288ull, 79228162514264337ull}},
+ {{14697848711028157952ull, 39614081257132168ull}},
+ {{7348924355514078976ull, 19807040628566084ull}},
+ {{18297877703860843264ull, 99035203142830421ull}},
+ {{18372310888785197312ull, 49517601571415210ull}},
+ {{9186155444392598528ull, 24758800785707605ull}},
+ {{9037289074543890432ull, 123794003928538027ull}},
+ {{13742016574126721024ull, 61897001964269013ull}},
+ {{16094380323918136320ull, 30948500982134506ull}},
+ {{8047190161959068160ull, 15474250491067253ull}},
+ {{3342462662376237568ull, 77371252455336267ull}},
+ {{10894603368042894592ull, 38685626227668133ull}},
+ {{14670673720876222976ull, 19342813113834066ull}},
+ {{18013136383252460544ull, 96714065569170333ull}},
+ {{18229940228481006080ull, 48357032784585166ull}},
+ {{9114970114240503040ull, 24178516392292583ull}},
+ {{8681362423783412224ull, 120892581961462917ull}},
+ {{13564053248746481920ull, 60446290980731458ull}},
+ {{6782026624373240832ull, 30223145490365729ull}},
+ {{12614385349041396224ull, 15111572745182864ull}},
+ {{7731694524078326528ull, 75557863725914323ull}},
+ {{13089219298893938944ull, 37778931862957161ull}},
+ {{15767981686301745152ull, 18889465931478580ull}},
+ {{5052932136670520320ull, 94447329657392904ull}},
+ {{2526466068335260160ull, 47223664828696452ull}},
+ {{1263233034167630080ull, 23611832414348226ull}},
+ {{6316165170838150400ull, 118059162071741130ull}},
+ {{3158082585419075072ull, 59029581035870565ull}},
+ {{10802413329564313344ull, 29514790517935282ull}},
+ {{5401206664782156544ull, 14757395258967641ull}},
+ {{8559289250201231872ull, 73786976294838206ull}},
+ {{4279644625100615936ull, 36893488147419103ull}},
+ {{11363194349405083648ull, 18446744073709551ull}},
+ {{1475739525896763904ull, 92233720368547758ull}},
+ {{737869762948381952ull, 46116860184273879ull}},
+ {{9592306918328966656ull, 23058430092136939ull}},
+ {{11068046444225730816ull, 115292150460684697ull}},
+ {{14757395258967641088ull, 57646075230342348ull}},
+ {{7378697629483820544ull, 28823037615171174ull}},
+ {{3689348814741910272ull, 14411518807585587ull}},
+ {{18446744073709551360ull, 72057594037927935ull}},
+ {{18446744073709551360ull, 36028797018963967ull}},
+ {{18446744073709551360ull, 18014398509481983ull}},
+ {{18446744073709551360ull, 90071992547409919ull}},
+ {{18446744073709551360ull, 45035996273704959ull}},
+ {{18446744073709551360ull, 22517998136852479ull}},
+ {{18446744073709551360ull, 112589990684262399ull}},
+ {{18446744073709551360ull, 56294995342131199ull}},
+ {{18446744073709551360ull, 28147497671065599ull}},
+ {{18446744073709551360ull, 140737488355327999ull}},
+ {{18446744073709551360ull, 70368744177663999ull}},
+ {{18446744073709551360ull, 35184372088831999ull}},
+ {{18446744073709551360ull, 17592186044415999ull}},
+ {{18446744073709551360ull, 87960930222079999ull}},
+ {{18446744073709551360ull, 43980465111039999ull}},
+ {{18446744073709551360ull, 21990232555519999ull}},
+ {{18446744073709551360ull, 109951162777599999ull}},
+ {{18446744073709551360ull, 54975581388799999ull}},
+ {{18446744073709551360ull, 27487790694399999ull}},
+ {{18446744073709551360ull, 137438953471999999ull}},
+ {{18446744073709551360ull, 68719476735999999ull}},
+ {{18446744073709551360ull, 34359738367999999ull}},
+ {{18446744073709551360ull, 17179869183999999ull}},
+ {{18446744073709551360ull, 85899345919999999ull}},
+ {{18446744073709551360ull, 42949672959999999ull}},
+ {{18446744073709551360ull, 21474836479999999ull}},
+ {{18446744073709551360ull, 107374182399999999ull}},
+ {{18446744073709551360ull, 53687091199999999ull}},
+ {{18446744073709551360ull, 26843545599999999ull}},
+ {{18446744073709551360ull, 134217727999999999ull}},
+ {{18446744073709551360ull, 67108863999999999ull}},
+ {{18446744073709551360ull, 33554431999999999ull}},
+ {{18446744073709551360ull, 16777215999999999ull}},
+ {{18446744073709551360ull, 83886079999999999ull}},
+ {{18446744073709551360ull, 41943039999999999ull}},
+ {{18446744073709551360ull, 20971519999999999ull}},
+ {{18446744073709551360ull, 104857599999999999ull}},
+ {{18446744073709551360ull, 52428799999999999ull}},
+ {{18446744073709551360ull, 26214399999999999ull}},
+ {{18446744073709551360ull, 131071999999999999ull}},
+ {{18446744073709551360ull, 65535999999999999ull}},
+ {{18446744073709551360ull, 32767999999999999ull}},
+ {{18446744073709551360ull, 16383999999999999ull}},
+ {{18446744073709551360ull, 81919999999999999ull}},
+ {{18446744073709551360ull, 40959999999999999ull}},
+ {{18446744073709551360ull, 20479999999999999ull}},
+ {{18446744073709551360ull, 102399999999999999ull}},
+ {{18446744073709551360ull, 51199999999999999ull}},
+ {{18446744073709551360ull, 25599999999999999ull}},
+ {{18446744073709551360ull, 127999999999999999ull}},
+ {{18446744073709551360ull, 63999999999999999ull}},
+ {{18446744073709551360ull, 31999999999999999ull}},
+ {{18446744073709551360ull, 15999999999999999ull}},
+ {{18446744073709551360ull, 79999999999999999ull}},
+ {{18446744073709551360ull, 39999999999999999ull}},
+ {{18446744073709551360ull, 19999999999999999ull}},
+ {{18446744073709551360ull, 99999999999999999ull}},
+ {{18446744073709551360ull, 49999999999999999ull}},
+ {{18446744073709551360ull, 24999999999999999ull}},
+ {{18446744073709551360ull, 124999999999999999ull}},
+ {{18446744073709551360ull, 62499999999999999ull}},
+ {{18446744073709551360ull, 31249999999999999ull}},
+ {{18446744073709551360ull, 15624999999999999ull}},
+ {{18446744073709551360ull, 78124999999999999ull}},
+ {{18446744073709551360ull, 39062499999999999ull}},
+ {{18446744073709551360ull, 19531249999999999ull}},
+ {{18446744073709551360ull, 97656249999999999ull}},
+ {{18446744073709551360ull, 48828124999999999ull}},
+ {{18446744073709551360ull, 24414062499999999ull}},
+ {{18446744073709551360ull, 122070312499999999ull}},
+ {{18446744073709551360ull, 61035156249999999ull}},
+ {{18446744073709551360ull, 30517578124999999ull}},
+ {{18446744073709551360ull, 15258789062499999ull}},
+ {{18446744073709551360ull, 76293945312499999ull}},
+ {{18446744073709551360ull, 38146972656249999ull}},
+ {{18446744073709551360ull, 19073486328124999ull}},
+ {{18446744073709551360ull, 95367431640624999ull}},
+ {{18446744073709551360ull, 47683715820312499ull}},
+ {{18446744073709551360ull, 23841857910156249ull}},
+ {{18446744073709551360ull, 119209289550781249ull}},
+ {{18446744073709551360ull, 59604644775390624ull}},
+ {{9223372036854775552ull, 29802322387695312ull}},
+ {{4611686018427387648ull, 14901161193847656ull}},
+ {{4611686018427387648ull, 74505805969238281ull}},
+ {{11529215046068469504ull, 37252902984619140ull}},
+ {{5764607523034234624ull, 18626451492309570ull}},
+ {{10376293541461622528ull, 93132257461547851ull}},
+ {{14411518807585586944ull, 46566128730773925ull}},
+ {{16429131440647569152ull, 23283064365386962ull}},
+ {{8358680908399640320ull, 116415321826934814ull}},
+ {{4179340454199820032ull, 58207660913467407ull}},
+ {{11313042263954685696ull, 29103830456733703ull}},
+ {{14879893168832118528ull, 14551915228366851ull}},
+ {{612489549322387200ull, 72759576141834259ull}},
+ {{9529616811515969280ull, 36379788070917129ull}},
+ {{13988180442612760320ull, 18189894035458564ull}},
+ {{14600669991935147776ull, 90949470177292823ull}},
+ {{16523707032822349568ull, 45474735088646411ull}},
+ {{17485225553265950464ull, 22737367544323205ull}},
+ {{13639151471491546880ull, 113686837721616029ull}},
+ {{16042947772600549120ull, 56843418860808014ull}},
+ {{8021473886300274432ull, 28421709430404007ull}},
+ {{3213881284082269952ull, 142108547152020037ull}},
+ {{10830312678895910656ull, 71054273576010018ull}},
+ {{5415156339447955200ull, 35527136788005009ull}},
+ {{11930950206578753280ull, 17763568394002504ull}},
+ {{4314518811765112576ull, 88817841970012523ull}},
+ {{11380631442737331968ull, 44408920985006261ull}},
+ {{14913687758223441664ull, 22204460492503130ull}},
+ {{781462496279002880ull, 111022302462515654ull}},
+ {{390731248139501312ull, 55511151231257827ull}},
+ {{9418737660924526336ull, 27755575615628913ull}},
+ {{10200200157203529472ull, 138777878078144567ull}},
+ {{14323472115456540416ull, 69388939039072283ull}},
+ {{16385108094583045888ull, 34694469519536141ull}},
+ {{17415926084146298624ull, 17347234759768070ull}},
+ {{13292654125893287680ull, 86736173798840354ull}},
+ {{6646327062946643712ull, 43368086899420177ull}},
+ {{12546535568328097536ull, 21684043449710088ull}},
+ {{7392445620511833856ull, 108420217248550443ull}},
+ {{12919594847110692608ull, 54210108624275221ull}},
+ {{15683169460410121984ull, 27105054312137610ull}},
+ {{4628871007212404480ull, 135525271560688054ull}},
+ {{2314435503606202112ull, 67762635780344027ull}},
+ {{10380589788657876736ull, 33881317890172013ull}},
+ {{14413666931183714048ull, 16940658945086006ull}},
+ {{16728102434789916416ull, 84703294725430033ull}},
+ {{17587423254249733888ull, 42351647362715016ull}},
+ {{8793711627124866816ull, 21175823681357508ull}},
+ {{7075069988205231872ull, 105879118406787542ull}},
+ {{3537534994102615808ull, 52939559203393771ull}},
+ {{10992139533906083584ull, 26469779601696885ull}},
+ {{18067209522111315712ull, 132348898008484427ull}},
+ {{18256976797910433536ull, 66174449004242213ull}},
+ {{18351860435809992448ull, 33087224502121106ull}},
+ {{9175930217904996096ull, 16543612251060553ull}},
+ {{8986162942105878272ull, 82718061255302767ull}},
+ {{13716453507907714816ull, 41359030627651383ull}},
+ {{16081598790808633088ull, 20679515313825691ull}},
+ {{6621017659204960000ull, 103397576569128459ull}},
+ {{12533880866457255680ull, 51698788284564229ull}},
+ {{15490312470083403520ull, 25849394142282114ull}},
+ {{3664586055578812160ull, 129246970711410574ull}},
+ {{1832293027789405952ull, 64623485355705287ull}},
+ {{10139518550749478656ull, 32311742677852643ull}},
+ {{14293131312229515008ull, 16155871338926321ull}},
+ {{16125424340018921216ull, 80779356694631608ull}},
+ {{8062712170009460480ull, 40389678347315804ull}},
+ {{4031356085004730112ull, 20194839173657902ull}},
+ {{1710036351314099968ull, 100974195868289511ull}},
+ {{10078390212511825664ull, 50487097934144755ull}},
+ {{14262567143110688512ull, 25243548967072377ull}},
+ {{15972603494424788736ull, 126217744835361888ull}},
+ {{7986301747212394240ull, 63108872417680944ull}},
+ {{3993150873606196992ull, 31554436208840472ull}},
+ {{1996575436803098368ull, 15777218104420236ull}},
+ {{9982877184015492864ull, 78886090522101180ull}},
+ {{4991438592007746304ull, 39443045261050590ull}},
+ {{2495719296003873024ull, 19721522630525295ull}},
+ {{12478596480019366144ull, 98607613152626475ull}},
+ {{15462670276864458752ull, 49303806576313237ull}},
+ {{16954707175287005184ull, 24651903288156618ull}},
+ {{10986559581596819968ull, 123259516440783094ull}},
+ {{5493279790798409984ull, 61629758220391547ull}},
+ {{11970011932253980672ull, 30814879110195773ull}},
+ {{15208378002981766144ull, 15407439555097886ull}},
+ {{2254913720070624512ull, 77037197775489434ull}},
+ {{1127456860035312128ull, 38518598887744717ull}},
+ {{9787100466872431872ull, 19259299443872358ull}},
+ {{12042014186943056384ull, 96296497219361792ull}},
+ {{6021007093471528192ull, 48148248609680896ull}},
+ {{3010503546735763968ull, 24074124304840448ull}},
+ {{15052517733678820608ull, 120370621524202240ull}},
+ {{7526258866839410176ull, 60185310762101120ull}},
+ {{3763129433419705088ull, 30092655381050560ull}},
+ {{1881564716709852416ull, 15046327690525280ull}},
+ {{9407823583549262848ull, 75231638452626400ull}},
+ {{4703911791774631424ull, 37615819226313200ull}},
+ {{2351955895887315712ull, 18807909613156600ull}},
+ {{11759779479436578560ull, 94039548065783000ull}},
+ {{5879889739718289152ull, 47019774032891500ull}},
+ {{2939944869859144448ull, 23509887016445750ull}},
+ {{14699724349295723264ull, 117549435082228750ull}},
+ {{7349862174647861504ull, 58774717541114375ull}},
+ {{12898303124178706432ull, 29387358770557187ull}},
+ {{15672523598944129024ull, 14693679385278593ull}},
+ {{4575641699882439168ull, 73468396926392969ull}},
+ {{11511192886795995392ull, 36734198463196484ull}},
+ {{5755596443397997568ull, 18367099231598242ull}},
+ {{10331238143280436736ull, 91835496157991211ull}},
+ {{14388991108494994176ull, 45917748078995605ull}},
+ {{16417867591102272768ull, 22958874039497802ull}},
+ {{8302361660673158144ull, 114794370197489014ull}},
+ {{4151180830336579072ull, 57397185098744507ull}},
+ {{11298962452023065344ull, 28698592549372253ull}},
+ {{1154580038986671872ull, 143492962746861268ull}},
+ {{577290019493335808ull, 71746481373430634ull}},
+ {{288645009746667776ull, 35873240686715317ull}},
+ {{9367694541728109568ull, 17936620343357658ull}},
+ {{9944984561221445632ull, 89683101716788292ull}},
+ {{4972492280610722816ull, 44841550858394146ull}},
+ {{2486246140305361408ull, 22420775429197073ull}},
+ {{12431230701526807040ull, 112103877145985365ull}},
+ {{15438987387618179328ull, 56051938572992682ull}},
+ {{7719493693809089536ull, 28025969286496341ull}},
+ {{1703980321626345216ull, 140129846432481707ull}},
+ {{10075362197667948288ull, 70064923216240853ull}},
+ {{14261053135688749824ull, 35032461608120426ull}},
+ {{7130526567844374784ull, 17516230804060213ull}},
+ {{17205888765512323328ull, 87581154020301066ull}},
+ {{8602944382756161536ull, 43790577010150533ull}},
+ {{13524844228232856576ull, 21895288505075266ull}},
+ {{12283988920035628544ull, 109476442525376333ull}},
+ {{15365366496872590080ull, 54738221262688166ull}},
+ {{7682683248436294912ull, 27369110631344083ull}},
+ {{1519928094762371840ull, 136845553156720417ull}},
+ {{9983336084235961600ull, 68422776578360208ull}},
+ {{4991668042117980672ull, 34211388289180104ull}},
+ {{2495834021058990336ull, 17105694144590052ull}},
+ {{12479170105294952192ull, 85528470722950260ull}},
+ {{6239585052647475968ull, 42764235361475130ull}},
+ {{3119792526323737856ull, 21382117680737565ull}},
+ {{15598962631618690304ull, 106910588403687825ull}},
+ {{17022853352664120832ull, 53455294201843912ull}},
+ {{8511426676332060416ull, 26727647100921956ull}},
+ {{5663645234241199104ull, 133638235504609782ull}},
+ {{2831822617120599552ull, 66819117752304891ull}},
+ {{10639283345415075584ull, 33409558876152445ull}},
+ {{14543013709562313472ull, 16704779438076222ull}},
+ {{17374836326682913024ull, 83523897190381113ull}},
+ {{17910790200196232192ull, 41761948595190556ull}},
+ {{8955395100098116096ull, 20880974297595278ull}},
+ {{7883487353071477760ull, 104404871487976392ull}},
+ {{3941743676535738880ull, 52202435743988196ull}},
+ {{1970871838267869440ull, 26101217871994098ull}},
+ {{9854359191339347200ull, 130506089359970490ull}},
+ {{4927179595669673472ull, 65253044679985245ull}},
+ {{11686961834689612544ull, 32626522339992622ull}},
+ {{5843480917344806144ull, 16313261169996311ull}},
+ {{10770660513014479872ull, 81566305849981556ull}},
+ {{5385330256507239936ull, 40783152924990778ull}},
+ {{2692665128253619968ull, 20391576462495389ull}},
+ {{13463325641268099840ull, 101957882312476945ull}},
+ {{15955034857488825600ull, 50978941156238472ull}},
+ {{7977517428744412672ull, 25489470578119236ull}},
+ {{2994098996302961152ull, 127447352890596182ull}},
+ {{1497049498151480576ull, 63723676445298091ull}},
+ {{9971896785930515968ull, 31861838222649045ull}},
+ {{14209320429820033792ull, 15930919111324522ull}},
+ {{15706369927971514368ull, 79654595556622613ull}},
+ {{17076557000840532992ull, 39827297778311306ull}},
+ {{8538278500420266496ull, 19913648889155653ull}},
+ {{5797904354682229248ull, 99568244445778267ull}},
+ {{12122324214195890432ull, 49784122222889133ull}},
+ {{15284534143952720896ull, 24892061111444566ull}},
+ {{2635694424925398784ull, 124460305557222834ull}},
+ {{1317847212462699264ull, 62230152778611417ull}},
+ {{9882295643086125312ull, 31115076389305708ull}},
+ {{4941147821543062528ull, 15557538194652854ull}},
+ {{6258995034005762048ull, 77787690973264271ull}},
+ {{12352869553857656832ull, 38893845486632135ull}},
+ {{15399806813783604224ull, 19446922743316067ull}},
+ {{3212057774079814656ull, 97234613716580339ull}},
+ {{10829400923894683136ull, 48617306858290169ull}},
+ {{14638072498802117376ull, 24308653429145084ull}},
+ {{17850130272881932032ull, 121543267145725423ull}},
+ {{18148437173295741696ull, 60771633572862711ull}},
+ {{18297590623502646528ull, 30385816786431355ull}},
+ {{18372167348606098944ull, 15192908393215677ull}},
+ {{18073860448192289280ull, 75964541966078389ull}},
+ {{18260302260950920448ull, 37982270983039194ull}},
+ {{9130151130475460096ull, 18991135491519597ull}},
+ {{8757267504958198016ull, 94955677457597987ull}},
+ {{13602005789333874688ull, 47477838728798993ull}},
+ {{16024374931521713152ull, 23738919364399496ull}},
+ {{6334898362770359808ull, 118694596821997484ull}},
+ {{3167449181385179904ull, 59347298410998742ull}},
+ {{1583724590692589824ull, 29673649205499371ull}},
+ {{10015234332201070592ull, 14836824602749685ull}},
+ {{13182683513586250496ull, 74184123013748427ull}},
+ {{15814713793647900928ull, 37092061506874213ull}},
+ {{17130728933678726144ull, 18546030753437106ull}},
+ {{11866668373555425280ull, 92730153767185534ull}},
+ {{5933334186777712640ull, 46365076883592767ull}},
+ {{12190039130243632128ull, 23182538441796383ull}},
+ {{5609963430089505792ull, 115912692208981918ull}},
+ {{2804981715044752896ull, 57956346104490959ull}},
+ {{10625862894377152256ull, 28978173052245479ull}},
+ {{14536303484043351808ull, 14489086526122739ull}},
+ {{17341285199088104960ull, 72445432630613698ull}},
+ {{8670642599544052480ull, 36222716315306849ull}},
+ {{13558693336626801920ull, 18111358157653424ull}},
+ {{12453234462005355264ull, 90556790788267123ull}},
+ {{15449989267857453312ull, 45278395394133561ull}},
+ {{16948366670783502336ull, 22639197697066780ull}},
+ {{10954857059079306240ull, 113195988485333904ull}},
+ {{5477428529539653120ull, 56597994242666952ull}},
+ {{2738714264769826560ull, 28298997121333476ull}},
+ {{13693571323849132800ull, 141494985606667380ull}},
+ {{6846785661924566272ull, 70747492803333690ull}},
+ {{3423392830962283008ull, 35373746401666845ull}},
+ {{10935068452335917312ull, 17686873200833422ull}},
+ {{17781854114260483840ull, 88434366004167112ull}},
+ {{8890927057130241792ull, 44217183002083556ull}},
+ {{4445463528565120768ull, 22108591501041778ull}},
+ {{3780573569116053248ull, 110542957505208891ull}},
+ {{11113658821412802304ull, 55271478752604445ull}},
+ {{14780201447561176832ull, 27635739376302222ull}},
+ {{114030942967678464ull, 138178696881511114ull}},
+ {{57015471483839232ull, 69089348440755557ull}},
+ {{9251879772596695296ull, 34544674220377778ull}},
+ {{4625939886298347520ull, 17272337110188889ull}},
+ {{4682955357782187008ull, 86361685550944446ull}},
+ {{2341477678891093504ull, 43180842775472223ull}},
+ {{10394110876300322560ull, 21590421387736111ull}},
+ {{15077066234082509568ull, 107952106938680557ull}},
+ {{16761905153896030464ull, 53976053469340278ull}},
+ {{8380952576948015104ull, 26988026734670139ull}},
+ {{5011274737320973312ull, 134940133673350697ull}},
+ {{11729009405515262464ull, 67470066836675348ull}},
+ {{5864504702757631232ull, 33735033418337674ull}},
+ {{2932252351378815488ull, 16867516709168837ull}},
+ {{14661261756894077952ull, 84337583545844185ull}},
+ {{16554002915301814784ull, 42168791772922092ull}},
+ {{8277001457650907392ull, 21084395886461046ull}},
+ {{4491519140835433728ull, 105421979432305232ull}},
+ {{2245759570417716736ull, 52710989716152616ull}},
+ {{1122879785208858368ull, 26355494858076308ull}},
+ {{5614398926044292352ull, 131777474290381540ull}},
+ {{2807199463022146048ull, 65888737145190770ull}},
+ {{1403599731511073024ull, 32944368572595385ull}},
+ {{9925171902610312192ull, 16472184286297692ull}},
+ {{12732371365632458496ull, 82360921431488462ull}},
+ {{6366185682816229120ull, 41180460715744231ull}},
+ {{12406464878262890240ull, 20590230357872115ull}},
+ {{6692092170185797376ull, 102951151789360578ull}},
+ {{3346046085092898560ull, 51475575894680289ull}},
+ {{10896395079401224960ull, 25737787947340144ull}},
+ {{17588487249587022336ull, 128688939736700722ull}},
+ {{8794243624793511168ull, 64344469868350361ull}},
+ {{13620493849251531264ull, 32172234934175180ull}},
+ {{6810246924625765632ull, 16086117467087590ull}},
+ {{15604490549419276800ull, 80430587335437951ull}},
+ {{17025617311564414208ull, 40215293667718975ull}},
+ {{17736180692636982784ull, 20107646833859487ull}},
+ {{14893927168346708224ull, 100538234169297439ull}},
+ {{16670335621028129792ull, 50269117084648719ull}},
+ {{17558539847368840704ull, 25134558542324359ull}},
+ {{14005722942005997312ull, 125672792711621799ull}},
+ {{16226233507857774336ull, 62836396355810899ull}},
+ {{17336488790783662848ull, 31418198177905449ull}},
+ {{17891616432246607104ull, 15709099088952724ull}},
+ {{15671105866394830080ull, 78545495444763624ull}},
+ {{7835552933197414912ull, 39272747722381812ull}},
+ {{3917776466598707456ull, 19636373861190906ull}},
+ {{1142138259283986176ull, 98181869305954531ull}},
+ {{9794441166496768768ull, 49090934652977265ull}},
+ {{14120592620103160064ull, 24545467326488632ull}},
+ {{15262730879387146496ull, 122727336632443163ull}},
+ {{16854737476548348928ull, 61363668316221581ull}},
+ {{17650740775128950272ull, 30681834158110790ull}},
+ {{8825370387564475136ull, 15340917079055395ull}},
+ {{7233363790403272448ull, 76704585395276977ull}},
+ {{12840053932056411904ull, 38352292697638488ull}},
+ {{6420026966028205824ull, 19176146348819244ull}},
+ {{13653390756431478528ull, 95880731744096221ull}},
+ {{16050067415070514944ull, 47940365872048110ull}},
+ {{8025033707535257344ull, 23970182936024055ull}},
+ {{3231680390257184512ull, 119850914680120277ull}},
+ {{10839212231983367936ull, 59925457340060138ull}},
+ {{5419606115991683840ull, 29962728670030069ull}},
+ {{11933175094850617600ull, 14981364335015034ull}},
+ {{4325643253124434176ull, 74906821675075173ull}},
+ {{11386193663416992768ull, 37453410837537586ull}},
+ {{5693096831708496384ull, 18726705418768793ull}},
+ {{10018740084832930816ull, 93633527093843966ull}},
+ {{5009370042416465408ull, 46816763546921983ull}},
+ {{11728057058063008512ull, 23408381773460991ull}},
+ {{3300053069186387712ull, 117041908867304958ull}},
+ {{1650026534593193728ull, 58520954433652479ull}},
+ {{10048385304151372544ull, 29260477216826239ull}},
+ {{14247564688930461952ull, 14630238608413119ull}},
+ {{15897591223523655936ull, 73151193042065598ull}},
+ {{7948795611761827840ull, 36575596521032799ull}},
+ {{13197769842735689728ull, 18287798260516399ull}},
+ {{10648616992549794048ull, 91438991302581998ull}},
+ {{5324308496274896896ull, 45719495651290999ull}},
+ {{11885526284992224256ull, 22859747825645499ull}},
+ {{4087399203832466944ull, 114298739128227498ull}},
+ {{2043699601916233472ull, 57149369564113749ull}},
+ {{10245221837812892416ull, 28574684782056874ull}},
+ {{14332621041645359360ull, 142873423910284372ull}},
+ {{7166310520822679552ull, 71436711955142186ull}},
+ {{3583155260411339776ull, 35718355977571093ull}},
+ {{11014949667060445696ull, 17859177988785546ull}},
+ {{18181260187883125504ull, 89295889943927732ull}},
+ {{9090630093941562624ull, 44647944971963866ull}},
+ {{4545315046970781184ull, 22323972485981933ull}},
+ {{4279831161144355328ull, 111619862429909666ull}},
+ {{2139915580572177664ull, 55809931214954833ull}},
+ {{10293329827140864512ull, 27904965607477416ull}},
+ {{14573160988285219840ull, 139524828037387082ull}},
+ {{7286580494142609920ull, 69762414018693541ull}},
+ {{12866662283926080768ull, 34881207009346770ull}},
+ {{6433331141963040256ull, 17440603504673385ull}},
+ {{13719911636105650176ull, 87203017523366926ull}},
+ {{6859955818052825088ull, 43601508761683463ull}},
+ {{12653349945881188352ull, 21800754380841731ull}},
+ {{7926517508277287168ull, 109003771904208658ull}},
+ {{3963258754138643456ull, 54501885952104329ull}},
+ {{11205001413924097536ull, 27250942976052164ull}},
+ {{684774848491833088ull, 136254714880260823ull}},
+ {{9565759461100692224ull, 68127357440130411ull}},
+ {{14006251767405121792ull, 34063678720065205ull}},
+ {{16226497920557336576ull, 17031839360032602ull}},
+ {{7345513307948477440ull, 85159196800163014ull}},
+ {{3672756653974238720ull, 42579598400081507ull}},
+ {{11059750363841895168ull, 21289799200040753ull}},
+ {{18405263671790372608ull, 106448996000203767ull}},
+ {{18426003872749961984ull, 53224498000101883ull}},
+ {{18436373973229756672ull, 26612249000050941ull}},
+ {{18394893571310577920ull, 133061245000254709ull}},
+ {{18420818822510064640ull, 66530622500127354ull}},
+ {{9210409411255032320ull, 33265311250063677ull}},
+ {{13828576742482291968ull, 16632655625031838ull}},
+ {{13802651491282805248ull, 83163278125159193ull}},
+ {{16124697782496178432ull, 41581639062579596ull}},
+ {{8062348891248089088ull, 20790819531289798ull}},
+ {{3418256308821342720ull, 103954097656448992ull}},
+ {{1709128154410671360ull, 51977048828224496ull}},
+ {{854564077205335552ull, 25988524414112248ull}},
+ {{4272820386026678528ull, 129942622070561240ull}},
+ {{2136410193013339136ull, 64971311035280620ull}},
+ {{1068205096506669568ull, 32485655517640310ull}},
+ {{534102548253334784ull, 16242827758820155ull}},
+ {{2670512741266673920ull, 81214138794100775ull}},
+ {{10558628407488112640ull, 40607069397050387ull}},
+ {{14502686240598832128ull, 20303534698525193ull}},
+ {{17173198981865506304ull, 101517673492625968ull}},
+ {{8586599490932753152ull, 50758836746312984ull}},
+ {{4293299745466376448ull, 25379418373156492ull}},
+ {{3019754653622331136ull, 126897091865782461ull}},
+ {{10733249363665941248ull, 63448545932891230ull}},
+ {{5366624681832970496ull, 31724272966445615ull}},
+ {{11906684377771260928ull, 15862136483222807ull}},
+ {{4193189667727650816ull, 79310682416114038ull}},
+ {{2096594833863825408ull, 39655341208057019ull}},
+ {{10271669453786688512ull, 19827670604028509ull}},
+ {{14464859121514339328ull, 99138353020142547ull}},
+ {{16455801597611945472ull, 49569176510071273ull}},
+ {{17451272835660748544ull, 24784588255035636ull}},
+ {{13469387883465536512ull, 123922941275178184ull}},
+ {{6734693941732768256ull, 61961470637589092ull}},
+ {{3367346970866384128ull, 30980735318794546ull}},
+ {{1683673485433191936ull, 15490367659397273ull}},
+ {{8418367427165960192ull, 77451838296986365ull}},
+ {{13432555750437755904ull, 38725919148493182ull}},
+ {{6716277875218877952ull, 19362959574246591ull}},
+ {{15134645302384838144ull, 96814797871232956ull}},
+ {{7567322651192419072ull, 48407398935616478ull}},
+ {{3783661325596209408ull, 24203699467808239ull}},
+ {{471562554271496192ull, 121018497339041196ull}},
+ {{235781277135748096ull, 60509248669520598ull}},
+ {{117890638567874048ull, 30254624334760299ull}},
+ {{9282317356138712832ull, 15127312167380149ull}},
+ {{9518098633274460928ull, 75636560836900747ull}},
+ {{13982421353492006144ull, 37818280418450373ull}},
+ {{16214582713600778752ull, 18909140209225186ull}},
+ {{7285937273165688320ull, 94545701046125934ull}},
+ {{3642968636582844160ull, 47272850523062967ull}},
+ {{11044856355146197760ull, 23636425261531483ull}},
+ {{18330793628311886080ull, 118182126307657417ull}},
+ {{18388768851010718720ull, 59091063153828708ull}},
+ {{9194384425505359360ull, 29545531576914354ull}},
+ {{4597192212752679680ull, 14772765788457177ull}},
+ {{4539216990053847040ull, 73863828942285886ull}},
+ {{2269608495026923520ull, 36931914471142943ull}},
+ {{10358176284368237568ull, 18465957235571471ull}},
+ {{14897393274422084608ull, 92329786177857357ull}},
+ {{16672068674065818112ull, 46164893088928678ull}},
+ {{8336034337032909056ull, 23082446544464339ull}},
+ {{4786683537745442048ull, 115412232722321697ull}},
+ {{11616713805727496704ull, 57706116361160848ull}},
+ {{5808356902863748352ull, 28853058180580424ull}},
+ {{2904178451431874048ull, 14426529090290212ull}},
+ {{14520892257159371008ull, 72132645451451060ull}},
+ {{7260446128579685376ull, 36066322725725530ull}},
+ {{3630223064289842688ull, 18033161362862765ull}},
+ {{18151115321449213696ull, 90165806814313825ull}},
+ {{18298929697579382528ull, 45082903407156912ull}},
+ {{9149464848789691136ull, 22541451703578456ull}},
+ {{8853836096529353472ull, 112707258517892282ull}},
+ {{4426918048264676608ull, 56353629258946141ull}},
+ {{11436831060987113984ull, 28176814629473070ull}},
+ {{1843923083806916096ull, 140884073147365353ull}},
+ {{10145333578758233856ull, 70442036573682676ull}},
+ {{5072666789379116800ull, 35221018286841338ull}},
+ {{2536333394689558272ull, 17610509143420669ull}},
+ {{12681666973447792128ull, 88052545717103345ull}},
+ {{15564205523578671872ull, 44026272858551672ull}},
+ {{7782102761789335808ull, 22013136429275836ull}},
+ {{2017025661527576576ull, 110065682146379182ull}},
+ {{1008512830763788288ull, 55032841073189591ull}},
+ {{9727628452236669952ull, 27516420536594795ull}},
+ {{11744654113764246528ull, 137582102682973977ull}},
+ {{15095699093736899072ull, 68791051341486988ull}},
+ {{7547849546868449536ull, 34395525670743494ull}},
+ {{3773924773434224640ull, 17197762835371747ull}},
+ {{422879793461572096ull, 85988814176858736ull}},
+ {{211439896730786048ull, 42994407088429368ull}},
+ {{105719948365392896ull, 21497203544214684ull}},
+ {{528599741826965248ull, 107486017721073420ull}},
+ {{264299870913482496ull, 53743008860536710ull}},
+ {{132149935456741120ull, 26871504430268355ull}},
+ {{660749677283706624ull, 134357522151341775ull}},
+ {{9553746875496628992ull, 67178761075670887ull}},
+ {{14000245474603090176ull, 33589380537835443ull}},
+ {{16223494774156320768ull, 16794690268917721ull}},
+ {{7330497575943398400ull, 83973451344588609ull}},
+ {{12888620824826475008ull, 41986725672294304ull}},
+ {{6444310412413237504ull, 20993362836147152ull}},
+ {{13774807988356635904ull, 104966814180735761ull}},
+ {{16110776031033093632ull, 52483407090367880ull}},
+ {{8055388015516546816ull, 26241703545183940ull}},
+ {{3383451930163631360ull, 131208517725919702ull}},
+ {{1691725965081815552ull, 65604258862959851ull}},
+ {{10069235019395683584ull, 32802129431479925ull}},
+ {{14257989546552617472ull, 16401064715739962ull}},
+ {{15949715511634433280ull, 82005323578699813ull}},
+ {{17198229792671992320ull, 41002661789349906ull}},
+ {{8599114896335996160ull, 20501330894674953ull}},
+ {{6102086334260877824ull, 102506654473374767ull}},
+ {{12274415203985214720ull, 51253327236687383ull}},
+ {{15360579638847383040ull, 25626663618343691ull}},
+ {{3015921899398709504ull, 128133318091718459ull}},
+ {{10731332986554130432ull, 64066659045859229ull}},
+ {{14589038530131841024ull, 32033329522929614ull}},
+ {{7294519265065920512ull, 16016664761464807ull}},
+ {{18025852251620050944ull, 80083323807324036ull}},
+ {{9012926125810025472ull, 40041661903662018ull}},
+ {{4506463062905012736ull, 20020830951831009ull}},
+ {{4085571240815512320ull, 100104154759155046ull}},
+ {{2042785620407756032ull, 50052077379577523ull}},
+ {{10244764847058653696ull, 25026038689788761ull}},
+ {{14330336087874166016ull, 125130193448943807ull}},
+ {{16388540080791858688ull, 62565096724471903ull}},
+ {{17417642077250705152ull, 31282548362235951ull}},
+ {{17932193075480128256ull, 15641274181117975ull}},
+ {{15873989082562435584ull, 78206370905589879ull}},
+ {{17160366578135993600ull, 39103185452794939ull}},
+ {{17803555325922772480ull, 19551592726397469ull}},
+ {{15230800334775656704ull, 97757963631987349ull}},
+ {{16838772204242604032ull, 48878981815993674ull}},
+ {{8419386102121302016ull, 24439490907996837ull}},
+ {{5203442363187407104ull, 122197454539984187ull}},
+ {{11825093218448479232ull, 61098727269992093ull}},
+ {{15135918646079015424ull, 30549363634996046ull}},
+ {{7567959323039507712ull, 15274681817498023ull}},
+ {{946308467778435584ull, 76373409087490117ull}},
+ {{9696526270743993600ull, 38186704543745058ull}},
+ {{4848263135371996672ull, 19093352271872529ull}},
+ {{5794571603150432256ull, 95466761359362646ull}},
+ {{2897285801575216128ull, 47733380679681323ull}},
+ {{10672014937642383872ull, 23866690339840661ull}},
+ {{16466586540792816128ull, 119333451699203307ull}},
+ {{17456665307251183872ull, 59666725849601653ull}},
+ {{17951704690480367616ull, 29833362924800826ull}},
+ {{8975852345240183808ull, 14916681462400413ull}},
+ {{7985773578781816064ull, 74583407312002067ull}},
+ {{13216258826245683712ull, 37291703656001033ull}},
+ {{15831501449977617664ull, 18645851828000516ull}},
+ {{5370530955049882368ull, 93229259140002584ull}},
+ {{2685265477524941056ull, 46614629570001292ull}},
+ {{1342632738762470400ull, 23307314785000646ull}},
+ {{6713163693812352768ull, 116536573925003230ull}},
+ {{3356581846906176256ull, 58268286962501615ull}},
+ {{10901662960307863808ull, 29134143481250807ull}},
+ {{14674203517008707584ull, 14567071740625403ull}},
+ {{18030785363914884096ull, 72835358703127018ull}},
+ {{9015392681957442048ull, 36417679351563509ull}},
+ {{13731068377833496832ull, 18208839675781754ull}},
+ {{13315109668038829568ull, 91044198378908773ull}},
+ {{15880926870874190592ull, 45522099189454386ull}},
+ {{7940463435437095168ull, 22761049594727193ull}},
+ {{2808829029766373120ull, 113805247973635967ull}},
+ {{10627786551737962240ull, 56902623986817983ull}},
+ {{14537265312723756800ull, 28451311993408991ull}},
+ {{17346094342490130176ull, 142256559967044958ull}},
+ {{8673047171245064960ull, 71128279983522479ull}},
+ {{13559895622477308160ull, 35564139991761239ull}},
+ {{16003319848093429760ull, 17782069995880619ull}},
+ {{6229622945628943360ull, 88910349979403099ull}},
+ {{12338183509669247488ull, 44455174989701549ull}},
+ {{15392463791689399552ull, 22227587494850774ull}},
+ {{3175342663608791296ull, 111137937474253874ull}},
+ {{1587671331804395520ull, 55568968737126937ull}},
+ {{10017207702756973568ull, 27784484368563468ull}},
+ {{13192550366365765120ull, 138922421842817342ull}},
+ {{6596275183182882560ull, 69461210921408671ull}},
+ {{12521509628446216960ull, 34730605460704335ull}},
+ {{15484126851077884160ull, 17365302730352167ull}},
+ {{3633657960551215360ull, 86826513651760839ull}},
+ {{11040201017130383360ull, 43413256825880419ull}},
+ {{14743472545419967488ull, 21706628412940209ull}},
+ {{18377130505971182848ull, 108533142064701048ull}},
+ {{9188565252985591296ull, 54266571032350524ull}},
+ {{4594282626492795648ull, 27133285516175262ull}},
+ {{4524669058754426880ull, 135666427580876311ull}},
+ {{11485706566231989248ull, 67833213790438155ull}},
+ {{14966225319970770432ull, 33916606895219077ull}},
+ {{16706484696840161024ull, 16958303447609538ull}},
+ {{9745447189362598656ull, 84791517238047694ull}},
+ {{4872723594681299200ull, 42395758619023847ull}},
+ {{11659733834195425280ull, 21197879309511923ull}},
+ {{2958436949848472576ull, 105989396547559618ull}},
+ {{1479218474924236288ull, 52994698273779809ull}},
+ {{9962981274316893952ull, 26497349136889904ull}},
+ {{12921418224165366528ull, 132486745684449522ull}},
+ {{6460709112082683136ull, 66243372842224761ull}},
+ {{12453726592896117248ull, 33121686421112380ull}},
+ {{6226863296448058624ull, 16560843210556190ull}},
+ {{12687572408530742016ull, 82804216052780951ull}},
+ {{15567158241120146688ull, 41402108026390475ull}},
+ {{17006951157414849024ull, 20701054013195237ull}},
+ {{11247779492236039424ull, 103505270065976189ull}},
+ {{14847261782972795392ull, 51752635032988094ull}},
+ {{7423630891486397696ull, 25876317516494047ull}},
+ {{224666310012885760ull, 129381587582470237ull}},
+ {{9335705191861218560ull, 64690793791235118ull}},
+ {{4667852595930609152ull, 32345396895617559ull}},
+ {{11557298334820080384ull, 16172698447808779ull}},
+ {{2446259452971747584ull, 80863492239043898ull}},
+ {{1223129726485873664ull, 40431746119521949ull}},
+ {{9834936900097712640ull, 20215873059760974ull}},
+ {{12281196353069460224ull, 101079365298804872ull}},
+ {{6140598176534729984ull, 50539682649402436ull}},
+ {{3070299088267364864ull, 25269841324701218ull}},
+ {{15351495441336825344ull, 126349206623506090ull}},
+ {{7675747720668412672ull, 63174603311753045ull}},
+ {{13061245897188982016ull, 31587301655876522ull}},
+ {{6530622948594490880ull, 15793650827938261ull}},
+ {{14206370669262903552ull, 78968254139691306ull}},
+ {{7103185334631451648ull, 39484127069845653ull}},
+ {{12774964704170501632ull, 19742063534922826ull}},
+ {{8534591299723853824ull, 98710317674614133ull}},
+ {{13490667686716702720ull, 49355158837307066ull}},
+ {{6745333843358351360ull, 24677579418653533ull}},
+ {{15279925143082205184ull, 123387897093267666ull}},
+ {{7639962571541102592ull, 61693948546633833ull}},
+ {{13043353322625327104ull, 30846974273316916ull}},
+ {{6521676661312663552ull, 15423487136658458ull}},
+ {{14161639232853766144ull, 77117435683292291ull}},
+ {{16304191653281658880ull, 38558717841646145ull}},
+ {{17375467863495605248ull, 19279358920823072ull}},
+ {{13090363022639819776ull, 96396794604115364ull}},
+ {{6545181511319909888ull, 48198397302057682ull}},
+ {{3272590755659954944ull, 24099198651028841ull}},
+ {{16362953778299774720ull, 120495993255144205ull}},
+ {{17404848926004663040ull, 60247996627572102ull}},
+ {{8702424463002331392ull, 30123998313786051ull}},
+ {{13574584268355941376ull, 15061999156893025ull}},
+ {{12532689120651053056ull, 75309995784465128ull}},
+ {{6266344560325526528ull, 37654997892232564ull}},
+ {{3133172280162763264ull, 18827498946116282ull}},
+ {{15665861400813816320ull, 94137494730581410ull}},
+ {{7832930700406908160ull, 47068747365290705ull}},
+ {{13139837387058229760ull, 23534373682645352ull}},
+ {{10358954714162494720ull, 117671868413226763ull}},
+ {{14402849393936023040ull, 58835934206613381ull}},
+ {{16424796733822787328ull, 29417967103306690ull}},
+ {{8212398366911393536ull, 14708983551653345ull}},
+ {{4168503687137865216ull, 73544917758266727ull}},
+ {{11307623880423708416ull, 36772458879133363ull}},
+ {{14877183977066629888ull, 18386229439566681ull}},
+ {{598943590494943744ull, 91931147197833409ull}},
+ {{9522843832102247680ull, 45965573598916704ull}},
+ {{4761421916051123712ull, 22982786799458352ull}},
+ {{5360365506546067456ull, 114913933997291761ull}},
+ {{11903554790127809536ull, 57456966998645880ull}},
+ {{5951777395063904768ull, 28728483499322940ull}},
+ {{11312142901609972224ull, 143642417496614701ull}},
+ {{14879443487659761920ull, 71821208748307350ull}},
+ {{7439721743829880832ull, 35910604374153675ull}},
+ {{12943232908769716224ull, 17955302187076837ull}},
+ {{9375932322719926528ull, 89776510935384188ull}},
+ {{4687966161359963136ull, 44888255467692094ull}},
+ {{2343983080679981568ull, 22444127733846047ull}},
+ {{11719915403399908352ull, 112220638669230235ull}},
+ {{15083329738554729984ull, 56110319334615117ull}},
+ {{16765036906132140800ull, 28055159667307558ull}},
+ {{10038208235822497536ull, 140275798336537794ull}},
+ {{5019104117911248640ull, 70137899168268897ull}},
+ {{11732924095810400000ull, 35068949584134448ull}},
+ {{5866462047905199872ull, 17534474792067224ull}},
+ {{10885566165816448768ull, 87672373960336121ull}},
+ {{14666155119763000064ull, 43836186980168060ull}},
+ {{7333077559881499904ull, 21918093490084030ull}},
+ {{18218643725697948928ull, 109590467450420151ull}},
+ {{18332693899703750144ull, 54795233725210075ull}},
+ {{18389718986706650880ull, 27397616862605037ull}},
+ {{18161618638695048192ull, 136988084313025189ull}},
+ {{18304181356202299904ull, 68494042156512594ull}},
+ {{9152090678101149952ull, 34247021078256297ull}},
+ {{13799417375905350656ull, 17123510539128148ull}},
+ {{13656854658398098944ull, 85617552695640743ull}},
+ {{16051799366053825280ull, 42808776347820371ull}},
+ {{17249271719881688320ull, 21404388173910185ull}},
+ {{12459382304570235904ull, 107021940869550929ull}},
+ {{15453063189139893760ull, 53510970434775464ull}},
+ {{7726531594569946880ull, 26755485217387732ull}},
+ {{1739169825430631168ull, 133777426086938662ull}},
+ {{869584912715315456ull, 66888713043469331ull}},
+ {{9658164493212433408ull, 33444356521734665ull}},
+ {{14052454283460992512ull, 16722178260867332ull}},
+ {{14922039196176308224ull, 83610891304336663ull}},
+ {{16684391634942929920ull, 41805445652168331ull}},
+ {{17565567854326240768ull, 20902722826084165ull}},
+ {{14040862976792997376ull, 104513614130420829ull}},
+ {{16243803525251274496ull, 52256807065210414ull}},
+ {{8121901762625637120ull, 26128403532605207ull}},
+ {{3716020665709083136ull, 130642017663026037ull}},
+ {{11081382369709317376ull, 65321008831513018ull}},
+ {{5540691184854658560ull, 32660504415756509ull}},
+ {{11993717629282105088ull, 16330252207878254ull}},
+ {{4628355925281870848ull, 81651261039391273ull}},
+ {{11537549999495711232ull, 40825630519695636ull}},
+ {{5768774999747855616ull, 20412815259847818ull}},
+ {{10397130925029726464ull, 102064076299239091ull}},
+ {{14421937499369638912ull, 51032038149619545ull}},
+ {{16434340786539595264ull, 25516019074809772ull}},
+ {{8384727637859770112ull, 127580095374048864ull}},
+ {{4192363818929884928ull, 63790047687024432ull}},
+ {{2096181909464942336ull, 31895023843512216ull}},
+ {{1048090954732471040ull, 15947511921756108ull}},
+ {{5240454773662356224ull, 79737559608780540ull}},
+ {{2620227386831177984ull, 39868779804390270ull}},
+ {{1310113693415588864ull, 19934389902195135ull}},
+ {{6550568467077945344ull, 99671949510975675ull}},
+ {{12498656270393748480ull, 49835974755487837ull}},
+ {{15472700172051650048ull, 24917987377743918ull}},
+ {{3576524565420043776ull, 124589936888719594ull}},
+ {{1788262282710021888ull, 62294968444359797ull}},
+ {{10117503178209786624ull, 31147484222179898ull}},
+ {{5058751589104893184ull, 15573742111089949ull}},
+ {{6847013871814915328ull, 77868710555449746ull}},
+ {{3423506935907457536ull, 38934355277724873ull}},
+ {{10935125504808504576ull, 19467177638862436ull}},
+ {{17782139376623419904ull, 97335888194312182ull}},
+ {{8891069688311709952ull, 48667944097156091ull}},
+ {{13668906881010630656ull, 24333972048578045ull}},
+ {{13004302183924499200ull, 121669860242890228ull}},
+ {{6502151091962249472ull, 60834930121445114ull}},
+ {{3251075545981124608ull, 30417465060722557ull}},
+ {{10848909809845338112ull, 15208732530361278ull}},
+ {{17351060901807587840ull, 76043662651806392ull}},
+ {{8675530450903793920ull, 38021831325903196ull}},
+ {{4337765225451896832ull, 19010915662951598ull}},
+ {{3242082053549933056ull, 95054578314757991ull}},
+ {{10844413063629742336ull, 47527289157378995ull}},
+ {{14645578568669646848ull, 23763644578689497ull}},
+ {{17887660622219580160ull, 118818222893447488ull}},
+ {{8943830311109789952ull, 59409111446723744ull}},
+ {{4471915155554894848ull, 29704555723361872ull}},
+ {{2235957577777447424ull, 14852277861680936ull}},
+ {{11179787888887237632ull, 74261389308404680ull}},
+ {{5589893944443618816ull, 37130694654202340ull}},
+ {{2794946972221809408ull, 18565347327101170ull}},
+ {{13974734861109047040ull, 92826736635505850ull}},
+ {{6987367430554523392ull, 46413368317752925ull}},
+ {{12717055752132037376ull, 23206684158876462ull}},
+ {{8245046539531532800ull, 116033420794382313ull}},
+ {{13345895306620542208ull, 58016710397191156ull}},
+ {{6672947653310270976ull, 29008355198595578ull}},
+ {{3336473826655135488ull, 14504177599297789ull}},
+ {{16682369133275677696ull, 72520887996488945ull}},
+ {{17564556603492614656ull, 36260443998244472ull}},
+ {{8782278301746307328ull, 18130221999122236ull}},
+ {{7017903361312433408ull, 90651109995611182ull}},
+ {{3508951680656216576ull, 45325554997805591ull}},
+ {{10977847877182884096ull, 22662777498902795ull}},
+ {{17995751238495317760ull, 113313887494513977ull}},
+ {{18221247656102434560ull, 56656943747256988ull}},
+ {{9110623828051217152ull, 28328471873628494ull}},
+ {{8659630992836983552ull, 141642359368142472ull}},
+ {{4329815496418491648ull, 70821179684071236ull}},
+ {{2164907748209245696ull, 35410589842035618ull}},
+ {{1082453874104622848ull, 17705294921017809ull}},
+ {{5412269370523114752ull, 88526474605089045ull}},
+ {{11929506722116333056ull, 44263237302544522ull}},
+ {{5964753361058166528ull, 22131618651272261ull}},
+ {{11377022731581281280ull, 110658093256361306ull}},
+ {{5688511365790640640ull, 55329046628180653ull}},
+ {{12067627719750096128ull, 27664523314090326ull}},
+ {{4997906377621825792ull, 138322616570451633ull}},
+ {{11722325225665688576ull, 69161308285225816ull}},
+ {{5861162612832844288ull, 34580654142612908ull}},
+ {{2930581306416422144ull, 17290327071306454ull}},
+ {{14652906532082110720ull, 86451635356532270ull}},
+ {{7326453266041055232ull, 43225817678266135ull}},
+ {{12886598669875303424ull, 21612908839133067ull}},
+ {{9092761128247862784ull, 108064544195665338ull}},
+ {{4546380564123931392ull, 54032272097832669ull}},
+ {{11496562318916741376ull, 27016136048916334ull}},
+ {{2142579373455052544ull, 135080680244581673ull}},
+ {{10294661723582301952ull, 67540340122290836ull}},
+ {{5147330861791150848ull, 33770170061145418ull}},
+ {{2573665430895575296ull, 16885085030572709ull}},
+ {{12868327154477877504ull, 84425425152863545ull}},
+ {{15657535614093714432ull, 42212712576431772ull}},
+ {{7828767807046857216ull, 21106356288215886ull}},
+ {{2250350887815183360ull, 105531781441079432ull}},
+ {{1125175443907591680ull, 52765890720539716ull}},
+ {{562587721953795840ull, 26382945360269858ull}},
+ {{2812938609768979200ull, 131914726801349290ull}},
+ {{1406469304884489472ull, 65957363400674645ull}},
+ {{9926606689297020416ull, 32978681700337322ull}},
+ {{4963303344648510208ull, 16489340850168661ull}},
+ {{6369772649532999936ull, 82446704250843306ull}},
+ {{3184886324766499840ull, 41223352125421653ull}},
+ {{10815815199238025728ull, 20611676062710826ull}},
+ {{17185587848771025664ull, 103058380313554132ull}},
+ {{8592793924385512704ull, 51529190156777066ull}},
+ {{4296396962192756224ull, 25764595078388533ull}},
+ {{3035240737254230528ull, 128822975391942666ull}},
+ {{1517620368627115264ull, 64411487695971333ull}},
+ {{9982182221168333312ull, 32205743847985666ull}},
+ {{4991091110584166656ull, 16102871923992833ull}},
+ {{6508711479211281920ull, 80514359619964166ull}},
+ {{3254355739605640960ull, 40257179809982083ull}},
+ {{10850549906657596160ull, 20128589904991041ull}},
+ {{17359261385868878336ull, 100642949524955207ull}},
+ {{17903002729789214976ull, 50321474762477603ull}},
+ {{18174873401749383168ull, 25160737381238801ull}},
+ {{17087390713908709888ull, 125803686906194009ull}},
+ {{17767067393809130752ull, 62901843453097004ull}},
+ {{8883533696904565248ull, 31450921726548502ull}},
+ {{4441766848452282624ull, 15725460863274251ull}},
+ {{3762090168551861760ull, 78627304316371256ull}},
+ {{1881045084275930880ull, 39313652158185628ull}},
+ {{940522542137965312ull, 19656826079092814ull}},
+ {{4702612710689827328ull, 98284130395464070ull}},
+ {{2351306355344913664ull, 49142065197732035ull}},
+ {{10399025214527232512ull, 24571032598866017ull}},
+ {{15101637925217059840ull, 122855162994330087ull}},
+ {{16774190999463305728ull, 61427581497165043ull}},
+ {{17610467536586428672ull, 30713790748582521ull}},
+ {{18028605805147990016ull, 15356895374291260ull}},
+ {{16356052730901744384ull, 76784476871456304ull}},
+ {{8178026365450872064ull, 38392238435728152ull}},
+ {{4089013182725435904ull, 19196119217864076ull}},
+ {{1998321839917628672ull, 95980596089320381ull}},
+ {{10222532956813590016ull, 47990298044660190ull}},
+ {{5111266478406795008ull, 23995149022330095ull}},
+ {{7109588318324423936ull, 119975745111650476ull}},
+ {{3554794159162211840ull, 59987872555825238ull}},
+ {{1777397079581105920ull, 29993936277912619ull}},
+ {{10112070576645328640ull, 14996968138956309ull}},
+ {{13666864735807540736ull, 74984840694781547ull}},
+ {{16056804404758546176ull, 37492420347390773ull}},
+ {{17251774239234048768ull, 18746210173695386ull}},
+ {{12471894901332037888ull, 93731050868476934ull}},
+ {{6235947450666018816ull, 46865525434238467ull}},
+ {{12341345762187785216ull, 23432762717119233ull}},
+ {{6366496589810271744ull, 117163813585596168ull}},
+ {{3183248294905135872ull, 58581906792798084ull}},
+ {{1591624147452567808ull, 29290953396399042ull}},
+ {{795812073726283776ull, 14645476698199521ull}},
+ {{3979060368631419648ull, 73227383490997605ull}},
+ {{11212902221170485504ull, 36613691745498802ull}},
+ {{5606451110585242624ull, 18306845872749401ull}},
+ {{9585511479216662528ull, 91534229363747006ull}},
+ {{4792755739608331264ull, 45767114681873503ull}},
+ {{11619749906658941440ull, 22883557340936751ull}},
+ {{2758517312166052608ull, 114417786704683758ull}},
+ {{1379258656083026176ull, 57208893352341879ull}},
+ {{9913001364896288768ull, 28604446676170939ull}},
+ {{12671518677062341632ull, 143022233380854697ull}},
+ {{15559131375385946624ull, 71511116690427348ull}},
+ {{7779565687692973312ull, 35755558345213674ull}},
+ {{3889782843846486528ull, 17877779172606837ull}},
+ {{1002170145522881536ull, 89388895863034186ull}},
+ {{501085072761440768ull, 44694447931517093ull}},
+ {{9473914573235496192ull, 22347223965758546ull}},
+ {{10476084718758377728ull, 111736119828792732ull}},
+ {{5238042359379188736ull, 55868059914396366ull}},
+ {{2619021179689594368ull, 27934029957198183ull}},
+ {{13095105898447972352ull, 139670149785990915ull}},
+ {{15770924986078761984ull, 69835074892995457ull}},
+ {{17108834529894156800ull, 34917537446497728ull}},
+ {{8554417264947078400ull, 17458768723248864ull}},
+ {{5878598177316288768ull, 87293843616244322ull}},
+ {{2939299088658144256ull, 43646921808122161ull}},
+ {{10693021581183847936ull, 21823460904061080ull}},
+ {{16571619758500136704ull, 109117304520305402ull}},
+ {{8285809879250068224ull, 54558652260152701ull}},
+ {{13366276976479809792ull, 27279326130076350ull}},
+ {{11491152661270395136ull, 136396630650381753ull}},
+ {{14968948367489973248ull, 68198315325190876ull}},
+ {{7484474183744986624ull, 34099157662595438ull}},
+ {{3742237091872493312ull, 17049578831297719ull}},
+ {{264441385652914944ull, 85247894156488596ull}},
+ {{132220692826457344ull, 42623947078244298ull}},
+ {{66110346413228544ull, 21311973539122149ull}},
+ {{330551732066143744ull, 106559867695610745ull}},
+ {{9388647902887847680ull, 53279933847805372ull}},
+ {{4694323951443923712ull, 26639966923902686ull}},
+ {{5024875683510067712ull, 133199834619513431ull}},
+ {{11735809878609809664ull, 66599917309756715ull}},
+ {{15091276976159680512ull, 33299958654878357ull}},
+ {{16769010524934616064ull, 16649979327439178ull}},
+ {{10058076329834874112ull, 83249896637195894ull}},
+ {{5029038164917436928ull, 41624948318597947ull}},
+ {{11737891119313494272ull, 20812474159298973ull}},
+ {{3349223375438816768ull, 104062370796494868ull}},
+ {{1674611687719408384ull, 52031185398247434ull}},
+ {{837305843859704064ull, 26015592699123717ull}},
+ {{4186529219298521088ull, 130077963495618585ull}},
+ {{11316636646504036352ull, 65038981747809292ull}},
+ {{5658318323252018176ull, 32519490873904646ull}},
+ {{2829159161626009088ull, 16259745436952323ull}},
+ {{14145795808130045440ull, 81298727184761615ull}},
+ {{16296269940919798528ull, 40649363592380807ull}},
+ {{17371507007314674944ull, 20324681796190403ull}},
+ {{13070558741735168768ull, 101623408980952019ull}},
+ {{15758651407722360064ull, 50811704490476009ull}},
+ {{17102697740715955712ull, 25405852245238004ull}},
+ {{11726512408741573120ull, 127029261226190024ull}},
+ {{5863256204370786560ull, 63514630613095012ull}},
+ {{2931628102185393152ull, 31757315306547506ull}},
+ {{1465814051092696576ull, 15878657653273753ull}},
+ {{7329070255463483136ull, 79393288266368765ull}},
+ {{12887907164586517248ull, 39696644133184382ull}},
+ {{6443953582293258496ull, 19848322066592191ull}},
+ {{13773023837756741888ull, 99241610332960956ull}},
+ {{6886511918878370816ull, 49620805166480478ull}},
+ {{3443255959439185408ull, 24810402583240239ull}},
+ {{17216279797195927552ull, 124052012916201195ull}},
+ {{17831511935452739584ull, 62026006458100597ull}},
+ {{18139128004581145600ull, 31013003229050298ull}},
+ {{9069564002290572800ull, 15506501614525149ull}},
+ {{8454331864033760768ull, 77532508072625747ull}},
+ {{13450537968871656192ull, 38766254036312873ull}},
+ {{15948641021290603776ull, 19383127018156436ull}},
+ {{5956228811614812928ull, 96915635090782184ull}},
+ {{2978114405807406336ull, 48457817545391092ull}},
+ {{1489057202903703040ull, 24228908772695546ull}},
+ {{7445286014518516224ull, 121144543863477730ull}},
+ {{3722643007259258112ull, 60572271931738865ull}},
+ {{11084693540484404736ull, 30286135965869432ull}},
+ {{5542346770242202368ull, 15143067982934716ull}},
+ {{9264989777501460480ull, 75715339914673581ull}},
+ {{13855866925605506048ull, 37857669957336790ull}},
+ {{6927933462802753024ull, 18928834978668395ull}},
+ {{16192923240304213504ull, 94644174893341976ull}},
+ {{8096461620152106752ull, 47322087446670988ull}},
+ {{4048230810076053248ull, 23661043723335494ull}},
+ {{1794409976670715392ull, 118305218616677471ull}},
+ {{10120577025190133504ull, 59152609308338735ull}},
+ {{14283660549449842432ull, 29576304654169367ull}},
+ {{16365202311579696896ull, 14788152327084683ull}},
+ {{8039035263060278784ull, 73940761635423419ull}},
+ {{13242889668384915200ull, 36970380817711709ull}},
+ {{15844816871047233280ull, 18485190408855854ull}},
+ {{5437108060397960704ull, 92425952044279274ull}},
+ {{2718554030198980352ull, 46212976022139637ull}},
+ {{10582649051954265856ull, 23106488011069818ull}},
+ {{16019757112352226816ull, 115532440055349092ull}},
+ {{8009878556176113408ull, 57766220027674546ull}},
+ {{4004939278088056576ull, 28883110013837273ull}},
+ {{11225841675898803968ull, 14441555006918636ull}},
+ {{788976158365366016ull, 72207775034593183ull}},
+ {{9617860116037458688ull, 36103887517296591ull}},
+ {{14032302094873505024ull, 18051943758648295ull}},
+ {{14821278253238871040ull, 90259718793241478ull}},
+ {{7410639126619435520ull, 45129859396620739ull}},
+ {{12928691600164493568ull, 22564929698310369ull}},
+ {{9303225779693812992ull, 112824648491551848ull}},
+ {{4651612889846906368ull, 56412324245775924ull}},
+ {{2325806444923453184ull, 28206162122887962ull}},
+ {{11629032224617266432ull, 141030810614439810ull}},
+ {{5814516112308633088ull, 70515405307219905ull}},
+ {{12130630093009092352ull, 35257702653609952ull}},
+ {{6065315046504546048ull, 17628851326804976ull}},
+ {{11879831158813179392ull, 88144256634024881ull}},
+ {{15163287616261365504ull, 44072128317012440ull}},
+ {{7581643808130682624ull, 22036064158506220ull}},
+ {{1014730893234310656ull, 110180320792531102ull}},
+ {{507365446617155328ull, 55090160396265551ull}},
+ {{9477054760163353344ull, 27545080198132775ull}},
+ {{10491785653397664000ull, 137725400990663877ull}},
+ {{14469264863553607680ull, 68862700495331938ull}},
+ {{7234632431776803840ull, 34431350247665969ull}},
+ {{12840688252743177728ull, 17215675123832984ull}},
+ {{8863209042587233792ull, 86078375619164923ull}},
+ {{13654976558148392704ull, 43039187809582461ull}},
+ {{16050860315928972032ull, 21519593904791230ull}},
+ {{6467325284806654464ull, 107597969523956154ull}},
+ {{3233662642403327232ull, 53798984761978077ull}},
+ {{10840203358056439296ull, 26899492380989038ull}},
+ {{17307528642863094016ull, 134497461904945192ull}},
+ {{8653764321431546880ull, 67248730952472596ull}},
+ {{4326882160715773440ull, 33624365476236298ull}},
+ {{2163441080357886720ull, 16812182738118149ull}},
+ {{10817205401789433600ull, 84060913690590745ull}},
+ {{14631974737749492480ull, 42030456845295372ull}},
+ {{7315987368874746112ull, 21015228422647686ull}},
+ {{18133192770664179968ull, 105076142113238431ull}},
+ {{18289968422186865664ull, 52538071056619215ull}},
+ {{18368356247948208640ull, 26269035528309607ull}},
+ {{18054804944902837248ull, 131345177641548039ull}},
+ {{18250774509306194432ull, 65672588820774019ull}},
+ {{18348759291507873024ull, 32836294410387009ull}},
+ {{18397751682608712192ull, 16418147205193504ull}},
+ {{18201782118205355008ull, 82090736025967524ull}},
+ {{9100891059102677504ull, 41045368012983762ull}},
+ {{4550445529551338752ull, 20522684006491881ull}},
+ {{4305483574047142144ull, 102613420032459406ull}},
+ {{2152741787023570944ull, 51306710016229703ull}},
+ {{10299742930366561280ull, 25653355008114851ull}},
+ {{14605226504413703680ull, 128266775040574257ull}},
+ {{16525985289061627648ull, 64133387520287128ull}},
+ {{8262992644530813696ull, 32066693760143564ull}},
+ {{4131496322265406720ull, 16033346880071782ull}},
+ {{2210737537617482752ull, 80166734400358911ull}},
+ {{10328740805663517184ull, 40083367200179455ull}},
+ {{14387742439686534400ull, 20041683600089727ull}},
+ {{16598479977304017408ull, 100208418000448638ull}},
+ {{8299239988652008704ull, 50104209000224319ull}},
+ {{13372992031180780032ull, 25052104500112159ull}},
+ {{11524727934775245824ull, 125260522500560798ull}},
+ {{5762363967387622912ull, 62630261250280399ull}},
+ {{12104554020548587264ull, 31315130625140199ull}},
+ {{15275649047129069312ull, 15657565312570099ull}},
+ {{2591268940807140608ull, 78287826562850499ull}},
+ {{10519006507258345984ull, 39143913281425249ull}},
+ {{14482875290483948800ull, 19571956640712624ull}},
+ {{17074144231291089664ull, 97859783203563123ull}},
+ {{17760444152500320512ull, 48929891601781561ull}},
+ {{18103594113104935936ull, 24464945800890780ull}},
+ {{16730994270686474240ull, 122324729004453904ull}},
+ {{8365497135343237120ull, 61162364502226952ull}},
+ {{4182748567671618560ull, 30581182251113476ull}},
+ {{2091374283835809280ull, 15290591125556738ull}},
+ {{10456871419179046400ull, 76452955627783690ull}},
+ {{5228435709589523200ull, 38226477813891845ull}},
+ {{11837589891649537280ull, 19113238906945922ull}},
+ {{3847717237119032064ull, 95566194534729613ull}},
+ {{11147230655414291712ull, 47783097267364806ull}},
+ {{5573615327707145728ull, 23891548633682403ull}},
+ {{9421332564826178048ull, 119457743168412016ull}},
+ {{4710666282413089024ull, 59728871584206008ull}},
+ {{2355333141206544384ull, 29864435792103004ull}},
+ {{1177666570603272192ull, 14932217896051502ull}},
+ {{5888332853016361216ull, 74661089480257510ull}},
+ {{2944166426508180480ull, 37330544740128755ull}},
+ {{10695455250108866048ull, 18665272370064377ull}},
+ {{16583788103125227520ull, 93326361850321887ull}},
+ {{17515266088417389568ull, 46663180925160943ull}},
+ {{17981005081063470592ull, 23331590462580471ull}},
+ {{16118049110479146496ull, 116657952312902359ull}},
+ {{17282396592094349056ull, 58328976156451179ull}},
+ {{17864570332901950208ull, 29164488078225589ull}},
+ {{18155657203305750784ull, 14582244039112794ull}},
+ {{16991309721690548224ull, 72911220195563974ull}},
+ {{8495654860845274112ull, 36455610097781987ull}},
+ {{13471199467277412864ull, 18227805048890993ull}},
+ {{12015765115258409472ull, 91139025244454968ull}},
+ {{6007882557629204736ull, 45569512622227484ull}},
+ {{3003941278814602240ull, 22784756311113742ull}},
+ {{15019706394073011968ull, 113923781555568710ull}},
+ {{7509853197036505856ull, 56961890777784355ull}},
+ {{12978298635373028608ull, 28480945388892177ull}},
+ {{9551260955736489216ull, 142404726944460888ull}},
+ {{4775630477868244480ull, 71202363472230444ull}},
+ {{2387815238934122240ull, 35601181736115222ull}},
+ {{1193907619467060992ull, 17800590868057611ull}},
+ {{5969538097335305728ull, 89002954340288055ull}},
+ {{12208141085522428672ull, 44501477170144027ull}},
+ {{15327442579615990016ull, 22250738585072013ull}},
+ {{2850236603241744384ull, 111253692925360069ull}},
+ {{10648490338475648000ull, 55626846462680034ull}},
+ {{5324245169237824000ull, 27813423231340017ull}},
+ {{8174481772479568384ull, 139067116156700086ull}},
+ {{4087240886239784192ull, 69533558078350043ull}},
+ {{11266992479974667776ull, 34766779039175021ull}},
+ {{14856868276842109696ull, 17383389519587510ull}},
+ {{497365089372342272ull, 86916947597937554ull}},
+ {{248682544686171136ull, 43458473798968777ull}},
+ {{9347713309197861376ull, 21729236899484388ull}},
+ {{9845078398570203648ull, 108646184497421942ull}},
+ {{4922539199285101824ull, 54323092248710971ull}},
+ {{11684641636497326592ull, 27161546124355485ull}},
+ {{3082975961357978880ull, 135807730621777428ull}},
+ {{1541487980678989312ull, 67903865310888714ull}},
+ {{770743990339494656ull, 33951932655444357ull}},
+ {{9608744032024523008ull, 16975966327722178ull}},
+ {{11150232012703512576ull, 84879831638610892ull}},
+ {{5575116006351756288ull, 42439915819305446ull}},
+ {{2787558003175878144ull, 21219957909652723ull}},
+ {{13937790015879390720ull, 106099789548263615ull}},
+ {{16192267044794471168ull, 53049894774131807ull}},
+ {{17319505559252011264ull, 26524947387065903ull}},
+ {{12810551501421850368ull, 132624736935329519ull}},
+ {{15628647787565700864ull, 66312368467664759ull}},
+ {{17037695930637626112ull, 33156184233832379ull}},
+ {{17742220002173588736ull, 16578092116916189ull}},
+ {{14924123716029738240ull, 82890460584580949ull}},
+ {{16685433894869644800ull, 41445230292290474ull}},
+ {{8342716947434822400ull, 20722615146145237ull}},
+ {{4820096589755009280ull, 103613075730726187ull}},
+ {{11633420331732280320ull, 51806537865363093ull}},
+ {{15040082202720915968ull, 25903268932681546ull}},
+ {{1413434718766373632ull, 129516344663407734ull}},
+ {{706717359383186688ull, 64758172331703867ull}},
+ {{9576730716546369024ull, 32379086165851933ull}},
+ {{14011737395127960320ull, 16189543082925966ull}},
+ {{14718454754511147264ull, 80947715414629833ull}},
+ {{16582599414110349312ull, 40473857707314916ull}},
+ {{8291299707055174656ull, 20236928853657458ull}},
+ {{4563010387856770304ull, 101184644268287292ull}},
+ {{2281505193928385024ull, 50592322134143646ull}},
+ {{1140752596964192512ull, 25296161067071823ull}},
+ {{5703762984820963072ull, 126480805335359115ull}},
+ {{12075253529265257216ull, 63240402667679557ull}},
+ {{15260998801487404288ull, 31620201333839778ull}},
+ {{7630499400743702016ull, 15810100666919889ull}},
+ {{1259008856299407872ull, 79050503334599447ull}},
+ {{9852876465004479744ull, 39525251667299723ull}},
+ {{14149810269357015552ull, 19762625833649861ull}},
+ {{15408819125656423680ull, 98813129168249308ull}},
+ {{7704409562828211712ull, 49406564584124654ull}},
+ {{3852204781414105856ull, 24703282292062327ull}},
+ {{814279833360977920ull, 123516411460311636ull}},
+ {{407139916680488960ull, 61758205730155818ull}},
+ {{203569958340244480ull, 30879102865077909ull}},
+ {{9325157016024898048ull, 15439551432538954ull}},
+ {{9732296932705387008ull, 77197757162694772ull}},
+ {{4866148466352693504ull, 38598878581347386ull}},
+ {{2433074233176346624ull, 19299439290673693ull}},
+ {{12165371165881733632ull, 96497196453368465ull}},
+ {{15306057619795642624ull, 48248598226684232ull}},
+ {{7653028809897821184ull, 24124299113342116ull}},
+ {{1371655902070003456ull, 120621495566710582ull}},
+ {{685827951035001600ull, 60310747783355291ull}},
+ {{9566286012372276480ull, 30155373891677645ull}},
+ {{14006515043040913920ull, 15077686945838822ull}},
+ {{14692342994075915776ull, 75388434729194113ull}},
+ {{16569543533892733696ull, 37694217364597056ull}},
+ {{8284771766946366720ull, 18847108682298528ull}},
+ {{4530370687312731136ull, 94235543411492642ull}},
+ {{2265185343656365568ull, 47117771705746321ull}},
+ {{10355964708682958592ull, 23558885852873160ull}},
+ {{14886335395995689728ull, 117794429264365802ull}},
+ {{7443167697997844736ull, 58897214632182901ull}},
+ {{12944955885853698048ull, 29448607316091450ull}},
+ {{6472477942926849024ull, 14724303658045725ull}},
+ {{13915645640924694016ull, 73621518290228626ull}},
+ {{6957822820462347008ull, 36810759145114313ull}},
+ {{12702283447085949184ull, 18405379572557156ull}},
+ {{8171185014301091584ull, 92026897862785783ull}},
+ {{13308964544005321472ull, 46013448931392891ull}},
+ {{15877854308857436416ull, 23006724465696445ull}},
+ {{5602295249448976640ull, 115033622328482229ull}},
+ {{12024519661579264000ull, 57516811164241114ull}},
+ {{6012259830789632000ull, 28758405582120557ull}},
+ {{11614555080238608640ull, 143792027910602786ull}},
+ {{5807277540119304192ull, 71896013955301393ull}},
+ {{12127010806914427904ull, 35948006977650696ull}},
+ {{6063505403457213952ull, 17974003488825348ull}},
+ {{11870782943576518400ull, 89870017444126741ull}},
+ {{15158763508643034880ull, 44935008722063370ull}},
+ {{7579381754321517312ull, 22467504361031685ull}},
+ {{1003420624188484096ull, 112337521805158427ull}},
+ {{9725082348949017856ull, 56168760902579213ull}},
+ {{14085913211329284608ull, 28084380451289606ull}},
+ {{15089333835517768960ull, 140421902256448033ull}},
+ {{16768038954613660160ull, 70210951128224016ull}},
+ {{8384019477306830080ull, 35105475564112008ull}},
+ {{4192009738653414912ull, 17552737782056004ull}},
+ {{2513304619557523712ull, 87763688910280021ull}},
+ {{10480024346633537536ull, 43881844455140010ull}},
+ {{5240012173316768768ull, 21940922227570005ull}},
+ {{7753316792874292480ull, 109704611137850026ull}},
+ {{3876658396437146112ull, 54852305568925013ull}},
+ {{11161701235073348864ull, 27426152784462506ull}},
+ {{468273954238089984ull, 137130763922312533ull}},
+ {{9457509013973820672ull, 68565381961156266ull}},
+ {{4728754506986910208ull, 34282690980578133ull}},
+ {{11587749290348230912ull, 17141345490289066ull}},
+ {{2598514230612500224ull, 85706727451445333ull}},
+ {{10522629152161025792ull, 42853363725722666ull}},
+ {{5261314576080512768ull, 21426681862861333ull}},
+ {{7859828806693012992ull, 107133409314306666ull}},
+ {{3929914403346506496ull, 53566704657153333ull}},
+ {{11188329238528028928ull, 26783352328576666ull}},
+ {{601413971511490560ull, 133916761642883333ull}},
+ {{9524079022610521088ull, 66958380821441666ull}},
+ {{4762039511305260544ull, 33479190410720833ull}},
+ {{11604391792507406080ull, 16739595205360416ull}},
+ {{2681726741408375552ull, 83697976026802083ull}},
+ {{10564235407558963456ull, 41848988013401041ull}},
+ {{14505489740634257408ull, 20924494006700520ull}},
+ {{17187216482042633216ull, 104622470033502603ull}},
+ {{17816980277876092416ull, 52311235016751301ull}},
+ {{18131862175792822016ull, 26155617508375650ull}},
+ {{16872334584125903616ull, 130778087541878254ull}},
+ {{8436167292062951680ull, 65389043770939127ull}},
+ {{13441455682886251520ull, 32694521885469563ull}},
+ {{15944099878297901568ull, 16347260942734781ull}},
+ {{5933523096651301888ull, 81736304713673909ull}},
+ {{12190133585180426752ull, 40868152356836954ull}},
+ {{6095066792590213376ull, 20434076178418477ull}},
+ {{12028589889241515264ull, 102170380892092386ull}},
+ {{6014294944620757504ull, 51085190446046193ull}},
+ {{12230519509165154560ull, 25542595223023096ull}},
+ {{5812365324697118208ull, 127712976115115483ull}},
+ {{12129554699203334912ull, 63856488057557741ull}},
+ {{15288149386456443136ull, 31928244028778870ull}},
+ {{7644074693228221440ull, 15964122014389435ull}},
+ {{1326885318722004736ull, 79820610071947177ull}},
+ {{9886814696215778048ull, 39910305035973588ull}},
+ {{4943407348107888896ull, 19955152517986794ull}},
+ {{6270292666829893888ull, 99775762589933971ull}},
+ {{12358518370269722624ull, 49887881294966985ull}},
+ {{15402631221989637120ull, 24943940647483492ull}},
+ {{3226179815109979648ull, 124719703237417464ull}},
+ {{1613089907554989824ull, 62359851618708732ull}},
+ {{806544953777494784ull, 31179925809354366ull}},
+ {{403272476888747264ull, 15589962904677183ull}},
+ {{2016362384443737344ull, 77949814523385915ull}},
+ {{10231553229076644352ull, 38974907261692957ull}},
+ {{14339148651393097984ull, 19487453630846478ull}},
+ {{16355511035836835328ull, 97437268154232393ull}},
+ {{17401127554773193472ull, 48718634077116196ull}},
+ {{8700563777386596608ull, 24359317038558098ull}},
+ {{6609330739513880320ull, 121796585192790492ull}},
+ {{3304665369756940032ull, 60898292596395246ull}},
+ {{1652332684878469888ull, 30449146298197623ull}},
+ {{10049538379294010624ull, 15224573149098811ull}},
+ {{13354203749050950912ull, 76122865745494057ull}},
+ {{15900473911380251136ull, 38061432872747028ull}},
+ {{7950236955690125568ull, 19030716436373514ull}},
+ {{2857696631031525120ull, 95153582181867572ull}},
+ {{1428848315515762432ull, 47576791090933786ull}},
+ {{714424157757881088ull, 23788395545466893ull}},
+ {{3572120788789406464ull, 118941977727334465ull}},
+ {{11009432431249478912ull, 59470988863667232ull}},
+ {{5504716215624739328ull, 29735494431833616ull}},
+ {{2752358107812369664ull, 14867747215916808ull}},
+ {{13761790539061848832ull, 74338736079584040ull}},
+ {{6880895269530924288ull, 37169368039792020ull}},
+ {{3440447634765462016ull, 18584684019896010ull}},
+ {{17202238173827310848ull, 92923420099480050ull}},
+ {{8601119086913655296ull, 46461710049740025ull}},
+ {{13523931580311603456ull, 23230855024870012ull}},
+ {{12279425680429362944ull, 116154275124350063ull}},
+ {{15363084877069457152ull, 58077137562175031ull}},
+ {{16904914475389504256ull, 29038568781087515ull}},
+ {{17675829274549527808ull, 14519284390543757ull}},
+ {{14592170077909433600ull, 72596421952718789ull}},
+ {{16519457075809492480ull, 36298210976359394ull}},
+ {{8259728537904746240ull, 18149105488179697ull}},
+ {{4405154542104628224ull, 90745527440898487ull}},
+ {{11425949307907089920ull, 45372763720449243ull}},
+ {{14936346690808320768ull, 22686381860224621ull}},
+ {{894757159203397632ull, 113431909301123109ull}},
+ {{9670750616456474624ull, 56715954650561554ull}},
+ {{4835375308228237312ull, 28357977325280777ull}},
+ {{5730132467431634944ull, 141789886626403886ull}},
+ {{2865066233715817472ull, 70894943313201943ull}},
+ {{10655905153712684544ull, 35447471656600971ull}},
+ {{14551324613711118080ull, 17723735828300485ull}},
+ {{17416390847426935552ull, 88618679141502428ull}},
+ {{8708195423713467648ull, 44309339570751214ull}},
+ {{4354097711856733696ull, 22154669785375607ull}},
+ {{3323744485574117632ull, 110773348926878036ull}},
+ {{1661872242787058688ull, 55386674463439018ull}},
+ {{830936121393529344ull, 27693337231719509ull}},
+ {{4154680606967647232ull, 138466686158597545ull}},
+ {{11300712340338599424ull, 69233343079298772ull}}
+};
+
+static const int bid_exponents_bid32[] = {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1,
+ 2,
+ 2,
+ 2,
+ 3,
+ 3,
+ 3,
+ 3,
+ 4,
+ 4,
+ 4,
+ 5,
+ 5,
+ 5,
+ 6,
+ 6,
+ 6,
+ 7,
+ 7,
+ 7,
+ 7,
+ 8,
+ 8,
+ 8,
+ 9,
+ 9,
+ 9,
+ 10,
+ 10,
+ 10,
+ 10,
+ 11,
+ 11,
+ 11,
+ 12,
+ 12,
+ 12,
+ 13,
+ 13,
+ 13,
+ 13,
+ 14,
+ 14,
+ 14,
+ 15,
+ 15,
+ 15,
+ 16,
+ 16,
+ 16,
+ 16,
+ 17,
+ 17,
+ 17,
+ 18,
+ 18,
+ 18,
+ 19,
+ 19,
+ 19,
+ 19,
+ 20,
+ 20,
+ 20,
+ 21,
+ 21,
+ 21,
+ 22,
+ 22,
+ 22,
+ 22,
+ 23,
+ 23,
+ 23,
+ 24,
+ 24,
+ 24,
+ 25,
+ 25,
+ 25,
+ 25,
+ 26,
+ 26,
+ 26,
+ 27,
+ 27,
+ 27,
+ 28,
+ 28,
+ 28,
+ 28,
+ 29,
+ 29,
+ 29,
+ 30,
+ 30,
+ 30,
+ 31,
+ 31,
+ 31,
+ 31,
+ 32,
+ 32,
+ 32,
+ 33,
+ 33,
+ 33,
+ 34,
+ 34,
+ 34,
+ 34,
+ 35,
+ 35,
+ 35,
+ 36,
+ 36,
+ 36,
+ 37,
+ 37,
+ 37,
+ 38,
+ 38,
+ 38,
+ 38,
+ 39,
+ 39,
+ 39,
+ 40,
+ 40,
+ 40,
+ 41,
+ 41,
+ 41,
+ 41,
+ 42,
+ 42,
+ 42,
+ 43,
+ 43,
+ 43,
+ 44,
+ 44,
+ 44,
+ 44,
+ 45,
+ 45,
+ 45,
+ 46,
+ 46,
+ 46,
+ 47,
+ 47,
+ 47,
+ 47,
+ 48,
+ 48,
+ 48,
+ 49,
+ 49,
+ 49,
+ 50,
+ 50,
+ 50,
+ 50,
+ 51,
+ 51,
+ 51,
+ 52,
+ 52,
+ 52,
+ 53,
+ 53,
+ 53,
+ 53,
+ 54,
+ 54,
+ 54,
+ 55,
+ 55,
+ 55,
+ 56,
+ 56,
+ 56,
+ 56,
+ 57,
+ 57,
+ 57,
+ 58,
+ 58,
+ 58,
+ 59,
+ 59,
+ 59,
+ 59,
+ 60,
+ 60,
+ 60,
+ 61,
+ 61,
+ 61,
+ 62,
+ 62,
+ 62,
+ 62,
+ 63,
+ 63,
+ 63,
+ 64,
+ 64,
+ 64,
+ 65,
+ 65,
+ 65,
+ 66,
+ 66,
+ 66,
+ 66,
+ 67,
+ 67,
+ 67,
+ 68,
+ 68,
+ 68,
+ 69,
+ 69,
+ 69,
+ 69,
+ 70,
+ 70,
+ 70,
+ 71,
+ 71,
+ 71,
+ 72,
+ 72,
+ 72,
+ 72,
+ 73,
+ 73,
+ 73,
+ 74,
+ 74,
+ 74,
+ 75,
+ 75,
+ 75,
+ 75,
+ 76,
+ 76,
+ 76,
+ 77,
+ 77,
+ 77,
+ 78,
+ 78,
+ 78,
+ 78,
+ 79,
+ 79,
+ 79,
+ 80,
+ 80,
+ 80,
+ 81,
+ 81,
+ 81,
+ 81,
+ 82,
+ 82,
+ 82,
+ 83,
+ 83,
+ 83,
+ 84,
+ 84,
+ 84,
+ 84,
+ 85,
+ 85,
+ 85,
+ 86,
+ 86,
+ 86,
+ 87,
+ 87,
+ 87,
+ 87,
+ 88,
+ 88,
+ 88,
+ 89,
+ 89,
+ 89,
+ 90,
+ 90,
+ 90,
+ 90,
+ 91,
+ 91,
+ 91,
+ 92,
+ 92,
+ 92,
+ 93,
+ 93,
+ 93,
+ 93,
+ 94,
+ 94,
+ 94,
+ 95,
+ 95,
+ 95,
+ 96,
+ 96,
+ 96,
+ 97,
+ 97,
+ 97,
+ 97,
+ 98,
+ 98,
+ 98,
+ 99,
+ 99,
+ 99,
+ 100,
+ 100,
+ 100,
+ 100,
+ 101,
+ 101,
+ 101,
+ 102,
+ 102,
+ 102,
+ 103,
+ 103,
+ 103,
+ 103,
+ 104,
+ 104,
+ 104,
+ 105,
+ 105,
+ 105,
+ 106,
+ 106,
+ 106,
+ 106,
+ 107,
+ 107,
+ 107,
+ 108,
+ 108,
+ 108,
+ 109,
+ 109,
+ 109,
+ 109,
+ 110,
+ 110,
+ 110,
+ 111,
+ 111,
+ 111,
+ 112,
+ 112,
+ 112,
+ 112,
+ 113,
+ 113,
+ 113,
+ 114,
+ 114,
+ 114,
+ 115,
+ 115,
+ 115,
+ 115,
+ 116,
+ 116,
+ 116,
+ 117,
+ 117,
+ 117,
+ 118,
+ 118,
+ 118,
+ 118,
+ 119,
+ 119,
+ 119,
+ 120,
+ 120,
+ 120,
+ 121,
+ 121,
+ 121,
+ 121,
+ 122,
+ 122,
+ 122,
+ 123,
+ 123,
+ 123,
+ 124,
+ 124,
+ 124,
+ 125,
+ 125,
+ 125,
+ 125,
+ 126,
+ 126,
+ 126,
+ 127,
+ 127,
+ 127,
+ 128,
+ 128,
+ 128,
+ 128,
+ 129,
+ 129,
+ 129,
+ 130,
+ 130,
+ 130,
+ 131,
+ 131,
+ 131,
+ 131,
+ 132,
+ 132,
+ 132,
+ 133,
+ 133,
+ 133,
+ 134,
+ 134,
+ 134,
+ 134,
+ 135,
+ 135,
+ 135,
+ 136,
+ 136,
+ 136,
+ 137,
+ 137,
+ 137,
+ 137,
+ 138,
+ 138,
+ 138,
+ 139,
+ 139,
+ 139,
+ 140,
+ 140,
+ 140,
+ 140,
+ 141,
+ 141,
+ 141,
+ 142,
+ 142,
+ 142,
+ 143,
+ 143,
+ 143,
+ 143,
+ 144,
+ 144,
+ 144,
+ 145,
+ 145,
+ 145,
+ 146,
+ 146,
+ 146,
+ 146,
+ 147,
+ 147,
+ 147,
+ 148,
+ 148,
+ 148,
+ 149,
+ 149,
+ 149,
+ 149,
+ 150,
+ 150,
+ 150,
+ 151,
+ 151,
+ 151,
+ 152,
+ 152,
+ 152,
+ 153,
+ 153,
+ 153,
+ 153,
+ 154,
+ 154,
+ 154,
+ 155,
+ 155,
+ 155,
+ 156,
+ 156,
+ 156,
+ 156,
+ 157,
+ 157,
+ 157,
+ 158,
+ 158,
+ 158,
+ 159,
+ 159,
+ 159,
+ 159,
+ 160,
+ 160,
+ 160,
+ 161,
+ 161,
+ 161,
+ 162,
+ 162,
+ 162,
+ 162,
+ 163,
+ 163,
+ 163,
+ 164,
+ 164,
+ 164,
+ 165,
+ 165,
+ 165,
+ 165,
+ 166,
+ 166,
+ 166,
+ 167,
+ 167,
+ 167,
+ 168,
+ 168,
+ 168,
+ 168,
+ 169,
+ 169,
+ 169,
+ 170,
+ 170,
+ 170,
+ 171,
+ 171,
+ 171,
+ 171,
+ 172,
+ 172,
+ 172,
+ 173,
+ 173,
+ 173,
+ 174,
+ 174,
+ 174,
+ 174,
+ 175,
+ 175,
+ 175,
+ 176,
+ 176,
+ 176,
+ 177,
+ 177,
+ 177,
+ 177,
+ 178,
+ 178,
+ 178,
+ 179,
+ 179,
+ 179,
+ 180,
+ 180,
+ 180,
+ 180,
+ 181,
+ 181,
+ 181,
+ 182,
+ 182,
+ 182,
+ 183,
+ 183,
+ 183,
+ 184,
+ 184,
+ 184,
+ 184,
+ 185,
+ 185,
+ 185,
+ 186,
+ 186,
+ 186,
+ 187,
+ 187,
+ 187,
+ 187,
+ 188,
+ 188,
+ 188,
+ 189,
+ 189,
+ 189,
+ 190,
+ 190,
+ 190,
+ 190,
+ 191,
+ 191,
+};
+
+static const int bid_exponents_bid64[] = {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1,
+ 2,
+ 2,
+ 2,
+ 3,
+ 3,
+ 3,
+ 3,
+ 4,
+ 4,
+ 4,
+ 5,
+ 5,
+ 5,
+ 6,
+ 6,
+ 6,
+ 6,
+ 7,
+ 7,
+ 7,
+ 8,
+ 8,
+ 8,
+ 9,
+ 9,
+ 9,
+ 9,
+ 10,
+ 10,
+ 10,
+ 11,
+ 11,
+ 11,
+ 12,
+ 12,
+ 12,
+ 12,
+ 13,
+ 13,
+ 13,
+ 14,
+ 14,
+ 14,
+ 15,
+ 15,
+ 15,
+ 15,
+ 16,
+ 16,
+ 16,
+ 17,
+ 17,
+ 17,
+ 18,
+ 18,
+ 18,
+ 18,
+ 19,
+ 19,
+ 19,
+ 20,
+ 20,
+ 20,
+ 21,
+ 21,
+ 21,
+ 21,
+ 22,
+ 22,
+ 22,
+ 23,
+ 23,
+ 23,
+ 24,
+ 24,
+ 24,
+ 24,
+ 25,
+ 25,
+ 25,
+ 26,
+ 26,
+ 26,
+ 27,
+ 27,
+ 27,
+ 27,
+ 28,
+ 28,
+ 28,
+ 29,
+ 29,
+ 29,
+ 30,
+ 30,
+ 30,
+ 30,
+ 31,
+ 31,
+ 31,
+ 32,
+ 32,
+ 32,
+ 33,
+ 33,
+ 33,
+ 34,
+ 34,
+ 34,
+ 34,
+ 35,
+ 35,
+ 35,
+ 36,
+ 36,
+ 36,
+ 37,
+ 37,
+ 37,
+ 37,
+ 38,
+ 38,
+ 38,
+ 39,
+ 39,
+ 39,
+ 40,
+ 40,
+ 40,
+ 40,
+ 41,
+ 41,
+ 41,
+ 42,
+ 42,
+ 42,
+ 43,
+ 43,
+ 43,
+ 43,
+ 44,
+ 44,
+ 44,
+ 45,
+ 45,
+ 45,
+ 46,
+ 46,
+ 46,
+ 46,
+ 47,
+ 47,
+ 47,
+ 48,
+ 48,
+ 48,
+ 49,
+ 49,
+ 49,
+ 49,
+ 50,
+ 50,
+ 50,
+ 51,
+ 51,
+ 51,
+ 52,
+ 52,
+ 52,
+ 52,
+ 53,
+ 53,
+ 53,
+ 54,
+ 54,
+ 54,
+ 55,
+ 55,
+ 55,
+ 55,
+ 56,
+ 56,
+ 56,
+ 57,
+ 57,
+ 57,
+ 58,
+ 58,
+ 58,
+ 58,
+ 59,
+ 59,
+ 59,
+ 60,
+ 60,
+ 60,
+ 61,
+ 61,
+ 61,
+ 62,
+ 62,
+ 62,
+ 62,
+ 63,
+ 63,
+ 63,
+ 64,
+ 64,
+ 64,
+ 65,
+ 65,
+ 65,
+ 65,
+ 66,
+ 66,
+ 66,
+ 67,
+ 67,
+ 67,
+ 68,
+ 68,
+ 68,
+ 68,
+ 69,
+ 69,
+ 69,
+ 70,
+ 70,
+ 70,
+ 71,
+ 71,
+ 71,
+ 71,
+ 72,
+ 72,
+ 72,
+ 73,
+ 73,
+ 73,
+ 74,
+ 74,
+ 74,
+ 74,
+ 75,
+ 75,
+ 75,
+ 76,
+ 76,
+ 76,
+ 77,
+ 77,
+ 77,
+ 77,
+ 78,
+ 78,
+ 78,
+ 79,
+ 79,
+ 79,
+ 80,
+ 80,
+ 80,
+ 80,
+ 81,
+ 81,
+ 81,
+ 82,
+ 82,
+ 82,
+ 83,
+ 83,
+ 83,
+ 83,
+ 84,
+ 84,
+ 84,
+ 85,
+ 85,
+ 85,
+ 86,
+ 86,
+ 86,
+ 86,
+ 87,
+ 87,
+ 87,
+ 88,
+ 88,
+ 88,
+ 89,
+ 89,
+ 89,
+ 90,
+ 90,
+ 90,
+ 90,
+ 91,
+ 91,
+ 91,
+ 92,
+ 92,
+ 92,
+ 93,
+ 93,
+ 93,
+ 93,
+ 94,
+ 94,
+ 94,
+ 95,
+ 95,
+ 95,
+ 96,
+ 96,
+ 96,
+ 96,
+ 97,
+ 97,
+ 97,
+ 98,
+ 98,
+ 98,
+ 99,
+ 99,
+ 99,
+ 99,
+ 100,
+ 100,
+ 100,
+ 101,
+ 101,
+ 101,
+ 102,
+ 102,
+ 102,
+ 102,
+ 103,
+ 103,
+ 103,
+ 104,
+ 104,
+ 104,
+ 105,
+ 105,
+ 105,
+ 105,
+ 106,
+ 106,
+ 106,
+ 107,
+ 107,
+ 107,
+ 108,
+ 108,
+ 108,
+ 108,
+ 109,
+ 109,
+ 109,
+ 110,
+ 110,
+ 110,
+ 111,
+ 111,
+ 111,
+ 111,
+ 112,
+ 112,
+ 112,
+ 113,
+ 113,
+ 113,
+ 114,
+ 114,
+ 114,
+ 114,
+ 115,
+ 115,
+ 115,
+ 116,
+ 116,
+ 116,
+ 117,
+ 117,
+ 117,
+ 117,
+ 118,
+ 118,
+ 118,
+ 119,
+ 119,
+ 119,
+ 120,
+ 120,
+ 120,
+ 121,
+ 121,
+ 121,
+ 121,
+ 122,
+ 122,
+ 122,
+ 123,
+ 123,
+ 123,
+ 124,
+ 124,
+ 124,
+ 124,
+ 125,
+ 125,
+ 125,
+ 126,
+ 126,
+ 126,
+ 127,
+ 127,
+ 127,
+ 127,
+ 128,
+ 128,
+ 128,
+ 129,
+ 129,
+ 129,
+ 130,
+ 130,
+ 130,
+ 130,
+ 131,
+ 131,
+ 131,
+ 132,
+ 132,
+ 132,
+ 133,
+ 133,
+ 133,
+ 133,
+ 134,
+ 134,
+ 134,
+ 135,
+ 135,
+ 135,
+ 136,
+ 136,
+ 136,
+ 136,
+ 137,
+ 137,
+ 137,
+ 138,
+ 138,
+ 138,
+ 139,
+ 139,
+ 139,
+ 139,
+ 140,
+ 140,
+ 140,
+ 141,
+ 141,
+ 141,
+ 142,
+ 142,
+ 142,
+ 142,
+ 143,
+ 143,
+ 143,
+ 144,
+ 144,
+ 144,
+ 145,
+ 145,
+ 145,
+ 145,
+ 146,
+ 146,
+ 146,
+ 147,
+ 147,
+ 147,
+ 148,
+ 148,
+ 148,
+ 149,
+ 149,
+ 149,
+ 149,
+ 150,
+ 150,
+ 150,
+ 151,
+ 151,
+ 151,
+ 152,
+ 152,
+ 152,
+ 152,
+ 153,
+ 153,
+ 153,
+ 154,
+ 154,
+ 154,
+ 155,
+ 155,
+ 155,
+ 155,
+ 156,
+ 156,
+ 156,
+ 157,
+ 157,
+ 157,
+ 158,
+ 158,
+ 158,
+ 158,
+ 159,
+ 159,
+ 159,
+ 160,
+ 160,
+ 160,
+ 161,
+ 161,
+ 161,
+ 161,
+ 162,
+ 162,
+ 162,
+ 163,
+ 163,
+ 163,
+ 164,
+ 164,
+ 164,
+ 164,
+ 165,
+ 165,
+ 165,
+ 166,
+ 166,
+ 166,
+ 167,
+ 167,
+ 167,
+ 167,
+ 168,
+ 168,
+ 168,
+ 169,
+ 169,
+ 169,
+ 170,
+ 170,
+ 170,
+ 170,
+ 171,
+ 171,
+ 171,
+ 172,
+ 172,
+ 172,
+ 173,
+ 173,
+ 173,
+ 173,
+ 174,
+ 174,
+ 174,
+ 175,
+ 175,
+ 175,
+ 176,
+ 176,
+ 176,
+ 176,
+ 177,
+ 177,
+ 177,
+ 178,
+ 178,
+ 178,
+ 179,
+ 179,
+ 179,
+ 180,
+ 180,
+ 180,
+ 180,
+ 181,
+ 181,
+ 181,
+ 182,
+ 182,
+ 182,
+ 183,
+ 183,
+ 183,
+ 183,
+ 184,
+ 184,
+ 184,
+ 185,
+ 185,
+ 185,
+ 186,
+ 186,
+ 186,
+ 186,
+ 187,
+ 187,
+ 187,
+ 188,
+ 188,
+ 188,
+ 189,
+ 189,
+ 189,
+ 189,
+ 190,
+ 190,
+ 190,
+ 191,
+ 191,
+ 191,
+ 192,
+ 192,
+ 192,
+ 192,
+ 193,
+ 193,
+ 193,
+ 194,
+ 194,
+ 194,
+ 195,
+ 195,
+ 195,
+ 195,
+ 196,
+ 196,
+ 196,
+ 197,
+ 197,
+ 197,
+ 198,
+ 198,
+ 198,
+ 198,
+ 199,
+ 199,
+ 199,
+ 200,
+ 200,
+ 200,
+ 201,
+ 201,
+ 201,
+ 201,
+ 202,
+ 202,
+ 202,
+ 203,
+ 203,
+ 203,
+ 204,
+ 204,
+ 204,
+ 204,
+ 205,
+ 205,
+ 205,
+ 206,
+ 206,
+ 206,
+ 207,
+ 207,
+ 207,
+ 208,
+ 208,
+ 208,
+ 208,
+ 209,
+ 209,
+ 209,
+ 210,
+ 210,
+ 210,
+ 211,
+ 211,
+ 211,
+ 211,
+ 212,
+ 212,
+ 212,
+ 213,
+ 213,
+ 213,
+ 214,
+ 214,
+ 214,
+ 214,
+ 215,
+ 215,
+ 215,
+ 216,
+ 216,
+ 216,
+ 217,
+ 217,
+ 217,
+ 217,
+ 218,
+ 218,
+ 218,
+ 219,
+ 219,
+ 219,
+ 220,
+ 220,
+ 220,
+ 220,
+ 221,
+ 221,
+ 221,
+ 222,
+ 222,
+ 222,
+ 223,
+ 223,
+ 223,
+ 223,
+ 224,
+ 224,
+ 224,
+ 225,
+ 225,
+ 225,
+ 226,
+ 226,
+ 226,
+ 226,
+ 227,
+ 227,
+ 227,
+ 228,
+ 228,
+ 228,
+ 229,
+ 229,
+ 229,
+ 229,
+ 230,
+ 230,
+ 230,
+ 231,
+ 231,
+ 231,
+ 232,
+ 232,
+ 232,
+ 232,
+ 233,
+ 233,
+ 233,
+ 234,
+ 234,
+ 234,
+ 235,
+ 235,
+ 235,
+ 236,
+ 236,
+ 236,
+ 236,
+ 237,
+ 237,
+ 237,
+ 238,
+ 238,
+ 238,
+ 239,
+ 239,
+ 239,
+ 239,
+ 240,
+ 240,
+ 240,
+ 241,
+ 241,
+ 241,
+ 242,
+ 242,
+ 242,
+ 242,
+ 243,
+ 243,
+ 243,
+ 244,
+ 244,
+ 244,
+ 245,
+ 245,
+ 245,
+ 245,
+ 246,
+ 246,
+ 246,
+ 247,
+ 247,
+ 247,
+ 248,
+ 248,
+ 248,
+ 248,
+ 249,
+ 249,
+ 249,
+ 250,
+ 250,
+ 250,
+ 251,
+ 251,
+ 251,
+ 251,
+ 252,
+ 252,
+ 252,
+ 253,
+ 253,
+ 253,
+ 254,
+ 254,
+ 254,
+ 254,
+ 255,
+ 255,
+ 255,
+ 256,
+ 256,
+ 256,
+ 257,
+ 257,
+ 257,
+ 257,
+ 258,
+ 258,
+ 258,
+ 259,
+ 259,
+ 259,
+ 260,
+ 260,
+ 260,
+ 260,
+ 261,
+ 261,
+ 261,
+ 262,
+ 262,
+ 262,
+ 263,
+ 263,
+ 263,
+ 263,
+ 264,
+ 264,
+ 264,
+ 265,
+ 265,
+ 265,
+ 266,
+ 266,
+ 266,
+ 267,
+ 267,
+ 267,
+ 267,
+ 268,
+ 268,
+ 268,
+ 269,
+ 269,
+ 269,
+ 270,
+ 270,
+ 270,
+ 270,
+ 271,
+ 271,
+ 271,
+ 272,
+ 272,
+ 272,
+ 273,
+ 273,
+ 273,
+ 273,
+ 274,
+ 274,
+ 274,
+ 275,
+ 275,
+ 275,
+ 276,
+ 276,
+ 276,
+ 276,
+ 277,
+ 277,
+ 277,
+ 278,
+ 278,
+ 278,
+ 279,
+ 279,
+ 279,
+ 279,
+ 280,
+ 280,
+ 280,
+ 281,
+ 281,
+ 281,
+ 282,
+ 282,
+ 282,
+ 282,
+ 283,
+ 283,
+ 283,
+ 284,
+ 284,
+ 284,
+ 285,
+ 285,
+ 285,
+ 285,
+ 286,
+ 286,
+ 286,
+ 287,
+ 287,
+ 287,
+ 288,
+ 288,
+ 288,
+ 288,
+ 289,
+ 289,
+ 289,
+ 290,
+ 290,
+ 290,
+ 291,
+ 291,
+ 291,
+ 291,
+ 292,
+ 292,
+ 292,
+ 293,
+ 293,
+ 293,
+ 294,
+ 294,
+ 294,
+ 295,
+ 295,
+ 295,
+ 295,
+ 296,
+ 296,
+ 296,
+ 297,
+ 297,
+ 297,
+ 298,
+ 298,
+ 298,
+ 298,
+ 299,
+ 299,
+ 299,
+ 300,
+ 300,
+ 300,
+ 301,
+ 301,
+ 301,
+ 301,
+ 302,
+ 302,
+ 302,
+ 303,
+ 303,
+ 303,
+ 304,
+ 304,
+ 304,
+ 304,
+ 305,
+ 305,
+ 305,
+ 306,
+ 306,
+ 306,
+ 307,
+ 307,
+ 307,
+ 307,
+ 308,
+ 308,
+ 308,
+ 309,
+ 309,
+ 309,
+ 310,
+ 310,
+ 310,
+ 310,
+ 311,
+ 311,
+ 311,
+ 312,
+ 312,
+ 312,
+ 313,
+ 313,
+ 313,
+ 313,
+ 314,
+ 314,
+ 314,
+ 315,
+ 315,
+ 315,
+ 316,
+ 316,
+ 316,
+ 316,
+ 317,
+ 317,
+ 317,
+ 318,
+ 318,
+ 318,
+ 319,
+ 319,
+ 319,
+ 319,
+ 320,
+ 320,
+ 320,
+ 321,
+ 321,
+ 321,
+ 322,
+ 322,
+ 322,
+ 322,
+ 323,
+ 323,
+ 323,
+ 324,
+ 324,
+ 324,
+ 325,
+ 325,
+ 325,
+ 326,
+ 326,
+ 326,
+ 326,
+ 327,
+ 327,
+ 327,
+ 328,
+ 328,
+ 328,
+ 329,
+ 329,
+ 329,
+ 329,
+ 330,
+ 330,
+ 330,
+ 331,
+ 331,
+ 331,
+ 332,
+ 332,
+ 332,
+ 332,
+ 333,
+ 333,
+ 333,
+ 334,
+ 334,
+ 334,
+ 335,
+ 335,
+ 335,
+ 335,
+ 336,
+ 336,
+ 336,
+ 337,
+ 337,
+ 337,
+ 338,
+ 338,
+ 338,
+ 338,
+ 339,
+ 339,
+ 339,
+ 340,
+ 340,
+ 340,
+ 341,
+ 341,
+ 341,
+ 341,
+ 342,
+ 342,
+ 342,
+ 343,
+ 343,
+ 343,
+ 344,
+ 344,
+ 344,
+ 344,
+ 345,
+ 345,
+ 345,
+ 346,
+ 346,
+ 346,
+ 347,
+ 347,
+ 347,
+ 347,
+ 348,
+ 348,
+ 348,
+ 349,
+ 349,
+ 349,
+ 350,
+ 350,
+ 350,
+ 350,
+ 351,
+ 351,
+ 351,
+ 352,
+ 352,
+ 352,
+ 353,
+ 353,
+ 353,
+ 354,
+ 354,
+ 354,
+ 354,
+ 355,
+ 355,
+ 355,
+ 356,
+ 356,
+ 356,
+ 357,
+ 357,
+ 357,
+ 357,
+ 358,
+ 358,
+ 358,
+ 359,
+ 359,
+ 359,
+ 360,
+ 360,
+ 360,
+ 360,
+ 361,
+ 361,
+ 361,
+ 362,
+ 362,
+ 362,
+ 363,
+ 363,
+ 363,
+ 363,
+ 364,
+ 364,
+ 364,
+ 365,
+ 365,
+ 365,
+ 366,
+ 366,
+ 366,
+ 366,
+ 367,
+ 367,
+ 367,
+ 368,
+ 368,
+ 368,
+ 369,
+ 369,
+ 369,
+ 369,
+ 370,
+ 370,
+ 370,
+ 371,
+ 371,
+ 371,
+ 372,
+ 372,
+ 372,
+ 372,
+ 373,
+ 373,
+ 373,
+ 374,
+ 374,
+ 374,
+ 375,
+ 375,
+ 375,
+ 375,
+ 376,
+ 376,
+ 376,
+ 377,
+ 377,
+ 377,
+ 378,
+ 378,
+ 378,
+ 378,
+ 379,
+ 379,
+ 379,
+ 380,
+ 380,
+ 380,
+ 381,
+ 381,
+ 381,
+ 381,
+ 382,
+ 382,
+ 382,
+ 383,
+ 383,
+ 383,
+ 384,
+ 384,
+ 384,
+ 385,
+ 385,
+ 385,
+ 385,
+ 386,
+ 386,
+ 386,
+ 387,
+ 387,
+ 387,
+ 388,
+ 388,
+ 388,
+ 388,
+ 389,
+ 389,
+ 389,
+ 390,
+ 390,
+ 390,
+ 391,
+ 391,
+ 391,
+ 391,
+ 392,
+ 392,
+ 392,
+ 393,
+ 393,
+ 393,
+ 394,
+ 394,
+ 394,
+ 394,
+ 395,
+ 395,
+ 395,
+ 396,
+ 396,
+ 396,
+ 397,
+ 397,
+ 397,
+ 397,
+ 398,
+ 398,
+ 398,
+ 399,
+ 399,
+ 399,
+ 400,
+ 400,
+ 400,
+ 400,
+ 401,
+ 401,
+ 401,
+ 402,
+ 402,
+ 402,
+ 403,
+ 403,
+ 403,
+ 403,
+ 404,
+ 404,
+ 404,
+ 405,
+ 405,
+ 405,
+ 406,
+ 406,
+ 406,
+ 406,
+ 407,
+ 407,
+ 407,
+ 408,
+ 408,
+ 408,
+ 409,
+ 409,
+ 409,
+ 409,
+ 410,
+ 410,
+ 410,
+ 411,
+ 411,
+ 411,
+ 412,
+ 412,
+ 412,
+ 413,
+ 413,
+ 413,
+ 413,
+ 414,
+ 414,
+ 414,
+ 415,
+ 415,
+ 415,
+ 416,
+ 416,
+ 416,
+ 416,
+ 417,
+ 417,
+ 417,
+ 418,
+ 418,
+ 418,
+ 419,
+ 419,
+ 419,
+ 419,
+ 420,
+ 420,
+ 420,
+ 421,
+ 421,
+ 421,
+ 422,
+ 422,
+ 422,
+ 422,
+ 423,
+ 423,
+ 423,
+ 424,
+ 424,
+ 424,
+ 425,
+ 425,
+ 425,
+ 425,
+ 426,
+ 426,
+ 426,
+ 427,
+ 427,
+ 427,
+ 428,
+ 428,
+ 428,
+ 428,
+ 429,
+ 429,
+ 429,
+ 430,
+ 430,
+ 430,
+ 431,
+ 431,
+ 431,
+ 431,
+ 432,
+ 432,
+ 432,
+ 433,
+ 433,
+ 433,
+ 434,
+ 434,
+ 434,
+ 434,
+ 435,
+ 435,
+ 435,
+ 436,
+ 436,
+ 436,
+ 437,
+ 437,
+ 437,
+ 437,
+ 438,
+ 438,
+ 438,
+ 439,
+ 439,
+ 439,
+ 440,
+ 440,
+ 440,
+ 441,
+ 441,
+ 441,
+ 441,
+ 442,
+ 442,
+ 442,
+ 443,
+ 443,
+ 443,
+ 444,
+ 444,
+ 444,
+ 444,
+ 445,
+ 445,
+ 445,
+ 446,
+ 446,
+ 446,
+ 447,
+ 447,
+ 447,
+ 447,
+ 448,
+ 448,
+ 448,
+ 449,
+ 449,
+ 449,
+ 450,
+ 450,
+ 450,
+ 450,
+ 451,
+ 451,
+ 451,
+ 452,
+ 452,
+ 452,
+ 453,
+ 453,
+ 453,
+ 453,
+ 454,
+ 454,
+ 454,
+ 455,
+ 455,
+ 455,
+ 456,
+ 456,
+ 456,
+ 456,
+ 457,
+ 457,
+ 457,
+ 458,
+ 458,
+ 458,
+ 459,
+ 459,
+ 459,
+ 459,
+ 460,
+ 460,
+ 460,
+ 461,
+ 461,
+ 461,
+ 462,
+ 462,
+ 462,
+ 462,
+ 463,
+ 463,
+ 463,
+ 464,
+ 464,
+ 464,
+ 465,
+ 465,
+ 465,
+ 465,
+ 466,
+ 466,
+ 466,
+ 467,
+ 467,
+ 467,
+ 468,
+ 468,
+ 468,
+ 468,
+ 469,
+ 469,
+ 469,
+ 470,
+ 470,
+ 470,
+ 471,
+ 471,
+ 471,
+ 472,
+ 472,
+ 472,
+ 472,
+ 473,
+ 473,
+ 473,
+ 474,
+ 474,
+ 474,
+ 475,
+ 475,
+ 475,
+ 475,
+ 476,
+ 476,
+ 476,
+ 477,
+ 477,
+ 477,
+ 478,
+ 478,
+ 478,
+ 478,
+ 479,
+ 479,
+ 479,
+ 480,
+ 480,
+ 480,
+ 481,
+ 481,
+ 481,
+ 481,
+ 482,
+ 482,
+ 482,
+ 483,
+ 483,
+ 483,
+ 484,
+ 484,
+ 484,
+ 484,
+ 485,
+ 485,
+ 485,
+ 486,
+ 486,
+ 486,
+ 487,
+ 487,
+ 487,
+ 487,
+ 488,
+ 488,
+ 488,
+ 489,
+ 489,
+ 489,
+ 490,
+ 490,
+ 490,
+ 490,
+ 491,
+ 491,
+ 491,
+ 492,
+ 492,
+ 492,
+ 493,
+ 493,
+ 493,
+ 493,
+ 494,
+ 494,
+ 494,
+ 495,
+ 495,
+ 495,
+ 496,
+ 496,
+ 496,
+ 496,
+ 497,
+ 497,
+ 497,
+ 498,
+ 498,
+ 498,
+ 499,
+ 499,
+ 499,
+ 500,
+ 500,
+ 500,
+ 500,
+ 501,
+ 501,
+ 501,
+ 502,
+ 502,
+ 502,
+ 503,
+ 503,
+ 503,
+ 503,
+ 504,
+ 504,
+ 504,
+ 505,
+ 505,
+ 505,
+ 506,
+ 506,
+ 506,
+ 506,
+ 507,
+ 507,
+ 507,
+ 508,
+ 508,
+ 508,
+ 509,
+ 509,
+ 509,
+ 509,
+ 510,
+ 510,
+ 510,
+ 511,
+ 511,
+ 511,
+ 512,
+ 512,
+ 512,
+ 512,
+ 513,
+ 513,
+ 513,
+ 514,
+ 514,
+ 514,
+ 515,
+ 515,
+ 515,
+ 515,
+ 516,
+ 516,
+ 516,
+ 517,
+ 517,
+ 517,
+ 518,
+ 518,
+ 518,
+ 518,
+ 519,
+ 519,
+ 519,
+ 520,
+ 520,
+ 520,
+ 521,
+ 521,
+ 521,
+ 521,
+ 522,
+ 522,
+ 522,
+ 523,
+ 523,
+ 523,
+ 524,
+ 524,
+ 524,
+ 524,
+ 525,
+ 525,
+ 525,
+ 526,
+ 526,
+ 526,
+ 527,
+ 527,
+ 527,
+ 527,
+ 528,
+ 528,
+ 528,
+ 529,
+ 529,
+ 529,
+ 530,
+ 530,
+ 530,
+ 531,
+ 531,
+ 531,
+ 531,
+ 532,
+ 532,
+ 532,
+ 533,
+ 533,
+ 533,
+ 534,
+ 534,
+ 534,
+ 534,
+ 535,
+ 535,
+ 535,
+ 536,
+ 536,
+ 536,
+ 537,
+ 537,
+ 537,
+ 537,
+ 538,
+ 538,
+ 538,
+ 539,
+ 539,
+ 539,
+ 540,
+ 540,
+ 540,
+ 540,
+ 541,
+ 541,
+ 541,
+ 542,
+ 542,
+ 542,
+ 543,
+ 543,
+ 543,
+ 543,
+ 544,
+ 544,
+ 544,
+ 545,
+ 545,
+ 545,
+ 546,
+ 546,
+ 546,
+ 546,
+ 547,
+ 547,
+ 547,
+ 548,
+ 548,
+ 548,
+ 549,
+ 549,
+ 549,
+ 549,
+ 550,
+ 550,
+ 550,
+ 551,
+ 551,
+ 551,
+ 552,
+ 552,
+ 552,
+ 552,
+ 553,
+ 553,
+ 553,
+ 554,
+ 554,
+ 554,
+ 555,
+ 555,
+ 555,
+ 555,
+ 556,
+ 556,
+ 556,
+ 557,
+ 557,
+ 557,
+ 558,
+ 558,
+ 558,
+ 559,
+ 559,
+ 559,
+ 559,
+ 560,
+ 560,
+ 560,
+ 561,
+ 561,
+ 561,
+ 562,
+ 562,
+ 562,
+ 562,
+ 563,
+ 563,
+ 563,
+ 564,
+ 564,
+ 564,
+ 565,
+ 565,
+ 565,
+ 565,
+ 566,
+ 566,
+ 566,
+ 567,
+ 567,
+ 567,
+ 568,
+ 568,
+ 568,
+ 568,
+ 569,
+ 569,
+ 569,
+ 570,
+ 570,
+ 570,
+ 571,
+ 571,
+ 571,
+ 571,
+ 572,
+ 572,
+ 572,
+ 573,
+ 573,
+ 573,
+ 574,
+ 574,
+ 574,
+ 574,
+ 575,
+ 575,
+ 575,
+ 576,
+ 576,
+ 576,
+ 577,
+ 577,
+ 577,
+ 577,
+ 578,
+ 578,
+ 578,
+ 579,
+ 579,
+ 579,
+ 580,
+ 580,
+ 580,
+ 580,
+ 581,
+ 581,
+ 581,
+ 582,
+ 582,
+ 582,
+ 583,
+ 583,
+ 583,
+ 583,
+ 584,
+ 584,
+ 584,
+ 585,
+ 585,
+ 585,
+ 586,
+ 586,
+ 586,
+ 587,
+ 587,
+ 587,
+ 587,
+ 588,
+ 588,
+ 588,
+ 589,
+ 589,
+ 589,
+ 590,
+ 590,
+ 590,
+ 590,
+ 591,
+ 591,
+ 591,
+ 592,
+ 592,
+ 592,
+ 593,
+ 593,
+ 593,
+ 593,
+ 594,
+ 594,
+ 594,
+ 595,
+ 595,
+ 595,
+ 596,
+ 596,
+ 596,
+ 596,
+ 597,
+ 597,
+ 597,
+ 598,
+ 598,
+ 598,
+ 599,
+ 599,
+ 599,
+ 599,
+ 600,
+ 600,
+ 600,
+ 601,
+ 601,
+ 601,
+ 602,
+ 602,
+ 602,
+ 602,
+ 603,
+ 603,
+ 603,
+ 604,
+ 604,
+ 604,
+ 605,
+ 605,
+ 605,
+ 605,
+ 606,
+ 606,
+ 606,
+ 607,
+ 607,
+ 607,
+ 608,
+ 608,
+ 608,
+ 608,
+ 609,
+ 609,
+ 609,
+ 610,
+ 610,
+ 610,
+ 611,
+ 611,
+ 611,
+ 611,
+ 612,
+ 612,
+ 612,
+ 613,
+ 613,
+ 613,
+ 614,
+ 614,
+ 614,
+ 614,
+ 615,
+ 615,
+ 615,
+ 616,
+ 616,
+ 616,
+ 617,
+ 617,
+ 617,
+ 618,
+ 618,
+ 618,
+ 618,
+ 619,
+ 619,
+ 619,
+ 620,
+ 620,
+ 620,
+ 621,
+ 621,
+ 621,
+ 621,
+ 622,
+ 622,
+ 622,
+ 623,
+ 623,
+ 623,
+ 624,
+ 624,
+ 624,
+ 624,
+ 625,
+ 625,
+ 625,
+ 626,
+ 626,
+ 626,
+ 627,
+ 627,
+ 627,
+ 627,
+ 628,
+ 628,
+ 628,
+ 629,
+ 629,
+ 629,
+ 630,
+ 630,
+ 630,
+ 630,
+ 631,
+ 631,
+ 631,
+ 632,
+ 632,
+ 632,
+ 633,
+ 633,
+ 633,
+ 633,
+ 634,
+ 634,
+ 634,
+ 635,
+ 635,
+ 635,
+ 636,
+ 636,
+ 636,
+ 636,
+ 637,
+ 637,
+ 637,
+ 638,
+ 638,
+ 638,
+ 639,
+ 639,
+ 639,
+ 639,
+ 640,
+ 640,
+ 640,
+ 641,
+ 641,
+ 641,
+ 642,
+ 642,
+ 642,
+ 642,
+ 643,
+ 643,
+ 643,
+ 644,
+ 644,
+ 644,
+ 645,
+ 645,
+ 645,
+ 646,
+ 646,
+ 646,
+ 646,
+ 647,
+ 647,
+ 647,
+ 648,
+ 648,
+ 648,
+ 649,
+ 649,
+ 649,
+ 649,
+ 650,
+ 650,
+ 650,
+ 651,
+ 651,
+ 651,
+ 652,
+ 652,
+ 652,
+ 652,
+ 653,
+ 653,
+ 653,
+ 654,
+ 654,
+ 654,
+ 655,
+ 655,
+ 655,
+ 655,
+ 656,
+ 656,
+ 656,
+ 657,
+ 657,
+ 657,
+ 658,
+ 658,
+ 658,
+ 658,
+ 659,
+ 659,
+ 659,
+ 660,
+ 660,
+ 660,
+ 661,
+ 661,
+ 661,
+ 661,
+ 662,
+ 662,
+ 662,
+ 663,
+ 663,
+ 663,
+ 664,
+ 664,
+ 664,
+ 664,
+ 665,
+ 665,
+ 665,
+ 666,
+ 666,
+ 666,
+ 667,
+ 667,
+ 667,
+ 667,
+ 668,
+ 668,
+ 668,
+ 669,
+ 669,
+ 669,
+ 670,
+ 670,
+ 670,
+ 670,
+ 671,
+ 671,
+ 671,
+ 672,
+ 672,
+ 672,
+ 673,
+ 673,
+ 673,
+ 673,
+ 674,
+ 674,
+ 674,
+ 675,
+ 675,
+ 675,
+ 676,
+ 676,
+ 676,
+ 677,
+ 677,
+ 677,
+ 677,
+ 678,
+ 678,
+ 678,
+ 679,
+ 679,
+ 679,
+ 680,
+ 680,
+ 680,
+ 680,
+ 681,
+ 681,
+ 681,
+ 682,
+ 682,
+ 682,
+ 683,
+ 683,
+ 683,
+ 683,
+ 684,
+ 684,
+ 684,
+ 685,
+ 685,
+ 685,
+ 686,
+ 686,
+ 686,
+ 686,
+ 687,
+ 687,
+ 687,
+ 688,
+ 688,
+ 688,
+ 689,
+ 689,
+ 689,
+ 689,
+ 690,
+ 690,
+ 690,
+ 691,
+ 691,
+ 691,
+ 692,
+ 692,
+ 692,
+ 692,
+ 693,
+ 693,
+ 693,
+ 694,
+ 694,
+ 694,
+ 695,
+ 695,
+ 695,
+ 695,
+ 696,
+ 696,
+ 696,
+ 697,
+ 697,
+ 697,
+ 698,
+ 698,
+ 698,
+ 698,
+ 699,
+ 699,
+ 699,
+ 700,
+ 700,
+ 700,
+ 701,
+ 701,
+ 701,
+ 701,
+ 702,
+ 702,
+ 702,
+ 703,
+ 703,
+ 703,
+ 704,
+ 704,
+ 704,
+ 705,
+ 705,
+ 705,
+ 705,
+ 706,
+ 706,
+ 706,
+ 707,
+ 707,
+ 707,
+ 708,
+ 708,
+ 708,
+ 708,
+ 709,
+ 709,
+ 709,
+ 710,
+ 710,
+ 710,
+ 711,
+ 711,
+ 711,
+ 711,
+ 712,
+ 712,
+ 712,
+ 713,
+ 713,
+ 713,
+ 714,
+ 714,
+ 714,
+ 714,
+ 715,
+ 715,
+ 715,
+ 716,
+ 716,
+ 716,
+ 717,
+ 717,
+ 717,
+ 717,
+ 718,
+ 718,
+ 718,
+ 719,
+ 719,
+ 719,
+ 720,
+ 720,
+ 720,
+ 720,
+ 721,
+ 721,
+ 721,
+ 722,
+ 722,
+ 722,
+ 723,
+ 723,
+ 723,
+ 723,
+ 724,
+ 724,
+ 724,
+ 725,
+ 725,
+ 725,
+ 726,
+ 726,
+ 726,
+ 726,
+ 727,
+ 727,
+ 727,
+ 728,
+ 728,
+ 728,
+ 729,
+ 729,
+ 729,
+ 729,
+ 730,
+ 730,
+ 730,
+ 731,
+ 731,
+ 731,
+ 732,
+ 732,
+ 732,
+ 733,
+ 733,
+ 733,
+ 733,
+ 734,
+ 734,
+ 734,
+ 735,
+ 735,
+ 735,
+ 736,
+ 736,
+ 736,
+ 736,
+ 737,
+ 737,
+ 737,
+ 738,
+ 738,
+ 738,
+ 739,
+ 739,
+ 739,
+ 739,
+ 740,
+ 740,
+ 740,
+ 741,
+ 741,
+ 741,
+ 742,
+ 742,
+ 742,
+ 742,
+ 743,
+ 743,
+ 743,
+ 744,
+ 744,
+ 744,
+ 745,
+ 745,
+ 745,
+ 745,
+ 746,
+ 746,
+ 746,
+ 747,
+ 747,
+ 747,
+ 748,
+ 748,
+ 748,
+ 748,
+ 749,
+ 749,
+ 749,
+ 750,
+ 750,
+ 750,
+ 751,
+ 751,
+ 751,
+ 751,
+ 752,
+ 752,
+ 752,
+ 753,
+ 753,
+ 753,
+ 754,
+ 754,
+ 754,
+ 754,
+ 755,
+ 755,
+ 755,
+ 756,
+ 756,
+ 756,
+ 757,
+ 757,
+ 757,
+ 757,
+ 758,
+ 758,
+ 758,
+ 759,
+ 759,
+ 759,
+ 760,
+ 760,
+ 760,
+ 760,
+ 761,
+ 761,
+ 761,
+ 762,
+ 762,
+ 762,
+ 763,
+ 763,
+ 763,
+ 764,
+ 764,
+ 764,
+ 764,
+ 765,
+ 765,
+ 765,
+ 766,
+ 766,
+ 766,
+ 767,
+ 767,
+};
+
+static const BID_UINT256 bid_multipliers1_bid32[] = {
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{8022453891189237964ull, 4305922861044245892ull,
+ 15091728617112590342ull, 392727477223ull}},
+ {{16044907782378475927ull, 8611845722088491784ull,
+ 11736713160515629068ull, 785454954447ull}},
+ {{13643071491047400238ull, 17223691444176983569ull,
+ 5026682247321706520ull, 1570909908895ull}},
+ {{8839398908385248859ull, 16000638814644415523ull,
+ 10053364494643413041ull, 3141819817790ull}},
+ {{16525275040644691065ull, 6889476577670793427ull,
+ 2010672898928682608ull, 628363963558ull}},
+ {{14603806007579830513ull, 13778953155341586855ull,
+ 4021345797857365216ull, 1256727927116ull}},
+ {{10760867941450109410ull, 9111162236973622095ull,
+ 8042691595714730433ull, 2513455854232ull}},
+ {{2152173588290021882ull, 1822232447394724419ull,
+ 8987235948626766733ull, 502691170846ull}},
+ {{4304347176580043764ull, 3644464894789448838ull,
+ 17974471897253533466ull, 1005382341692ull}},
+ {{8608694353160087528ull, 7288929789578897676ull,
+ 17502199720797515316ull, 2010764683385ull}},
+ {{9100436500115838152ull, 5147134772657689858ull,
+ 3500439944159503063ull, 402152936677ull}},
+ {{18200873000231676304ull, 10294269545315379716ull,
+ 7000879888319006126ull, 804305873354ull}},
+ {{17955001926753800992ull, 2141795016921207817ull,
+ 14001759776638012253ull, 1608611746708ull}},
+ {{17463259779798050368ull, 4283590033842415635ull,
+ 9556775479566472890ull, 3217223493417ull}},
+ {{10871349585443430720ull, 8235415636252303773ull,
+ 9290052725397115224ull, 643444698683ull}},
+ {{3295955097177309824ull, 16470831272504607547ull,
+ 133361377084678832ull, 1286889397367ull}},
+ {{6591910194354619648ull, 14494918471299663478ull,
+ 266722754169357665ull, 2573778794734ull}},
+ {{8697079668354744576ull, 17656378953227573988ull,
+ 14810739809801512825ull, 514755758946ull}},
+ {{17394159336709489152ull, 16866013832745596360ull,
+ 11174735545893474035ull, 1029511517893ull}},
+ {{16341574599709426688ull, 15285283591781641105ull,
+ 3902727018077396455ull, 2059023035787ull}},
+ {{10647012549425705984ull, 10435754347840148867ull,
+ 8159243033099299937ull, 411804607157ull}},
+ {{2847281025141860352ull, 2424764621970746119ull,
+ 16318486066198599875ull, 823609214314ull}},
+ {{5694562050283720704ull, 4849529243941492238ull,
+ 14190228058687648134ull, 1647218428629ull}},
+ {{4828261224798654464ull, 12037952293014029417ull,
+ 17595440870705170919ull, 329443685725ull}},
+ {{9656522449597308928ull, 5629160512318507218ull,
+ 16744137667700790223ull, 658887371451ull}},
+ {{866300825485066240ull, 11258321024637014437ull,
+ 15041531261692028830ull, 1317774742903ull}},
+ {{1732601650970132480ull, 4069897975564477258ull,
+ 11636318449674506045ull, 2635549485807ull}},
+ {{346520330194026496ull, 8192677224596716098ull, 9705961319418721855ull,
+ 527109897161ull}},
+ {{693040660388052992ull, 16385354449193432196ull, 965178565127892094ull,
+ 1054219794323ull}},
+ {{1386081320776105984ull, 14323964824677312776ull,
+ 1930357130255784189ull, 2108439588646ull}},
+ {{3966565078897131520ull, 2864792964935462555ull,
+ 4075420240793067161ull, 421687917729ull}},
+ {{7933130157794263040ull, 5729585929870925110ull,
+ 8150840481586134322ull, 843375835458ull}},
+ {{15866260315588526080ull, 11459171859741850220ull,
+ 16301680963172268644ull, 1686751670916ull}},
+ {{3173252063117705216ull, 2291834371948370044ull,
+ 6949685007376364052ull, 337350334183ull}},
+ {{6346504126235410432ull, 4583668743896740088ull,
+ 13899370014752728104ull, 674700668366ull}},
+ {{12693008252470820864ull, 9167337487793480176ull,
+ 9351995955795904592ull, 1349401336733ull}},
+ {{6939272431232090112ull, 18334674975586960353ull,
+ 257247837882257568ull, 2698802673467ull}},
+ {{12455900930472148992ull, 3666934995117392070ull,
+ 7430147197060272160ull, 539760534693ull}},
+ {{6465057787234746368ull, 7333869990234784141ull,
+ 14860294394120544320ull, 1079521069386ull}},
+ {{12930115574469492736ull, 14667739980469568282ull,
+ 11273844714531537024ull, 2159042138773ull}},
+ {{17343418373861539840ull, 10312245625577734302ull,
+ 13322815387132038374ull, 431808427754ull}},
+ {{16240092674013528064ull, 2177747177445916989ull,
+ 8198886700554525133ull, 863616855509ull}},
+ {{14033441274317504512ull, 4355494354891833979ull,
+ 16397773401109050266ull, 1727233711018ull}},
+ {{13874734699089231872ull, 15628494129946008088ull,
+ 14347601124447541022ull, 345446742203ull}},
+ {{9302725324468912128ull, 12810244186182464561ull,
+ 10248458175185530429ull, 690893484407ull}},
+ {{158706575228272640ull, 7173744298655377507ull, 2050172276661509243ull,
+ 1381786968815ull}},
+ {{317413150456545280ull, 14347488597310755014ull,
+ 4100344553323018486ull, 2763573937630ull}},
+ {{63482630091309056ull, 6558846534204061326ull, 820068910664603697ull,
+ 552714787526ull}},
+ {{126965260182618112ull, 13117693068408122652ull,
+ 1640137821329207394ull, 1105429575052ull}},
+ {{253930520365236224ull, 7788642063106693688ull, 3280275642658414789ull,
+ 2210859150104ull}},
+ {{3740134918814957568ull, 12625774856847069707ull,
+ 15413450387499324250ull, 442171830020ull}},
+ {{7480269837629915136ull, 6804805639984587798ull,
+ 12380156701289096885ull, 884343660041ull}},
+ {{14960539675259830272ull, 13609611279969175596ull,
+ 6313569328868642154ull, 1768687320083ull}},
+ {{14060154379277697024ull, 10100619885477655765ull,
+ 12330760309999459400ull, 353737464016ull}},
+ {{9673564684845842432ull, 1754495697245759915ull,
+ 6214776546289367185ull, 707474928033ull}},
+ {{900385295982133248ull, 3508991394491519831ull,
+ 12429553092578734370ull, 1414949856066ull}},
+ {{1800770591964266496ull, 7017982788983039662ull,
+ 6412362111447917124ull, 2829899712133ull}},
+ {{15117549377360494592ull, 8782294187280428578ull,
+ 12350518866515314394ull, 565979942426ull}},
+ {{11788354681011437568ull, 17564588374560857157ull,
+ 6254293659321077172ull, 1131959884853ull}},
+ {{5129965288313323520ull, 16682432675412162699ull,
+ 12508587318642154345ull, 2263919769706ull}},
+ {{1025993057662664704ull, 7025835349824342863ull,
+ 6191066278470341192ull, 452783953941ull}},
+ {{2051986115325329408ull, 14051670699648685726ull,
+ 12382132556940682384ull, 905567907882ull}},
+ {{4103972230650658816ull, 9656597325587819836ull,
+ 6317521040171813153ull, 1811135815765ull}},
+ {{15578189705097773056ull, 12999365909343294936ull,
+ 1263504208034362630ull, 362227163153ull}},
+ {{12709635336485994496ull, 7551987744977038257ull,
+ 2527008416068725261ull, 724454326306ull}},
+ {{6972526599262437376ull, 15103975489954076515ull,
+ 5054016832137450522ull, 1448908652612ull}},
+ {{13945053198524874752ull, 11761206906198601414ull,
+ 10108033664274901045ull, 2897817305224ull}},
+ {{13857057083930705920ull, 17109636640207361575ull,
+ 16779001991822621501ull, 579563461044ull}},
+ {{9267370094151860224ull, 15772529206705171535ull,
+ 15111259909935691387ull, 1159126922089ull}},
+ {{87996114594168832ull, 13098314339700791455ull,
+ 11775775746161831159ull, 2318253844179ull}},
+ {{11085645667144564736ull, 13687709312165889260ull,
+ 17112550408200007524ull, 463650768835ull}},
+ {{3724547260579577856ull, 8928674550622226905ull,
+ 15778356742690463433ull, 927301537671ull}},
+ {{7449094521159155712ull, 17857349101244453810ull,
+ 13109969411671375250ull, 1854603075343ull}},
+ {{12557865348457562112ull, 14639516264474621731ull,
+ 13690040326560006019ull, 370920615068ull}},
+ {{6668986623205572608ull, 10832288455239691847ull,
+ 8933336579410460423ull, 741841230137ull}},
+ {{13337973246411145216ull, 3217832836769832078ull,
+ 17866673158820920847ull, 1483682460274ull}},
+ {{8229202419112738816ull, 6435665673539664157ull,
+ 17286602243932290078ull, 2967364920549ull}},
+ {{16403235742790189056ull, 8665830764191753477ull,
+ 18214715707754099308ull, 593472984109ull}},
+ {{14359727411870826496ull, 17331661528383506955ull,
+ 17982687341798647000ull, 1186945968219ull}},
+ {{10272710750032101376ull, 16216578983057462295ull,
+ 17518630609887742385ull, 2373891936439ull}},
+ {{16811937408974061568ull, 18000711055579133751ull,
+ 18261121380945189769ull, 474778387287ull}},
+ {{15177130744238571520ull, 17554678037448715887ull,
+ 18075498688180827923ull, 949556774575ull}},
+ {{11907517414767591424ull, 16662612001187880159ull,
+ 17704253302652104231ull, 1899113549151ull}},
+ {{6070852297695428608ull, 10711220029721396678ull,
+ 7230199475272331169ull, 379822709830ull}},
+ {{12141704595390857216ull, 2975695985733241740ull,
+ 14460398950544662339ull, 759645419660ull}},
+ {{5836665117072162816ull, 5951391971466483481ull,
+ 10474053827379773062ull, 1519290839321ull}},
+ {{11673330234144325632ull, 11902783942932966962ull,
+ 2501363581049994508ull, 3038581678643ull}},
+ {{13402712491054596096ull, 6069905603328503715ull,
+ 11568319160435729871ull, 607716335728ull}},
+ {{8358680908399640576ull, 12139811206657007431ull,
+ 4689894247161908126ull, 1215432671457ull}},
+ {{16717361816799281152ull, 5832878339604463246ull,
+ 9379788494323816253ull, 2430865342914ull}},
+ {{14411518807585587200ull, 8545273297404713295ull,
+ 16633352957832404543ull, 486173068582ull}},
+ {{10376293541461622784ull, 17090546594809426591ull,
+ 14819961841955257470ull, 972346137165ull}},
+ {{2305843009213693952ull, 15734349115909301567ull,
+ 11193179610200963325ull, 1944692274331ull}},
+ {{11529215046068469760ull, 6836218637923770636ull,
+ 5927984736782102988ull, 388938454866ull}},
+ {{4611686018427387904ull, 13672437275847541273ull,
+ 11855969473564205976ull, 777876909732ull}},
+ {{9223372036854775808ull, 8898130477985530930ull,
+ 5265194873418860337ull, 1555753819465ull}},
+ {{0ull, 17796260955971061861ull, 10530389746837720674ull,
+ 3111507638930ull}},
+ {{0ull, 18316647450161853665ull, 2106077949367544134ull,
+ 622301527786ull}},
+ {{0ull, 18186550826614155714ull, 4212155898735088269ull,
+ 1244603055572ull}},
+ {{0ull, 17926357579518759812ull, 8424311797470176539ull,
+ 2489206111144ull}},
+ {{0ull, 14653317960129482932ull, 16442257618461676600ull,
+ 497841222228ull}},
+ {{0ull, 10859891846549414248ull, 14437771163213801585ull,
+ 995682444457ull}},
+ {{0ull, 3273039619389276880ull, 10428798252718051555ull,
+ 1991364888915ull}},
+ {{0ull, 654607923877855376ull, 2085759650543610311ull,
+ 398272977783ull}},
+ {{0ull, 1309215847755710752ull, 4171519301087220622ull,
+ 796545955566ull}},
+ {{0ull, 2618431695511421504ull, 8343038602174441244ull,
+ 1593091911132ull}},
+ {{0ull, 5236863391022843008ull, 16686077204348882488ull,
+ 3186183822264ull}},
+ {{0ull, 8426070307688389248ull, 18094610699837417790ull,
+ 637236764452ull}},
+ {{0ull, 16852140615376778496ull, 17742477325965283964ull,
+ 1274473528905ull}},
+ {{0ull, 15257537157044005376ull, 17038210578221016313ull,
+ 2548947057811ull}},
+ {{0ull, 17808902690376442368ull, 7096990930386113585ull,
+ 509789411562ull}},
+ {{0ull, 17171061307043333120ull, 14193981860772227171ull,
+ 1019578823124ull}},
+ {{0ull, 15895378540377114624ull, 9941219647834902727ull,
+ 2039157646249ull}},
+ {{0ull, 6868424522817333248ull, 16745639188534621838ull,
+ 407831529249ull}},
+ {{0ull, 13736849045634666496ull, 15044534303359692060ull,
+ 815663058499ull}},
+ {{0ull, 9026954017559781376ull, 11642324533009832505ull,
+ 1631326116999ull}},
+ {{0ull, 18053908035119562752ull, 4837904992310113394ull,
+ 3262652233999ull}},
+ {{0ull, 14678828051249643520ull, 15724976257429663971ull,
+ 652530446799ull}},
+ {{0ull, 10910912028789735424ull, 13003208441149776327ull,
+ 1305060893599ull}},
+ {{0ull, 3375079983869919232ull, 7559672808590001039ull,
+ 2610121787199ull}},
+ {{0ull, 11743062440999714816ull, 16269329820685641500ull,
+ 522024357439ull}},
+ {{0ull, 5039380808289878016ull, 14091915567661731385ull,
+ 1044048714879ull}},
+ {{0ull, 10078761616579756032ull, 9737087061613911154ull,
+ 2088097429759ull}},
+ {{0ull, 13083798767541682176ull, 16704812671290423523ull,
+ 417619485951ull}},
+ {{0ull, 7720853461373812736ull, 14962881268871295431ull,
+ 835238971903ull}},
+ {{0ull, 15441706922747625472ull, 11479018464033039246ull,
+ 1670477943807ull}},
+ {{0ull, 14156387828775256064ull, 9674501322290428495ull,
+ 334095588761ull}},
+ {{0ull, 9866031583840960512ull, 902258570871305375ull,
+ 668191177523ull}},
+ {{0ull, 1285319093972369408ull, 1804517141742610751ull,
+ 1336382355046ull}},
+ {{0ull, 2570638187944738816ull, 3609034283485221502ull,
+ 2672764710092ull}},
+ {{0ull, 15271522896556589056ull, 8100504486180864946ull,
+ 534552942018ull}},
+ {{0ull, 12096301719403626496ull, 16201008972361729893ull,
+ 1069105884036ull}},
+ {{0ull, 5745859365097701376ull, 13955273871013908171ull,
+ 2138211768073ull}},
+ {{0ull, 15906567131987181568ull, 13859101218428512603ull,
+ 427642353614ull}},
+ {{0ull, 13366390190264811520ull, 9271458363147473591ull,
+ 855284707229ull}},
+ {{0ull, 8286036306820071424ull, 96172652585395567ull,
+ 1710569414459ull}},
+ {{0ull, 5346556076105924608ull, 14776629789484720406ull,
+ 342113882891ull}},
+ {{0ull, 10693112152211849216ull, 11106515505259889196ull,
+ 684227765783ull}},
+ {{0ull, 2939480230714146816ull, 3766286936810226777ull,
+ 1368455531567ull}},
+ {{0ull, 5878960461428293632ull, 7532573873620453554ull,
+ 2736911063134ull}},
+ {{0ull, 12243838536511389696ull, 16263910033691732003ull,
+ 547382212626ull}},
+ {{0ull, 6040932999313227776ull, 14081075993673912391ull,
+ 1094764425253ull}},
+ {{0ull, 12081865998626455552ull, 9715407913638273166ull,
+ 2189528850507ull}},
+ {{0ull, 13484419643951022080ull, 9321779212211475279ull,
+ 437905770101ull}},
+ {{0ull, 8522095214192492544ull, 196814350713398943ull,
+ 875811540203ull}},
+ {{0ull, 17044190428384985088ull, 393628701426797886ull,
+ 1751623080406ull}},
+ {{0ull, 10787535715160817664ull, 3768074555027269900ull,
+ 350324616081ull}},
+ {{0ull, 3128327356612083712ull, 7536149110054539801ull,
+ 700649232162ull}},
+ {{0ull, 6256654713224167424ull, 15072298220109079602ull,
+ 1401298464324ull}},
+ {{0ull, 12513309426448334848ull, 11697852366508607588ull,
+ 2802596928649ull}},
+ {{0ull, 9881359514773487616ull, 17096965732269362810ull,
+ 560519385729ull}},
+ {{0ull, 1315974955837423616ull, 15747187390829174005ull,
+ 1121038771459ull}},
+ {{0ull, 2631949911674847232ull, 13047630707948796394ull,
+ 2242077542919ull}},
+ {{0ull, 11594436426560700416ull, 17366921400557400571ull,
+ 448415508583ull}},
+ {{0ull, 4742128779411849216ull, 16287098727405249527ull,
+ 896831017167ull}},
+ {{0ull, 9484257558823698432ull, 14127453381100947438ull,
+ 1793662034335ull}},
+ {{0ull, 12964897955990470656ull, 2825490676220189487ull,
+ 358732406867ull}},
+ {{0ull, 7483051838271389696ull, 5650981352440378975ull,
+ 717464813734ull}},
+ {{0ull, 14966103676542779392ull, 11301962704880757950ull,
+ 1434929627468ull}},
+ {{0ull, 11485463279376007168ull, 4157181336051964285ull,
+ 2869859254937ull}},
+ {{0ull, 9675790285359022080ull, 8210133896694213503ull,
+ 573971850987ull}},
+ {{0ull, 904836497008492544ull, 16420267793388427007ull,
+ 1147943701974ull}},
+ {{0ull, 1809672994016985088ull, 14393791513067302398ull,
+ 2295887403949ull}},
+ {{0ull, 7740632228287217664ull, 17636153561581101772ull,
+ 459177480789ull}},
+ {{0ull, 15481264456574435328ull, 16825563049452651928ull,
+ 918354961579ull}},
+ {{0ull, 12515784839439319040ull, 15204382025195752241ull,
+ 1836709923159ull}},
+ {{0ull, 2503156967887863808ull, 17798271664006791741ull,
+ 367341984631ull}},
+ {{0ull, 5006313935775727616ull, 17149799254304031866ull,
+ 734683969263ull}},
+ {{0ull, 10012627871551455232ull, 15852854434898512116ull,
+ 1469367938527ull}},
+ {{0ull, 1578511669393358848ull, 13258964796087472617ull,
+ 2938735877055ull}},
+ {{0ull, 7694399963362492416ull, 2651792959217494523ull,
+ 587747175411ull}},
+ {{0ull, 15388799926724984832ull, 5303585918434989046ull,
+ 1175494350822ull}},
+ {{0ull, 12330855779740418048ull, 10607171836869978093ull,
+ 2350988701644ull}},
+ {{0ull, 9844868785431904256ull, 16878829626341636911ull,
+ 470197740328ull}},
+ {{0ull, 1242993497154256896ull, 15310915178973722207ull,
+ 940395480657ull}},
+ {{0ull, 2485986994308513792ull, 12175086284237892798ull,
+ 1880790961315ull}},
+ {{0ull, 11565243843087433728ull, 2435017256847578559ull,
+ 376158192263ull}},
+ {{0ull, 4683743612465315840ull, 4870034513695157119ull,
+ 752316384526ull}},
+ {{0ull, 9367487224930631680ull, 9740069027390314238ull,
+ 1504632769052ull}},
+ {{0ull, 288230376151711744ull, 1033393981071076861ull,
+ 3009265538105ull}},
+ {{0ull, 3746994889972252672ull, 206678796214215372ull,
+ 601853107621ull}},
+ {{0ull, 7493989779944505344ull, 413357592428430744ull,
+ 1203706215242ull}},
+ {{0ull, 14987979559889010688ull, 826715184856861488ull,
+ 2407412430484ull}},
+ {{0ull, 10376293541461622784ull, 14922738295939013590ull,
+ 481482486096ull}},
+ {{0ull, 2305843009213693952ull, 11398732518168475565ull,
+ 962964972193ull}},
+ {{0ull, 4611686018427387904ull, 4350720962627399514ull,
+ 1925929944387ull}},
+ {{0ull, 4611686018427387904ull, 8248841822009300549ull,
+ 385185988877ull}},
+ {{0ull, 9223372036854775808ull, 16497683644018601098ull,
+ 770371977754ull}},
+ {{0ull, 0ull, 14548623214327650581ull, 1540743955509ull}},
+ {{0ull, 0ull, 10650502354945749546ull, 3081487911019ull}},
+ {{0ull, 0ull, 16887495729956791202ull, 616297582203ull}},
+ {{0ull, 0ull, 15328247386204030788ull, 1232595164407ull}},
+ {{0ull, 0ull, 12209750698698509960ull, 2465190328815ull}},
+ {{0ull, 0ull, 2441950139739701992ull, 493038065763ull}},
+ {{0ull, 0ull, 4883900279479403984ull, 986076131526ull}},
+ {{0ull, 0ull, 9767800558958807968ull, 1972152263052ull}},
+ {{0ull, 0ull, 9332257741275582240ull, 394430452610ull}},
+ {{0ull, 0ull, 217771408841612864ull, 788860905221ull}},
+ {{0ull, 0ull, 435542817683225728ull, 1577721810442ull}},
+ {{0ull, 0ull, 871085635366451456ull, 3155443620884ull}},
+ {{0ull, 0ull, 14931612386040931584ull, 631088724176ull}},
+ {{0ull, 0ull, 11416480698372311552ull, 1262177448353ull}},
+ {{0ull, 0ull, 4386217323035071488ull, 2524354896707ull}},
+ {{0ull, 0ull, 8255941094090834944ull, 504870979341ull}},
+ {{0ull, 0ull, 16511882188181669888ull, 1009741958682ull}},
+ {{0ull, 0ull, 14577020302653788160ull, 2019483917365ull}},
+ {{0ull, 0ull, 2915404060530757632ull, 403896783473ull}},
+ {{0ull, 0ull, 5830808121061515264ull, 807793566946ull}},
+ {{0ull, 0ull, 11661616242123030528ull, 1615587133892ull}},
+ {{0ull, 0ull, 4876488410536509440ull, 3231174267785ull}},
+ {{0ull, 0ull, 975297682107301888ull, 646234853557ull}},
+ {{0ull, 0ull, 1950595364214603776ull, 1292469707114ull}},
+ {{0ull, 0ull, 3901190728429207552ull, 2584939414228ull}},
+ {{0ull, 0ull, 11848284589911572480ull, 516987882845ull}},
+ {{0ull, 0ull, 5249825106113593344ull, 1033975765691ull}},
+ {{0ull, 0ull, 10499650212227186688ull, 2067951531382ull}},
+ {{0ull, 0ull, 9478627671929257984ull, 413590306276ull}},
+ {{0ull, 0ull, 510511270148964352ull, 827180612553ull}},
+ {{0ull, 0ull, 1021022540297928704ull, 1654361225106ull}},
+ {{0ull, 0ull, 3893553322801496064ull, 330872245021ull}},
+ {{0ull, 0ull, 7787106645602992128ull, 661744490042ull}},
+ {{0ull, 0ull, 15574213291205984256ull, 1323488980084ull}},
+ {{0ull, 0ull, 12701682508702416896ull, 2646977960169ull}},
+ {{0ull, 0ull, 17297731760708124672ull, 529395592033ull}},
+ {{0ull, 0ull, 16148719447706697728ull, 1058791184067ull}},
+ {{0ull, 0ull, 13850694821703843840ull, 2117582368135ull}},
+ {{0ull, 0ull, 2770138964340768768ull, 423516473627ull}},
+ {{0ull, 0ull, 5540277928681537536ull, 847032947254ull}},
+ {{0ull, 0ull, 11080555857363075072ull, 1694065894508ull}},
+ {{0ull, 0ull, 13284157615698345984ull, 338813178901ull}},
+ {{0ull, 0ull, 8121571157687140352ull, 677626357803ull}},
+ {{0ull, 0ull, 16243142315374280704ull, 1355252715606ull}},
+ {{0ull, 0ull, 14039540557039009792ull, 2710505431213ull}},
+ {{0ull, 0ull, 13875954555633532928ull, 542101086242ull}},
+ {{0ull, 0ull, 9305165037557514240ull, 1084202172485ull}},
+ {{0ull, 0ull, 163586001405476864ull, 2168404344971ull}},
+ {{0ull, 0ull, 3722066015023005696ull, 433680868994ull}},
+ {{0ull, 0ull, 7444132030046011392ull, 867361737988ull}},
+ {{0ull, 0ull, 14888264060092022784ull, 1734723475976ull}},
+ {{0ull, 0ull, 6667001626760314880ull, 346944695195ull}},
+ {{0ull, 0ull, 13334003253520629760ull, 693889390390ull}},
+ {{0ull, 0ull, 8221262433331707904ull, 1387778780781ull}},
+ {{0ull, 0ull, 16442524866663415808ull, 2775557561562ull}},
+ {{0ull, 0ull, 10667202602816503808ull, 555111512312ull}},
+ {{0ull, 0ull, 2887661131923456000ull, 1110223024625ull}},
+ {{0ull, 0ull, 5775322263846912000ull, 2220446049250ull}},
+ {{0ull, 0ull, 1155064452769382400ull, 444089209850ull}},
+ {{0ull, 0ull, 2310128905538764800ull, 888178419700ull}},
+ {{0ull, 0ull, 4620257811077529600ull, 1776356839400ull}},
+ {{0ull, 0ull, 924051562215505920ull, 355271367880ull}},
+ {{0ull, 0ull, 1848103124431011840ull, 710542735760ull}},
+ {{0ull, 0ull, 3696206248862023680ull, 1421085471520ull}},
+ {{0ull, 0ull, 7392412497724047360ull, 2842170943040ull}},
+ {{0ull, 0ull, 1478482499544809472ull, 568434188608ull}},
+ {{0ull, 0ull, 2956964999089618944ull, 1136868377216ull}},
+ {{0ull, 0ull, 5913929998179237888ull, 2273736754432ull}},
+ {{0ull, 0ull, 8561483629119668224ull, 454747350886ull}},
+ {{0ull, 0ull, 17122967258239336448ull, 909494701772ull}},
+ {{0ull, 0ull, 15799190442769121280ull, 1818989403545ull}},
+ {{0ull, 0ull, 3159838088553824256ull, 363797880709ull}},
+ {{0ull, 0ull, 6319676177107648512ull, 727595761418ull}},
+ {{0ull, 0ull, 12639352354215297024ull, 1455191522836ull}},
+ {{0ull, 0ull, 6831960634721042432ull, 2910383045673ull}},
+ {{0ull, 0ull, 12434438571169939456ull, 582076609134ull}},
+ {{0ull, 0ull, 6422133068630327296ull, 1164153218269ull}},
+ {{0ull, 0ull, 12844266137260654592ull, 2328306436538ull}},
+ {{0ull, 0ull, 13636899671677861888ull, 465661287307ull}},
+ {{0ull, 0ull, 8827055269646172160ull, 931322574615ull}},
+ {{0ull, 0ull, 17654110539292344320ull, 1862645149230ull}},
+ {{0ull, 0ull, 3530822107858468864ull, 372529029846ull}},
+ {{0ull, 0ull, 7061644215716937728ull, 745058059692ull}},
+ {{0ull, 0ull, 14123288431433875456ull, 1490116119384ull}},
+ {{0ull, 0ull, 9799832789158199296ull, 2980232238769ull}},
+ {{0ull, 0ull, 16717361816799281152ull, 596046447753ull}},
+ {{0ull, 0ull, 14987979559889010688ull, 1192092895507ull}},
+ {{0ull, 0ull, 11529215046068469760ull, 2384185791015ull}},
+ {{0ull, 0ull, 2305843009213693952ull, 476837158203ull}},
+ {{0ull, 0ull, 4611686018427387904ull, 953674316406ull}},
+ {{0ull, 0ull, 9223372036854775808ull, 1907348632812ull}},
+ {{0ull, 0ull, 9223372036854775808ull, 381469726562ull}},
+ {{0ull, 0ull, 0ull, 762939453125ull}},
+ {{0ull, 0ull, 0ull, 1525878906250ull}},
+ {{0ull, 0ull, 0ull, 3051757812500ull}},
+ {{0ull, 0ull, 0ull, 610351562500ull}},
+ {{0ull, 0ull, 0ull, 1220703125000ull}},
+ {{0ull, 0ull, 0ull, 2441406250000ull}},
+ {{0ull, 0ull, 0ull, 488281250000ull}},
+ {{0ull, 0ull, 0ull, 976562500000ull}},
+ {{0ull, 0ull, 0ull, 1953125000000ull}},
+ {{0ull, 0ull, 0ull, 390625000000ull}},
+ {{0ull, 0ull, 0ull, 781250000000ull}},
+ {{0ull, 0ull, 0ull, 1562500000000ull}},
+ {{0ull, 0ull, 0ull, 3125000000000ull}},
+ {{0ull, 0ull, 0ull, 625000000000ull}},
+ {{0ull, 0ull, 0ull, 1250000000000ull}},
+ {{0ull, 0ull, 0ull, 2500000000000ull}},
+ {{0ull, 0ull, 0ull, 500000000000ull}},
+ {{0ull, 0ull, 0ull, 1000000000000ull}},
+ {{0ull, 0ull, 0ull, 2000000000000ull}},
+ {{0ull, 0ull, 0ull, 400000000000ull}},
+ {{0ull, 0ull, 0ull, 800000000000ull}},
+ {{0ull, 0ull, 0ull, 1600000000000ull}},
+ {{0ull, 0ull, 0ull, 3200000000000ull}},
+ {{0ull, 0ull, 0ull, 640000000000ull}},
+ {{0ull, 0ull, 0ull, 1280000000000ull}},
+ {{0ull, 0ull, 0ull, 2560000000000ull}},
+ {{0ull, 0ull, 0ull, 512000000000ull}},
+ {{0ull, 0ull, 0ull, 1024000000000ull}},
+ {{0ull, 0ull, 0ull, 2048000000000ull}},
+ {{0ull, 0ull, 0ull, 409600000000ull}},
+ {{0ull, 0ull, 0ull, 819200000000ull}},
+ {{0ull, 0ull, 0ull, 1638400000000ull}},
+ {{0ull, 0ull, 0ull, 3276800000000ull}},
+ {{0ull, 0ull, 0ull, 655360000000ull}},
+ {{0ull, 0ull, 0ull, 1310720000000ull}},
+ {{0ull, 0ull, 0ull, 2621440000000ull}},
+ {{0ull, 0ull, 0ull, 524288000000ull}},
+ {{0ull, 0ull, 0ull, 1048576000000ull}},
+ {{0ull, 0ull, 0ull, 2097152000000ull}},
+ {{0ull, 0ull, 0ull, 419430400000ull}},
+ {{0ull, 0ull, 0ull, 838860800000ull}},
+ {{0ull, 0ull, 0ull, 1677721600000ull}},
+ {{0ull, 0ull, 0ull, 335544320000ull}},
+ {{0ull, 0ull, 0ull, 671088640000ull}},
+ {{0ull, 0ull, 0ull, 1342177280000ull}},
+ {{0ull, 0ull, 0ull, 2684354560000ull}},
+ {{0ull, 0ull, 0ull, 536870912000ull}},
+ {{0ull, 0ull, 0ull, 1073741824000ull}},
+ {{0ull, 0ull, 0ull, 2147483648000ull}},
+ {{0ull, 0ull, 0ull, 429496729600ull}},
+ {{0ull, 0ull, 0ull, 858993459200ull}},
+ {{0ull, 0ull, 0ull, 1717986918400ull}},
+ {{0ull, 0ull, 0ull, 343597383680ull}},
+ {{0ull, 0ull, 0ull, 687194767360ull}},
+ {{0ull, 0ull, 0ull, 1374389534720ull}},
+ {{0ull, 0ull, 0ull, 2748779069440ull}},
+ {{0ull, 0ull, 0ull, 549755813888ull}},
+ {{0ull, 0ull, 0ull, 1099511627776ull}},
+ {{0ull, 0ull, 0ull, 2199023255552ull}},
+ {{7378697629483820647ull, 7378697629483820646ull,
+ 7378697629483820646ull, 439804651110ull}},
+ {{14757395258967641293ull, 14757395258967641292ull,
+ 14757395258967641292ull, 879609302220ull}},
+ {{11068046444225730970ull, 11068046444225730969ull,
+ 11068046444225730969ull, 1759218604441ull}},
+ {{16971004547812787487ull, 2213609288845146193ull,
+ 5902958103587056517ull, 351843720888ull}},
+ {{15495265021916023358ull, 4427218577690292387ull,
+ 11805916207174113034ull, 703687441776ull}},
+ {{12543785970122495099ull, 8854437155380584775ull,
+ 5165088340638674452ull, 1407374883553ull}},
+ {{6640827866535438582ull, 17708874310761169551ull,
+ 10330176681277348904ull, 2814749767106ull}},
+ {{5017514388048998040ull, 3541774862152233910ull,
+ 5755384150997380104ull, 562949953421ull}},
+ {{10035028776097996080ull, 7083549724304467820ull,
+ 11510768301994760208ull, 1125899906842ull}},
+ {{1623313478486440543ull, 14167099448608935641ull,
+ 4574792530279968800ull, 2251799813685ull}},
+ {{4014011510439198432ull, 2833419889721787128ull, 914958506055993760ull,
+ 450359962737ull}},
+ {{8028023020878396864ull, 5666839779443574256ull,
+ 1829917012111987520ull, 900719925474ull}},
+ {{16056046041756793727ull, 11333679558887148512ull,
+ 3659834024223975040ull, 1801439850948ull}},
+ {{3211209208351358746ull, 13334782356003160672ull,
+ 11800013249070525977ull, 360287970189ull}},
+ {{6422418416702717491ull, 8222820638296769728ull,
+ 5153282424431500339ull, 720575940379ull}},
+ {{12844836833405434982ull, 16445641276593539456ull,
+ 10306564848863000678ull, 1441151880758ull}},
+ {{7242929593101318347ull, 14444538479477527297ull,
+ 2166385624016449741ull, 2882303761517ull}},
+ {{1448585918620263670ull, 13956954140121236429ull,
+ 7811974754287110594ull, 576460752303ull}},
+ {{2897171837240527339ull, 9467164206532921242ull,
+ 15623949508574221189ull, 1152921504606ull}},
+ {{5794343674481054678ull, 487584339356290868ull,
+ 12801154943438890763ull, 2305843009213ull}},
+ {{15916263993863852229ull, 3786865682613168496ull,
+ 13628277432913509122ull, 461168601842ull}},
+ {{13385783914018152841ull, 7573731365226336993ull,
+ 8809810792117466628ull, 922337203685ull}},
+ {{8324823754326754065ull, 15147462730452673987ull,
+ 17619621584234933256ull, 1844674407370ull}},
+ {{12733011195091081783ull, 6718841360832445120ull,
+ 3523924316846986651ull, 368934881474ull}},
+ {{7019278316472611950ull, 13437682721664890241ull,
+ 7047848633693973302ull, 737869762948ull}},
+ {{14038556632945223899ull, 8428621369620228866ull,
+ 14095697267387946605ull, 1475739525896ull}},
+ {{9630369192180896181ull, 16857242739240457733ull,
+ 9744650461066341594ull, 2951479051793ull}},
+ {{1926073838436179237ull, 10750146177331912193ull,
+ 13016976536438999288ull, 590295810358ull}},
+ {{3852147676872358473ull, 3053548280954272770ull,
+ 7587208999168446961ull, 1180591620717ull}},
+ {{7704295353744716945ull, 6107096561908545540ull,
+ 15174417998336893922ull, 2361183241434ull}},
+ {{5230207885490853713ull, 4910768127123619431ull,
+ 17792278858635020077ull, 472236648286ull}},
+ {{10460415770981707425ull, 9821536254247238862ull,
+ 17137813643560488538ull, 944473296573ull}},
+ {{2474087468253863233ull, 1196328434784926109ull,
+ 15828883213411425461ull, 1888946593147ull}},
+ {{7873515123134593293ull, 11307312131182716191ull,
+ 10544474272166105738ull, 377789318629ull}},
+ {{15747030246269186586ull, 4167880188655880766ull,
+ 2642204470622659861ull, 755578637259ull}},
+ {{13047316418828821556ull, 8335760377311761533ull,
+ 5284408941245319722ull, 1511157274518ull}},
+ {{7647888763948091496ull, 16671520754623523067ull,
+ 10568817882490639444ull, 3022314549036ull}},
+ {{8908275382273438946ull, 3334304150924704613ull,
+ 5803112391240038212ull, 604462909807ull}},
+ {{17816550764546877891ull, 6668608301849409226ull,
+ 11606224782480076424ull, 1208925819614ull}},
+ {{17186357455384204166ull, 13337216603698818453ull,
+ 4765705491250601232ull, 2417851639229ull}},
+ {{18194666750044482126ull, 6356792135481674013ull,
+ 15710536357217761539ull, 483570327845ull}},
+ {{17942589426379412636ull, 12713584270963348027ull,
+ 12974328640725971462ull, 967140655691ull}},
+ {{17438434779049273656ull, 6980424468217144439ull,
+ 7501913207742391309ull, 1934281311383ull}},
+ {{7177035770551765055ull, 8774782523127249534ull,
+ 12568429085774209231ull, 386856262276ull}},
+ {{14354071541103530109ull, 17549565046254499068ull,
+ 6690114097838866846ull, 773712524553ull}},
+ {{10261399008497508602ull, 16652386018799446521ull,
+ 13380228195677733693ull, 1547425049106ull}},
+ {{2076053943285465587ull, 14858027963889341427ull,
+ 8313712317645915771ull, 3094850098213ull}},
+ {{4104559603399003441ull, 17729000851745509578ull,
+ 12730788907754914123ull, 618970019642ull}},
+ {{8209119206798006882ull, 17011257629781467540ull,
+ 7014833741800276631ull, 1237940039285ull}},
+ {{16418238413596013763ull, 15575771185853383464ull,
+ 14029667483600553263ull, 2475880078570ull}},
+ {{10662345312203023399ull, 14183200681396407662ull,
+ 2805933496720110652ull, 495176015714ull}},
+ {{2877946550696495182ull, 9919657289083263709ull,
+ 5611866993440221305ull, 990352031428ull}},
+ {{5755893101392990364ull, 1392570504456975802ull,
+ 11223733986880442611ull, 1980704062856ull}},
+ {{15908573879246239366ull, 7657211730375215806ull,
+ 5934095612117998845ull, 396140812571ull}},
+ {{13370403684782927115ull, 15314423460750431613ull,
+ 11868191224235997690ull, 792281625142ull}},
+ {{8294063295856302614ull, 12182102847791311611ull,
+ 5289638374762443765ull, 1584563250285ull}},
+ {{16588126591712605228ull, 5917461621873071606ull,
+ 10579276749524887531ull, 3169126500570ull}},
+ {{10696322947826341692ull, 4872841139116524644ull,
+ 2115855349904977506ull, 633825300114ull}},
+ {{2945901821943131768ull, 9745682278233049289ull,
+ 4231710699809955012ull, 1267650600228ull}},
+ {{5891803643886263536ull, 1044620482756546962ull,
+ 8463421399619910025ull, 2535301200456ull}},
+ {{12246407173002983677ull, 3898272911293219715ull,
+ 5382033094665892328ull, 507060240091ull}},
+ {{6046070272296415738ull, 7796545822586439431ull,
+ 10764066189331784656ull, 1014120480182ull}},
+ {{12092140544592831476ull, 15593091645172878862ull,
+ 3081388304954017696ull, 2028240960365ull}},
+ {{13486474553144297265ull, 6807967143776486095ull,
+ 616277660990803539ull, 405648192073ull}},
+ {{8526205032579042914ull, 13615934287552972191ull,
+ 1232555321981607078ull, 811296384146ull}},
+ {{17052410065158085827ull, 8785124501396392766ull,
+ 2465110643963214157ull, 1622592768292ull}},
+ {{15658076056606620037ull, 17570249002792785533ull,
+ 4930221287926428314ull, 3245185536584ull}},
+ {{6820964026063234331ull, 14582096244784288076ull,
+ 15743439516552926955ull, 649037107316ull}},
+ {{13641928052126468662ull, 10717448415859024536ull,
+ 13040134959396302295ull, 1298074214633ull}},
+ {{8837112030543385707ull, 2988152758008497457ull,
+ 7633525845083052975ull, 2596148429267ull}},
+ {{16524817665076318435ull, 7976328181085520137ull,
+ 8905402798500431241ull, 519229685853ull}},
+ {{14602891256443085253ull, 15952656362171040275ull,
+ 17810805597000862482ull, 1038459371706ull}},
+ {{10759038439176618889ull, 13458568650632528935ull,
+ 17174867120292173349ull, 2076918743413ull}},
+ {{9530505317319144425ull, 10070411359610326433ull,
+ 14503019868284165639ull, 415383748682ull}},
+ {{614266560928737233ull, 1694078645511101251ull,
+ 10559295662858779663ull, 830767497365ull}},
+ {{1228533121857474465ull, 3388157291022202502ull,
+ 2671847252008007710ull, 1661534994731ull}},
+ {{11313753068597225863ull, 4366980272946350823ull,
+ 4223718265143511865ull, 332306998946ull}},
+ {{4180762063484900109ull, 8733960545892701647ull,
+ 8447436530287023730ull, 664613997892ull}},
+ {{8361524126969800218ull, 17467921091785403294ull,
+ 16894873060574047460ull, 1329227995784ull}},
+ {{16723048253939600436ull, 16489098109861254972ull,
+ 15343002047438543305ull, 2658455991569ull}},
+ {{7033958465529830411ull, 18055214880939892287ull,
+ 17825995668455349953ull, 531691198313ull}},
+ {{14067916931059660821ull, 17663685688170232958ull,
+ 17205247263201148291ull, 1063382396627ull}},
+ {{9689089788409770026ull, 16880627302630914301ull,
+ 15963750452692744967ull, 2126764793255ull}},
+ {{13005864401907684975ull, 10754823090010003506ull,
+ 3192750090538548993ull, 425352958651ull}},
+ {{7564984730105818334ull, 3062902106310455397ull,
+ 6385500181077097987ull, 850705917302ull}},
+ {{15129969460211636667ull, 6125804212620910794ull,
+ 12771000362154195974ull, 1701411834604ull}},
+ {{10404691521526147980ull, 12293207286749913128ull,
+ 17311595331398480487ull, 340282366920ull}},
+ {{2362638969342744344ull, 6139670499790274641ull,
+ 16176446589087409359ull, 680564733841ull}},
+ {{4725277938685488687ull, 12279340999580549282ull,
+ 13906149104465267102ull, 1361129467683ull}},
+ {{9450555877370977374ull, 6111937925451546948ull,
+ 9365554135220982589ull, 2722258935367ull}},
+ {{16647506434441836768ull, 4911736399832219712ull,
+ 9251808456528017164ull, 544451787073ull}},
+ {{14848268795174121920ull, 9823472799664439425ull, 56872839346482712ull,
+ 1088903574147ull}},
+ {{11249793516638692223ull, 1200201525619327235ull,
+ 113745678692965425ull, 2177807148294ull}},
+ {{17007353962295379738ull, 14997435564091506739ull,
+ 14780144394706234377ull, 435561429658ull}},
+ {{15567963850881207859ull, 11548127054473461863ull,
+ 11113544715702917139ull, 871122859317ull}},
+ {{12689183628052864101ull, 4649510035237372111ull,
+ 3780345357696282663ull, 1742245718635ull}},
+ {{17295231984578214113ull, 11997948451273205391ull,
+ 756069071539256532ull, 348449143727ull}},
+ {{16143719895446876610ull, 5549152828836859167ull,
+ 1512138143078513065ull, 696898287454ull}},
+ {{13840695717184201604ull, 11098305657673718335ull,
+ 3024276286157026130ull, 1393796574908ull}},
+ {{9234647360658851592ull, 3749867241637885055ull,
+ 6048552572314052261ull, 2787593149816ull}},
+ {{9225627101615590965ull, 8128671077811397657ull,
+ 4899059329204720775ull, 557518629963ull}},
+ {{4510129521630314ull, 16257342155622795315ull, 9798118658409441550ull,
+ 1115037259926ull}},
+ {{9020259043260628ull, 14067940237536039014ull, 1149493243109331485ull,
+ 2230074519853ull}},
+ {{7380501681292472772ull, 13881634491732938772ull,
+ 11297945092847597266ull, 446014903970ull}},
+ {{14761003362584945544ull, 9316524909756325928ull,
+ 4149146111985642917ull, 892029807941ull}},
+ {{11075262651460339472ull, 186305745803100241ull,
+ 8298292223971285835ull, 1784059615882ull}},
+ {{13283098974517798864ull, 7415958778644440694ull,
+ 9038356074278077813ull, 356811923176ull}},
+ {{8119453875326046112ull, 14831917557288881389ull,
+ 18076712148556155626ull, 713623846352ull}},
+ {{16238907750652092224ull, 11217091040868211162ull,
+ 17706680223402759637ull, 1427247692705ull}},
+ {{14031071427594632831ull, 3987438008026870709ull,
+ 16966616373095967659ull, 2854495385411ull}},
+ {{17563609544486567859ull, 797487601605374141ull,
+ 7082672089361103855ull, 570899077082ull}},
+ {{16680475015263584102ull, 1594975203210748283ull,
+ 14165344178722207710ull, 1141798154164ull}},
+ {{14914205956817616588ull, 3189950406421496567ull,
+ 9883944283734863804ull, 2283596308329ull}},
+ {{2982841191363523318ull, 11706036525510030283ull,
+ 16734184115714614053ull, 456719261665ull}},
+ {{5965682382727046636ull, 4965328977310508950ull,
+ 15021624157719676491ull, 913438523331ull}},
+ {{11931364765454093271ull, 9930657954621017900ull,
+ 11596504241729801366ull, 1826877046663ull}},
+ {{17143668212058459947ull, 16743526849891844872ull,
+ 13387347292571691242ull, 365375409332ull}},
+ {{15840592350407368278ull, 15040309626074138129ull,
+ 8327950511433830869ull, 730750818665ull}},
+ {{13234440627105184940ull, 11633875178438724643ull,
+ 16655901022867661739ull, 1461501637330ull}},
+ {{8022137180500818264ull, 4821006283167897671ull,
+ 14865057972025771863ull, 2923003274661ull}},
+ {{1604427436100163653ull, 15721596515601220827ull,
+ 6662360409147064695ull, 584600654932ull}},
+ {{3208854872200327306ull, 12996448957492890038ull,
+ 13324720818294129391ull, 1169201309864ull}},
+ {{6417709744400654611ull, 7546153841276228460ull,
+ 8202697562878707167ull, 2338402619729ull}},
+ {{4972890763622041246ull, 5198579582997156015ull,
+ 16397934771543382726ull, 467680523945ull}},
+ {{9945781527244082491ull, 10397159165994312030ull,
+ 14349125469377213836ull, 935361047891ull}},
+ {{1444818980778613366ull, 2347574258279072445ull,
+ 10251506865044876057ull, 1870722095783ull}},
+ {{288963796155722674ull, 469514851655814489ull, 13118347817234706181ull,
+ 374144419156ull}},
+ {{577927592311445347ull, 939029703311628978ull, 7789951560759860746ull,
+ 748288838313ull}},
+ {{1155855184622890693ull, 1878059406623257956ull,
+ 15579903121519721492ull, 1496577676626ull}},
+ {{2311710369245781385ull, 3756118813246515912ull,
+ 12713062169329891368ull, 2993155353253ull}},
+ {{11530388518074887247ull, 4440572577391213505ull,
+ 13610658878091709243ull, 598631070650ull}},
+ {{4614032962440222877ull, 8881145154782427011ull,
+ 8774573682473866870ull, 1197262141301ull}},
+ {{9228065924880445754ull, 17762290309564854022ull,
+ 17549147364947733740ull, 2394524282602ull}},
+ {{16603008443943730444ull, 10931155691396791450ull,
+ 10888527102473367394ull, 478904856520ull}},
+ {{14759272814177909272ull, 3415567309084031285ull,
+ 3330310131237183173ull, 957809713041ull}},
+ {{11071801554646266927ull, 6831134618168062571ull,
+ 6660620262474366346ull, 1915619426082ull}},
+ {{16971755569896894679ull, 12434273367859343483ull,
+ 8710821681978693915ull, 383123885216ull}},
+ {{15496767066084237741ull, 6421802662009135351ull,
+ 17421643363957387831ull, 766247770432ull}},
+ {{12546790058458923865ull, 12843605324018270703ull,
+ 16396542654205224046ull, 1532495540865ull}},
+ {{6646836043208296113ull, 7240466574326989791ull,
+ 14346341234700896477ull, 3064991081731ull}},
+ {{16086762467609300516ull, 12516139759091128927ull,
+ 6558617061682089618ull, 612998216346ull}},
+ {{13726780861509049415ull, 6585535444472706239ull,
+ 13117234123364179237ull, 1225996432692ull}},
+ {{9006817649308547214ull, 13171070888945412479ull,
+ 7787724173018806858ull, 2451992865385ull}},
+ {{9180061159345530090ull, 13702260622014813465ull,
+ 1557544834603761371ull, 490398573077ull}},
+ {{18360122318691060179ull, 8957777170320075314ull,
+ 3115089669207522743ull, 980797146154ull}},
+ {{18273500563672568741ull, 17915554340640150629ull,
+ 6230179338415045486ull, 1961594292308ull}},
+ {{14722746556960244718ull, 18340506127095671418ull,
+ 12314082311908740066ull, 392318858461ull}},
+ {{10998749040210937820ull, 18234268180481791221ull,
+ 6181420550107928517ull, 784637716923ull}},
+ {{3550754006712324023ull, 18021792287254030827ull,
+ 12362841100215857035ull, 1569275433846ull}},
+ {{7101508013424648045ull, 17596840500798510038ull,
+ 6278938126722162455ull, 3138550867693ull}},
+ {{5109650417426839933ull, 14587414544385432977ull,
+ 12323834069570163460ull, 627710173538ull}},
+ {{10219300834853679865ull, 10728085015061314338ull,
+ 6200924065430775305ull, 1255420347077ull}},
+ {{1991857595997808113ull, 3009425956413077061ull,
+ 12401848130861550611ull, 2510840694154ull}},
+ {{4087720333941471946ull, 601885191282615412ull,
+ 17237764885139951415ull, 502168138830ull}},
+ {{8175440667882943892ull, 1203770382565230824ull,
+ 16028785696570351214ull, 1004336277661ull}},
+ {{16350881335765887783ull, 2407540765130461648ull,
+ 13610827319431150812ull, 2008672555323ull}},
+ {{14338222711378908527ull, 481508153026092329ull,
+ 13790211908111961132ull, 401734511064ull}},
+ {{10229701349048265437ull, 963016306052184659ull,
+ 9133679742514370648ull, 803469022129ull}},
+ {{2012658624386979257ull, 1926032612104369319ull,
+ 18267359485028741296ull, 1606938044258ull}},
+ {{4025317248773958514ull, 3852065224208738638ull,
+ 18087974896347930976ull, 3213876088517ull}},
+ {{4494412264496702026ull, 11838459489067478697ull,
+ 10996292608753406841ull, 642775217703ull}},
+ {{8988824528993404052ull, 5230174904425405778ull,
+ 3545841143797262067ull, 1285550435407ull}},
+ {{17977649057986808104ull, 10460349808850811556ull,
+ 7091682287594524134ull, 2571100870814ull}},
+ {{18352925070565002914ull, 13160116405995893280ull,
+ 16175731716486546119ull, 514220174162ull}},
+ {{18259106067420454212ull, 7873488738282234945ull,
+ 13904719359263540623ull, 1028440348325ull}},
+ {{18071468061131356807ull, 15746977476564469891ull,
+ 9362694644817529630ull, 2056880696651ull}},
+ {{10992991241710092008ull, 6838744310054804301ull,
+ 5561887743705416249ull, 411376139330ull}},
+ {{3539238409710632400ull, 13677488620109608603ull,
+ 11123775487410832498ull, 822752278660ull}},
+ {{7078476819421264799ull, 8908233166509665590ull,
+ 3800806901112113381ull, 1645504557321ull}},
+ {{8794392993368073607ull, 9160344262785753764ull,
+ 4449510194964332999ull, 329100911464ull}},
+ {{17588785986736147213ull, 18320688525571507528ull,
+ 8899020389928665998ull, 658201822928ull}},
+ {{16730827899762742809ull, 18194632977433463441ull,
+ 17798040779857331997ull, 1316403645856ull}},
+ {{15014911725815934001ull, 17942521881157375267ull,
+ 17149337486005112379ull, 2632807291713ull}},
+ {{17760377604130828093ull, 10967202005715295699ull,
+ 14497913941426753445ull, 526561458342ull}},
+ {{17074011134552104570ull, 3487659937721039783ull,
+ 10549083809143955275ull, 1053122916685ull}},
+ {{15701278195394657524ull, 6975319875442079567ull,
+ 2651423544578358934ull, 2106245833371ull}},
+ {{10518953268562752152ull, 1395063975088415913ull,
+ 4219633523657582110ull, 421249166674ull}},
+ {{2591162463415952687ull, 2790127950176831827ull,
+ 8439267047315164220ull, 842498333348ull}},
+ {{5182324926831905373ull, 5580255900353663654ull,
+ 16878534094630328440ull, 1684996666696ull}},
+ {{1036464985366381075ull, 4805399994812643054ull,
+ 7065055633667976011ull, 336999333339ull}},
+ {{2072929970732762150ull, 9610799989625286108ull,
+ 14130111267335952022ull, 673998666678ull}},
+ {{4145859941465524299ull, 774855905541020600ull, 9813478460962352429ull,
+ 1347997333357ull}},
+ {{8291719882931048597ull, 1549711811082041200ull,
+ 1180212848215153242ull, 2695994666715ull}},
+ {{9037041606070030366ull, 7688639991700228886ull, 236042569643030648ull,
+ 539198933343ull}},
+ {{18074083212140060732ull, 15377279983400457772ull,
+ 472085139286061296ull, 1078397866686ull}},
+ {{17701422350570569847ull, 12307815893091363929ull,
+ 944170278572122593ull, 2156795733372ull}},
+ {{18297679729081755263ull, 2461563178618272785ull,
+ 7567531685198245165ull, 431359146674ull}},
+ {{18148615384453958909ull, 4923126357236545571ull,
+ 15135063370396490330ull, 862718293348ull}},
+ {{17850486695198366201ull, 9846252714473091143ull,
+ 11823382667083429044ull, 1725436586697ull}},
+ {{18327492598007314533ull, 5658599357636528551ull,
+ 9743374162900506455ull, 345087317339ull}},
+ {{18208241122305077450ull, 11317198715273057103ull,
+ 1040004252091461294ull, 690174634679ull}},
+ {{17969738170900603284ull, 4187653356836562591ull,
+ 2080008504182922589ull, 1380349269358ull}},
+ {{17492732268091654952ull, 8375306713673125183ull,
+ 4160017008365845178ull, 2760698538716ull}},
+ {{10877244083102151637ull, 16432456601702266329ull,
+ 4521352216415079358ull, 552139707743ull}},
+ {{3307744092494751658ull, 14418169129694981043ull,
+ 9042704432830158717ull, 1104279415486ull}},
+ {{6615488184989503315ull, 10389594185680410470ull,
+ 18085408865660317435ull, 2208558830972ull}},
+ {{8701795266481721310ull, 9456616466619902740ull,
+ 10995779402615884133ull, 441711766194ull}},
+ {{17403590532963442619ull, 466488859530253864ull,
+ 3544814731522216651ull, 883423532389ull}},
+ {{16360436992217333622ull, 932977719060507729ull,
+ 7089629463044433302ull, 1766847064778ull}},
+ {{18029482657411108018ull, 186595543812101545ull,
+ 12485972336834617630ull, 353369412955ull}},
+ {{17612221241112664419ull, 373191087624203091ull,
+ 6525200599959683644ull, 706738825911ull}},
+ {{16777698408515777221ull, 746382175248406183ull,
+ 13050401199919367288ull, 1413477651822ull}},
+ {{15108652743322002825ull, 1492764350496812367ull,
+ 7654058326129182960ull, 2826955303645ull}},
+ {{10400428178148221212ull, 298552870099362473ull,
+ 1530811665225836592ull, 565391060729ull}},
+ {{2354112282586890807ull, 597105740198724947ull, 3061623330451673184ull,
+ 1130782121458ull}},
+ {{4708224565173781614ull, 1194211480397449894ull,
+ 6123246660903346368ull, 2261564242916ull}},
+ {{12009691357260487293ull, 14996237555047131271ull,
+ 4913998146922579596ull, 452312848583ull}},
+ {{5572638640811422969ull, 11545731036384710927ull,
+ 9827996293845159193ull, 904625697166ull}},
+ {{11145277281622845937ull, 4644717999059870238ull,
+ 1209248513980766771ull, 1809251394333ull}},
+ {{9607753085808389834ull, 15686338858779615340ull,
+ 11309896147021884323ull, 361850278866ull}},
+ {{768762097907228052ull, 12925933643849679065ull,
+ 4173048220334217031ull, 723700557733ull}},
+ {{1537524195814456104ull, 7405123213989806514ull,
+ 8346096440668434063ull, 1447401115466ull}},
+ {{3075048391628912207ull, 14810246427979613028ull,
+ 16692192881336868126ull, 2894802230932ull}},
+ {{4304358493067692765ull, 14030095729821653575ull,
+ 10717136205751194271ull, 578960446186ull}},
+ {{8608716986135385529ull, 9613447385933755534ull,
+ 2987528337792836927ull, 1157920892373ull}},
+ {{17217433972270771058ull, 780150698157959452ull,
+ 5975056675585673855ull, 2315841784746ull}},
+ {{14511533238679885182ull, 3845378954373502213ull,
+ 4884360149859045094ull, 463168356949ull}},
+ {{10576322403650218747ull, 7690757908747004427ull,
+ 9768720299718090188ull, 926336713898ull}},
+ {{2705900733590885877ull, 15381515817494008855ull,
+ 1090696525726628760ull, 1852673427797ull}},
+ {{7919877776201997822ull, 10455000792982622417ull,
+ 7596836934629146398ull, 370534685559ull}},
+ {{15839755552403995644ull, 2463257512255693218ull,
+ 15193673869258292797ull, 741069371118ull}},
+ {{13232767031098439671ull, 4926515024511386437ull,
+ 11940603664807033978ull, 1482138742237ull}},
+ {{8018789988487327726ull, 9853030049022772875ull,
+ 5434463255904516340ull, 2964277484475ull}},
+ {{1603757997697465546ull, 1970606009804554575ull,
+ 1086892651180903268ull, 592855496895ull}},
+ {{3207515995394931091ull, 3941212019609109150ull,
+ 2173785302361806536ull, 1185710993790ull}},
+ {{6415031990789862181ull, 7882424039218218300ull,
+ 4347570604723613072ull, 2371421987580ull}},
+ {{8661704027641793083ull, 8955182437327464306ull, 869514120944722614ull,
+ 474284397516ull}},
+ {{17323408055283586166ull, 17910364874654928612ull,
+ 1739028241889445228ull, 948568795032ull}},
+ {{16200072036857620715ull, 17373985675600305609ull,
+ 3478056483778890457ull, 1897137590064ull}},
+ {{3240014407371524143ull, 7164145949861971445ull,
+ 15453006555723419384ull, 379427518012ull}},
+ {{6480028814743048286ull, 14328291899723942890ull,
+ 12459269037737287152ull, 758855036025ull}},
+ {{12960057629486096572ull, 10209839725738334164ull,
+ 6471794001765022689ull, 1517710072051ull}},
+ {{7473371185262641527ull, 1972935377767116713ull,
+ 12943588003530045379ull, 3035420144102ull}},
+ {{16252069496020169599ull, 4083935890295333665ull,
+ 9967415230189829722ull, 607084028820ull}},
+ {{14057394918330787581ull, 8167871780590667331ull,
+ 1488086386670107828ull, 1214168057641ull}},
+ {{9668045762952023545ull, 16335743561181334663ull,
+ 2976172773340215656ull, 2428336115282ull}},
+ {{5622957967332315033ull, 14335195156461997902ull,
+ 7973932184151863777ull, 485667223056ull}},
+ {{11245915934664630065ull, 10223646239214444188ull,
+ 15947864368303727555ull, 971334446112ull}},
+ {{4045087795619708513ull, 2000548404719336761ull,
+ 13448984662897903495ull, 1942668892225ull}},
+ {{4498366373865852026ull, 400109680943867352ull, 2689796932579580699ull,
+ 388533778445ull}},
+ {{8996732747731704052ull, 800219361887734704ull, 5379593865159161398ull,
+ 777067556890ull}},
+ {{17993465495463408103ull, 1600438723775469408ull,
+ 10759187730318322796ull, 1554135113780ull}},
+ {{17540186917217264590ull, 3200877447550938817ull,
+ 3071631386927093976ull, 3108270227561ull}},
+ {{18265432642411094211ull, 8018873118994008409ull,
+ 4303675092127329118ull, 621654045512ull}},
+ {{18084121211112636806ull, 16037746237988016819ull,
+ 8607350184254658236ull, 1243308091024ull}},
+ {{17721498348515721995ull, 13628748402266482023ull,
+ 17214700368509316473ull, 2486616182048ull}},
+ {{18301694928670785692ull, 6415098495195206727ull,
+ 14510986517927594264ull, 497323236409ull}},
+ {{18156645783632019768ull, 12830196990390413455ull,
+ 10575228962145636912ull, 994646472819ull}},
+ {{17866547493554487919ull, 7213649907071275295ull,
+ 2703713850581722209ull, 1989292945639ull}},
+ {{14641355942936628554ull, 12510776425639986028ull,
+ 15298138029083985734ull, 397858589127ull}},
+ {{10835967812163705491ull, 6574808777570420441ull,
+ 12149531984458419853ull, 795717178255ull}},
+ {{3225191550617859366ull, 13149617555140840883ull,
+ 5852319895207288090ull, 1591434356511ull}},
+ {{6450383101235718732ull, 7852491036572130150ull,
+ 11704639790414576181ull, 3182868713022ull}},
+ {{12358123064472874716ull, 12638544651540156999ull,
+ 9719625587566735882ull, 636573742604ull}},
+ {{6269502055236197816ull, 6830345229370762383ull, 992507101423920149ull,
+ 1273147485209ull}},
+ {{12539004110472395632ull, 13660690458741524766ull,
+ 1985014202847840298ull, 2546294970418ull}},
+ {{9886498451578299773ull, 6421486906490215276ull,
+ 11465049284795299029ull, 509258994083ull}},
+ {{1326252829447047930ull, 12842973812980430553ull,
+ 4483354495881046442ull, 1018517988167ull}},
+ {{2652505658894095859ull, 7239203552251309490ull,
+ 8966708991762092885ull, 2037035976334ull}},
+ {{15287896390746460465ull, 16205235969417903190ull,
+ 16550737057320059869ull, 407407195266ull}},
+ {{12129048707783369314ull, 13963727865126254765ull,
+ 14654730040930568123ull, 814814390533ull}},
+ {{5811353341857187011ull, 9480711656542957915ull,
+ 10862716008151584631ull, 1629628781067ull}},
+ {{11622706683714374021ull, 514679239376364214ull,
+ 3278687942593617647ull, 3259257562135ull}},
+ {{6013890151484785128ull, 7481633477359093489ull, 655737588518723529ull,
+ 651851512427ull}},
+ {{12027780302969570255ull, 14963266954718186978ull,
+ 1311475177037447058ull, 1303703024854ull}},
+ {{5608816532229588893ull, 11479789835726822341ull,
+ 2622950354074894117ull, 2607406049708ull}},
+ {{4811112121187828102ull, 2295957967145364468ull,
+ 11592636515040709793ull, 521481209941ull}},
+ {{9622224242375656204ull, 4591915934290728936ull,
+ 4738528956371867970ull, 1042962419883ull}},
+ {{797704411041760792ull, 9183831868581457873ull, 9477057912743735940ull,
+ 2085924839766ull}},
+ {{14916936141175993452ull, 5526115188458201897ull,
+ 5584760397290657511ull, 417184967953ull}},
+ {{11387128208642435287ull, 11052230376916403795ull,
+ 11169520794581315022ull, 834369935906ull}},
+ {{4327512343575318957ull, 3657716680123255975ull,
+ 3892297515453078429ull, 1668739871813ull}},
+ {{8244200098198884438ull, 8110240965508471841ull,
+ 11846505947316346655ull, 333747974362ull}},
+ {{16488400196397768876ull, 16220481931016943682ull,
+ 5246267820923141694ull, 667495948725ull}},
+ {{14530056319085986135ull, 13994219788324335749ull,
+ 10492535641846283389ull, 1334991897450ull}},
+ {{10613368564462420654ull, 9541695502939119883ull,
+ 2538327209983015163ull, 2669983794901ull}},
+ {{9501371342376304778ull, 16665734359555465269ull,
+ 4197014256738513355ull, 533996758980ull}},
+ {{555998611043057939ull, 14884724645401378923ull,
+ 8394028513477026711ull, 1067993517960ull}},
+ {{1111997222086115877ull, 11322705217093206230ull,
+ 16788057026954053423ull, 2135987035920ull}},
+ {{11290445888642954145ull, 13332587487644372215ull,
+ 3357611405390810684ull, 427197407184ull}},
+ {{4134147703576356674ull, 8218430901579192815ull,
+ 6715222810781621369ull, 854394814368ull}},
+ {{8268295407152713348ull, 16436861803158385630ull,
+ 13430445621563242738ull, 1708789628736ull}},
+ {{16411054340398183963ull, 18044767619599318418ull,
+ 6375437939054558870ull, 341757925747ull}},
+ {{14375364607086816309ull, 17642791165489085221ull,
+ 12750875878109117741ull, 683515851494ull}},
+ {{10303985140464081001ull, 16838838257268618827ull,
+ 7055007682508683867ull, 1367031702989ull}},
+ {{2161226207218610386ull, 15230932440827686039ull,
+ 14110015365017367735ull, 2734063405978ull}},
+ {{7810942870927542724ull, 14114232932391268177ull,
+ 13890049517229204516ull, 546812681195ull}},
+ {{15621885741855085448ull, 9781721791072984738ull,
+ 9333354960748857417ull, 1093625362391ull}},
+ {{12797027410000619279ull, 1116699508436417861ull,
+ 219965847788163219ull, 2187250724783ull}},
+ {{13627451926225854826ull, 7602037531171104218ull,
+ 11112039613783363613ull, 437450144956ull}},
+ {{8808159778742158035ull, 15204075062342208437ull,
+ 3777335153857175610ull, 874900289913ull}},
+ {{17616319557484316070ull, 11961406050974865258ull,
+ 7554670307714351221ull, 1749800579826ull}},
+ {{3523263911496863214ull, 9770978839678793698ull,
+ 5200282876284780567ull, 349960115965ull}},
+ {{7046527822993726428ull, 1095213605648035780ull,
+ 10400565752569561135ull, 699920231930ull}},
+ {{14093055645987452856ull, 2190427211296071560ull,
+ 2354387431429570654ull, 1399840463861ull}},
+ {{9739367218265354095ull, 4380854422592143121ull,
+ 4708774862859141308ull, 2799680927722ull}},
+ {{5637222258394981143ull, 876170884518428624ull, 8320452602055648908ull,
+ 559936185544ull}},
+ {{11274444516789962285ull, 1752341769036857248ull,
+ 16640905204111297816ull, 1119872371088ull}}
+};
+
+static const BID_UINT256 bid_multipliers2_bid32[] = {
+ {{7156996302188685206ull, 14694123111064470433ull,
+ 3521238664523520994ull, 11704ull}},
+ {{14313992604377370412ull, 10941502148419389250ull,
+ 7042477329047041989ull, 23408ull}},
+ {{10181241135045189207ull, 3436260223129226885ull,
+ 14084954658094083979ull, 46816ull}},
+ {{1915738196380826798ull, 6872520446258453771ull,
+ 9723165242478616342ull, 93633ull}},
+ {{3831476392761653595ull, 13745040892516907542ull,
+ 999586411247681068ull, 187267ull}},
+ {{7662952785523307189ull, 9043337711324263468ull,
+ 1999172822495362137ull, 374534ull}},
+ {{15325905571046614378ull, 18086675422648526936ull,
+ 3998345644990724274ull, 749068ull}},
+ {{12205067068383677139ull, 17726606771587502257ull,
+ 7996691289981448549ull, 1498136ull}},
+ {{5963390063057802661ull, 17006469469465452899ull,
+ 15993382579962897099ull, 2996272ull}},
+ {{11926780126115605321ull, 15566194865221354182ull,
+ 13540021086216242583ull, 5992545ull}},
+ {{5406816178521659026ull, 12685645656733156749ull,
+ 8633298098722933551ull, 11985091ull}},
+ {{10813632357043318052ull, 6924547239756761882ull,
+ 17266596197445867103ull, 23970182ull}},
+ {{3180520640377084488ull, 13849094479513523765ull,
+ 16086448321182182590ull, 47940365ull}},
+ {{6361041280754168975ull, 9251444885317495914ull,
+ 13726152568654813565ull, 95880731ull}},
+ {{12722082561508337950ull, 56145696925440212ull, 9005561063600075515ull,
+ 191761463ull}},
+ {{6997421049307124283ull, 112291393850880425ull,
+ 18011122127200151030ull, 383522926ull}},
+ {{13994842098614248565ull, 224582787701760850ull,
+ 17575500180690750444ull, 767045853ull}},
+ {{9542940123518945513ull, 449165575403521701ull,
+ 16704256287671949272ull, 1534091707ull}},
+ {{639136173328339410ull, 898331150807043403ull, 14961768501634346928ull,
+ 3068183415ull}},
+ {{1278272346656678820ull, 1796662301614086806ull,
+ 11476792929559142240ull, 6136366831ull}},
+ {{2556544693313357639ull, 3593324603228173612ull,
+ 4506841785408732864ull, 12272733663ull}},
+ {{5113089386626715277ull, 7186649206456347224ull,
+ 9013683570817465728ull, 24545467326ull}},
+ {{10226178773253430554ull, 14373298412912694448ull,
+ 18027367141634931456ull, 49090934652ull}},
+ {{2005613472797309491ull, 10299852752115837281ull,
+ 17607990209560311297ull, 98181869305ull}},
+ {{4011226945594618982ull, 2152961430522122946ull,
+ 16769236345411070979ull, 196363738611ull}},
+ {{4491594203860834120ull, 430592286104424589ull, 7043196083824124519ull,
+ 39272747722ull}},
+ {{8983188407721668240ull, 861184572208849178ull,
+ 14086392167648249038ull, 78545495444ull}},
+ {{17966376815443336479ull, 1722369144417698356ull,
+ 9726040261586946460ull, 157090990889ull}},
+ {{17486009557177121341ull, 3444738288835396713ull,
+ 1005336449464341304ull, 314181981779ull}},
+ {{7186550726177334592ull, 11756994101992810312ull,
+ 14958462548860509553ull, 62836396355ull}},
+ {{14373101452354669183ull, 5067244130276069008ull,
+ 11470181024011467491ull, 125672792711ull}},
+ {{10299458830999786749ull, 10134488260552138017ull,
+ 4493617974313383366ull, 251345585423ull}},
+ {{5749240580941867673ull, 16784292911078068896ull,
+ 11966770039088407642ull, 50269117084ull}},
+ {{11498481161883735346ull, 15121841748446586176ull,
+ 5486796004467263669ull, 100538234169ull}},
+ {{4550218250057919076ull, 11796939423183620737ull,
+ 10973592008934527339ull, 201076468338ull}},
+ {{15667438908979225108ull, 9738085514120544793ull,
+ 13262764846012636437ull, 40215293667ull}},
+ {{12888133744248898600ull, 1029426954531537971ull,
+ 8078785618315721259ull, 80430587335ull}},
+ {{7329523414788245584ull, 2058853909063075943ull,
+ 16157571236631442518ull, 160861174670ull}},
+ {{14659046829576491168ull, 4117707818126151886ull,
+ 13868398399553333420ull, 321722349341ull}},
+ {{10310506995399118880ull, 4512890378367140700ull,
+ 6463028494652577007ull, 64344469868ull}},
+ {{2174269917088686144ull, 9025780756734281401ull,
+ 12926056989305154014ull, 128688939736ull}},
+ {{4348539834177372288ull, 18051561513468562802ull,
+ 7405369904900756412ull, 257377879473ull}},
+ {{8248405596319295104ull, 3610312302693712560ull,
+ 12549120425205882252ull, 51475575894ull}},
+ {{16496811192638590208ull, 7220624605387425120ull,
+ 6651496776702212888ull, 102951151789ull}},
+ {{14546878311567628800ull, 14441249210774850241ull,
+ 13302993553404425776ull, 205902303578ull}},
+ {{2909375662313525760ull, 17645645101122611341ull,
+ 13728645154906616124ull, 41180460715ull}},
+ {{5818751324627051520ull, 16844546128535671066ull,
+ 9010546236103680633ull, 82360921431ull}},
+ {{11637502649254103040ull, 15242348183361790516ull,
+ 18021092472207361267ull, 164721842862ull}},
+ {{2327500529850820608ull, 17805864895639999396ull,
+ 10982916123925292899ull, 32944368572ull}},
+ {{4655001059701641216ull, 17164985717570447176ull,
+ 3519088174141034183ull, 65888737145ull}},
+ {{9310002119403282432ull, 15883227361431342736ull,
+ 7038176348282068367ull, 131777474290ull}},
+ {{173260165097013248ull, 13319710649153133857ull,
+ 14076352696564136735ull, 263554948580ull}},
+ {{7413349662503223296ull, 2663942129830626771ull,
+ 2815270539312827347ull, 52710989716ull}},
+ {{14826699325006446592ull, 5327884259661253542ull,
+ 5630541078625654694ull, 105421979432ull}},
+ {{11206654576303341568ull, 10655768519322507085ull,
+ 11261082157251309388ull, 210843958864ull}},
+ {{9620028544744488960ull, 9509851333348322063ull,
+ 17009611690417903170ull, 42168791772ull}},
+ {{793313015779426304ull, 572958592987092511ull, 15572479307126254725ull,
+ 84337583545ull}},
+ {{1586626031558852608ull, 1145917185974185022ull,
+ 12698214540542957834ull, 168675167091ull}},
+ {{7696022835795591168ull, 229183437194837004ull, 6228991722850501890ull,
+ 33735033418ull}},
+ {{15392045671591182336ull, 458366874389674008ull,
+ 12457983445701003780ull, 67470066836ull}},
+ {{12337347269472813056ull, 916733748779348017ull,
+ 6469222817692455944ull, 134940133673ull}},
+ {{6227950465236074496ull, 1833467497558696035ull,
+ 12938445635384911888ull, 269880267346ull}},
+ {{16002985352014856192ull, 15124088758479380499ull,
+ 6277037941818892700ull, 53976053469ull}},
+ {{13559226630320160768ull, 11801433443249209383ull,
+ 12554075883637785401ull, 107952106938ull}},
+ {{8671709186930769920ull, 5156122812788867151ull,
+ 6661407693566019187ull, 215904213877ull}},
+ {{1734341837386153984ull, 15788619821525414723ull,
+ 8710979168197024483ull, 43180842775ull}},
+ {{3468683674772307968ull, 13130495569341277830ull,
+ 17421958336394048967ull, 86361685550ull}},
+ {{6937367349544615936ull, 7814247064973004044ull,
+ 16397172599078546319ull, 172723371101ull}},
+ {{16144868728876564480ull, 1562849412994600808ull,
+ 6968783334557619587ull, 34544674220ull}},
+ {{13842993384043577344ull, 3125698825989201617ull,
+ 13937566669115239174ull, 69089348440ull}},
+ {{9239242694377603072ull, 6251397651978403235ull,
+ 9428389264520926732ull, 138178696881ull}},
+ {{31741315045654528ull, 12502795303956806471ull, 410034455332301848ull,
+ 276357393763ull}},
+ {{7385045892492951552ull, 6189907875533271617ull,
+ 11150053335292191339ull, 55271478752ull}},
+ {{14770091784985903104ull, 12379815751066543234ull,
+ 3853362596874831062ull, 110542957505ull}},
+ {{11093439496262254592ull, 6312887428423534853ull,
+ 7706725193749662125ull, 221085915010ull}},
+ {{13286734343478181888ull, 1262577485684706970ull,
+ 1541345038749932425ull, 44217183002ull}},
+ {{8126724613246812160ull, 2525154971369413941ull,
+ 3082690077499864850ull, 88434366004ull}},
+ {{16253449226493624320ull, 5050309942738827882ull,
+ 6165380154999729700ull, 176868732008ull}},
+ {{3250689845298724864ull, 12078108432773496546ull,
+ 12301122475225676909ull, 35373746401ull}},
+ {{6501379690597449728ull, 5709472791837441476ull,
+ 6155500876741802203ull, 70747492803ull}},
+ {{13002759381194899456ull, 11418945583674882952ull,
+ 12311001753483604406ull, 141494985606ull}},
+ {{7558774688680247296ull, 4391147093640214289ull,
+ 6175259433257657197ull, 282989971213ull}},
+ {{16269150196703690752ull, 878229418728042857ull,
+ 12303098330877262409ull, 56597994242ull}},
+ {{14091556319697829888ull, 1756458837456085715ull,
+ 6159452588044973202ull, 113195988485ull}},
+ {{9736368565686108160ull, 3512917674912171431ull,
+ 12318905176089946404ull, 226391976970ull}},
+ {{1947273713137221632ull, 15459978793950075579ull,
+ 2463781035217989280ull, 45278395394ull}},
+ {{3894547426274443264ull, 12473213514190599542ull,
+ 4927562070435978561ull, 90556790788ull}},
+ {{7789094852548886528ull, 6499682954671647468ull,
+ 9855124140871957123ull, 181113581576ull}},
+ {{8936516599993597952ull, 16057331849901970786ull,
+ 5660373642916301747ull, 36222716315ull}},
+ {{17873033199987195904ull, 13667919626094389956ull,
+ 11320747285832603495ull, 72445432630ull}},
+ {{17299322326264840192ull, 8889095178479228297ull,
+ 4194750497955655375ull, 144890865261ull}},
+ {{16151900578820128768ull, 17778190356958456595ull,
+ 8389500995911310750ull, 289781730522ull}},
+ {{10609077745247846400ull, 10934335700875511965ull,
+ 9056597828666082796ull, 57956346104ull}},
+ {{2771411416786141184ull, 3421927328041472315ull,
+ 18113195657332165593ull, 115912692208ull}},
+ {{5542822833572282368ull, 6843854656082944630ull,
+ 17779647240954779570ull, 231825384417ull}},
+ {{8487262196198277120ull, 8747468560700409572ull,
+ 10934627077674776560ull, 46365076883ull}},
+ {{16974524392396554240ull, 17494937121400819144ull,
+ 3422510081640001504ull, 92730153767ull}},
+ {{15502304711083556864ull, 16543130169092086673ull,
+ 6845020163280003009ull, 185460307534ull}},
+ {{6789809756958621696ull, 14376672478044148304ull,
+ 16126399291623641894ull, 37092061506ull}},
+ {{13579619513917243392ull, 10306600882378744992ull,
+ 13806054509537732173ull, 74184123013ull}},
+ {{8712494954124935168ull, 2166457691047938369ull,
+ 9165364945365912731ull, 148368246027ull}},
+ {{17424989908249870336ull, 4332915382095876738ull,
+ 18330729890731825462ull, 296736492054ull}},
+ {{18242393240617615360ull, 4555931891161085670ull,
+ 18423541237114006385ull, 59347298410ull}},
+ {{18038042407525679104ull, 9111863782322171341ull,
+ 18400338400518461154ull, 118694596821ull}},
+ {{17629340741341806592ull, 18223727564644342683ull,
+ 18353932727327370692ull, 237389193643ull}},
+ {{14593914592494092288ull, 3644745512928868536ull,
+ 14738832989691205108ull, 47477838728ull}},
+ {{10741085111278632960ull, 7289491025857737073ull,
+ 11030921905672858600ull, 94955677457ull}},
+ {{3035426148847714304ull, 14578982051715474147ull,
+ 3615099737636165584ull, 189911354915ull}},
+ {{4296434044511453184ull, 17673191669310736122ull,
+ 723019947527233116ull, 37982270983ull}},
+ {{8592868089022906368ull, 16899639264911920628ull,
+ 1446039895054466233ull, 75964541966ull}},
+ {{17185736178045812736ull, 15352534456114289640ull,
+ 2892079790108932467ull, 151929083932ull}},
+ {{15924728282382073856ull, 12258324838519027665ull,
+ 5784159580217864935ull, 303858167864ull}},
+ {{17942340915444056064ull, 17209060226671446825ull,
+ 15914227175011214279ull, 60771633572ull}},
+ {{17437937757178560512ull, 15971376379633342035ull,
+ 13381710276312876943ull, 121543267145ull}},
+ {{16429131440647569408ull, 13496008685557132455ull,
+ 8316676478916202271ull, 243086534291ull}},
+ {{10664523917613334528ull, 10077899366595247137ull,
+ 5352684110525150777ull, 48617306858ull}},
+ {{2882303761517117440ull, 1709054659480942659ull,
+ 10705368221050301555ull, 97234613716ull}},
+ {{5764607523034234880ull, 3418109318961885318ull,
+ 2963992368391051494ull, 194469227433ull}},
+ {{1152921504606846976ull, 8062319493276197710ull,
+ 11660844917903941268ull, 38893845486ull}},
+ {{2305843009213693952ull, 16124638986552395420ull,
+ 4874945762098330920ull, 77787690973ull}},
+ {{4611686018427387904ull, 13802533899395239224ull,
+ 9749891524196661841ull, 155575381946ull}},
+ {{9223372036854775808ull, 9158323725080926832ull,
+ 1053038974683772067ull, 311150763893ull}},
+ {{9223372036854775808ull, 1831664745016185366ull,
+ 11278654239162485383ull, 62230152778ull}},
+ {{0ull, 3663329490032370733ull, 4110564404615419150ull,
+ 124460305557ull}},
+ {{0ull, 7326658980064741466ull, 8221128809230838300ull,
+ 248920611114ull}},
+ {{0ull, 16222727054980589586ull, 16401621020813808952ull,
+ 49784122222ull}},
+ {{0ull, 13998710036251627556ull, 14356497967918066289ull,
+ 99568244445ull}},
+ {{0ull, 9550675998793703496ull, 10266251862126580963ull,
+ 199136488891ull}},
+ {{0ull, 16667530458726381992ull, 5742599187167226515ull,
+ 39827297778ull}},
+ {{0ull, 14888316843743212368ull, 11485198374334453031ull,
+ 79654595556ull}},
+ {{0ull, 11329889613776873120ull, 4523652674959354447ull,
+ 159309191113ull}},
+ {{0ull, 4213035153844194624ull, 9047305349918708895ull,
+ 318618382226ull}},
+ {{0ull, 4531955845510749248ull, 5498809884725652102ull,
+ 63723676445ull}},
+ {{0ull, 9063911691021498496ull, 10997619769451304204ull,
+ 127447352890ull}},
+ {{0ull, 18127823382042996992ull, 3548495465193056792ull,
+ 254894705781ull}},
+ {{0ull, 14693611120634330368ull, 4399047907780521681ull,
+ 50978941156ull}},
+ {{0ull, 10940478167559109120ull, 8798095815561043363ull,
+ 101957882312ull}},
+ {{0ull, 3434212261408666624ull, 17596191631122086727ull,
+ 203915764624ull}},
+ {{0ull, 4376191267023643648ull, 18276633585192058638ull,
+ 40783152924ull}},
+ {{0ull, 8752382534047287296ull, 18106523096674565660ull,
+ 81566305849ull}},
+ {{0ull, 17504765068094574592ull, 17766302119639579704ull,
+ 163132611699ull}},
+ {{0ull, 16562786062479597568ull, 17085860165569607793ull,
+ 326265223399ull}},
+ {{0ull, 10691254841979740160ull, 18174567292081562851ull,
+ 65253044679ull}},
+ {{0ull, 2935765610249928704ull, 17902390510453574087ull,
+ 130506089359ull}},
+ {{0ull, 5871531220499857408ull, 17358036947197596558ull,
+ 261012178719ull}},
+ {{0ull, 8553003873583792128ull, 18229002648407160604ull,
+ 52202435743ull}},
+ {{0ull, 17106007747167584256ull, 18011261223104769592ull,
+ 104404871487ull}},
+ {{0ull, 15765271420625616896ull, 17575778372499987569ull,
+ 208809742975ull}},
+ {{0ull, 17910449543092764672ull, 3515155674499997513ull,
+ 41761948595ull}},
+ {{0ull, 17374155012475977728ull, 7030311348999995027ull,
+ 83523897190ull}},
+ {{0ull, 16301565951242403840ull, 14060622697999990055ull,
+ 167047794380ull}},
+ {{0ull, 3260313190248480768ull, 2812124539599998011ull,
+ 33409558876ull}},
+ {{0ull, 6520626380496961536ull, 5624249079199996022ull,
+ 66819117752ull}},
+ {{0ull, 13041252760993923072ull, 11248498158399992044ull,
+ 133638235504ull}},
+ {{0ull, 7635761448278294528ull, 4050252243090432473ull,
+ 267276471009ull}},
+ {{0ull, 8905849919139479552ull, 15567445707585727787ull,
+ 53455294201ull}},
+ {{0ull, 17811699838278959104ull, 12688147341461903958ull,
+ 106910588403ull}},
+ {{0ull, 17176655602848366592ull, 6929550609214256301ull,
+ 213821176807ull}},
+ {{0ull, 14503377564795404288ull, 8764607751326671906ull,
+ 42764235361ull}},
+ {{0ull, 10560011055881256960ull, 17529215502653343813ull,
+ 85528470722ull}},
+ {{0ull, 2673278038052962304ull, 16611686931597136011ull,
+ 171056941445ull}},
+ {{0ull, 4224004422352502784ull, 3322337386319427202ull,
+ 34211388289ull}},
+ {{0ull, 8448008844705005568ull, 6644674772638854404ull,
+ 68422776578ull}},
+ {{0ull, 16896017689410011136ull, 13289349545277708808ull,
+ 136845553156ull}},
+ {{0ull, 15345291305110470656ull, 8131955016845866001ull,
+ 273691106313ull}},
+ {{0ull, 17826453519989735424ull, 12694437447594904169ull,
+ 54738221262ull}},
+ {{0ull, 17206162966269919232ull, 6942130821480256723ull,
+ 109476442525ull}},
+ {{0ull, 15965581858830286848ull, 13884261642960513447ull,
+ 218952885050ull}},
+ {{0ull, 10571814001249878016ull, 2776852328592102689ull,
+ 43790577010ull}},
+ {{0ull, 2696883928790204416ull, 5553704657184205379ull,
+ 87581154020ull}},
+ {{0ull, 5393767857580408832ull, 11107409314368410758ull,
+ 175162308040ull}},
+ {{0ull, 12146800015741812736ull, 2221481862873682151ull,
+ 35032461608ull}},
+ {{0ull, 5846855957774073856ull, 4442963725747364303ull,
+ 70064923216ull}},
+ {{0ull, 11693711915548147712ull, 8885927451494728606ull,
+ 140129846432ull}},
+ {{0ull, 4940679757386743808ull, 17771854902989457213ull,
+ 280259692864ull}},
+ {{0ull, 8366833580961169408ull, 18311766239565532735ull,
+ 56051938572ull}},
+ {{0ull, 16733667161922338816ull, 18176788405421513854ull,
+ 112103877145ull}},
+ {{0ull, 15020590250135126016ull, 17906832737133476093ull,
+ 224207754291ull}},
+ {{0ull, 17761513308994666496ull, 7270715362168605541ull,
+ 44841550858ull}},
+ {{0ull, 17076282544279781376ull, 14541430724337211083ull,
+ 89683101716ull}},
+ {{0ull, 15705821014850011136ull, 10636117374964870551ull,
+ 179366203433ull}},
+ {{0ull, 17898559461937643520ull, 13195269919218705079ull,
+ 35873240686ull}},
+ {{0ull, 17350374850165735424ull, 7943795764727858543ull,
+ 71746481373ull}},
+ {{0ull, 16254005626621919232ull, 15887591529455717087ull,
+ 143492962746ull}},
+ {{0ull, 14061267179534286848ull, 13328438985201882559ull,
+ 286985925493ull}},
+ {{0ull, 10190951065390678016ull, 13733734241266107481ull,
+ 57397185098ull}},
+ {{0ull, 1935158057071804416ull, 9020724408822663347ull,
+ 114794370197ull}},
+ {{0ull, 3870316114143608832ull, 18041448817645326694ull,
+ 229588740394ull}},
+ {{0ull, 11842109667054452736ull, 18365685022496706631ull,
+ 45917748078ull}},
+ {{0ull, 5237475260399353856ull, 18284625971283861647ull,
+ 91835496157ull}},
+ {{0ull, 10474950520798707712ull, 18122507868858171678ull,
+ 183670992315ull}},
+ {{0ull, 13163036548385472512ull, 3624501573771634335ull,
+ 36734198463ull}},
+ {{0ull, 7879329023061393408ull, 7249003147543268671ull,
+ 73468396926ull}},
+ {{0ull, 15758658046122786816ull, 14498006295086537342ull,
+ 146936793852ull}},
+ {{0ull, 13070572018536022016ull, 10549268516463523069ull,
+ 293873587705ull}},
+ {{0ull, 17371509662674845696ull, 2109853703292704613ull,
+ 58774717541ull}},
+ {{0ull, 16296275251640139776ull, 4219707406585409227ull,
+ 117549435082ull}},
+ {{0ull, 14145806429570727936ull, 8439414813170818455ull,
+ 235098870164ull}},
+ {{0ull, 17586556544881786880ull, 16445278221601804983ull,
+ 47019774032ull}},
+ {{0ull, 16726369016054022144ull, 14443812369494058351ull,
+ 94039548065ull}},
+ {{0ull, 15005993958398492672ull, 10440880665278565087ull,
+ 188079096131ull}},
+ {{0ull, 14069245235905429504ull, 5777524947797623340ull,
+ 37615819226ull}},
+ {{0ull, 9691746398101307392ull, 11555049895595246681ull,
+ 75231638452ull}},
+ {{0ull, 936748722493063168ull, 4663355717480941747ull,
+ 150463276905ull}},
+ {{0ull, 1873497444986126336ull, 9326711434961883494ull,
+ 300926553810ull}},
+ {{0ull, 15132094747964866560ull, 1865342286992376698ull,
+ 60185310762ull}},
+ {{0ull, 11817445422220181504ull, 3730684573984753397ull,
+ 120370621524ull}},
+ {{0ull, 5188146770730811392ull, 7461369147969506795ull,
+ 240741243048ull}},
+ {{0ull, 12105675798371893248ull, 12560320273819632328ull,
+ 48148248609ull}},
+ {{0ull, 5764607523034234880ull, 6673896473929713041ull,
+ 96296497219ull}},
+ {{0ull, 11529215046068469760ull, 13347792947859426082ull,
+ 192592994438ull}},
+ {{0ull, 2305843009213693952ull, 13737605033797616186ull,
+ 38518598887ull}},
+ {{0ull, 4611686018427387904ull, 9028465993885680756ull,
+ 77037197775ull}},
+ {{0ull, 9223372036854775808ull, 18056931987771361512ull,
+ 154074395550ull}},
+ {{0ull, 0ull, 17667119901833171409ull, 308148791101ull}},
+ {{0ull, 0ull, 7222772795108544605ull, 61629758220ull}},
+ {{0ull, 0ull, 14445545590217089210ull, 123259516440ull}},
+ {{0ull, 0ull, 10444347106724626804ull, 246519032881ull}},
+ {{0ull, 0ull, 5778218236086835684ull, 49303806576ull}},
+ {{0ull, 0ull, 11556436472173671368ull, 98607613152ull}},
+ {{0ull, 0ull, 4666128870637791120ull, 197215226305ull}},
+ {{0ull, 0ull, 933225774127558224ull, 39443045261ull}},
+ {{0ull, 0ull, 1866451548255116448ull, 78886090522ull}},
+ {{0ull, 0ull, 3732903096510232896ull, 157772181044ull}},
+ {{0ull, 0ull, 7465806193020465792ull, 315544362088ull}},
+ {{0ull, 0ull, 12561207682829824128ull, 63108872417ull}},
+ {{0ull, 0ull, 6675671291950096640ull, 126217744835ull}},
+ {{0ull, 0ull, 13351342583900193280ull, 252435489670ull}},
+ {{0ull, 0ull, 2670268516780038656ull, 50487097934ull}},
+ {{0ull, 0ull, 5340537033560077312ull, 100974195868ull}},
+ {{0ull, 0ull, 10681074067120154624ull, 201948391736ull}},
+ {{0ull, 0ull, 5825563628165941248ull, 40389678347ull}},
+ {{0ull, 0ull, 11651127256331882496ull, 80779356694ull}},
+ {{0ull, 0ull, 4855510438954213376ull, 161558713389ull}},
+ {{0ull, 0ull, 9711020877908426752ull, 323117426778ull}},
+ {{0ull, 0ull, 13010250619807416320ull, 64623485355ull}},
+ {{0ull, 0ull, 7573757165905281024ull, 129246970711ull}},
+ {{0ull, 0ull, 15147514331810562048ull, 258493941422ull}},
+ {{0ull, 0ull, 10408200495845933056ull, 51698788284ull}},
+ {{0ull, 0ull, 2369656917982314496ull, 103397576569ull}},
+ {{0ull, 0ull, 4739313835964628992ull, 206795153138ull}},
+ {{0ull, 0ull, 12015909211418656768ull, 41359030627ull}},
+ {{0ull, 0ull, 5585074349127761920ull, 82718061255ull}},
+ {{0ull, 0ull, 11170148698255523840ull, 165436122510ull}},
+ {{0ull, 0ull, 2234029739651104768ull, 33087224502ull}},
+ {{0ull, 0ull, 4468059479302209536ull, 66174449004ull}},
+ {{0ull, 0ull, 8936118958604419072ull, 132348898008ull}},
+ {{0ull, 0ull, 17872237917208838144ull, 264697796016ull}},
+ {{0ull, 0ull, 7263796398183677952ull, 52939559203ull}},
+ {{0ull, 0ull, 14527592796367355904ull, 105879118406ull}},
+ {{0ull, 0ull, 10608441519025160192ull, 211758236813ull}},
+ {{0ull, 0ull, 13189734748030763008ull, 42351647362ull}},
+ {{0ull, 0ull, 7932725422351974400ull, 84703294725ull}},
+ {{0ull, 0ull, 15865450844703948800ull, 169406589450ull}},
+ {{0ull, 0ull, 3173090168940789760ull, 33881317890ull}},
+ {{0ull, 0ull, 6346180337881579520ull, 67762635780ull}},
+ {{0ull, 0ull, 12692360675763159040ull, 135525271560ull}},
+ {{0ull, 0ull, 6937977277816766464ull, 271050543121ull}},
+ {{0ull, 0ull, 5076944270305263616ull, 54210108624ull}},
+ {{0ull, 0ull, 10153888540610527232ull, 108420217248ull}},
+ {{0ull, 0ull, 1861033007511502848ull, 216840434497ull}},
+ {{0ull, 0ull, 7750904230986121216ull, 43368086899ull}},
+ {{0ull, 0ull, 15501808461972242432ull, 86736173798ull}},
+ {{0ull, 0ull, 12556872850234933248ull, 173472347597ull}},
+ {{0ull, 0ull, 9890072199530807296ull, 34694469519ull}},
+ {{0ull, 0ull, 1333400325352062976ull, 69388939039ull}},
+ {{0ull, 0ull, 2666800650704125952ull, 138777878078ull}},
+ {{0ull, 0ull, 5333601301408251904ull, 277555756156ull}},
+ {{0ull, 0ull, 4756069075023560704ull, 55511151231ull}},
+ {{0ull, 0ull, 9512138150047121408ull, 111022302462ull}},
+ {{0ull, 0ull, 577532226384691200ull, 222044604925ull}},
+ {{0ull, 0ull, 115506445276938240ull, 44408920985ull}},
+ {{0ull, 0ull, 231012890553876480ull, 88817841970ull}},
+ {{0ull, 0ull, 462025781107752960ull, 177635683940ull}},
+ {{0ull, 0ull, 92405156221550592ull, 35527136788ull}},
+ {{0ull, 0ull, 184810312443101184ull, 71054273576ull}},
+ {{0ull, 0ull, 369620624886202368ull, 142108547152ull}},
+ {{0ull, 0ull, 739241249772404736ull, 284217094304ull}},
+ {{0ull, 0ull, 14905243508922122240ull, 56843418860ull}},
+ {{0ull, 0ull, 11363742944134692864ull, 113686837721ull}},
+ {{0ull, 0ull, 4280741814559834112ull, 227373675443ull}},
+ {{0ull, 0ull, 11924194807137697792ull, 45474735088ull}},
+ {{0ull, 0ull, 5401645540565843968ull, 90949470177ull}},
+ {{0ull, 0ull, 10803291081131687936ull, 181898940354ull}},
+ {{0ull, 0ull, 16918053475193978880ull, 36379788070ull}},
+ {{0ull, 0ull, 15389362876678406144ull, 72759576141ull}},
+ {{0ull, 0ull, 12331981679647260672ull, 145519152283ull}},
+ {{0ull, 0ull, 6217219285584969728ull, 291038304567ull}},
+ {{0ull, 0ull, 8622141486600814592ull, 58207660913ull}},
+ {{0ull, 0ull, 17244282973201629184ull, 116415321826ull}},
+ {{0ull, 0ull, 16041821872693706752ull, 232830643653ull}},
+ {{0ull, 0ull, 14276410818764472320ull, 46566128730ull}},
+ {{0ull, 0ull, 10106077563819393024ull, 93132257461ull}},
+ {{0ull, 0ull, 1765411053929234432ull, 186264514923ull}},
+ {{0ull, 0ull, 11421128655011577856ull, 37252902984ull}},
+ {{0ull, 0ull, 4395513236313604096ull, 74505805969ull}},
+ {{0ull, 0ull, 8791026472627208192ull, 149011611938ull}},
+ {{0ull, 0ull, 17582052945254416384ull, 298023223876ull}},
+ {{0ull, 0ull, 7205759403792793600ull, 59604644775ull}},
+ {{0ull, 0ull, 14411518807585587200ull, 119209289550ull}},
+ {{0ull, 0ull, 10376293541461622784ull, 238418579101ull}},
+ {{0ull, 0ull, 5764607523034234880ull, 47683715820ull}},
+ {{0ull, 0ull, 11529215046068469760ull, 95367431640ull}},
+ {{0ull, 0ull, 4611686018427387904ull, 190734863281ull}},
+ {{0ull, 0ull, 4611686018427387904ull, 38146972656ull}},
+ {{0ull, 0ull, 9223372036854775808ull, 76293945312ull}},
+ {{0ull, 0ull, 0ull, 152587890625ull}},
+ {{0ull, 0ull, 0ull, 305175781250ull}},
+ {{0ull, 0ull, 0ull, 61035156250ull}},
+ {{0ull, 0ull, 0ull, 122070312500ull}},
+ {{0ull, 0ull, 0ull, 244140625000ull}},
+ {{0ull, 0ull, 0ull, 48828125000ull}},
+ {{0ull, 0ull, 0ull, 97656250000ull}},
+ {{0ull, 0ull, 0ull, 195312500000ull}},
+ {{0ull, 0ull, 0ull, 39062500000ull}},
+ {{0ull, 0ull, 0ull, 78125000000ull}},
+ {{0ull, 0ull, 0ull, 156250000000ull}},
+ {{0ull, 0ull, 0ull, 312500000000ull}},
+ {{0ull, 0ull, 0ull, 62500000000ull}},
+ {{0ull, 0ull, 0ull, 125000000000ull}},
+ {{0ull, 0ull, 0ull, 250000000000ull}},
+ {{0ull, 0ull, 0ull, 50000000000ull}},
+ {{0ull, 0ull, 0ull, 100000000000ull}},
+ {{0ull, 0ull, 0ull, 200000000000ull}},
+ {{0ull, 0ull, 0ull, 40000000000ull}},
+ {{0ull, 0ull, 0ull, 80000000000ull}},
+ {{0ull, 0ull, 0ull, 160000000000ull}},
+ {{0ull, 0ull, 0ull, 320000000000ull}},
+ {{0ull, 0ull, 0ull, 64000000000ull}},
+ {{0ull, 0ull, 0ull, 128000000000ull}},
+ {{0ull, 0ull, 0ull, 256000000000ull}},
+ {{0ull, 0ull, 0ull, 51200000000ull}},
+ {{0ull, 0ull, 0ull, 102400000000ull}},
+ {{0ull, 0ull, 0ull, 204800000000ull}},
+ {{0ull, 0ull, 0ull, 40960000000ull}},
+ {{0ull, 0ull, 0ull, 81920000000ull}},
+ {{0ull, 0ull, 0ull, 163840000000ull}},
+ {{0ull, 0ull, 0ull, 327680000000ull}},
+ {{0ull, 0ull, 0ull, 65536000000ull}},
+ {{0ull, 0ull, 0ull, 131072000000ull}},
+ {{0ull, 0ull, 0ull, 262144000000ull}},
+ {{0ull, 0ull, 0ull, 52428800000ull}},
+ {{0ull, 0ull, 0ull, 104857600000ull}},
+ {{0ull, 0ull, 0ull, 209715200000ull}},
+ {{0ull, 0ull, 0ull, 41943040000ull}},
+ {{0ull, 0ull, 0ull, 83886080000ull}},
+ {{0ull, 0ull, 0ull, 167772160000ull}},
+ {{0ull, 0ull, 0ull, 33554432000ull}},
+ {{0ull, 0ull, 0ull, 67108864000ull}},
+ {{0ull, 0ull, 0ull, 134217728000ull}},
+ {{0ull, 0ull, 0ull, 268435456000ull}},
+ {{0ull, 0ull, 0ull, 53687091200ull}},
+ {{0ull, 0ull, 0ull, 107374182400ull}},
+ {{0ull, 0ull, 0ull, 214748364800ull}},
+ {{0ull, 0ull, 0ull, 42949672960ull}},
+ {{0ull, 0ull, 0ull, 85899345920ull}},
+ {{0ull, 0ull, 0ull, 171798691840ull}},
+ {{0ull, 0ull, 0ull, 34359738368ull}},
+ {{0ull, 0ull, 0ull, 68719476736ull}},
+ {{0ull, 0ull, 0ull, 137438953472ull}},
+ {{0ull, 0ull, 0ull, 274877906944ull}},
+ {{14757395258967641293ull, 14757395258967641292ull,
+ 14757395258967641292ull, 54975581388ull}},
+ {{11068046444225730970ull, 11068046444225730969ull,
+ 11068046444225730969ull, 109951162777ull}},
+ {{3689348814741910324ull, 3689348814741910323ull,
+ 3689348814741910323ull, 219902325555ull}},
+ {{4427218577690292388ull, 11805916207174113034ull,
+ 737869762948382064ull, 43980465111ull}},
+ {{8854437155380584776ull, 5165088340638674452ull,
+ 1475739525896764129ull, 87960930222ull}},
+ {{17708874310761169552ull, 10330176681277348904ull,
+ 2951479051793528258ull, 175921860444ull}},
+ {{7231123676894144234ull, 9444732965739290427ull,
+ 15347691069326346944ull, 35184372088ull}},
+ {{14462247353788288467ull, 442721857769029238ull,
+ 12248638064943142273ull, 70368744177ull}},
+ {{10477750633867025318ull, 885443715538058477ull,
+ 6050532056176732930ull, 140737488355ull}},
+ {{2508757194024499020ull, 1770887431076116955ull,
+ 12101064112353465860ull, 281474976710ull}},
+ {{501751438804899804ull, 354177486215223391ull, 2420212822470693172ull,
+ 56294995342ull}},
+ {{1003502877609799608ull, 708354972430446782ull, 4840425644941386344ull,
+ 112589990684ull}},
+ {{2007005755219599216ull, 1416709944860893564ull,
+ 9680851289882772688ull, 225179981368ull}},
+ {{401401151043919844ull, 3972690803714089036ull,
+ 13004216702202285507ull, 45035996273ull}},
+ {{802802302087839687ull, 7945381607428178072ull, 7561689330695019398ull,
+ 90071992547ull}},
+ {{1605604604175679373ull, 15890763214856356144ull,
+ 15123378661390038796ull, 180143985094ull}},
+ {{15078516179802777168ull, 3178152642971271228ull,
+ 17782070991245649052ull, 36028797018ull}},
+ {{11710288285896002719ull, 6356305285942542457ull,
+ 17117397908781746488ull, 72057594037ull}},
+ {{4973832498082453822ull, 12712610571885084915ull,
+ 15788051743853941360ull, 144115188075ull}},
+ {{9947664996164907643ull, 6978477070060618214ull,
+ 13129359413998331105ull, 288230376151ull}},
+ {{1989532999232981529ull, 5085044228754033966ull,
+ 6315220697541576544ull, 57646075230ull}},
+ {{3979065998465963058ull, 10170088457508067932ull,
+ 12630441395083153088ull, 115292150460ull}},
+ {{7958131996931926115ull, 1893432841306584248ull,
+ 6814138716456754561ull, 230584300921ull}},
+ {{1591626399386385223ull, 7757384197745137496ull,
+ 5052176558033261235ull, 46116860184ull}},
+ {{3183252798772770446ull, 15514768395490274992ull,
+ 10104353116066522470ull, 92233720368ull}},
+ {{6366505597545540892ull, 12582792717270998368ull,
+ 1761962158423493325ull, 184467440737ull}},
+ {{1273301119509108179ull, 9895256172938020320ull,
+ 7731090061168519311ull, 36893488147ull}},
+ {{2546602239018216357ull, 1343768272166489024ull,
+ 15462180122337038623ull, 73786976294ull}},
+ {{5093204478036432714ull, 2687536544332978048ull,
+ 12477616170964525630ull, 147573952589ull}},
+ {{10186408956072865427ull, 5375073088665956096ull,
+ 6508488268219499644ull, 295147905179ull}},
+ {{16794677050182214379ull, 12143061061958922188ull,
+ 16059092912611541221ull, 59029581035ull}},
+ {{15142610026654877141ull, 5839378050208292761ull,
+ 13671441751513530827ull, 118059162071ull}},
+ {{11838475979600202665ull, 11678756100416585523ull,
+ 8896139429317510038ull, 236118324143ull}},
+ {{17125090454887681826ull, 6025100034825227427ull,
+ 12847274330089232977ull, 47223664828ull}},
+ {{15803436836065812036ull, 12050200069650454855ull,
+ 7247804586468914338ull, 94447329657ull}},
+ {{13160129598422072455ull, 5653656065591358095ull,
+ 14495609172937828677ull, 188894659314ull}},
+ {{6321374734426324815ull, 4820080027860181942ull,
+ 17656517093555207028ull, 37778931862ull}},
+ {{12642749468852649629ull, 9640160055720363884ull,
+ 16866290113400862440ull, 75557863725ull}},
+ {{6838754863995747641ull, 833576037731176153ull,
+ 15285836153092173265ull, 151115727451ull}},
+ {{13677509727991495281ull, 1667152075462352306ull,
+ 12124928232474794914ull, 302231454903ull}},
+ {{13803548389824030026ull, 7712128044576291107ull,
+ 13493032090720689952ull, 60446290980ull}},
+ {{9160352705938508436ull, 15424256089152582215ull,
+ 8539320107731828288ull, 120892581961ull}},
+ {{18320705411877016871ull, 12401768104595612814ull,
+ 17078640215463656577ull, 241785163922ull}},
+ {{14732187526601134344ull, 17237748879886763855ull,
+ 10794425672576551961ull, 48357032784ull}},
+ {{11017630979492717072ull, 16028753686063976095ull,
+ 3142107271443552307ull, 96714065569ull}},
+ {{3588517885275882528ull, 13610763298418400575ull,
+ 6284214542887104615ull, 193428131138ull}},
+ {{11785750021280907476ull, 13790199103909411084ull,
+ 12324889352803151892ull, 38685626227ull}},
+ {{5124755968852263335ull, 9133654134109270553ull,
+ 6203034631896752169ull, 77371252455ull}},
+ {{10249511937704526669ull, 18267308268218541106ull,
+ 12406069263793504338ull, 154742504910ull}},
+ {{2052279801699501721ull, 18087872462727530597ull,
+ 6365394453877457061ull, 309485009821ull}},
+ {{15167851219307541637ull, 10996272122029326765ull,
+ 4962427705517401735ull, 61897001964ull}},
+ {{11888958364905531658ull, 3545800170349101915ull,
+ 9924855411034803471ull, 123794003928ull}},
+ {{5331172656101511700ull, 7091600340698203831ull,
+ 1402966748360055326ull, 247588007857ull}},
+ {{15823629790187943633ull, 12486366512365371735ull,
+ 7659290979155831711ull, 49517601571ull}},
+ {{13200515506666335650ull, 6525988951021191855ull,
+ 15318581958311663423ull, 99035203142ull}},
+ {{7954286939623119683ull, 13051977902042383711ull,
+ 12190419842913775230ull, 198070406285ull}},
+ {{5280206202666534260ull, 2610395580408476742ull,
+ 2438083968582755046ull, 39614081257ull}},
+ {{10560412405333068520ull, 5220791160816953484ull,
+ 4876167937165510092ull, 79228162514ull}},
+ {{2674080736956585423ull, 10441582321633906969ull,
+ 9752335874331020184ull, 158456325028ull}},
+ {{5348161473913170846ull, 2436420569558262322ull,
+ 1057927674952488753ull, 316912650057ull}},
+ {{8448329924266454816ull, 487284113911652464ull, 7590283164474318397ull,
+ 63382530011ull}},
+ {{16896659848532909632ull, 974568227823304928ull,
+ 15180566328948636794ull, 126765060022ull}},
+ {{15346575623356267647ull, 1949136455646609857ull,
+ 11914388584187721972ull, 253530120045ull}},
+ {{17826710383638894823ull, 7768524920613142617ull,
+ 2382877716837544394ull, 50706024009ull}},
+ {{17206676693568238029ull, 15537049841226285235ull,
+ 4765755433675088788ull, 101412048018ull}},
+ {{15966609313426924441ull, 12627355608743018855ull,
+ 9531510867350177577ull, 202824096036ull}},
+ {{14261368306911115858ull, 13593517565974334740ull,
+ 5595650988211945838ull, 40564819207ull}},
+ {{10075992540112680100ull, 8740291058239117865ull,
+ 11191301976423891677ull, 81129638414ull}},
+ {{1705241006515808583ull, 17480582116478235731ull,
+ 3935859879138231738ull, 162259276829ull}},
+ {{3410482013031617166ull, 16514420159246919846ull,
+ 7871719758276463477ull, 324518553658ull}},
+ {{4371445217348233757ull, 3302884031849383969ull,
+ 12642390395881023665ull, 64903710731ull}},
+ {{8742890434696467513ull, 6605768063698767938ull,
+ 6838036718052495714ull, 129807421463ull}},
+ {{17485780869392935026ull, 13211536127397535876ull,
+ 13676073436104991428ull, 259614842926ull}},
+ {{3497156173878587006ull, 17399702484447148468ull,
+ 6424563501962908608ull, 51922968585ull}},
+ {{6994312347757174011ull, 16352660895184745320ull,
+ 12849127003925817217ull, 103845937170ull}},
+ {{13988624695514348021ull, 14258577716659939024ull,
+ 7251509934142082819ull, 207691874341ull}},
+ {{17555120198070510897ull, 2851715543331987804ull,
+ 5139650801570326887ull, 41538374868ull}},
+ {{16663496322431470178ull, 5703431086663975609ull,
+ 10279301603140653774ull, 83076749736ull}},
+ {{14880248571153388740ull, 11406862173327951219ull,
+ 2111859132571755932ull, 166153499473ull}},
+ {{17733444973198319041ull, 2281372434665590243ull,
+ 11490418270740082156ull, 33230699894ull}},
+ {{17020145872687086466ull, 4562744869331180487ull,
+ 4534092467770612696ull, 66461399789ull}},
+ {{15593547671664621315ull, 9125489738662360975ull,
+ 9068184935541225392ull, 132922799578ull}},
+ {{12740351269619691014ull, 18250979477324721951ull,
+ 18136369871082450784ull, 265845599156ull}},
+ {{6237419068665848526ull, 3650195895464944390ull,
+ 7316622788958400480ull, 53169119831ull}},
+ {{12474838137331697052ull, 7300391790929888780ull,
+ 14633245577916800960ull, 106338239662ull}},
+ {{6502932200953842488ull, 14600783581859777561ull,
+ 10819747082124050304ull, 212676479325ull}},
+ {{1300586440190768498ull, 17677551975339596805ull,
+ 2163949416424810060ull, 42535295865ull}},
+ {{2601172880381536995ull, 16908359876969641994ull,
+ 4327898832849620121ull, 85070591730ull}},
+ {{5202345760763073990ull, 15369975680229732372ull,
+ 8655797665699240243ull, 170141183460ull}},
+ {{1040469152152614798ull, 14142041580271677444ull,
+ 1731159533139848048ull, 34028236692ull}},
+ {{2080938304305229596ull, 9837339086833803272ull,
+ 3462319066279696097ull, 68056473384ull}},
+ {{4161876608610459192ull, 1227934099958054928ull,
+ 6924638132559392195ull, 136112946768ull}},
+ {{8323753217220918384ull, 2455868199916109856ull,
+ 13849276265118784390ull, 272225893536ull}},
+ {{9043448272928004324ull, 4180522454725132294ull,
+ 6459204067765667201ull, 54445178707ull}},
+ {{18086896545856008647ull, 8361044909450264588ull,
+ 12918408135531334402ull, 108890357414ull}},
+ {{17727049018002465677ull, 16722089818900529177ull,
+ 7390072197353117188ull, 217780714829ull}},
+ {{18302805062568134429ull, 10723115593263926481ull,
+ 16235409698438264730ull, 43556142965ull}},
+ {{18158866051426717241ull, 2999487112818301347ull,
+ 14024075323166977845ull, 87112285931ull}},
+ {{17870988029143882865ull, 5998974225636602695ull,
+ 9601406572624404074ull, 174224571863ull}},
+ {{10952895235312597220ull, 8578492474611141185ull,
+ 12988327758750611784ull, 34844914372ull}},
+ {{3459046396915642823ull, 17156984949222282371ull,
+ 7529911443791671952ull, 69689828745ull}},
+ {{6918092793831285646ull, 15867225824735013126ull,
+ 15059822887583343905ull, 139379657490ull}},
+ {{13836185587662571291ull, 13287707575760474636ull,
+ 11672901701457136195ull, 278759314981ull}},
+ {{10145934747016334905ull, 6346890329894005250ull,
+ 6023929155033337562ull, 55751862996ull}},
+ {{1845125420323118193ull, 12693780659788010501ull,
+ 12047858310066675124ull, 111503725992ull}},
+ {{3690250840646236386ull, 6940817245866469386ull,
+ 5648972546423798633ull, 223007451985ull}},
+ {{15495445427096888570ull, 12456209893399024846ull,
+ 1129794509284759726ull, 44601490397ull}},
+ {{12544146780484225524ull, 6465675713088498077ull,
+ 2259589018569519453ull, 89202980794ull}},
+ {{6641549487258899432ull, 12931351426176996155ull,
+ 4519178037139038906ull, 178405961588ull}},
+ {{16085705156419421180ull, 17343665544203040523ull,
+ 11971882051653538750ull, 35681192317ull}},
+ {{13724666239129290743ull, 16240587014696529431ull,
+ 5497020029597525885ull, 71362384635ull}},
+ {{9002588404549029869ull, 14034429955683507247ull,
+ 10994040059195051771ull, 142724769270ull}},
+ {{18005176809098059738ull, 9622115837657462878ull,
+ 3541336044680551927ull, 285449538541ull}},
+ {{7290384176561522271ull, 12992469611757223545ull,
+ 4397616023678020708ull, 57089907708ull}},
+ {{14580768353123044542ull, 7538195149804895474ull,
+ 8795232047356041417ull, 114179815416ull}},
+ {{10714792632536537467ull, 15076390299609790949ull,
+ 17590464094712082834ull, 228359630832ull}},
+ {{2142958526507307494ull, 6704626874663868513ull,
+ 10896790448426237213ull, 45671926166ull}},
+ {{4285917053014614987ull, 13409253749327737026ull,
+ 3346836823142922810ull, 91343852333ull}},
+ {{8571834106029229974ull, 8371763424945922436ull,
+ 6693673646285845621ull, 182687704666ull}},
+ {{12782413265431576965ull, 9053050314473005133ull,
+ 5028083543999079447ull, 36537540933ull}},
+ {{7118082457153602313ull, 18106100628946010267ull,
+ 10056167087998158894ull, 73075081866ull}},
+ {{14236164914307204626ull, 17765457184182468918ull,
+ 1665590102286766173ull, 146150163733ull}},
+ {{10025585754904857635ull, 17084170294655386221ull,
+ 3331180204573532347ull, 292300327466ull}},
+ {{16762512409948612820ull, 14484880503156808213ull,
+ 4355584855656616792ull, 58460065493ull}},
+ {{15078280746187674024ull, 10523016932604064811ull,
+ 8711169711313233585ull, 116920130986ull}},
+ {{11709817418665796431ull, 2599289791498578007ull,
+ 17422339422626467171ull, 233840261972ull}},
+ {{2341963483733159287ull, 11587904402525446571ull,
+ 10863165514009114080ull, 46768052394ull}},
+ {{4683926967466318573ull, 4729064731341341526ull,
+ 3279586954308676545ull, 93536104789ull}},
+ {{9367853934932637145ull, 9458129462682683052ull,
+ 6559173908617353090ull, 187072209578ull}},
+ {{1873570786986527429ull, 12959672336762267580ull,
+ 12379881225949201587ull, 37414441915ull}},
+ {{3747141573973054858ull, 7472600599814983544ull,
+ 6313018378188851559ull, 74828883831ull}},
+ {{7494283147946109716ull, 14945201199629967088ull,
+ 12626036756377703118ull, 149657767662ull}},
+ {{14988566295892219432ull, 11443658325550382560ull,
+ 6805329439045854621ull, 299315535325ull}},
+ {{6687062073920354210ull, 5978080479851986835ull,
+ 1361065887809170924ull, 59863107065ull}},
+ {{13374124147840708419ull, 11956160959703973670ull,
+ 2722131775618341848ull, 119726214130ull}},
+ {{8301504221971865222ull, 5465577845698395725ull,
+ 5444263551236683697ull, 239452428260ull}},
+ {{9038998473878193691ull, 8471813198623499791ull,
+ 1088852710247336739ull, 47890485652ull}},
+ {{18077996947756387382ull, 16943626397246999582ull,
+ 2177705420494673478ull, 95780971304ull}},
+ {{17709249821803223148ull, 15440508720784447549ull,
+ 4355410840989346957ull, 191561942608ull}},
+ {{18299245223328285923ull, 3088101744156889509ull,
+ 11939128612423600361ull, 38312388521ull}},
+ {{18151746372947020229ull, 6176203488313779019ull,
+ 5431513151137649106ull, 76624777043ull}},
+ {{17856748672184488841ull, 12352406976627558039ull,
+ 10863026302275298212ull, 153249554086ull}},
+ {{17266753270659426066ull, 6258069879545564463ull,
+ 3279308530841044809ull, 306499108173ull}},
+ {{3453350654131885214ull, 8630311605392933539ull,
+ 11723908150393939931ull, 61299821634ull}},
+ {{6906701308263770427ull, 17260623210785867078ull,
+ 5001072227078328246ull, 122599643269ull}},
+ {{13813402616527540853ull, 16074502347862182540ull,
+ 10002144454156656493ull, 245199286538ull}},
+ {{6452029338047418494ull, 6904249284314346831ull,
+ 13068475335057062268ull, 49039857307ull}},
+ {{12904058676094836988ull, 13808498568628693662ull,
+ 7690206596404572920ull, 98079714615ull}},
+ {{7361373278480122359ull, 9170253063547835709ull,
+ 15380413192809145841ull, 196159429230ull}},
+ {{1472274655696024472ull, 5523399427451477465ull,
+ 3076082638561829168ull, 39231885846ull}},
+ {{2944549311392048944ull, 11046798854902954930ull,
+ 6152165277123658336ull, 78463771692ull}},
+ {{5889098622784097888ull, 3646853636096358244ull,
+ 12304330554247316673ull, 156927543384ull}},
+ {{11778197245568195775ull, 7293707272192716488ull,
+ 6161917034785081730ull, 313855086769ull}},
+ {{9734337078597459802ull, 16216136713406184590ull,
+ 15989778665924657638ull, 62771017353ull}},
+ {{1021930083485367987ull, 13985529353102817565ull,
+ 13532813258139763661ull, 125542034707ull}},
+ {{2043860166970735973ull, 9524314632496083514ull,
+ 8618882442569975707ull, 251084069415ull}},
+ {{4098120848136057518ull, 9283560555983037349ull,
+ 1723776488513995141ull, 50216813883ull}},
+ {{8196241696272115036ull, 120377038256523082ull, 3447552977027990283ull,
+ 100433627766ull}},
+ {{16392483392544230072ull, 240754076513046164ull,
+ 6895105954055980566ull, 200867255532ull}},
+ {{10657194307992666661ull, 11116197259528340202ull,
+ 8757718820295016759ull, 40173451106ull}},
+ {{2867644542275781706ull, 3785650445347128789ull,
+ 17515437640590033519ull, 80346902212ull}},
+ {{5735289084551563411ull, 7571300890694257578ull,
+ 16584131207470515422ull, 160693804425ull}},
+ {{11470578169103126821ull, 15142601781388515156ull,
+ 14721518341231479228ull, 321387608851ull}},
+ {{2294115633820625365ull, 17785915615245344324ull,
+ 6633652482988206168ull, 64277521770ull}},
+ {{4588231267641250729ull, 17125087156781137032ull,
+ 13267304965976412337ull, 128555043540ull}},
+ {{9176462535282501457ull, 15803430239852722448ull,
+ 8087865858243273059ull, 257110087081ull}},
+ {{12903338951282231261ull, 3160686047970544489ull,
+ 5306921986390564935ull, 51422017416ull}},
+ {{7359933828854910906ull, 6321372095941088979ull,
+ 10613843972781129870ull, 102844034832ull}},
+ {{14719867657709821812ull, 12642744191882177958ull,
+ 2780943871852708124ull, 205688069665ull}},
+ {{10322671161025785009ull, 17285944097344076884ull,
+ 556188774370541624ull, 41137613933ull}},
+ {{2198598248342018402ull, 16125144120978602153ull,
+ 1112377548741083249ull, 82275227866ull}},
+ {{4397196496684036804ull, 13803544168247652690ull,
+ 2224755097482166499ull, 164550455732ull}},
+ {{4568788114078717684ull, 6450057648391440861ull,
+ 7823648648980253946ull, 32910091146ull}},
+ {{9137576228157435368ull, 12900115296782881722ull,
+ 15647297297960507892ull, 65820182292ull}},
+ {{18275152456314870736ull, 7353486519856211828ull,
+ 12847850522211464169ull, 131640364585ull}},
+ {{18103560838920189855ull, 14706973039712423657ull,
+ 7248956970713376722ull, 263280729171ull}},
+ {{3620712167784037971ull, 14009441052168215701ull,
+ 5139140208884585667ull, 52656145834ull}},
+ {{7241424335568075942ull, 9572138030626879786ull,
+ 10278280417769171335ull, 105312291668ull}},
+ {{14482848671136151884ull, 697531987544207956ull,
+ 2109816761828791055ull, 210624583337ull}},
+ {{13964616178452961347ull, 7518204026992662237ull,
+ 7800660981849578857ull, 42124916667ull}},
+ {{9482488283196371077ull, 15036408053985324475ull,
+ 15601321963699157714ull, 84249833334ull}},
+ {{518232492683190538ull, 11626072034261097335ull,
+ 12755899853688763813ull, 168499666669ull}},
+ {{7482344128020458754ull, 9703912036336040113ull,
+ 17308575229705394055ull, 33699933333ull}},
+ {{14964688256040917508ull, 961079998962528610ull,
+ 16170406385701236495ull, 67399866667ull}},
+ {{11482632438372283400ull, 1922159997925057221ull,
+ 13894068697692921374ull, 134799733335ull}},
+ {{4518520803035015183ull, 3844319995850114443ull,
+ 9341393321676291132ull, 269599466671ull}},
+ {{4593052975348913360ull, 11836910443395753858ull,
+ 5557627479077168549ull, 53919893334ull}},
+ {{9186105950697826720ull, 5227076813081956100ull,
+ 11115254958154337099ull, 107839786668ull}},
+ {{18372211901395653440ull, 10454153626163912200ull,
+ 3783765842599122582ull, 215679573337ull}},
+ {{18431837639246771981ull, 16848225984200423732ull,
+ 8135450798003645162ull, 43135914667ull}},
+ {{18416931204783992346ull, 15249707894691295849ull,
+ 16270901596007290325ull, 86271829334ull}},
+ {{18387118335858433075ull, 12052671715673040083ull,
+ 14095059118305029035ull, 172543658669ull}},
+ {{11056121296655507262ull, 17167929602102249309ull,
+ 17576407082628647099ull, 34508731733ull}},
+ {{3665498519601462907ull, 15889115130494947003ull,
+ 16706070091547742583ull, 69017463467ull}},
+ {{7330997039202925814ull, 13331486187280342390ull,
+ 14965396109385933551ull, 138034926935ull}},
+ {{14661994078405851627ull, 8216228300851133164ull,
+ 11484048145062315487ull, 276069853871ull}},
+ {{10311096445164990972ull, 12711292104395957602ull,
+ 5986158443754373420ull, 55213970774ull}},
+ {{2175448816620430328ull, 6975840135082363589ull,
+ 11972316887508746841ull, 110427941548ull}},
+ {{4350897633240860655ull, 13951680270164727178ull,
+ 5497889701307942066ull, 220855883097ull}},
+ {{4559528341390082455ull, 13858382498258676405ull,
+ 8478275569745409059ull, 44171176619ull}},
+ {{9119056682780164909ull, 9270020922807801194ull,
+ 16956551139490818119ull, 88342353238ull}},
+ {{18238113365560329817ull, 93297771906050772ull,
+ 15466358205272084623ull, 176684706477ull}},
+ {{11026320302595886610ull, 18659554381210154ull,
+ 10471969270538237571ull, 35336941295ull}},
+ {{3605896531482221604ull, 37319108762420309ull, 2497194467366923526ull,
+ 70673882591ull}},
+ {{7211793062964443207ull, 74638217524840618ull, 4994388934733847052ull,
+ 141347765182ull}},
+ {{14423586125928886414ull, 149276435049681236ull,
+ 9988777869467694104ull, 282695530364ull}},
+ {{17642112484153418576ull, 11097901731235667216ull,
+ 16755150832861180113ull, 56539106072ull}},
+ {{16837480894597285536ull, 3749059388761782817ull,
+ 15063557592012808611ull, 113078212145ull}},
+ {{15228217715485019455ull, 7498118777523565635ull,
+ 11680371110316065606ull, 226156424291ull}},
+ {{10424341172580824538ull, 8878321384988533773ull,
+ 6025423036805123444ull, 45231284858ull}},
+ {{2401938271452097459ull, 17756642769977067547ull,
+ 12050846073610246888ull, 90462569716ull}},
+ {{4803876542904194917ull, 17066541466244583478ull,
+ 5654948073510942161ull, 180925139433ull}},
+ {{8339472938064659630ull, 18170703552216557988ull,
+ 12199036058927919401ull, 36185027886ull}},
+ {{16678945876129319260ull, 17894663030723564360ull,
+ 5951328044146287187ull, 72370055773ull}},
+ {{14911147678549086904ull, 17342581987737577105ull,
+ 11902656088292574375ull, 144740111546ull}},
+ {{11375551283388622191ull, 16238419901765602595ull,
+ 5358568102875597135ull, 289480223093ull}},
+ {{13343156700903455408ull, 14315730424578851488ull,
+ 12139760064800850396ull, 57896044618ull}},
+ {{8239569328097359200ull, 10184716775448151361ull,
+ 5832776055892149177ull, 115792089237ull}},
+ {{16479138656194718399ull, 1922689477186751106ull,
+ 11665552111784298355ull, 231584178474ull}},
+ {{3295827731238943680ull, 15141933154404991514ull,
+ 17090505681324500963ull, 46316835694ull}},
+ {{6591655462477887360ull, 11837122235100431412ull,
+ 15734267288939450311ull, 92633671389ull}},
+ {{13183310924955774719ull, 5227500396491311208ull,
+ 13021790504169349007ull, 185267342779ull}},
+ {{17394057443958796237ull, 4734848894040172564ull,
+ 17361753359801511094ull, 37053468555ull}},
+ {{16341370814208040858ull, 9469697788080345129ull,
+ 16276762645893470572ull, 74106937111ull}},
+ {{14235997554706530099ull, 492651502451138643ull,
+ 14106781218077389529ull, 148213874223ull}},
+ {{10025251035703508581ull, 985303004902277287ull,
+ 9766818362445227442ull, 296427748447ull}},
+ {{5694399021882612040ull, 14954455859948096750ull,
+ 9332061301972866134ull, 59285549689ull}},
+ {{11388798043765224079ull, 11462167646186641884ull,
+ 217378530236180653ull, 118571099379ull}},
+ {{4330852013820896542ull, 4477591218663732153ull, 434757060472361307ull,
+ 237142198758ull}},
+ {{11934216846989910278ull, 895518243732746430ull,
+ 11154997856320203231ull, 47428439751ull}},
+ {{5421689620270268940ull, 1791036487465492861ull,
+ 3863251638930854846ull, 94856879503ull}},
+ {{10843379240540537880ull, 3582072974930985722ull,
+ 7726503277861709692ull, 189713759006ull}},
+ {{2168675848108107576ull, 11784461039211928114ull,
+ 5234649470314252261ull, 37942751801ull}},
+ {{4337351696216215152ull, 5122178004714304612ull,
+ 10469298940628504523ull, 75885503602ull}},
+ {{8674703392432430304ull, 10244356009428609224ull,
+ 2491853807547457430ull, 151771007205ull}},
+ {{17349406784864860608ull, 2041967945147666832ull,
+ 4983707615094914861ull, 303542014410ull}},
+ {{14537927801198703092ull, 4097742403771443689ull,
+ 996741523018982972ull, 60708402882ull}},
+ {{10629111528687854567ull, 8195484807542887379ull,
+ 1993483046037965944ull, 121416805764ull}},
+ {{2811478983666157517ull, 16390969615085774759ull,
+ 3986966092075931888ull, 242833611528ull}},
+ {{562295796733231504ull, 6967542737759065275ull,
+ 11865439662640917347ull, 48566722305ull}},
+ {{1124591593466463007ull, 13935085475518130550ull,
+ 5284135251572283078ull, 97133444611ull}},
+ {{2249183186932926013ull, 9423426877326709484ull,
+ 10568270503144566157ull, 194266889222ull}},
+ {{11517883081612316173ull, 16642080634432983189ull,
+ 9492351730112733877ull, 38853377844ull}},
+ {{4589022089515080729ull, 14837417195156414763ull,
+ 537959386515916139ull, 77706755689ull}},
+ {{9178044179030161457ull, 11228090316603277910ull,
+ 1075918773031832279ull, 155413511378ull}},
+ {{18356088358060322914ull, 4009436559497004204ull,
+ 2151837546063664559ull, 310827022756ull}},
+ {{18428612930579705876ull, 801887311899400840ull,
+ 4119716323954643235ull, 62165404551ull}},
+ {{18410481787449860135ull, 1603774623798801681ull,
+ 8239432647909286470ull, 124330809102ull}},
+ {{18374219501190168654ull, 3207549247597603363ull,
+ 16478865295818572940ull, 248661618204ull}},
+ {{11053541529721854378ull, 15398905108487161965ull,
+ 18053168318131355880ull, 49732323640ull}},
+ {{3660338985734157139ull, 12351066143264772315ull,
+ 17659592562553160145ull, 99464647281ull}},
+ {{7320677971468314277ull, 6255388212819993014ull,
+ 16872441051396768675ull, 198929294563ull}},
+ {{8842833223777483502ull, 12319124086789729572ull,
+ 14442534654505084704ull, 39785858912ull}},
+ {{17685666447554967004ull, 6191504099869907528ull,
+ 10438325235300617793ull, 79571717825ull}},
+ {{16924588821400382391ull, 12383008199739815057ull,
+ 2429906396891683970ull, 159143435651ull}},
+ {{15402433569091213166ull, 6319272325770078499ull,
+ 4859812793783367941ull, 318286871302ull}},
+ {{10459184343302063280ull, 12331900909379746669ull,
+ 8350660188240494234ull, 63657374260ull}},
+ {{2471624612894574944ull, 6217057745049941723ull,
+ 16701320376480988469ull, 127314748520ull}},
+ {{4943249225789149887ull, 12434115490099883446ull,
+ 14955896679252425322ull, 254629497041ull}},
+ {{15746045104125471271ull, 13554869542245707658ull,
+ 6680528150592395387ull, 50925899408ull}},
+ {{13045346134541390925ull, 8662995010781863701ull,
+ 13361056301184790775ull, 101851798816ull}},
+ {{7643948195373230233ull, 17325990021563727403ull,
+ 8275368528660029934ull, 203703597633ull}},
+ {{1528789639074646047ull, 10843895633796566127ull,
+ 12723120149957736956ull, 40740719526ull}},
+ {{3057579278149292093ull, 3241047193883580638ull,
+ 6999496226205922297ull, 81481439053ull}},
+ {{6115158556298584186ull, 6482094387767161276ull,
+ 13998992452411844594ull, 162962878106ull}},
+ {{12230317112597168372ull, 12964188775534322552ull,
+ 9551240831114137572ull, 325925756213ull}},
+ {{9824761052003254321ull, 2592837755106864510ull,
+ 12978294610448558484ull, 65185151242ull}},
+ {{1202778030296957026ull, 5185675510213729021ull,
+ 7509845147187565352ull, 130370302485ull}},
+ {{2405556060593914051ull, 10371351020427458042ull,
+ 15019690294375130704ull, 260740604970ull}},
+ {{4170460026860693134ull, 16831665463053132901ull,
+ 3003938058875026140ull, 52148120994ull}},
+ {{8340920053721386267ull, 15216586852396714186ull,
+ 6007876117750052281ull, 104296241988ull}},
+ {{16681840107442772534ull, 11986429631083876756ull,
+ 12015752235500104563ull, 208592483976ull}},
+ {{3336368021488554507ull, 17154681185184416644ull,
+ 6092499261841931235ull, 41718496795ull}},
+ {{6672736042977109014ull, 15862618296659281672ull,
+ 12184998523683862471ull, 83436993590ull}},
+ {{13345472085954218027ull, 13278492519609011728ull,
+ 5923252973658173327ull, 166873987181ull}},
+ {{6358443231932753929ull, 13723744948147533315ull,
+ 4873999409473544988ull, 33374797436ull}},
+ {{12716886463865507858ull, 9000745822585515014ull,
+ 9747998818947089977ull, 66749594872ull}},
+ {{6987028854021464099ull, 18001491645171030029ull,
+ 1049253564184628338ull, 133499189745ull}},
+ {{13974057708042928197ull, 17556239216632508442ull,
+ 2098507128369256677ull, 266998379490ull}},
+ {{17552206800576226933ull, 10889945472810322334ull,
+ 419701425673851335ull, 53399675898ull}},
+ {{16657669527442902249ull, 3333146871911093053ull,
+ 839402851347702671ull, 106799351796ull}},
+ {{14868594981176252881ull, 6666293743822186107ull,
+ 1678805702695405342ull, 213598703592ull}},
+ {{6663067810977160900ull, 16090654007732078514ull,
+ 7714458770022901714ull, 42719740718ull}},
+ {{13326135621954321799ull, 13734563941754605412ull,
+ 15428917540045803429ull, 85439481436ull}},
+ {{8205527170199091982ull, 9022383809799659209ull,
+ 12411091006382055243ull, 170878962873ull}},
+ {{1641105434039818397ull, 5493825576701842165ull,
+ 13550264645502142018ull, 34175792574ull}},
+ {{3282210868079636793ull, 10987651153403684330ull,
+ 8653785217294732420ull, 68351585149ull}},
+ {{6564421736159273585ull, 3528558233097817044ull,
+ 17307570434589464841ull, 136703170298ull}},
+ {{13128843472318547170ull, 7057116466195634088ull,
+ 16168396795469378066ull, 273406340597ull}},
+ {{6315117509205619758ull, 12479469737464857787ull,
+ 10612376988577696259ull, 54681268119ull}},
+ {{12630235018411239515ull, 6512195401220163958ull,
+ 2778009903445840903ull, 109362536239ull}},
+ {{6813725963112927413ull, 13024390802440327917ull,
+ 5556019806891681806ull, 218725072478ull}},
+ {{5052094007364495806ull, 17362273419455706876ull,
+ 12179250405604067330ull, 43745014495ull}},
+ {{10104188014728991612ull, 16277802765201862136ull,
+ 5911756737498583045ull, 87490028991ull}},
+ {{1761631955748431607ull, 14108861456694172657ull,
+ 11823513474997166091ull, 174980057982ull}},
+ {{352326391149686322ull, 13889818735564565501ull,
+ 9743400324483253864ull, 34996011596ull}},
+ {{704652782299372643ull, 9332893397419579386ull, 1040056575256956113ull,
+ 69992023193ull}},
+ {{1409305564598745286ull, 219042721129607156ull, 2080113150513912227ull,
+ 139984046386ull}},
+ {{2818611129197490572ull, 438085442259214312ull, 4160226301027824454ull,
+ 279968092772ull}},
+ {{11631768670065229084ull, 3776965903193753185ull,
+ 8210742889689385537ull, 55993618554ull}},
+ {{4816793266420906552ull, 7553931806387506371ull,
+ 16421485779378771074ull, 111987237108ull}}
+};
+
+static const BID_UINT256 bid_multipliers1_bid64[] = {
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{0ull, 0ull, 0ull, 0ull}},
+ {{11950291386221365447ull, 9908758460416160234ull,
+ 6069031768864303422ull, 2518694348665986494ull}},
+ {{5453838698733179278ull, 1370772847122768853ull,
+ 12138063537728606845ull, 5037388697331972988ull}},
+ {{10907677397466358555ull, 2741545694245537706ull,
+ 5829383001747662074ull, 10074777394663945977ull}},
+ {{9560233108977092358ull, 4237657953591017864ull,
+ 8544574229833353061ull, 2014955478932789195ull}},
+ {{673722144244633099ull, 8475315907182035729ull,
+ 17089148459666706122ull, 4029910957865578390ull}},
+ {{1347444288489266198ull, 16950631814364071458ull,
+ 15731552845623860628ull, 8059821915731156781ull}},
+ {{7648186487181673886ull, 18147521621840455584ull,
+ 6835659383866682448ull, 1611964383146231356ull}},
+ {{15296372974363347772ull, 17848299169971359552ull,
+ 13671318767733364897ull, 3223928766292462712ull}},
+ {{12146001875017143928ull, 17249854266233167489ull,
+ 8895893461757178179ull, 6447857532584925425ull}},
+ {{13497246819229159756ull, 18207366112214274790ull,
+ 1779178692351435635ull, 1289571506516985085ull}},
+ {{8547749564748767895ull, 17967988150718997965ull,
+ 3558357384702871271ull, 2579143013033970170ull}},
+ {{17095499129497535789ull, 17489232227728444314ull,
+ 7116714769405742543ull, 5158286026067940340ull}},
+ {{15744254185285519961ull, 16531720381747337013ull,
+ 14233429538811485087ull, 10316572052135880680ull}},
+ {{3148850837057103993ull, 10685041705833288049ull,
+ 2846685907762297017ull, 2063314410427176136ull}},
+ {{6297701674114207985ull, 2923339337957024482ull,
+ 5693371815524594035ull, 4126628820854352272ull}},
+ {{12595403348228415969ull, 5846678675914048964ull,
+ 11386743631049188070ull, 8253257641708704544ull}},
+ {{13587127113871414164ull, 15926730994150451085ull,
+ 17034743985177478906ull, 1650651528341740908ull}},
+ {{8727510154033276711ull, 13406717914591350555ull,
+ 15622743896645406197ull, 3301303056683481817ull}},
+ {{17455020308066553422ull, 8366691755473149494ull,
+ 12798743719581260779ull, 6602606113366963635ull}},
+ {{14559050505839041654ull, 16430733610062271191ull,
+ 2559748743916252155ull, 1320521222673392727ull}},
+ {{10671356937968531692ull, 14414723146414990767ull,
+ 5119497487832504311ull, 2641042445346785454ull}},
+ {{2895969802227511768ull, 10382702219120429919ull,
+ 10238994975665008623ull, 5282084890693570908ull}},
+ {{5791939604455023535ull, 2318660364531308222ull,
+ 2031245877620465631ull, 10564169781387141817ull}},
+ {{1158387920891004707ull, 11531778517131992614ull,
+ 7784946805007913772ull, 2112833956277428363ull}},
+ {{2316775841782009414ull, 4616812960554433612ull,
+ 15569893610015827545ull, 4225667912554856726ull}},
+ {{4633551683564018828ull, 9233625921108867224ull,
+ 12693043146322103474ull, 8451335825109713453ull}},
+ {{4616059151454714089ull, 9225422813705594091ull,
+ 13606655073490151664ull, 1690267165021942690ull}},
+ {{9232118302909428178ull, 4101553701636566ull, 8766566073270751713ull,
+ 3380534330043885381ull}},
+ {{17492532109304740ull, 8203107403273133ull, 17533132146541503426ull,
+ 6761068660087770762ull}},
+ {{3692847321163771272ull, 11069687065706385596ull,
+ 10885324058792121331ull, 1352213732017554152ull}},
+ {{7385694642327542543ull, 3692630057703219576ull,
+ 3323904043874691047ull, 2704427464035108305ull}},
+ {{14771389284655085085ull, 7385260115406439152ull,
+ 6647808087749382094ull, 5408854928070216610ull}},
+ {{11096034495600618553ull, 14770520230812878305ull,
+ 13295616175498764188ull, 10817709856140433220ull}},
+ {{13287253343345854681ull, 14022150490388306630ull,
+ 2659123235099752837ull, 2163541971228086644ull}},
+ {{8127762612982157745ull, 9597556907067061645ull,
+ 5318246470199505675ull, 4327083942456173288ull}},
+ {{16255525225964315489ull, 748369740424571674ull,
+ 10636492940399011351ull, 8654167884912346576ull}},
+ {{6940453859934773421ull, 7528371577568734981ull,
+ 5816647402821712593ull, 1730833576982469315ull}},
+ {{13880907719869546842ull, 15056743155137469962ull,
+ 11633294805643425186ull, 3461667153964938630ull}},
+ {{9315071366029542068ull, 11666742236565388309ull,
+ 4819845537577298757ull, 6923334307929877261ull}},
+ {{9241711902689729060ull, 13401394891538808631ull,
+ 4653317922257370074ull, 1384666861585975452ull}},
+ {{36679731669906504ull, 8356045709368065647ull, 9306635844514740149ull,
+ 2769333723171950904ull}},
+ {{73359463339813008ull, 16712091418736131294ull, 166527615319928682ull,
+ 5538667446343901809ull}},
+ {{146718926679626015ull, 14977438763762710972ull, 333055230639857365ull,
+ 11077334892687803618ull}},
+ {{29343785335925203ull, 14063534196978273164ull,
+ 11134657490353702442ull, 2215466978537560723ull}},
+ {{58687570671850406ull, 9680324320246994712ull, 3822570906997853269ull,
+ 4430933957075121447ull}},
+ {{117375141343700812ull, 913904566784437808ull, 7645141813995706539ull,
+ 8861867914150242894ull}},
+ {{3712823843010650486ull, 11250827357582618531ull,
+ 16286423621766782600ull, 1772373582830048578ull}},
+ {{7425647686021300972ull, 4054910641455685446ull,
+ 14126103169824013585ull, 3544747165660097157ull}},
+ {{14851295372042601943ull, 8109821282911370892ull,
+ 9805462265938475554ull, 7089494331320194315ull}},
+ {{6659607889150430712ull, 16379359515549915471ull,
+ 1961092453187695110ull, 1417898866264038863ull}},
+ {{13319215778300861424ull, 14311974957390279326ull,
+ 3922184906375390221ull, 2835797732528077726ull}},
+ {{8191687482892171231ull, 10177205841071007037ull,
+ 7844369812750780443ull, 5671595465056155452ull}},
+ {{16383374965784342462ull, 1907667608432462458ull,
+ 15688739625501560887ull, 11343190930112310904ull}},
+ {{18034070252124509786ull, 4070882336428402814ull,
+ 17895143184067953470ull, 2268638186022462180ull}},
+ {{17621396430539467955ull, 8141764672856805629ull,
+ 17343542294426355324ull, 4537276372044924361ull}},
+ {{16796048787369384293ull, 16283529345713611259ull,
+ 16240340515143159032ull, 9074552744089848723ull}},
+ {{18116605016441518152ull, 3256705869142722251ull,
+ 14316114547254362776ull, 1814910548817969744ull}},
+ {{17786465959173484687ull, 6513411738285444503ull,
+ 10185485020799173936ull, 3629821097635939489ull}},
+ {{17126187844637417758ull, 13026823476570889007ull,
+ 1924225967888796256ull, 7259642195271878979ull}},
+ {{10803935198411304198ull, 2605364695314177801ull,
+ 15142240452545400544ull, 1451928439054375795ull}},
+ {{3161126323113056780ull, 5210729390628355603ull,
+ 11837736831381249472ull, 2903856878108751591ull}},
+ {{6322252646226113560ull, 10421458781256711206ull,
+ 5228729589052947328ull, 5807713756217503183ull}},
+ {{12644505292452227119ull, 2396173488803870796ull,
+ 10457459178105894657ull, 11615427512435006366ull}},
+ {{17286296317458086717ull, 11547281141986505128ull,
+ 5780840650363089254ull, 2323085502487001273ull}},
+ {{16125848561206621817ull, 4647818210263458641ull,
+ 11561681300726178509ull, 4646171004974002546ull}},
+ {{13804953048703692018ull, 9295636420526917283ull,
+ 4676618527742805402ull, 9292342009948005093ull}},
+ {{13829037053966469374ull, 1859127284105383456ull,
+ 12003370149774292050ull, 1858468401989601018ull}},
+ {{9211330034223387131ull, 3718254568210766913ull,
+ 5559996225839032484ull, 3716936803979202037ull}},
+ {{18422660068446774261ull, 7436509136421533826ull,
+ 11119992451678064968ull, 7433873607958404074ull}},
+ {{14752578457915085822ull, 8865999456768127411ull,
+ 16981393749303254286ull, 1486774721591680814ull}},
+ {{11058412842120620028ull, 17731998913536254823ull,
+ 15516043424896956956ull, 2973549443183361629ull}},
+ {{3670081610531688440ull, 17017253753362958031ull,
+ 12585342776084362297ull, 5947098886366723259ull}},
+ {{7340163221063376879ull, 15587763433016364446ull,
+ 6723941478459172979ull, 11894197772733446519ull}},
+ {{16225427903180316669ull, 14185599130829003858ull,
+ 16102183554659475888ull, 2378839554546689303ull}},
+ {{14004111732651081721ull, 9924454187948456101ull,
+ 13757623035609400161ull, 4757679109093378607ull}},
+ {{9561479391592611826ull, 1402164302187360587ull,
+ 9068501997509248707ull, 9515358218186757215ull}},
+ {{16669691137286163658ull, 7659130489921292763ull,
+ 1813700399501849741ull, 1903071643637351443ull}},
+ {{14892638200862775700ull, 15318260979842585527ull,
+ 3627400799003699482ull, 3806143287274702886ull}},
+ {{11338532328015999784ull, 12189777885975619439ull,
+ 7254801598007398965ull, 7612286574549405772ull}},
+ {{5957055280345110280ull, 9816653206678944534ull,
+ 8829657949085300439ull, 1522457314909881154ull}},
+ {{11914110560690220560ull, 1186562339648337452ull,
+ 17659315898170600879ull, 3044914629819762308ull}},
+ {{5381477047670889504ull, 2373124679296674905ull,
+ 16871887722631650142ull, 6089829259639524617ull}},
+ {{10762954095341779008ull, 4746249358593349810ull,
+ 15297031371553748668ull, 12179658519279049235ull}},
+ {{13220637263294086772ull, 12017296315944400931ull,
+ 3059406274310749733ull, 2435931703855809847ull}},
+ {{7994530452878621927ull, 5587848558179250247ull,
+ 6118812548621499467ull, 4871863407711619694ull}},
+ {{15989060905757243853ull, 11175697116358500494ull,
+ 12237625097242998934ull, 9743726815423239388ull}},
+ {{6887160995893359094ull, 9613837052755520745ull,
+ 13515571463674330756ull, 1948745363084647877ull}},
+ {{13774321991786718188ull, 780930031801489874ull,
+ 8584398853639109897ull, 3897490726169295755ull}},
+ {{9101899909863884759ull, 1561860063602979749ull,
+ 17168797707278219794ull, 7794981452338591510ull}},
+ {{12888426426198507922ull, 15069767271688237242ull,
+ 3433759541455643958ull, 1558996290467718302ull}},
+ {{7330108778687464227ull, 11692790469666922869ull,
+ 6867519082911287917ull, 3117992580935436604ull}},
+ {{14660217557374928454ull, 4938836865624294122ull,
+ 13735038165822575835ull, 6235985161870873208ull}},
+ {{10873691041040305291ull, 9877673731248588245ull,
+ 9023332257935600054ull, 12471970323741746417ull}},
+ {{5864087022949971382ull, 5664883560991627972ull,
+ 9183364081070940657ull, 2494394064748349283ull}},
+ {{11728174045899942763ull, 11329767121983255944ull,
+ 18366728162141881314ull, 4988788129496698566ull}},
+ {{5009604018090333910ull, 4212790170256960273ull,
+ 18286712250574211013ull, 9977576258993397133ull}},
+ {{15759316062585708075ull, 4531906848793302377ull,
+ 14725388894340573172ull, 1995515251798679426ull}},
+ {{13071888051461864534ull, 9063813697586604755ull,
+ 11004033714971594728ull, 3991030503597358853ull}},
+ {{7697032029214177451ull, 18127627395173209511ull,
+ 3561323356233637840ull, 7982061007194717707ull}},
+ {{12607452850068566460ull, 11004223108518462548ull,
+ 8090962300730548214ull, 1596412201438943541ull}},
+ {{6768161626427581304ull, 3561702143327373481ull,
+ 16181924601461096429ull, 3192824402877887082ull}},
+ {{13536323252855162607ull, 7123404286654746962ull,
+ 13917105129212641242ull, 6385648805755774165ull}},
+ {{8625902432000773598ull, 14246808573309493925ull,
+ 9387466184715730868ull, 12771297611511548331ull}},
+ {{16482575745367796013ull, 17606756973629540077ull,
+ 5566842051685056496ull, 2554259522302309666ull}},
+ {{14518407417026040409ull, 16766769873549528539ull,
+ 11133684103370112993ull, 5108519044604619332ull}},
+ {{10590070760342529202ull, 15086795673389505463ull,
+ 3820624133030674371ull, 10217038089209238665ull}},
+ {{16875409411036147134ull, 6706707949419811415ull,
+ 764124826606134874ull, 2043407617841847733ull}},
+ {{15304074748362742651ull, 13413415898839622831ull,
+ 1528249653212269748ull, 4086815235683695466ull}},
+ {{12161405423015933685ull, 8380087723969694047ull,
+ 3056499306424539497ull, 8173630471367390932ull}},
+ {{6121629899345097061ull, 16433412803761580102ull,
+ 7989997490768728545ull, 1634726094273478186ull}},
+ {{12243259798690194121ull, 14420081533813608588ull,
+ 15979994981537457091ull, 3269452188546956372ull}},
+ {{6039775523670836625ull, 10393418993917665561ull,
+ 13513245889365362567ull, 6538904377093912745ull}},
+ {{12276001548959898295ull, 9457381428267353758ull,
+ 2702649177873072513ull, 1307780875418782549ull}},
+ {{6105259024210244973ull, 468018782825155901ull, 5405298355746145027ull,
+ 2615561750837565098ull}},
+ {{12210518048420489946ull, 936037565650311802ull,
+ 10810596711492290054ull, 5231123501675130196ull}},
+ {{5974292023131428276ull, 1872075131300623605ull,
+ 3174449349275028492ull, 10462247003350260393ull}},
+ {{1194858404626285656ull, 374415026260124721ull,
+ 11702936314080736668ull, 2092449400670052078ull}},
+ {{2389716809252571311ull, 748830052520249442ull, 4959128554451921720ull,
+ 4184898801340104157ull}},
+ {{4779433618505142621ull, 1497660105040498884ull,
+ 9918257108903843440ull, 8369797602680208314ull}},
+ {{12023933167926759494ull, 15056927279975741069ull,
+ 16741046680748409980ull, 1673959520536041662ull}},
+ {{5601122262143967372ull, 11667110486241930523ull,
+ 15035349287787268345ull, 3347919041072083325ull}},
+ {{11202244524287934743ull, 4887476898774309430ull,
+ 11623954501864985075ull, 6695838082144166651ull}},
+ {{5929797719599497272ull, 4666844194496772209ull,
+ 6014139715114907338ull, 1339167616428833330ull}},
+ {{11859595439198994544ull, 9333688388993544418ull,
+ 12028279430229814676ull, 2678335232857666660ull}},
+ {{5272446804688437472ull, 220632704277537221ull, 5609814786750077737ull,
+ 5356670465715333321ull}},
+ {{10544893609376874943ull, 441265408555074442ull,
+ 11219629573500155474ull, 10713340931430666642ull}},
+ {{13177025166101105959ull, 3777601896452925211ull,
+ 9622623544183851741ull, 2142668186286133328ull}},
+ {{7907306258492660301ull, 7555203792905850423ull, 798503014658151866ull,
+ 4285336372572266657ull}},
+ {{15814612516985320601ull, 15110407585811700846ull,
+ 1597006029316303732ull, 8570672745144533314ull}},
+ {{10541620132880884767ull, 6711430331904250492ull,
+ 15076796464830902039ull, 1714134549028906662ull}},
+ {{2636496192052217917ull, 13422860663808500985ull,
+ 11706848855952252462ull, 3428269098057813325ull}},
+ {{5272992384104435834ull, 8398977253907450354ull,
+ 4966953638194953309ull, 6856538196115626651ull}},
+ {{15811993735788528460ull, 1679795450781490070ull,
+ 4682739542380900985ull, 1371307639223125330ull}},
+ {{13177243397867505304ull, 3359590901562980141ull,
+ 9365479084761801970ull, 2742615278446250660ull}},
+ {{7907742722025458991ull, 6719181803125960283ull, 284214095814052324ull,
+ 5485230556892501321ull}},
+ {{15815485444050917981ull, 13438363606251920566ull,
+ 568428191628104648ull, 10970461113785002642ull}},
+ {{6852445903552093920ull, 2687672721250384113ull,
+ 7492383267809441576ull, 2194092222757000528ull}},
+ {{13704891807104187839ull, 5375345442500768226ull,
+ 14984766535618883152ull, 4388184445514001056ull}},
+ {{8963039540498824062ull, 10750690885001536453ull,
+ 11522788997528214688ull, 8776368891028002113ull}},
+ {{16550003167067406106ull, 5839486991742217613ull,
+ 13372604243731373907ull, 1755273778205600422ull}},
+ {{14653262260425260595ull, 11678973983484435227ull,
+ 8298464413753196198ull, 3510547556411200845ull}},
+ {{10859780447140969573ull, 4911203893259318839ull,
+ 16596928827506392397ull, 7021095112822401690ull}},
+ {{5861304904170104238ull, 8360938408135684414ull,
+ 3319385765501278479ull, 1404219022564480338ull}},
+ {{11722609808340208476ull, 16721876816271368828ull,
+ 6638771531002556958ull, 2808438045128960676ull}},
+ {{4998475542970865335ull, 14997009558833186041ull,
+ 13277543062005113917ull, 5616876090257921352ull}},
+ {{9996951085941730669ull, 11547275043956820466ull,
+ 8108342050300676219ull, 11233752180515842705ull}},
+ {{1999390217188346134ull, 17066850267759005386ull,
+ 1621668410060135243ull, 2246750436103168541ull}},
+ {{3998780434376692268ull, 15686956461808459156ull,
+ 3243336820120270487ull, 4493500872206337082ull}},
+ {{7997560868753384536ull, 12927168849907366696ull,
+ 6486673640240540975ull, 8987001744412674164ull}},
+ {{1599512173750676908ull, 17342829028949114632ull,
+ 16054729987015749487ull, 1797400348882534832ull}},
+ {{3199024347501353815ull, 16238913984188677648ull,
+ 13662715900321947359ull, 3594800697765069665ull}},
+ {{6398048695002707629ull, 14031083894667803680ull,
+ 8878687726934343103ull, 7189601395530139331ull}},
+ {{16037004997968182819ull, 17563612037901202028ull,
+ 5465086360128778943ull, 1437920279106027866ull}},
+ {{13627265922226814021ull, 16680480002092852441ull,
+ 10930172720257557887ull, 2875840558212055732ull}},
+ {{8807787770744076426ull, 14914215930476153267ull,
+ 3413601366805564159ull, 5751681116424111465ull}},
+ {{17615575541488152852ull, 11381687787242754918ull,
+ 6827202733611128319ull, 11503362232848222930ull}},
+ {{10901812737781451217ull, 17033732816416192276ull,
+ 1365440546722225663ull, 2300672446569644586ull}},
+ {{3356881401853350818ull, 15620721559122832937ull,
+ 2730881093444451327ull, 4601344893139289172ull}},
+ {{6713762803706701635ull, 12794699044536114258ull,
+ 5461762186888902655ull, 9202689786278578344ull}},
+ {{8721450190225160974ull, 17316335067874864144ull,
+ 15849747696345421823ull, 1840537957255715668ull}},
+ {{17442900380450321947ull, 16185926062040176672ull,
+ 13252751318981292031ull, 3681075914511431337ull}},
+ {{16439056687191092278ull, 13925108050370801729ull,
+ 8058758564253032447ull, 7362151829022862675ull}},
+ {{6977160152180128779ull, 10163719239557980992ull,
+ 1611751712850606489ull, 1472430365804572535ull}},
+ {{13954320304360257558ull, 1880694405406410368ull,
+ 3223503425701212979ull, 2944860731609145070ull}},
+ {{9461896535010963499ull, 3761388810812820737ull,
+ 6447006851402425958ull, 5889721463218290140ull}},
+ {{477048996312375382ull, 7522777621625641475ull,
+ 12894013702804851916ull, 11779442926436580280ull}},
+ {{3784758614004385400ull, 5193904339067038618ull,
+ 2578802740560970383ull, 2355888585287316056ull}},
+ {{7569517228008770799ull, 10387808678134077236ull,
+ 5157605481121940766ull, 4711777170574632112ull}},
+ {{15139034456017541598ull, 2328873282558602856ull,
+ 10315210962243881533ull, 9423554341149264224ull}},
+ {{14095853335429239290ull, 7844472285995541217ull,
+ 16820437451416417599ull, 1884710868229852844ull}},
+ {{9744962597148926963ull, 15688944571991082435ull,
+ 15194130829123283582ull, 3769421736459705689ull}},
+ {{1043181120588302309ull, 12931145070272613255ull,
+ 11941517584537015549ull, 7538843472919411379ull}},
+ {{11276682668343391432ull, 13654275458280253620ull,
+ 17145698775875044402ull, 1507768694583882275ull}},
+ {{4106621262977231247ull, 8861806842850955625ull,
+ 15844653478040537189ull, 3015537389167764551ull}},
+ {{8213242525954462494ull, 17723613685701911250ull,
+ 13242562882371522762ull, 6031074778335529103ull}},
+ {{16426485051908924987ull, 17000483297694270884ull,
+ 8038381691033493909ull, 12062149556671058207ull}},
+ {{3285297010381784998ull, 7089445474280764500ull,
+ 8986373967690519428ull, 2412429911334211641ull}},
+ {{6570594020763569995ull, 14178890948561529000ull,
+ 17972747935381038856ull, 4824859822668423282ull}},
+ {{13141188041527139990ull, 9911037823413506384ull,
+ 17498751797052526097ull, 9649719645336846565ull}},
+ {{6317586423047338322ull, 9360905194166521923ull,
+ 3499750359410505219ull, 1929943929067369313ull}},
+ {{12635172846094676643ull, 275066314623492230ull,
+ 6999500718821010439ull, 3859887858134738626ull}},
+ {{6823601618479801669ull, 550132629246984461ull,
+ 13999001437642020878ull, 7719775716269477252ull}},
+ {{5054069138437870657ull, 110026525849396892ull,
+ 10178497917012224822ull, 1543955143253895450ull}},
+ {{10108138276875741314ull, 220053051698793784ull,
+ 1910251760314898028ull, 3087910286507790901ull}},
+ {{1769532480041931012ull, 440106103397587569ull, 3820503520629796056ull,
+ 6175820573015581802ull}},
+ {{3539064960083862023ull, 880212206795175138ull, 7641007041259592112ull,
+ 12351641146031163604ull}},
+ {{15465208250984413698ull, 3865391256100945350ull,
+ 16285596667219559715ull, 2470328229206232720ull}},
+ {{12483672428259275779ull, 7730782512201890701ull,
+ 14124449260729567814ull, 4940656458412465441ull}},
+ {{6520600782808999942ull, 15461565024403781403ull,
+ 9802154447749584012ull, 9881312916824930883ull}},
+ {{12372166600787530958ull, 3092313004880756280ull,
+ 13028477333775647772ull, 1976262583364986176ull}},
+ {{6297589127865510300ull, 6184626009761512561ull,
+ 7610210593841743928ull, 3952525166729972353ull}},
+ {{12595178255731020600ull, 12369252019523025122ull,
+ 15220421187683487856ull, 7905050333459944706ull}},
+ {{17276430910113845413ull, 9852548033388425670ull,
+ 6733433052278607894ull, 1581010066691988941ull}},
+ {{16106117746518139210ull, 1258351993067299725ull,
+ 13466866104557215789ull, 3162020133383977882ull}},
+ {{13765491419326726803ull, 2516703986134599451ull,
+ 8486988135404879962ull, 6324040266767955765ull}},
+ {{9084238764943901990ull, 5033407972269198903ull,
+ 16973976270809759924ull, 12648080533535911530ull}},
+ {{9195545382472601045ull, 15764076853421481073ull,
+ 3394795254161951984ull, 2529616106707182306ull}},
+ {{18391090764945202089ull, 13081409633133410530ull,
+ 6789590508323903969ull, 5059232213414364612ull}},
+ {{18335437456180852562ull, 7716075192557269445ull,
+ 13579181016647807939ull, 10118464426828729224ull}},
+ {{14735133935461901482ull, 12611261482737184858ull,
+ 17473231462297202880ull, 2023692885365745844ull}},
+ {{11023523797214251348ull, 6775778891764818101ull,
+ 16499718850884854145ull, 4047385770731491689ull}},
+ {{3600303520718951080ull, 13551557783529636203ull,
+ 14552693628060156674ull, 8094771541462983379ull}},
+ {{4409409518885700540ull, 13778358000931658210ull,
+ 17667933984579672627ull, 1618954308292596675ull}},
+ {{8818819037771401079ull, 9109971928153764804ull,
+ 16889123895449793639ull, 3237908616585193351ull}},
+ {{17637638075542802157ull, 18219943856307529608ull,
+ 15331503717190035662ull, 6475817233170386703ull}},
+ {{14595574059334291401ull, 3643988771261505921ull,
+ 14134347187663738102ull, 1295163446634077340ull}},
+ {{10744404044959031186ull, 7287977542523011843ull,
+ 9821950301617924588ull, 2590326893268154681ull}},
+ {{3042064016208510756ull, 14575955085046023687ull,
+ 1197156529526297560ull, 5180653786536309363ull}},
+ {{6084128032417021512ull, 10705166096382495758ull,
+ 2394313059052595121ull, 10361307573072618726ull}},
+ {{1216825606483404303ull, 9519730848760319798ull,
+ 4168211426552429347ull, 2072261514614523745ull}},
+ {{2433651212966808605ull, 592717623811087980ull, 8336422853104858695ull,
+ 4144523029229047490ull}},
+ {{4867302425933617209ull, 1185435247622175960ull,
+ 16672845706209717390ull, 8289046058458094980ull}},
+ {{973460485186723442ull, 237087049524435192ull, 3334569141241943478ull,
+ 1657809211691618996ull}},
+ {{1946920970373446884ull, 474174099048870384ull, 6669138282483886956ull,
+ 3315618423383237992ull}},
+ {{3893841940746893768ull, 948348198097740768ull,
+ 13338276564967773912ull, 6631236846766475984ull}},
+ {{15536163647117020047ull, 3879018454361458476ull,
+ 17425050571961196075ull, 1326247369353295196ull}},
+ {{12625583220524488477ull, 7758036908722916953ull,
+ 16403357070212840534ull, 2652494738706590393ull}},
+ {{6804422367339425337ull, 15516073817445833907ull,
+ 14359970066716129452ull, 5304989477413180787ull}},
+ {{13608844734678850674ull, 12585403561182116198ull,
+ 10273196059722707289ull, 10609978954826361575ull}},
+ {{10100466576419590782ull, 17274475971204064532ull,
+ 2054639211944541457ull, 2121995790965272315ull}},
+ {{1754189079129629947ull, 16102207868698577449ull,
+ 4109278423889082915ull, 4243991581930544630ull}},
+ {{3508378158259259893ull, 13757671663687603282ull,
+ 8218556847778165831ull, 8487983163861089260ull}},
+ {{11769722075877582949ull, 6440883147479430979ull,
+ 1643711369555633166ull, 1697596632772217852ull}},
+ {{5092700078045614281ull, 12881766294958861959ull,
+ 3287422739111266332ull, 3395193265544435704ull}},
+ {{10185400156091228561ull, 7316788516208172302ull,
+ 6574845478222532665ull, 6790386531088871408ull}},
+ {{2037080031218245713ull, 12531404147467365430ull,
+ 12383015539870237502ull, 1358077306217774281ull}},
+ {{4074160062436491425ull, 6616064221225179244ull,
+ 6319287006030923389ull, 2716154612435548563ull}},
+ {{8148320124872982849ull, 13232128442450358488ull,
+ 12638574012061846778ull, 5432309224871097126ull}},
+ {{16296640249745965697ull, 8017512811191165360ull,
+ 6830403950414141941ull, 10864618449742194253ull}},
+ {{18016723308916834433ull, 16360897821205874364ull,
+ 12434127234308559357ull, 2172923689948438850ull}},
+ {{17586702544124117249ull, 14275051568702197113ull,
+ 6421510394907567099ull, 4345847379896877701ull}},
+ {{16726661014538682881ull, 10103359063694842611ull,
+ 12843020789815134199ull, 8691694759793755402ull}},
+ {{10724029832391557223ull, 5710020627480878845ull,
+ 9947301787446847486ull, 1738338951958751080ull}},
+ {{3001315591073562830ull, 11420041254961757691ull,
+ 1447859501184143356ull, 3476677903917502161ull}},
+ {{6002631182147125659ull, 4393338436213963766ull,
+ 2895719002368286713ull, 6953355807835004322ull}},
+ {{4889875051171335455ull, 878667687242792753ull, 7957841429957477989ull,
+ 1390671161567000864ull}},
+ {{9779750102342670910ull, 1757335374485585506ull,
+ 15915682859914955978ull, 2781342323134001728ull}},
+ {{1112756130975790204ull, 3514670748971171013ull,
+ 13384621646120360340ull, 5562684646268003457ull}},
+ {{2225512261951580407ull, 7029341497942342026ull,
+ 8322499218531169064ull, 11125369292536006915ull}},
+ {{445102452390316082ull, 16163263558556109698ull,
+ 1664499843706233812ull, 2225073858507201383ull}},
+ {{890204904780632163ull, 13879783043402667780ull,
+ 3328999687412467625ull, 4450147717014402766ull}},
+ {{1780409809561264326ull, 9312822013095783944ull,
+ 6657999374824935251ull, 8900295434028805532ull}},
+ {{7734779591396073512ull, 12930610846844887758ull,
+ 8710297504448807696ull, 1780059086805761106ull}},
+ {{15469559182792147023ull, 7414477619980223900ull,
+ 17420595008897615393ull, 3560118173611522212ull}},
+ {{12492374291874742430ull, 14828955239960447801ull,
+ 16394445944085679170ull, 7120236347223044425ull}},
+ {{6187823673116858810ull, 2965791047992089560ull,
+ 3278889188817135834ull, 1424047269444608885ull}},
+ {{12375647346233717619ull, 5931582095984179120ull,
+ 6557778377634271668ull, 2848094538889217770ull}},
+ {{6304550618757883621ull, 11863164191968358241ull,
+ 13115556755268543336ull, 5696189077778435540ull}},
+ {{12609101237515767242ull, 5279584310227164866ull,
+ 7784369436827535057ull, 11392378155556871081ull}},
+ {{17279215506470794742ull, 12123963306271163942ull,
+ 5246222702107417334ull, 2278475631111374216ull}},
+ {{16111686939232037867ull, 5801182538832776269ull,
+ 10492445404214834669ull, 4556951262222748432ull}},
+ {{13776629804754524117ull, 11602365077665552539ull,
+ 2538146734720117722ull, 9113902524445496865ull}},
+ {{6444674775692815147ull, 9699170645016931154ull, 507629346944023544ull,
+ 1822780504889099373ull}},
+ {{12889349551385630293ull, 951597216324310692ull,
+ 1015258693888047089ull, 3645561009778198746ull}},
+ {{7331955029061708970ull, 1903194432648621385ull,
+ 2030517387776094178ull, 7291122019556397492ull}},
+ {{1466391005812341794ull, 380638886529724277ull, 7784801107039039482ull,
+ 1458224403911279498ull}},
+ {{2932782011624683588ull, 761277773059448554ull,
+ 15569602214078078964ull, 2916448807822558996ull}},
+ {{5865564023249367176ull, 1522555546118897108ull,
+ 12692460354446606312ull, 5832897615645117993ull}},
+ {{11731128046498734352ull, 3045111092237794216ull,
+ 6938176635183661008ull, 11665795231290235987ull}},
+ {{6035574424041657194ull, 609022218447558843ull, 8766332956520552848ull,
+ 2333159046258047197ull}},
+ {{12071148848083314388ull, 1218044436895117686ull,
+ 17532665913041105696ull, 4666318092516094394ull}},
+ {{5695553622457077159ull, 2436088873790235373ull,
+ 16618587752372659776ull, 9332636185032188789ull}},
+ {{12207157168717146402ull, 487217774758047074ull,
+ 18081112809442173248ull, 1866527237006437757ull}},
+ {{5967570263724741187ull, 974435549516094149ull,
+ 17715481545174794880ull, 3733054474012875515ull}},
+ {{11935140527449482373ull, 1948871099032188298ull,
+ 16984219016640038144ull, 7466108948025751031ull}},
+ {{13455074549715627445ull, 389774219806437659ull,
+ 7086192618069917952ull, 1493221789605150206ull}},
+ {{8463405025721703273ull, 779548439612875319ull,
+ 14172385236139835904ull, 2986443579210300412ull}},
+ {{16926810051443406545ull, 1559096879225750638ull,
+ 9898026398570120192ull, 5972887158420600825ull}},
+ {{15406876029177261474ull, 3118193758451501277ull,
+ 1349308723430688768ull, 11945774316841201651ull}},
+ {{6770724020577362618ull, 15381034010657941548ull,
+ 3959210559428048076ull, 2389154863368240330ull}},
+ {{13541448041154725236ull, 12315323947606331480ull,
+ 7918421118856096153ull, 4778309726736480660ull}},
+ {{8636152008599898856ull, 6183903821503111345ull,
+ 15836842237712192307ull, 9556619453472961320ull}},
+ {{9105928031203800418ull, 8615478393784442915ull,
+ 3167368447542438461ull, 1911323890694592264ull}},
+ {{18211856062407600836ull, 17230956787568885830ull,
+ 6334736895084876922ull, 3822647781389184528ull}},
+ {{17976968051105650055ull, 16015169501428220045ull,
+ 12669473790169753845ull, 7645295562778369056ull}},
+ {{7284742424963040335ull, 6892382715027554332ull,
+ 6223243572775861092ull, 1529059112555673811ull}},
+ {{14569484849926080669ull, 13784765430055108664ull,
+ 12446487145551722184ull, 3058118225111347622ull}},
+ {{10692225626142609721ull, 9122786786400665713ull,
+ 6446230217393892753ull, 6116236450222695245ull}},
+ {{2937707178575667825ull, 18245573572801331427ull,
+ 12892460434787785506ull, 12232472900445390490ull}},
+ {{11655587879940864535ull, 7338463529302176608ull,
+ 2578492086957557101ull, 2446494580089078098ull}},
+ {{4864431686172177453ull, 14676927058604353217ull,
+ 5156984173915114202ull, 4892989160178156196ull}},
+ {{9728863372344354906ull, 10907110043499154818ull,
+ 10313968347830228405ull, 9785978320356312392ull}},
+ {{1945772674468870982ull, 9560119638183651610ull,
+ 9441491299049866327ull, 1957195664071262478ull}},
+ {{3891545348937741963ull, 673495202657751604ull, 436238524390181039ull,
+ 3914391328142524957ull}},
+ {{7783090697875483925ull, 1346990405315503208ull, 872477048780362078ull,
+ 7828782656285049914ull}},
+ {{1556618139575096785ull, 7648095710546921288ull,
+ 14931890668723713708ull, 1565756531257009982ull}},
+ {{3113236279150193570ull, 15296191421093842576ull,
+ 11417037263737875800ull, 3131513062514019965ull}},
+ {{6226472558300387140ull, 12145638768478133536ull,
+ 4387330453766199985ull, 6263026125028039931ull}},
+ {{12452945116600774280ull, 5844533463246715456ull,
+ 8774660907532399971ull, 12526052250056079862ull}},
+ {{17247984282287796149ull, 12236953136875074060ull,
+ 9133629810990300640ull, 2505210450011215972ull}},
+ {{16049224490866040682ull, 6027162200040596505ull,
+ 18267259621980601281ull, 5010420900022431944ull}},
+ {{13651704908022529747ull, 12054324400081193011ull,
+ 18087775170251650946ull, 10020841800044863889ull}},
+ {{6419689796346416273ull, 2410864880016238602ull,
+ 18374950293017971482ull, 2004168360008972777ull}},
+ {{12839379592692832546ull, 4821729760032477204ull,
+ 18303156512326391348ull, 4008336720017945555ull}},
+ {{7232015111676113475ull, 9643459520064954409ull,
+ 18159568950943231080ull, 8016673440035891111ull}},
+ {{1446403022335222695ull, 5618040718754901205ull,
+ 7321262604930556539ull, 1603334688007178222ull}},
+ {{2892806044670445390ull, 11236081437509802410ull,
+ 14642525209861113078ull, 3206669376014356444ull}},
+ {{5785612089340890780ull, 4025418801310053204ull,
+ 10838306346012674541ull, 6413338752028712889ull}},
+ {{15914517676835819449ull, 805083760262010640ull,
+ 16925056528170176201ull, 1282667750405742577ull}},
+ {{13382291279962087282ull, 1610167520524021281ull,
+ 15403368982630800786ull, 2565335500811485155ull}},
+ {{8317838486214622947ull, 3220335041048042563ull,
+ 12359993891552049956ull, 5130671001622970311ull}},
+ {{16635676972429245894ull, 6440670082096085126ull,
+ 6273243709394548296ull, 10261342003245940623ull}},
+ {{3327135394485849179ull, 16045529275386858318ull,
+ 12322695186104640628ull, 2052268400649188124ull}},
+ {{6654270788971698358ull, 13644314477064165020ull,
+ 6198646298499729641ull, 4104536801298376249ull}},
+ {{13308541577943396715ull, 8841884880418778424ull,
+ 12397292596999459283ull, 8209073602596752498ull}},
+ {{2661708315588679343ull, 5457725790825666008ull,
+ 13547504963625622826ull, 1641814720519350499ull}},
+ {{5323416631177358686ull, 10915451581651332016ull,
+ 8648265853541694036ull, 3283629441038700999ull}},
+ {{10646833262354717372ull, 3384159089593112416ull,
+ 17296531707083388073ull, 6567258882077401998ull}},
+ {{9508064281954764121ull, 4366180632660532806ull,
+ 14527352785642408584ull, 1313451776415480399ull}},
+ {{569384490199976626ull, 8732361265321065613ull,
+ 10607961497575265552ull, 2626903552830960799ull}},
+ {{1138768980399953251ull, 17464722530642131226ull,
+ 2769178921440979488ull, 5253807105661921599ull}},
+ {{2277537960799906502ull, 16482700987574710836ull,
+ 5538357842881958977ull, 10507614211323843198ull}},
+ {{4144856406901891624ull, 3296540197514942167ull,
+ 12175718012802122765ull, 2101522842264768639ull}},
+ {{8289712813803783248ull, 6593080395029884334ull,
+ 5904691951894693914ull, 4203045684529537279ull}},
+ {{16579425627607566495ull, 13186160790059768668ull,
+ 11809383903789387828ull, 8406091369059074558ull}},
+ {{18073280384489154592ull, 6326580972753864056ull,
+ 13429923224983608535ull, 1681218273811814911ull}},
+ {{17699816695268757568ull, 12653161945507728113ull,
+ 8413102376257665454ull, 3362436547623629823ull}},
+ {{16952889316827963519ull, 6859579817305904611ull,
+ 16826204752515330909ull, 6724873095247259646ull}},
+ {{7079926678107503027ull, 1371915963461180922ull,
+ 7054589765244976505ull, 1344974619049451929ull}},
+ {{14159853356215006054ull, 2743831926922361844ull,
+ 14109179530489953010ull, 2689949238098903858ull}},
+ {{9872962638720460492ull, 5487663853844723689ull,
+ 9771614987270354404ull, 5379898476197807717ull}},
+ {{1299181203731369368ull, 10975327707689447379ull,
+ 1096485900831157192ull, 10759796952395615435ull}},
+ {{3949185055488184197ull, 9573763171021710122ull, 219297180166231438ull,
+ 2151959390479123087ull}},
+ {{7898370110976368394ull, 700782268333868628ull, 438594360332462877ull,
+ 4303918780958246174ull}},
+ {{15796740221952736787ull, 1401564536667737256ull,
+ 877188720664925754ull, 8607837561916492348ull}},
+ {{14227394488616278327ull, 7659010536817368097ull,
+ 11243484188358716120ull, 1721567512383298469ull}},
+ {{10008044903523005038ull, 15318021073634736195ull,
+ 4040224303007880624ull, 3443135024766596939ull}},
+ {{1569345733336458460ull, 12189298073559920775ull,
+ 8080448606015761249ull, 6886270049533193878ull}},
+ {{7692566776151112339ull, 9816557244195804801ull,
+ 12684136165428883219ull, 1377254009906638775ull}},
+ {{15385133552302224677ull, 1186370414682057986ull,
+ 6921528257148214823ull, 2754508019813277551ull}},
+ {{12323523030894897738ull, 2372740829364115973ull,
+ 13843056514296429646ull, 5509016039626555102ull}},
+ {{6200301988080243859ull, 4745481658728231947ull,
+ 9239368954883307676ull, 11018032079253110205ull}},
+ {{12308106841841779742ull, 4638445146487556712ull,
+ 1847873790976661535ull, 2203606415850622041ull}},
+ {{6169469609974007867ull, 9276890292975113425ull,
+ 3695747581953323070ull, 4407212831701244082ull}},
+ {{12338939219948015734ull, 107036512240675234ull,
+ 7391495163906646141ull, 8814425663402488164ull}},
+ {{17225183102957244440ull, 21407302448135046ull,
+ 16235694291748970521ull, 1762885132680497632ull}},
+ {{16003622132204937264ull, 42814604896270093ull,
+ 14024644509788389426ull, 3525770265360995265ull}},
+ {{13560500190700322911ull, 85629209792540187ull, 9602544945867227236ull,
+ 7051540530721990531ull}},
+ {{17469495297107705875ull, 7395823471442328683ull,
+ 5609857803915355770ull, 1410308106144398106ull}},
+ {{16492246520505860134ull, 14791646942884657367ull,
+ 11219715607830711540ull, 2820616212288796212ull}},
+ {{14537748967302168652ull, 11136549812059763119ull,
+ 3992687141951871465ull, 5641232424577592425ull}},
+ {{10628753860894785687ull, 3826355550409974623ull,
+ 7985374283903742931ull, 11282464849155184850ull}},
+ {{16883146031146598431ull, 4454619924823905247ull,
+ 1597074856780748586ull, 2256492969831036970ull}},
+ {{15319547988583645245ull, 8909239849647810495ull,
+ 3194149713561497172ull, 4512985939662073940ull}},
+ {{12192351903457738873ull, 17818479699295620991ull,
+ 6388299427122994344ull, 9025971879324147880ull}},
+ {{2438470380691547775ull, 18321091198826765491ull,
+ 1277659885424598868ull, 1805194375864829576ull}},
+ {{4876940761383095549ull, 18195438323943979366ull,
+ 2555319770849197737ull, 3610388751729659152ull}},
+ {{9753881522766191098ull, 17944132574178407116ull,
+ 5110639541698395475ull, 7220777503459318304ull}},
+ {{1950776304553238220ull, 18346221773803322716ull,
+ 15779523167307320387ull, 1444155500691863660ull}},
+ {{3901552609106476440ull, 18245699473897093816ull,
+ 13112302260905089159ull, 2888311001383727321ull}},
+ {{7803105218212952879ull, 18044654874084636016ull,
+ 7777860448100626703ull, 5776622002767454643ull}},
+ {{15606210436425905757ull, 17642565674459720416ull,
+ 15555720896201253407ull, 11553244005534909286ull}},
+ {{17878637346252822445ull, 14596559579117675052ull,
+ 6800492993982161004ull, 2310648801106981857ull}},
+ {{17310530618796093273ull, 10746375084525798489ull,
+ 13600985987964322009ull, 4621297602213963714ull}},
+ {{16174317163882634929ull, 3046006095342045363ull,
+ 8755227902219092403ull, 9242595204427927429ull}},
+ {{3234863432776526986ull, 7987898848552229719ull,
+ 16508440839411459773ull, 1848519040885585485ull}},
+ {{6469726865553053972ull, 15975797697104459438ull,
+ 14570137605113367930ull, 3697038081771170971ull}},
+ {{12939453731106107943ull, 13504851320499367260ull,
+ 10693531136517184245ull, 7394076163542341943ull}},
+ {{13655937190446952559ull, 13769016708325604421ull,
+ 13206752671529167818ull, 1478815232708468388ull}},
+ {{8865130307184353501ull, 9091289342941657227ull,
+ 7966761269348784021ull, 2957630465416936777ull}},
+ {{17730260614368707001ull, 18182578685883314454ull,
+ 15933522538697568042ull, 5915260930833873554ull}},
+ {{17013777155027862386ull, 17918413298057077293ull,
+ 13420301003685584469ull, 11830521861667747109ull}},
+ {{7092104245747482801ull, 14651729103837146428ull,
+ 17441455459704758186ull, 2366104372333549421ull}},
+ {{14184208491494965601ull, 10856714133964741240ull,
+ 16436166845699964757ull, 4732208744667098843ull}},
+ {{9921672909280379586ull, 3266684194219930865ull,
+ 14425589617690377899ull, 9464417489334197687ull}},
+ {{5673683396597986241ull, 4342685653585896496ull,
+ 10263815553021896226ull, 1892883497866839537ull}},
+ {{11347366793195972481ull, 8685371307171792992ull,
+ 2080887032334240836ull, 3785766995733679075ull}},
+ {{4247989512682393345ull, 17370742614343585985ull,
+ 4161774064668481672ull, 7571533991467358150ull}},
+ {{8228295532020299316ull, 10852846152352537843ull,
+ 832354812933696334ull, 1514306798293471630ull}},
+ {{16456591064040598631ull, 3258948230995524070ull,
+ 1664709625867392669ull, 3028613596586943260ull}},
+ {{14466438054371645646ull, 6517896461991048141ull,
+ 3329419251734785338ull, 6057227193173886520ull}},
+ {{10486132035033739675ull, 13035792923982096283ull,
+ 6658838503469570676ull, 12114454386347773040ull}},
+ {{16854621665974389228ull, 6296507399538329579ull,
+ 1331767700693914135ull, 2422890877269554608ull}},
+ {{15262499258239226840ull, 12593014799076659159ull,
+ 2663535401387828270ull, 4845781754539109216ull}},
+ {{12078254442768902064ull, 6739285524443766703ull,
+ 5327070802775656541ull, 9691563509078218432ull}},
+ {{6104999703295690736ull, 12415903549114484310ull,
+ 8444111790038951954ull, 1938312701815643686ull}},
+ {{12209999406591381472ull, 6385063024519417004ull,
+ 16888223580077903909ull, 3876625403631287372ull}},
+ {{5973254739473211328ull, 12770126049038834009ull,
+ 15329703086446256202ull, 7753250807262574745ull}},
+ {{4883999762636552589ull, 9932722839291587448ull,
+ 3065940617289251240ull, 1550650161452514949ull}},
+ {{9767999525273105178ull, 1418701604873623280ull,
+ 6131881234578502481ull, 3101300322905029898ull}},
+ {{1089254976836658739ull, 2837403209747246561ull,
+ 12263762469157004962ull, 6202600645810059796ull}},
+ {{2178509953673317478ull, 5674806419494493122ull,
+ 6080780864604458308ull, 12405201291620119593ull}},
+ {{11503748434960394466ull, 4824310098640808947ull,
+ 12284202617146622631ull, 2481040258324023918ull}},
+ {{4560752796211237315ull, 9648620197281617895ull,
+ 6121661160583693646ull, 4962080516648047837ull}},
+ {{9121505592422474629ull, 850496320853684174ull,
+ 12243322321167387293ull, 9924161033296095674ull}},
+ {{5513649933226405249ull, 7548796893654557481ull,
+ 17206059723201118751ull, 1984832206659219134ull}},
+ {{11027299866452810498ull, 15097593787309114962ull,
+ 15965375372692685886ull, 3969664413318438269ull}},
+ {{3607855659196069380ull, 11748443500908678309ull,
+ 13484006671675820157ull, 7939328826636876539ull}},
+ {{721571131839213876ull, 6039037514923645985ull,
+ 17454196593302805324ull, 1587865765327375307ull}},
+ {{1443142263678427752ull, 12078075029847291970ull,
+ 16461649112896059032ull, 3175731530654750615ull}},
+ {{2886284527356855504ull, 5709405985985032324ull,
+ 14476554152082566449ull, 6351463061309501231ull}},
+ {{5772569054713711007ull, 11418811971970064648ull,
+ 10506364230455581282ull, 12702926122619002463ull}},
+ {{12222560255168473171ull, 2283762394394012929ull,
+ 13169319290316847226ull, 2540585224523800492ull}},
+ {{5998376436627394726ull, 4567524788788025859ull,
+ 7891894506924142836ull, 5081170449047600985ull}},
+ {{11996752873254789452ull, 9135049577576051718ull,
+ 15783789013848285672ull, 10162340898095201970ull}},
+ {{2399350574650957891ull, 9205707544999030990ull,
+ 3156757802769657134ull, 2032468179619040394ull}},
+ {{4798701149301915781ull, 18411415089998061980ull,
+ 6313515605539314268ull, 4064936359238080788ull}},
+ {{9597402298603831562ull, 18376086106286572344ull,
+ 12627031211078628537ull, 8129872718476161576ull}},
+ {{9298178089204586959ull, 14743263665483045438ull,
+ 6214755056957636030ull, 1625974543695232315ull}},
+ {{149612104699622302ull, 11039783257256539261ull,
+ 12429510113915272061ull, 3251949087390464630ull}},
+ {{299224209399244603ull, 3632822440803526906ull, 6412276154120992507ull,
+ 6503898174780929261ull}},
+ {{14817240100847490214ull, 11794610932386436350ull,
+ 4971804045566108824ull, 1300779634956185852ull}},
+ {{11187736127985428811ull, 5142477791063321085ull,
+ 9943608091132217649ull, 2601559269912371704ull}},
+ {{3928728182261306006ull, 10284955582126642171ull,
+ 1440472108554883682ull, 5203118539824743409ull}},
+ {{7857456364522612011ull, 2123167090543732726ull,
+ 2880944217109767365ull, 10406237079649486818ull}},
+ {{16328886531872163695ull, 11492679862334477514ull,
+ 11644235287647684442ull, 2081247415929897363ull}},
+ {{14211028990034775774ull, 4538615650959403413ull,
+ 4841726501585817269ull, 4162494831859794727ull}},
+ {{9975313906359999932ull, 9077231301918806827ull,
+ 9683453003171634538ull, 8324989663719589454ull}},
+ {{16752458040239641280ull, 9194143889867582011ull,
+ 16694085859601968200ull, 1664997932743917890ull}},
+ {{15058172006769730943ull, 18388287779735164023ull,
+ 14941427645494384784ull, 3329995865487835781ull}},
+ {{11669599939829910269ull, 18329831485760776431ull,
+ 11436111217279217953ull, 6659991730975671563ull}},
+ {{9712617617449802701ull, 7355315111894065609ull,
+ 13355268687681574560ull, 1331998346195134312ull}},
+ {{978491161190053785ull, 14710630223788131219ull,
+ 8263793301653597504ull, 2663996692390268625ull}},
+ {{1956982322380107569ull, 10974516373866710822ull,
+ 16527586603307195009ull, 5327993384780537250ull}},
+ {{3913964644760215138ull, 3502288674023870028ull,
+ 14608429132904838403ull, 10655986769561074501ull}},
+ {{8161490558435863674ull, 15457852993772415298ull,
+ 6611034641322878003ull, 2131197353912214900ull}},
+ {{16322981116871727348ull, 12468961913835278980ull,
+ 13222069282645756007ull, 4262394707824429800ull}},
+ {{14199218160033903080ull, 6491179753961006345ull,
+ 7997394491581960399ull, 8524789415648859601ull}},
+ {{2839843632006780616ull, 1298235950792201269ull,
+ 5288827713058302403ull, 1704957883129771920ull}},
+ {{5679687264013561232ull, 2596471901584402538ull,
+ 10577655426116604806ull, 3409915766259543840ull}},
+ {{11359374528027122464ull, 5192943803168805076ull,
+ 2708566778523657996ull, 6819831532519087681ull}},
+ {{13339921349831155463ull, 8417286390117581661ull,
+ 4231062170446641922ull, 1363966306503817536ull}},
+ {{8233098625952759309ull, 16834572780235163323ull,
+ 8462124340893283844ull, 2727932613007635072ull}},
+ {{16466197251905518618ull, 15222401486760775030ull,
+ 16924248681786567689ull, 5455865226015270144ull}},
+ {{14485650430101485619ull, 11998058899811998445ull,
+ 15401753289863583763ull, 10911730452030540289ull}},
+ {{10275827715504117771ull, 9778309409446220335ull,
+ 17837745916940358045ull, 2182346090406108057ull}},
+ {{2104911357298683925ull, 1109874745182889055ull,
+ 17228747760171164475ull, 4364692180812216115ull}},
+ {{4209822714597367849ull, 2219749490365778110ull,
+ 16010751446632777334ull, 8729384361624432231ull}},
+ {{841964542919473570ull, 443949898073155622ull, 6891499104068465790ull,
+ 1745876872324886446ull}},
+ {{1683929085838947140ull, 887899796146311244ull,
+ 13782998208136931580ull, 3491753744649772892ull}},
+ {{3367858171677894279ull, 1775799592292622488ull,
+ 9119252342564311544ull, 6983507489299545785ull}},
+ {{8052269263819399503ull, 15112555177426165790ull,
+ 1823850468512862308ull, 1396701497859909157ull}},
+ {{16104538527638799005ull, 11778366281142779964ull,
+ 3647700937025724617ull, 2793402995719818314ull}},
+ {{13762332981568046393ull, 5109988488576008313ull,
+ 7295401874051449235ull, 5586805991439636628ull}},
+ {{9077921889426541170ull, 10219976977152016627ull,
+ 14590803748102898470ull, 11173611982879273256ull}},
+ {{12883630822111039204ull, 5733344210172313648ull,
+ 6607509564362490017ull, 2234722396575854651ull}},
+ {{7320517570512526791ull, 11466688420344627297ull,
+ 13215019128724980034ull, 4469444793151709302ull}},
+ {{14641035141025053582ull, 4486632766979702978ull,
+ 7983294183740408453ull, 8938889586303418605ull}},
+ {{6617555842946921040ull, 11965372997621671565ull,
+ 1596658836748081690ull, 1787777917260683721ull}},
+ {{13235111685893842080ull, 5484001921533791514ull,
+ 3193317673496163381ull, 3575555834521367442ull}},
+ {{8023479298078132543ull, 10968003843067583029ull,
+ 6386635346992326762ull, 7151111669042734884ull}},
+ {{1604695859615626509ull, 5882949583355426929ull,
+ 16034722328366106645ull, 1430222333808546976ull}},
+ {{3209391719231253017ull, 11765899166710853858ull,
+ 13622700583022661674ull, 2860444667617093953ull}},
+ {{6418783438462506034ull, 5085054259712156100ull,
+ 8798657092335771733ull, 5720889335234187907ull}},
+ {{12837566876925012068ull, 10170108519424312200ull,
+ 17597314184671543466ull, 11441778670468375814ull}},
+ {{2567513375385002414ull, 2034021703884862440ull,
+ 18276858095901949986ull, 2288355734093675162ull}},
+ {{5135026750770004827ull, 4068043407769724880ull,
+ 18106972118094348356ull, 4576711468187350325ull}},
+ {{10270053501540009654ull, 8136086815539449760ull,
+ 17767200162479145096ull, 9153422936374700651ull}},
+ {{9432708329791822578ull, 9005914992591710598ull,
+ 7242788847237739342ull, 1830684587274940130ull}},
+ {{418672585874093539ull, 18011829985183421197ull,
+ 14485577694475478684ull, 3661369174549880260ull}},
+ {{837345171748187077ull, 17576915896657290778ull,
+ 10524411315241405753ull, 7322738349099760521ull}},
+ {{7546166663833458062ull, 18272778438299099448ull,
+ 5794231077790191473ull, 1464547669819952104ull}},
+ {{15092333327666916124ull, 18098812802888647280ull,
+ 11588462155580382947ull, 2929095339639904208ull}},
+ {{11737922581624280632ull, 17750881532067742945ull,
+ 4730180237451214279ull, 5858190679279808417ull}},
+ {{5029101089539009647ull, 17055018990425934275ull,
+ 9460360474902428559ull, 11716381358559616834ull}},
+ {{12073866662133532899ull, 14479050242310917824ull,
+ 16649467353948127004ull, 2343276271711923366ull}},
+ {{5700989250557514182ull, 10511356410912284033ull,
+ 14852190634186702393ull, 4686552543423846733ull}},
+ {{11401978501115028364ull, 2575968748115016450ull,
+ 11257637194663853171ull, 9373105086847693467ull}},
+ {{13348442144448736643ull, 11583240193848734259ull,
+ 9630225068416591280ull, 1874621017369538693ull}},
+ {{8250140215187921669ull, 4719736313987916903ull, 813706063123630945ull,
+ 3749242034739077387ull}},
+ {{16500280430375843337ull, 9439472627975833806ull,
+ 1627412126247261890ull, 7498484069478154774ull}},
+ {{3300056086075168668ull, 16645289784562808054ull,
+ 15082877684217093670ull, 1499696813895630954ull}},
+ {{6600112172150337335ull, 14843835495416064492ull,
+ 11719011294724635725ull, 2999393627791261909ull}},
+ {{13200224344300674670ull, 11240926917122577368ull,
+ 4991278515739719835ull, 5998787255582523819ull}},
+ {{7953704614891797724ull, 4035109760535603121ull,
+ 9982557031479439671ull, 11997574511165047638ull}},
+ {{1590740922978359545ull, 15564417211074761917ull,
+ 13064557850521618903ull, 2399514902233009527ull}},
+ {{3181481845956719090ull, 12682090348439972218ull,
+ 7682371627333686191ull, 4799029804466019055ull}},
+ {{6362963691913438179ull, 6917436623170392820ull,
+ 15364743254667372383ull, 9598059608932038110ull}},
+ {{12340639182608418606ull, 12451533768859809533ull,
+ 3072948650933474476ull, 1919611921786407622ull}},
+ {{6234534291507285595ull, 6456323464010067451ull,
+ 6145897301866948953ull, 3839223843572815244ull}},
+ {{12469068583014571190ull, 12912646928020134902ull,
+ 12291794603733897906ull, 7678447687145630488ull}},
+ {{6183162531344824562ull, 17339924644571668273ull,
+ 13526405364972510550ull, 1535689537429126097ull}},
+ {{12366325062689649123ull, 16233105215433784930ull,
+ 8606066656235469485ull, 3071379074858252195ull}},
+ {{6285906051669746629ull, 14019466357158018245ull,
+ 17212133312470938971ull, 6142758149716504390ull}},
+ {{12571812103339493257ull, 9592188640606484874ull,
+ 15977522551232326327ull, 12285516299433008781ull}},
+ {{9893060050151719298ull, 12986484172347027944ull,
+ 6884853324988375588ull, 2457103259886601756ull}},
+ {{1339376026593886980ull, 7526224270984504273ull,
+ 13769706649976751177ull, 4914206519773203512ull}},
+ {{2678752053187773959ull, 15052448541969008546ull,
+ 9092669226243950738ull, 9828413039546407025ull}},
+ {{15293145669605196085ull, 14078536152619532678ull,
+ 1818533845248790147ull, 1965682607909281405ull}},
+ {{12139547265500840554ull, 9710328231529513741ull,
+ 3637067690497580295ull, 3931365215818562810ull}},
+ {{5832350457292129491ull, 973912389349475867ull, 7274135380995160591ull,
+ 7862730431637125620ull}},
+ {{12234516535684156868ull, 3884131292611805496ull,
+ 1454827076199032118ull, 1572546086327425124ull}},
+ {{6022288997658762120ull, 7768262585223610993ull,
+ 2909654152398064236ull, 3145092172654850248ull}},
+ {{12044577995317524239ull, 15536525170447221986ull,
+ 5819308304796128472ull, 6290184345309700496ull}},
+ {{5642411916925496862ull, 12626306267184892357ull,
+ 11638616609592256945ull, 12580368690619400992ull}},
+ {{15885877642352740666ull, 9903958882920799117ull,
+ 9706420951402272035ull, 2516073738123880198ull}},
+ {{13325011210995929715ull, 1361173692132046619ull,
+ 966097829094992455ull, 5032147476247760397ull}},
+ {{8203278348282307813ull, 2722347384264093239ull,
+ 1932195658189984910ull, 10064294952495520794ull}},
+ {{12708702113882192533ull, 15301864735820459940ull,
+ 15143834390605638274ull, 2012858990499104158ull}},
+ {{6970660154054833449ull, 12156985397931368265ull,
+ 11840924707501724933ull, 4025717980998208317ull}},
+ {{13941320308109666897ull, 5867226722153184914ull,
+ 5235105341293898251ull, 8051435961996416635ull}},
+ {{2788264061621933380ull, 4862794159172547306ull,
+ 1047021068258779650ull, 1610287192399283327ull}},
+ {{5576528123243866759ull, 9725588318345094612ull,
+ 2094042136517559300ull, 3220574384798566654ull}},
+ {{11153056246487733517ull, 1004432562980637608ull,
+ 4188084273035118601ull, 6441148769597133308ull}},
+ {{9609308878781367350ull, 14958281771563768814ull,
+ 11905663298832754689ull, 1288229753919426661ull}},
+ {{771873683853183084ull, 11469819469417986013ull,
+ 5364582523955957763ull, 2576459507838853323ull}},
+ {{1543747367706366168ull, 4492894865126420410ull,
+ 10729165047911915527ull, 5152919015677706646ull}},
+ {{3087494735412732335ull, 8985789730252840820ull,
+ 3011586022114279438ull, 10305838031355413293ull}},
+ {{4306847761824456791ull, 5486506760792478487ull,
+ 11670363648648586857ull, 2061167606271082658ull}},
+ {{8613695523648913581ull, 10973013521584956974ull,
+ 4893983223587622098ull, 4122335212542165317ull}},
+ {{17227391047297827161ull, 3499282969460362332ull,
+ 9787966447175244197ull, 8244670425084330634ull}},
+ {{14513524653685296402ull, 4389205408633982789ull,
+ 16714988548402690132ull, 1648934085016866126ull}},
+ {{10580305233661041188ull, 8778410817267965579ull,
+ 14983233023095828648ull, 3297868170033732253ull}},
+ {{2713866393612530759ull, 17556821634535931159ull,
+ 11519721972482105680ull, 6595736340067464507ull}},
+ {{4232122093464416475ull, 10890061956391006878ull,
+ 9682642023980241782ull, 1319147268013492901ull}},
+ {{8464244186928832950ull, 3333379839072462140ull, 918539974250931949ull,
+ 2638294536026985803ull}},
+ {{16928488373857665900ull, 6666759678144924280ull,
+ 1837079948501863898ull, 5276589072053971606ull}},
+ {{15410232674005780184ull, 13333519356289848561ull,
+ 3674159897003727796ull, 10553178144107943212ull}},
+ {{17839441793768797330ull, 13734750315483700681ull,
+ 8113529608884566205ull, 2110635628821588642ull}},
+ {{17232139513828043043ull, 9022756557257849747ull,
+ 16227059217769132411ull, 4221271257643177284ull}},
+ {{16017534953946534470ull, 18045513114515699495ull,
+ 14007374361828713206ull, 8442542515286354569ull}},
+ {{3203506990789306894ull, 3609102622903139899ull,
+ 17558870131333383934ull, 1688508503057270913ull}},
+ {{6407013981578613788ull, 7218205245806279798ull,
+ 16670996188957216252ull, 3377017006114541827ull}},
+ {{12814027963157227576ull, 14436410491612559596ull,
+ 14895248304204880888ull, 6754034012229083655ull}},
+ {{17320200851599086808ull, 13955328542548242888ull,
+ 2979049660840976177ull, 1350806802445816731ull}},
+ {{16193657629488622000ull, 9463913011386934161ull,
+ 5958099321681952355ull, 2701613604891633462ull}},
+ {{13940571185267692384ull, 481081949064316707ull,
+ 11916198643363904711ull, 5403227209783266924ull}},
+ {{9434398296825833152ull, 962163898128633415ull, 5385653213018257806ull,
+ 10806454419566533849ull}},
+ {{1886879659365166631ull, 192432779625726683ull,
+ 15834525901571292854ull, 2161290883913306769ull}},
+ {{3773759318730333261ull, 384865559251453366ull,
+ 13222307729433034092ull, 4322581767826613539ull}},
+ {{7547518637460666522ull, 769731118502906732ull, 7997871385156516568ull,
+ 8645163535653227079ull}},
+ {{16266898986459774598ull, 7532643853184401992ull,
+ 16356969535998944606ull, 1729032707130645415ull}},
+ {{14087053899209997579ull, 15065287706368803985ull,
+ 14267194998288337596ull, 3458065414261290831ull}},
+ {{9727363724710443541ull, 11683831339028056355ull,
+ 10087645922867123577ull, 6916130828522581663ull}},
+ {{1945472744942088709ull, 2336766267805611271ull,
+ 13085575628799155685ull, 1383226165704516332ull}},
+ {{3890945489884177417ull, 4673532535611222542ull,
+ 7724407183888759754ull, 2766452331409032665ull}},
+ {{7781890979768354833ull, 9347065071222445084ull,
+ 15448814367777519508ull, 5532904662818065330ull}},
+ {{15563781959536709665ull, 247386068735338552ull,
+ 12450884661845487401ull, 11065809325636130661ull}},
+ {{17870151650874983226ull, 7428174843230888356ull,
+ 6179525747111007803ull, 2213161865127226132ull}},
+ {{17293559228040414836ull, 14856349686461776713ull,
+ 12359051494222015606ull, 4426323730254452264ull}},
+ {{16140374382371278055ull, 11265955299214001811ull,
+ 6271358914734479597ull, 8852647460508904529ull}},
+ {{10606772505958076258ull, 5942539874584710685ull,
+ 16011667041914537212ull, 1770529492101780905ull}},
+ {{2766800938206600899ull, 11885079749169421371ull,
+ 13576590010119522808ull, 3541058984203561811ull}},
+ {{5533601876413201798ull, 5323415424629291126ull,
+ 8706435946529494001ull, 7082117968407123623ull}},
+ {{1106720375282640360ull, 15822078343893499518ull,
+ 12809333633531629769ull, 1416423593681424724ull}},
+ {{2213440750565280719ull, 13197412614077447420ull,
+ 7171923193353707923ull, 2832847187362849449ull}},
+ {{4426881501130561438ull, 7948081154445343224ull,
+ 14343846386707415847ull, 5665694374725698898ull}},
+ {{8853763002261122876ull, 15896162308890686448ull,
+ 10240948699705280078ull, 11331388749451397797ull}},
+ {{12838799044677955545ull, 3179232461778137289ull,
+ 9426887369424876662ull, 2266277749890279559ull}},
+ {{7230854015646359474ull, 6358464923556274579ull, 407030665140201708ull,
+ 4532555499780559119ull}},
+ {{14461708031292718948ull, 12716929847112549158ull,
+ 814061330280403416ull, 9065110999561118238ull}},
+ {{10271039235742364436ull, 17300781228390151124ull,
+ 11230858710281811652ull, 1813022199912223647ull}},
+ {{2095334397775177256ull, 16154818383070750633ull,
+ 4014973346854071689ull, 3626044399824447295ull}},
+ {{4190668795550354512ull, 13862892692431949650ull,
+ 8029946693708143379ull, 7252088799648894590ull}},
+ {{15595529018077712196ull, 17529973797454031222ull,
+ 1605989338741628675ull, 1450417759929778918ull}},
+ {{12744313962445872775ull, 16613203521198510829ull,
+ 3211978677483257351ull, 2900835519859557836ull}},
+ {{7041883851182193933ull, 14779662968687470043ull,
+ 6423957354966514703ull, 5801671039719115672ull}},
+ {{14083767702364387865ull, 11112581863665388470ull,
+ 12847914709933029407ull, 11603342079438231344ull}},
+ {{6506102355214787897ull, 5911865187474988017ull,
+ 17326978200954247174ull, 2320668415887646268ull}},
+ {{13012204710429575793ull, 11823730374949976034ull,
+ 16207212328198942732ull, 4641336831775292537ull}},
+ {{7577665347149599969ull, 5200716676190400453ull,
+ 13967680582688333849ull, 9282673663550585075ull}},
+ {{8894230698913740641ull, 15797538594205721383ull,
+ 2793536116537666769ull, 1856534732710117015ull}},
+ {{17788461397827481281ull, 13148333114701891150ull,
+ 5587072233075333539ull, 3713069465420234030ull}},
+ {{17130178721945410945ull, 7849922155694230685ull,
+ 11174144466150667079ull, 7426138930840468060ull}},
+ {{18183431003356723482ull, 16327379690106487429ull,
+ 2234828893230133415ull, 1485227786168093612ull}},
+ {{17920117933003895348ull, 14208015306503423243ull,
+ 4469657786460266831ull, 2970455572336187224ull}},
+ {{17393491792298239079ull, 9969286539297294871ull,
+ 8939315572920533663ull, 5940911144672374448ull}},
+ {{16340239510886926542ull, 1491829004885038127ull,
+ 17878631145841067327ull, 11881822289344748896ull}},
+ {{3268047902177385309ull, 11366412245202738595ull,
+ 7265075043910123788ull, 2376364457868949779ull}},
+ {{6536095804354770617ull, 4286080416695925574ull,
+ 14530150087820247577ull, 4752728915737899558ull}},
+ {{13072191608709541233ull, 8572160833391851148ull,
+ 10613556101930943538ull, 9505457831475799117ull}},
+ {{13682484765967639217ull, 1714432166678370229ull,
+ 9501408849870009354ull, 1901091566295159823ull}},
+ {{8918225458225726817ull, 3428864333356740459ull, 556073626030467092ull,
+ 3802183132590319647ull}},
+ {{17836450916451453633ull, 6857728666713480918ull,
+ 1112147252060934184ull, 7604366265180639294ull}},
+ {{7256638998032201050ull, 12439592177568427153ull,
+ 14979824709379828129ull, 1520873253036127858ull}},
+ {{14513277996064402100ull, 6432440281427302690ull,
+ 11512905345050104643ull, 3041746506072255717ull}},
+ {{10579811918419252584ull, 12864880562854605381ull,
+ 4579066616390657670ull, 6083493012144511435ull}},
+ {{2712879763128953551ull, 7283017051999659147ull,
+ 9158133232781315341ull, 12166986024289022870ull}},
+ {{11610622396851521680ull, 5145952225141842152ull,
+ 1831626646556263068ull, 2433397204857804574ull}},
+ {{4774500719993491744ull, 10291904450283684305ull,
+ 3663253293112526136ull, 4866794409715609148ull}},
+ {{9549001439986983487ull, 2137064826857816994ull,
+ 7326506586225052273ull, 9733588819431218296ull}},
+ {{12977846732223127667ull, 15184808224339204691ull,
+ 5154650131986920777ull, 1946717763886243659ull}},
+ {{7508949390736703718ull, 11922872374968857767ull,
+ 10309300263973841555ull, 3893435527772487318ull}},
+ {{15017898781473407436ull, 5399000676228163918ull,
+ 2171856454238131495ull, 7786871055544974637ull}},
+ {{3003579756294681488ull, 8458497764729453430ull,
+ 7813068920331446945ull, 1557374211108994927ull}},
+ {{6007159512589362975ull, 16916995529458906860ull,
+ 15626137840662893890ull, 3114748422217989854ull}},
+ {{12014319025178725949ull, 15387246985208262104ull,
+ 12805531607616236165ull, 6229496844435979709ull}},
+ {{5581893976647900281ull, 12327749896706972593ull,
+ 7164319141522920715ull, 12458993688871959419ull}},
+ {{8495076424813400703ull, 17222945238309035811ull,
+ 16190259087272225435ull, 2491798737774391883ull}},
+ {{16990152849626801406ull, 15999146402908520006ull,
+ 13933774100834899255ull, 4983597475548783767ull}},
+ {{15533561625544051195ull, 13551548732107488397ull,
+ 9420804127960246895ull, 9967194951097567535ull}},
+ {{10485409954592630886ull, 2710309746421497679ull,
+ 1884160825592049379ull, 1993438990219513507ull}},
+ {{2524075835475710155ull, 5420619492842995359ull,
+ 3768321651184098758ull, 3986877980439027014ull}},
+ {{5048151670951420310ull, 10841238985685990718ull,
+ 7536643302368197516ull, 7973755960878054028ull}},
+ {{8388327963674104709ull, 16925643056104839436ull,
+ 12575375104699370472ull, 1594751192175610805ull}},
+ {{16776655927348209417ull, 15404542038500127256ull,
+ 6704006135689189329ull, 3189502384351221611ull}},
+ {{15106567780986867217ull, 12362340003290702897ull,
+ 13408012271378378659ull, 6379004768702443222ull}},
+ {{11766391488264182818ull, 6277935932871854179ull,
+ 8369280469047205703ull, 12758009537404886445ull}},
+ {{9731975927136657210ull, 12323633630800101805ull,
+ 1673856093809441140ull, 2551601907480977289ull}},
+ {{1017207780563762804ull, 6200523187890651995ull,
+ 3347712187618882281ull, 5103203814961954578ull}},
+ {{2034415561127525608ull, 12401046375781303990ull,
+ 6695424375237764562ull, 10206407629923909156ull}},
+ {{11474929556451236092ull, 13548255719381991767ull,
+ 5028433689789463235ull, 2041281525984781831ull}},
+ {{4503115039192920567ull, 8649767365054431919ull,
+ 10056867379578926471ull, 4082563051969563662ull}},
+ {{9006230078385841133ull, 17299534730108863838ull,
+ 1666990685448301326ull, 8165126103939127325ull}},
+ {{16558641274644809520ull, 7149255760763683090ull,
+ 333398137089660265ull, 1633025220787825465ull}},
+ {{14670538475580067423ull, 14298511521527366181ull,
+ 666796274179320530ull, 3266050441575650930ull}},
+ {{10894332877450583230ull, 10150278969345180747ull,
+ 1333592548358641061ull, 6532100883151301860ull}},
+ {{13246913019715847616ull, 5719404608610946472ull,
+ 266718509671728212ull, 1306420176630260372ull}},
+ {{8047081965722143615ull, 11438809217221892945ull,
+ 533437019343456424ull, 2612840353260520744ull}},
+ {{16094163931444287230ull, 4430874360734234274ull,
+ 1066874038686912849ull, 5225680706521041488ull}},
+ {{13741583789179022844ull, 8861748721468468549ull,
+ 2133748077373825698ull, 10451361413042082976ull}},
+ {{13816363202061535539ull, 16529745003261335002ull,
+ 4116098430216675462ull, 2090272282608416595ull}},
+ {{9185982330413519461ull, 14612745932813118389ull,
+ 8232196860433350925ull, 4180544565216833190ull}},
+ {{18371964660827038922ull, 10778747791916685162ull,
+ 16464393720866701851ull, 8361089130433666380ull}},
+ {{14742439376391138754ull, 5845098373125247355ull,
+ 3292878744173340370ull, 1672217826086733276ull}},
+ {{11038134679072725892ull, 11690196746250494711ull,
+ 6585757488346680740ull, 3344435652173466552ull}},
+ {{3629525284435900168ull, 4933649418791437807ull,
+ 13171514976693361481ull, 6688871304346933104ull}},
+ {{8104602686371000680ull, 986729883758287561ull,
+ 17391698254306313589ull, 1337774260869386620ull}},
+ {{16209205372742001360ull, 1973459767516575122ull,
+ 16336652434903075562ull, 2675548521738773241ull}},
+ {{13971666671774451104ull, 3946919535033150245ull,
+ 14226560796096599508ull, 5351097043477546483ull}},
+ {{9496589269839350592ull, 7893839070066300491ull,
+ 10006377518483647400ull, 10702194086955092967ull}},
+ {{12967364298193601088ull, 8957465443497080744ull,
+ 9379973133180550126ull, 2140438817391018593ull}},
+ {{7487984522677650560ull, 17914930886994161489ull,
+ 313202192651548636ull, 4280877634782037187ull}},
+ {{14975969045355301120ull, 17383117700278771362ull,
+ 626404385303097273ull, 8561755269564074374ull}},
+ {{17752589068038701517ull, 10855321169539574918ull,
+ 14882676136028260747ull, 1712351053912814874ull}},
+ {{17058434062367851418ull, 3263898265369598221ull,
+ 11318608198346969879ull, 3424702107825629749ull}},
+ {{15670124051026151219ull, 6527796530739196443ull,
+ 4190472322984388142ull, 6849404215651259499ull}},
+ {{17891420069172871537ull, 4994908120889749611ull,
+ 15595489723564518921ull, 1369880843130251899ull}},
+ {{17336096064636191458ull, 9989816241779499223ull,
+ 12744235373419486226ull, 2739761686260503799ull}},
+ {{16225448055562831299ull, 1532888409849446831ull,
+ 7041726673129420837ull, 5479523372521007599ull}},
+ {{14004152037416110981ull, 3065776819698893663ull,
+ 14083453346258841674ull, 10959046745042015198ull}},
+ {{2800830407483222197ull, 7991852993423599379ull,
+ 13884737113477499304ull, 2191809349008403039ull}},
+ {{5601660814966444393ull, 15983705986847198758ull,
+ 9322730153245446992ull, 4383618698016806079ull}},
+ {{11203321629932888785ull, 13520667899984845900ull,
+ 198716232781342369ull, 8767237396033612159ull}},
+ {{13308710770212308727ull, 13772180024222700149ull,
+ 14797138505523909766ull, 1753447479206722431ull}},
+ {{8170677466715065837ull, 9097615974735848683ull,
+ 11147532937338267917ull, 3506894958413444863ull}},
+ {{16341354933430131674ull, 18195231949471697366ull,
+ 3848321800966984218ull, 7013789916826889727ull}},
+ {{6957619801427936658ull, 3639046389894339473ull,
+ 8148361989677217490ull, 1402757983365377945ull}},
+ {{13915239602855873316ull, 7278092779788678946ull,
+ 16296723979354434980ull, 2805515966730755890ull}},
+ {{9383735132002195016ull, 14556185559577357893ull,
+ 14146703884999318344ull, 5611031933461511781ull}},
+ {{320726190294838416ull, 10665627045445164171ull,
+ 9846663696289085073ull, 11222063866923023563ull}},
+ {{7442842867542788330ull, 5822474223830943157ull,
+ 13037379183483547984ull, 2244412773384604712ull}},
+ {{14885685735085576660ull, 11644948447661886314ull,
+ 7628014293257544352ull, 4488825546769209425ull}},
+ {{11324627396461601703ull, 4843152821614221013ull,
+ 15256028586515088705ull, 8977651093538418850ull}},
+ {{13332971923518051311ull, 968630564322844202ull,
+ 3051205717303017741ull, 1795530218707683770ull}},
+ {{8219199773326551005ull, 1937261128645688405ull,
+ 6102411434606035482ull, 3591060437415367540ull}},
+ {{16438399546653102009ull, 3874522257291376810ull,
+ 12204822869212070964ull, 7182120874830735080ull}},
+ {{18045075168298261695ull, 15532299710425916654ull,
+ 2440964573842414192ull, 1436424174966147016ull}},
+ {{17643406262886971773ull, 12617855347142281693ull,
+ 4881929147684828385ull, 2872848349932294032ull}},
+ {{16840068452064391930ull, 6788966620575011771ull,
+ 9763858295369656771ull, 5745696699864588064ull}},
+ {{15233392830419232244ull, 13577933241150023543ull,
+ 1080972517029761926ull, 11491393399729176129ull}},
+ {{14114725010309577419ull, 2715586648230004708ull,
+ 14973589762373593678ull, 2298278679945835225ull}},
+ {{9782705946909603221ull, 5431173296460009417ull,
+ 11500435451037635740ull, 4596557359891670451ull}},
+ {{1118667820109654825ull, 10862346592920018835ull,
+ 4554126828365719864ull, 9193114719783340903ull}},
+ {{7602431193505751612ull, 9551166948067824413ull,
+ 11978871809898874942ull, 1838622943956668180ull}},
+ {{15204862387011503223ull, 655589822426097210ull,
+ 5510999546088198269ull, 3677245887913336361ull}},
+ {{11962980700313454830ull, 1311179644852194421ull,
+ 11021999092176396538ull, 7354491775826672722ull}},
+ {{6081944954804601290ull, 262235928970438884ull, 9583097447919099954ull,
+ 1470898355165334544ull}},
+ {{12163889909609202579ull, 524471857940877768ull, 719450822128648292ull,
+ 2941796710330669089ull}},
+ {{5881035745508853541ull, 1048943715881755537ull,
+ 1438901644257296584ull, 5883593420661338178ull}},
+ {{11762071491017707081ull, 2097887431763511074ull,
+ 2877803288514593168ull, 11767186841322676356ull}},
+ {{13420460742429272386ull, 15176972745320343507ull,
+ 4264909472444828956ull, 2353437368264535271ull}},
+ {{8394177411148993156ull, 11907201416931135399ull,
+ 8529818944889657913ull, 4706874736529070542ull}},
+ {{16788354822297986312ull, 5367658760152719182ull,
+ 17059637889779315827ull, 9413749473058141084ull}},
+ {{14425717408685328232ull, 4762880566772454159ull,
+ 18169322836923504458ull, 1882749894611628216ull}},
+ {{10404690743661104848ull, 9525761133544908319ull,
+ 17891901600137457300ull, 3765499789223256433ull}},
+ {{2362637413612658080ull, 604778193380265023ull,
+ 17337059126565362985ull, 7530999578446512867ull}},
+ {{472527482722531616ull, 7499653268159873651ull,
+ 10846109454796893243ull, 1506199915689302573ull}},
+ {{945054965445063232ull, 14999306536319747302ull,
+ 3245474835884234870ull, 3012399831378605147ull}},
+ {{1890109930890126464ull, 11551868998929942988ull,
+ 6490949671768469741ull, 6024799662757210294ull}},
+ {{3780219861780252927ull, 4656993924150334360ull,
+ 12981899343536939483ull, 12049599325514420588ull}},
+ {{4445392787097960909ull, 4620747599571977195ull,
+ 13664426312933118866ull, 2409919865102884117ull}},
+ {{8890785574195921818ull, 9241495199143954390ull,
+ 8882108552156686116ull, 4819839730205768235ull}},
+ {{17781571148391843635ull, 36246324578357164ull,
+ 17764217104313372233ull, 9639679460411536470ull}},
+ {{10935011859162189374ull, 11075295709141402402ull,
+ 3552843420862674446ull, 1927935892082307294ull}},
+ {{3423279644614827131ull, 3703847344573253189ull,
+ 7105686841725348893ull, 3855871784164614588ull}},
+ {{6846559289229654262ull, 7407694689146506378ull,
+ 14211373683450697786ull, 7711743568329229176ull}},
+ {{1369311857845930853ull, 8860236567313121922ull,
+ 6531623551432049880ull, 1542348713665845835ull}},
+ {{2738623715691861705ull, 17720473134626243844ull,
+ 13063247102864099760ull, 3084697427331691670ull}},
+ {{5477247431383723409ull, 16994202195542936072ull,
+ 7679750132018647905ull, 6169394854663383341ull}},
+ {{10954494862767446818ull, 15541660317376320528ull,
+ 15359500264037295811ull, 12338789709326766682ull}},
+ {{5880247787295399687ull, 14176378507700995075ull,
+ 10450597682291279808ull, 2467757941865353336ull}},
+ {{11760495574590799374ull, 9906012941692438534ull,
+ 2454451290873008001ull, 4935515883730706673ull}},
+ {{5074247075472047131ull, 1365281809675325453ull,
+ 4908902581746016003ull, 9871031767461413346ull}},
+ {{8393547044578230073ull, 15030451620902706383ull,
+ 4671129331091113523ull, 1974206353492282669ull}},
+ {{16787094089156460146ull, 11614159168095861150ull,
+ 9342258662182227047ull, 3948412706984565338ull}},
+ {{15127444104603368675ull, 4781574262482170685ull,
+ 237773250654902479ull, 7896825413969130677ull}},
+ {{6714837635662584059ull, 4645663667238344460ull,
+ 7426252279614801142ull, 1579365082793826135ull}},
+ {{13429675271325168117ull, 9291327334476688920ull,
+ 14852504559229602284ull, 3158730165587652270ull}},
+ {{8412606468940784617ull, 135910595243826225ull,
+ 11258265044749652953ull, 6317460331175304541ull}},
+ {{16825212937881569233ull, 271821190487652450ull,
+ 4069786015789754290ull, 12634920662350609083ull}},
+ {{14433089031802044817ull, 11122410682323261459ull,
+ 11882003647383681827ull, 2526984132470121816ull}},
+ {{10419433989894538017ull, 3798077290936971303ull,
+ 5317263221057812039ull, 5053968264940243633ull}},
+ {{2392123906079524417ull, 7596154581873942607ull,
+ 10634526442115624078ull, 10107936529880487266ull}},
+ {{4167773595957815207ull, 16276626175342429814ull,
+ 5816254103165035138ull, 2021587305976097453ull}},
+ {{8335547191915630413ull, 14106508276975308012ull,
+ 11632508206330070277ull, 4043174611952194906ull}},
+ {{16671094383831260826ull, 9766272480241064408ull,
+ 4818272338950588939ull, 8086349223904389813ull}},
+ {{3334218876766252166ull, 9331952125532033528ull,
+ 12031700912015848757ull, 1617269844780877962ull}},
+ {{6668437753532504331ull, 217160177354515440ull, 5616657750322145899ull,
+ 3234539689561755925ull}},
+ {{13336875507065008661ull, 434320354709030880ull,
+ 11233315500644291798ull, 6469079379123511850ull}},
+ {{13735421545638732702ull, 11154910515167537145ull,
+ 2246663100128858359ull, 1293815875824702370ull}},
+ {{9024099017567913788ull, 3863076956625522675ull,
+ 4493326200257716719ull, 2587631751649404740ull}},
+ {{18048198035135827576ull, 7726153913251045350ull,
+ 8986652400515433438ull, 5175263503298809480ull}},
+ {{17649651996562103535ull, 15452307826502090701ull,
+ 17973304801030866876ull, 10350527006597618960ull}},
+ {{10908628028796241354ull, 6779810380042328463ull,
+ 3594660960206173375ull, 2070105401319523792ull}},
+ {{3370511983882931091ull, 13559620760084656927ull,
+ 7189321920412346750ull, 4140210802639047584ull}},
+ {{6741023967765862181ull, 8672497446459762238ull,
+ 14378643840824693501ull, 8280421605278095168ull}},
+ {{8726902423036993083ull, 16491894748259593740ull,
+ 13943775212390669669ull, 1656084321055619033ull}},
+ {{17453804846073986166ull, 14537045422809635864ull,
+ 9440806351071787723ull, 3312168642111238067ull}},
+ {{16460865618438420715ull, 10627346771909720113ull,
+ 434868628434023831ull, 6624337284222476135ull}},
+ {{18049568382655325436ull, 5814818169123854345ull, 86973725686804766ull,
+ 1324867456844495227ull}},
+ {{17652392691601099256ull, 11629636338247708691ull,
+ 173947451373609532ull, 2649734913688990454ull}},
+ {{16858041309492646895ull, 4812528602785865767ull,
+ 347894902747219065ull, 5299469827377980908ull}},
+ {{15269338545275742174ull, 9625057205571731535ull,
+ 695789805494438130ull, 10598939654755961816ull}},
+ {{6743216523797058758ull, 5614360255856256630ull,
+ 3828506775840797949ull, 2119787930951192363ull}},
+ {{13486433047594117516ull, 11228720511712513260ull,
+ 7657013551681595898ull, 4239575861902384726ull}},
+ {{8526122021478683416ull, 4010696949715474905ull,
+ 15314027103363191797ull, 8479151723804769452ull}},
+ {{16462619663263377976ull, 15559534648910736273ull,
+ 10441503050156459005ull, 1695830344760953890ull}},
+ {{14478495252817204336ull, 12672325224111920931ull,
+ 2436262026603366395ull, 3391660689521907781ull}},
+ {{10510246431924857056ull, 6897906374514290247ull,
+ 4872524053206732791ull, 6783321379043815562ull}},
+ {{2102049286384971412ull, 12447627719128589019ull,
+ 8353202440125167204ull, 1356664275808763112ull}},
+ {{4204098572769942823ull, 6448511364547626422ull,
+ 16706404880250334409ull, 2713328551617526224ull}},
+ {{8408197145539885645ull, 12897022729095252844ull,
+ 14966065686791117202ull, 5426657103235052449ull}},
+ {{16816394291079771289ull, 7347301384480954072ull,
+ 11485387299872682789ull, 10853314206470104899ull}},
+ {{3363278858215954258ull, 12537506721121921784ull,
+ 17054472718942177850ull, 2170662841294020979ull}},
+ {{6726557716431908516ull, 6628269368534291952ull,
+ 15662201364174804085ull, 4341325682588041959ull}},
+ {{13453115432863817032ull, 13256538737068583904ull,
+ 12877658654640056554ull, 8682651365176083919ull}},
+ {{10069320716056584053ull, 13719354191639447750ull,
+ 17332926989895652603ull, 1736530273035216783ull}},
+ {{1691897358403616490ull, 8991964309569343885ull,
+ 16219109906081753591ull, 3473060546070433567ull}},
+ {{3383794716807232979ull, 17983928619138687770ull,
+ 13991475738453955566ull, 6946121092140867135ull}},
+ {{4366107758103356919ull, 7286134538569647877ull,
+ 2798295147690791113ull, 1389224218428173427ull}},
+ {{8732215516206713838ull, 14572269077139295754ull,
+ 5596590295381582226ull, 2778448436856346854ull}},
+ {{17464431032413427676ull, 10697794080569039892ull,
+ 11193180590763164453ull, 5556896873712693708ull}},
+ {{16482117991117303736ull, 2948844087428528169ull,
+ 3939617107816777291ull, 11113793747425387417ull}},
+ {{10675121227707281394ull, 11657815261711436603ull,
+ 8166621051047176104ull, 2222758749485077483ull}},
+ {{2903498381705011171ull, 4868886449713321591ull,
+ 16333242102094352209ull, 4445517498970154966ull}},
+ {{5806996763410022342ull, 9737772899426643182ull,
+ 14219740130479152802ull, 8891034997940309933ull}},
+ {{8540096982165825115ull, 1947554579885328636ull,
+ 13911994470321561530ull, 1778206999588061986ull}},
+ {{17080193964331650230ull, 3895109159770657272ull,
+ 9377244866933571444ull, 3556413999176123973ull}},
+ {{15713643854953748843ull, 7790218319541314545ull,
+ 307745660157591272ull, 7112827998352247947ull}},
+ {{17900124029958391062ull, 16315438922875904201ull,
+ 7440246761515338900ull, 1422565599670449589ull}},
+ {{17353503986207230507ull, 14184133772042256787ull,
+ 14880493523030677801ull, 2845131199340899178ull}},
+ {{16260263898704909398ull, 9921523470374961959ull,
+ 11314242972351803987ull, 5690262398681798357ull}},
+ {{14073783723700267180ull, 1396302867040372303ull,
+ 4181741870994056359ull, 11380524797363596715ull}},
+ {{10193454374223874083ull, 15036655832375715753ull,
+ 836348374198811271ull, 2276104959472719343ull}},
+ {{1940164674738196549ull, 11626567591041879891ull,
+ 1672696748397622543ull, 4552209918945438686ull}},
+ {{3880329349476393097ull, 4806391108374208166ull,
+ 3345393496795245087ull, 9104419837890877372ull}},
+ {{776065869895278620ull, 15718673480642482926ull,
+ 8047776328842869663ull, 1820883967578175474ull}},
+ {{1552131739790557239ull, 12990602887575414236ull,
+ 16095552657685739327ull, 3641767935156350948ull}},
+ {{3104263479581114478ull, 7534461701441276856ull,
+ 13744361241661927039ull, 7283535870312701897ull}},
+ {{7999550325400043542ull, 5196241155030165694ull,
+ 10127569877816206054ull, 1456707174062540379ull}},
+ {{15999100650800087084ull, 10392482310060331388ull,
+ 1808395681922860492ull, 2913414348125080759ull}},
+ {{13551457227890622552ull, 2338220546411111161ull,
+ 3616791363845720985ull, 5826828696250161518ull}},
+ {{8656170382071693488ull, 4676441092822222323ull,
+ 7233582727691441970ull, 11653657392500323036ull}},
+ {{16488629335381979991ull, 4624637033306354787ull,
+ 5136065360280198717ull, 2330731478500064607ull}},
+ {{14530514597054408365ull, 9249274066612709575ull,
+ 10272130720560397434ull, 4661462957000129214ull}},
+ {{10614285120399265113ull, 51804059515867535ull, 2097517367411243253ull,
+ 9322925914000258429ull}},
+ {{9501554653563673669ull, 7389058441386994153ull,
+ 15176898732449889943ull, 1864585182800051685ull}},
+ {{556365233417795722ull, 14778116882773988307ull,
+ 11907053391190228270ull, 3729170365600103371ull}},
+ {{1112730466835591444ull, 11109489691838424998ull,
+ 5367362708670904925ull, 7458340731200206743ull}},
+ {{3911894908109028612ull, 13289944382593415969ull,
+ 12141518985959911954ull, 1491668146240041348ull}},
+ {{7823789816218057224ull, 8133144691477280322ull,
+ 5836293898210272293ull, 2983336292480082697ull}},
+ {{15647579632436114448ull, 16266289382954560644ull,
+ 11672587796420544586ull, 5966672584960165394ull}},
+ {{12848415191162677280ull, 14085834692199569673ull,
+ 4898431519131537557ull, 11933345169920330789ull}},
+ {{17327078297200176749ull, 6506515753181824257ull,
+ 15737081562793948804ull, 2386669033984066157ull}},
+ {{16207412520690801882ull, 13013031506363648515ull,
+ 13027419051878345992ull, 4773338067968132315ull}},
+ {{13968080967672052148ull, 7579318939017745415ull,
+ 7608094030047140369ull, 9546676135936264631ull}},
+ {{2793616193534410430ull, 1515863787803549083ull,
+ 5210967620751338397ull, 1909335227187252926ull}},
+ {{5587232387068820859ull, 3031727575607098166ull,
+ 10421935241502676794ull, 3818670454374505852ull}},
+ {{11174464774137641718ull, 6063455151214196332ull,
+ 2397126409295801972ull, 7637340908749011705ull}},
+ {{16992288213795169637ull, 8591388659726659912ull,
+ 479425281859160394ull, 1527468181749802341ull}},
+ {{15537832353880787657ull, 17182777319453319825ull,
+ 958850563718320788ull, 3054936363499604682ull}},
+ {{12628920634052023698ull, 15918810565197088035ull,
+ 1917701127436641577ull, 6109872726999209364ull}},
+ {{6811097194394495779ull, 13390877056684624455ull,
+ 3835402254873283155ull, 12219745453998418728ull}},
+ {{12430265883104630126ull, 13746221855562655860ull,
+ 11835126895200387600ull, 2443949090799683745ull}},
+ {{6413787692499708635ull, 9045699637415760105ull,
+ 5223509716691223585ull, 4887898181599367491ull}},
+ {{12827575384999417270ull, 18091399274831520210ull,
+ 10447019433382447170ull, 9775796363198734982ull}},
+ {{9944212706483704101ull, 10996977484450124688ull,
+ 9468101516160310080ull, 1955159272639746996ull}},
+ {{1441681339257856585ull, 3547210895190697761ull, 489458958611068545ull,
+ 3910318545279493993ull}},
+ {{2883362678515713170ull, 7094421790381395522ull, 978917917222137090ull,
+ 7820637090558987986ull}},
+ {{11644718979928873604ull, 5108233172818189427ull,
+ 3885132398186337741ull, 1564127418111797597ull}},
+ {{4842693886148195591ull, 10216466345636378855ull,
+ 7770264796372675482ull, 3128254836223595194ull}},
+ {{9685387772296391182ull, 1986188617563206094ull,
+ 15540529592745350965ull, 6256509672447190388ull}},
+ {{924031470883230748ull, 3972377235126412189ull,
+ 12634315111781150314ull, 12513019344894380777ull}},
+ {{184806294176646150ull, 4483824261767192761ull, 9905560651840050709ull,
+ 2502603868978876155ull}},
+ {{369612588353292299ull, 8967648523534385522ull, 1364377229970549802ull,
+ 5005207737957752311ull}},
+ {{739225176706584598ull, 17935297047068771044ull,
+ 2728754459941099604ull, 10010415475915504622ull}},
+ {{147845035341316920ull, 7276408224155664532ull, 7924448521472040567ull,
+ 2002083095183100924ull}},
+ {{295690070682633840ull, 14552816448311329064ull,
+ 15848897042944081134ull, 4004166190366201848ull}},
+ {{591380141365267679ull, 10658888822913106512ull,
+ 13251050012178610653ull, 8008332380732403697ull}},
+ {{7496973657756874183ull, 2131777764582621302ull,
+ 10028907631919542777ull, 1601666476146480739ull}},
+ {{14993947315513748365ull, 4263555529165242604ull,
+ 1611071190129533938ull, 3203332952292961479ull}},
+ {{11541150557317945113ull, 8527111058330485209ull,
+ 3222142380259067876ull, 6406665904585922958ull}},
+ {{13376276555689319993ull, 16462817470633738334ull,
+ 11712474920277544544ull, 1281333180917184591ull}},
+ {{8305809037669088369ull, 14478890867557925053ull,
+ 4978205766845537473ull, 2562666361834369183ull}},
+ {{16611618075338176737ull, 10511037661406298490ull,
+ 9956411533691074947ull, 5125332723668738366ull}},
+ {{14776492076966801857ull, 2575331249103045365ull,
+ 1466078993672598279ull, 10250665447337476733ull}},
+ {{10333996044877181018ull, 7893763879304429719ull,
+ 11361262242960250625ull, 2050133089467495346ull}},
+ {{2221248016044810420ull, 15787527758608859439ull,
+ 4275780412210949634ull, 4100266178934990693ull}},
+ {{4442496032089620839ull, 13128311443508167262ull,
+ 8551560824421899269ull, 8200532357869981386ull}},
+ {{8267196835901744815ull, 2625662288701633452ull,
+ 5399660979626290177ull, 1640106471573996277ull}},
+ {{16534393671803489629ull, 5251324577403266904ull,
+ 10799321959252580354ull, 3280212943147992554ull}},
+ {{14622043269897427641ull, 10502649154806533809ull,
+ 3151899844795609092ull, 6560425886295985109ull}},
+ {{2924408653979485529ull, 5789878645703217085ull,
+ 15387775227926763111ull, 1312085177259197021ull}},
+ {{5848817307958971057ull, 11579757291406434170ull,
+ 12328806382143974606ull, 2624170354518394043ull}},
+ {{11697634615917942113ull, 4712770509103316724ull,
+ 6210868690578397597ull, 5248340709036788087ull}},
+ {{4948525158126332609ull, 9425541018206633449ull,
+ 12421737381156795194ull, 10496681418073576174ull}},
+ {{8368402661109087169ull, 12953154647867057659ull,
+ 17241742735199000331ull, 2099336283614715234ull}},
+ {{16736805322218174337ull, 7459565222024563702ull,
+ 16036741396688449047ull, 4198672567229430469ull}},
+ {{15026866570726797057ull, 14919130444049127405ull,
+ 13626738719667346478ull, 8397345134458860939ull}},
+ {{10384070943629180058ull, 10362523718293646127ull,
+ 17482743002901110588ull, 1679469026891772187ull}},
+ {{2321397813548808500ull, 2278303362877740639ull,
+ 16518741932092669561ull, 3358938053783544375ull}},
+ {{4642795627097617000ull, 4556606725755481278ull,
+ 14590739790475787506ull, 6717876107567088751ull}},
+ {{928559125419523400ull, 8290018974634916902ull, 6607496772837067824ull,
+ 1343575221513417750ull}},
+ {{1857118250839046800ull, 16580037949269833804ull,
+ 13214993545674135648ull, 2687150443026835500ull}},
+ {{3714236501678093600ull, 14713331824830115992ull,
+ 7983243017638719681ull, 5374300886053671001ull}},
+ {{7428473003356187199ull, 10979919575950680368ull,
+ 15966486035277439363ull, 10748601772107342002ull}},
+ {{12553741044896968410ull, 2195983915190136073ull,
+ 10571994836539308519ull, 2149720354421468400ull}},
+ {{6660738016084385203ull, 4391967830380272147ull,
+ 2697245599369065422ull, 4299440708842936801ull}},
+ {{13321476032168770406ull, 8783935660760544294ull,
+ 5394491198738130844ull, 8598881417685873602ull}},
+ {{2664295206433754082ull, 5446135946894019182ull,
+ 8457595869231446815ull, 1719776283537174720ull}},
+ {{5328590412867508163ull, 10892271893788038364ull,
+ 16915191738462893630ull, 3439552567074349440ull}},
+ {{10657180825735016325ull, 3337799713866525112ull,
+ 15383639403216235645ull, 6879105134148698881ull}},
+ {{13199482609372734235ull, 4356908757515215345ull,
+ 6766076695385157452ull, 1375821026829739776ull}},
+ {{7952221145035916853ull, 8713817515030430691ull,
+ 13532153390770314904ull, 2751642053659479552ull}},
+ {{15904442290071833706ull, 17427635030060861382ull,
+ 8617562707831078192ull, 5503284107318959105ull}},
+ {{13362140506434115796ull, 16408525986412171149ull,
+ 17235125415662156385ull, 11006568214637918210ull}},
+ {{17429823360254464452ull, 3281705197282434229ull,
+ 3447025083132431277ull, 2201313642927583642ull}},
+ {{16412902646799377288ull, 6563410394564868459ull,
+ 6894050166264862554ull, 4402627285855167284ull}},
+ {{14379061219889202960ull, 13126820789129736919ull,
+ 13788100332529725108ull, 8805254571710334568ull}},
+ {{2875812243977840592ull, 6314712972567857707ull,
+ 13825666510731675991ull, 1761050914342066913ull}},
+ {{5751624487955681184ull, 12629425945135715414ull,
+ 9204588947753800366ull, 3522101828684133827ull}},
+ {{11503248975911362368ull, 6812107816561879212ull,
+ 18409177895507600733ull, 7044203657368267654ull}},
+ {{17058045054149913767ull, 8741119192796196488ull,
+ 18439230838069161439ull, 1408840731473653530ull}},
+ {{15669346034590275917ull, 17482238385592392977ull,
+ 18431717602428771262ull, 2817681462947307061ull}},
+ {{12891947995471000218ull, 16517732697475234339ull,
+ 18416691131147990909ull, 5635362925894614123ull}},
+ {{7337151917232448819ull, 14588721321240917063ull,
+ 18386638188586430203ull, 11270725851789228247ull}},
+ {{12535476827672220734ull, 2917744264248183412ull,
+ 11056025267201106687ull, 2254145170357845649ull}},
+ {{6624209581634889851ull, 5835488528496366825ull,
+ 3665306460692661758ull, 4508290340715691299ull}},
+ {{13248419163269779702ull, 11670977056992733650ull,
+ 7330612921385323516ull, 9016580681431382598ull}},
+ {{17407079091621597234ull, 17091590670366188022ull,
+ 12534169028502795672ull, 1803316136286276519ull}},
+ {{16367414109533642851ull, 15736437267022824429ull,
+ 6621593983296039729ull, 3606632272572553039ull}},
+ {{14288084145357734085ull, 13026130460336097243ull,
+ 13243187966592079459ull, 7213264545145106078ull}},
+ {{2857616829071546817ull, 9983923721551040095ull,
+ 13716684037544146861ull, 1442652909029021215ull}},
+ {{5715233658143093634ull, 1521103369392528574ull,
+ 8986624001378742107ull, 2885305818058042431ull}},
+ {{11430467316286187268ull, 3042206738785057148ull,
+ 17973248002757484214ull, 5770611636116084862ull}},
+ {{4414190558862822919ull, 6084413477570114297ull,
+ 17499751931805416812ull, 11541223272232169725ull}},
+ {{15640233370740205877ull, 8595580324997843505ull,
+ 3499950386361083362ull, 2308244654446433945ull}},
+ {{12833722667770860138ull, 17191160649995687011ull,
+ 6999900772722166724ull, 4616489308892867890ull}},
+ {{7220701261832168659ull, 15935577226281822407ull,
+ 13999801545444333449ull, 9232978617785735780ull}},
+ {{5133489067108344055ull, 17944510704224005774ull,
+ 2799960309088866689ull, 1846595723557147156ull}},
+ {{10266978134216688110ull, 17442277334738459932ull,
+ 5599920618177733379ull, 3693191447114294312ull}},
+ {{2087212194723824604ull, 16437810595767368249ull,
+ 11199841236355466759ull, 7386382894228588624ull}},
+ {{7796140068428585568ull, 14355608563379204619ull,
+ 16997363506238734644ull, 1477276578845717724ull}},
+ {{15592280136857171135ull, 10264473053048857622ull,
+ 15547982938767917673ull, 2954553157691435449ull}},
+ {{12737816200004790653ull, 2082202032388163629ull,
+ 12649221803826283731ull, 5909106315382870899ull}},
+ {{7028888326300029689ull, 4164404064776327259ull,
+ 6851699533943015846ull, 11818212630765741799ull}},
+ {{16163172924227647231ull, 832880812955265451ull,
+ 16127735165756244462ull, 2363642526153148359ull}},
+ {{13879601774745742846ull, 1665761625910530903ull,
+ 13808726257802937308ull, 4727285052306296719ull}},
+ {{9312459475781934075ull, 3331523251821061807ull,
+ 9170708441896323000ull, 9454570104612593439ull}},
+ {{5551840709898297139ull, 15423699909331853654ull,
+ 16591536947346905892ull, 1890914020922518687ull}},
+ {{11103681419796594277ull, 12400655744954155692ull,
+ 14736329820984260169ull, 3781828041845037375ull}},
+ {{3760618765883636937ull, 6354567416198759769ull,
+ 11025915568258968723ull, 7563656083690074751ull}},
+ {{11820170197402458357ull, 16028308742207393246ull,
+ 5894531928393704067ull, 1512731216738014950ull}},
+ {{5193596321095365098ull, 13609873410705234877ull,
+ 11789063856787408135ull, 3025462433476029900ull}},
+ {{10387192642190730196ull, 8773002747700918138ull,
+ 5131383639865264655ull, 6050924866952059801ull}},
+ {{2327641210671908775ull, 17546005495401836277ull,
+ 10262767279730529310ull, 12101849733904119602ull}},
+ {{15222923501102023048ull, 10887898728564187901ull,
+ 9431251085429926508ull, 2420369946780823920ull}},
+ {{11999102928494494480ull, 3329053383418824187ull,
+ 415758097150301401ull, 4840739893561647841ull}},
+ {{5551461783279437343ull, 6658106766837648375ull, 831516194300602802ull,
+ 9681479787123295682ull}},
+ {{15867687615623528762ull, 16089016612335170967ull,
+ 7545000868343941206ull, 1936295957424659136ull}},
+ {{13288631157537505907ull, 13731289150960790319ull,
+ 15090001736687882413ull, 3872591914849318272ull}},
+ {{8130518241365460198ull, 9015834228212029023ull,
+ 11733259399666213211ull, 7745183829698636545ull}},
+ {{16383498907240733333ull, 5492515660384316127ull,
+ 2346651879933242642ull, 1549036765939727309ull}},
+ {{14320253740771915049ull, 10985031320768632255ull,
+ 4693303759866485284ull, 3098073531879454618ull}},
+ {{10193763407834278482ull, 3523318567827712895ull,
+ 9386607519732970569ull, 6196147063758909236ull}},
+ {{1940782741959005347ull, 7046637135655425791ull, 326470965756389522ull,
+ 12392294127517818473ull}},
+ {{4077505363133711393ull, 1409327427131085158ull,
+ 11133340637377008874ull, 2478458825503563694ull}},
+ {{8155010726267422785ull, 2818654854262170316ull,
+ 3819937201044466132ull, 4956917651007127389ull}},
+ {{16310021452534845570ull, 5637309708524340632ull,
+ 7639874402088932264ull, 9913835302014254778ull}},
+ {{18019399549474610407ull, 8506159571188688772ull,
+ 12596021324643517422ull, 1982767060402850955ull}},
+ {{17592055025239669198ull, 17012319142377377545ull,
+ 6745298575577483228ull, 3965534120805701911ull}},
+ {{16737365976769786780ull, 15577894211045203475ull,
+ 13490597151154966457ull, 7931068241611403822ull}},
+ {{18104868454321598649ull, 17872974101176681987ull,
+ 10076817059714813937ull, 1586213648322280764ull}},
+ {{17762992834933645682ull, 17299204128643812359ull,
+ 1706890045720076259ull, 3172427296644561529ull}},
+ {{17079241596157739747ull, 16151664183578073103ull,
+ 3413780091440152519ull, 6344854593289123058ull}},
+ {{15711739118605927877ull, 13856584293446594591ull,
+ 6827560182880305039ull, 12689709186578246116ull}},
+ {{6831696638463095899ull, 2771316858689318918ull,
+ 5054860851317971331ull, 2537941837315649223ull}},
+ {{13663393276926191798ull, 5542633717378637836ull,
+ 10109721702635942662ull, 5075883674631298446ull}},
+ {{8880042480142831979ull, 11085267434757275673ull,
+ 1772699331562333708ull, 10151767349262596893ull}},
+ {{16533403754996207689ull, 5906402301693365457ull,
+ 11422586310538197711ull, 2030353469852519378ull}},
+ {{14620063436282863761ull, 11812804603386730915ull,
+ 4398428547366843806ull, 4060706939705038757ull}},
+ {{10793382798856175906ull, 5178865133063910215ull,
+ 8796857094733687613ull, 8121413879410077514ull}},
+ {{9537374189255055828ull, 8414470656096602689ull,
+ 16516766677914378815ull, 1624282775882015502ull}},
+ {{628004304800560040ull, 16828941312193205379ull,
+ 14586789282119206014ull, 3248565551764031005ull}},
+ {{1256008609601120079ull, 15211138550676859142ull,
+ 10726834490528860413ull, 6497131103528062011ull}},
+ {{3940550536662134339ull, 17799622969103013121ull,
+ 5834715712847682405ull, 1299426220705612402ull}},
+ {{7881101073324268678ull, 17152501864496474626ull,
+ 11669431425695364811ull, 2598852441411224804ull}},
+ {{15762202146648537356ull, 15858259655283397636ull,
+ 4892118777681178007ull, 5197704882822449609ull}},
+ {{13077660219587523095ull, 13269775236857243657ull,
+ 9784237555362356015ull, 10395409765644899218ull}},
+ {{2615532043917504619ull, 13722001491597179701ull,
+ 13024893955298202172ull, 2079081953128979843ull}},
+ {{5231064087835009238ull, 8997258909484807786ull,
+ 7603043836886852729ull, 4158163906257959687ull}},
+ {{10462128175670018476ull, 17994517818969615572ull,
+ 15206087673773705458ull, 8316327812515919374ull}},
+ {{16849820894101644988ull, 10977601193277743760ull,
+ 17798612793722382384ull, 1663265562503183874ull}},
+ {{15252897714493738360ull, 3508458312845935905ull,
+ 17150481513735213153ull, 3326531125006367749ull}},
+ {{12059051355277925104ull, 7016916625691871811ull,
+ 15854218953760874690ull, 6653062250012735499ull}},
+ {{2411810271055585021ull, 16160778584106015655ull,
+ 17928239049719816230ull, 1330612450002547099ull}},
+ {{4823620542111170042ull, 13874813094502479694ull,
+ 17409734025730080845ull, 2661224900005094199ull}},
+ {{9647241084222340084ull, 9302882115295407772ull,
+ 16372723977750610075ull, 5322449800010188399ull}},
+ {{847738094735128551ull, 159020156881263929ull, 14298703881791668535ull,
+ 10644899600020376799ull}},
+ {{11237594063172756680ull, 14789199290343894078ull,
+ 17617136035325974999ull, 2128979920004075359ull}},
+ {{4028444052635961744ull, 11131654506978236541ull,
+ 16787527996942398383ull, 4257959840008150719ull}},
+ {{8056888105271923487ull, 3816564940246921466ull,
+ 15128311920175245151ull, 8515919680016301439ull}},
+ {{5300726435796295021ull, 763312988049384293ull,
+ 17783057643002690323ull, 1703183936003260287ull}},
+ {{10601452871592590042ull, 1526625976098768586ull,
+ 17119371212295829030ull, 3406367872006520575ull}},
+ {{2756161669475628467ull, 3053251952197537173ull,
+ 15791998350882106444ull, 6812735744013041151ull}},
+ {{11619278778120856663ull, 610650390439507434ull,
+ 6847748484918331612ull, 1362547148802608230ull}},
+ {{4791813482532161710ull, 1221300780879014869ull,
+ 13695496969836663224ull, 2725094297605216460ull}},
+ {{9583626965064323420ull, 2442601561758029738ull,
+ 8944249865963774832ull, 5450188595210432921ull}},
+ {{720509856419095223ull, 4885203123516059477ull,
+ 17888499731927549664ull, 10900377190420865842ull}},
+ {{11212148415509550015ull, 4666389439445122218ull,
+ 10956397575869330579ull, 2180075438084173168ull}},
+ {{3977552757309548413ull, 9332778878890244437ull,
+ 3466051078029109542ull, 4360150876168346337ull}},
+ {{7955105514619096825ull, 218813684070937258ull, 6932102156058219085ull,
+ 8720301752336692674ull}},
+ {{8969718732407640012ull, 14801157995781828744ull,
+ 16143815690179285109ull, 1744060350467338534ull}},
+ {{17939437464815280023ull, 11155571917854105872ull,
+ 13840887306649018603ull, 3488120700934677069ull}},
+ {{17432130855921008430ull, 3864399761998660129ull,
+ 9235030539588485591ull, 6976241401869354139ull}},
+ {{18243821430151842979ull, 772879952399732025ull,
+ 16604401366885338411ull, 1395248280373870827ull}},
+ {{18040898786594134342ull, 1545759904799464051ull,
+ 14762058660061125206ull, 2790496560747741655ull}},
+ {{17635053499478717067ull, 3091519809598928103ull,
+ 11077373246412698796ull, 5580993121495483311ull}},
+ {{16823362925247882518ull, 6183039619197856207ull,
+ 3708002419115845976ull, 11161986242990966623ull}},
+ {{7054021399791486827ull, 15994003182807212534ull,
+ 11809646928048900164ull, 2232397248598193324ull}},
+ {{14108042799582973654ull, 13541262291904873452ull,
+ 5172549782388248713ull, 4464794497196386649ull}},
+ {{9769341525456395691ull, 8635780510100195289ull,
+ 10345099564776497427ull, 8929588994392773298ull}},
+ {{16711263564058920431ull, 1727156102020039057ull,
+ 13137066357181030455ull, 1785917798878554659ull}},
+ {{14975783054408289246ull, 3454312204040078115ull,
+ 7827388640652509294ull, 3571835597757109319ull}},
+ {{11504822035107026876ull, 6908624408080156231ull,
+ 15654777281305018588ull, 7143671195514218638ull}},
+ {{9679662036505226022ull, 5071073696357941569ull,
+ 14199001900486734687ull, 1428734239102843727ull}},
+ {{912579999300900428ull, 10142147392715883139ull,
+ 9951259727263917758ull, 2857468478205687455ull}},
+ {{1825159998601800855ull, 1837550711722214662ull,
+ 1455775380818283901ull, 5714936956411374911ull}},
+ {{3650319997203601709ull, 3675101423444429324ull,
+ 2911550761636567802ull, 11429873912822749822ull}},
+ {{11798110443666451312ull, 15492415543656527157ull,
+ 7961007781811134206ull, 2285974782564549964ull}},
+ {{5149476813623351007ull, 12538087013603502699ull,
+ 15922015563622268413ull, 4571949565129099928ull}},
+ {{10298953627246702013ull, 6629429953497453782ull,
+ 13397287053534985211ull, 9143899130258199857ull}},
+ {{2059790725449340403ull, 12393932434925221726ull,
+ 10058155040190817688ull, 1828779826051639971ull}},
+ {{4119581450898680806ull, 6341120796140891836ull,
+ 1669566006672083761ull, 3657559652103279943ull}},
+ {{8239162901797361611ull, 12682241592281783672ull,
+ 3339132013344167522ull, 7315119304206559886ull}},
+ {{1647832580359472323ull, 13604494762682087704ull,
+ 4357175217410743827ull, 1463023860841311977ull}},
+ {{3295665160718944645ull, 8762245451654623792ull,
+ 8714350434821487655ull, 2926047721682623954ull}},
+ {{6591330321437889289ull, 17524490903309247584ull,
+ 17428700869642975310ull, 5852095443365247908ull}},
+ {{13182660642875778577ull, 16602237732908943552ull,
+ 16410657665576399005ull, 11704190886730495817ull}},
+ {{17393927387542797009ull, 10699145176065609356ull,
+ 10660829162599100447ull, 2340838177346099163ull}},
+ {{16341110701376042401ull, 2951546278421667097ull,
+ 2874914251488649279ull, 4681676354692198327ull}},
+ {{14235477329042533185ull, 5903092556843334195ull,
+ 5749828502977298558ull, 9363352709384396654ull}},
+ {{10225793095292327284ull, 8559316140852487485ull,
+ 15907360959563101004ull, 1872670541876879330ull}},
+ {{2004842116875102951ull, 17118632281704974971ull,
+ 13367977845416650392ull, 3745341083753758661ull}},
+ {{4009684233750205902ull, 15790520489700398326ull,
+ 8289211617123749169ull, 7490682167507517323ull}},
+ {{11869983290975772150ull, 10536801727423900311ull,
+ 12725888767650480803ull, 1498136433501503464ull}},
+ {{5293222508241992684ull, 2626859381138249007ull,
+ 7005033461591409991ull, 2996272867003006929ull}},
+ {{10586445016483985368ull, 5253718762276498014ull,
+ 14010066923182819982ull, 5992545734006013858ull}},
+ {{2726145959258419119ull, 10507437524552996029ull,
+ 9573389772656088348ull, 11985091468012027717ull}},
+ {{15302624450819325117ull, 2101487504910599205ull,
+ 9293375584015038316ull, 2397018293602405543ull}},
+ {{12158504827929098618ull, 4202975009821198411ull,
+ 140007094320525016ull, 4794036587204811087ull}},
+ {{5870265582148645619ull, 8405950019642396823ull, 280014188641050032ull,
+ 9588073174409622174ull}},
+ {{15931448375397370417ull, 5370538818670389687ull,
+ 14813398096695851299ull, 1917614634881924434ull}},
+ {{13416152677085189217ull, 10741077637340779375ull,
+ 11180052119682150982ull, 3835229269763848869ull}},
+ {{8385561280460826818ull, 3035411200972007135ull,
+ 3913360165654750349ull, 7670458539527697739ull}},
+ {{12745158700317896334ull, 11675128684420132396ull,
+ 15540067292098591362ull, 1534091707905539547ull}},
+ {{7043573326926241051ull, 4903513295130713177ull,
+ 12633390510487631109ull, 3068183415811079095ull}},
+ {{14087146653852482101ull, 9807026590261426354ull,
+ 6820036947265710602ull, 6136366831622158191ull}},
+ {{9727549233995412585ull, 1167309106813301093ull,
+ 13640073894531421205ull, 12272733663244316382ull}},
+ {{1945509846799082517ull, 7612159450846480865ull,
+ 10106712408390104887ull, 2454546732648863276ull}},
+ {{3891019693598165034ull, 15224318901692961730ull,
+ 1766680743070658158ull, 4909093465297726553ull}},
+ {{7782039387196330068ull, 12001893729676371844ull,
+ 3533361486141316317ull, 9818186930595453106ull}},
+ {{8935105506923086660ull, 13468425190161005338ull,
+ 4396021111970173586ull, 1963637386119090621ull}},
+ {{17870211013846173320ull, 8490106306612459060ull,
+ 8792042223940347173ull, 3927274772238181242ull}},
+ {{17293677953982795024ull, 16980212613224918121ull,
+ 17584084447880694346ull, 7854549544476362484ull}},
+ {{7148084405538469328ull, 3396042522644983624ull,
+ 18274212148543780162ull, 1570909908895272496ull}},
+ {{14296168811076938656ull, 6792085045289967248ull,
+ 18101680223378008708ull, 3141819817790544993ull}},
+ {{10145593548444325696ull, 13584170090579934497ull,
+ 17756616373046465800ull, 6283639635581089987ull}},
+ {{1844443023179099776ull, 8721596107450317379ull,
+ 17066488672383379985ull, 12567279271162179975ull}},
+ {{15126283863603461248ull, 1744319221490063475ull,
+ 3413297734476675997ull, 2513455854232435995ull}},
+ {{11805823653497370880ull, 3488638442980126951ull,
+ 6826595468953351994ull, 5026911708464871990ull}},
+ {{5164903233285190144ull, 6977276885960253903ull,
+ 13653190937906703988ull, 10053823416929743980ull}},
+ {{4722329461398948352ull, 12463501821417781750ull,
+ 2730638187581340797ull, 2010764683385948796ull}},
+ {{9444658922797896704ull, 6480259569126011884ull,
+ 5461276375162681595ull, 4021529366771897592ull}},
+ {{442573771886241792ull, 12960519138252023769ull,
+ 10922552750325363190ull, 8043058733543795184ull}},
+ {{11156561198602979328ull, 17349499086618046046ull,
+ 16941905809032713930ull, 1608611746708759036ull}},
+ {{3866378323496407040ull, 16252254099526540477ull,
+ 15437067544355876245ull, 3217223493417518073ull}},
+ {{7732756646992814080ull, 14057764125343529338ull,
+ 12427391015002200875ull, 6434446986835036147ull}},
+ {{1546551329398562816ull, 10190250454552526514ull,
+ 9864175832484260821ull, 1286889397367007229ull}},
+ {{3093102658797125632ull, 1933756835395501412ull,
+ 1281607591258970027ull, 2573778794734014459ull}},
+ {{6186205317594251264ull, 3867513670791002824ull,
+ 2563215182517940054ull, 5147557589468028918ull}},
+ {{12372410635188502528ull, 7735027341582005648ull,
+ 5126430365035880108ull, 10295115178936057836ull}},
+ {{9853179756521521152ull, 16304400727284042422ull,
+ 4714634887749086344ull, 2059023035787211567ull}},
+ {{1259615439333490688ull, 14162057380858533229ull,
+ 9429269775498172689ull, 4118046071574423134ull}},
+ {{2519230878666981376ull, 9877370688007514842ull, 411795477286793763ull,
+ 8236092143148846269ull}},
+ {{15261241434701037568ull, 9354171767085323614ull,
+ 14839754354425000045ull, 1647218428629769253ull}},
+ {{12075738795692523520ull, 261599460461095613ull,
+ 11232764635140448475ull, 3294436857259538507ull}},
+ {{5704733517675495424ull, 523198920922191227ull, 4018785196571345334ull,
+ 6588873714519077015ull}},
+ {{4830295518277009408ull, 14862035043152079538ull,
+ 803757039314269066ull, 1317774742903815403ull}},
+ {{9660591036554018816ull, 11277326012594607460ull,
+ 1607514078628538133ull, 2635549485807630806ull}},
+ {{874437999398486016ull, 4107907951479663305ull, 3215028157257076267ull,
+ 5271098971615261612ull}},
+ {{1748875998796972032ull, 8215815902959326610ull,
+ 6430056314514152534ull, 10542197943230523224ull}},
+ {{11417821643985125376ull, 12711209624817596291ull,
+ 16043406521870471799ull, 2108439588646104644ull}},
+ {{4388899214260699136ull, 6975675175925640967ull,
+ 13640068970031391983ull, 4216879177292209289ull}},
+ {{8777798428521398272ull, 13951350351851281934ull,
+ 8833393866353232350ull, 8433758354584418579ull}},
+ {{12823606129930010624ull, 17547665329337897679ull,
+ 16524074032238287762ull, 1686751670916883715ull}},
+ {{7200468186150469632ull, 16648586584966243743ull,
+ 14601403990767023909ull, 3373503341833767431ull}},
+ {{14400936372300939264ull, 14850429096222935870ull,
+ 10756063907824496203ull, 6747006683667534863ull}},
+ {{6569536089202098176ull, 6659434633986497497ull,
+ 13219259225790630210ull, 1349401336733506972ull}},
+ {{13139072178404196352ull, 13318869267972994994ull,
+ 7991774377871708804ull, 2698802673467013945ull}},
+ {{7831400283098841088ull, 8190994462236438373ull,
+ 15983548755743417609ull, 5397605346934027890ull}},
+ {{15662800566197682176ull, 16381988924472876746ull,
+ 13520353437777283602ull, 10795210693868055781ull}},
+ {{17889955372207177728ull, 14344444229120306318ull,
+ 6393419502297367043ull, 2159042138773611156ull}},
+ {{17333166670704803840ull, 10242144384531061021ull,
+ 12786839004594734087ull, 4318084277547222312ull}},
+ {{16219589267700056064ull, 2037544695352570427ull,
+ 7126933935479916559ull, 8636168555094444625ull}},
+ {{6933266668281921536ull, 15164904198038155378ull,
+ 1425386787095983311ull, 1727233711018888925ull}},
+ {{13866533336563843072ull, 11883064322366759140ull,
+ 2850773574191966623ull, 3454467422037777850ull}},
+ {{9286322599418134528ull, 5319384571023966665ull,
+ 5701547148383933247ull, 6908934844075555700ull}},
+ {{9235962149367447552ull, 8442574543688613979ull,
+ 1140309429676786649ull, 1381786968815111140ull}},
+ {{25180225025343488ull, 16885149087377227959ull, 2280618859353573298ull,
+ 2763573937630222280ull}},
+ {{50360450050686976ull, 15323554101044904302ull, 4561237718707146597ull,
+ 5527147875260444560ull}},
+ {{100720900101373952ull, 12200364128380256988ull,
+ 9122475437414293195ull, 11054295750520889120ull}},
+ {{11088190624246005760ull, 2440072825676051397ull,
+ 1824495087482858639ull, 2210859150104177824ull}},
+ {{3729637174782459904ull, 4880145651352102795ull,
+ 3648990174965717278ull, 4421718300208355648ull}},
+ {{7459274349564919808ull, 9760291302704205590ull,
+ 7297980349931434556ull, 8843436600416711296ull}},
+ {{8870552499396804608ull, 9330755890024661764ull,
+ 5148944884728197234ull, 1768687320083342259ull}},
+ {{17741104998793609216ull, 214767706339771912ull,
+ 10297889769456394469ull, 3537374640166684518ull}},
+ {{17035465923877666816ull, 429535412679543825ull,
+ 2149035465203237322ull, 7074749280333369037ull}},
+ {{18164488443743174656ull, 14843302341503550057ull,
+ 7808504722524468110ull, 1414949856066673807ull}},
+ {{17882232813776797696ull, 11239860609297548499ull,
+ 15617009445048936221ull, 2829899712133347614ull}},
+ {{17317721553844043776ull, 4032977144885545383ull,
+ 12787274816388320827ull, 5659799424266695229ull}},
+ {{16188699033978535936ull, 8065954289771090767ull,
+ 7127805559067090038ull, 11319598848533390459ull}},
+ {{17995135065763348480ull, 8991888487438038799ull,
+ 16182956370781059300ull, 2263919769706678091ull}},
+ {{17543526057817145344ull, 17983776974876077599ull,
+ 13919168667852566984ull, 4527839539413356183ull}},
+ {{16640308041924739072ull, 17520809876042603583ull,
+ 9391593261995582353ull, 9055679078826712367ull}},
+ {{14396108052610678784ull, 3504161975208520716ull,
+ 9257016281882937117ull, 1811135815765342473ull}},
+ {{10345472031511805952ull, 7008323950417041433ull, 67288490056322618ull,
+ 3622271631530684947ull}},
+ {{2244199989314060288ull, 14016647900834082867ull,
+ 134576980112645236ull, 7244543263061369894ull}},
+ {{7827537627346632704ull, 2803329580166816573ull,
+ 14784310654990170340ull, 1448908652612273978ull}},
+ {{15655075254693265408ull, 5606659160333633146ull,
+ 11121877236270789064ull, 2897817305224547957ull}},
+ {{12863406435676979200ull, 11213318320667266293ull,
+ 3797010398832026512ull, 5795634610449095915ull}},
+ {{7280068797644406784ull, 3979892567624980971ull,
+ 7594020797664053025ull, 11591269220898191830ull}},
+ {{5145362574270791680ull, 795978513524996194ull, 1518804159532810605ull,
+ 2318253844179638366ull}},
+ {{10290725148541583360ull, 1591957027049992388ull,
+ 3037608319065621210ull, 4636507688359276732ull}},
+ {{2134706223373615104ull, 3183914054099984777ull,
+ 6075216638131242420ull, 9273015376718553464ull}},
+ {{4116290059416633344ull, 15394178069787638248ull,
+ 15972438586593889776ull, 1854603075343710692ull}},
+ {{8232580118833266688ull, 12341612065865724880ull,
+ 13498133099478227937ull, 3709206150687421385ull}},
+ {{16465160237666533376ull, 6236480058021898144ull,
+ 8549522125246904259ull, 7418412301374842771ull}},
+ {{18050427306500947968ull, 1247296011604379628ull,
+ 5399253239791291175ull, 1483682460274968554ull}},
+ {{17654110539292344320ull, 2494592023208759257ull,
+ 10798506479582582350ull, 2967364920549937108ull}},
+ {{16861477004875137024ull, 4989184046417518515ull,
+ 3150268885455613084ull, 5934729841099874217ull}},
+ {{15276209936040722432ull, 9978368092835037031ull,
+ 6300537770911226168ull, 11869459682199748434ull}},
+ {{14123288431433875456ull, 9374371248050828052ull,
+ 16017502813149886526ull, 2373891936439949686ull}},
+ {{9799832789158199296ull, 301998422392104489ull,
+ 13588261552590221437ull, 4747783872879899373ull}},
+ {{1152921504606846976ull, 603996844784208979ull, 8729779031470891258ull,
+ 9495567745759798747ull}},
+ {{14987979559889010688ull, 120799368956841795ull,
+ 9124653435777998898ull, 1899113549151959749ull}},
+ {{11529215046068469760ull, 241598737913683591ull,
+ 18249306871555997796ull, 3798227098303919498ull}},
+ {{4611686018427387904ull, 483197475827367183ull,
+ 18051869669402443976ull, 7596454196607838997ull}},
+ {{4611686018427387904ull, 11164685939391204406ull,
+ 10989071563364309441ull, 1519290839321567799ull}},
+ {{9223372036854775808ull, 3882627805072857196ull,
+ 3531399053019067267ull, 3038581678643135599ull}},
+ {{0ull, 7765255610145714393ull, 7062798106038134534ull,
+ 6077163357286271198ull}},
+ {{0ull, 15530511220291428786ull, 14125596212076269068ull,
+ 12154326714572542396ull}},
+ {{0ull, 17863497503025927050ull, 6514468057157164136ull,
+ 2430865342914508479ull}},
+ {{0ull, 17280250932342302484ull, 13028936114314328273ull,
+ 4861730685829016958ull}},
+ {{0ull, 16113757790975053352ull, 7611128154919104931ull,
+ 9723461371658033917ull}},
+ {{0ull, 14290798002420741640ull, 8900923260467641632ull,
+ 1944692274331606783ull}},
+ {{0ull, 10134851931131931664ull, 17801846520935283265ull,
+ 3889384548663213566ull}},
+ {{0ull, 1822959788554311712ull, 17156948968161014915ull,
+ 7778769097326427133ull}},
+ {{0ull, 11432638401936593312ull, 14499436237857933952ull,
+ 1555753819465285426ull}},
+ {{0ull, 4418532730163635008ull, 10552128402006316289ull,
+ 3111507638930570853ull}},
+ {{0ull, 8837065460327270016ull, 2657512730303080962ull,
+ 6223015277861141707ull}},
+ {{0ull, 17674130920654540032ull, 5315025460606161924ull,
+ 12446030555722283414ull}},
+ {{0ull, 14602872628356638976ull, 15820400351088873677ull,
+ 2489206111144456682ull}},
+ {{0ull, 10759001183003726336ull, 13194056628468195739ull,
+ 4978412222288913365ull}},
+ {{0ull, 3071258292297901056ull, 7941369183226839863ull,
+ 9956824444577826731ull}},
+ {{0ull, 15371646917427221504ull, 5277622651387278295ull,
+ 1991364888915565346ull}},
+ {{0ull, 12296549761144891392ull, 10555245302774556591ull,
+ 3982729777831130692ull}},
+ {{0ull, 6146355448580231168ull, 2663746531839561567ull,
+ 7965459555662261385ull}},
+ {{0ull, 8607968719199866880ull, 532749306367912313ull,
+ 1593091911132452277ull}},
+ {{0ull, 17215937438399733760ull, 1065498612735824626ull,
+ 3186183822264904554ull}},
+ {{0ull, 15985130803089915904ull, 2130997225471649253ull,
+ 6372367644529809108ull}},
+ {{0ull, 13523517532470280192ull, 4261994450943298507ull,
+ 12744735289059618216ull}},
+ {{0ull, 13772749950719787008ull, 4541747704930570024ull,
+ 2548947057811923643ull}},
+ {{0ull, 9098755827730022400ull, 9083495409861140049ull,
+ 5097894115623847286ull}},
+ {{0ull, 18197511655460044800ull, 18166990819722280098ull,
+ 10195788231247694572ull}},
+ {{0ull, 3639502331092008960ull, 11012095793428276666ull,
+ 2039157646249538914ull}},
+ {{0ull, 7279004662184017920ull, 3577447513147001716ull,
+ 4078315292499077829ull}},
+ {{0ull, 14558009324368035840ull, 7154895026294003432ull,
+ 8156630584998155658ull}},
+ {{0ull, 2911601864873607168ull, 12499025449484531656ull,
+ 1631326116999631131ull}},
+ {{0ull, 5823203729747214336ull, 6551306825259511696ull,
+ 3262652233999262263ull}},
+ {{0ull, 11646407459494428672ull, 13102613650519023392ull,
+ 6525304467998524526ull}},
+ {{0ull, 13397327936124616704ull, 6309871544845715001ull,
+ 1305060893599704905ull}},
+ {{0ull, 8347911798539681792ull, 12619743089691430003ull,
+ 2610121787199409810ull}},
+ {{0ull, 16695823597079363584ull, 6792742105673308390ull,
+ 5220243574398819621ull}},
+ {{0ull, 14944903120449175552ull, 13585484211346616781ull,
+ 10440487148797639242ull}},
+ {{0ull, 14057027068315566080ull, 10095794471753144002ull,
+ 2088097429759527848ull}},
+ {{0ull, 9667310062921580544ull, 1744844869796736389ull,
+ 4176194859519055697ull}},
+ {{0ull, 887876052133609472ull, 3489689739593472779ull,
+ 8352389719038111394ull}},
+ {{0ull, 11245621654652452864ull, 15455333206886335848ull,
+ 1670477943807622278ull}},
+ {{0ull, 4044499235595354112ull, 12463922340063120081ull,
+ 3340955887615244557ull}},
+ {{0ull, 8088998471190708224ull, 6481100606416688546ull,
+ 6681911775230489115ull}},
+ {{0ull, 5307148508980051968ull, 1296220121283337709ull,
+ 1336382355046097823ull}},
+ {{0ull, 10614297017960103936ull, 2592440242566675418ull,
+ 2672764710092195646ull}},
+ {{0ull, 2781849962210656256ull, 5184880485133350837ull,
+ 5345529420184391292ull}},
+ {{0ull, 5563699924421312512ull, 10369760970266701674ull,
+ 10691058840368782584ull}},
+ {{0ull, 12180786429109993472ull, 16831347453020981627ull,
+ 2138211768073756516ull}},
+ {{0ull, 5914828784510435328ull, 15215950832332411639ull,
+ 4276423536147513033ull}},
+ {{0ull, 11829657569020870656ull, 11985157590955271662ull,
+ 8552847072295026067ull}},
+ {{0ull, 17123326772771815424ull, 9775729147674874978ull,
+ 1710569414459005213ull}},
+ {{0ull, 15799909471834079232ull, 1104714221640198341ull,
+ 3421138828918010427ull}},
+ {{0ull, 13153074869958606848ull, 2209428443280396683ull,
+ 6842277657836020854ull}},
+ {{0ull, 10009312603475542016ull, 15199280947623720629ull,
+ 1368455531567204170ull}},
+ {{0ull, 1571881133241532416ull, 11951817821537889643ull,
+ 2736911063134408341ull}},
+ {{0ull, 3143762266483064832ull, 5456891569366227670ull,
+ 5473822126268816683ull}},
+ {{0ull, 6287524532966129664ull, 10913783138732455340ull,
+ 10947644252537633366ull}},
+ {{0ull, 4946853721335136256ull, 5872105442488401391ull,
+ 2189528850507526673ull}},
+ {{0ull, 9893707442670272512ull, 11744210884976802782ull,
+ 4379057701015053346ull}},
+ {{0ull, 1340670811630993408ull, 5041677696244053949ull,
+ 8758115402030106693ull}},
+ {{0ull, 7646831791810019328ull, 12076381983474541759ull,
+ 1751623080406021338ull}},
+ {{0ull, 15293663583620038656ull, 5706019893239531902ull,
+ 3503246160812042677ull}},
+ {{0ull, 12140583093530525696ull, 11412039786479063805ull,
+ 7006492321624085354ull}},
+ {{0ull, 17185511877673746432ull, 17039803216263454053ull,
+ 1401298464324817070ull}},
+ {{0ull, 15924279681637941248ull, 15632862358817356491ull,
+ 2802596928649634141ull}},
+ {{0ull, 13401815289566330880ull, 12818980643925161367ull,
+ 5605193857299268283ull}},
+ {{0ull, 8356886505423110144ull, 7191217214140771119ull,
+ 11210387714598536567ull}},
+ {{0ull, 5360726115826532352ull, 8816941072311974870ull,
+ 2242077542919707313ull}},
+ {{0ull, 10721452231653064704ull, 17633882144623949740ull,
+ 4484155085839414626ull}},
+ {{0ull, 2996160389596577792ull, 16821020215538347865ull,
+ 8968310171678829253ull}},
+ {{0ull, 11667278522145046528ull, 14432250487333400542ull,
+ 1793662034335765850ull}},
+ {{0ull, 4887812970580541440ull, 10417756900957249469ull,
+ 3587324068671531701ull}},
+ {{0ull, 9775625941161082880ull, 2388769728204947322ull,
+ 7174648137343063403ull}},
+ {{0ull, 1955125188232216576ull, 11545800389866720434ull,
+ 1434929627468612680ull}},
+ {{0ull, 3910250376464433152ull, 4644856706023889252ull,
+ 2869859254937225361ull}},
+ {{0ull, 7820500752928866304ull, 9289713412047778504ull,
+ 5739718509874450722ull}},
+ {{0ull, 15641001505857732608ull, 132682750386005392ull,
+ 11479437019748901445ull}},
+ {{0ull, 10506897930655367168ull, 26536550077201078ull,
+ 2295887403949780289ull}},
+ {{0ull, 2567051787601182720ull, 53073100154402157ull,
+ 4591774807899560578ull}},
+ {{0ull, 5134103575202365440ull, 106146200308804314ull,
+ 9183549615799121156ull}},
+ {{0ull, 1026820715040473088ull, 3710578054803671186ull,
+ 1836709923159824231ull}},
+ {{0ull, 2053641430080946176ull, 7421156109607342372ull,
+ 3673419846319648462ull}},
+ {{0ull, 4107282860161892352ull, 14842312219214684744ull,
+ 7346839692639296924ull}},
+ {{0ull, 11889503016258109440ull, 17725857702810578241ull,
+ 1469367938527859384ull}},
+ {{0ull, 5332261958806667264ull, 17004971331911604867ull,
+ 2938735877055718769ull}},
+ {{0ull, 10664523917613334528ull, 15563198590113658118ull,
+ 5877471754111437539ull}},
+ {{0ull, 2882303761517117440ull, 12679653106517764621ull,
+ 11754943508222875079ull}},
+ {{0ull, 576460752303423488ull, 17293325880271194217ull,
+ 2350988701644575015ull}},
+ {{0ull, 1152921504606846976ull, 16139907686832836818ull,
+ 4701977403289150031ull}},
+ {{0ull, 2305843009213693952ull, 13833071299956122020ull,
+ 9403954806578300063ull}},
+ {{0ull, 11529215046068469760ull, 13834660704216955373ull,
+ 1880790961315660012ull}},
+ {{0ull, 4611686018427387904ull, 9222577334724359131ull,
+ 3761581922631320025ull}},
+ {{0ull, 9223372036854775808ull, 18445154669448718262ull,
+ 7523163845262640050ull}},
+ {{0ull, 9223372036854775808ull, 3689030933889743652ull,
+ 1504632769052528010ull}},
+ {{0ull, 0ull, 7378061867779487305ull, 3009265538105056020ull}},
+ {{0ull, 0ull, 14756123735558974610ull, 6018531076210112040ull}},
+ {{0ull, 0ull, 11065503397408397604ull, 12037062152420224081ull}},
+ {{0ull, 0ull, 5902449494223589844ull, 2407412430484044816ull}},
+ {{0ull, 0ull, 11804898988447179688ull, 4814824860968089632ull}},
+ {{0ull, 0ull, 5163053903184807760ull, 9629649721936179265ull}},
+ {{0ull, 0ull, 1032610780636961552ull, 1925929944387235853ull}},
+ {{0ull, 0ull, 2065221561273923104ull, 3851859888774471706ull}},
+ {{0ull, 0ull, 4130443122547846208ull, 7703719777548943412ull}},
+ {{0ull, 0ull, 8204786253993389888ull, 1540743955509788682ull}},
+ {{0ull, 0ull, 16409572507986779776ull, 3081487911019577364ull}},
+ {{0ull, 0ull, 14372400942264007936ull, 6162975822039154729ull}},
+ {{0ull, 0ull, 10298057810818464256ull, 12325951644078309459ull}},
+ {{0ull, 0ull, 16817006821131334144ull, 2465190328815661891ull}},
+ {{0ull, 0ull, 15187269568553116672ull, 4930380657631323783ull}},
+ {{0ull, 0ull, 11927795063396681728ull, 9860761315262647567ull}},
+ {{0ull, 0ull, 9764256642163156992ull, 1972152263052529513ull}},
+ {{0ull, 0ull, 1081769210616762368ull, 3944304526105059027ull}},
+ {{0ull, 0ull, 2163538421233524736ull, 7888609052210118054ull}},
+ {{0ull, 0ull, 15190102943214346240ull, 1577721810442023610ull}},
+ {{0ull, 0ull, 11933461812719140864ull, 3155443620884047221ull}},
+ {{0ull, 0ull, 5420179551728730112ull, 6310887241768094443ull}},
+ {{0ull, 0ull, 10840359103457460224ull, 12621774483536188886ull}},
+ {{0ull, 0ull, 5857420635433402368ull, 2524354896707237777ull}},
+ {{0ull, 0ull, 11714841270866804736ull, 5048709793414475554ull}},
+ {{0ull, 0ull, 4982938468024057856ull, 10097419586828951109ull}},
+ {{0ull, 0ull, 15753982952572452864ull, 2019483917365790221ull}},
+ {{0ull, 0ull, 13061221831435354112ull, 4038967834731580443ull}},
+ {{0ull, 0ull, 7675699589161156608ull, 8077935669463160887ull}},
+ {{0ull, 0ull, 8913837547316051968ull, 1615587133892632177ull}},
+ {{0ull, 0ull, 17827675094632103936ull, 3231174267785264354ull}},
+ {{0ull, 0ull, 17208606115554656256ull, 6462348535570528709ull}},
+ {{0ull, 0ull, 18199116482078572544ull, 1292469707114105741ull}},
+ {{0ull, 0ull, 17951488890447593472ull, 2584939414228211483ull}},
+ {{0ull, 0ull, 17456233707185635328ull, 5169878828456422967ull}},
+ {{0ull, 0ull, 16465723340661719040ull, 10339757656912845935ull}},
+ {{0ull, 0ull, 3293144668132343808ull, 2067951531382569187ull}},
+ {{0ull, 0ull, 6586289336264687616ull, 4135903062765138374ull}},
+ {{0ull, 0ull, 13172578672529375232ull, 8271806125530276748ull}},
+ {{0ull, 0ull, 13702562178731606016ull, 1654361225106055349ull}},
+ {{0ull, 0ull, 8958380283753660416ull, 3308722450212110699ull}},
+ {{0ull, 0ull, 17916760567507320832ull, 6617444900424221398ull}},
+ {{0ull, 0ull, 14651398557727195136ull, 1323488980084844279ull}},
+ {{0ull, 0ull, 10856053041744838656ull, 2646977960169688559ull}},
+ {{0ull, 0ull, 3265362009780125696ull, 5293955920339377119ull}},
+ {{0ull, 0ull, 6530724019560251392ull, 10587911840678754238ull}},
+ {{0ull, 0ull, 12374191248137781248ull, 2117582368135750847ull}},
+ {{0ull, 0ull, 6301638422566010880ull, 4235164736271501695ull}},
+ {{0ull, 0ull, 12603276845132021760ull, 8470329472543003390ull}},
+ {{0ull, 0ull, 2520655369026404352ull, 1694065894508600678ull}},
+ {{0ull, 0ull, 5041310738052808704ull, 3388131789017201356ull}},
+ {{0ull, 0ull, 10082621476105617408ull, 6776263578034402712ull}},
+ {{0ull, 0ull, 9395221924704944128ull, 1355252715606880542ull}},
+ {{0ull, 0ull, 343699775700336640ull, 2710505431213761085ull}},
+ {{0ull, 0ull, 687399551400673280ull, 5421010862427522170ull}},
+ {{0ull, 0ull, 1374799102801346560ull, 10842021724855044340ull}},
+ {{0ull, 0ull, 274959820560269312ull, 2168404344971008868ull}},
+ {{0ull, 0ull, 549919641120538624ull, 4336808689942017736ull}},
+ {{0ull, 0ull, 1099839282241077248ull, 8673617379884035472ull}},
+ {{0ull, 0ull, 7598665485932036096ull, 1734723475976807094ull}},
+ {{0ull, 0ull, 15197330971864072192ull, 3469446951953614188ull}},
+ {{0ull, 0ull, 11947917870018592768ull, 6938893903907228377ull}},
+ {{0ull, 0ull, 9768281203487539200ull, 1387778780781445675ull}},
+ {{0ull, 0ull, 1089818333265526784ull, 2775557561562891351ull}},
+ {{0ull, 0ull, 2179636666531053568ull, 5551115123125782702ull}},
+ {{0ull, 0ull, 4359273333062107136ull, 11102230246251565404ull}},
+ {{0ull, 0ull, 15629249925580062720ull, 2220446049250313080ull}},
+ {{0ull, 0ull, 12811755777450573824ull, 4440892098500626161ull}},
+ {{0ull, 0ull, 7176767481191596032ull, 8881784197001252323ull}},
+ {{0ull, 0ull, 12503399940464050176ull, 1776356839400250464ull}},
+ {{0ull, 0ull, 6560055807218548736ull, 3552713678800500929ull}},
+ {{0ull, 0ull, 13120111614437097472ull, 7105427357601001858ull}},
+ {{0ull, 0ull, 13692068767113150464ull, 1421085471520200371ull}},
+ {{0ull, 0ull, 8937393460516749312ull, 2842170943040400743ull}},
+ {{0ull, 0ull, 17874786921033498624ull, 5684341886080801486ull}},
+ {{0ull, 0ull, 17302829768357445632ull, 11368683772161602973ull}},
+ {{0ull, 0ull, 14528612397897220096ull, 2273736754432320594ull}},
+ {{0ull, 0ull, 10610480722084888576ull, 4547473508864641189ull}},
+ {{0ull, 0ull, 2774217370460225536ull, 9094947017729282379ull}},
+ {{0ull, 0ull, 15312238733059686400ull, 1818989403545856475ull}},
+ {{0ull, 0ull, 12177733392409821184ull, 3637978807091712951ull}},
+ {{0ull, 0ull, 5908722711110090752ull, 7275957614183425903ull}},
+ {{0ull, 0ull, 12249790986447749120ull, 1455191522836685180ull}},
+ {{0ull, 0ull, 6052837899185946624ull, 2910383045673370361ull}},
+ {{0ull, 0ull, 12105675798371893248ull, 5820766091346740722ull}},
+ {{0ull, 0ull, 5764607523034234880ull, 11641532182693481445ull}},
+ {{0ull, 0ull, 1152921504606846976ull, 2328306436538696289ull}},
+ {{0ull, 0ull, 2305843009213693952ull, 4656612873077392578ull}},
+ {{0ull, 0ull, 4611686018427387904ull, 9313225746154785156ull}},
+ {{0ull, 0ull, 4611686018427387904ull, 1862645149230957031ull}},
+ {{0ull, 0ull, 9223372036854775808ull, 3725290298461914062ull}},
+ {{0ull, 0ull, 0ull, 7450580596923828125ull}},
+ {{0ull, 0ull, 0ull, 1490116119384765625ull}},
+ {{0ull, 0ull, 0ull, 2980232238769531250ull}},
+ {{0ull, 0ull, 0ull, 5960464477539062500ull}},
+ {{0ull, 0ull, 0ull, 11920928955078125000ull}},
+ {{0ull, 0ull, 0ull, 2384185791015625000ull}},
+ {{0ull, 0ull, 0ull, 4768371582031250000ull}},
+ {{0ull, 0ull, 0ull, 9536743164062500000ull}},
+ {{0ull, 0ull, 0ull, 1907348632812500000ull}},
+ {{0ull, 0ull, 0ull, 3814697265625000000ull}},
+ {{0ull, 0ull, 0ull, 7629394531250000000ull}},
+ {{0ull, 0ull, 0ull, 1525878906250000000ull}},
+ {{0ull, 0ull, 0ull, 3051757812500000000ull}},
+ {{0ull, 0ull, 0ull, 6103515625000000000ull}},
+ {{0ull, 0ull, 0ull, 12207031250000000000ull}},
+ {{0ull, 0ull, 0ull, 2441406250000000000ull}},
+ {{0ull, 0ull, 0ull, 4882812500000000000ull}},
+ {{0ull, 0ull, 0ull, 9765625000000000000ull}},
+ {{0ull, 0ull, 0ull, 1953125000000000000ull}},
+ {{0ull, 0ull, 0ull, 3906250000000000000ull}},
+ {{0ull, 0ull, 0ull, 7812500000000000000ull}},
+ {{0ull, 0ull, 0ull, 1562500000000000000ull}},
+ {{0ull, 0ull, 0ull, 3125000000000000000ull}},
+ {{0ull, 0ull, 0ull, 6250000000000000000ull}},
+ {{0ull, 0ull, 0ull, 12500000000000000000ull}},
+ {{0ull, 0ull, 0ull, 2500000000000000000ull}},
+ {{0ull, 0ull, 0ull, 5000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 10000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 2000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 4000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 8000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 1600000000000000000ull}},
+ {{0ull, 0ull, 0ull, 3200000000000000000ull}},
+ {{0ull, 0ull, 0ull, 6400000000000000000ull}},
+ {{0ull, 0ull, 0ull, 12800000000000000000ull}},
+ {{0ull, 0ull, 0ull, 2560000000000000000ull}},
+ {{0ull, 0ull, 0ull, 5120000000000000000ull}},
+ {{0ull, 0ull, 0ull, 10240000000000000000ull}},
+ {{0ull, 0ull, 0ull, 2048000000000000000ull}},
+ {{0ull, 0ull, 0ull, 4096000000000000000ull}},
+ {{0ull, 0ull, 0ull, 8192000000000000000ull}},
+ {{0ull, 0ull, 0ull, 1638400000000000000ull}},
+ {{0ull, 0ull, 0ull, 3276800000000000000ull}},
+ {{0ull, 0ull, 0ull, 6553600000000000000ull}},
+ {{0ull, 0ull, 0ull, 1310720000000000000ull}},
+ {{0ull, 0ull, 0ull, 2621440000000000000ull}},
+ {{0ull, 0ull, 0ull, 5242880000000000000ull}},
+ {{0ull, 0ull, 0ull, 10485760000000000000ull}},
+ {{0ull, 0ull, 0ull, 2097152000000000000ull}},
+ {{0ull, 0ull, 0ull, 4194304000000000000ull}},
+ {{0ull, 0ull, 0ull, 8388608000000000000ull}},
+ {{0ull, 0ull, 0ull, 1677721600000000000ull}},
+ {{0ull, 0ull, 0ull, 3355443200000000000ull}},
+ {{0ull, 0ull, 0ull, 6710886400000000000ull}},
+ {{0ull, 0ull, 0ull, 1342177280000000000ull}},
+ {{0ull, 0ull, 0ull, 2684354560000000000ull}},
+ {{0ull, 0ull, 0ull, 5368709120000000000ull}},
+ {{0ull, 0ull, 0ull, 10737418240000000000ull}},
+ {{0ull, 0ull, 0ull, 2147483648000000000ull}},
+ {{0ull, 0ull, 0ull, 4294967296000000000ull}},
+ {{0ull, 0ull, 0ull, 8589934592000000000ull}},
+ {{0ull, 0ull, 0ull, 1717986918400000000ull}},
+ {{0ull, 0ull, 0ull, 3435973836800000000ull}},
+ {{0ull, 0ull, 0ull, 6871947673600000000ull}},
+ {{0ull, 0ull, 0ull, 1374389534720000000ull}},
+ {{0ull, 0ull, 0ull, 2748779069440000000ull}},
+ {{0ull, 0ull, 0ull, 5497558138880000000ull}},
+ {{0ull, 0ull, 0ull, 10995116277760000000ull}},
+ {{0ull, 0ull, 0ull, 2199023255552000000ull}},
+ {{0ull, 0ull, 0ull, 4398046511104000000ull}},
+ {{0ull, 0ull, 0ull, 8796093022208000000ull}},
+ {{0ull, 0ull, 0ull, 1759218604441600000ull}},
+ {{0ull, 0ull, 0ull, 3518437208883200000ull}},
+ {{0ull, 0ull, 0ull, 7036874417766400000ull}},
+ {{0ull, 0ull, 0ull, 1407374883553280000ull}},
+ {{0ull, 0ull, 0ull, 2814749767106560000ull}},
+ {{0ull, 0ull, 0ull, 5629499534213120000ull}},
+ {{0ull, 0ull, 0ull, 11258999068426240000ull}},
+ {{0ull, 0ull, 0ull, 2251799813685248000ull}},
+ {{0ull, 0ull, 0ull, 4503599627370496000ull}},
+ {{0ull, 0ull, 0ull, 9007199254740992000ull}},
+ {{0ull, 0ull, 0ull, 1801439850948198400ull}},
+ {{0ull, 0ull, 0ull, 3602879701896396800ull}},
+ {{0ull, 0ull, 0ull, 7205759403792793600ull}},
+ {{0ull, 0ull, 0ull, 1441151880758558720ull}},
+ {{0ull, 0ull, 0ull, 2882303761517117440ull}},
+ {{0ull, 0ull, 0ull, 5764607523034234880ull}},
+ {{0ull, 0ull, 0ull, 11529215046068469760ull}},
+ {{0ull, 0ull, 0ull, 2305843009213693952ull}},
+ {{0ull, 0ull, 0ull, 4611686018427387904ull}},
+ {{0ull, 0ull, 0ull, 9223372036854775808ull}},
+ {{11068046444225730970ull, 11068046444225730969ull,
+ 11068046444225730969ull, 1844674407370955161ull}},
+ {{3689348814741910324ull, 3689348814741910323ull,
+ 3689348814741910323ull, 3689348814741910323ull}},
+ {{7378697629483820647ull, 7378697629483820646ull,
+ 7378697629483820646ull, 7378697629483820646ull}},
+ {{12543785970122495099ull, 8854437155380584775ull,
+ 5165088340638674452ull, 1475739525896764129ull}},
+ {{6640827866535438582ull, 17708874310761169551ull,
+ 10330176681277348904ull, 2951479051793528258ull}},
+ {{13281655733070877164ull, 16971004547812787486ull,
+ 2213609288845146193ull, 5902958103587056517ull}},
+ {{8116567392432202712ull, 15495265021916023357ull,
+ 4427218577690292387ull, 11805916207174113034ull}},
+ {{12691359922712171512ull, 6788401819125114994ull,
+ 15642838974505699770ull, 2361183241434822606ull}},
+ {{6935975771714791408ull, 13576803638250229989ull,
+ 12838933875301847924ull, 4722366482869645213ull}},
+ {{13871951543429582816ull, 8706863202790908362ull,
+ 7231123676894144233ull, 9444732965739290427ull}},
+ {{10153087938169737210ull, 1741372640558181672ull,
+ 8824922364862649493ull, 1888946593147858085ull}},
+ {{1859431802629922803ull, 3482745281116363345ull,
+ 17649844729725298986ull, 3777893186295716170ull}},
+ {{3718863605259845606ull, 6965490562232726690ull,
+ 16852945385741046356ull, 7555786372591432341ull}},
+ {{8122470350535789768ull, 8771795741930365984ull,
+ 7059937891890119594ull, 1511157274518286468ull}},
+ {{16244940701071579536ull, 17543591483860731968ull,
+ 14119875783780239188ull, 3022314549036572936ull}},
+ {{14043137328433607455ull, 16640438894011912321ull,
+ 9793007493850926761ull, 6044629098073145873ull}},
+ {{9639530583157663293ull, 14834133714314273027ull,
+ 1139270913992301907ull, 12089258196146291747ull}},
+ {{5617254931373442982ull, 17724222001830495898ull,
+ 7606551812282281027ull, 2417851639229258349ull}},
+ {{11234509862746885964ull, 17001699929951440180ull,
+ 15213103624564562055ull, 4835703278458516698ull}},
+ {{4022275651784220311ull, 15556655786193328745ull,
+ 11979463175419572495ull, 9671406556917033397ull}},
+ {{8183152759840664709ull, 10490028786722486395ull,
+ 9774590264567735145ull, 1934281311383406679ull}},
+ {{16366305519681329418ull, 2533313499735421174ull,
+ 1102436455425918675ull, 3868562622766813359ull}},
+ {{14285866965653107219ull, 5066626999470842349ull,
+ 2204872910851837350ull, 7737125245533626718ull}},
+ {{10235871022614442091ull, 12081371844119899439ull,
+ 11509021026396098439ull, 1547425049106725343ull}},
+ {{2024997971519332565ull, 5715999614530247263ull,
+ 4571297979082645263ull, 3094850098213450687ull}},
+ {{4049995943038665129ull, 11431999229060494526ull,
+ 9142595958165290526ull, 6189700196426901374ull}},
+ {{8099991886077330257ull, 4417254384411437436ull,
+ 18285191916330581053ull, 12379400392853802748ull}},
+ {{8998696006699286698ull, 4572799691624197810ull,
+ 14725084827491847180ull, 2475880078570760549ull}},
+ {{17997392013398573396ull, 9145599383248395620ull,
+ 11003425581274142744ull, 4951760157141521099ull}},
+ {{17548039953087595175ull, 18291198766496791241ull,
+ 3560107088838733872ull, 9903520314283042199ull}},
+ {{10888305620101339682ull, 7347588568041268571ull,
+ 15469416676735388067ull, 1980704062856608439ull}},
+ {{3329867166493127747ull, 14695177136082537143ull,
+ 12492089279761224518ull, 3961408125713216879ull}},
+ {{6659734332986255494ull, 10943610198455522670ull,
+ 6537434485812897421ull, 7922816251426433759ull}},
+ {{1331946866597251099ull, 2188722039691104534ull,
+ 16064882156130220777ull, 1584563250285286751ull}},
+ {{2663893733194502198ull, 4377444079382209068ull,
+ 13683020238550889938ull, 3169126500570573503ull}},
+ {{5327787466389004395ull, 8754888158764418136ull,
+ 8919296403392228260ull, 6338253001141147007ull}},
+ {{10655574932778008790ull, 17509776317528836272ull,
+ 17838592806784456520ull, 12676506002282294014ull}},
+ {{5820463801297512082ull, 18259350522473408547ull,
+ 18325113820324532596ull, 2535301200456458802ull}},
+ {{11640927602595024163ull, 18071956971237265478ull,
+ 18203483566939513577ull, 5070602400912917605ull}},
+ {{4835111131480496709ull, 17697169868764979341ull,
+ 17960223060169475539ull, 10141204801825835211ull}},
+ {{4656371041038009665ull, 3539433973752995868ull,
+ 7281393426775805431ull, 2028240960365167042ull}},
+ {{9312742082076019330ull, 7078867947505991736ull,
+ 14562786853551610862ull, 4056481920730334084ull}},
+ {{178740090442487044ull, 14157735895011983473ull,
+ 10678829633393670108ull, 8112963841460668169ull}},
+ {{35748018088497409ull, 10210244808486217341ull,
+ 16893161185646375314ull, 1622592768292133633ull}},
+ {{71496036176994818ull, 1973745543262883066ull, 15339578297583199013ull,
+ 3245185536584267267ull}},
+ {{142992072353989635ull, 3947491086525766132ull,
+ 12232412521456846410ull, 6490371073168534535ull}},
+ {{7407296043954618574ull, 789498217305153226ull, 2446482504291369282ull,
+ 1298074214633706907ull}},
+ {{14814592087909237147ull, 1578996434610306452ull,
+ 4892965008582738564ull, 2596148429267413814ull}},
+ {{11182440102108922678ull, 3157992869220612905ull,
+ 9785930017165477128ull, 5192296858534827628ull}},
+ {{3918136130508293739ull, 6315985738441225811ull,
+ 1125115960621402640ull, 10384593717069655257ull}},
+ {{11851673670327389718ull, 8641894777172065808ull,
+ 7603720821608101174ull, 2076918743413931051ull}},
+ {{5256603266945227819ull, 17283789554344131617ull,
+ 15207441643216202348ull, 4153837486827862102ull}},
+ {{10513206533890455638ull, 16120835034978711618ull,
+ 11968139212722853081ull, 8307674973655724205ull}},
+ {{16860036565745732421ull, 6913515821737652646ull,
+ 2393627842544570616ull, 1661534994731144841ull}},
+ {{15273329057781913225ull, 13827031643475305293ull,
+ 4787255685089141232ull, 3323069989462289682ull}},
+ {{12099914041854274834ull, 9207319213241058971ull,
+ 9574511370178282465ull, 6646139978924579364ull}},
+ {{2419982808370854967ull, 16598859101615853087ull,
+ 16672297533003297785ull, 1329227995784915872ull}},
+ {{4839965616741709934ull, 14750974129522154558ull,
+ 14897850992297043955ull, 2658455991569831745ull}},
+ {{9679931233483419867ull, 11055204185334757500ull,
+ 11348957910884536295ull, 5316911983139663491ull}},
+ {{913118393257288118ull, 3663664296959963385ull, 4251171748059520975ull,
+ 10633823966279326983ull}},
+ {{11250670122877188594ull, 11800779303617723646ull,
+ 11918280793837635164ull, 2126764793255865396ull}},
+ {{4054596172044825571ull, 5154814533525895677ull,
+ 5389817513965718713ull, 4253529586511730793ull}},
+ {{8109192344089651141ull, 10309629067051791354ull,
+ 10779635027931437426ull, 8507059173023461586ull}},
+ {{5311187283559840552ull, 9440623442894178917ull,
+ 5845275820328197808ull, 1701411834604692317ull}},
+ {{10622374567119681103ull, 434502812078806218ull,
+ 11690551640656395617ull, 3402823669209384634ull}},
+ {{2798005060529810589ull, 869005624157612437ull, 4934359207603239618ull,
+ 6805647338418769269ull}},
+ {{15316996271073603411ull, 7552498754315343133ull,
+ 15744267100488289216ull, 1361129467683753853ull}},
+ {{12187248468437655206ull, 15104997508630686267ull,
+ 13041790127267026816ull, 2722258935367507707ull}},
+ {{5927752863165758795ull, 11763250943551820919ull,
+ 7636836180824502017ull, 5444517870735015415ull}},
+ {{11855505726331517589ull, 5079757813394090222ull,
+ 15273672361649004035ull, 10889035741470030830ull}},
+ {{9749798774750124165ull, 1015951562678818044ull,
+ 3054734472329800807ull, 2177807148294006166ull}},
+ {{1052853475790696713ull, 2031903125357636089ull,
+ 6109468944659601614ull, 4355614296588012332ull}},
+ {{2105706951581393425ull, 4063806250715272178ull,
+ 12218937889319203228ull, 8711228593176024664ull}},
+ {{421141390316278685ull, 8191458879626875082ull,
+ 17201182836831481938ull, 1742245718635204932ull}},
+ {{842282780632557370ull, 16382917759253750164ull,
+ 15955621599953412260ull, 3484491437270409865ull}},
+ {{1684565561265114740ull, 14319091444797948712ull,
+ 13464499126197272905ull, 6968982874540819731ull}},
+ {{11404959556478753918ull, 6553167103701500065ull,
+ 6382248639981364904ull, 1393796574908163946ull}},
+ {{4363175039247956220ull, 13106334207403000131ull,
+ 12764497279962729808ull, 2787593149816327892ull}},
+ {{8726350078495912439ull, 7765924341096448646ull,
+ 7082250486215908001ull, 5575186299632655785ull}},
+ {{17452700156991824877ull, 15531848682192897292ull,
+ 14164500972431816002ull, 11150372599265311570ull}},
+ {{18247935290366006269ull, 10485067365922400104ull,
+ 2832900194486363200ull, 2230074519853062314ull}},
+ {{18049126507022460921ull, 2523390658135248593ull,
+ 5665800388972726401ull, 4460149039706124628ull}},
+ {{17651508940335370225ull, 5046781316270497187ull,
+ 11331600777945452802ull, 8920298079412249256ull}},
+ {{3530301788067074045ull, 12077402707479830407ull,
+ 5955668970331000883ull, 1784059615882449851ull}},
+ {{7060603576134148090ull, 5708061341250109198ull,
+ 11911337940662001767ull, 3568119231764899702ull}},
+ {{14121207152268296180ull, 11416122682500218396ull,
+ 5375931807614451918ull, 7136238463529799405ull}},
+ {{17581636689421300529ull, 13351270980725774648ull,
+ 1075186361522890383ull, 1427247692705959881ull}},
+ {{16716529305133049442ull, 8255797887741997681ull,
+ 2150372723045780767ull, 2854495385411919762ull}},
+ {{14986314536556547267ull, 16511595775483995363ull,
+ 4300745446091561534ull, 5708990770823839524ull}},
+ {{11525884999403542918ull, 14576447477258439111ull,
+ 8601490892183123069ull, 11417981541647679048ull}},
+ {{13373223444106439554ull, 10293987124935508468ull,
+ 12788344622662355583ull, 2283596308329535809ull}},
+ {{8299702814503327491ull, 2141230176161465321ull,
+ 7129945171615159551ull, 4567192616659071619ull}},
+ {{16599405629006654981ull, 4282460352322930642ull,
+ 14259890343230319102ull, 9134385233318143238ull}},
+ {{10698578755285151643ull, 856492070464586128ull,
+ 13920024512871794790ull, 1826877046663628647ull}},
+ {{2950413436860751669ull, 1712984140929172257ull,
+ 9393304952034037964ull, 3653754093327257295ull}},
+ {{5900826873721503338ull, 3425968281858344514ull, 339865830358524312ull,
+ 7307508186654514591ull}},
+ {{8558863004228121314ull, 11753240100597399872ull,
+ 3757321980813615185ull, 1461501637330902918ull}},
+ {{17117726008456242628ull, 5059736127485248128ull,
+ 7514643961627230371ull, 2923003274661805836ull}},
+ {{15788707943202933640ull, 10119472254970496257ull,
+ 15029287923254460742ull, 5846006549323611672ull}},
+ {{13130671812696315664ull, 1792200436231440899ull,
+ 11611831772799369869ull, 11692013098647223345ull}},
+ {{13694180806764994103ull, 15115835346213929472ull,
+ 2322366354559873973ull, 2338402619729444669ull}},
+ {{8941617539820436589ull, 11784926618718307329ull,
+ 4644732709119747947ull, 4676805239458889338ull}},
+ {{17883235079640873178ull, 5123109163727063042ull,
+ 9289465418239495895ull, 9353610478917778676ull}},
+ {{14644693460153905606ull, 4713970647487322931ull,
+ 5547241898389809502ull, 1870722095783555735ull}},
+ {{10842642846598259595ull, 9427941294974645863ull,
+ 11094483796779619004ull, 3741444191567111470ull}},
+ {{3238541619486967573ull, 409138516239740111ull, 3742223519849686393ull,
+ 7482888383134222941ull}},
+ {{647708323897393515ull, 14839222962215589315ull,
+ 4437793518711847601ull, 1496577676626844588ull}},
+ {{1295416647794787029ull, 11231701850721627014ull,
+ 8875587037423695203ull, 2993155353253689176ull}},
+ {{2590833295589574058ull, 4016659627733702412ull,
+ 17751174074847390407ull, 5986310706507378352ull}},
+ {{5181666591179148116ull, 8033319255467404824ull,
+ 17055604075985229198ull, 11972621413014756705ull}},
+ {{8415030947719650270ull, 12674710295319211934ull,
+ 3411120815197045839ull, 2394524282602951341ull}},
+ {{16830061895439300539ull, 6902676516928872252ull,
+ 6822241630394091679ull, 4789048565205902682ull}},
+ {{15213379717169049462ull, 13805353033857744505ull,
+ 13644483260788183358ull, 9578097130411805364ull}},
+ {{10421373572917630539ull, 10139768236255369547ull,
+ 17486291911125277964ull, 1915619426082361072ull}},
+ {{2396003072125709462ull, 1832792398801187479ull,
+ 16525839748541004313ull, 3831238852164722145ull}},
+ {{4792006144251418924ull, 3665584797602374958ull,
+ 14604935423372457010ull, 7662477704329444291ull}},
+ {{15715796487817925078ull, 4422465774262385314ull,
+ 6610335899416401725ull, 1532495540865888858ull}},
+ {{12984848901926298539ull, 8844931548524770629ull,
+ 13220671798832803450ull, 3064991081731777716ull}},
+ {{7522953730143045462ull, 17689863097049541259ull,
+ 7994599523956055284ull, 6129982163463555433ull}},
+ {{15045907460286090924ull, 16932982120389530902ull,
+ 15989199047912110569ull, 12259964326927110866ull}},
+ {{10387879121541038832ull, 3386596424077906180ull,
+ 6887188624324332437ull, 2451992865385422173ull}},
+ {{2329014169372526047ull, 6773192848155812361ull,
+ 13774377248648664874ull, 4903985730770844346ull}},
+ {{4658028338745052093ull, 13546385696311624722ull,
+ 9102010423587778132ull, 9807971461541688693ull}},
+ {{8310303297232831065ull, 2709277139262324944ull,
+ 12888448528943286596ull, 1961594292308337738ull}},
+ {{16620606594465662130ull, 5418554278524649888ull,
+ 7330152984177021576ull, 3923188584616675477ull}},
+ {{14794469115221772644ull, 10837108557049299777ull,
+ 14660305968354043152ull, 7846377169233350954ull}},
+ {{14026940267270085499ull, 5856770526151770278ull,
+ 17689456452638449923ull, 1569275433846670190ull}},
+ {{9607136460830619381ull, 11713541052303540557ull,
+ 16932168831567348230ull, 3138550867693340381ull}},
+ {{767528847951687146ull, 4980338030897529499ull,
+ 15417593589425144845ull, 6277101735386680763ull}},
+ {{1535057695903374291ull, 9960676061795058998ull,
+ 12388443105140738074ull, 12554203470773361527ull}},
+ {{15064406798148316151ull, 5681484027100922122ull,
+ 9856386250511968261ull, 2510840694154672305ull}},
+ {{11682069522587080686ull, 11362968054201844245ull,
+ 1266028427314384906ull, 5021681388309344611ull}},
+ {{4917394971464609756ull, 4279192034694136875ull,
+ 2532056854628769813ull, 10043362776618689222ull}},
+ {{983478994292921952ull, 855838406938827375ull, 7885109000409574609ull,
+ 2008672555323737844ull}},
+ {{1966957988585843903ull, 1711676813877654750ull,
+ 15770218000819149218ull, 4017345110647475688ull}},
+ {{3933915977171687805ull, 3423353627755309500ull,
+ 13093691927928746820ull, 8034690221294951377ull}},
+ {{8165480824918158208ull, 8063368355034882546ull,
+ 9997436015069570010ull, 1606938044258990275ull}},
+ {{16330961649836316415ull, 16126736710069765092ull,
+ 1548127956429588404ull, 3213876088517980551ull}},
+ {{14215179225963081214ull, 13806729346429978569ull,
+ 3096255912859176809ull, 6427752177035961102ull}},
+ {{2843035845192616243ull, 6450694684027906037ull,
+ 7997948812055656008ull, 1285550435407192220ull}},
+ {{5686071690385232486ull, 12901389368055812074ull,
+ 15995897624111312016ull, 2571100870814384440ull}},
+ {{11372143380770464971ull, 7356034662402072532ull,
+ 13545051174513072417ull, 5142201741628768881ull}},
+ {{4297542687831378326ull, 14712069324804145065ull,
+ 8643358275316593218ull, 10284403483257537763ull}},
+ {{4548857352308185989ull, 6631762679702739336ull,
+ 12796718099289049613ull, 2056880696651507552ull}},
+ {{9097714704616371977ull, 13263525359405478672ull,
+ 7146692124868547610ull, 4113761393303015105ull}},
+ {{18195429409232743953ull, 8080306645101405728ull,
+ 14293384249737095221ull, 8227522786606030210ull}},
+ {{18396481140814190084ull, 5305410143762191468ull,
+ 2858676849947419044ull, 1645504557321206042ull}},
+ {{18346218207918828551ull, 10610820287524382937ull,
+ 5717353699894838088ull, 3291009114642412084ull}},
+ {{18245692342128105486ull, 2774896501339214259ull,
+ 11434707399789676177ull, 6582018229284824168ull}},
+ {{18406533727393262390ull, 554979300267842851ull,
+ 13354987924183666205ull, 1316403645856964833ull}},
+ {{18366323381076973164ull, 1109958600535685703ull,
+ 8263231774657780794ull, 2632807291713929667ull}},
+ {{18285902688444394712ull, 2219917201071371407ull,
+ 16526463549315561588ull, 5265614583427859334ull}},
+ {{18125061303179237808ull, 4439834402142742815ull,
+ 14606183024921571560ull, 10531229166855718669ull}},
+ {{18382407519603488855ull, 15645362139396189855ull,
+ 17678631863951955604ull, 2106245833371143733ull}},
+ {{18318070965497426093ull, 12843980205082828095ull,
+ 16910519654194359593ull, 4212491666742287467ull}},
+ {{18189397857285300569ull, 7241216336456104575ull,
+ 15374295234679167571ull, 8424983333484574935ull}},
+ {{7327228386198970437ull, 5137592082033131238ull,
+ 3074859046935833514ull, 1684996666696914987ull}},
+ {{14654456772397940874ull, 10275184164066262476ull,
+ 6149718093871667028ull, 3369993333393829974ull}},
+ {{10862169471086330132ull, 2103624254422973337ull,
+ 12299436187743334057ull, 6739986666787659948ull}},
+ {{9551131523701086673ull, 420724850884594667ull,
+ 13527933681774397781ull, 1347997333357531989ull}},
+ {{655518973692621730ull, 841449701769189335ull, 8609123289839243946ull,
+ 2695994666715063979ull}},
+ {{1311037947385243460ull, 1682899403538378670ull,
+ 17218246579678487892ull, 5391989333430127958ull}},
+ {{2622075894770486919ull, 3365798807076757340ull,
+ 15989749085647424168ull, 10783978666860255917ull}},
+ {{524415178954097384ull, 673159761415351468ull, 10576647446613305480ull,
+ 2156795733372051183ull}},
+ {{1048830357908194768ull, 1346319522830702936ull,
+ 2706550819517059344ull, 4313591466744102367ull}},
+ {{2097660715816389535ull, 2692639045661405872ull,
+ 5413101639034118688ull, 8627182933488204734ull}},
+ {{15176927402130919200ull, 7917225438616101820ull,
+ 15840015586774465030ull, 1725436586697640946ull}},
+ {{11907110730552286784ull, 15834450877232203641ull,
+ 13233287099839378444ull, 3450873173395281893ull}},
+ {{5367477387395021951ull, 13222157680754855667ull,
+ 8019830125969205273ull, 6901746346790563787ull}},
+ {{8452193106962825037ull, 2644431536150971133ull,
+ 8982663654677661701ull, 1380349269358112757ull}},
+ {{16904386213925650074ull, 5288863072301942266ull,
+ 17965327309355323402ull, 2760698538716225514ull}},
+ {{15362028354141748531ull, 10577726144603884533ull,
+ 17483910545001095188ull, 5521397077432451029ull}},
+ {{12277312634573945445ull, 2708708215498217451ull,
+ 16521077016292638761ull, 11042794154864902059ull}},
+ {{6144811341656699413ull, 541741643099643490ull,
+ 18061610662226169045ull, 2208558830972980411ull}},
+ {{12289622683313398825ull, 1083483286199286980ull,
+ 17676477250742786474ull, 4417117661945960823ull}},
+ {{6132501292917246033ull, 2166966572398573961ull,
+ 16906210427776021332ull, 8834235323891921647ull}},
+ {{1226500258583449207ull, 15190788573447356085ull,
+ 10759939715039024912ull, 1766847064778384329ull}},
+ {{2453000517166898414ull, 11934833073185160554ull,
+ 3073135356368498209ull, 3533694129556768659ull}},
+ {{4906001034333796827ull, 5422922072660769492ull,
+ 6146270712736996419ull, 7067388259113537318ull}},
+ {{15738595465834400659ull, 8463282044015974544ull,
+ 12297300586773130253ull, 1413477651822707463ull}},
+ {{13030446857959249701ull, 16926564088031949089ull,
+ 6147857099836708890ull, 2826955303645414927ull}},
+ {{7614149642208947785ull, 15406384102354346563ull,
+ 12295714199673417781ull, 5653910607290829854ull}},
+ {{15228299284417895569ull, 12366024130999141510ull,
+ 6144684325637283947ull, 11307821214581659709ull}},
+ {{6735008671625489437ull, 6162553640941738625ull,
+ 15986332124095098082ull, 2261564242916331941ull}},
+ {{13470017343250978874ull, 12325107281883477250ull,
+ 13525920174480644548ull, 4523128485832663883ull}},
+ {{8493290612792406132ull, 6203470490057402885ull,
+ 8605096275251737481ull, 9046256971665327767ull}},
+ {{12766704566784212196ull, 12308740542237211546ull,
+ 9099716884534168142ull, 1809251394333065553ull}},
+ {{7086665059858872776ull, 6170737010764871477ull,
+ 18199433769068336285ull, 3618502788666131106ull}},
+ {{14173330119717745552ull, 12341474021529742954ull,
+ 17952123464427120954ull, 7237005577332262213ull}},
+ {{6524014838685459434ull, 9846992433789769237ull,
+ 14658471137111155160ull, 1447401115466452442ull}},
+ {{13048029677370918867ull, 1247240793869986858ull,
+ 10870198200512758705ull, 2894802230932904885ull}},
+ {{7649315281032286118ull, 2494481587739973717ull,
+ 3293652327315965794ull, 5789604461865809771ull}},
+ {{15298630562064572236ull, 4988963175479947434ull,
+ 6587304654631931588ull, 11579208923731619542ull}},
+ {{17817121371380555740ull, 997792635095989486ull,
+ 8696158560410206964ull, 2315841784746323908ull}},
+ {{17187498669051559864ull, 1995585270191978973ull,
+ 17392317120820413928ull, 4631683569492647816ull}},
+ {{15928253264393568112ull, 3991170540383957947ull,
+ 16337890167931276240ull, 9263367138985295633ull}},
+ {{3185650652878713623ull, 11866280552302522559ull,
+ 14335624477811986217ull, 1852673427797059126ull}},
+ {{6371301305757427245ull, 5285817030895493502ull,
+ 10224504881914420819ull, 3705346855594118253ull}},
+ {{12742602611514854490ull, 10571634061790987004ull,
+ 2002265690119290022ull, 7410693711188236507ull}},
+ {{13616566966528701868ull, 16871722071325838693ull,
+ 7779150767507678650ull, 1482138742237647301ull}},
+ {{8786389859347852119ull, 15296700068942125771ull,
+ 15558301535015357301ull, 2964277484475294602ull}},
+ {{17572779718695704238ull, 12146656064174699926ull,
+ 12669858996321162987ull, 5928554968950589205ull}},
+ {{16698815363681856860ull, 5846568054639848237ull,
+ 6892973918932774359ull, 11857109937901178411ull}},
+ {{10718460702220192019ull, 1169313610927969647ull,
+ 5067943598528465195ull, 2371421987580235682ull}},
+ {{2990177330730832421ull, 2338627221855939295ull,
+ 10135887197056930390ull, 4742843975160471364ull}},
+ {{5980354661461664842ull, 4677254443711878590ull,
+ 1825030320404309164ull, 9485687950320942729ull}},
+ {{12264117376518063938ull, 12003497332968106687ull,
+ 15122401323048503125ull, 1897137590064188545ull}},
+ {{6081490679326576260ull, 5560250592226661759ull,
+ 11798058572387454635ull, 3794275180128377091ull}},
+ {{12162981358653152520ull, 11120501184453323518ull,
+ 5149373071065357654ull, 7588550360256754183ull}},
+ {{2432596271730630504ull, 9602797866374485350ull,
+ 12097921058438802500ull, 1517710072051350836ull}},
+ {{4865192543461261008ull, 758851659039419084ull, 5749098043168053385ull,
+ 3035420144102701673ull}},
+ {{9730385086922522016ull, 1517703318078838168ull,
+ 11498196086336106770ull, 6070840288205403346ull}},
+ {{1014026100135492416ull, 3035406636157676337ull,
+ 4549648098962661924ull, 12141680576410806693ull}},
+ {{14960200478994739776ull, 7985778956715355913ull,
+ 11977976064018263354ull, 2428336115282161338ull}},
+ {{11473656884279927936ull, 15971557913430711827ull,
+ 5509208054326975092ull, 4856672230564322677ull}},
+ {{4500569694850304256ull, 13496371753151872039ull,
+ 11018416108653950185ull, 9713344461128645354ull}},
+ {{11968160383195791821ull, 17456669609598015700ull,
+ 16961078480698431329ull, 1942668892225729070ull}},
+ {{5489576692682032026ull, 16466595145486479785ull,
+ 15475412887687311043ull, 3885337784451458141ull}},
+ {{10979153385364064051ull, 14486446217263407954ull,
+ 12504081701665070471ull, 7770675568902916283ull}},
+ {{13263877121298543780ull, 17654684502420322883ull,
+ 13568862784558745063ull, 1554135113780583256ull}},
+ {{8081010168887535944ull, 16862624931131094151ull,
+ 8690981495407938511ull, 3108270227561166513ull}},
+ {{16162020337775071888ull, 15278505788552636686ull,
+ 17381962990815877023ull, 6216540455122333026ull}},
+ {{13877296601840592159ull, 12110267503395721757ull,
+ 16317181907922202431ull, 12433080910244666053ull}},
+ {{6464808135110028755ull, 17179448759646785644ull,
+ 14331482825810171455ull, 2486616182048933210ull}},
+ {{12929616270220057510ull, 15912153445584019672ull,
+ 10216221577910791295ull, 4973232364097866421ull}},
+ {{7412488466730563404ull, 13377562817458487729ull,
+ 1985699082112030975ull, 9946464728195732843ull}},
+ {{8861195322829933328ull, 13743559007717428515ull,
+ 11465186260648137164ull, 1989292945639146568ull}},
+ {{17722390645659866655ull, 9040373941725305414ull,
+ 4483628447586722713ull, 3978585891278293137ull}},
+ {{16998037217610181693ull, 18080747883450610829ull,
+ 8967256895173445426ull, 7957171782556586274ull}},
+ {{18157002702489677632ull, 3616149576690122165ull,
+ 16550846638002330378ull, 1591434356511317254ull}},
+ {{17867261331269803647ull, 7232299153380244331ull,
+ 14654949202295109140ull, 3182868713022634509ull}},
+ {{17287778588830055677ull, 14464598306760488663ull,
+ 10863154330880666664ull, 6365737426045269019ull}},
+ {{16128813103950559738ull, 10482452539811425711ull,
+ 3279564588051781713ull, 12731474852090538039ull}},
+ {{14293809065015842918ull, 9475188137446105788ull,
+ 15413308176577997635ull, 2546294970418107607ull}},
+ {{10140874056322134219ull, 503632201182659961ull,
+ 12379872279446443655ull, 5092589940836215215ull}},
+ {{1835004038934716821ull, 1007264402365319923ull,
+ 6313000485183335694ull, 10185179881672430431ull}},
+ {{11435047252012674334ull, 201452880473063984ull,
+ 4951948911778577462ull, 2037035976334486086ull}},
+ {{4423350430315797052ull, 402905760946127969ull, 9903897823557154924ull,
+ 4074071952668972172ull}},
+ {{8846700860631594104ull, 805811521892255938ull, 1361051573404758232ull,
+ 8148143905337944345ull}},
+ {{1769340172126318821ull, 7539859933862271834ull, 272210314680951646ull,
+ 1629628781067588869ull}},
+ {{3538680344252637642ull, 15079719867724543668ull,
+ 544420629361903292ull, 3259257562135177738ull}},
+ {{7077360688505275283ull, 11712695661739535720ull,
+ 1088841258723806585ull, 6518515124270355476ull}},
+ {{5104820952442965380ull, 6031887947089817467ull,
+ 3907117066486671640ull, 1303703024854071095ull}},
+ {{10209641904885930760ull, 12063775894179634934ull,
+ 7814234132973343280ull, 2607406049708142190ull}},
+ {{1972539736062309903ull, 5680807714649718253ull,
+ 15628468265946686561ull, 5214812099416284380ull}},
+ {{3945079472124619806ull, 11361615429299436506ull,
+ 12810192458183821506ull, 10429624198832568761ull}},
+ {{11857062338650654931ull, 9651020715343707947ull,
+ 6251387306378674624ull, 2085924839766513752ull}},
+ {{5267380603591758246ull, 855297356977864279ull,
+ 12502774612757349249ull, 4171849679533027504ull}},
+ {{10534761207183516491ull, 1710594713955728558ull,
+ 6558805151805146882ull, 8343699359066055009ull}},
+ {{16864347500404344591ull, 4031467757533056034ull,
+ 16069156289328670669ull, 1668739871813211001ull}},
+ {{15281950927099137566ull, 8062935515066112069ull,
+ 13691568504947789722ull, 3337479743626422003ull}},
+ {{12117157780488723516ull, 16125871030132224139ull,
+ 8936392936186027828ull, 6674959487252844007ull}},
+ {{17180826815065385996ull, 3225174206026444827ull,
+ 9165976216721026212ull, 1334991897450568801ull}},
+ {{15914909556421220376ull, 6450348412052889655ull,
+ 18331952433442052424ull, 2669983794901137602ull}},
+ {{13383075039132889136ull, 12900696824105779311ull,
+ 18217160793174553232ull, 5339967589802275205ull}},
+ {{8319406004556226656ull, 7354649574502007007ull,
+ 17987577512639554849ull, 10679935179604550411ull}},
+ {{9042578830395065978ull, 1470929914900401401ull,
+ 7286864317269821293ull, 2135987035920910082ull}},
+ {{18085157660790131956ull, 2941859829800802802ull,
+ 14573728634539642586ull, 4271974071841820164ull}},
+ {{17723571247870712295ull, 5883719659601605605ull,
+ 10700713195369733556ull, 8543948143683640329ull}},
+ {{3544714249574142459ull, 1176743931920321121ull,
+ 16897537898041588004ull, 1708789628736728065ull}},
+ {{7089428499148284918ull, 2353487863840642242ull,
+ 15348331722373624392ull, 3417579257473456131ull}},
+ {{14178856998296569836ull, 4706975727681284484ull,
+ 12249919371037697168ull, 6835158514946912263ull}},
+ {{2835771399659313968ull, 4630743960278167220ull,
+ 13518030318433270403ull, 1367031702989382452ull}},
+ {{5671542799318627935ull, 9261487920556334440ull,
+ 8589316563156989190ull, 2734063405978764905ull}},
+ {{11343085598637255869ull, 76231767403117264ull,
+ 17178633126313978381ull, 5468126811957529810ull}},
+ {{4239427123564960121ull, 152463534806234529ull,
+ 15910522178918405146ull, 10936253623915059621ull}},
+ {{4537234239454902348ull, 7409190336445067552ull,
+ 6871453250525591352ull, 2187250724783011924ull}},
+ {{9074468478909804695ull, 14818380672890135104ull,
+ 13742906501051182704ull, 4374501449566023848ull}},
+ {{18148936957819609390ull, 11190017272070718592ull,
+ 9039068928392813793ull, 8749002899132047697ull}},
+ {{11008485021047742525ull, 2238003454414143718ull,
+ 9186511415162383405ull, 1749800579826409539ull}},
+ {{3570225968385933433ull, 4476006908828287437ull,
+ 18373022830324766810ull, 3499601159652819078ull}},
+ {{7140451936771866865ull, 8952013817656574874ull,
+ 18299301586939982004ull, 6999202319305638157ull}},
+ {{1428090387354373373ull, 5479751578273225298ull,
+ 11038557946871817047ull, 1399840463861127631ull}},
+ {{2856180774708746746ull, 10959503156546450596ull,
+ 3630371820034082478ull, 2799680927722255263ull}},
+ {{5712361549417493492ull, 3472262239383349576ull,
+ 7260743640068164957ull, 5599361855444510526ull}},
+ {{11424723098834986984ull, 6944524478766699152ull,
+ 14521487280136329914ull, 11198723710889021052ull}},
+ {{13352991063992728367ull, 5078253710495250153ull,
+ 10282995085511086629ull, 2239744742177804210ull}},
+ {{8259238054275905117ull, 10156507420990500307ull,
+ 2119246097312621642ull, 4479489484355608421ull}},
+ {{16518476108551810234ull, 1866270768271448998ull,
+ 4238492194625243285ull, 8958978968711216842ull}},
+ {{3303695221710362047ull, 7751951783138110446ull,
+ 8226396068408869303ull, 1791795793742243368ull}},
+ {{6607390443420724094ull, 15503903566276220892ull,
+ 16452792136817738606ull, 3583591587484486736ull}},
+ {{13214780886841448187ull, 12561063058842890168ull,
+ 14458840199925925597ull, 7167183174968973473ull}},
+ {{13711002621594020607ull, 2512212611768578033ull,
+ 13959814484210916089ull, 1433436634993794694ull}},
+ {{8975261169478489598ull, 5024425223537156067ull,
+ 9472884894712280562ull, 2866873269987589389ull}},
+ {{17950522338956979196ull, 10048850447074312134ull,
+ 499025715715009508ull, 5733746539975178779ull}},
+ {{17454300604204406776ull, 1650956820439072653ull,
+ 998051431430019017ull, 11467493079950357558ull}},
+ {{14558906565066612325ull, 330191364087814530ull,
+ 11267656730511734773ull, 2293498615990071511ull}},
+ {{10671069056423673034ull, 660382728175629061ull,
+ 4088569387313917930ull, 4586997231980143023ull}},
+ {{2895394039137794452ull, 1320765456351258123ull,
+ 8177138774627835860ull, 9173994463960286046ull}},
+ {{15336474066795200184ull, 3953501906012161947ull,
+ 5324776569667477495ull, 1834798892792057209ull}},
+ {{12226204059880848751ull, 7907003812024323895ull,
+ 10649553139334954990ull, 3669597785584114418ull}},
+ {{6005664046052145885ull, 15814007624048647791ull,
+ 2852362204960358364ull, 7339195571168228837ull}},
+ {{8579830438694249824ull, 6852150339551639881ull,
+ 7949170070475892319ull, 1467839114233645767ull}},
+ {{17159660877388499647ull, 13704300679103279762ull,
+ 15898340140951784638ull, 2935678228467291534ull}},
+ {{15872577681067447677ull, 8961857284497007909ull,
+ 13349936208194017661ull, 5871356456934583069ull}},
+ {{13298411288425343738ull, 17923714568994015819ull,
+ 8253128342678483706ull, 11742712913869166139ull}},
+ {{17417077516652710041ull, 3584742913798803163ull,
+ 16408020927503338034ull, 2348542582773833227ull}},
+ {{16387410959595868465ull, 7169485827597606327ull,
+ 14369297781297124452ull, 4697085165547666455ull}},
+ {{14328077845482185314ull, 14338971655195212655ull,
+ 10291851488884697288ull, 9394170331095332911ull}},
+ {{17623010828064078356ull, 17625189590006683823ull,
+ 5747719112518849780ull, 1878834066219066582ull}},
+ {{16799277582418605095ull, 16803635106303816031ull,
+ 11495438225037699561ull, 3757668132438133164ull}},
+ {{15151811091127658574ull, 15160526138898080447ull,
+ 4544132376365847507ull, 7515336264876266329ull}},
+ {{14098408662451262685ull, 6721454042521526412ull,
+ 15666221734240810794ull, 1503067252975253265ull}},
+ {{9750073251192973753ull, 13442908085043052825ull,
+ 12885699394772069972ull, 3006134505950506531ull}},
+ {{1053402428676395890ull, 8439072096376554035ull,
+ 7324654715834588329ull, 6012269011901013063ull}},
+ {{2106804857352791779ull, 16878144192753108070ull,
+ 14649309431669176658ull, 12024538023802026126ull}},
+ {{15178756230438199649ull, 18133024097518262906ull,
+ 6619210701075745654ull, 2404907604760405225ull}},
+ {{11910768387166847682ull, 17819304121326974197ull,
+ 13238421402151491309ull, 4809815209520810450ull}},
+ {{5374792700624143747ull, 17191864168944396779ull,
+ 8030098730593431003ull, 9619630419041620901ull}},
+ {{12143004984350559719ull, 18195768092756520648ull,
+ 5295368560860596523ull, 1923926083808324180ull}},
+ {{5839265894991567822ull, 17944792111803489681ull,
+ 10590737121721193047ull, 3847852167616648360ull}},
+ {{11678531789983135644ull, 17442840149897427746ull,
+ 2734730169732834479ull, 7695704335233296721ull}},
+ {{6025055172738537452ull, 3488568029979485549ull,
+ 4236294848688477219ull, 1539140867046659344ull}},
+ {{12050110345477074904ull, 6977136059958971098ull,
+ 8472589697376954438ull, 3078281734093318688ull}},
+ {{5653476617244598192ull, 13954272119917942197ull,
+ 16945179394753908876ull, 6156563468186637376ull}},
+ {{11306953234489196384ull, 9461800166126332778ull,
+ 15443614715798266137ull, 12313126936373274753ull}},
+ {{13329437091123570247ull, 1892360033225266555ull,
+ 14156769387385384197ull, 2462625387274654950ull}},
+ {{8212130108537588877ull, 3784720066450533111ull,
+ 9866794701061216778ull, 4925250774549309901ull}},
+ {{16424260217075177753ull, 7569440132901066222ull,
+ 1286845328412881940ull, 9850501549098619803ull}},
+ {{3284852043415035551ull, 12581934470805944214ull,
+ 11325415509908307357ull, 1970100309819723960ull}},
+ {{6569704086830071102ull, 6717124867902336812ull,
+ 4204086946107063099ull, 3940200619639447921ull}},
+ {{13139408173660142203ull, 13434249735804673624ull,
+ 8408173892214126198ull, 7880401239278895842ull}},
+ {{17385276893699669734ull, 2686849947160934724ull,
+ 9060332407926645886ull, 1576080247855779168ull}},
+ {{16323809713689787851ull, 5373699894321869449ull,
+ 18120664815853291772ull, 3152160495711558336ull}},
+ {{14200875353670024086ull, 10747399788643738899ull,
+ 17794585557997031928ull, 6304320991423116673ull}},
+ {{9955006633630496555ull, 3048055503577926183ull,
+ 17142427042284512241ull, 12608641982846233347ull}},
+ {{5680350141468009635ull, 11677657544941316206ull,
+ 10807183037940723094ull, 2521728396569246669ull}},
+ {{11360700282936019269ull, 4908571016173080796ull,
+ 3167622002171894573ull, 5043456793138493339ull}},
+ {{4274656492162486921ull, 9817142032346161593ull,
+ 6335244004343789146ull, 10086913586276986678ull}},
+ {{8233628927916318031ull, 16720823665436873611ull,
+ 12335095245094488798ull, 2017382717255397335ull}},
+ {{16467257855832636061ull, 14994903257164195606ull,
+ 6223446416479425981ull, 4034765434510794671ull}},
+ {{14487771637955720506ull, 11543062440618839597ull,
+ 12446892832958851963ull, 8069530869021589342ull}},
+ {{10276251957074964748ull, 2308612488123767919ull,
+ 9868076196075591039ull, 1613906173804317868ull}},
+ {{2105759840440377880ull, 4617224976247535839ull,
+ 1289408318441630462ull, 3227812347608635737ull}},
+ {{4211519680880755759ull, 9234449952495071678ull,
+ 2578816636883260924ull, 6455624695217271474ull}},
+ {{4531652750918061475ull, 12914936434724745305ull,
+ 15273158586344293477ull, 1291124939043454294ull}},
+ {{9063305501836122950ull, 7383128795739938994ull,
+ 12099573098979035339ull, 2582249878086908589ull}},
+ {{18126611003672245900ull, 14766257591479877988ull,
+ 5752402124248519062ull, 5164499756173817179ull}},
+ {{17806477933634940183ull, 11085771109250204361ull,
+ 11504804248497038125ull, 10328999512347634358ull}},
+ {{18318690845694629330ull, 13285200666075771841ull,
+ 13369007293925138594ull, 2065799902469526871ull}},
+ {{18190637617679707043ull, 8123657258441992067ull,
+ 8291270514140725573ull, 4131599804939053743ull}},
+ {{17934531161649862470ull, 16247314516883984135ull,
+ 16582541028281451146ull, 8263199609878107486ull}},
+ {{10965603861813793141ull, 10628160532860617473ull,
+ 7005857020398200552ull, 1652639921975621497ull}},
+ {{3484463649918034665ull, 2809576992011683331ull,
+ 14011714040796401105ull, 3305279843951242994ull}},
+ {{6968927299836069330ull, 5619153984023366662ull,
+ 9576684007883250594ull, 6610559687902485989ull}},
+ {{1393785459967213866ull, 12191877241030404302ull,
+ 16672732060544291411ull, 1322111937580497197ull}},
+ {{2787570919934427732ull, 5937010408351256988ull,
+ 14898720047379031207ull, 2644223875160994395ull}},
+ {{5575141839868855464ull, 11874020816702513976ull,
+ 11350696021048510798ull, 5288447750321988791ull}},
+ {{11150283679737710927ull, 5301297559695476336ull,
+ 4254647968387469981ull, 10576895500643977583ull}},
+ {{2230056735947542186ull, 15817654770906736560ull,
+ 11918976037903224965ull, 2115379100128795516ull}},
+ {{4460113471895084371ull, 13188565468103921504ull,
+ 5391208002096898315ull, 4230758200257591033ull}},
+ {{8920226943790168742ull, 7930386862498291392ull,
+ 10782416004193796631ull, 8461516400515182066ull}},
+ {{16541440647725675042ull, 8964775001983478924ull,
+ 5845832015580669649ull, 1692303280103036413ull}},
+ {{14636137221741798467ull, 17929550003966957849ull,
+ 11691664031161339298ull, 3384606560206072826ull}},
+ {{10825530369774045317ull, 17412355934224364083ull,
+ 4936583988613126981ull, 6769213120412145653ull}},
+ {{9543803703438629710ull, 18239866445812514109ull,
+ 12055363241948356365ull, 1353842624082429130ull}},
+ {{640863333167707804ull, 18032988817915476603ull,
+ 5663982410187161115ull, 2707685248164858261ull}},
+ {{1281726666335415607ull, 17619233562121401590ull,
+ 11327964820374322231ull, 5415370496329716522ull}},
+ {{2563453332670831214ull, 16791723050533251564ull,
+ 4209185567039092847ull, 10830740992659433045ull}},
+ {{4202039481276076566ull, 10737042239590470959ull,
+ 841837113407818569ull, 2166148198531886609ull}},
+ {{8404078962552153132ull, 3027340405471390302ull,
+ 1683674226815637139ull, 4332296397063773218ull}},
+ {{16808157925104306264ull, 6054680810942780604ull,
+ 3367348453631274278ull, 8664592794127546436ull}},
+ {{14429678029246592223ull, 15968331421156197413ull,
+ 4362818505468165178ull, 1732918558825509287ull}},
+ {{10412611984783632829ull, 13489918768602843211ull,
+ 8725637010936330357ull, 3465837117651018574ull}},
+ {{2378479895857714042ull, 8533093463496134807ull,
+ 17451274021872660715ull, 6931674235302037148ull}},
+ {{475695979171542809ull, 12774665136924957931ull,
+ 14558301248600263112ull, 1386334847060407429ull}},
+ {{951391958343085617ull, 7102586200140364246ull,
+ 10669858423490974609ull, 2772669694120814859ull}},
+ {{1902783916686171233ull, 14205172400280728492ull,
+ 2892972773272397602ull, 5545339388241629719ull}},
+ {{3805567833372342466ull, 9963600726851905368ull,
+ 5785945546544795205ull, 11090678776483259438ull}},
+ {{4450462381416378817ull, 13060766589596112043ull,
+ 12225235553534690010ull, 2218135755296651887ull}},
+ {{8900924762832757633ull, 7674789105482672470ull,
+ 6003727033359828405ull, 4436271510593303775ull}},
+ {{17801849525665515266ull, 15349578210965344940ull,
+ 12007454066719656810ull, 8872543021186607550ull}},
+ {{3560369905133103054ull, 3069915642193068988ull,
+ 2401490813343931362ull, 1774508604237321510ull}},
+ {{7120739810266206107ull, 6139831284386137976ull,
+ 4802981626687862724ull, 3549017208474643020ull}},
+ {{14241479620532412213ull, 12279662568772275952ull,
+ 9605963253375725448ull, 7098034416949286040ull}},
+ {{2848295924106482443ull, 13523978957980186160ull,
+ 1921192650675145089ull, 1419606883389857208ull}},
+ {{5696591848212964885ull, 8601213842250820704ull,
+ 3842385301350290179ull, 2839213766779714416ull}},
+ {{11393183696425929770ull, 17202427684501641408ull,
+ 7684770602700580358ull, 5678427533559428832ull}},
+ {{4339623319142307924ull, 15958111295293731201ull,
+ 15369541205401160717ull, 11356855067118857664ull}},
+ {{8246622293312282232ull, 6880971073800656563ull,
+ 17831303500047873436ull, 2271371013423771532ull}},
+ {{16493244586624564463ull, 13761942147601313126ull,
+ 17215862926386195256ull, 4542742026847543065ull}},
+ {{14539745099539577309ull, 9077140221493074637ull,
+ 15984981779062838897ull, 9085484053695086131ull}},
+ {{2907949019907915462ull, 12883474488524345897ull,
+ 6886345170554478102ull, 1817096810739017226ull}},
+ {{5815898039815830924ull, 7320204903339140178ull,
+ 13772690341108956205ull, 3634193621478034452ull}},
+ {{11631796079631661847ull, 14640409806678280356ull,
+ 9098636608508360794ull, 7268387242956068905ull}},
+ {{2326359215926332370ull, 17685477220303297364ull,
+ 1819727321701672158ull, 1453677448591213781ull}},
+ {{4652718431852664739ull, 16924210366897043112ull,
+ 3639454643403344317ull, 2907354897182427562ull}},
+ {{9305436863705329478ull, 15401676660084534608ull,
+ 7278909286806688635ull, 5814709794364855124ull}},
+ {{164129653701107339ull, 12356609246459517601ull,
+ 14557818573613377271ull, 11629419588729710248ull}},
+ {{32825930740221468ull, 17228717108259544813ull,
+ 13979610158948406423ull, 2325883917745942049ull}},
+ {{65651861480442936ull, 16010690142809538010ull, 9512476244187261231ull,
+ 4651767835491884099ull}},
+ {{131303722960885872ull, 13574636211909524404ull, 578208414664970847ull,
+ 9303535670983768199ull}},
+ {{26260744592177175ull, 6404276057123815204ull, 14873036941900635462ull,
+ 1860707134196753639ull}},
+ {{52521489184354349ull, 12808552114247630408ull,
+ 11299329810091719308ull, 3721414268393507279ull}},
+ {{105042978368708697ull, 7170360154785709200ull, 4151915546473887001ull,
+ 7442828536787014559ull}},
+ {{21008595673741740ull, 1434072030957141840ull, 15587778368262418693ull,
+ 1488565707357402911ull}},
+ {{42017191347483479ull, 2868144061914283680ull, 12728812662815285770ull,
+ 2977131414714805823ull}},
+ {{84034382694966958ull, 5736288123828567360ull, 7010881251921019924ull,
+ 5954262829429611647ull}},
+ {{168068765389933915ull, 11472576247657134720ull,
+ 14021762503842039848ull, 11908525658859223294ull}},
+ {{7412311382561807430ull, 9673212879015247590ull,
+ 17561747759736049262ull, 2381705131771844658ull}},
+ {{14824622765123614859ull, 899681684320943564ull,
+ 16676751445762546909ull, 4763410263543689317ull}},
+ {{11202501456537678102ull, 1799363368641887129ull,
+ 14906758817815542202ull, 9526820527087378635ull}},
+ {{5929849106049445944ull, 7738570303212198072ull,
+ 2981351763563108440ull, 1905364105417475727ull}},
+ {{11859698212098891888ull, 15477140606424396144ull,
+ 5962703527126216880ull, 3810728210834951454ull}},
+ {{5272652350488232159ull, 12507537139139240673ull,
+ 11925407054252433761ull, 7621456421669902908ull}},
+ {{8433228099581467079ull, 17258902686795489427ull,
+ 13453127855076217721ull, 1524291284333980581ull}},
+ {{16866456199162934157ull, 16071061299881427238ull,
+ 8459511636442883827ull, 3048582568667961163ull}},
+ {{15286168324616316697ull, 13695378526053302861ull,
+ 16919023272885767655ull, 6097165137335922326ull}},
+ {{12125592575523081777ull, 8944012978397054107ull,
+ 15391302472061983695ull, 12194330274671844653ull}},
+ {{2425118515104616356ull, 12856849039905141791ull,
+ 14146306938638127708ull, 2438866054934368930ull}},
+ {{4850237030209232711ull, 7266954006100731966ull,
+ 9845869803566703801ull, 4877732109868737861ull}},
+ {{9700474060418465421ull, 14533908012201463932ull,
+ 1244995533423855986ull, 9755464219737475723ull}},
+ {{5629443626825603408ull, 17664176861407934079ull,
+ 11317045550910502166ull, 1951092843947495144ull}},
+ {{11258887253651206815ull, 16881609649106316542ull,
+ 4187347028111452717ull, 3902185687894990289ull}},
+ {{4071030433592862014ull, 15316475224503081469ull,
+ 8374694056222905435ull, 7804371375789980578ull}},
+ {{8192903716202393050ull, 14131341489126347263ull,
+ 12742985255470312056ull, 1560874275157996115ull}},
+ {{16385807432404786099ull, 9815938904543142910ull,
+ 7039226437231072497ull, 3121748550315992231ull}},
+ {{14324870791100020581ull, 1185133735376734205ull,
+ 14078452874462144995ull, 6243497100631984462ull}},
+ {{10202997508490489545ull, 2370267470753468411ull,
+ 9710161675214738374ull, 12486994201263968925ull}},
+ {{2040599501698097909ull, 15231448753118334975ull,
+ 1942032335042947674ull, 2497398840252793785ull}},
+ {{4081199003396195818ull, 12016153432527118334ull,
+ 3884064670085895349ull, 4994797680505587570ull}},
+ {{8162398006792391636ull, 5585562791344685052ull,
+ 7768129340171790699ull, 9989595361011175140ull}},
+ {{5321828416100388651ull, 15874507817236578303ull,
+ 1553625868034358139ull, 1997919072202235028ull}},
+ {{10643656832200777301ull, 13302271560763604990ull,
+ 3107251736068716279ull, 3995838144404470056ull}},
+ {{2840569590692002986ull, 8157799047817658365ull,
+ 6214503472137432559ull, 7991676288808940112ull}},
+ {{4257462732880310921ull, 5320908624305441996ull,
+ 8621598323911307158ull, 1598335257761788022ull}},
+ {{8514925465760621841ull, 10641817248610883992ull,
+ 17243196647822614316ull, 3196670515523576044ull}},
+ {{17029850931521243682ull, 2836890423512216368ull,
+ 16039649221935677017ull, 6393341031047152089ull}},
+ {{15612957789332935747ull, 5673780847024432737ull,
+ 13632554370161802418ull, 12786682062094304179ull}},
+ {{17879986816834228443ull, 8513453798888707193ull,
+ 17483906133000001776ull, 2557336412418860835ull}},
+ {{17313229559958905269ull, 17026907597777414387ull,
+ 16521068192290451936ull, 5114672824837721671ull}},
+ {{16179715046208258921ull, 15607071121845277159ull,
+ 14595392310871352257ull, 10229345649675443343ull}},
+ {{17993338268209293077ull, 3121414224369055431ull,
+ 13987124906400001421ull, 2045869129935088668ull}},
+ {{17539932462709034538ull, 6242828448738110863ull,
+ 9527505739090451226ull, 4091738259870177337ull}},
+ {{16633120851708517460ull, 12485656897476221727ull,
+ 608267404471350836ull, 8183476519740354675ull}},
+ {{14394670614567434462ull, 6186480194237154668ull,
+ 121653480894270167ull, 1636695303948070935ull}},
+ {{10342597155425317307ull, 12372960388474309337ull,
+ 243306961788540334ull, 3273390607896141870ull}},
+ {{2238450237141082998ull, 6299176703239067059ull, 486613923577080669ull,
+ 6546781215792283740ull}},
+ {{11515736491653947570ull, 16017230599615454704ull,
+ 97322784715416133ull, 1309356243158456748ull}},
+ {{4584728909598343523ull, 13587717125521357793ull,
+ 194645569430832267ull, 2618712486316913496ull}},
+ {{9169457819196687045ull, 8728690177333163970ull, 389291138861664535ull,
+ 5237424972633826992ull}},
+ {{18338915638393374090ull, 17457380354666327940ull,
+ 778582277723329070ull, 10474849945267653984ull}},
+ {{18425178386646316111ull, 18248871329900906880ull,
+ 14913111714512307106ull, 2094969989053530796ull}},
+ {{18403612699583080606ull, 18050998586092262145ull,
+ 11379479355315062597ull, 4189939978107061593ull}},
+ {{18360481325456609595ull, 17655253098474972675ull,
+ 4312214636920573579ull, 8379879956214123187ull}},
+ {{7361445079833232243ull, 7220399434436904858ull,
+ 8241140556867935362ull, 1675975991242824637ull}},
+ {{14722890159666464485ull, 14440798868873809716ull,
+ 16482281113735870724ull, 3351951982485649274ull}},
+ {{10999036245623377353ull, 10434853664038067817ull,
+ 14517818153762189833ull, 6703903964971298549ull}},
+ {{16957202508092316764ull, 9465668362291434209ull,
+ 17660958889720079259ull, 1340780792994259709ull}},
+ {{15467660942475081911ull, 484592650873316803ull,
+ 16875173705730606903ull, 2681561585988519419ull}},
+ {{12488577811240612206ull, 969185301746633607ull,
+ 15303603337751662190ull, 5363123171977038839ull}},
+ {{6530411548771672795ull, 1938370603493267215ull,
+ 12160462601793772764ull, 10726246343954077679ull}},
+ {{12374128753980065529ull, 11455720564924384412ull,
+ 17189487779326395845ull, 2145249268790815535ull}},
+ {{6301513434250579442ull, 4464697056139217209ull,
+ 15932231484943240075ull, 4290498537581631071ull}},
+ {{12603026868501158883ull, 8929394112278434418ull,
+ 13417718896176928534ull, 8580997075163262143ull}},
+ {{2520605373700231777ull, 9164576451939507530ull,
+ 13751590223461116676ull, 1716199415032652428ull}},
+ {{5041210747400463553ull, 18329152903879015060ull,
+ 9056436373212681736ull, 3432398830065304857ull}},
+ {{10082421494800927106ull, 18211561734048478504ull,
+ 18112872746425363473ull, 6864797660130609714ull}},
+ {{5705833113702095745ull, 11021009976293516347ull,
+ 18379969808252713987ull, 1372959532026121942ull}},
+ {{11411666227404191489ull, 3595275878877481078ull,
+ 18313195542795876359ull, 2745919064052243885ull}},
+ {{4376588381098831362ull, 7190551757754962157ull,
+ 18179647011882201102ull, 5491838128104487771ull}},
+ {{8753176762197662723ull, 14381103515509924314ull,
+ 17912549950054850588ull, 10983676256208975543ull}},
+ {{1750635352439532545ull, 6565569517843895186ull,
+ 14650556434236701087ull, 2196735251241795108ull}},
+ {{3501270704879065090ull, 13131139035687790372ull,
+ 10854368794763850558ull, 4393470502483590217ull}},
+ {{7002541409758130179ull, 7815533997666029128ull,
+ 3261993515818149501ull, 8786941004967180435ull}},
+ {{16157903540919267329ull, 5252455614275116148ull,
+ 652398703163629900ull, 1757388200993436087ull}},
+ {{13869063008128983041ull, 10504911228550232297ull,
+ 1304797406327259800ull, 3514776401986872174ull}},
+ {{9291381942548414466ull, 2563078383390912979ull,
+ 2609594812654519601ull, 7029552803973744348ull}},
+ {{12926322832735413863ull, 15270010935645823888ull,
+ 11589965406756634889ull, 1405910560794748869ull}},
+ {{7405901591761276110ull, 12093277797582096161ull,
+ 4733186739803718163ull, 2811821121589497739ull}},
+ {{14811803183522552219ull, 5739811521454640706ull,
+ 9466373479607436327ull, 5623642243178995478ull}},
+ {{11176862293335552822ull, 11479623042909281413ull,
+ 486002885505321038ull, 11247284486357990957ull}},
+ {{13303418902892841534ull, 2295924608581856282ull,
+ 7475898206584884854ull, 2249456897271598191ull}},
+ {{8160093732076131452ull, 4591849217163712565ull,
+ 14951796413169769708ull, 4498913794543196382ull}},
+ {{16320187464152262904ull, 9183698434327425130ull,
+ 11456848752629987800ull, 8997827589086392765ull}},
+ {{3264037492830452581ull, 1836739686865485026ull,
+ 2291369750525997560ull, 1799565517817278553ull}},
+ {{6528074985660905162ull, 3673479373730970052ull,
+ 4582739501051995120ull, 3599131035634557106ull}},
+ {{13056149971321810324ull, 7346958747461940104ull,
+ 9165479002103990240ull, 7198262071269114212ull}},
+ {{6300578809006272388ull, 8848089378976208667ull,
+ 9211793429904618694ull, 1439652414253822842ull}},
+ {{12601157618012544776ull, 17696178757952417334ull,
+ 18423586859809237388ull, 2879304828507645684ull}},
+ {{6755571162315537936ull, 16945613442195283053ull,
+ 18400429645908923161ull, 5758609657015291369ull}},
+ {{13511142324631075871ull, 15444482810681014490ull,
+ 18354115218108294707ull, 11517219314030582739ull}},
+ {{6391577279668125498ull, 6778245376878113221ull,
+ 18428218302589300234ull, 2303443862806116547ull}},
+ {{12783154559336250995ull, 13556490753756226442ull,
+ 18409692531469048852ull, 4606887725612233095ull}},
+ {{7119565044962950374ull, 8666237433802901269ull,
+ 18372640989228546089ull, 9213775451224466191ull}},
+ {{16181308267960231368ull, 1733247486760580253ull,
+ 7363877012587619541ull, 1842755090244893238ull}},
+ {{13915872462210911119ull, 3466494973521160507ull,
+ 14727754025175239082ull, 3685510180489786476ull}},
+ {{9385000850712270622ull, 6932989947042321015ull,
+ 11008763976640926548ull, 7371020360979572953ull}},
+ {{5566348984884364448ull, 5075946804150374526ull,
+ 13269799239553916279ull, 1474204072195914590ull}},
+ {{11132697969768728896ull, 10151893608300749052ull,
+ 8092854405398280942ull, 2948408144391829181ull}},
+ {{3818651865827906175ull, 1857043142891946489ull,
+ 16185708810796561885ull, 5896816288783658362ull}},
+ {{7637303731655812349ull, 3714086285783892978ull,
+ 13924673547883572154ull, 11793632577567316725ull}},
+ {{8906158375814983117ull, 15500212516124419888ull,
+ 2784934709576714430ull, 2358726515513463345ull}},
+ {{17812316751629966233ull, 12553680958539288160ull,
+ 5569869419153428861ull, 4717453031026926690ull}},
+ {{17177889429550380849ull, 6660617843369024705ull,
+ 11139738838306857723ull, 9434906062053853380ull}},
+ {{14503624330135807140ull, 12400170012899535910ull,
+ 2227947767661371544ull, 1886981212410770676ull}},
+ {{10560504586562062663ull, 6353595952089520205ull,
+ 4455895535322743089ull, 3773962424821541352ull}},
+ {{2674265099414573710ull, 12707191904179040411ull,
+ 8911791070645486178ull, 7547924849643082704ull}},
+ {{11602899464108645712ull, 9920136010319628728ull,
+ 16539753473096738528ull, 1509584969928616540ull}},
+ {{4759054854507739807ull, 1393527946929705841ull,
+ 14632762872483925441ull, 3019169939857233081ull}},
+ {{9518109709015479614ull, 2787055893859411682ull,
+ 10818781671258299266ull, 6038339879714466163ull}},
+ {{589475344321407612ull, 5574111787718823365ull, 3190819268807046916ull,
+ 12076679759428932327ull}},
+ {{11185941513090012492ull, 12182868801769495642ull,
+ 8016861483245230029ull, 2415335951885786465ull}},
+ {{3925138952470473368ull, 5918993529829439669ull,
+ 16033722966490460059ull, 4830671903771572930ull}},
+ {{7850277904940946736ull, 11837987059658879338ull,
+ 13620701859271368502ull, 9661343807543145861ull}},
+ {{5259404395730099671ull, 13435643856157506837ull,
+ 6413489186596184023ull, 1932268761508629172ull}},
+ {{10518808791460199341ull, 8424543638605462058ull,
+ 12826978373192368047ull, 3864537523017258344ull}},
+ {{2590873509210847066ull, 16849087277210924117ull,
+ 7207212672675184478ull, 7729075046034516689ull}},
+ {{15275569960809810706ull, 10748515084926005469ull,
+ 16198837793502678188ull, 1545815009206903337ull}},
+ {{12104395847910069796ull, 3050286096142459323ull,
+ 13950931513295804761ull, 3091630018413806675ull}},
+ {{5762047622110587976ull, 6100572192284918647ull,
+ 9455118952882057906ull, 6183260036827613351ull}},
+ {{11524095244221175951ull, 12201144384569837294ull,
+ 463493832054564196ull, 12366520073655226703ull}},
+ {{13372865493069966160ull, 17197624135881608751ull,
+ 11160745210636643808ull, 2473304014731045340ull}},
+ {{8298986912430380704ull, 15948504198053665887ull,
+ 3874746347563736001ull, 4946608029462090681ull}},
+ {{16597973824860761408ull, 13450264322397780158ull,
+ 7749492695127472003ull, 9893216058924181362ull}},
+ {{14387641209197883252ull, 2690052864479556031ull,
+ 8928596168509315047ull, 1978643211784836272ull}},
+ {{10328538344686214887ull, 5380105728959112063ull,
+ 17857192337018630094ull, 3957286423569672544ull}},
+ {{2210332615662878157ull, 10760211457918224127ull,
+ 17267640600327708572ull, 7914572847139345089ull}},
+ {{11510112967358306601ull, 5841391106325555148ull,
+ 18210923379033183007ull, 1582914569427869017ull}},
+ {{4573481861007061586ull, 11682782212651110297ull,
+ 17975102684356814398ull, 3165829138855738035ull}},
+ {{9146963722014123172ull, 4918820351592668978ull,
+ 17503461295004077181ull, 6331658277711476071ull}},
+ {{18293927444028246343ull, 9837640703185337956ull,
+ 16560178516298602746ull, 12663316555422952143ull}},
+ {{3658785488805649269ull, 16724923399604708884ull,
+ 14380082147485451518ull, 2532663311084590428ull}},
+ {{7317570977611298537ull, 15003102725499866152ull,
+ 10313420221261351421ull, 5065326622169180857ull}},
+ {{14635141955222597074ull, 11559461377290180688ull,
+ 2180096368813151227ull, 10130653244338361715ull}},
+ {{2927028391044519415ull, 9690589904941856784ull, 436019273762630245ull,
+ 2026130648867672343ull}},
+ {{5854056782089038830ull, 934435736174161952ull, 872038547525260491ull,
+ 4052261297735344686ull}},
+ {{11708113564178077660ull, 1868871472348323904ull,
+ 1744077095050520982ull, 8104522595470689372ull}},
+ {{13409669157061346502ull, 15131169553437306073ull,
+ 7727513048493924842ull, 1620904519094137874ull}},
+ {{8372594240413141387ull, 11815595033165060531ull,
+ 15455026096987849685ull, 3241809038188275748ull}},
+ {{16745188480826282774ull, 5184445992620569446ull,
+ 12463308120266147755ull, 6483618076376551497ull}},
+ {{14417084140390987525ull, 8415586828007934535ull,
+ 9871359253537050197ull, 1296723615275310299ull}},
+ {{10387424207072423433ull, 16831173656015869071ull,
+ 1295974433364548778ull, 2593447230550620599ull}},
+ {{2328104340435295250ull, 15215603238322186527ull,
+ 2591948866729097557ull, 5186894461101241198ull}},
+ {{4656208680870590499ull, 11984462402934821438ull,
+ 5183897733458195115ull, 10373788922202482396ull}},
+ {{15688636995141759393ull, 6086241295328874610ull,
+ 4726128361433549346ull, 2074757784440496479ull}},
+ {{12930529916573967170ull, 12172482590657749221ull,
+ 9452256722867098692ull, 4149515568880992958ull}},
+ {{7414315759438382723ull, 5898221107605946827ull, 457769372024645769ull,
+ 8299031137761985917ull}},
+ {{12550909596113407515ull, 4868993036263099688ull,
+ 7470251503888749800ull, 1659806227552397183ull}},
+ {{6655075118517263413ull, 9737986072526199377ull,
+ 14940503007777499600ull, 3319612455104794366ull}},
+ {{13310150237034526825ull, 1029228071342847138ull,
+ 11434261941845447585ull, 6639224910209588733ull}},
+ {{6351378862148815689ull, 11273892058494300397ull,
+ 13354898832594820486ull, 1327844982041917746ull}},
+ {{12702757724297631377ull, 4101040043279049178ull,
+ 8263053591480089357ull, 2655689964083835493ull}},
+ {{6958771374885711137ull, 8202080086558098357ull,
+ 16526107182960178714ull, 5311379928167670986ull}},
+ {{13917542749771422273ull, 16404160173116196714ull,
+ 14605470292210805812ull, 10622759856335341973ull}},
+ {{17540903808921925748ull, 3280832034623239342ull,
+ 13989140502667892132ull, 2124551971267068394ull}},
+ {{16635063544134299879ull, 6561664069246478685ull,
+ 9531536931626232648ull, 4249103942534136789ull}},
+ {{14823383014559048142ull, 13123328138492957371ull,
+ 616329789542913680ull, 8498207885068273579ull}},
+ {{2964676602911809629ull, 17382060886666232767ull,
+ 14880661216876224028ull, 1699641577013654715ull}},
+ {{5929353205823619257ull, 16317377699622913918ull,
+ 11314578360042896441ull, 3399283154027309431ull}},
+ {{11858706411647238513ull, 14188011325536276220ull,
+ 4182412646376241267ull, 6798566308054618863ull}},
+ {{2371741282329447703ull, 2837602265107255244ull,
+ 11904528973500979223ull, 1359713261610923772ull}},
+ {{4743482564658895406ull, 5675204530214510488ull,
+ 5362313873292406830ull, 2719426523221847545ull}},
+ {{9486965129317790811ull, 11350409060429020976ull,
+ 10724627746584813660ull, 5438853046443695090ull}},
+ {{527186184926030005ull, 4254074047148490337ull, 3002511419460075705ull,
+ 10877706092887390181ull}},
+ {{11173483681210936971ull, 4540163624171608390ull,
+ 4289851098633925464ull, 2175541218577478036ull}},
+ {{3900223288712322326ull, 9080327248343216781ull,
+ 8579702197267850928ull, 4351082437154956072ull}},
+ {{7800446577424644651ull, 18160654496686433562ull,
+ 17159404394535701856ull, 8702164874309912144ull}},
+ {{8938786944968749577ull, 3632130899337286712ull,
+ 18189276137874781664ull, 1740432974861982428ull}},
+ {{17877573889937499153ull, 7264261798674573424ull,
+ 17931808202040011712ull, 3480865949723964857ull}},
+ {{17308403706165446690ull, 14528523597349146849ull,
+ 17416872330370471808ull, 6961731899447929715ull}},
+ {{10840378370716909985ull, 13973751163695560339ull,
+ 3483374466074094361ull, 1392346379889585943ull}},
+ {{3234012667724268353ull, 9500758253681569063ull,
+ 6966748932148188723ull, 2784692759779171886ull}},
+ {{6468025335448536706ull, 554772433653586510ull,
+ 13933497864296377447ull, 5569385519558343772ull}},
+ {{12936050670897073411ull, 1109544867307173020ull,
+ 9420251654883203278ull, 11138771039116687545ull}},
+ {{13655256578405145652ull, 11289955417687165573ull,
+ 1884050330976640655ull, 2227754207823337509ull}},
+ {{8863769083100739688ull, 4133166761664779531ull,
+ 3768100661953281311ull, 4455508415646675018ull}},
+ {{17727538166201479375ull, 8266333523329559062ull,
+ 7536201323906562622ull, 8911016831293350036ull}},
+ {{3545507633240295875ull, 12721313148891642782ull,
+ 5196589079523222847ull, 1782203366258670007ull}},
+ {{7091015266480591750ull, 6995882224073733948ull,
+ 10393178159046445695ull, 3564406732517340014ull}},
+ {{14182030532961183500ull, 13991764448147467896ull,
+ 2339612244383339774ull, 7128813465034680029ull}},
+ {{17593801365559877993ull, 13866399333855224548ull,
+ 15225317707844309247ull, 1425762693006936005ull}},
+ {{16740858657410204370ull, 9286054594000897481ull,
+ 12003891341979066879ull, 2851525386013872011ull}},
+ {{15034973241110857124ull, 125365114292243347ull,
+ 5561038610248582143ull, 5703050772027744023ull}},
+ {{11623202408512162631ull, 250730228584486695ull,
+ 11122077220497164286ull, 11406101544055488046ull}},
+ {{9703338111186253173ull, 7428843675200717985ull,
+ 5913764258841343180ull, 2281220308811097609ull}},
+ {{959932148662954729ull, 14857687350401435971ull,
+ 11827528517682686360ull, 4562440617622195218ull}},
+ {{1919864297325909458ull, 11268630627093320326ull,
+ 5208312961655821105ull, 9124881235244390437ull}},
+ {{11452019303690912862ull, 9632423754902484711ull,
+ 8420360221814984867ull, 1824976247048878087ull}},
+ {{4457294533672274107ull, 818103436095417807ull,
+ 16840720443629969735ull, 3649952494097756174ull}},
+ {{8914589067344548213ull, 1636206872190835614ull,
+ 15234696813550387854ull, 7299904988195512349ull}},
+ {{9161615442952730289ull, 11395287818663898092ull,
+ 17804334621677718863ull, 1459980997639102469ull}},
+ {{18323230885905460578ull, 4343831563618244568ull,
+ 17161925169645886111ull, 2919961995278204939ull}},
+ {{18199717698101369540ull, 8687663127236489137ull,
+ 15877106265582220606ull, 5839923990556409879ull}},
+ {{17952691322493187464ull, 17375326254472978275ull,
+ 13307468457454889596ull, 11679847981112819759ull}},
+ {{3590538264498637493ull, 3475065250894595655ull,
+ 17418888950458619212ull, 2335969596222563951ull}},
+ {{7181076528997274986ull, 6950130501789191310ull,
+ 16391033827207686808ull, 4671939192445127903ull}},
+ {{14362153057994549971ull, 13900261003578382620ull,
+ 14335323580705822000ull, 9343878384890255807ull}},
+ {{10251128241082730641ull, 10158749830199497170ull,
+ 10245762345624985046ull, 1868775676978051161ull}},
+ {{2055512408455909666ull, 1870755586689442725ull,
+ 2044780617540418477ull, 3737551353956102323ull}},
+ {{4111024816911819331ull, 3741511173378885450ull,
+ 4089561235080836954ull, 7475102707912204646ull}},
+ {{822204963382363867ull, 748302234675777090ull, 4507261061758077714ull,
+ 1495020541582440929ull}},
+ {{1644409926764727733ull, 1496604469351554180ull,
+ 9014522123516155428ull, 2990041083164881858ull}},
+ {{3288819853529455465ull, 2993208938703108360ull,
+ 18029044247032310856ull, 5980082166329763716ull}},
+ {{6577639707058910929ull, 5986417877406216720ull,
+ 17611344420355070096ull, 11960164332659527433ull}},
+ {{16072923200379423479ull, 15954678834448884636ull,
+ 14590315328296744988ull, 2392032866531905486ull}},
+ {{13699102327049295341ull, 13462613595188217657ull,
+ 10733886582883938361ull, 4784065733063810973ull}},
+ {{8951460580389039066ull, 8478483116666883699ull,
+ 3021029092058325107ull, 9568131466127621947ull}},
+ {{12858338560303538783ull, 16453091882301018032ull,
+ 7982903447895485667ull, 1913626293225524389ull}},
+ {{7269933046897525950ull, 14459439690892484449ull,
+ 15965806895790971335ull, 3827252586451048778ull}},
+ {{14539866093795051900ull, 10472135308075417282ull,
+ 13484869717872391055ull, 7654505172902097557ull}},
+ {{17665368477726651673ull, 9473124691098904102ull,
+ 10075671573058298857ull, 1530901034580419511ull}},
+ {{16883992881743751730ull, 499505308488256589ull,
+ 1704599072407046099ull, 3061802069160839023ull}},
+ {{15321241689777951843ull, 999010616976513179ull,
+ 3409198144814092198ull, 6123604138321678046ull}},
+ {{12195739305846352069ull, 1998021233953026359ull,
+ 6818396289628184396ull, 12247208276643356092ull}},
+ {{9817845490653091061ull, 11467650691016336241ull,
+ 8742376887409457525ull, 2449441655328671218ull}},
+ {{1188946907596630505ull, 4488557308323120867ull,
+ 17484753774818915051ull, 4898883310657342436ull}},
+ {{2377893815193261009ull, 8977114616646241734ull,
+ 16522763475928278486ull, 9797766621314684873ull}},
+ {{11543625207264383172ull, 16552818182296889639ull,
+ 14372599139411386666ull, 1959553324262936974ull}},
+ {{4640506340819214727ull, 14658892290884227663ull,
+ 10298454205113221717ull, 3919106648525873949ull}},
+ {{9281012681638429454ull, 10871040508058903710ull,
+ 2150164336516891819ull, 7838213297051747899ull}},
+ {{12924248980553416861ull, 13242254545837511711ull,
+ 15187428126271019656ull, 1567642659410349579ull}},
+ {{7401753887397282105ull, 8037765017965471807ull,
+ 11928112178832487697ull, 3135285318820699159ull}},
+ {{14803507774794564210ull, 16075530035930943614ull,
+ 5409480283955423778ull, 6270570637641398319ull}},
+ {{11160271475879576803ull, 13704315998152335613ull,
+ 10818960567910847557ull, 12541141275282796638ull}},
+ {{13300100739401646331ull, 2740863199630467122ull,
+ 13231838557807900481ull, 2508228255056559327ull}},
+ {{8153457405093741045ull, 5481726399260934245ull,
+ 8016933041906249346ull, 5016456510113118655ull}},
+ {{16306914810187482089ull, 10963452798521868490ull,
+ 16033866083812498692ull, 10032913020226237310ull}},
+ {{10640080591521317065ull, 9571388189188194344ull,
+ 3206773216762499738ull, 2006582604045247462ull}},
+ {{2833417109333082513ull, 696032304666837073ull, 6413546433524999477ull,
+ 4013165208090494924ull}},
+ {{5666834218666165025ull, 1392064609333674146ull,
+ 12827092867049998954ull, 8026330416180989848ull}},
+ {{12201413287958963975ull, 7657110551350555475ull,
+ 13633465017635730760ull, 1605266083236197969ull}},
+ {{5956082502208376333ull, 15314221102701110951ull,
+ 8820185961561909904ull, 3210532166472395939ull}},
+ {{11912165004416752666ull, 12181698131692670286ull,
+ 17640371923123819809ull, 6421064332944791878ull}},
+ {{13450479445109081503ull, 9815037255822354703ull,
+ 14596120828850494931ull, 1284212866588958375ull}},
+ {{8454214816508611390ull, 1183330437935157791ull,
+ 10745497583991438247ull, 2568425733177916751ull}},
+ {{16908429633017222779ull, 2366660875870315582ull,
+ 3044251094273324878ull, 5136851466355833503ull}},
+ {{15370115192324893942ull, 4733321751740631165ull,
+ 6088502188546649756ull, 10273702932711667006ull}},
+ {{10452720667948799435ull, 8325361979831946879ull,
+ 4907049252451240274ull, 2054740586542333401ull}},
+ {{2458697262188047254ull, 16650723959663893759ull,
+ 9814098504902480548ull, 4109481173084666802ull}},
+ {{4917394524376094508ull, 14854703845618235902ull,
+ 1181452936095409481ull, 8218962346169333605ull}},
+ {{12051525349100949872ull, 6660289583865557503ull,
+ 236290587219081896ull, 1643792469233866721ull}},
+ {{5656306624492348127ull, 13320579167731115007ull,
+ 472581174438163792ull, 3287584938467733442ull}},
+ {{11312613248984696253ull, 8194414261752678398ull,
+ 945162348876327585ull, 6575169876935466884ull}},
+ {{9641220279280759897ull, 16396278111318176972ull,
+ 14946427728742906809ull, 1315033975387093376ull}},
+ {{835696484851968178ull, 14345812148926802329ull,
+ 11446111383776262003ull, 2630067950774186753ull}},
+ {{1671392969703936356ull, 10244880224144053042ull,
+ 4445478693842972391ull, 5260135901548373507ull}},
+ {{3342785939407872711ull, 2043016374578554468ull,
+ 8890957387685944783ull, 10520271803096747014ull}},
+ {{668557187881574543ull, 7787300904399531540ull,
+ 16535586736504830249ull, 2104054360619349402ull}},
+ {{1337114375763149085ull, 15574601808799063080ull,
+ 14624429399300108882ull, 4208108721238698805ull}},
+ {{2674228751526298169ull, 12702459543888574544ull,
+ 10802114724890666149ull, 8416217442477397611ull}},
+ {{15292241009272900927ull, 2540491908777714908ull,
+ 5849771759720043553ull, 1683243488495479522ull}},
+ {{12137737944836250237ull, 5080983817555429817ull,
+ 11699543519440087106ull, 3366486976990959044ull}},
+ {{5828731815962948858ull, 10161967635110859635ull,
+ 4952342965170622596ull, 6732973953981918089ull}},
+ {{1165746363192589772ull, 2032393527022171927ull,
+ 15747863852001765812ull, 1346594790796383617ull}},
+ {{2331492726385179544ull, 4064787054044343854ull,
+ 13048983630293980008ull, 2693189581592767235ull}},
+ {{4662985452770359087ull, 8129574108088687708ull,
+ 7651223186878408400ull, 5386379163185534471ull}},
+ {{9325970905540718173ull, 16259148216177375416ull,
+ 15302446373756816800ull, 10772758326371068942ull}},
+ {{12933240625333874605ull, 10630527272719295729ull,
+ 10439186904235184006ull, 2154551665274213788ull}},
+ {{7419737176958197593ull, 2814310471729039843ull,
+ 2431629734760816397ull, 4309103330548427577ull}},
+ {{14839474353916395185ull, 5628620943458079686ull,
+ 4863259469521632794ull, 8618206661096855154ull}},
+ {{17725290129750920330ull, 12193770632917346906ull,
+ 15730047152871967851ull, 1723641332219371030ull}},
+ {{17003836185792289044ull, 5940797192125142197ull,
+ 13013350232034384087ull, 3447282664438742061ull}},
+ {{15560928297875026471ull, 11881594384250284395ull,
+ 7579956390359216558ull, 6894565328877484123ull}},
+ {{6801534474316915618ull, 6065667691591967202ull,
+ 12584037722297574281ull, 1378913065775496824ull}},
+ {{13603068948633831235ull, 12131335383183934404ull,
+ 6721331370885596946ull, 2757826131550993649ull}},
+ {{8759393823558110854ull, 5815926692658317193ull,
+ 13442662741771193893ull, 5515652263101987298ull}},
+ {{17518787647116221708ull, 11631853385316634386ull,
+ 8438581409832836170ull, 11031304526203974597ull}},
+ {{14571803973648975312ull, 9705068306547147523ull,
+ 9066413911450387880ull, 2206260905240794919ull}},
+ {{10696863873588399007ull, 963392539384743431ull,
+ 18132827822900775761ull, 4412521810481589838ull}},
+ {{2946983673467246397ull, 1926785078769486863ull,
+ 17818911572091999906ull, 8825043620963179677ull}},
+ {{4278745549435359603ull, 11453403459979628342ull,
+ 10942479943902220627ull, 1765008724192635935ull}},
+ {{8557491098870719205ull, 4460062846249705068ull,
+ 3438215814094889639ull, 3530017448385271871ull}},
+ {{17114982197741438410ull, 8920125692499410136ull,
+ 6876431628189779278ull, 7060034896770543742ull}},
+ {{7112345254290198006ull, 1784025138499882027ull,
+ 8753983955121776502ull, 1412006979354108748ull}},
+ {{14224690508580396011ull, 3568050276999764054ull,
+ 17507967910243553004ull, 2824013958708217496ull}},
+ {{10002636943451240405ull, 7136100553999528109ull,
+ 16569191746777554392ull, 5648027917416434993ull}},
+ {{1558529813192929194ull, 14272201107999056219ull,
+ 14691639419845557168ull, 11296055834832869987ull}},
+ {{15069101221606227132ull, 2854440221599811243ull,
+ 10317025513452932080ull, 2259211166966573997ull}},
+ {{11691458369502902647ull, 5708880443199622487ull,
+ 2187306953196312544ull, 4518422333933147995ull}},
+ {{4936172665296253678ull, 11417760886399244975ull,
+ 4374613906392625088ull, 9036844667866295990ull}},
+ {{12055280977284981706ull, 13351598621505579964ull,
+ 874922781278525017ull, 1807368933573259198ull}},
+ {{5663817880860411795ull, 8256453169301608313ull,
+ 1749845562557050035ull, 3614737867146518396ull}},
+ {{11327635761720823589ull, 16512906338603216626ull,
+ 3499691125114100070ull, 7229475734293036792ull}},
+ {{13333573596569895688ull, 10681278897204463971ull,
+ 8078635854506640660ull, 1445895146858607358ull}},
+ {{8220403119430239759ull, 2915813720699376327ull,
+ 16157271709013281321ull, 2891790293717214716ull}},
+ {{16440806238860479518ull, 5831627441398752654ull,
+ 13867799344317011026ull, 5783580587434429433ull}},
+ {{14434868404011407419ull, 11663254882797505309ull,
+ 9288854614924470436ull, 11567161174868858867ull}},
+ {{10265671310286102131ull, 13400697420785232031ull,
+ 9236468552468714733ull, 2313432234973771773ull}},
+ {{2084598546862652645ull, 8354650767860912447ull, 26193031227877851ull,
+ 4626864469947543547ull}},
+ {{4169197093725305289ull, 16709301535721824894ull, 52386062455755702ull,
+ 9253728939895087094ull}},
+ {{833839418745061058ull, 7031209121886275302ull,
+ 14767872471458792433ull, 1850745787979017418ull}},
+ {{1667678837490122116ull, 14062418243772550604ull,
+ 11089000869208033250ull, 3701491575958034837ull}},
+ {{3335357674980244231ull, 9678092413835549592ull,
+ 3731257664706514885ull, 7402983151916069675ull}},
+ {{8045769164479869493ull, 1935618482767109918ull, 746251532941302977ull,
+ 1480596630383213935ull}},
+ {{16091538328959738986ull, 3871236965534219836ull,
+ 1492503065882605954ull, 2961193260766427870ull}},
+ {{13736332584209926355ull, 7742473931068439673ull,
+ 2985006131765211908ull, 5922386521532855740ull}},
+ {{9025921094710301093ull, 15484947862136879347ull,
+ 5970012263530423816ull, 11844773043065711480ull}},
+ {{12873230663167791189ull, 6786338387169286192ull,
+ 1194002452706084763ull, 2368954608613142296ull}},
+ {{7299717252626030761ull, 13572676774338572385ull,
+ 2388004905412169526ull, 4737909217226284592ull}},
+ {{14599434505252061521ull, 8698609474967593154ull,
+ 4776009810824339053ull, 9475818434452569184ull}},
+ {{6609235715792322628ull, 9118419524477339277ull,
+ 15712597221132509103ull, 1895163686890513836ull}},
+ {{13218471431584645255ull, 18236839048954678554ull,
+ 12978450368555466590ull, 3790327373781027673ull}},
+ {{7990198789459738893ull, 18026934024199805493ull,
+ 7510156663401381565ull, 7580654747562055347ull}},
+ {{1598039757891947779ull, 10984084434323781745ull,
+ 8880728962164096959ull, 1516130949512411069ull}},
+ {{3196079515783895558ull, 3521424794938011874ull,
+ 17761457924328193919ull, 3032261899024822138ull}},
+ {{6392159031567791115ull, 7042849589876023748ull,
+ 17076171774946836222ull, 6064523798049644277ull}},
+ {{12784318063135582229ull, 14085699179752047496ull,
+ 15705599476184120828ull, 12129047596099288555ull}},
+ {{17314258871594757739ull, 13885186280176140468ull,
+ 3141119895236824165ull, 2425809519219857711ull}},
+ {{16181773669479963862ull, 9323628486642729321ull,
+ 6282239790473648331ull, 4851619038439715422ull}},
+ {{13916803265250376107ull, 200512899575907027ull,
+ 12564479580947296663ull, 9703238076879430844ull}},
+ {{17540755912017716515ull, 7418800209399002051ull,
+ 17270291175157100625ull, 1940647615375886168ull}},
+ {{16634767750325881413ull, 14837600418798004103ull,
+ 16093838276604649634ull, 3881295230751772337ull}},
+ {{14822791426942211209ull, 11228456763886456591ull,
+ 13740932479499747653ull, 7762590461503544675ull}},
+ {{17721953544356083535ull, 13313737797003022287ull,
+ 2748186495899949530ull, 1552518092300708935ull}},
+ {{16997163015002615453ull, 8180731520296492959ull,
+ 5496372991799899061ull, 3105036184601417870ull}},
+ {{15547581956295679290ull, 16361463040592985919ull,
+ 10992745983599798122ull, 6210072369202835740ull}},
+ {{12648419838881806964ull, 14276182007476420223ull,
+ 3538747893490044629ull, 12420144738405671481ull}},
+ {{13597730412002092363ull, 2855236401495284044ull,
+ 4397098393439919249ull, 2484028947681134296ull}},
+ {{8748716750294633109ull, 5710472802990568089ull,
+ 8794196786879838498ull, 4968057895362268592ull}},
+ {{17497433500589266218ull, 11420945605981136178ull,
+ 17588393573759676996ull, 9936115790724537184ull}},
+ {{14567533144343584214ull, 2284189121196227235ull,
+ 18275073973719576692ull, 1987223158144907436ull}},
+ {{10688322214977616811ull, 4568378242392454471ull,
+ 18103403873729601768ull, 3974446316289814873ull}},
+ {{2929900356245682005ull, 9136756484784908943ull,
+ 17760063673749651920ull, 7948892632579629747ull}},
+ {{585980071249136401ull, 9206048926440802435ull,
+ 10930710364233751030ull, 1589778526515925949ull}},
+ {{1171960142498272802ull, 18412097852881604870ull,
+ 3414676654757950444ull, 3179557053031851899ull}},
+ {{2343920284996545604ull, 18377451632053658124ull,
+ 6829353309515900889ull, 6359114106063703798ull}},
+ {{4687840569993091207ull, 18308159190397764632ull,
+ 13658706619031801779ull, 12718228212127407596ull}},
+ {{8316265743482438888ull, 3661631838079552926ull,
+ 6421090138548270679ull, 2543645642425481519ull}},
+ {{16632531486964877776ull, 7323263676159105852ull,
+ 12842180277096541358ull, 5087291284850963038ull}},
+ {{14818318900220203935ull, 14646527352318211705ull,
+ 7237616480483531100ull, 10174582569701926077ull}},
+ {{10342361409527861434ull, 10308003099947462987ull,
+ 8826220925580526866ull, 2034916513940385215ull}},
+ {{2237978745346171251ull, 2169262126185374359ull,
+ 17652441851161053733ull, 4069833027880770430ull}},
+ {{4475957490692342502ull, 4338524252370748718ull,
+ 16858139628612555850ull, 8139666055761540861ull}},
+ {{15652586757106109794ull, 4557053665216060066ull,
+ 7060976740464421493ull, 1627933211152308172ull}},
+ {{12858429440502667971ull, 9114107330432120133ull,
+ 14121953480928842986ull, 3255866422304616344ull}},
+ {{7270114807295784325ull, 18228214660864240267ull,
+ 9797162888148134356ull, 6511732844609232689ull}},
+ {{8832720590942977512ull, 3645642932172848053ull,
+ 16716827836597268164ull, 1302346568921846537ull}},
+ {{17665441181885955023ull, 7291285864345696106ull,
+ 14986911599484984712ull, 2604693137843693075ull}},
+ {{16884138290062358430ull, 14582571728691392213ull,
+ 11527079125260417808ull, 5209386275687386151ull}},
+ {{15321532506415165243ull, 10718399383673232811ull,
+ 4607414176811284001ull, 10418772551374772303ull}},
+ {{3064306501283033049ull, 16901075135702287855ull,
+ 11989529279587987769ull, 2083754510274954460ull}},
+ {{6128613002566066097ull, 15355406197695024094ull,
+ 5532314485466423923ull, 4167509020549908921ull}},
+ {{12257226005132132194ull, 12264068321680496572ull,
+ 11064628970932847847ull, 8335018041099817842ull}},
+ {{6140794015768336762ull, 17210208923303740607ull,
+ 9591623423670390215ull, 1667003608219963568ull}},
+ {{12281588031536673524ull, 15973673772897929598ull,
+ 736502773631228815ull, 3334007216439927137ull}},
+ {{6116431989363795432ull, 13500603472086307581ull,
+ 1473005547262457631ull, 6668014432879854274ull}},
+ {{4912635212614669410ull, 2700120694417261516ull,
+ 15051996368420132819ull, 1333602886575970854ull}},
+ {{9825270425229338820ull, 5400241388834523032ull,
+ 11657248663130714022ull, 2667205773151941709ull}},
+ {{1203796776749126023ull, 10800482777669046065ull,
+ 4867753252551876428ull, 5334411546303883419ull}},
+ {{2407593553498252045ull, 3154221481628540514ull,
+ 9735506505103752857ull, 10668823092607766838ull}},
+ {{15238913969667291702ull, 630844296325708102ull,
+ 13015147745246481541ull, 2133764618521553367ull}},
+ {{12031083865625031788ull, 1261688592651416205ull,
+ 7583551416783411466ull, 4267529237043106735ull}},
+ {{5615423657540511959ull, 2523377185302832411ull,
+ 15167102833566822932ull, 8535058474086213470ull}},
+ {{12191131175733833362ull, 7883373066544387128ull,
+ 3033420566713364586ull, 1707011694817242694ull}},
+ {{5935518277758115107ull, 15766746133088774257ull,
+ 6066841133426729172ull, 3414023389634485388ull}},
+ {{11871036555516230214ull, 13086748192467996898ull,
+ 12133682266853458345ull, 6828046779268970776ull}},
+ {{17131602570070887336ull, 6306698453235509702ull,
+ 6116085268112601992ull, 1365609355853794155ull}},
+ {{15816461066432223055ull, 12613396906471019405ull,
+ 12232170536225203984ull, 2731218711707588310ull}},
+ {{13186178059154894494ull, 6780049739232487195ull,
+ 6017596998740856353ull, 5462437423415176621ull}},
+ {{7925612044600237372ull, 13560099478464974391ull,
+ 12035193997481712706ull, 10924874846830353242ull}},
+ {{16342517667887688768ull, 13780066339918725847ull,
+ 9785736428980163187ull, 2184974969366070648ull}},
+ {{14238291262065825919ull, 9113388606127900079ull,
+ 1124728784250774759ull, 4369949938732141297ull}},
+ {{10029838450422100221ull, 18226777212255800159ull,
+ 2249457568501549518ull, 8739899877464282594ull}},
+ {{5695316504826330368ull, 11024053071934980678ull,
+ 15207286772667951196ull, 1747979975492856518ull}},
+ {{11390633009652660735ull, 3601362070160409740ull,
+ 11967829471626350777ull, 3495959950985713037ull}},
+ {{4334521945595769854ull, 7202724140320819481ull,
+ 5488914869543149938ull, 6991919901971426075ull}},
+ {{15624299648086795264ull, 12508591272289894865ull,
+ 1097782973908629987ull, 1398383980394285215ull}},
+ {{12801855222464038911ull, 6570438470870238115ull,
+ 2195565947817259975ull, 2796767960788570430ull}},
+ {{7156966371218526206ull, 13140876941740476231ull,
+ 4391131895634519950ull, 5593535921577140860ull}},
+ {{14313932742437052412ull, 7835009809771400846ull,
+ 8782263791269039901ull, 11187071843154281720ull}},
+ {{10241484177971231129ull, 5256350776696190492ull,
+ 1756452758253807980ull, 2237414368630856344ull}},
+ {{2036224282232910642ull, 10512701553392380985ull,
+ 3512905516507615960ull, 4474828737261712688ull}},
+ {{4072448564465821284ull, 2578659033075210354ull,
+ 7025811033015231921ull, 8949657474523425376ull}},
+ {{4503838527635074580ull, 7894429436098862717ull,
+ 5094511021344956707ull, 1789931494904685075ull}},
+ {{9007677055270149160ull, 15788858872197725434ull,
+ 10189022042689913414ull, 3579862989809370150ull}},
+ {{18015354110540298320ull, 13130973670685899252ull,
+ 1931300011670275213ull, 7159725979618740301ull}},
+ {{7292419636849969988ull, 17383589993104821143ull,
+ 4075608817075965365ull, 1431945195923748060ull}},
+ {{14584839273699939975ull, 16320435912500090670ull,
+ 8151217634151930731ull, 2863890391847496120ull}},
+ {{10722934473690328333ull, 14194127751290629725ull,
+ 16302435268303861463ull, 5727780783694992240ull}},
+ {{2999124873671105049ull, 9941511428871707835ull,
+ 14158126462898171311ull, 11455561567389984481ull}},
+ {{7978522604218041657ull, 9366999915258162213ull,
+ 6520974107321544585ull, 2291112313477996896ull}},
+ {{15957045208436083313ull, 287255756806772810ull,
+ 13041948214643089171ull, 4582224626955993792ull}},
+ {{13467346343162615009ull, 574511513613545621ull,
+ 7637152355576626726ull, 9164449253911987585ull}},
+ {{10072166898116343649ull, 3804251117464619447ull,
+ 1527430471115325345ull, 1832889850782397517ull}},
+ {{1697589722523135681ull, 7608502234929238895ull,
+ 3054860942230650690ull, 3665779701564795034ull}},
+ {{3395179445046271361ull, 15217004469858477790ull,
+ 6109721884461301380ull, 7331559403129590068ull}},
+ {{11747082333234985242ull, 14111447338197426527ull,
+ 12289990821117991245ull, 1466311880625918013ull}},
+ {{5047420592760418868ull, 9776150602685301439ull,
+ 6133237568526430875ull, 2932623761251836027ull}},
+ {{10094841185520837735ull, 1105557131661051262ull,
+ 12266475137052861751ull, 5865247522503672054ull}},
+ {{1742938297332123854ull, 2211114263322102525ull,
+ 6086206200396171886ull, 11730495045007344109ull}},
+ {{348587659466424771ull, 442222852664420505ull, 15974636499046875670ull,
+ 2346099009001468821ull}},
+ {{697175318932849542ull, 884445705328841010ull, 13502528924384199724ull,
+ 4692198018002937643ull}},
+ {{1394350637865699083ull, 1768891410657682020ull,
+ 8558313775058847832ull, 9384396036005875287ull}},
+ {{15036265386540781110ull, 15111173541099177696ull,
+ 9090360384495590212ull, 1876879207201175057ull}},
+ {{11625786699372010603ull, 11775603008488803777ull,
+ 18180720768991180425ull, 3753758414402350114ull}},
+ {{4804829325034469590ull, 5104461943268055939ull,
+ 17914697464272809235ull, 7507516828804700229ull}},
+ {{12029012309232624888ull, 15778287647621252480ull,
+ 18340334751822203139ull, 1501503365760940045ull}},
+ {{5611280544755698159ull, 13109831221532953345ull,
+ 18233925429934854663ull, 3003006731521880091ull}},
+ {{11222561089511396318ull, 7772918369356355074ull,
+ 18021106786160157711ull, 6006013463043760183ull}},
+ {{3998378105313241020ull, 15545836738712710149ull,
+ 17595469498610763806ull, 12012026926087520367ull}},
+ {{8178373250546468851ull, 14177213791968272999ull,
+ 10897791529205973407ull, 2402405385217504073ull}},
+ {{16356746501092937701ull, 9907683510226994382ull,
+ 3348838984702395199ull, 4804810770435008147ull}},
+ {{14266748928476323786ull, 1368622946744437149ull,
+ 6697677969404790399ull, 9609621540870016294ull}},
+ {{10232047415179085404ull, 11341771033574618399ull,
+ 16096930852848599372ull, 1921924308174003258ull}},
+ {{2017350756648619191ull, 4236797993439685183ull,
+ 13747117631987647129ull, 3843848616348006517ull}},
+ {{4034701513297238382ull, 8473595986879370366ull,
+ 9047491190265742642ull, 7687697232696013035ull}},
+ {{11874986746885178646ull, 9073416826859694719ull,
+ 1809498238053148528ull, 1537539446539202607ull}},
+ {{5303229420060805676ull, 18146833653719389439ull,
+ 3618996476106297056ull, 3075078893078405214ull}},
+ {{10606458840121611352ull, 17846923233729227262ull,
+ 7237992952212594113ull, 6150157786156810428ull}},
+ {{2766173606533671088ull, 17247102393748902909ull,
+ 14475985904425188227ull, 12300315572313620856ull}},
+ {{7931932350790554864ull, 14517466922975511551ull,
+ 6584545995626947968ull, 2460063114462724171ull}},
+ {{15863864701581109728ull, 10588189772241471486ull,
+ 13169091991253895937ull, 4920126228925448342ull}},
+ {{13280985329452667840ull, 2729635470773391357ull,
+ 7891439908798240259ull, 9840252457850896685ull}},
+ {{6345545880632443892ull, 15303322353122319564ull,
+ 1578287981759648051ull, 1968050491570179337ull}},
+ {{12691091761264887783ull, 12159900632535087512ull,
+ 3156575963519296103ull, 3936100983140358674ull}},
+ {{6935439448820223949ull, 5873057191360623409ull,
+ 6313151927038592207ull, 7872201966280717348ull}},
+ {{16144483148731686083ull, 1174611438272124681ull,
+ 12330676829633449411ull, 1574440393256143469ull}},
+ {{13842222223753820550ull, 2349222876544249363ull,
+ 6214609585557347206ull, 3148880786512286939ull}},
+ {{9237700373798089483ull, 4698445753088498727ull,
+ 12429219171114694412ull, 6297761573024573878ull}},
+ {{28656673886627349ull, 9396891506176997455ull, 6411694268519837208ull,
+ 12595523146049147757ull}},
+ {{5731334777325470ull, 1879378301235399491ull, 8661036483187788088ull,
+ 2519104629209829551ull}},
+ {{11462669554650940ull, 3758756602470798982ull, 17322072966375576176ull,
+ 5038209258419659102ull}},
+ {{22925339109301879ull, 7517513204941597964ull, 16197401859041600736ull,
+ 10076418516839318205ull}},
+ {{4585067821860376ull, 5192851455730229916ull, 3239480371808320147ull,
+ 2015283703367863641ull}},
+ {{9170135643720752ull, 10385702911460459832ull, 6478960743616640294ull,
+ 4030567406735727282ull}},
+ {{18340271287441503ull, 2324661749211368048ull, 12957921487233280589ull,
+ 8061134813471454564ull}},
+ {{3693016868999398624ull, 11532978794068004579ull,
+ 17348979556414297410ull, 1612226962694290912ull}},
+ {{7386033737998797248ull, 4619213514426457542ull,
+ 16251215039119043205ull, 3224453925388581825ull}},
+ {{14772067475997594496ull, 9238427028852915084ull,
+ 14055686004528534794ull, 6448907850777163651ull}},
+ {{17711808754167160192ull, 1847685405770583016ull,
+ 6500486015647617282ull, 1289781570155432730ull}},
+ {{16976873434624768768ull, 3695370811541166033ull,
+ 13000972031295234564ull, 2579563140310865460ull}},
+ {{15507002795539985920ull, 7390741623082332067ull,
+ 7555199988880917512ull, 5159126280621730921ull}},
+ {{12567261517370420223ull, 14781483246164664135ull,
+ 15110399977761835024ull, 10318252561243461842ull}},
+ {{6202801118215994368ull, 6645645463974843150ull,
+ 10400777625036187651ull, 2063650512248692368ull}},
+ {{12405602236431988736ull, 13291290927949686300ull,
+ 2354811176362823686ull, 4127301024497384737ull}},
+ {{6364460399154425855ull, 8135837782189820985ull,
+ 4709622352725647373ull, 8254602048994769474ull}},
+ {{8651589709314705818ull, 9005865185921784843ull,
+ 15699319729512770767ull, 1650920409798953894ull}},
+ {{17303179418629411635ull, 18011730371843569686ull,
+ 12951895385315989918ull, 3301840819597907789ull}},
+ {{16159614763549271654ull, 17576716669977587757ull,
+ 7457046696922428221ull, 6603681639195815579ull}},
+ {{10610620582193674978ull, 3515343333995517551ull,
+ 16248804598352126937ull, 1320736327839163115ull}},
+ {{2774497090677798339ull, 7030686667991035103ull,
+ 14050865122994702258ull, 2641472655678326231ull}},
+ {{5548994181355596677ull, 14061373335982070206ull,
+ 9654986172279852900ull, 5282945311356652463ull}},
+ {{11097988362711193353ull, 9676002598254588796ull,
+ 863228270850154185ull, 10565890622713304927ull}},
+ {{13287644116767969641ull, 9313898149134738405ull,
+ 7551343283653851483ull, 2113178124542660985ull}},
+ {{8128544159826387665ull, 181052224559925195ull,
+ 15102686567307702967ull, 4226356249085321970ull}},
+ {{16257088319652775329ull, 362104449119850390ull,
+ 11758629060905854318ull, 8452712498170643941ull}},
+ {{18008812922898196359ull, 14829816148791611370ull,
+ 6041074626923081186ull, 1690542499634128788ull}},
+ {{17570881772086841102ull, 11212888223873671125ull,
+ 12082149253846162373ull, 3381084999268257576ull}},
+ {{16695019470464130587ull, 3979032374037790635ull,
+ 5717554433982773131ull, 6762169998536515153ull}},
+ {{18096399153060467411ull, 15553201733775199419ull,
+ 12211557331022285595ull, 1352433999707303030ull}},
+ {{17746054232411383205ull, 12659659393840847223ull,
+ 5976370588335019575ull, 2704867999414606061ull}},
+ {{17045364391113214793ull, 6872574713972142831ull,
+ 11952741176670039151ull, 5409735998829212122ull}},
+ {{15643984708516877969ull, 13745149427944285663ull,
+ 5458738279630526686ull, 10819471997658424245ull}},
+ {{17886192200671016887ull, 6438378700330767455ull,
+ 1091747655926105337ull, 2163894399531684849ull}},
+ {{17325640327632482157ull, 12876757400661534911ull,
+ 2183495311852210674ull, 4327788799063369698ull}},
+ {{16204536581555412698ull, 7306770727613518207ull,
+ 4366990623704421349ull, 8655577598126739396ull}},
+ {{10619604945794903186ull, 1461354145522703641ull,
+ 4562746939482794593ull, 1731115519625347879ull}},
+ {{2792465817880254756ull, 2922708291045407283ull,
+ 9125493878965589186ull, 3462231039250695758ull}},
+ {{5584931635760509512ull, 5845416582090814566ull,
+ 18250987757931178372ull, 6924462078501391516ull}},
+ {{15874381586119743196ull, 12237129760643893882ull,
+ 7339546366328145997ull, 1384892415700278303ull}},
+ {{13302019098529934775ull, 6027515447578236149ull,
+ 14679092732656291995ull, 2769784831400556606ull}},
+ {{8157294123350317933ull, 12055030895156472299ull,
+ 10911441391603032374ull, 5539569662801113213ull}},
+ {{16314588246700635866ull, 5663317716603392982ull,
+ 3376138709496513133ull, 11079139325602226427ull}},
+ {{10641615278823947820ull, 1132663543320678596ull,
+ 8053925371383123273ull, 2215827865120445285ull}},
+ {{2836486483938344023ull, 2265327086641357193ull,
+ 16107850742766246546ull, 4431655730240890570ull}},
+ {{5672972967876688046ull, 4530654173282714386ull,
+ 13768957411822941476ull, 8863311460481781141ull}},
+ {{12202641037801068579ull, 8284828464140363523ull,
+ 6443140297106498618ull, 1772662292096356228ull}},
+ {{5958538001892585542ull, 16569656928280727047ull,
+ 12886280594212997236ull, 3545324584192712456ull}},
+ {{11917076003785171083ull, 14692569782851902478ull,
+ 7325817114716442857ull, 7090649168385424913ull}},
+ {{13451461644982765187ull, 2938513956570380495ull,
+ 12533209867169019541ull, 1418129833677084982ull}},
+ {{8456179216255978757ull, 5877027913140760991ull,
+ 6619675660628487466ull, 2836259667354169965ull}},
+ {{16912358432511957513ull, 11754055826281521982ull,
+ 13239351321256974932ull, 5672519334708339930ull}},
+ {{15377972791314363410ull, 5061367578853492349ull,
+ 8031958568804398249ull, 11345038669416679861ull}},
+ {{17832989817230513975ull, 1012273515770698469ull,
+ 5295740528502789973ull, 2269007733883335972ull}},
+ {{17219235560751476334ull, 2024547031541396939ull,
+ 10591481057005579946ull, 4538015467766671944ull}},
+ {{15991727047793401051ull, 4049094063082793879ull,
+ 2736218040301608276ull, 9076030935533343889ull}},
+ {{17955740668526321503ull, 809818812616558775ull,
+ 15304638867027962948ull, 1815206187106668777ull}},
+ {{17464737263343091390ull, 1619637625233117551ull,
+ 12162533660346374280ull, 3630412374213337555ull}},
+ {{16482730452976631164ull, 3239275250466235103ull,
+ 5878323246983196944ull, 7260824748426675111ull}},
+ {{14364592534821057203ull, 647855050093247020ull,
+ 4865013464138549712ull, 1452164949685335022ull}},
+ {{10282440995932562789ull, 1295710100186494041ull,
+ 9730026928277099424ull, 2904329899370670044ull}},
+ {{2118137918155573962ull, 2591420200372988083ull,
+ 1013309782844647232ull, 5808659798741340089ull}},
+ {{4236275836311147924ull, 5182840400745976166ull,
+ 2026619565689294464ull, 11617319597482680178ull}},
+ {{11915301611487960555ull, 8415265709633015879ull,
+ 11473370357363589862ull, 2323463919496536035ull}},
+ {{5383859149266369493ull, 16830531419266031759ull,
+ 4499996641017628108ull, 4646927838993072071ull}},
+ {{10767718298532738985ull, 15214318764822511902ull,
+ 8999993282035256217ull, 9293855677986144142ull}},
+ {{5842892474448458121ull, 17800259011932143673ull,
+ 9178696285890871889ull, 1858771135597228828ull}},
+ {{11685784948896916241ull, 17153773950154735730ull,
+ 18357392571781743779ull, 3717542271194457656ull}},
+ {{4924825824084280865ull, 15860803826599919845ull,
+ 18268041069853935943ull, 7435084542388915313ull}},
+ {{4674313979558766497ull, 6861509580061894292ull,
+ 14721654658196518158ull, 1487016908477783062ull}},
+ {{9348627959117532993ull, 13723019160123788584ull,
+ 10996565242683484700ull, 2974033816955566125ull}},
+ {{250511844525514369ull, 8999294246538025553ull, 3546386411657417785ull,
+ 5948067633911132251ull}},
+ {{501023689051028738ull, 17998588493076051106ull,
+ 7092772823314835570ull, 11896135267822264502ull}},
+ {{11168251182035936718ull, 10978415328099030867ull,
+ 8797252194146787760ull, 2379227053564452900ull}},
+ {{3889758290362321819ull, 3510086582488510119ull,
+ 17594504388293575521ull, 4758454107128905800ull}},
+ {{7779516580724643637ull, 7020173164977020238ull,
+ 16742264702877599426ull, 9516908214257811601ull}},
+ {{1555903316144928728ull, 8782732262479224694ull,
+ 7037801755317430208ull, 1903381642851562320ull}},
+ {{3111806632289857455ull, 17565464524958449388ull,
+ 14075603510634860416ull, 3806763285703124640ull}},
+ {{6223613264579714909ull, 16684184976207347160ull,
+ 9704462947560169217ull, 7613526571406249281ull}},
+ {{12312769097141673952ull, 14404883439467200401ull,
+ 5630241404253944166ull, 1522705314281249856ull}},
+ {{6178794120573796287ull, 10363022805224849187ull,
+ 11260482808507888333ull, 3045410628562499712ull}},
+ {{12357588241147592574ull, 2279301536740146758ull,
+ 4074221543306225051ull, 6090821257124999425ull}},
+ {{6268432408585633531ull, 4558603073480293517ull,
+ 8148443086612450102ull, 12181642514249998850ull}},
+ {{16011081740684767999ull, 8290418244179879349ull,
+ 1629688617322490020ull, 2436328502849999770ull}},
+ {{13575419407659984382ull, 16580836488359758699ull,
+ 3259377234644980040ull, 4872657005699999540ull}},
+ {{8704094741610417148ull, 14714928903009965783ull,
+ 6518754469289960081ull, 9745314011399999080ull}},
+ {{16498214207289724723ull, 6632334595343903479ull,
+ 1303750893857992016ull, 1949062802279999816ull}},
+ {{14549684340869897829ull, 13264669190687806959ull,
+ 2607501787715984032ull, 3898125604559999632ull}},
+ {{10652624608030244042ull, 8082594307666062303ull,
+ 5215003575431968065ull, 7796251209119999264ull}},
+ {{9509222551089869455ull, 16373914120500853753ull,
+ 15800395974054034905ull, 1559250241823999852ull}},
+ {{571701028470187294ull, 14301084167292155891ull,
+ 13154047874398518195ull, 3118500483647999705ull}},
+ {{1143402056940374587ull, 10155424260874760166ull,
+ 7861351675087484775ull, 6237000967295999411ull}},
+ {{2286804113880749174ull, 1864104448039968716ull,
+ 15722703350174969551ull, 12474001934591998822ull}},
+ {{15214756081743791128ull, 11440867333833724712ull,
+ 10523238299518814556ull, 2494800386918399764ull}},
+ {{11982768089778030640ull, 4434990593957897809ull,
+ 2599732525328077497ull, 4989600773836799529ull}},
+ {{5518792105846509663ull, 8869981187915795619ull,
+ 5199465050656154994ull, 9979201547673599058ull}},
+ {{4793107235911212256ull, 9152693867066979770ull,
+ 12107939454356961968ull, 1995840309534719811ull}},
+ {{9586214471822424512ull, 18305387734133959540ull,
+ 5769134835004372320ull, 3991680619069439623ull}},
+ {{725684869935297407ull, 18164031394558367465ull,
+ 11538269670008744641ull, 7983361238138879246ull}},
+ {{7523834603470880128ull, 11011503908395494139ull,
+ 5997002748743659251ull, 1596672247627775849ull}},
+ {{15047669206941760256ull, 3576263743081436662ull,
+ 11994005497487318503ull, 3193344495255551698ull}},
+ {{11648594340173968895ull, 7152527486162873325ull,
+ 5541266921265085390ull, 6386688990511103397ull}},
+ {{4850444606638386174ull, 14305054972325746651ull,
+ 11082533842530170780ull, 12773377981022206794ull}},
+ {{970088921327677235ull, 17618406253432790623ull,
+ 16973902027473675448ull, 2554675596204441358ull}},
+ {{1940177842655354470ull, 16790068433156029630ull,
+ 15501059981237799281ull, 5109351192408882717ull}},
+ {{3880355685310708939ull, 15133392792602507644ull,
+ 12555375888766046947ull, 10218702384817765435ull}},
+ {{4465419951804052111ull, 10405376188004322175ull,
+ 2511075177753209389ull, 2043740476963553087ull}},
+ {{8930839903608104222ull, 2364008302299092734ull,
+ 5022150355506418779ull, 4087480953927106174ull}},
+ {{17861679807216208444ull, 4728016604598185468ull,
+ 10044300711012837558ull, 8174961907854212348ull}},
+ {{18329731220410882982ull, 4634952135661547416ull,
+ 13076906586428298481ull, 1634992381570842469ull}},
+ {{18212718367112214348ull, 9269904271323094833ull,
+ 7707069099147045346ull, 3269984763141684939ull}},
+ {{17978692660514877079ull, 93064468936638051ull,
+ 15414138198294090693ull, 6539969526283369878ull}},
+ {{10974436161586796063ull, 3707961708529237933ull,
+ 14150874083884549108ull, 1307993905256673975ull}},
+ {{3502128249464040509ull, 7415923417058475867ull,
+ 9855004094059546600ull, 2615987810513347951ull}},
+ {{7004256498928081017ull, 14831846834116951734ull,
+ 1263264114409541584ull, 5231975621026695903ull}},
+ {{14008512997856162033ull, 11216949594524351852ull,
+ 2526528228819083169ull, 10463951242053391806ull}},
+ {{10180400229055053053ull, 2243389918904870370ull,
+ 4194654460505726957ull, 2092790248410678361ull}},
+ {{1914056384400554490ull, 4486779837809740741ull,
+ 8389308921011453914ull, 4185580496821356722ull}},
+ {{3828112768801108980ull, 8973559675619481482ull,
+ 16778617842022907828ull, 8371160993642713444ull}},
+ {{15523017812727863089ull, 9173409564607716942ull,
+ 18113118827372222858ull, 1674232198728542688ull}},
+ {{12599291551746174562ull, 18346819129215433885ull,
+ 17779493581034894100ull, 3348464397457085377ull}},
+ {{6751839029782797507ull, 18246894184721316155ull,
+ 17112243088360236585ull, 6696928794914170755ull}},
+ {{1350367805956559502ull, 3649378836944263231ull,
+ 3422448617672047317ull, 1339385758982834151ull}},
+ {{2700735611913119003ull, 7298757673888526462ull,
+ 6844897235344094634ull, 2678771517965668302ull}},
+ {{5401471223826238006ull, 14597515347777052924ull,
+ 13689794470688189268ull, 5357543035931336604ull}},
+ {{10802942447652476012ull, 10748286621844554232ull,
+ 8932844867666826921ull, 10715086071862673209ull}},
+ {{9539286119014315849ull, 2149657324368910846ull,
+ 16543964232501006677ull, 2143017214372534641ull}},
+ {{631828164319080082ull, 4299314648737821693ull,
+ 14641184391292461738ull, 4286034428745069283ull}},
+ {{1263656328638160163ull, 8598629297475643386ull,
+ 10835624708875371860ull, 8572068857490138567ull}},
+ {{11320777709953363003ull, 9098423488978949323ull,
+ 9545822571258895018ull, 1714413771498027713ull}},
+ {{4194811346197174389ull, 18196846977957898647ull,
+ 644901068808238420ull, 3428827542996055427ull}},
+ {{8389622692394348777ull, 17946949882206245678ull,
+ 1289802137616476841ull, 6857655085992110854ull}},
+ {{12745970982704600725ull, 3589389976441249135ull,
+ 15015355686490936661ull, 1371531017198422170ull}},
+ {{7045197891699649834ull, 7178779952882498271ull,
+ 11583967299272321706ull, 2743062034396844341ull}},
+ {{14090395783399299668ull, 14357559905764996542ull,
+ 4721190524835091796ull, 5486124068793688683ull}},
+ {{9734047493089047719ull, 10268375737820441469ull,
+ 9442381049670183593ull, 10972248137587377366ull}},
+ {{13014855942843540514ull, 16811070406531729586ull,
+ 5577825024675947041ull, 2194449627517475473ull}},
+ {{7582967811977529411ull, 15175396739353907557ull,
+ 11155650049351894083ull, 4388899255034950946ull}},
+ {{15165935623955058822ull, 11904049404998263498ull,
+ 3864556024994236551ull, 8777798510069901893ull}},
+ {{10411884754274832411ull, 17138205139967293992ull,
+ 11840957649224578279ull, 1755559702013980378ull}},
+ {{2377025434840113206ull, 15829666206225036369ull,
+ 5235171224739604943ull, 3511119404027960757ull}},
+ {{4754050869680226411ull, 13212588338740521122ull,
+ 10470342449479209887ull, 7022238808055921514ull}},
+ {{12018856618161776252ull, 6331866482490014547ull,
+ 16851463748863483270ull, 1404447761611184302ull}},
+ {{5590969162614000888ull, 12663732964980029095ull,
+ 15256183424017414924ull, 2808895523222368605ull}},
+ {{11181938325228001776ull, 6880721856250506574ull,
+ 12065622774325278233ull, 5617791046444737211ull}},
+ {{3917132576746451935ull, 13761443712501013149ull,
+ 5684501474941004850ull, 11235582092889474423ull}},
+ {{8162124144833111034ull, 13820335186725933599ull,
+ 12204946739213931939ull, 2247116418577894884ull}},
+ {{16324248289666222067ull, 9193926299742315582ull,
+ 5963149404718312263ull, 4494232837155789769ull}},
+ {{14201752505622892517ull, 18387852599484631165ull,
+ 11926298809436624526ull, 8988465674311579538ull}},
+ {{17597745760092219797ull, 18434965778864567525ull,
+ 13453306206113055874ull, 1797693134862315907ull}},
+ {{16748747446474887977ull, 18423187484019583435ull,
+ 8459868338516560133ull, 3595386269724631815ull}},
+ {{15050750819240224337ull, 18399630894329615255ull,
+ 16919736677033120267ull, 7190772539449263630ull}},
+ {{10388847793331865514ull, 11058623808349743697ull,
+ 3383947335406624053ull, 1438154507889852726ull}},
+ {{2330951512954179412ull, 3670503542989935779ull,
+ 6767894670813248107ull, 2876309015779705452ull}},
+ {{4661903025908358824ull, 7341007085979871558ull,
+ 13535789341626496214ull, 5752618031559410904ull}},
+ {{9323806051816717647ull, 14682014171959743116ull,
+ 8624834609543440812ull, 11505236063118821809ull}},
+ {{9243458839847164176ull, 6625751649133858946ull,
+ 16482362180876329455ull, 2301047212623764361ull}},
+ {{40173605984776736ull, 13251503298267717893ull,
+ 14517980288043107294ull, 4602094425247528723ull}},
+ {{80347211969553471ull, 8056262522825884170ull, 10589216502376662973ull,
+ 9204188850495057447ull}},
+ {{16069442393910695ull, 1611252504565176834ull, 9496540929959153241ull,
+ 1840837770099011489ull}},
+ {{32138884787821389ull, 3222505009130353668ull, 546337786208754866ull,
+ 3681675540198022979ull}},
+ {{64277769575642777ull, 6445010018260707336ull, 1092675572417509732ull,
+ 7363351080396045958ull}},
+ {{3702204368657038879ull, 1289002003652141467ull,
+ 11286581558709232916ull, 1472670216079209191ull}},
+ {{7404408737314077757ull, 2578004007304282934ull,
+ 4126419043708914216ull, 2945340432158418383ull}},
+ {{14808817474628155514ull, 5156008014608565868ull,
+ 8252838087417828432ull, 5890680864316836766ull}},
+ {{11170890875546759412ull, 10312016029217131737ull,
+ 16505676174835656864ull, 11781361728633673532ull}},
+ {{13302224619335082852ull, 5751752020585336670ull,
+ 10679832864450952019ull, 2356272345726734706ull}},
+ {{8157705164960614088ull, 11503504041170673341ull,
+ 2912921655192352422ull, 4712544691453469413ull}},
+ {{16315410329921228176ull, 4560264008631795066ull,
+ 5825843310384704845ull, 9425089382906938826ull}},
+ {{10641779695468066282ull, 4601401616468269336ull,
+ 4854517476818851292ull, 1885017876581387765ull}},
+ {{2836815317226580948ull, 9202803232936538673ull,
+ 9709034953637702584ull, 3770035753162775530ull}},
+ {{5673630634453161895ull, 18405606465873077346ull,
+ 971325833565853552ull, 7540071506325551061ull}},
+ {{15892121385858273672ull, 14749167737400346438ull,
+ 3883613981455081033ull, 1508014301265110212ull}},
+ {{13337498698006995728ull, 11051591401091141261ull,
+ 7767227962910162067ull, 3016028602530220424ull}},
+ {{8228253322304439839ull, 3656438728472730907ull,
+ 15534455925820324135ull, 6032057205060440848ull}},
+ {{16456506644608879678ull, 7312877456945461814ull,
+ 12622167777931096654ull, 12064114410120881697ull}},
+ {{3291301328921775936ull, 5151924306131002686ull,
+ 9903131185070039977ull, 2412822882024176339ull}},
+ {{6582602657843551871ull, 10303848612262005372ull,
+ 1359518296430528338ull, 4825645764048352679ull}},
+ {{13165205315687103742ull, 2160953150814459128ull,
+ 2719036592861056677ull, 9651291528096705358ull}},
+ {{13701087507363151718ull, 432190630162891825ull,
+ 11611853762797942305ull, 1930258305619341071ull}},
+ {{8955430941016751820ull, 864381260325783651ull, 4776963451886332994ull,
+ 3860516611238682143ull}},
+ {{17910861882033503640ull, 1728762520651567302ull,
+ 9553926903772665988ull, 7721033222477364286ull}},
+ {{7271521191148611052ull, 15103147763097954753ull,
+ 5600134195496443520ull, 1544206644495472857ull}},
+ {{14543042382297222103ull, 11759551452486357890ull,
+ 11200268390992887041ull, 3088413288990945714ull}},
+ {{10639340690884892589ull, 5072358831263164165ull,
+ 3953792708276222467ull, 6176826577981891429ull}},
+ {{2831937308060233562ull, 10144717662526328331ull,
+ 7907585416552444934ull, 12353653155963782858ull}},
+ {{11634433905837777682ull, 9407641161989086312ull,
+ 12649563527536219956ull, 2470730631192756571ull}},
+ {{4822123737966003748ull, 368538250268621009ull, 6852382981362888297ull,
+ 4941461262385513143ull}},
+ {{9644247475932007496ull, 737076500537242018ull,
+ 13704765962725776594ull, 9882922524771026286ull}},
+ {{12996895939412132469ull, 147415300107448403ull,
+ 6430302007287065642ull, 1976584504954205257ull}},
+ {{7547047805114713322ull, 294830600214896807ull,
+ 12860604014574131284ull, 3953169009908410514ull}},
+ {{15094095610229426643ull, 589661200429793614ull,
+ 7274463955438710952ull, 7906338019816821029ull}},
+ {{3018819122045885329ull, 3807281054827869046ull,
+ 16212288050055383483ull, 1581267603963364205ull}},
+ {{6037638244091770658ull, 7614562109655738092ull,
+ 13977832026401215350ull, 3162535207926728411ull}},
+ {{12075276488183541315ull, 15229124219311476184ull,
+ 9508919979092879084ull, 6325070415853456823ull}},
+ {{5703808902657531013ull, 12011504364913400753ull,
+ 571095884476206553ull, 12650140831706913647ull}},
+ {{12208808224757237173ull, 2402300872982680150ull,
+ 7492916806379061957ull, 2530028166341382729ull}},
+ {{5970872375804922729ull, 4804601745965360301ull,
+ 14985833612758123914ull, 5060056332682765458ull}},
+ {{11941744751609845457ull, 9609203491930720602ull,
+ 11524923151806696212ull, 10120112665365530917ull}},
+ {{6077697765063879415ull, 16679235957353785413ull,
+ 9683682259845159888ull, 2024022533073106183ull}},
+ {{12155395530127758829ull, 14911727840998019210ull,
+ 920620445980768161ull, 4048045066146212367ull}},
+ {{5864046986545966042ull, 11376711608286486805ull,
+ 1841240891961536323ull, 8096090132292424734ull}},
+ {{8551507026793013855ull, 9654039951141118007ull,
+ 15125643437359948557ull, 1619218026458484946ull}},
+ {{17103014053586027710ull, 861335828572684398ull,
+ 11804542801010345499ull, 3238436052916969893ull}},
+ {{15759284033462503804ull, 1722671657145368797ull,
+ 5162341528311139382ull, 6476872105833939787ull}},
+ {{6841205621434411084ull, 15101929590396715052ull,
+ 8411165935146048522ull, 1295374421166787957ull}},
+ {{13682411242868822168ull, 11757115107083878488ull,
+ 16822331870292097045ull, 2590748842333575914ull}},
+ {{8918078412028092720ull, 5067486140458205361ull,
+ 15197919666874642475ull, 5181497684667151829ull}},
+ {{17836156824056185439ull, 10134972280916410722ull,
+ 11949095260039733334ull, 10362995369334303659ull}},
+ {{3567231364811237088ull, 13095040900409013114ull,
+ 17147214310975587959ull, 2072599073866860731ull}},
+ {{7134462729622474176ull, 7743337727108474612ull,
+ 15847684548241624303ull, 4145198147733721463ull}},
+ {{14268925459244948351ull, 15486675454216949224ull,
+ 13248625022773696990ull, 8290396295467442927ull}},
+ {{6543133906590899994ull, 10476032720327210491ull,
+ 10028422634038560044ull, 1658079259093488585ull}},
+ {{13086267813181799987ull, 2505321366944869366ull,
+ 1610101194367568473ull, 3316158518186977171ull}},
+ {{7725791552654048358ull, 5010642733889738733ull,
+ 3220202388735136946ull, 6632317036373954342ull}},
+ {{5234507125272719995ull, 12070174991003678716ull,
+ 8022738107230848035ull, 1326463407274790868ull}},
+ {{10469014250545439990ull, 5693605908297805816ull,
+ 16045476214461696071ull, 2652926814549581736ull}},
+ {{2491284427381328363ull, 11387211816595611633ull,
+ 13644208355213840526ull, 5305853629099163473ull}},
+ {{4982568854762656726ull, 4327679559481671650ull,
+ 8841672636718129437ull, 10611707258198326947ull}},
+ {{15753909029920172638ull, 15622931170863975622ull,
+ 9147032156827446533ull, 2122341451639665389ull}},
+ {{13061073986130793660ull, 12799118268018399629ull,
+ 18294064313654893067ull, 4244682903279330778ull}},
+ {{7675403898552035704ull, 7151492462327247643ull,
+ 18141384553600234519ull, 8489365806558661557ull}},
+ {{16292476038678048434ull, 5119647307207359851ull,
+ 11006974540203867550ull, 1697873161311732311ull}},
+ {{14138208003646545252ull, 10239294614414719703ull,
+ 3567205006698183484ull, 3395746322623464623ull}},
+ {{9829671933583538887ull, 2031845155119887791ull,
+ 7134410013396366969ull, 6791492645246929246ull}},
+ {{5655283201458618101ull, 406369031023977558ull, 5116230817421183717ull,
+ 1358298529049385849ull}},
+ {{11310566402917236201ull, 812738062047955116ull,
+ 10232461634842367434ull, 2716597058098771698ull}},
+ {{4174388732124920786ull, 1625476124095910233ull,
+ 2018179195975183252ull, 5433194116197543397ull}},
+ {{8348777464249841572ull, 3250952248191820466ull,
+ 4036358391950366504ull, 10866388232395086794ull}},
+ {{16427150751817609608ull, 11718236893864095062ull,
+ 15564666937357714593ull, 2173277646479017358ull}},
+ {{14407557429925667599ull, 4989729714018638509ull,
+ 12682589801005877571ull, 4346555292958034717ull}},
+ {{10368370786141783581ull, 9979459428037277019ull,
+ 6918435528302203526ull, 8693110585916069435ull}},
+ {{2073674157228356717ull, 5685240700349365727ull,
+ 1383687105660440705ull, 1738622117183213887ull}},
+ {{4147348314456713433ull, 11370481400698731454ull,
+ 2767374211320881410ull, 3477244234366427774ull}},
+ {{8294696628913426865ull, 4294218727687911292ull,
+ 5534748422641762821ull, 6954488468732855548ull}},
+ {{5348288140524595697ull, 15616239004505223551ull,
+ 12174996128754083533ull, 1390897693746571109ull}},
+ {{10696576281049191393ull, 12785733935300895486ull,
+ 5903248183798615451ull, 2781795387493142219ull}},
+ {{2946408488388831169ull, 7124723796892239357ull,
+ 11806496367597230903ull, 5563590774986284438ull}},
+ {{5892816976777662337ull, 14249447593784478714ull,
+ 5166248661484910190ull, 11127181549972568877ull}},
+ {{4867912210097442791ull, 10228587148240716389ull,
+ 8411947361780802684ull, 2225436309994513775ull}},
+ {{9735824420194885581ull, 2010430222771881162ull,
+ 16823894723561605369ull, 4450872619989027550ull}},
+ {{1024904766680219546ull, 4020860445543762325ull,
+ 15201045373413659122ull, 8901745239978055101ull}},
+ {{11273027397561774879ull, 11872218533334483434ull,
+ 6729557889424642147ull, 1780349047995611020ull}},
+ {{4099310721413998142ull, 5297692992959415253ull,
+ 13459115778849284295ull, 3560698095991222040ull}},
+ {{8198621442827996284ull, 10595385985918830506ull,
+ 8471487483989016974ull, 7121396191982444081ull}},
+ {{5329073103307509580ull, 2119077197183766101ull,
+ 5383646311539713718ull, 1424279238396488816ull}},
+ {{10658146206615019160ull, 4238154394367532202ull,
+ 10767292623079427436ull, 2848558476792977632ull}},
+ {{2869548339520486704ull, 8476308788735064405ull,
+ 3087841172449303256ull, 5697116953585955265ull}},
+ {{5739096679040973407ull, 16952617577470128810ull,
+ 6175682344898606512ull, 11394233907171910530ull}},
+ {{8526516965292015328ull, 10769221144977846408ull,
+ 1235136468979721302ull, 2278846781434382106ull}},
+ {{17053033930584030656ull, 3091698216246141200ull,
+ 2470272937959442605ull, 4557693562868764212ull}},
+ {{15659323787458509695ull, 6183396432492282401ull,
+ 4940545875918885210ull, 9115387125737528424ull}},
+ {{3131864757491701939ull, 15994074545466097773ull,
+ 15745504434151418334ull, 1823077425147505684ull}},
+ {{6263729514983403878ull, 13541405017222643930ull,
+ 13044264794593285053ull, 3646154850295011369ull}},
+ {{12527459029966807756ull, 8636065960735736244ull,
+ 7641785515477018491ull, 7292309700590022739ull}},
+ {{17262887064961002844ull, 1727213192147147248ull,
+ 16285752362063044991ull, 1458461940118004547ull}},
+ {{16079030056212454072ull, 3454426384294294497ull,
+ 14124760650416538366ull, 2916923880236009095ull}},
+ {{13711316038715356528ull, 6908852768588588995ull,
+ 9802777227123525116ull, 5833847760472018191ull}},
+ {{8975888003721161440ull, 13817705537177177991ull,
+ 1158810380537498616ull, 11667695520944036383ull}},
+ {{1795177600744232288ull, 17520936366403076891ull,
+ 11299808520333230692ull, 2333539104188807276ull}},
+ {{3590355201488464576ull, 16595128659096602166ull,
+ 4152872966956909769ull, 4667078208377614553ull}},
+ {{7180710402976929152ull, 14743513244483652716ull,
+ 8305745933913819539ull, 9334156416755229106ull}},
+ {{5125490895337296154ull, 2948702648896730543ull,
+ 5350498001524674231ull, 1866831283351045821ull}},
+ {{10250981790674592308ull, 5897405297793461086ull,
+ 10700996003049348462ull, 3733662566702091642ull}},
+ {{2055219507639632999ull, 11794810595586922173ull,
+ 2955247932389145308ull, 7467325133404183285ull}},
+ {{4100392716269836923ull, 13427008563343115404ull,
+ 591049586477829061ull, 1493465026680836657ull}},
+ {{8200785432539673846ull, 8407273052976679192ull,
+ 1182099172955658123ull, 2986930053361673314ull}},
+ {{16401570865079347692ull, 16814546105953358384ull,
+ 2364198345911316246ull, 5973860106723346628ull}},
+ {{14356397656449143767ull, 15182348138197165153ull,
+ 4728396691822632493ull, 11947720213446693256ull}},
+ {{10249977160773649400ull, 17793864886607074323ull,
+ 4635028153106436821ull, 2389544042689338651ull}},
+ {{2053210247837747184ull, 17140985699504597031ull,
+ 9270056306212873643ull, 4779088085378677302ull}},
+ {{4106420495675494368ull, 15835227325299642446ull, 93368538716195671ull,
+ 9558176170757354605ull}},
+ {{8199981728618919520ull, 6856394279801838812ull, 18673707743239134ull,
+ 1911635234151470921ull}},
+ {{16399963457237839040ull, 13712788559603677624ull,
+ 37347415486478268ull, 3823270468302941842ull}},
+ {{14353182840766126464ull, 8978833045497803633ull, 74694830972956537ull,
+ 7646540936605883684ull}},
+ {{17628031827120866586ull, 5485115423841471049ull,
+ 14772334225162232600ull, 1529308187321176736ull}},
+ {{16809319580532181555ull, 10970230847682942099ull,
+ 11097924376614913584ull, 3058616374642353473ull}},
+ {{15171895087354811494ull, 3493717621656332583ull,
+ 3749104679520275553ull, 6117232749284706947ull}},
+ {{11897046101000071372ull, 6987435243312665167ull,
+ 7498209359040551106ull, 12234465498569413894ull}},
+ {{9758106849683834921ull, 1397487048662533033ull,
+ 16257037130775751514ull, 2446893099713882778ull}},
+ {{1069469625658118226ull, 2794974097325066067ull,
+ 14067330187841951412ull, 4893786199427765557ull}},
+ {{2138939251316236451ull, 5589948194650132134ull,
+ 9687916301974351208ull, 9787572398855531115ull}},
+ {{7806485479747067937ull, 12186036083155757396ull,
+ 1937583260394870241ull, 1957514479771106223ull}},
+ {{15612970959494135874ull, 5925328092601963176ull,
+ 3875166520789740483ull, 3915028959542212446ull}},
+ {{12779197845278720131ull, 11850656185203926353ull,
+ 7750333041579480966ull, 7830057919084424892ull}},
+ {{6245188383797654350ull, 13438177681266516240ull,
+ 8928764237799716839ull, 1566011583816884978ull}},
+ {{12490376767595308699ull, 8429611288823480864ull,
+ 17857528475599433679ull, 3132023167633769956ull}},
+ {{6534009461481065782ull, 16859222577646961729ull,
+ 17268312877489315742ull, 6264046335267539913ull}},
+ {{13068018922962131563ull, 15271701081584371842ull,
+ 16089881681269079869ull, 12528092670535079827ull}},
+ {{13681650228818157283ull, 6743689031058784691ull,
+ 10596673965737636620ull, 2505618534107015965ull}},
+ {{8916556383926762949ull, 13487378062117569383ull,
+ 2746603857765721624ull, 5011237068214031931ull}},
+ {{17833112767853525897ull, 8528012050525587150ull,
+ 5493207715531443249ull, 10022474136428063862ull}},
+ {{7255971368312615503ull, 5394951224847027753ull,
+ 8477339172590109296ull, 2004494827285612772ull}},
+ {{14511942736625231005ull, 10789902449694055506ull,
+ 16954678345180218592ull, 4008989654571225544ull}},
+ {{10577141399540910394ull, 3133060825678559397ull,
+ 15462612616650885569ull, 8017979309142451089ull}},
+ {{2115428279908182079ull, 11694658609361442849ull,
+ 17849917782297818406ull, 1603595861828490217ull}},
+ {{4230856559816364158ull, 4942573145013334082ull,
+ 17253091490886085197ull, 3207191723656980435ull}},
+ {{8461713119632728315ull, 9885146290026668164ull,
+ 16059438908062618778ull, 6414383447313960871ull}},
+ {{12760389068152276633ull, 16734424516972974925ull,
+ 6901236596354434078ull, 1282876689462792174ull}},
+ {{7074034062595001650ull, 15022104960236398235ull,
+ 13802473192708868157ull, 2565753378925584348ull}},
+ {{14148068125190003299ull, 11597465846763244854ull,
+ 9158202311708184699ull, 5131506757851168697ull}},
+ {{9849392176670454981ull, 4748187619816938093ull,
+ 18316404623416369399ull, 10263013515702337394ull}},
+ {{5659227250076001320ull, 12017683968189118588ull,
+ 18420676183650915172ull, 2052602703140467478ull}},
+ {{11318454500152002639ull, 5588623862668685560ull,
+ 18394608293592278729ull, 4105205406280934957ull}},
+ {{4190164926594453662ull, 11177247725337371121ull,
+ 18342472513475005842ull, 8210410812561869915ull}},
+ {{11906079429544621702ull, 9614147174551294870ull,
+ 3668494502695001168ull, 1642082162512373983ull}},
+ {{5365414785379691788ull, 781550275393038125ull, 7336989005390002337ull,
+ 3284164325024747966ull}},
+ {{10730829570759383576ull, 1563100550786076250ull,
+ 14673978010780004674ull, 6568328650049495932ull}},
+ {{5835514728893787039ull, 4001968924899125573ull,
+ 10313493231639821581ull, 1313665730009899186ull}},
+ {{11671029457787574077ull, 8003937849798251146ull,
+ 2180242389570091546ull, 2627331460019798373ull}},
+ {{4895314841865596538ull, 16007875699596502293ull,
+ 4360484779140183092ull, 5254662920039596746ull}},
+ {{9790629683731193075ull, 13569007325483452970ull,
+ 8720969558280366185ull, 10509325840079193492ull}},
+ {{9336823566230059262ull, 10092499094580511240ull,
+ 9122891541139893883ull, 2101865168015838698ull}},
+ {{226903058750566907ull, 1738254115451470865ull,
+ 18245783082279787767ull, 4203730336031677396ull}},
+ {{453806117501133814ull, 3476508230902941730ull,
+ 18044822090850023918ull, 8407460672063354793ull}},
+ {{3780110038242137086ull, 4384650460922498669ull,
+ 14677010862395735753ull, 1681492134412670958ull}},
+ {{7560220076484274172ull, 8769300921844997338ull,
+ 10907277651081919890ull, 3362984268825341917ull}},
+ {{15120440152968548344ull, 17538601843689994676ull,
+ 3367811228454288164ull, 6725968537650683835ull}},
+ {{3024088030593709669ull, 18265115627705640228ull,
+ 673562245690857632ull, 1345193707530136767ull}},
+ {{6048176061187419338ull, 18083487181701728840ull,
+ 1347124491381715265ull, 2690387415060273534ull}},
+ {{12096352122374838675ull, 17720230289693906064ull,
+ 2694248982763430531ull, 5380774830120547068ull}},
+ {{5745960171040125734ull, 16993716505678260513ull,
+ 5388497965526861063ull, 10761549660241094136ull}},
+ {{8527889663691845794ull, 18156138560103293395ull,
+ 4767048407847282535ull, 2152309932048218827ull}},
+ {{17055779327383691587ull, 17865533046497035174ull,
+ 9534096815694565071ull, 4304619864096437654ull}},
+ {{15664814581057831557ull, 17284322019284518733ull,
+ 621449557679578527ull, 8609239728192875309ull}},
+ {{17890358175179207605ull, 7146213218598814069ull,
+ 14881685170503556998ull, 1721847945638575061ull}},
+ {{17333972276648863593ull, 14292426437197628139ull,
+ 11316626267297562380ull, 3443695891277150123ull}},
+ {{16221200479588175569ull, 10138108800685704663ull,
+ 4186508460885573145ull, 6887391782554300247ull}},
+ {{3244240095917635114ull, 9406319389620961579ull,
+ 8215999321660935275ull, 1377478356510860049ull}},
+ {{6488480191835270228ull, 365894705532371542ull,
+ 16431998643321870551ull, 2754956713021720098ull}},
+ {{12976960383670540455ull, 731789411064743084ull,
+ 14417253212934189486ull, 5509913426043440197ull}},
+ {{7507176693631529294ull, 1463578822129486169ull,
+ 10387762352158827356ull, 11019826852086880395ull}},
+ {{1501435338726305859ull, 3982064579167807557ull,
+ 2077552470431765471ull, 2203965370417376079ull}},
+ {{3002870677452611718ull, 7964129158335615114ull,
+ 4155104940863530942ull, 4407930740834752158ull}},
+ {{6005741354905223435ull, 15928258316671230228ull,
+ 8310209881727061884ull, 8815861481669504316ull}},
+ {{12269194715206775657ull, 3185651663334246045ull,
+ 5351390791087322700ull, 1763172296333900863ull}},
+ {{6091645356703999697ull, 6371303326668492091ull,
+ 10702781582174645400ull, 3526344592667801726ull}},
+ {{12183290713407999394ull, 12742606653336984182ull,
+ 2958819090639739184ull, 7052689185335603453ull}},
+ {{17194053401649241172ull, 9927218960151217482ull,
+ 11659810262353678806ull, 1410537837067120690ull}},
+ {{15941362729588930728ull, 1407693846592883349ull,
+ 4872876450997805997ull, 2821075674134241381ull}},
+ {{13435981385468309839ull, 2815387693185766699ull,
+ 9745752901995611994ull, 5642151348268482762ull}},
+ {{8425218697227068061ull, 5630775386371533399ull,
+ 1044761730281672372ull, 11284302696536965525ull}},
+ {{5374392554187323936ull, 8504852706758127326ull, 208952346056334474ull,
+ 2256860539307393105ull}},
+ {{10748785108374647871ull, 17009705413516254652ull,
+ 417904692112668948ull, 4513721078614786210ull}},
+ {{3050826143039744126ull, 15572666753322957689ull,
+ 835809384225337897ull, 9027442157229572420ull}},
+ {{4299514043349859149ull, 10493230980148412184ull,
+ 167161876845067579ull, 1805488431445914484ull}},
+ {{8599028086699718297ull, 2539717886587272752ull, 334323753690135159ull,
+ 3610976862891828968ull}},
+ {{17198056173399436594ull, 5079435773174545504ull,
+ 668647507380270318ull, 7221953725783657936ull}},
+ {{14507657678905618289ull, 15773282413602550393ull,
+ 3823078316217964386ull, 1444390745156731587ull}},
+ {{10568571284101684961ull, 13099820753495549171ull,
+ 7646156632435928773ull, 2888781490313463174ull}},
+ {{2690398494493818305ull, 7752897433281546727ull,
+ 15292313264871857547ull, 5777562980626926348ull}},
+ {{5380796988987636610ull, 15505794866563093454ull,
+ 12137882456034163478ull, 11555125961253852697ull}},
+ {{15833554656765168615ull, 3101158973312618690ull,
+ 9806274120690653342ull, 2311025192250770539ull}},
+ {{13220365239820785614ull, 6202317946625237381ull,
+ 1165804167671755068ull, 4622050384501541079ull}},
+ {{7993986405932019612ull, 12404635893250474763ull,
+ 2331608335343510136ull, 9244100769003082158ull}},
+ {{8977494910670224569ull, 17238322437617736245ull,
+ 11534368111294432996ull, 1848820153800616431ull}},
+ {{17954989821340449138ull, 16029900801525920874ull,
+ 4621992148879314377ull, 3697640307601232863ull}},
+ {{17463235568971346659ull, 13613057529342290133ull,
+ 9243984297758628755ull, 7395280615202465726ull}},
+ {{18250042372761910625ull, 6411960320610368349ull,
+ 5538145674293636074ull, 1479056123040493145ull}},
+ {{18053340671814269633ull, 12823920641220736699ull,
+ 11076291348587272148ull, 2958112246080986290ull}},
+ {{17659937269918987650ull, 7201097208731921783ull,
+ 3705838623464992681ull, 5916224492161972581ull}},
+ {{16873130466128423684ull, 14402194417463843567ull,
+ 7411677246929985362ull, 11832448984323945162ull}},
+ {{7063974907967595060ull, 17637834142460410006ull,
+ 8861033078869817718ull, 2366489796864789032ull}},
+ {{14127949815935190120ull, 16828924211211268396ull,
+ 17722066157739635437ull, 4732979593729578064ull}},
+ {{9809155558160828624ull, 15211104348712985177ull,
+ 16997388241769719259ull, 9465959187459156129ull}},
+ {{1961831111632165725ull, 14110267313968328005ull,
+ 18156872907321585144ull, 1893191837491831225ull}},
+ {{3923662223264331450ull, 9773790554227104394ull,
+ 17867001740933618673ull, 3786383674983662451ull}},
+ {{7847324446528662900ull, 1100837034744657172ull,
+ 17287259408157685731ull, 7572767349967324903ull}},
+ {{5258813704047642904ull, 14977562665916572727ull,
+ 14525498325857268115ull, 1514553469993464980ull}},
+ {{10517627408095285807ull, 11508381258123593838ull,
+ 10604252578004984615ull, 3029106939986929961ull}},
+ {{2588510742481019997ull, 4570018442537636061ull,
+ 2761761082300417615ull, 6058213879973859923ull}},
+ {{5177021484962039993ull, 9140036885075272122ull,
+ 5523522164600835230ull, 12116427759947719846ull}},
+ {{12103450741218138969ull, 5517356191756964747ull,
+ 4794053247662077369ull, 2423285551989543969ull}},
+ {{5760157408726726321ull, 11034712383513929495ull,
+ 9588106495324154738ull, 4846571103979087938ull}},
+ {{11520314817453452641ull, 3622680693318307374ull,
+ 729468916938757861ull, 9693142207958175877ull}},
+ {{9682760592974511175ull, 11792582582889392444ull,
+ 7524591412871572218ull, 1938628441591635175ull}},
+ {{918777112239470733ull, 5138421092069233273ull,
+ 15049182825743144437ull, 3877256883183270350ull}},
+ {{1837554224478941466ull, 10276842184138466546ull,
+ 11651621577776737258ull, 7754513766366540701ull}},
+ {{367510844895788294ull, 16812763695795334602ull,
+ 6019673130297257774ull, 1550902753273308140ull}},
+ {{735021689791576587ull, 15178783317881117588ull,
+ 12039346260594515549ull, 3101805506546616280ull}},
+ {{1470043379583153173ull, 11910822562052683560ull,
+ 5631948447479479483ull, 6203611013093232561ull}},
+ {{2940086759166306346ull, 5374901050395815504ull,
+ 11263896894958958967ull, 12407222026186465122ull}},
+ {{11656063796058992239ull, 15832375469046804393ull,
+ 9631477008475612439ull, 2481444405237293024ull}},
+ {{4865383518408432862ull, 13218006864384057171ull,
+ 816209943241673263ull, 4962888810474586049ull}},
+ {{9730767036816865723ull, 7989269655058562726ull,
+ 1632419886483346527ull, 9925777620949172098ull}},
+ {{5635502222105283468ull, 1597853931011712545ull,
+ 11394530421522400275ull, 1985155524189834419ull}},
+ {{11271004444210566936ull, 3195707862023425090ull,
+ 4342316769335248934ull, 3970311048379668839ull}},
+ {{4095264814711582255ull, 6391415724046850181ull,
+ 8684633538670497868ull, 7940622096759337678ull}},
+ {{8197750592426137098ull, 4967631959551280359ull,
+ 12804973151959830543ull, 1588124419351867535ull}},
+ {{16395501184852274195ull, 9935263919102560718ull,
+ 7163202230210109470ull, 3176248838703735071ull}},
+ {{14344258295994996774ull, 1423783764495569821ull,
+ 14326404460420218941ull, 6352497677407470142ull}},
+ {{10241772518280441931ull, 2847567528991139643ull,
+ 10206064847130886266ull, 12704995354814940285ull}},
+ {{16805749762623729679ull, 4258862320540138251ull,
+ 2041212969426177253ull, 2540999070962988057ull}},
+ {{15164755451537907742ull, 8517724641080276503ull,
+ 4082425938852354506ull, 5081998141925976114ull}},
+ {{11882766829366263868ull, 17035449282160553007ull,
+ 8164851877704709012ull, 10163996283851952228ull}},
+ {{9755250995357073420ull, 3407089856432110601ull,
+ 12701016819766672772ull, 2032799256770390445ull}},
+ {{1063757917004595224ull, 6814179712864221203ull,
+ 6955289565823793928ull, 4065598513540780891ull}},
+ {{2127515834009190448ull, 13628359425728442406ull,
+ 13910579131647587856ull, 8131197027081561782ull}},
+ {{15182898425769479383ull, 13793718329371419450ull,
+ 10160813455813338217ull, 1626239405416312356ull}},
+ {{11919052777829407149ull, 9140692585033287285ull,
+ 1874882837917124819ull, 3252478810832624713ull}},
+ {{5391361481949262682ull, 18281385170066574571ull,
+ 3749765675834249638ull, 6504957621665249426ull}},
+ {{1078272296389852537ull, 18413672292980956207ull,
+ 4439301949908760250ull, 1300991524333049885ull}},
+ {{2156544592779705073ull, 18380600512252360798ull,
+ 8878603899817520501ull, 2601983048666099770ull}},
+ {{4313089185559410146ull, 18314456950795169980ull,
+ 17757207799635041003ull, 5203966097332199540ull}},
+ {{8626178371118820291ull, 18182169827880788344ull,
+ 17067671525560530391ull, 10407932194664399081ull}},
+ {{5414584488965674382ull, 11015131595059978315ull,
+ 7102883119854016401ull, 2081586438932879816ull}},
+ {{10829168977931348763ull, 3583519116410405014ull,
+ 14205766239708032803ull, 4163172877865759632ull}},
+ {{3211593882153145910ull, 7167038232820810029ull,
+ 9964788405706513990ull, 8326345755731519265ull}},
+ {{15399714035398270475ull, 1433407646564162005ull,
+ 1992957681141302798ull, 1665269151146303853ull}},
+ {{12352683997086989334ull, 2866815293128324011ull,
+ 3985915362282605596ull, 3330538302292607706ull}},
+ {{6258623920464427051ull, 5733630586256648023ull,
+ 7971830724565211192ull, 6661076604585215412ull}},
+ {{8630422413576706057ull, 15904121376218970897ull,
+ 8973063774396862884ull, 1332215320917043082ull}},
+ {{17260844827153412114ull, 13361498678728390178ull,
+ 17946127548793725769ull, 2664430641834086164ull}},
+};
+
+static const BID_UINT256 bid_multipliers2_bid64[] = {
+ {{9438227768328448678ull, 4145630637659340425ull,
+ 17596454752367787604ull, 34ull}},
+ {{429711462947345740ull, 8291261275318680851ull,
+ 16746165431026023592ull, 69ull}},
+ {{859422925894691480ull, 16582522550637361702ull,
+ 15045586788342495568ull, 139ull}},
+ {{1718845851789382959ull, 14718301027565171788ull,
+ 11644429502975439521ull, 279ull}},
+ {{3437691703578765918ull, 10989857981420791960ull,
+ 4842114932241327427ull, 559ull}},
+ {{6875383407157531835ull, 3532971889132032304ull,
+ 9684229864482654855ull, 1118ull}},
+ {{13750766814315063670ull, 7065943778264064608ull,
+ 921715655255758094ull, 2237ull}},
+ {{9054789554920575724ull, 14131887556528129217ull,
+ 1843431310511516188ull, 4474ull}},
+ {{18109579109841151448ull, 9817031039346706818ull,
+ 3686862621023032377ull, 8948ull}},
+ {{17772414145972751280ull, 1187318004983862021ull,
+ 7373725242046064755ull, 17896ull}},
+ {{17098084218235950944ull, 2374636009967724043ull,
+ 14747450484092129510ull, 35792ull}},
+ {{15749424362762350272ull, 4749272019935448087ull,
+ 11048156894474707404ull, 71585ull}},
+ {{13052104651815148928ull, 9498544039870896175ull,
+ 3649569715239863192ull, 143171ull}},
+ {{7657465229920746239ull, 550344006032240735ull, 7299139430479726385ull,
+ 286342ull}},
+ {{15314930459841492478ull, 1100688012064481470ull,
+ 14598278860959452770ull, 572684ull}},
+ {{12183116845973433340ull, 2201376024128962941ull,
+ 10749813648209353924ull, 1145369ull}},
+ {{5919489618237315063ull, 4402752048257925883ull,
+ 3052883222709156232ull, 2290739ull}},
+ {{11838979236474630126ull, 8805504096515851766ull,
+ 6105766445418312464ull, 4581478ull}},
+ {{5231214399239708635ull, 17611008193031703533ull,
+ 12211532890836624928ull, 9162956ull}},
+ {{10462428798479417270ull, 16775272312353855450ull,
+ 5976321707963698241ull, 18325913ull}},
+ {{2478113523249282924ull, 15103800550998159285ull,
+ 11952643415927396483ull, 36651826ull}},
+ {{4956227046498565847ull, 11760857028286766954ull,
+ 5458542758145241351ull, 73303653ull}},
+ {{9912454092997131693ull, 5074969982863982292ull,
+ 10917085516290482703ull, 146607306ull}},
+ {{1378164112284711770ull, 10149939965727964585ull,
+ 3387426958871413790ull, 293214613ull}},
+ {{2756328224569423540ull, 1853135857746377554ull,
+ 6774853917742827581ull, 586429226ull}},
+ {{5512656449138847079ull, 3706271715492755108ull,
+ 13549707835485655162ull, 1172858452ull}},
+ {{11025312898277694158ull, 7412543430985510216ull,
+ 8652671597261758708ull, 2345716905ull}},
+ {{3603881722845836699ull, 14825086861971020433ull,
+ 17305343194523517416ull, 4691433810ull}},
+ {{7207763445691673397ull, 11203429650232489250ull,
+ 16163942315337483217ull, 9382867621ull}},
+ {{14415526891383346794ull, 3960115226755426884ull,
+ 13881140556965414819ull, 18765735243ull}},
+ {{10384309709057141972ull, 7920230453510853769ull,
+ 9315537040221278022ull, 37531470487ull}},
+ {{2321875344404732328ull, 15840460907021707539ull,
+ 184330006733004428ull, 75062940975ull}},
+ {{4643750688809464655ull, 13234177740333863462ull,
+ 368660013466008857ull, 150125881950ull}},
+ {{9287501377618929309ull, 8021611406958175308ull, 737320026932017715ull,
+ 300251763900ull}},
+ {{128258681528307001ull, 16043222813916350617ull,
+ 1474640053864035430ull, 600503527800ull}},
+ {{256517363056614002ull, 13639701554123149618ull,
+ 2949280107728070861ull, 1201007055600ull}},
+ {{513034726113228003ull, 8832659034536747620ull, 5898560215456141723ull,
+ 2402014111200ull}},
+ {{1026069452226456005ull, 17665318069073495240ull,
+ 11797120430912283446ull, 4804028222400ull}},
+ {{2052138904452912009ull, 16883892064437438864ull,
+ 5147496788115015277ull, 9608056444801ull}},
+ {{4104277808905824018ull, 15321040055165326112ull,
+ 10294993576230030555ull, 19216112889602ull}},
+ {{8208555617811648035ull, 12195336036621100608ull,
+ 2143243078750509495ull, 38432225779205ull}},
+ {{16417111235623296070ull, 5943927999532649600ull,
+ 4286486157501018991ull, 76864451558410ull}},
+ {{14387478397537040523ull, 11887855999065299201ull,
+ 8572972315002037982ull, 153728903116820ull}},
+ {{10328212721364529429ull, 5328967924421046787ull,
+ 17145944630004075965ull, 307457806233640ull}},
+ {{2209681369019507241ull, 10657935848842093575ull,
+ 15845145186298600314ull, 614915612467281ull}},
+ {{4419362738039014482ull, 2869127623974635534ull,
+ 13243546298887649013ull, 1229831224934563ull}},
+ {{8838725476078028963ull, 5738255247949271068ull,
+ 8040348524065746410ull, 2459662449869127ull}},
+ {{17677450952156057925ull, 11476510495898542136ull,
+ 16080697048131492820ull, 4919324899738254ull}},
+ {{16908157830602564233ull, 4506276918087532657ull,
+ 13714650022553434025ull, 9838649799476509ull}},
+ {{15369571587495576850ull, 9012553836175065315ull,
+ 8982555971397316434ull, 19677299598953019ull}},
+ {{12292399101281602084ull, 18025107672350130631ull,
+ 17965111942794632868ull, 39354599197906038ull}},
+ {{6138054128853652551ull, 17603471270990709647ull,
+ 17483479811879714121ull, 78709198395812077ull}},
+ {{12276108257707305101ull, 16760198468271867678ull,
+ 16520215550049876627ull, 157418396791624155ull}},
+ {{6105472441705058585ull, 15073652862834183741ull,
+ 14593687026390201639ull, 314836793583248311ull}},
+ {{12210944883410117170ull, 11700561651958815866ull,
+ 10740629979070851663ull, 629673587166496623ull}},
+ {{5975145693110682724ull, 4954379230208080117ull,
+ 3034515884432151711ull, 1259347174332993247ull}},
+ {{1195029138622136545ull, 12058922290267346993ull,
+ 7985600806370250988ull, 251869434866598649ull}},
+ {{2390058277244273090ull, 5671100506825142370ull,
+ 15971201612740501977ull, 503738869733197298ull}},
+ {{4780116554488546179ull, 11342201013650284740ull,
+ 13495659151771452338ull, 1007477739466394597ull}},
+ {{956023310897709236ull, 2268440202730056948ull,
+ 10077829459838111114ull, 201495547893278919ull}},
+ {{1912046621795418472ull, 4536880405460113896ull,
+ 1708914845966670612ull, 402991095786557839ull}},
+ {{3824093243590836943ull, 9073760810920227792ull,
+ 3417829691933341224ull, 805982191573115678ull}},
+ {{15522213907685808682ull, 9193449791667866204ull,
+ 11751612382612399214ull, 161196438314623135ull}},
+ {{12597683741662065747ull, 18386899583335732409ull,
+ 5056480691515246812ull, 322392876629246271ull}},
+ {{6748623409614579878ull, 18327055092961913203ull,
+ 10112961383030493625ull, 644785753258492542ull}},
+ {{1349724681922915976ull, 11044108648076203287ull,
+ 9401289906089919371ull, 128957150651698508ull}},
+ {{2699449363845831952ull, 3641473222442854958ull, 355835738470287127ull,
+ 257914301303397017ull}},
+ {{5398898727691663903ull, 7282946444885709916ull, 711671476940574254ull,
+ 515828602606794034ull}},
+ {{10797797455383327805ull, 14565892889771419832ull,
+ 1423342953881148508ull, 1031657205213588068ull}},
+ {{13227605935302396531ull, 6602527392696194289ull,
+ 11352715035001960671ull, 206331441042717613ull}},
+ {{8008467796895241445ull, 13205054785392388579ull,
+ 4258685996294369726ull, 412662882085435227ull}},
+ {{16016935593790482890ull, 7963365497075225542ull,
+ 8517371992588739453ull, 825325764170870454ull}},
+ {{17960782377725737871ull, 8971370728898865754ull,
+ 16460869657485389183ull, 165065152834174090ull}},
+ {{17474820681741924126ull, 17942741457797731509ull,
+ 14474995241261226750ull, 330130305668348181ull}},
+ {{16502897289774296635ull, 17438738841885911403ull,
+ 10503246408812901885ull, 660260611336696363ull}},
+ {{6989928272696769651ull, 14555794212602913250ull,
+ 13168695725988311346ull, 132052122267339272ull}},
+ {{13979856545393539301ull, 10664844351496274884ull,
+ 7890647378267071077ull, 264104244534678545ull}},
+ {{9512969017077526985ull, 2882944629282998153ull,
+ 15781294756534142155ull, 528208489069357090ull}},
+ {{579193960445502354ull, 5765889258565996307ull,
+ 13115845439358732694ull, 1056416978138714181ull}},
+ {{7494536421572921118ull, 1153177851713199261ull,
+ 6312517902613656862ull, 211283395627742836ull}},
+ {{14989072843145842235ull, 2306355703426398522ull,
+ 12625035805227313724ull, 422566791255485672ull}},
+ {{11531401612582132853ull, 4612711406852797045ull,
+ 6803327536745075832ull, 845133582510971345ull}},
+ {{9684977952000247217ull, 8301239910854380055ull,
+ 1360665507349015166ull, 169026716502194269ull}},
+ {{923211830290942818ull, 16602479821708760111ull,
+ 2721331014698030332ull, 338053433004388538ull}},
+ {{1846423660581885636ull, 14758215569707968606ull,
+ 5442662029396060665ull, 676106866008777076ull}},
+ {{7747982361600197774ull, 6640991928683504044ull,
+ 4777881220621122456ull, 135221373201755415ull}},
+ {{15495964723200395548ull, 13281983857367008088ull,
+ 9555762441242244912ull, 270442746403510830ull}},
+ {{12545185372691239479ull, 8117223641024464561ull,
+ 664780808774938209ull, 540885492807021661ull}},
+ {{6643626671672927341ull, 16234447282048929123ull,
+ 1329561617549876418ull, 1081770985614043322ull}},
+ {{12396771778560316438ull, 3246889456409785824ull,
+ 7644609952993795930ull, 216354197122808664ull}},
+ {{6346799483411081260ull, 6493778912819571649ull,
+ 15289219905987591860ull, 432708394245617328ull}},
+ {{12693598966822162519ull, 12987557825639143298ull,
+ 12131695738265632104ull, 865416788491234657ull}},
+ {{17296115052332073797ull, 6286860379869738982ull,
+ 9805036777136947067ull, 173083357698246931ull}},
+ {{16145486030954595977ull, 12573720759739477965ull,
+ 1163329480564342518ull, 346166715396493863ull}},
+ {{13844227988199640338ull, 6700697445769404315ull,
+ 2326658961128685037ull, 692333430792987726ull}},
+ {{13836892041865659038ull, 12408185933379611832ull,
+ 4154680606967647330ull, 138466686158597545ull}},
+ {{9227040010021766459ull, 6369627793049672049ull,
+ 8309361213935294661ull, 276933372317195090ull}},
+ {{7335946333981301ull, 12739255586099344099ull, 16618722427870589322ull,
+ 553866744634390180ull}},
+ {{14671892667962602ull, 7031767098489136582ull, 14790700782031627029ull,
+ 1107733489268780361ull}},
+ {{7381632008017413167ull, 1406353419697827316ull,
+ 6647488971148235729ull, 221546697853756072ull}},
+ {{14763264016034826334ull, 2812706839395654632ull,
+ 13294977942296471458ull, 443093395707512144ull}},
+ {{11079783958360101051ull, 5625413678791309265ull,
+ 8143211810883391300ull, 886186791415024289ull}},
+ {{16973352050639661503ull, 15882477994725903145ull,
+ 16386037621144319552ull, 177237358283004857ull}},
+ {{15499960027569771390ull, 13318211915742254675ull,
+ 14325331168579087489ull, 354474716566009715ull}},
+ {{12553175981429991164ull, 8189679757774957735ull,
+ 10203918263448623363ull, 708949433132019431ull}},
+ {{17268030455253639526ull, 16395331210522632839ull,
+ 5730132467431634995ull, 141789886626403886ull}},
+ {{16089316836797727436ull, 14343918347335714063ull,
+ 11460264934863269991ull, 283579773252807772ull}},
+ {{13731889599885903255ull, 10241092620961876511ull,
+ 4473785796016988367ull, 567159546505615545ull}},
+ {{9017035126062254893ull, 2035441168214201407ull,
+ 8947571592033976735ull, 1134319093011231090ull}},
+ {{9182104654696271625ull, 407088233642840281ull, 1789514318406795347ull,
+ 226863818602246218ull}},
+ {{18364209309392543250ull, 814176467285680562ull,
+ 3579028636813590694ull, 453727637204492436ull}},
+ {{18281674545075534884ull, 1628352934571361125ull,
+ 7158057273627181388ull, 907455274408984872ull}},
+ {{3656334909015106977ull, 325670586914272225ull, 8810309084209256924ull,
+ 181491054881796974ull}},
+ {{7312669818030213954ull, 651341173828544450ull,
+ 17620618168418513848ull, 362982109763593948ull}},
+ {{14625339636060427907ull, 1302682347657088900ull,
+ 16794492263127476080ull, 725964219527187897ull}},
+ {{10303765556695906228ull, 7639234099015238426ull,
+ 10737596082109315862ull, 145192843905437579ull}},
+ {{2160787039682260840ull, 15278468198030476853ull,
+ 3028448090509080108ull, 290385687810875159ull}},
+ {{4321574079364521680ull, 12110192322351402090ull,
+ 6056896181018160217ull, 580771375621750318ull}},
+ {{8643148158729043359ull, 5773640570993252564ull,
+ 12113792362036320435ull, 1161542751243500636ull}},
+ {{1728629631745808672ull, 4844076928940560836ull,
+ 6112107287149174410ull, 232308550248700127ull}},
+ {{3457259263491617344ull, 9688153857881121672ull,
+ 12224214574298348820ull, 464617100497400254ull}},
+ {{6914518526983234687ull, 929563642052691728ull, 6001685074887146025ull,
+ 929234200994800509ull}},
+ {{8761601334880467584ull, 14943307987378179638ull,
+ 15957732273945070497ull, 185846840198960101ull}},
+ {{17523202669760935168ull, 11439871901046807660ull,
+ 13468720474180589379ull, 371693680397920203ull}},
+ {{16599661265812318719ull, 4432999728384063705ull,
+ 8490696874651627143ull, 743387360795840407ull}},
+ {{3319932253162463744ull, 886599945676812741ull, 9076837004414146075ull,
+ 148677472159168081ull}},
+ {{6639864506324927488ull, 1773199891353625482ull,
+ 18153674008828292150ull, 297354944318336162ull}},
+ {{13279729012649854976ull, 3546399782707250964ull,
+ 17860603943947032684ull, 594709888636672325ull}},
+ {{8112713951590158335ull, 7092799565414501929ull,
+ 17274463814184513752ull, 1189419777273344651ull}},
+ {{9001240419801852314ull, 12486606357308631355ull,
+ 7144241577578813073ull, 237883955454668930ull}},
+ {{18002480839603704627ull, 6526468640907711094ull,
+ 14288483155157626147ull, 475767910909337860ull}},
+ {{17558217605497857637ull, 13052937281815422189ull,
+ 10130222236605700678ull, 951535821818675721ull}},
+ {{14579689965325302497ull, 17367982715330725730ull,
+ 5715393262063050458ull, 190307164363735144ull}},
+ {{10712635856941053378ull, 16289221356951899845ull,
+ 11430786524126100917ull, 380614328727470288ull}},
+ {{2978527640172555140ull, 14131698640194248075ull,
+ 4414828974542650219ull, 761228657454940577ull}},
+ {{4285054342776421352ull, 6515688542780759938ull,
+ 8261663424392350690ull, 152245731490988115ull}},
+ {{8570108685552842703ull, 13031377085561519876ull,
+ 16523326848784701380ull, 304491462981976230ull}},
+ {{17140217371105685405ull, 7616010097413488136ull,
+ 14599909623859851145ull, 608982925963952461ull}},
+ {{15833690668501819194ull, 15232020194826976273ull,
+ 10753075174010150674ull, 1217965851927904923ull}},
+ {{3166738133700363839ull, 10425101668449215901ull,
+ 13218661479027761104ull, 243593170385580984ull}},
+ {{6333476267400727678ull, 2403459263188880186ull,
+ 7990578884345970593ull, 487186340771161969ull}},
+ {{12666952534801455355ull, 4806918526377760372ull,
+ 15981157768691941186ull, 974372681542323938ull}},
+ {{6222739321702201395ull, 15718778964243193367ull,
+ 14264277997964119206ull, 194874536308464787ull}},
+ {{12445478643404402789ull, 12990813854776835118ull,
+ 10081811922218686797ull, 389749072616929575ull}},
+ {{6444213213099253961ull, 7534883635844118621ull,
+ 1716879770727821979ull, 779498145233859151ull}},
+ {{4978191457361761116ull, 1506976727168823724ull,
+ 4032724768887474719ull, 155899629046771830ull}},
+ {{9956382914723522231ull, 3013953454337647448ull,
+ 8065449537774949438ull, 311799258093543660ull}},
+ {{1466021755737492846ull, 6027906908675294897ull,
+ 16130899075549898876ull, 623598516187087320ull}},
+ {{2932043511474985691ull, 12055813817350589794ull,
+ 13815054077390246136ull, 1247197032374174641ull}},
+ {{4275757517036907462ull, 9789860392953938605ull,
+ 6452359630219959550ull, 249439406474834928ull}},
+ {{8551515034073814923ull, 1132976712198325594ull,
+ 12904719260439919101ull, 498878812949669856ull}},
+ {{17103030068147629846ull, 2265953424396651188ull,
+ 7362694447170286586ull, 997757625899339713ull}},
+ {{10799303643113346616ull, 15210585943846971530ull,
+ 12540585333659788286ull, 199551525179867942ull}},
+ {{3151863212517141615ull, 11974427813984391445ull,
+ 6634426593610024957ull, 399103050359735885ull}},
+ {{6303726425034283230ull, 5502111554259231274ull,
+ 13268853187220049915ull, 798206100719471770ull}},
+ {{16018140543974497939ull, 1100422310851846254ull,
+ 2653770637444009983ull, 159641220143894354ull}},
+ {{13589537014239444262ull, 2200844621703692509ull,
+ 5307541274888019966ull, 319282440287788708ull}},
+ {{8732329954769336908ull, 4401689243407385019ull,
+ 10615082549776039932ull, 638564880575577416ull}},
+ {{17464659909538673815ull, 8803378486814770038ull,
+ 2783421025842528248ull, 1277129761151154833ull}},
+ {{18250327240875376056ull, 5450024512104864330ull,
+ 11624730649394236619ull, 255425952230230966ull}},
+ {{18053910408041200496ull, 10900049024209728661ull,
+ 4802717225078921622ull, 510851904460461933ull}},
+ {{17661076742372849375ull, 3353353974709905707ull,
+ 9605434450157843245ull, 1021703808920923866ull}},
+ {{14600261792700300845ull, 4360019609683891464ull,
+ 5610435704773478972ull, 204340761784184773ull}},
+ {{10753779511691050074ull, 8720039219367782929ull,
+ 11220871409546957944ull, 408681523568369546ull}},
+ {{3060814949672548531ull, 17440078438735565859ull,
+ 3994998745384364272ull, 817363047136739093ull}},
+ {{15369558248902150999ull, 3488015687747113171ull,
+ 11867046193302603824ull, 163472609427347818ull}},
+ {{12292372424094750382ull, 6976031375494226343ull,
+ 5287348312895656032ull, 326945218854695637ull}},
+ {{6138000774479949148ull, 13952062750988452687ull,
+ 10574696625791312064ull, 653890437709391274ull}},
+ {{1227600154895989830ull, 13858458994423421507ull,
+ 16872334584125903705ull, 130778087541878254ull}},
+ {{2455200309791979659ull, 9270173915137291398ull,
+ 15297925094542255795ull, 261556175083756509ull}},
+ {{4910400619583959318ull, 93603756565031180ull, 12149106115374959975ull,
+ 523112350167513019ull}},
+ {{9820801239167918636ull, 187207513130062360ull, 5851468157040368334ull,
+ 1046224700335026039ull}},
+ {{13032206692059314697ull, 11105487946851743441ull,
+ 15927688890375714959ull, 209244940067005207ull}},
+ {{7617669310409077778ull, 3764231819993935267ull,
+ 13408633707041878303ull, 418489880134010415ull}},
+ {{15235338620818155555ull, 7528463639987870534ull,
+ 8370523340374204990ull, 836979760268020831ull}},
+ {{3047067724163631111ull, 5195041542739484430ull,
+ 5363453482816751321ull, 167395952053604166ull}},
+ {{6094135448327262222ull, 10390083085478968860ull,
+ 10726906965633502642ull, 334791904107208332ull}},
+ {{12188270896654524444ull, 2333422097248386104ull,
+ 3007069857557453669ull, 669583808214416665ull}},
+ {{13505700623556635859ull, 15224079678417318513ull,
+ 601413971511490733ull, 133916761642883333ull}},
+ {{8564657173403720101ull, 12001415283125085411ull,
+ 1202827943022981467ull, 267833523285766666ull}},
+ {{17129314346807440202ull, 5556086492540619206ull,
+ 2405655886045962935ull, 535667046571533332ull}},
+ {{15811884619905328788ull, 11112172985081238413ull,
+ 4811311772091925870ull, 1071334093143066664ull}},
+ {{10541074553464886404ull, 16979829855983888975ull,
+ 15719657613386026466ull, 214266818628613332ull}},
+ {{2635405033220221192ull, 15512915638258226335ull,
+ 12992571153062501317ull, 428533637257226665ull}},
+ {{5270810066440442384ull, 12579087202806901054ull,
+ 7538398232415451019ull, 857067274514453331ull}},
+ {{15811557272255729770ull, 2515817440561380210ull,
+ 5197028461225000527ull, 171413454902890666ull}},
+ {{13176370470801907923ull, 5031634881122760421ull,
+ 10394056922450001054ull, 342826909805781332ull}},
+ {{7905996867894264230ull, 10063269762245520843ull,
+ 2341369771190450492ull, 685653819611562665ull}},
+ {{1581199373578852846ull, 9391351581932924815ull, 468273954238090098ull,
+ 137130763922312533ull}},
+ {{3162398747157705692ull, 335959090156298014ull, 936547908476180197ull,
+ 274261527844625066ull}},
+ {{6324797494315411384ull, 671918180312596028ull, 1873095816952360394ull,
+ 548523055689250132ull}},
+ {{12649594988630822768ull, 1343836360625192056ull,
+ 3746191633904720788ull, 1097046111378500264ull}},
+ {{13597965441951895524ull, 7647464901608859057ull,
+ 15506633585748585450ull, 219409222275700052ull}},
+ {{8749186810194239431ull, 15294929803217718115ull,
+ 12566523097787619284ull, 438818444551400105ull}},
+ {{17498373620388478861ull, 12143115532725884614ull,
+ 6686302121865686953ull, 877636889102800211ull}},
+ {{14567721168303426742ull, 17186018365512818215ull,
+ 5026609239115047713ull, 175527377820560042ull}},
+ {{10688698262897301868ull, 15925292657316084815ull,
+ 10053218478230095427ull, 351054755641120084ull}},
+ {{2930652452085052119ull, 13403841240922618015ull,
+ 1659692882750639239ull, 702109511282240169ull}},
+ {{11654176934642741394ull, 13748814692410254572ull,
+ 15089333835517769140ull, 140421902256448033ull}},
+ {{4861609795575931171ull, 9050885311110957529ull,
+ 11731923597325986665ull, 280843804512896067ull}},
+ {{9723219591151862342ull, 18101770622221915058ull,
+ 5017103120942421714ull, 561687609025792135ull}},
+ {{999695108594173067ull, 17756797170734278501ull,
+ 10034206241884843429ull, 1123375218051584270ull}},
+ {{199939021718834614ull, 18308754693114496993ull,
+ 2006841248376968685ull, 224675043610316854ull}},
+ {{399878043437669227ull, 18170765312519442370ull,
+ 4013682496753937371ull, 449350087220633708ull}},
+ {{799756086875338454ull, 17894786551329333124ull,
+ 8027364993507874743ull, 898700174441267416ull}},
+ {{11227997661600798661ull, 18336352569233507917ull,
+ 5294821813443485271ull, 179740034888253483ull}},
+ {{4009251249492045705ull, 18225961064757464219ull,
+ 10589643626886970543ull, 359480069776506966ull}},
+ {{8018502498984091410ull, 18005178055805376822ull,
+ 2732543180064389471ull, 718960139553013933ull}},
+ {{5293049314538728606ull, 18358430870128716657ull,
+ 11614555080238608863ull, 143792027910602786ull}},
+ {{10586098629077457211ull, 18270117666547881698ull,
+ 4782366086767666111ull, 287584055821205573ull}},
+ {{2725453184445362805ull, 18093491259386211781ull,
+ 9564732173535332223ull, 575168111642411146ull}},
+ {{5450906368890725609ull, 17740238445062871946ull,
+ 682720273361112831ull, 1150336223284822293ull}},
+ {{1090181273778145122ull, 18305442947980215682ull,
+ 11204590498897953535ull, 230067244656964458ull}},
+ {{2180362547556290244ull, 18164141822250879748ull,
+ 3962436924086355455ull, 460134489313928917ull}},
+ {{4360725095112580487ull, 17881539570792207880ull,
+ 7924873848172710911ull, 920268978627857834ull}},
+ {{872145019022516098ull, 3576307914158441576ull,
+ 16342370028602183475ull, 184053795725571566ull}},
+ {{1744290038045032195ull, 7152615828316883152ull,
+ 14237995983494815334ull, 368107591451143133ull}},
+ {{3488580076090064390ull, 14305231656633766304ull,
+ 10029247893280079052ull, 736215182902286267ull}},
+ {{11765762459443743848ull, 17618441590294394553ull,
+ 9384547208139836456ull, 147243036580457253ull}},
+ {{5084780845177936079ull, 16790139106879237491ull,
+ 322350342570121297ull, 294486073160914507ull}},
+ {{10169561690355872158ull, 15133534140048923366ull,
+ 644700685140242595ull, 588972146321829014ull}},
+ {{1892379307002192700ull, 11820324206388295117ull,
+ 1289401370280485191ull, 1177944292643658028ull}},
+ {{4067824676142348864ull, 17121460100245300316ull,
+ 11325926718281828007ull, 235588858528731605ull}},
+ {{8135649352284697727ull, 15796176126781049016ull,
+ 4205109362854104399ull, 471177717057463211ull}},
+ {{16271298704569395453ull, 13145608179852546416ull,
+ 8410218725708208799ull, 942355434114926422ull}},
+ {{10632957370397699737ull, 6318470450712419606ull,
+ 9060741374625462406ull, 188471086822985284ull}},
+ {{2819170667085847858ull, 12636940901424839213ull,
+ 18121482749250924812ull, 376942173645970568ull}},
+ {{5638341334171695716ull, 6827137729140126810ull,
+ 17796221424792298009ull, 753884347291941137ull}},
+ {{4817017081576249467ull, 5054776360569935685ull,
+ 10937941914442280248ull, 150776869458388227ull}},
+ {{9634034163152498933ull, 10109552721139871370ull,
+ 3429139755175008880ull, 301553738916776455ull}},
+ {{821324252595446250ull, 1772361368570191125ull, 6858279510350017761ull,
+ 603107477833552910ull}},
+ {{1642648505190892499ull, 3544722737140382250ull,
+ 13716559020700035522ull, 1206214955667105820ull}},
+ {{7707227330521999147ull, 8087642176911897096ull,
+ 2743311804140007104ull, 241242991133421164ull}},
+ {{15414454661043998293ull, 16175284353823794192ull,
+ 5486623608280014208ull, 482485982266842328ull}},
+ {{12382165248378444969ull, 13903824633938036769ull,
+ 10973247216560028417ull, 964971964533684656ull}},
+ {{9855130679159509641ull, 13848811371013338323ull,
+ 5883998258053916006ull, 192994392906736931ull}},
+ {{1263517284609467665ull, 9250878668317125031ull,
+ 11767996516107832013ull, 385988785813473862ull}},
+ {{2527034569218935329ull, 55013262924698446ull, 5089248958506112411ull,
+ 771977571626947725ull}},
+ {{7884104543327607713ull, 3700351467326850012ull,
+ 1017849791701222482ull, 154395514325389545ull}},
+ {{15768209086655215425ull, 7400702934653700024ull,
+ 2035699583402444964ull, 308791028650779090ull}},
+ {{13089674099600879233ull, 14801405869307400049ull,
+ 4071399166804889928ull, 617582057301558180ull}},
+ {{7732604125492206849ull, 11156067664905248483ull,
+ 8142798333609779857ull, 1235164114603116360ull}},
+ {{1546520825098441370ull, 9609911162464870343ull,
+ 1628559666721955971ull, 247032822920623272ull}},
+ {{3093041650196882740ull, 773078251220189070ull, 3257119333443911943ull,
+ 494065645841246544ull}},
+ {{6186083300393765479ull, 1546156502440378140ull,
+ 6514238666887823886ull, 988131291682493088ull}},
+ {{15994611919046394389ull, 15066626559455716920ull,
+ 12370894177603295746ull, 197626258336498617ull}},
+ {{13542479764383237162ull, 11686509045201882225ull,
+ 6295044281497039877ull, 395252516672997235ull}},
+ {{8638215455056922707ull, 4926274016694212835ull,
+ 12590088562994079755ull, 790505033345994470ull}},
+ {{1727643091011384542ull, 985254803338842567ull, 2518017712598815951ull,
+ 158101006669198894ull}},
+ {{3455286182022769083ull, 1970509606677685134ull,
+ 5036035425197631902ull, 316202013338397788ull}},
+ {{6910572364045538166ull, 3941019213355370268ull,
+ 10072070850395263804ull, 632404026676795576ull}},
+ {{13821144728091076331ull, 7882038426710740536ull,
+ 1697397627080975992ull, 1264808053353591153ull}},
+ {{6453577760360125590ull, 1576407685342148107ull,
+ 11407525969641926168ull, 252961610670718230ull}},
+ {{12907155520720251179ull, 3152815370684296214ull,
+ 4368307865574300720ull, 505923221341436461ull}},
+ {{7367566967730950741ull, 6305630741368592429ull,
+ 8736615731148601440ull, 1011846442682872922ull}},
+ {{5162862208288100472ull, 8639823777757539132ull,
+ 9126020775713540934ull, 202369288536574584ull}},
+ {{10325724416576200943ull, 17279647555515078264ull,
+ 18252041551427081868ull, 404738577073149168ull}},
+ {{2204704759442850270ull, 16112551037320604913ull,
+ 18057339029144612121ull, 809477154146298337ull}},
+ {{4130289766630480378ull, 14290556651689851952ull,
+ 10990165435312743070ull, 161895430829259667ull}},
+ {{8260579533260960755ull, 10134369229670152288ull,
+ 3533586796915934525ull, 323790861658519335ull}},
+ {{16521159066521921509ull, 1821994385630752960ull,
+ 7067173593831869051ull, 647581723317038670ull}},
+ {{6993580628046294625ull, 4053747691868060915ull,
+ 1413434718766373810ull, 129516344663407734ull}},
+ {{13987161256092589250ull, 8107495383736121830ull,
+ 2826869437532747620ull, 259032689326815468ull}},
+ {{9527578438475626884ull, 16214990767472243661ull,
+ 5653738875065495240ull, 518065378653630936ull}},
+ {{608412803241702152ull, 13983237461234935707ull,
+ 11307477750130990481ull, 1036130757307261872ull}},
+ {{121682560648340431ull, 13864693936472718111ull,
+ 9640193179510018742ull, 207226151461452374ull}},
+ {{243365121296680861ull, 9282643799235884606ull, 833642285310485869ull,
+ 414452302922904749ull}},
+ {{486730242593361721ull, 118543524762217596ull, 1667284570620971739ull,
+ 828904605845809498ull}},
+ {{11165392492744403314ull, 7402406334436264165ull,
+ 11401503358349925317ull, 165780921169161899ull}},
+ {{3884040911779255012ull, 14804812668872528331ull,
+ 4356262642990299018ull, 331561842338323799ull}},
+ {{7768081823558510024ull, 11162881264035505046ull,
+ 8712525285980598037ull, 663123684676647598ull}},
+ {{5242965179453612328ull, 2232576252807101009ull,
+ 12810551501421850577ull, 132624736935329519ull}},
+ {{10485930358907224656ull, 4465152505614202018ull,
+ 7174358929134149538ull, 265249473870659039ull}},
+ {{2525116644104897696ull, 8930305011228404037ull,
+ 14348717858268299076ull, 530498947741318078ull}},
+ {{5050233288209795391ull, 17860610022456808074ull,
+ 10250691642827046536ull, 1060997895482636157ull}},
+ {{8388744287125779725ull, 14640168448717092584ull,
+ 9428835958049229953ull, 212199579096527231ull}},
+ {{16777488574251559450ull, 10833592823724633552ull,
+ 410927842388908291ull, 424399158193054463ull}},
+ {{15108233074793567283ull, 3220441573739715489ull,
+ 821855684777816583ull, 848798316386108926ull}},
+ {{14089693059184444427ull, 15401483573715584390ull,
+ 3853719951697473639ull, 169759663277221785ull}},
+ {{9732642044659337237ull, 12356223073721617165ull,
+ 7707439903394947279ull, 339519326554443570ull}},
+ {{1018540015609122857ull, 6265702073733682715ull,
+ 15414879806789894559ull, 679038653108887140ull}},
+ {{14961103262089465865ull, 16010535673714377835ull,
+ 3082975961357978911ull, 135807730621777428ull}},
+ {{11475462450469380113ull, 13574327273719204055ull,
+ 6165951922715957823ull, 271615461243554856ull}},
+ {{4504180827229208609ull, 8701910473728856495ull,
+ 12331903845431915647ull, 543230922487109712ull}},
+ {{9008361654458417217ull, 17403820947457712990ull,
+ 6217063617154279678ull, 1086461844974219425ull}},
+ {{12869718775117414413ull, 14548810633717273567ull,
+ 1243412723430855935ull, 217292368994843885ull}},
+ {{7292693476525277210ull, 10650877193724995519ull,
+ 2486825446861711871ull, 434584737989687770ull}},
+ {{14585386953050554420ull, 2855010313740439422ull,
+ 4973650893723423743ull, 869169475979375540ull}},
+ {{2917077390610110884ull, 11639048506973818854ull,
+ 994730178744684748ull, 173833895195875108ull}},
+ {{5834154781220221768ull, 4831352940238086092ull,
+ 1989460357489369497ull, 347667790391750216ull}},
+ {{11668309562440443536ull, 9662705880476172184ull,
+ 3978920714978738994ull, 695335580783500432ull}},
+ {{2333661912488088708ull, 5621889990837144760ull,
+ 8174481772479568445ull, 139067116156700086ull}},
+ {{4667323824976177415ull, 11243779981674289520ull,
+ 16348963544959136890ull, 278134232313400172ull}},
+ {{9334647649952354829ull, 4040815889639027424ull,
+ 14251183016208722165ull, 556268464626800345ull}},
+ {{222551226195158041ull, 8081631779278054849ull,
+ 10055621958707892714ull, 1112536929253600691ull}},
+ {{14801905504206672901ull, 1616326355855610969ull,
+ 5700473206483488866ull, 222507385850720138ull}},
+ {{11157066934703794186ull, 3232652711711221939ull,
+ 11400946412966977732ull, 445014771701440276ull}},
+ {{3867389795698036756ull, 6465305423422443879ull,
+ 4355148752224403848ull, 890029543402880553ull}},
+ {{773477959139607352ull, 4982409899426399099ull,
+ 11939076194670611739ull, 178005908680576110ull}},
+ {{1546955918279214703ull, 9964819798852798198ull,
+ 5431408315631671862ull, 356011817361152221ull}},
+ {{3093911836558429405ull, 1482895523996044780ull,
+ 10862816631263343725ull, 712023634722304442ull}},
+ {{7997479996795506528ull, 7675276734283029602ull,
+ 9551260955736489391ull, 142404726944460888ull}},
+ {{15994959993591013055ull, 15350553468566059204ull,
+ 655777837763427166ull, 284809453888921777ull}},
+ {{13543175913472474494ull, 12254362863422566793ull,
+ 1311555675526854333ull, 569618907777843554ull}},
+ {{8639607753235397371ull, 6061981653135581971ull,
+ 2623111351053708667ull, 1139237815555687108ull}},
+ {{5417270365388989798ull, 1212396330627116394ull,
+ 11592668714436472703ull, 227847563111137421ull}},
+ {{10834540730777979595ull, 2424792661254232788ull,
+ 4738593355163393790ull, 455695126222274843ull}},
+ {{3222337387846407574ull, 4849585322508465577ull,
+ 9477186710326787580ull, 911390252444549686ull}},
+ {{11712513921795012485ull, 4659265879243603438ull,
+ 5584786156807267839ull, 182278050488909937ull}},
+ {{4978283769880473353ull, 9318531758487206877ull,
+ 11169572313614535678ull, 364556100977819874ull}},
+ {{9956567539760946705ull, 190319443264862138ull, 3892400553519519741ull,
+ 729112201955639749ull}},
+ {{13059359952177920311ull, 38063888652972427ull,
+ 15535875369671545241ull, 145822440391127949ull}},
+ {{7671975830646289006ull, 76127777305944855ull, 12625006665633538866ull,
+ 291644880782255899ull}},
+ {{15343951661292578011ull, 152255554611889710ull,
+ 6803269257557526116ull, 583289761564511799ull}},
+ {{12241159248875604405ull, 304511109223779421ull,
+ 13606538515115052232ull, 1166579523129023598ull}},
+ {{6137580664517031205ull, 60902221844755884ull, 13789354147248741416ull,
+ 233315904625804719ull}},
+ {{12275161329034062409ull, 121804443689511768ull,
+ 9131964220787931216ull, 466631809251609439ull}},
+ {{6103578584358573201ull, 243608887379023537ull,
+ 18263928441575862432ull, 933263618503218878ull}},
+ {{8599413346355535287ull, 48721777475804707ull, 14720832132540903456ull,
+ 186652723700643775ull}},
+ {{17198826692711070574ull, 97443554951609414ull,
+ 10994920191372255296ull, 373305447401287551ull}},
+ {{15950909311712589531ull, 194887109903218829ull,
+ 3543096309034958976ull, 746610894802575103ull}},
+ {{14258228306568248876ull, 14796372680948285058ull,
+ 11776665706032722764ull, 149322178960515020ull}},
+ {{10069712539426946136ull, 11146001288187018501ull,
+ 5106587338355893913ull, 298644357921030041ull}},
+ {{1692681005144340655ull, 3845258502664485387ull,
+ 10213174676711787827ull, 597288715842060082ull}},
+ {{3385362010288681309ull, 7690517005328970774ull,
+ 1979605279714024038ull, 1194577431684120165ull}},
+ {{8055770031541556909ull, 12606149845291525124ull,
+ 395921055942804807ull, 238915486336824033ull}},
+ {{16111540063083113817ull, 6765555616873498632ull,
+ 791842111885609615ull, 477830972673648066ull}},
+ {{13776336052456676017ull, 13531111233746997265ull,
+ 1583684223771219230ull, 955661945347296132ull}},
+ {{10133964839975155850ull, 10084919876233220099ull,
+ 7695434474238064492ull, 191132389069459226ull}},
+ {{1821185606240760084ull, 1723095678756888583ull,
+ 15390868948476128985ull, 382264778138918452ull}},
+ {{3642371212481520168ull, 3446191357513777166ull,
+ 12334993823242706354ull, 764529556277836905ull}},
+ {{728474242496304034ull, 15446633530470396726ull,
+ 2466998764648541270ull, 152905911255567381ull}},
+ {{1456948484992608067ull, 12446522987231241836ull,
+ 4933997529297082541ull, 305811822511134762ull}},
+ {{2913896969985216134ull, 6446301900752932056ull,
+ 9867995058594165083ull, 611623645022269524ull}},
+ {{5827793939970432268ull, 12892603801505864112ull,
+ 1289246043478778550ull, 1223247290044539049ull}},
+ {{4854907602735996777ull, 17335916019268814115ull,
+ 15015244467663397002ull, 244649458008907809ull}},
+ {{9709815205471993554ull, 16225087964828076614ull,
+ 11583744861617242389ull, 489298916017815619ull}},
+ {{972886337234435491ull, 14003431855946601613ull,
+ 4720745649524933163ull, 978597832035631239ull}},
+ {{194577267446887099ull, 10179384000673140969ull,
+ 15701544388872627925ull, 195719566407126247ull}},
+ {{389154534893774197ull, 1912023927636730322ull,
+ 12956344704035704235ull, 391439132814252495ull}},
+ {{778309069787548393ull, 3824047855273460644ull, 7465945334361856854ull,
+ 782878265628504991ull}},
+ {{14913057072925150972ull, 764809571054692128ull,
+ 5182537881614281694ull, 156575653125700998ull}},
+ {{11379370072140750327ull, 1529619142109384257ull,
+ 10365075763228563388ull, 313151306251401996ull}},
+ {{4311996070571949038ull, 3059238284218768515ull,
+ 2283407452747575160ull, 626302612502803993ull}},
+ {{8623992141143898075ull, 6118476568437537030ull,
+ 4566814905495150320ull, 1252605225005607986ull}},
+ {{5414147242970689939ull, 4913044128429417729ull,
+ 4602711795840940387ull, 250521045001121597ull}},
+ {{10828294485941379877ull, 9826088256858835458ull,
+ 9205423591681880774ull, 501042090002243194ull}},
+ {{3209844898173208137ull, 1205432440008119301ull,
+ 18410847183363761549ull, 1002084180004486388ull}},
+ {{11710015423860372597ull, 7619784117485444506ull,
+ 14750215880898483279ull, 200416836000897277ull}},
+ {{4973286774011193578ull, 15239568234970889013ull,
+ 11053687688087414942ull, 400833672001794555ull}},
+ {{9946573548022387156ull, 12032392396232226410ull,
+ 3660631302465278269ull, 801667344003589111ull}},
+ {{1989314709604477432ull, 2406478479246445282ull,
+ 4421475075234965977ull, 160333468800717822ull}},
+ {{3978629419208954863ull, 4812956958492890564ull,
+ 8842950150469931954ull, 320666937601435644ull}},
+ {{7957258838417909725ull, 9625913916985781128ull,
+ 17685900300939863908ull, 641333875202871288ull}},
+ {{16348847026651223238ull, 5614531598139066548ull,
+ 14605226504413703751ull, 128266775040574257ull}},
+ {{14250949979592894860ull, 11229063196278133097ull,
+ 10763708935117855886ull, 256533550081148515ull}},
+ {{10055155885476238103ull, 4011382318846714579ull,
+ 3080673796526160157ull, 513067100162297031ull}},
+ {{1663567697242924590ull, 8022764637693429159ull,
+ 6161347593052320314ull, 1026134200324594062ull}},
+ {{332713539448584918ull, 5293901742280596155ull, 8610967148094284709ull,
+ 205226840064918812ull}},
+ {{665427078897169836ull, 10587803484561192310ull,
+ 17221934296188569418ull, 410453680129837624ull}},
+ {{1330854157794339672ull, 2728862895412833004ull,
+ 15997124518667587221ull, 820907360259675249ull}},
+ {{15023566090526509228ull, 545772579082566600ull,
+ 17956820162701158737ull, 164181472051935049ull}},
+ {{11600388107343466839ull, 1091545158165133201ull,
+ 17466896251692765858ull, 328362944103870099ull}},
+ {{4754032140977382061ull, 2183090316330266403ull,
+ 16487048429675980100ull, 656725888207740199ull}},
+ {{8329504057679297059ull, 15194013322233694573ull,
+ 18054804944902837312ull, 131345177641548039ull}},
+ {{16659008115358594117ull, 11941282570757837530ull,
+ 17662865816096123009ull, 262690355283096079ull}},
+ {{14871272157007636618ull, 5435821067806123445ull,
+ 16878987558482694403ull, 525380710566192159ull}},
+ {{11295800240305721620ull, 10871642135612246891ull,
+ 15311231043255837190ull, 1050761421132384319ull}},
+ {{2259160048061144324ull, 16931723686090090671ull,
+ 17819641467618808730ull, 210152284226476863ull}},
+ {{4518320096122288648ull, 15416703298470629726ull,
+ 17192538861528065845ull, 420304568452953727ull}},
+ {{9036640192244577296ull, 12386662523231707836ull,
+ 15938333649346580075ull, 840609136905907455ull}},
+ {{5496676853190825783ull, 2477332504646341567ull,
+ 3187666729869316015ull, 168121827381181491ull}},
+ {{10993353706381651565ull, 4954665009292683134ull,
+ 6375333459738632030ull, 336243654762362982ull}},
+ {{3539963339053751514ull, 9909330018585366269ull,
+ 12750666919477264060ull, 672487309524725964ull}},
+ {{11776039112036481273ull, 16739261262684714546ull,
+ 17307528642863094104ull, 134497461904945192ull}},
+ {{5105334150363410929ull, 15031778451659877477ull,
+ 16168313212016636593ull, 268994923809890385ull}},
+ {{10210668300726821858ull, 11616812829610203338ull,
+ 13889882350323721571ull, 537989847619780771ull}},
+ {{1974592527744092099ull, 4786881585510855061ull,
+ 9333020626937891527ull, 1075979695239561543ull}},
+ {{4084267320290728743ull, 957376317102171012ull,
+ 12934650569613309275ull, 215195939047912308ull}},
+ {{8168534640581457486ull, 1914752634204342024ull,
+ 7422557065517066934ull, 430391878095824617ull}},
+ {{16337069281162914972ull, 3829505268408684048ull,
+ 14845114131034133868ull, 860783756191649234ull}},
+ {{3267413856232582995ull, 8144598683165557456ull,
+ 17726418085174468066ull, 172156751238329846ull}},
+ {{6534827712465165989ull, 16289197366331114912ull,
+ 17006092096639384516ull, 344313502476659693ull}},
+ {{13069655424930331978ull, 14131650658952678208ull,
+ 15565440119569217417ull, 688627004953319387ull}},
+ {{9992628714469887042ull, 17583725390758176934ull,
+ 10491785653397664129ull, 137725400990663877ull}},
+ {{1538513355230222468ull, 16720706707806802253ull,
+ 2536827233085776643ull, 275450801981327755ull}},
+ {{3077026710460444936ull, 14994669341904052890ull,
+ 5073654466171553287ull, 550901603962655510ull}},
+ {{6154053420920889871ull, 11542594610098554164ull,
+ 10147308932343106575ull, 1101803207925311020ull}},
+ {{15988205943151819267ull, 2308518922019710832ull,
+ 2029461786468621315ull, 220360641585062204ull}},
+ {{13529667812594086918ull, 4617037844039421665ull,
+ 4058923572937242630ull, 440721283170124408ull}},
+ {{8612591551478622220ull, 9234075688078843331ull,
+ 8117847145874485260ull, 881442566340248816ull}},
+ {{9101215939779545091ull, 5536163952357678989ull,
+ 5312918243916807375ull, 176288513268049763ull}},
+ {{18202431879559090181ull, 11072327904715357978ull,
+ 10625836487833614750ull, 352577026536099526ull}},
+ {{17958119685408628746ull, 3697911735721164341ull,
+ 2804928901957677885ull, 705154053072199053ull}},
+ {{18349019196049367042ull, 11807628791369963837ull,
+ 11629032224617266546ull, 141030810614439810ull}},
+ {{18251294318389182468ull, 5168513509030376059ull,
+ 4811320375524981477ull, 282061621228879621ull}},
+ {{18055844563068813320ull, 10337027018060752119ull,
+ 9622640751049962954ull, 564123242457759242ull}},
+ {{17664945052428075024ull, 2227309962411952623ull,
+ 798537428390374293ull, 1128246484915518485ull}},
+ {{7222337825227525328ull, 11513508436708121494ull,
+ 159707485678074858ull, 225649296983103697ull}},
+ {{14444675650455050656ull, 4580272799706691372ull,
+ 319414971356149717ull, 451298593966207394ull}},
+ {{10442607227200549696ull, 9160545599413382745ull,
+ 638829942712299434ull, 902597187932414788ull}},
+ {{9467219074923930586ull, 9210806749366497195ull,
+ 11195812432768190856ull, 180519437586482957ull}},
+ {{487694076138309555ull, 18421613498732994391ull,
+ 3944880791826830096ull, 361038875172965915ull}},
+ {{975388152276619110ull, 18396482923756437166ull,
+ 7889761583653660193ull, 722077750345931830ull}},
+ {{14952472889422965115ull, 14747343028977018402ull,
+ 1577952316730732038ull, 144415550069186366ull}},
+ {{11458201705136378614ull, 11047941984244485189ull,
+ 3155904633461464077ull, 288831100138372732ull}},
+ {{4469659336563205612ull, 3649139894779418763ull,
+ 6311809266922928155ull, 577662200276745464ull}},
+ {{8939318673126411223ull, 7298279789558837526ull,
+ 12623618533845856310ull, 1155324400553490928ull}},
+ {{16545258993592923538ull, 12527702402137498474ull,
+ 13592770150994902231ull, 231064880110698185ull}},
+ {{14643773913476295459ull, 6608660730565445333ull,
+ 8738796228280252847ull, 462129760221396371ull}},
+ {{10840803753243039301ull, 13217321461130890667ull,
+ 17477592456560505694ull, 924259520442792742ull}},
+ {{13236207194874338830ull, 6332813106968088456ull,
+ 10874216120795921785ull, 184851904088558548ull}},
+ {{8025670316039126044ull, 12665626213936176913ull,
+ 3301688167882291954ull, 369703808177117097ull}},
+ {{16051340632078252088ull, 6884508354162802210ull,
+ 6603376335764583909ull, 739407616354234194ull}},
+ {{14278314570641381388ull, 12444948115058291411ull,
+ 16078070526120558074ull, 147881523270846838ull}},
+ {{10109885067573211159ull, 6443152156407031207ull,
+ 13709396978531564533ull, 295763046541693677ull}},
+ {{1773026061436870701ull, 12886304312814062415ull,
+ 8972049883353577450ull, 591526093083387355ull}},
+ {{3546052122873741401ull, 7325864551918573214ull,
+ 17944099766707154901ull, 1183052186166774710ull}},
+ {{709210424574748281ull, 5154521725125624966ull, 3588819953341430980ull,
+ 236610437233354942ull}},
+ {{1418420849149496561ull, 10309043450251249932ull,
+ 7177639906682861960ull, 473220874466709884ull}},
+ {{2836841698298993121ull, 2171342826792948248ull,
+ 14355279813365723921ull, 946441748933419768ull}},
+ {{7946065969143619271ull, 15191663824326230942ull,
+ 13939102406898875753ull, 189288349786683953ull}},
+ {{15892131938287238541ull, 11936583574942910268ull,
+ 9431460740088199891ull, 378576699573367907ull}},
+ {{13337519802864925466ull, 5426423076176268921ull,
+ 416177406466848167ull, 757153399146735815ull}},
+ {{13735550404798716063ull, 8463982244719074430ull, 83235481293369633ull,
+ 151430679829347163ull}},
+ {{9024356735887880510ull, 16927964489438148861ull,
+ 166470962586739266ull, 302861359658694326ull}},
+ {{18048713471775761019ull, 15409184905166746106ull,
+ 332941925173478533ull, 605722719317388652ull}},
+ {{17650682869841970422ull, 12371625736623940597ull,
+ 665883850346957067ull, 1211445438634777304ull}},
+ {{14598183018194125054ull, 6163673962066698442ull,
+ 14890572029037032706ull, 242289087726955460ull}},
+ {{10749621962678698492ull, 12327347924133396885ull,
+ 11334399984364513796ull, 484578175453910921ull}},
+ {{3052499851647845368ull, 6207951774557242155ull,
+ 4222055895019475977ull, 969156350907821843ull}},
+ {{610499970329569074ull, 1241590354911448431ull,
+ 11912457623229626165ull, 193831270181564368ull}},
+ {{1220999940659138148ull, 2483180709822896862ull,
+ 5378171172749700714ull, 387662540363128737ull}},
+ {{2441999881318276295ull, 4966361419645793724ull,
+ 10756342345499401428ull, 775325080726257474ull}},
+ {{4177748791005565583ull, 8371969913412979391ull,
+ 16908663728067521578ull, 155065016145251494ull}},
+ {{8355497582011131165ull, 16743939826825958782ull,
+ 15370583382425491540ull, 310130032290502989ull}},
+ {{16710995164022262329ull, 15041135579942365948ull,
+ 12294422691141431465ull, 620260064581005979ull}},
+ {{14975246254334973041ull, 11635527086175180281ull,
+ 6142101308573311315ull, 1240520129162011959ull}},
+ {{2995049250866994609ull, 17084500676202677349ull,
+ 15985815520682303555ull, 248104025832402391ull}},
+ {{5990098501733989217ull, 15722257278695803082ull,
+ 13524886967655055495ull, 496208051664804783ull}},
+ {{11980197003467978433ull, 12997770483682054548ull,
+ 8603029861600559375ull, 992416103329609567ull}},
+ {{2396039400693595687ull, 9978251726220231556ull,
+ 9099303601803932521ull, 198483220665921913ull}},
+ {{4792078801387191373ull, 1509759378730911496ull,
+ 18198607203607865043ull, 396966441331843826ull}},
+ {{9584157602774382746ull, 3019518757461822992ull,
+ 17950470333506178470ull, 793932882663687653ull}},
+ {{1916831520554876550ull, 11671950195718095568ull,
+ 14658140510926966663ull, 158786576532737530ull}},
+ {{3833663041109753099ull, 4897156317726639520ull,
+ 10869536948144381711ull, 317573153065475061ull}},
+ {{7667326082219506197ull, 9794312635453279040ull,
+ 3292329822579211806ull, 635146306130950123ull}},
+ {{15334652164439012394ull, 1141881197197006464ull,
+ 6584659645158423613ull, 1270292612261900246ull}},
+ {{14134976877113533449ull, 14985771498407042585ull,
+ 5006280743773595045ull, 254058522452380049ull}},
+ {{9823209680517515281ull, 11524798923104533555ull,
+ 10012561487547190091ull, 508117044904760098ull}},
+ {{1199675287325478946ull, 4602853772499515495ull,
+ 1578378901384828567ull, 1016234089809520197ull}},
+ {{14997330316432737082ull, 15677966013467544391ull,
+ 7694373409760786359ull, 203246817961904039ull}},
+ {{11547916559155922548ull, 12909187953225537167ull,
+ 15388746819521572719ull, 406493635923808078ull}},
+ {{4649089044602293480ull, 7371631832741522719ull,
+ 12330749565333593823ull, 812987271847616157ull}},
+ {{15687213067888099989ull, 1474326366548304543ull,
+ 9844847542550539411ull, 162597454369523231ull}},
+ {{12927682062066648362ull, 2948652733096609087ull,
+ 1242951011391527206ull, 325194908739046463ull}},
+ {{7408620050423745107ull, 5897305466193218175ull,
+ 2485902022783054412ull, 650389817478092926ull}},
+ {{12549770454310479991ull, 12247507537464374604ull,
+ 4186529219298521205ull, 130077963495618585ull}},
+ {{6652796834911408366ull, 6048271001219197593ull,
+ 8373058438597042411ull, 260155926991237170ull}},
+ {{13305593669822816732ull, 12096542002438395186ull,
+ 16746116877194084822ull, 520311853982474340ull}},
+ {{8164443265936081848ull, 5746339931167238757ull,
+ 15045489680678618029ull, 1040623707964948681ull}},
+ {{9011586282671037016ull, 1149267986233447751ull,
+ 6698446750877633929ull, 208124741592989736ull}},
+ {{18023172565342074032ull, 2298535972466895502ull,
+ 13396893501755267858ull, 416249483185979472ull}},
+ {{17599601056974596448ull, 4597071944933791005ull,
+ 8347042929800984100ull, 832498966371958945ull}},
+ {{3519920211394919290ull, 919414388986758201ull, 1669408585960196820ull,
+ 166499793274391789ull}},
+ {{7039840422789838580ull, 1838828777973516402ull,
+ 3338817171920393640ull, 332999586548783578ull}},
+ {{14079680845579677159ull, 3677657555947032804ull,
+ 6677634343840787280ull, 665999173097567156ull}},
+ {{2815936169115935432ull, 4424880325931316884ull,
+ 5024875683510067779ull, 133199834619513431ull}},
+ {{5631872338231870864ull, 8849760651862633768ull,
+ 10049751367020135558ull, 266399669239026862ull}},
+ {{11263744676463741727ull, 17699521303725267536ull,
+ 1652758660330719500ull, 532799338478053725ull}},
+ {{4080745279217931837ull, 16952298533740983457ull,
+ 3305517320661439001ull, 1065598676956107450ull}},
+ {{11884195500069317337ull, 7079808521490107014ull,
+ 661103464132287800ull, 213119735391221490ull}},
+ {{5321646926429083058ull, 14159617042980214029ull,
+ 1322206928264575600ull, 426239470782442980ull}},
+ {{10643293852858166116ull, 9872490012250876442ull,
+ 2644413856529151201ull, 852478941564885960ull}},
+ {{13196705214797364193ull, 5663846817192085611ull,
+ 528882771305830240ull, 170495788312977192ull}},
+ {{7946666355885176770ull, 11327693634384171223ull,
+ 1057765542611660480ull, 340991576625954384ull}},
+ {{15893332711770353540ull, 4208643195058790830ull,
+ 2115531085223320961ull, 681983153251908768ull}},
+ {{17936061801321712001ull, 15599123897979399458ull,
+ 11491152661270395161ull, 136396630650381753ull}},
+ {{17425379528933872386ull, 12751503722249247301ull,
+ 4535561248831238707ull, 272793261300763507ull}},
+ {{16404014984158193155ull, 7056263370788942987ull,
+ 9071122497662477415ull, 545586522601527014ull}},
+ {{14361285894606834694ull, 14112526741577885975ull,
+ 18142244995324954830ull, 1091173045203054028ull}},
+ {{13940303623147097909ull, 13890551792541308164ull,
+ 14696495443290721935ull, 218234609040610805ull}},
+ {{9433863172584644201ull, 9334359511373064713ull,
+ 10946246812871892255ull, 436469218081221611ull}},
+ {{420982271459736785ull, 221974949036577811ull, 3445749552034232895ull,
+ 872938436162443223ull}},
+ {{14841591713259588650ull, 11112441434033046531ull,
+ 11757196354632577548ull, 174587687232488644ull}},
+ {{11236439352809625684ull, 3778138794356541447ull,
+ 5067648635555603481ull, 349175374464977289ull}},
+ {{4026134631909699752ull, 7556277588713082895ull,
+ 10135297271111206962ull, 698350748929954578ull}},
+ {{805226926381939951ull, 1511255517742616579ull,
+ 13095105898447972362ull, 139670149785990915ull}},
+ {{1610453852763879901ull, 3022511035485233158ull,
+ 7743467723186393108ull, 279340299571981831ull}},
+ {{3220907705527759801ull, 6045022070970466316ull,
+ 15486935446372786216ull, 558680599143963662ull}},
+ {{6441815411055519602ull, 12090044141940932632ull,
+ 12527126819036020816ull, 1117361198287927325ull}},
+ {{12356409526436834890ull, 6107357643130096849ull,
+ 2505425363807204163ull, 223472239657585465ull}},
+ {{6266074979164118164ull, 12214715286260193699ull,
+ 5010850727614408326ull, 446944479315170930ull}},
+ {{12532149958328236328ull, 5982686498810835782ull,
+ 10021701455228816653ull, 893888958630341860ull}},
+ {{2506429991665647266ull, 12264583743987898126ull,
+ 2004340291045763330ull, 178777791726068372ull}},
+ {{5012859983331294532ull, 6082423414266244636ull,
+ 4008680582091526661ull, 357555583452136744ull}},
+ {{10025719966662589063ull, 12164846828532489272ull,
+ 8017361164183053322ull, 715111166904273488ull}},
+ {{9383841622816338459ull, 2432969365706497854ull,
+ 12671518677062341634ull, 143022233380854697ull}},
+ {{320939171923125302ull, 4865938731412995709ull, 6896293280415131652ull,
+ 286044466761709395ull}},
+ {{641878343846250604ull, 9731877462825991418ull,
+ 13792586560830263304ull, 572088933523418790ull}},
+ {{1283756687692501207ull, 1017010851942431220ull,
+ 9138429047950974993ull, 1144177867046837581ull}},
+ {{15014146596506141535ull, 14960797429356127536ull,
+ 5517034624332105321ull, 228835573409367516ull}},
+ {{11581549119302731453ull, 11474850785002703457ull,
+ 11034069248664210643ull, 457671146818735032ull}},
+ {{4716354164895911289ull, 4502957496295855299ull,
+ 3621394423618869671ull, 915342293637470065ull}},
+ {{943270832979182258ull, 4589940314001081383ull, 724278884723773934ull,
+ 183068458727494013ull}},
+ {{1886541665958364516ull, 9179880628002162766ull,
+ 1448557769447547868ull, 366136917454988026ull}},
+ {{3773083331916729031ull, 18359761256004325532ull,
+ 2897115538895095736ull, 732273834909976052ull}},
+ {{754616666383345807ull, 14739998695426596076ull,
+ 7958120737262839793ull, 146454766981995210ull}},
+ {{1509233332766691613ull, 11033253317143640536ull,
+ 15916241474525679587ull, 292909533963990420ull}},
+ {{3018466665533383225ull, 3619762560577729456ull,
+ 13385738875341807559ull, 585819067927980841ull}},
+ {{6036933331066766450ull, 7239525121155458912ull,
+ 8324733676974063502ull, 1171638135855961683ull}},
+ {{8586084295697173937ull, 1447905024231091782ull,
+ 12732993179620543670ull, 234327627171192336ull}},
+ {{17172168591394347873ull, 2895810048462183564ull,
+ 7019242285531535724ull, 468655254342384673ull}},
+ {{15897593109079144130ull, 5791620096924367129ull,
+ 14038484571063071448ull, 937310508684769346ull}},
+ {{14247565066041559796ull, 15915719278352514718ull,
+ 6497045728954524612ull, 187462101736953869ull}},
+ {{10048386058373567975ull, 13384694482995477821ull,
+ 12994091457909049225ull, 374924203473907738ull}},
+ {{1650028043037584334ull, 8322644892281404027ull,
+ 7541438842108546835ull, 749848406947815477ull}},
+ {{15087400867575158160ull, 9043226607940101451ull,
+ 8886985397905530013ull, 149969681389563095ull}},
+ {{11728057661440764704ull, 18086453215880202903ull,
+ 17773970795811060026ull, 299939362779126190ull}},
+ {{5009371249171977791ull, 17726162358050854191ull,
+ 17101197517912568437ull, 599878725558252381ull}},
+ {{10018742498343955581ull, 17005580642392156766ull,
+ 15755650962115585259ull, 1199757451116504763ull}},
+ {{13071794943894522086ull, 10779813757962251999ull,
+ 14219176636648848021ull, 239951490223300952ull}},
+ {{7696845814079492556ull, 3112883442214952383ull,
+ 9991609199588144427ull, 479902980446601905ull}},
+ {{15393691628158985111ull, 6225766884429904766ull,
+ 1536474325466737238ull, 959805960893203811ull}},
+ {{3078738325631797023ull, 16002548635853622246ull,
+ 3996643679835257770ull, 191961192178640762ull}},
+ {{6157476651263594045ull, 13558353197997692876ull,
+ 7993287359670515541ull, 383922384357281524ull}},
+ {{12314953302527188089ull, 8669962322285834136ull,
+ 15986574719341031083ull, 767844768714563048ull}},
+ {{9841688289989258265ull, 5423341279199077150ull,
+ 14265361388093937186ull, 153568953742912609ull}},
+ {{1236632506268964913ull, 10846682558398154301ull,
+ 10083978702478322756ull, 307137907485825219ull}},
+ {{2473265012537929825ull, 3246621043086756986ull,
+ 1721213331247093897ull, 614275814971650439ull}},
+ {{4946530025075859649ull, 6493242086173513972ull,
+ 3442426662494187794ull, 1228551629943300878ull}},
+ {{15746701263982813223ull, 8677346046718523440ull,
+ 11756531776724568528ull, 245710325988660175ull}},
+ {{13046658454256074830ull, 17354692093437046881ull,
+ 5066319479739585440ull, 491420651977320351ull}},
+ {{7646572834802598043ull, 16262640113164542147ull,
+ 10132638959479170881ull, 982841303954640702ull}},
+ {{1529314566960519609ull, 14320574466858639399ull,
+ 9405225421379654822ull, 196568260790928140ull}},
+ {{3058629133921039217ull, 10194404860007727182ull,
+ 363706769049758029ull, 393136521581856281ull}},
+ {{6117258267842078434ull, 1942065646305902748ull, 727413538099516059ull,
+ 786273043163712562ull}},
+ {{15980846912536056980ull, 4077761944003090872ull,
+ 7524180337103723858ull, 157254608632742512ull}},
+ {{13514949751362562344ull, 8155523888006181745ull,
+ 15048360674207447716ull, 314509217265485024ull}},
+ {{8583155429015573071ull, 16311047776012363491ull,
+ 11649977274705343816ull, 629018434530970049ull}},
+ {{17166310858031146141ull, 14175351478315175366ull,
+ 4853210475701136017ull, 1258036869061940099ull}},
+ {{10811959801090049875ull, 6524419110404945396ull,
+ 15728037354107868496ull, 251607373812388019ull}},
+ {{3177175528470548134ull, 13048838220809890793ull,
+ 13009330634506185376ull, 503214747624776039ull}},
+ {{6354351056941096267ull, 7650932367910229970ull,
+ 7571917195302819137ull, 1006429495249552079ull}},
+ {{4960219026130129577ull, 5219535288323956317ull,
+ 16271778698028205120ull, 201285899049910415ull}},
+ {{9920438052260259153ull, 10439070576647912634ull,
+ 14096813322346858624ull, 402571798099820831ull}},
+ {{1394132030810966690ull, 2431397079586273653ull,
+ 9746882570984165633ull, 805143596199641663ull}},
+ {{15036221665129834631ull, 4175628230659165053ull,
+ 13017422958422564096ull, 161028719239928332ull}},
+ {{11625699256550117646ull, 8351256461318330107ull,
+ 7588101843135576576ull, 322057438479856665ull}},
+ {{4804654439390683675ull, 16702512922636660215ull,
+ 15176203686271153152ull, 644114876959713330ull}},
+ {{8339628517361957382ull, 10719200214011152689ull,
+ 3035240737254230630ull, 128822975391942666ull}},
+ {{16679257034723914763ull, 2991656354312753762ull,
+ 6070481474508461261ull, 257645950783885332ull}},
+ {{14911769995738277910ull, 5983312708625507525ull,
+ 12140962949016922522ull, 515291901567770664ull}},
+ {{11376795917767004204ull, 11966625417251015051ull,
+ 5835181824324293428ull, 1030583803135541329ull}},
+ {{13343405627779131811ull, 9772022712934023656ull,
+ 15924431623832499978ull, 206116760627108265ull}},
+ {{8240067181848712005ull, 1097301352158495697ull,
+ 13402119173955448341ull, 412233521254216531ull}},
+ {{16480134363697424009ull, 2194602704316991394ull,
+ 8357494274201345066ull, 824467042508433063ull}},
+ {{14364073316965215772ull, 15196315799831039571ull,
+ 12739545299065999982ull, 164893408501686612ull}},
+ {{10281402560220879927ull, 11945887525952527527ull,
+ 7032346524422448349ull, 329786817003373225ull}},
+ {{2116061046732208238ull, 5445030978195503439ull,
+ 14064693048844896699ull, 659573634006746450ull}},
+ {{11491258653572172618ull, 15846401454606741980ull,
+ 2812938609768979339ull, 131914726801349290ull}},
+ {{4535773233434793619ull, 13246058835503932345ull,
+ 5625877219537958679ull, 263829453602698580ull}},
+ {{9071546466869587237ull, 8045373597298313074ull,
+ 11251754439075917359ull, 527658907205397160ull}},
+ {{18143092933739174473ull, 16090747194596626148ull,
+ 4056764804442283102ull, 1055317814410794321ull}},
+ {{7317967401489745218ull, 14286195883145056199ull,
+ 4500701775630366943ull, 211063562882158864ull}},
+ {{14635934802979490436ull, 10125647692580560782ull,
+ 9001403551260733887ull, 422127125764317728ull}},
+ {{10825125532249429255ull, 1804551311451569949ull,
+ 18002807102521467775ull, 844254251528635456ull}},
+ {{2165025106449885851ull, 4050259077032224313ull,
+ 7289910235246203878ull, 168850850305727091ull}},
+ {{4330050212899771702ull, 8100518154064448626ull,
+ 14579820470492407756ull, 337701700611454182ull}},
+ {{8660100425799543404ull, 16201036308128897252ull,
+ 10712896867275263896ull, 675403401222908365ull}},
+ {{12800066529385639651ull, 6929556076367689773ull,
+ 2142579373455052779ull, 135080680244581673ull}},
+ {{7153388985061727685ull, 13859112152735379547ull,
+ 4285158746910105558ull, 270161360489163346ull}},
+ {{14306777970123455370ull, 9271480231761207478ull,
+ 8570317493820211117ull, 540322720978326692ull}},
+ {{10166811866537359124ull, 96216389812863341ull,
+ 17140634987640422235ull, 1080645441956653384ull}},
+ {{2033362373307471825ull, 14776638536930213961ull,
+ 18185522256495725739ull, 216129088391330676ull}},
+ {{4066724746614943650ull, 11106533000150876306ull,
+ 17924300439281899863ull, 432258176782661353ull}},
+ {{8133449493229887299ull, 3766321926592200996ull,
+ 17401856804854248111ull, 864516353565322707ull}},
+ {{16384085157613618753ull, 11821310829544171168ull,
+ 10859068990454670268ull, 172903270713064541ull}},
+ {{14321426241517685890ull, 5195877585378790721ull,
+ 3271393907199788921ull, 345806541426129083ull}},
+ {{10196108409325820163ull, 10391755170757581443ull,
+ 6542787814399577842ull, 691613082852258166ull}},
+ {{5728570496607074356ull, 13146397478377247258ull,
+ 4997906377621825891ull, 138322616570451633ull}},
+ {{11457140993214148712ull, 7846050883044942900ull,
+ 9995812755243651783ull, 276645233140903266ull}},
+ {{4467537912718745807ull, 15692101766089885801ull,
+ 1544881436777751950ull, 553290466281806533ull}},
+ {{8935075825437491613ull, 12937459458470219986ull,
+ 3089762873555503901ull, 1106580932563613066ull}},
+ {{12855061609313229293ull, 9966189521177864643ull,
+ 4307301389453011103ull, 221316186512722613ull}},
+ {{7263379144916906969ull, 1485634968646177671ull,
+ 8614602778906022207ull, 442632373025445226ull}},
+ {{14526758289833813937ull, 2971269937292355342ull,
+ 17229205557812044414ull, 885264746050890452ull}},
+ {{13973398102192493757ull, 4283602802200381391ull,
+ 10824538741046229529ull, 177052949210178090ull}},
+ {{9500052130675435898ull, 8567205604400762783ull,
+ 3202333408382907442ull, 354105898420356181ull}},
+ {{553360187641320180ull, 17134411208801525567ull,
+ 6404666816765814884ull, 708211796840712362ull}},
+ {{11178718481753995006ull, 7116231056502215436ull,
+ 8659630992836983623ull, 141642359368142472ull}},
+ {{3910692889798438396ull, 14232462113004430873ull,
+ 17319261985673967246ull, 283284718736284944ull}},
+ {{7821385779596876791ull, 10018180152299310130ull,
+ 16191779897638382877ull, 566569437472569889ull}},
+ {{15642771559193753581ull, 1589616230889068644ull,
+ 13936815721567214139ull, 1133138874945139779ull}},
+ {{10507251941322571363ull, 11385969690403544698ull,
+ 17544758403281084120ull, 226627774989027955ull}},
+ {{2567759808935591109ull, 4325195307097537781ull,
+ 16642772732852616625ull, 453255549978055911ull}},
+ {{5135519617871182218ull, 8650390614195075562ull,
+ 14838801391995681634ull, 906511099956111823ull}},
+ {{15784499182541877737ull, 9108775752322835758ull,
+ 14035806722624867296ull, 181302219991222364ull}},
+ {{13122254291374203857ull, 18217551504645671517ull,
+ 9624869371540182976ull, 362604439982444729ull}},
+ {{7797764509038856098ull, 17988358935581791419ull,
+ 802994669370814337ull, 725208879964889459ull}},
+ {{1559552901807771220ull, 7287020601858268607ull,
+ 14917994192841804160ull, 145041775992977891ull}},
+ {{3119105803615542440ull, 14574041203716537214ull,
+ 11389244311974056704ull, 290083551985955783ull}},
+ {{6238211607231084879ull, 10701338333723522812ull,
+ 4331744550238561793ull, 580167103971911567ull}},
+ {{12476423214462169757ull, 2955932593737494008ull,
+ 8663489100477123587ull, 1160334207943823134ull}},
+ {{17252679901860075245ull, 4280535333489409124ull,
+ 16490093079063066010ull, 232066841588764626ull}},
+ {{16058615730010598873ull, 8561070666978818249ull,
+ 14533442084416580404ull, 464133683177529253ull}},
+ {{13670487386311646129ull, 17122141333957636499ull,
+ 10620140095123609192ull, 928267366355058507ull}},
+ {{13802143921488060196ull, 18181823525759168592ull,
+ 9502725648508542484ull, 185653473271011701ull}},
+ {{9157543769266568775ull, 17916902977808785569ull,
+ 558707223307533353ull, 371306946542023403ull}},
+ {{18315087538533137549ull, 17387061881908019522ull,
+ 1117414446615066707ull, 742613893084046806ull}},
+ {{3663017507706627510ull, 14545458820607334874ull,
+ 3912831704064923664ull, 148522778616809361ull}},
+ {{7326035015413255020ull, 10644173567505118132ull,
+ 7825663408129847329ull, 297045557233618722ull}},
+ {{14652070030826510040ull, 2841603061300684648ull,
+ 15651326816259694659ull, 594091114467237444ull}},
+ {{10857395987943468463ull, 5683206122601369297ull,
+ 12855909558809837702ull, 1188182228934474889ull}},
+ {{13239525641814424663ull, 4825990039262184182ull,
+ 17328577170729608833ull, 237636445786894977ull}},
+ {{8032307209919297709ull, 9651980078524368365ull,
+ 16210410267749666050ull, 475272891573789955ull}},
+ {{16064614419838595417ull, 857216083339185114ull,
+ 13974076461789780485ull, 950545783147579911ull}},
+ {{3212922883967719084ull, 3860792031409747346ull,
+ 6484164107099866420ull, 190109156629515982ull}},
+ {{6425845767935438167ull, 7721584062819494692ull,
+ 12968328214199732840ull, 380218313259031964ull}},
+ {{12851691535870876333ull, 15443168125638989384ull,
+ 7489912354689914064ull, 760436626518063929ull}},
+ {{9949035936657995913ull, 14156680069353528846ull,
+ 16255377729905624105ull, 152087325303612785ull}},
+ {{1451327799606440210ull, 9866616064997506077ull,
+ 14064011386101696595ull, 304174650607225571ull}},
+ {{2902655599212880420ull, 1286488056285460538ull,
+ 9681278698493841575ull, 608349301214451143ull}},
+ {{5805311198425760840ull, 2572976112570921076ull, 915813323278131534ull,
+ 1216698602428902287ull}},
+ {{8539759869168972815ull, 4203944037256094538ull,
+ 7561860294139446953ull, 243339720485780457ull}},
+ {{17079519738337945629ull, 8407888074512189076ull,
+ 15123720588278893906ull, 486679440971560914ull}},
+ {{15712295402966339642ull, 16815776149024378153ull,
+ 11800697102848236196ull, 973358881943121829ull}},
+ {{14210505524818998898ull, 3363155229804875630ull,
+ 17117534679537288532ull, 194671776388624365ull}},
+ {{9974266975928446180ull, 6726310459609751261ull,
+ 15788325285365025448ull, 389343552777248731ull}},
+ {{1501789878147340744ull, 13452620919219502523ull,
+ 13129906497020499280ull, 778687105554497463ull}},
+ {{3989706790371378472ull, 13758570628069631474ull,
+ 13694027743629830825ull, 155737421110899492ull}},
+ {{7979413580742756944ull, 9070397182429711332ull,
+ 8941311413550110035ull, 311474842221798985ull}},
+ {{15958827161485513888ull, 18140794364859422664ull,
+ 17882622827100220070ull, 622949684443597970ull}},
+ {{13470910249261476160ull, 17834844656009293713ull,
+ 17318501580490888525ull, 1245899368887195941ull}},
+ {{17451577308819936525ull, 7256317745943769065ull,
+ 7153049130840088028ull, 249179873777439188ull}},
+ {{16456410543930321434ull, 14512635491887538131ull,
+ 14306098261680176056ull, 498359747554878376ull}},
+ {{14466077014151091251ull, 10578526910065524647ull,
+ 10165452449650800497ull, 996719495109756753ull}},
+ {{10271913032314038897ull, 2115705382013104929ull,
+ 13101136934155891069ull, 199343899021951350ull}},
+ {{2097081990918526178ull, 4231410764026209859ull,
+ 7755529794602230522ull, 398687798043902701ull}},
+ {{4194163981837052355ull, 8462821528052419718ull,
+ 15511059589204461044ull, 797375596087805402ull}},
+ {{15596228055335051764ull, 5381913120352394266ull,
+ 10480909547324712855ull, 159475119217561080ull}},
+ {{12745712036960551912ull, 10763826240704788533ull,
+ 2515075020939874094ull, 318950238435122161ull}},
+ {{7044680000211552207ull, 3080908407700025451ull,
+ 5030150041879748189ull, 637900476870244322ull}},
+ {{14089360000423104413ull, 6161816815400050902ull,
+ 10060300083759496378ull, 1275800953740488644ull}},
+ {{17575267259052262176ull, 8611060992563830826ull,
+ 16769455275719540568ull, 255160190748097728ull}},
+ {{16703790444394972735ull, 17222121985127661653ull,
+ 15092166477729529520ull, 510320381496195457ull}},
+ {{14960836815080393854ull, 15997499896545771691ull,
+ 11737588881749507425ull, 1020640762992390915ull}},
+ {{6681516177757989094ull, 3199499979309154338ull,
+ 2347517776349901485ull, 204128152598478183ull}},
+ {{13363032355515978188ull, 6398999958618308676ull,
+ 4695035552699802970ull, 408256305196956366ull}},
+ {{8279320637322404760ull, 12797999917236617353ull,
+ 9390071105399605940ull, 816512610393912732ull}},
+ {{1655864127464480952ull, 9938297612931144117ull,
+ 9256711850563741834ull, 163302522078782546ull}},
+ {{3311728254928961904ull, 1429851152152736618ull, 66679627417932053ull,
+ 326605044157565093ull}},
+ {{6623456509857923808ull, 2859702304305473236ull, 133359254835864106ull,
+ 653210088315130186ull}},
+ {{12392737746197315732ull, 7950638090344915293ull,
+ 3716020665709083144ull, 130642017663026037ull}},
+ {{6338731418685079847ull, 15901276180689830587ull,
+ 7432041331418166288ull, 261284035326052074ull}},
+ {{12677462837370159693ull, 13355808287670109558ull,
+ 14864082662836332577ull, 522568070652104148ull}},
+ {{6908181601030767770ull, 8264872501630667501ull,
+ 11281421251963113539ull, 1045136141304208297ull}},
+ {{8760333949689974201ull, 5342323315068043823ull,
+ 9634981879876443354ull, 209027228260841659ull}},
+ {{17520667899379948401ull, 10684646630136087646ull,
+ 823219686043335092ull, 418054456521683319ull}},
+ {{16594591725050345185ull, 2922549186562623677ull,
+ 1646439372086670185ull, 836108913043366638ull}},
+ {{3318918345010069037ull, 11652556281538255705ull,
+ 11397334318643065006ull, 167221782608673327ull}},
+ {{6637836690020138074ull, 4858368489366959794ull,
+ 4347924563576578397ull, 334443565217346655ull}},
+ {{13275673380040276148ull, 9716736978733919588ull,
+ 8695849127153156794ull, 668887130434693310ull}},
+ {{10033832305491875876ull, 16700742654714425210ull,
+ 1739169825430631358ull, 133777426086938662ull}},
+ {{1620920537274200136ull, 14954741235719298805ull,
+ 3478339650861262717ull, 267554852173877324ull}},
+ {{3241841074548400272ull, 11462738397729045994ull,
+ 6956679301722525435ull, 535109704347754648ull}},
+ {{6483682149096800544ull, 4478732721748540372ull,
+ 13913358603445050871ull, 1070219408695509296ull}},
+ {{16054131688787001402ull, 8274444173833528720ull,
+ 6472020535430920497ull, 214043881739101859ull}},
+ {{13661519303864451188ull, 16548888347667057441ull,
+ 12944041070861840994ull, 428087763478203718ull}},
+ {{8876294534019350759ull, 14651032621624563267ull,
+ 7441338068014130373ull, 856175526956407437ull}},
+ {{9153956536287690799ull, 2930206524324912653ull,
+ 8866965243086646721ull, 171235105391281487ull}},
+ {{18307913072575381597ull, 5860413048649825306ull,
+ 17733930486173293442ull, 342470210782562974ull}},
+ {{18169082071441211577ull, 11720826097299650613ull,
+ 17021116898637035268ull, 684940421565125949ull}},
+ {{3633816414288242316ull, 9722862848943750769ull,
+ 18161618638695048346ull, 136988084313025189ull}},
+ {{7267632828576484631ull, 998981624177949922ull,
+ 17876493203680545077ull, 273976168626050379ull}},
+ {{14535265657152969262ull, 1997963248355899844ull,
+ 17306242333651538538ull, 547952337252100759ull}},
+ {{10623787240596386907ull, 3995926496711799689ull,
+ 16165740593593525460ull, 1095904674504201519ull}},
+ {{13192803892345008351ull, 15556580558310001230ull,
+ 17990543377686346384ull, 219180934900840303ull}},
+ {{7938863710980465086ull, 12666417042910450845ull,
+ 17534342681663141153ull, 438361869801680607ull}},
+ {{15877727421960930172ull, 6886090012111350074ull,
+ 16621941289616730691ull, 876723739603361215ull}},
+ {{3175545484392186035ull, 5066566817164180338ull,
+ 3324388257923346138ull, 175344747920672243ull}},
+ {{6351090968784372069ull, 10133133634328360676ull,
+ 6648776515846692276ull, 350689495841344486ull}},
+ {{12702181937568744137ull, 1819523194947169736ull,
+ 13297553031693384553ull, 701378991682688972ull}},
+ {{6229785202255659151ull, 363904638989433947ull,
+ 10038208235822497557ull, 140275798336537794ull}},
+ {{12459570404511318302ull, 727809277978867894ull,
+ 1629672397935443498ull, 280551596673075589ull}},
+ {{6472396735313084987ull, 1455618555957735789ull,
+ 3259344795870886996ull, 561103193346151178ull}},
+ {{12944793470626169973ull, 2911237111915471578ull,
+ 6518689591741773992ull, 1122206386692302356ull}},
+ {{6278307508867144318ull, 11650293866608825285ull,
+ 4993086733090265121ull, 224441277338460471ull}},
+ {{12556615017734288636ull, 4853843659508098954ull,
+ 9986173466180530243ull, 448882554676920942ull}},
+ {{6666485961759025656ull, 9707687319016197909ull,
+ 1525602858651508870ull, 897765109353841885ull}},
+ {{16090692451319446424ull, 1941537463803239581ull,
+ 305120571730301774ull, 179553021870768377ull}},
+ {{13734640828929341232ull, 3883074927606479163ull,
+ 610241143460603548ull, 359106043741536754ull}},
+ {{9022537584149130848ull, 7766149855212958327ull,
+ 1220482286921207096ull, 718212087483073508ull}},
+ {{5493856331571736493ull, 16310625230010232958ull,
+ 11312142901609972388ull, 143642417496614701ull}},
+ {{10987712663143472986ull, 14174506386310914300ull,
+ 4177541729510393161ull, 287284834993229403ull}},
+ {{3528681252577394355ull, 9902268698912276985ull,
+ 8355083459020786323ull, 574569669986458806ull}},
+ {{7057362505154788710ull, 1357793324115002354ull,
+ 16710166918041572647ull, 1149139339972917612ull}},
+ {{12479518945256688712ull, 15028953923790641763ull,
+ 10720731013092135175ull, 229827867994583522ull}},
+ {{6512293816803825807ull, 11611163773871731911ull,
+ 2994717952474718735ull, 459655735989167045ull}},
+ {{13024587633607651614ull, 4775583474033912206ull,
+ 5989435904949437471ull, 919311471978334090ull}},
+ {{9983615156205350970ull, 4644465509548692764ull,
+ 1197887180989887494ull, 183862294395666818ull}},
+ {{1520486238701150323ull, 9288931019097385529ull,
+ 2395774361979774988ull, 367724588791333636ull}},
+ {{3040972477402300645ull, 131117964485219442ull, 4791548723959549977ull,
+ 735449177582667272ull}},
+ {{4297543310222370453ull, 14783618851864685181ull,
+ 8337007374275730641ull, 147089835516533454ull}},
+ {{8595086620444740905ull, 11120493630019818746ull,
+ 16674014748551461283ull, 294179671033066908ull}},
+ {{17190173240889481809ull, 3794243186330085876ull,
+ 14901285423393370951ull, 588359342066133817ull}},
+ {{15933602408069412001ull, 7588486372660171753ull,
+ 11355826773077190286ull, 1176718684132267635ull}},
+ {{17944115740581523693ull, 5207046089273944673ull,
+ 2271165354615438057ull, 235343736826453527ull}},
+ {{17441487407453495770ull, 10414092178547889347ull,
+ 4542330709230876114ull, 470687473652907054ull}},
+ {{16436230741197439924ull, 2381440283386227079ull,
+ 9084661418461752229ull, 941374947305814108ull}},
+ {{6976594962981398308ull, 7854985686161066062ull,
+ 12884978727918081415ull, 188274989461162821ull}},
+ {{13953189925962796616ull, 15709971372322132124ull,
+ 7323213382126611214ull, 376549978922325643ull}},
+ {{9459635778216041616ull, 12973198670934712633ull,
+ 14646426764253222429ull, 753099957844651286ull}},
+ {{12959973599868939293ull, 2594639734186942526ull,
+ 6618634167592554809ull, 150619991568930257ull}},
+ {{7473203126028326970ull, 5189279468373885053ull,
+ 13237268335185109618ull, 301239983137860514ull}},
+ {{14946406252056653940ull, 10378558936747770106ull,
+ 8027792596660667620ull, 602479966275721029ull}},
+ {{11446068430403756263ull, 2310373799785988597ull,
+ 16055585193321335241ull, 1204959932551442058ull}},
+ {{5978562500822661576ull, 15219470018924839012ull,
+ 14279163482889998017ull, 240991986510288411ull}},
+ {{11957125001645323152ull, 11992195964140126408ull,
+ 10111582892070444419ull, 481983973020576823ull}},
+ {{5467505929581094687ull, 5537647854570701201ull,
+ 1776421710431337223ull, 963967946041153647ull}},
+ {{4782850000658129261ull, 1107529570914140240ull,
+ 7733981971570088091ull, 192793589208230729ull}},
+ {{9565700001316258522ull, 2215059141828280480ull,
+ 15467963943140176182ull, 385587178416461458ull}},
+ {{684655928922965427ull, 4430118283656560961ull,
+ 12489183812570800748ull, 771174356832922917ull}},
+ {{3826280000526503409ull, 886023656731312192ull, 9876534391997980796ull,
+ 154234871366584583ull}},
+ {{7652560001053006817ull, 1772047313462624384ull,
+ 1306324710286409976ull, 308469742733169167ull}},
+ {{15305120002106013634ull, 3544094626925248768ull,
+ 2612649420572819952ull, 616939485466338334ull}},
+ {{12163495930502475652ull, 7088189253850497537ull,
+ 5225298841145639904ull, 1233878970932676668ull}},
+ {{17190094445068136424ull, 8796335480253920153ull,
+ 12113106212454858950ull, 246775794186535333ull}},
+ {{15933444816426721231ull, 17592670960507840307ull,
+ 5779468351200166284ull, 493551588373070667ull}},
+ {{13420145559143890845ull, 16738597847306128999ull,
+ 11558936702400332569ull, 987103176746141334ull}},
+ {{10062726741312598816ull, 14415766013686956769ull,
+ 17069182599447707806ull, 197420635349228266ull}},
+ {{1678709408915646015ull, 10384787953664361923ull,
+ 15691621125185863997ull, 394841270698456533ull}},
+ {{3357418817831292030ull, 2322831833619172230ull,
+ 12936498176662176379ull, 789682541396913067ull}},
+ {{4360832578308168730ull, 4153915181465744769ull,
+ 9965997264816255922ull, 157936508279382613ull}},
+ {{8721665156616337459ull, 8307830362931489538ull,
+ 1485250455922960228ull, 315873016558765227ull}},
+ {{17443330313232674917ull, 16615660725862979076ull,
+ 2970500911845920456ull, 631746033117530454ull}},
+ {{16439916552755798217ull, 14784577378016406537ull,
+ 5941001823691840913ull, 1263492066235060908ull}},
+ {{14356029754776890613ull, 6646264290345191630ull,
+ 12256246808964099152ull, 252698413247012181ull}},
+ {{10265315435844229610ull, 13292528580690383261ull,
+ 6065749544218646688ull, 505396826494024363ull}},
+ {{2083886797978907604ull, 8138313087671214907ull,
+ 12131499088437293377ull, 1010793652988048726ull}},
+ {{416777359595781521ull, 12695709061759973951ull,
+ 6115648632429368998ull, 202158730597609745ull}},
+ {{833554719191563042ull, 6944674049810396286ull,
+ 12231297264858737997ull, 404317461195219490ull}},
+ {{1667109438383126083ull, 13889348099620792572ull,
+ 6015850456007924378ull, 808634922390438981ull}},
+ {{4022770702418535540ull, 17535264878891799807ull,
+ 4892518905943495198ull, 161726984478087796ull}},
+ {{8045541404837071080ull, 16623785684074047998ull,
+ 9785037811886990397ull, 323453968956175592ull}},
+ {{16091082809674142159ull, 14800827294438544380ull,
+ 1123331550064429179ull, 646907937912351185ull}},
+ {{17975611820902469725ull, 17717560717855350168ull,
+ 224666310012885835ull, 129381587582470237ull}},
+ {{17504479568095387834ull, 16988377362001148721ull,
+ 449332620025771671ull, 258763175164940474ull}},
+ {{16562215062481224051ull, 15530010650292745827ull,
+ 898665240051543343ull, 517526350329880948ull}},
+ {{14677686051252896485ull, 12613277226875940039ull,
+ 1797330480103086687ull, 1035052700659761896ull}},
+ {{10314234839734399944ull, 13590701889600918977ull,
+ 4048814910762527660ull, 207010540131952379ull}},
+ {{2181725605759248271ull, 8734659705492286339ull,
+ 8097629821525055321ull, 414021080263904758ull}},
+ {{4363451211518496542ull, 17469319410984572678ull,
+ 16195259643050110642ull, 828042160527809516ull}},
+ {{4562039057045609632ull, 14561910326422645505ull,
+ 6928400743351932451ull, 165608432105561903ull}},
+ {{9124078114091219263ull, 10677076579135739394ull,
+ 13856801486703864903ull, 331216864211123806ull}},
+ {{18248156228182438526ull, 2907409084561927172ull,
+ 9266858899698178191ull, 662433728422247613ull}},
+ {{7338980060378398029ull, 15338877075880026727ull,
+ 12921418224165366607ull, 132486745684449522ull}},
+ {{14677960120756796057ull, 12231010078050501838ull,
+ 7396092374621181599ull, 264973491368899045ull}},
+ {{10909176167804040498ull, 6015276082391452061ull,
+ 14792184749242363199ull, 529946982737798090ull}},
+ {{3371608261898529379ull, 12030552164782904123ull,
+ 11137625424775174782ull, 1059893965475596181ull}},
+ {{4363670467121616199ull, 13474156877182311794ull,
+ 5916873899696945279ull, 211978793095119236ull}},
+ {{8727340934243232398ull, 8501569680655071972ull,
+ 11833747799393890559ull, 423957586190238472ull}},
+ {{17454681868486464796ull, 17003139361310143944ull,
+ 5220751525078229502ull, 847915172380476945ull}},
+ {{7180285188439203283ull, 10779325501745849435ull,
+ 1044150305015645900ull, 169583034476095389ull}},
+ {{14360570376878406565ull, 3111906929782147254ull,
+ 2088300610031291801ull, 339166068952190778ull}},
+ {{10274396680047261514ull, 6223813859564294509ull,
+ 4176601220062583602ull, 678332137904381556ull}},
+ {{9433576965493272950ull, 12312809216138589871ull,
+ 4524669058754427043ull, 135666427580876311ull}},
+ {{420409857276994283ull, 6178874358567628127ull, 9049338117508854087ull,
+ 271332855161752622ull}},
+ {{840819714553988565ull, 12357748717135256254ull,
+ 18098676235017708174ull, 542665710323505244ull}},
+ {{1681639429107977129ull, 6268753360560960892ull,
+ 17750608396325864733ull, 1085331420647010489ull}},
+ {{15093723144789236719ull, 8632448301596012824ull,
+ 18307516938232814239ull, 217066284129402097ull}},
+ {{11740702215868921822ull, 17264896603192025649ull,
+ 18168289802756076862ull, 434132568258804195ull}},
+ {{5034660358028292027ull, 16083049132674499683ull,
+ 17889835531802602109ull, 868265136517608391ull}},
+ {{12074978515831389375ull, 3216609826534899936ull,
+ 7267315921102430745ull, 173653027303521678ull}},
+ {{5703212957953227134ull, 6433219653069799873ull,
+ 14534631842204861490ull, 347306054607043356ull}},
+ {{11406425915906454268ull, 12866439306139599746ull,
+ 10622519610700171364ull, 694612109214086713ull}},
+ {{13349331627407021824ull, 9951985490711740595ull,
+ 13192550366365765242ull, 138922421842817342ull}},
+ {{8251919181104492031ull, 1457226907713929575ull,
+ 7938356659021978869ull, 277844843685634685ull}},
+ {{16503838362208984061ull, 2914453815427859150ull,
+ 15876713318043957738ull, 555689687371269370ull}},
+ {{14560932650708416505ull, 5828907630855718301ull,
+ 13306682562378363860ull, 1111379374742538741ull}},
+ {{10290884159625503948ull, 4855130340913053983ull,
+ 6350685327217583095ull, 222275874948507748ull}},
+ {{2135024245541456279ull, 9710260681826107967ull,
+ 12701370654435166190ull, 444551749897015496ull}},
+ {{4270048491082912558ull, 973777289942664318ull, 6955997235160780765ull,
+ 889103499794030993ull}},
+ {{4543358512958492835ull, 11262801902214263833ull,
+ 12459245891257887122ull, 177820699958806198ull}},
+ {{9086717025916985670ull, 4078859730718976050ull,
+ 6471747708806222629ull, 355641399917612397ull}},
+ {{18173434051833971339ull, 8157719461437952100ull,
+ 12943495417612445258ull, 711282799835224794ull}},
+ {{11013384439850614915ull, 9010241521771411066ull,
+ 17346094342490130344ull, 142256559967044958ull}},
+ {{3580024805991678213ull, 18020483043542822133ull,
+ 16245444611270709072ull, 284513119934089917ull}},
+ {{7160049611983356425ull, 17594222013376092650ull,
+ 14044145148831866529ull, 569026239868179835ull}},
+ {{14320099223966712850ull, 16741699953042633684ull,
+ 9641546223954181443ull, 1138052479736359671ull}},
+ {{13932066289019073540ull, 18105735249576168029ull,
+ 5617658059532746611ull, 227610495947271934ull}},
+ {{9417388504328595463ull, 17764726425442784443ull,
+ 11235316119065493223ull, 455220991894543868ull}},
+ {{388032934947639310ull, 17082708777176017271ull,
+ 4023888164421434831ull, 910441983789087737ull}},
+ {{14835001845957169155ull, 14484588199660934423ull,
+ 8183475262368107612ull, 182088396757817547ull}},
+ {{11223259618204786694ull, 10522432325612317231ull,
+ 16366950524736215225ull, 364176793515635094ull}},
+ {{3999775162700021771ull, 2598120577515082847ull,
+ 14287156975762878835ull, 728353587031270189ull}},
+ {{4489303847281914678ull, 15277019374470657862ull,
+ 17614826654120217059ull, 145670717406254037ull}},
+ {{8978607694563829355ull, 12107294675231764108ull,
+ 16782909234530882503ull, 291341434812508075ull}},
+ {{17957215389127658710ull, 5767845276753976600ull,
+ 15119074395352213391ull, 582682869625016151ull}},
+ {{17467686704545765804ull, 11535690553507953201ull,
+ 11791404716994875166ull, 1165365739250032303ull}},
+ {{3493537340909153161ull, 17064533369669231933ull,
+ 13426327387624706002ull, 233073147850006460ull}},
+ {{6987074681818306322ull, 15682322665628912250ull,
+ 8405910701539860389ull, 466146295700012921ull}},
+ {{13974149363636612643ull, 12917901257548272884ull,
+ 16811821403079720779ull, 932292591400025842ull}},
+ {{2794829872727322529ull, 6272929066251564900ull,
+ 10741061910099764802ull, 186458518280005168ull}},
+ {{5589659745454645057ull, 12545858132503129800ull,
+ 3035379746489977988ull, 372917036560010337ull}},
+ {{11179319490909290114ull, 6644972191296707984ull,
+ 6070759492979955977ull, 745834073120020674ull}},
+ {{2235863898181858023ull, 5018343253001251920ull,
+ 15971547157563632488ull, 149166814624004134ull}},
+ {{4471727796363716046ull, 10036686506002503840ull,
+ 13496350241417713360ull, 298333629248008269ull}},
+ {{8943455592727432092ull, 1626628938295456064ull,
+ 8545956409125875105ull, 596667258496016539ull}},
+ {{17886911185454864183ull, 3253257876590912128ull,
+ 17091912818251750210ull, 1193334516992033078ull}},
+ {{7266731051832883160ull, 11718698019543913395ull,
+ 14486429007876081011ull, 238666903398406615ull}},
+ {{14533462103665766320ull, 4990651965378275174ull,
+ 10526113942042610407ull, 477333806796813231ull}},
+ {{10620180133621981023ull, 9981303930756550349ull,
+ 2605483810375669198ull, 954667613593626463ull}},
+ {{2124036026724396205ull, 5685609600893220393ull,
+ 11589143206300864809ull, 190933522718725292ull}},
+ {{4248072053448792410ull, 11371219201786440786ull,
+ 4731542338892178002ull, 381867045437450585ull}},
+ {{8496144106897584819ull, 4295694329863329956ull,
+ 9463084677784356005ull, 763734090874901170ull}},
+ {{5388577636121427287ull, 859138865972665991ull, 1892616935556871201ull,
+ 152746818174980234ull}},
+ {{10777155272242854574ull, 1718277731945331982ull,
+ 3785233871113742402ull, 305493636349960468ull}},
+ {{3107566470776157532ull, 3436555463890663965ull,
+ 7570467742227484804ull, 610987272699920936ull}},
+ {{6215132941552315063ull, 6873110927781327930ull,
+ 15140935484454969608ull, 1221974545399841872ull}},
+ {{1243026588310463013ull, 1374622185556265586ull,
+ 10406884726374814568ull, 244394909079968374ull}},
+ {{2486053176620926026ull, 2749244371112531172ull,
+ 2367025379040077520ull, 488789818159936749ull}},
+ {{4972106353241852051ull, 5498488742225062344ull,
+ 4734050758080155040ull, 977579636319873498ull}},
+ {{8373118900132191057ull, 12167744192670743438ull,
+ 12014856595841761977ull, 195515927263974699ull}},
+ {{16746237800264382113ull, 5888744311631935260ull,
+ 5582969117973972339ull, 391031854527949399ull}},
+ {{15045731526819212610ull, 11777488623263870521ull,
+ 11165938235947944678ull, 782063709055898798ull}},
+ {{10387843934847663169ull, 6044846539394684427ull,
+ 13301234091415319905ull, 156412741811179759ull}},
+ {{2328943795985774721ull, 12089693078789368855ull,
+ 8155724109121088194ull, 312825483622359519ull}},
+ {{4657887591971549442ull, 5732642083869186094ull,
+ 16311448218242176389ull, 625650967244719038ull}},
+ {{9315775183943098883ull, 11465284167738372188ull,
+ 14176152362774801162ull, 1251301934489438077ull}},
+ {{9241852666272440423ull, 17050452092515315730ull,
+ 10213928102038780878ull, 250260386897887615ull}},
+ {{36961258835329230ull, 15654160111321079845ull, 1981112130368010141ull,
+ 500520773795775231ull}},
+ {{73922517670658460ull, 12861576148932608074ull, 3962224260736020283ull,
+ 1001041547591550462ull}},
+ {{14772179762501772985ull, 2572315229786521614ull,
+ 8171142481631024703ull, 200208309518310092ull}},
+ {{11097615451293994354ull, 5144630459573043229ull,
+ 16342284963262049406ull, 400416619036620184ull}},
+ {{3748486828878437092ull, 10289260919146086459ull,
+ 14237825852814547196ull, 800833238073240369ull}},
+ {{15507092624743328712ull, 2057852183829217291ull,
+ 17604960429530550732ull, 160166647614648073ull}},
+ {{12567441175777105807ull, 4115704367658434583ull,
+ 16763176785351549848ull, 320333295229296147ull}},
+ {{6688138277844659997ull, 8231408735316869167ull,
+ 15079609496993548080ull, 640666590458592295ull}},
+ {{8716325285052752646ull, 1646281747063373833ull,
+ 3015921899398709616ull, 128133318091718459ull}},
+ {{17432650570105505292ull, 3292563494126747666ull,
+ 6031843798797419232ull, 256266636183436918ull}},
+ {{16418557066501458967ull, 6585126988253495333ull,
+ 12063687597594838464ull, 512533272366873836ull}},
+ {{14390370059293366317ull, 13170253976506990667ull,
+ 5680631121480125312ull, 1025066544733747673ull}},
+ {{10256771641342493910ull, 2634050795301398133ull,
+ 12204172668521756032ull, 205013308946749534ull}},
+ {{2066799208975436204ull, 5268101590602796267ull,
+ 5961601263333960448ull, 410026617893499069ull}},
+ {{4133598417950872408ull, 10536203181205592534ull,
+ 11923202526667920896ull, 820053235786998138ull}},
+ {{11894766127815905452ull, 16864635895208759799ull,
+ 13452686949559315148ull, 164010647157399627ull}},
+ {{5342788181922259287ull, 15282527716707967983ull,
+ 8458629825409078681ull, 328021294314799255ull}},
+ {{10685576363844518573ull, 12118311359706384350ull,
+ 16917259650818157363ull, 656042588629598510ull}},
+ {{13205161716994634685ull, 13491708716167007839ull,
+ 3383451930163631472ull, 131208517725919702ull}},
+ {{7963579360279717753ull, 8536673358624464063ull,
+ 6766903860327262945ull, 262417035451839404ull}},
+ {{15927158720559435505ull, 17073346717248928126ull,
+ 13533807720654525890ull, 524834070903678808ull}},
+ {{13407573367409319393ull, 15699949360788304637ull,
+ 8620871367599500165ull, 1049668141807357617ull}},
+ {{17438909932449505172ull, 10518687501641481573ull,
+ 9102871903003720679ull, 209933628361471523ull}},
+ {{16431075791189458727ull, 2590630929573411531ull,
+ 18205743806007441359ull, 419867256722943046ull}},
+ {{14415407508669365837ull, 5181261859146823063ull,
+ 17964743538305331102ull, 839734513445886093ull}},
+ {{13951127945959604137ull, 1036252371829364612ull,
+ 14660995151886797190ull, 167946902689177218ull}},
+ {{9455511818209656658ull, 2072504743658729225ull,
+ 10875246230064042764ull, 335893805378354437ull}},
+ {{464279562709761700ull, 4145009487317458451ull, 3303748386418533912ull,
+ 671787610756708875ull}},
+ {{11160902356767683310ull, 8207699526947312336ull,
+ 660749677283706782ull, 134357522151341775ull}},
+ {{3875060639825815004ull, 16415399053894624673ull,
+ 1321499354567413564ull, 268715044302683550ull}},
+ {{7750121279651630007ull, 14384054034079697730ull,
+ 2642998709134827129ull, 537430088605367100ull}},
+ {{15500242559303260013ull, 10321363994449843844ull,
+ 5285997418269654259ull, 1074860177210734200ull}},
+ {{14168094956086382973ull, 16821668057857610061ull,
+ 1057199483653930851ull, 214972035442146840ull}},
+ {{9889445838463214329ull, 15196592042005668507ull,
+ 2114398967307861703ull, 429944070884293680ull}},
+ {{1332147603216877041ull, 11946440010301785399ull,
+ 4228797934615723407ull, 859888141768587360ull}},
+ {{3955778335385285732ull, 9767985631544177726ull, 845759586923144681ull,
+ 171977628353717472ull}},
+ {{7911556670770571463ull, 1089227189378803836ull,
+ 1691519173846289363ull, 343955256707434944ull}},
+ {{15823113341541142926ull, 2178454378757607672ull,
+ 3383038347692578726ull, 687910513414869888ull}},
+ {{6853971483050138909ull, 15193086134719162827ull,
+ 11744654113764246714ull, 137582102682973977ull}},
+ {{13707942966100277817ull, 11939428195728774038ull,
+ 5042564153818941813ull, 275164205365947955ull}},
+ {{8969141858491004017ull, 5432112317747996461ull,
+ 10085128307637883627ull, 550328410731895910ull}},
+ {{17938283716982008034ull, 10864224635495992922ull,
+ 1723512541566215638ull, 1100656821463791821ull}},
+ {{7277005558138311930ull, 16930240186066839877ull,
+ 4034051323055153450ull, 220131364292758364ull}},
+ {{14554011116276623860ull, 15413736298424128138ull,
+ 8068102646110306901ull, 440262728585516728ull}},
+ {{10661278158843696104ull, 12380728523138704661ull,
+ 16136205292220613803ull, 880525457171033456ull}},
+ {{2132255631768739221ull, 17233540963595382225ull,
+ 6916589873186033083ull, 176105091434206691ull}},
+ {{4264511263537478442ull, 16020337853481212834ull,
+ 13833179746372066167ull, 352210182868413382ull}},
+ {{8529022527074956884ull, 13593931633252874052ull,
+ 9219615419034580719ull, 704420365736826765ull}},
+ {{5395153320156901700ull, 17476181585618216103ull,
+ 1843923083806916143ull, 140884073147365353ull}},
+ {{10790306640313803400ull, 16505619097526880590ull,
+ 3687846167613832287ull, 281768146294730706ull}},
+ {{3133869206918055184ull, 14564494121344209565ull,
+ 7375692335227664575ull, 563536292589461412ull}},
+ {{6267738413836110367ull, 10682244168978867514ull,
+ 14751384670455329151ull, 1127072585178922824ull}},
+ {{16010942941734863367ull, 2136448833795773502ull,
+ 17707672193058707123ull, 225414517035784564ull}},
+ {{13575141809760175117ull, 4272897667591547005ull,
+ 16968600312407862630ull, 450829034071569129ull}},
+ {{8703539545810798617ull, 8545795335183094011ull,
+ 15490456551106173644ull, 901658068143138259ull}},
+ {{16498103168129801017ull, 12777205511262349771ull,
+ 17855486569188876021ull, 180331613628627651ull}},
+ {{14549462262550050417ull, 7107666948815147927ull,
+ 17264229064668200427ull, 360663227257255303ull}},
+ {{10652180451390549217ull, 14215333897630295855ull,
+ 16081714055626849238ull, 721326454514510607ull}},
+ {{2130436090278109844ull, 2843066779526059171ull,
+ 10595040440609190494ull, 144265290902902121ull}},
+ {{4260872180556219687ull, 5686133559052118342ull,
+ 2743336807508829372ull, 288530581805804243ull}},
+ {{8521744361112439374ull, 11372267118104236684ull,
+ 5486673615017658744ull, 577061163611608486ull}},
+ {{17043488722224878747ull, 4297790162498921752ull,
+ 10973347230035317489ull, 1154122327223216972ull}},
+ {{14476744188670706719ull, 4548906847241694673ull,
+ 9573367075490884144ull, 230824465444643394ull}},
+ {{10506744303631861822ull, 9097813694483389347ull,
+ 699990077272216672ull, 461648930889286789ull}},
+ {{2566744533554172028ull, 18195627388966778695ull,
+ 1399980154544433344ull, 923297861778573578ull}},
+ {{7892046536194655052ull, 11017823107277176385ull,
+ 11348042475134617638ull, 184659572355714715ull}},
+ {{15784093072389310104ull, 3588902140844801154ull,
+ 4249340876559683661ull, 369319144711429431ull}},
+ {{13121442071069068592ull, 7177804281689602309ull,
+ 8498681753119367322ull, 738638289422858862ull}},
+ {{13692334858439544688ull, 16192956115305561754ull,
+ 9078433980107694110ull, 147727657884571772ull}},
+ {{8937925643169537760ull, 13939168156901571893ull,
+ 18156867960215388221ull, 295455315769143544ull}},
+ {{17875851286339075520ull, 9431592240093592170ull,
+ 17866991846721224827ull, 590910631538287089ull}},
+ {{17304958498968599424ull, 416440406477632725ull,
+ 17287239619732898039ull, 1181821263076574179ull}},
+ {{14529038144019450855ull, 11151334525521257514ull,
+ 18214843182914220900ull, 236364252615314835ull}},
+ {{10611332214329350093ull, 3855924977332963413ull,
+ 17982942292118890185ull, 472728505230629671ull}},
+ {{2775920354949148570ull, 7711849954665926827ull,
+ 17519140510528228754ull, 945457010461259343ull}},
+ {{15312579329957471007ull, 8921067620417006011ull,
+ 14571874546331376720ull, 189091402092251868ull}},
+ {{12178414586205390398ull, 17842135240834012023ull,
+ 10697005018953201824ull, 378182804184503737ull}},
+ {{5910085098701229179ull, 17237526407958472431ull,
+ 2947265964196852033ull, 756365608369007475ull}},
+ {{15939412278707887129ull, 14515551725817425455ull,
+ 589453192839370406ull, 151273121673801495ull}},
+ {{13432080483706222641ull, 10584359377925299295ull,
+ 1178906385678740813ull, 302546243347602990ull}},
+ {{8417416893702893666ull, 2721974682141046975ull,
+ 2357812771357481627ull, 605092486695205980ull}},
+ {{16834833787405787332ull, 5443949364282093950ull,
+ 4715625542714963254ull, 1210184973390411960ull}},
+ {{18124362016448798760ull, 15846185131824060082ull,
+ 943125108542992650ull, 242036994678082392ull}},
+ {{17801979959188045903ull, 13245626189938568549ull,
+ 1886250217085985301ull, 484073989356164784ull}},
+ {{17157215844666540189ull, 8044508306167585483ull,
+ 3772500434171970603ull, 968147978712329568ull}},
+ {{18188838427900949331ull, 5298250475975427419ull,
+ 11822546531060125090ull, 193629595742465913ull}},
+ {{17930932782092347046ull, 10596500951950854839ull,
+ 5198348988410698564ull, 387259191484931827ull}},
+ {{17415121490475142475ull, 2746257830192158063ull,
+ 10396697976821397129ull, 774518382969863654ull}},
+ {{7172373112836938819ull, 11617298010264162582ull,
+ 16836734854331920718ull, 154903676593972730ull}},
+ {{14344746225673877637ull, 4787851946818773548ull,
+ 15226725634954289821ull, 309807353187945461ull}},
+ {{10242748377638203657ull, 9575703893637547097ull,
+ 12006707196199028026ull, 619614706375890923ull}},
+ {{2038752681566855697ull, 704663713565542579ull, 5566670318688504437ull,
+ 1239229412751781847ull}},
+ {{11475796980539102109ull, 14898328001680749808ull,
+ 8492031693221521533ull, 247845882550356369ull}},
+ {{4504849887368652602ull, 11349911929651948001ull,
+ 16984063386443043067ull, 495691765100712738ull}},
+ {{9009699774737305204ull, 4253079785594344386ull,
+ 15521382699176534519ull, 991383530201425477ull}},
+ {{9180637584431281688ull, 4539964771860779200ull,
+ 10482974169319127550ull, 198276706040285095ull}},
+ {{18361275168862563375ull, 9079929543721558400ull,
+ 2519204264928703484ull, 396553412080570191ull}},
+ {{18275806264015575133ull, 18159859087443116801ull,
+ 5038408529857406968ull, 793106824161140382ull}},
+ {{7344510067545025350ull, 3631971817488623360ull,
+ 8386379335455302040ull, 158621364832228076ull}},
+ {{14689020135090050700ull, 7263943634977246720ull,
+ 16772758670910604080ull, 317242729664456152ull}},
+ {{10931296196470549783ull, 14527887269954493441ull,
+ 15098773268111656544ull, 634485459328912305ull}},
+ {{3415848319231547950ull, 10609030466199435267ull,
+ 11750802462513761473ull, 1268970918657824611ull}},
+ {{4372518478588219914ull, 16879201352207528346ull,
+ 6039509307244662617ull, 253794183731564922ull}},
+ {{8745036957176439827ull, 15311658630705505076ull,
+ 12079018614489325235ull, 507588367463129844ull}},
+ {{17490073914352879653ull, 12176573187701458536ull,
+ 5711293155269098855ull, 1015176734926259689ull}},
+ {{3498014782870575931ull, 17192709896507933000ull,
+ 15899653890021461063ull, 203035346985251937ull}},
+ {{6996029565741151861ull, 15938675719306314384ull,
+ 13352563706333370511ull, 406070693970503875ull}},
+ {{13992059131482303722ull, 13430607364903077152ull,
+ 8258383338957189407ull, 812141387941007751ull}},
+ {{2798411826296460745ull, 13754167917206346400ull,
+ 5341025482533348204ull, 162428277588201550ull}},
+ {{5596823652592921489ull, 9061591760703141184ull,
+ 10682050965066696409ull, 324856555176403100ull}},
+ {{11193647305185842978ull, 18123183521406282368ull,
+ 2917357856423841202ull, 649713110352806201ull}},
+ {{5928078275779078919ull, 14692683148506987443ull,
+ 4272820386026678563ull, 129942622070561240ull}},
+ {{11856156551558157838ull, 10938622223304423270ull,
+ 8545640772053357127ull, 259885244141122480ull}},
+ {{5265569029406764059ull, 3430500372899294925ull,
+ 17091281544106714255ull, 519770488282244960ull}},
+ {{10531138058813528118ull, 6861000745798589850ull,
+ 15735819014503876894ull, 1039540976564489921ull}},
+ {{2106227611762705624ull, 1372200149159717970ull,
+ 6836512617642685702ull, 207908195312897984ull}},
+ {{4212455223525411247ull, 2744400298319435940ull,
+ 13673025235285371404ull, 415816390625795968ull}},
+ {{8424910447050822494ull, 5488800596638871880ull,
+ 8899306396861191192ull, 831632781251591937ull}},
+ {{16442377348377805792ull, 15855155378295415668ull,
+ 9158558908856058884ull, 166326556250318387ull}},
+ {{14438010623046059968ull, 13263566682881279721ull,
+ 18317117817712117769ull, 332653112500636774ull}},
+ {{10429277172382568319ull, 8080389292053007827ull,
+ 18187491561714683923ull, 665306225001273549ull}},
+ {{16843250693444154957ull, 8994775487894422211ull,
+ 18394893571310578077ull, 133061245000254709ull}},
+ {{15239757313178758297ull, 17989550975788844423ull,
+ 18343043068911604538ull, 266122490000509419ull}},
+ {{12032770552647964978ull, 17532357877868137231ull,
+ 18239342064113657461ull, 532244980001018839ull}},
+ {{5618797031586378340ull, 16617971682026722847ull,
+ 18031940054517763307ull, 1064489960002037679ull}},
+ {{12191805850543006638ull, 7012943151147254892ull,
+ 18363783269871193954ull, 212897992000407535ull}},
+ {{5936867627376461660ull, 14025886302294509785ull,
+ 18280822466032836292ull, 425795984000815071ull}},
+ {{11873735254752923319ull, 9605028530879467954ull,
+ 18114900858356120969ull, 851591968001630143ull}},
+ {{6064095865692494987ull, 9299703335659714237ull,
+ 14691026615896955163ull, 170318393600326028ull}},
+ {{12128191731384989974ull, 152662597609876858ull,
+ 10935309158084358711ull, 340636787200652057ull}},
+ {{5809639389060428332ull, 305325195219753717ull, 3423874242459165806ull,
+ 681273574401304115ull}},
+ {{12229974322037816636ull, 3750413853785861066ull,
+ 684774848491833161ull, 136254714880260823ull}},
+ {{6013204570366081656ull, 7500827707571722133ull,
+ 1369549696983666322ull, 272509429760521646ull}},
+ {{12026409140732163312ull, 15001655415143444266ull,
+ 2739099393967332644ull, 545018859521043292ull}},
+ {{5606074207754775008ull, 11556566756577336917ull,
+ 5478198787934665289ull, 1090037719042086584ull}},
+ {{1121214841550955002ull, 13379359795541198353ull,
+ 15853035016554574350ull, 218007543808417316ull}},
+ {{2242429683101910003ull, 8311975517372845090ull,
+ 13259325959399597085ull, 436015087616834633ull}},
+ {{4484859366203820006ull, 16623951034745690180ull,
+ 8071907845089642554ull, 872030175233669267ull}},
+ {{4586320687982674325ull, 7014139021691048359ull,
+ 8993079198501749157ull, 174406035046733853ull}},
+ {{9172641375965348649ull, 14028278043382096718ull,
+ 17986158397003498314ull, 348812070093467706ull}},
+ {{18345282751930697298ull, 9609812013054641820ull,
+ 17525572720297445013ull, 697624140186935413ull}},
+ {{7358405365128049783ull, 5611311217352838687ull,
+ 14573160988285219972ull, 139524828037387082ull}},
+ {{14716810730256099566ull, 11222622434705677374ull,
+ 10699577902860888328ull, 279049656074774165ull}},
+ {{10986877386802647515ull, 3998500795701803133ull,
+ 2952411732012225041ull, 558099312149548331ull}},
+ {{3527010699895743414ull, 7997001591403606267ull,
+ 5904823464024450082ull, 1116198624299096662ull}},
+ {{4394750954721059006ull, 16356795577248362546ull,
+ 8559662322288710662ull, 223239724859819332ull}},
+ {{8789501909442118012ull, 14266847080787173476ull,
+ 17119324644577421325ull, 446479449719638664ull}},
+ {{17579003818884236024ull, 10086950087864795336ull,
+ 15791905215445291035ull, 892958899439277329ull}},
+ {{3515800763776847205ull, 16774785276540600360ull,
+ 17915776302056699499ull, 178591779887855465ull}},
+ {{7031601527553694410ull, 15102826479371649104ull,
+ 17384808530403847383ull, 357183559775710931ull}},
+ {{14063203055107388819ull, 11758908885033746592ull,
+ 16322872987098143151ull, 714367119551421863ull}},
+ {{6501989425763388087ull, 17109177035974390611ull,
+ 14332621041645359599ull, 142873423910284372ull}},
+ {{13003978851526776174ull, 15771609998239229606ull,
+ 10218498009581167583ull, 285746847820568745ull}},
+ {{7561213629344000732ull, 13096475922768907597ull,
+ 1990251945452783551ull, 571493695641137491ull}},
+ {{15122427258688001464ull, 7746207771828263578ull,
+ 3980503890905567103ull, 1142987391282274982ull}},
+ {{14092531895963331263ull, 1549241554365652715ull,
+ 8174798407664934067ull, 228597478256454996ull}},
+ {{9738319718217110909ull, 3098483108731305431ull,
+ 16349596815329868134ull, 457194956512909992ull}},
+ {{1029895362724670202ull, 6196966217462610863ull,
+ 14252449556950184652ull, 914389913025819985ull}},
+ {{205979072544934041ull, 8618090872976342819ull, 2850489911390036930ull,
+ 182877982605163997ull}},
+ {{411958145089868081ull, 17236181745952685638ull,
+ 5700979822780073860ull, 365755965210327994ull}},
+ {{823916290179736162ull, 16025619418195819660ull,
+ 11401959645560147721ull, 731511930420655988ull}},
+ {{14922178517003588526ull, 17962519142606805224ull,
+ 13348438373337760513ull, 146302386084131197ull}},
+ {{11397612960297625435ull, 17478294211504058833ull,
+ 8250132672965969411ull, 292604772168262395ull}},
+ {{4348481846885699253ull, 16509844349298566051ull,
+ 16500265345931938823ull, 585209544336524790ull}},
+ {{8696963693771398505ull, 14572944624887580486ull,
+ 14553786618154326031ull, 1170419088673049581ull}},
+ {{12807439182980010671ull, 10293286554461336743ull,
+ 6600106138372775529ull, 234083817734609916ull}},
+ {{7168134292250469725ull, 2139829035213121871ull,
+ 13200212276745551059ull, 468167635469219832ull}},
+ {{14336268584500939450ull, 4279658070426243742ull,
+ 7953680479781550502ull, 936335270938439665ull}},
+ {{17624648975867829183ull, 8234629243569069394ull,
+ 1590736095956310100ull, 187267054187687933ull}},
+ {{16802553878026106750ull, 16469258487138138789ull,
+ 3181472191912620200ull, 374534108375375866ull}},
+ {{15158363682342661883ull, 14491772900566725963ull,
+ 6362944383825240401ull, 749068216750751732ull}},
+ {{6721021551210442700ull, 13966401024339076162ull,
+ 8651286506248868726ull, 149813643350150346ull}},
+ {{13442043102420885400ull, 9486057974968600708ull,
+ 17302573012497737453ull, 299627286700300692ull}},
+ {{8437342131132219184ull, 525371876227649801ull,
+ 16158401951285923291ull, 599254573400601385ull}},
+ {{16874684262264438367ull, 1050743752455299602ull,
+ 13870059828862294966ull, 1198509146801202771ull}},
+ {{18132332111420528967ull, 7588846379974880566ull,
+ 6463360780514369316ull, 239701829360240554ull}},
+ {{17817920149131506317ull, 15177692759949761133ull,
+ 12926721561028738632ull, 479403658720481108ull}},
+ {{17189096224553461017ull, 11908641446189970651ull,
+ 7406699048347925649ull, 958807317440962217ull}},
+ {{10816516874394512850ull, 6071077103979904453ull,
+ 8860037439153405776ull, 191761463488192443ull}},
+ {{3186289675079474084ull, 12142154207959808907ull,
+ 17720074878306811552ull, 383522926976384886ull}},
+ {{6372579350158948167ull, 5837564342210066198ull,
+ 16993405682904071489ull, 767045853952769773ull}},
+ {{1274515870031789634ull, 8546210497925833886ull,
+ 14466727580806545267ull, 153409170790553954ull}},
+ {{2549031740063579267ull, 17092420995851667772ull,
+ 10486711087903538918ull, 306818341581107909ull}},
+ {{5098063480127158534ull, 15738097917993783928ull,
+ 2526678102097526221ull, 613636683162215819ull}},
+ {{10196126960254317067ull, 13029451762278016240ull,
+ 5053356204195052443ull, 1227273366324431638ull}},
+ {{5728574206792773737ull, 6295239167197513571ull,
+ 12078717685064741458ull, 245454673264886327ull}},
+ {{11457148413585547473ull, 12590478334395027142ull,
+ 5710691296419931300ull, 490909346529772655ull}},
+ {{4467552753461543330ull, 6734212595080502669ull,
+ 11421382592839862601ull, 981818693059545310ull}},
+ {{893510550692308666ull, 5036191333758010857ull, 2284276518567972520ull,
+ 196363738611909062ull}},
+ {{1787021101384617332ull, 10072382667516021714ull,
+ 4568553037135945040ull, 392727477223818124ull}},
+ {{3574042202769234664ull, 1698021261322491812ull,
+ 9137106074271890081ull, 785454954447636248ull}},
+ {{4404157255295757256ull, 15096999511232139655ull,
+ 12895467659080108985ull, 157090990889527249ull}},
+ {{8808314510591514512ull, 11747254948754727694ull,
+ 7344191244450666355ull, 314181981779054499ull}},
+ {{17616629021183029024ull, 5047765823799903772ull,
+ 14688382488901332711ull, 628363963558108998ull}},
+ {{16786513968656506432ull, 10095531647599807545ull,
+ 10930020904093113806ull, 1256727927116217997ull}},
+ {{14425349237957032256ull, 13087152773745692478ull,
+ 9564701810302443407ull, 251345585423243599ull}},
+ {{10403954402204512896ull, 7727561473781833341ull,
+ 682659546895335199ull, 502691170846487199ull}},
+ {{2361164730699474176ull, 15455122947563666683ull,
+ 1365319093790670398ull, 1005382341692974398ull}},
+ {{15229628205107536128ull, 6780373404254643659ull,
+ 11341110262983865049ull, 201076468338594879ull}},
+ {{12012512336505520640ull, 13560746808509287319ull,
+ 4235476452258178482ull, 402152936677189759ull}},
+ {{5578280599301489664ull, 8674749543309023023ull,
+ 8470952904516356965ull, 804305873354379518ull}},
+ {{4805004934602208256ull, 12802996352887535574ull,
+ 12762237025129002362ull, 160861174670875903ull}},
+ {{9610009869204416512ull, 7159248632065519532ull,
+ 7077729976548453109ull, 321722349341751807ull}},
+ {{773275664699281408ull, 14318497264131039065ull,
+ 14155459953096906218ull, 643444698683503614ull}},
+ {{7533352762423676928ull, 10242397082310028459ull,
+ 17588487249587022536ull, 128688939736700722ull}},
+ {{15066705524847353856ull, 2038050090910505302ull,
+ 16730230425464493457ull, 257377879473401445ull}},
+ {{11686666975985156096ull, 4076100181821010605ull,
+ 15013716777219435298ull, 514755758946802891ull}},
+ {{4926589878260760576ull, 8152200363642021211ull,
+ 11580689480729318980ull, 1029511517893605783ull}},
+ {{15742713234619793408ull, 12698486516954135211ull,
+ 13384184340371594765ull, 205902303578721156ull}},
+ {{13038682395530035200ull, 6950228960198718807ull,
+ 8321624607033637915ull, 411804607157442313ull}},
+ {{7630620717350518784ull, 13900457920397437615ull,
+ 16643249214067275830ull, 823609214314884626ull}},
+ {{5215472958212014080ull, 6469440398821397846ull,
+ 7017998657555365489ull, 164721842862976925ull}},
+ {{10430945916424028160ull, 12938880797642795692ull,
+ 14035997315110730978ull, 329443685725953850ull}},
+ {{2415147759138504704ull, 7431017521576039769ull,
+ 9625250556511910341ull, 658887371451907701ull}},
+ {{4172378366569611264ull, 8864901133799028600ull,
+ 5614398926044292391ull, 131777474290381540ull}},
+ {{8344756733139222528ull, 17729802267598057200ull,
+ 11228797852088584782ull, 263554948580763080ull}},
+ {{16689513466278445056ull, 17012860461486562784ull,
+ 4010851630467617949ull, 527109897161526161ull}},
+ {{14932282858847338496ull, 15578976849263573953ull,
+ 8021703260935235899ull, 1054219794323052322ull}},
+ {{17743851830737108992ull, 6805144184594625113ull,
+ 8983038281670867826ull, 210843958864610464ull}},
+ {{17040959587764666368ull, 13610288369189250227ull,
+ 17966076563341735652ull, 421687917729220928ull}},
+ {{15635175101819781120ull, 8773832664668948839ull,
+ 17485409052973919689ull, 843375835458441857ull}},
+ {{3127035020363956224ull, 5444115347675700091ull,
+ 10875779440078604584ull, 168675167091688371ull}},
+ {{6254070040727912448ull, 10888230695351400182ull,
+ 3304814806447657552ull, 337350334183376743ull}},
+ {{12508140081455824896ull, 3329717316993248748ull,
+ 6609629612895315105ull, 674700668366753486ull}},
+ {{17259023275258806272ull, 4355292278140560072ull,
+ 5011274737320973344ull, 134940133673350697ull}},
+ {{16071302476808060928ull, 8710584556281120145ull,
+ 10022549474641946688ull, 269880267346701394ull}},
+ {{13695860879906570240ull, 17421169112562240291ull,
+ 1598354875574341760ull, 539760534693402789ull}},
+ {{8944977686103588864ull, 16395594151414928967ull,
+ 3196709751148683521ull, 1079521069386805578ull}},
+ {{5478344351962628096ull, 18036514089250627086ull,
+ 11707388394455467673ull, 215904213877361115ull}},
+ {{10956688703925256192ull, 17626284104791702556ull,
+ 4968032715201383731ull, 431808427754722231ull}},
+ {{3466633334140960768ull, 16805824135873853497ull,
+ 9936065430402767463ull, 863616855509444462ull}},
+ {{8072024296312012800ull, 3361164827174770699ull,
+ 9365910715564374139ull, 172723371101888892ull}},
+ {{16144048592624025600ull, 6722329654349541398ull,
+ 285077357419196662ull, 345446742203777785ull}},
+ {{13841353111538499584ull, 13444659308699082797ull,
+ 570154714838393324ull, 690893484407555570ull}},
+ {{6457619437049610240ull, 17446327120707457852ull,
+ 114030942967678664ull, 138178696881511114ull}},
+ {{12915238874099220480ull, 16445910167705364088ull,
+ 228061885935357329ull, 276357393763022228ull}},
+ {{7383733674488889344ull, 14445076261701176561ull,
+ 456123771870714659ull, 552714787526044456ull}},
+ {{14767467348977778688ull, 10443408449692801506ull,
+ 912247543741429319ull, 1105429575052088912ull}},
+ {{10332191099279376384ull, 5778030504680470624ull,
+ 7561147138232106510ull, 221085915010417782ull}},
+ {{2217638124849201152ull, 11556061009360941249ull,
+ 15122294276464213020ull, 442171830020835564ull}},
+ {{4435276249698402304ull, 4665377945012330882ull,
+ 11797844479218874425ull, 884343660041671129ull}},
+ {{4576404064681590784ull, 15690470847970107469ull,
+ 17116964154811416177ull, 176868732008334225ull}},
+ {{9152808129363181568ull, 12934197622230663322ull,
+ 15787184235913280739ull, 353737464016668451ull}},
+ {{18305616258726363136ull, 7421651170751775028ull,
+ 13127624398117009863ull, 707474928033336903ull}},
+ {{18418518510712913920ull, 5173679048892265328ull,
+ 13693571323849132942ull, 141494985606667380ull}},
+ {{18390292947716276224ull, 10347358097784530657ull,
+ 8940398573988714268ull, 282989971213334761ull}},
+ {{18333841821723000832ull, 2247972121859509699ull,
+ 17880797147977428537ull, 565979942426669522ull}},
+ {{18220939569736450048ull, 4495944243719019399ull,
+ 17314850222245305458ull, 1131959884853339045ull}},
+ {{11022885543431110656ull, 11967235292969534849ull,
+ 3462970044449061091ull, 226391976970667809ull}},
+ {{3599027013152669696ull, 5487726512229518083ull,
+ 6925940088898122183ull, 452783953941335618ull}},
+ {{7198054026305339392ull, 10975453024459036166ull,
+ 13851880177796244366ull, 905567907882671236ull}},
+ {{12507657249486798848ull, 9573788234375627879ull,
+ 6459724850301159196ull, 181113581576534247ull}},
+ {{6568570425264046080ull, 700832395041704143ull,
+ 12919449700602318393ull, 362227163153068494ull}},
+ {{13137140850528092160ull, 1401664790083408286ull,
+ 7392155327495085170ull, 724454326306136989ull}},
+ {{2627428170105618432ull, 15037728216984322950ull,
+ 16235826324466658326ull, 144890865261227397ull}},
+ {{5254856340211236864ull, 11628712360259094284ull,
+ 14024908575223765037ull, 289781730522454795ull}},
+ {{10509712680422473728ull, 4810680646808636952ull,
+ 9603073076737978459ull, 579563461044909591ull}},
+ {{2572681287135395840ull, 9621361293617273905ull, 759402079766405302ull,
+ 1159126922089819183ull}},
+ {{514536257427079168ull, 1924272258723454781ull,
+ 11219926860179012030ull, 231825384417963836ull}},
+ {{1029072514854158336ull, 3848544517446909562ull,
+ 3993109646648472444ull, 463650768835927673ull}},
+ {{2058145029708316672ull, 7697089034893819124ull,
+ 7986219293296944888ull, 927301537671855346ull}},
+ {{11479675450167394304ull, 16296813065946405117ull,
+ 5286592673401299300ull, 185460307534371069ull}},
+ {{4512606826625236992ull, 14146882058183258619ull,
+ 10573185346802598601ull, 370920615068742138ull}},
+ {{9025213653250473984ull, 9847020042656965622ull,
+ 2699626619895645587ull, 741841230137484277ull}},
+ {{5494391545392005120ull, 16726799267499034417ull,
+ 7918622953462949763ull, 148368246027496855ull}},
+ {{10988783090784010240ull, 15006854461288517218ull,
+ 15837245906925899527ull, 296736492054993710ull}},
+ {{3530822107858468864ull, 11566964848867482821ull,
+ 13227747740142247439ull, 593472984109987421ull}},
+ {{7061644215716937728ull, 4687185624025414026ull,
+ 8008751406574943263ull, 1186945968219974843ull}},
+ {{8791026472627208192ull, 4626785939546993128ull,
+ 12669796725540719622ull, 237389193643994968ull}},
+ {{17582052945254416384ull, 9253571879093986256ull,
+ 6892849377371887628ull, 474778387287989937ull}},
+ {{16717361816799281152ull, 60399684478420897ull,
+ 13785698754743775257ull, 949556774575979874ull}},
+ {{14411518807585587200ull, 3701428751637594502ull,
+ 17514535009916396344ull, 189911354915195974ull}},
+ {{10376293541461622784ull, 7402857503275189005ull,
+ 16582325946123241072ull, 379822709830391949ull}},
+ {{2305843009213693952ull, 14805715006550378011ull,
+ 14717907818536930528ull, 759645419660783899ull}},
+ {{11529215046068469760ull, 10339840630793896248ull,
+ 17700976822675027398ull, 151929083932156779ull}},
+ {{4611686018427387904ull, 2232937187878240881ull,
+ 16955209571640503181ull, 303858167864313559ull}},
+ {{9223372036854775808ull, 4465874375756481762ull,
+ 15463675069571454746ull, 607716335728627119ull}},
+ {{0ull, 8931748751512963525ull, 12480606065433357876ull,
+ 1215432671457254239ull}},
+ {{0ull, 1786349750302592705ull, 17253516472054312868ull,
+ 243086534291450847ull}},
+ {{0ull, 3572699500605185410ull, 16060288870399074120ull,
+ 486173068582901695ull}},
+ {{0ull, 7145399001210370820ull, 13673833667088596624ull,
+ 972346137165803391ull}},
+ {{0ull, 1429079800242074164ull, 6424115548159629648ull,
+ 194469227433160678ull}},
+ {{0ull, 2858159600484148328ull, 12848231096319259296ull,
+ 388938454866321356ull}},
+ {{0ull, 5716319200968296656ull, 7249718118928966976ull,
+ 777876909732642713ull}},
+ {{0ull, 15900659099161300624ull, 12517990068011524364ull,
+ 155575381946528542ull}},
+ {{0ull, 13354574124613049632ull, 6589236062313497113ull,
+ 311150763893057085ull}},
+ {{0ull, 8262404175516547648ull, 13178472124626994227ull,
+ 622301527786114170ull}},
+ {{0ull, 16524808351033095296ull, 7910200175544436838ull,
+ 1244603055572228341ull}},
+ {{0ull, 18062356929174260352ull, 5271388849850797690ull,
+ 248920611114445668ull}},
+ {{0ull, 17677969784638969088ull, 10542777699701595381ull,
+ 497841222228891336ull}},
+ {{0ull, 16909195495568386560ull, 2638811325693639147ull,
+ 995682444457782673ull}},
+ {{0ull, 3381839099113677312ull, 11595808709364458799ull,
+ 199136488891556534ull}},
+ {{0ull, 6763678198227354624ull, 4744873345019365982ull,
+ 398272977783113069ull}},
+ {{0ull, 13527356396454709248ull, 9489746690038731964ull,
+ 796545955566226138ull}},
+ {{0ull, 10084168908774762496ull, 12965995782233477362ull,
+ 159309191113245227ull}},
+ {{0ull, 1721593743839973376ull, 7485247490757403109ull,
+ 318618382226490455ull}},
+ {{0ull, 3443187487679946752ull, 14970494981514806218ull,
+ 637236764452980910ull}},
+ {{0ull, 6886374975359893504ull, 11494245889320060820ull,
+ 1274473528905961821ull}},
+ {{0ull, 5066623809813889024ull, 5988197992605922487ull,
+ 254894705781192364ull}},
+ {{0ull, 10133247619627778048ull, 11976395985211844974ull,
+ 509789411562384728ull}},
+ {{0ull, 1819751165546004480ull, 5506047896714138333ull,
+ 1019578823124769457ull}},
+ {{0ull, 363950233109200896ull, 8479907208826648313ull,
+ 203915764624953891ull}},
+ {{0ull, 727900466218401792ull, 16959814417653296626ull,
+ 407831529249907782ull}},
+ {{0ull, 1455800932436803584ull, 15472884761597041636ull,
+ 815663058499815565ull}},
+ {{0ull, 3980509001229271040ull, 3094576952319408327ull,
+ 163132611699963113ull}},
+ {{0ull, 7961018002458542080ull, 6189153904638816654ull,
+ 326265223399926226ull}},
+ {{0ull, 15922036004917084160ull, 12378307809277633308ull,
+ 652530446799852452ull}},
+ {{0ull, 3184407200983416832ull, 9854359191339347308ull,
+ 130506089359970490ull}},
+ {{0ull, 6368814401966833664ull, 1261974308969143000ull,
+ 261012178719940981ull}},
+ {{0ull, 12737628803933667328ull, 2523948617938286000ull,
+ 522024357439881962ull}},
+ {{0ull, 7028513534157783040ull, 5047897235876572001ull,
+ 1044048714879763924ull}},
+ {{0ull, 1405702706831556608ull, 15766974706142955693ull,
+ 208809742975952784ull}},
+ {{0ull, 2811405413663113216ull, 13087205338576359770ull,
+ 417619485951905569ull}},
+ {{0ull, 5622810827326226432ull, 7727666603443167924ull,
+ 835238971903811139ull}},
+ {{0ull, 12192608609690976256ull, 16302928579656274877ull,
+ 167047794380762227ull}},
+ {{0ull, 5938473145672400896ull, 14159113085602998139ull,
+ 334095588761524455ull}},
+ {{0ull, 11876946291344801792ull, 9871482097496444662ull,
+ 668191177523048911ull}},
+ {{0ull, 13443435702494691328ull, 5663645234241199255ull,
+ 133638235504609782ull}},
+ {{0ull, 8440127331279831040ull, 11327290468482398511ull,
+ 267276471009219564ull}},
+ {{0ull, 16880254662559662080ull, 4207836863255245406ull,
+ 534552942018439129ull}},
+ {{0ull, 15313765251409772544ull, 8415673726510490813ull,
+ 1069105884036878258ull}},
+ {{0ull, 6752101865023864832ull, 12751181189527829132ull,
+ 213821176807375651ull}},
+ {{0ull, 13504203730047729664ull, 7055618305346106648ull,
+ 427642353614751303ull}},
+ {{0ull, 8561663386385907712ull, 14111236610692213297ull,
+ 855284707229502606ull}},
+ {{0ull, 12780379121502912512ull, 6511596136880352982ull,
+ 171056941445900521ull}},
+ {{0ull, 7114014169296273408ull, 13023192273760705965ull,
+ 342113882891801042ull}},
+ {{0ull, 14228028338592546816ull, 7599640473811860314ull,
+ 684227765783602085ull}},
+ {{0ull, 17603000926686150656ull, 1519928094762372062ull,
+ 136845553156720417ull}},
+ {{0ull, 16759257779662749696ull, 3039856189524744125ull,
+ 273691106313440834ull}},
+ {{0ull, 15071771485615947776ull, 6079712379049488251ull,
+ 547382212626881668ull}},
+ {{0ull, 11696798897522343936ull, 12159424758098976503ull,
+ 1094764425253763336ull}},
+ {{0ull, 17096755038472110080ull, 6121233766361705623ull,
+ 218952885050752667ull}},
+ {{0ull, 15746766003234668544ull, 12242467532723411247ull,
+ 437905770101505334ull}},
+ {{0ull, 13046787932759785472ull, 6038190991737270879ull,
+ 875811540203010669ull}},
+ {{0ull, 13677404030777688064ull, 15965033457315095468ull,
+ 175162308040602133ull}},
+ {{0ull, 8908063987845824512ull, 13483322840920639321ull,
+ 350324616081204267ull}},
+ {{0ull, 17816127975691649024ull, 8519901608131727026ull,
+ 700649232162408535ull}},
+ {{0ull, 7252574409880240128ull, 1703980321626345405ull,
+ 140129846432481707ull}},
+ {{0ull, 14505148819760480256ull, 3407960643252690810ull,
+ 280259692864963414ull}},
+ {{0ull, 10563553565811408896ull, 6815921286505381621ull,
+ 560519385729926828ull}},
+ {{0ull, 2680363057913266176ull, 13631842573010763243ull,
+ 1121038771459853656ull}},
+ {{0ull, 15293467870550294528ull, 6415717329344062971ull,
+ 224207754291970731ull}},
+ {{0ull, 12140191667391037440ull, 12831434658688125943ull,
+ 448415508583941462ull}},
+ {{0ull, 5833639261072523264ull, 7216125243666700271ull,
+ 896831017167882925ull}},
+ {{0ull, 4856076666956414976ull, 1443225048733340054ull,
+ 179366203433576585ull}},
+ {{0ull, 9712153333912829952ull, 2886450097466680108ull,
+ 358732406867153170ull}},
+ {{0ull, 977562594116108288ull, 5772900194933360217ull,
+ 717464813734306340ull}},
+ {{0ull, 7574210148307042304ull, 1154580038986672043ull,
+ 143492962746861268ull}},
+ {{0ull, 15148420296614084608ull, 2309160077973344086ull,
+ 286985925493722536ull}},
+ {{0ull, 11850096519518617600ull, 4618320155946688173ull,
+ 573971850987445072ull}},
+ {{0ull, 5253448965327683584ull, 9236640311893376347ull,
+ 1147943701974890144ull}},
+ {{0ull, 4740038607807447040ull, 16604723321346316562ull,
+ 229588740394978028ull}},
+ {{0ull, 9480077215614894080ull, 14762702568983081508ull,
+ 459177480789956057ull}},
+ {{0ull, 513410357520236544ull, 11078661064256611401ull,
+ 918354961579912115ull}},
+ {{0ull, 3792030886245957632ull, 2215732212851322280ull,
+ 183670992315982423ull}},
+ {{0ull, 7584061772491915264ull, 4431464425702644560ull,
+ 367341984631964846ull}},
+ {{0ull, 15168123544983830528ull, 8862928851405289120ull,
+ 734683969263929692ull}},
+ {{0ull, 10412322338480586752ull, 9151283399764878470ull,
+ 146936793852785938ull}},
+ {{0ull, 2377900603251621888ull, 18302566799529756941ull,
+ 293873587705571876ull}},
+ {{0ull, 4755801206503243776ull, 18158389525349962266ull,
+ 587747175411143753ull}},
+ {{0ull, 9511602413006487552ull, 17870034976990372916ull,
+ 1175494350822287507ull}},
+ {{0ull, 12970366926827028480ull, 10952704624881895229ull,
+ 235098870164457501ull}},
+ {{0ull, 7493989779944505344ull, 3458665176054238843ull,
+ 470197740328915003ull}},
+ {{0ull, 14987979559889010688ull, 6917330352108477686ull,
+ 940395480657830006ull}},
+ {{0ull, 10376293541461622784ull, 5072814885163605860ull,
+ 188079096131566001ull}},
+ {{0ull, 2305843009213693952ull, 10145629770327211721ull,
+ 376158192263132002ull}},
+ {{0ull, 4611686018427387904ull, 1844515466944871826ull,
+ 752316384526264005ull}},
+ {{0ull, 4611686018427387904ull, 368903093388974365ull,
+ 150463276905252801ull}},
+ {{0ull, 9223372036854775808ull, 737806186777948730ull,
+ 300926553810505602ull}},
+ {{0ull, 0ull, 1475612373555897461ull, 601853107621011204ull}},
+ {{0ull, 0ull, 2951224747111794922ull, 1203706215242022408ull}},
+ {{0ull, 0ull, 11658291393648089954ull, 240741243048404481ull}},
+ {{0ull, 0ull, 4869838713586628292ull, 481482486096808963ull}},
+ {{0ull, 0ull, 9739677427173256584ull, 962964972193617926ull}},
+ {{0ull, 0ull, 5637284300176561640ull, 192592994438723585ull}},
+ {{0ull, 0ull, 11274568600353123280ull, 385185988877447170ull}},
+ {{0ull, 0ull, 4102393126996694944ull, 770371977754894341ull}},
+ {{0ull, 0ull, 4509827440141249312ull, 154074395550978868ull}},
+ {{0ull, 0ull, 9019654880282498624ull, 308148791101957736ull}},
+ {{0ull, 0ull, 18039309760564997248ull, 616297582203915472ull}},
+ {{0ull, 0ull, 17631875447420442880ull, 1232595164407830945ull}},
+ {{0ull, 0ull, 3526375089484088576ull, 246519032881566189ull}},
+ {{0ull, 0ull, 7052750178968177152ull, 493038065763132378ull}},
+ {{0ull, 0ull, 14105500357936354304ull, 986076131526264756ull}},
+ {{0ull, 0ull, 6510448886329181184ull, 197215226305252951ull}},
+ {{0ull, 0ull, 13020897772658362368ull, 394430452610505902ull}},
+ {{0ull, 0ull, 7595051471607173120ull, 788860905221011805ull}},
+ {{0ull, 0ull, 1519010294321434624ull, 157772181044202361ull}},
+ {{0ull, 0ull, 3038020588642869248ull, 315544362088404722ull}},
+ {{0ull, 0ull, 6076041177285738496ull, 631088724176809444ull}},
+ {{0ull, 0ull, 12152082354571476992ull, 1262177448353618888ull}},
+ {{0ull, 0ull, 13498462915140026368ull, 252435489670723777ull}},
+ {{0ull, 0ull, 8550181756570501120ull, 504870979341447555ull}},
+ {{0ull, 0ull, 17100363513141002240ull, 1009741958682895110ull}},
+ {{0ull, 0ull, 3420072702628200448ull, 201948391736579022ull}},
+ {{0ull, 0ull, 6840145405256400896ull, 403896783473158044ull}},
+ {{0ull, 0ull, 13680290810512801792ull, 807793566946316088ull}},
+ {{0ull, 0ull, 13804104606328291328ull, 161558713389263217ull}},
+ {{0ull, 0ull, 9161465138947031040ull, 323117426778526435ull}},
+ {{0ull, 0ull, 18322930277894062080ull, 646234853557052870ull}},
+ {{0ull, 0ull, 3664586055578812416ull, 129246970711410574ull}},
+ {{0ull, 0ull, 7329172111157624832ull, 258493941422821148ull}},
+ {{0ull, 0ull, 14658344222315249664ull, 516987882845642296ull}},
+ {{0ull, 0ull, 10869944370920947712ull, 1033975765691284593ull}},
+ {{0ull, 0ull, 13242035318409920512ull, 206795153138256918ull}},
+ {{0ull, 0ull, 8037326563110289408ull, 413590306276513837ull}},
+ {{0ull, 0ull, 16074653126220578816ull, 827180612553027674ull}},
+ {{0ull, 0ull, 17972325884211757056ull, 165436122510605534ull}},
+ {{0ull, 0ull, 17497907694713962496ull, 330872245021211069ull}},
+ {{0ull, 0ull, 16549071315718373376ull, 661744490042422139ull}},
+ {{0ull, 0ull, 18067209522111315968ull, 132348898008484427ull}},
+ {{0ull, 0ull, 17687674970513080320ull, 264697796016968855ull}},
+ {{0ull, 0ull, 16928605867316609024ull, 529395592033937711ull}},
+ {{0ull, 0ull, 15410467660923666432ull, 1058791184067875423ull}},
+ {{0ull, 0ull, 14150139976410464256ull, 211758236813575084ull}},
+ {{0ull, 0ull, 9853535879111376896ull, 423516473627150169ull}},
+ {{0ull, 0ull, 1260327684513202176ull, 847032947254300339ull}},
+ {{0ull, 0ull, 15009460795870281728ull, 169406589450860067ull}},
+ {{0ull, 0ull, 11572177518031011840ull, 338813178901720135ull}},
+ {{0ull, 0ull, 4697610962352472064ull, 677626357803440271ull}},
+ {{0ull, 0ull, 4628871007212404736ull, 135525271560688054ull}},
+ {{0ull, 0ull, 9257742014424809472ull, 271050543121376108ull}},
+ {{0ull, 0ull, 68739955140067328ull, 542101086242752217ull}},
+ {{0ull, 0ull, 137479910280134656ull, 1084202172485504434ull}},
+ {{0ull, 0ull, 14784891241023668224ull, 216840434497100886ull}},
+ {{0ull, 0ull, 11123038408337784832ull, 433680868994201773ull}},
+ {{0ull, 0ull, 3799332742966018048ull, 867361737988403547ull}},
+ {{0ull, 0ull, 8138564178077024256ull, 173472347597680709ull}},
+ {{0ull, 0ull, 16277128356154048512ull, 346944695195361418ull}},
+ {{0ull, 0ull, 14107512638598545408ull, 693889390390722837ull}},
+ {{0ull, 0ull, 10200200157203529728ull, 138777878078144567ull}},
+ {{0ull, 0ull, 1953656240697507840ull, 277555756156289135ull}},
+ {{0ull, 0ull, 3907312481395015680ull, 555111512312578270ull}},
+ {{0ull, 0ull, 7814624962790031360ull, 1110223024625156540ull}},
+ {{0ull, 0ull, 1562924992558006272ull, 222044604925031308ull}},
+ {{0ull, 0ull, 3125849985116012544ull, 444089209850062616ull}},
+ {{0ull, 0ull, 6251699970232025088ull, 888178419700125232ull}},
+ {{0ull, 0ull, 8629037623530225664ull, 177635683940025046ull}},
+ {{0ull, 0ull, 17258075247060451328ull, 355271367880050092ull}},
+ {{0ull, 0ull, 16069406420411351040ull, 710542735760100185ull}},
+ {{0ull, 0ull, 3213881284082270208ull, 142108547152020037ull}},
+ {{0ull, 0ull, 6427762568164540416ull, 284217094304040074ull}},
+ {{0ull, 0ull, 12855525136329080832ull, 568434188608080148ull}},
+ {{0ull, 0ull, 7264306198948610048ull, 1136868377216160297ull}},
+ {{0ull, 0ull, 8831558869273542656ull, 227373675443232059ull}},
+ {{0ull, 0ull, 17663117738547085312ull, 454747350886464118ull}},
+ {{0ull, 0ull, 16879491403384619008ull, 909494701772928237ull}},
+ {{0ull, 0ull, 10754595910160744448ull, 181898940354585647ull}},
+ {{0ull, 0ull, 3062447746611937280ull, 363797880709171295ull}},
+ {{0ull, 0ull, 6124895493223874560ull, 727595761418342590ull}},
+ {{0ull, 0ull, 1224979098644774912ull, 145519152283668518ull}},
+ {{0ull, 0ull, 2449958197289549824ull, 291038304567337036ull}},
+ {{0ull, 0ull, 4899916394579099648ull, 582076609134674072ull}},
+ {{0ull, 0ull, 9799832789158199296ull, 1164153218269348144ull}},
+ {{0ull, 0ull, 16717361816799281152ull, 232830643653869628ull}},
+ {{0ull, 0ull, 14987979559889010688ull, 465661287307739257ull}},
+ {{0ull, 0ull, 11529215046068469760ull, 931322574615478515ull}},
+ {{0ull, 0ull, 2305843009213693952ull, 186264514923095703ull}},
+ {{0ull, 0ull, 4611686018427387904ull, 372529029846191406ull}},
+ {{0ull, 0ull, 9223372036854775808ull, 745058059692382812ull}},
+ {{0ull, 0ull, 9223372036854775808ull, 149011611938476562ull}},
+ {{0ull, 0ull, 0ull, 298023223876953125ull}},
+ {{0ull, 0ull, 0ull, 596046447753906250ull}},
+ {{0ull, 0ull, 0ull, 1192092895507812500ull}},
+ {{0ull, 0ull, 0ull, 238418579101562500ull}},
+ {{0ull, 0ull, 0ull, 476837158203125000ull}},
+ {{0ull, 0ull, 0ull, 953674316406250000ull}},
+ {{0ull, 0ull, 0ull, 190734863281250000ull}},
+ {{0ull, 0ull, 0ull, 381469726562500000ull}},
+ {{0ull, 0ull, 0ull, 762939453125000000ull}},
+ {{0ull, 0ull, 0ull, 152587890625000000ull}},
+ {{0ull, 0ull, 0ull, 305175781250000000ull}},
+ {{0ull, 0ull, 0ull, 610351562500000000ull}},
+ {{0ull, 0ull, 0ull, 1220703125000000000ull}},
+ {{0ull, 0ull, 0ull, 244140625000000000ull}},
+ {{0ull, 0ull, 0ull, 488281250000000000ull}},
+ {{0ull, 0ull, 0ull, 976562500000000000ull}},
+ {{0ull, 0ull, 0ull, 195312500000000000ull}},
+ {{0ull, 0ull, 0ull, 390625000000000000ull}},
+ {{0ull, 0ull, 0ull, 781250000000000000ull}},
+ {{0ull, 0ull, 0ull, 156250000000000000ull}},
+ {{0ull, 0ull, 0ull, 312500000000000000ull}},
+ {{0ull, 0ull, 0ull, 625000000000000000ull}},
+ {{0ull, 0ull, 0ull, 1250000000000000000ull}},
+ {{0ull, 0ull, 0ull, 250000000000000000ull}},
+ {{0ull, 0ull, 0ull, 500000000000000000ull}},
+ {{0ull, 0ull, 0ull, 1000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 200000000000000000ull}},
+ {{0ull, 0ull, 0ull, 400000000000000000ull}},
+ {{0ull, 0ull, 0ull, 800000000000000000ull}},
+ {{0ull, 0ull, 0ull, 160000000000000000ull}},
+ {{0ull, 0ull, 0ull, 320000000000000000ull}},
+ {{0ull, 0ull, 0ull, 640000000000000000ull}},
+ {{0ull, 0ull, 0ull, 1280000000000000000ull}},
+ {{0ull, 0ull, 0ull, 256000000000000000ull}},
+ {{0ull, 0ull, 0ull, 512000000000000000ull}},
+ {{0ull, 0ull, 0ull, 1024000000000000000ull}},
+ {{0ull, 0ull, 0ull, 204800000000000000ull}},
+ {{0ull, 0ull, 0ull, 409600000000000000ull}},
+ {{0ull, 0ull, 0ull, 819200000000000000ull}},
+ {{0ull, 0ull, 0ull, 163840000000000000ull}},
+ {{0ull, 0ull, 0ull, 327680000000000000ull}},
+ {{0ull, 0ull, 0ull, 655360000000000000ull}},
+ {{0ull, 0ull, 0ull, 131072000000000000ull}},
+ {{0ull, 0ull, 0ull, 262144000000000000ull}},
+ {{0ull, 0ull, 0ull, 524288000000000000ull}},
+ {{0ull, 0ull, 0ull, 1048576000000000000ull}},
+ {{0ull, 0ull, 0ull, 209715200000000000ull}},
+ {{0ull, 0ull, 0ull, 419430400000000000ull}},
+ {{0ull, 0ull, 0ull, 838860800000000000ull}},
+ {{0ull, 0ull, 0ull, 167772160000000000ull}},
+ {{0ull, 0ull, 0ull, 335544320000000000ull}},
+ {{0ull, 0ull, 0ull, 671088640000000000ull}},
+ {{0ull, 0ull, 0ull, 134217728000000000ull}},
+ {{0ull, 0ull, 0ull, 268435456000000000ull}},
+ {{0ull, 0ull, 0ull, 536870912000000000ull}},
+ {{0ull, 0ull, 0ull, 1073741824000000000ull}},
+ {{0ull, 0ull, 0ull, 214748364800000000ull}},
+ {{0ull, 0ull, 0ull, 429496729600000000ull}},
+ {{0ull, 0ull, 0ull, 858993459200000000ull}},
+ {{0ull, 0ull, 0ull, 171798691840000000ull}},
+ {{0ull, 0ull, 0ull, 343597383680000000ull}},
+ {{0ull, 0ull, 0ull, 687194767360000000ull}},
+ {{0ull, 0ull, 0ull, 137438953472000000ull}},
+ {{0ull, 0ull, 0ull, 274877906944000000ull}},
+ {{0ull, 0ull, 0ull, 549755813888000000ull}},
+ {{0ull, 0ull, 0ull, 1099511627776000000ull}},
+ {{0ull, 0ull, 0ull, 219902325555200000ull}},
+ {{0ull, 0ull, 0ull, 439804651110400000ull}},
+ {{0ull, 0ull, 0ull, 879609302220800000ull}},
+ {{0ull, 0ull, 0ull, 175921860444160000ull}},
+ {{0ull, 0ull, 0ull, 351843720888320000ull}},
+ {{0ull, 0ull, 0ull, 703687441776640000ull}},
+ {{0ull, 0ull, 0ull, 140737488355328000ull}},
+ {{0ull, 0ull, 0ull, 281474976710656000ull}},
+ {{0ull, 0ull, 0ull, 562949953421312000ull}},
+ {{0ull, 0ull, 0ull, 1125899906842624000ull}},
+ {{0ull, 0ull, 0ull, 225179981368524800ull}},
+ {{0ull, 0ull, 0ull, 450359962737049600ull}},
+ {{0ull, 0ull, 0ull, 900719925474099200ull}},
+ {{0ull, 0ull, 0ull, 180143985094819840ull}},
+ {{0ull, 0ull, 0ull, 360287970189639680ull}},
+ {{0ull, 0ull, 0ull, 720575940379279360ull}},
+ {{0ull, 0ull, 0ull, 144115188075855872ull}},
+ {{0ull, 0ull, 0ull, 288230376151711744ull}},
+ {{0ull, 0ull, 0ull, 576460752303423488ull}},
+ {{0ull, 0ull, 0ull, 1152921504606846976ull}},
+ {{3689348814741910324ull, 3689348814741910323ull,
+ 3689348814741910323ull, 230584300921369395ull}},
+ {{7378697629483820647ull, 7378697629483820646ull,
+ 7378697629483820646ull, 461168601842738790ull}},
+ {{14757395258967641293ull, 14757395258967641292ull,
+ 14757395258967641292ull, 922337203685477580ull}},
+ {{17708874310761169552ull, 10330176681277348904ull,
+ 2951479051793528258ull, 184467440737095516ull}},
+ {{16971004547812787487ull, 2213609288845146193ull,
+ 5902958103587056517ull, 368934881474191032ull}},
+ {{15495265021916023358ull, 4427218577690292387ull,
+ 11805916207174113034ull, 737869762948382064ull}},
+ {{3099053004383204672ull, 11953490159763789447ull,
+ 17118578500402463899ull, 147573952589676412ull}},
+ {{6198106008766409343ull, 5460236245818027278ull,
+ 15790412927095376183ull, 295147905179352825ull}},
+ {{12396212017532818686ull, 10920472491636054556ull,
+ 13134081780481200750ull, 590295810358705651ull}},
+ {{6345679961356085756ull, 3394200909562557497ull,
+ 7821419487252849885ull, 1180591620717411303ull}},
+ {{1269135992271217152ull, 11746886626138242469ull,
+ 12632330341676300946ull, 236118324143482260ull}},
+ {{2538271984542434303ull, 5047029178566933322ull,
+ 6817916609643050277ull, 472236648286964521ull}},
+ {{5076543969084868605ull, 10094058357133866644ull,
+ 13635833219286100554ull, 944473296573929042ull}},
+ {{1015308793816973721ull, 5708160486168683652ull,
+ 10105864273341040757ull, 188894659314785808ull}},
+ {{2030617587633947442ull, 11416320972337367304ull,
+ 1764984472972529898ull, 377789318629571617ull}},
+ {{4061235175267894884ull, 4385897870965182992ull,
+ 3529968945945059797ull, 755578637259143234ull}},
+ {{11880293479279309947ull, 4566528388934946921ull,
+ 15463389048156653252ull, 151115727451828646ull}},
+ {{5313842884849068277ull, 9133056777869893843ull,
+ 12480034022603754888ull, 302231454903657293ull}},
+ {{10627685769698136554ull, 18266113555739787686ull,
+ 6513323971497958160ull, 604462909807314587ull}},
+ {{2808627465686721491ull, 18085483037770023757ull,
+ 13026647942995916321ull, 1208925819614629174ull}},
+ {{7940423122621164945ull, 3617096607554004751ull,
+ 17362724847566824557ull, 241785163922925834ull}},
+ {{15880846245242329890ull, 7234193215108009502ull,
+ 16278705621424097498ull, 483570327845851669ull}},
+ {{13314948416775108163ull, 14468386430216019005ull,
+ 14110667169138643380ull, 967140655691703339ull}},
+ {{17420384942322662926ull, 17651072545010845093ull,
+ 17579528692795369968ull, 193428131138340667ull}},
+ {{16394025810935774235ull, 16855401016312138571ull,
+ 16712313311881188321ull, 386856262276681335ull}},
+ {{14341307548161996854ull, 15264057958914725527ull,
+ 14977882550052825027ull, 773712524553362671ull}},
+ {{2868261509632399371ull, 14120858036008676075ull,
+ 6684925324752475328ull, 154742504910672534ull}},
+ {{5736523019264798742ull, 9794971998307800534ull,
+ 13369850649504950657ull, 309485009821345068ull}},
+ {{11473046038529597483ull, 1143199922906049452ull,
+ 8292957225300349699ull, 618970019642690137ull}},
+ {{4499348003349643349ull, 2286399845812098905ull,
+ 16585914450600699398ull, 1237940039285380274ull}},
+ {{8278567230153749317ull, 7835977598646240427ull,
+ 18074578149087781172ull, 247588007857076054ull}},
+ {{16557134460307498633ull, 15671955197292480854ull,
+ 17702412224466010728ull, 495176015714152109ull}},
+ {{14667524846905445649ull, 12897166320875410093ull,
+ 16958080375222469841ull, 990352031428304219ull}},
+ {{14001551413606820100ull, 2579433264175082018ull,
+ 18149011334012135261ull, 198070406285660843ull}},
+ {{9556358753504088583ull, 5158866528350164037ull,
+ 17851278594314718906ull, 396140812571321687ull}},
+ {{665973433298625550ull, 10317733056700328075ull,
+ 17255813114919886196ull, 792281625142643375ull}},
+ {{3822543501401635434ull, 5752895426081975938ull,
+ 3451162622983977239ull, 158456325028528675ull}},
+ {{7645087002803270867ull, 11505790852163951876ull,
+ 6902325245967954478ull, 316912650057057350ull}},
+ {{15290174005606541733ull, 4564837630618352136ull,
+ 13804650491935908957ull, 633825300114114700ull}},
+ {{12133603937503531849ull, 9129675261236704273ull,
+ 9162556910162266298ull, 1267650600228229401ull}},
+ {{9805418416984527017ull, 16583330311214982147ull,
+ 5521860196774363582ull, 253530120045645880ull}},
+ {{1164092760259502417ull, 14719916548720412679ull,
+ 11043720393548727165ull, 507060240091291760ull}},
+ {{2328185520519004833ull, 10993089023731273742ull,
+ 3640696713387902715ull, 1014120480182583521ull}},
+ {{11533683548329531937ull, 5887966619488165071ull,
+ 4417488157419490866ull, 202824096036516704ull}},
+ {{4620623022949512257ull, 11775933238976330143ull,
+ 8834976314838981732ull, 405648192073033408ull}},
+ {{9241246045899024513ull, 5105122404243108670ull,
+ 17669952629677963465ull, 811296384146066816ull}},
+ {{5537598023921715226ull, 4710373295590532057ull,
+ 7223339340677503016ull, 162259276829213363ull}},
+ {{11075196047843430452ull, 9420746591181064114ull,
+ 14446678681355006032ull, 324518553658426726ull}},
+ {{3703648021977309287ull, 394749108652576613ull,
+ 10446613289000460449ull, 649037107316853453ull}},
+ {{740729604395461858ull, 7457647451214335969ull,
+ 13157369102025823059ull, 129807421463370690ull}},
+ {{1481459208790923715ull, 14915294902428671938ull,
+ 7867994130342094502ull, 259614842926741381ull}},
+ {{2962918417581847430ull, 11383845731147792260ull,
+ 15735988260684189005ull, 519229685853482762ull}},
+ {{5925836835163694859ull, 4320947388586032904ull,
+ 13025232447658826395ull, 1038459371706965525ull}},
+ {{15942562626000380265ull, 864189477717206580ull,
+ 2605046489531765279ull, 207691874341393105ull}},
+ {{13438381178291208914ull, 1728378955434413161ull,
+ 5210092979063530558ull, 415383748682786210ull}},
+ {{8430018282872866211ull, 3456757910868826323ull,
+ 10420185958127061116ull, 830767497365572420ull}},
+ {{16443398915542214535ull, 4380700396915675587ull,
+ 2084037191625412223ull, 166153499473114484ull}},
+ {{14440053757374877454ull, 8761400793831351175ull,
+ 4168074383250824446ull, 332306998946228968ull}},
+ {{10433363441040203292ull, 17522801587662702351ull,
+ 8336148766501648892ull, 664613997892457936ull}},
+ {{16844067947175681952ull, 14572606761758271439ull,
+ 5356578568042240101ull, 132922799578491587ull}},
+ {{15241391820641812287ull, 10698469449806991263ull,
+ 10713157136084480203ull, 265845599156983174ull}},
+ {{12036039567574072957ull, 2950194825904430911ull,
+ 2979570198459408791ull, 531691198313966349ull}},
+ {{5625335061438594297ull, 5900389651808861823ull,
+ 5959140396918817582ull, 1063382396627932698ull}},
+ {{12193113456513449829ull, 1180077930361772364ull,
+ 12259874523609494486ull, 212676479325586539ull}},
+ {{5939482839317348042ull, 2360155860723544729ull,
+ 6073004973509437356ull, 425352958651173079ull}},
+ {{11878965678634696084ull, 4720311721447089458ull,
+ 12146009947018874712ull, 850705917302346158ull}},
+ {{13443839579952670187ull, 944062344289417891ull,
+ 13497248433629505912ull, 170141183460469231ull}},
+ {{8440935086195788757ull, 1888124688578835783ull,
+ 8547752793549460208ull, 340282366920938463ull}},
+ {{16881870172391577514ull, 3776249377157671566ull,
+ 17095505587098920416ull, 680564733841876926ull}},
+ {{14444420478704046473ull, 8133947504915354959ull,
+ 7108449932161694406ull, 136112946768375385ull}},
+ {{10442096883698541329ull, 16267895009830709919ull,
+ 14216899864323388812ull, 272225893536750770ull}},
+ {{2437449693687531042ull, 14089045945951868223ull,
+ 9987055654937226009ull, 544451787073501541ull}},
+ {{4874899387375062083ull, 9731347818194184830ull,
+ 1527367236164900403ull, 1088903574147003083ull}},
+ {{4664328692216922740ull, 5635618378380747289ull,
+ 11373519891458711050ull, 217780714829400616ull}},
+ {{9328657384433845480ull, 11271236756761494578ull,
+ 4300295709207870484ull, 435561429658801233ull}},
+ {{210570695158139343ull, 4095729439813437541ull, 8600591418415740969ull,
+ 871122859317602466ull}},
+ {{3731462953773538192ull, 819145887962687508ull, 5409467098425058517ull,
+ 174224571863520493ull}},
+ {{7462925907547076384ull, 1638291775925375016ull,
+ 10818934196850117034ull, 348449143727040986ull}},
+ {{14925851815094152767ull, 3276583551850750032ull,
+ 3191124319990682452ull, 696898287454081973ull}},
+ {{10363867992502651200ull, 655316710370150006ull,
+ 11706271308223867460ull, 139379657490816394ull}},
+ {{2280991911295750784ull, 1310633420740300013ull,
+ 4965798542738183304ull, 278759314981632789ull}},
+ {{4561983822591501568ull, 2621266841480600026ull,
+ 9931597085476366608ull, 557518629963265578ull}},
+ {{9123967645183003135ull, 5242533682961200052ull,
+ 1416450097243181600ull, 1115037259926531157ull}},
+ {{16582188788004241920ull, 8427204366076060656ull,
+ 7661987648932456966ull, 223007451985306231ull}},
+ {{14717633502298932224ull, 16854408732152121313ull,
+ 15323975297864913932ull, 446014903970612462ull}},
+ {{10988522930888312831ull, 15262073390594691011ull,
+ 12201206522020276249ull, 892029807941224925ull}},
+ {{2197704586177662567ull, 17809809937086579495ull,
+ 2440241304404055249ull, 178405961588244985ull}},
+ {{4395409172355325133ull, 17172875800463607374ull,
+ 4880482608808110499ull, 356811923176489970ull}},
+ {{8790818344710650265ull, 15899007527217663132ull,
+ 9760965217616220999ull, 713623846352979940ull}},
+ {{5447512483684040377ull, 17937196764411173919ull,
+ 1952193043523244199ull, 142724769270595988ull}},
+ {{10895024967368080753ull, 17427649455112796222ull,
+ 3904386087046488399ull, 285449538541191976ull}},
+ {{3343305861026609889ull, 16408554836516040829ull,
+ 7808772174092976799ull, 570899077082383952ull}},
+ {{6686611722053219777ull, 14370365599322530042ull,
+ 15617544348185953599ull, 1141798154164767904ull}},
+ {{1337322344410643956ull, 13942119564090236978ull,
+ 17880904128604832012ull, 228359630832953580ull}},
+ {{2674644688821287911ull, 9437495054470922340ull,
+ 17315064183500112409ull, 456719261665907161ull}},
+ {{5349289377642575822ull, 428246035232293064ull,
+ 16183384293290673203ull, 913438523331814323ull}},
+ {{1069857875528515165ull, 3774998021788368936ull,
+ 14304723302883865610ull, 182687704666362864ull}},
+ {{2139715751057030329ull, 7549996043576737872ull,
+ 10162702532058179604ull, 365375409332725729ull}},
+ {{4279431502114060657ull, 15099992087153475744ull,
+ 1878660990406807592ull, 730750818665451459ull}},
+ {{855886300422812132ull, 6709347232172605472ull,
+ 15133127457049002811ull, 146150163733090291ull}},
+ {{1711772600845624263ull, 13418694464345210944ull,
+ 11819510840388454006ull, 292300327466180583ull}},
+ {{3423545201691248526ull, 8390644854980870272ull,
+ 5192277607067356397ull, 584600654932361167ull}},
+ {{6847090403382497052ull, 16781289709961740544ull,
+ 10384555214134712794ull, 1169201309864722334ull}},
+ {{8748115710160320057ull, 14424304386218079078ull,
+ 16834306301794583851ull, 233840261972944466ull}},
+ {{17496231420320640114ull, 10401864698726606540ull,
+ 15221868529879616087ull, 467680523945888933ull}},
+ {{16545718766931728611ull, 2356985323743661465ull,
+ 11996992986049680559ull, 935361047891777867ull}},
+ {{6998492568128256046ull, 4160745879490642616ull,
+ 9778096226693756758ull, 187072209578355573ull}},
+ {{13996985136256512091ull, 8321491758981285232ull,
+ 1109448379677961900ull, 374144419156711147ull}},
+ {{9547226198803472566ull, 16642983517962570465ull,
+ 2218896759355923800ull, 748288838313422294ull}},
+ {{16666840498728335806ull, 18085991962560155385ull,
+ 15201174610838826052ull, 149657767662684458ull}},
+ {{14886936923747119996ull, 17725239851410759155ull,
+ 11955605147968100489ull, 299315535325368917ull}},
+ {{11327129773784688376ull, 17003735629111966695ull,
+ 5464466222226649363ull, 598631070650737835ull}},
+ {{4207515473859825135ull, 15560727184514381775ull,
+ 10928932444453298727ull, 1197262141301475670ull}},
+ {{8220200724255785674ull, 10490843066386697001ull,
+ 2185786488890659745ull, 239452428260295134ull}},
+ {{16440401448511571347ull, 2534942059063842386ull,
+ 4371572977781319491ull, 478904856520590268ull}},
+ {{14434058823313591078ull, 5069884118127684773ull,
+ 8743145955562638982ull, 957809713041180536ull}},
+ {{6576160579404628539ull, 12082023267851267924ull,
+ 5437978005854438119ull, 191561942608236107ull}},
+ {{13152321158809257078ull, 5717302461992984232ull,
+ 10875956011708876239ull, 383123885216472214ull}},
+ {{7857898243908962539ull, 11434604923985968465ull,
+ 3305167949708200862ull, 766247770432944429ull}},
+ {{5260928463523702831ull, 5976269799539104016ull,
+ 15418428848909281465ull, 153249554086588885ull}},
+ {{10521856927047405662ull, 11952539599078208032ull,
+ 12390113624109011314ull, 306499108173177771ull}},
+ {{2596969780385259708ull, 5458335124446864449ull,
+ 6333483174508471013ull, 612998216346355543ull}},
+ {{5193939560770519416ull, 10916670248893728898ull,
+ 12666966349016942026ull, 1225996432692711086ull}},
+ {{1038787912154103884ull, 9562031679262566426ull,
+ 6222742084545298728ull, 245199286538542217ull}},
+ {{2077575824308207767ull, 677319284815581236ull,
+ 12445484169090597457ull, 490398573077084434ull}},
+ {{4155151648616415533ull, 1354638569631162472ull,
+ 6444224264471643298ull, 980797146154168869ull}},
+ {{15588425588690924400ull, 7649625343410053140ull,
+ 16046240111861969952ull, 196159429230833773ull}},
+ {{12730107103672297183ull, 15299250686820106281ull,
+ 13645736150014388288ull, 392318858461667547ull}},
+ {{7013470133635042750ull, 12151757299930660947ull,
+ 8844728226319224961ull, 784637716923335095ull}},
+ {{12470740470952739520ull, 6119700274728042512ull,
+ 1768945645263844992ull, 156927543384667019ull}},
+ {{6494736868195927423ull, 12239400549456085025ull,
+ 3537891290527689984ull, 313855086769334038ull}},
+ {{12989473736391854846ull, 6032057025202618434ull,
+ 7075782581055379969ull, 627710173538668076ull}},
+ {{7532203399074158076ull, 12064114050405236869ull,
+ 14151565162110759938ull, 1255420347077336152ull}},
+ {{16263835938782472908ull, 2412822810081047373ull,
+ 10209010661905972634ull, 251084069415467230ull}},
+ {{14080927803855394200ull, 4825645620162094747ull,
+ 1971277250102393652ull, 502168138830934461ull}},
+ {{9715111534001236784ull, 9651291240324189495ull,
+ 3942554500204787304ull, 1004336277661868922ull}},
+ {{5632371121542157680ull, 5619607062806748222ull,
+ 8167208529524778107ull, 200867255532373784ull}},
+ {{11264742243084315360ull, 11239214125613496444ull,
+ 16334417059049556214ull, 401734511064747568ull}},
+ {{4082740412459079104ull, 4031684177517441273ull,
+ 14222090044389560813ull, 803469022129495137ull}},
+ {{11884594526717546791ull, 806336835503488254ull,
+ 10223115638361732809ull, 160693804425899027ull}},
+ {{5322444979725541965ull, 1612673671006976509ull,
+ 1999487203013914002ull, 321387608851798055ull}},
+ {{10644889959451083930ull, 3225347342013953018ull,
+ 3998974406027828004ull, 642775217703596110ull}},
+ {{9507675621374037433ull, 15402464727370431896ull,
+ 799794881205565600ull, 128555043540719222ull}},
+ {{568607169038523249ull, 12358185381031312177ull,
+ 1599589762411131201ull, 257110087081438444ull}},
+ {{1137214338077046498ull, 6269626688353072738ull,
+ 3199179524822262403ull, 514220174162876888ull}},
+ {{2274428676154092995ull, 12539253376706145476ull,
+ 6398359049644524806ull, 1028440348325753776ull}},
+ {{11522932179456549569ull, 9886548304825049741ull,
+ 4969020624670815284ull, 205688069665150755ull}},
+ {{4599120285203547521ull, 1326352535940547867ull,
+ 9938041249341630569ull, 411376139330301510ull}},
+ {{9198240570407095042ull, 2652705071881095734ull,
+ 1429338424973709522ull, 822752278660603021ull}},
+ {{9218345743565239655ull, 11598587458601950116ull,
+ 3975216499736652227ull, 164550455732120604ull}},
+ {{18436691487130479310ull, 4750430843494348616ull,
+ 7950432999473304455ull, 329100911464241208ull}},
+ {{18426638900551407003ull, 9500861686988697233ull,
+ 15900865998946608910ull, 658201822928482416ull}},
+ {{18442723039077922694ull, 5589521152139649769ull,
+ 6869522014531232105ull, 131640364585696483ull}},
+ {{18438702004446293771ull, 11179042304279299539ull,
+ 13739044029062464210ull, 263280729171392966ull}},
+ {{18430659935183035926ull, 3911340534849047463ull,
+ 9031343984415376805ull, 526561458342785933ull}},
+ {{18414575796656520236ull, 7822681069698094927ull,
+ 18062687968830753610ull, 1053122916685571866ull}},
+ {{14750961603557035017ull, 5253885028681529308ull,
+ 7301886408508061045ull, 210624583337114373ull}},
+ {{11055179133404518418ull, 10507770057363058617ull,
+ 14603772817016122090ull, 421249166674228746ull}},
+ {{3663614193099485219ull, 2568796041016565619ull,
+ 10760801560322692565ull, 842498333348457493ull}},
+ {{8111420468103717691ull, 11581805652429044093ull,
+ 13220206756290269482ull, 168499666669691498ull}},
+ {{16222840936207435381ull, 4716867231148536570ull,
+ 7993669438870987349ull, 336999333339382997ull}},
+ {{13998937798705319145ull, 9433734462297073141ull,
+ 15987338877741974698ull, 673998666678765994ull}},
+ {{13867834003966794799ull, 9265444521943235274ull,
+ 17954863034516036232ull, 134799733335753198ull}},
+ {{9288923934224037981ull, 84144970176918933ull, 17462981995322520849ull,
+ 269599466671506397ull}},
+ {{131103794738524346ull, 168289940353837867ull, 16479219916935490082ull,
+ 539198933343012795ull}},
+ {{262207589477048692ull, 336579880707675734ull, 14511695760161428548ull,
+ 1078397866686025591ull}},
+ {{11120487962121140708ull, 14824711235109176439ull,
+ 6591687966774196032ull, 215679573337205118ull}},
+ {{3794231850532729800ull, 11202678396508801263ull,
+ 13183375933548392065ull, 431359146674410236ull}},
+ {{7588463701065459600ull, 3958612719308050910ull,
+ 7920007793387232515ull, 862718293348820473ull}},
+ {{12585739184438822890ull, 11859768988087341151ull,
+ 12652048002903177472ull, 172543658669764094ull}},
+ {{6724734295168094164ull, 5272793902465130687ull,
+ 6857351932096803329ull, 345087317339528189ull}},
+ {{13449468590336188327ull, 10545587804930261374ull,
+ 13714703864193606658ull, 690174634679056378ull}},
+ {{2689893718067237666ull, 5798466375727962598ull,
+ 13810987217064452301ull, 138034926935811275ull}},
+ {{5379787436134475331ull, 11596932751455925196ull,
+ 9175230360419352986ull, 276069853871622551ull}},
+ {{10759574872268950662ull, 4747121429202298776ull,
+ 18350460720838705973ull, 552139707743245102ull}},
+ {{3072405670828349707ull, 9494242858404597553ull,
+ 18254177367967860330ull, 1104279415486490205ull}},
+ {{11682527578391400911ull, 1898848571680919510ull,
+ 3650835473593572066ull, 220855883097298041ull}},
+ {{4918311083073250206ull, 3797697143361839021ull,
+ 7301670947187144132ull, 441711766194596082ull}},
+ {{9836622166146500412ull, 7595394286723678042ull,
+ 14603341894374288264ull, 883423532389192164ull}},
+ {{1967324433229300083ull, 12587125301570466578ull,
+ 17678063637842498945ull, 176684706477838432ull}},
+ {{3934648866458600165ull, 6727506529431381540ull,
+ 16909383201975446275ull, 353369412955676865ull}},
+ {{7869297732917200330ull, 13455013058862763080ull,
+ 15372022330241340934ull, 706738825911353731ull}},
+ {{1573859546583440066ull, 2691002611772552616ull,
+ 6763753280790178510ull, 141347765182270746ull}},
+ {{3147719093166880132ull, 5382005223545105232ull,
+ 13527506561580357020ull, 282695530364541492ull}},
+ {{6295438186333760264ull, 10764010447090210464ull,
+ 8608269049451162424ull, 565391060729082985ull}},
+ {{12590876372667520527ull, 3081276820470869312ull,
+ 17216538098902324849ull, 1130782121458165970ull}},
+ {{6207524089275414429ull, 15373650623061815155ull,
+ 3443307619780464969ull, 226156424291633194ull}},
+ {{12415048178550828857ull, 12300557172414078694ull,
+ 6886615239560929939ull, 452312848583266388ull}},
+ {{6383352283392106098ull, 6154370271118605773ull,
+ 13773230479121859879ull, 904625697166532776ull}},
+ {{12344716900904152190ull, 1230874054223721154ull,
+ 6443994910566282299ull, 180925139433306555ull}},
+ {{6242689728098752763ull, 2461748108447442309ull,
+ 12887989821132564598ull, 361850278866613110ull}},
+ {{12485379456197505525ull, 4923496216894884618ull,
+ 7329235568555577580ull, 723700557733226221ull}},
+ {{17254471150207142398ull, 4674048058120887246ull,
+ 5155195928453025839ull, 144740111546645244ull}},
+ {{16062198226704733180ull, 9348096116241774493ull,
+ 10310391856906051678ull, 289480223093290488ull}},
+ {{13677652379699914743ull, 249448158773997371ull,
+ 2174039640102551741ull, 578960446186580977ull}},
+ {{8908560685690277870ull, 498896317547994743ull, 4348079280205103482ull,
+ 1157920892373161954ull}},
+ {{16539107396105696867ull, 3789128078251509271ull,
+ 15627011115008661989ull, 231584178474632390ull}},
+ {{14631470718501842118ull, 7578256156503018543ull,
+ 12807278156307772362ull, 463168356949264781ull}},
+ {{10816197363294132620ull, 15156512313006037087ull,
+ 7167812238905993108ull, 926336713898529563ull}},
+ {{13231285916884557494ull, 6720651277343117740ull,
+ 12501608892006929591ull, 185267342779705912ull}},
+ {{8015827760059563371ull, 13441302554686235481ull,
+ 6556473710304307566ull, 370534685559411825ull}},
+ {{16031655520119126742ull, 8435861035662919346ull,
+ 13112947420608615133ull, 741069371118823650ull}},
+ {{17963726362991466642ull, 12755218651358314838ull,
+ 2622589484121723026ull, 148213874223764730ull}},
+ {{17480708652273381667ull, 7063693229007078061ull,
+ 5245178968243446053ull, 296427748447529460ull}},
+ {{16514673230837211717ull, 14127386458014156123ull,
+ 10490357936486892106ull, 592855496895058920ull}},
+ {{14582602387964871818ull, 9808028842318760631ull,
+ 2533971799264232597ull, 1185710993790117841ull}},
+ {{17673915736560615657ull, 13029652212689483095ull,
+ 4196143174594756842ull, 237142198758023568ull}},
+ {{16901087399411679697ull, 7612560351669414575ull,
+ 8392286349189513685ull, 474284397516047136ull}},
+ {{15355430725113807777ull, 15225120703338829151ull,
+ 16784572698379027370ull, 948568795032094272ull}},
+ {{14139132589248492525ull, 10423721770151586476ull,
+ 10735612169159626120ull, 189713759006418854ull}},
+ {{9831521104787433434ull, 2400699466593621337ull,
+ 3024480264609700625ull, 379427518012837709ull}},
+ {{1216298135865315252ull, 4801398933187242675ull,
+ 6048960529219401250ull, 758855036025675418ull}},
+ {{11311306071398794020ull, 12028326230863179504ull,
+ 12277838550069611219ull, 151771007205135083ull}},
+ {{4175868069088036424ull, 5609908388016807393ull,
+ 6108933026429670823ull, 303542014410270167ull}},
+ {{8351736138176072848ull, 11219816776033614786ull,
+ 12217866052859341646ull, 607084028820540334ull}},
+ {{16703472276352145696ull, 3992889478357677956ull,
+ 5988988032009131677ull, 1214168057641080669ull}},
+ {{10719392084754249786ull, 4487926710413445914ull,
+ 15955192865369467628ull, 242833611528216133ull}},
+ {{2992040095798947956ull, 8975853420826891829ull,
+ 13463641657029383640ull, 485667223056432267ull}},
+ {{5984080191597895911ull, 17951706841653783658ull,
+ 8480539240349215664ull, 971334446112864535ull}},
+ {{8575513667803399829ull, 18347736627298398024ull,
+ 1696107848069843132ull, 194266889222572907ull}},
+ {{17151027335606799657ull, 18248729180887244432ull,
+ 3392215696139686265ull, 388533778445145814ull}},
+ {{15855310597504047698ull, 18050714288064937249ull,
+ 6784431392279372531ull, 777067556890291628ull}},
+ {{14239108563726540510ull, 18367538116580628742ull,
+ 12424932722681605475ull, 155413511378058325ull}},
+ {{10031473053743529403ull, 18288332159451705869ull,
+ 6403121371653659335ull, 310827022756116651ull}},
+ {{1616202033777507189ull, 18129920245193860123ull,
+ 12806242743307318671ull, 621654045512233302ull}},
+ {{3232404067555014378ull, 17813096416678168630ull,
+ 7165741412905085727ull, 1243308091024466605ull}},
+ {{8025178442994823522ull, 10941316912819454372ull,
+ 1433148282581017145ull, 248661618204893321ull}},
+ {{16050356885989647044ull, 3435889751929357128ull,
+ 2866296565162034291ull, 497323236409786642ull}},
+ {{13653969698269742472ull, 6871779503858714257ull,
+ 5732593130324068582ull, 994646472819573284ull}},
+ {{13798840383879679464ull, 5063704715513653174ull,
+ 15903913885032455009ull, 198929294563914656ull}},
+ {{9150936694049807312ull, 10127409431027306349ull,
+ 13361083696355358402ull, 397858589127829313ull}},
+ {{18301873388099614624ull, 1808074788345061082ull,
+ 8275423319001165189ull, 795717178255658627ull}},
+ {{14728421121845653895ull, 4050963772410922539ull,
+ 9033782293284053684ull, 159143435651131725ull}},
+ {{11010098169981756173ull, 8101927544821845079ull,
+ 18067564586568107368ull, 318286871302263450ull}},
+ {{3573452266253960730ull, 16203855089643690159ull,
+ 17688385099426663120ull, 636573742604526901ull}},
+ {{7146904532507921459ull, 13960966105577828702ull,
+ 16930026125143774625ull, 1273147485209053803ull}},
+ {{1429380906501584292ull, 13860239665341296710ull,
+ 14454051669254485894ull, 254629497041810760ull}},
+ {{2858761813003168584ull, 9273735256973041804ull,
+ 10461359264799420173ull, 509258994083621521ull}},
+ {{5717523626006337167ull, 100726440236531992ull, 2475974455889288731ull,
+ 1018517988167243043ull}},
+ {{4832853539943177757ull, 14777540547014947691ull,
+ 11563241335403588715ull, 203703597633448608ull}},
+ {{9665707079886355514ull, 11108337020320343766ull,
+ 4679738597097625815ull, 407407195266897217ull}},
+ {{884670086063159411ull, 3769929966931135917ull, 9359477194195251631ull,
+ 814814390533794434ull}},
+ {{7555631646696452529ull, 753985993386227183ull,
+ 16629290697806691619ull, 162962878106758886ull}},
+ {{15111263293392905057ull, 1507971986772454366ull,
+ 14811837321903831622ull, 325925756213517773ull}},
+ {{11775782513076258498ull, 3015943973544908733ull,
+ 11176930570098111628ull, 651851512427035547ull}},
+ {{13423202946840982670ull, 603188794708981746ull,
+ 9614083743503442972ull, 130370302485407109ull}},
+ {{8399661819972413723ull, 1206377589417963493ull, 781423413297334328ull,
+ 260740604970814219ull}},
+ {{16799323639944827445ull, 2412755178835926986ull,
+ 1562846826594668656ull, 521481209941628438ull}},
+ {{15151903206180103274ull, 4825510357671853973ull,
+ 3125693653189337312ull, 1042962419883256876ull}},
+ {{6719729455977930978ull, 12033148515760101764ull,
+ 4314487545379777785ull, 208592483976651375ull}},
+ {{13439458911955861956ull, 5619552957810651912ull,
+ 8628975090759555571ull, 417184967953302750ull}},
+ {{8432173750202172296ull, 11239105915621303825ull,
+ 17257950181519111142ull, 834369935906605500ull}},
+ {{9065132379524255106ull, 9626518812608081411ull,
+ 3451590036303822228ull, 166873987181321100ull}},
+ {{18130264759048510211ull, 806293551506611206ull,
+ 6903180072607644457ull, 333747974362642200ull}},
+ {{17813785444387468806ull, 1612587103013222413ull,
+ 13806360145215288914ull, 667495948725284400ull}},
+ {{10941454718361314408ull, 15079912679570285775ull,
+ 2761272029043057782ull, 133499189745056880ull}},
+ {{3436165363013077200ull, 11713081285431019935ull,
+ 5522544058086115565ull, 266998379490113760ull}},
+ {{6872330726026154399ull, 4979418497152488254ull,
+ 11045088116172231131ull, 533996758980227520ull}},
+ {{13744661452052308797ull, 9958836994304976508ull,
+ 3643432158634910646ull, 1067993517960455041ull}},
+ {{2748932290410461760ull, 9370465028344815948ull,
+ 4418035246468892452ull, 213598703592091008ull}},
+ {{5497864580820923519ull, 294185982980080280ull, 8836070492937784905ull,
+ 427197407184182016ull}},
+ {{10995729161641847038ull, 588371965960160560ull,
+ 17672140985875569810ull, 854394814368364032ull}},
+ {{9577843461812190054ull, 7496372022675852758ull,
+ 10913125826658934608ull, 170878962873672806ull}},
+ {{708942849914828492ull, 14992744045351705517ull,
+ 3379507579608317600ull, 341757925747345613ull}},
+ {{1417885699829656984ull, 11538744016993859418ull,
+ 6759015159216635201ull, 683515851494691226ull}},
+ {{283577139965931397ull, 9686446432882592530ull, 5041151846585237363ull,
+ 136703170298938245ull}},
+ {{567154279931862794ull, 926148792055633444ull, 10082303693170474727ull,
+ 273406340597876490ull}},
+ {{1134308559863725587ull, 1852297584111266888ull,
+ 1717863312631397838ull, 546812681195752981ull}},
+ {{2268617119727451174ull, 3704595168222533776ull,
+ 3435726625262795676ull, 1093625362391505962ull}},
+ {{15211118682913131528ull, 11808965477870237724ull,
+ 8065842954536379781ull, 218725072478301192ull}},
+ {{11975493292116711440ull, 5171186882030923833ull,
+ 16131685909072759563ull, 437450144956602384ull}},
+ {{5504242510523871263ull, 10342373764061847667ull,
+ 13816627744435967510ull, 874900289913204769ull}},
+ {{4790197316846684576ull, 16825870011780010826ull,
+ 17520720807854834794ull, 174980057982640953ull}},
+ {{9580394633693369152ull, 15204995949850470036ull,
+ 16594697542000117973ull, 349960115965281907ull}},
+ {{714045193677186687ull, 11963247825991388457ull,
+ 14742651010290684331ull, 699920231930563815ull}},
+ {{11210855482961168307ull, 6081998379940188014ull,
+ 2948530202058136866ull, 139984046386112763ull}},
+ {{3974966892212784998ull, 12163996759880376029ull,
+ 5897060404116273732ull, 279968092772225526ull}},
+ {{7949933784425569996ull, 5881249446051200442ull,
+ 11794120808232547465ull, 559936185544451052ull}},
+ {{15899867568851139992ull, 11762498892102400884ull,
+ 5141497542755543314ull, 1119872371088902105ull}},
+ {{14248019957995958968ull, 17109895037388121469ull,
+ 1028299508551108662ull, 223974474217780421ull}},
+ {{10049295842282366320ull, 15773046001066691323ull,
+ 2056599017102217325ull, 447948948435560842ull}},
+ {{1651847610855181024ull, 13099347928423831031ull,
+ 4113198034204434651ull, 895897896871121684ull}},
+ {{4019718336912946528ull, 2619869585684766206ull,
+ 15580034865808528223ull, 179179579374224336ull}},
+ {{8039436673825893056ull, 5239739171369532412ull,
+ 12713325657907504830ull, 358359158748448673ull}},
+ {{16078873347651786112ull, 10479478342739064824ull,
+ 6979907242105458044ull, 716718317496897347ull}},
+ {{3215774669530357223ull, 5785244483289723288ull,
+ 8774679077904912255ull, 143343663499379469ull}},
+ {{6431549339060714445ull, 11570488966579446576ull,
+ 17549358155809824510ull, 286687326998758938ull}},
+ {{12863098678121428890ull, 4694233859449341536ull,
+ 16651972237910097405ull, 573374653997517877ull}},
+ {{7279453282533306163ull, 9388467718898683073ull,
+ 14857200402110643194ull, 1146749307995035755ull}},
+ {{8834588285990481879ull, 16635088802747377907ull,
+ 2971440080422128638ull, 229349861599007151ull}},
+ {{17669176571980963758ull, 14823433531785204198ull,
+ 5942880160844257277ull, 458699723198014302ull}},
+ {{16891609070252375900ull, 11200122989860856781ull,
+ 11885760321688514555ull, 917399446396028604ull}},
+ {{3378321814050475180ull, 16997419856939812649ull,
+ 17134547323305344203ull, 183479889279205720ull}},
+ {{6756643628100950360ull, 15548095640170073682ull,
+ 15822350572901136791ull, 366959778558411441ull}},
+ {{13513287256201900720ull, 12649447206630595748ull,
+ 13197957072092721967ull, 733919557116822883ull}},
+ {{13770703895466111114ull, 2529889441326119149ull,
+ 13707637858644275363ull, 146783911423364576ull}},
+ {{9094663717222670612ull, 5059778882652238299ull,
+ 8968531643578999110ull, 293567822846729153ull}},
+ {{18189327434445341223ull, 10119557765304476598ull,
+ 17937063287157998220ull, 587135645693458306ull}},
+ {{17931910795181130829ull, 1792371456899401581ull,
+ 17427382500606444825ull, 1174271291386916613ull}},
+ {{18343777418003867459ull, 11426520735605611285ull,
+ 14553522944347019934ull, 234854258277383322ull}},
+ {{18240810762298183301ull, 4406297397501670955ull,
+ 10660301814984488253ull, 469708516554766645ull}},
+ {{18034877450886814986ull, 8812594795003341911ull,
+ 2873859556259424890ull, 939417033109533291ull}},
+ {{10985673119661183644ull, 5451867773742578705ull,
+ 4264120725993795301ull, 187883406621906658ull}},
+ {{3524602165612815672ull, 10903735547485157411ull,
+ 8528241451987590602ull, 375766813243813316ull}},
+ {{7049204331225631343ull, 3360727021260763206ull,
+ 17056482903975181205ull, 751533626487626632ull}},
+ {{12477887310470857239ull, 8050843033735973287ull,
+ 10789994210278856887ull, 150306725297525326ull}},
+ {{6509030547232162861ull, 16101686067471946575ull,
+ 3133244346848162158ull, 300613450595050653ull}},
+ {{13018061094464325721ull, 13756628061234341534ull,
+ 6266488693696324317ull, 601226901190101306ull}},
+ {{7589378115219099825ull, 9066512048759131453ull,
+ 12532977387392648635ull, 1202453802380202612ull}},
+ {{1517875623043819965ull, 9192000039235646937ull,
+ 9885293106962350373ull, 240490760476040522ull}},
+ {{3035751246087639930ull, 18384000078471293874ull,
+ 1323842140215149130ull, 480981520952081045ull}},
+ {{6071502492175279860ull, 18321256083233036132ull,
+ 2647684280430298261ull, 961963041904162090ull}},
+ {{12282346942660786942ull, 7353600031388517549ull,
+ 529536856086059652ull, 192392608380832418ull}},
+ {{6117949811612022267ull, 14707200062777035099ull,
+ 1059073712172119304ull, 384785216761664836ull}},
+ {{12235899623224044534ull, 10967656051844518582ull,
+ 2118147424344238609ull, 769570433523329672ull}},
+ {{13515226368870539877ull, 5882880025110814039ull,
+ 7802327114352668368ull, 153914086704665934ull}},
+ {{8583708664031528137ull, 11765760050221628079ull,
+ 15604654228705336736ull, 307828173409331868ull}},
+ {{17167417328063056274ull, 5084776026733704542ull,
+ 12762564383701121857ull, 615656346818663737ull}},
+ {{15888090582416560932ull, 10169552053467409085ull,
+ 7078384693692692098ull, 1231312693637327475ull}},
+ {{14245664560709043156ull, 13101956854919212786ull,
+ 1415676938738538419ull, 246262538727465495ull}},
+ {{10044585047708534696ull, 7757169636128873957ull,
+ 2831353877477076839ull, 492525077454930990ull}},
+ {{1642426021707517776ull, 15514339272257747915ull,
+ 5662707754954153678ull, 985050154909861980ull}},
+ {{11396531648567234525ull, 14170914298677280552ull,
+ 1132541550990830735ull, 197010030981972396ull}},
+ {{4346319223424917434ull, 9895084523645009489ull,
+ 2265083101981661471ull, 394020061963944792ull}},
+ {{8692638446849834867ull, 1343424973580467362ull,
+ 4530166203963322943ull, 788040123927889584ull}},
+ {{16495922948337608267ull, 7647382624199914118ull,
+ 15663428499760305881ull, 157608024785577916ull}},
+ {{14545101822965664917ull, 15294765248399828237ull,
+ 12880112925811060146ull, 315216049571155833ull}},
+ {{10643459572221778217ull, 12142786423090104859ull,
+ 7313481777912568677ull, 630432099142311667ull}},
+ {{2840175070734004818ull, 5838828772470658103ull,
+ 14626963555825137355ull, 1260864198284623334ull}},
+ {{7946732643630621610ull, 15925161013461772913ull,
+ 17682787970132668763ull, 252172839656924666ull}},
+ {{15893465287261243220ull, 13403577953213994210ull,
+ 16918831866555785911ull, 504345679313849333ull}},
+ {{13340186500812934824ull, 8360411832718436805ull,
+ 15390919659402020207ull, 1008691358627698667ull}},
+ {{17425432559130228258ull, 16429477625511328653ull,
+ 10456881561364224687ull, 201738271725539733ull}},
+ {{16404121044550904899ull, 14412211177313105691ull,
+ 2467019049018897759ull, 403476543451079467ull}},
+ {{14361498015392258182ull, 10377678280916659767ull,
+ 4934038098037795519ull, 806953086902158934ull}},
+ {{2872299603078451637ull, 13143582100409062923ull,
+ 15744202878575200396ull, 161390617380431786ull}},
+ {{5744599206156903273ull, 7840420127108574230ull,
+ 13041661683440849177ull, 322781234760863573ull}},
+ {{11489198412313806546ull, 15680840254217148460ull,
+ 7636579293172146738ull, 645562469521727147ull}},
+ {{2297839682462761310ull, 3136168050843429692ull,
+ 8906013488118249994ull, 129112493904345429ull}},
+ {{4595679364925522619ull, 6272336101686859384ull,
+ 17812026976236499988ull, 258224987808690858ull}},
+ {{9191358729851045237ull, 12544672203373718768ull,
+ 17177309878763448360ull, 516449975617381717ull}},
+ {{18382717459702090473ull, 6642600333037885920ull,
+ 15907875683817345105ull, 1032899951234763435ull}},
+ {{3676543491940418095ull, 1328520066607577184ull,
+ 3181575136763469021ull, 206579990246952687ull}},
+ {{7353086983880836190ull, 2657040133215154368ull,
+ 6363150273526938042ull, 413159980493905374ull}},
+ {{14706173967761672379ull, 5314080266430308736ull,
+ 12726300547053876084ull, 826319960987810748ull}},
+ {{14009281237778065446ull, 8441513682769882393ull,
+ 13613306553636506186ull, 165263992197562149ull}},
+ {{9571818401846579275ull, 16883027365539764787ull,
+ 8779869033563460756ull, 330527984395124299ull}},
+ {{696892729983606933ull, 15319310657369977959ull,
+ 17559738067126921513ull, 661055968790248598ull}},
+ {{139378545996721387ull, 6753210946215905915ull,
+ 14579994057651115272ull, 132211193758049719ull}},
+ {{278757091993442774ull, 13506421892431811830ull,
+ 10713244041592678928ull, 264422387516099439ull}},
+ {{557514183986885547ull, 8566099711154072044ull, 2979744009475806241ull,
+ 528844775032198879ull}},
+ {{1115028367973771093ull, 17132199422308144088ull,
+ 5959488018951612482ull, 1057689550064397758ull}},
+ {{11291052117820485189ull, 3426439884461628817ull,
+ 12259944048016053466ull, 211537910012879551ull}},
+ {{4135360161931418761ull, 6852879768923257635ull,
+ 6073144022322555316ull, 423075820025759103ull}},
+ {{8270720323862837521ull, 13705759537846515270ull,
+ 12146288044645110632ull, 846151640051518206ull}},
+ {{12722190508998298474ull, 13809198351795034023ull,
+ 6118606423670932449ull, 169230328010303641ull}},
+ {{6997636944287045332ull, 9171652629880516431ull,
+ 12237212847341864899ull, 338460656020607282ull}},
+ {{13995273888574090663ull, 18343305259761032862ull,
+ 6027681620974178182ull, 676921312041214565ull}},
+ {{17556450036682459426ull, 11047358681436027218ull,
+ 1205536324194835636ull, 135384262408242913ull}},
+ {{16666155999655367235ull, 3647973289162502821ull,
+ 2411072648389671273ull, 270768524816485826ull}},
+ {{14885567925601182854ull, 7295946578325005643ull,
+ 4822145296779342546ull, 541537049632971652ull}},
+ {{11324391777492814091ull, 14591893156650011287ull,
+ 9644290593558685092ull, 1083074099265943304ull}},
+ {{13332924799724293788ull, 6607727446071912580ull,
+ 16686253377679378311ull, 216614819853188660ull}},
+ {{8219105525739035960ull, 13215454892143825161ull,
+ 14925762681649205006ull, 433229639706377321ull}},
+ {{16438211051478071920ull, 7984165710578098706ull,
+ 11404781289588858397ull, 866459279412754643ull}},
+ {{6976991025037524708ull, 1596833142115619741ull,
+ 13349002702143502649ull, 173291855882550928ull}},
+ {{13953982050075049415ull, 3193666284231239482ull,
+ 8251261330577453682ull, 346583711765101857ull}},
+ {{9461220026440547213ull, 6387332568462478965ull,
+ 16502522661154907364ull, 693167423530203714ull}},
+ {{12960290449513840413ull, 12345512957918226762ull,
+ 18057899791198622765ull, 138633484706040742ull}},
+ {{7473836825318129209ull, 6244281842126901909ull,
+ 17669055508687693915ull, 277266969412081485ull}},
+ {{14947673650636258417ull, 12488563684253803818ull,
+ 16891366943665836214ull, 554533938824162971ull}},
+ {{11448603227562965217ull, 6530383294798056021ull,
+ 15335989813622120813ull, 1109067877648325943ull}},
+ {{9668418274996413690ull, 4995425473701521527ull,
+ 14135244406950155132ull, 221813575529665188ull}},
+ {{890092476283275764ull, 9990850947403043055ull, 9823744740190758648ull,
+ 443627151059330377ull}},
+ {{1780184952566551527ull, 1534957821096534494ull,
+ 1200745406671965681ull, 887254302118660755ull}},
+ {{356036990513310306ull, 3996340378961217222ull, 240149081334393136ull,
+ 177450860423732151ull}},
+ {{712073981026620611ull, 7992680757922434444ull, 480298162668786272ull,
+ 354901720847464302ull}},
+ {{1424147962053241222ull, 15985361515844868888ull,
+ 960596325337572544ull, 709803441694928604ull}},
+ {{3974178407152558568ull, 14265118747394704747ull,
+ 14949514524035155801ull, 141960688338985720ull}},
+ {{7948356814305117135ull, 10083493421079857878ull,
+ 11452284974360759987ull, 283921376677971441ull}},
+ {{15896713628610234270ull, 1720242768450164140ull,
+ 4457825875011968359ull, 567842753355942883ull}},
+ {{13346683183510916924ull, 3440485536900328281ull,
+ 8915651750023936718ull, 1135685506711885766ull}},
+ {{2669336636702183385ull, 15445492366347706949ull,
+ 5472479164746697666ull, 227137101342377153ull}},
+ {{5338673273404366770ull, 12444240658985862282ull,
+ 10944958329493395333ull, 454274202684754306ull}},
+ {{10677346546808733539ull, 6441737244262172948ull,
+ 3443172585277239051ull, 908548405369508613ull}},
+ {{9514166938845567355ull, 16045742707820075882ull,
+ 11756680961281178779ull, 181709681073901722ull}},
+ {{581589803981583093ull, 13644741341930600149ull,
+ 5066617848852805943ull, 363419362147803445ull}},
+ {{1163179607963166185ull, 8842738610151648682ull,
+ 10133235697705611887ull, 726838724295606890ull}},
+ {{14990031180560274530ull, 9147245351514150382ull,
+ 2026647139541122377ull, 145367744859121378ull}},
+ {{11533318287410997444ull, 18294490703028300765ull,
+ 4053294279082244754ull, 290735489718242756ull}},
+ {{4619892501112443271ull, 18142237332347049915ull,
+ 8106588558164489509ull, 581470979436485512ull}},
+ {{9239785002224886542ull, 17837730590984548214ull,
+ 16213177116328979019ull, 1162941958872971024ull}},
+ {{9226654629928797955ull, 14635592562422640612ull,
+ 18000030682233437096ull, 232588391774594204ull}},
+ {{6565186148044294ull, 10824441051135729609ull, 17553317290757322577ull,
+ 465176783549188409ull}},
+ {{13130372296088588ull, 3202138028561907602ull, 16659890507805093539ull,
+ 930353567098376819ull}},
+ {{2626074459217718ull, 11708474049938112490ull, 18089373360528660000ull,
+ 186070713419675363ull}},
+ {{5252148918435435ull, 4970204026166673364ull, 17732002647347768385ull,
+ 372141426839350727ull}},
+ {{10504297836870870ull, 9940408052333346728ull, 17017261220985985154ull,
+ 744282853678701455ull}},
+ {{7380798489051194821ull, 16745476869434310638ull,
+ 3403452244197197030ull, 148856570735740291ull}},
+ {{14761596978102389641ull, 15044209665159069660ull,
+ 6806904488394394061ull, 297713141471480582ull}},
+ {{11076449882495227666ull, 11641675256608587705ull,
+ 13613808976788788123ull, 595426282942961164ull}},
+ {{3706155691280903715ull, 4836606439507623795ull,
+ 8780873879868024631ull, 1190852565885922329ull}},
+ {{741231138256180743ull, 967321287901524759ull, 16513570034941246219ull,
+ 238170513177184465ull}},
+ {{1482462276512361486ull, 1934642575803049518ull,
+ 14580395996172940822ull, 476341026354368931ull}},
+ {{2964924553024722972ull, 3869285151606099036ull,
+ 10714047918636330028ull, 952682052708737863ull}},
+ {{7971682540088765241ull, 4463205845063130130ull,
+ 13210856027952996975ull, 190536410541747572ull}},
+ {{15943365080177530482ull, 8926411690126260260ull,
+ 7974967982196442334ull, 381072821083495145ull}},
+ {{13439986086645509348ull, 17852823380252520521ull,
+ 15949935964392884668ull, 762145642166990290ull}},
+ {{17445392476296743163ull, 14638611120276235073ull,
+ 3189987192878576933ull, 152429128433398058ull}},
+ {{16444040878883934709ull, 10830478166842918531ull,
+ 6379974385757153867ull, 304858256866796116ull}},
+ {{14441337684058317801ull, 3214212259976285447ull,
+ 12759948771514307735ull, 609716513733592232ull}},
+ {{10435931294407083986ull, 6428424519952570895ull,
+ 7073153469319063854ull, 1219433027467184465ull}},
+ {{16844581517849058090ull, 16043080162958155471ull,
+ 1414630693863812770ull, 243886605493436893ull}},
+ {{15242418961988564564ull, 13639416252206759327ull,
+ 2829261387727625541ull, 487773210986873786ull}},
+ {{12038093850267577512ull, 8832088430703967039ull,
+ 5658522775455251083ull, 975546421973747572ull}},
+ {{17165014029021156796ull, 1766417686140793407ull,
+ 8510402184574870863ull, 195109284394749514ull}},
+ {{15883283984332761975ull, 3532835372281586815ull,
+ 17020804369149741726ull, 390218568789499028ull}},
+ {{13319823894955972333ull, 7065670744563173631ull,
+ 15594864664589931836ull, 780437137578998057ull}},
+ {{17421360037958835760ull, 12481180593138365695ull,
+ 10497670562401807013ull, 156087427515799611ull}},
+ {{16395976002208119903ull, 6515617112567179775ull,
+ 2548597051094062411ull, 312174855031599223ull}},
+ {{14345207930706688190ull, 13031234225134359551ull,
+ 5097194102188124822ull, 624349710063198446ull}},
+ {{10243671787703824763ull, 7615724376559167487ull,
+ 10194388204376249645ull, 1248699420126396892ull}},
+ {{16806129616508406246ull, 8901842504795654143ull,
+ 9417575270359070575ull, 249739884025279378ull}},
+ {{15165515159307260875ull, 17803685009591308287ull,
+ 388406467008589534ull, 499479768050558757ull}},
+ {{11884286244904970134ull, 17160625945473064959ull,
+ 776812934017179069ull, 998959536101117514ull}},
+ {{9755554878464814674ull, 14500171633320343961ull,
+ 14912757845771077106ull, 199791907220223502ull}},
+ {{1064365683220077731ull, 10553599192931136307ull,
+ 11378771617832602597ull, 399583814440447005ull}},
+ {{2128731366440155461ull, 2660454312152720998ull,
+ 4310799161955653579ull, 799167628880894011ull}},
+ {{11493792717513762062ull, 532090862430544199ull,
+ 4551508647133041039ull, 159833525776178802ull}},
+ {{4540841361317972508ull, 1064181724861088399ull,
+ 9103017294266082078ull, 319667051552357604ull}},
+ {{9081682722635945015ull, 2128363449722176798ull,
+ 18206034588532164156ull, 639334103104715208ull}},
+ {{18163365445271890030ull, 4256726899444353596ull,
+ 17965325103354776696ull, 1278668206209430417ull}},
+ {{18390068348022019299ull, 11919391824114601688ull,
+ 10971762650154775985ull, 255733641241886083ull}},
+ {{18333392622334486982ull, 5392039574519651761ull,
+ 3496781226600000355ull, 511467282483772167ull}},
+ {{18220041170959422347ull, 10784079149039303523ull,
+ 6993562453200000710ull, 1022934564967544334ull}},
+ {{11022705863675705116ull, 16914211088775501997ull,
+ 16156107749607641434ull, 204586912993508866ull}},
+ {{3598667653641858616ull, 15381678103841452379ull,
+ 13865471425505731253ull, 409173825987017733ull}},
+ {{7197335307283717231ull, 12316612133973353142ull,
+ 9284198777301910891ull, 818347651974035467ull}},
+ {{1439467061456743447ull, 13531368871020401598ull,
+ 9235537384944202824ull, 163669530394807093ull}},
+ {{2878934122913486893ull, 8615993668331251580ull, 24330696178854033ull,
+ 327339060789614187ull}},
+ {{5757868245826973785ull, 17231987336662503160ull, 48661392357708066ull,
+ 654678121579228374ull}},
+ {{1151573649165394757ull, 3446397467332500632ull,
+ 14767127537439182906ull, 130935624315845674ull}},
+ {{2303147298330789514ull, 6892794934665001264ull,
+ 11087511001168814196ull, 261871248631691349ull}},
+ {{4606294596661579028ull, 13785589869330002528ull,
+ 3728277928628076776ull, 523742497263382699ull}},
+ {{9212589193323158056ull, 9124435664950453440ull,
+ 7456555857256153553ull, 1047484994526765398ull}},
+ {{5531866653406541935ull, 5514235947732001011ull,
+ 12559357615676961680ull, 209496998905353079ull}},
+ {{11063733306813083869ull, 11028471895464002022ull,
+ 6671971157644371744ull, 418993997810706159ull}},
+ {{3680722539916616122ull, 3610199717218452429ull,
+ 13343942315288743489ull, 837987995621412318ull}},
+ {{4425493322725233548ull, 8100737572927511132ull,
+ 13736834907283479667ull, 167597599124282463ull}},
+ {{8850986645450467095ull, 16201475145855022264ull,
+ 9026925740857407718ull, 335195198248564927ull}},
+ {{17701973290900934190ull, 13956206218000492912ull,
+ 18053851481714815437ull, 670390396497129854ull}},
+ {{14608441102405917808ull, 6480590058342008905ull,
+ 18368165555310604380ull, 134078079299425970ull}},
+ {{10770138131102284000ull, 12961180116684017811ull,
+ 18289587036911657144ull, 268156158598851941ull}},
+ {{3093532188495016383ull, 7475616159658484007ull,
+ 18132430000113762673ull, 536312317197703883ull}},
+ {{6187064376990032765ull, 14951232319316968014ull,
+ 17818115926517973730ull, 1072624634395407767ull}},
+ {{4926761690139916877ull, 10368944093347214249ull,
+ 10942320814787415392ull, 214524926879081553ull}},
+ {{9853523380279833753ull, 2291144112984876882ull,
+ 3437897555865279169ull, 429049853758163107ull}},
+ {{1260302686850115889ull, 4582288225969753765ull,
+ 6875795111730558338ull, 858099707516326214ull}},
+ {{7630758166853843825ull, 8295155274677771399ull,
+ 16132554281313752960ull, 171619941503265242ull}},
+ {{15261516333707687649ull, 16590310549355542798ull,
+ 13818364488917954304ull, 343239883006530485ull}},
+ {{12076288593705823681ull, 14733877025001533981ull,
+ 9189984904126356993ull, 686479766013060971ull}},
+ {{2415257718741164737ull, 17704170663967948089ull,
+ 5527345795567181721ull, 137295953202612194ull}},
+ {{4830515437482329473ull, 16961597254226344562ull,
+ 11054691591134363443ull, 274591906405224388ull}},
+ {{9661030874964658945ull, 15476450434743137508ull,
+ 3662639108559175271ull, 549183812810448777ull}},
+ {{875317676219766273ull, 12506156795776723401ull,
+ 7325278217118350543ull, 1098367625620897554ull}},
+ {{11243109979469684225ull, 9879928988639165326ull,
+ 16222450902391311401ull, 219673525124179510ull}},
+ {{4039475885229816833ull, 1313113903568779037ull,
+ 13998157731073071187ull, 439347050248359021ull}},
+ {{8078951770459633665ull, 2626227807137558074ull,
+ 9549571388436590758ull, 878694100496718043ull}},
+ {{1615790354091926733ull, 4214594376169421938ull,
+ 12977960721913049121ull, 175738820099343608ull}},
+ {{3231580708183853466ull, 8429188752338843876ull,
+ 7509177370116546626ull, 351477640198687217ull}},
+ {{6463161416367706932ull, 16858377504677687752ull,
+ 15018354740233093252ull, 702955280397374434ull}},
+ {{12360678727499272356ull, 7061024315677447873ull,
+ 17761066207014259943ull, 140591056079474886ull}},
+ {{6274613381288993096ull, 14122048631354895747ull,
+ 17075388340318968270ull, 281182112158949773ull}},
+ {{12549226762577986192ull, 9797353189000239878ull,
+ 15704032606928384925ull, 562364224317899547ull}},
+ {{6651709451446420767ull, 1147962304290928141ull,
+ 12961321140147218235ull, 1124728448635799095ull}},
+ {{5019690705031194477ull, 229592460858185628ull, 2592264228029443647ull,
+ 224945689727159819ull}},
+ {{10039381410062388954ull, 459184921716371256ull,
+ 5184528456058887294ull, 449891379454319638ull}},
+ {{1632018746415226291ull, 918369843432742513ull,
+ 10369056912117774588ull, 899782758908639276ull}},
+ {{7705101378766865905ull, 14941069227654189795ull,
+ 5763160197165465240ull, 179956551781727855ull}},
+ {{15410202757533731809ull, 11435394381598827974ull,
+ 11526320394330930481ull, 359913103563455710ull}},
+ {{12373661441357912002ull, 4424044689488104333ull,
+ 4605896714952309347ull, 719826207126911421ull}},
+ {{6164081103013492724ull, 11952855382123351836ull,
+ 4610528157732372192ull, 143965241425382284ull}},
+ {{12328162206026985448ull, 5458966690537152056ull,
+ 9221056315464744385ull, 287930482850764568ull}},
+ {{6209580338344419279ull, 10917933381074304113ull,
+ 18442112630929488770ull, 575860965701529136ull}},
+ {{12419160676688838557ull, 3389122688439056610ull,
+ 18437481188149425925ull, 1151721931403058273ull}},
+ {{13551878579563498681ull, 11745870981913542291ull,
+ 14755542681855616154ull, 230344386280611654ull}},
+ {{8657013085417445746ull, 5044997890117532967ull,
+ 11064341290001680693ull, 460688772561223309ull}},
+ {{17314026170834891492ull, 10089995780235065934ull,
+ 3681938506293809770ull, 921377545122446619ull}},
+ {{14530851678392709268ull, 16775394415014654479ull,
+ 15493782960226403246ull, 184275509024489323ull}},
+ {{10614959283075866920ull, 15104044756319757343ull,
+ 12540821846743254877ull, 368551018048978647ull}},
+ {{2783174492442182224ull, 11761345438929963071ull,
+ 6634899619776958139ull, 737102036097957295ull}},
+ {{556634898488436445ull, 17109664346753633907ull,
+ 1326979923955391627ull, 147420407219591459ull}},
+ {{1113269796976872890ull, 15772584619797716198ull,
+ 2653959847910783255ull, 294840814439182918ull}},
+ {{2226539593953745780ull, 13098425165885880780ull,
+ 5307919695821566511ull, 589681628878365836ull}},
+ {{4453079187907491559ull, 7750106258062209944ull,
+ 10615839391643133023ull, 1179363257756731672ull}},
+ {{15648011096549139605ull, 1550021251612441988ull,
+ 9501865507812447251ull, 235872651551346334ull}},
+ {{12849278119388727593ull, 3100042503224883977ull,
+ 556986941915342886ull, 471745303102692669ull}},
+ {{7251812165067903570ull, 6200085006449767955ull,
+ 1113973883830685772ull, 943490606205385338ull}},
+ {{1450362433013580714ull, 1240017001289953591ull,
+ 11290841220991868124ull, 188698121241077067ull}},
+ {{2900724866027161428ull, 2480034002579907182ull,
+ 4134938368274184632ull, 377396242482154135ull}},
+ {{5801449732054322856ull, 4960068005159814364ull,
+ 8269876736548369264ull, 754792484964308270ull}},
+ {{12228336390636595541ull, 15749408859999604165ull,
+ 1653975347309673852ull, 150958496992861654ull}},
+ {{6009928707563639466ull, 13052073646289656715ull,
+ 3307950694619347705ull, 301916993985723308ull}},
+ {{12019857415127278931ull, 7657403218869761814ull,
+ 6615901389238695411ull, 603833987971446616ull}},
+ {{5592970756545006246ull, 15314806437739523629ull,
+ 13231802778477390822ull, 1207667975942893232ull}},
+ {{12186640595534732219ull, 17820356546515546018ull,
+ 10025058185179298810ull, 241533595188578646ull}},
+ {{5926537117359912822ull, 17193969019321540421ull,
+ 1603372296649046005ull, 483067190377157293ull}},
+ {{11853074234719825644ull, 15941193964933529226ull,
+ 3206744593298092011ull, 966134380754314586ull}},
+ {{13438661291169696099ull, 10566936422470526491ull,
+ 4330697733401528725ull, 193226876150862917ull}},
+ {{8430578508629840581ull, 2687128771231501367ull,
+ 8661395466803057451ull, 386453752301725834ull}},
+ {{16861157017259681161ull, 5374257542463002734ull,
+ 17322790933606114902ull, 772907504603451668ull}},
+ {{18129626662419577525ull, 1074851508492600546ull,
+ 14532604630946953950ull, 154581500920690333ull}},
+ {{17812509251129603434ull, 2149703016985201093ull,
+ 10618465188184356284ull, 309163001841380667ull}},
+ {{17178274428549655252ull, 4299406033970402187ull,
+ 2790186302659160952ull, 618326003682761335ull}},
+ {{15909804783389758888ull, 8598812067940804375ull,
+ 5580372605318321904ull, 1236652007365522670ull}},
+ {{17939356215645593071ull, 16477157672555802167ull,
+ 1116074521063664380ull, 247330401473104534ull}},
+ {{17431968357581634525ull, 14507571271402052719ull,
+ 2232149042127328761ull, 494660802946209068ull}},
+ {{16417192641453717434ull, 10568398469094553823ull,
+ 4464298084254657523ull, 989321605892418136ull}},
+ {{10662136157774564134ull, 16871074952786552057ull,
+ 4582208431592841827ull, 197864321178483627ull}},
+ {{2877528241839576651ull, 15295405831863552499ull,
+ 9164416863185683655ull, 395728642356967254ull}},
+ {{5755056483679153301ull, 12144067590017553382ull,
+ 18328833726371367311ull, 791457284713934508ull}},
+ {{4840360111477740984ull, 17186208776971151969ull,
+ 14733813189500004431ull, 158291456942786901ull}},
+ {{9680720222955481967ull, 15925673480232752322ull,
+ 11020882305290457247ull, 316582913885573803ull}},
+ {{914696372201412318ull, 13404602886755953029ull,
+ 3595020536871362879ull, 633165827771147607ull}},
+ {{1829392744402824635ull, 8362461699802354442ull,
+ 7190041073742725759ull, 1266331655542295214ull}},
+ {{365878548880564927ull, 12740538784186201858ull,
+ 16195403473716186444ull, 253266331108459042ull}},
+ {{731757097761129854ull, 7034333494662852100ull,
+ 13944062873722821273ull, 506532662216918085ull}},
+ {{1463514195522259708ull, 14068666989325704200ull,
+ 9441381673736090930ull, 1013065324433836171ull}},
+ {{3982051653846362265ull, 6503082212607051163ull,
+ 5577625149489128509ull, 202613064886767234ull}},
+ {{7964103307692724530ull, 13006164425214102326ull,
+ 11155250298978257018ull, 405226129773534468ull}},
+ {{15928206615385449059ull, 7565584776718653036ull,
+ 3863756524246962421ull, 810452259547068937ull}},
+ {{17943036582044731105ull, 12581163399569461576ull,
+ 8151448934333213130ull, 162090451909413787ull}},
+ {{17439329090379910594ull, 6715582725429371537ull,
+ 16302897868666426261ull, 324180903818827574ull}},
+ {{16431914107050269571ull, 13431165450858743075ull,
+ 14159051663623300906ull, 648361807637655149ull}},
+ {{3286382821410053915ull, 2686233090171748615ull,
+ 17589205591692301474ull, 129672361527531029ull}},
+ {{6572765642820107829ull, 5372466180343497230ull,
+ 16731667109675051332ull, 259344723055062059ull}},
+ {{13145531285640215657ull, 10744932360686994460ull,
+ 15016590145640551048ull, 518689446110124119ull}},
+ {{7844318497570879697ull, 3043120647664437305ull,
+ 11586436217571550481ull, 1037378892220248239ull}},
+ {{1568863699514175940ull, 608624129532887461ull,
+ 17074682502481951389ull, 207475778444049647ull}},
+ {{3137727399028351879ull, 1217248259065774922ull,
+ 15702620931254351162ull, 414951556888099295ull}},
+ {{6275454798056703758ull, 2434496518131549844ull,
+ 12958497788799150708ull, 829903113776198591ull}},
+ {{12323137403837071722ull, 15244294562593951261ull,
+ 6281048372501740464ull, 165980622755239718ull}},
+ {{6199530733964591827ull, 12041845051478350907ull,
+ 12562096745003480929ull, 331961245510479436ull}},
+ {{12399061467929183653ull, 5636946029247150198ull,
+ 6677449416297410243ull, 663922491020958873ull}},
+ {{17237207552553478024ull, 4816738020591340362ull,
+ 12403536327485213018ull, 132784498204191774ull}},
+ {{16027671031397404431ull, 9633476041182680725ull,
+ 6360328581260874420ull, 265568996408383549ull}},
+ {{13608597989085257245ull, 820208008655809835ull,
+ 12720657162521748841ull, 531137992816767098ull}},
+ {{8770451904460962874ull, 1640416017311619671ull,
+ 6994570251333946066ull, 1062275985633534197ull}},
+ {{16511485639859833868ull, 11396129647688054903ull,
+ 8777611679750609859ull, 212455197126706839ull}},
+ {{14576227206010116120ull, 4345515221666558191ull,
+ 17555223359501219719ull, 424910394253413678ull}},
+ {{10705710338310680623ull, 8691030443333116383ull,
+ 16663702645292887822ull, 849820788506827357ull}},
+ {{9519839697145956771ull, 16495601347634264569ull,
+ 10711438158542398210ull, 169964157701365471ull}},
+ {{592935320582361926ull, 14544458621558977523ull,
+ 2976132243375244805ull, 339928315402730943ull}},
+ {{1185870641164723852ull, 10642173169408403430ull,
+ 5952264486750489611ull, 679856630805461886ull}},
+ {{7615871757716765417ull, 9507132263365501332ull,
+ 4879801712092008245ull, 135971326161092377ull}},
+ {{15231743515433530834ull, 567520453021451048ull,
+ 9759603424184016491ull, 271942652322184754ull}},
+ {{12016742957157510051ull, 1135040906042902097ull,
+ 1072462774658481366ull, 543885304644369509ull}},
+ {{5586741840605468486ull, 2270081812085804195ull,
+ 2144925549316962732ull, 1087770609288739018ull}},
+ {{1117348368121093698ull, 454016362417160839ull,
+ 11497031554089123516ull, 217554121857747803ull}},
+ {{2234696736242187395ull, 908032724834321678ull, 4547319034468695416ull,
+ 435108243715495607ull}},
+ {{4469393472484374789ull, 1816065449668643356ull,
+ 9094638068937390832ull, 870216487430991214ull}},
+ {{8272576323980695605ull, 4052561904675638994ull,
+ 16576322872755119459ull, 174043297486198242ull}},
+ {{16545152647961391209ull, 8105123809351277988ull,
+ 14705901671800687302ull, 348086594972396485ull}},
+ {{14643561222213230801ull, 16210247618702555977ull,
+ 10965059269891822988ull, 696173189944792971ull}},
+ {{6618061059184556484ull, 17999444782708152488ull,
+ 5882360668720274920ull, 139234637988958594ull}},
+ {{13236122118369112967ull, 17552145491706753360ull,
+ 11764721337440549841ull, 278469275977917188ull}},
+ {{8025500163028674317ull, 16657546909703955105ull,
+ 5082698601171548067ull, 556938551955834377ull}},
+ {{16051000326057348634ull, 14868349745698358594ull,
+ 10165397202343096135ull, 1113877103911668754ull}},
+ {{14278246509437200697ull, 17731065208107313011ull,
+ 16790474699436260519ull, 222775420782333750ull}},
+ {{10109748945164849777ull, 17015386342505074407ull,
+ 15134205325162969423ull, 445550841564667501ull}},
+ {{1772753816620147938ull, 15584028611300597199ull,
+ 11821666576616387231ull, 891101683129335003ull}},
+ {{11422597207549760558ull, 17874200981227760732ull,
+ 13432379759549008415ull, 178220336625867000ull}},
+ {{4398450341389969499ull, 17301657888745969849ull,
+ 8418015445388465215ull, 356440673251734001ull}},
+ {{8796900682779938997ull, 16156571703782388082ull,
+ 16836030890776930431ull, 712881346503468002ull}},
+ {{1759380136555987800ull, 14299360784982208586ull,
+ 10745903807639206732ull, 142576269300693600ull}},
+ {{3518760273111975599ull, 10151977496254865556ull,
+ 3045063541568861849ull, 285152538601387201ull}},
+ {{7037520546223951198ull, 1857210918800179496ull,
+ 6090127083137723699ull, 570305077202774402ull}},
+ {{14075041092447902395ull, 3714421837600358992ull,
+ 12180254166275447398ull, 1140610154405548804ull}},
+ {{17572403477457221772ull, 8121581997003892444ull,
+ 17193446092222730772ull, 228122030881109760ull}},
+ {{16698062881204891928ull, 16243163994007784889ull,
+ 15940148110735909928ull, 456244061762219521ull}},
+ {{14949381688700232239ull, 14039583914306018163ull,
+ 13433552147762268241ull, 912488123524439043ull}},
+ {{10368573967223867095ull, 17565312041828844925ull,
+ 13754756873778184617ull, 182497624704887808ull}},
+ {{2290403860738182573ull, 16683880009948138235ull,
+ 9062769673846817619ull, 364995249409775617ull}},
+ {{4580807721476365145ull, 14921015946186724854ull,
+ 18125539347693635239ull, 729990498819551234ull}},
+ {{8294859173779093676ull, 14052249633463075940ull,
+ 18382503128506368340ull, 145998099763910246ull}},
+ {{16589718347558187351ull, 9657755193216600264ull,
+ 18318262183303185065ull, 291996199527820493ull}},
+ {{14732692621406823086ull, 868766312723648913ull,
+ 18189780292896818515ull, 583992399055640987ull}},
+ {{11018641169104094555ull, 1737532625447297827ull,
+ 17932816512084085414ull, 1167984798111281975ull}},
+ {{5893077048562729235ull, 15104901784057100858ull,
+ 3586563302416817082ull, 233596959622256395ull}},
+ {{11786154097125458469ull, 11763059494404650100ull,
+ 7173126604833634165ull, 467193919244512790ull}},
+ {{5125564120541365321ull, 5079374915099748585ull,
+ 14346253209667268331ull, 934387838489025580ull}},
+ {{4714461638850183388ull, 4705223797761860040ull,
+ 2869250641933453666ull, 186877567697805116ull}},
+ {{9428923277700366775ull, 9410447595523720080ull,
+ 5738501283866907332ull, 373755135395610232ull}},
+ {{411102481691181934ull, 374151117337888545ull, 11477002567733814665ull,
+ 747510270791220464ull}},
+ {{14839615755305877680ull, 14832225482435219001ull,
+ 17052795772514404225ull, 149502054158244092ull}},
+ {{11232487436902203743ull, 11217706891160886387ull,
+ 15658847471319256835ull, 299004108316488185ull}},
+ {{4018230800094855870ull, 3988669708612221159ull,
+ 12870950868928962055ull, 598008216632976371ull}},
+ {{8036461600189711740ull, 7977339417224442318ull,
+ 7295157664148372494ull, 1196016433265952743ull}},
+ {{1607292320037942348ull, 8974165512928709110ull,
+ 12527077977055405468ull, 239203286653190548ull}},
+ {{3214584640075884696ull, 17948331025857418220ull,
+ 6607411880401259320ull, 478406573306381097ull}},
+ {{6429169280151769392ull, 17449917978005284824ull,
+ 13214823760802518641ull, 956813146612762194ull}},
+ {{16043229114997995172ull, 3489983595601056964ull,
+ 17400360011128145021ull, 191362629322552438ull}},
+ {{13639714156286438727ull, 6979967191202113929ull,
+ 16353975948546738426ull, 382725258645104877ull}},
+ {{8832684238863325837ull, 13959934382404227859ull,
+ 14261207823383925236ull, 765450517290209755ull}},
+ {{1766536847772665168ull, 6481335691222755895ull,
+ 2852241564676785047ull, 153090103458041951ull}},
+ {{3533073695545330335ull, 12962671382445511790ull,
+ 5704483129353570094ull, 306180206916083902ull}},
+ {{7066147391090660670ull, 7478598691181471964ull,
+ 11408966258707140189ull, 612360413832167804ull}},
+ {{14132294782181321339ull, 14957197382362943928ull,
+ 4371188443704728762ull, 1224720827664335609ull}},
+ {{17583854215403905561ull, 6680788291214499108ull,
+ 15631632947708587045ull, 244944165532867121ull}},
+ {{16720964357098259505ull, 13361576582428998217ull,
+ 12816521821707622474ull, 489888331065734243ull}},
+ {{14995184640486967394ull, 8276409091148444819ull,
+ 7186299569705693333ull, 979776662131468487ull}},
+ {{17756432187065034772ull, 1655281818229688963ull,
+ 8815957543424959313ull, 195955332426293697ull}},
+ {{17066120300420517928ull, 3310563636459377927ull,
+ 17631915086849918626ull, 391910664852587394ull}},
+ {{15685496527131484239ull, 6621127272918755855ull,
+ 16817086099990285636ull, 783821329705174789ull}},
+ {{3137099305426296848ull, 1324225454583751171ull,
+ 18120812478965698420ull, 156764265941034957ull}},
+ {{6274198610852593696ull, 2648450909167502342ull,
+ 17794880884221845224ull, 313528531882069915ull}},
+ {{12548397221705187391ull, 5296901818335004684ull,
+ 17143017694734138832ull, 627057063764139831ull}},
+ {{6650050369700823166ull, 10593803636670009369ull,
+ 15839291315758726048ull, 1254114127528279663ull}},
+ {{1330010073940164634ull, 5808109542075912197ull,
+ 14235904707377476179ull, 250822825505655932ull}},
+ {{2660020147880329267ull, 11616219084151824394ull,
+ 10025065341045400742ull, 501645651011311865ull}},
+ {{5320040295760658533ull, 4785694094594097172ull,
+ 1603386608381249869ull, 1003291302022623731ull}},
+ {{8442705688635952353ull, 957138818918819434ull, 4010026136418160297ull,
+ 200658260404524746ull}},
+ {{16885411377271904706ull, 1914277637837638868ull,
+ 8020052272836320594ull, 401316520809049492ull}},
+ {{15324078680834257796ull, 3828555275675277737ull,
+ 16040104545672641188ull, 802633041618098984ull}},
+ {{17822210995134492852ull, 8144408684618876193ull,
+ 17965416168102169530ull, 160526608323619796ull}},
+ {{17197677916559434088ull, 16288817369237752387ull,
+ 17484088262494787444ull, 321053216647239593ull}},
+ {{15948611759409316560ull, 14130890664765953159ull,
+ 16521432451280023273ull, 642106433294479187ull}},
+ {{17947117610849504605ull, 2826178132953190631ull,
+ 10682984119739825301ull, 128421286658895837ull}},
+ {{17447491147989457594ull, 5652356265906381263ull,
+ 2919224165770098986ull, 256842573317791675ull}},
+ {{16448238222269363571ull, 11304712531812762527ull,
+ 5838448331540197972ull, 513685146635583350ull}},
+ {{14449732370829175526ull, 4162680989915973439ull,
+ 11676896663080395945ull, 1027370293271166700ull}},
+ {{17647341733133476398ull, 832536197983194687ull,
+ 2335379332616079189ull, 205474058654233340ull}},
+ {{16847939392557401180ull, 1665072395966389375ull,
+ 4670758665232158378ull, 410948117308466680ull}},
+ {{15249134711405250744ull, 3330144791932778751ull,
+ 9341517330464316756ull, 821896234616933360ull}},
+ {{10428524571764870796ull, 4355377773128466073ull,
+ 1868303466092863351ull, 164379246923386672ull}},
+ {{2410305069820189975ull, 8710755546256932147ull,
+ 3736606932185726702ull, 328758493846773344ull}},
+ {{4820610139640379949ull, 17421511092513864294ull,
+ 7473213864371453404ull, 657516987693546688ull}},
+ {{4653470842669986313ull, 10862999847986593505ull,
+ 12562689217100021650ull, 131503397538709337ull}},
+ {{9306941685339972626ull, 3279255622263635394ull,
+ 6678634360490491685ull, 263006795077418675ull}},
+ {{167139296970393636ull, 6558511244527270789ull,
+ 13357268720980983370ull, 526013590154837350ull}},
+ {{334278593940787272ull, 13117022489054541578ull,
+ 8267793368252415124ull, 1052027180309674701ull}},
+ {{11134902163013888424ull, 2623404497810908315ull,
+ 5342907488392393348ull, 210405436061934940ull}},
+ {{3823060252318225232ull, 5246808995621816631ull,
+ 10685814976784786696ull, 420810872123869880ull}},
+ {{7646120504636450464ull, 10493617991243633262ull,
+ 2924885879860021776ull, 841621744247739761ull}},
+ {{16286619359894931386ull, 9477421227732547298ull,
+ 4274325990713914678ull, 168324348849547952ull}},
+ {{14126494646080311155ull, 508098381755542981ull,
+ 8548651981427829357ull, 336648697699095904ull}},
+ {{9806245218451070694ull, 1016196763511085963ull,
+ 17097303962855658714ull, 673297395398191808ull}},
+ {{1961249043690214139ull, 7581936982186037839ull,
+ 14487507236796862712ull, 134659479079638361ull}},
+ {{3922498087380428278ull, 15163873964372075678ull,
+ 10528270399884173808ull, 269318958159276723ull}},
+ {{7844996174760856556ull, 11881003855034599740ull,
+ 2609796726058796001ull, 538637916318553447ull}},
+ {{15689992349521713111ull, 5315263636359647864ull,
+ 5219593452117592003ull, 1077275832637106894ull}},
+ {{6827347284646252946ull, 8441750356755750219ull,
+ 15801313949391159693ull, 215455166527421378ull}},
+ {{13654694569292505891ull, 16883500713511500438ull,
+ 13155883825072767770ull, 430910333054842757ull}},
+ {{8862645064875460165ull, 15320257353313449261ull,
+ 7865023576435983925ull, 861820666109685515ull}},
+ {{5461877827717002357ull, 3064051470662689852ull,
+ 1573004715287196785ull, 172364133221937103ull}},
+ {{10923755655434004713ull, 6128102941325379704ull,
+ 3146009430574393570ull, 344728266443874206ull}},
+ {{3400767237158457809ull, 12256205882650759409ull,
+ 6292018861148787140ull, 689456532887748412ull}},
+ {{4369502262173601885ull, 9829938806013972528ull,
+ 8637101401713578074ull, 137891306577549682ull}},
+ {{8739004524347203770ull, 1213133538318393440ull,
+ 17274202803427156149ull, 275782613155099364ull}},
+ {{17478009048694407540ull, 2426267076636786880ull,
+ 16101661533144760682ull, 551565226310198729ull}},
+ {{16509274023679263464ull, 4852534153273573761ull,
+ 13756578992579969748ull, 1103130452620397459ull}},
+ {{14369901248961583663ull, 8349204460138535398ull,
+ 17508711057483635242ull, 220626090524079491ull}},
+ {{10293058424213615709ull, 16698408920277070797ull,
+ 16570678041257718868ull, 441252181048158983ull}},
+ {{2139372774717679802ull, 14950073766844589979ull,
+ 14694612008805886121ull, 882504362096317967ull}},
+ {{7806572184427356607ull, 14058061197594648965ull,
+ 10317620031244997870ull, 176500872419263593ull}},
+ {{15613144368854713214ull, 9669378321479746314ull,
+ 2188495988780444125ull, 353001744838527187ull}},
+ {{12779544663999874811ull, 892012569249941013ull,
+ 4376991977560888251ull, 706003489677054374ull}},
+ {{13623955377025705932ull, 178402513849988202ull,
+ 15632793654479818943ull, 141200697935410874ull}},
+ {{8801166680341860248ull, 356805027699976405ull,
+ 12818843235250086270ull, 282401395870821749ull}},
+ {{17602333360683720495ull, 713610055399952810ull,
+ 7190942396790620924ull, 564802791741643499ull}},
+ {{16757922647657889374ull, 1427220110799905621ull,
+ 14381884793581241848ull, 1129605583483286998ull}},
+ {{10730282159015398522ull, 3974792836901891447ull,
+ 13944423402941979339ull, 225921116696657399ull}},
+ {{3013820244321245427ull, 7949585673803782895ull,
+ 9442102732174407062ull, 451842233393314799ull}},
+ {{6027640488642490853ull, 15899171347607565790ull,
+ 437461390639262508ull, 903684466786629599ull}},
+ {{8584225727212318817ull, 10558531899005333804ull,
+ 14844887537095493794ull, 180736893357325919ull}},
+ {{17168451454424637634ull, 2670319724301115992ull,
+ 11243031000481435973ull, 361473786714651839ull}},
+ {{15890158835139723652ull, 5340639448602231985ull,
+ 4039317927253320330ull, 722947573429303679ull}},
+ {{17935427025995586024ull, 15825523148688087689ull,
+ 15565258844418305358ull, 144589514685860735ull}},
+ {{17424109978281620431ull, 13204302223666623763ull,
+ 12683773615127059101ull, 289179029371721471ull}},
+ {{16401475882853689245ull, 7961860373623695911ull,
+ 6920803156544566587ull, 578358058743442943ull}},
+ {{14356207691997826874ull, 15923720747247391823ull,
+ 13841606313089133174ull, 1156716117486885886ull}},
+ {{13939287982625296345ull, 3184744149449478364ull,
+ 6457670077359736958ull, 231343223497377177ull}},
+ {{9431831891541041073ull, 6369488298898956729ull,
+ 12915340154719473916ull, 462686446994754354ull}},
+ {{416919709372530529ull, 12738976597797913459ull,
+ 7383936235729396216ull, 925372893989508709ull}},
+ {{14840779200842147399ull, 2547795319559582691ull,
+ 16234182506113520536ull, 185074578797901741ull}},
+ {{11234814327974743182ull, 5095590639119165383ull,
+ 14021620938517489456ull, 370149157595803483ull}},
+ {{4022884582239934747ull, 10191181278238330767ull,
+ 9596497803325427296ull, 740298315191606967ull}},
+ {{804576916447986950ull, 13106282699873397123ull,
+ 9297997190148906105ull, 148059663038321393ull}},
+ {{1609153832895973899ull, 7765821326037242630ull, 149250306588260595ull,
+ 296119326076642787ull}},
+ {{3218307665791947798ull, 15531642652074485260ull,
+ 298500613176521190ull, 592238652153285574ull}},
+ {{6436615331583895595ull, 12616541230439418904ull,
+ 597001226353042381ull, 1184477304306571148ull}},
+ {{12355369510542510089ull, 17280703505055525073ull,
+ 11187446689496339445ull, 236895460861314229ull}},
+ {{6263994947375468561ull, 16114662936401498531ull,
+ 3928149305283127275ull, 473790921722628459ull}},
+ {{12527989894750937122ull, 13782581799093445446ull,
+ 7856298610566254551ull, 947581843445256918ull}},
+ {{2505597978950187425ull, 17513911618786330382ull,
+ 12639306166338981879ull, 189516368689051383ull}},
+ {{5011195957900374849ull, 16581079163863109148ull,
+ 6831868258968412143ull, 379032737378102767ull}},
+ {{10022391915800749698ull, 14715414254016666680ull,
+ 13663736517936824287ull, 758065474756205534ull}},
+ {{5693827197902060263ull, 6632431665545243659ull,
+ 17490142562555006150ull, 151613094951241106ull}},
+ {{11387654395804120526ull, 13264863331090487318ull,
+ 16533541051400460684ull, 303226189902482213ull}},
+ {{4328564717898689435ull, 8082982588471423021ull,
+ 14620338029091369753ull, 606452379804964427ull}},
+ {{8657129435797378870ull, 16165965176942846042ull,
+ 10793931984473187890ull, 1212904759609928855ull}},
+ {{9110123516643296421ull, 3233193035388569208ull,
+ 2158786396894637578ull, 242580951921985771ull}},
+ {{18220247033286592841ull, 6466386070777138416ull,
+ 4317572793789275156ull, 485161903843971542ull}},
+ {{17993749992863634066ull, 12932772141554276833ull,
+ 8635145587578550312ull, 970323807687943084ull}},
+ {{18356145257540368106ull, 6275903243052765689ull,
+ 16484424376483351355ull, 194064761537588616ull}},
+ {{18265546441371184596ull, 12551806486105531379ull,
+ 14522104679257151094ull, 388129523075177233ull}},
+ {{18084348809032817576ull, 6656868898501511143ull,
+ 10597465284804750573ull, 776259046150354467ull}},
+ {{14684916206032294485ull, 1331373779700302228ull,
+ 9498190686444770761ull, 155251809230070893ull}},
+ {{10923088338355037354ull, 2662747559400604457ull,
+ 549637299179989906ull, 310503618460141787ull}},
+ {{3399432603000523091ull, 5325495118801208915ull,
+ 1099274598359979812ull, 621007236920283574ull}},
+ {{6798865206001046182ull, 10650990237602417830ull,
+ 2198549196719959624ull, 1242014473840567148ull}},
+ {{8738470670684029883ull, 9508895677004304212ull,
+ 11507756283569722894ull, 248402894768113429ull}},
+ {{17476941341368059766ull, 571047280299056808ull,
+ 4568768493429894173ull, 496805789536226859ull}},
+ {{16507138609026567915ull, 1142094560598113617ull,
+ 9137536986859788346ull, 993611579072453718ull}},
+ {{6990776536547223907ull, 14985814171087264016ull,
+ 12895553841597688638ull, 198722315814490743ull}},
+ {{13981553073094447813ull, 11524884268464976416ull,
+ 7344363609485825661ull, 397444631628981487ull}},
+ {{9516362072479344009ull, 4603024463220401217ull,
+ 14688727218971651323ull, 794889263257962974ull}},
+ {{16660667673463510095ull, 8299302522127900889ull,
+ 17695140702761971557ull, 158977852651592594ull}},
+ {{14874591273217468573ull, 16598605044255801779ull,
+ 16943537331814391498ull, 317955705303185189ull}},
+ {{11302438472725385530ull, 14750466014802051943ull,
+ 15440330589919231381ull, 635911410606370379ull}},
+ {{4158132871741219444ull, 11054187955894552271ull,
+ 12433917106128911147ull, 1271822821212740759ull}},
+ {{8210324203832064536ull, 5900186405920820777ull,
+ 17244178680193423522ull, 254364564242548151ull}},
+ {{16420648407664129071ull, 11800372811841641554ull,
+ 16041613286677295428ull, 508729128485096303ull}},
+ {{14394552741618706525ull, 5154001549973731493ull,
+ 13636482499645039241ull, 1017458256970192607ull}},
+ {{6568259363065651629ull, 12098846754220477268ull,
+ 10105994129412828494ull, 203491651394038521ull}},
+ {{13136518726131303257ull, 5750949434731402920ull,
+ 1765244185116105373ull, 406983302788077043ull}},
+ {{7826293378553054897ull, 11501898869462805841ull,
+ 3530488370232210746ull, 813966605576154086ull}},
+ {{12633305119936341949ull, 9679077403376381814ull,
+ 4395446488788352472ull, 162793321115230817ull}},
+ {{6819866166163132282ull, 911410733043212013ull, 8790892977576704945ull,
+ 325586642230461634ull}},
+ {{13639732332326264564ull, 1822821466086424026ull,
+ 17581785955153409890ull, 651173284460923268ull}},
+ {{17485341725432894206ull, 11432610737443015774ull,
+ 14584403635256412947ull, 130234656892184653ull}},
+ {{16523939377156236796ull, 4418477401176479933ull,
+ 10722063196803274279ull, 260469313784369307ull}},
+ {{14601134680602921975ull, 8836954802352959867ull,
+ 2997382319896996942ull, 520938627568738615ull}},
+ {{10755525287496292333ull, 17673909604705919735ull,
+ 5994764639793993884ull, 1041877255137477230ull}},
+ {{16908500316466899760ull, 18292177179908825239ull,
+ 1198952927958798776ull, 208375451027495446ull}},
+ {{15370256559224247903ull, 18137610286108098863ull,
+ 2397905855917597553ull, 416750902054990892ull}},
+ {{12293769044738944189ull, 17828476498506646111ull,
+ 4795811711835195107ull, 833501804109981784ull}},
+ {{9837451438431609485ull, 7255044114443239545ull,
+ 15716557601334680314ull, 166700360821996356ull}},
+ {{1228158803153667353ull, 14510088228886479091ull,
+ 12986371128959809012ull, 333400721643992713ull}},
+ {{2456317606307334705ull, 10573432384063406566ull,
+ 7525998184210066409ull, 666801443287985427ull}},
+ {{7869961150745287588ull, 5804035291554591636ull,
+ 8883897266325833928ull, 133360288657597085ull}},
+ {{15739922301490575175ull, 11608070583109183272ull,
+ 17767794532651667856ull, 266720577315194170ull}},
+ {{13033100529271598734ull, 4769397092508814929ull,
+ 17088844991593784097ull, 533441154630388341ull}},
+ {{7619456984833645851ull, 9538794185017629859ull,
+ 15730945909478016578ull, 1066882309260776683ull}},
+ {{1523891396966729171ull, 5597107651745436295ull,
+ 14214235626121334285ull, 213376461852155336ull}},
+ {{3047782793933458341ull, 11194215303490872590ull,
+ 9981727178533116954ull, 426752923704310673ull}},
+ {{6095565587866916681ull, 3941686533272193564ull,
+ 1516710283356682293ull, 853505847408621347ull}},
+ {{15976508376541024629ull, 788337306654438712ull,
+ 7682039686155157105ull, 170701169481724269ull}},
+ {{13506272679372497642ull, 1576674613308877425ull,
+ 15364079372310314210ull, 341402338963448538ull}},
+ {{8565801285035443668ull, 3153349226617754851ull,
+ 12281414670911076804ull, 682804677926897077ull}},
+ {{9091857886490909380ull, 4320018660065461293ull,
+ 9834980563666036007ull, 136560935585379415ull}},
+ {{18183715772981818760ull, 8640037320130922586ull,
+ 1223217053622520398ull, 273121871170758831ull}},
+ {{17920687472254085904ull, 17280074640261845173ull,
+ 2446434107245040796ull, 546243742341517662ull}},
+ {{17394630870798620192ull, 16113405206814138731ull,
+ 4892868214490081593ull, 1092487484683035324ull}},
+ {{14546972618385455008ull, 10601378670846648392ull,
+ 15735968901865657611ull, 218497496936607064ull}},
+ {{10647201163061358400ull, 2756013267983745169ull,
+ 13025193730021763607ull, 436994993873214129ull}},
+ {{2847658252413165184ull, 5512026535967490339ull,
+ 7603643386333975598ull, 873989987746428259ull}},
+ {{4258880465224543360ull, 8481102936677318714ull,
+ 16278123936234436412ull, 174797997549285651ull}},
+ {{8517760930449086720ull, 16962205873354637428ull,
+ 14109503798759321208ull, 349595995098571303ull}},
+ {{17035521860898173440ull, 15477667672999723240ull,
+ 9772263523809090801ull, 699191990197142607ull}},
+ {{14475150816405365658ull, 14163579978825675617ull,
+ 9333150334245638806ull, 139838398039428521ull}},
+ {{10503557559101179700ull, 9880415883941799619ull,
+ 219556594781725997ull, 279676796078857043ull}},
+ {{2560371044492807783ull, 1314087694174047623ull, 439113189563451995ull,
+ 559353592157714086ull}},
+ {{5120742088985615565ull, 2628175388348095246ull, 878226379126903990ull,
+ 1118707184315428172ull}},
+ {{12092194862022854083ull, 7904332707153439695ull,
+ 7554342905309201444ull, 223741436863085634ull}},
+ {{5737645650336156549ull, 15808665414306879391ull,
+ 15108685810618402888ull, 447482873726171268ull}},
+ {{11475291300672313098ull, 13170586754904207166ull,
+ 11770627547527254161ull, 894965747452342537ull}},
+ {{17052453519102103913ull, 13702163795206572402ull,
+ 9732823138989271478ull, 178993149490468507ull}},
+ {{15658162964494656209ull, 8957583516703593189ull,
+ 1018902204268991341ull, 357986298980937015ull}},
+ {{12869581855279760802ull, 17915167033407186379ull,
+ 2037804408537982682ull, 715972597961874030ull}},
+ {{6263265185797862484ull, 10961731036165257922ull,
+ 407560881707596536ull, 143194519592374806ull}},
+ {{12526530371595724968ull, 3476717998620964228ull,
+ 815121763415193073ull, 286389039184749612ull}},
+ {{6606316669481898319ull, 6953435997241928457ull,
+ 1630243526830386146ull, 572778078369499224ull}},
+ {{13212633338963796637ull, 13906871994483856914ull,
+ 3260487053660772292ull, 1145556156738998448ull}},
+ {{17399921926760400621ull, 2781374398896771382ull,
+ 11720143854957885428ull, 229111231347799689ull}},
+ {{16353099779811249625ull, 5562748797793542765ull,
+ 4993543636206219240ull, 458222462695599379ull}},
+ {{14259455485912947633ull, 11125497595587085531ull,
+ 9987087272412438480ull, 916444925391198758ull}},
+ {{17609286356150230820ull, 13293145963343148075ull,
+ 13065463898708218665ull, 183288985078239751ull}},
+ {{16771828638590910023ull, 8139547852976744535ull,
+ 7684183723706885715ull, 366577970156479503ull}},
+ {{15096913203472268429ull, 16279095705953489071ull,
+ 15368367447413771430ull, 733155940312959006ull}},
+ {{10398080270178274333ull, 6945167955932608137ull,
+ 6763022304224664609ull, 146631188062591801ull}},
+ {{2349416466646997049ull, 13890335911865216275ull,
+ 13526044608449329218ull, 293262376125183602ull}},
+ {{4698832933293994097ull, 9333927750020880934ull,
+ 8605345143189106821ull, 586524752250367205ull}},
+ {{9397665866587988194ull, 221111426332210252ull,
+ 17210690286378213643ull, 1173049504500734410ull}},
+ {{1879533173317597639ull, 11112268729492173020ull,
+ 3442138057275642728ull, 234609900900146882ull}},
+ {{3759066346635195278ull, 3777793385274794424ull,
+ 6884276114551285457ull, 469219801800293764ull}},
+ {{7518132693270390555ull, 7555586770549588848ull,
+ 13768552229102570914ull, 938439603600587528ull}},
+ {{1503626538654078111ull, 8889814983593738416ull,
+ 13821756890046245152ull, 187687920720117505ull}},
+ {{3007253077308156222ull, 17779629967187476832ull,
+ 9196769706382938688ull, 375375841440235011ull}},
+ {{6014506154616312444ull, 17112515860665402048ull,
+ 18393539412765877377ull, 750751682880470022ull}},
+ {{8581598860407083136ull, 18179898431100721702ull,
+ 11057405512036996121ull, 150150336576094004ull}},
+ {{17163197720814166271ull, 17913052788491891788ull,
+ 3668066950364440627ull, 300300673152188009ull}},
+ {{15879651367918780925ull, 17379361503274231961ull,
+ 7336133900728881255ull, 600601346304376018ull}},
+ {{13312558662128010234ull, 16311978932838912307ull,
+ 14672267801457762511ull, 1201202692608752036ull}},
+ {{17419906991393243340ull, 10641093416051603107ull,
+ 6623802375033462825ull, 240240538521750407ull}},
+ {{16393069909076935063ull, 2835442758393654599ull,
+ 13247604750066925651ull, 480481077043500814ull}},
+ {{14339395744444318510ull, 5670885516787309199ull,
+ 8048465426424299686ull, 960962154087001629ull}},
+ {{17625274407856504995ull, 1134177103357461839ull,
+ 16367088344252501230ull, 192192430817400325ull}},
+ {{16803804742003458374ull, 2268354206714923679ull,
+ 14287432614795450844ull, 384384861634800651ull}},
+ {{15160865410297365131ull, 4536708413429847359ull,
+ 10128121155881350072ull, 768769723269601303ull}},
+ {{17789568341027114319ull, 907341682685969471ull,
+ 13093670675402000984ull, 153753944653920260ull}},
+ {{17132392608344677022ull, 1814683365371938943ull,
+ 7740597277094450352ull, 307507889307840521ull}},
+ {{15818041142979802428ull, 3629366730743877887ull,
+ 15481194554188900704ull, 615015778615681042ull}},
+ {{13189338212250053240ull, 7258733461487755775ull,
+ 12515645034668249792ull, 1230031557231362085ull}},
+ {{10016565271933831295ull, 8830444321781371801ull,
+ 2503129006933649958ull, 246006311446272417ull}},
+ {{1586386470158110973ull, 17660888643562743603ull,
+ 5006258013867299916ull, 492012622892544834ull}},
+ {{3172772940316221946ull, 16875033213415935590ull,
+ 10012516027734599833ull, 984025245785089668ull}},
+ {{4323903402805154713ull, 7064355457425097441ull,
+ 13070549649772650936ull, 196805049157017933ull}},
+ {{8647806805610309425ull, 14128710914850194882ull,
+ 7694355225835750256ull, 393610098314035867ull}},
+ {{17295613611220618850ull, 9810677755990838148ull,
+ 15388710451671500513ull, 787220196628071734ull}},
+ {{3459122722244123770ull, 9340833180681988276ull,
+ 17835137349301941395ull, 157444039325614346ull}},
+ {{6918245444488247540ull, 234922287654424936ull,
+ 17223530624894331175ull, 314888078651228693ull}},
+ {{13836490888976495080ull, 469844575308849872ull,
+ 16000317176079110734ull, 629776157302457387ull}},
+ {{9226237704243438543ull, 939689150617699745ull,
+ 13553890278448669852ull, 1259552314604914775ull}},
+ {{9223945170332508355ull, 7566635459607360595ull,
+ 2710778055689733970ull, 251910462920982955ull}},
+ {{1146266955465094ull, 15133270919214721191ull, 5421556111379467940ull,
+ 503820925841965910ull}},
+ {{2292533910930188ull, 11819797764719890766ull, 10843112222758935881ull,
+ 1007641851683931820ull}},
+ {{7379156136266006684ull, 6053308367685888476ull,
+ 2168622444551787176ull, 201528370336786364ull}},
+ {{14758312272532013368ull, 12106616735371776952ull,
+ 4337244889103574352ull, 403056740673572728ull}},
+ {{11069880471354475120ull, 5766489397034002289ull,
+ 8674489778207148705ull, 806113481347145456ull}},
+ {{2213976094270895024ull, 4842646694148710781ull,
+ 5424246770383340064ull, 161222696269429091ull}},
+ {{4427952188541790048ull, 9685293388297421562ull,
+ 10848493540766680128ull, 322445392538858182ull}},
+ {{8855904377083580096ull, 923842702885291508ull, 3250243007823808641ull,
+ 644890785077716365ull}},
+ {{16528576134384357312ull, 3874117355318968624ull,
+ 650048601564761728ull, 128978157015543273ull}},
+ {{14610408195059163008ull, 7748234710637937249ull,
+ 1300097203129523456ull, 257956314031086546ull}},
+ {{10774072316408774400ull, 15496469421275874499ull,
+ 2600194406259046912ull, 515912628062173092ull}},
+ {{3101400559107997184ull, 12546194768842197383ull,
+ 5200388812518093825ull, 1031825256124346184ull}},
+ {{7998977741305420084ull, 17266634212736080769ull,
+ 15797473021471260057ull, 206365051224869236ull}},
+ {{15997955482610840167ull, 16086524351762609922ull,
+ 13148201969232968499ull, 412730102449738473ull}},
+ {{13549166891512128717ull, 13726304629815668229ull,
+ 7849659864756385383ull, 825460204899476947ull}},
+ {{17467228637270067037ull, 2745260925963133645ull,
+ 8948629602435097723ull, 165092040979895389ull}},
+ {{16487713200830582457ull, 5490521851926267291ull,
+ 17897259204870195446ull, 330184081959790778ull}},
+ {{14528682327951613297ull, 10981043703852534583ull,
+ 17347774336030839276ull, 660368163919581557ull}},
+ {{6595085280332232983ull, 13264255184996237886ull,
+ 10848252496689988501ull, 132073632783916311ull}},
+ {{13190170560664465966ull, 8081766296282924156ull,
+ 3249760919670425387ull, 264147265567832623ull}},
+ {{7933597047619380315ull, 16163532592565848313ull,
+ 6499521839340850774ull, 528294531135665246ull}},
+ {{15867194095238760629ull, 13880321111422145010ull,
+ 12999043678681701549ull, 1056589062271330492ull}},
+ {{6862787633789662449ull, 6465413037026339325ull,
+ 9978506365220160956ull, 211317812454266098ull}},
+ {{13725575267579324898ull, 12930826074052678650ull,
+ 1510268656730770296ull, 422635624908532197ull}},
+ {{9004406461449098180ull, 7414908074395805685ull,
+ 3020537313461540593ull, 845271249817064394ull}},
+ {{9179578921773640283ull, 8861679244362981783ull,
+ 15361502721659949411ull, 169054249963412878ull}},
+ {{18359157843547280565ull, 17723358488725963566ull,
+ 12276261369610347206ull, 338108499926825757ull}},
+ {{18271571613385009514ull, 16999972903742375517ull,
+ 6105778665511142797ull, 676216999853651515ull}},
+ {{18411709581644643196ull, 10778692210232295749ull,
+ 1221155733102228559ull, 135243399970730303ull}},
+ {{18376675089579734775ull, 3110640346755039883ull,
+ 2442311466204457119ull, 270486799941460606ull}},
+ {{18306606105449917934ull, 6221280693510079767ull,
+ 4884622932408914238ull, 540973599882921212ull}},
+ {{18166468137190284252ull, 12442561387020159535ull,
+ 9769245864817828476ull, 1081947199765842424ull}},
+ {{3633293627438056851ull, 2488512277404031907ull,
+ 16711244431931206988ull, 216389439953168484ull}},
+ {{7266587254876113701ull, 4977024554808063814ull,
+ 14975744790152862360ull, 432778879906336969ull}},
+ {{14533174509752227401ull, 9954049109616127628ull,
+ 11504745506596173104ull, 865557759812673939ull}},
+ {{6595983716692355804ull, 13058856266148956495ull,
+ 17058344360286875913ull, 173111551962534787ull}},
+ {{13191967433384711607ull, 7670968458588361374ull,
+ 15669944646864200211ull, 346223103925069575ull}},
+ {{7937190793059871598ull, 15341936917176722749ull,
+ 12893145220018848806ull, 692446207850139151ull}},
+ {{5276786973353884643ull, 10447085012919165196ull,
+ 6267977858745680084ull, 138489241570027830ull}},
+ {{10553573946707769286ull, 2447425952128778776ull,
+ 12535955717491360169ull, 276978483140055660ull}},
+ {{2660403819705986955ull, 4894851904257557553ull,
+ 6625167361273168722ull, 553956966280111321ull}},
+ {{5320807639411973910ull, 9789703808515115106ull,
+ 13250334722546337444ull, 1107913932560222642ull}},
+ {{8442859157366215429ull, 5647289576444933344ull,
+ 10028764573993088135ull, 221582786512044528ull}},
+ {{16885718314732430857ull, 11294579152889866688ull,
+ 1610785074276624654ull, 443165573024089057ull}},
+ {{15324692555755310098ull, 4142414232070181761ull,
+ 3221570148553249309ull, 886331146048178114ull}},
+ {{17822333770118703313ull, 11896529290639767321ull,
+ 15401709288678291154ull, 177266229209635622ull}},
+ {{17197923466527855009ull, 5346314507569983027ull,
+ 12356674503647030693ull, 354532458419271245ull}},
+ {{15949102859346158402ull, 10692629015139966055ull,
+ 6266604933584509770ull, 709064916838542491ull}},
+ {{6879169386611142004ull, 5827874617769903534ull,
+ 4942669801458812277ull, 141812983367708498ull}},
+ {{13758338773222284007ull, 11655749235539807068ull,
+ 9885339602917624554ull, 283625966735416996ull}},
+ {{9069933472735016398ull, 4864754397370062521ull,
+ 1323935132125697493ull, 567251933470833993ull}},
+ {{18139866945470032796ull, 9729508794740125042ull,
+ 2647870264251394986ull, 1134503866941667986ull}},
+ {{18385368648061647852ull, 9324599388431845654ull,
+ 4218922867592189320ull, 226900773388333597ull}},
+ {{18323993222413744088ull, 202454703154139693ull,
+ 8437845735184378641ull, 453801546776667194ull}},
+ {{18201242371117936560ull, 404909406308279387ull,
+ 16875691470368757282ull, 907603093553334388ull}},
+ {{11018946103707407959ull, 80981881261655877ull,
+ 14443184738299482426ull, 181520618710666877ull}},
+ {{3591148133705264301ull, 161963762523311755ull,
+ 10439625402889413236ull, 363041237421333755ull}},
+ {{7182296267410528602ull, 323927525046623510ull, 2432506732069274856ull,
+ 726082474842667511ull}},
+ {{8815156882965926367ull, 7443483134493145348ull,
+ 4175850161155765294ull, 145216494968533502ull}},
+ {{17630313765931852734ull, 14886966268986290696ull,
+ 8351700322311530588ull, 290432989937067004ull}},
+ {{16813883458154153851ull, 11327188464263029777ull,
+ 16703400644623061177ull, 580865979874134008ull}},
+ {{15181022842598756086ull, 4207632854816507939ull,
+ 14960057215536570739ull, 1161731959748268017ull}},
+ {{3036204568519751218ull, 4530875385705211911ull,
+ 10370709072591134794ull, 232346391949653603ull}},
+ {{6072409137039502435ull, 9061750771410423822ull,
+ 2294674071472717972ull, 464692783899307207ull}},
+ {{12144818274079004869ull, 18123501542820847644ull,
+ 4589348142945435944ull, 929385567798614414ull}},
+ {{9807661284299621621ull, 14692746752789900498ull,
+ 15675264887556728481ull, 185877113559722882ull}},
+ {{1168578494889691625ull, 10938749431870249381ull,
+ 12903785701403905347ull, 371754227119445765ull}},
+ {{2337156989779383249ull, 3430754790030947146ull,
+ 7360827329098259079ull, 743508454238891531ull}},
+ {{4156780212697786973ull, 686150958006189429ull, 5161514280561562139ull,
+ 148701690847778306ull}},
+ {{8313560425395573946ull, 1372301916012378858ull,
+ 10323028561123124278ull, 297403381695556612ull}},
+ {{16627120850791147892ull, 2744603832024757716ull,
+ 2199313048536696940ull, 594806763391113225ull}},
+ {{14807497627872744167ull, 5489207664049515433ull,
+ 4398626097073393880ull, 1189613526782226450ull}},
+ {{14029545969800279803ull, 1097841532809903086ull,
+ 879725219414678776ull, 237922705356445290ull}},
+ {{9612347865891007990ull, 2195683065619806173ull,
+ 1759450438829357552ull, 475845410712890580ull}},
+ {{777951658072464364ull, 4391366131239612347ull, 3518900877658715104ull,
+ 951690821425781160ull}},
+ {{3844939146356403196ull, 15635668485215563762ull,
+ 703780175531743020ull, 190338164285156232ull}},
+ {{7689878292712806392ull, 12824592896721575908ull,
+ 1407560351063486041ull, 380676328570312464ull}},
+ {{15379756585425612784ull, 7202441719733600200ull,
+ 2815120702126972083ull, 761352657140624928ull}},
+ {{6765300131827032880ull, 5129837158688630363ull,
+ 11631070584651125386ull, 152270531428124985ull}},
+ {{13530600263654065760ull, 10259674317377260726ull,
+ 4815397095592699156ull, 304541062856249971ull}},
+ {{8614456453598579904ull, 2072604561044969837ull,
+ 9630794191185398313ull, 609082125712499942ull}},
+ {{17228912907197159808ull, 4145209122089939674ull,
+ 814844308661245010ull, 1218164251424999885ull}},
+ {{18203177840407073255ull, 829041824417987934ull, 162968861732249002ull,
+ 243632850284999977ull}},
+ {{17959611607104594893ull, 1658083648835975869ull,
+ 325937723464498004ull, 487265700569999954ull}},
+ {{17472479140499638170ull, 3316167297671951739ull,
+ 651875446928996008ull, 974531401139999908ull}},
+ {{3494495828099927634ull, 4352582274276300671ull,
+ 11198421533611530171ull, 194906280227999981ull}},
+ {{6988991656199855268ull, 8705164548552601342ull,
+ 3950098993513508726ull, 389812560455999963ull}},
+ {{13977983312399710536ull, 17410329097105202684ull,
+ 7900197987027017452ull, 779625120911999926ull}},
+ {{10174294291963762754ull, 14550112263646771506ull,
+ 5269388412147313813ull, 155925024182399985ull}},
+ {{1901844510217973891ull, 10653480453583991397ull,
+ 10538776824294627627ull, 311850048364799970ull}},
+ {{3803689020435947782ull, 2860216833458431178ull,
+ 2630809574879703639ull, 623700096729599941ull}},
+ {{7607378040871895564ull, 5720433666916862356ull,
+ 5261619149759407278ull, 1247400193459199882ull}},
+ {{5210824422916289436ull, 1144086733383372471ull,
+ 8431021459435702102ull, 249480038691839976ull}},
+ {{10421648845832578872ull, 2288173466766744942ull,
+ 16862042918871404204ull, 498960077383679952ull}},
+ {{2396553617955606128ull, 4576346933533489885ull,
+ 15277341764033256792ull, 997920154767359905ull}},
+ {{7858008353074941872ull, 8293967016190518623ull,
+ 3055468352806651358ull, 199584030953471981ull}},
+ {{15716016706149883744ull, 16587934032381037246ull,
+ 6110936705613302716ull, 399168061906943962ull}},
+ {{12985289338590215872ull, 14729123991052522877ull,
+ 12221873411226605433ull, 798336123813887924ull}},
+ {{17354453126685684468ull, 10324522427694325221ull,
+ 17201769941212962379ull, 159667224762777584ull}},
+ {{16262162179661817319ull, 2202300781679098827ull,
+ 15956795808716373143ull, 319334449525555169ull}},
+ {{14077580285614083021ull, 4404601563358197655ull,
+ 13466847543723194670ull, 638668899051110339ull}},
+ {{9708416497518614426ull, 8809203126716395311ull,
+ 8486951013736837724ull, 1277337798102220679ull}},
+ {{16699078558471364178ull, 12829887069569010031ull,
+ 16454785461715008837ull, 255467559620444135ull}},
+ {{14951413043233176740ull, 7213030065428468447ull,
+ 14462826849720466059ull, 510935119240888271ull}},
+ {{11456082012756801864ull, 14426060130856936895ull,
+ 10478909625731380502ull, 1021870238481776543ull}},
+ {{2291216402551360373ull, 2885212026171387379ull,
+ 13163828369372007070ull, 204374047696355308ull}},
+ {{4582432805102720746ull, 5770424052342774758ull,
+ 7880912665034462524ull, 408748095392710617ull}},
+ {{9164865610205441491ull, 11540848104685549516ull,
+ 15761825330068925048ull, 817496190785421234ull}},
+ {{12901019566266819268ull, 9686867250420930549ull,
+ 17909760324981426302ull, 163499238157084246ull}},
+ {{7355295058824086920ull, 926990427132309483ull,
+ 17372776576253300989ull, 326998476314168493ull}},
+ {{14710590117648173840ull, 1853980854264618966ull,
+ 16298809078797050362ull, 653996952628336987ull}},
+ {{2942118023529634768ull, 15128191429820565086ull,
+ 10638459445243230718ull, 130799390525667397ull}},
+ {{5884236047059269536ull, 11809638785931578556ull,
+ 2830174816776909821ull, 261598781051334795ull}},
+ {{11768472094118539072ull, 5172533498153605496ull,
+ 5660349633553819643ull, 523197562102669590ull}},
+ {{5090200114527526527ull, 10345066996307210993ull,
+ 11320699267107639286ull, 1046395124205339180ull}},
+ {{15775435281873146599ull, 5758362214003352521ull,
+ 2264139853421527857ull, 209279024841067836ull}},
+ {{13104126490036741581ull, 11516724428006705043ull,
+ 4528279706843055714ull, 418558049682135672ull}},
+ {{7761508906363931545ull, 4586704782303858471ull,
+ 9056559413686111429ull, 837116099364271344ull}},
+ {{16309697040240427602ull, 11985387400686502663ull,
+ 16568707141704863578ull, 167423219872854268ull}},
+ {{14172650006771303588ull, 5524030727663453711ull,
+ 14690670209700175541ull, 334846439745708537ull}},
+ {{9898555939833055559ull, 11048061455326907423ull,
+ 10934596345690799466ull, 669692879491417075ull}},
+ {{16737106446934252405ull, 5898961105807291807ull,
+ 2186919269138159893ull, 133938575898283415ull}},
+ {{15027468820158953194ull, 11797922211614583615ull,
+ 4373838538276319786ull, 267877151796566830ull}},
+ {{11608193566608354771ull, 5149100349519615615ull,
+ 8747677076552639573ull, 535754303593133660ull}},
+ {{4769643059507157925ull, 10298200699039231231ull,
+ 17495354153105279146ull, 1071508607186267320ull}},
+ {{8332626241385252232ull, 5748988954549756569ull,
+ 3499070830621055829ull, 214301721437253464ull}},
+ {{16665252482770504463ull, 11497977909099513138ull,
+ 6998141661242111658ull, 428603442874506928ull}},
+ {{14883760891831457310ull, 4549211744489474661ull,
+ 13996283322484223317ull, 857206885749013856ull}},
+ {{17734147437333932755ull, 11977888793123625901ull,
+ 6488605479238754986ull, 171441377149802771ull}},
+ {{17021550800958313894ull, 5509033512537700187ull,
+ 12977210958477509973ull, 342882754299605542ull}},
+ {{15596357528207076171ull, 11018067025075400375ull,
+ 7507677843245468330ull, 685765508599211085ull}},
+ {{3119271505641415235ull, 2203613405015080075ull,
+ 1501535568649093666ull, 137153101719842217ull}},
+ {{6238543011282830469ull, 4407226810030160150ull,
+ 3003071137298187332ull, 274306203439684434ull}},
+ {{12477086022565660937ull, 8814453620060320300ull,
+ 6006142274596374664ull, 548612406879368868ull}},
+ {{6507427971421770257ull, 17628907240120640601ull,
+ 12012284549192749328ull, 1097224813758737736ull}},
+ {{1301485594284354052ull, 18283176706991769413ull,
+ 6091805724580460188ull, 219444962751747547ull}},
+ {{2602971188568708103ull, 18119609340273987210ull,
+ 12183611449160920377ull, 438889925503495094ull}},
+ {{5205942377137416206ull, 17792474606838422804ull,
+ 5920478824612289139ull, 877779851006990189ull}},
+ {{8419886104911303888ull, 14626541365593415530ull,
+ 15941491023890099120ull, 175555970201398037ull}},
+ {{16839772209822607775ull, 10806338657477279444ull,
+ 13436237974070646625ull, 351111940402796075ull}},
+ {{15232800345935663934ull, 3165933241245007273ull,
+ 8425731874431741635ull, 702223880805592151ull}},
+ {{17803955328154774080ull, 4322535462990911777ull,
+ 5374495189628258650ull, 140444776161118430ull}},
+ {{17161166582599996544ull, 8645070925981823555ull,
+ 10748990379256517300ull, 280889552322236860ull}},
+ {{15875589091490441471ull, 17290141851963647111ull,
+ 3051236684803482984ull, 561779104644473721ull}},
+ {{13304434109271331325ull, 16133539630217742607ull,
+ 6102473369606965969ull, 1123558209288947442ull}},
+ {{13728933266079997235ull, 6916056740785458844ull,
+ 8599192303405213840ull, 224711641857789488ull}},
+ {{9011122458450442854ull, 13832113481570917689ull,
+ 17198384606810427680ull, 449423283715578976ull}},
+ {{18022244916900885707ull, 9217482889432283762ull,
+ 15950025139911303745ull, 898846567431157953ull}},
+ {{3604448983380177142ull, 12911543022112187722ull,
+ 14258051472207991718ull, 179769313486231590ull}},
+ {{7208897966760354283ull, 7376341970514823828ull,
+ 10069358870706431821ull, 359538626972463181ull}},
+ {{14417795933520708565ull, 14752683941029647656ull,
+ 1691973667703312026ull, 719077253944926363ull}},
+ {{2883559186704141713ull, 17707932047173570824ull,
+ 11406441177766393374ull, 143815450788985272ull}},
+ {{5767118373408283426ull, 16969120020637590032ull,
+ 4366138281823235133ull, 287630901577970545ull}},
+ {{11534236746816566852ull, 15491495967565628448ull,
+ 8732276563646470267ull, 575261803155941090ull}},
+ {{4621729419923582088ull, 12536247861421705281ull,
+ 17464553127292940535ull, 1150523606311882180ull}},
+ {{4613694698726626741ull, 2507249572284341056ull,
+ 3492910625458588107ull, 230104721262376436ull}},
+ {{9227389397453253482ull, 5014499144568682112ull,
+ 6985821250917176214ull, 460209442524752872ull}},
+ {{8034721196955348ull, 10028998289137364225ull, 13971642501834352428ull,
+ 920418885049505744ull}},
+ {{7380304573723211716ull, 9384497287311293491ull,
+ 17551723759334511778ull, 184083777009901148ull}},
+ {{14760609147446423432ull, 322250500913035366ull,
+ 16656703444959471941ull, 368167554019802297ull}},
+ {{11074474221183295248ull, 644501001826070733ull,
+ 14866662816209392266ull, 736335108039604595ull}},
+ {{16972290103204300343ull, 3818249015107124469ull,
+ 2973332563241878453ull, 147267021607920919ull}},
+ {{15497836132699049069ull, 7636498030214248939ull,
+ 5946665126483756906ull, 294534043215841838ull}},
+ {{12548928191688546521ull, 15272996060428497879ull,
+ 11893330252967513812ull, 589068086431683676ull}},
+ {{6651112309667541426ull, 12099248047147444143ull,
+ 5339916432225476009ull, 1178136172863367353ull}},
+ {{1330222461933508286ull, 9798547238913309475ull,
+ 12136029730670826171ull, 235627234572673470ull}},
+ {{2660444923867016571ull, 1150350404117067334ull,
+ 5825315387632100727ull, 471254469145346941ull}},
+ {{5320889847734033141ull, 2300700808234134668ull,
+ 11650630775264201454ull, 942508938290693882ull}},
+ {{15821573228514447921ull, 4149488976388737256ull,
+ 9708823784536660937ull, 188501787658138776ull}},
+ {{13196402383319344226ull, 8298977952777474513ull,
+ 970903495363770258ull, 377003575316277553ull}},
+ {{7946060692929136836ull, 16597955905554949027ull,
+ 1941806990727540516ull, 754007150632555106ull}},
+ {{16346607397553468660ull, 10698288810594810451ull,
+ 4077710212887418426ull, 150801430126511021ull}},
+ {{14246470721397385704ull, 2949833547480069287ull,
+ 8155420425774836853ull, 301602860253022042ull}},
+ {{10046197369085219792ull, 5899667094960138575ull,
+ 16310840851549673706ull, 603205720506044084ull}},
+ {{1645650664460887968ull, 11799334189920277151ull,
+ 14174937629389795796ull, 1206411441012088169ull}},
+ {{4018478947634087917ull, 2359866837984055430ull,
+ 17592382784845600452ull, 241282288202417633ull}},
+ {{8036957895268175834ull, 4719733675968110860ull,
+ 16738021495981649288ull, 482564576404835267ull}},
+ {{16073915790536351667ull, 9439467351936221720ull,
+ 15029298918253746960ull, 965129152809670535ull}},
+ {{3214783158107270334ull, 1887893470387244344ull,
+ 3005859783650749392ull, 193025830561934107ull}},
+ {{6429566316214540667ull, 3775786940774488688ull,
+ 6011719567301498784ull, 386051661123868214ull}},
+ {{12859132632429081334ull, 7551573881548977376ull,
+ 12023439134602997568ull, 772103322247736428ull}},
+ {{9950524155969636914ull, 5199663591051705798ull,
+ 13472734271146330483ull, 154420664449547285ull}},
+ {{1454304238229722211ull, 10399327182103411597ull,
+ 8498724468583109350ull, 308841328899094571ull}},
+ {{2908608476459444421ull, 2351910290497271578ull,
+ 16997448937166218701ull, 617682657798189142ull}},
+ {{5817216952918888841ull, 4703820580994543156ull,
+ 15548153800622885786ull, 1235365315596378285ull}},
+ {{8542141020067598415ull, 4630112930940818954ull,
+ 3109630760124577157ull, 247073063119275657ull}},
+ {{17084282040135196830ull, 9260225861881637908ull,
+ 6219261520249154314ull, 494146126238551314ull}},
+ {{15721820006560842043ull, 73707650053724201ull,
+ 12438523040498308629ull, 988292252477102628ull}},
+ {{14212410445537899379ull, 7393439159494565486ull,
+ 13555751052325392695ull, 197658450495420525ull}},
+ {{9978076817366247141ull, 14786878318989130973ull,
+ 8664758030941233774ull, 395316900990841051ull}},
+ {{1509409561022942665ull, 11127012564268710331ull,
+ 17329516061882467549ull, 790633801981682102ull}},
+ {{7680579541688409180ull, 5914751327595652389ull,
+ 10844600841860314156ull, 158126760396336420ull}},
+ {{15361159083376818359ull, 11829502655191304778ull,
+ 3242457610011076696ull, 316253520792672841ull}},
+ {{12275574093044085102ull, 5212261236673057941ull,
+ 6484915220022153393ull, 632507041585345682ull}},
+ {{6104404112378618587ull, 10424522473346115883ull,
+ 12969830440044306786ull, 1265014083170691364ull}},
+ {{12288927266701454687ull, 2084904494669223176ull,
+ 17351361346976502650ull, 253002816634138272ull}},
+ {{6131110459693357758ull, 4169808989338446353ull,
+ 16255978620243453684ull, 506005633268276545ull}},
+ {{12262220919386715516ull, 8339617978676892706ull,
+ 14065213166777355752ull, 1012011266536553091ull}},
+ {{17209839442844984396ull, 12735970039961109510ull,
+ 6502391448097381473ull, 202402253307310618ull}},
+ {{15972934811980417176ull, 7025196006212667405ull,
+ 13004782896194762947ull, 404804506614621236ull}},
+ {{13499125550251282736ull, 14050392012425334811ull,
+ 7562821718679974278ull, 809609013229242473ull}},
+ {{10078522739534077194ull, 6499427217226977285ull,
+ 12580610787961725825ull, 161921802645848494ull}},
+ {{1710301405358602771ull, 12998854434453954571ull,
+ 6714477502213900034ull, 323843605291696989ull}},
+ {{3420602810717205542ull, 7550964795198357526ull,
+ 13428955004427800069ull, 647687210583393978ull}},
+ {{11752167006369172078ull, 8888890588523492151ull,
+ 13753837445111290983ull, 129537442116678795ull}},
+ {{5057589939028792540ull, 17777781177046984303ull,
+ 9060930816513030350ull, 259074884233357591ull}},
+ {{10115179878057585080ull, 17108818280384416990ull,
+ 18121861633026060701ull, 518149768466715182ull}},
+ {{1783615682405618544ull, 15770892487059282365ull,
+ 17796979192342569787ull, 1036299536933430365ull}},
+ {{7735420765964944356ull, 10532876126895677119ull,
+ 3559395838468513957ull, 207259907386686073ull}},
+ {{15470841531929888711ull, 2619008180081802622ull,
+ 7118791676937027915ull, 414519814773372146ull}},
+ {{12494938990150225805ull, 5238016360163605245ull,
+ 14237583353874055830ull, 829039629546744292ull}},
+ {{9877685427513865808ull, 8426300901516541695ull,
+ 10226214300258631812ull, 165807925909348858ull}},
+ {{1308626781318179999ull, 16852601803033083391ull,
+ 2005684526807712008ull, 331615851818697717ull}},
+ {{2617253562636359998ull, 15258459532356615166ull,
+ 4011369053615424017ull, 663231703637395434ull}},
+ {{7902148342011092646ull, 6741040721213233356ull,
+ 15559669069690726096ull, 132646340727479086ull}},
+ {{15804296684022185292ull, 13482081442426466712ull,
+ 12672594065671900576ull, 265292681454958173ull}},
+ {{13161849294334818968ull, 8517418811143381809ull,
+ 6898444057634249537ull, 530585362909916347ull}},
+ {{7876954514960086319ull, 17034837622286763619ull,
+ 13796888115268499074ull, 1061170725819832694ull}},
+ {{8954088532475837911ull, 14475013968683083693ull,
+ 17516772882021341107ull, 212234145163966538ull}},
+ {{17908177064951675821ull, 10503283863656615770ull,
+ 16586801690333130599ull, 424468290327933077ull}},
+ {{17369610056193800025ull, 2559823653603679925ull,
+ 14726859306956709583ull, 848936580655866155ull}},
+ {{14541968455464490975ull, 11580011174946466954ull,
+ 2945371861391341916ull, 169787316131173231ull}},
+ {{10637192837219430334ull, 4713278276183382293ull,
+ 5890743722782683833ull, 339574632262346462ull}},
+ {{2827641600729309051ull, 9426556552366764587ull,
+ 11781487445565367666ull, 679149264524692924ull}},
+ {{7944225949629682457ull, 1885311310473352917ull,
+ 17113692748080714826ull, 135829852904938584ull}},
+ {{15888451899259364913ull, 3770622620946705834ull,
+ 15780641422451878036ull, 271659705809877169ull}},
+ {{13330159724809178210ull, 7541245241893411669ull,
+ 13114538771194204456ull, 543319411619754339ull}},
+ {{8213575375908804804ull, 15082490483786823339ull,
+ 7782333468678857296ull, 1086638823239508679ull}},
+ {{16400110334149402254ull, 3016498096757364667ull,
+ 16313861952703412752ull, 217327764647901735ull}},
+ {{14353476594589252892ull, 6032996193514729335ull,
+ 14180979831697273888ull, 434655529295803471ull}},
+ {{10260209115468954167ull, 12065992387029458671ull,
+ 9915215589684996160ull, 869311058591606943ull}},
+ {{16809437082061432127ull, 13481244921631622703ull,
+ 13051089562162730201ull, 173862211718321388ull}},
+ {{15172130090413312637ull, 8515745769553693791ull,
+ 7655435050615908787ull, 347724423436642777ull}},
+ {{11897516107117073657ull, 17031491539107387583ull,
+ 15310870101231817574ull, 695448846873285554ull}},
+ {{6068852036165325055ull, 14474344752047208486ull,
+ 17819569279214004807ull, 139089769374657110ull}},
+ {{12137704072330650109ull, 10501945430384865356ull,
+ 17192394484718457999ull, 278179538749314221ull}},
+ {{5828664070951748602ull, 2557146787060179097ull,
+ 15938044895727364383ull, 556359077498628443ull}},
+ {{11657328141903497204ull, 5114293574120358194ull,
+ 13429345717745177150ull, 1112718154997256887ull}},
+ {{6020814443122609764ull, 8401556344307892285ull,
+ 10064566773032856076ull, 222543630999451377ull}},
+ {{12041628886245219528ull, 16803112688615784570ull,
+ 1682389472356160536ull, 445087261998902755ull}},
+ {{5636513698780887440ull, 15159481303522017525ull,
+ 3364778944712321073ull, 890174523997805510ull}},
+ {{12195349183981908458ull, 14099942704930134474ull,
+ 672955788942464214ull, 178034904799561102ull}},
+ {{5943954294254265299ull, 9753141336150717333ull,
+ 1345911577884928429ull, 356069809599122204ull}},
+ {{11887908588508530598ull, 1059538598591883050ull,
+ 2691823155769856859ull, 712139619198244408ull}},
+ {{9756279347185526766ull, 7590605349202197256ull,
+ 11606411075379702341ull, 142427923839648881ull}},
+ {{1065814620661501916ull, 15181210698404394513ull,
+ 4766078077049853066ull, 284855847679297763ull}},
+ {{2131629241323003832ull, 11915677323099237410ull,
+ 9532156154099706133ull, 569711695358595526ull}},
+ {{4263258482646007664ull, 5384610572488923204ull, 617568234489860651ull,
+ 1139423390717191053ull}},
+ {{11920698140754932503ull, 15834317373465425933ull,
+ 11191560091123703099ull, 227884678143438210ull}},
+ {{5394652207800313389ull, 13221890673221300251ull,
+ 3936376108537854583ull, 455769356286876421ull}},
+ {{10789304415600626778ull, 7997037272733048886ull,
+ 7872752217075709167ull, 911538712573752842ull}},
+ {{2157860883120125356ull, 16356802713514251070ull,
+ 8953248072898962479ull, 182307742514750568ull}},
+ {{4315721766240250711ull, 14266861353318950524ull,
+ 17906496145797924959ull, 364615485029501136ull}},
+ {{8631443532480501422ull, 10086978632928349432ull,
+ 17366248217886298303ull, 729230970059002273ull}},
+ {{12794335150721831254ull, 5706744541327580209ull,
+ 14541296087802990630ull, 145846194011800454ull}},
+ {{7141926227734110892ull, 11413489082655160419ull,
+ 10635848101896429644ull, 291692388023600909ull}},
+ {{14283852455468221784ull, 4380234091600769222ull,
+ 2824952130083307673ull, 583384776047201819ull}},
+ {{10120960837226891952ull, 8760468183201538445ull,
+ 5649904260166615346ull, 1166769552094403638ull}},
+ {{16781587426413019684ull, 16509488895607948981ull,
+ 12198027296259054038ull, 233353910418880727ull}},
+ {{15116430779116487751ull, 14572233717506346347ull,
+ 5949310518808556461ull, 466707820837761455ull}},
+ {{11786117484523423885ull, 10697723361303141079ull,
+ 11898621037617112923ull, 933415641675522910ull}},
+ {{9735921126388505424ull, 13207591116486359185ull,
+ 2379724207523422584ull, 186683128335104582ull}},
+ {{1025098179067459231ull, 7968438159263166755ull,
+ 4759448415046845169ull, 373366256670209164ull}},
+ {{2050196358134918462ull, 15936876318526333510ull,
+ 9518896830093690338ull, 746732513340418328ull}},
+ {{4099388086368894016ull, 6876724078447177025ull,
+ 12971825810244469037ull, 149346502668083665ull}},
+ {{8198776172737788031ull, 13753448156894354050ull,
+ 7496907546779386458ull, 298693005336167331ull}},
+ {{16397552345475576062ull, 9060152240079156484ull,
+ 14993815093558772917ull, 597386010672334662ull}},
+ {{14348360617241600508ull, 18120304480158312969ull,
+ 11540886113407994218ull, 1194772021344669325ull}},
+ {{10248369752932140748ull, 14692107340257393563ull,
+ 2308177222681598843ull, 238954404268933865ull}},
+ {{2049995432154729880ull, 10937470606805235511ull,
+ 4616354445363197687ull, 477908808537867730ull}},
+ {{4099990864309459760ull, 3428197139900919406ull,
+ 9232708890726395375ull, 955817617075735460ull}},
+ {{4509346987603802276ull, 685639427980183881ull, 1846541778145279075ull,
+ 191163523415147092ull}},
+ {{9018693975207604551ull, 1371278855960367762ull,
+ 3693083556290558150ull, 382327046830294184ull}},
+ {{18037387950415209101ull, 2742557711920735524ull,
+ 7386167112581116300ull, 764654093660588368ull}},
+ {{10986175219566862467ull, 11616557986609878074ull,
+ 12545279866741954229ull, 152930818732117673ull}},
+ {{3525606365424173318ull, 4786371899510204533ull,
+ 6643815659774356843ull, 305861637464235347ull}},
+ {{7051212730848346635ull, 9572743799020409066ull,
+ 13287631319548713686ull, 611723274928470694ull}},
+ {{14102425461696693269ull, 698743524331266516ull,
+ 8128518565387875757ull, 1223446549856941389ull}},
+ {{10199182721823159301ull, 3829097519608163626ull,
+ 16383098972045216444ull, 244689309971388277ull}},
+ {{1951621369936766985ull, 7658195039216327253ull,
+ 14319453870380881272ull, 489378619942776555ull}},
+ {{3903242739873533969ull, 15316390078432654506ull,
+ 10192163667052210928ull, 978757239885553111ull}},
+ {{780648547974706794ull, 17820673274654172194ull,
+ 5727781548152352508ull, 195751447977110622ull}},
+ {{1561297095949413588ull, 17194602475598792772ull,
+ 11455563096304705017ull, 391502895954221244ull}},
+ {{3122594191898827175ull, 15942460877488033928ull,
+ 4464382118899858419ull, 783005791908442489ull}},
+ {{4313867653121675759ull, 14256538619723337755ull,
+ 15650271682747612976ull, 156601158381688497ull}},
+ {{8627735306243351517ull, 10066333165737123894ull,
+ 12853799291785674337ull, 313202316763376995ull}},
+ {{17255470612486703033ull, 1685922257764696172ull,
+ 7260854509861797059ull, 626404633526753991ull}},
+ {{16064197151263854450ull, 3371844515529392345ull,
+ 14521709019723594118ull, 1252809267053507982ull}},
+ {{3212839430252770890ull, 674368903105878469ull,
+ 10283039433428539470ull, 250561853410701596ull}},
+ {{6425678860505541780ull, 1348737806211756938ull,
+ 2119334793147527324ull, 501123706821403193ull}},
+ {{12851357721011083560ull, 2697475612423513876ull,
+ 4238669586295054648ull, 1002247413642806386ull}},
+ {{2570271544202216712ull, 15296890381452344068ull,
+ 4537082732000921252ull, 200449482728561277ull}},
+ {{5140543088404433424ull, 12147036689195136520ull,
+ 9074165464001842505ull, 400898965457122554ull}},
+ {{10281086176808866848ull, 5847329304680721424ull,
+ 18148330928003685011ull, 801797930914245108ull}},
+ {{13124263679587504340ull, 15926861119903785577ull,
+ 14697712629826467971ull, 160359586182849021ull}},
+ {{7801783285465457063ull, 13406978166098019539ull,
+ 10948681185943384327ull, 320719172365698043ull}},
+ {{15603566570930914125ull, 8367212258486487462ull,
+ 3450618298177217039ull, 641438344731396087ull}},
+ {{14188759758411913795ull, 5362791266439207815ull,
+ 8068821289119264054ull, 128287668946279217ull}},
+ {{9930775443114275973ull, 10725582532878415631ull,
+ 16137642578238528108ull, 256575337892558434ull}},
+ {{1414806812519000330ull, 3004420992047279647ull,
+ 13828541082767504601ull, 513150675785116869ull}},
+ {{2829613625038000660ull, 6008841984094559294ull,
+ 9210338091825457586ull, 1026301351570233739ull}},
+ {{15323317983975241425ull, 1201768396818911858ull,
+ 16599462877332732810ull, 205260270314046747ull}},
+ {{12199891894240931234ull, 2403536793637823717ull,
+ 14752181680955914004ull, 410520540628093495ull}},
+ {{5953039714772310851ull, 4807073587275647435ull,
+ 11057619288202276392ull, 821041081256186991ull}},
+ {{12258654387180193140ull, 12029461161680860456ull,
+ 5900872672382365601ull, 164208216251237398ull}},
+ {{6070564700650834664ull, 5612178249652169297ull,
+ 11801745344764731203ull, 328416432502474796ull}},
+ {{12141129401301669328ull, 11224356499304338594ull,
+ 5156746615819910790ull, 656832865004949593ull}},
+ {{9806923509744154512ull, 13312917744086598688ull,
+ 12099395767389713127ull, 131366573000989918ull}},
+ {{1167102945778757408ull, 8179091414463645761ull,
+ 5752047461069874639ull, 262733146001979837ull}},
+ {{2334205891557514816ull, 16358182828927291522ull,
+ 11504094922139749278ull, 525466292003959674ull}},
+ {{4668411783115029631ull, 14269621584145031428ull,
+ 4561445770569946941ull, 1050932584007919349ull}},
+ {{12001728800848736896ull, 2853924316829006285ull,
+ 15669684413081630681ull, 210186516801583869ull}},
+ {{5556713527987922176ull, 5707848633658012571ull,
+ 12892624752453709746ull, 420373033603167739ull}},
+ {{11113427055975844351ull, 11415697267316025142ull,
+ 7338505431197867876ull, 840746067206335479ull}},
+ {{9601383040678989517ull, 2283139453463205028ull,
+ 16225096345207214868ull, 168149213441267095ull}},
+ {{756022007648427418ull, 4566278906926410057ull,
+ 14003448616704878120ull, 336298426882534191ull}},
+ {{1512044015296854835ull, 9132557813852820114ull,
+ 9560153159700204624ull, 672596853765068383ull}},
+ {{3991757617801281291ull, 9205209192254384669ull,
+ 12980077076165771894ull, 134519370753013676ull}},
+ {{7983515235602562581ull, 18410418384508769338ull,
+ 7513410078621992172ull, 269038741506027353ull}},
+ {{15967030471205125161ull, 18374092695307987060ull,
+ 15026820157243984345ull, 538077483012054706ull}},
+ {{13487316868700698705ull, 18301441316906422505ull,
+ 11606896240778417075ull, 1076154966024109413ull}},
+ {{13765509817965870711ull, 14728334707607015470ull,
+ 13389425692381414384ull, 215230993204821882ull}},
+ {{9084275562222189806ull, 11009925341504479325ull,
+ 8332107311053277153ull, 430461986409643765ull}},
+ {{18168551124444379611ull, 3573106609299407034ull,
+ 16664214622106554307ull, 860923972819287530ull}},
+ {{7323059039630786246ull, 8093318951343702053ull,
+ 3332842924421310861ull, 172184794563857506ull}},
+ {{14646118079261572491ull, 16186637902687404106ull,
+ 6665685848842621722ull, 344369589127715012ull}},
+ {{10845492084813593365ull, 13926531731665256597ull,
+ 13331371697685243445ull, 688739178255430024ull}},
+ {{5858447231704628997ull, 17542701605300692612ull,
+ 17423669598504689981ull, 137747835651086004ull}},
+ {{11716894463409257993ull, 16638659136891833608ull,
+ 16400595123299828347ull, 275495671302172009ull}},
+ {{4987044853108964369ull, 14830574200074115601ull,
+ 14354446172890105079ull, 550991342604344019ull}},
+ {{9974089706217928738ull, 11214404326438679586ull,
+ 10262148272070658543ull, 1101982685208688039ull}},
+ {{13062864385469316718ull, 9621578494771556563ull,
+ 16809824913381773001ull, 220396537041737607ull}},
+ {{7678984697229081819ull, 796412915833561511ull,
+ 15172905753053994387ull, 440793074083475215ull}},
+ {{15357969394458163637ull, 1592825831667123022ull,
+ 11899067432398437158ull, 881586148166950431ull}},
+ {{6760942693633543051ull, 15075960425301065897ull,
+ 6069162301221597754ull, 176317229633390086ull}},
+ {{13521885387267086101ull, 11705176776892580178ull,
+ 12138324602443195509ull, 352634459266780172ull}},
+ {{8597026700824620586ull, 4963609480075608741ull,
+ 5829905131176839403ull, 705268918533560345ull}},
+ {{16476800599132565410ull, 12060768340240852717ull,
+ 1165981026235367880ull, 141053783706712069ull}},
+ {{14506857124555579204ull, 5674792606772153819ull,
+ 2331962052470735761ull, 282107567413424138ull}},
+ {{10566970175401606792ull, 11349585213544307639ull,
+ 4663924104941471522ull, 564215134826848276ull}},
+ {{2687196277093661968ull, 4252426353379063663ull,
+ 9327848209882943045ull, 1128430269653696552ull}},
+ {{537439255418732394ull, 8229182900159633379ull, 9244267271460409255ull,
+ 225686053930739310ull}},
+ {{1074878510837464788ull, 16458365800319266758ull, 41790469211266894ull,
+ 451372107861478621ull}},
+ {{2149757021674929575ull, 14469987526928981900ull, 83580938422533789ull,
+ 902744215722957242ull}},
+ {{4119300219076896239ull, 6583346320127706703ull,
+ 7395413817168327404ull, 180548843144591448ull}},
+ {{8238600438153792477ull, 13166692640255413406ull,
+ 14790827634336654808ull, 361097686289182896ull}},
+ {{16477200876307584953ull, 7886641206801275196ull,
+ 11134911194963758001ull, 722195372578365793ull}},
+ {{3295440175261516991ull, 16334723500327896332ull,
+ 13295028683218482569ull, 144439074515673158ull}},
+ {{6590880350523033981ull, 14222702926946241048ull,
+ 8143313292727413523ull, 288878149031346317ull}},
+ {{13181760701046067962ull, 9998661780182930480ull,
+ 16286626585454827047ull, 577756298062692634ull}},
+ {{7916777328382584308ull, 1550579486656309345ull,
+ 14126509097200102479ull, 1155512596125385269ull}},
+ {{12651401909902247832ull, 11378162341556992838ull,
+ 17582697078407661788ull, 231102519225077053ull}},
+ {{6856059746094944047ull, 4309580609404434061ull,
+ 16718650083105771961ull, 462205038450154107ull}},
+ {{13712119492189888093ull, 8619161218808868122ull,
+ 14990556092501992306ull, 924410076900308215ull}},
+ {{13810470342663708589ull, 5413181058503683947ull,
+ 2998111218500398461ull, 184882015380061643ull}},
+ {{9174196611617865561ull, 10826362117007367895ull,
+ 5996222437000796922ull, 369764030760123286ull}},
+ {{18348393223235731121ull, 3205980160305184174ull,
+ 11992444874001593845ull, 739528061520246572ull}},
+ {{7359027459389056548ull, 8019893661544857481ull,
+ 9777186604284139415ull, 147905612304049314ull}},
+ {{14718054918778113095ull, 16039787323089714962ull,
+ 1107629134858727214ull, 295811224608098629ull}},
+ {{10989365763846674573ull, 13632830572469878309ull,
+ 2215258269717454429ull, 591622449216197258ull}},
+ {{3531987453983797530ull, 8818917071230205003ull,
+ 4430516539434908859ull, 1183244898432394516ull}},
+ {{11774443935022490476ull, 1763783414246041000ull,
+ 4575452122628892095ull, 236648979686478903ull}},
+ {{5102143796335429336ull, 3527566828492082001ull,
+ 9150904245257784190ull, 473297959372957806ull}},
+ {{10204287592670858671ull, 7055133656984164002ull,
+ 18301808490515568380ull, 946595918745915612ull}},
+ {{16798252777501813027ull, 8789724360880653446ull,
+ 11039059327586934322ull, 189319183749183122ull}},
+ {{15149761481294074438ull, 17579448721761306893ull,
+ 3631374581464317028ull, 378638367498366245ull}},
+ {{11852778888878597260ull, 16712153369813062171ull,
+ 7262749162928634057ull, 757276734996732490ull}},
+ {{13438602222001450422ull, 10721128303446433080ull,
+ 1452549832585726811ull, 151455346999346498ull}},
+ {{8430460370293349228ull, 2995512533183314545ull,
+ 2905099665171453623ull, 302910693998692996ull}},
+ {{16860920740586698455ull, 5991025066366629090ull,
+ 5810199330342907246ull, 605821387997385992ull}},
+ {{15275097407463845293ull, 11982050132733258181ull,
+ 11620398660685814492ull, 1211642775994771984ull}},
+ {{10433717110976589705ull, 6085758841288561959ull,
+ 17081474991104804191ull, 242328555198954396ull}},
+ {{2420690148243627794ull, 12171517682577123919ull,
+ 15716205908500056766ull, 484657110397908793ull}},
+ {{4841380296487255588ull, 5896291291444696222ull,
+ 12985667743290561917ull, 969314220795817587ull}},
+ {{4657624874039361441ull, 15936653517256580537ull,
+ 9975831178141933029ull, 193862844159163517ull}},
+ {{9315249748078722882ull, 13426562960803609458ull,
+ 1504918282574314443ull, 387725688318327035ull}},
+ {{183755422447894147ull, 8406381847897667301ull, 3009836565148628887ull,
+ 775451376636654070ull}},
+ {{11104797528715309799ull, 9059973999063354106ull,
+ 601967313029725777ull, 155090275327330814ull}},
+ {{3762850983721067982ull, 18119947998126708213ull,
+ 1203934626059451554ull, 310180550654661628ull}},
+ {{7525701967442135964ull, 17793151922543864810ull,
+ 2407869252118903109ull, 620361101309323256ull}},
+ {{15051403934884271928ull, 17139559771378178004ull,
+ 4815738504237806219ull, 1240722202618646512ull}},
+ {{3010280786976854386ull, 7117260769017545924ull,
+ 8341845330331381890ull, 248144440523729302ull}},
+ {{6020561573953708771ull, 14234521538035091848ull,
+ 16683690660662763780ull, 496288881047458604ull}},
+ {{12041123147907417542ull, 10022299002360632080ull,
+ 14920637247615975945ull, 992577762094917209ull}},
+ {{17165619888549124802ull, 16761855059439767708ull,
+ 17741522708490836481ull, 198515552418983441ull}},
+ {{15884495703388697987ull, 15076966045169983801ull,
+ 17036301343272121347ull, 397031104837966883ull}},
+ {{13322247333067844357ull, 11707188016630415987ull,
+ 15625858612834691079ull, 794062209675933767ull}},
+ {{13732495910839299841ull, 6030786418067993520ull,
+ 10503869352050758862ull, 158812441935186753ull}},
+ {{9018247747969048066ull, 12061572836135987041ull,
+ 2560994630391966108ull, 317624883870373507ull}},
+ {{18036495495938096132ull, 5676401598562422466ull,
+ 5121989260783932217ull, 635249767740747014ull}},
+ {{17626246918166640648ull, 11352803197124844933ull,
+ 10243978521567864434ull, 1270499535481494028ull}},
+ {{3525249383633328130ull, 9649258268908789633ull,
+ 13116842148539303856ull, 254099907096298805ull}},
+ {{7050498767266656259ull, 851772464108027650ull, 7786940223369056097ull,
+ 508199814192597611ull}},
+ {{14100997534533312518ull, 1703544928216055300ull,
+ 15573880446738112194ull, 1016399628385195222ull}},
+ {{6509548321648572827ull, 4030057800385121383ull,
+ 10493473718831443085ull, 203279925677039044ull}},
+ {{13019096643297145654ull, 8060115600770242766ull,
+ 2540203363953334554ull, 406559851354078089ull}},
+ {{7591449212884739692ull, 16120231201540485533ull,
+ 5080406727906669108ull, 813119702708156178ull}},
+ {{16275685101544589232ull, 6913395055050007429ull,
+ 12084127789807064791ull, 162623940541631235ull}},
+ {{14104626129379626847ull, 13826790110100014859ull,
+ 5721511505904577966ull, 325247881083262471ull}},
+ {{9762508185049702077ull, 9206836146490478103ull,
+ 11443023011809155933ull, 650495762166524942ull}},
+ {{13020548081235671385ull, 1841367229298095620ull,
+ 9667302231845651833ull, 130099152433304988ull}},
+ {{7594352088761791154ull, 3682734458596191241ull, 887860389981752050ull,
+ 260198304866609977ull}},
+ {{15188704177523582308ull, 7365468917192382482ull,
+ 1775720779963504100ull, 520396609733219954ull}},
+ {{11930664281337612999ull, 14730937834384764965ull,
+ 3551441559927008200ull, 1040793219466439908ull}},
+ {{13454179300493253570ull, 14014234011102683962ull,
+ 11778334756211132609ull, 208158643893287981ull}},
+ {{8461614527276955523ull, 9581723948495816309ull,
+ 5109925438712713603ull, 416317287786575963ull}},
+ {{16923229054553911046ull, 716703823282081002ull,
+ 10219850877425427207ull, 832634575573151926ull}},
+ {{3384645810910782210ull, 11211387208882147170ull,
+ 5733318990226995764ull, 166526915114630385ull}},
+ {{6769291621821564419ull, 3976030344054742724ull,
+ 11466637980453991529ull, 333053830229260770ull}},
+ {{13538583243643128837ull, 7952060688109485448ull,
+ 4486531887198431442ull, 666107660458521541ull}},
+ {{6397065463470536091ull, 12658458581847628059ull,
+ 4586655192181596611ull, 133221532091704308ull}},
+ {{12794130926941072181ull, 6870173089985704502ull,
+ 9173310384363193223ull, 266443064183408616ull}},
+};
+
+// These are the different, bipartite, tables for conversion to bid128
+// Using the same approach, the tables become extremely large
+// And things are more amenable here since there's never overflow/underflow
+
+static const BID_UINT256 bid_innertable_sig[] = {
+ {{1014026100135492416ull, 3035406636157676337ull,
+ 4549648098962661924ull, 12141680576410806693ull}},
+ {{5879218643596753424ull, 3794258295197095421ull,
+ 10298746142130715309ull, 15177100720513508366ull}},
+ {{5980354661461664842ull, 4677254443711878590ull,
+ 1825030320404309164ull, 9485687950320942729ull}},
+ {{16698815363681856860ull, 5846568054639848237ull,
+ 6892973918932774359ull, 11857109937901178411ull}},
+ {{7038461149320157363ull, 2696524049872422393ull,
+ 4004531380238580045ull, 14821387422376473014ull}},
+ {{15928253264393568112ull, 3991170540383957947ull,
+ 16337890167931276240ull, 9263367138985295633ull}},
+ {{15298630562064572236ull, 4988963175479947434ull,
+ 6587304654631931588ull, 11579208923731619542ull}},
+ {{9899916165725939487ull, 6236203969349934293ull,
+ 17457502855144690293ull, 14474011154664524427ull}},
+ {{16986581225584812263ull, 12406940980114805770ull,
+ 17210192550503474962ull, 18092513943330655534ull}},
+ {{15228299284417895569ull, 12366024130999141510ull,
+ 6144684325637283947ull, 11307821214581659709ull}},
+ {{9812002068667593653ull, 10845844145321538984ull,
+ 12292541425473992838ull, 14134776518227074636ull}},
+ {{12265002585834492066ull, 4333933144797147922ull,
+ 15365676781842491048ull, 17668470647783843295ull}},
+ {{12277312634573945445ull, 2708708215498217451ull,
+ 16521077016292638761ull, 11042794154864902059ull}},
+ {{10734954774790043902ull, 7997571287800159718ull,
+ 16039660251938410547ull, 13803492693581127574ull}},
+ {{4195321431632779070ull, 5385278091322811744ull,
+ 10826203278068237376ull, 17254365866976409468ull}},
+ {{2622075894770486919ull, 3365798807076757340ull,
+ 15989749085647424168ull, 10783978666860255917ull}},
+ {{3277594868463108648ull, 4207248508845946675ull,
+ 6152128301777116498ull, 13479973333575319897ull}},
+ {{17932051640861049522ull, 14482432672912209151ull,
+ 12301846395648783526ull, 16849966666969149871ull}},
+ {{18125061303179237808ull, 4439834402142742815ull,
+ 14606183024921571560ull, 10531229166855718669ull}},
+ {{18044640610546659355ull, 5549793002678428519ull,
+ 4422670725869800738ull, 13164036458569648337ull}},
+ {{17944114744755936290ull, 16160613290202811457ull,
+ 10140024425764638826ull, 16455045573212060421ull}},
+ {{4297542687831378326ull, 14712069324804145065ull,
+ 8643358275316593218ull, 10284403483257537763ull}},
+ {{9983614378216610811ull, 9166714619150405523ull,
+ 6192511825718353619ull, 12855504354071922204ull}},
+ {{7867831954343375609ull, 6846707255510619000ull,
+ 7740639782147942024ull, 16069380442589902755ull}},
+ {{4917394971464609756ull, 4279192034694136875ull,
+ 2532056854628769813ull, 10043362776618689222ull}},
+ {{1535057695903374291ull, 9960676061795058998ull,
+ 12388443105140738074ull, 12554203470773361527ull}},
+ {{11142194156733993672ull, 3227473040389047939ull,
+ 10873867862998534689ull, 15692754338466701909ull}},
+ {{4658028338745052093ull, 13546385696311624722ull,
+ 9102010423587778132ull, 9807971461541688693ull}},
+ {{15045907460286090924ull, 16932982120389530902ull,
+ 15989199047912110569ull, 12259964326927110866ull}},
+ {{9584012288502837847ull, 7331169595204749916ull,
+ 10763126773035362404ull, 15324955408658888583ull}},
+ {{15213379717169049462ull, 13805353033857744505ull,
+ 13644483260788183358ull, 9578097130411805364ull}},
+ {{5181666591179148116ull, 8033319255467404824ull,
+ 17055604075985229198ull, 11972621413014756705ull}},
+ {{6477083238973935145ull, 818277032479480222ull, 7484447039699372786ull,
+ 14965776766268445882ull}},
+ {{17883235079640873178ull, 5123109163727063042ull,
+ 9289465418239495895ull, 9353610478917778676ull}},
+ {{13130671812696315664ull, 1792200436231440899ull,
+ 11611831772799369869ull, 11692013098647223345ull}},
+ {{11801653747443006676ull, 6851936563716689028ull,
+ 679731660717048624ull, 14615016373309029182ull}},
+ {{14752067184303758345ull, 8564920704645861285ull,
+ 10073036612751086588ull, 18268770466636286477ull}},
+ {{11525884999403542918ull, 14576447477258439111ull,
+ 8601490892183123069ull, 11417981541647679048ull}},
+ {{9795670230827040743ull, 4385501291290885177ull,
+ 10751863615228903837ull, 14272476927059598810ull}},
+ {{16856273806961188833ull, 10093562632540994375ull,
+ 4216457482181353988ull, 17840596158824498513ull}},
+ {{17452700156991824877ull, 15531848682192897292ull,
+ 14164500972431816002ull, 11150372599265311570ull}},
+ {{3369131122530229480ull, 10191438815886345808ull,
+ 8482254178684994195ull, 13937965749081639463ull}},
+ {{4211413903162786849ull, 8127612501430544356ull,
+ 5991131704928854840ull, 17422457186352049329ull}},
+ {{11855505726331517589ull, 5079757813394090222ull,
+ 15273672361649004035ull, 10889035741470030830ull}},
+ {{5596010121059621178ull, 1738011248315224874ull,
+ 9868718415206479236ull, 13611294676837538538ull}},
+ {{16218384688179302281ull, 2172514060394031092ull,
+ 3112525982153323237ull, 17014118346046923173ull}},
+ {{913118393257288118ull, 3663664296959963385ull, 4251171748059520975ull,
+ 10633823966279326983ull}},
+ {{5753084009998998051ull, 18414638426482117943ull,
+ 702278666647013314ull, 13292279957849158729ull}},
+ {{2579668994071359659ull, 13794925996247871621ull,
+ 5489534351736154547ull, 16615349947311448411ull}},
+ {{3918136130508293739ull, 6315985738441225811ull,
+ 1125115960621402640ull, 10384593717069655257ull}},
+ {{285984144707979270ull, 7894982173051532264ull, 6018080969204141204ull,
+ 12980742146337069071ull}},
+ {{357480180884974087ull, 9868727716314415330ull, 2910915193077788601ull,
+ 16225927682921336339ull}},
+ {{4835111131480496709ull, 17697169868764979341ull,
+ 17960223060169475539ull, 10141204801825835211ull}},
+ {{10655574932778008790ull, 17509776317528836272ull,
+ 17838592806784456520ull, 12676506002282294014ull}},
+ {{13319468665972510987ull, 3440476323201493724ull,
+ 13074868971625794843ull, 15845632502852867518ull}},
+ {{17548039953087595175ull, 18291198766496791241ull,
+ 3560107088838733872ull, 9903520314283042199ull}},
+ {{8099991886077330257ull, 4417254384411437436ull,
+ 18285191916330581053ull, 12379400392853802748ull}},
+ {{10124989857596662821ull, 10133253998941684699ull,
+ 4409745821703674700ull, 15474250491067253436ull}},
+ {{4022275651784220311ull, 15556655786193328745ull,
+ 11979463175419572495ull, 9671406556917033397ull}},
+ {{9639530583157663293ull, 14834133714314273027ull,
+ 1139270913992301907ull, 12089258196146291747ull}},
+ {{7437727210519691212ull, 13930981124465453380ull,
+ 15259146697772541096ull, 15111572745182864683ull}},
+ {{13871951543429582816ull, 8706863202790908362ull,
+ 7231123676894144233ull, 9444732965739290427ull}},
+ {{8116567392432202712ull, 15495265021916023357ull,
+ 4427218577690292387ull, 11805916207174113034ull}},
+ {{14757395258967641293ull, 14757395258967641292ull,
+ 14757395258967641292ull, 14757395258967641292ull}},
+ {{0ull, 0ull, 0ull, 9223372036854775808ull}},
+ {{0ull, 0ull, 0ull, 11529215046068469760ull}},
+ {{0ull, 0ull, 0ull, 14411518807585587200ull}},
+ {{0ull, 0ull, 0ull, 18014398509481984000ull}},
+ {{0ull, 0ull, 0ull, 11258999068426240000ull}},
+ {{0ull, 0ull, 0ull, 14073748835532800000ull}},
+ {{0ull, 0ull, 0ull, 17592186044416000000ull}},
+ {{0ull, 0ull, 0ull, 10995116277760000000ull}},
+ {{0ull, 0ull, 0ull, 13743895347200000000ull}},
+ {{0ull, 0ull, 0ull, 17179869184000000000ull}},
+ {{0ull, 0ull, 0ull, 10737418240000000000ull}},
+ {{0ull, 0ull, 0ull, 13421772800000000000ull}},
+ {{0ull, 0ull, 0ull, 16777216000000000000ull}},
+ {{0ull, 0ull, 0ull, 10485760000000000000ull}},
+ {{0ull, 0ull, 0ull, 13107200000000000000ull}},
+ {{0ull, 0ull, 0ull, 16384000000000000000ull}},
+ {{0ull, 0ull, 0ull, 10240000000000000000ull}},
+ {{0ull, 0ull, 0ull, 12800000000000000000ull}},
+ {{0ull, 0ull, 0ull, 16000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 10000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 12500000000000000000ull}},
+ {{0ull, 0ull, 0ull, 15625000000000000000ull}},
+ {{0ull, 0ull, 0ull, 9765625000000000000ull}},
+ {{0ull, 0ull, 0ull, 12207031250000000000ull}},
+ {{0ull, 0ull, 0ull, 15258789062500000000ull}},
+ {{0ull, 0ull, 0ull, 9536743164062500000ull}},
+ {{0ull, 0ull, 0ull, 11920928955078125000ull}},
+ {{0ull, 0ull, 0ull, 14901161193847656250ull}},
+ {{0ull, 0ull, 4611686018427387904ull, 9313225746154785156ull}},
+ {{0ull, 0ull, 5764607523034234880ull, 11641532182693481445ull}},
+ {{0ull, 0ull, 11817445422220181504ull, 14551915228366851806ull}},
+ {{0ull, 0ull, 5548434740920451072ull, 18189894035458564758ull}},
+ {{0ull, 0ull, 17302829768357445632ull, 11368683772161602973ull}},
+ {{0ull, 0ull, 7793479155164643328ull, 14210854715202003717ull}},
+ {{0ull, 0ull, 14353534962383192064ull, 17763568394002504646ull}},
+ {{0ull, 0ull, 4359273333062107136ull, 11102230246251565404ull}},
+ {{0ull, 0ull, 5449091666327633920ull, 13877787807814456755ull}},
+ {{0ull, 0ull, 2199678564482154496ull, 17347234759768070944ull}},
+ {{0ull, 0ull, 1374799102801346560ull, 10842021724855044340ull}},
+ {{0ull, 0ull, 1718498878501683200ull, 13552527156068805425ull}},
+ {{0ull, 0ull, 6759809616554491904ull, 16940658945086006781ull}},
+ {{0ull, 0ull, 6530724019560251392ull, 10587911840678754238ull}},
+ {{0ull, 0ull, 17386777061305090048ull, 13234889800848442797ull}},
+ {{0ull, 0ull, 7898413271349198848ull, 16543612251060553497ull}},
+ {{0ull, 0ull, 16465723340661719040ull, 10339757656912845935ull}},
+ {{0ull, 0ull, 15970468157399760896ull, 12924697071141057419ull}},
+ {{0ull, 0ull, 15351399178322313216ull, 16155871338926321774ull}},
+ {{0ull, 0ull, 4982938468024057856ull, 10097419586828951109ull}},
+ {{0ull, 0ull, 10840359103457460224ull, 12621774483536188886ull}},
+ {{0ull, 0ull, 4327076842467049472ull, 15777218104420236108ull}},
+ {{0ull, 0ull, 11927795063396681728ull, 9860761315262647567ull}},
+ {{0ull, 0ull, 10298057810818464256ull, 12325951644078309459ull}},
+ {{0ull, 0ull, 8260886245095692416ull, 15407439555097886824ull}},
+ {{0ull, 0ull, 5163053903184807760ull, 9629649721936179265ull}},
+ {{0ull, 0ull, 11065503397408397604ull, 12037062152420224081ull}},
+ {{0ull, 0ull, 18443565265187884909ull, 15046327690525280101ull}},
+ {{0ull, 2305843009213693952ull, 13833071299956122020ull,
+ 9403954806578300063ull}},
+ {{0ull, 2882303761517117440ull, 12679653106517764621ull,
+ 11754943508222875079ull}},
+ {{0ull, 8214565720323784704ull, 11237880364719817872ull,
+ 14693679385278593849ull}},
+ {{0ull, 10268207150404730880ull, 212292400617608628ull,
+ 18367099231598242312ull}},
+ {{0ull, 15641001505857732608ull, 132682750386005392ull,
+ 11479437019748901445ull}},
+ {{0ull, 1104507808612614144ull, 4777539456409894645ull,
+ 14349296274686126806ull}},
+ {{0ull, 5992320779193155584ull, 15195296357367144114ull,
+ 17936620343357658507ull}},
+ {{0ull, 8356886505423110144ull, 7191217214140771119ull,
+ 11210387714598536567ull}}
+};
+
+static const int bid_innertable_exp[] = {
+ -468,
+ -465,
+ -461,
+ -458,
+ -455,
+ -451,
+ -448,
+ -445,
+ -442,
+ -438,
+ -435,
+ -432,
+ -428,
+ -425,
+ -422,
+ -418,
+ -415,
+ -412,
+ -408,
+ -405,
+ -402,
+ -398,
+ -395,
+ -392,
+ -388,
+ -385,
+ -382,
+ -378,
+ -375,
+ -372,
+ -368,
+ -365,
+ -362,
+ -358,
+ -355,
+ -352,
+ -349,
+ -345,
+ -342,
+ -339,
+ -335,
+ -332,
+ -329,
+ -325,
+ -322,
+ -319,
+ -315,
+ -312,
+ -309,
+ -305,
+ -302,
+ -299,
+ -295,
+ -292,
+ -289,
+ -285,
+ -282,
+ -279,
+ -275,
+ -272,
+ -269,
+ -265,
+ -262,
+ -259,
+ -255,
+ -252,
+ -249,
+ -246,
+ -242,
+ -239,
+ -236,
+ -232,
+ -229,
+ -226,
+ -222,
+ -219,
+ -216,
+ -212,
+ -209,
+ -206,
+ -202,
+ -199,
+ -196,
+ -192,
+ -189,
+ -186,
+ -182,
+ -179,
+ -176,
+ -172,
+ -169,
+ -166,
+ -162,
+ -159,
+ -156,
+ -153,
+ -149,
+ -146,
+ -143,
+ -139,
+ -136,
+ -133,
+ -129,
+ -126,
+ -123,
+ -119,
+ -116,
+ -113,
+ -109,
+ -106,
+ -103,
+ -99,
+ -96,
+ -93,
+ -89,
+ -86,
+ -83,
+ -79,
+ -76,
+ -73,
+ -69,
+ -66,
+ -63,
+ -60,
+ -56,
+ -53,
+ -50,
+ -46,
+};
+
+static const BID_UINT256 bid_outertable_sig[] = {
+ {{16710528681477587410ull, 1427578414467097172ull,
+ 17470362193306814444ull, 17633471421292828081ull}},
+ {{15880413049339289368ull, 3169162604521042544ull,
+ 12421848348224877000ull, 10175591536883283100ull}},
+ {{728324709502741634ull, 5487234822932806241ull,
+ 14277366029702694882ull, 11743877385420605756ull}},
+ {{5270439690693945016ull, 5335305964155802506ull,
+ 4731239033579481048ull, 13553871098685738146ull}},
+ {{15770926697301461842ull, 17478494563481727979ull,
+ 12172666691698088779ull, 15642825255298684824ull}},
+ {{6706015564063194464ull, 9524484409513358023ull,
+ 3584925281718916951ull, 18053733887991431306ull}},
+ {{11970480524618434228ull, 11405570099769256704ull,
+ 15462553542164535233ull, 10418108684938663938ull}},
+ {{6786207772287397676ull, 2319456072422691258ull,
+ 3306628541457879036ull, 12023771840725819358ull}},
+ {{11981052113010165492ull, 3504057943690712651ull,
+ 1876153621163772099ull, 13876903538819465956ull}},
+ {{9393164661428669080ull, 12786250932199773041ull,
+ 1469280998340568779ull, 16015644206874417279ull}},
+ {{16924685242153318850ull, 18017830257179898541ull,
+ 8443357802200517361ull, 9242006282008467740ull}},
+ {{10964968671057563176ull, 5039440430669711539ull,
+ 5426243050445487622ull, 10666405798403203685ull}},
+ {{10955754838860298353ull, 7697974614691938479ull,
+ 5802604364043796934ull, 12310337083160321132ull}},
+ {{2020816881108765590ull, 11827301330378587775ull,
+ 11428107909474365520ull, 14207634883319258514ull}},
+ {{17088069107880998350ull, 4283872614129133981ull,
+ 3596834484036483711ull, 16397348635874181367ull}},
+ {{17878879927905357932ull, 16765016545576715295ull,
+ 16689816215723394984ull, 9462273083962776199ull}},
+ {{13121733289080687293ull, 18283685101712419716ull,
+ 16276586284347626380ull, 10920620632484725600ull}},
+ {{17814811358648632259ull, 13245640156276305425ull,
+ 16363965810173909683ull, 12603732099085151178ull}},
+ {{4756697993914874888ull, 11508234184157253656ull,
+ 5137266535116401279ull, 14546248621894116172ull}},
+ {{5318236458935323174ull, 6543830884414701181ull,
+ 6453355338781772809ull, 16788150311867950084ull}},
+ {{6485710970464102310ull, 9658720758000782538ull,
+ 1405691438411884535ull, 9687789553853107178ull}},
+ {{16668567668910748869ull, 7353216905500064137ull,
+ 16398637311140236340ull, 11180894225541718927ull}},
+ {{10250898639443956700ull, 17209112682100433509ull,
+ 10404161081088486903ull, 12904119664018836844ull}},
+ {{8190593687966138954ull, 9395575747272723417ull,
+ 5270639644724875979ull, 14892932617404296676ull}},
+ {{16096765186944088526ull, 5812137315202163815ull,
+ 13827109944906121794ull, 17188266051577202911ull}},
+ {{13125058493821651226ull, 13878096157524874998ull,
+ 7819283672493662452ull, 9918680808189048078ull}},
+ {{10784977039313888136ull, 7095114120404217728ull,
+ 5980679097159643429ull, 11447370977331402726ull}},
+ {{18074025829186132275ull, 1141984379626550674ull,
+ 7557580538320593620ull, 13211666432945230258ull}},
+ {{884127375074722974ull, 5630658839879210216ull, 8888788495242174599ull,
+ 15247879210087606793ull}},
+ {{14794677677148287412ull, 15991859528909753139ull,
+ 2255166953101703543ull, 17597917839164816062ull}},
+ {{11781503818372409883ull, 16487377189598053250ull,
+ 1614766483381505408ull, 10155074945409931597ull}},
+ {{13901203812957478350ull, 17671725616207330354ull,
+ 9774501520532043416ull, 11720198729122693309ull}},
+ {{2841277750318224700ull, 62614824260888948ull, 7875289095414864909ull,
+ 13526543032773672749ull}},
+ {{4177215723684349918ull, 5549883551398310595ull,
+ 6548711429670794128ull, 15611285324269742443ull}},
+ {{10113135653152274419ull, 1238174514434849746ull,
+ 15010187426055142985ull, 18017332949391848572ull}},
+ {{15332868447221136909ull, 16659234357027498643ull,
+ 8156814090647504084ull, 10397103116953834012ull}},
+ {{15245187402216469644ull, 12129929088655149192ull,
+ 9861651730211963150ull, 11999528845718521943ull}},
+ {{11169863271521019024ull, 11690833164181629132ull,
+ 18055231442152805128ull, 13848924157002783033ull}},
+ {{5681139181384005971ull, 16315598095635316730ull,
+ 12429006944274865118ull, 15983352577617880224ull}},
+ {{0ull, 0ull, 0ull, 9223372036854775808ull}},
+ {{847738094735128551ull, 159020156881263929ull, 14298703881791668535ull,
+ 10644899600020376799ull}},
+ {{12571812103339493257ull, 9592188640606484874ull,
+ 15977522551232326327ull, 12285516299433008781ull}},
+ {{11255846670375652269ull, 16219642565822741785ull,
+ 1164180458167399492ull, 14178988662640388631ull}},
+ {{4768530159026621925ull, 11269558331910606010ull,
+ 14728279675391465720ull, 16364287392998134214ull}},
+ {{10435171899994305314ull, 3358688235984080491ull,
+ 10873005112892106269ull, 9443194724678278428ull}},
+ {{9001934648837042518ull, 12742858465034581069ull,
+ 7821978264675184102ull, 10898601872067700364ull}},
+ {{17621267265258286727ull, 4697230115438671198ull,
+ 9730745556445007669ull, 12578319756070083561ull}},
+ {{15489206033570711069ull, 5939008219696634639ull,
+ 7281543418588385486ull, 14516919669433371671ull}},
+ {{5582382164278045428ull, 1021128504191590019ull,
+ 15859662269683349667ull, 16754301112998936544ull}},
+ {{13306060077138970688ull, 17077419079040409017ull,
+ 602300193611639289ull, 9668256495766433483ull}},
+ {{16144900726383728979ull, 6332437060439625781ull,
+ 3394061071468721991ull, 11158350687084940805ull}},
+ {{841527738022137013ull, 8576187517129556015ull, 4780478900157118356ull,
+ 12878101662951253988ull}},
+ {{6209518431268106959ull, 6563228687006195825ull,
+ 8680557599339190037ull, 14862904661462481806ull}},
+ {{13777918056850427098ull, 13980713634323581067ull,
+ 3260730320187665275ull, 17153610117183879308ull}},
+ {{14026398967643035423ull, 16044002814696042637ull,
+ 13563648246219923183ull, 9898682214361989196ull}},
+ {{8580849201736980837ull, 7652064075251385167ull,
+ 12055336643618066002ull, 11424290153682525668ull}},
+ {{7703450277136593061ull, 30939122015382097ull, 1733744904199768989ull,
+ 13185028339041359606ull}},
+ {{16645858086931268484ull, 268706294728574543ull,
+ 4562366333509913804ull, 15217135591158481007ull}},
+ {{1535817262145462730ull, 16249574698204674087ull,
+ 1726174694286833848ull, 17562435942139069664ull}},
+ {{1327779613951528273ull, 12607890553358950732ull,
+ 6773080245737622022ull, 10134599720625107110ull}},
+ {{10146669700226523625ull, 6816618733538609533ull,
+ 17338427607494047961ull, 11696567815043613180ull}},
+ {{1218646606393179524ull, 8053984438814192242ull,
+ 5512554737593155320ull, 13499270067222312908ull}},
+ {{8529816360522570005ull, 2898610325645650649ull,
+ 12799329154556421864ull, 15579808985797328396ull}},
+ {{8976626101186384018ull, 17306366585957786234ull,
+ 18289272351796647404ull, 17981005404381600394ull}},
+ {{13259258789938866699ull, 3853966764738768487ull,
+ 3962898110873089456ull, 10376139901559067117ull}},
+ {{899097863387258947ull, 18205835716688941338ull,
+ 5828614502416977816ull, 11975334730781032005ull}},
+ {{6805696657844643720ull, 11269663690239600300ull,
+ 15713752492130876427ull, 13821001188766021149ull}},
+ {{1390669429605106863ull, 9874674503958832077ull,
+ 10784451562526769943ull, 15951126056533488631ull}},
+ {{5704986635434998471ull, 13359511205918707297ull,
+ 13484363347568202582ull, 18409550726197325520ull}},
+ {{8031416311578790746ull, 15203770801091158414ull,
+ 10108131133879485063ull, 10623436763626360685ull}},
+ {{14540970352057967818ull, 10823414366732926995ull,
+ 16152175176069010361ull, 12260745560745135745ull}},
+ {{15950896424073439808ull, 7311065895593189991ull,
+ 14504991862333000338ull, 14150400200058902426ull}},
+ {{5978819348613013533ull, 5596367464999577452ull,
+ 9804643584580705193ull, 16331292810031855499ull}},
+ {{8586457898440847299ull, 6018330550275346810ull,
+ 7956755163056284140ull, 9424154832238877876ull}},
+ {{1114429888821394320ull, 1760611426277998851ull,
+ 9839409379426382903ull, 10876627507095459665ull}},
+ {{7554605751361075608ull, 6504275622057553570ull,
+ 9148491728899045148ull, 12552958650829068784ull}},
+ {{9208049516541304162ull, 15518058123431536615ull,
+ 17563500997894963674ull, 14487649851631658771ull}},
+ {{1484107481346855224ull, 16657394431011607502ull,
+ 12009304572091620947ull, 16720520162760224108ull}},
+ {{14325586681310127114ull, 11250726580617083666ull,
+ 2403442209646777766ull, 9648762821313776241ull}},
+ {{14963893077912294692ull, 3450059817568720983ull,
+ 15313875826588494017ull, 11135852602159508258ull}}
+};
+
+static const int bid_outertable_exp[] = {
+ -16839,
+ -16413,
+ -15988,
+ -15563,
+ -15138,
+ -14713,
+ -14287,
+ -13862,
+ -13437,
+ -13012,
+ -12586,
+ -12161,
+ -11736,
+ -11311,
+ -10886,
+ -10460,
+ -10035,
+ -9610,
+ -9185,
+ -8760,
+ -8334,
+ -7909,
+ -7484,
+ -7059,
+ -6634,
+ -6208,
+ -5783,
+ -5358,
+ -4933,
+ -4508,
+ -4082,
+ -3657,
+ -3232,
+ -2807,
+ -2382,
+ -1956,
+ -1531,
+ -1106,
+ -681,
+ -255,
+ 170,
+ 595,
+ 1020,
+ 1445,
+ 1871,
+ 2296,
+ 2721,
+ 3146,
+ 3571,
+ 3997,
+ 4422,
+ 4847,
+ 5272,
+ 5697,
+ 6123,
+ 6548,
+ 6973,
+ 7398,
+ 7823,
+ 8249,
+ 8674,
+ 9099,
+ 9524,
+ 9949,
+ 10375,
+ 10800,
+ 11225,
+ 11650,
+ 12075,
+ 12501,
+ 12926,
+ 13351,
+ 13776,
+ 14202,
+ 14627,
+ 15052,
+ 15477,
+ 15902,
+ 16328,
+ 16753,
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+static const BID_UINT128 bid_breakpoints_binary32[] = {
+ {{17291492046443221751ull, 474778387287989ull}},
+ {{17522542451896487724ull, 379822709830391ull}},
+ {{10328685146775279856ull, 303858167864313ull}},
+ {{12836547420098537447ull, 486173068582901ull}},
+ {{6579889121336919634ull, 388938454866321ull}},
+ {{1574562482327625384ull, 311150763893057ull}},
+ {{6208648786466110938ull, 497841222228891ull}},
+ {{1277570214430978427ull, 398272977783113ull}},
+ {{8400753801028603388ull, 318618382226490ull}},
+ {{13441206081645765421ull, 509789411562384ull}},
+ {{14442313680058522660ull, 407831529249907ull}},
+ {{4175153314562997481ull, 326265223399926ull}},
+ {{17748291747526526940ull, 522024357439881ull}},
+ {{10509284583279311229ull, 417619485951905ull}},
+ {{8407427666623448983ull, 334095588761524ull}},
+ {{2383837822371787403ull, 534552942018439ull}},
+ {{5596419072639340246ull, 427642353614751ull}},
+ {{787786443369561873ull, 342113882891801ull}},
+ {{12328504753617029967ull, 547382212626881ull}},
+ {{6173454988151713650ull, 437905770101505ull}},
+ {{4938763990521370920ull, 350324616081204ull}},
+ {{15280720014318014119ull, 560519385729926ull}},
+ {{8535227196712500972ull, 448415508583941ull}},
+ {{3138832942628090454ull, 358732406867153ull}},
+ {{9889763983586293010ull, 286985925493722ull}},
+ {{1066227114770427523ull, 459177480789956ull}},
+ {{15610376950783983311ull, 367341984631964ull}},
+ {{16177650375369096972ull, 293873587705571ull}},
+ {{58798897397182893ull, 470197740328915ull}},
+ {{47039117917746314ull, 376158192263132ull}},
+ {{11105677738559928021ull, 300926553810505ull}},
+ {{17769084381695884834ull, 481482486096808ull}},
+ {{3147221061130976897ull, 385185988877447ull}},
+ {{13585823293130512487ull, 308148791101957ull}},
+ {{6979922010041178687ull, 493038065763132ull}},
+ {{16651984052258673919ull, 394430452610505ull}},
+ {{13321587241806939135ull, 315544362088404ull}},
+ {{10246493142665371647ull, 504870979341447ull}},
+ {{818496884648476671ull, 403896783473158ull}},
+ {{8033495137202601983ull, 323117426778526ull}},
+ {{5474894590040342527ull, 516987882845642ull}},
+ {{15447962116258004991ull, 413590306276513ull}},
+ {{1290323248780673023ull, 330872245021211ull}},
+ {{13132563642274807807ull, 529395592033937ull}},
+ {{3127353284336025599ull, 423516473627150ull}},
+ {{2501882627468820479ull, 338813178901720ull}},
+ {{4003012203950112767ull, 542101086242752ull}},
+ {{14270456207385821183ull, 433680868994201ull}},
+ {{7727016151166746623ull, 346944695195361ull}},
+ {{4984528212382973951ull, 555111512312578ull}},
+ {{11366320199390199807ull, 444089209850062ull}},
+ {{1714358530028339199ull, 355271367880050ull}},
+ {{1371486824022671359ull, 284217094304040ull}},
+ {{2194378918436274175ull, 454747350886464ull}},
+ {{5444851949490929663ull, 363797880709171ull}},
+ {{666532744850833407ull, 291038304567337ull}},
+ {{4755801206503243775ull, 465661287307739ull}},
+ {{7493989779944505343ull, 372529029846191ull}},
+ {{2305843009213693951ull, 298023223876953ull}},
+ {{18446744073709551615ull, 476837158203124ull}},
+ {{18446744073709551615ull, 381469726562499ull}},
+ {{18446744073709551615ull, 305175781249999ull}},
+ {{18446744073709551615ull, 488281249999999ull}},
+ {{18446744073709551615ull, 390624999999999ull}},
+ {{18446744073709551615ull, 312499999999999ull}},
+ {{18446744073709551615ull, 499999999999999ull}},
+ {{18446744073709551615ull, 399999999999999ull}},
+ {{18446744073709551615ull, 319999999999999ull}},
+ {{18446744073709551615ull, 511999999999999ull}},
+ {{18446744073709551615ull, 409599999999999ull}},
+ {{18446744073709551615ull, 327679999999999ull}},
+ {{18446744073709551615ull, 524287999999999ull}},
+ {{18446744073709551615ull, 419430399999999ull}},
+ {{18446744073709551615ull, 335544319999999ull}},
+ {{18446744073709551615ull, 536870911999999ull}},
+ {{18446744073709551615ull, 429496729599999ull}},
+ {{18446744073709551615ull, 343597383679999ull}},
+ {{18446744073709551615ull, 549755813887999ull}},
+ {{18446744073709551615ull, 439804651110399ull}},
+ {{18446744073709551615ull, 351843720888319ull}},
+ {{18446744073709551615ull, 281474976710655ull}},
+ {{11068046444225730969ull, 450359962737049ull}},
+ {{12543785970122495098ull, 360287970189639ull}},
+ {{13724377590839906402ull, 288230376151711ull}},
+ {{14580306515860029597ull, 461168601842738ull}},
+ {{596198768462292708ull, 368934881474191ull}},
+ {{15234354273737475459ull, 295147905179352ull}},
+ {{9617571579012319442ull, 472236648286964ull}},
+ {{11383406077951765876ull, 377789318629571ull}},
+ {{5417376047619502378ull, 302231454903657ull}},
+ {{12357150490933114128ull, 483570327845851ull}},
+ {{6196371578004580979ull, 386856262276681ull}},
+ {{1267748447661754460ull, 309485009821345ull}},
+ {{2028397516258807136ull, 495176015714152ull}},
+ {{12690764457232776679ull, 396140812571321ull}},
+ {{6463262751044311020ull, 316912650057057ull}},
+ {{14030569216412807955ull, 507060240091291ull}},
+ {{7535106558388336041ull, 405648192073033ull}},
+ {{13406782876194489479ull, 324518553658426ull}},
+ {{14072154972427362520ull, 519229685853482ull}},
+ {{3879026348458069369ull, 415383748682786ull}},
+ {{17860616337734096788ull, 332306998946228ull}},
+ {{6440893251923092922ull, 531691198313966ull}},
+ {{1463365786796564015ull, 425352958651173ull}},
+ {{8549390258921071858ull, 340282366920938ull}},
+ {{9989675599531804650ull, 544451787073501ull}},
+ {{4302391664883533397ull, 435561429658801ull}},
+ {{18199308590874468010ull, 348449143727040ull}},
+ {{10672149671689597200ull, 557518629963265ull}},
+ {{8537719737351677760ull, 446014903970612ull}},
+ {{17898222234107073178ull, 356811923176489ull}},
+ {{18007926602027568865ull, 285449538541191ull}},
+ {{2987240860050737922ull, 456719261665907ull}},
+ {{13457839132266321307ull, 365375409332725ull}},
+ {{10766271305813057046ull, 292300327466180ull}},
+ {{17226034089300891273ull, 467680523945888ull}},
+ {{2712780827214982049ull, 374144419156711ull}},
+ {{16927619920739626932ull, 299315535325368ull}},
+ {{4948098984731941152ull, 478904856520590ull}},
+ {{3958479187785552922ull, 383123885216472ull}}
+};
+
+static const BID_UINT128 bid_breakpoints_binary64[] = {
+ {{5261314576080512960ull, 21426681862861333ull}},
+ {{4728754506986910400ull, 34282690980578133ull}},
+ {{11161701235073348928ull, 27426152784462506ull}},
+ {{5240012173316768832ull, 21940922227570005ull}},
+ {{8384019477306830144ull, 35105475564112008ull}},
+ {{14085913211329284736ull, 28084380451289606ull}},
+ {{7579381754321517504ull, 22467504361031685ull}},
+ {{12127010806914427968ull, 35948006977650696ull}},
+ {{6012259830789632064ull, 28758405582120557ull}},
+ {{15877854308857436608ull, 23006724465696445ull}},
+ {{12702283447085949312ull, 18405379572557156ull}},
+ {{12944955885853698240ull, 29448607316091450ull}},
+ {{10355964708682958592ull, 23558885852873160ull}},
+ {{8284771766946366848ull, 18847108682298528ull}},
+ {{9566286012372276672ull, 30155373891677645ull}},
+ {{7653028809897821312ull, 24124299113342116ull}},
+ {{2433074233176346752ull, 19299439290673693ull}},
+ {{203569958340244480ull, 30879102865077909ull}},
+ {{3852204781414105920ull, 24703282292062327ull}},
+ {{14149810269357015680ull, 19762625833649861ull}},
+ {{15260998801487404480ull, 31620201333839778ull}},
+ {{1140752596964192576ull, 25296161067071823ull}},
+ {{8291299707055174720ull, 20236928853657458ull}},
+ {{9576730716546369216ull, 32379086165851933ull}},
+ {{15040082202720916032ull, 25903268932681546ull}},
+ {{8342716947434822464ull, 20722615146145237ull}},
+ {{17037695930637626304ull, 33156184233832379ull}},
+ {{17319505559252011392ull, 26524947387065903ull}},
+ {{2787558003175878144ull, 21219957909652723ull}},
+ {{770743990339494720ull, 33951932655444357ull}},
+ {{11684641636497326720ull, 27161546124355485ull}},
+ {{9347713309197861376ull, 21729236899484388ull}},
+ {{11266992479974667904ull, 34766779039175021ull}},
+ {{5324245169237824000ull, 27813423231340017ull}},
+ {{15327442579615990144ull, 22250738585072013ull}},
+ {{2387815238934122304ull, 35601181736115222ull}},
+ {{12978298635373028800ull, 28480945388892177ull}},
+ {{3003941278814602368ull, 22784756311113742ull}},
+ {{13471199467277412864ull, 18227805048890993ull}},
+ {{17864570332901950336ull, 29164488078225589ull}},
+ {{17981005081063470592ull, 23331590462580471ull}},
+ {{10695455250108866112ull, 18665272370064377ull}},
+ {{2355333141206544512ull, 29864435792103004ull}},
+ {{5573615327707145920ull, 23891548633682403ull}},
+ {{11837589891649537408ull, 19113238906945922ull}},
+ {{4182748567671618560ull, 30581182251113476ull}},
+ {{18103594113104936128ull, 24464945800890780ull}},
+ {{14482875290483948864ull, 19571956640712624ull}},
+ {{12104554020548587264ull, 31315130625140199ull}},
+ {{13372992031180780160ull, 25052104500112159ull}},
+ {{14387742439686534400ull, 20041683600089727ull}},
+ {{8262992644530813824ull, 32066693760143564ull}},
+ {{10299742930366561344ull, 25653355008114851ull}},
+ {{4550445529551338752ull, 20522684006491881ull}},
+ {{18348759291507873024ull, 32836294410387009ull}},
+ {{18368356247948208704ull, 26269035528309607ull}},
+ {{7315987368874746304ull, 21015228422647686ull}},
+ {{4326882160715773504ull, 33624365476236298ull}},
+ {{10840203358056439424ull, 26899492380989038ull}},
+ {{16050860315928972160ull, 21519593904791230ull}},
+ {{7234632431776803904ull, 34431350247665969ull}},
+ {{9477054760163353472ull, 27545080198132775ull}},
+ {{7581643808130682752ull, 22036064158506220ull}},
+ {{12130630093009092416ull, 35257702653609952ull}},
+ {{2325806444923453248ull, 28206162122887962ull}},
+ {{12928691600164493568ull, 22564929698310369ull}},
+ {{14032302094873505216ull, 18051943758648295ull}},
+ {{4004939278088056704ull, 28883110013837273ull}},
+ {{10582649051954265984ull, 23106488011069818ull}},
+ {{15844816871047233408ull, 18485190408855854ull}},
+ {{14283660549449842560ull, 29576304654169367ull}},
+ {{4048230810076053376ull, 23661043723335494ull}},
+ {{6927933462802753024ull, 18928834978668395ull}},
+ {{11084693540484404864ull, 30286135965869432ull}},
+ {{1489057202903703232ull, 24228908772695546ull}},
+ {{15948641021290603904ull, 19383127018156436ull}},
+ {{18139128004581145600ull, 31013003229050298ull}},
+ {{3443255959439185472ull, 24810402583240239ull}},
+ {{6443953582293258688ull, 19848322066592191ull}},
+ {{2931628102185393280ull, 31757315306547506ull}},
+ {{17102697740715955904ull, 25405852245238004ull}},
+ {{17371507007314675072ull, 20324681796190403ull}},
+ {{5658318323252018176ull, 32519490873904646ull}},
+ {{837305843859704192ull, 26015592699123717ull}},
+ {{11737891119313494336ull, 20812474159298973ull}},
+ {{15091276976159680640ull, 33299958654878357ull}},
+ {{4694323951443923840ull, 26639966923902686ull}},
+ {{66110346413228736ull, 21311973539122149ull}},
+ {{7484474183744986688ull, 34099157662595438ull}},
+ {{13366276976479809984ull, 27279326130076350ull}},
+ {{10693021581183848000ull, 21823460904061080ull}},
+ {{17108834529894156800ull, 34917537446497728ull}},
+ {{2619021179689594432ull, 27934029957198183ull}},
+ {{9473914573235496192ull, 22347223965758546ull}},
+ {{7779565687692973312ull, 35755558345213674ull}},
+ {{9913001364896288960ull, 28604446676170939ull}},
+ {{11619749906658941440ull, 22883557340936751ull}},
+ {{5606451110585242816ull, 18306845872749401ull}},
+ {{1591624147452567936ull, 29290953396399042ull}},
+ {{12341345762187785280ull, 23432762717119233ull}},
+ {{17251774239234048896ull, 18746210173695386ull}},
+ {{1777397079581105984ull, 29993936277912619ull}},
+ {{5111266478406795072ull, 23995149022330095ull}},
+ {{4089013182725436096ull, 19196119217864076ull}},
+ {{17610467536586428672ull, 30713790748582521ull}},
+ {{10399025214527232640ull, 24571032598866017ull}},
+ {{940522542137965440ull, 19656826079092814ull}},
+ {{8883533696904565376ull, 31450921726548502ull}},
+ {{18174873401749383296ull, 25160737381238801ull}},
+ {{10850549906657596288ull, 20128589904991041ull}},
+ {{9982182221168333440ull, 32205743847985666ull}},
+ {{4296396962192756416ull, 25764595078388533ull}},
+ {{10815815199238025792ull, 20611676062710826ull}},
+ {{9926606689297020608ull, 32978681700337322ull}},
+ {{562587721953795840ull, 26382945360269858ull}},
+ {{7828767807046857280ull, 21106356288215886ull}},
+ {{5147330861791151040ull, 33770170061145418ull}},
+ {{11496562318916741504ull, 27016136048916334ull}},
+ {{12886598669875303488ull, 21612908839133067ull}},
+ {{5861162612832844352ull, 34580654142612908ull}},
+ {{12067627719750096128ull, 27664523314090326ull}},
+ {{5964753361058166592ull, 22131618651272261ull}},
+ {{2164907748209245888ull, 35410589842035618ull}},
+ {{9110623828051217344ull, 28328471873628494ull}},
+ {{10977847877182884160ull, 22662777498902795ull}},
+ {{8782278301746307328ull, 18130221999122236ull}},
+ {{6672947653310271104ull, 29008355198595578ull}},
+ {{12717055752132037568ull, 23206684158876462ull}},
+ {{2794946972221809408ull, 18565347327101170ull}},
+ {{4471915155554895040ull, 29704555723361872ull}},
+ {{14645578568669646976ull, 23763644578689497ull}},
+ {{4337765225451896960ull, 19010915662951598ull}},
+ {{3251075545981124800ull, 30417465060722557ull}},
+ {{13668906881010630784ull, 24333972048578045ull}},
+ {{10935125504808504640ull, 19467177638862436ull}},
+ {{10117503178209786752ull, 31147484222179898ull}},
+ {{15472700172051650048ull, 24917987377743918ull}},
+ {{1310113693415589056ull, 19934389902195135ull}},
+ {{2096181909464942528ull, 31895023843512216ull}},
+ {{16434340786539595328ull, 25516019074809772ull}},
+ {{5768774999747855616ull, 20412815259847818ull}},
+ {{5540691184854658688ull, 32660504415756509ull}},
+ {{8121901762625637248ull, 26128403532605207ull}},
+ {{17565567854326240768ull, 20902722826084165ull}},
+ {{9658164493212433600ull, 33444356521734665ull}},
+ {{7726531594569946880ull, 26755485217387732ull}},
+ {{17249271719881688448ull, 21404388173910185ull}},
+ {{9152090678101149952ull, 34247021078256297ull}},
+ {{18389718986706650944ull, 27397616862605037ull}},
+ {{7333077559881500096ull, 21918093490084030ull}},
+ {{11732924095810400192ull, 35068949584134448ull}},
+ {{16765036906132140800ull, 28055159667307558ull}},
+ {{2343983080679981632ull, 22444127733846047ull}},
+ {{7439721743829880960ull, 35910604374153675ull}},
+ {{5951777395063904768ull, 28728483499322940ull}},
+ {{4761421916051123840ull, 22982786799458352ull}},
+ {{14877183977066630016ull, 18386229439566681ull}},
+ {{16424796733822787392ull, 29417967103306690ull}},
+ {{13139837387058229888ull, 23534373682645352ull}},
+ {{3133172280162763264ull, 18827498946116282ull}},
+ {{8702424463002331584ull, 30123998313786051ull}},
+ {{3272590755659954944ull, 24099198651028841ull}},
+ {{17375467863495605248ull, 19279358920823072ull}},
+ {{13043353322625327104ull, 30846974273316916ull}},
+ {{6745333843358351360ull, 24677579418653533ull}},
+ {{12774964704170501696ull, 19742063534922826ull}},
+ {{13061245897188982144ull, 31587301655876522ull}},
+ {{3070299088267365056ull, 25269841324701218ull}},
+ {{9834936900097712704ull, 20215873059760974ull}},
+ {{4667852595930609344ull, 32345396895617559ull}},
+ {{7423630891486397760ull, 25876317516494047ull}},
+ {{17006951157414849216ull, 20701054013195237ull}},
+ {{12453726592896117440ull, 33121686421112380ull}},
+ {{9962981274316893952ull, 26497349136889904ull}},
+ {{11659733834195425472ull, 21197879309511923ull}},
+ {{14966225319970770432ull, 33916606895219077ull}},
+ {{4594282626492795712ull, 27133285516175262ull}},
+ {{14743472545419967552ull, 21706628412940209ull}},
+ {{12521509628446217088ull, 34730605460704335ull}},
+ {{10017207702756973632ull, 27784484368563468ull}},
+ {{15392463791689399552ull, 22227587494850774ull}},
+ {{13559895622477308352ull, 35564139991761239ull}},
+ {{14537265312723756992ull, 28451311993408991ull}},
+ {{7940463435437095296ull, 22761049594727193ull}},
+ {{13731068377833496832ull, 18208839675781754ull}},
+ {{10901662960307864000ull, 29134143481250807ull}},
+ {{1342632738762470592ull, 23307314785000646ull}},
+ {{15831501449977617728ull, 18645851828000516ull}},
+ {{17951704690480367744ull, 29833362924800826ull}},
+ {{10672014937642383872ull, 23866690339840661ull}},
+ {{4848263135371996800ull, 19093352271872529ull}},
+ {{15135918646079015488ull, 30549363634996046ull}},
+ {{8419386102121302080ull, 24439490907996837ull}},
+ {{17803555325922772608ull, 19551592726397469ull}},
+ {{17417642077250705216ull, 31282548362235951ull}},
+ {{10244764847058653888ull, 25026038689788761ull}},
+ {{4506463062905012736ull, 20020830951831009ull}},
+ {{14589038530131841088ull, 32033329522929614ull}},
+ {{15360579638847383168ull, 25626663618343691ull}},
+ {{8599114896335996224ull, 20501330894674953ull}},
+ {{10069235019395683648ull, 32802129431479925ull}},
+ {{8055388015516546880ull, 26241703545183940ull}},
+ {{6444310412413237504ull, 20993362836147152ull}},
+ {{14000245474603090368ull, 33589380537835443ull}},
+ {{132149935456741312ull, 26871504430268355ull}},
+ {{105719948365393024ull, 21497203544214684ull}},
+ {{7547849546868449536ull, 34395525670743494ull}},
+ {{9727628452236669952ull, 27516420536594795ull}},
+ {{7782102761789335936ull, 22013136429275836ull}},
+ {{5072666789379116928ull, 35221018286841338ull}},
+ {{11436831060987114176ull, 28176814629473070ull}},
+ {{9149464848789691328ull, 22541451703578456ull}},
+ {{3630223064289842752ull, 18033161362862765ull}},
+ {{5808356902863748416ull, 28853058180580424ull}},
+ {{8336034337032909056ull, 23082446544464339ull}},
+ {{10358176284368237568ull, 18465957235571471ull}},
+ {{9194384425505359424ull, 29545531576914354ull}},
+ {{11044856355146197888ull, 23636425261531483ull}},
+ {{16214582713600778944ull, 18909140209225186ull}},
+ {{117890638567874048ull, 30254624334760299ull}},
+ {{3783661325596209536ull, 24203699467808239ull}},
+ {{6716277875218877952ull, 19362959574246591ull}},
+ {{3367346970866384128ull, 30980735318794546ull}},
+ {{17451272835660748544ull, 24784588255035636ull}},
+ {{10271669453786688512ull, 19827670604028509ull}},
+ {{5366624681832970688ull, 31724272966445615ull}},
+ {{4293299745466376576ull, 25379418373156492ull}},
+ {{14502686240598832192ull, 20303534698525193ull}},
+ {{1068205096506669632ull, 32485655517640310ull}},
+ {{854564077205335680ull, 25988524414112248ull}},
+ {{8062348891248089216ull, 20790819531289798ull}},
+ {{9210409411255032384ull, 33265311250063677ull}},
+ {{18436373973229756864ull, 26612249000050941ull}},
+ {{11059750363841895168ull, 21289799200040753ull}},
+ {{14006251767405121984ull, 34063678720065205ull}},
+ {{11205001413924097600ull, 27250942976052164ull}},
+ {{12653349945881188352ull, 21800754380841731ull}},
+ {{12866662283926080768ull, 34881207009346770ull}},
+ {{10293329827140864640ull, 27904965607477416ull}},
+ {{4545315046970781376ull, 22323972485981933ull}},
+ {{3583155260411339840ull, 35718355977571093ull}},
+ {{10245221837812892544ull, 28574684782056874ull}},
+ {{11885526284992224320ull, 22859747825645499ull}},
+ {{13197769842735689792ull, 18287798260516399ull}},
+ {{10048385304151372736ull, 29260477216826239ull}},
+ {{11728057058063008512ull, 23408381773460991ull}},
+ {{5693096831708496448ull, 18726705418768793ull}},
+ {{5419606115991684032ull, 29962728670030069ull}},
+ {{8025033707535257536ull, 23970182936024055ull}},
+ {{6420026966028206016ull, 19176146348819244ull}},
+ {{17650740775128950336ull, 30681834158110790ull}},
+ {{14120592620103160256ull, 24545467326488632ull}},
+ {{3917776466598707520ull, 19636373861190906ull}},
+ {{17336488790783663040ull, 31418198177905449ull}},
+ {{17558539847368840768ull, 25134558542324359ull}},
+ {{17736180692636982912ull, 20107646833859487ull}},
+ {{13620493849251531392ull, 32172234934175180ull}},
+ {{10896395079401225152ull, 25737787947340144ull}},
+ {{12406464878262890432ull, 20590230357872115ull}},
+ {{1403599731511073088ull, 32944368572595385ull}},
+ {{1122879785208858432ull, 26355494858076308ull}},
+ {{8277001457650907392ull, 21084395886461046ull}},
+ {{5864504702757631232ull, 33735033418337674ull}},
+ {{8380952576948015296ull, 26988026734670139ull}},
+ {{10394110876300322560ull, 21590421387736111ull}},
+ {{9251879772596695424ull, 34544674220377778ull}},
+ {{14780201447561177024ull, 27635739376302222ull}},
+ {{4445463528565120960ull, 22108591501041778ull}},
+ {{3423392830962283200ull, 35373746401666845ull}},
+ {{2738714264769826560ull, 28298997121333476ull}},
+ {{16948366670783502528ull, 22639197697066780ull}},
+ {{13558693336626802048ull, 18111358157653424ull}},
+ {{10625862894377152256ull, 28978173052245479ull}},
+ {{12190039130243632128ull, 23182538441796383ull}},
+ {{17130728933678726336ull, 18546030753437106ull}},
+ {{1583724590692589952ull, 29673649205499371ull}},
+ {{16024374931521713216ull, 23738919364399496ull}},
+ {{9130151130475460224ull, 18991135491519597ull}},
+ {{18297590623502646720ull, 30385816786431355ull}},
+ {{14638072498802117376ull, 24308653429145084ull}},
+ {{15399806813783604224ull, 19446922743316067ull}},
+ {{9882295643086125504ull, 31115076389305708ull}},
+ {{15284534143952721024ull, 24892061111444566ull}},
+ {{8538278500420266496ull, 19913648889155653ull}},
+ {{9971896785930516096ull, 31861838222649045ull}},
+ {{7977517428744412864ull, 25489470578119236ull}},
+ {{2692665128253619968ull, 20391576462495389ull}},
+ {{11686961834689612608ull, 32626522339992622ull}},
+ {{1970871838267869440ull, 26101217871994098ull}},
+ {{8955395100098116160ull, 20880974297595278ull}},
+ {{10639283345415075584ull, 33409558876152445ull}},
+ {{8511426676332060480ull, 26727647100921956ull}},
+ {{3119792526323738048ull, 21382117680737565ull}},
+ {{4991668042117980864ull, 34211388289180104ull}},
+ {{7682683248436295040ull, 27369110631344083ull}},
+ {{13524844228232856640ull, 21895288505075266ull}},
+ {{14261053135688750016ull, 35032461608120426ull}},
+ {{7719493693809089664ull, 28025969286496341ull}},
+ {{2486246140305361408ull, 22420775429197073ull}},
+ {{288645009746667968ull, 35873240686715317ull}},
+ {{11298962452023065344ull, 28698592549372253ull}},
+ {{16417867591102272896ull, 22958874039497802ull}},
+ {{5755596443397997696ull, 18367099231598242ull}},
+ {{12898303124178706624ull, 29387358770557187ull}},
+ {{2939944869859144640ull, 23509887016445750ull}},
+ {{2351955895887315712ull, 18807909613156600ull}},
+ {{3763129433419705152ull, 30092655381050560ull}},
+ {{3010503546735764096ull, 24074124304840448ull}},
+ {{9787100466872431936ull, 19259299443872358ull}},
+ {{11970011932253980800ull, 30814879110195773ull}},
+ {{16954707175287005248ull, 24651903288156618ull}},
+ {{2495719296003873216ull, 19721522630525295ull}},
+ {{3993150873606197184ull, 31554436208840472ull}},
+ {{14262567143110688704ull, 25243548967072377ull}},
+ {{4031356085004730304ull, 20194839173657902ull}},
+ {{10139518550749478848ull, 32311742677852643ull}},
+ {{15490312470083403712ull, 25849394142282114ull}},
+ {{16081598790808633280ull, 20679515313825691ull}},
+ {{18351860435809992640ull, 33087224502121106ull}},
+ {{10992139533906083776ull, 26469779601696885ull}},
+ {{8793711627124867008ull, 21175823681357508ull}},
+ {{10380589788657876928ull, 33881317890172013ull}},
+ {{15683169460410122176ull, 27105054312137610ull}},
+ {{12546535568328097728ull, 21684043449710088ull}},
+ {{16385108094583046080ull, 34694469519536141ull}},
+ {{9418737660924526528ull, 27755575615628913ull}},
+ {{14913687758223441856ull, 22204460492503130ull}},
+ {{5415156339447955392ull, 35527136788005009ull}},
+ {{8021473886300274624ull, 28421709430404007ull}},
+ {{17485225553265950656ull, 22737367544323205ull}},
+ {{13988180442612760512ull, 18189894035458564ull}},
+ {{11313042263954685888ull, 29103830456733703ull}},
+ {{16429131440647569344ull, 23283064365386962ull}},
+ {{5764607523034234816ull, 18626451492309570ull}},
+ {{9223372036854775744ull, 29802322387695312ull}},
+ {{18446744073709551552ull, 23841857910156249ull}},
+ {{18446744073709551552ull, 19073486328124999ull}},
+ {{18446744073709551552ull, 30517578124999999ull}},
+ {{18446744073709551552ull, 24414062499999999ull}},
+ {{18446744073709551552ull, 19531249999999999ull}},
+ {{18446744073709551552ull, 31249999999999999ull}},
+ {{18446744073709551552ull, 24999999999999999ull}},
+ {{18446744073709551552ull, 19999999999999999ull}},
+ {{18446744073709551552ull, 31999999999999999ull}},
+ {{18446744073709551552ull, 25599999999999999ull}},
+ {{18446744073709551552ull, 20479999999999999ull}},
+ {{18446744073709551552ull, 32767999999999999ull}},
+ {{18446744073709551552ull, 26214399999999999ull}},
+ {{18446744073709551552ull, 20971519999999999ull}},
+ {{18446744073709551552ull, 33554431999999999ull}},
+ {{18446744073709551552ull, 26843545599999999ull}},
+ {{18446744073709551552ull, 21474836479999999ull}},
+ {{18446744073709551552ull, 34359738367999999ull}},
+ {{18446744073709551552ull, 27487790694399999ull}},
+ {{18446744073709551552ull, 21990232555519999ull}},
+ {{18446744073709551552ull, 35184372088831999ull}},
+ {{18446744073709551552ull, 28147497671065599ull}},
+ {{18446744073709551552ull, 22517998136852479ull}},
+ {{18446744073709551552ull, 18014398509481983ull}},
+ {{7378697629483820608ull, 28823037615171174ull}},
+ {{9592306918328966784ull, 23058430092136939ull}},
+ {{11363194349405083776ull, 18446744073709551ull}},
+ {{10802413329564313408ull, 29514790517935282ull}},
+ {{1263233034167630080ull, 23611832414348226ull}},
+ {{15767981686301745344ull, 18889465931478580ull}},
+ {{6782026624373240960ull, 30223145490365729ull}},
+ {{9114970114240503040ull, 24178516392292583ull}},
+ {{14670673720876223104ull, 19342813113834066ull}},
+ {{16094380323918136320ull, 30948500982134506ull}},
+ {{9186155444392598720ull, 24758800785707605ull}},
+ {{7348924355514078976ull, 19807040628566084ull}},
+ {{690232524596795392ull, 31691265005705735ull}},
+ {{552186019677436352ull, 25353012004564588ull}},
+ {{7820446445225769728ull, 20282409603651670ull}},
+ {{12512714312361231552ull, 32451855365842672ull}},
+ {{2631473820405164608ull, 25961484292674138ull}},
+ {{9483876685807952320ull, 20769187434139310ull}},
+ {{15174202697292723712ull, 33230699894622896ull}},
+ {{8450013343092268608ull, 26584559915698317ull}},
+ {{17828057118699545856ull, 21267647932558653ull}},
+ {{6388798501467811456ull, 34028236692093846ull}},
+ {{1421689986432338880ull, 27222589353675077ull}},
+ {{12205398433371602048ull, 21778071482940061ull}},
+ {{12149939863910742656ull, 34844914372704098ull}},
+ {{17098649520612414784ull, 27875931498163278ull}},
+ {{2610873172264200832ull, 22300745198530623ull}},
+ {{488048260880811008ull, 35681192317648997ull}},
+ {{11458485052930379776ull, 28544953854119197ull}},
+ {{1788090412860483200ull, 22835963083295358ull}},
+ {{8809169959772207168ull, 18268770466636286ull}},
+ {{6715974306151710848ull, 29230032746618058ull}},
+ {{12751477074405189312ull, 23384026197294446ull}},
+ {{6511832844782241152ull, 18707220957835557ull}},
+ {{14108281366393496128ull, 29931553532536891ull}},
+ {{7597276278372886592ull, 23945242826029513ull}},
+ {{13456518652182129920ull, 19156194260823610ull}},
+ {{3083685769781856256ull, 30649910817317777ull}},
+ {{13534995060051216000ull, 24519928653854221ull}},
+ {{7138647233299062464ull, 19615942923083377ull}},
+ {{15111184388020410240ull, 31385508676933403ull}},
+ {{1020901066190597248ull, 25108406941546723ull}},
+ {{8195418482436298432ull, 20086725553237378ull}},
+ {{9423320757156167168ull, 32138760885179805ull}},
+ {{7538656605724933760ull, 25711008708143844ull}},
+ {{9720274099321857280ull, 20568806966515075ull}},
+ {{15552438558914971712ull, 32910091146424120ull}},
+ {{12441950847131977344ull, 26328072917139296ull}},
+ {{6264211862963671552ull, 21062458333711437ull}},
+ {{13712087795483784832ull, 33699933333938299ull}},
+ {{14659019051128938176ull, 26959946667150639ull}},
+ {{15416564055645060864ull, 21567957333720511ull}},
+ {{17287804859548276736ull, 34508731733952818ull}},
+ {{2762197443412890432ull, 27606985387162255ull}},
+ {{2209757954730312320ull, 22085588309729804ull}},
+ {{10914310357052320384ull, 35336941295567686ull}},
+ {{5042099470899945984ull, 28269553036454149ull}},
+ {{7723028391461867136ull, 22615642429163319ull}},
+ {{9867771527911404032ull, 18092513943330655ull}},
+ {{15788434444658246400ull, 28948022309329048ull}},
+ {{1562701111500866176ull, 23158417847463239ull}},
+ {{4939509703942603264ull, 18526734277970591ull}},
+ {{524517896824344576ull, 29642774844752946ull}},
+ {{15177009576427116928ull, 23714219875802356ull}},
+ {{8452258846399783232ull, 18971375900641885ull}},
+ {{13523614154239653184ull, 30354201441027016ull}},
+ {{7129542508649812224ull, 24283361152821613ull}},
+ {{13082331636403670400ull, 19426688922257290ull}},
+ {{2484986544536321088ull, 31082702275611665ull}},
+ {{1987989235629056832ull, 24866161820489332ull}},
+ {{12658437832728976448ull, 19892929456391465ull}},
+ {{1806756458656810688ull, 31828687130226345ull}},
+ {{1445405166925448576ull, 25462949704181076ull}},
+ {{15913719392508000128ull, 20370359763344860ull}},
+ {{7015206954303248640ull, 32592575621351777ull}},
+ {{16680212007668329856ull, 26074060497081421ull}},
+ {{9654820791392753536ull, 20859248397665137ull}},
+ {{690318007260764416ull, 33374797436264220ull}},
+ {{552254405808611520ull, 26699837949011376ull}},
+ {{15199198783614530496ull, 21359870359209100ull}},
+ {{5871973980073697216ull, 34175792574734561ull}},
+ {{1008230369317047424ull, 27340634059787649ull}},
+ {{4495933110195548288ull, 21872507247830119ull}},
+ {{14572190605796697920ull, 34996011596528190ull}},
+ {{11657752484637358336ull, 27996809277222552ull}},
+ {{1947504358226065984ull, 22397447421778042ull}},
+ {{6805355787903615936ull, 35835915874844867ull}},
+ {{16512331074548623680ull, 28668732699875893ull}},
+ {{2141818415413168000ull, 22934986159900715ull}},
+ {{1713454732330534400ull, 18347988927920572ull}},
+ {{6430876386470765376ull, 29356782284672915ull}},
+ {{5144701109176612288ull, 23485425827738332ull}},
+ {{15183807331567020800ull, 18788340662190665ull}},
+ {{5847347656797681664ull, 30061345059505065ull}},
+ {{4677878125438145344ull, 24049076047604052ull}},
+ {{14810348944576247232ull, 19239260838083241ull}},
+ {{16317860681838174912ull, 30782817340933186ull}},
+ {{9364939730728629632ull, 24626253872746549ull}},
+ {{11181300599324814016ull, 19701003098197239ull}},
+ {{6822034514693971456ull, 31521604957115583ull}},
+ {{12836325241238997824ull, 25217283965692466ull}},
+ {{6579711378249287936ull, 20173827172553973ull}},
+ {{6838189390456950400ull, 32278123476086357ull}},
+ {{16538597956591291264ull, 25822498780869085ull}},
+ {{13230878365273033024ull, 20657999024695268ull}},
+ {{17480056569694942528ull, 33052798439512429ull}},
+ {{17673394070497864320ull, 26442238751609943ull}},
+ {{3070668812172560448ull, 21153791001287955ull}},
+ {{4913070099476096768ull, 33846065602060728ull}},
+ {{11309153709064698048ull, 27076852481648582ull}},
+ {{1668625337767937792ull, 21661481985318866ull}},
+ {{13737846984654431488ull, 34658371176510185ull}},
+ {{10990277587723545152ull, 27726696941208148ull}},
+ {{16170919699662656768ull, 22181357552966518ull}},
+ {{3737378631008788928ull, 35490172084746430ull}},
+ {{2989902904807031104ull, 28392137667797144ull}},
+ {{6081271138587535232ull, 22713710134237715ull}},
+ {{4865016910870028160ull, 18170968107390172ull}},
+ {{11473375872133955392ull, 29073548971824275ull}},
+ {{9178700697707164352ull, 23258839177459420ull}},
+ {{7342960558165731456ull, 18607071341967536ull}},
+ {{4370039263581349696ull, 29771314147148058ull}},
+ {{10874729040348900416ull, 23817051317718446ull}},
+ {{5010434417537209984ull, 19053641054174757ull}},
+ {{11706043882801446336ull, 30485825686679611ull}},
+ {{5675486291499246720ull, 24388660549343689ull}},
+ {{8229737847941307712ull, 19510928439474951ull}},
+ {{5788882927222271680ull, 31217485503159922ull}},
+ {{15699152786003548288ull, 24973988402527937ull}},
+ {{5180624599319017984ull, 19979190722022350ull}},
+ {{8288999358910428800ull, 31966705155235760ull}},
+ {{6631199487128343040ull, 25573364124188608ull}},
+ {{12683657219186495104ull, 20458691299350886ull}},
+ {{12915153921214571520ull, 32733906078961418ull}},
+ {{17710820766455477824ull, 26187124863169134ull}},
+ {{17858005427906292608ull, 20949699890535307ull}},
+ {{13815413425682426880ull, 33519519824856492ull}},
+ {{3673633111062120832ull, 26815615859885194ull}},
+ {{6628255303591606976ull, 21452492687908155ull}},
+ {{10605208485746571200ull, 34323988300653048ull}},
+ {{15862864418081077632ull, 27459190640522438ull}},
+ {{1622245090239131136ull, 21967352512417951ull}},
+ {{13663638588608340736ull, 35147764019868721ull}},
+ {{7241562056144762304ull, 28118211215894977ull}},
+ {{16861296089141540800ull, 22494568972715981ull}},
+ {{1152632039433092992ull, 35991310356345571ull}},
+ {{15679500890514115712ull, 28793048285076456ull}},
+ {{8854251897669382208ull, 23034438628061165ull}},
+ {{7083401518135505792ull, 18427550902448932ull}},
+ {{15022791243758719616ull, 29484081443918291ull}},
+ {{8328884180265065344ull, 23587265155134633ull}},
+ {{14041804973695872896ull, 18869812124107706ull}},
+ {{15088190328429576000ull, 30191699398572330ull}},
+ {{12070552262743660800ull, 24153359518857864ull}},
+ {{13345790624936838976ull, 19322687615086291ull}},
+ {{13974567370415121728ull, 30916300184138066ull}},
+ {{7490305081590187072ull, 24733040147310453ull}},
+ {{13370941694755970304ull, 19786432117848362ull}},
+ {{6636111452641911168ull, 31658291388557380ull}},
+ {{5308889162113528960ull, 25326633110845904ull}},
+ {{7936460144432733440ull, 20261306488676723ull}},
+ {{9008987416350463232ull, 32418090381882757ull}},
+ {{18275236377306101568ull, 25934472305506205ull}},
+ {{14620189101844881216ull, 20747577844404964ull}},
+ {{12324256118726079040ull, 33196124551047943ull}},
+ {{17238102524464683840ull, 26556899640838354ull}},
+ {{17479830834313657408ull, 21245519712670683ull}},
+ {{5831636446450389952ull, 33992831540273094ull}},
+ {{8354657971902222272ull, 27194265232218475ull}},
+ {{6683726377521777792ull, 21755412185774780ull}},
+ {{10693962204034844480ull, 34808659497239648ull}},
+ {{15933867392711696256ull, 27846927597791718ull}},
+ {{1679047469943626048ull, 22277542078233375ull}},
+ {{2686475951909801664ull, 35644067325173400ull}},
+ {{2149180761527841344ull, 28515253860138720ull}},
+ {{1719344609222273024ull, 22812203088110976ull}},
+ {{16132870946345459712ull, 18249762470488780ull}},
+ {{7365849440443183936ull, 29199619952782049ull}},
+ {{9582028367096457472ull, 23359695962225639ull}},
+ {{11354971508419076288ull, 18687756769780511ull}},
+ {{10789256783986701440ull, 29900410831648818ull}},
+ {{16010103056673181824ull, 23920328665319054ull}},
+ {{16497431260080455744ull, 19136262932255243ull}},
+ {{4259797127677267328ull, 30618020691608390ull}},
+ {{3407837702141813824ull, 24494416553286712ull}},
+ {{13794316605939182016ull, 19595533242629369ull}},
+ {{11002860125276960320ull, 31352853188206991ull}},
+ {{5112939285479657920ull, 25082282550565593ull}},
+ {{11469049057867546944ull, 20065826040452474ull}},
+ {{7282432048362344192ull, 32105321664723959ull}},
+ {{9515294453431785664ull, 25684257331779167ull}},
+ {{233537933261607872ull, 20547405865423334ull}},
+ {{7752358322702393280ull, 32875849384677334ull}},
+ {{9891235472903824960ull, 26300679507741867ull}},
+ {{534290748839239296ull, 21040543606193494ull}},
+ {{8233562827626603520ull, 33664869769909590ull}},
+ {{6586850262101282816ull, 26931895815927672ull}},
+ {{16337526653906757248ull, 21545516652742137ull}},
+ {{11382647387283170304ull, 34472826644387420ull}},
+ {{9106117909826536256ull, 27578261315509936ull}},
+ {{3595545513119318656ull, 22062609052407949ull}},
+ {{13131570450474730496ull, 35300174483852718ull}},
+ {{17883953989863605056ull, 28240139587082174ull}},
+ {{17996512006632794368ull, 22592111669665739ull}},
+ {{18086558420048145792ull, 18073689335732591ull}},
+ {{3113051768883661056ull, 28917902937172147ull}},
+ {{13558487859332659776ull, 23134322349737717ull}},
+ {{3468092657982307200ull, 18507457879790174ull}},
+ {{12927645882255512128ull, 29611932607664278ull}},
+ {{17720814335288230336ull, 23689546086131422ull}},
+ {{6797953838746763648ull, 18951636868905138ull}},
+ {{7187377327252911552ull, 30322618990248221ull}},
+ {{2060553047060418880ull, 24258095192198577ull}},
+ {{12716488881874066048ull, 19406476153758861ull}},
+ {{12967684581514685120ull, 31050361846014178ull}},
+ {{17752845294695568704ull, 24840289476811342ull}},
+ {{6823578606272634304ull, 19872231581449074ull}},
+ {{18296423399520035584ull, 31795570530318518ull}},
+ {{3569092275390297472ull, 25436456424254815ull}},
+ {{2855273820312237952ull, 20349165139403852ull}},
+ {{8257786927241491136ull, 32558664223046163ull}},
+ {{13984927171277013504ull, 26046931378436930ull}},
+ {{11187941737021610816ull, 20837545102749544ull}},
+ {{6832660335008846336ull, 33340072164399271ull}},
+ {{1776779453265166784ull, 26672057731519417ull}},
+ {{12489470006837864384ull, 21337646185215533ull}},
+ {{16293803196198672704ull, 34140233896344853ull}},
+ {{1966996112733207168ull, 27312187117075883ull}},
+ {{8952294519670386368ull, 21849749693660706ull}},
+ {{6944973601988797568ull, 34959599509857130ull}},
+ {{5555978881591038080ull, 27967679607885704ull}},
+ {{8134131920014740736ull, 22374143686308563ull}},
+ {{9325262257281674880ull, 35798629898093701ull}},
+ {{3770860991083429568ull, 28638903918474961ull}},
+ {{17774084051834384960ull, 22911123134779968ull}},
+ {{3151220797241777024ull, 18328898507823975ull}},
+ {{5041953275586843200ull, 29326237612518360ull}},
+ {{4033562620469474560ull, 23460990090014688ull}},
+ {{10605547725859400320ull, 18768792072011750ull}},
+ {{16968876361375040512ull, 30030067315218800ull}},
+ {{13575101089100032384ull, 24024053852175040ull}},
+ {{10860080871280025920ull, 19219243081740032ull}},
+ {{2618734135080400192ull, 30750788930784052ull}},
+ {{13163033752290051072ull, 24600631144627241ull}},
+ {{6841078187090130560ull, 19680504915701793ull}},
+ {{7256376284602298560ull, 31488807865122869ull}},
+ {{9494449842423749184ull, 25191046292098295ull}},
+ {{7595559873938999360ull, 20152837033678636ull}},
+ {{4774198168818578304ull, 32244539253885818ull}},
+ {{11198056164538683264ull, 25795631403108654ull}},
+ {{12647793746372856960ull, 20636505122486923ull}},
+ {{16547121179454660800ull, 33018408195979077ull}},
+ {{5858999314079907968ull, 26414726556783262ull}},
+ {{15755245895489657344ull, 21131781245426609ull}},
+ {{14140346988557720832ull, 33810849992682575ull}},
+ {{11312277590846176640ull, 27048679994146060ull}},
+ {{9049822072676941312ull, 21638943995316848ull}},
+ {{10790366501541195776ull, 34622310392506957ull}},
+ {{1253595571749136000ull, 27697848314005566ull}},
+ {{15760271716366950080ull, 22158278651204452ull}},
+ {{10459039487219478848ull, 35453245841927124ull}},
+ {{12056580404517493376ull, 28362596673541699ull}},
+ {{13334613138355905024ull, 22690077338833359ull}},
+ {{14357039325426634368ull, 18152061871066687ull}},
+ {{8213867661714973696ull, 29043298993706700ull}},
+ {{6571094129371978944ull, 23234639194965360ull}},
+ {{5256875303497583168ull, 18587711355972288ull}},
+ {{4721651670854222720ull, 29740338169555661ull}},
+ {{87972521941467840ull, 23792270535644529ull}},
+ {{3759726832295084608ull, 19033816428515623ull}},
+ {{2326214116930225024ull, 30454106285624997ull}},
+ {{12929017737769910976ull, 24363285028499997ull}},
+ {{2964516560732108160ull, 19490628022799998ull}},
+ {{1053877682429462720ull, 31185004836479997ull}},
+ {{11911148590169301120ull, 24948003869183997ull}},
+ {{2150221242651620288ull, 19958403095347198ull}},
+ {{18197749247210233728ull, 31933444952555516ull}},
+ {{10868850583026276672ull, 25546755962044413ull}},
+ {{16073778095904841984ull, 20437404769635530ull}},
+ {{7271300879738195520ull, 32699847631416849ull}},
+ {{9506389518532466752ull, 26159878105133479ull}},
+ {{11294460429567883712ull, 20927902484106783ull}},
+ {{14381787872566703680ull, 33484643974570853ull}},
+ {{437383853827631936ull, 26787715179656683ull}},
+ {{7728604712545926208ull, 21430172143725346ull}},
+ {{4987069910589661312ull, 34288275429960554ull}},
+ {{7679004743213639360ull, 27430620343968443ull}},
+ {{13521901424054732096ull, 21944496275174754ull}},
+ {{10566995834261840448ull, 35111194040279607ull}},
+ {{1074899037925651712ull, 28088955232223686ull}},
+ {{15617314489308162624ull, 22471164185778948ull}},
+ {{2851610294441598336ull, 35953862697246318ull}},
+ {{9659985865037099264ull, 28763090157797054ull}},
+ {{11417337506771589760ull, 23010472126237643ull}},
+ {{16512567634901092416ull, 18408377700990114ull}},
+ {{15352061771616016960ull, 29453404321584183ull}},
+ {{1213602973067082560ull, 23562723457267347ull}},
+ {{12038928822679397056ull, 18850178765813877ull}},
+ {{4504890857319393984ull, 30160286025302204ull}},
+ {{7293261500597425472ull, 24128228820241763ull}},
+ {{13213306829961761024ull, 19302583056193410ull}},
+ {{2694546854229266048ull, 30884132889909457ull}},
+ {{13223683927609143808ull, 24707306311927565ull}},
+ {{10578947142087315072ull, 19765845049542052ull}},
+ {{2168920168372062784ull, 31625352079267284ull}},
+ {{5424484949439560576ull, 25300281663413827ull}},
+ {{15407634403777379392ull, 20240225330731061ull}},
+ {{17273517416559986432ull, 32384360529169698ull}},
+ {{2750767489022258176ull, 25907488423335759ull}}
+};
+
+static const BID_UINT128 bid_breakpoints_binary80[] = {
+ {{6337302757928054309ull, 494016656451265ull}},
+ {{5069842206342443447ull, 395213325161012ull}},
+ {{15123920209299685727ull, 316170660128809ull}},
+ {{13130225890653766194ull, 505873056206095ull}},
+ {{10504180712523012955ull, 404698444964876ull}},
+ {{4713995755276500041ull, 323758755971901ull}},
+ {{163695578958579419ull, 518014009555042ull}},
+ {{11199002907392594505ull, 414411207644033ull}},
+ {{16337899955397896250ull, 331528966115226ull}},
+ {{315198225443261738ull, 530446345784363ull}},
+ {{7630856209838430037ull, 424357076627490ull}},
+ {{6104684967870744030ull, 339485661301992ull}},
+ {{13456844763335100771ull, 543177058083187ull}},
+ {{3386778181184259970ull, 434541646466550ull}},
+ {{2709422544947407976ull, 347633317173240ull}},
+ {{4335076071915852762ull, 556213307477184ull}},
+ {{7157409672274592533ull, 444970645981747ull}},
+ {{16793974182045404996ull, 355976516785397ull}},
+ {{6056481716152503350ull, 284781213428318ull}},
+ {{6001021931102095037ull, 455649941485309ull}},
+ {{8490166359623586353ull, 364519953188247ull}},
+ {{17860179531924600052ull, 291615962550597ull}},
+ {{13818891992111718790ull, 466585540080956ull}},
+ {{7365764778947464709ull, 373268432064765ull}},
+ {{5892611823157971767ull, 298614745651812ull}},
+ {{13117527731794665151ull, 477783593042899ull}},
+ {{14183371000177642444ull, 382226874434319ull}},
+ {{15036045614884024278ull, 305781499547455ull}},
+ {{5610928910104887229ull, 489250399275929ull}},
+ {{8178091942825820106ull, 391400319420743ull}},
+ {{13921171183744476731ull, 313120255536594ull}},
+ {{11205827449765431801ull, 500992408858551ull}},
+ {{5275313145070435117ull, 400793927086841ull}},
+ {{530901701314437771ull, 320635141669473ull}},
+ {{15606837981070741726ull, 513016226671156ull}},
+ {{8796121570114683058ull, 410412981336925ull}},
+ {{7036897256091746446ull, 328330385069540ull}},
+ {{11259035609746794314ull, 525328616111264ull}},
+ {{12696577302539345774ull, 420262892889011ull}},
+ {{6467913027289566296ull, 336210314311209ull}},
+ {{17727358473147126720ull, 537936502897934ull}},
+ {{17871235593259611699ull, 430349202318347ull}},
+ {{6918290845123868713ull, 344279361854678ull}},
+ {{7379916537456279618ull, 550846978967485ull}},
+ {{5903933229965023694ull, 440677583173988ull}},
+ {{12101844213455839602ull, 352542066539190ull}},
+ {{9681475370764671681ull, 282033653231352ull}},
+ {{732965334255833398ull, 451253845170164ull}},
+ {{4275721082146577041ull, 361003076136131ull}},
+ {{18177972124684902926ull, 288802460908904ull}},
+ {{18016708955270113712ull, 462083937454247ull}},
+ {{7034669534732270323ull, 369667149963398ull}},
+ {{13006433257269636905ull, 295733719970718ull}},
+ {{17120944396889508724ull, 473173951953149ull}},
+ {{17386104332253517303ull, 378539161562519ull}},
+ {{17598232280544724165ull, 302831329250015ull}},
+ {{9710427575162007049ull, 484530126800025ull}},
+ {{7768342060129605639ull, 387624101440020ull}},
+ {{6214673648103684511ull, 310099281152016ull}},
+ {{2564780207482074571ull, 496158849843226ull}},
+ {{16809219424953300950ull, 396927079874580ull}},
+ {{13447375539962640760ull, 317541663899664ull}},
+ {{10447754419714494246ull, 508066662239463ull}},
+ {{15736901165255416043ull, 406453329791570ull}},
+ {{12589520932204332835ull, 325162663833256ull}},
+ {{12764535862043111889ull, 520260262133210ull}},
+ {{10211628689634489511ull, 416208209706568ull}},
+ {{15548000581191412255ull, 332966567765254ull}},
+ {{13808754485680528639ull, 532746508424407ull}},
+ {{3668305959060602265ull, 426197206739526ull}},
+ {{17692040026216123105ull, 340957765391620ull}},
+ {{9860519968236245352ull, 545532424626593ull}},
+ {{15267113604072816928ull, 436425939701274ull}},
+ {{15903039698000163865ull, 349140751761019ull}},
+ {{14376817072574531215ull, 558625202817631ull}},
+ {{7812104843317714649ull, 446900162254105ull}},
+ {{6249683874654171719ull, 357520129803284ull}},
+ {{8689095914465247698ull, 286016103842627ull}},
+ {{17591902277886306641ull, 457625766148203ull}},
+ {{3005475378083314343ull, 366100612918563ull}},
+ {{9783077931950472121ull, 292880490334850ull}},
+ {{15652924691120755393ull, 468608784535760ull}},
+ {{12522339752896604314ull, 374887027628608ull}},
+ {{17396569431801104098ull, 299909622102886ull}},
+ {{2009069387688394294ull, 479855395364619ull}},
+ {{5296604324892625759ull, 383884316291695ull}},
+ {{4237283459914100607ull, 307107453033356ull}},
+ {{17847699980088291941ull, 491371924853369ull}},
+ {{17967508798812543876ull, 393097539882695ull}},
+ {{14374007039050035101ull, 314478031906156ull}},
+ {{15619713632996235515ull, 503164851049850ull}},
+ {{12495770906396988412ull, 402531880839880ull}},
+ {{9996616725117590729ull, 322025504671904ull}},
+ {{4926540315962414197ull, 515240807475047ull}},
+ {{15009278696995662327ull, 412192645980037ull}},
+ {{4628725328112709215ull, 329754116784030ull}},
+ {{7405960524980334745ull, 527606586854448ull}},
+ {{13303466049468088442ull, 422085269483558ull}},
+ {{18021470469058291400ull, 337668215586846ull}},
+ {{3008911047299893978ull, 540269144938955ull}},
+ {{2407128837839915182ull, 432215315951164ull}},
+ {{5615051885013842469ull, 345772252760931ull}},
+ {{1605385386538327304ull, 553235604417490ull}},
+ {{1284308309230661843ull, 442588483533992ull}},
+ {{12095493091610260444ull, 354070786827193ull}},
+ {{17055092102772029002ull, 283256629461754ull}},
+ {{16220100920209515433ull, 453210607138807ull}},
+ {{5597383106683791700ull, 362568485711046ull}},
+ {{788557670605123037ull, 290054788568837ull}},
+ {{4951041087710107183ull, 464087661710139ull}},
+ {{7650181684909996069ull, 371270129368111ull}},
+ {{2430796533186086532ull, 297016103494489ull}},
+ {{11267972082581559098ull, 475225765591182ull}},
+ {{1635680036581426632ull, 380180612472946ull}},
+ {{16065939288232782598ull, 304144489978356ull}},
+ {{18326805231688631511ull, 486631183965370ull}},
+ {{14661444185350905209ull, 389304947172296ull}},
+ {{8039806533538813844ull, 311443957737837ull}},
+ {{16553039268404012473ull, 498310332380539ull}},
+ {{16931780229465120302ull, 398648265904431ull}},
+ {{9856075368830185918ull, 318918612723545ull}},
+ {{15769720590128297469ull, 510269780357672ull}},
+ {{5237078842618817329ull, 408215824286138ull}},
+ {{11568360703578874509ull, 326572659428910ull}},
+ {{62633052016647599ull, 522516255086257ull}},
+ {{11118152885839049049ull, 418013004069005ull}},
+ {{8894522308671239239ull, 334410403255204ull}},
+ {{3163189249648251813ull, 535056645208327ull}},
+ {{13598597843944332420ull, 428045316166661ull}},
+ {{7189529460413555613ull, 342436252933329ull}},
+ {{435200692435958011ull, 547898004693327ull}},
+ {{11416206998174497378ull, 438318403754661ull}},
+ {{5443616783797687579ull, 350654723003729ull}},
+ {{16088484483560120774ull, 561047556805966ull}},
+ {{9181438772106186296ull, 448838045444773ull}},
+ {{14723848647168769683ull, 359070436355818ull}},
+ {{711032473509284777ull, 287256349084655ull}},
+ {{1137651957614855643ull, 459610158535448ull}},
+ {{8288819195575705161ull, 367688126828358ull}},
+ {{14009752985944384775ull, 294150501462686ull}},
+ {{15036907148027194994ull, 470640802340298ull}},
+ {{961479274196025025ull, 376512641872239ull}},
+ {{4458532234098730343ull, 301210113497791ull}},
+ {{18201698018783699519ull, 481936181596465ull}},
+ {{14561358415026959615ull, 385548945277172ull}},
+ {{4270389102537747046ull, 308439156221738ull}},
+ {{3143273749318484950ull, 493502649954781ull}},
+ {{17272014258422429253ull, 394802119963824ull}},
+ {{17506960221479853725ull, 315841695971059ull}},
+ {{16943089910142034991ull, 505346713553695ull}},
+ {{13554471928113627993ull, 404277370842956ull}},
+ {{7154228727748992071ull, 323421896674365ull}},
+ {{11446765964398387314ull, 517475034678984ull}},
+ {{12846761586260620174ull, 413980027743187ull}},
+ {{2898711639524675493ull, 331184022194550ull}},
+ {{4637938623239480789ull, 529894435511280ull}},
+ {{3710350898591584631ull, 423915548409024ull}},
+ {{6657629533615178028ull, 339132438727219ull}},
+ {{18030904883268105491ull, 542611901963550ull}},
+ {{14424723906614484393ull, 434089521570840ull}},
+ {{11539779125291587514ull, 347271617256672ull}},
+ {{3706251341498898730ull, 555634587610676ull}},
+ {{17722396332166760277ull, 444507670088540ull}},
+ {{14177917065733408221ull, 355606136070832ull}},
+ {{3963636023102905931ull, 284484908856666ull}},
+ {{17409864081190380459ull, 455175854170665ull}},
+ {{13927891264952304367ull, 364140683336532ull}},
+ {{3763615382478022847ull, 291312546669226ull}},
+ {{17089831056190567525ull, 466100074670761ull}},
+ {{9982516030210543697ull, 372880059736609ull}},
+ {{11675361638910345281ull, 298304047789287ull}},
+ {{3923183363288911157ull, 477286476462860ull}},
+ {{3138546690631128925ull, 381829181170288ull}},
+ {{9889534981988723786ull, 305463344936230ull}},
+ {{15823255971181958059ull, 488741351897968ull}},
+ {{1590558332719835477ull, 390993081518375ull}},
+ {{1272446666175868382ull, 312794465214700ull}},
+ {{2035914665881389411ull, 500471144343520ull}},
+ {{1628731732705111529ull, 400376915474816ull}},
+ {{16060380645131730516ull, 320301532379852ull}},
+ {{10939213773243127533ull, 512482451807764ull}},
+ {{12440719833336412349ull, 409985961446211ull}},
+ {{6263227051927219556ull, 327988769156969ull}},
+ {{17399860912567371936ull, 524782030651150ull}},
+ {{13919888730053897549ull, 419825624520920ull}},
+ {{11135910984043118039ull, 335860499616736ull}},
+ {{10438759944985168216ull, 537376799386778ull}},
+ {{15729705585471955219ull, 429901439509422ull}},
+ {{5205066838893743529ull, 343921151607538ull}},
+ {{4638758127488079324ull, 550273842572061ull}},
+ {{21657687248553136ull, 440219074057649ull}},
+ {{3706674964540752832ull, 352175259246119ull}},
+ {{6654688786374512588ull, 281740207396895ull}},
+ {{10647502058199220142ull, 450784331835032ull}},
+ {{1139304017075555467ull, 360627465468026ull}},
+ {{15668838472628085666ull, 288501972374420ull}},
+ {{6623397482495385450ull, 461603155799073ull}},
+ {{12677415615480129006ull, 369282524639258ull}},
+ {{17520630121867923851ull, 295426019711406ull}},
+ {{2207566491795305900ull, 472681631538251ull}},
+ {{16523448452403886013ull, 378145305230600ull}},
+ {{13218758761923108810ull, 302516244184480ull}},
+ {{2703269945367422481ull, 484025990695169ull}},
+ {{5851964771035848308ull, 387220792556135ull}},
+ {{4681571816828678646ull, 309776634044908ull}},
+ {{3801166092183975511ull, 495642614471853ull}},
+ {{10419630503231001055ull, 396514091577482ull}},
+ {{957006773100980197ull, 317211273261986ull}},
+ {{12599257281187299286ull, 507538037219177ull}},
+ {{2700708195466018782ull, 406030429775342ull}},
+ {{13228613000598545995ull, 324824343820273ull}},
+ {{17476431986215763269ull, 519718950112437ull}},
+ {{6602447959488789969ull, 415775160089950ull}},
+ {{5281958367591031975ull, 332620128071960ull}},
+ {{8451133388145651160ull, 532192204915136ull}},
+ {{3071557895774610605ull, 425753763932109ull}},
+ {{6146595131361598807ull, 340603011145687ull}},
+ {{13523901024920468415ull, 544964817833099ull}},
+ {{14508469634678285055ull, 435971854266479ull}},
+ {{15296124522484538367ull, 348777483413183ull}},
+ {{2337706347523799448ull, 558043973461094ull}},
+ {{5559513892760949882ull, 446435178768875ull}},
+ {{4447611114208759905ull, 357148143015100ull}},
+ {{3558088891367007924ull, 285718514412080ull}},
+ {{5692942226187212679ull, 457149623059328ull}},
+ {{11933051410433590789ull, 365719698447462ull}},
+ {{2167743498863051985ull, 292575758757970ull}},
+ {{3468389598180883176ull, 468121214012752ull}},
+ {{13842758122770437511ull, 374496971210201ull}},
+ {{7384857683474439685ull, 299597576968161ull}},
+ {{4437074664075282850ull, 479356123149058ull}},
+ {{10928357360744046927ull, 383484898519246ull}},
+ {{5053337073853327218ull, 306787918815397ull}},
+ {{11774688132907233872ull, 490860670104635ull}},
+ {{9419750506325787098ull, 392688536083708ull}},
+ {{14914498034544450324ull, 314150828866966ull}},
+ {{16484499225787299873ull, 502641326187146ull}},
+ {{9498250565887929575ull, 402113060949717ull}},
+ {{219902823226523014ull, 321690448759774ull}},
+ {{7730542146646257468ull, 514704718015638ull}},
+ {{13563131346800826621ull, 411763774412510ull}},
+ {{10850505077440661297ull, 329411019530008ull}},
+ {{13671459309163147752ull, 527057631248013ull}},
+ {{18315865076814338848ull, 421646104998410ull}},
+ {{14652692061451471078ull, 337316883998728ull}},
+ {{1308214409870891786ull, 539707014397966ull}},
+ {{15803966786864354722ull, 431765611518372ull}},
+ {{5264475800007663131ull, 345412489214698ull}},
+ {{4733812465270350686ull, 552659982743517ull}},
+ {{14855096416442011519ull, 442127986194813ull}},
+ {{816030688927878245ull, 353702388955851ull}},
+ {{15410219810109943889ull, 282961911164680ull}},
+ {{6209607622466358606ull, 452739057863489ull}},
+ {{8657034912714997208ull, 362191246290791ull}},
+ {{3236279115430087443ull, 289752997032633ull}},
+ {{1488697769946229586ull, 463604795252213ull}},
+ {{8569655845440804315ull, 370883836201770ull}},
+ {{6855724676352643452ull, 296707068961416ull}},
+ {{3590461852680408877ull, 474731310338266ull}},
+ {{17629764741111968395ull, 379785048270612ull}},
+ {{6725114163405754069ull, 303828038616490ull}},
+ {{10760182661449206511ull, 486124861786384ull}},
+ {{12297494943901275532ull, 388899889429107ull}},
+ {{2459298325637199779ull, 311119911543286ull}},
+ {{15002923765245250616ull, 497791858469257ull}},
+ {{4623641382712379847ull, 398233486775406ull}},
+ {{9564291427993554ull, 318586789420325ull}},
+ {{15302866284789687ull, 509738863072520ull}},
+ {{12242293027831749ull, 407791090458016ull}},
+ {{14767189093389906692ull, 326232872366412ull}},
+ {{8870107290456209415ull, 521972595786260ull}},
+ {{7096085832364967532ull, 417578076629008ull}},
+ {{13055566295375794672ull, 334062461303206ull}},
+ {{13510208443117450829ull, 534499938085130ull}},
+ {{10808166754493960663ull, 427599950468104ull}},
+ {{12335882218337078853ull, 342079960374483ull}},
+ {{16048062734597415842ull, 547327936599173ull}},
+ {{1770403743452201704ull, 437862349279339ull}},
+ {{5105671809503671686ull, 350289879423471ull}},
+ {{790377265722054052ull, 560463807077554ull}},
+ {{4321650627319553565ull, 448371045662043ull}},
+ {{10836018131339463498ull, 358696836529634ull}},
+ {{12358163319813481122ull, 286957469223707ull}},
+ {{5015666052733928502ull, 459131950757932ull}},
+ {{15080579286412873771ull, 367305560606345ull}},
+ {{12064463429130299017ull, 293844448485076ull}},
+ {{11924443857124657781ull, 470151117576122ull}},
+ {{2160857456215905578ull, 376120894060898ull}},
+ {{9107383594456545109ull, 300896715248718ull}},
+ {{10882464936388561851ull, 481434744397949ull}},
+ {{12395320763852759804ull, 385147795518359ull}},
+ {{13605605425824118166ull, 308118236414687ull}},
+ {{7011573422350947774ull, 492989178263500ull}},
+ {{5609258737880758219ull, 394391342610800ull}},
+ {{4487406990304606575ull, 315513074088640ull}},
+ {{7179851184487370520ull, 504820918541824ull}},
+ {{9433229762331806739ull, 403856734833459ull}},
+ {{11235932624607355715ull, 323085387866767ull}},
+ {{3220096940404127851ull, 516936620586828ull}},
+ {{9954775181807122927ull, 413549296469462ull}},
+ {{585122515961877695ull, 330839437175570ull}},
+ {{936196025539004313ull, 529343099480912ull}},
+ {{11817003264656934420ull, 423474479584729ull}},
+ {{13142951426467457859ull, 338779583667783ull}},
+ {{17339373467606022251ull, 542047333868453ull}},
+ {{2803452329859086831ull, 433637867094763ull}},
+ {{9621459493371090111ull, 346910293675810ull}},
+ {{15394335189393744178ull, 555056469881296ull}},
+ {{8626119336773085019ull, 444045175905037ull}},
+ {{17968941913644198985ull, 355236140724029ull}},
+ {{18064502345657269511ull, 284188912579223ull}},
+ {{6767110864600169279ull, 454702260126758ull}},
+ {{12792386321163956069ull, 363761808101406ull}},
+ {{6544560242189254532ull, 291009446481125ull}},
+ {{10471296387502807252ull, 465615114369800ull}},
+ {{8377037110002245801ull, 372492091495840ull}},
+ {{6701629688001796641ull, 297993673196672ull}},
+ {{14411956315544784949ull, 476789877114675ull}},
+ {{11529565052435827959ull, 381431901691740ull}},
+ {{9223652041948662367ull, 305145521353392ull}},
+ {{448008150218495ull, 488232834165428ull}},
+ {{7379056036003995442ull, 390586267332342ull}},
+ {{16971291273028927323ull, 312469013865873ull}},
+ {{5017973148394821778ull, 499950422185398ull}},
+ {{11393076148199678069ull, 399960337748318ull}},
+ {{16493158548043563102ull, 319968270198654ull}},
+ {{15321007232643969993ull, 511949232317847ull}},
+ {{4878108156631355348ull, 409559385854278ull}},
+ {{11281184154788904925ull, 327647508683422ull}},
+ {{3292499388694606587ull, 524236013893476ull}},
+ {{17391394769923326562ull, 419388811114780ull}},
+ {{13913115815938661250ull, 335511048891824ull}},
+ {{11192938861276127030ull, 536817678226919ull}},
+ {{12643699903762811947ull, 429454142581535ull}},
+ {{10114959923010249558ull, 343563314065228ull}},
+ {{12494587062074488970ull, 549701302504365ull}},
+ {{9995669649659591176ull, 439761042003492ull}},
+ {{617838090243852294ull, 351808833602794ull}},
+ {{8367238573873984317ull, 562894133764470ull}},
+ {{6693790859099187453ull, 450315307011576ull}},
+ {{1665683872537439639ull, 360252245609261ull}},
+ {{16089942356997593004ull, 288201796487408ull}},
+ {{3607814882744686868ull, 461122874379854ull}},
+ {{6575600720937659817ull, 368898299503883ull}},
+ {{12639178206233948500ull, 295118639603106ull}},
+ {{12843987500490496954ull, 472189823364970ull}},
+ {{10275190000392397563ull, 377751858691976ull}},
+ {{4530803185572007727ull, 302201486953581ull}},
+ {{18317331541140943334ull, 483522379125729ull}},
+ {{18343214047654664990ull, 386817903300583ull}},
+ {{3606524793898001022ull, 309454322640467ull}},
+ {{9459788484978711959ull, 495126916224747ull}},
+ {{189133158499148921ull, 396101532979798ull}},
+ {{7530004156283139783ull, 316881226383838ull}},
+ {{8358657835311113330ull, 507009962214141ull}},
+ {{2997577453506980341ull, 405607969771313ull}},
+ {{9776759592289404919ull, 324486375817050ull}},
+ {{15642815347663047870ull, 519178201307280ull}},
+ {{12514252278130438296ull, 415342561045824ull}},
+ {{13700750637246260960ull, 332274048836659ull}},
+ {{10853154575368286567ull, 531638478138655ull}},
+ {{8682523660294629253ull, 425310782510924ull}},
+ {{10635367742977613726ull, 340248626008739ull}},
+ {{5948541944538450992ull, 544397801613983ull}},
+ {{12137531185114581440ull, 435518241291186ull}},
+ {{6020676133349754829ull, 348414593032949ull}},
+ {{17011779442843428373ull, 557463348852718ull}},
+ {{2541377110049011728ull, 445970679082175ull}},
+ {{2033101688039209383ull, 356776543265740ull}},
+ {{1626481350431367506ull, 285421234612592ull}},
+ {{6291718975432098333ull, 456673975380147ull}},
+ {{16101421624571409636ull, 365339180304117ull}},
+ {{5502439670173307062ull, 292271344243294ull}},
+ {{16182601101761111946ull, 467634150789270ull}},
+ {{12946080881408889557ull, 374107320631416ull}},
+ {{6667515890385201322ull, 299285856505133ull}},
+ {{6978676609874411793ull, 478857370408213ull}},
+ {{12961638917383350080ull, 383085896326570ull}},
+ {{10369311133906680064ull, 306468717061256ull}},
+ {{9212200184766867457ull, 490349947298010ull}},
+ {{7369760147813493965ull, 392279957838408ull}},
+ {{13274505747734615819ull, 313823966270726ull}},
+ {{13860511566891564664ull, 502118346033162ull}},
+ {{3709711624029431084ull, 401694676826530ull}},
+ {{2967769299223544867ull, 321355741461224ull}},
+ {{12127128508241492434ull, 514169186337958ull}},
+ {{17080400436077014594ull, 411335349070366ull}},
+ {{9974971534119701352ull, 329068279256293ull}},
+ {{12270605639849611840ull, 526509246810069ull}},
+ {{13505833326621599795ull, 421207397448055ull}},
+ {{10804666661297279836ull, 336965917958444ull}},
+ {{6219420213849916768ull, 539145468733511ull}},
+ {{1286187356338023091ull, 431316374986809ull}},
+ {{4718298699812328796ull, 345053099989447ull}},
+ {{11238626734441636397ull, 552084959983115ull}},
+ {{8990901387553309118ull, 441667967986492ull}},
+ {{18260767554268378264ull, 353334374389193ull}},
+ {{3540567599188971641ull, 282667499511355ull}},
+ {{5664908158702354626ull, 452267999218168ull}},
+ {{11910624156445704347ull, 361814399374534ull}},
+ {{13217848139898473801ull, 289451519499627ull}},
+ {{6391161764869916789ull, 463122431199404ull}},
+ {{8802278226637843754ull, 370497944959523ull}},
+ {{14420520210794095650ull, 296398355967618ull}},
+ {{936739448819091101ull, 474237369548190ull}},
+ {{749391559055272880ull, 379389895638552ull}},
+ {{11667559691469949274ull, 303511916510841ull}},
+ {{11289397876868098192ull, 485619066417346ull}},
+ {{5342169486752568230ull, 388495253133877ull}},
+ {{15341782033627785554ull, 310796202507101ull}},
+ {{17168153624320636240ull, 497273924011362ull}},
+ {{6355825269972688346ull, 397819139209090ull}},
+ {{5084660215978150676ull, 318255311367272ull}},
+ {{11824805160306951406ull, 509208498187635ull}},
+ {{9459844128245561124ull, 407366798550108ull}},
+ {{14946572932080269546ull, 325893438840086ull}},
+ {{16535819061844610627ull, 521429502144138ull}},
+ {{2160608805249957532ull, 417143601715311ull}},
+ {{16485882303167607318ull, 333714881372248ull}},
+ {{4241318796616709770ull, 533943810195598ull}},
+ {{10771752666777188463ull, 427155048156478ull}},
+ {{15996099762905571416ull, 341724038525182ull}},
+ {{10836364361681272974ull, 546758461640292ull}},
+ {{1290393859861197733ull, 437406769312234ull}},
+ {{4721663902630868509ull, 349925415449787ull}},
+ {{11244011058951299938ull, 559880664719659ull}},
+ {{12684557661902950274ull, 447904531775727ull}},
+ {{2768948500038539572ull, 358323625420582ull}},
+ {{13283205244256562627ull, 286658900336465ull}},
+ {{2806384317100948588ull, 458654240538345ull}},
+ {{2245107453680758870ull, 366923392430676ull}},
+ {{16553481221912248389ull, 293538713944540ull}},
+ {{8038825881350045807ull, 469661942311265ull}},
+ {{6431060705080036645ull, 375729553849012ull}},
+ {{16212895008289760286ull, 300583643079209ull}},
+ {{14872585569037885488ull, 480933828926735ull}},
+ {{11898068455230308390ull, 384747063141388ull}},
+ {{16897152393668067358ull, 307797650513110ull}},
+ {{8588699756159356158ull, 492476240820977ull}},
+ {{17939006249153215896ull, 393980992656781ull}},
+ {{10661856184580662393ull, 315184794125425ull}},
+ {{17058969895329059830ull, 504295670600680ull}},
+ {{13647175916263247864ull, 403436536480544ull}},
+ {{14607089547752508614ull, 322749229184435ull}},
+ {{4924599202694462167ull, 516398766695097ull}},
+ {{15007725806381300703ull, 413119013356077ull}},
+ {{4627483015621219916ull, 330495210684862ull}},
+ {{11093321639735862189ull, 528792337095779ull}},
+ {{12564006126530600074ull, 423033869676623ull}},
+ {{17429902530708300706ull, 338427095741298ull}},
+ {{5751751160681819190ull, 541483353186078ull}},
+ {{11980098558029275998ull, 433186682548862ull}},
+ {{2205381216939600152ull, 346549346039090ull}},
+ {{3528609947103360244ull, 554478953662544ull}},
+ {{6512236772424598518ull, 443583162930035ull}},
+ {{5209789417939678814ull, 354866530344028ull}},
+ {{11546529163835563698ull, 283893224275222ull}},
+ {{3717051403169260624ull, 454229158840356ull}},
+ {{17731036381503049792ull, 363383327072284ull}},
+ {{17874177919944350157ull, 290706661657827ull}},
+ {{13841289412943318958ull, 465130658652524ull}},
+ {{14762380345096565490ull, 372104526922019ull}},
+ {{15499253090819162715ull, 297683621537615ull}},
+ {{6352060871601108728ull, 476293794460185ull}},
+ {{5081648697280886982ull, 381035035568148ull}},
+ {{11444016587308530232ull, 304828028454518ull}},
+ {{14621077724951738048ull, 487724845527229ull}},
+ {{15386210994703300762ull, 390179876421783ull}},
+ {{1240922351536909640ull, 312143901137427ull}},
+ {{5674824577200965747ull, 499430241819883ull}},
+ {{11918557291244593244ull, 399544193455906ull}},
+ {{5845497018253764272ull, 319635354764725ull}},
+ {{9352795229206022835ull, 511416567623560ull}},
+ {{7482236183364818268ull, 409133254098848ull}},
+ {{13364486576175675261ull, 327306603279078ull}},
+ {{17693829707139170094ull, 523690565246525ull}},
+ {{14155063765711336075ull, 418952452197220ull}},
+ {{11324051012569068860ull, 335161961757776ull}},
+ {{10739783990626689530ull, 536259138812442ull}},
+ {{1213129563017530978ull, 429007311049954ull}},
+ {{4659852465155935105ull, 343205848839963ull}},
+ {{3766415129507585846ull, 549129358143941ull}},
+ {{17770527362573709969ull, 439303486515152ull}},
+ {{6837724260575147329ull, 351442789212122ull}},
+ {{14629707631662146050ull, 562308462739395ull}},
+ {{11703766105329716840ull, 449846770191516ull}},
+ {{5673664069521863148ull, 359877416153213ull}},
+ {{11917628885101311165ull, 287901932922570ull}},
+ {{621462142452546248ull, 460643092676113ull}},
+ {{7875867343445857645ull, 368514474140890ull}},
+ {{6300693874756686116ull, 294811579312712ull}},
+ {{13770459014352608109ull, 471698526900339ull}},
+ {{14705716026223996810ull, 377358821520271ull}},
+ {{8075224006237287125ull, 301887057216217ull}},
+ {{16609707224721569723ull, 483019291545947ull}},
+ {{5909068150293435132ull, 386415433236758ull}},
+ {{12105952149718568752ull, 309132346589406ull}},
+ {{11990825810065889357ull, 494611754543050ull}},
+ {{9592660648052711486ull, 395689403634440ull}},
+ {{7674128518442169188ull, 316551522907552ull}},
+ {{15967954444249381025ull, 506482436652083ull}},
+ {{1706317111173773850ull, 405185949321667ull}},
+ {{12433100133164750050ull, 324148759457333ull}},
+ {{16203611398321689757ull, 518638015131733ull}},
+ {{1894842674431620836ull, 414910412105387ull}},
+ {{12583920583771027638ull, 331928329684309ull}},
+ {{9066226489807913251ull, 531085327494895ull}},
+ {{7252981191846330601ull, 424868261995916ull}},
+ {{2113036138735154157ull, 339894609596733ull}},
+ {{18138253080943887945ull, 543831375354772ull}},
+ {{7131904835271289710ull, 435065100283818ull}},
+ {{13084221497700852414ull, 348052080227054ull}},
+ {{9866707952095632893ull, 556883328363287ull}},
+ {{514668732192685668ull, 445506662690630ull}},
+ {{411734985754148534ull, 356405330152504ull}},
+ {{4018736803345229150ull, 285124264122003ull}},
+ {{2740630070610456318ull, 456198822595205ull}},
+ {{2192504056488365054ull, 364959058076164ull}},
+ {{5443352059932602366ull, 291967246460931ull}},
+ {{1330665666408343140ull, 467147594337490ull}},
+ {{1064532533126674512ull, 373718075469992ull}},
+ {{11919672470727070579ull, 298974460375993ull}},
+ {{15382127138421402604ull, 478359136601589ull}},
+ {{15995050525479032406ull, 382687309281271ull}},
+ {{9106691605641315602ull, 306149847425017ull}},
+ {{18260055383768015286ull, 489839755880027ull}},
+ {{7229346677530591582ull, 391871804704022ull}},
+ {{16851523786250204235ull, 313497443763217ull}},
+ {{12205042799032685484ull, 501595910021148ull}},
+ {{17142731868709969034ull, 401276728016918ull}},
+ {{2646139050742244257ull, 321021382413535ull}},
+ {{4233822481187590812ull, 513634211861656ull}},
+ {{18144453243917713942ull, 410907369489324ull}},
+ {{18204911409876081477ull, 328725895591459ull}},
+ {{18059811811575999394ull, 525961432946335ull}},
+ {{14447849449260799515ull, 420769146357068ull}},
+ {{490233115182908642ull, 336615317085655ull}},
+ {{784372984292653828ull, 538584507337048ull}},
+ {{8006196016917943708ull, 430867605869638ull}},
+ {{13783654443018175613ull, 344694084695710ull}},
+ {{3607103035119529365ull, 551510535513137ull}},
+ {{13953728872321354462ull, 441208428410509ull}},
+ {{14852331912598993892ull, 352966742728407ull}},
+ {{4503167900595374467ull, 282373394182726ull}},
+ {{18273115085178330118ull, 451797430692361ull}},
+ {{10929143253400753771ull, 361437944553889ull}},
+ {{12432663417462513340ull, 289150355643111ull}},
+ {{12513563838456200698ull, 462640569028978ull}},
+ {{17389548700248781204ull, 370112455223182ull}},
+ {{6532941330715204317ull, 296089964178546ull}},
+ {{3074008499660506261ull, 473743942685674ull}},
+ {{6148555614470315332ull, 378995154148539ull}},
+ {{8608193306318162589ull, 303196123318831ull}},
+ {{6394411660625239496ull, 485113797310130ull}},
+ {{5115529328500191597ull, 388091037848104ull}},
+ {{7781772277542063600ull, 310472830278483ull}},
+ {{8761486829325391438ull, 496756528445573ull}},
+ {{14387887092944133796ull, 397405222756458ull}},
+ {{442263230129576067ull, 317924178205167ull}},
+ {{4396969982949232031ull, 508678685128267ull}},
+ {{14585622430585116595ull, 406942948102613ull}},
+ {{600451500242362306ull, 325554358482091ull}},
+ {{12028768844613510660ull, 520886973571345ull}},
+ {{9623015075690808528ull, 416709578857076ull}},
+ {{4009063245810736499ull, 333367663085661ull}},
+ {{17482547637522909368ull, 533388260937057ull}},
+ {{6607340480534506848ull, 426710608749646ull}},
+ {{1596523569685695155ull, 341368486999717ull}},
+ {{6243786526239022571ull, 546189579199547ull}},
+ {{16063075665216949027ull, 436951663359637ull}},
+ {{5471762902689738575ull, 349561330687710ull}},
+ {{8754820644303581720ull, 559298129100336ull}},
+ {{3314507700700955053ull, 447438503280269ull}},
+ {{6340954975302674365ull, 357950802624215ull}},
+ {{5072763980242139492ull, 286360642099372ull}},
+ {{11805771183129333511ull, 458177027358995ull}},
+ {{9444616946503466809ull, 366541621887196ull}},
+ {{3866344742460863124ull, 293233297509757ull}},
+ {{9875500402679291321ull, 469173276015611ull}},
+ {{4211051507401522734ull, 375338620812489ull}},
+ {{7058190020663128510ull, 300270896649991ull}},
+ {{3914406403577184970ull, 480433434639986ull}},
+ {{17888920381829389269ull, 384346747711988ull}},
+ {{3243089861237780445ull, 307477398169591ull}},
+ {{16256990222206179682ull, 491963837071345ull}},
+ {{13005592177764943746ull, 393571069657076ull}},
+ {{6715124927470044673ull, 314856855725661ull}},
+ {{3365502254468250831ull, 503770969161058ull}},
+ {{10071099433058421311ull, 403016775328846ull}},
+ {{4367530731704826726ull, 322413420263077ull}},
+ {{10677397985469633085ull, 515861472420923ull}},
+ {{15920616017859527114ull, 412689177936738ull}},
+ {{1668446370061890721ull, 330151342349391ull}},
+ {{13737560636324756124ull, 528242147759025ull}},
+ {{10990048509059804899ull, 422593718207220ull}},
+ {{8792038807247843919ull, 338074974565776ull}},
+ {{6688564462112729625ull, 540919959305242ull}},
+ {{16418898013915914669ull, 432735967444193ull}},
+ {{2067071966907000766ull, 346188773955355ull}},
+ {{3307315147051201226ull, 553902038328568ull}},
+ {{10024549747124781627ull, 443121630662854ull}},
+ {{11708988612441735624ull, 354497304530283ull}},
+ {{16745888519437209146ull, 283597843624226ull}},
+ {{967979927906162371ull, 453756549798763ull}},
+ {{8153081571808750543ull, 363005239839010ull}},
+ {{6522465257447000435ull, 290404191871208ull}},
+ {{6746595597173290372ull, 464646706993933ull}},
+ {{12775974107222452944ull, 371717365595146ull}},
+ {{6531430471036052032ull, 297373892476117ull}},
+ {{14139637568399593575ull, 475798227961787ull}},
+ {{3933012425235854213ull, 380638582369430ull}},
+ {{3146409940188683371ull, 304510865895544ull}},
+ {{12412953533785714040ull, 487217385432870ull}},
+ {{9930362827028571232ull, 389773908346296ull}},
+ {{4254941446880946662ull, 311819126677037ull}},
+ {{10497255129751424983ull, 498910602683259ull}},
+ {{12087152918543050309ull, 399128482146607ull}},
+ {{2291024705350619601ull, 319302785717286ull}},
+ {{14733685972786722331ull, 510884457147657ull}},
+ {{4408251148745557219ull, 408707565718126ull}},
+ {{18283996177964087068ull, 326966052574500ull}},
+ {{10807649811032987692ull, 523145684119201ull}},
+ {{4956771034084479831ull, 418516547295361ull}},
+ {{276068012525673541ull, 334813237836289ull}},
+ {{7820406449524898313ull, 535701180538062ull}},
+ {{17324371603845649620ull, 428560944430449ull}},
+ {{17548846097818430019ull, 342848755544359ull}},
+ {{17010107312283757061ull, 548558008870975ull}},
+ {{13608085849827005649ull, 438846407096780ull}},
+ {{10886468679861604519ull, 351077125677424ull}},
+ {{6350303443552836261ull, 561723401083879ull}},
+ {{8769591569584179332ull, 449378720867103ull}},
+ {{14394370885151164112ull, 359502976693682ull}},
+ {{4136799078637110643ull, 287602381354946ull}},
+ {{17686924970045107998ull, 460163810167913ull}},
+ {{3081493531810355429ull, 368131048134331ull}},
+ {{17222590084415925636ull, 294504838507464ull}},
+ {{16488097690839750048ull, 471207741611943ull}},
+ {{2122431708446069069ull, 376966193289555ull}},
+ {{1697945366756855255ull, 301572954631644ull}},
+ {{10095410216294789055ull, 482516727410630ull}},
+ {{8076328173035831244ull, 386013381928504ull}},
+ {{10150411353170575318ull, 308810705542803ull}},
+ {{12551309350331010186ull, 494097128868485ull}},
+ {{10041047480264808149ull, 395277703094788ull}},
+ {{15411535613695667165ull, 316222162475830ull}},
+ {{6211712908203515849ull, 505955459961329ull}},
+ {{8658719141304723002ull, 404764367969063ull}},
+ {{14305672942527599048ull, 323811494375250ull}},
+ {{4442332634334606861ull, 518098391000401ull}},
+ {{18311261366435326781ull, 414478712800320ull}},
+ {{14649009093148261425ull, 331582970240256ull}},
+ {{16059716919553397634ull, 530532752384410ull}},
+ {{12847773535642718107ull, 424426201907528ull}},
+ {{17656916457997995132ull, 339540961526022ull}},
+ {{13493671073829150919ull, 543265538441636ull}},
+ {{7105588044321410412ull, 434612430753309ull}},
+ {{9373819250199038652ull, 347689944602647ull}},
+ {{240715541350820551ull, 556303911364236ull}},
+ {{14949967692048297734ull, 445043129091388ull}},
+ {{891927709412907217ull, 356034503273111ull}},
+ {{15470937426497967066ull, 284827602618488ull}},
+ {{2617406993945285367ull, 455724164189582ull}},
+ {{13161972039381959263ull, 364579331351665ull}},
+ {{10529577631505567411ull, 291663465081332ull}},
+ {{2089928951441266565ull, 466661544130132ull}},
+ {{12739989605378744221ull, 373329235304105ull}},
+ {{10191991684302995377ull, 298663388243284ull}},
+ {{5239140250659061634ull, 477861421189255ull}},
+ {{4191312200527249307ull, 382289136951404ull}},
+ {{7042398575163709769ull, 305831309561123ull}},
+ {{7578488905520025307ull, 489330095297797ull}},
+ {{17130837568641751215ull, 391464076238237ull}},
+ {{6325972425429580325ull, 313171260990590ull}},
+ {{10121555880687328521ull, 501074017584944ull}},
+ {{11786593519291773140ull, 400859214067955ull}},
+ {{9429274815433418512ull, 320687371254364ull}},
+ {{4018793260467738650ull, 513099794006983ull}},
+ {{10593732237858011566ull, 410479835205586ull}},
+ {{4785636975544498930ull, 328383868164469ull}},
+ {{15035716790355018934ull, 525414189063150ull}},
+ {{12028573432284015147ull, 420331351250520ull}},
+ {{9622858745827212118ull, 336265081000416ull}},
+ {{8017876363839718742ull, 538024129600666ull}},
+ {{2724952276329864670ull, 430419303680533ull}},
+ {{9558659450547712383ull, 344335442944426ull}},
+ {{7915157491392519166ull, 550936708711082ull}},
+ {{17400172437339746302ull, 440749366968865ull}},
+ {{13920137949871797042ull, 352599493575092ull}},
+ {{3757412730413616987ull, 282079594860074ull}},
+ {{13390557998145607826ull, 451327351776118ull}},
+ {{18091144028000306907ull, 361061881420894ull}},
+ {{18162264037142155849ull, 288849505136715ull}},
+ {{10612878385717897742ull, 462159208218745ull}},
+ {{8490302708574318193ull, 369727366574996ull}},
+ {{3102893352117544231ull, 295781893259997ull}},
+ {{8653978178129981094ull, 473251029215995ull}},
+ {{6923182542503984875ull, 378600823372796ull}},
+ {{1849197219261277577ull, 302880658698237ull}},
+ {{6648064365559954446ull, 484609053917179ull}},
+ {{9007800307189873880ull, 387687243133743ull}},
+ {{14584937875235719750ull, 310149794506994ull}},
+ {{12267854156151420631ull, 496239671211191ull}},
+ {{6124934510179226182ull, 396991736968953ull}},
+ {{12278645237627201592ull, 317593389575162ull}},
+ {{4888437121235881254ull, 508149423320260ull}},
+ {{3910749696988705003ull, 406519538656208ull}},
+ {{10507297387074784649ull, 325215630924966ull}},
+ {{9432978189835834792ull, 520345009479946ull}},
+ {{3857033737126757510ull, 416276007583957ull}},
+ {{14153673433927136978ull, 333020806067165ull}},
+ {{4199133420573867549ull, 532833289707465ull}},
+ {{3359306736459094039ull, 426266631765972ull}},
+ {{13755491833393006201ull, 341013305412777ull}},
+ {{7251391674461168629ull, 545621288660444ull}},
+ {{9490462154310845226ull, 436497030928355ull}},
+ {{7592369723448676181ull, 349197624742684ull}},
+ {{1079745113292150920ull, 558716199588295ull}},
+ {{863796090633720736ull, 446972959670636ull}},
+ {{15448432131474617881ull, 357578367736508ull}},
+ {{1290699260953963335ull, 286062694189207ull}},
+ {{5754467632268251660ull, 457700310702731ull}},
+ {{914225291072691005ull, 366160248562185ull}},
+ {{731380232858152804ull, 292928198849748ull}},
+ {{15927603631540685779ull, 468685118159596ull}},
+ {{9052734090490638300ull, 374948094527677ull}},
+ {{18310233716618241609ull, 299958475622141ull}},
+ {{3470932243395814313ull, 479933560995427ull}},
+ {{13844792238942382420ull, 383946848796341ull}},
+ {{7386484976411995613ull, 307157479037073ull}},
+ {{8129027147517282657ull, 491451966459317ull}},
+ {{17571268162239557095ull, 393161573167453ull}},
+ {{2988968085565914707ull, 314529258533963ull}},
+ {{1093000122163553208ull, 503246813654341ull}},
+ {{15631795356698483859ull, 402597450923472ull}},
+ {{5126738655874966440ull, 322077960738778ull}},
+ {{4513433034658035982ull, 515324737182045ull}},
+ {{3610746427726428785ull, 412259789745636ull}},
+ {{17645992401148784321ull, 329807831796508ull}},
+ {{6097494953386592975ull, 527692530874414ull}},
+ {{8567344777451184703ull, 422154024699531ull}},
+ {{3164527007219037439ull, 337723219759625ull}},
+ {{5063243211550459903ull, 540357151615400ull}},
+ {{4050594569240367922ull, 432285721292320ull}},
+ {{3240475655392294338ull, 345828577033856ull}},
+ {{16252807492853401910ull, 553325723254169ull}},
+ {{16691594809024631851ull, 442660578603335ull}},
+ {{13353275847219705481ull, 354128462882668ull}},
+ {{18061318307259585031ull, 283302770306134ull}},
+ {{17830062847389605080ull, 453284432489815ull}},
+ {{14264050277911684064ull, 362627545991852ull}},
+ {{4032542592845526605ull, 290102036793482ull}},
+ {{10141416963294752891ull, 464163258869571ull}},
+ {{4423784755893891990ull, 371330607095657ull}},
+ {{14607074248940844561ull, 297064485676525ull}},
+ {{4924574724595799682ull, 475303177082441ull}},
+ {{250310964934729422ull, 380242541665953ull}},
+ {{7578946401431604184ull, 304194033332762ull}},
+ {{15815663057032477018ull, 486710453332419ull}},
+ {{16341879260367891938ull, 389368362665935ull}},
+ {{13073503408294313550ull, 311494690132748ull}},
+ {{17228256638528991357ull, 498391504212397ull}},
+ {{6403907681339372439ull, 398713203369918ull}},
+ {{12501823774555318598ull, 318970562695934ull}},
+ {{8934871595062778787ull, 510352900313495ull}},
+ {{7147897276050223030ull, 408282320250796ull}},
+ {{2028969006098268100ull, 326625856200637ull}},
+ {{6935699224499139284ull, 522601369921019ull}},
+ {{9237908194341221750ull, 418081095936815ull}},
+ {{7390326555472977400ull, 334464876749452ull}},
+ {{15513871303498674164ull, 535143802799123ull}},
+ {{1343050598573208361ull, 428115042239299ull}},
+ {{4763789293600477012ull, 342492033791439ull}},
+ {{15000760499244583866ull, 547987254066302ull}},
+ {{4621910769911846446ull, 438389803253042ull}},
+ {{14765575060155208127ull, 350711842602433ull}},
+ {{1488827207796871064ull, 561138948163894ull}},
+ {{4880410580979407174ull, 448911158531115ull}},
+ {{3904328464783525739ull, 359128926824892ull}},
+ {{14191509216052551561ull, 287303141459913ull}},
+ {{570321857232620558ull, 459685026335862ull}},
+ {{11524303930011827416ull, 367748021068689ull}},
+ {{12908791958751372256ull, 294198416854951ull}},
+ {{13275369504518374964ull, 470717466967922ull}},
+ {{3241597974130879324ull, 376573973574338ull}},
+ {{9971976008788524106ull, 301259178859470ull}},
+ {{15955161614061638570ull, 482014686175152ull}},
+ {{5385431661765490209ull, 385611748940122ull}},
+ {{15376391773638123137ull, 308489399152097ull}},
+ {{9844831578853355726ull, 493583038643356ull}},
+ {{4186516448340774258ull, 394866430914685ull}},
+ {{3349213158672619406ull, 315893144731748ull}},
+ {{1669392239134280727ull, 505429031570797ull}},
+ {{12403560235533155551ull, 404343225256637ull}},
+ {{2544150558942703794ull, 323474580205310ull}},
+ {{4070640894308326071ull, 517559328328496ull}},
+ {{18013907974414302150ull, 414047462662796ull}},
+ {{10721777564789531397ull, 331237970130237ull}},
+ {{2397448844695608942ull, 529980752208380ull}},
+ {{1917959075756487153ull, 423984601766704ull}},
+ {{5223716075347100046ull, 339187681413363ull}},
+ {{4668596905813449750ull, 542700290261381ull}},
+ {{45528709908849477ull, 434160232209105ull}},
+ {{36422967927079582ull, 347328185767284ull}},
+ {{7436974378167147977ull, 555725097227654ull}},
+ {{9638928317275628705ull, 444580077782123ull}},
+ {{15089840283304323610ull, 355664062225698ull}},
+ {{1003825782417727918ull, 284531249780559ull}},
+ {{8984818881352185316ull, 455249999648894ull}},
+ {{10877203919823658576ull, 364199999719115ull}},
+ {{8701763135858926861ull, 291359999775292ull}},
+ {{17612169832116193301ull, 466175999640467ull}},
+ {{6711038236209133994ull, 372940799712374ull}},
+ {{9058179403709217518ull, 298352639769899ull}},
+ {{3425040601709017060ull, 477364223631839ull}},
+ {{6429381296109123971ull, 381891378905471ull}},
+ {{1454156222145388854ull, 305513103124377ull}},
+ {{6015998770174532489ull, 488820964999003ull}},
+ {{12191496645623446638ull, 391056771999202ull}},
+ {{2374499687014936664ull, 312845417599362ull}},
+ {{7488548313965808985ull, 500552668158979ull}},
+ {{9680187465914557511ull, 400442134527183ull}},
+ {{15122847602215466655ull, 320353707621746ull}},
+ {{16817858534060926003ull, 512565932194794ull}},
+ {{17143635641990651125ull, 410052745755835ull}},
+ {{13714908513592520900ull, 328042196604668ull}},
+ {{18254504807006123117ull, 524867514567469ull}},
+ {{18292952660346808817ull, 419894011653975ull}},
+ {{14634362128277447053ull, 335915209323180ull}},
+ {{4968235331534363670ull, 537464334917089ull}},
+ {{7663937079969401259ull, 429971467933671ull}},
+ {{2441800849233610684ull, 343977174346937ull}},
+ {{7596230173515687418ull, 550363478955099ull}},
+ {{9766332953554460257ull, 440290783164079ull}},
+ {{11502415177585478529ull, 352232626531263ull}},
+ {{16580629771552203469ull, 281786101225010ull}},
+ {{8082263560773973935ull, 450857761960017ull}},
+ {{17533857292844910118ull, 360686209568013ull}},
+ {{2959039390050197124ull, 288548967654411ull}},
+ {{15802509468306046369ull, 461678348247057ull}},
+ {{5263309945161016449ull, 369342678597646ull}},
+ {{521299141386902836ull, 295474142878117ull}},
+ {{4523427440960954861ull, 472758628604987ull}},
+ {{14686788396994494858ull, 378206902883989ull}},
+ {{15438779532337506209ull, 302565522307191ull}},
+ {{17323349622256189289ull, 484104835691506ull}},
+ {{10169330883063041108ull, 387283868553205ull}},
+ {{8135464706450432886ull, 309827094842564ull}},
+ {{1948697086094961649ull, 495723351748103ull}},
+ {{8937655298359789965ull, 396578681398482ull}},
+ {{18218170682913562942ull, 317262945118785ull}},
+ {{10702329018952149091ull, 507620712190057ull}},
+ {{1183165585677898626ull, 406096569752046ull}},
+ {{15703927727509960194ull, 324877255801636ull}},
+ {{17747586734532115664ull, 519803609282618ull}},
+ {{3130022943399961561ull, 415842887426095ull}},
+ {{2504018354719969249ull, 332674309940876ull}},
+ {{15074475811777681768ull, 532278895905401ull}},
+ {{8370231834680235091ull, 425823116724321ull}},
+ {{3006836653002277750ull, 340658493379457ull}},
+ {{8500287459545554723ull, 545053589407131ull}},
+ {{3110881152894533455ull, 436042871525705ull}},
+ {{2488704922315626764ull, 348834297220564ull}},
+ {{11360625505188823469ull, 558134875552902ull}},
+ {{1709802774667238129ull, 446507900442322ull}},
+ {{12435888663959521473ull, 357206320353857ull}},
+ {{2570013301683796532ull, 285765056283086ull}},
+ {{15180067726919805421ull, 457224090052937ull}},
+ {{4765356552052023690ull, 365779272042350ull}},
+ {{3812285241641618952ull, 292623417633880ull}},
+ {{6099656386626590323ull, 468197468214208ull}},
+ {{12258422738785092905ull, 374557974571366ull}},
+ {{6117389376286164001ull, 299646379657093ull}},
+ {{6098474187315952078ull, 479434207451349ull}},
+ {{8568128164594671986ull, 383547365961079ull}},
+ {{10543851346417647912ull, 306837892768863ull}},
+ {{13180813339526326336ull, 490940628430181ull}},
+ {{6855301856879150745ull, 392752502744145ull}},
+ {{5484241485503320596ull, 314202002195316ull}},
+ {{1396088747321492308ull, 502723203512506ull}},
+ {{15874266256824835139ull, 402178562810004ull}},
+ {{16388761820201778434ull, 321742850248003ull}},
+ {{4085926023871383556ull, 514788560396806ull}},
+ {{18026136078064748137ull, 411830848317444ull}},
+ {{18110257677193708833ull, 329464678653955ull}},
+ {{10529668209800382517ull, 527143485846329ull}},
+ {{12113083382582216337ull, 421714788677063ull}},
+ {{17069164335549593716ull, 337371830941650ull}},
+ {{8863918863169798329ull, 539794929506641ull}},
+ {{3401786275793928340ull, 431835943605313ull}},
+ {{10100126650118963318ull, 345468754884250ull}},
+ {{16160202640190341310ull, 552750007814800ull}},
+ {{12928162112152273048ull, 442200006251840ull}},
+ {{10342529689721818438ull, 353760005001472ull}},
+ {{895326122293634104ull, 283008004001178ull}},
+ {{16189917054637455859ull, 452812806401884ull}},
+ {{16641282458451875011ull, 362250245121507ull}},
+ {{5934328337277679362ull, 289800196097206ull}},
+ {{2116227710160466333ull, 463680313755530ull}},
+ {{1692982168128373066ull, 370944251004424ull}},
+ {{5043734549244608776ull, 296755400803539ull}},
+ {{15448672908275194689ull, 474808641285662ull}},
+ {{4980240697136335104ull, 379846913028530ull}},
+ {{3984192557709068083ull, 303877530422824ull}},
+ {{13753405721818329580ull, 486204048676518ull}},
+ {{18381422206938484310ull, 388963238941214ull}},
+ {{18394486580292697771ull, 311170591152971ull}},
+ {{3605736825274944172ull, 497872945844755ull}},
+ {{2884589460219955338ull, 398298356675804ull}},
+ {{5997020382917874593ull, 318638685340643ull}},
+ {{5905883797926689026ull, 509821896545029ull}},
+ {{8414055853083261544ull, 407857517236023ull}},
+ {{14109942311950429882ull, 326286013788818ull}},
+ {{439814810669225872ull, 522057622062110ull}},
+ {{351851848535380697ull, 417646097649688ull}},
+ {{7660179108312125204ull, 334116878119750ull}},
+ {{12256286573299400327ull, 534587004991600ull}},
+ {{9805029258639520261ull, 427669603993280ull}},
+ {{7844023406911616209ull, 342135683194624ull}},
+ {{1482391006832854965ull, 547417093111399ull}},
+ {{4875261620208194295ull, 437933674489119ull}},
+ {{7589558110908465759ull, 350346939591295ull}},
+ {{12143292977453545215ull, 560555103346072ull}},
+ {{2335936752479015526ull, 448444082676858ull}},
+ {{9247447031467033067ull, 358755266141486ull}},
+ {{3708608810431716130ull, 287004212913189ull}},
+ {{13312471726174566455ull, 459206740661102ull}},
+ {{3271279751455832517ull, 367365392528882ull}},
+ {{13685070245390396983ull, 293892314023105ull}},
+ {{3449368318915083558ull, 470227702436969ull}},
+ {{6448843469873977169ull, 376182161949575ull}},
+ {{5159074775899181735ull, 300945729559660ull}},
+ {{8254519641438690777ull, 481513167295456ull}},
+ {{2914266898409042298ull, 385210533836365ull}},
+ {{2331413518727233838ull, 308168427069092ull}},
+ {{7419610444705484465ull, 493069483310547ull}},
+ {{17003734799990118541ull, 394455586648437ull}},
+ {{6224290210508274187ull, 315564469318750ull}},
+ {{9958864336813238699ull, 504903150910000ull}},
+ {{7967091469450590959ull, 403922520728000ull}},
+ {{6373673175560472767ull, 323138016582400ull}},
+ {{10197877080896756428ull, 517020826531840ull}},
+ {{8158301664717405142ull, 413616661225472ull}},
+ {{17594687775999655083ull, 330893328980377ull}},
+ {{13394105182631806841ull, 529429326368604ull}},
+ {{14404632960847355796ull, 423543461094883ull}},
+ {{455659924452153667ull, 338834768875907ull}},
+ {{4418404693865356190ull, 542135630201451ull}},
+ {{18292119014059926245ull, 433708504161160ull}},
+ {{14633695211247940996ull, 346966803328928ull}},
+ {{1277819449545243655ull, 555146885326286ull}},
+ {{15779650818603836216ull, 444117508261028ull}},
+ {{1555674210657338003ull, 355294006608823ull}},
+ {{8623236998009691049ull, 284235205287058ull}},
+ {{10107830382073595355ull, 454776328459293ull}},
+ {{15464961935142696931ull, 363821062767434ull}},
+ {{16061318362856067868ull, 291056850213947ull}},
+ {{10940714121602067296ull, 465690960342316ull}},
+ {{5063222482539743513ull, 372552768273853ull}},
+ {{11429275615515615457ull, 298042214619082ull}},
+ {{3529445725857343439ull, 476867543390532ull}},
+ {{13891603024911605720ull, 381494034712425ull}},
+ {{11113282419929284576ull, 305195227769940ull}},
+ {{17781251871886855322ull, 488312364431904ull}},
+ {{17914350312251394581ull, 390649891545523ull}},
+ {{3263433805575384695ull, 312519913236419ull}},
+ {{12600191718404436159ull, 500031861178270ull}},
+ {{10080153374723548927ull, 400025488942616ull}},
+ {{4374773885036928818ull, 320020391154093ull}},
+ {{3310289401317175786ull, 512032625846549ull}},
+ {{6337580335795650952ull, 409626100677239ull}},
+ {{8759413083378431085ull, 327700880541791ull}},
+ {{6636363303921669089ull, 524321408866866ull}},
+ {{1619741828395424948ull, 419457127093493ull}},
+ {{8674491092200160605ull, 335565701674794ull}},
+ {{2811139303294525999ull, 536905122679671ull}},
+ {{17006306701603262092ull, 429524098143736ull}},
+ {{9915696546540699350ull, 343619278514989ull}},
+ {{4797068030239387991ull, 549790845623983ull}},
+ {{11216352053675331039ull, 439832676499186ull}},
+ {{5283732828198354508ull, 351866141199349ull}},
+ {{7916335077300593929ull, 281492912959479ull}},
+ {{1598089679455219318ull, 450388660735167ull}},
+ {{12346518187789906424ull, 360310928588133ull}},
+ {{17255912179715745785ull, 288248742870506ull}},
+ {{1784017784351820994ull, 461197988592811ull}},
+ {{16184609486449098088ull, 368958390874248ull}},
+ {{1879641144933547501ull, 295166712699399ull}},
+ {{10386123461377496648ull, 472266740319038ull}},
+ {{15687596398585817965ull, 377813392255230ull}},
+ {{12550077118868654372ull, 302250713804184ull}},
+ {{9012076945964116025ull, 483601142086695ull}},
+ {{7209661556771292820ull, 386880913669356ull}},
+ {{2078380430675123933ull, 309504730935485ull}},
+ {{3325408689080198293ull, 495207569496776ull}},
+ {{17417722210231799927ull, 396166055597420ull}},
+ {{13934177768185439941ull, 316932844477936ull}},
+ {{14915986799612883260ull, 507092551164698ull}},
+ {{864742995464575638ull, 405674040931759ull}},
+ {{4381143211113570834ull, 324539232745407ull}},
+ {{10699177952523623658ull, 519262772392651ull}},
+ {{4869993547276988603ull, 415410217914121ull}},
+ {{206646023079680559ull, 332328174331297ull}},
+ {{4019982451669399218ull, 531725078930075ull}},
+ {{3215985961335519374ull, 425380063144060ull}},
+ {{2572788769068415499ull, 340304050515248ull}},
+ {{427113215767554476ull, 544486480824397ull}},
+ {{11409737016839774550ull, 435589184659517ull}},
+ {{1749091983987998994ull, 348471347727614ull}},
+ {{10177244803864619036ull, 557554156364182ull}},
+ {{763098213607874583ull, 446043325091346ull}},
+ {{15367873829853940959ull, 356834660073076ull}},
+ {{8604950249141242444ull, 285467728058461ull}},
+ {{6389222769142167264ull, 456748364893538ull}},
+ {{12490075844797554457ull, 365398691914830ull}},
+ {{9992060675838043566ull, 292318953531864ull}},
+ {{4919250637115138736ull, 467710325650983ull}},
+ {{11314098139175931635ull, 374168260520786ull}},
+ {{5361929696598834985ull, 299334608416629ull}},
+ {{15957785144041956622ull, 478935373466606ull}},
+ {{9076879300491654975ull, 383148298773285ull}},
+ {{7261503440393323980ull, 306518639018628ull}},
+ {{7929056689887408044ull, 490429822429805ull}},
+ {{6343245351909926435ull, 392343857943844ull}},
+ {{8763945096269851471ull, 313875086355075ull}},
+ {{14022312154031762355ull, 502200138168120ull}},
+ {{11217849723225409884ull, 401760110534496ull}},
+ {{5284930963838417584ull, 321408088427597ull}},
+ {{12145238356883378457ull, 514252941484155ull}},
+ {{9716190685506702766ull, 411402353187324ull}},
+ {{11462301363147272536ull, 329121882549859ull}},
+ {{7271635736809905088ull, 526595012079775ull}},
+ {{5817308589447924070ull, 421276009663820ull}},
+ {{4653846871558339256ull, 337020807731056ull}},
+ {{67457365009522164ull, 539233292369690ull}},
+ {{53965892007617731ull, 431386633895752ull}},
+ {{11111219157831825154ull, 345109307116601ull}},
+ {{10399253023047099600ull, 552174891386562ull}},
+ {{940704788953859034ull, 441739913109250ull}},
+ {{752563831163087227ull, 353391930487400ull}},
+ {{602051064930469781ull, 282713544389920ull}},
+ {{963281703888751651ull, 452341671023872ull}},
+ {{11838671807336732290ull, 361873336819097ull}},
+ {{2092239816385565186ull, 289498669455278ull}},
+ {{18104978965184545590ull, 463197871128444ull}},
+ {{18173331986889546795ull, 370558296902755ull}},
+ {{14538665589511637436ull, 296446637522204ull}},
+ {{12193818498992888928ull, 474314620035527ull}},
+ {{2376357169710490496ull, 379451696028422ull}},
+ {{12969132179994123366ull, 303561356822737ull}},
+ {{5993216229022956094ull, 485698170916380ull}},
+ {{4794572983218364875ull, 388558536733104ull}},
+ {{7525007201316602223ull, 310846829386483ull}},
+ {{8350662707364653234ull, 497354927018373ull}},
+ {{14059227795375543233ull, 397883941614698ull}},
+ {{179335792074703617ull, 318307153291759ull}},
+ {{7665634896803346434ull, 509291445266814ull}},
+ {{9821856732184587470ull, 407433156213451ull}},
+ {{4168136571005759653ull, 325946524970761ull}},
+ {{17737064957834946414ull, 521514439953217ull}},
+ {{6810954336784136485ull, 417211551962574ull}},
+ {{9138112284169219511ull, 333769241570059ull}},
+ {{3552933210445020249ull, 534030786512095ull}},
+ {{2842346568356016199ull, 427224629209676ull}},
+ {{17031272513652454252ull, 341779703367740ull}},
+ {{8803291948134375187ull, 546847525388385ull}},
+ {{7042633558507500150ull, 437478020310708ull}},
+ {{13012804476289820766ull, 349982416248566ull}},
+ {{13441789532579892579ull, 559971865997706ull}},
+ {{7064082811322003740ull, 447977492798165ull}},
+ {{5651266249057602992ull, 358381994238532ull}},
+ {{15589059443471813363ull, 286705595390825ull}},
+ {{6495751035845349765ull, 458728952625321ull}},
+ {{1507252013934369489ull, 366983162100257ull}},
+ {{12273848055373226561ull, 293586529680205ull}},
+ {{1191412814887610881ull, 469738447488329ull}},
+ {{4642479066651999028ull, 375790757990663ull}},
+ {{11092680882805419869ull, 300632606392530ull}},
+ {{17748289412488671790ull, 481012170228048ull}},
+ {{3130585085765206463ull, 384809736182439ull}},
+ {{6193816883354075493ull, 307847788945951ull}},
+ {{2531409383882700143ull, 492556462313522ull}},
+ {{13093173951331891084ull, 394045169850817ull}},
+ {{3095841531581692221ull, 315236135880654ull}},
+ {{12332044080014528200ull, 504377817409046ull}},
+ {{6176286449269712237ull, 403502253927237ull}},
+ {{16009075603641500759ull, 322801803141789ull}},
+ {{14546474521600670245ull, 516482885026863ull}},
+ {{569133173054805226ull, 413186308021491ull}},
+ {{15212701797411485474ull, 330549046417192ull}},
+ {{9582927616890735465ull, 528878474267508ull}},
+ {{15045039722996409018ull, 423102779414006ull}},
+ {{8346682963655216891ull, 338482223531205ull}},
+ {{13354692741848347027ull, 541571557649928ull}},
+ {{18062451822962498268ull, 433257246119942ull}},
+ {{7071263828886177968ull, 346605796895954ull}},
+ {{245975681992153779ull, 554569275033527ull}},
+ {{11264826989819453993ull, 443655420026821ull}},
+ {{5322512777113652871ull, 354924336021457ull}},
+ {{15326056665916653266ull, 283939468817165ull}},
+ {{6074946591757093610ull, 454303150107465ull}},
+ {{4859957273405674888ull, 363442520085972ull}},
+ {{14956012262950270880ull, 290754016068777ull}},
+ {{9172224361752792115ull, 465206425710044ull}},
+ {{11027128304144144015ull, 372165140568035ull}},
+ {{8821702643315315212ull, 297732112454428ull}},
+ {{10425375414562594017ull, 476371379927085ull}},
+ {{8340300331650075213ull, 381097103941668ull}},
+ {{14050937894803880817ull, 304877683153334ull}},
+ {{11413454187460478338ull, 487804293045335ull}},
+ {{9130763349968382670ull, 390243434436268ull}},
+ {{14683308309458526782ull, 312194747549014ull}},
+ {{12425246850907911882ull, 499511596078423ull}},
+ {{17318895110210150152ull, 399609276862738ull}},
+ {{2787069643942389152ull, 319687421490191ull}},
+ {{15527357874533553613ull, 511499874384305ull}},
+ {{12421886299626842890ull, 409199899507444ull}},
+ {{13626857854443384635ull, 327359919605955ull}},
+ {{3356228493399863801ull, 523775871369529ull}},
+ {{6374331609461801364ull, 419020697095623ull}},
+ {{12478162917053261737ull, 335216557676498ull}},
+ {{16275711852543308457ull, 536346492282397ull}},
+ {{5641871852550826119ull, 429077193825918ull}},
+ {{11892195111524481542ull, 343261755060734ull}},
+ {{7959465734213439497ull, 549218808097175ull}},
+ {{6367572587370751598ull, 439375046477740ull}},
+ {{5094058069896601278ull, 351500037182192ull}},
+ {{11839841726576472368ull, 562400059491507ull}},
+ {{2093175751777357248ull, 449920047593206ull}},
+ {{16431935860389527091ull, 359936038074564ull}},
+ {{16834897503053531996ull, 287948830459651ull}},
+ {{1110394301692278932ull, 460718128735443ull}},
+ {{8267013070837643792ull, 368574502988354ull}},
+ {{10302959271412025356ull, 294859602390683ull}},
+ {{12795386019517330247ull, 471775363825093ull}},
+ {{17615006445097684844ull, 377420291060074ull}},
+ {{17781353970820058198ull, 301936232848059ull}},
+ {{17382119909086362148ull, 483097972556895ull}},
+ {{13905695927269089718ull, 386478378045516ull}},
+ {{7435207927073361451ull, 309182702436413ull}},
+ {{8206983868575467999ull, 494692323898261ull}},
+ {{2876238280118464076ull, 395753859118609ull}},
+ {{5990339438836681584ull, 316603087294887ull}},
+ {{13273891916880600858ull, 506564939671819ull}},
+ {{14308462348246391010ull, 405251951737455ull}},
+ {{11446769878597112808ull, 324201561389964ull}},
+ {{7246785361529649523ull, 518722498223943ull}},
+ {{13176125918707540264ull, 414977998579154ull}},
+ {{14230249549707942535ull, 331982398863323ull}},
+ {{632306391081246117ull, 531171838181318ull}},
+ {{7884542742348817540ull, 424937470545054ull}},
+ {{9996983008620964355ull, 339949976436043ull}},
+ {{12305823999051632645ull, 543919962297669ull}},
+ {{13534008013983216439ull, 435135969838135ull}},
+ {{10827206411186573151ull, 348108775870508ull}},
+ {{13634181443156606719ull, 556974041392813ull}},
+ {{18286042784009106021ull, 445579233114250ull}},
+ {{14628834227207284817ull, 356463386491400ull}},
+ {{11703067381765827853ull, 285170709193120ull}},
+ {{278163737115772950ull, 456273134708993ull}},
+ {{7601228619176439006ull, 365018507767194ull}},
+ {{9770331710083061528ull, 292014806213755ull}},
+ {{15632530736132898445ull, 467223689942008ull}},
+ {{1437978144680587786ull, 373778951953607ull}},
+ {{12218428959970201199ull, 299023161562885ull}},
+ {{1102742262242770302ull, 478437058500617ull}},
+ {{11950240254019947211ull, 382749646800493ull}},
+ {{16938889832699778415ull, 306199717440394ull}},
+ {{16034177288093914495ull, 489919547904631ull}},
+ {{9137993015733221273ull, 391935638323705ull}},
+ {{7310394412586577018ull, 313548510658964ull}},
+ {{628584615912792260ull, 501677617054343ull}},
+ {{7881565322214054454ull, 401342093643474ull}},
+ {{9994601072513153886ull, 321073674914779ull}},
+ {{4923315271795315249ull, 513717879863647ull}},
+ {{15006698661661983169ull, 410974303890917ull}},
+ {{4626661299845765888ull, 328779443112734ull}},
+ {{14781355709237046068ull, 526047108980374ull}},
+ {{15514433382131547178ull, 420837687184299ull}},
+ {{16100895520447148065ull, 336670149747439ull}},
+ {{14693386388489705935ull, 538672239595903ull}},
+ {{686662666566033778ull, 430937791676723ull}},
+ {{7928027762736647669ull, 344750233341378ull}},
+ {{8995495605636725947ull, 551600373346205ull}},
+ {{7196396484509380758ull, 441280298676964ull}},
+ {{9446466002349414929ull, 353024238941571ull}},
+ {{3867823987137621620ull, 282419391153257ull}},
+ {{9877867194162104916ull, 451871025845211ull}},
+ {{4212944940587773609ull, 361496820676169ull}},
+ {{7059704767212129211ull, 289197456540935ull}},
+ {{11295527627539406737ull, 462715930465496ull}},
+ {{5347073287289615066ull, 370172744372397ull}},
+ {{15345705074057423023ull, 296138195497917ull}},
+ {{9795732859524235544ull, 473821112796668ull}},
+ {{15215283917103209081ull, 379056890237334ull}},
+ {{15861575948424477588ull, 303245512189867ull}},
+ {{10621126258511522848ull, 485192819503788ull}},
+ {{15875598636293038925ull, 388154255603030ull}},
+ {{12700478909034431140ull, 310523404482424ull}},
+ {{9252719810229358855ull, 496837447171879ull}},
+ {{11091524662925397407ull, 397469957737503ull}},
+ {{16251917359824138572ull, 317975966190002ull}},
+ {{11245672516750980422ull, 508761545904004ull}},
+ {{12685886828142694661ull, 407009236723203ull}},
+ {{17527407091997976375ull, 325607389378562ull}},
+ {{13286456088229120908ull, 520971823005700ull}},
+ {{10629164870583296726ull, 416777458404560ull}},
+ {{8503331896466637381ull, 333421966723648ull}},
+ {{9915982219604709486ull, 533475146757837ull}},
+ {{554088146199946942ull, 426780117406270ull}},
+ {{443270516959957554ull, 341424093925016ull}},
+ {{11777279271361663056ull, 546278550280025ull}},
+ {{9421823417089330445ull, 437022840224020ull}},
+ {{7537458733671464356ull, 349618272179216ull}},
+ {{4681236344390522323ull, 559389235486746ull}},
+ {{55640260770507535ull, 447511388389397ull}},
+ {{11112558652842136998ull, 358009110711517ull}},
+ {{1511349292789888952ull, 286407288569214ull}},
+ {{9796856497947642969ull, 458251661710742ull}},
+ {{458787568874293729ull, 366601329368594ull}},
+ {{4056378869841345306ull, 293281063494875ull}},
+ {{6490206191746152490ull, 469249701591800ull}},
+ {{5192164953396921992ull, 375399761273440ull}},
+ {{4153731962717537594ull, 300319809018752ull}},
+ {{10335319955089970473ull, 480511694430003ull}},
+ {{15646953593555797025ull, 384409355544002ull}},
+ {{5138865245360816973ull, 307527484435202ull}},
+ {{11911533207319217481ull, 492043975096323ull}},
+ {{16907924195339194631ull, 393635180077058ull}},
+ {{2458292912045624735ull, 314908144061647ull}},
+ {{7622617474014909900ull, 503853030498635ull}},
+ {{6098093979211927920ull, 403082424398908ull}},
+ {{12257172812853362982ull, 322465939519126ull}},
+ {{12232778871081560125ull, 515945503230602ull}},
+ {{2407525467381427454ull, 412756402584482ull}},
+ {{12994066818130872932ull, 330205122067585ull}},
+ {{2343762835299845076ull, 528328195308137ull}},
+ {{12943056712465607030ull, 422662556246509ull}},
+ {{14043794184714395947ull, 338130044997207ull}},
+ {{7712675436575392223ull, 541008071995532ull}},
+ {{17238186793486044748ull, 432806457596425ull}},
+ {{13790549434788835798ull, 346245166077140ull}},
+ {{3618135021952585662ull, 553992265723425ull}},
+ {{2894508017562068529ull, 443193812578740ull}},
+ {{2315606414049654823ull, 354555050062992ull}},
+ {{12920531575465454828ull, 283644040050393ull}},
+ {{16983501706002817402ull, 453830464080629ull}},
+ {{17276150179544164245ull, 363064371264503ull}},
+ {{2752873699409600426ull, 290451497011603ull}},
+ {{715249104313450359ull, 464722395218565ull}},
+ {{572199283450760287ull, 371777916174852ull}},
+ {{11525805870986339199ull, 297422332939881ull}},
+ {{11062591764094322073ull, 475875732703810ull}},
+ {{8850073411275457658ull, 380700586163048ull}},
+ {{14458756358504186773ull, 304560468930438ull}},
+ {{997917285155236897ull, 487296750288702ull}},
+ {{11866380272349920487ull, 389837400230961ull}},
+ {{5803755403138026067ull, 311869920184769ull}},
+ {{16664706274504662353ull, 498991872295630ull}},
+ {{13331765019603729883ull, 399193497836504ull}},
+ {{14354760830424894229ull, 319354798269203ull}},
+ {{831524440228368828ull, 510967677230726ull}},
+ {{15422614811150336355ull, 408774141784580ull}},
+ {{12338091848920269084ull, 327019313427664ull}},
+ {{8672900514046699565ull, 523230901484263ull}},
+ {{14317018040721180298ull, 418584721187410ull}},
+ {{11453614432576944238ull, 334867776949928ull}},
+ {{14636434277381200459ull, 535788443119885ull}},
+ {{11709147421904960367ull, 428630754495908ull}},
+ {{16746015567007788940ull, 342904603596726ull}},
+ {{968183204019090041ull, 548647365754763ull}},
+ {{8153244192699092679ull, 438917892603810ull}},
+ {{6522595354159274143ull, 351134314083048ull}},
+ {{6746803751912928307ull, 561814902532877ull}},
+ {{16465489445756073615ull, 449451922026301ull}},
+ {{9483042741862948569ull, 359561537621041ull}},
+ {{3897085378748448532ull, 287649230096833ull}},
+ {{2545987791255607328ull, 460238768154933ull}},
+ {{9415487862488306508ull, 368191014523946ull}},
+ {{3843041475248734883ull, 294552811619157ull}},
+ {{9838215175139886137ull, 471284498590651ull}},
+ {{4181223325369998586ull, 377027598872521ull}},
+ {{18102373919263640162ull, 301622079098016ull}},
+ {{3138356567628451997ull, 482595326556827ull}},
+ {{13578731698328492567ull, 386076261245461ull}},
+ {{7173636543920883730ull, 308861008996369ull}},
+ {{409772026047682999ull, 494177614394191ull}},
+ {{15085212879805787692ull, 395342091515352ull}},
+ {{4689472674360809507ull, 316273673212282ull}},
+ {{11192505093719205535ull, 506037877139651ull}},
+ {{5264655260233454104ull, 404830301711721ull}},
+ {{522375393444852960ull, 323864241369377ull}},
+ {{4525149444253675060ull, 518182786191003ull}},
+ {{10998817184886760694ull, 414546228952802ull}},
+ {{1420356118425587909ull, 331636983162242ull}},
+ {{5961918604222850978ull, 530619173059587ull}},
+ {{15837581327604011752ull, 424495338447669ull}},
+ {{16359413876825119724ull, 339596270758135ull}},
+ {{7728318129210639943ull, 543354033213017ull}},
+ {{17250700947594242924ull, 434683226570413ull}},
+ {{2732514313849663370ull, 347746581256331ull}},
+ {{15440069346385192361ull, 556394530010129ull}},
+ {{16041404291850064212ull, 445115624008103ull}},
+ {{1765076989254320400ull, 356092499206483ull}},
+ {{8790759220887276966ull, 284873999365186ull}},
+ {{6686517123935822500ull, 455798398984298ull}},
+ {{12727911328632478646ull, 364638719187438ull}},
+ {{17561026692389803563ull, 291710975349950ull}},
+ {{9650898634114134086ull, 466737560559921ull}},
+ {{4031370092549396945ull, 373390048447937ull}},
+ {{14293142518265248526ull, 298712038758349ull}},
+ {{11800981584998666672ull, 477939262013359ull}},
+ {{13130134082740843661ull, 382351409610687ull}},
+ {{3125409636708854282ull, 305881127688550ull}},
+ {{5000655418734166851ull, 489409804301680ull}},
+ {{4000524334987333481ull, 391527843441344ull}},
+ {{6889768282731777108ull, 313222274753075ull}},
+ {{11023629252370843373ull, 501155639604920ull}},
+ {{8818903401896674698ull, 400924511683936ull}},
+ {{3365773906775429435ull, 320739609347149ull}},
+ {{12763935880324507743ull, 513183374955438ull}},
+ {{17589846333743426841ull, 410546699964350ull}},
+ {{14071877066994741473ull, 328437359971480ull}},
+ {{4068259233482034740ull, 525499775954369ull}},
+ {{6943956201527538115ull, 420399820763495ull}},
+ {{5555164961222030492ull, 336319856610796ull}},
+ {{1509566308471428142ull, 538111770577274ull}},
+ {{4897001861519052836ull, 430489416461819ull}},
+ {{7606950303957152592ull, 344391533169455ull}},
+ {{12171120486331444148ull, 551026453071128ull}},
+ {{17115594018548975964ull, 440821162456902ull}},
+ {{6313777585355360125ull, 352656929965522ull}},
+ {{16119068512510019070ull, 282125543972417ull}},
+ {{11033114361048389219ull, 451400870355868ull}},
+ {{16205189118322532021ull, 361120696284694ull}},
+ {{16653500109399935940ull, 288896557027755ull}},
+ {{8198856101330345889ull, 462234491244409ull}},
+ {{10248433695806187034ull, 369787592995527ull}},
+ {{820049327161128981ull, 295830074396422ull}},
+ {{5001427738199716693ull, 473328119034275ull}},
+ {{4001142190559773354ull, 378662495227420ull}},
+ {{3200913752447818683ull, 302929996181936ull}},
+ {{16189508448142240863ull, 484687993891097ull}},
+ {{5572909129029972044ull, 387750395112878ull}},
+ {{11837024932707798281ull, 310200316090302ull}},
+ {{4181844633364835958ull, 496320505744484ull}},
+ {{7034824521433779089ull, 397056404595587ull}},
+ {{16695906061372754241ull, 317645123676469ull}},
+ {{15645403253970675816ull, 508232197882351ull}},
+ {{8826973788434630330ull, 406585758305881ull}},
+ {{3372230216005793940ull, 325268606644705ull}},
+ {{5395568345609270305ull, 520429770631528ull}},
+ {{11695152305971236890ull, 416343816505222ull}},
+ {{1977424215293168866ull, 333075053204178ull}},
+ {{17921274003436711478ull, 532920085126684ull}},
+ {{18026368017491279506ull, 426336068101347ull}},
+ {{7042396784509202958ull, 341068854481078ull}},
+ {{7578486040472814410ull, 545710167169725ull}},
+ {{6062788832378251528ull, 436568133735780ull}},
+ {{4850231065902601222ull, 349254506988624ull}},
+ {{15139067334927982602ull, 558807211181798ull}},
+ {{1043207423716655112ull, 447045768945439ull}},
+ {{4523914753715234413ull, 357636615156351ull}},
+ {{18376527061939828823ull, 286109292125080ull}},
+ {{10955699225394174501ull, 457774867400129ull}},
+ {{12453908195057249924ull, 366219893920103ull}},
+ {{17341824185529620585ull, 292975915136082ull}},
+ {{12989523437879751644ull, 468761464217732ull}},
+ {{3012921120819980669ull, 375009171374186ull}},
+ {{17167732155623625828ull, 300007337099348ull}},
+ {{5332278560546339385ull, 480011739358958ull}},
+ {{11644520477920892155ull, 384009391487166ull}},
+ {{5626267567594803400ull, 307207513189733ull}},
+ {{5312679293409775118ull, 491532021103573ull}},
+ {{11628841064211640740ull, 393225616882858ull}},
+ {{16681770480853133239ull, 314580493506286ull}},
+ {{865391066171640920ull, 503328789610059ull}},
+ {{4381661667679223059ull, 402663031688047ull}},
+ {{14573375778369109417ull, 322130425350437ull}},
+ {{8560005986422933774ull, 515408680560700ull}},
+ {{6848004789138347019ull, 412326944448560ull}},
+ {{5478403831310677615ull, 329861555558848ull}},
+ {{5076097315355173862ull, 527778488894157ull}},
+ {{15128924296509870059ull, 422222791115325ull}},
+ {{12103139437207896047ull, 337778232892260ull}},
+ {{918279025823082059ull, 540445172627617ull}},
+ {{11802669664884196617ull, 432356138102093ull}},
+ {{16820833361391177940ull, 345884910481674ull}},
+ {{15845286934000153734ull, 553415856770679ull}},
+ {{16365578361942033311ull, 442732685416543ull}},
+ {{2024416245327895679ull, 354186148333235ull}},
+ {{1619532996262316543ull, 283348918666588ull}},
+ {{17348648052987347762ull, 453358269866540ull}},
+ {{13878918442389878209ull, 362686615893232ull}},
+ {{3724437124428081921ull, 290149292714586ull}},
+ {{17027145843310662043ull, 464238868343337ull}},
+ {{6243019045164708988ull, 371391094674670ull}},
+ {{4994415236131767191ull, 297112875739736ull}},
+ {{612366748327006859ull, 475380601183578ull}},
+ {{7868591028145426133ull, 380304480946862ull}},
+ {{17362919266742071876ull, 304243584757489ull}},
+ {{16712624382561584033ull, 486789735611983ull}},
+ {{2302053061823536256ull, 389431788489587ull}},
+ {{12909688893684559975ull, 311545430791669ull}},
+ {{9587455785669564990ull, 498472689266671ull}},
+ {{3980615813793741669ull, 398778151413337ull}},
+ {{14252539095260724304ull, 319022521130669ull}},
+ {{11736016108191427918ull, 510436033809071ull}},
+ {{5699464071811232011ull, 408348827047257ull}},
+ {{15627617701674716578ull, 326679061637805ull}},
+ {{6557444248969994910ull, 522686498620489ull}},
+ {{8935304213917906251ull, 418149198896391ull}},
+ {{3458894556392414677ull, 334519359117113ull}},
+ {{1844882475485953161ull, 535230974587381ull}},
+ {{16233301239356403821ull, 428184779669904ull}},
+ {{16675989806227033380ull, 342547823735923ull}},
+ {{4545490801511791469ull, 548076517977478ull}},
+ {{11015090270693253822ull, 438461214381982ull}},
+ {{1433374587070782411ull, 350768971505586ull}},
+ {{13361445783538982827ull, 561230354408937ull}},
+ {{3310458997347365615ull, 448984283527150ull}},
+ {{2648367197877892492ull, 359187426821720ull}},
+ {{2118693758302313994ull, 287349941457376ull}},
+ {{14457956457509433360ull, 459759906331801ull}},
+ {{7877016351265636365ull, 367807925065441ull}},
+ {{2612264266270598768ull, 294246340052353ull}},
+ {{490274011291047706ull, 470794144083765ull}},
+ {{392219209032838165ull, 376635315267012ull}},
+ {{11381821811452001502ull, 301308252213609ull}},
+ {{7142868454097471433ull, 482093203541775ull}},
+ {{5714294763277977146ull, 385674562833420ull}},
+ {{4571435810622381717ull, 308539650266736ull}},
+ {{18382343741221541717ull, 493663440426777ull}},
+ {{7327177363493412727ull, 394930752341422ull}},
+ {{16929788335020461151ull, 315944601873137ull}},
+ {{12330266077065096550ull, 505511362997020ull}},
+ {{9864212861652077240ull, 404409090397616ull}},
+ {{4202021474579751468ull, 323527272318093ull}},
+ {{3033885544585692026ull, 517643635708949ull}},
+ {{6116457250410463944ull, 414114908567159ull}},
+ {{8582514615070281478ull, 331291926853727ull}},
+ {{17421372198854360689ull, 530067082965963ull}},
+ {{2869051314857757582ull, 424053666372771ull}},
+ {{17052636310853847358ull, 339242933098216ull}},
+ {{1458776394172783511ull, 542788692957147ull}},
+ {{12235067559563957778ull, 434230954365717ull}},
+ {{2409356418167345576ull, 347384763492574ull}},
+ {{11233667898551573568ull, 555815621588118ull}},
+ {{16365631948325079501ull, 444652497270494ull}},
+ {{16781854373401973924ull, 355721997816395ull}},
+ {{13425483498721579139ull, 284577598253116ull}},
+ {{14102075968470705976ull, 455324157204986ull}},
+ {{7592311960034654458ull, 364259325763989ull}},
+ {{9763198382769633889ull, 291407460611191ull}},
+ {{8242419782947593577ull, 466251936977906ull}},
+ {{2904587011616164538ull, 373001549582325ull}},
+ {{2323669609292931630ull, 298401239665860ull}},
+ {{3717871374868690609ull, 477441983465376ull}},
+ {{17731692358862593780ull, 381953586772300ull}},
+ {{14185353887090075024ull, 305562869417840ull}},
+ {{4249822145634568422ull, 488900591068545ull}},
+ {{3399857716507654738ull, 391120472854836ull}},
+ {{17477281432173765083ull, 312896378283868ull}},
+ {{5827557403026562194ull, 500634205254190ull}},
+ {{4662045922421249755ull, 400507364203352ull}},
+ {{14797683182162730773ull, 320405891362681ull}},
+ {{16297595461976548591ull, 512649426180290ull}},
+ {{13038076369581238873ull, 410119540944232ull}},
+ {{3051763466181170452ull, 328095632755386ull}},
+ {{15950867990115603693ull, 524953012408617ull}},
+ {{5381996762608662308ull, 419962409926894ull}},
+ {{7994946224828840169ull, 335969927941515ull}},
+ {{12791913959726144271ull, 537551884706424ull}},
+ {{13922879982522825740ull, 430041507765139ull}},
+ {{14827652800760170915ull, 344033206212111ull}},
+ {{16345546851732452818ull, 550453129939378ull}},
+ {{2008391037160231285ull, 440362503951503ull}},
+ {{8985410459212005674ull, 352290003161202ull}},
+ {{18256374811595335509ull, 281832002528961ull}},
+ {{3384757995359164552ull, 450931204046339ull}},
+ {{6397155211029241965ull, 360744963237071ull}},
+ {{1428375354081483248ull, 288595970589657ull}},
+ {{5974749381272283521ull, 461753552943451ull}},
+ {{1090450690275916493ull, 369402842354761ull}},
+ {{15629755811188374487ull, 295522273883808ull}},
+ {{2871516409449937241ull, 472835638214094ull}},
+ {{5986561942301860116ull, 378268510571275ull}},
+ {{4789249553841488093ull, 302614808457020ull}},
+ {{7662799286146380949ull, 484183693531232ull}},
+ {{17198285873142835728ull, 387346954824985ull}},
+ {{13758628698514268583ull, 309877563859988ull}},
+ {{18324457102880919409ull, 495804102175981ull}},
+ {{10970216867562825204ull, 396643281740785ull}},
+ {{8776173494050260163ull, 317314625392628ull}},
+ {{10352528775738505938ull, 507703400628205ull}},
+ {{8282023020590804750ull, 406162720502564ull}},
+ {{10314967231214554123ull, 324930176402051ull}},
+ {{9125249940459465951ull, 519888282243282ull}},
+ {{18368246396593303731ull, 415910625794625ull}},
+ {{14694597117274642984ull, 332728500635700ull}},
+ {{5064611313929877159ull, 532365601017121ull}},
+ {{362340236401991404ull, 425892480813697ull}},
+ {{11357918633347324093ull, 340713984650957ull}},
+ {{3415274554388077256ull, 545142375441532ull}},
+ {{13800266087736192774ull, 436113900353225ull}},
+ {{11040212870188954219ull, 348891120282580ull}},
+ {{17664340592302326751ull, 558225792452128ull}},
+ {{3063426029616130431ull, 446580633961703ull}},
+ {{9829438453176724991ull, 357264507169362ull}},
+ {{484853133057559347ull, 285811605735490ull}},
+ {{775765012892094955ull, 457298569176784ull}},
+ {{4309960825055586287ull, 365838855341427ull}},
+ {{14516015104270199999ull, 292671084273141ull}},
+ {{15846926537348499352ull, 468273734837026ull}},
+ {{8988192415136889159ull, 374618987869621ull}},
+ {{3501205117367601004ull, 299695190295697ull}},
+ {{9291277002530071929ull, 479512304473115ull}},
+ {{7433021602024057543ull, 383609843578492ull}},
+ {{17014463725844977004ull, 306887874862793ull}},
+ {{5087049072900501268ull, 491020599780470ull}},
+ {{4069639258320401014ull, 392816479824376ull}},
+ {{18013106665623962104ull, 314253183859500ull}},
+ {{10374226591288787751ull, 502805094175201ull}},
+ {{4610032458289119877ull, 402244075340161ull}},
+ {{18445421225598937194ull, 321795260272128ull}},
+ {{7376581072506837572ull, 514872416435406ull}},
+ {{2211916043263559735ull, 411897933148325ull}},
+ {{1769532834610847788ull, 329518346518660ull}},
+ {{2831252535377356460ull, 527229354429856ull}},
+ {{17022397287269526461ull, 421783483543884ull}},
+ {{17307266644557531492ull, 337426786835107ull}},
+ {{12934231372324409095ull, 539882858936172ull}},
+ {{2968687468375706629ull, 431906287148938ull}},
+ {{9753647604184385950ull, 345525029719150ull}},
+ {{15605836166695017520ull, 552840047550640ull}},
+ {{12484668933356014016ull, 442272038040512ull}},
+ {{2609037517200990566ull, 353817630432410ull}},
+ {{2087230013760792453ull, 283054104345928ull}},
+ {{18096963280984909217ull, 452886566953484ull}},
+ {{18166919439529837697ull, 362309253562787ull}},
+ {{7154837922140049511ull, 289847402850230ull}},
+ {{11447740675424079218ull, 463755844560368ull}},
+ {{16536890169823084021ull, 371004675648294ull}},
+ {{16918860950600377540ull, 296803740518635ull}},
+ {{8623433447251052448ull, 474885984829817ull}},
+ {{17966793202026572928ull, 379908787863853ull}},
+ {{3305388117395527373ull, 303927030291083ull}},
+ {{1599272173090933473ull, 486283248465733ull}},
+ {{8658115367956567425ull, 389026598772586ull}},
+ {{3237143479623343617ull, 311221279018069ull}},
+ {{12558127196881170433ull, 497954046428910ull}},
+ {{10046501757504936346ull, 398363237143128ull}},
+ {{15415899035487769723ull, 318690589714502ull}},
+ {{9908043197812790265ull, 509904943543204ull}},
+ {{11615783372992142535ull, 407923954834563ull}},
+ {{16671324327877534674ull, 326339163867650ull}},
+ {{8227374850894503863ull, 522142662188241ull}},
+ {{2892551065973692767ull, 417714129750593ull}},
+ {{9692738482262774860ull, 334171303800474ull}},
+ {{4440335127394708807ull, 534674086080759ull}},
+ {{7241616916657677369ull, 427739268864607ull}},
+ {{16861339977551872864ull, 342191415091685ull}},
+ {{8531399890373444967ull, 547506264146697ull}},
+ {{17893166356524486943ull, 438005011317357ull}},
+ {{6935835455735768908ull, 350404009053886ull}},
+ {{3718639099693409607ull, 560646414486218ull}},
+ {{10353608909238548332ull, 448517131588974ull}},
+ {{11972235942132748989ull, 358813705271179ull}},
+ {{13267137568448109514ull, 287050964216943ull}},
+ {{17538071294775064900ull, 459281542747109ull}},
+ {{17719805850561962243ull, 367425234197687ull}},
+ {{6797147050965749148ull, 293940187358150ull}},
+ {{10875435281545198637ull, 470304299773040ull}},
+ {{8700348225236158909ull, 376243439818432ull}},
+ {{18028325024414658097ull, 300994751854745ull}},
+ {{10398575965353901339ull, 481591602967593ull}},
+ {{15697558401766941718ull, 385273282374074ull}},
+ {{16247395536155463697ull, 308218625899259ull}},
+ {{14927786413623010946ull, 493149801438815ull}},
+ {{11942229130898408757ull, 394519841151052ull}},
+ {{2175085675234906359ull, 315615872920842ull}},
+ {{7169485895117760498ull, 504985396673347ull}},
+ {{16803635160319939368ull, 403988317338677ull}},
+ {{6064210498772130848ull, 323190653870942ull}},
+ {{13392085612777319680ull, 517105046193507ull}},
+ {{3334970860738035098ull, 413684036954806ull}},
+ {{17425371947558069371ull, 330947229563844ull}},
+ {{16812548671867180024ull, 529515567302151ull}},
+ {{9760690122751833696ull, 423612453841721ull}},
+ {{4119203283459556633ull, 338889963073377ull}},
+ {{10280074068277200937ull, 542223940917403ull}},
+ {{15602756884105581396ull, 433779152733922ull}},
+ {{5103507877800644470ull, 347023322187138ull}},
+ {{4476263789739120829ull, 555237315499421ull}},
+ {{18338406290758937956ull, 444189852399536ull}},
+ {{10981376217865240042ull, 355351881919629ull}},
+ {{12474449789034102356ull, 284281505535703ull}},
+ {{16269770847712653447ull, 454850408857125ull}},
+ {{13015816678170122758ull, 363880327085700ull}},
+ {{10412653342536098206ull, 291104261668560ull}},
+ {{16660245348057757130ull, 465766818669696ull}},
+ {{9638847463704295381ull, 372613454935757ull}},
+ {{332380341479615658ull, 298090763948606ull}},
+ {{11599854990593116023ull, 476945222317769ull}},
+ {{12969232807216403141ull, 381556177854215ull}},
+ {{10375386245773122513ull, 305244942283372ull}},
+ {{1843222734269354728ull, 488391907653396ull}},
+ {{16231973446383125075ull, 390713526122716ull}},
+ {{9296229942364589737ull, 312570820898173ull}},
+ {{11184619093041433256ull, 500113313437077ull}},
+ {{1568997644949325959ull, 400090650749662ull}},
+ {{12323244560185191736ull, 320072520599729ull}},
+ {{8649144852070575809ull, 512116032959567ull}},
+ {{17987362325882191617ull, 409692826367653ull}},
+ {{3321843416480022324ull, 327754261094123ull}},
+ {{1625600651626125395ull, 524406817750597ull}},
+ {{12368526965526631285ull, 419525454200477ull}},
+ {{2516123942937484382ull, 335620363360382ull}},
+ {{7715147123441885334ull, 536992581376611ull}},
+ {{2482768884011597944ull, 429594065101289ull}},
+ {{5675563921951188678ull, 343675252081031ull}},
+ {{1702204645638081239ull, 549880403329650ull}},
+ {{1361763716510464991ull, 439904322663720ull}},
+ {{1089410973208371993ull, 351923458130976ull}},
+ {{15628924037534338887ull, 281538766504780ull}},
+ {{6559534386345390604ull, 450462026407649ull}},
+ {{8936976323818222806ull, 360369621126119ull}},
+ {{10838929873796488568ull, 288295696900895ull}},
+ {{17342287798074381709ull, 461273115041432ull}},
+ {{6495132608975684721ull, 369018492033146ull}},
+ {{1506757272438637453ull, 295214793626517ull}},
+ {{6100160450643730249ull, 472343669802427ull}},
+ {{15948174804740715168ull, 377874935841941ull}},
+ {{9069191029050661811ull, 302299948673553ull}},
+ {{10821356831739148575ull, 483679917877685ull}},
+ {{8657085465391318860ull, 386943934302148ull}},
+ {{14304366001796875735ull, 309555147441718ull}},
+ {{750892714423539236ull, 495288235906750ull}},
+ {{600714171538831389ull, 396230588725400ull}},
+ {{480571337231065111ull, 316984470980320ull}},
+ {{768914139569704178ull, 507175153568512ull}},
+ {{11683177755881494312ull, 405740122854809ull}},
+ {{13035891019447105773ull, 324592098283847ull}},
+ {{6100030372147727944ull, 519347357254156ull}},
+ {{1190675482976272032ull, 415477885803325ull}},
+ {{952540386381017625ull, 332382308642660ull}},
+ {{1524064618209628201ull, 531811693828256ull}},
+ {{15976646953535343853ull, 425449355062604ull}},
+ {{16470666377570185406ull, 340359484050083ull}},
+ {{4216973315660834710ull, 544575174480134ull}},
+ {{7062927467270578091ull, 435660139584107ull}},
+ {{16718388418042193443ull, 348528111667285ull}},
+ {{8302677395157957892ull, 557644978667657ull}},
+ {{17710188360352097283ull, 446115982934125ull}},
+ {{14168150688281677827ull, 356892786347300ull}},
+ {{11334520550625342261ull, 285514229077840ull}},
+ {{18135232881000547618ull, 456822766524544ull}},
+ {{18197535119542348418ull, 365458213219635ull}},
+ {{14558028095633878734ull, 292366570575708ull}},
+ {{1156752064562744035ull, 467786512921134ull}},
+ {{4614750466392105551ull, 374229210336907ull}},
+ {{14759846817339415411ull, 299383368269525ull}},
+ {{5169010834033513041ull, 479013389231241ull}},
+ {{445859852484900110ull, 383210711384993ull}},
+ {{7735385511471740734ull, 306568569107994ull}},
+ {{1308570374129054205ull, 490509710572791ull}},
+ {{15804251558270884657ull, 392407768458232ull}},
+ {{5264703617132887079ull, 313926214766586ull}},
+ {{1044828157928798680ull, 502281943626538ull}},
+ {{8214560155826859591ull, 401825554901230ull}},
+ {{6571648124661487672ull, 321460443920984ull}},
+ {{17893334628942200923ull, 514336710273574ull}},
+ {{18004016517895671061ull, 411469368218859ull}},
+ {{18092562029058447172ull, 329175494575087ull}},
+ {{14190703987525874183ull, 526680791320140ull}},
+ {{11352563190020699346ull, 421344633056112ull}},
+ {{1703352922532738830ull, 337075706444890ull}},
+ {{2725364676052382129ull, 539321130311824ull}},
+ {{5869640555583816026ull, 431456904249459ull}},
+ {{8385061259208963144ull, 345165523399567ull}},
+ {{17105446829476251354ull, 552264837439307ull}},
+ {{6305659834097180437ull, 441811869951446ull}},
+ {{1355179052535834026ull, 353449495961157ull}},
+ {{12152189686254398190ull, 282759596768925ull}},
+ {{996759424297485489ull, 452415354830281ull}},
+ {{15554802798405629684ull, 361932283864224ull}},
+ {{16133191053466414070ull, 289545827091379ull}},
+ {{14745059241320531543ull, 463273323346207ull}},
+ {{4417349763572604588ull, 370618658676966ull}},
+ {{18291275069825724963ull, 296494926941572ull}},
+ {{14508644852753518648ull, 474391883106516ull}},
+ {{7917567067460904595ull, 379513506485213ull}},
+ {{13712751283452544323ull, 303610805188170ull}},
+ {{3493657979814519300ull, 485777288301073ull}},
+ {{10173624013335436087ull, 388621830640858ull}},
+ {{15517596840152169516ull, 310897464512686ull}},
+ {{17449457314759650579ull, 497435943220298ull}},
+ {{2891519407581989493ull, 397948754576239ull}},
+ {{6002564340807501918ull, 318359003660991ull}},
+ {{2225405315808182422ull, 509374405857586ull}},
+ {{16537719511614187231ull, 407499524686068ull}},
+ {{2162129165065618815ull, 325999619748855ull}},
+ {{3459406664104990104ull, 521599391598168ull}},
+ {{10146222960767812729ull, 417279513278534ull}},
+ {{11806327183356160507ull, 333823610622827ull}},
+ {{4132728234402215518ull, 534117776996524ull}},
+ {{6995531402263682738ull, 427294221597219ull}},
+ {{9285773936552856513ull, 341835377277775ull}},
+ {{14857238298484570421ull, 546936603644440ull}},
+ {{11885790638787656337ull, 437549282915552ull}},
+ {{2129934881546304423ull, 350039426332442ull}},
+ {{7097244625215997401ull, 560063082131907ull}},
+ {{16745842144398528890ull, 448050465705525ull}},
+ {{13396673715518823112ull, 358440372564420ull}},
+ {{10717338972415058489ull, 286752298051536ull}},
+ {{9769044726380272937ull, 458803676882458ull}},
+ {{15193933410588038996ull, 367042941505966ull}},
+ {{8465797913728520873ull, 293634353204773ull}},
+ {{9855927847223723074ull, 469814965127637ull}},
+ {{506044648295157813ull, 375851972102110ull}},
+ {{404835718636126250ull, 300681577681688ull}},
+ {{15405132408785443294ull, 481090524290700ull}},
+ {{12324105927028354635ull, 384872419432560ull}},
+ {{9859284741622683708ull, 307897935546048ull}},
+ {{12085506771854383610ull, 492636696873677ull}},
+ {{2289707787999686241ull, 394109357498942ull}},
+ {{12899812674625479962ull, 315287485999153ull}},
+ {{16950351464658857617ull, 504459977598645ull}},
+ {{13560281171727086093ull, 403567982078916ull}},
+ {{7158876122639758551ull, 322854385663133ull}},
+ {{7764852981481703359ull, 516567017061013ull}},
+ {{13590580014669183334ull, 413253613648810ull}},
+ {{10872464011735346667ull, 330602890919048ull}},
+ {{13706593604034644344ull, 528964625470477ull}},
+ {{3586577253743894829ull, 423171700376382ull}},
+ {{13937308247220846833ull, 338537360301105ull}},
+ {{3852949121843803316ull, 541659776481769ull}},
+ {{6771708112216952976ull, 433327821185415ull}},
+ {{5417366489773562381ull, 346662256948332ull}},
+ {{12357135198379610133ull, 554659611117331ull}},
+ {{6196359343961777783ull, 443727688893865ull}},
+ {{4957087475169422226ull, 354982151115092ull}},
+ {{15033716424361268751ull, 283985720892073ull}},
+ {{1917853390526568062ull, 454377153427318ull}},
+ {{8912980341905075096ull, 363501722741854ull}},
+ {{10819733088265970400ull, 290801378193483ull}},
+ {{13622224126483642317ull, 465282205109573ull}},
+ {{18276476930670734500ull, 372225764087658ull}},
+ {{3553135100310856630ull, 297780611270127ull}},
+ {{9374364975239280932ull, 476448978032203ull}},
+ {{14878189609675245392ull, 381159182425762ull}},
+ {{4523854058256375667ull, 304927345940610ull}},
+ {{7238166493210201067ull, 487883753504976ull}},
+ {{2101184379826250531ull, 390307002803981ull}},
+ {{16438342762828641717ull, 312245602243184ull}},
+ {{15233301976300095778ull, 499592963589095ull}},
+ {{12186641581040076622ull, 399674370871276ull}},
+ {{6059964450090150975ull, 319739496697021ull}},
+ {{2317245490660420913ull, 511583194715234ull}},
+ {{5543145207270247054ull, 409266555772187ull}},
+ {{15502562610041928612ull, 327413244617749ull}},
+ {{13736053731841354811ull, 523861191388399ull}},
+ {{14678191800214994172ull, 419088953110719ull}},
+ {{15431902254913905660ull, 335271162488575ull}},
+ {{6244299534152697441ull, 536433859981721ull}},
+ {{1306090812580247629ull, 429147087985377ull}},
+ {{12112919094289929073ull, 343317670388301ull}},
+ {{12001972921380065871ull, 549308272621282ull}},
+ {{2222880707620232050ull, 439446618097026ull}},
+ {{16535699825063826933ull, 351557294477620ull}},
+ {{8010375646392571477ull, 562491671164193ull}},
+ {{13786998146597877828ull, 449993336931354ull}},
+ {{14718947332020212585ull, 359994669545083ull}},
+ {{707111421390439099ull, 287995735636067ull}},
+ {{4820727088966612881ull, 460793177017707ull}},
+ {{14924628115399021274ull, 368634541614165ull}},
+ {{11939702492319217019ull, 294907633291332ull}},
+ {{4346128728743105939ull, 471852213266132ull}},
+ {{14544949427220215720ull, 377481770612905ull}},
+ {{11635959541776172576ull, 301985416490324ull}},
+ {{7549488822616145153ull, 483176666384519ull}},
+ {{9728939872834826445ull, 386541333107615ull}},
+ {{7783151898267861156ull, 309233066486092ull}},
+ {{16142391851970488173ull, 494772906377747ull}},
+ {{5535215852092569892ull, 395818325102198ull}},
+ {{11806870311157876560ull, 316654660081758ull}},
+ {{15201643683110692173ull, 506647456130813ull}},
+ {{1093268502262822769ull, 405317964904651ull}},
+ {{15632010060777899508ull, 324254371923720ull}},
+ {{6564472023535087597ull, 518806995077953ull}},
+ {{12630275248311890724ull, 415045596062362ull}},
+ {{2725522569165691932ull, 332036476849890ull}},
+ {{4360836110665107092ull, 531258362959824ull}},
+ {{7178017703273995997ull, 425006690367859ull}},
+ {{9431762977361107120ull, 340005352294287ull}},
+ {{333425504810130100ull, 544008563670860ull}},
+ {{266740403848104080ull, 435206850936688ull}},
+ {{7592089952562303910ull, 348165480749350ull}},
+ {{12147343924099686257ull, 557064769198960ull}},
+ {{9717875139279749005ull, 445651815359168ull}},
+ {{15152997740907619851ull, 356521452287334ull}},
+ {{15811747007468006204ull, 285217161829867ull}},
+ {{10541399952981168633ull, 456347458927788ull}},
+ {{15811817591868755553ull, 365077967142230ull}},
+ {{12649454073495004442ull, 292062373713784ull}},
+ {{9171080073366276138ull, 467299797942055ull}},
+ {{7336864058693020911ull, 373839838353644ull}},
+ {{9558840061696327052ull, 299071870682915ull}},
+ {{15294144098714123283ull, 478514993092664ull}},
+ {{15924664093713208949ull, 382811994474131ull}},
+ {{9050382460228656836ull, 306249595579305ull}},
+ {{14480611936365850938ull, 489999352926888ull}},
+ {{516443104866949781ull, 391999482341511ull}},
+ {{15170549742861201117ull, 313599585873208ull}},
+ {{2136786700126459849ull, 501759337397134ull}},
+ {{5398778174843078202ull, 401407469917707ull}},
+ {{15387068984100193531ull, 321125975934165ull}},
+ {{6172566300850758034ull, 513801561494665ull}},
+ {{4938053040680606427ull, 411041249195732ull}},
+ {{15018488876770216111ull, 328832999356585ull}},
+ {{5582838129122794162ull, 526132798970537ull}},
+ {{15534316947523966299ull, 420906239176429ull}},
+ {{16116802372761083363ull, 336724991341143ull}},
+ {{3650790907966271441ull, 538759986145830ull}},
+ {{2920632726373017153ull, 431007988916664ull}},
+ {{6025854995840324045ull, 344806391133331ull}},
+ {{2262670363860697827ull, 551690225813330ull}},
+ {{1810136291088558261ull, 441352180650664ull}},
+ {{5137457847612756932ull, 353081744520531ull}},
+ {{420617463348295222ull, 282465395616425ull}},
+ {{672987941357272356ull, 451944632986280ull}},
+ {{538390353085817885ull, 361555706389024ull}},
+ {{4120061097210564631ull, 289244565111219ull}},
+ {{13970795385020724056ull, 462791304177950ull}},
+ {{11176636308016579245ull, 370233043342360ull}},
+ {{8941309046413263396ull, 296186434673888ull}},
+ {{10616745659519311110ull, 473898295478221ull}},
+ {{4804047712873538565ull, 379118636382577ull}},
+ {{14911284614524561821ull, 303294909106061ull}},
+ {{16479357753755478268ull, 485271854569698ull}},
+ {{2115439758778651645ull, 388217483655759ull}},
+ {{5381700621764831639ull, 310573986924607ull}},
+ {{12300069809565640946ull, 496918379079371ull}},
+ {{6150707032910602433ull, 397534703263497ull}},
+ {{15988612070554212916ull, 318027762610797ull}},
+ {{10824384053919099374ull, 508844420177276ull}},
+ {{4970158428393369176ull, 407075536141821ull}},
+ {{286777927972785017ull, 325660428913457ull}},
+ {{4148193499498366351ull, 521056686261531ull}},
+ {{18075950058566334373ull, 416845349009224ull}},
+ {{18150108861594977822ull, 333476279207379ull}},
+ {{17972127734326233546ull, 533562046731807ull}},
+ {{6999004557977166190ull, 426849637385446ull}},
+ {{1909854831639822629ull, 341479709908357ull}},
+ {{6745116545365626529ull, 546367535853371ull}},
+ {{1706744421550590900ull, 437094028682697ull}},
+ {{12433441981466203690ull, 349675222946157ull}},
+ {{5136111911378284611ull, 559480356713852ull}},
+ {{15176935973328358658ull, 447584285371081ull}},
+ {{8452199963920776603ull, 358067428296865ull}},
+ {{6761759971136621283ull, 286453942637492ull}},
+ {{14508164768560504376ull, 458326308219987ull}},
+ {{4227834185364582854ull, 366661046575990ull}},
+ {{3382267348291666283ull, 293328837260792ull}},
+ {{9100976572008576376ull, 469326139617267ull}},
+ {{18348827701832592071ull, 375460911693813ull}},
+ {{3611015717240342687ull, 300368729355051ull}},
+ {{16845671591810279269ull, 480589966968081ull}},
+ {{9787188458706313092ull, 384471973574465ull}},
+ {{7829750766965050473ull, 307577578859572ull}},
+ {{16216950041885991081ull, 492124126175315ull}},
+ {{12973560033508792865ull, 393699300940252ull}},
+ {{3000150397323213645ull, 314959440752202ull}},
+ {{8489589450459052156ull, 503935105203523ull}},
+ {{14170369189851062371ull, 403148084162818ull}},
+ {{268248907655118927ull, 322518467330255ull}},
+ {{429198252248190284ull, 516029547728408ull}},
+ {{7722056231282372873ull, 412823638182726ull}},
+ {{2488296170283987975ull, 330258910546181ull}},
+ {{15049320316680111730ull, 528414256873889ull}},
+ {{15728805068085999707ull, 422731405499111ull}},
+ {{8893695239726889443ull, 338185124399289ull}},
+ {{3161865939337292139ull, 541096199038863ull}},
+ {{9908190380953654357ull, 432876959231090ull}},
+ {{7926552304762923486ull, 346301567384872ull}},
+ {{16371832502362587901ull, 554082507815795ull}},
+ {{13097466001890070320ull, 443266006252636ull}},
+ {{6788623986770145933ull, 354612805002109ull}},
+ {{9120248004158027070ull, 283690244001687ull}},
+ {{18281745621394753635ull, 453904390402699ull}},
+ {{18314745311857713231ull, 363123512322159ull}},
+ {{18341145064228080908ull, 290498809857727ull}},
+ {{14588436843797288160ull, 464798095772364ull}},
+ {{15360098289779740851ull, 371838476617891ull}},
+ {{8598729817081882358ull, 297470781294313ull}},
+ {{10068618892589101449ull, 475953250070901ull}},
+ {{4365546299329370836ull, 380762600056721ull}},
+ {{18249832298431137962ull, 304610080045376ull}},
+ {{3374289974296448476ull, 487376128072603ull}},
+ {{10078129608920979427ull, 389900902458082ull}},
+ {{683806057652962895ull, 311920721966466ull}},
+ {{12162136136470471603ull, 499073155146345ull}},
+ {{9729708909176377282ull, 399258524117076ull}},
+ {{4094418312599191502ull, 319406819293661ull}},
+ {{17619115744384437374ull, 511050910869857ull}},
+ {{6716594966023729252ull, 408840728695886ull}},
+ {{1683927158077073079ull, 327072582956709ull}},
+ {{10072981082407137572ull, 523316132730734ull}},
+ {{11747733680667620381ull, 418652906184587ull}},
+ {{2019489315050275658ull, 334922324947670ull}},
+ {{3231182904080441054ull, 535875719916272ull}},
+ {{13652992767490083812ull, 428700575933017ull}},
+ {{3543696584508246403ull, 342960460746414ull}},
+ {{13048612164697014892ull, 548736737194262ull}},
+ {{3060192102273791267ull, 438989389755410ull}},
+ {{2448153681819033014ull, 351191511804328ull}},
+ {{227697076168542499ull, 561906418886925ull}},
+ {{182157660934833999ull, 449525135109540ull}},
+ {{145726128747867199ull, 359620108087632ull}},
+ {{11184627347224024729ull, 287696086470105ull}},
+ {{17895403755558439566ull, 460313738352168ull}},
+ {{3248276560221020683ull, 368250990681735ull}},
+ {{2598621248176816547ull, 294600792545388ull}},
+ {{468445182340996152ull, 471361268072621ull}},
+ {{15132151404840438214ull, 377089014458096ull}},
+ {{8416372309130440248ull, 301671211566477ull}},
+ {{17155544509350614720ull, 482673938506363ull}},
+ {{2656389163254760807ull, 386139150805091ull}},
+ {{16882506589571449938ull, 308911320644072ull}},
+ {{12254615284346678608ull, 494258113030516ull}},
+ {{6114343412735432563ull, 395406490424413ull}},
+ {{12270172359672166697ull, 316325192339530ull}},
+ {{1185531701765915099ull, 506120307743249ull}},
+ {{4637774176154642403ull, 404896246194599ull}},
+ {{7399568155665624245ull, 323916996955679ull}},
+ {{771262604839267823ull, 518267195129087ull}},
+ {{11685056528097145228ull, 414613756103269ull}},
+ {{13037394037219626505ull, 331691004882615ull}},
+ {{2413086385841850793ull, 530705607812185ull}},
+ {{1930469108673480634ull, 424564486249748ull}},
+ {{8923072916422605154ull, 339651588999798ull}},
+ {{10587567851534257923ull, 543442542399677ull}},
+ {{1091356651743585692ull, 434754033919742ull}},
+ {{11941131765620599523ull, 347803227135793ull}},
+ {{15416462010251048914ull, 556485163417269ull}},
+ {{16022518422942749454ull, 445188130733815ull}},
+ {{12818014738354199563ull, 356150504587052ull}},
+ {{2875714161199539004ull, 284920403669642ull}},
+ {{8290491472661172730ull, 455872645871427ull}},
+ {{17700439622354669154ull, 364698116697141ull}},
+ {{10471002883141825000ull, 291758493357713ull}},
+ {{13064255798285009676ull, 466813589372341ull}},
+ {{6762055823886097418ull, 373450871497873ull}},
+ {{12788342288592698581ull, 298760697198298ull}},
+ {{16771998847006407406ull, 478017115517277ull}},
+ {{6038901448121305278ull, 382413692413822ull}},
+ {{15899167602722775192ull, 305930953931057ull}},
+ {{10681272905388799015ull, 489489526289692ull}},
+ {{1166320694827218565ull, 391591621031754ull}},
+ {{4622405370603685175ull, 313273296825403ull}},
+ {{3706499778223985958ull, 501237274920645ull}},
+ {{2965199822579188766ull, 400989819936516ull}},
+ {{17129555117030992306ull, 320791855949212ull}},
+ {{12649892928281946397ull, 513266969518740ull}},
+ {{10119914342625557117ull, 410613575614992ull}},
+ {{717233844616625047ull, 328490860491994ull}},
+ {{8526271780870420722ull, 525585376787190ull}},
+ {{6821017424696336578ull, 420468301429752ull}},
+ {{16524860383982800232ull, 336374641143801ull}},
+ {{614334911179108109ull, 538199425830083ull}},
+ {{7870165558427107133ull, 430559540664066ull}},
+ {{2606783631999775383ull, 344447632531253ull}},
+ {{481504996457730290ull, 551116212050005ull}},
+ {{385203997166184232ull, 440892969640004ull}},
+ {{3997512012474857709ull, 352714375712003ull}},
+ {{10576707239463706813ull, 282171500569602ull}},
+ {{2165336324174289609ull, 451474400911364ull}},
+ {{5421617874081342010ull, 361179520729091ull}},
+ {{647945484523163285ull, 288943616583273ull}},
+ {{15794108034204702549ull, 462309786533236ull}},
+ {{8945937612621851716ull, 369847829226589ull}},
+ {{10846098904839391696ull, 295878263381271ull}},
+ {{9975060618259206067ull, 473405221410034ull}},
+ {{11669397309349275177ull, 378724177128027ull}},
+ {{1956820217995599495ull, 302979341702422ull}},
+ {{6820261163534869515ull, 484766946723875ull}},
+ {{5456208930827895612ull, 387813557379100ull}},
+ {{4364967144662316490ull, 310250845903280ull}},
+ {{6983947431459706384ull, 496401353445248ull}},
+ {{12965855574651585753ull, 397121082756198ull}},
+ {{17751382089205089249ull, 317696866204958ull}},
+ {{6266118454276680859ull, 508314985927934ull}},
+ {{8702243578163255011ull, 406651988742347ull}},
+ {{18029841306756334978ull, 325321590993877ull}},
+ {{14090350831842494672ull, 520514545590204ull}},
+ {{14961629480215906061ull, 416411636472163ull}},
+ {{901257139946993879ull, 333129309177731ull}},
+ {{12510057868140921176ull, 533006894684369ull}},
+ {{13697395109254647264ull, 426405515747495ull}},
+ {{10957916087403717811ull, 341124412597996ull}},
+ {{10153968110362127852ull, 545799060156794ull}},
+ {{11812523303031612605ull, 436639248125435ull}},
+ {{9450018642425290084ull, 349311398500348ull}},
+ {{11430681013138553811ull, 558898237600557ull}},
+ {{1765847181027022402ull, 447118590080446ull}},
+ {{16170073003789259214ull, 357694872064356ull}},
+ {{9246709588289497048ull, 286155897651485ull}},
+ {{14794735341263195277ull, 457849436242376ull}},
+ {{8146439458268645899ull, 366279548993901ull}},
+ {{2827802751873006396ull, 293023639195121ull}},
+ {{15592530847222541203ull, 468837822712193ull}},
+ {{1405978233552301993ull, 375070258169755ull}},
+ {{1124782586841841594ull, 300056206535804ull}},
+ {{9178349768430767197ull, 480089930457286ull}},
+ {{3653331000002703434ull, 384071944365829ull}},
+ {{6612013614744073071ull, 307257555492663ull}},
+ {{6889872968848606590ull, 491612088788261ull}},
+ {{1822549560336974949ull, 393289671030609ull}},
+ {{5147388463011490282ull, 314631736824487ull}},
+ {{11925170355560294775ull, 503410778919179ull}},
+ {{13229485099190146143ull, 402728623135343ull}},
+ {{17962285708835937561ull, 322182898508274ull}},
+ {{17671610689911769128ull, 515492637613239ull}},
+ {{17826637366671325625ull, 412394110090591ull}},
+ {{10571961078595150177ull, 329915288072473ull}},
+ {{13225788911010329960ull, 527864460915957ull}},
+ {{3201933499324443322ull, 422291568732766ull}},
+ {{17318942058427195950ull, 337833254986212ull}},
+ {{12952912034515872228ull, 540533207977940ull}},
+ {{10362329627612697782ull, 432426566382352ull}},
+ {{911166072606337579ull, 345941253105882ull}},
+ {{5147214530912050450ull, 553506004969411ull}},
+ {{428422809987730037ull, 442804803975529ull}},
+ {{4032087062732094352ull, 354243843180423ull}},
+ {{10604367279669496128ull, 283395074544338ull}},
+ {{13277638832729283482ull, 453432119270941ull}},
+ {{6932762251441516463ull, 362745695416753ull}},
+ {{12924907430637033816ull, 290196556333402ull}},
+ {{5922456630051612814ull, 464314490133444ull}},
+ {{8427314118783200574ull, 371451592106755ull}},
+ {{6741851295026560459ull, 297161273685404ull}},
+ {{18165659701526317381ull, 475458037896646ull}},
+ {{10843178946479143582ull, 380366430317317ull}},
+ {{1295845527699494219ull, 304293144253854ull}},
+ {{9452050473803011397ull, 486869030806166ull}},
+ {{3872291564300498794ull, 389495224644933ull}},
+ {{10476530880924219682ull, 311596179715946ull}},
+ {{9383751779994930845ull, 498553887545514ull}},
+ {{11196350238737854999ull, 398843110036411ull}},
+ {{5267731376248373676ull, 319074488029129ull}},
+ {{15807067831481218528ull, 510519180846606ull}},
+ {{8956305450443064499ull, 408415344677285ull}},
+ {{7165044360354451599ull, 326732275741828ull}},
+ {{7774722161825212236ull, 522771641186925ull}},
+ {{6219777729460169788ull, 418217312949540ull}},
+ {{4975822183568135831ull, 334573850359632ull}},
+ {{11650664308450927653ull, 535318160575411ull}},
+ {{5631182632018831799ull, 428254528460329ull}},
+ {{8194294920356975762ull, 342603622768263ull}},
+ {{9421523057829250896ull, 548165796429221ull}},
+ {{3847869631521490394ull, 438532637143377ull}},
+ {{14146342149442923285ull, 350826109714701ull}},
+ {{15255449809624856609ull, 561321775543522ull}},
+ {{4825662218216064641ull, 449057420434818ull}},
+ {{11239227404056672359ull, 359245936347854ull}},
+ {{12680730737987248210ull, 287396749078283ull}},
+ {{16599820366037686814ull, 459834798525253ull}},
+ {{2211809848604418481ull, 367867838820203ull}},
+ {{9148145508367355431ull, 294294271056162ull}},
+ {{18326381628129679013ull, 470870833689859ull}},
+ {{18350454117245653534ull, 376696666951887ull}},
+ {{7301665664312702181ull, 301357333561510ull}},
+ {{11682665062900323489ull, 482171733698416ull}},
+ {{5656783235578348468ull, 385737386958733ull}},
+ {{11904124217946499421ull, 308589909566986ull}},
+ {{11667901119230578427ull, 493743855307178ull}},
+ {{16713018524868283388ull, 394995084245742ull}},
+ {{5991717190410806064ull, 315996067396594ull}},
+ {{16965445134141110349ull, 505593707834550ull}},
+ {{13572356107312888279ull, 404474966267640ull}},
+ {{10857884885850310623ull, 323579973014112ull}},
+ {{2615220558392855705ull, 517727956822580ull}},
+ {{2092176446714284564ull, 414182365458064ull}},
+ {{5363089972113337974ull, 331345892366451ull}},
+ {{1202246325897520112ull, 530153427786322ull}},
+ {{12029843504943747059ull, 424122742229057ull}},
+ {{2245177174471177001ull, 339298193783246ull}},
+ {{14660329923379614171ull, 542877110053193ull}},
+ {{660217494477960367ull, 434301688042555ull}},
+ {{528173995582368294ull, 347441350434044ull}},
+ {{8223776022415609917ull, 555906160694470ull}},
+ {{6579020817932487933ull, 444724928555576ull}},
+ {{1573867839604080023ull, 355779942844461ull}},
+ {{16016489530650905311ull, 284623954275568ull}},
+ {{3490290360589986559ull, 455398326840910ull}},
+ {{2792232288471989247ull, 364318661472728ull}},
+ {{9612483460261412044ull, 291454929178182ull}},
+ {{622578277450617978ull, 466327886685092ull}},
+ {{11566109066186225352ull, 373062309348073ull}},
+ {{16631584882432800928ull, 298449847478458ull}},
+ {{4474442923441019546ull, 477519755965534ull}},
+ {{7268903153494725960ull, 382015804772427ull}},
+ {{16883168967021511737ull, 305612643817941ull}},
+ {{1187628644041046518ull, 488980230108707ull}},
+ {{12018149359458568184ull, 391184184086965ull}},
+ {{9614519487566854547ull, 312947347269572ull}},
+ {{625835921139325982ull, 500715755631316ull}},
+ {{15258063995879102079ull, 400572604505052ull}},
+ {{4827753567219461016ull, 320458083604042ull}},
+ {{11413754522293047950ull, 512732933766467ull}},
+ {{1752305988350617713ull, 410186347013174ull}},
+ {{5091193605422404494ull, 328149077610539ull}},
+ {{15524607398159667837ull, 525038524176862ull}},
+ {{5040988289043913623ull, 420030819341490ull}},
+ {{4032790631235130898ull, 336024655473192ull}},
+ {{10141813824718119760ull, 537639448757107ull}},
+ {{734753430290675162ull, 430111559005686ull}},
+ {{15345198003200181422ull, 344089247204548ull}},
+ {{2416223916668828337ull, 550542795527278ull}},
+ {{9311676762818883316ull, 440434236421822ull}},
+ {{70643780771286006ull, 352347389137458ull}},
+ {{7435212654100849451ull, 281877911309966ull}},
+ {{4517642617077538476ull, 451004658095946ull}},
+ {{18371509352629672073ull, 360803726476756ull}},
+ {{11007858667361827335ull, 288642981181405ull}},
+ {{17612573867778923737ull, 461828769890248ull}},
+ {{3022012649997408020ull, 369463015912199ull}},
+ {{6106958934739836739ull, 295570412729759ull}},
+ {{17149831925067559429ull, 472912660367614ull}},
+ {{17409214354795957866ull, 378330128294091ull}},
+ {{10238022669094855970ull, 302664102635273ull}},
+ {{12691487455809859229ull, 484262564216437ull}},
+ {{2774492335164066736ull, 387410051373150ull}},
+ {{2219593868131253389ull, 309928041098520ull}},
+ {{3551350189010005423ull, 495884865757632ull}},
+ {{13909126595433735308ull, 396707892606105ull}},
+ {{11127301276346988246ull, 317366314084884ull}},
+ {{6735635597929450224ull, 507786102535815ull}},
+ {{5388508478343560179ull, 406228882028652ull}},
+ {{15378853226900579113ull, 324983105622921ull}},
+ {{17227467533557105935ull, 519972968996674ull}},
+ {{17471322841587595071ull, 415978375197339ull}},
+ {{17666407088011986380ull, 332782700157871ull}},
+ {{2440809637625805945ull, 532452320252595ull}},
+ {{1952647710100644756ull, 425961856202076ull}},
+ {{16319513427048157098ull, 340769484961660ull}},
+ {{7664477409567499741ull, 545231175938657ull}},
+ {{17199628371879730762ull, 436184940750925ull}},
+ {{13759702697503784610ull, 348947952600740ull}},
+ {{3568780242296503760ull, 558316724161185ull}},
+ {{2855024193837203008ull, 446653379328948ull}},
+ {{9662716984553583052ull, 357322703463158ull}},
+ {{15108871217126687088ull, 285858162770526ull}},
+ {{16795496317918878695ull, 457373060432842ull}},
+ {{6057699424851282309ull, 365898448346274ull}},
+ {{8535508354622936171ull, 292718758677019ull}},
+ {{2588766923170966904ull, 468350013883231ull}},
+ {{16828408797504414816ull, 374680011106584ull}},
+ {{17152075852745442176ull, 299744008885267ull}},
+ {{12685926105425066189ull, 479590414216428ull}},
+ {{17527438513823873597ull, 383672331373142ull}},
+ {{6643253181575278231ull, 306937865098514ull}},
+ {{18007902720004265817ull, 491100584157622ull}},
+ {{7027624546519592007ull, 392880467326098ull}},
+ {{13000797266699494252ull, 314304373860878ull}},
+ {{17111926811977280480ull, 502886998177405ull}},
+ {{13689541449581824384ull, 402309598541924ull}},
+ {{14640981974407369830ull, 321847678833539ull}},
+ {{12357524714826060759ull, 514956286133663ull}},
+ {{17264717401344669253ull, 411965028906930ull}},
+ {{13811773921075735403ull, 329572023125544ull}},
+ {{11030791829495445675ull, 527315237000871ull}},
+ {{5135284648854446217ull, 421852189600697ull}},
+ {{15176274163309287943ull, 337481751680557ull}},
+ {{9524643402327219416ull, 539970802688892ull}},
+ {{241017092377954886ull, 431976642151114ull}},
+ {{3882162488644274232ull, 345581313720891ull}},
+ {{17279506426056569741ull, 552930101953425ull}},
+ {{13823605140845255793ull, 442344081562740ull}},
+ {{11058884112676204634ull, 353875265250192ull}},
+ {{1468409660657143061ull, 283100212200154ull}},
+ {{9728153086535249544ull, 452960339520246ull}},
+ {{4093173654486289312ull, 362368271616197ull}},
+ {{14342585367814762419ull, 289894617292957ull}},
+ {{8190741329535978578ull, 463831387668732ull}},
+ {{17620639507854513832ull, 371065110134985ull}},
+ {{14096511606283611066ull, 296852088107988ull}},
+ {{418325681602315766ull, 474963340972782ull}},
+ {{11402706989507583582ull, 379970672778225ull}},
+ {{9122165591606066866ull, 303976538222580ull}},
+ {{14595464946569706985ull, 486362461156128ull}},
+ {{608325513030034619ull, 389089968924903ull}},
+ {{7865358039907848341ull, 311271975139922ull}},
+ {{16273921678594467669ull, 498035160223875ull}},
+ {{13019137342875574135ull, 398428128179100ull}},
+ {{10415309874300459308ull, 318742502543280ull}},
+ {{16664495798880734894ull, 509988004069248ull}},
+ {{2263550194878856945ull, 407990403255399ull}},
+ {{5500188970644995879ull, 326392322604319ull}},
+ {{16178999982515814053ull, 522227716166910ull}},
+ {{12943199986012651243ull, 417782172933528ull}},
+ {{17733257618293941640ull, 334225738346822ull}},
+ {{13615816930302665332ull, 534761181354916ull}},
+ {{7203304729500221942ull, 427808945083933ull}},
+ {{13141341413083998200ull, 342247156067146ull}},
+ {{13647448631450576474ull, 547595449707434ull}},
+ {{14607307719902371503ull, 438076359765947ull}},
+ {{4307148546438076556ull, 350461087812758ull}},
+ {{3202088859559012166ull, 560737740500413ull}},
+ {{9940368717131030379ull, 448590192400330ull}},
+ {{7952294973704824303ull, 358872153920264ull}},
+ {{10051184793705769766ull, 287097723136211ull}},
+ {{8703198040445410979ull, 459356357017938ull}},
+ {{14341256061840149429ull, 367485085614350ull}},
+ {{11473004849472119543ull, 293988068491480ull}},
+ {{18356807759155391270ull, 470380909586368ull}},
+ {{3617399763098582046ull, 376304727669095ull}},
+ {{2893919810478865637ull, 301043782135276ull}},
+ {{15698318140991915989ull, 481670051416441ull}},
+ {{8869305698051622468ull, 385336041133153ull}},
+ {{14474142187925118620ull, 308268832906522ull}},
+ {{8401232241712548500ull, 493230132650436ull}},
+ {{3031636978628128477ull, 394584106120349ull}},
+ {{6114658397644413105ull, 315667284896279ull}},
+ {{17162151065714881614ull, 505067655834046ull}},
+ {{10040372037829994968ull, 404054124667237ull}},
+ {{653600000780175328ull, 323243299733790ull}},
+ {{1045760001248280525ull, 517189279574064ull}},
+ {{4525956815740534743ull, 413751423659251ull}},
+ {{18378160711560069087ull, 331001138927400ull}},
+ {{10958313064786558924ull, 529601822283841ull}},
+ {{5077301637087336816ull, 423681457827073ull}},
+ {{11440538939153690099ull, 338945166261658ull}},
+ {{14615513487903993835ull, 542312266018653ull}},
+ {{624364346097464098ull, 433849812814923ull}},
+ {{7878189106361791925ull, 347079850251938ull}},
+ {{8915753755436956757ull, 555327760403101ull}},
+ {{3443254189607655082ull, 444262208322481ull}},
+ {{17511998610653765359ull, 355409766657984ull}},
+ {{17698947703264922610ull, 284327813326387ull}},
+ {{13560921066256234884ull, 454924501322220ull}},
+ {{10848736853004987907ull, 363939601057776ull}},
+ {{4989640667662080002ull, 291151680846221ull}},
+ {{604727438775507357ull, 465842689353954ull}},
+ {{4173130765762316209ull, 372674151483163ull}},
+ {{10717202242093673613ull, 298139321186530ull}},
+ {{17147523587349877782ull, 477022913898448ull}},
+ {{2649972425654171256ull, 381618331118759ull}},
+ {{5809326755265247328ull, 305294664895007ull}},
+ {{12984271623166306048ull, 488471463832011ull}},
+ {{6698068483791134515ull, 390777171065609ull}},
+ {{9047803601774817935ull, 312621736852487ull}},
+ {{18165834577581619020ull, 500194778963979ull}},
+ {{18222016476807205539ull, 400155823171183ull}},
+ {{3509566737220033461ull, 320124658536947ull}},
+ {{9304655594293963862ull, 512199453659115ull}},
+ {{7443724475435171089ull, 409759562927292ull}},
+ {{17023026024573867841ull, 327807650341833ull}},
+ {{5100748750866726606ull, 524492240546934ull}},
+ {{7769947815435291608ull, 419593792437547ull}},
+ {{17284004696573964256ull, 335675033950037ull}},
+ {{12897012255550701517ull, 537080054320060ull}},
+ {{10317609804440561214ull, 429664043456048ull}},
+ {{15632785473036269617ull, 343731234764838ull}},
+ {{2876363868406569449ull, 549969975623742ull}},
+ {{13369137538950986528ull, 439975980498993ull}},
+ {{18074007660644609869ull, 351980784399194ull}},
+ {{18148554943257598218ull, 281584627519355ull}},
+ {{10590943835502605534ull, 450535404030969ull}},
+ {{12162103883143994750ull, 360428323224775ull}},
+ {{9729683106515195800ull, 288342658579820ull}},
+ {{15567492970424313280ull, 461348253727712ull}},
+ {{5075296746855629978ull, 369078602982170ull}},
+ {{4060237397484503982ull, 295262882385736ull}},
+ {{17564426280200937341ull, 472420611817177ull}},
+ {{6672843394676929226ull, 377936489453742ull}},
+ {{16406321159967274351ull, 302349191562993ull}},
+ {{4114020967496177022ull, 483758706500790ull}},
+ {{3291216773996941618ull, 387006965200632ull}},
+ {{13701019863423284264ull, 309605572160505ull}},
+ {{3474887707767703206ull, 495368915456809ull}},
+ {{6469258980956072888ull, 396295132365447ull}},
+ {{16243453628990589280ull, 317036105892357ull}},
+ {{11232130547417301555ull, 507257769427772ull}},
+ {{1607006808450020598ull, 405806215542218ull}},
+ {{8664303076243837124ull, 324644972433774ull}},
+ {{2794838477764408430ull, 519431955894039ull}},
+ {{5925219596953437067ull, 415545564715231ull}},
+ {{1050826862820839330ull, 332436451772185ull}},
+ {{1681322980513342929ull, 531898322835496ull}},
+ {{16102453643378315636ull, 425518658268396ull}},
+ {{9192614099960742185ull, 340414926614717ull}},
+ {{18397531374679097820ull, 544663882583547ull}},
+ {{7339327470259457609ull, 435731106066838ull}},
+ {{13250159605691386734ull, 348584884853470ull}},
+ {{2753511295396667158ull, 557735815765553ull}},
+ {{9581506665801154373ull, 446188652612442ull}},
+ {{286507703157102852ull, 356950922089954ull}},
+ {{3918554977267592605ull, 285560737671963ull}},
+ {{2580339148886237845ull, 456897180275141ull}},
+ {{16821666578076631568ull, 365517744220112ull}},
+ {{6078635632977484608ull, 292414195376090ull}},
+ {{9725817012763975373ull, 467862712601744ull}},
+ {{11470002424953090622ull, 374290170081395ull}},
+ {{9176001939962472497ull, 299432136065116ull}},
+ {{7302905474456135350ull, 479091417704186ull}},
+ {{2152975564822997956ull, 383273134163349ull}},
+ {{5411729266600308688ull, 306618507330679ull}},
+ {{16037464456044314548ull, 490589611729086ull}},
+ {{9140622750093541315ull, 392471689383269ull}},
+ {{11001847014816743375ull, 313977351506615ull}},
+ {{17602955223706789400ull, 502363762410584ull}},
+ {{17771712993707341843ull, 401891009928467ull}},
+ {{6838672765482052828ull, 321512807942774ull}},
+ {{18320574054255105172ull, 514420492708438ull}},
+ {{3588412799178353168ull, 411536394166751ull}},
+ {{17628125498310323827ull, 329229115333400ull}},
+ {{9758256723586966507ull, 526766584533441ull}},
+ {{4117256564127662883ull, 421413267626753ull}},
+ {{10672502880785950952ull, 337130614101402ull}},
+ {{2318609350289880231ull, 539408982562244ull}},
+ {{5544236294973814508ull, 431527186049795ull}},
+ {{4435389035979051606ull, 345221748839836ull}},
+ {{18164668901792213540ull, 552354798143737ull}},
+ {{7153037491949950186ull, 441883838514990ull}},
+ {{5722429993559960148ull, 353507070811992ull}},
+ {{15645990439073699088ull, 282805656649593ull}},
+ {{2897491814066456602ull, 452489050639350ull}},
+ {{2317993451253165282ull, 361991240511480ull}},
+ {{1854394761002532225ull, 289592992409184ull}},
+ {{10345729247087872207ull, 463348787854694ull}},
+ {{11965932212412208089ull, 370679030283755ull}},
+ {{9572745769929766471ull, 296543224227004ull}},
+ {{4248346787661895384ull, 474469158763207ull}},
+ {{14466723874355247277ull, 379575327010565ull}},
+ {{11573379099484197821ull, 303660261608452ull}},
+ {{3760011300207075222ull, 485856418573524ull}},
+ {{6697357854907570501ull, 388685134858819ull}},
+ {{9047235098667966724ull, 310948107887055ull}},
+ {{14475576157868746758ull, 497516972619288ull}},
+ {{512414482069266437ull, 398013578095431ull}},
+ {{15167326844623054442ull, 318410862476344ull}},
+ {{13199676507171156138ull, 509457379962151ull}},
+ {{6870392390995014587ull, 407565903969721ull}},
+ {{1806965098054101346ull, 326052723175777ull}},
+ {{6580492971628472478ull, 521684357081243ull}},
+ {{12643092006786598628ull, 417347485664994ull}},
+ {{13803822420171189226ull, 333877988531995ull}},
+ {{3639371798564351146ull, 534204781651193ull}},
+ {{10290195068335301563ull, 427363825320954ull}},
+ {{11921504869410151573ull, 341891060256763ull}},
+ {{15385058976314332194ull, 547025696410821ull}},
+ {{8618698366309555432ull, 437620557128657ull}},
+ {{17963005137273375315ull, 350096445702925ull}},
+ {{10294064145927848889ull, 560154313124681ull}},
+ {{4545902502000368788ull, 448123450499745ull}},
+ {{3636722001600295030ull, 358498760399796ull}},
+ {{17666772860247877317ull, 286799008319836ull}},
+ {{2441394873203231445ull, 458878413311739ull}},
+ {{5642464713304495479ull, 367102730649391ull}},
+ {{824622955901686060ull, 293682184519513ull}},
+ {{16076791988410338989ull, 469891495231220ull}},
+ {{12861433590728271191ull, 375913196184976ull}},
+ {{6599798057840706629ull, 300730556947981ull}},
+ {{3180979263061309961ull, 481168891116770ull}},
+ {{2544783410449047969ull, 384935112893416ull}},
+ {{16793221987326879668ull, 307948090314732ull}},
+ {{12111759920755366176ull, 492716944503572ull}},
+ {{2310710307120472294ull, 394173555602858ull}},
+ {{9227265875180198482ull, 315338844482286ull}},
+ {{7384927770804496924ull, 504542151171658ull}},
+ {{13286639846127418186ull, 403633720937326ull}},
+ {{6939963062160024225ull, 322906976749861ull}},
+ {{3725243269972218115ull, 516651162799778ull}},
+ {{10358892245461595138ull, 413320930239822ull}},
+ {{908416166885455464ull, 330656744191858ull}},
+ {{16210861125984370035ull, 529050790706972ull}},
+ {{5589991271303675382ull, 423240632565578ull}},
+ {{11850690646526760952ull, 338592506052462ull}},
+ {{4203709775475176230ull, 541748009683940ull}},
+ {{3362967820380140984ull, 433398407747152ull}},
+ {{13758420700529843757ull, 346718726197721ull}},
+ {{14634775491363929365ull, 554749961916354ull}},
+ {{15397169207833053815ull, 443799969533083ull}},
+ {{1249688922040712082ull, 355039975626467ull}},
+ {{12067797581858300635ull, 284031980501173ull}},
+ {{15619127316231370693ull, 454451168801877ull}},
+ {{5116604223501275908ull, 363560935041502ull}},
+ {{15161329823026751696ull, 290848748033201ull}},
+ {{16879430087358982068ull, 465357996853122ull}},
+ {{6124846440403365008ull, 372286397482498ull}},
+ {{12278574781806512652ull, 297829117985998ull}},
+ {{15956370836148509921ull, 476526588777597ull}},
+ {{5386399039434987290ull, 381221271022078ull}},
+ {{11687816861031810479ull, 304977016817662ull}},
+ {{3943111718683255473ull, 487963226908260ull}},
+ {{3154489374946604378ull, 390370581526608ull}},
+ {{9902289129441104149ull, 312296465221286ull}},
+ {{8464964977621945992ull, 499674344354058ull}},
+ {{14150669611581377440ull, 399739475483246ull}},
+ {{7631186874523191629ull, 319791580386597ull}},
+ {{15899247813979016930ull, 511666528618555ull}},
+ {{12719398251183213544ull, 409333222894844ull}},
+ {{13864867415688481158ull, 327466578315875ull}},
+ {{3737043791392018237ull, 523946525305401ull}},
+ {{17747030292081255882ull, 419157220244320ull}},
+ {{14197624233665004706ull, 335325776195456ull}},
+ {{15337501144380186883ull, 536521241912730ull}},
+ {{12270000915504149506ull, 429216993530184ull}},
+ {{13505349547145229928ull, 343373594824147ull}},
+ {{6851164016464726593ull, 549397751718636ull}},
+ {{1791582398429870951ull, 439518201374909ull}},
+ {{5122614733485807084ull, 351614561099927ull}},
+ {{11885532388319201658ull, 562583297759883ull}},
+ {{16887123540139181972ull, 450066638207906ull}},
+ {{9820350017369435255ull, 360053310566325ull}},
+ {{7856280013895548204ull, 288042648453060ull}},
+ {{12570048022232877126ull, 460868237524896ull}},
+ {{6366689603044391378ull, 368694590019917ull}},
+ {{16161398126661244072ull, 294955672015933ull}},
+ {{3722144114206528576ull, 471929075225494ull}},
+ {{6667064106107133184ull, 377543260180395ull}},
+ {{5333651284885706547ull, 302034608144316ull}},
+ {{1155144426333309829ull, 483255373030906ull}},
+ {{15681510800034289156ull, 386604298424724ull}},
+ {{16234557454769341648ull, 309283438739779ull}},
+ {{14907245483405215667ull, 494853501983647ull}},
+ {{4547098757240351887ull, 395882801586918ull}},
+ {{11016376635276102156ull, 316706241269534ull}},
+ {{6558156172216032480ull, 506729986031255ull}},
+ {{5246524937772825984ull, 405383988825004ull}},
+ {{7886568764960171110ull, 324307191060003ull}},
+ {{8929161209194363454ull, 518891505696005ull}},
+ {{7143328967355490763ull, 415113204556804ull}},
+ {{9404011988626302933ull, 332090563645443ull}},
+ {{11357070367060174370ull, 531344901832709ull}},
+ {{12775005108390049819ull, 425075921466167ull}},
+ {{2841306457228219209ull, 340060737172934ull}},
+ {{11924787961048971381ull, 544097179476694ull}},
+ {{13229179183581087428ull, 435277743581355ull}},
+ {{10583343346864869942ull, 348222194865084ull}},
+ {{5865302910758060938ull, 557155511784135ull}},
+ {{4692242328606448751ull, 445724409427308ull}},
+ {{11132491492368979647ull, 356579527541846ull}},
+ {{5216644379153273394ull, 285263622033477ull}},
+ {{12035979821387147754ull, 456421795253563ull}},
+ {{17007481486593538850ull, 365137436202850ull}},
+ {{13605985189274831080ull, 292109948962280ull}},
+ {{3322832229130178112ull, 467375918339649ull}},
+ {{6347614598046052812ull, 373900734671719ull}},
+ {{8767440493178752573ull, 299120587737375ull}},
+ {{14027904789086004117ull, 478592940379800ull}},
+ {{11222323831268803294ull, 382874352303840ull}},
+ {{8977859065015042635ull, 306299481843072ull}},
+ {{18053923318765978539ull, 490079170948915ull}},
+ {{14443138655012782831ull, 392063336759132ull}},
+ {{4175813294526405618ull, 313650669407306ull}},
+ {{17749347715467979959ull, 501841071051689ull}},
+ {{17888826987116294291ull, 401472856841351ull}},
+ {{10621712774951125109ull, 321178285473081ull}},
+ {{9616042810437979529ull, 513885256756930ull}},
+ {{7692834248350383623ull, 411108205405544ull}},
+ {{9843616213422217221ull, 328886564324435ull}},
+ {{15749785941475547554ull, 526218502919096ull}},
+ {{8910479938438527720ull, 420974802335277ull}},
+ {{18196430394976553146ull, 336779841868221ull}},
+ {{3288846928769112771ull, 538847746989155ull}},
+ {{2631077543015290217ull, 431078197591324ull}},
+ {{5794210849154142496ull, 344862558073059ull}},
+ {{16649434988130448641ull, 551780092916894ull}},
+ {{17008896805246269236ull, 441424074333515ull}},
+ {{13607117444197015389ull, 353139259466812ull}},
+ {{3506996325873791664ull, 282511407573450ull}},
+ {{5611194121398066663ull, 452018252117520ull}},
+ {{4488955297118453331ull, 361614601694016ull}},
+ {{18348559496662403957ull, 289291681355212ull}},
+ {{14600299935692205039ull, 462866690168340ull}},
+ {{11680239948553764031ull, 370293352134672ull}},
+ {{1965494329359190578ull, 296234681707738ull}},
+ {{17902186185942346219ull, 473975490732380ull}},
+ {{14321748948753876975ull, 379180392585904ull}},
+ {{15146747973745011903ull, 303344314068723ull}},
+ {{2098703869540557106ull, 485350902509958ull}},
+ {{9057660725116266331ull, 388280722007966ull}},
+ {{3556779765351102741ull, 310624577606373ull}},
+ {{2001498809819854063ull, 496999324170197ull}},
+ {{12669245492081614220ull, 397599459336157ull}},
+ {{2756698764181470730ull, 318079567468926ull}},
+ {{15478764466916084137ull, 508927307950281ull}},
+ {{8693662758790956987ull, 407141846360225ull}},
+ {{6954930207032765589ull, 325713477088180ull}},
+ {{11127888331252424943ull, 521141563341088ull}},
+ {{16281008294485760601ull, 416913250672870ull}},
+ {{13024806635588608480ull, 333530600538296ull}},
+ {{13460992987457952923ull, 533648960861274ull}},
+ {{14458143204708272661ull, 426919168689019ull}},
+ {{15255863378508528452ull, 341535334951215ull}},
+ {{5962637331904093908ull, 546456535921945ull}},
+ {{4770109865523275126ull, 437165228737556ull}},
+ {{126739077676709777ull, 349732182990045ull}},
+ {{202782524282735644ull, 559571492784072ull}},
+ {{11230272463651919485ull, 447657194227257ull}},
+ {{1605520341437714941ull, 358125755381806ull}},
+ {{16041811532117813246ull, 286500604305444ull}},
+ {{14598852007162770224ull, 458400966888711ull}},
+ {{7989732790988305856ull, 366720773510969ull}},
+ {{10081135047532555008ull, 293376618808775ull}},
+ {{16129816076052088013ull, 469402590094040ull}},
+ {{12903852860841670410ull, 375522072075232ull}},
+ {{2944384659189515682ull, 300417657660186ull}},
+ {{15779061898928956060ull, 480668252256297ull}},
+ {{5244551889659344202ull, 384534601805038ull}},
+ {{11574339141211296008ull, 307627681444030ull}},
+ {{72198552228521997ull, 492204290310449ull}},
+ {{3747107656524727921ull, 393763432248359ull}},
+ {{6687034939961692660ull, 315010745798687ull}},
+ {{14388604718680618579ull, 504017193277899ull}},
+ {{15200232589686405186ull, 403213754622319ull}},
+ {{15849534886491034472ull, 322571003697855ull}},
+ {{6912511744676103539ull, 516113605916569ull}},
+ {{9219358210482793155ull, 412890884733255ull}},
+ {{7375486568386234524ull, 330312707786604ull}},
+ {{732732065192244269ull, 528500332458567ull}},
+ {{11654232096379526384ull, 422800265966853ull}},
+ {{16702083306587441754ull, 338240212773482ull}},
+ {{11965938031572265514ull, 541184340437572ull}},
+ {{2194052795773991764ull, 432947472350058ull}},
+ {{9133939866103014058ull, 346357977880046ull}},
+ {{7235606156281001846ull, 554172764608074ull}},
+ {{9477833739766711800ull, 443338211686459ull}},
+ {{11271615806555279763ull, 354670569349167ull}},
+ {{1638595015760403164ull, 283736455479334ull}},
+ {{10000449654700465709ull, 453978328766934ull}},
+ {{11689708538502282890ull, 363182663013547ull}},
+ {{1973069201318005666ull, 290546130410838ull}},
+ {{17914305981076450358ull, 464873808657340ull}},
+ {{14331444784861160287ull, 371899046925872ull}},
+ {{4086458198405107583ull, 297519237540698ull}},
+ {{2848984302706261810ull, 476030780065117ull}},
+ {{13347233886390740417ull, 380824624052093ull}},
+ {{18056484738596412980ull, 304659699241674ull}},
+ {{17822329137528529799ull, 487455518786679ull}},
+ {{17947212124764734162ull, 389964415029343ull}},
+ {{3289723255586056360ull, 311971532023475ull}},
+ {{5263557208937690176ull, 499154451237560ull}},
+ {{4210845767150152141ull, 399323560990048ull}},
+ {{10747374243203942359ull, 319458848792038ull}},
+ {{13506449974384397452ull, 511134158067261ull}},
+ {{7115811164765607638ull, 408907326453809ull}},
+ {{9381997746554396434ull, 327125861163047ull}},
+ {{253801135519393001ull, 523401377860876ull}},
+ {{14960436167383155694ull, 418721102288700ull}},
+ {{11968348933906524555ull, 334976881830960ull}},
+ {{702614220540887672ull, 535963010929537ull}},
+ {{11630137820658441107ull, 428770408743629ull}},
+ {{12993459071268663209ull, 343016326994903ull}},
+ {{17100185699287950811ull, 548826123191845ull}},
+ {{13680148559430360649ull, 439060898553476ull}},
+ {{7254770032802378196ull, 351248718842781ull}},
+ {{4228934422999984467ull, 561997950148450ull}},
+ {{3383147538399987574ull, 449598360118760ull}},
+ {{2706518030719990059ull, 359678688095008ull}},
+ {{9543912054059812693ull, 287742950476006ull}},
+ {{7891561657011879663ull, 460388720761610ull}},
+ {{6313249325609503730ull, 368310976609288ull}},
+ {{12429297089971423631ull, 294648781287430ull}},
+ {{1440131270244726193ull, 471438050059889ull}},
+ {{4841453830937691278ull, 377150440047911ull}},
+ {{183814250008242699ull, 301720352038329ull}},
+ {{7672800429497008965ull, 482752563261326ull}},
+ {{2448891528855696849ull, 386202050609061ull}},
+ {{16716508482052198772ull, 308961640487248ull}},
+ {{4610320682832056096ull, 494338624779598ull}},
+ {{11066954175749465523ull, 395470899823678ull}},
+ {{16232260970083393065ull, 316376719858942ull}},
+ {{11214222293165787611ull, 506202751774308ull}},
+ {{16350075464016450735ull, 404962201419446ull}},
+ {{9390711556471250265ull, 323969761135557ull}},
+ {{267743231386359131ull, 518351617816892ull}},
+ {{11282241029334818274ull, 414681294253513ull}},
+ {{16404490452951675266ull, 331745035402810ull}},
+ {{7800440651013128809ull, 530792056644497ull}},
+ {{17308398965036234017ull, 424633645315597ull}},
+ {{6468021542545166567ull, 339706916252478ull}},
+ {{6659485653330356185ull, 543531066003965ull}},
+ {{5327588522664284948ull, 434824852803172ull}},
+ {{15330117262357158928ull, 347859882242537ull}},
+ {{9770792360803812992ull, 556575811588060ull}},
+ {{7816633888643050393ull, 445260649270448ull}},
+ {{13632004740398260961ull, 356208519416358ull}},
+ {{18284301421802429415ull, 284966815533086ull}},
+ {{3429440571690514802ull, 455946904852939ull}},
+ {{6432901272094322165ull, 364757523882351ull}},
+ {{1456972202933547408ull, 291806019105881ull}},
+ {{13399201968919406823ull, 466889630569409ull}},
+ {{14408710389877435782ull, 373511704455527ull}},
+ {{4148270682418127979ull, 298809363564422ull}},
+ {{10326581906610915090ull, 478094981703075ull}},
+ {{8261265525288732072ull, 382475985362460ull}},
+ {{6609012420230985657ull, 305980788289968ull}},
+ {{6885071057627666729ull, 489569261263949ull}},
+ {{9197405660844043706ull, 391655409011159ull}},
+ {{11047273343417145288ull, 313324327208927ull}},
+ {{2918242090499791168ull, 501318923534284ull}},
+ {{6023942487141743258ull, 401055138827427ull}},
+ {{15887200433939125576ull, 320844111061941ull}},
+ {{18040823064818780275ull, 513350577699106ull}},
+ {{10743309637113113897ull, 410680462159285ull}},
+ {{8594647709690491117ull, 328544369727428ull}},
+ {{10062087520762875465ull, 525670991563885ull}},
+ {{8049670016610300372ull, 420536793251108ull}},
+ {{13818433642772060944ull, 336429434600886ull}},
+ {{14730796198951476864ull, 538287095361418ull}},
+ {{716590514935450521ull, 430629676289135ull}},
+ {{573272411948360417ull, 344503741031308ull}},
+ {{15674631118085017960ull, 551205985650092ull}},
+ {{5161007264984193722ull, 440964788520074ull}},
+ {{7818154626729265300ull, 352771830816059ull}},
+ {{9943872516125322563ull, 282217464652847ull}},
+ {{1152800766832874809ull, 451547943444556ull}},
+ {{15679635872433941140ull, 361238354755644ull}},
+ {{16233057512689063235ull, 288990683804515ull}},
+ {{7526147946592949560ull, 462385094087225ull}},
+ {{6020918357274359648ull, 369908075269780ull}},
+ {{4816734685819487718ull, 295926460215824ull}},
+ {{15085473126795000996ull, 473482336345318ull}},
+ {{1000332057210269827ull, 378785869076255ull}},
+ {{800265645768215862ull, 303028695261004ull}},
+ {{8659122662712966025ull, 484845912417606ull}},
+ {{3237949315428462497ull, 387876729934085ull}},
+ {{2590359452342769997ull, 310301383947268ull}},
+ {{455226309006521673ull, 496482214315629ull}},
+ {{4053529861947127662ull, 397185771452503ull}},
+ {{10621521519041522776ull, 317748617162002ull}},
+ {{2237039171498795148ull, 508397787459204ull}},
+ {{5478980151940946442ull, 406718229967363ull}},
+ {{11761881751036577800ull, 325374583973890ull}},
+ {{372266727948972864ull, 520599334358225ull}},
+ {{297813382359178291ull, 416479467486580ull}},
+ {{238250705887342633ull, 333183573989264ull}},
+ {{7759898758903568859ull, 533093718382822ull}},
+ {{17275965451348586057ull, 426474974706257ull}},
+ {{6442074731595048199ull, 341179979765006ull}},
+ {{2928621941068256472ull, 545887967624010ull}},
+ {{2342897552854605178ull, 436710374099208ull}},
+ {{9253015671767504788ull, 349368299279366ull}},
+ {{7426127445344187015ull, 558989278846986ull}},
+ {{2251553141533439289ull, 447191423077589ull}},
+ {{5490591327968661754ull, 357753138462071ull}},
+ {{703124247633019080ull, 286202510769657ull}},
+ {{4814347610954740852ull, 457924017231451ull}},
+ {{162129274021882358ull, 366339213785161ull}},
+ {{14887098678185147179ull, 293071371028128ull}},
+ {{1683264996644773548ull, 468914193645006ull}},
+ {{16104007256283460131ull, 375131354916004ull}},
+ {{16572554619768678428ull, 300105083932803ull}},
+ {{4379994503178423545ull, 480168134292486ull}},
+ {{18261390861510380129ull, 384134507433988ull}},
+ {{3541066244982573134ull, 307307605947191ull}},
+ {{16733752436197847984ull, 491692169515505ull}},
+ {{13387001948958278387ull, 393353735612404ull}},
+ {{14398950373908533033ull, 314682988489923ull}},
+ {{902227709802190913ull, 503492781583878ull}},
+ {{8100479797325573377ull, 402794225267102ull}},
+ {{17548430282086189671ull, 322235380213681ull}},
+ {{2252046748144531211ull, 515576608341891ull}},
+ {{16559032657483266262ull, 412461286673512ull}},
+ {{5868528496502792363ull, 329969029338810ull}},
+ {{9389645594404467781ull, 527950446942096ull}},
+ {{3822367660781663902ull, 422360357553677ull}},
+ {{14125940572851062091ull, 337888286042941ull}},
+ {{15222807287077878699ull, 540621257668706ull}},
+ {{8488897014920392636ull, 432497006134965ull}},
+ {{6791117611936314109ull, 345997604907972ull}},
+ {{14555136993840012897ull, 553596167852755ull}},
+ {{11644109595072010318ull, 442876934282204ull}},
+ {{13004636490799518577ull, 354301547425763ull}},
+ {{17782406822123435508ull, 283441237940610ull}},
+ {{10005106841687945197ull, 453505980704977ull}},
+ {{625387843866535511ull, 362804784563982ull}},
+ {{11568356719318959379ull, 290243827651185ull}},
+ {{62626677200783390ull, 464390124241897ull}},
+ {{11118147785986357682ull, 371512099393517ull}},
+ {{1515820599305265499ull, 297209679514814ull}},
+ {{9804010588372245445ull, 475535487223702ull}},
+ {{464510841213975709ull, 380428389778962ull}},
+ {{11439655117196911537ull, 304342711823169ull}},
+ {{7235401743289327490ull, 486948338917071ull}},
+ {{2098972579889551669ull, 389558671133657ull}},
+ {{12747224508137372304ull, 311646936906925ull}},
+ {{1948815139310244071ull, 498635099051081ull}},
+ {{16316447370415836550ull, 398908079240864ull}},
+ {{16742506711074579563ull, 319126463392691ull}},
+ {{962569034525955038ull, 510602341428307ull}},
+ {{11838101671846495000ull, 408481873142645ull}},
+ {{9470481337477196000ull, 326785498514116ull}},
+ {{7774072510479692954ull, 522856797622586ull}},
+ {{2529909193641844040ull, 418285438098069ull}},
+ {{5713276169655385555ull, 334628350478455ull}},
+ {{9141241871448616888ull, 535405360765528ull}},
+ {{14691691126642714157ull, 428324288612422ull}},
+ {{4374655271830350679ull, 342659430889938ull}},
+ {{3310099620186650764ull, 548255089423901ull}},
+ {{17405474955116961904ull, 438604071539120ull}},
+ {{13924379964093569523ull, 350883257231296ull}},
+ {{14900310313065890590ull, 561413211570074ull}},
+ {{15609597065194622795ull, 449130569256059ull}},
+ {{16177026466897608559ull, 359304455404847ull}},
+ {{5562923544034266201ull, 287443564323878ull}},
+ {{5211328855712915599ull, 459909702918205ull}},
+ {{4169063084570332479ull, 367927762334564ull}},
+ {{7024599282398176306ull, 294342209867651ull}},
+ {{3860661222353261444ull, 470947535788242ull}},
+ {{14156575422108340125ull, 376758028630593ull}},
+ {{257213893460941130ull, 301406422904475ull}},
+ {{411542229537505808ull, 482250276647160ull}},
+ {{329233783630004647ull, 385800221317728ull}},
+ {{7642084656387824364ull, 308640177054182ull}},
+ {{15916684264962429305ull, 493824283286691ull}},
+ {{9043998597228033121ull, 395059426629353ull}},
+ {{14613896507266247143ull, 316047541303482ull}},
+ {{8624839152658354136ull, 505676066085572ull}},
+ {{17967917766352414278ull, 404540852868457ull}},
+ {{6995636583598110776ull, 323632682294766ull}},
+ {{3814320904273156596ull, 517812291671626ull}},
+ {{17808851982386166569ull, 414249833337300ull}},
+ {{14247081585908933255ull, 331399866669840ull}},
+ {{4348586463744741593ull, 530239786671745ull}},
+ {{3478869170995793274ull, 424191829337396ull}},
+ {{17540490595764275912ull, 339353463469916ull}},
+ {{2239343250029469197ull, 542965541551867ull}},
+ {{12859521044249306327ull, 434372433241493ull}},
+ {{17666314464883265708ull, 347497946593194ull}},
+ {{17198056699587494164ull, 555996714549111ull}},
+ {{10069096544928085008ull, 444797371639289ull}},
+ {{11744626050684378329ull, 355837897311431ull}},
+ {{5706352025805592340ull, 284670317849145ull}},
+ {{9130163241288947745ull, 455472508558632ull}},
+ {{18372177037256889165ull, 364378006846905ull}},
+ {{14697741629805511332ull, 291502405477524ull}},
+ {{12448340163463087162ull, 466403848764039ull}},
+ {{13648020945512380053ull, 373123079011231ull}},
+ {{7229067941667993719ull, 298498463208985ull}},
+ {{11566508706668789950ull, 477597541134376ull}},
+ {{5563858150593121637ull, 382078032907501ull}},
+ {{761737705732586986ull, 305662426326001ull}},
+ {{12286826773397870148ull, 489059882121601ull}},
+ {{6140112603976385795ull, 391247905697281ull}},
+ {{1222741268439198313ull, 312998324557825ull}},
+ {{1956386029502717301ull, 500797319292520ull}},
+ {{1565108823602173840ull, 400637855434016ull}},
+ {{16009482317849380365ull, 320510284347212ull}},
+ {{10857776449591367292ull, 512816454955540ull}},
+ {{8686221159673093833ull, 410253163964432ull}},
+ {{18017023371964206036ull, 328202531171545ull}},
+ {{10380493321433178042ull, 525124049874473ull}},
+ {{15683092286630363080ull, 420099239899578ull}},
+ {{1478427385078559494ull, 336079391919663ull}},
+ {{17122879075093336484ull, 537727027071460ull}},
+ {{13698303260074669187ull, 430181621657168ull}},
+ {{18337340237543555996ull, 344145297325734ull}},
+ {{18271697935843958624ull, 550632475721175ull}},
+ {{14617358348675166899ull, 440505980576940ull}},
+ {{11693886678940133519ull, 352404784461552ull}},
+ {{1976411713668286169ull, 281923827569242ull}},
+ {{6851607556611168194ull, 451078124110787ull}},
+ {{16549332489514665525ull, 360862499288629ull}},
+ {{16928814806353642743ull, 288689999430903ull}},
+ {{4950010801714366449ull, 461903999089446ull}},
+ {{270659826629582836ull, 369523199271557ull}},
+ {{11284574305529397238ull, 295618559417245ull}},
+ {{18055318888847035582ull, 472989695067592ull}},
+ {{7065557481593807819ull, 378391756054074ull}},
+ {{9341794800016956578ull, 302713404843259ull}},
+ {{3878825235801399556ull, 484341447749215ull}},
+ {{3103060188641119645ull, 387473158199372ull}},
+ {{13550494595138626685ull, 309978526559497ull}},
+ {{6923396093254161404ull, 495965642495196ull}},
+ {{1849368059861418800ull, 396772513996157ull}},
+ {{12547540892114866009ull, 317418011196925ull}},
+ {{1629321353674233999ull, 507868817915081ull}},
+ {{16060852341907028492ull, 406295054332064ull}},
+ {{16538030688267533117ull, 325036043465651ull}},
+ {{635407398034680725ull, 520057669545043ull}},
+ {{7887023547911565226ull, 416046135636034ull}},
+ {{9998967653071162504ull, 332836908508827ull}},
+ {{1240952985946218714ull, 532539053614124ull}},
+ {{4682111203498885294ull, 426031242891299ull}},
+ {{7435037777541018558ull, 340824994313039ull}},
+ {{828013999839898724ull, 545319990900863ull}},
+ {{8041108829355739626ull, 436255992720690ull}},
+ {{6432887063484591700ull, 349004794176552ull}},
+ {{13981968116317257044ull, 558407670682483ull}},
+ {{117528048828074666ull, 446726136545987ull}},
+ {{11162068883288190702ull, 357380909236789ull}},
+ {{12619003921372462885ull, 285904727389431ull}},
+ {{12811708644712119969ull, 457447563823090ull}},
+ {{10249366915769695975ull, 365958051058472ull}},
+ {{820795903131936134ull, 292766440846778ull}},
+ {{16070668703978739107ull, 468426305354844ull}},
+ {{16545883777924901609ull, 374741044283875ull}},
+ {{13236707022339921287ull, 299792835427100ull}},
+ {{2731987162034322444ull, 479668536683361ull}},
+ {{16942984988595099248ull, 383734829346688ull}},
+ {{2486341546650348428ull, 306987863477351ull}},
+ {{15046192918866288455ull, 491180581563761ull}},
+ {{8347605520351120441ull, 392944465251009ull}},
+ {{10367433231022806676ull, 314355572200807ull}},
+ {{1830497910668849389ull, 502968915521292ull}},
+ {{12532444772760810481ull, 402375132417033ull}},
+ {{17404653447692469031ull, 321900105933626ull}},
+ {{2022003813114578187ull, 515040169493803ull}},
+ {{8996300679975483196ull, 412032135595042ull}},
+ {{18265086988206117526ull, 329625708476033ull}},
+ {{7088046292678326103ull, 527401133561654ull}},
+ {{9359785848884571206ull, 421920906849323ull}},
+ {{14866526308591477611ull, 337536725479458ull}},
+ {{1650349205294902238ull, 540058760767134ull}},
+ {{5009628178977832114ull, 432047008613707ull}},
+ {{15075748987407996661ull, 345637606890965ull}},
+ {{5674454306143243041ull, 553020171025545ull}},
+ {{4539563444914594433ull, 442416136820436ull}},
+ {{18389046014899316839ull, 353932909456348ull}},
+ {{3643190367693722501ull, 283146327565079ull}},
+ {{13207802217793776649ull, 453034124104126ull}},
+ {{6876892959493110996ull, 362427299283301ull}},
+ {{1812165552852578473ull, 289941839426641ull}},
+ {{13967511328789856527ull, 463906943082625ull}},
+ {{11174009063031885222ull, 371125554466100ull}},
+ {{8939207250425508177ull, 296900443572880ull}},
+ {{14302731600680813084ull, 475040709716608ull}},
+ {{374138836318919498ull, 380032567773287ull}},
+ {{11367357513280866568ull, 304026054218629ull}},
+ {{7119725577023655539ull, 486441686749807ull}},
+ {{16763826905844655401ull, 389153349399845ull}},
+ {{13411061524675724320ull, 311322679519876ull}},
+ {{14079000809997338266ull, 498116287231802ull}},
+ {{3884503018514049967ull, 398493029785442ull}},
+ {{14175648859036970943ull, 318794423828353ull}},
+ {{544945286007691570ull, 510071078125366ull}},
+ {{15193351487773794548ull, 408056862500292ull}},
+ {{4775983560735214992ull, 326445490000234ull}},
+ {{15020271326660164634ull, 522312784000374ull}},
+ {{15705565876070042031ull, 417850227200299ull}},
+ {{16253801515597943948ull, 334280181760239ull}},
+ {{14938035980730979347ull, 534848290816383ull}},
+ {{882382340359052508ull, 427878632653107ull}},
+ {{11773952316512972976ull, 342302906122485ull}},
+ {{391579632711205145ull, 547684649795977ull}},
+ {{11381310150394695086ull, 438147719836781ull}},
+ {{5415699305573845745ull, 350518175869425ull}},
+ {{8665118888918153193ull, 560829081391080ull}},
+ {{6932095111134522554ull, 448663265112864ull}},
+ {{9235024903649528366ull, 358930612090291ull}},
+ {{3698671108177712370ull, 287144489672233ull}},
+ {{2228524958342429469ull, 459431183475573ull}},
+ {{9161517596157764221ull, 367544946780458ull}},
+ {{14707911706410032023ull, 294035957424366ull}},
+ {{16153961100772230591ull, 470457531878986ull}},
+ {{9233820065875874150ull, 376366025503189ull}},
+ {{11076404867442609643ull, 301092820402551ull}},
+ {{10343550158424354783ull, 481748512644082ull}},
+ {{896142497255663180ull, 385398810115266ull}},
+ {{15474309256772171836ull, 308319048092212ull}},
+ {{10001499551867833646ull, 493310476947540ull}},
+ {{8001199641494266916ull, 394648381558032ull}},
+ {{17469006157421144503ull, 315718705246425ull}},
+ {{9503665778164279588ull, 505149928394281ull}},
+ {{3913583807789513347ull, 404119942715425ull}},
+ {{3130867046231610678ull, 323295954172340ull}},
+ {{5009387273970577085ull, 517273526675744ull}},
+ {{7696858633918371991ull, 413818821340595ull}},
+ {{6157486907134697593ull, 331055057072476ull}},
+ {{2473281421931695502ull, 529688091315962ull}},
+ {{13046671581771087371ull, 423750473052769ull}},
+ {{14126686080158780220ull, 339000378442215ull}},
+ {{4155953654544496737ull, 542400605507545ull}},
+ {{3324762923635597389ull, 433920484406036ull}},
+ {{17417205597876119204ull, 347136387524828ull}},
+ {{5731436068150328788ull, 555418220039726ull}},
+ {{895800039778352707ull, 444334576031781ull}},
+ {{15474035290790323458ull, 355467660825424ull}},
+ {{16068577047374169090ull, 284374128660339ull}},
+ {{14641676831572939574ull, 454998605856543ull}},
+ {{645295021032620689ull, 363998884685235ull}},
+ {{516236016826096551ull, 291199107748188ull}},
+ {{15583372885889395775ull, 465918572397100ull}},
+ {{12466698308711516620ull, 372734857917680ull}},
+ {{9973358646969213296ull, 298187886334144ull}},
+ {{4889327390925010305ull, 477100618134631ull}},
+ {{222113097998097920ull, 381680494507705ull}},
+ {{177690478398478336ull, 305344395606164ull}},
+ {{7663002394921385985ull, 488551032969862ull}},
+ {{17198448360162839757ull, 390840826375889ull}},
+ {{17448107502872182129ull, 312672661100711ull}},
+ {{2091530301402119144ull, 500276257761139ull}},
+ {{5362573055863605638ull, 400221006208911ull}},
+ {{600709629948974187ull, 320176804967129ull}},
+ {{8339833037402179346ull, 512282887947406ull}},
+ {{2982517615179833154ull, 409826310357925ull}},
+ {{2386014092143866523ull, 327861048286340ull}},
+ {{3817622547430186437ull, 524577677258144ull}},
+ {{6743446852686059473ull, 419662141806515ull}},
+ {{5394757482148847578ull, 335729713445212ull}},
+ {{12320960786180066448ull, 537167541512339ull}},
+ {{13546117443685963482ull, 429734033209871ull}},
+ {{7147545140206860462ull, 343787226567897ull}},
+ {{15125421039072887063ull, 550059562508635ull}},
+ {{12100336831258309650ull, 440047650006908ull}},
+ {{17058967094490468367ull, 352038120005526ull}},
+ {{9957824860850464370ull, 281630496004421ull}},
+ {{8553822147876922346ull, 450608793607074ull}},
+ {{10532406533043448200ull, 360487034885659ull}},
+ {{12115274041176668883ull, 288389627908527ull}},
+ {{4627043206915028920ull, 461423404653644ull}},
+ {{7390983380273933459ull, 369138723722915ull}},
+ {{5912786704219146767ull, 295310978978332ull}},
+ {{13149807541492545151ull, 472497566365331ull}},
+ {{6830497218452125798ull, 377998053092265ull}},
+ {{5464397774761700638ull, 302398442473812ull}},
+ {{12432385254360631344ull, 483837507958099ull}},
+ {{13635257018230415399ull, 387070006366479ull}},
+ {{14597554429326242642ull, 309656005093183ull}},
+ {{1219994198470526288ull, 495449608149094ull}},
+ {{4665344173518331354ull, 396359686519275ull}},
+ {{3732275338814665083ull, 317087749215420ull}},
+ {{5971640542103464133ull, 507340398744672ull}},
+ {{15845358877908502276ull, 405872318995737ull}},
+ {{5297589472842981174ull, 324697855196590ull}},
+ {{8476143156548769879ull, 519516568314544ull}},
+ {{10470263339980926226ull, 415613254651635ull}},
+ {{8376210671984740981ull, 332490603721308ull}},
+ {{9712588260433675246ull, 531984965954093ull}},
+ {{15148768237830760843ull, 425587972763274ull}},
+ {{15808363405006518998ull, 340470378210619ull}},
+ {{14225335003784699427ull, 544752605136991ull}},
+ {{7690919188285849219ull, 435802084109593ull}},
+ {{13531432980112500021ull, 348641667287674ull}},
+ {{10582246323954269064ull, 557826667660279ull}},
+ {{12155145873905325575ull, 446261334128223ull}},
+ {{17102814328608081106ull, 357009067302578ull}},
+ {{2614205018660733915ull, 285607253842063ull}},
+ {{493379215115263941ull, 456971606147301ull}},
+ {{15152098631059852446ull, 365577284917840ull}},
+ {{12121678904847881957ull, 292461827934272ull}},
+ {{4637290988788969838ull, 467938924694836ull}},
+ {{20483976289265547ull, 374351139755869ull}},
+ {{3705735995773322761ull, 299480911804695ull}},
+ {{5929177593237316417ull, 479169458887512ull}},
+ {{15811388518815584103ull, 383335567110009ull}},
+ {{16338459629794377606ull, 306668453688007ull}},
+ {{11384140148703362877ull, 490669525900812ull}},
+ {{1728614489478869655ull, 392535620720650ull}},
+ {{1382891591583095724ull, 314028496576520ull}},
+ {{2212626546532953159ull, 502445594522432ull}},
+ {{12838147681452093496ull, 401956475617945ull}},
+ {{10270518145161674797ull, 321565180494356ull}},
+ {{9054131402774859029ull, 514504288790970ull}},
+ {{7243305122219887223ull, 411603431032776ull}},
+ {{2105295283033999455ull, 329282744826221ull}},
+ {{14436518897080130098ull, 526852391721953ull}},
+ {{481168673438373109ull, 421481913377563ull}},
+ {{7763632568234519133ull, 337185530702050ull}},
+ {{12421812109175230614ull, 539496849123280ull}},
+ {{9937449687340184491ull, 431597479298624ull}},
+ {{11639308564614057916ull, 345277983438899ull}},
+ {{7554847259156761696ull, 552444773502239ull}},
+ {{9733226622067319680ull, 441955818801791ull}},
+ {{4097232482911945421ull, 353564655041433ull}},
+ {{10656483615813376983ull, 282851724033146ull}},
+ {{9671676155817582526ull, 452562758453034ull}},
+ {{11426689739395976344ull, 362050206762427ull}},
+ {{1762654162032960429ull, 289640165409942ull}},
+ {{6509595473994647010ull, 463424264655907ull}},
+ {{16275722823421448577ull, 370739411724725ull}},
+ {{13020578258737158862ull, 296591529379780ull}},
+ {{2386181140269902563ull, 474546447007649ull}},
+ {{5598293726957832374ull, 379637157606119ull}},
+ {{8167983796308176222ull, 303709726084895ull}},
+ {{13068774074093081955ull, 485935561735832ull}},
+ {{3076321629790644918ull, 388748449388666ull}},
+ {{17218452562800157227ull, 310998759510932ull}},
+ {{12792128841512610271ull, 497598015217492ull}},
+ {{2855005443726267570ull, 398078412173994ull}},
+ {{5973353169722924379ull, 318462729739195ull}},
+ {{9557365071556679007ull, 509540367582712ull}},
+ {{267194427761522559ull, 407632294066170ull}},
+ {{213755542209218047ull, 326105835252936ull}},
+ {{11410055311760479845ull, 521769336404697ull}},
+ {{1749346619924563230ull, 417415469123758ull}},
+ {{8778174925423471230ull, 333932375299006ull}},
+ {{6666382251193733322ull, 534291800478410ull}},
+ {{5333105800954986657ull, 427433440382728ull}},
+ {{11645182270247809972ull, 341946752306182ull}},
+ {{3874896373428854663ull, 547114803689892ull}},
+ {{14167963542968814700ull, 437691842951913ull}},
+ {{266324390149320790ull, 350153474361531ull}},
+ {{11494165468464644234ull, 560245558978449ull}},
+ {{12884681189513625711ull, 448196447182759ull}},
+ {{13997093766352810892ull, 358557157746207ull}},
+ {{3818977383598428067ull, 286845726196966ull}},
+ {{17178410257983215877ull, 458953161915145ull}},
+ {{13742728206386572701ull, 367162529532116ull}},
+ {{7304833750367347838ull, 293730023625693ull}},
+ {{7998385185845846217ull, 469968037801109ull}},
+ {{10088056963418587297ull, 375974430240887ull}},
+ {{691747941251049191ull, 300779544192710ull}},
+ {{1106796706001678706ull, 481247270708336ull}},
+ {{15642832623768984258ull, 384997816566668ull}},
+ {{1446219654789456436ull, 307998253253335ull}},
+ {{2313951447663130299ull, 492797205205336ull}},
+ {{16608556417098145532ull, 394237764164268ull}},
+ {{2218798689452785456ull, 315390211331415ull}},
+ {{3550077903124456729ull, 504624338130264ull}},
+ {{6529411137241475706ull, 403699470504211ull}},
+ {{1534180095051270242ull, 322959576403369ull}},
+ {{9833385781565853034ull, 516735322245390ull}},
+ {{7866708625252682427ull, 413388257796312ull}},
+ {{17361413344427876911ull, 330710606237049ull}},
+ {{16710214906858872088ull, 529136969979279ull}},
+ {{17057520740229007994ull, 423309575983423ull}},
+ {{2577970147957475425ull, 338647660786739ull}},
+ {{11503449866215781327ull, 541836257258782ull}},
+ {{1824062263488804415ull, 433469005807026ull}},
+ {{16216645069758684825ull, 346775204645620ull}},
+ {{7499888037904344104ull, 554840327432993ull}},
+ {{13378608059807295930ull, 443872261946394ull}},
+ {{14392235262587747067ull, 355097809557115ull}},
+ {{11513788210070197653ull, 284078247645692ull}},
+ {{3664665877144674953ull, 454525196233108ull}},
+ {{10310430331199560608ull, 363620156986486ull}},
+ {{4558995450217738163ull, 290896125589189ull}},
+ {{14673090349832201708ull, 465433800942702ull}},
+ {{4359774650381940720ull, 372347040754162ull}},
+ {{14555866164531283546ull, 297877632603329ull}},
+ {{12221339419024322704ull, 476604212165327ull}},
+ {{2398373905735637516ull, 381283369732262ull}},
+ {{12986745568814240983ull, 305026695785809ull}},
+ {{9710746465877054603ull, 488042713257295ull}},
+ {{7768597172701643682ull, 390434170605836ull}},
+ {{2525528923419404623ull, 312347336484669ull}},
+ {{11419543906954868043ull, 499755738375470ull}},
+ {{9135635125563894434ull, 399804590700376ull}},
+ {{3619159285709205224ull, 319843672560301ull}},
+ {{16858701301360459328ull, 511749876096481ull}},
+ {{9797612226346457139ull, 409399900877185ull}},
+ {{7838089781077165711ull, 327519920701748ull}},
+ {{8851594834981554815ull, 524031873122797ull}},
+ {{18149322312210974822ull, 419225498498237ull}},
+ {{7140760220284959211ull, 335380398798590ull}},
+ {{11425216352455934738ull, 536608638077744ull}},
+ {{12829521896706658113ull, 429286910462195ull}},
+ {{10263617517365326490ull, 343429528369756ull}},
+ {{9043090398300701739ull, 549487245391610ull}},
+ {{7234472318640561391ull, 439589796313288ull}},
+ {{13166275484396269759ull, 351671837050630ull}},
+ {{2619296701324479999ull, 562674939281009ull}},
+ {{5784786175801494322ull, 450139951424807ull}},
+ {{15695875384866926427ull, 360111961139845ull}},
+ {{12556700307893541142ull, 288089568911876ull}},
+ {{12712022863145845180ull, 460943310259002ull}},
+ {{2790920661032855498ull, 368754648207202ull}},
+ {{13300782973052015368ull, 295003718565761ull}},
+ {{13902555127399403942ull, 472005949705218ull}},
+ {{53997657693792184ull, 377604759764175ull}},
+ {{43198126155033747ull, 302083807811340ull}},
+ {{69117001848053996ull, 483334092498144ull}},
+ {{3744642416220353520ull, 386667273998515ull}},
+ {{2995713932976282816ull, 309333819198812ull}},
+ {{8482491107503962829ull, 494934110718099ull}},
+ {{10475341700745080586ull, 395947288574479ull}},
+ {{12069622175337974792ull, 316757830859583ull}},
+ {{15622046665798849344ull, 506812529375333ull}},
+ {{1429590888413348506ull, 405450023500267ull}},
+ {{12211719154956409774ull, 324360018800213ull}},
+ {{15849401833188345316ull, 518976030080341ull}},
+ {{8990172651808765929ull, 415180824064273ull}},
+ {{14570835750930833390ull, 332144659251418ull}},
+ {{1177244313037871484ull, 531431454802270ull}},
+ {{941795450430297187ull, 425145163841816ull}},
+ {{15510831619311879043ull, 340116131073452ull}},
+ {{10059935331931365176ull, 544185809717524ull}},
+ {{11737297080287002464ull, 435348647774019ull}},
+ {{13079186478971512294ull, 348278918219215ull}},
+ {{2479954292644868055ull, 557246269150745ull}},
+ {{1983963434115894444ull, 445797015320596ull}},
+ {{16344566006260356848ull, 356637612256476ull}},
+ {{9386303990266375155ull, 285310089805181ull}},
+ {{7639388754942379602ull, 456496143688290ull}},
+ {{6111511003953903681ull, 365196914950632ull}},
+ {{15957255247388853915ull, 292157531960505ull}},
+ {{7084864322112614648ull, 467452051136809ull}},
+ {{9357240272432002041ull, 373961640909447ull}},
+ {{107094588461780986ull, 299169312727558ull}},
+ {{14928746600506490871ull, 478670900364092ull}},
+ {{4564299650921372051ull, 382936720291274ull}},
+ {{7340788535479007964ull, 306349376233019ull}},
+ {{677215212540681772ull, 490159001972831ull}},
+ {{15299167429000186711ull, 392127201578264ull}},
+ {{15928682757942059692ull, 313701761262611ull}},
+ {{18107194783223474860ull, 501922818020178ull}},
+ {{3417709382353048919ull, 401538254416143ull}},
+ {{10112865135366259781ull, 321230603532914ull}},
+ {{5112537772360284681ull, 513968965652663ull}},
+ {{11468727847372048391ull, 411175172522130ull}},
+ {{9174982277897638713ull, 328940138017704ull}},
+ {{3611925200410490971ull, 526304220828327ull}},
+ {{13957586604554123746ull, 421043376662661ull}},
+ {{7476720468901388674ull, 336834701330129ull}},
+ {{894706306016490908ull, 538935522128207ull}},
+ {{11783811489038923696ull, 431148417702565ull}},
+ {{9427049191231138957ull, 344918734162052ull}},
+ {{325883447002181039ull, 551869974659284ull}},
+ {{3950055572343655154ull, 441495979727427ull}},
+ {{14228090902100655093ull, 353196783781941ull}},
+ {{7693123906938613751ull, 282557427025553ull}},
+ {{8619649436359871678ull, 452091883240885ull}},
+ {{6895719549087897343ull, 361673506592708ull}},
+ {{12895273268754138520ull, 289338805274166ull}},
+ {{13253739600522800987ull, 462942088438666ull}},
+ {{6913642865676330466ull, 370353670750933ull}},
+ {{12909611922024885019ull, 296282936600746ull}},
+ {{13276681445755995384ull, 474052698561194ull}},
+ {{14310693971346706631ull, 379242158848955ull}},
+ {{11448555177077365304ull, 303393727079164ull}},
+ {{7249641839098053518ull, 485429963326663ull}},
+ {{13178411100762263460ull, 388343970661330ull}},
+ {{10542728880609810768ull, 310675176529064ull}},
+ {{5800319764749966260ull, 497080282446503ull}},
+ {{12018953441283793654ull, 397664225957202ull}},
+ {{2236465123543214277ull, 318131380765762ull}},
+ {{7267693012411053167ull, 509010209225219ull}},
+ {{9503503224670752856ull, 407208167380175ull}},
+ {{7602802579736602285ull, 325766533904140ull}},
+ {{12164484127578563656ull, 521226454246624ull}},
+ {{13420936116804761248ull, 416981163397299ull}},
+ {{14426097708185719322ull, 333584930717839ull}},
+ {{12013709888871419945ull, 533735889148543ull}},
+ {{16989665540580956603ull, 426988711318834ull}},
+ {{17281081247206675605ull, 341590969055067ull}},
+ {{12892334736563039676ull, 546545550488108ull}},
+ {{17692565418734252387ull, 437236440390486ull}},
+ {{10464703520245491586ull, 349789152312389ull}},
+ {{5675479188167055569ull, 559662643699823ull}},
+ {{11919080980017465101ull, 447730114959858ull}},
+ {{16913962413497792727ull, 358184091967886ull}},
+ {{9841821116056323858ull, 286547273574309ull}},
+ {{4678867341464387204ull, 458475637718895ull}},
+ {{3743093873171509763ull, 366780510175116ull}},
+ {{17751870357504849103ull, 293424408140092ull}},
+ {{13645597313040117273ull, 469479053024148ull}},
+ {{18295175479915914465ull, 375583242419318ull}},
+ {{3568093939707000602ull, 300466593935455ull}},
+ {{5708950303531200963ull, 480746550296728ull}},
+ {{11945857872308781417ull, 384597240237382ull}},
+ {{2177988668363204487ull, 307677792189906ull}},
+ {{14552828313606858149ull, 492284467503849ull}},
+ {{15331611465627396843ull, 393827574003079ull}},
+ {{15954637987243827797ull, 315062059202463ull}},
+ {{3391327891138662537ull, 504099294723942ull}},
+ {{13781108757136660999ull, 403279435779153ull}},
+ {{18403584635193149445ull, 322623548623322ull}},
+ {{14688340157341397820ull, 516197677797316ull}},
+ {{8061323311131207933ull, 412958142237853ull}},
+ {{13827756278388786992ull, 330366513790282ull}},
+ {{7367014786454417895ull, 528586422064452ull}},
+ {{16961658273389265286ull, 422869137651561ull}},
+ {{9879977803969501905ull, 338295310121249ull}},
+ {{4739918042125472079ull, 541272496193999ull}},
+ {{7481283248442287987ull, 433017996955199ull}},
+ {{9674375413495740712ull, 346414397564159ull}},
+ {{4410954217367454170ull, 554263036102655ull}},
+ {{3528763373893963336ull, 443410428882124ull}},
+ {{6512359513857080992ull, 354728343105699ull}},
+ {{8899236425827575117ull, 283782674484559ull}},
+ {{3170731837098389218ull, 454052279175295ull}},
+ {{2536585469678711374ull, 363241823340236ull}},
+ {{16786663634710610392ull, 290593458672188ull}},
+ {{4722568927085514688ull, 464949533875502ull}},
+ {{14846101585894142720ull, 371959627100401ull}},
+ {{8187532453973403853ull, 297567701680321ull}},
+ {{5721354296873625518ull, 476108322688514ull}},
+ {{8266432252240810738ull, 380886658150811ull}},
+ {{2923796987050738267ull, 304709326520649ull}},
+ {{12056772808765001874ull, 487534922433038ull}},
+ {{17024115876495822145ull, 390027937946430ull}},
+ {{13619292701196657716ull, 312022350357144ull}},
+ {{10722821877688921376ull, 499235760571431ull}},
+ {{4888908687409226778ull, 399388608457145ull}},
+ {{3911126949927381422ull, 319510886765716ull}},
+ {{17325849564109541245ull, 511217418825145ull}},
+ {{13860679651287632996ull, 408973935060116ull}},
+ {{7399194906288196074ull, 327179148048093ull}},
+ {{8149363035319203395ull, 523486636876949ull}},
+ {{10208839242997273039ull, 418789309501559ull}},
+ {{11856420209139728754ull, 335031447601247ull}},
+ {{4212877075655924714ull, 536050316161996ull}},
+ {{18127696919492381064ull, 428840252929596ull}},
+ {{10812808720851994528ull, 343072202343677ull}},
+ {{2543098694395549952ull, 548915523749884ull}},
+ {{5723827770258350285ull, 439132418999907ull}},
+ {{15647108660432411197ull, 351305935199925ull}},
+ {{6588629782982306300ull, 562089496319881ull}},
+ {{1581555011643934717ull, 449671597055905ull}},
+ {{1265244009315147773ull, 359737277644724ull}},
+ {{4701544022194028542ull, 287789822115779ull}},
+ {{14901168064994266314ull, 460463715385246ull}},
+ {{8231585637253502728ull, 368370972308197ull}},
+ {{17653314954028533152ull, 294696777846557ull}},
+ {{13487908667478011750ull, 471514844554492ull}},
+ {{3411629304498588754ull, 377211875643594ull}},
+ {{6418652258340781326ull, 301769500514875ull}},
+ {{10269843613345250122ull, 482831200823800ull}},
+ {{8215874890676200097ull, 386264960659040ull}},
+ {{6572699912540960078ull, 309011968527232ull}},
+ {{14205668674807446448ull, 494419149643571ull}},
+ {{7675186125104046835ull, 395535319714857ull}},
+ {{17208195344308968438ull, 316428255771885ull}},
+ {{9086368477184797884ull, 506285209235017ull}},
+ {{18337141225973569277ull, 405028167388013ull}},
+ {{3601666536553124452ull, 324022533910411ull}},
+ {{16830712902710730093ull, 518436054256657ull}},
+ {{6085872692684763428ull, 414748843405326ull}},
+ {{1179349339405900419ull, 331799074724261ull}},
+ {{12955005387275171640ull, 530878519558817ull}},
+ {{2985306680336316666ull, 424702815647054ull}},
+ {{6077594159010963656ull, 339762252517643ull}},
+ {{6034801839675631526ull, 543619604028229ull}},
+ {{8517190286482415544ull, 434895683222583ull}},
+ {{14192449858669753082ull, 347916546578066ull}},
+ {{15329222144387784284ull, 556666474524906ull}},
+ {{8574028900768317104ull, 445333179619925ull}},
+ {{6859223120614653683ull, 356266543695940ull}},
+ {{5487378496491722946ull, 285013234956752ull}},
+ {{12469154409128667038ull, 456021175930803ull}},
+ {{17354021156786754277ull, 364816940744642ull}},
+ {{6504519295945582775ull, 291853552595714ull}},
+ {{17785928502996753086ull, 466965684153142ull}},
+ {{6850045172913581823ull, 373572547322514ull}},
+ {{9169384953072775781ull, 298858037858011ull}},
+ {{7292318295432620604ull, 478172860572818ull}},
+ {{13212552265829917129ull, 382538288458254ull}},
+ {{14259390627405844027ull, 306030630766603ull}},
+ {{678932115397888504ull, 489649009226566ull}},
+ {{15300540951285952096ull, 391719207381252ull}},
+ {{4861735131544941030ull, 313375365905002ull}},
+ {{11468125025213815971ull, 501400585448003ull}},
+ {{16553197649654873423ull, 401120468358402ull}},
+ {{5863860490240078092ull, 320896374686722ull}},
+ {{13071525599126035271ull, 513434199498755ull}},
+ {{10457220479300828217ull, 410747359599004ull}},
+ {{12055125198182572897ull, 328597887679203ull}},
+ {{15598851502350206312ull, 525756620286725ull}},
+ {{12479081201880165049ull, 420605296229380ull}},
+ {{9983264961504132039ull, 336484236983504ull}},
+ {{4905177494180880293ull, 538374779173607ull}},
+ {{14992188439570435204ull, 430699823338885ull}},
+ {{11993750751656348163ull, 344559858671108ull}},
+ {{15500652387908246738ull, 551295773873773ull}},
+ {{1332475466100866421ull, 441036619099019ull}},
+ {{4755329187622603460ull, 352829295279215ull}},
+ {{3804263350098082768ull, 282263436223372ull}},
+ {{9776170174898842752ull, 451621497957395ull}},
+ {{7820936139919074202ull, 361297198365916ull}},
+ {{2567400097193349038ull, 289037758692733ull}},
+ {{418491340767448138ull, 462460413908373ull}},
+ {{7713490702097779157ull, 369968331126698ull}},
+ {{13549490191162043972ull, 295974664901358ull}},
+ {{17989835491117360032ull, 473559463842173ull}},
+ {{3323821948668157056ull, 378847571073739ull}},
+ {{6348406373676435968ull, 303078056858991ull}},
+ {{2778752568398476902ull, 484924890974386ull}},
+ {{16980397313686422814ull, 387939912779508ull}},
+ {{2516271406723407282ull, 310351930223607ull}},
+ {{7715383065499361974ull, 496563088357771ull}},
+ {{2482957637657579256ull, 397250470686217ull}},
+ {{13054412554351794374ull, 317800376548973ull}},
+ {{17197711272220960676ull, 508480602478357ull}},
+ {{6379471388292947894ull, 406784481982686ull}},
+ {{1414228295892447992ull, 325427585586149ull}},
+ {{9641462902911737434ull, 520684136937838ull}},
+ {{15091867951813210594ull, 416547309550270ull}},
+ {{12073494361450568475ull, 333237847640216ull}},
+ {{11938893348837088914ull, 533180556224346ull}},
+ {{5861765864327760808ull, 426544444979477ull}},
+ {{15757459135687939616ull, 341235555983581ull}},
+ {{17833236987616882739ull, 545976889573730ull}},
+ {{14266589590093506191ull, 436781511658984ull}},
+ {{15102620486816715276ull, 349425209327187ull}},
+ {{9406797519939103149ull, 559080334923500ull}},
+ {{7525438015951282519ull, 447264267938800ull}},
+ {{6020350412761026015ull, 357811414351040ull}},
+ {{4816280330208820812ull, 286249131480832ull}},
+ {{11395397343076023623ull, 457998610369331ull}},
+ {{5426969059718908575ull, 366398888295465ull}},
+ {{4341575247775126860ull, 293119110636372ull}},
+ {{10635869211182113299ull, 468990577018195ull}},
+ {{8508695368945690639ull, 375192461614556ull}},
+ {{3117607480414642188ull, 300153969291645ull}},
+ {{4988171968663427501ull, 480246350866632ull}},
+ {{15058584019156472970ull, 384197080693305ull}},
+ {{12046867215325178376ull, 307357664554644ull}},
+ {{8206941100294554433ull, 491772263287431ull}},
+ {{2876204065493733223ull, 393417810629945ull}},
+ {{2300963252394986578ull, 314734248503956ull}},
+ {{14749587648057709495ull, 503574797606329ull}},
+ {{15489018933188077919ull, 402859838085063ull}},
+ {{1323168702324731366ull, 322287870468051ull}},
+ {{13185116367945301155ull, 515660592748881ull}},
+ {{6858744279614330601ull, 412528474199105ull}},
+ {{5486995423691464480ull, 330022779359284ull}},
+ {{16157890307390163815ull, 528036446974854ull}},
+ {{16615661060654041375ull, 422429157579883ull}},
+ {{2224482404297502131ull, 337943326063907ull}},
+ {{7248520661617913732ull, 540709321702251ull}},
+ {{2109467714552420663ull, 432567457361801ull}},
+ {{16444969430609577823ull, 346053965889440ull}},
+ {{7865207015265772901ull, 553686345423105ull}},
+ {{6292165612212618321ull, 442949076338484ull}},
+ {{8723081304512004980ull, 354359261070787ull}},
+ {{18046511487835334953ull, 283487408856629ull}},
+ {{17806371936310804956ull, 453579854170607ull}},
+ {{6866399919564823318ull, 362863883336486ull}},
+ {{1803771120909948331ull, 290291106669189ull}},
+ {{10264731422939737977ull, 464465770670702ull}},
+ {{833087508867969735ull, 371572616536562ull}},
+ {{11734516451320106757ull, 297258093229249ull}},
+ {{7707179877886439842ull, 475612949166799ull}},
+ {{9855092717051062197ull, 380490359333439ull}},
+ {{11573422988382760081ull, 304392287466751ull}},
+ {{11138779151928595483ull, 487027659946802ull}},
+ {{1532325692059055740ull, 389622127957442ull}},
+ {{12293906997872975561ull, 311697702365953ull}},
+ {{15980902381854850575ull, 498716323785525ull}},
+ {{12784721905483880460ull, 398973059028420ull}},
+ {{10227777524387104368ull, 319178447222736ull}},
+ {{8985746409535546343ull, 510685515556378ull}},
+ {{14567294757112257721ull, 408548412445102ull}},
+ {{4275138176205985530ull, 326838729956082ull}},
+ {{10529569896671487171ull, 522941967929731ull}},
+ {{4734307102595279414ull, 418353574343785ull}},
+ {{3787445682076223531ull, 334682859475028ull}},
+ {{2370564276580047327ull, 535492575160045ull}},
+ {{1896451421264037861ull, 428394060128036ull}},
+ {{16274556395978871582ull, 342715248102428ull}},
+ {{3903197345114732592ull, 548344396963886ull}},
+ {{17879953135059427366ull, 438675517571108ull}},
+ {{3235916063821810923ull, 350940414056887ull}},
+ {{8866814516856807801ull, 561504662491019ull}},
+ {{10782800428227356564ull, 449203729992815ull}},
+ {{8626240342581885251ull, 359362983994252ull}},
+ {{17969038718291239170ull, 287490387195401ull}},
+ {{2925020246072610410ull, 459984619512643ull}},
+ {{9718713826341908974ull, 367987695610114ull}},
+ {{11464319875815437503ull, 294390156488091ull}},
+ {{10964214171820879358ull, 471024250380946ull}},
+ {{5082022522714793163ull, 376819400304757ull}},
+ {{15133664462397565500ull, 301455520243805ull}},
+ {{5767119066126553184ull, 482328832390089ull}},
+ {{8303044067643152871ull, 385863065912071ull}},
+ {{2953086439372611973ull, 308690452729657ull}},
+ {{8414287117738089480ull, 493904724367451ull}},
+ {{3042080879448561261ull, 395123779493961ull}},
+ {{17191059962526490302ull, 316099023595168ull}},
+ {{5369603051590922544ull, 505758437752270ull}},
+ {{4295682441272738035ull, 404606750201816ull}},
+ {{18193941211985831721ull, 323685400161452ull}},
+ {{14352910680209689460ull, 517896640258324ull}},
+ {{15171677358909661891ull, 414317312206659ull}},
+ {{15826690701869639836ull, 331453849765327ull}},
+ {{10565309864023782445ull, 530326159624524ull}},
+ {{12141596705960936279ull, 424260927699619ull}},
+ {{13402626179510659347ull, 339408742159695ull}},
+ {{2997457813507503339ull, 543053987455513ull}},
+ {{9776663880289823317ull, 434443189964410ull}},
+ {{7821331104231858654ull, 347554551971528ull}},
+ {{8824780952029063523ull, 556087283154445ull}},
+ {{7059824761623250819ull, 444869826523556ull}},
+ {{1958510994556690332ull, 355895861218845ull}},
+ {{1566808795645352265ull, 284716688975076ull}},
+ {{13574940517258294594ull, 455546702360121ull}},
+ {{7170603599064725352ull, 364437361888097ull}},
+ {{16804529323477511251ull, 291549889510477ull}},
+ {{12129851658596376709ull, 466479823216764ull}},
+ {{13393230141619011690ull, 373183858573411ull}},
+ {{7025235298553299029ull, 298547086858729ull}},
+ {{172330033459547477ull, 477675338973967ull}},
+ {{11205910470993368951ull, 382140271179173ull}},
+ {{16343426006278515807ull, 305712216943338ull}},
+ {{4013388721594163353ull, 489139547109342ull}},
+ {{14278757421501061652ull, 391311637687473ull}},
+ {{354959492975118352ull, 313049310149979ull}},
+ {{7946632818244010009ull, 500878896239966ull}},
+ {{2667957439853297684ull, 400703116991973ull}},
+ {{9513063581366458794ull, 320562493593578ull}},
+ {{11531552915444423747ull, 512899989749725ull}},
+ {{9225242332355538998ull, 410319991799780ull}},
+ {{7380193865884431198ull, 328255993439824ull}},
+ {{740263741189358947ull, 525209589503719ull}},
+ {{4281559807693397481ull, 420167671602975ull}},
+ {{3425247846154717985ull, 336134137282380ull}},
+ {{5480396553847548776ull, 537814619651808ull}},
+ {{11763014872561859667ull, 430251695721446ull}},
+ {{5721063083307577410ull, 344201356577157ull}},
+ {{12843049748034034180ull, 550722170523451ull}},
+ {{6585090983685317021ull, 440577736418761ull}},
+ {{1578723972206343293ull, 352462189135009ull}},
+ {{4952327992506984958ull, 281969751308007ull}},
+ {{11613073602753086256ull, 451151602092811ull}},
+ {{5601110067460558681ull, 360921281674249ull}},
+ {{8170236868710357268ull, 288737025339399ull}},
+ {{2004332545710840660ull, 461979240543039ull}},
+ {{5292814851310582851ull, 369583392434431ull}},
+ {{544903066306555957ull, 295666713947545ull}},
+ {{871844906090489532ull, 473066742316072ull}},
+ {{11765522369098122595ull, 378453393852857ull}},
+ {{2033720265794677430ull, 302762715082286ull}},
+ {{14321998869497214857ull, 484420344131657ull}},
+ {{4078901466113951239ull, 387536275305326ull}},
+ {{18020516431858802284ull, 310029020244260ull}},
+ {{10386082217264532039ull, 496046432390817ull}},
+ {{930168144327804985ull, 396837145912654ull}},
+ {{4433483330204154311ull, 317469716730123ull}},
+ {{3404224513584736575ull, 507951546768197ull}},
+ {{13791426055093520229ull, 406361237414557ull}},
+ {{3654443214590995537ull, 325088989931646ull}},
+ {{16915155587571323829ull, 520142383890633ull}},
+ {{2464078025831328093ull, 416113907112507ull}},
+ {{13039308864890793444ull, 332891125690005ull}},
+ {{2416150110115717895ull, 532625801104009ull}},
+ {{5622268902834484639ull, 426100640883207ull}},
+ {{15565861566493318681ull, 340880512706565ull}},
+ {{6458634432679758274ull, 545408820330505ull}},
+ {{5166907546143806619ull, 436327056264404ull}},
+ {{7822874851656955618ull, 349061645011523ull}},
+ {{8827250947909218666ull, 558498632018437ull}},
+ {{18129847202553105902ull, 446798905614749ull}},
+ {{18193226576784395045ull, 357439124491799ull}},
+ {{18243930076169426359ull, 285951299593439ull}},
+ {{18122241677645351205ull, 457522079349503ull}},
+ {{3429746897890549994ull, 366017663479603ull}},
+ {{10122495147796260642ull, 292814130783682ull}},
+ {{1438596977506375734ull, 468502609253892ull}},
+ {{12218924026230831557ull, 374802087403113ull}},
+ {{17153836850468485892ull, 299841669922490ull}},
+ {{8999394887040025811ull, 479746671875985ull}},
+ {{7199515909632020649ull, 383797337500788ull}},
+ {{13138310357189437166ull, 307037870000630ull}},
+ {{2574552497793547849ull, 491260592001009ull}},
+ {{5748990812976748602ull, 393008473600807ull}},
+ {{15667239094607129851ull, 314406778880645ull}},
+ {{6620838477661856147ull, 503050846209033ull}},
+ {{12675368411613305564ull, 402440676967226ull}},
+ {{6450945914548734128ull, 321952541573781ull}},
+ {{2942815833794153958ull, 515124066518050ull}},
+ {{2354252667035323166ull, 412099253214440ull}},
+ {{1883402133628258533ull, 329679402571552ull}},
+ {{6702792228547123976ull, 527487044114483ull}},
+ {{12740931412321519827ull, 421989635291586ull}},
+ {{6503396315115305539ull, 337591708233269ull}},
+ {{17784131733668309508ull, 540146733173230ull}},
+ {{14227305386934647607ull, 432117386538584ull}},
+ {{15071193124289628408ull, 345693909230867ull}},
+ {{9356513739895764161ull, 553110254769388ull}},
+ {{14863908621400431975ull, 442488203815510ull}},
+ {{11891126897120345580ull, 353990563052408ull}},
+ {{16891599147180097110ull, 283192450441926ull}},
+ {{1201116932294783114ull, 453107920707083ull}},
+ {{8339591175319647138ull, 362486336565666ull}},
+ {{2982324125513807387ull, 289989069252533ull}},
+ {{1082369786080181496ull, 463982510804053ull}},
+ {{8244593458347965843ull, 371186008643242ull}},
+ {{17663721210904103644ull, 296948806914593ull}},
+ {{6125861048995103892ull, 475118091063350ull}},
+ {{4900688839196083113ull, 380094472850680ull}},
+ {{3920551071356866490ull, 304075578280544ull}},
+ {{13651579343654807031ull, 486520925248870ull}},
+ {{10921263474923845625ull, 389216740199096ull}},
+ {{5047661965197166177ull, 311373392159277ull}},
+ {{11765607959057376206ull, 498197427454843ull}},
+ {{16791183996729721611ull, 398557941963874ull}},
+ {{17122296012125687612ull, 318846353571099ull}},
+ {{16327627175175369210ull, 510154165713759ull}},
+ {{16751450554882205691ull, 408123332571007ull}},
+ {{6022462814421943906ull, 326498666056806ull}},
+ {{2257242873591289604ull, 522397865690890ull}},
+ {{1805794298873031683ull, 417918292552712ull}},
+ {{12512681883324156316ull, 334334634042169ull}},
+ {{8952244569092919136ull, 534935414467471ull}},
+ {{3472446840532424986ull, 427948331573977ull}},
+ {{13846003916651670958ull, 342358665259181ull}},
+ {{14774908637158852887ull, 547773864414690ull}},
+ {{11819926909727082310ull, 438219091531752ull}},
+ {{2077243898297845201ull, 350575273225402ull}},
+ {{7012939052018462645ull, 560920437160643ull}},
+ {{12989048871098590763ull, 448736349728514ull}},
+ {{14080587911620782933ull, 358989079782811ull}},
+ {{7575121514554716023ull, 287191263826249ull}},
+ {{1052147979061814668ull, 459506022121999ull}},
+ {{4531067197991362057ull, 367604817697599ull}},
+ {{7314202573134999969ull, 294083854158079ull}},
+ {{634677672790268981ull, 470534166652927ull}},
+ {{11575788582457946154ull, 376427333322341ull}},
+ {{5571282051224446600ull, 301141866657873ull}},
+ {{5224702467217204237ull, 481826986652597ull}},
+ {{15247808417999494359ull, 385461589322077ull}},
+ {{4819549104915774841ull, 308369271457662ull}},
+ {{11400627382607150069ull, 493390834332259ull}},
+ {{12809850720827630378ull, 394712667465807ull}},
+ {{2869182947178283656ull, 315770133972646ull}},
+ {{15658739159710984820ull, 505232214356233ull}},
+ {{1458944883543056886ull, 404185771484987ull}},
+ {{12235202351060176478ull, 323348617187989ull}},
+ {{8508277317470551396ull, 517357787500783ull}},
+ {{14185319483460261763ull, 413886230000626ull}},
+ {{7658906772026299087ull, 331108984000501ull}},
+ {{4875553205758257894ull, 529774374400802ull}},
+ {{14968489008832337284ull, 423819499520641ull}},
+ {{8285442392323959504ull, 339055599616513ull}},
+ {{9567359012976424884ull, 542488959386421ull}},
+ {{3964538395639229584ull, 433991167509137ull}},
+ {{14239677160737114637ull, 347192934007309ull}},
+ {{11715437012953652449ull, 555508694411695ull}},
+ {{9372349610362921959ull, 444406955529356ull}},
+ {{3808530873548427244ull, 355525564423485ull}},
+ {{3046824698838741795ull, 284420451538788ull}},
+ {{1185570703400076549ull, 455072722462061ull}},
+ {{15705851821687702532ull, 364058177969648ull}},
+ {{1496635013124431056ull, 291246542375719ull}},
+ {{9773313650482910336ull, 465994467801150ull}},
+ {{7818650920386328269ull, 372795574240920ull}},
+ {{6254920736309062615ull, 298236459392736ull}},
+ {{2629175548610679538ull, 477178335028378ull}},
+ {{9482038068372364277ull, 381742668022702ull}},
+ {{206932825214070775ull, 305394134418162ull}},
+ {{4020441335084423563ull, 488630615069059ull}},
+ {{6905701882809449174ull, 390904492055247ull}},
+ {{16592607950473290309ull, 312723593644197ull}},
+ {{11790777461789623201ull, 500357749830716ull}},
+ {{5743273154689788238ull, 400286199864573ull}},
+ {{11973316153235651236ull, 320228959891658ull}},
+ {{15467957030435131655ull, 512366335826653ull}},
+ {{1306319180122374355ull, 409893068661323ull}},
+ {{8423752973581720130ull, 327914454929058ull}},
+ {{9788655942988841885ull, 524663127886493ull}},
+ {{15209622383874894154ull, 419730502309194ull}},
+ {{15857046721841825647ull, 335784401847355ull}},
+ {{6924530681237369419ull, 537255042955769ull}},
+ {{9228973359731805858ull, 429804034364615ull}},
+ {{7383178687785444686ull, 343843227491692ull}},
+ {{15502434715198621822ull, 550149163986707ull}},
+ {{5023250142675076811ull, 440119331189366ull}},
+ {{329251299398151125ull, 352095464951493ull}},
+ {{7642098669002341547ull, 281676371961194ull}},
+ {{1159311426178015505ull, 450682195137911ull}},
+ {{15684844399910053697ull, 360545756110328ull}},
+ {{1479829075702311988ull, 288436604888263ull}},
+ {{17125121780091340474ull, 461498567821220ull}},
+ {{13700097424073072379ull, 369198854256976ull}},
+ {{7270729124516547580ull, 295359083405581ull}},
+ {{4254468969742655482ull, 472574533448930ull}},
+ {{3403575175794124385ull, 378059626759144ull}},
+ {{6412208955377209831ull, 302447701407315ull}},
+ {{10259534328603535730ull, 483916322251704ull}},
+ {{11896976277624738907ull, 387133057801363ull}},
+ {{16896278651583611772ull, 309706446241090ull}},
+ {{8587301768824227220ull, 495530313985745ull}},
+ {{6869841415059381776ull, 396424251188596ull}},
+ {{1806524317305595097ull, 317139400950877ull}},
+ {{6579787722430862479ull, 507423041521403ull}},
+ {{12642527807428510630ull, 405938433217122ull}},
+ {{2735324616458987857ull, 324750746573698ull}},
+ {{687170571592470248ull, 519601194517917ull}},
+ {{11617782901499707168ull, 415680955614333ull}},
+ {{16672923950683586381ull, 332544764491466ull}},
+ {{851236617900365947ull, 532071623186347ull}},
+ {{11749035738546023727ull, 425657298549077ull}},
+ {{2020530961352998335ull, 340525838839262ull}},
+ {{6922198352906707660ull, 544841342142819ull}},
+ {{9227107497067276451ull, 435873073714255ull}},
+ {{7381685997653821161ull, 348698458971404ull}},
+ {{742651152020382888ull, 557917534354247ull}},
+ {{11662167365842037280ull, 446334027483397ull}},
+ {{1951036263189809178ull, 357067221986718ull}},
+ {{8939526640035667988ull, 285653777589374ull}},
+ {{3235196179831337812ull, 457046044142999ull}},
+ {{6277505758606980573ull, 365636835314399ull}},
+ {{8711353421627494781ull, 292509468251519ull}},
+ {{2870119030378260681ull, 468015149202431ull}},
+ {{17053490483270249837ull, 374412119361944ull}},
+ {{17332141201358110193ull, 299529695489555ull}},
+ {{9284681848463424693ull, 479247512783289ull}},
+ {{11117094293512650077ull, 383398010226631ull}},
+ {{5204326620068209739ull, 306718408181305ull}},
+ {{8326922592109135582ull, 490749453090088ull}},
+ {{14040235703171129112ull, 392599562472070ull}},
+ {{11232188562536903290ull, 314079649977656ull}},
+ {{10592804070575224617ull, 502527439964250ull}},
+ {{8474243256460179694ull, 402021951971400ull}},
+ {{6779394605168143755ull, 321617561577120ull}},
+ {{10847031368269030008ull, 514588098523392ull}},
+ {{1298927465131403360ull, 411670478818714ull}},
+ {{4728490786847033011ull, 329336383054971ull}},
+ {{186887629471432172ull, 526938212887954ull}},
+ {{3838858918319056060ull, 421550570310363ull}},
+ {{10449784764139065495ull, 337240456248290ull}},
+ {{16719655622622504792ull, 539584729997264ull}},
+ {{17065073312839914156ull, 431667783997811ull}},
+ {{9962709835530021002ull, 345334227198249ull}},
+ {{4872289292622302634ull, 552534763517199ull}},
+ {{7587180248839752430ull, 442027810813759ull}},
+ {{9759093013813712267ull, 353622248651007ull}},
+ {{428576781567149167ull, 282897798920806ull}},
+ {{11753769294733169637ull, 452636478273289ull}},
+ {{13092364250528446033ull, 362109182618631ull}},
+ {{6784542585680846503ull, 289687346094905ull}},
+ {{10855268137089354405ull, 463499753751848ull}},
+ {{16062912139155304170ull, 370799803001478ull}},
+ {{1782283267098512367ull, 296639842401183ull}},
+ {{17609048486325261080ull, 474623747841892ull}},
+ {{6708541159576388217ull, 379698998273514ull}},
+ {{9056181742403020897ull, 303759198618811ull}},
+ {{7111193158361012789ull, 486014717790098ull}},
+ {{13067652156172630878ull, 388811774232078ull}},
+ {{17832819354421925348ull, 311049419385662ull}},
+ {{13775115708107439265ull, 497679071017060ull}},
+ {{11020092566485951412ull, 398143256813648ull}},
+ {{16194771682672581776ull, 318514605450918ull}},
+ {{3775541803824668902ull, 509623368721470ull}},
+ {{3020433443059735122ull, 407698694977176ull}},
+ {{17173742013415429390ull, 326158955981740ull}},
+ {{9031243147755135408ull, 521854329570785ull}},
+ {{7224994518204108327ull, 417483463656628ull}},
+ {{13158693244047107308ull, 333986770925302ull}},
+ {{6296513931507730400ull, 534378833480484ull}},
+ {{8726559959948094643ull, 427503066784387ull}},
+ {{18049294412184206684ull, 342002453427509ull}},
+ {{17810824615268999725ull, 547203925484015ull}},
+ {{14248659692215199780ull, 437763140387212ull}},
+ {{4020230124288339177ull, 350210512309770ull}},
+ {{6432368198861342684ull, 560336819695632ull}},
+ {{16213941003314805117ull, 448269455756505ull}},
+ {{12971152802651844093ull, 358615564605204ull}},
+ {{14066271056863385598ull, 286892451684163ull}},
+ {{369940802529955017ull, 459027922694662ull}},
+ {{11363999086249694983ull, 367222338155729ull}},
+ {{12780548083741666310ull, 293777870524583ull}},
+ {{16759528119244755773ull, 470044592839333ull}},
+ {{2339576051170073649ull, 376035674271467ull}},
+ {{12939707285161789888ull, 300828539417173ull}},
+ {{17014182841516953498ull, 481325663067477ull}},
+ {{6232648643729742152ull, 385060530453982ull}},
+ {{16054165359209524691ull, 308048424363185ull}},
+ {{7239920501025687890ull, 492877478981097ull}},
+ {{16859982845046281282ull, 394301983184877ull}},
+ {{6109288646553204379ull, 315441586547902ull}},
+ {{13464210649227037330ull, 504706538476643ull}},
+ {{18150066148865450510ull, 403765230781314ull}},
+ {{18209401733834270731ull, 323012184625051ull}},
+ {{3309601070941460908ull, 516819495400083ull}},
+ {{10026378486236989373ull, 413455596320066ull}},
+ {{4331753974247681175ull, 330764477056053ull}},
+ {{3241457544054379557ull, 529223163289685ull}},
+ {{2593166035243503645ull, 423378530631748ull}},
+ {{9453230457678623562ull, 338702824505398ull}},
+ {{11435819917543887377ull, 541924519208637ull}},
+ {{1769958304551289255ull, 433539615366910ull}},
+ {{1415966643641031404ull, 346831692293528ull}},
+ {{17022941888793291540ull, 554930707669644ull}},
+ {{17307702325776543555ull, 443944566135715ull}},
+ {{13846161860621234844ull, 355155652908572ull}},
+ {{3698231859013167228ull, 284124522326858ull}},
+ {{2227822159679157243ull, 454599235722973ull}},
+ {{9160955357227146440ull, 363679388578378ull}},
+ {{14707461915265537799ull, 290943510862702ull}},
+ {{8774543805457219185ull, 465509617380324ull}},
+ {{10708983859107685671ull, 372407693904259ull}},
+ {{12256535902028058860ull, 297926155123407ull}},
+ {{4853062184277252884ull, 476681848197452ull}},
+ {{14950496191647533277ull, 381345478557961ull}},
+ {{8271048138576116298ull, 305076382846369ull}},
+ {{2165630577496055107ull, 488122212554191ull}},
+ {{16489899720964485379ull, 390497770043352ull}},
+ {{5813222147287767656ull, 312398216034682ull}},
+ {{12990504250402338574ull, 499837145655491ull}},
+ {{6703054585579960536ull, 399869716524393ull}},
+ {{12741141297947789075ull, 319895773219514ull}},
+ {{9317779632490731550ull, 511833237151223ull}},
+ {{14832921335476405887ull, 409466589720978ull}},
+ {{798290624155393740ull, 327573271776783ull}},
+ {{16034660257616271276ull, 524117234842852ull}},
+ {{5449030576609196375ull, 419293787874282ull}},
+ {{15427270905513088069ull, 335435030299425ull}},
+ {{6236889375111389295ull, 536696048479081ull}},
+ {{1300162685347201113ull, 429356838783265ull}},
+ {{1040130148277760890ull, 343485471026612ull}},
+ {{5353557051986327748ull, 549576753642579ull}},
+ {{7972194456330972521ull, 439661402914063ull}},
+ {{13756453194548598663ull, 351729122331250ull}},
+ {{3563581037568206246ull, 562766595730001ull}},
+ {{17608260089022206289ull, 450213276584000ull}},
+ {{14086608071217765031ull, 360170621267200ull}},
+ {{11269286456974212025ull, 288136497013760ull}},
+ {{18030858331158739240ull, 461018395222016ull}},
+ {{10735337850185081069ull, 368814716177613ull}},
+ {{15966967909631885501ull, 295051772942090ull}},
+ {{7100404581701465186ull, 472082836707345ull}},
+ {{5680323665361172149ull, 377666269365876ull}},
+ {{854910117547027396ull, 302133015492701ull}},
+ {{12435902632300974803ull, 483412824788321ull}},
+ {{6259373291098869519ull, 386730259830657ull}},
+ {{16075545077104826585ull, 309384207864525ull}},
+ {{7274128049658170920ull, 495014732583241ull}},
+ {{2129953624984626413ull, 396011786066593ull}},
+ {{9082660529471521777ull, 316809428853274ull}},
+ {{3464210402928703873ull, 506895086165239ull}},
+ {{6460717137084873422ull, 405516068932191ull}},
+ {{1479224894925988414ull, 324412855145753ull}},
+ {{17124155090849222756ull, 519060568233204ull}},
+ {{17388672887421288528ull, 415248454586563ull}},
+ {{2842891865711299852ull, 332198763669251ull}},
+ {{15616673429363810734ull, 531518021870801ull}},
+ {{8803989928749138264ull, 425214417496641ull}},
+ {{3353843128257400288ull, 340171533997313ull}},
+ {{1676800190469930137ull, 544274454395701ull}},
+ {{16098835411343585403ull, 435419563516560ull}},
+ {{12879068329074868322ull, 348335650813248ull}},
+ {{16917160511777878992ull, 557337041301197ull}},
+ {{6155030779938482547ull, 445869633040958ull}},
+ {{12302722253434606684ull, 356695706432766ull}},
+ {{6152828988005775024ull, 285356565146213ull}},
+ {{6155177566067329716ull, 456570504233941ull}},
+ {{1234793238111953449ull, 365256403387153ull}},
+ {{8366532219973383406ull, 292205122709722ull}},
+ {{17075800366699323773ull, 467528196335555ull}},
+ {{13660640293359459018ull, 374022557068444ull}},
+ {{14617861049429477537ull, 299218045654755ull}},
+ {{4941833605377612444ull, 478748873047609ull}},
+ {{7642815699044000278ull, 382999098438087ull}},
+ {{17182299003460931192ull, 306399278750469ull}},
+ {{16423631961311758938ull, 490238846000751ull}},
+ {{9449556754307496827ull, 392191076800601ull}},
+ {{3870296588704087139ull, 313752861440481ull}},
+ {{17260520986152270392ull, 502004578304769ull}},
+ {{17497765603663726636ull, 401603662643815ull}},
+ {{13998212482930981309ull, 321282930115052ull}},
+ {{7639744713721928802ull, 514052688184084ull}},
+ {{9801144585719453365ull, 411242150547267ull}},
+ {{462218039091742045ull, 328993720437814ull}},
+ {{8118246492030607919ull, 526389952700502ull}},
+ {{17562643637850217305ull, 421111962160401ull}},
+ {{10360766095538263520ull, 336889569728321ull}},
+ {{9198528123377400987ull, 539023311565314ull}},
+ {{11048171313443831112ull, 431218649252251ull}},
+ {{5149188236013154567ull, 344974919401801ull}},
+ {{860003548137226661ull, 551959871042882ull}},
+ {{11756049282735512298ull, 441567896834305ull}},
+ {{9404839426188409838ull, 353254317467444ull}},
+ {{11213220355692638194ull, 282603453973955ull}},
+ {{17941152569108221110ull, 452165526358328ull}},
+ {{3284875611060845918ull, 361732421086663ull}},
+ {{10006598118332497381ull, 289385936869330ull}},
+ {{16010556989331995810ull, 463017498990928ull}},
+ {{1740399147239865678ull, 370413999192743ull}},
+ {{8771016947275713189ull, 296331199354194ull}},
+ {{2965580671415410133ull, 474129918966711ull}},
+ {{17129859796099969399ull, 379303935173368ull}},
+ {{2635841392654244550ull, 303443148138695ull}},
+ {{4217346228246791280ull, 485509037021912ull}},
+ {{14441923426823163993ull, 388407229617529ull}},
+ {{15242887556200441518ull, 310725783694023ull}},
+ {{2252527201469244489ull, 497161253910438ull}},
+ {{9180719390659216238ull, 397729003128350ull}},
+ {{7344575512527372990ull, 318183202502680ull}},
+ {{11751320820043796785ull, 509093124004288ull}},
+ {{16779754285518858074ull, 407274499203430ull}},
+ {{13423803428415086459ull, 325819599362744ull}},
+ {{10410039041238407365ull, 521311358980391ull}},
+ {{4638682418248815569ull, 417049087184313ull}},
+ {{11089643564082873101ull, 333639269747450ull}},
+ {{17743429702532596963ull, 533822831595920ull}},
+ {{14194743762026077570ull, 427058265276736ull}},
+ {{7666446194878951733ull, 341646612221389ull}},
+ {{1198267467580591803ull, 546634579554223ull}},
+ {{8337311603548294089ull, 437307663643378ull}},
+ {{14048546912322455917ull, 349846130914702ull}},
+ {{7720279800748288175ull, 559753809463524ull}},
+ {{9865572655340540863ull, 447803047570819ull}},
+ {{11581806939014343014ull, 358242438056655ull}},
+ {{9265445551211474411ull, 286593950445324ull}},
+ {{3756666437712628088ull, 458550320712519ull}},
+ {{6694681964912012793ull, 366840256570015ull}},
+ {{5355745571929610235ull, 293472205256012ull}},
+ {{12258541729829286699ull, 469555528409619ull}},
+ {{13496182198605339682ull, 375644422727695ull}},
+ {{10796945758884271746ull, 300515538182156ull}},
+ {{9896415584731014147ull, 480824861091450ull}},
+ {{7917132467784811318ull, 384659888873160ull}},
+ {{6333705974227849054ull, 307727911098528ull}},
+ {{6444580744022648163ull, 492364657757645ull}},
+ {{5155664595218118531ull, 393891726206116ull}},
+ {{435182861432584501ull, 315113380964893ull}},
+ {{15453687837259776495ull, 504181409543828ull}},
+ {{1294903825582090226ull, 403345127635063ull}},
+ {{8414620689949492827ull, 322676102108050ull}},
+ {{13463393103919188524ull, 516281763372880ull}},
+ {{10770714483135350819ull, 413025410698304ull}},
+ {{12305920401250190978ull, 330420328558643ull}},
+ {{16000123827258395243ull, 528672525693829ull}},
+ {{16489447876548626517ull, 422938020555063ull}},
+ {{2123511857013170244ull, 338350416444051ull}},
+ {{14465665415446803360ull, 541360666310481ull}},
+ {{7883183517615532365ull, 433088533048385ull}},
+ {{6306546814092425892ull, 346470826438708ull}},
+ {{6401126087805971104ull, 554353322301933ull}},
+ {{12499598499728597530ull, 443482657841546ull}},
+ {{6310329985040967700ull, 354786126273237ull}},
+ {{16116310432258505130ull, 283828901018589ull}},
+ {{14718050247387877238ull, 454126241629743ull}},
+ {{706393753684570821ull, 363300993303795ull}},
+ {{565115002947656657ull, 290640794643036ull}},
+ {{11972230448941981621ull, 465025271428857ull}},
+ {{2199086729669764650ull, 372020217143086ull}},
+ {{16516664642703453013ull, 297616173714468ull}},
+ {{4290570539874062881ull, 476185877943150ull}},
+ {{3432456431899250305ull, 380948702354520ull}},
+ {{2745965145519400244ull, 304758961883616ull}},
+ {{15461590677056771360ull, 487614339013785ull}},
+ {{12369272541645417088ull, 390091471211028ull}},
+ {{17274115662800154317ull, 312073176968822ull}},
+ {{12881189801512605614ull, 499317083150116ull}},
+ {{6615603026468174168ull, 399453666520093ull}},
+ {{12671180050658359981ull, 319562933216074ull}},
+ {{9205841636827645000ull, 511300693145719ull}},
+ {{11054022124204026323ull, 409040554516575ull}},
+ {{8843217699363221058ull, 327232443613260ull}},
+ {{14149148318981153694ull, 523571909781216ull}},
+ {{7629969840443012632ull, 418857527824973ull}},
+ {{13482673501838230752ull, 335086022259978ull}},
+ {{17882928788199258880ull, 536137635615965ull}},
+ {{14306343030559407104ull, 428910108492772ull}},
+ {{4066376794963705036ull, 343128086794218ull}},
+ {{2816854057200017735ull, 549004938870749ull}},
+ {{5942832060501924511ull, 439203951096599ull}},
+ {{8443614463143449932ull, 351363160877279ull}},
+ {{2441736696803788922ull, 562181057403647ull}},
+ {{13021435801668762107ull, 449744845922917ull}},
+ {{3038451011851189039ull, 359795876738334ull}},
+ {{6120109624222861555ull, 287836701390667ull}},
+ {{13481524213498488811ull, 460538722225067ull}},
+ {{3406521741314970402ull, 368430977780054ull}},
+ {{6414566207793886645ull, 294744782224043ull}},
+ {{6573957117728308309ull, 471591651558469ull}},
+ {{8948514508924556970ull, 377273321246775ull}},
+ {{7158811607139645576ull, 301818656997420ull}},
+ {{11454098571423432922ull, 482909851195872ull}},
+ {{1784581227654925691ull, 386327880956698ull}},
+ {{8806362611607761199ull, 309062304765358ull}},
+ {{10400831363830507596ull, 494499687624573ull}},
+ {{15699362720548226723ull, 395599750099658ull}},
+ {{1491443732212850409ull, 316479800079727ull}},
+ {{6075658786282470977ull, 506367680127563ull}},
+ {{12239224658509797428ull, 405094144102050ull}},
+ {{9791379726807837942ull, 324075315281640ull}},
+ {{15666207562892540708ull, 518520504450624ull}},
+ {{16222314865055942890ull, 414816403560499ull}},
+ {{16667200706786664635ull, 331853122848399ull}},
+ {{15599474686632932446ull, 530964996557439ull}},
+ {{16168928564048256280ull, 424771997245951ull}},
+ {{9245794036496694701ull, 339817597796761ull}},
+ {{7414572828910890875ull, 543708156474818ull}},
+ {{13310355892612533346ull, 434966525179854ull}},
+ {{14337633528831937000ull, 347973220143883ull}},
+ {{804120757679637262ull, 556757152230214ull}},
+ {{4332645420885620132ull, 445405721784171ull}},
+ {{18223511595676137399ull, 356324577427336ull}},
+ {{10889460461798999596ull, 285059661941869ull}},
+ {{6355090294652668384ull, 456095459106991ull}},
+ {{1394723420980224384ull, 364876367285593ull}},
+ {{8494476366268000153ull, 291901093828474ull}},
+ {{2523115741803069276ull, 467041750125559ull}},
+ {{5707841408184365744ull, 373633400100447ull}},
+ {{15634319570773223564ull, 298906720080357ull}},
+ {{10257516054269516411ull, 478250752128572ull}},
+ {{827315213931792482ull, 382600601702858ull}},
+ {{8040549800629254632ull, 306080481362286ull}},
+ {{5486182051522986765ull, 489728770179658ull}},
+ {{11767643270702210058ull, 391783016143726ull}},
+ {{5724765801819857723ull, 313426412914981ull}},
+ {{1780927653427951711ull, 501482260663970ull}},
+ {{1424742122742361369ull, 401185808531176ull}},
+ {{15897188957161530388ull, 320948646824940ull}},
+ {{6988758257748897005ull, 513517834919905ull}},
+ {{5591006606199117604ull, 410814267935924ull}},
+ {{8162154099701204406ull, 328651414348739ull}},
+ {{1991400115296196080ull, 525842262957983ull}},
+ {{8971817721720777511ull, 420673810366386ull}},
+ {{3488105362634711685ull, 336539048293109ull}},
+ {{12959666209699359343ull, 538462477268974ull}},
+ {{14057081782501397798ull, 430769981815179ull}},
+ {{14935014240743028561ull, 344615985452143ull}},
+ {{1759929896737383759ull, 551385576723430ull}},
+ {{1407943917389907007ull, 441108461378744ull}},
+ {{4815703948653835929ull, 352886769102995ull}},
+ {{3852563158923068743ull, 282309415282396ull}},
+ {{17232147498502640958ull, 451695064451833ull}},
+ {{2717671554576381797ull, 361356051561467ull}},
+ {{13242183687886836407ull, 289084841249173ull}},
+ {{17498145085877027929ull, 462535745998677ull}},
+ {{6619818439217801696ull, 370028596798942ull}},
+ {{16363901195599972327ull, 296022877439153ull}},
+ {{4046149024508493784ull, 473636603902646ull}},
+ {{17994314478574436320ull, 378909283122116ull}},
+ {{10706102768117638732ull, 303127426497693ull}},
+ {{13440415614246311649ull, 485003882396309ull}},
+ {{14441681306138959642ull, 388003105917047ull}},
+ {{4174647415427347067ull, 310402484733638ull}},
+ {{2990087049941844985ull, 496643975573821ull}},
+ {{17149464898921117280ull, 397315180459056ull}},
+ {{10030223104394983501ull, 317852144367245ull}},
+ {{16048356967031973602ull, 508563430987592ull}},
+ {{5459987944141758235ull, 406850744790074ull}},
+ {{8057339170055316911ull, 325480595832059ull}},
+ {{1823696227862776089ull, 520768953331295ull}},
+ {{1458956982290220871ull, 416615162665036ull}},
+ {{15924560844799817989ull, 333292130132028ull}},
+ {{3343204463228246844ull, 533267408211246ull}},
+ {{17431958829550238768ull, 426613926568996ull}},
+ {{10256218248898280691ull, 341291141255197ull}},
+ {{1652553939269607813ull, 546065826008316ull}},
+ {{16079438410383327543ull, 436852660806652ull}},
+ {{5484853098822841388ull, 349482128645322ull}},
+ {{12465113772858456544ull, 559171405832515ull}},
+ {{9972091018286765235ull, 447337124666012ull}},
+ {{598975185145591542ull, 357869699732810ull}},
+ {{479180148116473233ull, 286295759786248ull}},
+ {{15524083495953998467ull, 458073215657996ull}},
+ {{8729917982021288450ull, 366458572526397ull}},
+ {{18051980829842761729ull, 293166858021117ull}},
+ {{14125774068780777475ull, 469066972833788ull}},
+ {{232572810798891010ull, 375253578267031ull}},
+ {{14943453507606754101ull, 300202862613624ull}},
+ {{12841479167945075592ull, 480324580181799ull}},
+ {{13962532149097970797ull, 384259664145439ull}},
+ {{14859374534020286960ull, 307407731316351ull}},
+ {{16396301624948638490ull, 491852370106162ull}},
+ {{5738343670475090146ull, 393481896084930ull}},
+ {{4590674936380072117ull, 314785516867944ull}},
+ {{14723777527691936033ull, 503656826988710ull}},
+ {{11779022022153548826ull, 402925461590968ull}},
+ {{16801915247206659707ull, 322340369272774ull}},
+ {{15815017951304924563ull, 515744590836439ull}},
+ {{16341363175785849973ull, 412595672669151ull}},
+ {{9383741725886769655ull, 330076538135321ull}},
+ {{7635289131935010802ull, 528122461016514ull}},
+ {{9797580120289918965ull, 422497968813211ull}},
+ {{4148715281490024849ull, 337998375050569ull}},
+ {{14016642079867860405ull, 540797400080910ull}},
+ {{11213313663894288324ull, 432637920064728ull}},
+ {{16349348560599251305ull, 346110336051782ull}},
+ {{11401562437991160796ull, 553776537682852ull}},
+ {{1742552320909107990ull, 443021230146282ull}},
+ {{12462088300953017362ull, 354416984117025ull}},
+ {{9969670640762413889ull, 283533587293620ull}},
+ {{15951473025219862223ull, 453653739669792ull}},
+ {{5382480790692069132ull, 362922991735834ull}},
+ {{7995333447295565629ull, 290338393388667ull}},
+ {{16481882330414815329ull, 464541429421867ull}},
+ {{5806808234848031617ull, 371633143537494ull}},
+ {{8334795402620335617ull, 297306514829995ull}},
+ {{13335672644192536987ull, 475690423727992ull}},
+ {{3289840485870208943ull, 380552338982394ull}},
+ {{6321221203438077478ull, 304441871185915ull}},
+ {{10113953925500923964ull, 487106993897464ull}},
+ {{11780511955142649495ull, 389685595117971ull}},
+ {{5735060749372209272ull, 311748476094377ull}},
+ {{12865446013737445159ull, 498797561751003ull}},
+ {{17671054440473776774ull, 399038049400802ull}},
+ {{6758145922895200772ull, 319230439520642ull}},
+ {{14502382291374231559ull, 510768703233027ull}},
+ {{4223208203615564601ull, 408614962586422ull}},
+ {{14446613007118182650ull, 326891970069137ull}},
+ {{8357185552421450948ull, 523027152110620ull}},
+ {{6685748441937160758ull, 418421721688496ull}},
+ {{1659249938807818283ull, 334737377350797ull}},
+ {{6344148716834419577ull, 535579803761275ull}},
+ {{5075318973467535661ull, 428463843009020ull}},
+ {{4060255178774028529ull, 342771074407216ull}},
+ {{17564454730264176616ull, 548433719051545ull}},
+ {{14051563784211341293ull, 438746975241236ull}},
+ {{7551902212627162711ull, 350997580192989ull}},
+ {{1014997095977729368ull, 561596128308783ull}},
+ {{8190695306266004141ull, 449276902647026ull}},
+ {{2863207430270892990ull, 359421522117621ull}},
+ {{17047961203184355684ull, 287537217694096ull}},
+ {{1451296221901596833ull, 460059548310555ull}},
+ {{1161036977521277466ull, 368047638648444ull}},
+ {{4618178396758932296ull, 294438110918755ull}},
+ {{7389085434814291674ull, 471100977470008ull}},
+ {{13289965977335253985ull, 376880781976006ull}},
+ {{6942623967126292865ull, 301504625580805ull}},
+ {{11108198347402068584ull, 482407400929288ull}},
+ {{16265256307405475514ull, 385925920743430ull}},
+ {{13012205045924380411ull, 308740736594744ull}},
+ {{9751481629253277688ull, 493985178551591ull}},
+ {{4111836488660711827ull, 395188142841273ull}},
+ {{10668166820412390108ull, 316150514273018ull}},
+ {{13379718097917913850ull, 505840822836829ull}},
+ {{14393123293076241403ull, 404672658269463ull}},
+ {{446452190235262153ull, 323738126615571ull}},
+ {{11782369948602150414ull, 517981002584913ull}},
+ {{16804593588365540978ull, 414384802067930ull}},
+ {{13443674870692432782ull, 331507841654344ull}},
+ {{10441833348882161482ull, 530412546646951ull}},
+ {{4664117864363818862ull, 424330037317561ull}},
+ {{41945476749144767ull, 339464029854049ull}},
+ {{7445810392282452273ull, 543142447766478ull}},
+ {{13335345943309782465ull, 434513958213182ull}},
+ {{3289579125164005326ull, 347611166570546ull}},
+ {{16331373044488139491ull, 556177866512873ull}},
+ {{1997051991364780623ull, 444942293210299ull}},
+ {{5286990407833734821ull, 355953834568239ull}},
+ {{7918941141008898180ull, 284763067654591ull}},
+ {{5291608196130416442ull, 455620908247346ull}},
+ {{543937742162422831ull, 364496726597877ull}},
+ {{11503196637955669234ull, 291597381278301ull}},
+ {{11026416991245250128ull, 466555810045282ull}},
+ {{1442435963512379456ull, 373244648036226ull}},
+ {{15911344029777544858ull, 298595718428980ull}},
+ {{7011406373934520156ull, 477753149486369ull}},
+ {{9298473913889526448ull, 382202519589095ull}},
+ {{7438779131111621158ull, 305762015671276ull}},
+ {{4523348980294773207ull, 489219225074042ull}},
+ {{14686725628461549535ull, 391375380059233ull}},
+ {{681334058543508659ull, 313100304047387ull}},
+ {{4779483308411524177ull, 500960486475819ull}},
+ {{7512935461471129665ull, 400768389180655ull}},
+ {{6010348369176903732ull, 320614711344524ull}},
+ {{16995255020166866618ull, 512983538151238ull}},
+ {{2528157571907762324ull, 410386830520991ull}},
+ {{16779921316493851152ull, 328309464416792ull}},
+ {{12090478847422520551ull, 525295143066868ull}},
+ {{17051080707421837087ull, 420236114453494ull}},
+ {{17330213380679379993ull, 336188891562795ull}},
+ {{9281597335377456373ull, 537902226500473ull}},
+ {{14803975497785785745ull, 430321781200378ull}},
+ {{775133954002897626ull, 344257424960303ull}},
+ {{15997609585372277495ull, 550811879936484ull}},
+ {{16487436483039732319ull, 440649503949187ull}},
+ {{5811251556947965209ull, 352519603159350ull}},
+ {{4649001245558372167ull, 282015682527480ull}},
+ {{7438401992893395467ull, 451225092043968ull}},
+ {{13329419223798537020ull, 360980073635174ull}},
+ {{14352884193780739939ull, 288784058908139ull}},
+ {{11896568265823452933ull, 462054494253023ull}},
+ {{16895952242142582993ull, 369643595402418ull}},
+ {{2448715349488335425ull, 295714876321935ull}},
+ {{3917944559181336680ull, 473143802115096ull}},
+ {{17891750906312710636ull, 378515041692076ull}},
+ {{10624051910308258186ull, 302812033353661ull}},
+ {{9619785427009392451ull, 484499253365858ull}},
+ {{15074525971091334607ull, 387599402692686ull}},
+ {{8370271962131157363ull, 310079522154149ull}},
+ {{2324388695184120811ull, 496127235446639ull}},
+ {{5548859770889206972ull, 396901788357311ull}},
+ {{749739001969455254ull, 317521430685849ull}},
+ {{8578280032634949053ull, 508034289097358ull}},
+ {{14241321655591779889ull, 406427431277886ull}},
+ {{7703708509731513588ull, 325141945022309ull}},
+ {{1257887171344690771ull, 520227112035695ull}},
+ {{1006309737075752617ull, 416181689628556ull}},
+ {{15562443048628243386ull, 332945351702844ull}},
+ {{13831862433579458449ull, 532712562724551ull}},
+ {{7376141132121656436ull, 426170050179641ull}},
+ {{2211564090955414825ull, 340936040143713ull}},
+ {{18295897804496305013ull, 545497664229940ull}},
+ {{14636718243597044011ull, 436398131383952ull}},
+ {{4330676965393814562ull, 349118505107162ull}},
+ {{10618431959372013623ull, 558589608171459ull}},
+ {{12184094382239521221ull, 446871686537167ull}},
+ {{2368577876307796330ull, 357497349229734ull}},
+ {{5584211115788147387ull, 285997879383787ull}},
+ {{12624086600002946143ull, 457596607014059ull}},
+ {{13788618094744267238ull, 366077285611247ull}},
+ {{3652196846311593144ull, 292861828488998ull}},
+ {{2154166139356638707ull, 468578925582397ull}},
+ {{12791379355711041935ull, 374863140465917ull}},
+ {{2854405855085012902ull, 299890512372734ull}},
+ {{11945746997619841289ull, 479824819796374ull}},
+ {{13245946412837783355ull, 383859855837099ull}},
+ {{14286105945012137007ull, 307087884669679ull}},
+ {{11789723067793688242ull, 491340615471487ull}},
+ {{2053080824751129947ull, 393072492377190ull}},
+ {{1642464659800903957ull, 314457993901752ull}},
+ {{6317292270423356655ull, 503132790242803ull}},
+ {{12432531445822505970ull, 402506232194242ull}},
+ {{2567327527174184130ull, 322004985755394ull}},
+ {{11486421672962515254ull, 515207977208630ull}},
+ {{9189137338370012203ull, 412166381766904ull}},
+ {{11040658685437920086ull, 329733105413523ull}},
+ {{13975705081958761815ull, 527572968661637ull}},
+ {{3801866436083188805ull, 422058374929310ull}},
+ {{3041493148866551044ull, 337646699943448ull}},
+ {{1177040223444571347ull, 540234719909517ull}},
+ {{12009678622981388047ull, 432187775927613ull}},
+ {{16986440527868931084ull, 345750220742090ull}},
+ {{8731560770880738119ull, 553200353187345ull}},
+ {{6985248616704590495ull, 442560282549876ull}},
+ {{1898850078621762073ull, 354048226039901ull}},
+ {{16276475321865050951ull, 283238580831920ull}},
+ {{7595616441274529906ull, 453181729331073ull}},
+ {{13455190782503444571ull, 362545383464858ull}},
+ {{18142850255486576303ull, 290036306771886ull}},
+ {{3203118705585149823ull, 464058090835019ull}},
+ {{6251843779210030181ull, 371246472668015ull}},
+ {{5001475023368024145ull, 296997178134412ull}},
+ {{11691708852130748956ull, 475195485015059ull}},
+ {{13042715896446509488ull, 380156388012047ull}},
+ {{3055475087673386944ull, 304125110409638ull}},
+ {{1199411325535508787ull, 486600176655421ull}},
+ {{15716924319396048322ull, 389280141324336ull}},
+ {{8884190640774928334ull, 311424113059469ull}},
+ {{3146658581014154366ull, 498278580895151ull}},
+ {{17274722123778964785ull, 398622864716120ull}},
+ {{13819777699023171828ull, 318898291772896ull}},
+ {{14732946688953254279ull, 510237266836634ull}},
+ {{15475706165904513746ull, 408189813469307ull}},
+ {{5001867303239790350ull, 326551850775446ull}},
+ {{624290055699843915ull, 522482961240714ull}},
+ {{4188780859301785455ull, 417986368992571ull}},
+ {{18108419946409069657ull, 334389095194056ull}},
+ {{3148030211061139188ull, 535022552310491ull}},
+ {{17275819427816552643ull, 428018041848392ull}},
+ {{6441957912769421468ull, 342414433478714ull}},
+ {{17685830289914894996ull, 547863093565942ull}},
+ {{6769966602448095350ull, 438290474852754ull}},
+ {{9105322096700386603ull, 350632379882203ull}},
+ {{10879166539978708242ull, 561011807811525ull}},
+ {{8703333231982966594ull, 448809446249220ull}},
+ {{6962666585586373275ull, 359047556999376ull}},
+ {{1880784453727188297ull, 287238045599501ull}},
+ {{14077301570189232244ull, 459580872959201ull}},
+ {{7572492441409475472ull, 367664698367361ull}},
+ {{2368645138385670055ull, 294131758693889ull}},
+ {{11168529850900892734ull, 470610813910222ull}},
+ {{1556126251236893541ull, 376488651128178ull}},
+ {{8623598630473335479ull, 301190920902542ull}},
+ {{17487106623499247090ull, 481905473444067ull}},
+ {{6610987669315577025ull, 385524378755254ull}},
+ {{8978138950194371943ull, 308419503004203ull}},
+ {{10675673505569084786ull, 493471204806725ull}},
+ {{8540538804455267829ull, 394776963845380ull}},
+ {{6832431043564214263ull, 315821571076304ull}},
+ {{18310587299186563468ull, 505314513722086ull}},
+ {{10959121024607340451ull, 404251610977669ull}},
+ {{12456645634427782684ull, 323401288782135ull}},
+ {{1483888941374900678ull, 517442062051417ull}},
+ {{12255157597325651512ull, 413953649641133ull}},
+ {{17182823707344341856ull, 331162919712906ull}},
+ {{1667076228557574707ull, 529860671540651ull}},
+ {{16091056241813701059ull, 423888537232520ull}},
+ {{12872844993450960847ull, 339110829786016ull}},
+ {{13217854360037716709ull, 542577327657626ull}},
+ {{6884934673288263044ull, 434061862126101ull}},
+ {{1818598923888700112ull, 347249489700881ull}},
+ {{13977804722447651149ull, 555599183521409ull}},
+ {{14871592592700031242ull, 444479346817127ull}},
+ {{4518576444676204347ull, 355583477453702ull}},
+ {{14682907599966694447ull, 284466781962961ull}},
+ {{16113954530462890469ull, 455146851140738ull}},
+ {{1823117180144581406ull, 364117480912591ull}},
+ {{16215889003083306417ull, 291293984730072ull}},
+ {{11188027145965648975ull, 466070375568116ull}},
+ {{5261072902030608857ull, 372856300454493ull}},
+ {{11587555951108307732ull, 298285040363594ull}},
+ {{7472043077547561402ull, 477256064581751ull}},
+ {{2288285647296138798ull, 381804851665401ull}},
+ {{16588023776804552331ull, 305443881332320ull}},
+ {{8094093969177732114ull, 488710210131713ull}},
+ {{13853972804826006338ull, 390968168105370ull}},
+ {{11083178243860805070ull, 312774534484296ull}},
+ {{10354387560693467466ull, 500439255174874ull}},
+ {{11972858863296684296ull, 400351404139899ull}},
+ {{13267635905379257760ull, 320281123311919ull}},
+ {{10160171004381081446ull, 512449797299071ull}},
+ {{4438787988762954834ull, 409959837839257ull}},
+ {{14619076835236094836ull, 327967870271405ull}},
+ {{4943778862668200123ull, 524748592434249ull}},
+ {{7644371904876470421ull, 419798873947399ull}},
+ {{9804846338643086660ull, 335839099157919ull}},
+ {{4619707697603207687ull, 537342558652671ull}},
+ {{6417343340655826ull, 429874046922137ull}},
+ {{11073180318898255630ull, 343899237537709ull}},
+ {{6649042066011478039ull, 550238780060335ull}},
+ {{5319233652809182431ull, 440191024048268ull}},
+ {{11634084551731166591ull, 352152819238614ull}},
+ {{12996616456126843596ull, 281722255390891ull}},
+ {{13415888700319129108ull, 450755608625426ull}},
+ {{7043362145513392963ull, 360604486900341ull}},
+ {{1945340901668804047ull, 288483589520273ull}},
+ {{17869940701637727768ull, 461573743232436ull}},
+ {{10606603746568271891ull, 369258994585949ull}},
+ {{12174631811996527836ull, 295407195668759ull}},
+ {{8411364454968713569ull, 472651513070015ull}},
+ {{6729091563974970855ull, 378121210456012ull}},
+ {{16451319695405707653ull, 302496968364809ull}},
+ {{15254065068423401276ull, 483995149383695ull}},
+ {{12203252054738721021ull, 387196119506956ull}},
+ {{6073252829049066493ull, 309756895605565ull}},
+ {{9717204526478506390ull, 495611032968904ull}},
+ {{11463112435924715435ull, 396488826375123ull}},
+ {{16549187578223592994ull, 317191061100098ull}},
+ {{4342607236706286852ull, 507505697760158ull}},
+ {{10852783418848850128ull, 406004558208126ull}},
+ {{4992877920337169779ull, 324803646566501ull}},
+ {{609907043055651000ull, 519685834506402ull}},
+ {{11555972078670251770ull, 415748667605121ull}},
+ {{5555428848194291092ull, 332598934084097ull}},
+ {{12578034971852776071ull, 532158294534555ull}},
+ {{10062427977482220857ull, 425726635627644ull}},
+ {{11739291196727687009ull, 340581308502115ull}},
+ {{336121841054747598ull, 544930093603385ull}},
+ {{268897472843798078ull, 435944074882708ull}},
+ {{7593815607758859109ull, 348755259906166ull}},
+ {{4771407342930353928ull, 558008415849866ull}},
+ {{127777059602372819ull, 446406732679893ull}},
+ {{7480919277165718902ull, 357125386143914ull}},
+ {{9674084236474485445ull, 285700308915131ull}},
+ {{8099837148875356065ull, 457120494264210ull}},
+ {{6479869719100284852ull, 365696395411368ull}},
+ {{12562593404764048528ull, 292557116329094ull}},
+ {{9032103003396746675ull, 468091386126551ull}},
+ {{3536333587975487017ull, 374473108901241ull}},
+ {{17586462129348030906ull, 299578487120992ull}},
+ {{13380944147989208158ull, 479325579393588ull}},
+ {{18083452947875187172ull, 383460463514870ull}},
+ {{14466762358300149738ull, 306768370811896ull}},
+ {{15768122143796418934ull, 490829393299034ull}},
+ {{16303846529779045471ull, 392663514639227ull}},
+ {{5664379594339415730ull, 314130811711382ull}},
+ {{12752356165684975491ull, 502609298738211ull}},
+ {{6512536117806070070ull, 402087438990569ull}},
+ {{8899377708986766379ull, 321669951192455ull}},
+ {{14239004334378826207ull, 514671921907928ull}},
+ {{323157023277329996ull, 411737537526343ull}},
+ {{7637223248105684643ull, 329390030021074ull}},
+ {{1151510752743364459ull, 527024048033719ull}},
+ {{4610557416936601890ull, 421619238426975ull}},
+ {{3688445933549281512ull, 337295390741580ull}},
+ {{5901513493678850420ull, 539672625186528ull}},
+ {{12099908424426900982ull, 431738100149222ull}},
+ {{2301229110057700139ull, 345390480119378ull}},
+ {{18439361835059961516ull, 552624768191004ull}},
+ {{18440838282789879536ull, 442099814552803ull}},
+ {{3684624182006172659ull, 353679851642243ull}},
+ {{10326396975088758774ull, 282943881313794ull}},
+ {{5454188715916283068ull, 452710210102071ull}},
+ {{674002157991116131ull, 362168168081657ull}},
+ {{11607248170618623875ull, 289734534465325ull}},
+ {{124852999280246584ull, 463575255144521ull}},
+ {{14857277658391838560ull, 370860204115616ull}},
+ {{8196473311971560524ull, 296688163292493ull}},
+ {{9425008484412586516ull, 474701061267989ull}},
+ {{11229355602271979536ull, 379760849014391ull}},
+ {{5294135667075673305ull, 303808679211513ull}},
+ {{4781268252579166966ull, 486093886738421ull}},
+ {{135665787321423249ull, 388875109390737ull}},
+ {{11176579074082869569ull, 311100087512589ull}},
+ {{6814480074306860341ull, 497760140020143ull}},
+ {{12830281688929308919ull, 398208112016114ull}},
+ {{13953574165885357458ull, 318566489612891ull}},
+ {{14947021035932751287ull, 509706383380626ull}},
+ {{8268268014004290707ull, 407765106704501ull}},
+ {{2925265596461522242ull, 326212085363601ull}},
+ {{15748471398564166557ull, 521939336581761ull}},
+ {{8909428304109422922ull, 417551469265409ull}},
+ {{10816891458029448661ull, 334041175412327ull}},
+ {{2549631073879476565ull, 534465880659724ull}},
+ {{5729053673845491575ull, 427572704527779ull}},
+ {{8272591753818303583ull, 342058163622223ull}},
+ {{9546797991367375410ull, 547293061795557ull}},
+ {{258740763610079682ull, 437834449436446ull}},
+ {{14964387869855705038ull, 350267559549156ull}},
+ {{16564322962285307415ull, 560428095278650ull}},
+ {{13251458369828245932ull, 448342476222920ull}},
+ {{10601166695862596745ull, 358673980978336ull}},
+ {{4791584541948167073ull, 286939184782669ull}},
+ {{15045232896600887963ull, 459102695652270ull}},
+ {{12036186317280710371ull, 367282156521816ull}},
+ {{5939600239082657973ull, 293825725217453ull}},
+ {{5814011567790342434ull, 470121160347925ull}},
+ {{4651209254232273947ull, 376096928278340ull}},
+ {{3720967403385819158ull, 300877542622672ull}},
+ {{9642896660159220976ull, 481404068196275ull}},
+ {{7714317328127376781ull, 385123254557020ull}},
+ {{6171453862501901424ull, 308098603645616ull}},
+ {{2495628550519221633ull, 492957765832986ull}},
+ {{16753898099383018599ull, 394366212666388ull}},
+ {{2335072035280683910ull, 315492970133111ull}},
+ {{14804161700674825225ull, 504788752212977ull}},
+ {{4464631731056039534ull, 403831001770382ull}},
+ {{14639751829070562596ull, 323064801416305ull}},
+ {{4976858852803348539ull, 516903682266089ull}},
+ {{7670835896984589154ull, 413522945812871ull}},
+ {{2447319902845761000ull, 330818356650297ull}},
+ {{7605060659295127923ull, 529309370640475ull}},
+ {{6084048527436102339ull, 423447496512380ull}},
+ {{4867238821948881871ull, 338757997209904ull}},
+ {{15166279744602031640ull, 542012795535846ull}},
+ {{8443674980939714989ull, 433610236428677ull}},
+ {{17822986428977502960ull, 346888189142941ull}},
+ {{2691336583170632474ull, 555021102628707ull}},
+ {{13221115710762236949ull, 444016882102965ull}},
+ {{10576892568609789559ull, 355213505682372ull}},
+ {{1082816425404011001ull, 284170804545898ull}},
+ {{16489901539614058894ull, 454673287273436ull}},
+ {{9502572416949336792ull, 363738629818749ull}},
+ {{11291406748301379757ull, 290990903854999ull}},
+ {{6998204353056476642ull, 465585446167999ull}},
+ {{9287912297187091636ull, 372468356934399ull}},
+ {{11119678652491583632ull, 297974685547519ull}},
+ {{6723439399760802842ull, 476759496876031ull}},
+ {{1689402705066731951ull, 381407597500825ull}},
+ {{1351522164053385560ull, 305126078000660ull}},
+ {{2162435462485416897ull, 488201724801056ull}},
+ {{16487343628955974810ull, 390561379840844ull}},
+ {{16879223717906690171ull, 312449103872675ull}},
+ {{8560013874941152658ull, 499918566196281ull}},
+ {{3158662285211011803ull, 399934852957025ull}},
+ {{2526929828168809443ull, 319947882365620ull}},
+ {{4043087725070095108ull, 511916611784992ull}},
+ {{14302516624281807056ull, 409533289427993ull}},
+ {{373966855199714675ull, 327626631542395ull}},
+ {{598346968319543481ull, 524202610467832ull}},
+ {{11546724018881365754ull, 419362088374265ull}},
+ {{9237379215105092603ull, 335489670699412ull}},
+ {{22411485200506873ull, 536783473119060ull}},
+ {{17929188160405498ull, 429426778495248ull}},
+ {{7393040980012145045ull, 343541422796198ull}},
+ {{8139516753277521749ull, 549666276473917ull}},
+ {{17579659846847748368ull, 439733021179133ull}},
+ {{2995681433252467725ull, 351786416943307ull}},
+ {{8482439107945858684ull, 562858267109291ull}},
+ {{3096602471614776624ull, 450286613687433ull}},
+ {{9855979606775641945ull, 360229290949946ull}},
+ {{4195434870678603233ull, 288183432759957ull}},
+ {{10402044607827675496ull, 461093492415931ull}},
+ {{4632286871520230073ull, 368874793932745ull}},
+ {{3705829497216184059ull, 295099835146196ull}},
+ {{16997373639771625464ull, 472159736233913ull}},
+ {{2529852467591569401ull, 377727788987131ull}},
+ {{16781277233040896814ull, 302182231189704ull}},
+ {{15781997128639703933ull, 483491569903527ull}},
+ {{5246900073427942500ull, 386793255922822ull}},
+ {{15265566502968084969ull, 309434604738257ull}},
+ {{9667511145781294658ull, 495095367581212ull}},
+ {{355311287141215080ull, 396076294064970ull}},
+ {{284249029712972064ull, 316861035251976ull}},
+ {{11522844891766486272ull, 506977656403161ull}},
+ {{5528927098671278695ull, 405582125122529ull}},
+ {{8112490493678933279ull, 324465700098023ull}},
+ {{9290635975144382923ull, 519145120156837ull}},
+ {{53811150631685692ull, 415316096125470ull}},
+ {{43048920505348553ull, 332252876900376ull}},
+ {{11136924717034288655ull, 531604603040601ull}},
+ {{5220190958885520601ull, 425283682432481ull}},
+ {{486803952366506158ull, 340226945945985ull}},
+ {{778886323786409852ull, 544363113513576ull}},
+ {{15380504317996769175ull, 435490490810860ull}},
+ {{12304403454397415340ull, 348392392648688ull}},
+ {{15997696712293954220ull, 557427828237901ull}},
+ {{9108808555093253053ull, 445942262590321ull}},
+ {{3597698029332692119ull, 356753810072257ull}},
+ {{13946204867691884665ull, 285403048057805ull}},
+ {{3867183714597463848ull, 456644876892489ull}},
+ {{6783095786419881402ull, 365315901513991ull}},
+ {{1737127814393994798ull, 292252721211193ull}},
+ {{17536799761998032970ull, 467604353937908ull}},
+ {{2961393365372695406ull, 374083483150327ull}},
+ {{13437161136523887294ull, 299266786520261ull}},
+ {{14120760188954399025ull, 478826858432418ull}},
+ {{228561706937788250ull, 383061486745935ull}},
+ {{182849365550230600ull, 306449189396748ull}},
+ {{15049954243848010253ull, 490318703034796ull}},
+ {{8350614580336497879ull, 392254962427837ull}},
+ {{17748538108494929273ull, 313803969942269ull}},
+ {{17329614529366155867ull, 502086351907631ull}},
+ {{10174342808751014371ull, 401669081526105ull}},
+ {{8139474247000811496ull, 321335265220884ull}},
+ {{1955112350975567425ull, 514136424353415ull}},
+ {{1564089880780453940ull, 411309139482732ull}},
+ {{12319318348850094121ull, 329047311586185ull}},
+ {{1264165284450598978ull, 526475698537897ull}},
+ {{12079378671786210152ull, 421180558830317ull}},
+ {{2284805307945147475ull, 336944447064254ull}},
+ {{11034386122196056607ull, 539111115302806ull}},
+ {{5138160083014934962ull, 431288892242245ull}},
+ {{4110528066411947970ull, 345031113793796ull}},
+ {{17644891350484847722ull, 552049782070073ull}},
+ {{3047866636162147208ull, 441639825656059ull}},
+ {{6127642123671628089ull, 353311860524847ull}},
+ {{15970160143163033441ull, 282649488419877ull}},
+ {{10794860970093212213ull, 452239181471804ull}},
+ {{12325237590816480093ull, 361791345177443ull}},
+ {{17238887702137004721ull, 289433076141954ull}},
+ {{16514173879193476584ull, 463092921827127ull}},
+ {{5832641473870960621ull, 370474337461702ull}},
+ {{15734159623322499466ull, 296379469969361ull}},
+ {{17795957767832178500ull, 474207151950978ull}},
+ {{3168719770040011830ull, 379365721560783ull}},
+ {{9913673445515830111ull, 303492577248626ull}},
+ {{8483179883341507531ull, 485588123597802ull}},
+ {{17854590350898936994ull, 388470498878241ull}},
+ {{10594323465977239272ull, 310776399102593ull}},
+ {{13261568730821672512ull, 497242238564149ull}},
+ {{14298603799399248333ull, 397793790851319ull}},
+ {{15128231854261308989ull, 318235032681055ull}},
+ {{5758426893108542767ull, 509176052289689ull}},
+ {{8296090329228744537ull, 407340841831751ull}},
+ {{2947523448641085306ull, 325872673465401ull}},
+ {{15784083962051467460ull, 521396277544641ull}},
+ {{8937918354899263645ull, 417117022035713ull}},
+ {{14529032313403231562ull, 333693617628570ull}},
+ {{4799707627735618884ull, 533909788205713ull}},
+ {{11218463731672315753ull, 427127830564570ull}},
+ {{8974770985337852602ull, 341702264451656ull}},
+ {{6980935947056743518ull, 546723623122650ull}},
+ {{5584748757645394814ull, 437378898498120ull}},
+ {{4467799006116315851ull, 349903118798496ull}},
+ {{18216524854011836332ull, 559844990077593ull}},
+ {{3505173438983738096ull, 447875992062075ull}},
+ {{2804138751186990477ull, 358300793649660ull}},
+ {{2243311000949592381ull, 286640634919728ull}},
+ {{18346692860486989103ull, 458625015871564ull}},
+ {{18366703103131501605ull, 366900012697251ull}},
+ {{11004013667763290961ull, 293520010157801ull}},
+ {{10227724238937444892ull, 469632016252482ull}},
+ {{803481761666135267ull, 375705613001986ull}},
+ {{15400180668300549506ull, 300564490401588ull}},
+ {{2504196180829417271ull, 480903184642542ull}},
+ {{13071403388889264786ull, 384722547714033ull}},
+ {{17835820340595232475ull, 307778038171226ull}},
+ {{2711870841758999698ull, 492444861073963ull}},
+ {{9548194302891020405ull, 393955888859170ull}},
+ {{7638555442312816324ull, 315164711087336ull}},
+ {{4842991078216685472ull, 504263537739738ull}},
+ {{11253090492057169024ull, 403410830191790ull}},
+ {{9002472393645735219ull, 322728664153432ull}},
+ {{18093304644575086674ull, 516365862645491ull}},
+ {{10785294900918159016ull, 413092690116393ull}},
+ {{16006933550218347859ull, 330474152093114ull}},
+ {{14543047236123625605ull, 528758643348983ull}},
+ {{566391344673169514ull, 423006914679187ull}},
+ {{11521159519964266581ull, 338405531743349ull}},
+ {{7365808787717095560ull, 541448850789359ull}},
+ {{9581995844915586771ull, 433159080631487ull}},
+ {{286899046448648771ull, 346527264505190ull}},
+ {{459038474317838033ull, 554443623208304ull}},
+ {{4056579594196180750ull, 443554898566643ull}},
+ {{10623961304840765246ull, 354843918853314ull}},
+ {{12188517858614522520ull, 283875135082651ull}},
+ {{12122930944299415386ull, 454200216132242ull}},
+ {{2319647125955711662ull, 363360172905794ull}},
+ {{5545066515506479653ull, 290688138324635ull}},
+ {{8872106424810367445ull, 465101021319416ull}},
+ {{3408336325106383633ull, 372080817055533ull}},
+ {{10105366689568927552ull, 297664653644426ull}},
+ {{8789889073826463438ull, 476263445831082ull}},
+ {{18099957703286901720ull, 381010756664865ull}},
+ {{14479966162629521376ull, 304808605331892ull}},
+ {{8410550601239592908ull, 487693768531028ull}},
+ {{14107138110475494973ull, 390155014824822ull}},
+ {{3907012858896575332ull, 312124011859858ull}},
+ {{2561871759492610208ull, 499398418975773ull}},
+ {{9428195037077908813ull, 399518735180618ull}},
+ {{14921253659146147697ull, 319614988144494ull}},
+ {{12805959410408105345ull, 511383981031191ull}},
+ {{6555418713584573953ull, 409107184824953ull}},
+ {{12623032600351479809ull, 327285747859962ull}},
+ {{5439456901594726401ull, 523657196575940ull}},
+ {{4351565521275781121ull, 418925757260752ull}},
+ {{14549298861246355866ull, 335140605808601ull}},
+ {{15900180548510348740ull, 536224969293762ull}},
+ {{5341446809324458345ull, 428979975435010ull}},
+ {{4273157447459566676ull, 343183980348008ull}},
+ {{3147703101193396359ull, 549094368556813ull}},
+ {{9896860110438537734ull, 439275494845450ull}},
+ {{7917488088350830187ull, 351420395876360ull}},
+ {{12667980941361328299ull, 562272633402176ull}},
+ {{6445035938347152316ull, 449818106721741ull}},
+ {{1466679935935811529ull, 359854485377393ull}},
+ {{8552041578232469870ull, 287883588301914ull}},
+ {{2615220080946220823ull, 460613741283063ull}},
+ {{9470873694240797304ull, 368490993026450ull}},
+ {{7576698955392637843ull, 294792794421160ull}},
+ {{12122718328628220550ull, 471668471073856ull}},
+ {{6008825848160666116ull, 377334776859085ull}},
+ {{4807060678528532893ull, 301867821487268ull}},
+ {{4001948270903742306ull, 482988514379629ull}},
+ {{6890907431464904168ull, 386390811503703ull}},
+ {{12891423574655743981ull, 309112649202962ull}},
+ {{5868882460481549076ull, 494580238724740ull}},
+ {{4695105968385239261ull, 395664190979792ull}},
+ {{14824131218933922378ull, 316531352783833ull}},
+ {{1582517061842813866ull, 506450164454134ull}},
+ {{4955362464216161416ull, 405160131563307ull}},
+ {{15032336415598660103ull, 324128105250645ull}},
+ {{5604994191248304548ull, 518604968401033ull}},
+ {{11862692982482464285ull, 414883974720826ull}},
+ {{5800805571244061105ull, 331907179776661ull}},
+ {{1902591284506677121ull, 531051487642658ull}},
+ {{8900770657089162343ull, 424841190114126ull}},
+ {{3431267710929419551ull, 339872952091301ull}},
+ {{16558074781712802252ull, 543796723346081ull}},
+ {{9557111010628331478ull, 435037378676865ull}},
+ {{7645688808502665183ull, 348029902941492ull}},
+ {{15922450908346174616ull, 556847844706387ull}},
+ {{5359263097193119046ull, 445478275765110ull}},
+ {{4287410477754495237ull, 356382620612088ull}},
+ {{10808626011687416836ull, 285106096489670ull}},
+ {{17293801618699866937ull, 456169754383472ull}},
+ {{6456343665476072903ull, 364935803506778ull}},
+ {{12543772561864678969ull, 291948642805422ull}},
+ {{5312640840015845058ull, 467117828488676ull}},
+ {{560763857270765723ull, 373694262790941ull}},
+ {{15206006344784253871ull, 298955410232752ull}},
+ {{9572214892687164901ull, 478328656372404ull}},
+ {{11347120728891642244ull, 382662925097923ull}},
+ {{16456394212597134442ull, 306130340078338ull}},
+ {{4194137851703953168ull, 489808544125342ull}},
+ {{14423356725588893504ull, 391846835300273ull}},
+ {{470638936245383833ull, 313477468240219ull}},
+ {{8131719927476434780ull, 501563949184350ull}},
+ {{6505375941981147824ull, 401251159347480ull}},
+ {{5204300753584918259ull, 321000927477984ull}},
+ {{15705578835219689861ull, 513601483964774ull}},
+ {{16253811882917662212ull, 410881187171819ull}},
+ {{16692398321076040093ull, 328704949737455ull}},
+ {{8261093240012112533ull, 525927919579929ull}},
+ {{10298223406751600349ull, 420742335663943ull}},
+ {{15617276354885100926ull, 336593868531154ull}},
+ {{13919595723590430512ull, 538550189649847ull}},
+ {{3756978949388523763ull, 430840151719878ull}},
+ {{10384280788994639657ull, 344672121375902ull}},
+ {{1857454003423782158ull, 551475394201444ull}},
+ {{5175312017480936050ull, 441180315361155ull}},
+ {{4140249613984748840ull, 352944252288924ull}},
+ {{7001548505929709395ull, 282355401831139ull}},
+ {{134431165261804062ull, 451768642929823ull}},
+ {{7486242561693263896ull, 361414914343858ull}},
+ {{13367691678838431763ull, 289131931475086ull}},
+ {{14009609056657670175ull, 462611090360138ull}},
+ {{139640801100405170ull, 370088872288111ull}},
+ {{14869107899847965429ull, 296071097830488ull}},
+ {{1654479751305282747ull, 473713756528782ull}},
+ {{12391630245269957167ull, 378971005223025ull}},
+ {{9913304196215965734ull, 303176804178420ull}},
+ {{15861286713945545174ull, 485082886685472ull}},
+ {{5310331741672615493ull, 388066309348378ull}},
+ {{11626963022821913041ull, 310453047478702ull}},
+ {{3845745577547419573ull, 496724875965924ull}},
+ {{6765945276779845981ull, 397379900772739ull}},
+ {{9102105036165787108ull, 317903920618191ull}},
+ {{7184670428381438727ull, 508646272989106ull}},
+ {{2058387527963240658ull, 406917018391285ull}},
+ {{1646710022370592526ull, 325533614713028ull}},
+ {{17392131294760589335ull, 520853783540844ull}},
+ {{17603053850550381791ull, 416683026832675ull}},
+ {{14082443080440305433ull, 333346421466140ull}},
+ {{4085164854994937077ull, 533354274345825ull}},
+ {{3268131883995949662ull, 426683419476660ull}},
+ {{2614505507196759729ull, 341346735581328ull}},
+ {{493859996772905244ull, 546154776930125ull}},
+ {{395087997418324195ull, 436923821544100ull}},
+ {{316070397934659356ull, 349539057235280ull}},
+ {{505712636695454970ull, 559262491576448ull}},
+ {{7783267738840184622ull, 447409993261158ull}},
+ {{13605311820555968344ull, 357927994608926ull}},
+ {{7194900641702864352ull, 286342395687141ull}},
+ {{4133143397240762317ull, 458147833099426ull}},
+ {{18063909976760251146ull, 366518266479540ull}},
+ {{14451127981408200917ull, 293214613183632ull}},
+ {{8364409511285480174ull, 469143381093812ull}},
+ {{17759574053254115109ull, 375314704875049ull}},
+ {{17897008057345202410ull, 300251763900039ull}},
+ {{17567166447526592887ull, 480402822240063ull}},
+ {{2985686713795543340ull, 384322257792051ull}},
+ {{17145944630004075965ull, 307457806233640ull}},
+ {{8986767334296969928ull, 491932489973825ull}},
+ {{7189413867437575942ull, 393545991979060ull}},
+ {{5751531093950060754ull, 314836793583248ull}},
+ {{5513100935578186883ull, 503738869733197ull}},
+ {{15478527192688280476ull, 402991095786557ull}},
+ {{5004124124666803734ull, 322392876629246ull}},
+ {{627900969983065329ull, 515828602606794ull}},
+ {{4191669590728362586ull, 412662882085435ull}},
+ {{3353335672582690069ull, 330130305668348ull}},
+ {{1675988261390393787ull, 528208489069357ull}},
+ {{12408837053338045999ull, 422566791255485ull}},
+ {{9927069642670436799ull, 338053433004388ull}},
+ {{12193962613530788556ull, 540885492807021ull}},
+ {{6065821276082720521ull, 432708394245617ull}},
+ {{15920703465091907387ull, 346166715396493ull}},
+ {{3337032655695589880ull, 553866744634390ull}},
+ {{2669626124556471904ull, 443093395707512ull}},
+ {{13203747343870908492ull, 354474716566009ull}},
+ {{14252346689838637117ull, 283579773252807ull}},
+ {{8046359444774178095ull, 453727637204492ull}},
+ {{17505134000045073445ull, 362982109763593ull}},
+ {{2936060755810327787ull, 290385687810875ull}},
+ {{4697697209296524459ull, 464617100497400ull}},
+ {{3758157767437219567ull, 371693680397920ull}},
+ {{3006526213949775653ull, 297354944318336ull}},
+ {{15878488386545372015ull, 475767910909337ull}},
+ {{5324093079752476966ull, 380614328727470ull}},
+ {{4259274463801981573ull, 304491462981976ull}},
+ {{17882885586308901486ull, 487186340771161ull}},
+ {{10616959654305210865ull, 389749072616929ull}},
+ {{12182916538186079015ull, 311799258093543ull}},
+ {{15803317646355816102ull, 498878812949669ull}},
+ {{16332002931826563205ull, 399103050359735ull}},
+ {{13065602345461250564ull, 319282440287788ull}},
+ {{17215614937996090579ull, 510851904460461ull}},
+ {{10083143135654962140ull, 408681523568369ull}},
+ {{11755863323265880035ull, 326945218854695ull}},
+ {{362637243515856440ull, 523112350167513ull}},
+ {{7668807424296505798ull, 418489880134010ull}},
+ {{6135045939437204639ull, 334791904107208ull}},
+ {{6126724688357617099ull, 535667046571533ull}},
+ {{12280077380169914325ull, 428533637257226ull}},
+ {{6134713089394021137ull, 342826909805781ull}},
+ {{2436843313546613173ull, 548523055689250ull}},
+ {{1949474650837290538ull, 438818444551400ull}},
+ {{1559579720669832431ull, 351054755641120ull}},
+ {{2495327553071731889ull, 561687609025792ull}},
+ {{13064308486683116481ull, 449350087220633ull}},
+ {{17830144418830313831ull, 359480069776506ull}},
+ {{10574766720322340742ull, 287584055821205ull}},
+ {{16919626752515745187ull, 460134489313928ull}},
+ {{2467654957786865180ull, 368107591451143ull}},
+ {{9352821595713312790ull, 294486073160914ull}},
+ {{3896468108915569495ull, 471177717057463ull}},
+ {{10495872116616276242ull, 376942173645970ull}},
+ {{8396697693293020994ull, 301553738916776ull}},
+ {{6056018679785012944ull, 482485982266842ull}},
+ {{15912861388053741325ull, 385988785813473ull}},
+ {{1662242666217262090ull, 308791028650779ull}},
+ {{10038285895431439991ull, 494065645841246ull}},
+ {{4341279901603241669ull, 395252516672997ull}},
+ {{14541070365508324305ull, 316202013338397ull}},
+ {{8508317325845677595ull, 505923221341436ull}},
+ {{3117305045934631753ull, 404738577073149ull}},
+ {{6183192851489615725ull, 323790861658519ull}},
+ {{17271806191867205807ull, 518065378653630ull}},
+ {{13817444953493764646ull, 414452302922904ull}},
+ {{14743304777536922040ull, 331561842338323ull}},
+ {{1453194755607613325ull, 530498947741318ull}},
+ {{8541253433969911306ull, 424399158193054ull}},
+ {{10522351561917839368ull, 339519326554443ull}},
+ {{13146413684326632666ull, 543230922487109ull}},
+ {{14206479762203216456ull, 434584737989687ull}},
+ {{3986486180278752518ull, 347667790391750ull}},
+ {{6378377888446004029ull, 556268464626800ull}},
+ {{5102702310756803223ull, 445014771701440ull}},
+ {{4082161848605442578ull, 356011817361152ull}},
+ {{14333775923110085032ull, 284809453888921ull}},
+ {{15555343847492315406ull, 455695126222274ull}},
+ {{16133623892735762648ull, 364556100977819ull}},
+ {{16596247928930520441ull, 291644880782255ull}},
+ {{8107252612579281090ull, 466631809251609ull}},
+ {{10175150904805335195ull, 373305447401287ull}},
+ {{761423094360447510ull, 298644357921030ull}},
+ {{1218276950976716016ull, 477830972673648ull}},
+ {{8353319190265193459ull, 382264778138918ull}},
+ {{14061352981695975413ull, 305811822511134ull}},
+ {{11430118326487829692ull, 489298916017815ull}},
+ {{9144094661190263754ull, 391439132814252ull}},
+ {{18383322173177941972ull, 313151306251401ull}},
+ {{3587873773891334894ull, 501042090002243ull}},
+ {{10248996648596888561ull, 400833672001794ull}},
+ {{11888546133619421172ull, 320666937601435ull}},
+ {{574929740081522260ull, 513067100162297ull}},
+ {{11527990236290948777ull, 410453680129837ull}},
+ {{1843694559548938375ull, 328362944103870ull}},
+ {{2949911295278301401ull, 525380710566192ull}},
+ {{13427975480448372090ull, 420304568452953ull}},
+ {{18121078013842518318ull, 336243654762362ull}},
+ {{14236329563180388017ull, 537989847619780ull}},
+ {{11389063650544310414ull, 430391878095824ull}},
+ {{12800599735177358654ull, 344313502476659ull}},
+ {{9412913132058042877ull, 550901603962655ull}},
+ {{7530330505646434301ull, 440721283170124ull}},
+ {{9713613219259057764ull, 352577026536099ull}},
+ {{11460239390149156535ull, 282061621228879ull}},
+ {{7268336580012919486ull, 451298593966207ull}},
+ {{16882715708236066558ull, 361038875172965ull}},
+ {{13506172566588853246ull, 288831100138372ull}},
+ {{6852480847574523902ull, 462129760221396ull}},
+ {{1792635863317708798ull, 369703808177117ull}},
+ {{12502155134879898008ull, 295763046541693ull}},
+ {{16314099401065926490ull, 473220874466709ull}},
+ {{16740628335594651515ull, 378576699573367ull}},
+ {{6013805038991900566ull, 302861359658694ull}},
+ {{17000785691870861552ull, 484578175453910ull}},
+ {{13600628553496689241ull, 387662540363128ull}},
+ {{18259200472281172039ull, 310130032290502ull}},
+ {{14457325496682233970ull, 496208051664804ull}},
+ {{15255209212087697499ull, 396966441331843ull}},
+ {{1136120925444427030ull, 317573153065475ull}},
+ {{1817793480711083248ull, 508117044904760ull}},
+ {{1454234784568866598ull, 406493635923808ull}},
+ {{8542085457138913925ull, 325194908739046ull}},
+ {{6288639101938441634ull, 520311853982474ull}},
+ {{8720260096292663630ull, 416249483185979ull}},
+ {{10665556891776041227ull, 332999586548783ull}},
+ {{13375542212099755641ull, 532799338478053ull}},
+ {{18079131399163625159ull, 426239470782442ull}},
+ {{7084607489847079481ull, 340991576625954ull}},
+ {{267325539529596200ull, 545586522601527ull}},
+ {{11281906875849407929ull, 436469218081221ull}},
+ {{5336176685937616020ull, 349175374464977ull}},
+ {{12227231512242095956ull, 558680599143963ull}},
+ {{17160482839277497411ull, 446944479315170ull}},
+ {{13728386271421997928ull, 357555583452136ull}},
+ {{7293360202395688019ull, 286044466761709ull}},
+ {{601329879607369862ull, 457671146818735ull}},
+ {{481063903685895889ull, 366136917454988ull}},
+ {{7763548752432537358ull, 292909533963990ull}},
+ {{12421678003892059773ull, 468655254342384ull}},
+ {{13626691217855558141ull, 374924203473907ull}},
+ {{3522655344800625867ull, 299939362779126ull}},
+ {{16704294995906732356ull, 479902980446601ull}},
+ {{9674087181983475562ull, 383922384357281ull}},
+ {{4049920930844870126ull, 307137907485825ull}},
+ {{6479873489351792202ull, 491420651977320ull}},
+ {{5183898791481433762ull, 393136521581856ull}},
+ {{457770218443236686ull, 314509217265485ull}},
+ {{732432349509178698ull, 503214747624776ull}},
+ {{15343341138574984251ull, 402571798099820ull}},
+ {{12274672910859987401ull, 322057438479856ull}},
+ {{12260779027892159195ull, 515291901567770ull}},
+ {{9808623222313727356ull, 412233521254216ull}},
+ {{4157549763109071561ull, 329786817003373ull}},
+ {{2962730806232604175ull, 527658907205397ull}},
+ {{13438231089211814310ull, 422127125764317ull}},
+ {{3371887241885630801ull, 337701700611454ull}},
+ {{12773717216500829929ull, 540322720978326ull}},
+ {{6529624958458753620ull, 432258176782661ull}},
+ {{1534351152025092573ull, 345806541426129ull}},
+ {{9833659472723968763ull, 553290466281806ull}},
+ {{4177578763437264687ull, 442632373025445ull}},
+ {{3342063010749811749ull, 354105898420356ull}},
+ {{17431045667567490692ull, 283284718736284ull}},
+ {{16821626623882254138ull, 453255549978055ull}},
+ {{13457301299105803311ull, 362604439982444ull}},
+ {{14455189854026552972ull, 290083551985955ull}},
+ {{4681559692732933139ull, 464133683177529ull}},
+ {{7434596568928256834ull, 371306946542023ull}},
+ {{13326374884626426114ull, 297045557233618ull}},
+ {{17632851000660371459ull, 475272891573789ull}},
+ {{17795629615270207490ull, 380218313259031ull}},
+ {{10547154877474255669ull, 304174650607225ull}},
+ {{16875447803958809070ull, 486679440971560ull}},
+ {{13500358243167047256ull, 389343552777248ull}},
+ {{18178984224017458451ull, 311474842221798ull}},
+ {{6950281869976471583ull, 498359747554878ull}},
+ {{12938923125464997913ull, 398687798043902ull}},
+ {{2972440870888177684ull, 318950238435122ull}},
+ {{8445254208162994618ull, 510320381496195ull}},
+ {{6756203366530395694ull, 408256305196956ull}},
+ {{1715613878482406232ull, 326605044157565ull}},
+ {{2744982205571849971ull, 522568070652104ull}},
+ {{5885334579199390300ull, 418054456521683ull}},
+ {{12086965292843332886ull, 334443565217346ull}},
+ {{11960446839065511972ull, 535109704347754ull}},
+ {{13257706285994319901ull, 428087763478203ull}},
+ {{17984862658279276567ull, 342470210782562ull}},
+ {{14018384994279201215ull, 547952337252100ull}},
+ {{11214707995423360972ull, 438361869801680ull}},
+ {{8971766396338688777ull, 350689495841344ull}},
+ {{3286779789916171074ull, 561103193346151ull}},
+ {{17386819090900578152ull, 448882554676920ull}},
+ {{13909455272720462522ull, 359106043741536ull}},
+ {{7438215403434459694ull, 287284834993229ull}},
+ {{833098201269404541ull, 459655735989167ull}},
+ {{11734525005241254602ull, 367724588791333ull}},
+ {{16766317633676824328ull, 294179671033066ull}},
+ {{1000666510689546663ull, 470687473652907ull}},
+ {{11868579652777368300ull, 376549978922325ull}},
+ {{9494863722221894640ull, 301239983137860ull}},
+ {{15191781955555031424ull, 481983973020576ull}},
+ {{8464076749702114816ull, 385587178416461ull}},
+ {{3081912585019781529ull, 308469742733169ull}},
+ {{12309757765515471094ull, 493551588373070ull}},
+ {{9847806212412376875ull, 394841270698456ull}},
+ {{4188896155187991177ull, 315873016558765ull}},
+ {{6702233848300785883ull, 505396826494024ull}},
+ {{9051135893382539029ull, 404317461195219ull}},
+ {{10930257529447941547ull, 323453968956175ull}},
+ {{17488412047116706475ull, 517526350329880ull}},
+ {{13990729637693365180ull, 414021080263904ull}},
+ {{14881932524896602467ull, 331216864211123ull}},
+ {{1674999151383102008ull, 529946982737798ull}},
+ {{8718696950590302253ull, 423957586190238ull}},
+ {{14353655189956062449ull, 339166068952190ull}},
+ {{4519104230220148302ull, 542665710323505ull}},
+ {{3615283384176118641ull, 434132568258804ull}},
+ {{6581575522082805236ull, 347306054607043ull}},
+ {{6841172020590578055ull, 555689687371269ull}},
+ {{9162286431214372767ull, 444551749897015ull}},
+ {{7329829144971498214ull, 355641399917612ull}},
+ {{16931909760202929540ull, 284513119934089ull}},
+ {{16023009172098956295ull, 455220991894543ull}},
+ {{1750360893453434067ull, 364176793515635ull}},
+ {{1400288714762747253ull, 291341434812508ull}},
+ {{16997857202588036898ull, 466146295700012ull}},
+ {{6219588132586608872ull, 372917036560010ull}},
+ {{4975670506069287098ull, 298333629248008ull}},
+ {{4271723994968949033ull, 477333806796813ull}},
+ {{10796076825458979873ull, 381867045437450ull}},
+ {{8636861460367183898ull, 305493636349960ull}},
+ {{13818978336587494237ull, 488789818159936ull}},
+ {{7365833854528085067ull, 391031854527949ull}},
+ {{9582015898364378376ull, 312825483622359ull}},
+ {{4263178993157274433ull, 500520773795775ull}},
+ {{3410543194525819546ull, 400416619036620ull}},
+ {{2728434555620655637ull, 320333295229296ull}},
+ {{15433541733218779989ull, 512533272366873ull}},
+ {{1278786942349293021ull, 410026617893499ull}},
+ {{4712378368621344740ull, 328021294314799ull}},
+ {{14918503019277972231ull, 524834070903678ull}},
+ {{866755971196646815ull, 419867256722943ull}},
+ {{8072102406441138098ull, 335893805378354ull}},
+ {{1847317406080089988ull, 537430088605367ull}},
+ {{12545900369089802960ull, 429944070884293ull}},
+ {{17415417924755663014ull, 343955256707434ull}},
+ {{16796622235383329854ull, 550328410731895ull}},
+ {{13437297788306663883ull, 440262728585516ull}},
+ {{7060489415903420783ull, 352210182868413ull}},
+ {{13027089162206557273ull, 281768146294730ull}},
+ {{2396598585820940021ull, 450829034071569ull}},
+ {{5606627683398662340ull, 360663227257255ull}},
+ {{4485302146718929872ull, 288530581805804ull}},
+ {{14555181064234108441ull, 461648930889286ull}},
+ {{7954796036645376430ull, 369319144711429ull}},
+ {{10053185644058211467ull, 295455315769143ull}},
+ {{12395748215751228024ull, 472728505230629ull}},
+ {{13605947387342892742ull, 378182804184503ull}},
+ {{18263455539358134840ull, 302546243347602ull}},
+ {{14464133604005374452ull, 484073989356164ull}},
+ {{15260655697946209884ull, 387259191484931ull}},
+ {{8519175743615057584ull, 309807353187945ull}},
+ {{13630681189784092135ull, 495691765100712ull}},
+ {{3525847322343453062ull, 396553412080570ull}},
+ {{2820677857874762449ull, 317242729664456ull}},
+ {{15581131016825350889ull, 507588367463129ull}},
+ {{16154253628202191034ull, 406070693970503ull}},
+ {{1855356458336021858ull, 324856555176403ull}},
+ {{17725965592305276265ull, 519770488282244ull}},
+ {{17870121288586131335ull, 415816390625795ull}},
+ {{14296097030868905068ull, 332653112500636ull}},
+ {{15495057619906427463ull, 532244980001018ull}},
+ {{1327999651699411001ull, 425795984000815ull}},
+ {{1062399721359528800ull, 340636787200652ull}},
+ {{5389188368917156404ull, 545018859521043ull}},
+ {{11690048324617545770ull, 436015087616834ull}},
+ {{13041387474435946939ull, 348812070093467ull}},
+ {{6108824700129873809ull, 558099312149548ull}},
+ {{12265757389587719694ull, 446479449719638ull}},
+ {{17191303541153996401ull, 357183559775710ull}},
+ {{13753042832923197121ull, 285746847820568ull}},
+ {{18315519717935205071ull, 457194956512909ull}},
+ {{18341764589090074380ull, 365755965210327ull}},
+ {{7294714041788238857ull, 292604772168262ull}},
+ {{15360891281603092495ull, 468167635469219ull}},
+ {{15978061840024384319ull, 374534108375375ull}},
+ {{12782449472019507455ull, 299627286700300ull}},
+ {{2005175081521660313ull, 479403658720481ull}},
+ {{16361535324184969543ull, 383522926976384ull}},
+ {{16778577074089885957ull, 306818341581107ull}},
+ {{12088328059576176239ull, 490909346529772ull}},
+ {{2291964818177120345ull, 392727477223818ull}},
+ {{9212269484025516922ull, 314181981779054ull}},
+ {{3671584730215096106ull, 502691170846487ull}},
+ {{14005314228397807855ull, 402152936677189ull}},
+ {{14893600197460156607ull, 321722349341751ull}},
+ {{16451062686452429925ull, 514755758946802ull}},
+ {{5782152519678123293ull, 411804607157442ull}},
+ {{15693768459968229604ull, 329443685725953ull}},
+ {{2973936647497705428ull, 527109897161526ull}},
+ {{17136544576965805635ull, 421687917729220ull}},
+ {{13709235661572644508ull, 337350334183376ull}},
+ {{14556079429032410566ull, 539760534693402ull}},
+ {{4266165913742107807ull, 431808427754722ull}},
+ {{14480979175219417215ull, 345446742203777ull}},
+ {{8412171421383426251ull, 552714787526044ull}},
+ {{10419085951848651324ull, 442171830020835ull}},
+ {{8335268761478921059ull, 353737464016668ull}},
+ {{14046912638666957494ull, 282989971213334ull}},
+ {{11407013777641401020ull, 452783953941335ull}},
+ {{9125611022113120816ull, 362227163153068ull}},
+ {{14679186447174317299ull, 289781730522454ull}},
+ {{12418651871253176710ull, 463650768835927ull}},
+ {{2556223867518720721ull, 370920615068742ull}},
+ {{13113025538240707546ull, 296736492054993ull}},
+ {{17291492046443221751ull, 474778387287989ull}},
+ {{17522542451896487724ull, 379822709830391ull}},
+ {{10328685146775279856ull, 303858167864313ull}},
+ {{12836547420098537447ull, 486173068582901ull}},
+ {{6579889121336919634ull, 388938454866321ull}},
+ {{1574562482327625384ull, 311150763893057ull}},
+ {{6208648786466110938ull, 497841222228891ull}},
+ {{1277570214430978427ull, 398272977783113ull}},
+ {{8400753801028603388ull, 318618382226490ull}},
+ {{13441206081645765421ull, 509789411562384ull}},
+ {{14442313680058522660ull, 407831529249907ull}},
+ {{4175153314562997481ull, 326265223399926ull}},
+ {{17748291747526526940ull, 522024357439881ull}},
+ {{10509284583279311229ull, 417619485951905ull}},
+ {{8407427666623448983ull, 334095588761524ull}},
+ {{2383837822371787403ull, 534552942018439ull}},
+ {{5596419072639340246ull, 427642353614751ull}},
+ {{787786443369561873ull, 342113882891801ull}},
+ {{12328504753617029967ull, 547382212626881ull}},
+ {{6173454988151713650ull, 437905770101505ull}},
+ {{4938763990521370920ull, 350324616081204ull}},
+ {{15280720014318014119ull, 560519385729926ull}},
+ {{8535227196712500972ull, 448415508583941ull}},
+ {{3138832942628090454ull, 358732406867153ull}},
+ {{9889763983586293010ull, 286985925493722ull}},
+ {{1066227114770427523ull, 459177480789956ull}},
+ {{15610376950783983311ull, 367341984631964ull}},
+ {{16177650375369096972ull, 293873587705571ull}},
+ {{58798897397182893ull, 470197740328915ull}},
+ {{47039117917746314ull, 376158192263132ull}},
+ {{11105677738559928021ull, 300926553810505ull}},
+ {{17769084381695884834ull, 481482486096808ull}},
+ {{3147221061130976897ull, 385185988877447ull}},
+ {{13585823293130512487ull, 308148791101957ull}},
+ {{6979922010041178687ull, 493038065763132ull}},
+ {{16651984052258673919ull, 394430452610505ull}},
+ {{13321587241806939135ull, 315544362088404ull}},
+ {{10246493142665371647ull, 504870979341447ull}},
+ {{818496884648476671ull, 403896783473158ull}},
+ {{8033495137202601983ull, 323117426778526ull}},
+ {{5474894590040342527ull, 516987882845642ull}},
+ {{15447962116258004991ull, 413590306276513ull}},
+ {{1290323248780673023ull, 330872245021211ull}},
+ {{13132563642274807807ull, 529395592033937ull}},
+ {{3127353284336025599ull, 423516473627150ull}},
+ {{2501882627468820479ull, 338813178901720ull}},
+ {{4003012203950112767ull, 542101086242752ull}},
+ {{14270456207385821183ull, 433680868994201ull}},
+ {{7727016151166746623ull, 346944695195361ull}},
+ {{4984528212382973951ull, 555111512312578ull}},
+ {{11366320199390199807ull, 444089209850062ull}},
+ {{1714358530028339199ull, 355271367880050ull}},
+ {{1371486824022671359ull, 284217094304040ull}},
+ {{2194378918436274175ull, 454747350886464ull}},
+ {{5444851949490929663ull, 363797880709171ull}},
+ {{666532744850833407ull, 291038304567337ull}},
+ {{4755801206503243775ull, 465661287307739ull}},
+ {{7493989779944505343ull, 372529029846191ull}},
+ {{2305843009213693951ull, 298023223876953ull}},
+ {{18446744073709551615ull, 476837158203124ull}},
+ {{18446744073709551615ull, 381469726562499ull}},
+ {{18446744073709551615ull, 305175781249999ull}},
+ {{18446744073709551615ull, 488281249999999ull}},
+ {{18446744073709551615ull, 390624999999999ull}},
+ {{18446744073709551615ull, 312499999999999ull}},
+ {{18446744073709551615ull, 499999999999999ull}},
+ {{18446744073709551615ull, 399999999999999ull}},
+ {{18446744073709551615ull, 319999999999999ull}},
+ {{18446744073709551615ull, 511999999999999ull}},
+ {{18446744073709551615ull, 409599999999999ull}},
+ {{18446744073709551615ull, 327679999999999ull}},
+ {{18446744073709551615ull, 524287999999999ull}},
+ {{18446744073709551615ull, 419430399999999ull}},
+ {{18446744073709551615ull, 335544319999999ull}},
+ {{18446744073709551615ull, 536870911999999ull}},
+ {{18446744073709551615ull, 429496729599999ull}},
+ {{18446744073709551615ull, 343597383679999ull}},
+ {{18446744073709551615ull, 549755813887999ull}},
+ {{18446744073709551615ull, 439804651110399ull}},
+ {{18446744073709551615ull, 351843720888319ull}},
+ {{18446744073709551615ull, 281474976710655ull}},
+ {{11068046444225730969ull, 450359962737049ull}},
+ {{12543785970122495098ull, 360287970189639ull}},
+ {{13724377590839906402ull, 288230376151711ull}},
+ {{14580306515860029597ull, 461168601842738ull}},
+ {{596198768462292708ull, 368934881474191ull}},
+ {{15234354273737475459ull, 295147905179352ull}},
+ {{9617571579012319442ull, 472236648286964ull}},
+ {{11383406077951765876ull, 377789318629571ull}},
+ {{5417376047619502378ull, 302231454903657ull}},
+ {{12357150490933114128ull, 483570327845851ull}},
+ {{6196371578004580979ull, 386856262276681ull}},
+ {{1267748447661754460ull, 309485009821345ull}},
+ {{2028397516258807136ull, 495176015714152ull}},
+ {{12690764457232776679ull, 396140812571321ull}},
+ {{6463262751044311020ull, 316912650057057ull}},
+ {{14030569216412807955ull, 507060240091291ull}},
+ {{7535106558388336041ull, 405648192073033ull}},
+ {{13406782876194489479ull, 324518553658426ull}},
+ {{14072154972427362520ull, 519229685853482ull}},
+ {{3879026348458069369ull, 415383748682786ull}},
+ {{17860616337734096788ull, 332306998946228ull}},
+ {{6440893251923092922ull, 531691198313966ull}},
+ {{1463365786796564015ull, 425352958651173ull}},
+ {{8549390258921071858ull, 340282366920938ull}},
+ {{9989675599531804650ull, 544451787073501ull}},
+ {{4302391664883533397ull, 435561429658801ull}},
+ {{18199308590874468010ull, 348449143727040ull}},
+ {{10672149671689597200ull, 557518629963265ull}},
+ {{8537719737351677760ull, 446014903970612ull}},
+ {{17898222234107073178ull, 356811923176489ull}},
+ {{18007926602027568865ull, 285449538541191ull}},
+ {{2987240860050737922ull, 456719261665907ull}},
+ {{13457839132266321307ull, 365375409332725ull}},
+ {{10766271305813057046ull, 292300327466180ull}},
+ {{17226034089300891273ull, 467680523945888ull}},
+ {{2712780827214982049ull, 374144419156711ull}},
+ {{16927619920739626932ull, 299315535325368ull}},
+ {{4948098984731941152ull, 478904856520590ull}},
+ {{3958479187785552922ull, 383123885216472ull}},
+ {{14234829794454173307ull, 306499108173177ull}},
+ {{8018332412159035998ull, 490398573077084ull}},
+ {{10104014744469139122ull, 392318858461667ull}},
+ {{704514166091490651ull, 313855086769334ull}},
+ {{8505920295230205688ull, 502168138830934ull}},
+ {{10494085050926074874ull, 401734511064747ull}},
+ {{1016570411257039252ull, 321387608851798ull}},
+ {{16383907916978904097ull, 514220174162876ull}},
+ {{9417777518841212954ull, 411376139330301ull}},
+ {{3844873200331060040ull, 329100911464241ull}},
+ {{17219843564755427034ull, 526561458342785ull}},
+ {{13775874851804341627ull, 421249166674228ull}},
+ {{18399397510927293948ull, 336999333339382ull}},
+ {{14681640758516029024ull, 539198933343012ull}},
+ {{4366614977329002573ull, 431359146674410ull}},
+ {{3493291981863202058ull, 345087317339528ull}},
+ {{1899918356239212970ull, 552139707743245ull}},
+ {{1519934684991370376ull, 441711766194596ull}},
+ {{15973343006960737594ull, 353369412955676ull}},
+ {{9089325590826679752ull, 282695530364541ull}},
+ {{7164223315838866956ull, 452312848583266ull}},
+ {{2042029837929183242ull, 361850278866613ull}},
+ {{9012321499827167240ull, 289480223093290ull}},
+ {{14419714399723467584ull, 463168356949264ull}},
+ {{15225120334520684390ull, 370534685559411ull}},
+ {{8490747452874637189ull, 296427748447529ull}},
+ {{2517149480373688533ull, 474284397516047ull}},
+ {{13081766028524681796ull, 379427518012837ull}},
+ {{3086715193335924790ull, 303542014410270ull}},
+ {{4938744309337479665ull, 485667223056432ull}},
+ {{15019041891695714701ull, 388533778445145ull}},
+ {{12015233513356571761ull, 310827022756116ull}},
+ {{11845675991886694171ull, 497323236409786ull}},
+ {{5787191978767445014ull, 397858589127829ull}},
+ {{8319102397755866334ull, 318286871302263ull}},
+ {{9621215021667475812ull, 509258994083621ull}},
+ {{4007623202592070326ull, 407407195266897ull}},
+ {{14274145006299387230ull, 325925756213517ull}},
+ {{8081236751111378276ull, 521481209941628ull}},
+ {{13843687030372923267ull, 417184967953302ull}},
+ {{3696251994814517967ull, 333747974362642ull}},
+ {{9603352006445139071ull, 533996758980227ull}},
+ {{303983975672290610ull, 427197407184182ull}},
+ {{11311233624763563458ull, 341757925747345ull}},
+ {{18097973799621701533ull, 546812681195752ull}},
+ {{7099681410213540580ull, 437450144956602ull}},
+ {{16747791572396563433ull, 349960115965281ull}},
+ {{971024812641129231ull, 559936185544451ull}},
+ {{15534215109080544677ull, 447948948435560ull}},
+ {{12427372087264435742ull, 358359158748448ull}},
+ {{17320595299295369240ull, 286687326998758ull}},
+ {{5576859590421128845ull, 458699723198014ull}},
+ {{8150836487078813399ull, 366959778558411ull}},
+ {{2831320374921140396ull, 293567822846729ull}},
+ {{11908810229357645280ull, 469708516554766ull}},
+ {{5837699368744205901ull, 375766813243813ull}},
+ {{12048857124479185367ull, 300613450595050ull}},
+ {{831427325457144971ull, 480981520952081ull}},
+ {{15422537119333357270ull, 384785216761664ull}},
+ {{16027378510208596139ull, 307828173409331ull}},
+ {{18265107986849933176ull, 492525077454930ull}},
+ {{14612086389479946541ull, 394020061963944ull}},
+ {{15379017926325867556ull, 315216049571155ull}},
+ {{6159684608411836474ull, 504345679313849ull}},
+ {{8617096501471379502ull, 403476543451079ull}},
+ {{10583026015919013925ull, 322781234760863ull}},
+ {{13243492810728511957ull, 516449975617381ull}},
+ {{6905445433840899242ull, 413159980493905ull}},
+ {{5524356347072719393ull, 330527984395124ull}},
+ {{16217667784800171676ull, 528844775032198ull}},
+ {{1906087783614406371ull, 423075820025759ull}},
+ {{5214219041633435420ull, 338460656020607ull}},
+ {{12032099281355406996ull, 541537049632971ull}},
+ {{5936330610342415273ull, 433229639706377ull}},
+ {{15817110932499663188ull, 346583711765101ull}},
+ {{17928679862515640455ull, 554533938824162ull}},
+ {{6964246260528691717ull, 443627151059330ull}},
+ {{5571397008422953374ull, 354901720847464ull}},
+ {{8146466421480273022ull, 283921376677971ull}},
+ {{5655648644884616189ull, 454274202684754ull}},
+ {{8213867730649603275ull, 363419362147803ull}},
+ {{13949791814003503266ull, 290735489718242ull}},
+ {{7562271643437963933ull, 465176783549188ull}},
+ {{13428514944234191793ull, 372141426839350ull}},
+ {{10742811955387353434ull, 297713141471480ull}},
+ {{17188499128619765495ull, 476341026354368ull}},
+ {{2682752858670081426ull, 381072821083495ull}},
+ {{2146202286936065141ull, 304858256866796ull}},
+ {{14501970103323435195ull, 487773210986873ull}},
+ {{533529638433017186ull, 390218568789499ull}},
+ {{4116172525488324072ull, 312174855031599ull}},
+ {{13964573670265139162ull, 499479768050558ull}},
+ {{103612491986380360ull, 399583814440447ull}},
+ {{11150936437814835258ull, 319667051552357ull}},
+ {{3084103041536095120ull, 511467282483772ull}},
+ {{13535328877454607065ull, 409173825987017ull}},
+ {{3449565472479865006ull, 327339060789614ull}},
+ {{12898002385451604656ull, 523742497263382ull}},
+ {{2939704278877463078ull, 418993997810706ull}},
+ {{17109158682069611755ull, 335195198248564ull}},
+ {{16306607447085647839ull, 536312317197703ull}},
+ {{1977239513442787302ull, 429049853758163ull}},
+ {{8960489240238050488ull, 343239883006530ull}},
+ {{14336782784380880780ull, 549183812810448ull}},
+ {{401379783278973655ull, 439347050248359ull}},
+ {{4010452641365089247ull, 351477640198687ull}},
+ {{10106073040926053118ull, 562364224317899ull}},
+ {{11774207247482752818ull, 449891379454319ull}},
+ {{13108714612728112577ull, 359913103563455ull}},
+ {{10486971690182490062ull, 287930482850764ull}},
+ {{5711108260066253130ull, 460688772561223ull}},
+ {{11947584237536823150ull, 368551018048978ull}},
+ {{16936765019513279166ull, 294840814439182ull}},
+ {{12341428772253605373ull, 471745303102692ull}},
+ {{2494445388319063652ull, 377396242482154ull}},
+ {{5684905125397161245ull, 301916993985723ull}},
+ {{5406499385893547669ull, 483067190377157ull}},
+ {{15393245952940569105ull, 386453752301725ull}},
+ {{12314596762352455284ull, 309163001841380ull}},
+ {{1256610746054376838ull, 494660802946209ull}},
+ {{4694637411585411794ull, 395728642356967ull}},
+ {{14823756373494060404ull, 316582913885573ull}},
+ {{1581917309139034708ull, 506532662216918ull}},
+ {{8644231476795048413ull, 405226129773534ull}},
+ {{10604733996177949053ull, 324180903818827ull}},
+ {{2210179134917077193ull, 518689446110124ull}},
+ {{5457492122675572077ull, 414951556888099ull}},
+ {{8055342512882367985ull, 331961245510479ull}},
+ {{1820501576386057807ull, 531137992816767ull}},
+ {{12524447705334577215ull, 424910394253413ull}},
+ {{17398255793751482418ull, 339928315402730ull}},
+ {{9390465196292820253ull, 543885304644369ull}},
+ {{11201720971776166526ull, 435108243715495ull}},
+ {{8961376777420933221ull, 348086594972396ull}},
+ {{6959505214389672507ull, 556938551955834ull}},
+ {{9256952986253648329ull, 445550841564667ull}},
+ {{26864759519098016ull, 356440673251734ull}},
+ {{3710840622357188736ull, 285152538601387ull}},
+ {{9626693810513412301ull, 456244061762219ull}},
+ {{11390703863152640164ull, 364995249409775ull}},
+ {{9112563090522112131ull, 291996199527820ull}},
+ {{14580100944835379410ull, 467193919244512ull}},
+ {{4285383126384482882ull, 373755135395610ull}},
+ {{3428306501107586305ull, 299004108316488ull}},
+ {{1795941587030227766ull, 478406573306381ull}},
+ {{16194148528591823505ull, 382725258645104ull}},
+ {{16644667637615369127ull, 306180206916083ull}},
+ {{4495375331733128665ull, 489888331065734ull}},
+ {{7285649080128413255ull, 391910664852587ull}},
+ {{16896565708328461573ull, 313528531882069ull}},
+ {{15966458689099807548ull, 501645651011311ull}},
+ {{9083818136537935715ull, 401316520809049ull}},
+ {{10956403323972258895ull, 321053216647239ull}},
+ {{6462198874129883263ull, 513685146635583ull}},
+ {{12548456728787727257ull, 410948117308466ull}},
+ {{6349416568288271482ull, 328758493846773ull}},
+ {{6469717694519324048ull, 526013590154837ull}},
+ {{16243820599841190208ull, 420810872123869ull}},
+ {{16684405294614862490ull, 336648697699095ull}},
+ {{8248304397674228368ull, 538637916318553ull}},
+ {{13977341147623203341ull, 430910333054842ull}},
+ {{3803175288614742026ull, 344728266443874ull}},
+ {{13463778091267407888ull, 551565226310198ull}},
+ {{18149720102497746957ull, 441252181048158ull}},
+ {{3451729637772466596ull, 353001744838527ull}},
+ {{13829430154443704246ull, 282401395870821ull}},
+ {{14748390617626106148ull, 451842233393314ull}},
+ {{15488061308842795241ull, 361473786714651ull}},
+ {{8701100232332325870ull, 289179029371721ull}},
+ {{6543062742247900745ull, 462686446994754ull}},
+ {{8923799008540230919ull, 370149157595803ull}},
+ {{14517736836316005382ull, 296119326076642ull}},
+ {{8470983679137967319ull, 473790921722628ull}},
+ {{14155484572794194501ull, 379032737378102ull}},
+ {{3945690028751534954ull, 303226189902482ull}},
+ {{10002452860744366251ull, 485161903843971ull}},
+ {{4312613473853582677ull, 388129523075177ull}},
+ {{14518137223308597111ull, 310503618460141ull}},
+ {{15850321927809934732ull, 496805789536226ull}},
+ {{8990908727506037462ull, 397444631628981ull}},
+ {{3503378167262919646ull, 317955705303185ull}},
+ {{5605405067620671435ull, 508729128485096ull}},
+ {{794975239354626824ull, 406983302788077ull}},
+ {{11704026635709432429ull, 325586642230461ull}},
+ {{11347744987651271240ull, 520938627568738ull}},
+ {{16456893619604837639ull, 416750902054990ull}},
+ {{13165514895683870111ull, 333400721643992ull}},
+ {{6307428574126550885ull, 533441154630388ull}},
+ {{12424640488785061354ull, 426752923704310ull}},
+ {{9939712391028049083ull, 341402338963448ull}},
+ {{12214191010902968210ull, 546243742341517ull}},
+ {{2392655179238553922ull, 436994993873214ull}},
+ {{5603472958132753460ull, 349595995098571ull}},
+ {{1586859103528584890ull, 559353592157714ull}},
+ {{4958836097564778235ull, 447482873726171ull}},
+ {{277720063309912265ull, 357986298980937ull}},
+ {{11290222494873660782ull, 286389039184749ull}},
+ {{6996309547572126281ull, 458222462695599ull}},
+ {{9286396452799611348ull, 366577970156479ull}},
+ {{11118465976981599402ull, 293262376125183ull}},
+ {{14100196748428648720ull, 469219801800293ull}},
+ {{212110954517188006ull, 375375841440235ull}},
+ {{169688763613750405ull, 300300673152188ull}},
+ {{15028897280749641941ull, 480481077043500ull}},
+ {{12023117824599713552ull, 384384861634800ull}},
+ {{9618494259679770842ull, 307507889307840ull}},
+ {{15389590815487633347ull, 492012622892544ull}},
+ {{16001021467132017001ull, 393610098314035ull}},
+ {{12800817173705613601ull, 314888078651228ull}},
+ {{16791958663187071438ull, 503820925841965ull}},
+ {{13433566930549657150ull, 403056740673572ull}},
+ {{3368155914955905074ull, 322445392538858ull}},
+ {{1699700649187537795ull, 515912628062173ull}},
+ {{8738458148833850882ull, 412730102449738ull}},
+ {{14369464148550901352ull, 330184081959790ull}},
+ {{4544398563971890548ull, 528294531135665ull}},
+ {{3635518851177512438ull, 422635624908532ull}},
+ {{13976461525167740920ull, 338108499926825ull}},
+ {{3915594366558833856ull, 540973599882921ull}},
+ {{17889870752214708378ull, 432778879906336ull}},
+ {{10622547787029856379ull, 346223103925069ull}},
+ {{5928030015022039237ull, 553956966280111ull}},
+ {{1053075197275721066ull, 443165573024089ull}},
+ {{4531808972562487176ull, 354532458419271ull}},
+ {{18382842437017631034ull, 283625966735416ull}},
+ {{3587106196034837392ull, 453801546776667ull}},
+ {{13937731401053600883ull, 363041237421333ull}},
+ {{82138676617149737ull, 290432989937067ull}},
+ {{3820770697329349902ull, 464692783899307ull}},
+ {{14124663002089210891ull, 371754227119445ull}},
+ {{11299730401671368713ull, 297403381695556ull}},
+ {{10700871013190369294ull, 475845410712890ull}},
+ {{8560696810552295435ull, 380676328570312ull}},
+ {{17916603892667567318ull, 304541062856249ull}},
+ {{17598519784042376739ull, 487265700569999ull}},
+ {{17768164641975811714ull, 389812560455999ull}},
+ {{17903880528322559695ull, 311850048364799ull}},
+ {{17578162401090364542ull, 498960077383679ull}},
+ {{17751878735614201957ull, 399168061906943ull}},
+ {{3133456544265630596ull, 319334449525555ull}},
+ {{5013530470825008953ull, 510935119240888ull}},
+ {{11389522006143827809ull, 408748095392710ull}},
+ {{9111617604915062247ull, 326998476314168ull}},
+ {{10889239353122189273ull, 523197562102669ull}},
+ {{12400740297239661741ull, 418558049682135ull}},
+ {{9920592237791729393ull, 334846439745708ull}},
+ {{12183598765724856706ull, 535754303593133ull}},
+ {{17125576642063706011ull, 428603442874506ull}},
+ {{10011112498909054485ull, 342882754299605ull}},
+ {{16017779998254487177ull, 548612406879368ull}},
+ {{1746177554377858772ull, 438889925503495ull}},
+ {{1396942043502287017ull, 351111940402796ull}},
+ {{13303153713829390198ull, 561779104644473ull}},
+ {{18021220600547332804ull, 449423283715578ull}},
+ {{3348930036212135274ull, 359538626972463ull}},
+ {{10057841658453528865ull, 287630901577970ull}},
+ {{16092546653525646185ull, 460209442524752ull}},
+ {{5495339693336696301ull, 368167554019802ull}},
+ {{15464318198895088011ull, 294534043215841ull}},
+ {{17364211488748320171ull, 471254469145346ull}},
+ {{10202020376256745813ull, 377003575316277ull}},
+ {{782918671521576004ull, 301602860253022ull}},
+ {{4942018689176431930ull, 482564576404835ull}},
+ {{3953614951341145544ull, 386051661123868ull}},
+ {{10541589590556737082ull, 308841328899094ull}},
+ {{5798496900665048361ull, 494146126238551ull}},
+ {{949448705790128366ull, 395316900990841ull}},
+ {{15516954223599743985ull, 316253520792672ull}},
+ {{10069731498791949084ull, 506005633268276ull}},
+ {{4366436384291648944ull, 404804506614621ull}},
+ {{18250544366400960448ull, 323843605291696ull}},
+ {{3375429283048164454ull, 518149768466715ull}},
+ {{2700343426438531563ull, 414519814773372ull}},
+ {{13228321185376556220ull, 331615851818697ull}},
+ {{6407918637634848660ull, 530585362909916ull}},
+ {{1436986095365968605ull, 424468290327933ull}},
+ {{8528286505776595530ull, 339574632262346ull}},
+ {{6266560779758732202ull, 543319411619754ull}},
+ {{8702597438548896085ull, 434655529295803ull}},
+ {{14340775580322937514ull, 347724423436642ull}},
+ {{8187845669549058730ull, 556359077498628ull}},
+ {{13928974165123067630ull, 445087261998902ull}},
+ {{3764481702614633458ull, 356069809599122ull}},
+ {{14079631806317437736ull, 284855847679297ull}},
+ {{7770015631140259084ull, 455769356286876ull}},
+ {{2526663690170296944ull, 364615485029501ull}},
+ {{16778726211103878848ull, 291692388023600ull}},
+ {{8399217864056654541ull, 466707820837761ull}},
+ {{3030025476503413310ull, 373366256670209ull}},
+ {{6113369195944640971ull, 298693005336167ull}},
+ {{13470739528253335877ull, 477908808537867ull}},
+ {{3397893993118848055ull, 382327046830294ull}},
+ {{6407664009236988767ull, 305861637464235ull}},
+ {{10252262414779182028ull, 489378619942776ull}},
+ {{4512461117081435299ull, 391502895954221ull}},
+ {{18367364152632789532ull, 313202316763376ull}},
+ {{3562340941019090989ull, 501123706821403ull}},
+ {{10228570382299093437ull, 400898965457122ull}},
+ {{804158676355454103ull, 320719172365698ull}},
+ {{16044049141136367858ull, 513150675785116ull}},
+ {{9145890498167183963ull, 410520540628093ull}},
+ {{14695410028017567817ull, 328416432502474ull}},
+ {{12444609600602377538ull, 525466292003959ull}},
+ {{13645036495223812353ull, 420373033603167ull}},
+ {{3537331566695229236ull, 336298426882534ull}},
+ {{13038428136196187425ull, 538077483012054ull}},
+ {{14120091323698860263ull, 430461986409643ull}},
+ {{228026614733357241ull, 344369589127715ull}},
+ {{364842583573371585ull, 550991342604344ull}},
+ {{3981222881600607591ull, 440793074083475ull}},
+ {{3184978305280486073ull, 352634459266780ull}},
+ {{2547982644224388858ull, 282107567413424ull}},
+ {{11455469860242842820ull, 451372107861478ull}},
+ {{16543073517678094902ull, 361097686289182ull}},
+ {{5855761184658655275ull, 288878149031346ull}},
+ {{1990520265970027794ull, 462205038450154ull}},
+ {{5281765027517932559ull, 369764030760123ull}},
+ {{11604109651498166693ull, 295811224608098ull}},
+ {{14877226627655156386ull, 473297959372957ull}},
+ {{4523083672640304462ull, 378638367498366ull}},
+ {{18375862197079884863ull, 302910693998692ull}},
+ {{14643984256360174488ull, 484657110397908ull}},
+ {{647140960862408621ull, 387725688318327ull}},
+ {{11585759212915657866ull, 310180550654661ull}},
+ {{11158517111181231939ull, 496288881047458ull}},
+ {{16305511318428806198ull, 397031104837966ull}},
+ {{9355060240001134635ull, 317624883870373ull}},
+ {{11278747569259905093ull, 508199814192597ull}},
+ {{1644300425924103428ull, 406559851354078ull}},
+ {{8694137970223103389ull, 325247881083262ull}},
+ {{17599969567098875745ull, 520396609733219ull}},
+ {{17769324468421010919ull, 416317287786575ull}},
+ {{14215459574736808735ull, 333053830229260ull}},
+ {{4297991245869342361ull, 532886128366817ull}},
+ {{14506439440921204858ull, 426308902693453ull}},
+ {{537105108511232917ull, 341047122154763ull}},
+ {{15616763432585613960ull, 545675395447620ull}},
+ {{12493410746068491168ull, 436540316358096ull}},
+ {{6305379782112882611ull, 349232253086477ull}},
+ {{13777956466122522501ull, 558771604938363ull}},
+ {{18401062802381838647ull, 447017283950690ull}},
+ {{14720850241905470918ull, 357613827160552ull}},
+ {{4397982564040556088ull, 286091061728442ull}},
+ {{10726120917206800064ull, 457745698765507ull}},
+ {{1202199104281619405ull, 366196559012406ull}},
+ {{15719154542392936816ull, 292957247209924ull}},
+ {{14082600823602967937ull, 468731595535879ull}},
+ {{14955429473624284673ull, 374985276428703ull}},
+ {{896297134673696768ull, 299988221142963ull}},
+ {{16191470674445556122ull, 479981153828740ull}},
+ {{12953176539556444898ull, 383984923062992ull}},
+ {{2983843602161335272ull, 307187938450394ull}},
+ {{12152847392941957082ull, 491500701520630ull}},
+ {{9722277914353565665ull, 393200561216504ull}},
+ {{11467171146224762855ull, 314560448973203ull}},
+ {{14658125019217710245ull, 503296718357125ull}},
+ {{11726500015374168196ull, 402637374685700ull}},
+ {{9381200012299334557ull, 322109899748560ull}},
+ {{15009920019678935291ull, 515375839597696ull}},
+ {{8318587201001237910ull, 412300671678157ull}},
+ {{17722916205026721297ull, 329840537342525ull}},
+ {{9909921854333202460ull, 527744859748041ull}},
+ {{4238588668724651645ull, 422195887798433ull}},
+ {{10769568564463541962ull, 337756710238746ull}},
+ {{9852612073657846493ull, 540410736381994ull}},
+ {{11571438473668187518ull, 432328589105595ull}},
+ {{9257150778934550014ull, 345862871284476ull}},
+ {{7432743616811459376ull, 553380594055162ull}},
+ {{17014241337674898471ull, 442704475244129ull}},
+ {{17300741884881829100ull, 354163580195303ull}},
+ {{2772547063679732310ull, 283330864156243ull}},
+ {{746726487145661373ull, 453329382649989ull}},
+ {{4286730004458439422ull, 362663506119991ull}},
+ {{18186779262534392830ull, 290130804895992ull}},
+ {{14341451561087387235ull, 464209287833588ull}},
+ {{405114804644178819ull, 371367430266871ull}},
+ {{15081487102682984348ull, 297093944213496ull}},
+ {{16751681734808954310ull, 475350310741594ull}},
+ {{17090694202589073771ull, 380280248593275ull}},
+ {{13672555362071259017ull, 304224198874620ull}},
+ {{3429344505604462811ull, 486758718199393ull}},
+ {{10122173233967390895ull, 389406974559514ull}},
+ {{11787087401915823039ull, 311525579647611ull}},
+ {{11480642213581496217ull, 498440927436178ull}},
+ {{16563211400349017620ull, 398752741948942ull}},
+ {{5871871490795393449ull, 319002193559154ull}},
+ {{16773692014756450166ull, 510403509694646ull}},
+ {{9729604797063249809ull, 408322807755717ull}},
+ {{404986208166779201ull, 326658246204574ull}},
+ {{8026675562550667368ull, 522653193927318ull}},
+ {{13800038079524354541ull, 418122555141854ull}},
+ {{14729379278361393956ull, 334498044113483ull}},
+ {{1430913956926768390ull, 535196870581574ull}},
+ {{4834079980283325035ull, 428157496465259ull}},
+ {{7556612798968570351ull, 342525997172207ull}},
+ {{15779929293091622885ull, 548041595475531ull}},
+ {{8934594619731387985ull, 438433276380425ull}},
+ {{7147675695785110388ull, 350746621104340ull}},
+ {{11436281113256176621ull, 561194593766944ull}},
+ {{12838373705346851620ull, 448955675013555ull}},
+ {{10270698964277481296ull, 359164540010844ull}},
+ {{11905907986163895360ull, 287331632008675ull}},
+ {{602708704152680960ull, 459730611213881ull}},
+ {{15239562222289786061ull, 367784488971104ull}},
+ {{15880998592573739172ull, 294227591176883ull}},
+ {{3273504859666520736ull, 470764145883014ull}},
+ {{6308152702475126912ull, 376611316706411ull}},
+ {{1357173347238191206ull, 301289053365129ull}},
+ {{9550174985064926576ull, 482062485384206ull}},
+ {{3950791173310030938ull, 385649988307365ull}},
+ {{3160632938648024750ull, 308519990645892ull}},
+ {{8746361516578749924ull, 493631985033427ull}},
+ {{18065135657488730908ull, 394905588026741ull}},
+ {{10762759711249074403ull, 315924470421393ull}},
+ {{13531066723256608723ull, 505479152674229ull}},
+ {{14514202193347197301ull, 404383322139383ull}},
+ {{543315310452026871ull, 323506657711507ull}},
+ {{4558653311465153318ull, 517610652338411ull}},
+ {{18404317908139763947ull, 414088521870728ull}},
+ {{3655407882286080188ull, 331270817496583ull}},
+ {{2159303796915817977ull, 530033307994533ull}},
+ {{9106140667016475028ull, 424026646395626ull}},
+ {{3595563718871269699ull, 339221317116501ull}},
+ {{16820948394419762489ull, 542754107386401ull}},
+ {{9767409900793899668ull, 434203285909121ull}},
+ {{4124579105893209411ull, 347362628727297ull}},
+ {{10288675384171045381ull, 555780205963675ull}},
+ {{8230940307336836305ull, 444624164770940ull}},
+ {{6584752245869469044ull, 355699331816752ull}},
+ {{16335848240921306204ull, 284559465453401ull}},
+ {{311915482280717665ull, 455295144725443ull}},
+ {{7628230015308394778ull, 364236115780354ull}},
+ {{9791932826988626146ull, 291388892624283ull}},
+ {{11977743708439891510ull, 466222228198853ull}},
+ {{16960892596235733854ull, 372977782559082ull}},
+ {{6190016447504766437ull, 298382226047266ull}},
+ {{2525328686523805653ull, 477411561675626ull}},
+ {{16777658208186685815ull, 381929249340500ull}},
+ {{13422126566549348652ull, 305543399472400ull}},
+ {{3028658432769406228ull, 488869439155841ull}},
+ {{17180322005183166275ull, 391095551324672ull}},
+ {{6365559974662712373ull, 312876441059738ull}},
+ {{6495547144718429474ull, 500602305695581ull}},
+ {{1507088901032833256ull, 400481844556465ull}},
+ {{1205671120826266605ull, 320385475645172ull}},
+ {{5618422608063936891ull, 512616761032275ull}},
+ {{4494738086451149513ull, 410093408825820ull}},
+ {{3595790469160919610ull, 328074727060656ull}},
+ {{16821311194883202346ull, 524919563297049ull}},
+ {{17146397770648472200ull, 419935650637639ull}},
+ {{17406467031260688083ull, 335948520510111ull}},
+ {{2024905546823728671ull, 537517632816179ull}},
+ {{5309273252200893260ull, 430014106252943ull}},
+ {{11626116231244535254ull, 344011285002354ull}},
+ {{7533739525765525438ull, 550418056003767ull}},
+ {{17095038064838151320ull, 440334444803013ull}},
+ {{2607984007644790086ull, 352267555842411ull}},
+ {{16843782465083473361ull, 281814044673928ull}},
+ {{4813959055682095439ull, 450902471478286ull}},
+ {{161818429803766028ull, 360721977182629ull}},
+ {{3818803558584923146ull, 288577581746103ull}},
+ {{2420736878993966710ull, 461724130793765ull}},
+ {{1936589503195173368ull, 369379304635012ull}},
+ {{12617318046781869664ull, 295503443708009ull}},
+ {{9119662430625260493ull, 472805509932815ull}},
+ {{7295729944500208394ull, 378244407946252ull}},
+ {{16904630399825897685ull, 302595526357001ull}},
+ {{1221966936528064034ull, 484152842171203ull}},
+ {{8356271178706271873ull, 387322273736962ull}},
+ {{17753063387190748468ull, 309857818989569ull}},
+ {{17336854975279466580ull, 495772510383311ull}},
+ {{10180135165481662941ull, 396618008306649ull}},
+ {{11833456947127240676ull, 317294406645319ull}},
+ {{7865484671177854112ull, 507671050632511ull}},
+ {{2603038922200372966ull, 406136840506009ull}},
+ {{5771779952502208696ull, 324909472404807ull}},
+ {{12924196738745444237ull, 519855155847691ull}},
+ {{6650008576254445066ull, 415884124678153ull}},
+ {{12698704490487376699ull, 332707299742522ull}},
+ {{5560531925812161426ull, 532331679588036ull}},
+ {{759076725907818818ull, 425865343670429ull}},
+ {{4296610195468165377ull, 340692274936343ull}},
+ {{3185227498007154281ull, 545107639898149ull}},
+ {{6237530813147633748ull, 436086111918519ull}},
+ {{8679373465260017321ull, 348868889534815ull}},
+ {{13886997544416027714ull, 558190223255704ull}},
+ {{14798946850274732495ull, 446552178604563ull}},
+ {{771111035994055026ull, 357241742883651ull}},
+ {{15374284087762885313ull, 285793394306920ull}},
+ {{6152110466711064886ull, 457269430891073ull}},
+ {{12300386002852672555ull, 365815544712858ull}},
+ {{17219006431765958690ull, 292652435770286ull}},
+ {{1724968587632161642ull, 468243897232459ull}},
+ {{5069323684847639637ull, 374595117785967ull}},
+ {{15123505392103842679ull, 299676094228773ull}},
+ {{2061515738914686348ull, 479481750766038ull}},
+ {{9027910220615569724ull, 383585400612830ull}},
+ {{7222328176492455779ull, 306868320490264ull}},
+ {{487678638162198278ull, 490989312784423ull}},
+ {{7768840540013579269ull, 392791450227538ull}},
+ {{13593770061494684061ull, 314233160182030ull}},
+ {{3303288024681942882ull, 502773056291249ull}},
+ {{6331979234487464629ull, 402218445032999ull}},
+ {{8754932202331882026ull, 321774756026399ull}},
+ {{2939845079505280272ull, 514839609642239ull}},
+ {{6041224878346134541ull, 411871687713791ull}},
+ {{1143631087934997310ull, 329497350171033ull}},
+ {{16587204999663636988ull, 527195760273652ull}},
+ {{5891066370247088944ull, 421756608218922ull}},
+ {{15780899540423402125ull, 337405286575137ull}},
+ {{10492044005709802107ull, 539848458520220ull}},
+ {{8393635204567841686ull, 431878766816176ull}},
+ {{3025559348912363025ull, 345503013452941ull}},
+ {{15908941402485511810ull, 552804821524705ull}},
+ {{12727153121988409448ull, 442243857219764ull}},
+ {{13871071312332637882ull, 353795085775811ull}},
+ {{7407508235124199982ull, 283036068620649ull}},
+ {{783966731972989002ull, 452857709793039ull}},
+ {{4316522200320301525ull, 362286167834431ull}},
+ {{18210613019223882512ull, 289828934267544ull}},
+ {{18068934386532481051ull, 463726294828071ull}},
+ {{10765798694484074517ull, 370981035862457ull}},
+ {{1233941326103438967ull, 296784828689966ull}},
+ {{13042352565991233317ull, 474855725903945ull}},
+ {{10433882052792986654ull, 379884580723156ull}},
+ {{4657756827492479000ull, 303907664578525ull}},
+ {{7452410923987966400ull, 486252263325640ull}},
+ {{5961928739190373120ull, 389001810660512ull}},
+ {{15837589435578029465ull, 311201448528409ull}},
+ {{14272096652699116175ull, 497922317645455ull}},
+ {{11417677322159292940ull, 398337854116364ull}},
+ {{12823490672469344675ull, 318670283293091ull}},
+ {{13138887446467130834ull, 509872453268946ull}},
+ {{6821761142431794344ull, 407897962615157ull}},
+ {{16525455358171166445ull, 326318370092125ull}},
+ {{7993984499364314696ull, 522109392147401ull}},
+ {{2705838784749541434ull, 417687513717921ull}},
+ {{16922066286767274440ull, 334150010974336ull}},
+ {{1249864355634266841ull, 534640017558939ull}},
+ {{4689240299249323796ull, 427712014047151ull}},
+ {{62043424657548713ull, 342169611237721ull}},
+ {{11167315923677808911ull, 547471377980353ull}},
+ {{16312550368426067775ull, 437977102384282ull}},
+ {{5671342665257033574ull, 350381681907426ull}},
+ {{1695450634927433072ull, 560610691051882ull}},
+ {{12424406952167677427ull, 448488552841505ull}},
+ {{9939525561734141942ull, 358790842273204ull}},
+ {{11640969264129223876ull, 287032673818563ull}},
+ {{14936202007864847879ull, 459252278109701ull}},
+ {{8259612791549967980ull, 367401822487761ull}},
+ {{2918341418498064061ull, 293921457990209ull}},
+ {{12048043899080723144ull, 470274332784334ull}},
+ {{13327783934006488838ull, 376219466227467ull}},
+ {{3283529517721370424ull, 300975572981974ull}},
+ {{12632344857838013325ull, 481560916771158ull}},
+ {{17484573515754231307ull, 385248733416926ull}},
+ {{10298309997861474722ull, 308198986733541ull}},
+ {{9098598367094538909ull, 493118378773666ull}},
+ {{3589529878933720804ull, 394494703018933ull}},
+ {{10250321532630797289ull, 315595762415146ull}},
+ {{9021816822725455017ull, 504953219864234ull}},
+ {{10906802272922274337ull, 403962575891387ull}},
+ {{1346744188853998823ull, 323170060713110ull}},
+ {{2154790702166398117ull, 517072097140976ull}},
+ {{16481227820700759786ull, 413657677712780ull}},
+ {{13184982256560607829ull, 330926142170224ull}},
+ {{10027925166271241557ull, 529481827472359ull}},
+ {{11711688947758903569ull, 423585461977887ull}},
+ {{1990653528723302208ull, 338868369582310ull}},
+ {{3185045645957283534ull, 542189391331696ull}},
+ {{17305431775733468120ull, 433751513065356ull}},
+ {{10154996605844864172ull, 347001210452285ull}},
+ {{16247994569351782676ull, 555201936723656ull}},
+ {{9309046840739515818ull, 444161549378925ull}},
+ {{7447237472591612654ull, 355329239503140ull}},
+ {{5957789978073290123ull, 284263391602512ull}},
+ {{13221812779659174521ull, 454821426564019ull}},
+ {{14266799038469249940ull, 363857141251215ull}},
+ {{11413439230775399952ull, 291085713000972ull}},
+ {{3504107510272998630ull, 465737140801556ull}},
+ {{17560681267186040197ull, 372589712641244ull}},
+ {{17737893828490742480ull, 298071770112995ull}},
+ {{9933886051875636353ull, 476914832180793ull}},
+ {{15325806470984329729ull, 381531865744634ull}},
+ {{15949993991529374106ull, 305225492595707ull}},
+ {{10762595127479357277ull, 488360788153132ull}},
+ {{1231378472499665175ull, 390688630522506ull}},
+ {{15742498036967373433ull, 312550904418004ull}},
+ {{14119950414922066523ull, 500081447068807ull}},
+ {{3917262702453832572ull, 400065157655046ull}},
+ {{17891205420930707350ull, 320052126124036ull}},
+ {{2800486970295759499ull, 512083401798459ull}},
+ {{5929738390978517922ull, 409666721438767ull}},
+ {{15811837157008545307ull, 327733377151013ull}},
+ {{3162846562762210552ull, 524373403441622ull}},
+ {{13598323694435499411ull, 419498722753297ull}},
+ {{3499961326064578883ull, 335598978202638ull}},
+ {{1910589306961415889ull, 536958365124221ull}},
+ {{16285866704536774004ull, 429566692099376ull}},
+ {{9339344548887508880ull, 343653353679501ull}},
+ {{7564253648736193562ull, 549845365887202ull}},
+ {{17119449363214685819ull, 439876292709761ull}},
+ {{10006210675829838332ull, 351901034167809ull}},
+ {{11694317355405780989ull, 281520827334247ull}},
+ {{3953512509681608289ull, 450433323734796ull}},
+ {{17920205266712927924ull, 360346658987836ull}},
+ {{10646815398628432016ull, 288277327190269ull}},
+ {{5966858193579760256ull, 461243723504431ull}},
+ {{1084137740121897882ull, 368994978803545ull}},
+ {{867310192097518305ull, 295195983042836ull}},
+ {{12455742751581760258ull, 472313572868537ull}},
+ {{2585896571781587560ull, 377850858294830ull}},
+ {{2068717257425270048ull, 302280686635864ull}},
+ {{10688645241364252724ull, 483649098617382ull}},
+ {{1172218563607581532ull, 386919278893906ull}},
+ {{15695170109853706519ull, 309535423115124ull}},
+ {{14044225731540199461ull, 495256676984199ull}},
+ {{14924729399974069892ull, 396205341587359ull}},
+ {{15629132334721166236ull, 316964273269887ull}},
+ {{10249216476586224686ull, 507142837231820ull}},
+ {{8199373181268979748ull, 405714269785456ull}},
+ {{2870149730273273475ull, 324571415828365ull}},
+ {{4592239568437237561ull, 519314265325384ull}},
+ {{7363140469491700372ull, 415451412260307ull}},
+ {{16958558819819091267ull, 332361129808245ull}},
+ {{8686950038000994412ull, 531777807693193ull}},
+ {{14328257659884616176ull, 425422246154554ull}},
+ {{15151954942649603264ull, 340337796923643ull}},
+ {{2107035019787903283ull, 544540475077830ull}},
+ {{1685628015830322626ull, 435632380062264ull}},
+ {{5037851227406168424ull, 348505904049811ull}},
+ {{681864334366048832ull, 557609446479698ull}},
+ {{7924189096976659712ull, 446087557183758ull}},
+ {{13718048907065148416ull, 356870045747006ull}},
+ {{7285090310910208409ull, 285496036597605ull}},
+ {{11656144497456333455ull, 456793658556168ull}},
+ {{16703613227448887411ull, 365434926844934ull}},
+ {{17052239396701020252ull, 292347941475947ull}},
+ {{12526187775753991110ull, 467756706361516ull}},
+ {{6331601405861282565ull, 374205365089213ull}},
+ {{12443978754172846698ull, 299364292071370ull}},
+ {{1463621932967003101ull, 478982867314193ull}},
+ {{8549595175857423127ull, 383186293851354ull}},
+ {{10529024955427848825ull, 306549035081083ull}},
+ {{13157091113942647797ull, 490478456129733ull}},
+ {{17904370520637938884ull, 392382764903786ull}},
+ {{10634147601768440784ull, 313906211923029ull}},
+ {{5946589718603774285ull, 502249939076847ull}},
+ {{15825318219108750397ull, 401799951261477ull}},
+ {{5281556945803179671ull, 321439961009182ull}},
+ {{12139839928026997798ull, 514303937614691ull}},
+ {{6022523127679687915ull, 411443150091753ull}},
+ {{12196716131627570978ull, 329154520073402ull}},
+ {{4757350551636472273ull, 526647232117444ull}},
+ {{7495229256051088141ull, 421317785693955ull}},
+ {{5996183404840870513ull, 337054228555164ull}},
+ {{16972591077229213467ull, 539286765688262ull}},
+ {{6199375232299550127ull, 431429412550610ull}},
+ {{4959500185839640102ull, 345143530040488ull}},
+ {{4245851482601513840ull, 552229648064781ull}},
+ {{18154076445048852365ull, 441783718451824ull}},
+ {{18212609970780992215ull, 353426974761459ull}},
+ {{18259436791366704095ull, 282741579809167ull}},
+ {{14457703607219085259ull, 452386527694668ull}},
+ {{498116441549537238ull, 361909222155735ull}},
+ {{398493153239629790ull, 289527377724588ull}},
+ {{15394984304151048957ull, 463243804359340ull}},
+ {{12315987443320839166ull, 370595043487472ull}},
+ {{2474092325172850686ull, 296476034789978ull}},
+ {{269198905534650775ull, 474361655663965ull}},
+ {{215359124427720620ull, 379489324531172ull}},
+ {{11240333743767907465ull, 303591459624937ull}},
+ {{3227138731061010652ull, 485746335399900ull}},
+ {{2581710984848808522ull, 388597068319920ull}},
+ {{2065368787879046817ull, 310877654655936ull}},
+ {{14372636504832205877ull, 497404247449497ull}},
+ {{4119411574381944055ull, 397923397959598ull}},
+ {{10674226888989375891ull, 318338718367678ull}},
+ {{13389414207641091102ull, 509341949388285ull}},
+ {{10711531366112872882ull, 407473559510628ull}},
+ {{15947922722374118952ull, 325978847608502ull}},
+ {{10759281096830949030ull, 521566156173604ull}},
+ {{12296773692206669547ull, 417252924938883ull}},
+ {{17216116583249156284ull, 333802339951106ull}},
+ {{1720344830005277792ull, 534083743921771ull}},
+ {{16133671122971863527ull, 427266995137416ull}},
+ {{9217588083635580498ull, 341813596109933ull}},
+ {{11058792119075018474ull, 546901753775893ull}},
+ {{16225731324743835425ull, 437521403020714ull}},
+ {{16669933874536978663ull, 350017122416571ull}},
+ {{846452496065793599ull, 560027395866515ull}},
+ {{677161996852634879ull, 448021916693212ull}},
+ {{11609776041707838873ull, 358417533354569ull}},
+ {{12977169648108181421ull, 286734026683655ull}},
+ {{2316727363263538659ull, 458774442693849ull}},
+ {{5542730705352741250ull, 367019554155079ull}},
+ {{8123533379024103323ull, 293615643324063ull}},
+ {{9308304591696654994ull, 469785029318501ull}},
+ {{3757294858615413672ull, 375828023454801ull}},
+ {{17763231145859972230ull, 300662418763840ull}},
+ {{9974425759666403953ull, 481059870022145ull}},
+ {{7979540607733123162ull, 384847896017716ull}},
+ {{2694283671444588206ull, 307878316814173ull}},
+ {{621505059569430807ull, 492605306902677ull}},
+ {{11565250491881275615ull, 394084245522141ull}},
+ {{5562851578763110169ull, 315267396417713ull}},
+ {{5211213711279065947ull, 504427834268341ull}},
+ {{479622154281342435ull, 403542267414673ull}},
+ {{7762395352908894594ull, 322833813931738ull}},
+ {{8730483749912321028ull, 516534102290781ull}},
+ {{3295038185187946499ull, 413227281832625ull}},
+ {{2636030548150357199ull, 330581825466100ull}},
+ {{4217648877040571519ull, 528930920745760ull}},
+ {{3374119101632457215ull, 423144736596608ull}},
+ {{10077992910789786418ull, 338515789277286ull}},
+ {{8746091027779837623ull, 541625262843658ull}},
+ {{14375570451707690745ull, 433300210274926ull}},
+ {{7811107546624242272ull, 346640168219941ull}},
+ {{5119074445114966990ull, 554624269151906ull}},
+ {{405910741350063268ull, 443699415321525ull}},
+ {{324728593080050615ull, 354959532257220ull}},
+ {{259782874464040492ull, 283967625805776ull}},
+ {{11483699043368195756ull, 454348201289241ull}},
+ {{5497610419952646282ull, 363478561031393ull}},
+ {{11776785965445937672ull, 290782848825114ull}},
+ {{7774811100487769306ull, 465252558120183ull}},
+ {{13598546509874036091ull, 372202046496146ull}},
+ {{7189488393157318549ull, 297761637196917ull}},
+ {{15192530243793620002ull, 476418619515067ull}},
+ {{4775326565551075355ull, 381134895612054ull}},
+ {{7509610067182770607ull, 304907916489643ull}},
+ {{8326027292750522649ull, 487852666383429ull}},
+ {{10350170648942328442ull, 390282133106743ull}},
+ {{15658834148637683400ull, 312225706485394ull}},
+ {{13986088193594562471ull, 499561130376631ull}},
+ {{7499521740133739653ull, 399648904301305ull}},
+ {{5999617392106991723ull, 319719123441044ull}},
+ {{16978085456855007403ull, 511550597505670ull}},
+ {{13582468365484005922ull, 409240478004536ull}},
+ {{7176625877645294415ull, 327392382403629ull}},
+ {{414554960006740094ull, 523827811845807ull}},
+ {{11399690412231123045ull, 419062249476645ull}},
+ {{9119752329784898436ull, 335249799581316ull}},
+ {{7212906098172016851ull, 536399679330106ull}},
+ {{2080976063795703157ull, 429119743464085ull}},
+ {{1664780851036562526ull, 343295794771268ull}},
+ {{17421044620626141334ull, 549273271634028ull}},
+ {{2868789252275182098ull, 439418617307223ull}},
+ {{9673729031303966325ull, 351534893845778ull}},
+ {{11788617635344435796ull, 562455830153245ull}},
+ {{9430894108275548637ull, 449964664122596ull}},
+ {{3855366471878528586ull, 359971731298077ull}},
+ {{14152339621728553839ull, 287977385038461ull}},
+ {{15265045765281865496ull, 460763816061538ull}},
+ {{1143990167999761427ull, 368611052849231ull}},
+ {{15672587393367450434ull, 294888842279384ull}},
+ {{14008093385162189725ull, 471822147647015ull}},
+ {{11206474708129751780ull, 377457718117612ull}},
+ {{1586482137019980778ull, 301966174494090ull}},
+ {{2538371419231969244ull, 483145879190544ull}},
+ {{5720045950127485719ull, 386516703352435ull}},
+ {{4576036760101988575ull, 309213362681948ull}},
+ {{3632310001421271397ull, 494741380291117ull}},
+ {{13973894445362748087ull, 395793104232893ull}},
+ {{111069112064467500ull, 316634483386315ull}},
+ {{177710579303148000ull, 506615173418104ull}},
+ {{3831517278184428723ull, 405292138734483ull}},
+ {{10443911452031363625ull, 324233710987586ull}},
+ {{9331560693766361154ull, 518773937580138ull}},
+ {{14843946184496909569ull, 415019150064110ull}},
+ {{11875156947597527655ull, 332015320051288ull}},
+ {{15310902301414133926ull, 531224512082061ull}},
+ {{8559373026389396817ull, 424979609665649ull}},
+ {{10536847235853427777ull, 339983687732519ull}},
+ {{5790909133139753474ull, 543973900372031ull}},
+ {{943378491769892456ull, 435179120297625ull}},
+ {{754702793415913964ull, 348143296238100ull}},
+ {{1207524469465462343ull, 557029273980960ull}},
+ {{966019575572369875ull, 445623419184768ull}},
+ {{8151513289941716546ull, 356498735347814ull}},
+ {{10210559446695283560ull, 285198988278251ull}},
+ {{8958197485228633050ull, 456318381245202ull}},
+ {{18234604432408637409ull, 365054704996161ull}},
+ {{10898334731184999604ull, 292043763996929ull}},
+ {{6369289125670268397ull, 467270022395087ull}},
+ {{16163477744761945687ull, 373816017916069ull}},
+ {{16620131010551466873ull, 299052814332855ull}},
+ {{8145465543172795381ull, 478484502932569ull}},
+ {{10205721249280146628ull, 382787602346055ull}},
+ {{8164576999424117302ull, 306230081876844ull}},
+ {{1995276754852856714ull, 489968131002951ull}},
+ {{16353616662849926664ull, 391974504802360ull}},
+ {{13082893330279941331ull, 313579603841888ull}},
+ {{17243280513705995807ull, 501727366147021ull}},
+ {{10105275596222886322ull, 401381892917617ull}},
+ {{705522847494488411ull, 321105514334094ull}},
+ {{8507534185475002105ull, 513768822934550ull}},
+ {{6806027348380001684ull, 411015058347640ull}},
+ {{5444821878704001347ull, 328812046678112ull}},
+ {{12401063820668312478ull, 526099274684979ull}},
+ {{13610199871276560306ull, 420879419747983ull}},
+ {{18266857526505068891ull, 336703535798386ull}},
+ {{3401530339214737964ull, 538725657277419ull}},
+ {{6410573086113700694ull, 430980525821935ull}},
+ {{5128458468890960555ull, 344784420657548ull}},
+ {{4516184735483626565ull, 551655073052077ull}},
+ {{14680994232612632222ull, 441324058441661ull}},
+ {{8055446571348195454ull, 353059246753329ull}},
+ {{10133706071820466686ull, 282447397402663ull}},
+ {{12524580900170836375ull, 451915835844261ull}},
+ {{6330315905394758777ull, 361532668675409ull}},
+ {{8753601539057717345ull, 289226134940327ull}},
+ {{17695111277234258075ull, 462761815904523ull}},
+ {{3088042577561675490ull, 370209452723619ull}},
+ {{6159782876791250715ull, 296167562178895ull}},
+ {{9855652602866001145ull, 473868099486232ull}},
+ {{505824452808980269ull, 379094479588986ull}},
+ {{15162054821214825508ull, 303275583671188ull}},
+ {{2123194825492258874ull, 485240933873902ull}},
+ {{12766602304619538069ull, 388192747099121ull}},
+ {{6523933028953720132ull, 310554197679297ull}},
+ {{14127641661067862534ull, 496886716286875ull}},
+ {{11302113328854290027ull, 397509373029500ull}},
+ {{9041690663083432022ull, 318007498423600ull}},
+ {{14466705060933491235ull, 508811997477760ull}},
+ {{11573364048746792988ull, 407049597982208ull}},
+ {{16637388868481255037ull, 325639678385766ull}},
+ {{794380486376635797ull, 521023485417227ull}},
+ {{11703550833327039607ull, 416818788333781ull}},
+ {{5673491851919721362ull, 333455030667025ull}},
+ {{9077586963071554180ull, 533528049067240ull}},
+ {{7262069570457243344ull, 426822439253792ull}},
+ {{16877702100591525644ull, 341457951403033ull}},
+ {{4868230472494979092ull, 546332722244854ull}},
+ {{7583933192737893597ull, 437066177795883ull}},
+ {{13445844183674135524ull, 349652942236706ull}},
+ {{14134653064394796192ull, 559444707578730ull}},
+ {{11307722451515836953ull, 447555766062984ull}},
+ {{12735526775954579886ull, 358044612850387ull}},
+ {{2809723791279843262ull, 286435690280310ull}},
+ {{4495558066047749220ull, 458297104448496ull}},
+ {{18353841711805840668ull, 366637683558796ull}},
+ {{10993724554702762211ull, 293310146847037ull}},
+ {{2832564028556778246ull, 469296234955260ull}},
+ {{2266051222845422597ull, 375436987964208ull}},
+ {{9191538607760158724ull, 300349590371366ull}},
+ {{7327764142932433312ull, 480559344594186ull}},
+ {{2172862499604036326ull, 384447475675349ull}},
+ {{5427638814425139384ull, 307557980540279ull}},
+ {{16062919732564043661ull, 492092768864446ull}},
+ {{9160986971309324605ull, 393674215091557ull}},
+ {{18396836021273190654ull, 314939372073245ull}},
+ {{10988193560327553430ull, 503902995317193ull}},
+ {{16169252477745863391ull, 403122396253754ull}},
+ {{16624750796938601036ull, 322497917003003ull}},
+ {{4463508386650299718ull, 515996667204806ull}},
+ {{18328201968287881067ull, 412797333763844ull}},
+ {{18351910389372215177ull, 330237867011075ull}},
+ {{10916312549285992667ull, 528380587217721ull}},
+ {{5043701224686883811ull, 422704469774177ull}},
+ {{15103007423975238018ull, 338163575819341ull}},
+ {{16786114248876560183ull, 541061721310946ull}},
+ {{9739542584359337823ull, 432849377048757ull}},
+ {{412936438003649612ull, 346279501639006ull}},
+ {{11728744745031570349ull, 554047202622409ull}},
+ {{13072344610767166602ull, 443237762097927ull}},
+ {{3079178059129912635ull, 354590209678342ull}},
+ {{13531388891529661078ull, 283672167742673ull}},
+ {{17960873411705547401ull, 453875468388277ull}},
+ {{6990001099880617274ull, 363100374710622ull}},
+ {{16660047324130224789ull, 290480299768497ull}},
+ {{11898680459640718370ull, 464768479629596ull}},
+ {{5829595552970664373ull, 371814783703677ull}},
+ {{15731722886602262468ull, 297451826962941ull}},
+ {{17792058989079799302ull, 475922923140706ull}},
+ {{10544298376521929118ull, 380738338512565ull}},
+ {{8435438701217543295ull, 304590670810052ull}},
+ {{17186050736689979595ull, 487345073296083ull}},
+ {{2680794145126252706ull, 389876058636867ull}},
+ {{13212681760326733135ull, 311900846909493ull}},
+ {{17450942001780862692ull, 499041355055189ull}},
+ {{17650102416166600477ull, 399233084044151ull}},
+ {{10430733118191370058ull, 319386467235321ull}},
+ {{9310475359622371447ull, 511018347576514ull}},
+ {{11137729102439807481ull, 408814678061211ull}},
+ {{5220834467209935661ull, 327051742448969ull}},
+ {{15732032777019717705ull, 523282787918350ull}},
+ {{12585626221615774164ull, 418626230334680ull}},
+ {{10068500977292619331ull, 334900984267744ull}},
+ {{5041555119442459960ull, 535841574828391ull}},
+ {{343895280812057645ull, 428673259862713ull}},
+ {{7653813854133466762ull, 342938607890170ull}},
+ {{12246102166613546820ull, 548701772624272ull}},
+ {{2418184103807016809ull, 438961418099418ull}},
+ {{9313244912529434094ull, 351169134479534ull}},
+ {{3833145415821363581ull, 561870615167255ull}},
+ {{3066516332657090864ull, 449496492133804ull}},
+ {{6142561880867583015ull, 359597193707043ull}},
+ {{12292747134177887058ull, 287677754965634ull}},
+ {{8600348970458888324ull, 460284407945015ull}},
+ {{6880279176367110659ull, 368227526356012ull}},
+ {{16572269785319419497ull, 294582021084809ull}},
+ {{15447585212285340225ull, 471331233735695ull}},
+ {{12358068169828272180ull, 377064986988556ull}},
+ {{6197105721120707421ull, 301651989590845ull}},
+ {{9915369153793131873ull, 482643183345352ull}},
+ {{553597693550684852ull, 386114546676282ull}},
+ {{11510924599066278851ull, 308891637341025ull}},
+ {{18417479358506046162ull, 494226619745640ull}},
+ {{14733983486804836930ull, 395381295796512ull}},
+ {{4408489159960048897ull, 316305036637210ull}},
+ {{7053582655936078236ull, 506088058619536ull}},
+ {{1953517310006952266ull, 404870446895629ull}},
+ {{5252162662747472136ull, 323896357516503ull}},
+ {{4714111445654045094ull, 518234172026405ull}},
+ {{3771289156523236075ull, 414587337621124ull}},
+ {{6706380139960499183ull, 331669870096899ull}},
+ {{18108905853420619340ull, 530671792155038ull}},
+ {{3419078238510764502ull, 424537433724031ull}},
+ {{17492657849776252894ull, 339629946979224ull}},
+ {{16920206115416273662ull, 543407915166759ull}},
+ {{17225513707074929252ull, 434726332133407ull}},
+ {{6401713336176122755ull, 347781065706726ull}},
+ {{2864043708397975763ull, 556449705130762ull}},
+ {{13359281410944111580ull, 445159764104609ull}},
+ {{14376773943497199587ull, 356127811283687ull}},
+ {{4122721525313939023ull, 284902249026950ull}},
+ {{6596354440502302437ull, 455843598443120ull}},
+ {{5277083552401841949ull, 364674878754496ull}},
+ {{532318027179563236ull, 291739903003597ull}},
+ {{4541057658229211502ull, 466783844805755ull}},
+ {{3632846126583369201ull, 373427075844604ull}},
+ {{6595625716008605684ull, 298741660675683ull}},
+ {{6863652330871858772ull, 477986657081093ull}},
+ {{12869619494181307664ull, 382389325664874ull}},
+ {{13985044410086956454ull, 305911460531899ull}},
+ {{11308024611913399357ull, 489458336851039ull}},
+ {{12735768504272629809ull, 391566669480831ull}},
+ {{6499265988676193524ull, 313253335584665ull}},
+ {{10398825581881909638ull, 501205336935464ull}},
+ {{12008409280247438034ull, 400964269548371ull}},
+ {{5917378609456040104ull, 320771415638697ull}},
+ {{13157154589871574489ull, 513234265021915ull}},
+ {{10525723671897259591ull, 410587412017532ull}},
+ {{1041881308033987027ull, 328469929614026ull}},
+ {{12735056537080110212ull, 525551887382441ull}},
+ {{6498696414922177847ull, 420441509905953ull}},
+ {{12577654761421562924ull, 336353207924762ull}},
+ {{5366852359306859385ull, 538165132679620ull}},
+ {{4293481887445487508ull, 430532106143696ull}},
+ {{18192180768924031299ull, 344425684914956ull}},
+ {{3282047527085077817ull, 551081095863931ull}},
+ {{17383033280635703546ull, 440864876691144ull}},
+ {{17595775439250473160ull, 352691901352915ull}},
+ {{14076620351400378528ull, 282153521082332ull}},
+ {{7765197303272964352ull, 451445633731732ull}},
+ {{17280204286844102451ull, 361156506985385ull}},
+ {{13824163429475281961ull, 288925205588308ull}},
+ {{18429312672418540814ull, 462280328941293ull}},
+ {{3675403693709101682ull, 369824263153035ull}},
+ {{2940322954967281345ull, 295859410522428ull}},
+ {{1015167913205739830ull, 473375056835885ull}},
+ {{812134330564591864ull, 378700045468708ull}},
+ {{8028405093935494137ull, 302960036374966ull}},
+ {{5466750520812969973ull, 484736058199946ull}},
+ {{684051601908465655ull, 387788846559957ull}},
+ {{11615287725752503494ull, 310231077247965ull}},
+ {{137716287494453974ull, 496369723596745ull}},
+ {{110173029995563179ull, 397095778877396ull}},
+ {{14845533682964091836ull, 317676623101916ull}},
+ {{16374156263258726292ull, 508282596963066ull}},
+ {{9409976195865070710ull, 406626077570453ull}},
+ {{14906678586175877214ull, 325300862056362ull}},
+ {{9093290478913762251ull, 520481379290180ull}},
+ {{7274632383131009800ull, 416385103432144ull}},
+ {{9509054721246718163ull, 333108082745715ull}},
+ {{15214487553994749062ull, 532972932393144ull}},
+ {{15860938857937709572ull, 426378345914515ull}},
+ {{12688751086350167658ull, 341102676731612ull}},
+ {{5544606479192626960ull, 545764282770580ull}},
+ {{4435685183354101568ull, 436611426216464ull}},
+ {{7237896961425191577ull, 349289140973171ull}},
+ {{4201937508796485878ull, 558862625557074ull}},
+ {{7050898821779099025ull, 447090100445659ull}},
+ {{9330067872165189543ull, 357672080356527ull}},
+ {{85356668248330988ull, 286137664285222ull}},
+ {{3825919483939239905ull, 457820262856355ull}},
+ {{3060735587151391924ull, 366256210285084ull}},
+ {{6137937284463023862ull, 293004968228067ull}},
+ {{13510048469882748503ull, 468807949164907ull}},
+ {{3429341146422378156ull, 375046359331926ull}},
+ {{17500868176105543817ull, 300037087465540ull}},
+ {{9554645008059318492ull, 480059339944865ull}},
+ {{7643716006447454793ull, 384047471955892ull}},
+ {{17183019249383694804ull, 307237977564713ull}},
+ {{5356737910562449748ull, 491580764103542ull}},
+ {{15353436772675690768ull, 393264611282833ull}},
+ {{1214702973914821645ull, 314611689026267ull}},
+ {{5632873573005624955ull, 503378702442027ull}},
+ {{15574345302630230933ull, 402702961953621ull}},
+ {{8770127427362274423ull, 322162369562897ull}},
+ {{17721552698521549401ull, 515459791300635ull}},
+ {{14177242158817239521ull, 412367833040508ull}},
+ {{273747282828060647ull, 329894266432407ull}},
+ {{4127344467266807358ull, 527830826291851ull}},
+ {{18059270832781087179ull, 422264661033480ull}},
+ {{14447416666224869743ull, 337811728826784ull}},
+ {{12047820221734060620ull, 540498766122855ull}},
+ {{9638256177387248496ull, 432399012898284ull}},
+ {{11399953756651709120ull, 345919210318627ull}},
+ {{3482530751675093299ull, 553470736509804ull}},
+ {{6475373416081984963ull, 442776589207843ull}},
+ {{12558996362349408616ull, 354221271366274ull}},
+ {{13736545904621437216ull, 283377017093019ull}},
+ {{10910427003168568577ull, 453403227348831ull}},
+ {{5038992787792944538ull, 362722581879065ull}},
+ {{4031194230234355630ull, 290178065503252ull}},
+ {{10139259583116879332ull, 464284904805203ull}},
+ {{15490105295977324112ull, 371427923844162ull}},
+ {{5013386607298038643ull, 297142339075330ull}},
+ {{8021418571676861829ull, 475427742520528ull}},
+ {{13795832486825310110ull, 380342194016422ull}},
+ {{3657968359976427441ull, 304273755213138ull}},
+ {{2163400561220373583ull, 486838008341021ull}},
+ {{16488115707943940159ull, 389470406672816ull}},
+ {{9501143751613241804ull, 311576325338253ull}},
+ {{11512481187839276563ull, 498522120541205ull}},
+ {{9209984950271421251ull, 398817696432964ull}},
+ {{11057336774959047324ull, 319054157146371ull}},
+ {{10313041210450655072ull, 510486651434194ull}},
+ {{11939781783102434380ull, 408389321147355ull}},
+ {{9551825426481947504ull, 326711456917884ull}},
+ {{4214874238145385037ull, 522738331068615ull}},
+ {{3371899390516308030ull, 418190664854892ull}},
+ {{13765565956638777393ull, 334552531883913ull}},
+ {{18335556715880133507ull, 535284051014261ull}},
+ {{10979096557962196482ull, 428227240811409ull}},
+ {{12472626061111667509ull, 342581792649127ull}},
+ {{5198806438811026721ull, 548130868238604ull}},
+ {{7848393965790731700ull, 438504694590883ull}},
+ {{13657412802116406006ull, 350803755672706ull}},
+ {{14473162853902428964ull, 561286009076330ull}},
+ {{11578530283121943171ull, 449028807261064ull}},
+ {{12952173041239464860ull, 359223045808851ull}},
+ {{6672389618249661565ull, 287378436647081ull}},
+ {{3297125759715637858ull, 459805498635330ull}},
+ {{2637700607772510286ull, 367844398908264ull}},
+ {{5799509300959918552ull, 294275519126611ull}},
+ {{1900517252052049037ull, 470840830602578ull}},
+ {{8899111431125459876ull, 376672664482062ull}},
+ {{18187335589126098870ull, 301338131585649ull}},
+ {{18031690498376027223ull, 482141010537039ull}},
+ {{18114701213442732101ull, 385712808429631ull}},
+ {{10802412156012275358ull, 308570246743705ull}},
+ {{17283859449619640573ull, 493712394789928ull}},
+ {{2759041115469981489ull, 394969915831943ull}},
+ {{9585930521859805837ull, 315975932665554ull}},
+ {{4269442390749958370ull, 505561492264887ull}},
+ {{14483600356825697666ull, 404449193811909ull}},
+ {{15276229100202468456ull, 323559355049527ull}},
+ {{9684571301356308236ull, 517694968079244ull}},
+ {{11437005855826956912ull, 414155974463395ull}},
+ {{9149604684661565530ull, 331324779570716ull}},
+ {{7260669865974684201ull, 530119647313146ull}},
+ {{2119187078037837038ull, 424095717850517ull}},
+ {{12763396106656000600ull, 339276574280413ull}},
+ {{16732084955907690637ull, 542842518848661ull}},
+ {{9696319149984242186ull, 434274015078929ull}},
+ {{11446404134729304072ull, 347419212063143ull}},
+ {{14624897800824976192ull, 555870739301029ull}},
+ {{15389267055401891277ull, 444696591440823ull}},
+ {{1243367200095782052ull, 355757273152659ull}},
+ {{4684042574818535965ull, 284605818522127ull}},
+ {{11183816934451567867ull, 455369309635403ull}},
+ {{16325751177045074940ull, 364295447708322ull}},
+ {{5681903312152239305ull, 291436358166658ull}},
+ {{5401696484701672566ull, 466298173066653ull}},
+ {{11700054817245158699ull, 373038538453322ull}},
+ {{1981346224312306313ull, 298430830762658ull}},
+ {{17927549217867331393ull, 477489329220252ull}},
+ {{6963341744810044468ull, 381991463376202ull}},
+ {{16638719840073766544ull, 305593170700961ull}},
+ {{796510040924654208ull, 488949073121539ull}},
+ {{4326556847481633690ull, 391159258497231ull}},
+ {{18218640736952948244ull, 312927406797784ull}},
+ {{18081778734898986222ull, 500683850876455ull}},
+ {{14465422987919188977ull, 400547080701164ull}},
+ {{15261687205077261505ull, 320437664560931ull}},
+ {{17040001898639797762ull, 512700263297490ull}},
+ {{13632001518911838209ull, 410160210637992ull}},
+ {{3526903585645649921ull, 328128168510394ull}},
+ {{13021743366516860520ull, 525005069616630ull}},
+ {{10417394693213488416ull, 420004055693304ull}},
+ {{12023264569312701056ull, 336003244554643ull}},
+ {{15547874496158411367ull, 537605191287429ull}},
+ {{16127648411668639416ull, 430084153029943ull}},
+ {{1834072285109180563ull, 344067322423955ull}},
+ {{2934515656174688902ull, 550507715878328ull}},
+ {{9726310154423571768ull, 440406172702662ull}},
+ {{402350494055036768ull, 352324938162130ull}},
+ {{321880395244029414ull, 281859950529704ull}},
+ {{7893706261874267709ull, 450975920847526ull}},
+ {{2625616194757503844ull, 360780736678021ull}},
+ {{16857888214773644368ull, 288624589342416ull}},
+ {{1147179440444458727ull, 461799342947867ull}},
+ {{11985789996581297951ull, 369439474358293ull}},
+ {{16967329626748859007ull, 295551579486634ull}},
+ {{16079680958572443442ull, 472882527178615ull}},
+ {{12863744766857954753ull, 378306021742892ull}},
+ {{2912298184002543156ull, 302644817394314ull}},
+ {{12038374723887889697ull, 484231707830902ull}},
+ {{2252002149626491111ull, 387385366264722ull}},
+ {{12869648163926923858ull, 309908293011777ull}},
+ {{5834041803315436880ull, 495853268818844ull}},
+ {{8356582257394259827ull, 396682615055075ull}},
+ {{6685265805915407862ull, 317346092044060ull}},
+ {{10696425289464652579ull, 507753747270496ull}},
+ {{4867791416829811740ull, 406202997816397ull}},
+ {{14962279577689580362ull, 324962398253117ull}},
+ {{9182252065335687286ull, 519939837204988ull}},
+ {{14724499281752370475ull, 415951869763990ull}},
+ {{11779599425401896380ull, 332761495811192ull}},
+ {{4089963821675392916ull, 532418393297908ull}},
+ {{10650668686824134979ull, 425934714638326ull}},
+ {{4831186134717397660ull, 340747771710661ull}},
+ {{351200186064015609ull, 545196434737058ull}},
+ {{7659657778335033134ull, 436157147789646ull}},
+ {{2438377407926116184ull, 348925718231717ull}},
+ {{7590752667423696218ull, 558281149170747ull}},
+ {{17140648578164687944ull, 446624919336597ull}},
+ {{6333821233047929708ull, 357299935469278ull}},
+ {{12445754615922164413ull, 285839948375422ull}},
+ {{5155812126507821768ull, 457343917400676ull}},
+ {{435300886464347091ull, 365875133920541ull}},
+ {{15105635968139118966ull, 292700107136432ull}},
+ {{9411622290054949053ull, 468320171418292ull}},
+ {{150600202560138596ull, 374656137134634ull}},
+ {{3809828976790021200ull, 299724909707707ull}},
+ {{9785075177605944243ull, 479559855532331ull}},
+ {{4138711327342845071ull, 383647884425865ull}},
+ {{3310969061874276057ull, 306918307540692ull}},
+ {{8986899313740752014ull, 491069292065107ull}},
+ {{18257565895218332581ull, 392855433652085ull}},
+ {{14606052716174666065ull, 314284346921668ull}},
+ {{1233591457428003764ull, 502854955074670ull}},
+ {{986873165942403011ull, 402283964059736ull}},
+ {{15546893791721563702ull, 321827171247788ull}},
+ {{2738937178303039984ull, 514923473996462ull}},
+ {{13259196186868162957ull, 411938779197169ull}},
+ {{14296705764236440689ull, 329551023357735ull}},
+ {{4427985149068753486ull, 527281637372377ull}},
+ {{14610434563480733758ull, 421825309897901ull}},
+ {{7998998836042676683ull, 337460247918321ull}},
+ {{5419700508184462047ull, 539936396669314ull}},
+ {{8025109221289479961ull, 431949117335451ull}},
+ {{2730738562289673645ull, 345559293868361ull}},
+ {{15437228143889208802ull, 552894870189377ull}},
+ {{4971084885627546395ull, 442315896151502ull}},
+ {{15044914352727768086ull, 353852716921201ull}},
+ {{8346582667440304145ull, 283082173536961ull}},
+ {{5975834638420665987ull, 452931477659138ull}},
+ {{12159365340220353436ull, 362345182127310ull}},
+ {{9727492272176282748ull, 289876145701848ull}},
+ {{11874638820740142074ull, 463801833122957ull}},
+ {{2121013427108293013ull, 371041466498366ull}},
+ {{16454206000654275703ull, 296833173198692ull}},
+ {{11569334342079199833ull, 474933077117908ull}},
+ {{16634165103147180512ull, 379946461694326ull}},
+ {{9617983267775834087ull, 303957169355461ull}},
+ {{8010075598957513892ull, 486331470968738ull}},
+ {{13786758108649831760ull, 389065176774990ull}},
+ {{11029406486919865408ull, 311252141419992ull}},
+ {{2889655120104143360ull, 498003426271988ull}},
+ {{9690421725567135335ull, 398402741017590ull}},
+ {{7752337380453708268ull, 318722192814072ull}},
+ {{16093088623467843552ull, 509955508502515ull}},
+ {{12874470898774274841ull, 407964406802012ull}},
+ {{2920879089535599226ull, 326371525441610ull}},
+ {{4673406543256958763ull, 522194440706576ull}},
+ {{49376419863656687ull, 417755552565261ull}},
+ {{14796896394858566642ull, 334204442052208ull}},
+ {{1538941343322244689ull, 534727107283534ull}},
+ {{4920501889399706074ull, 427781685826827ull}},
+ {{15004447955745495829ull, 342225348661461ull}},
+ {{16628419099708972680ull, 547560557858338ull}},
+ {{2234688835541447174ull, 438048446286671ull}},
+ {{16545146327400799032ull, 350438757029336ull}},
+ {{646792420647906189ull, 560702011246939ull}},
+ {{4206782751260235274ull, 448561608997551ull}},
+ {{18122821459975829512ull, 358849287198040ull}},
+ {{14498257167980663610ull, 287079429758432ull}},
+ {{8439816209801420483ull, 459327087613492ull}},
+ {{17819899412066867356ull, 367461670090793ull}},
+ {{3187873085427762915ull, 293969336072635ull}},
+ {{5100596936684420664ull, 470350937716216ull}},
+ {{391128734605626208ull, 376280750172973ull}},
+ {{7691600617168321613ull, 301024600138378ull}},
+ {{8617212172727404258ull, 481639360221405ull}},
+ {{6893769738181923406ull, 385311488177124ull}},
+ {{9204364605287449048ull, 308249190541699ull}},
+ {{3658936924234187507ull, 493198704866719ull}},
+ {{6616498354129260329ull, 394558963893375ull}},
+ {{5293198683303408263ull, 315647171114700ull}},
+ {{8469117893285453221ull, 505035473783520ull}},
+ {{6775294314628362577ull, 404028379026816ull}},
+ {{1730886636960779738ull, 323222703221453ull}},
+ {{17526813878104888874ull, 517156325154324ull}},
+ {{17710799917225821422ull, 413725060123459ull}},
+ {{17857988748522567461ull, 330980048098767ull}},
+ {{13815386738668466645ull, 529568076958028ull}},
+ {{18431007020418593962ull, 423654461566422ull}},
+ {{7366107986851054523ull, 338923569253138ull}},
+ {{8096423964219776915ull, 542277710805021ull}},
+ {{2787790356633911208ull, 433822168644017ull}},
+ {{13298278729532859936ull, 347057734915213ull}},
+ {{17587897152510665575ull, 555292375864341ull}},
+ {{10380968907266622137ull, 444233900691473ull}},
+ {{15683472755297118356ull, 355387120553178ull}},
+ {{1478731760011963715ull, 284309696442543ull}},
+ {{17123366074986783237ull, 454895514308068ull}},
+ {{2630646415763695620ull, 363916411446455ull}},
+ {{2104517132610956496ull, 291133129157164ull}},
+ {{10745925041661351040ull, 465813006651462ull}},
+ {{1218042403845260185ull, 372650405321170ull}},
+ {{974433923076208148ull, 298120324256936ull}},
+ {{12627140721147664007ull, 476992518811097ull}},
+ {{2723014947434310559ull, 381594015048878ull}},
+ {{9557109587431269094ull, 305275212039102ull}},
+ {{533980080922389257ull, 488440339262564ull}},
+ {{4116532879479821729ull, 390752271410051ull}},
+ {{18050621562551498676ull, 312601817128040ull}},
+ {{10434250426372846266ull, 500162907404865ull}},
+ {{8347400341098277012ull, 400130325923892ull}},
+ {{17745966717104352579ull, 320104260739113ull}},
+ {{6257453858915502188ull, 512166817182582ull}},
+ {{16074009531358132720ull, 409733453746065ull}},
+ {{12859207625086506176ull, 327786762996852ull}},
+ {{5817336941170768589ull, 524458820794964ull}},
+ {{8343218367678525194ull, 419567056635971ull}},
+ {{2985225879400909832ull, 335653645308777ull}},
+ {{8465710221783366055ull, 537045832494043ull}},
+ {{14151265806910513490ull, 429636665995234ull}},
+ {{15010361460270321115ull, 343709332796187ull}},
+ {{9259183077464872492ull, 549934932473900ull}},
+ {{7407346461971897993ull, 439947945979120ull}},
+ {{5925877169577518395ull, 351958356783296ull}},
+ {{1051352920920104392ull, 281566685426637ull}},
+ {{5371513488214077351ull, 450506696682619ull}},
+ {{7986559605313172204ull, 360405357346095ull}},
+ {{6389247684250537763ull, 288324285876876ull}},
+ {{2844098665317039775ull, 461318857403002ull}},
+ {{13343325376479362790ull, 369055085922401ull}},
+ {{6985311486441579908ull, 295244068737921ull}},
+ {{3797800748822707207ull, 472390509980674ull}},
+ {{6727589413800076089ull, 377912407984539ull}},
+ {{9071420345781971194ull, 302329926387631ull}},
+ {{7135574923767333265ull, 483727882220210ull}},
+ {{5708459939013866612ull, 386982305776168ull}},
+ {{11945465580694913936ull, 309585844620934ull}},
+ {{8044698484886131328ull, 495337351393495ull}},
+ {{6435758787908905062ull, 396269881114796ull}},
+ {{1459258215585213726ull, 317015904891837ull}},
+ {{6024161959678252286ull, 507225447826939ull}},
+ {{8508678382484512152ull, 405780358261551ull}},
+ {{3117593891245699398ull, 324624286609241ull}},
+ {{16056196670218850007ull, 519398858574785ull}},
+ {{12844957336175080005ull, 415519086859828ull}},
+ {{17654663498423884651ull, 332415269487862ull}},
+ {{13490066338510574148ull, 531864431180580ull}},
+ {{10792053070808459319ull, 425491544944464ull}},
+ {{12322991271388677778ull, 340393235955571ull}},
+ {{12338088404738063799ull, 544629177528914ull}},
+ {{13559819538532361362ull, 435703342023131ull}},
+ {{7158506816083978766ull, 348562673618505ull}},
+ {{11453610905734366026ull, 557700277789608ull}},
+ {{16541586354071313467ull, 446160222231686ull}},
+ {{9543920268515140451ull, 356928177785349ull}},
+ {{11324485029554022684ull, 285542542228279ull}},
+ {{7051129603060705325ull, 456868067565247ull}},
+ {{16708950126674295229ull, 365494454052197ull}},
+ {{5988462471855615537ull, 292395563241758ull}},
+ {{5892191140227074536ull, 467832901186813ull}},
+ {{12092450541665480275ull, 374266320949450ull}},
+ {{9673960433332384220ull, 299413056759560ull}},
+ {{15478336693331814752ull, 479060890815296ull}},
+ {{8693320539923541478ull, 383248712652237ull}},
+ {{18022702876164564152ull, 306598970121789ull}},
+ {{17768278157637571674ull, 490558352194863ull}},
+ {{3146576081884326370ull, 392446681755891ull}},
+ {{17274656124475102389ull, 313957345404712ull}},
+ {{12882054540192522529ull, 502331752647540ull}},
+ {{10305643632154018023ull, 401865402118032ull}},
+ {{865817276239393772ull, 321492321694426ull}},
+ {{12453354086208761005ull, 514387714711081ull}},
+ {{6273334454225098481ull, 411510171768865ull}},
+ {{5018667563380078785ull, 329208137415092ull}},
+ {{11719216916150036379ull, 526733019864147ull}},
+ {{1996675903436208457ull, 421386415891318ull}},
+ {{8976038352232787412ull, 337109132713054ull}},
+ {{3293614919346728889ull, 539374612340887ull}},
+ {{13702938379703114081ull, 431499689872709ull}},
+ {{14651699518504401588ull, 345199751898167ull}},
+ {{8685323970639401248ull, 552319603037068ull}},
+ {{14326956805995341645ull, 441855682429654ull}},
+ {{15150914259538183639ull, 353484545943723ull}},
+ {{1052684963404815941ull, 282787636754979ull}},
+ {{9062993570931526153ull, 452460218807966ull}},
+ {{3561046042003310599ull, 361968175046373ull}},
+ {{10227534463086469126ull, 289574540037098ull}},
+ {{12674706326196440278ull, 463319264059357ull}},
+ {{2761067431473331576ull, 370655411247486ull}},
+ {{16966249204146306553ull, 296524328997988ull}},
+ {{5009905838182628546ull, 474438926396782ull}},
+ {{15075971114771833807ull, 379551141117425ull}},
+ {{12060776891817467045ull, 303640912893940ull}},
+ {{850498953198395657ull, 485825460630305ull}},
+ {{680399162558716525ull, 388660368504244ull}},
+ {{4233668144788883543ull, 310928294803395ull}},
+ {{6773869031662213670ull, 497485271685432ull}},
+ {{16487141669555501905ull, 397988217348345ull}},
+ {{13189713335644401524ull, 318390573878676ull}},
+ {{13724843707547221792ull, 509424918205882ull}},
+ {{3601177336553956787ull, 407539934564706ull}},
+ {{17638337128210806723ull, 326031947651764ull}},
+ {{17153292960911559787ull, 521651116242823ull}},
+ {{2654587924503516860ull, 417320892994259ull}},
+ {{5813019154344723811ull, 333856714395407ull}},
+ {{12990179461693468421ull, 534170743032651ull}},
+ {{6702794754612864414ull, 427336594426121ull}},
+ {{1672886988948381208ull, 341869275540897ull}},
+ {{6365967997059320256ull, 546990840865435ull}},
+ {{5092774397647456204ull, 437592672692348ull}},
+ {{11452917147601785610ull, 350074138153878ull}},
+ {{14635318621420946653ull, 560118621046205ull}},
+ {{11708254897136757322ull, 448094896836964ull}},
+ {{13055952732451316181ull, 358475917469571ull}},
+ {{6755413371219142621ull, 286780733975657ull}},
+ {{14498010208692538518ull, 458849174361051ull}},
+ {{7909059352212120491ull, 367079339488841ull}},
+ {{2637898667027786069ull, 293663471591073ull}},
+ {{531289052502547388ull, 469861554545717ull}},
+ {{11493077686227768880ull, 375889243636573ull}},
+ {{16573159778466035750ull, 300711394909258ull}},
+ {{4380962757094195261ull, 481138231854814ull}},
+ {{7194119020417266532ull, 384910585483851ull}},
+ {{2065946401591902903ull, 307928468387081ull}},
+ {{14373560686772775614ull, 492685549419329ull}},
+ {{15188197364160130814ull, 394148439535463ull}},
+ {{1082511447102373682ull, 315318751628371ull}},
+ {{12800064759589528861ull, 504510002605393ull}},
+ {{17618749437155443735ull, 403608002084314ull}},
+ {{17784348364466265311ull, 322886401667451ull}},
+ {{2629515679952652235ull, 516618242667923ull}},
+ {{9482310173445942435ull, 413294594134338ull}},
+ {{14964545768240574594ull, 330635675307470ull}},
+ {{5496529155475367735ull, 529017080491953ull}},
+ {{11775920953864114834ull, 423213664393562ull}},
+ {{2042039133607471221ull, 338570931514850ull}},
+ {{3267262613771953953ull, 541713490423760ull}},
+ {{2613810091017563163ull, 433370792339008ull}},
+ {{9469745702297871176ull, 346696633871206ull}},
+ {{7772895494192773236ull, 554714614193930ull}},
+ {{6218316395354218589ull, 443771691355144ull}},
+ {{8664001931025285194ull, 355017353084115ull}},
+ {{6931201544820228155ull, 284013882467292ull}},
+ {{14779271286454275372ull, 454422211947667ull}},
+ {{4444719399679599651ull, 363537769558134ull}},
+ {{7245124334485590044ull, 290830215646507ull}},
+ {{15281547749918854394ull, 465328345034411ull}},
+ {{8535889385193173192ull, 372262676027529ull}},
+ {{10518060322896448876ull, 297810140822023ull}},
+ {{13139547701892407879ull, 476496225315237ull}},
+ {{3132940532030105657ull, 381196980252190ull}},
+ {{2506352425624084526ull, 304957584201752ull}},
+ {{7699512695740445564ull, 487932134722803ull}},
+ {{13538307786076177098ull, 390345707778242ull}},
+ {{3451948599377121032ull, 312276566222594ull}},
+ {{12901815388487214297ull, 499642505956150ull}},
+ {{10321452310789771438ull, 399714004764920ull}},
+ {{8257161848631817150ull, 319771203811936ull}},
+ {{5832761328327086794ull, 511633926099098ull}},
+ {{12044906692145490082ull, 409307140879278ull}},
+ {{17014622983200212712ull, 327445712703422ull}},
+ {{12466001514152699046ull, 523913140325476ull}},
+ {{6283452396580248914ull, 419130512260381ull}},
+ {{1337413102522288808ull, 335304409808305ull}},
+ {{2139860964035662092ull, 536487055693288ull}},
+ {{9090586400712350320ull, 429189644554630ull}},
+ {{7272469120569880256ull, 343351715643704ull}},
+ {{567904148686077440ull, 549362745029927ull}},
+ {{11522369763174592922ull, 439490196023941ull}},
+ {{5528546995797764014ull, 351592156819153ull}},
+ {{5156326378534512100ull, 562547450910645ull}},
+ {{4125061102827609680ull, 450037960728516ull}},
+ {{18057444141229729036ull, 360030368582812ull}},
+ {{7067257683499962583ull, 288024294866250ull}},
+ {{11307612293599940133ull, 460838871786000ull}},
+ {{9046089834879952106ull, 368671097428800ull}},
+ {{7236871867903961685ull, 294936877943040ull}},
+ {{11578994988646338696ull, 471899004708864ull}},
+ {{12952544805658981280ull, 377519203767091ull}},
+ {{6672687029785274700ull, 302015363013673ull}},
+ {{6986950432914529198ull, 483224580821877ull}},
+ {{16657606790557354328ull, 386579664657501ull}},
+ {{9636736617703973139ull, 309263731726001ull}},
+ {{8040080958842536376ull, 494821970761602ull}},
+ {{17500111211299760070ull, 395857576609281ull}},
+ {{10310740154297897733ull, 316686061287425ull}},
+ {{16497184246876636373ull, 506697698059880ull}},
+ {{13197747397501309098ull, 405358158447904ull}},
+ {{14247546732742957602ull, 324286526758323ull}},
+ {{659981883937270224ull, 518858442813318ull}},
+ {{7906683136633636826ull, 415086754250654ull}},
+ {{10014695324048819784ull, 332069403400523ull}},
+ {{12334163703736201331ull, 531311045440837ull}},
+ {{2488633333505140418ull, 425048836352670ull}},
+ {{1990906666804112334ull, 340039069082136ull}},
+ {{14253497111112310705ull, 544062510531417ull}},
+ {{4024100059406027917ull, 435250008425134ull}},
+ {{6908628862266732657ull, 348200006740107ull}},
+ {{14743154994368682575ull, 557120010784171ull}},
+ {{8105175180753035737ull, 445696008627337ull}},
+ {{17552186588828159559ull, 356556806901869ull}},
+ {{17731098085804437970ull, 285245445521495ull}},
+ {{9923012863577549136ull, 456392712834393ull}},
+ {{15317107920345859955ull, 365114170267514ull}},
+ {{15943035151018598287ull, 292091336214011ull}},
+ {{18130158612145936614ull, 467346137942418ull}},
+ {{3436080445491018321ull, 373876910353935ull}},
+ {{2748864356392814657ull, 299101528283148ull}},
+ {{708834155486593128ull, 478562445253037ull}},
+ {{11635113768615005472ull, 382849956202429ull}},
+ {{12997439829633914701ull, 306279964961943ull}},
+ {{17106554912672353198ull, 490047943939109ull}},
+ {{17374592744879792882ull, 392038355151287ull}},
+ {{6520976566420013659ull, 313630684121030ull}},
+ {{10433562506272021855ull, 501809094593648ull}},
+ {{15725547634501438130ull, 401447275674918ull}},
+ {{1512391663375419534ull, 321157820539935ull}},
+ {{2419826661400671255ull, 513852512863896ull}},
+ {{16693256588088178297ull, 411082010291116ull}},
+ {{9665256455728632314ull, 328865608232893ull}},
+ {{11775061514423901380ull, 526184973172629ull}},
+ {{13109398026281031427ull, 420947978538103ull}},
+ {{17866216050508645788ull, 336758382830482ull}},
+ {{13828550421846191968ull, 538813412528772ull}},
+ {{3684142707993132928ull, 431050730023018ull}},
+ {{10326011795878326989ull, 344840584018414ull}},
+ {{5453572429179592213ull, 551744934429463ull}},
+ {{11741555572827494416ull, 441395947543570ull}},
+ {{9393244458261995533ull, 353116758034856ull}},
+ {{3825246751867686103ull, 282493406427885ull}},
+ {{6120394802988297765ull, 451989450284616ull}},
+ {{1206967027648727889ull, 361591560227693ull}},
+ {{8344271251602802957ull, 289273248182154ull}},
+ {{2282787558338753763ull, 462837197091447ull}},
+ {{12894276490896733980ull, 370269757673157ull}},
+ {{2936723563233566537ull, 296215806138526ull}},
+ {{15766804145399437429ull, 473945289821641ull}},
+ {{8924094501577639620ull, 379156231857313ull}},
+ {{14517973230745932342ull, 303324985485850ull}},
+ {{4782013095483940132ull, 485319976777361ull}},
+ {{136261661645241782ull, 388255981421889ull}},
+ {{3798358144058103749ull, 310604785137511ull}},
+ {{17145419474718696968ull, 496967656220017ull}},
+ {{6337637950291136928ull, 397574124976014ull}},
+ {{8759459174974819866ull, 318059299980811ull}},
+ {{6636437050475891139ull, 508894879969298ull}},
+ {{12687847269864533557ull, 407115903975438ull}},
+ {{17528975445375447492ull, 325692723180350ull}},
+ {{9599616638891164372ull, 521108357088561ull}},
+ {{3990344496371021174ull, 416886685670849ull}},
+ {{6881624411838727263ull, 333509348536679ull}},
+ {{18389296688425784267ull, 533614957658686ull}},
+ {{11022088535998717090ull, 426891966126949ull}},
+ {{12507019643540883995ull, 341513572901559ull}},
+ {{8943184985439683423ull, 546421716642495ull}},
+ {{7154547988351746738ull, 437137373313996ull}},
+ {{2034289575939487067ull, 349709898651197ull}},
+ {{6944212136245089631ull, 559535837841915ull}},
+ {{5555369708996071705ull, 447628670273532ull}},
+ {{15512342211422588333ull, 358102936218825ull}},
+ {{12409873769138070667ull, 286482348975060ull}},
+ {{1409053956911361451ull, 458371758360097ull}},
+ {{12195289609754820130ull, 366697406688077ull}},
+ {{2377534058320035458ull, 293357925350462ull}},
+ {{7493403308053967056ull, 469372680560739ull}},
+ {{9684071461185083968ull, 375498144448591ull}},
+ {{4057908354206156851ull, 300398515558873ull}},
+ {{2803304551987940638ull, 480637624894197ull}},
+ {{13310690085816083480ull, 384510099915357ull}},
+ {{3269854439169046138ull, 307608079932286ull}},
+ {{16299813546896204790ull, 492172927891657ull}},
+ {{5661153208033143186ull, 393738342313326ull}},
+ {{839573751684604225ull, 314990673850661ull}},
+ {{12411364446921097730ull, 503985078161057ull}},
+ {{2550393928053057538ull, 403188062528846ull}},
+ {{16797710401410087323ull, 322550450023076ull}},
+ {{1050894939062767455ull, 516080720036923ull}},
+ {{8219413580734034610ull, 412864576029538ull}},
+ {{13954228494071048334ull, 330291660823630ull}},
+ {{3880021516804125719ull, 528466657317809ull}},
+ {{6793366028185210898ull, 422773325854247ull}},
+ {{16502739266773899688ull, 338218660683397ull}},
+ {{11646987567870598209ull, 541149857093436ull}},
+ {{5628241239554568244ull, 432919885674749ull}},
+ {{8191941806385564918ull, 346335908539799ull}},
+ {{2039060445991172899ull, 554137453663679ull}},
+ {{5320597171534848643ull, 443309962930943ull}},
+ {{11635175366711699560ull, 354647970344754ull}},
+ {{12997489108111269971ull, 283718376275803ull}},
+ {{17106633758236121631ull, 453949402041285ull}},
+ {{13685307006588897305ull, 363159521633028ull}},
+ {{18326943234754938490ull, 290527617306422ull}},
+ {{14565713916640260292ull, 464844187690276ull}},
+ {{7963222318570297910ull, 371875350152221ull}},
+ {{2681229040114328005ull, 297500280121777ull}},
+ {{7979315278924835131ull, 476000448194843ull}},
+ {{13762149852623688751ull, 380800358555874ull}},
+ {{14699068696840861324ull, 304640286844699ull}},
+ {{12450463470719647150ull, 487424458951519ull}},
+ {{13649719591317628043ull, 389939567161215ull}},
+ {{10919775673054102434ull, 311951653728972ull}},
+ {{2714245817918922602ull, 499122645966356ull}},
+ {{16928791913302779374ull, 399298116773084ull}},
+ {{17232382345384133823ull, 319438493418467ull}},
+ {{12814416493646972824ull, 511101589469548ull}},
+ {{17630230824401398905ull, 408881271575638ull}},
+ {{3036138215295388154ull, 327105017260511ull}},
+ {{15925867588698352017ull, 523368027616817ull}},
+ {{5361996441474860967ull, 418694422093454ull}},
+ {{7978945967921799097ull, 334955537674763ull}},
+ {{9076964733932968232ull, 535928860279621ull}},
+ {{3572222972404464262ull, 428743088223697ull}},
+ {{13925824822149302379ull, 342994470578957ull}},
+ {{7523924456471242514ull, 548791152926332ull}},
+ {{17087186009402724981ull, 439032922341065ull}},
+ {{13669748807522179985ull, 351226337872852ull}},
+ {{7114202833067846683ull, 561962140596564ull}},
+ {{9380711081196187670ull, 449569712477251ull}},
+ {{3815220050215039812ull, 359655769981801ull}},
+ {{17809571299139673143ull, 287724615985440ull}},
+ {{10048570004913925412ull, 460359385576705ull}},
+ {{8038856003931140330ull, 368287508461364ull}},
+ {{10120433617886822587ull, 294630006769091ull}},
+ {{8813996159135095493ull, 471408010830546ull}},
+ {{3361848112566166071ull, 377126408664437ull}},
+ {{13757524934278663826ull, 301701126931549ull}},
+ {{10943993450620131153ull, 482721803090479ull}},
+ {{12444543575238015245ull, 386177442472383ull}},
+ {{17334332489674232843ull, 308941953977906ull}},
+ {{1909490280285400286ull, 494307126364651ull}},
+ {{16284987483195961522ull, 395445701091720ull}},
+ {{13027989986556769217ull, 316356560873376ull}},
+ {{13466086349007010101ull, 506170497397402ull}},
+ {{3394171449721787435ull, 404936397917922ull}},
+ {{13783383604003160917ull, 323949118334337ull}},
+ {{7296018507437416175ull, 518318589334940ull}},
+ {{5836814805949932940ull, 414654871467952ull}},
+ {{15737498288985677321ull, 331723897174361ull}},
+ {{17801299632893263068ull, 530758235478978ull}},
+ {{3172993262088879485ull, 424606588383183ull}},
+ {{9917092239154924234ull, 339685270706546ull}},
+ {{8488649953164058129ull, 543496433130474ull}},
+ {{10480268777273156826ull, 434797146504379ull}},
+ {{12073563836560435784ull, 347837717203503ull}},
+ {{15628353323754786931ull, 556540347525605ull}},
+ {{12502682659003829545ull, 445232278020484ull}},
+ {{13691494941944973959ull, 356185822416387ull}},
+ {{3574498324072158521ull, 284948657933110ull}},
+ {{5719197318515453634ull, 455917852692976ull}},
+ {{886009040070452584ull, 364734282154381ull}},
+ {{15466202491024003360ull, 291787425723504ull}},
+ {{13677877541412674406ull, 466859881157607ull}},
+ {{3563604403646318878ull, 373487904926086ull}},
+ {{17608278781884696395ull, 298790323940868ull}},
+ {{6037153162564052294ull, 478064518305390ull}},
+ {{4829722530051241835ull, 382451614644312ull}},
+ {{14931824468266724437ull, 305961291715449ull}},
+ {{12822872705001028130ull, 489538066744719ull}},
+ {{13947646978742732827ull, 391630453395775ull}},
+ {{11158117582994186262ull, 313304362716620ull}},
+ {{17852988132790698019ull, 501286980346592ull}},
+ {{6903692876748737769ull, 401029584277274ull}},
+ {{9212303116140900538ull, 320823667421819ull}},
+ {{3671638541599709892ull, 513317867874911ull}},
+ {{17694706092247409206ull, 410654294299928ull}},
+ {{3087718429572196395ull, 328523435439943ull}},
+ {{1251000672573603909ull, 525637496703909ull}},
+ {{4690149352800793451ull, 420509997363127ull}},
+ {{14820165926466365730ull, 336407997890501ull}},
+ {{16333567852862364522ull, 538252796624802ull}},
+ {{5688156652806070971ull, 430602237299842ull}},
+ {{15618571766470587746ull, 344481789839873ull}},
+ {{2853621937901478455ull, 551170863743798ull}},
+ {{9661595179805003410ull, 440936690995038ull}},
+ {{15107973773327823375ull, 352749352796030ull}},
+ {{12086379018662258700ull, 282199482236824ull}},
+ {{8270159985633882950ull, 451519171578919ull}},
+ {{10305476803249016683ull, 361215337263135ull}},
+ {{8244381442599213346ull, 288972269810508ull}},
+ {{9501661493416831031ull, 462355631696813ull}},
+ {{14980026824217285471ull, 369884505357450ull}},
+ {{11984021459373828377ull, 295907604285960ull}},
+ {{727690261288573788ull, 473452166857537ull}},
+ {{11650198653256590000ull, 378761733486029ull}},
+ {{13009507737347182323ull, 303009386788823ull}},
+ {{17125863565013581394ull, 484815018862117ull}},
+ {{6321993222527044468ull, 387852015089694ull}},
+ {{8746943392763545898ull, 310281612071755ull}},
+ {{13995109428421673437ull, 496450579314808ull}},
+ {{128041098511607780ull, 397160463451847ull}},
+ {{11170479323035017193ull, 317728370761477ull}},
+ {{3115371657888386217ull, 508365393218364ull}},
+ {{6181646141052619296ull, 406692314574691ull}},
+ {{1255968098100185114ull, 325353851659753ull}},
+ {{16766944215927937475ull, 520566162655604ull}},
+ {{17102904187484260303ull, 416452930124483ull}},
+ {{2614276905761677273ull, 333162344099587ull}},
+ {{7872191863960593960ull, 533059750559339ull}},
+ {{9987102305910385491ull, 426447800447471ull}},
+ {{4300333029986398070ull, 341158240357977ull}},
+ {{10569881662720147235ull, 545853184572763ull}},
+ {{15834602959659938434ull, 436682547658210ull}},
+ {{12667682367727950747ull, 349346038126568ull}},
+ {{16578942973622810873ull, 558953661002509ull}},
+ {{16952503193640159021ull, 447162928802007ull}},
+ {{6183304925428306571ull, 357730343041606ull}},
+ {{1257295125600734933ull, 286184274433285ull}},
+ {{2011672200961175893ull, 457894839093256ull}},
+ {{16366733019736582007ull, 366315871274604ull}},
+ {{16782735230531175929ull, 293052697019683ull}},
+ {{4716283480398419548ull, 468884315231494ull}},
+ {{7462375599060645961ull, 375107452185195ull}},
+ {{5969900479248516769ull, 300085961748156ull}},
+ {{2173143137313806184ull, 480137538797050ull}},
+ {{1738514509851044947ull, 384110031037640ull}},
+ {{1390811607880835958ull, 307288024830112ull}},
+ {{5914647387351247856ull, 491660839728179ull}},
+ {{8421066724622908608ull, 393328671782543ull}},
+ {{14115551009182147532ull, 314662937426034ull}},
+ {{11516835170465705083ull, 503460699881655ull}},
+ {{9213468136372564066ull, 402768559905324ull}},
+ {{11060123323839961576ull, 322214847924259ull}},
+ {{6628150873918207552ull, 515543756678815ull}},
+ {{5302520699134566042ull, 412435005343052ull}},
+ {{15310063003533383803ull, 329948004274441ull}},
+ {{17117403176169593438ull, 527916806839106ull}},
+ {{10004573726193764427ull, 422333445471285ull}},
+ {{8003658980955011542ull, 337866756377028ull}},
+ {{9116505554786108144ull, 540586810203245ull}},
+ {{7293204443828886515ull, 432469448162596ull}},
+ {{2145214740321198889ull, 345975558530077ull}},
+ {{7121692399255828545ull, 553560893648123ull}},
+ {{13076051548888483483ull, 442848714918498ull}},
+ {{17839538868594607432ull, 354278971934798ull}},
+ {{3203584650649954976ull, 283423177547839ull}},
+ {{12504433070523748609ull, 453477084076542ull}},
+ {{2624848826935178240ull, 362781667261234ull}},
+ {{5789227876290052915ull, 290225333808987ull}},
+ {{12952113416805994988ull, 464360534094379ull}},
+ {{14051039548186706314ull, 371488427275503ull}},
+ {{172785194323634081ull, 297190741820403ull}},
+ {{15033851569885455823ull, 475505186912644ull}},
+ {{15716430070650274982ull, 380404149530115ull}},
+ {{12573144056520219985ull, 304323319624092ull}},
+ {{5359635231464710684ull, 486917311398548ull}},
+ {{11666405814655589193ull, 389533849118838ull}},
+ {{16711822281208292001ull, 311627079295070ull}},
+ {{8292171576223715586ull, 498603326872113ull}},
+ {{14012434890462793115ull, 398882661497690ull}},
+ {{11209947912370234492ull, 319106129198152ull}},
+ {{3178521400824733895ull, 510569806717044ull}},
+ {{6232165935401697439ull, 408455845373635ull}},
+ {{4985732748321357951ull, 326764676298908ull}},
+ {{4287823582572262398ull, 522823482078253ull}},
+ {{10808956495541630565ull, 418258785662602ull}},
+ {{1268467566949483806ull, 334607028530082ull}},
+ {{5718896921861084412ull, 535371245648131ull}},
+ {{885768722746957207ull, 428296996518505ull}},
+ {{708614978197565765ull, 342637597214804ull}},
+ {{8512481594599925871ull, 548220155543686ull}},
+ {{3120636460938030374ull, 438576124434949ull}},
+ {{6185857983492334622ull, 350860899547959ull}},
+ {{17276070403071556042ull, 561377439276734ull}},
+ {{17510205137199155157ull, 449101951421387ull}},
+ {{6629466480275503479ull, 359281561137110ull}},
+ {{5303573184220402783ull, 287425248909688ull}},
+ {{4796368280010734130ull, 459880398255501ull}},
+ {{147745809266676980ull, 367904318604401ull}},
+ {{14875591906380982877ull, 294323454883520ull}},
+ {{5354202976500020988ull, 470917527813633ull}},
+ {{11662060010683837436ull, 376734022250906ull}},
+ {{5640299193805159626ull, 301387217800725ull}},
+ {{9024478710088255402ull, 482219548481160ull}},
+ {{7219582968070604321ull, 385775638784928ull}},
+ {{13154364003940304103ull, 308620511027942ull}},
+ {{6289587147336845273ull, 493792817644708ull}},
+ {{12410367347353296864ull, 395034254115766ull}},
+ {{6238945063140727168ull, 316027403292613ull}},
+ {{6292963286283253146ull, 505643845268181ull}},
+ {{1345021814284692194ull, 404515076214545ull}},
+ {{1076017451427753755ull, 323612060971636ull}},
+ {{12789674366510136978ull, 517779297554617ull}},
+ {{2853041863724288936ull, 414223438043694ull}},
+ {{5971782305721341472ull, 331378750434955ull}},
+ {{9554851689154146355ull, 530206000695928ull}},
+ {{15022578980807137730ull, 424164800556742ull}},
+ {{4639365555161889538ull, 339331840445394ull}},
+ {{14801682517742843907ull, 542930944712630ull}},
+ {{11841346014194275126ull, 434344755770104ull}},
+ {{13162425626097330424ull, 347475804616083ull}},
+ {{17370532187013818355ull, 555961287385733ull}},
+ {{2828379305385323714ull, 444769029908587ull}},
+ {{13330749888533989941ull, 355815223926869ull}},
+ {{14353948725569102276ull, 284652179141495ull}},
+ {{4519573887201012025ull, 455443486626393ull}},
+ {{10994356739244630267ull, 364354789301114ull}},
+ {{12484834206137614536ull, 291483831440891ull}},
+ {{12597037100336362612ull, 466374130305426ull}},
+ {{6388280865527179766ull, 373099304244341ull}},
+ {{1421275877679833490ull, 298479443395473ull}},
+ {{17031436663255374877ull, 477567109432756ull}},
+ {{9935800515862389578ull, 382053687546205ull}},
+ {{7948640412689911662ull, 305642950036964ull}},
+ {{1649778216078127691ull, 489028720059143ull}},
+ {{8698520202346322799ull, 391222976047314ull}},
+ {{10648164976618968562ull, 312978380837851ull}},
+ {{9658366333106529053ull, 500765409340562ull}},
+ {{347995437001402596ull, 400612327472450ull}},
+ {{278396349601122077ull, 320489861977960ull}},
+ {{445434159361795323ull, 512783779164736ull}},
+ {{15113742586457077551ull, 410227023331788ull}},
+ {{1022947624939931071ull, 328181618665431ull}},
+ {{12704762644129620684ull, 525090589864689ull}},
+ {{13853158930045606870ull, 420072471891751ull}},
+ {{7393178329294575173ull, 336057977513401ull}},
+ {{4450387697387499631ull, 537692764021442ull}},
+ {{14628356602135730674ull, 430154211217153ull}},
+ {{634638837482853569ull, 344123368973723ull}},
+ {{15772817398940207004ull, 550597390357956ull}},
+ {{8928905104410255280ull, 440477912286365ull}},
+ {{7143124083528204224ull, 352382329829092ull}},
+ {{16782545711048294349ull, 281905863863273ull}},
+ {{4715980249225809019ull, 451049382181238ull}},
+ {{11151481828864467862ull, 360839505744990ull}},
+ {{8921185463091574289ull, 288671604595992ull}},
+ {{17963245555688429186ull, 461874567353587ull}},
+ {{6991898815066922702ull, 369499653882870ull}},
+ {{5593519052053538162ull, 295599723106296ull}},
+ {{1570932853801840413ull, 472959556970074ull}},
+ {{4946095097783382653ull, 378367645576059ull}},
+ {{7646224892968616446ull, 302694116460847ull}},
+ {{15923308643491696637ull, 484310586337355ull}},
+ {{12738646914793357309ull, 387448469069884ull}},
+ {{13880266346576596171ull, 309958775255907ull}},
+ {{7451030895554912580ull, 495934040409452ull}},
+ {{17028871160669661034ull, 396747232327561ull}},
+ {{9933748113793818504ull, 317397785862049ull}},
+ {{4825950537844378637ull, 507836457379279ull}},
+ {{7550109245017413232ull, 406269165903423ull}},
+ {{13418785025497751232ull, 325015332722738ull}},
+ {{17780707226054491649ull, 520024532356381ull}},
+ {{10535216966101682996ull, 416019625885105ull}},
+ {{8428173572881346396ull, 332815700708084ull}},
+ {{2417031272384423265ull, 532505121132935ull}},
+ {{1933625017907538612ull, 426004096906348ull}},
+ {{8925597643809851536ull, 340803277525078ull}},
+ {{10591607415353852134ull, 545285244040125ull}},
+ {{8473285932283081707ull, 436228195232100ull}},
+ {{6778628745826465366ull, 348982556185680ull}},
+ {{10845805993322344586ull, 558372089897088ull}},
+ {{16055342424141696315ull, 446697671917670ull}},
+ {{12844273939313357052ull, 357358137534136ull}},
+ {{6586070336708775318ull, 285886510027309ull}},
+ {{17916410168217861156ull, 457418416043694ull}},
+ {{18022476949316199248ull, 365934732834955ull}},
+ {{14417981559452959398ull, 292747786267964ull}},
+ {{12000724050899004067ull, 468396458028743ull}},
+ {{16979276870203023900ull, 374717166422994ull}},
+ {{17272770310904329443ull, 299773733138395ull}},
+ {{9189688423737375494ull, 479637973021433ull}},
+ {{14730448368473721041ull, 383710378417146ull}},
+ {{8095009880037066510ull, 306968302733717ull}},
+ {{16641364622801216739ull, 491149284373947ull}},
+ {{5934394068757152745ull, 392919427499158ull}},
+ {{12126212884489542842ull, 314335541999326ull}},
+ {{12023242985699447901ull, 502936867198922ull}},
+ {{2239896759075737674ull, 402349493759138ull}},
+ {{9170615036744410786ull, 321879595007310ull}},
+ {{14672984058791057258ull, 515007352011696ull}},
+ {{8049038432290935483ull, 412005881609357ull}},
+ {{17507277190058479356ull, 329604705287485ull}},
+ {{9564899430384015353ull, 527367528459977ull}},
+ {{273221914823391636ull, 421894022767982ull}},
+ {{11286623976084444279ull, 337515218214385ull}},
+ {{18058598361735110846ull, 540024349143016ull}},
+ {{10757529874646178353ull, 432019479314413ull}},
+ {{15984721529200763329ull, 345615583451530ull}},
+ {{7128810373011669711ull, 552984933522449ull}},
+ {{9392397113151246092ull, 442387946817959ull}},
+ {{11203266505262907196ull, 353910357454367ull}},
+ {{1583915574726505111ull, 283128285963494ull}},
+ {{9912962549046228824ull, 453005257541590ull}},
+ {{7930370039236983059ull, 362404206033272ull}},
+ {{17412342475615317417ull, 289923364826617ull}},
+ {{13102352702016866574ull, 463877383722588ull}},
+ {{17860579791097313906ull, 371101906978070ull}},
+ {{14288463832877851124ull, 296881525582456ull}},
+ {{15482844503120741153ull, 475010440931930ull}},
+ {{12386275602496592922ull, 380008352745544ull}},
+ {{13598369296739184661ull, 304006682196435ull}},
+ {{3310646801073143842ull, 486410691514297ull}},
+ {{13716563885084246043ull, 389128553211437ull}},
+ {{3594553478583576188ull, 311302842569150ull}},
+ {{5751285565733721901ull, 498084548110640ull}},
+ {{4601028452586977521ull, 398467638488512ull}},
+ {{14748869206295312986ull, 318774110790809ull}},
+ {{12530144285846769808ull, 510038577265295ull}},
+ {{10024115428677415846ull, 408030861812236ull}},
+ {{4329943528200022354ull, 326424689449789ull}},
+ {{14306607274603856413ull, 522279503119662ull}},
+ {{4066588190199264484ull, 417823602495730ull}},
+ {{3253270552159411587ull, 334258881996584ull}},
+ {{12583930512938879186ull, 534814211194534ull}},
+ {{13756493225093013672ull, 427851368955627ull}},
+ {{3626496950590590291ull, 342281095164502ull}},
+ {{9491743935686854789ull, 547649752263203ull}},
+ {{14972092778033304477ull, 438119801810562ull}},
+ {{4598976592942822935ull, 350495841448450ull}},
+ {{7358362548708516697ull, 560793346317520ull}},
+ {{5886690038966813358ull, 448634677054016ull}},
+ {{1020003216431540363ull, 358907741643213ull}},
+ {{8194700202629052936ull, 287126193314570ull}},
+ {{13111520324206484699ull, 459401909303312ull}},
+ {{3110518629881367112ull, 367521527442650ull}},
+ {{2488414903905093690ull, 294017221954120ull}},
+ {{3981463846248149904ull, 470427555126592ull}},
+ {{14253217521224250893ull, 376342044101273ull}},
+ {{334527572753669744ull, 301073635281019ull}},
+ {{7913941745889692238ull, 481717816449630ull}},
+ {{6331153396711753790ull, 385374253159704ull}},
+ {{8754271532111313355ull, 308299402527763ull}},
+ {{10317485636636191046ull, 493279044044421ull}},
+ {{4564639694567042513ull, 394623235235537ull}},
+ {{14719758199879364980ull, 315698588188429ull}},
+ {{12483566675581252999ull, 505117741101487ull}},
+ {{2608155710981181752ull, 404094192881190ull}},
+ {{2086524568784945402ull, 323275354304952ull}},
+ {{7027788124797822966ull, 517240566887923ull}},
+ {{13000928129322079019ull, 413792453510338ull}},
+ {{17779440132941483862ull, 331033962808270ull}},
+ {{10000360138996822563ull, 529654340493233ull}},
+ {{15378985740681278697ull, 423723472394586ull}},
+ {{8613839777803112634ull, 338978777915669ull}},
+ {{2714097200259249246ull, 542366044665071ull}},
+ {{16928673019175040689ull, 433892835732056ull}},
+ {{9853589600598122228ull, 347114268585645ull}},
+ {{15765743360956995565ull, 555382829737032ull}},
+ {{5233897059281775806ull, 444306263789626ull}},
+ {{497768832683510321ull, 355445011031701ull}},
+ {{15155610325114449550ull, 284356008825360ull}},
+ {{5802232446473567664ull, 454969614120577ull}},
+ {{15709832401404585100ull, 363975691296461ull}},
+ {{8878517106381757757ull, 291180553037169ull}},
+ {{3137580925985081442ull, 465888884859471ull}},
+ {{17267459999755706446ull, 372711107887576ull}},
+ {{10124619185062654834ull, 298168886310061ull}},
+ {{8820693066616427088ull, 477070218096098ull}},
+ {{14435252082776962317ull, 381656174476878ull}},
+ {{480155221995838884ull, 305324939581503ull}},
+ {{15525643614160983507ull, 488519903330404ull}},
+ {{16109863706070697129ull, 390815922664323ull}},
+ {{1819844520630826733ull, 312652738131459ull}},
+ {{10290448862493143420ull, 500244381010334ull}},
+ {{11921707904736425059ull, 400195504808267ull}},
+ {{2158668694305319401ull, 320156403846614ull}},
+ {{10832567540372331688ull, 512250246154582ull}},
+ {{1287356402814044704ull, 409800196923666ull}},
+ {{15787280381218877056ull, 327840157538932ull}},
+ {{10502253350982561997ull, 524544252062292ull}},
+ {{1023105051302228951ull, 419635401649834ull}},
+ {{4507832855783693484ull, 335708321319867ull}},
+ {{10901881383995819897ull, 537133314111787ull}},
+ {{1342807477712835271ull, 429706651289430ull}},
+ {{1074245982170268217ull, 343765321031544ull}},
+ {{9097491200956249794ull, 550024513650470ull}},
+ {{7277992960764999835ull, 440019610920376ull}},
+ {{2133045553870089545ull, 352015688736301ull}},
+ {{16463831702063712928ull, 281612550989040ull}},
+ {{7895386649592389070ull, 450580081582465ull}},
+ {{6316309319673911256ull, 360464065265972ull}},
+ {{16121093899964859974ull, 288371252212777ull}},
+ {{11036354980976134666ull, 461394003540444ull}},
+ {{12518432799522818056ull, 369115202832355ull}},
+ {{10014746239618254445ull, 295292162265884ull}},
+ {{4955547539163476142ull, 472467459625415ull}},
+ {{3964438031330780914ull, 377973967700332ull}},
+ {{14239596869290355700ull, 302379174160265ull}},
+ {{4336610917155017505ull, 483806678656425ull}},
+ {{3469288733724014004ull, 387045342925140ull}},
+ {{2775430986979211203ull, 309636274340112ull}},
+ {{8130038393908648248ull, 495418038944179ull}},
+ {{10193379529868828922ull, 396334431155343ull}},
+ {{15533401253378883784ull, 317067544924274ull}},
+ {{13785395561180483085ull, 507308071878839ull}},
+ {{14717665263686296791ull, 405846457503071ull}},
+ {{8084783396207127109ull, 324677166002457ull}},
+ {{16625002248673313698ull, 519483465603931ull}},
+ {{9610652984196740635ull, 415586772483145ull}},
+ {{7688522387357392508ull, 332469417986516ull}},
+ {{4922938190288007367ull, 531951068778426ull}},
+ {{249001737488495570ull, 425560855022741ull}},
+ {{14956596648958437749ull, 340448684018192ull}},
+ {{9173159379365859106ull, 544717894429108ull}},
+ {{14717225132976507931ull, 435774315543286ull}},
+ {{8084431291639296022ull, 348619452434629ull}},
+ {{1867043622397142665ull, 557791123895407ull}},
+ {{12561681342143445102ull, 446232899116325ull}},
+ {{10049345073714756081ull, 356986319293060ull}},
+ {{8039476058971804865ull, 285589055434448ull}},
+ {{9173812879612977461ull, 456942488695117ull}},
+ {{18407096747916112938ull, 365553990956093ull}},
+ {{3657630954107159381ull, 292443192764875ull}},
+ {{5852209526571455010ull, 467909108423800ull}},
+ {{4681767621257164008ull, 374327286739040ull}},
+ {{3745414097005731206ull, 299461829391232ull}},
+ {{9682011369951080253ull, 479138927025971ull}},
+ {{4056260281218953879ull, 383311141620777ull}},
+ {{14313054669200894073ull, 306648913296621ull}},
+ {{15522189841237609870ull, 490638261274594ull}},
+ {{16107100687731998219ull, 392510609019675ull}},
+ {{12885680550185598575ull, 314008487215740ull}},
+ {{2170344806587406105ull, 502413579545185ull}},
+ {{1736275845269924884ull, 401930863636148ull}},
+ {{8767718305699760553ull, 321544690908918ull}},
+ {{10339000474377706563ull, 514471505454269ull}},
+ {{11960549194244075573ull, 411577204363415ull}},
+ {{9568439355395260458ull, 329261763490732ull}},
+ {{552107709664775441ull, 526818821585172ull}},
+ {{11509732611957551322ull, 421455057268137ull}},
+ {{1829088460082220411ull, 337164045814510ull}},
+ {{2926541536131552659ull, 539462473303216ull}},
+ {{17098628487872883420ull, 431569978642572ull}},
+ {{6300205160814486089ull, 345255982914058ull}},
+ {{6390979442561267420ull, 552409572662493ull}},
+ {{12491481183532834582ull, 441927658129994ull}},
+ {{13682533761568177989ull, 353542126503995ull}},
+ {{10946027009254542391ull, 282833701203196ull}},
+ {{10134945585323447179ull, 452533921925114ull}},
+ {{11797305283000668067ull, 362027137540091ull}},
+ {{5748495411658624130ull, 289621710032073ull}},
+ {{5508243843911888285ull, 463394736051317ull}},
+ {{15474641519355241598ull, 370715788841053ull}},
+ {{1311666771258462308ull, 296572631072843ull}},
+ {{16856062092981180986ull, 474516209716548ull}},
+ {{2416803230159213819ull, 379612967773239ull}},
+ {{5622791398869281379ull, 303690374218591ull}},
+ {{1617768608707029560ull, 485904598749746ull}},
+ {{16051610145933264940ull, 388723678999796ull}},
+ {{9151939302004701629ull, 310978943199837ull}},
+ {{18332451697949432930ull, 497566309119739ull}},
+ {{18355310173101456667ull, 398053047295791ull}},
+ {{10994899323739255010ull, 318442437836633ull}},
+ {{13902490103240897694ull, 509507900538613ull}},
+ {{53945638366987185ull, 407606320430891ull}},
+ {{14800551769661231041ull, 326085056344712ull}},
+ {{8923487572490328373ull, 521736090151540ull}},
+ {{7138790057992262698ull, 417388872121232ull}},
+ {{16779078490619541128ull, 333911097696985ull}},
+ {{8399781511281714189ull, 534257756315177ull}},
+ {{17787871653251102321ull, 427406205052141ull}},
+ {{10540948507858971533ull, 341924964041713ull}},
+ {{13176168797832444131ull, 547079942466741ull}},
+ {{6851586223524044981ull, 437663953973393ull}},
+ {{12859966608303056631ull, 350131163178714ull}},
+ {{9507900129059159641ull, 560209861085943ull}},
+ {{14985017732731148359ull, 448167888868754ull}},
+ {{15677363000926829010ull, 358534311095003ull}},
+ {{1473843956515732238ull, 286827448876003ull}},
+ {{17115545589392812875ull, 458923918201604ull}},
+ {{17381785286256160623ull, 367139134561283ull}},
+ {{2837381784779197529ull, 293711307649027ull}},
+ {{8229159670388626369ull, 469938092238443ull}},
+ {{13962025365794721742ull, 375950473790754ull}},
+ {{14858969107377687716ull, 300760379032603ull}},
+ {{1638257683352838407ull, 481216606452166ull}},
+ {{16068001405649912019ull, 384973285161732ull}},
+ {{5475703495036108968ull, 307978628129386ull}},
+ {{1382427962573953703ull, 492765805007018ull}},
+ {{8484639999542983609ull, 394212644005614ull}},
+ {{10477060814376297210ull, 315370115204491ull}},
+ {{9384599673518254890ull, 504592184327186ull}},
+ {{3818330924072693589ull, 403673747461749ull}},
+ {{6744013554000065194ull, 322938997969399ull}},
+ {{18169119315883924958ull, 516702396751038ull}},
+ {{3467249008481408996ull, 413361917400831ull}},
+ {{17531194465752768490ull, 330689533920664ull}},
+ {{16981864700978698614ull, 529103254273063ull}},
+ {{2517445316557227922ull, 423282603418451ull}},
+ {{16771351512213423630ull, 338626082734760ull}},
+ {{8387418345831926192ull, 541801732375617ull}},
+ {{17777981120891271923ull, 433441385900493ull}},
+ {{3154338452487286569ull, 346753108720395ull}},
+ {{5046941523979658511ull, 554804973952632ull}},
+ {{15105599663409457778ull, 443843979162105ull}},
+ {{12084479730727566222ull, 355075183329684ull}},
+ {{13356932599323963301ull, 284060146663747ull}},
+ {{6613696899950699989ull, 454496234661996ull}},
+ {{1601608705218649668ull, 363596987729597ull}},
+ {{12349333408400650704ull, 290877590183677ull}},
+ {{5001538194473399834ull, 465404144293884ull}},
+ {{7690579370320630190ull, 372323315435107ull}},
+ {{17220509940482235122ull, 297858652348085ull}},
+ {{9106071831062024579ull, 476573843756937ull}},
+ {{18352903909075350633ull, 381259075005549ull}},
+ {{18371671942002190829ull, 305007260004439ull}},
+ {{18326628662977774357ull, 488011616007103ull}},
+ {{3593256486156488516ull, 390409292805683ull}},
+ {{10253302818409011459ull, 312327434244546ull}},
+ {{9026586879970597689ull, 499723894791274ull}},
+ {{10910618318718388474ull, 399779115833019ull}},
+ {{12417843469716621102ull, 319823292666415ull}},
+ {{1421805477837042148ull, 511717268266265ull}},
+ {{1137444382269633718ull, 409373814613012ull}},
+ {{11978001950041437944ull, 327499051690409ull}},
+ {{8096756675840569741ull, 523998482704655ull}},
+ {{6477405340672455793ull, 419198786163724ull}},
+ {{8871273087279874958ull, 335359028930979ull}},
+ {{3125990495422068963ull, 536574446289567ull}},
+ {{13568838840563386140ull, 429259557031653ull}},
+ {{18233768701934529558ull, 343407645625322ull}},
+ {{14416634664127606000ull, 549452233000516ull}},
+ {{7843958916560174477ull, 439561786400413ull}},
+ {{13653864762731960228ull, 351649429120330ull}},
+ {{3399439546661584749ull, 562639086592529ull}},
+ {{6408900452071178122ull, 450111269274023ull}},
+ {{12505817991140763144ull, 360089015419218ull}},
+ {{17383352022396431162ull, 288071212335374ull}},
+ {{16745316791608558889ull, 460913939736599ull}},
+ {{17085602248028757434ull, 368731151789279ull}},
+ {{17357830613164916271ull, 294984921431423ull}},
+ {{5636436092612404094ull, 471975874290278ull}},
+ {{11887846503573743922ull, 377580699432222ull}},
+ {{2131579573375174491ull, 302064559545778ull}},
+ {{18167922576367920478ull, 483303295273244ull}},
+ {{18223686875836246706ull, 386642636218595ull}},
+ {{14578949500668997365ull, 309314108974876ull}},
+ {{15947621571586575137ull, 494902574359802ull}},
+ {{5379399627785439463ull, 395922059487842ull}},
+ {{15371566146454082540ull, 316737647590273ull}},
+ {{2458412945875070125ull, 506780236144438ull}},
+ {{9345427986183876747ull, 405424188915550ull}},
+ {{7476342388947101397ull, 324339351132440ull}},
+ {{11962147822315362236ull, 518942961811904ull}},
+ {{13259067072594200112ull, 415154369449523ull}},
+ {{17985951287559180736ull, 332123495559618ull}},
+ {{6641429171643227238ull, 531397592895390ull}},
+ {{5313143337314581790ull, 425118074316312ull}},
+ {{15318561114077396402ull, 340094459453049ull}},
+ {{13441651338298103274ull, 544151135124879ull}},
+ {{14442669885380392942ull, 435320908099903ull}},
+ {{486089464078583384ull, 348256726479923ull}},
+ {{15535138401493374707ull, 557210762367876ull}},
+ {{8738761906452789443ull, 445768609894301ull}},
+ {{3301660710420321231ull, 356614887915441ull}},
+ {{17398723827303898277ull, 285291910332352ull}},
+ {{13080562864718595951ull, 456467056531764ull}},
+ {{14153799106516787084ull, 365173645225411ull}},
+ {{7633690470471519344ull, 292138916180329ull}},
+ {{1145858308528699981ull, 467422265888527ull}},
+ {{11984733091048690954ull, 373937812710821ull}},
+ {{5898437658097042440ull, 299150250168657ull}},
+ {{13126849067697178228ull, 478640400269851ull}},
+ {{6812130439415832259ull, 382912320215881ull}},
+ {{1760355536790755484ull, 306329856172705ull}},
+ {{2816568858865208774ull, 490127769876328ull}},
+ {{9631952716575987666ull, 392102215901062ull}},
+ {{326864543776969486ull, 313681772720850ull}},
+ {{522983270043151178ull, 501890836353360ull}},
+ {{418386616034520942ull, 401512669082688ull}},
+ {{7713406922311437400ull, 321210135266150ull}},
+ {{12341451075698299841ull, 513936216425840ull}},
+ {{9873160860558639872ull, 411148973140672ull}},
+ {{519831058963091251ull, 328919178512538ull}},
+ {{15589124953308587295ull, 526270685620060ull}},
+ {{12471299962646869836ull, 421016548496048ull}},
+ {{17355737599601316515ull, 336813238796838ull}},
+ {{5633087270910644485ull, 538901182074942ull}},
+ {{15574516260954246558ull, 431120945659953ull}},
+ {{1391566564537666277ull, 344896756527963ull}},
+ {{16983901762227907336ull, 551834810444740ull}},
+ {{13587121409782325868ull, 441467848355792ull}},
+ {{3490999498342040048ull, 353174278684634ull}},
+ {{6482148413415542362ull, 282539422947707ull}},
+ {{14060786276206778102ull, 452063076716331ull}},
+ {{7559280206223512158ull, 361650461373065ull}},
+ {{6047424164978809727ull, 289320369098452ull}},
+ {{13365227478708005886ull, 462912590557523ull}},
+ {{18070879612450225355ull, 370330072446018ull}},
+ {{3388657245734449315ull, 296264057956815ull}},
+ {{5421851593175118904ull, 474022492730904ull}},
+ {{8026830089282005446ull, 379217994184723ull}},
+ {{13800161700909425003ull, 303374395347778ull}},
+ {{18390909906713169682ull, 485399032556445ull}},
+ {{14712727925370535745ull, 388319226045156ull}},
+ {{8080833525554518273ull, 310655380836125ull}},
+ {{12929333640887229237ull, 497048609337800ull}},
+ {{10343466912709783390ull, 397638887470240ull}},
+ {{8274773530167826712ull, 318111109976192ull}},
+ {{16928986463010433062ull, 508977775961907ull}},
+ {{6164491540924525803ull, 407182220769526ull}},
+ {{1242244417997710319ull, 325745776615621ull}},
+ {{13055637513022067481ull, 521193242584993ull}},
+ {{17823207639901474631ull, 416954594067994ull}},
+ {{17947914926663090028ull, 333563675254395ull}},
+ {{10269919808951392429ull, 533701880407033ull}},
+ {{15594633476644934589ull, 426961504325626ull}},
+ {{8786357966574037348ull, 341569203460501ull}},
+ {{6679475117034639111ull, 546510725536802ull}},
+ {{16411626537853442258ull, 437208580429441ull}},
+ {{9439952415540843483ull, 349766864343553ull}},
+ {{11414575050123439250ull, 559626982949685ull}},
+ {{9131660040098751400ull, 447701586359748ull}},
+ {{14684025661562821766ull, 358161269087798ull}},
+ {{679174085024526443ull, 286529015270239ull}},
+ {{8465376165523062956ull, 458446424432382ull}},
+ {{17840347376644181335ull, 366757139545905ull}},
+ {{14272277901315345068ull, 293405711636724ull}},
+ {{11767598197878821139ull, 469449138618759ull}},
+ {{13103427373044967234ull, 375559310895007ull}},
+ {{3104044268952153141ull, 300447448716006ull}},
+ {{16034517274549175995ull, 480715917945609ull}},
+ {{16516962634381251119ull, 384572734356487ull}},
+ {{5834872478021180249ull, 307658187485190ull}},
+ {{9335795964833888398ull, 492253099976304ull}},
+ {{11157985586609021042ull, 393802479981043ull}},
+ {{16305086098771037480ull, 315041983984834ull}},
+ {{15020091313807928998ull, 504067174375735ull}},
+ {{12016073051046343199ull, 403253739500588ull}},
+ {{16991556070320895205ull, 322602991600470ull}},
+ {{8739745638803880713ull, 516164786560753ull}},
+ {{14370494140526925216ull, 412931829248602ull}},
+ {{4117697682937719527ull, 330345463398882ull}},
+ {{10277665107442261566ull, 528552741438211ull}},
+ {{4532783271211898930ull, 422842193150569ull}},
+ {{7315575431711429467ull, 338273754520455ull}},
+ {{11704920690738287147ull, 541238007232728ull}},
+ {{16742634182074450364ull, 432990405786182ull}},
+ {{6015409716175739645ull, 346392324628946ull}},
+ {{2245957916397362785ull, 554227719406314ull}},
+ {{5486115147859800551ull, 443382175525051ull}},
+ {{699543303545930118ull, 354705740420041ull}},
+ {{15317029901804385387ull, 283764592336032ull}},
+ {{9749852583919375327ull, 454023347737652ull}},
+ {{421184437651679615ull, 363218678190122ull}},
+ {{11404993994347074661ull, 290574942552097ull}},
+ {{3490595131987678166ull, 464919908083356ull}},
+ {{17549871364557783825ull, 371935926466684ull}},
+ {{17729245906388137383ull, 297548741173347ull}},
+ {{13609398191253378521ull, 476077985877356ull}},
+ {{7198169738260792493ull, 380862388701885ull}},
+ {{5758535790608633995ull, 304689910961508ull}},
+ {{5524308450231904068ull, 487503857538413ull}},
+ {{11798144389669343901ull, 390003086030730ull}},
+ {{9438515511735475121ull, 312002468824584ull}},
+ {{4033578374551029224ull, 499203950119335ull}},
+ {{3226862699640823379ull, 399363160095468ull}},
+ {{9960187789196479349ull, 319490528076374ull}},
+ {{4868254018488635990ull, 511184844922199ull}},
+ {{7583952029532819115ull, 408947875937759ull}},
+ {{9756510438368165615ull, 327158300750207ull}},
+ {{853021442421423692ull, 523453281200332ull}},
+ {{11750463598162869923ull, 418762624960265ull}},
+ {{9400370878530295938ull, 335010099968212ull}},
+ {{283198146680832208ull, 536016159949140ull}},
+ {{226558517344665767ull, 428812927959312ull}},
+ {{11249293258101463583ull, 343050342367449ull}},
+ {{6930822768736610763ull, 548880547787919ull}},
+ {{9234007029731198934ull, 439104438230335ull}},
+ {{7387205623784959147ull, 351283550584268ull}},
+ {{8130180183314024312ull, 562053680934829ull}},
+ {{10193492961393129773ull, 449642944747863ull}},
+ {{15533491998598324465ull, 359714355798290ull}},
+ {{12426793598878659572ull, 287771484638632ull}},
+ {{5125474499238214022ull, 460434375421812ull}},
+ {{15168426043616302187ull, 368347500337449ull}},
+ {{15824089649634952073ull, 294678000269959ull}},
+ {{14250496995190192347ull, 471484800431935ull}},
+ {{11400397596152153878ull, 377187840345548ull}},
+ {{16499015706405543748ull, 301750272276438ull}},
+ {{4262332241797408058ull, 482800435642302ull}},
+ {{14477912237663657416ull, 386240348513841ull}},
+ {{7892980975389015610ull, 308992278811073ull}},
+ {{8939420745880514653ull, 494387646097717ull}},
+ {{18219583040930142692ull, 395510116878173ull}},
+ {{3507619988518383184ull, 316408093502539ull}},
+ {{12990889611113233740ull, 506252949604062ull}},
+ {{3014014059406766346ull, 405002359683250ull}},
+ {{2411211247525413077ull, 324001887746600ull}},
+ {{3857937996040660923ull, 518403020394560ull}},
+ {{3086350396832528738ull, 414722416315648ull}},
+ {{9847777946949843637ull, 331777933052518ull}},
+ {{12067095900377839496ull, 530844692884029ull}},
+ {{13343025535044181920ull, 424675754307223ull}},
+ {{18053118057519166182ull, 339740603445778ull}},
+ {{6748896003579203953ull, 543584965513246ull}},
+ {{1709767988121452839ull, 434867972410597ull}},
+ {{12435860834722893241ull, 347894377928477ull}},
+ {{5139982076588987892ull, 556631004685564ull}},
+ {{7801334476013100637ull, 445304803748451ull}},
+ {{2551718766068570186ull, 356243842998761ull}},
+ {{16798770271822497442ull, 284995074399008ull}},
+ {{4741939546464533968ull, 455992119038414ull}},
+ {{7482900451913537497ull, 364793695230731ull}},
+ {{2296971546788919675ull, 291834956184585ull}},
+ {{3675154474862271480ull, 466935929895336ull}},
+ {{17697518838857458476ull, 373548743916268ull}},
+ {{3089968626860235811ull, 298838995133015ull}},
+ {{4943949802976377299ull, 478142392212824ull}},
+ {{7644508657123012162ull, 382513913770259ull}},
+ {{9804955740440320053ull, 306011131016207ull}},
+ {{930533925736870792ull, 489617809625932ull}},
+ {{11812473584815227603ull, 391694247700745ull}},
+ {{9449978867852182082ull, 313355398160596ull}},
+ {{7741268559079670686ull, 501368637056954ull}},
+ {{9882363662005646872ull, 401094909645563ull}},
+ {{15284588559088338144ull, 320875927716450ull}},
+ {{6008597620831789414ull, 513401484346321ull}},
+ {{1117529281923521208ull, 410721187477057ull}},
+ {{11962069869764547936ull, 328576949981645ull}},
+ {{692567717913725082ull, 525723119970633ull}},
+ {{7932751803814800712ull, 420578495976506ull}},
+ {{2656852628309930246ull, 336462796781205ull}},
+ {{4250964205295888394ull, 538340474849928ull}},
+ {{10779468993720531361ull, 430672379879942ull}},
+ {{1244877565492604443ull, 344537903903954ull}},
+ {{9370501734271987755ull, 551260646246326ull}},
+ {{3807052572675679881ull, 441008516997061ull}},
+ {{17803037317108185197ull, 352806813597648ull}},
+ {{3174383409460817188ull, 282245450878119ull}},
+ {{12457711084621128148ull, 451592721404990ull}},
+ {{9966168867696902518ull, 361274177123992ull}},
+ {{594237464673701368ull, 289019341699194ull}},
+ {{8329477572961742835ull, 462430946718710ull}},
+ {{6663582058369394268ull, 369944757374968ull}},
+ {{12709563276179336061ull, 295955805899974ull}},
+ {{9267254797661206728ull, 473529289439959ull}},
+ {{11103152652870875705ull, 378823431551967ull}},
+ {{1503824492812879918ull, 303058745241574ull}},
+ {{9784816817984428515ull, 484893992386518ull}},
+ {{15206551083871363459ull, 387915193909214ull}},
+ {{15854589681839001090ull, 310332155127371ull}},
+ {{17988645861458581098ull, 496531448203794ull}},
+ {{18080265503908775201ull, 397225158563035ull}},
+ {{14464212403127020161ull, 317780126850428ull}},
+ {{1006646956551770319ull, 508448202960686ull}},
+ {{15562712824209057548ull, 406758562368548ull}},
+ {{1382123815141515068ull, 325406849894839ull}},
+ {{9590095733710244756ull, 520650959831742ull}},
+ {{293378957484375158ull, 416520767865394ull}},
+ {{3924051980729410450ull, 333216614292315ull}},
+ {{6278483169167056720ull, 533146582867704ull}},
+ {{8712135350075555699ull, 426517266294163ull}},
+ {{14348405909544265206ull, 341213813035330ull}},
+ {{4510705381561272713ull, 545942100856529ull}},
+ {{7297913119990928494ull, 436753680685223ull}},
+ {{13217028125476563441ull, 349402944548178ull}},
+ {{17457896186020591183ull, 559044711277085ull}},
+ {{13966316948816472946ull, 447235769021668ull}},
+ {{105007114827447387ull, 357788615217335ull}},
+ {{84005691861957910ull, 286230892173868ull}},
+ {{14891804365946773949ull, 457969427478188ull}},
+ {{845397048531688189ull, 366375541982551ull}},
+ {{15433712897792991844ull, 293100433586040ull}},
+ {{6247196562759235335ull, 468960693737665ull}},
+ {{4997757250207388268ull, 375168554990132ull}},
+ {{15066252244391641584ull, 300134843992105ull}},
+ {{5659259517317074918ull, 480215750387369ull}},
+ {{8216756428595570258ull, 384172600309895ull}},
+ {{6573405142876456206ull, 307338080247916ull}},
+ {{3138750599118509284ull, 491740928396666ull}},
+ {{17268395738262448720ull, 393392742717332ull}},
+ {{6436018961126138329ull, 314714194173866ull}},
+ {{2918932708318000681ull, 503542710678186ull}},
+ {{17092541425622041837ull, 402834168542548ull}},
+ {{2605986696271902500ull, 322267334834039ull}},
+ {{11548276343518864647ull, 515627735734462ull}},
+ {{1859923445331271071ull, 412502188587570ull}},
+ {{1487938756265016857ull, 330001750870056ull}},
+ {{13448748454249757941ull, 528002801392089ull}},
+ {{14448347578141716676ull, 422402241113671ull}},
+ {{7869329247771463017ull, 337921792890937ull}},
+ {{16280275611176251151ull, 540674868625499ull}},
+ {{16713569303682911244ull, 432539894900399ull}},
+ {{17060204257688239318ull, 346031915920319ull}},
+ {{16228280368075451940ull, 553651065472511ull}},
+ {{9293275479718451229ull, 442920852378009ull}},
+ {{11123969198516671306ull, 354336681902407ull}},
+ {{1520477729329516398ull, 283469345521926ull}},
+ {{13500810811152957207ull, 453550952835081ull}},
+ {{7111299834180455442ull, 362840762268065ull}},
+ {{5689039867344364354ull, 290272609814452ull}},
+ {{12791812602492893290ull, 464436175703123ull}},
+ {{17612147711478135278ull, 371548940562498ull}},
+ {{3021671724956777253ull, 297239152449999ull}},
+ {{12213372389414664251ull, 475582643919998ull}},
+ {{17149395541015552047ull, 380466115135998ull}},
+ {{2651469988586710668ull, 304372892108799ull}},
+ {{11621049611222557716ull, 486996627374078ull}},
+ {{16675537318461866819ull, 389597301899262ull}},
+ {{5961732225285672808ull, 311677841519410ull}},
+ {{9538771560457076494ull, 498684546431056ull}},
+ {{3941668433623750872ull, 398947637144845ull}},
+ {{3153334746899000697ull, 319158109715876ull}},
+ {{16113382039264132086ull, 510652975545401ull}},
+ {{9201356816669395345ull, 408522380436321ull}},
+ {{3671736638593605953ull, 326817904349057ull}},
+ {{9564127436491679848ull, 522908646958491ull}},
+ {{3961953134451433555ull, 418326917566793ull}},
+ {{10548260137044967490ull, 334661534053434ull}},
+ {{5809169775046217015ull, 535458454485495ull}},
+ {{4647335820036973612ull, 428366763588396ull}},
+ {{28519841287668566ull, 342693410870717ull}},
+ {{3734980560802180030ull, 548309457393147ull}},
+ {{14056030892867474993ull, 438647565914517ull}},
+ {{3866127084810159348ull, 350918052731614ull}},
+ {{13564500965180075604ull, 561468884370582ull}},
+ {{3472903142660239837ull, 449175107496466ull}},
+ {{17535717773095833162ull, 359340085997172ull}},
+ {{6649876588992845883ull, 287472068797738ull}},
+ {{6950453727646643090ull, 459955310076381ull}},
+ {{1871014167375404149ull, 367964248061105ull}},
+ {{1496811333900323319ull, 294371398448884ull}},
+ {{9773595763724337957ull, 470994237518214ull}},
+ {{11508225425721380689ull, 376795390014571ull}},
+ {{5517231525835194228ull, 301436312011657ull}},
+ {{12516919256078221088ull, 482298099218651ull}},
+ {{6324186590120666547ull, 385838479374921ull}},
+ {{1370000457354622914ull, 308670783499937ull}},
+ {{5881349546509306986ull, 493873253599899ull}},
+ {{8394428451949355912ull, 395098602879919ull}},
+ {{10404891576301395053ull, 316078882303935ull}},
+ {{16647826522082232085ull, 505726211686296ull}},
+ {{9628912402923875344ull, 404580969349037ull}},
+ {{324432292855279629ull, 323664775479230ull}},
+ {{519091668568447407ull, 517863640766768ull}},
+ {{7793970964338578572ull, 414290912613414ull}},
+ {{9924525586212773180ull, 331432730090731ull}},
+ {{8500543308456616443ull, 530292368145170ull}},
+ {{6800434646765293154ull, 424233894516136ull}},
+ {{1750998902670324200ull, 339387115612909ull}},
+ {{10180295873756339367ull, 543019384980654ull}},
+ {{11833585513746981816ull, 434415507984523ull}},
+ {{16845566040481406099ull, 347532406387618ull}},
+ {{4816812776318787820ull, 556051850220190ull}},
+ {{3853450221055030256ull, 444841480176152ull}},
+ {{14150806621069755174ull, 355873184140921ull}},
+ {{7631296482113893816ull, 284698547312737ull}},
+ {{15899423186124140429ull, 455517675700379ull}},
+ {{16408887363641222667ull, 364414140560303ull}},
+ {{2059063446687247164ull, 291531312448243ull}},
+ {{18051896773667236755ull, 466450099917188ull}},
+ {{3373470974708058434ull, 373160079933751ull}},
+ {{17456172038734088040ull, 298528063947000ull}},
+ {{9483131188264989248ull, 477644902315201ull}},
+ {{3897156135870081075ull, 382115921852161ull}},
+ {{17875120167663706153ull, 305692737481728ull}},
+ {{6464099379810467906ull, 489108379970766ull}},
+ {{1481930689106464001ull, 391286703976613ull}},
+ {{8564242180768991847ull, 313029363181290ull}},
+ {{13702787489230386956ull, 500846981090064ull}},
+ {{14651578806126219888ull, 400677584872051ull}},
+ {{8031914230159065587ull, 320542067897641ull}},
+ {{5472365138770684293ull, 512867308636226ull}},
+ {{688543296274637111ull, 410293846908981ull}},
+ {{15308229895987350982ull, 328235077527184ull}},
+ {{13425121389354030601ull, 525176124043495ull}},
+ {{10740097111483224481ull, 420140899234796ull}},
+ {{4902728874444669262ull, 336112719387837ull}},
+ {{11533715013853381142ull, 537780351020539ull}},
+ {{12916320825824615237ull, 430224280816431ull}},
+ {{6643707845917781866ull, 344179424653145ull}},
+ {{10629932553468450986ull, 550687079445032ull}},
+ {{1125248413290940142ull, 440549663556026ull}},
+ {{15657593989600393407ull, 352439730844820ull}},
+ {{12526075191680314725ull, 281951784675856ull}},
+ {{12663022677204682914ull, 451122855481370ull}},
+ {{10130418141763746331ull, 360898284385096ull}},
+ {{4414985698669086742ull, 288718627508077ull}},
+ {{10753325932612449110ull, 461949804012923ull}},
+ {{15981358375573779934ull, 369559843210338ull}},
+ {{1717040256233292978ull, 295647874568271ull}},
+ {{13815310854198999734ull, 473036599309233ull}},
+ {{18430946312843020434ull, 378429279447386ull}},
+ {{11055408235532506024ull, 302743423557909ull}},
+ {{6620606732626278669ull, 484389477692655ull}},
+ {{5296485386101022935ull, 387511582154124ull}},
+ {{7926537123622728671ull, 310009265723299ull}},
+ {{1614412953570634904ull, 496014825157279ull}},
+ {{4980879177598418247ull, 396811860125823ull}},
+ {{11363400971562555244ull, 317449488100658ull}},
+ {{14492092739758178067ull, 507919180961053ull}},
+ {{525627747580811484ull, 406335344768843ull}},
+ {{7799199827548469833ull, 325068275815074ull}},
+ {{1410673279851820764ull, 520109241304119ull}},
+ {{4817887438623366934ull, 416087393043295ull}},
+ {{3854309950898693547ull, 332869914434636ull}},
+ {{17234942365663640646ull, 532591863095417ull}},
+ {{6409256263047091870ull, 426073490476334ull}},
+ {{8816753825179583819ull, 340858792381067ull}},
+ {{17796154935029244434ull, 545374067809707ull}},
+ {{6858226318539574901ull, 436299254247766ull}},
+ {{1797232240089749597ull, 349039403398213ull}},
+ {{17632966843111240649ull, 558463045437140ull}},
+ {{14106373474488992519ull, 446770436349712ull}},
+ {{3906401150107373369ull, 357416349079770ull}},
+ {{3125120920085898695ull, 285933079263816ull}},
+ {{16068239916363168882ull, 457492926822105ull}},
+ {{12854591933090535105ull, 365994341457684ull}},
+ {{13973022361214338407ull, 292795473166147ull}},
+ {{7599440518975300159ull, 468472757065836ull}},
+ {{2390203600438329804ull, 374778205652669ull}},
+ {{5601511695092574166ull, 299822564522135ull}},
+ {{8962418712148118666ull, 479716103235416ull}},
+ {{3480586154976584610ull, 383772882588333ull}},
+ {{10163166553465088334ull, 307018306070666ull}},
+ {{8882368856060320688ull, 491229289713066ull}},
+ {{3416546270106346227ull, 392983431770453ull}},
+ {{10111934645568897628ull, 314386745416362ull}},
+ {{1421700173942594913ull, 503018792666180ull}},
+ {{1137360139154075930ull, 402415034132944ull}},
+ {{4599236926065171067ull, 321932027306355ull}},
+ {{7358779081704273708ull, 515091243690168ull}},
+ {{13265720894847239612ull, 412072994952134ull}},
+ {{14301925530619702013ull, 329658395961707ull}},
+ {{8125685590023881928ull, 527453433538732ull}},
+ {{17568594916244836512ull, 421962746830985ull}},
+ {{14054875932995869210ull, 337570197464788ull}},
+ {{351708604341928797ull, 540112315943662ull}},
+ {{11349413327699274007ull, 432089852754929ull}},
+ {{12768879476901329529ull, 345671882203943ull}},
+ {{16740858348300216923ull, 553075011526309ull}},
+ {{17082035493382083861ull, 442460009221047ull}},
+ {{6286930765221846443ull, 353968007376838ull}},
+ {{12408242241661297800ull, 283174405901470ull}},
+ {{1406443512948524865ull, 453079049442353ull}},
+ {{8503852439842640538ull, 362463239553882ull}},
+ {{17871128396099843400ull, 289970591643105ull}},
+ {{10147061360050197824ull, 463952946628969ull}},
+ {{11806997902782068583ull, 371162357303175ull}},
+ {{9445598322225654866ull, 296929885842540ull}},
+ {{15112957315561047786ull, 475087817348064ull}},
+ {{15779714667190748552ull, 380070253878451ull}},
+ {{8934422919010688518ull, 304056203102761ull}},
+ {{6916379040933280983ull, 486489924964418ull}},
+ {{12911800862230445433ull, 389191939971534ull}},
+ {{14018789504526266669ull, 311353551977227ull}},
+ {{7672667948274385378ull, 498165683163564ull}},
+ {{9827483173361418626ull, 398532546530851ull}},
+ {{4172637723947224577ull, 318826037224681ull}},
+ {{17744266802541290293ull, 510121659559489ull}},
+ {{17884762256774942558ull, 408097327647591ull}},
+ {{10618460990678043723ull, 326477862118073ull}},
+ {{13300188770342959634ull, 522364579388917ull}},
+ {{3261453386790547061ull, 417891663511134ull}},
+ {{6298511524174347972ull, 334313330808907ull}},
+ {{13766967253420867078ull, 534901329294251ull}},
+ {{7324224987994783339ull, 427921063435401ull}},
+ {{2170031175653916348ull, 342336850748321ull}},
+ {{14540096325271997127ull, 547738961197313ull}},
+ {{564030615991866732ull, 438191168957851ull}},
+ {{15208619751761134678ull, 350552935166280ull}},
+ {{5887047529108263869ull, 560884696266049ull}},
+ {{8398986838028521418ull, 448707757012839ull}},
+ {{10408538285164727458ull, 358966205610271ull}},
+ {{4637481813389871643ull, 287172964488217ull}},
+ {{11109319716165704952ull, 459476743181147ull}},
+ {{1508758143448743315ull, 367581394544918ull}},
+ {{8585704144242815299ull, 294065115635934ull}},
+ {{2669080186562773508ull, 470504185017495ull}},
+ {{2135264149250218807ull, 376403348013996ull}},
+ {{16465606578367816338ull, 301122678411196ull}},
+ {{519528822195133879ull, 481796285457915ull}},
+ {{415623057756107103ull, 385437028366332ull}},
+ {{11400544890430616652ull, 308349622693065ull}},
+ {{18240871824688986643ull, 493359396308904ull}},
+ {{18282046274493099638ull, 394687517047123ull}},
+ {{3557590575368748740ull, 315750013637699ull}},
+ {{13070842550073818631ull, 505200021820318ull}},
+ {{17835371669542875551ull, 404160017456254ull}},
+ {{17957646150376210764ull, 323328013965003ull}},
+ {{6596140952150475284ull, 517324822344006ull}},
+ {{1587563946978469904ull, 413859857875205ull}},
+ {{1270051157582775923ull, 331087886300164ull}},
+ {{9410779481616262123ull, 529740618080262ull}},
+ {{149925955809189052ull, 423792494464210ull}},
+ {{119940764647351242ull, 339033995571368ull}},
+ {{14949300482403403280ull, 542454392914188ull}},
+ {{891393941696991654ull, 433963514331351ull}},
+ {{15470510412325234616ull, 347170811465080ull}},
+ {{6306072586010823770ull, 555473298344129ull}},
+ {{8734206883550569339ull, 444378638675303ull}},
+ {{14366063136324276117ull, 355502910940242ull}},
+ {{4114152879575600247ull, 284402328752194ull}},
+ {{13961342236804781043ull, 455043726003510ull}},
+ {{11169073789443824834ull, 364034980802808ull}},
+ {{16313956661038880514ull, 291227984642246ull}},
+ {{276888954468836560ull, 465964775427595ull}},
+ {{221511163575069248ull, 372771820342076ull}},
+ {{14934604189827696691ull, 298217456273660ull}},
+ {{5448622630014763089ull, 477147930037857ull}},
+ {{15426944548237541441ull, 381718344030285ull}},
+ {{12341555638590033153ull, 305374675224228ull}},
+ {{16057140207002142722ull, 488599480358765ull}},
+ {{12845712165601714177ull, 390879584287012ull}},
+ {{2897872102997550695ull, 312703667429610ull}},
+ {{4636595364796081113ull, 500325867887376ull}},
+ {{19927477094954567ull, 400260694309901ull}},
+ {{14773337240643604946ull, 320208555447920ull}},
+ {{5190595511320216298ull, 512333688716673ull}},
+ {{11531174038539993685ull, 409866950973338ull}},
+ {{16603636860315815594ull, 327893560778670ull}},
+ {{8119074902795753335ull, 524629697245873ull}},
+ {{13873957551720423314ull, 419703757796698ull}},
+ {{31119597150607682ull, 335763006237359ull}},
+ {{7428488984924792937ull, 537220809979774ull}},
+ {{9632140002681744673ull, 429776647983819ull}},
+ {{11395060816887306061ull, 343821318387055ull}},
+ {{18232097307019689699ull, 550114109419288ull}},
+ {{3517631401390020789ull, 440091287535431ull}},
+ {{17571500380079657924ull, 352073030028344ull}},
+ {{17746549118805636662ull, 281658424022675ull}},
+ {{9947734516379467044ull, 450653478436281ull}},
+ {{4268838798361663312ull, 360522782749025ull}},
+ {{3415071038689330649ull, 288418226199220ull}},
+ {{5464113661902929039ull, 461469161918752ull}},
+ {{15439337373748074201ull, 369175329535001ull}},
+ {{8662121084256549038ull, 295340263628001ull}},
+ {{6480696105326657814ull, 472544421804802ull}},
+ {{16252603328487057221ull, 378035537443841ull}},
+ {{9312733848047735453ull, 302428429955073ull}},
+ {{11211025342134466402ull, 483885487928117ull}},
+ {{1590122644223752475ull, 387108390342494ull}},
+ {{4961446930120912303ull, 309686712273995ull}},
+ {{7938315088193459686ull, 495498739638392ull}},
+ {{17418698514780498718ull, 396398991710713ull}},
+ {{2866912367598668005ull, 317119193368571ull}},
+ {{15655106232383599778ull, 507390709389713ull}},
+ {{1456038541681148852ull, 405912567511771ull}},
+ {{15922226092312560375ull, 324730054009416ull}},
+ {{18096864118216275953ull, 519568086415066ull}},
+ {{10788142479831110439ull, 415654469132053ull}},
+ {{16009211613348708998ull, 332523575305642ull}},
+ {{10857343322390293104ull, 532037720489028ull}},
+ {{16064572287396055129ull, 425630176391222ull}},
+ {{5472960200433023457ull, 340504141112978ull}},
+ {{5067387505950927208ull, 544806625780765ull}},
+ {{4053910004760741767ull, 435845300624612ull}},
+ {{14311174448034324383ull, 348676240499689ull}},
+ {{11829832672629188043ull, 557881984799503ull}},
+ {{16842563767587171081ull, 446305587839602ull}},
+ {{6095353384585916218ull, 357044470271682ull}},
+ {{15944329151894463944ull, 285635576217345ull}},
+ {{7064182569321590695ull, 457016921947753ull}},
+ {{13030043684941093202ull, 365613537558202ull}},
+ {{3045337318469053915ull, 292490830046562ull}},
+ {{8561888524292396588ull, 467985328074499ull}},
+ {{10538859634175827593ull, 374388262459599ull}},
+ {{12120436522082572398ull, 299510609967679ull}},
+ {{8324651991106384867ull, 479216975948287ull}},
+ {{17727768037110838863ull, 383373580758629ull}},
+ {{17871563244430581414ull, 306698864606903ull}},
+ {{6458408302637468323ull, 490718183371046ull}},
+ {{1477377827368064335ull, 392574546696837ull}},
+ {{12249948706120182437ull, 314059637357469ull}},
+ {{8531871485566560931ull, 502495419771951ull}},
+ {{3136148373711338421ull, 401996335817561ull}},
+ {{17266313957936712030ull, 321597068654048ull}},
+ {{5490009444247277309ull, 514555309846478ull}},
+ {{11770705184881642493ull, 411644247877182ull}},
+ {{2037866518421493348ull, 329315398301746ull}},
+ {{14328632873700120327ull, 526904637282793ull}},
+ {{394859854734365292ull, 421523709826235ull}},
+ {{315887883787492233ull, 337218967860988ull}},
+ {{15262815873027628866ull, 539550348577580ull}},
+ {{12210252698422103093ull, 431640278862064ull}},
+ {{13457550973479592797ull, 345312223089651ull}},
+ {{14153383928083527830ull, 552499556943442ull}},
+ {{3944009512983001617ull, 441999645554754ull}},
+ {{6844556425128311617ull, 353599716443803ull}},
+ {{12854342769586469940ull, 282879773155042ull}},
+ {{5809553172370710611ull, 452607637048068ull}},
+ {{12026340167380389135ull, 362086109638454ull}},
+ {{13310420948646221631ull, 289668887710763ull}},
+ {{17607324703092044287ull, 463470220337221ull}},
+ {{10396510947731725107ull, 370776176269777ull}},
+ {{938511128701559439ull, 296620941015822ull}},
+ {{5190966620664405426ull, 474593505625315ull}},
+ {{4152773296531524340ull, 379674804500252ull}},
+ {{14390265081450950442ull, 303739843600201ull}},
+ {{15645726500837700061ull, 485983749760322ull}},
+ {{5137883571186339402ull, 388786999808258ull}},
+ {{11489004486432892168ull, 311029599846606ull}},
+ {{11003709548808806823ull, 497647359754570ull}},
+ {{8802967639047045458ull, 398117887803656ull}},
+ {{3353025296495726043ull, 318494310242925ull}},
+ {{5364840474393161669ull, 509590896388680ull}},
+ {{4291872379514529335ull, 407672717110944ull}},
+ {{7122846718353533791ull, 326138173688755ull}},
+ {{11396554749365654066ull, 521821077902008ull}},
+ {{16495941428976343899ull, 417456862321606ull}},
+ {{9507404328439164796ull, 333965489857285ull}},
+ {{15211846925502663674ull, 534344783771656ull}},
+ {{8480128725660220616ull, 427475827017325ull}},
+ {{6784102980528176493ull, 341980661613860ull}},
+ {{10854564768845082389ull, 547169058582176ull}},
+ {{4994303000334155588ull, 437735246865741ull}},
+ {{306093585525414147ull, 350188197492593ull}},
+ {{15247144995808303928ull, 560301115988148ull}},
+ {{1129669552420912173ull, 448240892790519ull}},
+ {{4593084456678640061ull, 358592714232415ull}},
+ {{3674467565342912049ull, 286874171385932ull}},
+ {{9568496919290569602ull, 458998674217491ull}},
+ {{3965448720690545358ull, 367198939373993ull}},
+ {{10551056606036256933ull, 293759151499194ull}},
+ {{5813644125432280123ull, 470014642398711ull}},
+ {{961566485603913775ull, 376011713918969ull}},
+ {{4458602003225041343ull, 300809371135175ull}},
+ {{7133763205160066150ull, 481294993816280ull}},
+ {{5707010564128052920ull, 385035995053024ull}},
+ {{8254957266044352659ull, 308028796042419ull}},
+ {{2139885181445233285ull, 492846073667871ull}},
+ {{16469303404123827921ull, 394276858934296ull}},
+ {{9486093908557152013ull, 315421487147437ull}},
+ {{420354994723801929ull, 504674379435900ull}},
+ {{336283995779041543ull, 403739503548720ull}},
+ {{269027196623233234ull, 322991602838976ull}},
+ {{11498489958822904144ull, 516786564542361ull}},
+ {{5509443152316412992ull, 413429251633889ull}},
+ {{8096903336595040717ull, 330743401307111ull}},
+ {{5576347709068244501ull, 529189442091378ull}},
+ {{11839775796738416247ull, 423351553673102ull}},
+ {{2093123007906912351ull, 338681242938482ull}},
+ {{7038345627392970085ull, 541889988701571ull}},
+ {{1941327687172465745ull, 433511990961257ull}},
+ {{12621108593963703565ull, 346809592769005ull}},
+ {{1747029676632374089ull, 554895348430409ull}},
+ {{5086972556047809594ull, 443916278744327ull}},
+ {{15137624489063978645ull, 355133022995461ull}},
+ {{8420750776509272593ull, 284106418396369ull}},
+ {{2405154798189105179ull, 454570269434191ull}},
+ {{16681519097518925436ull, 363656215547352ull}},
+ {{5966517648531319702ull, 290924972437882ull}},
+ {{13235777052392021847ull, 465479955900611ull}},
+ {{6899272827171707154ull, 372383964720489ull}},
+ {{9208767076479276047ull, 297907171776391ull}},
+ {{7355329692883021028ull, 476651474842226ull}},
+ {{2194914939564506499ull, 381321179873781ull}},
+ {{16513327210619246492ull, 305056943899024ull}},
+ {{15353277092765063418ull, 488091110238439ull}},
+ {{15971970488953961058ull, 390472888190751ull}},
+ {{9088227576421258523ull, 312378310552601ull}},
+ {{7162466492790192990ull, 499805296884162ull}},
+ {{16798019638457885362ull, 399844237507329ull}},
+ {{17127764525508218613ull, 319875390005863ull}},
+ {{5268330352361687841ull, 511800624009382ull}},
+ {{15282710726115081243ull, 409440499207505ull}},
+ {{12226168580892064994ull, 327552399366004ull}},
+ {{8493823285201573021ull, 524083838985607ull}},
+ {{17863105072386989386ull, 419267071188485ull}},
+ {{14290484057909591509ull, 335413656950788ull}},
+ {{728681604203884475ull, 536661851121262ull}},
+ {{11650991727588838550ull, 429329480897009ull}},
+ {{13010142196812981163ull, 343463584717607ull}},
+ {{6058832255933128568ull, 549541735548172ull}},
+ {{15915112248972233824ull, 439633388438537ull}},
+ {{5353392169693966413ull, 351706710750830ull}},
+ {{8565427471510346261ull, 562730737201328ull}},
+ {{14231039606692097655ull, 450184589761062ull}},
+ {{4006134055869857477ull, 360147671808850ull}},
+ {{3204907244695885982ull, 288118137447080ull}},
+ {{5127851591513417571ull, 460989019915328ull}},
+ {{11480978902694554703ull, 368791215932262ull}},
+ {{1806085492671823116ull, 295032972745810ull}},
+ {{2889736788274916986ull, 472052756393296ull}},
+ {{17069184689587574882ull, 377642205114636ull}},
+ {{9965998936928149582ull, 302113764091709ull}},
+ {{4877551854859308362ull, 483382022546735ull}},
+ {{3902041483887446689ull, 386705618037388ull}},
+ {{10500330816593777998ull, 309364494429910ull}},
+ {{16800529306550044797ull, 494983191087856ull}},
+ {{9751074630498125514ull, 395986552870285ull}},
+ {{7800859704398500411ull, 316789242296228ull}},
+ {{8792026712295690335ull, 506862787673965ull}},
+ {{7033621369836552268ull, 405490230139172ull}},
+ {{16694943540094972784ull, 324392184111337ull}},
+ {{11954514405184315162ull, 519027494578140ull}},
+ {{9563611524147452129ull, 415221995662512ull}},
+ {{272191589834141057ull, 332177596530010ull}},
+ {{435506543734625691ull, 531484154448016ull}},
+ {{15105800493955341846ull, 425187323558412ull}},
+ {{4705942765680452830ull, 340149858846730ull}},
+ {{7529508425088724528ull, 544239774154768ull}},
+ {{13402304369554800269ull, 435391819323814ull}},
+ {{14411192310385750538ull, 348313455459051ull}},
+ {{15679210067133380215ull, 557301528734482ull}},
+ {{5164670424222883526ull, 445841222987586ull}},
+ {{442387524636396497ull, 356672978390069ull}},
+ {{4043258834451027521ull, 285338382712055ull}},
+ {{6469214135121644034ull, 456541412339288ull}},
+ {{12554068937581135873ull, 365233129871430ull}},
+ {{10043255150064908699ull, 292186503897144ull}},
+ {{5001161795878122948ull, 467498406235431ull}},
+ {{311580621960588035ull, 373998724988345ull}},
+ {{249264497568470428ull, 299198979990676ull}},
+ {{11466869640335283655ull, 478718367985081ull}},
+ {{5484146897526316601ull, 382974694388065ull}},
+ {{4387317518021053280ull, 306379755510452ull}},
+ {{10709056843575595572ull, 490207608816723ull}},
+ {{15945943104344297104ull, 392166087053378ull}},
+ {{1688708039249706714ull, 313732869642703ull}},
+ {{17459328121767172035ull, 501972591428324ull}},
+ {{17656811312155647951ull, 401578073142659ull}},
+ {{17814797864466428684ull, 321262458514127ull}},
+ {{13746281324178644602ull, 514019933622604ull}},
+ {{14686373874084826004ull, 411215946898083ull}},
+ {{681052655042129834ull, 328972757518467ull}},
+ {{4779033062809318058ull, 526356412029547ull}},
+ {{14891272894473185416ull, 421085129623637ull}},
+ {{4534320686094727686ull, 336868103698910ull}},
+ {{7254913097751564298ull, 538988965918256ull}},
+ {{2114581663459341115ull, 431191172734605ull}},
+ {{1691665330767472892ull, 344952938187684ull}},
+ {{10085362158711777274ull, 551924701100294ull}},
+ {{11757638541711332142ull, 441539760880235ull}},
+ {{9406110833369065714ull, 353231808704188ull}},
+ {{14903586296179073217ull, 282585446963350ull}},
+ {{5398994000176965532ull, 452136715141361ull}},
+ {{629846385399662102ull, 361709372113089ull}},
+ {{4193225923061640005ull, 289367497690471ull}},
+ {{17777207921124354978ull, 462987996304753ull}},
+ {{3153719892673753012ull, 370390397043803ull}},
+ {{9901673543622823056ull, 296312317635042ull}},
+ {{1085282410828875597ull, 474099708216068ull}},
+ {{8246923558146921124ull, 379279766572854ull}},
+ {{10286887661259447222ull, 303423813258283ull}},
+ {{12769671443273205233ull, 485478101213253ull}},
+ {{17594434784102384833ull, 388382480970602ull}},
+ {{6696850197798087220ull, 310705984776482ull}},
+ {{14404309131218849875ull, 497129575642371ull}},
+ {{7834098490233169577ull, 397703660513897ull}},
+ {{17335325236412266631ull, 318162928411117ull}},
+ {{12979125119291985317ull, 509060685457788ull}},
+ {{17761997724917408900ull, 407248548366230ull}},
+ {{14209598179933927120ull, 325798838692984ull}},
+ {{11667310643668552422ull, 521278141908775ull}},
+ {{9333848514934841938ull, 417022513527020ull}},
+ {{7467078811947873550ull, 333618010821616ull}},
+ {{4568628469632777034ull, 533788817314586ull}},
+ {{18412298034673862920ull, 427031053851668ull}},
+ {{3661791983513359366ull, 341624843081335ull}},
+ {{5858867173621374986ull, 546599748930136ull}},
+ {{997744924155189666ull, 437279799144109ull}},
+ {{4487544754066062056ull, 349823839315287ull}},
+ {{10869420421247609613ull, 559718142904459ull}},
+ {{12384885151739998013ull, 447774514323567ull}},
+ {{2529210491908177764ull, 358219611458854ull}},
+ {{5712717208268452534ull, 286575689167083ull}},
+ {{5450998718487613732ull, 458521102667333ull}},
+ {{11739496604273911632ull, 366816882133866ull}},
+ {{5702248468677218982ull, 293453505707093ull}},
+ {{5434248735141640049ull, 469525609131349ull}},
+ {{8036747802855222362ull, 375620487305079ull}},
+ {{10118747057026088213ull, 300496389844063ull}},
+ {{12500646476499830818ull, 480794223750501ull}},
+ {{6311168366457954331ull, 384635379000401ull}},
+ {{1359585878424453141ull, 307708303200321ull}},
+ {{13243383849704855996ull, 492333285120513ull}},
+ {{17973404709247705443ull, 393866628096410ull}},
+ {{14378723767398164354ull, 315093302477128ull}},
+ {{869865139385601028ull, 504149283963406ull}},
+ {{15453287370476122115ull, 403319427170724ull}},
+ {{16051978711122808015ull, 322655541736579ull}},
+ {{14615119493570761855ull, 516248866778527ull}},
+ {{4313397965372788838ull, 412999093422822ull}},
+ {{14518764816523962040ull, 330399274738257ull}},
+ {{8472628447470697971ull, 528638839581212ull}},
+ {{17846149202202289346ull, 422911071664969ull}},
+ {{17966268176503741800ull, 338328857331975ull}},
+ {{10299285008696435264ull, 541326171731161ull}},
+ {{4550079192215237888ull, 433060937384929ull}},
+ {{7329412168514100634ull, 346448749907943ull}},
+ {{8037710654880650691ull, 554317999852709ull}},
+ {{10119517338646430876ull, 443454399882167ull}},
+ {{716916241433324054ull, 354763519905734ull}},
+ {{4262881807888569566ull, 283810815924587ull}},
+ {{10509959707363621630ull, 454097305479339ull}},
+ {{12097316580632807627ull, 363277844383471ull}},
+ {{5988504449764335778ull, 290622275506777ull}},
+ {{13270955934364847569ull, 464995640810843ull}},
+ {{17995462376975698701ull, 371996512648674ull}},
+ {{18085718716322469284ull, 297597210118939ull}},
+ {{17869103501890219885ull, 476155536190303ull}},
+ {{3227236357286444938ull, 380924428952243ull}},
+ {{9960486715312976597ull, 304739543161794ull}},
+ {{4868732300275031586ull, 487583269058871ull}},
+ {{205637025478114945ull, 390066615247097ull}},
+ {{11232556064608222926ull, 312053292197677ull}},
+ {{3214694444405515389ull, 499285267516284ull}},
+ {{6261104370266322634ull, 399428214013027ull}},
+ {{16076929940438789077ull, 319542571210421ull}},
+ {{18344390275218241877ull, 511268113936674ull}},
+ {{18364861034916503825ull, 409014491149339ull}},
+ {{18381237642675113383ull, 327211592919471ull}},
+ {{3584538525086809150ull, 523538548671155ull}},
+ {{2867630820069447320ull, 418830838936924ull}},
+ {{5983453470797468179ull, 335064671149539ull}},
+ {{16952223182759769734ull, 536103473839262ull}},
+ {{6183080916723995140ull, 428882779071410ull}},
+ {{4946464733379196112ull, 343106223257128ull}},
+ {{4224994758664803457ull, 548969957211405ull}},
+ {{3379995806931842765ull, 439175965769124ull}},
+ {{6393345460287384535ull, 351340772615299ull}},
+ {{17608050365943635903ull, 562145236184478ull}},
+ {{3018393848529177753ull, 449716188947583ull}},
+ {{9793412708307162849ull, 359772951158066ull}},
+ {{4145381351903819956ull, 287818360926453ull}},
+ {{2943261348304201606ull, 460509377482325ull}},
+ {{2354609078643361285ull, 368407501985860ull}},
+ {{1883687262914689028ull, 294726001588688ull}},
+ {{17771294879631143737ull, 471561602541900ull}},
+ {{14217035903704914990ull, 377249282033520ull}},
+ {{11373628722963931992ull, 301799425626816ull}},
+ {{10819108327258470541ull, 482879081002906ull}},
+ {{4965937847064866109ull, 386303264802325ull}},
+ {{3972750277651892887ull, 309042611841860ull}},
+ {{6356400444243028620ull, 494468178946976ull}},
+ {{1395771540652512573ull, 395574543157581ull}},
+ {{15874012491489651351ull, 316459634526064ull}},
+ {{14330373542157711192ull, 506335415241703ull}},
+ {{396252389500437984ull, 405068332193363ull}},
+ {{7695699541084171033ull, 324054665754690ull}},
+ {{12313119265734673654ull, 518487465207504ull}},
+ {{13539844227329649246ull, 414789972166003ull}},
+ {{18210573011347540043ull, 331831977732802ull}},
+ {{14379521559188422777ull, 530931164372484ull}},
+ {{15192966062092648544ull, 424744931497987ull}},
+ {{4775675220190298189ull, 339795945198390ull}},
+ {{7641080352304477103ull, 543673512317424ull}},
+ {{9802213096585492005ull, 434938809853939ull}},
+ {{11531119292010303927ull, 347951047883151ull}},
+ {{11071093237732665638ull, 556721676613042ull}},
+ {{1478176960702311864ull, 445377341290434ull}},
+ {{4871890383303759814ull, 356301873032347ull}},
+ {{14965558750868738821ull, 285041498425877ull}},
+ {{9187498742422340821ull, 456066397481404ull}},
+ {{11039347808679782980ull, 364853117985123ull}},
+ {{16210175876427647030ull, 291882494388098ull}},
+ {{3800188513832773309ull, 467011991020958ull}},
+ {{10418848440550039293ull, 373609592816766ull}},
+ {{4645729937698121111ull, 298887674253413ull}},
+ {{3743819085575083455ull, 478220278805461ull}},
+ {{17752450527427708057ull, 382576223044368ull}},
+ {{3133913977716435476ull, 306060978435495ull}},
+ {{5014262364346296762ull, 489697565496792ull}},
+ {{15079456335702768379ull, 391758052397433ull}},
+ {{995518624336483733ull, 313406441917947ull}},
+ {{5282178613680284297ull, 501450307068715ull}},
+ {{4225742890944227438ull, 401160245654972ull}},
+ {{14448640756981112920ull, 320928196523977ull}},
+ {{8360429952202139379ull, 513485114438364ull}},
+ {{10377692776503621826ull, 410788091550691ull}},
+ {{4612805406460987138ull, 328630473240553ull}},
+ {{3691139835595669097ull, 525808757184885ull}},
+ {{2952911868476535278ull, 420647005747908ull}},
+ {{9741027124265048868ull, 336517604598326ull}},
+ {{8206945769340257543ull, 538428167357322ull}},
+ {{17633603059697937004ull, 430742533885857ull}},
+ {{6728184818274528957ull, 344594027108686ull}},
+ {{3386398079755425685ull, 551350443373898ull}},
+ {{10087816093288161194ull, 441080354699118ull}},
+ {{15448950504114349602ull, 352864283759294ull}},
+ {{16048509218033390004ull, 282291427007435ull}},
+ {{7230870675143872391ull, 451666283211897ull}},
+ {{16852742984340828883ull, 361333026569517ull}},
+ {{6103496757988842460ull, 289066421255614ull}},
+ {{17144292442265968582ull, 462506274008982ull}},
+ {{6336736324328954219ull, 370005019207186ull}},
+ {{1380040244721253052ull, 296004015365749ull}},
+ {{9586762021037825530ull, 473606424585198ull}},
+ {{15048107246314081070ull, 378885139668158ull}},
+ {{970439352825533886ull, 303108111734527ull}},
+ {{5242051779262764542ull, 484972978775243ull}},
+ {{11572339052894032280ull, 387978383020194ull}},
+ {{12947220057057136147ull, 310382706416155ull}},
+ {{2268808017581866219ull, 496612330265849ull}},
+ {{5504395228807403299ull, 397289864212679ull}},
+ {{8092864997787832962ull, 317831891370143ull}},
+ {{9259235181718622416ull, 508531026192229ull}},
+ {{11096736960116808256ull, 406824820953783ull}},
+ {{16256087197577267251ull, 325459856763026ull}},
+ {{184297812930255340ull, 520735770820843ull}},
+ {{7526135879828024918ull, 416588616656674ull}},
+ {{9710257518604330258ull, 333270893325339ull}},
+ {{4468365585541197443ull, 533233429320543ull}},
+ {{10953390097916778601ull, 426586743456434ull}},
+ {{12452060893075333204ull, 341269394765147ull}},
+ {{5165902169952891833ull, 546031031624236ull}},
+ {{443372921220403143ull, 436824825299389ull}},
+ {{4044047151718232838ull, 349459860239511ull}},
+ {{17538521886974903510ull, 559135776383217ull}},
+ {{6652119880096102162ull, 447308621106574ull}},
+ {{9011044718818792053ull, 357846896885259ull}},
+ {{10898184589796943965ull, 286277517508207ull}},
+ {{2679700084707469052ull, 458044028013132ull}},
+ {{13211806511991706211ull, 366435222410505ull}},
+ {{10569445209593364969ull, 293148177928404ull}},
+ {{5843065891123652980ull, 469037084685447ull}},
+ {{15742499157124653354ull, 375229667748357ull}},
+ {{5215301696215902037ull, 300183734198686ull}},
+ {{965785084461622612ull, 480293974717898ull}},
+ {{8151325697053118736ull, 384235179774318ull}},
+ {{13899758187126315635ull, 307388143819454ull}},
+ {{11171566655176374047ull, 491821030111127ull}},
+ {{1558555694657278591ull, 393456824088902ull}},
+ {{12314890999951553842ull, 314765459271121ull}},
+ {{12325127970438665502ull, 503624734833794ull}},
+ {{13549451191092842725ull, 402899787867035ull}},
+ {{10839560952874274180ull, 322319830293628ull}},
+ {{13653948709856928364ull, 515711728469805ull}},
+ {{10923158967885542691ull, 412569382775844ull}},
+ {{12427875989050344476ull, 330055506220675ull}},
+ {{1437857508770999546ull, 528088809953081ull}},
+ {{15907681265984440930ull, 422471047962464ull}},
+ {{16415493827529463067ull, 337976838369971ull}},
+ {{439348420853768645ull, 540762941391955ull}},
+ {{351478736683014916ull, 432610353113564ull}},
+ {{3970531804088322256ull, 346088282490851ull}},
+ {{17420897330767046579ull, 553741251985361ull}},
+ {{10247369049871726940ull, 442993001588289ull}},
+ {{11887244054639291875ull, 354394401270631ull}},
+ {{5820446428969523177ull, 283515521016505ull}},
+ {{9312714286351237083ull, 453624833626408ull}},
+ {{14828869058564810313ull, 362899866901126ull}},
+ {{8173746432109937927ull, 290319893520901ull}},
+ {{5699296661892080037ull, 464511829633442ull}},
+ {{15627483773739394999ull, 371609463706753ull}},
+ {{1433940574765785030ull, 297287570965403ull}},
+ {{17051700178592897340ull, 475660113544644ull}},
+ {{17330708957616228195ull, 380528090835715ull}},
+ {{13864567166092982556ull, 304422472668572ull}},
+ {{7425912206781130798ull, 487075956269716ull}},
+ {{2251380950682994315ull, 389660765015773ull}},
+ {{9179802390030216098ull, 311728612012618ull}},
+ {{10998335009306435434ull, 498765779220189ull}},
+ {{12488016822187058670ull, 399012623376151ull}},
+ {{6301064643007736613ull, 319210098700921ull}},
+ {{2703005799328557935ull, 510736157921474ull}},
+ {{5851753454204756671ull, 408588926337179ull}},
+ {{8370751578105715660ull, 326871141069743ull}},
+ {{9703853710227234733ull, 522993825711589ull}},
+ {{11452431782923698109ull, 418395060569271ull}},
+ {{5472596611597048164ull, 334716048455417ull}},
+ {{12445503393297187386ull, 535545677528667ull}},
+ {{2577705085153929262ull, 428436542022934ull}},
+ {{5751512882865053733ull, 342749233618347ull}},
+ {{12891769427325996296ull, 548398773789355ull}},
+ {{10313415541860797037ull, 438719019031484ull}},
+ {{11940081248230547953ull, 350975215225187ull}},
+ {{4346734738201235432ull, 561560344360300ull}},
+ {{3477387790560988345ull, 449248275488240ull}},
+ {{2781910232448790676ull, 359398620390592ull}},
+ {{13293574630184763510ull, 287518896312473ull}},
+ {{17580370593553711294ull, 460030234099957ull}},
+ {{6685598845359148388ull, 368024187279966ull}},
+ {{1659130261545408387ull, 294419349823973ull}},
+ {{17412003677440294713ull, 471070959718356ull}},
+ {{10240254127210325447ull, 376856767774685ull}},
+ {{8192203301768260358ull, 301485414219748ull}},
+ {{9418176468087306249ull, 482376662751597ull}},
+ {{155843544986024353ull, 385901330201278ull}},
+ {{7503372465472640129ull, 308721064161022ull}},
+ {{15694744759498134529ull, 493953702657635ull}},
+ {{12555795807598507623ull, 395162962126108ull}},
+ {{17423334275562626745ull, 316130369700886ull}},
+ {{2051893137706830530ull, 505808591521419ull}},
+ {{5330863324907374747ull, 404646873217135ull}},
+ {{4264690659925899798ull, 323717498573708ull}},
+ {{3134156241139529353ull, 517947997717933ull}},
+ {{9886022622395444129ull, 414358398174346ull}},
+ {{4219469283174444980ull, 331486718539477ull}},
+ {{10440499667821022291ull, 530378749663163ull}},
+ {{15731097363740638479ull, 424302999730530ull}},
+ {{12584877890992510783ull, 339442399784424ull}},
+ {{9067758181362286284ull, 543107839655079ull}},
+ {{10943555359831739350ull, 434486271724063ull}},
+ {{16133541917349212126ull, 347589017379250ull}},
+ {{7366922994049187787ull, 556142427806801ull}},
+ {{2204189580497439906ull, 444913942245441ull}},
+ {{16520746923365593218ull, 355931153796352ull}},
+ {{5837899909208653928ull, 284744923037082ull}},
+ {{13029988669475756608ull, 455591876859331ull}},
+ {{6734642120838694963ull, 364473501487465ull}},
+ {{5387713696670955970ull, 291578801189972ull}},
+ {{12309690729415439876ull, 466526081903955ull}},
+ {{9847752583532351900ull, 373220865523164ull}},
+ {{11567550881567791843ull, 298576692418531ull}},
+ {{11129383781024646303ull, 477722707869650ull}},
+ {{8903507024819717043ull, 382178166295720ull}},
+ {{7122805619855773634ull, 305742533036576ull}},
+ {{4017791362285417168ull, 489188052858522ull}},
+ {{14282279534054064704ull, 391350442286817ull}},
+ {{4047125997759431117ull, 313080353829454ull}},
+ {{13854099225898910434ull, 500928566127126ull}},
+ {{7393930565977218024ull, 400742852901701ull}},
+ {{2225795638039864096ull, 320594282321361ull}},
+ {{14629319465089513523ull, 512950851714177ull}},
+ {{4324757942587790172ull, 410360681371342ull}},
+ {{14527852798295963107ull, 328288545097073ull}},
+ {{1108471588822079032ull, 525261672155318ull}},
+ {{8265474900541483872ull, 420209337724254ull}},
+ {{10301728735175097421ull, 336167470179403ull}},
+ {{12793417161538245550ull, 537867952287045ull}},
+ {{10234733729230596440ull, 430294361829636ull}},
+ {{4498438168642566829ull, 344235489463709ull}},
+ {{14576198699311927573ull, 550776783141934ull}},
+ {{15350307774191452381ull, 440621426513547ull}},
+ {{4901548589869341258ull, 352497141210838ull}},
+ {{11299936501379293653ull, 281997712968670ull}},
+ {{18079898402206869845ull, 451196340749872ull}},
+ {{7085221092281675230ull, 360957072599898ull}},
+ {{13046874503309160830ull, 288765658079918ull}},
+ {{17185650390552747005ull, 462025052927869ull}},
+ {{17437869127184107927ull, 369620042342295ull}},
+ {{13950295301747286342ull, 295696033873836ull}},
+ {{14941774853311837501ull, 473113654198138ull}},
+ {{885373438423739031ull, 378490923358511ull}},
+ {{15465694009706632517ull, 302792738686808ull}},
+ {{2609017527079150089ull, 484468381898894ull}},
+ {{5776562836405230394ull, 387574705519115ull}},
+ {{4621250269124184315ull, 310059764415292ull}},
+ {{11083349245340605228ull, 496095623064467ull}},
+ {{1487981766788663536ull, 396876498451574ull}},
+ {{4879734228172841152ull, 317501198761259ull}},
+ {{15186272394560366489ull, 508001918018014ull}},
+ {{15838366730390203515ull, 406401534414411ull}},
+ {{8981344569570252488ull, 325121227531529ull}},
+ {{3302104867086673012ull, 520193964050447ull}},
+ {{13709730337895069379ull, 416155171240357ull}},
+ {{3589086640832234857ull, 332924136992286ull}},
+ {{16810585069557306741ull, 532678619187657ull}},
+ {{6069770426162024746ull, 426142895350126ull}},
+ {{1166467526187709474ull, 340914316280101ull}},
+ {{12934394486126066128ull, 545462906048161ull}},
+ {{6658166774158942579ull, 436370324838529ull}},
+ {{9015882234069064386ull, 349096259870823ull}},
+ {{10736062759768592695ull, 558554015793317ull}},
+ {{1210152578331053510ull, 446843212634654ull}},
+ {{4657470877406753131ull, 357474570107723ull}},
+ {{11104674331409223151ull, 285979656086178ull}},
+ {{14078130115512846719ull, 457567449737885ull}},
+ {{11262504092410277375ull, 366053959790308ull}},
+ {{16388700903412042546ull, 292843167832246ull}},
+ {{396479742265895812ull, 468549068531595ull}},
+ {{317183793812716649ull, 374839254825276ull}},
+ {{15011142294017814612ull, 299871403860220ull}},
+ {{5571083596718951764ull, 479794246176353ull}},
+ {{11835564506858982057ull, 383835396941082ull}},
+ {{2089753976003364999ull, 307068317552866ull}},
+ {{14411652805831114969ull, 491309308084585ull}},
+ {{11529322244664891975ull, 393047446467668ull}},
+ {{16602155425215734226ull, 314437957174134ull}},
+ {{15495402236119443793ull, 503100731478615ull}},
+ {{12396321788895555034ull, 402480585182892ull}},
+ {{2538359801632623381ull, 321984468146314ull}},
+ {{11440073312096018056ull, 515175149034102ull}},
+ {{1773361020192993798ull, 412140119227282ull}},
+ {{12486735260380126008ull, 329712095381825ull}},
+ {{1532032342898649997ull, 527539352610921ull}},
+ {{15983021133286561290ull, 422031482088736ull}},
+ {{9097068091887338709ull, 337625185670989ull}},
+ {{3487262502794010965ull, 540200297073583ull}},
+ {{10168507631719029418ull, 432160237658866ull}},
+ {{4445457290633313211ull, 345728190127093ull}},
+ {{3423382850271390815ull, 553165104203349ull}},
+ {{6428055094959022975ull, 442532083362679ull}},
+ {{8831792890709128703ull, 354025666690143ull}},
+ {{14444131942051123609ull, 283220533352114ull}},
+ {{12042564663056066805ull, 453152853363383ull}},
+ {{17012749359928674090ull, 362522282690706ull}},
+ {{9920850673201028949ull, 290017826152565ull}},
+ {{15873361077121646319ull, 464028521844104ull}},
+ {{16388037676439227378ull, 371222817475283ull}},
+ {{2042383696925650933ull, 296978253980227ull}},
+ {{6957162729822951816ull, 475165206368363ull}},
+ {{12944427813342182099ull, 380132165094690ull}},
+ {{10355542250673745679ull, 304105732075752ull}},
+ {{1811472342110351794ull, 486569171321204ull}},
+ {{5138526688430191758ull, 389255337056963ull}},
+ {{11489518980227974053ull, 311404269645570ull}},
+ {{18383230368364758485ull, 498246831432912ull}},
+ {{7327886665207986142ull, 398597465146330ull}},
+ {{5862309332166388913ull, 318877972117064ull}},
+ {{16758392560950042908ull, 510204755387302ull}},
+ {{6028016419276213680ull, 408163804309842ull}},
+ {{15890459579646701913ull, 326531043447873ull}},
+ {{3288642438983261122ull, 522449669516598ull}},
+ {{10009611580670429544ull, 417959735613278ull}},
+ {{15386386894020164282ull, 334367788490622ull}},
+ {{9860823771464621558ull, 534988461584996ull}},
+ {{4199310202429786923ull, 427990769267997ull}},
+ {{14427494606169560508ull, 342392615414397ull}},
+ {{8326596110903655521ull, 547828184663036ull}},
+ {{2971928073981014093ull, 438262547730429ull}},
+ {{6066891273926721598ull, 350610038184343ull}},
+ {{6017677223540844233ull, 560976061094949ull}},
+ {{8503490593574585710ull, 448780848875959ull}},
+ {{10492141289601578891ull, 359024679100767ull}},
+ {{1015015402197442466ull, 287219743280614ull}},
+ {{9002722272999728593ull, 459551589248982ull}},
+ {{18270224262625513844ull, 367641271399185ull}},
+ {{14616179410100411075ull, 294113017119348ull}},
+ {{1249794167709195781ull, 470580827390958ull}},
+ {{8378532963651177271ull, 376464661912766ull}},
+ {{3013477556179031493ull, 301171729530213ull}},
+ {{1132215275144540067ull, 481874767248341ull}},
+ {{15663167479083273346ull, 385499813798672ull}},
+ {{5151836353782798030ull, 308399851038938ull}},
+ {{4553589351310566526ull, 493439761662301ull}},
+ {{18400266740016094513ull, 394751809329840ull}},
+ {{14720213392012875610ull, 315801447463872ull}},
+ {{8794946168252959684ull, 505282315942196ull}},
+ {{3346608119860457424ull, 404225852753757ull}},
+ {{13745332940114096909ull, 323380682203005ull}},
+ {{3545788630473003438ull, 517409091524809ull}},
+ {{6525979719120313074ull, 413927273219847ull}},
+ {{16288830219521981428ull, 331141818575877ull}},
+ {{11304733092267528993ull, 529826909721404ull}},
+ {{12733135288555933517ull, 423861527777123ull}},
+ {{17565205860328567460ull, 339089222221698ull}},
+ {{5968236488074245998ull, 542542755554718ull}},
+ {{12153286819943217444ull, 434034204443774ull}},
+ {{13411978270696484279ull, 347227363555019ull}},
+ {{10391118788888643876ull, 555563781688031ull}},
+ {{4623546216369004778ull, 444451025350425ull}},
+ {{3698836973095203822ull, 355560820280340ull}},
+ {{2959069578476163058ull, 284448656224272ull}},
+ {{8423860140303771216ull, 455117849958835ull}},
+ {{6739088112243016972ull, 364094279967068ull}},
+ {{12769968119278234224ull, 291275423973654ull}},
+ {{9363902546619443790ull, 466040678357847ull}},
+ {{112424407811734385ull, 372832542686278ull}},
+ {{7468637155733208154ull, 298266034149022ull}},
+ {{15639168263915043371ull, 477225654638435ull}},
+ {{12511334611132034696ull, 381780523710748ull}},
+ {{17387765318389448403ull, 305424418968598ull}},
+ {{5684331620971655507ull, 488679070349758ull}},
+ {{11926162926261145052ull, 390943256279806ull}},
+ {{5851581526267005718ull, 312754605023845ull}},
+ {{9362530442027209149ull, 500407368038152ull}},
+ {{111326724137946673ull, 400325894430522ull}},
+ {{11157107823536088308ull, 320260715544417ull}},
+ {{3093977258690100000ull, 512417144871068ull}},
+ {{9853879436435900646ull, 409933715896854ull}},
+ {{11572452363890630840ull, 327946972717483ull}},
+ {{14826574967483099021ull, 524715156347973ull}},
+ {{793213529760748247ull, 419772125078379ull}},
+ {{4323919638550508921ull, 335817700062703ull}},
+ {{3228922606938903950ull, 537308320100325ull}},
+ {{2583138085551123160ull, 429846656080260ull}},
+ {{2066510468440898528ull, 343877324864208ull}},
+ {{18063812008473078938ull, 550203719782732ull}},
+ {{7072351977294642504ull, 440162975826186ull}},
+ {{1968532767093803680ull, 352130380660949ull}},
+ {{5264175028416953267ull, 281704304528759ull}},
+ {{15801377674950945874ull, 450726887246014ull}},
+ {{16330450954702667022ull, 360581509796811ull}},
+ {{9375011949020223294ull, 288465207837449ull}},
+ {{3931972674206626302ull, 461544332539919ull}},
+ {{6834926954107211365ull, 369235466031935ull}},
+ {{5467941563285769092ull, 295388372825548ull}},
+ {{5059357686515320224ull, 472621396520877ull}},
+ {{15115532593437987148ull, 378097117216701ull}},
+ {{8403077260008479395ull, 302477693773361ull}},
+ {{6066225986529746386ull, 483964310037378ull}},
+ {{12231678418707617755ull, 387171448029902ull}},
+ {{2406645105482273558ull, 309737158423922ull}},
+ {{7539980983513548016ull, 495579453478275ull}},
+ {{6031984786810838413ull, 396463562782620ull}},
+ {{4825587829448670730ull, 317170850226096ull}},
+ {{342242897634052522ull, 507473360361754ull}},
+ {{3963143132849152341ull, 405978688289403ull}},
+ {{10549212135763142519ull, 324782950631522ull}},
+ {{2121344158253386738ull, 519652721010436ull}},
+ {{16454470585570350683ull, 415722176808348ull}},
+ {{2095530024230549577ull, 332577741446679ull}},
+ {{10731545668252699969ull, 532124386314686ull}},
+ {{4895887719860249652ull, 425699509051749ull}},
+ {{7606058990630110045ull, 340559607241399ull}},
+ {{1101647940782445102ull, 544895371586239ull}},
+ {{4570667167367866405ull, 435916297268991ull}},
+ {{18413928992861934417ull, 348733037815192ull}},
+ {{14704891129611453774ull, 557972860504308ull}},
+ {{695866459463432050ull, 446378288403447ull}},
+ {{11624739611796476609ull, 357102630722757ull}},
+ {{1921094059953360641ull, 285682104578206ull}},
+ {{14141796940151107995ull, 457091367325129ull}},
+ {{15002786366862796719ull, 365673093860103ull}},
+ {{934182649264506406ull, 292538475088083ull}},
+ {{16252087497790851542ull, 468061560140932ull}},
+ {{5622972368748860587ull, 374449248112746ull}},
+ {{809029080257178147ull, 299559398490197ull}},
+ {{4983795343153395358ull, 479295037584315ull}},
+ {{3987036274522716286ull, 383436030067452ull}},
+ {{14257675463843903999ull, 306748824053961ull}},
+ {{15433583112666425752ull, 490798118486338ull}},
+ {{1278820045907409632ull, 392638494789071ull}},
+ {{15780451295693568998ull, 314110795831256ull}},
+ {{17870024443625889751ull, 502577273330010ull}},
+ {{14296019554900711801ull, 402061818664008ull}},
+ {{368769199694838471ull, 321649454931207ull}},
+ {{4279379534253651877ull, 514639127889931ull}},
+ {{18180898886370562794ull, 411711302311944ull}},
+ {{18234067923838360558ull, 329369041849555ull}},
+ {{10727764604431825278ull, 526990466959289ull}},
+ {{12271560498287370545ull, 421592373567431ull}},
+ {{6127899583887986113ull, 337273898853945ull}},
+ {{9804639334220777781ull, 539638238166312ull}},
+ {{465013837892801578ull, 431710590533050ull}},
+ {{372011070314241262ull, 345368472426440ull}},
+ {{595217712502786020ull, 552589555882304ull}},
+ {{4165522984744139139ull, 442071644705843ull}},
+ {{10711116017279131958ull, 353657315764674ull}},
+ {{12258241628565215889ull, 282925852611739ull}},
+ {{8545140161478614454ull, 452681364178783ull}},
+ {{14214809758666712209ull, 362145091343026ull}},
+ {{7682498992191459444ull, 289716073074421ull}},
+ {{4913300758022514464ull, 463545716919074ull}},
+ {{7619989421159921895ull, 370836573535259ull}},
+ {{9785340351669847839ull, 296669258828207ull}},
+ {{899149303704115249ull, 474670814125132ull}},
+ {{11787365887189023169ull, 379736651300105ull}},
+ {{9429892709751218535ull, 303789321040084ull}},
+ {{4019781891376218687ull, 486062913664135ull}},
+ {{3215825513100974949ull, 388850330931308ull}},
+ {{9951358039964600606ull, 311080264745046ull}},
+ {{8543475234459540323ull, 497728423592074ull}},
+ {{10524129002309542582ull, 398182738873659ull}},
+ {{12108652016589544388ull, 318546191098927ull}},
+ {{4616447967575629729ull, 509673905758284ull}},
+ {{7382507188802414106ull, 407739124606627ull}},
+ {{16974052195267662255ull, 326191299685301ull}},
+ {{1333041809234887345ull, 521906079496483ull}},
+ {{8445131076871730522ull, 417524863597186ull}},
+ {{3066756046755474095ull, 334019890877749ull}},
+ {{12285507304292579198ull, 534431825404398ull}},
+ {{17207103472917884005ull, 427545460323518ull}},
+ {{2697636334108576234ull, 342036368258815ull}},
+ {{4316218134573721975ull, 547258189214104ull}},
+ {{7142323322400887903ull, 437806551371283ull}},
+ {{13092556287404530969ull, 350245241097026ull}},
+ {{13569392430363428904ull, 560392385755242ull}},
+ {{3476816314806922477ull, 448313908604194ull}},
+ {{6470801866587448304ull, 358651126883355ull}},
+ {{5176641493269958643ull, 286920901506684ull}},
+ {{15661324018715754476ull, 459073442410694ull}},
+ {{16218408029714513904ull, 367258753928555ull}},
+ {{12974726423771611123ull, 293807003142844ull}},
+ {{9691515833808846828ull, 470091205028551ull}},
+ {{4063863852305167139ull, 376072964022841ull}},
+ {{18008486340811775004ull, 300858371218272ull}},
+ {{14056182886331198714ull, 481373393949236ull}},
+ {{7555597494323048648ull, 385098715159389ull}},
+ {{9733826810200349241ull, 308078972127511ull}},
+ {{8195425266836738140ull, 492926355404018ull}},
+ {{13935037842953211158ull, 394341084323214ull}},
+ {{14837379089104479250ull, 315472867458571ull}},
+ {{16361108913083346153ull, 504756587933714ull}},
+ {{16778235945208587246ull, 403805270346971ull}},
+ {{9733239941424959473ull, 323044216277577ull}},
+ {{815788647312293865ull, 516870746044124ull}},
+ {{4341979732591745415ull, 413496596835299ull}},
+ {{7162932600815306655ull, 330797277468239ull}},
+ {{392645717078759679ull, 529275643949183ull}},
+ {{7692814203146828389ull, 423420515159346ull}},
+ {{2464902547775552388ull, 338736412127477ull}},
+ {{7633192891182794144ull, 541978259403963ull}},
+ {{13485251942430055962ull, 433582607523170ull}},
+ {{10788201553944044769ull, 346866086018536ull}},
+ {{9882424856826650985ull, 554985737629658ull}},
+ {{15284637514945141434ull, 443988590103726ull}},
+ {{8538361197214202824ull, 355190872082981ull}},
+ {{3141340143029451936ull, 284152697666385ull}},
+ {{5026144228847123098ull, 454644316266216ull}},
+ {{331566568335788155ull, 363715453012973ull}},
+ {{7643950884152451170ull, 290972362410378ull}},
+ {{8540972599902011550ull, 465555779856605ull}},
+ {{6832778079921609240ull, 372444623885284ull}},
+ {{9155571278679197715ull, 297955699108227ull}},
+ {{18338262860628626667ull, 476729118573163ull}},
+ {{3602563844277170364ull, 381383294858531ull}},
+ {{17639446334389377584ull, 305106635886824ull}},
+ {{17155067690797273165ull, 488170617418919ull}},
+ {{17413402967379728855ull, 390536493935135ull}},
+ {{13930722373903783084ull, 312429195148108ull}},
+ {{153062909794590995ull, 499886712236974ull}},
+ {{3811799142577583119ull, 399909369789579ull}},
+ {{6738788128803976819ull, 319927495831663ull}},
+ {{7092712191344452587ull, 511883993330661ull}},
+ {{1984820938333651746ull, 409507194664529ull}},
+ {{5277205565408831720ull, 327605755731623ull}},
+ {{4754180089912220429ull, 524169209170597ull}},
+ {{14871390516155507313ull, 419335367336477ull}},
+ {{4518414783440585204ull, 335468293869182ull}},
+ {{10918812468246846650ull, 536749270190691ull}},
+ {{5045701159855566996ull, 429399416152553ull}},
+ {{11415258557368274243ull, 343519532922042ull}},
+ {{3507018432821597497ull, 549631252675268ull}},
+ {{10184312375741098644ull, 439705002140214ull}},
+ {{11836798715334789238ull, 351764001712171ull}},
+ {{11560180315051842135ull, 562822402739474ull}},
+ {{12937493066783384031ull, 450257922191579ull}},
+ {{14039343268168617548ull, 360206337753263ull}},
+ {{163428170309163069ull, 288165070202611ull}},
+ {{11329531516720391880ull, 461064112324177ull}},
+ {{1684927583892492857ull, 368851289859342ull}},
+ {{12415988511339725255ull, 295081031887473ull}},
+ {{16176232803401650086ull, 472129651019957ull}},
+ {{5562288613237499422ull, 377703720815966ull}},
+ {{760482075848089214ull, 302162976652773ull}},
+ {{15974166580324584036ull, 483460762644436ull}},
+ {{9089984449517756906ull, 386768610115549ull}},
+ {{10961336374356115848ull, 309414888092439ull}},
+ {{6470091754744054387ull, 495063820947903ull}},
+ {{12554771033279064156ull, 396051056758322ull}},
+ {{2665119197139430678ull, 316840845406658ull}},
+ {{574841900681178762ull, 506945352650653ull}},
+ {{7838571150028763656ull, 405556282120522ull}},
+ {{17338903364248741894ull, 324445025696417ull}},
+ {{12984850123830345738ull, 519112041114268ull}},
+ {{17766577728548097237ull, 415289632891414ull}},
+ {{17902610997580388113ull, 332231706313131ull}},
+ {{2818735892935248718ull, 531570730101011ull}},
+ {{17012383973315840267ull, 425256584080808ull}},
+ {{2541860734426941244ull, 340205267264647ull}},
+ {{7756325989825016314ull, 544328427623435ull}},
+ {{6205060791860013051ull, 435462742098748ull}},
+ {{12342746262971831087ull, 348370193678998ull}},
+ {{16059045206013019417ull, 557392309886397ull}},
+ {{5468538535326594887ull, 445913847909118ull}},
+ {{11753528457745096556ull, 356731078327294ull}},
+ {{13092171580937987568ull, 285384862661835ull}},
+ {{2500730455791228493ull, 456615780258937ull}},
+ {{13068630808858713764ull, 365292624207149ull}},
+ {{14144253461828881334ull, 292234099365719ull}},
+ {{11562759094700479165ull, 467574558985151ull}},
+ {{5560858461018473009ull, 374059647188121ull}},
+ {{759337954072868084ull, 299247717750497ull}},
+ {{4904289541258499257ull, 478796348400795ull}},
+ {{3923431633006799406ull, 383037078720636ull}},
+ {{17896140565373080817ull, 306429662976508ull}},
+ {{6497732016145467369ull, 490287460762414ull}},
+ {{8887534427658284218ull, 392229968609931ull}},
+ {{3420678727384717051ull, 313783974887945ull}},
+ {{5473085963815547282ull, 502054359820712ull}},
+ {{15446515215278168795ull, 401643487856569ull}},
+ {{16046560986964445359ull, 321314790285255ull}},
+ {{7227753505433560959ull, 514103664456409ull}},
+ {{9471551619088759090ull, 411282931565127ull}},
+ {{198543665787186626ull, 329026345252102ull}},
+ {{4007018680001408925ull, 526442152403363ull}},
+ {{10584312573484947786ull, 421153721922690ull}},
+ {{8467450058787958229ull, 336922977538152ull}},
+ {{17237268908802643490ull, 539076764061043ull}},
+ {{2721768682816383822ull, 431261411248835ull}},
+ {{2177414946253107058ull, 345009128999068ull}},
+ {{18241259172972612585ull, 552014606398508ull}},
+ {{3524960894152359098ull, 441611685118807ull}},
+ {{13888015159547618248ull, 353289348095045ull}},
+ {{11110412127638094599ull, 282631478476036ull}},
+ {{10397961774737130712ull, 452210365561658ull}},
+ {{15697067049273525216ull, 361768292449326ull}},
+ {{8868304824676909849ull, 289414633959461ull}},
+ {{6810590089999235112ull, 463063414335138ull}},
+ {{12827169701483208736ull, 370450731468110ull}},
+ {{10261735761186566989ull, 296360585174488ull}},
+ {{12729428403156596859ull, 474176936279181ull}},
+ {{6494193907783367164ull, 379341549023345ull}},
+ {{5195355126226693731ull, 303473239218676ull}},
+ {{933870572478889324ull, 485557182749882ull}},
+ {{11815142902208842429ull, 388445746199905ull}},
+ {{9452114321767073943ull, 310756596959924ull}},
+ {{4055336470601587339ull, 497210555135879ull}},
+ {{6933617991223180194ull, 397768444108703ull}},
+ {{12925592022462364802ull, 318214755286962ull}},
+ {{5923551976972142390ull, 509143608459140ull}},
+ {{4738841581577713912ull, 407314886767312ull}},
+ {{14859119709487902099ull, 325851909413849ull}},
+ {{12706545090954912390ull, 521363055062159ull}},
+ {{13854584887505840235ull, 417090444049727ull}},
+ {{3704970280520851541ull, 333672355239782ull}},
+ {{9617301263575272790ull, 533875768383651ull}},
+ {{4004492196118307908ull, 427100614706921ull}},
+ {{17960989015862287619ull, 341680491765536ull}},
+ {{2912140722186287929ull, 546688786824859ull}},
+ {{6019061392490940666ull, 437351029459887ull}},
+ {{15883295558218483503ull, 349880823567909ull}},
+ {{14345226448923842635ull, 559809317708655ull}},
+ {{11476181159139074108ull, 447847454166924ull}},
+ {{12870293742053169609ull, 358277963333539ull}},
+ {{13985583808384446011ull, 286622370666831ull}},
+ {{14998236463931292971ull, 458595793066930ull}},
+ {{11998589171145034376ull, 366876634453544ull}},
+ {{13288220151657937824ull, 293501307562835ull}},
+ {{2814408168943148903ull, 469602092100537ull}},
+ {{13319572979380250092ull, 375681673680429ull}},
+ {{14345007198246110397ull, 300545338944343ull}},
+ {{815918628742314696ull, 480872542310950ull}},
+ {{652734902993851757ull, 384698033848760ull}},
+ {{522187922395081405ull, 307758427079008ull}},
+ {{15592895934799771541ull, 492413483326412ull}},
+ {{5095619118355996587ull, 393930786661130ull}},
+ {{4076495294684797269ull, 315144629328904ull}},
+ {{13901090100979496277ull, 504231406926246ull}},
+ {{7431523266041686699ull, 403385125540997ull}},
+ {{17013265057059080328ull, 322708100432797ull}},
+ {{12463828832326887233ull, 516332960692476ull}},
+ {{6281714251119599463ull, 413066368553981ull}},
+ {{1336022586153769247ull, 330453094843185ull}},
+ {{2137636137846030796ull, 528724951749096ull}},
+ {{16467504169244465929ull, 422979961399276ull}},
+ {{9484654520653662420ull, 338383969119421ull}},
+ {{7796749603562039226ull, 541414350591074ull}},
+ {{9926748497591541704ull, 433131480472859ull}},
+ {{11630747612815143686ull, 346505184378287ull}},
+ {{3851800921536588606ull, 554408295005260ull}},
+ {{3081440737229270884ull, 443526636004208ull}},
+ {{9843850219267237354ull, 354821308803366ull}},
+ {{4185731360671879560ull, 283857047042693ull}},
+ {{3007821362333096973ull, 454171275268309ull}},
+ {{6095605904608387901ull, 363337020214647ull}},
+ {{15944531167912441290ull, 290669616171717ull}},
+ {{10753854609692264772ull, 465071385874748ull}},
+ {{15981781317237632464ull, 372057108699798ull}},
+ {{1717378609564375002ull, 297645686959839ull}},
+ {{10126503404786820649ull, 476233099135742ull}},
+ {{722505094345635873ull, 380986479308594ull}},
+ {{4267352890218419021ull, 304789183446875ull}},
+ {{6827764624349470435ull, 487662693515000ull}},
+ {{5462211699479576348ull, 390130154812000ull}},
+ {{4369769359583661078ull, 312104123849600ull}},
+ {{6991630975333857725ull, 499366598159360ull}},
+ {{5593304780267086180ull, 399493278527488ull}},
+ {{11853341453697489590ull, 319594622821990ull}},
+ {{518602252206431729ull, 511351396515185ull}},
+ {{414881801765145383ull, 409081117212148ull}},
+ {{7710603070895936953ull, 327264893769718ull}},
+ {{8647616098691588801ull, 523623830031549ull}},
+ {{10607441693695181364ull, 418899064025239ull}},
+ {{12175302169698055414ull, 335119251220191ull}},
+ {{12101785842033068017ull, 536190801952306ull}},
+ {{5992079858884544090ull, 428952641561845ull}},
+ {{4793663887107635272ull, 343162113249476ull}},
+ {{291164589888395789ull, 549059381199162ull}},
+ {{11300978116136447601ull, 439247504959329ull}},
+ {{12730131307651068404ull, 351398003967463ull}},
+ {{16678861277499799123ull, 562236806347941ull}},
+ {{9653740207257928975ull, 449789445078353ull}},
+ {{15101689795290163826ull, 359831556062682ull}},
+ {{4702654206748310415ull, 287865244850146ull}},
+ {{145549101313476017ull, 460584391760234ull}},
+ {{3805788095792691137ull, 368467513408187ull}},
+ {{14112676920859883879ull, 294774010726549ull}},
+ {{11512236629150083237ull, 471638417162479ull}},
+ {{12899138118061976913ull, 377310733729983ull}},
+ {{17698008123933402177ull, 301848586983986ull}},
+ {{2491371295100071220ull, 482957739174379ull}},
+ {{5682445850821967299ull, 386366191339503ull}},
+ {{11924654310141394486ull, 309092953071602ull}},
+ {{4322051637258589885ull, 494548724914564ull}},
+ {{7146990124548782231ull, 395638979931651ull}},
+ {{2028243284897115462ull, 316511183945321ull}},
+ {{14313235700061115708ull, 506417894312513ull}},
+ {{382542115823161597ull, 405134315450011ull}},
+ {{15063428951626170570ull, 324107452360008ull}},
+ {{1965393434150410974ull, 518571923776014ull}},
+ {{5261663562062239102ull, 414857539020811ull}},
+ {{519982034907880958ull, 331886031216649ull}},
+ {{8210668885336430180ull, 531017649946638ull}},
+ {{13947232737752964790ull, 424814119957310ull}},
+ {{11157786190202371832ull, 339851295965848ull}},
+ {{14163109089581884608ull, 543762073545357ull}},
+ {{3951789642181687040ull, 435009658836286ull}},
+ {{17918826972712990925ull, 348007727069028ull}},
+ {{6534030267889323541ull, 556812363310446ull}},
+ {{1537875399569548509ull, 445449890648357ull}},
+ {{12298346763881369777ull, 356359912518685ull}},
+ {{9838677411105095822ull, 285087930014948ull}},
+ {{12052535043026242992ull, 456140688023917ull}},
+ {{2263330404937173747ull, 364912550419134ull}},
+ {{5500013138691649320ull, 291930040335307ull}},
+ {{12489369836648549236ull, 467088064536491ull}},
+ {{6302147054576929066ull, 373670451629193ull}},
+ {{12420415273145363899ull, 298936361303354ull}},
+ {{8804617992806851269ull, 478298178085367ull}},
+ {{18111740838471211985ull, 382638542468293ull}},
+ {{3421346226551238618ull, 306110833974635ull}},
+ {{5474153962481981789ull, 489777334359416ull}},
+ {{689974355243675108ull, 391821867487533ull}},
+ {{7930677113678760733ull, 313457493990026ull}},
+ {{5310385752402196526ull, 501531990384042ull}},
+ {{15316355046147488190ull, 401225592307233ull}},
+ {{1185037592692259583ull, 320980473845787ull}},
+ {{5585408963049525656ull, 513568758153259ull}},
+ {{8157675985181530848ull, 410855006522607ull}},
+ {{17594187232370955648ull, 328684005218085ull}},
+ {{9703955498083977421ull, 525894408348937ull}},
+ {{384466768983361290ull, 420715526679150ull}},
+ {{307573415186689032ull, 336572421343320ull}},
+ {{492117464298702451ull, 538515874149312ull}},
+ {{11461740415664692931ull, 430812699319449ull}},
+ {{12858741147273664668ull, 344650159455559ull}},
+ {{9505939391412132499ull, 551440255128895ull}},
+ {{7604751513129705999ull, 441152204103116ull}},
+ {{2394452395761854476ull, 352921763282493ull}},
+ {{9294259546093304227ull, 282337410625994ull}},
+ {{3802768829523555794ull, 451739857001591ull}},
+ {{17799610322586485928ull, 361391885601272ull}},
+ {{6860990628585368096ull, 289113508481018ull}},
+ {{7288236190994678630ull, 462581613569629ull}},
+ {{9519937767537653227ull, 370065290855703ull}},
+ {{14994647843513943228ull, 296052232684562ull}},
+ {{9234041290654667873ull, 473683572295300ull}},
+ {{7387233032523734298ull, 378946857836240ull}},
+ {{5909786426018987438ull, 303157486268992ull}},
+ {{13145007096372290225ull, 485051978030387ull}},
+ {{3137308047614011533ull, 388041582424310ull}},
+ {{2509846438091209226ull, 310433265939448ull}},
+ {{326405486204024439ull, 496693225503117ull}},
+ {{11329170833188950521ull, 397354580402493ull}},
+ {{16442034296034981063ull, 317883664321994ull}},
+ {{15239208429430238732ull, 508613862915191ull}},
+ {{8502017928802280662ull, 406891090332153ull}},
+ {{14180311972525645176ull, 325512872265722ull}},
+ {{7931103897073390989ull, 520820595625156ull}},
+ {{2655534302916802468ull, 416656476500125ull}},
+ {{2124427442333441974ull, 333325181200100ull}},
+ {{3399083907733507159ull, 533320289920160ull}},
+ {{2719267126186805727ull, 426656231936128ull}},
+ {{9554111330433265228ull, 341324985548902ull}},
+ {{529182869725583072ull, 546119976878244ull}},
+ {{4112695110522376781ull, 436895981502595ull}},
+ {{3290156088417901425ull, 349516785202076ull}},
+ {{16332296185694373249ull, 559226856323321ull}},
+ {{9376488133813588276ull, 447381485058657ull}},
+ {{122492877567049975ull, 357905188046926ull}},
+ {{14855389561021281272ull, 286324150437540ull}},
+ {{5321879223924498420ull, 458118640700065ull}},
+ {{4257503379139598736ull, 366494912560052ull}},
+ {{14474049147537409958ull, 293195930048041ull}},
+ {{15779781006576035287ull, 469113488076866ull}},
+ {{8934475990518917906ull, 375290790461493ull}},
+ {{14526278421898954971ull, 300232632369194ull}},
+ {{12173999030812596985ull, 480372211790711ull}},
+ {{6049850409908167265ull, 384297769432569ull}},
+ {{8529229142668444135ull, 307438215546055ull}},
+ {{13646766628269510616ull, 491901144873688ull}},
+ {{18296110932099429139ull, 393520915898950ull}},
+ {{14636888745679543311ull, 314816732719160ull}},
+ {{4972277919377717682ull, 503706772350657ull}},
+ {{15045868779727905115ull, 402965417880525ull}},
+ {{12036695023782324092ull, 322372334304420ull}},
+ {{811967964342166932ull, 515795734887073ull}},
+ {{8028272000957554192ull, 412636587909658ull}},
+ {{13801315230249864000ull, 330109270327726ull}},
+ {{14703406738915961753ull, 528174832524362ull}},
+ {{4384027761648948756ull, 422539866019490ull}},
+ {{3507222209319159005ull, 338031892815592ull}},
+ {{9300904349652564731ull, 540851028504947ull}},
+ {{62025850238231138ull, 432680822803958ull}},
+ {{7428318309674405557ull, 346144658243166ull}},
+ {{4506611665995228245ull, 553831453189066ull}},
+ {{18362684591763823889ull, 443065162551252ull}},
+ {{7311450043927238465ull, 354452130041002ull}},
+ {{16917206479367521741ull, 283561704032801ull}},
+ {{1242088663794662524ull, 453698726452483ull}},
+ {{8372368560519550665ull, 362958981161986ull}},
+ {{3008546033673730209ull, 290367184929589ull}},
+ {{12192371283361788981ull, 464587495887342ull}},
+ {{2375199397205610538ull, 371669996709874ull}},
+ {{5589508332506398754ull, 297335997367899ull}},
+ {{16321910961494058653ull, 475737595788638ull}},
+ {{1989482324969515952ull, 380590076630911ull}},
+ {{16348981118943254055ull, 304472061304728ull}},
+ {{4022276901857744549ull, 487155298087566ull}},
+ {{17975216780453836932ull, 389724238470052ull}},
+ {{7001475794879248899ull, 311779390776042ull}},
+ {{14891710086548708561ull, 498847025241667ull}},
+ {{4534670439755146203ull, 399077620193334ull}},
+ {{7317085166546027285ull, 319262096154667ull}},
+ {{15396685081215553980ull, 510819353847467ull}},
+ {{4938650435488622537ull, 408655483077974ull}},
+ {{7640269163132808353ull, 326924386462379ull}},
+ {{1156384216786762396ull, 523079018339807ull}},
+ {{11993153817655140886ull, 418463214671845ull}},
+ {{9594523054124112709ull, 334770571737476ull}},
+ {{7972539257114759688ull, 535632914779962ull}},
+ {{17446077849917538720ull, 428506331823969ull}},
+ {{17646211094675941299ull, 342805065459175ull}},
+ {{9787193677771954462ull, 548488104734681ull}},
+ {{4140406127475653247ull, 438790483787745ull}},
+ {{3312324901980522597ull, 351032387030196ull}},
+ {{16367766287394567125ull, 561651819248313ull}},
+ {{2026166585689922731ull, 449321455398651ull}},
+ {{16378328527519579477ull, 359457164318920ull}},
+ {{13102662822015663582ull, 287565731455136ull}},
+ {{13585562885741241085ull, 460105170328218ull}},
+ {{18247147938076813514ull, 368084136262574ull}},
+ {{18287067165203361134ull, 294467309010059ull}},
+ {{18191261020099646846ull, 471147694416095ull}},
+ {{14553008816079717476ull, 376918155532876ull}},
+ {{7953058238121863658ull, 301534524426301ull}},
+ {{5346195551511161206ull, 482455239082082ull}},
+ {{15345002885434659935ull, 385964191265665ull}},
+ {{12276002308347727948ull, 308771353012532ull}},
+ {{4884208434388723424ull, 494034164820052ull}},
+ {{14975413191736709708ull, 395227331856041ull}},
+ {{8290981738647457443ull, 316181865484833ull}},
+ {{9576221967094021587ull, 505890984775733ull}},
+ {{15039675203159037916ull, 404712787820586ull}},
+ {{8342391347785320009ull, 323770230256469ull}},
+ {{2279779712230781045ull, 518032368410351ull}},
+ {{16581219028752266129ull, 414425894728280ull}},
+ {{13264975223001812903ull, 331540715782624ull}},
+ {{10155913912577169676ull, 530465145252199ull}},
+ {{11814079944803646064ull, 424372116201759ull}},
+ {{13140612770584827174ull, 339497692961407ull}},
+ {{6267585173968082186ull, 543196308738252ull}},
+ {{16082114583400196718ull, 434557046990601ull}},
+ {{9176342851978247051ull, 347645637592481ull}},
+ {{7303450933681374636ull, 556233020147970ull}},
+ {{5842760746945099709ull, 444986416118376ull}},
+ {{984859782814169444ull, 355989132894701ull}},
+ {{15545283085218976848ull, 284791306315760ull}},
+ {{6425708862640811340ull, 455666090105217ull}},
+ {{16208613534338380042ull, 364532872084173ull}},
+ {{1898844383244973064ull, 291626297667339ull}},
+ {{10416848642675777549ull, 466602076267742ull}},
+ {{954781284656801392ull, 373281661014194ull}},
+ {{4453173842467351437ull, 298625328811355ull}},
+ {{7125078147947762300ull, 477800526098168ull}},
+ {{13078760147842030486ull, 382240420878534ull}},
+ {{14152356933015534712ull, 305792336702827ull}},
+ {{7886375833857214247ull, 489267738724524ull}},
+ {{9998449481827681720ull, 391414190979619ull}},
+ {{11688108400204055699ull, 313131352783695ull}},
+ {{254229366616937503ull, 501010164453913ull}},
+ {{7582081122777370649ull, 400808131563130ull}},
+ {{6065664898221896519ull, 320646505250504ull}},
+ {{17083761466638855077ull, 513034408400806ull}},
+ {{9977660358569173738ull, 410427526720645ull}},
+ {{7982128286855338991ull, 328342021376516ull}},
+ {{5392707629484721739ull, 525347234202426ull}},
+ {{624817288845867068ull, 420277787361941ull}},
+ {{15257249090044334947ull, 336222229889552ull}},
+ {{9654203285103294623ull, 537955567823284ull}},
+ {{11412711442824546021ull, 430364454258627ull}},
+ {{1751471524775816170ull, 344291563406902ull}},
+ {{6491703254383216196ull, 550866501451043ull}},
+ {{12572060232990393603ull, 440693201160834ull}},
+ {{13746997001134225206ull, 352554560928667ull}},
+ {{3618899971423559518ull, 282043648742934ull}},
+ {{13168937583761515876ull, 451269837988694ull}},
+ {{14224498881751123024ull, 361015870390955ull}},
+ {{11379599105400898419ull, 288812696312764ull}},
+ {{7139312124415706501ull, 462100314100423ull}},
+ {{13090147329016385847ull, 369680251280338ull}},
+ {{17850815492696929324ull, 295744201024270ull}},
+ {{10114560714605535302ull, 473190721638833ull}},
+ {{15470346201168248888ull, 378552577311066ull}},
+ {{8686928146192688787ull, 302842061848853ull}},
+ {{10209736219166391737ull, 484547298958165ull}},
+ {{8167788975333113389ull, 387637839166532ull}},
+ {{17602277624492221681ull, 310110271333225ull}},
+ {{9716900125478003074ull, 496176434133161ull}},
+ {{4084171285640492136ull, 396941147306529ull}},
+ {{6956685843254304032ull, 317552917845223ull}},
+ {{7441348534464976128ull, 508084668552357ull}},
+ {{17021125271797711872ull, 406467734841885ull}},
+ {{13616900217438169497ull, 325174187873508ull}},
+ {{18097691533159160873ull, 520278700597613ull}},
+ {{3410106782301597729ull, 416222960478091ull}},
+ {{17485480684808919476ull, 332978368382472ull}},
+ {{13219373836726629868ull, 532765389411956ull}},
+ {{6886150254639393571ull, 426212311529565ull}},
+ {{5508920203711514857ull, 340969849223652ull}},
+ {{12503621140680334095ull, 545551758757843ull}},
+ {{17381594542028087922ull, 436441407006274ull}},
+ {{17594624448364380661ull, 349153125605019ull}},
+ {{17083352673157278088ull, 558645000968031ull}},
+ {{9977333323783912147ull, 446916000774425ull}},
+ {{7981866659027129718ull, 357532800619540ull}},
+ {{6385493327221703774ull, 286026240495632ull}},
+ {{13906138138296636362ull, 457641984793011ull}},
+ {{7435561695895398766ull, 366113587834409ull}},
+ {{9637798171458229336ull, 292890870267527ull}},
+ {{663081815365525645ull, 468625392428044ull}},
+ {{4219814267034330839ull, 374900313942435ull}},
+ {{3375851413627464671ull, 299920251153948ull}},
+ {{1712013447062033151ull, 479872401846317ull}},
+ {{12437657201875357490ull, 383897921477053ull}},
+ {{17328823390984106639ull, 307118337181642ull}},
+ {{12968722166606929329ull, 491389339490628ull}},
+ {{17753675362769364110ull, 393111471592502ull}},
+ {{6824242660731670641ull, 314489177274002ull}},
+ {{14608137071912583349ull, 503182683638403ull}},
+ {{618463213304335710ull, 402546146910723ull}},
+ {{7873468200127289214ull, 322036917528578ull}},
+ {{8908200305461752420ull, 515259068045725ull}},
+ {{7126560244369401936ull, 412207254436580ull}},
+ {{5701248195495521549ull, 329765803549264ull}},
+ {{16500694742276655124ull, 527625285678822ull}},
+ {{5821858164337503453ull, 422100228543058ull}},
+ {{12036184160953823409ull, 337680182834446ull}},
+ {{11879197028042296808ull, 540288292535114ull}},
+ {{13192706437175747769ull, 432230634028091ull}},
+ {{6864816334998687892ull, 345784507222473ull}},
+ {{7294357321255990305ull, 553255211555957ull}},
+ {{16903532301230523213ull, 442604169244765ull}},
+ {{13522825840984418570ull, 354083335395812ull}},
+ {{3439563043303714210ull, 283266668316650ull}},
+ {{5503300869285942736ull, 453226669306640ull}},
+ {{4402640695428754189ull, 362581335445312ull}},
+ {{14590159000568734320ull, 290065068356249ull}},
+ {{12276207956684243943ull, 464104109369999ull}},
+ {{13510315180089305478ull, 371283287495999ull}},
+ {{14497600958813354705ull, 297026629996799ull}},
+ {{12128115089875636559ull, 475242607994879ull}},
+ {{13391840886642419571ull, 380194086395903ull}},
+ {{18092170338797756303ull, 304155269116722ull}},
+ {{14190077283108768792ull, 486648430586756ull}},
+ {{7662713011745104710ull, 389318744469405ull}},
+ {{6130170409396083768ull, 311454995575524ull}},
+ {{17186970284517554676ull, 498327992920838ull}},
+ {{2681529783388312771ull, 398662394336671ull}},
+ {{16902619085678291509ull, 318929915469336ull}},
+ {{1218748833891894153ull, 510287864750939ull}},
+ {{4664347881855425645ull, 408230291800751ull}},
+ {{42129490742430193ull, 326584233440601ull}},
+ {{11135453629413619279ull, 522534773504961ull}},
+ {{5219014088788985100ull, 418027818803969ull}},
+ {{7864560085773098403ull, 334422255043175ull}},
+ {{12583296137236957445ull, 535075608069080ull}},
+ {{10066636909789565956ull, 428060486455264ull}},
+ {{11742658342573563088ull, 342448389164211ull}},
+ {{11409555718633880294ull, 547917422662738ull}},
+ {{16506342204390924882ull, 438333938130190ull}},
+ {{13205073763512739905ull, 350667150504152ull}},
+ {{6370722762652742556ull, 561067440806644ull}},
+ {{8785927024864104368ull, 448853952645315ull}},
+ {{7028741619891283494ull, 359083162116252ull}},
+ {{16691039740138757765ull, 287266529693001ull}},
+ {{880221881028640162ull, 459626447508803ull}},
+ {{8082875134306732776ull, 367701158007042ull}},
+ {{17534346551671117190ull, 294160926405633ull}},
+ {{5918861594222325565ull, 470657482249014ull}},
+ {{8424438090119770775ull, 376525985799211ull}},
+ {{3050201657353906297ull, 301220788639369ull}},
+ {{12259020281250070722ull, 481953261822990ull}},
+ {{9807216225000056577ull, 385562609458392ull}},
+ {{467075350516224615ull, 308450087566714ull}},
+ {{8126018190309780031ull, 493520140106742ull}},
+ {{17568860996473554994ull, 394816112085393ull}},
+ {{2987042352953113026ull, 315852889668315ull}},
+ {{4779267764724980842ull, 505364623469304ull}},
+ {{7512763026521894996ull, 404291698775443ull}},
+ {{13388908050701336643ull, 323433359020354ull}},
+ {{10354206436896407660ull, 517493374432567ull}},
+ {{904667520033305482ull, 413994699546054ull}},
+ {{4413082830768554708ull, 331195759636843ull}},
+ {{3371583714487777211ull, 529913215418949ull}},
+ {{6386615786332132092ull, 423930572335159ull}},
+ {{8798641443807615996ull, 339144457868127ull}},
+ {{17767175124834095918ull, 542631132589003ull}},
+ {{3145693655641545764ull, 434104906071203ull}},
+ {{9895252553997057258ull, 347283924856962ull}},
+ {{1075008827427650320ull, 555654279771140ull}},
+ {{860007061942120256ull, 444523423816912ull}},
+ {{11756052093779427174ull, 355618739053529ull}},
+ {{13094190489765452062ull, 284494991242823ull}},
+ {{17261355968882812977ull, 455191985988517ull}},
+ {{6430387145622429735ull, 364153588790814ull}},
+ {{8833658531239854111ull, 291322871032651ull}},
+ {{6755156020499945932ull, 466116593652242ull}},
+ {{16472171260625687715ull, 372893274921793ull}},
+ {{2109690564274819202ull, 298314619937435ull}},
+ {{3375504902839710724ull, 477303391899896ull}},
+ {{17457799181239409872ull, 381842713519916ull}},
+ {{10276890530249617574ull, 305474170815933ull}},
+ {{12753676033657477796ull, 488758673305493ull}},
+ {{17581638456409802883ull, 391006938644394ull}},
+ {{17754659579869752629ull, 312805550915515ull}},
+ {{9960711254082052591ull, 500488881464825ull}},
+ {{7968569003265642073ull, 400391105171860ull}},
+ {{6374855202612513658ull, 320312884137488ull}},
+ {{6510419509438111530ull, 512500614619981ull}},
+ {{1518986792808578901ull, 410000491695985ull}},
+ {{1215189434246863121ull, 328000393356788ull}},
+ {{16701698353762622286ull, 524800629370860ull}},
+ {{13361358683010097829ull, 419840503496688ull}},
+ {{18067784575891898909ull, 335872402797350ull}},
+ {{10461711247717486639ull, 537395844475761ull}},
+ {{4680020183432078988ull, 429916675580609ull}},
+ {{7433364961487573514ull, 343933340464487ull}},
+ {{15582732753122027945ull, 550293344743179ull}},
+ {{16155535017239532679ull, 440234675794543ull}},
+ {{1856381569565895174ull, 352187740635635ull}},
+ {{1485105255652716139ull, 281750192508508ull}},
+ {{17133563668011987115ull, 450800308013612ull}},
+ {{6328153304925769046ull, 360640246410890ull}},
+ {{5062522643940615237ull, 288512197128712ull}},
+ {{11789385045046894702ull, 461619515405939ull}},
+ {{13120856850779426085ull, 369295612324751ull}},
+ {{6807336665881630544ull, 295436489859801ull}},
+ {{3513041035926788225ull, 472698383775682ull}},
+ {{13878479272967161550ull, 378158707020545ull}},
+ {{11102783418373729240ull, 302526965616436ull}},
+ {{10385755839914146137ull, 484043144986298ull}},
+ {{15687302301415137556ull, 387234515989038ull}},
+ {{1481795396906379075ull, 309787612791231ull}},
+ {{13438919079275937490ull, 495660180465969ull}},
+ {{14440484078162660315ull, 396528144372775ull}},
+ {{11552387262530128252ull, 317222515498220ull}},
+ {{37075546338653588ull, 507556024797153ull}},
+ {{7408358066554743516ull, 406044819837722ull}},
+ {{16994732897469525783ull, 324835855870177ull}},
+ {{12434177376983599960ull, 519737369392284ull}},
+ {{13636690716328790291ull, 415789895513827ull}},
+ {{3530654943579211586ull, 332631916411062ull}},
+ {{9338396724468648861ull, 532211066257699ull}},
+ {{11160066194316829412ull, 425768853006159ull}},
+ {{12617401770195373853ull, 340615082404927ull}},
+ {{5430447573344956872ull, 544984131847884ull}},
+ {{8033706873417875821ull, 435987305478307ull}},
+ {{17495011942960031626ull, 348789844382645ull}},
+ {{9545275035026498986ull, 558063751012233ull}},
+ {{15014917657505019835ull, 446451000809786ull}},
+ {{8322585311262105545ull, 357160800647829ull}},
+ {{10347417063751594759ull, 285728640518263ull}},
+ {{12866518487260641291ull, 457165824829221ull}},
+ {{6603865975066602710ull, 365732659863377ull}},
+ {{16351139224279013137ull, 292586127890701ull}},
+ {{336381055653048758ull, 468137804625123ull}},
+ {{7647802474006259652ull, 374510243700098ull}},
+ {{13496939608688828368ull, 299608194960078ull}},
+ {{17905754559160215066ull, 479373111936125ull}},
+ {{14324603647328172053ull, 383498489548900ull}},
+ {{11459682917862537642ull, 306798791639120ull}},
+ {{18335492668580060228ull, 490878066622592ull}},
+ {{7289696505380227536ull, 392702453298074ull}},
+ {{9521106019046092352ull, 314161962638459ull}},
+ {{4165723186248016794ull, 502659140221535ull}},
+ {{3332578548998413435ull, 402127312177228ull}},
+ {{10044760468682551394ull, 321701849741782ull}},
+ {{1314221490924440938ull, 514722959586852ull}},
+ {{12119423636965283720ull, 411778367669481ull}},
+ {{6006190094830316653ull, 329422694135585ull}},
+ {{9609904151728506645ull, 527076310616936ull}},
+ {{3998574506640894992ull, 421661048493549ull}},
+ {{6888208420054626317ull, 337328838794839ull}},
+ {{18399831101571222754ull, 539726142071742ull}},
+ {{7341167251773157557ull, 431780913657394ull}},
+ {{9562282616160436368ull, 345424730925915ull}},
+ {{15299652185856698190ull, 552679569481464ull}},
+ {{15929070563427268875ull, 442143655585171ull}},
+ {{9053907635999904777ull, 353714924468137ull}},
+ {{18311172553025654791ull, 282971939574509ull}},
+ {{18229829640615316696ull, 452755103319215ull}},
+ {{14583863712492253357ull, 362204082655372ull}},
+ {{4288393340509982039ull, 289763266124298ull}},
+ {{3172080530074060939ull, 463621225798877ull}},
+ {{13605710868284979721ull, 370896980639101ull}},
+ {{7195219879886073453ull, 296717584511281ull}},
+ {{4133654178333896879ull, 474748135218050ull}},
+ {{3306923342667117503ull, 379798508174440ull}},
+ {{2645538674133694003ull, 303838806539552ull}},
+ {{7922210693355820728ull, 486142090463283ull}},
+ {{13716466184168477228ull, 388913672370626ull}},
+ {{7283824132592871459ull, 311130937896501ull}},
+ {{4275420982664773689ull, 497809500634402ull}},
+ {{14488383230357549921ull, 398247600507521ull}},
+ {{7901357769544129613ull, 318598080406017ull}},
+ {{16331521246012517705ull, 509756928649627ull}},
+ {{5686519367326193517ull, 407805542919702ull}},
+ {{15617261938086685783ull, 326244434335761ull}},
+ {{17608921471454876607ull, 521991094937218ull}},
+ {{3019090732938170316ull, 417592875949775ull}},
+ {{2415272586350536253ull, 334074300759820ull}},
+ {{3864436138160858005ull, 534518881215712ull}},
+ {{14159595354754417373ull, 427615104972569ull}},
+ {{15017025098545444222ull, 342092083978055ull}},
+ {{5580496083963159139ull, 547347334364889ull}},
+ {{8153745681912437634ull, 437877867491911ull}},
+ {{2833647730788039784ull, 350302293993529ull}},
+ {{11912533998744684301ull, 560483670389646ull}},
+ {{5840678384253837118ull, 448386936311717ull}},
+ {{15740589151628800664ull, 358709549049373ull}},
+ {{1524424877077309561ull, 286967639239499ull}},
+ {{9817777432807515945ull, 459148222783198ull}},
+ {{15232919575729833402ull, 367318578226558ull}},
+ {{1118289216358135752ull, 293854862581247ull}},
+ {{5478611560914927527ull, 470167780129995ull}},
+ {{4382889248731942021ull, 376134224103996ull}},
+ {{18263706657953194910ull, 300907379283196ull}},
+ {{3396488949531739593ull, 481451806853115ull}},
+ {{2717191159625391675ull, 385161445482492ull}},
+ {{13241799371926044309ull, 308129156385993ull}},
+ {{17497530180339760572ull, 493006650217589ull}},
+ {{17687372959013718781ull, 394405320174071ull}},
+ {{10460549552469064701ull, 315524256139257ull}},
+ {{1979484024982862229ull, 504838809822812ull}},
+ {{12651633664212020753ull, 403871047858249ull}},
+ {{13810655746111526925ull, 323096838286599ull}},
+ {{11029002749552712111ull, 516954941258559ull}},
+ {{12512551014384080012ull, 413563953006847ull}},
+ {{2631343182023443363ull, 330851162405478ull}},
+ {{520800276495599058ull, 529361859848765ull}},
+ {{416640221196479247ull, 423489487879012ull}},
+ {{11401358621182914367ull, 338791590303209ull}},
+ {{7174127349666932018ull, 542066544485135ull}},
+ {{5739301879733545614ull, 433653235588108ull}},
+ {{11970139133270657137ull, 346922588470486ull}},
+ {{11773524983749230774ull, 555076141552778ull}},
+ {{16797517616483205265ull, 444060913242222ull}},
+ {{6059316463702743566ull, 355248730593778ull}},
+ {{12226150800446015499ull, 284198984475022ull}},
+ {{4804446021745983506ull, 454718375160036ull}},
+ {{154208002654876481ull, 363774700128029ull}},
+ {{3812715216865811508ull, 291019760102423ull}},
+ {{2410995532243388090ull, 465631616163877ull}},
+ {{12996842870020441442ull, 372505292931101ull}},
+ {{6708125481274442830ull, 298004234344881ull}},
+ {{3354303140555287882ull, 476806774951810ull}},
+ {{2683442512444230305ull, 381445419961448ull}},
+ {{9525451639439204891ull, 305156335969158ull}},
+ {{11551373808360817502ull, 488250137550653ull}},
+ {{16619796676172474648ull, 390600110040522ull}},
+ {{5917139711454159072ull, 312480088032418ull}},
+ {{5778074723584744192ull, 499968140851869ull}},
+ {{8311808593609705677ull, 399974512681495ull}},
+ {{6649446874887764541ull, 319979610145196ull}},
+ {{3260417370336602620ull, 511967376232314ull}},
+ {{6297682711011192419ull, 409573900985851ull}},
+ {{1348797354067043612ull, 327659120788681ull}},
+ {{13226122210733000749ull, 524254593261889ull}},
+ {{14270246583328310922ull, 419403674609511ull}},
+ {{7726848451920738415ull, 335522939687609ull}},
+ {{1294911078847450494ull, 536836703500175ull}},
+ {{1035928863077960395ull, 429469362800140ull}},
+ {{828743090462368316ull, 343575490240112ull}},
+ {{5015337759481699629ull, 549720784384179ull}},
+ {{7701619022327270026ull, 439776627507343ull}},
+ {{13539992847345636667ull, 351821302005874ull}},
+ {{10595942111527287699ull, 562914083209399ull}},
+ {{12166102503963740482ull, 450331266567519ull}},
+ {{13422230817912902709ull, 360265013254015ull}},
+ {{10737784654330322167ull, 288212010603212ull}},
+ {{2423060187960874174ull, 461139216965140ull}},
+ {{1938448150368699339ull, 368911373572112ull}},
+ {{12618804964520690441ull, 295129098857689ull}},
+ {{9122041499007373736ull, 472206558172303ull}},
+ {{14676330828689719635ull, 377765246537842ull}},
+ {{4362367033467955062ull, 302212197230274ull}},
+ {{14358484883032548746ull, 483539515568438ull}},
+ {{418741462200308027ull, 386831612454751ull}},
+ {{15092388428727887714ull, 309465289963800ull}},
+ {{5701077412255068727ull, 495144463942081ull}},
+ {{871513115062144658ull, 396115571153665ull}},
+ {{697210492049715726ull, 316892456922932ull}},
+ {{4804885602021455486ull, 507027931076691ull}},
+ {{154559666875254065ull, 405622344861353ull}},
+ {{7502345362984023899ull, 324497875889082ull}},
+ {{15693101395516348561ull, 519196601422531ull}},
+ {{8865132301671168526ull, 415357281138025ull}},
+ {{7092105841336934820ull, 332285824910420ull}},
+ {{11347369346139095713ull, 531657319856672ull}},
+ {{1699197847427455924ull, 425325855885338ull}},
+ {{8738055907425785385ull, 340260684708270ull}},
+ {{13980889451881256617ull, 544417095533232ull}},
+ {{3806013932021184647ull, 435533676426586ull}},
+ {{17802206404584589010ull, 348426941141268ull}},
+ {{6347437358883880478ull, 557483105826030ull}},
+ {{5077949887107104382ull, 445986484660824ull}},
+ {{7751708724427593829ull, 356789187728659ull}},
+ {{9890715794283985386ull, 285431350182927ull}},
+ {{1067750011886735325ull, 456690160292684ull}},
+ {{4543548824251298583ull, 365352128234147ull}},
+ {{14702885503626769836ull, 292281702587317ull}},
+ {{8767221546835190445ull, 467650724139708ull}},
+ {{14392474866951973003ull, 374120579311766ull}},
+ {{7824631078819668079ull, 299296463449413ull}},
+ {{8830060911369558603ull, 478874341519061ull}},
+ {{3374699914353736559ull, 383099473215249ull}},
+ {{6389108746224899570ull, 306479578572199ull}},
+ {{17601271623443659959ull, 490367325715518ull}},
+ {{3012970854529196998ull, 392293860572415ull}},
+ {{2410376683623357598ull, 313835088457932ull}},
+ {{7545951508539282481ull, 502136141532691ull}},
+ {{2347412392089515661ull, 401708913226153ull}},
+ {{9256627543155433175ull, 321367130580922ull}},
+ {{53208810081051788ull, 514187408929476ull}},
+ {{14799962307032482723ull, 411349927143580ull}},
+ {{11839969845625986178ull, 329079941714864ull}},
+ {{7875905308775846916ull, 526527906743783ull}},
+ {{13679421876504498179ull, 421222325395026ull}},
+ {{7254188686461688220ull, 336977860316021ull}},
+ {{4228004268854880506ull, 539164576505634ull}},
+ {{7071752229825814728ull, 431331661204507ull}},
+ {{16725448228086382752ull, 345065328963605ull}},
+ {{8313973091228660787ull, 552104526341769ull}},
+ {{10340527287724838953ull, 441683621073415ull}},
+ {{8272421830179871162ull, 353346896858732ull}},
+ {{17685983908369627899ull, 282677517486985ull}},
+ {{9850830179681853023ull, 452284027979177ull}},
+ {{501966514261661772ull, 361827222383342ull}},
+ {{11469619655635060387ull, 289461777906673ull}},
+ {{14662042634274186296ull, 463138844650677ull}},
+ {{4350936477935528391ull, 370511075720542ull}},
+ {{14548795626574153682ull, 296408860576433ull}},
+ {{1141980114067183952ull, 474254176922294ull}},
+ {{4602932905995657485ull, 379403341537835ull}},
+ {{3682346324796525988ull, 303522673230268ull}},
+ {{2202405304932531258ull, 485636277168429ull}},
+ {{5451273058687935329ull, 388509021734743ull}},
+ {{11739716076434168910ull, 310807217387794ull}},
+ {{7715499278068939286ull, 497291547820471ull}},
+ {{2483050607713241106ull, 397833238256377ull}},
+ {{13054486930396323854ull, 318266590605101ull}},
+ {{13508481459150297520ull, 509226544968162ull}},
+ {{3428087537836417370ull, 407381235974530ull}},
+ {{2742470030269133896ull, 325904988779624ull}},
+ {{11766649677914434880ull, 521447982047398ull}},
+ {{16792017371815368550ull, 417158385637918ull}},
+ {{2365567453226563870ull, 333726708510335ull}},
+ {{3784907925162502193ull, 533962733616536ull}},
+ {{17785321599097643047ull, 427170186893228ull}},
+ {{3160210835052383468ull, 341736149514583ull}},
+ {{1366988521341903226ull, 546777839223333ull}},
+ {{8472288446557343227ull, 437422271378666ull}},
+ {{3088481942503964258ull, 349937817102933ull}},
+ {{1252222293264432490ull, 559900507364693ull}},
+ {{8380475464095366639ull, 447920405891754ull}},
+ {{10393729186018203634ull, 358336324713403ull}},
+ {{15693680978298383553ull, 286669059770722ull}},
+ {{10352494306309772393ull, 458670495633156ull}},
+ {{4592646630305907591ull, 366936396506525ull}},
+ {{3674117304244726073ull, 293549117205220ull}},
+ {{5878587686791561717ull, 469678587528352ull}},
+ {{15770916593658980343ull, 375742870022681ull}},
+ {{8927384460185273951ull, 300594296018145ull}},
+ {{14283815136296438322ull, 480950873629032ull}},
+ {{4048354479553330011ull, 384760698903226ull}},
+ {{17996078842610305302ull, 307808559122580ull}},
+ {{10346982074466936867ull, 492493694596129ull}},
+ {{11966934474315459817ull, 393994955676903ull}},
+ {{16952245208936188500ull, 315195964541522ull}},
+ {{12366197075330260307ull, 504313543266436ull}},
+ {{6203608845522297922ull, 403450834613149ull}},
+ {{8652235891159748661ull, 322760667690519ull}},
+ {{2775530981629866888ull, 516417068304831ull}},
+ {{16977820044271534803ull, 413133654643864ull}},
+ {{17271604850159138166ull, 330506923715091ull}},
+ {{1809126057061248803ull, 528811077944147ull}},
+ {{12515347289874730012ull, 423048862355317ull}},
+ {{2633580202415963363ull, 338439089884254ull}},
+ {{11592425953349362027ull, 541502543814806ull}},
+ {{5584591947937579299ull, 433202035051845ull}},
+ {{4467673558350063439ull, 346561628041476ull}},
+ {{18216324137585832472ull, 554498604866361ull}},
+ {{10883710495326755654ull, 443598883893089ull}},
+ {{12396317211003314846ull, 354879107114471ull}},
+ {{6227704954060741554ull, 283903285691577ull}},
+ {{13653676741239096810ull, 454245257106523ull}},
+ {{18301639022475098094ull, 363396205685218ull}},
+ {{3573264773754347506ull, 290716964548175ull}},
+ {{5717223638006956009ull, 465147143277080ull}},
+ {{4573778910405564807ull, 372117714621664ull}},
+ {{7348371943066362169ull, 297694171697331ull}},
+ {{4378697479422358824ull, 476310674715730ull}},
+ {{3502957983537887059ull, 381048539772584ull}},
+ {{6491715201572219970ull, 304838831818067ull}},
+ {{14076093137257462276ull, 487742130908907ull}},
+ {{3882176880322149174ull, 390193704727126ull}},
+ {{17863136763225360632ull, 312154963781700ull}},
+ {{10134274747451025396ull, 499447942050721ull}},
+ {{4418070983218909993ull, 399558353640577ull}},
+ {{14602503230800858964ull, 319646682912461ull}},
+ {{15985307539797553697ull, 511434692659938ull}},
+ {{1720199587612311988ull, 409147754127951ull}},
+ {{16133554929057490883ull, 327318203302360ull}},
+ {{7366943812782433797ull, 523709125283777ull}},
+ {{16961601494451678007ull, 418967300227021ull}},
+ {{9879932380819432082ull, 335173840181617ull}},
+ {{1050496550343450039ull, 536278144290588ull}},
+ {{8219094869758580678ull, 429022515432470ull}},
+ {{6575275895806864542ull, 343218012345976ull}},
+ {{3141743803807162621ull, 549148819753562ull}},
+ {{13581441487271461066ull, 439319055802849ull}},
+ {{14554502004559079176ull, 351455244642279ull}},
+ {{12219156763068795713ull, 562328391427647ull}},
+ {{2396627780971215924ull, 449862713142118ull}},
+ {{9295999854260793385ull, 359890170513694ull}},
+ {{11126148698150545031ull, 287912136410955ull}},
+ {{17801837917040872050ull, 460659418257528ull}},
+ {{3173423889406966671ull, 368527534606023ull}},
+ {{9917436741009393983ull, 294822027684818ull}},
+ {{12178549970873120049ull, 471715244295709ull}},
+ {{13432188791440406363ull, 377372195436567ull}},
+ {{3367053403668504444ull, 301897756349254ull}},
+ {{12765983075353427757ull, 483036410158806ull}},
+ {{6523437645540831882ull, 386429128127045ull}},
+ {{5218750116432665505ull, 309143302501636ull}},
+ {{971302556808444163ull, 494629284002618ull}},
+ {{8155739674930575976ull, 395703427202094ull}},
+ {{10213940554686371104ull, 316562741761675ull}},
+ {{16342304887498193767ull, 506500386818680ull}},
+ {{13073843909998555014ull, 405200309454944ull}},
+ {{14148423942740754334ull, 324160247563955ull}},
+ {{4190734234675655319ull, 518656396102329ull}},
+ {{7041936202482434578ull, 414925116881863ull}},
+ {{13012246591469768309ull, 331940093505490ull}},
+ {{2372850472642077678ull, 531104149608785ull}},
+ {{1898280378113662142ull, 424883319687028ull}},
+ {{8897321931974750360ull, 339906655749622ull}},
+ {{17925063905901510900ull, 543850649199395ull}},
+ {{14340051124721208720ull, 435080519359516ull}},
+ {{7782692085035056653ull, 348064415487613ull}},
+ {{8762958521314180321ull, 556903064780181ull}},
+ {{3321018002309433934ull, 445522451824145ull}},
+ {{2656814401847547147ull, 356417961459316ull}},
+ {{16882846780445679010ull, 285134369167452ull}},
+ {{12255159589745445124ull, 456214990667924ull}},
+ {{13493476486538266422ull, 364971992534339ull}},
+ {{14484130003972523461ull, 291977594027471ull}},
+ {{15795910376872216891ull, 467164150443954ull}},
+ {{16326077116239683836ull, 373731320355163ull}},
+ {{1992815248766016099ull, 298985056284131ull}},
+ {{14256550842251356728ull, 478376090054609ull}},
+ {{15094589488542995706ull, 382700872043687ull}},
+ {{4696973961350575918ull, 306160697634950ull}},
+ {{7515158338160921469ull, 489857116215920ull}},
+ {{6012126670528737175ull, 391885692972736ull}},
+ {{1120352521681079417ull, 313508554378189ull}},
+ {{9171261664173547714ull, 501613687005102ull}},
+ {{18405055775564569141ull, 401290949604081ull}},
+ {{11034695805709744989ull, 321032759683265ull}},
+ {{17655513289135591983ull, 513652415493224ull}},
+ {{17813759446050383910ull, 410921932394579ull}},
+ {{17940356371582217451ull, 328737545915663ull}},
+ {{6568477306080085982ull, 525980073465062ull}},
+ {{16322828289089799755ull, 420784058772049ull}},
+ {{16747611446013750127ull, 336627247017639ull}},
+ {{15728131869396269235ull, 538603595228223ull}},
+ {{1514459051291284418ull, 430882876182579ull}},
+ {{4900916055774937857ull, 344706300946063ull}},
+ {{4152116874497990249ull, 551530081513701ull}},
+ {{18079088758566033492ull, 441224065210960ull}},
+ {{14463271006852826793ull, 352979252168768ull}},
+ {{502570361256530465ull, 282383401735015ull}},
+ {{804112578010448744ull, 451813442776024ull}},
+ {{4332638877150269319ull, 361450754220819ull}},
+ {{7155459916462125778ull, 289160603376655ull}},
+ {{11448735866339401245ull, 462656965402648ull}},
+ {{16537686322555341642ull, 370125572322118ull}},
+ {{2162102613818542344ull, 296100457857695ull}},
+ {{3459364182109667751ull, 473760732572312ull}},
+ {{13835537789913465170ull, 379008586057849ull}},
+ {{14757779046672682459ull, 303206868846279ull}},
+ {{12544400030450560966ull, 485130990154047ull}},
+ {{2656822394876628126ull, 388104792123238ull}},
+ {{9504155545385123147ull, 310483833698590ull}},
+ {{15206648872616197036ull, 496774133917744ull}},
+ {{15854667912834867952ull, 397419307134195ull}},
+ {{12683734330267894361ull, 317935445707356ull}},
+ {{12915277298944810332ull, 508696713131770ull}},
+ {{10332221839155848265ull, 406957370505416ull}},
+ {{4576428656582768289ull, 325565896404333ull}},
+ {{3632937035790518939ull, 520905434246933ull}},
+ {{10285047258116235798ull, 416724347397546ull}},
+ {{4538688991751078315ull, 333379477918037ull}},
+ {{10951251201543635627ull, 533407164668859ull}},
+ {{12450349775976818825ull, 426725731735087ull}},
+ {{2581582191297634414ull, 341380585388070ull}},
+ {{4130531506076215062ull, 546208936620912ull}},
+ {{14372471649086703019ull, 436967149296729ull}},
+ {{15187326134011272738ull, 349573719437383ull}},
+ {{2163628925966574443ull, 559317951099814ull}},
+ {{5420251955515169877ull, 447454360879851ull}},
+ {{646852749670225578ull, 357963488703881ull}},
+ {{15274877458703821755ull, 286370790963104ull}},
+ {{13371757489700383839ull, 458193265540967ull}},
+ {{3318708362276486425ull, 366554612432774ull}},
+ {{6344315504563099463ull, 293243689946219ull}},
+ {{17529602436784779788ull, 469189903913950ull}},
+ {{14023681949427823830ull, 375351923131160ull}},
+ {{11218945559542259064ull, 300281538504928ull}},
+ {{14260964080525704179ull, 480450461607885ull}},
+ {{11408771264420563343ull, 384360369286308ull}},
+ {{16505714641020271321ull, 307488295429046ull}},
+ {{583701722439061852ull, 491981272686475ull}},
+ {{466961377951249481ull, 393585018149180ull}},
+ {{373569102360999585ull, 314868014519344ull}},
+ {{7976408193261419982ull, 503788823230950ull}},
+ {{6381126554609135986ull, 403031058584760ull}},
+ {{5104901243687308789ull, 322424846867808ull}},
+ {{4478493175157783739ull, 515879754988493ull}},
+ {{10961492169610047637ull, 412703803990794ull}},
+ {{12458542550429948433ull, 330163043192635ull}},
+ {{1486924006978365877ull, 528260869108217ull}},
+ {{12257585649808423671ull, 422608695286573ull}},
+ {{17184766149330559583ull, 338086956229258ull}},
+ {{5359532950477433394ull, 540939129966814ull}},
+ {{7976975175123857038ull, 432751303973451ull}},
+ {{2692231325357175307ull, 346201043178761ull}},
+ {{15375616564797211462ull, 553921669086017ull}},
+ {{4921795622353948523ull, 443137335268814ull}},
+ {{7626785312625069141ull, 354509868215051ull}},
+ {{2412079435358144990ull, 283607894572041ull}},
+ {{14927373540798762954ull, 453772631315265ull}},
+ {{11941898832639010363ull, 363018105052212ull}},
+ {{2174821436627387644ull, 290414484041770ull}},
+ {{3479714298603820230ull, 464663174466832ull}},
+ {{13851817883108787154ull, 371730539573465ull}},
+ {{11081454306487029723ull, 297384431658772ull}},
+ {{2972931631411606264ull, 475815090654036ull}},
+ {{17135740564096926304ull, 380652072523228ull}},
+ {{2640546007051810074ull, 304521658018583ull}},
+ {{535524796540985795ull, 487234652829733ull}},
+ {{7807117466716609282ull, 389787722263786ull}},
+ {{2556345158631377102ull, 311830177811029ull}},
+ {{11468849883294024011ull, 498928284497646ull}},
+ {{5485731091893308885ull, 399142627598117ull}},
+ {{15456631317740378078ull, 319314102078493ull}},
+ {{2594517219933142985ull, 510902563325590ull}},
+ {{2075613775946514388ull, 408722050660472ull}},
+ {{12728537464982942480ull, 326977640528377ull}},
+ {{5608264685005066675ull, 523164224845404ull}},
+ {{8175960562745963663ull, 418531379876323ull}},
+ {{13919466079680591577ull, 334825103901058ull}},
+ {{135052839037484584ull, 535720166241694ull}},
+ {{3797391085971897991ull, 428576132993355ull}},
+ {{3037912868777518392ull, 342860906394684ull}},
+ {{12239358219527850075ull, 548577450231494ull}},
+ {{13480835390364190383ull, 438861960185195ull}},
+ {{10784668312291352306ull, 351089568148156ull}},
+ {{9876771670182343044ull, 561743309037050ull}},
+ {{7901417336145874435ull, 449394647229640ull}},
+ {{6321133868916699548ull, 359515717783712ull}},
+ {{16124953539359090608ull, 287612574226969ull}},
+ {{14731879218748814003ull, 460180118763151ull}},
+ {{8096154560257140879ull, 368144095010521ull}},
+ {{2787574833463802380ull, 294515276008417ull}},
+ {{8149468548283994132ull, 471224441613467ull}},
+ {{17587621282852926275ull, 376979553290773ull}},
+ {{3002050582056610050ull, 301583642632619ull}},
+ {{12181978560774396727ull, 482533828212190ull}},
+ {{9745582848619517381ull, 386027062569752ull}},
+ {{417768649411793259ull, 308821650055802ull}},
+ {{4357778653800779537ull, 494114640089283ull}},
+ {{10864920552524444276ull, 395291712071426ull}},
+ {{5002587627277645098ull, 316233369657141ull}},
+ {{625442574160411510ull, 505973391451426ull}},
+ {{15257749318295970501ull, 404778713161140ull}},
+ {{12206199454636776400ull, 323822970528912ull}},
+ {{4772523868451200948ull, 518116752846260ull}},
+ {{3818019094760960759ull, 414493402277008ull}},
+ {{10433112905292589253ull, 331594721821606ull}},
+ {{9314283018984322159ull, 530551554914570ull}},
+ {{7451426415187457727ull, 424441243931656ull}},
+ {{2271792317408055858ull, 339552995145325ull}},
+ {{3634867707852889374ull, 543284792232520ull}},
+ {{2907894166282311499ull, 434627833786016ull}},
+ {{17083710591993490492ull, 347702267028812ull}},
+ {{12576541688221943494ull, 556323627246100ull}},
+ {{10061233350577554795ull, 445058901796880ull}},
+ {{8048986680462043836ull, 356047121437504ull}},
+ {{10128538159111545392ull, 284837697150003ull}},
+ {{12516312239836562304ull, 455740315440005ull}},
+ {{10013049791869249843ull, 364592252352004ull}},
+ {{11699788648237310198ull, 291673801881603ull}},
+ {{15030313022437785994ull, 466678083010565ull}},
+ {{12024250417950228795ull, 373342466408452ull}},
+ {{2240702704876362389ull, 298673973126762ull}},
+ {{7274473142544090146ull, 477878357002819ull}},
+ {{9508927328777182440ull, 382302685602255ull}},
+ {{7607141863021745952ull, 305842148481804ull}},
+ {{1103380536609062554ull, 489347437570887ull}},
+ {{11950750873512981013ull, 391477950056709ull}},
+ {{13249949513552295133ull, 313182360045367ull}},
+ {{6442523962716030921ull, 501091776072588ull}},
+ {{12532716799656645383ull, 400873420858070ull}},
+ {{10026173439725316306ull, 320698736686456ull}},
+ {{8663179874076685444ull, 513117978698330ull}},
+ {{6930543899261348355ull, 410494382958664ull}},
+ {{9233783934150989007ull, 328395506366931ull}},
+ {{7395356665157761765ull, 525432810187090ull}},
+ {{5916285332126209412ull, 420346248149672ull}},
+ {{15801074709926698499ull, 336276998519737ull}},
+ {{10524324276915076306ull, 538043197631580ull}},
+ {{8419459421532061045ull, 430434558105264ull}},
+ {{10424916351967559159ull, 344347646484211ull}},
+ {{9301168533664274008ull, 550956234374738ull}},
+ {{14819632456415239853ull, 440764987499790ull}},
+ {{11855705965132191882ull, 352611989999832ull}},
+ {{2105867142621932859ull, 282089591999866ull}},
+ {{14437433872420823545ull, 451343347199785ull}},
+ {{11549947097936658836ull, 361074677759828ull}},
+ {{16618655307833147715ull, 288859742207862ull}},
+ {{11832453233565395051ull, 462175587532580ull}},
+ {{9465962586852316041ull, 369740470026064ull}},
+ {{11262118884223763156ull, 295792376020851ull}},
+ {{10640692585274200403ull, 473267801633362ull}},
+ {{1133856438735539676ull, 378614241306690ull}},
+ {{907085150988431741ull, 302891393045352ull}},
+ {{5140685056323401109ull, 484626228872563ull}},
+ {{11491245674542541533ull, 387700983098050ull}},
+ {{9192996539634033226ull, 310160786478440ull}},
+ {{14708794463414453163ull, 496257258365504ull}},
+ {{15456384385473472853ull, 397005806692403ull}},
+ {{1297061064153047313ull, 317604645353923ull}},
+ {{16832692961612516994ull, 508167432566276ull}},
+ {{9776805554548103272ull, 406533946053021ull}},
+ {{4132095628896572294ull, 325227156842417ull}},
+ {{10300701820976425994ull, 520363450947867ull}},
+ {{861863827297320149ull, 416290760758294ull}},
+ {{4378839876579766442ull, 333032608606635ull}},
+ {{7006143802527626308ull, 532852173770616ull}},
+ {{1915566227280190723ull, 426281739016493ull}},
+ {{8911150611307973225ull, 341025391213194ull}},
+ {{3189794533867026190ull, 545640625941111ull}},
+ {{17309230886061262245ull, 436512500752888ull}},
+ {{2779338264623278826ull, 349210000602311ull}},
+ {{15514987667622977092ull, 558736000963697ull}},
+ {{5033292504614561027ull, 446988800770958ull}},
+ {{11405331633175469468ull, 357591040616766ull}},
+ {{5434916491798465251ull, 286072832493413ull}},
+ {{5006517572135634078ull, 457716531989461ull}},
+ {{315865242966596939ull, 366173225591569ull}},
+ {{3942041009115187875ull, 292938580473255ull}},
+ {{6307265614584300600ull, 468701728757208ull}},
+ {{12424510121151261126ull, 374961383005766ull}},
+ {{6250259282179098578ull, 299969106404613ull}},
+ {{6311066036744647401ull, 479950570247381ull}},
+ {{1359504014653807598ull, 383960456197905ull}},
+ {{1087603211723046078ull, 307168364958324ull}},
+ {{9118862768240694372ull, 491469383933318ull}},
+ {{14673787844076376144ull, 393175507146654ull}},
+ {{15428379090003011238ull, 314540405717323ull}},
+ {{2549313655553356042ull, 503264649147718ull}},
+ {{9418148553926505480ull, 402611719318174ull}},
+ {{11223867657883114707ull, 322089375454539ull}},
+ {{6890141808387252562ull, 515343000727263ull}},
+ {{12890811076193622696ull, 412274400581810ull}},
+ {{10312648860954898156ull, 329819520465448ull}},
+ {{12810889362785926727ull, 527711232744717ull}},
+ {{2870013860744920735ull, 422168986195774ull}},
+ {{5985359903337846911ull, 337735188956619ull}},
+ {{16955273474824375705ull, 540376302330590ull}},
+ {{13564218779859500564ull, 432301041864472ull}},
+ {{3472677394403779805ull, 345840833491578ull}},
+ {{1866935016304137365ull, 553345333586525ull}},
+ {{1493548013043309892ull, 442676266869220ull}},
+ {{1194838410434647913ull, 354141013495376ull}},
+ {{15713265987315359623ull, 283312810796300ull}},
+ {{6694481505995023781ull, 453300497274081ull}},
+ {{1666236390054108702ull, 362640397819265ull}},
+ {{1332989112043286961ull, 290112318255412ull}},
+ {{5822131394011169462ull, 464179709208659ull}},
+ {{8347053929950845892ull, 371343767366927ull}},
+ {{17745689588186407683ull, 297075013893541ull}},
+ {{2567661637904880031ull, 475320022229667ull}},
+ {{13122175754549634995ull, 380256017783733ull}},
+ {{17876438233123528642ull, 304204814226986ull}},
+ {{2776859469804273565ull, 486727702763179ull}},
+ {{5910836390585329175ull, 389382162210543ull}},
+ {{12107366741952083986ull, 311505729768434ull}},
+ {{8303740342897603409ull, 498409167629495ull}},
+ {{6642992274318082727ull, 398727334103596ull}},
+ {{1625045004712555858ull, 318981867282877ull}},
+ {{6289420822281999697ull, 510370987652603ull}},
+ {{12410234287309420404ull, 408296790122082ull}},
+ {{2549489800363715677ull, 326637432097666ull}},
+ {{15147230124807676052ull, 522619891356265ull}},
+ {{12117784099846140842ull, 418095913085012ull}},
+ {{2315529650393092027ull, 334476730468010ull}},
+ {{3704847440628947243ull, 535162768748816ull}},
+ {{17721273211470799087ull, 428130214999052ull}},
+ {{6798320939692818623ull, 342504171999242ull}},
+ {{14566662318250420121ull, 548006675198787ull}},
+ {{4274632225116515450ull, 438405340159030ull}},
+ {{3419705780093212360ull, 350724272127224ull}},
+ {{12850226877632960423ull, 561158835403558ull}},
+ {{17658879131590188985ull, 448927068322846ull}},
+ {{10437754490530240864ull, 359141654658277ull}},
+ {{971505962940372045ull, 287313323726622ull}},
+ {{5243758355446505596ull, 459701317962595ull}},
+ {{4195006684357204476ull, 367761054370076ull}},
+ {{18113400606453404874ull, 294208843496060ull}},
+ {{10534696896615896182ull, 470734149593697ull}},
+ {{1049059887808896299ull, 376587319674958ull}},
+ {{8217945539730937686ull, 301269855739966ull}},
+ {{5770015234085679651ull, 482031769183946ull}},
+ {{926663372526633398ull, 385625415347157ull}},
+ {{11809377142247037688ull, 308500332277725ull}},
+ {{448259353885708685ull, 493600531644361ull}},
+ {{15116002742076208240ull, 394880425315488ull}},
+ {{1024755749435235623ull, 315904340252391ull}},
+ {{12707655643322107966ull, 505446944403825ull}},
+ {{10166124514657686373ull, 404357555523060ull}},
+ {{8132899611726149098ull, 323486044418448ull}},
+ {{9323290564019928234ull, 517577671069517ull}},
+ {{79934821732121941ull, 414062136855614ull}},
+ {{3753296672127607876ull, 331249709484491ull}},
+ {{17073321119629903571ull, 529999535175185ull}},
+ {{13658656895703922857ull, 423999628140148ull}},
+ {{18305623146046958932ull, 339199702512118ull}},
+ {{7152904145223672352ull, 542719524019390ull}},
+ {{5722323316178937881ull, 434175619215512ull}},
+ {{15645905097168881275ull, 347340495372409ull}},
+ {{13965401711244479070ull, 555744792595855ull}},
+ {{11172321368995583256ull, 444595834076684ull}},
+ {{12627205909938376928ull, 355676667261347ull}},
+ {{2723067098466880896ull, 284541333809078ull}},
+ {{667558542805099110ull, 455266134094525ull}},
+ {{534046834244079288ull, 364212907275620ull}},
+ {{427237467395263430ull, 291370325820496ull}},
+ {{11751626392058152458ull, 466192521312793ull}},
+ {{16779998743130342613ull, 372954017050234ull}},
+ {{17113347809246184414ull, 298363213640187ull}},
+ {{12623961235826253769ull, 477381141824300ull}},
+ {{10099168988661003015ull, 381904913459440ull}},
+ {{8079335190928802412ull, 305523930767552ull}},
+ {{16616285120227994183ull, 488838289228083ull}},
+ {{2224981651956664377ull, 391070631382467ull}},
+ {{12848031765791062471ull, 312856505105973ull}},
+ {{16867502010523789630ull, 500570408169557ull}},
+ {{6115303978935211058ull, 400456326535646ull}},
+ {{1202894368406258523ull, 320365061228517ull}},
+ {{5613979804191923960ull, 512584097965627ull}},
+ {{15559230287579270138ull, 410067278372501ull}},
+ {{8758035415321505787ull, 328053822698001ull}},
+ {{6634159035030588613ull, 524886116316802ull}},
+ {{16375373672250201860ull, 419908893053441ull}},
+ {{9410950123058251165ull, 335927114442753ull}},
+ {{11368171382151291540ull, 537483383108405ull}},
+ {{9094537105721033232ull, 429986706486724ull}},
+ {{10964978499318736909ull, 343989365189379ull}},
+ {{6475919154684248085ull, 550382984303007ull}},
+ {{16248781767973129437ull, 440306387442405ull}},
+ {{12999025414378503550ull, 352245109953924ull}},
+ {{14088569146244713163ull, 281796087963139ull}},
+ {{11473664189765810091ull, 450873740741023ull}},
+ {{16557628981296468719ull, 360698992592818ull}},
+ {{2178056740811444006ull, 288559194074255ull}},
+ {{3484890785298310410ull, 461694710518808ull}},
+ {{10166610257722468974ull, 369355768415046ull}},
+ {{4443939391436064856ull, 295484614732037ull}},
+ {{10799651841039614093ull, 472775383571259ull}},
+ {{12329070287573601597ull, 378220306857007ull}},
+ {{2484558600575060631ull, 302576245485606ull}},
+ {{15043340205145827980ull, 484121992776969ull}},
+ {{15724020978858572707ull, 387297594221575ull}},
+ {{12579216783086858166ull, 309838075377260ull}},
+ {{1680002779229421449ull, 495740920603617ull}},
+ {{12412048667609268129ull, 396592736482893ull}},
+ {{17308336563571235150ull, 317274189186314ull}},
+ {{16625292057488245270ull, 507638702698103ull}},
+ {{2232187201764865246ull, 406110962158483ull}},
+ {{9164447390895712843ull, 324888769726786ull}},
+ {{7284418195949319903ull, 519822031562858ull}},
+ {{13206232186243276569ull, 415857625250286ull}},
+ {{6875636934252710932ull, 332686100200229ull}},
+ {{18379716724288158138ull, 532297760320366ull}},
+ {{11014424564688616187ull, 425838208256293ull}},
+ {{16190237281234713596ull, 340670566605034ull}},
+ {{14836333205749810784ull, 545072906568055ull}},
+ {{11869066564599848627ull, 436058325254444ull}},
+ {{13184602066421789225ull, 348846660203555ull}},
+ {{2648619232565311144ull, 558154656325689ull}},
+ {{5808244200794159238ull, 446523725060551ull}},
+ {{957246545893417067ull, 357218980048441ull}},
+ {{15523192495682374946ull, 285775184038752ull}},
+ {{10079712734124158622ull, 457240294462004ull}},
+ {{11753119002041237221ull, 365792235569603ull}},
+ {{16781192831116810423ull, 292633788455682ull}},
+ {{12092513270819255384ull, 468214061529092ull}},
+ {{2295312987171583661ull, 374571249223274ull}},
+ {{5525599204479177252ull, 299656999378619ull}},
+ {{16219656356650504249ull, 479451199005790ull}},
+ {{12975725085320403399ull, 383560959204632ull}},
+ {{3001882438772502073ull, 306848767363706ull}},
+ {{15871058346261734287ull, 490958027781929ull}},
+ {{16386195491751297752ull, 392766422225543ull}},
+ {{2040909949175307232ull, 314213137780435ull}},
+ {{3265455918680491572ull, 502741020448696ull}},
+ {{17369759993912034550ull, 402192816358956ull}},
+ {{10206459180387717317ull, 321754253087165ull}},
+ {{16330334688620347707ull, 514806804939464ull}},
+ {{16753616565638188489ull, 411845443951571ull}},
+ {{9713544437768640468ull, 329476355161257ull}},
+ {{784275841462183456ull, 527162168258012ull}},
+ {{11695467117395477734ull, 421729734606409ull}},
+ {{13045722508658292511ull, 337383787685127ull}},
+ {{6115760754885626724ull, 539814060296204ull}},
+ {{8581957418650411703ull, 431851248236963ull}},
+ {{14244263564404150008ull, 345480998589570ull}},
+ {{4344077629337088398ull, 552769597743313ull}},
+ {{10853959732953491364ull, 442215678194650ull}},
+ {{8683167786362793091ull, 353772542555720ull}},
+ {{6946534229090234473ull, 283018034044576ull}},
+ {{3735757137060554511ull, 452828854471322ull}},
+ {{14056652153874174578ull, 362263083577057ull}},
+ {{3866624093615519016ull, 289810466861646ull}},
+ {{17254644994010561396ull, 463696746978633ull}},
+ {{2735669550982718147ull, 370957397582907ull}},
+ {{13256582085011905487ull, 296765918066325ull}},
+ {{2763787262309497163ull, 474825468906121ull}},
+ {{16968425068815239023ull, 379860375124896ull}},
+ {{9885391240310280895ull, 303888300099917ull}},
+ {{1059230725528808140ull, 486221280159868ull}},
+ {{8226082209906867158ull, 388977024127894ull}},
+ {{10270214582667404050ull, 311181619302315ull}},
+ {{16432343332267846480ull, 497890590883704ull}},
+ {{16835223480556187507ull, 398312472706963ull}},
+ {{2400132340219219036ull, 318649978165571ull}},
+ {{14908258188576481427ull, 509839965064913ull}},
+ {{858560106635454172ull, 407871972051931ull}},
+ {{15444243344276004631ull, 326297577641544ull}},
+ {{13642742906615876440ull, 522076124226471ull}},
+ {{7224845510550790828ull, 417660899381177ull}},
+ {{16847922852666363632ull, 334128719504941ull}},
+ {{1131234861072809549ull, 534605951207907ull}},
+ {{11973034333083978609ull, 427684760966325ull}},
+ {{9578427466467182887ull, 342147808773060ull}},
+ {{15325483946347492620ull, 547436494036896ull}},
+ {{8571038342336083772ull, 437949195229517ull}},
+ {{17924877118094597987ull, 350359356183613ull}},
+ {{6543710500499894841ull, 560574969893782ull}},
+ {{16303014844625646842ull, 448459975915025ull}},
+ {{13042411875700517474ull, 358767980732020ull}},
+ {{10433929500560413979ull, 287014384585616ull}},
+ {{9315589571412841720ull, 459223015336986ull}},
+ {{3763122842388363053ull, 367378412269589ull}},
+ {{6699847088652600765ull, 293902729815671ull}},
+ {{3341057712360340578ull, 470244367705074ull}},
+ {{6362194984630182786ull, 376195494164059ull}},
+ {{8779104802446056552ull, 300956395331247ull}},
+ {{17735916498655600806ull, 481530232529995ull}},
+ {{14188733198924480645ull, 385224186023996ull}},
+ {{7661637744397674193ull, 308179348819197ull}},
+ {{15947969205778189032ull, 493086958110715ull}},
+ {{12758375364622551225ull, 394469566488572ull}},
+ {{2828002662214220334ull, 315575653190858ull}},
+ {{835455444800842211ull, 504921045105373ull}},
+ {{8047061985324494415ull, 403936836084298ull}},
+ {{13816347217743416178ull, 323149468867438ull}},
+ {{18416806733647555563ull, 517039150187901ull}},
+ {{11044096572176134127ull, 413631320150321ull}},
+ {{5145928442998996978ull, 330905056120257ull}},
+ {{11922834323540305489ull, 529448089792411ull}},
+ {{5848918644090334068ull, 423558471833929ull}},
+ {{8368483730014177577ull, 338846777467143ull}},
+ {{9700225153280773800ull, 542154843947429ull}},
+ {{11449528937366529363ull, 433723875157943ull}},
+ {{16538320779377044137ull, 346979100126354ull}},
+ {{15393266802777539650ull, 555166560202167ull}},
+ {{4935915812738211074ull, 444133248161734ull}},
+ {{7638081464932479182ull, 355306598529387ull}},
+ {{17178511616171714315ull, 284245278823509ull}},
+ {{16417572141649011935ull, 454792446117615ull}},
+ {{13134057713319209548ull, 363833956894092ull}},
+ {{3128548541171546992ull, 291067165515274ull}},
+ {{12384375295358295833ull, 465707464824438ull}},
+ {{17286197865770457313ull, 372565971859550ull}},
+ {{13828958292616365850ull, 298052777487640ull}},
+ {{3679589194476633745ull, 476884443980225ull}},
+ {{2943671355581306996ull, 381507555184180ull}},
+ {{2354937084465045596ull, 305206044147344ull}},
+ {{11146596964627893601ull, 488329670635750ull}},
+ {{8917277571702314881ull, 390663736508600ull}},
+ {{7133822057361851905ull, 312530989206880ull}},
+ {{11414115291778963048ull, 500049582731008ull}},
+ {{16509989862906991084ull, 400039666184806ull}},
+ {{9518643075583682544ull, 320031732947845ull}},
+ {{15229828920933892071ull, 512050772716552ull}},
+ {{4805165507263293010ull, 409640618173242ull}},
+ {{14912178850036365378ull, 327712494538593ull}},
+ {{1723393271606722665ull, 524339991261750ull}},
+ {{1378714617285378132ull, 419471993009400ull}},
+ {{1102971693828302506ull, 335577594407520ull}},
+ {{1764754710125284009ull, 536924151052032ull}},
+ {{12479850212325958177ull, 429539320841625ull}},
+ {{9983880169860766542ull, 343631456673300ull}},
+ {{15974208271777226467ull, 549810330677280ull}},
+ {{12779366617421781173ull, 439848264541824ull}},
+ {{13912842108679335262ull, 351878611633459ull}},
+ {{14819622501685378532ull, 281502889306767ull}},
+ {{8954000743728964359ull, 450404622890828ull}},
+ {{14541898224466992134ull, 360323698312662ull}},
+ {{4254820950089773061ull, 288258958650130ull}},
+ {{6807713520143636897ull, 461214333840208ull}},
+ {{12824868445598730164ull, 368971467072166ull}},
+ {{6570545941737073808ull, 295177173657733ull}},
+ {{6823524692037407770ull, 472283477852373ull}},
+ {{12837517383113746862ull, 377826782281898ull}},
+ {{17648711535974818136ull, 302261425825518ull}},
+ {{6101845569108247079ull, 483618281320830ull}},
+ {{4881476455286597663ull, 386894625056664ull}},
+ {{7594529978971188453ull, 309515700045331ull}},
+ {{4772550336870080879ull, 495225120072530ull}},
+ {{3818040269496064703ull, 396180096058024ull}},
+ {{6743781030338762086ull, 316944076846419ull}},
+ {{18168747278025839984ull, 507110522954270ull}},
+ {{14534997822420671987ull, 405688418363416ull}},
+ {{7938649443194627266ull, 324550734690733ull}},
+ {{9012490294369493303ull, 519281175505173ull}},
+ {{14588689864979415289ull, 415424940404138ull}},
+ {{602905447757801261ull, 332339952323311ull}},
+ {{12032695160638212988ull, 531743923717297ull}},
+ {{2247458499026749744ull, 425395138973838ull}},
+ {{9176664428705220442ull, 340316111179070ull}},
+ {{14682663085928352707ull, 544505777886512ull}},
+ {{4367432839258861519ull, 435604622309210ull}},
+ {{3493946271407089215ull, 348483697847368ull}},
+ {{1900965219509432421ull, 557573916555789ull}},
+ {{5210120990349456260ull, 446059133244631ull}},
+ {{478747977537654685ull, 356847306595705ull}},
+ {{382998382030123748ull, 285477845276564ull}},
+ {{7991495040732018643ull, 456764552442502ull}},
+ {{17461242476811345884ull, 365411641954001ull}},
+ {{10279645166707166384ull, 292329313563201ull}},
+ {{9068734637247645568ull, 467726901701122ull}},
+ {{18323034154023847424ull, 374181521360897ull}},
+ {{7279729693735257293ull, 299345217088718ull}},
+ {{7958218695234501345ull, 478952347341949ull}},
+ {{10055923770929511399ull, 383161877873559ull}},
+ {{11734087831485519443ull, 306529502298847ull}},
+ {{4017145271409189816ull, 490447203678156ull}},
+ {{17971111476094993145ull, 392357762942524ull}},
+ {{18066237995617904839ull, 313886210354019ull}},
+ {{17837934348762916774ull, 502217936566431ull}},
+ {{10580998664268423096ull, 401774349253145ull}},
+ {{8464798931414738476ull, 321419479402516ull}},
+ {{6164980660779760916ull, 514271167044026ull}},
+ {{1242635713881898410ull, 411416933635221ull}},
+ {{15751503830073160020ull, 329133546908176ull}},
+ {{17823708498633235386ull, 526613675053082ull}},
+ {{6880269169422767663ull, 421290940042466ull}},
+ {{1814866520796303807ull, 337032752033973ull}},
+ {{17661181692241727384ull, 539252403254356ull}},
+ {{10439596539051471584ull, 431401922603485ull}},
+ {{8351677231241177267ull, 345121538082788ull}},
+ {{9673334755243973304ull, 552194460932461ull}},
+ {{4049318989453268320ull, 441755568745969ull}},
+ {{6928804006304524979ull, 353404454996775ull}},
+ {{5543043205043619983ull, 282723563997420ull}},
+ {{8868869128069791974ull, 452357702395872ull}},
+ {{18163141746681564548ull, 361886161916697ull}},
+ {{7151815767861430992ull, 289508929533358ull}},
+ {{7753556413836379265ull, 463214287253373ull}},
+ {{13581542760552924058ull, 370571429802698ull}},
+ {{18243931837926159893ull, 296457143842158ull}},
+ {{7054198052230393889ull, 474331430147454ull}},
+ {{9332707256526225435ull, 379465144117963ull}},
+ {{14844863434704800994ull, 303572115294370ull}},
+ {{5305037421818129975ull, 485715384470993ull}},
+ {{11622727566938324626ull, 388572307576794ull}},
+ {{12987530868292570024ull, 310857846061435ull}},
+ {{2333305315558560423ull, 497372553698297ull}},
+ {{12934690696672579308ull, 397898042958637ull}},
+ {{2969054927854242800ull, 318318434366910ull}},
+ {{4750487884566788480ull, 509309494987056ull}},
+ {{111041492911520460ull, 407447595989645ull}},
+ {{88833194329216368ull, 325958076791716ull}},
+ {{11210179555152477159ull, 521532922866745ull}},
+ {{8968143644121981727ull, 417226338293396ull}},
+ {{3485166100555675058ull, 333781070634717ull}},
+ {{9265614575630990417ull, 534049713015547ull}},
+ {{33794031020971687ull, 427239770412438ull}},
+ {{7405732854300597996ull, 341791816329950ull}},
+ {{11849172566880956794ull, 546866906127920ull}},
+ {{9479338053504765435ull, 437493524902336ull}},
+ {{3894121628061902025ull, 349994819921869ull}},
+ {{13609292234382863886ull, 559991711874990ull}},
+ {{10887433787506291109ull, 447993369499992ull}},
+ {{1331249400521212241ull, 358394695599994ull}},
+ {{4754348335158880116ull, 286715756479995ull}},
+ {{7606957336254208185ull, 458745210367992ull}},
+ {{17153612313229097518ull, 366996168294393ull}},
+ {{2654843406357547044ull, 293596934635515ull}},
+ {{4247749450172075271ull, 469755095416824ull}},
+ {{7087548374879570540ull, 375804076333459ull}},
+ {{9359387514645566755ull, 300643261066767ull}},
+ {{217624764465265516ull, 481029217706828ull}},
+ {{7552797441056033059ull, 384823374165462ull}},
+ {{17110284397070557417ull, 307858699332369ull}},
+ {{16308408591087160897ull, 492573918931791ull}},
+ {{9357378058127818395ull, 394059135145433ull}},
+ {{14864600075986075362ull, 315247308116346ull}},
+ {{16404662492093899933ull, 504395692986154ull}},
+ {{16813078808417030270ull, 403516554388923ull}},
+ {{2382416602507893246ull, 322813243511139ull}},
+ {{11190564193496449840ull, 516501189617822ull}},
+ {{1573753725313339226ull, 413200951694258ull}},
+ {{8637700609734492027ull, 330560761355406ull}},
+ {{6441623346091366597ull, 528897218168650ull}},
+ {{5153298676873093277ull, 423117774534920ull}},
+ {{4122638941498474622ull, 338494219627936ull}},
+ {{17664268750623290365ull, 541590751404697ull}},
+ {{6752717371014811645ull, 433272601123758ull}},
+ {{12780871526295669963ull, 346618080899006ull}},
+ {{13070696812589251294ull, 554588929438410ull}},
+ {{10456557450071401035ull, 443671143550728ull}},
+ {{15743943589540941474ull, 354936914840582ull}},
+ {{5216457242148932533ull, 283949531872466ull}},
+ {{967633957954471407ull, 454319250995946ull}},
+ {{15531502425331218418ull, 363455400796756ull}},
+ {{8735853125523064411ull, 290764320637405ull}},
+ {{13977365000836903058ull, 465222913019848ull}},
+ {{113845556443791477ull, 372178330415879ull}},
+ {{3780425259896943505ull, 297742664332703ull}},
+ {{2359331601093199284ull, 476388262932325ull}},
+ {{1887465280874559427ull, 381110610345860ull}},
+ {{1509972224699647542ull, 304888488276688ull}},
+ {{17173350818487077360ull, 487821581242700ull}},
+ {{13738680654789661888ull, 390257264994160ull}},
+ {{10990944523831729510ull, 312205811995328ull}},
+ {{13896162423388856894ull, 499529299192525ull}},
+ {{11116929938711085515ull, 399623439354020ull}},
+ {{8893543950968868412ull, 319698751483216ull}},
+ {{6850972692066368813ull, 511518002373146ull}},
+ {{1791429338911184727ull, 409214401898517ull}},
+ {{12501189915354678751ull, 327371521518813ull}},
+ {{16312555049825575679ull, 523794434430101ull}},
+ {{9360695225118550220ull, 419035547544081ull}},
+ {{3799207365352929852ull, 335228438035265ull}},
+ {{6078731784564687764ull, 536365500856424ull}},
+ {{8552334242393660534ull, 429092400685139ull}},
+ {{10531216208656838751ull, 343273920548111ull}},
+ {{9471248304367121355ull, 549238272876978ull}},
+ {{14955696272977517730ull, 439390618301582ull}},
+ {{4585859388898193538ull, 351512494641266ull}},
+ {{18405421466462840630ull, 562419991426025ull}},
+ {{14724337173170272504ull, 449935993140820ull}},
+ {{11779469738536218003ull, 359948794512656ull}},
+ {{5734226976087064079ull, 287959035610125ull}},
+ {{9174763161739302527ull, 460734456976200ull}},
+ {{7339810529391442021ull, 368587565580960ull}},
+ {{5871848423513153617ull, 294870052464768ull}},
+ {{5705608662879135464ull, 471792083943629ull}},
+ {{8253835745045218695ull, 377433667154903ull}},
+ {{13981766225519995602ull, 301946933723922ull}},
+ {{7613430701864351671ull, 483115093958276ull}},
+ {{2401395746749571013ull, 386492075166621ull}},
+ {{16678511856367298103ull, 309193660133296ull}},
+ {{860177266994304703ull, 494709856213275ull}},
+ {{688141813595443762ull, 395767884970620ull}},
+ {{550513450876355010ull, 316614307976496ull}},
+ {{11948867965627898986ull, 506582892762393ull}},
+ {{16937792001986139835ull, 405266314209914ull}},
+ {{17239582416330822191ull, 324213051367931ull}},
+ {{1757890162935943243ull, 518740882188691ull}},
+ {{16163707389316395887ull, 414992705750952ull}},
+ {{5552268281969296063ull, 331994164600762ull}},
+ {{12572978065892784025ull, 531190663361219ull}},
+ {{13747731267456137543ull, 424952530688975ull}},
+ {{10998185013964910034ull, 339962024551180ull}},
+ {{17597096022343856055ull, 543939239281888ull}},
+ {{3009630373649353875ull, 435151391425511ull}},
+ {{17165099557887124392ull, 348121113140408ull}},
+ {{5328066404167937089ull, 556993781024654ull}},
+ {{7951801938076259994ull, 445595024819723ull}},
+ {{13740139179944828642ull, 356476019855778ull}},
+ {{18370808973439683560ull, 285180815884622ull}},
+ {{14635899098535852403ull, 456289305415396ull}},
+ {{8019370464086771599ull, 365031444332317ull}},
+ {{17483542815495148249ull, 292025155465853ull}},
+ {{5837575616340775259ull, 467240248745366ull}},
+ {{980711678330709884ull, 373792198996293ull}},
+ {{8163266972148388553ull, 299033759197034ull}},
+ {{1993180711211690716ull, 478454014715255ull}},
+ {{1594544568969352573ull, 382763211772204ull}},
+ {{4964984469917392381ull, 306210569417763ull}},
+ {{4254626337125917487ull, 489936911068421ull}},
+ {{18161096328668375283ull, 391949528854736ull}},
+ {{10839528248192789903ull, 313559623083789ull}},
+ {{6275198752882732875ull, 501695396934063ull}},
+ {{12398856631790006946ull, 401356317547250ull}},
+ {{9919085305432005557ull, 321085054037800ull}},
+ {{15870536488691208892ull, 513736086460480ull}},
+ {{12696429190952967113ull, 410988869168384ull}},
+ {{13846492167504284014ull, 328791095334707ull}},
+ {{7396992209039213129ull, 526065752535532ull}},
+ {{16985640211457101473ull, 420852602028425ull}},
+ {{13588512169165681178ull, 336682081622740ull}},
+ {{3294875396955538270ull, 538691330596385ull}},
+ {{2635900317564430616ull, 430953064477108ull}},
+ {{9487417883535365139ull, 344762451581686ull}},
+ {{7801170984172763576ull, 551619922530698ull}},
+ {{13619634416822031507ull, 441295938024558ull}},
+ {{18274405162941445852ull, 353036750419646ull}},
+ {{10930175315611246358ull, 282429400335717ull}},
+ {{2730885246010352881ull, 451887040537148ull}},
+ {{9563405826292102951ull, 361509632429718ull}},
+ {{15029422290517503007ull, 289207705943774ull}},
+ {{12979029220602273842ull, 462732329510039ull}},
+ {{14072572191223729397ull, 370185863608031ull}},
+ {{7568708938237073194ull, 296148690886425ull}},
+ {{12109934301179317111ull, 473837905418280ull}},
+ {{9687947440943453688ull, 379070324334624ull}},
+ {{11439706767496673274ull, 303256259467699ull}},
+ {{7235484383768946269ull, 485210015148319ull}},
+ {{9477736321757067338ull, 388168012118655ull}},
+ {{7582189057405653870ull, 310534409694924ull}},
+ {{1063456047623315223ull, 496855055511879ull}},
+ {{4540113652840562502ull, 397484044409503ull}},
+ {{11010788551756270648ull, 317987235527602ull}},
+ {{2859866423842391744ull, 508779576844164ull}},
+ {{5977241953815823718ull, 407023661475331ull}},
+ {{1092444748310748651ull, 325618929180265ull}},
+ {{1747911597297197842ull, 520990286688424ull}},
+ {{5087678092579668597ull, 416792229350739ull}},
+ {{7759491288805645201ull, 333433783480591ull}},
+ {{5036488432605211675ull, 533494053568946ull}},
+ {{339841931342259017ull, 426795242855157ull}},
+ {{11339919989299538183ull, 341436194284125ull}},
+ {{18143871982879261093ull, 546297910854600ull}},
+ {{14515097586303408874ull, 437038328683680ull}},
+ {{11612078069042727099ull, 349630662946944ull}},
+ {{7511278466242632389ull, 559409060715111ull}},
+ {{2319673958252195588ull, 447527248572089ull}},
+ {{5545087981343666794ull, 358021798857671ull}},
+ {{746721570333023112ull, 286417439086137ull}},
+ {{4884103327274747302ull, 458267902537819ull}},
+ {{7596631476561708165ull, 366614322030255ull}},
+ {{6077305181249366532ull, 293291457624204ull}},
+ {{17102385919482807098ull, 469266332198726ull}},
+ {{9992559920844335355ull, 375413065758981ull}},
+ {{4304699121933557960ull, 300330452607185ull}},
+ {{6887518595093692737ull, 480528724171496ull}},
+ {{1820666061333043866ull, 384422979337197ull}},
+ {{12524579293292166063ull, 307538383469757ull}},
+ {{5281931610299824408ull, 492061413551612ull}},
+ {{15293591732465590496ull, 393649130841289ull}},
+ {{15924222200714382720ull, 314919304673031ull}},
+ {{18100057891659191705ull, 503870887476850ull}},
+ {{14480046313327353364ull, 403096709981480ull}},
+ {{11584037050661882691ull, 322477367985184ull}},
+ {{7466412836833281337ull, 515963788776295ull}},
+ {{5973130269466625069ull, 412771031021036ull}},
+ {{1089155400831389732ull, 330216824816829ull}},
+ {{9121346270814044218ull, 528346919706926ull}},
+ {{3607728201909325051ull, 422677535765541ull}},
+ {{17643577820495101334ull, 338142028612432ull}},
+ {{13472329253824520841ull, 541027245779892ull}},
+ {{3399165773575796026ull, 432821796623914ull}},
+ {{6408681433602547144ull, 346257437299131ull}},
+ {{2875192664280254785ull, 554011899678610ull}},
+ {{2300154131424203828ull, 443209519742888ull}},
+ {{9218820934623183708ull, 354567615794310ull}},
+ {{7375056747698546967ull, 283654092635448ull}},
+ {{8110741981575764824ull, 453846548216717ull}},
+ {{17556640029486342828ull, 363077238573373ull}},
+ {{2977265579363343293ull, 290461790858699ull}},
+ {{12142322556465169916ull, 464738865373918ull}},
+ {{17092555674655956579ull, 371791092299134ull}},
+ {{17363393354466675586ull, 297432873839307ull}},
+ {{13024034108179039645ull, 475892598142892ull}},
+ {{3040529657059411070ull, 380714078514314ull}},
+ {{6121772540389439179ull, 304571262811451ull}},
+ {{2416138435139282040ull, 487314020498322ull}},
+ {{13000957192337156602ull, 389851216398657ull}},
+ {{3022068124385904635ull, 311880973118926ull}},
+ {{15903355443243178386ull, 499009556990281ull}},
+ {{9033335539852632385ull, 399207645592225ull}},
+ {{7226668431882105908ull, 319366116473780ull}},
+ {{11562669491011369453ull, 510985786358048ull}},
+ {{16628833222292916209ull, 408788629086438ull}},
+ {{2235020133608601997ull, 327030903269151ull}},
+ {{14644078657999494166ull, 523249445230641ull}},
+ {{8025914111657685009ull, 418599556184513ull}},
+ {{13799428918809968654ull, 334879644947610ull}},
+ {{3632342196386398230ull, 535807431916177ull}}
+};
+
+static const int bid_exponents_binary32[] = {
+ -27,
+ -24,
+ -21,
+ -17,
+ -14,
+ -11,
+ -7,
+ -4,
+ -1,
+ 3,
+ 6,
+ 9,
+ 13,
+ 16,
+ 19,
+ 23,
+ 26,
+ 29,
+ 33,
+ 36,
+ 39,
+ 43,
+ 46,
+ 49,
+ 52,
+ 56,
+ 59,
+ 62,
+ 66,
+ 69,
+ 72,
+ 76,
+ 79,
+ 82,
+ 86,
+ 89,
+ 92,
+ 96,
+ 99,
+ 102,
+ 106,
+ 109,
+ 112,
+ 116,
+ 119,
+ 122,
+ 126,
+ 129,
+ 132,
+ 136,
+ 139,
+ 142,
+ 145,
+ 149,
+ 152,
+ 155,
+ 159,
+ 162,
+ 165,
+ 169,
+ 172,
+ 175,
+ 179,
+ 182,
+ 185,
+ 189,
+ 192,
+ 195,
+ 199,
+ 202,
+ 205,
+ 209,
+ 212,
+ 215,
+ 219,
+ 222,
+ 225,
+ 229,
+ 232,
+ 235,
+ 238,
+ 242,
+ 245,
+ 248,
+ 252,
+ 255,
+ 258,
+ 262,
+ 265,
+ 268,
+ 272,
+ 275,
+ 278,
+ 282,
+ 285,
+ 288,
+ 292,
+ 295,
+ 298,
+ 302,
+ 305,
+ 308,
+ 312,
+ 315,
+ 318,
+ 322,
+ 325,
+ 328,
+ 332,
+ 335,
+ 338,
+ 341,
+ 345,
+ 348,
+ 351,
+ 355,
+ 358,
+ 361,
+ 365,
+ 368,
+};
+
+static const int bid_exponents_binary64[] = {
+ -55,
+ -51,
+ -48,
+ -45,
+ -41,
+ -38,
+ -35,
+ -31,
+ -28,
+ -25,
+ -22,
+ -18,
+ -15,
+ -12,
+ -8,
+ -5,
+ -2,
+ 2,
+ 5,
+ 8,
+ 12,
+ 15,
+ 18,
+ 22,
+ 25,
+ 28,
+ 32,
+ 35,
+ 38,
+ 42,
+ 45,
+ 48,
+ 52,
+ 55,
+ 58,
+ 62,
+ 65,
+ 68,
+ 71,
+ 75,
+ 78,
+ 81,
+ 85,
+ 88,
+ 91,
+ 95,
+ 98,
+ 101,
+ 105,
+ 108,
+ 111,
+ 115,
+ 118,
+ 121,
+ 125,
+ 128,
+ 131,
+ 135,
+ 138,
+ 141,
+ 145,
+ 148,
+ 151,
+ 155,
+ 158,
+ 161,
+ 164,
+ 168,
+ 171,
+ 174,
+ 178,
+ 181,
+ 184,
+ 188,
+ 191,
+ 194,
+ 198,
+ 201,
+ 204,
+ 208,
+ 211,
+ 214,
+ 218,
+ 221,
+ 224,
+ 228,
+ 231,
+ 234,
+ 238,
+ 241,
+ 244,
+ 248,
+ 251,
+ 254,
+ 258,
+ 261,
+ 264,
+ 267,
+ 271,
+ 274,
+ 277,
+ 281,
+ 284,
+ 287,
+ 291,
+ 294,
+ 297,
+ 301,
+ 304,
+ 307,
+ 311,
+ 314,
+ 317,
+ 321,
+ 324,
+ 327,
+ 331,
+ 334,
+ 337,
+ 341,
+ 344,
+ 347,
+ 351,
+ 354,
+ 357,
+ 360,
+ 364,
+ 367,
+ 370,
+ 374,
+ 377,
+ 380,
+ 384,
+ 387,
+ 390,
+ 394,
+ 397,
+ 400,
+ 404,
+ 407,
+ 410,
+ 414,
+ 417,
+ 420,
+ 424,
+ 427,
+ 430,
+ 434,
+ 437,
+ 440,
+ 444,
+ 447,
+ 450,
+ 454,
+ 457,
+ 460,
+ 463,
+ 467,
+ 470,
+ 473,
+ 477,
+ 480,
+ 483,
+ 487,
+ 490,
+ 493,
+ 497,
+ 500,
+ 503,
+ 507,
+ 510,
+ 513,
+ 517,
+ 520,
+ 523,
+ 527,
+ 530,
+ 533,
+ 537,
+ 540,
+ 543,
+ 547,
+ 550,
+ 553,
+ 556,
+ 560,
+ 563,
+ 566,
+ 570,
+ 573,
+ 576,
+ 580,
+ 583,
+ 586,
+ 590,
+ 593,
+ 596,
+ 600,
+ 603,
+ 606,
+ 610,
+ 613,
+ 616,
+ 620,
+ 623,
+ 626,
+ 630,
+ 633,
+ 636,
+ 640,
+ 643,
+ 646,
+ 649,
+ 653,
+ 656,
+ 659,
+ 663,
+ 666,
+ 669,
+ 673,
+ 676,
+ 679,
+ 683,
+ 686,
+ 689,
+ 693,
+ 696,
+ 699,
+ 703,
+ 706,
+ 709,
+ 713,
+ 716,
+ 719,
+ 723,
+ 726,
+ 729,
+ 733,
+ 736,
+ 739,
+ 743,
+ 746,
+ 749,
+ 752,
+ 756,
+ 759,
+ 762,
+ 766,
+ 769,
+ 772,
+ 776,
+ 779,
+ 782,
+ 786,
+ 789,
+ 792,
+ 796,
+ 799,
+ 802,
+ 806,
+ 809,
+ 812,
+ 816,
+ 819,
+ 822,
+ 826,
+ 829,
+ 832,
+ 836,
+ 839,
+ 842,
+ 845,
+ 849,
+ 852,
+ 855,
+ 859,
+ 862,
+ 865,
+ 869,
+ 872,
+ 875,
+ 879,
+ 882,
+ 885,
+ 889,
+ 892,
+ 895,
+ 899,
+ 902,
+ 905,
+ 909,
+ 912,
+ 915,
+ 919,
+ 922,
+ 925,
+ 929,
+ 932,
+ 935,
+ 939,
+ 942,
+ 945,
+ 948,
+ 952,
+ 955,
+ 958,
+ 962,
+ 965,
+ 968,
+ 972,
+ 975,
+ 978,
+ 982,
+ 985,
+ 988,
+ 992,
+ 995,
+ 998,
+ 1002,
+ 1005,
+ 1008,
+ 1012,
+ 1015,
+ 1018,
+ 1022,
+ 1025,
+ 1028,
+ 1032,
+ 1035,
+ 1038,
+ 1041,
+ 1045,
+ 1048,
+ 1051,
+ 1055,
+ 1058,
+ 1061,
+ 1065,
+ 1068,
+ 1071,
+ 1075,
+ 1078,
+ 1081,
+ 1085,
+ 1088,
+ 1091,
+ 1095,
+ 1098,
+ 1101,
+ 1105,
+ 1108,
+ 1111,
+ 1115,
+ 1118,
+ 1121,
+ 1125,
+ 1128,
+ 1131,
+ 1134,
+ 1138,
+ 1141,
+ 1144,
+ 1148,
+ 1151,
+ 1154,
+ 1158,
+ 1161,
+ 1164,
+ 1168,
+ 1171,
+ 1174,
+ 1178,
+ 1181,
+ 1184,
+ 1188,
+ 1191,
+ 1194,
+ 1198,
+ 1201,
+ 1204,
+ 1208,
+ 1211,
+ 1214,
+ 1218,
+ 1221,
+ 1224,
+ 1228,
+ 1231,
+ 1234,
+ 1237,
+ 1241,
+ 1244,
+ 1247,
+ 1251,
+ 1254,
+ 1257,
+ 1261,
+ 1264,
+ 1267,
+ 1271,
+ 1274,
+ 1277,
+ 1281,
+ 1284,
+ 1287,
+ 1291,
+ 1294,
+ 1297,
+ 1301,
+ 1304,
+ 1307,
+ 1311,
+ 1314,
+ 1317,
+ 1321,
+ 1324,
+ 1327,
+ 1330,
+ 1334,
+ 1337,
+ 1340,
+ 1344,
+ 1347,
+ 1350,
+ 1354,
+ 1357,
+ 1360,
+ 1364,
+ 1367,
+ 1370,
+ 1374,
+ 1377,
+ 1380,
+ 1384,
+ 1387,
+ 1390,
+ 1394,
+ 1397,
+ 1400,
+ 1404,
+ 1407,
+ 1410,
+ 1414,
+ 1417,
+ 1420,
+ 1424,
+ 1427,
+ 1430,
+ 1433,
+ 1437,
+ 1440,
+ 1443,
+ 1447,
+ 1450,
+ 1453,
+ 1457,
+ 1460,
+ 1463,
+ 1467,
+ 1470,
+ 1473,
+ 1477,
+ 1480,
+ 1483,
+ 1487,
+ 1490,
+ 1493,
+ 1497,
+ 1500,
+ 1503,
+ 1507,
+ 1510,
+ 1513,
+ 1517,
+ 1520,
+ 1523,
+ 1526,
+ 1530,
+ 1533,
+ 1536,
+ 1540,
+ 1543,
+ 1546,
+ 1550,
+ 1553,
+ 1556,
+ 1560,
+ 1563,
+ 1566,
+ 1570,
+ 1573,
+ 1576,
+ 1580,
+ 1583,
+ 1586,
+ 1590,
+ 1593,
+ 1596,
+ 1600,
+ 1603,
+ 1606,
+ 1610,
+ 1613,
+ 1616,
+ 1620,
+ 1623,
+ 1626,
+ 1629,
+ 1633,
+ 1636,
+ 1639,
+ 1643,
+ 1646,
+ 1649,
+ 1653,
+ 1656,
+ 1659,
+ 1663,
+ 1666,
+ 1669,
+ 1673,
+ 1676,
+ 1679,
+ 1683,
+ 1686,
+ 1689,
+ 1693,
+ 1696,
+ 1699,
+ 1703,
+ 1706,
+ 1709,
+ 1713,
+ 1716,
+ 1719,
+ 1722,
+ 1726,
+ 1729,
+ 1732,
+ 1736,
+ 1739,
+ 1742,
+ 1746,
+ 1749,
+ 1752,
+ 1756,
+ 1759,
+ 1762,
+ 1766,
+ 1769,
+ 1772,
+ 1776,
+ 1779,
+ 1782,
+ 1786,
+ 1789,
+ 1792,
+ 1796,
+ 1799,
+ 1802,
+ 1806,
+ 1809,
+ 1812,
+ 1815,
+ 1819,
+ 1822,
+ 1825,
+ 1829,
+ 1832,
+ 1835,
+ 1839,
+ 1842,
+ 1845,
+ 1849,
+ 1852,
+ 1855,
+ 1859,
+ 1862,
+ 1865,
+ 1869,
+ 1872,
+ 1875,
+ 1879,
+ 1882,
+ 1885,
+ 1889,
+ 1892,
+ 1895,
+ 1899,
+ 1902,
+ 1905,
+ 1909,
+ 1912,
+ 1915,
+ 1918,
+ 1922,
+ 1925,
+ 1928,
+ 1932,
+ 1935,
+ 1938,
+ 1942,
+ 1945,
+ 1948,
+ 1952,
+ 1955,
+ 1958,
+ 1962,
+ 1965,
+ 1968,
+ 1972,
+ 1975,
+ 1978,
+ 1982,
+ 1985,
+ 1988,
+ 1992,
+ 1995,
+ 1998,
+ 2002,
+ 2005,
+ 2008,
+ 2011,
+ 2015,
+ 2018,
+ 2021,
+ 2025,
+ 2028,
+ 2031,
+ 2035,
+ 2038,
+ 2041,
+ 2045,
+ 2048,
+ 2051,
+ 2055,
+ 2058,
+ 2061,
+ 2065,
+ 2068,
+ 2071,
+ 2075,
+ 2078,
+ 2081,
+ 2085,
+ 2088,
+ 2091,
+ 2095,
+ 2098,
+ 2101,
+ 2105,
+ 2108,
+ 2111,
+ 2114,
+ 2118,
+ 2121,
+ 2124,
+ 2128,
+ 2131,
+ 2134,
+ 2138,
+ 2141,
+ 2144,
+ 2148,
+ 2151,
+ 2154,
+ 2158,
+ 2161,
+};
+
+static const int bid_exponents_binary80[] = {
+ -65,
+ -62,
+ -59,
+ -55,
+ -52,
+ -49,
+ -45,
+ -42,
+ -39,
+ -35,
+ -32,
+ -29,
+ -25,
+ -22,
+ -19,
+ -15,
+ -12,
+ -9,
+ -6,
+ -2,
+ 1,
+ 4,
+ 8,
+ 11,
+ 14,
+ 18,
+ 21,
+ 24,
+ 28,
+ 31,
+ 34,
+ 38,
+ 41,
+ 44,
+ 48,
+ 51,
+ 54,
+ 58,
+ 61,
+ 64,
+ 68,
+ 71,
+ 74,
+ 78,
+ 81,
+ 84,
+ 87,
+ 91,
+ 94,
+ 97,
+ 101,
+ 104,
+ 107,
+ 111,
+ 114,
+ 117,
+ 121,
+ 124,
+ 127,
+ 131,
+ 134,
+ 137,
+ 141,
+ 144,
+ 147,
+ 151,
+ 154,
+ 157,
+ 161,
+ 164,
+ 167,
+ 171,
+ 174,
+ 177,
+ 181,
+ 184,
+ 187,
+ 190,
+ 194,
+ 197,
+ 200,
+ 204,
+ 207,
+ 210,
+ 214,
+ 217,
+ 220,
+ 224,
+ 227,
+ 230,
+ 234,
+ 237,
+ 240,
+ 244,
+ 247,
+ 250,
+ 254,
+ 257,
+ 260,
+ 264,
+ 267,
+ 270,
+ 274,
+ 277,
+ 280,
+ 283,
+ 287,
+ 290,
+ 293,
+ 297,
+ 300,
+ 303,
+ 307,
+ 310,
+ 313,
+ 317,
+ 320,
+ 323,
+ 327,
+ 330,
+ 333,
+ 337,
+ 340,
+ 343,
+ 347,
+ 350,
+ 353,
+ 357,
+ 360,
+ 363,
+ 367,
+ 370,
+ 373,
+ 377,
+ 380,
+ 383,
+ 386,
+ 390,
+ 393,
+ 396,
+ 400,
+ 403,
+ 406,
+ 410,
+ 413,
+ 416,
+ 420,
+ 423,
+ 426,
+ 430,
+ 433,
+ 436,
+ 440,
+ 443,
+ 446,
+ 450,
+ 453,
+ 456,
+ 460,
+ 463,
+ 466,
+ 470,
+ 473,
+ 476,
+ 479,
+ 483,
+ 486,
+ 489,
+ 493,
+ 496,
+ 499,
+ 503,
+ 506,
+ 509,
+ 513,
+ 516,
+ 519,
+ 523,
+ 526,
+ 529,
+ 533,
+ 536,
+ 539,
+ 543,
+ 546,
+ 549,
+ 553,
+ 556,
+ 559,
+ 563,
+ 566,
+ 569,
+ 572,
+ 576,
+ 579,
+ 582,
+ 586,
+ 589,
+ 592,
+ 596,
+ 599,
+ 602,
+ 606,
+ 609,
+ 612,
+ 616,
+ 619,
+ 622,
+ 626,
+ 629,
+ 632,
+ 636,
+ 639,
+ 642,
+ 646,
+ 649,
+ 652,
+ 656,
+ 659,
+ 662,
+ 666,
+ 669,
+ 672,
+ 675,
+ 679,
+ 682,
+ 685,
+ 689,
+ 692,
+ 695,
+ 699,
+ 702,
+ 705,
+ 709,
+ 712,
+ 715,
+ 719,
+ 722,
+ 725,
+ 729,
+ 732,
+ 735,
+ 739,
+ 742,
+ 745,
+ 749,
+ 752,
+ 755,
+ 759,
+ 762,
+ 765,
+ 768,
+ 772,
+ 775,
+ 778,
+ 782,
+ 785,
+ 788,
+ 792,
+ 795,
+ 798,
+ 802,
+ 805,
+ 808,
+ 812,
+ 815,
+ 818,
+ 822,
+ 825,
+ 828,
+ 832,
+ 835,
+ 838,
+ 842,
+ 845,
+ 848,
+ 852,
+ 855,
+ 858,
+ 862,
+ 865,
+ 868,
+ 871,
+ 875,
+ 878,
+ 881,
+ 885,
+ 888,
+ 891,
+ 895,
+ 898,
+ 901,
+ 905,
+ 908,
+ 911,
+ 915,
+ 918,
+ 921,
+ 925,
+ 928,
+ 931,
+ 935,
+ 938,
+ 941,
+ 945,
+ 948,
+ 951,
+ 955,
+ 958,
+ 961,
+ 964,
+ 968,
+ 971,
+ 974,
+ 978,
+ 981,
+ 984,
+ 988,
+ 991,
+ 994,
+ 998,
+ 1001,
+ 1004,
+ 1008,
+ 1011,
+ 1014,
+ 1018,
+ 1021,
+ 1024,
+ 1028,
+ 1031,
+ 1034,
+ 1038,
+ 1041,
+ 1044,
+ 1048,
+ 1051,
+ 1054,
+ 1058,
+ 1061,
+ 1064,
+ 1067,
+ 1071,
+ 1074,
+ 1077,
+ 1081,
+ 1084,
+ 1087,
+ 1091,
+ 1094,
+ 1097,
+ 1101,
+ 1104,
+ 1107,
+ 1111,
+ 1114,
+ 1117,
+ 1121,
+ 1124,
+ 1127,
+ 1131,
+ 1134,
+ 1137,
+ 1141,
+ 1144,
+ 1147,
+ 1151,
+ 1154,
+ 1157,
+ 1160,
+ 1164,
+ 1167,
+ 1170,
+ 1174,
+ 1177,
+ 1180,
+ 1184,
+ 1187,
+ 1190,
+ 1194,
+ 1197,
+ 1200,
+ 1204,
+ 1207,
+ 1210,
+ 1214,
+ 1217,
+ 1220,
+ 1224,
+ 1227,
+ 1230,
+ 1234,
+ 1237,
+ 1240,
+ 1244,
+ 1247,
+ 1250,
+ 1253,
+ 1257,
+ 1260,
+ 1263,
+ 1267,
+ 1270,
+ 1273,
+ 1277,
+ 1280,
+ 1283,
+ 1287,
+ 1290,
+ 1293,
+ 1297,
+ 1300,
+ 1303,
+ 1307,
+ 1310,
+ 1313,
+ 1317,
+ 1320,
+ 1323,
+ 1327,
+ 1330,
+ 1333,
+ 1337,
+ 1340,
+ 1343,
+ 1347,
+ 1350,
+ 1353,
+ 1356,
+ 1360,
+ 1363,
+ 1366,
+ 1370,
+ 1373,
+ 1376,
+ 1380,
+ 1383,
+ 1386,
+ 1390,
+ 1393,
+ 1396,
+ 1400,
+ 1403,
+ 1406,
+ 1410,
+ 1413,
+ 1416,
+ 1420,
+ 1423,
+ 1426,
+ 1430,
+ 1433,
+ 1436,
+ 1440,
+ 1443,
+ 1446,
+ 1449,
+ 1453,
+ 1456,
+ 1459,
+ 1463,
+ 1466,
+ 1469,
+ 1473,
+ 1476,
+ 1479,
+ 1483,
+ 1486,
+ 1489,
+ 1493,
+ 1496,
+ 1499,
+ 1503,
+ 1506,
+ 1509,
+ 1513,
+ 1516,
+ 1519,
+ 1523,
+ 1526,
+ 1529,
+ 1533,
+ 1536,
+ 1539,
+ 1543,
+ 1546,
+ 1549,
+ 1552,
+ 1556,
+ 1559,
+ 1562,
+ 1566,
+ 1569,
+ 1572,
+ 1576,
+ 1579,
+ 1582,
+ 1586,
+ 1589,
+ 1592,
+ 1596,
+ 1599,
+ 1602,
+ 1606,
+ 1609,
+ 1612,
+ 1616,
+ 1619,
+ 1622,
+ 1626,
+ 1629,
+ 1632,
+ 1636,
+ 1639,
+ 1642,
+ 1645,
+ 1649,
+ 1652,
+ 1655,
+ 1659,
+ 1662,
+ 1665,
+ 1669,
+ 1672,
+ 1675,
+ 1679,
+ 1682,
+ 1685,
+ 1689,
+ 1692,
+ 1695,
+ 1699,
+ 1702,
+ 1705,
+ 1709,
+ 1712,
+ 1715,
+ 1719,
+ 1722,
+ 1725,
+ 1729,
+ 1732,
+ 1735,
+ 1738,
+ 1742,
+ 1745,
+ 1748,
+ 1752,
+ 1755,
+ 1758,
+ 1762,
+ 1765,
+ 1768,
+ 1772,
+ 1775,
+ 1778,
+ 1782,
+ 1785,
+ 1788,
+ 1792,
+ 1795,
+ 1798,
+ 1802,
+ 1805,
+ 1808,
+ 1812,
+ 1815,
+ 1818,
+ 1822,
+ 1825,
+ 1828,
+ 1832,
+ 1835,
+ 1838,
+ 1841,
+ 1845,
+ 1848,
+ 1851,
+ 1855,
+ 1858,
+ 1861,
+ 1865,
+ 1868,
+ 1871,
+ 1875,
+ 1878,
+ 1881,
+ 1885,
+ 1888,
+ 1891,
+ 1895,
+ 1898,
+ 1901,
+ 1905,
+ 1908,
+ 1911,
+ 1915,
+ 1918,
+ 1921,
+ 1925,
+ 1928,
+ 1931,
+ 1934,
+ 1938,
+ 1941,
+ 1944,
+ 1948,
+ 1951,
+ 1954,
+ 1958,
+ 1961,
+ 1964,
+ 1968,
+ 1971,
+ 1974,
+ 1978,
+ 1981,
+ 1984,
+ 1988,
+ 1991,
+ 1994,
+ 1998,
+ 2001,
+ 2004,
+ 2008,
+ 2011,
+ 2014,
+ 2018,
+ 2021,
+ 2024,
+ 2028,
+ 2031,
+ 2034,
+ 2037,
+ 2041,
+ 2044,
+ 2047,
+ 2051,
+ 2054,
+ 2057,
+ 2061,
+ 2064,
+ 2067,
+ 2071,
+ 2074,
+ 2077,
+ 2081,
+ 2084,
+ 2087,
+ 2091,
+ 2094,
+ 2097,
+ 2101,
+ 2104,
+ 2107,
+ 2111,
+ 2114,
+ 2117,
+ 2121,
+ 2124,
+ 2127,
+ 2130,
+ 2134,
+ 2137,
+ 2140,
+ 2144,
+ 2147,
+ 2150,
+ 2154,
+ 2157,
+ 2160,
+ 2164,
+ 2167,
+ 2170,
+ 2174,
+ 2177,
+ 2180,
+ 2184,
+ 2187,
+ 2190,
+ 2194,
+ 2197,
+ 2200,
+ 2204,
+ 2207,
+ 2210,
+ 2214,
+ 2217,
+ 2220,
+ 2223,
+ 2227,
+ 2230,
+ 2233,
+ 2237,
+ 2240,
+ 2243,
+ 2247,
+ 2250,
+ 2253,
+ 2257,
+ 2260,
+ 2263,
+ 2267,
+ 2270,
+ 2273,
+ 2277,
+ 2280,
+ 2283,
+ 2287,
+ 2290,
+ 2293,
+ 2297,
+ 2300,
+ 2303,
+ 2307,
+ 2310,
+ 2313,
+ 2317,
+ 2320,
+ 2323,
+ 2326,
+ 2330,
+ 2333,
+ 2336,
+ 2340,
+ 2343,
+ 2346,
+ 2350,
+ 2353,
+ 2356,
+ 2360,
+ 2363,
+ 2366,
+ 2370,
+ 2373,
+ 2376,
+ 2380,
+ 2383,
+ 2386,
+ 2390,
+ 2393,
+ 2396,
+ 2400,
+ 2403,
+ 2406,
+ 2410,
+ 2413,
+ 2416,
+ 2419,
+ 2423,
+ 2426,
+ 2429,
+ 2433,
+ 2436,
+ 2439,
+ 2443,
+ 2446,
+ 2449,
+ 2453,
+ 2456,
+ 2459,
+ 2463,
+ 2466,
+ 2469,
+ 2473,
+ 2476,
+ 2479,
+ 2483,
+ 2486,
+ 2489,
+ 2493,
+ 2496,
+ 2499,
+ 2503,
+ 2506,
+ 2509,
+ 2513,
+ 2516,
+ 2519,
+ 2522,
+ 2526,
+ 2529,
+ 2532,
+ 2536,
+ 2539,
+ 2542,
+ 2546,
+ 2549,
+ 2552,
+ 2556,
+ 2559,
+ 2562,
+ 2566,
+ 2569,
+ 2572,
+ 2576,
+ 2579,
+ 2582,
+ 2586,
+ 2589,
+ 2592,
+ 2596,
+ 2599,
+ 2602,
+ 2606,
+ 2609,
+ 2612,
+ 2615,
+ 2619,
+ 2622,
+ 2625,
+ 2629,
+ 2632,
+ 2635,
+ 2639,
+ 2642,
+ 2645,
+ 2649,
+ 2652,
+ 2655,
+ 2659,
+ 2662,
+ 2665,
+ 2669,
+ 2672,
+ 2675,
+ 2679,
+ 2682,
+ 2685,
+ 2689,
+ 2692,
+ 2695,
+ 2699,
+ 2702,
+ 2705,
+ 2708,
+ 2712,
+ 2715,
+ 2718,
+ 2722,
+ 2725,
+ 2728,
+ 2732,
+ 2735,
+ 2738,
+ 2742,
+ 2745,
+ 2748,
+ 2752,
+ 2755,
+ 2758,
+ 2762,
+ 2765,
+ 2768,
+ 2772,
+ 2775,
+ 2778,
+ 2782,
+ 2785,
+ 2788,
+ 2792,
+ 2795,
+ 2798,
+ 2802,
+ 2805,
+ 2808,
+ 2811,
+ 2815,
+ 2818,
+ 2821,
+ 2825,
+ 2828,
+ 2831,
+ 2835,
+ 2838,
+ 2841,
+ 2845,
+ 2848,
+ 2851,
+ 2855,
+ 2858,
+ 2861,
+ 2865,
+ 2868,
+ 2871,
+ 2875,
+ 2878,
+ 2881,
+ 2885,
+ 2888,
+ 2891,
+ 2895,
+ 2898,
+ 2901,
+ 2904,
+ 2908,
+ 2911,
+ 2914,
+ 2918,
+ 2921,
+ 2924,
+ 2928,
+ 2931,
+ 2934,
+ 2938,
+ 2941,
+ 2944,
+ 2948,
+ 2951,
+ 2954,
+ 2958,
+ 2961,
+ 2964,
+ 2968,
+ 2971,
+ 2974,
+ 2978,
+ 2981,
+ 2984,
+ 2988,
+ 2991,
+ 2994,
+ 2998,
+ 3001,
+ 3004,
+ 3007,
+ 3011,
+ 3014,
+ 3017,
+ 3021,
+ 3024,
+ 3027,
+ 3031,
+ 3034,
+ 3037,
+ 3041,
+ 3044,
+ 3047,
+ 3051,
+ 3054,
+ 3057,
+ 3061,
+ 3064,
+ 3067,
+ 3071,
+ 3074,
+ 3077,
+ 3081,
+ 3084,
+ 3087,
+ 3091,
+ 3094,
+ 3097,
+ 3100,
+ 3104,
+ 3107,
+ 3110,
+ 3114,
+ 3117,
+ 3120,
+ 3124,
+ 3127,
+ 3130,
+ 3134,
+ 3137,
+ 3140,
+ 3144,
+ 3147,
+ 3150,
+ 3154,
+ 3157,
+ 3160,
+ 3164,
+ 3167,
+ 3170,
+ 3174,
+ 3177,
+ 3180,
+ 3184,
+ 3187,
+ 3190,
+ 3193,
+ 3197,
+ 3200,
+ 3203,
+ 3207,
+ 3210,
+ 3213,
+ 3217,
+ 3220,
+ 3223,
+ 3227,
+ 3230,
+ 3233,
+ 3237,
+ 3240,
+ 3243,
+ 3247,
+ 3250,
+ 3253,
+ 3257,
+ 3260,
+ 3263,
+ 3267,
+ 3270,
+ 3273,
+ 3277,
+ 3280,
+ 3283,
+ 3287,
+ 3290,
+ 3293,
+ 3296,
+ 3300,
+ 3303,
+ 3306,
+ 3310,
+ 3313,
+ 3316,
+ 3320,
+ 3323,
+ 3326,
+ 3330,
+ 3333,
+ 3336,
+ 3340,
+ 3343,
+ 3346,
+ 3350,
+ 3353,
+ 3356,
+ 3360,
+ 3363,
+ 3366,
+ 3370,
+ 3373,
+ 3376,
+ 3380,
+ 3383,
+ 3386,
+ 3389,
+ 3393,
+ 3396,
+ 3399,
+ 3403,
+ 3406,
+ 3409,
+ 3413,
+ 3416,
+ 3419,
+ 3423,
+ 3426,
+ 3429,
+ 3433,
+ 3436,
+ 3439,
+ 3443,
+ 3446,
+ 3449,
+ 3453,
+ 3456,
+ 3459,
+ 3463,
+ 3466,
+ 3469,
+ 3473,
+ 3476,
+ 3479,
+ 3483,
+ 3486,
+ 3489,
+ 3492,
+ 3496,
+ 3499,
+ 3502,
+ 3506,
+ 3509,
+ 3512,
+ 3516,
+ 3519,
+ 3522,
+ 3526,
+ 3529,
+ 3532,
+ 3536,
+ 3539,
+ 3542,
+ 3546,
+ 3549,
+ 3552,
+ 3556,
+ 3559,
+ 3562,
+ 3566,
+ 3569,
+ 3572,
+ 3576,
+ 3579,
+ 3582,
+ 3585,
+ 3589,
+ 3592,
+ 3595,
+ 3599,
+ 3602,
+ 3605,
+ 3609,
+ 3612,
+ 3615,
+ 3619,
+ 3622,
+ 3625,
+ 3629,
+ 3632,
+ 3635,
+ 3639,
+ 3642,
+ 3645,
+ 3649,
+ 3652,
+ 3655,
+ 3659,
+ 3662,
+ 3665,
+ 3669,
+ 3672,
+ 3675,
+ 3679,
+ 3682,
+ 3685,
+ 3688,
+ 3692,
+ 3695,
+ 3698,
+ 3702,
+ 3705,
+ 3708,
+ 3712,
+ 3715,
+ 3718,
+ 3722,
+ 3725,
+ 3728,
+ 3732,
+ 3735,
+ 3738,
+ 3742,
+ 3745,
+ 3748,
+ 3752,
+ 3755,
+ 3758,
+ 3762,
+ 3765,
+ 3768,
+ 3772,
+ 3775,
+ 3778,
+ 3781,
+ 3785,
+ 3788,
+ 3791,
+ 3795,
+ 3798,
+ 3801,
+ 3805,
+ 3808,
+ 3811,
+ 3815,
+ 3818,
+ 3821,
+ 3825,
+ 3828,
+ 3831,
+ 3835,
+ 3838,
+ 3841,
+ 3845,
+ 3848,
+ 3851,
+ 3855,
+ 3858,
+ 3861,
+ 3865,
+ 3868,
+ 3871,
+ 3874,
+ 3878,
+ 3881,
+ 3884,
+ 3888,
+ 3891,
+ 3894,
+ 3898,
+ 3901,
+ 3904,
+ 3908,
+ 3911,
+ 3914,
+ 3918,
+ 3921,
+ 3924,
+ 3928,
+ 3931,
+ 3934,
+ 3938,
+ 3941,
+ 3944,
+ 3948,
+ 3951,
+ 3954,
+ 3958,
+ 3961,
+ 3964,
+ 3968,
+ 3971,
+ 3974,
+ 3977,
+ 3981,
+ 3984,
+ 3987,
+ 3991,
+ 3994,
+ 3997,
+ 4001,
+ 4004,
+ 4007,
+ 4011,
+ 4014,
+ 4017,
+ 4021,
+ 4024,
+ 4027,
+ 4031,
+ 4034,
+ 4037,
+ 4041,
+ 4044,
+ 4047,
+ 4051,
+ 4054,
+ 4057,
+ 4061,
+ 4064,
+ 4067,
+ 4070,
+ 4074,
+ 4077,
+ 4080,
+ 4084,
+ 4087,
+ 4090,
+ 4094,
+ 4097,
+ 4100,
+ 4104,
+ 4107,
+ 4110,
+ 4114,
+ 4117,
+ 4120,
+ 4124,
+ 4127,
+ 4130,
+ 4134,
+ 4137,
+ 4140,
+ 4144,
+ 4147,
+ 4150,
+ 4154,
+ 4157,
+ 4160,
+ 4164,
+ 4167,
+ 4170,
+ 4173,
+ 4177,
+ 4180,
+ 4183,
+ 4187,
+ 4190,
+ 4193,
+ 4197,
+ 4200,
+ 4203,
+ 4207,
+ 4210,
+ 4213,
+ 4217,
+ 4220,
+ 4223,
+ 4227,
+ 4230,
+ 4233,
+ 4237,
+ 4240,
+ 4243,
+ 4247,
+ 4250,
+ 4253,
+ 4257,
+ 4260,
+ 4263,
+ 4266,
+ 4270,
+ 4273,
+ 4276,
+ 4280,
+ 4283,
+ 4286,
+ 4290,
+ 4293,
+ 4296,
+ 4300,
+ 4303,
+ 4306,
+ 4310,
+ 4313,
+ 4316,
+ 4320,
+ 4323,
+ 4326,
+ 4330,
+ 4333,
+ 4336,
+ 4340,
+ 4343,
+ 4346,
+ 4350,
+ 4353,
+ 4356,
+ 4359,
+ 4363,
+ 4366,
+ 4369,
+ 4373,
+ 4376,
+ 4379,
+ 4383,
+ 4386,
+ 4389,
+ 4393,
+ 4396,
+ 4399,
+ 4403,
+ 4406,
+ 4409,
+ 4413,
+ 4416,
+ 4419,
+ 4423,
+ 4426,
+ 4429,
+ 4433,
+ 4436,
+ 4439,
+ 4443,
+ 4446,
+ 4449,
+ 4453,
+ 4456,
+ 4459,
+ 4462,
+ 4466,
+ 4469,
+ 4472,
+ 4476,
+ 4479,
+ 4482,
+ 4486,
+ 4489,
+ 4492,
+ 4496,
+ 4499,
+ 4502,
+ 4506,
+ 4509,
+ 4512,
+ 4516,
+ 4519,
+ 4522,
+ 4526,
+ 4529,
+ 4532,
+ 4536,
+ 4539,
+ 4542,
+ 4546,
+ 4549,
+ 4552,
+ 4555,
+ 4559,
+ 4562,
+ 4565,
+ 4569,
+ 4572,
+ 4575,
+ 4579,
+ 4582,
+ 4585,
+ 4589,
+ 4592,
+ 4595,
+ 4599,
+ 4602,
+ 4605,
+ 4609,
+ 4612,
+ 4615,
+ 4619,
+ 4622,
+ 4625,
+ 4629,
+ 4632,
+ 4635,
+ 4639,
+ 4642,
+ 4645,
+ 4649,
+ 4652,
+ 4655,
+ 4658,
+ 4662,
+ 4665,
+ 4668,
+ 4672,
+ 4675,
+ 4678,
+ 4682,
+ 4685,
+ 4688,
+ 4692,
+ 4695,
+ 4698,
+ 4702,
+ 4705,
+ 4708,
+ 4712,
+ 4715,
+ 4718,
+ 4722,
+ 4725,
+ 4728,
+ 4732,
+ 4735,
+ 4738,
+ 4742,
+ 4745,
+ 4748,
+ 4751,
+ 4755,
+ 4758,
+ 4761,
+ 4765,
+ 4768,
+ 4771,
+ 4775,
+ 4778,
+ 4781,
+ 4785,
+ 4788,
+ 4791,
+ 4795,
+ 4798,
+ 4801,
+ 4805,
+ 4808,
+ 4811,
+ 4815,
+ 4818,
+ 4821,
+ 4825,
+ 4828,
+ 4831,
+ 4835,
+ 4838,
+ 4841,
+ 4844,
+ 4848,
+ 4851,
+ 4854,
+ 4858,
+ 4861,
+ 4864,
+ 4868,
+ 4871,
+ 4874,
+ 4878,
+ 4881,
+ 4884,
+ 4888,
+ 4891,
+ 4894,
+ 4898,
+ 4901,
+ 4904,
+ 4908,
+ 4911,
+ 4914,
+ 4918,
+ 4921,
+ 4924,
+ 4928,
+ 4931,
+ 4934,
+ 4938,
+ 4941,
+ 4944,
+ 4947,
+ 4951,
+ 4954,
+ 4957,
+ 4961,
+ 4964,
+ 4967,
+ 4971,
+ 4974,
+ 4977,
+ 4981,
+ 4984,
+ 4987,
+ 4991,
+ 4994,
+ 4997,
+ 5001,
+ 5004,
+ 5007,
+ 5011,
+ 5014,
+ 5017,
+ 5021,
+ 5024,
+ 5027,
+ 5031,
+ 5034,
+ 5037,
+ 5040,
+ 5044,
+ 5047,
+ 5050,
+ 5054,
+ 5057,
+ 5060,
+ 5064,
+ 5067,
+ 5070,
+ 5074,
+ 5077,
+ 5080,
+ 5084,
+ 5087,
+ 5090,
+ 5094,
+ 5097,
+ 5100,
+ 5104,
+ 5107,
+ 5110,
+ 5114,
+ 5117,
+ 5120,
+ 5124,
+ 5127,
+ 5130,
+ 5134,
+ 5137,
+ 5140,
+ 5143,
+ 5147,
+ 5150,
+ 5153,
+ 5157,
+ 5160,
+ 5163,
+ 5167,
+ 5170,
+ 5173,
+ 5177,
+ 5180,
+ 5183,
+ 5187,
+ 5190,
+ 5193,
+ 5197,
+ 5200,
+ 5203,
+ 5207,
+ 5210,
+ 5213,
+ 5217,
+ 5220,
+ 5223,
+ 5227,
+ 5230,
+ 5233,
+ 5236,
+ 5240,
+ 5243,
+ 5246,
+ 5250,
+ 5253,
+ 5256,
+ 5260,
+ 5263,
+ 5266,
+ 5270,
+ 5273,
+ 5276,
+ 5280,
+ 5283,
+ 5286,
+ 5290,
+ 5293,
+ 5296,
+ 5300,
+ 5303,
+ 5306,
+ 5310,
+ 5313,
+ 5316,
+ 5320,
+ 5323,
+ 5326,
+ 5329,
+ 5333,
+ 5336,
+ 5339,
+ 5343,
+ 5346,
+ 5349,
+ 5353,
+ 5356,
+ 5359,
+ 5363,
+ 5366,
+ 5369,
+ 5373,
+ 5376,
+ 5379,
+ 5383,
+ 5386,
+ 5389,
+ 5393,
+ 5396,
+ 5399,
+ 5403,
+ 5406,
+ 5409,
+ 5413,
+ 5416,
+ 5419,
+ 5423,
+ 5426,
+ 5429,
+ 5432,
+ 5436,
+ 5439,
+ 5442,
+ 5446,
+ 5449,
+ 5452,
+ 5456,
+ 5459,
+ 5462,
+ 5466,
+ 5469,
+ 5472,
+ 5476,
+ 5479,
+ 5482,
+ 5486,
+ 5489,
+ 5492,
+ 5496,
+ 5499,
+ 5502,
+ 5506,
+ 5509,
+ 5512,
+ 5516,
+ 5519,
+ 5522,
+ 5525,
+ 5529,
+ 5532,
+ 5535,
+ 5539,
+ 5542,
+ 5545,
+ 5549,
+ 5552,
+ 5555,
+ 5559,
+ 5562,
+ 5565,
+ 5569,
+ 5572,
+ 5575,
+ 5579,
+ 5582,
+ 5585,
+ 5589,
+ 5592,
+ 5595,
+ 5599,
+ 5602,
+ 5605,
+ 5609,
+ 5612,
+ 5615,
+ 5619,
+ 5622,
+ 5625,
+ 5628,
+ 5632,
+ 5635,
+ 5638,
+ 5642,
+ 5645,
+ 5648,
+ 5652,
+ 5655,
+ 5658,
+ 5662,
+ 5665,
+ 5668,
+ 5672,
+ 5675,
+ 5678,
+ 5682,
+ 5685,
+ 5688,
+ 5692,
+ 5695,
+ 5698,
+ 5702,
+ 5705,
+ 5708,
+ 5712,
+ 5715,
+ 5718,
+ 5721,
+ 5725,
+ 5728,
+ 5731,
+ 5735,
+ 5738,
+ 5741,
+ 5745,
+ 5748,
+ 5751,
+ 5755,
+ 5758,
+ 5761,
+ 5765,
+ 5768,
+ 5771,
+ 5775,
+ 5778,
+ 5781,
+ 5785,
+ 5788,
+ 5791,
+ 5795,
+ 5798,
+ 5801,
+ 5805,
+ 5808,
+ 5811,
+ 5815,
+ 5818,
+ 5821,
+ 5824,
+ 5828,
+ 5831,
+ 5834,
+ 5838,
+ 5841,
+ 5844,
+ 5848,
+ 5851,
+ 5854,
+ 5858,
+ 5861,
+ 5864,
+ 5868,
+ 5871,
+ 5874,
+ 5878,
+ 5881,
+ 5884,
+ 5888,
+ 5891,
+ 5894,
+ 5898,
+ 5901,
+ 5904,
+ 5908,
+ 5911,
+ 5914,
+ 5917,
+ 5921,
+ 5924,
+ 5927,
+ 5931,
+ 5934,
+ 5937,
+ 5941,
+ 5944,
+ 5947,
+ 5951,
+ 5954,
+ 5957,
+ 5961,
+ 5964,
+ 5967,
+ 5971,
+ 5974,
+ 5977,
+ 5981,
+ 5984,
+ 5987,
+ 5991,
+ 5994,
+ 5997,
+ 6001,
+ 6004,
+ 6007,
+ 6010,
+ 6014,
+ 6017,
+ 6020,
+ 6024,
+ 6027,
+ 6030,
+ 6034,
+ 6037,
+ 6040,
+ 6044,
+ 6047,
+ 6050,
+ 6054,
+ 6057,
+ 6060,
+ 6064,
+ 6067,
+ 6070,
+ 6074,
+ 6077,
+ 6080,
+ 6084,
+ 6087,
+ 6090,
+ 6094,
+ 6097,
+ 6100,
+ 6104,
+ 6107,
+ 6110,
+ 6113,
+ 6117,
+ 6120,
+ 6123,
+ 6127,
+ 6130,
+ 6133,
+ 6137,
+ 6140,
+ 6143,
+ 6147,
+ 6150,
+ 6153,
+ 6157,
+ 6160,
+ 6163,
+ 6167,
+ 6170,
+ 6173,
+ 6177,
+ 6180,
+ 6183,
+ 6187,
+ 6190,
+ 6193,
+ 6197,
+ 6200,
+ 6203,
+ 6206,
+ 6210,
+ 6213,
+ 6216,
+ 6220,
+ 6223,
+ 6226,
+ 6230,
+ 6233,
+ 6236,
+ 6240,
+ 6243,
+ 6246,
+ 6250,
+ 6253,
+ 6256,
+ 6260,
+ 6263,
+ 6266,
+ 6270,
+ 6273,
+ 6276,
+ 6280,
+ 6283,
+ 6286,
+ 6290,
+ 6293,
+ 6296,
+ 6300,
+ 6303,
+ 6306,
+ 6309,
+ 6313,
+ 6316,
+ 6319,
+ 6323,
+ 6326,
+ 6329,
+ 6333,
+ 6336,
+ 6339,
+ 6343,
+ 6346,
+ 6349,
+ 6353,
+ 6356,
+ 6359,
+ 6363,
+ 6366,
+ 6369,
+ 6373,
+ 6376,
+ 6379,
+ 6383,
+ 6386,
+ 6389,
+ 6393,
+ 6396,
+ 6399,
+ 6402,
+ 6406,
+ 6409,
+ 6412,
+ 6416,
+ 6419,
+ 6422,
+ 6426,
+ 6429,
+ 6432,
+ 6436,
+ 6439,
+ 6442,
+ 6446,
+ 6449,
+ 6452,
+ 6456,
+ 6459,
+ 6462,
+ 6466,
+ 6469,
+ 6472,
+ 6476,
+ 6479,
+ 6482,
+ 6486,
+ 6489,
+ 6492,
+ 6495,
+ 6499,
+ 6502,
+ 6505,
+ 6509,
+ 6512,
+ 6515,
+ 6519,
+ 6522,
+ 6525,
+ 6529,
+ 6532,
+ 6535,
+ 6539,
+ 6542,
+ 6545,
+ 6549,
+ 6552,
+ 6555,
+ 6559,
+ 6562,
+ 6565,
+ 6569,
+ 6572,
+ 6575,
+ 6579,
+ 6582,
+ 6585,
+ 6589,
+ 6592,
+ 6595,
+ 6598,
+ 6602,
+ 6605,
+ 6608,
+ 6612,
+ 6615,
+ 6618,
+ 6622,
+ 6625,
+ 6628,
+ 6632,
+ 6635,
+ 6638,
+ 6642,
+ 6645,
+ 6648,
+ 6652,
+ 6655,
+ 6658,
+ 6662,
+ 6665,
+ 6668,
+ 6672,
+ 6675,
+ 6678,
+ 6682,
+ 6685,
+ 6688,
+ 6691,
+ 6695,
+ 6698,
+ 6701,
+ 6705,
+ 6708,
+ 6711,
+ 6715,
+ 6718,
+ 6721,
+ 6725,
+ 6728,
+ 6731,
+ 6735,
+ 6738,
+ 6741,
+ 6745,
+ 6748,
+ 6751,
+ 6755,
+ 6758,
+ 6761,
+ 6765,
+ 6768,
+ 6771,
+ 6775,
+ 6778,
+ 6781,
+ 6785,
+ 6788,
+ 6791,
+ 6794,
+ 6798,
+ 6801,
+ 6804,
+ 6808,
+ 6811,
+ 6814,
+ 6818,
+ 6821,
+ 6824,
+ 6828,
+ 6831,
+ 6834,
+ 6838,
+ 6841,
+ 6844,
+ 6848,
+ 6851,
+ 6854,
+ 6858,
+ 6861,
+ 6864,
+ 6868,
+ 6871,
+ 6874,
+ 6878,
+ 6881,
+ 6884,
+ 6887,
+ 6891,
+ 6894,
+ 6897,
+ 6901,
+ 6904,
+ 6907,
+ 6911,
+ 6914,
+ 6917,
+ 6921,
+ 6924,
+ 6927,
+ 6931,
+ 6934,
+ 6937,
+ 6941,
+ 6944,
+ 6947,
+ 6951,
+ 6954,
+ 6957,
+ 6961,
+ 6964,
+ 6967,
+ 6971,
+ 6974,
+ 6977,
+ 6980,
+ 6984,
+ 6987,
+ 6990,
+ 6994,
+ 6997,
+ 7000,
+ 7004,
+ 7007,
+ 7010,
+ 7014,
+ 7017,
+ 7020,
+ 7024,
+ 7027,
+ 7030,
+ 7034,
+ 7037,
+ 7040,
+ 7044,
+ 7047,
+ 7050,
+ 7054,
+ 7057,
+ 7060,
+ 7064,
+ 7067,
+ 7070,
+ 7074,
+ 7077,
+ 7080,
+ 7083,
+ 7087,
+ 7090,
+ 7093,
+ 7097,
+ 7100,
+ 7103,
+ 7107,
+ 7110,
+ 7113,
+ 7117,
+ 7120,
+ 7123,
+ 7127,
+ 7130,
+ 7133,
+ 7137,
+ 7140,
+ 7143,
+ 7147,
+ 7150,
+ 7153,
+ 7157,
+ 7160,
+ 7163,
+ 7167,
+ 7170,
+ 7173,
+ 7176,
+ 7180,
+ 7183,
+ 7186,
+ 7190,
+ 7193,
+ 7196,
+ 7200,
+ 7203,
+ 7206,
+ 7210,
+ 7213,
+ 7216,
+ 7220,
+ 7223,
+ 7226,
+ 7230,
+ 7233,
+ 7236,
+ 7240,
+ 7243,
+ 7246,
+ 7250,
+ 7253,
+ 7256,
+ 7260,
+ 7263,
+ 7266,
+ 7270,
+ 7273,
+ 7276,
+ 7279,
+ 7283,
+ 7286,
+ 7289,
+ 7293,
+ 7296,
+ 7299,
+ 7303,
+ 7306,
+ 7309,
+ 7313,
+ 7316,
+ 7319,
+ 7323,
+ 7326,
+ 7329,
+ 7333,
+ 7336,
+ 7339,
+ 7343,
+ 7346,
+ 7349,
+ 7353,
+ 7356,
+ 7359,
+ 7363,
+ 7366,
+ 7369,
+ 7372,
+ 7376,
+ 7379,
+ 7382,
+ 7386,
+ 7389,
+ 7392,
+ 7396,
+ 7399,
+ 7402,
+ 7406,
+ 7409,
+ 7412,
+ 7416,
+ 7419,
+ 7422,
+ 7426,
+ 7429,
+ 7432,
+ 7436,
+ 7439,
+ 7442,
+ 7446,
+ 7449,
+ 7452,
+ 7456,
+ 7459,
+ 7462,
+ 7465,
+ 7469,
+ 7472,
+ 7475,
+ 7479,
+ 7482,
+ 7485,
+ 7489,
+ 7492,
+ 7495,
+ 7499,
+ 7502,
+ 7505,
+ 7509,
+ 7512,
+ 7515,
+ 7519,
+ 7522,
+ 7525,
+ 7529,
+ 7532,
+ 7535,
+ 7539,
+ 7542,
+ 7545,
+ 7549,
+ 7552,
+ 7555,
+ 7559,
+ 7562,
+ 7565,
+ 7568,
+ 7572,
+ 7575,
+ 7578,
+ 7582,
+ 7585,
+ 7588,
+ 7592,
+ 7595,
+ 7598,
+ 7602,
+ 7605,
+ 7608,
+ 7612,
+ 7615,
+ 7618,
+ 7622,
+ 7625,
+ 7628,
+ 7632,
+ 7635,
+ 7638,
+ 7642,
+ 7645,
+ 7648,
+ 7652,
+ 7655,
+ 7658,
+ 7661,
+ 7665,
+ 7668,
+ 7671,
+ 7675,
+ 7678,
+ 7681,
+ 7685,
+ 7688,
+ 7691,
+ 7695,
+ 7698,
+ 7701,
+ 7705,
+ 7708,
+ 7711,
+ 7715,
+ 7718,
+ 7721,
+ 7725,
+ 7728,
+ 7731,
+ 7735,
+ 7738,
+ 7741,
+ 7745,
+ 7748,
+ 7751,
+ 7755,
+ 7758,
+ 7761,
+ 7764,
+ 7768,
+ 7771,
+ 7774,
+ 7778,
+ 7781,
+ 7784,
+ 7788,
+ 7791,
+ 7794,
+ 7798,
+ 7801,
+ 7804,
+ 7808,
+ 7811,
+ 7814,
+ 7818,
+ 7821,
+ 7824,
+ 7828,
+ 7831,
+ 7834,
+ 7838,
+ 7841,
+ 7844,
+ 7848,
+ 7851,
+ 7854,
+ 7857,
+ 7861,
+ 7864,
+ 7867,
+ 7871,
+ 7874,
+ 7877,
+ 7881,
+ 7884,
+ 7887,
+ 7891,
+ 7894,
+ 7897,
+ 7901,
+ 7904,
+ 7907,
+ 7911,
+ 7914,
+ 7917,
+ 7921,
+ 7924,
+ 7927,
+ 7931,
+ 7934,
+ 7937,
+ 7941,
+ 7944,
+ 7947,
+ 7951,
+ 7954,
+ 7957,
+ 7960,
+ 7964,
+ 7967,
+ 7970,
+ 7974,
+ 7977,
+ 7980,
+ 7984,
+ 7987,
+ 7990,
+ 7994,
+ 7997,
+ 8000,
+ 8004,
+ 8007,
+ 8010,
+ 8014,
+ 8017,
+ 8020,
+ 8024,
+ 8027,
+ 8030,
+ 8034,
+ 8037,
+ 8040,
+ 8044,
+ 8047,
+ 8050,
+ 8053,
+ 8057,
+ 8060,
+ 8063,
+ 8067,
+ 8070,
+ 8073,
+ 8077,
+ 8080,
+ 8083,
+ 8087,
+ 8090,
+ 8093,
+ 8097,
+ 8100,
+ 8103,
+ 8107,
+ 8110,
+ 8113,
+ 8117,
+ 8120,
+ 8123,
+ 8127,
+ 8130,
+ 8133,
+ 8137,
+ 8140,
+ 8143,
+ 8146,
+ 8150,
+ 8153,
+ 8156,
+ 8160,
+ 8163,
+ 8166,
+ 8170,
+ 8173,
+ 8176,
+ 8180,
+ 8183,
+ 8186,
+ 8190,
+ 8193,
+ 8196,
+ 8200,
+ 8203,
+ 8206,
+ 8210,
+ 8213,
+ 8216,
+ 8220,
+ 8223,
+ 8226,
+ 8230,
+ 8233,
+ 8236,
+ 8240,
+ 8243,
+ 8246,
+ 8249,
+ 8253,
+ 8256,
+ 8259,
+ 8263,
+ 8266,
+ 8269,
+ 8273,
+ 8276,
+ 8279,
+ 8283,
+ 8286,
+ 8289,
+ 8293,
+ 8296,
+ 8299,
+ 8303,
+ 8306,
+ 8309,
+ 8313,
+ 8316,
+ 8319,
+ 8323,
+ 8326,
+ 8329,
+ 8333,
+ 8336,
+ 8339,
+ 8342,
+ 8346,
+ 8349,
+ 8352,
+ 8356,
+ 8359,
+ 8362,
+ 8366,
+ 8369,
+ 8372,
+ 8376,
+ 8379,
+ 8382,
+ 8386,
+ 8389,
+ 8392,
+ 8396,
+ 8399,
+ 8402,
+ 8406,
+ 8409,
+ 8412,
+ 8416,
+ 8419,
+ 8422,
+ 8426,
+ 8429,
+ 8432,
+ 8436,
+ 8439,
+ 8442,
+ 8445,
+ 8449,
+ 8452,
+ 8455,
+ 8459,
+ 8462,
+ 8465,
+ 8469,
+ 8472,
+ 8475,
+ 8479,
+ 8482,
+ 8485,
+ 8489,
+ 8492,
+ 8495,
+ 8499,
+ 8502,
+ 8505,
+ 8509,
+ 8512,
+ 8515,
+ 8519,
+ 8522,
+ 8525,
+ 8529,
+ 8532,
+ 8535,
+ 8538,
+ 8542,
+ 8545,
+ 8548,
+ 8552,
+ 8555,
+ 8558,
+ 8562,
+ 8565,
+ 8568,
+ 8572,
+ 8575,
+ 8578,
+ 8582,
+ 8585,
+ 8588,
+ 8592,
+ 8595,
+ 8598,
+ 8602,
+ 8605,
+ 8608,
+ 8612,
+ 8615,
+ 8618,
+ 8622,
+ 8625,
+ 8628,
+ 8631,
+ 8635,
+ 8638,
+ 8641,
+ 8645,
+ 8648,
+ 8651,
+ 8655,
+ 8658,
+ 8661,
+ 8665,
+ 8668,
+ 8671,
+ 8675,
+ 8678,
+ 8681,
+ 8685,
+ 8688,
+ 8691,
+ 8695,
+ 8698,
+ 8701,
+ 8705,
+ 8708,
+ 8711,
+ 8715,
+ 8718,
+ 8721,
+ 8725,
+ 8728,
+ 8731,
+ 8734,
+ 8738,
+ 8741,
+ 8744,
+ 8748,
+ 8751,
+ 8754,
+ 8758,
+ 8761,
+ 8764,
+ 8768,
+ 8771,
+ 8774,
+ 8778,
+ 8781,
+ 8784,
+ 8788,
+ 8791,
+ 8794,
+ 8798,
+ 8801,
+ 8804,
+ 8808,
+ 8811,
+ 8814,
+ 8818,
+ 8821,
+ 8824,
+ 8827,
+ 8831,
+ 8834,
+ 8837,
+ 8841,
+ 8844,
+ 8847,
+ 8851,
+ 8854,
+ 8857,
+ 8861,
+ 8864,
+ 8867,
+ 8871,
+ 8874,
+ 8877,
+ 8881,
+ 8884,
+ 8887,
+ 8891,
+ 8894,
+ 8897,
+ 8901,
+ 8904,
+ 8907,
+ 8911,
+ 8914,
+ 8917,
+ 8921,
+ 8924,
+ 8927,
+ 8930,
+ 8934,
+ 8937,
+ 8940,
+ 8944,
+ 8947,
+ 8950,
+ 8954,
+ 8957,
+ 8960,
+ 8964,
+ 8967,
+ 8970,
+ 8974,
+ 8977,
+ 8980,
+ 8984,
+ 8987,
+ 8990,
+ 8994,
+ 8997,
+ 9000,
+ 9004,
+ 9007,
+ 9010,
+ 9014,
+ 9017,
+ 9020,
+ 9023,
+ 9027,
+ 9030,
+ 9033,
+ 9037,
+ 9040,
+ 9043,
+ 9047,
+ 9050,
+ 9053,
+ 9057,
+ 9060,
+ 9063,
+ 9067,
+ 9070,
+ 9073,
+ 9077,
+ 9080,
+ 9083,
+ 9087,
+ 9090,
+ 9093,
+ 9097,
+ 9100,
+ 9103,
+ 9107,
+ 9110,
+ 9113,
+ 9116,
+ 9120,
+ 9123,
+ 9126,
+ 9130,
+ 9133,
+ 9136,
+ 9140,
+ 9143,
+ 9146,
+ 9150,
+ 9153,
+ 9156,
+ 9160,
+ 9163,
+ 9166,
+ 9170,
+ 9173,
+ 9176,
+ 9180,
+ 9183,
+ 9186,
+ 9190,
+ 9193,
+ 9196,
+ 9200,
+ 9203,
+ 9206,
+ 9210,
+ 9213,
+ 9216,
+ 9219,
+ 9223,
+ 9226,
+ 9229,
+ 9233,
+ 9236,
+ 9239,
+ 9243,
+ 9246,
+ 9249,
+ 9253,
+ 9256,
+ 9259,
+ 9263,
+ 9266,
+ 9269,
+ 9273,
+ 9276,
+ 9279,
+ 9283,
+ 9286,
+ 9289,
+ 9293,
+ 9296,
+ 9299,
+ 9303,
+ 9306,
+ 9309,
+ 9312,
+ 9316,
+ 9319,
+ 9322,
+ 9326,
+ 9329,
+ 9332,
+ 9336,
+ 9339,
+ 9342,
+ 9346,
+ 9349,
+ 9352,
+ 9356,
+ 9359,
+ 9362,
+ 9366,
+ 9369,
+ 9372,
+ 9376,
+ 9379,
+ 9382,
+ 9386,
+ 9389,
+ 9392,
+ 9396,
+ 9399,
+ 9402,
+ 9406,
+ 9409,
+ 9412,
+ 9415,
+ 9419,
+ 9422,
+ 9425,
+ 9429,
+ 9432,
+ 9435,
+ 9439,
+ 9442,
+ 9445,
+ 9449,
+ 9452,
+ 9455,
+ 9459,
+ 9462,
+ 9465,
+ 9469,
+ 9472,
+ 9475,
+ 9479,
+ 9482,
+ 9485,
+ 9489,
+ 9492,
+ 9495,
+ 9499,
+ 9502,
+ 9505,
+ 9508,
+ 9512,
+ 9515,
+ 9518,
+ 9522,
+ 9525,
+ 9528,
+ 9532,
+ 9535,
+ 9538,
+ 9542,
+ 9545,
+ 9548,
+ 9552,
+ 9555,
+ 9558,
+ 9562,
+ 9565,
+ 9568,
+ 9572,
+ 9575,
+ 9578,
+ 9582,
+ 9585,
+ 9588,
+ 9592,
+ 9595,
+ 9598,
+ 9601,
+ 9605,
+ 9608,
+ 9611,
+ 9615,
+ 9618,
+ 9621,
+ 9625,
+ 9628,
+ 9631,
+ 9635,
+ 9638,
+ 9641,
+ 9645,
+ 9648,
+ 9651,
+ 9655,
+ 9658,
+ 9661,
+ 9665,
+ 9668,
+ 9671,
+ 9675,
+ 9678,
+ 9681,
+ 9685,
+ 9688,
+ 9691,
+ 9695,
+ 9698,
+ 9701,
+ 9704,
+ 9708,
+ 9711,
+ 9714,
+ 9718,
+ 9721,
+ 9724,
+ 9728,
+ 9731,
+ 9734,
+ 9738,
+ 9741,
+ 9744,
+ 9748,
+ 9751,
+ 9754,
+ 9758,
+ 9761,
+ 9764,
+ 9768,
+ 9771,
+ 9774,
+ 9778,
+ 9781,
+ 9784,
+ 9788,
+ 9791,
+ 9794,
+ 9797,
+ 9801,
+ 9804,
+ 9807,
+ 9811,
+ 9814,
+ 9817,
+ 9821,
+ 9824,
+ 9827,
+ 9831,
+ 9834,
+ 9837,
+ 9841,
+ 9844,
+ 9847,
+ 9851,
+ 9854,
+ 9857,
+ 9861,
+ 9864,
+ 9867,
+ 9871,
+ 9874,
+ 9877,
+ 9881,
+ 9884,
+ 9887,
+ 9891,
+ 9894,
+ 9897,
+ 9900,
+ 9904,
+ 9907,
+ 9910,
+ 9914,
+ 9917,
+ 9920,
+ 9924,
+ 9927,
+ 9930,
+ 9934,
+ 9937,
+ 9940,
+ 9944,
+ 9947,
+ 9950,
+ 9954,
+ 9957,
+ 9960,
+ 9964,
+ 9967,
+ 9970,
+ 9974,
+ 9977,
+ 9980,
+ 9984,
+ 9987,
+ 9990,
+ 9993,
+ 9997,
+ 10000,
+ 10003,
+ 10007,
+ 10010,
+ 10013,
+ 10017,
+ 10020,
+ 10023,
+ 10027,
+ 10030,
+ 10033,
+ 10037,
+ 10040,
+ 10043,
+ 10047,
+ 10050,
+ 10053,
+ 10057,
+ 10060,
+ 10063,
+ 10067,
+ 10070,
+ 10073,
+ 10077,
+ 10080,
+ 10083,
+ 10087,
+ 10090,
+ 10093,
+ 10096,
+ 10100,
+ 10103,
+ 10106,
+ 10110,
+ 10113,
+ 10116,
+ 10120,
+ 10123,
+ 10126,
+ 10130,
+ 10133,
+ 10136,
+ 10140,
+ 10143,
+ 10146,
+ 10150,
+ 10153,
+ 10156,
+ 10160,
+ 10163,
+ 10166,
+ 10170,
+ 10173,
+ 10176,
+ 10180,
+ 10183,
+ 10186,
+ 10189,
+ 10193,
+ 10196,
+ 10199,
+ 10203,
+ 10206,
+ 10209,
+ 10213,
+ 10216,
+ 10219,
+ 10223,
+ 10226,
+ 10229,
+ 10233,
+ 10236,
+ 10239,
+ 10243,
+ 10246,
+ 10249,
+ 10253,
+ 10256,
+ 10259,
+ 10263,
+ 10266,
+ 10269,
+ 10273,
+ 10276,
+ 10279,
+ 10282,
+ 10286,
+ 10289,
+ 10292,
+ 10296,
+ 10299,
+ 10302,
+ 10306,
+ 10309,
+ 10312,
+ 10316,
+ 10319,
+ 10322,
+ 10326,
+ 10329,
+ 10332,
+ 10336,
+ 10339,
+ 10342,
+ 10346,
+ 10349,
+ 10352,
+ 10356,
+ 10359,
+ 10362,
+ 10366,
+ 10369,
+ 10372,
+ 10376,
+ 10379,
+ 10382,
+ 10385,
+ 10389,
+ 10392,
+ 10395,
+ 10399,
+ 10402,
+ 10405,
+ 10409,
+ 10412,
+ 10415,
+ 10419,
+ 10422,
+ 10425,
+ 10429,
+ 10432,
+ 10435,
+ 10439,
+ 10442,
+ 10445,
+ 10449,
+ 10452,
+ 10455,
+ 10459,
+ 10462,
+ 10465,
+ 10469,
+ 10472,
+ 10475,
+ 10478,
+ 10482,
+ 10485,
+ 10488,
+ 10492,
+ 10495,
+ 10498,
+ 10502,
+ 10505,
+ 10508,
+ 10512,
+ 10515,
+ 10518,
+ 10522,
+ 10525,
+ 10528,
+ 10532,
+ 10535,
+ 10538,
+ 10542,
+ 10545,
+ 10548,
+ 10552,
+ 10555,
+ 10558,
+ 10562,
+ 10565,
+ 10568,
+ 10572,
+ 10575,
+ 10578,
+ 10581,
+ 10585,
+ 10588,
+ 10591,
+ 10595,
+ 10598,
+ 10601,
+ 10605,
+ 10608,
+ 10611,
+ 10615,
+ 10618,
+ 10621,
+ 10625,
+ 10628,
+ 10631,
+ 10635,
+ 10638,
+ 10641,
+ 10645,
+ 10648,
+ 10651,
+ 10655,
+ 10658,
+ 10661,
+ 10665,
+ 10668,
+ 10671,
+ 10674,
+ 10678,
+ 10681,
+ 10684,
+ 10688,
+ 10691,
+ 10694,
+ 10698,
+ 10701,
+ 10704,
+ 10708,
+ 10711,
+ 10714,
+ 10718,
+ 10721,
+ 10724,
+ 10728,
+ 10731,
+ 10734,
+ 10738,
+ 10741,
+ 10744,
+ 10748,
+ 10751,
+ 10754,
+ 10758,
+ 10761,
+ 10764,
+ 10767,
+ 10771,
+ 10774,
+ 10777,
+ 10781,
+ 10784,
+ 10787,
+ 10791,
+ 10794,
+ 10797,
+ 10801,
+ 10804,
+ 10807,
+ 10811,
+ 10814,
+ 10817,
+ 10821,
+ 10824,
+ 10827,
+ 10831,
+ 10834,
+ 10837,
+ 10841,
+ 10844,
+ 10847,
+ 10851,
+ 10854,
+ 10857,
+ 10861,
+ 10864,
+ 10867,
+ 10870,
+ 10874,
+ 10877,
+ 10880,
+ 10884,
+ 10887,
+ 10890,
+ 10894,
+ 10897,
+ 10900,
+ 10904,
+ 10907,
+ 10910,
+ 10914,
+ 10917,
+ 10920,
+ 10924,
+ 10927,
+ 10930,
+ 10934,
+ 10937,
+ 10940,
+ 10944,
+ 10947,
+ 10950,
+ 10954,
+ 10957,
+ 10960,
+ 10963,
+ 10967,
+ 10970,
+ 10973,
+ 10977,
+ 10980,
+ 10983,
+ 10987,
+ 10990,
+ 10993,
+ 10997,
+ 11000,
+ 11003,
+ 11007,
+ 11010,
+ 11013,
+ 11017,
+ 11020,
+ 11023,
+ 11027,
+ 11030,
+ 11033,
+ 11037,
+ 11040,
+ 11043,
+ 11047,
+ 11050,
+ 11053,
+ 11057,
+ 11060,
+ 11063,
+ 11066,
+ 11070,
+ 11073,
+ 11076,
+ 11080,
+ 11083,
+ 11086,
+ 11090,
+ 11093,
+ 11096,
+ 11100,
+ 11103,
+ 11106,
+ 11110,
+ 11113,
+ 11116,
+ 11120,
+ 11123,
+ 11126,
+ 11130,
+ 11133,
+ 11136,
+ 11140,
+ 11143,
+ 11146,
+ 11150,
+ 11153,
+ 11156,
+ 11159,
+ 11163,
+ 11166,
+ 11169,
+ 11173,
+ 11176,
+ 11179,
+ 11183,
+ 11186,
+ 11189,
+ 11193,
+ 11196,
+ 11199,
+ 11203,
+ 11206,
+ 11209,
+ 11213,
+ 11216,
+ 11219,
+ 11223,
+ 11226,
+ 11229,
+ 11233,
+ 11236,
+ 11239,
+ 11243,
+ 11246,
+ 11249,
+ 11252,
+ 11256,
+ 11259,
+ 11262,
+ 11266,
+ 11269,
+ 11272,
+ 11276,
+ 11279,
+ 11282,
+ 11286,
+ 11289,
+ 11292,
+ 11296,
+ 11299,
+ 11302,
+ 11306,
+ 11309,
+ 11312,
+ 11316,
+ 11319,
+ 11322,
+ 11326,
+ 11329,
+ 11332,
+ 11336,
+ 11339,
+ 11342,
+ 11346,
+ 11349,
+ 11352,
+ 11355,
+ 11359,
+ 11362,
+ 11365,
+ 11369,
+ 11372,
+ 11375,
+ 11379,
+ 11382,
+ 11385,
+ 11389,
+ 11392,
+ 11395,
+ 11399,
+ 11402,
+ 11405,
+ 11409,
+ 11412,
+ 11415,
+ 11419,
+ 11422,
+ 11425,
+ 11429,
+ 11432,
+ 11435,
+ 11439,
+ 11442,
+ 11445,
+ 11448,
+ 11452,
+ 11455,
+ 11458,
+ 11462,
+ 11465,
+ 11468,
+ 11472,
+ 11475,
+ 11478,
+ 11482,
+ 11485,
+ 11488,
+ 11492,
+ 11495,
+ 11498,
+ 11502,
+ 11505,
+ 11508,
+ 11512,
+ 11515,
+ 11518,
+ 11522,
+ 11525,
+ 11528,
+ 11532,
+ 11535,
+ 11538,
+ 11542,
+ 11545,
+ 11548,
+ 11551,
+ 11555,
+ 11558,
+ 11561,
+ 11565,
+ 11568,
+ 11571,
+ 11575,
+ 11578,
+ 11581,
+ 11585,
+ 11588,
+ 11591,
+ 11595,
+ 11598,
+ 11601,
+ 11605,
+ 11608,
+ 11611,
+ 11615,
+ 11618,
+ 11621,
+ 11625,
+ 11628,
+ 11631,
+ 11635,
+ 11638,
+ 11641,
+ 11644,
+ 11648,
+ 11651,
+ 11654,
+ 11658,
+ 11661,
+ 11664,
+ 11668,
+ 11671,
+ 11674,
+ 11678,
+ 11681,
+ 11684,
+ 11688,
+ 11691,
+ 11694,
+ 11698,
+ 11701,
+ 11704,
+ 11708,
+ 11711,
+ 11714,
+ 11718,
+ 11721,
+ 11724,
+ 11728,
+ 11731,
+ 11734,
+ 11737,
+ 11741,
+ 11744,
+ 11747,
+ 11751,
+ 11754,
+ 11757,
+ 11761,
+ 11764,
+ 11767,
+ 11771,
+ 11774,
+ 11777,
+ 11781,
+ 11784,
+ 11787,
+ 11791,
+ 11794,
+ 11797,
+ 11801,
+ 11804,
+ 11807,
+ 11811,
+ 11814,
+ 11817,
+ 11821,
+ 11824,
+ 11827,
+ 11831,
+ 11834,
+ 11837,
+ 11840,
+ 11844,
+ 11847,
+ 11850,
+ 11854,
+ 11857,
+ 11860,
+ 11864,
+ 11867,
+ 11870,
+ 11874,
+ 11877,
+ 11880,
+ 11884,
+ 11887,
+ 11890,
+ 11894,
+ 11897,
+ 11900,
+ 11904,
+ 11907,
+ 11910,
+ 11914,
+ 11917,
+ 11920,
+ 11924,
+ 11927,
+ 11930,
+ 11933,
+ 11937,
+ 11940,
+ 11943,
+ 11947,
+ 11950,
+ 11953,
+ 11957,
+ 11960,
+ 11963,
+ 11967,
+ 11970,
+ 11973,
+ 11977,
+ 11980,
+ 11983,
+ 11987,
+ 11990,
+ 11993,
+ 11997,
+ 12000,
+ 12003,
+ 12007,
+ 12010,
+ 12013,
+ 12017,
+ 12020,
+ 12023,
+ 12027,
+ 12030,
+ 12033,
+ 12036,
+ 12040,
+ 12043,
+ 12046,
+ 12050,
+ 12053,
+ 12056,
+ 12060,
+ 12063,
+ 12066,
+ 12070,
+ 12073,
+ 12076,
+ 12080,
+ 12083,
+ 12086,
+ 12090,
+ 12093,
+ 12096,
+ 12100,
+ 12103,
+ 12106,
+ 12110,
+ 12113,
+ 12116,
+ 12120,
+ 12123,
+ 12126,
+ 12129,
+ 12133,
+ 12136,
+ 12139,
+ 12143,
+ 12146,
+ 12149,
+ 12153,
+ 12156,
+ 12159,
+ 12163,
+ 12166,
+ 12169,
+ 12173,
+ 12176,
+ 12179,
+ 12183,
+ 12186,
+ 12189,
+ 12193,
+ 12196,
+ 12199,
+ 12203,
+ 12206,
+ 12209,
+ 12213,
+ 12216,
+ 12219,
+ 12223,
+ 12226,
+ 12229,
+ 12232,
+ 12236,
+ 12239,
+ 12242,
+ 12246,
+ 12249,
+ 12252,
+ 12256,
+ 12259,
+ 12262,
+ 12266,
+ 12269,
+ 12272,
+ 12276,
+ 12279,
+ 12282,
+ 12286,
+ 12289,
+ 12292,
+ 12296,
+ 12299,
+ 12302,
+ 12306,
+ 12309,
+ 12312,
+ 12316,
+ 12319,
+ 12322,
+ 12325,
+ 12329,
+ 12332,
+ 12335,
+ 12339,
+ 12342,
+ 12345,
+ 12349,
+ 12352,
+ 12355,
+ 12359,
+ 12362,
+ 12365,
+ 12369,
+ 12372,
+ 12375,
+ 12379,
+ 12382,
+ 12385,
+ 12389,
+ 12392,
+ 12395,
+ 12399,
+ 12402,
+ 12405,
+ 12409,
+ 12412,
+ 12415,
+ 12418,
+ 12422,
+ 12425,
+ 12428,
+ 12432,
+ 12435,
+ 12438,
+ 12442,
+ 12445,
+ 12448,
+ 12452,
+ 12455,
+ 12458,
+ 12462,
+ 12465,
+ 12468,
+ 12472,
+ 12475,
+ 12478,
+ 12482,
+ 12485,
+ 12488,
+ 12492,
+ 12495,
+ 12498,
+ 12502,
+ 12505,
+ 12508,
+ 12512,
+ 12515,
+ 12518,
+ 12521,
+ 12525,
+ 12528,
+ 12531,
+ 12535,
+ 12538,
+ 12541,
+ 12545,
+ 12548,
+ 12551,
+ 12555,
+ 12558,
+ 12561,
+ 12565,
+ 12568,
+ 12571,
+ 12575,
+ 12578,
+ 12581,
+ 12585,
+ 12588,
+ 12591,
+ 12595,
+ 12598,
+ 12601,
+ 12605,
+ 12608,
+ 12611,
+ 12614,
+ 12618,
+ 12621,
+ 12624,
+ 12628,
+ 12631,
+ 12634,
+ 12638,
+ 12641,
+ 12644,
+ 12648,
+ 12651,
+ 12654,
+ 12658,
+ 12661,
+ 12664,
+ 12668,
+ 12671,
+ 12674,
+ 12678,
+ 12681,
+ 12684,
+ 12688,
+ 12691,
+ 12694,
+ 12698,
+ 12701,
+ 12704,
+ 12708,
+ 12711,
+ 12714,
+ 12717,
+ 12721,
+ 12724,
+ 12727,
+ 12731,
+ 12734,
+ 12737,
+ 12741,
+ 12744,
+ 12747,
+ 12751,
+ 12754,
+ 12757,
+ 12761,
+ 12764,
+ 12767,
+ 12771,
+ 12774,
+ 12777,
+ 12781,
+ 12784,
+ 12787,
+ 12791,
+ 12794,
+ 12797,
+ 12801,
+ 12804,
+ 12807,
+ 12810,
+ 12814,
+ 12817,
+ 12820,
+ 12824,
+ 12827,
+ 12830,
+ 12834,
+ 12837,
+ 12840,
+ 12844,
+ 12847,
+ 12850,
+ 12854,
+ 12857,
+ 12860,
+ 12864,
+ 12867,
+ 12870,
+ 12874,
+ 12877,
+ 12880,
+ 12884,
+ 12887,
+ 12890,
+ 12894,
+ 12897,
+ 12900,
+ 12903,
+ 12907,
+ 12910,
+ 12913,
+ 12917,
+ 12920,
+ 12923,
+ 12927,
+ 12930,
+ 12933,
+ 12937,
+ 12940,
+ 12943,
+ 12947,
+ 12950,
+ 12953,
+ 12957,
+ 12960,
+ 12963,
+ 12967,
+ 12970,
+ 12973,
+ 12977,
+ 12980,
+ 12983,
+ 12987,
+ 12990,
+ 12993,
+ 12997,
+ 13000,
+ 13003,
+ 13006,
+ 13010,
+ 13013,
+ 13016,
+ 13020,
+ 13023,
+ 13026,
+ 13030,
+ 13033,
+ 13036,
+ 13040,
+ 13043,
+ 13046,
+ 13050,
+ 13053,
+ 13056,
+ 13060,
+ 13063,
+ 13066,
+ 13070,
+ 13073,
+ 13076,
+ 13080,
+ 13083,
+ 13086,
+ 13090,
+ 13093,
+ 13096,
+ 13099,
+ 13103,
+ 13106,
+ 13109,
+ 13113,
+ 13116,
+ 13119,
+ 13123,
+ 13126,
+ 13129,
+ 13133,
+ 13136,
+ 13139,
+ 13143,
+ 13146,
+ 13149,
+ 13153,
+ 13156,
+ 13159,
+ 13163,
+ 13166,
+ 13169,
+ 13173,
+ 13176,
+ 13179,
+ 13183,
+ 13186,
+ 13189,
+ 13193,
+ 13196,
+ 13199,
+ 13202,
+ 13206,
+ 13209,
+ 13212,
+ 13216,
+ 13219,
+ 13222,
+ 13226,
+ 13229,
+ 13232,
+ 13236,
+ 13239,
+ 13242,
+ 13246,
+ 13249,
+ 13252,
+ 13256,
+ 13259,
+ 13262,
+ 13266,
+ 13269,
+ 13272,
+ 13276,
+ 13279,
+ 13282,
+ 13286,
+ 13289,
+ 13292,
+ 13295,
+ 13299,
+ 13302,
+ 13305,
+ 13309,
+ 13312,
+ 13315,
+ 13319,
+ 13322,
+ 13325,
+ 13329,
+ 13332,
+ 13335,
+ 13339,
+ 13342,
+ 13345,
+ 13349,
+ 13352,
+ 13355,
+ 13359,
+ 13362,
+ 13365,
+ 13369,
+ 13372,
+ 13375,
+ 13379,
+ 13382,
+ 13385,
+ 13388,
+ 13392,
+ 13395,
+ 13398,
+ 13402,
+ 13405,
+ 13408,
+ 13412,
+ 13415,
+ 13418,
+ 13422,
+ 13425,
+ 13428,
+ 13432,
+ 13435,
+ 13438,
+ 13442,
+ 13445,
+ 13448,
+ 13452,
+ 13455,
+ 13458,
+ 13462,
+ 13465,
+ 13468,
+ 13472,
+ 13475,
+ 13478,
+ 13482,
+ 13485,
+ 13488,
+ 13491,
+ 13495,
+ 13498,
+ 13501,
+ 13505,
+ 13508,
+ 13511,
+ 13515,
+ 13518,
+ 13521,
+ 13525,
+ 13528,
+ 13531,
+ 13535,
+ 13538,
+ 13541,
+ 13545,
+ 13548,
+ 13551,
+ 13555,
+ 13558,
+ 13561,
+ 13565,
+ 13568,
+ 13571,
+ 13575,
+ 13578,
+ 13581,
+ 13584,
+ 13588,
+ 13591,
+ 13594,
+ 13598,
+ 13601,
+ 13604,
+ 13608,
+ 13611,
+ 13614,
+ 13618,
+ 13621,
+ 13624,
+ 13628,
+ 13631,
+ 13634,
+ 13638,
+ 13641,
+ 13644,
+ 13648,
+ 13651,
+ 13654,
+ 13658,
+ 13661,
+ 13664,
+ 13668,
+ 13671,
+ 13674,
+ 13678,
+ 13681,
+ 13684,
+ 13687,
+ 13691,
+ 13694,
+ 13697,
+ 13701,
+ 13704,
+ 13707,
+ 13711,
+ 13714,
+ 13717,
+ 13721,
+ 13724,
+ 13727,
+ 13731,
+ 13734,
+ 13737,
+ 13741,
+ 13744,
+ 13747,
+ 13751,
+ 13754,
+ 13757,
+ 13761,
+ 13764,
+ 13767,
+ 13771,
+ 13774,
+ 13777,
+ 13780,
+ 13784,
+ 13787,
+ 13790,
+ 13794,
+ 13797,
+ 13800,
+ 13804,
+ 13807,
+ 13810,
+ 13814,
+ 13817,
+ 13820,
+ 13824,
+ 13827,
+ 13830,
+ 13834,
+ 13837,
+ 13840,
+ 13844,
+ 13847,
+ 13850,
+ 13854,
+ 13857,
+ 13860,
+ 13864,
+ 13867,
+ 13870,
+ 13873,
+ 13877,
+ 13880,
+ 13883,
+ 13887,
+ 13890,
+ 13893,
+ 13897,
+ 13900,
+ 13903,
+ 13907,
+ 13910,
+ 13913,
+ 13917,
+ 13920,
+ 13923,
+ 13927,
+ 13930,
+ 13933,
+ 13937,
+ 13940,
+ 13943,
+ 13947,
+ 13950,
+ 13953,
+ 13957,
+ 13960,
+ 13963,
+ 13967,
+ 13970,
+ 13973,
+ 13976,
+ 13980,
+ 13983,
+ 13986,
+ 13990,
+ 13993,
+ 13996,
+ 14000,
+ 14003,
+ 14006,
+ 14010,
+ 14013,
+ 14016,
+ 14020,
+ 14023,
+ 14026,
+ 14030,
+ 14033,
+ 14036,
+ 14040,
+ 14043,
+ 14046,
+ 14050,
+ 14053,
+ 14056,
+ 14060,
+ 14063,
+ 14066,
+ 14069,
+ 14073,
+ 14076,
+ 14079,
+ 14083,
+ 14086,
+ 14089,
+ 14093,
+ 14096,
+ 14099,
+ 14103,
+ 14106,
+ 14109,
+ 14113,
+ 14116,
+ 14119,
+ 14123,
+ 14126,
+ 14129,
+ 14133,
+ 14136,
+ 14139,
+ 14143,
+ 14146,
+ 14149,
+ 14153,
+ 14156,
+ 14159,
+ 14163,
+ 14166,
+ 14169,
+ 14172,
+ 14176,
+ 14179,
+ 14182,
+ 14186,
+ 14189,
+ 14192,
+ 14196,
+ 14199,
+ 14202,
+ 14206,
+ 14209,
+ 14212,
+ 14216,
+ 14219,
+ 14222,
+ 14226,
+ 14229,
+ 14232,
+ 14236,
+ 14239,
+ 14242,
+ 14246,
+ 14249,
+ 14252,
+ 14256,
+ 14259,
+ 14262,
+ 14265,
+ 14269,
+ 14272,
+ 14275,
+ 14279,
+ 14282,
+ 14285,
+ 14289,
+ 14292,
+ 14295,
+ 14299,
+ 14302,
+ 14305,
+ 14309,
+ 14312,
+ 14315,
+ 14319,
+ 14322,
+ 14325,
+ 14329,
+ 14332,
+ 14335,
+ 14339,
+ 14342,
+ 14345,
+ 14349,
+ 14352,
+ 14355,
+ 14359,
+ 14362,
+ 14365,
+ 14368,
+ 14372,
+ 14375,
+ 14378,
+ 14382,
+ 14385,
+ 14388,
+ 14392,
+ 14395,
+ 14398,
+ 14402,
+ 14405,
+ 14408,
+ 14412,
+ 14415,
+ 14418,
+ 14422,
+ 14425,
+ 14428,
+ 14432,
+ 14435,
+ 14438,
+ 14442,
+ 14445,
+ 14448,
+ 14452,
+ 14455,
+ 14458,
+ 14461,
+ 14465,
+ 14468,
+ 14471,
+ 14475,
+ 14478,
+ 14481,
+ 14485,
+ 14488,
+ 14491,
+ 14495,
+ 14498,
+ 14501,
+ 14505,
+ 14508,
+ 14511,
+ 14515,
+ 14518,
+ 14521,
+ 14525,
+ 14528,
+ 14531,
+ 14535,
+ 14538,
+ 14541,
+ 14545,
+ 14548,
+ 14551,
+ 14554,
+ 14558,
+ 14561,
+ 14564,
+ 14568,
+ 14571,
+ 14574,
+ 14578,
+ 14581,
+ 14584,
+ 14588,
+ 14591,
+ 14594,
+ 14598,
+ 14601,
+ 14604,
+ 14608,
+ 14611,
+ 14614,
+ 14618,
+ 14621,
+ 14624,
+ 14628,
+ 14631,
+ 14634,
+ 14638,
+ 14641,
+ 14644,
+ 14648,
+ 14651,
+ 14654,
+ 14657,
+ 14661,
+ 14664,
+ 14667,
+ 14671,
+ 14674,
+ 14677,
+ 14681,
+ 14684,
+ 14687,
+ 14691,
+ 14694,
+ 14697,
+ 14701,
+ 14704,
+ 14707,
+ 14711,
+ 14714,
+ 14717,
+ 14721,
+ 14724,
+ 14727,
+ 14731,
+ 14734,
+ 14737,
+ 14741,
+ 14744,
+ 14747,
+ 14750,
+ 14754,
+ 14757,
+ 14760,
+ 14764,
+ 14767,
+ 14770,
+ 14774,
+ 14777,
+ 14780,
+ 14784,
+ 14787,
+ 14790,
+ 14794,
+ 14797,
+ 14800,
+ 14804,
+ 14807,
+ 14810,
+ 14814,
+ 14817,
+ 14820,
+ 14824,
+ 14827,
+ 14830,
+ 14834,
+ 14837,
+ 14840,
+ 14844,
+ 14847,
+ 14850,
+ 14853,
+ 14857,
+ 14860,
+ 14863,
+ 14867,
+ 14870,
+ 14873,
+ 14877,
+ 14880,
+ 14883,
+ 14887,
+ 14890,
+ 14893,
+ 14897,
+ 14900,
+ 14903,
+ 14907,
+ 14910,
+ 14913,
+ 14917,
+ 14920,
+ 14923,
+ 14927,
+ 14930,
+ 14933,
+ 14937,
+ 14940,
+ 14943,
+ 14946,
+ 14950,
+ 14953,
+ 14956,
+ 14960,
+ 14963,
+ 14966,
+ 14970,
+ 14973,
+ 14976,
+ 14980,
+ 14983,
+ 14986,
+ 14990,
+ 14993,
+ 14996,
+ 15000,
+ 15003,
+ 15006,
+ 15010,
+ 15013,
+ 15016,
+ 15020,
+ 15023,
+ 15026,
+ 15030,
+ 15033,
+ 15036,
+ 15039,
+ 15043,
+ 15046,
+ 15049,
+ 15053,
+ 15056,
+ 15059,
+ 15063,
+ 15066,
+ 15069,
+ 15073,
+ 15076,
+ 15079,
+ 15083,
+ 15086,
+ 15089,
+ 15093,
+ 15096,
+ 15099,
+ 15103,
+ 15106,
+ 15109,
+ 15113,
+ 15116,
+ 15119,
+ 15123,
+ 15126,
+ 15129,
+ 15133,
+ 15136,
+ 15139,
+ 15142,
+ 15146,
+ 15149,
+ 15152,
+ 15156,
+ 15159,
+ 15162,
+ 15166,
+ 15169,
+ 15172,
+ 15176,
+ 15179,
+ 15182,
+ 15186,
+ 15189,
+ 15192,
+ 15196,
+ 15199,
+ 15202,
+ 15206,
+ 15209,
+ 15212,
+ 15216,
+ 15219,
+ 15222,
+ 15226,
+ 15229,
+ 15232,
+ 15235,
+ 15239,
+ 15242,
+ 15245,
+ 15249,
+ 15252,
+ 15255,
+ 15259,
+ 15262,
+ 15265,
+ 15269,
+ 15272,
+ 15275,
+ 15279,
+ 15282,
+ 15285,
+ 15289,
+ 15292,
+ 15295,
+ 15299,
+ 15302,
+ 15305,
+ 15309,
+ 15312,
+ 15315,
+ 15319,
+ 15322,
+ 15325,
+ 15329,
+ 15332,
+ 15335,
+ 15338,
+ 15342,
+ 15345,
+ 15348,
+ 15352,
+ 15355,
+ 15358,
+ 15362,
+ 15365,
+ 15368,
+ 15372,
+ 15375,
+ 15378,
+ 15382,
+ 15385,
+ 15388,
+ 15392,
+ 15395,
+ 15398,
+ 15402,
+ 15405,
+ 15408,
+ 15412,
+ 15415,
+ 15418,
+ 15422,
+ 15425,
+ 15428,
+ 15431,
+ 15435,
+ 15438,
+ 15441,
+ 15445,
+ 15448,
+ 15451,
+ 15455,
+ 15458,
+ 15461,
+ 15465,
+ 15468,
+ 15471,
+ 15475,
+ 15478,
+ 15481,
+ 15485,
+ 15488,
+ 15491,
+ 15495,
+ 15498,
+ 15501,
+ 15505,
+ 15508,
+ 15511,
+ 15515,
+ 15518,
+ 15521,
+ 15524,
+ 15528,
+ 15531,
+ 15534,
+ 15538,
+ 15541,
+ 15544,
+ 15548,
+ 15551,
+ 15554,
+ 15558,
+ 15561,
+ 15564,
+ 15568,
+ 15571,
+ 15574,
+ 15578,
+ 15581,
+ 15584,
+ 15588,
+ 15591,
+ 15594,
+ 15598,
+ 15601,
+ 15604,
+ 15608,
+ 15611,
+ 15614,
+ 15618,
+ 15621,
+ 15624,
+ 15627,
+ 15631,
+ 15634,
+ 15637,
+ 15641,
+ 15644,
+ 15647,
+ 15651,
+ 15654,
+ 15657,
+ 15661,
+ 15664,
+ 15667,
+ 15671,
+ 15674,
+ 15677,
+ 15681,
+ 15684,
+ 15687,
+ 15691,
+ 15694,
+ 15697,
+ 15701,
+ 15704,
+ 15707,
+ 15711,
+ 15714,
+ 15717,
+ 15720,
+ 15724,
+ 15727,
+ 15730,
+ 15734,
+ 15737,
+ 15740,
+ 15744,
+ 15747,
+ 15750,
+ 15754,
+ 15757,
+ 15760,
+ 15764,
+ 15767,
+ 15770,
+ 15774,
+ 15777,
+ 15780,
+ 15784,
+ 15787,
+ 15790,
+ 15794,
+ 15797,
+ 15800,
+ 15804,
+ 15807,
+ 15810,
+ 15814,
+ 15817,
+ 15820,
+ 15823,
+ 15827,
+ 15830,
+ 15833,
+ 15837,
+ 15840,
+ 15843,
+ 15847,
+ 15850,
+ 15853,
+ 15857,
+ 15860,
+ 15863,
+ 15867,
+ 15870,
+ 15873,
+ 15877,
+ 15880,
+ 15883,
+ 15887,
+ 15890,
+ 15893,
+ 15897,
+ 15900,
+ 15903,
+ 15907,
+ 15910,
+ 15913,
+ 15916,
+ 15920,
+ 15923,
+ 15926,
+ 15930,
+ 15933,
+ 15936,
+ 15940,
+ 15943,
+ 15946,
+ 15950,
+ 15953,
+ 15956,
+ 15960,
+ 15963,
+ 15966,
+ 15970,
+ 15973,
+ 15976,
+ 15980,
+ 15983,
+ 15986,
+ 15990,
+ 15993,
+ 15996,
+ 16000,
+ 16003,
+ 16006,
+ 16009,
+ 16013,
+ 16016,
+ 16019,
+ 16023,
+ 16026,
+ 16029,
+ 16033,
+ 16036,
+ 16039,
+ 16043,
+ 16046,
+ 16049,
+ 16053,
+ 16056,
+ 16059,
+ 16063,
+ 16066,
+ 16069,
+ 16073,
+ 16076,
+ 16079,
+ 16083,
+ 16086,
+ 16089,
+ 16093,
+ 16096,
+ 16099,
+ 16103,
+ 16106,
+ 16109,
+ 16112,
+ 16116,
+ 16119,
+ 16122,
+ 16126,
+ 16129,
+ 16132,
+ 16136,
+ 16139,
+ 16142,
+ 16146,
+ 16149,
+ 16152,
+ 16156,
+ 16159,
+ 16162,
+ 16166,
+ 16169,
+ 16172,
+ 16176,
+ 16179,
+ 16182,
+ 16186,
+ 16189,
+ 16192,
+ 16196,
+ 16199,
+ 16202,
+ 16205,
+ 16209,
+ 16212,
+ 16215,
+ 16219,
+ 16222,
+ 16225,
+ 16229,
+ 16232,
+ 16235,
+ 16239,
+ 16242,
+ 16245,
+ 16249,
+ 16252,
+ 16255,
+ 16259,
+ 16262,
+ 16265,
+ 16269,
+ 16272,
+ 16275,
+ 16279,
+ 16282,
+ 16285,
+ 16289,
+ 16292,
+ 16295,
+ 16299,
+ 16302,
+ 16305,
+ 16308,
+ 16312,
+ 16315,
+ 16318,
+ 16322,
+ 16325,
+ 16328,
+ 16332,
+ 16335,
+ 16338,
+ 16342,
+ 16345,
+ 16348,
+ 16352,
+ 16355,
+ 16358,
+ 16362,
+ 16365,
+ 16368,
+ 16372,
+ 16375,
+ 16378,
+ 16382,
+ 16385,
+ 16388,
+ 16392,
+ 16395,
+ 16398,
+ 16401,
+ 16405,
+ 16408,
+ 16411,
+ 16415,
+ 16418,
+ 16421,
+ 16425,
+ 16428,
+ 16431,
+ 16435,
+ 16438,
+ 16441,
+ 16445,
+ 16448,
+ 16451,
+ 16455,
+ 16458,
+ 16461,
+ 16465,
+ 16468,
+ 16471,
+ 16475,
+ 16478,
+ 16481,
+ 16485,
+ 16488,
+ 16491,
+ 16494,
+ 16498,
+ 16501,
+ 16504,
+ 16508,
+ 16511,
+ 16514,
+ 16518,
+ 16521,
+ 16524,
+ 16528,
+ 16531,
+ 16534,
+ 16538,
+ 16541,
+ 16544,
+ 16548,
+ 16551,
+ 16554,
+ 16558,
+ 16561,
+ 16564,
+ 16568,
+ 16571,
+ 16574,
+ 16578,
+ 16581,
+ 16584,
+ 16588,
+ 16591,
+ 16594,
+ 16597,
+ 16601,
+ 16604,
+ 16607,
+ 16611,
+ 16614,
+ 16617,
+ 16621,
+ 16624,
+ 16627,
+ 16631,
+ 16634,
+ 16637,
+ 16641,
+ 16644,
+ 16647,
+ 16651,
+ 16654,
+ 16657,
+ 16661,
+ 16664,
+ 16667,
+ 16671,
+ 16674,
+ 16677,
+ 16681,
+ 16684,
+ 16687,
+ 16690,
+ 16694,
+ 16697,
+ 16700,
+ 16704,
+ 16707,
+ 16710,
+ 16714,
+ 16717,
+ 16720,
+ 16724,
+ 16727,
+ 16730,
+ 16734,
+ 16737,
+ 16740,
+ 16744,
+ 16747,
+ 16750,
+ 16754,
+ 16757,
+ 16760,
+ 16764,
+ 16767,
+ 16770,
+ 16774,
+ 16777,
+ 16780,
+ 16784,
+ 16787,
+ 16790,
+ 16793,
+ 16797,
+ 16800,
+ 16803,
+ 16807,
+ 16810,
+ 16813,
+ 16817,
+ 16820,
+ 16823,
+ 16827,
+ 16830,
+ 16833,
+ 16837,
+ 16840,
+ 16843,
+ 16847,
+ 16850,
+ 16853,
+ 16857,
+ 16860,
+ 16863,
+ 16867,
+ 16870,
+ 16873,
+ 16877,
+ 16880,
+ 16883,
+ 16886,
+ 16890,
+ 16893,
+ 16896,
+ 16900,
+ 16903,
+ 16906,
+ 16910,
+ 16913,
+ 16916,
+ 16920,
+ 16923,
+ 16926,
+ 16930,
+ 16933,
+ 16936,
+ 16940,
+ 16943,
+ 16946,
+ 16950,
+ 16953,
+ 16956,
+ 16960,
+ 16963,
+ 16966,
+ 16970,
+ 16973,
+ 16976,
+ 16980,
+ 16983,
+ 16986,
+ 16989,
+ 16993,
+ 16996,
+ 16999,
+ 17003,
+ 17006,
+ 17009,
+ 17013,
+ 17016,
+ 17019,
+ 17023,
+ 17026,
+ 17029,
+ 17033,
+ 17036,
+ 17039,
+ 17043,
+ 17046,
+ 17049,
+ 17053,
+ 17056,
+ 17059,
+ 17063,
+ 17066,
+ 17069,
+ 17073,
+ 17076,
+ 17079,
+ 17082,
+ 17086,
+ 17089,
+ 17092,
+ 17096,
+ 17099,
+ 17102,
+ 17106,
+ 17109,
+ 17112,
+ 17116,
+ 17119,
+ 17122,
+ 17126,
+ 17129,
+ 17132,
+ 17136,
+ 17139,
+ 17142,
+ 17146,
+ 17149,
+ 17152,
+ 17156,
+ 17159,
+ 17162,
+ 17166,
+ 17169,
+ 17172,
+ 17175,
+ 17179,
+ 17182,
+ 17185,
+ 17189,
+ 17192,
+ 17195,
+ 17199,
+ 17202,
+ 17205,
+ 17209,
+ 17212,
+ 17215,
+ 17219,
+ 17222,
+ 17225,
+ 17229,
+ 17232,
+ 17235,
+ 17239,
+ 17242,
+ 17245,
+ 17249,
+ 17252,
+ 17255,
+ 17259,
+ 17262,
+ 17265,
+ 17269,
+ 17272,
+ 17275,
+ 17278,
+ 17282,
+ 17285,
+ 17288,
+ 17292,
+ 17295,
+ 17298,
+ 17302,
+ 17305,
+ 17308,
+ 17312,
+ 17315,
+ 17318,
+ 17322,
+ 17325,
+ 17328,
+ 17332,
+ 17335,
+ 17338,
+ 17342,
+ 17345,
+ 17348,
+ 17352,
+ 17355,
+ 17358,
+ 17362,
+ 17365,
+ 17368,
+ 17371,
+ 17375,
+ 17378,
+ 17381,
+ 17385,
+ 17388,
+ 17391,
+ 17395,
+ 17398,
+ 17401,
+ 17405,
+ 17408,
+ 17411,
+ 17415,
+ 17418,
+ 17421,
+ 17425,
+ 17428,
+ 17431,
+ 17435,
+ 17438,
+ 17441,
+ 17445,
+ 17448,
+ 17451,
+ 17455,
+ 17458,
+ 17461,
+ 17465,
+ 17468,
+ 17471,
+ 17474,
+ 17478,
+ 17481,
+ 17484,
+ 17488,
+ 17491,
+ 17494,
+ 17498,
+ 17501,
+ 17504,
+ 17508,
+ 17511,
+ 17514,
+ 17518,
+ 17521,
+ 17524,
+ 17528,
+ 17531,
+ 17534,
+ 17538,
+ 17541,
+ 17544,
+ 17548,
+ 17551,
+ 17554,
+ 17558,
+ 17561,
+ 17564,
+ 17567,
+ 17571,
+ 17574,
+ 17577,
+ 17581,
+ 17584,
+ 17587,
+ 17591,
+ 17594,
+ 17597,
+ 17601,
+ 17604,
+ 17607,
+ 17611,
+ 17614,
+ 17617,
+ 17621,
+ 17624,
+ 17627,
+ 17631,
+ 17634,
+ 17637,
+ 17641,
+ 17644,
+ 17647,
+ 17651,
+ 17654,
+ 17657,
+ 17660,
+ 17664,
+ 17667,
+ 17670,
+ 17674,
+ 17677,
+ 17680,
+ 17684,
+ 17687,
+ 17690,
+ 17694,
+ 17697,
+ 17700,
+ 17704,
+ 17707,
+ 17710,
+ 17714,
+ 17717,
+ 17720,
+ 17724,
+ 17727,
+ 17730,
+ 17734,
+ 17737,
+ 17740,
+ 17744,
+ 17747,
+ 17750,
+ 17754,
+ 17757,
+ 17760,
+ 17763,
+ 17767,
+ 17770,
+ 17773,
+ 17777,
+ 17780,
+ 17783,
+ 17787,
+ 17790,
+ 17793,
+ 17797,
+ 17800,
+ 17803,
+ 17807,
+ 17810,
+ 17813,
+ 17817,
+ 17820,
+ 17823,
+ 17827,
+ 17830,
+ 17833,
+ 17837,
+ 17840,
+ 17843,
+ 17847,
+ 17850,
+ 17853,
+ 17856,
+ 17860,
+ 17863,
+ 17866,
+ 17870,
+ 17873,
+ 17876,
+ 17880,
+ 17883,
+ 17886,
+ 17890,
+ 17893,
+ 17896,
+ 17900,
+ 17903,
+ 17906,
+ 17910,
+ 17913,
+ 17916,
+ 17920,
+ 17923,
+ 17926,
+ 17930,
+ 17933,
+ 17936,
+ 17940,
+ 17943,
+ 17946,
+ 17950,
+ 17953,
+ 17956,
+ 17959,
+ 17963,
+ 17966,
+ 17969,
+ 17973,
+ 17976,
+ 17979,
+ 17983,
+ 17986,
+ 17989,
+ 17993,
+ 17996,
+ 17999,
+ 18003,
+ 18006,
+ 18009,
+ 18013,
+ 18016,
+ 18019,
+ 18023,
+ 18026,
+ 18029,
+ 18033,
+ 18036,
+ 18039,
+ 18043,
+ 18046,
+ 18049,
+ 18052,
+ 18056,
+ 18059,
+ 18062,
+ 18066,
+ 18069,
+ 18072,
+ 18076,
+ 18079,
+ 18082,
+ 18086,
+ 18089,
+ 18092,
+ 18096,
+ 18099,
+ 18102,
+ 18106,
+ 18109,
+ 18112,
+ 18116,
+ 18119,
+ 18122,
+ 18126,
+ 18129,
+ 18132,
+ 18136,
+ 18139,
+ 18142,
+ 18145,
+ 18149,
+ 18152,
+ 18155,
+ 18159,
+ 18162,
+ 18165,
+ 18169,
+ 18172,
+ 18175,
+ 18179,
+ 18182,
+ 18185,
+ 18189,
+ 18192,
+ 18195,
+ 18199,
+ 18202,
+ 18205,
+ 18209,
+ 18212,
+ 18215,
+ 18219,
+ 18222,
+ 18225,
+ 18229,
+ 18232,
+ 18235,
+ 18239,
+ 18242,
+ 18245,
+ 18248,
+ 18252,
+ 18255,
+ 18258,
+ 18262,
+ 18265,
+ 18268,
+ 18272,
+ 18275,
+ 18278,
+ 18282,
+ 18285,
+ 18288,
+ 18292,
+ 18295,
+ 18298,
+ 18302,
+ 18305,
+ 18308,
+ 18312,
+ 18315,
+ 18318,
+ 18322,
+ 18325,
+ 18328,
+ 18332,
+ 18335,
+ 18338,
+ 18341,
+ 18345,
+ 18348,
+ 18351,
+ 18355,
+ 18358,
+ 18361,
+ 18365,
+ 18368,
+ 18371,
+ 18375,
+ 18378,
+ 18381,
+ 18385,
+ 18388,
+ 18391,
+ 18395,
+ 18398,
+ 18401,
+ 18405,
+ 18408,
+ 18411,
+ 18415,
+ 18418,
+ 18421,
+ 18425,
+ 18428,
+ 18431,
+ 18435,
+ 18438,
+ 18441,
+ 18444,
+ 18448,
+ 18451,
+ 18454,
+ 18458,
+ 18461,
+ 18464,
+ 18468,
+ 18471,
+ 18474,
+ 18478,
+ 18481,
+ 18484,
+ 18488,
+ 18491,
+ 18494,
+ 18498,
+ 18501,
+ 18504,
+ 18508,
+ 18511,
+ 18514,
+ 18518,
+ 18521,
+ 18524,
+ 18528,
+ 18531,
+ 18534,
+ 18537,
+ 18541,
+ 18544,
+ 18547,
+ 18551,
+ 18554,
+ 18557,
+ 18561,
+ 18564,
+ 18567,
+ 18571,
+ 18574,
+ 18577,
+ 18581,
+ 18584,
+ 18587,
+ 18591,
+ 18594,
+ 18597,
+ 18601,
+ 18604,
+ 18607,
+ 18611,
+ 18614,
+ 18617,
+ 18621,
+ 18624,
+ 18627,
+ 18630,
+ 18634,
+ 18637,
+ 18640,
+ 18644,
+ 18647,
+ 18650,
+ 18654,
+ 18657,
+ 18660,
+ 18664,
+ 18667,
+ 18670,
+ 18674,
+ 18677,
+ 18680,
+ 18684,
+ 18687,
+ 18690,
+ 18694,
+ 18697,
+ 18700,
+ 18704,
+ 18707,
+ 18710,
+ 18714,
+ 18717,
+ 18720,
+ 18724,
+ 18727,
+ 18730,
+ 18733,
+ 18737,
+ 18740,
+ 18743,
+ 18747,
+ 18750,
+ 18753,
+ 18757,
+ 18760,
+ 18763,
+ 18767,
+ 18770,
+ 18773,
+ 18777,
+ 18780,
+ 18783,
+ 18787,
+ 18790,
+ 18793,
+ 18797,
+ 18800,
+ 18803,
+ 18807,
+ 18810,
+ 18813,
+ 18817,
+ 18820,
+ 18823,
+ 18826,
+ 18830,
+ 18833,
+ 18836,
+ 18840,
+ 18843,
+ 18846,
+ 18850,
+ 18853,
+ 18856,
+ 18860,
+ 18863,
+ 18866,
+ 18870,
+ 18873,
+ 18876,
+ 18880,
+ 18883,
+ 18886,
+ 18890,
+ 18893,
+ 18896,
+ 18900,
+ 18903,
+ 18906,
+ 18910,
+ 18913,
+ 18916,
+ 18920,
+ 18923,
+ 18926,
+ 18929,
+ 18933,
+ 18936,
+ 18939,
+ 18943,
+ 18946,
+ 18949,
+ 18953,
+ 18956,
+ 18959,
+ 18963,
+ 18966,
+ 18969,
+ 18973,
+ 18976,
+ 18979,
+ 18983,
+ 18986,
+ 18989,
+ 18993,
+ 18996,
+ 18999,
+ 19003,
+ 19006,
+ 19009,
+ 19013,
+ 19016,
+ 19019,
+ 19022,
+ 19026,
+ 19029,
+ 19032,
+ 19036,
+ 19039,
+ 19042,
+ 19046,
+ 19049,
+ 19052,
+ 19056,
+ 19059,
+ 19062,
+ 19066,
+ 19069,
+ 19072,
+ 19076,
+ 19079,
+ 19082,
+ 19086,
+ 19089,
+ 19092,
+ 19096,
+ 19099,
+ 19102,
+ 19106,
+ 19109,
+ 19112,
+ 19116,
+ 19119,
+ 19122,
+ 19125,
+ 19129,
+ 19132,
+ 19135,
+ 19139,
+ 19142,
+ 19145,
+ 19149,
+ 19152,
+ 19155,
+ 19159,
+ 19162,
+ 19165,
+ 19169,
+ 19172,
+ 19175,
+ 19179,
+ 19182,
+ 19185,
+ 19189,
+ 19192,
+ 19195,
+ 19199,
+ 19202,
+ 19205,
+ 19209,
+ 19212,
+ 19215,
+ 19218,
+ 19222,
+ 19225,
+ 19228,
+ 19232,
+ 19235,
+ 19238,
+ 19242,
+ 19245,
+ 19248,
+ 19252,
+ 19255,
+ 19258,
+ 19262,
+ 19265,
+ 19268,
+ 19272,
+ 19275,
+ 19278,
+ 19282,
+ 19285,
+ 19288,
+ 19292,
+ 19295,
+ 19298,
+ 19302,
+ 19305,
+ 19308,
+ 19311,
+ 19315,
+ 19318,
+ 19321,
+ 19325,
+ 19328,
+ 19331,
+ 19335,
+ 19338,
+ 19341,
+ 19345,
+ 19348,
+ 19351,
+ 19355,
+ 19358,
+ 19361,
+ 19365,
+ 19368,
+ 19371,
+ 19375,
+ 19378,
+ 19381,
+ 19385,
+ 19388,
+ 19391,
+ 19395,
+ 19398,
+ 19401,
+ 19405,
+ 19408,
+ 19411,
+ 19414,
+ 19418,
+ 19421,
+ 19424,
+ 19428,
+ 19431,
+ 19434,
+ 19438,
+ 19441,
+ 19444,
+ 19448,
+ 19451,
+ 19454,
+ 19458,
+ 19461,
+ 19464,
+ 19468,
+ 19471,
+ 19474,
+ 19478,
+ 19481,
+ 19484,
+ 19488,
+ 19491,
+ 19494,
+ 19498,
+ 19501,
+ 19504,
+ 19507,
+ 19511,
+ 19514,
+ 19517,
+ 19521,
+ 19524,
+ 19527,
+ 19531,
+ 19534,
+ 19537,
+ 19541,
+ 19544,
+ 19547,
+ 19551,
+ 19554,
+ 19557,
+ 19561,
+ 19564,
+ 19567,
+ 19571,
+ 19574,
+ 19577,
+ 19581,
+ 19584,
+ 19587,
+ 19591,
+ 19594,
+ 19597,
+ 19601,
+ 19604,
+ 19607,
+ 19610,
+ 19614,
+ 19617,
+ 19620,
+ 19624,
+ 19627,
+ 19630,
+ 19634,
+ 19637,
+ 19640,
+ 19644,
+ 19647,
+ 19650,
+ 19654,
+ 19657,
+ 19660,
+ 19664,
+ 19667,
+ 19670,
+ 19674,
+ 19677,
+ 19680,
+ 19684,
+ 19687,
+ 19690,
+ 19694,
+ 19697,
+ 19700,
+ 19703,
+ 19707,
+ 19710,
+ 19713,
+ 19717,
+ 19720,
+ 19723,
+ 19727,
+ 19730,
+ 19733,
+ 19737,
+ 19740,
+ 19743,
+ 19747,
+ 19750,
+ 19753,
+ 19757,
+ 19760,
+ 19763,
+ 19767,
+ 19770,
+ 19773,
+ 19777,
+ 19780,
+ 19783,
+ 19787,
+ 19790,
+ 19793,
+ 19796,
+ 19800,
+ 19803,
+ 19806,
+ 19810,
+ 19813,
+ 19816,
+ 19820,
+ 19823,
+ 19826,
+ 19830,
+ 19833,
+ 19836,
+ 19840,
+ 19843,
+ 19846,
+ 19850,
+ 19853,
+ 19856,
+ 19860,
+ 19863,
+ 19866,
+ 19870,
+ 19873,
+ 19876,
+ 19880,
+ 19883,
+ 19886,
+ 19890,
+ 19893,
+ 19896,
+ 19899,
+ 19903,
+ 19906,
+ 19909,
+ 19913,
+ 19916,
+ 19919,
+ 19923,
+ 19926,
+ 19929,
+ 19933,
+ 19936,
+ 19939,
+ 19943,
+ 19946,
+ 19949,
+ 19953,
+ 19956,
+ 19959,
+ 19963,
+ 19966,
+ 19969,
+ 19973,
+ 19976,
+ 19979,
+ 19983,
+ 19986,
+ 19989,
+ 19992,
+ 19996,
+ 19999,
+ 20002,
+ 20006,
+ 20009,
+ 20012,
+ 20016,
+ 20019,
+ 20022,
+ 20026,
+ 20029,
+ 20032,
+ 20036,
+ 20039,
+ 20042,
+ 20046,
+ 20049,
+ 20052,
+ 20056,
+ 20059,
+ 20062,
+ 20066,
+ 20069,
+ 20072,
+ 20076,
+ 20079,
+ 20082,
+ 20086,
+ 20089,
+ 20092,
+ 20095,
+ 20099,
+ 20102,
+ 20105,
+ 20109,
+ 20112,
+ 20115,
+ 20119,
+ 20122,
+ 20125,
+ 20129,
+ 20132,
+ 20135,
+ 20139,
+ 20142,
+ 20145,
+ 20149,
+ 20152,
+ 20155,
+ 20159,
+ 20162,
+ 20165,
+ 20169,
+ 20172,
+ 20175,
+ 20179,
+ 20182,
+ 20185,
+ 20188,
+ 20192,
+ 20195,
+ 20198,
+ 20202,
+ 20205,
+ 20208,
+ 20212,
+ 20215,
+ 20218,
+ 20222,
+ 20225,
+ 20228,
+ 20232,
+ 20235,
+ 20238,
+ 20242,
+ 20245,
+ 20248,
+ 20252,
+ 20255,
+ 20258,
+ 20262,
+ 20265,
+ 20268,
+ 20272,
+ 20275,
+ 20278,
+ 20281,
+ 20285,
+ 20288,
+ 20291,
+ 20295,
+ 20298,
+ 20301,
+ 20305,
+ 20308,
+ 20311,
+ 20315,
+ 20318,
+ 20321,
+ 20325,
+ 20328,
+ 20331,
+ 20335,
+ 20338,
+ 20341,
+ 20345,
+ 20348,
+ 20351,
+ 20355,
+ 20358,
+ 20361,
+ 20365,
+ 20368,
+ 20371,
+ 20375,
+ 20378,
+ 20381,
+ 20384,
+ 20388,
+ 20391,
+ 20394,
+ 20398,
+ 20401,
+ 20404,
+ 20408,
+ 20411,
+ 20414,
+ 20418,
+ 20421,
+ 20424,
+ 20428,
+ 20431,
+ 20434,
+ 20438,
+ 20441,
+ 20444,
+ 20448,
+ 20451,
+ 20454,
+ 20458,
+ 20461,
+ 20464,
+ 20468,
+ 20471,
+ 20474,
+ 20477,
+ 20481,
+ 20484,
+ 20487,
+ 20491,
+ 20494,
+ 20497,
+ 20501,
+ 20504,
+ 20507,
+ 20511,
+ 20514,
+ 20517,
+ 20521,
+ 20524,
+ 20527,
+ 20531,
+ 20534,
+ 20537,
+ 20541,
+ 20544,
+ 20547,
+ 20551,
+ 20554,
+ 20557,
+ 20561,
+ 20564,
+ 20567,
+ 20571,
+ 20574,
+ 20577,
+ 20580,
+ 20584,
+ 20587,
+ 20590,
+ 20594,
+ 20597,
+ 20600,
+ 20604,
+ 20607,
+ 20610,
+ 20614,
+ 20617,
+ 20620,
+ 20624,
+ 20627,
+ 20630,
+ 20634,
+ 20637,
+ 20640,
+ 20644,
+ 20647,
+ 20650,
+ 20654,
+ 20657,
+ 20660,
+ 20664,
+ 20667,
+ 20670,
+ 20673,
+ 20677,
+ 20680,
+ 20683,
+ 20687,
+ 20690,
+ 20693,
+ 20697,
+ 20700,
+ 20703,
+ 20707,
+ 20710,
+ 20713,
+ 20717,
+ 20720,
+ 20723,
+ 20727,
+ 20730,
+ 20733,
+ 20737,
+ 20740,
+ 20743,
+ 20747,
+ 20750,
+ 20753,
+ 20757,
+ 20760,
+ 20763,
+ 20766,
+ 20770,
+ 20773,
+ 20776,
+ 20780,
+ 20783,
+ 20786,
+ 20790,
+ 20793,
+ 20796,
+ 20800,
+ 20803,
+ 20806,
+ 20810,
+ 20813,
+ 20816,
+ 20820,
+ 20823,
+ 20826,
+ 20830,
+ 20833,
+ 20836,
+ 20840,
+ 20843,
+ 20846,
+ 20850,
+ 20853,
+ 20856,
+ 20860,
+ 20863,
+ 20866,
+ 20869,
+ 20873,
+ 20876,
+ 20879,
+ 20883,
+ 20886,
+ 20889,
+ 20893,
+ 20896,
+ 20899,
+ 20903,
+ 20906,
+ 20909,
+ 20913,
+ 20916,
+ 20919,
+ 20923,
+ 20926,
+ 20929,
+ 20933,
+ 20936,
+ 20939,
+ 20943,
+ 20946,
+ 20949,
+ 20953,
+ 20956,
+ 20959,
+ 20962,
+ 20966,
+ 20969,
+ 20972,
+ 20976,
+ 20979,
+ 20982,
+ 20986,
+ 20989,
+ 20992,
+ 20996,
+ 20999,
+ 21002,
+ 21006,
+ 21009,
+ 21012,
+ 21016,
+ 21019,
+ 21022,
+ 21026,
+ 21029,
+ 21032,
+ 21036,
+ 21039,
+ 21042,
+ 21046,
+ 21049,
+ 21052,
+ 21056,
+ 21059,
+ 21062,
+ 21065,
+ 21069,
+ 21072,
+ 21075,
+ 21079,
+ 21082,
+ 21085,
+ 21089,
+ 21092,
+ 21095,
+ 21099,
+ 21102,
+ 21105,
+ 21109,
+ 21112,
+ 21115,
+ 21119,
+ 21122,
+ 21125,
+ 21129,
+ 21132,
+ 21135,
+ 21139,
+ 21142,
+ 21145,
+ 21149,
+ 21152,
+ 21155,
+ 21158,
+ 21162,
+ 21165,
+ 21168,
+ 21172,
+ 21175,
+ 21178,
+ 21182,
+ 21185,
+ 21188,
+ 21192,
+ 21195,
+ 21198,
+ 21202,
+ 21205,
+ 21208,
+ 21212,
+ 21215,
+ 21218,
+ 21222,
+ 21225,
+ 21228,
+ 21232,
+ 21235,
+ 21238,
+ 21242,
+ 21245,
+ 21248,
+ 21252,
+ 21255,
+ 21258,
+ 21261,
+ 21265,
+ 21268,
+ 21271,
+ 21275,
+ 21278,
+ 21281,
+ 21285,
+ 21288,
+ 21291,
+ 21295,
+ 21298,
+ 21301,
+ 21305,
+ 21308,
+ 21311,
+ 21315,
+ 21318,
+ 21321,
+ 21325,
+ 21328,
+ 21331,
+ 21335,
+ 21338,
+ 21341,
+ 21345,
+ 21348,
+ 21351,
+ 21354,
+ 21358,
+ 21361,
+ 21364,
+ 21368,
+ 21371,
+ 21374,
+ 21378,
+ 21381,
+ 21384,
+ 21388,
+ 21391,
+ 21394,
+ 21398,
+ 21401,
+ 21404,
+ 21408,
+ 21411,
+ 21414,
+ 21418,
+ 21421,
+ 21424,
+ 21428,
+ 21431,
+ 21434,
+ 21438,
+ 21441,
+ 21444,
+ 21447,
+ 21451,
+ 21454,
+ 21457,
+ 21461,
+ 21464,
+ 21467,
+ 21471,
+ 21474,
+ 21477,
+ 21481,
+ 21484,
+ 21487,
+ 21491,
+ 21494,
+ 21497,
+ 21501,
+ 21504,
+ 21507,
+ 21511,
+ 21514,
+ 21517,
+ 21521,
+ 21524,
+ 21527,
+ 21531,
+ 21534,
+ 21537,
+ 21541,
+ 21544,
+ 21547,
+ 21550,
+ 21554,
+ 21557,
+ 21560,
+ 21564,
+ 21567,
+ 21570,
+ 21574,
+ 21577,
+ 21580,
+ 21584,
+ 21587,
+ 21590,
+ 21594,
+ 21597,
+ 21600,
+ 21604,
+ 21607,
+ 21610,
+ 21614,
+ 21617,
+ 21620,
+ 21624,
+ 21627,
+ 21630,
+ 21634,
+ 21637,
+ 21640,
+ 21643,
+ 21647,
+ 21650,
+ 21653,
+ 21657,
+ 21660,
+ 21663,
+ 21667,
+ 21670,
+ 21673,
+ 21677,
+ 21680,
+ 21683,
+ 21687,
+ 21690,
+ 21693,
+ 21697,
+ 21700,
+ 21703,
+ 21707,
+ 21710,
+ 21713,
+ 21717,
+ 21720,
+ 21723,
+ 21727,
+ 21730,
+ 21733,
+ 21737,
+ 21740,
+ 21743,
+ 21746,
+ 21750,
+ 21753,
+ 21756,
+ 21760,
+ 21763,
+ 21766,
+ 21770,
+ 21773,
+ 21776,
+ 21780,
+ 21783,
+ 21786,
+ 21790,
+ 21793,
+ 21796,
+ 21800,
+ 21803,
+ 21806,
+ 21810,
+ 21813,
+ 21816,
+ 21820,
+ 21823,
+ 21826,
+ 21830,
+ 21833,
+ 21836,
+ 21839,
+ 21843,
+ 21846,
+ 21849,
+ 21853,
+ 21856,
+ 21859,
+ 21863,
+ 21866,
+ 21869,
+ 21873,
+ 21876,
+ 21879,
+ 21883,
+ 21886,
+ 21889,
+ 21893,
+ 21896,
+ 21899,
+ 21903,
+ 21906,
+ 21909,
+ 21913,
+ 21916,
+ 21919,
+ 21923,
+ 21926,
+ 21929,
+ 21932,
+ 21936,
+ 21939,
+ 21942,
+ 21946,
+ 21949,
+ 21952,
+ 21956,
+ 21959,
+ 21962,
+ 21966,
+ 21969,
+ 21972,
+ 21976,
+ 21979,
+ 21982,
+ 21986,
+ 21989,
+ 21992,
+ 21996,
+ 21999,
+ 22002,
+ 22006,
+ 22009,
+ 22012,
+ 22016,
+ 22019,
+ 22022,
+ 22026,
+ 22029,
+ 22032,
+ 22035,
+ 22039,
+ 22042,
+ 22045,
+ 22049,
+ 22052,
+ 22055,
+ 22059,
+ 22062,
+ 22065,
+ 22069,
+ 22072,
+ 22075,
+ 22079,
+ 22082,
+ 22085,
+ 22089,
+ 22092,
+ 22095,
+ 22099,
+ 22102,
+ 22105,
+ 22109,
+ 22112,
+ 22115,
+ 22119,
+ 22122,
+ 22125,
+ 22128,
+ 22132,
+ 22135,
+ 22138,
+ 22142,
+ 22145,
+ 22148,
+ 22152,
+ 22155,
+ 22158,
+ 22162,
+ 22165,
+ 22168,
+ 22172,
+ 22175,
+ 22178,
+ 22182,
+ 22185,
+ 22188,
+ 22192,
+ 22195,
+ 22198,
+ 22202,
+ 22205,
+ 22208,
+ 22212,
+ 22215,
+ 22218,
+ 22222,
+ 22225,
+ 22228,
+ 22231,
+ 22235,
+ 22238,
+ 22241,
+ 22245,
+ 22248,
+ 22251,
+ 22255,
+ 22258,
+ 22261,
+ 22265,
+ 22268,
+ 22271,
+ 22275,
+ 22278,
+ 22281,
+ 22285,
+ 22288,
+ 22291,
+ 22295,
+ 22298,
+ 22301,
+ 22305,
+ 22308,
+ 22311,
+ 22315,
+ 22318,
+ 22321,
+ 22324,
+ 22328,
+ 22331,
+ 22334,
+ 22338,
+ 22341,
+ 22344,
+ 22348,
+ 22351,
+ 22354,
+ 22358,
+ 22361,
+ 22364,
+ 22368,
+ 22371,
+ 22374,
+ 22378,
+ 22381,
+ 22384,
+ 22388,
+ 22391,
+ 22394,
+ 22398,
+ 22401,
+ 22404,
+ 22408,
+ 22411,
+ 22414,
+ 22417,
+ 22421,
+ 22424,
+ 22427,
+ 22431,
+ 22434,
+ 22437,
+ 22441,
+ 22444,
+ 22447,
+ 22451,
+ 22454,
+ 22457,
+ 22461,
+ 22464,
+ 22467,
+ 22471,
+ 22474,
+ 22477,
+ 22481,
+ 22484,
+ 22487,
+ 22491,
+ 22494,
+ 22497,
+ 22501,
+ 22504,
+ 22507,
+ 22511,
+ 22514,
+ 22517,
+ 22520,
+ 22524,
+ 22527,
+ 22530,
+ 22534,
+ 22537,
+ 22540,
+ 22544,
+ 22547,
+ 22550,
+ 22554,
+ 22557,
+ 22560,
+ 22564,
+ 22567,
+ 22570,
+ 22574,
+ 22577,
+ 22580,
+ 22584,
+ 22587,
+ 22590,
+ 22594,
+ 22597,
+ 22600,
+ 22604,
+ 22607,
+ 22610,
+ 22613,
+ 22617,
+ 22620,
+ 22623,
+ 22627,
+ 22630,
+ 22633,
+ 22637,
+ 22640,
+ 22643,
+ 22647,
+ 22650,
+ 22653,
+ 22657,
+ 22660,
+ 22663,
+ 22667,
+ 22670,
+ 22673,
+ 22677,
+ 22680,
+ 22683,
+ 22687,
+ 22690,
+ 22693,
+ 22697,
+ 22700,
+ 22703,
+ 22707,
+ 22710,
+ 22713,
+ 22716,
+ 22720,
+ 22723,
+ 22726,
+ 22730,
+ 22733,
+ 22736,
+ 22740,
+ 22743,
+ 22746,
+ 22750,
+ 22753,
+ 22756,
+ 22760,
+ 22763,
+ 22766,
+ 22770,
+ 22773,
+ 22776,
+ 22780,
+ 22783,
+ 22786,
+ 22790,
+ 22793,
+ 22796,
+ 22800,
+ 22803,
+ 22806,
+ 22809,
+ 22813,
+ 22816,
+ 22819,
+ 22823,
+ 22826,
+ 22829,
+ 22833,
+ 22836,
+ 22839,
+ 22843,
+ 22846,
+ 22849,
+ 22853,
+ 22856,
+ 22859,
+ 22863,
+ 22866,
+ 22869,
+ 22873,
+ 22876,
+ 22879,
+ 22883,
+ 22886,
+ 22889,
+ 22893,
+ 22896,
+ 22899,
+ 22902,
+ 22906,
+ 22909,
+ 22912,
+ 22916,
+ 22919,
+ 22922,
+ 22926,
+ 22929,
+ 22932,
+ 22936,
+ 22939,
+ 22942,
+ 22946,
+ 22949,
+ 22952,
+ 22956,
+ 22959,
+ 22962,
+ 22966,
+ 22969,
+ 22972,
+ 22976,
+ 22979,
+ 22982,
+ 22986,
+ 22989,
+ 22992,
+ 22996,
+ 22999,
+ 23002,
+ 23005,
+ 23009,
+ 23012,
+ 23015,
+ 23019,
+ 23022,
+ 23025,
+ 23029,
+ 23032,
+ 23035,
+ 23039,
+ 23042,
+ 23045,
+ 23049,
+ 23052,
+ 23055,
+ 23059,
+ 23062,
+ 23065,
+ 23069,
+ 23072,
+ 23075,
+ 23079,
+ 23082,
+ 23085,
+ 23089,
+ 23092,
+ 23095,
+ 23098,
+ 23102,
+ 23105,
+ 23108,
+ 23112,
+ 23115,
+ 23118,
+ 23122,
+ 23125,
+ 23128,
+ 23132,
+ 23135,
+ 23138,
+ 23142,
+ 23145,
+ 23148,
+ 23152,
+ 23155,
+ 23158,
+ 23162,
+ 23165,
+ 23168,
+ 23172,
+ 23175,
+ 23178,
+ 23182,
+ 23185,
+ 23188,
+ 23192,
+ 23195,
+ 23198,
+ 23201,
+ 23205,
+ 23208,
+ 23211,
+ 23215,
+ 23218,
+ 23221,
+ 23225,
+ 23228,
+ 23231,
+ 23235,
+ 23238,
+ 23241,
+ 23245,
+ 23248,
+ 23251,
+ 23255,
+ 23258,
+ 23261,
+ 23265,
+ 23268,
+ 23271,
+ 23275,
+ 23278,
+ 23281,
+ 23285,
+ 23288,
+ 23291,
+ 23294,
+ 23298,
+ 23301,
+ 23304,
+ 23308,
+ 23311,
+ 23314,
+ 23318,
+ 23321,
+ 23324,
+ 23328,
+ 23331,
+ 23334,
+ 23338,
+ 23341,
+ 23344,
+ 23348,
+ 23351,
+ 23354,
+ 23358,
+ 23361,
+ 23364,
+ 23368,
+ 23371,
+ 23374,
+ 23378,
+ 23381,
+ 23384,
+ 23388,
+ 23391,
+ 23394,
+ 23397,
+ 23401,
+ 23404,
+ 23407,
+ 23411,
+ 23414,
+ 23417,
+ 23421,
+ 23424,
+ 23427,
+ 23431,
+ 23434,
+ 23437,
+ 23441,
+ 23444,
+ 23447,
+ 23451,
+ 23454,
+ 23457,
+ 23461,
+ 23464,
+ 23467,
+ 23471,
+ 23474,
+ 23477,
+ 23481,
+ 23484,
+ 23487,
+ 23490,
+ 23494,
+ 23497,
+ 23500,
+ 23504,
+ 23507,
+ 23510,
+ 23514,
+ 23517,
+ 23520,
+ 23524,
+ 23527,
+ 23530,
+ 23534,
+ 23537,
+ 23540,
+ 23544,
+ 23547,
+ 23550,
+ 23554,
+ 23557,
+ 23560,
+ 23564,
+ 23567,
+ 23570,
+ 23574,
+ 23577,
+ 23580,
+ 23583,
+ 23587,
+ 23590,
+ 23593,
+ 23597,
+ 23600,
+ 23603,
+ 23607,
+ 23610,
+ 23613,
+ 23617,
+ 23620,
+ 23623,
+ 23627,
+ 23630,
+ 23633,
+ 23637,
+ 23640,
+ 23643,
+ 23647,
+ 23650,
+ 23653,
+ 23657,
+ 23660,
+ 23663,
+ 23667,
+ 23670,
+ 23673,
+ 23677,
+ 23680,
+ 23683,
+ 23686,
+ 23690,
+ 23693,
+ 23696,
+ 23700,
+ 23703,
+ 23706,
+ 23710,
+ 23713,
+ 23716,
+ 23720,
+ 23723,
+ 23726,
+ 23730,
+ 23733,
+ 23736,
+ 23740,
+ 23743,
+ 23746,
+ 23750,
+ 23753,
+ 23756,
+ 23760,
+ 23763,
+ 23766,
+ 23770,
+ 23773,
+ 23776,
+ 23779,
+ 23783,
+ 23786,
+ 23789,
+ 23793,
+ 23796,
+ 23799,
+ 23803,
+ 23806,
+ 23809,
+ 23813,
+ 23816,
+ 23819,
+ 23823,
+ 23826,
+ 23829,
+ 23833,
+ 23836,
+ 23839,
+ 23843,
+ 23846,
+ 23849,
+ 23853,
+ 23856,
+ 23859,
+ 23863,
+ 23866,
+ 23869,
+ 23873,
+ 23876,
+ 23879,
+ 23882,
+ 23886,
+ 23889,
+ 23892,
+ 23896,
+ 23899,
+ 23902,
+ 23906,
+ 23909,
+ 23912,
+ 23916,
+ 23919,
+ 23922,
+ 23926,
+ 23929,
+ 23932,
+ 23936,
+ 23939,
+ 23942,
+ 23946,
+ 23949,
+ 23952,
+ 23956,
+ 23959,
+ 23962,
+ 23966,
+ 23969,
+ 23972,
+ 23975,
+ 23979,
+ 23982,
+ 23985,
+ 23989,
+ 23992,
+ 23995,
+ 23999,
+ 24002,
+ 24005,
+ 24009,
+ 24012,
+ 24015,
+ 24019,
+ 24022,
+ 24025,
+ 24029,
+ 24032,
+ 24035,
+ 24039,
+ 24042,
+ 24045,
+ 24049,
+ 24052,
+ 24055,
+ 24059,
+ 24062,
+ 24065,
+ 24068,
+ 24072,
+ 24075,
+ 24078,
+ 24082,
+ 24085,
+ 24088,
+ 24092,
+ 24095,
+ 24098,
+ 24102,
+ 24105,
+ 24108,
+ 24112,
+ 24115,
+ 24118,
+ 24122,
+ 24125,
+ 24128,
+ 24132,
+ 24135,
+ 24138,
+ 24142,
+ 24145,
+ 24148,
+ 24152,
+ 24155,
+ 24158,
+ 24162,
+ 24165,
+ 24168,
+ 24171,
+ 24175,
+ 24178,
+ 24181,
+ 24185,
+ 24188,
+ 24191,
+ 24195,
+ 24198,
+ 24201,
+ 24205,
+ 24208,
+ 24211,
+ 24215,
+ 24218,
+ 24221,
+ 24225,
+ 24228,
+ 24231,
+ 24235,
+ 24238,
+ 24241,
+ 24245,
+ 24248,
+ 24251,
+ 24255,
+ 24258,
+ 24261,
+ 24264,
+ 24268,
+ 24271,
+ 24274,
+ 24278,
+ 24281,
+ 24284,
+ 24288,
+ 24291,
+ 24294,
+ 24298,
+ 24301,
+ 24304,
+ 24308,
+ 24311,
+ 24314,
+ 24318,
+ 24321,
+ 24324,
+ 24328,
+ 24331,
+ 24334,
+ 24338,
+ 24341,
+ 24344,
+ 24348,
+ 24351,
+ 24354,
+ 24358,
+ 24361,
+ 24364,
+ 24367,
+ 24371,
+ 24374,
+ 24377,
+ 24381,
+ 24384,
+ 24387,
+ 24391,
+ 24394,
+ 24397,
+ 24401,
+ 24404,
+ 24407,
+ 24411,
+ 24414,
+ 24417,
+ 24421,
+ 24424,
+ 24427,
+ 24431,
+ 24434,
+ 24437,
+ 24441,
+ 24444,
+ 24447,
+ 24451,
+ 24454,
+ 24457,
+ 24460,
+ 24464,
+ 24467,
+ 24470,
+ 24474,
+ 24477,
+ 24480,
+ 24484,
+ 24487,
+ 24490,
+ 24494,
+ 24497,
+ 24500,
+ 24504,
+ 24507,
+ 24510,
+ 24514,
+ 24517,
+ 24520,
+ 24524,
+ 24527,
+ 24530,
+ 24534,
+ 24537,
+ 24540,
+ 24544,
+ 24547,
+ 24550,
+ 24553,
+ 24557,
+ 24560,
+ 24563,
+ 24567,
+ 24570,
+ 24573,
+ 24577,
+ 24580,
+ 24583,
+ 24587,
+ 24590,
+ 24593,
+ 24597,
+ 24600,
+ 24603,
+ 24607,
+ 24610,
+ 24613,
+ 24617,
+ 24620,
+ 24623,
+ 24627,
+ 24630,
+ 24633,
+ 24637,
+ 24640,
+ 24643,
+ 24647,
+ 24650,
+ 24653,
+ 24656,
+ 24660,
+ 24663,
+ 24666,
+ 24670,
+ 24673,
+ 24676,
+ 24680,
+ 24683,
+ 24686,
+ 24690,
+ 24693,
+ 24696,
+ 24700,
+ 24703,
+ 24706,
+ 24710,
+ 24713,
+ 24716,
+ 24720,
+ 24723,
+ 24726,
+ 24730,
+ 24733,
+ 24736,
+ 24740,
+ 24743,
+ 24746,
+ 24749,
+ 24753,
+ 24756,
+ 24759,
+ 24763,
+ 24766,
+ 24769,
+ 24773,
+ 24776,
+ 24779,
+ 24783,
+ 24786,
+ 24789,
+ 24793,
+ 24796,
+ 24799,
+ 24803,
+ 24806,
+ 24809,
+ 24813,
+ 24816,
+ 24819,
+ 24823,
+ 24826,
+ 24829,
+ 24833,
+ 24836,
+ 24839,
+ 24843,
+ 24846,
+ 24849,
+ 24852,
+ 24856,
+ 24859,
+ 24862,
+ 24866,
+ 24869,
+ 24872,
+ 24876,
+ 24879,
+ 24882,
+ 24886,
+ 24889,
+ 24892,
+ 24896,
+ 24899,
+ 24902,
+ 24906,
+ 24909,
+ 24912,
+ 24916,
+ 24919,
+ 24922,
+ 24926,
+ 24929,
+ 24932,
+ 24936,
+ 24939,
+ 24942,
+ 24945,
+ 24949,
+ 24952,
+ 24955,
+ 24959,
+ 24962,
+ 24965,
+ 24969,
+ 24972,
+ 24975,
+ 24979,
+ 24982,
+ 24985,
+ 24989,
+ 24992,
+ 24995,
+ 24999,
+ 25002,
+ 25005,
+ 25009,
+ 25012,
+ 25015,
+ 25019,
+ 25022,
+ 25025,
+ 25029,
+ 25032,
+ 25035,
+ 25038,
+ 25042,
+ 25045,
+ 25048,
+ 25052,
+ 25055,
+ 25058,
+ 25062,
+ 25065,
+ 25068,
+ 25072,
+ 25075,
+ 25078,
+ 25082,
+ 25085,
+ 25088,
+ 25092,
+ 25095,
+ 25098,
+ 25102,
+ 25105,
+ 25108,
+ 25112,
+ 25115,
+ 25118,
+ 25122,
+ 25125,
+ 25128,
+ 25132,
+ 25135,
+ 25138,
+ 25141,
+ 25145,
+ 25148,
+ 25151,
+ 25155,
+ 25158,
+ 25161,
+ 25165,
+ 25168,
+ 25171,
+ 25175,
+ 25178,
+ 25181,
+ 25185,
+ 25188,
+ 25191,
+ 25195,
+ 25198,
+ 25201,
+ 25205,
+ 25208,
+ 25211,
+ 25215,
+ 25218,
+ 25221,
+ 25225,
+ 25228,
+ 25231,
+ 25234,
+ 25238,
+ 25241,
+ 25244,
+ 25248,
+ 25251,
+ 25254,
+ 25258,
+ 25261,
+ 25264,
+ 25268,
+ 25271,
+ 25274,
+ 25278,
+ 25281,
+ 25284,
+ 25288,
+ 25291,
+ 25294,
+ 25298,
+ 25301,
+ 25304,
+ 25308,
+ 25311,
+ 25314,
+ 25318,
+ 25321,
+ 25324,
+ 25328,
+ 25331,
+ 25334,
+ 25337,
+ 25341,
+ 25344,
+ 25347,
+ 25351,
+ 25354,
+ 25357,
+ 25361,
+ 25364,
+ 25367,
+ 25371,
+ 25374,
+ 25377,
+ 25381,
+ 25384,
+ 25387,
+ 25391,
+ 25394,
+ 25397,
+ 25401,
+ 25404,
+ 25407,
+ 25411,
+ 25414,
+ 25417,
+ 25421,
+ 25424,
+ 25427,
+ 25430,
+ 25434,
+ 25437,
+ 25440,
+ 25444,
+ 25447,
+ 25450,
+ 25454,
+ 25457,
+ 25460,
+ 25464,
+ 25467,
+ 25470,
+ 25474,
+ 25477,
+ 25480,
+ 25484,
+ 25487,
+ 25490,
+ 25494,
+ 25497,
+ 25500,
+ 25504,
+ 25507,
+ 25510,
+ 25514,
+ 25517,
+ 25520,
+ 25524,
+ 25527,
+ 25530,
+ 25533,
+ 25537,
+ 25540,
+ 25543,
+ 25547,
+ 25550,
+ 25553,
+ 25557,
+ 25560,
+ 25563,
+ 25567,
+ 25570,
+ 25573,
+ 25577,
+ 25580,
+ 25583,
+ 25587,
+ 25590,
+ 25593,
+ 25597,
+ 25600,
+ 25603,
+ 25607,
+ 25610,
+ 25613,
+ 25617,
+ 25620,
+ 25623,
+ 25626,
+ 25630,
+ 25633,
+ 25636,
+ 25640,
+ 25643,
+ 25646,
+ 25650,
+ 25653,
+ 25656,
+ 25660,
+ 25663,
+ 25666,
+ 25670,
+ 25673,
+ 25676,
+ 25680,
+ 25683,
+ 25686,
+ 25690,
+ 25693,
+ 25696,
+ 25700,
+ 25703,
+ 25706,
+ 25710,
+ 25713,
+ 25716,
+ 25719,
+ 25723,
+ 25726,
+ 25729,
+ 25733,
+ 25736,
+ 25739,
+ 25743,
+ 25746,
+ 25749,
+ 25753,
+ 25756,
+ 25759,
+ 25763,
+ 25766,
+ 25769,
+ 25773,
+ 25776,
+ 25779,
+ 25783,
+ 25786,
+ 25789,
+ 25793,
+ 25796,
+ 25799,
+ 25803,
+ 25806,
+ 25809,
+ 25813,
+ 25816,
+ 25819,
+ 25822,
+ 25826,
+ 25829,
+ 25832,
+ 25836,
+ 25839,
+ 25842,
+ 25846,
+ 25849,
+ 25852,
+ 25856,
+ 25859,
+ 25862,
+ 25866,
+ 25869,
+ 25872,
+ 25876,
+ 25879,
+ 25882,
+ 25886,
+ 25889,
+ 25892,
+ 25896,
+ 25899,
+ 25902,
+ 25906,
+ 25909,
+ 25912,
+ 25915,
+ 25919,
+ 25922,
+ 25925,
+ 25929,
+ 25932,
+ 25935,
+ 25939,
+ 25942,
+ 25945,
+ 25949,
+ 25952,
+ 25955,
+ 25959,
+ 25962,
+ 25965,
+ 25969,
+ 25972,
+ 25975,
+ 25979,
+ 25982,
+ 25985,
+ 25989,
+ 25992,
+ 25995,
+ 25999,
+ 26002,
+ 26005,
+ 26009,
+ 26012,
+ 26015,
+ 26018,
+ 26022,
+ 26025,
+ 26028,
+ 26032,
+ 26035,
+ 26038,
+ 26042,
+ 26045,
+ 26048,
+ 26052,
+ 26055,
+ 26058,
+ 26062,
+ 26065,
+ 26068,
+ 26072,
+ 26075,
+ 26078,
+ 26082,
+ 26085,
+ 26088,
+ 26092,
+ 26095,
+ 26098,
+ 26102,
+ 26105,
+ 26108,
+ 26111,
+ 26115,
+ 26118,
+ 26121,
+ 26125,
+ 26128,
+ 26131,
+ 26135,
+ 26138,
+ 26141,
+ 26145,
+ 26148,
+ 26151,
+ 26155,
+ 26158,
+ 26161,
+ 26165,
+ 26168,
+ 26171,
+ 26175,
+ 26178,
+ 26181,
+ 26185,
+ 26188,
+ 26191,
+ 26195,
+ 26198,
+ 26201,
+ 26204,
+ 26208,
+ 26211,
+ 26214,
+ 26218,
+ 26221,
+ 26224,
+ 26228,
+ 26231,
+ 26234,
+ 26238,
+ 26241,
+ 26244,
+ 26248,
+ 26251,
+ 26254,
+ 26258,
+ 26261,
+ 26264,
+ 26268,
+ 26271,
+ 26274,
+ 26278,
+ 26281,
+ 26284,
+ 26288,
+ 26291,
+ 26294,
+ 26298,
+ 26301,
+ 26304,
+ 26307,
+ 26311,
+ 26314,
+ 26317,
+ 26321,
+ 26324,
+ 26327,
+ 26331,
+ 26334,
+ 26337,
+ 26341,
+ 26344,
+ 26347,
+ 26351,
+ 26354,
+ 26357,
+ 26361,
+ 26364,
+ 26367,
+ 26371,
+ 26374,
+ 26377,
+ 26381,
+ 26384,
+ 26387,
+ 26391,
+ 26394,
+ 26397,
+ 26400,
+ 26404,
+ 26407,
+ 26410,
+ 26414,
+ 26417,
+ 26420,
+ 26424,
+ 26427,
+ 26430,
+ 26434,
+ 26437,
+ 26440,
+ 26444,
+ 26447,
+ 26450,
+ 26454,
+ 26457,
+ 26460,
+ 26464,
+ 26467,
+ 26470,
+ 26474,
+ 26477,
+ 26480,
+ 26484,
+ 26487,
+ 26490,
+ 26494,
+ 26497,
+ 26500,
+ 26503,
+ 26507,
+ 26510,
+ 26513,
+ 26517,
+ 26520,
+ 26523,
+ 26527,
+ 26530,
+ 26533,
+ 26537,
+ 26540,
+ 26543,
+ 26547,
+ 26550,
+ 26553,
+ 26557,
+ 26560,
+ 26563,
+ 26567,
+ 26570,
+ 26573,
+ 26577,
+ 26580,
+ 26583,
+ 26587,
+ 26590,
+ 26593,
+ 26596,
+ 26600,
+ 26603,
+ 26606,
+ 26610,
+ 26613,
+ 26616,
+ 26620,
+ 26623,
+ 26626,
+ 26630,
+ 26633,
+ 26636,
+ 26640,
+ 26643,
+ 26646,
+ 26650,
+ 26653,
+ 26656,
+ 26660,
+ 26663,
+ 26666,
+ 26670,
+ 26673,
+ 26676,
+ 26680,
+ 26683,
+ 26686,
+ 26689,
+ 26693,
+ 26696,
+ 26699,
+ 26703,
+ 26706,
+ 26709,
+ 26713,
+ 26716,
+ 26719,
+ 26723,
+ 26726,
+ 26729,
+ 26733,
+ 26736,
+ 26739,
+ 26743,
+ 26746,
+ 26749,
+ 26753,
+ 26756,
+ 26759,
+ 26763,
+ 26766,
+ 26769,
+ 26773,
+ 26776,
+ 26779,
+ 26783,
+ 26786,
+ 26789,
+ 26792,
+ 26796,
+ 26799,
+ 26802,
+ 26806,
+ 26809,
+ 26812,
+ 26816,
+ 26819,
+ 26822,
+ 26826,
+ 26829,
+ 26832,
+ 26836,
+ 26839,
+ 26842,
+ 26846,
+ 26849,
+ 26852,
+ 26856,
+ 26859,
+ 26862,
+ 26866,
+ 26869,
+ 26872,
+ 26876,
+ 26879,
+ 26882,
+ 26885,
+ 26889,
+ 26892,
+ 26895,
+ 26899,
+ 26902,
+ 26905,
+ 26909,
+ 26912,
+ 26915,
+ 26919,
+ 26922,
+ 26925,
+ 26929,
+ 26932,
+ 26935,
+ 26939,
+ 26942,
+ 26945,
+ 26949,
+ 26952,
+ 26955,
+ 26959,
+ 26962,
+ 26965,
+ 26969,
+ 26972,
+ 26975,
+ 26979,
+ 26982,
+ 26985,
+ 26988,
+ 26992,
+ 26995,
+ 26998,
+ 27002,
+ 27005,
+ 27008,
+ 27012,
+ 27015,
+ 27018,
+ 27022,
+ 27025,
+ 27028,
+ 27032,
+ 27035,
+ 27038,
+ 27042,
+ 27045,
+ 27048,
+ 27052,
+ 27055,
+ 27058,
+ 27062,
+ 27065,
+ 27068,
+ 27072,
+ 27075,
+ 27078,
+ 27081,
+ 27085,
+ 27088,
+ 27091,
+ 27095,
+ 27098,
+ 27101,
+ 27105,
+ 27108,
+ 27111,
+ 27115,
+ 27118,
+ 27121,
+ 27125,
+ 27128,
+ 27131,
+ 27135,
+ 27138,
+ 27141,
+ 27145,
+ 27148,
+ 27151,
+ 27155,
+ 27158,
+ 27161,
+ 27165,
+ 27168,
+ 27171,
+ 27174,
+ 27178,
+ 27181,
+ 27184,
+ 27188,
+ 27191,
+ 27194,
+ 27198,
+ 27201,
+ 27204,
+ 27208,
+ 27211,
+ 27214,
+ 27218,
+ 27221,
+ 27224,
+ 27228,
+ 27231,
+ 27234,
+ 27238,
+ 27241,
+ 27244,
+ 27248,
+ 27251,
+ 27254,
+ 27258,
+ 27261,
+ 27264,
+ 27268,
+ 27271,
+ 27274,
+ 27277,
+ 27281,
+ 27284,
+ 27287,
+ 27291,
+ 27294,
+ 27297,
+ 27301,
+ 27304,
+ 27307,
+ 27311,
+ 27314,
+ 27317,
+ 27321,
+ 27324,
+ 27327,
+ 27331,
+ 27334,
+ 27337,
+ 27341,
+ 27344,
+ 27347,
+ 27351,
+ 27354,
+ 27357,
+ 27361,
+ 27364,
+ 27367,
+ 27370,
+ 27374,
+ 27377,
+ 27380,
+ 27384,
+ 27387,
+ 27390,
+ 27394,
+ 27397,
+ 27400,
+ 27404,
+ 27407,
+ 27410,
+ 27414,
+ 27417,
+ 27420,
+ 27424,
+ 27427,
+ 27430,
+ 27434,
+ 27437,
+ 27440,
+ 27444,
+ 27447,
+ 27450,
+ 27454,
+ 27457,
+ 27460,
+ 27464,
+ 27467,
+ 27470,
+ 27473,
+ 27477,
+ 27480,
+ 27483,
+ 27487,
+ 27490,
+ 27493,
+ 27497,
+ 27500,
+ 27503,
+ 27507,
+ 27510,
+ 27513,
+ 27517,
+ 27520,
+ 27523,
+ 27527,
+ 27530,
+ 27533,
+ 27537,
+ 27540,
+ 27543,
+ 27547,
+ 27550,
+ 27553,
+ 27557,
+ 27560,
+ 27563,
+ 27566,
+ 27570,
+ 27573,
+ 27576,
+ 27580,
+ 27583,
+ 27586,
+ 27590,
+ 27593,
+ 27596,
+ 27600,
+ 27603,
+ 27606,
+ 27610,
+ 27613,
+ 27616,
+ 27620,
+ 27623,
+ 27626,
+ 27630,
+ 27633,
+ 27636,
+ 27640,
+ 27643,
+ 27646,
+ 27650,
+ 27653,
+ 27656,
+ 27660,
+ 27663,
+ 27666,
+ 27669,
+ 27673,
+ 27676,
+ 27679,
+ 27683,
+ 27686,
+ 27689,
+ 27693,
+ 27696,
+ 27699,
+ 27703,
+ 27706,
+ 27709,
+ 27713,
+ 27716,
+ 27719,
+ 27723,
+ 27726,
+ 27729,
+ 27733,
+ 27736,
+ 27739,
+ 27743,
+ 27746,
+ 27749,
+ 27753,
+ 27756,
+ 27759,
+ 27762,
+ 27766,
+ 27769,
+ 27772,
+ 27776,
+ 27779,
+ 27782,
+ 27786,
+ 27789,
+ 27792,
+ 27796,
+ 27799,
+ 27802,
+ 27806,
+ 27809,
+ 27812,
+ 27816,
+ 27819,
+ 27822,
+ 27826,
+ 27829,
+ 27832,
+ 27836,
+ 27839,
+ 27842,
+ 27846,
+ 27849,
+ 27852,
+ 27855,
+ 27859,
+ 27862,
+ 27865,
+ 27869,
+ 27872,
+ 27875,
+ 27879,
+ 27882,
+ 27885,
+ 27889,
+ 27892,
+ 27895,
+ 27899,
+ 27902,
+ 27905,
+ 27909,
+ 27912,
+ 27915,
+ 27919,
+ 27922,
+ 27925,
+ 27929,
+ 27932,
+ 27935,
+ 27939,
+ 27942,
+ 27945,
+ 27949,
+ 27952,
+ 27955,
+ 27958,
+ 27962,
+ 27965,
+ 27968,
+ 27972,
+ 27975,
+ 27978,
+ 27982,
+ 27985,
+ 27988,
+ 27992,
+ 27995,
+ 27998,
+ 28002,
+ 28005,
+ 28008,
+ 28012,
+ 28015,
+ 28018,
+ 28022,
+ 28025,
+ 28028,
+ 28032,
+ 28035,
+ 28038,
+ 28042,
+ 28045,
+ 28048,
+ 28051,
+ 28055,
+ 28058,
+ 28061,
+ 28065,
+ 28068,
+ 28071,
+ 28075,
+ 28078,
+ 28081,
+ 28085,
+ 28088,
+ 28091,
+ 28095,
+ 28098,
+ 28101,
+ 28105,
+ 28108,
+ 28111,
+ 28115,
+ 28118,
+ 28121,
+ 28125,
+ 28128,
+ 28131,
+ 28135,
+ 28138,
+ 28141,
+ 28145,
+ 28148,
+ 28151,
+ 28154,
+ 28158,
+ 28161,
+ 28164,
+ 28168,
+ 28171,
+ 28174,
+ 28178,
+ 28181,
+ 28184,
+ 28188,
+ 28191,
+ 28194,
+ 28198,
+ 28201,
+ 28204,
+ 28208,
+ 28211,
+ 28214,
+ 28218,
+ 28221,
+ 28224,
+ 28228,
+ 28231,
+ 28234,
+ 28238,
+ 28241,
+ 28244,
+ 28247,
+ 28251,
+ 28254,
+ 28257,
+ 28261,
+ 28264,
+ 28267,
+ 28271,
+ 28274,
+ 28277,
+ 28281,
+ 28284,
+ 28287,
+ 28291,
+ 28294,
+ 28297,
+ 28301,
+ 28304,
+ 28307,
+ 28311,
+ 28314,
+ 28317,
+ 28321,
+ 28324,
+ 28327,
+ 28331,
+ 28334,
+ 28337,
+ 28340,
+ 28344,
+ 28347,
+ 28350,
+ 28354,
+ 28357,
+ 28360,
+ 28364,
+ 28367,
+ 28370,
+ 28374,
+ 28377,
+ 28380,
+ 28384,
+ 28387,
+ 28390,
+ 28394,
+ 28397,
+ 28400,
+ 28404,
+ 28407,
+ 28410,
+ 28414,
+ 28417,
+ 28420,
+ 28424,
+ 28427,
+ 28430,
+ 28434,
+ 28437,
+ 28440,
+ 28443,
+ 28447,
+ 28450,
+ 28453,
+ 28457,
+ 28460,
+ 28463,
+ 28467,
+ 28470,
+ 28473,
+ 28477,
+ 28480,
+ 28483,
+ 28487,
+ 28490,
+ 28493,
+ 28497,
+ 28500,
+ 28503,
+ 28507,
+ 28510,
+ 28513,
+ 28517,
+ 28520,
+ 28523,
+ 28527,
+ 28530,
+ 28533,
+ 28536,
+ 28540,
+ 28543,
+ 28546,
+ 28550,
+ 28553,
+ 28556,
+ 28560,
+ 28563,
+ 28566,
+ 28570,
+ 28573,
+ 28576,
+ 28580,
+ 28583,
+ 28586,
+ 28590,
+ 28593,
+ 28596,
+ 28600,
+ 28603,
+ 28606,
+ 28610,
+ 28613,
+ 28616,
+ 28620,
+ 28623,
+ 28626,
+ 28630,
+ 28633,
+ 28636,
+ 28639,
+ 28643,
+ 28646,
+ 28649,
+ 28653,
+ 28656,
+ 28659,
+ 28663,
+ 28666,
+ 28669,
+ 28673,
+ 28676,
+ 28679,
+ 28683,
+ 28686,
+ 28689,
+ 28693,
+ 28696,
+ 28699,
+ 28703,
+ 28706,
+ 28709,
+ 28713,
+ 28716,
+ 28719,
+ 28723,
+ 28726,
+ 28729,
+ 28732,
+ 28736,
+ 28739,
+ 28742,
+ 28746,
+ 28749,
+ 28752,
+ 28756,
+ 28759,
+ 28762,
+ 28766,
+ 28769,
+ 28772,
+ 28776,
+ 28779,
+ 28782,
+ 28786,
+ 28789,
+ 28792,
+ 28796,
+ 28799,
+ 28802,
+ 28806,
+ 28809,
+ 28812,
+ 28816,
+ 28819,
+ 28822,
+ 28825,
+ 28829,
+ 28832,
+ 28835,
+ 28839,
+ 28842,
+ 28845,
+ 28849,
+ 28852,
+ 28855,
+ 28859,
+ 28862,
+ 28865,
+ 28869,
+ 28872,
+ 28875,
+ 28879,
+ 28882,
+ 28885,
+ 28889,
+ 28892,
+ 28895,
+ 28899,
+ 28902,
+ 28905,
+ 28909,
+ 28912,
+ 28915,
+ 28919,
+ 28922,
+ 28925,
+ 28928,
+ 28932,
+ 28935,
+ 28938,
+ 28942,
+ 28945,
+ 28948,
+ 28952,
+ 28955,
+ 28958,
+ 28962,
+ 28965,
+ 28968,
+ 28972,
+ 28975,
+ 28978,
+ 28982,
+ 28985,
+ 28988,
+ 28992,
+ 28995,
+ 28998,
+ 29002,
+ 29005,
+ 29008,
+ 29012,
+ 29015,
+ 29018,
+ 29021,
+ 29025,
+ 29028,
+ 29031,
+ 29035,
+ 29038,
+ 29041,
+ 29045,
+ 29048,
+ 29051,
+ 29055,
+ 29058,
+ 29061,
+ 29065,
+ 29068,
+ 29071,
+ 29075,
+ 29078,
+ 29081,
+ 29085,
+ 29088,
+ 29091,
+ 29095,
+ 29098,
+ 29101,
+ 29105,
+ 29108,
+ 29111,
+ 29115,
+ 29118,
+ 29121,
+ 29124,
+ 29128,
+ 29131,
+ 29134,
+ 29138,
+ 29141,
+ 29144,
+ 29148,
+ 29151,
+ 29154,
+ 29158,
+ 29161,
+ 29164,
+ 29168,
+ 29171,
+ 29174,
+ 29178,
+ 29181,
+ 29184,
+ 29188,
+ 29191,
+ 29194,
+ 29198,
+ 29201,
+ 29204,
+ 29208,
+ 29211,
+ 29214,
+ 29217,
+ 29221,
+ 29224,
+ 29227,
+ 29231,
+ 29234,
+ 29237,
+ 29241,
+ 29244,
+ 29247,
+ 29251,
+ 29254,
+ 29257,
+ 29261,
+ 29264,
+ 29267,
+ 29271,
+ 29274,
+ 29277,
+ 29281,
+ 29284,
+ 29287,
+ 29291,
+ 29294,
+ 29297,
+ 29301,
+ 29304,
+ 29307,
+ 29310,
+ 29314,
+ 29317,
+ 29320,
+ 29324,
+ 29327,
+ 29330,
+ 29334,
+ 29337,
+ 29340,
+ 29344,
+ 29347,
+ 29350,
+ 29354,
+ 29357,
+ 29360,
+ 29364,
+ 29367,
+ 29370,
+ 29374,
+ 29377,
+ 29380,
+ 29384,
+ 29387,
+ 29390,
+ 29394,
+ 29397,
+ 29400,
+ 29404,
+ 29407,
+ 29410,
+ 29413,
+ 29417,
+ 29420,
+ 29423,
+ 29427,
+ 29430,
+ 29433,
+ 29437,
+ 29440,
+ 29443,
+ 29447,
+ 29450,
+ 29453,
+ 29457,
+ 29460,
+ 29463,
+ 29467,
+ 29470,
+ 29473,
+ 29477,
+ 29480,
+ 29483,
+ 29487,
+ 29490,
+ 29493,
+ 29497,
+ 29500,
+ 29503,
+ 29506,
+ 29510,
+ 29513,
+ 29516,
+ 29520,
+ 29523,
+ 29526,
+ 29530,
+ 29533,
+ 29536,
+ 29540,
+ 29543,
+ 29546,
+ 29550,
+ 29553,
+ 29556,
+ 29560,
+ 29563,
+ 29566,
+ 29570,
+ 29573,
+ 29576,
+ 29580,
+ 29583,
+ 29586,
+ 29590,
+ 29593,
+ 29596,
+ 29600,
+ 29603,
+ 29606,
+ 29609,
+ 29613,
+ 29616,
+ 29619,
+ 29623,
+ 29626,
+ 29629,
+ 29633,
+ 29636,
+ 29639,
+ 29643,
+ 29646,
+ 29649,
+ 29653,
+ 29656,
+ 29659,
+ 29663,
+ 29666,
+ 29669,
+ 29673,
+ 29676,
+ 29679,
+ 29683,
+ 29686,
+ 29689,
+ 29693,
+ 29696,
+ 29699,
+ 29702,
+ 29706,
+ 29709,
+ 29712,
+ 29716,
+ 29719,
+ 29722,
+ 29726,
+ 29729,
+ 29732,
+ 29736,
+ 29739,
+ 29742,
+ 29746,
+ 29749,
+ 29752,
+ 29756,
+ 29759,
+ 29762,
+ 29766,
+ 29769,
+ 29772,
+ 29776,
+ 29779,
+ 29782,
+ 29786,
+ 29789,
+ 29792,
+ 29796,
+ 29799,
+ 29802,
+ 29805,
+ 29809,
+ 29812,
+ 29815,
+ 29819,
+ 29822,
+ 29825,
+ 29829,
+ 29832,
+ 29835,
+ 29839,
+ 29842,
+ 29845,
+ 29849,
+ 29852,
+ 29855,
+ 29859,
+ 29862,
+ 29865,
+ 29869,
+ 29872,
+ 29875,
+ 29879,
+ 29882,
+ 29885,
+ 29889,
+ 29892,
+ 29895,
+ 29898,
+ 29902,
+ 29905,
+ 29908,
+ 29912,
+ 29915,
+ 29918,
+ 29922,
+ 29925,
+ 29928,
+ 29932,
+ 29935,
+ 29938,
+ 29942,
+ 29945,
+ 29948,
+ 29952,
+ 29955,
+ 29958,
+ 29962,
+ 29965,
+ 29968,
+ 29972,
+ 29975,
+ 29978,
+ 29982,
+ 29985,
+ 29988,
+ 29991,
+ 29995,
+ 29998,
+ 30001,
+ 30005,
+ 30008,
+ 30011,
+ 30015,
+ 30018,
+ 30021,
+ 30025,
+ 30028,
+ 30031,
+ 30035,
+ 30038,
+ 30041,
+ 30045,
+ 30048,
+ 30051,
+ 30055,
+ 30058,
+ 30061,
+ 30065,
+ 30068,
+ 30071,
+ 30075,
+ 30078,
+ 30081,
+ 30085,
+ 30088,
+ 30091,
+ 30094,
+ 30098,
+ 30101,
+ 30104,
+ 30108,
+ 30111,
+ 30114,
+ 30118,
+ 30121,
+ 30124,
+ 30128,
+ 30131,
+ 30134,
+ 30138,
+ 30141,
+ 30144,
+ 30148,
+ 30151,
+ 30154,
+ 30158,
+ 30161,
+ 30164,
+ 30168,
+ 30171,
+ 30174,
+ 30178,
+ 30181,
+ 30184,
+ 30187,
+ 30191,
+ 30194,
+ 30197,
+ 30201,
+ 30204,
+ 30207,
+ 30211,
+ 30214,
+ 30217,
+ 30221,
+ 30224,
+ 30227,
+ 30231,
+ 30234,
+ 30237,
+ 30241,
+ 30244,
+ 30247,
+ 30251,
+ 30254,
+ 30257,
+ 30261,
+ 30264,
+ 30267,
+ 30271,
+ 30274,
+ 30277,
+ 30281,
+ 30284,
+ 30287,
+ 30290,
+ 30294,
+ 30297,
+ 30300,
+ 30304,
+ 30307,
+ 30310,
+ 30314,
+ 30317,
+ 30320,
+ 30324,
+ 30327,
+ 30330,
+ 30334,
+ 30337,
+ 30340,
+ 30344,
+ 30347,
+ 30350,
+ 30354,
+ 30357,
+ 30360,
+ 30364,
+ 30367,
+ 30370,
+ 30374,
+ 30377,
+ 30380,
+ 30383,
+ 30387,
+ 30390,
+ 30393,
+ 30397,
+ 30400,
+ 30403,
+ 30407,
+ 30410,
+ 30413,
+ 30417,
+ 30420,
+ 30423,
+ 30427,
+ 30430,
+ 30433,
+ 30437,
+ 30440,
+ 30443,
+ 30447,
+ 30450,
+ 30453,
+ 30457,
+ 30460,
+ 30463,
+ 30467,
+ 30470,
+ 30473,
+ 30476,
+ 30480,
+ 30483,
+ 30486,
+ 30490,
+ 30493,
+ 30496,
+ 30500,
+ 30503,
+ 30506,
+ 30510,
+ 30513,
+ 30516,
+ 30520,
+ 30523,
+ 30526,
+ 30530,
+ 30533,
+ 30536,
+ 30540,
+ 30543,
+ 30546,
+ 30550,
+ 30553,
+ 30556,
+ 30560,
+ 30563,
+ 30566,
+ 30570,
+ 30573,
+ 30576,
+ 30579,
+ 30583,
+ 30586,
+ 30589,
+ 30593,
+ 30596,
+ 30599,
+ 30603,
+ 30606,
+ 30609,
+ 30613,
+ 30616,
+ 30619,
+ 30623,
+ 30626,
+ 30629,
+ 30633,
+ 30636,
+ 30639,
+ 30643,
+ 30646,
+ 30649,
+ 30653,
+ 30656,
+ 30659,
+ 30663,
+ 30666,
+ 30669,
+ 30672,
+ 30676,
+ 30679,
+ 30682,
+ 30686,
+ 30689,
+ 30692,
+ 30696,
+ 30699,
+ 30702,
+ 30706,
+ 30709,
+ 30712,
+ 30716,
+ 30719,
+ 30722,
+ 30726,
+ 30729,
+ 30732,
+ 30736,
+ 30739,
+ 30742,
+ 30746,
+ 30749,
+ 30752,
+ 30756,
+ 30759,
+ 30762,
+ 30766,
+ 30769,
+ 30772,
+ 30775,
+ 30779,
+ 30782,
+ 30785,
+ 30789,
+ 30792,
+ 30795,
+ 30799,
+ 30802,
+ 30805,
+ 30809,
+ 30812,
+ 30815,
+ 30819,
+ 30822,
+ 30825,
+ 30829,
+ 30832,
+ 30835,
+ 30839,
+ 30842,
+ 30845,
+ 30849,
+ 30852,
+ 30855,
+ 30859,
+ 30862,
+ 30865,
+ 30868,
+ 30872,
+ 30875,
+ 30878,
+ 30882,
+ 30885,
+ 30888,
+ 30892,
+ 30895,
+ 30898,
+ 30902,
+ 30905,
+ 30908,
+ 30912,
+ 30915,
+ 30918,
+ 30922,
+ 30925,
+ 30928,
+ 30932,
+ 30935,
+ 30938,
+ 30942,
+ 30945,
+ 30948,
+ 30952,
+ 30955,
+ 30958,
+ 30961,
+ 30965,
+ 30968,
+ 30971,
+ 30975,
+ 30978,
+ 30981,
+ 30985,
+ 30988,
+ 30991,
+ 30995,
+ 30998,
+ 31001,
+ 31005,
+ 31008,
+ 31011,
+ 31015,
+ 31018,
+ 31021,
+ 31025,
+ 31028,
+ 31031,
+ 31035,
+ 31038,
+ 31041,
+ 31045,
+ 31048,
+ 31051,
+ 31055,
+ 31058,
+ 31061,
+ 31064,
+ 31068,
+ 31071,
+ 31074,
+ 31078,
+ 31081,
+ 31084,
+ 31088,
+ 31091,
+ 31094,
+ 31098,
+ 31101,
+ 31104,
+ 31108,
+ 31111,
+ 31114,
+ 31118,
+ 31121,
+ 31124,
+ 31128,
+ 31131,
+ 31134,
+ 31138,
+ 31141,
+ 31144,
+ 31148,
+ 31151,
+ 31154,
+ 31157,
+ 31161,
+ 31164,
+ 31167,
+ 31171,
+ 31174,
+ 31177,
+ 31181,
+ 31184,
+ 31187,
+ 31191,
+ 31194,
+ 31197,
+ 31201,
+ 31204,
+ 31207,
+ 31211,
+ 31214,
+ 31217,
+ 31221,
+ 31224,
+ 31227,
+ 31231,
+ 31234,
+ 31237,
+ 31241,
+ 31244,
+ 31247,
+ 31251,
+ 31254,
+ 31257,
+ 31260,
+ 31264,
+ 31267,
+ 31270,
+ 31274,
+ 31277,
+ 31280,
+ 31284,
+ 31287,
+ 31290,
+ 31294,
+ 31297,
+ 31300,
+ 31304,
+ 31307,
+ 31310,
+ 31314,
+ 31317,
+ 31320,
+ 31324,
+ 31327,
+ 31330,
+ 31334,
+ 31337,
+ 31340,
+ 31344,
+ 31347,
+ 31350,
+ 31353,
+ 31357,
+ 31360,
+ 31363,
+ 31367,
+ 31370,
+ 31373,
+ 31377,
+ 31380,
+ 31383,
+ 31387,
+ 31390,
+ 31393,
+ 31397,
+ 31400,
+ 31403,
+ 31407,
+ 31410,
+ 31413,
+ 31417,
+ 31420,
+ 31423,
+ 31427,
+ 31430,
+ 31433,
+ 31437,
+ 31440,
+ 31443,
+ 31446,
+ 31450,
+ 31453,
+ 31456,
+ 31460,
+ 31463,
+ 31466,
+ 31470,
+ 31473,
+ 31476,
+ 31480,
+ 31483,
+ 31486,
+ 31490,
+ 31493,
+ 31496,
+ 31500,
+ 31503,
+ 31506,
+ 31510,
+ 31513,
+ 31516,
+ 31520,
+ 31523,
+ 31526,
+ 31530,
+ 31533,
+ 31536,
+ 31540,
+ 31543,
+ 31546,
+ 31549,
+ 31553,
+ 31556,
+ 31559,
+ 31563,
+ 31566,
+ 31569,
+ 31573,
+ 31576,
+ 31579,
+ 31583,
+ 31586,
+ 31589,
+ 31593,
+ 31596,
+ 31599,
+ 31603,
+ 31606,
+ 31609,
+ 31613,
+ 31616,
+ 31619,
+ 31623,
+ 31626,
+ 31629,
+ 31633,
+ 31636,
+ 31639,
+ 31642,
+ 31646,
+ 31649,
+ 31652,
+ 31656,
+ 31659,
+ 31662,
+ 31666,
+ 31669,
+ 31672,
+ 31676,
+ 31679,
+ 31682,
+ 31686,
+ 31689,
+ 31692,
+ 31696,
+ 31699,
+ 31702,
+ 31706,
+ 31709,
+ 31712,
+ 31716,
+ 31719,
+ 31722,
+ 31726,
+ 31729,
+ 31732,
+ 31736,
+ 31739,
+ 31742,
+ 31745,
+ 31749,
+ 31752,
+ 31755,
+ 31759,
+ 31762,
+ 31765,
+ 31769,
+ 31772,
+ 31775,
+ 31779,
+ 31782,
+ 31785,
+ 31789,
+ 31792,
+ 31795,
+ 31799,
+ 31802,
+ 31805,
+ 31809,
+ 31812,
+ 31815,
+ 31819,
+ 31822,
+ 31825,
+ 31829,
+ 31832,
+ 31835,
+ 31838,
+ 31842,
+ 31845,
+ 31848,
+ 31852,
+ 31855,
+ 31858,
+ 31862,
+ 31865,
+ 31868,
+ 31872,
+ 31875,
+ 31878,
+ 31882,
+ 31885,
+ 31888,
+ 31892,
+ 31895,
+ 31898,
+ 31902,
+ 31905,
+ 31908,
+ 31912,
+ 31915,
+ 31918,
+ 31922,
+ 31925,
+ 31928,
+ 31931,
+ 31935,
+ 31938,
+ 31941,
+ 31945,
+ 31948,
+ 31951,
+ 31955,
+ 31958,
+ 31961,
+ 31965,
+ 31968,
+ 31971,
+ 31975,
+ 31978,
+ 31981,
+ 31985,
+ 31988,
+ 31991,
+ 31995,
+ 31998,
+ 32001,
+ 32005,
+ 32008,
+ 32011,
+ 32015,
+ 32018,
+ 32021,
+ 32025,
+ 32028,
+ 32031,
+ 32034,
+ 32038,
+ 32041,
+ 32044,
+ 32048,
+ 32051,
+ 32054,
+ 32058,
+ 32061,
+ 32064,
+ 32068,
+ 32071,
+ 32074,
+ 32078,
+ 32081,
+ 32084,
+ 32088,
+ 32091,
+ 32094,
+ 32098,
+ 32101,
+ 32104,
+ 32108,
+ 32111,
+ 32114,
+ 32118,
+ 32121,
+ 32124,
+ 32127,
+ 32131,
+ 32134,
+ 32137,
+ 32141,
+ 32144,
+ 32147,
+ 32151,
+ 32154,
+ 32157,
+ 32161,
+ 32164,
+ 32167,
+ 32171,
+ 32174,
+ 32177,
+ 32181,
+ 32184,
+ 32187,
+ 32191,
+ 32194,
+ 32197,
+ 32201,
+ 32204,
+ 32207,
+ 32211,
+ 32214,
+ 32217,
+ 32221,
+ 32224,
+ 32227,
+ 32230,
+ 32234,
+ 32237,
+ 32240,
+ 32244,
+ 32247,
+ 32250,
+ 32254,
+ 32257,
+ 32260,
+ 32264,
+ 32267,
+ 32270,
+ 32274,
+ 32277,
+ 32280,
+ 32284,
+ 32287,
+ 32290,
+ 32294,
+ 32297,
+ 32300,
+ 32304,
+ 32307,
+ 32310,
+ 32314,
+ 32317,
+ 32320,
+ 32323,
+ 32327,
+ 32330,
+ 32333,
+ 32337,
+ 32340,
+ 32343,
+ 32347,
+ 32350,
+ 32353,
+ 32357,
+ 32360,
+ 32363,
+ 32367,
+ 32370,
+ 32373,
+ 32377,
+ 32380,
+ 32383,
+ 32387,
+ 32390,
+ 32393,
+ 32397,
+ 32400,
+ 32403,
+ 32407,
+ 32410,
+ 32413,
+ 32417,
+ 32420,
+ 32423,
+ 32426,
+ 32430,
+ 32433,
+ 32436,
+ 32440,
+ 32443,
+ 32446,
+ 32450,
+ 32453,
+ 32456,
+ 32460,
+ 32463,
+ 32466,
+ 32470,
+ 32473,
+ 32476,
+ 32480,
+ 32483,
+ 32486,
+ 32490,
+ 32493,
+ 32496,
+ 32500,
+ 32503,
+ 32506,
+ 32510,
+ 32513,
+ 32516,
+ 32519,
+ 32523,
+ 32526,
+ 32529,
+ 32533,
+ 32536,
+ 32539,
+ 32543,
+ 32546,
+ 32549,
+ 32553,
+ 32556,
+ 32559,
+ 32563,
+ 32566,
+ 32569,
+ 32573,
+ 32576,
+ 32579,
+ 32583,
+ 32586,
+ 32589,
+ 32593,
+ 32596,
+ 32599,
+ 32603,
+ 32606,
+ 32609,
+ 32612,
+ 32616,
+ 32619,
+ 32622,
+ 32626,
+ 32629,
+ 32632,
+ 32636,
+ 32639,
+ 32642,
+ 32646,
+ 32649,
+ 32652,
+ 32656,
+ 32659,
+ 32662,
+ 32666,
+ 32669,
+ 32672,
+ 32676,
+ 32679,
+ 32682,
+ 32686,
+ 32689,
+ 32692,
+ 32696,
+ 32699,
+ 32702,
+ 32706,
+ 32709,
+ 32712,
+ 32715,
+ 32719,
+ 32722,
+ 32725,
+ 32729,
+ 32732,
+ 32735,
+ 32739,
+ 32742,
+ 32745,
+ 32749,
+ 32752,
+ 32755,
+ 32759,
+ 32762,
+ 32765,
+ 32769,
+ 32772,
+ 32775,
+ 32779,
+ 32782,
+ 32785,
+ 32789,
+ 32792,
+ 32795,
+ 32799,
+ 32802,
+ 32805,
+ 32808,
+ 32812,
+ 32815,
+ 32818,
+ 32822,
+ 32825,
+ 32828,
+ 32832,
+ 32835,
+ 32838,
+ 32842,
+ 32845,
+ 32848,
+ 32852,
+ 32855,
+ 32858,
+ 32862,
+ 32865,
+ 32868,
+ 32872,
+ 32875,
+ 32878,
+ 32882,
+};
+
+static const BID_UINT256 bid_multipliers1_binary32[] = {
+ {{6013890151484785128ull, 7481633477359093489ull,
+ 655737588518723529ull, 651851512427ull}},
+ {{12129048707783369314ull, 13963727865126254765ull,
+ 14654730040930568123ull, 814814390533ull}},
+ {{1326252829447047930ull, 12842973812980430553ull,
+ 4483354495881046442ull, 1018517988167ull}},
+ {{12358123064472874716ull, 12638544651540156999ull,
+ 9719625587566735882ull, 636573742604ull}},
+ {{10835967812163705491ull, 6574808777570420441ull,
+ 12149531984458419853ull, 795717178255ull}},
+ {{18156645783632019768ull, 12830196990390413455ull,
+ 10575228962145636912ull, 994646472819ull}},
+ {{18265432642411094211ull, 8018873118994008409ull,
+ 4303675092127329118ull, 621654045512ull}},
+ {{8996732747731704052ull, 800219361887734704ull, 5379593865159161398ull,
+ 777067556890ull}},
+ {{11245915934664630065ull, 10223646239214444188ull,
+ 15947864368303727555ull, 971334446112ull}},
+ {{16252069496020169599ull, 4083935890295333665ull,
+ 9967415230189829722ull, 607084028820ull}},
+ {{6480028814743048286ull, 14328291899723942890ull,
+ 12459269037737287152ull, 758855036025ull}},
+ {{17323408055283586166ull, 17910364874654928612ull,
+ 1739028241889445228ull, 948568795032ull}},
+ {{1603757997697465546ull, 1970606009804554575ull,
+ 1086892651180903268ull, 592855496895ull}},
+ {{15839755552403995644ull, 2463257512255693218ull,
+ 15193673869258292797ull, 741069371118ull}},
+ {{10576322403650218747ull, 7690757908747004427ull,
+ 9768720299718090188ull, 926336713898ull}},
+ {{4304358493067692765ull, 14030095729821653575ull,
+ 10717136205751194271ull, 578960446186ull}},
+ {{768762097907228052ull, 12925933643849679065ull,
+ 4173048220334217031ull, 723700557733ull}},
+ {{5572638640811422969ull, 11545731036384710927ull,
+ 9827996293845159193ull, 904625697166ull}},
+ {{10400428178148221212ull, 298552870099362473ull,
+ 1530811665225836592ull, 565391060729ull}},
+ {{17612221241112664419ull, 373191087624203091ull,
+ 6525200599959683644ull, 706738825911ull}},
+ {{17403590532963442619ull, 466488859530253864ull,
+ 3544814731522216651ull, 883423532389ull}},
+ {{10877244083102151637ull, 16432456601702266329ull,
+ 4521352216415079358ull, 552139707743ull}},
+ {{18208241122305077450ull, 11317198715273057103ull,
+ 1040004252091461294ull, 690174634679ull}},
+ {{18148615384453958909ull, 4923126357236545571ull,
+ 15135063370396490330ull, 862718293348ull}},
+ {{18074083212140060732ull, 15377279983400457772ull,
+ 472085139286061296ull, 1078397866686ull}},
+ {{2072929970732762150ull, 9610799989625286108ull,
+ 14130111267335952022ull, 673998666678ull}},
+ {{2591162463415952687ull, 2790127950176831827ull,
+ 8439267047315164220ull, 842498333348ull}},
+ {{17074011134552104570ull, 3487659937721039783ull,
+ 10549083809143955275ull, 1053122916685ull}},
+ {{17588785986736147213ull, 18320688525571507528ull,
+ 8899020389928665998ull, 658201822928ull}},
+ {{3539238409710632400ull, 13677488620109608603ull,
+ 11123775487410832498ull, 822752278660ull}},
+ {{18259106067420454212ull, 7873488738282234945ull,
+ 13904719359263540623ull, 1028440348325ull}},
+ {{4494412264496702026ull, 11838459489067478697ull,
+ 10996292608753406841ull, 642775217703ull}},
+ {{10229701349048265437ull, 963016306052184659ull,
+ 9133679742514370648ull, 803469022129ull}},
+ {{8175440667882943892ull, 1203770382565230824ull,
+ 16028785696570351214ull, 1004336277661ull}},
+ {{5109650417426839933ull, 14587414544385432977ull,
+ 12323834069570163460ull, 627710173538ull}},
+ {{10998749040210937820ull, 18234268180481791221ull,
+ 6181420550107928517ull, 784637716923ull}},
+ {{18360122318691060179ull, 8957777170320075314ull,
+ 3115089669207522743ull, 980797146154ull}},
+ {{16086762467609300516ull, 12516139759091128927ull,
+ 6558617061682089618ull, 612998216346ull}},
+ {{15496767066084237741ull, 6421802662009135351ull,
+ 17421643363957387831ull, 766247770432ull}},
+ {{14759272814177909272ull, 3415567309084031285ull,
+ 3330310131237183173ull, 957809713041ull}},
+ {{11530388518074887247ull, 4440572577391213505ull,
+ 13610658878091709243ull, 598631070650ull}},
+ {{577927592311445347ull, 939029703311628978ull, 7789951560759860746ull,
+ 748288838313ull}},
+ {{9945781527244082491ull, 10397159165994312030ull,
+ 14349125469377213836ull, 935361047891ull}},
+ {{1604427436100163653ull, 15721596515601220827ull,
+ 6662360409147064695ull, 584600654932ull}},
+ {{15840592350407368278ull, 15040309626074138129ull,
+ 8327950511433830869ull, 730750818665ull}},
+ {{5965682382727046636ull, 4965328977310508950ull,
+ 15021624157719676491ull, 913438523331ull}},
+ {{17563609544486567859ull, 797487601605374141ull,
+ 7082672089361103855ull, 570899077082ull}},
+ {{8119453875326046112ull, 14831917557288881389ull,
+ 18076712148556155626ull, 713623846352ull}},
+ {{14761003362584945544ull, 9316524909756325928ull,
+ 4149146111985642917ull, 892029807941ull}},
+ {{9225627101615590965ull, 8128671077811397657ull,
+ 4899059329204720775ull, 557518629963ull}},
+ {{16143719895446876610ull, 5549152828836859167ull,
+ 1512138143078513065ull, 696898287454ull}},
+ {{15567963850881207859ull, 11548127054473461863ull,
+ 11113544715702917139ull, 871122859317ull}},
+ {{14848268795174121920ull, 9823472799664439425ull, 56872839346482712ull,
+ 1088903574147ull}},
+ {{2362638969342744344ull, 6139670499790274641ull,
+ 16176446589087409359ull, 680564733841ull}},
+ {{7564984730105818334ull, 3062902106310455397ull,
+ 6385500181077097987ull, 850705917302ull}},
+ {{14067916931059660821ull, 17663685688170232958ull,
+ 17205247263201148291ull, 1063382396627ull}},
+ {{4180762063484900109ull, 8733960545892701647ull,
+ 8447436530287023730ull, 664613997892ull}},
+ {{614266560928737233ull, 1694078645511101251ull,
+ 10559295662858779663ull, 830767497365ull}},
+ {{14602891256443085253ull, 15952656362171040275ull,
+ 17810805597000862482ull, 1038459371706ull}},
+ {{6820964026063234331ull, 14582096244784288076ull,
+ 15743439516552926955ull, 649037107316ull}},
+ {{8526205032579042914ull, 13615934287552972191ull,
+ 1232555321981607078ull, 811296384146ull}},
+ {{6046070272296415738ull, 7796545822586439431ull,
+ 10764066189331784656ull, 1014120480182ull}},
+ {{10696322947826341692ull, 4872841139116524644ull,
+ 2115855349904977506ull, 633825300114ull}},
+ {{13370403684782927115ull, 15314423460750431613ull,
+ 11868191224235997690ull, 792281625142ull}},
+ {{2877946550696495182ull, 9919657289083263709ull,
+ 5611866993440221305ull, 990352031428ull}},
+ {{4104559603399003441ull, 17729000851745509578ull,
+ 12730788907754914123ull, 618970019642ull}},
+ {{14354071541103530109ull, 17549565046254499068ull,
+ 6690114097838866846ull, 773712524553ull}},
+ {{17942589426379412636ull, 12713584270963348027ull,
+ 12974328640725971462ull, 967140655691ull}},
+ {{8908275382273438946ull, 3334304150924704613ull,
+ 5803112391240038212ull, 604462909807ull}},
+ {{15747030246269186586ull, 4167880188655880766ull,
+ 2642204470622659861ull, 755578637259ull}},
+ {{10460415770981707425ull, 9821536254247238862ull,
+ 17137813643560488538ull, 944473296573ull}},
+ {{1926073838436179237ull, 10750146177331912193ull,
+ 13016976536438999288ull, 590295810358ull}},
+ {{7019278316472611950ull, 13437682721664890241ull,
+ 7047848633693973302ull, 737869762948ull}},
+ {{13385783914018152841ull, 7573731365226336993ull,
+ 8809810792117466628ull, 922337203685ull}},
+ {{1448585918620263670ull, 13956954140121236429ull,
+ 7811974754287110594ull, 576460752303ull}},
+ {{6422418416702717491ull, 8222820638296769728ull,
+ 5153282424431500339ull, 720575940379ull}},
+ {{8028023020878396864ull, 5666839779443574256ull,
+ 1829917012111987520ull, 900719925474ull}},
+ {{5017514388048998040ull, 3541774862152233910ull,
+ 5755384150997380104ull, 562949953421ull}},
+ {{15495265021916023358ull, 4427218577690292387ull,
+ 11805916207174113034ull, 703687441776ull}},
+ {{14757395258967641293ull, 14757395258967641292ull,
+ 14757395258967641292ull, 879609302220ull}},
+ {{0ull, 0ull, 0ull, 1099511627776ull}},
+ {{0ull, 0ull, 0ull, 687194767360ull}},
+ {{0ull, 0ull, 0ull, 858993459200ull}},
+ {{0ull, 0ull, 0ull, 1073741824000ull}},
+ {{0ull, 0ull, 0ull, 671088640000ull}},
+ {{0ull, 0ull, 0ull, 838860800000ull}},
+ {{0ull, 0ull, 0ull, 1048576000000ull}},
+ {{0ull, 0ull, 0ull, 655360000000ull}},
+ {{0ull, 0ull, 0ull, 819200000000ull}},
+ {{0ull, 0ull, 0ull, 1024000000000ull}},
+ {{0ull, 0ull, 0ull, 640000000000ull}},
+ {{0ull, 0ull, 0ull, 800000000000ull}},
+ {{0ull, 0ull, 0ull, 1000000000000ull}},
+ {{0ull, 0ull, 0ull, 625000000000ull}},
+ {{0ull, 0ull, 0ull, 781250000000ull}},
+ {{0ull, 0ull, 0ull, 976562500000ull}},
+ {{0ull, 0ull, 0ull, 610351562500ull}},
+ {{0ull, 0ull, 0ull, 762939453125ull}},
+ {{0ull, 0ull, 4611686018427387904ull, 953674316406ull}},
+ {{0ull, 0ull, 16717361816799281152ull, 596046447753ull}},
+ {{0ull, 0ull, 7061644215716937728ull, 745058059692ull}},
+ {{0ull, 0ull, 8827055269646172160ull, 931322574615ull}},
+ {{0ull, 0ull, 12434438571169939456ull, 582076609134ull}},
+ {{0ull, 0ull, 6319676177107648512ull, 727595761418ull}},
+ {{0ull, 0ull, 17122967258239336448ull, 909494701772ull}},
+ {{0ull, 0ull, 1478482499544809472ull, 568434188608ull}},
+ {{0ull, 0ull, 1848103124431011840ull, 710542735760ull}},
+ {{0ull, 0ull, 2310128905538764800ull, 888178419700ull}},
+ {{0ull, 0ull, 10667202602816503808ull, 555111512312ull}},
+ {{0ull, 0ull, 13334003253520629760ull, 693889390390ull}},
+ {{0ull, 0ull, 7444132030046011392ull, 867361737988ull}},
+ {{0ull, 0ull, 9305165037557514240ull, 1084202172485ull}},
+ {{0ull, 0ull, 8121571157687140352ull, 677626357803ull}},
+ {{0ull, 0ull, 5540277928681537536ull, 847032947254ull}},
+ {{0ull, 0ull, 16148719447706697728ull, 1058791184067ull}},
+ {{0ull, 0ull, 7787106645602992128ull, 661744490042ull}},
+ {{0ull, 0ull, 510511270148964352ull, 827180612553ull}},
+ {{0ull, 0ull, 5249825106113593344ull, 1033975765691ull}},
+ {{0ull, 0ull, 975297682107301888ull, 646234853557ull}},
+ {{0ull, 0ull, 5830808121061515264ull, 807793566946ull}}
+};
+
+static const BID_UINT256 bid_multipliers2_binary32[] = {
+ {{12230317112597168372ull, 12964188775534322552ull,
+ 9551240831114137572ull, 325925756213ull}},
+ {{15287896390746460465ull, 16205235969417903190ull,
+ 16550737057320059869ull, 407407195266ull}},
+ {{9886498451578299773ull, 6421486906490215276ull,
+ 11465049284795299029ull, 509258994083ull}},
+ {{15402433569091213166ull, 6319272325770078499ull,
+ 4859812793783367941ull, 318286871302ull}},
+ {{14641355942936628554ull, 12510776425639986028ull,
+ 15298138029083985734ull, 397858589127ull}},
+ {{18301694928670785692ull, 6415098495195206727ull,
+ 14510986517927594264ull, 497323236409ull}},
+ {{18356088358060322914ull, 4009436559497004204ull,
+ 2151837546063664559ull, 310827022756ull}},
+ {{4498366373865852026ull, 400109680943867352ull, 2689796932579580699ull,
+ 388533778445ull}},
+ {{5622957967332315033ull, 14335195156461997902ull,
+ 7973932184151863777ull, 485667223056ull}},
+ {{17349406784864860608ull, 2041967945147666832ull,
+ 4983707615094914861ull, 303542014410ull}},
+ {{3240014407371524143ull, 7164145949861971445ull,
+ 15453006555723419384ull, 379427518012ull}},
+ {{8661704027641793083ull, 8955182437327464306ull, 869514120944722614ull,
+ 474284397516ull}},
+ {{10025251035703508581ull, 985303004902277287ull,
+ 9766818362445227442ull, 296427748447ull}},
+ {{7919877776201997822ull, 10455000792982622417ull,
+ 7596836934629146398ull, 370534685559ull}},
+ {{14511533238679885182ull, 3845378954373502213ull,
+ 4884360149859045094ull, 463168356949ull}},
+ {{11375551283388622191ull, 16238419901765602595ull,
+ 5358568102875597135ull, 289480223093ull}},
+ {{9607753085808389834ull, 15686338858779615340ull,
+ 11309896147021884323ull, 361850278866ull}},
+ {{12009691357260487293ull, 14996237555047131271ull,
+ 4913998146922579596ull, 452312848583ull}},
+ {{14423586125928886414ull, 149276435049681236ull,
+ 9988777869467694104ull, 282695530364ull}},
+ {{18029482657411108018ull, 186595543812101545ull,
+ 12485972336834617630ull, 353369412955ull}},
+ {{8701795266481721310ull, 9456616466619902740ull,
+ 10995779402615884133ull, 441711766194ull}},
+ {{14661994078405851627ull, 8216228300851133164ull,
+ 11484048145062315487ull, 276069853871ull}},
+ {{18327492598007314533ull, 5658599357636528551ull,
+ 9743374162900506455ull, 345087317339ull}},
+ {{18297679729081755263ull, 2461563178618272785ull,
+ 7567531685198245165ull, 431359146674ull}},
+ {{9037041606070030366ull, 7688639991700228886ull, 236042569643030648ull,
+ 539198933343ull}},
+ {{1036464985366381075ull, 4805399994812643054ull,
+ 7065055633667976011ull, 336999333339ull}},
+ {{10518953268562752152ull, 1395063975088415913ull,
+ 4219633523657582110ull, 421249166674ull}},
+ {{17760377604130828093ull, 10967202005715295699ull,
+ 14497913941426753445ull, 526561458342ull}},
+ {{8794392993368073607ull, 9160344262785753764ull,
+ 4449510194964332999ull, 329100911464ull}},
+ {{10992991241710092008ull, 6838744310054804301ull,
+ 5561887743705416249ull, 411376139330ull}},
+ {{18352925070565002914ull, 13160116405995893280ull,
+ 16175731716486546119ull, 514220174162ull}},
+ {{11470578169103126821ull, 15142601781388515156ull,
+ 14721518341231479228ull, 321387608851ull}},
+ {{14338222711378908527ull, 481508153026092329ull,
+ 13790211908111961132ull, 401734511064ull}},
+ {{4087720333941471946ull, 601885191282615412ull,
+ 17237764885139951415ull, 502168138830ull}},
+ {{11778197245568195775ull, 7293707272192716488ull,
+ 6161917034785081730ull, 313855086769ull}},
+ {{14722746556960244718ull, 18340506127095671418ull,
+ 12314082311908740066ull, 392318858461ull}},
+ {{9180061159345530090ull, 13702260622014813465ull,
+ 1557544834603761371ull, 490398573077ull}},
+ {{17266753270659426066ull, 6258069879545564463ull,
+ 3279308530841044809ull, 306499108173ull}},
+ {{16971755569896894679ull, 12434273367859343483ull,
+ 8710821681978693915ull, 383123885216ull}},
+ {{16603008443943730444ull, 10931155691396791450ull,
+ 10888527102473367394ull, 478904856520ull}},
+ {{14988566295892219432ull, 11443658325550382560ull,
+ 6805329439045854621ull, 299315535325ull}},
+ {{288963796155722674ull, 469514851655814489ull, 13118347817234706181ull,
+ 374144419156ull}},
+ {{4972890763622041246ull, 5198579582997156015ull,
+ 16397934771543382726ull, 467680523945ull}},
+ {{10025585754904857635ull, 17084170294655386221ull,
+ 3331180204573532347ull, 292300327466ull}},
+ {{17143668212058459947ull, 16743526849891844872ull,
+ 13387347292571691242ull, 365375409332ull}},
+ {{2982841191363523318ull, 11706036525510030283ull,
+ 16734184115714614053ull, 456719261665ull}},
+ {{18005176809098059738ull, 9622115837657462878ull,
+ 3541336044680551927ull, 285449538541ull}},
+ {{13283098974517798864ull, 7415958778644440694ull,
+ 9038356074278077813ull, 356811923176ull}},
+ {{7380501681292472772ull, 13881634491732938772ull,
+ 11297945092847597266ull, 446014903970ull}},
+ {{13836185587662571291ull, 13287707575760474636ull,
+ 11672901701457136195ull, 278759314981ull}},
+ {{17295231984578214113ull, 11997948451273205391ull,
+ 756069071539256532ull, 348449143727ull}},
+ {{17007353962295379738ull, 14997435564091506739ull,
+ 14780144394706234377ull, 435561429658ull}},
+ {{16647506434441836768ull, 4911736399832219712ull,
+ 9251808456528017164ull, 544451787073ull}},
+ {{10404691521526147980ull, 12293207286749913128ull,
+ 17311595331398480487ull, 340282366920ull}},
+ {{13005864401907684975ull, 10754823090010003506ull,
+ 3192750090538548993ull, 425352958651ull}},
+ {{7033958465529830411ull, 18055214880939892287ull,
+ 17825995668455349953ull, 531691198313ull}},
+ {{11313753068597225863ull, 4366980272946350823ull,
+ 4223718265143511865ull, 332306998946ull}},
+ {{9530505317319144425ull, 10070411359610326433ull,
+ 14503019868284165639ull, 415383748682ull}},
+ {{16524817665076318435ull, 7976328181085520137ull,
+ 8905402798500431241ull, 519229685853ull}},
+ {{3410482013031617166ull, 16514420159246919846ull,
+ 7871719758276463477ull, 324518553658ull}},
+ {{13486474553144297265ull, 6807967143776486095ull,
+ 616277660990803539ull, 405648192073ull}},
+ {{12246407173002983677ull, 3898272911293219715ull,
+ 5382033094665892328ull, 507060240091ull}},
+ {{5348161473913170846ull, 2436420569558262322ull,
+ 1057927674952488753ull, 316912650057ull}},
+ {{15908573879246239366ull, 7657211730375215806ull,
+ 5934095612117998845ull, 396140812571ull}},
+ {{10662345312203023399ull, 14183200681396407662ull,
+ 2805933496720110652ull, 495176015714ull}},
+ {{2052279801699501721ull, 18087872462727530597ull,
+ 6365394453877457061ull, 309485009821ull}},
+ {{7177035770551765055ull, 8774782523127249534ull,
+ 12568429085774209231ull, 386856262276ull}},
+ {{18194666750044482126ull, 6356792135481674013ull,
+ 15710536357217761539ull, 483570327845ull}},
+ {{13677509727991495281ull, 1667152075462352306ull,
+ 12124928232474794914ull, 302231454903ull}},
+ {{7873515123134593293ull, 11307312131182716191ull,
+ 10544474272166105738ull, 377789318629ull}},
+ {{5230207885490853713ull, 4910768127123619431ull,
+ 17792278858635020077ull, 472236648286ull}},
+ {{10186408956072865427ull, 5375073088665956096ull,
+ 6508488268219499644ull, 295147905179ull}},
+ {{12733011195091081783ull, 6718841360832445120ull,
+ 3523924316846986651ull, 368934881474ull}},
+ {{15916263993863852229ull, 3786865682613168496ull,
+ 13628277432913509122ull, 461168601842ull}},
+ {{9947664996164907643ull, 6978477070060618214ull,
+ 13129359413998331105ull, 288230376151ull}},
+ {{3211209208351358746ull, 13334782356003160672ull,
+ 11800013249070525977ull, 360287970189ull}},
+ {{4014011510439198432ull, 2833419889721787128ull, 914958506055993760ull,
+ 450359962737ull}},
+ {{2508757194024499020ull, 1770887431076116955ull,
+ 12101064112353465860ull, 281474976710ull}},
+ {{16971004547812787487ull, 2213609288845146193ull,
+ 5902958103587056517ull, 351843720888ull}},
+ {{7378697629483820647ull, 7378697629483820646ull,
+ 7378697629483820646ull, 439804651110ull}},
+ {{0ull, 0ull, 0ull, 549755813888ull}},
+ {{0ull, 0ull, 0ull, 343597383680ull}},
+ {{0ull, 0ull, 0ull, 429496729600ull}},
+ {{0ull, 0ull, 0ull, 536870912000ull}},
+ {{0ull, 0ull, 0ull, 335544320000ull}},
+ {{0ull, 0ull, 0ull, 419430400000ull}},
+ {{0ull, 0ull, 0ull, 524288000000ull}},
+ {{0ull, 0ull, 0ull, 327680000000ull}},
+ {{0ull, 0ull, 0ull, 409600000000ull}},
+ {{0ull, 0ull, 0ull, 512000000000ull}},
+ {{0ull, 0ull, 0ull, 320000000000ull}},
+ {{0ull, 0ull, 0ull, 400000000000ull}},
+ {{0ull, 0ull, 0ull, 500000000000ull}},
+ {{0ull, 0ull, 0ull, 312500000000ull}},
+ {{0ull, 0ull, 0ull, 390625000000ull}},
+ {{0ull, 0ull, 0ull, 488281250000ull}},
+ {{0ull, 0ull, 0ull, 305175781250ull}},
+ {{0ull, 0ull, 9223372036854775808ull, 381469726562ull}},
+ {{0ull, 0ull, 2305843009213693952ull, 476837158203ull}},
+ {{0ull, 0ull, 17582052945254416384ull, 298023223876ull}},
+ {{0ull, 0ull, 3530822107858468864ull, 372529029846ull}},
+ {{0ull, 0ull, 13636899671677861888ull, 465661287307ull}},
+ {{0ull, 0ull, 6217219285584969728ull, 291038304567ull}},
+ {{0ull, 0ull, 3159838088553824256ull, 363797880709ull}},
+ {{0ull, 0ull, 8561483629119668224ull, 454747350886ull}},
+ {{0ull, 0ull, 739241249772404736ull, 284217094304ull}},
+ {{0ull, 0ull, 924051562215505920ull, 355271367880ull}},
+ {{0ull, 0ull, 1155064452769382400ull, 444089209850ull}},
+ {{0ull, 0ull, 5333601301408251904ull, 277555756156ull}},
+ {{0ull, 0ull, 6667001626760314880ull, 346944695195ull}},
+ {{0ull, 0ull, 3722066015023005696ull, 433680868994ull}},
+ {{0ull, 0ull, 13875954555633532928ull, 542101086242ull}},
+ {{0ull, 0ull, 13284157615698345984ull, 338813178901ull}},
+ {{0ull, 0ull, 2770138964340768768ull, 423516473627ull}},
+ {{0ull, 0ull, 17297731760708124672ull, 529395592033ull}},
+ {{0ull, 0ull, 3893553322801496064ull, 330872245021ull}},
+ {{0ull, 0ull, 9478627671929257984ull, 413590306276ull}},
+ {{0ull, 0ull, 11848284589911572480ull, 516987882845ull}},
+ {{0ull, 0ull, 9711020877908426752ull, 323117426778ull}},
+ {{0ull, 0ull, 2915404060530757632ull, 403896783473ull}}
+};
+
+static const BID_UINT256 bid_multipliers1_binary64[] = {
+ {{1837554224478941466ull, 10276842184138466546ull,
+ 11651621577776737258ull, 7754513766366540701ull}},
+ {{5760157408726726321ull, 11034712383513929495ull,
+ 9588106495324154738ull, 4846571103979087938ull}},
+ {{2588510742481019997ull, 4570018442537636061ull,
+ 2761761082300417615ull, 6058213879973859923ull}},
+ {{7847324446528662900ull, 1100837034744657172ull,
+ 17287259408157685731ull, 7572767349967324903ull}},
+ {{14127949815935190120ull, 16828924211211268396ull,
+ 17722066157739635437ull, 4732979593729578064ull}},
+ {{17659937269918987650ull, 7201097208731921783ull,
+ 3705838623464992681ull, 5916224492161972581ull}},
+ {{17463235568971346659ull, 13613057529342290133ull,
+ 9243984297758628755ull, 7395280615202465726ull}},
+ {{13220365239820785614ull, 6202317946625237381ull,
+ 1165804167671755068ull, 4622050384501541079ull}},
+ {{2690398494493818305ull, 7752897433281546727ull,
+ 15292313264871857547ull, 5777562980626926348ull}},
+ {{17198056173399436594ull, 5079435773174545504ull,
+ 668647507380270318ull, 7221953725783657936ull}},
+ {{3050826143039744126ull, 15572666753322957689ull,
+ 835809384225337897ull, 9027442157229572420ull}},
+ {{13435981385468309839ull, 2815387693185766699ull,
+ 9745752901995611994ull, 5642151348268482762ull}},
+ {{12183290713407999394ull, 12742606653336984182ull,
+ 2958819090639739184ull, 7052689185335603453ull}},
+ {{6005741354905223435ull, 15928258316671230228ull,
+ 8310209881727061884ull, 8815861481669504316ull}},
+ {{12976960383670540455ull, 731789411064743084ull,
+ 14417253212934189486ull, 5509913426043440197ull}},
+ {{16221200479588175569ull, 10138108800685704663ull,
+ 4186508460885573145ull, 6887391782554300247ull}},
+ {{15664814581057831557ull, 17284322019284518733ull,
+ 621449557679578527ull, 8609239728192875309ull}},
+ {{12096352122374838675ull, 17720230289693906064ull,
+ 2694248982763430531ull, 5380774830120547068ull}},
+ {{15120440152968548344ull, 17538601843689994676ull,
+ 3367811228454288164ull, 6725968537650683835ull}},
+ {{453806117501133814ull, 3476508230902941730ull,
+ 18044822090850023918ull, 8407460672063354793ull}},
+ {{4895314841865596538ull, 16007875699596502293ull,
+ 4360484779140183092ull, 5254662920039596746ull}},
+ {{10730829570759383576ull, 1563100550786076250ull,
+ 14673978010780004674ull, 6568328650049495932ull}},
+ {{4190164926594453662ull, 11177247725337371121ull,
+ 18342472513475005842ull, 8210410812561869915ull}},
+ {{14148068125190003299ull, 11597465846763244854ull,
+ 9158202311708184699ull, 5131506757851168697ull}},
+ {{8461713119632728315ull, 9885146290026668164ull,
+ 16059438908062618778ull, 6414383447313960871ull}},
+ {{10577141399540910394ull, 3133060825678559397ull,
+ 15462612616650885569ull, 8017979309142451089ull}},
+ {{8916556383926762949ull, 13487378062117569383ull,
+ 2746603857765721624ull, 5011237068214031931ull}},
+ {{6534009461481065782ull, 16859222577646961729ull,
+ 17268312877489315742ull, 6264046335267539913ull}},
+ {{12779197845278720131ull, 11850656185203926353ull,
+ 7750333041579480966ull, 7830057919084424892ull}},
+ {{1069469625658118226ull, 2794974097325066067ull,
+ 14067330187841951412ull, 4893786199427765557ull}},
+ {{15171895087354811494ull, 3493717621656332583ull,
+ 3749104679520275553ull, 6117232749284706947ull}},
+ {{14353182840766126464ull, 8978833045497803633ull, 74694830972956537ull,
+ 7646540936605883684ull}},
+ {{2053210247837747184ull, 17140985699504597031ull,
+ 9270056306212873643ull, 4779088085378677302ull}},
+ {{16401570865079347692ull, 16814546105953358384ull,
+ 2364198345911316246ull, 5973860106723346628ull}},
+ {{2055219507639632999ull, 11794810595586922173ull,
+ 2955247932389145308ull, 7467325133404183285ull}},
+ {{3590355201488464576ull, 16595128659096602166ull,
+ 4152872966956909769ull, 4667078208377614553ull}},
+ {{13711316038715356528ull, 6908852768588588995ull,
+ 9802777227123525116ull, 5833847760472018191ull}},
+ {{12527459029966807756ull, 8636065960735736244ull,
+ 7641785515477018491ull, 7292309700590022739ull}},
+ {{15659323787458509695ull, 6183396432492282401ull,
+ 4940545875918885210ull, 9115387125737528424ull}},
+ {{2869548339520486704ull, 8476308788735064405ull,
+ 3087841172449303256ull, 5697116953585955265ull}},
+ {{8198621442827996284ull, 10595385985918830506ull,
+ 8471487483989016974ull, 7121396191982444081ull}},
+ {{1024904766680219546ull, 4020860445543762325ull,
+ 15201045373413659122ull, 8901745239978055101ull}},
+ {{2946408488388831169ull, 7124723796892239357ull,
+ 11806496367597230903ull, 5563590774986284438ull}},
+ {{8294696628913426865ull, 4294218727687911292ull,
+ 5534748422641762821ull, 6954488468732855548ull}},
+ {{10368370786141783581ull, 9979459428037277019ull,
+ 6918435528302203526ull, 8693110585916069435ull}},
+ {{4174388732124920786ull, 1625476124095910233ull,
+ 2018179195975183252ull, 5433194116197543397ull}},
+ {{9829671933583538887ull, 2031845155119887791ull,
+ 7134410013396366969ull, 6791492645246929246ull}},
+ {{7675403898552035704ull, 7151492462327247643ull,
+ 18141384553600234519ull, 8489365806558661557ull}},
+ {{2491284427381328363ull, 11387211816595611633ull,
+ 13644208355213840526ull, 5305853629099163473ull}},
+ {{7725791552654048358ull, 5010642733889738733ull,
+ 3220202388735136946ull, 6632317036373954342ull}},
+ {{14268925459244948351ull, 15486675454216949224ull,
+ 13248625022773696990ull, 8290396295467442927ull}},
+ {{8918078412028092720ull, 5067486140458205361ull,
+ 15197919666874642475ull, 5181497684667151829ull}},
+ {{15759284033462503804ull, 1722671657145368797ull,
+ 5162341528311139382ull, 6476872105833939787ull}},
+ {{5864046986545966042ull, 11376711608286486805ull,
+ 1841240891961536323ull, 8096090132292424734ull}},
+ {{5970872375804922729ull, 4804601745965360301ull,
+ 14985833612758123914ull, 5060056332682765458ull}},
+ {{12075276488183541315ull, 15229124219311476184ull,
+ 9508919979092879084ull, 6325070415853456823ull}},
+ {{15094095610229426643ull, 589661200429793614ull,
+ 7274463955438710952ull, 7906338019816821029ull}},
+ {{4822123737966003748ull, 368538250268621009ull, 6852382981362888297ull,
+ 4941461262385513143ull}},
+ {{10639340690884892589ull, 5072358831263164165ull,
+ 3953792708276222467ull, 6176826577981891429ull}},
+ {{17910861882033503640ull, 1728762520651567302ull,
+ 9553926903772665988ull, 7721033222477364286ull}},
+ {{6582602657843551871ull, 10303848612262005372ull,
+ 1359518296430528338ull, 4825645764048352679ull}},
+ {{8228253322304439839ull, 3656438728472730907ull,
+ 15534455925820324135ull, 6032057205060440848ull}},
+ {{5673630634453161895ull, 18405606465873077346ull,
+ 971325833565853552ull, 7540071506325551061ull}},
+ {{8157705164960614088ull, 11503504041170673341ull,
+ 2912921655192352422ull, 4712544691453469413ull}},
+ {{14808817474628155514ull, 5156008014608565868ull,
+ 8252838087417828432ull, 5890680864316836766ull}},
+ {{64277769575642777ull, 6445010018260707336ull, 1092675572417509732ull,
+ 7363351080396045958ull}},
+ {{80347211969553471ull, 8056262522825884170ull, 10589216502376662973ull,
+ 9204188850495057447ull}},
+ {{4661903025908358824ull, 7341007085979871558ull,
+ 13535789341626496214ull, 5752618031559410904ull}},
+ {{15050750819240224337ull, 18399630894329615255ull,
+ 16919736677033120267ull, 7190772539449263630ull}},
+ {{14201752505622892517ull, 18387852599484631165ull,
+ 11926298809436624526ull, 8988465674311579538ull}},
+ {{11181938325228001776ull, 6880721856250506574ull,
+ 12065622774325278233ull, 5617791046444737211ull}},
+ {{4754050869680226411ull, 13212588338740521122ull,
+ 10470342449479209887ull, 7022238808055921514ull}},
+ {{15165935623955058822ull, 11904049404998263498ull,
+ 3864556024994236551ull, 8777798510069901893ull}},
+ {{14090395783399299668ull, 14357559905764996542ull,
+ 4721190524835091796ull, 5486124068793688683ull}},
+ {{8389622692394348777ull, 17946949882206245678ull,
+ 1289802137616476841ull, 6857655085992110854ull}},
+ {{1263656328638160163ull, 8598629297475643386ull,
+ 10835624708875371860ull, 8572068857490138567ull}},
+ {{5401471223826238006ull, 14597515347777052924ull,
+ 13689794470688189268ull, 5357543035931336604ull}},
+ {{6751839029782797507ull, 18246894184721316155ull,
+ 17112243088360236585ull, 6696928794914170755ull}},
+ {{3828112768801108980ull, 8973559675619481482ull,
+ 16778617842022907828ull, 8371160993642713444ull}},
+ {{7004256498928081017ull, 14831846834116951734ull,
+ 1263264114409541584ull, 5231975621026695903ull}},
+ {{17978692660514877079ull, 93064468936638051ull,
+ 15414138198294090693ull, 6539969526283369878ull}},
+ {{17861679807216208444ull, 4728016604598185468ull,
+ 10044300711012837558ull, 8174961907854212348ull}},
+ {{1940177842655354470ull, 16790068433156029630ull,
+ 15501059981237799281ull, 5109351192408882717ull}},
+ {{11648594340173968895ull, 7152527486162873325ull,
+ 5541266921265085390ull, 6386688990511103397ull}},
+ {{725684869935297407ull, 18164031394558367465ull,
+ 11538269670008744641ull, 7983361238138879246ull}},
+ {{11982768089778030640ull, 4434990593957897809ull,
+ 2599732525328077497ull, 4989600773836799529ull}},
+ {{1143402056940374587ull, 10155424260874760166ull,
+ 7861351675087484775ull, 6237000967295999411ull}},
+ {{10652624608030244042ull, 8082594307666062303ull,
+ 5215003575431968065ull, 7796251209119999264ull}},
+ {{13575419407659984382ull, 16580836488359758699ull,
+ 3259377234644980040ull, 4872657005699999540ull}},
+ {{12357588241147592574ull, 2279301536740146758ull,
+ 4074221543306225051ull, 6090821257124999425ull}},
+ {{6223613264579714909ull, 16684184976207347160ull,
+ 9704462947560169217ull, 7613526571406249281ull}},
+ {{3889758290362321819ull, 3510086582488510119ull,
+ 17594504388293575521ull, 4758454107128905800ull}},
+ {{250511844525514369ull, 8999294246538025553ull, 3546386411657417785ull,
+ 5948067633911132251ull}},
+ {{4924825824084280865ull, 15860803826599919845ull,
+ 18268041069853935943ull, 7435084542388915313ull}},
+ {{5383859149266369493ull, 16830531419266031759ull,
+ 4499996641017628108ull, 4646927838993072071ull}},
+ {{2118137918155573962ull, 2591420200372988083ull,
+ 1013309782844647232ull, 5808659798741340089ull}},
+ {{16482730452976631164ull, 3239275250466235103ull,
+ 5878323246983196944ull, 7260824748426675111ull}},
+ {{15991727047793401051ull, 4049094063082793879ull,
+ 2736218040301608276ull, 9076030935533343889ull}},
+ {{16912358432511957513ull, 11754055826281521982ull,
+ 13239351321256974932ull, 5672519334708339930ull}},
+ {{11917076003785171083ull, 14692569782851902478ull,
+ 7325817114716442857ull, 7090649168385424913ull}},
+ {{5672972967876688046ull, 4530654173282714386ull,
+ 13768957411822941476ull, 8863311460481781141ull}},
+ {{8157294123350317933ull, 12055030895156472299ull,
+ 10911441391603032374ull, 5539569662801113213ull}},
+ {{5584931635760509512ull, 5845416582090814566ull,
+ 18250987757931178372ull, 6924462078501391516ull}},
+ {{16204536581555412698ull, 7306770727613518207ull,
+ 4366990623704421349ull, 8655577598126739396ull}},
+ {{17045364391113214793ull, 6872574713972142831ull,
+ 11952741176670039151ull, 5409735998829212122ull}},
+ {{16695019470464130587ull, 3979032374037790635ull,
+ 5717554433982773131ull, 6762169998536515153ull}},
+ {{16257088319652775329ull, 362104449119850390ull,
+ 11758629060905854318ull, 8452712498170643941ull}},
+ {{5548994181355596677ull, 14061373335982070206ull,
+ 9654986172279852900ull, 5282945311356652463ull}},
+ {{16159614763549271654ull, 17576716669977587757ull,
+ 7457046696922428221ull, 6603681639195815579ull}},
+ {{6364460399154425855ull, 8135837782189820985ull,
+ 4709622352725647373ull, 8254602048994769474ull}},
+ {{15507002795539985920ull, 7390741623082332067ull,
+ 7555199988880917512ull, 5159126280621730921ull}},
+ {{14772067475997594496ull, 9238427028852915084ull,
+ 14055686004528534794ull, 6448907850777163651ull}},
+ {{18340271287441503ull, 2324661749211368048ull, 12957921487233280589ull,
+ 8061134813471454564ull}},
+ {{11462669554650940ull, 3758756602470798982ull, 17322072966375576176ull,
+ 5038209258419659102ull}},
+ {{9237700373798089483ull, 4698445753088498727ull,
+ 12429219171114694412ull, 6297761573024573878ull}},
+ {{6935439448820223949ull, 5873057191360623409ull,
+ 6313151927038592207ull, 7872201966280717348ull}},
+ {{15863864701581109728ull, 10588189772241471486ull,
+ 13169091991253895937ull, 4920126228925448342ull}},
+ {{10606458840121611352ull, 17846923233729227262ull,
+ 7237992952212594113ull, 6150157786156810428ull}},
+ {{4034701513297238382ull, 8473595986879370366ull,
+ 9047491190265742642ull, 7687697232696013035ull}},
+ {{16356746501092937701ull, 9907683510226994382ull,
+ 3348838984702395199ull, 4804810770435008147ull}},
+ {{11222561089511396318ull, 7772918369356355074ull,
+ 18021106786160157711ull, 6006013463043760183ull}},
+ {{4804829325034469590ull, 5104461943268055939ull,
+ 17914697464272809235ull, 7507516828804700229ull}},
+ {{697175318932849542ull, 884445705328841010ull, 13502528924384199724ull,
+ 4692198018002937643ull}},
+ {{10094841185520837735ull, 1105557131661051262ull,
+ 12266475137052861751ull, 5865247522503672054ull}},
+ {{3395179445046271361ull, 15217004469858477790ull,
+ 6109721884461301380ull, 7331559403129590068ull}},
+ {{13467346343162615009ull, 574511513613545621ull,
+ 7637152355576626726ull, 9164449253911987585ull}},
+ {{10722934473690328333ull, 14194127751290629725ull,
+ 16302435268303861463ull, 5727780783694992240ull}},
+ {{18015354110540298320ull, 13130973670685899252ull,
+ 1931300011670275213ull, 7159725979618740301ull}},
+ {{4072448564465821284ull, 2578659033075210354ull,
+ 7025811033015231921ull, 8949657474523425376ull}},
+ {{7156966371218526206ull, 13140876941740476231ull,
+ 4391131895634519950ull, 5593535921577140860ull}},
+ {{4334521945595769854ull, 7202724140320819481ull,
+ 5488914869543149938ull, 6991919901971426075ull}},
+ {{10029838450422100221ull, 18226777212255800159ull,
+ 2249457568501549518ull, 8739899877464282594ull}},
+ {{13186178059154894494ull, 6780049739232487195ull,
+ 6017596998740856353ull, 5462437423415176621ull}},
+ {{11871036555516230214ull, 13086748192467996898ull,
+ 12133682266853458345ull, 6828046779268970776ull}},
+ {{5615423657540511959ull, 2523377185302832411ull,
+ 15167102833566822932ull, 8535058474086213470ull}},
+ {{1203796776749126023ull, 10800482777669046065ull,
+ 4867753252551876428ull, 5334411546303883419ull}},
+ {{6116431989363795432ull, 13500603472086307581ull,
+ 1473005547262457631ull, 6668014432879854274ull}},
+ {{12257226005132132194ull, 12264068321680496572ull,
+ 11064628970932847847ull, 8335018041099817842ull}},
+ {{16884138290062358430ull, 14582571728691392213ull,
+ 11527079125260417808ull, 5209386275687386151ull}},
+ {{7270114807295784325ull, 18228214660864240267ull,
+ 9797162888148134356ull, 6511732844609232689ull}},
+ {{4475957490692342502ull, 4338524252370748718ull,
+ 16858139628612555850ull, 8139666055761540861ull}},
+ {{16632531486964877776ull, 7323263676159105852ull,
+ 12842180277096541358ull, 5087291284850963038ull}},
+ {{2343920284996545604ull, 18377451632053658124ull,
+ 6829353309515900889ull, 6359114106063703798ull}},
+ {{2929900356245682005ull, 9136756484784908943ull,
+ 17760063673749651920ull, 7948892632579629747ull}},
+ {{8748716750294633109ull, 5710472802990568089ull,
+ 8794196786879838498ull, 4968057895362268592ull}},
+ {{15547581956295679290ull, 16361463040592985919ull,
+ 10992745983599798122ull, 6210072369202835740ull}},
+ {{14822791426942211209ull, 11228456763886456591ull,
+ 13740932479499747653ull, 7762590461503544675ull}},
+ {{16181773669479963862ull, 9323628486642729321ull,
+ 6282239790473648331ull, 4851619038439715422ull}},
+ {{6392159031567791115ull, 7042849589876023748ull,
+ 17076171774946836222ull, 6064523798049644277ull}},
+ {{7990198789459738893ull, 18026934024199805493ull,
+ 7510156663401381565ull, 7580654747562055347ull}},
+ {{7299717252626030761ull, 13572676774338572385ull,
+ 2388004905412169526ull, 4737909217226284592ull}},
+ {{13736332584209926355ull, 7742473931068439673ull,
+ 2985006131765211908ull, 5922386521532855740ull}},
+ {{3335357674980244231ull, 9678092413835549592ull,
+ 3731257664706514885ull, 7402983151916069675ull}},
+ {{2084598546862652645ull, 8354650767860912447ull, 26193031227877851ull,
+ 4626864469947543547ull}},
+ {{16440806238860479518ull, 5831627441398752654ull,
+ 13867799344317011026ull, 5783580587434429433ull}},
+ {{11327635761720823589ull, 16512906338603216626ull,
+ 3499691125114100070ull, 7229475734293036792ull}},
+ {{4936172665296253678ull, 11417760886399244975ull,
+ 4374613906392625088ull, 9036844667866295990ull}},
+ {{10002636943451240405ull, 7136100553999528109ull,
+ 16569191746777554392ull, 5648027917416434993ull}},
+ {{17114982197741438410ull, 8920125692499410136ull,
+ 6876431628189779278ull, 7060034896770543742ull}},
+ {{2946983673467246397ull, 1926785078769486863ull,
+ 17818911572091999906ull, 8825043620963179677ull}},
+ {{8759393823558110854ull, 5815926692658317193ull,
+ 13442662741771193893ull, 5515652263101987298ull}},
+ {{15560928297875026471ull, 11881594384250284395ull,
+ 7579956390359216558ull, 6894565328877484123ull}},
+ {{14839474353916395185ull, 5628620943458079686ull,
+ 4863259469521632794ull, 8618206661096855154ull}},
+ {{4662985452770359087ull, 8129574108088687708ull,
+ 7651223186878408400ull, 5386379163185534471ull}},
+ {{5828731815962948858ull, 10161967635110859635ull,
+ 4952342965170622596ull, 6732973953981918089ull}},
+ {{2674228751526298169ull, 12702459543888574544ull,
+ 10802114724890666149ull, 8416217442477397611ull}},
+ {{1671392969703936356ull, 10244880224144053042ull,
+ 4445478693842972391ull, 5260135901548373507ull}},
+ {{11312613248984696253ull, 8194414261752678398ull,
+ 945162348876327585ull, 6575169876935466884ull}},
+ {{4917394524376094508ull, 14854703845618235902ull,
+ 1181452936095409481ull, 8218962346169333605ull}},
+ {{16908429633017222779ull, 2366660875870315582ull,
+ 3044251094273324878ull, 5136851466355833503ull}},
+ {{11912165004416752666ull, 12181698131692670286ull,
+ 17640371923123819809ull, 6421064332944791878ull}},
+ {{5666834218666165025ull, 1392064609333674146ull,
+ 12827092867049998954ull, 8026330416180989848ull}},
+ {{8153457405093741045ull, 5481726399260934245ull,
+ 8016933041906249346ull, 5016456510113118655ull}},
+ {{14803507774794564210ull, 16075530035930943614ull,
+ 5409480283955423778ull, 6270570637641398319ull}},
+ {{9281012681638429454ull, 10871040508058903710ull,
+ 2150164336516891819ull, 7838213297051747899ull}},
+ {{1188946907596630505ull, 4488557308323120867ull,
+ 17484753774818915051ull, 4898883310657342436ull}},
+ {{15321241689777951843ull, 999010616976513179ull,
+ 3409198144814092198ull, 6123604138321678046ull}},
+ {{14539866093795051900ull, 10472135308075417282ull,
+ 13484869717872391055ull, 7654505172902097557ull}},
+ {{13699102327049295341ull, 13462613595188217657ull,
+ 10733886582883938361ull, 4784065733063810973ull}},
+ {{3288819853529455465ull, 2993208938703108360ull,
+ 18029044247032310856ull, 5980082166329763716ull}},
+ {{4111024816911819331ull, 3741511173378885450ull,
+ 4089561235080836954ull, 7475102707912204646ull}},
+ {{7181076528997274986ull, 6950130501789191310ull,
+ 16391033827207686808ull, 4671939192445127903ull}},
+ {{18199717698101369540ull, 8687663127236489137ull,
+ 15877106265582220606ull, 5839923990556409879ull}},
+ {{8914589067344548213ull, 1636206872190835614ull,
+ 15234696813550387854ull, 7299904988195512349ull}},
+ {{1919864297325909458ull, 11268630627093320326ull,
+ 5208312961655821105ull, 9124881235244390437ull}},
+ {{15034973241110857124ull, 125365114292243347ull,
+ 5561038610248582143ull, 5703050772027744023ull}},
+ {{14182030532961183500ull, 13991764448147467896ull,
+ 2339612244383339774ull, 7128813465034680029ull}},
+ {{17727538166201479375ull, 8266333523329559062ull,
+ 7536201323906562622ull, 8911016831293350036ull}},
+ {{6468025335448536706ull, 554772433653586510ull,
+ 13933497864296377447ull, 5569385519558343772ull}},
+ {{17308403706165446690ull, 14528523597349146849ull,
+ 17416872330370471808ull, 6961731899447929715ull}},
+ {{7800446577424644651ull, 18160654496686433562ull,
+ 17159404394535701856ull, 8702164874309912144ull}},
+ {{9486965129317790811ull, 11350409060429020976ull,
+ 10724627746584813660ull, 5438853046443695090ull}},
+ {{11858706411647238513ull, 14188011325536276220ull,
+ 4182412646376241267ull, 6798566308054618863ull}},
+ {{14823383014559048142ull, 13123328138492957371ull,
+ 616329789542913680ull, 8498207885068273579ull}},
+ {{6958771374885711137ull, 8202080086558098357ull,
+ 16526107182960178714ull, 5311379928167670986ull}},
+ {{13310150237034526825ull, 1029228071342847138ull,
+ 11434261941845447585ull, 6639224910209588733ull}},
+ {{7414315759438382723ull, 5898221107605946827ull, 457769372024645769ull,
+ 8299031137761985917ull}},
+ {{2328104340435295250ull, 15215603238322186527ull,
+ 2591948866729097557ull, 5186894461101241198ull}},
+ {{16745188480826282774ull, 5184445992620569446ull,
+ 12463308120266147755ull, 6483618076376551497ull}},
+ {{11708113564178077660ull, 1868871472348323904ull,
+ 1744077095050520982ull, 8104522595470689372ull}},
+ {{7317570977611298537ull, 15003102725499866152ull,
+ 10313420221261351421ull, 5065326622169180857ull}},
+ {{9146963722014123172ull, 4918820351592668978ull,
+ 17503461295004077181ull, 6331658277711476071ull}},
+ {{2210332615662878157ull, 10760211457918224127ull,
+ 17267640600327708572ull, 7914572847139345089ull}},
+ {{8298986912430380704ull, 15948504198053665887ull,
+ 3874746347563736001ull, 4946608029462090681ull}},
+ {{5762047622110587976ull, 6100572192284918647ull,
+ 9455118952882057906ull, 6183260036827613351ull}},
+ {{2590873509210847066ull, 16849087277210924117ull,
+ 7207212672675184478ull, 7729075046034516689ull}},
+ {{3925138952470473368ull, 5918993529829439669ull,
+ 16033722966490460059ull, 4830671903771572930ull}},
+ {{9518109709015479614ull, 2787055893859411682ull,
+ 10818781671258299266ull, 6038339879714466163ull}},
+ {{2674265099414573710ull, 12707191904179040411ull,
+ 8911791070645486178ull, 7547924849643082704ull}},
+ {{17812316751629966233ull, 12553680958539288160ull,
+ 5569869419153428861ull, 4717453031026926690ull}},
+ {{3818651865827906175ull, 1857043142891946489ull,
+ 16185708810796561885ull, 5896816288783658362ull}},
+ {{9385000850712270622ull, 6932989947042321015ull,
+ 11008763976640926548ull, 7371020360979572953ull}},
+ {{7119565044962950374ull, 8666237433802901269ull,
+ 18372640989228546089ull, 9213775451224466191ull}},
+ {{6755571162315537936ull, 16945613442195283053ull,
+ 18400429645908923161ull, 5758609657015291369ull}},
+ {{13056149971321810324ull, 7346958747461940104ull,
+ 9165479002103990240ull, 7198262071269114212ull}},
+ {{16320187464152262904ull, 9183698434327425130ull,
+ 11456848752629987800ull, 8997827589086392765ull}},
+ {{14811803183522552219ull, 5739811521454640706ull,
+ 9466373479607436327ull, 5623642243178995478ull}},
+ {{9291381942548414466ull, 2563078383390912979ull,
+ 2609594812654519601ull, 7029552803973744348ull}},
+ {{7002541409758130179ull, 7815533997666029128ull,
+ 3261993515818149501ull, 8786941004967180435ull}},
+ {{4376588381098831362ull, 7190551757754962157ull,
+ 18179647011882201102ull, 5491838128104487771ull}},
+ {{10082421494800927106ull, 18211561734048478504ull,
+ 18112872746425363473ull, 6864797660130609714ull}},
+ {{12603026868501158883ull, 8929394112278434418ull,
+ 13417718896176928534ull, 8580997075163262143ull}},
+ {{12488577811240612206ull, 969185301746633607ull,
+ 15303603337751662190ull, 5363123171977038839ull}},
+ {{10999036245623377353ull, 10434853664038067817ull,
+ 14517818153762189833ull, 6703903964971298549ull}},
+ {{18360481325456609595ull, 17655253098474972675ull,
+ 4312214636920573579ull, 8379879956214123187ull}},
+ {{9169457819196687045ull, 8728690177333163970ull, 389291138861664535ull,
+ 5237424972633826992ull}},
+ {{2238450237141082998ull, 6299176703239067059ull, 486613923577080669ull,
+ 6546781215792283740ull}},
+ {{16633120851708517460ull, 12485656897476221727ull,
+ 608267404471350836ull, 8183476519740354675ull}},
+ {{17313229559958905269ull, 17026907597777414387ull,
+ 16521068192290451936ull, 5114672824837721671ull}},
+ {{17029850931521243682ull, 2836890423512216368ull,
+ 16039649221935677017ull, 6393341031047152089ull}},
+ {{2840569590692002986ull, 8157799047817658365ull,
+ 6214503472137432559ull, 7991676288808940112ull}},
+ {{4081199003396195818ull, 12016153432527118334ull,
+ 3884064670085895349ull, 4994797680505587570ull}},
+ {{14324870791100020581ull, 1185133735376734205ull,
+ 14078452874462144995ull, 6243497100631984462ull}},
+ {{4071030433592862014ull, 15316475224503081469ull,
+ 8374694056222905435ull, 7804371375789980578ull}},
+ {{4850237030209232711ull, 7266954006100731966ull,
+ 9845869803566703801ull, 4877732109868737861ull}},
+ {{15286168324616316697ull, 13695378526053302861ull,
+ 16919023272885767655ull, 6097165137335922326ull}},
+ {{5272652350488232159ull, 12507537139139240673ull,
+ 11925407054252433761ull, 7621456421669902908ull}},
+ {{14824622765123614859ull, 899681684320943564ull,
+ 16676751445762546909ull, 4763410263543689317ull}},
+ {{84034382694966958ull, 5736288123828567360ull, 7010881251921019924ull,
+ 5954262829429611647ull}},
+ {{105042978368708697ull, 7170360154785709200ull, 4151915546473887001ull,
+ 7442828536787014559ull}},
+ {{65651861480442936ull, 16010690142809538010ull, 9512476244187261231ull,
+ 4651767835491884099ull}},
+ {{9305436863705329478ull, 15401676660084534608ull,
+ 7278909286806688635ull, 5814709794364855124ull}},
+ {{11631796079631661847ull, 14640409806678280356ull,
+ 9098636608508360794ull, 7268387242956068905ull}},
+ {{14539745099539577309ull, 9077140221493074637ull,
+ 15984981779062838897ull, 9085484053695086131ull}},
+ {{11393183696425929770ull, 17202427684501641408ull,
+ 7684770602700580358ull, 5678427533559428832ull}},
+ {{14241479620532412213ull, 12279662568772275952ull,
+ 9605963253375725448ull, 7098034416949286040ull}},
+ {{17801849525665515266ull, 15349578210965344940ull,
+ 12007454066719656810ull, 8872543021186607550ull}},
+ {{1902783916686171233ull, 14205172400280728492ull,
+ 2892972773272397602ull, 5545339388241629719ull}},
+ {{2378479895857714042ull, 8533093463496134807ull,
+ 17451274021872660715ull, 6931674235302037148ull}},
+ {{16808157925104306264ull, 6054680810942780604ull,
+ 3367348453631274278ull, 8664592794127546436ull}},
+ {{1281726666335415607ull, 17619233562121401590ull,
+ 11327964820374322231ull, 5415370496329716522ull}},
+ {{10825530369774045317ull, 17412355934224364083ull,
+ 4936583988613126981ull, 6769213120412145653ull}},
+ {{8920226943790168742ull, 7930386862498291392ull,
+ 10782416004193796631ull, 8461516400515182066ull}},
+ {{5575141839868855464ull, 11874020816702513976ull,
+ 11350696021048510798ull, 5288447750321988791ull}},
+ {{6968927299836069330ull, 5619153984023366662ull,
+ 9576684007883250594ull, 6610559687902485989ull}},
+ {{17934531161649862470ull, 16247314516883984135ull,
+ 16582541028281451146ull, 8263199609878107486ull}},
+ {{18126611003672245900ull, 14766257591479877988ull,
+ 5752402124248519062ull, 5164499756173817179ull}},
+ {{4211519680880755759ull, 9234449952495071678ull,
+ 2578816636883260924ull, 6455624695217271474ull}},
+ {{14487771637955720506ull, 11543062440618839597ull,
+ 12446892832958851963ull, 8069530869021589342ull}},
+ {{11360700282936019269ull, 4908571016173080796ull,
+ 3167622002171894573ull, 5043456793138493339ull}},
+ {{14200875353670024086ull, 10747399788643738899ull,
+ 17794585557997031928ull, 6304320991423116673ull}},
+ {{13139408173660142203ull, 13434249735804673624ull,
+ 8408173892214126198ull, 7880401239278895842ull}},
+ {{8212130108537588877ull, 3784720066450533111ull,
+ 9866794701061216778ull, 4925250774549309901ull}},
+ {{5653476617244598192ull, 13954272119917942197ull,
+ 16945179394753908876ull, 6156563468186637376ull}},
+ {{11678531789983135644ull, 17442840149897427746ull,
+ 2734730169732834479ull, 7695704335233296721ull}},
+ {{11910768387166847682ull, 17819304121326974197ull,
+ 13238421402151491309ull, 4809815209520810450ull}},
+ {{1053402428676395890ull, 8439072096376554035ull,
+ 7324654715834588329ull, 6012269011901013063ull}},
+ {{15151811091127658574ull, 15160526138898080447ull,
+ 4544132376365847507ull, 7515336264876266329ull}},
+ {{16387410959595868465ull, 7169485827597606327ull,
+ 14369297781297124452ull, 4697085165547666455ull}},
+ {{15872577681067447677ull, 8961857284497007909ull,
+ 13349936208194017661ull, 5871356456934583069ull}},
+ {{6005664046052145885ull, 15814007624048647791ull,
+ 2852362204960358364ull, 7339195571168228837ull}},
+ {{2895394039137794452ull, 1320765456351258123ull,
+ 8177138774627835860ull, 9173994463960286046ull}},
+ {{17950522338956979196ull, 10048850447074312134ull,
+ 499025715715009508ull, 5733746539975178779ull}},
+ {{13214780886841448187ull, 12561063058842890168ull,
+ 14458840199925925597ull, 7167183174968973473ull}},
+ {{16518476108551810234ull, 1866270768271448998ull,
+ 4238492194625243285ull, 8958978968711216842ull}},
+ {{5712361549417493492ull, 3472262239383349576ull,
+ 7260743640068164957ull, 5599361855444510526ull}},
+ {{7140451936771866865ull, 8952013817656574874ull,
+ 18299301586939982004ull, 6999202319305638157ull}},
+ {{18148936957819609390ull, 11190017272070718592ull,
+ 9039068928392813793ull, 8749002899132047697ull}},
+ {{11343085598637255869ull, 76231767403117264ull,
+ 17178633126313978381ull, 5468126811957529810ull}},
+ {{14178856998296569836ull, 4706975727681284484ull,
+ 12249919371037697168ull, 6835158514946912263ull}},
+ {{17723571247870712295ull, 5883719659601605605ull,
+ 10700713195369733556ull, 8543948143683640329ull}},
+ {{13383075039132889136ull, 12900696824105779311ull,
+ 18217160793174553232ull, 5339967589802275205ull}},
+ {{12117157780488723516ull, 16125871030132224139ull,
+ 8936392936186027828ull, 6674959487252844007ull}},
+ {{10534761207183516491ull, 1710594713955728558ull,
+ 6558805151805146882ull, 8343699359066055009ull}},
+ {{1972539736062309903ull, 5680807714649718253ull,
+ 15628468265946686561ull, 5214812099416284380ull}},
+ {{7077360688505275283ull, 11712695661739535720ull,
+ 1088841258723806585ull, 6518515124270355476ull}},
+ {{8846700860631594104ull, 805811521892255938ull, 1361051573404758232ull,
+ 8148143905337944345ull}},
+ {{10140874056322134219ull, 503632201182659961ull,
+ 12379872279446443655ull, 5092589940836215215ull}},
+ {{17287778588830055677ull, 14464598306760488663ull,
+ 10863154330880666664ull, 6365737426045269019ull}},
+ {{16998037217610181693ull, 18080747883450610829ull,
+ 8967256895173445426ull, 7957171782556586274ull}},
+ {{12929616270220057510ull, 15912153445584019672ull,
+ 10216221577910791295ull, 4973232364097866421ull}},
+ {{16162020337775071888ull, 15278505788552636686ull,
+ 17381962990815877023ull, 6216540455122333026ull}},
+ {{10979153385364064051ull, 14486446217263407954ull,
+ 12504081701665070471ull, 7770675568902916283ull}},
+ {{11473656884279927936ull, 15971557913430711827ull,
+ 5509208054326975092ull, 4856672230564322677ull}},
+ {{9730385086922522016ull, 1517703318078838168ull,
+ 11498196086336106770ull, 6070840288205403346ull}},
+ {{12162981358653152520ull, 11120501184453323518ull,
+ 5149373071065357654ull, 7588550360256754183ull}},
+ {{2990177330730832421ull, 2338627221855939295ull,
+ 10135887197056930390ull, 4742843975160471364ull}},
+ {{17572779718695704238ull, 12146656064174699926ull,
+ 12669858996321162987ull, 5928554968950589205ull}},
+ {{12742602611514854490ull, 10571634061790987004ull,
+ 2002265690119290022ull, 7410693711188236507ull}},
+ {{17187498669051559864ull, 1995585270191978973ull,
+ 17392317120820413928ull, 4631683569492647816ull}},
+ {{7649315281032286118ull, 2494481587739973717ull,
+ 3293652327315965794ull, 5789604461865809771ull}},
+ {{14173330119717745552ull, 12341474021529742954ull,
+ 17952123464427120954ull, 7237005577332262213ull}},
+ {{8493290612792406132ull, 6203470490057402885ull,
+ 8605096275251737481ull, 9046256971665327767ull}},
+ {{7614149642208947785ull, 15406384102354346563ull,
+ 12295714199673417781ull, 5653910607290829854ull}},
+ {{4906001034333796827ull, 5422922072660769492ull,
+ 6146270712736996419ull, 7067388259113537318ull}},
+ {{6132501292917246033ull, 2166966572398573961ull,
+ 16906210427776021332ull, 8834235323891921647ull}},
+ {{15362028354141748531ull, 10577726144603884533ull,
+ 17483910545001095188ull, 5521397077432451029ull}},
+ {{5367477387395021951ull, 13222157680754855667ull,
+ 8019830125969205273ull, 6901746346790563787ull}},
+ {{2097660715816389535ull, 2692639045661405872ull,
+ 5413101639034118688ull, 8627182933488204734ull}},
+ {{1311037947385243460ull, 1682899403538378670ull,
+ 17218246579678487892ull, 5391989333430127958ull}},
+ {{10862169471086330132ull, 2103624254422973337ull,
+ 12299436187743334057ull, 6739986666787659948ull}},
+ {{18189397857285300569ull, 7241216336456104575ull,
+ 15374295234679167571ull, 8424983333484574935ull}},
+ {{18285902688444394712ull, 2219917201071371407ull,
+ 16526463549315561588ull, 5265614583427859334ull}},
+ {{18245692342128105486ull, 2774896501339214259ull,
+ 11434707399789676177ull, 6582018229284824168ull}},
+ {{18195429409232743953ull, 8080306645101405728ull,
+ 14293384249737095221ull, 8227522786606030210ull}},
+ {{11372143380770464971ull, 7356034662402072532ull,
+ 13545051174513072417ull, 5142201741628768881ull}},
+ {{14215179225963081214ull, 13806729346429978569ull,
+ 3096255912859176809ull, 6427752177035961102ull}},
+ {{3933915977171687805ull, 3423353627755309500ull,
+ 13093691927928746820ull, 8034690221294951377ull}},
+ {{11682069522587080686ull, 11362968054201844245ull,
+ 1266028427314384906ull, 5021681388309344611ull}},
+ {{767528847951687146ull, 4980338030897529499ull,
+ 15417593589425144845ull, 6277101735386680763ull}},
+ {{14794469115221772644ull, 10837108557049299777ull,
+ 14660305968354043152ull, 7846377169233350954ull}},
+ {{2329014169372526047ull, 6773192848155812361ull,
+ 13774377248648664874ull, 4903985730770844346ull}},
+ {{7522953730143045462ull, 17689863097049541259ull,
+ 7994599523956055284ull, 6129982163463555433ull}},
+ {{4792006144251418924ull, 3665584797602374958ull,
+ 14604935423372457010ull, 7662477704329444291ull}},
+ {{16830061895439300539ull, 6902676516928872252ull,
+ 6822241630394091679ull, 4789048565205902682ull}},
+ {{2590833295589574058ull, 4016659627733702412ull,
+ 17751174074847390407ull, 5986310706507378352ull}},
+ {{3238541619486967573ull, 409138516239740111ull, 3742223519849686393ull,
+ 7482888383134222941ull}},
+ {{8941617539820436589ull, 11784926618718307329ull,
+ 4644732709119747947ull, 4676805239458889338ull}},
+ {{15788707943202933640ull, 10119472254970496257ull,
+ 15029287923254460742ull, 5846006549323611672ull}},
+ {{5900826873721503338ull, 3425968281858344514ull, 339865830358524312ull,
+ 7307508186654514591ull}},
+ {{16599405629006654981ull, 4282460352322930642ull,
+ 14259890343230319102ull, 9134385233318143238ull}},
+ {{14986314536556547267ull, 16511595775483995363ull,
+ 4300745446091561534ull, 5708990770823839524ull}},
+ {{14121207152268296180ull, 11416122682500218396ull,
+ 5375931807614451918ull, 7136238463529799405ull}},
+ {{17651508940335370225ull, 5046781316270497187ull,
+ 11331600777945452802ull, 8920298079412249256ull}},
+ {{8726350078495912439ull, 7765924341096448646ull,
+ 7082250486215908001ull, 5575186299632655785ull}},
+ {{1684565561265114740ull, 14319091444797948712ull,
+ 13464499126197272905ull, 6968982874540819731ull}},
+ {{2105706951581393425ull, 4063806250715272178ull,
+ 12218937889319203228ull, 8711228593176024664ull}},
+ {{5927752863165758795ull, 11763250943551820919ull,
+ 7636836180824502017ull, 5444517870735015415ull}},
+ {{2798005060529810589ull, 869005624157612437ull, 4934359207603239618ull,
+ 6805647338418769269ull}},
+ {{8109192344089651141ull, 10309629067051791354ull,
+ 10779635027931437426ull, 8507059173023461586ull}},
+ {{9679931233483419867ull, 11055204185334757500ull,
+ 11348957910884536295ull, 5316911983139663491ull}},
+ {{12099914041854274834ull, 9207319213241058971ull,
+ 9574511370178282465ull, 6646139978924579364ull}},
+ {{10513206533890455638ull, 16120835034978711618ull,
+ 11968139212722853081ull, 8307674973655724205ull}},
+ {{11182440102108922678ull, 3157992869220612905ull,
+ 9785930017165477128ull, 5192296858534827628ull}},
+ {{142992072353989635ull, 3947491086525766132ull,
+ 12232412521456846410ull, 6490371073168534535ull}},
+ {{178740090442487044ull, 14157735895011983473ull,
+ 10678829633393670108ull, 8112963841460668169ull}},
+ {{11640927602595024163ull, 18071956971237265478ull,
+ 18203483566939513577ull, 5070602400912917605ull}},
+ {{5327787466389004395ull, 8754888158764418136ull,
+ 8919296403392228260ull, 6338253001141147007ull}},
+ {{6659734332986255494ull, 10943610198455522670ull,
+ 6537434485812897421ull, 7922816251426433759ull}},
+ {{17997392013398573396ull, 9145599383248395620ull,
+ 11003425581274142744ull, 4951760157141521099ull}},
+ {{4049995943038665129ull, 11431999229060494526ull,
+ 9142595958165290526ull, 6189700196426901374ull}},
+ {{14285866965653107219ull, 5066626999470842349ull,
+ 2204872910851837350ull, 7737125245533626718ull}},
+ {{11234509862746885964ull, 17001699929951440180ull,
+ 15213103624564562055ull, 4835703278458516698ull}},
+ {{14043137328433607455ull, 16640438894011912321ull,
+ 9793007493850926761ull, 6044629098073145873ull}},
+ {{3718863605259845606ull, 6965490562232726690ull,
+ 16852945385741046356ull, 7555786372591432341ull}},
+ {{6935975771714791408ull, 13576803638250229989ull,
+ 12838933875301847924ull, 4722366482869645213ull}},
+ {{13281655733070877164ull, 16971004547812787486ull,
+ 2213609288845146193ull, 5902958103587056517ull}},
+ {{7378697629483820647ull, 7378697629483820646ull,
+ 7378697629483820646ull, 7378697629483820646ull}},
+ {{0ull, 0ull, 0ull, 9223372036854775808ull}},
+ {{0ull, 0ull, 0ull, 5764607523034234880ull}},
+ {{0ull, 0ull, 0ull, 7205759403792793600ull}},
+ {{0ull, 0ull, 0ull, 9007199254740992000ull}},
+ {{0ull, 0ull, 0ull, 5629499534213120000ull}},
+ {{0ull, 0ull, 0ull, 7036874417766400000ull}},
+ {{0ull, 0ull, 0ull, 8796093022208000000ull}},
+ {{0ull, 0ull, 0ull, 5497558138880000000ull}},
+ {{0ull, 0ull, 0ull, 6871947673600000000ull}},
+ {{0ull, 0ull, 0ull, 8589934592000000000ull}},
+ {{0ull, 0ull, 0ull, 5368709120000000000ull}},
+ {{0ull, 0ull, 0ull, 6710886400000000000ull}},
+ {{0ull, 0ull, 0ull, 8388608000000000000ull}},
+ {{0ull, 0ull, 0ull, 5242880000000000000ull}},
+ {{0ull, 0ull, 0ull, 6553600000000000000ull}},
+ {{0ull, 0ull, 0ull, 8192000000000000000ull}},
+ {{0ull, 0ull, 0ull, 5120000000000000000ull}},
+ {{0ull, 0ull, 0ull, 6400000000000000000ull}},
+ {{0ull, 0ull, 0ull, 8000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 5000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 6250000000000000000ull}},
+ {{0ull, 0ull, 0ull, 7812500000000000000ull}},
+ {{0ull, 0ull, 0ull, 4882812500000000000ull}},
+ {{0ull, 0ull, 0ull, 6103515625000000000ull}},
+ {{0ull, 0ull, 0ull, 7629394531250000000ull}},
+ {{0ull, 0ull, 0ull, 4768371582031250000ull}},
+ {{0ull, 0ull, 0ull, 5960464477539062500ull}},
+ {{0ull, 0ull, 0ull, 7450580596923828125ull}},
+ {{0ull, 0ull, 2305843009213693952ull, 4656612873077392578ull}},
+ {{0ull, 0ull, 12105675798371893248ull, 5820766091346740722ull}},
+ {{0ull, 0ull, 5908722711110090752ull, 7275957614183425903ull}},
+ {{0ull, 0ull, 2774217370460225536ull, 9094947017729282379ull}},
+ {{0ull, 0ull, 17874786921033498624ull, 5684341886080801486ull}},
+ {{0ull, 0ull, 13120111614437097472ull, 7105427357601001858ull}},
+ {{0ull, 0ull, 7176767481191596032ull, 8881784197001252323ull}},
+ {{0ull, 0ull, 2179636666531053568ull, 5551115123125782702ull}},
+ {{0ull, 0ull, 11947917870018592768ull, 6938893903907228377ull}},
+ {{0ull, 0ull, 1099839282241077248ull, 8673617379884035472ull}},
+ {{0ull, 0ull, 687399551400673280ull, 5421010862427522170ull}},
+ {{0ull, 0ull, 10082621476105617408ull, 6776263578034402712ull}},
+ {{0ull, 0ull, 12603276845132021760ull, 8470329472543003390ull}},
+ {{0ull, 0ull, 3265362009780125696ull, 5293955920339377119ull}},
+ {{0ull, 0ull, 17916760567507320832ull, 6617444900424221398ull}},
+ {{0ull, 0ull, 13172578672529375232ull, 8271806125530276748ull}},
+ {{0ull, 0ull, 17456233707185635328ull, 5169878828456422967ull}},
+ {{0ull, 0ull, 17208606115554656256ull, 6462348535570528709ull}},
+ {{0ull, 0ull, 7675699589161156608ull, 8077935669463160887ull}},
+ {{0ull, 0ull, 11714841270866804736ull, 5048709793414475554ull}},
+ {{0ull, 0ull, 5420179551728730112ull, 6310887241768094443ull}},
+ {{0ull, 0ull, 2163538421233524736ull, 7888609052210118054ull}},
+ {{0ull, 0ull, 15187269568553116672ull, 4930380657631323783ull}},
+ {{0ull, 0ull, 14372400942264007936ull, 6162975822039154729ull}},
+ {{0ull, 0ull, 4130443122547846208ull, 7703719777548943412ull}},
+ {{0ull, 0ull, 11804898988447179688ull, 4814824860968089632ull}},
+ {{0ull, 0ull, 14756123735558974610ull, 6018531076210112040ull}},
+ {{0ull, 9223372036854775808ull, 18445154669448718262ull,
+ 7523163845262640050ull}},
+ {{0ull, 1152921504606846976ull, 16139907686832836818ull,
+ 4701977403289150031ull}},
+ {{0ull, 10664523917613334528ull, 15563198590113658118ull,
+ 5877471754111437539ull}},
+ {{0ull, 4107282860161892352ull, 14842312219214684744ull,
+ 7346839692639296924ull}},
+ {{0ull, 5134103575202365440ull, 106146200308804314ull,
+ 9183549615799121156ull}},
+ {{0ull, 7820500752928866304ull, 9289713412047778504ull,
+ 5739718509874450722ull}},
+ {{0ull, 9775625941161082880ull, 2388769728204947322ull,
+ 7174648137343063403ull}},
+ {{0ull, 2996160389596577792ull, 16821020215538347865ull,
+ 8968310171678829253ull}},
+ {{0ull, 13401815289566330880ull, 12818980643925161367ull,
+ 5605193857299268283ull}},
+ {{0ull, 12140583093530525696ull, 11412039786479063805ull,
+ 7006492321624085354ull}},
+ {{0ull, 1340670811630993408ull, 5041677696244053949ull,
+ 8758115402030106693ull}},
+ {{0ull, 3143762266483064832ull, 5456891569366227670ull,
+ 5473822126268816683ull}},
+ {{0ull, 13153074869958606848ull, 2209428443280396683ull,
+ 6842277657836020854ull}},
+ {{0ull, 11829657569020870656ull, 11985157590955271662ull,
+ 8552847072295026067ull}},
+ {{0ull, 2781849962210656256ull, 5184880485133350837ull,
+ 5345529420184391292ull}},
+ {{0ull, 8088998471190708224ull, 6481100606416688546ull,
+ 6681911775230489115ull}},
+ {{0ull, 887876052133609472ull, 3489689739593472779ull,
+ 8352389719038111394ull}},
+ {{0ull, 16695823597079363584ull, 6792742105673308390ull,
+ 5220243574398819621ull}},
+ {{0ull, 11646407459494428672ull, 13102613650519023392ull,
+ 6525304467998524526ull}},
+ {{0ull, 14558009324368035840ull, 7154895026294003432ull,
+ 8156630584998155658ull}},
+ {{0ull, 9098755827730022400ull, 9083495409861140049ull,
+ 5097894115623847286ull}},
+ {{0ull, 15985130803089915904ull, 2130997225471649253ull,
+ 6372367644529809108ull}},
+ {{0ull, 6146355448580231168ull, 2663746531839561567ull,
+ 7965459555662261385ull}},
+ {{0ull, 10759001183003726336ull, 13194056628468195739ull,
+ 4978412222288913365ull}},
+ {{0ull, 8837065460327270016ull, 2657512730303080962ull,
+ 6223015277861141707ull}},
+ {{0ull, 1822959788554311712ull, 17156948968161014915ull,
+ 7778769097326427133ull}},
+ {{0ull, 17280250932342302484ull, 13028936114314328273ull,
+ 4861730685829016958ull}},
+ {{0ull, 7765255610145714393ull, 7062798106038134534ull,
+ 6077163357286271198ull}},
+ {{4611686018427387904ull, 483197475827367183ull,
+ 18051869669402443976ull, 7596454196607838997ull}},
+ {{9799832789158199296ull, 301998422392104489ull,
+ 13588261552590221437ull, 4747783872879899373ull}},
+ {{16861477004875137024ull, 4989184046417518515ull,
+ 3150268885455613084ull, 5934729841099874217ull}},
+ {{16465160237666533376ull, 6236480058021898144ull,
+ 8549522125246904259ull, 7418412301374842771ull}},
+ {{10290725148541583360ull, 1591957027049992388ull,
+ 3037608319065621210ull, 4636507688359276732ull}},
+ {{12863406435676979200ull, 11213318320667266293ull,
+ 3797010398832026512ull, 5795634610449095915ull}},
+ {{2244199989314060288ull, 14016647900834082867ull,
+ 134576980112645236ull, 7244543263061369894ull}},
+ {{16640308041924739072ull, 17520809876042603583ull,
+ 9391593261995582353ull, 9055679078826712367ull}},
+ {{17317721553844043776ull, 4032977144885545383ull,
+ 12787274816388320827ull, 5659799424266695229ull}},
+ {{17035465923877666816ull, 429535412679543825ull,
+ 2149035465203237322ull, 7074749280333369037ull}},
+ {{7459274349564919808ull, 9760291302704205590ull,
+ 7297980349931434556ull, 8843436600416711296ull}},
+ {{50360450050686976ull, 15323554101044904302ull, 4561237718707146597ull,
+ 5527147875260444560ull}},
+ {{9286322599418134528ull, 5319384571023966665ull,
+ 5701547148383933247ull, 6908934844075555700ull}},
+ {{16219589267700056064ull, 2037544695352570427ull,
+ 7126933935479916559ull, 8636168555094444625ull}},
+ {{7831400283098841088ull, 8190994462236438373ull,
+ 15983548755743417609ull, 5397605346934027890ull}},
+ {{14400936372300939264ull, 14850429096222935870ull,
+ 10756063907824496203ull, 6747006683667534863ull}},
+ {{8777798428521398272ull, 13951350351851281934ull,
+ 8833393866353232350ull, 8433758354584418579ull}},
+ {{874437999398486016ull, 4107907951479663305ull, 3215028157257076267ull,
+ 5271098971615261612ull}},
+ {{5704733517675495424ull, 523198920922191227ull, 4018785196571345334ull,
+ 6588873714519077015ull}},
+ {{2519230878666981376ull, 9877370688007514842ull, 411795477286793763ull,
+ 8236092143148846269ull}},
+ {{6186205317594251264ull, 3867513670791002824ull,
+ 2563215182517940054ull, 5147557589468028918ull}},
+ {{7732756646992814080ull, 14057764125343529338ull,
+ 12427391015002200875ull, 6434446986835036147ull}},
+ {{442573771886241792ull, 12960519138252023769ull,
+ 10922552750325363190ull, 8043058733543795184ull}},
+ {{11805823653497370880ull, 3488638442980126951ull,
+ 6826595468953351994ull, 5026911708464871990ull}},
+ {{10145593548444325696ull, 13584170090579934497ull,
+ 17756616373046465800ull, 6283639635581089987ull}},
+ {{17293677953982795024ull, 16980212613224918121ull,
+ 17584084447880694346ull, 7854549544476362484ull}},
+ {{3891019693598165034ull, 15224318901692961730ull,
+ 1766680743070658158ull, 4909093465297726553ull}},
+ {{14087146653852482101ull, 9807026590261426354ull,
+ 6820036947265710602ull, 6136366831622158191ull}},
+ {{8385561280460826818ull, 3035411200972007135ull,
+ 3913360165654750349ull, 7670458539527697739ull}},
+ {{12158504827929098618ull, 4202975009821198411ull,
+ 140007094320525016ull, 4794036587204811087ull}},
+ {{10586445016483985368ull, 5253718762276498014ull,
+ 14010066923182819982ull, 5992545734006013858ull}},
+ {{4009684233750205902ull, 15790520489700398326ull,
+ 8289211617123749169ull, 7490682167507517323ull}},
+ {{16341110701376042401ull, 2951546278421667097ull,
+ 2874914251488649279ull, 4681676354692198327ull}},
+ {{6591330321437889289ull, 17524490903309247584ull,
+ 17428700869642975310ull, 5852095443365247908ull}},
+ {{8239162901797361611ull, 12682241592281783672ull,
+ 3339132013344167522ull, 7315119304206559886ull}},
+ {{10298953627246702013ull, 6629429953497453782ull,
+ 13397287053534985211ull, 9143899130258199857ull}},
+ {{1825159998601800855ull, 1837550711722214662ull,
+ 1455775380818283901ull, 5714936956411374911ull}},
+ {{11504822035107026876ull, 6908624408080156231ull,
+ 15654777281305018588ull, 7143671195514218638ull}},
+ {{9769341525456395691ull, 8635780510100195289ull,
+ 10345099564776497427ull, 8929588994392773298ull}},
+ {{17635053499478717067ull, 3091519809598928103ull,
+ 11077373246412698796ull, 5580993121495483311ull}},
+ {{17432130855921008430ull, 3864399761998660129ull,
+ 9235030539588485591ull, 6976241401869354139ull}},
+ {{7955105514619096825ull, 218813684070937258ull, 6932102156058219085ull,
+ 8720301752336692674ull}},
+ {{9583626965064323420ull, 2442601561758029738ull,
+ 8944249865963774832ull, 5450188595210432921ull}},
+ {{2756161669475628467ull, 3053251952197537173ull,
+ 15791998350882106444ull, 6812735744013041151ull}},
+ {{8056888105271923487ull, 3816564940246921466ull,
+ 15128311920175245151ull, 8515919680016301439ull}},
+ {{9647241084222340084ull, 9302882115295407772ull,
+ 16372723977750610075ull, 5322449800010188399ull}},
+ {{12059051355277925104ull, 7016916625691871811ull,
+ 15854218953760874690ull, 6653062250012735499ull}},
+ {{10462128175670018476ull, 17994517818969615572ull,
+ 15206087673773705458ull, 8316327812515919374ull}},
+ {{15762202146648537356ull, 15858259655283397636ull,
+ 4892118777681178007ull, 5197704882822449609ull}},
+ {{1256008609601120079ull, 15211138550676859142ull,
+ 10726834490528860413ull, 6497131103528062011ull}},
+ {{10793382798856175906ull, 5178865133063910215ull,
+ 8796857094733687613ull, 8121413879410077514ull}},
+ {{13663393276926191798ull, 5542633717378637836ull,
+ 10109721702635942662ull, 5075883674631298446ull}},
+ {{17079241596157739747ull, 16151664183578073103ull,
+ 3413780091440152519ull, 6344854593289123058ull}},
+ {{16737365976769786780ull, 15577894211045203475ull,
+ 13490597151154966457ull, 7931068241611403822ull}},
+ {{8155010726267422785ull, 2818654854262170316ull,
+ 3819937201044466132ull, 4956917651007127389ull}},
+ {{10193763407834278482ull, 3523318567827712895ull,
+ 9386607519732970569ull, 6196147063758909236ull}},
+ {{8130518241365460198ull, 9015834228212029023ull,
+ 11733259399666213211ull, 7745183829698636545ull}},
+ {{11999102928494494480ull, 3329053383418824187ull,
+ 415758097150301401ull, 4840739893561647841ull}},
+ {{10387192642190730196ull, 8773002747700918138ull,
+ 5131383639865264655ull, 6050924866952059801ull}},
+ {{3760618765883636937ull, 6354567416198759769ull,
+ 11025915568258968723ull, 7563656083690074751ull}},
+ {{13879601774745742846ull, 1665761625910530903ull,
+ 13808726257802937308ull, 4727285052306296719ull}},
+ {{12737816200004790653ull, 2082202032388163629ull,
+ 12649221803826283731ull, 5909106315382870899ull}},
+ {{2087212194723824604ull, 16437810595767368249ull,
+ 11199841236355466759ull, 7386382894228588624ull}},
+ {{12833722667770860138ull, 17191160649995687011ull,
+ 6999900772722166724ull, 4616489308892867890ull}},
+ {{11430467316286187268ull, 3042206738785057148ull,
+ 17973248002757484214ull, 5770611636116084862ull}},
+ {{14288084145357734085ull, 13026130460336097243ull,
+ 13243187966592079459ull, 7213264545145106078ull}},
+ {{13248419163269779702ull, 11670977056992733650ull,
+ 7330612921385323516ull, 9016580681431382598ull}},
+ {{12891947995471000218ull, 16517732697475234339ull,
+ 18416691131147990909ull, 5635362925894614123ull}},
+ {{11503248975911362368ull, 6812107816561879212ull,
+ 18409177895507600733ull, 7044203657368267654ull}},
+ {{14379061219889202960ull, 13126820789129736919ull,
+ 13788100332529725108ull, 8805254571710334568ull}},
+ {{15904442290071833706ull, 17427635030060861382ull,
+ 8617562707831078192ull, 5503284107318959105ull}},
+ {{10657180825735016325ull, 3337799713866525112ull,
+ 15383639403216235645ull, 6879105134148698881ull}},
+ {{13321476032168770406ull, 8783935660760544294ull,
+ 5394491198738130844ull, 8598881417685873602ull}},
+ {{3714236501678093600ull, 14713331824830115992ull,
+ 7983243017638719681ull, 5374300886053671001ull}},
+ {{4642795627097617000ull, 4556606725755481278ull,
+ 14590739790475787506ull, 6717876107567088751ull}},
+ {{15026866570726797057ull, 14919130444049127405ull,
+ 13626738719667346478ull, 8397345134458860939ull}},
+ {{11697634615917942113ull, 4712770509103316724ull,
+ 6210868690578397597ull, 5248340709036788087ull}},
+ {{14622043269897427641ull, 10502649154806533809ull,
+ 3151899844795609092ull, 6560425886295985109ull}},
+ {{4442496032089620839ull, 13128311443508167262ull,
+ 8551560824421899269ull, 8200532357869981386ull}},
+ {{16611618075338176737ull, 10511037661406298490ull,
+ 9956411533691074947ull, 5125332723668738366ull}},
+ {{11541150557317945113ull, 8527111058330485209ull,
+ 3222142380259067876ull, 6406665904585922958ull}},
+ {{591380141365267679ull, 10658888822913106512ull,
+ 13251050012178610653ull, 8008332380732403697ull}},
+ {{369612588353292299ull, 8967648523534385522ull, 1364377229970549802ull,
+ 5005207737957752311ull}},
+ {{9685387772296391182ull, 1986188617563206094ull,
+ 15540529592745350965ull, 6256509672447190388ull}},
+ {{2883362678515713170ull, 7094421790381395522ull, 978917917222137090ull,
+ 7820637090558987986ull}},
+ {{6413787692499708635ull, 9045699637415760105ull,
+ 5223509716691223585ull, 4887898181599367491ull}},
+ {{12628920634052023698ull, 15918810565197088035ull,
+ 1917701127436641577ull, 6109872726999209364ull}},
+ {{11174464774137641718ull, 6063455151214196332ull,
+ 2397126409295801972ull, 7637340908749011705ull}},
+ {{16207412520690801882ull, 13013031506363648515ull,
+ 13027419051878345992ull, 4773338067968132315ull}},
+ {{15647579632436114448ull, 16266289382954560644ull,
+ 11672587796420544586ull, 5966672584960165394ull}},
+ {{1112730466835591444ull, 11109489691838424998ull,
+ 5367362708670904925ull, 7458340731200206743ull}},
+ {{14530514597054408365ull, 9249274066612709575ull,
+ 10272130720560397434ull, 4661462957000129214ull}},
+ {{13551457227890622552ull, 2338220546411111161ull,
+ 3616791363845720985ull, 5826828696250161518ull}},
+ {{3104263479581114478ull, 7534461701441276856ull,
+ 13744361241661927039ull, 7283535870312701897ull}},
+ {{3880329349476393097ull, 4806391108374208166ull,
+ 3345393496795245087ull, 9104419837890877372ull}},
+ {{16260263898704909398ull, 9921523470374961959ull,
+ 11314242972351803987ull, 5690262398681798357ull}},
+ {{15713643854953748843ull, 7790218319541314545ull,
+ 307745660157591272ull, 7112827998352247947ull}},
+ {{5806996763410022342ull, 9737772899426643182ull,
+ 14219740130479152802ull, 8891034997940309933ull}},
+ {{17464431032413427676ull, 10697794080569039892ull,
+ 11193180590763164453ull, 5556896873712693708ull}},
+ {{3383794716807232979ull, 17983928619138687770ull,
+ 13991475738453955566ull, 6946121092140867135ull}},
+ {{13453115432863817032ull, 13256538737068583904ull,
+ 12877658654640056554ull, 8682651365176083919ull}},
+ {{8408197145539885645ull, 12897022729095252844ull,
+ 14966065686791117202ull, 5426657103235052449ull}},
+ {{10510246431924857056ull, 6897906374514290247ull,
+ 4872524053206732791ull, 6783321379043815562ull}},
+ {{8526122021478683416ull, 4010696949715474905ull,
+ 15314027103363191797ull, 8479151723804769452ull}},
+ {{16858041309492646895ull, 4812528602785865767ull,
+ 347894902747219065ull, 5299469827377980908ull}},
+ {{16460865618438420715ull, 10627346771909720113ull,
+ 434868628434023831ull, 6624337284222476135ull}},
+ {{6741023967765862181ull, 8672497446459762238ull,
+ 14378643840824693501ull, 8280421605278095168ull}},
+ {{18048198035135827576ull, 7726153913251045350ull,
+ 8986652400515433438ull, 5175263503298809480ull}},
+ {{13336875507065008661ull, 434320354709030880ull,
+ 11233315500644291798ull, 6469079379123511850ull}},
+ {{16671094383831260826ull, 9766272480241064408ull,
+ 4818272338950588939ull, 8086349223904389813ull}},
+ {{10419433989894538017ull, 3798077290936971303ull,
+ 5317263221057812039ull, 5053968264940243633ull}},
+ {{8412606468940784617ull, 135910595243826225ull,
+ 11258265044749652953ull, 6317460331175304541ull}},
+ {{15127444104603368675ull, 4781574262482170685ull,
+ 237773250654902479ull, 7896825413969130677ull}},
+ {{11760495574590799374ull, 9906012941692438534ull,
+ 2454451290873008001ull, 4935515883730706673ull}},
+ {{5477247431383723409ull, 16994202195542936072ull,
+ 7679750132018647905ull, 6169394854663383341ull}},
+ {{6846559289229654262ull, 7407694689146506378ull,
+ 14211373683450697786ull, 7711743568329229176ull}},
+ {{8890785574195921818ull, 9241495199143954390ull,
+ 8882108552156686116ull, 4819839730205768235ull}},
+ {{1890109930890126464ull, 11551868998929942988ull,
+ 6490949671768469741ull, 6024799662757210294ull}},
+ {{2362637413612658080ull, 604778193380265023ull,
+ 17337059126565362985ull, 7530999578446512867ull}},
+ {{8394177411148993156ull, 11907201416931135399ull,
+ 8529818944889657913ull, 4706874736529070542ull}},
+ {{5881035745508853541ull, 1048943715881755537ull,
+ 1438901644257296584ull, 5883593420661338178ull}},
+ {{11962980700313454830ull, 1311179644852194421ull,
+ 11021999092176396538ull, 7354491775826672722ull}},
+ {{1118667820109654825ull, 10862346592920018835ull,
+ 4554126828365719864ull, 9193114719783340903ull}},
+ {{16840068452064391930ull, 6788966620575011771ull,
+ 9763858295369656771ull, 5745696699864588064ull}},
+ {{16438399546653102009ull, 3874522257291376810ull,
+ 12204822869212070964ull, 7182120874830735080ull}},
+ {{11324627396461601703ull, 4843152821614221013ull,
+ 15256028586515088705ull, 8977651093538418850ull}},
+ {{9383735132002195016ull, 14556185559577357893ull,
+ 14146703884999318344ull, 5611031933461511781ull}},
+ {{16341354933430131674ull, 18195231949471697366ull,
+ 3848321800966984218ull, 7013789916826889727ull}},
+ {{11203321629932888785ull, 13520667899984845900ull,
+ 198716232781342369ull, 8767237396033612159ull}},
+ {{16225448055562831299ull, 1532888409849446831ull,
+ 7041726673129420837ull, 5479523372521007599ull}},
+ {{15670124051026151219ull, 6527796530739196443ull,
+ 4190472322984388142ull, 6849404215651259499ull}},
+ {{14975969045355301120ull, 17383117700278771362ull,
+ 626404385303097273ull, 8561755269564074374ull}},
+ {{13971666671774451104ull, 3946919535033150245ull,
+ 14226560796096599508ull, 5351097043477546483ull}},
+ {{3629525284435900168ull, 4933649418791437807ull,
+ 13171514976693361481ull, 6688871304346933104ull}},
+ {{18371964660827038922ull, 10778747791916685162ull,
+ 16464393720866701851ull, 8361089130433666380ull}},
+ {{16094163931444287230ull, 4430874360734234274ull,
+ 1066874038686912849ull, 5225680706521041488ull}},
+ {{10894332877450583230ull, 10150278969345180747ull,
+ 1333592548358641061ull, 6532100883151301860ull}},
+ {{9006230078385841133ull, 17299534730108863838ull,
+ 1666990685448301326ull, 8165126103939127325ull}},
+ {{1017207780563762804ull, 6200523187890651995ull,
+ 3347712187618882281ull, 5103203814961954578ull}},
+ {{15106567780986867217ull, 12362340003290702897ull,
+ 13408012271378378659ull, 6379004768702443222ull}},
+ {{5048151670951420310ull, 10841238985685990718ull,
+ 7536643302368197516ull, 7973755960878054028ull}},
+ {{16990152849626801406ull, 15999146402908520006ull,
+ 13933774100834899255ull, 4983597475548783767ull}},
+ {{12014319025178725949ull, 15387246985208262104ull,
+ 12805531607616236165ull, 6229496844435979709ull}},
+ {{15017898781473407436ull, 5399000676228163918ull,
+ 2171856454238131495ull, 7786871055544974637ull}},
+ {{4774500719993491744ull, 10291904450283684305ull,
+ 3663253293112526136ull, 4866794409715609148ull}},
+ {{10579811918419252584ull, 12864880562854605381ull,
+ 4579066616390657670ull, 6083493012144511435ull}},
+ {{17836450916451453633ull, 6857728666713480918ull,
+ 1112147252060934184ull, 7604366265180639294ull}},
+ {{6536095804354770617ull, 4286080416695925574ull,
+ 14530150087820247577ull, 4752728915737899558ull}},
+ {{17393491792298239079ull, 9969286539297294871ull,
+ 8939315572920533663ull, 5940911144672374448ull}},
+ {{17130178721945410945ull, 7849922155694230685ull,
+ 11174144466150667079ull, 7426138930840468060ull}},
+ {{13012204710429575793ull, 11823730374949976034ull,
+ 16207212328198942732ull, 4641336831775292537ull}},
+ {{7041883851182193933ull, 14779662968687470043ull,
+ 6423957354966514703ull, 5801671039719115672ull}},
+ {{4190668795550354512ull, 13862892692431949650ull,
+ 8029946693708143379ull, 7252088799648894590ull}},
+ {{14461708031292718948ull, 12716929847112549158ull,
+ 814061330280403416ull, 9065110999561118238ull}},
+ {{4426881501130561438ull, 7948081154445343224ull,
+ 14343846386707415847ull, 5665694374725698898ull}},
+ {{5533601876413201798ull, 5323415424629291126ull,
+ 8706435946529494001ull, 7082117968407123623ull}},
+ {{16140374382371278055ull, 11265955299214001811ull,
+ 6271358914734479597ull, 8852647460508904529ull}},
+ {{7781890979768354833ull, 9347065071222445084ull,
+ 15448814367777519508ull, 5532904662818065330ull}},
+ {{9727363724710443541ull, 11683831339028056355ull,
+ 10087645922867123577ull, 6916130828522581663ull}},
+ {{7547518637460666522ull, 769731118502906732ull, 7997871385156516568ull,
+ 8645163535653227079ull}},
+ {{13940571185267692384ull, 481081949064316707ull,
+ 11916198643363904711ull, 5403227209783266924ull}},
+ {{12814027963157227576ull, 14436410491612559596ull,
+ 14895248304204880888ull, 6754034012229083655ull}},
+ {{16017534953946534470ull, 18045513114515699495ull,
+ 14007374361828713206ull, 8442542515286354569ull}},
+ {{16928488373857665900ull, 6666759678144924280ull,
+ 1837079948501863898ull, 5276589072053971606ull}},
+ {{2713866393612530759ull, 17556821634535931159ull,
+ 11519721972482105680ull, 6595736340067464507ull}},
+ {{17227391047297827161ull, 3499282969460362332ull,
+ 9787966447175244197ull, 8244670425084330634ull}},
+ {{1543747367706366168ull, 4492894865126420410ull,
+ 10729165047911915527ull, 5152919015677706646ull}},
+ {{11153056246487733517ull, 1004432562980637608ull,
+ 4188084273035118601ull, 6441148769597133308ull}},
+ {{13941320308109666897ull, 5867226722153184914ull,
+ 5235105341293898251ull, 8051435961996416635ull}},
+ {{13325011210995929715ull, 1361173692132046619ull,
+ 966097829094992455ull, 5032147476247760397ull}},
+ {{12044577995317524239ull, 15536525170447221986ull,
+ 5819308304796128472ull, 6290184345309700496ull}},
+ {{5832350457292129491ull, 973912389349475867ull, 7274135380995160591ull,
+ 7862730431637125620ull}},
+ {{1339376026593886980ull, 7526224270984504273ull,
+ 13769706649976751177ull, 4914206519773203512ull}},
+ {{6285906051669746629ull, 14019466357158018245ull,
+ 17212133312470938971ull, 6142758149716504390ull}},
+ {{12469068583014571190ull, 12912646928020134902ull,
+ 12291794603733897906ull, 7678447687145630488ull}},
+ {{3181481845956719090ull, 12682090348439972218ull,
+ 7682371627333686191ull, 4799029804466019055ull}},
+ {{13200224344300674670ull, 11240926917122577368ull,
+ 4991278515739719835ull, 5998787255582523819ull}},
+ {{16500280430375843337ull, 9439472627975833806ull,
+ 1627412126247261890ull, 7498484069478154774ull}},
+ {{5700989250557514182ull, 10511356410912284033ull,
+ 14852190634186702393ull, 4686552543423846733ull}},
+ {{11737922581624280632ull, 17750881532067742945ull,
+ 4730180237451214279ull, 5858190679279808417ull}},
+ {{837345171748187077ull, 17576915896657290778ull,
+ 10524411315241405753ull, 7322738349099760521ull}},
+ {{10270053501540009654ull, 8136086815539449760ull,
+ 17767200162479145096ull, 9153422936374700651ull}},
+ {{6418783438462506034ull, 5085054259712156100ull,
+ 8798657092335771733ull, 5720889335234187907ull}},
+ {{8023479298078132543ull, 10968003843067583029ull,
+ 6386635346992326762ull, 7151111669042734884ull}},
+ {{14641035141025053582ull, 4486632766979702978ull,
+ 7983294183740408453ull, 8938889586303418605ull}},
+ {{13762332981568046393ull, 5109988488576008313ull,
+ 7295401874051449235ull, 5586805991439636628ull}},
+ {{3367858171677894279ull, 1775799592292622488ull,
+ 9119252342564311544ull, 6983507489299545785ull}},
+ {{4209822714597367849ull, 2219749490365778110ull,
+ 16010751446632777334ull, 8729384361624432231ull}},
+ {{16466197251905518618ull, 15222401486760775030ull,
+ 16924248681786567689ull, 5455865226015270144ull}},
+ {{11359374528027122464ull, 5192943803168805076ull,
+ 2708566778523657996ull, 6819831532519087681ull}},
+ {{14199218160033903080ull, 6491179753961006345ull,
+ 7997394491581960399ull, 8524789415648859601ull}},
+ {{1956982322380107569ull, 10974516373866710822ull,
+ 16527586603307195009ull, 5327993384780537250ull}},
+ {{11669599939829910269ull, 18329831485760776431ull,
+ 11436111217279217953ull, 6659991730975671563ull}},
+ {{9975313906359999932ull, 9077231301918806827ull,
+ 9683453003171634538ull, 8324989663719589454ull}},
+ {{3928728182261306006ull, 10284955582126642171ull,
+ 1440472108554883682ull, 5203118539824743409ull}},
+ {{299224209399244603ull, 3632822440803526906ull, 6412276154120992507ull,
+ 6503898174780929261ull}},
+ {{9597402298603831562ull, 18376086106286572344ull,
+ 12627031211078628537ull, 8129872718476161576ull}},
+ {{5998376436627394726ull, 4567524788788025859ull,
+ 7891894506924142836ull, 5081170449047600985ull}},
+ {{2886284527356855504ull, 5709405985985032324ull,
+ 14476554152082566449ull, 6351463061309501231ull}},
+ {{3607855659196069380ull, 11748443500908678309ull,
+ 13484006671675820157ull, 7939328826636876539ull}},
+ {{4560752796211237315ull, 9648620197281617895ull,
+ 6121661160583693646ull, 4962080516648047837ull}},
+ {{1089254976836658739ull, 2837403209747246561ull,
+ 12263762469157004962ull, 6202600645810059796ull}},
+ {{5973254739473211328ull, 12770126049038834009ull,
+ 15329703086446256202ull, 7753250807262574745ull}},
+ {{15262499258239226840ull, 12593014799076659159ull,
+ 2663535401387828270ull, 4845781754539109216ull}},
+ {{14466438054371645646ull, 6517896461991048141ull,
+ 3329419251734785338ull, 6057227193173886520ull}},
+ {{4247989512682393345ull, 17370742614343585985ull,
+ 4161774064668481672ull, 7571533991467358150ull}},
+ {{14184208491494965601ull, 10856714133964741240ull,
+ 16436166845699964757ull, 4732208744667098843ull}},
+ {{17730260614368707001ull, 18182578685883314454ull,
+ 15933522538697568042ull, 5915260930833873554ull}},
+ {{12939453731106107943ull, 13504851320499367260ull,
+ 10693531136517184245ull, 7394076163542341943ull}},
+ {{17310530618796093273ull, 10746375084525798489ull,
+ 13600985987964322009ull, 4621297602213963714ull}},
+ {{7803105218212952879ull, 18044654874084636016ull,
+ 7777860448100626703ull, 5776622002767454643ull}},
+ {{9753881522766191098ull, 17944132574178407116ull,
+ 5110639541698395475ull, 7220777503459318304ull}},
+ {{12192351903457738873ull, 17818479699295620991ull,
+ 6388299427122994344ull, 9025971879324147880ull}},
+ {{14537748967302168652ull, 11136549812059763119ull,
+ 3992687141951871465ull, 5641232424577592425ull}},
+ {{13560500190700322911ull, 85629209792540187ull, 9602544945867227236ull,
+ 7051540530721990531ull}},
+ {{12338939219948015734ull, 107036512240675234ull,
+ 7391495163906646141ull, 8814425663402488164ull}},
+ {{12323523030894897738ull, 2372740829364115973ull,
+ 13843056514296429646ull, 5509016039626555102ull}},
+ {{1569345733336458460ull, 12189298073559920775ull,
+ 8080448606015761249ull, 6886270049533193878ull}},
+ {{15796740221952736787ull, 1401564536667737256ull,
+ 877188720664925754ull, 8607837561916492348ull}},
+ {{9872962638720460492ull, 5487663853844723689ull,
+ 9771614987270354404ull, 5379898476197807717ull}},
+ {{16952889316827963519ull, 6859579817305904611ull,
+ 16826204752515330909ull, 6724873095247259646ull}},
+ {{16579425627607566495ull, 13186160790059768668ull,
+ 11809383903789387828ull, 8406091369059074558ull}},
+ {{1138768980399953251ull, 17464722530642131226ull,
+ 2769178921440979488ull, 5253807105661921599ull}},
+ {{10646833262354717372ull, 3384159089593112416ull,
+ 17296531707083388073ull, 6567258882077401998ull}},
+ {{13308541577943396715ull, 8841884880418778424ull,
+ 12397292596999459283ull, 8209073602596752498ull}},
+ {{8317838486214622947ull, 3220335041048042563ull,
+ 12359993891552049956ull, 5130671001622970311ull}},
+ {{5785612089340890780ull, 4025418801310053204ull,
+ 10838306346012674541ull, 6413338752028712889ull}}
+};
+
+static const BID_UINT256 bid_multipliers2_binary64[] = {
+ {{918777112239470733ull, 5138421092069233273ull,
+ 15049182825743144437ull, 3877256883183270350ull}},
+ {{12103450741218138969ull, 5517356191756964747ull,
+ 4794053247662077369ull, 2423285551989543969ull}},
+ {{10517627408095285807ull, 11508381258123593838ull,
+ 10604252578004984615ull, 3029106939986929961ull}},
+ {{3923662223264331450ull, 9773790554227104394ull,
+ 17867001740933618673ull, 3786383674983662451ull}},
+ {{7063974907967595060ull, 17637834142460410006ull,
+ 8861033078869817718ull, 2366489796864789032ull}},
+ {{18053340671814269633ull, 12823920641220736699ull,
+ 11076291348587272148ull, 2958112246080986290ull}},
+ {{17954989821340449138ull, 16029900801525920874ull,
+ 4621992148879314377ull, 3697640307601232863ull}},
+ {{15833554656765168615ull, 3101158973312618690ull,
+ 9806274120690653342ull, 2311025192250770539ull}},
+ {{10568571284101684961ull, 13099820753495549171ull,
+ 7646156632435928773ull, 2888781490313463174ull}},
+ {{8599028086699718297ull, 2539717886587272752ull, 334323753690135159ull,
+ 3610976862891828968ull}},
+ {{10748785108374647871ull, 17009705413516254652ull,
+ 417904692112668948ull, 4513721078614786210ull}},
+ {{15941362729588930728ull, 1407693846592883349ull,
+ 4872876450997805997ull, 2821075674134241381ull}},
+ {{6091645356703999697ull, 6371303326668492091ull,
+ 10702781582174645400ull, 3526344592667801726ull}},
+ {{3002870677452611718ull, 7964129158335615114ull,
+ 4155104940863530942ull, 4407930740834752158ull}},
+ {{6488480191835270228ull, 365894705532371542ull,
+ 16431998643321870551ull, 2754956713021720098ull}},
+ {{17333972276648863593ull, 14292426437197628139ull,
+ 11316626267297562380ull, 3443695891277150123ull}},
+ {{17055779327383691587ull, 17865533046497035174ull,
+ 9534096815694565071ull, 4304619864096437654ull}},
+ {{6048176061187419338ull, 18083487181701728840ull,
+ 1347124491381715265ull, 2690387415060273534ull}},
+ {{7560220076484274172ull, 8769300921844997338ull,
+ 10907277651081919890ull, 3362984268825341917ull}},
+ {{226903058750566907ull, 1738254115451470865ull,
+ 18245783082279787767ull, 4203730336031677396ull}},
+ {{11671029457787574077ull, 8003937849798251146ull,
+ 2180242389570091546ull, 2627331460019798373ull}},
+ {{5365414785379691788ull, 781550275393038125ull, 7336989005390002337ull,
+ 3284164325024747966ull}},
+ {{11318454500152002639ull, 5588623862668685560ull,
+ 18394608293592278729ull, 4105205406280934957ull}},
+ {{7074034062595001650ull, 15022104960236398235ull,
+ 13802473192708868157ull, 2565753378925584348ull}},
+ {{4230856559816364158ull, 4942573145013334082ull,
+ 17253091490886085197ull, 3207191723656980435ull}},
+ {{14511942736625231005ull, 10789902449694055506ull,
+ 16954678345180218592ull, 4008989654571225544ull}},
+ {{13681650228818157283ull, 6743689031058784691ull,
+ 10596673965737636620ull, 2505618534107015965ull}},
+ {{12490376767595308699ull, 8429611288823480864ull,
+ 17857528475599433679ull, 3132023167633769956ull}},
+ {{15612970959494135874ull, 5925328092601963176ull,
+ 3875166520789740483ull, 3915028959542212446ull}},
+ {{9758106849683834921ull, 1397487048662533033ull,
+ 16257037130775751514ull, 2446893099713882778ull}},
+ {{16809319580532181555ull, 10970230847682942099ull,
+ 11097924376614913584ull, 3058616374642353473ull}},
+ {{16399963457237839040ull, 13712788559603677624ull,
+ 37347415486478268ull, 3823270468302941842ull}},
+ {{10249977160773649400ull, 17793864886607074323ull,
+ 4635028153106436821ull, 2389544042689338651ull}},
+ {{8200785432539673846ull, 8407273052976679192ull,
+ 1182099172955658123ull, 2986930053361673314ull}},
+ {{10250981790674592308ull, 5897405297793461086ull,
+ 10700996003049348462ull, 3733662566702091642ull}},
+ {{1795177600744232288ull, 17520936366403076891ull,
+ 11299808520333230692ull, 2333539104188807276ull}},
+ {{16079030056212454072ull, 3454426384294294497ull,
+ 14124760650416538366ull, 2916923880236009095ull}},
+ {{6263729514983403878ull, 13541405017222643930ull,
+ 13044264794593285053ull, 3646154850295011369ull}},
+ {{17053033930584030656ull, 3091698216246141200ull,
+ 2470272937959442605ull, 4557693562868764212ull}},
+ {{10658146206615019160ull, 4238154394367532202ull,
+ 10767292623079427436ull, 2848558476792977632ull}},
+ {{4099310721413998142ull, 5297692992959415253ull,
+ 13459115778849284295ull, 3560698095991222040ull}},
+ {{9735824420194885581ull, 2010430222771881162ull,
+ 16823894723561605369ull, 4450872619989027550ull}},
+ {{10696576281049191393ull, 12785733935300895486ull,
+ 5903248183798615451ull, 2781795387493142219ull}},
+ {{4147348314456713433ull, 11370481400698731454ull,
+ 2767374211320881410ull, 3477244234366427774ull}},
+ {{14407557429925667599ull, 4989729714018638509ull,
+ 12682589801005877571ull, 4346555292958034717ull}},
+ {{11310566402917236201ull, 812738062047955116ull,
+ 10232461634842367434ull, 2716597058098771698ull}},
+ {{14138208003646545252ull, 10239294614414719703ull,
+ 3567205006698183484ull, 3395746322623464623ull}},
+ {{13061073986130793660ull, 12799118268018399629ull,
+ 18294064313654893067ull, 4244682903279330778ull}},
+ {{10469014250545439990ull, 5693605908297805816ull,
+ 16045476214461696071ull, 2652926814549581736ull}},
+ {{13086267813181799987ull, 2505321366944869366ull,
+ 1610101194367568473ull, 3316158518186977171ull}},
+ {{7134462729622474176ull, 7743337727108474612ull,
+ 15847684548241624303ull, 4145198147733721463ull}},
+ {{13682411242868822168ull, 11757115107083878488ull,
+ 16822331870292097045ull, 2590748842333575914ull}},
+ {{17103014053586027710ull, 861335828572684398ull,
+ 11804542801010345499ull, 3238436052916969893ull}},
+ {{12155395530127758829ull, 14911727840998019210ull,
+ 920620445980768161ull, 4048045066146212367ull}},
+ {{12208808224757237173ull, 2402300872982680150ull,
+ 7492916806379061957ull, 2530028166341382729ull}},
+ {{6037638244091770658ull, 7614562109655738092ull,
+ 13977832026401215350ull, 3162535207926728411ull}},
+ {{7547047805114713322ull, 294830600214896807ull,
+ 12860604014574131284ull, 3953169009908410514ull}},
+ {{11634433905837777682ull, 9407641161989086312ull,
+ 12649563527536219956ull, 2470730631192756571ull}},
+ {{14543042382297222103ull, 11759551452486357890ull,
+ 11200268390992887041ull, 3088413288990945714ull}},
+ {{8955430941016751820ull, 864381260325783651ull, 4776963451886332994ull,
+ 3860516611238682143ull}},
+ {{3291301328921775936ull, 5151924306131002686ull,
+ 9903131185070039977ull, 2412822882024176339ull}},
+ {{13337498698006995728ull, 11051591401091141261ull,
+ 7767227962910162067ull, 3016028602530220424ull}},
+ {{2836815317226580948ull, 9202803232936538673ull,
+ 9709034953637702584ull, 3770035753162775530ull}},
+ {{13302224619335082852ull, 5751752020585336670ull,
+ 10679832864450952019ull, 2356272345726734706ull}},
+ {{7404408737314077757ull, 2578004007304282934ull,
+ 4126419043708914216ull, 2945340432158418383ull}},
+ {{32138884787821389ull, 3222505009130353668ull, 546337786208754866ull,
+ 3681675540198022979ull}},
+ {{40173605984776736ull, 13251503298267717893ull,
+ 14517980288043107294ull, 4602094425247528723ull}},
+ {{2330951512954179412ull, 3670503542989935779ull,
+ 6767894670813248107ull, 2876309015779705452ull}},
+ {{16748747446474887977ull, 18423187484019583435ull,
+ 8459868338516560133ull, 3595386269724631815ull}},
+ {{16324248289666222067ull, 9193926299742315582ull,
+ 5963149404718312263ull, 4494232837155789769ull}},
+ {{5590969162614000888ull, 12663732964980029095ull,
+ 15256183424017414924ull, 2808895523222368605ull}},
+ {{2377025434840113206ull, 15829666206225036369ull,
+ 5235171224739604943ull, 3511119404027960757ull}},
+ {{7582967811977529411ull, 15175396739353907557ull,
+ 11155650049351894083ull, 4388899255034950946ull}},
+ {{7045197891699649834ull, 7178779952882498271ull,
+ 11583967299272321706ull, 2743062034396844341ull}},
+ {{4194811346197174389ull, 18196846977957898647ull,
+ 644901068808238420ull, 3428827542996055427ull}},
+ {{631828164319080082ull, 4299314648737821693ull,
+ 14641184391292461738ull, 4286034428745069283ull}},
+ {{2700735611913119003ull, 7298757673888526462ull,
+ 6844897235344094634ull, 2678771517965668302ull}},
+ {{12599291551746174562ull, 18346819129215433885ull,
+ 17779493581034894100ull, 3348464397457085377ull}},
+ {{1914056384400554490ull, 4486779837809740741ull,
+ 8389308921011453914ull, 4185580496821356722ull}},
+ {{3502128249464040509ull, 7415923417058475867ull,
+ 9855004094059546600ull, 2615987810513347951ull}},
+ {{18212718367112214348ull, 9269904271323094833ull,
+ 7707069099147045346ull, 3269984763141684939ull}},
+ {{8930839903608104222ull, 2364008302299092734ull,
+ 5022150355506418779ull, 4087480953927106174ull}},
+ {{970088921327677235ull, 17618406253432790623ull,
+ 16973902027473675448ull, 2554675596204441358ull}},
+ {{15047669206941760256ull, 3576263743081436662ull,
+ 11994005497487318503ull, 3193344495255551698ull}},
+ {{9586214471822424512ull, 18305387734133959540ull,
+ 5769134835004372320ull, 3991680619069439623ull}},
+ {{15214756081743791128ull, 11440867333833724712ull,
+ 10523238299518814556ull, 2494800386918399764ull}},
+ {{571701028470187294ull, 14301084167292155891ull,
+ 13154047874398518195ull, 3118500483647999705ull}},
+ {{14549684340869897829ull, 13264669190687806959ull,
+ 2607501787715984032ull, 3898125604559999632ull}},
+ {{16011081740684767999ull, 8290418244179879349ull,
+ 1629688617322490020ull, 2436328502849999770ull}},
+ {{6178794120573796287ull, 10363022805224849187ull,
+ 11260482808507888333ull, 3045410628562499712ull}},
+ {{3111806632289857455ull, 17565464524958449388ull,
+ 14075603510634860416ull, 3806763285703124640ull}},
+ {{11168251182035936718ull, 10978415328099030867ull,
+ 8797252194146787760ull, 2379227053564452900ull}},
+ {{9348627959117532993ull, 13723019160123788584ull,
+ 10996565242683484700ull, 2974033816955566125ull}},
+ {{11685784948896916241ull, 17153773950154735730ull,
+ 18357392571781743779ull, 3717542271194457656ull}},
+ {{11915301611487960555ull, 8415265709633015879ull,
+ 11473370357363589862ull, 2323463919496536035ull}},
+ {{10282440995932562789ull, 1295710100186494041ull,
+ 9730026928277099424ull, 2904329899370670044ull}},
+ {{17464737263343091390ull, 1619637625233117551ull,
+ 12162533660346374280ull, 3630412374213337555ull}},
+ {{17219235560751476334ull, 2024547031541396939ull,
+ 10591481057005579946ull, 4538015467766671944ull}},
+ {{8456179216255978757ull, 5877027913140760991ull,
+ 6619675660628487466ull, 2836259667354169965ull}},
+ {{5958538001892585542ull, 16569656928280727047ull,
+ 12886280594212997236ull, 3545324584192712456ull}},
+ {{2836486483938344023ull, 2265327086641357193ull,
+ 16107850742766246546ull, 4431655730240890570ull}},
+ {{13302019098529934775ull, 6027515447578236149ull,
+ 14679092732656291995ull, 2769784831400556606ull}},
+ {{2792465817880254756ull, 2922708291045407283ull,
+ 9125493878965589186ull, 3462231039250695758ull}},
+ {{17325640327632482157ull, 12876757400661534911ull,
+ 2183495311852210674ull, 4327788799063369698ull}},
+ {{17746054232411383205ull, 12659659393840847223ull,
+ 5976370588335019575ull, 2704867999414606061ull}},
+ {{17570881772086841102ull, 11212888223873671125ull,
+ 12082149253846162373ull, 3381084999268257576ull}},
+ {{8128544159826387665ull, 181052224559925195ull,
+ 15102686567307702967ull, 4226356249085321970ull}},
+ {{2774497090677798339ull, 7030686667991035103ull,
+ 14050865122994702258ull, 2641472655678326231ull}},
+ {{17303179418629411635ull, 18011730371843569686ull,
+ 12951895385315989918ull, 3301840819597907789ull}},
+ {{12405602236431988736ull, 13291290927949686300ull,
+ 2354811176362823686ull, 4127301024497384737ull}},
+ {{16976873434624768768ull, 3695370811541166033ull,
+ 13000972031295234564ull, 2579563140310865460ull}},
+ {{7386033737998797248ull, 4619213514426457542ull,
+ 16251215039119043205ull, 3224453925388581825ull}},
+ {{9170135643720752ull, 10385702911460459832ull, 6478960743616640294ull,
+ 4030567406735727282ull}},
+ {{5731334777325470ull, 1879378301235399491ull, 8661036483187788088ull,
+ 2519104629209829551ull}},
+ {{13842222223753820550ull, 2349222876544249363ull,
+ 6214609585557347206ull, 3148880786512286939ull}},
+ {{12691091761264887783ull, 12159900632535087512ull,
+ 3156575963519296103ull, 3936100983140358674ull}},
+ {{7931932350790554864ull, 14517466922975511551ull,
+ 6584545995626947968ull, 2460063114462724171ull}},
+ {{5303229420060805676ull, 18146833653719389439ull,
+ 3618996476106297056ull, 3075078893078405214ull}},
+ {{2017350756648619191ull, 4236797993439685183ull,
+ 13747117631987647129ull, 3843848616348006517ull}},
+ {{8178373250546468851ull, 14177213791968272999ull,
+ 10897791529205973407ull, 2402405385217504073ull}},
+ {{5611280544755698159ull, 13109831221532953345ull,
+ 18233925429934854663ull, 3003006731521880091ull}},
+ {{11625786699372010603ull, 11775603008488803777ull,
+ 18180720768991180425ull, 3753758414402350114ull}},
+ {{348587659466424771ull, 442222852664420505ull, 15974636499046875670ull,
+ 2346099009001468821ull}},
+ {{5047420592760418868ull, 9776150602685301439ull,
+ 6133237568526430875ull, 2932623761251836027ull}},
+ {{1697589722523135681ull, 7608502234929238895ull,
+ 3054860942230650690ull, 3665779701564795034ull}},
+ {{15957045208436083313ull, 287255756806772810ull,
+ 13041948214643089171ull, 4582224626955993792ull}},
+ {{14584839273699939975ull, 16320435912500090670ull,
+ 8151217634151930731ull, 2863890391847496120ull}},
+ {{9007677055270149160ull, 15788858872197725434ull,
+ 10189022042689913414ull, 3579862989809370150ull}},
+ {{2036224282232910642ull, 10512701553392380985ull,
+ 3512905516507615960ull, 4474828737261712688ull}},
+ {{12801855222464038911ull, 6570438470870238115ull,
+ 2195565947817259975ull, 2796767960788570430ull}},
+ {{11390633009652660735ull, 3601362070160409740ull,
+ 11967829471626350777ull, 3495959950985713037ull}},
+ {{14238291262065825919ull, 9113388606127900079ull,
+ 1124728784250774759ull, 4369949938732141297ull}},
+ {{15816461066432223055ull, 12613396906471019405ull,
+ 12232170536225203984ull, 2731218711707588310ull}},
+ {{5935518277758115107ull, 15766746133088774257ull,
+ 6066841133426729172ull, 3414023389634485388ull}},
+ {{12031083865625031788ull, 1261688592651416205ull,
+ 7583551416783411466ull, 4267529237043106735ull}},
+ {{9825270425229338820ull, 5400241388834523032ull,
+ 11657248663130714022ull, 2667205773151941709ull}},
+ {{12281588031536673524ull, 15973673772897929598ull,
+ 736502773631228815ull, 3334007216439927137ull}},
+ {{6128613002566066097ull, 15355406197695024094ull,
+ 5532314485466423923ull, 4167509020549908921ull}},
+ {{17665441181885955023ull, 7291285864345696106ull,
+ 14986911599484984712ull, 2604693137843693075ull}},
+ {{12858429440502667971ull, 9114107330432120133ull,
+ 14121953480928842986ull, 3255866422304616344ull}},
+ {{2237978745346171251ull, 2169262126185374359ull,
+ 17652441851161053733ull, 4069833027880770430ull}},
+ {{8316265743482438888ull, 3661631838079552926ull,
+ 6421090138548270679ull, 2543645642425481519ull}},
+ {{1171960142498272802ull, 18412097852881604870ull,
+ 3414676654757950444ull, 3179557053031851899ull}},
+ {{10688322214977616811ull, 4568378242392454471ull,
+ 18103403873729601768ull, 3974446316289814873ull}},
+ {{13597730412002092363ull, 2855236401495284044ull,
+ 4397098393439919249ull, 2484028947681134296ull}},
+ {{16997163015002615453ull, 8180731520296492959ull,
+ 5496372991799899061ull, 3105036184601417870ull}},
+ {{16634767750325881413ull, 14837600418798004103ull,
+ 16093838276604649634ull, 3881295230751772337ull}},
+ {{17314258871594757739ull, 13885186280176140468ull,
+ 3141119895236824165ull, 2425809519219857711ull}},
+ {{3196079515783895558ull, 3521424794938011874ull,
+ 17761457924328193919ull, 3032261899024822138ull}},
+ {{13218471431584645255ull, 18236839048954678554ull,
+ 12978450368555466590ull, 3790327373781027673ull}},
+ {{12873230663167791189ull, 6786338387169286192ull,
+ 1194002452706084763ull, 2368954608613142296ull}},
+ {{16091538328959738986ull, 3871236965534219836ull,
+ 1492503065882605954ull, 2961193260766427870ull}},
+ {{1667678837490122116ull, 14062418243772550604ull,
+ 11089000869208033250ull, 3701491575958034837ull}},
+ {{10265671310286102131ull, 13400697420785232031ull,
+ 9236468552468714733ull, 2313432234973771773ull}},
+ {{8220403119430239759ull, 2915813720699376327ull,
+ 16157271709013281321ull, 2891790293717214716ull}},
+ {{5663817880860411795ull, 8256453169301608313ull,
+ 1749845562557050035ull, 3614737867146518396ull}},
+ {{11691458369502902647ull, 5708880443199622487ull,
+ 2187306953196312544ull, 4518422333933147995ull}},
+ {{14224690508580396011ull, 3568050276999764054ull,
+ 17507967910243553004ull, 2824013958708217496ull}},
+ {{8557491098870719205ull, 4460062846249705068ull,
+ 3438215814094889639ull, 3530017448385271871ull}},
+ {{10696863873588399007ull, 963392539384743431ull,
+ 18132827822900775761ull, 4412521810481589838ull}},
+ {{13603068948633831235ull, 12131335383183934404ull,
+ 6721331370885596946ull, 2757826131550993649ull}},
+ {{17003836185792289044ull, 5940797192125142197ull,
+ 13013350232034384087ull, 3447282664438742061ull}},
+ {{7419737176958197593ull, 2814310471729039843ull,
+ 2431629734760816397ull, 4309103330548427577ull}},
+ {{2331492726385179544ull, 4064787054044343854ull,
+ 13048983630293980008ull, 2693189581592767235ull}},
+ {{12137737944836250237ull, 5080983817555429817ull,
+ 11699543519440087106ull, 3366486976990959044ull}},
+ {{1337114375763149085ull, 15574601808799063080ull,
+ 14624429399300108882ull, 4208108721238698805ull}},
+ {{835696484851968178ull, 14345812148926802329ull,
+ 11446111383776262003ull, 2630067950774186753ull}},
+ {{5656306624492348127ull, 13320579167731115007ull,
+ 472581174438163792ull, 3287584938467733442ull}},
+ {{2458697262188047254ull, 16650723959663893759ull,
+ 9814098504902480548ull, 4109481173084666802ull}},
+ {{8454214816508611390ull, 1183330437935157791ull,
+ 10745497583991438247ull, 2568425733177916751ull}},
+ {{5956082502208376333ull, 15314221102701110951ull,
+ 8820185961561909904ull, 3210532166472395939ull}},
+ {{2833417109333082513ull, 696032304666837073ull, 6413546433524999477ull,
+ 4013165208090494924ull}},
+ {{13300100739401646331ull, 2740863199630467122ull,
+ 13231838557807900481ull, 2508228255056559327ull}},
+ {{7401753887397282105ull, 8037765017965471807ull,
+ 11928112178832487697ull, 3135285318820699159ull}},
+ {{4640506340819214727ull, 14658892290884227663ull,
+ 10298454205113221717ull, 3919106648525873949ull}},
+ {{9817845490653091061ull, 11467650691016336241ull,
+ 8742376887409457525ull, 2449441655328671218ull}},
+ {{16883992881743751730ull, 499505308488256589ull,
+ 1704599072407046099ull, 3061802069160839023ull}},
+ {{7269933046897525950ull, 14459439690892484449ull,
+ 15965806895790971335ull, 3827252586451048778ull}},
+ {{16072923200379423479ull, 15954678834448884636ull,
+ 14590315328296744988ull, 2392032866531905486ull}},
+ {{1644409926764727733ull, 1496604469351554180ull,
+ 9014522123516155428ull, 2990041083164881858ull}},
+ {{2055512408455909666ull, 1870755586689442725ull,
+ 2044780617540418477ull, 3737551353956102323ull}},
+ {{3590538264498637493ull, 3475065250894595655ull,
+ 17418888950458619212ull, 2335969596222563951ull}},
+ {{18323230885905460578ull, 4343831563618244568ull,
+ 17161925169645886111ull, 2919961995278204939ull}},
+ {{4457294533672274107ull, 818103436095417807ull,
+ 16840720443629969735ull, 3649952494097756174ull}},
+ {{959932148662954729ull, 14857687350401435971ull,
+ 11827528517682686360ull, 4562440617622195218ull}},
+ {{16740858657410204370ull, 9286054594000897481ull,
+ 12003891341979066879ull, 2851525386013872011ull}},
+ {{7091015266480591750ull, 6995882224073733948ull,
+ 10393178159046445695ull, 3564406732517340014ull}},
+ {{8863769083100739688ull, 4133166761664779531ull,
+ 3768100661953281311ull, 4455508415646675018ull}},
+ {{3234012667724268353ull, 9500758253681569063ull,
+ 6966748932148188723ull, 2784692759779171886ull}},
+ {{17877573889937499153ull, 7264261798674573424ull,
+ 17931808202040011712ull, 3480865949723964857ull}},
+ {{3900223288712322326ull, 9080327248343216781ull,
+ 8579702197267850928ull, 4351082437154956072ull}},
+ {{4743482564658895406ull, 5675204530214510488ull,
+ 5362313873292406830ull, 2719426523221847545ull}},
+ {{5929353205823619257ull, 16317377699622913918ull,
+ 11314578360042896441ull, 3399283154027309431ull}},
+ {{16635063544134299879ull, 6561664069246478685ull,
+ 9531536931626232648ull, 4249103942534136789ull}},
+ {{12702757724297631377ull, 4101040043279049178ull,
+ 8263053591480089357ull, 2655689964083835493ull}},
+ {{6655075118517263413ull, 9737986072526199377ull,
+ 14940503007777499600ull, 3319612455104794366ull}},
+ {{12930529916573967170ull, 12172482590657749221ull,
+ 9452256722867098692ull, 4149515568880992958ull}},
+ {{10387424207072423433ull, 16831173656015869071ull,
+ 1295974433364548778ull, 2593447230550620599ull}},
+ {{8372594240413141387ull, 11815595033165060531ull,
+ 15455026096987849685ull, 3241809038188275748ull}},
+ {{5854056782089038830ull, 934435736174161952ull, 872038547525260491ull,
+ 4052261297735344686ull}},
+ {{3658785488805649269ull, 16724923399604708884ull,
+ 14380082147485451518ull, 2532663311084590428ull}},
+ {{4573481861007061586ull, 11682782212651110297ull,
+ 17975102684356814398ull, 3165829138855738035ull}},
+ {{10328538344686214887ull, 5380105728959112063ull,
+ 17857192337018630094ull, 3957286423569672544ull}},
+ {{13372865493069966160ull, 17197624135881608751ull,
+ 11160745210636643808ull, 2473304014731045340ull}},
+ {{12104395847910069796ull, 3050286096142459323ull,
+ 13950931513295804761ull, 3091630018413806675ull}},
+ {{10518808791460199341ull, 8424543638605462058ull,
+ 12826978373192368047ull, 3864537523017258344ull}},
+ {{11185941513090012492ull, 12182868801769495642ull,
+ 8016861483245230029ull, 2415335951885786465ull}},
+ {{4759054854507739807ull, 1393527946929705841ull,
+ 14632762872483925441ull, 3019169939857233081ull}},
+ {{10560504586562062663ull, 6353595952089520205ull,
+ 4455895535322743089ull, 3773962424821541352ull}},
+ {{8906158375814983117ull, 15500212516124419888ull,
+ 2784934709576714430ull, 2358726515513463345ull}},
+ {{11132697969768728896ull, 10151893608300749052ull,
+ 8092854405398280942ull, 2948408144391829181ull}},
+ {{13915872462210911119ull, 3466494973521160507ull,
+ 14727754025175239082ull, 3685510180489786476ull}},
+ {{12783154559336250995ull, 13556490753756226442ull,
+ 18409692531469048852ull, 4606887725612233095ull}},
+ {{12601157618012544776ull, 17696178757952417334ull,
+ 18423586859809237388ull, 2879304828507645684ull}},
+ {{6528074985660905162ull, 3673479373730970052ull,
+ 4582739501051995120ull, 3599131035634557106ull}},
+ {{8160093732076131452ull, 4591849217163712565ull,
+ 14951796413169769708ull, 4498913794543196382ull}},
+ {{7405901591761276110ull, 12093277797582096161ull,
+ 4733186739803718163ull, 2811821121589497739ull}},
+ {{13869063008128983041ull, 10504911228550232297ull,
+ 1304797406327259800ull, 3514776401986872174ull}},
+ {{3501270704879065090ull, 13131139035687790372ull,
+ 10854368794763850558ull, 4393470502483590217ull}},
+ {{11411666227404191489ull, 3595275878877481078ull,
+ 18313195542795876359ull, 2745919064052243885ull}},
+ {{5041210747400463553ull, 18329152903879015060ull,
+ 9056436373212681736ull, 3432398830065304857ull}},
+ {{6301513434250579442ull, 4464697056139217209ull,
+ 15932231484943240075ull, 4290498537581631071ull}},
+ {{15467660942475081911ull, 484592650873316803ull,
+ 16875173705730606903ull, 2681561585988519419ull}},
+ {{14722890159666464485ull, 14440798868873809716ull,
+ 16482281113735870724ull, 3351951982485649274ull}},
+ {{18403612699583080606ull, 18050998586092262145ull,
+ 11379479355315062597ull, 4189939978107061593ull}},
+ {{4584728909598343523ull, 13587717125521357793ull,
+ 194645569430832267ull, 2618712486316913496ull}},
+ {{10342597155425317307ull, 12372960388474309337ull,
+ 243306961788540334ull, 3273390607896141870ull}},
+ {{17539932462709034538ull, 6242828448738110863ull,
+ 9527505739090451226ull, 4091738259870177337ull}},
+ {{17879986816834228443ull, 8513453798888707193ull,
+ 17483906133000001776ull, 2557336412418860835ull}},
+ {{8514925465760621841ull, 10641817248610883992ull,
+ 17243196647822614316ull, 3196670515523576044ull}},
+ {{10643656832200777301ull, 13302271560763604990ull,
+ 3107251736068716279ull, 3995838144404470056ull}},
+ {{2040599501698097909ull, 15231448753118334975ull,
+ 1942032335042947674ull, 2497398840252793785ull}},
+ {{16385807432404786099ull, 9815938904543142910ull,
+ 7039226437231072497ull, 3121748550315992231ull}},
+ {{11258887253651206815ull, 16881609649106316542ull,
+ 4187347028111452717ull, 3902185687894990289ull}},
+ {{2425118515104616356ull, 12856849039905141791ull,
+ 14146306938638127708ull, 2438866054934368930ull}},
+ {{16866456199162934157ull, 16071061299881427238ull,
+ 8459511636442883827ull, 3048582568667961163ull}},
+ {{11859698212098891888ull, 15477140606424396144ull,
+ 5962703527126216880ull, 3810728210834951454ull}},
+ {{7412311382561807430ull, 9673212879015247590ull,
+ 17561747759736049262ull, 2381705131771844658ull}},
+ {{42017191347483479ull, 2868144061914283680ull, 12728812662815285770ull,
+ 2977131414714805823ull}},
+ {{52521489184354349ull, 12808552114247630408ull,
+ 11299329810091719308ull, 3721414268393507279ull}},
+ {{32825930740221468ull, 17228717108259544813ull,
+ 13979610158948406423ull, 2325883917745942049ull}},
+ {{4652718431852664739ull, 16924210366897043112ull,
+ 3639454643403344317ull, 2907354897182427562ull}},
+ {{5815898039815830924ull, 7320204903339140178ull,
+ 13772690341108956205ull, 3634193621478034452ull}},
+ {{16493244586624564463ull, 13761942147601313126ull,
+ 17215862926386195256ull, 4542742026847543065ull}},
+ {{5696591848212964885ull, 8601213842250820704ull,
+ 3842385301350290179ull, 2839213766779714416ull}},
+ {{7120739810266206107ull, 6139831284386137976ull,
+ 4802981626687862724ull, 3549017208474643020ull}},
+ {{8900924762832757633ull, 7674789105482672470ull,
+ 6003727033359828405ull, 4436271510593303775ull}},
+ {{951391958343085617ull, 7102586200140364246ull,
+ 10669858423490974609ull, 2772669694120814859ull}},
+ {{10412611984783632829ull, 13489918768602843211ull,
+ 8725637010936330357ull, 3465837117651018574ull}},
+ {{8404078962552153132ull, 3027340405471390302ull,
+ 1683674226815637139ull, 4332296397063773218ull}},
+ {{640863333167707804ull, 18032988817915476603ull,
+ 5663982410187161115ull, 2707685248164858261ull}},
+ {{14636137221741798467ull, 17929550003966957849ull,
+ 11691664031161339298ull, 3384606560206072826ull}},
+ {{4460113471895084371ull, 13188565468103921504ull,
+ 5391208002096898315ull, 4230758200257591033ull}},
+ {{2787570919934427732ull, 5937010408351256988ull,
+ 14898720047379031207ull, 2644223875160994395ull}},
+ {{3484463649918034665ull, 2809576992011683331ull,
+ 14011714040796401105ull, 3305279843951242994ull}},
+ {{18190637617679707043ull, 8123657258441992067ull,
+ 8291270514140725573ull, 4131599804939053743ull}},
+ {{9063305501836122950ull, 7383128795739938994ull,
+ 12099573098979035339ull, 2582249878086908589ull}},
+ {{2105759840440377880ull, 4617224976247535839ull,
+ 1289408318441630462ull, 3227812347608635737ull}},
+ {{16467257855832636061ull, 14994903257164195606ull,
+ 6223446416479425981ull, 4034765434510794671ull}},
+ {{5680350141468009635ull, 11677657544941316206ull,
+ 10807183037940723094ull, 2521728396569246669ull}},
+ {{16323809713689787851ull, 5373699894321869449ull,
+ 18120664815853291772ull, 3152160495711558336ull}},
+ {{6569704086830071102ull, 6717124867902336812ull,
+ 4204086946107063099ull, 3940200619639447921ull}},
+ {{13329437091123570247ull, 1892360033225266555ull,
+ 14156769387385384197ull, 2462625387274654950ull}},
+ {{12050110345477074904ull, 6977136059958971098ull,
+ 8472589697376954438ull, 3078281734093318688ull}},
+ {{5839265894991567822ull, 17944792111803489681ull,
+ 10590737121721193047ull, 3847852167616648360ull}},
+ {{15178756230438199649ull, 18133024097518262906ull,
+ 6619210701075745654ull, 2404907604760405225ull}},
+ {{9750073251192973753ull, 13442908085043052825ull,
+ 12885699394772069972ull, 3006134505950506531ull}},
+ {{16799277582418605095ull, 16803635106303816031ull,
+ 11495438225037699561ull, 3757668132438133164ull}},
+ {{17417077516652710041ull, 3584742913798803163ull,
+ 16408020927503338034ull, 2348542582773833227ull}},
+ {{17159660877388499647ull, 13704300679103279762ull,
+ 15898340140951784638ull, 2935678228467291534ull}},
+ {{12226204059880848751ull, 7907003812024323895ull,
+ 10649553139334954990ull, 3669597785584114418ull}},
+ {{10671069056423673034ull, 660382728175629061ull,
+ 4088569387313917930ull, 4586997231980143023ull}},
+ {{8975261169478489598ull, 5024425223537156067ull,
+ 9472884894712280562ull, 2866873269987589389ull}},
+ {{6607390443420724094ull, 15503903566276220892ull,
+ 16452792136817738606ull, 3583591587484486736ull}},
+ {{8259238054275905117ull, 10156507420990500307ull,
+ 2119246097312621642ull, 4479489484355608421ull}},
+ {{2856180774708746746ull, 10959503156546450596ull,
+ 3630371820034082478ull, 2799680927722255263ull}},
+ {{3570225968385933433ull, 4476006908828287437ull,
+ 18373022830324766810ull, 3499601159652819078ull}},
+ {{9074468478909804695ull, 14818380672890135104ull,
+ 13742906501051182704ull, 4374501449566023848ull}},
+ {{5671542799318627935ull, 9261487920556334440ull,
+ 8589316563156989190ull, 2734063405978764905ull}},
+ {{7089428499148284918ull, 2353487863840642242ull,
+ 15348331722373624392ull, 3417579257473456131ull}},
+ {{18085157660790131956ull, 2941859829800802802ull,
+ 14573728634539642586ull, 4271974071841820164ull}},
+ {{15914909556421220376ull, 6450348412052889655ull,
+ 18331952433442052424ull, 2669983794901137602ull}},
+ {{15281950927099137566ull, 8062935515066112069ull,
+ 13691568504947789722ull, 3337479743626422003ull}},
+ {{5267380603591758246ull, 855297356977864279ull,
+ 12502774612757349249ull, 4171849679533027504ull}},
+ {{10209641904885930760ull, 12063775894179634934ull,
+ 7814234132973343280ull, 2607406049708142190ull}},
+ {{3538680344252637642ull, 15079719867724543668ull,
+ 544420629361903292ull, 3259257562135177738ull}},
+ {{4423350430315797052ull, 402905760946127969ull, 9903897823557154924ull,
+ 4074071952668972172ull}},
+ {{14293809065015842918ull, 9475188137446105788ull,
+ 15413308176577997635ull, 2546294970418107607ull}},
+ {{17867261331269803647ull, 7232299153380244331ull,
+ 14654949202295109140ull, 3182868713022634509ull}},
+ {{17722390645659866655ull, 9040373941725305414ull,
+ 4483628447586722713ull, 3978585891278293137ull}},
+ {{6464808135110028755ull, 17179448759646785644ull,
+ 14331482825810171455ull, 2486616182048933210ull}},
+ {{8081010168887535944ull, 16862624931131094151ull,
+ 8690981495407938511ull, 3108270227561166513ull}},
+ {{5489576692682032026ull, 16466595145486479785ull,
+ 15475412887687311043ull, 3885337784451458141ull}},
+ {{14960200478994739776ull, 7985778956715355913ull,
+ 11977976064018263354ull, 2428336115282161338ull}},
+ {{4865192543461261008ull, 758851659039419084ull, 5749098043168053385ull,
+ 3035420144102701673ull}},
+ {{6081490679326576260ull, 5560250592226661759ull,
+ 11798058572387454635ull, 3794275180128377091ull}},
+ {{10718460702220192019ull, 1169313610927969647ull,
+ 5067943598528465195ull, 2371421987580235682ull}},
+ {{8786389859347852119ull, 15296700068942125771ull,
+ 15558301535015357301ull, 2964277484475294602ull}},
+ {{6371301305757427245ull, 5285817030895493502ull,
+ 10224504881914420819ull, 3705346855594118253ull}},
+ {{17817121371380555740ull, 997792635095989486ull,
+ 8696158560410206964ull, 2315841784746323908ull}},
+ {{13048029677370918867ull, 1247240793869986858ull,
+ 10870198200512758705ull, 2894802230932904885ull}},
+ {{7086665059858872776ull, 6170737010764871477ull,
+ 18199433769068336285ull, 3618502788666131106ull}},
+ {{13470017343250978874ull, 12325107281883477250ull,
+ 13525920174480644548ull, 4523128485832663883ull}},
+ {{13030446857959249701ull, 16926564088031949089ull,
+ 6147857099836708890ull, 2826955303645414927ull}},
+ {{2453000517166898414ull, 11934833073185160554ull,
+ 3073135356368498209ull, 3533694129556768659ull}},
+ {{12289622683313398825ull, 1083483286199286980ull,
+ 17676477250742786474ull, 4417117661945960823ull}},
+ {{16904386213925650074ull, 5288863072301942266ull,
+ 17965327309355323402ull, 2760698538716225514ull}},
+ {{11907110730552286784ull, 15834450877232203641ull,
+ 13233287099839378444ull, 3450873173395281893ull}},
+ {{1048830357908194768ull, 1346319522830702936ull,
+ 2706550819517059344ull, 4313591466744102367ull}},
+ {{655518973692621730ull, 841449701769189335ull, 8609123289839243946ull,
+ 2695994666715063979ull}},
+ {{14654456772397940874ull, 10275184164066262476ull,
+ 6149718093871667028ull, 3369993333393829974ull}},
+ {{18318070965497426093ull, 12843980205082828095ull,
+ 16910519654194359593ull, 4212491666742287467ull}},
+ {{18366323381076973164ull, 1109958600535685703ull,
+ 8263231774657780794ull, 2632807291713929667ull}},
+ {{18346218207918828551ull, 10610820287524382937ull,
+ 5717353699894838088ull, 3291009114642412084ull}},
+ {{9097714704616371977ull, 13263525359405478672ull,
+ 7146692124868547610ull, 4113761393303015105ull}},
+ {{5686071690385232486ull, 12901389368055812074ull,
+ 15995897624111312016ull, 2571100870814384440ull}},
+ {{16330961649836316415ull, 16126736710069765092ull,
+ 1548127956429588404ull, 3213876088517980551ull}},
+ {{1966957988585843903ull, 1711676813877654750ull,
+ 15770218000819149218ull, 4017345110647475688ull}},
+ {{15064406798148316151ull, 5681484027100922122ull,
+ 9856386250511968261ull, 2510840694154672305ull}},
+ {{9607136460830619381ull, 11713541052303540557ull,
+ 16932168831567348230ull, 3138550867693340381ull}},
+ {{16620606594465662130ull, 5418554278524649888ull,
+ 7330152984177021576ull, 3923188584616675477ull}},
+ {{10387879121541038832ull, 3386596424077906180ull,
+ 6887188624324332437ull, 2451992865385422173ull}},
+ {{12984848901926298539ull, 8844931548524770629ull,
+ 13220671798832803450ull, 3064991081731777716ull}},
+ {{2396003072125709462ull, 1832792398801187479ull,
+ 16525839748541004313ull, 3831238852164722145ull}},
+ {{8415030947719650270ull, 12674710295319211934ull,
+ 3411120815197045839ull, 2394524282602951341ull}},
+ {{1295416647794787029ull, 11231701850721627014ull,
+ 8875587037423695203ull, 2993155353253689176ull}},
+ {{10842642846598259595ull, 9427941294974645863ull,
+ 11094483796779619004ull, 3741444191567111470ull}},
+ {{13694180806764994103ull, 15115835346213929472ull,
+ 2322366354559873973ull, 2338402619729444669ull}},
+ {{17117726008456242628ull, 5059736127485248128ull,
+ 7514643961627230371ull, 2923003274661805836ull}},
+ {{2950413436860751669ull, 1712984140929172257ull,
+ 9393304952034037964ull, 3653754093327257295ull}},
+ {{8299702814503327491ull, 2141230176161465321ull,
+ 7129945171615159551ull, 4567192616659071619ull}},
+ {{16716529305133049442ull, 8255797887741997681ull,
+ 2150372723045780767ull, 2854495385411919762ull}},
+ {{7060603576134148090ull, 5708061341250109198ull,
+ 11911337940662001767ull, 3568119231764899702ull}},
+ {{18049126507022460921ull, 2523390658135248593ull,
+ 5665800388972726401ull, 4460149039706124628ull}},
+ {{4363175039247956220ull, 13106334207403000131ull,
+ 12764497279962729808ull, 2787593149816327892ull}},
+ {{842282780632557370ull, 16382917759253750164ull,
+ 15955621599953412260ull, 3484491437270409865ull}},
+ {{1052853475790696713ull, 2031903125357636089ull,
+ 6109468944659601614ull, 4355614296588012332ull}},
+ {{12187248468437655206ull, 15104997508630686267ull,
+ 13041790127267026816ull, 2722258935367507707ull}},
+ {{10622374567119681103ull, 434502812078806218ull,
+ 11690551640656395617ull, 3402823669209384634ull}},
+ {{4054596172044825571ull, 5154814533525895677ull,
+ 5389817513965718713ull, 4253529586511730793ull}},
+ {{4839965616741709934ull, 14750974129522154558ull,
+ 14897850992297043955ull, 2658455991569831745ull}},
+ {{15273329057781913225ull, 13827031643475305293ull,
+ 4787255685089141232ull, 3323069989462289682ull}},
+ {{5256603266945227819ull, 17283789554344131617ull,
+ 15207441643216202348ull, 4153837486827862102ull}},
+ {{14814592087909237147ull, 1578996434610306452ull,
+ 4892965008582738564ull, 2596148429267413814ull}},
+ {{71496036176994818ull, 1973745543262883066ull, 15339578297583199013ull,
+ 3245185536584267267ull}},
+ {{9312742082076019330ull, 7078867947505991736ull,
+ 14562786853551610862ull, 4056481920730334084ull}},
+ {{5820463801297512082ull, 18259350522473408547ull,
+ 18325113820324532596ull, 2535301200456458802ull}},
+ {{2663893733194502198ull, 4377444079382209068ull,
+ 13683020238550889938ull, 3169126500570573503ull}},
+ {{3329867166493127747ull, 14695177136082537143ull,
+ 12492089279761224518ull, 3961408125713216879ull}},
+ {{8998696006699286698ull, 4572799691624197810ull,
+ 14725084827491847180ull, 2475880078570760549ull}},
+ {{2024997971519332565ull, 5715999614530247263ull,
+ 4571297979082645263ull, 3094850098213450687ull}},
+ {{16366305519681329418ull, 2533313499735421174ull,
+ 1102436455425918675ull, 3868562622766813359ull}},
+ {{5617254931373442982ull, 17724222001830495898ull,
+ 7606551812282281027ull, 2417851639229258349ull}},
+ {{16244940701071579536ull, 17543591483860731968ull,
+ 14119875783780239188ull, 3022314549036572936ull}},
+ {{1859431802629922803ull, 3482745281116363345ull,
+ 17649844729725298986ull, 3777893186295716170ull}},
+ {{12691359922712171512ull, 6788401819125114994ull,
+ 15642838974505699770ull, 2361183241434822606ull}},
+ {{6640827866535438582ull, 17708874310761169551ull,
+ 10330176681277348904ull, 2951479051793528258ull}},
+ {{3689348814741910324ull, 3689348814741910323ull,
+ 3689348814741910323ull, 3689348814741910323ull}},
+ {{0ull, 0ull, 0ull, 4611686018427387904ull}},
+ {{0ull, 0ull, 0ull, 2882303761517117440ull}},
+ {{0ull, 0ull, 0ull, 3602879701896396800ull}},
+ {{0ull, 0ull, 0ull, 4503599627370496000ull}},
+ {{0ull, 0ull, 0ull, 2814749767106560000ull}},
+ {{0ull, 0ull, 0ull, 3518437208883200000ull}},
+ {{0ull, 0ull, 0ull, 4398046511104000000ull}},
+ {{0ull, 0ull, 0ull, 2748779069440000000ull}},
+ {{0ull, 0ull, 0ull, 3435973836800000000ull}},
+ {{0ull, 0ull, 0ull, 4294967296000000000ull}},
+ {{0ull, 0ull, 0ull, 2684354560000000000ull}},
+ {{0ull, 0ull, 0ull, 3355443200000000000ull}},
+ {{0ull, 0ull, 0ull, 4194304000000000000ull}},
+ {{0ull, 0ull, 0ull, 2621440000000000000ull}},
+ {{0ull, 0ull, 0ull, 3276800000000000000ull}},
+ {{0ull, 0ull, 0ull, 4096000000000000000ull}},
+ {{0ull, 0ull, 0ull, 2560000000000000000ull}},
+ {{0ull, 0ull, 0ull, 3200000000000000000ull}},
+ {{0ull, 0ull, 0ull, 4000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 2500000000000000000ull}},
+ {{0ull, 0ull, 0ull, 3125000000000000000ull}},
+ {{0ull, 0ull, 0ull, 3906250000000000000ull}},
+ {{0ull, 0ull, 0ull, 2441406250000000000ull}},
+ {{0ull, 0ull, 0ull, 3051757812500000000ull}},
+ {{0ull, 0ull, 0ull, 3814697265625000000ull}},
+ {{0ull, 0ull, 0ull, 2384185791015625000ull}},
+ {{0ull, 0ull, 0ull, 2980232238769531250ull}},
+ {{0ull, 0ull, 9223372036854775808ull, 3725290298461914062ull}},
+ {{0ull, 0ull, 1152921504606846976ull, 2328306436538696289ull}},
+ {{0ull, 0ull, 6052837899185946624ull, 2910383045673370361ull}},
+ {{0ull, 0ull, 12177733392409821184ull, 3637978807091712951ull}},
+ {{0ull, 0ull, 10610480722084888576ull, 4547473508864641189ull}},
+ {{0ull, 0ull, 8937393460516749312ull, 2842170943040400743ull}},
+ {{0ull, 0ull, 6560055807218548736ull, 3552713678800500929ull}},
+ {{0ull, 0ull, 12811755777450573824ull, 4440892098500626161ull}},
+ {{0ull, 0ull, 1089818333265526784ull, 2775557561562891351ull}},
+ {{0ull, 0ull, 15197330971864072192ull, 3469446951953614188ull}},
+ {{0ull, 0ull, 549919641120538624ull, 4336808689942017736ull}},
+ {{0ull, 0ull, 343699775700336640ull, 2710505431213761085ull}},
+ {{0ull, 0ull, 5041310738052808704ull, 3388131789017201356ull}},
+ {{0ull, 0ull, 6301638422566010880ull, 4235164736271501695ull}},
+ {{0ull, 0ull, 10856053041744838656ull, 2646977960169688559ull}},
+ {{0ull, 0ull, 8958380283753660416ull, 3308722450212110699ull}},
+ {{0ull, 0ull, 6586289336264687616ull, 4135903062765138374ull}},
+ {{0ull, 0ull, 17951488890447593472ull, 2584939414228211483ull}},
+ {{0ull, 0ull, 17827675094632103936ull, 3231174267785264354ull}},
+ {{0ull, 0ull, 13061221831435354112ull, 4038967834731580443ull}},
+ {{0ull, 0ull, 5857420635433402368ull, 2524354896707237777ull}},
+ {{0ull, 0ull, 11933461812719140864ull, 3155443620884047221ull}},
+ {{0ull, 0ull, 1081769210616762368ull, 3944304526105059027ull}},
+ {{0ull, 0ull, 16817006821131334144ull, 2465190328815661891ull}},
+ {{0ull, 0ull, 16409572507986779776ull, 3081487911019577364ull}},
+ {{0ull, 0ull, 2065221561273923104ull, 3851859888774471706ull}},
+ {{0ull, 0ull, 5902449494223589844ull, 2407412430484044816ull}},
+ {{0ull, 0ull, 7378061867779487305ull, 3009265538105056020ull}},
+ {{0ull, 4611686018427387904ull, 9222577334724359131ull,
+ 3761581922631320025ull}},
+ {{0ull, 576460752303423488ull, 17293325880271194217ull,
+ 2350988701644575015ull}},
+ {{0ull, 5332261958806667264ull, 17004971331911604867ull,
+ 2938735877055718769ull}},
+ {{0ull, 2053641430080946176ull, 7421156109607342372ull,
+ 3673419846319648462ull}},
+ {{0ull, 2567051787601182720ull, 53073100154402157ull,
+ 4591774807899560578ull}},
+ {{0ull, 3910250376464433152ull, 4644856706023889252ull,
+ 2869859254937225361ull}},
+ {{0ull, 4887812970580541440ull, 10417756900957249469ull,
+ 3587324068671531701ull}},
+ {{0ull, 10721452231653064704ull, 17633882144623949740ull,
+ 4484155085839414626ull}},
+ {{0ull, 15924279681637941248ull, 15632862358817356491ull,
+ 2802596928649634141ull}},
+ {{0ull, 15293663583620038656ull, 5706019893239531902ull,
+ 3503246160812042677ull}},
+ {{0ull, 9893707442670272512ull, 11744210884976802782ull,
+ 4379057701015053346ull}},
+ {{0ull, 1571881133241532416ull, 11951817821537889643ull,
+ 2736911063134408341ull}},
+ {{0ull, 15799909471834079232ull, 1104714221640198341ull,
+ 3421138828918010427ull}},
+ {{0ull, 5914828784510435328ull, 15215950832332411639ull,
+ 4276423536147513033ull}},
+ {{0ull, 10614297017960103936ull, 2592440242566675418ull,
+ 2672764710092195646ull}},
+ {{0ull, 4044499235595354112ull, 12463922340063120081ull,
+ 3340955887615244557ull}},
+ {{0ull, 9667310062921580544ull, 1744844869796736389ull,
+ 4176194859519055697ull}},
+ {{0ull, 8347911798539681792ull, 12619743089691430003ull,
+ 2610121787199409810ull}},
+ {{0ull, 5823203729747214336ull, 6551306825259511696ull,
+ 3262652233999262263ull}},
+ {{0ull, 7279004662184017920ull, 3577447513147001716ull,
+ 4078315292499077829ull}},
+ {{0ull, 13772749950719787008ull, 4541747704930570024ull,
+ 2548947057811923643ull}},
+ {{0ull, 17215937438399733760ull, 1065498612735824626ull,
+ 3186183822264904554ull}},
+ {{0ull, 12296549761144891392ull, 10555245302774556591ull,
+ 3982729777831130692ull}},
+ {{0ull, 14602872628356638976ull, 15820400351088873677ull,
+ 2489206111144456682ull}},
+ {{0ull, 4418532730163635008ull, 10552128402006316289ull,
+ 3111507638930570853ull}},
+ {{0ull, 10134851931131931664ull, 17801846520935283265ull,
+ 3889384548663213566ull}},
+ {{0ull, 17863497503025927050ull, 6514468057157164136ull,
+ 2430865342914508479ull}},
+ {{9223372036854775808ull, 3882627805072857196ull,
+ 3531399053019067267ull, 3038581678643135599ull}},
+ {{11529215046068469760ull, 241598737913683591ull,
+ 18249306871555997796ull, 3798227098303919498ull}},
+ {{14123288431433875456ull, 9374371248050828052ull,
+ 16017502813149886526ull, 2373891936439949686ull}},
+ {{17654110539292344320ull, 2494592023208759257ull,
+ 10798506479582582350ull, 2967364920549937108ull}},
+ {{8232580118833266688ull, 12341612065865724880ull,
+ 13498133099478227937ull, 3709206150687421385ull}},
+ {{5145362574270791680ull, 795978513524996194ull, 1518804159532810605ull,
+ 2318253844179638366ull}},
+ {{15655075254693265408ull, 5606659160333633146ull,
+ 11121877236270789064ull, 2897817305224547957ull}},
+ {{10345472031511805952ull, 7008323950417041433ull, 67288490056322618ull,
+ 3622271631530684947ull}},
+ {{17543526057817145344ull, 17983776974876077599ull,
+ 13919168667852566984ull, 4527839539413356183ull}},
+ {{17882232813776797696ull, 11239860609297548499ull,
+ 15617009445048936221ull, 2829899712133347614ull}},
+ {{17741104998793609216ull, 214767706339771912ull,
+ 10297889769456394469ull, 3537374640166684518ull}},
+ {{3729637174782459904ull, 4880145651352102795ull,
+ 3648990174965717278ull, 4421718300208355648ull}},
+ {{25180225025343488ull, 16885149087377227959ull, 2280618859353573298ull,
+ 2763573937630222280ull}},
+ {{13866533336563843072ull, 11883064322366759140ull,
+ 2850773574191966623ull, 3454467422037777850ull}},
+ {{17333166670704803840ull, 10242144384531061021ull,
+ 12786839004594734087ull, 4318084277547222312ull}},
+ {{13139072178404196352ull, 13318869267972994994ull,
+ 7991774377871708804ull, 2698802673467013945ull}},
+ {{7200468186150469632ull, 16648586584966243743ull,
+ 14601403990767023909ull, 3373503341833767431ull}},
+ {{4388899214260699136ull, 6975675175925640967ull,
+ 13640068970031391983ull, 4216879177292209289ull}},
+ {{9660591036554018816ull, 11277326012594607460ull,
+ 1607514078628538133ull, 2635549485807630806ull}},
+ {{12075738795692523520ull, 261599460461095613ull,
+ 11232764635140448475ull, 3294436857259538507ull}},
+ {{1259615439333490688ull, 14162057380858533229ull,
+ 9429269775498172689ull, 4118046071574423134ull}},
+ {{3093102658797125632ull, 1933756835395501412ull,
+ 1281607591258970027ull, 2573778794734014459ull}},
+ {{3866378323496407040ull, 16252254099526540477ull,
+ 15437067544355876245ull, 3217223493417518073ull}},
+ {{9444658922797896704ull, 6480259569126011884ull,
+ 5461276375162681595ull, 4021529366771897592ull}},
+ {{15126283863603461248ull, 1744319221490063475ull,
+ 3413297734476675997ull, 2513455854232435995ull}},
+ {{14296168811076938656ull, 6792085045289967248ull,
+ 18101680223378008708ull, 3141819817790544993ull}},
+ {{17870211013846173320ull, 8490106306612459060ull,
+ 8792042223940347173ull, 3927274772238181242ull}},
+ {{1945509846799082517ull, 7612159450846480865ull,
+ 10106712408390104887ull, 2454546732648863276ull}},
+ {{7043573326926241051ull, 4903513295130713177ull,
+ 12633390510487631109ull, 3068183415811079095ull}},
+ {{13416152677085189217ull, 10741077637340779375ull,
+ 11180052119682150982ull, 3835229269763848869ull}},
+ {{15302624450819325117ull, 2101487504910599205ull,
+ 9293375584015038316ull, 2397018293602405543ull}},
+ {{5293222508241992684ull, 2626859381138249007ull,
+ 7005033461591409991ull, 2996272867003006929ull}},
+ {{2004842116875102951ull, 17118632281704974971ull,
+ 13367977845416650392ull, 3745341083753758661ull}},
+ {{17393927387542797009ull, 10699145176065609356ull,
+ 10660829162599100447ull, 2340838177346099163ull}},
+ {{3295665160718944645ull, 8762245451654623792ull,
+ 8714350434821487655ull, 2926047721682623954ull}},
+ {{4119581450898680806ull, 6341120796140891836ull,
+ 1669566006672083761ull, 3657559652103279943ull}},
+ {{5149476813623351007ull, 12538087013603502699ull,
+ 15922015563622268413ull, 4571949565129099928ull}},
+ {{912579999300900428ull, 10142147392715883139ull,
+ 9951259727263917758ull, 2857468478205687455ull}},
+ {{14975783054408289246ull, 3454312204040078115ull,
+ 7827388640652509294ull, 3571835597757109319ull}},
+ {{14108042799582973654ull, 13541262291904873452ull,
+ 5172549782388248713ull, 4464794497196386649ull}},
+ {{18040898786594134342ull, 1545759904799464051ull,
+ 14762058660061125206ull, 2790496560747741655ull}},
+ {{17939437464815280023ull, 11155571917854105872ull,
+ 13840887306649018603ull, 3488120700934677069ull}},
+ {{3977552757309548413ull, 9332778878890244437ull,
+ 3466051078029109542ull, 4360150876168346337ull}},
+ {{4791813482532161710ull, 1221300780879014869ull,
+ 13695496969836663224ull, 2725094297605216460ull}},
+ {{10601452871592590042ull, 1526625976098768586ull,
+ 17119371212295829030ull, 3406367872006520575ull}},
+ {{4028444052635961744ull, 11131654506978236541ull,
+ 16787527996942398383ull, 4257959840008150719ull}},
+ {{4823620542111170042ull, 13874813094502479694ull,
+ 17409734025730080845ull, 2661224900005094199ull}},
+ {{15252897714493738360ull, 3508458312845935905ull,
+ 17150481513735213153ull, 3326531125006367749ull}},
+ {{5231064087835009238ull, 8997258909484807786ull,
+ 7603043836886852729ull, 4158163906257959687ull}},
+ {{7881101073324268678ull, 17152501864496474626ull,
+ 11669431425695364811ull, 2598852441411224804ull}},
+ {{628004304800560040ull, 16828941312193205379ull,
+ 14586789282119206014ull, 3248565551764031005ull}},
+ {{14620063436282863761ull, 11812804603386730915ull,
+ 4398428547366843806ull, 4060706939705038757ull}},
+ {{6831696638463095899ull, 2771316858689318918ull,
+ 5054860851317971331ull, 2537941837315649223ull}},
+ {{17762992834933645682ull, 17299204128643812359ull,
+ 1706890045720076259ull, 3172427296644561529ull}},
+ {{17592055025239669198ull, 17012319142377377545ull,
+ 6745298575577483228ull, 3965534120805701911ull}},
+ {{4077505363133711393ull, 1409327427131085158ull,
+ 11133340637377008874ull, 2478458825503563694ull}},
+ {{14320253740771915049ull, 10985031320768632255ull,
+ 4693303759866485284ull, 3098073531879454618ull}},
+ {{13288631157537505907ull, 13731289150960790319ull,
+ 15090001736687882413ull, 3872591914849318272ull}},
+ {{15222923501102023048ull, 10887898728564187901ull,
+ 9431251085429926508ull, 2420369946780823920ull}},
+ {{5193596321095365098ull, 13609873410705234877ull,
+ 11789063856787408135ull, 3025462433476029900ull}},
+ {{11103681419796594277ull, 12400655744954155692ull,
+ 14736329820984260169ull, 3781828041845037375ull}},
+ {{16163172924227647231ull, 832880812955265451ull,
+ 16127735165756244462ull, 2363642526153148359ull}},
+ {{15592280136857171135ull, 10264473053048857622ull,
+ 15547982938767917673ull, 2954553157691435449ull}},
+ {{10266978134216688110ull, 17442277334738459932ull,
+ 5599920618177733379ull, 3693191447114294312ull}},
+ {{15640233370740205877ull, 8595580324997843505ull,
+ 3499950386361083362ull, 2308244654446433945ull}},
+ {{5715233658143093634ull, 1521103369392528574ull,
+ 8986624001378742107ull, 2885305818058042431ull}},
+ {{16367414109533642851ull, 15736437267022824429ull,
+ 6621593983296039729ull, 3606632272572553039ull}},
+ {{6624209581634889851ull, 5835488528496366825ull,
+ 3665306460692661758ull, 4508290340715691299ull}},
+ {{15669346034590275917ull, 17482238385592392977ull,
+ 18431717602428771262ull, 2817681462947307061ull}},
+ {{5751624487955681184ull, 12629425945135715414ull,
+ 9204588947753800366ull, 3522101828684133827ull}},
+ {{16412902646799377288ull, 6563410394564868459ull,
+ 6894050166264862554ull, 4402627285855167284ull}},
+ {{7952221145035916853ull, 8713817515030430691ull,
+ 13532153390770314904ull, 2751642053659479552ull}},
+ {{5328590412867508163ull, 10892271893788038364ull,
+ 16915191738462893630ull, 3439552567074349440ull}},
+ {{6660738016084385203ull, 4391967830380272147ull,
+ 2697245599369065422ull, 4299440708842936801ull}},
+ {{1857118250839046800ull, 16580037949269833804ull,
+ 13214993545674135648ull, 2687150443026835500ull}},
+ {{2321397813548808500ull, 2278303362877740639ull,
+ 16518741932092669561ull, 3358938053783544375ull}},
+ {{16736805322218174337ull, 7459565222024563702ull,
+ 16036741396688449047ull, 4198672567229430469ull}},
+ {{5848817307958971057ull, 11579757291406434170ull,
+ 12328806382143974606ull, 2624170354518394043ull}},
+ {{16534393671803489629ull, 5251324577403266904ull,
+ 10799321959252580354ull, 3280212943147992554ull}},
+ {{2221248016044810420ull, 15787527758608859439ull,
+ 4275780412210949634ull, 4100266178934990693ull}},
+ {{8305809037669088369ull, 14478890867557925053ull,
+ 4978205766845537473ull, 2562666361834369183ull}},
+ {{14993947315513748365ull, 4263555529165242604ull,
+ 1611071190129533938ull, 3203332952292961479ull}},
+ {{295690070682633840ull, 14552816448311329064ull,
+ 15848897042944081134ull, 4004166190366201848ull}},
+ {{184806294176646150ull, 4483824261767192761ull, 9905560651840050709ull,
+ 2502603868978876155ull}},
+ {{4842693886148195591ull, 10216466345636378855ull,
+ 7770264796372675482ull, 3128254836223595194ull}},
+ {{1441681339257856585ull, 3547210895190697761ull, 489458958611068545ull,
+ 3910318545279493993ull}},
+ {{12430265883104630126ull, 13746221855562655860ull,
+ 11835126895200387600ull, 2443949090799683745ull}},
+ {{15537832353880787657ull, 17182777319453319825ull,
+ 958850563718320788ull, 3054936363499604682ull}},
+ {{5587232387068820859ull, 3031727575607098166ull,
+ 10421935241502676794ull, 3818670454374505852ull}},
+ {{17327078297200176749ull, 6506515753181824257ull,
+ 15737081562793948804ull, 2386669033984066157ull}},
+ {{7823789816218057224ull, 8133144691477280322ull,
+ 5836293898210272293ull, 2983336292480082697ull}},
+ {{556365233417795722ull, 14778116882773988307ull,
+ 11907053391190228270ull, 3729170365600103371ull}},
+ {{16488629335381979991ull, 4624637033306354787ull,
+ 5136065360280198717ull, 2330731478500064607ull}},
+ {{15999100650800087084ull, 10392482310060331388ull,
+ 1808395681922860492ull, 2913414348125080759ull}},
+ {{1552131739790557239ull, 12990602887575414236ull,
+ 16095552657685739327ull, 3641767935156350948ull}},
+ {{1940164674738196549ull, 11626567591041879891ull,
+ 1672696748397622543ull, 4552209918945438686ull}},
+ {{17353503986207230507ull, 14184133772042256787ull,
+ 14880493523030677801ull, 2845131199340899178ull}},
+ {{17080193964331650230ull, 3895109159770657272ull,
+ 9377244866933571444ull, 3556413999176123973ull}},
+ {{2903498381705011171ull, 4868886449713321591ull,
+ 16333242102094352209ull, 4445517498970154966ull}},
+ {{8732215516206713838ull, 14572269077139295754ull,
+ 5596590295381582226ull, 2778448436856346854ull}},
+ {{1691897358403616490ull, 8991964309569343885ull,
+ 16219109906081753591ull, 3473060546070433567ull}},
+ {{6726557716431908516ull, 6628269368534291952ull,
+ 15662201364174804085ull, 4341325682588041959ull}},
+ {{4204098572769942823ull, 6448511364547626422ull,
+ 16706404880250334409ull, 2713328551617526224ull}},
+ {{14478495252817204336ull, 12672325224111920931ull,
+ 2436262026603366395ull, 3391660689521907781ull}},
+ {{13486433047594117516ull, 11228720511712513260ull,
+ 7657013551681595898ull, 4239575861902384726ull}},
+ {{17652392691601099256ull, 11629636338247708691ull,
+ 173947451373609532ull, 2649734913688990454ull}},
+ {{17453804846073986166ull, 14537045422809635864ull,
+ 9440806351071787723ull, 3312168642111238067ull}},
+ {{3370511983882931091ull, 13559620760084656927ull,
+ 7189321920412346750ull, 4140210802639047584ull}},
+ {{9024099017567913788ull, 3863076956625522675ull,
+ 4493326200257716719ull, 2587631751649404740ull}},
+ {{6668437753532504331ull, 217160177354515440ull, 5616657750322145899ull,
+ 3234539689561755925ull}},
+ {{8335547191915630413ull, 14106508276975308012ull,
+ 11632508206330070277ull, 4043174611952194906ull}},
+ {{14433089031802044817ull, 11122410682323261459ull,
+ 11882003647383681827ull, 2526984132470121816ull}},
+ {{13429675271325168117ull, 9291327334476688920ull,
+ 14852504559229602284ull, 3158730165587652270ull}},
+ {{16787094089156460146ull, 11614159168095861150ull,
+ 9342258662182227047ull, 3948412706984565338ull}},
+ {{5880247787295399687ull, 14176378507700995075ull,
+ 10450597682291279808ull, 2467757941865353336ull}},
+ {{2738623715691861705ull, 17720473134626243844ull,
+ 13063247102864099760ull, 3084697427331691670ull}},
+ {{3423279644614827131ull, 3703847344573253189ull,
+ 7105686841725348893ull, 3855871784164614588ull}},
+ {{4445392787097960909ull, 4620747599571977195ull,
+ 13664426312933118866ull, 2409919865102884117ull}},
+ {{945054965445063232ull, 14999306536319747302ull,
+ 3245474835884234870ull, 3012399831378605147ull}},
+ {{10404690743661104848ull, 9525761133544908319ull,
+ 17891901600137457300ull, 3765499789223256433ull}},
+ {{13420460742429272386ull, 15176972745320343507ull,
+ 4264909472444828956ull, 2353437368264535271ull}},
+ {{12163889909609202579ull, 524471857940877768ull, 719450822128648292ull,
+ 2941796710330669089ull}},
+ {{15204862387011503223ull, 655589822426097210ull,
+ 5510999546088198269ull, 3677245887913336361ull}},
+ {{9782705946909603221ull, 5431173296460009417ull,
+ 11500435451037635740ull, 4596557359891670451ull}},
+ {{17643406262886971773ull, 12617855347142281693ull,
+ 4881929147684828385ull, 2872848349932294032ull}},
+ {{8219199773326551005ull, 1937261128645688405ull,
+ 6102411434606035482ull, 3591060437415367540ull}},
+ {{14885685735085576660ull, 11644948447661886314ull,
+ 7628014293257544352ull, 4488825546769209425ull}},
+ {{13915239602855873316ull, 7278092779788678946ull,
+ 16296723979354434980ull, 2805515966730755890ull}},
+ {{8170677466715065837ull, 9097615974735848683ull,
+ 11147532937338267917ull, 3506894958413444863ull}},
+ {{5601660814966444393ull, 15983705986847198758ull,
+ 9322730153245446992ull, 4383618698016806079ull}},
+ {{17336096064636191458ull, 9989816241779499223ull,
+ 12744235373419486226ull, 2739761686260503799ull}},
+ {{17058434062367851418ull, 3263898265369598221ull,
+ 11318608198346969879ull, 3424702107825629749ull}},
+ {{7487984522677650560ull, 17914930886994161489ull,
+ 313202192651548636ull, 4280877634782037187ull}},
+ {{16209205372742001360ull, 1973459767516575122ull,
+ 16336652434903075562ull, 2675548521738773241ull}},
+ {{11038134679072725892ull, 11690196746250494711ull,
+ 6585757488346680740ull, 3344435652173466552ull}},
+ {{9185982330413519461ull, 14612745932813118389ull,
+ 8232196860433350925ull, 4180544565216833190ull}},
+ {{8047081965722143615ull, 11438809217221892945ull,
+ 533437019343456424ull, 2612840353260520744ull}},
+ {{14670538475580067423ull, 14298511521527366181ull,
+ 666796274179320530ull, 3266050441575650930ull}},
+ {{4503115039192920567ull, 8649767365054431919ull,
+ 10056867379578926471ull, 4082563051969563662ull}},
+ {{9731975927136657210ull, 12323633630800101805ull,
+ 1673856093809441140ull, 2551601907480977289ull}},
+ {{16776655927348209417ull, 15404542038500127256ull,
+ 6704006135689189329ull, 3189502384351221611ull}},
+ {{2524075835475710155ull, 5420619492842995359ull,
+ 3768321651184098758ull, 3986877980439027014ull}},
+ {{8495076424813400703ull, 17222945238309035811ull,
+ 16190259087272225435ull, 2491798737774391883ull}},
+ {{6007159512589362975ull, 16916995529458906860ull,
+ 15626137840662893890ull, 3114748422217989854ull}},
+ {{7508949390736703718ull, 11922872374968857767ull,
+ 10309300263973841555ull, 3893435527772487318ull}},
+ {{11610622396851521680ull, 5145952225141842152ull,
+ 1831626646556263068ull, 2433397204857804574ull}},
+ {{14513277996064402100ull, 6432440281427302690ull,
+ 11512905345050104643ull, 3041746506072255717ull}},
+ {{8918225458225726817ull, 3428864333356740459ull, 556073626030467092ull,
+ 3802183132590319647ull}},
+ {{3268047902177385309ull, 11366412245202738595ull,
+ 7265075043910123788ull, 2376364457868949779ull}},
+ {{17920117933003895348ull, 14208015306503423243ull,
+ 4469657786460266831ull, 2970455572336187224ull}},
+ {{17788461397827481281ull, 13148333114701891150ull,
+ 5587072233075333539ull, 3713069465420234030ull}},
+ {{6506102355214787897ull, 5911865187474988017ull,
+ 17326978200954247174ull, 2320668415887646268ull}},
+ {{12744313962445872775ull, 16613203521198510829ull,
+ 3211978677483257351ull, 2900835519859557836ull}},
+ {{2095334397775177256ull, 16154818383070750633ull,
+ 4014973346854071689ull, 3626044399824447295ull}},
+ {{7230854015646359474ull, 6358464923556274579ull, 407030665140201708ull,
+ 4532555499780559119ull}},
+ {{2213440750565280719ull, 13197412614077447420ull,
+ 7171923193353707923ull, 2832847187362849449ull}},
+ {{2766800938206600899ull, 11885079749169421371ull,
+ 13576590010119522808ull, 3541058984203561811ull}},
+ {{17293559228040414836ull, 14856349686461776713ull,
+ 12359051494222015606ull, 4426323730254452264ull}},
+ {{3890945489884177417ull, 4673532535611222542ull,
+ 7724407183888759754ull, 2766452331409032665ull}},
+ {{14087053899209997579ull, 15065287706368803985ull,
+ 14267194998288337596ull, 3458065414261290831ull}},
+ {{3773759318730333261ull, 384865559251453366ull,
+ 13222307729433034092ull, 4322581767826613539ull}},
+ {{16193657629488622000ull, 9463913011386934161ull,
+ 5958099321681952355ull, 2701613604891633462ull}},
+ {{6407013981578613788ull, 7218205245806279798ull,
+ 16670996188957216252ull, 3377017006114541827ull}},
+ {{17232139513828043043ull, 9022756557257849747ull,
+ 16227059217769132411ull, 4221271257643177284ull}},
+ {{8464244186928832950ull, 3333379839072462140ull, 918539974250931949ull,
+ 2638294536026985803ull}},
+ {{10580305233661041188ull, 8778410817267965579ull,
+ 14983233023095828648ull, 3297868170033732253ull}},
+ {{8613695523648913581ull, 10973013521584956974ull,
+ 4893983223587622098ull, 4122335212542165317ull}},
+ {{771873683853183084ull, 11469819469417986013ull,
+ 5364582523955957763ull, 2576459507838853323ull}},
+ {{5576528123243866759ull, 9725588318345094612ull,
+ 2094042136517559300ull, 3220574384798566654ull}},
+ {{6970660154054833449ull, 12156985397931368265ull,
+ 11840924707501724933ull, 4025717980998208317ull}},
+ {{15885877642352740666ull, 9903958882920799117ull,
+ 9706420951402272035ull, 2516073738123880198ull}},
+ {{6022288997658762120ull, 7768262585223610993ull,
+ 2909654152398064236ull, 3145092172654850248ull}},
+ {{12139547265500840554ull, 9710328231529513741ull,
+ 3637067690497580295ull, 3931365215818562810ull}},
+ {{9893060050151719298ull, 12986484172347027944ull,
+ 6884853324988375588ull, 2457103259886601756ull}},
+ {{12366325062689649123ull, 16233105215433784930ull,
+ 8606066656235469485ull, 3071379074858252195ull}},
+ {{6234534291507285595ull, 6456323464010067451ull,
+ 6145897301866948953ull, 3839223843572815244ull}},
+ {{1590740922978359545ull, 15564417211074761917ull,
+ 13064557850521618903ull, 2399514902233009527ull}},
+ {{6600112172150337335ull, 14843835495416064492ull,
+ 11719011294724635725ull, 2999393627791261909ull}},
+ {{8250140215187921669ull, 4719736313987916903ull, 813706063123630945ull,
+ 3749242034739077387ull}},
+ {{12073866662133532899ull, 14479050242310917824ull,
+ 16649467353948127004ull, 2343276271711923366ull}},
+ {{15092333327666916124ull, 18098812802888647280ull,
+ 11588462155580382947ull, 2929095339639904208ull}},
+ {{418672585874093539ull, 18011829985183421197ull,
+ 14485577694475478684ull, 3661369174549880260ull}},
+ {{5135026750770004827ull, 4068043407769724880ull,
+ 18106972118094348356ull, 4576711468187350325ull}},
+ {{3209391719231253017ull, 11765899166710853858ull,
+ 13622700583022661674ull, 2860444667617093953ull}},
+ {{13235111685893842080ull, 5484001921533791514ull,
+ 3193317673496163381ull, 3575555834521367442ull}},
+ {{7320517570512526791ull, 11466688420344627297ull,
+ 13215019128724980034ull, 4469444793151709302ull}},
+ {{16104538527638799005ull, 11778366281142779964ull,
+ 3647700937025724617ull, 2793402995719818314ull}},
+ {{1683929085838947140ull, 887899796146311244ull,
+ 13782998208136931580ull, 3491753744649772892ull}},
+ {{2104911357298683925ull, 1109874745182889055ull,
+ 17228747760171164475ull, 4364692180812216115ull}},
+ {{8233098625952759309ull, 16834572780235163323ull,
+ 8462124340893283844ull, 2727932613007635072ull}},
+ {{5679687264013561232ull, 2596471901584402538ull,
+ 10577655426116604806ull, 3409915766259543840ull}},
+ {{16322981116871727348ull, 12468961913835278980ull,
+ 13222069282645756007ull, 4262394707824429800ull}},
+ {{978491161190053785ull, 14710630223788131219ull,
+ 8263793301653597504ull, 2663996692390268625ull}},
+ {{15058172006769730943ull, 18388287779735164023ull,
+ 14941427645494384784ull, 3329995865487835781ull}},
+ {{14211028990034775774ull, 4538615650959403413ull,
+ 4841726501585817269ull, 4162494831859794727ull}},
+ {{11187736127985428811ull, 5142477791063321085ull,
+ 9943608091132217649ull, 2601559269912371704ull}},
+ {{149612104699622302ull, 11039783257256539261ull,
+ 12429510113915272061ull, 3251949087390464630ull}},
+ {{4798701149301915781ull, 18411415089998061980ull,
+ 6313515605539314268ull, 4064936359238080788ull}},
+ {{12222560255168473171ull, 2283762394394012929ull,
+ 13169319290316847226ull, 2540585224523800492ull}},
+ {{1443142263678427752ull, 12078075029847291970ull,
+ 16461649112896059032ull, 3175731530654750615ull}},
+ {{11027299866452810498ull, 15097593787309114962ull,
+ 15965375372692685886ull, 3969664413318438269ull}},
+ {{11503748434960394466ull, 4824310098640808947ull,
+ 12284202617146622631ull, 2481040258324023918ull}},
+ {{9767999525273105178ull, 1418701604873623280ull,
+ 6131881234578502481ull, 3101300322905029898ull}},
+ {{12209999406591381472ull, 6385063024519417004ull,
+ 16888223580077903909ull, 3876625403631287372ull}},
+ {{16854621665974389228ull, 6296507399538329579ull,
+ 1331767700693914135ull, 2422890877269554608ull}},
+ {{16456591064040598631ull, 3258948230995524070ull,
+ 1664709625867392669ull, 3028613596586943260ull}},
+ {{11347366793195972481ull, 8685371307171792992ull,
+ 2080887032334240836ull, 3785766995733679075ull}},
+ {{7092104245747482801ull, 14651729103837146428ull,
+ 17441455459704758186ull, 2366104372333549421ull}},
+ {{8865130307184353501ull, 9091289342941657227ull,
+ 7966761269348784021ull, 2957630465416936777ull}},
+ {{6469726865553053972ull, 15975797697104459438ull,
+ 14570137605113367930ull, 3697038081771170971ull}},
+ {{17878637346252822445ull, 14596559579117675052ull,
+ 6800492993982161004ull, 2310648801106981857ull}},
+ {{3901552609106476440ull, 18245699473897093816ull,
+ 13112302260905089159ull, 2888311001383727321ull}},
+ {{4876940761383095549ull, 18195438323943979366ull,
+ 2555319770849197737ull, 3610388751729659152ull}},
+ {{15319547988583645245ull, 8909239849647810495ull,
+ 3194149713561497172ull, 4512985939662073940ull}},
+ {{16492246520505860134ull, 14791646942884657367ull,
+ 11219715607830711540ull, 2820616212288796212ull}},
+ {{16003622132204937264ull, 42814604896270093ull,
+ 14024644509788389426ull, 3525770265360995265ull}},
+ {{6169469609974007867ull, 9276890292975113425ull,
+ 3695747581953323070ull, 4407212831701244082ull}},
+ {{15385133552302224677ull, 1186370414682057986ull,
+ 6921528257148214823ull, 2754508019813277551ull}},
+ {{10008044903523005038ull, 15318021073634736195ull,
+ 4040224303007880624ull, 3443135024766596939ull}},
+ {{7898370110976368394ull, 700782268333868628ull, 438594360332462877ull,
+ 4303918780958246174ull}},
+ {{14159853356215006054ull, 2743831926922361844ull,
+ 14109179530489953010ull, 2689949238098903858ull}},
+ {{17699816695268757568ull, 12653161945507728113ull,
+ 8413102376257665454ull, 3362436547623629823ull}},
+ {{8289712813803783248ull, 6593080395029884334ull,
+ 5904691951894693914ull, 4203045684529537279ull}},
+ {{569384490199976626ull, 8732361265321065613ull,
+ 10607961497575265552ull, 2626903552830960799ull}},
+ {{5323416631177358686ull, 10915451581651332016ull,
+ 8648265853541694036ull, 3283629441038700999ull}},
+ {{6654270788971698358ull, 13644314477064165020ull,
+ 6198646298499729641ull, 4104536801298376249ull}},
+ {{13382291279962087282ull, 1610167520524021281ull,
+ 15403368982630800786ull, 2565335500811485155ull}},
+ {{2892806044670445390ull, 11236081437509802410ull,
+ 14642525209861113078ull, 3206669376014356444ull}}
+};
+
+static const BID_UINT256 bid_multipliers1_binary80[] = {
+ {{12415850090107640902ull, 14557465677128539270ull,
+ 4938398379086257084ull, 5255184001115807319ull}},
+ {{6296440575779775320ull, 18196832096410674088ull,
+ 1561311955430433451ull, 6568980001394759149ull}},
+ {{7870550719724719149ull, 18134354102085954706ull,
+ 6563325962715429718ull, 8211225001743448936ull}},
+ {{9530780218255337373ull, 6722285295376333787ull,
+ 4102078726697143574ull, 5132015626089655585ull}},
+ {{7301789254391783812ull, 17626228656075193042ull,
+ 9739284426798817371ull, 6415019532612069481ull}},
+ {{18350608604844505572ull, 17421099801666603398ull,
+ 16785791551925909618ull, 8018774415765086851ull}},
+ {{6857444359600428079ull, 15499873394469015028ull,
+ 8185276710739999559ull, 5011734009853179282ull}},
+ {{8571805449500535098ull, 14763155724658880881ull,
+ 1008223851570223641ull, 6264667512316474103ull}},
+ {{15326442830303056777ull, 4618886600541437389ull,
+ 15095337869744943264ull, 7830834390395592628ull}},
+ {{11884869778153104438ull, 2886804125338398368ull,
+ 211214131735813732ull, 4894271493997245393ull}},
+ {{14856087222691380547ull, 3608505156672997960ull,
+ 4875703683097155069ull, 6117839367496556741ull}},
+ {{123364954654674068ull, 9122317464268635355ull,
+ 10706315622298831740ull, 7647299209370695926ull}},
+ {{16218004161155028957ull, 14924820452022672904ull,
+ 2079761245509381933ull, 4779562005856684954ull}},
+ {{1825761127734234580ull, 4820967509746177419ull,
+ 11823073593741503225ull, 5974452507320856192ull}},
+ {{16117259464949956936ull, 10637895405610109677ull,
+ 14778841992176879031ull, 7468065634151070240ull}},
+ {{12379130174807417037ull, 13566213656147400404ull,
+ 9236776245110549394ull, 4667541021344418900ull}},
+ {{15473912718509271297ull, 7734395033329474697ull,
+ 11545970306388186743ull, 5834426276680523625ull}},
+ {{5507332842854425409ull, 5056307773234455468ull, 597404827703069717ull,
+ 7293032845850654532ull}},
+ {{6884166053568031761ull, 10932070734970457239ull,
+ 746756034628837146ull, 9116291057313318165ull}},
+ {{11220132811121101707ull, 11444230227783923678ull,
+ 2772565530856717168ull, 5697681910820823853ull}},
+ {{4801793977046601325ull, 14305287784729904598ull,
+ 8077392931998284364ull, 7122102388526029816ull}},
+ {{15225614508163027464ull, 17881609730912380747ull,
+ 10096741164997855455ull, 8902627985657537270ull}},
+ {{7210166058388198213ull, 18093535109461319823ull,
+ 1698777209696271755ull, 5564142491035960794ull}},
+ {{4401021554557859863ull, 18005232868399261875ull,
+ 11346843548975115502ull, 6955178113794950992ull}},
+ {{889590924769936924ull, 13283169048644301536ull,
+ 14183554436218894378ull, 8693972642243688740ull}},
+ {{555994327981210578ull, 12913666673830076364ull,
+ 18088093559491584794ull, 5433732901402305462ull}},
+ {{694992909976513222ull, 6918711305432819647ull,
+ 13386744912509705185ull, 6792166126752881828ull}},
+ {{14703799192752805239ull, 13260075150218412462ull,
+ 16733431140637131481ull, 8490207658441102285ull}},
+ {{4578188477043115371ull, 1370017941245425933ull,
+ 12764237472111901128ull, 5306379786525688928ull}},
+ {{10334421614731282117ull, 1712522426556782416ull,
+ 15955296840139876410ull, 6632974733157111160ull}},
+ {{12918027018414102647ull, 11364025070050753828ull,
+ 1497376976465293896ull, 8291218416446388951ull}},
+ {{17297138923363589962ull, 7102515668781721142ull,
+ 7853389637931890541ull, 5182011510278993094ull}},
+ {{12398051617349711645ull, 13489830604404539332ull,
+ 593365010560087368ull, 6477514387848741368ull}},
+ {{15497564521687139556ull, 16862288255505674165ull,
+ 741706263200109210ull, 8096892984810926710ull}},
+ {{11991820835268156175ull, 15150616178118434257ull,
+ 14298624469782231968ull, 5060558115506829193ull}},
+ {{1154717988803031506ull, 491526148938491206ull, 4038222531945626249ull,
+ 6325697644383536492ull}},
+ {{10666769522858565191ull, 5226093704600501911ull,
+ 5047778164932032811ull, 7907122055479420615ull}},
+ {{13584259979427685100ull, 960465556161619742ull,
+ 10072390380723602363ull, 4941951284674637884ull}},
+ {{7756952937429830567ull, 15035640000484188390ull,
+ 12590487975904502953ull, 6177439105843297355ull}},
+ {{472819134932512401ull, 4959491945323071776ull,
+ 11126423951453240788ull, 7721798882304121694ull}},
+ {{295511959332820251ull, 12323054502681695668ull,
+ 2342328951230887588ull, 4826124301440076059ull}},
+ {{369389949166025313ull, 15403818128352119585ull,
+ 16762969244320773197ull, 6032655376800095073ull}},
+ {{5073423454884919546ull, 5419714605157985769ull,
+ 7118653500118802785ull, 7540819221000118842ull}},
+ {{14700104705371544476ull, 14916536674292210865ull,
+ 9060844456001639644ull, 4713012013125074276ull}},
+ {{4540072826432266883ull, 198926769155711966ull,
+ 11326055570002049556ull, 5891265016406342845ull}},
+ {{14898463069895109412ull, 248658461444639957ull, 322511407220398233ull,
+ 7364081270507928557ull}},
+ {{4788020782086723053ull, 4922509095233187851ull,
+ 5014825277452885695ull, 9205101588134910696ull}},
+ {{686669979590507956ull, 9994097212161824263ull, 3134265798408053559ull,
+ 5753188492584319185ull}},
+ {{14693395529770298657ull, 7880935496774892424ull,
+ 8529518266437454853ull, 7191485615730398981ull}},
+ {{18366744412212873321ull, 14462855389396003434ull,
+ 15273583851474206470ull, 8989357019662998726ull}},
+ {{16090901276060433730ull, 4427598599945114242ull,
+ 4934303888743991140ull, 5618348137289374204ull}},
+ {{10890254558220766354ull, 5534498249931392803ull,
+ 6167879860929988925ull, 7022935171611717755ull}},
+ {{9001132179348570039ull, 11529808830841628908ull,
+ 3098163807735098252ull, 8778668964514647194ull}},
+ {{14849079648947632082ull, 16429502556130793875ull,
+ 6548038398261824311ull, 5486668102821654496ull}},
+ {{13949663542757152199ull, 15925192176736104440ull,
+ 8185047997827280389ull, 6858335128527068120ull}},
+ {{17437079428446440248ull, 6071432165637966838ull,
+ 10231309997284100487ull, 8572918910658835150ull}},
+ {{6286488624351637251ull, 10712174131164811130ull,
+ 1782882729875174900ull, 5358074319161771969ull}},
+ {{17081482817294322372ull, 13390217663956013912ull,
+ 6840289430771356529ull, 6697592898952214961ull}},
+ {{2905109447908351349ull, 2902714024662853679ull,
+ 13162047806891583566ull, 8371991123690268701ull}},
+ {{8733222432583801449ull, 15649254320696447261ull,
+ 10532122888520933680ull, 5232494452306417938ull}},
+ {{15528214059157139716ull, 1114823827161007460ull,
+ 3941781573796391293ull, 6540618065383022423ull}},
+ {{963523500236873028ull, 6005215802378647230ull, 315540948818101212ull,
+ 8175772581728778029ull}},
+ {{14437260242930209355ull, 12976631913341430326ull,
+ 2503056102225007209ull, 5109857863580486268ull}},
+ {{8823203266807985885ull, 2385731836394624196ull,
+ 3128820127781259012ull, 6387322329475607835ull}},
+ {{11029004083509982357ull, 2982164795493280245ull,
+ 17746083215008737477ull, 7984152911844509793ull}},
+ {{9198970561407432925ull, 4169696006396994105ull,
+ 4173772981739379067ull, 4990095569902818621ull}},
+ {{16110399220186679060ull, 600433989568854727ull,
+ 9828902245601611738ull, 6237619462378523276ull}},
+ {{15526313006805960921ull, 9973914523815844217ull,
+ 12286127807002014672ull, 7797024327973154095ull}},
+ {{2786416601612643720ull, 6233696577384902636ull,
+ 14596358907017341026ull, 4873140204983221309ull}},
+ {{3483020752015804650ull, 17015492758585904103ull,
+ 4410390578489512570ull, 6091425256229026637ull}},
+ {{18188833995301919524ull, 12045993911377604320ull,
+ 10124674241539278617ull, 7614281570286283296ull}},
+ {{11368021247063699703ull, 611217166969920844ull,
+ 6327921400962049136ull, 4758925981428927060ull}},
+ {{14210026558829624628ull, 764021458712401055ull,
+ 7909901751202561420ull, 5948657476786158825ull}},
+ {{13150847180109642881ull, 955026823390501319ull,
+ 14499063207430589679ull, 7435821845982698531ull}},
+ {{15136808515209608657ull, 7514420792260145180ull,
+ 6756071495430424597ull, 4647388653739186582ull}},
+ {{474266570302459205ull, 14004712008752569380ull,
+ 17668461406142806554ull, 5809235817173983227ull}},
+ {{592833212878074006ull, 8282517974085935917ull,
+ 17473890739251120289ull, 7261544771467479034ull}},
+ {{5352727534524980412ull, 14964833486034807800ull,
+ 12618991387209124553ull, 9076930964334348793ull}},
+ {{3345454709078112758ull, 2435491901130673019ull, 969340589364620990ull,
+ 5673081852708967996ull}},
+ {{18016876441629804659ull, 12267736913268117081ull,
+ 1211675736705776237ull, 7091352315886209995ull}},
+ {{8686037496755092111ull, 1499613086302982640ull,
+ 15349652726164384009ull, 8864190394857762493ull}},
+ {{5428773435471932570ull, 12466473225007833910ull,
+ 11899375963066433957ull, 5540118996786101558ull}},
+ {{16009338831194691520ull, 1748033475977628675ull,
+ 5650847916978266639ull, 6925148745982626948ull}},
+ {{15399987520565976496ull, 16020099900254199556ull,
+ 7063559896222833298ull, 8656435932478283685ull}},
+ {{401620163498959502ull, 14624248456086262627ull,
+ 6720567944352964763ull, 5410272457798927303ull}},
+ {{14337083259655863090ull, 13668624551680440379ull,
+ 3789023912013818050ull, 6762840572248659129ull}},
+ {{13309668056142440958ull, 7862408652745774666ull,
+ 9347965908444660467ull, 8453550715310823911ull}},
+ {{12930228553516413503ull, 2608162398752415214ull,
+ 12760007720418994648ull, 5283469197069264944ull}},
+ {{6939413655040741070ull, 3260202998440519018ull,
+ 15950009650523743310ull, 6604336496336581180ull}},
+ {{17897639105655702146ull, 13298625784905424580ull,
+ 1490767989445127521ull, 8255420620420726476ull}},
+ {{1962652404180038033ull, 1394112087924808507ull,
+ 10155102030257980509ull, 5159637887762954047ull}},
+ {{16288373560507211254ull, 6354326128333398537ull,
+ 8082191519395087732ull, 6449547359703692559ull}},
+ {{6525408895351850355ull, 7942907660416748172ull,
+ 5491053380816471761ull, 8061934199629615699ull}},
+ {{13301752596449682280ull, 16493532333828937367ull,
+ 1126065353796600898ull, 5038708874768509812ull}},
+ {{12015504727134714946ull, 11393543380431395901ull,
+ 1407581692245751123ull, 6298386093460637265ull}},
+ {{1184322853636229970ull, 9630243207111856973ull,
+ 6371163133734576808ull, 7872982616825796581ull}},
+ {{3046044792736337684ull, 6018902004444910608ull,
+ 6287819967797804457ull, 4920614135516122863ull}},
+ {{3807555990920422104ull, 12135313523983526164ull,
+ 3248088941319867667ull, 6150767669395153579ull}},
+ {{4759444988650527630ull, 10557455886552019801ull,
+ 17895169231931998296ull, 7688459586743941973ull}},
+ {{14503868163975049529ull, 6598409929095012375ull,
+ 13490323779171192887ull, 4805287241714963733ull}},
+ {{13518149186541424007ull, 3636326392941377565ull,
+ 3027846668681827397ull, 6006609052143704667ull}},
+ {{3062628427894616297ull, 9157094009604109861ull,
+ 17619866391134447958ull, 7508261315179630833ull}},
+ {{4219985776647829138ull, 1111497737575180759ull,
+ 4094887466817948118ull, 4692663321987269271ull}},
+ {{663296202382398518ull, 10612744208823751757ull, 506923315095047243ull,
+ 5865829152484086589ull}},
+ {{5440806271405386052ull, 8654244242602301792ull,
+ 5245340162296196958ull, 7332286440605108236ull}},
+ {{6801007839256732564ull, 1594433266398101432ull,
+ 6556675202870246198ull, 9165358050756385295ull}},
+ {{4250629899535457853ull, 14831578846780977107ull,
+ 11015451029434985729ull, 5728348781722740809ull}},
+ {{701601355991934412ull, 4704415503194057672ull,
+ 18380999805221120066ull, 7160435977153426011ull}},
+ {{877001694989918015ull, 15103891415847347898ull,
+ 18364563738099012178ull, 8950544971441782514ull}},
+ {{5159812077796086663ull, 14051618153331980340ull,
+ 16089538354739270515ull, 5594090607151114071ull}},
+ {{6449765097245108329ull, 12952836673237587521ull,
+ 15500236924996700240ull, 6992613258938892589ull}},
+ {{12673892389983773315ull, 16191045841546984401ull,
+ 5540238100963711588ull, 8740766573673615737ull}},
+ {{1003653716098776466ull, 896031614112089443ull,
+ 14991863859170789503ull, 5462979108546009835ull}},
+ {{15089625200405634295ull, 14955097572922275515ull,
+ 14128143805536098974ull, 6828723885682512294ull}},
+ {{14250345482079654964ull, 9470499929298068586ull,
+ 8436807720065347910ull, 8535904857103140368ull}},
+ {{13518151944727172257ull, 1307376437383904962ull,
+ 5273004825040842444ull, 5334940535689462730ull}},
+ {{7674317894054189513ull, 1634220546729881203ull,
+ 15814628068155828863ull, 6668675669611828412ull}},
+ {{4981211349140348987ull, 15877833738694515216ull,
+ 1321541011485234462ull, 8335844587014785516ull}},
+ {{3113257093212718117ull, 5311960068256684106ull,
+ 10049335169033047347ull, 5209902866884240947ull}},
+ {{13114943403370673454ull, 2028264066893467228ull,
+ 7949982942863921280ull, 6512378583605301184ull}},
+ {{16393679254213341818ull, 2535330083616834035ull,
+ 9937478678579901600ull, 8140473229506626480ull}},
+ {{7940206524669644684ull, 1584581302260521272ull,
+ 6210924174112438500ull, 5087795768441641550ull}},
+ {{9925258155837055855ull, 1980726627825651590ull,
+ 16987027254495323933ull, 6359744710552051937ull}},
+ {{3183200657941544011ull, 7087594303209452392ull,
+ 7398726012836991204ull, 7949680888190064922ull}},
+ {{1989500411213465007ull, 13653118476360683553ull,
+ 9235889776450507406ull, 4968550555118790576ull}},
+ {{7098561532444219163ull, 7843026058596078633ull,
+ 11544862220563134258ull, 6210688193898488220ull}},
+ {{13484887933982661857ull, 580410536390322483ull,
+ 14431077775703917823ull, 7763360242373110275ull}},
+ {{6122211949525469709ull, 7280285612885033408ull,
+ 6713580600601254687ull, 4852100151483193922ull}},
+ {{7652764936906837136ull, 4488670997678903856ull,
+ 17615347787606344167ull, 6065125189353992402ull}},
+ {{9565956171133546420ull, 999152728671241916ull,
+ 12795812697653154401ull, 7581406486692490503ull}},
+ {{15202094643813242321ull, 12153685501487995957ull,
+ 14914911963674303356ull, 4738379054182806564ull}},
+ {{5167560249484389189ull, 15192106876859994947ull,
+ 196895880883327579ull, 5922973817728508206ull}},
+ {{1847764293428098582ull, 14378447577647605780ull,
+ 9469491887958935282ull, 7403717272160635257ull}},
+ {{10378224720247337422ull, 13598215754457141516ull,
+ 17447647476042804311ull, 4627323295100397035ull}},
+ {{12972780900309171777ull, 12386083674644038991ull,
+ 17197873326626117485ull, 5784154118875496294ull}},
+ {{11604290106959076817ull, 1647546538022885027ull,
+ 12273969621427871049ull, 7230192648594370368ull}},
+ {{9893676615271458117ull, 6671119190955994188ull,
+ 15342462026784838811ull, 9037740810742962960ull}},
+ {{15406919921399437132ull, 1863606485133802415ull,
+ 9589038766740524257ull, 5648588006714351850ull}},
+ {{14646963883321908510ull, 6941194124844640923ull,
+ 2762926421570879513ull, 7060735008392939813ull}},
+ {{13697018835724997734ull, 13288178674483189058ull,
+ 8065344045390987295ull, 8825918760491174766ull}},
+ {{13172322790755511488ull, 15222640699193075017ull,
+ 429154009941979155ull, 5516199225306984229ull}},
+ {{2630345433162225648ull, 14416614855563955868ull,
+ 5148128530854861848ull, 6895249031633730286ull}},
+ {{3287931791452782059ull, 18020768569454944835ull,
+ 15658532700423353118ull, 8619061289542162857ull}},
+ {{18195858434153846451ull, 6651294337481952617ull,
+ 2869053910123513843ull, 5386913305963851786ull}},
+ {{8909764987410144352ull, 3702431903425052868ull,
+ 12809689424509168112ull, 6733641632454814732ull}},
+ {{11137206234262680440ull, 4628039879281316085ull,
+ 16012111780636460140ull, 8417052040568518415ull}},
+ {{9266596905627869227ull, 12115896961405598361ull,
+ 16925098890538869443ull, 5260657525355324009ull}},
+ {{16194932150462224438ull, 10533185183329610047ull,
+ 7321315557891423092ull, 6575821906694155012ull}},
+ {{15631979169650392643ull, 13166481479162012559ull,
+ 9151644447364278865ull, 8219777383367693765ull}},
+ {{16687516008672577258ull, 1311521896835175993ull,
+ 8025620788816368243ull, 5137360864604808603ull}},
+ {{7024336955558557860ull, 15474460426326133704ull,
+ 5420339967593072399ull, 6421701080756010754ull}},
+ {{8780421194448197325ull, 14731389514480279226ull,
+ 15998796996346116307ull, 8027126350945013442ull}},
+ {{10099449264957511233ull, 6901275437336480564ull,
+ 14610934141143710596ull, 5016953969340633401ull}},
+ {{12624311581196889041ull, 8626594296670600705ull,
+ 4428609621147474533ull, 6271192461675791752ull}},
+ {{1945331421213947589ull, 15394928889265638786ull,
+ 5535762026434343166ull, 7838990577094739690ull}},
+ {{5827518156686105147ull, 5010144537363636337ull,
+ 8071537284948852383ull, 4899369110684212306ull}},
+ {{11896083714285019338ull, 1650994653277157517ull,
+ 866049569331289671ull, 6124211388355265383ull}},
+ {{1035046587574110460ull, 15898801371878610609ull,
+ 14917620016946275800ull, 7655264235444081728ull}},
+ {{12176119163302288798ull, 9936750857424131630ull,
+ 9323512510591422375ull, 4784540147152551080ull}},
+ {{5996776917273085189ull, 7809252553352776634ull,
+ 11654390638239277969ull, 5980675183940688850ull}},
+ {{16719343183446132294ull, 14373251710118358696ull,
+ 5344616260944321653ull, 7475843979925861063ull}},
+ {{10449589489653832684ull, 11289125328037668137ull,
+ 10257914190731282889ull, 4672402487453663164ull}},
+ {{17673672880494678759ull, 276348604764921459ull,
+ 12822392738414103612ull, 5840503109317078955ull}},
+ {{17480405082190960545ull, 345435755956151824ull,
+ 11416304904590241611ull, 7300628886646348694ull}},
+ {{3403762279029149065ull, 14266852750227353493ull,
+ 5047009093883026205ull, 9125786108307935868ull}},
+ {{4433194433606912118ull, 11222625978105789885ull,
+ 12377752720531667186ull, 5703616317692459917ull}},
+ {{10153179060436028051ull, 4804910435777461548ull,
+ 1637132845382420271ull, 7129520397115574897ull}},
+ {{12691473825545035063ull, 1394452026294439031ull,
+ 6658102075155413243ull, 8911900496394468621ull}},
+ {{14849700168606728771ull, 17012433580929882058ull,
+ 6467156806185827228ull, 5569937810246542888ull}},
+ {{9338753173903635155ull, 2818797902452800957ull,
+ 8083946007732284036ull, 6962422262808178610ull}},
+ {{16285127485806931848ull, 3523497378066001196ull,
+ 881560472810579237ull, 8703027828510223263ull}},
+ {{954832641774556597ull, 4508028870504944700ull, 7468504323147693879ull,
+ 5439392392818889539ull}},
+ {{1193540802218195746ull, 1023350069703792971ull,
+ 4723944385507229445ull, 6799240491023611924ull}},
+ {{15326984058054908395ull, 5890873605557129117ull,
+ 5904930481884036806ull, 8499050613779514905ull}},
+ {{11885208045498011699ull, 17516854058755369410ull,
+ 15219796597245992763ull, 5311906633612196815ull}},
+ {{5633138020017738816ull, 17284381555016823859ull,
+ 14413059728130103050ull, 6639883292015246019ull}},
+ {{2429736506594785615ull, 12382104906916254016ull,
+ 13404638641735240909ull, 8299854115019057524ull}},
+ {{1518585316621741010ull, 10044658576036352712ull,
+ 17601271187939301376ull, 5187408821886910952ull}},
+ {{1898231645777176262ull, 12555823220045440890ull,
+ 3554844911214575104ull, 6484261027358638691ull}},
+ {{11596161594076246136ull, 15694779025056801112ull,
+ 18278614194300382592ull, 8105326284198298363ull}},
+ {{7247600996297653835ull, 9809236890660500695ull,
+ 9118290862224045168ull, 5065828927623936477ull}},
+ {{4447815226944679390ull, 12261546113325625869ull,
+ 16009549596207444364ull, 6332286159529920596ull}},
+ {{10171455052108237141ull, 15326932641657032336ull,
+ 1565192921549753839ull, 7915357699412400746ull}},
+ {{6357159407567648213ull, 16496861928676727066ull,
+ 5589931594395984053ull, 4947098562132750466ull}},
+ {{17169821296314336074ull, 6786019355563745120ull,
+ 16210786529849755875ull, 6183873202665938082ull}},
+ {{3015532546683368477ull, 3870838176027293497ull,
+ 11040111125457419036ull, 7729841503332422603ull}},
+ {{13413922887745575058ull, 11642645896871834243ull,
+ 4594226444197192945ull, 4831150939582764127ull}},
+ {{12155717591254580919ull, 718249315807629092ull,
+ 1131097036819103278ull, 6038938674478455159ull}},
+ {{15194646989068226148ull, 10121183681614312173ull,
+ 15248929351306042809ull, 7548673343098068948ull}},
+ {{11802497377381335295ull, 17854954847077414868ull,
+ 307208807711500947ull, 4717920839436293093ull}},
+ {{14753121721726669118ull, 17707007540419380681ull,
+ 4995697028066764088ull, 5897401049295366366ull}},
+ {{4606344096876172686ull, 3687015351814674236ull,
+ 15467993321938230919ull, 7371751311619207957ull}},
+ {{5757930121095215857ull, 18443827245050506507ull,
+ 5499933597140624936ull, 9214689139524009947ull}},
+ {{1292863316470815959ull, 11527392028156566567ull,
+ 1131615488999196633ull, 5759180712202506217ull}},
+ {{15451137200870683660ull, 574181979913544496ull,
+ 6026205379676383696ull, 7198975890253132771ull}},
+ {{867177427378802959ull, 717727474891930621ull, 2921070706168091716ull,
+ 8998719862816415964ull}},
+ {{2847828901325445802ull, 9671951708662232446ull,
+ 11049041228209833130ull, 5624199914260259977ull}},
+ {{12783158163511583060ull, 2866567598973014749ull,
+ 18422987553689679317ull, 7030249892825324971ull}},
+ {{2143889649107315113ull, 8194895517143656341ull,
+ 18417048423684711242ull, 8787812366031656214ull}},
+ {{3645774039905765898ull, 9733495716642173117ull,
+ 6898969246375556622ull, 5492382728769785134ull}},
+ {{9168903568309595276ull, 2943497608947940588ull,
+ 17847083594824221586ull, 6865478410962231417ull}},
+ {{11461129460386994095ull, 12902744048039701543ull,
+ 8473796438248113270ull, 8581848013702789272ull}},
+ {{14080734940382953166ull, 3452529011597425560ull,
+ 5296122773905070794ull, 5363655008564243295ull}},
+ {{17600918675478691457ull, 13539033301351557758ull,
+ 2008467448953950588ull, 6704568760705304119ull}},
+ {{12777776307493588513ull, 16923791626689447198ull,
+ 16345642366474601947ull, 8380710950881630148ull}},
+ {{3374424173756104917ull, 8271526757467210547ull, 992654442191850409ull,
+ 5237944344301018843ull}},
+ {{18053088272477294858ull, 14951094465261401087ull,
+ 15075876108021976723ull, 6547430430376273553ull}},
+ {{17954674322169230668ull, 14077182063149363455ull,
+ 5009787079745307192ull, 8184288037970341942ull}},
+ {{18139200478996851024ull, 8798238789468352159ull,
+ 16966174980122980707ull, 5115180023731463713ull}},
+ {{18062314580318675876ull, 6386112468408052295ull,
+ 7372660669871562172ull, 6393975029664329642ull}},
+ {{17966207206970956941ull, 7982640585510065369ull,
+ 18439197874194228523ull, 7992468787080412052ull}},
+ {{4311350476715766232ull, 2683307356730096904ull,
+ 2301126634516617019ull, 4995292991925257533ull}},
+ {{5389188095894707790ull, 17189192251194784842ull,
+ 7488094311573159177ull, 6244116239906571916ull}},
+ {{15959857156723160545ull, 7651432258711317340ull,
+ 9360117889466448972ull, 7805145299883214895ull}},
+ {{751538686097199533ull, 14005517198549349146ull,
+ 12767602708557612463ull, 4878215812427009309ull}},
+ {{10162795394476275224ull, 12895210479759298528ull,
+ 2124445330414851867ull, 6097769765533761637ull}},
+ {{12703494243095344030ull, 11507327081271735256ull,
+ 7267242681445952738ull, 7622212206917202046ull}},
+ {{7939683901934590019ull, 11803765444222222439ull,
+ 18377084731185884173ull, 4763882629323251278ull}},
+ {{5312918858990849620ull, 919648749995614337ull,
+ 13747983877127579409ull, 5954853286654064098ull}},
+ {{11252834592165949928ull, 5761246955921905825ull,
+ 7961607809554698453ull, 7443566608317580123ull}},
+ {{115492592462636849ull, 5906622356664885093ull, 2670161871757992581ull,
+ 4652229130198487577ull}},
+ {{4756051759005683966ull, 11994963964258494270ull,
+ 7949388358124878630ull, 5815286412748109471ull}},
+ {{15168436735611880765ull, 5770332918468342029ull,
+ 5325049429228710384ull, 7269108015935136839ull}},
+ {{5125487864232687244ull, 7212916148085427537ull,
+ 2044625768108500076ull, 9086385019918921049ull}},
+ {{14732644961213899288ull, 13731444629408168018ull,
+ 12807106151136282307ull, 5678990637449325655ull}},
+ {{9192434164662598301ull, 12552619768332822119ull,
+ 11397196670492964980ull, 7098738296811657069ull}},
+ {{6878856687400859973ull, 15690774710416027649ull,
+ 411437782834042513ull, 8873422871014571337ull}},
+ {{15828500475694007243ull, 2889205166368935424ull,
+ 11786363660339746331ull, 5545889294384107085ull}},
+ {{1338881520907957438ull, 17446564513243332993ull,
+ 897896520142519201ull, 6932361617980133857ull}},
+ {{6285287919562334701ull, 7973147586272002529ull,
+ 5734056668605536906ull, 8665452022475167321ull}},
+ {{15457519995794928948ull, 9594903259847389484ull,
+ 15113000463946930326ull, 5415907514046979575ull}},
+ {{875155921034109569ull, 2770257037954461048ull,
+ 14279564561506275004ull, 6769884392558724469ull}},
+ {{1093944901292636962ull, 3462821297443076310ull,
+ 4014397646600680043ull, 8462355490698405587ull}},
+ {{14518773618590061813ull, 18305164375397780357ull,
+ 203155519911731074ull, 5288972181686503492ull}},
+ {{4313408967955413554ull, 13658083432392449639ull,
+ 253944399889663843ull, 6611215227108129365ull}},
+ {{780075191516879039ull, 12460918272063174145ull,
+ 4929116518289467708ull, 8264019033885161706ull}},
+ {{12016762040766519159ull, 17011445956894259648ull,
+ 7692383842358305221ull, 5165011896178226066ull}},
+ {{15020952550958148949ull, 7429249390835660848ull,
+ 392107766093105719ull, 6456264870222782583ull}},
+ {{329446614988134570ull, 4674875720117188157ull,
+ 14325192762898545861ull, 8070331087778478228ull}},
+ {{2511747143581278059ull, 5227640334286936550ull,
+ 18176617513666366971ull, 5043956929861548892ull}},
+ {{12363055966331373381ull, 1922864399431282783ull,
+ 4274027818373407098ull, 6304946162326936116ull}},
+ {{10842133939486828822ull, 11626952536143879287ull,
+ 5342534772966758872ull, 7881182702908670145ull}},
+ {{13693862739820349870ull, 7266845335089924554ull,
+ 14868299279172694055ull, 4925739189317918840ull}},
+ {{7893956387920661530ull, 4471870650435017789ull, 138630025256315953ull,
+ 6157173986647398551ull}},
+ {{14479131503328214816ull, 10201524331471160140ull,
+ 14008345586852558653ull, 7696467483309248188ull}},
+ {{18272829226434910068ull, 8681795716383169039ull,
+ 17978588028637624966ull, 4810292177068280117ull}},
+ {{18229350514616249681ull, 1628872608624185491ull,
+ 8638176980514867496ull, 6012865221335350147ull}},
+ {{18175002124842924197ull, 2036090760780231864ull,
+ 6186035207216196466ull, 7516081526669187684ull}},
+ {{11359376328026827623ull, 5884242743915032819ull,
+ 13089644041364898599ull, 4697550954168242302ull}},
+ {{9587534391606146625ull, 2743617411466403120ull,
+ 7138683014851347441ull, 5871938692710302878ull}},
+ {{11984417989507683281ull, 8041207782760391804ull,
+ 18146725805418960109ull, 7339923365887878597ull}},
+ {{14980522486884604101ull, 14663195746877877659ull,
+ 8848349201491536424ull, 9174904207359848247ull}},
+ {{7056983545089183612ull, 9164497341798673537ull,
+ 12447747278573292121ull, 5734315129599905154ull}},
+ {{13432915449788867418ull, 16067307695675729825ull,
+ 6336312061361839343ull, 7167893911999881443ull}},
+ {{2956086256953920561ull, 15472448601167274378ull,
+ 3308704058274911275ull, 8959867389999851804ull}},
+ {{6459239929023588255ull, 7364437366515852534ull,
+ 11291312073276595355ull, 5599917118749907377ull}},
+ {{17297421948134261126ull, 4593860689717427763ull,
+ 279082036313580482ull, 6999896398437384222ull}},
+ {{17010091416740438504ull, 14965697899001560512ull,
+ 9572224582246751410ull, 8749870498046730277ull}},
+ {{10631307135462774065ull, 13965247205303363224ull,
+ 8288483373117913583ull, 5468669061279206423ull}},
+ {{13289133919328467581ull, 12844872988201816126ull,
+ 5748918197970004075ull, 6835836326599008029ull}},
+ {{7388045362305808668ull, 11444405216824882254ull,
+ 11797833765889892998ull, 8544795408248760036ull}},
+ {{5842333013742514ull, 2541067242088163505ull, 16597018140535958932ull,
+ 5340497130155475022ull}},
+ {{4618988934694566046ull, 3176334052610204381ull,
+ 11522900638815172857ull, 6675621412694343778ull}},
+ {{10385422186795595462ull, 8582103584190143380ull,
+ 5180253761664190263ull, 8344526765867929723ull}},
+ {{15714260903602022972ull, 12281343767759921468ull,
+ 931815591826424962ull, 5215329228667456077ull}},
+ {{1196082055792977098ull, 6128307672845126028ull,
+ 5776455508210419107ull, 6519161535834320096ull}},
+ {{1495102569741221373ull, 3048698572629019631ull,
+ 7220569385263023884ull, 8148951919792900120ull}},
+ {{7851968133729345214ull, 11128808644747913077ull,
+ 4512855865789389927ull, 5093094949870562575ull}},
+ {{14426646185589069422ull, 9299324787507503442ull,
+ 1029383813809349505ull, 6366368687338203219ull}},
+ {{8809935695131560969ull, 16235842002811767207ull,
+ 15121787822543850593ull, 7957960859172754023ull}},
+ {{12423738837098307462ull, 3229872224116272648ull,
+ 16368646416730988477ull, 4973725536982971264ull}},
+ {{15529673546372884327ull, 8649026298572728714ull,
+ 2014063947204183980ull, 6217156921228714081ull}},
+ {{10188719896111329601ull, 10811282873215910893ull,
+ 7129265952432617879ull, 7771446151535892601ull}},
+ {{8673792944283274953ull, 13674580823401026164ull,
+ 15985006266338855934ull, 4857153844709932875ull}},
+ {{10842241180354093691ull, 7869853992396506897ull,
+ 15369571814496182014ull, 6071442305887416094ull}},
+ {{18164487493870005017ull, 613945453640857813ull,
+ 9988592731265451710ull, 7589302882359270118ull}},
+ {{13658647692882447088ull, 14218773963807699845ull,
+ 1631184438613519414ull, 4743314301474543824ull}},
+ {{3238251560820895148ull, 8550095417904848999ull,
+ 2038980548266899268ull, 5929142876843179780ull}},
+ {{17882872506308282647ull, 10687619272381061248ull,
+ 2548725685333624085ull, 7411428596053974725ull}},
+ {{11176795316442676654ull, 8985605054451857232ull,
+ 3898796562547209005ull, 4632142872533734203ull}},
+ {{13970994145553345818ull, 15843692336492209444ull,
+ 261809684756623352ull, 5790178590667167754ull}},
+ {{17463742681941682272ull, 1357871346905710189ull,
+ 9550634142800554999ull, 7237723238333959692ull}},
+ {{7994620297144939128ull, 15532397238914301449ull,
+ 11938292678500693748ull, 9047154047917449615ull}},
+ {{16525852731784056715ull, 484376237466662597ull,
+ 14378961951704015449ull, 5654471279948406009ull}},
+ {{6822257859447907182ull, 5217156315260716151ull,
+ 4138644384347855599ull, 7068089099935507512ull}},
+ {{3916136305882496073ull, 1909759375648507285ull,
+ 5173305480434819499ull, 8835111374919384390ull}},
+ {{4753428200390253998ull, 17334500674276174717ull,
+ 17068373980553925898ull, 5521944609324615243ull}},
+ {{10553471268915205401ull, 12444753805990442588ull,
+ 16723781457265019469ull, 6902430761655769054ull}},
+ {{13191839086144006752ull, 1720884202205889523ull,
+ 11681354784726498529ull, 8628038452069711318ull}},
+ {{5939056419626310268ull, 12604767672447150712ull,
+ 2689160722026673676ull, 5392524032543569574ull}},
+ {{7423820524532887835ull, 15755959590558938390ull,
+ 12584822939388117903ull, 6740655040679461967ull}},
+ {{56403618811333985ull, 15083263469771285084ull,
+ 11119342655807759475ull, 8425818800849327459ull}},
+ {{9258624298611859549ull, 7121196659393359225ull,
+ 4643746150666155720ull, 5266136750530829662ull}},
+ {{16184966391692212340ull, 8901495824241699031ull,
+ 15028054725187470458ull, 6582670938163537077ull}},
+ {{15619521971187877521ull, 1903497743447347981ull,
+ 4950010351202174361ull, 8228338672704421347ull}},
+ {{12068044241206117403ull, 12718901135723062248ull,
+ 787913460287665023ull, 5142711670440263342ull}},
+ {{15085055301507646754ull, 11286940401226439906ull,
+ 10208263862214357087ull, 6428389588050329177ull}},
+ {{9632947090029782634ull, 9496989483105661979ull,
+ 17372015846195334263ull, 8035486985062911471ull}},
+ {{3714748922054920194ull, 12853147454582120593ull,
+ 17775038931513165770ull, 5022179365664319669ull}},
+ {{9255122170996038147ull, 6843062281372874933ull,
+ 8383740609109293501ull, 6277724207080399587ull}},
+ {{16180588732172435587ull, 13165513870143481570ull,
+ 5867989742959228972ull, 7847155258850499484ull}},
+ {{14724553976035160146ull, 17451818205694451789ull,
+ 12890865626204293915ull, 4904472036781562177ull}},
+ {{4570634414761786471ull, 17203086738690676833ull,
+ 2278523977473203682ull, 6130590045976952722ull}},
+ {{10324979036879620992ull, 12280486386508570233ull,
+ 12071527008696280411ull, 7663237557471190902ull}},
+ {{17982326944118232880ull, 5369460982354162443ull,
+ 2933018362007787353ull, 4789523473419494314ull}},
+ {{17866222661720403196ull, 11323512246370090958ull,
+ 12889644989364509999ull, 5986904341774367892ull}},
+ {{13109406290295728187ull, 9542704289535225794ull,
+ 16112056236705637499ull, 7483630427217959865ull}},
+ {{12805064949862218021ull, 3658347171745822169ull,
+ 3152506120299941581ull, 4677269017011224916ull}},
+ {{2171273132045608814ull, 9184619983109665616ull,
+ 3940632650374926976ull, 5846586271264031145ull}},
+ {{2714091415057011018ull, 11480774978887082020ull,
+ 9537476831396046624ull, 7308232839080038931ull}},
+ {{3392614268821263772ull, 14350968723608852525ull,
+ 7310160020817670376ull, 9135291048850048664ull}},
+ {{4426226927226983810ull, 8969355452255532828ull,
+ 4568850013011043985ull, 5709556905531280415ull}},
+ {{5532783659033729762ull, 15823380333746803939ull,
+ 1099376497836417077ull, 7136946131914100519ull}},
+ {{2304293555364774299ull, 5944167361901341212ull,
+ 15209278677577685059ull, 8921182664892625648ull}},
+ {{10663555508957759745ull, 1409261591974644305ull,
+ 9505799173486053162ull, 5575739165557891030ull}},
+ {{17941130404624587585ull, 10984949026823081189ull,
+ 2658876930002790644ull, 6969673956947363788ull}},
+ {{8591354950498570769ull, 13731186283528851487ull,
+ 3323596162503488305ull, 8712092446184204735ull}},
+ {{12287125871702688587ull, 1664462399564450323ull,
+ 8994776629205762047ull, 5445057778865127959ull}},
+ {{10747221321200972829ull, 15915636054737726616ull,
+ 6631784768079814654ull, 6806322223581409949ull}},
+ {{13434026651501216037ull, 10671173031567382462ull,
+ 12901416978527156222ull, 8507902779476762436ull}},
+ {{3784580638760872119ull, 2057797126302226135ull,
+ 17286757648434248447ull, 5317439237172976522ull}},
+ {{119039780023702245ull, 16407304463159946381ull,
+ 12385075023688034750ull, 6646799046466220653ull}},
+ {{4760485743457015710ull, 11285758542095157168ull,
+ 1646285724327879726ull, 8308498808082775817ull}},
+ {{2975303589660634819ull, 2441913070382085326ull,
+ 12558143623773394589ull, 5192811755051734885ull}},
+ {{12942501523930569331ull, 7664077356404994561ull,
+ 1862621474434579524ull, 6491014693814668607ull}},
+ {{2343068849631047952ull, 9580096695506243202ull,
+ 16163334898325388117ull, 8113768367268335758ull}},
+ {{6076104049446792874ull, 8293403443905095953ull,
+ 5490398293025979669ull, 5071105229542709849ull}},
+ {{12206816080235878997ull, 14978440323308757845ull,
+ 11474683884709862490ull, 6338881536928387311ull}},
+ {{1423462045012685034ull, 9499678367281171499ull,
+ 9731668837459940209ull, 7923601921160484139ull}},
+ {{17030564842628785810ull, 17466514025619201946ull,
+ 3776450014198768678ull, 4952251200725302587ull}},
+ {{12064834016431206455ull, 12609770495169226625ull,
+ 108876499321072944ull, 6190314000906628234ull}},
+ {{1245984465256844356ull, 15762213118961533282ull,
+ 9359467661006116988ull, 7737892501133285292ull}},
+ {{5390426309212915627ull, 628011162496182493ull,
+ 15073039324983598926ull, 4836182813208303307ull}},
+ {{11349718904943532437ull, 10008385989975003924ull,
+ 14229613137802110753ull, 6045228516510379134ull}},
+ {{14187148631179415547ull, 17122168505896142809ull,
+ 8563644385397862633ull, 7556535645637973918ull}},
+ {{1949438866846052861ull, 3783826288544007400ull, 740591722446276242ull,
+ 4722834778523733699ull}},
+ {{2436798583557566076ull, 13953154897534785058ull,
+ 14760797708340009014ull, 5903543473154667123ull}},
+ {{12269370266301733403ull, 8218071585063705514ull,
+ 13839311116997623364ull, 7379429341443333904ull}},
+ {{12280042434865971281ull, 14359666777519591754ull,
+ 8649569448123514602ull, 4612143338402083690ull}},
+ {{6126681006727688293ull, 8726211435044713885ull,
+ 1588589773299617445ull, 5765179173002604613ull}},
+ {{12270037276836998270ull, 15519450312233280260ull,
+ 6597423235051909710ull, 7206473966253255766ull}},
+ {{15337546596046247838ull, 10175940853436824517ull,
+ 17470151080669662946ull, 9008092457816569707ull}},
+ {{11891809631742598851ull, 10971649051825403227ull,
+ 8613001416204845389ull, 5630057786135356067ull}},
+ {{10253076021250860659ull, 18326247333209141938ull,
+ 6154565751828668832ull, 7037572232669195084ull}},
+ {{3592972989708800016ull, 4461065092801875807ull,
+ 7693207189785836041ull, 8796965290836493855ull}},
+ {{9163137146209081866ull, 14317380729069642139ull,
+ 11725783521257229381ull, 5498103306772808659ull}},
+ {{6842235414333964429ull, 4061667856054888962ull,
+ 10045543383144148823ull, 6872629133466010824ull}},
+ {{17776166304772231344ull, 465398801641223298ull,
+ 12556929228930186029ull, 8590786416832513530ull}},
+ {{15721789958910032494ull, 2596717260239458513ull,
+ 12459766786508754172ull, 5369241510520320956ull}},
+ {{5817179393355376905ull, 3245896575299323142ull,
+ 15574708483135942715ull, 6711551888150401195ull}},
+ {{16494846278548996939ull, 17892428774406317639ull,
+ 14856699585492540489ull, 8389439860188001494ull}},
+ {{17226807951734204943ull, 4265238956362866668ull,
+ 4673751222505449902ull, 5243399912617500934ull}},
+ {{3086765865958204563ull, 14554920732308359144ull,
+ 15065561064986588185ull, 6554249890771876167ull}},
+ {{3858457332447755704ull, 4358592860103285218ull,
+ 14220265312805847328ull, 8192812363464845209ull}},
+ {{7023221851207235219ull, 2724120537564553261ull,
+ 1970136792862572724ull, 5120507727165528256ull}},
+ {{13390713332436431928ull, 3405150671955691576ull,
+ 2462670991078215905ull, 6400634658956910320ull}},
+ {{16738391665545539909ull, 8868124358372002374ull,
+ 3078338738847769881ull, 8000793323696137900ull}},
+ {{5849808772538574540ull, 17071792770050971244ull,
+ 11147333748634631983ull, 5000495827310086187ull}},
+ {{7312260965673218174ull, 16728054944136326151ull,
+ 9322481167365902075ull, 6250619784137607734ull}},
+ {{4528640188664134814ull, 16298382661743019785ull,
+ 2429729422352601786ull, 7813274730172009668ull}},
+ {{14359615163983554019ull, 14798175182016775269ull,
+ 10741952925825151924ull, 4883296706357506042ull}},
+ {{4114460899697278811ull, 50974903811417471ull, 4204069120426664098ull,
+ 6104120882946882553ull}},
+ {{531390106194210610ull, 9287090666619047647ull, 9866772418960718026ull,
+ 7630151103683603191ull}},
+ {{7249647844012463487ull, 10416117685064292683ull,
+ 13084261789491530622ull, 4768844439802251994ull}},
+ {{4450373786588191455ull, 3796775069475590046ull,
+ 7131955200009637470ull, 5961055549752814993ull}},
+ {{14786339270090015127ull, 13969340873699263365ull,
+ 13526630018439434741ull, 7451319437191018741ull}},
+ {{11547305053019953406ull, 11036681055275733555ull,
+ 10759986770738340665ull, 4657074648244386713ull}},
+ {{9822445297847553854ull, 18407537337522054848ull,
+ 18061669481850313735ull, 5821343310305483391ull}},
+ {{12278056622309442317ull, 18397735653475180656ull,
+ 17965400833885504265ull, 7276679137881854239ull}},
+ {{15347570777886802897ull, 9162111511561812108ull,
+ 17845065023929492428ull, 9095848922352317799ull}},
+ {{368859699324476003ull, 14949691731580908376ull,
+ 18070694667597014623ull, 5684905576470198624ull}},
+ {{461074624155595003ull, 14075428646048747566ull,
+ 4141624260786716663ull, 7106131970587748281ull}},
+ {{9799715317049269562ull, 12982599789133546553ull,
+ 9788716344410783733ull, 8882664963234685351ull}},
+ {{17654037119224263236ull, 10419967877422160547ull,
+ 13035476742897821689ull, 5551665602021678344ull}},
+ {{17455860380602941141ull, 17636645865205088588ull,
+ 16294345928622277111ull, 6939582002527097930ull}},
+ {{3373081402044124810ull, 17434121313078972832ull,
+ 11144560373923070581ull, 8674477503158872413ull}},
+ {{2108175876277578007ull, 13202168829888051972ull,
+ 9271193242915613065ull, 5421548439474295258ull}},
+ {{2635219845346972508ull, 2667652982077901253ull,
+ 2365619516789740524ull, 6776935549342869073ull}},
+ {{7905710825111103539ull, 3334566227597376566ull,
+ 7568710414414563559ull, 8471169436678586341ull}},
+ {{329383247267051808ull, 9001632919889442210ull, 7036287018222796176ull,
+ 5294480897924116463ull}},
+ {{9635101095938590568ull, 11252041149861802762ull,
+ 4183672754351107316ull, 6618101122405145579ull}},
+ {{2820504333068462402ull, 14065051437327253453ull,
+ 617904924511496241ull, 8272626403006431974ull}},
+ {{4068658217381482953ull, 1873128120688451552ull,
+ 14221248633101848863ull, 5170391501879019983ull}},
+ {{5085822771726853692ull, 16176468206142728152ull,
+ 13164874772949923174ull, 6462989377348774979ull}},
+ {{6357278464658567114ull, 10997213220823634382ull,
+ 11844407447760016064ull, 8078736721685968724ull}},
+ {{17808357095693768159ull, 6873258263014771488ull,
+ 16626126691704785848ull, 5049210451053730452ull}},
+ {{3813702295907658582ull, 8591572828768464361ull,
+ 2335914290921430694ull, 6311513063817163066ull}},
+ {{9378813888311961132ull, 1516093999105804643ull,
+ 12143264900506564176ull, 7889391329771453832ull}},
+ {{3555915670981281755ull, 947558749441127902ull, 7589540562816602610ull,
+ 4930869581107158645ull}},
+ {{13668266625581378002ull, 10407820473656185685ull,
+ 14098611721948141166ull, 6163586976383948306ull}},
+ {{3250275226694558791ull, 3786403555215456299ull,
+ 8399892615580400650ull, 7704483720479935383ull}},
+ {{18172323081179956908ull, 6978188240437048090ull,
+ 12167461912378832262ull, 4815302325299959614ull}},
+ {{13492031814620170327ull, 17946107337401085921ull,
+ 5985955353618764519ull, 6019127906624949518ull}},
+ {{3029981712993049197ull, 17820948153323969498ull,
+ 16705816228878231457ull, 7523909883281186897ull}},
+ {{6505424589048043652ull, 4220563568186399080ull,
+ 3523606115407812805ull, 4702443677050741811ull}},
+ {{8131780736310054565ull, 9887390478660386754ull,
+ 18239565699541929718ull, 5878054596313427263ull}},
+ {{941353883532792398ull, 3135866061470707635ull,
+ 18187771106000024244ull, 7347568245391784079ull}},
+ {{15011750409698154210ull, 3919832576838384543ull,
+ 18123027864072642401ull, 9184460306739730099ull}},
+ {{16299873033702428237ull, 13979110406592460099ull,
+ 9021049405831707548ull, 5740287691712331312ull}},
+ {{15763155273700647393ull, 17473888008240575124ull,
+ 11276311757289634435ull, 7175359614640414140ull}},
+ {{1257200018416257625ull, 17230673991873331002ull,
+ 14095389696612043044ull, 8969199518300517675ull}},
+ {{5397436029937548920ull, 1545799208066056068ull,
+ 6503775551168832951ull, 5605749698937823547ull}},
+ {{6746795037421936149ull, 15767307065364733797ull,
+ 3518033420533653284ull, 7007187123672279434ull}},
+ {{13045179815204808091ull, 1262389757996365630ull,
+ 13620913812521842414ull, 8758983904590349292ull}},
+ {{3541551366075617153ull, 14624051654029892231ull,
+ 17736443169680927316ull, 5474364940368968307ull}},
+ {{18261997262876685153ull, 18280064567537365288ull,
+ 17558867943673771241ull, 6842956175461210384ull}},
+ {{4380752504886304825ull, 9015022654139542899ull,
+ 3501840855882662436ull, 8553695219326512981ull}},
+ {{432127306340246564ull, 14857761195691990120ull,
+ 4494493544140357974ull, 5346059512079070613ull}},
+ {{540159132925308205ull, 9348829457760211842ull,
+ 10229802948602835372ull, 6682574390098838266ull}},
+ {{9898570953011411064ull, 11686036822200264802ull,
+ 3563881648898768407ull, 8353217987623547833ull}},
+ {{10798292864059519819ull, 14221302041516247357ull,
+ 13756641076630200014ull, 5220761242264717395ull}},
+ {{18109552098501787678ull, 8553255515040533388ull,
+ 12584115327360362114ull, 6525951552830896744ull}},
+ {{4190196049417682981ull, 1468197356945890928ull,
+ 15730144159200452643ull, 8157439441038620930ull}},
+ {{2618872530886051863ull, 17058524412587039494ull,
+ 14443026117927670805ull, 5098399650649138081ull}},
+ {{12496962700462340637ull, 7488097460451635655ull,
+ 4218724592127424795ull, 6372999563311422602ull}},
+ {{11009517357150537892ull, 4748435807137156665ull,
+ 14496777777014056802ull, 7966249454139278252ull}},
+ {{18410163394287555943ull, 7579458397888110819ull,
+ 18283858147488561309ull, 4978905908837048907ull}},
+ {{18401018224432057024ull, 14086009015787526428ull,
+ 18243136665933313732ull, 6223632386046311134ull}},
+ {{4554528706830519664ull, 17607511269734408036ull,
+ 13580548795561866357ull, 7779540482557888918ull}},
+ {{12069952478623850598ull, 13310537552797698974ull,
+ 3876156978798778569ull, 4862212801598680574ull}},
+ {{5864068561425037440ull, 2803113885714960006ull,
+ 14068568260353249020ull, 6077766001998350717ull}},
+ {{16553457738636072608ull, 3503892357143700007ull,
+ 3750652270159397563ull, 7597207502497938397ull}},
+ {{17263440114288627236ull, 18330833787710670168ull,
+ 4650000678063317428ull, 4748254689061211498ull}},
+ {{3132556069151232429ull, 4466798160928786095ull,
+ 15035872884433922594ull, 5935318361326514372ull}},
+ {{17750753141721204248ull, 14806869738015758426ull,
+ 348097031832851626ull, 7419147951658142966ull}},
+ {{15705906732003140559ull, 13865979604687236920ull,
+ 14052618700177695978ull, 4636967469786339353ull}},
+ {{1185639341294374083ull, 8109102469004270343ull,
+ 3730715319939956261ull, 5796209337232924192ull}},
+ {{15317107231900131315ull, 14748064104682725832ull,
+ 4663394149924945326ull, 7245261671541155240ull}},
+ {{699639966165612528ull, 9211708093998631483ull, 5829242687406181658ull,
+ 9056577089426444050ull}},
+ {{16578176043349365494ull, 10369003577176532580ull,
+ 8254962698056251440ull, 5660360680891527531ull}},
+ {{2275975980477155252ull, 12961254471470665726ull,
+ 5707017354142926396ull, 7075450851114409414ull}},
+ {{12068342012451219872ull, 16201568089338332157ull,
+ 16357143729533433803ull, 8844313563893011767ull}},
+ {{9848556766995706372ull, 7820137046622763646ull,
+ 17140743858599477983ull, 5527695977433132354ull}},
+ {{3087323921889857157ull, 5163485289851066654ull,
+ 12202557786394571671ull, 6909619971791415443ull}},
+ {{13082526939217097255ull, 1842670593886445413ull,
+ 10641511214565826685ull, 8637024964739269304ull}},
+ {{10482422346224379736ull, 3457512130392722335ull,
+ 6650944509103641678ull, 5398140602962043315ull}},
+ {{8491341914353086766ull, 13545262199845678727ull,
+ 3701994617952164193ull, 6747675753702554144ull}},
+ {{6002491374513970554ull, 3096519694524934697ull,
+ 4627493272440205242ull, 8434594692128192680ull}},
+ {{15280772155139701356ull, 6547010827505472089ull,
+ 2892183295275128276ull, 5271621682580120425ull}},
+ {{5265907138642462983ull, 8183763534381840112ull,
+ 8226915137521298249ull, 6589527103225150531ull}},
+ {{6582383923303078729ull, 14841390436404688044ull,
+ 5671957903474234907ull, 8236908879031438164ull}},
+ {{13337361988919200014ull, 6970026013539236075ull,
+ 12768345726526172625ull, 5148068049394648852ull}},
+ {{12060016467721612113ull, 13324218535351432998ull,
+ 15960432158157715781ull, 6435085061743311065ull}},
+ {{5851648547797239333ull, 2820215113907127536ull,
+ 6115482142414981015ull, 8043856327179138832ull}},
+ {{3657280342373274583ull, 8680163473833036566ull,
+ 3822176339009363134ull, 5027410204486961770ull}},
+ {{13794972464821369037ull, 1626832305436519899ull,
+ 14001092460616479726ull, 6284262755608702212ull}},
+ {{12632029562599323392ull, 11256912418650425682ull,
+ 17501365575770599657ull, 7855328444510877765ull}},
+ {{12506704495051965024ull, 118041234015434195ull,
+ 13244196494070318738ull, 4909580277819298603ull}},
+ {{11021694600387568376ull, 9370923579374068552ull,
+ 11943559599160510518ull, 6136975347274123254ull}},
+ {{13777118250484460470ull, 2490282437362809882ull,
+ 5706077462095862340ull, 7671219184092654068ull}},
+ {{13222384924980175698ull, 10779798560206531984ull,
+ 12789670450664689770ull, 4794511990057908792ull}},
+ {{16527981156225219623ull, 4251376163403389172ull,
+ 15987088063330862213ull, 5993139987572385990ull}},
+ {{2213232371571972912ull, 9925906222681624370ull,
+ 10760488042308801958ull, 7491424984465482488ull}},
+ {{5994956250659870974ull, 1592005370748627327ull,
+ 6725305026443001224ull, 4682140615290926555ull}},
+ {{2882009294897450814ull, 1990006713435784159ull,
+ 3794945264626363626ull, 5852675769113658194ull}},
+ {{17437569673903977229ull, 11710880428649506006ull,
+ 13967053617637730340ull, 7315844711392072742ull}},
+ {{12573590055525195728ull, 14638600535811882508ull,
+ 8235444985192387117ull, 9144805889240090928ull}},
+ {{17081865821558023138ull, 11454968344096120519ull,
+ 5147153115745241948ull, 5715503680775056830ull}},
+ {{16740646258520141019ull, 14318710430120150649ull,
+ 15657313431536328243ull, 7144379600968821037ull}},
+ {{7090749767868012561ull, 13286702019222800408ull,
+ 5736583734138246592ull, 8930474501211026297ull}},
+ {{4431718604917507851ull, 8304188762014250255ull,
+ 15114579879904873880ull, 5581546563256891435ull}},
+ {{927962237719496910ull, 10380235952517812819ull,
+ 14281538831453704446ull, 6976933204071114294ull}},
+ {{14995010852431534849ull, 3751922903792490215ull,
+ 8628551502462354750ull, 8721166505088892868ull}},
+ {{16289410810410791137ull, 16180009870152470096ull,
+ 14616216725893747526ull, 5450729065680558042ull}},
+ {{1915019439303937305ull, 11001640300835811813ull,
+ 9046898870512408600ull, 6813411332100697553ull}},
+ {{7005460317557309535ull, 13752050376044764766ull,
+ 15920309606567898654ull, 8516764165125871941ull}},
+ {{18213470753755482171ull, 3983345466600590074ull,
+ 12256036513318630611ull, 5322977603203669963ull}},
+ {{13543466405339576906ull, 367495814823349689ull,
+ 10708359623220900360ull, 6653722004004587454ull}},
+ {{3094274951392307421ull, 459369768529187112ull, 4162077492171349642ull,
+ 8317152505005734318ull}},
+ {{1933921844620192138ull, 4898792123758129849ull,
+ 16436356487889257238ull, 5198220315628583948ull}},
+ {{7029088324202628076ull, 15346862191552438119ull,
+ 2098701536152019931ull, 6497775394535729936ull}},
+ {{4174674386825897191ull, 14571891721013159745ull,
+ 2623376920190024914ull, 8122219243169662420ull}},
+ {{14138386537834655505ull, 13719118344060612744ull,
+ 10862982611973541379ull, 5076387026981039012ull}},
+ {{17672983172293319381ull, 12537211911648378026ull,
+ 13578728264966926724ull, 6345483783726298765ull}},
+ {{12867856928511873418ull, 15671514889560472533ull,
+ 3138352275926494693ull, 7931854729657873457ull}},
+ {{10348253589533614838ull, 12100539815188989285ull,
+ 13490685218522528943ull, 4957409206036170910ull}},
+ {{17547003005344406452ull, 10513988750558848702ull,
+ 7639984486298385371ull, 6196761507545213638ull}},
+ {{12710381719825732257ull, 8530799919771172974ull,
+ 326608571018205906ull, 7745951884431517048ull}},
+ {{3332302556463694757ull, 9943435968284371013ull, 204130356886378691ull,
+ 4841219927769698155ull}},
+ {{8777064214007006350ull, 7817608941928075862ull,
+ 14090221001390137076ull, 6051524909712122693ull}},
+ {{1747958230653982129ull, 9772011177410094828ull,
+ 3777718196455507633ull, 7564406137140153367ull}},
+ {{10315845931013514639ull, 17636722031949779027ull,
+ 9278602900425774126ull, 4727753835712595854ull}},
+ {{8283121395339505394ull, 12822530503082447976ull,
+ 2374881588677441850ull, 5909692294640744818ull}},
+ {{10353901744174381743ull, 6804791091998284162ull,
+ 12191974022701578121ull, 7387115368300931022ull}},
+ {{11082874608536376494ull, 15782209478567397361ull,
+ 3008297745761098421ull, 4616947105188081889ull}},
+ {{18535205388306905ull, 5892703792927082990ull, 8372058200628760931ull,
+ 5771183881485102361ull}},
+ {{9246541043590159439ull, 2754193722731465833ull,
+ 15076758769213339068ull, 7213979851856377951ull}},
+ {{16169862322915087202ull, 3442742153414332291ull,
+ 14234262443089285931ull, 9017474814820472439ull}},
+ {{7800320942608235550ull, 18292614910379815346ull,
+ 15813943054571885562ull, 5635921759262795274ull}},
+ {{527029141405518629ull, 13642396601119993375ull,
+ 10544056781360081145ull, 7044902199078494093ull}},
+ {{14493844482039061998ull, 3217937696117828006ull,
+ 17791756995127489336ull, 8806127748848117616ull}},
+ {{4446966782847025845ull, 2011211060073642504ull,
+ 11119848121954680835ull, 5503829843030073510ull}},
+ {{5558708478558782306ull, 16349071880374216842ull,
+ 4676438115588575235ull, 6879787303787591888ull}},
+ {{16171757635053253691ull, 15824653832040383148ull,
+ 5845547644485719044ull, 8599734129734489860ull}},
+ {{883976485053507749ull, 667036608170463660ull, 12876839314658350211ull,
+ 5374833831084056162ull}},
+ {{1104970606316884686ull, 14668853815495243287ull,
+ 6872677106468161955ull, 6718542288855070203ull}},
+ {{15216271313178269569ull, 13724381250941666204ull,
+ 3979160364657814540ull, 8398177861068837754ull}},
+ {{286797533881642673ull, 17801110318693317186ull,
+ 7098661246338521991ull, 5248861163168023596ull}},
+ {{9581868954206829149ull, 17639701879939258578ull,
+ 8873326557923152489ull, 6561076453960029495ull}},
+ {{2753964155903760628ull, 8214569294641909511ull,
+ 6479972178976552708ull, 8201345567450036869ull}},
+ {{8638756625080932249ull, 14357477846005969252ull,
+ 6355825621074039394ull, 5125840979656273043ull}},
+ {{10798445781351165311ull, 8723475270652685757ull,
+ 3333096007915161339ull, 6407301224570341304ull}},
+ {{18109743245116344542ull, 6292658069888469292ull,
+ 4166370009893951674ull, 8009126530712926630ull}},
+ {{2095217491342939531ull, 8544597312107681212ull,
+ 16439039311465883508ull, 5005704081695579143ull}},
+ {{2619021864178674414ull, 10680746640134601515ull,
+ 15937113120904966481ull, 6257130102119473929ull}},
+ {{17108835385505506729ull, 17962619318595639797ull,
+ 6086333345849044389ull, 7821412627649342412ull}},
+ {{12998865125154635658ull, 13532480083335968825ull,
+ 13027330378010428551ull, 4888382892280839007ull}},
+ {{2413523351161130860ull, 12303914085742573128ull,
+ 11672476954085647785ull, 6110478615351048759ull}},
+ {{3016904188951413575ull, 1544834551896052698ull,
+ 9978910174179671828ull, 7638098269188810949ull}},
+ {{6497251136522021389ull, 10188893631789808744ull,
+ 8542661868075988844ull, 4773811418243006843ull}},
+ {{8121563920652526736ull, 12736117039737260930ull,
+ 6066641316667598151ull, 5967264272803758554ull}},
+ {{928582863960882612ull, 11308460281244188259ull,
+ 16806673682689273497ull, 7459080341004698192ull}},
+ {{16721265354471409296ull, 150258648136535805ull,
+ 10504171051680795936ull, 4661925213127936370ull}},
+ {{7066523637807097908ull, 187823310170669757ull, 3906841777746219112ull,
+ 5827406516409920463ull}},
+ {{13444840565686260289ull, 234779137713337196ull, 271866203755385986ull,
+ 7284258145512400579ull}},
+ {{16806050707107825362ull, 9516845958996447303ull,
+ 14174890809976396194ull, 9105322681890500723ull}},
+ {{17421310719583472707ull, 10559714742800167468ull,
+ 6553463747021553669ull, 5690826676181562952ull}},
+ {{3329894325769789268ull, 17811329446927597240ull,
+ 8191829683776942086ull, 7113533345226953690ull}},
+ {{4162367907212236585ull, 13040789771804720742ull,
+ 1016415067866401800ull, 8891916681533692113ull}},
+ {{16436537997289811578ull, 8150493607377950463ull,
+ 12164474463484970885ull, 5557447925958557570ull}},
+ {{15933986478184876568ull, 14799803027649825983ull,
+ 5982221042501437798ull, 6946809907448196963ull}},
+ {{15305797079303707806ull, 9276381747707506671ull,
+ 2866090284699409344ull, 8683512384310246204ull}},
+ {{16483652202205899235ull, 5797738592317191669ull,
+ 11014678464791906648ull, 5427195240193903877ull}},
+ {{6769507197475210331ull, 7247173240396489587ull,
+ 18380034099417271214ull, 6783994050242379846ull}},
+ {{3850197978416625010ull, 18282338587350387792ull,
+ 13751670587416813209ull, 8479992562802974808ull}},
+ {{2406373736510390632ull, 4508932589452910514ull,
+ 8594794117135508256ull, 5299995351751859255ull}},
+ {{12231339207492764097ull, 5636165736816138142ull,
+ 6131806627991997416ull, 6624994189689824069ull}},
+ {{6065801972511179314ull, 7045207171020172678ull,
+ 12276444303417384674ull, 8281242737112280086ull}},
+ {{17626184288101650783ull, 9014940500314995827ull,
+ 3061091671208477517ull, 5175776710695175054ull}},
+ {{17421044341699675575ull, 15880361643821132688ull,
+ 13049736625865372704ull, 6469720888368968817ull}},
+ {{3329561353415042852ull, 1403707981066864245ull,
+ 2477112727049552169ull, 8087151110461211022ull}},
+ {{4386818855098095735ull, 12406532534235259913ull,
+ 15383253509688133817ull, 5054469444038256888ull}},
+ {{10095209587300007573ull, 1673107612511911179ull,
+ 782322813400615656ull, 6318086805047821111ull}},
+ {{8007325965697621562ull, 2091384515639888974ull,
+ 14812961572032933282ull, 7897608506309776388ull}},
+ {{392892710133625572ull, 5918801340702318513ull, 34728945665807493ull,
+ 4936005316443610243ull}},
+ {{5102801906094419869ull, 12010187694305286045ull,
+ 13878469237364423078ull, 6170006645554512803ull}},
+ {{10990188401045412740ull, 5789362581026831748ull,
+ 12736400528278140944ull, 7712508306943141004ull}},
+ {{16092239787508158771ull, 3618351613141769842ull,
+ 17183622367028613898ull, 4820317691839463127ull}},
+ {{10891927697530422655ull, 13746311553281988111ull,
+ 16867841940358379468ull, 6025397114799328909ull}},
+ {{9003223603485640415ull, 17182889441602485139ull,
+ 7249744370165810623ull, 7531746393499161137ull}},
+ {{3321171742964831308ull, 17656834928642635068ull,
+ 16060305277422101399ull, 4707341495936975710ull}},
+ {{4151464678706039134ull, 17459357642375905931ull,
+ 10852009559922850941ull, 5884176869921219638ull}},
+ {{577644829955161014ull, 7989138997687718702ull, 4341639913048787869ull,
+ 7355221087401524548ull}},
+ {{9945428074298727075ull, 14598109765537036281ull,
+ 5427049891310984836ull, 9194026359251905685ull}},
+ {{17745107592505174182ull, 18347190640315423483ull,
+ 5697749191283059474ull, 5746266474532441053ull}},
+ {{17569698472204079824ull, 13710616263539503546ull,
+ 11733872507531212247ull, 7182833093165551316ull}},
+ {{12738751053400323971ull, 12526584310996991529ull,
+ 14667340634414015309ull, 8978541366456939145ull}},
+ {{1044190380734120626ull, 10134958203586813658ull,
+ 2249558868867677712ull, 5611588354035586966ull}},
+ {{10528610012772426591ull, 12668697754483517072ull,
+ 12035320622939372948ull, 7014485442544483707ull}},
+ {{13160762515965533238ull, 15835872193104396340ull,
+ 10432464760246828281ull, 8768106803180604634ull}},
+ {{17448848609333234082ull, 2979891093049165856ull,
+ 11131976493581655580ull, 5480066751987877896ull}},
+ {{3364316687956990987ull, 3724863866311457321ull,
+ 13914970616977069475ull, 6850083439984847370ull}},
+ {{8817081878373626637ull, 44393814461933747ull, 8170341234366561036ull,
+ 8562604299981059213ull}},
+ {{3204833164769822696ull, 9251118170893484400ull,
+ 7412306280692794599ull, 5351627687488162008ull}},
+ {{4006041455962278370ull, 6952211695189467596ull,
+ 9265382850865993249ull, 6689534609360202510ull}},
+ {{5007551819952847963ull, 13301950637414222399ull,
+ 2358356526727715753ull, 8361918261700253138ull}},
+ {{10047248915111611833ull, 1396190120742807143ull,
+ 6085658847632210250ull, 5226198913562658211ull}},
+ {{7947375125462126887ull, 10968609687783284737ull,
+ 2995387541112874908ull, 6532748641953322764ull}},
+ {{14545904925255046513ull, 13710762109729105921ull,
+ 3744234426391093635ull, 8165935802441653455ull}},
+ {{2173661550643322215ull, 6263383309366997249ull,
+ 9257675544135515378ull, 5103709876526033409ull}},
+ {{7328762956731540672ull, 17052601173563522369ull,
+ 16183780448596782126ull, 6379637345657541761ull}},
+ {{13772639714341813744ull, 12092379430099627153ull,
+ 6394667505463813946ull, 7974546682071927202ull}},
+ {{1690370793822551734ull, 12169423162239654875ull,
+ 8608353209342271620ull, 4984091676294954501ull}},
+ {{15948021547560353380ull, 15211778952799568593ull,
+ 15372127530105227429ull, 6230114595368693126ull}},
+ {{6099968879168278012ull, 5179665635717297030ull,
+ 9991787375776758479ull, 7787643244210866408ull}},
+ {{17647538604762337470ull, 10154820049964392499ull,
+ 6244867109860474049ull, 4867277027631791505ull}},
+ {{17447737237525533933ull, 17305211080882878528ull,
+ 12417769905752980465ull, 6084096284539739381ull}},
+ {{3362927473197365801ull, 7796455795821434449ull,
+ 1687154326909061870ull, 7605120355674674227ull}},
+ {{13631044716816823386ull, 261098853961008626ull,
+ 17195372518814021333ull, 4753200222296671391ull}},
+ {{7815433859166253424ull, 4938059585878648687ull,
+ 16882529630090138762ull, 5941500277870839239ull}},
+ {{5157606305530428876ull, 15395946519203086667ull,
+ 16491476019185285548ull, 7426875347338549049ull}},
+ {{917660931742824095ull, 399094537647153359ull, 3389643484349721612ull,
+ 4641797092086593156ull}},
+ {{14982134219960693831ull, 498868172058941698ull,
+ 4237054355437152015ull, 5802246365108241445ull}},
+ {{9504295738096091481ull, 14458643270355840835ull,
+ 9908003962723827922ull, 7252807956385301806ull}},
+ {{7268683654192726447ull, 8849932051090025236ull,
+ 3161632916550009095ull, 9066009945481627258ull}},
+ {{13766299320725229838ull, 12448736559572347628ull,
+ 6587706591271143588ull, 5666256215926017036ull}},
+ {{17207874150906537297ull, 15560920699465434535ull,
+ 8234633239088929485ull, 7082820269907521295ull}},
+ {{16898156670205783717ull, 5616092819049629457ull,
+ 5681605530433773953ull, 8853525337384401619ull}},
+ {{3643818891237532967ull, 15039273057974488171ull,
+ 1245160447307414768ull, 5533453335865251012ull}},
+ {{18389831669329079921ull, 352347248758558597ull,
+ 1556450559134268461ull, 6916816669831563765ull}},
+ {{9152231531379186189ull, 5052120079375586151ull,
+ 6557249217345223480ull, 8646020837289454706ull}},
+ {{12637673734753073224ull, 3157575049609741344ull,
+ 8709966779268152579ull, 5403763023305909191ull}},
+ {{15797092168441341530ull, 17782026867294340392ull,
+ 6275772455657802819ull, 6754703779132386489ull}},
+ {{1299621136842125297ull, 17615847565690537587ull,
+ 12456401587999641428ull, 8443379723915483111ull}},
+ {{16953164275022185975ull, 1786532691701810183ull,
+ 14702780020140857749ull, 5277112327447176944ull}},
+ {{16579769325350344564ull, 6844851883054650633ull,
+ 18378475025176072186ull, 6596390409308971180ull}},
+ {{6889653601405766993ull, 17779436890673089100ull,
+ 4526349707760538616ull, 8245488011636213976ull}},
+ {{13529405537733380179ull, 11112148056670680687ull,
+ 2828968567350336635ull, 5153430007272633735ull}},
+ {{12300070903739337319ull, 9278499052410962955ull,
+ 17371268764470084506ull, 6441787509090792168ull}},
+ {{10763402611246783745ull, 2374751778658927886ull,
+ 3267341881878054017ull, 8052234386363490211ull}},
+ {{2115440613601851937ull, 13013434907730299689ull,
+ 18182989740669641424ull, 5032646491477181381ull}},
+ {{7255986785429702825ull, 16266793634662874611ull,
+ 8893679120554888068ull, 6290808114346476727ull}},
+ {{4458297463359740627ull, 1886747969619041648ull,
+ 6505412882266222182ull, 7863510142933095909ull}},
+ {{2786435914599837892ull, 15014275536294064742ull,
+ 6371726060630082815ull, 4914693839333184943ull}},
+ {{12706416930104573173ull, 14156158401940193023ull,
+ 3352971557360215615ull, 6143367299166481179ull}},
+ {{11271335144203328562ull, 13083511983997853375ull,
+ 18026272501982433231ull, 7679209123958101473ull}},
+ {{13962113492768162208ull, 15094724017639740215ull,
+ 4348891286097938913ull, 4799505702473813421ull}},
+ {{12840955847532814855ull, 5033346966767511557ull,
+ 10047800126049811546ull, 5999382128092266776ull}},
+ {{2216136754133854857ull, 15515055745314165255ull,
+ 12559750157562264432ull, 7499227660115333470ull}},
+ {{8302614498974741142ull, 9696909840821353284ull,
+ 3238157830049027366ull, 4687017287572083419ull}},
+ {{10378268123718426427ull, 2897765264171915797ull,
+ 17882755342843447920ull, 5858771609465104273ull}},
+ {{17584521173075420938ull, 3622206580214894746ull,
+ 8518386123272146188ull, 7323464511831380342ull}},
+ {{12757279429489500364ull, 4527758225268618433ull,
+ 1424610617235406927ull, 9154330639789225428ull}},
+ {{1055770615789855872ull, 9747377918433968377ull,
+ 10113753672626905137ull, 5721456649868265892ull}},
+ {{5931399288164707744ull, 16795908416469848375ull,
+ 12642192090783631421ull, 7151820812335332365ull}},
+ {{2802563091778496775ull, 7159827465305146757ull,
+ 1967682058197375565ull, 8939776015419165457ull}},
+ {{4057444941575254437ull, 6780735175029410675ull,
+ 12759016332441829488ull, 5587360009636978410ull}},
+ {{460120158541680142ull, 8475918968786763344ull, 6725398378697511052ull,
+ 6984200012046223013ull}},
+ {{575150198177100177ull, 10594898710983454180ull,
+ 13018433991799276719ull, 8730250015057778766ull}},
+ {{9582840910715463419ull, 13539340722005740718ull,
+ 3524835226447160045ull, 5456406259411111729ull}},
+ {{2755179101539553466ull, 3089117847225012186ull,
+ 9017730051486337961ull, 6820507824263889661ull}},
+ {{12667345913779217640ull, 8473083327458653136ull,
+ 15883848582785310355ull, 8525634780329862076ull}},
+ {{7917091196112011025ull, 2989834070447964258ull, 704033327386043164ull,
+ 5328521737706163798ull}},
+ {{672991958285237973ull, 3737292588059955323ull,
+ 10103413696087329763ull, 6660652172132704747ull}},
+ {{14676298003138711178ull, 59929716647556249ull, 8017581101681774300ull,
+ 8325815215165880934ull}},
+ {{2255157224320612631ull, 9260828109759498464ull, 399302170123721033ull,
+ 5203634509478675584ull}},
+ {{2818946530400765788ull, 16187721155626760984ull,
+ 499127712654651291ull, 6504543136848344480ull}},
+ {{3523683163000957235ull, 15622965426106063326ull,
+ 623909640818314114ull, 8130678921060430600ull}},
+ {{16037360032157761984ull, 14376039409743677482ull,
+ 389943525511446321ull, 5081674325662769125ull}},
+ {{10823328003342426672ull, 4134991206897433141ull,
+ 5099115425316695806ull, 6352092907078461406ull}},
+ {{18140846022605421244ull, 14392111045476567234ull,
+ 15597266318500645565ull, 7940116133848076757ull}},
+ {{15949714782555776182ull, 11300912412636548473ull,
+ 12054134458276597430ull, 4962572583655047973ull}},
+ {{6102085422912556515ull, 4902768478940909784ull,
+ 1232610017563583076ull, 6203215729568809967ull}},
+ {{7627606778640695644ull, 6128460598676137230ull,
+ 15375820577236642557ull, 7754019661961012458ull}},
+ {{155568218223046873ull, 6136130883386279721ull,
+ 14221573879200289502ull, 4846262288725632786ull}},
+ {{4806146291206196496ull, 16893535641087625459ull,
+ 8553595312145586069ull, 6057827860907040983ull}},
+ {{1395996845580357715ull, 7281861496077368112ull,
+ 6080308121754594683ull, 7572284826133801229ull}},
+ {{872498028487723572ull, 2245320425834661118ull, 6106035585310315629ull,
+ 4732678016333625768ull}},
+ {{10313994572464430273ull, 7418336550720714301ull,
+ 7632544481637894536ull, 5915847520417032210ull}},
+ {{17504179234007925746ull, 9272920688400892876ull,
+ 317308565192592362ull, 7394809400521290263ull}},
+ {{1716739984400177783ull, 10407261448677945952ull,
+ 7115846880886452082ull, 4621755875325806414ull}},
+ {{2145924980500222229ull, 3785704773992656632ull,
+ 18118180637962840911ull, 5777194844157258017ull}},
+ {{2682406225625277786ull, 120444949063432886ull, 8812667742171387427ull,
+ 7221493555196572522ull}},
+ {{12576379818886373040ull, 13985614241611454819ull,
+ 1792462640859458475ull, 9026866943995715653ull}},
+ {{5554394377590289198ull, 6435165891793465310ull,
+ 3426132159750855499ull, 5641791839997322283ull}},
+ {{16166365008842637306ull, 3432271346314443733ull,
+ 18117723254970733086ull, 7052239799996652853ull}},
+ {{6372898205771132920ull, 13513711219747830475ull,
+ 8812096013431252645ull, 8815299749995816067ull}},
+ {{1677218369393264123ull, 10751912521556087999ull,
+ 3201716999180838951ull, 5509562343747385042ull}},
+ {{15931581017023743866ull, 8828204633517722094ull,
+ 13225518285830824497ull, 6886952929684231302ull}},
+ {{10691104234424904024ull, 15646941810324540522ull,
+ 7308525820433754813ull, 8608691162105289128ull}},
+ {{11293626164942952919ull, 12085181640666531778ull,
+ 4567828637771096758ull, 5380431976315805705ull}},
+ {{4893660669323915341ull, 5883105013978388915ull,
+ 10321471815641258852ull, 6725539970394757131ull}},
+ {{1505389818227506272ull, 7353881267472986144ull,
+ 8290153751124185661ull, 8406924962993446414ull}},
+ {{940868636392191420ull, 6902018801384310292ull, 569660076025228134ull,
+ 5254328101870904009ull}},
+ {{1176085795490239275ull, 17850895538585163673ull,
+ 5323761113458923071ull, 6567910127338630011ull}},
+ {{6081793262790186998ull, 17701933404804066687ull,
+ 2043015373396265935ull, 8209887659173287514ull}},
+ {{10718649816884948730ull, 17981237405643623535ull,
+ 5888570626800054113ull, 5131179786983304696ull}},
+ {{8786626252678798008ull, 8641488701772365707ull,
+ 7360713283500067642ull, 6413974733729130870ull}},
+ {{6371596797421109606ull, 1578488840360681326ull,
+ 18424263641229860361ull, 8017468417161413587ull}},
+ {{17817306053670357216ull, 12515770571293895588ull,
+ 9209321766554968773ull, 5010917760725883492ull}},
+ {{3824888493378394904ull, 1809655158835205774ull,
+ 11511652208193710967ull, 6263647200907354365ull}},
+ {{14004482653577769438ull, 16097127003826170929ull,
+ 554507204959974996ull, 7829559001134192957ull}},
+ {{1835272630845024043ull, 837332340536581023ull, 2652410012313678325ull,
+ 4893474375708870598ull}},
+ {{16129148843838443765ull, 5658351444098114182ull,
+ 12538884552246873714ull, 6116842969636088247ull}},
+ {{10938064017943278899ull, 16296311341977418536ull,
+ 11061919671881204238ull, 7646053712045110309ull}},
+ {{6836290011214549312ull, 5573508570308498681ull,
+ 9219542804139446601ull, 4778783570028193943ull}},
+ {{13157048532445574544ull, 11578571731313011255ull,
+ 6912742486746920347ull, 5973479462535242429ull}},
+ {{11834624647129580276ull, 9861528645713876165ull,
+ 13252614126861038338ull, 7466849328169053036ull}},
+ {{9702483413669681624ull, 10775141421998560507ull,
+ 17506255866142924769ull, 4666780830105658147ull}},
+ {{7516418248659714126ull, 18080612795925588538ull,
+ 17271133814251268057ull, 5833476037632072684ull}},
+ {{172150773969866850ull, 8765707939624821961ull, 3142173194104533456ull,
+ 7291845047040090856ull}},
+ {{4826874485889721466ull, 10957134924531027451ull,
+ 3927716492630666820ull, 9114806308800113570ull}},
+ {{710953544467381965ull, 16071581364686667965ull,
+ 7066508826321554666ull, 5696753943000070981ull}},
+ {{5500377949011615360ull, 10866104669003559148ull,
+ 13444822051329331237ull, 7120942428750088726ull}},
+ {{6875472436264519199ull, 18194316854681836839ull,
+ 7582655527306888238ull, 8901178035937610908ull}},
+ {{11214699300306406356ull, 6759762015748760120ull,
+ 13962531741421580957ull, 5563236272461006817ull}},
+ {{14018374125383007945ull, 13061388538113338054ull,
+ 3618106621494812484ull, 6954045340576258522ull}},
+ {{8299595619873984123ull, 16326735672641672568ull,
+ 13746005313723291413ull, 8692556675720323152ull}},
+ {{5187247262421240077ull, 12510052804614739307ull,
+ 8591253321077057133ull, 5432847922325201970ull}},
+ {{1872373059599162192ull, 1802507950486260422ull,
+ 1515694614491545609ull, 6791059902906502463ull}},
+ {{11563838361353728548ull, 6864820956535213431ull,
+ 15729676323396595723ull, 8488824878633128078ull}},
+ {{14144928003487162198ull, 1984670088620814442ull,
+ 5219361683695484423ull, 5305515549145705049ull}},
+ {{8457787967504176940ull, 16315895666058181765ull,
+ 11135888123046743432ull, 6631894436432131311ull}},
+ {{15183920977807609079ull, 1948125508863175590ull,
+ 9308174135381041387ull, 8289868045540164139ull}},
+ {{4878264592702367770ull, 17358479507535342408ull,
+ 3511765825399456914ull, 5181167528462602587ull}},
+ {{6097830740877959713ull, 12474727347564402202ull,
+ 18224765337031484855ull, 6476459410578253233ull}},
+ {{16845660462952225449ull, 10981723166028114848ull,
+ 8945898616007192357ull, 8095574263222816542ull}},
+ {{10528537789345140906ull, 9169419987981265732ull,
+ 979500616577107319ull, 5059733914514260339ull}},
+ {{13160672236681426132ull, 6850088966549194261ull,
+ 15059433826003547861ull, 6324667393142825423ull}},
+ {{2615782240569618953ull, 13174297226613880731ull,
+ 14212606264077046922ull, 7905834241428531779ull}},
+ {{17775764964851869510ull, 12845621785061063360ull,
+ 6577035905834460374ull, 4941146400892832362ull}},
+ {{3772962132355285271ull, 6833655194471553393ull,
+ 17444666919147851276ull, 6176433001116040452ull}},
+ {{9327888683871494493ull, 8542068993089441741ull,
+ 3359089575225262479ull, 7720541251395050566ull}},
+ {{8135773436633378010ull, 12256322148321982944ull,
+ 15934489039797952761ull, 4825338282121906603ull}},
+ {{10169716795791722513ull, 1485344630120314968ull,
+ 15306425281320053048ull, 6031672852652383254ull}},
+ {{12712145994739653141ull, 1856680787650393710ull,
+ 9909659564795290502ull, 7539591065815479068ull}},
+ {{3333405228284895309ull, 14995483547563659781ull,
+ 15416909264851832371ull, 4712244416134674417ull}},
+ {{8778442553783507040ull, 14132668416027186822ull,
+ 5436078525782626752ull, 5890305520168343022ull}},
+ {{1749681155374607992ull, 17665835520033983528ull,
+ 16018470194083059248ull, 7362881900210428777ull}},
+ {{2187101444218259990ull, 3635550326332927794ull,
+ 6188029687321660349ull, 9203602375263035972ull}},
+ {{5978624421063800398ull, 4578061963171773823ull,
+ 13090890591430813526ull, 5752251484539397482ull}},
+ {{2861594507902362593ull, 14945949490819493087ull,
+ 7140241202433741099ull, 7190314355674246853ull}},
+ {{17412051190160116954ull, 14070750845096978454ull,
+ 13536987521469564278ull, 8987892944592808566ull}},
+ {{6270845975422685192ull, 4182533259758223630ull,
+ 3848931182491089770ull, 5617433090370505354ull}},
+ {{17061929506133132298ull, 14451538611552555345ull,
+ 14034536014968638020ull, 7021791362963131692ull}},
+ {{7492353827384251661ull, 18064423264440694182ull,
+ 17543170018710797525ull, 8777239203703914615ull}},
+ {{71035123687769384ull, 13596107549489127816ull,
+ 17882010289335330309ull, 5485774502314946634ull}},
+ {{88793904609711730ull, 3160076381579246058ull, 13129140824814387079ull,
+ 6857218127893683293ull}},
+ {{9334364417616915470ull, 17785153532256221284ull,
+ 2576367975735820136ull, 8571522659867104117ull}},
+ {{15057349797865347977ull, 11115720957660138302ull,
+ 3916072994048581537ull, 5357201662416940073ull}},
+ {{9598315210476909163ull, 59593141793009166ull, 9506777260988114826ull,
+ 6696502078021175091ull}},
+ {{2774521976241360646ull, 9297863464096037266ull,
+ 7271785557807755628ull, 8370627597526468864ull}},
+ {{6345762253578238308ull, 15034536701914799099ull,
+ 4544865973629847267ull, 5231642248454043040ull}},
+ {{3320516798545409981ull, 14181484858966110970ull,
+ 5681082467037309084ull, 6539552810567553800ull}},
+ {{13374018035036538284ull, 17726856073707638712ull,
+ 7101353083796636355ull, 8174441013209442250ull}},
+ {{8358761271897836428ull, 8773442036853580243ull,
+ 9050031695800285626ull, 5109025633255901406ull}},
+ {{5836765571444907630ull, 1743430509212199496ull,
+ 2089167582895581225ull, 6386282041569876758ull}},
+ {{7295956964306134538ull, 6790974154942637274ull,
+ 11834831515474252339ull, 7982852551962345947ull}},
+ {{9171659121118721990ull, 1938515837625454344ull,
+ 5090926687957713760ull, 4989282844976466217ull}},
+ {{11464573901398402488ull, 2423144797031817930ull,
+ 10975344378374530104ull, 6236603556220582771ull}},
+ {{5107345339893227302ull, 3028930996289772413ull,
+ 9107494454540774726ull, 7795754445275728464ull}},
+ {{5497933846646961016ull, 15728139927963271470ull,
+ 5692184034087984203ull, 4872346528297330290ull}},
+ {{16095789345163477078ull, 15048488891526701433ull,
+ 16338602079464756062ull, 6090433160371662862ull}},
+ {{6284678626172182635ull, 9587239077553600984ull,
+ 11199880562476169270ull, 7613041450464578578ull}},
+ {{3927924141357614147ull, 1380338405043612711ull,
+ 11611611369974993698ull, 4758150906540361611ull}},
+ {{298219158269629780ull, 10948795043159291697ull,
+ 9902828194041354218ull, 5947688633175452014ull}},
+ {{4984459966264425128ull, 4462621767094338813ull,
+ 3155163205696916965ull, 7434610791469315018ull}},
+ {{5421130488128959657ull, 5094981613647655710ull,
+ 6583663021987961007ull, 4646631744668321886ull}},
+ {{15999785147015975380ull, 1757040998632181733ull,
+ 17452950814339727067ull, 5808289680835402357ull}},
+ {{6164673378487805512ull, 16031359303572390879ull,
+ 7981130462642495121ull, 7260362101044252947ull}},
+ {{3094155704682368986ull, 6204141074183324887ull,
+ 5364727059875730998ull, 9075452626305316184ull}},
+ {{8851376343067562473ull, 17712646226646741766ull,
+ 3352954412422331873ull, 5672157891440822615ull}},
+ {{1840848391979677283ull, 8305749728026263496ull,
+ 18026251070810078554ull, 7090197364301028268ull}},
+ {{2301060489974596603ull, 1158815123178053562ull,
+ 4086069764803046577ull, 8862746705376285336ull}},
+ {{6049848824661510781ull, 12253474498054753236ull,
+ 2553793603001904110ull, 5539216690860178335ull}},
+ {{7562311030826888476ull, 6093471085713665737ull,
+ 17027300059034543850ull, 6924020863575222918ull}},
+ {{14064574806960998499ull, 16840210893996857979ull,
+ 12060753036938404004ull, 8655026079469028648ull}},
+ {{6484516245136930110ull, 1301759771893260429ull,
+ 7537970648086502503ull, 5409391299668142905ull}},
+ {{12717331324848550542ull, 15462257770148739248ull,
+ 14034149328535516032ull, 6761739124585178631ull}},
+ {{15896664156060688177ull, 881078138976372444ull,
+ 12931000642242007137ull, 8452173905731473289ull}},
+ {{712043060683154303ull, 12079888882928702538ull,
+ 1164346373760172604ull, 5282608691082170806ull}},
+ {{10113425862708718686ull, 15099861103660878172ull,
+ 10678805004054991563ull, 6603260863852713507ull}},
+ {{12641782328385898358ull, 14263140361148709811ull,
+ 8736820236641351550ull, 8254076079815891884ull}},
+ {{5595270946027492522ull, 4302776707290555728ull,
+ 14683884684755620527ull, 5158797549884932427ull}},
+ {{6994088682534365652ull, 766784865685806756ull,
+ 13743169837517137755ull, 6448496937356165534ull}},
+ {{8742610853167957065ull, 14793539137389422157ull,
+ 7955590260041646385ull, 8060621171695206918ull}},
+ {{7769974792443667118ull, 2328432933227306992ull, 360557894098641087ull,
+ 5037888232309504324ull}},
+ {{9712468490554583897ull, 16745599221816297452ull,
+ 450697367623301358ull, 6297360290386880405ull}},
+ {{12140585613193229871ull, 11708626990415596007ull,
+ 5175057727956514602ull, 7871700362983600506ull}},
+ {{14505395035886850526ull, 11929577887437135408ull,
+ 7846097098400209530ull, 4919812726864750316ull}},
+ {{18131743794858563157ull, 5688600322441643452ull,
+ 9807621373000261913ull, 6149765908580937895ull}},
+ {{4217935669863652330ull, 11722436421479442220ull,
+ 7647840697822939487ull, 7687207385726172369ull}},
+ {{11859581830519558515ull, 14244051791065733243ull,
+ 16309115482207806939ull, 4804504616078857730ull}},
+ {{10212791269722060239ull, 13193378720404778650ull,
+ 11163022315904982866ull, 6005630770098572163ull}},
+ {{3542617050297799491ull, 7268351363651197505ull,
+ 9342091876453840679ull, 7507038462623215204ull}},
+ {{13743350702504594442ull, 11460248629923080296ull,
+ 15062179459638426232ull, 4691899039139509502ull}},
+ {{17179188378130743052ull, 14325310787403850370ull,
+ 9604352287693256982ull, 5864873798924386878ull}},
+ {{12250613435808653007ull, 8683266447400037155ull,
+ 2782068322761795420ull, 7331092248655483598ull}},
+ {{10701580776333428355ull, 10854083059250046444ull,
+ 12700957440307020083ull, 9163865310819354497ull}},
+ {{15911860022063168530ull, 4477958902817585075ull,
+ 1020569372550805696ull, 5727415819262096561ull}},
+ {{15278139009151572758ull, 5597448628521981344ull,
+ 5887397734115895024ull, 7159269774077620701ull}},
+ {{650929687729914332ull, 6996810785652476681ull,
+ 11970933186072256684ull, 8949087217597025876ull}},
+ {{11936046100899666218ull, 13596378777887573733ull,
+ 16705205278149936235ull, 5593179510998141172ull}},
+ {{1084999570842419060ull, 12383787453932079263ull,
+ 2434762523977868678ull, 6991474388747676466ull}},
+ {{15191307518835187537ull, 6256362280560323270ull,
+ 12266825191827111656ull, 8739342985934595582ull}},
+ {{4882881180844604307ull, 3910226425350202044ull,
+ 3055079726464556881ull, 5462089366209122239ull}},
+ {{6103601476055755383ull, 9499469050115140459ull,
+ 17653907713362859813ull, 6827611707761402798ull}},
+ {{3017815826642306325ull, 16486022331071313478ull,
+ 12844012604848798958ull, 8534514634701753498ull}},
+ {{15721192946933605165ull, 5692077938492183019ull,
+ 12639193896457887253ull, 5334071646688595936ull}},
+ {{15039805165239618552ull, 11726783441542616678ull,
+ 15798992370572359066ull, 6667589558360744920ull}},
+ {{9576384419694747382ull, 5435107265073495040ull,
+ 1301996389505897217ull, 8334486947950931151ull}},
+ {{5985240262309217114ull, 14926157086739404160ull,
+ 7731276771082267616ull, 5209054342469331969ull}},
+ {{7481550327886521393ull, 210952284714703584ull,
+ 14275781982280222425ull, 6511317928086664961ull}},
+ {{9351937909858151741ull, 4875376374320767384ull,
+ 4009669422568114319ull, 8139147410108331202ull}},
+ {{5844961193661344838ull, 9964639261591561471ull,
+ 7117729407532459353ull, 5086967131317707001ull}},
+ {{2694515473649293144ull, 17067485095416839743ull,
+ 13508847777842962095ull, 6358708914147133751ull}},
+ {{17203202397343780141ull, 16722670350843661774ull,
+ 12274373703876314715ull, 7948386142683917189ull}},
+ {{6140315479912474684ull, 8145825960063594657ull,
+ 9977326574136390649ull, 4967741339177448243ull}},
+ {{12287080368317981259ull, 14793968468506881225ull,
+ 7859972199243100407ull, 6209676673971810304ull}},
+ {{1523792405115312862ull, 13880774567206213628ull,
+ 9824965249053875509ull, 7762095842464762880ull}},
+ {{10175742290051846347ull, 10981327113717577469ull,
+ 6140603280658672193ull, 4851309901540476800ull}},
+ {{17331363880992195838ull, 18338344910574359740ull,
+ 7675754100823340241ull, 6064137376925596000ull}},
+ {{3217460777530693181ull, 9087873082935785964ull,
+ 9594692626029175302ull, 7580171721156995000ull}},
+ {{11234285022811459046ull, 1068234658407478323ull,
+ 5996682891268234564ull, 4737607325723121875ull}},
+ {{9431170260086935904ull, 1335293323009347904ull,
+ 2884167595657905301ull, 5922009157153902344ull}},
+ {{11788962825108669880ull, 6280802672189072784ull,
+ 3605209494572381626ull, 7402511446442377930ull}},
+ {{7368101765692918675ull, 8537187688545558394ull,
+ 6864941952535126420ull, 4626569654026486206ull}},
+ {{18433499243970924152ull, 10671484610681947992ull,
+ 17804549477523683833ull, 5783212067533107757ull}},
+ {{4595129981254103573ull, 17951041781779822895ull,
+ 8420628791622441079ull, 7229015084416384697ull}},
+ {{1132226458140241563ull, 17827116208797390715ull,
+ 15137472007955439253ull, 9036268855520480871ull}},
+ {{16848542600833508641ull, 13447790639712063148ull,
+ 16378449032613231389ull, 5647668034700300544ull}},
+ {{2613934177332334185ull, 2974680244357915224ull,
+ 2026317217056987621ull, 7059585043375375681ull}},
+ {{3267417721665417731ull, 8330036323874781934ull,
+ 7144582539748622430ull, 8824481304219219601ull}},
+ {{15877194131323049794ull, 594586683994350804ull,
+ 15994579133411358779ull, 5515300815137012250ull}},
+ {{1399748590444260626ull, 14578291410275102218ull,
+ 10769851879909422665ull, 6894126018921265313ull}},
+ {{10973057774910101591ull, 4387806207561714060ull,
+ 18074000868314166236ull, 8617657523651581641ull}},
+ {{16081533146173589302ull, 11965750916580847095ull,
+ 4378721515055272041ull, 5386035952282238526ull}},
+ {{15490230414289598724ull, 1122130590443895157ull,
+ 14696773930673865860ull, 6732544940352798157ull}},
+ {{5527729962579834693ull, 1402663238054868947ull,
+ 4535909358060168613ull, 8415681175440997697ull}},
+ {{1148988217398702731ull, 3182507532997987044ull,
+ 14364158394856075143ull, 5259800734650623560ull}},
+ {{1436235271748378414ull, 17813192471529647517ull,
+ 17955197993570093928ull, 6574750918313279450ull}},
+ {{6406980108112860921ull, 3819746515702507780ull,
+ 13220625455107841603ull, 8218438647891599313ull}},
+ {{13227734604425313884ull, 81498563100373410ull, 1345361881801319146ull,
+ 5136524154932249571ull}},
+ {{7311296218676866547ull, 9325245240730242571ull,
+ 15516760407533812644ull, 6420655193665311963ull}},
+ {{4527434254918695279ull, 11656556550912803214ull,
+ 14784264490989877901ull, 8025818992081639954ull}},
+ {{16664704464606348262ull, 9591190853534195960ull,
+ 13851851325296061592ull, 5016136870051024971ull}},
+ {{2384136507048383711ull, 11988988566917744951ull,
+ 12703128138192689086ull, 6270171087563781214ull}},
+ {{16815228689092643351ull, 5762863671792405380ull,
+ 6655538135886085550ull, 7837713859454726518ull}},
+ {{1286145893828126286ull, 17436847850152417075ull,
+ 17994769390210967180ull, 4898571162159204073ull}},
+ {{15442740422567321570ull, 3349315738980969727ull,
+ 8658403682481545264ull, 6123213952699005092ull}},
+ {{14691739509781764058ull, 4186644673726212159ull,
+ 10823004603101931580ull, 7654017440873756365ull}},
+ {{16099866221254684393ull, 11840024957933658407ull,
+ 9070220886152401189ull, 4783760900546097728ull}},
+ {{15513146758140967587ull, 964973142134909297ull,
+ 11337776107690501487ull, 5979701125682622160ull}},
+ {{5556375392394045771ull, 15041274482950800334ull,
+ 14172220134613126858ull, 7474626407103277700ull}},
+ {{17307792675528442319ull, 14012482570271638112ull,
+ 18081009620987980094ull, 4671641504439548562ull}},
+ {{3187996770701001283ull, 8292231175984771833ull,
+ 13377889989380199310ull, 5839551880549435703ull}},
+ {{8596681981803639507ull, 1141916933126188983ull,
+ 12110676468297861234ull, 7299439850686794629ull}},
+ {{6134166458827161480ull, 10650768203262512037ull,
+ 1303287530090162830ull, 9124299813358493287ull}},
+ {{6139697045980669877ull, 2045044108611682119ull,
+ 7732083733947433625ull, 5702687383349058304ull}},
+ {{3062935289048449442ull, 7167991154191990553ull,
+ 9665104667434292031ull, 7128359229186322880ull}},
+ {{8440355129737949707ull, 4348302924312600287ull,
+ 12081380834292865039ull, 8910449036482903600ull}},
+ {{12192750983727300423ull, 9635218355336457035ull,
+ 7550863021433040649ull, 5569030647801814750ull}},
+ {{10629252711231737625ull, 16655708962597959198ull,
+ 215206739936525003ull, 6961288309752268438ull}},
+ {{4063193852184896223ull, 16207950184820061094ull,
+ 9492380461775432062ull, 8701610387190335547ull}},
+ {{16374554212897723851ull, 5518282847085150279ull,
+ 3626894779395951087ull, 5438506491993959717ull}},
+ {{15856506747694766910ull, 2286167540429049945ull,
+ 9145304492672326763ull, 6798133114992449646ull}},
+ {{5985575379336294926ull, 16692767480818476144ull,
+ 2208258578985632645ull, 8497666393740562058ull}},
+ {{3740984612085184329ull, 12738822684725241542ull,
+ 5991847630293408307ull, 5311041496087851286ull}},
+ {{13899602801961256219ull, 11311842337479164023ull,
+ 16713181574721536192ull, 6638801870109814107ull}},
+ {{12762817484024182369ull, 14139802921848955029ull,
+ 16279790949974532336ull, 8298502337637267634ull}},
+ {{10282603936728807933ull, 8837376826155596893ull,
+ 14786555362161470614ull, 5186563961023292271ull}},
+ {{17464940939338397820ull, 1823348995839720308ull,
+ 13871508184274450364ull, 6483204951279115339ull}},
+ {{3384432100463445659ull, 2279186244799650386ull,
+ 12727699211915675051ull, 8104006189098894174ull}},
+ {{6726956081217041441ull, 17565392467495639155ull,
+ 3343125989019909002ull, 5065003868186808859ull}},
+ {{3797009083093913897ull, 12733368547514773136ull,
+ 18013965541557049965ull, 6331254835233511073ull}},
+ {{4746261353867392371ull, 2081652629111302708ull,
+ 8682398871664148745ull, 7914068544041888842ull}},
+ {{12189785383021896040ull, 12830247939263033952ull,
+ 10038185313217480869ull, 4946292840026180526ull}},
+ {{15237231728777370050ull, 2202751868796628728ull,
+ 3324359604667075279ull, 6182866050032725658ull}},
+ {{599795587262160947ull, 16588497891277949623ull,
+ 13378821542688619906ull, 7728582562540907072ull}},
+ {{7292401269679932448ull, 14979497200476106418ull,
+ 8361763464180387441ull, 4830364101588066920ull}},
+ {{18338873623954691368ull, 4889313445312969310ull,
+ 10452204330225484302ull, 6037955126985083650ull}},
+ {{13700219993088588401ull, 15335013843495987446ull,
+ 3841883375927079569ull, 7547443908731354563ull}},
+ {{3950951477252979847ull, 2666854624543910298ull, 95334100740730779ull,
+ 4717152442957096602ull}},
+ {{14162061383421000617ull, 17168626335962051584ull,
+ 9342539662780689281ull, 5896440553696370752ull}},
+ {{17702576729276250771ull, 7625724864670400768ull,
+ 11678174578475861602ull, 7370550692120463440ull}},
+ {{3681476837885761847ull, 308784043983225153ull,
+ 14597718223094827003ull, 9213188365150579300ull}},
+ {{13830138069747070915ull, 16333891091985373384ull,
+ 18346945926289042684ull, 5758242728219112062ull}},
+ {{17287672587183838643ull, 1970619791272165114ull,
+ 13710310371006527548ull, 7197803410273890078ull}},
+ {{12386218697125022496ull, 2463274739090206393ull,
+ 7914515926903383627ull, 8997254262842362598ull}},
+ {{823857658062057204ull, 17680447776427236660ull, 334886435887226862ull,
+ 5623283914276476624ull}},
+ {{1029822072577571505ull, 12877187683679270017ull,
+ 418608044859033578ull, 7029104892845595780ull}},
+ {{5898963609149352285ull, 6873112567744311713ull, 523260056073791973ull,
+ 8786381116056994725ull}},
+ {{15216067301786814939ull, 6601538364053888772ull,
+ 2632880544259813935ull, 5491488197535621703ull}},
+ {{573340053523967057ull, 3640236936639973062ull,
+ 17126158735606931131ull, 6864360246919527128ull}},
+ {{9940047103759734629ull, 18385354226082130039ull,
+ 2960954345799112297ull, 8580450308649408911ull}},
+ {{13130058467490915999ull, 4573317363660249418ull,
+ 8768125493765527042ull, 5362781442905880569ull}},
+ {{7189201047508869191ull, 14940018741430087581ull,
+ 15571842885634296706ull, 6703476803632350711ull}},
+ {{13598187327813474393ull, 9451651389932833668ull,
+ 14853117588615482979ull, 8379346004540438389ull}},
+ {{17722239116738197304ull, 3601439109494327090ull,
+ 11589041502098370814ull, 5237091252837773993ull}},
+ {{12929426859067970822ull, 13725170923722684671ull,
+ 651243822340799805ull, 6546364066047217492ull}},
+ {{11550097555407575623ull, 3321405599371192127ull,
+ 814054777925999757ull, 8182955082559021865ull}},
+ {{14136339999770816620ull, 4381721508820689031ull,
+ 12037999282272219608ull, 5114346926599388665ull}},
+ {{13058738981286132871ull, 5477151886025861289ull,
+ 1212441047558110798ull, 6392933658249235832ull}},
+ {{2488365671325502377ull, 16069811894387102420ull,
+ 1515551309447638497ull, 7991167072811544790ull}},
+ {{10778600581433214794ull, 3126103406350857156ull,
+ 14782277623686937773ull, 4994479420507215493ull}},
+ {{13473250726791518492ull, 8519315276365959349ull,
+ 4642788974326508504ull, 6243099275634019367ull}},
+ {{3006505353207234403ull, 10649144095457449187ull,
+ 1191800199480747726ull, 7803874094542524209ull}},
+ {{18019966910250379166ull, 2044029041233517837ull,
+ 12274090170743937089ull, 4877421309089077630ull}},
+ {{8689900582530810246ull, 7166722319969285201ull,
+ 6119240676575145553ull, 6096776636361347038ull}},
+ {{15474061746590900711ull, 13570088918388994405ull,
+ 16872422882573707749ull, 7620970795451683797ull}},
+ {{11977131600833006896ull, 10787148583206815455ull,
+ 12851107310822261295ull, 4763106747157302373ull}},
+ {{10359728482613870716ull, 8872249710581131415ull,
+ 2228826083245662907ull, 5953883433946627967ull}},
+ {{8337974584839950491ull, 6478626119799026365ull,
+ 16621090659339242346ull, 7442354292433284958ull}},
+ {{7517077124738663009ull, 8660827343301779382ull,
+ 5776495643659638562ull, 4651471432770803099ull}},
+ {{172974369068552954ull, 1602662142272448420ull, 2608933536147160299ull,
+ 5814339290963503874ull}},
+ {{216217961335691192ull, 15838385733122724237ull,
+ 12484538957038726181ull, 7267924113704379842ull}},
+ {{4881958470097001894ull, 5962924111121241584ull,
+ 6382301659443631919ull, 9084905142130474803ull}},
+ {{3051224043810626184ull, 10644356597091857846ull,
+ 1683095527938575997ull, 5678065713831546752ull}},
+ {{13037402091618058538ull, 17917131764792210211ull,
+ 2103869409923219996ull, 7097582142289433440ull}},
+ {{11685066596095185268ull, 3949670632280711148ull,
+ 2629836762404024996ull, 8871977677861791800ull}},
+ {{16526538659414266601ull, 11691916182030220275ull,
+ 1643647976502515622ull, 5544986048663619875ull}},
+ {{16046487305840445347ull, 5391523190682999536ull,
+ 15889618025910308240ull, 6931232560829524843ull}},
+ {{1611365058591005067ull, 6739403988353749421ull,
+ 15250336513960497396ull, 8664040701036906054ull}},
+ {{3312946170833072119ull, 13435499529575869196ull,
+ 4919774302797922968ull, 5415025438148066284ull}},
+ {{4141182713541340149ull, 16794374411969836495ull,
+ 6149717878497403710ull, 6768781797685082855ull}},
+ {{564792373499287282ull, 11769595978107519811ull,
+ 3075461329694366734ull, 8460977247106353569ull}},
+ {{16493896297932912215ull, 2744311467889811977ull,
+ 13451378377127448969ull, 5288110779441470980ull}},
+ {{6782312317133976557ull, 8042075353289652876ull,
+ 16814222971409311211ull, 6610138474301838725ull}},
+ {{8477890396417470696ull, 5440908173184678191ull,
+ 7182720658979475302ull, 8262673092877298407ull}},
+ {{12216210525402001041ull, 17235625663522587581ull,
+ 11406729439503253919ull, 5164170683048311504ull}},
+ {{1435205101470337590ull, 16932846060975846573ull,
+ 14258411799379067399ull, 6455213353810389380ull}},
+ {{6405692395265309891ull, 16554371557792420312ull,
+ 17823014749223834249ull, 8069016692262986725ull}},
+ {{4003557747040818682ull, 3428953195979180839ull,
+ 13445227227478590358ull, 5043135432664366703ull}},
+ {{392761165373635448ull, 13509563531828751857ull,
+ 12194848015920850043ull, 6303919290830458379ull}},
+ {{5102637475144432214ull, 12275268396358551917ull,
+ 10631874001473674650ull, 7879899113538072974ull}},
+ {{5494991431178964086ull, 12283728766151482852ull,
+ 2033235232493658752ull, 4924936945961295609ull}},
+ {{6868739288973705107ull, 15354660957689353565ull,
+ 7153230059044461344ull, 6156171182451619511ull}},
+ {{13197610129644519288ull, 746582123402140340ull,
+ 4329851555378188777ull, 7695213978064524389ull}},
+ {{17471878367882600363ull, 11995828873194807472ull,
+ 5012000231325061937ull, 4809508736290327743ull}},
+ {{3393103886143698838ull, 1159728036211345629ull,
+ 1653314270728939518ull, 6011885920362909679ull}},
+ {{8853065876107011451ull, 10673032082118957844ull,
+ 15901700893693338109ull, 7514857400453637098ull}},
+ {{14756538209421657965ull, 8976488060538042604ull,
+ 14550249076985724222ull, 4696785875283523186ull}},
+ {{18445672761777072457ull, 1997238038817777447ull,
+ 8964439309377379470ull, 5870982344104403983ull}},
+ {{18445404933793952667ull, 11719919585376997617ull,
+ 6593863118294336433ull, 7338727930130504979ull}},
+ {{9221698111960277121ull, 814841426439083310ull, 3630642879440532638ull,
+ 9173409912663131224ull}},
+ {{1151875301547785297ull, 14344333946806590781ull,
+ 2269151799650332898ull, 5733381195414457015ull}},
+ {{6051530145362119525ull, 8707045396653462668ull,
+ 16671497804845079835ull, 7166726494268071268ull}},
+ {{7564412681702649406ull, 6272120727389440431ull,
+ 2392628182346798178ull, 8958408117835089086ull}},
+ {{11645286953705237735ull, 8531761473045788173ull,
+ 15330450669248912573ull, 5599005073646930678ull}},
+ {{721550636849383457ull, 15276387859734623121ull,
+ 9939691299706364908ull, 6998756342058663348ull}},
+ {{5513624314489117225ull, 648740750958727285ull,
+ 12424614124632956136ull, 8748445427573329185ull}},
+ {{5751858205769392218ull, 405462969349204553ull, 847854800254515729ull,
+ 5467778392233330741ull}},
+ {{11801508775639128176ull, 5118514730113893595ull,
+ 5671504518745532565ull, 6834722990291663426ull}},
+ {{10140199951121522316ull, 11009829431069754898ull,
+ 16312752685286691514ull, 8543403737864579282ull}},
+ {{10949310987878339351ull, 11492829412845984715ull,
+ 14807156446731570100ull, 5339627336165362051ull}},
+ {{9074952716420536285ull, 14366036766057480894ull,
+ 13897259539987074721ull, 6674534170206702564ull}},
+ {{2120318858670894548ull, 4122487902289687406ull,
+ 17371574424983843402ull, 8343167712758378205ull}},
+ {{15160257341951472805ull, 7188240957358442532ull,
+ 13163077024828596078ull, 5214479820473986378ull}},
+ {{503577603729789390ull, 18208673233552828974ull,
+ 7230474244180969289ull, 6518099775592482973ull}},
+ {{9852844041517012545ull, 8925783486658872505ull,
+ 13649778823653599516ull, 8147624719490603716ull}},
+ {{17687242572016602601ull, 14801986716016571123ull,
+ 17754483801638275505ull, 5092265449681627322ull}},
+ {{17497367196593365347ull, 4667425339738550192ull,
+ 12969732715193068574ull, 6365331812102034153ull}},
+ {{3424964922032155068ull, 15057653711527963549ull,
+ 2377107838709172005ull, 7956664765127542692ull}},
+ {{4446446085483790870ull, 11716876578918671170ull,
+ 10709064436048008311ull, 4972915478204714182ull}},
+ {{14781429643709514395ull, 10034409705220951058ull,
+ 4162958508205234581ull, 6216144347755892728ull}},
+ {{9253415017782117185ull, 17154698149953576727ull,
+ 5203698135256543226ull, 7770180434694865910ull}},
+ {{12700913413754905097ull, 15333372362148373358ull,
+ 17087369389817503228ull, 4856362771684291193ull}},
+ {{6652769730338855563ull, 719971378975915082ull, 7524153681989715324ull,
+ 6070453464605363992ull}},
+ {{17539334199778345262ull, 899964223719893852ull,
+ 9405192102487144155ull, 7588066830756704990ull}},
+ {{1738711838006689981ull, 16703378704320791322ull,
+ 1266559045627077192ull, 4742541769222940619ull}},
+ {{11396761834363138284ull, 2432479306691437536ull,
+ 15418256862316010203ull, 5928177211528675773ull}},
+ {{14245952292953922855ull, 16875657188646460632ull,
+ 5437763022612849041ull, 7410221514410844717ull}},
+ {{8903720183096201784ull, 3629756715262956039ull,
+ 5704444898346724603ull, 4631388446506777948ull}},
+ {{6517964210442864326ull, 18372253949360858761ull,
+ 7130556122933405753ull, 5789235558133472435ull}},
+ {{12759141281480968312ull, 9130259381418909739ull,
+ 4301509135239369288ull, 7236544447666840544ull}},
+ {{11337240583423822486ull, 11412824226773637174ull,
+ 5376886419049211610ull, 9045680559583550680ull}},
+ {{2474089346212501150ull, 11744701160160911138ull,
+ 3360554011905757256ull, 5653550349739719175ull}},
+ {{12315983719620402245ull, 14680876450201138922ull,
+ 18035750570164360282ull, 7066937937174648968ull}},
+ {{6171607612670726998ull, 9127723525896647845ull,
+ 4097944138995898737ull, 8833672421468311211ull}},
+ {{6163097767132898326ull, 17234042249753874663ull,
+ 255372077658742758ull, 5521045263417694507ull}},
+ {{3092186190488735004ull, 12319180775337567521ull,
+ 14154273152355592160ull, 6901306579272118133ull}},
+ {{8476918756538306658ull, 15398975969171959401ull,
+ 3857783385162326488ull, 8626633224090147667ull}},
+ {{16827289268904911422ull, 9624359980732474625ull,
+ 105271606512760103ull, 5391645765056342292ull}},
+ {{7199053530848975565ull, 7418763957488205378ull, 131589508140950129ull,
+ 6739557206320427865ull}},
+ {{18222188950415995264ull, 13885140965287644626ull,
+ 4776172903603575565ull, 8424446507900534831ull}},
+ {{16000554112437384944ull, 10984056112518471843ull,
+ 9902637092393316584ull, 5265279067437834269ull}},
+ {{15389006622119343276ull, 13730070140648089804ull,
+ 16989982383919033634ull, 6581598834297292836ull}},
+ {{789514203939627479ull, 7939215638955336448ull, 2790733906189240427ull,
+ 8226998542871616046ull}},
+ {{493446377462267175ull, 2656166765133391328ull,
+ 15579266746650438979ull, 5141874089294760028ull}},
+ {{616807971827833968ull, 17155266511698902872ull,
+ 1027339359603497107ull, 6427342611618450036ull}},
+ {{771009964784792460ull, 16832397121196240686ull,
+ 1284174199504371384ull, 8034178264523062545ull}},
+ {{14316939283272659000ull, 10520248200747650428ull,
+ 12331823920758701875ull, 5021361415326914090ull}},
+ {{17896174104090823750ull, 8538624232507175131ull,
+ 6191407864093601536ull, 6276701769158642613ull}},
+ {{17758531611686141783ull, 10673280290633968914ull,
+ 12350945848544389824ull, 7845877211448303266ull}},
+ {{15710768275731226518ull, 6670800181646230571ull,
+ 12331027173767631544ull, 4903673257155189541ull}},
+ {{15026774326236645244ull, 8338500227057788214ull,
+ 1578725911927375718ull, 6129591571443986927ull}},
+ {{9560095870941030747ull, 1199753246967459460ull,
+ 15808465445191383360ull, 7661989464304983658ull}},
+ {{15198431956192920025ull, 749845779354662162ull,
+ 14491976921672002504ull, 4788743415190614786ull}},
+ {{9774667908386374223ull, 937307224193327703ull, 8891599115235227322ull,
+ 5985929268988268483ull}},
+ {{7606648867055579875ull, 10395006067096435437ull,
+ 6502812875616646248ull, 7482411586235335604ull}},
+ {{7059998551123431374ull, 6496878791935272148ull,
+ 13287630084115179713ull, 4676507241397084752ull}},
+ {{8824998188904289217ull, 12732784508346478089ull,
+ 16609537605143974641ull, 5845634051746355940ull}},
+ {{15642933754557749425ull, 2080922580150933899ull,
+ 2315177932720416686ull, 7307042564682944926ull}},
+ {{14941981174769798878ull, 11824525262043443182ull,
+ 12117344452755296665ull, 9133803205853681157ull}},
+ {{4727052215803736395ull, 472799261136070133ull, 9879183292185754368ull,
+ 5708627003658550723ull}},
+ {{10520501288182058397ull, 590999076420087666ull,
+ 7737293096804805056ull, 7135783754573188404ull}},
+ {{3927254573372797188ull, 738748845525109583ull, 9671616371006006320ull,
+ 8919729693216485505ull}},
+ {{9372063135999080099ull, 461718028453193489ull,
+ 17573975277947223710ull, 5574831058260303440ull}},
+ {{16326764938426238028ull, 9800519572421267669ull,
+ 3520725023724478021ull, 6968538822825379301ull}},
+ {{6573398117750633822ull, 16862335483953972491ull,
+ 9012592298082985430ull, 8710673528531724126ull}},
+ {{1802530814380452187ull, 5927273659043844903ull,
+ 1021184167874477990ull, 5444170955332327579ull}},
+ {{16088221573257728946ull, 16632464110659581936ull,
+ 15111538265125261199ull, 6805213694165409473ull}},
+ {{1663532892862609566ull, 16178894119897089517ull,
+ 5054364776124412787ull, 8506517117706761842ull}},
+ {{3345551067252824931ull, 7805965815721986996ull,
+ 7770664003505145896ull, 5316573198566726151ull}},
+ {{4181938834066031164ull, 9757457269652483745ull,
+ 5101643985954044466ull, 6645716498208407689ull}},
+ {{9839109561009926858ull, 2973449550210828873ull,
+ 10988741000869943487ull, 8307145622760509611ull}},
+ {{17678658521699674047ull, 8775934996522849901ull,
+ 4562120116330020727ull, 5191966014225318507ull}},
+ {{8263265096842428846ull, 6358232727226174473ull,
+ 1090964126985138005ull, 6489957517781648134ull}},
+ {{14940767389480423962ull, 12559476927460105995ull,
+ 10587077195586198314ull, 8112446897227060167ull}},
+ {{7032136609211571024ull, 12461359098089954151ull,
+ 13534452274882455802ull, 5070279310766912604ull}},
+ {{4178484743087075876ull, 6353326835757666881ull,
+ 16918065343603069753ull, 6337849138458640755ull}},
+ {{9834791947286232749ull, 12553344563124471505ull,
+ 16535895661076449287ull, 7922311423073300944ull}},
+ {{17675960013122365228ull, 14763369379593876546ull,
+ 10334934788172780804ull, 4951444639420813090ull}},
+ {{12871577979548180727ull, 7467650782794067ull, 3695296448361200198ull,
+ 6189305799276016363ull}},
+ {{11477786456007838005ull, 9232706600333268392ull, 7434542024112343ull,
+ 7736632249095020454ull}},
+ {{7173616535004898753ull, 12687970652849374601ull,
+ 13839704644047233926ull, 4835395155684387783ull}},
+ {{13578706687183511346ull, 6636591279206942443ull,
+ 12687944786631654504ull, 6044243944605484729ull}},
+ {{12361697340552001278ull, 8295739099008678054ull,
+ 2024872928007404418ull, 7555304930756855912ull}},
+ {{3114374819417612895ull, 9796522955307811688ull,
+ 1265545580004627761ull, 4722065581723034945ull}},
+ {{3892968524272016118ull, 16857339712562152514ull,
+ 6193617993433172605ull, 5902581977153793681ull}},
+ {{14089582692194795956ull, 7236616585420526930ull,
+ 12353708510218853661ull, 7378227471442242101ull}},
+ {{8388606328388719137ull, 13657456750203046567ull,
+ 1607077582491403364ull, 9222784339302802627ull}},
+ {{12160407982884031317ull, 17759282505731679912ull,
+ 17145324553552984766ull, 5764240212064251641ull}},
+ {{15200509978605039146ull, 12975731095309824082ull,
+ 7596597636659067246ull, 7205300265080314552ull}},
+ {{9777265436401523124ull, 6996291832282504295ull,
+ 9495747045823834058ull, 9006625331350393190ull}},
+ {{13028319925392033809ull, 8984368413603953088ull,
+ 1323155885212508382ull, 5629140832093995744ull}},
+ {{16285399906740042261ull, 2007088480150165552ull,
+ 1653944856515635478ull, 7036426040117494680ull}},
+ {{1910005809715501210ull, 11732232637042482749ull,
+ 2067431070644544347ull, 8795532550146868350ull}},
+ {{3499596640285882208ull, 5026802388937857766ull,
+ 15127202474435003929ull, 5497207843841792718ull}},
+ {{13597867837212128568ull, 10895189004599710111ull,
+ 9685631056188979103ull, 6871509804802240898ull}},
+ {{12385648778087772806ull, 9007300237322249735ull,
+ 2883666783381448071ull, 8589387256002801123ull}},
+ {{14658559513945939860ull, 12547091675967487940ull,
+ 17943192804109262708ull, 5368367035001750701ull}},
+ {{18323199392432424825ull, 15683864594959359925ull,
+ 8593932949854414673ull, 6710458793752188377ull}},
+ {{9068941185258367319ull, 5769772688417036195ull,
+ 15354102205745406246ull, 8388073492190235471ull}},
+ {{3362245231572785623ull, 17441165985542811334ull,
+ 16513842906231960759ull, 5242545932618897169ull}},
+ {{13426178576320757836ull, 17189771463501126263ull,
+ 6807245577507787237ull, 6553182415773621462ull}},
+ {{12171037201973559391ull, 7652156274094244117ull,
+ 17732429008739509855ull, 8191478019717026827ull}},
+ {{9912741260447168572ull, 11700126698949984429ull,
+ 8776925121248499707ull, 5119673762323141767ull}},
+ {{17002612593986348618ull, 10013472355260092632ull,
+ 6359470383133236730ull, 6399592202903927209ull}},
+ {{2806521668773384157ull, 3293468407220339983ull,
+ 12561023997343933817ull, 7999490253629909011ull}},
+ {{8671605070624446954ull, 13587632800581182249ull,
+ 5544796989126264683ull, 4999681408518693132ull}},
+ {{15451192356707946597ull, 12372854982299089907ull,
+ 6930996236407830854ull, 6249601760648366415ull}},
+ {{14702304427457545342ull, 6242696691019086576ull,
+ 4052059277082400664ull, 7812002200810458019ull}},
+ {{9188940267160965839ull, 3901685431886929110ull, 226694038962806463ull,
+ 4882501375506536262ull}},
+ {{2262803297096431490ull, 265420771431273484ull, 9506739585558283887ull,
+ 6103126719383170327ull}},
+ {{2828504121370539363ull, 14166834019571255567ull,
+ 7271738463520466954ull, 7628908399228962909ull}},
+ {{8685344103497668958ull, 13465957280659422633ull,
+ 6850679548913985798ull, 4768067749518101818ull}},
+ {{15468366147799474101ull, 7609074563969502483ull,
+ 17786721472997258056ull, 5960084686897627272ull}},
+ {{14723771666321954722ull, 9511343204961878104ull,
+ 3786657767537020954ull, 7450105858622034091ull}},
+ {{9202357291451221702ull, 10556275521528561719ull, 60818095496944144ull,
+ 4656316161638771307ull}},
+ {{6891260595886639223ull, 13195344401910702149ull,
+ 13911080674653343892ull, 5820395202048464133ull}},
+ {{13225761763285686933ull, 16494180502388377686ull,
+ 3553792788034516153ull, 7275494002560580167ull}},
+ {{7308830167252332858ull, 6782667572703308396ull,
+ 18277299040325308904ull, 9094367503200725208ull}},
+ {{13791390891387483844ull, 4239167232939567747ull,
+ 11423311900203318065ull, 5683979689500453255ull}},
+ {{12627552595806966901ull, 9910645059601847588ull,
+ 9667453856826759677ull, 7104974611875566569ull}},
+ {{15784440744758708626ull, 16999992342929697389ull,
+ 16696003339460837500ull, 8881218264844458211ull}},
+ {{12171118474687886844ull, 1401623177476285060ull,
+ 8129159077949329486ull, 5550761415527786382ull}},
+ {{15213898093359858554ull, 10975401008700132133ull,
+ 938076810581886049ull, 6938451769409732978ull}},
+ {{5182314561417659481ull, 18330937279302553071ull,
+ 10395968050082133369ull, 8673064711762166222ull}},
+ {{10156475628527119032ull, 4539306771923013813ull,
+ 1885794012873945452ull, 5420665444851353889ull}},
+ {{17307280554086286694ull, 5674133464903767266ull,
+ 6968928534519819719ull, 6775831806064192361ull}},
+ {{12410728655753082559ull, 2480980812702321179ull,
+ 13322846686577162553ull, 8469789757580240451ull}},
+ {{5450862400631982647ull, 13079828054007420497ull,
+ 6020936169897032643ull, 5293618598487650282ull}},
+ {{11425264019217366213ull, 11738099049081887717ull,
+ 16749542249226066612ull, 6617023248109562852ull}},
+ {{446521968739544054ull, 14672623811352359647ull,
+ 2490183737823031649ull, 8271279060136953566ull}},
+ {{7196605258103296890ull, 2252860854454142923ull,
+ 15391422891421558493ull, 5169549412585595978ull}},
+ {{4384070554201733209ull, 7427762086495066558ull,
+ 10015906577422172308ull, 6461936765731994973ull}},
+ {{14703460229606942319ull, 9284702608118833197ull,
+ 17131569240205103289ull, 8077420957164993716ull}},
+ {{11495505652718032901ull, 17332154176142740508ull,
+ 1483858738273413747ull, 5048388098228121073ull}},
+ {{14369382065897541126ull, 17053506701751037731ull,
+ 6466509441269155088ull, 6310485122785151341ull}},
+ {{13350041563944538504ull, 2870139303479245548ull,
+ 12694822820013831765ull, 7888106403481439176ull}},
+ {{17567148014320112373ull, 4099680073888222419ull,
+ 7934264262508644853ull, 4930066502175899485ull}},
+ {{17347248999472752562ull, 9736286110787665928ull,
+ 14529516346563193970ull, 6162583127719874356ull}},
+ {{3237317175631389087ull, 2946985601629806603ull,
+ 18161895433203992463ull, 7703228909649842945ull}},
+ {{18164224299265475843ull, 8759395028659710982ull,
+ 4433655618111413433ull, 4814518068531151841ull}},
+ {{13481908337227068996ull, 15560929804252026632ull,
+ 10153755541066654695ull, 6018147585663939801ull}},
+ {{16852385421533836245ull, 14839476236887645386ull,
+ 17303880444760706273ull, 7522684482079924751ull}},
+ {{15144426906886035557ull, 2357143620413696510ull,
+ 17732454305616523277ull, 4701677801299952969ull}},
+ {{9707161596752768639ull, 7558115543944508542ull,
+ 8330509826738490384ull, 5877097251624941212ull}},
+ {{2910579959086184990ull, 9447644429930635678ull,
+ 10413137283423112980ull, 7346371564531176515ull}},
+ {{12861596985712507045ull, 11809555537413294597ull,
+ 8404735585851503321ull, 9182964455663970644ull}},
+ {{10344341125284010856ull, 463443183242227267ull,
+ 14476331778011965384ull, 5739352784789981652ull}},
+ {{8318740388177625665ull, 579303979052784084ull,
+ 18095414722514956730ull, 7174190980987477065ull}},
+ {{10398425485222032082ull, 9947502010670755913ull,
+ 8784210347861532200ull, 8967738726234346332ull}},
+ {{18028230974332239811ull, 6217188756669222445ull,
+ 14713503504268233433ull, 5604836703896466457ull}},
+ {{8700230662633136052ull, 12383171964263915961ull,
+ 4556821325053128079ull, 7006045879870583072ull}},
+ {{15486974346718807969ull, 10867278936902507047ull,
+ 5696026656316410099ull, 8757557349838228840ull}},
+ {{16596887994340336837ull, 4486206326350372952ull,
+ 3560016660197756312ull, 5473473343648893025ull}},
+ {{2299365919215869430ull, 5607757907937966191ull,
+ 9061706843674583294ull, 6841841679561116281ull}},
+ {{16709265454302000499ull, 16233069421777233546ull,
+ 15938819573020617021ull, 8552302099451395351ull}},
+ {{15054976927366138216ull, 12451511397824464918ull,
+ 16879291260778967494ull, 5345188812157122094ull}},
+ {{9595349122352896962ull, 6341017210425805340ull,
+ 11875742039118933560ull, 6681486015196402618ull}},
+ {{11994186402941121202ull, 7926271513032256675ull,
+ 5621305512043891142ull, 8351857518995503273ull}},
+ {{5190523492624506800ull, 342233677217772518ull,
+ 15042530991095901724ull, 5219910949372189545ull}},
+ {{15711526402635409307ull, 427792096522215647ull,
+ 4968105683587713443ull, 6524888686715236932ull}},
+ {{15027721984866873730ull, 14369798175934933271ull,
+ 6210132104484641803ull, 8156110858394046165ull}},
+ {{16309855268182877938ull, 6675280850745639342ull,
+ 6187175574516595079ull, 5097569286496278853ull}},
+ {{11163947048373821614ull, 3732415045004661274ull,
+ 12345655486573131753ull, 6371961608120348566ull}},
+ {{4731561773612501209ull, 9277204824683214497ull,
+ 6208697321361638883ull, 7964952010150435708ull}},
+ {{14486441154576283016ull, 3492410006213315108ull,
+ 13103807862705800110ull, 4978095006344022317ull}},
+ {{18108051443220353770ull, 13588884544621419693ull,
+ 2544701773100086425ull, 6222618757930027897ull}},
+ {{8800006248743278500ull, 3151047625494610905ull,
+ 7792563234802495936ull, 7778273447412534871ull}},
+ {{17029218951533018823ull, 1969404765934131815ull,
+ 11787881049392641816ull, 4861420904632834294ull}},
+ {{16674837670988885624ull, 2461755957417664769ull,
+ 5511479274886026462ull, 6076776130791042868ull}},
+ {{7008489033453943318ull, 12300566983626856770ull,
+ 6889349093607533077ull, 7595970163488803585ull}},
+ {{8991991664336102478ull, 9993697373980479433ull,
+ 15835058229573177933ull, 4747481352180502240ull}},
+ {{15851675598847516001ull, 17103807735902987195ull,
+ 1347078713256920800ull, 5934351690225627801ull}},
+ {{15202908480132007098ull, 2933015596169182378ull,
+ 6295534409998538905ull, 7417939612782034751ull}},
+ {{14113503818509892340ull, 13362349793674208746ull,
+ 10852238033890168671ull, 4636212257988771719ull}},
+ {{8418507736282589617ull, 12091251223665373029ull,
+ 8953611523935322935ull, 5795265322485964649ull}},
+ {{15134820688780624925ull, 10502378011154328382ull,
+ 15803700423346541573ull, 7244081653107455811ull}},
+ {{9695153824121005349ull, 17739658532370298382ull,
+ 15142939510755789062ull, 9055102066384319764ull}},
+ {{1447785121648240439ull, 6475600564304048585ull, 240965157367592356ull,
+ 5659438791490199853ull}},
+ {{6421417420487688453ull, 8094500705380060731ull,
+ 4912892465136878349ull, 7074298489362749816ull}},
+ {{3415085757182222662ull, 14729811900152463818ull,
+ 6141115581421097936ull, 8842873111703437270ull}},
+ {{6746114616666277068ull, 9206132437595289886ull,
+ 17673255293670349922ull, 5526795694814648293ull}},
+ {{17656015307687622143ull, 2284293510139336549ull,
+ 8256511061805773691ull, 6908494618518310367ull}},
+ {{8234961079327363966ull, 16690424942956334399ull,
+ 5708952808829829209ull, 8635618273147887959ull}},
+ {{12064379702220684335ull, 3513986561706627143ull,
+ 10485624533159725112ull, 5397261420717429974ull}},
+ {{10468788609348467515ull, 4392483202133283929ull,
+ 3883658629594880582ull, 6746576775896787468ull}},
+ {{17697671780112972297ull, 14713976039521380719ull,
+ 4854573286993600727ull, 8433220969870984335ull}},
+ {{17978573890211689542ull, 16113764052341944805ull,
+ 9951637332012082310ull, 5270763106169365209ull}},
+ {{8638159307482448215ull, 10918833028572655199ull,
+ 17051232683442490792ull, 6588453882711706511ull}},
+ {{6186013115925672365ull, 13648541285715818999ull,
+ 16702354835875725586ull, 8235567353389633139ull}},
+ {{10783787225094627084ull, 13142024321999774778ull,
+ 8133128763208634539ull, 5147229595868520712ull}},
+ {{4256361994513508047ull, 11815844384072330569ull,
+ 10166410954010793174ull, 6434036994835650890ull}},
+ {{9932138511569272963ull, 5546433443235637403ull,
+ 3484641655658715660ull, 8042546243544563613ull}},
+ {{3901743560517101650ull, 12689892938877049185ull,
+ 4483744044000391239ull, 5026591402215352258ull}},
+ {{9488865469073764966ull, 11250680155168923577ull,
+ 14828052091855264857ull, 6283239252769190322ull}},
+ {{16472767854769594112ull, 228292138678990759ull,
+ 9311693077964305264ull, 7854049065961487903ull}},
+ {{17213008936872078176ull, 142682586674369224ull,
+ 12737337201368772646ull, 4908780666225929939ull}},
+ {{3069517097380546104ull, 9401725270197737339ull,
+ 11309985483283577903ull, 6135975832782412424ull}},
+ {{17671954427007846342ull, 7140470569319783769ull,
+ 14137481854104472379ull, 7669969790978015530ull}},
+ {{4127442489238822108ull, 2156951096611170904ull,
+ 13447612177242683141ull, 4793731119361259706ull}},
+ {{5159303111548527635ull, 7307874889191351534ull,
+ 7586143184698578118ull, 5992163899201574633ull}},
+ {{15672500926290435351ull, 18358215648343965225ull,
+ 14094364999300610551ull, 7490204874001968291ull}},
+ {{2877784051290440239ull, 18391413807856060122ull,
+ 6503135115349187642ull, 4681378046251230182ull}},
+ {{12820602100967826106ull, 13765895222965299344ull,
+ 17352290931041260361ull, 5851722557814037727ull}},
+ {{16025752626209782633ull, 3372310973424460468ull,
+ 17078677645374187548ull, 7314653197267547159ull}},
+ {{1585446709052676675ull, 4215388716780575586ull,
+ 16736661038290346531ull, 9143316496584433949ull}},
+ {{5602590211585310826ull, 328774938774165789ull,
+ 12766256158145160534ull, 5714572810365271218ull}},
+ {{11614923782909026436ull, 9634340710322483044ull,
+ 6734448160826674859ull, 7143216012956589023ull}},
+ {{14518654728636283045ull, 7431239869475715901ull,
+ 3806374182605955670ull, 8929020016195736279ull}},
+ {{11380002214611370855ull, 32838899994934534ull, 9296512891769804150ull,
+ 5580637510122335174ull}},
+ {{5001630731409437761ull, 9264420661848443976ull,
+ 2397269077857479379ull, 6975796887652918968ull}},
+ {{6252038414261797201ull, 6968839808883167066ull,
+ 2996586347321849224ull, 8719746109566148710ull}},
+ {{8519210027341011155ull, 4355524880551979416ull,
+ 15707924522358319477ull, 5449841318478842943ull}},
+ {{10649012534176263944ull, 10056092119117362174ull,
+ 15023219634520511442ull, 6812301648098553679ull}},
+ {{4087893630865554121ull, 3346743112041926910ull,
+ 14167338524723251399ull, 8515377060123192099ull}},
+ {{16389991574573135038ull, 9009243472667286174ull,
+ 6548743568738338172ull, 5322110662576995062ull}},
+ {{11264117431361642989ull, 11261554340834107718ull,
+ 17409301497777698523ull, 6652638328221243827ull}},
+ {{4856774752347277929ull, 9465256907615246744ull,
+ 17149940853794735250ull, 8315797910276554784ull}},
+ {{3035484220217048706ull, 10527471585686917119ull,
+ 10718713033621709531ull, 5197373693922846740ull}},
+ {{17629413330553474594ull, 8547653463681258494ull,
+ 13398391292027136914ull, 6496717117403558425ull}},
+ {{12813394626337067434ull, 1461194792746797310ull,
+ 2912931059751757431ull, 8120896396754448032ull}},
+ {{3396685623033279243ull, 7830775773107830175ull,
+ 1820581912344848394ull, 5075560247971530020ull}},
+ {{18080915084073762765ull, 565097679530011910ull,
+ 2275727390431060493ull, 6344450309964412525ull}},
+ {{13377771818237427648ull, 5318058117839902792ull,
+ 7456345256466213520ull, 7930562887455515656ull}},
+ {{8361107386398392280ull, 3323786323649939245ull,
+ 4660215785291383450ull, 4956601804659697285ull}},
+ {{15063070251425378254ull, 13378104941417199864ull,
+ 10436955750041617216ull, 6195752255824621606ull}},
+ {{382093740572171202ull, 16722631176771499831ull,
+ 3822822650697245712ull, 7744690319780777008ull}},
+ {{7156337615498688857ull, 10451644485482187394ull,
+ 2389264156685778570ull, 4840431449862985630ull}},
+ {{18168794056228136880ull, 3841183569997958434ull,
+ 12209952232711999021ull, 6050539312328732037ull}},
+ {{13487620533430395291ull, 9413165480924835947ull,
+ 1427382235607835064ull, 7563174140410915047ull}},
+ {{6123919824180303105ull, 5883228425578022467ull,
+ 7809642924895978771ull, 4726983837756821904ull}},
+ {{3043213761797990977ull, 2742349513545140180ull,
+ 9762053656119973464ull, 5908729797196027380ull}},
+ {{3804017202247488722ull, 3427936891931425225ull,
+ 12202567070149966830ull, 7385912246495034225ull}},
+ {{13906725797473150211ull, 15977518612739304477ull,
+ 709075391202647412ull, 4616195154059396391ull}},
+ {{3548349191559274052ull, 1525154192214578981ull,
+ 14721402294285472978ull, 5770243942574245488ull}},
+ {{9047122507876480469ull, 11129814777122999534ull,
+ 18401752867856841222ull, 7212804928217806860ull}},
+ {{2085531097990824778ull, 4688896434548973610ull,
+ 4555447011111499912ull, 9016006160272258576ull}},
+ {{5915142954671653390ull, 2930560271593108506ull,
+ 2847154381944687445ull, 5635003850170161610ull}},
+ {{16617300730194342546ull, 8274886357918773536ull,
+ 12782315014285635114ull, 7043754812712702012ull}},
+ {{2324881839033376566ull, 1120235910543691113ull,
+ 15977893767857043893ull, 8804693515890877515ull}},
+ {{12982266195464330114ull, 3005990453303500897ull,
+ 7680340595696958481ull, 5502933447431798447ull}},
+ {{2392774689048248930ull, 8369174085056764026ull,
+ 4988739726193810197ull, 6878666809289748059ull}},
+ {{12214340398165086971ull, 15073153624748342936ull,
+ 1624238639314874842ull, 8598333511612185074ull}},
+ {{7633962748853179357ull, 14032407033895102239ull,
+ 5626835167999184680ull, 5373958444757615671ull}},
+ {{4930767417639086292ull, 17540508792368877799ull,
+ 2421857941571592946ull, 6717448055947019589ull}},
+ {{1551773253621469961ull, 12702263953606321441ull,
+ 7639008445391879087ull, 8396810069933774486ull}},
+ {{12499073329581888486ull, 14856443998645032756ull,
+ 162694259942536525ull, 5248006293708609054ull}},
+ {{15623841661977360607ull, 4735496943024127233ull,
+ 9426739861782946465ull, 6560007867135761317ull}},
+ {{5694744022189537047ull, 10531057197207546946ull,
+ 16395110845656070985ull, 8200009833919701646ull}},
+ {{8170901032295848558ull, 18111125794323186601ull,
+ 5635258260107656461ull, 5125006146199813529ull}},
+ {{14825312308797198602ull, 8803849187621819539ull,
+ 11655758843561958481ull, 6406257682749766911ull}},
+ {{13919954367569110348ull, 15616497502954662328ull,
+ 9958012536025060197ull, 8007822103437208639ull}},
+ {{8699971479730693968ull, 12066153948560357907ull,
+ 13141286862656744479ull, 5004888814648255399ull}},
+ {{6263278331235979556ull, 10471006417273059480ull,
+ 11814922559893542695ull, 6256111018310319249ull}},
+ {{7829097914044974444ull, 8477072003163936446ull, 933595144584764657ull,
+ 7820138772887899062ull}},
+ {{281500177850721124ull, 16827385048045930039ull,
+ 14418555020647641622ull, 4887586733054936913ull}},
+ {{14186933277595565117ull, 11810859273202636740ull,
+ 4188135720527388316ull, 6109483416318671142ull}},
+ {{17733666596994456396ull, 14763574091503295925ull,
+ 14458541687514011203ull, 7636854270398338927ull}},
+ {{13389384632335229200ull, 6921390797975866001ull,
+ 15954117582337338858ull, 4773033918998961829ull}},
+ {{2901672735136872787ull, 17875110534324608310ull,
+ 6107588922639509860ull, 5966292398748702287ull}},
+ {{12850462955775866792ull, 3897144094196208771ull,
+ 3022800134871999422ull, 7457865498435877859ull}},
+ {{5725696338146222793ull, 16270773114154794194ull,
+ 18030151148790857302ull, 4661165936522423661ull}},
+ {{16380492459537554299ull, 11115094355838716934ull,
+ 8702630880706407916ull, 5826457420653029577ull}},
+ {{11252243537567167066ull, 13893867944798396168ull,
+ 15489974619310397799ull, 7283071775816286971ull}},
+ {{14065304421958958833ull, 12755648912570607306ull,
+ 14750782255710609345ull, 9103839719770358714ull}},
+ {{13402501282151737175ull, 1054751542715547710ull,
+ 13830924928246518745ull, 5689899824856474196ull}},
+ {{7529754565834895660ull, 5930125446821822542ull,
+ 17288656160308148431ull, 7112374781070592745ull}},
+ {{188821170438843767ull, 2800970790099890274ull, 7775762145103021827ull,
+ 8890468476338240932ull}},
+ {{4729699249951665259ull, 17891507808308289085ull,
+ 14083223377544164449ull, 5556542797711400582ull}},
+ {{10523810080866969477ull, 8529326705103197644ull,
+ 8380657185075429754ull, 6945678497139250728ull}},
+ {{13154762601083711846ull, 1438286344524221247ull,
+ 10475821481344287193ull, 8682098121424063410ull}},
+ {{15139255653318401760ull, 12428144011396108039ull,
+ 11159074444267567399ull, 5426311325890039631ull}},
+ {{14312383548220614296ull, 10923493995817747145ull,
+ 9337157036907071345ull, 6782889157362549539ull}},
+ {{4055421379993604158ull, 18266053513199571836ull,
+ 7059760277706451277ull, 8478611446703186924ull}},
+ {{11758010399350778407ull, 13722126454963426349ull,
+ 13635722210421307856ull, 5299132154189491827ull}},
+ {{862454943906309296ull, 17152658068704282937ull,
+ 12432966744599246916ull, 6623915192736864784ull}},
+ {{5689754698310274524ull, 2994078512170802055ull,
+ 15541208430749058646ull, 8279893990921080980ull}},
+ {{10473625714085003434ull, 15706357125388914996ull,
+ 489883232363385845ull, 5174933744325675613ull}},
+ {{13092032142606254292ull, 5797888351453980033ull,
+ 5224040058881620211ull, 6468667180407094516ull}},
+ {{2529982122975654153ull, 2635674420890087138ull,
+ 6530050073602025264ull, 8085833975508868145ull}},
+ {{6192924845287171750ull, 1647296513056304461ull,
+ 15610496342069735550ull, 5053646234693042590ull}},
+ {{12352842075036352591ull, 11282492678175156384ull,
+ 10289748390732393629ull, 6317057793366303238ull}},
+ {{15441052593795440739ull, 268057792436781768ull,
+ 3638813451560716229ull, 7896322241707879048ull}},
+ {{9650657871122150462ull, 2473379129486682557ull,
+ 2274258407225447643ull, 4935201401067424405ull}},
+ {{16675008357330075982ull, 16926781967140516908ull,
+ 7454509027459197457ull, 6169001751334280506ull}},
+ {{2397016372953043361ull, 7323419403643482424ull, 94764247469221014ull,
+ 7711252189167850633ull}},
+ {{1498135233095652101ull, 18412195182559340227ull,
+ 11588442700736732893ull, 4819532618229906645ull}},
+ {{15707727096651728838ull, 9180185922917011571ull,
+ 650495320638752405ull, 6024415772787383307ull}},
+ {{15022972852387273143ull, 16086918422073652368ull,
+ 14648177206080604218ull, 7530519715984229133ull}},
+ {{9389358032742045715ull, 14666010032223420634ull,
+ 11460953763014071588ull, 4706574822490143208ull}},
+ {{2513325504072781335ull, 18332512540279275793ull,
+ 14326192203767589485ull, 5883218528112679010ull}},
+ {{7753342898518364573ull, 9080582620066931029ull,
+ 8684368217854711049ull, 7354023160140848763ull}},
+ {{14303364641575343620ull, 15962414293511051690ull,
+ 6243774253891000907ull, 9192528950176060954ull}},
+ {{13551288919411977667ull, 7670665924230713354ull,
+ 8514044927109263471ull, 5745330593860038096ull}},
+ {{7715739112410196275ull, 4976646386861003789ull,
+ 10642556158886579339ull, 7181663242325047620ull}},
+ {{14256359908940133248ull, 1609121965148866832ull,
+ 13303195198608224174ull, 8977079052906309525ull}},
+ {{8910224943087583280ull, 14840759283500205482ull,
+ 10620340008343834060ull, 5610674408066443453ull}},
+ {{1914409142004703292ull, 104205030665705237ull,
+ 17887111028857180480ull, 7013343010083054316ull}},
+ {{7004697445933267019ull, 130256288332131546ull, 3912144712361923984ull,
+ 8766678762603817896ull}},
+ {{8989621922135679791ull, 81410180207582216ull, 2445090445226202490ull,
+ 5479174226627386185ull}},
+ {{11237027402669599738ull, 9325134762114253578ull,
+ 7668049074960141016ull, 6848967783284232731ull}},
+ {{4822912216482223865ull, 11656418452642816973ull,
+ 4973375325272788366ull, 8561209729105290914ull}},
+ {{5320163144515083868ull, 2673575514474372704ull,
+ 7720045596722880633ull, 5350756080690806821ull}},
+ {{6650203930643854835ull, 7953655411520353784ull,
+ 14261743014330988695ull, 6688445100863508526ull}},
+ {{8312754913304818543ull, 5330383245973054326ull,
+ 8603806731058960061ull, 8360556376079385658ull}},
+ {{583785802388123686ull, 5637332537946852906ull, 9989065225339237942ull,
+ 5225347735049616036ull}},
+ {{9953104289839930415ull, 16270037709288341940ull,
+ 12486331531674047427ull, 6531684668812020045ull}},
+ {{12441380362299913019ull, 15725861118183039521ull,
+ 1772856359310395572ull, 8164605836015025057ull}},
+ {{858333698796363781ull, 605291162009623893ull, 12637250270637466993ull,
+ 5102878647509390660ull}},
+ {{5684603141922842630ull, 5368299970939417770ull,
+ 15796562838296833741ull, 6378598309386738325ull}},
+ {{16329125964258329095ull, 11322060982101660116ull,
+ 5910645492588878464ull, 7973247886733422907ull}},
+ {{982331690806679877ull, 7076288113813537573ull, 1388310423654355088ull,
+ 4983279929208389317ull}},
+ {{5839600631935737750ull, 8845360142266921966ull,
+ 6347074047995331764ull, 6229099911510486646ull}},
+ {{16522872826774447995ull, 11056700177833652457ull,
+ 17157214596848940513ull, 7786374889388108307ull}},
+ {{3409266489092948141ull, 18439652657214502546ull,
+ 8417416113816893868ull, 4866484305867567692ull}},
+ {{13484955148220960984ull, 4602821747808576566ull,
+ 10521770142271117336ull, 6083105382334459615ull}},
+ {{7632821898421425422ull, 5753527184760720708ull,
+ 8540526659411508766ull, 7603881727918074519ull}},
+ {{13993885723368166697ull, 17431012545757614154ull,
+ 12255358189773274834ull, 4752426079948796574ull}},
+ {{8268985117355432563ull, 12565393645342241885ull,
+ 6095825700361817735ull, 5940532599935995718ull}},
+ {{14947917415121678608ull, 11095056038250414452ull,
+ 16843154162307047977ull, 7425665749919994647ull}},
+ {{119076347596273322ull, 16880996265427177ull, 17444500379082986842ull,
+ 4641041093699996654ull}},
+ {{4760531452922729557ull, 9244473282186559779ull,
+ 12582253436998957744ull, 5801301367124995818ull}},
+ {{1338978297726024042ull, 11555591602733199724ull,
+ 6504444759393921372ull, 7251626708906244773ull}},
+ {{1673722872157530052ull, 14444489503416499655ull,
+ 12742241967669789619ull, 9064533386132805966ull}},
+ {{7963605822739538139ull, 6721962930421618332ull,
+ 3352215211366230608ull, 5665333366333003729ull}},
+ {{9954507278424422673ull, 8402453663027022915ull,
+ 8801955032635176164ull, 7081666707916254661ull}},
+ {{7831448079603140437ull, 10503067078783778644ull,
+ 15614129809221358109ull, 8852083384895318326ull}},
+ {{14118027086606738581ull, 8870259933453555604ull,
+ 5147145112335960914ull, 5532552115559573954ull}},
+ {{17647533858258423227ull, 1864452879962168697ull,
+ 15657303427274726951ull, 6915690144449467442ull}},
+ {{8224359267540865321ull, 16165624155234874584ull,
+ 10348257247238632880ull, 8644612680561834303ull}},
+ {{5140224542213040826ull, 10103515097021796615ull,
+ 13385189807165227406ull, 5402882925351146439ull}},
+ {{1813594659338913128ull, 3406021834422469961ull,
+ 12119801240529146354ull, 6753603656688933049ull}},
+ {{6878679342601029314ull, 13480899329882863259ull,
+ 1314693495379269230ull, 8442004570861166312ull}},
+ {{1993331579911949370ull, 3813876062749401633ull, 821683434612043269ull,
+ 5276252856788228945ull}},
+ {{7103350493317324616ull, 9379031096864139945ull,
+ 5638790311692441990ull, 6595316070985286181ull}},
+ {{13490874135074043674ull, 2500416834225399123ull,
+ 11660173908042940392ull, 8244145088731607726ull}},
+ {{6125953325207583344ull, 1562760521390874452ull,
+ 2675922674099449841ull, 5152590680457254829ull}},
+ {{7657441656509479180ull, 6565136670165980969ull,
+ 7956589361051700205ull, 6440738350571568536ull}},
+ {{14183488089064236879ull, 12818106856134864115ull,
+ 9945736701314625256ull, 8050922938214460670ull}},
+ {{6558837046451454098ull, 8011316785084290072ull,
+ 1604399419894252881ull, 5031826836384037919ull}},
+ {{8198546308064317622ull, 14625831999782750494ull,
+ 15840557330149979813ull, 6289783545480047398ull}},
+ {{1024810848225621219ull, 4447231944446274406ull,
+ 10577324625832698959ull, 7862229431850059248ull}},
+ {{14475564835423176974ull, 9697048992920003359ull,
+ 6610827891145436849ull, 4913893394906287030ull}},
+ {{13482770025851583314ull, 16732997259577392103ull,
+ 17486906900786571869ull, 6142366743632858787ull}},
+ {{12241776513887091238ull, 7081188519189576417ull,
+ 17246947607555826933ull, 7677958429541073484ull}},
+ {{733581293538350168ull, 6731585833707179213ull, 1555970217867616025ull,
+ 4798724018463170928ull}},
+ {{5528662635350325614ull, 13026168310561361920ull,
+ 1944962772334520031ull, 5998405023078963660ull}},
+ {{6910828294187907017ull, 11671024369774314496ull,
+ 2431203465418150039ull, 7498006278848704575ull}},
+ {{4319267683867441886ull, 14211919258750028416ull,
+ 8437031193527425630ull, 4686253924280440359ull}},
+ {{5399084604834302357ull, 8541527036582759712ull,
+ 5934602973481894134ull, 5857817405350550449ull}},
+ {{6748855756042877946ull, 1453536758873673832ull,
+ 12029939735279755572ull, 7322271756688188061ull}},
+ {{8436069695053597433ull, 1816920948592092290ull,
+ 1202366613817530753ull, 9152839695860235077ull}},
+ {{9884229577835886300ull, 12664790638938527441ull,
+ 3057322142849650672ull, 5720524809912646923ull}},
+ {{16966972990722245779ull, 15830988298673159301ull,
+ 17656710733844227052ull, 7150656012390808653ull}},
+ {{7373658183120643511ull, 1341991299631897511ull,
+ 8235830362023120104ull, 8938320015488510817ull}},
+ {{11526065392091484051ull, 838744562269935944ull,
+ 16676609022332919825ull, 5586450009680319260ull}},
+ {{14407581740114355063ull, 5660116721264807834ull,
+ 2399017204206598165ull, 6983062512100399076ull}},
+ {{8786105138288168021ull, 11686831920008397697ull,
+ 2998771505258247706ull, 8728828140125498845ull}},
+ {{17020530757498574773ull, 11915955968432636464ull,
+ 4180075200000098768ull, 5455517587578436778ull}},
+ {{2828919373163666850ull, 14894944960540795581ull,
+ 14448466036854899268ull, 6819396984473045972ull}},
+ {{8147835234881971467ull, 171937126966442860ull,
+ 18060582546068624086ull, 8524246230591307465ull}},
+ {{14315769058656007975ull, 13942518759636190499ull,
+ 4370335063651808197ull, 5327653894119567166ull}},
+ {{13283025304892622065ull, 3593090394263074412ull,
+ 14686290866419536055ull, 6659567367649458957ull}},
+ {{16603781631115777581ull, 18326421048111006727ull,
+ 4522805527742256356ull, 8324459209561823697ull}},
+ {{17294892547088442844ull, 2230641118214603396ull,
+ 14355968500907379983ull, 5202787005976139810ull}},
+ {{3171871610151001939ull, 16623359453050417958ull,
+ 8721588589279449170ull, 6503483757470174763ull}},
+ {{13188211549543528231ull, 11555827279458246639ull,
+ 6290299718171923559ull, 8129354696837718454ull}},
+ {{15160161246105787001ull, 14139921077302486005ull,
+ 17766495379139615936ull, 5080846685523574033ull}},
+ {{5115143502350070039ull, 17674901346628107507ull,
+ 8373061168642356208ull, 6351058356904467542ull}},
+ {{1782243359510199645ull, 3646882609575582768ull,
+ 1242954423948169453ull, 7938822946130584428ull}},
+ {{1113902099693874778ull, 4585144640198433182ull,
+ 10000218551822381716ull, 4961764341331615267ull}},
+ {{10615749661472119280ull, 5731430800248041477ull,
+ 7888587171350589241ull, 6202205426664519084ull}},
+ {{17881373095267537004ull, 11775974518737439750ull,
+ 9860733964188236551ull, 7752756783330648855ull}},
+ {{6564172166114822724ull, 14277513101851981700ull,
+ 13080487755258729700ull, 4845472989581655534ull}},
+ {{8205215207643528405ull, 17846891377314977125ull,
+ 7127237657218636317ull, 6056841236977069418ull}},
+ {{14868205027981798410ull, 8473556166361557694ull,
+ 18132419108378071205ull, 7571051546221336772ull}},
+ {{4680942124061236102ull, 7601815613189667511ull,
+ 2109389905881518695ull, 4731907216388335483ull}},
+ {{1239491636649157224ull, 4890583498059696485ull,
+ 16471795437634062081ull, 5914884020485419353ull}},
+ {{6161050564238834434ull, 10724915391002008510ull,
+ 6754686241760413889ull, 7393605025606774192ull}},
+ {{17685714657931435233ull, 18232287165444725078ull,
+ 4221678901100258680ull, 4621003141004233870ull}},
+ {{12883771285559518233ull, 4343614883096354732ull,
+ 14500470663230099159ull, 5776253926255292337ull}},
+ {{16104714106949397792ull, 817832585443055511ull,
+ 4290530273755460237ull, 7220317407819115422ull}},
+ {{15519206615259359335ull, 5633976750231207293ull,
+ 14586534879049101104ull, 9025396759773894277ull}},
+ {{12005347143750793537ull, 3521235468894504558ull,
+ 11422427308619382142ull, 5640872974858683923ull}},
+ {{5783311892833716113ull, 13624916372972906506ull,
+ 9666348117346839773ull, 7051091218573354904ull}},
+ {{16452511902896920949ull, 3196087410933969420ull,
+ 12082935146683549717ull, 8813864023216693630ull}},
+ {{1059447902455799785ull, 4303397641047424840ull,
+ 2940148448249830669ull, 5508665014510433519ull}},
+ {{1324309878069749732ull, 9990933069736668954ull,
+ 17510243615594452048ull, 6885831268138041898ull}},
+ {{10878759384441962972ull, 12488666337170836192ull,
+ 12664432482638289252ull, 8607289085172552373ull}},
+ {{6799224615276226858ull, 17028788497586548428ull,
+ 10221113310862624734ull, 5379555678232845233ull}},
+ {{8499030769095283572ull, 12062613585128409727ull,
+ 17388077657005668822ull, 6724444597791056541ull}},
+ {{6012102442941716561ull, 5854894944555736351ull,
+ 7900039015974922316ull, 8405555747238820677ull}},
+ {{10675093054479654707ull, 12882681377202111027ull,
+ 7243367394198020399ull, 5253472342024262923ull}},
+ {{8732180299672180479ull, 11491665703075250880ull,
+ 4442523224320137595ull, 6566840427530328654ull}},
+ {{10915225374590225599ull, 9752896110416675696ull,
+ 14776526067254947802ull, 8208550534412910817ull}},
+ {{6822015859118891000ull, 10707246087437810214ull,
+ 2317799764393260520ull, 5130344084008069261ull}},
+ {{17750891860753389558ull, 13384057609297262767ull,
+ 7508935723918963554ull, 6412930105010086576ull}},
+ {{17576928807514349043ull, 7506699974766802651ull,
+ 9386169654898704443ull, 8016162631262608220ull}},
+ {{8679737495482774200ull, 2385844475015557705ull,
+ 15089728071166466085ull, 5010101644539130137ull}},
+ {{15461357887780855654ull, 7593991612196835035ull,
+ 5027102033675918894ull, 6262627055673912672ull}},
+ {{14715011341298681663ull, 269117478391267986ull,
+ 6283877542094898618ull, 7828283819592390840ull}},
+ {{13808568106739063944ull, 4779884442421930395ull,
+ 3927423463809311636ull, 4892677387245244275ull}},
+ {{12649024114996442025ull, 5974855553027412994ull,
+ 297593311334251641ull, 6115846734056555344ull}},
+ {{6587908106890776724ull, 12080255459711654147ull,
+ 371991639167814551ull, 7644808417570694180ull}},
+ {{1811599557593041500ull, 14467688689960865698ull,
+ 9455866811334659902ull, 4778005260981683862ull}},
+ {{11487871483846077683ull, 8861238825596306314ull,
+ 2596461477313549070ull, 5972506576227104828ull}},
+ {{5136467317952821296ull, 1853176495140607085ull,
+ 3245576846641936338ull, 7465633220283881035ull}},
+ {{5516135082934207262ull, 5769921327890267332ull,
+ 18169386593647067875ull, 4666020762677425646ull}},
+ {{6895168853667759078ull, 2600715641435446261ull,
+ 13488361205204059036ull, 5832525953346782058ull}},
+ {{13230647085512086751ull, 3250894551794307826ull,
+ 7637079469650297987ull, 7290657441683477573ull}},
+ {{7314936820035332631ull, 17898676245025048495ull,
+ 14158035355490260387ull, 9113321802104346966ull}},
+ {{11489364540163164750ull, 8880829643926961357ull,
+ 4237086078754024838ull, 5695826126315216854ull}},
+ {{526647619921792226ull, 1877665018053925889ull,
+ 14519729635297306856ull, 7119782657894021067ull}},
+ {{5269995543329628186ull, 2347081272567407361ull,
+ 13537976025694245666ull, 8899728322367526334ull}},
+ {{14822962260649487377ull, 6078611813782017504ull,
+ 3849548997631515637ull, 5562330201479703959ull}},
+ {{81958752102307605ull, 12209950785654909785ull, 200250228612006642ull,
+ 6952912751849629949ull}},
+ {{4714134458555272410ull, 6039066445213861423ull,
+ 4861998804192396207ull, 8691140939812037436ull}},
+ {{9863863064238127112ull, 10691945555899745245ull,
+ 12262121289475023437ull, 5431963087382523397ull}},
+ {{16941514848725046794ull, 17976617963302069460ull,
+ 1492593556561615584ull, 6789953859228154247ull}},
+ {{2730149487196756876ull, 4024028380418035210ull,
+ 15700800000984183193ull, 8487442324035192808ull}},
+ {{6318029447925360952ull, 14044232783829741766ull,
+ 9813000000615114495ull, 5304651452521995505ull}},
+ {{17120908846761476998ull, 12943604961359789303ull,
+ 16877936019196281023ull, 6630814315652494381ull}},
+ {{16789450040024458343ull, 11567820183272348725ull,
+ 7262361968713187567ull, 8288517894565617977ull}},
+ {{12799249284228980417ull, 14147416642186299809ull,
+ 16068191276514211989ull, 5180323684103511235ull}},
+ {{2164003550004061809ull, 3849212747450711050ull,
+ 15473553077215377083ull, 6475404605129389044ull}},
+ {{11928376474359853069ull, 199829915886000908ull, 895197272809669738ull,
+ 8094255756411736306ull}},
+ {{16678607333329683976ull, 4736579715856138471ull,
+ 5171184313933431490ull, 5058909847757335191ull}},
+ {{16236573148234717066ull, 15144096681674948897ull,
+ 1852294373989401458ull, 6323637309696668989ull}},
+ {{6460658380011232621ull, 9706748815238910314ull,
+ 6927053985914139727ull, 7904546637120836236ull}},
+ {{8649597505934408292ull, 12984247037165400802ull,
+ 13552780778051113137ull, 4940341648200522647ull}},
+ {{1588624845563234557ull, 2395250741174587291ull,
+ 12329289954136503518ull, 6175427060250653309ull}},
+ {{15820839112236206908ull, 12217435463323009921ull,
+ 1576554387388465685ull, 7719283825313316637ull}},
+ {{2970495417506547462ull, 9941740173790575153ull,
+ 3291189501331485005ull, 4824552390820822898ull}},
+ {{8324805290310572231ull, 17038861235665606845ull,
+ 13337358913519132064ull, 6030690488526028622ull}},
+ {{15017692631315603193ull, 2851832470872456940ull,
+ 7448326605044139273ull, 7538363110657535778ull}},
+ {{162685857717476188ull, 13311610340363755348ull,
+ 9266890146579974949ull, 4711476944160959861ull}},
+ {{203357322146845234ull, 2804454870172530473ull,
+ 16195298701652356591ull, 5889346180201199826ull}},
+ {{4865882671110944447ull, 17340626642997826803ull,
+ 11020751340210669930ull, 7361682725251499783ull}},
+ {{1470667320461292654ull, 12452411266892507696ull,
+ 9164253156835949509ull, 9202103406564374729ull}},
+ {{919167075288307909ull, 10088600051021511262ull,
+ 17256873269090938203ull, 5751314629102734205ull}},
+ {{10372330880965160694ull, 7999064045349501173ull,
+ 7736033531081509042ull, 7189143286378417757ull}},
+ {{17577099619633838772ull, 775458019832100658ull,
+ 14281727932279274207ull, 8986429107973022196ull}},
+ {{15597373280698537137ull, 7402190290036144767ull,
+ 18149451994529322187ull, 5616518192483138872ull}},
+ {{14885030582445783517ull, 4641051844117793055ull,
+ 4240070919452101118ull, 7020647740603923591ull}},
+ {{13994602209629841492ull, 15024686842002017127ull,
+ 688402630887738493ull, 8775809675754904489ull}},
+ {{15664155408659732788ull, 11696272285464954656ull,
+ 11959466690373306318ull, 5484881047346815305ull}},
+ {{1133450187115114369ull, 5396968319976417513ull,
+ 1114275307684469186ull, 6856101309183519132ull}},
+ {{6028498752321280866ull, 15969582436825297699ull,
+ 1392844134605586482ull, 8570126636479398915ull}},
+ {{1461968710987106589ull, 14592675041443198966ull,
+ 17011428648624349215ull, 5356329147799624321ull}},
+ {{11050832925588659044ull, 13629157783376610803ull,
+ 7429227755498272807ull, 6695411434749530402ull}},
+ {{9201855138558435901ull, 12424761210793375600ull, 63162657518065201ull,
+ 8369264293436913003ull}},
+ {{5751159461599022439ull, 847946729104777894ull,
+ 16180377725444648415ull, 5230790183398070626ull}},
+ {{16412321363853553856ull, 14894991466663136079ull,
+ 11002100119951034710ull, 6538487729247588283ull}},
+ {{15903715686389554416ull, 9395367296474144291ull,
+ 9140939131511405484ull, 8173109661559485354ull}},
+ {{7633979294779777558ull, 15095476597151115990ull,
+ 10324772975622016331ull, 5108193538474678346ull}},
+ {{319102081619946140ull, 14257659728011507084ull,
+ 3682594182672744606ull, 6385241923093347933ull}},
+ {{398877602024932674ull, 8598702623159608047ull, 9214928746768318662ull,
+ 7981552403866684916ull}},
+ {{7166827528906664778ull, 762503121047367125ull,
+ 14982702503584974972ull, 4988470252416678072ull}},
+ {{13570220429560718876ull, 953128901309208906ull, 281634055771667099ull,
+ 6235587815520847591ull}},
+ {{7739403500096122787ull, 15026469181918674845ull,
+ 14187100624996747585ull, 7794484769401059488ull}},
+ {{7142970196773770694ull, 2474014211058089922ull,
+ 8866937890622967241ull, 4871552980875662180ull}},
+ {{18152084782821989175ull, 7704203782250000306ull,
+ 11083672363278709051ull, 6089441226094577725ull}},
+ {{13466733941672710661ull, 5018568709385112479ull, 19532398816222602ull,
+ 7611801532618222157ull}},
+ {{15334237741186526019ull, 7748291461793083203ull,
+ 2318050758473833078ull, 4757375957886388848ull}},
+ {{14556111158055769620ull, 461992290386578196ull,
+ 2897563448092291348ull, 5946719947357986060ull}},
+ {{18195138947569712025ull, 577490362983222745ull,
+ 3621954310115364185ull, 7433399934197482575ull}},
+ {{4454432814589988160ull, 11890146522932983976ull,
+ 9181250471463184471ull, 4645874958873426609ull}},
+ {{5568041018237485200ull, 10250997135238842066ull,
+ 16088249107756368493ull, 5807343698591783261ull}},
+ {{16183423309651632307ull, 17425432437475940486ull,
+ 6275253329413296904ull, 7259179623239729077ull}},
+ {{11005907100209764576ull, 3335046473135373992ull,
+ 12455752680194009035ull, 9073974529049661346ull}},
+ {{6878691937631102860ull, 18225305110205466409ull,
+ 12396531443548643550ull, 5671234080656038341ull}},
+ {{13210050940466266479ull, 13558259350902057203ull,
+ 1660606249153640726ull, 7089042600820047927ull}},
+ {{11900877657155445195ull, 7724452151772795696ull,
+ 15910815866724214620ull, 8861303251025059908ull}},
+ {{7438048535722153247ull, 14051154631712773118ull,
+ 720887879847858329ull, 5538314531890662443ull}},
+ {{74188632797915751ull, 3728885234358802686ull, 14736167905091986624ull,
+ 6922893164863328053ull}},
+ {{9316107827852170496ull, 4661106542948503357ull,
+ 4585151826082819568ull, 8653616456079160067ull}},
+ {{8128410401621300512ull, 2913191589342814598ull, 559876882088068278ull,
+ 5408510285049475042ull}},
+ {{937140965171849832ull, 12864861523533294056ull,
+ 9923218139464861155ull, 6760637856311843802ull}},
+ {{1171426206464812290ull, 11469390885989229666ull,
+ 3180650637476300636ull, 8450797320389804753ull}},
+ {{5343827397467895585ull, 16391741340598044349ull,
+ 13517121694491157657ull, 5281748325243627970ull}},
+ {{11291470265262257386ull, 6654618620465391724ull,
+ 7673030081259171264ull, 6602185406554534963ull}},
+ {{14114337831577821732ull, 8318273275581739655ull,
+ 4979601583146576176ull, 8252731758193168704ull}},
+ {{15738990172377220439ull, 5198920797238587284ull,
+ 3112250989466610110ull, 5157957348870730440ull}},
+ {{1226993641761973932ull, 15722023033403009914ull,
+ 3890313736833262637ull, 6447446686088413050ull}},
+ {{10757114089057243223ull, 5817470736471598680ull,
+ 14086264207896354105ull, 8059308357610516312ull}},
+ {{6723196305660777015ull, 15165134256363218935ull,
+ 8803915129935221315ull, 5037067723506572695ull}},
+ {{3792309363648583364ull, 14344731802026635765ull,
+ 6393207893991638740ull, 6296334654383215869ull}},
+ {{9352072722988117109ull, 17930914752533294706ull,
+ 12603195885916936329ull, 7870418317979019836ull}},
+ {{10456731470294961097ull, 4289292692692227335ull,
+ 17100369465552861014ull, 4919011448736887397ull}},
+ {{8459228319441313468ull, 14584987902720059977ull,
+ 7540403776658912555ull, 6148764310921109247ull}},
+ {{15185721417729029738ull, 13619548859972687067ull,
+ 4813818702396252790ull, 7685955388651386559ull}},
+ {{7185232876866949635ull, 3900532019055541513ull,
+ 9926165716638739850ull, 4803722117907116599ull}},
+ {{13593227114511074947ull, 14099037060674202699ull,
+ 7796021127371036908ull, 6004652647383895749ull}},
+ {{12379847874711455780ull, 17623796325842753374ull,
+ 14356712427641184039ull, 7505815809229869686ull}},
+ {{3125718903267271959ull, 17932401731292802715ull,
+ 4361259248848352120ull, 4691134880768668554ull}},
+ {{17742206684366253660ull, 3968758090406451777ull,
+ 14674946097915215959ull, 5863918600960835692ull}},
+ {{8342700300175653363ull, 349261594580676818ull,
+ 18343682622394019949ull, 7329898251201044615ull}},
+ {{1205003338364790896ull, 5048263011653233927ull,
+ 18317917259565137032ull, 9162372814001305769ull}},
+ {{7670656114119076166ull, 3155164382283271204ull,
+ 4531169259587128789ull, 5726483008750816106ull}},
+ {{9588320142648845207ull, 8555641496281476909ull,
+ 14887333611338686794ull, 7158103760938520132ull}},
+ {{16597086196738444413ull, 1471179833497070328ull,
+ 162422940463806877ull, 8947629701173150166ull}},
+ {{10373178872961527758ull, 3225330405149362907ull,
+ 13936572393072043010ull, 5592268563233218853ull}},
+ {{8354787572774521794ull, 13255035043291479442ull,
+ 3585657436057890050ull, 6990335704041523567ull}},
+ {{1220112429113376434ull, 7345421767259573495ull,
+ 18317129850354526275ull, 8737919630051904458ull}},
+ {{7680099295836942128ull, 2285045595323539482ull,
+ 16059892174898966826ull, 5461199768782440286ull}},
+ {{376752082941401851ull, 12079679031009200161ull,
+ 10851493181768932724ull, 6826499710978050358ull}},
+ {{5082626122104140218ull, 15099598788761500201ull,
+ 4340994440356390097ull, 8533124638722562948ull}},
+ {{14705856372383557396ull, 2519720215334855769ull,
+ 11936493562077519619ull, 5333202899201601842ull}},
+ {{4547262410197283033ull, 16984708324450733424ull,
+ 5697244915742123715ull, 6666503624002002303ull}},
+ {{5684078012746603792ull, 16619199387136028876ull,
+ 2509870126250266740ull, 8333129530002502879ull}},
+ {{12775920794821403178ull, 1163627580105242239ull,
+ 8486197856547498569ull, 5208205956251564299ull}},
+ {{11358214975099366068ull, 6066220493558940703ull,
+ 5996061302256985307ull, 6510257445314455374ull}},
+ {{9586082700446819681ull, 2971089598521287975ull,
+ 16718448664676007442ull, 8137821806643069217ull}},
+ {{12908830715420344157ull, 6468617017503192888ull,
+ 3531501387781422795ull, 5086138629151918261ull}},
+ {{16136038394275430196ull, 3474085253451603206ull,
+ 9026062753154166398ull, 6357673286439897826ull}},
+ {{10946675955989511937ull, 13565978603669279816ull,
+ 2059206404587932189ull, 7947091608049872283ull}},
+ {{6841672472493444961ull, 10784579636506993837ull,
+ 17427905067363315282ull, 4966932255031170176ull}},
+ {{13163776609044194105ull, 4257352508778966488ull,
+ 3338137260494592487ull, 6208665318788962721ull}},
+ {{16454720761305242631ull, 710004617546320206ull,
+ 8784357594045628513ull, 7760831648486203401ull}},
+ {{5672514457388388741ull, 11972967932034919889ull,
+ 17019438542346987580ull, 4850519780303877125ull}},
+ {{11702329090162873830ull, 14966209915043649861ull,
+ 7439240122651570763ull, 6063149725379846407ull}},
+ {{792853307421428575ull, 14096076375377174423ull,
+ 4687364134887075550ull, 7578937156724808009ull}},
+ {{7413062344779474715ull, 4198361716183346110ull,
+ 14458817630372891979ull, 4736835722953005005ull}},
+ {{42955894119567586ull, 636266126801794734ull, 4238463982683951262ull,
+ 5921044653691256257ull}},
+ {{9277066904504235291ull, 10018704695357019225ull,
+ 9909765996782326981ull, 7401305817114070321ull}},
+ {{17327381861383616817ull, 8567533443811830967ull,
+ 17722818794057424123ull, 4625816135696293950ull}},
+ {{17047541308302133117ull, 6097730786337400805ull,
+ 12930151455717004346ull, 5782270169620367438ull}},
+ {{7474368580095502684ull, 16845535519776526815ull,
+ 6939317282791479624ull, 7227837712025459298ull}},
+ {{4731274706691990451ull, 2610175326011106903ull,
+ 17897518640344125339ull, 9034797140031824122ull}},
+ {{9874575719323575888ull, 17772260643252799478ull,
+ 15797635168642466240ull, 5646748212519890076ull}},
+ {{3119847612299694052ull, 3768581730356447732ull,
+ 1300299887093531185ull, 7058435265649862596ull}},
+ {{3899809515374617565ull, 9322413181372947569ull,
+ 1625374858866913981ull, 8823044082062328245ull}},
+ {{13966595993177605738ull, 8132351247571786182ull,
+ 3321702296005515190ull, 5514402551288955153ull}},
+ {{8234872954617231365ull, 942067022609956920ull, 8763813888434281892ull,
+ 6893003189111193941ull}},
+ {{10293591193271539206ull, 1177583778262446150ull,
+ 15566453378970240269ull, 8616253986388992426ull}},
+ {{1821808477367324100ull, 3041832870627722796ull,
+ 14340719380283788072ull, 5385158741493120266ull}},
+ {{2277260596709155124ull, 3802291088284653495ull,
+ 8702527188499959282ull, 6731448426866400333ull}},
+ {{16681633801168607617ull, 13976235897210592676ull,
+ 15489845004052337006ull, 8414310533583000416ull}},
+ {{1202649088875603953ull, 4123461417329232519ull,
+ 9681153127532710629ull, 5258944083489375260ull}},
+ {{15338369416376668653ull, 9766012790088928552ull,
+ 12101441409415888286ull, 6573680104361719075ull}},
+ {{726217696761284200ull, 2984143950756384883ull,
+ 10515115743342472454ull, 8217100130452148844ull}},
+ {{16594787124971660289ull, 15700148024504904263ull,
+ 15795319376443821091ull, 5135687581532593027ull}},
+ {{16131797887787187458ull, 15013499012203742425ull,
+ 15132463202127388460ull, 6419609476915741284ull}},
+ {{6329689304451820610ull, 320129691545126416ull, 468834928949683960ull,
+ 8024511846144676606ull}},
+ {{3956055815282387881ull, 200081057215704010ull,
+ 14128079885875716187ull, 5015319903840422878ull}},
+ {{14168441805957760660ull, 14085159376801793724ull,
+ 8436727820489869425ull, 6269149879800528598ull}},
+ {{17710552257447200824ull, 3771391165720078443ull,
+ 1322537738757560974ull, 7836437349750660748ull}},
+ {{8763252151690806563ull, 16192177533857212739ull,
+ 10049958123578251416ull, 4897773343594162967ull}},
+ {{6342379171186120300ull, 1793477843611964308ull,
+ 7950761636045426367ull, 6122216679492703709ull}},
+ {{7927973963982650375ull, 16076905359797119097ull,
+ 14550138063484170862ull, 7652770849365879636ull}},
+ {{16484198773557626245ull, 5436379831445811531ull,
+ 18317208326532382597ull, 4782981780853674772ull}},
+ {{15993562448519644902ull, 11407160807734652318ull,
+ 4449766334455926630ull, 5978727226067093466ull}},
+ {{10768581023794780319ull, 5035578972813539590ull,
+ 14785579954924684096ull, 7473409032583866832ull}},
+ {{2118677121444349796ull, 3147236858008462244ull,
+ 9240987471827927560ull, 4670880645364916770ull}},
+ {{2648346401805437244ull, 3934046072510577805ull,
+ 2327862302930133642ull, 5838600806706145963ull}},
+ {{7922119020684184459ull, 14140929627492998064ull,
+ 16744885933944830764ull, 7298251008382682453ull}},
+ {{9902648775855230574ull, 17676162034366247580ull,
+ 7096049362148874743ull, 9122813760478353067ull}},
+ {{15412527521764294917ull, 17965130299119986593ull,
+ 2129187842129352762ull, 5701758600298970667ull}},
+ {{5430601346923204934ull, 13233040837045207434ull,
+ 16496542857943854665ull, 7127198250373713333ull}},
+ {{16011623720508781975ull, 2706242991024345580ull,
+ 6785620517147654620ull, 8908997812967141667ull}},
+ {{783892788463212927ull, 10914773906244991796ull,
+ 1935169814003590185ull, 5568123633104463542ull}},
+ {{979865985579016158ull, 18255153401233627649ull,
+ 11642334304359263539ull, 6960154541380579427ull}},
+ {{5836518500401158102ull, 18207255733114646657ull,
+ 9941231862021691520ull, 8700193176725724284ull}},
+ {{15177039108819193574ull, 11379534833196654160ull,
+ 15436641950618333008ull, 5437620735453577677ull}},
+ {{524554812314440351ull, 14224418541495817701ull,
+ 5460744382990752548ull, 6797025919316972097ull}},
+ {{5267379533820438343ull, 17780523176869772126ull,
+ 11437616497165828589ull, 8496282399146215121ull}},
+ {{17127170263919937677ull, 13418669994757301530ull,
+ 230981283087561012ull, 5310176499466384451ull}},
+ {{12185590793045146288ull, 16773337493446626913ull,
+ 14123784659141614977ull, 6637720624332980563ull}},
+ {{1396930436024269147ull, 7131613811526119930ull,
+ 13043044805499630818ull, 8297150780416225704ull}},
+ {{5484767540942556121ull, 9068944650631212860ull,
+ 8151903003437269261ull, 5185719237760141065ull}},
+ {{6855959426178195151ull, 15947866831716403979ull,
+ 14801564772723974480ull, 6482149047200176331ull}},
+ {{3958263264295356035ull, 1488089465935953358ull,
+ 13890269947477580197ull, 8102686309000220414ull}},
+ {{16308972595466761234ull, 3235898925423664800ull,
+ 4069732698746099719ull, 5064178943125137759ull}},
+ {{1939471670623899927ull, 17879931712061744713ull,
+ 475479855005236744ull, 6330223678906422199ull}},
+ {{7036025606707262812ull, 3903170566367629275ull,
+ 14429407874038709643ull, 7912779598633027748ull}},
+ {{2091672994978345306ull, 133638594766074345ull,
+ 18241751958128969335ull, 4945487249145642342ull}},
+ {{7226277262150319536ull, 14002106298739756643ull,
+ 13578817910806435860ull, 6181859061432052928ull}},
+ {{4421160559260511516ull, 17502632873424695804ull,
+ 16973522388508044825ull, 7727323826790066160ull}},
+ {{11986597386392595506ull, 4021616518249353021ull,
+ 10608451492817528016ull, 4829577391743791350ull}},
+ {{1148188677708580670ull, 5027020647811691277ull,
+ 4037192329167134212ull, 6036971739679739188ull}},
+ {{6046921865563113741ull, 6283775809764614096ull,
+ 5046490411458917765ull, 7546214674599673985ull}},
+ {{3779326165976946088ull, 6233202890316577762ull,
+ 14683271553230293363ull, 4716384171624796240ull}},
+ {{13947529744325958418ull, 3179817594468334298ull,
+ 18354089441537866704ull, 5895480214530995300ull}},
+ {{8211040143552672215ull, 3974771993085417873ull,
+ 4495867728212781764ull, 7369350268163744126ull}},
+ {{14875486197868228173ull, 4968464991356772341ull,
+ 14843206697120753013ull, 9211687835204680157ull}},
+ {{11603021882881336560ull, 5411133628811676665ull,
+ 11582847194914164585ull, 5757304897002925098ull}},
+ {{668719298319506988ull, 11375603054441983736ull,
+ 5255186956787929923ull, 7196631121253656373ull}},
+ {{835899122899383735ull, 9607817799625091766ull,
+ 11180669714412300308ull, 8995788901567070466ull}},
+ {{14357495007094278546ull, 15228258161620458161ull,
+ 11599604589935075596ull, 5622368063479419041ull}},
+ {{4111810703585684471ull, 588578628316021086ull, 664447682136680784ull,
+ 7027960079349273802ull}},
+ {{14363135416336881397ull, 735723285395026357ull,
+ 10053931639525626788ull, 8784950099186592252ull}},
+ {{11282802644424244825ull, 9683199090226667281ull,
+ 15507079311558292550ull, 5490593811991620157ull}},
+ {{268445250248142319ull, 2880626825928558294ull, 5548791084165701976ull,
+ 6863242264989525197ull}},
+ {{9558928599664953707ull, 3600783532410697867ull,
+ 11547674873634515374ull, 8579052831236906496ull}},
+ {{3668487365576902115ull, 16085547763038849879ull,
+ 7217296796021572108ull, 5361908019523066560ull}},
+ {{18420667262253291356ull, 1660190630089010732ull,
+ 9021620995026965136ull, 6702385024403833200ull}},
+ {{4579090004107062578ull, 2075238287611263416ull,
+ 11277026243783706420ull, 8377981280504791500ull}},
+ {{2861931252566914112ull, 10520395966611815443ull,
+ 16271513439219592320ull, 5236238300315494687ull}},
+ {{17412472120990806351ull, 13150494958264769303ull,
+ 15727705780597102496ull, 6545297875394368359ull}},
+ {{17153904132811120035ull, 16438118697830961629ull,
+ 15047946207318990216ull, 8181622344242960449ull}},
+ {{13027033092220643974ull, 10273824186144351018ull,
+ 2487437351933287029ull, 5113513965151850281ull}},
+ {{7060419328421029160ull, 17453966251107826677ull,
+ 7720982708343996690ull, 6391892456439812851ull}},
+ {{13437210178953674353ull, 12594085777030007538ull,
+ 5039542367002607959ull, 7989865570549766064ull}},
+ {{13009942380273434375ull, 14788832638284836567ull,
+ 3149713979376629974ull, 4993665981593603790ull}},
+ {{11650741956914405065ull, 9262668761001269901ull,
+ 13160514511075563276ull, 6242082476992004737ull}},
+ {{728369390860842619ull, 11578335951251587377ull,
+ 2615585083562290383ull, 7802603096240005922ull}},
+ {{11984445915356496397ull, 14153988997173323966ull,
+ 6246426695653819393ull, 4876626935150003701ull}},
+ {{5757185357340844688ull, 3857428191184491246ull,
+ 12419719387994662146ull, 6095783668937504626ull}},
+ {{16419853733530831668ull, 14045157275835389865ull,
+ 6301277198138551874ull, 7619729586171880783ull}},
+ {{3344879555815687937ull, 13389909315824506570ull,
+ 10855827276477676777ull, 4762330991357425489ull}},
+ {{13404471481624385729ull, 2902328589498469500ull,
+ 18181470114024483876ull, 5952913739196781861ull}},
+ {{16755589352030482161ull, 3627910736873086875ull,
+ 8891779587248441133ull, 7441142173995977327ull}},
+ {{8166400335805357399ull, 4573287219759373249ull,
+ 12474891269671357564ull, 4650713858747485829ull}},
+ {{14819686438184084652ull, 5716609024699216561ull,
+ 1758556031807033243ull, 5813392323434357287ull}},
+ {{4689549992447942103ull, 2534075262446632798ull,
+ 16033253095040955266ull, 7266740404292946608ull}},
+ {{15085309527414703437ull, 12390966114913066805ull,
+ 1594822295091642466ull, 9083425505366183261ull}},
+ {{11734161463847883600ull, 12356039840248054657ull,
+ 3302606943645970493ull, 5677140940853864538ull}},
+ {{832643774527690788ull, 1609991745027904610ull,
+ 13351630716412238925ull, 7096426176067330672ull}},
+ {{10264176755014389293ull, 6624175699712268666ull,
+ 16689538395515298656ull, 8870532720084163340ull}},
+ {{11026796490311381212ull, 4140109812320167916ull,
+ 1207589460342285852ull, 5544082950052602088ull}},
+ {{13783495612889226515ull, 5175137265400209895ull,
+ 1509486825427857315ull, 6930103687565752610ull}},
+ {{12617683497684145240ull, 1857235563322874465ull,
+ 11110230568639597452ull, 8662629609457190762ull}},
+ {{968523158411508919ull, 10384144263931572349ull,
+ 11555580123827136311ull, 5414143505910744226ull}},
+ {{5822339966441774053ull, 8368494311487077532ull,
+ 5221103117929144581ull, 6767679382388430283ull}},
+ {{7277924958052217566ull, 15072303907786234819ull,
+ 1914692878984042822ull, 8459599227985537854ull}},
+ {{2242860089568942027ull, 4808503923939008858ull,
+ 15031741104647190476ull, 5287249517490961158ull}},
+ {{12026947148815953341ull, 6010629904923761072ull,
+ 9566304343954212287ull, 6609061896863701448ull}},
+ {{15033683936019941677ull, 2901601362727313436ull,
+ 11957880429942765359ull, 8261327371079626810ull}},
+ {{172680423157687740ull, 8731029879345652754ull,
+ 12085361287141616253ull, 5163329606924766756ull}},
+ {{9439222565801885483ull, 15525473367609453846ull,
+ 15106701608927020316ull, 6454162008655958445ull}},
+ {{2575656170397581046ull, 960097635802265692ull, 5048318955876611684ull,
+ 8067702510819948057ull}},
+ {{10833157143353263962ull, 9823433059231191865ull,
+ 14684414393491352062ull, 5042314069262467535ull}},
+ {{18153132447618967856ull, 3055919287184214023ull,
+ 13743831973436802174ull, 6302892586578084419ull}},
+ {{18079729541096321916ull, 13043271145835043337ull,
+ 12568103948368614813ull, 7878615733222605524ull}},
+ {{4382301935544119342ull, 10457887475360596038ull,
+ 17078437004585160066ull, 4924134833264128452ull}},
+ {{14701249456284924985ull, 3848987307345969239ull,
+ 2901302182021898467ull, 6155168541580160566ull}},
+ {{13764875801928768327ull, 199548115755073645ull,
+ 12849999764382148892ull, 7693960676975200707ull}},
+ {{10908890385419174157ull, 9348089609201696836ull,
+ 5725406843525149105ull, 4808725423109500442ull}},
+ {{13636112981773967696ull, 16296798029929508949ull,
+ 16380130591261212189ull, 6010906778886875552ull}},
+ {{3210083171935295907ull, 6535939482129722475ull,
+ 2028419165366963621ull, 7513633473608594441ull}},
+ {{18147203046955417606ull, 6390805185544770498ull,
+ 12796977024422822023ull, 4696020921005371525ull}},
+ {{13460631771839496200ull, 3376820463503575219ull,
+ 2161163225246363817ull, 5870026151256714407ull}},
+ {{12214103696371982345ull, 8832711597806856928ull,
+ 16536512086840118483ull, 7337532689070893008ull}},
+ {{15267629620464977932ull, 6429203478831183256ull,
+ 2223896034840596488ull, 9171915861338616261ull}},
+ {{9542268512790611207ull, 4018252174269489535ull,
+ 3695778030989066757ull, 5732447413336635163ull}},
+ {{7316149622560876105ull, 9634501236264249823ull, 8036520308945542ull,
+ 7165559266670793954ull}},
+ {{4533501009773707227ull, 2819754508475536471ull,
+ 9233417687240957736ull, 8956949083338492442ull}},
+ {{9750967158749648873ull, 1762346567797210294ull,
+ 10382572072952986489ull, 5598093177086557776ull}},
+ {{2965336911582285284ull, 6814619228173900772ull,
+ 12978215091191233111ull, 6997616471358197220ull}},
+ {{3706671139477856604ull, 3906588016789988061ull,
+ 16222768863989041389ull, 8747020589197746525ull}},
+ {{4622512471387354330ull, 4747460519707436490ull,
+ 12445073549206844820ull, 5466887868248591578ull}},
+ {{15001512626088968720ull, 5934325649634295612ull,
+ 6332969899653780217ull, 6833609835310739473ull}},
+ {{305146708901659284ull, 12029593080470257420ull,
+ 12527898392994613175ull, 8542012294138424341ull}},
+ {{9414088729918312861ull, 14436024702934992743ull,
+ 10135779504835327186ull, 5338757683836515213ull}},
+ {{7155924893970503172ull, 8821658841813965121ull,
+ 17281410399471546887ull, 6673447104795644016ull}},
+ {{13556592135890516869ull, 6415387533840068497ull,
+ 3155018925629881993ull, 8341808880994555021ull}},
+ {{1555341057290491187ull, 15538832254718512571ull,
+ 4277729837732370197ull, 5213630550621596888ull}},
+ {{15779234376895277696ull, 5588482263115977001ull,
+ 5347162297165462747ull, 6517038188276996110ull}},
+ {{5888984915836933408ull, 2373916810467583348ull,
+ 15907324908311604242ull, 8146297735346245137ull}},
+ {{12903987609252859188ull, 6095384024969627496ull,
+ 3024549040053670795ull, 5091436084591403211ull}},
+ {{16129984511566073985ull, 3007544012784646466ull,
+ 17615744355349252206ull, 6364295105739254013ull}},
+ {{10939108602602816673ull, 12982802052835583891ull,
+ 8184622388904401545ull, 7955368882174067517ull}},
+ {{4531099867413066469ull, 1196722255381158076ull,
+ 7421232002278944918ull, 4972105551358792198ull}},
+ {{5663874834266333086ull, 10719274856081223403ull, 53167965993905339ull,
+ 6215131939198490248ull}},
+ {{2468157524405528453ull, 8787407551674141350ull, 66459957492381674ull,
+ 7768914923998112810ull}},
+ {{15377656508035618995ull, 10103815738223726247ull,
+ 4653223491860126450ull, 4855571827498820506ull}},
+ {{14610384616617135840ull, 3406397635924882001ull,
+ 15039901401679933871ull, 6069464784373525632ull}},
+ {{4427922715489256088ull, 18093055100188266214ull,
+ 353132678390365722ull, 7586830980466907041ull}},
+ {{16602509752462948767ull, 15919845456045054287ull,
+ 11749922970062448336ull, 4741769362791816900ull}},
+ {{16141451172151298055ull, 1453062746346766243ull,
+ 14687403712578060421ull, 5927211703489771125ull}},
+ {{15565127946761734664ull, 6428014451360845708ull,
+ 4524196585440411814ull, 7409014629362213907ull}},
+ {{504832929871308357ull, 17852567087382692280ull, 521779856686563431ull,
+ 4630634143351383692ull}},
+ {{631041162339135447ull, 17704022840800977446ull, 652224820858204289ull,
+ 5788292679189229615ull}},
+ {{10012173489778695116ull, 8294970495719058095ull,
+ 14650339081354919074ull, 7235365848986537018ull}},
+ {{7903530843795980991ull, 1145341082794046811ull,
+ 9089551814838873035ull, 9044207311233171273ull}},
+ {{2633863768158794168ull, 16856739241242136921ull,
+ 17210184930342765406ull, 5652629569520732045ull}},
+ {{7904015728625880613ull, 11847552014697895343ull,
+ 7677673107646293046ull, 7065786961900915057ull}},
+ {{5268333642354962863ull, 5586067981517593371ull,
+ 14208777402985254212ull, 8832233702376143821ull}},
+ {{986865517258157837ull, 12714664525303271665ull,
+ 11186328886079477834ull, 5520146063985089888ull}},
+ {{5845267915000085201ull, 6669958619774313773ull,
+ 13982911107599347293ull, 6900182579981362360ull}},
+ {{11918270912177494405ull, 12949134293145280120ull,
+ 17478638884499184116ull, 8625228224976702950ull}},
+ {{7448919320110934003ull, 17316580970070575883ull,
+ 6312463284384602168ull, 5390767640610439344ull}},
+ {{4699463131711279600ull, 3198982138878668238ull,
+ 7890579105480752711ull, 6738459550763049180ull}},
+ {{15097700951493875308ull, 17833785728880499009ull,
+ 9863223881850940888ull, 8423074438453811475ull}},
+ {{2518534067042590211ull, 11146116080550311881ull,
+ 3858671916943144103ull, 5264421524033632172ull}},
+ {{7759853602230625668ull, 9320959082260501947ull,
+ 4823339896178930129ull, 6580526905042040215ull}},
+ {{5088130984360894181ull, 16262884871253015338ull,
+ 1417488851796274757ull, 8225658631302550269ull}},
+ {{7791767883652946767ull, 12470146053746828538ull,
+ 3191773541586365675ull, 5141036644564093918ull}},
+ {{516337817711407651ull, 10975996548756147769ull,
+ 13213088963837732902ull, 6426295805705117397ull}},
+ {{5257108290566647468ull, 4496623649090408903ull,
+ 2681303149515002416ull, 8032869757131396747ull}},
+ {{10203221709245236523ull, 2810389780681505564ull,
+ 17816715532942734174ull, 5020543598207122966ull}},
+ {{12754027136556545654ull, 12736359262706657763ull,
+ 13047522379323641909ull, 6275679497758903708ull}},
+ {{11330847902268294164ull, 2085391023101158492ull,
+ 16309402974154552387ull, 7844599372198629635ull}},
+ {{16305151975772459660ull, 17444270453934081721ull,
+ 7887533849632901289ull, 4902874607624143522ull}},
+ {{6546381914433410863ull, 7970280012135438440ull, 636045275186350804ull,
+ 6128593259530179403ull}},
+ {{8182977393041763579ull, 9962850015169298050ull,
+ 14630114649265102217ull, 7660741574412724253ull}},
+ {{9726046889078490141ull, 17755996305549281041ull,
+ 11449664665004382837ull, 4787963484007952658ull}},
+ {{16769244629775500580ull, 8359937326654437589ull,
+ 5088708794400702739ull, 5984954355009940823ull}},
+ {{7126497731937212013ull, 5838235639890659083ull,
+ 1749199974573490520ull, 7481192943762426029ull}},
+ {{2148218073247063557ull, 3648897274931661927ull,
+ 3399092993322125527ull, 4675745589851516268ull}},
+ {{16520330646840993158ull, 18396179648946741120ull,
+ 4248866241652656908ull, 5844681987314395335ull}},
+ {{2203669234841689831ull, 4548480487473874785ull, 699396783638433232ull,
+ 7305852484142994169ull}},
+ {{7366272561979500192ull, 5685600609342343481ull,
+ 5485931997975429444ull, 9132315605178742711ull}},
+ {{16133135397305657380ull, 12776872417693740483ull,
+ 10346236526375725258ull, 5707697253236714194ull}},
+ {{15554733228204683821ull, 6747718485262399796ull,
+ 3709423621114880765ull, 7134621566545892743ull}},
+ {{996672461546303161ull, 13046334125005387650ull, 25093507966213052ull,
+ 8918276958182365929ull}},
+ {{5234606306893827380ull, 17377330864983143089ull,
+ 11544898488547352917ull, 5573923098863978705ull}},
+ {{11154943902044672128ull, 7886605525946765149ull,
+ 596065055402027435ull, 6967403873579973382ull}},
+ {{108621822273676448ull, 5246570889006068533ull, 9968453356107310102ull,
+ 8709254841974966727ull}},
+ {{2373731648134741732ull, 17114164860910956545ull,
+ 13147812375208150669ull, 5443284276234354204ull}},
+ {{7578850578595815069ull, 7557648020856531969ull,
+ 16434765469010188337ull, 6804105345292942755ull}},
+ {{14085249241672156741ull, 14058746044498052865ull,
+ 15931770817835347517ull, 8505131681616178444ull}},
+ {{1885751748404016107ull, 11092559287024976993ull,
+ 733984724292316390ull, 5315707301010111528ull}},
+ {{6968875703932408038ull, 4642327071926445433ull, 917480905365395488ull,
+ 6644634126262639410ull}},
+ {{13322780648342897951ull, 5802908839908056791ull,
+ 10370223168561520168ull, 8305792657828299262ull}},
+ {{15244266932855393076ull, 3626818024942535494ull,
+ 1869703461923562201ull, 5191120411142687039ull}},
+ {{9831961629214465536ull, 9145208549605557272ull,
+ 16172187382686616463ull, 6488900513928358798ull}},
+ {{12289952036518081920ull, 6819824668579558686ull,
+ 10991862191503494771ull, 8111125642410448498ull}},
+ {{3069534004396413296ull, 1956547408648530227ull,
+ 11481599888117072136ull, 5069453526506530311ull}},
+ {{17671975560777680332ull, 2445684260810662783ull,
+ 9740313841718952266ull, 6336816908133162889ull}},
+ {{17478283432544712511ull, 12280477362868104287ull,
+ 16787078320576078236ull, 7921021135166453611ull}},
+ {{17841456172981527176ull, 16898670388647340987ull,
+ 8186080941146354945ull, 4950638209479033507ull}},
+ {{17690134197799521066ull, 7288279930527012522ull,
+ 5620915158005555778ull, 6188297761848791884ull}},
+ {{12889295710394625524ull, 18333721950013541461ull,
+ 7026143947506944722ull, 7735372202310989855ull}},
+ {{10361652828210334905ull, 16070262237185851317ull,
+ 11308868994832922307ull, 4834607626444368659ull}},
+ {{17563752053690306535ull, 15476141778054926242ull,
+ 9524400225113764980ull, 6043259533055460824ull}},
+ {{12731318030258107360ull, 898433148859106187ull,
+ 11905500281392206226ull, 7554074416319326030ull}},
+ {{5651230759697623148ull, 5173206736464329271ull,
+ 2829251657442740987ull, 4721296510199578769ull}},
+ {{2452352431194641031ull, 1854822402153023685ull,
+ 8148250590230814138ull, 5901620637749473461ull}},
+ {{7677126557420689193ull, 11541900039546055414ull,
+ 14796999256215905576ull, 7377025797186841826ull}},
+ {{373036159921085683ull, 14427375049432569268ull,
+ 9272877033415106162ull, 9221282246483552283ull}},
+ {{9456519636805454360ull, 13628795424322743696ull,
+ 3489705136670747399ull, 5763301404052220177ull}},
+ {{11820649546006817950ull, 12424308261976041716ull,
+ 8973817439265822153ull, 7204126755065275221ull}},
+ {{14775811932508522437ull, 1695327272187888433ull,
+ 15828957817509665596ull, 9005158443831594026ull}},
+ {{2317353430176744667ull, 10282951581972206079ull,
+ 14504784654370928901ull, 5628224027394746266ull}},
+ {{16731749843003094546ull, 17465375495892645502ull,
+ 8907608781108885318ull, 7035280034243432833ull}},
+ {{11691315266899092375ull, 12608347333011031070ull,
+ 15746196994813494552ull, 8794100042804291041ull}},
+ {{2695386023384544830ull, 7880217083131894419ull,
+ 2923844094117352239ull, 5496312526752681901ull}},
+ {{17204290584512844750ull, 5238585335487480119ull,
+ 8266491136074078203ull, 6870390658440852376ull}},
+ {{16893677212213668033ull, 1936545650931962245ull,
+ 10333113920092597754ull, 8587988323051065470ull}},
+ {{12864391266847236473ull, 5822027050259864307ull,
+ 1846510181630485692ull, 5367492701906915919ull}},
+ {{11468803065131657687ull, 7277533812824830384ull,
+ 16143195782320270827ull, 6709365877383644898ull}},
+ {{14336003831414572109ull, 4485231247603650076ull,
+ 10955622691045562726ull, 8386707346729556123ull}},
+ {{18183374431488883376ull, 16638327585034445009ull,
+ 4541421172689782751ull, 5241692091705972577ull}},
+ {{8894159984078940508ull, 16186223462865668358ull,
+ 10288462484289616343ull, 6552115114632465721ull}},
+ {{1894327943243899827ull, 15621093310154697544ull,
+ 17472264123789408333ull, 8190143893290582151ull}},
+ {{1183954964527437392ull, 12069026328060379917ull,
+ 17837694105009462064ull, 5118839933306613844ull}},
+ {{6091629724086684644ull, 15086282910075474896ull,
+ 3850373557552275964ull, 6398549916633267306ull}},
+ {{7614537155108355805ull, 411109563884792004ull,
+ 14036338983795120764ull, 7998187395791584132ull}},
+ {{13982457758797498186ull, 9480315514282770810ull,
+ 17996083901726726285ull, 4998867122369740082ull}},
+ {{8254700161642096924ull, 16462080411280851417ull,
+ 13271732840303632048ull, 6248583902962175103ull}},
+ {{14930061220480009059ull, 2130856440391512655ull,
+ 11977980031952152157ull, 7810729878702718879ull}},
+ {{16248817290441087518ull, 3637628284458389361ull,
+ 14403766547611176954ull, 4881706174189199299ull}},
+ {{6475963557769195686ull, 13770407392427762510ull,
+ 13393022166086583288ull, 6102132717736499124ull}},
+ {{17318326484066270415ull, 17213009240534703137ull,
+ 16741277707608229110ull, 7627665897170623905ull}},
+ {{3906425024900337154ull, 6146444756906801557ull,
+ 3545769539614061338ull, 4767291185731639941ull}},
+ {{9494717299552809346ull, 16906427982988277754ull,
+ 9043897942944964576ull, 5959113982164549926ull}},
+ {{2645024587586235874ull, 2686290905025795577ull,
+ 2081500391826429913ull, 7448892477705687408ull}},
+ {{13182355413309867182ull, 13208146861709591995ull,
+ 1300937744891518695ull, 4655557798566054630ull}},
+ {{11866258248209946073ull, 11898497558709602090ull,
+ 10849544217969174177ull, 5819447248207568287ull}},
+ {{5609450773407656783ull, 1038063893104838901ull,
+ 8950244254034079818ull, 7274309060259460359ull}},
+ {{11623499485186958883ull, 10520951903235824434ull,
+ 6576119299115211868ull, 9092886325324325449ull}},
+ {{11876373196669237206ull, 15798966976377166079ull,
+ 15639289608015477177ull, 5683053953327703405ull}},
+ {{10233780477409158603ull, 5913650665189293887ull,
+ 5714053954737182760ull, 7103817441659629257ull}},
+ {{8180539578334060350ull, 7392063331486617359ull,
+ 11754253461848866354ull, 8879771802074536571ull}},
+ {{12030366264099869575ull, 9231725600606523753ull,
+ 5040565404441847519ull, 5549857376296585357ull}},
+ {{1202899774842673256ull, 6927970982330766788ull,
+ 10912392773979697303ull, 6937321720370731696ull}},
+ {{1503624718553341570ull, 4048277709486070581ull,
+ 13640490967474621629ull, 8671652150463414620ull}},
+ {{3245608458309532434ull, 4836016577642488065ull,
+ 17748678891526414326ull, 5419782594039634137ull}},
+ {{8668696591314303446ull, 15268392758907885889ull,
+ 8350790559125854195ull, 6774728242549542672ull}},
+ {{15447556757570267211ull, 14473804930207469457ull,
+ 10438488198907317744ull, 8468410303186928340ull}},
+ {{2737193945840335151ull, 9046128081379668411ull,
+ 15747427161171849398ull, 5292756439491830212ull}},
+ {{17256550487582582651ull, 2084288064869809705ull,
+ 1237539877755260132ull, 6615945549364787766ull}},
+ {{7735630054196064602ull, 2605360081087262132ull,
+ 10770296884048850973ull, 8269931936705984707ull}},
+ {{14058140820727316184ull, 3934193059893232784ull,
+ 4425592543316837906ull, 5168707460441240442ull}},
+ {{17572676025909145230ull, 14141113361721316788ull,
+ 14755362716000823190ull, 6460884325551550552ull}},
+ {{3519100958676879922ull, 8453019665296870178ull,
+ 18444203395001028988ull, 8076105406939438190ull}},
+ {{6811124117600437855ull, 14506509327665319669ull,
+ 6915941103448255213ull, 5047565879337148869ull}},
+ {{13125591165427935223ull, 4298078604299485874ull,
+ 13256612397737706921ull, 6309457349171436086ull}},
+ {{7183616919930143220ull, 9984284273801745247ull,
+ 7347393460317357843ull, 7886821686464295108ull}},
+ {{11407289602597421369ull, 3934334661912396827ull,
+ 13815492949553124460ull, 4929263554040184442ull}},
+ {{9647425984819388807ull, 4917918327390496034ull,
+ 8045994150086629767ull, 6161579442550230553ull}},
+ {{2835910444169460201ull, 1535711890810732139ull,
+ 14669178706035675113ull, 7701974303187788191ull}},
+ {{17913345092101770290ull, 12489034977825177346ull,
+ 16085765718913378801ull, 4813733939492367619ull}},
+ {{13168309328272437054ull, 1776235666999307971ull,
+ 15495521130214335598ull, 6017167424365459524ull}},
+ {{11848700641913158413ull, 11443666620603910772ull,
+ 922657339058367881ull, 7521459280456824406ull}},
+ {{16628809938050499816ull, 234762610236362376ull,
+ 14411718892193643638ull, 4700912050285515253ull}},
+ {{2339268348853573154ull, 9516825299650228779ull,
+ 4179590559959890835ull, 5876140062856894067ull}},
+ {{16759143491349130155ull, 7284345606135398069ull,
+ 612802181522475640ull, 7345175078571117584ull}},
+ {{7113871308904248982ull, 9105432007669247587ull, 766002726903094550ull,
+ 9181468848213896980ull}},
+ {{2140326558851461662ull, 1079208986365891838ull,
+ 9702123741169209902ull, 5738418030133685612ull}},
+ {{11898780235419102885ull, 10572383269812140605ull,
+ 12127654676461512377ull, 7173022537667107015ull}},
+ {{1038417238991714894ull, 17827165105692563661ull,
+ 10547882327149502567ull, 8966278172083883769ull}},
+ {{2954853783583515761ull, 18059507218698934144ull,
+ 18121641500536908864ull, 5603923857552427355ull}},
+ {{3693567229479394701ull, 4127639949664116064ull,
+ 18040365857243748177ull, 7004904821940534194ull}},
+ {{4616959036849243376ull, 9771235955507532984ull,
+ 13327085284699909413ull, 8756131027425667743ull}},
+ {{2885599398030777110ull, 8412865481405902067ull,
+ 15246957330578525239ull, 5472581892141042339ull}},
+ {{17442057302820635100ull, 5904395833329989679ull,
+ 14447010644795768645ull, 6840727365176302924ull}},
+ {{17190885610098405971ull, 11992180810089875003ull,
+ 18058763305994710806ull, 8550909206470378655ull}},
+ {{8438460497097809780ull, 2883426987878783973ull,
+ 18204256093887776110ull, 5344318254043986659ull}},
+ {{15159761639799650129ull, 12827655771703255774ull,
+ 18143634098932332233ull, 6680397817554983324ull}},
+ {{9726330012894786853ull, 2199511659346906006ull,
+ 4232798549955863676ull, 8350497271943729156ull}},
+ {{1467270239631853879ull, 10598066823946592062ull,
+ 11868871130577190605ull, 5219060794964830722ull}},
+ {{11057459836394593157ull, 17859269548360627981ull,
+ 5612716876366712448ull, 6523825993706038403ull}},
+ {{18433510813920629350ull, 3877342861741233360ull,
+ 2404210077031002657ull, 8154782492132548004ull}},
+ {{11520944258700393344ull, 13952554334656740610ull,
+ 10726003334999152468ull, 5096739057582842502ull}},
+ {{5177808286520715872ull, 17440692918320925763ull,
+ 4184132131894164777ull, 6370923821978553128ull}},
+ {{1860574339723506935ull, 7965808092618993492ull,
+ 5230165164867705972ull, 7963654777473191410ull}},
+ {{10386230999181967643ull, 14202002094741646740ull,
+ 7880539246469704136ull, 4977284235920744631ull}},
+ {{12982788748977459553ull, 17752502618427058425ull,
+ 5238988039659742266ull, 6221605294900930789ull}},
+ {{2393427880939660730ull, 12967256236179047224ull,
+ 11160421068002065737ull, 7777006618626163486ull}},
+ {{1495892425587287956ull, 1187006119970822659ull,
+ 2363577149073903182ull, 4860629136641352179ull}},
+ {{15704923587266273657ull, 10707129686818304131ull,
+ 16789529491624542689ull, 6075786420801690223ull}},
+ {{15019468465655454167ull, 17995598126950268068ull,
+ 16375225846103290457ull, 7594733026002112779ull}},
+ {{163795754179883047ull, 4329719801702835687ull, 7928673144600862584ull,
+ 4746708141251320487ull}},
+ {{14039802748007017520ull, 5412149752128544608ull,
+ 5299155412323690326ull, 5933385176564150609ull}},
+ {{17549753435008771900ull, 15988559227015456568ull,
+ 11235630283832000811ull, 7416731470705188261ull}},
+ {{10968595896880482438ull, 7687006507670966403ull,
+ 9328111936608694459ull, 4635457169190742663ull}},
+ {{9099058852673215143ull, 4997072116161320100ull,
+ 7048453902333480170ull, 5794321461488428329ull}},
+ {{11373823565841518929ull, 15469712182056425933ull,
+ 13422253396344238116ull, 7242901826860535411ull}},
+ {{382221402019734949ull, 890396153860980801ull, 12166130727002909742ull,
+ 9053627283575669264ull}},
+ {{11768103422330804103ull, 14391555651445276712ull,
+ 7603831704376818588ull, 5658517052234793290ull}},
+ {{14710129277913505129ull, 17989444564306595890ull,
+ 281417593616247427ull, 7073146315293491613ull}},
+ {{9164289560537105603ull, 17875119686955856959ull,
+ 4963458010447697188ull, 8841432894116864516ull}},
+ {{12645210002976772858ull, 1948577767492634791ull,
+ 12325533293384586551ull, 5525895558823040322ull}},
+ {{11194826485293578169ull, 16270780264647957201ull,
+ 6183544579875957380ull, 6907369448528800403ull}},
+ {{158475051334808999ull, 1891731257100394886ull, 3117744706417558822ull,
+ 8634211810661000504ull}},
+ {{13934104962366419336ull, 15017390090969910515ull,
+ 1948590441510974263ull, 5396382381663125315ull}},
+ {{12805945184530636266ull, 14160051595285000240ull,
+ 16270796107170881541ull, 6745477977078906643ull}},
+ {{16007431480663295333ull, 3865006438824086588ull,
+ 15726809115536214023ull, 8431847471348633304ull}},
+ {{781272638559783775ull, 9333158051906135974ull, 9829255697210133764ull,
+ 5269904669592895815ull}},
+ {{10199962835054505527ull, 11666447564882669967ull,
+ 7674883603085279301ull, 6587380836991119769ull}},
+ {{8138267525390744004ull, 748001400821173747ull,
+ 14205290522283987031ull, 8234226046238899711ull}},
+ {{2780574194155521051ull, 7385029903154315448ull,
+ 15795835604068573750ull, 5146391278899312319ull}},
+ {{3475717742694401313ull, 7915342088118502ull, 15133108486658329284ull,
+ 6432989098624140399ull}},
+ {{13568019215222777450ull, 9894177610148127ull, 14304699589895523701ull,
+ 8041236373280175499ull}},
+ {{15397541037155317762ull, 2312026870220036531ull,
+ 6634594234471008361ull, 5025772733300109687ull}},
+ {{14635240278016759299ull, 7501719606202433568ull,
+ 3681556774661372547ull, 6282215916625137109ull}},
+ {{18294050347520949123ull, 4765463489325654056ull,
+ 9213631986754103588ull, 7852769895781421386ull}},
+ {{11433781467200593202ull, 12201786717683309593ull,
+ 10370206010148702646ull, 4907981184863388366ull}},
+ {{457168778718577791ull, 6028861360249361184ull, 3739385475831102500ull,
+ 6134976481079235458ull}},
+ {{571460973398222238ull, 7536076700311701480ull,
+ 13897603881643653933ull, 7668720601349044322ull}},
+ {{357163108373888899ull, 7015890946908507377ull,
+ 13297688444454671612ull, 4792950375843152701ull}},
+ {{5058139903894749028ull, 8769863683635634221ull,
+ 2787052500286175803ull, 5991187969803940877ull}},
+ {{10934360898295824189ull, 6350643586117154872ull,
+ 8095501643785107658ull, 7488984962254926096ull}},
+ {{6833975561434890118ull, 8580838259750609699ull,
+ 5059688527365692286ull, 4680615601409328810ull}},
+ {{3930783433366224743ull, 1502675787833486316ull,
+ 15547982696061891166ull, 5850769501761661012ull}},
+ {{4913479291707780929ull, 11101716771646633703ull,
+ 988234296367812341ull, 7313461877202076266ull}},
+ {{1530163096207338257ull, 42087909276128417ull, 10458664907314541235ull,
+ 9141827346502595332ull}},
+ {{12485566981198056171ull, 16167206007793437924ull,
+ 15760037603926364079ull, 5713642091564122082ull}},
+ {{15606958726497570214ull, 15597321491314409501ull,
+ 10476674968053179291ull, 7142052614455152603ull}},
+ {{5673640352839799055ull, 14884965845715623973ull,
+ 8484157691639086210ull, 8927565768068940754ull}},
+ {{5851868229738568361ull, 13914789671999652887ull,
+ 9914284575701816785ull, 5579728605043087971ull}},
+ {{2703149268745822548ull, 3558429034717402397ull,
+ 7781169701199883078ull, 6974660756303859964ull}},
+ {{7990622604359666089ull, 13671408330251528804ull,
+ 9726462126499853847ull, 8718325945379824955ull}},
+ {{14217511164579567114ull, 15462159234048287358ull,
+ 3773195819848714702ull, 5448953715862390597ull}},
+ {{8548516918869683084ull, 10104327005705583390ull,
+ 9328180793238281282ull, 6811192144827988246ull}},
+ {{1462274111732328047ull, 3407036720277203430ull,
+ 2436853954693075795ull, 8513990181034985308ull}},
+ {{14748979375114868741ull, 18270299014669109807ull,
+ 10746405758537948179ull, 5321243863146865817ull}},
+ {{13824538200466198023ull, 18226187749908999355ull,
+ 18044693216599823128ull, 6651554828933582271ull}},
+ {{12668986732155359624ull, 4335990613676697578ull,
+ 17944180502322391007ull, 8314443536166977839ull}},
+ {{12529802726024487669ull, 9627523161189017842ull,
+ 18132641841592576235ull, 5196527210104361149ull}},
+ {{6438881370675833778ull, 7422717933058884399ull,
+ 8830744246708556582ull, 6495659012630451437ull}},
+ {{3436915694917404319ull, 55025379468829691ull, 15650116326813083632ull,
+ 8119573765788064296ull}},
+ {{18288973373819235363ull, 34390862168018556ull, 9781322704258177270ull,
+ 5074733603617540185ull}},
+ {{4414472643564492588ull, 9266360614564799004ull,
+ 16838339398750109491ull, 6343417004521925231ull}},
+ {{5518090804455615735ull, 6971264749778610851ull,
+ 16436238230010248960ull, 7929271255652406539ull}},
+ {{1142963743571065883ull, 4357040468611631782ull,
+ 7966805884542711648ull, 4955794534782754087ull}},
+ {{10652076716318608161ull, 5446300585764539727ull,
+ 5346821337251001656ull, 6194743168478442609ull}},
+ {{8703409876970872297ull, 6807875732205674659ull,
+ 11295212689991139974ull, 7743428960598053261ull}},
+ {{3133788163893101234ull, 18089980387910710374ull,
+ 9365350940458156435ull, 4839643100373783288ull}},
+ {{13140607241721152350ull, 18000789466461000063ull,
+ 11706688675572695544ull, 6049553875467229110ull}},
+ {{11814073033724052534ull, 4054242759366698463ull,
+ 5409988807611093623ull, 7561942344334036388ull}},
+ {{14301324673718614690ull, 9451430752245268395ull,
+ 12604615041611709322ull, 4726213965208772742ull}},
+ {{13264969823720880458ull, 2590916403451809686ull,
+ 6532396765159860845ull, 5907767456510965928ull}},
+ {{7357840242796324765ull, 7850331522742150012ull,
+ 8165495956449826056ull, 7384709320638707410ull}},
+ {{13822022188602478786ull, 4906457201713843757ull,
+ 9715120991208529189ull, 4615443325399192131ull}},
+ {{3442469680470934770ull, 10744757520569692601ull,
+ 7532215220583273582ull, 5769304156748990164ull}},
+ {{8914773119016056367ull, 4207574863857339943ull,
+ 9415269025729091978ull, 7211630195936237705ull}},
+ {{6531780380342682555ull, 14482840616676450737ull,
+ 16380772300588752876ull, 9014537744920297131ull}},
+ {{15611577783782646357ull, 18275147422277557518ull,
+ 7932139678654276595ull, 5634086090575185707ull}},
+ {{10291100192873532138ull, 18232248259419558994ull,
+ 5303488579890457840ull, 7042607613218982134ull}},
+ {{3640503204237139364ull, 4343566250564897127ull,
+ 15852732761717848109ull, 8803259516523727667ull}},
+ {{9192843530289293959ull, 5020571915816754656ull,
+ 7602114966859961116ull, 5502037197827329792ull}},
+ {{11491054412861617448ull, 6275714894770943320ull,
+ 9502643708574951395ull, 6877546497284162240ull}},
+ {{14363818016077021810ull, 3232957600036291246ull,
+ 11878304635718689244ull, 8596933121605202800ull}},
+ {{4365700241620750728ull, 11243970536877457837ull,
+ 7423940397324180777ull, 5373083201003251750ull}},
+ {{10068811320453326313ull, 219905115814658584ull, 56553459800450164ull,
+ 6716354001254064688ull}},
+ {{12586014150566657892ull, 274881394768323230ull, 70691824750562705ull,
+ 8395442501567580860ull}},
+ {{3254572825676773279ull, 11701015917798671779ull,
+ 9267554427323877498ull, 5247151563479738037ull}},
+ {{17903274087378130310ull, 5402897860393563915ull,
+ 16196129052582234777ull, 6558939454349672546ull}},
+ {{17767406590795274983ull, 11365308343919342798ull,
+ 11021789278873017663ull, 8198674317937090683ull}},
+ {{6492943100819658961ull, 14020846742590671105ull,
+ 4582775290081942087ull, 5124171448710681677ull}},
+ {{12727864894451961605ull, 12914372409810950977ull,
+ 10340155131029815513ull, 6405214310888352096ull}},
+ {{2074773062782788294ull, 2307907456981525010ull,
+ 12925193913787269392ull, 8006517888610440120ull}},
+ {{5908419182666630588ull, 1442442160613453131ull,
+ 8078246196117043370ull, 5004073680381525075ull}},
+ {{2773837959905900331ull, 11026424737621592222ull,
+ 5486121726718916308ull, 6255092100476906344ull}},
+ {{12690669486737151221ull, 13783030922026990277ull,
+ 6857652158398645385ull, 7818865125596132930ull}},
+ {{10237511438424413466ull, 1696865298625787067ull,
+ 8897718617426541270ull, 4886790703497583081ull}},
+ {{8185203279603128928ull, 11344453660137009642ull,
+ 15733834290210564491ull, 6108488379371978851ull}},
+ {{1008132062649135352ull, 9568881056743874149ull,
+ 15055606844335817710ull, 7635610474214973564ull}},
+ {{2935925548369403547ull, 1368864642037533439ull, 186382240855110261ull,
+ 4772256546384358478ull}},
+ {{17504964990743918146ull, 6322766820974304702ull,
+ 9456349837923663634ull, 5965320682980448097ull}},
+ {{12657834201575121874ull, 17126830563072656686ull,
+ 16432123315831967446ull, 7456650853725560121ull}},
+ {{3299460357557063267ull, 6092583083493022525ull,
+ 3352548044753897798ull, 4660406783578475076ull}},
+ {{8736011465373716988ull, 16839100891221053964ull,
+ 4190685055942372247ull, 5825508479473093845ull}},
+ {{10920014331717146235ull, 16437190095598929551ull,
+ 9850042338355353213ull, 7281885599341367306ull}},
+ {{9038331896219044890ull, 6711429564216498227ull,
+ 3089180886089415709ull, 9102356999176709133ull}},
+ {{3343114425923209104ull, 6500486486849005344ull,
+ 4236581063019578770ull, 5688973124485443208ull}},
+ {{4178893032404011380ull, 17348980145416032488ull,
+ 5295726328774473462ull, 7111216405606804010ull}},
+ {{5223616290505014225ull, 12462853144915264802ull,
+ 15843029947822867636ull, 8889020507008505012ull}},
+ {{7876446199993021795ull, 17012655252426816309ull,
+ 678521680534516464ull, 5555637816880315633ull}},
+ {{14457243768418665147ull, 2819074991823968770ull,
+ 5459838119095533485ull, 6944547271100394541ull}},
+ {{8848182673668555626ull, 8135529758207348867ull,
+ 11436483667296804760ull, 8680684088875493176ull}},
+ {{3224271161829153314ull, 5084706098879593042ull,
+ 7147802292060502975ull, 5425427555547183235ull}},
+ {{13253710989141217451ull, 1744196605172103398ull,
+ 4323066846648240815ull, 6781784444433979044ull}},
+ {{7343766699571746006ull, 16015303811747292960ull,
+ 5403833558310301018ull, 8477230555542473805ull}},
+ {{4589854187232341254ull, 14621250900769446004ull,
+ 5683238983157632088ull, 5298269097214046128ull}},
+ {{5737317734040426567ull, 18276563625961807505ull,
+ 7104048728947040110ull, 6622836371517557660ull}},
+ {{11783333185977921113ull, 13622332495597483573ull,
+ 8880060911183800138ull, 8278545464396947075ull}},
+ {{9670426250449894648ull, 13125643828175815137ull,
+ 3244195060276181134ull, 5174090915248091922ull}},
+ {{16699718831489756213ull, 7183682748364993113ull,
+ 13278615862200002226ull, 6467613644060114902ull}},
+ {{7039590484080031555ull, 18202975472311017200ull,
+ 7374897790895226974ull, 8084517055075143628ull}},
+ {{4399744052550019722ull, 6765173651766997846ull,
+ 13832683156164292667ull, 5052823159421964767ull}},
+ {{14723052102542300460ull, 3844781046281359403ull,
+ 12679167926777977930ull, 6316028949277455959ull}},
+ {{13792129109750487671ull, 14029348344706475062ull,
+ 11237273890045084508ull, 7895036186596819949ull}},
+ {{4008394675166666891ull, 17991714752296322722ull,
+ 9329139190491871769ull, 4934397616623012468ull}},
+ {{14233865380813109421ull, 8654585385088239690ull,
+ 11661423988114839712ull, 6167997020778765585ull}},
+ {{8568959689161610968ull, 10818231731360299613ull,
+ 741721929861385928ull, 7709996275973456982ull}},
+ {{7661442814939700807ull, 6761394832100187258ull,
+ 14298634261445529917ull, 4818747672483410613ull}},
+ {{353431481819850201ull, 13063429558552621977ull,
+ 4038234771524748684ull, 6023434590604263267ull}},
+ {{5053475370702200655ull, 16329286948190777471ull,
+ 436107445978547951ull, 7529293238255329084ull}},
+ {{10075951134329957266ull, 17123333370260317775ull,
+ 9495939190591368277ull, 4705808273909580677ull}},
+ {{7983252899485058678ull, 7569108657543233507ull,
+ 16481610006666598251ull, 5882260342386975846ull}},
+ {{5367380105928935443ull, 4849699803501653980ull,
+ 11378640471478472006ull, 7352825427983719808ull}},
+ {{6709225132411169304ull, 15285496791231843283ull,
+ 14223300589348090007ull, 9191031784979649760ull}},
+ {{1887422698543286863ull, 16470964522160983908ull,
+ 8889562868342556254ull, 5744394865612281100ull}},
+ {{2359278373179108579ull, 11365333615846454077ull,
+ 11111953585428195318ull, 7180493582015351375ull}},
+ {{7560783984901273627ull, 4983294982953291788ull,
+ 9278255963357856244ull, 8975616977519189219ull}},
+ {{13948862027418071825ull, 12337931401200583175ull,
+ 3493066967884966200ull, 5609760610949493262ull}},
+ {{12824391515845201878ull, 15422414251500728969ull,
+ 13589705746710983558ull, 7012200763686866577ull}},
+ {{2195431339524338635ull, 10054645777521135404ull,
+ 3152074128106565736ull, 8765250954608583222ull}},
+ {{10595516624057487455ull, 6284153610950709627ull,
+ 15805104385348767297ull, 5478281846630364513ull}},
+ {{8632709761644471415ull, 12466878032115774938ull,
+ 5921322426403795409ull, 6847852308287955642ull}},
+ {{1567515165200813460ull, 1748539484862554961ull,
+ 16625025069859520070ull, 8559815385359944552ull}},
+ {{12508912024318978173ull, 14927895233321260562ull,
+ 10390640668662200043ull, 5349884615849965345ull}},
+ {{6412767993543946908ull, 14048183023224187799ull,
+ 17599986854255137958ull, 6687355769812456681ull}},
+ {{3404273973502545731ull, 8336856742175458941ull,
+ 8164925512536758736ull, 8359194712265570852ull}},
+ {{4433514242652785034ull, 5210535463859661838ull,
+ 14326450482190250018ull, 5224496695165981782ull}},
+ {{14765264840170757100ull, 15736541366679353105ull,
+ 8684691065883036714ull, 6530620868957477228ull}},
+ {{4621522994931282663ull, 10447304671494415574ull,
+ 10855863832353795893ull, 8163276086196846535ull}},
+ {{16723509927114215377ull, 8835408428897703685ull,
+ 13702443922862204289ull, 5102047553873029084ull}},
+ {{7069329353610605509ull, 15655946554549517511ull,
+ 17128054903577755361ull, 6377559442341286355ull}},
+ {{4224975673585868982ull, 5734875137904733177ull,
+ 16798382611044806298ull, 7971949302926607944ull}},
+ {{14169824842059637874ull, 8195982979617846139ull,
+ 10498989131903003936ull, 4982468314329129965ull}},
+ {{13100595034147159438ull, 10244978724522307674ull,
+ 17735422433306142824ull, 6228085392911412456ull}},
+ {{7152371755829173489ull, 12806223405652884593ull,
+ 3722533967923126914ull, 7785106741139265571ull}},
+ {{15999447393461703191ull, 12615575646960440774ull,
+ 20740720738260369ull, 4865691713212040982ull}},
+ {{10775937204972353181ull, 1934411503418387256ull,
+ 9249297937777601270ull, 6082114641515051227ull}},
+ {{13469921506215441476ull, 11641386416127759878ull,
+ 6949936403794613683ull, 7602643301893814034ull}},
+ {{3807014922957263019ull, 4970023500866155972ull,
+ 8955396270799021456ull, 4751652063683633771ull}},
+ {{4758768653696578773ull, 6212529376082694965ull,
+ 6582559320071388916ull, 5939565079604542214ull}},
+ {{10560146835548111370ull, 7765661720103368706ull,
+ 17451571186944011953ull, 7424456349505677767ull}},
+ {{11211777790644957511ull, 16382753621133075201ull,
+ 17824761019481089326ull, 4640285218441048604ull}},
+ {{179664183024033176ull, 11255069989561568194ull,
+ 3834207200641810042ull, 5800356523051310756ull}},
+ {{9447952265634817278ull, 4845465450097184434ull,
+ 4792759000802262553ull, 7250445653814138445ull}},
+ {{2586568295188745789ull, 10668517831048868447ull,
+ 10602634769430216095ull, 9063057067267673056ull}},
+ {{8534134212134047975ull, 13585352672046624635ull,
+ 6626646730893885059ull, 5664410667042295660ull}},
+ {{6055981746740172064ull, 12370004821630892890ull,
+ 8283308413617356324ull, 7080513333802869575ull}},
+ {{16793349220279990888ull, 15462506027038616112ull,
+ 5742449498594307501ull, 8850641667253586969ull}},
+ {{10495843262674994305ull, 11969909276112829022ull,
+ 15118245982689911948ull, 5531651042033491855ull}},
+ {{3896432041488967073ull, 14962386595141036278ull,
+ 14286121459935002031ull, 6914563802541864819ull}},
+ {{14093912088715984649ull, 14091297225498907443ull,
+ 13245965806491364635ull, 8643204753177331024ull}},
+ {{6502852046233796454ull, 6501217756723123200ull,
+ 8278728629057102897ull, 5402002970735831890ull}},
+ {{8128565057792245568ull, 12738208214331291904ull,
+ 1125038749466602813ull, 6752503713419789863ull}},
+ {{10160706322240306959ull, 2087702212631951168ull,
+ 15241356492115417229ull, 8440629641774737328ull}},
+ {{6350441451400191850ull, 3610656892108663432ull,
+ 9525847807572135768ull, 5275393526109210830ull}},
+ {{7938051814250239812ull, 4513321115135829290ull,
+ 2683937722610393902ull, 6594241907636513538ull}},
+ {{699192730958023957ull, 14865023430774562421ull,
+ 12578294190117768185ull, 8242802384545641922ull}},
+ {{2742838466062458925ull, 2373110616593019657ull,
+ 12473119887250993020ull, 5151751490341026201ull}},
+ {{8040234101005461560ull, 2966388270741274571ull,
+ 1756341803781577563ull, 6439689362926282752ull}},
+ {{5438606607829439046ull, 17543043393708756926ull,
+ 2195427254726971953ull, 8049611703657853440ull}},
+ {{17234187185175563116ull, 4046873093426891222ull,
+ 1372142034204357471ull, 5031007314786158400ull}},
+ {{12319361944614678087ull, 446905348356226124ull,
+ 1715177542755446839ull, 6288759143482698000ull}},
+ {{15399202430768347609ull, 14393689740727446367ull,
+ 2143971928444308548ull, 7860948929353372500ull}},
+ {{16542030546871299112ull, 18219428124809429787ull,
+ 10563354492132468650ull, 4913093080845857812ull}},
+ {{16065852165161735985ull, 13550913119157011426ull,
+ 13204193115165585813ull, 6141366351057322265ull}},
+ {{10858943169597394174ull, 3103583343664100571ull,
+ 2670183338674818555ull, 7676707938821652832ull}},
+ {{4480996471784677407ull, 18080640654285920521ull,
+ 1668864586671761596ull, 4797942461763533020ull}},
+ {{10212931608158234662ull, 4154056744147849035ull,
+ 2086080733339701996ull, 5997428077204416275ull}},
+ {{8154478491770405424ull, 5192570930184811294ull,
+ 16442658971956791207ull, 7496785096505520343ull}},
+ {{484863038929115486ull, 10162885859006588915ull,
+ 17194190885114076360ull, 4685490685315950214ull}},
+ {{14441136853943558069ull, 12703607323758236143ull,
+ 12269366569537819642ull, 5856863356644937768ull}},
+ {{13439735049002059683ull, 6656137117843019371ull,
+ 15336708211922274553ull, 7321079195806172210ull}},
+ {{12187982792825186699ull, 12931857415731162118ull,
+ 9947513228048067383ull, 9151348994757715263ull}},
+ {{3005803227088353783ull, 14999939912473058180ull,
+ 13134724795171123970ull, 5719593121723572039ull}},
+ {{3757254033860442229ull, 9526552853736546917ull,
+ 11806719975536517059ull, 7149491402154465049ull}},
+ {{9308253560752940690ull, 7296505048743295742ull, 923341914138482612ull,
+ 8936864252693081312ull}},
+ {{1205972457043200027ull, 13783687692319335647ull,
+ 577088696336551632ull, 5585540157933175820ull}},
+ {{15342523626586163746ull, 17229609615399169558ull,
+ 721360870420689540ull, 6981925197416469775ull}},
+ {{9954782496377928875ull, 3090267945539410332ull,
+ 14736759143308025638ull, 8727406496770587218ull}},
+ {{15445111097090981355ull, 15766475521244295169ull,
+ 13822160482994903927ull, 5454629060481617011ull}},
+ {{5471330816081562981ull, 15096408383127981058ull,
+ 12666014585316242005ull, 6818286325602021264ull}},
+ {{16062535556956729535ull, 5035452423627812610ull,
+ 15832518231645302507ull, 8522857907002526580ull}},
+ {{14650770741525343863ull, 841314755553688929ull, 671951857923538259ull,
+ 5326786191876579113ull}},
+ {{4478405371624516117ull, 14886701499724274874ull,
+ 5451625840831810727ull, 6658482739845723891ull}},
+ {{14821378751385420954ull, 13996690856227955688ull,
+ 2202846282612375505ull, 8323103424807154864ull}},
+ {{9263361719615888097ull, 1830402757501390449ull,
+ 1376778926632734691ull, 5201939640504471790ull}},
+ {{16190888167947248025ull, 16123061502158901773ull,
+ 10944345695145694171ull, 6502424550630589737ull}},
+ {{6403552154651896319ull, 15542140859271239313ull,
+ 18292118137359505618ull, 8128030688288237171ull}},
+ {{15531435142725904959ull, 14325524055471912474ull,
+ 9126730826635997059ull, 5080019180180148232ull}},
+ {{10190921891552605391ull, 13295219050912502689ull,
+ 11408413533294996324ull, 6350023975225185290ull}},
+ {{17350338382868144643ull, 16619023813640628361ull,
+ 5037144879763969597ull, 7937529969031481613ull}},
+ {{3926432461651508546ull, 12692732892739086678ull,
+ 5454058559066174950ull, 4960956230644676008ull}},
+ {{14131412613919161490ull, 6642544079069082539ull,
+ 6817573198832718688ull, 6201195288305845010ull}},
+ {{13052579748971563959ull, 8303180098836353174ull,
+ 17745338535395674168ull, 7751494110382306262ull}},
+ {{3546176324679839570ull, 5189487561772720734ull,
+ 6479150566194908451ull, 4844683818988941414ull}},
+ {{13656092442704575271ull, 1875173433788513013ull,
+ 17322310244598411372ull, 6055854773736176767ull}},
+ {{3235057498098555376ull, 2343966792235641267ull,
+ 17041201787320626311ull, 7569818467170220959ull}},
+ {{18162812000807454774ull, 8382508272788357647ull,
+ 17568280144716473300ull, 4731136541981388099ull}},
+ {{18091828982581930564ull, 10478135340985447059ull,
+ 17348664162468203721ull, 5913920677476735124ull}},
+ {{18003100209800025301ull, 17709355194659196728ull,
+ 3239086129375703035ull, 7392400846845918906ull}},
+ {{11251937631125015813ull, 8762503987448304003ull,
+ 6636114849287202301ull, 4620250529278699316ull}},
+ {{9453236020478881862ull, 15564816002737767908ull,
+ 8295143561609002876ull, 5775313161598374145ull}},
+ {{11816545025598602328ull, 1009275929712658269ull,
+ 14980615470438641500ull, 7219141451997967681ull}},
+ {{935623226716089197ull, 1261594912140822837ull, 4890711282766138163ull,
+ 9023926814997459602ull}},
+ {{2890607525911249701ull, 16929397884583871937ull,
+ 7668380570156224255ull, 5639954259373412251ull}},
+ {{8224945425816450030ull, 16550061337302452017ull,
+ 4973789694267892415ull, 7049942824216765314ull}},
+ {{14892867800697950441ull, 16075890653200677117ull,
+ 15440609154689641327ull, 8812428530270956642ull}},
+ {{11613885384649912978ull, 16964960685891505054ull,
+ 14262066740108413733ull, 5507767831419347901ull}},
+ {{5293984693957615414ull, 7371142802082217606ull,
+ 3992525369853353455ull, 6884709789274184877ull}},
+ {{15840852904301795075ull, 4602242484175384103ull,
+ 9602342730744079723ull, 8605887236592731096ull}},
+ {{16818062092829703778ull, 570558543395921112ull,
+ 6001464206715049827ull, 5378679522870456935ull}},
+ {{2575833542327578107ull, 14548256234527065103ull,
+ 2890144239966424379ull, 6723349403588071169ull}},
+ {{17054849983191636345ull, 13573634274731443474ull,
+ 8224366318385418378ull, 8404186754485088961ull}},
+ {{15270967257922160620ull, 13095207440134540075ull,
+ 16669443995059356246ull, 5252616721553180600ull}},
+ {{14477023053975312871ull, 7145637263313399286ull,
+ 2390060920114643692ull, 6565770901941475751ull}},
+ {{8872906780614365281ull, 8932046579141749108ull,
+ 16822634205425468327ull, 8207213627426844688ull}},
+ {{14768938774738754109ull, 12500058139604675048ull,
+ 10514146378390917704ull, 5129508517141777930ull}},
+ {{14429394713891020ull, 15625072674505843811ull, 3919310936133871322ull,
+ 6411885646427222413ull}},
+ {{13853094798674527486ull, 10307968806277528955ull,
+ 9510824688594727057ull, 8014857058034028016ull}},
+ {{6352341239957885727ull, 17971695549991925357ull,
+ 5944265430371704410ull, 5009285661271267510ull}},
+ {{12552112568374745063ull, 13241247400635130888ull,
+ 16653703824819406321ull, 6261607076589084387ull}},
+ {{15690140710468431328ull, 2716501195511749898ull,
+ 16205443762596869998ull, 7827008845736355484ull}},
+ {{14418023962470157484ull, 15532871302477007398ull,
+ 905030314768267940ull, 4891880528585222178ull}},
+ {{8799157916232921047ull, 969345054386707632ull,
+ 10354659930315110734ull, 6114850660731527722ull}},
+ {{10998947395291151309ull, 10435053354838160348ull,
+ 3719952876039112609ull, 7643563325914409653ull}},
+ {{16097714158911745376ull, 18051123392842319977ull,
+ 4630813556738139332ull, 4777227078696506033ull}},
+ {{6287084643357518008ull, 4117160167343348356ull,
+ 10400202964350062070ull, 5971533848370632541ull}},
+ {{7858855804196897510ull, 14369822246033961253ull,
+ 17611939723864965491ull, 7464417310463290676ull}},
+ {{7217627886836754896ull, 6675295894557531831ull,
+ 1784090290560827624ull, 4665260819039556673ull}},
+ {{4410348840118555716ull, 8344119868196914789ull,
+ 6841798881628422434ull, 5831576023799445841ull}},
+ {{10124622068575582549ull, 1206777798391367678ull,
+ 13163934620462915947ull, 7289470029749307301ull}},
+ {{3432405548864702378ull, 15343530303271373310ull,
+ 2619860220296481221ull, 9111837537186634127ull}},
+ {{15980311523322602698ull, 11895549448758302270ull,
+ 8554941665326382619ull, 5694898460741646329ull}},
+ {{10752017367298477565ull, 10257750792520489934ull,
+ 15305363100085366178ull, 7118623075927057911ull}},
+ {{4216649672268321148ull, 3598816453795836610ull,
+ 14520017856679319819ull, 8898278844908822389ull}},
+ {{7247092063595088622ull, 18390161348118255545ull,
+ 11380854169638268838ull, 5561424278068013993ull}},
+ {{13670551097921248681ull, 13764329648293043623ull,
+ 391009656765672336ull, 6951780347585017492ull}},
+ {{12476502853974172947ull, 17205412060366304529ull,
+ 488762070957090420ull, 8689725434481271865ull}},
+ {{880285256092776236ull, 1530010500874164523ull,
+ 11834691340416651273ull, 5431078396550794915ull}},
+ {{14935414625398134007ull, 6524199144520093557ull,
+ 10181678157093426187ull, 6788847995688493644ull}},
+ {{4834210226465503797ull, 3543562912222729043ull,
+ 12727097696366782734ull, 8486059994610617055ull}},
+ {{715538382327245921ull, 16049784875421369364ull,
+ 14871965087870321064ull, 5303787496631635659ull}},
+ {{894422977909057401ull, 1615487020567160089ull,
+ 13978270341410513427ull, 6629734370789544574ull}},
+ {{5729714740813709656ull, 15854416830991113823ull,
+ 8249465889908365975ull, 8287167963486930718ull}},
+ {{10498600740649650391ull, 16826539547010527995ull,
+ 544230162765340830ull, 5179479977179331699ull}},
+ {{8511564907384675084ull, 11809802396908384186ull,
+ 14515345758738839750ull, 6474349971474164623ull}},
+ {{1416084097376068047ull, 5538880959280704425ull,
+ 13532496179996161784ull, 8092937464342705779ull}},
+ {{12414267606928512290ull, 3461800599550440265ull,
+ 6151967103283907163ull, 5058085915214191112ull}},
+ {{1682776453378476650ull, 18162308804720214044ull,
+ 7689958879104883953ull, 6322607394017738890ull}},
+ {{2103470566723095813ull, 8867827950618103843ull, 389076562026329134ull,
+ 7903259242522173613ull}},
+ {{17455570168697792547ull, 930706450708926997ull,
+ 2549015860480149661ull, 4939537026576358508ull}},
+ {{7984404655590076972ull, 5775069081813546651ull,
+ 3186269825600187076ull, 6174421283220448135ull}},
+ {{5368819801060208311ull, 7218836352266933314ull,
+ 17817895337282397557ull, 7718026604025560168ull}},
+ {{7967198394090018098ull, 6817615729380527273ull,
+ 11136184585801498473ull, 4823766627515975105ull}},
+ {{14570684011039910527ull, 13133705680153046995ull,
+ 85172676969709379ull, 6029708284394968882ull}},
+ {{13601668995372500254ull, 11805446081763920840ull,
+ 9329837883066912532ull, 7537135355493711102ull}},
+ {{8501043122107812659ull, 16601775837957226333ull,
+ 1219462658489432428ull, 4710709597183569439ull}},
+ {{15237989921062153728ull, 2305475723736981300ull,
+ 15359386378393954248ull, 5888386996479461798ull}},
+ {{600743327618140544ull, 2881844654671226626ull, 9975860936137667002ull,
+ 7360483745599327248ull}},
+ {{9974301196377451487ull, 12825677855193809090ull,
+ 12469826170172083752ull, 9200604681999159060ull}},
+ {{10845624266163295084ull, 8016048659496130681ull,
+ 17017013393212328153ull, 5750377926249474412ull}},
+ {{18168716351131506759ull, 14631746842797551255ull,
+ 2824522667805858575ull, 7187972407811843016ull}},
+ {{18099209420486995544ull, 13677997535069551165ull,
+ 3530653334757323219ull, 8984965509764803770ull}},
+ {{13617848897018066167ull, 6242905450204775526ull,
+ 6818344352650714916ull, 5615603443603002356ull}},
+ {{7798939084417806901ull, 7803631812755969408ull,
+ 8522930440813393645ull, 7019504304503752945ull}},
+ {{9748673855522258626ull, 14366225784372349664ull,
+ 15265349069444129960ull, 8774380380629691181ull}},
+ {{6092921159701411641ull, 8978891115232718540ull,
+ 11846686177616275177ull, 5483987737893556988ull}},
+ {{7616151449626764552ull, 15835299912468286079ull,
+ 14808357722020343971ull, 6854984672366946235ull}},
+ {{4908503293606067786ull, 15182438872157969695ull,
+ 13898761134098042060ull, 8568730840458682794ull}},
+ {{9985343586144874222ull, 265652258243955251ull,
+ 13298411727238664192ull, 5355456775286676746ull}},
+ {{7869993464253704874ull, 332065322804944064ull, 7399642622193554432ull,
+ 6694320969108345933ull}},
+ {{9837491830317131092ull, 415081653506180080ull,
+ 13861239296169330944ull, 8367901211385432416ull}},
+ {{6148432393948206933ull, 259426033441362550ull, 8663274560105831840ull,
+ 5229938257115895260ull}},
+ {{16908912529290034474ull, 324282541801703187ull,
+ 10829093200132289800ull, 6537422821394869075ull}},
+ {{16524454643185155188ull, 405353177252128984ull,
+ 8924680481737974346ull, 8171778526743586344ull}},
+ {{10327784151990721993ull, 4865031754209968519ull,
+ 5577925301086233966ull, 5107361579214741465ull}},
+ {{8298044171561014587ull, 15304661729617236457ull,
+ 11584092644785180361ull, 6384201974018426831ull}},
+ {{14984241232878656137ull, 5295769106739381859ull,
+ 9868429787554087548ull, 7980252467523033539ull}},
+ {{7059307761335466134ull, 12533227728566889470ull,
+ 3861925608007610765ull, 4987657792201895962ull}},
+ {{18047506738524108475ull, 1831476605426448125ull,
+ 14050779046864289265ull, 6234572240252369952ull}},
+ {{8724325367872971882ull, 6901031775210448061ull,
+ 17563473808580361581ull, 7793215300315462440ull}},
+ {{7758546364134301378ull, 6618987868720223990ull,
+ 10977171130362725988ull, 4870759562697164025ull}},
+ {{474810918313100915ull, 8273734835900279988ull,
+ 18333149931380795389ull, 6088449453371455031ull}},
+ {{593513647891376143ull, 14953854563302737889ull,
+ 18304751395798606332ull, 7610561816714318789ull}},
+ {{11900161076000579850ull, 122787065209435372ull,
+ 13746312631587822910ull, 4756601135446449243ull}},
+ {{14875201345000724812ull, 9376855868366570023ull,
+ 12571204771057390733ull, 5945751419308061554ull}},
+ {{13982315662823518111ull, 16332755853885600433ull,
+ 6490633926966962608ull, 7432189274135076943ull}},
+ {{1821418261623616964ull, 10207972408678500271ull,
+ 10974175231995433486ull, 4645118296334423089ull}},
+ {{16111830882311684916ull, 3536593473993349530ull,
+ 18329405058421679762ull, 5806397870418028861ull}},
+ {{10916416566034830337ull, 13644113879346462721ull,
+ 9076698267744935990ull, 7257997338022536077ull}},
+ {{18257206725970925826ull, 7831770312328302593ull,
+ 15957558853108557892ull, 9072496672528170096ull}},
+ {{4493225176090746785ull, 14118228482059964929ull,
+ 9973474283192848682ull, 5670310420330106310ull}},
+ {{10228217488540821385ull, 8424413565720180353ull,
+ 3243470817136285045ull, 7087888025412632888ull}},
+ {{17396957879103414636ull, 15142202975577613345ull,
+ 4054338521420356306ull, 8859860031765791110ull}},
+ {{3955569646798552291ull, 14075562878163396245ull,
+ 16369019631169886403ull, 5537412519853619443ull}},
+ {{9556148076925578268ull, 12982767579276857402ull,
+ 15849588520534970100ull, 6921765649817024304ull}},
+ {{2721813059302197027ull, 16228459474096071753ull,
+ 1365241576959161009ull, 8652207062271280381ull}},
+ {{13230348208132342902ull, 3225258143668962989ull,
+ 3159118994813169583ull, 5407629413919550238ull}},
+ {{2702877204883264916ull, 17866630734868367449ull,
+ 13172270780371237786ull, 6759536767399437797ull}},
+ {{7990282524531469048ull, 13109916381730683503ull,
+ 2630280420181883521ull, 8449420959249297247ull}},
+ {{11911455605473250011ull, 1276168710940595333ull,
+ 8561454290254759057ull, 5280888099530810779ull}},
+ {{1054261451559398802ull, 6206896907103132071ull,
+ 6090131844391060917ull, 6601110124413513474ull}},
+ {{15152884869731412214ull, 12370307152306302992ull,
+ 16836036842343601954ull, 8251387655516891842ull}},
+ {{9470553043582132634ull, 12343127988618827274ull,
+ 15134209044892139125ull, 5157117284698057401ull}},
+ {{2614819267622889985ull, 1593851930491370381ull,
+ 5082703250833010195ull, 6446396605872571752ull}},
+ {{7880210102956000385ull, 15827372968396376688ull,
+ 6353379063541262743ull, 8057995757340714690ull}},
+ {{4925131314347500241ull, 16809637132888817286ull,
+ 8582547933140677118ull, 5036247348337946681ull}},
+ {{15379786179789151109ull, 11788674379256245799ull,
+ 15339870934853234302ull, 6295309185422433351ull}},
+ {{14613046706309050982ull, 5512470937215531441ull,
+ 14563152650139154974ull, 7869136481778041689ull}},
+ {{2215625163802075008ull, 17280352391041870863ull,
+ 2184441378695890002ull, 4918210301111276056ull}},
+ {{16604589510034757472ull, 12377068451947562770ull,
+ 2730551723369862503ull, 6147762876389095070ull}},
+ {{11532364850688671031ull, 10859649546507065559ull,
+ 12636561691067103937ull, 7684703595486368837ull}},
+ {{14125257059321501251ull, 18316496012635385734ull,
+ 10203694066130633912ull, 4802939747178980523ull}},
+ {{8433199287297100755ull, 4448875942084680552ull,
+ 8142931564235904487ull, 6003674683973725654ull}},
+ {{10541499109121375944ull, 949408909178462786ull, 955292418440104801ull,
+ 7504593354967157068ull}},
+ {{11200122961628247869ull, 12122595614305009001ull,
+ 9820429798379841308ull, 4690370846854473167ull}},
+ {{165095646753146124ull, 15153244517881261252ull,
+ 7663851229547413731ull, 5862963558568091459ull}},
+ {{206369558441432655ull, 14329869628924188661ull,
+ 4968128018506879260ull, 7328704448210114324ull}},
+ {{4869647966479178723ull, 17912337036155235826ull,
+ 6210160023133599075ull, 9160880560262642905ull}},
+ {{7655215997476874606ull, 8889367638383328439ull,
+ 15410565060526969182ull, 5725550350164151815ull}},
+ {{4957333978418705354ull, 1888337511124384741ull,
+ 14651520307231323574ull, 7156937937705189769ull}},
+ {{10808353491450769596ull, 11583793925760256734ull,
+ 4479342328756990755ull, 8946172422131487212ull}},
+ {{2143534913729343094ull, 4934028194386466507ull,
+ 12022960992327895030ull, 5591357763832179507ull}},
+ {{16514476697443842579ull, 15390907279837858941ull,
+ 10417015221982480883ull, 6989197204790224384ull}},
+ {{6808037816522639511ull, 14626948081369935773ull,
+ 13021269027478101104ull, 8736496505987780480ull}},
+ {{6560866644540343647ull, 9141842550856209858ull,
+ 8138293142173813190ull, 5460310316242362800ull}},
+ {{17424455342530205366ull, 2203931151715486514ull,
+ 10172866427717266488ull, 6825387895302953500ull}},
+ {{12557197141307980900ull, 2754913939644358143ull,
+ 12716083034646583110ull, 8531734869128691875ull}},
+ {{14765777240958569919ull, 15556879267559887551ull,
+ 5641708887440420491ull, 5332334293205432422ull}},
+ {{13845535532770824494ull, 14834413066022471535ull,
+ 16275508146155301422ull, 6665417866506790527ull}},
+ {{12695233397536142714ull, 9319644295673313611ull,
+ 15732699164266738874ull, 8331772333133488159ull}},
+ {{5628677864246395244ull, 10436463703223208911ull,
+ 16750466005307793652ull, 5207357708208430099ull}},
+ {{2424161311880606151ull, 13045579629029011139ull,
+ 16326396488207354161ull, 6509197135260537624ull}},
+ {{16865259695132921401ull, 2471916481004100211ull,
+ 1961251536549641086ull, 8136496419075672031ull}},
+ {{8234944300244381924ull, 15380005855909726344ull,
+ 8143311237984607534ull, 5085310261922295019ull}},
+ {{10293680375305477404ull, 10001635283032382122ull,
+ 5567453029053371514ull, 6356637827402868774ull}},
+ {{3643728432277070947ull, 3278672066935701845ull,
+ 16182688323171490201ull, 7945797284253585967ull}},
+ {{4583173279386863294ull, 13578385087903283413ull,
+ 17031709229623263231ull, 4966123302658491229ull}},
+ {{10340652617660967022ull, 12361295341451716362ull,
+ 7454578481746915327ull, 6207654128323114037ull}},
+ {{3702443735221432969ull, 10839933158387257549ull,
+ 13929909120611032063ull, 7759567660403892546ull}},
+ {{4619870343727089558ull, 13692487251633117824ull,
+ 13317879218809282943ull, 4849729787752432841ull}},
+ {{5774837929658861947ull, 12503923046114009376ull,
+ 2812290968229439967ull, 6062162234690541052ull}},
+ {{7218547412073577434ull, 11018217789215123816ull,
+ 3515363710286799959ull, 7577702793363176315ull}},
+ {{4511592132545985896ull, 13803915145900534241ull,
+ 18338003383425107638ull, 4736064245851985196ull}},
+ {{10251176184109870274ull, 8031521895520891993ull,
+ 4475760155571832932ull, 5920080307314981496ull}},
+ {{17425656248564725747ull, 10039402369401114991ull,
+ 5594700194464791165ull, 7400100384143726870ull}},
+ {{17808564182994035448ull, 8580469490089390821ull,
+ 17331745676822658190ull, 4625062740089829293ull}},
+ {{8425647173460380598ull, 1502214825756962719ull,
+ 7829624040746159026ull, 5781328425112286617ull}},
+ {{5920372948398087843ull, 11101140569050979207ull,
+ 14398716069360086686ull, 7226660531390358271ull}},
+ {{2788780167070221900ull, 4653053674458948201ull,
+ 13386709068272720454ull, 9033325664237947839ull}},
+ {{13272202650487358448ull, 16743216601819006337ull,
+ 15284222195311532139ull, 5645828540148717399ull}},
+ {{2755195257827034347ull, 16317334733846370018ull,
+ 14493591725712027270ull, 7057285675185896749ull}},
+ {{12667366109138568742ull, 11173296380453186714ull,
+ 4281931601857870376ull, 8821607093982370937ull}},
+ {{12528789836638993368ull, 6983310237783241696ull,
+ 14205422297229638745ull, 5513504433738981835ull}},
+ {{15660987295798741710ull, 13340823815656440024ull,
+ 13145091853109660527ull, 6891880542173727294ull}},
+ {{1129490046038875521ull, 12064343751143162127ull,
+ 7207992779532299851ull, 8614850677717159118ull}},
+ {{7623460306415379057ull, 5234371835250782377ull,
+ 18340053542489851119ull, 5384281673573224448ull}},
+ {{14141011401446611725ull, 1931278775636090067ull,
+ 4478322854402762283ull, 6730352091966530561ull}},
+ {{13064578233380876752ull, 16249156524827276296ull,
+ 10209589586430840757ull, 8412940114958163201ull}},
+ {{8165361395863047970ull, 12461565837230741637ull,
+ 17910208537587745233ull, 5258087571848852000ull}},
+ {{14818387763256197867ull, 1741899241256263334ull,
+ 3941016598275129926ull, 6572609464811065001ull}},
+ {{9299612667215471525ull, 11400746088425104976ull,
+ 9537956766271300311ull, 8215761831013831251ull}},
+ {{5812257917009669703ull, 14042995332906772466ull,
+ 3655379969705868742ull, 5134851144383644532ull}},
+ {{16488694433116862937ull, 8330372129278689774ull,
+ 4569224962132335928ull, 6418563930479555665ull}},
+ {{11387496004541302863ull, 10412965161598362218ull,
+ 10323217221092807814ull, 8023204913099444581ull}},
+ {{11728871021265702194ull, 1896417207571588482ull,
+ 8757853772396698836ull, 5014503070687152863ull}},
+ {{5437716739727351934ull, 2370521509464485603ull,
+ 6335631197068485641ull, 6268128838358941079ull}},
+ {{2185459906231802013ull, 7574837905257994908ull,
+ 3307852977908219147ull, 7835161047948676349ull}},
+ {{10589284478249652067ull, 2428430681572552865ull,
+ 4373251120406330919ull, 4896975654967922718ull}},
+ {{17848291616239452987ull, 16870596407247854793ull,
+ 14689935937362689456ull, 6121219568709903397ull}},
+ {{8475306465017152522ull, 2641501435350266876ull,
+ 4527361866421198109ull, 7651524460887379247ull}},
+ {{14520438577490496134ull, 3956781406307610749ull,
+ 9747130194154330674ull, 4782202788054612029ull}},
+ {{4315490166580956456ull, 14169348794739289245ull,
+ 16795598761120301246ull, 5977753485068265036ull}},
+ {{10006048726653583474ull, 8488313956569335748ull,
+ 2547754377690824942ull, 7472191856335331296ull}},
+ {{15477152491013265479ull, 693510204428446938ull,
+ 1592346486056765589ull, 4670119910209582060ull}},
+ {{10123068576911806041ull, 5478573773962946577ull,
+ 1990433107570956986ull, 5837649887761977575ull}},
+ {{17265521739567145455ull, 16071589254308459029ull,
+ 16323099439745859944ull, 7297062359702471968ull}},
+ {{7746844119176768107ull, 1642742494176022171ull,
+ 1957130225972773315ull, 9121327949628089961ull}},
+ {{2535934565271786115ull, 17167615123355871521ull,
+ 12752421437301453081ull, 5700829968517556225ull}},
+ {{7781604225017120547ull, 7624460848912675689ull,
+ 2105468741344652640ull, 7126037460646945282ull}},
+ {{14338691299698788588ull, 9530576061140844611ull,
+ 11855207963535591608ull, 8907546825808681602ull}},
+ {{6655839053098048916ull, 5956610038213027882ull,
+ 12021190995637132659ull, 5567216766130426001ull}},
+ {{17543170853227336953ull, 2834076529338896948ull,
+ 1191430689264252112ull, 6959020957663032502ull}},
+ {{3482219492824619575ull, 3542595661673621186ull,
+ 10712660398435090948ull, 8698776197078790627ull}},
+ {{6788073201442775138ull, 11437494325400789049ull,
+ 4389569739808237890ull, 5436735123174244142ull}},
+ {{13096777520230856827ull, 5073495869896210503ull,
+ 14710334211615073171ull, 6795918903967805177ull}},
+ {{11759285881861183129ull, 1730183818942875225ull,
+ 4552859709236677752ull, 8494898629959756472ull}},
+ {{432024648522157600ull, 1081364886839297016ull, 2845537318272923595ull,
+ 5309311643724847795ull}},
+ {{540030810652697000ull, 15186764163831284982ull,
+ 17391979703123318205ull, 6636639554656059743ull}},
+ {{9898410550170647058ull, 5148397149506942515ull,
+ 17128288610476759853ull, 8295799443320074679ull}},
+ {{3880663584642960459ull, 5523591227655533024ull,
+ 17622709409189056764ull, 5184874652075046674ull}},
+ {{4850829480803700574ull, 6904489034569416280ull,
+ 12805014724631545147ull, 6481093315093808343ull}},
+ {{6063536851004625717ull, 4018925274784382446ull,
+ 11394582387362043530ull, 8101366643867260429ull}},
+ {{17624768587160054785ull, 7123514315167626932ull,
+ 9427457001314971158ull, 5063354152417037768ull}},
+ {{3584216660240516866ull, 18127764930814309474ull,
+ 11784321251643713947ull, 6329192690521297210ull}},
+ {{13703642862155421890ull, 18048020145090498938ull,
+ 5507029527699866626ull, 7911490863151621513ull}},
+ {{13176462807274526585ull, 15891698609108949740ull,
+ 14971108500880886401ull, 4944681789469763445ull}},
+ {{16470578509093158232ull, 6029565206104023463ull,
+ 4878827570818944290ull, 6180852236837204307ull}},
+ {{15976537117939059886ull, 16760328544484805137ull,
+ 1486848445096292458ull, 7726065296046505384ull}},
+ {{3067806671070830573ull, 15086891358730391115ull,
+ 929280278185182786ull, 4828790810029065865ull}},
+ {{17669816394120701928ull, 9635242161558213085ull,
+ 5773286366158866387ull, 6035988512536332331ull}},
+ {{8252212437368713697ull, 7432366683520378453ull,
+ 2604921939271195080ull, 7544985640670415414ull}},
+ {{7463475782569140013ull, 4645229177200236533ull,
+ 15463134267326660637ull, 4715616025419009633ull}},
+ {{13941030746638812920ull, 10418222489927683570ull,
+ 5493859778876162084ull, 5894520031773762042ull}},
+ {{8202916396443740342ull, 13022778112409604463ull,
+ 16090696760449978413ull, 7368150039717202552ull}},
+ {{5641959477127287524ull, 2443414585229841867ull,
+ 1666626876852921401ull, 9210187549646503191ull}},
+ {{1220381663990860750ull, 13056349161837120927ull,
+ 7959170825674157731ull, 5756367218529064494ull}},
+ {{15360535135270739650ull, 11708750433869013254ull,
+ 725591495237921356ull, 7195459023161330618ull}},
+ {{9977296882233648754ull, 14635938042336266568ull,
+ 10130361405902177503ull, 8994323778951663272ull}},
+ {{6235810551396030472ull, 16064990304101248461ull,
+ 6331475878688860939ull, 5621452361844789545ull}},
+ {{12406449207672425993ull, 15469551861699172672ull,
+ 12526030866788464078ull, 7026815452305986931ull}},
+ {{15508061509590532492ull, 10113567790269190032ull,
+ 11045852565058192194ull, 8783519315382483664ull}},
+ {{9692538443494082807ull, 10932665887345631674ull,
+ 6903657853161370121ull, 5489699572114052290ull}},
+ {{2892301017512827701ull, 18277518377609427497ull,
+ 17852944353306488459ull, 6862124465142565362ull}},
+ {{8227062290318422530ull, 18235211953584396467ull,
+ 13092808404778334766ull, 8577655581428206703ull}},
+ {{2836070922235320130ull, 6785321452562859888ull,
+ 15100534280627541085ull, 5361034738392629189ull}},
+ {{3545088652794150162ull, 13093337834130962764ull,
+ 5040609795502262644ull, 6701293422990786487ull}},
+ {{4431360815992687702ull, 16366672292663703455ull,
+ 1689076225950440401ull, 8376616778738483109ull}},
+ {{9687129537636511670ull, 3311641155273732803ull,
+ 3361515650432719203ull, 5235385486711551943ull}},
+ {{7497225903618251684ull, 17974609499374329716ull,
+ 18036952618323062715ull, 6544231858389439928ull}},
+ {{9371532379522814604ull, 17856575855790524241ull,
+ 4099446699194276778ull, 8180289822986799911ull}},
+ {{17386422783270228888ull, 15772045928296465554ull,
+ 9479683214637504842ull, 5112681139366749944ull}},
+ {{12509656442233010302ull, 10491685373515806135ull,
+ 11849604018296881053ull, 6390851424208437430ull}},
+ {{11025384534363874973ull, 17726292735322145573ull,
+ 5588632986016325508ull, 7988564280260546788ull}},
+ {{9196708343191115810ull, 1855560922721565175ull,
+ 12716267653114979251ull, 4992852675162841742ull}},
+ {{6884199410561506859ull, 16154509208684120181ull,
+ 6671962529538948255ull, 6241065843953552178ull}},
+ {{13216935281629271477ull, 15581450492427762322ull,
+ 17563325198778461127ull, 7801332304941940222ull}},
+ {{12872270569445682578ull, 16655935585408433307ull,
+ 6365392230809150300ull, 4875832690588712639ull}},
+ {{11478652193379715318ull, 2373175408050990018ull,
+ 3345054270084049972ull, 6094790863235890799ull}},
+ {{5124943204869868339ull, 2966469260063737523ull,
+ 18016375892887226177ull, 7618488579044863498ull}},
+ {{897246493829973760ull, 13383258333608305712ull,
+ 15871920951481904264ull, 4761555361903039686ull}},
+ {{1121558117287467200ull, 16729072917010382140ull,
+ 10616529152497604522ull, 5951944202378799608ull}},
+ {{1401947646609334000ull, 11687969109408201867ull,
+ 13270661440622005653ull, 7439930252973499510ull}},
+ {{17017118343626691414ull, 9610823702593820118ull,
+ 3682477381961365629ull, 4649956408108437194ull}},
+ {{12048025892678588460ull, 16625215646669663052ull,
+ 13826468764306482844ull, 5812445510135546492ull}},
+ {{15060032365848235574ull, 2334775484627527199ull,
+ 17283085955383103556ull, 7265556887669433115ull}},
+ {{14213354438882906564ull, 2918469355784408999ull,
+ 16992171425801491541ull, 9081946109586791394ull}},
+ {{15800875551942898459ull, 4129886356578949576ull,
+ 15231793159553320117ull, 5676216318491744621ull}},
+ {{1304350366219071457ull, 9774043964151074875ull,
+ 5204683394159486434ull, 7095270398114680777ull}},
+ {{15465496013056003033ull, 2994182918334067785ull,
+ 11117540261126745947ull, 8869087997643350971ull}},
+ {{2748405980518920040ull, 18012265388454650030ull,
+ 4642619653990522264ull, 5543179998527094357ull}},
+ {{12658879512503425858ull, 4068587661858760921ull,
+ 10414960585915540735ull, 6928974998158867946ull}},
+ {{1988541335347118610ull, 474048558896063248ull, 3795328695539650111ull,
+ 8661218747698584933ull}},
+ {{1242838334591949132ull, 7213809376951121386ull,
+ 4677923443925975271ull, 5413261717311615583ull}},
+ {{10776919955094712222ull, 4405575702761513828ull,
+ 1235718286480081185ull, 6766577146639519479ull}},
+ {{13471149943868390278ull, 10118655646879280189ull,
+ 15379705913382265193ull, 8458221433299399348ull}},
+ {{10725311724131437876ull, 17853374825368019878ull,
+ 388944159009139937ull, 5286388395812124593ull}},
+ {{4183267618309521537ull, 8481660476427861136ull,
+ 5097866217188812826ull, 6607985494765155741ull}},
+ {{5229084522886901921ull, 1378703558680050612ull,
+ 10984018789913403937ull, 8259981868456444676ull}},
+ {{12491549863659089509ull, 12390904770243501392ull,
+ 16088383780550653268ull, 5162488667785277922ull}},
+ {{15614437329573861886ull, 15488630962804376740ull,
+ 10887107688833540777ull, 6453110834731597403ull}},
+ {{1071302588257775741ull, 5525730648223307214ull,
+ 8997198592614538068ull, 8066388543414496754ull}},
+ {{14504622172943273550ull, 12676953691994342816ull,
+ 10234935138811474196ull, 5041492839634060471ull}},
+ {{18130777716179091938ull, 15846192114992928520ull,
+ 8181982905086954841ull, 6301866049542575589ull}},
+ {{4216728071514313306ull, 5972682088458996939ull,
+ 14839164649786081456ull, 7877332561928219486ull}},
+ {{329612035482751864ull, 3732926305286873087ull, 4662791887688913006ull,
+ 4923332851205137179ull}},
+ {{14247073099635603542ull, 13889529918463367166ull,
+ 1216803841183753353ull, 6154166064006421474ull}},
+ {{8585469337689728620ull, 3526854342797045246ull,
+ 10744376838334467500ull, 7692707580008026842ull}},
+ {{754232317628692484ull, 11427656001102929087ull,
+ 11326921542386430091ull, 4807942237505016776ull}},
+ {{14777848452318029316ull, 9672883982951273454ull,
+ 14158651927983037614ull, 6009927796881270970ull}},
+ {{9248938528542760837ull, 2867732941834316010ull,
+ 8474942873124021210ull, 7512409746101588713ull}},
+ {{10392272598766613428ull, 6404019107073835410ull,
+ 16826054341770983016ull, 4695256091313492945ull}},
+ {{3766968711603490976ull, 8005023883842294263ull,
+ 7197509871931565058ull, 5869070114141866182ull}},
+ {{97024871076975816ull, 782907817948092021ull, 18220259376769232131ull,
+ 7336337642677332727ull}},
+ {{4732967107273607674ull, 14813692827717278738ull,
+ 18163638202534152259ull, 9170422053346665909ull}},
+ {{7569790460473392701ull, 6952715008109605259ull,
+ 13658116885797539114ull, 5731513783341666193ull}},
+ {{4850552057164352972ull, 17914265796991782382ull,
+ 3237588051964760180ull, 7164392229177082742ull}},
+ {{15286562108310217022ull, 3946088172530176361ull,
+ 13270357101810726034ull, 8955490286471353427ull}},
+ {{2636572290052803783ull, 7077991126258748130ull,
+ 5988130179418009819ull, 5597181429044595892ull}},
+ {{12519087399420780537ull, 4235802889396047258ull,
+ 7485162724272512274ull, 6996476786305744865ull}},
+ {{6425487212421199863ull, 14518125648599834881ull,
+ 13968139423768028246ull, 8745595982882181081ull}},
+ {{15545144553831719674ull, 4462142511947508896ull,
+ 1812558112213935798ull, 5465997489301363176ull}},
+ {{984686618580097977ull, 14801050176789161929ull,
+ 2265697640267419747ull, 6832496861626703970ull}},
+ {{5842544291652510375ull, 13889626702559064507ull,
+ 12055494087189050492ull, 8540621077033379962ull}},
+ {{1345747173069125033ull, 17904388725954191125ull,
+ 12146369822920544461ull, 5337888173145862476ull}},
+ {{6293869984763794195ull, 8545427852160575194ull,
+ 15182962278650680577ull, 6672360216432328095ull}},
+ {{17090709517809518551ull, 15293470833628106896ull,
+ 14367016829885962817ull, 8340450270540410119ull}},
+ {{10681693448630949095ull, 2640890243376484954ull,
+ 15896914546319808617ull, 5212781419087756324ull}},
+ {{4128744773933910560ull, 7912798822647994097ull,
+ 1424399109190209155ull, 6515976773859695406ull}},
+ {{9772616985844776104ull, 5279312509882604717ull,
+ 11003870923342537252ull, 8144970967324619257ull}},
+ {{8413728625366679017ull, 12522942355531403756ull,
+ 18406634373157555542ull, 5090606854577887035ull}},
+ {{10517160781708348771ull, 6430305907559478887ull,
+ 18396606948019556524ull, 6363258568222358794ull}},
+ {{8534764958708048060ull, 8037882384449348609ull,
+ 13772386648169669847ull, 7954073210277948493ull}},
+ {{16863443145260999798ull, 11941205517921924736ull,
+ 10913584664319737606ull, 4971295756423717808ull}},
+ {{2632559857866698131ull, 5703134860547630113ull,
+ 13641980830399672008ull, 6214119695529647260ull}},
+ {{7902385840760760568ull, 7128918575684537641ull,
+ 17052476037999590010ull, 7767649619412059075ull}},
+ {{16468206196543945115ull, 9067260128230223929ull,
+ 8351954514536049804ull, 4854781012132536922ull}},
+ {{6750199690397767682ull, 11334075160287779912ull,
+ 1216571106315286447ull, 6068476265165671153ull}},
+ {{8437749612997209602ull, 9555907931932336986ull,
+ 6132399901321495963ull, 7585595331457088941ull}},
+ {{9885279526550643905ull, 3666599448244016664ull,
+ 6138592947539628929ull, 4740997082160680588ull}},
+ {{12356599408188304882ull, 9194935328732408734ull,
+ 7673241184424536161ull, 5926246352700850735ull}},
+ {{6222377223380605294ull, 16105355179342898822ull,
+ 4979865462103282297ull, 7407807940876063419ull}},
+ {{17724043819895042021ull, 3148317959448229907ull,
+ 806572904600857484ull, 4629879963047539637ull}},
+ {{17543368756441414622ull, 3935397449310287384ull,
+ 5619902149178459759ull, 5787349953809424546ull}},
+ {{3482466871842216661ull, 307560793210471327ull,
+ 16248249723327850507ull, 7234187442261780682ull}},
+ {{18188141645084934539ull, 14219509046795252870ull,
+ 11086940117305037325ull, 9042734302827225853ull}},
+ {{6755902509750696183ull, 11193036163460726996ull,
+ 9235180582529342280ull, 5651708939267016158ull}},
+ {{8444878137188370228ull, 13991295204325908745ull,
+ 2320603691306902042ull, 7064636174083770198ull}},
+ {{15167783689912850689ull, 8265746968552610123ull,
+ 12124126650988403361ull, 8830795217604712747ull}},
+ {{7174021796981837729ull, 16695306901413851087ull,
+ 5271736147654058148ull, 5519247011002945467ull}},
+ {{4355841227799909257ull, 2422389553057762243ull,
+ 1977984166140184782ull, 6899058763753681834ull}},
+ {{833115516322498667ull, 12251358978176978612ull,
+ 11695852244530006785ull, 8623823454692102292ull}},
+ {{9744069234556337475ull, 739570333719529776ull,
+ 16533279689686030049ull, 5389889659182563932ull}},
+ {{12180086543195421844ull, 5536148935576800124ull,
+ 2219855538397985945ull, 6737362073978204916ull}},
+ {{15225108178994277305ull, 11531872187898388059ull,
+ 2774819422997482431ull, 8421702592472756145ull}},
+ {{7209849602657729364ull, 14124949145077574393ull,
+ 13263477185441896279ull, 5263564120295472590ull}},
+ {{13623998021749549609ull, 13044500412919580087ull,
+ 7355974444947594541ull, 6579455150369340738ull}},
+ {{12418311508759549107ull, 2470567460867311397ull,
+ 18418340093039268985ull, 8224318937961675922ull}},
+ {{10067287702188412144ull, 13073319709110539383ull,
+ 16123148576576931019ull, 5140199336226047451ull}},
+ {{7972423609308127276ull, 11729963617960786325ull,
+ 15542249702293775870ull, 6425249170282559314ull}},
+ {{14577215530062546998ull, 5439082485596207098ull,
+ 10204440091012444030ull, 8031561462853199143ull}},
+ {{13722445724716479778ull, 17234484608779793148ull,
+ 13295304084523859374ull, 5019725914283249464ull}},
+ {{17153057155895599723ull, 12319733724119965627ull,
+ 16619130105654824218ull, 6274657392854061830ull}},
+ {{16829635426442111749ull, 6176295118295181226ull,
+ 11550540595213754465ull, 7843321741067577288ull}},
+ {{15130208159953707747ull, 15389399495002958026ull,
+ 7219087872008596540ull, 4902076088167235805ull}},
+ {{9689388163087358876ull, 790005295044145917ull,
+ 13635545858438133580ull, 6127595110209044756ull}},
+ {{16723421222286586499ull, 987506618805182396ull,
+ 17044432323047666975ull, 7659493887761305945ull}},
+ {{1228766227074340754ull, 7534720664394320854ull,
+ 3735241174263710003ull, 4787183679850816216ull}},
+ {{10759329820697701750ull, 4806714812065513163ull,
+ 4669051467829637504ull, 5983979599813520270ull}},
+ {{8837476257444739284ull, 6008393515081891454ull,
+ 15059686371641822688ull, 7479974499766900337ull}},
+ {{911736642475574149ull, 3755245946926182159ull, 2494774954635057324ull,
+ 4674984062354312711ull}},
+ {{14974728858376631398ull, 4694057433657727698ull,
+ 16953526748575985367ull, 5843730077942890888ull}},
+ {{9495039036116013439ull, 1255885773644771719ull,
+ 2745164362010430093ull, 7304662597428613611ull}},
+ {{7257112776717628895ull, 6181543235483352553ull,
+ 17266513507795201328ull, 9130828246785767013ull}},
+ {{16064910531516987819ull, 3863464522177095345ull,
+ 13097413951585694782ull, 5706767654241104383ull}},
+ {{6246080109114071062ull, 14052702689576144990ull,
+ 11760081421054730573ull, 7133459567801380479ull}},
+ {{17030972173247364635ull, 3730820306688017525ull,
+ 10088415757891025313ull, 8916824459751725599ull}},
+ {{12950200617493296849ull, 13860977737748480713ull,
+ 13222788876322972676ull, 5573015287344828499ull}},
+ {{2352692716584457350ull, 17326222172185600892ull,
+ 11916800076976327941ull, 6966269109181035624ull}},
+ {{2940865895730571687ull, 7822719659949837403ull,
+ 14896000096220409927ull, 8707836386476294530ull}},
+ {{17978942249327464968ull, 11806728815109730232ull,
+ 13921686078565144108ull, 5442397741547684081ull}},
+ {{4026933737949779594ull, 14758411018887162791ull,
+ 3567049542924266423ull, 6802997176934605102ull}},
+ {{421981154009836589ull, 13836327755181565585ull,
+ 13682183965510108837ull, 8503746471168256377ull}},
+ {{11792953267324617628ull, 10953547856202172442ull,
+ 1633835950802736167ull, 5314841544480160236ull}},
+ {{5517819547300996227ull, 9080248801825327649ull,
+ 2042294938503420209ull, 6643551930600200295ull}},
+ {{11508960452553633188ull, 15961997020709047465ull,
+ 16387926728411438973ull, 8304439913250250368ull}},
+ {{275571255204938887ull, 12282091147156848618ull,
+ 10242454205257149358ull, 5190274945781406480ull}},
+ {{9567836105860949416ull, 6129241897091284964ull,
+ 12803067756571436698ull, 6487843682226758100ull}},
+ {{11959795132326186770ull, 16884924408218882013ull,
+ 16003834695714295872ull, 8109804602783447625ull}},
+ {{9780714966917560683ull, 10553077755136801258ull,
+ 3084867657180353064ull, 5068627876739654766ull}},
+ {{3002521671792175046ull, 13191347193921001573ull,
+ 13079456608330217138ull, 6335784845924568457ull}},
+ {{8364838108167606712ull, 7265811955546476158ull,
+ 2514262705130607711ull, 7919731057405710572ull}},
+ {{616337799177366291ull, 11458661499857629455ull,
+ 10794786227561405627ull, 4949831910878569107ull}},
+ {{14605480304253871576ull, 9711640856394648914ull,
+ 8881796766024369130ull, 6187289888598211384ull}},
+ {{9033478343462563661ull, 2916179033638535335ull,
+ 11102245957530461413ull, 7734112360747764230ull}},
+ {{12563452992305184145ull, 4128454905237778536ull,
+ 2327217705029150479ull, 4833820225467352644ull}},
+ {{15704316240381480181ull, 548882613119835266ull,
+ 2909022131286438099ull, 6042275281834190805ull}},
+ {{10407023263622074418ull, 14521161321681957795ull,
+ 8247963682535435527ull, 7552844102292738506ull}},
+ {{4198546530550102559ull, 15993254853692305478ull,
+ 9766663320012035108ull, 4720527563932961566ull}},
+ {{14471555200042404007ull, 1544824493405830231ull,
+ 2984957113160268078ull, 5900659454916201958ull}},
+ {{13477757981625617104ull, 11154402653612063597ull,
+ 12954568428305110905ull, 7375824318645252447ull}},
+ {{3012139421749857668ull, 107945261732915785ull,
+ 11581524516954000728ull, 9219780398306565559ull}},
+ {{13411802184662130803ull, 67465788583072365ull,
+ 14155981850737332311ull, 5762362748941603474ull}},
+ {{2929694675545499791ull, 13919390291011004169ull,
+ 8471605276566889580ull, 7202953436177004343ull}},
+ {{8273804362859262643ull, 17399237863763755211ull,
+ 5977820577281224071ull, 9003691795221255429ull}},
+ {{2865284717573345200ull, 17792052692493428863ull,
+ 6041980870014458996ull, 5627307372013284643ull}},
+ {{17416663952248845212ull, 3793321791907234462ull,
+ 2940790069090685842ull, 7034134215016605804ull}},
+ {{12547457903456280707ull, 13965024276738818886ull,
+ 3675987586363357302ull, 8792667768770757255ull}},
+ {{3230475171232787538ull, 4116454154534373900ull,
+ 9215021269118180170ull, 5495417355481723284ull}},
+ {{4038093964040984422ull, 14368939730022743183ull,
+ 11518776586397725212ull, 6869271694352154105ull}},
+ {{435931436623842624ull, 17961174662528428979ull, 563412677714992803ull,
+ 8586589617940192632ull}},
+ {{16413358212385759304ull, 8919891154866574159ull,
+ 352132923571870502ull, 5366618511212620395ull}},
+ {{15905011747054811226ull, 1926491906728441891ull,
+ 14275224209747001840ull, 6708273139015775493ull}},
+ {{15269578665391126128ull, 2408114883410552364ull,
+ 4008972206901588588ull, 8385341423769719367ull}},
+ {{320114629014678022ull, 10728443838986371036ull,
+ 9423136656954574723ull, 5240838389856074604ull}},
+ {{400143286268347528ull, 8798868780305575891ull,
+ 11778920821193218404ull, 6551047987320093255ull}},
+ {{14335237163117598122ull, 10998585975381969863ull,
+ 10111965008064135101ull, 8188809984150116569ull}},
+ {{15877052254589580682ull, 9179959243827425116ull,
+ 17849193176108554198ull, 5118006240093822855ull}},
+ {{1399571244527424237ull, 2251577017929505588ull,
+ 17699805451708304844ull, 6397507800117278569ull}},
+ {{1749464055659280296ull, 2814471272411881985ull,
+ 8289698759353217343ull, 7996884750146598212ull}},
+ {{12622630080855519945ull, 8676573572898508096ull,
+ 14404433761450536647ull, 4998052968841623882ull}},
+ {{15778287601069399931ull, 6234030947695747216ull,
+ 8782170164958395001ull, 6247566211052029853ull}},
+ {{1276115427627198298ull, 12404224703047071925ull,
+ 15589398724625381655ull, 7809457763815037316ull}},
+ {{3103415151480692888ull, 14670169467045501809ull,
+ 520002166036087726ull, 4880911102384398323ull}},
+ {{8490954957778254014ull, 9114339796952101453ull,
+ 14485060762827273370ull, 6101138877980497903ull}},
+ {{15225379715650205422ull, 2169552709335351008ull,
+ 13494639935106703809ull, 7626423597475622379ull}},
+ {{9515862322281378389ull, 12885185489403064140ull,
+ 6128306950227995928ull, 4766514748422263987ull}},
+ {{11894827902851722986ull, 16106481861753830175ull,
+ 3048697669357607006ull, 5958143435527829984ull}},
+ {{10256848860137265828ull, 10909730290337511911ull,
+ 3810872086697008758ull, 7447679294409787480ull}},
+ {{13328059565226872999ull, 2206895413033557040ull,
+ 2381795054185630474ull, 4654799559006117175ull}},
+ {{16660074456533591248ull, 11981991303146722108ull,
+ 16812301873014201804ull, 5818499448757646468ull}},
+ {{2378348996957437444ull, 14977489128933402636ull,
+ 2568633267558200639ull, 7273124310947058086ull}},
+ {{2972936246196796805ull, 14110175392739365391ull,
+ 12434163621302526607ull, 9091405388683822607ull}},
+ {{8775614181514079860ull, 15736388648103185225ull,
+ 14688881290955160985ull, 5682128367927389129ull}},
+ {{15581203745319987728ull, 5835427754846817819ull,
+ 4526043558411787520ull, 7102660459909236412ull}},
+ {{14864818663222596756ull, 7294284693558522274ull,
+ 5657554448014734400ull, 8878325574886545515ull}},
+ {{13902197682941510877ull, 4558927933474076421ull,
+ 1230128520795515048ull, 5548953484304090947ull}},
+ {{3542689048394724884ull, 5698659916842595527ull,
+ 15372718706276557522ull, 6936191855380113683ull}},
+ {{18263419365775569817ull, 16346696932908020216ull,
+ 14604212364418308998ull, 8670239819225142104ull}},
+ {{11414637103609731136ull, 5604999564640124731ull,
+ 9127632727761443124ull, 5418899887015713815ull}},
+ {{9656610361084776016ull, 7006249455800155914ull,
+ 6797854891274416001ull, 6773624858769642269ull}},
+ {{2847390914501194211ull, 13369497838177582797ull,
+ 13109004632520407905ull, 8467031073462052836ull}},
+ {{4085462330776940334ull, 1438407121219907392ull,
+ 17416499932180030749ull, 5291894420913783022ull}},
+ {{5106827913471175418ull, 6409694919952272144ull,
+ 12547252878370262628ull, 6614868026142228778ull}},
+ {{6383534891838969272ull, 8012118649940340180ull,
+ 6460694061108052477ull, 8268585032677785973ull}},
+ {{13213081344254131603ull, 7313417165426406564ull,
+ 6343776797406226750ull, 5167865645423616233ull}},
+ {{16516351680317664504ull, 18365143493637784013ull,
+ 12541407015185171341ull, 6459832056779520291ull}},
+ {{6810381545114916918ull, 9121371311765066305ull,
+ 11065072750554076273ull, 8074790070974400364ull}},
+ {{15785703511765292834ull, 17230072115921636200ull,
+ 16139042505951073478ull, 5046743794359000227ull}},
+ {{1285385315997064426ull, 12314218108047269443ull,
+ 15562117114011453944ull, 6308429742948750284ull}},
+ {{15441789700278494244ull, 15392772635059086803ull,
+ 1005902318804765814ull, 7885537178685937856ull}},
+ {{7345275553460364951ull, 5008796878484541348ull, 628688949252978634ull,
+ 4928460736678711160ull}},
+ {{9181594441825456189ull, 15484368134960452493ull,
+ 785861186566223292ull, 6160575920848388950ull}},
+ {{16088679070709208140ull, 908716094991014000ull,
+ 10205698520062554924ull, 7700719901060486187ull}},
+ {{10055424419193255087ull, 9791319596224159558ull,
+ 4072718565825402875ull, 4812949938162803867ull}},
+ {{3345908487136793051ull, 7627463476852811544ull, 479212188854365690ull,
+ 6016187422703504834ull}},
+ {{4182385608920991314ull, 310957309211238622ull, 9822387272922732921ull,
+ 7520234278379381042ull}},
+ {{16449049060857783283ull, 11723563364325493898ull,
+ 10750678064004095979ull, 4700146423987113151ull}},
+ {{11337939289217453296ull, 10042768186979479469ull,
+ 8826661561577732070ull, 5875183029983891439ull}},
+ {{337366056239652908ull, 3330088196869573529ull, 6421640933544777184ull,
+ 7343978787479864299ull}},
+ {{5033393588726954039ull, 4162610246086966911ull,
+ 3415365148503583576ull, 9179973484349830374ull}},
+ {{10063400020595428130ull, 2601631403804354319ull,
+ 15969661273096903447ull, 5737483427718643983ull}},
+ {{7967564007316897259ull, 17087097310037606611ull,
+ 15350390572943741404ull, 7171854284648304979ull}},
+ {{5347768990718733670ull, 2912127563837456648ull,
+ 14576302197752288852ull, 8964817855810381224ull}},
+ {{3342355619199208544ull, 11043451764253186213ull,
+ 9110188873595180532ull, 5603011159881488265ull}},
+ {{8789630542426398583ull, 13804314705316482766ull,
+ 15999422110421363569ull, 7003763949851860331ull}},
+ {{1763666141178222421ull, 3420335326363439746ull,
+ 15387591619599316558ull, 8754704937314825414ull}},
+ {{5713977356663776917ull, 15972767634259313553ull,
+ 5005558743822184944ull, 5471690585821765884ull}},
+ {{11754157714257109051ull, 1519215469114590325ull,
+ 6256948429777731181ull, 6839613232277207355ull}},
+ {{857639087539222601ull, 6510705354820625811ull, 3209499518794776072ull,
+ 8549516540346509194ull}},
+ {{16676925494207871790ull, 4069190846762891131ull,
+ 6617623217674122949ull, 5343447837716568246ull}},
+ {{16234470849332451833ull, 9698174576881001818ull,
+ 17495401058947429494ull, 6679309797145710307ull}},
+ {{11069716524810788983ull, 2899346184246476465ull,
+ 17257565305256898964ull, 8349137246432137884ull}},
+ {{1043800365661259ull, 11035463402008823599ull, 1562606278930786044ull,
+ 5218210779020086178ull}},
+ {{13836362805739240285ull, 13794329252511029498ull,
+ 11176629885518258363ull, 6522763473775107722ull}},
+ {{8072081470319274549ull, 12631225547211398969ull,
+ 4747415320043047146ull, 8153454342218884653ull}},
+ {{16574265965018016353ull, 12506201985434512259ull,
+ 5272977584240598418ull, 5095908963886802908ull}},
+ {{16106146437845132537ull, 6409380444938364516ull,
+ 6591221980300748023ull, 6369886204858503635ull}},
+ {{1685938973596864055ull, 3400039537745567742ull,
+ 3627341456948547125ull, 7962357756073129544ull}},
+ {{14888769913780203747ull, 4430867720304673790ull,
+ 2267088410592841953ull, 4976473597545705965ull}},
+ {{9387590355370478875ull, 10150270668808230142ull,
+ 7445546531668440345ull, 6220591996932132456ull}},
+ {{2511115907358322786ull, 17299524354437675582ull,
+ 9306933164585550431ull, 7775739996165165570ull}},
+ {{15404505497381115454ull, 17729731749164629094ull,
+ 10428519246293356923ull, 4859837497603228481ull}},
+ {{10032259834871618509ull, 17550478668028398464ull,
+ 17647335076294084058ull, 6074796872004035601ull}},
+ {{12540324793589523136ull, 12714726298180722272ull,
+ 8224110790085441361ull, 7593496090005044502ull}},
+ {{7837702995993451960ull, 1029174908721869564ull, 528383225376012947ull,
+ 4745935056253152814ull}},
+ {{9797128744991814950ull, 15121526691184500667ull,
+ 9883851068574791991ull, 5932418820316441017ull}},
+ {{7634724912812380783ull, 14290222345553237930ull,
+ 16966499854145877893ull, 7415523525395551271ull}},
+ {{9383389088935125894ull, 11237231975184467658ull,
+ 17521591436482255539ull, 4634702203372219544ull}},
+ {{2505864324314131559ull, 9434853950553196669ull,
+ 3455245221893267808ull, 5793377754215274431ull}},
+ {{7744016423820052353ull, 11793567438191495836ull,
+ 18154114582648748472ull, 7241722192769093038ull}},
+ {{9680020529775065441ull, 14741959297739369795ull,
+ 13469271191456159782ull, 9052152740961366298ull}},
+ {{3744169821895721949ull, 4602038542659718218ull,
+ 13029980513087487768ull, 5657595463100853936ull}},
+ {{13903584314224428244ull, 5752548178324647772ull,
+ 16287475641359359710ull, 7071994328876067420ull}},
+ {{17379480392780535305ull, 16414057259760585523ull,
+ 1912600477989648021ull, 8839992911095084276ull}},
+ {{8556332236274140614ull, 12564628796564059904ull,
+ 10418747335598305821ull, 5524995569434427672ull}},
+ {{10695415295342675767ull, 1870727940422911168ull,
+ 13023434169497882277ull, 6906244461793034590ull}},
+ {{13369269119178344708ull, 6950095943956026864ull,
+ 7055920675017577038ull, 8632805577241293238ull}},
+ {{8355793199486465443ull, 18178868020254680502ull,
+ 18245008477168149360ull, 5395503485775808273ull}},
+ {{1221369462503305996ull, 4276840951608799012ull,
+ 8971202541178022989ull, 6744379357219760342ull}},
+ {{1526711828129132494ull, 9957737207938386669ull,
+ 1990631139617752928ull, 8430474196524700428ull}},
+ {{3260037901794401761ull, 6223585754961491668ull,
+ 10467516499115871388ull, 5269046372827937767ull}},
+ {{4075047377243002201ull, 7779482193701864585ull,
+ 8472709605467451331ull, 6586307966034922209ull}},
+ {{9705495239981140656ull, 5112666723699942827ull,
+ 15202573025261702068ull, 8232884957543652761ull}},
+ {{3760091515774518958ull, 12418788739167240075ull,
+ 2584079113147481936ull, 5145553098464782976ull}},
+ {{88428376290760793ull, 15523485923959050094ull, 3230098891434352420ull,
+ 6431941373080978720ull}},
+ {{9333907507218226799ull, 957613331239261001ull, 4037623614292940526ull,
+ 8039926716351223400ull}},
+ {{17362907238079861510ull, 14433566387306701837ull,
+ 2523514758933087828ull, 5024954197719514625ull}},
+ {{7868575992317663175ull, 18041957984133377297ull,
+ 7766079467093747689ull, 6281192747149393281ull}},
+ {{14447406008824466873ull, 8717389424884557909ull,
+ 14319285352294572516ull, 7851490933936741601ull}},
+ {{11335471764728985748ull, 14671740427407624501ull,
+ 2032024317543025966ull, 4907181833710463501ull}},
+ {{334281650629068472ull, 9116303497404754819ull, 7151716415356170362ull,
+ 6133977292138079376ull}},
+ {{14252910118568499302ull, 2172007334901167715ull,
+ 8939645519195212953ull, 7667471615172599220ull}},
+ {{6602225814891618112ull, 12886719630381699582ull,
+ 14810650486351783903ull, 4792169759482874512ull}},
+ {{17476154305469298448ull, 11496713519549736573ull,
+ 66569034230178263ull, 5990212199353593141ull}},
+ {{8010134826554459348ull, 9759205881009782813ull,
+ 4694897311215110733ull, 7487765249191991426ull}},
+ {{7312177275810231045ull, 8405346684844808210ull,
+ 7545996837936832112ull, 4679853280744994641ull}},
+ {{18363593631617564614ull, 10506683356056010262ull,
+ 14044182065848428044ull, 5849816600931243301ull}},
+ {{13731120002667179959ull, 13133354195070012828ull,
+ 3720169527028371343ull, 7312270751164054127ull}},
+ {{17163900003333974949ull, 11805006725410128131ull,
+ 38525890358076275ull, 9140338438955067659ull}},
+ {{8421594492870040391ull, 5072286194167636130ull,
+ 16164979745969655336ull, 5712711524346917286ull}},
+ {{1303621079232774681ull, 6340357742709545163ull,
+ 10982852645607293362ull, 7140889405433646608ull}},
+ {{15464584404323132063ull, 17148819215241707261ull,
+ 13728565807009116702ull, 8926111756792058260ull}},
+ {{11971208261915651492ull, 6106325991098679134ull,
+ 17803725666235473747ull, 5578819847995036412ull}},
+ {{5740638290539788556ull, 3021221470445961014ull,
+ 3807913009084790568ull, 6973524809993795516ull}},
+ {{16399169900029511503ull, 3776526838057451267ull,
+ 4759891261355988210ull, 8716906012492244395ull}},
+ {{7943638178304750738ull, 6972015292213294946ull, 669089029133798679ull,
+ 5448066257807652747ull}},
+ {{706175686026162614ull, 4103333096839230779ull,
+ 14671419341699412061ull, 6810082822259565933ull}},
+ {{14717777662814866979ull, 9740852389476426377ull,
+ 4504216121842101364ull, 8512603527824457417ull}},
+ {{2281082011618210006ull, 15311404780277542294ull,
+ 14344350122219783112ull, 5320377204890285885ull}},
+ {{12074724551377538316ull, 692511901637376251ull,
+ 4095379597492565179ull, 6650471506112857357ull}},
+ {{10481719670794534991ull, 14700697932328884026ull,
+ 9730910515293094377ull, 8313089382641071696ull}},
+ {{11162760812673972273ull, 2270407180064470660ull,
+ 6081819072058183986ull, 5195680864150669810ull}},
+ {{13953451015842465341ull, 12061381011935364133ull,
+ 16825645876927505790ull, 6494601080188337262ull}},
+ {{3606755714520917965ull, 5853354228064429359ull,
+ 11808685309304606430ull, 8118251350235421578ull}},
+ {{9171751349216655584ull, 17493404447822432061ull,
+ 11992114336742766922ull, 5073907093897138486ull}},
+ {{16076375204948207384ull, 12643383522923264268ull,
+ 5766770884073682845ull, 6342383867371423108ull}},
+ {{1648724932475707614ull, 1969171348371916624ull,
+ 7208463605092103557ull, 7927979834214278885ull}},
+ {{1030453082797317259ull, 3536575101946141842ull,
+ 6811132762396258675ull, 4954987396383924303ull}},
+ {{10511438390351422382ull, 18255776932714841014ull,
+ 3902229934567935439ull, 6193734245479905379ull}},
+ {{3915925951084502169ull, 18208035147466163364ull,
+ 266101399782531395ull, 7742167806849881724ull}},
+ {{11670825756282589664ull, 9074178957952658150ull,
+ 9389685411718857930ull, 4838854879281176077ull}},
+ {{5365160158498461271ull, 2119351660586046880ull,
+ 16348792783075960317ull, 6048568599101470096ull}},
+ {{6706450198123076589ull, 7260875594159946504ull,
+ 1989246905135398780ull, 7560710748876837621ull}},
+ {{4191531373826922868ull, 13761419283204742373ull,
+ 3549122324923318189ull, 4725444218048023513ull}},
+ {{9851100235711041489ull, 3366716048723764254ull,
+ 9048088924581535641ull, 5906805272560029391ull}},
+ {{3090503257784026054ull, 8820081079332093222ull,
+ 6698425137299531647ull, 7383506590700036739ull}},
+ {{15766622591397179996ull, 12430079702223640119ull,
+ 1880672701598513327ull, 4614691619187522962ull}},
+ {{15096592220819087091ull, 10925913609352162245ull,
+ 11574212913852917467ull, 5768364523984403702ull}},
+ {{5035682220741695151ull, 9045705993262814903ull,
+ 5244394105461371026ull, 7210455654980504628ull}},
+ {{1682916757499731035ull, 2083760454723742821ull,
+ 6555492631826713783ull, 9013069568725630785ull}},
+ {{3357665982651025849ull, 8219879311843421119ull,
+ 15626397940960165874ull, 5633168480453519240ull}},
+ {{18032140533595946023ull, 1051477102949500590ull,
+ 1086253352490655727ull, 7041460600566899051ull}},
+ {{13316803630140156721ull, 15149404433969039450ull,
+ 15192874745895483370ull, 8801825750708623813ull}},
+ {{12934688287264985855ull, 14080063789658037560ull,
+ 11801389725398371058ull, 5501141094192889883ull}},
+ {{16168360359081232318ull, 8376707700217771142ull,
+ 10140051138320575919ull, 6876426367741112354ull}},
+ {{10987078411996764589ull, 5859198606844826024ull,
+ 3451691886045944091ull, 8595532959676390443ull}},
+ {{6866924007497977869ull, 1356156120064322313ull,
+ 18298208493274572721ull, 5372208099797744026ull}},
+ {{13195341027799860240ull, 6306881168507790795ull,
+ 13649388579738440093ull, 6715260124747180033ull}},
+ {{11882490266322437395ull, 12495287479062126398ull,
+ 3226677669390886404ull, 8394075155933975042ull}},
+ {{2814870398024135468ull, 17032926711268604807ull,
+ 6628359561796691906ull, 5246296972458734401ull}},
+ {{17353646052812333047ull, 12067786352230980200ull,
+ 12897135470673252787ull, 6557871215573418001ull}},
+ {{3245313492305864693ull, 10473046921861337347ull,
+ 2286361283059402272ull, 8197339019466772502ull}},
+ {{18169221997187023097ull, 6545654326163335841ull,
+ 15264033857194290132ull, 5123336887166732813ull}},
+ {{8876469441201615159ull, 8182067907704169802ull,
+ 5244984266210698953ull, 6404171108958416017ull}},
+ {{1872214764647243141ull, 14839270903057600157ull,
+ 11167916351190761595ull, 8005213886198020021ull}},
+ {{3475977237118220915ull, 6968701305197306146ull,
+ 9285790728707919949ull, 5003258678873762513ull}},
+ {{13568343583252551952ull, 13322562649924020586ull,
+ 16218924429312287840ull, 6254073348592203141ull}},
+ {{7737057442210914132ull, 16653203312405025733ull,
+ 6438597481358196088ull, 7817591685740253927ull}},
+ {{7141503910595515285ull, 10408252070253141083ull,
+ 10941652453489954411ull, 4885994803587658704ull}},
+ {{4315193869817006202ull, 8398629069389038450ull,
+ 13677065566862443014ull, 6107493504484573380ull}},
+ {{14617364374126033560ull, 1274914299881522254ull,
+ 17096331958578053768ull, 7634366880605716725ull}},
+ {{4524166715401383071ull, 796821437425951409ull,
+ 12991050483324977557ull, 4771479300378572953ull}},
+ {{10266894412679116743ull, 5607712815209827165ull,
+ 2403755048874058234ull, 5964349125473216192ull}},
+ {{17445304034276283833ull, 16233013055867059764ull,
+ 3004693811092572792ull, 7455436406841520240ull}},
+ {{1679942984567901588ull, 10145633159916912353ull,
+ 1877933631932857995ull, 4659647754275950150ull}},
+ {{6711614749137264888ull, 8070355431468752537ull,
+ 11570789076770848302ull, 5824559692844937687ull}},
+ {{13001204454848969014ull, 864572252481164863ull,
+ 9851800327536172474ull, 7280699616056172109ull}},
+ {{11639819550133823364ull, 10304087352456231887ull,
+ 16926436427847603496ull, 9100874520070215136ull}},
+ {{14192416246474721458ull, 6440054595285144929ull,
+ 10579022767404752185ull, 5688046575043884460ull}},
+ {{3905462252811238111ull, 12661754262533819066ull,
+ 13223778459255940231ull, 7110058218804855575ull}},
+ {{14105199852868823447ull, 11215506809739885928ull,
+ 11918037055642537385ull, 8887572773506069469ull}},
+ {{8815749908043014654ull, 92162728446346849ull, 9754616168990279818ull,
+ 5554732983441293418ull}},
+ {{15631373403481156222ull, 9338575447412709369ull,
+ 2969898174383073964ull, 6943416229301616773ull}},
+ {{5704158699069281565ull, 11673219309265886712ull,
+ 8324058736406230359ull, 8679270286627020966ull}},
+ {{3565099186918300978ull, 14213291095932261051ull,
+ 590850691826506070ull, 5424543929141888104ull}},
+ {{18291432038930039935ull, 8543241833060550505ull,
+ 738563364783132588ull, 6780679911427360130ull}},
+ {{9029231993380386206ull, 10679052291325688132ull,
+ 10146576242833691543ull, 8475849889284200162ull}},
+ {{14866642032717517187ull, 13591936709719636938ull,
+ 10953296170198445118ull, 5297406180802625101ull}},
+ {{9359930504042120676ull, 7766548850294770365ull,
+ 18303306231175444302ull, 6621757726003281376ull}},
+ {{16311599148480038749ull, 484814026013687148ull,
+ 4432388715259753762ull, 8277197157504101721ull}},
+ {{971377430945248410ull, 4914694784685942372ull,
+ 14299457993105815861ull, 5173248223440063575ull}},
+ {{1214221788681560513ull, 10755054499284815869ull,
+ 13262636472954881922ull, 6466560279300079469ull}},
+ {{6129463254279338545ull, 4220446087251244028ull,
+ 2743237535911438691ull, 8083200349125099337ull}},
+ {{13054286570779362399ull, 331935795318333565ull,
+ 13243738506013118942ull, 5052000218203187085ull}},
+ {{2482800158192039286ull, 9638291781002692765ull,
+ 2719615077234234965ull, 6315000272753983857ull}},
+ {{7715186216167437011ull, 16659550744680753860ull,
+ 8011204864970181610ull, 7893750340942479821ull}},
+ {{14045363421959423940ull, 15023905233852859066ull,
+ 7312846049820057458ull, 4933593963089049888ull}},
+ {{8333332240594504117ull, 9556509505461298025ull,
+ 9141057562275071823ull, 6166992453861312360ull}},
+ {{15028351319170518051ull, 7333950863399234627ull,
+ 11426321952843839779ull, 7708740567326640450ull}},
+ {{7086876565267879830ull, 2277876280410827690ull,
+ 11753137238954787766ull, 4817962854579150281ull}},
+ {{18081967743439625595ull, 12070717387368310420ull,
+ 856363493411320995ull, 6022453568223937852ull}},
+ {{4155715605589980378ull, 10476710715783000122ull,
+ 1070454366764151244ull, 7528066960279922315ull}},
+ {{7209008271921125640ull, 15771316234219150884ull,
+ 16809935043723452191ull, 4705041850174951446ull}},
+ {{9011260339901407050ull, 15102459274346550701ull,
+ 11789046767799539431ull, 5881302312718689308ull}},
+ {{15875761443304146717ull, 14266388074505800472ull,
+ 14736308459749424289ull, 7351627890898361635ull}},
+ {{1397957730420631780ull, 3997927037850086879ull,
+ 13808699556259392458ull, 9189534863622952044ull}},
+ {{7791252609153976718ull, 7110390417083692203ull,
+ 17853809259516896094ull, 5743459289764345027ull}},
+ {{5127379743015082994ull, 18111360058209391062ull,
+ 17705575555968732213ull, 7179324112205431284ull}},
+ {{15632596715623629550ull, 8804142017479575115ull,
+ 3685225371251363651ull, 8974155140256789106ull}},
+ {{7464529938051074517ull, 3196745751711040495ull,
+ 6914951875459490186ull, 5608846962660493191ull}},
+ {{4718976404136455242ull, 13219304226493576427ull,
+ 4032003825896974828ull, 7011058703325616489ull}},
+ {{1287034486743181149ull, 16524130283116970534ull,
+ 9651690800798606439ull, 8763823379157020611ull}},
+ {{14639454609496651930ull, 17245110454589188439ull,
+ 3726463741285435072ull, 5477389611973137882ull}},
+ {{13687632243443427009ull, 3109643994526933933ull,
+ 13881451713461569649ull, 6846737014966422352ull}},
+ {{3274482249022120049ull, 8498741011586055321ull,
+ 17351814641826962061ull, 8558421268708027940ull}},
+ {{13575766451707294791ull, 7617556141454978527ull,
+ 1621512114287075480ull, 5349013292942517463ull}},
+ {{12358022046206730584ull, 9521945176818723159ull,
+ 15861948198141008062ull, 6686266616178146828ull}},
+ {{10835841539331025326ull, 2679059434168628141ull,
+ 1380691173966708462ull, 8357833270222683536ull}},
+ {{9078243971295584781ull, 15509470201637556300ull,
+ 862931983729192788ull, 5223645793889177210ull}},
+ {{11347804964119480976ull, 940093678337393759ull,
+ 10302037016516266794ull, 6529557242361471512ull}},
+ {{9573070186721963316ull, 10398489134776518007ull,
+ 12877546270645333492ull, 8161946552951839390ull}},
+ {{12900697894342308929ull, 15722427746090099562ull,
+ 3436780400725945528ull, 5101216595594899619ull}},
+ {{6902500331073110353ull, 1206290608903072837ull,
+ 18131033556189595623ull, 6376520744493624523ull}},
+ {{13239811432268775845ull, 15342921316411004758ull,
+ 18052105926809606624ull, 7970650930617030654ull}},
+ {{3663196126740596999ull, 9589325822756877974ull,
+ 6670880185828616236ull, 4981656831635644159ull}},
+ {{13802367195280522057ull, 11986657278446097467ull,
+ 3726914213858382391ull, 6227071039544555199ull}},
+ {{12641272975673264667ull, 10371635579630233930ull,
+ 46956748895590085ull, 7783838799430693999ull}},
+ {{12512481628223178321ull, 8788115246482590158ull,
+ 6946876995700825659ull, 4864899249644183749ull}},
+ {{6417229998424197093ull, 6373458039675849794ull,
+ 13295282263053419978ull, 6081124062055229686ull}},
+ {{17244909534885022174ull, 17190194586449588050ull,
+ 7395730791961999164ull, 7601405077569037108ull}},
+ {{15389754477730526763ull, 1520499579676216723ull,
+ 13845703781831025286ull, 4750878173480648192ull}},
+ {{14625507078735770550ull, 11123996511450046712ull,
+ 17307129727288781607ull, 5938597716850810240ull}},
+ {{18281883848419713187ull, 9293309620885170486ull,
+ 3187168085401425393ull, 7423247146063512801ull}},
+ {{6814491386834932838ull, 17337533559121701314ull,
+ 13521195099444360630ull, 4639529466289695500ull}},
+ {{17741486270398441855ull, 12448544912047350834ull,
+ 16901493874305450788ull, 5799411832862119375ull}},
+ {{12953485801143276511ull, 15560681140059188543ull,
+ 16515181324454425581ull, 7249264791077649219ull}},
+ {{11580171233001707735ull, 5615793369791821967ull,
+ 16032290637140644073ull, 9061580988847061524ull}},
+ {{14155136048267149190ull, 15039085902188358489ull,
+ 796809611358126737ull, 5663488118029413453ull}},
+ {{3858862005051772776ull, 4963799322453284400ull,
+ 5607698032625046326ull, 7079360147536766816ull}},
+ {{4823577506314715970ull, 15428121189921381308ull,
+ 7009622540781307907ull, 8849200184420958520ull}},
+ {{12238107978301473289ull, 7336732734487169365ull,
+ 4381014087988317442ull, 5530750115263099075ull}},
+ {{1462576917594677900ull, 18394287954963737515ull,
+ 864581591558008898ull, 6913437644078873844ull}},
+ {{15663279202275511086ull, 13769487906849896085ull,
+ 1080726989447511123ull, 8641797055098592305ull}},
+ {{12095392510635888381ull, 6300086932567491101ull,
+ 12204669414473164212ull, 5401123159436620190ull}},
+ {{1284182583012696764ull, 7875108665709363877ull,
+ 6032464731236679457ull, 6751403949295775238ull}},
+ {{6216914247193258859ull, 14455571850564092750ull,
+ 16763952950900625129ull, 8439254936619719047ull}},
+ {{17720629459777950499ull, 2117203378961476112ull,
+ 17394999621953972562ull, 5274534335387324404ull}},
+ {{3704042751012886508ull, 11869876260556620949ull,
+ 3297005453732914086ull, 6593167919234155506ull}},
+ {{9241739457193496039ull, 5613973288841000378ull,
+ 13344628854020918416ull, 8241459899042694382ull}},
+ {{10387773179173322928ull, 3508733305525625236ull,
+ 3728707015335686106ull, 5150912436901683989ull}},
+ {{12984716473966653660ull, 13609288668761807353ull,
+ 9272569787596995536ull, 6438640546127104986ull}},
+ {{2395837537176153363ull, 17011610835952259192ull,
+ 2367340197641468612ull, 8048300682658881233ull}},
+ {{1497398460735095852ull, 1408884735615386187ull,
+ 13008802669594387643ull, 5030187926661800770ull}},
+ {{15706806131201033527ull, 15596163974801396445ull,
+ 7037631300138208745ull, 6287734908327250963ull}},
+ {{5798449608719128197ull, 5660146913219581845ull,
+ 4185353106745373028ull, 7859668635409063704ull}},
+ {{5929874014663149075ull, 12760963857617014461ull,
+ 2615845691715858142ull, 4912292897130664815ull}},
+ {{12024028536756324248ull, 6727832785166492268ull,
+ 17104865169926986390ull, 6140366121413331018ull}},
+ {{15030035670945405310ull, 17633163018312891143ull,
+ 12157709425553957179ull, 7675457651766663773ull}},
+ {{16311301321981960175ull, 8714883877231863012ull,
+ 9904411400184917189ull, 4797161032354164858ull}},
+ {{1942382578767898602ull, 15505290864967216670ull,
+ 3157142213376370678ull, 5996451290442706073ull}},
+ {{11651350260314649061ull, 10158241544354245029ull,
+ 8558113785147851252ull, 7495564113053382591ull}},
+ {{9587936921910349615ull, 15572273002076178951ull,
+ 12266350143358488888ull, 4684727570658364119ull}},
+ {{7373235133960549115ull, 1018597178885672073ull,
+ 10721251660770723207ull, 5855909463322955149ull}},
+ {{13828229935878074298ull, 15108304528889253803ull,
+ 18013250594390791912ull, 7319886829153693936ull}},
+ {{12673601401420204968ull, 438636587402015638ull,
+ 4069819169278938275ull, 9149858536442117421ull}},
+ {{3309314857460240201ull, 16415048931622117438ull,
+ 4849479990013030373ull, 5718661585276323388ull}},
+ {{13360015608680076059ull, 6683753109245483085ull,
+ 6061849987516287967ull, 7148326981595404235ull}},
+ {{2864961455567931362ull, 3743005368129465953ull,
+ 2965626465967972055ull, 8935408726994255294ull}},
+ {{13319815955798426861ull, 9256907382721998076ull,
+ 15688574596512146246ull, 5584630454371409558ull}},
+ {{16649769944748033577ull, 2347762191547721787ull,
+ 10387346208785407000ull, 6980788067964261948ull}},
+ {{16200526412507654067ull, 2934702739434652234ull,
+ 12984182760981758750ull, 8725985084955327435ull}},
+ {{14737015026244671696ull, 15669247267428821358ull,
+ 5809271216399905266ull, 5453740678097079647ull}},
+ {{9197896745951063812ull, 10363187047431250890ull,
+ 2649903002072493679ull, 6817175847621349559ull}},
+ {{2273998895584053956ull, 8342297790861675709ull,
+ 17147436807872780811ull, 8521469809526686948ull}},
+ {{3727092318953727675ull, 2908093110074853366ull,
+ 1493775968065712199ull, 5325918630954179343ull}},
+ {{13882237435546935402ull, 17470174442875730419ull,
+ 15702278015364303960ull, 6657398288692724178ull}},
+ {{12741110776006281348ull, 3390973979885111408ull,
+ 10404475482350604143ull, 8321747860865905223ull}},
+ {{7963194235003925843ull, 9036887765069276486ull,
+ 13420326204110209445ull, 5201092413041190764ull}},
+ {{730620756900131495ull, 15907795724763983512ull,
+ 16775407755137761806ull, 6501365516301488455ull}},
+ {{913275946125164369ull, 10661372619100203582ull,
+ 16357573675494814354ull, 8126706895376860569ull}},
+ {{14405855521610391443ull, 11275043905365015142ull,
+ 3305954519543177115ull, 5079191809610537856ull}},
+ {{8783947365158213495ull, 9482118863278881024ull,
+ 4132443149428971394ull, 6348989762013172320ull}},
+ {{10979934206447766869ull, 2629276542243825472ull,
+ 5165553936786214243ull, 7936237202516465400ull}},
+ {{6862458879029854293ull, 17784198903398248584ull,
+ 3228471210491383901ull, 4960148251572790875ull}},
+ {{8578073598787317866ull, 8395190573965647018ull,
+ 17870647068396393589ull, 6200185314465988593ull}},
+ {{1499219961629371525ull, 15105674235884446677ull,
+ 8503250780213328274ull, 7750231643082485742ull}},
+ {{3242855485232051155ull, 14052732415855167077ull,
+ 702845719205942267ull, 4843894776926553589ull}},
+ {{8665255374967451848ull, 12954229501391570942ull,
+ 5490243167434815738ull, 6054868471158191986ull}},
+ {{1608197181854539002ull, 6969414839884687870ull,
+ 16086175996148295481ull, 7568585588947739982ull}},
+ {{14840181293941250588ull, 15885099320996399678ull,
+ 5442173979165296771ull, 4730365993092337489ull}},
+ {{9326854580571787427ull, 15244688132818111694ull,
+ 11414403492384008868ull, 5912957491365421861ull}},
+ {{2435196188859958476ull, 609116092313088002ull, 432946310197847374ull,
+ 7391196864206777327ull}},
+ {{6133683636464861952ull, 14215755612977843713ull,
+ 7188120471514736464ull, 4619498040129235829ull}},
+ {{12278790564008465343ull, 17769694516222304641ull,
+ 13596836607820808484ull, 5774372550161544786ull}},
+ {{1513430149728417967ull, 3765374071568329186ull,
+ 7772673722921234798ull, 7217965687701930983ull}},
+ {{11115159724015298267ull, 13930089626315187290ull,
+ 5104156135224155593ull, 9022457109627413729ull}},
+ {{11558660845936949321ull, 1788776988805910200ull,
+ 14719312630583567006ull, 5639035693517133580ull}},
+ {{14448326057421186651ull, 11459343272862163558ull,
+ 18399140788229458757ull, 7048794616896416975ull}},
+ {{8837035534921707506ull, 489121035795540736ull,
+ 18387239966859435543ull, 8810993271120521219ull}},
+ {{5523147209326067191ull, 7223229675013294816ull,
+ 9186181970073453262ull, 5506870794450325762ull}},
+ {{6903934011657583989ull, 18252409130621394328ull,
+ 2259355425737040769ull, 6883588493062907203ull}},
+ {{8629917514571979986ull, 8980453357994579198ull,
+ 16659252337453464674ull, 8604485616328634003ull}},
+ {{782012428180099587ull, 10224469367173999903ull,
+ 8106189701694721469ull, 5377803510205396252ull}},
+ {{14812573590507288196ull, 17392272727394887782ull,
+ 10132737127118401836ull, 6722254387756745315ull}},
+ {{9292344951279334437ull, 3293596835534058112ull,
+ 8054235390470614392ull, 8402817984695931644ull}},
+ {{5807715594549584023ull, 2058498022208786320ull,
+ 14257269155898909803ull, 5251761240434957277ull}},
+ {{7259644493186980029ull, 16408180583043146612ull,
+ 3986528389591473541ull, 6564701550543696597ull}},
+ {{9074555616483725036ull, 6675167673521769553ull,
+ 9594846505416729831ull, 8205876938179620746ull}},
+ {{17200812306370797908ull, 11089508823592187826ull,
+ 10608465084312844048ull, 5128673086362262966ull}},
+ {{12277643346108721577ull, 13861886029490234783ull,
+ 4037209318536279252ull, 6410841357952828708ull}},
+ {{10735368164208514067ull, 17327357536862793479ull,
+ 5046511648170349065ull, 8013551697441035885ull}},
+ {{13627134130271403148ull, 3912069432898164068ull,
+ 5459912789320162118ull, 5008469810900647428ull}},
+ {{17033917662839253935ull, 14113458827977480893ull,
+ 6824890986650202647ull, 6260587263625809285ull}},
+ {{7457339023266903706ull, 13030137516544463213ull,
+ 13142799751740141213ull, 7825734079532261606ull}},
+ {{6966679898755508769ull, 10449678957053983460ull,
+ 3602563826410200354ull, 4891083799707663504ull}},
+ {{8708349873444385961ull, 3838726659462703517ull,
+ 4503204783012750443ull, 6113854749634579380ull}},
+ {{15497123360232870355ull, 186722305900991492ull,
+ 5629005978765938054ull, 7642318437043224225ull}},
+ {{462330063290768164ull, 13951759496470283395ull,
+ 15047343782797181043ull, 4776449023152015140ull}},
+ {{14412970634395623917ull, 12828013352160466339ull,
+ 362435654786924688ull, 5970561278940018926ull}},
+ {{13404527274567141992ull, 16035016690200582924ull,
+ 9676416605338431668ull, 7463201598675023657ull}},
+ {{17601201583459239553ull, 798513394520588519ull,
+ 17576975424404989553ull, 4664500999171889785ull}},
+ {{17389815960896661537ull, 5609827761578123553ull,
+ 8136161225224073229ull, 5830626248964862232ull}},
+ {{7902211895838663209ull, 11623970720400042346ull,
+ 10170201531530091536ull, 7288282811206077790ull}},
+ {{654392832943553204ull, 14529963400500052933ull,
+ 3489379877557838612ull, 9110353514007597238ull}},
+ {{2714838529803414704ull, 18304599162167308891ull,
+ 16015920478755812844ull, 5693970946254748273ull}},
+ {{17228606217536432092ull, 4434004878999584497ull,
+ 6184842543162602344ull, 7117463682818435342ull}},
+ {{7700699716638376403ull, 5542506098749480622ull,
+ 16954425215808028738ull, 8896829603523044177ull}},
+ {{201251304471597348ull, 8075752330145813293ull, 3678986732238936105ull,
+ 5560518502201902611ull}},
+ {{4863250149016884589ull, 14706376431109654520ull,
+ 18433791470580833843ull, 6950648127752378263ull}},
+ {{6079062686271105736ull, 13771284520459680246ull,
+ 18430553319798654400ull, 8688310159690472829ull}},
+ {{17634472234201604797ull, 8607052825287300153ull,
+ 13824938834087852952ull, 5430193849806545518ull}},
+ {{8208032237469842285ull, 10758816031609125192ull,
+ 8057801505755040382ull, 6787742312258181898ull}},
+ {{10260040296837302856ull, 4225148002656630682ull,
+ 848879845339024670ull, 8484677890322727373ull}},
+ {{11024211203950702189ull, 16475775556942557888ull,
+ 2836392912550584370ull, 5302923681451704608ull}},
+ {{13780264004938377736ull, 11371347409323421552ull,
+ 3545491140688230463ull, 6628654601814630760ull}},
+ {{17225330006172972170ull, 9602498243226889036ull,
+ 4431863925860288079ull, 8285818252268288450ull}},
+ {{1542459217003331799ull, 12919090429657887504ull,
+ 7381600972090067953ull, 5178636407667680281ull}},
+ {{1928074021254164748ull, 2313804981790195668ull,
+ 13838687233539972846ull, 6473295509584600351ull}},
+ {{2410092526567705935ull, 12115628264092520393ull,
+ 12686673023497578153ull, 8091619386980750439ull}},
+ {{13035522875173285969ull, 654738637416743389ull,
+ 14846699667327068202ull, 5057262116862969024ull}},
+ {{2459345538684443750ull, 10041795333625705045ull,
+ 111630510449283636ull, 6321577646078711281ull}},
+ {{7685867941782942591ull, 12552244167032131306ull,
+ 4751224156488992449ull, 7901972057598389101ull}},
+ {{9415353482041727024ull, 927623576754000210ull, 5275358107019314233ull,
+ 4938732535998993188ull}},
+ {{2545819815697382971ull, 5771215489369888167ull,
+ 6594197633774142791ull, 6173415669998741485ull}},
+ {{17017332824903892426ull, 2602333343284972304ull,
+ 12854433060645066393ull, 7716769587498426856ull}},
+ {{10635833015564932766ull, 13155673385621577450ull,
+ 8034020662903166495ull, 4822980992186516785ull}},
+ {{4071419232601390150ull, 11832905713599583909ull,
+ 14654211847056346023ull, 6028726240233145981ull}},
+ {{9700960059179125591ull, 10179446123572091982ull,
+ 4482706753538268817ull, 7535907800291432477ull}},
+ {{1451414018559565591ull, 17891368873301027249ull,
+ 5107534730175111962ull, 4709942375182145298ull}},
+ {{6425953541626844892ull, 13140839054771508253ull,
+ 15607790449573665761ull, 5887427968977681622ull}},
+ {{12644127945460944019ull, 2590990763182221604ull,
+ 10286366025112306394ull, 7359284961222102028ull}},
+ {{15805159931826180024ull, 12462110490832552813ull,
+ 12857957531390382992ull, 9199106201527627535ull}},
+ {{12184067966605056467ull, 7788819056770345508ull,
+ 14953752484760071226ull, 5749441375954767209ull}},
+ {{15230084958256320584ull, 512651784108156077ull,
+ 4857132550667925321ull, 7186801719943459012ull}},
+ {{5202548142538237018ull, 5252500748562583001ull,
+ 6071415688334906651ull, 8983502149929323765ull}},
+ {{14780807635154867896ull, 976969958637920423ull,
+ 6100477814423010609ull, 5614688843705827353ull}},
+ {{13864323525516196966ull, 5832898466724788433ull,
+ 12237283286456151165ull, 7018361054632284191ull}},
+ {{3495346351613082496ull, 11902809101833373446ull,
+ 10684918089642801052ull, 8772951318290355239ull}},
+ {{16019649525040340272ull, 16662627725500634211ull,
+ 13595602833667832513ull, 5483094573931472024ull}},
+ {{15412875887873037436ull, 6993226601593629052ull,
+ 16994503542084790642ull, 6853868217414340030ull}},
+ {{819350786131745179ull, 17964905288846812124ull,
+ 12019757390751212494ull, 8567335271767925038ull}},
+ {{9735466278187116545ull, 6616379787101869673ull,
+ 2900662350792119905ull, 5354584544854953149ull}},
+ {{16781018866161283585ull, 12882160752304724995ull,
+ 8237513956917537785ull, 6693230681068691436ull}},
+ {{16364587564274216577ull, 2267642885098742532ull,
+ 10296892446146922232ull, 8366538351335864295ull}},
+ {{1004495190816609553ull, 1417276803186714083ull,
+ 13353086806482908251ull, 5229086469584915184ull}},
+ {{15090677043802925653ull, 15606654059265556315ull,
+ 16691358508103635313ull, 6536358086981143980ull}},
+ {{14251660286326269162ull, 5673259518799781682ull,
+ 2417454061419992526ull, 8170447608726429976ull}},
+ {{13518973697381306130ull, 17380845254532027263ull,
+ 1510908788387495328ull, 5106529755454018735ull}},
+ {{12287031103299244759ull, 3279312494455482463ull,
+ 15723694040766532873ull, 6383162194317523418ull}},
+ {{10747102860696668045ull, 8710826636496740983ull,
+ 10431245514103390283ull, 7978952742896904273ull}},
+ {{13634468315576499384ull, 3138423638596769162ull,
+ 18048743492383088687ull, 4986845464310565170ull}},
+ {{7819713357615848422ull, 17758087603528125165ull,
+ 13337557328624085050ull, 6233556830388206463ull}},
+ {{14386327715447198431ull, 12974237467555380648ull,
+ 12060260642352718409ull, 7791946037985258079ull}},
+ {{8991454822154499020ull, 1191369389581031049ull,
+ 14455191929111530862ull, 4869966273740786299ull}},
+ {{15851004546120511679ull, 10712583773831064619ull,
+ 13457303892962025673ull, 6087457842175982874ull}},
+ {{15202069664223251694ull, 18002415735716218678ull,
+ 7598257829347756283ull, 7609322302719978593ull}},
+ {{4889607521712144405ull, 8945666825608942722ull,
+ 16278126189410817437ull, 4755826439199986620ull}},
+ {{15335381438994956314ull, 15793769550438566306ull,
+ 1900913663053970180ull, 5944783048999983276ull}},
+ {{9945854761888919584ull, 1295467864338656267ull,
+ 2376142078817462726ull, 7430978811249979095ull}},
+ {{3910316216966880788ull, 14644725470493823879ull,
+ 8402617826901996059ull, 4644361757031236934ull}},
+ {{276209252781213081ull, 13694220819689891945ull,
+ 1279900246772719266ull, 5805452196289046168ull}},
+ {{4956947584403904256ull, 7894403987757589123ull,
+ 1599875308465899083ull, 7256815245361307710ull}},
+ {{1584498462077492416ull, 5256318966269598500ull,
+ 11223216172437149662ull, 9071019056701634637ull}},
+ {{10213683575653208568ull, 17120257409200662774ull,
+ 9320353116986912490ull, 5669386910438521648ull}},
+ {{3543732432711734902ull, 12176949724646052660ull,
+ 11650441396233640613ull, 7086733638048152060ull}},
+ {{4429665540889668627ull, 1386129100525402113ull,
+ 14563051745292050767ull, 8858417047560190075ull}},
+ {{14297756009124512652ull, 7783859715469458176ull,
+ 6796064331593837777ull, 5536510654725118797ull}},
+ {{17872195011405640815ull, 14341510662764210624ull,
+ 13106766432919685125ull, 6920638318406398496ull}},
+ {{3893499690547499403ull, 4091830273173099569ull,
+ 16383458041149606407ull, 8650797898007998120ull}},
+ {{13962652352660656887ull, 9474922948374269086ull,
+ 10239661275718504004ull, 5406748686254998825ull}},
+ {{8229943403971045300ull, 11843653685467836358ull,
+ 17411262613075517909ull, 6758435857818748531ull}},
+ {{1064057218109030817ull, 969509051552631736ull,
+ 17152392247917009483ull, 8448044822273435664ull}},
+ {{665035761318144261ull, 16746844221716252499ull,
+ 10720245154948130926ull, 5280028013920897290ull}},
+ {{14666352756929844038ull, 11710183240290539815ull,
+ 4176934406830387850ull, 6600035017401121613ull}},
+ {{13721254927734917144ull, 5414357013508398961ull,
+ 9832854026965372717ull, 8250043771751402016ull}},
+ {{1658255302193241359ull, 5689816142656443303ull,
+ 6145533766853357948ull, 5156277357344626260ull}},
+ {{15907877183023715411ull, 7112270178320554128ull,
+ 7681917208566697435ull, 6445346696680782825ull}},
+ {{1438102405070092647ull, 4278651704473304757ull,
+ 14214082529135759698ull, 8056683370850978531ull}},
+ {{3204657012382501857ull, 7285843333723203377ull,
+ 6577958571496155859ull, 5035427106781861582ull}},
+ {{8617507283905515225ull, 4495618148726616317ull,
+ 17445820251224970632ull, 6294283883477326977ull}},
+ {{15383570123309281935ull, 5619522685908270396ull,
+ 7972217258749049578ull, 7867854854346658722ull}},
+ {{391359290213525401ull, 8123887697120056902ull, 9594321805145543890ull,
+ 4917409283966661701ull}},
+ {{9712571149621682560ull, 931487584545295319ull,
+ 16604588274859317767ull, 6146761604958327126ull}},
+ {{7529027918599715295ull, 14999417535963782861ull,
+ 11532363306719371400ull, 7683452006197908908ull}},
+ {{7011485458338516012ull, 9374635959977364288ull,
+ 16431099103554382933ull, 4802157503873693067ull}},
+ {{8764356822923145015ull, 16329980968399093264ull,
+ 15927187861015590762ull, 6002696879842116334ull}},
+ {{10955446028653931268ull, 11189104173644090772ull,
+ 10685612789414712645ull, 7503371099802645418ull}},
+ {{16070525804763482851ull, 9299033117741250684ull,
+ 11290194011811583307ull, 4689606937376653386ull}},
+ {{1641413182244801947ull, 7012105378749175452ull,
+ 4889370477909703326ull, 5862008671720816733ull}},
+ {{2051766477806002434ull, 17988503760291245123ull,
+ 10723399115814517061ull, 7327510839651020916ull}},
+ {{16399766152539666754ull, 8650571645081892691ull,
+ 13404248894768146327ull, 9159388549563776145ull}},
+ {{7944010836123597770ull, 12324136305817264788ull,
+ 1460126531589009598ull, 5724617843477360091ull}},
+ {{9930013545154497212ull, 6181798345416805177ull,
+ 15660216219768425710ull, 7155772304346700113ull}},
+ {{17024202949870509419ull, 16950619968625782279ull,
+ 5740212219428368425ull, 8944715380433375142ull}},
+ {{17557655871310150243ull, 3676608452750032068ull,
+ 17422690692424893978ull, 5590447112770859463ull}},
+ {{3500325765428136188ull, 13819132602792315894ull,
+ 17166677347103729568ull, 6988058890963574329ull}},
+ {{13598779243639946042ull, 17273915753490394867ull,
+ 7623288628597498248ull, 8735073613704467912ull}},
+ {{6193394018061272325ull, 10796197345931496792ull,
+ 4764555392873436405ull, 5459421008565292445ull}},
+ {{7741742522576590406ull, 18106932700841758894ull,
+ 10567380259519183410ull, 6824276260706615556ull}},
+ {{453806116365962199ull, 13410293839197422810ull,
+ 13209225324398979263ull, 8530345325883269445ull}},
+ {{4895314841156114279ull, 15298962677139471112ull,
+ 10561608836963055991ull, 5331465828677043403ull}},
+ {{6119143551445142848ull, 14512017327996950986ull,
+ 8590325027776432085ull, 6664332285846304254ull}},
+ {{16872301476161204368ull, 4304963604714025020ull,
+ 1514534247865764299ull, 8330415357307880318ull}},
+ {{1321816385745976922ull, 384759243732571686ull,
+ 14781641960198266399ull, 5206509598317425198ull}},
+ {{10875642519037246961ull, 14316007109947878319ull,
+ 9253680413393057190ull, 6508136997896781498ull}},
+ {{8982867130369170797ull, 8671636850580072091ull,
+ 2343728479886545680ull, 8135171247370976873ull}},
+ {{3308448947267037796ull, 5419773031612545057ull,
+ 12994045345997560810ull, 5084482029606860545ull}},
+ {{8747247202511185149ull, 15998088326370457129ull,
+ 2407498627214787300ull, 6355602537008575682ull}},
+ {{15545745021566369340ull, 1550866334253519795ull,
+ 12232745320873259934ull, 7944503171260719602ull}},
+ {{7410247629265286886ull, 14804349514190613584ull,
+ 12257151843973175362ull, 4965314482037949751ull}},
+ {{9262809536581608607ull, 9282064855883491172ull,
+ 10709753786539081299ull, 6206643102547437189ull}},
+ {{11578511920727010759ull, 6990895051426976061ull,
+ 17998878251601239528ull, 7758303878184296486ull}},
+ {{9542412959668075676ull, 4369309407141860038ull,
+ 6637612888823386801ull, 4848939923865185304ull}},
+ {{2704644162730318787ull, 10073322777354712952ull,
+ 8297016111029233501ull, 6061174904831481630ull}},
+ {{3380805203412898484ull, 17203339490120779094ull,
+ 1147898101931766068ull, 7576468631039352038ull}},
+ {{15948061307415225265ull, 1528715144470711125ull,
+ 14552494368989517505ull, 4735292894399595023ull}},
+ {{6100018578986867869ull, 6522579949015776811ull,
+ 13578931942809508977ull, 5919116117999493779ull}},
+ {{3013337205306196932ull, 12764910954697108918ull,
+ 12361978910084498317ull, 7398895147499367224ull}},
+ {{15718393808598536795ull, 10283912355899387025ull,
+ 7726236818802811448ull, 4624309467187104515ull}},
+ {{5812934205466007281ull, 12854890444874233782ull,
+ 5046110005076126406ull, 5780386833983880644ull}},
+ {{16489539793687284909ull, 6845241019238016419ull,
+ 6307637506345158008ull, 7225483542479850805ull}},
+ {{16000238723681718232ull, 8556551274047520524ull,
+ 12496232901358835414ull, 9031854428099813506ull}},
+ {{776777165446298087ull, 736158527852312424ull, 12421831581776660038ull,
+ 5644909017562383441ull}},
+ {{970971456807872609ull, 10143570196670166338ull,
+ 1692231421938661335ull, 7056136271952979302ull}},
+ {{10437086357864616569ull, 8067776727410320018ull,
+ 11338661314278102477ull, 8820170339941224127ull}},
+ {{11134864992092773260ull, 7348203463845143963ull,
+ 14004192349064895904ull, 5512606462463265079ull}},
+ {{9306895221688578671ull, 9185254329806429954ull,
+ 12893554417903731976ull, 6890758078079081349ull}},
+ {{2410246990255947531ull, 11481567912258037443ull,
+ 2281884967097501258ull, 8613447597598851687ull}},
+ {{17647305433405824871ull, 11787665963588661305ull,
+ 8343707132077020142ull, 5383404748499282304ull}},
+ {{8224073736475117376ull, 5511210417631050824ull,
+ 10429633915096275178ull, 6729255935624102880ull}},
+ {{10280092170593896720ull, 16112385058893589338ull,
+ 13037042393870343972ull, 8411569919530128600ull}},
+ {{11036743625048573354ull, 846868624953717528ull,
+ 8148151496168964983ull, 5257231199706330375ull}},
+ {{13795929531310716693ull, 14893643836474310622ull,
+ 5573503351783818324ull, 6571538999632912969ull}},
+ {{8021539877283620058ull, 170310721883336662ull,
+ 11578565208157160810ull, 8214423749541141211ull}},
+ {{401776404874874632ull, 4718130219604473318ull, 4930760245884531554ull,
+ 5134014843463213257ull}},
+ {{9725592542948369098ull, 15121034811360367455ull,
+ 10775136325783052346ull, 6417518554329016571ull}},
+ {{7545304660258073469ull, 9677921477345683511ull,
+ 8857234388801427529ull, 8021898192911270714ull}},
+ {{11633344440302377774ull, 17577915969409521954ull,
+ 10147457511428280109ull, 5013686370569544196ull}},
+ {{5318308513523196410ull, 8137336906479738731ull,
+ 12684321889285350137ull, 6267107963211930245ull}},
+ {{2036199623476607608ull, 14783357151527061318ull,
+ 2020344306324523959ull, 7833884954014912807ull}},
+ {{15107682819955043467ull, 16157127247345495179ull,
+ 8180244219093909330ull, 4896178096259320504ull}},
+ {{14272917506516416430ull, 10973037022327093166ull,
+ 10225305273867386663ull, 6120222620324150630ull}},
+ {{8617774846290744729ull, 9104610259481478554ull,
+ 3558259555479457521ull, 7650278275405188288ull}},
+ {{9997795297359103360ull, 17219596458244393856ull,
+ 2223912222174660950ull, 4781423922128242680ull}},
+ {{12497244121698879200ull, 12301123535950716512ull,
+ 2779890277718326188ull, 5976779902660303350ull}},
+ {{15621555152123599000ull, 15376404419938395640ull,
+ 12698234884002683543ull, 7470974878325379187ull}},
+ {{9763471970077249375ull, 16527781790102579131ull,
+ 5630553793287983262ull, 4669359298953361992ull}},
+ {{7592653944169173815ull, 11436355200773448106ull,
+ 7038192241609979078ull, 5836699123691702490ull}},
+ {{267445393356691460ull, 5072071964112034325ull,
+ 18021112338867249656ull, 7295873904614628112ull}},
+ {{4945992760123252229ull, 6340089955140042906ull,
+ 4079646349874510454ull, 9119842380768285141ull}},
+ {{7702931493504420547ull, 17797614277244690528ull,
+ 4855621977885262985ull, 5699901487980178213ull}},
+ {{9628664366880525684ull, 8411959791273699448ull,
+ 10681213490783966636ull, 7124876859975222766ull}},
+ {{12035830458600657105ull, 10514949739092124310ull,
+ 4128144826625182487ull, 8906096074969028458ull}},
+ {{2910708018198022787ull, 13489372614573659550ull,
+ 7191776535068126958ull, 5566310046855642786ull}},
+ {{12861757059602304291ull, 7638343731362298629ull,
+ 18213092705689934506ull, 6957887558569553482ull}},
+ {{2242138269220716652ull, 324557627348097479ull,
+ 13542993845257642325ull, 8697359448211941853ull}},
+ {{8318865445904029764ull, 2508691526306254876ull,
+ 10770214162499720405ull, 5435849655132463658ull}},
+ {{10398581807380037204ull, 7747550426310206499ull,
+ 4239395666269874698ull, 6794812068915579573ull}},
+ {{8386541240797658601ull, 461065996032982316ull, 9910930601264731277ull,
+ 8493515086144474466ull}},
+ {{14464960312353312434ull, 2594009256734307899ull,
+ 10806017644217844952ull, 5308446928840296541ull}},
+ {{13469514372014252638ull, 3242511570917884874ull,
+ 18119208073699694094ull, 6635558661050370676ull}},
+ {{7613520928163039990ull, 13276511500502131901ull,
+ 4202266018415066001ull, 8294448326312963346ull}},
+ {{7064293589315593946ull, 1380290660172750582ull,
+ 7238102279936804155ull, 5184030203945602091ull}},
+ {{18053739023499268240ull, 15560421380498101939ull,
+ 4435941831493617289ull, 6480037754932002614ull}},
+ {{17955487760946697396ull, 5615468670340463712ull,
+ 14768299326221797420ull, 8100047193665003267ull}},
+ {{11222179850591685873ull, 12733039955817565628ull,
+ 6924344069674929435ull, 5062529496040627042ull}},
+ {{14027724813239607341ull, 11304613926344569131ull,
+ 17878802123948437602ull, 6328161870050783802ull}},
+ {{12922969998122121272ull, 4907395371075935606ull,
+ 13125130618080771195ull, 7910202337563479753ull}},
+ {{3465170230398937891ull, 761279097708765802ull, 1285677608659400141ull,
+ 4943876460977174846ull}},
+ {{13554834824853448172ull, 5563284890563345156ull,
+ 10830469047679025984ull, 6179845576221468557ull}},
+ {{16943543531066810215ull, 6954106113204181445ull,
+ 18149772328026170384ull, 7724806970276835696ull}},
+ {{12895557716130450336ull, 4346316320752613403ull,
+ 11343607705016356490ull, 4828004356423022310ull}},
+ {{11507761126735675016ull, 14656267437795542562ull,
+ 4956137594415669804ull, 6035005445528777888ull}},
+ {{5161329371564817962ull, 18320334297244428203ull,
+ 6195171993019587255ull, 7543756806910972360ull}},
+ {{919987848014317275ull, 18367737963418849483ull,
+ 3871982495637242034ull, 4714848004319357725ull}},
+ {{14985042865300060305ull, 13736300417418786045ull,
+ 9451664137973940447ull, 5893560005399197156ull}},
+ {{4896245526342911669ull, 12558689503346094653ull,
+ 11814580172467425559ull, 7366950006748996445ull}},
+ {{10731992926356027491ull, 11086675860755230412ull,
+ 933167160302118237ull, 9208687508436245557ull}},
+ {{15930867615827292990ull, 9235015422185712959ull,
+ 2889072484402517850ull, 5755429692772653473ull}},
+ {{15301898501356728333ull, 2320397240877365391ull,
+ 8223026623930535217ull, 7194287115965816841ull}},
+ {{14515687108268522512ull, 7512182569524094643ull,
+ 14890469298340556925ull, 8992858894957271051ull}},
+ {{6766461433454132618ull, 7000957115166253104ull,
+ 7000700302249154126ull, 5620536809348294407ull}},
+ {{8458076791817665773ull, 17974568430812592188ull,
+ 4139189359384054753ull, 7025671011685368009ull}},
+ {{10572595989772082216ull, 8633152483233576523ull,
+ 9785672717657456346ull, 8782088764606710011ull}},
+ {{4302029484393857433ull, 10007406320448373231ull,
+ 3810202439322216264ull, 5488805477879193757ull}},
+ {{765850837064933887ull, 12509257900560466539ull,
+ 9374439067580158234ull, 6861006847348992196ull}},
+ {{14792371601613331071ull, 6413200338845807365ull,
+ 11718048834475197793ull, 8576258559186240245ull}},
+ {{11551075260222025872ull, 15537465257847099363ull,
+ 9629623530760692572ull, 5360161599491400153ull}},
+ {{9827158056850144435ull, 975087498599322588ull,
+ 16648715431878253620ull, 6700201999364250191ull}},
+ {{12283947571062680544ull, 1218859373249153235ull,
+ 16199208271420429121ull, 8375252499205312739ull}},
+ {{5371624222700481388ull, 12291002154349190532ull,
+ 7818662160424074248ull, 5234532812003320462ull}},
+ {{6714530278375601735ull, 15363752692936488165ull,
+ 549955663675317002ull, 6543166015004150578ull}},
+ {{13004848866396890073ull, 9981318829315834398ull,
+ 9910816616448922061ull, 8178957518755188222ull}},
+ {{3516344523070668392ull, 8544167277536090451ull,
+ 1582574366853188384ull, 5111848449221992639ull}},
+ {{18230488709120499201ull, 10680209096920113063ull,
+ 15813276013848649192ull, 6389810561527490798ull}},
+ {{18176424867973236098ull, 13350261371150141329ull,
+ 10543222980456035682ull, 7987263201909363498ull}},
+ {{4442736514842190705ull, 12955599375396226235ull,
+ 11201200381212410205ull, 4992039501193352186ull}},
+ {{941734625125350477ull, 2359441163963119082ull, 4778128439660736949ull,
+ 6240049376491690233ull}},
+ {{10400540318261463905ull, 7560987473381286756ull,
+ 10584346568003309090ull, 7800061720614612791ull}},
+ {{15723709735768190749ull, 9337303189290692126ull,
+ 13532745632643150037ull, 4875038575384132994ull}},
+ {{10431265132855462628ull, 16283315005040753062ull,
+ 7692560003949161738ull, 6093798219230166243ull}},
+ {{3815709379214552476ull, 11130771719446165520ull,
+ 5004013986509064269ull, 7617247774037707804ull}},
+ {{2384818362009095298ull, 9262575333867547402ull,
+ 12350880778422940976ull, 4760779858773567377ull}},
+ {{12204394989366144930ull, 11578219167334434252ull,
+ 1603542917746512508ull, 5950974823466959222ull}},
+ {{15255493736707681163ull, 14472773959168042815ull,
+ 11227800684037916443ull, 7438718529333699027ull}},
+ {{16452212613083382583ull, 6739640715266332807ull,
+ 4711532418310003825ull, 4649199080833561892ull}},
+ {{15953579747926840324ull, 13036236912510303913ull,
+ 5889415522887504781ull, 5811498851041952365ull}},
+ {{6106916629626386693ull, 2460238085355716180ull,
+ 11973455422036768881ull, 7264373563802440456ull}},
+ {{7633645787032983367ull, 7686983625122033129ull,
+ 14966819277545961101ull, 9080466954753050570ull}},
+ {{16300243662964084364ull, 7110207774914964657ull,
+ 13965948066893613592ull, 5675291846720656606ull}},
+ {{6540246523422941743ull, 8887759718643705822ull,
+ 8234063046762241182ull, 7094114808400820758ull}},
+ {{17398680191133452987ull, 1886327611449856469ull,
+ 1069206771598025670ull, 8867643510501025948ull}},
+ {{13180018128672102069ull, 15014012812438324005ull,
+ 9891626269103541851ull, 5542277194063141217ull}},
+ {{2639964605557963874ull, 14155829997120517103ull,
+ 16976218854806815218ull, 6927846492578926521ull}},
+ {{17135013812229618555ull, 8471415459545870570ull,
+ 7385215513226355311ull, 8659808115723658152ull}},
+ {{15321069651070899501ull, 12212163689857250962ull,
+ 4615759695766472069ull, 5412380072327286345ull}},
+ {{9927965026983848568ull, 1430146557039399991ull,
+ 10381385638135477991ull, 6765475090409107931ull}},
+ {{7798270265302422806ull, 15622741251581413701ull,
+ 8365046029241959584ull, 8456843863011384914ull}},
+ {{7179761925027708206ull, 9764213282238383563ull,
+ 9839839786703612644ull, 5285527414382115571ull}},
+ {{4363016387857247353ull, 12205266602797979454ull,
+ 7688113714952127901ull, 6606909267977644464ull}},
+ {{14677142521676334999ull, 1421525198215310605ull,
+ 9610142143690159877ull, 8258636584972055580ull}},
+ {{11479057085261403327ull, 3194296258098263080ull,
+ 15229710876661125731ull, 5161647865607534737ull}},
+ {{14348821356576754158ull, 17827928377904992562ull,
+ 5202080540544243451ull, 6452059832009418422ull}},
+ {{8712654658866166890ull, 17673224453953852799ull,
+ 15725972712535080122ull, 8065074790011773027ull}},
+ {{12362938189432436162ull, 15657451302148545903ull,
+ 7522889936120731124ull, 5040671743757358142ull}},
+ {{10841986718363157299ull, 1125070053976130763ull,
+ 180240383296138098ull, 6300839679696697678ull}},
+ {{8940797379526558719ull, 10629709604324939262ull,
+ 9448672515974948430ull, 7876049599620872097ull}},
+ {{976312343776711296ull, 2031882484275699135ull,
+ 17434635368552812529ull, 4922530999763045060ull}},
+ {{15055448485003052832ull, 7151539123772011822ull,
+ 3346550136981464045ull, 6153163749703806326ull}},
+ {{9595938569399040231ull, 13551109923142402682ull,
+ 13406559708081605864ull, 7691454687129757907ull}},
+ {{10609147624301788049ull, 8469443701964001676ull,
+ 6073256808337309713ull, 4807159179456098692ull}},
+ {{13261434530377235061ull, 15198490645882389999ull,
+ 7591571010421637141ull, 6008948974320123365ull}},
+ {{11965107144544155922ull, 5163055252070823787ull,
+ 14101149781454434331ull, 7511186217900154206ull}},
+ {{5172348956126403499ull, 921066523330570915ull, 4201532594981633553ull,
+ 4694491386187596379ull}},
+ {{1853750176730616470ull, 5763019172590601548ull, 640229725299654037ull,
+ 5868114232734495474ull}},
+ {{2317187720913270588ull, 11815459984165639839ull,
+ 10023659193479343354ull, 7335142790918119342ull}},
+ {{16731542706423751946ull, 5545952943352273990ull,
+ 3306201954994403385ull, 9168928488647649178ull}},
+ {{5845528173087457063ull, 14995435635663641004ull,
+ 6678062240298890019ull, 5730580305404780736ull}},
+ {{7306910216359321328ull, 14132608526152163351ull,
+ 8347577800373612524ull, 7163225381755975920ull}},
+ {{4521951752021763756ull, 17665760657690204189ull,
+ 10434472250467015655ull, 8954031727194969900ull}},
+ {{5132062854227296300ull, 17958629438697459474ull,
+ 15744917193396660592ull, 5596269829496856187ull}},
+ {{15638450604638896183ull, 4001542724662272726ull,
+ 15069460473318437837ull, 6995337286871070234ull}},
+ {{10324691218943844420ull, 9613614424255228812ull,
+ 9613453554793271488ull, 8744171608588837793ull}},
+ {{15676304048694678571ull, 6008509015159518007ull,
+ 17537623517814264440ull, 5465107255368023620ull}},
+ {{14983694042440960309ull, 7510636268949397509ull,
+ 3475285323558278934ull, 6831384069210029526ull}},
+ {{4894559497769036674ull, 164923299331971079ull,
+ 13567478691302624476ull, 8539230086512536907ull}},
+ {{9976628713746729778ull, 9326449098937257732ull,
+ 6173831172850446345ull, 5337018804070335567ull}},
+ {{12470785892183412222ull, 16269747392098960069ull,
+ 3105602947635670027ull, 6671273505087919459ull}},
+ {{1753424309947101565ull, 15725498221696312183ull,
+ 17717061739826751246ull, 8339091881359899323ull}},
+ {{8013419221358020335ull, 5216750370132807210ull,
+ 8767320578178025577ull, 5211932425849937077ull}},
+ {{793401989842749610ull, 11132623981093396917ull,
+ 15570836741149919875ull, 6514915532312421346ull}},
+ {{5603438505730824917ull, 9304093957939358242ull,
+ 10240173889582624036ull, 8143644415390526683ull}},
+ {{8113835084509153477ull, 15038430760566874709ull,
+ 4094265671775446070ull, 5089777759619079177ull}},
+ {{14753979874063829750ull, 9574666413853817578ull,
+ 9729518108146695492ull, 6362222199523848971ull}},
+ {{9219102805725011380ull, 11968333017317271973ull,
+ 7550211616755981461ull, 7952777749404811214ull}},
+ {{8067782262791826064ull, 9786051145036988935ull, 107196242045100509ull,
+ 4970486093378007009ull}},
+ {{5473041810062394676ull, 16844249949723624073ull,
+ 4745681320983763540ull, 6213107616722508761ull}},
+ {{11452988281005381249ull, 2608568363444978475ull,
+ 10543787669657092330ull, 7766384520903135951ull}},
+ {{4852274666414669329ull, 6242041245580499451ull,
+ 13507396321176764562ull, 4853990325564459969ull}},
+ {{1453657314590948757ull, 17025923593830400122ull,
+ 3049187346188791990ull, 6067487906955574962ull}},
+ {{11040443680093461754ull, 12059032455433224344ull,
+ 13034856219590765796ull, 7584359883694468702ull}},
+ {{6900277300058413597ull, 16760267321500541023ull,
+ 3535099118816840718ull, 4740224927309042939ull}},
+ {{4013660606645629092ull, 11726962115020900471ull,
+ 18253931953803214610ull, 5925281159136303673ull}},
+ {{405389739879648460ull, 5435330606921349781ull, 8982356886971854551ull,
+ 7406601448920379592ull}},
+ {{2559211596638474240ull, 10314610656966925469ull,
+ 5613973054357409094ull, 4629125905575237245ull}},
+ {{7810700514225480704ull, 3669891284353881028ull,
+ 11629152336374149272ull, 5786407381969046556ull}},
+ {{9763375642781850880ull, 4587364105442351285ull,
+ 14536440420467686590ull, 7233009227461308195ull}},
+ {{16815905571904701503ull, 14957577168657714914ull,
+ 13558864507157220333ull, 9041261534326635244ull}},
+ {{15121627000867826344ull, 11654328739624765773ull,
+ 17697662353828038516ull, 5650788458954147027ull}},
+ {{5066975695802619218ull, 14567910924530957217ull,
+ 17510391923857660241ull, 7063485573692683784ull}},
+ {{10945405638180661926ull, 4374830600381532809ull,
+ 3441245831112523686ull, 8829356967115854731ull}},
+ {{18370093569931383464ull, 16569327180520621717ull,
+ 18291679708941184967ull, 5518348104447409206ull}},
+ {{9127558907132065618ull, 16099972957223389243ull,
+ 13641227599321705401ull, 6897935130559261508ull}},
+ {{6797762615487694118ull, 6289908141247072842ull,
+ 17051534499152131752ull, 8622418913199076885ull}},
+ {{8860287653107196728ull, 3931192588279420526ull,
+ 12963052071183776297ull, 5389011820749423053ull}},
+ {{1851987529529220102ull, 9525676753776663562ull,
+ 2368757033697556659ull, 6736264775936778817ull}},
+ {{11538356448766300935ull, 7295409923793441548ull,
+ 7572632310549333728ull, 8420330969920973521ull}},
+ {{16434844817333713893ull, 4559631202370900967ull,
+ 16262110240161803340ull, 5262706856200608450ull}},
+ {{15931870003239754462ull, 5699539002963626209ull,
+ 11104265763347478367ull, 6578383570250760563ull}},
+ {{6079779448767529365ull, 2512737735277144858ull,
+ 9268646185756960055ull, 8222979462813450704ull}},
+ {{8411548173907093757ull, 8487990112189297392ull,
+ 5792903866098100034ull, 5139362164258406690ull}},
+ {{10514435217383867197ull, 1386615603381845932ull,
+ 16464501869477400851ull, 6424202705323008362ull}},
+ {{13143044021729833996ull, 15568327559509471127ull,
+ 11357255299991975255ull, 8030253381653760453ull}},
+ {{15131931541222228103ull, 16647733752334501310ull,
+ 9404127571708678486ull, 5018908363533600283ull}},
+ {{9691542389673009321ull, 11586295153563350830ull,
+ 7143473446208460204ull, 6273635454417000354ull}},
+ {{2891055950236485843ull, 14482868941954188538ull,
+ 18152713844615351063ull, 7842044318021250442ull}},
+ {{6418595987325191556ull, 15969322116362449692ull,
+ 15957132171311982318ull, 4901277698763281526ull}},
+ {{8023244984156489445ull, 10738280608598286307ull,
+ 10723043177285202090ull, 6126597123454101908ull}},
+ {{5417370211768223902ull, 4199478723893082076ull,
+ 13403803971606502613ull, 7658246404317627385ull}},
+ {{12609228419209915747ull, 4930517211646870249ull,
+ 1459848454612982277ull, 4786404002698517116ull}},
+ {{1926477468730230972ull, 10774832532985975716ull,
+ 1824810568266227846ull, 5983005003373146395ull}},
+ {{2408096835912788715ull, 4245168629377693837ull,
+ 16116071265614948520ull, 7478756254216432993ull}},
+ {{3810903531659186899ull, 2653230393361058648ull,
+ 3155015513368260969ull, 4674222658885270621ull}},
+ {{4763629414573983623ull, 7928224010128711214ull,
+ 8555455410137714115ull, 5842778323606588276ull}},
+ {{15177908805072255337ull, 5298593994233501113ull,
+ 10694319262672142644ull, 7303472904508235345ull}},
+ {{5137327951058155459ull, 6623242492791876392ull,
+ 17979585096767566209ull, 9129341130635294181ull}},
+ {{3210829969411347162ull, 15668741604063392505ull,
+ 13543083694693422832ull, 5705838206647058863ull}},
+ {{8625223480191571857ull, 1139182931369689015ull,
+ 12317168599939390637ull, 7132297758308823579ull}},
+ {{6169843331812076917ull, 6035664682639499173ull,
+ 10784774731496850392ull, 8915372197886029474ull}},
+ {{6161995091596242025ull, 3772290426649686983ull,
+ 11352170225612919399ull, 5572107623678768421ull}},
+ {{3090807846067914627ull, 103677014884720825ull, 355154726733985537ull,
+ 6965134529598460527ull}},
+ {{8475195826012281188ull, 4741282287033288935ull,
+ 14279001463699645633ull, 8706418161998075658ull}},
+ {{12214526418898757599ull, 14492516475464275344ull,
+ 13536061933239666424ull, 5441511351248797286ull}},
+ {{15268158023623446998ull, 18115645594330344180ull,
+ 7696705379694807222ull, 6801889189060996608ull}},
+ {{638453455819757132ull, 13421184956058154418ull,
+ 9620881724618509028ull, 8502361486326245760ull}},
+ {{5010719428314736112ull, 17611612634391122319ull,
+ 6013051077886568142ull, 5313975928953903600ull}},
+ {{1651713266966032235ull, 12791143756134127091ull,
+ 7516313847358210178ull, 6642469911192379500ull}},
+ {{15899699638989704006ull, 6765557658312883055ull,
+ 9395392309197762723ull, 8303087388990474375ull}},
+ {{16854841302009646860ull, 1922630527231857957ull,
+ 12789649220889683558ull, 5189429618119046484ull}},
+ {{7233493572229894863ull, 11626660195894598255ull,
+ 15987061526112104447ull, 6486787022648808105ull}},
+ {{4430180946859980674ull, 9921639226440859915ull,
+ 6148768852357966847ull, 8108483778311010132ull}},
+ {{463020082573793970ull, 13118553544166619303ull,
+ 13066352569578505087ull, 5067802361444381332ull}},
+ {{14413833158499406174ull, 11786505911780886224ull,
+ 16332940711973131359ull, 6334752951805476665ull}},
+ {{18017291448124257717ull, 10121446371298719876ull,
+ 6581117834684250487ull, 7918441189756845832ull}},
+ {{2037435118222885266ull, 13243433009702781779ull,
+ 4113198646677656554ull, 4949025743598028645ull}},
+ {{16381851953060770294ull, 7330919225273701415ull,
+ 9753184326774458597ull, 6186282179497535806ull}},
+ {{15865628922898574963ull, 13775335050019514673ull,
+ 2968108371613297438ull, 7732852724371919758ull}},
+ {{2998489049170527496ull, 3997898387834808767ull,
+ 15690125787540474611ull, 4833032952732449848ull}},
+ {{17583169366745323082ull, 385686966366123054ull,
+ 1165913160716041648ull, 6041291190915562311ull}},
+ {{12755589671576878044ull, 482108707957653818ull,
+ 15292449506177215772ull, 7551613988644452888ull}},
+ {{12583929563162936682ull, 9524689979328309444ull,
+ 9557780941360759857ull, 4719758742902783055ull}},
+ {{15729911953953670852ull, 16517548492587774709ull,
+ 7335540158273561917ull, 5899698428628478819ull}},
+ {{5827331887159924853ull, 6811877560452554675ull,
+ 4557739179414564493ull, 7374623035785598524ull}},
+ {{2672478840522518162ull, 13126532968993081248ull,
+ 5697173974268205616ull, 9218278794731998155ull}},
+ {{1670299275326573852ull, 8204083105620675780ull,
+ 1254890724703934558ull, 5761424246707498847ull}},
+ {{2087874094158217315ull, 1031731845171068917ull,
+ 15403671461162081910ull, 7201780308384373558ull}},
+ {{7221528636125159547ull, 10513036843318611954ull,
+ 10031217289597826579ull, 9002225385480466948ull}},
+ {{9125141416005612621ull, 4264805017860438519ull,
+ 15492882842853417420ull, 5626390865925291842ull}},
+ {{6794740751579627872ull, 5331006272325548149ull,
+ 10142731516711995967ull, 7032988582406614803ull}},
+ {{13105111957901922744ull, 2052071821979547282ull,
+ 8066728377462607055ull, 8791235728008268504ull}},
+ {{12802380992116089619ull, 8200073916378298907ull,
+ 5041705235914129409ull, 5494522330005167815ull}},
+ {{11391290221717724120ull, 14861778413900261538ull,
+ 1690445526465273857ull, 6868152912506459769ull}},
+ {{5015740740292379342ull, 4742164962093163211ull,
+ 6724742926508980226ull, 8585191140633074711ull}},
+ {{828994953469043137ull, 7575539119735614911ull,
+ 11120493356709194497ull, 5365744462895671694ull}},
+ {{14871301747118467633ull, 14081109918096906542ull,
+ 4677244659031717313ull, 6707180578619589618ull}},
+ {{9365755147043308733ull, 3766329342338969466ull,
+ 15069927860644422450ull, 8383975723274487022ull}},
+ {{10465282985329455862ull, 6965641857389243820ull,
+ 4807018894475376127ull, 5239984827046554389ull}},
+ {{13081603731661819828ull, 4095366303309166871ull,
+ 10620459636521608063ull, 6549981033808192986ull}},
+ {{11740318646149886881ull, 507521860709070685ull,
+ 4052202508797234271ull, 8187476292260241233ull}},
+ {{9643542163057373253ull, 7234730190584251034ull,
+ 14061841614066741179ull, 5117172682662650770ull}},
+ {{2831055666966940758ull, 4431726719802925889ull,
+ 8353929980728650666ull, 6396465853328313463ull}},
+ {{8150505602136063851ull, 14763030436608433169ull,
+ 5830726457483425428ull, 7995582316660391829ull}},
+ {{16623281047403509667ull, 3521986025494922ull, 5950047045140834845ull,
+ 4997238947912744893ull}},
+ {{11555729272399611276ull, 4616088500959256557ull,
+ 12049244824853431460ull, 6246548684890931116ull}},
+ {{609603535217350382ull, 5770110626199070697ull,
+ 15061556031066789325ull, 7808185856113663895ull}},
+ {{11910217255579313749ull, 5912162150588113137ull,
+ 16331001547057825184ull, 4880116160071039934ull}},
+ {{1052713514191978474ull, 7390202688235141422ull,
+ 11190379896967505672ull, 6100145200088799918ull}},
+ {{10539263929594748901ull, 9237753360293926777ull,
+ 4764602834354606282ull, 7625181500110999898ull}},
+ {{18116255002065187823ull, 10385281868611092139ull,
+ 7589562789899016830ull, 4765738437569374936ull}},
+ {{18033632734154096875ull, 3758230298909089366ull,
+ 9486953487373771038ull, 5957173046961718670ull}},
+ {{13318668880837845285ull, 13921159910491137516ull,
+ 2635319822362437989ull, 7446466308702148338ull}},
+ {{17547540087378429112ull, 11006567953270654899ull,
+ 6258760907403911647ull, 4654041442938842711ull}},
+ {{17322739090795648485ull, 9146523923160930720ull,
+ 3211765115827501655ull, 5817551803673553389ull}},
+ {{3206679789785008991ull, 6821468885523775497ull,
+ 8626392413211764973ull, 7271939754591941736ull}},
+ {{8620035755658649142ull, 13138522125332107275ull,
+ 10782990516514706216ull, 9089924693239927170ull}},
+ {{3081679338072961762ull, 8211576328332567047ull,
+ 11351055091249079289ull, 5681202933274954481ull}},
+ {{17687157227873365914ull, 14876156428843096712ull,
+ 353760808779185399ull, 7101503666593693102ull}},
+ {{3662202461132155777ull, 13983509517626482987ull,
+ 9665573047828757557ull, 8876879583242116377ull}},
+ {{18429777602703455025ull, 11045536457730245818ull,
+ 17570198200961443233ull, 5548049739526322735ull}},
+ {{13813849966524542973ull, 18418606590590195177ull,
+ 17351061732774416137ull, 6935062174407903419ull}},
+ {{3432254402873515004ull, 9188200182955580260ull,
+ 17077141147540632268ull, 8668827718009879274ull}},
+ {{11368531038650722686ull, 14965997151202013470ull,
+ 15284899235640283071ull, 5418017323756174546ull}},
+ {{4987291761458627549ull, 14095810420575128934ull,
+ 9882752007695578031ull, 6772521654695218183ull}},
+ {{15457486738678060244ull, 13008077007291523263ull,
+ 7741753991192084635ull, 8465652068369022729ull}},
+ {{16578458239314869509ull, 5824205120343508087ull,
+ 16367811290563522657ull, 5291032542730639205ull}},
+ {{16111386780716198982ull, 11891942418856773013ull,
+ 6624706057922239609ull, 6613790678413299007ull}},
+ {{6304175420613085015ull, 1029869968288802555ull,
+ 3669196553975411608ull, 8267238348016623759ull}},
+ {{1634266628669484183ull, 643668730180501597ull, 9210776873875714111ull,
+ 5167023967510389849ull}},
+ {{6654519304264243132ull, 14639643968007790708ull,
+ 16125157110772030542ull, 6458779959387987311ull}},
+ {{8318149130330303915ull, 9076182923154962577ull,
+ 15544760370037650274ull, 8073474949234984139ull}},
+ {{16728058252524909707ull, 10284300345399239514ull,
+ 7409632222059837469ull, 5045921843271865087ull}},
+ {{11686700778801361326ull, 17467061450176437297ull,
+ 4650354259147408932ull, 6307402304089831359ull}},
+ {{773317918219537945ull, 3387082739010995006ull, 1201256805506873262ull,
+ 7884252880112289199ull}},
+ {{14318381754169374928ull, 15951984767164035590ull,
+ 7668314531082877644ull, 4927658050070180749ull}},
+ {{8674605155856942852ull, 1493236885245492872ull,
+ 14197079182280984960ull, 6159572562587725936ull}},
+ {{10843256444821178564ull, 1866546106556866090ull,
+ 17746348977851231200ull, 7699465703234657420ull}},
+ {{11388721296440624507ull, 1166591316598041306ull,
+ 1868096074302243692ull, 4812166064521660888ull}},
+ {{5012529583696004826ull, 1458239145747551633ull,
+ 2335120092877804615ull, 6015207580652076110ull}},
+ {{10877347998047393936ull, 15657856987466603253ull,
+ 12142272152952031576ull, 7519009475815095137ull}},
+ {{9104185507993315162ull, 9786160617166627033ull, 671391067953937879ull,
+ 4699380922384434461ull}},
+ {{15991917903419031856ull, 7621014753030895887ull,
+ 5450924853369810253ull, 5874226152980543076ull}},
+ {{15378211360846401916ull, 14137954459716007763ull,
+ 6813656066712262816ull, 7342782691225678845ull}},
+ {{14611078182630614491ull, 17672443074645009704ull,
+ 13128756101817716424ull, 9178478364032098556ull}},
+ {{9131923864144134057ull, 11045276921653131065ull,
+ 17428844600490848573ull, 5736548977520061597ull}},
+ {{16026590848607555476ull, 18418282170493801735ull,
+ 7950997695331397004ull, 7170686221900076997ull}},
+ {{15421552542332056440ull, 4576108639407700553ull,
+ 14550433137591634160ull, 8963357777375096246ull}},
+ {{2720941311316453419ull, 2860067899629812846ull,
+ 4482334692567383446ull, 5602098610859435154ull}},
+ {{12624548676000342582ull, 12798456911392041865ull,
+ 14826290402564005115ull, 7002623263574293942ull}},
+ {{1945627789718264515ull, 11386385120812664428ull,
+ 9309490966350230586ull, 8753279079467867428ull}},
+ {{10439389405428691130ull, 11728176718935303171ull,
+ 15041803890823669924ull, 5470799424667417142ull}},
+ {{8437550738358476009ull, 14660220898669128964ull,
+ 9578882826674811597ull, 6838499280834271428ull}},
+ {{10546938422948095011ull, 4490218068054247493ull,
+ 11973603533343514497ull, 8548124101042839285ull}},
+ {{8897679523556253334ull, 14335601338602374443ull,
+ 9789345217553390512ull, 5342577563151774553ull}},
+ {{6510413386017928763ull, 17919501673252968054ull,
+ 16848367540369126044ull, 6678221953939718191ull}},
+ {{17361388769377186762ull, 3952633017856658451ull,
+ 16448773407034019652ull, 8347777442424647739ull}},
+ {{8545024971647047774ull, 11693767673015187340ull,
+ 7974640370182568330ull, 5217360901515404837ull}},
+ {{10681281214558809718ull, 5393837554414208367ull,
+ 14579986481155598317ull, 6521701126894256046ull}},
+ {{8739915499771124243ull, 11353982961445148363ull,
+ 9001611064589722088ull, 8152126408617820058ull}},
+ {{3156604178143258700ull, 7096239350903217727ull,
+ 10237692933795964209ull, 5095079005386137536ull}},
+ {{17780813277961237087ull, 13481985207056410062ull,
+ 12797116167244955261ull, 6368848756732671920ull}},
+ {{13002644560596770551ull, 3017423453538348866ull,
+ 15996395209056194077ull, 7961060945915839900ull}},
+ {{12738338868800369499ull, 4191732667675161993ull,
+ 774374968805345490ull, 4975663091197399938ull}},
+ {{2087865530718298161ull, 14463037871448728300ull,
+ 10191340747861457670ull, 6219578863996749922ull}},
+ {{2609831913397872701ull, 8855425302456134567ull,
+ 3515803897972046280ull, 7774473579995937403ull}},
+ {{8548673973514752294ull, 5534640814035084104ull,
+ 18338278500728386589ull, 4859045987497460876ull}},
+ {{10685842466893440368ull, 11529987035971243034ull,
+ 4476104052200931620ull, 6073807484371826096ull}},
+ {{4133931046762024652ull, 14412483794964053793ull,
+ 5595130065251164525ull, 7592259355464782620ull}},
+ {{14112921950294735168ull, 11313645381066227572ull,
+ 12720328327636753636ull, 4745162097165489137ull}},
+ {{17641152437868418959ull, 14142056726332784465ull,
+ 2065352354263778333ull, 5931452621456861422ull}},
+ {{8216382492053359987ull, 3842512852633816870ull,
+ 11805062479684498725ull, 7414315776821076777ull}},
+ {{523553039105962088ull, 4707413542109829496ull, 460635022161729847ull,
+ 4633947360513172986ull}},
+ {{654441298882452610ull, 1272580909209898966ull, 9799165814556938117ull,
+ 5792434200641466232ull}},
+ {{10041423660457841570ull, 6202412154939761611ull,
+ 12248957268196172646ull, 7240542750801832790ull}},
+ {{7940093557144914059ull, 16976387230529477822ull,
+ 6087824548390439999ull, 9050678438502290988ull}},
+ {{350872454788183383ull, 17527771046722005495ull,
+ 13028262379598800807ull, 5656674024063931867ull}},
+ {{14273648623767392940ull, 17298027789975118964ull,
+ 11673641956071113105ull, 7070842530079914834ull}},
+ {{17842060779709241175ull, 7787476682186734993ull,
+ 5368680408234115574ull, 8838553162599893543ull}},
+ {{4233758959677193879ull, 255486907939321467ull,
+ 10272954282787404090ull, 5524095726624933464ull}},
+ {{680512681169104444ull, 9542730671778927642ull,
+ 12841192853484255112ull, 6905119658281166830ull}},
+ {{10074012888316156363ull, 11928413339723659552ull,
+ 6828119030000543082ull, 8631399572851458538ull}},
+ {{6296258055197597727ull, 12066944355754675124ull,
+ 8879260412177727330ull, 5394624733032161586ull}},
+ {{7870322568996997159ull, 5860308407838568097ull,
+ 1875703478367383355ull, 6743280916290201983ull}},
+ {{14449589229673634353ull, 2713699491370822217ull,
+ 16179687403241392906ull, 8429101145362752478ull}},
+ {{2113464240904939615ull, 6307748200534151790ull,
+ 5500618608598482662ull, 5268188215851720299ull}},
+ {{11865202337985950326ull, 17108057287522465545ull,
+ 2264087242320715423ull, 6585235269814650374ull}},
+ {{996444867200274196ull, 16773385590975694028ull,
+ 12053481089755670087ull, 8231544087268312967ull}},
+ {{9846150078854947180ull, 17400895022000890623ull,
+ 14450954708738375660ull, 5144715054542695604ull}},
+ {{7696001580141296071ull, 3304374703791561663ull,
+ 18063693385922969576ull, 6430893818178369505ull}},
+ {{5008315956749232185ull, 4130468379739452079ull,
+ 8744558677121548258ull, 8038617272722961882ull}},
+ {{10047726500609351972ull, 7193228755764545453ull,
+ 10077035191628355565ull, 5024135795451851176ull}},
+ {{17171344144189077869ull, 13603221963133069720ull,
+ 12596293989535444456ull, 6280169744314813970ull}},
+ {{3017436106526795720ull, 17004027453916337151ull,
+ 6521995450064529762ull, 7850212180393517463ull}},
+ {{8803426594220329181ull, 15239203177125098623ull,
+ 10993776183931412957ull, 4906382612745948414ull}},
+ {{6392597224348023572ull, 5213945916124209567ull,
+ 4518848193059490389ull, 6132978265932435518ull}},
+ {{3379060512007641561ull, 11129118413582649863ull,
+ 14871932278179138794ull, 7666222832415544397ull}},
+ {{9029441847645857832ull, 11567385026916544068ull,
+ 11600800683075655698ull, 4791389270259715248ull}},
+ {{11286802309557322290ull, 5235859246790904277ull,
+ 14501000853844569623ull, 5989236587824644060ull}},
+ {{273444831664489150ull, 1933138040061242443ull,
+ 18126251067305712029ull, 7486545734780805075ull}},
+ {{16311804084286163383ull, 3514054284251970478ull,
+ 9023063907852376066ull, 4679091084238003172ull}},
+ {{11166383068502928421ull, 13615939892169738906ull,
+ 11278829884815470082ull, 5848863855297503965ull}},
+ {{4734606798773884718ull, 7796552828357397825ull, 263479300737173891ull,
+ 7311079819121879957ull}},
+ {{10529944516894743801ull, 5134005017019359377ull,
+ 4941035144348855268ull, 9138849773902349946ull}},
+ {{18110430369127684636ull, 12432125172491875418ull,
+ 7699832983645422446ull, 5711781108688968716ull}},
+ {{13414665924554829987ull, 6316784428760068465ull,
+ 9624791229556778058ull, 7139726385861210895ull}},
+ {{2933274350411373771ull, 17119352572804861390ull,
+ 7419303018518584668ull, 8924657982326513619ull}},
+ {{15668354524289272319ull, 1476223321148262560ull,
+ 2331221377360421466ull, 5577911238954071012ull}},
+ {{1138699081652038783ull, 11068651188290104009ull,
+ 2914026721700526832ull, 6972389048692588765ull}},
+ {{6035059870492436382ull, 13835813985362630011ull,
+ 8254219420553046444ull, 8715486310865735956ull}},
+ {{1466069409844078787ull, 17870755777706419565ull,
+ 14382259174700429835ull, 5447178944291084972ull}},
+ {{6444272780732486388ull, 17726758703705636552ull,
+ 17977823968375537294ull, 6808973680363856215ull}},
+ {{8055340975915607985ull, 12935076342777269882ull,
+ 17860593942042033714ull, 8511217100454820269ull}},
+ {{9646274128374642895ull, 12696108732663181580ull,
+ 13468714222989965023ull, 5319510687784262668ull}},
+ {{12057842660468303618ull, 11258449897401589071ull,
+ 16835892778737456279ull, 6649388359730328335ull}},
+ {{10460617307157991618ull, 9461376353324598435ull,
+ 16433179954994432445ull, 8311735449662910419ull}},
+ {{4232042807760050810ull, 8219203230041567974ull,
+ 7964894462657826326ull, 5194834656039319012ull}},
+ {{14513425546554839320ull, 1050632000697184159ull,
+ 9956118078322282908ull, 6493543320049148765ull}},
+ {{13530095914766161246ull, 1313290000871480199ull,
+ 17056833616330241539ull, 8116929150061435956ull}},
+ {{15373838974369932635ull, 16961707315040532788ull,
+ 1437148973351625153ull, 5073080718788397473ull}},
+ {{770554644252864178ull, 7367076088518502274ull, 6408122235116919346ull,
+ 6341350898485496841ull}},
+ {{10186565342170856030ull, 18432217147502903650ull,
+ 12621838812323537086ull, 7926688623106871051ull}},
+ {{10978289357284172923ull, 6908449698761926877ull,
+ 5582806248488516727ull, 4954180389441794407ull}},
+ {{18334547715032604057ull, 4023876105025020692ull,
+ 2366821792183258005ull, 6192725486802243009ull}},
+ {{4471440570081203456ull, 9641531149708663770ull,
+ 7570213258656460410ull, 7740906858502803761ull}},
+ {{7406336374728140064ull, 10637642986995302760ull,
+ 16260598332728757516ull, 4838066786564252350ull}},
+ {{9257920468410175080ull, 13297053733744128450ull,
+ 11102375879056171087ull, 6047583483205315438ull}},
+ {{2349028548657943042ull, 12009631148752772659ull,
+ 4654597811965438051ull, 7559479354006644298ull}},
+ {{17609043907407072065ull, 5200176458756788959ull,
+ 7520809650905786686ull, 4724674596254152686ull}},
+ {{17399618865831452177ull, 15723592610300762007ull,
+ 177640026777457549ull, 5905843245317690858ull}},
+ {{17137837563861927318ull, 5819432707593788797ull,
+ 9445422070326597745ull, 7382304056647113572ull}},
+ {{13016991486627398526ull, 15166360488314587758ull,
+ 15126760830808899398ull, 4613940035404445982ull}},
+ {{7047867321429472349ull, 9734578573538458890ull,
+ 9685079001656348440ull, 5767425044255557478ull}},
+ {{18033206188641616244ull, 12168223216923073612ull,
+ 2882976715215659742ull, 7209281305319446848ull}},
+ {{4094763662092468689ull, 5986906984299066208ull,
+ 3603720894019574678ull, 9011601631649308560ull}},
+ {{2559227288807792931ull, 17576874920469080092ull,
+ 2252325558762234173ull, 5632251019780817850ull}},
+ {{3199034111009741163ull, 8136035595304186403ull,
+ 12038778985307568525ull, 7040313774726022312ull}},
+ {{17833850694044340166ull, 14781730512557620907ull,
+ 15048473731634460656ull, 8800392218407527890ull}},
+ {{8840313674564018652ull, 9238581570348513067ull,
+ 14016982100698925814ull, 5500245136504704931ull}},
+ {{6438706074777635411ull, 2324854926080865526ull,
+ 12909541607446269364ull, 6875306420630881164ull}},
+ {{17271754630326820071ull, 2906068657601081907ull,
+ 16136927009307836705ull, 8594133025788601455ull}},
+ {{8489003634740568593ull, 13345507957069145952ull,
+ 17003108408458479796ull, 5371333141117875909ull}},
+ {{10611254543425710741ull, 16681884946336432440ull,
+ 7418827455290936033ull, 6714166426397344887ull}},
+ {{13264068179282138426ull, 7017298127638376838ull,
+ 4661848300686282138ull, 8392708032996681109ull}},
+ {{3678356593623948612ull, 8997497348201373428ull,
+ 5219498197142620288ull, 5245442520622925693ull}},
+ {{4597945742029935765ull, 11246871685251716785ull,
+ 11136058764855663264ull, 6556803150778657116ull}},
+ {{10359118195964807611ull, 14058589606564645981ull,
+ 13920073456069579080ull, 8196003938473321395ull}},
+ {{8780291881691698709ull, 8786618504102903738ull,
+ 6394202900829792973ull, 5122502461545825872ull}},
+ {{1751992815259847578ull, 15594959148556017577ull,
+ 7992753626037241216ull, 6403128076932282340ull}},
+ {{6801677037502197376ull, 1046954861985470355ull,
+ 9990942032546551521ull, 8003910096165352925ull}},
+ {{1945205139225179408ull, 12183561834809388732ull,
+ 8550181779555288652ull, 5002443810103345578ull}},
+ {{2431506424031474260ull, 15229452293511735915ull,
+ 1464355187589335007ull, 6253054762629181973ull}},
+ {{16874441085321506537ull, 14425129348462281989ull,
+ 6442130002914056663ull, 7816318453286477466ull}},
+ {{12852368687539635538ull, 15933234870430008099ull,
+ 8638017270248673318ull, 4885199033304048416ull}},
+ {{11453774840997156518ull, 10693171551182734316ull,
+ 10797521587810841648ull, 6106498791630060520ull}},
+ {{14317218551246445648ull, 13366464438978417895ull,
+ 13496901984763552060ull, 7633123489537575650ull}},
+ {{15865790622170110386ull, 17577412311216286992ull,
+ 13047249758904607941ull, 4770702180960984781ull}},
+ {{1385494204003086367ull, 8136707333738195029ull,
+ 2474004143348596215ull, 5963377726201230977ull}},
+ {{6343553773431245862ull, 5559198148745355882ull,
+ 7704191197613133173ull, 7454222157751538721ull}},
+ {{8576407126821916568ull, 5780341852179541378ull,
+ 16344334544576677993ull, 4658888848594711700ull}},
+ {{1497136871672619902ull, 11837113333651814627ull,
+ 1983674107011295875ull, 5823611060743389626ull}},
+ {{15706479144872938589ull, 10184705648637380379ull,
+ 11702964670618895652ull, 7279513825929237032ull}},
+ {{15021412912663785332ull, 12730882060796725474ull,
+ 14628705838273619565ull, 9099392282411546290ull}},
+ {{14000069088842253737ull, 10262644297211647373ull,
+ 13754627167348400132ull, 5687120176507216431ull}},
+ {{3665028305770653459ull, 12828305371514559217ull,
+ 12581597940758112261ull, 7108900220634020539ull}},
+ {{9192971400640704728ull, 2200323659111035309ull,
+ 11115311407520252423ull, 8886125275792525674ull}},
+ {{8051450134614134407ull, 8292731314585478924ull,
+ 11558755648127545668ull, 5553828297370328546ull}},
+ {{10064312668267668009ull, 10365914143231848655ull,
+ 5225072523304656277ull, 6942285371712910683ull}},
+ {{7968704816907197107ull, 17569078697467198723ull,
+ 1919654635703432442ull, 8677856714641138354ull}},
+ {{2674597501353304240ull, 15592360204344387106ull,
+ 5811470165742033180ull, 5423660446650711471ull}},
+ {{12566618913546406108ull, 1043706181720932266ull,
+ 2652651688750153572ull, 6779575558313389339ull}},
+ {{6484901605078231826ull, 1304632727151165333ull,
+ 17150872666219855677ull, 8474469447891736673ull}},
+ {{6358906512387588844ull, 3121238463683172285ull,
+ 3801766388746327942ull, 5296543404932335421ull}},
+ {{12560319158911873958ull, 13124920116458741164ull,
+ 9363894004360297831ull, 6620679256165419276ull}},
+ {{15700398948639842448ull, 11794464127146038551ull,
+ 11704867505450372289ull, 8275849070206774095ull}},
+ {{16730278370540983386ull, 454011051825192238ull,
+ 14233071218547564537ull, 5172405668879233809ull}},
+ {{11689475926321453425ull, 5179199833208878202ull,
+ 3956280967902291959ull, 6465507086099042262ull}},
+ {{5388472871047040973ull, 1862313773083709849ull,
+ 14168723246732640757ull, 8081883857623802827ull}},
+ {{14897010590472870368ull, 3469789117391012607ull,
+ 6549609019994206521ull, 5051177411014876767ull}},
+ {{14009577219663700056ull, 8948922415166153663ull,
+ 3575325256565370247ull, 6313971763768595959ull}},
+ {{12900285506152237166ull, 6574467000530304175ull,
+ 18304214625988876521ull, 7892464704710744948ull}},
+ {{14980207468986230085ull, 15638256921399909869ull,
+ 2216762104388272017ull, 4932790440444215593ull}},
+ {{4890201280950623894ull, 5712763096467723625ull,
+ 7382638648912727926ull, 6165988050555269491ull}},
+ {{10724437619615667771ull, 16364325907439430339ull,
+ 4616612292713522003ull, 7707485063194086864ull}},
+ {{4396930503046098405ull, 7921860682935950010ull,
+ 2885382682945951252ull, 4817178164496304290ull}},
+ {{14719535165662398814ull, 9902325853669937512ull,
+ 12830100390537214873ull, 6021472705620380362ull}},
+ {{18399418957077998518ull, 16989593335514809794ull,
+ 6814253451316742783ull, 7526840882025475453ull}},
+ {{16111322866601136978ull, 17536024862337837977ull,
+ 6564751416286658191ull, 4704275551265922158ull}},
+ {{6304095527969257510ull, 17308345059494909568ull,
+ 17429311307213098547ull, 5880344439082402697ull}},
+ {{7880119409961571888ull, 17023745305941249056ull,
+ 7951581078734209472ull, 7350430548853003372ull}},
+ {{9850149262451964859ull, 2832937558717009704ull,
+ 9939476348417761841ull, 9188038186066254215ull}},
+ {{6156343289032478037ull, 13299801020266600825ull,
+ 13129701745402183006ull, 5742523866291408884ull}},
+ {{12307115129717985451ull, 7401379238478475223ull,
+ 16412127181752728758ull, 7178154832864261105ull}},
+ {{10772207893720093909ull, 28352011243318221ull, 6680100921908747236ull,
+ 8972693541080326382ull}},
+ {{9038472942788752645ull, 9241092043881849696ull,
+ 18010121131475130734ull, 5607933463175203988ull}},
+ {{11298091178485940807ull, 2327993017997536312ull,
+ 4065907340634361802ull, 7009916828969004986ull}},
+ {{14122613973107426008ull, 12133363309351696198ull,
+ 14305756212647728060ull, 8762396036211256232ull}},
+ {{4214947714764753351ull, 16806724105199585932ull,
+ 8941097632904830037ull, 5476497522632035145ull}},
+ {{5268684643455941689ull, 7173347076217318703ull,
+ 15788058059558425451ull, 6845621903290043931ull}},
+ {{1974169785892539207ull, 4354997826844260475ull,
+ 15123386556020643910ull, 8557027379112554914ull}},
+ {{17374757180678694669ull, 16556931697059826508ull,
+ 14063802615940290347ull, 5348142111945346821ull}},
+ {{3271702402138816720ull, 16084478602897395232ull,
+ 3744695214643199222ull, 6685177639931683527ull}},
+ {{4089628002673520899ull, 10882226216766968232ull, 69182999876611124ull,
+ 8356472049914604409ull}},
+ {{2556017501670950562ull, 16024763422334130953ull,
+ 11572454420991351712ull, 5222795031196627755ull}},
+ {{7806707895516076107ull, 1584210204208112075ull,
+ 9853882007811801737ull, 6528493788995784694ull}},
+ {{5146698850967707229ull, 6591948773687527998ull,
+ 3093980472909976363ull, 8160617236244730868ull}},
+ {{17051744837136980730ull, 1814124974341011046ull,
+ 11157109832423511035ull, 5100385772652956792ull}},
+ {{12091309009566450105ull, 16102714273208427520ull,
+ 13946387290529388793ull, 6375482215816195990ull}},
+ {{15114136261958062631ull, 6293334786228370688ull,
+ 8209612076306960184ull, 7969352769770244988ull}},
+ {{9446335163723789145ull, 3933334241392731680ull,
+ 14354379584546625923ull, 4980845481106403117ull}},
+ {{11807918954654736431ull, 304981783313526696ull,
+ 4107916425401118692ull, 6226056851383003897ull}},
+ {{14759898693318420538ull, 381227229141908370ull,
+ 9746581550178786269ull, 7782571064228754871ull}},
+ {{13836622701751400741ull, 2544110027427386683ull,
+ 13009142496502823274ull, 4864106915142971794ull}},
+ {{12684092358761863022ull, 12403509571139009162ull,
+ 7038056083773753284ull, 6080133643928714743ull}},
+ {{6631743411597552969ull, 15504386963923761453ull,
+ 4185884086289803701ull, 7600167054910893429ull}},
+ {{6450682641462164558ull, 11996084861666044860ull,
+ 4922020563144821265ull, 4750104409319308393ull}},
+ {{8063353301827705697ull, 1160048021800392363ull,
+ 10764211722358414486ull, 5937630511649135491ull}},
+ {{5467505608857244217ull, 10673432064105266262ull,
+ 8843578634520630203ull, 7422038139561419364ull}},
+ {{17252249060817941348ull, 4365052030852097461ull,
+ 14750608683430169685ull, 4638773837225887102ull}},
+ {{7730253270740262973ull, 10068001056992509731ull,
+ 9214888817432936298ull, 5798467296532358878ull}},
+ {{5051130569997940812ull, 3361629284385861356ull,
+ 2295238984936394565ull, 7248084120665448598ull}},
+ {{6313913212497426015ull, 8813722623909714599ull,
+ 12092420768025269014ull, 9060105150831810747ull}},
+ {{10863724785451973115ull, 896890621516183720ull,
+ 5251919970802099182ull, 5662565719269881717ull}},
+ {{13579655981814966394ull, 10344485313750005458ull,
+ 11176585981930011881ull, 7078207149087352146ull}},
+ {{7751197940413932184ull, 17542292660614894727ull,
+ 4747360440557739043ull, 8847758936359190183ull}},
+ {{11762027740399789471ull, 8658089903670615252ull,
+ 9884629302989668758ull, 5529849335224493864ull}},
+ {{14702534675499736839ull, 1599240342733493257ull,
+ 12355786628737085948ull, 6912311669030617330ull}},
+ {{4543110289092507337ull, 1999050428416866572ull,
+ 6221361249066581627ull, 8640389586288271663ull}},
+ {{12062815967537592894ull, 17390307582256399271ull,
+ 10805879808307695372ull, 5400243491430169789ull}},
+ {{10466833940994603213ull, 3291140404110947473ull,
+ 18119035778812007120ull, 6750304364287712236ull}},
+ {{17695228444670641920ull, 4113925505138684341ull,
+ 4202050649805457284ull, 8437880455359640296ull}},
+ {{13365360787132845152ull, 11794575477566453521ull,
+ 2626281656128410802ull, 5273675284599775185ull}},
+ {{2871642928633892728ull, 5519847310103291094ull,
+ 7894538088587901407ull, 6592094105749718981ull}},
+ {{12812925697647141718ull, 2288123119201725963ull,
+ 14479858629162264663ull, 8240117632187148726ull}},
+ {{5702235551815769622ull, 8347605977142160583ull,
+ 4438225624799027510ull, 5150073520116967954ull}},
+ {{2516108421342324123ull, 1211135434572924921ull,
+ 14771154067853560196ull, 6437591900146209942ull}},
+ {{7756821545105293058ull, 1513919293216156151ull,
+ 9240570547962174437ull, 8046989875182762428ull}},
+ {{11765542493331890018ull, 3252042567473791546ull,
+ 14998728629331134831ull, 5029368671989226517ull}},
+ {{5483556079810086714ull, 17900111264624403145ull,
+ 4913352731381754826ull, 6286710839986533147ull}},
+ {{11466131118189996296ull, 13151767043925728123ull,
+ 1530004895799805629ull, 7858388549983166434ull}},
+ {{4860488939655053733ull, 10525697411667274029ull,
+ 5567939078302266422ull, 4911492843739479021ull}},
+ {{10687297192996205070ull, 3933749727729316728ull,
+ 11571609866305220932ull, 6139366054674348776ull}},
+ {{13359121491245256338ull, 4917187159661645910ull,
+ 14464512332881526165ull, 7674207568342935970ull}},
+ {{3737764913600897307ull, 5379084984002222646ull,
+ 13652006226478341757ull, 4796379730214334981ull}},
+ {{13895578178855897442ull, 11335542248430166211ull,
+ 3229949727815763484ull, 5995474662767918727ull}},
+ {{12757786705142483899ull, 14169427810537707764ull,
+ 17872495215051868067ull, 7494343328459898408ull}},
+ {{17196988727568828245ull, 6550049372372373400ull,
+ 11170309509407417542ull, 4683964580287436505ull}},
+ {{3049491835751483690ull, 17410933752320242559ull,
+ 127828831477108215ull, 5854955725359295632ull}},
+ {{17646922849971518324ull, 17151981171972915294ull,
+ 159786039346385269ull, 7318694656699119540ull}},
+ {{12835281525609622097ull, 7604918409683980406ull,
+ 199732549182981587ull, 9148368320873899425ull}},
+ {{3410364935078625907ull, 2447230996838793802ull,
+ 11654047889307833252ull, 5717730200546187140ull}},
+ {{13486328205703058191ull, 3059038746048492252ull,
+ 14567559861634791565ull, 7147162750682733925ull}},
+ {{16857910257128822739ull, 8435484450988003219ull,
+ 4374391771761325744ull, 8933953438353417407ull}},
+ {{8230350901491820260ull, 5272177781867502012ull,
+ 9651523884991910446ull, 5583720898970885879ull}},
+ {{10287938626864775325ull, 15813594264189153323ull,
+ 7452718837812500153ull, 6979651123713607349ull}},
+ {{8248237265153581252ull, 5931934774954277942ull,
+ 13927584565693013096ull, 8724563904642009186ull}},
+ {{543462272293600379ull, 3707459234346423714ull,
+ 13316426371985521089ull, 5452852440401255741ull}},
+ {{9902699877221776281ull, 9246010061360417546ull,
+ 2810474909699737649ull, 6816065550501569677ull}},
+ {{3155002809672444544ull, 16169198595127909837ull,
+ 8124779655552059965ull, 8520081938126962096ull}},
+ {{4277719765258971792ull, 12411592131168637600ull,
+ 5077987284720037478ull, 5325051211329351310ull}},
+ {{5347149706573714740ull, 6291118127106021192ull,
+ 15570856142754822656ull, 6656314014161689137ull}},
+ {{6683937133217143425ull, 7863897658882526490ull,
+ 5628512123161364608ull, 8320392517702111422ull}},
+ {{8789146726688102545ull, 4914936036801579056ull,
+ 17352878132258016592ull, 5200245323563819638ull}},
+ {{10986433408360128181ull, 6143670046001973820ull,
+ 12467725628467744932ull, 6500306654454774548ull}},
+ {{13733041760450160226ull, 7679587557502467275ull,
+ 15584657035584681165ull, 8125383318068468185ull}},
+ {{6277308091067656189ull, 7105585232652735999ull,
+ 2822881619599343872ull, 5078364573792792616ull}},
+ {{3234949095407182332ull, 8881981540815919999ull,
+ 3528602024499179840ull, 6347955717240990770ull}},
+ {{17878744424541141627ull, 11102476926019899998ull,
+ 13634124567478750608ull, 7934944646551238462ull}},
+ {{6562529246910825613ull, 6939048078762437499ull,
+ 3909641836246831226ull, 4959340404094524039ull}},
+ {{3591475540211144113ull, 17897182135307822682ull,
+ 275366276881151128ull, 6199175505118155049ull}},
+ {{13712716462118705949ull, 3924733595425226736ull,
+ 4955893864528826815ull, 7748969381397693811ull}},
+ {{8570447788824191218ull, 9370487524781848566ull, 791590656116822807ull,
+ 4843105863373558632ull}},
+ {{1489687699175463214ull, 7101423387549922804ull, 989488320146028509ull,
+ 6053882329216948290ull}},
+ {{1862109623969329018ull, 13488465252864791409ull,
+ 10460232437037311444ull, 7567352911521185362ull}},
+ {{12693033561049300396ull, 17653662819895270438ull,
+ 11149331291575707556ull, 4729595569700740851ull}},
+ {{6642919914456849687ull, 3620334451159536432ull,
+ 9324978096042246542ull, 5911994462125926064ull}},
+ {{8303649893071062109ull, 13748790100804196348ull,
+ 11656222620052808177ull, 7389993077657407580ull}},
+ {{14413153220024189626ull, 1675464785361540861ull,
+ 16508511174387780919ull, 4618745673535879737ull}},
+ {{4181383469748073321ull, 15929389036984089789ull,
+ 6800580912702562436ull, 5773432091919849672ull}},
+ {{9838415355612479555ull, 1464992222520560620ull,
+ 8500726140878203046ull, 7216790114899812090ull}},
+ {{12298019194515599443ull, 11054612315005476583ull,
+ 1402535639242977999ull, 9020987643624765113ull}},
+ {{14603791024213331508ull, 13826661724519504720ull,
+ 12405799820595331009ull, 5638117277265478195ull}},
+ {{18254738780266664385ull, 3448269100367217188ull,
+ 10895563757316775858ull, 7047646596581847744ull}},
+ {{4371679401623778866ull, 13533708412313797294ull,
+ 13619454696645969822ull, 8809558245727309680ull}},
+ {{16567357681297025503ull, 3846881739268735404ull,
+ 8512159185403731139ull, 5505973903579568550ull}},
+ {{2262453027911730263ull, 196916155658531352ull, 1416826944899888116ull,
+ 6882467379474460688ull}},
+ {{2828066284889662828ull, 246145194573164190ull, 1771033681124860145ull,
+ 8603084224343075860ull}},
+ {{15602599483338202980ull, 11683055792676697378ull,
+ 10330268087557813398ull, 5376927640214422412ull}},
+ {{10279877317317977917ull, 5380447703991095915ull,
+ 12912835109447266748ull, 6721159550268028015ull}},
+ {{8238160628220084492ull, 6725559629988869894ull,
+ 11529357868381695531ull, 8401449437835035019ull}},
+ {{537164374210164904ull, 1897631759529349732ull, 4900005658524865755ull,
+ 5250905898646896887ull}},
+ {{671455467762706129ull, 16207097754693850877ull,
+ 1513321054728694289ull, 6563632373308621109ull}},
+ {{5451005353130770566ull, 6423814138085149884ull,
+ 6503337336838255766ull, 8204540466635776386ull}},
+ {{12630250382561507412ull, 17849941891585382389ull,
+ 8676271853951297757ull, 5127837791647360241ull}},
+ {{1952754922919720552ull, 8477369309199564275ull,
+ 15457025835866510101ull, 6409797239559200301ull}},
+ {{16276001708931814402ull, 15208397654926843247ull,
+ 5486224239550973914ull, 8012246549449000377ull}},
+ {{17090030095723465858ull, 14116934552756664933ull,
+ 14958105195787828456ull, 5007654093405625235ull}},
+ {{7527479564372168610ull, 17646168190945831167ull,
+ 14085945476307397666ull, 6259567616757031544ull}},
+ {{4797663437037822858ull, 12834338201827513151ull,
+ 17607431845384247083ull, 7824459520946289430ull}},
+ {{9916068675789721143ull, 5715618366928501767ull,
+ 6392958884937766523ull, 4890287200591430894ull}},
+ {{7783399826309763524ull, 2532836940233239305ull,
+ 17214570643026983962ull, 6112859000739288617ull}},
+ {{14340935801314592309ull, 12389418212146324939ull,
+ 7683155248501566240ull, 7641073750924110772ull}},
+ {{6657241866607926241ull, 7743386382591453087ull,
+ 14025344067168254708ull, 4775671094327569232ull}},
+ {{3709866314832519898ull, 9679232978239316359ull,
+ 17531680083960318385ull, 5969588867909461540ull}},
+ {{25646875113261968ull, 16710727241226533353ull, 3467856031240846365ull,
+ 7461986084886826926ull}},
+ {{11545244343014258490ull, 12750047534980277297ull,
+ 16002468074807692690ull, 4663741303054266828ull}},
+ {{596497373485659401ull, 6714187381870570814ull, 1556341019800064247ull,
+ 5829676628817833536ull}},
+ {{9968993753711850059ull, 3781048208910825613ull,
+ 1945426274750080309ull, 7287095786022291920ull}},
+ {{17072928210567200477ull, 9337996279565919920ull,
+ 2431782843437600386ull, 9108869732527864900ull}},
+ {{10670580131604500298ull, 10447933693156087854ull,
+ 10743236314003276049ull, 5693043582829915562ull}},
+ {{4114853127650849565ull, 17671603134872497722ull,
+ 4205673355649319253ull, 7116304478537394453ull}},
+ {{14366938446418337764ull, 8254445863308458440ull,
+ 9868777712989036971ull, 8895380598171743066ull}},
+ {{8979336529011461103ull, 2853185655354092573ull,
+ 10779672089045536011ull, 5559612873857339416ull}},
+ {{15835856679691714282ull, 17401540124474779428ull,
+ 13474590111306920013ull, 6949516092321674270ull}},
+ {{1348076775905091237ull, 7916867100311310574ull,
+ 7619865602278874209ull, 8686895115402092838ull}},
+ {{14677606040222845735ull, 16477256983763038868ull,
+ 150729982996908476ull, 5429309447126308024ull}},
+ {{18347007550278557169ull, 2149827155994246969ull,
+ 188412478746135596ull, 6786636808907885030ull}},
+ {{9098701382566032749ull, 2687283944992808712ull,
+ 9458887635287445303ull, 8483296011134856287ull}},
+ {{5686688364103770468ull, 8597081493261587301ull,
+ 12829333799695735170ull, 5302060006959285179ull}},
+ {{11720046473557100989ull, 1522979829722208318ull,
+ 11424981231192281059ull, 6627575008699106474ull}},
+ {{5426686055091600428ull, 15738782842434924110ull,
+ 5057854502135575515ull, 8284468760873883093ull}},
+ {{17226736839714413980ull, 7530896267308133616ull,
+ 5467002073048428649ull, 5177792975546176933ull}},
+ {{3086676975933465859ull, 14025306352562554925ull,
+ 11445438609737923715ull, 6472241219432721166ull}},
+ {{8470032238344220227ull, 12919946922275805752ull,
+ 5083426225317628836ull, 8090301524290901458ull}},
+ {{5293770148965137642ull, 17298338863277154403ull,
+ 7788827409250905926ull, 5056438452681813411ull}},
+ {{2005526667779034149ull, 12399551542241667196ull,
+ 5124348243136244504ull, 6320548065852266764ull}},
+ {{2506908334723792686ull, 15499439427802083995ull,
+ 6405435303920305630ull, 7900685082315333455ull}},
+ {{17707718773698228093ull, 5075463623948914592ull,
+ 10920926092591272875ull, 4937928176447083409ull}},
+ {{3687904393413233500ull, 1732643511508755337ull,
+ 18262843634166478998ull, 6172410220558854261ull}},
+ {{9221566510193929779ull, 11389176426240719979ull,
+ 8993496487425935035ull, 7715512775698567827ull}},
+ {{3457636059657512160ull, 4812392257186756035ull,
+ 3315092295427515445ull, 4822195484811604892ull}},
+ {{18157103129854053912ull, 10627176339910832947ull,
+ 4143865369284394306ull, 6027744356014506115ull}},
+ {{18084692893890179485ull, 4060598388033765376ull,
+ 568145693178104979ull, 7534680445018132644ull}},
+ {{11302933058681362179ull, 232030983307409408ull,
+ 9578463095091091420ull, 4709175278136332902ull}},
+ {{14128666323351702723ull, 290038729134261760ull,
+ 2749706832009088467ull, 5886469097670416128ull}},
+ {{17660832904189628404ull, 14197606466699990912ull,
+ 3437133540011360583ull, 7358086372088020160ull}},
+ {{3629297056527483889ull, 13135322064947600737ull,
+ 4296416925014200729ull, 9197607965110025200ull}},
+ {{13797525706398147191ull, 1292047262951168604ull,
+ 2685260578133875456ull, 5748504978193765750ull}},
+ {{17246907132997683988ull, 1615059078688960755ull,
+ 12579947759522120128ull, 7185631222742207187ull}},
+ {{16946947897819717081ull, 2018823848361200944ull,
+ 11113248680975262256ull, 8982039028427758984ull}},
+ {{10591842436137323176ull, 1261764905225750590ull,
+ 6945780425609538910ull, 5613774392767349365ull}},
+ {{4016431008316878162ull, 10800578168386964046ull,
+ 13293911550439311541ull, 7017217990959186706ull}},
+ {{14243910797250873510ull, 18112408728911092961ull,
+ 7394017401194363618ull, 8771522488698983383ull}},
+ {{1984915220640714088ull, 15931941473996821005ull,
+ 11538789903387559117ull, 5482201555436864614ull}},
+ {{7092830044228280514ull, 6079868787213862544ull,
+ 5200115342379673089ull, 6852751944296080768ull}},
+ {{8866037555285350642ull, 12211522002444716084ull,
+ 6500144177974591361ull, 8565939930370100960ull}},
+ {{14764645508908119959ull, 714672223886865696ull,
+ 4062590111234119601ull, 5353712456481313100ull}},
+ {{9062812425598333ull, 5505026298285970025ull, 5078237639042649501ull,
+ 6692140570601641375ull}},
+ {{4623014533959385820ull, 11492968891284850435ull,
+ 1736111030375923972ull, 8365175713252051719ull}},
+ {{583541074510922186ull, 16406477593907807330ull,
+ 8002598421626034338ull, 5228234820782532324ull}},
+ {{9952798379993428540ull, 11284724955529983354ull,
+ 10003248027032542923ull, 6535293525978165405ull}},
+ {{3217625938137009867ull, 9494220175985091289ull,
+ 17115746052218066558ull, 8169116907472706756ull}},
+ {{13540231257404100927ull, 1322201591563294151ull,
+ 1473969245781515791ull, 5105698067170441723ull}},
+ {{12313603053327738255ull, 15487810044736281401ull,
+ 15677519612509058450ull, 6382122583963052153ull}},
+ {{1556945761377509106ull, 10136390519065575944ull,
+ 5761841460354159351ull, 7977653229953815192ull}},
+ {{973091100860943192ull, 13252773102057066821ull,
+ 3601150912721349594ull, 4986033268721134495ull}},
+ {{5828049894503566893ull, 7342594340716557718ull,
+ 18336496696183850705ull, 6232541585901418118ull}},
+ {{16508434404984234425ull, 13789928944323085051ull,
+ 13697248833375037573ull, 7790676982376772648ull}},
+ {{8011928493901452564ull, 10924548599415622109ull,
+ 8560780520859398483ull, 4869173113985482905ull}},
+ {{14626596635804203608ull, 9043999730842139732ull,
+ 15312661669501636008ull, 6086466392481853631ull}},
+ {{18283245794755254510ull, 11304999663552674665ull,
+ 14529141068449657106ull, 7608082990602317039ull}},
+ {{4509499594080952213ull, 11677310808147809570ull,
+ 15998242195422117547ull, 4755051869126448149ull}},
+ {{14860246529455966074ull, 9984952491757374058ull,
+ 6162744688995483222ull, 5943814836408060187ull}},
+ {{9351936124965181785ull, 3257818577841941765ull,
+ 3091744842816966124ull, 7429768545510075234ull}},
+ {{8150803087316932568ull, 11259508648005989411ull,
+ 6544026545187991731ull, 4643605340943797021ull}},
+ {{5576817840718777806ull, 9462699791580098860ull,
+ 12791719199912377568ull, 5804506676179746276ull}},
+ {{6971022300898472257ull, 11828374739475123575ull,
+ 15989648999890471960ull, 7255633345224682845ull}},
+ {{4102091857695702417ull, 14785468424343904469ull,
+ 6152003194580926238ull, 9069541681530853557ull}},
+ {{4869650420273507963ull, 4629231746787552389ull,
+ 6150845005826772851ull, 5668463550956783473ull}},
+ {{10698749043769272857ull, 1174853665057052582ull,
+ 12300242275710853968ull, 7085579438695979341ull}},
+ {{4150064267856815263ull, 1468567081321315728ull,
+ 1540244789356403748ull, 8856974298369974177ull}},
+ {{2593790167410509540ull, 10141226462680598138ull,
+ 12491868039416222102ull, 5535608936481233860ull}},
+ {{12465609746117912733ull, 3453161041495971864ull,
+ 15614835049270277628ull, 6919511170601542325ull}},
+ {{15582012182647390916ull, 4316451301869964830ull,
+ 5683485756305683323ull, 8649388963251927907ull}},
+ {{5127071595727231419ull, 391939054455034067ull, 1246335588477358125ull,
+ 5405868102032454942ull}},
+ {{1797153476231651369ull, 5101609836496180488ull,
+ 10781291522451473464ull, 6757335127540568677ull}},
+ {{2246441845289564211ull, 6377012295620225610ull,
+ 18088300421491729734ull, 8446668909425710846ull}},
+ {{6015712171733365536ull, 17820690740044804718ull,
+ 6693501745004943179ull, 5279168068391069279ull}},
+ {{16743012251521482728ull, 17664177406628617993ull,
+ 3755191162828791070ull, 6598960085488836599ull}},
+ {{7093707259119689698ull, 12856849721430996684ull, 82302935108600934ull,
+ 8248700106861045749ull}},
+ {{13656939073804581869ull, 3423845057466985023ull,
+ 2357282343656569536ull, 5155437566788153593ull}},
+ {{12459487823828339433ull, 4279806321833731279ull,
+ 7558288947998099824ull, 6444296958485191991ull}},
+ {{10962673761358036387ull, 5349757902292164099ull,
+ 4836175166570236876ull, 8055371198106489989ull}},
+ {{4545828091635078790ull, 12566970725787378370ull,
+ 5328452488320091999ull, 5034606998816556243ull}},
+ {{14905657151398624295ull, 11097027388806835058ull,
+ 2048879591972727095ull, 6293258748520695304ull}},
+ {{9408699402393504561ull, 9259598217581155919ull,
+ 2561099489965908869ull, 7866573435650869130ull}},
+ {{12797966154137022207ull, 8093091895201916401ull,
+ 6212373199656080947ull, 4916608397281793206ull}},
+ {{2162399637389114046ull, 5504678850575007598ull,
+ 16988838536424876992ull, 6145760496602241507ull}},
+ {{11926371583591168366ull, 6880848563218759497ull,
+ 16624362152103708336ull, 7682200620752801884ull}},
+ {{536453212103398373ull, 4300530352011724686ull, 1166854308210041902ull,
+ 4801375387970501178ull}},
+ {{9893938551984023774ull, 14599034976869431665ull,
+ 10681939922117328185ull, 6001719234963126472ull}},
+ {{16979109208407417621ull, 4413735665804625869ull,
+ 13352424902646660232ull, 7502149043703908090ull}},
+ {{12917786264468329965ull, 2758584791127891168ull,
+ 12956951582581550549ull, 4688843152314942556ull}},
+ {{16147232830585412457ull, 8059917007337251864ull,
+ 16196189478226938186ull, 5861053940393678195ull}},
+ {{1737296964522213955ull, 851524222316789023ull,
+ 15633550829356284829ull, 7326317425492097744ull}},
+ {{16006679260934931155ull, 5676091296323374182ull,
+ 1095194462985804420ull, 9157896781865122181ull}},
+ {{5392488519656944068ull, 12770929097056884672ull,
+ 2990339548579821714ull, 5723685488665701363ull}},
+ {{6740610649571180085ull, 6740289334466330032ull,
+ 17572982491006940855ull, 7154606860832126703ull}},
+ {{8425763311963975106ull, 3813675649655524636ull,
+ 17354542095331288165ull, 8943258576040158379ull}},
+ {{14489474106832260250ull, 4689390290248396849ull,
+ 8540745800368361151ull, 5589536610025098987ull}},
+ {{4276784578258161600ull, 1250051844383108158ull,
+ 6064246232033063535ull, 6986920762531373734ull}},
+ {{14569352759677477808ull, 15397622860761048909ull,
+ 16803679826896105226ull, 8733650953164217167ull}},
+ {{11411688484012117582ull, 14235200306403043472ull,
+ 17419828919451147622ull, 5458531845727635729ull}},
+ {{14264610605015146977ull, 8570628346149028532ull,
+ 7939728094031770816ull, 6823164807159544662ull}},
+ {{17830763256268933722ull, 10713285432686285665ull,
+ 701288080684937712ull, 8528956008949430828ull}},
+ {{4226698007527001720ull, 6695803395428928541ull,
+ 9661677087282861878ull, 5330597505593394267ull}},
+ {{9895058527836140054ull, 17593126281140936484ull,
+ 7465410340676189443ull, 6663246881991742834ull}},
+ {{12368823159795175068ull, 17379721832998782701ull,
+ 108390888990460996ull, 8329058602489678543ull}},
+ {{10036357484085678369ull, 1638954108769463380ull,
+ 6985273333260119979ull, 5205661626556049089ull}},
+ {{12545446855107097962ull, 15883750691243992937ull,
+ 13343277685002537877ull, 6507077033195061361ull}},
+ {{1846750513601708740ull, 6019630308772827460ull,
+ 2844039050971008635ull, 8133846291493826702ull}},
+ {{10377591107855843771ull, 1456425933769323210ull,
+ 15612582462139044109ull, 5083653932183641688ull}},
+ {{3748616847965028905ull, 6432218435639041917ull,
+ 1068984003964253520ull, 6354567415229552111ull}},
+ {{9297457078383674035ull, 8040273044548802396ull,
+ 15171288060237480612ull, 7943209269036940138ull}},
+ {{15034282710844572080ull, 14248542689697777305ull,
+ 14093741056075813286ull, 4964505793148087586ull}},
+ {{4957795333273551388ull, 8587306325267445824ull,
+ 8393804283239990800ull, 6205632241435109483ull}},
+ {{6197244166591939235ull, 10734132906584307280ull,
+ 5880569335622600596ull, 7757040301793886854ull}},
+ {{3873277604119962022ull, 15932205103469967858ull,
+ 17510413890046289084ull, 4848150188621179283ull}},
+ {{14064969042004728336ull, 1468512305627908206ull,
+ 17276331344130473452ull, 6060187735776474104ull}},
+ {{8357839265651134611ull, 1835640382034885258ull,
+ 3148670106453540199ull, 7575234669720592631ull}},
+ {{9835335559459347036ull, 8064804266412885142ull,
+ 8885447844174544480ull, 4734521668575370394ull}},
+ {{3070797412469407987ull, 10081005333016106428ull,
+ 1883437768363404792ull, 5918152085719212993ull}},
+ {{3838496765586759984ull, 12601256666270133035ull,
+ 6965983228881643894ull, 7397690107149016241ull}},
+ {{93217469278031038ull, 3264099397991445243ull, 15882954564119497194ull,
+ 4623556316968135150ull}},
+ {{13951579891879702510ull, 13303496284344082361ull,
+ 10630321168294595684ull, 5779445396210168938ull}},
+ {{3604416809567464425ull, 16629370355430102952ull,
+ 4064529423513468797ull, 7224306745262711173ull}},
+ {{4505521011959330531ull, 6951654889005464978ull,
+ 9692347797819223901ull, 9030383431578388966ull}},
+ {{7427636650901969486ull, 6650627314842109563ull,
+ 1446031355209627034ull, 5643989644736493104ull}},
+ {{4672859795200073953ull, 17536656180407412762ull,
+ 1807539194012033792ull, 7054987055920616380ull}},
+ {{15064446780854868250ull, 3474076151799714336ull,
+ 2259423992515042241ull, 8818733819900770475ull}},
+ {{9415279238034292656ull, 13700512640943291220ull,
+ 17553041059817759064ull, 5511708637437981546ull}},
+ {{11769099047542865820ull, 17125640801179114025ull,
+ 12717929287917423022ull, 6889635796797476933ull}},
+ {{876315754146418563ull, 12183678964619116724ull,
+ 2062353554614615066ull, 8612044745996846167ull}},
+ {{9771069383196287410ull, 12226485371314335856ull,
+ 8206499999275216272ull, 5382527966248028854ull}},
+ {{12213836728995359262ull, 15283106714142919820ull,
+ 1034752962239244532ull, 6728159957810036068ull}},
+ {{15267295911244199078ull, 657139318969098159ull,
+ 1293441202799055666ull, 8410199947262545085ull}},
+ {{16459588972168706280ull, 5022398092783074253ull,
+ 3114243760963103743ull, 5256374967039090678ull}},
+ {{6739428159928719138ull, 1666311597551454913ull,
+ 13116176738058655487ull, 6570468708798863347ull}},
+ {{13035971218338286826ull, 15917947552221482353ull,
+ 11783534904145931454ull, 8213085885998579184ull}},
+ {{1229952983820347410ull, 5337031201711038567ull,
+ 7364709315091207159ull, 5133178678749111990ull}},
+ {{15372499285057597975ull, 2059602983711410304ull,
+ 18429258680718784757ull, 6416473348436389987ull}},
+ {{768880032612445853ull, 7186189748066650785ull,
+ 18424887332471093042ull, 8020591685545487484ull}},
+ {{12009765066451248418ull, 9103054610969044644ull,
+ 2292182545939657343ull, 5012869803465929678ull}},
+ {{15012206333064060522ull, 6767132245283917901ull,
+ 12088600219279347487ull, 6266087254332412097ull}},
+ {{4930199861047911941ull, 3847229288177509473ull,
+ 1275692218817020647ull, 7832609067915515122ull}},
+ {{14610589959223414723ull, 9322047332752025276ull,
+ 5408993655188025808ull, 4895380667447196951ull}},
+ {{18263237449029268404ull, 11652559165940031595ull,
+ 2149556050557644356ull, 6119225834308996189ull}},
+ {{18217360792859197601ull, 14565698957425039494ull,
+ 7298631081624443349ull, 7649032292886245236ull}},
+ {{6774164477109610597ull, 11409404857604343636ull,
+ 13785016462870052901ull, 4780645183053903272ull}},
+ {{8467705596387013246ull, 426698016723265833ull,
+ 17231270578587566127ull, 5975806478817379090ull}},
+ {{15196318013911154461ull, 14368430576186246003ull,
+ 12315716186379681850ull, 7469758098521723863ull}},
+ {{7191855749480777586ull, 13591955128543791656ull,
+ 14614851644128383012ull, 4668598811576077414ull}},
+ {{8989819686850971983ull, 16989943910679739570ull,
+ 9045192518305702957ull, 5835748514470096768ull}},
+ {{2013902571708939170ull, 7402371833067510751ull,
+ 11306490647882128697ull, 7294685643087620960ull}},
+ {{16352436269918337675ull, 13864650809761776342ull,
+ 14133113309852660871ull, 9118357053859526200ull}},
+ {{5608586650271573143ull, 15582935783742192070ull,
+ 8833195818657913044ull, 5698973158662203875ull}},
+ {{16234105349694242237ull, 1031925655968188471ull,
+ 6429808754895003402ull, 7123716448327754844ull}},
+ {{15680945668690414892ull, 10513279106815011397ull,
+ 8037260943618754252ull, 8904645560409693555ull}},
+ {{12106434052145203259ull, 15794171478614157931ull,
+ 2717445080548027455ull, 5565403475256058472ull}},
+ {{10521356546754116170ull, 15131028329840309510ull,
+ 3396806350685034319ull, 6956754344070073090ull}},
+ {{3928323646587869405ull, 14302099393872998984ull,
+ 13469379975211068707ull, 8695942930087591362ull}},
+ {{2455202279117418378ull, 6632969111956930413ull,
+ 13030048502934305846ull, 5434964331304744601ull}},
+ {{7680688867324160876ull, 17514583426800938824ull,
+ 2452502573385718595ull, 6793705414130930752ull}},
+ {{9600861084155201095ull, 17281543265073785626ull,
+ 3065628216732148244ull, 8492131767663663440ull}},
+ {{10612224196024388589ull, 1577592503816340208ull,
+ 1916017635457592653ull, 5307582354789789650ull}},
+ {{13265280245030485736ull, 6583676648197813164ull,
+ 11618394081176766624ull, 6634477943487237062ull}},
+ {{16581600306288107170ull, 8229595810247266455ull,
+ 5299620564616182472ull, 8293097429359046328ull}},
+ {{17281029219071148837ull, 5143497381404541534ull,
+ 3312262852885114045ull, 5183185893349403955ull}},
+ {{12377914486984160238ull, 11041057745183064822ull,
+ 17975386621388556268ull, 6478982366686754943ull}},
+ {{6249021071875424490ull, 13801322181478831028ull,
+ 17857547258308307431ull, 8098727958358443679ull}},
+ {{13129010206776916114ull, 15543355391065351248ull,
+ 18078496064083774000ull, 5061704973974027299ull}},
+ {{16411262758471145143ull, 982450165122137444ull,
+ 17986434061677329597ull, 6327131217467534124ull}},
+ {{2067334374379379813ull, 5839748724830059710ull,
+ 4036298503387110380ull, 7908914021834417656ull}},
+ {{15127142039269276095ull, 12873214989873563126ull,
+ 2522686564616943987ull, 4943071263646511035ull}},
+ {{9685555512231819311ull, 11479832718914566004ull,
+ 16988416261053343696ull, 6178839079558138793ull}},
+ {{12106944390289774138ull, 14349790898643207505ull,
+ 7400462271034515908ull, 7723548849447673492ull}},
+ {{649311216290026981ull, 18191991348506780499ull,
+ 13848660956251348250ull, 4827218030904795932ull}},
+ {{14646697075644697438ull, 13516617148778699815ull,
+ 17310826195314185313ull, 6034022538630994915ull}},
+ {{13696685326128483893ull, 3060713380691211057ull,
+ 17026846725715343738ull, 7542528173288743644ull}},
+ {{1642899301189220577ull, 6524631881359394815ull,
+ 1418407166717314028ull, 4714080108305464778ull}},
+ {{15888682181768689433ull, 8155789851699243518ull,
+ 10996380995251418343ull, 5892600135381830972ull}},
+ {{10637480690356085984ull, 5583051296196666494ull,
+ 13745476244064272929ull, 7365750169227288715ull}},
+ {{4073478826090331671ull, 11590500138673221022ull,
+ 12570159286652953257ull, 9207187711534110894ull}},
+ {{16380982321588621007ull, 326533559029681282ull,
+ 3244663535730707882ull, 5754492319708819309ull}},
+ {{11252855865131000450ull, 9631538985641877411ull,
+ 8667515438090772756ull, 7193115399636024136ull}},
+ {{9454383812986362659ull, 12039423732052346764ull,
+ 10834394297613465945ull, 8991394249545030170ull}},
+ {{15132361919971252470ull, 607110804891634871ull,
+ 11383182454435804120ull, 5619621405965643856ull}},
+ {{14303766381536677683ull, 758888506114543589ull,
+ 14228978068044755150ull, 7024526757457054820ull}},
+ {{4044649921638683392ull, 10171982669497955295ull,
+ 17786222585055943937ull, 8780658446821318525ull}},
+ {{9445435228665258976ull, 17886704214504691819ull,
+ 13422232124873658912ull, 5487911529263324078ull}},
+ {{7195108017404185816ull, 3911636194421313158ull,
+ 7554418119237297833ull, 6859889411579155098ull}},
+ {{18217257058610008078ull, 9501231261454029351ull,
+ 219650612191846483ull, 8574861764473943873ull}},
+ {{18303314689272336905ull, 3632426529195074392ull,
+ 11666496678688373812ull, 5359288602796214920ull}},
+ {{4432399287880869515ull, 4540533161493842991ull,
+ 14583120848360467265ull, 6699110753495268650ull}},
+ {{928813091423698990ull, 10287352470294691643ull,
+ 9005529023595808273ull, 8373888441869085813ull}},
+ {{16721409246635669533ull, 17958810340002652036ull,
+ 7934298648961074122ull, 5233680276168178633ull}},
+ {{2455017484585035300ull, 13225140888148539238ull,
+ 14529559329628730557ull, 6542100345210223291ull}},
+ {{12292143892586069933ull, 2696368054903510335ull,
+ 13550263143608525293ull, 8177625431512779114ull}},
+ {{14600118960507375564ull, 3991073043528387911ull,
+ 13080600483182716212ull, 5111015894695486946ull}},
+ {{13638462682206831551ull, 4988841304410484889ull,
+ 7127378567123619457ull, 6388769868369358683ull}},
+ {{3213020297476375727ull, 10847737648940494016ull,
+ 4297537190477136417ull, 7985962335461698354ull}},
+ {{2008137685922734829ull, 18309051076656278520ull,
+ 7297646762475598164ull, 4991226459663561471ull}},
+ {{2510172107403418537ull, 4439569772110796534ull,
+ 4510372434667109802ull, 6239033074579451839ull}},
+ {{12361087171109048979ull, 14772834251993271475ull,
+ 1026279524906499348ull, 7798791343224314799ull}},
+ {{5419836472729461660ull, 9649370641018864ull, 7558953730707643949ull,
+ 4874244589515196749ull}},
+ {{6774795590911827075ull, 4623747731728661484ull,
+ 14060378181811942840ull, 6092805736893995936ull}},
+ {{8468494488639783843ull, 5779684664660826855ull,
+ 17575472727264928550ull, 7616007171117494920ull}},
+ {{12210338083040946758ull, 17447360970695180496ull,
+ 10984670454540580343ull, 4760004481948434325ull}},
+ {{15262922603801183448ull, 17197515194941587716ull,
+ 18342524086603113333ull, 5950005602435542906ull}},
+ {{631909181041927693ull, 7661835938394820934ull,
+ 13704783071399115859ull, 7437507003044428633ull}},
+ {{14230001293433368521ull, 2482804452283069131ull,
+ 1647960391983365556ull, 4648441876902767896ull}},
+ {{13175815598364322747ull, 3103505565353836414ull,
+ 2059950489979206945ull, 5810552346128459870ull}},
+ {{7246397461100627625ull, 8491067975119683422ull,
+ 11798310149328784489ull, 7263190432660574837ull}},
+ {{18281368863230560339ull, 15225520987326992181ull,
+ 912829631378816899ull, 9078988040825718547ull}},
+ {{13731698548732794164ull, 7210107607865676161ull,
+ 16711419584107618226ull, 5674367525516074091ull}},
+ {{3329565130633828993ull, 18236006546686871010ull,
+ 16277588461707134878ull, 7092959406895092614ull}},
+ {{13385328450147062049ull, 13571636146503812954ull,
+ 11123613540279142790ull, 8866199258618865768ull}},
+ {{12977516299769301685ull, 3870586573137495192ull,
+ 6952258462674464244ull, 5541374536636791105ull}},
+ {{16221895374711627106ull, 4838233216421868990ull,
+ 13302009096770468209ull, 6926718170795988881ull}},
+ {{11053997181534758074ull, 10659477538954724142ull,
+ 2792453315680921549ull, 8658397713494986102ull}},
+ {{2297062220031835893ull, 8968016471060396541ull,
+ 15580341377582739680ull, 5411498570934366313ull}},
+ {{7483013793467182770ull, 11210020588825495676ull,
+ 5640368666696260888ull, 6764373213667957892ull}},
+ {{9353767241833978462ull, 14012525736031869595ull,
+ 7050460833370326110ull, 8455466517084947365ull}},
+ {{3540261516932542587ull, 4146142566592530593ull,
+ 6712381030070147771ull, 5284666573178092103ull}},
+ {{9037012914593066138ull, 570992189813275337ull, 3778790269160296810ull,
+ 6605833216472615129ull}},
+ {{15907952161668720576ull, 9937112274121369979ull,
+ 9335173854877758916ull, 8257291520590768911ull}},
+ {{7636627091829256408ull, 15434067208180632045ull,
+ 12752012686939681178ull, 5160807200369230569ull}},
+ {{14157469883213958414ull, 10069211973371014248ull,
+ 2104957803392437761ull, 6451009000461538212ull}},
+ {{17696837354017448017ull, 17198200985141155714ull,
+ 2631197254240547201ull, 8063761250576922765ull}},
+ {{15672209364688292915ull, 3831346588072140465ull,
+ 3950341293114035953ull, 5039850781610576728ull}},
+ {{5755203650578202432ull, 9400869253517563486ull,
+ 4937926616392544941ull, 6299813477013220910ull}},
+ {{16417376600077528847ull, 16362772585324342261ull,
+ 15395780307345456984ull, 7874766846266526137ull}},
+ {{12566703384262149482ull, 10226732865827713913ull,
+ 2704833664449828759ull, 4921729278916578836ull}},
+ {{1873321175045523140ull, 8171730063857254488ull,
+ 3381042080562285949ull, 6152161598645723545ull}},
+ {{2341651468806903925ull, 14826348598248956014ull,
+ 8837988619130245340ull, 7690201998307154431ull}},
+ {{15298590223286478665ull, 43095837050821700ull,
+ 12441271914597485194ull, 4806376248941971519ull}},
+ {{676493705398546716ull, 9277241833168302934ull,
+ 10939903874819468588ull, 6007970311177464399ull}},
+ {{10068989168602959202ull, 11596552291460378667ull,
+ 9063193825096947831ull, 7509962888971830499ull}},
+ {{3987275221163155550ull, 14165374209803818523ull,
+ 3358653131471898442ull, 4693726805607394062ull}},
+ {{372408008026556533ull, 8483345725399997346ull,
+ 13421688451194648861ull, 5867158507009242577ull}},
+ {{9688882046887971474ull, 15215868175177384586ull,
+ 2942052508711147364ull, 7333948133761553222ull}},
+ {{2887730521755188535ull, 573091145262179117ull,
+ 12900937672743710014ull, 9167435167201941527ull}},
+ {{4110674585310686786ull, 14193240021071025660ull,
+ 14980615073105900614ull, 5729646979501213454ull}},
+ {{5138343231638358483ull, 8518177989484006267ull,
+ 9502396804527599960ull, 7162058724376516818ull}},
+ {{1811243021120560199ull, 10647722486855007834ull,
+ 2654623968804724142ull, 8952573405470646023ull}},
+ {{5743712906627738029ull, 2043140535856991992ull,
+ 8576669008144034445ull, 5595358378419153764ull}},
+ {{7179641133284672536ull, 7165611688248627894ull,
+ 10720836260180043056ull, 6994197973023942205ull}},
+ {{18197923453460616478ull, 8957014610310784867ull,
+ 18012731343652441724ull, 8742747466279927756ull}},
+ {{9067859149199191347ull, 14821506168299016350ull,
+ 2034585052928000269ull, 5464217166424954848ull}},
+ {{2111451899644213375ull, 4691824655091606726ull,
+ 2543231316160000337ull, 6830271458031193560ull}},
+ {{11862686911410042527ull, 10476466837291896311ull,
+ 3179039145200000421ull, 8537839322538991950ull}},
+ {{14331708347272358436ull, 8853634782521129146ull,
+ 15821957521032163975ull, 5336149576586869968ull}},
+ {{8691263397235672236ull, 6455357459724023529ull,
+ 1330702827580653353ull, 6670186970733587461ull}},
+ {{15475765264971978199ull, 12680882843082417315ull,
+ 6275064552903204595ull, 8337733713416984326ull}},
+ {{7366510281393792423ull, 5619708767712816870ull,
+ 17756973400846666584ull, 5211083570885615203ull}},
+ {{18431509888597016336ull, 7024635959641021087ull,
+ 17584530732630945326ull, 6513854463607019004ull}},
+ {{18427701342318882516ull, 18004166986406052167ull,
+ 3533919342079130041ull, 8142318079508773756ull}},
+ {{18434842366590383429ull, 4335075338862700748ull,
+ 11432071625654232084ull, 5088948799692983597ull}},
+ {{4596808884528427670ull, 5418844173578375936ull, 455031476785626393ull,
+ 6361185999616229497ull}},
+ {{5746011105660534587ull, 11385241235400357824ull,
+ 5180475364409420895ull, 7951482499520286871ull}},
+ {{3591256941037834117ull, 14033304799766305496ull,
+ 10155326130396969915ull, 4969676562200179294ull}},
+ {{4489071176297292646ull, 12929944981280493966ull,
+ 3470785626141436586ull, 6212095702750224118ull}},
+ {{14834711007226391616ull, 6939059189745841649ull,
+ 13561854069531571541ull, 7765119628437780147ull}},
+ {{2354165351875412904ull, 6642755002804844983ull,
+ 6170315784243538261ull, 4853199767773612592ull}},
+ {{16777764745126429842ull, 12915129771933444132ull,
+ 7712894730304422826ull, 6066499709717015740ull}},
+ {{2525461857698485686ull, 6920540178062029358ull,
+ 9641118412880528533ull, 7583124637146269675ull}},
+ {{15413471716343717266ull, 6631180620502462300ull,
+ 3719855998836636381ull, 4739452898216418547ull}},
+ {{820095571720094967ull, 12900661794055465780ull, 38133980118407572ull,
+ 5924316122770523184ull}},
+ {{1025119464650118708ull, 16125827242569332225ull, 47667475148009465ull,
+ 7405395153463153980ull}},
+ {{12169914711474793953ull, 3161112998964750784ull,
+ 9253164208822281724ull, 4628371970914471237ull}},
+ {{15212393389343492441ull, 3951391248705938480ull,
+ 16178141279455240059ull, 5785464963643089046ull}},
+ {{568747662969813935ull, 327553042455035197ull, 10999304562464274266ull,
+ 7231831204553861308ull}},
+ {{5322620597139655322ull, 9632813339923569804ull,
+ 13749130703080342832ull, 9039789005692326635ull}},
+ {{12550009910067060385ull, 6020508337452231127ull,
+ 6287363680211520318ull, 5649868128557704147ull}},
+ {{11075826369156437577ull, 16749007458670064717ull,
+ 3247518581837012493ull, 7062335160697130184ull}},
+ {{9724906163383259ull, 7101201268055417185ull, 4059398227296265617ull,
+ 8827918950871412730ull}},
+ {{11535293112420584297ull, 15967465838603105500ull,
+ 7148809910487553914ull, 5517449344294632956ull}},
+ {{14419116390525730371ull, 10735960261399106067ull,
+ 8936012388109442393ull, 6896811680368291195ull}},
+ {{13412209469729775060ull, 18031636345176270488ull,
+ 6558329466709415087ull, 8621014600460363994ull}},
+ {{8382630918581109413ull, 18187301743376250911ull,
+ 8710641935120772333ull, 5388134125287727496ull}},
+ {{5866602629798998862ull, 8899069123938149927ull,
+ 10888302418900965417ull, 6735167656609659370ull}},
+ {{2721567268821360673ull, 15735522423350075313ull,
+ 4387005986771430963ull, 8418959570762074213ull}},
+ {{13230194589081820181ull, 7528858505380103118ull,
+ 5047721750945838304ull, 5261849731726296383ull}},
+ {{7314371199497499418ull, 9411073131725128898ull,
+ 1697966170254909976ull, 6577312164657870479ull}},
+ {{18366336036226650080ull, 11763841414656411122ull,
+ 15957515768100801182ull, 8221640205822338098ull}},
+ {{16090646041069044204ull, 2740714865732869047ull,
+ 14585133373490388643ull, 5138525128638961311ull}},
+ {{15501621532908917351ull, 17260951637448250021ull,
+ 13619730698435597899ull, 6423156410798701639ull}},
+ {{5541968860853982977ull, 16964503528382924623ull,
+ 12412977354617109470ull, 8028945513498377049ull}},
+ {{10381259565674821217ull, 5991128686811939985ull,
+ 840581818994611563ull, 5018090945936485656ull}},
+ {{17588260475520914425ull, 2877224840087537077ull,
+ 1050727273743264454ull, 6272613682420607070ull}},
+ {{8150267539118979319ull, 12819903086964197155ull,
+ 10536781129033856375ull, 7840767103025758837ull}},
+ {{2788074202735668122ull, 14929968456993705078ull,
+ 8891331214859854186ull, 4900479439391099273ull}},
+ {{12708464790274360961ull, 9439088534387355539ull,
+ 15725850037002205637ull, 6125599299238874091ull}},
+ {{11273894969415563297ull, 16410546686411582328ull,
+ 15045626527825369142ull, 7656999124048592614ull}},
+ {{7046184355884727061ull, 5644905660579851051ull,
+ 4791830561463467810ull, 4785624452530370384ull}},
+ {{4196044426428520922ull, 16279504112579589622ull,
+ 5989788201829334762ull, 5982030565662962980ull}},
+ {{14468427569890426960ull, 11126008103869711219ull,
+ 7487235252286668453ull, 7477538207078703725ull}},
+ {{6736924221967822898ull, 9259598074132263464ull,
+ 6985365041892861735ull, 4673461379424189828ull}},
+ {{8421155277459778623ull, 6962811574237941426ull,
+ 8731706302366077169ull, 5841826724280237285ull}},
+ {{1303072059969947470ull, 13315200486224814687ull,
+ 15526318896384984365ull, 7302283405350296606ull}},
+ {{15463898130244598050ull, 2808942552498854646ull,
+ 10184526583626454649ull, 9127854256687870758ull}},
+ {{5053250312975485877ull, 13284804141380253914ull,
+ 1753643096339146251ull, 5704908910429919224ull}},
+ {{15539934928074133155ull, 11994319158297929488ull,
+ 2192053870423932814ull, 7131136138037399030ull}},
+ {{978174586383114827ull, 5769526911017636053ull,
+ 11963439374884691826ull, 8913920172546748787ull}},
+ {{2917202125703140719ull, 8217640337813410437ull,
+ 5171306600089238439ull, 5571200107841717992ull}},
+ {{8258188675556313803ull, 5660364403839375142ull,
+ 6464133250111548049ull, 6964000134802147490ull}},
+ {{1099363807590616445ull, 11687141523226606832ull,
+ 17303538599494210869ull, 8705000168502684362ull}},
+ {{687102379744135279ull, 9610306461230323222ull,
+ 15426397643111269697ull, 5440625105314177726ull}},
+ {{10082250011534944906ull, 16624569094965291931ull,
+ 10059625017034311313ull, 6800781381642722158ull}},
+ {{7991126495991293228ull, 6945653313424451202ull,
+ 3351159234438113334ull, 8500976727053402698ull}},
+ {{9606140078421946172ull, 18176091376172445713ull,
+ 6706160539951208737ull, 5313110454408376686ull}},
+ {{16619361116454820619ull, 8885056164933393429ull,
+ 17606072711793786730ull, 6641388068010470857ull}},
+ {{6939143340286362061ull, 1882948169311965979ull,
+ 8172532834460069701ull, 8301735085013088572ull}},
+ {{2031121578465282337ull, 3482685615033672689ull,
+ 14331205058392319371ull, 5188584428133180357ull}},
+ {{7150587991508990825ull, 18188415074074254573ull,
+ 4078948267708235501ull, 6485730535166475447ull}},
+ {{13549921007813626435ull, 8900460787310654504ull,
+ 486999316207906473ull, 8107163168958094309ull}},
+ {{8468700629883516522ull, 17092003038137628825ull,
+ 2610217581843635497ull, 5066976980598808943ull}},
+ {{15197561805781783556ull, 7529945742389872319ull,
+ 17097830032586708084ull, 6333721225748511178ull}},
+ {{14385266238799841541ull, 9412432177987340399ull,
+ 12148915503878609297ull, 7917151532185638973ull}},
+ {{15908320426890982819ull, 17411985157310557509ull,
+ 9898915199137824762ull, 4948219707616024358ull}},
+ {{6050342478331564812ull, 12541609409783421079ull,
+ 3150271962067505145ull, 6185274634520030448ull}},
+ {{2951242079487068111ull, 1841953706947112637ull,
+ 3937839952584381432ull, 7731593293150038060ull}},
+ {{4150369308893111522ull, 1151221066841945398ull,
+ 11684522007220014203ull, 4832245808218773787ull}},
+ {{14411333672971165210ull, 15274084388834595459ull,
+ 9993966490597629849ull, 6040307260273467234ull}},
+ {{13402481072786568608ull, 5257547430761080612ull,
+ 3269086076392261504ull, 7550384075341834043ull}},
+ {{17599922707346381188ull, 3285967144225675382ull,
+ 18184079862241021104ull, 4718990047088646276ull}},
+ {{12776531347328200677ull, 4107458930282094228ull,
+ 4283355754091724764ull, 5898737558860807846ull}},
+ {{15970664184160250846ull, 5134323662852617785ull,
+ 14577566729469431763ull, 7373421948576009807ull}},
+ {{6128272174918149846ull, 1806218560138384328ull,
+ 13610272393409401800ull, 9216777435720012259ull}},
+ {{3830170109323843654ull, 1128886600086490205ull,
+ 6200577236667182173ull, 5760485897325007662ull}},
+ {{9399398655082192471ull, 6022794268535500660ull,
+ 16974093582688753524ull, 7200607371656259577ull}},
+ {{11749248318852740589ull, 7528492835669375825ull,
+ 7382558923078778193ull, 9000759214570324472ull}},
+ {{425751171641881012ull, 16234523068361829651ull,
+ 4614099326924236370ull, 5625474509106452795ull}},
+ {{14367247019834514977ull, 11069781798597511255ull,
+ 1155938140227907559ull, 7031843136383065994ull}},
+ {{13347372756365755817ull, 9225541229819501165ull,
+ 10668294712139660257ull, 8789803920478832492ull}},
+ {{10647950981942291338ull, 17295178314705657988ull,
+ 15891056231942063468ull, 5493627450299270307ull}},
+ {{13309938727427864172ull, 3172228819672520869ull,
+ 15252134271500191432ull, 6867034312874087884ull}},
+ {{2802365354002666503ull, 3965286024590651087ull, 618423765665687674ull,
+ 8583792891092609856ull}},
+ {{8669007373892748421ull, 7089989783796544833ull, 386514853541054796ull,
+ 5364870556932881160ull}},
+ {{15447945235793323430ull, 8862487229745681041ull,
+ 483143566926318495ull, 6706088196166101450ull}},
+ {{5474873489459490575ull, 6466423018754713398ull,
+ 9827301495512673927ull, 8382610245207626812ull}},
+ {{17256853986194345322ull, 10959043414362777729ull,
+ 15365435471550197012ull, 5239131403254766757ull}},
+ {{7736009427460767940ull, 13698804267953472162ull,
+ 5371736284155582553ull, 6548914254068458447ull}},
+ {{446639747471184117ull, 3288447279659676491ull, 2102984336767090288ull,
+ 8186142817585573059ull}},
+ {{16420050906665347737ull, 2055279549787297806ull,
+ 17455266274975289094ull, 5116339260990983161ull}},
+ {{11301691596476908863ull, 11792471474088898066ull,
+ 7984024788436947655ull, 6395424076238728952ull}},
+ {{4903742458741360271ull, 10128903324183734679ull,
+ 9980030985546184569ull, 7994280095298411190ull}},
+ {{9982368064354432026ull, 17859779623683303934ull,
+ 1625833347538977451ull, 4996425059561506994ull}},
+ {{3254588043588264224ull, 17713038511176742014ull,
+ 11255663721278497622ull, 6245531324451883742ull}},
+ {{13291607091340106088ull, 12917926102116151709ull,
+ 4846207614743346220ull, 7806914155564854678ull}},
+ {{10613097441301260257ull, 17297075850677370626ull,
+ 16863937814496755099ull, 4879321347228034173ull}},
+ {{4042999764771799513ull, 17009658794919325379ull,
+ 7244864212838780162ull, 6099151684035042717ull}},
+ {{442063687537361487ull, 12038701456794380916ull,
+ 13667766284475863107ull, 7623939605043803396ull}},
+ {{9499661841565626738ull, 5218345401282794120ull,
+ 17765725964652190250ull, 4764962253152377122ull}},
+ {{11874577301957033422ull, 15746303788458268458ull,
+ 12983785418960462004ull, 5956202816440471403ull}},
+ {{5619849590591515969ull, 1236135661863283957ull,
+ 11618045755273189602ull, 7445253520550589254ull}},
+ {{5818249003333391433ull, 5384270807091940377ull,
+ 2649592578618355597ull, 4653283450344118284ull}},
+ {{11884497272594127195ull, 11342024527292313375ull,
+ 3311990723272944496ull, 5816604312930147855ull}},
+ {{10243935572315271090ull, 14177530659115391719ull,
+ 17975046459373344332ull, 7270755391162684818ull}},
+ {{8193233446966700958ull, 17721913323894239649ull,
+ 13245436037361904607ull, 9088444238953356023ull}},
+ {{16649985950422657859ull, 17993724855074981636ull,
+ 15195926550992272235ull, 5680277649345847514ull}},
+ {{2365738364318770708ull, 17880470050416339142ull,
+ 9771536151885564486ull, 7100347061682309393ull}},
+ {{12180544992253239193ull, 13127215526165648119ull,
+ 16826106208284343512ull, 8875433827102886741ull}},
+ {{14530369647799356352ull, 8204509703853530074ull,
+ 12822159389391408647ull, 5547146141939304213ull}},
+ {{8939590022894419631ull, 5643951111389524689ull,
+ 2192641181457097097ull, 6933932677424130267ull}},
+ {{15786173547045412443ull, 11666624907664293765ull,
+ 16575859532103535083ull, 8667415846780162833ull}},
+ {{12172201476117076729ull, 4985797558076489651ull,
+ 3442383179923627571ull, 5417134904237601771ull}},
+ {{10603565826718958007ull, 1620560929168224160ull,
+ 18138037030186698176ull, 6771418630297002213ull}},
+ {{13254457283398697509ull, 2025701161460280200ull,
+ 8837488232451209008ull, 8464273287871252767ull}},
+ {{8284035802124185943ull, 1266063225912675125ull,
+ 12440959172923087486ull, 5290170804919532979ull}},
+ {{14966730771082620333ull, 10805951069245619714ull,
+ 10939512947726471453ull, 6612713506149416224ull}},
+ {{9485041426998499608ull, 18119124854984412547ull,
+ 13674391184658089316ull, 8265891882686770280ull}},
+ {{3622307882660368303ull, 2101080997510482034ull,
+ 8546494490411305823ull, 5166182426679231425ull}},
+ {{13751256890180236187ull, 16461409302170266254ull,
+ 15294804131441520182ull, 6457728033349039281ull}},
+ {{7965699075870519426ull, 11353389590858057010ull,
+ 5283447109019736516ull, 8072160041686299102ull}},
+ {{9590247940846462545ull, 16319240531141061439ull,
+ 17137212498419499034ull, 5045100026053936938ull}},
+ {{7376123907630690277ull, 11175678627071550991ull,
+ 12198143586169597985ull, 6306375032567421173ull}},
+ {{4608468866110974942ull, 134540228557275027ull, 1412621427429833770ull,
+ 7882968790709276467ull}},
+ {{574450032105665387ull, 4695773661275684796ull,
+ 17023789456639503770ull, 4926855494193297791ull}},
+ {{718062540132081734ull, 15093089113449381803ull,
+ 16668050802371991808ull, 6158569367741622239ull}},
+ {{14732636230447265879ull, 419617318102175637ull,
+ 16223377484537601857ull, 7698211709677027799ull}},
+ {{11513740653243235127ull, 11791475869882329533ull,
+ 17057139955477083016ull, 4811382318548142374ull}},
+ {{557117761271880196ull, 14739344837352911917ull,
+ 12098052907491577962ull, 6014227898185177968ull}},
+ {{5308083220017238149ull, 9200809009836364088ull,
+ 15122566134364472453ull, 7517784872731472460ull}},
+ {{3317552012510773843ull, 8056348640361421507ull, 228231797123019475ull,
+ 4698615545457170288ull}},
+ {{17981998070920631016ull, 5458749782024388979ull,
+ 285289746403774344ull, 5873269431821462860ull}},
+ {{17865811570223400866ull, 6823437227530486224ull,
+ 356612183004717930ull, 7341586789776828575ull}},
+ {{3885520389069699467ull, 17752668571267883589ull,
+ 14280823284038061124ull, 9176983487221035718ull}},
+ {{4734293252382256119ull, 1872045820187651435ull,
+ 4313828534096400299ull, 5735614679513147324ull}},
+ {{1306180547050432244ull, 16175115330516728006ull,
+ 5392285667620500373ull, 7169518349391434155ull}},
+ {{10856097720667816113ull, 6383836107863746295ull,
+ 2128671066098237563ull, 8961897936739292694ull}},
+ {{13702590103058466927ull, 1684054558201147482ull,
+ 15165477471593562189ull, 5601186210462057933ull}},
+ {{7904865591968307851ull, 6716754216178822257ull,
+ 5121788784209789024ull, 7001482763077572417ull}},
+ {{14492768008387772717ull, 8395942770223527821ull,
+ 11013921998689624184ull, 8751853453846965521ull}},
+ {{11363823014456051900ull, 5247464231389704888ull,
+ 18412916295249484875ull, 5469908408654353450ull}},
+ {{14204778768070064875ull, 1947644270809743206ull,
+ 13792773332207080286ull, 6837385510817941813ull}},
+ {{8532601423232805286ull, 11657927375366954816ull,
+ 3405908609976686645ull, 8546731888522427267ull}},
+ {{5332875889520503304ull, 9592047618818040712ull,
+ 18269593945731286817ull, 5341707430326517041ull}},
+ {{6666094861900629130ull, 16601745541949938794ull,
+ 9001934376881944809ull, 6677134287908146302ull}},
+ {{17555990614230562220ull, 6917123872155259780ull,
+ 2029045934247655204ull, 8346417859885182878ull}},
+ {{1749122097039325580ull, 13546574456951813171ull,
+ 15103211764186948214ull, 5216511162428239298ull}},
+ {{16021460676581320687ull, 7709846034334990655ull,
+ 9655642668378909460ull, 6520638953035299123ull}},
+ {{15415139827299262954ull, 9637307542918738319ull,
+ 7457867317046248921ull, 8150798691294123904ull}},
+ {{16551991419703121203ull, 17552532260392681209ull,
+ 4661167073153905575ull, 5094249182058827440ull}},
+ {{6854931219346737791ull, 17328979307063463608ull,
+ 5826458841442381969ull, 6367811477573534300ull}},
+ {{8568664024183422239ull, 7826166078547165798ull,
+ 7283073551802977462ull, 7959764346966917875ull}},
+ {{743728996687250995ull, 279667780664590720ull, 2246077960663166962ull,
+ 4974852716854323672ull}},
+ {{929661245859063744ull, 9572956762685514208ull, 2807597450828958702ull,
+ 6218565896067904590ull}},
+ {{1162076557323829680ull, 2742823916502116952ull,
+ 12732868850390974186ull, 7773207370084880737ull}},
+ {{726297848327393550ull, 6325950966241210999ull, 1040514003853277010ull,
+ 4858254606303050461ull}},
+ {{14742930365691405650ull, 17130810744656289556ull,
+ 5912328523243984166ull, 6072818257878813076ull}},
+ {{18428662957114257062ull, 12190141393965586137ull,
+ 7390410654054980208ull, 7591022822348516345ull}},
+ {{4600385320555328808ull, 7618838371228491336ull,
+ 16148221704852832390ull, 4744389263967822715ull}},
+ {{5750481650694161010ull, 300175927180838362ull,
+ 15573591112638652584ull, 5930486579959778394ull}},
+ {{16411474100222477070ull, 375219908976047952ull,
+ 10243616853943539922ull, 7413108224949722993ull}},
+ {{10257171312639048169ull, 4846198461537417874ull,
+ 17931475579783182211ull, 4633192640593576870ull}},
+ {{3598092103944034403ull, 1446062058494384439ull,
+ 13190972437874201956ull, 5791490800741971088ull}},
+ {{18332673185212206716ull, 1807577573117980548ull,
+ 16488715547342752445ull, 7239363500927463860ull}},
+ {{4469097407805706779ull, 6871157984824863590ull,
+ 2164150360468888940ull, 9049204376159329826ull}},
+ {{16628243935160730449ull, 13517845777370315551ull,
+ 5964279993720443491ull, 5655752735099581141ull}},
+ {{16173618900523525157ull, 12285621203285506535ull,
+ 12067036010577942268ull, 7069690918874476426ull}},
+ {{15605337607227018542ull, 15357026504106883169ull,
+ 5860422976367652027ull, 8837113648593095533ull}},
+ {{2835806976875804733ull, 7292298555853108029ull,
+ 5968607369443476469ull, 5523196030370684708ull}},
+ {{8156444739522143820ull, 13727059213243772940ull,
+ 7460759211804345586ull, 6903995037963355885ull}},
+ {{10195555924402679775ull, 7935451979699940367ull,
+ 13937635033182819887ull, 8629993797454194856ull}},
+ {{13289751480392756715ull, 11877186514953544585ull,
+ 8711021895739262429ull, 5393746123408871785ull}},
+ {{2777131295208782182ull, 1011425088409767020ull,
+ 15500463388101465941ull, 6742182654261089731ull}},
+ {{3471414119010977728ull, 5875967378939596679ull,
+ 14763893216699444522ull, 8427728317826362164ull}},
+ {{9087162852022942936ull, 8284165630264635828ull, 4061223582377018ull,
+ 5267330198641476353ull}},
+ {{11358953565028678670ull, 1131835000976018977ull,
+ 4616762547905359177ull, 6584162748301845441ull}},
+ {{363633901003684625ull, 6026479769647411626ull,
+ 10382639203309086875ull, 8230203435377306801ull}},
+ {{4838957206554690795ull, 1460706846815938314ull,
+ 18018364548136649057ull, 5143877147110816750ull}},
+ {{15272068545048139302ull, 6437569576947310796ull,
+ 13299583648316035513ull, 6429846433888520938ull}},
+ {{643341607600622511ull, 12658647989611526400ull,
+ 7401107523540268583ull, 8037308042360651173ull}},
+ {{402088504750389069ull, 14829184021148285856ull,
+ 6931535211426361816ull, 5023317526475406983ull}},
+ {{502610630937986337ull, 89735952725805704ull, 4052732995855564367ull,
+ 6279146908094258729ull}},
+ {{628263288672482921ull, 13947227996189420842ull,
+ 9677602263246843362ull, 7848933635117823411ull}},
+ {{5004350573847689730ull, 13328703516045775930ull,
+ 3742658405315583149ull, 4905583521948639632ull}},
+ {{15478810254164387970ull, 2825821339775056200ull,
+ 4678323006644478937ull, 6131979402435799540ull}},
+ {{901768743995933346ull, 8143962693146208155ull, 5847903758305598671ull,
+ 7664974253044749425ull}},
+ {{16704506529493316006ull, 12007505710857461952ull,
+ 15184154895009468929ull, 4790608908152968390ull}},
+ {{2433889088157093391ull, 1174324083289663729ull,
+ 9756821581907060354ull, 5988261135191210488ull}},
+ {{7654047378623754642ull, 10691277140966855469ull,
+ 12196026977383825442ull, 7485326418989013110ull}},
+ {{7089622620853540604ull, 11293734231531672572ull,
+ 3010830842437502997ull, 4678329011868133194ull}},
+ {{8862028276066925755ull, 282109734132427003ull,
+ 12986910589901654555ull, 5847911264835166492ull}},
+ {{6465849326656269289ull, 14187695222947697466ull,
+ 16233638237377068193ull, 7309889081043958115ull}},
+ {{17305683695175112419ull, 3899560973402458120ull,
+ 15680361778293947338ull, 9137361351304947644ull}},
+ {{10816052309484445262ull, 7048911626803924229ull,
+ 576854074578941278ull, 5710850844565592278ull}},
+ {{18131751405282944482ull, 18034511570359681094ull,
+ 9944439630078452405ull, 7138563555706990347ull}},
+ {{13441317219748904794ull, 8708081407667437656ull,
+ 7818863519170677603ull, 8923204444633737934ull}},
+ {{8400823262343065496ull, 3136707870578454583ull, 275103681054285598ull,
+ 5577002777896086209ull}},
+ {{5889343059501443966ull, 13144256875077844037ull,
+ 4955565619745244901ull, 6971253472370107761ull}},
+ {{11973364842804192862ull, 2595263038565141334ull,
+ 10806143043108944031ull, 8714066840462634701ull}},
+ {{2871667008325232635ull, 8539568426744295190ull,
+ 9059682411156783971ull, 5446291775289146688ull}},
+ {{12812955797261316601ull, 6062774515002981083ull,
+ 11324603013945979964ull, 6807864719111433360ull}},
+ {{11404508728149257848ull, 7578468143753726354ull,
+ 14155753767432474955ull, 8509830898889291700ull}},
+ {{11739503973520674059ull, 2430699580632385019ull,
+ 18070718141500072655ull, 5318644311805807312ull}},
+ {{10062693948473454670ull, 16873432531072644986ull,
+ 4141653603165539202ull, 6648305389757259141ull}},
+ {{3354995398737042529ull, 11868418626986030425ull,
+ 9788753022384311907ull, 8310381737196573926ull}},
+ {{13626087170279121341ull, 5111918632652575063ull,
+ 1506284620562807038ull, 5193988585747858704ull}},
+ {{12420922944421513772ull, 15613270327670494637ull,
+ 1882855775703508797ull, 6492485732184823380ull}},
+ {{1691095625244728503ull, 5681529854305954585ull,
+ 2353569719629385997ull, 8115607165231029225ull}},
+ {{12586149811846425074ull, 5856799168154915567ull,
+ 13000196120836836008ull, 5072254478269393265ull}},
+ {{11121001246380643439ull, 7320998960193644459ull,
+ 2415187095763881298ull, 6340318097836741582ull}},
+ {{9289565539548416394ull, 18374620737096831382ull,
+ 12242355906559627430ull, 7925397622295926977ull}},
+ {{1194292443790372343ull, 6872451942258131710ull, 733943413958685288ull,
+ 4953373513934954361ull}},
+ {{10716237591592741236ull, 8590564927822664637ull,
+ 5529115285875744514ull, 6191716892418692951ull}},
+ {{18006983007918314449ull, 1514834122923554988ull,
+ 2299708088917292739ull, 7739646115523366189ull}},
+ {{2030992343094170723ull, 17087672391323079532ull,
+ 3743160564787001913ull, 4837278822202103868ull}},
+ {{2538740428867713403ull, 7524532433871685703ull,
+ 4678950705983752392ull, 6046598527752629835ull}},
+ {{17008483591366805466ull, 9405665542339607128ull,
+ 1237002364052302586ull, 7558248159690787294ull}},
+ {{10630302244604253417ull, 10490226982389642359ull,
+ 14608184532814852828ull, 4723905099806742058ull}},
+ {{8676191787327928867ull, 13112783727987052949ull,
+ 9036858629163790227ull, 5904881374758427573ull}},
+ {{15456925752587298987ull, 11779293641556428282ull,
+ 15907759304882125688ull, 7381101718448034466ull}},
+ {{14272264613794449771ull, 7362058525972767676ull,
+ 14554035583978716459ull, 4613188574030021541ull}},
+ {{17840330767243062214ull, 4590887139038571691ull,
+ 4357486424691231862ull, 5766485717537526927ull}},
+ {{17688727440626439863ull, 14961980960652990422ull,
+ 835172012436651923ull, 7208107146921908659ull}},
+ {{12887537263928274021ull, 14090790182388850124ull,
+ 14879023070827978616ull, 9010133933652385823ull}},
+ {{17278082826809947071ull, 8806743863993031327ull,
+ 16216918446908568491ull, 5631333708532741139ull}},
+ {{16985917515085045935ull, 6396743811563901255ull,
+ 15659462040208322710ull, 7039167135665926424ull}},
+ {{16620710875428919514ull, 17219301801309652377ull,
+ 1127583476550851771ull, 8798958919582408031ull}},
+ {{3470415269501992841ull, 8456220616604838784ull,
+ 7622268700485364213ull, 5499349324739005019ull}},
+ {{4338019086877491051ull, 15181961789183436384ull,
+ 4916149857179317362ull, 6874186655923756274ull}},
+ {{5422523858596863813ull, 9754080199624519672ull,
+ 15368559358328922511ull, 8592733319904695342ull}},
+ {{3389077411623039883ull, 13013829152406406651ull,
+ 4993663580528188665ull, 5370458324940434589ull}},
+ {{18071404819810963566ull, 2432228385225844601ull,
+ 10853765494087623736ull, 6713072906175543236ull}},
+ {{8754197969481540746ull, 3040285481532305752ull,
+ 13567206867609529670ull, 8391341132719429045ull}},
+ {{5471373730925962966ull, 15735236481239854807ull,
+ 10785347301469649995ull, 5244588207949643153ull}},
+ {{2227531145230065804ull, 15057359583122430605ull,
+ 18093370145264450398ull, 6555735259937053941ull}},
+ {{7396099949964970158ull, 9598327442048262448ull,
+ 8781654626298399286ull, 8194669074921317427ull}},
+ {{4622562468728106349ull, 1387268632852776126ull,
+ 3182691132222805602ull, 5121668171825823392ull}},
+ {{15001575122764908744ull, 10957457827920745965ull,
+ 3978363915278507002ull, 6402085214782279240ull}},
+ {{4916910848173972218ull, 4473450248046156649ull,
+ 4972954894098133753ull, 8002606518477849050ull}},
+ {{14602284326177202397ull, 14325121451097317665ull,
+ 7719782827238721499ull, 5001629074048655656ull}},
+ {{4417797352439339284ull, 13294715795444259178ull,
+ 9649728534048401874ull, 6252036342560819570ull}},
+ {{14745618727403949912ull, 7395022707450548164ull,
+ 2838788630705726535ull, 7815045428201024463ull}},
+ {{18439383741482244503ull, 11539418219797674458ull,
+ 8691771921832160940ull, 4884403392625640289ull}},
+ {{13825857639998029821ull, 14424272774747093073ull,
+ 15476400920717589079ull, 6105504240782050361ull}},
+ {{3447263994715373564ull, 13418654950006478438ull,
+ 5510443095614822637ull, 7631880300977562952ull}},
+ {{15989598051979272190ull, 10692502352967742975ull,
+ 3444026934759264148ull, 4769925188110976845ull}},
+ {{15375311546546702333ull, 13365627941209678719ull,
+ 8916719686876468089ull, 5962406485138721056ull}},
+ {{14607453414755990013ull, 2871976871229934687ull,
+ 11145899608595585112ull, 7453008106423401320ull}},
+ {{16047187411863575614ull, 1794985544518709179ull,
+ 6966187255372240695ull, 4658130066514625825ull}},
+ {{15447298246402081613ull, 16078789985930550186ull,
+ 13319420087642688772ull, 5822662583143282281ull}},
+ {{10085750771147826209ull, 1651743408703636117ull,
+ 2814217054271197254ull, 7278328228929102852ull}},
+ {{17218874482362170665ull, 11288051297734320954ull,
+ 3517771317838996567ull, 9097910286161378565ull}},
+ {{15373482569903744570ull, 13972561088725032452ull,
+ 4504450082863066806ull, 5686193928850861603ull}},
+ {{770109138670129096ull, 8242329324051514758ull, 1018876585151445604ull,
+ 7107742411063577004ull}},
+ {{10186008460192437178ull, 10302911655064393447ull,
+ 1273595731439307005ull, 8884678013829471255ull}},
+ {{13283784315261355092ull, 8745162793628939856ull,
+ 7713526359790648734ull, 5552923758643419534ull}},
+ {{16604730394076693865ull, 1708081455181399012ull,
+ 418535912883535110ull, 6941154698304274418ull}},
+ {{2309168918886315715ull, 11358473855831524574ull,
+ 9746541927959194695ull, 8676443372880343022ull}},
+ {{15278288629586111034ull, 14016575187535784714ull,
+ 1479902686547108780ull, 5422777108050214389ull}},
+ {{9874488750127862985ull, 17520718984419730893ull,
+ 6461564376611273879ull, 6778471385062767986ull}},
+ {{16954796956087216635ull, 17289212712097275712ull,
+ 17300327507618868157ull, 8473089231328459982ull}},
+ {{10596748097554510397ull, 13111600954274491272ull,
+ 6201018673834404694ull, 5295680769580287489ull}},
+ {{13245935121943137996ull, 7166129155988338282ull,
+ 12362959360720393772ull, 6619600961975359361ull}},
+ {{7334046865574146687ull, 8957661444985422853ull,
+ 1618641145618328503ull, 8274501202469199202ull}},
+ {{6889622300197535632ull, 12516067430756971139ull,
+ 5623336734438843218ull, 5171563251543249501ull}},
+ {{4000341856819531635ull, 6421712251591438116ull,
+ 11640856936475941927ull, 6464454064429061876ull}},
+ {{5000427321024414544ull, 3415454296061909741ull,
+ 14551071170594927409ull, 8080567580536327345ull}},
+ {{5431110084853953042ull, 13663873981107163348ull,
+ 2176890453980747774ull, 5050354737835204591ull}},
+ {{6788887606067441303ull, 7856470439529178377ull,
+ 16556171122758098430ull, 6312943422294005738ull}},
+ {{13097795526011689532ull, 597216012556697163ull,
+ 11471841866592847230ull, 7891179277867507173ull}},
+ {{5880279194543612006ull, 14208318063130099439ull,
+ 9475744175834223470ull, 4931987048667191983ull}},
+ {{2738662974752127103ull, 8537025542057848491ull,
+ 7232994201365391434ull, 6164983810833989979ull}},
+ {{17258386773722322591ull, 1447909890717534805ull,
+ 4429556733279351389ull, 7706229763542487474ull}},
+ {{13092334742790145571ull, 3210786690912153205ull,
+ 7380158976726982522ull, 4816393602214054671ull}},
+ {{2530360373205518252ull, 13236855400494967315ull,
+ 4613512702481340248ull, 6020492002767568339ull}},
+ {{16998008521789061527ull, 16546069250618709143ull,
+ 1155204859674287406ull, 7525615003459460424ull}},
+ {{17541284353759245311ull, 5729607263209305310ull,
+ 722003037296429629ull, 4703509377162162765ull}},
+ {{12703233405344280830ull, 11773695097439019542ull,
+ 5514189815047924940ull, 5879386721452703456ull}},
+ {{6655669719825575229ull, 14717118871798774428ull,
+ 6892737268809906175ull, 7349233401815879320ull}},
+ {{8319587149781969037ull, 13784712571321080131ull,
+ 8615921586012382719ull, 9186541752269849150ull}},
+ {{2893898959400036696ull, 15532974384716756938ull,
+ 773264972830351295ull, 5741588595168655719ull}},
+ {{12840745736104821678ull, 14804531962468558268ull,
+ 14801639271320102831ull, 7176985743960819648ull}},
+ {{16050932170131027097ull, 13893978934658309931ull,
+ 55305015440576923ull, 8971232179951024561ull}},
+ {{7725989597118197984ull, 6377893824947749755ull,
+ 11563780680718830337ull, 5607020112469390350ull}},
+ {{5045800977970359576ull, 12584053299612075098ull,
+ 5231353814043762113ull, 7008775140586737938ull}},
+ {{15530623259317725278ull, 1895008569232930160ull,
+ 15762564304409478450ull, 8760968925733422422ull}},
+ {{9706639537073578299ull, 5796066374197969254ull,
+ 5239916671828536127ull, 5475605578583389014ull}},
+ {{2909927384487197065ull, 2633396949320073664ull,
+ 15773267876640445967ull, 6844506973229236267ull}},
+ {{3637409230608996332ull, 17126804241932255792ull,
+ 15104898827373169554ull, 8555633716536545334ull}},
+ {{2273380769130622707ull, 15315938669635047774ull,
+ 4828875748680843067ull, 5347271072835340834ull}},
+ {{12065097998268054192ull, 14533237318616421813ull,
+ 15259466722705829642ull, 6684088841044176042ull}},
+ {{1246314442552904028ull, 8943174611415751459ull,
+ 9850961366527511245ull, 8355111051305220053ull}},
+ {{16919847591091422682ull, 7895327141348538613ull,
+ 8462693863293388480ull, 5221944407065762533ull}},
+ {{7314751433582114640ull, 9869158926685673267ull,
+ 15190053347544123504ull, 6527430508832203166ull}},
+ {{4531753273550255396ull, 12336448658357091584ull,
+ 9764194647575378572ull, 8159288136040253958ull}},
+ {{2832345795968909623ull, 16933652448327958048ull,
+ 1490935636307223703ull, 5099555085025158724ull}},
+ {{3540432244961137028ull, 16555379541982559656ull,
+ 1863669545384029629ull, 6374443856281448405ull}},
+ {{4425540306201421285ull, 6859166372196035858ull,
+ 6941272950157424941ull, 7968054820351810506ull}},
+ {{7377648709803276207ull, 6592821991836216363ull,
+ 8949981612275778492ull, 4980034262719881566ull}},
+ {{4610374868826707355ull, 8241027489795270454ull,
+ 1964104978489947307ull, 6225042828399851958ull}},
+ {{14986340622888160002ull, 5689598343816700163ull,
+ 11678503259967209942ull, 7781303535499814947ull}},
+ {{7060619880091406049ull, 17391057020167601314ull,
+ 4993221528265812261ull, 4863314709687384342ull}},
+ {{18049146886969033370ull, 7903763219927337930ull,
+ 15464898947187041135ull, 6079143387109230427ull}},
+ {{13338061571856515904ull, 5268018006481784509ull,
+ 14719437665556413515ull, 7598929233886538034ull}},
+ {{10642131491624016392ull, 986668244837421366ull,
+ 13811334559400146351ull, 4749330771179086271ull}},
+ {{4079292327675244682ull, 15068393361328940420ull,
+ 12652482180822795034ull, 5936663463973857839ull}},
+ {{5099115409594055852ull, 9612119664806399717ull,
+ 11203916707601105889ull, 7420829329967322299ull}},
+ {{5492790140209978860ull, 17536789836572469583ull,
+ 4696604933036997228ull, 4638018331229576437ull}},
+ {{2254301656835085671ull, 3474243222006035363ull,
+ 10482442184723634440ull, 5797522914036970546ull}},
+ {{16652935126326020800ull, 4342804027507544203ull,
+ 3879680694049767242ull, 7246903642546213183ull}},
+ {{16204482889480138096ull, 14651877071239206062ull,
+ 237914849134821148ull, 9058629553182766479ull}},
+ {{5516115787497698406ull, 18380795206379279597ull,
+ 7066225808350345073ull, 5661643470739229049ull}},
+ {{11506830752799510912ull, 9140935952691935784ull,
+ 13444468278865319246ull, 7077054338424036311ull}},
+ {{14383538440999388640ull, 2202797904010143922ull,
+ 12193899330154261154ull, 8846317923030045389ull}},
+ {{13601397544052005804ull, 5988434708433727855ull,
+ 9927030090560107173ull, 5528948701893778368ull}},
+ {{12390060911637619351ull, 12097229403969547723ull,
+ 12408787613200133966ull, 6911185877367222960ull}},
+ {{10875890121119636284ull, 5898164718107158846ull,
+ 15510984516500167458ull, 8638982346709028700ull}},
+ {{2185745307272384774ull, 8298038967244362183ull, 470993285957828853ull,
+ 5399363966693142938ull}},
+ {{16567239689372644679ull, 14984234727482840632ull,
+ 9812113644302061874ull, 6749204958366428672ull}},
+ {{2262305538006254233ull, 9506921372498774983ull,
+ 12265142055377577343ull, 8436506197958035840ull}},
+ {{8331469988894990752ull, 12859354885452816220ull,
+ 7665713784610985839ull, 5272816373723772400ull}},
+ {{10414337486118738440ull, 11462507588388632371ull,
+ 9582142230763732299ull, 6591020467154715500ull}},
+ {{8406235839221035145ull, 9716448467058402560ull,
+ 11977677788454665374ull, 8238775583943394375ull}},
+ {{5253897399513146966ull, 1461094273484113696ull,
+ 14403577645425247715ull, 5149234739964621484ull}},
+ {{6567371749391433707ull, 15661425897137305832ull,
+ 18004472056781559643ull, 6436543424955776855ull}},
+ {{8209214686739292134ull, 14965096352994244386ull,
+ 17893904052549561650ull, 8045679281194721069ull}},
+ {{9742445197639445488ull, 13964871239048790645ull,
+ 13489533042057169983ull, 5028549550746700668ull}},
+ {{16789742515476694764ull, 12844403030383600402ull,
+ 16861916302571462479ull, 6285686938433375835ull}},
+ {{11763806107491092647ull, 11443817769552112599ull,
+ 16465709359786940195ull, 7857108673041719794ull}},
+ {{14269907844823014760ull, 4846543096756376422ull,
+ 14902754368294225526ull, 4910692920651074871ull}},
+ {{8614012769173992642ull, 15281550907800246336ull,
+ 14016756941940394003ull, 6138366150813843589ull}},
+ {{10767515961467490803ull, 14490252616322920016ull,
+ 3685888122143328792ull, 7672957688517304487ull}},
+ {{6729697475917181752ull, 9056407885201825010ull,
+ 9221209103980662351ull, 4795598555323315304ull}},
+ {{17635493881751252998ull, 6708823838074893358ull,
+ 11526511379975827939ull, 5994498194154144130ull}},
+ {{12820995315334290439ull, 3774343779166228794ull,
+ 5184767188115009116ull, 7493122742692680163ull}},
+ {{12624808090511319429ull, 11582336898833668804ull,
+ 934636483358186745ull, 4683201714182925102ull}},
+ {{15781010113139149286ull, 642863068259922293ull,
+ 10391667641052509240ull, 5854002142728656377ull}},
+ {{5891204586141772895ull, 803578835324902867ull,
+ 17601270569743024454ull, 7317502678410820471ull}},
+ {{2752319714249828215ull, 10227845581010904392ull,
+ 17389902193751392663ull, 9146878348013525589ull}},
+ {{1720199821406142634ull, 13309932515772897101ull,
+ 13174531880308314366ull, 5716798967508453493ull}},
+ {{6761935795185066197ull, 7414043607861345568ull,
+ 2633106795103229246ull, 7145998709385566867ull}},
+ {{8452419743981332746ull, 44182472971906152ull, 17126441549161200270ull,
+ 8932498386731958583ull}},
+ {{5282762339988332966ull, 13862672100889605057ull,
+ 17621554995866832024ull, 5582811491707474114ull}},
+ {{11215138943412804112ull, 17328340126112006321ull,
+ 12803571707978764222ull, 6978514364634342643ull}},
+ {{183865623983841428ull, 12437053120785232094ull,
+ 11392778616546067374ull, 8723142955792928304ull}},
+ {{13949974070272064604ull, 3161472182063382154ull,
+ 7120486635341292109ull, 5451964347370580190ull}},
+ {{8214095550985304947ull, 8563526246006615597ull,
+ 18123980331031390944ull, 6814955434213225237ull}},
+ {{14879305457159019088ull, 10704407807508269496ull,
+ 8819917358507074968ull, 8518694292766531547ull}},
+ {{9299565910724386930ull, 6690254879692668435ull,
+ 3206605339853227903ull, 5324183932979082217ull}},
+ {{7012771369978095759ull, 3751132581188447640ull,
+ 8619942693243922783ull, 6655229916223852771ull}},
+ {{8765964212472619698ull, 77229708058171646ull, 6163242348127515575ull,
+ 8319037395279815964ull}},
+ {{867041614367999408ull, 6965797595177439135ull,
+ 13075398504434473042ull, 5199398372049884977ull}},
+ {{14918860073242162971ull, 17930619030826574726ull,
+ 2509190075260927590ull, 6499247965062356222ull}},
+ {{9425203054697927906ull, 13189901751678442600ull,
+ 12359859630930935296ull, 8124059956327945277ull}},
+ {{5890751909186204942ull, 8243688594799026625ull,
+ 10030755278545528512ull, 5077537472704965798ull}},
+ {{11975125904910144081ull, 10304610743498783281ull,
+ 3315072061327134832ull, 6346921840881207248ull}},
+ {{1133849325855516389ull, 12880763429373479102ull,
+ 4143840076658918540ull, 7933652301101509060ull}},
+ {{14543713883941861455ull, 17273849180213200246ull,
+ 11813272084766599895ull, 4958532688188443162ull}},
+ {{8956270318072551011ull, 16980625456839112404ull,
+ 5543218069103474061ull, 6198165860235553953ull}},
+ {{11195337897590688764ull, 7390723765766726793ull,
+ 11540708604806730481ull, 7747707325294442441ull}},
+ {{79557158353098621ull, 16148417399672674006ull, 295413850363124694ull,
+ 4842317078309026526ull}},
+ {{9322818484796149085ull, 10962149712736066699ull,
+ 9592639349808681676ull, 6052896347886283157ull}},
+ {{7041837087567798452ull, 13702687140920083374ull,
+ 16602485205688239999ull, 7566120434857853946ull}},
+ {{18236206235012037744ull, 15481708490716133964ull,
+ 14988239271982537903ull, 4728825271786158716ull}},
+ {{4348513720055495564ull, 14740449594967779552ull,
+ 288555016268620763ull, 5911031589732698396ull}},
+ {{5435642150069369455ull, 13813875975282336536ull,
+ 360693770335775954ull, 7388789487165872995ull}},
+ {{3397276343793355910ull, 13245358502978848239ull,
+ 16366334670955717635ull, 4617993429478670621ull}},
+ {{18081653485023858599ull, 11945012110296172394ull,
+ 6622860283412483332ull, 5772491786848338277ull}},
+ {{13378694819425047441ull, 14931265137870215493ull,
+ 12890261372692992069ull, 7215614733560422846ull}},
+ {{2888310468999145589ull, 4829023367055605655ull,
+ 6889454679011464279ull, 9019518416950528558ull}},
+ {{8722723070765547849ull, 9935668632050835390ull,
+ 18140967229664328886ull, 5637199010594080348ull}},
+ {{1680031801602159003ull, 3196213753208768430ull,
+ 4229464963370859492ull, 7046498763242600436ull}},
+ {{11323411788857474562ull, 3995267191510960537ull,
+ 5286831204213574365ull, 8808123454053250545ull}},
+ {{159603340394839746ull, 4802885003908044288ull,
+ 14833484548701953738ull, 5505077158783281590ull}},
+ {{199504175493549682ull, 15226978291739831168ull,
+ 9318483649022666364ull, 6881346448479101988ull}},
+ {{249380219366937102ull, 586978790965237344ull, 11648104561278332956ull,
+ 8601683060598877485ull}},
+ {{155862637104335689ull, 9590233781208049148ull, 9585908360012652049ull,
+ 5376051912874298428ull}},
+ {{194828296380419611ull, 16599478244937449339ull,
+ 11982385450015815061ull, 6720064891092873035ull}},
+ {{14078593425757688226ull, 6914289750889647961ull,
+ 10366295794092380923ull, 8400081113866091294ull}},
+ {{1881591863457473285ull, 2015588085092336024ull,
+ 1867248852880350173ull, 5250050696166307059ull}},
+ {{2351989829321841607ull, 7131171124792807934ull,
+ 16169119121382601428ull, 6562563370207883823ull}},
+ {{12163359323507077816ull, 8913963905991009917ull,
+ 15599712883300863881ull, 8203204212759854779ull}},
+ {{9907942586405617587ull, 17100442487312850958ull,
+ 7443977542849345973ull, 5127002632974909237ull}},
+ {{3161556196152246176ull, 7540495053858899986ull,
+ 13916657946989070371ull, 6408753291218636546ull}},
+ {{13175317282045083528ull, 4813932798896237078ull,
+ 8172450396881562156ull, 8010941614023295683ull}},
+ {{3622887282850789301ull, 12232080036164923982ull,
+ 2801938488837282395ull, 5006838508764559802ull}},
+ {{13751981140418262434ull, 10678414026778767073ull,
+ 12725795147901378802ull, 6258548135955699752ull}},
+ {{3354918370240664331ull, 4124645496618683034ull,
+ 15907243934876723503ull, 7823185169944624690ull}},
+ {{6708509999827803111ull, 9495432463027758752ull,
+ 14553713477725340093ull, 4889490731215390431ull}},
+ {{8385637499784753888ull, 16480976597212086344ull,
+ 13580455828729287212ull, 6111863414019238039ull}},
+ {{10482046874730942360ull, 2154476672805556314ull,
+ 12363883767484221112ull, 7639829267524047549ull}},
+ {{11162965315134226879ull, 1346547920503472696ull,
+ 10033270363891332147ull, 4774893292202529718ull}},
+ {{13953706643917783599ull, 15518242955911504582ull,
+ 3318215918009389375ull, 5968616615253162148ull}},
+ {{8218761268042453691ull, 14786117676461992824ull,
+ 4147769897511736719ull, 7460770769066452685ull}},
+ {{5136725792526533557ull, 16158852575429827371ull,
+ 4898199195158529401ull, 4662981730666532928ull}},
+ {{1809221222230779042ull, 6363507664005120502ull,
+ 6122748993948161752ull, 5828727163333166160ull}},
+ {{11484898564643249610ull, 7954384580006400627ull,
+ 7653436242435202190ull, 7285908954166457700ull}},
+ {{9744437187376674109ull, 719608688153224976ull, 9566795303044002738ull,
+ 9107386192708072125ull}},
+ {{6090273242110421318ull, 5061441448523153514ull,
+ 8285090073616195663ull, 5692116370442545078ull}},
+ {{16836213589492802456ull, 1715115792226553988ull,
+ 1132990555165468771ull, 7115145463053181348ull}},
+ {{2598522913156451454ull, 15978952795565356198ull,
+ 1416238193956835963ull, 8893931828816476685ull}},
+ {{15459134876004945871ull, 7681002488014653671ull,
+ 3190991880436716429ull, 5558707393010297928ull}},
+ {{14712232576578794434ull, 14212939128445704993ull,
+ 3988739850545895536ull, 6948384241262872410ull}},
+ {{4555232665441329331ull, 17766173910557131242ull,
+ 14209296850037145228ull, 8685480301578590512ull}},
+ {{7458706434328218736ull, 1880486657243431218ull,
+ 8880810531273215768ull, 5428425188486619070ull}},
+ {{100011006055497612ull, 2350608321554289023ull, 1877641127236743902ull,
+ 6785531485608273838ull}},
+ {{13960071812851535726ull, 12161632438797637086ull,
+ 11570423445900705685ull, 8481914357010342297ull}},
+ {{4113358864604821925ull, 9906863283462217131ull, 313985626046859197ull,
+ 5301196473131463936ull}},
+ {{530012562328639502ull, 16995265122755159318ull, 392482032558573996ull,
+ 6626495591414329920ull}},
+ {{9885887739765575186ull, 2797337329734397531ull, 490602540698217496ull,
+ 8283119489267912400ull}},
+ {{3872836828139790539ull, 1748335831083998457ull, 306626587936385935ull,
+ 5176949680792445250ull}},
+ {{9452732053602126078ull, 16020477844137161783ull,
+ 9606655271775258226ull, 6471187100990556562ull}},
+ {{7204229048575269693ull, 10802225268316676421ull,
+ 2784947052864296975ull, 8088983876238195703ull}},
+ {{6808486164573237511ull, 13668919820339004619ull,
+ 8658120935681267465ull, 5055614922648872314ull}},
+ {{3898921687289158984ull, 3251091720141592062ull,
+ 1599279132746808524ull, 6319518653311090393ull}},
+ {{14097024145966224538ull, 4063864650176990077ull,
+ 6610784934360898559ull, 7899398316638862991ull}},
+ {{11116483100442584288ull, 9457444434001700654ull,
+ 11049269611616643455ull, 4937123947899289369ull}},
+ {{4672231838698454552ull, 7210119524074737914ull,
+ 18423273032948192223ull, 6171404934874111711ull}},
+ {{15063661835227843998ull, 4400963386666034488ull,
+ 18417405272757852375ull, 7714256168592639639ull}},
+ {{9414788647017402499ull, 9668131144307353411ull,
+ 18428407323114739590ull, 4821410105370399774ull}},
+ {{7156799790344365220ull, 2861791893529415956ull,
+ 13812137117038648680ull, 6026762631712999718ull}},
+ {{8945999737930456525ull, 3577239866911769945ull,
+ 8041799359443535042ull, 7533453289641249648ull}},
+ {{17120464882275005088ull, 6847460935247244119ull,
+ 5026124599652209401ull, 4708408306025781030ull}},
+ {{16788895084416368456ull, 13171012187486443053ull,
+ 15506027786420037559ull, 5885510382532226287ull}},
+ {{7151060800238296858ull, 11852079215930665913ull,
+ 14770848714597659045ull, 7356887978165282859ull}},
+ {{13550512018725258976ull, 980040964631168679ull,
+ 13851874874819685903ull, 9196109972706603574ull}},
+ {{15386599039344368716ull, 7530054630535562280ull,
+ 4045735778334915785ull, 5747568732941627234ull}},
+ {{786504725470909279ull, 14024254306596840755ull,
+ 14280541759773420539ull, 7184460916177034042ull}},
+ {{14818188962120800311ull, 12918631864818663039ull,
+ 8627305162861999866ull, 8980576145221292553ull}},
+ {{16178897128966582051ull, 12685830933939052303ull,
+ 16921280772857219676ull, 5612860090763307845ull}},
+ {{15611935392780839659ull, 15857288667423815379ull,
+ 7316542910789360883ull, 7016075113454134807ull}},
+ {{14903233222548661670ull, 15209924815852381320ull,
+ 4533992620059313200ull, 8770093891817668509ull}},
+ {{9314520764092913544ull, 9506203009907738325ull,
+ 5139588396750764702ull, 5481308682386042818ull}},
+ {{16254836973543529834ull, 2659381725529897098ull,
+ 15647857532793231686ull, 6851635852982553522ull}},
+ {{11095174180074636484ull, 12547599193767147181ull,
+ 10336449879136763799ull, 8564544816228191903ull}},
+ {{9240326871760341755ull, 14759778523745548844ull,
+ 13377810202101559230ull, 5352840510142619939ull}},
+ {{11550408589700427193ull, 9226351117827160247ull,
+ 12110576734199561134ull, 6691050637678274924ull}},
+ {{9826324718698146087ull, 2309566860429174501ull,
+ 15138220917749451418ull, 8363813297097843655ull}},
+ {{8447295958400035257ull, 6055165306195621967ull,
+ 16378917101234488992ull, 5227383310686152284ull}},
+ {{5947433929572656167ull, 7568956632744527459ull,
+ 2026902302833559624ull, 6534229138357690356ull}},
+ {{2822606393538432304ull, 9461195790930659324ull,
+ 2533627878541949530ull, 8167786422947112945ull}},
+ {{10987501032816295998ull, 10524933387759049981ull,
+ 13112732470157188216ull, 5104866514341945590ull}},
+ {{18346062309447757902ull, 13156166734698812476ull,
+ 7167543550841709462ull, 6381083142927431988ull}},
+ {{4485833813100145761ull, 7221836381518739788ull,
+ 8959429438552136828ull, 7976353928659289985ull}},
+ {{12027018170042366909ull, 13737019775303988175ull,
+ 17128858445163555277ull, 4985221205412056240ull}},
+ {{10422086694125570732ull, 3336216663847821507ull,
+ 2964328982744892481ull, 6231526506765070301ull}},
+ {{8415922349229575511ull, 8781956848237164788ull,
+ 8317097246858503505ull, 7789408133456337876ull}},
+ {{14483323505123260503ull, 17017938076216697752ull,
+ 14421557816141340498ull, 4868380083410211172ull}},
+ {{18104154381404075628ull, 12049050558416096382ull,
+ 18026947270176675623ull, 6085475104262763965ull}},
+ {{13406820939900318727ull, 10449627179592732574ull,
+ 8698626032438680817ull, 7606843880328454957ull}},
+ {{3767577069010311301ull, 18060232033313927619ull,
+ 7742484279487869462ull, 4754277425205284348ull}},
+ {{97785317835501222ull, 13351918004787633716ull, 9678105349359836828ull,
+ 5942846781506605435ull}},
+ {{122231647294376527ull, 16689897505984542145ull,
+ 7485945668272408131ull, 7428558476883256794ull}},
+ {{11605609825627455089ull, 8125342932026644888ull,
+ 9290402061097642986ull, 4642849048052035496ull}},
+ {{14507012282034318862ull, 933306628178530302ull,
+ 11613002576372053733ull, 5803561310065044370ull}},
+ {{8910393315688122769ull, 5778319303650550782ull,
+ 5292881183610291358ull, 7254451637581305463ull}},
+ {{1914619607755377653ull, 16446271166417964286ull,
+ 2004415461085476293ull, 9068064546976631829ull}},
+ {{15031695310129274745ull, 12584762488224921630ull,
+ 3558602672392116635ull, 5667540341860394893ull}},
+ {{9566247100806817624ull, 11119267091853764134ull,
+ 9059939358917533698ull, 7084425427325493616ull}},
+ {{2734436839153746221ull, 4675711827962429360ull,
+ 11324924198646917123ull, 8855531784156867020ull}},
+ {{1709023024471091389ull, 616476883262824398ull,
+ 16301449661009099010ull, 5534707365098041887ull}},
+ {{11359650817443640044ull, 9993968140933306305ull,
+ 15765126057833985858ull, 6918384206372552359ull}},
+ {{364505466522386342ull, 3269088139311857074ull,
+ 15094721553865094419ull, 8647980257965690449ull}},
+ {{4839501935003879368ull, 18184081151565768335ull,
+ 2516671943524602155ull, 5404987661228556531ull}},
+ {{1437691400327461306ull, 18118415421029822515ull,
+ 16980897984687916406ull, 6756234576535695663ull}},
+ {{15632172305691490344ull, 13424647239432502335ull,
+ 16614436462432507604ull, 8445293220669619579ull}},
+ {{16687636718698263321ull, 17613776561500089767ull,
+ 8078179779806623300ull, 5278308262918512237ull}},
+ {{16247859879945441248ull, 3570476628165560593ull,
+ 14709410743185667030ull, 6597885328648140296ull}},
+ {{6474766794649637848ull, 13686467822061726550ull,
+ 18386763428982083787ull, 8247356660810175370ull}},
+ {{17881787301938187367ull, 6248199379574885141ull,
+ 16103413161541190271ull, 5154597913006359606ull}},
+ {{8517176072140570496ull, 3198563206041218523ull,
+ 10905894415071712031ull, 6443247391257949508ull}},
+ {{6034784071748325216ull, 17833262062833686866ull,
+ 13632368018839640038ull, 8054059239072436885ull}},
+ {{8383426063270091164ull, 6534102770843666387ull,
+ 10826073020988468976ull, 5033787024420273053ull}},
+ {{5867596560660226051ull, 8167628463554582984ull,
+ 18144277294662974124ull, 6292233780525341316ull}},
+ {{7334495700825282564ull, 10209535579443228730ull,
+ 4233602544619166039ull, 7865292225656676646ull}},
+ {{9195745831443189507ull, 13298488764793099812ull,
+ 16481059645669142486ull, 4915807641035422903ull}},
+ {{11494682289303986883ull, 7399738919136598957ull,
+ 15989638538659040204ull, 6144759551294278629ull}},
+ {{533294806347819892ull, 9249673648920748697ull, 6151990118041636543ull,
+ 7680949439117848287ull}},
+ {{11862524300035857193ull, 12698575058216549791ull,
+ 10762522851417104695ull, 4800593399448655179ull}},
+ {{10216469356617433587ull, 11261532804343299335ull,
+ 8841467545843992965ull, 6000741749310818974ull}},
+ {{8158900677344404079ull, 241857950146960457ull, 1828462395450215399ull,
+ 7500927186638523718ull}},
+ {{16628527969408722310ull, 7068690246482932141ull,
+ 14977847052438548336ull, 4688079491649077323ull}},
+ {{6950601906478739175ull, 8835862808103665177ull,
+ 14110622797120797516ull, 5860099364561346654ull}},
+ {{13299938401525811873ull, 11044828510129581471ull,
+ 8414906459546221087ull, 7325124205701683318ull}},
+ {{12013236983479876937ull, 9194349619234588935ull,
+ 1295261037578000551ull, 9156405257127104148ull}},
+ {{14425802142316004942ull, 12663997539662699940ull,
+ 10032910185341026152ull, 5722753285704440092ull}},
+ {{18032252677895006177ull, 15829996924578374925ull,
+ 12541137731676282690ull, 7153441607130550115ull}},
+ {{8705257792086594009ull, 10564124118868192849ull,
+ 11064736146167965459ull, 8941802008913187644ull}},
+ {{16970001166122591016ull, 4296734565078926578ull,
+ 16138832128209754220ull, 5588626255570742277ull}},
+ {{11989129420798462962ull, 5370918206348658223ull,
+ 6338482104980029063ull, 6985782819463427847ull}},
+ {{10374725757570690798ull, 2101961739508434875ull,
+ 3311416612797648425ull, 8732228524329284809ull}},
+ {{4178360589267987797ull, 12842941133261241557ull,
+ 13598850429067000025ull, 5457642827705803005ull}},
+ {{9834636755012372650ull, 2218618361294388234ull,
+ 3163504981051586320ull, 6822053534632253757ull}},
+ {{3069923906910690005ull, 2773272951617985293ull,
+ 8566067244741870804ull, 8527566918290317196ull}},
+ {{4224545451032875205ull, 10956667631616016616ull,
+ 14577164064818445060ull, 5329729323931448247ull}},
+ {{5280681813791094006ull, 13695834539520020770ull,
+ 13609769062595668421ull, 6662161654914310309ull}},
+ {{15824224304093643316ull, 3284735119117862250ull,
+ 3177153272962421815ull, 8327702068642887887ull}},
+ {{14501826208485914976ull, 8970488477089745762ull,
+ 8903249823242595490ull, 5204813792901804929ull}},
+ {{8903910723752617912ull, 1989738559507406395ull,
+ 15740748297480632267ull, 6506017241127256161ull}},
+ {{6518202386263384486ull, 16322231254666421706ull,
+ 5840877316568626621ull, 8132521551409070202ull}},
+ {{8685562509842003208ull, 12507237543380207518ull,
+ 8262234341282779542ull, 5082825969630668876ull}},
+ {{1633581100447728202ull, 6410674892370483590ull,
+ 10327792926603474428ull, 6353532462038336095ull}},
+ {{11265348412414436061ull, 8013343615463104487ull,
+ 8298055139826955131ull, 7941915577547920119ull}},
+ {{13958371785400104394ull, 2702496750450746352ull,
+ 12103813490032928813ull, 4963697235967450074ull}},
+ {{17447964731750130492ull, 7989806956490820844ull,
+ 5906394825686385208ull, 6204621544959312593ull}},
+ {{3363211840978111499ull, 9987258695613526056ull,
+ 11994679550535369414ull, 7755776931199140741ull}},
+ {{2102007400611319687ull, 1630350666331065881ull,
+ 9802517728298299836ull, 4847360581999462963ull}},
+ {{7239195269191537513ull, 2037938332913832351ull,
+ 7641461141945486891ull, 6059200727499328704ull}},
+ {{4437308068062033987ull, 16382480971424454151ull,
+ 9551826427431858613ull, 7574000909374160880ull}},
+ {{9690846570179853098ull, 12544893616353977796ull,
+ 5969891517144911633ull, 4733750568358850550ull}},
+ {{12113558212724816373ull, 1846058965160308533ull,
+ 16685736433285915350ull, 5917188210448563187ull}},
+ {{1306889710623856754ull, 11530945743305161475ull,
+ 16245484523180006283ull, 7396485263060703984ull}},
+ {{16957707133635768135ull, 4900998080352031969ull,
+ 10153427826987503927ull, 4622803289412939990ull}},
+ {{7362075861762546457ull, 1514561582012652058ull,
+ 3468412746879604101ull, 5778504111766174988ull}},
+ {{18425966864057958879ull, 6504887995943202976ull,
+ 4335515933599505126ull, 7223130139707718735ull}},
+ {{4585714506362896982ull, 17354482031783779529ull,
+ 807708898571993503ull, 9028912674634648419ull}},
+ {{14395286612545280374ull, 17764080297505944061ull,
+ 16645719126103353603ull, 5643070421646655261ull}},
+ {{4159050210399436756ull, 17593414353455042173ull,
+ 6972090852347028292ull, 7053838027058319077ull}},
+ {{9810498781426683848ull, 3545023868109251100ull,
+ 13326799583861173270ull, 8817297533822898846ull}},
+ {{15354933775246453213ull, 16050697972850445649ull,
+ 3717563721485845389ull, 5510810958639311779ull}},
+ {{5358609163775902805ull, 6228314410780893350ull, 35268633429918833ull,
+ 6888513698299139724ull}},
+ {{15921633491574654314ull, 12397079031903504591ull,
+ 44085791787398541ull, 8610642122873924655ull}},
+ {{16868549959875240802ull, 10054017404153384321ull,
+ 6945082647508205944ull, 5381651326796202909ull}},
+ {{7250629394561887291ull, 12567521755191730402ull,
+ 13293039327812645334ull, 6727064158495253636ull}},
+ {{18286658780057134921ull, 6486030157134887194ull,
+ 16616299159765806668ull, 8408830198119067045ull}},
+ {{16040847755963097230ull, 13277140885064080304ull,
+ 12691029984067323119ull, 5255518873824416903ull}},
+ {{1604315621244319921ull, 11984740087902712477ull,
+ 11252101461656765995ull, 6569398592280521129ull}},
+ {{6617080544982787806ull, 10369239091451002692ull,
+ 230068771788793782ull, 8211748240350651412ull}},
+ {{13359047377469018187ull, 1869088413729488778ull,
+ 9367165019222771922ull, 5132342650219157132ull}},
+ {{7475437184981496925ull, 11559732554016636781ull,
+ 11708956274028464902ull, 6415428312773946415ull}},
+ {{13955982499654259060ull, 5226293655666020168ull,
+ 10024509324108193224ull, 8019285390967433019ull}},
+ {{8722489062283911913ull, 3266433534791262605ull,
+ 3959475318353926813ull, 5012053369354645637ull}},
+ {{15514797346282277795ull, 8694727936916466160ull,
+ 9561030166369796420ull, 6265066711693307046ull}},
+ {{946752609143295628ull, 10868409921145582701ull,
+ 2727915671107469717ull, 7831333389616633808ull}},
+ {{2897563389928253720ull, 9098599209929683140ull,
+ 1704947294442168573ull, 4894583368510396130ull}},
+ {{3621954237410317149ull, 15984935030839491829ull,
+ 11354556154907486524ull, 6118229210637995162ull}},
+ {{9139128815190284340ull, 1534424714839813170ull,
+ 4969823156779582348ull, 7647786513297493953ull}},
+ {{10323641527921315617ull, 10182387483629659039ull,
+ 14635354519055708727ull, 4779866570810933720ull}},
+ {{8292865891474256617ull, 8116298336109685895ull,
+ 18294193148819635909ull, 5974833213513667150ull}},
+ {{5754396345915432867ull, 14757058938564495273ull,
+ 13644369399169769078ull, 7468541516892083938ull}},
+ {{15125712762265615302ull, 4611475818175421641ull,
+ 13139416892908493578ull, 4667838448057552461ull}},
+ {{5072082897549855416ull, 14987716809574052860ull,
+ 2589213060853453260ull, 5834798060071940577ull}},
+ {{6340103621937319269ull, 287901938258014459ull, 7848202344494204480ull,
+ 7293497575089925721ull}},
+ {{3313443508994261183ull, 359877422822518074ull,
+ 14421938949045143504ull, 9116871968862407151ull}},
+ {{6682588211548801143ull, 224923389264073796ull,
+ 15931240870794296546ull, 5698044980539004469ull}},
+ {{8353235264436001429ull, 9504526273434868053ull,
+ 6078993033210706970ull, 7122556225673755587ull}},
+ {{15053230098972389690ull, 2657285804938809258ull,
+ 2987055273085995809ull, 8903195282092194484ull}},
+ {{14019954830285131461ull, 13190018674155225546ull,
+ 11090281582533523188ull, 5564497051307621552ull}},
+ {{8301571501001638518ull, 16487523342694031933ull,
+ 13862851978166903985ull, 6955621314134526940ull}},
+ {{14988650394679436051ull, 6774346123085376204ull,
+ 17328564972708629982ull, 8694526642668158675ull}},
+ {{144534459819871724ull, 18069024382210523840ull,
+ 8524510098729199786ull, 5434079151667599172ull}},
+ {{180668074774839655ull, 13362908440908378992ull,
+ 10655637623411499733ull, 6792598939584498965ull}},
+ {{225835093468549568ull, 2868577495853310028ull,
+ 17931233047691762571ull, 8490748674480623706ull}},
+ {{9364518970272619288ull, 17933761999404176431ull,
+ 15818706673234739510ull, 5306717921550389816ull}},
+ {{7093962694413386206ull, 13193830462400444731ull,
+ 1326639267833872772ull, 6633397401937987271ull}},
+ {{4255767349589344854ull, 16492288078000555914ull,
+ 15493357140074504677ull, 8291746752422484088ull}},
+ {{7271540611920728438ull, 12613523057964041398ull,
+ 9683348212546565423ull, 5182341720264052555ull}},
+ {{18312797801755686355ull, 11155217804027663843ull,
+ 7492499247255818875ull, 6477927150330065694ull}},
+ {{18279311233767220040ull, 9332336236607191900ull,
+ 142252022214997786ull, 8097408937912582118ull}},
+ {{2201197484249736717ull, 10444396166306882842ull,
+ 13923965569166537328ull, 5060880586195363823ull}},
+ {{11974868892166946704ull, 13055495207883603552ull,
+ 12793270943030783756ull, 6326100732744204779ull}},
+ {{14968586115208683380ull, 16319369009854504440ull,
+ 11379902660361091791ull, 7907625915930255974ull}},
+ {{9355366322005427113ull, 17117134658800147131ull,
+ 2500753144298294465ull, 4942266197456409984ull}},
+ {{7082521884079395987ull, 7561360268218020202ull,
+ 3125941430372868082ull, 6177832746820512480ull}},
+ {{18076524391954020792ull, 228328298417749444ull,
+ 3907426787966085103ull, 7722290933525640600ull}},
+ {{2074455708116487187ull, 7060234214152175259ull,
+ 2442141742478803189ull, 4826431833453525375ull}},
+ {{16428127690427772695ull, 13436978786117606977ull,
+ 16887735233380667698ull, 6033039791816906718ull}},
+ {{6700101557752552157ull, 7572851445792232914ull,
+ 11886297004871058815ull, 7541299739771133398ull}},
+ {{8799249492022733002ull, 11650561181261227427ull,
+ 2817249609617023855ull, 4713312337356958374ull}},
+ {{6387375846601028349ull, 9951515458149146380ull,
+ 12744934048876055627ull, 5891640421696197967ull}},
+ {{7984219808251285436ull, 7827708304259045071ull,
+ 11319481542667681630ull, 7364550527120247459ull}},
+ {{5368588741886718891ull, 561263343469030531ull, 9537665909907214134ull,
+ 9205688158900309324ull}},
+ {{1049524954465505355ull, 14185847644950307794ull,
+ 15184413230546784641ull, 5753555099312693327ull}},
+ {{10535278229936657502ull, 3897251500905721030ull,
+ 14368830519756092898ull, 7191943874140866659ull}},
+ {{3945725750566046069ull, 14094936412986927096ull,
+ 13349352131267728218ull, 8989929842676083324ull}},
+ {{2466078594103778793ull, 13421021276544217339ull,
+ 17566717118897105944ull, 5618706151672552077ull}},
+ {{16917656297911887203ull, 16776276595680271673ull,
+ 8123338343339218718ull, 7023382689590690097ull}},
+ {{7312012317107695292ull, 11746973707745563784ull,
+ 14765858947601411302ull, 8779228361988362621ull}},
+ {{4570007698192309558ull, 2730172548913589461ull,
+ 11534504851464576016ull, 5487017726242726638ull}},
+ {{10324195641167774851ull, 3412715686141986826ull,
+ 5194759027475944212ull, 6858772157803408298ull}},
+ {{3681872514604942756ull, 4265894607677483533ull,
+ 15716820821199706073ull, 8573465197254260372ull}},
+ {{4607013330841783175ull, 14195399175866896968ull,
+ 599640976395040487ull, 5358415748283912733ull}},
+ {{5758766663552228968ull, 13132562951406233306ull,
+ 5361237238921188513ull, 6698019685354890916ull}},
+ {{16421830366295062018ull, 2580645633975627920ull,
+ 6701546548651485642ull, 8372524606693613645ull}},
+ {{10263643978934413761ull, 6224589539662155354ull,
+ 6494309602120872478ull, 5232827879183508528ull}},
+ {{3606182936813241394ull, 17004108961432470001ull,
+ 8117887002651090597ull, 6541034848979385660ull}},
+ {{9119414689443939646ull, 7420078146508423789ull,
+ 10147358753313863247ull, 8176293561224232075ull}},
+ {{8005477190116156231ull, 11555077869208846724ull,
+ 4036256211607470577ull, 5110183475765145047ull}},
+ {{10006846487645195289ull, 608789281228894693ull, 433634246081950318ull,
+ 6387729344706431309ull}},
+ {{17120244127983882015ull, 9984358638390894174ull,
+ 5153728826029825801ull, 7984661680883039136ull}},
+ {{6088466561562538355ull, 17769439195062778619ull,
+ 3221080516268641125ull, 4990413550551899460ull}},
+ {{2998897183525785040ull, 8376740938546309562ull,
+ 4026350645335801407ull, 6238016938189874325ull}},
+ {{12971993516262007108ull, 5859240154755499048ull,
+ 9644624325097139663ull, 7797521172737342906ull}},
+ {{8107495947663754443ull, 10579554124363268761ull,
+ 10639576221613100193ull, 4873450732960839316ull}},
+ {{14746055953007080957ull, 17836128673881473855ull,
+ 13299470277016375241ull, 6091813416201049145ull}},
+ {{13820883922831463292ull, 8460102787069678607ull,
+ 2789279790988305340ull, 7614766770251311432ull}},
+ {{15555581479410746414ull, 14510936278773324937ull,
+ 1743299869367690837ull, 4759229231407069645ull}},
+ {{5609418793981269305ull, 4303612293184492460ull,
+ 6790810855137001451ull, 5949036539258837056ull}},
+ {{7011773492476586631ull, 767829348053227671ull, 8488513568921251814ull,
+ 7436295674073546320ull}},
+ {{11299887460438948501ull, 14314951397815431006ull,
+ 5305320980575782383ull, 4647684796295966450ull}},
+ {{4901487288693909818ull, 13282003228841900854ull,
+ 15855023262574503787ull, 5809605995369958062ull}},
+ {{15350231147722163080ull, 11990818017624988163ull,
+ 10595407041363353926ull, 7262007494212447578ull}},
+ {{14576102916225315946ull, 5765150485176459396ull,
+ 4020886764849416600ull, 9077509367765559473ull}},
+ {{18333436359495598274ull, 3603219053235287122ull,
+ 14042269274099355135ull, 5673443354853474670ull}},
+ {{13693423412514722035ull, 18339081871826272615ull,
+ 8329464555769418110ull, 7091804193566843338ull}},
+ {{12505093247216014640ull, 13700480302928064961ull,
+ 1188458657856996830ull, 8864755241958554173ull}},
+ {{898154251868927294ull, 3951114170902652697ull, 3048629670374316971ull,
+ 5540472026224096358ull}},
+ {{5734378833263547021ull, 327206695200927967ull,
+ 13034159124822672022ull, 6925590032780120447ull}},
+ {{2556287523152045873ull, 9632380405855935767ull,
+ 11681012887600952123ull, 8656987540975150559ull}},
+ {{8515208729611110527ull, 3714394744446265902ull,
+ 14218162082391676933ull, 5410617213109469099ull}},
+ {{1420638875159112350ull, 9254679448985220282ull,
+ 13161016584562208262ull, 6763271516386836374ull}},
+ {{10999170630803666245ull, 2344977274376749544ull,
+ 7227898693847984520ull, 8454089395483545468ull}},
+ {{6874481644252291404ull, 1465610796485468465ull,
+ 13740808720509766133ull, 5283805872177215917ull}},
+ {{13204788073742752158ull, 6443699514034223485ull,
+ 3340952845355043954ull, 6604757340221519897ull}},
+ {{2670927036896276486ull, 17277996429397555165ull,
+ 8787877075121192846ull, 8255946675276899871ull}},
+ {{3975172407273866756ull, 6187061749946084074ull,
+ 12409952199591827385ull, 5159966672048062419ull}},
+ {{14192337545947109253ull, 12345513205859992996ull,
+ 10900754231062396327ull, 6449958340060078024ull}},
+ {{17740421932433886566ull, 10820205488897603341ull,
+ 13625942788827995409ull, 8062447925075097530ull}},
+ {{13393606716984873056ull, 18291843476629471848ull,
+ 13127900261444885034ull, 5039029953171935956ull}},
+ {{16742008396231091320ull, 13641432308932064002ull,
+ 16409875326806106293ull, 6298787441464919945ull}},
+ {{11704138458434088341ull, 3216732330882916291ull,
+ 6677286103225469155ull, 7873484301831149932ull}},
+ {{5009243527307611261ull, 18151358771297680346ull,
+ 13396675851370694029ull, 4920927688644468707ull}},
+ {{15484926445989289885ull, 8854140408839936720ull,
+ 12134158795785979633ull, 6151159610805585884ull}},
+ {{909413983777060740ull, 15679361529477308805ull,
+ 15167698494732474541ull, 7688949513506982355ull}},
+ {{2874226749074356915ull, 12105443965137011955ull,
+ 7173968549994102636ull, 4805593445941863972ull}},
+ {{17427841491625109855ull, 15131804956421264943ull,
+ 8967460687492628295ull, 6006991807427329965ull}},
+ {{17173115846103999415ull, 14303070177099193275ull,
+ 15821011877793173273ull, 7508739759284162456ull}},
+ {{8427354394601305682ull, 2021889833045913941ull,
+ 9888132423620733296ull, 4692962349552601535ull}},
+ {{15145879011679020007ull, 2527362291307392426ull,
+ 7748479511098528716ull, 5866202936940751919ull}},
+ {{9708976727743999200ull, 3159202864134240533ull,
+ 5073913370445772991ull, 7332753671175939899ull}},
+ {{16747906928107386904ull, 17784061635449964378ull,
+ 1730705694629828334ull, 9165942088969924874ull}},
+ {{15079127848494504719ull, 6503352503728839832ull,
+ 5693377077571030613ull, 5728713805606203046ull}},
+ {{402165736908579283ull, 12740876648088437695ull,
+ 16340093383818564074ull, 7160892257007753807ull}},
+ {{14337765226417887816ull, 6702723773255771310ull,
+ 15813430711345817189ull, 8951115321259692259ull}},
+ {{4349417248083791981ull, 6495045367498551021ull,
+ 7577551185377441791ull, 5594447075787307662ull}},
+ {{10048457578532127880ull, 3507120690945800872ull,
+ 248566944867026431ull, 6993058844734134578ull}},
+ {{12560571973165159850ull, 18218958918964414802ull,
+ 9534080717938558846ull, 8741323555917668222ull}},
+ {{12462043501655612811ull, 6775163305925371347ull,
+ 1347114430284211375ull, 5463327222448542639ull}},
+ {{10965868358642128109ull, 3857268113979326280ull,
+ 15518951093137427931ull, 6829159028060678298ull}},
+ {{13707335448302660136ull, 209899124046769946ull,
+ 10175316829567009106ull, 8536448785075847873ull}},
+ {{13178770673616550489ull, 4742872970956619120ull,
+ 17888788064547850451ull, 5335280490672404920ull}},
+ {{16473463342020688112ull, 1316905195268385996ull,
+ 3914241006975261448ull, 6669100613340506151ull}},
+ {{2145085103816308523ull, 1646131494085482496ull, 281115240291688906ull,
+ 8336375766675632689ull}},
+ {{1340678189885192827ull, 5640518202230814464ull,
+ 11704912071250775326ull, 5210234854172270430ull}},
+ {{1675847737356491034ull, 16274019789643293888ull,
+ 5407768052208693349ull, 6512793567715338038ull}},
+ {{2094809671695613792ull, 6507466681771953648ull,
+ 15983082102115642495ull, 8140991959644172547ull}},
+ {{1309256044809758620ull, 10984695703748552886ull,
+ 7683583304608582607ull, 5088119974777607842ull}},
+ {{10859942092866974083ull, 9119183611258303203ull,
+ 381107093905952451ull, 6360149968472009803ull}},
+ {{8963241597656329700ull, 6787293495645491100ull,
+ 14311441922664604276ull, 7950187460590012253ull}},
+ {{14825398035389981871ull, 13465430471633207745ull,
+ 11250494210879071624ull, 4968867162868757658ull}},
+ {{4696689488955313626ull, 16831788089541509682ull,
+ 4839745726744063722ull, 6211083953585947073ull}},
+ {{15094233898048917841ull, 11816363075072111294ull,
+ 10661368176857467557ull, 7763854941982433841ull}},
+ {{4822210167853185747ull, 9691069931133763511ull,
+ 18192570156604386983ull, 4852409338739021150ull}},
+ {{1416076691389094279ull, 7502151395489816485ull,
+ 13517340658900707921ull, 6065511673423776438ull}},
+ {{6381781882663755753ull, 13989375262789658510ull,
+ 7673303786771109093ull, 7581889591779720548ull}},
+ {{17823671731947011058ull, 11049202548457230520ull,
+ 14019186903586718991ull, 4738680994862325342ull}},
+ {{3832845591224212206ull, 9199817167144150247ull,
+ 8300611592628622931ull, 5923351243577906678ull}},
+ {{179370970602877353ull, 6888085440502799905ull, 1152392453931002856ull,
+ 7404189054472383348ull}},
+ {{11641321902695268106ull, 4305053400314249940ull,
+ 9943617320561652593ull, 4627618159045239592ull}},
+ {{14551652378369085132ull, 9993002768820200329ull,
+ 12429521650702065741ull, 5784522698806549490ull}},
+ {{4354507417679192703ull, 17102939479452638316ull,
+ 6313530026522806368ull, 7230653373508186863ull}},
+ {{5443134272098990879ull, 2931930275606246279ull,
+ 3280226514726120057ull, 9038316716885233579ull}},
+ {{10319487947702951156ull, 13361671468322373684ull,
+ 18191042636199682699ull, 5648947948053270986ull}},
+ {{12899359934628688944ull, 12090403316975579201ull,
+ 13515431258394827566ull, 7061184935066588733ull}},
+ {{2289141863003697468ull, 5889632109364698194ull,
+ 3059231017711370746ull, 8826481168833235917ull}},
+ {{6042399682804698822ull, 8292706086780324275ull,
+ 4217862395283300668ull, 5516550730520772448ull}},
+ {{2941313585078485623ull, 10365882608475405344ull,
+ 5272327994104125835ull, 6895688413150965560ull}},
+ {{3676641981348107029ull, 8345667242166868776ull,
+ 6590409992630157294ull, 8619610516438706950ull}},
+ {{2297901238342566893ull, 604356007926905081ull,
+ 17954064300676012021ull, 5387256572774191843ull}},
+ {{7484062566355596521ull, 5367131028336019255ull,
+ 17830894357417627122ull, 6734070715967739804ull}},
+ {{4743392189517107747ull, 15932285822274799877ull,
+ 3841873873062482286ull, 8417588394959674756ull}},
+ {{5270463127661886294ull, 5345992620494362019ull,
+ 11624543207518827237ull, 5260992746849796722ull}},
+ {{1976392891149969963ull, 11294176794045340428ull,
+ 5307306972543758238ull, 6576240933562245903ull}},
+ {{2470491113937462454ull, 4894348955701899727ull,
+ 2022447697252309894ull, 8220301166952807379ull}},
+ {{8461585973851995890ull, 16894026152595851041ull,
+ 17404930875278551347ull, 5137688229345504611ull}},
+ {{15188668485742382766ull, 16505846672317425897ull,
+ 17144477575670801280ull, 6422110286681880764ull}},
+ {{5150777551895814746ull, 2185564266687230756ull,
+ 2983852895878949985ull, 8027637858352350956ull}},
+ {{12442608006789660024ull, 12895192712747988982ull,
+ 11088280096779119548ull, 5017273661470219347ull}},
+ {{6329887971632299222ull, 16118990890934986228ull,
+ 9248664102546511531ull, 6271592076837774184ull}},
+ {{7912359964540374027ull, 15537052595241344881ull,
+ 11560830128183139414ull, 7839490096047217730ull}},
+ {{16474440023906203527ull, 5098971853598452646ull,
+ 11837204848541850038ull, 4899681310029511081ull}},
+ {{11369677993027978601ull, 15597086853852841616ull,
+ 961448005395148835ull, 6124601637536888852ull}},
+ {{14212097491284973251ull, 14884672548888664116ull,
+ 1201810006743936044ull, 7655752046921111065ull}},
+ {{18105932968907884090ull, 79548306200639264ull,
+ 12280346300283429788ull, 4784845029325694415ull}},
+ {{4185672137425303497ull, 99435382750799081ull, 10738746856926899331ull,
+ 5981056286657118019ull}},
+ {{9843776190209017275ull, 13959352283720662563ull,
+ 8811747552731236259ull, 7476320358321397524ull}},
+ {{3846517109666941845ull, 6418752168111720150ull,
+ 14730714257311798470ull, 4672700223950873452ull}},
+ {{14031518423938453114ull, 17246812246994425995ull,
+ 18413392821639748087ull, 5840875279938591815ull}},
+ {{12927712011495678488ull, 16946829290315644590ull,
+ 18405055008622297205ull, 7301094099923239769ull}},
+ {{6936267977514822302ull, 7348478557612392026ull,
+ 9171260705495707795ull, 9126367624904049712ull}},
+ {{8946853504374151843ull, 2286956089294051064ull,
+ 5732037940934817372ull, 5703979765565031070ull}},
+ {{11183566880467689804ull, 2858695111617563830ull,
+ 16388419463023297523ull, 7129974706956288837ull}},
+ {{4756086563729836446ull, 17408426944804118500ull,
+ 6650466273496958191ull, 8912468383695361047ull}},
+ {{12195926139185923587ull, 17797795868143655918ull,
+ 11074070448576680725ull, 5570292739809600654ull}},
+ {{6021535637127628676ull, 8412186779897406186ull,
+ 4619216023866075099ull, 6962865924762000818ull}},
+ {{16750291583264311653ull, 5903547456444369828ull,
+ 14997392066687369682ull, 8703582405952501022ull}},
+ {{1245560202685418975ull, 8301403178705119047ull,
+ 4761684023252218147ull, 5439739003720313139ull}},
+ {{15392008308638937431ull, 5765067954954010904ull,
+ 1340419010637884780ull, 6799673754650391424ull}},
+ {{793266312089120172ull, 7206334943692513631ull, 1675523763297355975ull,
+ 8499592193312989280ull}},
+ {{7413320472696781964ull, 11421488367448902875ull,
+ 1047202352060847484ull, 5312245120820618300ull}},
+ {{4654964572443589551ull, 14276860459311128594ull,
+ 1309002940076059355ull, 6640306401025772875ull}},
+ {{15042077752409262746ull, 13234389555711522838ull,
+ 15471311730377237906ull, 8300383001282216093ull}},
+ {{4789612576828401313ull, 12883179490747089678ull,
+ 11975412840699467643ull, 5187739375801385058ull}},
+ {{15210387757890277449ull, 11492288345006474193ull,
+ 5745894014019558746ull, 6484674219751731323ull}},
+ {{5177926642080683099ull, 5141988394403316934ull,
+ 2570681499097060529ull, 8105842774689664154ull}},
+ {{17071262206582590649ull, 14742957792570542843ull,
+ 6218361955363050734ull, 5066151734181040096ull}},
+ {{16727391739800850407ull, 9205325203858402746ull,
+ 7772952444203813418ull, 6332689667726300120ull}},
+ {{11685867637896287201ull, 2283284467968227625ull,
+ 9716190555254766773ull, 7915862084657875150ull}},
+ {{386138246044097645ull, 3732895801693836218ull, 1460933078606841329ull,
+ 4947413802911171969ull}},
+ {{9706044844409897864ull, 9277805770544683176ull,
+ 6437852366685939565ull, 6184267253638964961ull}},
+ {{12132556055512372329ull, 16208943231608241874ull,
+ 12659001476784812360ull, 7730334067048706201ull}},
+ {{12194533553122620610ull, 10130589519755151171ull,
+ 994346895349425869ull, 4831458791905441376ull}},
+ {{10631480922975887858ull, 17274922918121326868ull,
+ 1242933619186782336ull, 6039323489881801720ull}},
+ {{13289351153719859823ull, 3146909573942106969ull,
+ 1553667023983477921ull, 7549154362352252150ull}},
+ {{1388315443433830534ull, 13496033529782286616ull,
+ 14806099945271837412ull, 4718221476470157593ull}},
+ {{1735394304292288167ull, 16870041912227858270ull,
+ 4672566876307633053ull, 5897776845587696992ull}},
+ {{11392614917220136016ull, 7252494335002659125ull,
+ 5840708595384541317ull, 7372221056984621240ull}},
+ {{405710591243006308ull, 13677303937180711811ull,
+ 7300885744230676646ull, 9215276321230776550ull}},
+ {{16394470184022736607ull, 3936628942310556977ull,
+ 18398111645426336616ull, 5759547700769235343ull}},
+ {{6658029674746257046ull, 4920786177888196222ull,
+ 18385953538355532866ull, 7199434625961544179ull}},
+ {{17545909130287597116ull, 15374354759215021085ull,
+ 18370755904517028178ull, 8999293282451930224ull}},
+ {{13272036215643442150ull, 14220657742936776082ull,
+ 11481722440323142611ull, 5624558301532456390ull}},
+ {{7366673232699526879ull, 13164136160243582199ull,
+ 5128781013549152456ull, 7030697876915570488ull}},
+ {{4596655522447020695ull, 16455170200304477749ull,
+ 6410976266936440570ull, 8788372346144463110ull}},
+ {{5178752710743081886ull, 14896167393617686497ull,
+ 17841918222117439068ull, 5492732716340289443ull}},
+ {{11085126906856240262ull, 173465168312556505ull,
+ 17690711759219410932ull, 6865915895425361804ull}},
+ {{21350578288136615ull, 216831460390695632ull, 3666645625314712049ull,
+ 8582394869281702256ull}},
+ {{13344111430085385ull, 11664734708812654530ull, 2291653515821695030ull,
+ 5363996793301063910ull}},
+ {{9240052176142382539ull, 5357546349161042354ull,
+ 12087938931631894596ull, 6704995991626329887ull}},
+ {{2326693183323202365ull, 6696932936451302943ull,
+ 10498237646112480341ull, 8381244989532912359ull}},
+ {{8371712267218083334ull, 6491426094495758291ull,
+ 13478927556461382069ull, 5238278118458070224ull}},
+ {{5852954315595216264ull, 12725968636547085768ull,
+ 16848659445576727586ull, 6547847648072587780ull}},
+ {{7316192894494020330ull, 6684088758829081402ull,
+ 2614080233261357867ull, 8184809560090734726ull}},
+ {{9184306577486150610ull, 1871712465054481924ull,
+ 15468858201070512379ull, 5115505975056709203ull}},
+ {{11480383221857688263ull, 16174698636600266117ull,
+ 14724386732910752569ull, 6394382468820886504ull}},
+ {{515420972039946616ull, 6383315240468168935ull,
+ 18405483416138440712ull, 7992978086026108130ull}},
+ {{7239667135166048491ull, 3989572025292605584ull,
+ 16115113153513913349ull, 4995611303766317581ull}},
+ {{9049583918957560614ull, 9598651050043144884ull,
+ 6308833386610227974ull, 6244514129707896977ull}},
+ {{11311979898696950767ull, 2774941775699155297ull,
+ 12497727751690172872ull, 7805642662134871221ull}},
+ {{152458409044512374ull, 1734338609811972061ull,
+ 10116922854020051997ull, 4878526663834294513ull}},
+ {{4802259029733028371ull, 6779609280692352980ull,
+ 17257839585952452900ull, 6098158329792868141ull}},
+ {{6002823787166285464ull, 8474511600865441225ull,
+ 7737241427158402413ull, 7622697912241085177ull}},
+ {{15280979913047398175ull, 7602412759754594717ull,
+ 16364990938042471268ull, 4764186195150678235ull}},
+ {{5266166836027084007ull, 9503015949693243397ull,
+ 15844552654125701181ull, 5955232743938347794ull}},
+ {{11194394563461242912ull, 16490455955543942150ull,
+ 10582318780802350668ull, 7444040929922934743ull}},
+ {{2384810583735888916ull, 1083162935360188036ull,
+ 13531478265642551024ull, 4652525581201834214ull}},
+ {{2981013229669861145ull, 1353953669200235045ull,
+ 7690975795198412972ull, 5815656976502292768ull}},
+ {{8337952555514714336ull, 1692442086500293806ull,
+ 9613719743998016215ull, 7269571220627865960ull}},
+ {{1199068657538617111ull, 15950610663407530970ull,
+ 12017149679997520268ull, 9086964025784832450ull}},
+ {{5361103929389023599ull, 745759627774931048ull,
+ 12122404568425838072ull, 5679352516115520281ull}},
+ {{6701379911736279498ull, 932199534718663810ull, 1317947655250133878ull,
+ 7099190645144400352ull}},
+ {{17600096926525125181ull, 10388621455253105570ull,
+ 1647434569062667347ull, 8873988306430500440ull}},
+ {{15611746597505591142ull, 4187045400319497029ull,
+ 1029646605664167092ull, 5546242691519062775ull}},
+ {{5679625191599825216ull, 5233806750399371287ull,
+ 15122116312362372577ull, 6932803364398828468ull}},
+ {{2487845471072393615ull, 11153944456426602013ull,
+ 455901316743414105ull, 8666004205498535586ull}},
+ {{3860746428633939962ull, 53686257625544402ull, 4896624341392021720ull,
+ 5416252628436584741ull}},
+ {{14049305072647200760ull, 67107822031930502ull,
+ 10732466445167415054ull, 6770315785545730926ull}},
+ {{8338259303954225142ull, 9307256814394688936ull,
+ 4192211019604493009ull, 8462894731932163658ull}},
+ {{5211412064971390714ull, 17346250555065150345ull,
+ 7231817905680196034ull, 5289309207457602286ull}},
+ {{11125951099641626296ull, 12459441156976662123ull,
+ 18263144418955020851ull, 6611636509322002857ull}},
+ {{9295752856124644966ull, 10962615427793439750ull,
+ 8993872468411612352ull, 8264545636652503572ull}},
+ {{1198159516650515200ull, 6851634642370899844ull,
+ 14844542329612033528ull, 5165341022907814732ull}},
+ {{1497699395813144000ull, 8564543302963624805ull, 108933838305490294ull,
+ 6456676278634768416ull}},
+ {{6483810263193817904ull, 1482307091849755198ull, 136167297881862868ull,
+ 8070845348293460520ull}},
+ {{17887439469778299902ull, 10149813969260872806ull,
+ 85104561176164292ull, 5044278342683412825ull}},
+ {{13135927300368099070ull, 12687267461576091008ull,
+ 4718066719897593269ull, 6305347928354266031ull}},
+ {{16419909125460123837ull, 2024026271687950048ull,
+ 1285897381444603683ull, 7881684910442832539ull}},
+ {{10262443203412577398ull, 17405917484300826444ull,
+ 16944586927898734965ull, 4926053069026770336ull}},
+ {{12828054004265721748ull, 7922338800093869343ull,
+ 2733989586163867091ull, 6157566336283462921ull}},
+ {{11423381486904764280ull, 5291237481689948775ull,
+ 8029173001132221768ull, 7696957920354328651ull}},
+ {{14057142456956559531ull, 3307023426056217984ull,
+ 2712390116493944653ull, 4810598700221455407ull}},
+ {{17571428071195699414ull, 8745465300997660384ull,
+ 17225545700899594528ull, 6013248375276819258ull}},
+ {{3517541015285072652ull, 10931831626247075481ull,
+ 12308560089269717352ull, 7516560469096024073ull}},
+ {{13727678180621640167ull, 6832394766404422175ull,
+ 775321028152491489ull, 4697850293185015046ull}},
+ {{12547911707349662305ull, 13152179476432915623ull,
+ 10192523322045390169ull, 5872312866481268807ull}},
+ {{11073203615759689977ull, 2605166290258980817ull,
+ 8128968134129349808ull, 7340391083101586009ull}},
+ {{6446464417448760ull, 3256457862823726022ull, 14772896186089075164ull,
+ 9175488853876982511ull}},
+ {{13839087095543069187ull, 11258658201119604571ull,
+ 16150589143946753833ull, 5734680533673114069ull}},
+ {{12687172851001448579ull, 238264696117342002ull,
+ 6353178374651278580ull, 7168350667091392587ull}},
+ {{6635594026897034916ull, 297830870146677503ull, 3329786949886710321ull,
+ 8960438333864240734ull}},
+ {{11064775294451728679ull, 11715359339910143199ull,
+ 15916174898961357662ull, 5600273958665150458ull}},
+ {{9219283099637272944ull, 5420827138032903191ull,
+ 10671846586846921270ull, 7000342448331438073ull}},
+ {{6912417856119203276ull, 15999405959395904797ull,
+ 17951494251986039491ull, 8750428060414297591ull}},
+ {{6626104169288196000ull, 7693785715408746546ull,
+ 18137212935132356538ull, 5469017537758935994ull}},
+ {{17506002248465020808ull, 393860107406157374ull,
+ 13448144132060669865ull, 6836271922198669993ull}},
+ {{12659130773726500202ull, 5104011152685084622ull,
+ 2975122109793673619ull, 8545339902748337492ull}},
+ {{3300270715151674722ull, 884163961214483937ull,
+ 11082823355475821820ull, 5340837439217710932ull}},
+ {{8737024412366981307ull, 1105204951518104921ull,
+ 13853529194344777275ull, 6676046799022138665ull}},
+ {{15532966533886114537ull, 15216564244679794863ull,
+ 3481853437648807881ull, 8345058498777673332ull}},
+ {{16625633111319903442ull, 2592823625283789933ull,
+ 11399530435385280734ull, 5215661561736045832ull}},
+ {{6946983333867715590ull, 12464401568459513225ull,
+ 14249413044231600917ull, 6519576952170057290ull}},
+ {{13295415185762032392ull, 1745443905292227819ull,
+ 8588394268434725339ull, 8149471190212571613ull}},
+ {{6003791481887576293ull, 17231803505303500051ull,
+ 7673589426985397288ull, 5093419493882857258ull}},
+ {{2893053333932082462ull, 3093010307919823448ull, 368614746876970803ull,
+ 6366774367353571573ull}},
+ {{3616316667415103078ull, 17701320940181943022ull,
+ 5072454452023601407ull, 7958467959191964466ull}},
+ {{16095255972416603136ull, 17980854615254796244ull,
+ 7781970050942138783ull, 4974042474494977791ull}},
+ {{1672325891811202303ull, 17864382250641107402ull,
+ 5115776545250285575ull, 6217553093118722239ull}},
+ {{11313779401618778687ull, 17718791794873996348ull,
+ 1783034663135469065ull, 7771941366398402799ull}},
+ {{16294484162866512488ull, 4156715844155165861ull,
+ 8031925692100750022ull, 4857463353999001749ull}},
+ {{6533047148300976897ull, 14419266842048733135ull,
+ 14651593133553325431ull, 6071829192498752186ull}},
+ {{3554622916948833218ull, 13412397534133528515ull,
+ 9091119380086880981ull, 7589786490623440233ull}},
+ {{18362540387588878425ull, 10688591468047149273ull,
+ 17211164658622770373ull, 4743616556639650145ull}},
+ {{9118117429203934319ull, 17972425353486324496ull,
+ 7678897767996299254ull, 5929520695799562682ull}},
+ {{11397646786504917899ull, 13242159655003129812ull,
+ 375250173140598260ull, 7411900869749453353ull}},
+ {{16346901278420349495ull, 17499721821231731940ull,
+ 11763746404281343672ull, 4632438043593408345ull}},
+ {{1986882524315885253ull, 3427908202830113310ull, 869624950069515879ull,
+ 5790547554491760432ull}},
+ {{11706975192249632374ull, 18119943308819805349ull,
+ 1087031187586894848ull, 7238184443114700540ull}},
+ {{798660935029876755ull, 4203185062315205071ull, 1358788984483618561ull,
+ 9047730553893375675ull}},
+ {{7416692112034754828ull, 14156205710015472929ull,
+ 16990144179798119264ull, 5654831596183359796ull}},
+ {{13882551158470831439ull, 17695257137519341161ull,
+ 2790936151038097464ull, 7068539495229199746ull}},
+ {{3518130892806375587ull, 3672327348189624836ull,
+ 12712042225652397639ull, 8835674369036499682ull}},
+ {{11422203844858760550ull, 9212733620259597378ull,
+ 12556712409460136428ull, 5522296480647812301ull}},
+ {{5054382769218674879ull, 11515917025324496723ull,
+ 1860832456543006823ull, 6902870600809765377ull}},
+ {{1706292443095955695ull, 9783210263228233000ull,
+ 6937726589106146433ull, 8628588251012206721ull}},
+ {{1066432776934972310ull, 17643721460586115385ull,
+ 15865294164259811280ull, 5392867656882629200ull}},
+ {{5944726989596103291ull, 3607907752023092615ull,
+ 1384873631615212485ull, 6741084571103286501ull}},
+ {{2819222718567741209ull, 9121570708456253673ull,
+ 6342778057946403510ull, 8426355713879108126ull}},
+ {{13291229245173308016ull, 1089295674357770641ull,
+ 17799294341498665906ull, 5266472321174442578ull}},
+ {{2778978501184471308ull, 10584991629801989110ull,
+ 13025745890018556574ull, 6583090401468053223ull}},
+ {{12697095163335364943ull, 4007867500397710579ull,
+ 11670496344095807814ull, 8228863001835066529ull}},
+ {{5629841467870909137ull, 16339975243030732824ull,
+ 376531187418798027ull, 5143039376146916581ull}},
+ {{7037301834838636422ull, 15813283035361028126ull,
+ 5082350002700885438ull, 6428799220183645726ull}},
+ {{18019999330403071335ull, 10543231757346509349ull,
+ 15576309540230882606ull, 8035999025229557157ull}},
+ {{13568342590715613537ull, 1977833829914180439ull,
+ 12041036471857995581ull, 5022499390768473223ull}},
+ {{12348742219967129017ull, 7083978305820113453ull,
+ 10439609571395106572ull, 6278124238460591529ull}},
+ {{1600869719676747559ull, 8854972882275141817ull,
+ 17661197982671271119ull, 7847655298075739411ull}},
+ {{12529758620866436984ull, 12451887079063045491ull,
+ 8732405729955850497ull, 4904784561297337132ull}},
+ {{11050512257655658326ull, 1729800793546643152ull,
+ 10915507162444813122ull, 6130980701621671415ull}},
+ {{13813140322069572908ull, 11385623028788079748ull,
+ 9032697934628628498ull, 7663725877027089269ull}},
+ {{17856584738148258876ull, 11727700411419937746ull,
+ 7951279218356586763ull, 4789828673141930793ull}},
+ {{13097358885830547786ull, 10047939495847534279ull,
+ 14550785041373121358ull, 5987285841427413491ull}},
+ {{11760012588860796829ull, 3336552332954642041ull,
+ 13576795283289013794ull, 7484107301784266864ull}},
+ {{432478840396916162ull, 6697031226524039180ull, 8485497052055633621ull,
+ 4677567063615166790ull}},
+ {{540598550496145203ull, 12982975051582436879ull,
+ 1383499278214766218ull, 5846958829518958488ull}},
+ {{14510806243402345215ull, 7005346777623270290ull,
+ 1729374097768457773ull, 7308698536898698110ull}},
+ {{8915135767398155711ull, 13368369490456475767ull,
+ 11385089659065348024ull, 9135873171123372637ull}},
+ {{12489488882264929175ull, 8355230931535297354ull,
+ 9421524046129536467ull, 5709920731952107898ull}},
+ {{6388489065976385661ull, 5832352645991733789ull,
+ 2553533020807144776ull, 7137400914940134873ull}},
+ {{12597297350897869980ull, 7290440807489667236ull,
+ 7803602294436318874ull, 8921751143675168591ull}},
+ {{17096682881165944546ull, 9168211523108429926ull,
+ 11794780461663781152ull, 5576094464796980369ull}},
+ {{12147481564602654874ull, 11460264403885537408ull,
+ 908417521797562728ull, 6970118080996225462ull}},
+ {{15184351955753318593ull, 14325330504856921760ull,
+ 10358893939101729218ull, 8712647601245281827ull}},
+ {{9490219972345824121ull, 13565017583962964004ull,
+ 4168465702724886809ull, 5445404750778301142ull}},
+ {{11862774965432280151ull, 3121213924671541293ull,
+ 14433954165260884320ull, 6806755938472876427ull}},
+ {{993410651508186476ull, 3901517405839426617ull,
+ 13430756688148717496ull, 8508444923091095534ull}},
+ {{12150096703261086308ull, 2438448378649641635ull,
+ 3782536911665560531ull, 5317778076931934709ull}},
+ {{10575934860648969981ull, 16883118528594215756ull,
+ 9339857158009338567ull, 6647222596164918386ull}},
+ {{13219918575811212476ull, 16492212142315381791ull,
+ 2451449410656897401ull, 8309028245206147983ull}},
+ {{15179978137523089653ull, 3390103561306031763ull,
+ 8449684909301642732ull, 5193142653253842489ull}},
+ {{14363286653476474163ull, 4237629451632539704ull,
+ 15173792155054441319ull, 6491428316567303111ull}},
+ {{17954108316845592703ull, 685350796113286726ull,
+ 14355554175390663745ull, 8114285395709128889ull}},
+ {{6609631679601107536ull, 11957559293639273964ull,
+ 2054692331978082984ull, 5071428372318205556ull}},
+ {{8262039599501384419ull, 14946949117049092455ull,
+ 2568365414972603730ull, 6339285465397756945ull}},
+ {{5715863480949342620ull, 9460314359456589761ull,
+ 7822142787143142567ull, 7924106831747196181ull}},
+ {{15101629721661808898ull, 12830225502301450456ull,
+ 7194682251178158056ull, 4952566769841997613ull}},
+ {{430293078367709506ull, 16037781877876813071ull,
+ 13605038832400085474ull, 6190708462302497016ull}},
+ {{14372924403241800595ull, 10823855310491240530ull,
+ 17006298540500106843ull, 7738385577878121270ull}},
+ {{13594763770453513276ull, 4459066559843331379ull,
+ 6017250569385178873ull, 4836490986173825794ull}},
+ {{12381768694639503691ull, 10185519218231552128ull,
+ 16744935248586249399ull, 6045613732717282242ull}},
+ {{15477210868299379613ull, 8120213004362052256ull,
+ 11707797023878035941ull, 7557017165896602803ull}},
+ {{9673256792687112258ull, 7380976136939976612ull,
+ 5011530130710078511ull, 4723135728685376752ull}},
+ {{12091570990858890323ull, 4614534152747582861ull,
+ 6264412663387598139ull, 5903919660856720940ull}},
+ {{1279405683291449191ull, 1156481672507090673ull,
+ 7830515829234497674ull, 7379899576070901175ull}},
+ {{12328843598125625505ull, 5334487063744319574ull,
+ 11811601420912642902ull, 4612437235044313234ull}},
+ {{6187682460802256073ull, 15891480866535175276ull,
+ 5541129739286027819ull, 5765546543805391543ull}},
+ {{7734603076002820091ull, 15252665064741581191ull,
+ 2314726155680146870ull, 7206933179756739429ull}},
+ {{5056567826576137210ull, 9842459294072200681ull,
+ 7505093713027571492ull, 9008666474695924286ull}},
+ {{14689569937678555516ull, 15374909095649901233ull,
+ 78997552214844278ull, 5630416546684952679ull}},
+ {{4526904366816030683ull, 9995264332707600734ull,
+ 13933804995550719060ull, 7038020683356190848ull}},
+ {{14882002495374814162ull, 12494080415884500917ull,
+ 17417256244438398825ull, 8797525854195238560ull}},
+ {{11607094568822952803ull, 891271232286731217ull,
+ 10885785152773999266ull, 5498453658872024100ull}},
+ {{673810155746527292ull, 10337461077213189830ull,
+ 13607231440967499082ull, 6873067073590030125ull}},
+ {{10065634731537934923ull, 3698454309661711479ull,
+ 3173981245927210141ull, 8591333841987537657ull}},
+ {{13208550734852291183ull, 4617376952752263626ull,
+ 13512953324772976098ull, 5369583651242211035ull}},
+ {{7287316381710588171ull, 14995093227795105341ull,
+ 12279505637538832218ull, 6711979564052763794ull}},
+ {{13720831495565623117ull, 9520494497889105868ull,
+ 6126010010068764465ull, 8389974455065954743ull}},
+ {{17798891721583290256ull, 17479524107249160927ull,
+ 10746285283934059646ull, 5243734034416221714ull}},
+ {{17636928633551724916ull, 12626033097206675351ull,
+ 4209484568062798750ull, 6554667543020277143ull}},
+ {{17434474773512268241ull, 6559169334653568381ull,
+ 650169691651110534ull, 8193334428775346429ull}},
+ {{13202389742658861603ull, 17934538889440643950ull,
+ 2712199066495638035ull, 5120834017984591518ull}},
+ {{7279615141468801196ull, 17806487593373417034ull,
+ 12613620869974323352ull, 6401042522480739397ull}},
+ {{18322890963690777303ull, 3811365418007219676ull,
+ 1931968032185740479ull, 8001303153100924247ull}},
+ {{2228434815451960006ull, 9299632413895594154ull,
+ 8125009047757169655ull, 5000814470688077654ull}},
+ {{12008915556169725816ull, 7012854498942104788ull,
+ 932889272841686261ull, 6251018088360097068ull}},
+ {{15011144445212157269ull, 13377754142105018889ull,
+ 1166111591052107826ull, 7813772610450121335ull}},
+ {{2464436250616516438ull, 12972782357243024710ull,
+ 7646348772048649247ull, 4883607881531325834ull}},
+ {{12303917350125421355ull, 11604291928126392983ull,
+ 334563928206035751ull, 6104509851914157293ull}},
+ {{10768210669229388789ull, 9893678891730603325ull,
+ 5029890928684932593ull, 7630637314892696616ull}},
+ {{9035974677482061946ull, 17712764353400096838ull,
+ 3143681830428082870ull, 4769148321807935385ull}},
+ {{2071596309997801624ull, 12917583404895345240ull,
+ 8541288306462491492ull, 5961435402259919231ull}},
+ {{2589495387497252030ull, 16146979256119181550ull,
+ 6064924364650726461ull, 7451794252824899039ull}},
+ {{15453492672467946231ull, 12397705044288182420ull,
+ 10708106755547785894ull, 4657371408015561899ull}},
+ {{870121766875381172ull, 6273759268505452218ull, 8773447426007344464ull,
+ 5821714260019452374ull}},
+ {{10311024245449002273ull, 7842199085631815272ull,
+ 1743437245654404772ull, 7277142825024315468ull}},
+ {{12888780306811252842ull, 9802748857039769090ull,
+ 2179296557068005965ull, 9096428531280394335ull}},
+ {{12667173710184420930ull, 8432561044863549633ull,
+ 8279589375808585584ull, 5685267832050246459ull}},
+ {{1998909082448362451ull, 10540701306079437042ull,
+ 5737800701333344076ull, 7106584790062808074ull}},
+ {{11722008389915228871ull, 13175876632599296302ull,
+ 16395622913521455903ull, 8883230987578510092ull}},
+ {{2714569225269630141ull, 15152451923015642045ull,
+ 1023892284096134131ull, 5552019367236568808ull}},
+ {{8004897550014425580ull, 14328878885342164652ull,
+ 1279865355120167664ull, 6940024209045711010ull}},
+ {{10006121937518031974ull, 17911098606677705815ull,
+ 10823203730754985388ull, 8675030261307138762ull}},
+ {{13171355238589851840ull, 1971064592318790326ull,
+ 11376188350149253772ull, 5421893913316961726ull}},
+ {{7240822011382538992ull, 2463830740398487908ull,
+ 4996863400831791407ull, 6777367391646202158ull}},
+ {{9051027514228173740ull, 16914846480780273597ull,
+ 15469451287894515066ull, 8471709239557752697ull}},
+ {{7962735205606302540ull, 15183465068915058902ull,
+ 2750878027292990060ull, 5294818274723595436ull}},
+ {{730046970153102366ull, 532587262434272012ull, 3438597534116237576ull,
+ 6618522843404494295ull}},
+ {{912558712691377958ull, 665734078042840015ull, 18133304972927460682ull,
+ 8273153554255617868ull}},
+ {{7487878223073193080ull, 5027769817204162913ull,
+ 2109943571224887118ull, 5170720971409761168ull}},
+ {{13971533797268879254ull, 15508084308359979449ull,
+ 2637429464031108897ull, 6463401214262201460ull}},
+ {{3629359191303935355ull, 5550047330167810600ull,
+ 3296786830038886122ull, 8079251517827751825ull}},
+ {{2268349494564959597ull, 8080465599782269529ull,
+ 13589706814842773586ull, 5049532198642344890ull}},
+ {{7447122886633587400ull, 877209962873061103ull, 7763761481698691175ull,
+ 6311915248302931113ull}},
+ {{4697217589864596346ull, 14931570508873490091ull,
+ 14316387870550751872ull, 7889894060378663891ull}},
+ {{629917984451678765ull, 9332231568045931307ull, 6641899409880525968ull,
+ 4931183787736664932ull}},
+ {{14622455535846762168ull, 11665289460057414133ull,
+ 8302374262350657460ull, 6163979734670831165ull}},
+ {{4443011364526288997ull, 14581611825071767667ull,
+ 14989653846365709729ull, 7704974668338538956ull}},
+ {{471039093615236672ull, 2195978363028772936ull, 145161617123792773ull,
+ 4815609167711586848ull}},
+ {{588798867019045839ull, 7356658972213354074ull, 181452021404740966ull,
+ 6019511459639483560ull}},
+ {{9959370620628583107ull, 18419195752121468400ull,
+ 226815026755926207ull, 7524389324549354450ull}},
+ {{6224606637892864442ull, 18429526372716999606ull,
+ 4753445410149841783ull, 4702743327843346531ull}},
+ {{17004130334220856360ull, 18425221947468861603ull,
+ 1330120744259914325ull, 5878429159804183164ull}},
+ {{16643476899348682546ull, 9196469379053913292ull,
+ 1662650930324892907ull, 7348036449755228955ull}},
+ {{2357602050476301567ull, 6883900705390003712ull,
+ 15913371718188279846ull, 9185045562194036193ull}},
+ {{1473501281547688480ull, 18137495996150916032ull,
+ 3028328296226593047ull, 5740653476371272621ull}},
+ {{1841876601934610599ull, 18060183976761257136ull,
+ 8397096388710629213ull, 7175816845464090776ull}},
+ {{2302345752418263249ull, 8740171915669407708ull,
+ 10496370485888286517ull, 8969771056830113470ull}},
+ {{10662338132116190339ull, 7768450456507073769ull,
+ 1948545535252791169ull, 5606106910518820919ull}},
+ {{17939608683572625827ull, 14322249089061230115ull,
+ 16270739974348152673ull, 7007633638148526148ull}},
+ {{17812824836038394380ull, 4067753306044373932ull,
+ 1891680894225639226ull, 8759542047685657686ull}},
+ {{1909643485669220680ull, 7154031834705121612ull,
+ 15017358614173188228ull, 5474713779803536053ull}},
+ {{2387054357086525850ull, 8942539793381402015ull,
+ 4936640212434321573ull, 6843392224754420067ull}},
+ {{16818876001640321024ull, 15789860760154140422ull,
+ 1559114247115514062ull, 8554240280943025084ull}},
+ {{5900111482597812736ull, 5256976956668949860ull,
+ 10197818441301972097ull, 5346400175589390677ull}},
+ {{7375139353247265920ull, 11182907214263575229ull,
+ 17358959070054853025ull, 6683000219486738346ull}},
+ {{13830610209986470304ull, 143575962547305324ull,
+ 12475326800713790474ull, 8353750274358422933ull}},
+ {{17867503418096319748ull, 4701420995019453731ull,
+ 10102922259659812998ull, 5221093921474014333ull}},
+ {{17722693254193011781ull, 15100148280629092972ull,
+ 17240338843002154151ull, 6526367401842517916ull}},
+ {{3706622494031713110ull, 14263499332358978312ull,
+ 3103679480043141073ull, 8157959252303147396ull}},
+ {{2316639058769820694ull, 1997158055083279589ull,
+ 11163171711881738979ull, 5098724532689467122ull}},
+ {{7507484841889663771ull, 16331505624136263198ull,
+ 4730592602997397915ull, 6373405665861833903ull}},
+ {{160984015507303906ull, 15802696011742941094ull,
+ 1301554735319359490ull, 7966757082327292379ull}},
+ {{13935673064974228654ull, 14488371025766726087ull,
+ 16954372774070457345ull, 4979223176454557736ull}},
+ {{12807905312790397913ull, 4275405726926243897ull,
+ 2746221893878520066ull, 6224028970568197171ull}},
+ {{2174823585705833679ull, 14567629195512580680ull,
+ 17267835422630313794ull, 7780036213210246463ull}},
+ {{1359264741066146049ull, 13716454265622750829ull,
+ 17709926166785027977ull, 4862522633256404039ull}},
+ {{6310766944760070466ull, 3310509776746274824ull,
+ 17525721690053897068ull, 6078153291570505049ull}},
+ {{7888458680950088082ull, 4138137220932843530ull,
+ 8072094057285207623ull, 7597691614463131312ull}},
+ {{9541972694021192955ull, 9503864790724109062ull,
+ 5045058785803254764ull, 4748557259039457070ull}},
+ {{2704093830671715386ull, 11879830988405136328ull,
+ 15529695519108844263ull, 5935696573799321337ull}},
+ {{3380117288339644233ull, 10238102717079032506ull,
+ 5577061343603891617ull, 7419620717249151672ull}},
+ {{6724259323639665550ull, 17928029244242865076ull,
+ 3485663339752432260ull, 4637262948280719795ull}},
+ {{8405324154549581937ull, 3963292481594029729ull,
+ 18192137229972704038ull, 5796578685350899743ull}},
+ {{15118341211614365325ull, 14177487638847312969ull,
+ 18128485519038492143ull, 7245723356688624679ull}},
+ {{5062868459235792944ull, 13110173530131753308ull,
+ 18048920880370727275ull, 9057154195860780849ull}},
+ {{12387664823877146398ull, 5888015447118651865ull,
+ 4363046522590622691ull, 5660721372412988031ull}},
+ {{1649522974564269286ull, 2748333290470926928ull, 842122134810890460ull,
+ 7075901715516235039ull}},
+ {{2061903718205336607ull, 3435416613088658660ull,
+ 14887710723795776787ull, 8844877144395293798ull}},
+ {{10512061860733111187ull, 18288036447676269326ull,
+ 4693133183944972587ull, 5528048215247058624ull}},
+ {{3916705289061613176ull, 18248359541167948754ull,
+ 5866416479931215734ull, 6910060269058823280ull}},
+ {{14119253648181792278ull, 13587077389605160134ull,
+ 7333020599914019668ull, 8637575336323529100ull}},
+ {{4212847511686232270ull, 17715295405358000892ull,
+ 13806509911801038100ull, 5398484585202205687ull}},
+ {{5266059389607790337ull, 3697375182987949499ull,
+ 12646451371323909722ull, 6748105731502757109ull}},
+ {{1970888218582350018ull, 13845091015589712682ull,
+ 1973006158872723440ull, 8435132164378446387ull}},
+ {{5843491155041356665ull, 8653181884743570426ull,
+ 17374029913791309814ull, 5271957602736528991ull}},
+ {{16527735980656471639ull, 1593105319074687224ull,
+ 17105851373811749364ull, 6589947003420661239ull}},
+ {{2212925902111037933ull, 1991381648843359031ull,
+ 16770628198837298801ull, 8237433754275826549ull}},
+ {{8300607716460480564ull, 12773828576595569154ull,
+ 12787485633487005702ull, 5148396096422391593ull}},
+ {{1152387608720824897ull, 6743913683889685635ull,
+ 2149298986576593416ull, 6435495120527989492ull}},
+ {{15275542566183194834ull, 8429892104862107043ull,
+ 2686623733220741770ull, 8044368900659986865ull}},
+ {{7241371094650802819ull, 9880368583966204806ull,
+ 13208354879331433366ull, 5027730562912491790ull}},
+ {{18275085905168279332ull, 3127088693102980199ull,
+ 7287071562309515900ull, 6284663203640614738ull}},
+ {{18232171363032961261ull, 3908860866378725249ull,
+ 18332211489741670683ull, 7855829004550768422ull}},
+ {{4477578074254518932ull, 137195032273009329ull, 6845946162661156273ull,
+ 4909893127844230264ull}},
+ {{10208658611245536569ull, 4783179808768649565ull,
+ 8557432703326445341ull, 6137366409805287830ull}},
+ {{17372509282484308615ull, 10590660779388199860ull,
+ 1473418842303280868ull, 7671708012256609788ull}},
+ {{1634446264697917077ull, 15842535023972400721ull,
+ 10144258813294326350ull, 4794817507660381117ull}},
+ {{6654743849299784250ull, 10579796743110725093ull,
+ 17292009535045295842ull, 5993521884575476396ull}},
+ {{12930115830052118216ull, 4001373892033630558ull,
+ 3168267845097068187ull, 7491902355719345496ull}},
+ {{3469636375355185981ull, 195015673307325147ull, 1980167403185667617ull,
+ 4682438972324590935ull}},
+ {{18172103524476146188ull, 4855455610061544337ull,
+ 16310267309264248233ull, 5853048715405738668ull}},
+ {{8880071350313019023ull, 10681005531004318326ull,
+ 1941090062870758675ull, 7316310894257173336ull}},
+ {{1876717151036497971ull, 8739570895328010004ull,
+ 2426362578588448344ull, 9145388617821466670ull}},
+ {{10396320256252587040ull, 5462231809580006252ull,
+ 15351534666899943927ull, 5715867886138416668ull}},
+ {{12995400320315733800ull, 2216103743547619911ull,
+ 742674259915378293ull, 7144834857673020836ull}},
+ {{11632564381967279346ull, 7381815697861912793ull,
+ 928342824894222866ull, 8931043572091276045ull}},
+ {{352823711088467735ull, 9225320829591083400ull, 2886057274772583243ull,
+ 5581902232557047528ull}},
+ {{441029638860584669ull, 6919965018561466346ull, 3607571593465729054ull,
+ 6977377790696309410ull}},
+ {{9774659085430506644ull, 17873328310056608740ull,
+ 13732836528686937125ull, 8721722238370386762ull}},
+ {{15332533965248842461ull, 13476673202999074414ull,
+ 13194708848856723607ull, 5451076398981491726ull}},
+ {{9942295419706277268ull, 12234155485321455114ull,
+ 7270014024216128701ull, 6813845498726864658ull}},
+ {{3204497237778070777ull, 1457636301369655181ull,
+ 18310889567124936685ull, 8517306873408580822ull}},
+ {{4308653782824988188ull, 3216865697569728440ull,
+ 6832619961025697524ull, 5323316795880363014ull}},
+ {{5385817228531235234ull, 4021082121962160550ull,
+ 17764146988136897713ull, 6654145994850453767ull}},
+ {{15955643572518819851ull, 9638038670880088591ull,
+ 17593497716743734237ull, 8317682493563067209ull}},
+ {{16889806260465344263ull, 8329617178513749321ull,
+ 4078407045323752042ull, 5198551558476917006ull}},
+ {{7277199770299516617ull, 1188649436287410844ull,
+ 14321380843509465861ull, 6498189448096146257ull}},
+ {{9096499712874395771ull, 6097497813786651459ull,
+ 4066667999104668614ull, 8122736810120182822ull}},
+ {{3379469311332803405ull, 17645994188898820874ull,
+ 16376725554722581595ull, 5076710506325114263ull}},
+ {{13447708676020780064ull, 17445806717696138188ull,
+ 15859220924975839090ull, 6345888132906392829ull}},
+ {{16809635845025975080ull, 12583886360265396927ull,
+ 5988968100937635151ull, 7932360166132991037ull}},
+ {{17423551430782316281ull, 14782458002806954935ull,
+ 6048948072299715921ull, 4957725103833119398ull}},
+ {{17167753270050507447ull, 4643014448226529957ull,
+ 16784557127229420710ull, 6197156379791399247ull}},
+ {{7624633532280970597ull, 15027140097137938255ull,
+ 16369010390609387983ull, 7746445474739249059ull}},
+ {{11682924985316688479ull, 16309491588352293265ull,
+ 7924788484917173537ull, 4841528421712030662ull}},
+ {{768598176363696887ull, 6551806430158202870ull, 682613569291691114ull,
+ 6051910527140038328ull}},
+ {{10184119757309396917ull, 17413130074552529395ull,
+ 853266961614613892ull, 7564888158925047910ull}},
+ {{4059231839104679121ull, 1659834259740555064ull,
+ 14368349906291297395ull, 4728055099328154943ull}},
+ {{5074039798880848901ull, 15909850879957857542ull,
+ 13348751364436733839ull, 5910068874160193679ull}},
+ {{15565921785455836934ull, 15275627581519934023ull,
+ 12074253187118529395ull, 7387586092700242099ull}},
+ {{16646230143550979940ull, 7241424229236264812ull,
+ 5240565232735386920ull, 4617241307937651312ull}},
+ {{2361043605729173309ull, 9051780286545331016ull,
+ 6550706540919233650ull, 5771551634922064140ull}},
+ {{2951304507161466636ull, 2091353321326887962ull,
+ 8188383176149042063ull, 7214439543652580175ull}},
+ {{12912502670806609103ull, 16449249706940773664ull,
+ 5623792951758914674ull, 9018049429565725219ull}},
+ {{8070314169254130690ull, 14892467085265371444ull,
+ 1209027585635627719ull, 5636280893478578262ull}},
+ {{10087892711567663362ull, 14003897838154326401ull,
+ 10734656518899310457ull, 7045351116848222827ull}},
+ {{17221551907886967106ull, 3669814242410744289ull,
+ 8806634630196750168ull, 8806688896060278534ull}},
+ {{3845940914788272586ull, 2293633901506715181ull, 892460625445580951ull,
+ 5504180560037674084ull}},
+ {{9419112161912728636ull, 16702100432165557688ull,
+ 1115575781806976188ull, 6880225700047092605ull}},
+ {{11773890202390910795ull, 2430881466497395494ull,
+ 6006155745686108140ull, 8600282125058865756ull}},
+ {{2746995358066931343ull, 10742672953415647992ull,
+ 12977219377908593395ull, 5375176328161791097ull}},
+ {{3433744197583664178ull, 8816655173342172086ull,
+ 2386466167103578032ull, 6718970410202238872ull}},
+ {{13515552283834356031ull, 11020818966677715107ull,
+ 2983082708879472540ull, 8398713012752798590ull}},
+ {{6141377168182778568ull, 16111383891028347750ull,
+ 15699484748331834049ull, 5249195632970499118ull}},
+ {{16900093497083249017ull, 6304171808503270975ull,
+ 10400983898560016754ull, 6561494541213123898ull}},
+ {{16513430852926673367ull, 17103586797483864527ull,
+ 3777857836345245134ull, 8201868176516404873ull}},
+ {{17238423310720252711ull, 6078055730000027425ull,
+ 13890376193784247969ull, 5126167610322753045ull}},
+ {{7712971083118152176ull, 12209255680927422186ull,
+ 3527912186948146249ull, 6407709512903441307ull}},
+ {{417841817042914412ull, 1426511545877114021ull,
+ 18244948288967346524ull, 8009636891129301633ull}},
+ {{2566994144865515460ull, 10114941753027972071ull,
+ 4485563652963509721ull, 5006023056955813521ull}},
+ {{17043800736364058037ull, 17255363209712352992ull,
+ 10218640584631775055ull, 6257528821194766901ull}},
+ {{2858006846745520930ull, 16957517993713053337ull,
+ 17384986749217106723ull, 7821911026493458626ull}},
+ {{13315469325284420341ull, 8292605736856964383ull,
+ 15477302736688079606ull, 4888694391558411641ull}},
+ {{12032650638178137523ull, 1142385134216429671ull,
+ 5511570365577935796ull, 6110867989448014552ull}},
+ {{10429127279295283999ull, 1427981417770537089ull,
+ 6889462956972419745ull, 7638584986810018190ull}},
+ {{18047419595628022260ull, 12421703432175055440ull,
+ 18140972403389926052ull, 4774115616756261368ull}},
+ {{4112530420825476208ull, 15527129290218819301ull,
+ 4229471430527855949ull, 5967644520945326711ull}},
+ {{9752349044459233164ull, 5573853557491360414ull, 675153269732432033ull,
+ 7459555651181658389ull}},
+ {{1483532134359632824ull, 15012873519500570019ull,
+ 2727813802796463972ull, 4662222281988536493ull}},
+ {{15689473223231704742ull, 319347825666160907ull,
+ 8021453271922967870ull, 5827777852485670616ull}},
+ {{15000155510612243023ull, 9622556818937476942ull,
+ 10026816589903709837ull, 7284722315607088270ull}},
+ {{9526822351410527971ull, 16639882042099234082ull,
+ 3310148700524861488ull, 9105902894508860338ull}},
+ {{10565949988058967886ull, 10399926276312021301ull,
+ 6680528956255426334ull, 5691189309068037711ull}},
+ {{17819123503501097761ull, 3776535808535250818ull,
+ 3738975176891895014ull, 7113986636335047139ull}},
+ {{13050532342521596393ull, 13944041797523839331ull,
+ 62032952687480863ull, 8892483295418808924ull}},
+ {{5850739704862303794ull, 15632555151093481438ull,
+ 9262142632284451347ull, 5557802059636755577ull}},
+ {{16536796667932655551ull, 14929007920439463893ull,
+ 16189364308782952088ull, 6947252574545944471ull}},
+ {{6835937779633655726ull, 214515826839778251ull,
+ 15625019367551302207ull, 8684065718182430589ull}},
+ {{1966618103057340877ull, 7051601419415943263ull,
+ 12071480113933257831ull, 5427541073864019118ull}},
+ {{16293330684103839808ull, 4202815755842541174ull,
+ 5865978105561796481ull, 6784426342330023898ull}},
+ {{11143291318275023952ull, 9865205713230564372ull,
+ 16555844668807021409ull, 8480532927912529872ull}},
+ {{16187929110776665778ull, 17694968616837572492ull,
+ 10347402918004388380ull, 5300333079945331170ull}},
+ {{1788167314761280607ull, 3671966697337414000ull,
+ 3710881610650709668ull, 6625416349931663963ull}},
+ {{2235209143451600758ull, 4589958371671767500ull, 26915994885999181ull,
+ 8281770437414579954ull}},
+ {{10620377751512026282ull, 5174566991508548639ull,
+ 4628508515231137392ull, 5176106523384112471ull}},
+ {{8663786170962644948ull, 6468208739385685799ull,
+ 1173949625611533836ull, 6470133154230140589ull}},
+ {{6218046695275918281ull, 8085260924232107249ull,
+ 6079123050441805199ull, 8087666442787675736ull}},
+ {{15415494230615918686ull, 11970817105286148886ull,
+ 3799451906526128249ull, 5054791526742297335ull}},
+ {{10045995751415122549ull, 1128463326325522396ull,
+ 137628864730272408ull, 6318489408427871669ull}},
+ {{12557494689268903187ull, 1410579157906902995ull,
+ 4783722099340228414ull, 7898111760534839586ull}},
+ {{5542591171579370540ull, 14716670028973978084ull,
+ 7601512330515030662ull, 4936319850334274741ull}},
+ {{6928238964474213175ull, 9172465499362696797ull,
+ 14113576431571176232ull, 6170399812917843426ull}},
+ {{13271984724020154372ull, 11465581874203370996ull,
+ 8418598502609194482ull, 7712999766147304283ull}},
+ {{17518362489367372291ull, 11777674689804494776ull,
+ 2955781054917052599ull, 4820624853842065177ull}},
+ {{3451209037999663747ull, 10110407343828230567ull,
+ 8306412337073703653ull, 6025781067302581471ull}},
+ {{18149069352781743396ull, 17249695198212676112ull,
+ 5771329402914741662ull, 7532226334128226839ull}},
+ {{11343168345488589623ull, 6169373480455534666ull,
+ 10524609904462795395ull, 4707641458830141774ull}},
+ {{4955588395005961220ull, 3100030832142030429ull,
+ 3932390343723718436ull, 5884551823537677218ull}},
+ {{10806171512184839429ull, 3875038540177538036ull,
+ 14138859966509423853ull, 7355689779422096522ull}},
+ {{13507714390231049286ull, 9455484193649310449ull,
+ 8450202921282004008ull, 9194612224277620653ull}},
+ {{1524792466253323948ull, 5909677621030819031ull,
+ 7587219835014946457ull, 5746632640173512908ull}},
+ {{15741048638098818647ull, 11998783044715911692ull,
+ 9484024793768683071ull, 7183290800216891135ull}},
+ {{1229566723913971693ull, 10386792787467501712ull,
+ 7243344973783465935ull, 8979113500271113919ull}},
+ {{768479202446232308ull, 13409274519808270426ull,
+ 11444619636255748065ull, 5611945937669446199ull}},
+ {{10183971039912566193ull, 2926535094478174320ull,
+ 9694088526892297178ull, 7014932422086807749ull}},
+ {{12729963799890707741ull, 12881540904952493708ull,
+ 16729296677042759376ull, 8768665527608509686ull}},
+ {{17179599411786468147ull, 8050963065595308567ull,
+ 5844124404724336706ull, 5480415954755318554ull}},
+ {{16862813246305697279ull, 840331795139359901ull,
+ 16528527542760196691ull, 6850519943444148192ull}},
+ {{7243458502599957887ull, 14885472799206363589ull,
+ 2213915354740694247ull, 8563149929305185241ull}},
+ {{6833004573338667631ull, 16220949527145059099ull,
+ 12912912142781403664ull, 5351968705815740775ull}},
+ {{3929569698245946635ull, 1829442835221772258ull,
+ 11529454160049366677ull, 6689960882269675969ull}},
+ {{14135334159662209102ull, 6898489562454603226ull,
+ 576759644779544634ull, 8362451102837094962ull}},
+ {{13446269868216268593ull, 8923241994961514920ull,
+ 4972160796414603300ull, 5226531939273184351ull}},
+ {{16807837335270335741ull, 11154052493701893650ull,
+ 1603514977090866221ull, 6533164924091480439ull}},
+ {{11786424632233143868ull, 107507561845203351ull,
+ 15839451776645746489ull, 8166456155114350548ull}},
+ {{14284044422786796774ull, 11596407272221721854ull,
+ 676285323548815747ull, 5104035096946469093ull}},
+ {{8631683491628720159ull, 9883823071849764414ull,
+ 5457042672863407588ull, 6380043871183086366ull}},
+ {{1566232327681124390ull, 12354778839812205518ull,
+ 16044675377934035293ull, 7975054838978857957ull}},
+ {{14813953260082866456ull, 10027579784096322400ull,
+ 12333765120422466010ull, 4984409274361786223ull}},
+ {{70697501394031454ull, 3311102693265627193ull, 10805520382100694609ull,
+ 6230511592952232779ull}},
+ {{4700057895169927222ull, 8750564385009421895ull,
+ 8895214459198480357ull, 7788139491190290974ull}},
+ {{9855065212122286370ull, 7774945749844582636ull, 947823018571662319ull,
+ 4867587181993931859ull}},
+ {{12318831515152857962ull, 5106996168878340391ull,
+ 15019836828496741611ull, 6084483977492414823ull}},
+ {{10786853375513684548ull, 1772059192670537585ull,
+ 14163110017193539110ull, 7605604971865518529ull}},
+ {{18270998405764522603ull, 14942595050701249702ull,
+ 1934414733104880087ull, 4753503107415949081ull}},
+ {{13615375970350877446ull, 14066557794949174224ull,
+ 7029704434808488013ull, 5941878884269936351ull}},
+ {{17019219962938596807ull, 3748139188404304068ull,
+ 4175444525083222113ull, 7427348605337420439ull}},
+ {{1413640439981847196ull, 13871802038821159803ull,
+ 9527181855818095676ull, 4642092878335887774ull}},
+ {{15602108605259472707ull, 17339752548526449753ull,
+ 2685605282917843787ull, 5802616097919859718ull}},
+ {{5667577701292177172ull, 17063004667230674288ull,
+ 12580378640502080542ull, 7253270122399824647ull}},
+ {{7084472126615221465ull, 12105383797183567052ull,
+ 11113787282200212774ull, 9066587652999780809ull}},
+ {{13651167115989289224ull, 2954178854812341503ull, 28588023734051128ull,
+ 5666617283124863006ull}},
+ {{12452272876559223626ull, 3692723568515426879ull,
+ 9259107066522339718ull, 7083271603906078757ull}},
+ {{10953655077271641628ull, 13839276497499059407ull,
+ 16185569851580312551ull, 8854089504882598446ull}},
+ {{13763563450935857874ull, 15567076838577993985ull,
+ 5504295138810307440ull, 5533805940551624029ull}},
+ {{3369396258387658630ull, 1012101974512940866ull,
+ 11492054941940272205ull, 6917257425689530036ull}},
+ {{13435117359839349095ull, 5876813486568563986ull,
+ 14365068677425340256ull, 8646571782111912545ull}},
+ {{13008634368326981089ull, 3673008429105352491ull,
+ 2060638895749755804ull, 5404107363819945341ull}},
+ {{11649106941981338457ull, 4591260536381690614ull,
+ 7187484638114582659ull, 6755134204774931676ull}},
+ {{5338011640621897263ull, 1127389652049725364ull,
+ 8984355797643228324ull, 8443917755968664595ull}},
+ {{12559629312243461597ull, 9927990569385854160ull,
+ 3309379364313323750ull, 5277448597480415372ull}},
+ {{15699536640304326997ull, 3186616174877541892ull,
+ 4136724205391654688ull, 6596810746850519215ull}},
+ {{1177676726670857130ull, 3983270218596927366ull, 559219238312180456ull,
+ 8246013433563149019ull}},
+ {{14571106009451449418ull, 2489543886623079603ull,
+ 16490413088440970449ull, 5153758395976968136ull}},
+ {{13602196493386923869ull, 7723615876706237408ull,
+ 2166272286841661445ull, 6442197994971210171ull}},
+ {{17002745616733654836ull, 14266205864310184664ull,
+ 16542898413834240518ull, 8052747493714012713ull}},
+ {{10626716010458534273ull, 4304692646766477511ull,
+ 3421782481005318468ull, 5032967183571257946ull}},
+ {{8671708994645779937ull, 5380865808458096889ull,
+ 13500600138111423893ull, 6291208979464072432ull}},
+ {{15451322261734612825ull, 11337768279000009015ull,
+ 16875750172639279866ull, 7864011224330090540ull}},
+ {{16574605441225214872ull, 11697791192802393538ull,
+ 1323971821044774108ull, 4915007015206306588ull}},
+ {{11494884764676742781ull, 14622238991002991923ull,
+ 1654964776305967635ull, 6143758769007883235ull}},
+ {{9756919937418540573ull, 13666112720326352000ull,
+ 15903764025664623256ull, 7679698461259854043ull}},
+ {{6098074960886587858ull, 8541320450203970000ull,
+ 7634009506826695583ull, 4799811538287408777ull}},
+ {{7622593701108234822ull, 6064964544327574596ull,
+ 14154197901960757383ull, 5999764422859260971ull}},
+ {{9528242126385293528ull, 2969519661982080341ull,
+ 13081061359023558825ull, 7499705528574076214ull}},
+ {{8260994338204502407ull, 13385164834807269973ull,
+ 3563977330962336361ull, 4687315955358797634ull}},
+ {{14937928941183015913ull, 2896397988226923754ull,
+ 13678343700557696260ull, 5859144944198497042ull}},
+ {{9449039139623994083ull, 3620497485283654693ull,
+ 7874557588842344517ull, 7323931180248121303ull}},
+ {{16422984942957380507ull, 9137307875031956270ull,
+ 5231510967625542742ull, 9154913975310151629ull}},
+ {{5652679570920974913ull, 1099131403467584765ull,
+ 5575537363979658166ull, 5721821234568844768ull}},
+ {{11677535482078606546ull, 10597286291189256764ull,
+ 6969421704974572707ull, 7152276543211055960ull}},
+ {{14596919352598258182ull, 8634921845559183051ull,
+ 8711777131218215884ull, 8940345679013819950ull}},
+ {{6817231586160217412ull, 14620198190329265215ull,
+ 833174688583997023ull, 5587716049383637469ull}},
+ {{3909853464272883861ull, 13663561719484193615ull,
+ 5653154379157384183ull, 6984645061729546836ull}},
+ {{275630811913716922ull, 12467766130927854115ull,
+ 7066442973946730229ull, 8730806327161933545ull}},
+ {{16313170321941930740ull, 10098196841043602773ull,
+ 15945741904785176153ull, 5456753954476208465ull}},
+ {{6556404847145249713ull, 17234432069731891371ull,
+ 6097119325699306479ull, 6820942443095260582ull}},
+ {{3583820040504174237ull, 16931354068737476310ull,
+ 16844771193978908907ull, 8526178053869075727ull}},
+ {{16074945580597272611ull, 8276253283747228741ull,
+ 17445511023877899923ull, 5328861283668172329ull}},
+ {{6258623920464427051ull, 5733630586256648023ull,
+ 7971830724565211192ull, 6661076604585215412ull}},
+ {{3211593882153145910ull, 7167038232820810029ull,
+ 9964788405706513990ull, 8326345755731519265ull}},
+ {{4313089185559410146ull, 18314456950795169980ull,
+ 17757207799635041003ull, 5203966097332199540ull}},
+ {{5391361481949262682ull, 18281385170066574571ull,
+ 3749765675834249638ull, 6504957621665249426ull}},
+ {{2127515834009190448ull, 13628359425728442406ull,
+ 13910579131647587856ull, 8131197027081561782ull}},
+ {{15164755451537907742ull, 8517724641080276503ull,
+ 4082425938852354506ull, 5081998141925976114ull}},
+ {{14344258295994996774ull, 1423783764495569821ull,
+ 14326404460420218941ull, 6352497677407470142ull}},
+ {{4095264814711582255ull, 6391415724046850181ull,
+ 8684633538670497868ull, 7940622096759337678ull}},
+ {{4865383518408432862ull, 13218006864384057171ull,
+ 816209943241673263ull, 4962888810474586049ull}},
+ {{1470043379583153173ull, 11910822562052683560ull,
+ 5631948447479479483ull, 6203611013093232561ull}},
+ {{1837554224478941466ull, 10276842184138466546ull,
+ 11651621577776737258ull, 7754513766366540701ull}},
+ {{5760157408726726321ull, 11034712383513929495ull,
+ 9588106495324154738ull, 4846571103979087938ull}},
+ {{2588510742481019997ull, 4570018442537636061ull,
+ 2761761082300417615ull, 6058213879973859923ull}},
+ {{7847324446528662900ull, 1100837034744657172ull,
+ 17287259408157685731ull, 7572767349967324903ull}},
+ {{14127949815935190120ull, 16828924211211268396ull,
+ 17722066157739635437ull, 4732979593729578064ull}},
+ {{17659937269918987650ull, 7201097208731921783ull,
+ 3705838623464992681ull, 5916224492161972581ull}},
+ {{17463235568971346659ull, 13613057529342290133ull,
+ 9243984297758628755ull, 7395280615202465726ull}},
+ {{13220365239820785614ull, 6202317946625237381ull,
+ 1165804167671755068ull, 4622050384501541079ull}},
+ {{2690398494493818305ull, 7752897433281546727ull,
+ 15292313264871857547ull, 5777562980626926348ull}},
+ {{17198056173399436594ull, 5079435773174545504ull,
+ 668647507380270318ull, 7221953725783657936ull}},
+ {{3050826143039744126ull, 15572666753322957689ull,
+ 835809384225337897ull, 9027442157229572420ull}},
+ {{13435981385468309839ull, 2815387693185766699ull,
+ 9745752901995611994ull, 5642151348268482762ull}},
+ {{12183290713407999394ull, 12742606653336984182ull,
+ 2958819090639739184ull, 7052689185335603453ull}},
+ {{6005741354905223435ull, 15928258316671230228ull,
+ 8310209881727061884ull, 8815861481669504316ull}},
+ {{12976960383670540455ull, 731789411064743084ull,
+ 14417253212934189486ull, 5509913426043440197ull}},
+ {{16221200479588175569ull, 10138108800685704663ull,
+ 4186508460885573145ull, 6887391782554300247ull}},
+ {{15664814581057831557ull, 17284322019284518733ull,
+ 621449557679578527ull, 8609239728192875309ull}},
+ {{12096352122374838675ull, 17720230289693906064ull,
+ 2694248982763430531ull, 5380774830120547068ull}},
+ {{15120440152968548344ull, 17538601843689994676ull,
+ 3367811228454288164ull, 6725968537650683835ull}},
+ {{453806117501133814ull, 3476508230902941730ull,
+ 18044822090850023918ull, 8407460672063354793ull}},
+ {{4895314841865596538ull, 16007875699596502293ull,
+ 4360484779140183092ull, 5254662920039596746ull}},
+ {{10730829570759383576ull, 1563100550786076250ull,
+ 14673978010780004674ull, 6568328650049495932ull}},
+ {{4190164926594453662ull, 11177247725337371121ull,
+ 18342472513475005842ull, 8210410812561869915ull}},
+ {{14148068125190003299ull, 11597465846763244854ull,
+ 9158202311708184699ull, 5131506757851168697ull}},
+ {{8461713119632728315ull, 9885146290026668164ull,
+ 16059438908062618778ull, 6414383447313960871ull}},
+ {{10577141399540910394ull, 3133060825678559397ull,
+ 15462612616650885569ull, 8017979309142451089ull}},
+ {{8916556383926762949ull, 13487378062117569383ull,
+ 2746603857765721624ull, 5011237068214031931ull}},
+ {{6534009461481065782ull, 16859222577646961729ull,
+ 17268312877489315742ull, 6264046335267539913ull}},
+ {{12779197845278720131ull, 11850656185203926353ull,
+ 7750333041579480966ull, 7830057919084424892ull}},
+ {{1069469625658118226ull, 2794974097325066067ull,
+ 14067330187841951412ull, 4893786199427765557ull}},
+ {{15171895087354811494ull, 3493717621656332583ull,
+ 3749104679520275553ull, 6117232749284706947ull}},
+ {{14353182840766126464ull, 8978833045497803633ull, 74694830972956537ull,
+ 7646540936605883684ull}},
+ {{2053210247837747184ull, 17140985699504597031ull,
+ 9270056306212873643ull, 4779088085378677302ull}},
+ {{16401570865079347692ull, 16814546105953358384ull,
+ 2364198345911316246ull, 5973860106723346628ull}},
+ {{2055219507639632999ull, 11794810595586922173ull,
+ 2955247932389145308ull, 7467325133404183285ull}},
+ {{3590355201488464576ull, 16595128659096602166ull,
+ 4152872966956909769ull, 4667078208377614553ull}},
+ {{13711316038715356528ull, 6908852768588588995ull,
+ 9802777227123525116ull, 5833847760472018191ull}},
+ {{12527459029966807756ull, 8636065960735736244ull,
+ 7641785515477018491ull, 7292309700590022739ull}},
+ {{15659323787458509695ull, 6183396432492282401ull,
+ 4940545875918885210ull, 9115387125737528424ull}},
+ {{2869548339520486704ull, 8476308788735064405ull,
+ 3087841172449303256ull, 5697116953585955265ull}},
+ {{8198621442827996284ull, 10595385985918830506ull,
+ 8471487483989016974ull, 7121396191982444081ull}},
+ {{1024904766680219546ull, 4020860445543762325ull,
+ 15201045373413659122ull, 8901745239978055101ull}},
+ {{2946408488388831169ull, 7124723796892239357ull,
+ 11806496367597230903ull, 5563590774986284438ull}},
+ {{8294696628913426865ull, 4294218727687911292ull,
+ 5534748422641762821ull, 6954488468732855548ull}},
+ {{10368370786141783581ull, 9979459428037277019ull,
+ 6918435528302203526ull, 8693110585916069435ull}},
+ {{4174388732124920786ull, 1625476124095910233ull,
+ 2018179195975183252ull, 5433194116197543397ull}},
+ {{9829671933583538887ull, 2031845155119887791ull,
+ 7134410013396366969ull, 6791492645246929246ull}},
+ {{7675403898552035704ull, 7151492462327247643ull,
+ 18141384553600234519ull, 8489365806558661557ull}},
+ {{2491284427381328363ull, 11387211816595611633ull,
+ 13644208355213840526ull, 5305853629099163473ull}},
+ {{7725791552654048358ull, 5010642733889738733ull,
+ 3220202388735136946ull, 6632317036373954342ull}},
+ {{14268925459244948351ull, 15486675454216949224ull,
+ 13248625022773696990ull, 8290396295467442927ull}},
+ {{8918078412028092720ull, 5067486140458205361ull,
+ 15197919666874642475ull, 5181497684667151829ull}},
+ {{15759284033462503804ull, 1722671657145368797ull,
+ 5162341528311139382ull, 6476872105833939787ull}},
+ {{5864046986545966042ull, 11376711608286486805ull,
+ 1841240891961536323ull, 8096090132292424734ull}},
+ {{5970872375804922729ull, 4804601745965360301ull,
+ 14985833612758123914ull, 5060056332682765458ull}},
+ {{12075276488183541315ull, 15229124219311476184ull,
+ 9508919979092879084ull, 6325070415853456823ull}},
+ {{15094095610229426643ull, 589661200429793614ull,
+ 7274463955438710952ull, 7906338019816821029ull}},
+ {{4822123737966003748ull, 368538250268621009ull, 6852382981362888297ull,
+ 4941461262385513143ull}},
+ {{10639340690884892589ull, 5072358831263164165ull,
+ 3953792708276222467ull, 6176826577981891429ull}},
+ {{17910861882033503640ull, 1728762520651567302ull,
+ 9553926903772665988ull, 7721033222477364286ull}},
+ {{6582602657843551871ull, 10303848612262005372ull,
+ 1359518296430528338ull, 4825645764048352679ull}},
+ {{8228253322304439839ull, 3656438728472730907ull,
+ 15534455925820324135ull, 6032057205060440848ull}},
+ {{5673630634453161895ull, 18405606465873077346ull,
+ 971325833565853552ull, 7540071506325551061ull}},
+ {{8157705164960614088ull, 11503504041170673341ull,
+ 2912921655192352422ull, 4712544691453469413ull}},
+ {{14808817474628155514ull, 5156008014608565868ull,
+ 8252838087417828432ull, 5890680864316836766ull}},
+ {{64277769575642777ull, 6445010018260707336ull, 1092675572417509732ull,
+ 7363351080396045958ull}},
+ {{80347211969553471ull, 8056262522825884170ull, 10589216502376662973ull,
+ 9204188850495057447ull}},
+ {{4661903025908358824ull, 7341007085979871558ull,
+ 13535789341626496214ull, 5752618031559410904ull}},
+ {{15050750819240224337ull, 18399630894329615255ull,
+ 16919736677033120267ull, 7190772539449263630ull}},
+ {{14201752505622892517ull, 18387852599484631165ull,
+ 11926298809436624526ull, 8988465674311579538ull}},
+ {{11181938325228001776ull, 6880721856250506574ull,
+ 12065622774325278233ull, 5617791046444737211ull}},
+ {{4754050869680226411ull, 13212588338740521122ull,
+ 10470342449479209887ull, 7022238808055921514ull}},
+ {{15165935623955058822ull, 11904049404998263498ull,
+ 3864556024994236551ull, 8777798510069901893ull}},
+ {{14090395783399299668ull, 14357559905764996542ull,
+ 4721190524835091796ull, 5486124068793688683ull}},
+ {{8389622692394348777ull, 17946949882206245678ull,
+ 1289802137616476841ull, 6857655085992110854ull}},
+ {{1263656328638160163ull, 8598629297475643386ull,
+ 10835624708875371860ull, 8572068857490138567ull}},
+ {{5401471223826238006ull, 14597515347777052924ull,
+ 13689794470688189268ull, 5357543035931336604ull}},
+ {{6751839029782797507ull, 18246894184721316155ull,
+ 17112243088360236585ull, 6696928794914170755ull}},
+ {{3828112768801108980ull, 8973559675619481482ull,
+ 16778617842022907828ull, 8371160993642713444ull}},
+ {{7004256498928081017ull, 14831846834116951734ull,
+ 1263264114409541584ull, 5231975621026695903ull}},
+ {{17978692660514877079ull, 93064468936638051ull,
+ 15414138198294090693ull, 6539969526283369878ull}},
+ {{17861679807216208444ull, 4728016604598185468ull,
+ 10044300711012837558ull, 8174961907854212348ull}},
+ {{1940177842655354470ull, 16790068433156029630ull,
+ 15501059981237799281ull, 5109351192408882717ull}},
+ {{11648594340173968895ull, 7152527486162873325ull,
+ 5541266921265085390ull, 6386688990511103397ull}},
+ {{725684869935297407ull, 18164031394558367465ull,
+ 11538269670008744641ull, 7983361238138879246ull}},
+ {{11982768089778030640ull, 4434990593957897809ull,
+ 2599732525328077497ull, 4989600773836799529ull}},
+ {{1143402056940374587ull, 10155424260874760166ull,
+ 7861351675087484775ull, 6237000967295999411ull}},
+ {{10652624608030244042ull, 8082594307666062303ull,
+ 5215003575431968065ull, 7796251209119999264ull}},
+ {{13575419407659984382ull, 16580836488359758699ull,
+ 3259377234644980040ull, 4872657005699999540ull}},
+ {{12357588241147592574ull, 2279301536740146758ull,
+ 4074221543306225051ull, 6090821257124999425ull}},
+ {{6223613264579714909ull, 16684184976207347160ull,
+ 9704462947560169217ull, 7613526571406249281ull}},
+ {{3889758290362321819ull, 3510086582488510119ull,
+ 17594504388293575521ull, 4758454107128905800ull}},
+ {{250511844525514369ull, 8999294246538025553ull, 3546386411657417785ull,
+ 5948067633911132251ull}},
+ {{4924825824084280865ull, 15860803826599919845ull,
+ 18268041069853935943ull, 7435084542388915313ull}},
+ {{5383859149266369493ull, 16830531419266031759ull,
+ 4499996641017628108ull, 4646927838993072071ull}},
+ {{2118137918155573962ull, 2591420200372988083ull,
+ 1013309782844647232ull, 5808659798741340089ull}},
+ {{16482730452976631164ull, 3239275250466235103ull,
+ 5878323246983196944ull, 7260824748426675111ull}},
+ {{15991727047793401051ull, 4049094063082793879ull,
+ 2736218040301608276ull, 9076030935533343889ull}},
+ {{16912358432511957513ull, 11754055826281521982ull,
+ 13239351321256974932ull, 5672519334708339930ull}},
+ {{11917076003785171083ull, 14692569782851902478ull,
+ 7325817114716442857ull, 7090649168385424913ull}},
+ {{5672972967876688046ull, 4530654173282714386ull,
+ 13768957411822941476ull, 8863311460481781141ull}},
+ {{8157294123350317933ull, 12055030895156472299ull,
+ 10911441391603032374ull, 5539569662801113213ull}},
+ {{5584931635760509512ull, 5845416582090814566ull,
+ 18250987757931178372ull, 6924462078501391516ull}},
+ {{16204536581555412698ull, 7306770727613518207ull,
+ 4366990623704421349ull, 8655577598126739396ull}},
+ {{17045364391113214793ull, 6872574713972142831ull,
+ 11952741176670039151ull, 5409735998829212122ull}},
+ {{16695019470464130587ull, 3979032374037790635ull,
+ 5717554433982773131ull, 6762169998536515153ull}},
+ {{16257088319652775329ull, 362104449119850390ull,
+ 11758629060905854318ull, 8452712498170643941ull}},
+ {{5548994181355596677ull, 14061373335982070206ull,
+ 9654986172279852900ull, 5282945311356652463ull}},
+ {{16159614763549271654ull, 17576716669977587757ull,
+ 7457046696922428221ull, 6603681639195815579ull}},
+ {{6364460399154425855ull, 8135837782189820985ull,
+ 4709622352725647373ull, 8254602048994769474ull}},
+ {{15507002795539985920ull, 7390741623082332067ull,
+ 7555199988880917512ull, 5159126280621730921ull}},
+ {{14772067475997594496ull, 9238427028852915084ull,
+ 14055686004528534794ull, 6448907850777163651ull}},
+ {{18340271287441503ull, 2324661749211368048ull, 12957921487233280589ull,
+ 8061134813471454564ull}},
+ {{11462669554650940ull, 3758756602470798982ull, 17322072966375576176ull,
+ 5038209258419659102ull}},
+ {{9237700373798089483ull, 4698445753088498727ull,
+ 12429219171114694412ull, 6297761573024573878ull}},
+ {{6935439448820223949ull, 5873057191360623409ull,
+ 6313151927038592207ull, 7872201966280717348ull}},
+ {{15863864701581109728ull, 10588189772241471486ull,
+ 13169091991253895937ull, 4920126228925448342ull}},
+ {{10606458840121611352ull, 17846923233729227262ull,
+ 7237992952212594113ull, 6150157786156810428ull}},
+ {{4034701513297238382ull, 8473595986879370366ull,
+ 9047491190265742642ull, 7687697232696013035ull}},
+ {{16356746501092937701ull, 9907683510226994382ull,
+ 3348838984702395199ull, 4804810770435008147ull}},
+ {{11222561089511396318ull, 7772918369356355074ull,
+ 18021106786160157711ull, 6006013463043760183ull}},
+ {{4804829325034469590ull, 5104461943268055939ull,
+ 17914697464272809235ull, 7507516828804700229ull}},
+ {{697175318932849542ull, 884445705328841010ull, 13502528924384199724ull,
+ 4692198018002937643ull}},
+ {{10094841185520837735ull, 1105557131661051262ull,
+ 12266475137052861751ull, 5865247522503672054ull}},
+ {{3395179445046271361ull, 15217004469858477790ull,
+ 6109721884461301380ull, 7331559403129590068ull}},
+ {{13467346343162615009ull, 574511513613545621ull,
+ 7637152355576626726ull, 9164449253911987585ull}},
+ {{10722934473690328333ull, 14194127751290629725ull,
+ 16302435268303861463ull, 5727780783694992240ull}},
+ {{18015354110540298320ull, 13130973670685899252ull,
+ 1931300011670275213ull, 7159725979618740301ull}},
+ {{4072448564465821284ull, 2578659033075210354ull,
+ 7025811033015231921ull, 8949657474523425376ull}},
+ {{7156966371218526206ull, 13140876941740476231ull,
+ 4391131895634519950ull, 5593535921577140860ull}},
+ {{4334521945595769854ull, 7202724140320819481ull,
+ 5488914869543149938ull, 6991919901971426075ull}},
+ {{10029838450422100221ull, 18226777212255800159ull,
+ 2249457568501549518ull, 8739899877464282594ull}},
+ {{13186178059154894494ull, 6780049739232487195ull,
+ 6017596998740856353ull, 5462437423415176621ull}},
+ {{11871036555516230214ull, 13086748192467996898ull,
+ 12133682266853458345ull, 6828046779268970776ull}},
+ {{5615423657540511959ull, 2523377185302832411ull,
+ 15167102833566822932ull, 8535058474086213470ull}},
+ {{1203796776749126023ull, 10800482777669046065ull,
+ 4867753252551876428ull, 5334411546303883419ull}},
+ {{6116431989363795432ull, 13500603472086307581ull,
+ 1473005547262457631ull, 6668014432879854274ull}},
+ {{12257226005132132194ull, 12264068321680496572ull,
+ 11064628970932847847ull, 8335018041099817842ull}},
+ {{16884138290062358430ull, 14582571728691392213ull,
+ 11527079125260417808ull, 5209386275687386151ull}},
+ {{7270114807295784325ull, 18228214660864240267ull,
+ 9797162888148134356ull, 6511732844609232689ull}},
+ {{4475957490692342502ull, 4338524252370748718ull,
+ 16858139628612555850ull, 8139666055761540861ull}},
+ {{16632531486964877776ull, 7323263676159105852ull,
+ 12842180277096541358ull, 5087291284850963038ull}},
+ {{2343920284996545604ull, 18377451632053658124ull,
+ 6829353309515900889ull, 6359114106063703798ull}},
+ {{2929900356245682005ull, 9136756484784908943ull,
+ 17760063673749651920ull, 7948892632579629747ull}},
+ {{8748716750294633109ull, 5710472802990568089ull,
+ 8794196786879838498ull, 4968057895362268592ull}},
+ {{15547581956295679290ull, 16361463040592985919ull,
+ 10992745983599798122ull, 6210072369202835740ull}},
+ {{14822791426942211209ull, 11228456763886456591ull,
+ 13740932479499747653ull, 7762590461503544675ull}},
+ {{16181773669479963862ull, 9323628486642729321ull,
+ 6282239790473648331ull, 4851619038439715422ull}},
+ {{6392159031567791115ull, 7042849589876023748ull,
+ 17076171774946836222ull, 6064523798049644277ull}},
+ {{7990198789459738893ull, 18026934024199805493ull,
+ 7510156663401381565ull, 7580654747562055347ull}},
+ {{7299717252626030761ull, 13572676774338572385ull,
+ 2388004905412169526ull, 4737909217226284592ull}},
+ {{13736332584209926355ull, 7742473931068439673ull,
+ 2985006131765211908ull, 5922386521532855740ull}},
+ {{3335357674980244231ull, 9678092413835549592ull,
+ 3731257664706514885ull, 7402983151916069675ull}},
+ {{2084598546862652645ull, 8354650767860912447ull, 26193031227877851ull,
+ 4626864469947543547ull}},
+ {{16440806238860479518ull, 5831627441398752654ull,
+ 13867799344317011026ull, 5783580587434429433ull}},
+ {{11327635761720823589ull, 16512906338603216626ull,
+ 3499691125114100070ull, 7229475734293036792ull}},
+ {{4936172665296253678ull, 11417760886399244975ull,
+ 4374613906392625088ull, 9036844667866295990ull}},
+ {{10002636943451240405ull, 7136100553999528109ull,
+ 16569191746777554392ull, 5648027917416434993ull}},
+ {{17114982197741438410ull, 8920125692499410136ull,
+ 6876431628189779278ull, 7060034896770543742ull}},
+ {{2946983673467246397ull, 1926785078769486863ull,
+ 17818911572091999906ull, 8825043620963179677ull}},
+ {{8759393823558110854ull, 5815926692658317193ull,
+ 13442662741771193893ull, 5515652263101987298ull}},
+ {{15560928297875026471ull, 11881594384250284395ull,
+ 7579956390359216558ull, 6894565328877484123ull}},
+ {{14839474353916395185ull, 5628620943458079686ull,
+ 4863259469521632794ull, 8618206661096855154ull}},
+ {{4662985452770359087ull, 8129574108088687708ull,
+ 7651223186878408400ull, 5386379163185534471ull}},
+ {{5828731815962948858ull, 10161967635110859635ull,
+ 4952342965170622596ull, 6732973953981918089ull}},
+ {{2674228751526298169ull, 12702459543888574544ull,
+ 10802114724890666149ull, 8416217442477397611ull}},
+ {{1671392969703936356ull, 10244880224144053042ull,
+ 4445478693842972391ull, 5260135901548373507ull}},
+ {{11312613248984696253ull, 8194414261752678398ull,
+ 945162348876327585ull, 6575169876935466884ull}},
+ {{4917394524376094508ull, 14854703845618235902ull,
+ 1181452936095409481ull, 8218962346169333605ull}},
+ {{16908429633017222779ull, 2366660875870315582ull,
+ 3044251094273324878ull, 5136851466355833503ull}},
+ {{11912165004416752666ull, 12181698131692670286ull,
+ 17640371923123819809ull, 6421064332944791878ull}},
+ {{5666834218666165025ull, 1392064609333674146ull,
+ 12827092867049998954ull, 8026330416180989848ull}},
+ {{8153457405093741045ull, 5481726399260934245ull,
+ 8016933041906249346ull, 5016456510113118655ull}},
+ {{14803507774794564210ull, 16075530035930943614ull,
+ 5409480283955423778ull, 6270570637641398319ull}},
+ {{9281012681638429454ull, 10871040508058903710ull,
+ 2150164336516891819ull, 7838213297051747899ull}},
+ {{1188946907596630505ull, 4488557308323120867ull,
+ 17484753774818915051ull, 4898883310657342436ull}},
+ {{15321241689777951843ull, 999010616976513179ull,
+ 3409198144814092198ull, 6123604138321678046ull}},
+ {{14539866093795051900ull, 10472135308075417282ull,
+ 13484869717872391055ull, 7654505172902097557ull}},
+ {{13699102327049295341ull, 13462613595188217657ull,
+ 10733886582883938361ull, 4784065733063810973ull}},
+ {{3288819853529455465ull, 2993208938703108360ull,
+ 18029044247032310856ull, 5980082166329763716ull}},
+ {{4111024816911819331ull, 3741511173378885450ull,
+ 4089561235080836954ull, 7475102707912204646ull}},
+ {{7181076528997274986ull, 6950130501789191310ull,
+ 16391033827207686808ull, 4671939192445127903ull}},
+ {{18199717698101369540ull, 8687663127236489137ull,
+ 15877106265582220606ull, 5839923990556409879ull}},
+ {{8914589067344548213ull, 1636206872190835614ull,
+ 15234696813550387854ull, 7299904988195512349ull}},
+ {{1919864297325909458ull, 11268630627093320326ull,
+ 5208312961655821105ull, 9124881235244390437ull}},
+ {{15034973241110857124ull, 125365114292243347ull,
+ 5561038610248582143ull, 5703050772027744023ull}},
+ {{14182030532961183500ull, 13991764448147467896ull,
+ 2339612244383339774ull, 7128813465034680029ull}},
+ {{17727538166201479375ull, 8266333523329559062ull,
+ 7536201323906562622ull, 8911016831293350036ull}},
+ {{6468025335448536706ull, 554772433653586510ull,
+ 13933497864296377447ull, 5569385519558343772ull}},
+ {{17308403706165446690ull, 14528523597349146849ull,
+ 17416872330370471808ull, 6961731899447929715ull}},
+ {{7800446577424644651ull, 18160654496686433562ull,
+ 17159404394535701856ull, 8702164874309912144ull}},
+ {{9486965129317790811ull, 11350409060429020976ull,
+ 10724627746584813660ull, 5438853046443695090ull}},
+ {{11858706411647238513ull, 14188011325536276220ull,
+ 4182412646376241267ull, 6798566308054618863ull}},
+ {{14823383014559048142ull, 13123328138492957371ull,
+ 616329789542913680ull, 8498207885068273579ull}},
+ {{6958771374885711137ull, 8202080086558098357ull,
+ 16526107182960178714ull, 5311379928167670986ull}},
+ {{13310150237034526825ull, 1029228071342847138ull,
+ 11434261941845447585ull, 6639224910209588733ull}},
+ {{7414315759438382723ull, 5898221107605946827ull, 457769372024645769ull,
+ 8299031137761985917ull}},
+ {{2328104340435295250ull, 15215603238322186527ull,
+ 2591948866729097557ull, 5186894461101241198ull}},
+ {{16745188480826282774ull, 5184445992620569446ull,
+ 12463308120266147755ull, 6483618076376551497ull}},
+ {{11708113564178077660ull, 1868871472348323904ull,
+ 1744077095050520982ull, 8104522595470689372ull}},
+ {{7317570977611298537ull, 15003102725499866152ull,
+ 10313420221261351421ull, 5065326622169180857ull}},
+ {{9146963722014123172ull, 4918820351592668978ull,
+ 17503461295004077181ull, 6331658277711476071ull}},
+ {{2210332615662878157ull, 10760211457918224127ull,
+ 17267640600327708572ull, 7914572847139345089ull}},
+ {{8298986912430380704ull, 15948504198053665887ull,
+ 3874746347563736001ull, 4946608029462090681ull}},
+ {{5762047622110587976ull, 6100572192284918647ull,
+ 9455118952882057906ull, 6183260036827613351ull}},
+ {{2590873509210847066ull, 16849087277210924117ull,
+ 7207212672675184478ull, 7729075046034516689ull}},
+ {{3925138952470473368ull, 5918993529829439669ull,
+ 16033722966490460059ull, 4830671903771572930ull}},
+ {{9518109709015479614ull, 2787055893859411682ull,
+ 10818781671258299266ull, 6038339879714466163ull}},
+ {{2674265099414573710ull, 12707191904179040411ull,
+ 8911791070645486178ull, 7547924849643082704ull}},
+ {{17812316751629966233ull, 12553680958539288160ull,
+ 5569869419153428861ull, 4717453031026926690ull}},
+ {{3818651865827906175ull, 1857043142891946489ull,
+ 16185708810796561885ull, 5896816288783658362ull}},
+ {{9385000850712270622ull, 6932989947042321015ull,
+ 11008763976640926548ull, 7371020360979572953ull}},
+ {{7119565044962950374ull, 8666237433802901269ull,
+ 18372640989228546089ull, 9213775451224466191ull}},
+ {{6755571162315537936ull, 16945613442195283053ull,
+ 18400429645908923161ull, 5758609657015291369ull}},
+ {{13056149971321810324ull, 7346958747461940104ull,
+ 9165479002103990240ull, 7198262071269114212ull}},
+ {{16320187464152262904ull, 9183698434327425130ull,
+ 11456848752629987800ull, 8997827589086392765ull}},
+ {{14811803183522552219ull, 5739811521454640706ull,
+ 9466373479607436327ull, 5623642243178995478ull}},
+ {{9291381942548414466ull, 2563078383390912979ull,
+ 2609594812654519601ull, 7029552803973744348ull}},
+ {{7002541409758130179ull, 7815533997666029128ull,
+ 3261993515818149501ull, 8786941004967180435ull}},
+ {{4376588381098831362ull, 7190551757754962157ull,
+ 18179647011882201102ull, 5491838128104487771ull}},
+ {{10082421494800927106ull, 18211561734048478504ull,
+ 18112872746425363473ull, 6864797660130609714ull}},
+ {{12603026868501158883ull, 8929394112278434418ull,
+ 13417718896176928534ull, 8580997075163262143ull}},
+ {{12488577811240612206ull, 969185301746633607ull,
+ 15303603337751662190ull, 5363123171977038839ull}},
+ {{10999036245623377353ull, 10434853664038067817ull,
+ 14517818153762189833ull, 6703903964971298549ull}},
+ {{18360481325456609595ull, 17655253098474972675ull,
+ 4312214636920573579ull, 8379879956214123187ull}},
+ {{9169457819196687045ull, 8728690177333163970ull, 389291138861664535ull,
+ 5237424972633826992ull}},
+ {{2238450237141082998ull, 6299176703239067059ull, 486613923577080669ull,
+ 6546781215792283740ull}},
+ {{16633120851708517460ull, 12485656897476221727ull,
+ 608267404471350836ull, 8183476519740354675ull}},
+ {{17313229559958905269ull, 17026907597777414387ull,
+ 16521068192290451936ull, 5114672824837721671ull}},
+ {{17029850931521243682ull, 2836890423512216368ull,
+ 16039649221935677017ull, 6393341031047152089ull}},
+ {{2840569590692002986ull, 8157799047817658365ull,
+ 6214503472137432559ull, 7991676288808940112ull}},
+ {{4081199003396195818ull, 12016153432527118334ull,
+ 3884064670085895349ull, 4994797680505587570ull}},
+ {{14324870791100020581ull, 1185133735376734205ull,
+ 14078452874462144995ull, 6243497100631984462ull}},
+ {{4071030433592862014ull, 15316475224503081469ull,
+ 8374694056222905435ull, 7804371375789980578ull}},
+ {{4850237030209232711ull, 7266954006100731966ull,
+ 9845869803566703801ull, 4877732109868737861ull}},
+ {{15286168324616316697ull, 13695378526053302861ull,
+ 16919023272885767655ull, 6097165137335922326ull}},
+ {{5272652350488232159ull, 12507537139139240673ull,
+ 11925407054252433761ull, 7621456421669902908ull}},
+ {{14824622765123614859ull, 899681684320943564ull,
+ 16676751445762546909ull, 4763410263543689317ull}},
+ {{84034382694966958ull, 5736288123828567360ull, 7010881251921019924ull,
+ 5954262829429611647ull}},
+ {{105042978368708697ull, 7170360154785709200ull, 4151915546473887001ull,
+ 7442828536787014559ull}},
+ {{65651861480442936ull, 16010690142809538010ull, 9512476244187261231ull,
+ 4651767835491884099ull}},
+ {{9305436863705329478ull, 15401676660084534608ull,
+ 7278909286806688635ull, 5814709794364855124ull}},
+ {{11631796079631661847ull, 14640409806678280356ull,
+ 9098636608508360794ull, 7268387242956068905ull}},
+ {{14539745099539577309ull, 9077140221493074637ull,
+ 15984981779062838897ull, 9085484053695086131ull}},
+ {{11393183696425929770ull, 17202427684501641408ull,
+ 7684770602700580358ull, 5678427533559428832ull}},
+ {{14241479620532412213ull, 12279662568772275952ull,
+ 9605963253375725448ull, 7098034416949286040ull}},
+ {{17801849525665515266ull, 15349578210965344940ull,
+ 12007454066719656810ull, 8872543021186607550ull}},
+ {{1902783916686171233ull, 14205172400280728492ull,
+ 2892972773272397602ull, 5545339388241629719ull}},
+ {{2378479895857714042ull, 8533093463496134807ull,
+ 17451274021872660715ull, 6931674235302037148ull}},
+ {{16808157925104306264ull, 6054680810942780604ull,
+ 3367348453631274278ull, 8664592794127546436ull}},
+ {{1281726666335415607ull, 17619233562121401590ull,
+ 11327964820374322231ull, 5415370496329716522ull}},
+ {{10825530369774045317ull, 17412355934224364083ull,
+ 4936583988613126981ull, 6769213120412145653ull}},
+ {{8920226943790168742ull, 7930386862498291392ull,
+ 10782416004193796631ull, 8461516400515182066ull}},
+ {{5575141839868855464ull, 11874020816702513976ull,
+ 11350696021048510798ull, 5288447750321988791ull}},
+ {{6968927299836069330ull, 5619153984023366662ull,
+ 9576684007883250594ull, 6610559687902485989ull}},
+ {{17934531161649862470ull, 16247314516883984135ull,
+ 16582541028281451146ull, 8263199609878107486ull}},
+ {{18126611003672245900ull, 14766257591479877988ull,
+ 5752402124248519062ull, 5164499756173817179ull}},
+ {{4211519680880755759ull, 9234449952495071678ull,
+ 2578816636883260924ull, 6455624695217271474ull}},
+ {{14487771637955720506ull, 11543062440618839597ull,
+ 12446892832958851963ull, 8069530869021589342ull}},
+ {{11360700282936019269ull, 4908571016173080796ull,
+ 3167622002171894573ull, 5043456793138493339ull}},
+ {{14200875353670024086ull, 10747399788643738899ull,
+ 17794585557997031928ull, 6304320991423116673ull}},
+ {{13139408173660142203ull, 13434249735804673624ull,
+ 8408173892214126198ull, 7880401239278895842ull}},
+ {{8212130108537588877ull, 3784720066450533111ull,
+ 9866794701061216778ull, 4925250774549309901ull}},
+ {{5653476617244598192ull, 13954272119917942197ull,
+ 16945179394753908876ull, 6156563468186637376ull}},
+ {{11678531789983135644ull, 17442840149897427746ull,
+ 2734730169732834479ull, 7695704335233296721ull}},
+ {{11910768387166847682ull, 17819304121326974197ull,
+ 13238421402151491309ull, 4809815209520810450ull}},
+ {{1053402428676395890ull, 8439072096376554035ull,
+ 7324654715834588329ull, 6012269011901013063ull}},
+ {{15151811091127658574ull, 15160526138898080447ull,
+ 4544132376365847507ull, 7515336264876266329ull}},
+ {{16387410959595868465ull, 7169485827597606327ull,
+ 14369297781297124452ull, 4697085165547666455ull}},
+ {{15872577681067447677ull, 8961857284497007909ull,
+ 13349936208194017661ull, 5871356456934583069ull}},
+ {{6005664046052145885ull, 15814007624048647791ull,
+ 2852362204960358364ull, 7339195571168228837ull}},
+ {{2895394039137794452ull, 1320765456351258123ull,
+ 8177138774627835860ull, 9173994463960286046ull}},
+ {{17950522338956979196ull, 10048850447074312134ull,
+ 499025715715009508ull, 5733746539975178779ull}},
+ {{13214780886841448187ull, 12561063058842890168ull,
+ 14458840199925925597ull, 7167183174968973473ull}},
+ {{16518476108551810234ull, 1866270768271448998ull,
+ 4238492194625243285ull, 8958978968711216842ull}},
+ {{5712361549417493492ull, 3472262239383349576ull,
+ 7260743640068164957ull, 5599361855444510526ull}},
+ {{7140451936771866865ull, 8952013817656574874ull,
+ 18299301586939982004ull, 6999202319305638157ull}},
+ {{18148936957819609390ull, 11190017272070718592ull,
+ 9039068928392813793ull, 8749002899132047697ull}},
+ {{11343085598637255869ull, 76231767403117264ull,
+ 17178633126313978381ull, 5468126811957529810ull}},
+ {{14178856998296569836ull, 4706975727681284484ull,
+ 12249919371037697168ull, 6835158514946912263ull}},
+ {{17723571247870712295ull, 5883719659601605605ull,
+ 10700713195369733556ull, 8543948143683640329ull}},
+ {{13383075039132889136ull, 12900696824105779311ull,
+ 18217160793174553232ull, 5339967589802275205ull}},
+ {{12117157780488723516ull, 16125871030132224139ull,
+ 8936392936186027828ull, 6674959487252844007ull}},
+ {{10534761207183516491ull, 1710594713955728558ull,
+ 6558805151805146882ull, 8343699359066055009ull}},
+ {{1972539736062309903ull, 5680807714649718253ull,
+ 15628468265946686561ull, 5214812099416284380ull}},
+ {{7077360688505275283ull, 11712695661739535720ull,
+ 1088841258723806585ull, 6518515124270355476ull}},
+ {{8846700860631594104ull, 805811521892255938ull, 1361051573404758232ull,
+ 8148143905337944345ull}},
+ {{10140874056322134219ull, 503632201182659961ull,
+ 12379872279446443655ull, 5092589940836215215ull}},
+ {{17287778588830055677ull, 14464598306760488663ull,
+ 10863154330880666664ull, 6365737426045269019ull}},
+ {{16998037217610181693ull, 18080747883450610829ull,
+ 8967256895173445426ull, 7957171782556586274ull}},
+ {{12929616270220057510ull, 15912153445584019672ull,
+ 10216221577910791295ull, 4973232364097866421ull}},
+ {{16162020337775071888ull, 15278505788552636686ull,
+ 17381962990815877023ull, 6216540455122333026ull}},
+ {{10979153385364064051ull, 14486446217263407954ull,
+ 12504081701665070471ull, 7770675568902916283ull}},
+ {{11473656884279927936ull, 15971557913430711827ull,
+ 5509208054326975092ull, 4856672230564322677ull}},
+ {{9730385086922522016ull, 1517703318078838168ull,
+ 11498196086336106770ull, 6070840288205403346ull}},
+ {{12162981358653152520ull, 11120501184453323518ull,
+ 5149373071065357654ull, 7588550360256754183ull}},
+ {{2990177330730832421ull, 2338627221855939295ull,
+ 10135887197056930390ull, 4742843975160471364ull}},
+ {{17572779718695704238ull, 12146656064174699926ull,
+ 12669858996321162987ull, 5928554968950589205ull}},
+ {{12742602611514854490ull, 10571634061790987004ull,
+ 2002265690119290022ull, 7410693711188236507ull}},
+ {{17187498669051559864ull, 1995585270191978973ull,
+ 17392317120820413928ull, 4631683569492647816ull}},
+ {{7649315281032286118ull, 2494481587739973717ull,
+ 3293652327315965794ull, 5789604461865809771ull}},
+ {{14173330119717745552ull, 12341474021529742954ull,
+ 17952123464427120954ull, 7237005577332262213ull}},
+ {{8493290612792406132ull, 6203470490057402885ull,
+ 8605096275251737481ull, 9046256971665327767ull}},
+ {{7614149642208947785ull, 15406384102354346563ull,
+ 12295714199673417781ull, 5653910607290829854ull}},
+ {{4906001034333796827ull, 5422922072660769492ull,
+ 6146270712736996419ull, 7067388259113537318ull}},
+ {{6132501292917246033ull, 2166966572398573961ull,
+ 16906210427776021332ull, 8834235323891921647ull}},
+ {{15362028354141748531ull, 10577726144603884533ull,
+ 17483910545001095188ull, 5521397077432451029ull}},
+ {{5367477387395021951ull, 13222157680754855667ull,
+ 8019830125969205273ull, 6901746346790563787ull}},
+ {{2097660715816389535ull, 2692639045661405872ull,
+ 5413101639034118688ull, 8627182933488204734ull}},
+ {{1311037947385243460ull, 1682899403538378670ull,
+ 17218246579678487892ull, 5391989333430127958ull}},
+ {{10862169471086330132ull, 2103624254422973337ull,
+ 12299436187743334057ull, 6739986666787659948ull}},
+ {{18189397857285300569ull, 7241216336456104575ull,
+ 15374295234679167571ull, 8424983333484574935ull}},
+ {{18285902688444394712ull, 2219917201071371407ull,
+ 16526463549315561588ull, 5265614583427859334ull}},
+ {{18245692342128105486ull, 2774896501339214259ull,
+ 11434707399789676177ull, 6582018229284824168ull}},
+ {{18195429409232743953ull, 8080306645101405728ull,
+ 14293384249737095221ull, 8227522786606030210ull}},
+ {{11372143380770464971ull, 7356034662402072532ull,
+ 13545051174513072417ull, 5142201741628768881ull}},
+ {{14215179225963081214ull, 13806729346429978569ull,
+ 3096255912859176809ull, 6427752177035961102ull}},
+ {{3933915977171687805ull, 3423353627755309500ull,
+ 13093691927928746820ull, 8034690221294951377ull}},
+ {{11682069522587080686ull, 11362968054201844245ull,
+ 1266028427314384906ull, 5021681388309344611ull}},
+ {{767528847951687146ull, 4980338030897529499ull,
+ 15417593589425144845ull, 6277101735386680763ull}},
+ {{14794469115221772644ull, 10837108557049299777ull,
+ 14660305968354043152ull, 7846377169233350954ull}},
+ {{2329014169372526047ull, 6773192848155812361ull,
+ 13774377248648664874ull, 4903985730770844346ull}},
+ {{7522953730143045462ull, 17689863097049541259ull,
+ 7994599523956055284ull, 6129982163463555433ull}},
+ {{4792006144251418924ull, 3665584797602374958ull,
+ 14604935423372457010ull, 7662477704329444291ull}},
+ {{16830061895439300539ull, 6902676516928872252ull,
+ 6822241630394091679ull, 4789048565205902682ull}},
+ {{2590833295589574058ull, 4016659627733702412ull,
+ 17751174074847390407ull, 5986310706507378352ull}},
+ {{3238541619486967573ull, 409138516239740111ull, 3742223519849686393ull,
+ 7482888383134222941ull}},
+ {{8941617539820436589ull, 11784926618718307329ull,
+ 4644732709119747947ull, 4676805239458889338ull}},
+ {{15788707943202933640ull, 10119472254970496257ull,
+ 15029287923254460742ull, 5846006549323611672ull}},
+ {{5900826873721503338ull, 3425968281858344514ull, 339865830358524312ull,
+ 7307508186654514591ull}},
+ {{16599405629006654981ull, 4282460352322930642ull,
+ 14259890343230319102ull, 9134385233318143238ull}},
+ {{14986314536556547267ull, 16511595775483995363ull,
+ 4300745446091561534ull, 5708990770823839524ull}},
+ {{14121207152268296180ull, 11416122682500218396ull,
+ 5375931807614451918ull, 7136238463529799405ull}},
+ {{17651508940335370225ull, 5046781316270497187ull,
+ 11331600777945452802ull, 8920298079412249256ull}},
+ {{8726350078495912439ull, 7765924341096448646ull,
+ 7082250486215908001ull, 5575186299632655785ull}},
+ {{1684565561265114740ull, 14319091444797948712ull,
+ 13464499126197272905ull, 6968982874540819731ull}},
+ {{2105706951581393425ull, 4063806250715272178ull,
+ 12218937889319203228ull, 8711228593176024664ull}},
+ {{5927752863165758795ull, 11763250943551820919ull,
+ 7636836180824502017ull, 5444517870735015415ull}},
+ {{2798005060529810589ull, 869005624157612437ull, 4934359207603239618ull,
+ 6805647338418769269ull}},
+ {{8109192344089651141ull, 10309629067051791354ull,
+ 10779635027931437426ull, 8507059173023461586ull}},
+ {{9679931233483419867ull, 11055204185334757500ull,
+ 11348957910884536295ull, 5316911983139663491ull}},
+ {{12099914041854274834ull, 9207319213241058971ull,
+ 9574511370178282465ull, 6646139978924579364ull}},
+ {{10513206533890455638ull, 16120835034978711618ull,
+ 11968139212722853081ull, 8307674973655724205ull}},
+ {{11182440102108922678ull, 3157992869220612905ull,
+ 9785930017165477128ull, 5192296858534827628ull}},
+ {{142992072353989635ull, 3947491086525766132ull,
+ 12232412521456846410ull, 6490371073168534535ull}},
+ {{178740090442487044ull, 14157735895011983473ull,
+ 10678829633393670108ull, 8112963841460668169ull}},
+ {{11640927602595024163ull, 18071956971237265478ull,
+ 18203483566939513577ull, 5070602400912917605ull}},
+ {{5327787466389004395ull, 8754888158764418136ull,
+ 8919296403392228260ull, 6338253001141147007ull}},
+ {{6659734332986255494ull, 10943610198455522670ull,
+ 6537434485812897421ull, 7922816251426433759ull}},
+ {{17997392013398573396ull, 9145599383248395620ull,
+ 11003425581274142744ull, 4951760157141521099ull}},
+ {{4049995943038665129ull, 11431999229060494526ull,
+ 9142595958165290526ull, 6189700196426901374ull}},
+ {{14285866965653107219ull, 5066626999470842349ull,
+ 2204872910851837350ull, 7737125245533626718ull}},
+ {{11234509862746885964ull, 17001699929951440180ull,
+ 15213103624564562055ull, 4835703278458516698ull}},
+ {{14043137328433607455ull, 16640438894011912321ull,
+ 9793007493850926761ull, 6044629098073145873ull}},
+ {{3718863605259845606ull, 6965490562232726690ull,
+ 16852945385741046356ull, 7555786372591432341ull}},
+ {{6935975771714791408ull, 13576803638250229989ull,
+ 12838933875301847924ull, 4722366482869645213ull}},
+ {{13281655733070877164ull, 16971004547812787486ull,
+ 2213609288845146193ull, 5902958103587056517ull}},
+ {{7378697629483820647ull, 7378697629483820646ull,
+ 7378697629483820646ull, 7378697629483820646ull}},
+ {{0ull, 0ull, 0ull, 9223372036854775808ull}},
+ {{0ull, 0ull, 0ull, 5764607523034234880ull}},
+ {{0ull, 0ull, 0ull, 7205759403792793600ull}},
+ {{0ull, 0ull, 0ull, 9007199254740992000ull}},
+ {{0ull, 0ull, 0ull, 5629499534213120000ull}},
+ {{0ull, 0ull, 0ull, 7036874417766400000ull}},
+ {{0ull, 0ull, 0ull, 8796093022208000000ull}},
+ {{0ull, 0ull, 0ull, 5497558138880000000ull}},
+ {{0ull, 0ull, 0ull, 6871947673600000000ull}},
+ {{0ull, 0ull, 0ull, 8589934592000000000ull}},
+ {{0ull, 0ull, 0ull, 5368709120000000000ull}},
+ {{0ull, 0ull, 0ull, 6710886400000000000ull}},
+ {{0ull, 0ull, 0ull, 8388608000000000000ull}},
+ {{0ull, 0ull, 0ull, 5242880000000000000ull}},
+ {{0ull, 0ull, 0ull, 6553600000000000000ull}},
+ {{0ull, 0ull, 0ull, 8192000000000000000ull}},
+ {{0ull, 0ull, 0ull, 5120000000000000000ull}},
+ {{0ull, 0ull, 0ull, 6400000000000000000ull}},
+ {{0ull, 0ull, 0ull, 8000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 5000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 6250000000000000000ull}},
+ {{0ull, 0ull, 0ull, 7812500000000000000ull}},
+ {{0ull, 0ull, 0ull, 4882812500000000000ull}},
+ {{0ull, 0ull, 0ull, 6103515625000000000ull}},
+ {{0ull, 0ull, 0ull, 7629394531250000000ull}},
+ {{0ull, 0ull, 0ull, 4768371582031250000ull}},
+ {{0ull, 0ull, 0ull, 5960464477539062500ull}},
+ {{0ull, 0ull, 0ull, 7450580596923828125ull}},
+ {{0ull, 0ull, 2305843009213693952ull, 4656612873077392578ull}},
+ {{0ull, 0ull, 12105675798371893248ull, 5820766091346740722ull}},
+ {{0ull, 0ull, 5908722711110090752ull, 7275957614183425903ull}},
+ {{0ull, 0ull, 2774217370460225536ull, 9094947017729282379ull}},
+ {{0ull, 0ull, 17874786921033498624ull, 5684341886080801486ull}},
+ {{0ull, 0ull, 13120111614437097472ull, 7105427357601001858ull}},
+ {{0ull, 0ull, 7176767481191596032ull, 8881784197001252323ull}},
+ {{0ull, 0ull, 2179636666531053568ull, 5551115123125782702ull}},
+ {{0ull, 0ull, 11947917870018592768ull, 6938893903907228377ull}},
+ {{0ull, 0ull, 1099839282241077248ull, 8673617379884035472ull}},
+ {{0ull, 0ull, 687399551400673280ull, 5421010862427522170ull}},
+ {{0ull, 0ull, 10082621476105617408ull, 6776263578034402712ull}},
+ {{0ull, 0ull, 12603276845132021760ull, 8470329472543003390ull}},
+ {{0ull, 0ull, 3265362009780125696ull, 5293955920339377119ull}},
+ {{0ull, 0ull, 17916760567507320832ull, 6617444900424221398ull}},
+ {{0ull, 0ull, 13172578672529375232ull, 8271806125530276748ull}},
+ {{0ull, 0ull, 17456233707185635328ull, 5169878828456422967ull}},
+ {{0ull, 0ull, 17208606115554656256ull, 6462348535570528709ull}},
+ {{0ull, 0ull, 7675699589161156608ull, 8077935669463160887ull}},
+ {{0ull, 0ull, 11714841270866804736ull, 5048709793414475554ull}},
+ {{0ull, 0ull, 5420179551728730112ull, 6310887241768094443ull}},
+ {{0ull, 0ull, 2163538421233524736ull, 7888609052210118054ull}},
+ {{0ull, 0ull, 15187269568553116672ull, 4930380657631323783ull}},
+ {{0ull, 0ull, 14372400942264007936ull, 6162975822039154729ull}},
+ {{0ull, 0ull, 4130443122547846208ull, 7703719777548943412ull}},
+ {{0ull, 0ull, 11804898988447179688ull, 4814824860968089632ull}},
+ {{0ull, 0ull, 14756123735558974610ull, 6018531076210112040ull}},
+ {{0ull, 9223372036854775808ull, 18445154669448718262ull,
+ 7523163845262640050ull}},
+ {{0ull, 1152921504606846976ull, 16139907686832836818ull,
+ 4701977403289150031ull}},
+ {{0ull, 10664523917613334528ull, 15563198590113658118ull,
+ 5877471754111437539ull}},
+ {{0ull, 4107282860161892352ull, 14842312219214684744ull,
+ 7346839692639296924ull}},
+ {{0ull, 5134103575202365440ull, 106146200308804314ull,
+ 9183549615799121156ull}},
+ {{0ull, 7820500752928866304ull, 9289713412047778504ull,
+ 5739718509874450722ull}},
+ {{0ull, 9775625941161082880ull, 2388769728204947322ull,
+ 7174648137343063403ull}},
+ {{0ull, 2996160389596577792ull, 16821020215538347865ull,
+ 8968310171678829253ull}},
+ {{0ull, 13401815289566330880ull, 12818980643925161367ull,
+ 5605193857299268283ull}},
+ {{0ull, 12140583093530525696ull, 11412039786479063805ull,
+ 7006492321624085354ull}},
+ {{0ull, 1340670811630993408ull, 5041677696244053949ull,
+ 8758115402030106693ull}},
+ {{0ull, 3143762266483064832ull, 5456891569366227670ull,
+ 5473822126268816683ull}},
+ {{0ull, 13153074869958606848ull, 2209428443280396683ull,
+ 6842277657836020854ull}},
+ {{0ull, 11829657569020870656ull, 11985157590955271662ull,
+ 8552847072295026067ull}},
+ {{0ull, 2781849962210656256ull, 5184880485133350837ull,
+ 5345529420184391292ull}},
+ {{0ull, 8088998471190708224ull, 6481100606416688546ull,
+ 6681911775230489115ull}},
+ {{0ull, 887876052133609472ull, 3489689739593472779ull,
+ 8352389719038111394ull}},
+ {{0ull, 16695823597079363584ull, 6792742105673308390ull,
+ 5220243574398819621ull}},
+ {{0ull, 11646407459494428672ull, 13102613650519023392ull,
+ 6525304467998524526ull}},
+ {{0ull, 14558009324368035840ull, 7154895026294003432ull,
+ 8156630584998155658ull}},
+ {{0ull, 9098755827730022400ull, 9083495409861140049ull,
+ 5097894115623847286ull}},
+ {{0ull, 15985130803089915904ull, 2130997225471649253ull,
+ 6372367644529809108ull}},
+ {{0ull, 6146355448580231168ull, 2663746531839561567ull,
+ 7965459555662261385ull}},
+ {{0ull, 10759001183003726336ull, 13194056628468195739ull,
+ 4978412222288913365ull}},
+ {{0ull, 8837065460327270016ull, 2657512730303080962ull,
+ 6223015277861141707ull}},
+ {{0ull, 1822959788554311712ull, 17156948968161014915ull,
+ 7778769097326427133ull}},
+ {{0ull, 17280250932342302484ull, 13028936114314328273ull,
+ 4861730685829016958ull}},
+ {{0ull, 7765255610145714393ull, 7062798106038134534ull,
+ 6077163357286271198ull}},
+ {{4611686018427387904ull, 483197475827367183ull,
+ 18051869669402443976ull, 7596454196607838997ull}},
+ {{9799832789158199296ull, 301998422392104489ull,
+ 13588261552590221437ull, 4747783872879899373ull}},
+ {{16861477004875137024ull, 4989184046417518515ull,
+ 3150268885455613084ull, 5934729841099874217ull}},
+ {{16465160237666533376ull, 6236480058021898144ull,
+ 8549522125246904259ull, 7418412301374842771ull}},
+ {{10290725148541583360ull, 1591957027049992388ull,
+ 3037608319065621210ull, 4636507688359276732ull}},
+ {{12863406435676979200ull, 11213318320667266293ull,
+ 3797010398832026512ull, 5795634610449095915ull}},
+ {{2244199989314060288ull, 14016647900834082867ull,
+ 134576980112645236ull, 7244543263061369894ull}},
+ {{16640308041924739072ull, 17520809876042603583ull,
+ 9391593261995582353ull, 9055679078826712367ull}},
+ {{17317721553844043776ull, 4032977144885545383ull,
+ 12787274816388320827ull, 5659799424266695229ull}},
+ {{17035465923877666816ull, 429535412679543825ull,
+ 2149035465203237322ull, 7074749280333369037ull}},
+ {{7459274349564919808ull, 9760291302704205590ull,
+ 7297980349931434556ull, 8843436600416711296ull}},
+ {{50360450050686976ull, 15323554101044904302ull, 4561237718707146597ull,
+ 5527147875260444560ull}},
+ {{9286322599418134528ull, 5319384571023966665ull,
+ 5701547148383933247ull, 6908934844075555700ull}},
+ {{16219589267700056064ull, 2037544695352570427ull,
+ 7126933935479916559ull, 8636168555094444625ull}},
+ {{7831400283098841088ull, 8190994462236438373ull,
+ 15983548755743417609ull, 5397605346934027890ull}},
+ {{14400936372300939264ull, 14850429096222935870ull,
+ 10756063907824496203ull, 6747006683667534863ull}},
+ {{8777798428521398272ull, 13951350351851281934ull,
+ 8833393866353232350ull, 8433758354584418579ull}},
+ {{874437999398486016ull, 4107907951479663305ull, 3215028157257076267ull,
+ 5271098971615261612ull}},
+ {{5704733517675495424ull, 523198920922191227ull, 4018785196571345334ull,
+ 6588873714519077015ull}},
+ {{2519230878666981376ull, 9877370688007514842ull, 411795477286793763ull,
+ 8236092143148846269ull}},
+ {{6186205317594251264ull, 3867513670791002824ull,
+ 2563215182517940054ull, 5147557589468028918ull}},
+ {{7732756646992814080ull, 14057764125343529338ull,
+ 12427391015002200875ull, 6434446986835036147ull}},
+ {{442573771886241792ull, 12960519138252023769ull,
+ 10922552750325363190ull, 8043058733543795184ull}},
+ {{11805823653497370880ull, 3488638442980126951ull,
+ 6826595468953351994ull, 5026911708464871990ull}},
+ {{10145593548444325696ull, 13584170090579934497ull,
+ 17756616373046465800ull, 6283639635581089987ull}},
+ {{17293677953982795024ull, 16980212613224918121ull,
+ 17584084447880694346ull, 7854549544476362484ull}},
+ {{3891019693598165034ull, 15224318901692961730ull,
+ 1766680743070658158ull, 4909093465297726553ull}},
+ {{14087146653852482101ull, 9807026590261426354ull,
+ 6820036947265710602ull, 6136366831622158191ull}},
+ {{8385561280460826818ull, 3035411200972007135ull,
+ 3913360165654750349ull, 7670458539527697739ull}},
+ {{12158504827929098618ull, 4202975009821198411ull,
+ 140007094320525016ull, 4794036587204811087ull}},
+ {{10586445016483985368ull, 5253718762276498014ull,
+ 14010066923182819982ull, 5992545734006013858ull}},
+ {{4009684233750205902ull, 15790520489700398326ull,
+ 8289211617123749169ull, 7490682167507517323ull}},
+ {{16341110701376042401ull, 2951546278421667097ull,
+ 2874914251488649279ull, 4681676354692198327ull}},
+ {{6591330321437889289ull, 17524490903309247584ull,
+ 17428700869642975310ull, 5852095443365247908ull}},
+ {{8239162901797361611ull, 12682241592281783672ull,
+ 3339132013344167522ull, 7315119304206559886ull}},
+ {{10298953627246702013ull, 6629429953497453782ull,
+ 13397287053534985211ull, 9143899130258199857ull}},
+ {{1825159998601800855ull, 1837550711722214662ull,
+ 1455775380818283901ull, 5714936956411374911ull}},
+ {{11504822035107026876ull, 6908624408080156231ull,
+ 15654777281305018588ull, 7143671195514218638ull}},
+ {{9769341525456395691ull, 8635780510100195289ull,
+ 10345099564776497427ull, 8929588994392773298ull}},
+ {{17635053499478717067ull, 3091519809598928103ull,
+ 11077373246412698796ull, 5580993121495483311ull}},
+ {{17432130855921008430ull, 3864399761998660129ull,
+ 9235030539588485591ull, 6976241401869354139ull}},
+ {{7955105514619096825ull, 218813684070937258ull, 6932102156058219085ull,
+ 8720301752336692674ull}},
+ {{9583626965064323420ull, 2442601561758029738ull,
+ 8944249865963774832ull, 5450188595210432921ull}},
+ {{2756161669475628467ull, 3053251952197537173ull,
+ 15791998350882106444ull, 6812735744013041151ull}},
+ {{8056888105271923487ull, 3816564940246921466ull,
+ 15128311920175245151ull, 8515919680016301439ull}},
+ {{9647241084222340084ull, 9302882115295407772ull,
+ 16372723977750610075ull, 5322449800010188399ull}},
+ {{12059051355277925104ull, 7016916625691871811ull,
+ 15854218953760874690ull, 6653062250012735499ull}},
+ {{10462128175670018476ull, 17994517818969615572ull,
+ 15206087673773705458ull, 8316327812515919374ull}},
+ {{15762202146648537356ull, 15858259655283397636ull,
+ 4892118777681178007ull, 5197704882822449609ull}},
+ {{1256008609601120079ull, 15211138550676859142ull,
+ 10726834490528860413ull, 6497131103528062011ull}},
+ {{10793382798856175906ull, 5178865133063910215ull,
+ 8796857094733687613ull, 8121413879410077514ull}},
+ {{13663393276926191798ull, 5542633717378637836ull,
+ 10109721702635942662ull, 5075883674631298446ull}},
+ {{17079241596157739747ull, 16151664183578073103ull,
+ 3413780091440152519ull, 6344854593289123058ull}},
+ {{16737365976769786780ull, 15577894211045203475ull,
+ 13490597151154966457ull, 7931068241611403822ull}},
+ {{8155010726267422785ull, 2818654854262170316ull,
+ 3819937201044466132ull, 4956917651007127389ull}},
+ {{10193763407834278482ull, 3523318567827712895ull,
+ 9386607519732970569ull, 6196147063758909236ull}},
+ {{8130518241365460198ull, 9015834228212029023ull,
+ 11733259399666213211ull, 7745183829698636545ull}},
+ {{11999102928494494480ull, 3329053383418824187ull,
+ 415758097150301401ull, 4840739893561647841ull}},
+ {{10387192642190730196ull, 8773002747700918138ull,
+ 5131383639865264655ull, 6050924866952059801ull}},
+ {{3760618765883636937ull, 6354567416198759769ull,
+ 11025915568258968723ull, 7563656083690074751ull}},
+ {{13879601774745742846ull, 1665761625910530903ull,
+ 13808726257802937308ull, 4727285052306296719ull}},
+ {{12737816200004790653ull, 2082202032388163629ull,
+ 12649221803826283731ull, 5909106315382870899ull}},
+ {{2087212194723824604ull, 16437810595767368249ull,
+ 11199841236355466759ull, 7386382894228588624ull}},
+ {{12833722667770860138ull, 17191160649995687011ull,
+ 6999900772722166724ull, 4616489308892867890ull}},
+ {{11430467316286187268ull, 3042206738785057148ull,
+ 17973248002757484214ull, 5770611636116084862ull}},
+ {{14288084145357734085ull, 13026130460336097243ull,
+ 13243187966592079459ull, 7213264545145106078ull}},
+ {{13248419163269779702ull, 11670977056992733650ull,
+ 7330612921385323516ull, 9016580681431382598ull}},
+ {{12891947995471000218ull, 16517732697475234339ull,
+ 18416691131147990909ull, 5635362925894614123ull}},
+ {{11503248975911362368ull, 6812107816561879212ull,
+ 18409177895507600733ull, 7044203657368267654ull}},
+ {{14379061219889202960ull, 13126820789129736919ull,
+ 13788100332529725108ull, 8805254571710334568ull}},
+ {{15904442290071833706ull, 17427635030060861382ull,
+ 8617562707831078192ull, 5503284107318959105ull}},
+ {{10657180825735016325ull, 3337799713866525112ull,
+ 15383639403216235645ull, 6879105134148698881ull}},
+ {{13321476032168770406ull, 8783935660760544294ull,
+ 5394491198738130844ull, 8598881417685873602ull}},
+ {{3714236501678093600ull, 14713331824830115992ull,
+ 7983243017638719681ull, 5374300886053671001ull}},
+ {{4642795627097617000ull, 4556606725755481278ull,
+ 14590739790475787506ull, 6717876107567088751ull}},
+ {{15026866570726797057ull, 14919130444049127405ull,
+ 13626738719667346478ull, 8397345134458860939ull}},
+ {{11697634615917942113ull, 4712770509103316724ull,
+ 6210868690578397597ull, 5248340709036788087ull}},
+ {{14622043269897427641ull, 10502649154806533809ull,
+ 3151899844795609092ull, 6560425886295985109ull}},
+ {{4442496032089620839ull, 13128311443508167262ull,
+ 8551560824421899269ull, 8200532357869981386ull}},
+ {{16611618075338176737ull, 10511037661406298490ull,
+ 9956411533691074947ull, 5125332723668738366ull}},
+ {{11541150557317945113ull, 8527111058330485209ull,
+ 3222142380259067876ull, 6406665904585922958ull}},
+ {{591380141365267679ull, 10658888822913106512ull,
+ 13251050012178610653ull, 8008332380732403697ull}},
+ {{369612588353292299ull, 8967648523534385522ull, 1364377229970549802ull,
+ 5005207737957752311ull}},
+ {{9685387772296391182ull, 1986188617563206094ull,
+ 15540529592745350965ull, 6256509672447190388ull}},
+ {{2883362678515713170ull, 7094421790381395522ull, 978917917222137090ull,
+ 7820637090558987986ull}},
+ {{6413787692499708635ull, 9045699637415760105ull,
+ 5223509716691223585ull, 4887898181599367491ull}},
+ {{12628920634052023698ull, 15918810565197088035ull,
+ 1917701127436641577ull, 6109872726999209364ull}},
+ {{11174464774137641718ull, 6063455151214196332ull,
+ 2397126409295801972ull, 7637340908749011705ull}},
+ {{16207412520690801882ull, 13013031506363648515ull,
+ 13027419051878345992ull, 4773338067968132315ull}},
+ {{15647579632436114448ull, 16266289382954560644ull,
+ 11672587796420544586ull, 5966672584960165394ull}},
+ {{1112730466835591444ull, 11109489691838424998ull,
+ 5367362708670904925ull, 7458340731200206743ull}},
+ {{14530514597054408365ull, 9249274066612709575ull,
+ 10272130720560397434ull, 4661462957000129214ull}},
+ {{13551457227890622552ull, 2338220546411111161ull,
+ 3616791363845720985ull, 5826828696250161518ull}},
+ {{3104263479581114478ull, 7534461701441276856ull,
+ 13744361241661927039ull, 7283535870312701897ull}},
+ {{3880329349476393097ull, 4806391108374208166ull,
+ 3345393496795245087ull, 9104419837890877372ull}},
+ {{16260263898704909398ull, 9921523470374961959ull,
+ 11314242972351803987ull, 5690262398681798357ull}},
+ {{15713643854953748843ull, 7790218319541314545ull,
+ 307745660157591272ull, 7112827998352247947ull}},
+ {{5806996763410022342ull, 9737772899426643182ull,
+ 14219740130479152802ull, 8891034997940309933ull}},
+ {{17464431032413427676ull, 10697794080569039892ull,
+ 11193180590763164453ull, 5556896873712693708ull}},
+ {{3383794716807232979ull, 17983928619138687770ull,
+ 13991475738453955566ull, 6946121092140867135ull}},
+ {{13453115432863817032ull, 13256538737068583904ull,
+ 12877658654640056554ull, 8682651365176083919ull}},
+ {{8408197145539885645ull, 12897022729095252844ull,
+ 14966065686791117202ull, 5426657103235052449ull}},
+ {{10510246431924857056ull, 6897906374514290247ull,
+ 4872524053206732791ull, 6783321379043815562ull}},
+ {{8526122021478683416ull, 4010696949715474905ull,
+ 15314027103363191797ull, 8479151723804769452ull}},
+ {{16858041309492646895ull, 4812528602785865767ull,
+ 347894902747219065ull, 5299469827377980908ull}},
+ {{16460865618438420715ull, 10627346771909720113ull,
+ 434868628434023831ull, 6624337284222476135ull}},
+ {{6741023967765862181ull, 8672497446459762238ull,
+ 14378643840824693501ull, 8280421605278095168ull}},
+ {{18048198035135827576ull, 7726153913251045350ull,
+ 8986652400515433438ull, 5175263503298809480ull}},
+ {{13336875507065008661ull, 434320354709030880ull,
+ 11233315500644291798ull, 6469079379123511850ull}},
+ {{16671094383831260826ull, 9766272480241064408ull,
+ 4818272338950588939ull, 8086349223904389813ull}},
+ {{10419433989894538017ull, 3798077290936971303ull,
+ 5317263221057812039ull, 5053968264940243633ull}},
+ {{8412606468940784617ull, 135910595243826225ull,
+ 11258265044749652953ull, 6317460331175304541ull}},
+ {{15127444104603368675ull, 4781574262482170685ull,
+ 237773250654902479ull, 7896825413969130677ull}},
+ {{11760495574590799374ull, 9906012941692438534ull,
+ 2454451290873008001ull, 4935515883730706673ull}},
+ {{5477247431383723409ull, 16994202195542936072ull,
+ 7679750132018647905ull, 6169394854663383341ull}},
+ {{6846559289229654262ull, 7407694689146506378ull,
+ 14211373683450697786ull, 7711743568329229176ull}},
+ {{8890785574195921818ull, 9241495199143954390ull,
+ 8882108552156686116ull, 4819839730205768235ull}},
+ {{1890109930890126464ull, 11551868998929942988ull,
+ 6490949671768469741ull, 6024799662757210294ull}},
+ {{2362637413612658080ull, 604778193380265023ull,
+ 17337059126565362985ull, 7530999578446512867ull}},
+ {{8394177411148993156ull, 11907201416931135399ull,
+ 8529818944889657913ull, 4706874736529070542ull}},
+ {{5881035745508853541ull, 1048943715881755537ull,
+ 1438901644257296584ull, 5883593420661338178ull}},
+ {{11962980700313454830ull, 1311179644852194421ull,
+ 11021999092176396538ull, 7354491775826672722ull}},
+ {{1118667820109654825ull, 10862346592920018835ull,
+ 4554126828365719864ull, 9193114719783340903ull}},
+ {{16840068452064391930ull, 6788966620575011771ull,
+ 9763858295369656771ull, 5745696699864588064ull}},
+ {{16438399546653102009ull, 3874522257291376810ull,
+ 12204822869212070964ull, 7182120874830735080ull}},
+ {{11324627396461601703ull, 4843152821614221013ull,
+ 15256028586515088705ull, 8977651093538418850ull}},
+ {{9383735132002195016ull, 14556185559577357893ull,
+ 14146703884999318344ull, 5611031933461511781ull}},
+ {{16341354933430131674ull, 18195231949471697366ull,
+ 3848321800966984218ull, 7013789916826889727ull}},
+ {{11203321629932888785ull, 13520667899984845900ull,
+ 198716232781342369ull, 8767237396033612159ull}},
+ {{16225448055562831299ull, 1532888409849446831ull,
+ 7041726673129420837ull, 5479523372521007599ull}},
+ {{15670124051026151219ull, 6527796530739196443ull,
+ 4190472322984388142ull, 6849404215651259499ull}},
+ {{14975969045355301120ull, 17383117700278771362ull,
+ 626404385303097273ull, 8561755269564074374ull}},
+ {{13971666671774451104ull, 3946919535033150245ull,
+ 14226560796096599508ull, 5351097043477546483ull}},
+ {{3629525284435900168ull, 4933649418791437807ull,
+ 13171514976693361481ull, 6688871304346933104ull}},
+ {{18371964660827038922ull, 10778747791916685162ull,
+ 16464393720866701851ull, 8361089130433666380ull}},
+ {{16094163931444287230ull, 4430874360734234274ull,
+ 1066874038686912849ull, 5225680706521041488ull}},
+ {{10894332877450583230ull, 10150278969345180747ull,
+ 1333592548358641061ull, 6532100883151301860ull}},
+ {{9006230078385841133ull, 17299534730108863838ull,
+ 1666990685448301326ull, 8165126103939127325ull}},
+ {{1017207780563762804ull, 6200523187890651995ull,
+ 3347712187618882281ull, 5103203814961954578ull}},
+ {{15106567780986867217ull, 12362340003290702897ull,
+ 13408012271378378659ull, 6379004768702443222ull}},
+ {{5048151670951420310ull, 10841238985685990718ull,
+ 7536643302368197516ull, 7973755960878054028ull}},
+ {{16990152849626801406ull, 15999146402908520006ull,
+ 13933774100834899255ull, 4983597475548783767ull}},
+ {{12014319025178725949ull, 15387246985208262104ull,
+ 12805531607616236165ull, 6229496844435979709ull}},
+ {{15017898781473407436ull, 5399000676228163918ull,
+ 2171856454238131495ull, 7786871055544974637ull}},
+ {{4774500719993491744ull, 10291904450283684305ull,
+ 3663253293112526136ull, 4866794409715609148ull}},
+ {{10579811918419252584ull, 12864880562854605381ull,
+ 4579066616390657670ull, 6083493012144511435ull}},
+ {{17836450916451453633ull, 6857728666713480918ull,
+ 1112147252060934184ull, 7604366265180639294ull}},
+ {{6536095804354770617ull, 4286080416695925574ull,
+ 14530150087820247577ull, 4752728915737899558ull}},
+ {{17393491792298239079ull, 9969286539297294871ull,
+ 8939315572920533663ull, 5940911144672374448ull}},
+ {{17130178721945410945ull, 7849922155694230685ull,
+ 11174144466150667079ull, 7426138930840468060ull}},
+ {{13012204710429575793ull, 11823730374949976034ull,
+ 16207212328198942732ull, 4641336831775292537ull}},
+ {{7041883851182193933ull, 14779662968687470043ull,
+ 6423957354966514703ull, 5801671039719115672ull}},
+ {{4190668795550354512ull, 13862892692431949650ull,
+ 8029946693708143379ull, 7252088799648894590ull}},
+ {{14461708031292718948ull, 12716929847112549158ull,
+ 814061330280403416ull, 9065110999561118238ull}},
+ {{4426881501130561438ull, 7948081154445343224ull,
+ 14343846386707415847ull, 5665694374725698898ull}},
+ {{5533601876413201798ull, 5323415424629291126ull,
+ 8706435946529494001ull, 7082117968407123623ull}},
+ {{16140374382371278055ull, 11265955299214001811ull,
+ 6271358914734479597ull, 8852647460508904529ull}},
+ {{7781890979768354833ull, 9347065071222445084ull,
+ 15448814367777519508ull, 5532904662818065330ull}},
+ {{9727363724710443541ull, 11683831339028056355ull,
+ 10087645922867123577ull, 6916130828522581663ull}},
+ {{7547518637460666522ull, 769731118502906732ull, 7997871385156516568ull,
+ 8645163535653227079ull}},
+ {{13940571185267692384ull, 481081949064316707ull,
+ 11916198643363904711ull, 5403227209783266924ull}},
+ {{12814027963157227576ull, 14436410491612559596ull,
+ 14895248304204880888ull, 6754034012229083655ull}},
+ {{16017534953946534470ull, 18045513114515699495ull,
+ 14007374361828713206ull, 8442542515286354569ull}},
+ {{16928488373857665900ull, 6666759678144924280ull,
+ 1837079948501863898ull, 5276589072053971606ull}},
+ {{2713866393612530759ull, 17556821634535931159ull,
+ 11519721972482105680ull, 6595736340067464507ull}},
+ {{17227391047297827161ull, 3499282969460362332ull,
+ 9787966447175244197ull, 8244670425084330634ull}},
+ {{1543747367706366168ull, 4492894865126420410ull,
+ 10729165047911915527ull, 5152919015677706646ull}},
+ {{11153056246487733517ull, 1004432562980637608ull,
+ 4188084273035118601ull, 6441148769597133308ull}},
+ {{13941320308109666897ull, 5867226722153184914ull,
+ 5235105341293898251ull, 8051435961996416635ull}},
+ {{13325011210995929715ull, 1361173692132046619ull,
+ 966097829094992455ull, 5032147476247760397ull}},
+ {{12044577995317524239ull, 15536525170447221986ull,
+ 5819308304796128472ull, 6290184345309700496ull}},
+ {{5832350457292129491ull, 973912389349475867ull, 7274135380995160591ull,
+ 7862730431637125620ull}},
+ {{1339376026593886980ull, 7526224270984504273ull,
+ 13769706649976751177ull, 4914206519773203512ull}},
+ {{6285906051669746629ull, 14019466357158018245ull,
+ 17212133312470938971ull, 6142758149716504390ull}},
+ {{12469068583014571190ull, 12912646928020134902ull,
+ 12291794603733897906ull, 7678447687145630488ull}},
+ {{3181481845956719090ull, 12682090348439972218ull,
+ 7682371627333686191ull, 4799029804466019055ull}},
+ {{13200224344300674670ull, 11240926917122577368ull,
+ 4991278515739719835ull, 5998787255582523819ull}},
+ {{16500280430375843337ull, 9439472627975833806ull,
+ 1627412126247261890ull, 7498484069478154774ull}},
+ {{5700989250557514182ull, 10511356410912284033ull,
+ 14852190634186702393ull, 4686552543423846733ull}},
+ {{11737922581624280632ull, 17750881532067742945ull,
+ 4730180237451214279ull, 5858190679279808417ull}},
+ {{837345171748187077ull, 17576915896657290778ull,
+ 10524411315241405753ull, 7322738349099760521ull}},
+ {{10270053501540009654ull, 8136086815539449760ull,
+ 17767200162479145096ull, 9153422936374700651ull}},
+ {{6418783438462506034ull, 5085054259712156100ull,
+ 8798657092335771733ull, 5720889335234187907ull}},
+ {{8023479298078132543ull, 10968003843067583029ull,
+ 6386635346992326762ull, 7151111669042734884ull}},
+ {{14641035141025053582ull, 4486632766979702978ull,
+ 7983294183740408453ull, 8938889586303418605ull}},
+ {{13762332981568046393ull, 5109988488576008313ull,
+ 7295401874051449235ull, 5586805991439636628ull}},
+ {{3367858171677894279ull, 1775799592292622488ull,
+ 9119252342564311544ull, 6983507489299545785ull}},
+ {{4209822714597367849ull, 2219749490365778110ull,
+ 16010751446632777334ull, 8729384361624432231ull}},
+ {{16466197251905518618ull, 15222401486760775030ull,
+ 16924248681786567689ull, 5455865226015270144ull}},
+ {{11359374528027122464ull, 5192943803168805076ull,
+ 2708566778523657996ull, 6819831532519087681ull}},
+ {{14199218160033903080ull, 6491179753961006345ull,
+ 7997394491581960399ull, 8524789415648859601ull}},
+ {{1956982322380107569ull, 10974516373866710822ull,
+ 16527586603307195009ull, 5327993384780537250ull}},
+ {{11669599939829910269ull, 18329831485760776431ull,
+ 11436111217279217953ull, 6659991730975671563ull}},
+ {{9975313906359999932ull, 9077231301918806827ull,
+ 9683453003171634538ull, 8324989663719589454ull}},
+ {{3928728182261306006ull, 10284955582126642171ull,
+ 1440472108554883682ull, 5203118539824743409ull}},
+ {{299224209399244603ull, 3632822440803526906ull, 6412276154120992507ull,
+ 6503898174780929261ull}},
+ {{9597402298603831562ull, 18376086106286572344ull,
+ 12627031211078628537ull, 8129872718476161576ull}},
+ {{5998376436627394726ull, 4567524788788025859ull,
+ 7891894506924142836ull, 5081170449047600985ull}},
+ {{2886284527356855504ull, 5709405985985032324ull,
+ 14476554152082566449ull, 6351463061309501231ull}},
+ {{3607855659196069380ull, 11748443500908678309ull,
+ 13484006671675820157ull, 7939328826636876539ull}},
+ {{4560752796211237315ull, 9648620197281617895ull,
+ 6121661160583693646ull, 4962080516648047837ull}},
+ {{1089254976836658739ull, 2837403209747246561ull,
+ 12263762469157004962ull, 6202600645810059796ull}},
+ {{5973254739473211328ull, 12770126049038834009ull,
+ 15329703086446256202ull, 7753250807262574745ull}},
+ {{15262499258239226840ull, 12593014799076659159ull,
+ 2663535401387828270ull, 4845781754539109216ull}},
+ {{14466438054371645646ull, 6517896461991048141ull,
+ 3329419251734785338ull, 6057227193173886520ull}},
+ {{4247989512682393345ull, 17370742614343585985ull,
+ 4161774064668481672ull, 7571533991467358150ull}},
+ {{14184208491494965601ull, 10856714133964741240ull,
+ 16436166845699964757ull, 4732208744667098843ull}},
+ {{17730260614368707001ull, 18182578685883314454ull,
+ 15933522538697568042ull, 5915260930833873554ull}},
+ {{12939453731106107943ull, 13504851320499367260ull,
+ 10693531136517184245ull, 7394076163542341943ull}},
+ {{17310530618796093273ull, 10746375084525798489ull,
+ 13600985987964322009ull, 4621297602213963714ull}},
+ {{7803105218212952879ull, 18044654874084636016ull,
+ 7777860448100626703ull, 5776622002767454643ull}},
+ {{9753881522766191098ull, 17944132574178407116ull,
+ 5110639541698395475ull, 7220777503459318304ull}},
+ {{12192351903457738873ull, 17818479699295620991ull,
+ 6388299427122994344ull, 9025971879324147880ull}},
+ {{14537748967302168652ull, 11136549812059763119ull,
+ 3992687141951871465ull, 5641232424577592425ull}},
+ {{13560500190700322911ull, 85629209792540187ull, 9602544945867227236ull,
+ 7051540530721990531ull}},
+ {{12338939219948015734ull, 107036512240675234ull,
+ 7391495163906646141ull, 8814425663402488164ull}},
+ {{12323523030894897738ull, 2372740829364115973ull,
+ 13843056514296429646ull, 5509016039626555102ull}},
+ {{1569345733336458460ull, 12189298073559920775ull,
+ 8080448606015761249ull, 6886270049533193878ull}},
+ {{15796740221952736787ull, 1401564536667737256ull,
+ 877188720664925754ull, 8607837561916492348ull}},
+ {{9872962638720460492ull, 5487663853844723689ull,
+ 9771614987270354404ull, 5379898476197807717ull}},
+ {{16952889316827963519ull, 6859579817305904611ull,
+ 16826204752515330909ull, 6724873095247259646ull}},
+ {{16579425627607566495ull, 13186160790059768668ull,
+ 11809383903789387828ull, 8406091369059074558ull}},
+ {{1138768980399953251ull, 17464722530642131226ull,
+ 2769178921440979488ull, 5253807105661921599ull}},
+ {{10646833262354717372ull, 3384159089593112416ull,
+ 17296531707083388073ull, 6567258882077401998ull}},
+ {{13308541577943396715ull, 8841884880418778424ull,
+ 12397292596999459283ull, 8209073602596752498ull}},
+ {{8317838486214622947ull, 3220335041048042563ull,
+ 12359993891552049956ull, 5130671001622970311ull}},
+ {{5785612089340890780ull, 4025418801310053204ull,
+ 10838306346012674541ull, 6413338752028712889ull}},
+ {{7232015111676113475ull, 9643459520064954409ull,
+ 18159568950943231080ull, 8016673440035891111ull}},
+ {{16049224490866040682ull, 6027162200040596505ull,
+ 18267259621980601281ull, 5010420900022431944ull}},
+ {{6226472558300387140ull, 12145638768478133536ull,
+ 4387330453766199985ull, 6263026125028039931ull}},
+ {{7783090697875483925ull, 1346990405315503208ull, 872477048780362078ull,
+ 7828782656285049914ull}},
+ {{4864431686172177453ull, 14676927058604353217ull,
+ 5156984173915114202ull, 4892989160178156196ull}},
+ {{10692225626142609721ull, 9122786786400665713ull,
+ 6446230217393892753ull, 6116236450222695245ull}},
+ {{17976968051105650055ull, 16015169501428220045ull,
+ 12669473790169753845ull, 7645295562778369056ull}},
+ {{13541448041154725236ull, 12315323947606331480ull,
+ 7918421118856096153ull, 4778309726736480660ull}},
+ {{16926810051443406545ull, 1559096879225750638ull,
+ 9898026398570120192ull, 5972887158420600825ull}},
+ {{11935140527449482373ull, 1948871099032188298ull,
+ 16984219016640038144ull, 7466108948025751031ull}},
+ {{12071148848083314388ull, 1218044436895117686ull,
+ 17532665913041105696ull, 4666318092516094394ull}},
+ {{5865564023249367176ull, 1522555546118897108ull,
+ 12692460354446606312ull, 5832897615645117993ull}},
+ {{7331955029061708970ull, 1903194432648621385ull,
+ 2030517387776094178ull, 7291122019556397492ull}},
+ {{13776629804754524117ull, 11602365077665552539ull,
+ 2538146734720117722ull, 9113902524445496865ull}},
+ {{6304550618757883621ull, 11863164191968358241ull,
+ 13115556755268543336ull, 5696189077778435540ull}},
+ {{12492374291874742430ull, 14828955239960447801ull,
+ 16394445944085679170ull, 7120236347223044425ull}},
+ {{1780409809561264326ull, 9312822013095783944ull,
+ 6657999374824935251ull, 8900295434028805532ull}},
+ {{1112756130975790204ull, 3514670748971171013ull,
+ 13384621646120360340ull, 5562684646268003457ull}},
+ {{6002631182147125659ull, 4393338436213963766ull,
+ 2895719002368286713ull, 6953355807835004322ull}},
+ {{16726661014538682881ull, 10103359063694842611ull,
+ 12843020789815134199ull, 8691694759793755402ull}},
+ {{8148320124872982849ull, 13232128442450358488ull,
+ 12638574012061846778ull, 5432309224871097126ull}},
+ {{10185400156091228561ull, 7316788516208172302ull,
+ 6574845478222532665ull, 6790386531088871408ull}},
+ {{3508378158259259893ull, 13757671663687603282ull,
+ 8218556847778165831ull, 8487983163861089260ull}},
+ {{6804422367339425337ull, 15516073817445833907ull,
+ 14359970066716129452ull, 5304989477413180787ull}},
+ {{3893841940746893768ull, 948348198097740768ull,
+ 13338276564967773912ull, 6631236846766475984ull}},
+ {{4867302425933617209ull, 1185435247622175960ull,
+ 16672845706209717390ull, 8289046058458094980ull}},
+ {{3042064016208510756ull, 14575955085046023687ull,
+ 1197156529526297560ull, 5180653786536309363ull}},
+ {{17637638075542802157ull, 18219943856307529608ull,
+ 15331503717190035662ull, 6475817233170386703ull}},
+ {{3600303520718951080ull, 13551557783529636203ull,
+ 14552693628060156674ull, 8094771541462983379ull}},
+ {{18391090764945202089ull, 13081409633133410530ull,
+ 6789590508323903969ull, 5059232213414364612ull}},
+ {{13765491419326726803ull, 2516703986134599451ull,
+ 8486988135404879962ull, 6324040266767955765ull}},
+ {{12595178255731020600ull, 12369252019523025122ull,
+ 15220421187683487856ull, 7905050333459944706ull}},
+ {{12483672428259275779ull, 7730782512201890701ull,
+ 14124449260729567814ull, 4940656458412465441ull}},
+ {{1769532480041931012ull, 440106103397587569ull, 3820503520629796056ull,
+ 6175820573015581802ull}},
+ {{6823601618479801669ull, 550132629246984461ull,
+ 13999001437642020878ull, 7719775716269477252ull}},
+ {{6570594020763569995ull, 14178890948561529000ull,
+ 17972747935381038856ull, 4824859822668423282ull}},
+ {{8213242525954462494ull, 17723613685701911250ull,
+ 13242562882371522762ull, 6031074778335529103ull}},
+ {{1043181120588302309ull, 12931145070272613255ull,
+ 11941517584537015549ull, 7538843472919411379ull}},
+ {{7569517228008770799ull, 10387808678134077236ull,
+ 5157605481121940766ull, 4711777170574632112ull}},
+ {{9461896535010963499ull, 3761388810812820737ull,
+ 6447006851402425958ull, 5889721463218290140ull}},
+ {{16439056687191092278ull, 13925108050370801729ull,
+ 8058758564253032447ull, 7362151829022862675ull}},
+ {{6713762803706701635ull, 12794699044536114258ull,
+ 5461762186888902655ull, 9202689786278578344ull}},
+ {{8807787770744076426ull, 14914215930476153267ull,
+ 3413601366805564159ull, 5751681116424111465ull}},
+ {{6398048695002707629ull, 14031083894667803680ull,
+ 8878687726934343103ull, 7189601395530139331ull}},
+ {{7997560868753384536ull, 12927168849907366696ull,
+ 6486673640240540975ull, 8987001744412674164ull}},
+ {{4998475542970865335ull, 14997009558833186041ull,
+ 13277543062005113917ull, 5616876090257921352ull}},
+ {{10859780447140969573ull, 4911203893259318839ull,
+ 16596928827506392397ull, 7021095112822401690ull}},
+ {{8963039540498824062ull, 10750690885001536453ull,
+ 11522788997528214688ull, 8776368891028002113ull}},
+ {{7907742722025458991ull, 6719181803125960283ull, 284214095814052324ull,
+ 5485230556892501321ull}},
+ {{5272992384104435834ull, 8398977253907450354ull,
+ 4966953638194953309ull, 6856538196115626651ull}},
+ {{15814612516985320601ull, 15110407585811700846ull,
+ 1597006029316303732ull, 8570672745144533314ull}},
+ {{5272446804688437472ull, 220632704277537221ull, 5609814786750077737ull,
+ 5356670465715333321ull}},
+ {{11202244524287934743ull, 4887476898774309430ull,
+ 11623954501864985075ull, 6695838082144166651ull}},
+ {{4779433618505142621ull, 1497660105040498884ull,
+ 9918257108903843440ull, 8369797602680208314ull}},
+ {{12210518048420489946ull, 936037565650311802ull,
+ 10810596711492290054ull, 5231123501675130196ull}},
+ {{6039775523670836625ull, 10393418993917665561ull,
+ 13513245889365362567ull, 6538904377093912745ull}},
+ {{12161405423015933685ull, 8380087723969694047ull,
+ 3056499306424539497ull, 8173630471367390932ull}},
+ {{14518407417026040409ull, 16766769873549528539ull,
+ 11133684103370112993ull, 5108519044604619332ull}},
+ {{13536323252855162607ull, 7123404286654746962ull,
+ 13917105129212641242ull, 6385648805755774165ull}},
+ {{7697032029214177451ull, 18127627395173209511ull,
+ 3561323356233637840ull, 7982061007194717707ull}},
+ {{11728174045899942763ull, 11329767121983255944ull,
+ 18366728162141881314ull, 4988788129496698566ull}},
+ {{14660217557374928454ull, 4938836865624294122ull,
+ 13735038165822575835ull, 6235985161870873208ull}},
+ {{9101899909863884759ull, 1561860063602979749ull,
+ 17168797707278219794ull, 7794981452338591510ull}},
+ {{7994530452878621927ull, 5587848558179250247ull,
+ 6118812548621499467ull, 4871863407711619694ull}},
+ {{5381477047670889504ull, 2373124679296674905ull,
+ 16871887722631650142ull, 6089829259639524617ull}},
+ {{11338532328015999784ull, 12189777885975619439ull,
+ 7254801598007398965ull, 7612286574549405772ull}},
+ {{14004111732651081721ull, 9924454187948456101ull,
+ 13757623035609400161ull, 4757679109093378607ull}},
+ {{3670081610531688440ull, 17017253753362958031ull,
+ 12585342776084362297ull, 5947098886366723259ull}},
+ {{18422660068446774261ull, 7436509136421533826ull,
+ 11119992451678064968ull, 7433873607958404074ull}},
+ {{16125848561206621817ull, 4647818210263458641ull,
+ 11561681300726178509ull, 4646171004974002546ull}},
+ {{6322252646226113560ull, 10421458781256711206ull,
+ 5228729589052947328ull, 5807713756217503183ull}},
+ {{17126187844637417758ull, 13026823476570889007ull,
+ 1924225967888796256ull, 7259642195271878979ull}},
+ {{16796048787369384293ull, 16283529345713611259ull,
+ 16240340515143159032ull, 9074552744089848723ull}},
+ {{8191687482892171231ull, 10177205841071007037ull,
+ 7844369812750780443ull, 5671595465056155452ull}},
+ {{14851295372042601943ull, 8109821282911370892ull,
+ 9805462265938475554ull, 7089494331320194315ull}},
+ {{117375141343700812ull, 913904566784437808ull, 7645141813995706539ull,
+ 8861867914150242894ull}},
+ {{73359463339813008ull, 16712091418736131294ull, 166527615319928682ull,
+ 5538667446343901809ull}},
+ {{9315071366029542068ull, 11666742236565388309ull,
+ 4819845537577298757ull, 6923334307929877261ull}},
+ {{16255525225964315489ull, 748369740424571674ull,
+ 10636492940399011351ull, 8654167884912346576ull}},
+ {{14771389284655085085ull, 7385260115406439152ull,
+ 6647808087749382094ull, 5408854928070216610ull}},
+ {{17492532109304740ull, 8203107403273133ull, 17533132146541503426ull,
+ 6761068660087770762ull}},
+ {{4633551683564018828ull, 9233625921108867224ull,
+ 12693043146322103474ull, 8451335825109713453ull}},
+ {{2895969802227511768ull, 10382702219120429919ull,
+ 10238994975665008623ull, 5282084890693570908ull}},
+ {{17455020308066553422ull, 8366691755473149494ull,
+ 12798743719581260779ull, 6602606113366963635ull}},
+ {{12595403348228415969ull, 5846678675914048964ull,
+ 11386743631049188070ull, 8253257641708704544ull}},
+ {{17095499129497535789ull, 17489232227728444314ull,
+ 7116714769405742543ull, 5158286026067940340ull}},
+ {{12146001875017143928ull, 17249854266233167489ull,
+ 8895893461757178179ull, 6447857532584925425ull}},
+ {{1347444288489266198ull, 16950631814364071458ull,
+ 15731552845623860628ull, 8059821915731156781ull}},
+ {{5453838698733179278ull, 1370772847122768853ull,
+ 12138063537728606845ull, 5037388697331972988ull}},
+ {{11428984391843862001ull, 6325152077330848970ull,
+ 15172579422160758556ull, 6296735871664966235ull}},
+ {{5062858452950051693ull, 7906440096663561213ull,
+ 14354038259273560291ull, 7870919839581207794ull}},
+ {{5470129542307476261ull, 2635682051201031806ull,
+ 13582959930473363086ull, 4919324899738254871ull}},
+ {{16061033964739121134ull, 12517974600856065565ull,
+ 12367013894664315953ull, 6149156124672818589ull}},
+ {{6241234400641737705ull, 1812410195787918245ull,
+ 1623709313048231230ull, 7686445155841023237ull}},
+ {{6206614509614780018ull, 14967814427649612615ull,
+ 3320661329868838470ull, 4804028222400639523ull}},
+ {{3146582118591087118ull, 9486395997707239961ull,
+ 17985884717618211800ull, 6005035278000799403ull}},
+ {{8544913666666246801ull, 11857994997134049951ull,
+ 17870669878595376846ull, 7506294097500999254ull}},
+ {{12258100069307486107ull, 2799560854781393315ull,
+ 6557482655694722625ull, 4691433810938124534ull}},
+ {{10710939068206969730ull, 8111137086904129548ull,
+ 17420225356473179089ull, 5864292263672655667ull}},
+ {{13388673835258712162ull, 14750607377057549839ull,
+ 17163595677164085957ull, 7330365329590819584ull}},
+ {{12124156275646002298ull, 4603201166039773587ull,
+ 3007750522745555831ull, 9162956661988524481ull}},
+ {{5271754663065057485ull, 9794529756415940348ull,
+ 13409059122784442154ull, 5726847913742827800ull}},
+ {{6589693328831321856ull, 3019790158665149627ull,
+ 16761323903480552693ull, 7158559892178534750ull}},
+ {{3625430642611764415ull, 8386423716758824938ull,
+ 11728282842495915058ull, 8948199865223168438ull}},
+ {{6877580170059740664ull, 9853200841401653490ull,
+ 2718490758132559007ull, 5592624915764480274ull}},
+ {{17820347249429451638ull, 7704815033324678958ull,
+ 12621485484520474567ull, 6990781144705600342ull}},
+ {{13052062024932038739ull, 5019332773228460794ull,
+ 6553484818795817401ull, 8738476430882000428ull}},
+ {{12769224784009912116ull, 14666298029336257756ull,
+ 13319300048602161683ull, 5461547769301250267ull}},
+ {{15961530980012390145ull, 13721186518242934291ull,
+ 12037439042325314200ull, 6826934711626562834ull}},
+ {{15340227706588099777ull, 17151483147803667864ull,
+ 5823426766051866942ull, 8533668389533203543ull}},
+ {{9587642316617562361ull, 6107990948949904511ull,
+ 10557170756423498695ull, 5333542743458252214ull}},
+ {{7372866877344565047ull, 3023302667759992735ull,
+ 3973091408674597561ull, 6666928429322815268ull}},
+ {{4604397578253318405ull, 8390814353127378823ull,
+ 4966364260843246951ull, 8333660536653519085ull}},
+ {{9795277514049405859ull, 12161787998345693620ull,
+ 5409820672240723296ull, 5208537835408449428ull}},
+ {{12244096892561757324ull, 15202234997932117025ull,
+ 6762275840300904120ull, 6510672294260561785ull}},
+ {{1470063060420032942ull, 556049673705594666ull,
+ 13064530818803518055ull, 8138340367825702231ull}},
+ {{5530475431189908493ull, 7265060073707078522ull,
+ 15082860789393280640ull, 5086462729891063894ull}},
+ {{16136466325842161424ull, 9081325092133848152ull,
+ 9630203949886824992ull, 6358078412363829868ull}},
+ {{1723838833593150164ull, 11351656365167310191ull,
+ 12037754937358531240ull, 7947598015454787335ull}},
+ {{7994928298636800709ull, 7094785228229568869ull,
+ 14441125863490163881ull, 4967248759659242084ull}},
+ {{14605346391723388790ull, 13480167553714348990ull,
+ 18051407329362704851ull, 6209060949574052605ull}},
+ {{9033310952799460179ull, 12238523423715548334ull,
+ 8729201106421217352ull, 7761326186967565757ull}},
+ {{1034133327072274708ull, 7649077139822217709ull,
+ 7761593700726954797ull, 4850828866854728598ull}},
+ {{5904352677267731289ull, 14173032443205160040ull,
+ 478620089053917688ull, 6063536083568410748ull}},
+ {{7380440846584664111ull, 17716290554006450050ull,
+ 598275111317397110ull, 7579420104460513435ull}},
+ {{9224461547542802974ull, 6460995577826643377ull,
+ 16514823009069230858ull, 4737137565287820896ull}},
+ {{16142262952855891621ull, 17299616509138080029ull,
+ 2196784687626986956ull, 5921421956609776121ull}},
+ {{6342770635787700814ull, 3177776562713048421ull,
+ 7357666877961121600ull, 7401777445762220151ull}},
+ {{6270074656581006961ull, 1986110351695655263ull,
+ 11516070826366782856ull, 4626110903601387594ull}},
+ {{3225907302298870797ull, 2482637939619569079ull,
+ 5171716496103702762ull, 5782638629501734493ull}},
+ {{17867442183155752209ull, 12326669461379237156ull,
+ 11076331638557016356ull, 7228298286877168116ull}},
+ {{3887558655235138645ull, 15408336826724046446ull,
+ 13845414548196270445ull, 9035372858596460145ull}},
+ {{16264782214804125365ull, 11936053525916222980ull,
+ 1735855064981587172ull, 5647108036622787591ull}},
+ {{1884233694795605090ull, 14920066907395278726ull,
+ 16004876886509147677ull, 7058885045778484488ull}},
+ {{11578664155349282171ull, 4815025578961934695ull,
+ 1559352034426882981ull, 8823606307223105611ull}},
+ {{14154194124734383213ull, 5315233996064903136ull,
+ 17115496086012659527ull, 5514753942014441006ull}},
+ {{17692742655917979016ull, 2032356476653741016ull,
+ 12170998070661048601ull, 6893442427518051258ull}},
+ {{3669184246187922154ull, 7152131614244564175ull,
+ 5990375551471534943ull, 8616803034397564073ull}},
+ {{9210769181508533202ull, 11387611286543934465ull,
+ 15273199765738179099ull, 5385501896498477545ull}},
+ {{16125147495313054407ull, 9622828089752530177ull,
+ 5256441651890560162ull, 6731877370623096932ull}},
+ {{6321376313859154296ull, 2805163075335886914ull,
+ 6570552064863200203ull, 8414846713278871165ull}},
+ {{8562546214589359339ull, 17894127986580786985ull,
+ 6412438049753194078ull, 5259279195799294478ull}},
+ {{15314868786664087078ull, 13144287946371207923ull,
+ 17238919599046268406ull, 6574098994749118097ull}},
+ {{14531899964902720943ull, 7206987896109234096ull,
+ 7713591443525671796ull, 8217623743436397622ull}},
+ {{9082437478064200590ull, 13727739471923047118ull,
+ 209308633776156968ull, 5136014839647748514ull}},
+ {{2129674810725474929ull, 17159674339903808898ull,
+ 9485007829074972018ull, 6420018549559685642ull}},
+ {{11885465550261619469ull, 12226220888024985314ull,
+ 2632887749488939215ull, 8025023186949607053ull}},
+ {{12040101987340900073ull, 14558917082656697677ull,
+ 3951397852644280961ull, 5015639491843504408ull}},
+ {{1215069428893961379ull, 4363588298038708385ull,
+ 4939247315805351202ull, 6269549364804380510ull}},
+ {{6130522804544839627ull, 14677857409403161289ull,
+ 15397431181611464810ull, 7836936706005475637ull}},
+ {{15360791798908994527ull, 13785346899304363709ull,
+ 11929237497720859458ull, 4898085441253422273ull}},
+ {{5365931693354079447ull, 8008311587275678829ull,
+ 1076488816868910611ull, 6122606801566777842ull}},
+ {{11319100635119987212ull, 5398703465667210632ull,
+ 10568983057940914072ull, 7653258501958472302ull}},
+ {{7074437896949992008ull, 3374189666042006645ull,
+ 1993928392785683391ull, 4783286563724045189ull}},
+ {{13454733389614877914ull, 18052795137834672018ull,
+ 7104096509409492142ull, 5979108204655056486ull}},
+ {{7595044700163821584ull, 13342621885438564215ull,
+ 18103492673616640986ull, 7473885255818820607ull}},
+ {{11664431965243470346ull, 12950824696826490538ull,
+ 18232211948651482472ull, 4671178284886762879ull}},
+ {{5357167919699562125ull, 16188530871033113173ull,
+ 18178578917386965186ull, 5838972856108453599ull}},
+ {{11308145918051840560ull, 11012291551936615658ull,
+ 18111537628306318579ull, 7298716070135566999ull}},
+ {{4911810360710024891ull, 9153678421493381669ull,
+ 18027736016955510320ull, 9123395087669458749ull}},
+ {{5375724484657459509ull, 5721049013433363543ull,
+ 13573178019810887902ull, 5702121929793411718ull}},
+ {{2107969587394436483ull, 16374683303646480237ull,
+ 7743100487908834069ull, 7127652412241764648ull}},
+ {{7246648002670433507ull, 6633296074275936584ull,
+ 9678875609886042587ull, 8909565515302205810ull}},
+ {{4529155001669020942ull, 1839967037208766413ull,
+ 10660983274606164521ull, 5568478447063878631ull}},
+ {{10273129770513664082ull, 6911644814938345920ull,
+ 8714543074830317747ull, 6960598058829848289ull}},
+ {{12841412213142080102ull, 4027870000245544496ull,
+ 15504864861965285088ull, 8700747573537310361ull}},
+ {{8025882633213800064ull, 2517418750153465310ull,
+ 2773011511087221324ull, 5437967233460818976ull}},
+ {{808981254662474272ull, 3146773437691831638ull, 3466264388859026655ull,
+ 6797459041826023720ull}},
+ {{10234598605182868647ull, 17768524852396953259ull,
+ 4332830486073783318ull, 8496823802282529650ull}},
+ {{4090781119025598953ull, 6493642014320707883ull,
+ 7319705072223502478ull, 5310514876426581031ull}},
+ {{501790380354610787ull, 17340424554755660662ull,
+ 4537945321851990193ull, 6638143595533226289ull}},
+ {{9850610012298039291ull, 7840472638162412115ull,
+ 10284117670742375646ull, 8297679494416532861ull}},
+ {{3850788248472580605ull, 288609380424119668ull, 8733416553427678731ull,
+ 5186049684010333038ull}},
+ {{4813485310590725757ull, 14195819780812313297ull,
+ 1693398654929822605ull, 6482562105012916298ull}},
+ {{10628542656665795100ull, 3909716670733227909ull,
+ 11340120355517054065ull, 8103202631266145372ull}},
+ {{8948682169629815889ull, 13972787965276737203ull,
+ 16310947259052934598ull, 5064501644541340857ull}},
+ {{6574166693609881958ull, 8242612919741145696ull,
+ 6553626018534004536ull, 6330627055676676072ull}},
+ {{8217708367012352447ull, 10303266149676432120ull,
+ 8192032523167505670ull, 7913283819595845090ull}},
+ {{5136067729382720280ull, 1827855325120382171ull,
+ 9731706345407078948ull, 4945802387247403181ull}},
+ {{1808398643301012445ull, 2284819156400477714ull,
+ 16776318950186236589ull, 6182252984059253976ull}},
+ {{11483870340981041365ull, 7467709963927985046ull,
+ 2523654614023244120ull, 7727816230074067471ull}},
+ {{2565732944685762949ull, 4667318727454990654ull,
+ 8494813161405609431ull, 4829885143796292169ull}},
+ {{12430538217711979494ull, 1222462390891350413ull,
+ 15230202470184399693ull, 6037356429745365211ull}},
+ {{1703114716857810656ull, 6139764007041575921ull,
+ 14426067069303111712ull, 7546695537181706514ull}},
+ {{12593661744104601420ull, 3837352504400984950ull,
+ 13627977936741832724ull, 4716684710738566571ull}},
+ {{6518705143275975967ull, 4796690630501231188ull,
+ 12423286402499903001ull, 5895855888423208214ull}},
+ {{8148381429094969958ull, 10607549306553926889ull,
+ 6305735966270102943ull, 7369819860529010268ull}},
+ {{14797162804796100352ull, 8647750614765020707ull,
+ 7882169957837628679ull, 9212274825661262835ull}},
+ {{6942383743783868768ull, 12322373161869219798ull,
+ 2620513214434823972ull, 5757671766038289272ull}},
+ {{17901351716584611768ull, 15402966452336524747ull,
+ 3275641518043529965ull, 7197089707547861590ull}},
+ {{17765003627303376806ull, 5418650010138492222ull,
+ 13317923934409188265ull, 8996362134434826987ull}},
+ {{6491441248637222600ull, 14915871302405027399ull,
+ 6017859449792048713ull, 5622726334021766867ull}},
+ {{3502615542369140346ull, 4809781072724120537ull,
+ 2910638293812672988ull, 7028407917527208584ull}},
+ {{8989955446388813336ull, 6012226340905150671ull,
+ 3638297867265841235ull, 8785509896909010730ull}},
+ {{12536251181634090191ull, 1451798453852025217ull,
+ 6885622185468538676ull, 5490943685568131706ull}},
+ {{1835255921760449027ull, 1814748067315031522ull,
+ 17830399768690449153ull, 6863679606960164632ull}},
+ {{11517441939055337091ull, 6880121102571177306ull,
+ 3841255637153509825ull, 8579599508700205791ull}},
+ {{11810087230336973586ull, 15829290735175455576ull,
+ 9318313800862025496ull, 5362249692937628619ull}},
+ {{14762609037921216983ull, 1339869345259767854ull,
+ 7036206232650143967ull, 6702812116172035774ull}},
+ {{9229889260546745420ull, 15509894736856873530ull,
+ 18018629827667455766ull, 8378515145215044717ull}},
+ {{10380366806269103792ull, 5081998192108158052ull,
+ 13567486651505853806ull, 5236571965759402948ull}},
+ {{12975458507836379740ull, 15575869776989973373ull,
+ 16959358314382317257ull, 6545714957199253685ull}},
+ {{2384265079513310963ull, 5634779165955303005ull,
+ 7364139837695732860ull, 8182143696499067107ull}},
+ {{3796008683909513304ull, 12745109015576840186ull,
+ 2296744389346139085ull, 5113839810311916942ull}},
+ {{13968382891741667438ull, 2096328214188886520ull,
+ 12094302523537449665ull, 6392299762889896177ull}},
+ {{17460478614677084297ull, 7232096286163496054ull,
+ 1282820099139648369ull, 7990374703612370222ull}},
+ {{6301113115745789782ull, 16049275224920654794ull,
+ 14636820617244443942ull, 4993984189757731388ull}},
+ {{17099763431537013035ull, 10838221994296042684ull,
+ 18296025771555554928ull, 6242480237197164235ull}},
+ {{2927960215711714678ull, 13547777492870053356ull,
+ 18258346196017055756ull, 7803100296496455294ull}},
+ {{11053347171674597482ull, 17690732969898559155ull,
+ 6799780354083271943ull, 4876937685310284559ull}},
+ {{9204997946165858948ull, 17501730193945811040ull,
+ 3888039424176702025ull, 6096172106637855699ull}},
+ {{11506247432707323685ull, 8042104687150100088ull,
+ 248363261793489628ull, 7620215133297319624ull}},
+ {{7191404645442077303ull, 14249687466323588363ull,
+ 155227038620931017ull, 4762634458310824765ull}},
+ {{4377569788375208725ull, 3977051277622321742ull,
+ 4805719816703551676ull, 5953293072888530956ull}},
+ {{14695334272323786714ull, 4971314097027902177ull,
+ 6007149770879439595ull, 7441616341110663695ull}},
+ {{2267054892561284840ull, 801228301428744909ull,
+ 10671997634440731603ull, 4651010213194164809ull}},
+ {{7445504634128993954ull, 14836593432068094848ull,
+ 17951683061478302407ull, 5813762766492706011ull}},
+ {{9306880792661242443ull, 13934055771657730656ull,
+ 17827917808420490105ull, 7267203458115882514ull}},
+ {{11633600990826553054ull, 3582511659289999608ull,
+ 13061525223670836824ull, 9084004322644853143ull}},
+ {{7271000619266595659ull, 2239069787056249755ull,
+ 15080982292435354871ull, 5677502701653033214ull}},
+ {{4477064755655856669ull, 16633895289102475906ull,
+ 9627855828689417780ull, 7096878377066291518ull}},
+ {{14819702981424596644ull, 2345625037668543266ull,
+ 2811447749006996418ull, 8871097971332864398ull}},
+ {{13874000381817760807ull, 6077701666970227445ull,
+ 15592212898411536473ull, 5544436232083040248ull}},
+ {{3507442421990037297ull, 12208813102140172211ull,
+ 1043522049304868975ull, 6930545290103800311ull}},
+ {{18219361082769710333ull, 10649330359247827359ull,
+ 15139460616913249931ull, 8663181612629750388ull}},
+ {{18304629704372150814ull, 4349988465316198147ull,
+ 238790848716005399ull, 5414488507893593993ull}},
+ {{18269101112037800613ull, 825799563217859780ull,
+ 4910174579322394653ull, 6768110634866992491ull}},
+ {{4389632316337699151ull, 5643935472449712630ull,
+ 1526032205725605412ull, 8460138293583740614ull}},
+ {{16578578252993225681ull, 12750831707135846201ull,
+ 14788828183860667094ull, 5287586433489837883ull}},
+ {{6888164760959368390ull, 6715167597065031944ull,
+ 13874349211398445964ull, 6609483041862297354ull}},
+ {{8610205951199210487ull, 8393959496331289930ull,
+ 8119564477393281647ull, 8261853802327871693ull}},
+ {{9993064737926894458ull, 12163753712848138062ull,
+ 7380570807584494981ull, 5163658626454919808ull}},
+ {{3267958885553842265ull, 1369634085778008866ull,
+ 9225713509480618727ull, 6454573283068649760ull}},
+ {{13308320643797078639ull, 15547100662504674794ull,
+ 11532141886850773408ull, 8068216603835812200ull}},
+ {{12929386420800562054ull, 9716937914065421746ull,
+ 7207588679281733380ull, 5042635377397382625ull}},
+ {{6938360989145926759ull, 12146172392581777183ull,
+ 13621171867529554629ull, 6303294221746728281ull}},
+ {{4061265218005020544ull, 1347657435445057767ull,
+ 3191406779129779575ull, 7879117777183410352ull}},
+ {{9455819788894219696ull, 7759814924794242960ull,
+ 1994629236956112234ull, 4924448610739631470ull}},
+ {{11819774736117774620ull, 476396619138027892ull,
+ 11716658583049916101ull, 6155560763424539337ull}},
+ {{14774718420147218275ull, 5207181792349922769ull,
+ 810765173530231414ull, 7694450954280674172ull}},
+ {{2316669984950929566ull, 17089546675500865443ull,
+ 9730100270311170441ull, 4809031846425421357ull}},
+ {{16730895536470825670ull, 7526875289093918091ull,
+ 16774311356316350956ull, 6011289808031776696ull}},
+ {{16301933402161144183ull, 9408594111367397614ull,
+ 2521145121685887079ull, 7514112260039720871ull}},
+ {{5577022357923327211ull, 12797900347245705365ull,
+ 8493244728694761280ull, 4696320162524825544ull}},
+ {{11582963965831546917ull, 15997375434057131706ull,
+ 10616555910868451600ull, 5870400203156031930ull}},
+ {{5255332920434657838ull, 1549975218861863017ull,
+ 4047322851730788693ull, 7338000253945039913ull}},
+ {{11180852168970710202ull, 6549155042004716675ull,
+ 9670839583090873770ull, 9172500317431299891ull}},
+ {{4682189596392999924ull, 8704907919680335826ull,
+ 3738431730218102154ull, 5732812698394562432ull}},
+ {{15076109032346025713ull, 1657762862745643974ull,
+ 4673039662772627693ull, 7166015872993203040ull}},
+ {{9621764253577756333ull, 6683889596859442872ull,
+ 5841299578465784616ull, 8957519841241503800ull}},
+ {{6013602658486097709ull, 4177430998037151795ull,
+ 3650812236541115385ull, 5598449900775939875ull}},
+ {{2905317304680234232ull, 9833474765973827648ull,
+ 18398573350958557943ull, 6998062375969924843ull}},
+ {{3631646630850292789ull, 7680157439039896656ull,
+ 18386530670270809525ull, 8747577969962406054ull}},
+ {{2269779144281432994ull, 7105941408613629362ull,
+ 6879895650491868049ull, 5467236231226503784ull}},
+ {{12060595967206567050ull, 13494112779194424606ull,
+ 8599869563114835061ull, 6834045289033129730ull}},
+ {{5852372922153433004ull, 3032582918710867046ull,
+ 1526464917038768019ull, 8542556611291412163ull}},
+ {{17492791131628059340ull, 18036265388690149567ull,
+ 17094941637645087675ull, 5339097882057132601ull}},
+ {{17254302896107686271ull, 17933645717435299055ull,
+ 7533618991774195882ull, 6673872352571415752ull}},
+ {{16956192601707219934ull, 13193685109939348011ull,
+ 9417023739717744853ull, 8342340440714269690ull}},
+ {{8291777366853318507ull, 10551896202925786459ull,
+ 10497325855750978437ull, 5213962775446418556ull}},
+ {{5753035690139260230ull, 17801556272084620978ull,
+ 13121657319688723046ull, 6517453469308023195ull}},
+ {{16414666649528851095ull, 13028573303251000414ull,
+ 11790385631183515904ull, 8146816836635028994ull}},
+ {{5647480637528144031ull, 8142858314531875259ull,
+ 11980677037917085344ull, 5091760522896893121ull}},
+ {{2447664778482792134ull, 10178572893164844074ull,
+ 1140788242114192968ull, 6364700653621116402ull}},
+ {{12282953009958265975ull, 12723216116456055092ull,
+ 10649357339497517018ull, 7955875817026395502ull}},
+ {{16900217668078692043ull, 12563696091212422336ull,
+ 2044162318758560232ull, 4972422385641497189ull}},
+ {{2678528011388813437ull, 15704620114015527921ull,
+ 7166888916875588194ull, 6215527982051871486ull}},
+ {{7959846032663404701ull, 10407403105664634093ull,
+ 18181983182949261051ull, 7769409977564839357ull}},
+ {{7280746779628321890ull, 4198783931826702356ull,
+ 13669582498556982109ull, 4855881235978024598ull}},
+ {{9100933474535402362ull, 9860165933210765849ull,
+ 7863606086341451828ull, 6069851544972530748ull}},
+ {{15987852861596640857ull, 12325207416513457311ull,
+ 9829507607926814785ull, 7587314431215663435ull}},
+ {{16909937066138982392ull, 785725607679828963ull,
+ 3837599245740565289ull, 4742071519509789647ull}},
+ {{16525735314246340086ull, 5593843028027174108ull,
+ 185313038748318707ull, 5927589399387237059ull}},
+ {{2210425069098373491ull, 2380617766606579732ull,
+ 14066699353717562096ull, 7409486749234046323ull}},
+ {{10604887705041259240ull, 1487886104129112332ull,
+ 6485844086859782358ull, 4630929218271278952ull}},
+ {{13256109631301574050ull, 11083229667016166223ull,
+ 8107305108574727947ull, 5788661522839098690ull}},
+ {{11958451020699579658ull, 9242351065342819875ull,
+ 910759348863634126ull, 7235826903548873363ull}},
+ {{10336377757447086669ull, 2329566794823749036ull,
+ 14973507241361706370ull, 9044783629436091703ull}},
+ {{15683608135259204976ull, 6067665265192231051ull,
+ 16275971053492148337ull, 5652989768397557314ull}},
+ {{14992824150646618316ull, 12196267599917676718ull,
+ 11121591780010409613ull, 7066237210496946643ull}},
+ {{9517658151453497087ull, 1410276444614932186ull,
+ 9290303706585624113ull, 8832796513121183304ull}},
+ {{10560222363085823583ull, 12410637823952802376ull,
+ 5806439816616015070ull, 5520497820700739565ull}},
+ {{13200277953857279479ull, 6289925243086227162ull,
+ 11869735789197406742ull, 6900622275875924456ull}},
+ {{7276975405466823541ull, 17085778590712559761ull,
+ 14837169736496758427ull, 8625777844844905570ull}},
+ {{16077324674485234473ull, 8372768609981655898ull,
+ 13884917103737861921ull, 5391111153028065981ull}},
+ {{10873283806251767283ull, 15077646780904457777ull,
+ 3521088324390163689ull, 6738888941285082477ull}},
+ {{18203290776242097008ull, 5012000420848408509ull,
+ 9013046423915092516ull, 8423611176606353096ull}},
+ {{13682899744365004582ull, 12355872299885031126ull,
+ 5633154014946932822ull, 5264756985378970685ull}},
+ {{7880252643601479920ull, 6221468338001513100ull,
+ 11653128537111053932ull, 6580946231723713356ull}},
+ {{9850315804501849900ull, 7776835422501891375ull,
+ 14566410671388817415ull, 8226182789654641695ull}},
+ {{13073976405454738043ull, 11778051166704763965ull,
+ 16021535697259092740ull, 5141364243534151059ull}},
+ {{2507412451536258842ull, 14722563958380954957ull,
+ 15415233603146478021ull, 6426705304417688824ull}},
+ {{7745951582847711457ull, 4568146892694029984ull, 822297930223545911ull,
+ 8033381630522111031ull}},
+ {{4841219739279819661ull, 9772620835574850596ull,
+ 7431465234030798050ull, 5020863519076319394ull}},
+ {{6051524674099774576ull, 2992404007613787437ull, 65959505683721755ull,
+ 6276079398845399243ull}},
+ {{12176091861052106123ull, 17575563064799398008ull,
+ 13917507437386815905ull, 7845099248556749053ull}},
+ {{7610057413157566327ull, 4067197887858541899ull,
+ 11004285157580453893ull, 4903187030347968158ull}},
+ {{4900885748019570005ull, 9695683378250565278ull,
+ 4531984410120791558ull, 6128983787934960198ull}},
+ {{15349479221879238314ull, 2896232185958430789ull,
+ 14888352549505765256ull, 7661229734918700247ull}},
+ {{11899267522888217898ull, 1810145116224019243ull,
+ 16222749371082185141ull, 4788268584324187654ull}},
+ {{10262398385182884469ull, 6874367413707411958ull,
+ 11055064676997955618ull, 5985335730405234568ull}},
+ {{3604625944623829778ull, 17816331303989040756ull,
+ 13818830846247444522ull, 7481669663006543210ull}},
+ {{11476263252244669419ull, 15746893083420538376ull,
+ 13248455297332040730ull, 4676043539379089506ull}},
+ {{14345329065305836774ull, 10460244317420897162ull,
+ 7337197084810275105ull, 5845054424223861883ull}},
+ {{8708289294777520160ull, 17686991415203509357ull,
+ 4559810337585455977ull, 7306318030279827354ull}},
+ {{15497047636899288103ull, 8273681213722222984ull,
+ 14923134958836595780ull, 9132897537849784192ull}},
+ {{9685654773062055065ull, 14394422795431165173ull,
+ 9326959349272872362ull, 5708060961156115120ull}},
+ {{16718754484754956735ull, 8769656457434180658ull,
+ 11658699186591090453ull, 7135076201445143900ull}},
+ {{11675071069088920111ull, 15573756590220113727ull,
+ 14573373983238863066ull, 8918845251806429875ull}},
+ {{14214448445821656925ull, 14345283887314958983ull,
+ 6802515730310595464ull, 5574278282379018672ull}},
+ {{13156374538849683252ull, 17931604859143698729ull,
+ 8503144662888244330ull, 6967847852973773340ull}},
+ {{2610410118279940353ull, 13191134037074847604ull,
+ 10628930828610305413ull, 8709809816217216675ull}},
+ {{10854878360779738529ull, 10550301782385473704ull,
+ 4337238758667746931ull, 5443631135135760422ull}},
+ {{13568597950974673161ull, 8576191209554454226ull,
+ 14644920485189459472ull, 6804538918919700527ull}},
+ {{7737375401863565643ull, 10720239011943067783ull,
+ 13694464588059436436ull, 8505673648649625659ull}},
+ {{11753388653805810383ull, 15923521419319193172ull,
+ 6253197358323453820ull, 5316046030406016037ull}},
+ {{14691735817257262979ull, 1457657700439439849ull,
+ 12428182716331705180ull, 6645057538007520046ull}},
+ {{4529611716289415012ull, 1822072125549299812ull,
+ 6311856358559855667ull, 8306321922509400058ull}},
+ {{12054379359535660190ull, 17279696142964170046ull,
+ 8556596242527297695ull, 5191451201568375036ull}},
+ {{5844602162564799430ull, 16987934160277824654ull,
+ 10695745303159122119ull, 6489314001960468795ull}},
+ {{16529124740060775095ull, 16623231681919892913ull,
+ 8757995610521514745ull, 8111642502450585994ull}},
+ {{3413173934896902579ull, 3471990773558851215ull,
+ 10085433275003334620ull, 5069776564031616246ull}},
+ {{18101525473903291935ull, 4339988466948564018ull,
+ 3383419556899392467ull, 6337220705039520308ull}},
+ {{13403534805524339111ull, 813299565258317119ull,
+ 4229274446124240584ull, 7921525881299400385ull}},
+ {{15294738281093793801ull, 508312228286448199ull,
+ 14172511574896120125ull, 4950953675812125240ull}},
+ {{14506736832939854347ull, 5247076303785448153ull,
+ 17715639468620150156ull, 6188692094765156550ull}},
+ {{4298362985892654221ull, 6558845379731810192ull,
+ 12921177298920411887ull, 7735865118456445688ull}},
+ {{2686476866182908888ull, 11016807389973463226ull,
+ 8075735811825257429ull, 4834915699035278555ull}},
+ {{12581468119583411918ull, 18382695255894216936ull,
+ 5482983746354183882ull, 6043644623794098194ull}},
+ {{15726835149479264898ull, 13754997033012995362ull,
+ 16077101719797505661ull, 7554555779742622742ull}},
+ {{14440957986851928465ull, 10902716154846816053ull,
+ 5436502556446053134ull, 4721597362339139214ull}},
+ {{4216139428282746870ull, 4405023156703744259ull,
+ 16019000232412342226ull, 5901996702923924017ull}},
+ {{658488266926045683ull, 14729650982734456132ull,
+ 6188692235233264070ull, 7377495878654905022ull}},
+ {{823110333657557103ull, 9188691691563294357ull,
+ 16959237330896355896ull, 9221869848318631277ull}},
+ {{2820286967749667142ull, 5742932307227058973ull,
+ 12905366341023916387ull, 5763668655199144548ull}},
+ {{8137044728114471831ull, 2566979365606435812ull,
+ 16131707926279895484ull, 7204585818998930685ull}},
+ {{10171305910143089789ull, 3208724207008044765ull,
+ 6329576852567705643ull, 9005732273748663357ull}},
+ {{8662909203053125070ull, 18146353693875885642ull,
+ 6261828542068509978ull, 5628582671092914598ull}},
+ {{1605264466961630530ull, 13459570080490081245ull,
+ 17050657714440413281ull, 7035728338866143247ull}},
+ {{6618266602129426066ull, 2989404545330437844ull,
+ 16701636124623128698ull, 8794660423582679059ull}},
+ {{13359788663185667099ull, 6480063859258911556ull,
+ 8132679568675761484ull, 5496662764739174412ull}},
+ {{16699735828982083874ull, 8100079824073639445ull,
+ 10165849460844701855ull, 6870828455923968015ull}},
+ {{7039611730945441131ull, 5513413761664661403ull,
+ 8095625807628489415ull, 8588535569904960019ull}},
+ {{2093914322627206755ull, 10363412628681495233ull,
+ 2753923120554111932ull, 5367834731190600012ull}},
+ {{7229078921711396347ull, 12954265785851869041ull,
+ 3442403900692639915ull, 6709793413988250015ull}},
+ {{13648034670566633338ull, 11581146213887448397ull,
+ 18138062931147963606ull, 8387241767485312518ull}},
+ {{10835864678317839788ull, 2626530365252267344ull,
+ 6724603313540089350ull, 5242026104678320324ull}},
+ {{13544830847897299735ull, 12506534993420109988ull,
+ 8405754141925111687ull, 6552532630847900405ull}},
+ {{16931038559871624669ull, 11021482723347749581ull,
+ 15118878695833777513ull, 8190665788559875506ull}},
+ {{12887742109133459370ull, 18417641748160813248ull,
+ 14060985203323498849ull, 5119166117849922191ull}},
+ {{16109677636416824213ull, 9186994129918852848ull,
+ 12964545485726985658ull, 6398957647312402739ull}},
+ {{1690352971811478650ull, 2260370625543790253ull,
+ 11593995838731344169ull, 7998697059140503424ull}},
+ {{3362313616595868108ull, 12941946687033338668ull,
+ 7246247399207090105ull, 4999185661962814640ull}},
+ {{4202892020744835135ull, 2342375303509509623ull,
+ 9057809249008862632ull, 6248982077453518300ull}},
+ {{641929007503656015ull, 2927969129386887029ull,
+ 11322261561261078290ull, 7811227596816897875ull}},
+ {{2707048638903478962ull, 6441666724294192297ull,
+ 4770570466574479979ull, 4882017248010561172ull}},
+ {{7995496817056736606ull, 3440397386940352467ull,
+ 5963213083218099974ull, 6102521560013201465ull}},
+ {{5382685002893532853ull, 13523868770530216392ull,
+ 12065702372450012871ull, 7628151950016501831ull}},
+ {{3364178126808458034ull, 15369947009222467101ull,
+ 14458593010422339900ull, 4767594968760313644ull}},
+ {{8816908676937960446ull, 765689687818532260ull,
+ 18073241263027924876ull, 5959493710950392055ull}},
+ {{11021135846172450557ull, 957112109773165325ull,
+ 17979865560357518191ull, 7449367138687990069ull}},
+ {{9194052913071475550ull, 7515724096249310184ull,
+ 13543258984437142821ull, 4655854461679993793ull}},
+ {{11492566141339344438ull, 14006341138739025634ull,
+ 3094015675264264814ull, 5819818077099992242ull}},
+ {{5142335639819404739ull, 8284554386569006235ull,
+ 13090891630935106826ull, 7274772596374990302ull}},
+ {{1816233531346868020ull, 1132320946356481986ull,
+ 7140242501814107725ull, 9093465745468737878ull}},
+ {{5746831975519180417ull, 3013543600686495193ull,
+ 18297709618915981040ull, 5683416090917961173ull}},
+ {{11795225987826363425ull, 3766929500858118991ull,
+ 9037078968362812588ull, 7104270113647451467ull}},
+ {{10132346466355566377ull, 4708661876072648739ull,
+ 6684662692026127831ull, 8880337642059314334ull}},
+ {{4026873532258535034ull, 9860442700186487318ull,
+ 18012972237798493606ull, 5550211026287071458ull}},
+ {{14256963952177944600ull, 3102181338378333339ull,
+ 13292843260393341200ull, 6937763782858839323ull}},
+ {{13209518921795042846ull, 3877726672972916674ull,
+ 12004368057064288596ull, 8672204728573549154ull}},
+ {{12867635344549289683ull, 11646951207462848729ull,
+ 12114416054092568276ull, 5420127955358468221ull}},
+ {{2249486125404448391ull, 14558689009328560912ull,
+ 1307962012333546633ull, 6775159944198085277ull}},
+ {{2811857656755560489ull, 4363303206378537428ull,
+ 6246638533844321196ull, 8468949930247606596ull}},
+ {{10980783072327001114ull, 11950436540841361700ull,
+ 13127521120507476555ull, 5293093706404754122ull}},
+ {{13725978840408751392ull, 10326359657624314221ull,
+ 7186029363779569886ull, 6616367133005942653ull}},
+ {{3322415495228775528ull, 3684577535175616969ull,
+ 13594222723151850262ull, 8270458916257428316ull}},
+ {{13605724730586454465ull, 16137919014766924317ull,
+ 17719761238824682221ull, 5169036822660892697ull}},
+ {{3172097857950904369ull, 6337340713176491685ull,
+ 8314643493248689065ull, 6461296028326115872ull}},
+ {{8576808340866018366ull, 12533361909898002510ull,
+ 10393304366560861331ull, 8076620035407644840ull}},
+ {{748819194613873575ull, 5527508184472557617ull, 6495815229100538332ull,
+ 5047887522129778025ull}},
+ {{5547710011694729872ull, 6909385230590697021ull,
+ 12731455054803060819ull, 6309859402662222531ull}},
+ {{11546323533045800244ull, 4025045519810983372ull,
+ 11302632800076438120ull, 7887324253327778164ull}},
+ {{16439824245008400961ull, 2515653449881864607ull,
+ 16287517536902549633ull, 4929577658329861352ull}},
+ {{15938094287833113297ull, 7756252830779718663ull,
+ 1912652847418635425ull, 6161972072912326691ull}},
+ {{15310931841364003717ull, 14307002056902036233ull,
+ 16225874114555457993ull, 7702465091140408363ull}},
+ {{2651803373211420467ull, 2024347257922690790ull,
+ 7835328312383467294ull, 4814040681962755227ull}},
+ {{12538126253369051392ull, 11753806109258139295ull,
+ 5182474372051946213ull, 6017550852453444034ull}},
+ {{11060971798283926336ull, 857199581290510407ull,
+ 15701465001919708575ull, 7521938565566805042ull}},
+ {{13830636401568535816ull, 7453278765947650860ull,
+ 14425101644627205763ull, 4701211603479253151ull}},
+ {{17288295501960669770ull, 4704912439007175671ull,
+ 13419691037356619300ull, 5876514504349066439ull}},
+ {{16998683359023449308ull, 5881140548758969589ull,
+ 12162927778268386221ull, 7345643130436333049ull}},
+ {{7413296143497147923ull, 11963111704376099891ull,
+ 1368601667553319064ull, 9182053913045416312ull}},
+ {{2327467080472023500ull, 7476944815235062432ull, 855376042220824415ull,
+ 5738783695653385195ull}},
+ {{2909333850590029375ull, 4734495000616440136ull,
+ 14904278108058194231ull, 7173479619566731493ull}},
+ {{3636667313237536719ull, 1306432732343162266ull,
+ 4795289579790579077ull, 8966849524458414367ull}},
+ {{6884603089200848354ull, 3122363466928170368ull,
+ 9914585015010193779ull, 5604280952786508979ull}},
+ {{8605753861501060442ull, 17738012388942376672ull,
+ 7781545250335354319ull, 7005351190983136224ull}},
+ {{10757192326876325552ull, 17560829467750582936ull,
+ 9726931562919192899ull, 8756688988728920280ull}},
+ {{6723245204297703470ull, 8669675408130420383ull,
+ 6079332226824495562ull, 5472930617955575175ull}},
+ {{3792370486944741434ull, 1613722223308249671ull,
+ 2987479265103231549ull, 6841163272444468969ull}},
+ {{128777090253538888ull, 6628838797562699993ull, 8346035099806427340ull,
+ 8551454090555586211ull}},
+ {{11609700727476931565ull, 13366396285331463303ull,
+ 2910428928165323135ull, 5344658806597241382ull}},
+ {{9900439890918776552ull, 12096309338236941225ull,
+ 12861408197061429727ull, 6680823508246551727ull}},
+ {{16987235882075858594ull, 10508700654368788627ull,
+ 11465074227899399255ull, 8351029385308189659ull}},
+ {{8311179417083717670ull, 13485466936621574748ull,
+ 4859828383223430582ull, 5219393365817618537ull}},
+ {{10388974271354647087ull, 7633461633922192627ull,
+ 10686471497456676132ull, 6524241707272023171ull}},
+ {{8374531820765920954ull, 9541827042402740784ull,
+ 8746403353393457261ull, 8155302134090028964ull}},
+ {{5234082387978700597ull, 8269484910715406942ull,
+ 14689874132725686596ull, 5097063833806268102ull}},
+ {{15765975021828151554ull, 10336856138394258677ull,
+ 9138970629052332437ull, 6371329792257835128ull}},
+ {{5872410722003025730ull, 17532756191420211251ull,
+ 11423713286315415546ull, 7964162240322293910ull}},
+ {{1364413692038197130ull, 15569658638065019936ull,
+ 2528134785519746812ull, 4977601400201433694ull}},
+ {{1705517115047746412ull, 1015329223871723304ull,
+ 12383540518754459324ull, 6222001750251792117ull}},
+ {{2131896393809683015ull, 1269161529839654130ull,
+ 1644367593160910443ull, 7777502187814740147ull}},
+ {{5944121264558439788ull, 16934127020645641495ull,
+ 17168630810221426690ull, 4860938867384212591ull}},
+ {{2818465562270661831ull, 11944286738952276061ull,
+ 16849102494349395459ull, 6076173584230265739ull}},
+ {{8134767971265715193ull, 10318672405262957172ull,
+ 16449692099509356420ull, 7595216980287832174ull}},
+ {{14307602018895847804ull, 15672542290144124040ull,
+ 5669371543765959858ull, 4747010612679895109ull}},
+ {{17884502523619809755ull, 10367305825825379242ull,
+ 11698400448134837727ull, 5933763265849868886ull}},
+ {{13132256117669986385ull, 8347446263854336149ull,
+ 5399628523313771351ull, 7417204082312336108ull}},
+ {{10513503082757435443ull, 12134682942550041949ull,
+ 12598139863925882902ull, 4635752551445210067ull}},
+ {{17753564871874182207ull, 5944981641332776628ull,
+ 11135988811479965724ull, 5794690689306512584ull}},
+ {{3745212016133176143ull, 7431227051665970786ull,
+ 13919986014349957155ull, 7243363361633140730ull}},
+ {{13904887057021245987ull, 4677347796155075578ull,
+ 8176610481082670636ull, 9054204202041425913ull}},
+ {{13302240429065666646ull, 12146714409451698044ull,
+ 16639596596745138907ull, 5658877626275891195ull}},
+ {{16627800536332083307ull, 10571706993387234651ull,
+ 16187809727504035730ull, 7073597032844863994ull}},
+ {{16173064651987716230ull, 3991261704879267506ull,
+ 11011390122525268855ull, 8841996291056079993ull}},
+ {{14719851425919710548ull, 9412067593190624047ull,
+ 18411333872646762794ull, 5526247681910049995ull}},
+ {{13788128263972250281ull, 2541712454633504251ull,
+ 18402481322381065589ull, 6907809602387562494ull}},
+ {{12623474311537924947ull, 7788826586719268218ull,
+ 13779729616121556178ull, 8634762002984453118ull}},
+ {{12501357463138590996ull, 9479702635126930540ull,
+ 4000644991648584707ull, 5396726251865283199ull}},
+ {{15626696828923238745ull, 7237942275481275271ull,
+ 389120221133342980ull, 6745907814831603999ull}},
+ {{14921685017726660527ull, 9047427844351594089ull,
+ 14321458331698842437ull, 8432384768539504998ull}},
+ {{2408524108438080974ull, 7960485411933440258ull,
+ 4339225438884388619ull, 5270240480337190624ull}},
+ {{12234027172402377025ull, 5338920746489412418ull,
+ 5424031798605485774ull, 6587800600421488280ull}},
+ {{6069161928648195473ull, 15897022969966541331ull,
+ 6780039748256857217ull, 8234750750526860350ull}},
+ {{1487383196191428219ull, 3018110328588006476ull,
+ 18072582897942699473ull, 5146719219079287718ull}},
+ {{1859228995239285273ull, 8384323929162395999ull,
+ 13367356585573598533ull, 6433399023849109648ull}},
+ {{16159094299331270304ull, 15092090929880382902ull,
+ 16709195731966998166ull, 8041748779811387060ull}},
+ {{5487747918654656036ull, 4820870812747851410ull,
+ 1219875295624598046ull, 5026092987382116913ull}},
+ {{16083056935173095853ull, 15249460552789590070ull,
+ 6136530137958135461ull, 6282616234227646141ull}},
+ {{10880449132111594008ull, 5226767635704823876ull,
+ 12282348690875057231ull, 7853270292784557676ull}},
+ {{16023652744424522063ull, 10184258799956596778ull,
+ 16899839968651686577ull, 4908293932990348547ull}},
+ {{10806193893675876771ull, 17342009518373133877ull,
+ 16513113942387220317ull, 6135367416237935684ull}},
+ {{18119428385522233867ull, 7842453842684253634ull,
+ 2194648354274473781ull, 7669209270297419606ull}},
+ {{15936328759378784071ull, 7207376660891352473ull,
+ 15206713276703709825ull, 4793255793935887253ull}},
+ {{6085352893941316377ull, 13620906844541578496ull,
+ 5173333540597473569ull, 5991569742419859067ull}},
+ {{7606691117426645471ull, 3191075500394809408ull,
+ 1854980907319454058ull, 7489462178024823834ull}},
+ {{4754181948391653420ull, 6606108206174143784ull,
+ 5771049085502046690ull, 4680913861265514896ull}},
+ {{5942727435489566774ull, 17481007294572455538ull,
+ 7213811356877558362ull, 5851142326581893620ull}},
+ {{16651781331216734276ull, 12627887081360793614ull,
+ 9017264196096947953ull, 7313927908227367025ull}},
+ {{11591354627166142037ull, 1949800796418828306ull,
+ 15883266263548572846ull, 9142409885284208781ull}},
+ {{11856282660406226677ull, 15053683553043931403ull,
+ 12232884423931551980ull, 5714006178302630488ull}},
+ {{10208667307080395442ull, 370360367595362638ull,
+ 15291105529914439976ull, 7142507722878288110ull}},
+ {{3537462096995718495ull, 462950459494203298ull, 9890509875538274162ull,
+ 8928134653597860138ull}},
+ {{6822599829049711963ull, 4901030055611264965ull,
+ 10793254690638809255ull, 5580084158498662586ull}},
+ {{13139935804739527858ull, 1514601551086693302ull,
+ 4268196326443735761ull, 6975105198123328233ull}},
+ {{7201547719069634014ull, 6504937957285754532ull,
+ 9946931426482057605ull, 8718881497654160291ull}},
+ {{13724339361273297067ull, 6371429232517290534ull,
+ 3910989132337592051ull, 5449300936033850182ull}},
+ {{7932052164736845526ull, 3352600522219225264ull,
+ 14112108452276765872ull, 6811626170042312727ull}},
+ {{9915065205921056907ull, 4190750652774031580ull,
+ 13028449546918569436ull, 8514532712552890909ull}},
+ {{15420287790555436375ull, 11842591194838545545ull,
+ 10448623976037799849ull, 5321582945345556818ull}},
+ {{5440301682912131757ull, 968180938266018220ull, 3837407933192474004ull,
+ 6651978681681946023ull}},
+ {{6800377103640164696ull, 1210226172832522775ull, 185073898063204601ull,
+ 8314973352102432529ull}},
+ {{11167764717416184791ull, 12285606404088796494ull,
+ 11644886232357972635ull, 5196858345064020330ull}},
+ {{4736333859915455181ull, 10745321986683607714ull,
+ 5332735753592689986ull, 6496072931330025413ull}},
+ {{15143789361749094784ull, 4208280446499733834ull,
+ 11277605710418250387ull, 8120091164162531766ull}},
+ {{14076554369520572144ull, 324332269848639694ull,
+ 2436817550584018588ull, 5075056977601582354ull}},
+ {{8372320925045939372ull, 405415337310799618ull,
+ 12269393975084799043ull, 6343821222001977942ull}},
+ {{1242029119452648407ull, 14341827226920663235ull,
+ 6113370432001222995ull, 7929776527502472428ull}},
+ {{16917169264153762919ull, 6657799007611720569ull,
+ 13044228556855540180ull, 4956110329689045267ull}},
+ {{7311403524910039936ull, 8322248759514650712ull,
+ 11693599677642037321ull, 6195137912111306584ull}},
+ {{9139254406137549920ull, 15014496967820701294ull,
+ 14616999597052546651ull, 7743922390139133230ull}},
+ {{1100347985408580796ull, 7078217595674244357ull,
+ 4523938729730453753ull, 4839951493836958269ull}},
+ {{5987121000188113899ull, 13459458013020193350ull,
+ 10266609430590455095ull, 6049939367296197836ull}},
+ {{16707273287089918182ull, 12212636497847853783ull,
+ 12833261788238068869ull, 7562424209120247295ull}},
+ {{17359574832072280720ull, 9938740820368602566ull,
+ 14938317645289874899ull, 4726515130700154559ull}},
+ {{12476096503235575092ull, 7811740007033365304ull,
+ 14061211038184955720ull, 5908143913375193199ull}},
+ {{15595120629044468864ull, 9764675008791706630ull,
+ 12964827779303806746ull, 7385179891718991499ull}},
+ {{5135264374725405136ull, 10714607898922204548ull,
+ 5797174352851185264ull, 4615737432324369687ull}},
+ {{6419080468406756420ull, 13393259873652755685ull,
+ 2634781922636593676ull, 5769671790405462109ull}},
+ {{12635536603935833429ull, 16741574842065944606ull,
+ 7905163421723129999ull, 7212089738006827636ull}},
+ {{6571048718065015979ull, 16315282534155042854ull,
+ 9881454277153912499ull, 9015112172508534545ull}},
+ {{17941963504072798699ull, 7891208574633207831ull,
+ 17705123969289665072ull, 5634445107817834090ull}},
+ {{17815768361663610469ull, 9864010718291509789ull,
+ 12908032924757305532ull, 7043056384772292613ull}},
+ {{8434652396797349375ull, 12330013397864387237ull,
+ 2299983100664468203ull, 8803820480965365767ull}},
+ {{7577500757212037311ull, 5400415364451548071ull,
+ 8355018465556374483ull, 5502387800603353604ull}},
+ {{4860189928087658735ull, 2138833187137047185ull,
+ 10443773081945468104ull, 6877984750754192005ull}},
+ {{10686923428536961323ull, 2673541483921308981ull,
+ 17666402370859223034ull, 8597480938442740006ull}},
+ {{8985170152049294779ull, 6282649445878206017ull,
+ 6429815463359626492ull, 5373425586526712504ull}},
+ {{15843148708489006377ull, 7853311807347757521ull,
+ 8037269329199533115ull, 6716781983158390630ull}},
+ {{5968877830329094260ull, 5204953740757308998ull, 823214624644640586ull,
+ 8395977478947988288ull}},
+ {{17565606699237847624ull, 7864782106400706027ull,
+ 514509140402900366ull, 5247485924342492680ull}},
+ {{17345322355619921626ull, 607605596146106726ull, 643136425503625458ull,
+ 6559357405428115850ull}},
+ {{12458280907670126225ull, 9982879032037409216ull,
+ 10027292568734307630ull, 8199196756785144812ull}},
+ {{7786425567293828891ull, 1627613376595992856ull,
+ 15490429892313718077ull, 5124497972990715507ull}},
+ {{9733031959117286113ull, 6646202739172378974ull,
+ 14751351346964759692ull, 6405622466238394384ull}},
+ {{2942917912041831834ull, 8307753423965473718ull,
+ 18439189183705949615ull, 8007028082797992980ull}},
+ {{15674381750308308608ull, 12109874917619502929ull,
+ 2301121202961442701ull, 5004392551748745613ull}},
+ {{5757919132603222048ull, 1302285591742214950ull,
+ 7488087522129191281ull, 6255490689685932016ull}},
+ {{16420770952608803368ull, 6239543008105156591ull,
+ 9360109402661489101ull, 7819363362107415020ull}},
+ {{17180510873021583961ull, 6205557389279416821ull,
+ 15073440413518206496ull, 4887102101317134387ull}},
+ {{7640580535994816239ull, 7756946736599271027ull,
+ 14230114498470370216ull, 6108877626646417984ull}},
+ {{4939039651566132395ull, 9696183420749088784ull,
+ 17787643123087962770ull, 7636097033308022480ull}},
+ {{3086899782228832747ull, 10671800656395568394ull,
+ 11117276951929976731ull, 4772560645817514050ull}},
+ {{13081996764640816742ull, 8728064802067072588ull,
+ 4673224153057695106ull, 5965700807271892563ull}},
+ {{16352495955801020927ull, 1686708965729064927ull,
+ 1229844172894730979ull, 7457126009089865704ull}},
+ {{17137839000016719936ull, 17195094168076523243ull,
+ 768652608059206861ull, 4660703755681166065ull}},
+ {{16810612731593512015ull, 7658809654813490342ull,
+ 5572501778501396481ull, 5825879694601457581ull}},
+ {{11789893877637114211ull, 14185198086944250832ull,
+ 11577313241554133505ull, 7282349618251821976ull}},
+ {{14737367347046392764ull, 3896439553398149828ull,
+ 14471641551942666882ull, 9102937022814777470ull}},
+ {{18434226628758771286ull, 7046960739301231546ull,
+ 4433089951536778897ull, 5689335639259235919ull}},
+ {{13819411249093688299ull, 13420386942553927337ull,
+ 929676420993585717ull, 7111669549074044899ull}},
+ {{3439206006084946661ull, 2940425622910245460ull,
+ 14997153581524145859ull, 8889586936342556123ull}},
+ {{11372875790657867472ull, 17978667078814761076ull,
+ 7067377979238897209ull, 5555991835214097577ull}},
+ {{14216094738322334339ull, 8638275793236287633ull,
+ 13445908492476009416ull, 6944989794017621971ull}},
+ {{3935060367620754212ull, 10797844741545359542ull,
+ 12195699597167623866ull, 8681237242522027464ull}},
+ {{16294470785045135095ull, 11360338981893237617ull,
+ 7622312248229764916ull, 5425773276576267165ull}},
+ {{6533030426024255156ull, 14200423727366547022ull,
+ 14139576328714594049ull, 6782216595720333956ull}},
+ {{17389660069385094753ull, 3915471603926020065ull,
+ 17674470410893242562ull, 8477770744650417445ull}},
+ {{3951008515724602365ull, 7058855770881150445ull,
+ 13352387016021970553ull, 5298606715406510903ull}},
+ {{9550446663083140860ull, 13435255732028825960ull,
+ 12078797751600075287ull, 6623258394258138629ull}},
+ {{11938058328853926075ull, 12182383646608644546ull,
+ 1263439134217930397ull, 8279072992822673287ull}},
+ {{12072972473961091701ull, 9919832788344096793ull,
+ 7707178486527288354ull, 5174420620514170804ull}},
+ {{1256157537169200914ull, 3176418948575345184ull,
+ 9633973108159110443ull, 6468025775642713505ull}},
+ {{1570196921461501143ull, 17805581741001345192ull,
+ 16654152403626275957ull, 8085032219553391881ull}},
+ {{981373075913438214ull, 13434331597339534697ull,
+ 3491316224625340617ull, 5053145137220869926ull}},
+ {{5838402363319185672ull, 2957856441392254659ull,
+ 13587517317636451580ull, 6316431421526087407ull}},
+ {{2686316935721594185ull, 3697320551740318324ull,
+ 12372710628618176571ull, 7895539276907609259ull}},
+ {{10902320121680772174ull, 4982335624005000ull, 5427101133672666405ull,
+ 4934712048067255787ull}},
+ {{13627900152100965218ull, 4617913937957394154ull,
+ 2172190398663445102ull, 6168390060084069734ull}},
+ {{7811503153271430714ull, 14995764459301518501ull,
+ 11938610035184082185ull, 7710487575105087167ull}},
+ {{7188032480008338148ull, 2454823759422367207ull,
+ 14379160299631133222ull, 4819054734440679479ull}},
+ {{4373354581583034781ull, 12291901736132734817ull,
+ 13362264356111528623ull, 6023818418050849349ull}},
+ {{10078379245406181380ull, 10753191151738530617ull,
+ 2867772389857247067ull, 7529773022563561687ull}},
+ {{17828202074447333123ull, 4414901460622887683ull,
+ 8709886771301861273ull, 4706108139102226054ull}},
+ {{17673566574631778500ull, 10130312844205997508ull,
+ 1663986427272550783ull, 5882635173877782568ull}},
+ {{3645214144580171508ull, 8051205036830108982ull,
+ 2079983034090688479ull, 7353293967347228210ull}},
+ {{13779889717579990193ull, 5452320277610248323ull,
+ 11823350829468136407ull, 9191617459184035262ull}},
+ {{6306588064273799919ull, 10325229201147487058ull,
+ 2777908249990197350ull, 5744760911990022039ull}},
+ {{17106607117197025707ull, 3683164464579583014ull,
+ 17307443367769910400ull, 7180951139987527548ull}},
+ {{12159886859641506325ull, 4603955580724478768ull,
+ 3187560136002836384ull, 8976188924984409436ull}},
+ {{7599929287275941453ull, 2877472237952799230ull,
+ 11215597121856548548ull, 5610118078115255897ull}},
+ {{276539572240151009ull, 3596840297440999038ull, 184438347038521973ull,
+ 7012647597644069872ull}},
+ {{9569046502154964569ull, 9107736390228636701ull, 230547933798152466ull,
+ 8765809497055087340ull}},
+ {{8286497073060546808ull, 10304021262320285842ull,
+ 9367464495478621099ull, 5478630935659429587ull}},
+ {{1134749304470907701ull, 8268340559472969399ull,
+ 7097644600920888470ull, 6848288669574286984ull}},
+ {{15253494685870798339ull, 1112053662486435940ull,
+ 8872055751151110588ull, 8560360836967858730ull}},
+ {{310062141814473154ull, 9918405575908798271ull,
+ 10156720862896832021ull, 5350225523104911706ull}},
+ {{14222635732550255154ull, 17009692988313385742ull,
+ 3472529041766264218ull, 6687781903881139633ull}},
+ {{8554922628833043135ull, 12038744198536956370ull,
+ 8952347320635218177ull, 8359727379851424541ull}},
+ {{9958512661448039863ull, 606686096444515875ull, 7901060084610705313ull,
+ 5224829612407140338ull}},
+ {{7836454808382661925ull, 5370043638983032748ull, 652953068908605833ull,
+ 6531037015508925423ull}},
+ {{9795568510478327406ull, 11324240567156178839ull,
+ 14651249391417921003ull, 8163796269386156778ull}},
+ {{13039759346690036485ull, 4771807345258917822ull,
+ 13768716888063588531ull, 5102372668366347986ull}},
+ {{7076327146507769798ull, 1353073163146259374ull,
+ 7987524073224709856ull, 6377965835457934983ull}},
+ {{18068780969989488056ull, 1691341453932824217ull,
+ 5372719073103499416ull, 7972457294322418729ull}},
+ {{4375459078602348179ull, 1057088408708015136ull,
+ 14887164466758156895ull, 4982785808951511705ull}},
+ {{5469323848252935223ull, 15156418566167182632ull,
+ 4773897528165532406ull, 6228482261189389632ull}},
+ {{6836654810316169029ull, 9722151170854202482ull,
+ 5967371910206915508ull, 7785602826486737040ull}},
+ {{8884595274874993547ull, 15299716518638652359ull,
+ 3729607443879322192ull, 4866001766554210650ull}},
+ {{6494058075166354030ull, 677901574588763833ull,
+ 13885381341703928549ull, 6082502208192763312ull}},
+ {{12729258612385330442ull, 5459062986663342695ull,
+ 17356726677129910686ull, 7603127760240954140ull}},
+ {{14873315660381913382ull, 17246972421946752896ull,
+ 1624582136351418370ull, 4751954850150596338ull}},
+ {{144900501767840112ull, 12335343490578665313ull,
+ 11254099707294048771ull, 5939943562688245422ull}},
+ {{4792811645637188043ull, 10807493344795943737ull,
+ 4844252597262785156ull, 7424929453360306778ull}},
+ {{14524722324591712287ull, 15978055377352240643ull,
+ 7639343891716628626ull, 4640580908350191736ull}},
+ {{13544216887312252455ull, 10749197184835524996ull,
+ 9549179864645785783ull, 5800726135437739670ull}},
+ {{16930271109140315569ull, 8824810462617018341ull,
+ 2713102793952456421ull, 7250907669297174588ull}},
+ {{7327780831143230749ull, 15642699096698660831ull,
+ 3391378492440570526ull, 9063634586621468235ull}},
+ {{11497392047105601074ull, 5165000917009275115ull,
+ 18260512622271214243ull, 5664771616638417646ull}},
+ {{9760054040454613439ull, 1844565127834205990ull,
+ 13602268740984241996ull, 7080964520798022058ull}},
+ {{2976695513713490990ull, 2305706409792757488ull,
+ 7779463889375526687ull, 8851205650997527573ull}},
+ {{1860434696070931869ull, 8358595533761555286ull,
+ 7168007940073398131ull, 5532003531873454733ull}},
+ {{11548915406943440644ull, 5836558398774556203ull,
+ 13571695943519135568ull, 6915004414841818416ull}},
+ {{9824458240251912901ull, 7295697998468195254ull,
+ 16964619929398919460ull, 8643755518552273020ull}},
+ {{1528600381730057659ull, 13783183285897397842ull,
+ 1379515419019548854ull, 5402347199095170638ull}},
+ {{11134122514017347882ull, 8005607070516971494ull,
+ 10947766310629211876ull, 6752933998868963297ull}},
+ {{4694281105666909044ull, 10007008838146214368ull,
+ 18296393906713902749ull, 8441167498586204121ull}},
+ {{2933925691041818153ull, 8560223533055077932ull,
+ 4517717164055107362ull, 5275729686616377576ull}},
+ {{3667407113802272691ull, 1476907379464071607ull,
+ 5647146455068884203ull, 6594662108270471970ull}},
+ {{18419316947535004576ull, 15681192279612253220ull,
+ 16282305105690881061ull, 8243327635338089962ull}},
+ {{2288701055354602052ull, 12106588183971352215ull,
+ 14788126709484188567ull, 5152079772086306226ull}},
+ {{16695934374475416277ull, 10521549211536802364ull,
+ 9261786350000459901ull, 6440099715107882783ull}},
+ {{2423173894384718730ull, 17763622532848390860ull,
+ 6965546919073186972ull, 8050124643884853479ull}},
+ {{10737855720845225014ull, 1878892046175468479ull,
+ 11270995852061823714ull, 5031327902428033424ull}},
+ {{8810633632629143364ull, 11571987094574111407ull,
+ 14088744815077279642ull, 6289159878035041780ull}},
+ {{6401606022359041301ull, 5241611831362863451ull,
+ 17610931018846599553ull, 7861449847543802225ull}},
+ {{1695160754760706861ull, 14805222440670259417ull,
+ 4089302859138042864ull, 4913406154714876391ull}},
+ {{6730636961878271480ull, 59783977128272655ull, 499942555495165677ull,
+ 6141757693393595489ull}},
+ {{3801610183920451446ull, 4686415989837728723ull,
+ 5236614212796345000ull, 7677197116741994361ull}},
+ {{70163355736588202ull, 2929009993648580452ull, 14802098929066185385ull,
+ 4798248197963746475ull}},
+ {{87704194670735252ull, 8272948510488113469ull, 13890937642905343827ull,
+ 5997810247454683094ull}},
+ {{4721316261765806969ull, 5729499619682753932ull,
+ 8140300016776903976ull, 7497262809318353868ull}},
+ {{12174194700458405164ull, 3580937262301721207ull,
+ 14311059547340340793ull, 4685789255823971167ull}},
+ {{10606057357145618551ull, 9087857596304539413ull,
+ 13277138415748038087ull, 5857236569779963959ull}},
+ {{17869257714859411093ull, 6748135976953286362ull,
+ 11984737001257659705ull, 7321545712224954949ull}},
+ {{13113200106719488058ull, 13046855989618995857ull,
+ 1145863196289910919ull, 9151932140281193687ull}},
+ {{1278221039058598180ull, 15071814021152954267ull,
+ 7633693525322276180ull, 5719957587675746054ull}},
+ {{15432834354105411437ull, 393023452731641217ull, 318744869798069418ull,
+ 7149946984594682568ull}},
+ {{5455984887349600584ull, 9714651352769327330ull, 398431087247586772ull,
+ 8937433730743353210ull}},
+ {{8021676573020888269ull, 15295029132335605389ull,
+ 4860705447957129636ull, 5585896081714595756ull}},
+ {{14638781734703498241ull, 672042341709955120ull,
+ 6075881809946412046ull, 6982370102143244695ull}},
+ {{18298477168379372801ull, 10063424963992219708ull,
+ 2983166244005627153ull, 8727962627679055869ull}},
+ {{2213176193382332193ull, 17818855648563607078ull,
+ 4170321911717210922ull, 5454976642299409918ull}},
+ {{11989842278582691049ull, 13050197523849733039ull,
+ 14436274426501289461ull, 6818720802874262397ull}},
+ {{10375616829800975907ull, 2477688849530002587ull,
+ 4210284977844448115ull, 8523401003592827997ull}},
+ {{4178917509411915990ull, 17689456595452109281ull,
+ 4937271120366474023ull, 5327125627245517498ull}},
+ {{9835332905192282891ull, 17500134725887748697ull,
+ 15394960937312868337ull, 6658907034056896872ull}},
+ {{16905852149917741518ull, 8040110352077522159ull,
+ 796957097931533806ull, 8323633792571121091ull}},
+ {{17483686621339670305ull, 413382951621063445ull,
+ 16638999250703066293ull, 5202271120356950681ull}},
+ {{8019550221392424169ull, 5128414707953717211ull,
+ 6963691008096669154ull, 6502838900446188352ull}},
+ {{5412751758313142307ull, 15633890421796922322ull,
+ 8704613760120836442ull, 8128548625557735440ull}},
+ {{7994655867373101846ull, 14382867532050464355ull,
+ 5440383600075522776ull, 5080342890973584650ull}},
+ {{5381633815788989403ull, 17978584415063080444ull,
+ 16023851536949179278ull, 6350428613716980812ull}},
+ {{6727042269736236754ull, 13249858481974074747ull,
+ 1583070347476922482ull, 7938035767146226016ull}},
+ {{1898558409371454020ull, 12892847569661184621ull,
+ 989418967173076551ull, 4961272354466391260ull}},
+ {{6984884030141705428ull, 11504373443649092872ull,
+ 1236773708966345689ull, 6201590443082989075ull}},
+ {{8731105037677131785ull, 545408749279202378ull,
+ 15381025191490095824ull, 7751988053853736343ull}},
+ {{10068626666975595270ull, 340880468299501486ull,
+ 16530669772322391746ull, 4844992533658585214ull}},
+ {{3362411296864718279ull, 9649472622229152666ull,
+ 11439965178548213874ull, 6056240667073231518ull}},
+ {{13426386157935673657ull, 2838468740931665024ull,
+ 5076584436330491535ull, 7570300833841539398ull}},
+ {{8391491348709796036ull, 8691571990723372496ull,
+ 17007923327988720921ull, 4731438021150962123ull}},
+ {{10489364185887245045ull, 15476151006831603524ull,
+ 16648218141558513247ull, 5914297526438702654ull}},
+ {{13111705232359056306ull, 14733502740112116501ull,
+ 11586900640093365751ull, 7392871908048378318ull}},
+ {{10500658779438104143ull, 16125968240211154669ull,
+ 2630126881630965690ull, 4620544942530236449ull}},
+ {{17737509492725018083ull, 10934088263409167528ull,
+ 7899344620466095017ull, 5775681178162795561ull}},
+ {{3725142792196720988ull, 18279296347688847315ull,
+ 14485866794010006675ull, 7219601472703494451ull}},
+ {{44742471818513330ull, 18237434416183671240ull,
+ 13495647474085120440ull, 9024501840879368064ull}},
+ {{27964044886570832ull, 11398396510114794525ull, 8434779671303200275ull,
+ 5640313650549605040ull}},
+ {{4646641074535601443ull, 9636309619216105252ull,
+ 10543474589129000344ull, 7050392063187006300ull}},
+ {{5808301343169501804ull, 12045387024020131565ull,
+ 13179343236411250430ull, 8812990078983757875ull}},
+ {{5936031348694632580ull, 2916680871585194324ull,
+ 5931246513543337567ull, 5508118799364848672ull}},
+ {{7420039185868290725ull, 17480909144763656617ull,
+ 7414058141929171958ull, 6885148499206060840ull}},
+ {{13886735000762751310ull, 12627764394099794963ull,
+ 9267572677411464948ull, 8606435624007576050ull}},
+ {{6373366366263025617ull, 17115724783167147660ull,
+ 10403918941809553496ull, 5379022265004735031ull}},
+ {{7966707957828782021ull, 2947911905249382959ull,
+ 8393212658834553967ull, 6723777831255918789ull}},
+ {{5346698928858589622ull, 17519947936843892411ull,
+ 15103201841970580362ull, 8404722289069898486ull}},
+ {{1035843821322924562ull, 15561653478954820661ull,
+ 4827815132804224822ull, 5252951430668686554ull}},
+ {{5906490795081043606ull, 10228694811838750018ull,
+ 15258140952860056836ull, 6566189288335858192ull}},
+ {{16606485530706080316ull, 12785868514798437522ull,
+ 625932117365519429ull, 8207736610419822741ull}},
+ {{14990739475118688101ull, 10297010830962717403ull,
+ 2697050582567143595ull, 5129835381512389213ull}},
+ {{14126738325470972223ull, 8259577520276008850ull,
+ 7982999246636317398ull, 6412294226890486516ull}},
+ {{8435050869983939470ull, 1101099863490235255ull,
+ 9978749058295396748ull, 8015367783613108145ull}},
+ {{12189435821381044025ull, 9911559451536172842ull,
+ 17765933207503092727ull, 5009604864758192590ull}},
+ {{6013422739871529223ull, 7777763295992828149ull,
+ 12984044472524090101ull, 6262006080947740738ull}},
+ {{12128464443266799433ull, 14333890138418423090ull,
+ 7006683553800336818ull, 7827507601184675923ull}},
+ {{12191976295469137550ull, 13570367354938902335ull,
+ 2073334211911516559ull, 4892192250740422452ull}},
+ {{10628284350909034033ull, 12351273175246240015ull,
+ 2591667764889395699ull, 6115240313425528065ull}},
+ {{8673669420208904637ull, 10827405450630412115ull,
+ 7851270724539132528ull, 7644050391781910081ull}},
+ {{3115200378416871446ull, 6767128406644007572ull,
+ 16436259248905427590ull, 4777531494863693800ull}},
+ {{3894000473021089308ull, 17682282545159785273ull,
+ 2098579987422232871ull, 5971914368579617251ull}},
+ {{9479186609703749539ull, 17491167163022343687ull,
+ 16458283039559954801ull, 7464892960724521563ull}},
+ {{12842020658705925318ull, 4014450449247882948ull,
+ 7980583890511277799ull, 4665558100452825977ull}},
+ {{16052525823382406647ull, 406377043132465781ull,
+ 14587415881566485153ull, 5831947625566032471ull}},
+ {{6230599223945844597ull, 5119657322342970131ull,
+ 13622583833530718537ull, 7289934531957540589ull}},
+ {{3176563011504917842ull, 11011257671356100568ull,
+ 3193171736631234459ull, 9112418164946925737ull}},
+ {{1985351882190573652ull, 4576193035383868903ull,
+ 13524947381462991297ull, 5695261353091828585ull}},
+ {{16316747908020380776ull, 10331927312657224032ull,
+ 3071126171546575409ull, 7119076691364785732ull}},
+ {{1949190811315924354ull, 17526595159248917945ull,
+ 3838907714433219261ull, 8898845864205982165ull}},
+ {{12747459303140922482ull, 13259964983744267667ull,
+ 4705160330734455990ull, 5561778665128738853ull}},
+ {{11322638110498765198ull, 7351584192825558776ull,
+ 10493136431845457892ull, 6952223331410923566ull}},
+ {{14153297638123456497ull, 9189480241031948470ull,
+ 3893048502952046557ull, 8690279164263654458ull}},
+ {{4234125005399772407ull, 8049268159858661746ull,
+ 7044841332772417002ull, 5431424477664784036ull}},
+ {{14516028293604491317ull, 838213162968551374ull,
+ 8806051665965521253ull, 6789280597080980045ull}},
+ {{8921663330150838338ull, 5659452472138077122ull,
+ 15619250600884289470ull, 8486600746351225056ull}},
+ {{10187725599771661865ull, 17372215850368461913ull,
+ 9762031625552680918ull, 5304125466469515660ull}},
+ {{17346343018141965235ull, 12491897776105801583ull,
+ 12202539531940851148ull, 6630156833086894575ull}},
+ {{17071242754250068640ull, 15614872220132251979ull,
+ 10641488396498676031ull, 8287696041358618219ull}},
+ {{8363683712192598948ull, 16676824165223739343ull,
+ 4345087238597978567ull, 5179810025849136387ull}},
+ {{5842918621813360781ull, 16234344188102286275ull,
+ 819673029820085305ull, 6474762532311420484ull}},
+ {{2691962258839313072ull, 6457872179845694132ull,
+ 1024591287275106632ull, 8093453165389275605ull}},
+ {{10905848448629346478ull, 4036170112403558832ull,
+ 2946212563760635597ull, 5058408228368297253ull}},
+ {{13632310560786683098ull, 9656898658931836444ull,
+ 8294451723128182400ull, 6323010285460371566ull}},
+ {{17040388200983353872ull, 12071123323664795555ull,
+ 1144692617055452192ull, 7903762856825464458ull}},
+ {{8344399616400902218ull, 7544452077290497222ull,
+ 5327118904087045524ull, 4939851785515915286ull}},
+ {{1207127483646351965ull, 9430565096613121528ull,
+ 15882270666963582713ull, 6174814731894894107ull}},
+ {{1508909354557939956ull, 16399892389193789814ull,
+ 15241152315277090487ull, 7718518414868617634ull}},
+ {{14778126401880876185ull, 17167461770887200489ull,
+ 14137406215475569458ull, 4824074009292886021ull}},
+ {{4637599947068931519ull, 12235955176754224804ull,
+ 3836699714062298111ull, 6030092511616107527ull}},
+ {{5796999933836164398ull, 10683257952515393101ull,
+ 184188624150484735ull, 7537615639520134409ull}},
+ {{5928967967861296701ull, 13594565247963202544ull,
+ 11644332936162522719ull, 4711009774700084005ull}},
+ {{7411209959826620876ull, 12381520541526615276ull,
+ 720358114920989687ull, 5888762218375105007ull}},
+ {{9264012449783276095ull, 10865214658480881191ull,
+ 14735505698933400821ull, 7360952772968881258ull}},
+ {{6968329543801707215ull, 18193204341528489393ull,
+ 9196010086811975218ull, 9201190966211101573ull}},
+ {{15884421010944536769ull, 15982438731882693774ull,
+ 8053349313471178463ull, 5750744353881938483ull}},
+ {{10632154226825895154ull, 15366362396425979314ull,
+ 5455000623411585175ull, 7188430442352423104ull}},
+ {{4066820746677593134ull, 14596266977105086239ull,
+ 6818750779264481469ull, 8985538052940528880ull}},
+ {{9459291994314577565ull, 11428509869904372851ull,
+ 4261719237040300918ull, 5615961283087830550ull}},
+ {{7212428974465834052ull, 5062265300525690256ull,
+ 14550521083155151956ull, 7019951603859788187ull}},
+ {{9015536218082292565ull, 6327831625657112820ull,
+ 13576465335516552041ull, 8774939504824735234ull}},
+ {{14858082173156208661ull, 15484109812104165272ull,
+ 13096976853125232929ull, 5484337190515459521ull}},
+ {{125858642735709210ull, 5520079209848042879ull, 2536163011124377450ull,
+ 6855421488144324402ull}},
+ {{13992381358701800225ull, 16123471049164829406ull,
+ 12393575800760247620ull, 8569276860180405502ull}},
+ {{4133552330761237237ull, 853797368873242571ull, 3134298857047766859ull,
+ 5355798037612753439ull}},
+ {{555254395024158642ull, 14902304766373716926ull,
+ 17752931626591872285ull, 6694747547015941798ull}},
+ {{9917440030634974110ull, 4792822902684982445ull,
+ 12967792496385064549ull, 8368434433769927248ull}},
+ {{8504243028360552771ull, 5301357323391807980ull,
+ 8104870310240665343ull, 5230271521106204530ull}},
+ {{10630303785450690964ull, 2015010635812372071ull,
+ 907715850946055871ull, 6537839401382755663ull}},
+ {{8676193713385975800ull, 16353821350047628801ull,
+ 14969702868964733550ull, 8172299251728444578ull}},
+ {{16951836116934704635ull, 5609452325352380096ull,
+ 13967750311530346373ull, 5107687032330277861ull}},
+ {{2743051072458829178ull, 11623501425117863025ull,
+ 3624629834130769254ull, 6384608790412847327ull}},
+ {{8040499859000924377ull, 5306004744542552973ull,
+ 18365845347945625280ull, 7980760988016059158ull}},
+ {{7331155421089271688ull, 3316252965339095608ull,
+ 6866967324038627896ull, 4987975617510036974ull}},
+ {{9163944276361589609ull, 4145316206673869510ull,
+ 17807081191903060678ull, 6234969521887546217ull}},
+ {{2231558308597211203ull, 14405017295197112696ull,
+ 8423793434596662135ull, 7793711902359432772ull}},
+ {{1394723942873257002ull, 15920664837139277291ull,
+ 14488242933477689642ull, 4871069938974645482ull}},
+ {{15578462983873734965ull, 10677459009569320805ull,
+ 8886931629992336245ull, 6088837423718306853ull}},
+ {{5638020674560004994ull, 17958509780389038911ull,
+ 15720350555917808210ull, 7611046779647883566ull}},
+ {{10441291949241084977ull, 15835754631170537223ull,
+ 5213533079021242227ull, 4756904237279927229ull}},
+ {{8439928918123968318ull, 15183007270535783625ull,
+ 11128602367203940688ull, 5946130296599909036ull}},
+ {{15161597166082348301ull, 532015014460177915ull,
+ 13910752959004925861ull, 7432662870749886295ull}},
+ {{7170155219587773736ull, 2638352393251305149ull,
+ 15611749627019160519ull, 4645414294218678934ull}},
+ {{13574380042912105074ull, 17132998546846295148ull,
+ 10291314996919174840ull, 5806767867773348668ull}},
+ {{16967975053640131343ull, 2969504109848317319ull,
+ 12864143746148968551ull, 7258459834716685835ull}},
+ {{16598282798622776274ull, 17546938192592560361ull,
+ 11468493664258822784ull, 9073074793395857294ull}},
+ {{3456397721498153315ull, 10966836370370350226ull,
+ 2556122521734376336ull, 5670671745872410809ull}},
+ {{13543869188727467452ull, 13708545462962937782ull,
+ 7806839170595358324ull, 7088339682340513511ull}},
+ {{7706464449054558507ull, 17135681828703672228ull,
+ 5146862944816810001ull, 8860424602925641889ull}},
+ {{14039912317513874875ull, 3792272115298713286ull,
+ 14746004386578976011ull, 5537765376828526180ull}},
+ {{8326518360037567786ull, 128654125696003704ull,
+ 18432505483223720014ull, 6922206721035657725ull}},
+ {{10408147950046959732ull, 9384189693974780438ull,
+ 9205573798747486305ull, 8652758401294572157ull}},
+ {{1893406450351961929ull, 17394333604802707534ull,
+ 8059326633430872892ull, 5407974000809107598ull}},
+ {{11590130099794728219ull, 3296172932293832801ull,
+ 850786254933815308ull, 6759967501011384498ull}},
+ {{652604569461246561ull, 4120216165367291002ull,
+ 10286854855522044943ull, 8449959376264230622ull}},
+ {{5019563874340667005ull, 9492664130995638732ull,
+ 1817598266273890185ull, 5281224610165144139ull}},
+ {{6274454842925833756ull, 16477516182171936319ull,
+ 16107055888124526443ull, 6601530762706430173ull}},
+ {{3231382535229904291ull, 15985209209287532495ull,
+ 6298761804873494342ull, 8251913453383037717ull}},
+ {{8937143112159772038ull, 5379069737377319905ull,
+ 6242569137259627916ull, 5157445908364398573ull}},
+ {{15783114908627102952ull, 6723837171721649881ull,
+ 12414897440001922799ull, 6446807385455498216ull}},
+ {{5893835580501714977ull, 3793110446224674448ull,
+ 15518621800002403499ull, 8058509231819372770ull}},
+ {{3683647237813571861ull, 64851019676727578ull, 14310824643428890091ull,
+ 5036568269887107981ull}},
+ {{13827931084121740634ull, 13916121829878073184ull,
+ 4053472749003948901ull, 6295710337358884977ull}},
+ {{17284913855152175793ull, 3560094232065427768ull,
+ 9678526954682324031ull, 7869637921698606221ull}},
+ {{10803071159470109871ull, 9142587922681974211ull,
+ 8354922355890146471ull, 4918523701061628888ull}},
+ {{8892152930910249434ull, 6816548884925079860ull,
+ 10443652944862683089ull, 6148154626327036110ull}},
+ {{11115191163637811792ull, 13132372124583737729ull,
+ 3831194144223578053ull, 7685193282908795138ull}},
+ {{29465449632550514ull, 10513575587078530033ull, 7006182358567124187ull,
+ 4803245801817996961ull}},
+ {{4648517830468076047ull, 8530283465420774637ull,
+ 13369413966636293138ull, 6004057252272496201ull}},
+ {{10422333306512482963ull, 1439482294921192488ull,
+ 2876709403013202711ull, 7505071565340620252ull}},
+ {{6513958316570301852ull, 7817205461966827161ull,
+ 11021315413738027502ull, 4690669728337887657ull}},
+ {{12754133914140265219ull, 548134790603758143ull,
+ 18388330285599922282ull, 5863337160422359571ull}},
+ {{11330981374247943619ull, 9908540525109473487ull,
+ 18373726838572514948ull, 7329171450527949464ull}},
+ {{9552040699382541620ull, 12385675656386841859ull,
+ 4520414474506092069ull, 9161464313159936831ull}},
+ {{3664182427900394561ull, 10046890294455470114ull,
+ 9742788074207389399ull, 5725915195724960519ull}},
+ {{13803600071730269009ull, 7946926849641949738ull,
+ 7566799074331848845ull, 7157393994656200649ull}},
+ {{8031128052808060453ull, 14545344580479825077ull,
+ 14070184861342198960ull, 8946742493320250811ull}},
+ {{7325298042218731735ull, 9090840362799890673ull,
+ 6488022529125180398ull, 5591714058325156757ull}},
+ {{13768308571200802573ull, 2140178416645087533ull,
+ 12721714179833863402ull, 6989642572906445946ull}},
+ {{3375327658718839504ull, 11898595057661135225ull,
+ 6678770687937553444ull, 8737053216133057433ull}},
+ {{13638794832767744450ull, 16659993947892985323ull,
+ 15703446726029440662ull, 5460658260083160895ull}},
+ {{12436807522532292658ull, 11601620398011455846ull,
+ 15017622389109412924ull, 6825822825103951119ull}},
+ {{6322637366310590015ull, 14502025497514319808ull,
+ 14160341967959378251ull, 8532278531379938899ull}},
+ {{3951648353944118760ull, 6757922926732755928ull,
+ 6544370720760917455ull, 5332674082112461812ull}},
+ {{4939560442430148449ull, 3835717639988557006ull,
+ 8180463400951146819ull, 6665842602640577265ull}},
+ {{15397822589892461369ull, 182961031558308353ull,
+ 14837265269616321428ull, 8332303253300721581ull}},
+ {{2706110091041706500ull, 9337722681578718529ull,
+ 11579133802723894844ull, 5207689533312950988ull}},
+ {{7994323632229521029ull, 11672153351973398161ull,
+ 14473917253404868555ull, 6509611916641188735ull}},
+ {{14604590558714289190ull, 9978505671539359797ull,
+ 13480710548328697790ull, 8137014895801485919ull}},
+ {{11433712108410124696ull, 1624880026284711969ull,
+ 15342973120346517975ull, 5085634309875928699ull}},
+ {{457082080230492158ull, 15866158088138053674ull,
+ 14567030382005759564ull, 6357042887344910874ull}},
+ {{9794724637142891005ull, 1385953536463015476ull,
+ 8985415940652423648ull, 7946303609181138593ull}},
+ {{15345074935069082686ull, 866220960289384672ull,
+ 17145100008976234540ull, 4966439755738211620ull}},
+ {{734599595126801742ull, 1082776200361730841ull, 2984630937510741559ull,
+ 6208049694672764526ull}},
+ {{5529935512335890081ull, 15188528305734327263ull,
+ 12954160708743202756ull, 7760062118340955657ull}},
+ {{10373738722851013157ull, 269458154229178731ull,
+ 1178821415323419867ull, 4850038823963097286ull}},
+ {{8355487385136378542ull, 14171880748068637126ull,
+ 10696898806009050641ull, 6062548529953871607ull}},
+ {{1220987194565697370ull, 3879792879803632696ull,
+ 8759437489083925398ull, 7578185662442339509ull}},
+ {{763116996603560856ull, 16259928605159434147ull,
+ 7780491439891147325ull, 4736366039026462193ull}},
+ {{14788954301036614782ull, 6489852701167128971ull,
+ 14337300318291322061ull, 5920457548783077741ull}},
+ {{13874506857868380573ull, 12724001894886299118ull,
+ 4086567342581988864ull, 7400571935978847177ull}},
+ {{4059880767740349955ull, 7952501184303936949ull,
+ 14083319635182212800ull, 4625357459986779485ull}},
+ {{9686536978102825347ull, 9940626480379921186ull,
+ 3769091488695602288ull, 5781696824983474357ull}},
+ {{2884799185773755876ull, 12425783100474901483ull,
+ 9323050379296890764ull, 7227121031229342946ull}},
+ {{17441057037499358557ull, 15532228875593626853ull,
+ 2430440937266337647ull, 9033901289036678683ull}},
+ {{13206503657650793050ull, 16625172074887098639ull,
+ 17659926650287318693ull, 5646188305647924176ull}},
+ {{11896443553636103408ull, 6946407038326709587ull,
+ 3628164239149596751ull, 7057735382059905221ull}},
+ {{10258868423617741356ull, 4071322779480999080ull,
+ 9146891317364383843ull, 8822169227574881526ull}},
+ {{6411792764761088348ull, 238733727961930473ull, 1105121054925351998ull,
+ 5513855767234300954ull}},
+ {{12626426974378748339ull, 9521789196807188899ull,
+ 10604773355511465805ull, 6892319709042876192ull}},
+ {{11171347699546047519ull, 16513922514436374028ull,
+ 13255966694389332256ull, 8615399636303595240ull}},
+ {{16205464349071055508ull, 10321201571522733767ull,
+ 8284979183993332660ull, 5384624772689747025ull}},
+ {{15645144417911431481ull, 12901501964403417209ull,
+ 14967909998419053729ull, 6730780965862183781ull}},
+ {{5721372467107125639ull, 2291819400222107800ull,
+ 4874829442741653450ull, 8413476207327729727ull}},
+ {{3575857791941953524ull, 6044073143566205279ull,
+ 9964297429354615262ull, 5258422629579831079ull}},
+ {{18304880295209605617ull, 16778463466312532406ull,
+ 7843685768265881173ull, 6573028286974788849ull}},
+ {{13657728332157231214ull, 7138021277608501796ull,
+ 14416293228759739371ull, 8216285358718486061ull}},
+ {{17759452244453045317ull, 2155420289291619670ull,
+ 11316026277188531059ull, 5135178349199053788ull}},
+ {{12975943268711530838ull, 16529333416896688300ull,
+ 14145032846485663823ull, 6418972936498817235ull}},
+ {{16219929085889413547ull, 16049980752693472471ull,
+ 13069605039679691875ull, 8023716170623521544ull}},
+ {{17054984706321965323ull, 7725394961219726342ull,
+ 8168503149799807422ull, 5014822606639700965ull}},
+ {{12095358846047680846ull, 433371664669882120ull,
+ 14822314955677147182ull, 6268528258299626206ull}},
+ {{15119198557559601057ull, 9765086617692128458ull,
+ 9304521657741658169ull, 7835660322874532758ull}},
+ {{14061185116902138565ull, 17632394182126050046ull,
+ 1203640017661148451ull, 4897287701796582974ull}},
+ {{8353109359272897398ull, 17428806709230174654ull,
+ 10727922058931211372ull, 6121609627245728717ull}},
+ {{1218014662236345939ull, 3339264312828166702ull,
+ 18021588592091402120ull, 7652012034057160896ull}},
+ {{14596317219179879924ull, 2087040195517604188ull,
+ 11263492870057126325ull, 4782507521285725560ull}},
+ {{18245396523974849905ull, 7220486262824393139ull,
+ 14079366087571407906ull, 5978134401607156950ull}},
+ {{18195059636541174477ull, 18248979865385267232ull,
+ 8375835572609484074ull, 7472668002008946188ull}},
+ {{11371912272838234049ull, 16017298434293179924ull,
+ 14458269269735703354ull, 4670417501255591367ull}},
+ {{14214890341047792561ull, 10798251006011699097ull,
+ 13461150568742241289ull, 5838021876569489209ull}},
+ {{3933554871027576989ull, 18109499775942011776ull,
+ 2991380155645637899ull, 7297527345711861512ull}},
+ {{4916943588784471236ull, 18025188701500126816ull,
+ 3739225194557047374ull, 9121909182139826890ull}},
+ {{3073089742990294522ull, 6654056920010191356ull,
+ 6948701765025542513ull, 5701193238837391806ull}},
+ {{3841362178737868153ull, 12929257168440127099ull,
+ 17909249243136703949ull, 7126491548546739757ull}},
+ {{190016704994947287ull, 2326513405267995162ull, 8551503498638716225ull,
+ 8908114435683424697ull}},
+ {{4730446459049229959ull, 12983285924360966736ull,
+ 16873904732717667400ull, 5567571522302140435ull}},
+ {{5913058073811537448ull, 16229107405451208420ull,
+ 16480694897469696346ull, 6959464402877675544ull}},
+ {{7391322592264421810ull, 11063012219959234717ull,
+ 2154124548127568817ull, 8699330503597094431ull}},
+ {{6925419629378957583ull, 18443597683542991458ull,
+ 8263856870220812366ull, 5437081564748184019ull}},
+ {{17880146573578472787ull, 13831125067573963514ull,
+ 5718135069348627554ull, 6796351955935230024ull}},
+ {{13126811180118315176ull, 8065534297612678585ull,
+ 7147668836685784443ull, 8495439944919037530ull}},
+ {{1286727959932865129ull, 2735115926794230164ull,
+ 9078979041356003181ull, 5309649965574398456ull}},
+ {{1608409949916081411ull, 8030580926920175609ull,
+ 11348723801695003976ull, 6637062456967998070ull}},
+ {{6622198455822489668ull, 10038226158650219511ull,
+ 4962532715263979162ull, 8296328071209997588ull}},
+ {{11056403062530137899ull, 10885577367583775098ull,
+ 12324954983894762784ull, 5185205044506248492ull}},
+ {{4597131791307896565ull, 13606971709479718873ull,
+ 15406193729868453480ull, 6481506305632810615ull}},
+ {{10358100757562258610ull, 17008714636849648591ull,
+ 14646056143908178946ull, 8101882882041013269ull}},
+ {{13391342001117493488ull, 15242132666458418273ull,
+ 11459628099156305793ull, 5063676801275633293ull}},
+ {{2904119446114703147ull, 5217607777790859130ull, 489477068663218530ull,
+ 6329596001594541617ull}},
+ {{12853521344498154742ull, 15745381759093349720ull,
+ 5223532354256411066ull, 7911995001993177021ull}},
+ {{8033450840311346714ull, 14452549617860731479ull,
+ 5570550730623950868ull, 4944996876245735638ull}},
+ {{5430127531961795488ull, 18065687022325914349ull,
+ 16186560450134714393ull, 6181246095307169547ull}},
+ {{11399345433379632264ull, 8747050722625229224ull,
+ 15621514544241005088ull, 7726557619133961934ull}},
+ {{7124590895862270165ull, 5466906701640768265ull,
+ 5151760571723240276ull, 4829098511958726209ull}},
+ {{13517424638255225611ull, 6833633377050960331ull,
+ 11051386733081438249ull, 6036373139948407761ull}},
+ {{12285094779391644109ull, 13153727739741088318ull,
+ 18425919434779185715ull, 7545466424935509701ull}},
+ {{3066498218692389664ull, 5915236828124486247ull,
+ 13822042655950685024ull, 4715916515584693563ull}},
+ {{17668180828647650792ull, 7394046035155607808ull,
+ 12665867301510968376ull, 5894895644480866954ull}},
+ {{3638481962100011874ull, 9242557543944509761ull,
+ 6608962090033934662ull, 7368619555601083693ull}},
+ {{9159788471052402747ull, 2329824893075861393ull,
+ 12872888630969806232ull, 9210774444501354616ull}},
+ {{17254082840476221477ull, 1456140558172413370ull,
+ 8045555394356128895ull, 5756734027813346635ull}},
+ {{12344231513740501038ull, 15655233752997680425ull,
+ 5445258224517773214ull, 7195917534766683294ull}},
+ {{1595231336893462585ull, 10345670154392324724ull,
+ 16029944817501992326ull, 8994896918458354117ull}},
+ {{10220391622413189924ull, 1854357828067815048ull,
+ 12324558520152439156ull, 5621810574036471323ull}},
+ {{12775489528016487405ull, 2317947285084768810ull,
+ 10794012131763161041ull, 7027263217545589154ull}},
+ {{6745989873165833448ull, 7509120124783348917ull,
+ 4269143127849175493ull, 8784079021931986443ull}},
+ {{6522086679942339857ull, 6999043087203287025ull, 362371445692040731ull,
+ 5490049388707491527ull}},
+ {{12764294368355312725ull, 4137117840576720877ull,
+ 14288022362397214626ull, 6862561735884364408ull}},
+ {{2120309905161977195ull, 14394769337575676905ull,
+ 17860027952996518282ull, 8578202169855455510ull}},
+ {{12854408736794705507ull, 13608416854412185969ull,
+ 6550831452195436022ull, 5361376356159659694ull}},
+ {{2232952865711218171ull, 7787149031160456654ull,
+ 17411911352099070836ull, 6701720445199574617ull}},
+ {{12014563118993798522ull, 9733936288950570817ull,
+ 7929831134841674833ull, 8377150556499468272ull}},
+ {{591572921730042221ull, 17612925226662576521ull,
+ 4956144459276046770ull, 5235719097812167670ull}},
+ {{5351152170589940680ull, 12792784496473444843ull,
+ 15418552610949834271ull, 6544648872265209587ull}},
+ {{2077254194810037945ull, 11379294602164418150ull,
+ 14661504745259904935ull, 8180811090331511984ull}},
+ {{15133341927038437428ull, 14029588153993843199ull,
+ 9163440465787440584ull, 5113006931457194990ull}},
+ {{14304991390370658881ull, 17536985192492303999ull,
+ 2230928545379524922ull, 6391258664321493738ull}},
+ {{13269553219535935697ull, 12697859453760604191ull,
+ 12012032718579181961ull, 7989073330401867172ull}},
+ {{15210999789851041667ull, 1018633130959295763ull,
+ 16730892485966764534ull, 4993170831501166982ull}},
+ {{14402063718886414179ull, 10496663450553895512ull,
+ 11690243570603679859ull, 6241463539376458728ull}},
+ {{18002579648608017724ull, 8509143294764981486ull,
+ 14612804463254599824ull, 7801829424220573410ull}},
+ {{6639926261952623174ull, 5318214559228113429ull,
+ 13744688807961512794ull, 4876143390137858381ull}},
+ {{12911593845868166871ull, 15871140235889917594ull,
+ 3345802954669727280ull, 6095179237672322977ull}},
+ {{6916120270480432781ull, 1392181221152845377ull,
+ 8793939711764547005ull, 7618974047090403721ull}},
+ {{15851790215118740248ull, 3175956272434222312ull,
+ 17025427365921311638ull, 4761858779431502325ull}},
+ {{1367993695188873694ull, 13193317377397553699ull,
+ 7446726152119475835ull, 5952323474289377907ull}},
+ {{15545050174268255829ull, 11879960703319554219ull,
+ 4696721671721956890ull, 7440404342861722384ull}},
+ {{7409813349703965942ull, 12036661458002109291ull,
+ 2935451044826223056ull, 4650252714288576490ull}},
+ {{4650580668702569523ull, 15045826822502636614ull,
+ 12892685842887554628ull, 5812815892860720612ull}},
+ {{15036597872732987711ull, 360539454418744151ull,
+ 16115857303609443286ull, 7266019866075900765ull}},
+ {{14184061322488846735ull, 9674046354878205997ull,
+ 6309763574229640395ull, 9082524832594875957ull}},
+ {{11170881335769223162ull, 3740435962585184796ull,
+ 6249445243107219199ull, 5676578020371797473ull}},
+ {{13963601669711528952ull, 63858934804093091ull,
+ 12423492572311411903ull, 7095722525464746841ull}},
+ {{12842816068712023286ull, 13914881723787280076ull,
+ 1694307660107101166ull, 8869653156830933552ull}},
+ {{17250132079799790362ull, 4085115058939662143ull,
+ 1058942287566938229ull, 5543533223019333470ull}},
+ {{16950979081322350048ull, 9718079842101965583ull,
+ 10547049896313448594ull, 6929416528774166837ull}},
+ {{16577037833225549656ull, 2924227765772681171ull,
+ 17795498388819198647ull, 8661770660967708546ull}},
+ {{8054805636552274583ull, 8745171381249007588ull,
+ 15733872511439387058ull, 5413606663104817841ull}},
+ {{10068507045690343229ull, 1708092189706483677ull,
+ 5832282584017070111ull, 6767008328881022302ull}},
+ {{17197319825540316940ull, 15970173292415268308ull,
+ 16513725266876113446ull, 8458760411101277877ull}},
+ {{1524952854107922280ull, 5369672289332154789ull,
+ 12626921301011264856ull, 5286725256938298673ull}},
+ {{6517877086062290754ull, 6712090361665193486ull,
+ 1948593570981917358ull, 6608406571172873342ull}},
+ {{17370718394432639250ull, 17613484988936267665ull,
+ 11659114000582172505ull, 8260508213966091677ull}},
+ {{3939169968879317675ull, 4090899090444085435ull,
+ 9592789259577551768ull, 5162817633728807298ull}},
+ {{312276442671759190ull, 5113623863055106794ull, 2767614537617163902ull,
+ 6453522042161009123ull}},
+ {{9613717590194474795ull, 15615401865673659300ull,
+ 17294576227303618589ull, 8066902552701261403ull}},
+ {{15231945530726322555ull, 12065469175259731014ull,
+ 8503267132851067666ull, 5041814095438288377ull}},
+ {{9816559876553127386ull, 5858464432219887960ull,
+ 15240769934491222487ull, 6302267619297860471ull}},
+ {{12270699845691409232ull, 2711394521847472046ull,
+ 14439276399686640205ull, 7877834524122325589ull}},
+ {{3057501385129742866ull, 4000464585368363981ull,
+ 11330390759017844080ull, 4923646577576453493ull}},
+ {{8433562749839566487ull, 5000580731710454976ull, 327930393490141388ull,
+ 6154558221970566867ull}},
+ {{10541953437299458108ull, 6250725914638068720ull,
+ 14244971047144840447ull, 7693197777463208583ull}},
+ {{6588720898312161318ull, 10824232724289874806ull,
+ 15820635932106607135ull, 4808248610914505364ull}},
+ {{17459273159744977455ull, 8918604886934955603ull,
+ 1329050841423707303ull, 6010310763643131706ull}},
+ {{17212405431253833915ull, 6536570090241306600ull,
+ 10884685588634409937ull, 7512888454553914632ull}},
+ {{10757753394533646197ull, 15614571352469286385ull,
+ 6802928492896506210ull, 4695555284096196645ull}},
+ {{18058877761594445650ull, 10294842153731832173ull,
+ 13115346634548020667ull, 5869444105120245806ull}},
+ {{8738539146710893351ull, 8256866673737402313ull,
+ 7170811256330250026ull, 7336805131400307258ull}},
+ {{15534859951816004592ull, 1097711305316977083ull,
+ 18186886107267588341ull, 9171006414250384072ull}},
+ {{7403444460671308918ull, 2991912575036804629ull,
+ 11366803817042242713ull, 5731879008906490045ull}},
+ {{13865991594266524052ull, 8351576737223393690ull,
+ 373446716020639679ull, 7164848761133112557ull}},
+ {{8109117455978379257ull, 5827784903101854209ull,
+ 5078494413453187503ull, 8956060951416390696ull}},
+ {{16597413456054956796ull, 10559894592079740736ull,
+ 3174059008408242189ull, 5597538094635244185ull}},
+ {{2300022746359144378ull, 17811554258527063825ull,
+ 8579259778937690640ull, 6996922618294055231ull}},
+ {{7486714451376318377ull, 3817698749449278165ull,
+ 6112388705244725397ull, 8746153272867569039ull}},
+ {{6985039541323892938ull, 4691904727619492805ull,
+ 10737771968419035229ull, 5466345795542230649ull}},
+ {{13342985445082254076ull, 10476566927951753910ull,
+ 18033900978951181940ull, 6832932244427788311ull}},
+ {{7455359769498041787ull, 13095708659939692388ull,
+ 17930690205261589521ull, 8541165305534735389ull}},
+ {{13882971892791051925ull, 1267288884821225886ull,
+ 13512524387502187403ull, 5338228315959209618ull}},
+ {{8130342829134039098ull, 15419169161308696070ull,
+ 7667283447522958445ull, 6672785394949012023ull}},
+ {{939556499562773065ull, 5438903396353706376ull, 4972418290976310153ull,
+ 8340981743686265029ull}},
+ {{587222812226733166ull, 14928529668789536245ull,
+ 5413604441073887797ull, 5213113589803915643ull}},
+ {{5345714533710804361ull, 4825604030704756594ull,
+ 2155319532914971843ull, 6516391987254894554ull}},
+ {{15905515203993281259ull, 1420319019953557838ull,
+ 11917521452998490612ull, 8145489984068618192ull}},
+ {{5329260984068412883ull, 10111071424325749457ull,
+ 7448450908124056632ull, 5090931240042886370ull}},
+ {{11273262248512904008ull, 12638839280407186821ull,
+ 87191598300294982ull, 6363664050053607963ull}},
+ {{256519755358966297ull, 6575177063654207719ull,
+ 13944047553157532440ull, 7954580062567009953ull}},
+ {{7077853874740435792ull, 4109485664783879824ull,
+ 1797500693082375919ull, 4971612539104381221ull}},
+ {{8847317343425544740ull, 525171062552461876ull, 6858561884780357803ull,
+ 6214515673880476526ull}},
+ {{11059146679281930925ull, 14491521883472741057ull,
+ 17796574392830223061ull, 7768144592350595657ull}},
+ {{18441181720619676588ull, 11363044186384157112ull,
+ 4205329967877807557ull, 4855090370219122286ull}},
+ {{4604733077065044119ull, 368747177698032679ull,
+ 14480034496702035255ull, 6068862962773902857ull}},
+ {{1144230327903917245ull, 14295992027404704561ull,
+ 4264985065595380356ull, 7586078703467378572ull}},
+ {{12244359001008418038ull, 18158367053982716158ull,
+ 11888987702851888530ull, 4741299189667111607ull}},
+ {{6082076714405746740ull, 13474586780623619390ull,
+ 10249548610137472759ull, 5926623987083889509ull}},
+ {{16825967929861959232ull, 12231547457352136333ull,
+ 17423621781099228853ull, 7408279983854861886ull}},
+ {{12822072965377418472ull, 9950560170058779160ull,
+ 6278077594759630129ull, 4630174989909288679ull}},
+ {{16027591206721773090ull, 17049886231000861854ull,
+ 3235910975022149757ull, 5787718737386610849ull}},
+ {{10811116971547440555ull, 7477299733468913606ull,
+ 8656574737205075101ull, 7234648421733263561ull}},
+ {{4290524177579524885ull, 13958310685263529912ull,
+ 15432404439933731780ull, 9043310527166579451ull}},
+ {{2681577610987203054ull, 17947316215144482003ull,
+ 7339409765744888410ull, 5652069079479112157ull}},
+ {{17187030069016167529ull, 13210773232075826695ull,
+ 13785948225608498417ull, 7065086349348890196ull}},
+ {{16872101567842821507ull, 2678408484812619657ull,
+ 17232435282010623022ull, 8831357936686112745ull}},
+ {{3627534452260681586ull, 15509063358290050998ull,
+ 3852743023615557532ull, 5519598710428820466ull}},
+ {{13757790102180627790ull, 939585124153012131ull,
+ 14039300816374222724ull, 6899498388036025582ull}},
+ {{12585551609298396834ull, 1174481405191265164ull,
+ 8325753983613002597ull, 8624372985045031978ull}},
+ {{17089341792666273829ull, 3039893887458234679ull,
+ 9815282258185514527ull, 5390233115653144986ull}},
+ {{16749991222405454383ull, 17634925414604957061ull,
+ 3045730785877117350ull, 6737791394566431233ull}},
+ {{7102430972724654266ull, 12820284731401420519ull,
+ 8418849500773784592ull, 8422239243208039041ull}},
+ {{11356548385593990772ull, 8012677957125887824ull,
+ 16790995984052085130ull, 5263899527005024400ull}},
+ {{14195685481992488465ull, 792475409552583972ull,
+ 2542000906355554797ull, 6579874408756280501ull}},
+ {{17744606852490610582ull, 5602280280368117869ull,
+ 7789187151371831400ull, 8224843010945350626ull}},
+ {{13396222292020325566ull, 3501425175230073668ull,
+ 9479927988034782529ull, 5140526881840844141ull}},
+ {{16745277865025406957ull, 8988467487464979989ull,
+ 16461596003470866065ull, 6425658602301055176ull}},
+ {{7096539275999594984ull, 15847270377758612891ull,
+ 2130250930629030965ull, 8032073252876318971ull}},
+ {{2129494038286052913ull, 12210386995312827009ull,
+ 17472307896139002017ull, 5020045783047699356ull}},
+ {{7273553566284954046ull, 1427925688858870049ull,
+ 3393640796464200906ull, 6275057228809624196ull}},
+ {{13703627976283580461ull, 11008279147928363369ull,
+ 4242050995580251132ull, 7843821536012030245ull}},
+ {{1647238457536155932ull, 16103546504310002914ull,
+ 4957124881451350909ull, 4902388460007518903ull}},
+ {{11282420108774970723ull, 6294375075105339930ull,
+ 1584720083386800733ull, 6127985575009398629ull}},
+ {{4879653099113937596ull, 12479654862309062817ull,
+ 6592586122660888820ull, 7659981968761748286ull}},
+ {{14578998233014680758ull, 17023156325797940068ull,
+ 17955424381945219224ull, 4787488730476092678ull}},
+ {{18223747791268350947ull, 2832201333537873469ull,
+ 13220908440576748223ull, 5984360913095115848ull}},
+ {{8944626683803274971ull, 17375309722204505549ull,
+ 16526135550720935278ull, 7480451141368894810ull}},
+ {{7896234686590740809ull, 6247882557950428064ull,
+ 14940520737627972453ull, 4675281963355559256ull}},
+ {{9870293358238426011ull, 12421539215865422984ull,
+ 228906848325413950ull, 5844102454194449071ull}},
+ {{12337866697798032514ull, 6303551982977002922ull,
+ 14121191615688931150ull, 7305128067743061338ull}},
+ {{6198961335392764835ull, 17102812015576029461ull,
+ 8428117482756388129ull, 9131410084678826673ull}},
+ {{6180193843834171974ull, 3771728482093936557ull,
+ 16796788472791212341ull, 5707131302924266670ull}},
+ {{12336928323220102871ull, 9326346621044808600ull,
+ 11772613554134239618ull, 7133914128655333338ull}},
+ {{15421160404025128589ull, 2434561239451234942ull,
+ 5492394905813023715ull, 8917392660819166673ull}},
+ {{5026539234088317464ull, 17662501839152879503ull,
+ 14961961862201609581ull, 5573370413011979170ull}},
+ {{1671488024183008926ull, 8243069243658935667ull,
+ 9479080290897236169ull, 6966713016264973963ull}},
+ {{15924418085510924870ull, 14915522573001057487ull,
+ 7237164345194157307ull, 8708391270331217454ull}},
+ {{16870290331085409900ull, 7016358598911966977ull,
+ 18358285771028512029ull, 5442744543957010908ull}},
+ {{7252804858574598662ull, 13382134267067346626ull,
+ 4501113140076088420ull, 6803430679946263636ull}},
+ {{18289378110073024136ull, 16727667833834183282ull,
+ 5626391425095110525ull, 8504288349932829545ull}},
+ {{16042547337223027989ull, 12760635405360058503ull,
+ 15045709686752913838ull, 5315180218708018465ull}},
+ {{15441498153101397082ull, 6727422219845297321ull,
+ 4972079053158978586ull, 6643975273385023082ull}},
+ {{5466814636094582641ull, 17632649811661397460ull,
+ 15438470853303499040ull, 8304969091731278852ull}},
+ {{12640131184413889959ull, 11020406132288373412ull,
+ 425672246459911092ull, 5190605682332049283ull}},
+ {{15800163980517362448ull, 13775507665360466765ull,
+ 14367148363357052577ull, 6488257102915061603ull}},
+ {{5915146920364539348ull, 3384326526418419745ull,
+ 13347249435768927818ull, 8110321378643827004ull}},
+ {{15226181871296306853ull, 6726890097438900244ull,
+ 17565402934210355694ull, 5068950861652391877ull}},
+ {{585983265410831950ull, 17631984658653401114ull,
+ 8121695612480780905ull, 6336188577065489847ull}},
+ {{9955851118618315745ull, 8204922768034587680ull,
+ 5540433497173588228ull, 7920235721331862309ull}},
+ {{6222406949136447341ull, 14351448766876393108ull,
+ 5768613944947186594ull, 4950147325832413943ull}},
+ {{7778008686420559176ull, 8715938921740715577ull,
+ 2599081412756595339ull, 6187684157290517429ull}},
+ {{14334196876453086874ull, 6283237633748506567ull,
+ 7860537784373132078ull, 7734605196613146786ull}},
+ {{15876402075424261152ull, 17762081576374980316ull,
+ 9524522133660595452ull, 4834128247883216741ull}},
+ {{1398758520570774824ull, 3755857896759173780ull,
+ 16517338685503132220ull, 6042660309854020926ull}},
+ {{1748448150713468530ull, 4694822370948967225ull,
+ 11423301320024139467ull, 7553325387317526158ull}},
+ {{12621995140264387592ull, 628420972629410563ull,
+ 2527877306587699263ull, 4720828367073453849ull}},
+ {{11165807906903096585ull, 14620584271068926916ull,
+ 7771532651662011982ull, 5901035458841817311ull}},
+ {{13957259883628870732ull, 9052358301981382837ull,
+ 5102729796150127074ull, 7376294323552271639ull}},
+ {{3611516799253924702ull, 2092075840621952739ull,
+ 1766726226760270939ull, 9220367904440339549ull}},
+ {{18398099064029560603ull, 17448448464884578125ull,
+ 3410046900938863288ull, 5762729940275212218ull}},
+ {{9162565774754787042ull, 3363816507396171041ull,
+ 13485930663028354919ull, 7203412425344015272ull}},
+ {{16064893236870871706ull, 18039828689527377513ull,
+ 16857413328785443648ull, 9004265531680019090ull}},
+ {{3123029245403212961ull, 11274892930954610946ull,
+ 15147569348918290184ull, 5627665957300011931ull}},
+ {{13127158593608792009ull, 14093616163693263682ull,
+ 14322775667720474826ull, 7034582446625014914ull}},
+ {{7185576205156214203ull, 8393648167761803795ull,
+ 8680097547795817725ull, 8793228058281268643ull}},
+ {{2185142119008939925ull, 7551873114064821324ull,
+ 3119217958158692126ull, 5495767536425792902ull}},
+ {{2731427648761174906ull, 216469355726250847ull,
+ 13122394484553140966ull, 6869709420532241127ull}},
+ {{17249342616233632344ull, 9493958731512589366ull,
+ 11791307087264038303ull, 8587136775665301409ull}},
+ {{6169153116718632311ull, 12851253234836450210ull,
+ 452037901898942083ull, 5366960484790813381ull}},
+ {{16934813432753066197ull, 11452380525118174858ull,
+ 5176733395801065508ull, 6708700605988516726ull}},
+ {{11945144754086556938ull, 14315475656397718573ull,
+ 15694288781606107693ull, 8385875757485645907ull}},
+ {{9771558480517792039ull, 11253015294462268060ull,
+ 7503087479290123356ull, 5241172348428528692ull}},
+ {{12214448100647240048ull, 14066269118077835075ull,
+ 9378859349112654195ull, 6551465435535660865ull}},
+ {{10656374107381662156ull, 12971150379169905940ull,
+ 16335260204818205648ull, 8189331794419576081ull}},
+ {{15883605853968314656ull, 8106968986981191212ull,
+ 3292008600370296674ull, 5118332371512235051ull}},
+ {{1407763243750841703ull, 910339196871713208ull,
+ 17950068805745034555ull, 6397915464390293813ull}},
+ {{1759704054688552129ull, 14972982051371805222ull,
+ 8602527951899129481ull, 7997394330487867267ull}},
+ {{14934873089462508793ull, 2440584754466296407ull,
+ 3070736960723261974ull, 4998371456554917042ull}},
+ {{14056905343400748087ull, 12274102979937646317ull,
+ 13061793237758853275ull, 6247964320693646302ull}},
+ {{3736073623968771397ull, 10730942706494669993ull,
+ 7103869510343790786ull, 7809955400867057878ull}},
+ {{13864261061048951883ull, 11318525209986556649ull,
+ 18274976499247032953ull, 4881222125541911173ull}},
+ {{3495268271029026142ull, 313098457201032100ull, 9008662568776627480ull,
+ 6101527656927388967ull}},
+ {{4369085338786282677ull, 391373071501290125ull, 6649142192543396446ull,
+ 7626909571159236209ull}},
+ {{5036521345955120625ull, 14079666224970470040ull,
+ 15684928916408092538ull, 4766818481974522630ull}},
+ {{6295651682443900782ull, 8376210744358311742ull,
+ 10382789108655339865ull, 5958523102468153288ull}},
+ {{17092936639909651785ull, 15081949448875277581ull,
+ 12978486385819174831ull, 7448153878085191610ull}},
+ {{12988928409157226318ull, 16343747433188130344ull,
+ 12723240009564372173ull, 4655096173803244756ull}},
+ {{16236160511446532897ull, 6594626236202999218ull,
+ 15904050011955465217ull, 5818870217254055945ull}},
+ {{11071828602453390313ull, 12854968813681136927ull,
+ 6045004459662167809ull, 7273587771567569932ull}},
+ {{9228099734639349987ull, 2233652961819257447ull,
+ 7556255574577709762ull, 9091984714459462415ull}},
+ {{12685091361790675598ull, 6007719119564423808ull,
+ 11640188761752150457ull, 5682490446537164009ull}},
+ {{15856364202238344498ull, 12121334917882917664ull,
+ 715177896908024359ull, 7103113058171455012ull}},
+ {{1373711179088379006ull, 10539982628926259177ull,
+ 893972371135030449ull, 8878891322714318765ull}},
+ {{12387784532998706639ull, 18116704189147381745ull,
+ 2864575741173087982ull, 5549307076696449228ull}},
+ {{1649672610966219587ull, 13422508199579451374ull,
+ 3580719676466359978ull, 6936633845870561535ull}},
+ {{11285462800562550291ull, 7554763212619538409ull,
+ 18310957650865113685ull, 8670792307338201918ull}},
+ {{135885222710512076ull, 7027570017100905458ull, 6832662513363308149ull,
+ 5419245192086376199ull}},
+ {{9393228565242915903ull, 13396148539803519726ull,
+ 3929142123276747282ull, 6774056490107970249ull}},
+ {{2518163669698869071ull, 7521813637899623850ull,
+ 9523113672523322007ull, 8467570612634962811ull}},
+ {{6185538311989181073ull, 11618662551328346762ull,
+ 3646103036113382302ull, 5292231632896851757ull}},
+ {{16955294926841252150ull, 5299956152305657644ull,
+ 9169314813569115782ull, 6615289541121064696ull}},
+ {{2747374584842013571ull, 15848317227236847864ull,
+ 11461643516961394727ull, 8269111926401330870ull}},
+ {{1717109115526258482ull, 16822727294664111771ull,
+ 2551841179673483800ull, 5168194954000831794ull}},
+ {{15981444449689986814ull, 2581665044620588097ull,
+ 12413173511446630559ull, 6460243692501039742ull}},
+ {{6141747506830319806ull, 17062139361057898834ull,
+ 6293094852453512390ull, 8075304615626299678ull}},
+ {{8450278210196337783ull, 6052151082233798867ull,
+ 17768242338065608956ull, 5047065384766437298ull}},
+ {{5951161744318034324ull, 7565188852792248584ull,
+ 12986930885727235387ull, 6308831730958046623ull}},
+ {{7438952180397542905ull, 4844800047562922826ull,
+ 11621977588731656330ull, 7886039663697558279ull}},
+ {{9261031131175852220ull, 7639686048154214670ull,
+ 14181265020598367062ull, 4928774789810973924ull}},
+ {{2352916877115039467ull, 326235523337992530ull,
+ 17726581275747958828ull, 6160968487263717405ull}},
+ {{12164518133248575142ull, 407794404172490662ull,
+ 8323168539402784823ull, 7701210609079646757ull}},
+ {{2991137814852971560ull, 7172400530248888520ull,
+ 7507823346340434466ull, 4813256630674779223ull}},
+ {{3738922268566214449ull, 18188872699665886458ull,
+ 4773093164498155178ull, 6016570788343474029ull}},
+ {{13897024872562543870ull, 13512718837727582264ull,
+ 10578052474050081877ull, 7520713485429342536ull}},
+ {{8685640545351589919ull, 10751292282793432867ull,
+ 6611282796281301173ull, 4700445928393339085ull}},
+ {{6245364663262099494ull, 18050801371919178988ull,
+ 12875789513779014370ull, 5875557410491673856ull}},
+ {{7806705829077624368ull, 13340129678044197927ull,
+ 16094736892223767963ull, 7344446763114592320ull}},
+ {{5146696267919642556ull, 12063476079127859505ull,
+ 1671677041570158338ull, 9180558453893240401ull}},
+ {{14745900213518246357ull, 12151358567882300094ull,
+ 12574013197049818721ull, 5737849033683275250ull}},
+ {{9209003230043032139ull, 1354140154570711406ull,
+ 6494144459457497594ull, 7172311292104094063ull}},
+ {{2287882000699014365ull, 10916047230068165066ull,
+ 3505994555894484088ull, 8965389115130117579ull}},
+ {{6041612268864271882ull, 6822529518792603166ull,
+ 18332147661929910219ull, 5603368196956323486ull}},
+ {{16775387372935115661ull, 3916475880063366053ull,
+ 13691812540557611966ull, 7004210246195404358ull}},
+ {{7134176160886730864ull, 14118966886933983375ull,
+ 7891393638842239149ull, 8755262807744255448ull}},
+ {{11376389128195288646ull, 11130197313547433561ull,
+ 4932121024276399468ull, 5472039254840159655ull}},
+ {{385428354961947096ull, 13912746641934291952ull,
+ 1553465261918111431ull, 6840049068550199569ull}},
+ {{481785443702433869ull, 12779247283990477036ull,
+ 6553517595825027193ull, 8550061335687749461ull}},
+ {{9524487939168796977ull, 1069500524852966291ull,
+ 6401791506604335948ull, 5343788334804843413ull}},
+ {{7293923905533608317ull, 1336875656066207864ull,
+ 12613925401682807839ull, 6679735418506054266ull}},
+ {{9117404881917010396ull, 15506152625364923542ull,
+ 6544034715248733990ull, 8349669273132567833ull}},
+ {{1086692032770743593ull, 5079659372425689310ull,
+ 15619236743098928504ull, 5218543295707854895ull}},
+ {{10581737077818205300ull, 6349574215532111637ull,
+ 14912359910446272726ull, 6523179119634818619ull}},
+ {{17838857365700144528ull, 17160339806269915354ull,
+ 14028763869630453003ull, 8153973899543523274ull}},
+ {{15760971871989978234ull, 8419369369705003144ull,
+ 13379663436946421031ull, 5096233687214702046ull}},
+ {{1254470766277921177ull, 5912525693703866027ull,
+ 7501207259328250481ull, 6370292109018377558ull}},
+ {{15403146513129565183ull, 12002343135557220437ull,
+ 153137037305537293ull, 7962865136272971948ull}},
+ {{11932809579919672192ull, 9807307468936956725ull,
+ 9319082685170736616ull, 4976790710170607467ull}},
+ {{1080953919617426527ull, 12259134336171195907ull,
+ 7037167338036032866ull, 6220988387713259334ull}},
+ {{15186250454803946871ull, 6100545883359219075ull,
+ 18019831209399816891ull, 7776235484641574167ull}},
+ {{7185563525038772843ull, 1506998167885817970ull,
+ 18179923533515967413ull, 4860147177900983854ull}},
+ {{18205326443153241861ull, 6495433728284660366ull,
+ 13501532380040183458ull, 6075183972376229818ull}},
+ {{13533286017086776518ull, 17342664197210601266ull,
+ 7653543438195453514ull, 7593979965470287273ull}},
+ {{13069989779106623228ull, 15450851141684013695ull,
+ 16312679694940628206ull, 4746237478418929545ull}},
+ {{11725801205455891131ull, 10090191890250241311ull,
+ 6555791563393621546ull, 5932796848023661932ull}},
+ {{10045565488392476010ull, 3389367825958025831ull,
+ 8194739454242026933ull, 7415996060029577415ull}},
+ {{13196007457886379362ull, 4424197900437460096ull,
+ 12039241186542348689ull, 4634997537518485884ull}},
+ {{16495009322357974203ull, 10141933393974213024ull,
+ 15049051483177935861ull, 5793746921898107355ull}},
+ {{2172017579237916137ull, 17289102760895154185ull,
+ 14199628335545031922ull, 7242183652372634194ull}},
+ {{7326707992474783075ull, 12388006414264166923ull,
+ 8526163382576514095ull, 9052729565465792743ull}},
+ {{2273349486083045470ull, 14660033036556186183ull,
+ 12246381141751403165ull, 5657955978416120464ull}},
+ {{16676744912885970550ull, 4489983240413069016ull,
+ 15307976427189253957ull, 7072444973020150580ull}},
+ {{2399187067397911571ull, 10224165068943724175ull,
+ 688226460277015830ull, 8840556216275188226ull}},
+ {{8417020944764776588ull, 1778417149662439705ull,
+ 5041827556100522798ull, 5525347635171992641ull}},
+ {{15132962199383358639ull, 11446393473932825439ull,
+ 10913970463553041401ull, 6906684543964990801ull}},
+ {{14304516730801810395ull, 472933787133868087ull,
+ 18254149097868689656ull, 8633355679956238501ull}},
+ {{15857851984392213353ull, 295583616958667554ull,
+ 13714686195381624987ull, 5395847299972649063ull}},
+ {{10598942943635490883ull, 14204537576480498155ull,
+ 12531671725799643329ull, 6744809124965811329ull}},
+ {{8636992661116975699ull, 3920613915318458982ull,
+ 1829531601967390450ull, 8431011406207264162ull}},
+ {{786434394770721908ull, 7062069715501424768ull, 5755143269657006935ull,
+ 5269382128879540101ull}},
+ {{983042993463402385ull, 4215901125949393056ull,
+ 11805615105498646573ull, 6586727661099425126ull}},
+ {{1228803741829252982ull, 9881562425864129224ull,
+ 5533646845018532408ull, 8233409576374281408ull}},
+ {{768002338643283114ull, 6175976516165080765ull, 3458529278136582755ull,
+ 5145880985233925880ull}},
+ {{5571688941731491796ull, 3108284626778963052ull,
+ 4323161597670728444ull, 6432351231542407350ull}},
+ {{6964611177164364745ull, 3885355783473703815ull,
+ 14627324033943186363ull, 8040439039428009187ull}},
+ {{11270411013368809822ull, 122504355457370932ull,
+ 6836234512000797525ull, 5025274399642505742ull}},
+ {{14088013766711012277ull, 4764816462749101569ull,
+ 17768665176855772714ull, 6281592999553132177ull}},
+ {{3774959153106601634ull, 15179392615291152770ull,
+ 8375773415787552180ull, 7851991249441415222ull}},
+ {{6971035489119013926ull, 263748347702194673ull, 623172366439832209ull,
+ 4907494530900884514ull}},
+ {{13325480379826155311ull, 4941371453055131245ull,
+ 10002337494904566069ull, 6134368163626105642ull}},
+ {{2821792419500530426ull, 10788400334746301961ull,
+ 3279549831775931778ull, 7667960204532632053ull}},
+ {{13292835308256301277ull, 11354436227643826629ull,
+ 4355561654073651313ull, 4792475127832895033ull}},
+ {{2780986080038212884ull, 357987229272619575ull,
+ 10056138086019452046ull, 5990593909791118791ull}},
+ {{17311290655329929816ull, 9670856073445550276ull,
+ 7958486589096927153ull, 7488242387238898489ull}},
+ {{1596184622726430327ull, 17573500091971938683ull,
+ 16503269164254049230ull, 4680151492024311555ull}},
+ {{15830288833690201621ull, 12743503078110147545ull,
+ 16017400436890173634ull, 5850189365030389444ull}},
+ {{5952802986830588314ull, 6706006810782908624ull,
+ 1575006472403165427ull, 7312736706287986806ull}},
+ {{7441003733538235393ull, 3770822495051247876ull,
+ 11192130127358732592ull, 9140920882859983507ull}},
+ {{13873999370316172929ull, 2356764059407029922ull,
+ 4689238320385513918ull, 5713075551787489692ull}},
+ {{8119127176040440353ull, 12169327111113563211ull,
+ 5861547900481892397ull, 7141344439734362115ull}},
+ {{5537222951623162537ull, 1376600833609790302ull,
+ 2715248857174977593ull, 8926680549667952644ull}},
+ {{17295822400046640298ull, 12389590567074588698ull,
+ 10920402572589136803ull, 5579175343542470402ull}},
+ {{12396405963203524564ull, 10875302190415847969ull,
+ 4427131178881645196ull, 6973969179428088003ull}},
+ {{1660449398722241993ull, 13594127738019809962ull,
+ 922227955174668591ull, 8717461474285110004ull}},
+ {{5649466892628789150ull, 15413858863903463082ull,
+ 9799764508838943677ull, 5448413421428193752ull}},
+ {{16285205652640762245ull, 5432265524597165140ull,
+ 12249705636048679597ull, 6810516776785242190ull}},
+ {{1909762992091401190ull, 11402017924173844330ull,
+ 6088760008206073688ull, 8513145970981552738ull}},
+ {{5805287888484513648ull, 7126261202608652706ull,
+ 8417161023556183959ull, 5320716231863470461ull}},
+ {{16479981897460417868ull, 4296140484833427978ull,
+ 15133137297872617853ull, 6650895289829338076ull}},
+ {{11376605334970746527ull, 9981861624469172877ull,
+ 469677548631220700ull, 8313619112286672596ull}},
+ {{9416221343570410531ull, 15462035552148008856ull,
+ 9516920504749288745ull, 5196011945179170372ull}},
+ {{11770276679463013164ull, 5492486384902847358ull,
+ 11896150630936610932ull, 6495014931473962965ull}},
+ {{5489473812473990647ull, 6865607981128559198ull,
+ 1035130233388599953ull, 8118768664342453707ull}},
+ {{17265979188078407867ull, 15820220034273819258ull,
+ 16787857460363732634ull, 5074230415214033566ull}},
+ {{12359101948243234025ull, 10551903005987498265ull,
+ 11761449788599889985ull, 6342788019017541958ull}},
+ {{1613819380021878819ull, 17801564775911760736ull,
+ 5478440198895086673ull, 7928485023771927448ull}},
+ {{1008637112513674262ull, 4208448957303768604ull,
+ 3424025124309429171ull, 4955303139857454655ull}},
+ {{1260796390642092828ull, 648875178202322851ull,
+ 18115089460668950176ull, 6194128924821818318ull}},
+ {{15411053543584779747ull, 811093972752903563ull,
+ 13420489788981411912ull, 7742661156027272898ull}},
+ {{7326065455526793390ull, 506933732970564727ull,
+ 12999492136540770349ull, 4839163222517045561ull}},
+ {{4545895800981103833ull, 5245353184640593813ull,
+ 2414307115393799224ull, 6048954028146306952ull}},
+ {{10294055769653767695ull, 6556691480800742266ull,
+ 3017883894242249030ull, 7561192535182883690ull}},
+ {{11045470874460992714ull, 17932990230782627628ull,
+ 6497863452328793547ull, 4725745334489302306ull}},
+ {{13806838593076240892ull, 17804551770050896631ull,
+ 17345701352265767742ull, 5907181668111627882ull}},
+ {{12646862222917913211ull, 13032317675708844981ull,
+ 12458754653477433870ull, 7383977085139534853ull}},
+ {{10210131898537389709ull, 3533512528890640209ull,
+ 10092564667637090121ull, 4614985678212209283ull}},
+ {{17374350891599125040ull, 9028576679540688165ull,
+ 8004019816118974747ull, 5768732097765261604ull}},
+ {{7882880559216742588ull, 6674034830998472303ull,
+ 10005024770148718434ull, 7210915122206577005ull}},
+ {{5241914680593540331ull, 17565915575602866187ull,
+ 17117966981113285946ull, 9013643902758221256ull}},
+ {{970353666157268755ull, 15590383253179179271ull,
+ 10698729363195803716ull, 5633527439223888285ull}},
+ {{15048000137978749656ull, 1041234992764422472ull,
+ 17985097722422142550ull, 7041909299029860356ull}},
+ {{363256098763885453ull, 10524915777810303899ull,
+ 4034628079318126571ull, 8802386623787325446ull}},
+ {{16367936126223286073ull, 4272229351917745984ull,
+ 16356700604855992819ull, 5501491639867078403ull}},
+ {{2013176084069555975ull, 728600671469794577ull,
+ 15834189737642603120ull, 6876864549833848004ull}},
+ {{7128156123514332872ull, 910750839337243221ull, 1345993098343702284ull,
+ 8596080687292310006ull}},
+ {{6760940586410151997ull, 9792591311440552821ull,
+ 14676303741746977639ull, 5372550429557693753ull}},
+ {{13062861751440077900ull, 7629053120873303122ull,
+ 4510321621901558337ull, 6715688036947117192ull}},
+ {{7105205152445321567ull, 14148002419519016807ull,
+ 5637902027376947921ull, 8394610046183896490ull}},
+ {{11358282247919407836ull, 1924972484558303648ull,
+ 8135374785537980355ull, 5246631278864935306ull}},
+ {{14197852809899259795ull, 16241273660980043272ull,
+ 945846445067699635ull, 6558289098581169133ull}},
+ {{17747316012374074743ull, 15689906057797666186ull,
+ 5793994074762012448ull, 8197861373226461416ull}},
+ {{15703758526161184619ull, 9806191286123541366ull,
+ 3621246296726257780ull, 5123663358266538385ull}},
+ {{10406326120846704965ull, 12257739107654426708ull,
+ 9138243889335210129ull, 6404579197833172981ull}},
+ {{13007907651058381206ull, 1487115829285869673ull,
+ 16034490880096400566ull, 8005723997291466226ull}},
+ {{1212413254270406398ull, 14764505448585832258ull,
+ 14633242818487638257ull, 5003577498307166391ull}},
+ {{10738888604692783806ull, 4620573755450126610ull,
+ 13679867504682159918ull, 6254471872883957989ull}},
+ {{4200238719011203949ull, 14999089231167434071ull,
+ 3264776325570536185ull, 7818089841104947487ull}},
+ {{9542678227023084324ull, 2456901741838564438ull,
+ 8958014231122666972ull, 4886306150690592179ull}},
+ {{2704975746924079597ull, 3071127177298205548ull,
+ 6585831770475945811ull, 6107882688363240224ull}},
+ {{3381219683655099496ull, 17673967026904920647ull,
+ 8232289713094932263ull, 7634853360454050280ull}},
+ {{9030791329925519041ull, 17963758419456657260ull,
+ 5145181070684332664ull, 4771783350283781425ull}},
+ {{11288489162406898802ull, 4007953950611269959ull,
+ 11043162356782803735ull, 5964729187854726781ull}},
+ {{9498925434581235598ull, 398256419836699545ull,
+ 18415638964405892573ull, 7455911484818408476ull}},
+ {{17466043442681742009ull, 2554753271611631167ull,
+ 2286402315898907050ull, 4659944678011505298ull}},
+ {{17220868284924789607ull, 12416813626369314767ull,
+ 12081374931728409620ull, 5824930847514381622ull}},
+ {{16914399337728599105ull, 15521017032961643459ull,
+ 5878346627805736217ull, 7281163559392977028ull}},
+ {{16531313153733360977ull, 5566213235919890612ull,
+ 7347933284757170272ull, 9101454449241221285ull}},
+ {{1108698684228574803ull, 3478883272449931633ull,
+ 6898301312186925372ull, 5688409030775763303ull}},
+ {{5997559373713106407ull, 4348604090562414541ull,
+ 4011190621806268811ull, 7110511288469704129ull}},
+ {{12108635235568770913ull, 824069094775630272ull,
+ 9625674295685223918ull, 8888139110587130161ull}},
+ {{7567897022230481821ull, 14350101239516932632ull,
+ 17545261480871734708ull, 5555086944116956350ull}},
+ {{9459871277788102276ull, 17937626549396165790ull,
+ 12708204814234892577ull, 6943858680146195438ull}},
+ {{2601467060380352037ull, 8586975131463043526ull,
+ 6661883980938839914ull, 8679823350182744298ull}},
+ {{15460974968019883735ull, 9978545475591790107ull,
+ 8775363506514162850ull, 5424889593864215186ull}},
+ {{14714532691597466765ull, 3249809807634961826ull,
+ 1745832346287927755ull, 6781111992330268983ull}},
+ {{9169793827642057648ull, 17897320314825865995ull,
+ 16017348488142073405ull, 8476389990412836228ull}},
+ {{3425278133062592078ull, 13491668205979860199ull,
+ 787470768234020070ull, 5297743744008022643ull}},
+ {{18116655721610403809ull, 7641213220620049440ull,
+ 14819396515574688800ull, 6622179680010028303ull}},
+ {{4199075578303453146ull, 9551516525775061801ull,
+ 13912559626040973096ull, 8277724600012535379ull}},
+ {{14153637282508127976ull, 5969697828609413625ull,
+ 6389506757061914233ull, 5173577875007834612ull}},
+ {{3856988547852996258ull, 12073808304189154936ull,
+ 7986883446327392791ull, 6466972343759793265ull}},
+ {{4821235684816245322ull, 10480574361809055766ull,
+ 14595290326336628893ull, 8083715429699741581ull}},
+ {{16848330358292317039ull, 8856201985344353805ull,
+ 11427899463174087010ull, 5052322143562338488ull}},
+ {{7225354892583232586ull, 1846880444825666449ull,
+ 14284874328967608763ull, 6315402679452923110ull}},
+ {{13643379634156428637ull, 16143658611314246773ull,
+ 8632720874354735145ull, 7894253349316153888ull}},
+ {{10832955280561461850ull, 3172257604430322377ull,
+ 5395450546471709466ull, 4933908343322596180ull}},
+ {{18152880119129215217ull, 13188694042392678779ull,
+ 6744313183089636832ull, 6167385429153245225ull}},
+ {{18079414130484131117ull, 16485867552990848474ull,
+ 13042077497289433944ull, 7709231786441556531ull}},
+ {{15911319849979969852ull, 10303667220619280296ull,
+ 5845455426592202263ull, 4818269866525972832ull}},
+ {{1442405738765410699ull, 8267898007346712467ull,
+ 7306819283240252829ull, 6022837333157466040ull}},
+ {{15638065228738927086ull, 14946558527610778487ull,
+ 9133524104050316036ull, 7528546666446832550ull}},
+ {{16691319795602911285ull, 118227042901960746ull,
+ 1096766546604059619ull, 4705341666529270344ull}},
+ {{11640777707648863298ull, 13982841858909614645ull,
+ 1370958183255074523ull, 5881677083161587930ull}},
+ {{715914079278915410ull, 12866866305209630403ull,
+ 10937069765923618962ull, 7352096353951984912ull}},
+ {{14729950654380807974ull, 6860210844657262195ull,
+ 13671337207404523703ull, 9190120442439981140ull}},
+ {{6900376149774311032ull, 11205160805551870728ull,
+ 17767957791482603122ull, 5743825276524988212ull}},
+ {{8625470187217888790ull, 4783078970085062602ull,
+ 3763203165643702287ull, 7179781595656235266ull}},
+ {{1558465697167585179ull, 1367162694178940349ull,
+ 13927375993909403667ull, 8974726994570294082ull}},
+ {{3279884069943434689ull, 16995377748357695382ull,
+ 13316296014620765195ull, 5609204371606433801ull}},
+ {{13323227124284069170ull, 16632536167019731323ull,
+ 2810311962993792782ull, 7011505464508042252ull}},
+ {{12042347886927698558ull, 11567298171919888346ull,
+ 3512889953742240978ull, 8764381830635052815ull}},
+ {{12138153447757199503ull, 11841247375877318120ull,
+ 9113085248729982467ull, 5477738644146908009ull}},
+ {{15172691809696499378ull, 10189873201419259746ull,
+ 16003042579339865988ull, 6847173305183635011ull}},
+ {{9742492725265848415ull, 12737341501774074683ull,
+ 15392117205747444581ull, 8558966631479543764ull}},
+ {{3783214944077461308ull, 10266681447822490629ull,
+ 396701216737377055ull, 5349354144674714853ull}},
+ {{9340704698524214538ull, 8221665791350725382ull,
+ 5107562539349109223ull, 6686692680843393566ull}},
+ {{2452508836300492365ull, 5665396220761018824ull,
+ 15607825211041162337ull, 8358365851054241957ull}},
+ {{1532818022687807728ull, 15070087684044106525ull,
+ 12060733766114420412ull, 5223978656908901223ull}},
+ {{6527708546787147564ull, 390865531345581540ull,
+ 10464231189215637612ull, 6529973321136126529ull}},
+ {{8159635683483934455ull, 488581914181976925ull,
+ 17691975004946934919ull, 8162466651420158161ull}},
+ {{7405615311391152987ull, 7222892724004817434ull,
+ 4139955350450752468ull, 5101541657137598851ull}},
+ {{33647102384165425ull, 9028615905006021793ull, 563258169636052681ull,
+ 6376927071421998564ull}},
+ {{4653744896407594685ull, 15897455899684915145ull,
+ 704072712045065851ull, 7971158839277498205ull}},
+ {{14437805606323216438ull, 7630066928089378013ull,
+ 2745888454241860109ull, 4981974274548436378ull}},
+ {{4212198952621856836ull, 14149269678539110421ull,
+ 12655732604657100944ull, 6227467843185545472ull}},
+ {{9876934709204708949ull, 17686587098173888026ull,
+ 15819665755821376180ull, 7784334803981931840ull}},
+ {{10784770211680330997ull, 1830744899503904208ull,
+ 9887291097388360113ull, 4865209252488707400ull}},
+ {{13480962764600413746ull, 6900117142807268164ull,
+ 12359113871735450141ull, 6081511565610884250ull}},
+ {{16851203455750517183ull, 13236832446936473109ull,
+ 6225520302814536868ull, 7601889457013605313ull}},
+ {{12837845169057767191ull, 17496392316190071501ull,
+ 15420165235327555302ull, 4751180910633503320ull}},
+ {{2212248406040045277ull, 12647118358382813569ull,
+ 828462470449892512ull, 5938976138291879151ull}},
+ {{7376996525977444500ull, 15808897947978516961ull,
+ 14870636143344529352ull, 7423720172864848938ull}},
+ {{16139837874804372573ull, 9880561217486573100ull,
+ 13905833608017718749ull, 4639825108040530586ull}},
+ {{1728053269795914100ull, 16962387540285604280ull,
+ 8158919973167372628ull, 5799781385050663233ull}},
+ {{2160066587244892625ull, 2756240351647453734ull,
+ 14810335984886603690ull, 7249726731313329041ull}},
+ {{11923455270910891589ull, 12668672476414092975ull,
+ 4677861925826090900ull, 9062158414141661302ull}},
+ {{14369688571960389099ull, 17141292334613583917ull,
+ 16758721758923470524ull, 5663849008838538313ull}},
+ {{4127052659668322662ull, 2979871344557428281ull,
+ 7113344143372174444ull, 7079811261048172892ull}},
+ {{9770501843012791231ull, 3724839180696785351ull,
+ 8891680179215218055ull, 8849764076310216115ull}},
+ {{13024092679524076376ull, 9245553515576572700ull,
+ 3251457102795817332ull, 5531102547693885072ull}},
+ {{16280115849405095470ull, 11556941894470715875ull,
+ 4064321378494771665ull, 6913878184617356340ull}},
+ {{15738458793328981433ull, 611119312806231132ull,
+ 5080401723118464582ull, 8642347730771695425ull}},
+ {{613164708975837588ull, 14217007625786058170ull,
+ 14704466123017510123ull, 5401467331732309640ull}},
+ {{9989827923074572793ull, 13159573513805184808ull,
+ 18380582653771887654ull, 6751834164665387050ull}},
+ {{12487284903843215991ull, 7226094855401705202ull,
+ 13752356280360083760ull, 8439792705831733813ull}},
+ {{12416239083329397898ull, 4516309284626065751ull,
+ 10901065684438746302ull, 5274870441144833633ull}},
+ {{10908612835734359469ull, 14868758642637357997ull,
+ 18238018123975820781ull, 6593588051431042041ull}},
+ {{18247452063095337240ull, 4750890248014533784ull,
+ 8962464599687612265ull, 8241985064288802552ull}},
+ {{11404657539434585775ull, 14498521451077553375ull,
+ 5601540374804757665ull, 5151240665180501595ull}},
+ {{9644135905865844315ull, 4288093758564778007ull,
+ 2390239450078559178ull, 6439050831475626994ull}},
+ {{7443483863904917489ull, 14583489235060748317ull,
+ 12211171349452974780ull, 8048813539344533742ull}},
+ {{6958020424154267383ull, 18338052808767743506ull,
+ 3020296074980721333ull, 5030508462090333589ull}},
+ {{17920897567047610037ull, 9087507955677515670ull,
+ 8387056112153289571ull, 6288135577612916986ull}},
+ {{13177749921954736738ull, 6747698926169506684ull,
+ 1260448103336836156ull, 7860169472016146233ull}},
+ {{17459465738076486269ull, 13440683865710717485ull,
+ 12316995110653992357ull, 4912605920010091395ull}},
+ {{7989274117313444124ull, 2965796776856233145ull,
+ 10784557869890102543ull, 6140757400012614244ull}},
+ {{14598278665069193059ull, 17542304026352455143ull,
+ 13480697337362628178ull, 7675946750015767805ull}},
+ {{16041453193309327518ull, 15575626034897672368ull,
+ 10731278845065336563ull, 4797466718759854878ull}},
+ {{1605072417927107782ull, 14857846525194702557ull,
+ 4190726519476894896ull, 5996833398449818598ull}},
+ {{6618026540836272631ull, 125564082783826580ull,
+ 14461780186200894429ull, 7496041748062273247ull}},
+ {{13359638624877446203ull, 2384320560953585564ull,
+ 15956141644016640874ull, 4685026092538920779ull}},
+ {{16699548281096807753ull, 12203772738046757763ull,
+ 15333491036593413188ull, 5856282615673650974ull}},
+ {{16262749332943621787ull, 15254715922558447204ull,
+ 9943491758886990677ull, 7320353269592063718ull}},
+ {{1881692592469975618ull, 5233336847915895294ull,
+ 3205992661753962539ull, 9150441586990079648ull}},
+ {{15011115925575898473ull, 964992520733740606ull,
+ 2003745413596226587ull, 5719025991868799780ull}},
+ {{9540522870115097284ull, 15041298706199339470ull,
+ 2504681766995283233ull, 7148782489835999725ull}},
+ {{2702281550789095796ull, 4966565327467010626ull,
+ 7742538227171491946ull, 8935978112294999656ull}},
+ {{6300611987670572777ull, 7715789348094269545ull,
+ 4839086391982182466ull, 5584986320184374785ull}},
+ {{12487451003015603875ull, 421364648263061123ull,
+ 10660544008405115987ull, 6981232900230468481ull}},
+ {{10997627735342116940ull, 14361763865610990116ull,
+ 17937366028933782887ull, 8726541125288085601ull}},
+ {{16096889371443598895ull, 15893631443647950678ull,
+ 4293324740442532448ull, 5454088203305053501ull}},
+ {{10897739677449722811ull, 1420295230850386732ull,
+ 9978341943980553465ull, 6817610254131316876ull}},
+ {{13622174596812153514ull, 6387055056990371319ull,
+ 12472927429975691831ull, 8522012817664146095ull}},
+ {{15431388150648677802ull, 10909438438260063930ull,
+ 14713108671375889250ull, 5326258011040091309ull}},
+ {{10065863151456071445ull, 4413426010970304105ull,
+ 4556327783937697851ull, 6657822513800114137ull}},
+ {{17194014957747477210ull, 905096495285492227ull,
+ 10307095748349510218ull, 8322278142250142671ull}},
+ {{8440416339378479304ull, 5177371327980820546ull,
+ 13359463870359525742ull, 5201423838906339169ull}},
+ {{1327148387368323322ull, 15695086196830801491ull,
+ 2864271782667243465ull, 6501779798632923962ull}},
+ {{15493993539492567865ull, 5783799690756338151ull,
+ 12803711765188830140ull, 8127224748291154952ull}},
+ {{16601274989823936772ull, 12838246843577487152ull,
+ 8002319853243018837ull, 5079515467681971845ull}},
+ {{2304849663570369348ull, 2212750499189695229ull,
+ 14614585834981161451ull, 6349394334602464806ull}},
+ {{7492748097890349589ull, 16600996179269282748ull,
+ 9044860256871676005ull, 7936742918253081008ull}},
+ {{13906339598036244302ull, 12681465621256995669ull,
+ 5653037660544797503ull, 4960464323908175630ull}},
+ {{3547866442263141665ull, 11240146008143856683ull,
+ 16289669112535772687ull, 6200580404885219537ull}},
+ {{18269891108111090793ull, 9438496491752432949ull,
+ 6527028335387552147ull, 7750725506106524422ull}},
+ {{13724524951783125698ull, 3593217298131576641ull,
+ 17914450764899383804ull, 4844203441316577763ull}},
+ {{3320598134446743410ull, 4491521622664470802ull,
+ 17781377437696841851ull, 6055254301645722204ull}},
+ {{13374119704913205071ull, 1002716009903200598ull,
+ 3779977723411500698ull, 7569067877057152756ull}},
+ {{3747138797143365265ull, 5238383524616888278ull,
+ 11585858113986963744ull, 4730667423160720472ull}},
+ {{13907295533283982389ull, 6547979405771110347ull,
+ 14482322642483704680ull, 5913334278950900590ull}},
+ {{12772433398177590083ull, 8184974257213887934ull,
+ 8879531266249855042ull, 7391667848688625738ull}},
+ {{3371084855433605898ull, 9727294929186067863ull,
+ 10161393059833547305ull, 4619792405430391086ull}},
+ {{18048914124574171084ull, 16770804679909972732ull,
+ 3478369287937158323ull, 5774740506787988858ull}},
+ {{4114398582008162239ull, 16351819831460078012ull,
+ 13571333646776223712ull, 7218425633484986072ull}},
+ {{5142998227510202799ull, 1993030715615545899ull,
+ 16964167058470279641ull, 9023032041856232590ull}},
+ {{908530882980182797ull, 12774859243328185947ull,
+ 5990918393116536871ull, 5639395026160145369ull}},
+ {{14970721659007392209ull, 11356888035732844529ull,
+ 12100334009823058993ull, 7049243782700181711ull}},
+ {{4878344018477076549ull, 361051989383891950ull,
+ 10513731493851435838ull, 8811554728375227139ull}},
+ {{16884023066830336555ull, 14060715548647096180ull,
+ 4265239174443453446ull, 5507221705234516962ull}},
+ {{2658284759828369078ull, 8352522398954094418ull,
+ 14554921004909092616ull, 6884027131543146202ull}},
+ {{12546227986640237155ull, 10440652998692618022ull,
+ 8970279219281589962ull, 8605033914428932753ull}},
+ {{3229706473222760318ull, 11137094142610274168ull,
+ 17135639558119463486ull, 5378146196518082970ull}},
+ {{4037133091528450398ull, 4697995641408066902ull,
+ 12196177410794553550ull, 6722682745647603713ull}},
+ {{14269788401265338805ull, 15095866588614859435ull,
+ 1410163708211028225ull, 8403353432059504642ull}},
+ {{6612774741577142801ull, 2517387590243205291ull,
+ 5493038336059280545ull, 5252095895037190401ull}},
+ {{3654282408544040597ull, 7758420506231394518ull,
+ 11477983938501488585ull, 6565119868796488001ull}},
+ {{13791225047534826555ull, 14309711651216631051ull,
+ 512421867844697019ull, 8206399835995610002ull}},
+ {{6313672645495572645ull, 6637726772796700455ull,
+ 4931949685830323541ull, 5128999897497256251ull}},
+ {{3280404788442077902ull, 12908844484423263473ull,
+ 1553251088860516522ull, 6411249871871570314ull}},
+ {{8712192003979985281ull, 6912683568674303533ull,
+ 11164935897930421461ull, 8014062339839462892ull}},
+ {{7750963011701184753ull, 6626270239635133660ull,
+ 16201456973061289221ull, 5008788962399664307ull}},
+ {{9688703764626480941ull, 12894523817971304979ull,
+ 15640135197899223622ull, 6260986202999580384ull}},
+ {{7499193687355713272ull, 6894782735609355416ull,
+ 1103424923664477912ull, 7826232753749475481ull}},
+ {{4686996054597320795ull, 4309239209755847135ull,
+ 12218855623358768455ull, 4891395471093422175ull}},
+ {{1247059049819263090ull, 774862993767421015ull,
+ 10661883510771072665ull, 6114244338866777719ull}},
+ {{15393881867556242574ull, 5580264760636664172ull,
+ 8715668370036452927ull, 7642805423583472149ull}},
+ {{397804130367875801ull, 10405194503038996964ull,
+ 7753135740486477031ull, 4776753389739670093ull}},
+ {{497255162959844751ull, 8394807110371358301ull,
+ 14303105694035484193ull, 5970941737174587616ull}},
+ {{5233254972127193843ull, 15105194906391585780ull,
+ 17878882117544355241ull, 7463677171468234520ull}},
+ {{12494156394434271960ull, 2523217788853659256ull,
+ 11174301323465222026ull, 4664798232167646575ull}},
+ {{15617695493042839950ull, 12377394272921849878ull,
+ 9356190635904139628ull, 5830997790209558219ull}},
+ {{10298747329448774129ull, 15471742841152312348ull,
+ 7083552276452786631ull, 7288747237761947774ull}},
+ {{12873434161810967662ull, 14727992533013002531ull,
+ 18077812382420759097ull, 9110934047202434717ull}},
+ {{5740053341918160837ull, 2287466305492044726ull,
+ 13604475748226668388ull, 5694333779501521698ull}},
+ {{16398438714252476854ull, 2859332881865055907ull,
+ 7782222648428559677ull, 7117917224376902123ull}},
+ {{15886362374388208163ull, 8185852120758707788ull,
+ 5116092292108311692ull, 8897396530471127654ull}},
+ {{705604447137854294ull, 14339529612328968176ull,
+ 17032615737849858519ull, 5560872831544454783ull}},
+ {{882005558922317867ull, 13312725996983822316ull,
+ 16679083653884935245ull, 6951091039430568479ull}},
+ {{1102506948652897334ull, 2805849440947614183ull,
+ 16237168548928781153ull, 8688863799288210599ull}},
+ {{7606595870549142690ull, 13282870946660728624ull,
+ 17065759370721570076ull, 5430539874555131624ull}},
+ {{9508244838186428362ull, 16603588683325910780ull,
+ 2885455139692410979ull, 6788174843193914531ull}},
+ {{11885306047733035453ull, 16142799835730000571ull,
+ 17441876979897677436ull, 8485218553992393163ull}},
+ {{5122473270619453206ull, 865877860476474549ull, 8595330103222354446ull,
+ 5303261596245245727ull}},
+ {{11014777606701704412ull, 10305719362450368994ull,
+ 6132476610600555153ull, 6629076995306557159ull}},
+ {{4545099971522354707ull, 17493835221490349147ull,
+ 3053909744823306037ull, 8286346244133196449ull}},
+ {{534844472987777740ull, 13239490022645162169ull,
+ 13437908636583036033ull, 5178966402583247780ull}},
+ {{5280241609662110079ull, 2714304473024288999ull,
+ 16797385795728795042ull, 6473708003229059725ull}},
+ {{1988615993650249694ull, 12616252628135137057ull,
+ 7161674189378830090ull, 8092135004036324657ull}},
+ {{12772100042099875819ull, 12496843911011848564ull,
+ 16005261414430238566ull, 5057584377522702910ull}},
+ {{15965125052624844774ull, 6397682851910034897ull,
+ 10783204731183022400ull, 6321980471903378638ull}},
+ {{6121348260498892255ull, 7997103564887543622ull,
+ 4255633877124002192ull, 7902475589879223298ull}},
+ {{17660900718093971372ull, 4998189728054714763ull,
+ 7271457191629889274ull, 4939047243674514561ull}},
+ {{17464439879190076310ull, 15471109196923169262ull,
+ 13701007507964749496ull, 6173809054593143201ull}},
+ {{12607177812132819580ull, 892142422444409962ull,
+ 3291201329673773159ull, 7717261318241429002ull}},
+ {{12491172151010400142ull, 7475118041668838082ull,
+ 6668686849473496128ull, 4823288323900893126ull}},
+ {{6390593151908224369ull, 9343897552086047603ull,
+ 17559230598696645968ull, 6029110404876116407ull}},
+ {{3376555421457892557ull, 11679871940107559504ull,
+ 17337352229943419556ull, 7536388006095145509ull}},
+ {{2110347138411182848ull, 16523291999422000498ull,
+ 13141688152928331174ull, 4710242503809465943ull}},
+ {{11861305959868754368ull, 11430742962422724814ull,
+ 11815424172733026064ull, 5887803129761832429ull}},
+ {{5603260412981167152ull, 14288428703028406018ull,
+ 934222160634118868ull, 7359753912202290537ull}},
+ {{16227447553081234748ull, 17860535878785507522ull,
+ 5779463719220036489ull, 9199692390252863171ull}},
+ {{14753840739103159622ull, 4245305896599860345ull,
+ 1306321815298828854ull, 5749807743908039482ull}},
+ {{4607242868596785815ull, 14530004407604601240ull,
+ 10856274305978311875ull, 7187259679885049352ull}},
+ {{5759053585745982269ull, 13550819491078363646ull,
+ 13570342882472889844ull, 8984074599856311690ull}},
+ {{17434466546373402630ull, 17692634218778753086ull,
+ 13093150319972944056ull, 5615046624910194806ull}},
+ {{12569711146111977479ull, 3669048699763889742ull,
+ 7143065863111404263ull, 7018808281137743508ull}},
+ {{6488766895785196041ull, 18421368929987025890ull,
+ 8928832328889255328ull, 8773510351422179385ull}},
+ {{8667165328293135430ull, 11513355581241891181ull,
+ 17109735251624254340ull, 5483443969638862115ull}},
+ {{15445642678793807191ull, 14391694476552363976ull,
+ 16775483046102930021ull, 6854304962048577644ull}},
+ {{860309274782707373ull, 4154560040408291259ull, 2522609733919110911ull,
+ 8567881202560722056ull}},
+ {{16678594361235049772ull, 9514129052896263892ull,
+ 1576631083699444319ull, 5354925751600451285ull}},
+ {{2401498877834260599ull, 7280975297692941962ull,
+ 6582474873051693303ull, 6693657189500564106ull}},
+ {{12225245634147601557ull, 4489533103688789548ull,
+ 17451465628169392437ull, 8367071486875705132ull}},
+ {{16864150558197026781ull, 5111801199019187419ull,
+ 1683793980751094465ull, 5229419679297315708ull}},
+ {{16468502179318895572ull, 11001437517201372178ull,
+ 2104742475938868081ull, 6536774599121644635ull}},
+ {{11362255687293843657ull, 18363482914929103127ull,
+ 16465986150205748813ull, 8170968248902055793ull}},
+ {{14018938832199734142ull, 13783019831044383406ull,
+ 3373712316237511152ull, 5106855155563784871ull}},
+ {{8300301503394891869ull, 17228774788805479258ull,
+ 18052198450579052652ull, 6383568944454731088ull}},
+ {{1152004842388839029ull, 3089224412297297457ull,
+ 4118503989514264200ull, 7979461180568413861ull}},
+ {{12249218072561494153ull, 1930765257685810910ull,
+ 4879908002660109077ull, 4987163237855258663ull}},
+ {{6088150553847091883ull, 7025142590534651542ull,
+ 1488198984897748442ull, 6233954047319073329ull}},
+ {{16833560229163640662ull, 18004800275023090235ull,
+ 6471934749549573456ull, 7792442559148841661ull}},
+ {{8215132134013581462ull, 11253000171889431397ull,
+ 6350802227682177362ull, 4870276599468026038ull}},
+ {{14880601185944364731ull, 4842878178007013438ull,
+ 17161874821457497511ull, 6087845749335032547ull}},
+ {{9377379445575680106ull, 1441911704081378894ull,
+ 16840657508394483985ull, 7609807186668790684ull}},
+ {{1249176135057412162ull, 12430409861119331569ull,
+ 1302038905891776682ull, 4756129491667994178ull}},
+ {{6173156187249153107ull, 6314640289544388653ull,
+ 10850920669219496661ull, 5945161864584992722ull}},
+ {{12328131252488829288ull, 12504986380357873720ull,
+ 4340278799669595018ull, 7431452330731240903ull}},
+ {{7705082032805518305ull, 12427302506151058979ull,
+ 9630203277434578742ull, 4644657706707025564ull}},
+ {{5019666522579509977ull, 6310756095834047916ull,
+ 12037754096793223428ull, 5805822133383781955ull}},
+ {{6274583153224387471ull, 7888445119792559895ull,
+ 10435506602564141381ull, 7257277666729727444ull}},
+ {{3231542923103096435ull, 14472242418168087773ull,
+ 13044383253205176726ull, 9071597083412159305ull}},
+ {{4325557336153129224ull, 4433465492927666954ull,
+ 1235210505612153598ull, 5669748177132599566ull}},
+ {{14630318707046187338ull, 14765203903014359500ull,
+ 10767385168869967805ull, 7087185221415749457ull}},
+ {{18287898383807734172ull, 4621446823485785663ull,
+ 18070917479514847661ull, 8858981526769686821ull}},
+ {{18347465517520915714ull, 5194247273892309991ull,
+ 13600166433910473740ull, 5536863454231054263ull}},
+ {{18322645878473756738ull, 6492809092365387489ull,
+ 12388522023960704271ull, 6921079317788817829ull}},
+ {{9068249292810032210ull, 3504325347029346458ull,
+ 1650594474668716627ull, 8651349147236022287ull}},
+ {{10279341826433658036ull, 18331104406389199200ull,
+ 7949150574309029747ull, 5407093217022513929ull}},
+ {{12849177283042072545ull, 18302194489559111096ull,
+ 14548124236313675088ull, 6758866521278142411ull}},
+ {{16061471603802590681ull, 4430999038239337254ull,
+ 13573469276964705957ull, 8448583151597678014ull}},
+ {{5426733733949231272ull, 5075217408113279736ull,
+ 3871732279675553319ull, 5280364469748548759ull}},
+ {{6783417167436539089ull, 1732335741714211766ull, 227979331167053745ull,
+ 6600455587185685949ull}},
+ {{17702643496150449669ull, 6777105695570152611ull,
+ 4896660182386205085ull, 8250569483982107436ull}},
+ {{8758309175880337092ull, 6541534068945039334ull,
+ 12283784650846153986ull, 5156605927488817147ull}},
+ {{1724514432995645556ull, 17400289623036074976ull,
+ 10743044795130304578ull, 6445757409361021434ull}},
+ {{2155643041244556945ull, 12526989991940317912ull,
+ 4205433957058104915ull, 8057196761701276793ull}},
+ {{1347276900777848091ull, 5523525735749004743ull,
+ 14157611269229785332ull, 5035747976063297995ull}},
+ {{15519154181254473826ull, 6904407169686255928ull,
+ 13085328068109843761ull, 6294684970079122494ull}},
+ {{952198652858540666ull, 13242194980535207815ull,
+ 7133288048282528893ull, 7868356212598903118ull}},
+ {{7512653185677669772ull, 10582214872048198836ull,
+ 18293363085458744270ull, 4917722632874314448ull}},
+ {{9390816482097087215ull, 4004396553205472737ull,
+ 4419959783113878722ull, 6147153291092893061ull}},
+ {{16350206621048746923ull, 14228867728361616729ull,
+ 10136635747319736306ull, 7683941613866116326ull}},
+ {{3301350110514384971ull, 13504728348653398360ull,
+ 1723711323647447287ull, 4802463508666322704ull}},
+ {{4126687638142981214ull, 12269224417389360046ull,
+ 2154639154559309109ull, 6003079385832903380ull}},
+ {{14381731584533502325ull, 1501472466454536345ull,
+ 2693298943199136387ull, 7503849232291129225ull}},
+ {{2071053212692357097ull, 17079321356029942880ull,
+ 13212526885567930001ull, 4689905770181955765ull}},
+ {{2588816515865446372ull, 7514093639755264888ull,
+ 2680600551677748790ull, 5862382212727444707ull}},
+ {{3236020644831807964ull, 169245012839305302ull,
+ 17185808744879349700ull, 7327977765909305883ull}},
+ {{13268397842894535763ull, 211556266049131627ull,
+ 16870574912671799221ull, 9159972207386632354ull}},
+ {{5986905642595390900ull, 2438065675494401219ull,
+ 15155795338847262417ull, 5724982629616645221ull}},
+ {{2871946034816850721ull, 7659268112795389428ull,
+ 5109686118276914309ull, 7156228287020806527ull}},
+ {{3589932543521063401ull, 14185771159421624689ull,
+ 1775421629418754982ull, 8945285358776008159ull}},
+ {{13772922885769134386ull, 4254420956211127526ull,
+ 8027167546027803720ull, 5590803349235005099ull}},
+ {{7992781570356642174ull, 5318026195263909408ull,
+ 5422273414107366746ull, 6988504186543756374ull}},
+ {{9990976962945802718ull, 15870904780934662568ull,
+ 16001213804488984240ull, 8735630233179695467ull}},
+ {{6244360601841126699ull, 9919315488084164105ull,
+ 7694915618591921198ull, 5459768895737309667ull}},
+ {{12417136770728796277ull, 3175772323250429323ull,
+ 5006958504812513594ull, 6824711119671637084ull}},
+ {{10909734944983607443ull, 13193087440917812462ull,
+ 6258698131015641992ull, 8530888899589546355ull}},
+ {{2206898322187366748ull, 8245679650573632789ull,
+ 1605843322671082293ull, 5331805562243466472ull}},
+ {{7370308921161596339ull, 14918785581644428890ull,
+ 2007304153338852866ull, 6664756952804333090ull}},
+ {{18436258188306771231ull, 9425109940200760304ull,
+ 11732502228528341891ull, 8330946191005416362ull}},
+ {{11522661367691732020ull, 3584850703411781238ull,
+ 11944499911257601586ull, 5206841369378385226ull}},
+ {{5179954672759889217ull, 13704435416119502356ull,
+ 5707252852217226174ull, 6508551711722981533ull}},
+ {{6474943340949861521ull, 7907172233294602137ull,
+ 11745752083698920622ull, 8135689639653726916ull}},
+ {{15576054634162133211ull, 330296627381738431ull,
+ 16564467089166601197ull, 5084806024783579322ull}},
+ {{14858382274275278609ull, 5024556802654560943ull,
+ 11482211824603475688ull, 6356007530979474153ull}},
+ {{13961291824416710357ull, 6280696003318201179ull,
+ 517706725472180898ull, 7945009413724342692ull}},
+ {{6419964381046750021ull, 8537121020501263641ull,
+ 9546938740274888869ull, 4965630883577714182ull}},
+ {{12636641494735825431ull, 15283087294053967455ull,
+ 2710301388488835278ull, 6207038604472142728ull}},
+ {{11184115849992393884ull, 9880487080712683511ull,
+ 3387876735611044098ull, 7758798255590178410ull}},
+ {{13907601433886328034ull, 10786990443872815098ull,
+ 6729108978184290465ull, 4849248909743861506ull}},
+ {{8161129755503134234ull, 18095424073268406777ull,
+ 17634758259585138889ull, 6061561137179826882ull}},
+ {{14813098212806305697ull, 8784222036303344759ull,
+ 12820075787626647804ull, 7576951421474783603ull}},
+ {{16175715410645022917ull, 14713510809544366282ull,
+ 5706704358052960925ull, 4735594638421739752ull}},
+ {{10996272226451502838ull, 4556830456648294141ull,
+ 7133380447566201157ull, 5919493298027174690ull}},
+ {{18357026301491766451ull, 10307724089237755580ull,
+ 18140097596312527254ull, 7399366622533968362ull}},
+ {{2249769401577578224ull, 1830641537346209334ull,
+ 15949247016122717438ull, 4624604139083730226ull}},
+ {{12035583788826748588ull, 11511673958537537475ull,
+ 10713186733298620989ull, 5780755173854662783ull}},
+ {{10432793717606047831ull, 554534392889758132ull,
+ 8779797398195888333ull, 7225943967318328479ull}},
+ {{13040992147007559788ull, 5304854009539585569ull,
+ 6363060729317472512ull, 9032429959147910599ull}},
+ {{1233091064238643012ull, 3315533755962240981ull,
+ 10894441983464502176ull, 5645268724467444124ull}},
+ {{6153049848725691669ull, 4144417194952801226ull,
+ 13618052479330627720ull, 7056585905584305155ull}},
+ {{16914684347761890394ull, 5180521493691001532ull,
+ 12410879580735896746ull, 8820732381980381444ull}},
+ {{1348305680496405688ull, 7849511951984263862ull,
+ 16980171774814711274ull, 5512957738737738402ull}},
+ {{10908754137475282918ull, 588517903125554019ull,
+ 12001842681663613285ull, 6891197173422173003ull}},
+ {{9024256653416715744ull, 5347333397334330428ull,
+ 10390617333652128702ull, 8613996466777716254ull}},
+ {{14863532445240223148ull, 17177141428616120229ull,
+ 1882449815105192534ull, 5383747791736072659ull}},
+ {{4744357501268115223ull, 12248054748915374479ull,
+ 16188120324163654380ull, 6729684739670090823ull}},
+ {{1318760858157756124ull, 15310068436144218099ull,
+ 15623464386777180071ull, 8412105924587613529ull}},
+ {{16965126600844455242ull, 16486321800231218167ull,
+ 2847136214094655688ull, 5257566202867258456ull}},
+ {{16594722232628181148ull, 2161158176579471093ull,
+ 3558920267618319611ull, 6571957753584073070ull}},
+ {{6908344735503062723ull, 16536505776006502579ull,
+ 13672022371377675321ull, 8214947191980091337ull}},
+ {{2011872450475720250ull, 3417787082362982256ull,
+ 1627484954469965220ull, 5134341994987557086ull}},
+ {{2514840563094650313ull, 4272233852953727820ull,
+ 11257728229942232333ull, 6417927493734446357ull}},
+ {{3143550703868312891ull, 9951978334619547679ull, 237102232145626704ull,
+ 8022409367168057947ull}},
+ {{8882248217558777413ull, 6219986459137217299ull,
+ 16289089959586874354ull, 5014005854480036216ull}},
+ {{6491124253521083862ull, 16998355110776297432ull,
+ 1914618375774041326ull, 6267507318100045271ull}},
+ {{8113905316901354827ull, 12024571851615595982ull,
+ 16228331024999715370ull, 7834384147625056588ull}},
+ {{459504804635958863ull, 12127043425687135393ull, 919334853770046298ull,
+ 4896490092265660368ull}},
+ {{5186067024222336483ull, 5935432245254143433ull,
+ 1149168567212557873ull, 6120612615332075460ull}},
+ {{11094269798705308508ull, 12030976324995067195ull,
+ 1436460709015697341ull, 7650765769165094325ull}},
+ {{4628075614977123865ull, 9825203212335610949ull,
+ 3203630952348504790ull, 4781728605728183953ull}},
+ {{10396780537148792736ull, 3058131978564737878ull,
+ 8616224708863018892ull, 5977160757160229941ull}},
+ {{3772603634581215111ull, 3822664973205922348ull,
+ 15381966904506161519ull, 7471450946450287426ull}},
+ {{11581249308468035253ull, 9306694635894783323ull,
+ 14225415333743738853ull, 4669656841531429641ull}},
+ {{9864875617157656162ull, 16245054313295867058ull,
+ 3946711111897509854ull, 5837071051914287052ull}},
+ {{3107722484592294394ull, 11082945854765058015ull,
+ 4933388889871887318ull, 7296338814892858815ull}},
+ {{17719711161022531705ull, 4630310281601546710ull,
+ 1555050093912471244ull, 9120423518616073519ull}},
+ {{6463133457211694412ull, 12117315962855742502ull,
+ 7889435336336376383ull, 5700264699135045949ull}},
+ {{17302288858369393822ull, 10534958935142290223ull,
+ 14473480188847858383ull, 7125330873918807436ull}},
+ {{17016175054534354374ull, 8557012650500474875ull,
+ 18091850236059822979ull, 8906663592398509295ull}},
+ {{8329266399870277532ull, 3042289897349102845ull,
+ 18224935425178471218ull, 5566664745249068309ull}},
+ {{15023269018265234819ull, 13026234408541154364ull,
+ 8946111226190925310ull, 6958330931561335387ull}},
+ {{332342199121991907ull, 7059420973821667148ull, 6570953014311268734ull,
+ 8697913664451669234ull}},
+ {{9431085911306020750ull, 18247196163920705679ull,
+ 8718531652371930862ull, 5436196040282293271ull}},
+ {{7177171370705138034ull, 13585623168046106291ull,
+ 6286478547037525674ull, 6795245050352866589ull}},
+ {{4359778194954034638ull, 7758656923202857056ull,
+ 12469784202224294997ull, 8494056312941083236ull}},
+ {{2724861371846271649ull, 7155003586215479612ull,
+ 17016987163244960181ull, 5308785195588177022ull}},
+ {{3406076714807839561ull, 13555440501196737419ull,
+ 12047861917201424418ull, 6635981494485221278ull}},
+ {{18092653948791963163ull, 7720928589641145965ull,
+ 5836455359647004715ull, 8294976868106526598ull}},
+ {{13613751727208670929ull, 2519737359312022276ull,
+ 17482842655061541659ull, 5184360542566579123ull}},
+ {{17017189659010838661ull, 16984729754422191557ull,
+ 17241867300399539169ull, 6480450678208223904ull}},
+ {{7436429018481384614ull, 7395854137745575735ull,
+ 3105590051789872346ull, 8100563347760279881ull}},
+ {{11565297164191947240ull, 9234094854518372738ull,
+ 13470208828437139976ull, 5062852092350174925ull}},
+ {{5233249418385158242ull, 11542618568147965923ull,
+ 3002702980264261258ull, 6328565115437718657ull}},
+ {{1929875754554059899ull, 5204901173330181596ull,
+ 8365064743757714477ull, 7910706394297148321ull}},
+ {{10429544383451063245ull, 5558906242545057449ull,
+ 16757380510917041308ull, 4944191496435717700ull}},
+ {{17648616497741216960ull, 6948632803181321811ull,
+ 2499981564936750019ull, 6180239370544647126ull}},
+ {{17449084603749133296ull, 4074104985549264360ull,
+ 12348348993025713332ull, 7725299213180808907ull}},
+ {{10905677877343208310ull, 11769687652823066033ull,
+ 5411875111427376880ull, 4828312008238005567ull}},
+ {{18243783365106398291ull, 14712109566028832541ull,
+ 2153157870856833196ull, 6035390010297506959ull}},
+ {{8969671151100834152ull, 18390136957536040677ull,
+ 16526505393853205207ull, 7544237512871883698ull}},
+ {{7911887478651715297ull, 18411364626101107279ull,
+ 14940751889585641158ull, 4715148445544927311ull}},
+ {{5278173329887256217ull, 13790833745771608291ull,
+ 14064253843554663544ull, 5893935556931159139ull}},
+ {{1986030643931682368ull, 17238542182214510364ull,
+ 12968631286015941526ull, 7367419446163948924ull}},
+ {{2482538304914602959ull, 12324805690913362147ull,
+ 16210789107519926908ull, 9209274307704936155ull}},
+ {{17692487505067484514ull, 16926375593675627149ull,
+ 7825900182986260365ull, 5755796442315585097ull}},
+ {{8280551326052191930ull, 7322911436812370225ull,
+ 14394061247160213361ull, 7194745552894481371ull}},
+ {{14962375175992627817ull, 13765325314442850685ull,
+ 13380890540522878797ull, 8993431941118101714ull}},
+ {{11657327494209086338ull, 10909171330740475630ull,
+ 12974742606254187152ull, 5620894963198813571ull}},
+ {{5348287330906582114ull, 13636464163425594538ull,
+ 11606742239390346036ull, 7026118703998516964ull}},
+ {{15908731200488003450ull, 17045580204281993172ull,
+ 14508427799237932545ull, 8782648379998146205ull}},
+ {{719584963450226349ull, 3735958600035163877ull,
+ 11373610383737401793ull, 5489155237498841378ull}},
+ {{5511167222740170840ull, 9281634268471342750ull,
+ 4993640942816976433ull, 6861444046873551723ull}},
+ {{16112331065279989357ull, 16213728854016566341ull,
+ 1630365160093832637ull, 8576805058591939654ull}},
+ {{12376049925013687301ull, 12439423542974047915ull,
+ 14854036280340809110ull, 5360503161619962283ull}},
+ {{10858376387839721222ull, 6325907391862784086ull,
+ 13955859331998623484ull, 6700628952024952854ull}},
+ {{4349598447944875719ull, 7907384239828480108ull,
+ 8221452128143503547ull, 8375786190031191068ull}},
+ {{11941871066820323132ull, 2636272140679106115ull,
+ 14361779616944465525ull, 5234866368769494417ull}},
+ {{10315652815098016011ull, 7907026194276270548ull,
+ 4117166465898418194ull, 6543582960961868022ull}},
+ {{12894566018872520014ull, 660410705990562377ull,
+ 14369830119227798551ull, 8179478701202335027ull}},
+ {{1141574734154243153ull, 7330285718885183342ull,
+ 6675300815303680142ull, 5112174188251459392ull}},
+ {{10650340454547579749ull, 18386229185461254985ull,
+ 8344126019129600177ull, 6390217735314324240ull}},
+ {{17924611586611862590ull, 9147728426544405019ull,
+ 10430157523912000222ull, 7987772169142905300ull}},
+ {{8897039232418720167ull, 1105644248162865233ull,
+ 15742220489299775947ull, 4992357605714315812ull}},
+ {{15732985058950788113ull, 15217113365485745253ull,
+ 1231031537915168317ull, 6240447007142894766ull}},
+ {{5831173268406321429ull, 5186333651575017855ull,
+ 10762161459248736205ull, 7800558758928618457ull}},
+ {{10562012320395032749ull, 5547301541448080111ull,
+ 18255565958098929888ull, 4875349224330386535ull}},
+ {{8590829382066403032ull, 6934126926810100139ull,
+ 18207771429196274456ull, 6094186530412983169ull}},
+ {{6126850709155615886ull, 8667658658512625174ull,
+ 8924656231213179358ull, 7617733163016228962ull}},
+ {{17664339748504423641ull, 805600643143002829ull,
+ 10189596162935625003ull, 4761083226885143101ull}},
+ {{8245366630348365839ull, 14842058859210917249ull,
+ 17348681222096919157ull, 5951354033606428876ull}},
+ {{14918394306362845203ull, 4717515518731482849ull,
+ 3239107453911597331ull, 7439192542008036096ull}},
+ {{2406467413835696396ull, 642604189993482829ull, 2024442158694748332ull,
+ 4649495338755022560ull}},
+ {{7619770285722008399ull, 803255237491853536ull, 2530552698368435415ull,
+ 5811869173443778200ull}},
+ {{9524712857152510499ull, 14839127102146980632ull,
+ 3163190872960544268ull, 7264836466804722750ull}},
+ {{11905891071440638123ull, 102164803974174174ull,
+ 13177360628055456144ull, 9081045583505903437ull}},
+ {{2829495901223010923ull, 63853002483858859ull, 10541693401748354042ull,
+ 5675653489691189648ull}},
+ {{17371927931810927366ull, 9303188289959599381ull,
+ 13177116752185442552ull, 7094566862113987060ull}},
+ {{7879851859481495495ull, 11628985362449499227ull,
+ 16471395940231803190ull, 8868208577642483825ull}},
+ {{2619064402962240733ull, 2656429833103549113ull,
+ 3377093435003795138ull, 5542630361026552391ull}},
+ {{7885516522130188820ull, 12543909328234212199ull,
+ 18056424849036907634ull, 6928287951283190488ull}},
+ {{5245209634235348120ull, 6456514623437989441ull,
+ 4123786987586582927ull, 8660359939103988111ull}},
+ {{14807471067465562335ull, 10952850667289825256ull,
+ 9494895894882696185ull, 5412724961939992569ull}},
+ {{62594760622401303ull, 18302749352539669475ull,
+ 16480305887030758135ull, 6765906202424990711ull}},
+ {{13913301506060165341ull, 18266750672247198939ull,
+ 15988696340361059765ull, 8457382753031238389ull}},
+ {{6389970432073909386ull, 13722562179368193289ull,
+ 12298778221939356305ull, 5285864220644523993ull}},
+ {{12599149058519774637ull, 3318144668928077899ull,
+ 1538414722142031670ull, 6607330275805654992ull}},
+ {{11137250304722330392ull, 13371052873014873182ull,
+ 1923018402677539587ull, 8259162844757068740ull}},
+ {{2349095422024068591ull, 6051065036420601787ull,
+ 10425258538528238050ull, 5161976777973167962ull}},
+ {{16771427332812249451ull, 16787203332380528041ull,
+ 3808201136305521754ull, 6452470972466459953ull}},
+ {{7129226110733148101ull, 11760632128620884244ull,
+ 9371937438809290097ull, 8065588715583074941ull}},
+ {{13679138356062993371ull, 432866052746970796ull,
+ 8163303908469500263ull, 5040992947239421838ull}},
+ {{17098922945078741714ull, 14376140621215877207ull,
+ 980757848732099520ull, 6301241184049277298ull}},
+ {{16761967662921039239ull, 17970175776519846509ull,
+ 10449319347769900208ull, 7876551480061596622ull}},
+ {{12782072798539343476ull, 11231359860324904068ull,
+ 1919138573928799726ull, 4922844675038497889ull}},
+ {{15977590998174179345ull, 4815827788551354277ull,
+ 7010609235838387562ull, 6153555843798122361ull}},
+ {{6136930692435560469ull, 15243156772543968655ull,
+ 13374947563225372356ull, 7691944804747652951ull}},
+ {{10753110710413307150ull, 303600945985204601ull,
+ 15276871254656939579ull, 4807465502967283094ull}},
+ {{18053074406444021841ull, 14214559237763669463ull,
+ 9872717031466398665ull, 6009331878709103868ull}},
+ {{17954656989627639397ull, 3933140991922423117ull,
+ 12340896289332998332ull, 7511664848386379835ull}},
+ {{13527503627730968575ull, 11681585156806290256ull,
+ 5407217171619430005ull, 4694790530241487397ull}},
+ {{16909379534663710719ull, 766923390725699108ull,
+ 11370707482951675411ull, 5868488162801859246ull}},
+ {{2689980344620086783ull, 14793712293689287598ull,
+ 4990012316834818455ull, 7335610203502324058ull}},
+ {{12585847467629884286ull, 13880454348684221593ull,
+ 15460887432898298877ull, 9169512754377905072ull}},
+ {{948625639627595823ull, 10981126977141332448ull,
+ 9663054645561436798ull, 5730945471486190670ull}},
+ {{1185782049534494779ull, 4503036684571889752ull,
+ 2855446270097020190ull, 7163681839357738338ull}},
+ {{1482227561918118473ull, 14852167892569637998ull,
+ 12792679874476051045ull, 8954602299197172922ull}},
+ {{14761450281480987758ull, 11588447942069717700ull,
+ 12607110939974919807ull, 5596626436998233076ull}},
+ {{5068778141683081ull, 9873873909159759222ull, 15758888674968649759ull,
+ 6995783046247791345ull}},
+ {{9229708009531879659ull, 7730656368022311123ull,
+ 5863552788428648487ull, 8744728807809739182ull}},
+ {{3462724496743730835ull, 11749189257655026308ull,
+ 17499778548050069016ull, 5465455504881086988ull}},
+ {{4328405620929663544ull, 14686486572068782885ull,
+ 3427979111353034654ull, 6831819381101358736ull}},
+ {{10022193044589467334ull, 9134736178231202798ull,
+ 4284973889191293318ull, 8539774226376698420ull}},
+ {{1652184634441029180ull, 1097524092967113845ull,
+ 11901480717599334132ull, 5337358891485436512ull}},
+ {{6676916811478674379ull, 1371905116208892306ull,
+ 14876850896999167665ull, 6671698614356795640ull}},
+ {{17569518051203118781ull, 6326567413688503286ull,
+ 149319547539407965ull, 8339623267945994551ull}},
+ {{6369262763574561335ull, 6259947642769008506ull,
+ 7010853744853211834ull, 5212264542466246594ull}},
+ {{17184950491322977476ull, 17048306590316036440ull,
+ 17986939217921290600ull, 6515330678082808242ull}},
+ {{3034444040444170229ull, 2863639164185493935ull,
+ 13260301985546837443ull, 8144163347603510303ull}},
+ {{8814056552918688249ull, 17930675542111791373ull,
+ 15205217768607855257ull, 5090102092252193939ull}},
+ {{15629256709575748215ull, 8578286372357575504ull,
+ 14394836192332431168ull, 6362627615315242424ull}},
+ {{1089826813260133653ull, 10722857965446969381ull,
+ 17993545240415538960ull, 7953284519144053030ull}},
+ {{2986984767501277485ull, 6701786228404355863ull,
+ 6634279756832323946ull, 4970802824465033144ull}},
+ {{17568789014658760569ull, 17600604822360220636ull,
+ 8292849696040404932ull, 6213503530581291430ull}},
+ {{3514242194613899095ull, 3554011954240724180ull,
+ 1142690083195730358ull, 7766879413226614288ull}},
+ {{11419773408488462742ull, 16056315526682616324ull,
+ 714181301997331473ull, 4854299633266633930ull}},
+ {{14274716760610578428ull, 6235336353071106693ull,
+ 10116098664351440150ull, 6067874541583292412ull}},
+ {{4008337895481059323ull, 17017542478193659175ull,
+ 12645123330439300187ull, 7584843176979115515ull}},
+ {{9422740212316743933ull, 8330121039657343032ull,
+ 5597359072310868665ull, 4740526985611947197ull}},
+ {{11778425265395929916ull, 15024337317999066694ull,
+ 11608384858815973735ull, 5925658732014933996ull}},
+ {{5499659544890136587ull, 14168735629071445464ull,
+ 14510481073519967169ull, 7407073415018667495ull}},
+ {{3437287215556335367ull, 1937930740528571559ull,
+ 15986579698591061337ull, 4629420884386667184ull}},
+ {{18131667074727582921ull, 7034099444088102352ull,
+ 1536480549529275055ull, 5786776105483333981ull}},
+ {{4217839769699927035ull, 4180938286682740037ull,
+ 6532286705338981723ull, 7233470131854167476ull}},
+ {{9883985730552296697ull, 614486839926037142ull, 8165358381673727154ull,
+ 9041837664817709345ull}},
+ {{1565805063167797532ull, 4995740293381161118ull,
+ 16632564034614549231ull, 5651148540511068340ull}},
+ {{11180628365814522723ull, 1632989348299063493ull,
+ 2343960969558634923ull, 7063935675638835426ull}},
+ {{140727401985989691ull, 15876294740655993079ull,
+ 12153323248803069461ull, 8829919594548544282ull}},
+ {{7005483653882325413ull, 12228527222123689626ull,
+ 12207513048929306317ull, 5518699746592840176ull}},
+ {{17980226604207682574ull, 1450600972372448320ull,
+ 15259391311161632897ull, 6898374683241050220ull}},
+ {{4028539181550051602ull, 6424937233892948305ull, 627495065242489505ull,
+ 8622968354051312776ull}},
+ {{14047052034537252011ull, 15544800817251562450ull,
+ 392184415776555940ull, 5389355221282070485ull}},
+ {{8335443006316789206ull, 984256947854901447ull, 5101916538148082830ull,
+ 6736694026602588106ull}},
+ {{5807617739468598603ull, 10453693221673402617ull,
+ 15600767709539879345ull, 8420867533253235132ull}},
+ {{15158976133236343887ull, 18062773309614346395ull,
+ 527107781607648782ull, 5263042208283271958ull}},
+ {{14337034148118041955ull, 13355094600163157186ull,
+ 9882256763864336786ull, 6578802760354089947ull}},
+ {{8697920648292776636ull, 7470496213349170675ull,
+ 7741134936403033079ull, 8223503450442612434ull}},
+ {{3130357395969291446ull, 11586589160984313528ull,
+ 9449895353679283578ull, 5139689656526632771ull}},
+ {{3912946744961614307ull, 5259864414375616102ull,
+ 7200683173671716569ull, 6424612070658290964ull}},
+ {{14114555468056793691ull, 11186516536396908031ull,
+ 9000853967089645711ull, 8030765088322863705ull}},
+ {{15739126195176577913ull, 13909101862889149375ull,
+ 17154748775499498329ull, 5019228180201789815ull}},
+ {{15062221725543334487ull, 3551319273329273007ull,
+ 16831749950946985008ull, 6274035225252237269ull}},
+ {{14216091138501780205ull, 4439149091661591259ull,
+ 7204629383401567548ull, 7842544031565296587ull}},
+ {{6579213952349918676ull, 11997840219143270345ull,
+ 2197050355412285765ull, 4901590019728310367ull}},
+ {{12835703458864786249ull, 1162242218646924219ull,
+ 16581370999547520919ull, 6126987524660387958ull}},
+ {{11432943305153594908ull, 15287860828590818986ull,
+ 11503341712579625340ull, 7658734405825484948ull}},
+ {{11757275584148384721ull, 331540981014486058ull,
+ 16412960607217041646ull, 4786709003640928092ull}},
+ {{5473222443330705094ull, 9637798263122883381ull,
+ 2069456685311750441ull, 5983386254551160116ull}},
+ {{11453214072590769271ull, 16658933847330992130ull,
+ 2586820856639688051ull, 7479232818188950145ull}},
+ {{11769944813796618699ull, 8105990645368176129ull,
+ 13145978081468274792ull, 4674520511368093840ull}},
+ {{877372961963609661ull, 10132488306710220162ull,
+ 16432472601835343490ull, 5843150639210117300ull}},
+ {{10320088239309287884ull, 3442238346532999394ull,
+ 2093846678584627747ull, 7303938299012646626ull}},
+ {{3676738262281834047ull, 18137855988448412955ull,
+ 11840680385085560491ull, 9129922873765808282ull}},
+ {{18438862478422003944ull, 9030316983566564144ull,
+ 12012111259105863211ull, 5706201796103630176ull}},
+ {{4601834024317953313ull, 6676210211030817277ull,
+ 15015139073882329014ull, 7132752245129537720ull}},
+ {{10363978548824829546ull, 17568634800643297404ull,
+ 322179768643359651ull, 8915940306411922151ull}},
+ {{15700858629870294274ull, 8674553741188366925ull,
+ 7118891383043181638ull, 5572462691507451344ull}},
+ {{5791015232055704131ull, 1619820139630682849ull,
+ 8898614228803977048ull, 6965578364384314180ull}},
+ {{11850455058497018067ull, 2024775174538353561ull,
+ 11123267786004971310ull, 8706972955480392725ull}},
+ {{489005383919554436ull, 15100542539368634688ull,
+ 9257885375466801020ull, 5441858097175245453ull}},
+ {{611256729899443045ull, 428934100501241744ull, 16184042737760889180ull,
+ 6802322621469056816ull}},
+ {{764070912374303806ull, 536167625626552180ull, 1783309348491559859ull,
+ 8502903276836321021ull}},
+ {{9700916357088715687ull, 16476005830512452776ull,
+ 3420411352020918863ull, 5314314548022700638ull}},
+ {{12126145446360894609ull, 15983321269713178066ull,
+ 13498886226880924387ull, 6642893185028375797ull}},
+ {{5934309771096342453ull, 15367465568714084679ull,
+ 3038549728318991772ull, 8303616481285469747ull}},
+ {{10626472634576295889ull, 381293943591527116ull,
+ 18039994644695227522ull, 5189760300803418591ull}},
+ {{13283090793220369861ull, 9699989466344184703ull,
+ 17938307287441646498ull, 6487200376004273239ull}},
+ {{11992177473098074423ull, 2901614796075455071ull,
+ 17811198090874670219ull, 8109000470005341549ull}},
+ {{14412639948327378370ull, 17954410312043017083ull,
+ 13437841816010362838ull, 5068125293753338468ull}},
+ {{13404113916981835059ull, 13219640853198995546ull,
+ 16797302270012953548ull, 6335156617191673085ull}},
+ {{7531770359372518015ull, 16524551066498744433ull,
+ 7161569782234028223ull, 7918945771489591357ull}},
+ {{16236571520676293520ull, 17245373444202797126ull,
+ 6781824123109961591ull, 4949341107180994598ull}},
+ {{11072342363990591092ull, 16945030786826108504ull,
+ 17700652190742227797ull, 6186676383976243247ull}},
+ {{13840427954988238864ull, 7346230428250471918ull,
+ 17514129220000396843ull, 7733345479970304059ull}},
+ {{4038581453440261386ull, 2285551008442850997ull,
+ 8640487753286554075ull, 4833340924981440037ull}},
+ {{9659912835227714637ull, 16691996815835727458ull,
+ 15412295710035580497ull, 6041676156226800046ull}},
+ {{2851519007179867488ull, 7029937964512495611ull,
+ 10041997600689699814ull, 7552095195283500058ull}},
+ {{17923100443983274844ull, 18228769283102473468ull,
+ 10887934518858450287ull, 4720059497052187536ull}},
+ {{3957131481269541939ull, 18174275585450703932ull,
+ 13609918148573062859ull, 5900074371315234420ull}},
+ {{4946414351586927424ull, 18106158463385992011ull,
+ 17012397685716328574ull, 7375092964144043025ull}},
+ {{1571331921056271376ull, 13409326042377714206ull,
+ 7430439051863247006ull, 9218866205180053782ull}},
+ {{14817140505942333322ull, 3769142758058683474ull, 32338388987141475ull,
+ 5761791378237533614ull}},
+ {{9298053595573140844ull, 99742429145966439ull, 9263795023088702652ull,
+ 7202239222796917017ull}},
+ {{7010880976039038151ull, 124678036432458049ull,
+ 16191429797288266219ull, 9002799028496146271ull}},
+ {{15911015656092868605ull, 16218824837266143944ull,
+ 17037172650946248242ull, 5626749392810091419ull}},
+ {{1442025496406534140ull, 11050159009727904123ull,
+ 16684779795255422399ull, 7033436741012614274ull}},
+ {{15637589925790331387ull, 9201012743732492249ull,
+ 11632602707214502191ull, 8791795926265767843ull}},
+ {{2855964675977875261ull, 12668161992473889512ull,
+ 4964533682795369917ull, 5494872453916104902ull}},
+ {{3569955844972344076ull, 2000144435310198178ull,
+ 15429039140348988205ull, 6868590567395131127ull}},
+ {{13685816843070205903ull, 7111866562565135626ull,
+ 14674612907008847352ull, 8585738209243913909ull}},
+ {{13165321545346266593ull, 4444916601603209766ull,
+ 11477476076094223547ull, 5366086380777446193ull}},
+ {{7233279894828057434ull, 944459733576624304ull, 511787039835615722ull,
+ 6707607975971807742ull}},
+ {{9041599868535071792ull, 10403946703825556188ull,
+ 9863105836649295460ull, 8384509969964759677ull}},
+ {{14874371954689195678ull, 15725838726745748425ull,
+ 8470284157119503614ull, 5240318731227974798ull}},
+ {{4757906888079330886ull, 10433926371577409724ull,
+ 1364483159544603710ull, 6550398414034968498ull}},
+ {{5947383610099163607ull, 3819035927616986347ull,
+ 10928975986285530446ull, 8187998017543710622ull}},
+ {{1411271747098283302ull, 16221955510042780179ull,
+ 2218923973001068624ull, 5117498760964819139ull}},
+ {{15599147739155017840ull, 1830700313843923607ull,
+ 16608713021533499493ull, 6396873451206023923ull}},
+ {{14887248655516384396ull, 6900061410732292413ull,
+ 16149205258489486462ull, 7996091814007529904ull}},
+ {{11610373418911434200ull, 18147596436989846470ull,
+ 10093253286555929038ull, 4997557383754706190ull}},
+ {{5289594736784516941ull, 13461123509382532280ull,
+ 3393194571340135490ull, 6246946729693382738ull}},
+ {{6611993420980646177ull, 7603032349873389542ull,
+ 13464865251029945171ull, 7808683412116728422ull}},
+ {{17967553943395067573ull, 2446052209457174511ull,
+ 3803854763466327828ull, 4880427132572955264ull}},
+ {{17847756410816446562ull, 3057565261821468139ull,
+ 4754818454332909785ull, 6100533915716194080ull}},
+ {{17698009495093170298ull, 8433642595704223078ull,
+ 5943523067916137231ull, 7625667394645242600ull}},
+ {{6449569916005843532ull, 12188555649956221280ull,
+ 3714701917447585769ull, 4766042121653276625ull}},
+ {{8061962395007304415ull, 1400636507163112888ull,
+ 9255063415236870116ull, 5957552652066595781ull}},
+ {{10077452993759130519ull, 1750795633953891110ull,
+ 16180515287473475549ull, 7446940815083244726ull}},
+ {{1686722102672068671ull, 3400090280434875896ull,
+ 5501136036243534314ull, 4654338009427027954ull}},
+ {{2108402628340085838ull, 13473484887398370678ull,
+ 16099792082159193700ull, 5817922511783784942ull}},
+ {{11858875322279883105ull, 16841856109247963347ull,
+ 10901368065844216317ull, 7272403139729731178ull}},
+ {{10211908134422465978ull, 7217262081277790472ull,
+ 4403338045450494589ull, 9090503924662163973ull}},
+ {{6382442584014041236ull, 6816631810012312997ull,
+ 5057929287620253070ull, 5681564952913852483ull}},
+ {{12589739248444939449ull, 17744161799370167054ull,
+ 1710725591097928433ull, 7101956191142315604ull}},
+ {{6513802023701398503ull, 8345144193930545106ull,
+ 2138406988872410542ull, 8877445238927894505ull}},
+ {{8682812283240761969ull, 604029102779202787ull,
+ 12865719414113726349ull, 5548403274329934065ull}},
+ {{6241829335623564557ull, 5366722396901391388ull,
+ 2247091212359994224ull, 6935504092912417582ull}},
+ {{7802286669529455696ull, 6708402996126739235ull,
+ 12032236052304768588ull, 8669380116140521977ull}},
+ {{2570586159242215858ull, 13416123909433987830ull,
+ 602618505049398511ull, 5418362572587826236ull}},
+ {{12436604735907545631ull, 12158468868365096883ull,
+ 753273131311748139ull, 6772953215734782795ull}},
+ {{10934069901457044134ull, 10586400067028983200ull,
+ 14776649469421848886ull, 8466191519668478493ull}},
+ {{6833793688410652584ull, 2004814023465726596ull,
+ 11541248927602349506ull, 5291369699792799058ull}},
+ {{8542242110513315730ull, 11729389566186934053ull,
+ 5203189122648161074ull, 6614212124740998823ull}},
+ {{15289488656569032566ull, 5438364920878891758ull,
+ 1892300384882813439ull, 8267765155926248529ull}},
+ {{4944244391928257450ull, 10316507103190389205ull,
+ 12711902786620228159ull, 5167353222453905330ull}},
+ {{10791991508337709716ull, 8283947860560598602ull,
+ 6666506446420509391ull, 6459191528067381663ull}},
+ {{4266617348567361337ull, 5743248807273360349ull,
+ 3721447039598248835ull, 8073989410084227079ull}},
+ {{4972478852068294788ull, 1283687495332156266ull,
+ 9243433427389987378ull, 5046243381302641924ull}},
+ {{15438970601940144293ull, 10827981406019971140ull,
+ 11554291784237484222ull, 6307804226628302405ull}},
+ {{851969178715628750ull, 4311604720670188118ull, 607806675014691566ull,
+ 7884755283285378007ull}},
+ {{14367538791979431681ull, 16529811005701031285ull,
+ 7297408199525264084ull, 4927972052053361254ull}},
+ {{4124365434692125889ull, 2215519683416737491ull,
+ 18345132286261355914ull, 6159965065066701567ull}},
+ {{543770774937769457ull, 11992771641125697672ull,
+ 18319729339399306988ull, 7699956331333376959ull}},
+ {{339856734336105911ull, 16718854312558336853ull,
+ 18367359864765648723ull, 4812472707083360599ull}},
+ {{5036506936347520293ull, 16286881872270533162ull,
+ 18347513812529673000ull, 6015590883854200749ull}},
+ {{15519005707289176174ull, 1911858266628614836ull,
+ 9099334210379927539ull, 7519488604817750937ull}},
+ {{476006530200959301ull, 17335812481138741937ull,
+ 17216298927555924471ull, 4699680378011094335ull}},
+ {{5206694181178587030ull, 17058079582996039517ull,
+ 16908687641017517685ull, 5874600472513867919ull}},
+ {{11120053744900621691ull, 7487541423462885684ull,
+ 16524173532844509203ull, 7343250590642334899ull}},
+ {{13900067181125777114ull, 4747740760901219201ull,
+ 16043530897628248600ull, 9179063238302918624ull}},
+ {{1770012960562528840ull, 2967337975563262001ull,
+ 10027206811017655375ull, 5736914523939324140ull}},
+ {{6824202219130548954ull, 17544230524736241213ull,
+ 12534008513772069218ull, 7171143154924155175ull}},
+ {{13141938792340574097ull, 12706916119065525708ull,
+ 11055824623787698619ull, 8963928943655193969ull}},
+ {{17437083782067634619ull, 5635979565202259615ull,
+ 18439105435935781397ull, 5602455589784496230ull}},
+ {{17184668709157155369ull, 11656660474930212423ull,
+ 13825509758064950938ull, 7003069487230620288ull}},
+ {{16869149868019056307ull, 5347453556807989721ull,
+ 17281887197581188673ull, 8753836859038275360ull}},
+ {{3625689639870828336ull, 14871373519073463336ull,
+ 10801179498488242920ull, 5471148036898922100ull}},
+ {{4532112049838535420ull, 142472825132277554ull,
+ 13501474373110303651ull, 6838935046123652625ull}},
+ {{14888512099152945083ull, 14013149086697510654ull,
+ 3041784911105715851ull, 8548668807654565782ull}},
+ {{4693634043543202773ull, 6452375169972250207ull,
+ 15736173624723236119ull, 5342918004784103613ull}},
+ {{1255356536001615562ull, 3453782944037924855ull,
+ 5835158975621881437ull, 6678647505980129517ull}},
+ {{15404253725284183165ull, 8928914698474793972ull,
+ 11905634737954739700ull, 8348309382475161896ull}},
+ {{404286541447838670ull, 14803943723401522041ull,
+ 7441021711221712312ull, 5217693364046976185ull}},
+ {{5117044195237186241ull, 58185580542350935ull, 13912963157454528295ull,
+ 6522116705058720231ull}},
+ {{1784619225619094898ull, 13907790030960102381ull,
+ 12779517928390772464ull, 8152645881323400289ull}},
+ {{3421230025225628263ull, 8692368769350063988ull,
+ 1069669677603150934ull, 5095403675827125181ull}},
+ {{4276537531532035329ull, 1642088924832804177ull,
+ 5948773115431326572ull, 6369254594783906476ull}},
+ {{9957357932842432065ull, 2052611156041005221ull,
+ 7435966394289158215ull, 7961568243479883095ull}},
+ {{8529191717240213993ull, 8200411000166710119ull,
+ 11565008024071805740ull, 4975980152174926934ull}},
+ {{6049803628122879587ull, 10250513750208387649ull,
+ 5232887993234981367ull, 6219975190218658668ull}},
+ {{12173940553580987388ull, 8201456169333096657ull,
+ 6541109991543726709ull, 7774968987773323335ull}},
+ {{691183818347035261ull, 7431753115046879363ull,
+ 11005722772355911049ull, 4859355617358327084ull}},
+ {{14699037828215957789ull, 13901377412235987107ull,
+ 13757153465444888811ull, 6074194521697908855ull}},
+ {{13762111266842559332ull, 12765035746867595980ull,
+ 12584755813378723110ull, 7592743152122386069ull}},
+ {{17824691578631375390ull, 3366461323364859583ull,
+ 10171315392575395896ull, 4745464470076491293ull}},
+ {{17669178454861831334ull, 4208076654206074479ull,
+ 17325830259146632774ull, 5931830587595614116ull}},
+ {{17474787050149901263ull, 14483467854612368907ull,
+ 3210543750223739351ull, 7414788234494517646ull}},
+ {{8615898897129994338ull, 15969696436773812423ull,
+ 15841647899172000806ull, 4634242646559073528ull}},
+ {{6158187602985105018ull, 10738748509112489721ull,
+ 1355315800255449392ull, 5792803308198841911ull}},
+ {{12309420522158769176ull, 13423435636390612151ull,
+ 15529202805601475452ull, 7241004135248552388ull}},
+ {{10775089634271073566ull, 16779294545488265189ull,
+ 964759433292292699ull, 9051255169060690486ull}},
+ {{9040274030633114931ull, 8181216081716471791ull,
+ 14438032701089846649ull, 5657034480662931553ull}},
+ {{6688656519864005760ull, 14838206120572977643ull,
+ 4212482821080144599ull, 7071293100828664442ull}},
+ {{3749134631402619296ull, 13936071632288834150ull,
+ 14488975563204956557ull, 8839116376035830552ull}},
+ {{16178267199908800772ull, 11015887779394215295ull,
+ 9055609727003097848ull, 5524447735022394095ull}},
+ {{15611147981458613061ull, 13769859724242769119ull,
+ 6707826140326484406ull, 6905559668777992619ull}},
+ {{14902248958395878422ull, 7988952618448685591ull,
+ 3773096656980717604ull, 8631949585972490774ull}},
+ {{16231434626638505870ull, 14216467423385204302ull,
+ 16193243465895112214ull, 5394968491232806733ull}},
+ {{11065921246443356529ull, 8547212242376729570ull,
+ 6406496277086726556ull, 6743710614041008417ull}},
+ {{4609029521199419854ull, 10684015302970911963ull,
+ 12619806364785796099ull, 8429638267551260521ull}},
+ {{574800441535943457ull, 4371666555143126025ull, 969849950350040706ull,
+ 5268523917219537826ull}},
+ {{5330186570347317225ull, 14687955230783683339ull,
+ 10435684474792326690ull, 6585654896524422282ull}},
+ {{2051047194506758627ull, 9136572001624828366ull,
+ 3821233556635632555ull, 8232068620655527853ull}},
+ {{15116962551848887854ull, 3404514491801823776ull,
+ 4694113982110964299ull, 5145042887909704908ull}},
+ {{449459116101558201ull, 18090701170034443433ull,
+ 5867642477638705373ull, 6431303609887131135ull}},
+ {{5173509913554335655ull, 8778318407260890579ull,
+ 2722867078620993813ull, 8039129512358913919ull}},
+ {{927600686757765833ull, 7792292013751750564ull, 8619320951779202989ull,
+ 5024455945224321199ull}},
+ {{1159500858447207291ull, 14352051035617076109ull,
+ 6162465171296615832ull, 6280569931530401499ull}},
+ {{6061062091486397018ull, 17940063794521345136ull,
+ 3091395445693381886ull, 7850712414413001874ull}},
+ {{3788163807178998136ull, 6600853853148452806ull,
+ 6543808171985751583ull, 4906695259008126171ull}},
+ {{13958576795828523478ull, 3639381298008178103ull,
+ 3568074196554801575ull, 6133369073760157714ull}},
+ {{12836534976358266443ull, 18384284677792386341ull,
+ 13683464782548277776ull, 7666711342200197142ull}},
+ {{10328677369437610479ull, 11490177923620241463ull,
+ 3940479470665285706ull, 4791694588875123214ull}},
+ {{8299160693369625195ull, 5139350367670526021ull,
+ 14148971375186382941ull, 5989618236093904017ull}},
+ {{14985636885139419398ull, 11035873978015545430ull,
+ 3851156163700814964ull, 7487022795117380022ull}},
+ {{4754337034784749220ull, 16120793273114491702ull,
+ 16242030657595173064ull, 4679389246948362513ull}},
+ {{15166293330335712333ull, 1704247517683563011ull,
+ 6467480266711802619ull, 5849236558685453142ull}},
+ {{14346180644492252512ull, 15965367452386617476ull,
+ 17307722370244529081ull, 7311545698356816427ull}},
+ {{17932725805615315639ull, 6121651260201108133ull,
+ 17022966944378273448ull, 9139432122946020534ull}},
+ {{13513796637723266227ull, 3826032037625692583ull,
+ 6027668321809033001ull, 5712145076841262834ull}},
+ {{12280559778726694879ull, 9394226065459503633ull,
+ 16757957439116067059ull, 7140181346051578542ull}},
+ {{1515641668126204887ull, 7131096563396991638ull,
+ 11724074762040308016ull, 8925226682564473178ull}},
+ {{14782334097861041767ull, 4456935352123119773ull,
+ 11939232744702580414ull, 5578266676602795736ull}},
+ {{4642859567044138496ull, 14794541227008675525ull,
+ 14924040930878225517ull, 6972833345753494670ull}},
+ {{10415260477232561024ull, 4658118478478680694ull,
+ 9431679126743006089ull, 8716041682191868338ull}},
+ {{1897851779842962736ull, 14440539095117645194ull,
+ 10506485472641766709ull, 5447526051369917711ull}},
+ {{11595686761658479228ull, 4215615813614892780ull,
+ 8521420822374820483ull, 6809407564212397139ull}},
+ {{14494608452073099035ull, 657833748591228071ull,
+ 6040090009541137700ull, 8511759455265496424ull}},
+ {{15976659310186768753ull, 9634518129724293352ull,
+ 3775056255963211062ull, 5319849659540935265ull}},
+ {{1524080064023909325ull, 2819775625300590883ull,
+ 9330506338381401732ull, 6649812074426169081ull}},
+ {{15740158135312050368ull, 3524719531625738603ull,
+ 16274818941404140069ull, 8312265093032711351ull}},
+ {{7531755825356337528ull, 4508792716479780579ull,
+ 17089290866018669399ull, 5195165683145444594ull}},
+ {{4803008763268034006ull, 1024304877172337820ull,
+ 12138241545668560941ull, 6493957103931805743ull}},
+ {{6003760954085042508ull, 5892067114892810179ull,
+ 10561115913658313272ull, 8117446379914757179ull}},
+ {{1446507587089457616ull, 3682541946808006362ull,
+ 4294854436822751843ull, 5073403987446723237ull}},
+ {{11031506520716597827ull, 18438235488792171664ull,
+ 9980254064455827707ull, 6341754984308404046ull}},
+ {{13789383150895747284ull, 18436108342562826676ull,
+ 3251945543715008826ull, 7927193730385505058ull}},
+ {{17841736506164617861ull, 16134253732529154576ull,
+ 6644151983249268420ull, 4954496081490940661ull}},
+ {{3855426558996220710ull, 1721073091951891605ull,
+ 12916875997488973430ull, 6193120101863675826ull}},
+ {{9430969217172663791ull, 11374713401794640314ull,
+ 6922722960006440979ull, 7741400127329594783ull}},
+ {{10506041779160302774ull, 4803352866907956244ull,
+ 11244230877645107468ull, 4838375079580996739ull}},
+ {{13132552223950378467ull, 6004191083634945305ull,
+ 9443602578628996431ull, 6047968849476245924ull}},
+ {{2580632224655809372ull, 2893552836116293728ull,
+ 11804503223286245539ull, 7559961061845307405ull}},
+ {{1612895140409880857ull, 17949371587068541244ull,
+ 9683657523767597413ull, 4724975663653317128ull}},
+ {{2016118925512351072ull, 8601656428553512843ull,
+ 12104571904709496767ull, 5906219579566646410ull}},
+ {{16355206712172602551ull, 6140384517264503149ull,
+ 5907342844032095151ull, 7382774474458308013ull}},
+ {{12527847204321570547ull, 10755269350931396324ull,
+ 5997932286733753421ull, 4614234046536442508ull}},
+ {{15659809005401963183ull, 18055772707091633309ull,
+ 7497415358417191776ull, 5767792558170553135ull}},
+ {{5739703201470290267ull, 4122971810154990021ull,
+ 4760083179594101817ull, 7209740697713191419ull}},
+ {{11786315020265250738ull, 9765400781121125430ull,
+ 1338417956065239367ull, 9012175872141489274ull}},
+ {{2754760869238393807ull, 13020904515841785250ull,
+ 5448197240968162508ull, 5632609920088430796ull}},
+ {{12666823123402768067ull, 16276130644802231562ull,
+ 6810246551210203135ull, 7040762400110538495ull}},
+ {{6610156867398684276ull, 15733477287575401549ull,
+ 3901122170585366015ull, 8800953000138173119ull}},
+ {{6437191051337871624ull, 16750952332375707824ull,
+ 9355730384256935615ull, 5500595625086358199ull}},
+ {{8046488814172339530ull, 16327004397042246876ull,
+ 7082976961893781615ull, 6875744531357947749ull}},
+ {{10058111017715424413ull, 15797069477875420691ull,
+ 13465407220794614923ull, 8594680664197434686ull}},
+ {{3980476376858446306ull, 7567325414458443980ull,
+ 3804193494569246423ull, 5371675415123396679ull}},
+ {{4975595471073057883ull, 4847470749645667071ull, 143555849784170125ull,
+ 6714594268904245849ull}},
+ {{1607808320413934449ull, 10671024455484471743ull,
+ 4791130830657600560ull, 8393242836130307311ull}},
+ {{7922409227899790887ull, 6669390284677794839ull,
+ 9911985796802082206ull, 5245776772581442069ull}},
+ {{5291325516447350705ull, 17560109892702019357ull,
+ 17001668264429990661ull, 6557220965726802586ull}},
+ {{11225842913986576285ull, 8115079310595360484ull,
+ 12028713293682712519ull, 8196526207158503233ull}},
+ {{16239523858096385986ull, 11989453596763182158ull,
+ 600416780910613468ull, 5122828879474064521ull}},
+ {{11076032785765706675ull, 14986816995953977698ull,
+ 5362206994565654739ull, 6403536099342580651ull}},
+ {{4621668945352357535ull, 14121835226515084219ull,
+ 2091072724779680520ull, 8004420124178225814ull}},
+ {{582700081631529508ull, 8826147016571927637ull,
+ 15141978508269464037ull, 5002762577611391133ull}},
+ {{5340061120466799788ull, 15644369789142297450ull,
+ 5092415080054666334ull, 6253453222014238917ull}},
+ {{15898448437438275543ull, 10332090199573096004ull,
+ 10977204868495720822ull, 7816816527517798646ull}},
+ {{713158236544146407ull, 1845870356305797099ull, 2249067024382437610ull,
+ 4885510329698624154ull}},
+ {{14726505850962346720ull, 11530709982237022181ull,
+ 12034705817332822820ull, 6106887912123280192ull}},
+ {{4573074258420769688ull, 14413387477796277727ull,
+ 15043382271666028525ull, 7633609890154100240ull}},
+ {{9775700439154062911ull, 11314210182836367531ull,
+ 9402113919791267828ull, 4771006181346312650ull}},
+ {{7607939530515190735ull, 14142762728545459414ull,
+ 2529270362884308977ull, 5963757726682890813ull}},
+ {{286552376289212611ull, 3843395355399660556ull, 7773273972032774126ull,
+ 7454697158353613516ull}},
+ {{9402467272035533690ull, 16237180152406951559ull,
+ 14081668269375259636ull, 4659185723971008447ull}},
+ {{7141398071617029208ull, 1849731116799137833ull,
+ 12990399318291686642ull, 5823982154963760559ull}},
+ {{13538433607948674414ull, 11535535932853698099ull,
+ 11626313129437220398ull, 7279977693704700699ull}},
+ {{12311355991508455114ull, 5196047879212346816ull,
+ 9921205393369137594ull, 9099972117130875874ull}},
+ {{7694597494692784446ull, 7859215942935104664ull,
+ 10812439389283098900ull, 5687482573206797421ull}},
+ {{9618246868365980558ull, 9824019928668880830ull,
+ 18127235255031261529ull, 7109353216508496776ull}},
+ {{2799436548602699889ull, 16891710929263488942ull,
+ 4212299995079525295ull, 8886691520635620971ull}},
+ {{15584705898158851143ull, 17474848358430762444ull,
+ 326844487711009357ull, 5554182200397263107ull}},
+ {{1034138298989012312ull, 8008502392756289344ull,
+ 14243613664920925409ull, 6942727750496578883ull}},
+ {{1292672873736265390ull, 14622314009372749584ull,
+ 13192831062723768857ull, 8678409688120723604ull}},
+ {{807920546085165869ull, 2221417228216886634ull,
+ 17468891451057131344ull, 5424006055075452252ull}},
+ {{10233272719461233144ull, 2776771535271108292ull,
+ 3389370240111862564ull, 6780007568844315316ull}},
+ {{12791590899326541430ull, 3470964419088885365ull,
+ 4236712800139828205ull, 8475009461055394145ull}},
+ {{10300587321292782346ull, 4475195771144247305ull,
+ 14177160546155862388ull, 5296880913159621340ull}},
+ {{17487420170043365836ull, 5593994713930309131ull,
+ 17721450682694827985ull, 6621101141449526675ull}},
+ {{17247589194126819391ull, 11604179410840274318ull,
+ 17540127334941147077ull, 8276376426811908344ull}},
+ {{6168057227901874216ull, 9558455140988865401ull,
+ 10962579584338216923ull, 5172735266757442715ull}},
+ {{12321757553304730674ull, 7336382907808693847ull,
+ 9091538461995383250ull, 6465919083446803394ull}},
+ {{10790510923203525438ull, 18393850671615643117ull,
+ 2141051040639453254ull, 8082398854308504243ull}},
+ {{9049912336215897351ull, 6884470651332389044ull,
+ 17479057964895515948ull, 5051499283942815151ull}},
+ {{11312390420269871688ull, 8605588314165486305ull,
+ 17237136437692007031ull, 6314374104928518939ull}},
+ {{305429970055175898ull, 6145299374279469978ull,
+ 16934734528687620885ull, 7892967631160648674ull}},
+ {{4802579749711872841ull, 6146655118138362688ull,
+ 15195895098857150957ull, 4933104769475405421ull}},
+ {{6003224687139841051ull, 12295004916100341264ull,
+ 5159810818289274984ull, 6166380961844256777ull}},
+ {{7504030858924801313ull, 15368756145125426580ull,
+ 11061449541288981634ull, 7707976202305320971ull}},
+ {{13913391323682776629ull, 14217158609130779516ull,
+ 4607562954091919569ull, 4817485126440825607ull}},
+ {{17391739154603470786ull, 3936390206131310683ull,
+ 1147767674187511558ull, 6021856408051032009ull}},
+ {{17127987924826950579ull, 14143859794518914162ull,
+ 6046395611161777351ull, 7527320510063790011ull}},
+ {{15316678471444232016ull, 15757441399215403207ull,
+ 1473154247762416892ull, 4704575318789868757ull}},
+ {{14534162070877902116ull, 1250057675309702393ull,
+ 6453128828130409020ull, 5880719148487335946ull}},
+ {{4332644533315213932ull, 1562572094137127992ull,
+ 17289783072017787083ull, 7350898935609169932ull}},
+ {{5415805666644017415ull, 15788273172953573702ull,
+ 3165484766312682237ull, 9188623669511462416ull}},
+ {{17219936596934674597ull, 12173513742309677515ull,
+ 1978427978945426398ull, 5742889793444664010ull}},
+ {{16913234727740955342ull, 5993520141032321086ull,
+ 11696407010536558806ull, 7178612241805830012ull}},
+ {{11918171372821418369ull, 16715272213145177166ull,
+ 14620508763170698507ull, 8973265302257287515ull}},
+ {{2837171089585998577ull, 8141202124002041777ull,
+ 6831974967767992615ull, 5608290813910804697ull}},
+ {{8158149880409886125ull, 5564816636575164317ull,
+ 13151654728137378673ull, 7010363517388505871ull}},
+ {{14809373368939745560ull, 11567706814146343300ull,
+ 11827882391744335437ull, 8762954396735632339ull}},
+ {{32486318732565167ull, 9535659768055158515ull, 5086583485626515696ull,
+ 5476846497959770212ull}},
+ {{13875665953697870171ull, 11919574710068948143ull,
+ 6358229357033144620ull, 6846058122449712765ull}},
+ {{12732896423694949810ull, 14899468387586185179ull,
+ 12559472714718818679ull, 8557572653062140956ull}},
+ {{5652217255595649679ull, 16229696769882447593ull,
+ 17073042483554037482ull, 5348482908163838097ull}},
+ {{11676957587921950003ull, 11063748925498283683ull,
+ 7506245049160383141ull, 6685603635204797622ull}},
+ {{9984510966475049600ull, 18441372175300242508ull,
+ 159434274595703118ull, 8357004544005997028ull}},
+ {{15463691390901681808ull, 6914171591135263663ull,
+ 9323018458477090257ull, 5223127840003748142ull}},
+ {{14717928220199714356ull, 13254400507346467483ull,
+ 2430401036241587013ull, 6528909800004685178ull}},
+ {{13785724256822255041ull, 2732942578900920642ull,
+ 12261373332156759575ull, 8161137250005856472ull}},
+ {{13227763678941297305ull, 8625618139454157257ull,
+ 7663358332597974734ull, 5100710781253660295ull}},
+ {{2699646543394457919ull, 1558650637462920764ull,
+ 4967511897320080514ull, 6375888476567075369ull}},
+ {{3374558179243072398ull, 11171685333683426763ull,
+ 10821075890077488546ull, 7969860595708844211ull}},
+ {{18249999926522777913ull, 11593989351979529630ull,
+ 4457329422084736389ull, 4981162872318027632ull}},
+ {{13589127871298696583ull, 657428634692248326ull,
+ 5571661777605920487ull, 6226453590397534540ull}},
+ {{7763037802268594921ull, 14656843848647474120ull,
+ 6964577222007400608ull, 7783066987996918175ull}},
+ {{4851898626417871826ull, 9160527405404671325ull,
+ 11270389791395707236ull, 4864416867498073859ull}},
+ {{10676559301449727686ull, 11450659256755839156ull,
+ 9476301220817246141ull, 6080521084372592324ull}},
+ {{13345699126812159607ull, 478266015662635233ull,
+ 11845376526021557677ull, 7600651355465740405ull}},
+ {{1423532926616517899ull, 2604759269002840973ull,
+ 9709203337977167500ull, 4750407097166087753ull}},
+ {{6391102176698035277ull, 3255949086253551216ull,
+ 16748190190898847279ull, 5938008871457609691ull}},
+ {{7988877720872544096ull, 17904994413099102732ull,
+ 16323551720196171194ull, 7422511089322012114ull}},
+ {{14216420612400115868ull, 15802307526614327111ull,
+ 14813905843549994900ull, 4639069430826257571ull}},
+ {{13158839747072756931ull, 1306140334558357273ull,
+ 13905696286010105722ull, 5798836788532821964ull}},
+ {{2613491628558782452ull, 10856047455052722400ull,
+ 17382120357512632152ull, 7248545985666027455ull}},
+ {{3266864535698478065ull, 13570059318815903000ull,
+ 17115964428463402286ull, 9060682482082534319ull}},
+ {{2041790334811548791ull, 3869601055832551471ull,
+ 17615006795430708285ull, 5662926551301583949ull}},
+ {{16387295973796599701ull, 9448687338218077242ull,
+ 8183700439006221644ull, 7078658189126979937ull}},
+ {{11260747930390973818ull, 11810859172772596553ull,
+ 14841311567185164959ull, 8848322736408724921ull}},
+ {{120438428853276780ull, 14299316010623954702ull,
+ 2358290701849646243ull, 5530201710255453076ull}},
+ {{9373920072921371783ull, 13262458994852555473ull,
+ 2947863377312057804ull, 6912752137819316345ull}},
+ {{16329086109579102633ull, 16578073743565694341ull,
+ 8296515240067460159ull, 8640940172274145431ull}},
+ {{12511521827700633098ull, 17278825117369640819ull,
+ 12102851052683244455ull, 5400587607671340894ull}},
+ {{11027716266198403468ull, 16986845378284663120ull,
+ 5905191778999279761ull, 6750734509589176118ull}},
+ {{13784645332748004335ull, 7398498667573665188ull,
+ 16604861760603875510ull, 8438418136986470147ull}},
+ {{17838775369822278517ull, 12375648806152838ull, 8072195591163728242ull,
+ 5274011335616543842ull}},
+ {{13075097175423072339ull, 9238841597862466856ull,
+ 866872452099884494ull, 6592514169520679803ull}},
+ {{16343871469278840423ull, 2325179960473307762ull,
+ 14918648620407019330ull, 8240642711900849753ull}},
+ {{14826605686726663169ull, 6064923493723205255ull,
+ 2406626360113305225ull, 5150401694938031096ull}},
+ {{13921571089980941057ull, 12192840385581394473ull,
+ 3008282950141631531ull, 6438002118672538870ull}},
+ {{3566905807194012609ull, 10629364463549355188ull,
+ 12983725724531815222ull, 8047502648340673587ull}},
+ {{11452688166351033689ull, 2031666771290959088ull,
+ 5808985568618690562ull, 5029689155212920992ull}},
+ {{14315860207938792111ull, 11762955500968474668ull,
+ 7261231960773363202ull, 6287111444016151240ull}},
+ {{17894825259923490138ull, 5480322339355817527ull,
+ 9076539950966704003ull, 7858889305020189050ull}},
+ {{18101794815093263193ull, 1119358452883692002ull,
+ 10284523487781577906ull, 4911805815637618156ull}},
+ {{13403871482011803183ull, 10622570102959390811ull,
+ 12855654359726972382ull, 6139757269547022695ull}},
+ {{12143153334087366074ull, 4054840591844462706ull,
+ 11457881931231327574ull, 7674696586933778369ull}},
+ {{12201156852231991701ull, 16369333425184952903ull,
+ 243647179378497877ull, 4796685366833611481ull}},
+ {{10639760046862601722ull, 6626608726199027417ull,
+ 4916244992650510251ull, 5995856708542014351ull}},
+ {{17911386077005640056ull, 3671574889321396367ull,
+ 1533620222385749910ull, 7494820885677517939ull}},
+ {{18112145325769606891ull, 16129792361108036441ull,
+ 17099413703486951357ull, 4684263053548448711ull}},
+ {{8805123601929844902ull, 6327182396102881840ull,
+ 16762581110931301293ull, 5855328816935560889ull}},
+ {{11006404502412306127ull, 12520664013555990204ull,
+ 7118168333381962904ull, 7319161021169451112ull}},
+ {{13758005628015382659ull, 15650830016944987755ull,
+ 8897710416727453630ull, 9148951276461813890ull}},
+ {{6292910508295920210ull, 5170082742163229443ull,
+ 10172755028882046423ull, 5718094547788633681ull}},
+ {{3254452116942512358ull, 1850917409276648900ull,
+ 17327629804529945933ull, 7147618184735792101ull}},
+ {{4068065146178140448ull, 6925332780023199029ull,
+ 7824479200380268704ull, 8934522730919740127ull}},
+ {{4848383725575031732ull, 4328332987514499393ull,
+ 11807828527878749796ull, 5584076706824837579ull}},
+ {{10672165675396177569ull, 5410416234393124241ull,
+ 10148099641421049341ull, 6980095883531046974ull}},
+ {{17951893112672609865ull, 11374706311418793205ull,
+ 3461752514921535868ull, 8725119854413808718ull}},
+ {{13525776204634075118ull, 16332563481491521561ull,
+ 15998653377108123629ull, 5453199909008630448ull}},
+ {{3072162200510430185ull, 6580646296582238240ull,
+ 1551572647675602921ull, 6816499886260788061ull}},
+ {{3840202750638037731ull, 12837493889155185704ull,
+ 6551151828021891555ull, 8520624857825985076ull}},
+ {{2400126719148773582ull, 5717590671508297113ull,
+ 13317841929368458030ull, 5325390536141240672ull}},
+ {{7611844417363354882ull, 16370360376240147199ull,
+ 16647302411710572537ull, 6656738170176550840ull}},
+ {{4903119503276805698ull, 6627892415018020287ull,
+ 2362383940928664056ull, 8320922712720688551ull}},
+ {{9981978717189085417ull, 4142432759386262679ull,
+ 8394018990721496891ull, 5200576695450430344ull}},
+ {{7865787378058968868ull, 566354930805440445ull,
+ 10492523738401871114ull, 6500720869313037930ull}},
+ {{14443920241001098988ull, 9931315700361576364ull,
+ 3892282636147563084ull, 8125901086641297413ull}},
+ {{18250822187480462676ull, 15430444349580761035ull,
+ 4738519656805920879ull, 5078688179150810883ull}},
+ {{18201841715923190441ull, 14676369418548563390ull,
+ 1311463552580013195ull, 6348360223938513604ull}},
+ {{13528930108049212243ull, 13733775754758316334ull,
+ 1639329440725016494ull, 7935450279923142005ull}},
+ {{3843895299103369748ull, 3971923828296559805ull,
+ 3330423909666829261ull, 4959656424951963753ull}},
+ {{9416555142306600089ull, 9576590803798087660ull,
+ 8774715905510924480ull, 6199570531189954691ull}},
+ {{11770693927883250111ull, 11970738504747609575ull,
+ 6356708863461267696ull, 7749463163987443364ull}},
+ {{14274212732568113175ull, 7481711565467255984ull,
+ 13196315076518068118ull, 4843414477492152102ull}},
+ {{17842765915710141469ull, 128767419979294172ull,
+ 7272021808792809340ull, 6054268096865190128ull}},
+ {{3856713320928125220ull, 160959274974117716ull, 9090027260991011675ull,
+ 7567835121081487660ull}},
+ {{11633817862434854071ull, 16241500611354681236ull,
+ 14904639074974158104ull, 4729896950675929787ull}},
+ {{14542272328043567589ull, 1855131690483799929ull,
+ 14019112825290309727ull, 5912371188344912234ull}},
+ {{4342782354772295774ull, 16153972668386913624ull,
+ 8300518994758111350ull, 7390463985431140293ull}},
+ {{2714238971732684859ull, 5484546899314433111ull,
+ 7493667380937513546ull, 4619039990894462683ull}},
+ {{17227856769948019785ull, 16079055660997817196ull,
+ 4755398207744504028ull, 5773799988618078354ull}},
+ {{3088076888725473115ull, 1652075502537719880ull,
+ 15167619796535405844ull, 7217249985772597942ull}},
+ {{3860096110906841394ull, 2065094378172149850ull,
+ 9736152708814481497ull, 9021562482215747428ull}},
+ {{7024246087744163775ull, 12819899032426063416ull,
+ 15308467479863826743ull, 5638476551384842142ull}},
+ {{8780307609680204719ull, 11413187772105191366ull,
+ 9912212312975007621ull, 7048095689231052678ull}},
+ {{1752012475245480091ull, 431426659849325496ull, 3166893354363983719ull,
+ 8810119611538815848ull}},
+ {{1095007797028425057ull, 7187170690046910291ull,
+ 1979308346477489824ull, 5506324757211759905ull}},
+ {{15203817801567695033ull, 8983963362558637863ull,
+ 7085821451524250184ull, 6882905946514699881ull}},
+ {{14393086233532230887ull, 11229954203198297329ull,
+ 13468962832832700634ull, 8603632433143374851ull}},
+ {{2078149868316562449ull, 11630407395426323735ull,
+ 6112258761306743944ull, 5377270270714609282ull}},
+ {{16432745390677866773ull, 14538009244282904668ull,
+ 16863695488488205738ull, 6721587838393261602ull}},
+ {{2094187664637781850ull, 8949139518498855028ull,
+ 11856247323755481365ull, 8401984797991577003ull}},
+ {{10532239327253389464ull, 7899055208275478344ull,
+ 5104311568133481901ull, 5251240498744735627ull}},
+ {{13165299159066736830ull, 14485505028771735834ull,
+ 1768703441739464472ull, 6564050623430919534ull}},
+ {{7233251911978645230ull, 18106881285964669793ull,
+ 11434251339029106398ull, 8205063279288649417ull}},
+ {{16049997491055123029ull, 6705114785300530716ull,
+ 228878059252109643ull, 5128164549555405886ull}},
+ {{1615752790109352170ull, 3769707463198275492ull,
+ 9509469610919912862ull, 6410205686944257357ull}},
+ {{2019690987636690212ull, 13935506365852620173ull,
+ 16498523032077278981ull, 8012757108680321696ull}},
+ {{3568149876486625335ull, 11015534487871581560ull,
+ 10311576895048299363ull, 5007973192925201060ull}},
+ {{4460187345608281668ull, 9157732091412089046ull,
+ 12889471118810374204ull, 6259966491156501325ull}},
+ {{14798606218865127893ull, 11447165114265111307ull,
+ 2276780843230804043ull, 7824958113945626657ull}},
+ {{6943285877577010982ull, 4848635187202000615ull,
+ 12952203073087722287ull, 4890598821216016660ull}},
+ {{4067421328543875823ull, 1449107965575112865ull,
+ 16190253841359652859ull, 6113248526520020825ull}},
+ {{9695962679107232682ull, 15646443012251054793ull,
+ 6402759246417402361ull, 7641560658150026032ull}},
+ {{17589191720510490187ull, 2861497855015827389ull,
+ 4001724529010876476ull, 4775975411343766270ull}},
+ {{8151431595355949021ull, 3576872318769784237ull,
+ 14225527698118371403ull, 5969969264179707837ull}},
+ {{14800975512622324180ull, 18306148453744394008ull,
+ 3946851567365800541ull, 7462461580224634797ull}},
+ {{9250609695388952613ull, 13747185792803940207ull,
+ 4772625238817319290ull, 4664038487640396748ull}},
+ {{6951576100808802862ull, 7960610204150149451ull,
+ 5965781548521649113ull, 5830048109550495935ull}},
+ {{4077784107583615673ull, 14562448773615074718ull,
+ 2845540917224673487ull, 7287560136938119919ull}},
+ {{14320602171334295400ull, 13591374948591455493ull,
+ 17391984201813005571ull, 9109450171172649898ull}},
+ {{11256219366297628577ull, 6188766333655965731ull,
+ 15481676144560516386ull, 5693406356982906186ull}},
+ {{9458588189444647817ull, 16959329953924732972ull,
+ 10128723143845869674ull, 7116757946228632733ull}},
+ {{11823235236805809771ull, 11975790405551140407ull,
+ 17272589948234724997ull, 8895947432785790916ull}},
+ {{14307051050644712963ull, 9790712012683156706ull,
+ 1571996680791927315ull, 5559967145491119323ull}},
+ {{8660441776451115396ull, 7626703997426557979ull,
+ 15800053906272072856ull, 6949958931863899153ull}},
+ {{6213866202136506341ull, 9533379996783197474ull,
+ 5915009327557927358ull, 8687448664829873942ull}},
+ {{8495352394762704367ull, 1346676479562110517ull,
+ 17531938885005868311ull, 5429655415518671213ull}},
+ {{15230876511880768363ull, 15518403654734801858ull,
+ 8079865550975171676ull, 6787069269398339017ull}},
+ {{9815223602996184645ull, 951260494708950707ull,
+ 14711517957146352500ull, 8483836586747923771ull}},
+ {{3828671742658921452ull, 9817909846047870000ull,
+ 6888855714002776360ull, 5302397866717452357ull}},
+ {{4785839678323651814ull, 12272387307559837500ull,
+ 13222755660930858354ull, 6627997333396815446ull}},
+ {{5982299597904564768ull, 6117112097595021067ull,
+ 7305072539308797135ull, 8284996666746019308ull}},
+ {{1433094239476659028ull, 10740724088637970023ull,
+ 13789042373922774017ull, 5178122916716262067ull}},
+ {{15626425854627987497ull, 18037591129224850432ull,
+ 12624616948976079617ull, 6472653645895327584ull}},
+ {{1086288244575432755ull, 8711930856248899329ull,
+ 15780771186220099522ull, 8090817057369159480ull}},
+ {{12208145198928115232ull, 10056642803582949984ull,
+ 9862981991387562201ull, 5056760660855724675ull}},
+ {{15260181498660144040ull, 17182489522906075384ull,
+ 7717041470807064847ull, 6320950826069655844ull}},
+ {{628482799615628434ull, 16866425885205206327ull,
+ 9646301838508831059ull, 7901188532587069805ull}},
+ {{7310330777400849627ull, 8235673169039560002ull,
+ 8334781658281713364ull, 4938242832866918628ull}},
+ {{18361285508605837842ull, 10294591461299450002ull,
+ 10418477072852141705ull, 6172803541083648285ull}},
+ {{13728234848902521494ull, 17479925345051700407ull,
+ 17634782359492565035ull, 7716004426354560356ull}},
+ {{15497675808205157790ull, 8619110331443618802ull,
+ 1798366937828077339ull, 4822502766471600223ull}},
+ {{10148722723401671430ull, 6162201895877135599ull,
+ 16083016727567260386ull, 6028128458089500278ull}},
+ {{8074217385824701383ull, 16926124406701195307ull,
+ 10880398872604299674ull, 7535160572611875348ull}},
+ {{2740542856926744413ull, 15190513772615634971ull,
+ 16023621332232463104ull, 4709475357882422092ull}},
+ {{17260736626440594228ull, 541398142059992097ull,
+ 1582782591581027265ull, 5886844197353027616ull}},
+ {{7740862727768579072ull, 5288433696002378026ull,
+ 1978478239476284081ull, 7358555246691284520ull}},
+ {{452706372855948032ull, 11222228138430360437ull,
+ 2473097799345355101ull, 9198194058364105650ull}},
+ {{2588784492248661472ull, 9319735595732669225ull,
+ 6157372143018234842ull, 5748871286477566031ull}},
+ {{7847666633738214744ull, 2426297457811060723ull,
+ 3085029160345405649ull, 7186089108096957539ull}},
+ {{5197897273745380526ull, 7644557840691213808ull,
+ 17691344505713920773ull, 8982611385121196923ull}},
+ {{3248685796090862829ull, 7083691659645702582ull,
+ 8751247306857506531ull, 5614132115700748077ull}},
+ {{13284229281968354344ull, 4242928556129740323ull,
+ 15550745151999271068ull, 7017665144625935096ull}},
+ {{11993600584033055026ull, 5303660695162175404ull,
+ 991687366289537219ull, 8772081430782418871ull}},
+ {{16719372401875435200ull, 1008944925262665675ull,
+ 7537333631572042618ull, 5482550894239011794ull}},
+ {{16287529483916906095ull, 10484553193433107902ull,
+ 198295002610277464ull, 6853188617798764743ull}},
+ {{11136039818041356811ull, 13105691491791384878ull,
+ 14082926808545010542ull, 8566485772248455928ull}},
+ {{2348338867848460103ull, 3579371163942227645ull,
+ 8801829255340631589ull, 5354053607655284955ull}},
+ {{7547109603237963033ull, 9085899973355172460ull,
+ 6390600550748401582ull, 6692567009569106194ull}},
+ {{9433887004047453791ull, 2134002929839189767ull,
+ 17211622725290277786ull, 8365708761961382742ull}},
+ {{12813708405170740475ull, 5945437849576881508ull,
+ 6145578184879035712ull, 5228567976225864214ull}},
+ {{16017135506463425594ull, 7431797311971101885ull,
+ 16905344767953570448ull, 6535709970282330267ull}},
+ {{6186361327797118281ull, 9289746639963877357ull,
+ 16519994941514575156ull, 8169637462852912834ull}},
+ {{6172318839086892878ull, 15029463686832199156ull,
+ 14936682856873997376ull, 5106023414283070521ull}},
+ {{7715398548858616097ull, 340085534830697329ull, 4835795515810333009ull,
+ 6382529267853838152ull}},
+ {{14255934204500658025ull, 5036792936965759565ull,
+ 6044744394762916261ull, 7978161584817297690ull}},
+ {{11215801887026605218ull, 5453838594817293680ull,
+ 8389651265154210567ull, 4986350990510811056ull}},
+ {{14019752358783256522ull, 2205612225094229196ull,
+ 10487064081442763209ull, 6232938738138513820ull}},
+ {{17524690448479070652ull, 7368701299795174399ull,
+ 13108830101803454011ull, 7791173422673142275ull}},
+ {{17870460557940501014ull, 2299595303158290047ull,
+ 5887175804413464805ull, 4869483389170713922ull}},
+ {{17726389678998238363ull, 7486180147375250463ull,
+ 16582341792371606814ull, 6086854236463392402ull}},
+ {{17546301080320410050ull, 134353147364287271ull,
+ 11504555203609732710ull, 7608567795579240503ull}},
+ {{17883967202841338137ull, 13919028772384843256ull,
+ 14107876029897164799ull, 4755354872237025314ull}},
+ {{3908214929842121056ull, 12787099947053666167ull,
+ 8411473000516680191ull, 5944193590296281643ull}},
+ {{273582643875263416ull, 11372188915389694805ull,
+ 5902655232218462335ull, 7430241987870352054ull}},
+ {{2476832161635733587ull, 14025147099759641109ull,
+ 17524217575418702671ull, 4643901242418970033ull}},
+ {{7707726220472054887ull, 12919747856272163482ull,
+ 8070213913991214627ull, 5804876553023712542ull}},
+ {{411285738735292801ull, 11537998801912816449ull, 864395355634242476ull,
+ 7256095691279640678ull}},
+ {{5125793191846503905ull, 14422498502391020561ull,
+ 10303866231397578903ull, 9070119614099550847ull}},
+ {{14732835790972534701ull, 15931590591635469706ull,
+ 13357445422264568670ull, 5668824758812219279ull}},
+ {{9192672701860892568ull, 10691116202689561325ull,
+ 12085120759403322934ull, 7086030948515274099ull}},
+ {{16102526895753503614ull, 4140523216507175848ull,
+ 10494714930826765764ull, 8857538685644092624ull}},
+ {{10064079309845939759ull, 11811199047171760713ull,
+ 6559196831766728602ull, 5535961678527557890ull}},
+ {{17191785155734812603ull, 5540626772109925083ull,
+ 17422368076563186561ull, 6919952098159447362ull}},
+ {{16878045426241127849ull, 11537469483564794258ull,
+ 12554588058849207393ull, 8649940122699309203ull}},
+ {{15160464409828092810ull, 293389399586914555ull,
+ 5540774527567060669ull, 5406212576687068252ull}},
+ {{14338894493857728108ull, 4978422767911031098ull,
+ 6925968159458825836ull, 6757765720858835315ull}},
+ {{8700246080467384327ull, 6223028459888788873ull,
+ 4045774180896144391ull, 8447207151073544144ull}},
+ {{16966868846360584965ull, 10806921815071574901ull,
+ 2528608863060090244ull, 5279504469420965090ull}},
+ {{7373528002668567494ull, 13508652268839468627ull,
+ 12384133115679888613ull, 6599380586776206362ull}},
+ {{4605223984908321463ull, 3050757280767172072ull,
+ 6256794357745084959ull, 8249225733470257953ull}},
+ {{2878264990567700915ull, 8824252328120564401ull,
+ 15439711519659147859ull, 5155766083418911220ull}},
+ {{8209517256637014047ull, 6418629391723317597ull, 852895325864383208ull,
+ 6444707604273639026ull}},
+ {{14873582589223655463ull, 8023286739654146996ull,
+ 10289491194185254818ull, 8055884505342048782ull}},
+ {{72617081410008856ull, 9626240230711229777ull, 1819245977938396357ull,
+ 5034927815838780489ull}},
+ {{4702457370189898974ull, 16644486306816425125ull,
+ 6885743490850383350ull, 6293659769798475611ull}},
+ {{10489757731164761622ull, 11582235846665755598ull,
+ 3995493345135591284ull, 7867074712248094514ull}},
+ {{1944412563550588110ull, 16462269441020873057ull,
+ 7108869359137132456ull, 4916921695155059071ull}},
+ {{7042201722865623041ull, 2131092727566539705ull,
+ 4274400680494027667ull, 6146152118943823839ull}},
+ {{13414438172009416705ull, 16498923964740338343ull,
+ 731314832190146679ull, 7682690148679779799ull}},
+ {{15301552885146967297ull, 17229356505603793320ull,
+ 7374600797759923530ull, 4801681342924862374ull}},
+ {{680197032724157505ull, 12313323595149965843ull,
+ 18441623034054680221ull, 6002101678656077967ull}},
+ {{14685304346187360593ull, 1556596438655293591ull,
+ 18440342774140962373ull, 7502627098320097459ull}},
+ {{16095844244008182227ull, 3278715783373252446ull,
+ 9219371224624407531ull, 4689141936450060912ull}},
+ {{10896433268155451976ull, 17933452784498729270ull,
+ 11524214030780509413ull, 5861427420562576140ull}},
+ {{4397169548339539161ull, 8581757925341247876ull,
+ 14405267538475636767ull, 7326784275703220175ull}},
+ {{5496461935424423952ull, 6115511388249171941ull,
+ 13394898404667158055ull, 9158480344629025219ull}},
+ {{5741131718853958922ull, 10739723645296814319ull,
+ 6065968493703279832ull, 5724050215393140762ull}},
+ {{2564728630140060748ull, 13424654556621017899ull,
+ 16805832653983875598ull, 7155062769241425952ull}},
+ {{17040968842957239647ull, 7557446158921496565ull,
+ 2560546743770292882ull, 8943828461551782441ull}},
+ {{12956448536061968732ull, 9335089867753323257ull,
+ 13129556760924902811ull, 5589892788469864025ull}},
+ {{2360502614795297203ull, 7057176316264266168ull,
+ 2576887895873964802ull, 6987365985587330032ull}},
+ {{2950628268494121503ull, 18044842432185108518ull,
+ 3221109869842456002ull, 8734207481984162540ull}},
+ {{15679200723090989652ull, 15889712538543080727ull,
+ 11236565705506310809ull, 5458879676240101587ull}},
+ {{14987314885436349160ull, 6027082617896687197ull,
+ 9434021113455500608ull, 6823599595300126984ull}},
+ {{4899085551513272738ull, 7533853272370858997ull,
+ 11792526391819375760ull, 8529499494125158730ull}},
+ {{5367771478909489414ull, 4708658295231786873ull,
+ 11982015013314497754ull, 5330937183828224206ull}},
+ {{11321400367064249671ull, 15109194905894509399ull,
+ 5754146729788346384ull, 6663671479785280258ull}},
+ {{9540064440402924185ull, 439749558658585133ull,
+ 16416055449090208789ull, 8329589349731600322ull}},
+ {{8268383284465521568ull, 2580686483375309660ull,
+ 14871720674108768397ull, 5205993343582250201ull}},
+ {{10335479105581901959ull, 7837544122646524979ull,
+ 4754592787353796784ull, 6507491679477812752ull}},
+ {{8307662863549989545ull, 9796930153308156224ull,
+ 5943240984192245980ull, 8134364599347265940ull}},
+ {{5192289289718743466ull, 15346453382672373448ull,
+ 12937897651974929545ull, 5083977874592041212ull}},
+ {{6490361612148429332ull, 5348008673058303098ull,
+ 16172372064968661932ull, 6354972343240051515ull}},
+ {{17336324052040312473ull, 6685010841322878872ull,
+ 15603779062783439511ull, 7943715429050064394ull}},
+ {{10835202532525195296ull, 11095660803467881151ull,
+ 14364047932667037598ull, 4964822143156290246ull}},
+ {{8932317147229106216ull, 4646203967480075631ull,
+ 8731687878979021190ull, 6206027678945362808ull}},
+ {{6553710415608994866ull, 15031126996204870347ull,
+ 10914609848723776487ull, 7757534598681703510ull}},
+ {{1790226000541927839ull, 16311983400269125823ull,
+ 2209945137024972400ull, 4848459124176064694ull}},
+ {{16072840555959573511ull, 1943235176626855662ull,
+ 11985803458135991309ull, 6060573905220080867ull}},
+ {{10867678658094691080ull, 7040729989210957482ull,
+ 10370568304242601232ull, 7575717381525101084ull}},
+ {{11403985179736569829ull, 4400456243256848426ull,
+ 15704977227006401578ull, 4734823363453188177ull}},
+ {{5031609437815936479ull, 14723942340925836341ull,
+ 5796163478475838260ull, 5918529204316485222ull}},
+ {{10901197815697308502ull, 18404927926157295426ull,
+ 16468576384949573633ull, 7398161505395606527ull}},
+ {{11424934653238205718ull, 4585550926207227785ull,
+ 17210389268234565377ull, 4623850940872254079ull}},
+ {{446110261265593435ull, 10343624676186422636ull,
+ 16901300566865818817ull, 5779813676090317599ull}},
+ {{557637826581991794ull, 17541216863660416199ull,
+ 16514939690154885617ull, 7224767095112896999ull}},
+ {{14532105338509653455ull, 8091463024293356536ull,
+ 16031988594266219118ull, 9030958868891121249ull}},
+ {{9082565836568533409ull, 445478371755959931ull, 3102463843775305093ull,
+ 5644349293056950781ull}},
+ {{6741521277283278858ull, 5168533983122337818ull,
+ 8489765823146519270ull, 7055436616321188476ull}},
+ {{17650273633458874380ull, 15684039515757698080ull,
+ 10612207278933149087ull, 8819295770401485595ull}},
+ {{11031421020911796488ull, 16720053724989643156ull,
+ 4326786540119524227ull, 5512059856500928497ull}},
+ {{13789276276139745609ull, 16288381137809666041ull,
+ 10020169193576793188ull, 6890074820626160621ull}},
+ {{3401537289892518300ull, 1913732348552530936ull,
+ 17136897510398379390ull, 8612593525782700776ull}},
+ {{2125960806182823937ull, 15031140773127495547ull,
+ 10710560943998987118ull, 5382870953614187985ull}},
+ {{16492509063010693634ull, 9565553929554593625ull,
+ 17999887198426121802ull, 6728588692017734981ull}},
+ {{6780578273481203330ull, 2733570375088466224ull,
+ 8664800942750488541ull, 8410735865022168727ull}},
+ {{4237861420925752081ull, 4014324493643985342ull,
+ 12333029616860137194ull, 5256709915638855454ull}},
+ {{14520698813011965910ull, 14241277653909757485ull,
+ 6192914984220395684ull, 6570887394548569318ull}},
+ {{4315815460982793675ull, 17801597067387196857ull,
+ 16964515767130270413ull, 8213609243185711647ull}},
+ {{14226599709182715807ull, 13431841176330691987ull,
+ 17520351382097500864ull, 5133505776991069779ull}},
+ {{13171563618051006855ull, 16789801470413364984ull,
+ 17288753209194488176ull, 6416882221238837224ull}},
+ {{16464454522563758568ull, 2540507764307154614ull,
+ 3164197437783558605ull, 8021102776548546531ull}},
+ {{5678598058174961201ull, 3893660361905665586ull,
+ 18118524463110581792ull, 5013189235342841581ull}},
+ {{16321619609573477309ull, 4867075452382081982ull,
+ 8813097523606063528ull, 6266486544178551977ull}},
+ {{11178652475112070829ull, 6083844315477602478ull,
+ 15628057922934967314ull, 7833108180223189971ull}},
+ {{2374971778517656364ull, 8414088715600889453ull,
+ 7461693192620660619ull, 4895692612639493732ull}},
+ {{7580400741574458359ull, 5905924876073723912ull,
+ 9327116490775825774ull, 6119615765799367165ull}},
+ {{9475500926968072949ull, 16605778131946930698ull,
+ 16270581631897170121ull, 7649519707249208956ull}},
+ {{10533874097782433497ull, 3461082304825749830ull,
+ 945741483080955518ull, 4780949817030755598ull}},
+ {{3943970585373266063ull, 13549724917886963096ull,
+ 10405548890705970205ull, 5976187271288444497ull}},
+ {{4929963231716582579ull, 3102098092076540158ull,
+ 17618622131809850661ull, 7470234089110555621ull}},
+ {{16916285075105027824ull, 4244654316761531550ull,
+ 13317481841594850615ull, 4668896305694097263ull}},
+ {{11921984307026508972ull, 694131877524526534ull,
+ 12035166283566175365ull, 5836120382117621579ull}},
+ {{5679108346928360407ull, 5479350865333046072ull,
+ 10432271836030331302ull, 7295150477647026974ull}},
+ {{7098885433660450508ull, 16072560618521083398ull,
+ 3816967758183138319ull, 9118938097058783718ull}},
+ {{18271861451319945280ull, 16962879414216758979ull,
+ 16220662904146625161ull, 5699336310661739823ull}},
+ {{18228140795722543696ull, 7368541212488785012ull,
+ 15664142611755893548ull, 7124170388327174779ull}},
+ {{4338431920943628004ull, 9210676515610981266ull,
+ 14968492246267479031ull, 8905212985408968474ull}},
+ {{7323205969017155406ull, 12674201849897945147ull,
+ 13966993672344562298ull, 5565758115880605296ull}},
+ {{4542321442844056354ull, 6619380275517655626ull,
+ 17458742090430702873ull, 6957197644850756620ull}},
+ {{14901273840409846250ull, 12885911362824457436ull,
+ 3376683539328826975ull, 8696497056063445776ull}},
+ {{89924113401378099ull, 14971223629406367754ull, 2110427212080516859ull,
+ 5435310660039653610ull}},
+ {{9335777178606498431ull, 14102343518330571788ull,
+ 11861406051955421882ull, 6794138325049567012ull}},
+ {{11669721473258123039ull, 8404557361058438927ull,
+ 14826757564944277353ull, 8492672906311958765ull}},
+ {{14211104948427408755ull, 16782063396729994089ull,
+ 11572566487303867297ull, 5307920566444974228ull}},
+ {{3928823130252097232ull, 7142521190630328900ull,
+ 14465708109129834122ull, 6634900708056217785ull}},
+ {{4911028912815121540ull, 18151523525142686933ull,
+ 4247077081130128940ull, 8293625885070272232ull}},
+ {{5375236079723144915ull, 2121330166359403525ull,
+ 2654423175706330588ull, 5183516178168920145ull}},
+ {{11330731118081319047ull, 2651662707949254406ull,
+ 7929714988060301139ull, 6479395222711150181ull}},
+ {{4940041860746873001ull, 17149636440218731720ull,
+ 14523829753502764327ull, 8099244028388937726ull}},
+ {{3087526162966795626ull, 17636051802777789181ull,
+ 4465707577511839800ull, 5062027517743086079ull}},
+ {{8471093722135882436ull, 3598320679762684860ull, 970448453462411847ull,
+ 6327534397178857599ull}},
+ {{10588867152669853045ull, 18332958904985519787ull,
+ 15048118622110178520ull, 7909417996473571998ull}},
+ {{4312198961204964201ull, 11458099315615949867ull,
+ 4793388120391473671ull, 4943386247795982499ull}},
+ {{778562683078817348ull, 9710938126092549430ull, 1380049132061954185ull,
+ 6179232809744978124ull}},
+ {{10196575390703297492ull, 16750358676043074691ull,
+ 1725061415077442731ull, 7724041012181222655ull}},
+ {{4067016609975866981ull, 8163131163313227730ull,
+ 7995692412064483563ull, 4827525632613264159ull}},
+ {{14307142799324609534ull, 5592227935714146758ull,
+ 5382929496653216550ull, 6034407040766580199ull}},
+ {{8660556462300986109ull, 16213656956497459256ull,
+ 2116975852389132783ull, 7543008800958225249ull}},
+ {{5412847788938116319ull, 17051064625451993891ull,
+ 12852324953811677749ull, 4714380500598890780ull}},
+ {{2154373717745257494ull, 7478772726532828652ull,
+ 16065406192264597187ull, 5892975625748613475ull}},
+ {{2692967147181571867ull, 4736779889738647911ull,
+ 15470071721903358580ull, 7366219532185766844ull}},
+ {{17201266989259128546ull, 5920974862173309888ull,
+ 890845578669646609ull, 9207774415232208556ull}},
+ {{10750791868286955342ull, 15229824334926788440ull,
+ 9780150523523304938ull, 5754859009520130347ull}},
+ {{13438489835358694177ull, 9813908381803709742ull,
+ 7613502135976743269ull, 7193573761900162934ull}},
+ {{7574740257343591913ull, 16879071495682025082ull,
+ 293505633116153278ull, 8991967202375203668ull}},
+ {{9345898679267132850ull, 5937733666373877772ull,
+ 9406813057552371607ull, 5619979501484502292ull}},
+ {{11682373349083916062ull, 2810481064539959311ull,
+ 11758516321940464509ull, 7024974376855627865ull}},
+ {{9991280667927507173ull, 8124787349102337043ull, 863087347143416924ull,
+ 8781217971069534832ull}},
+ {{3938707408240998032ull, 14301364130043736460ull,
+ 539429591964635577ull, 5488261231918459270ull}},
+ {{4923384260301247539ull, 4041647107272506863ull,
+ 9897659026810570280ull, 6860326539898074087ull}},
+ {{1542544306949171520ull, 5052058884090633579ull,
+ 7760387765085824946ull, 8575408174872592609ull}},
+ {{17104991256339089864ull, 7769222820984033890ull,
+ 16379457399247110351ull, 5359630109295370380ull}},
+ {{12157867033569086522ull, 5099842507802654459ull,
+ 2027577675349336323ull, 6699537636619212976ull}},
+ {{10585647773533970249ull, 1763117116325930170ull,
+ 2534472094186670404ull, 8374422045774016220ull}},
+ {{11227715876886119310ull, 10325320234558482164ull,
+ 10807417095721444810ull, 5234013778608760137ull}},
+ {{14034644846107649137ull, 3683278256343326897ull,
+ 18120957388079193917ull, 6542517223260950171ull}},
+ {{3708248002352397709ull, 9215783838856546526ull,
+ 18039510716671604492ull, 8178146529076187714ull}},
+ {{16152713056752412280ull, 14983236936140117386ull,
+ 15886380216347140711ull, 5111341580672617321ull}},
+ {{10967519284085739542ull, 14117360151747758829ull,
+ 6022917215151762177ull, 6389176975840771652ull}},
+ {{18321085123534562332ull, 3811642134402534824ull,
+ 7528646518939702722ull, 7986471219800964565ull}},
+ {{11450678202209101457ull, 6993962352428972169ull,
+ 7011247083551008153ull, 4991544512375602853ull}},
+ {{478289697479213110ull, 13354138958963603116ull,
+ 13375744872866148095ull, 6239430640469503566ull}},
+ {{597862121849016387ull, 12080987680277115991ull,
+ 7496309054227909311ull, 7799288300586879458ull}},
+ {{7291192853796717098ull, 14468146327814279350ull,
+ 9296879177319831223ull, 4874555187866799661ull}},
+ {{18337363104100672180ull, 13473496891340461283ull,
+ 16232784990077176933ull, 6093193984833499576ull}},
+ {{18310017861698452321ull, 3006813058893412892ull,
+ 1844237163886919551ull, 7616492481041874471ull}},
+ {{2220389126706756893ull, 8796787189449464914ull,
+ 8070177255070406575ull, 4760307800651171544ull}},
+ {{11998858445238221924ull, 6384297968384443238ull,
+ 10087721568838008219ull, 5950384750813964430ull}},
+ {{5775201019693001597ull, 3368686442053166144ull,
+ 3386279924192734466ull, 7437980938517455538ull}},
+ {{3609500637308125998ull, 6717115044710616744ull,
+ 6728110971047846945ull, 4648738086573409711ull}},
+ {{4511875796635157498ull, 13008079824315658834ull,
+ 3798452695382420777ull, 5810922608216762139ull}},
+ {{14863216782648722680ull, 2425041725112409830ull,
+ 136379850800638068ull, 7263653260270952674ull}},
+ {{9355648941456127542ull, 3031302156390512288ull,
+ 9393846850355573393ull, 9079566575338690842ull}},
+ {{5847280588410079714ull, 13423778893812539940ull,
+ 10482840299899621274ull, 5674729109586681776ull}},
+ {{7309100735512599642ull, 7556351580410899117ull,
+ 13103550374874526593ull, 7093411386983352220ull}},
+ {{13748061937818137457ull, 14057125493941011800ull,
+ 16379437968593158241ull, 8866764233729190275ull}},
+ {{8592538711136335911ull, 1868174406072050519ull,
+ 7931305721157029949ull, 5541727646080743922ull}},
+ {{6128987370493031984ull, 6946904026017451053ull, 690760114591511628ull,
+ 6927159557600929903ull}},
+ {{12272920231543677884ull, 8683630032521813816ull,
+ 14698508198521553247ull, 8658949447001162378ull}},
+ {{7670575144714798678ull, 12344797797967215491ull,
+ 13798253642503358683ull, 5411843404375726486ull}},
+ {{4976532912466110443ull, 10819311229031631460ull,
+ 8024445016274422546ull, 6764804255469658108ull}},
+ {{6220666140582638054ull, 4300766999434763517ull,
+ 10030556270343028183ull, 8456005319337072635ull}},
+ {{6193759347077842736ull, 9605508402287809054ull,
+ 3963254659750698662ull, 5285003324585670397ull}},
+ {{16965571220702079228ull, 2783513466004985509ull,
+ 9565754343115761232ull, 6606254155732087996ull}},
+ {{7371905970595435322ull, 3479391832506231887ull,
+ 11957192928894701540ull, 8257817694665109995ull}},
+ {{11524970259263228933ull, 11397991932171170737ull,
+ 5167402571345494510ull, 5161136059165693747ull}},
+ {{571154768796872454ull, 5024117878359187614ull, 1847567195754480234ull,
+ 6451420073957117184ull}},
+ {{9937315497850866375ull, 15503519384803760325ull,
+ 2309458994693100292ull, 8064275092446396480ull}},
+ {{8516665195370485437ull, 466327578647574395ull, 1443411871683187683ull,
+ 5040171932778997800ull}},
+ {{6034145475785718892ull, 14417967528591631706ull,
+ 1804264839603984603ull, 6300214915973747250ull}},
+ {{16766053881586924422ull, 13410773392312151728ull,
+ 11478703086359756562ull, 7875268644967184062ull}},
+ {{10478783675991827764ull, 12993419388622482734ull,
+ 2562503410547459947ull, 4922042903104490039ull}},
+ {{3875107558135008897ull, 11630088217350715514ull,
+ 17038187318466488646ull, 6152553628880612548ull}},
+ {{14067256484523536929ull, 5314238234833618584ull,
+ 2850990074373559192ull, 7690692036100765686ull}},
+ {{8792035302827210581ull, 3321398896771011615ull,
+ 15616926851765638207ull, 4806682522562978553ull}},
+ {{6378358110106625322ull, 17986806676245928231ull,
+ 5686100509424884046ull, 6008353153203723192ull}},
+ {{3361261619205893748ull, 13260136308452634481ull,
+ 7107625636781105058ull, 7510441441504653990ull}},
+ {{13630003558072153353ull, 12899271211210284454ull,
+ 18277324078270354373ull, 4694025900940408743ull}},
+ {{7814132410735415883ull, 2289030958730691856ull,
+ 18234969079410555063ull, 5867532376175510929ull}},
+ {{9767665513419269854ull, 16696346753695528532ull,
+ 8958653293981030116ull, 7334415470219388662ull}},
+ {{12209581891774087317ull, 2423689368409859049ull,
+ 1974944580621511838ull, 9168019337774235828ull}},
+ {{713459654717722717ull, 15349863910538325618ull,
+ 10457712399743220706ull, 5730012086108897392ull}},
+ {{10115196605251929205ull, 9963957851318131214ull,
+ 13072140499679025883ull, 7162515107636121740ull}},
+ {{3420623719710135698ull, 7843261295720276114ull,
+ 16340175624598782354ull, 8953143884545152175ull}},
+ {{6749575843246222715ull, 9513724328252560475ull,
+ 17130138793015320827ull, 5595714927840720109ull}},
+ {{3825283785630390490ull, 7280469391888312690ull,
+ 7577615435986987322ull, 6994643659800900137ull}},
+ {{14004976768892763920ull, 18323958776715166670ull,
+ 14083705313411122056ull, 8743304574751125171ull}},
+ {{4141424462130589546ull, 11452474235446979169ull,
+ 6496472811668257333ull, 5464565359219453232ull}},
+ {{9788466596090624837ull, 480534739026560249ull, 8120591014585321667ull,
+ 6830706699024316540ull}},
+ {{16847269263540668950ull, 14435726479065364023ull,
+ 10150738768231652083ull, 8538383373780395675ull}},
+ {{17447072317353999950ull, 6716486040202158562ull,
+ 4038368720931088600ull, 5336489608612747297ull}},
+ {{12585468359837724129ull, 8395607550252698203ull,
+ 9659646919591248654ull, 6670612010765934121ull}},
+ {{11120149431369767257ull, 1271137400961096946ull,
+ 16686244667916448722ull, 8338265013457417651ull}},
+ {{11561779413033492440ull, 5406146894028073495ull,
+ 8123059908234086499ull, 5211415633410886032ull}},
+ {{9840538247864477646ull, 2145997599107703965ull,
+ 10153824885292608124ull, 6514269541763607540ull}},
+ {{16912358828257984961ull, 2682496998884629956ull,
+ 12692281106615760155ull, 8142836927204509425ull}},
+ {{1346852230806464793ull, 17817461688798751387ull,
+ 1015146663993768240ull, 5089273079502818391ull}},
+ {{15518623343790244703ull, 3825083037288887617ull,
+ 15103991385274374013ull, 6361591349378522988ull}},
+ {{5563221124455642167ull, 9393039815038497426ull, 433245157883415900ull,
+ 7951989186723153736ull}},
+ {{8088699221212164258ull, 15094021921253836699ull,
+ 270778223677134937ull, 4969993241701971085ull}},
+ {{5499188008087817419ull, 5032469346285132162ull,
+ 4950158798023806576ull, 6212491552127463856ull}},
+ {{16097357046964547581ull, 6290586682856415202ull,
+ 6187698497529758220ull, 7765614440159329820ull}},
+ {{14672534172780230143ull, 13154988713640035309ull,
+ 13090683597810874695ull, 4853509025099581137ull}},
+ {{4505609660693123966ull, 11832049873622656233ull,
+ 2528296441981429657ull, 6066886281374476422ull}},
+ {{10243698094293792862ull, 955004286746156579ull,
+ 12383742589331562880ull, 7583607851718095527ull}},
+ {{4096468299719926587ull, 596877679216347862ull,
+ 14657368145973308656ull, 4739754907323809704ull}},
+ {{14343957411504684041ull, 746097099020434827ull,
+ 18321710182466635820ull, 5924693634154762130ull}},
+ {{13318260745953467147ull, 932621373775543534ull,
+ 13678765691228518967ull, 7405867042693452663ull}},
+ {{3712226947793529063ull, 7500417386250796565ull,
+ 15466757584658906210ull, 4628666901683407914ull}},
+ {{9251969703169299233ull, 152149695958719898ull,
+ 10110074943968856955ull, 5785833627104259893ull}},
+ {{2341590092106848233ull, 14025245175230563585ull,
+ 17249279698388459097ull, 7232292033880324866ull}},
+ {{7538673633560948195ull, 3696498413756040769ull,
+ 12338227586130798064ull, 9040365042350406083ull}},
+ {{16240886067044062382ull, 2310311508597525480ull,
+ 5405549232118054838ull, 5650228151469003802ull}},
+ {{1854363510095526362ull, 12111261422601682659ull,
+ 15980308577002344355ull, 7062785189336254752ull}},
+ {{16153012442901571664ull, 10527390759824715419ull,
+ 1528641647543378828ull, 8828481486670318441ull}},
+ {{7789789767599788338ull, 15802991261745222945ull,
+ 12484616075783081527ull, 5517800929168949025ull}},
+ {{14348923227927123327ull, 15142053058754140777ull,
+ 1770712039446688197ull, 6897251161461186282ull}},
+ {{4101095979626740446ull, 5092508268160512260ull,
+ 11436762086163136055ull, 8621563951826482852ull}},
+ {{11786557024121488587ull, 10100346695241402018ull,
+ 16371348340706735842ull, 5388477469891551782ull}},
+ {{5509824243297084926ull, 3402061332196976715ull,
+ 11240813389028643995ull, 6735596837364439728ull}},
+ {{2275594285693968253ull, 18087634720528384606ull,
+ 14051016736285804993ull, 8419496046705549660ull}},
+ {{15257304483840893870ull, 4387242672689158522ull,
+ 18005257497033403929ull, 5262185029190968537ull}},
+ {{9848258567946341530ull, 10095739359288836057ull,
+ 8671513816009591199ull, 6577731286488710672ull}},
+ {{16922009228360314816ull, 8007988180683657167ull,
+ 10839392270011988999ull, 8222164108110888340ull}},
+ {{17493784795366278616ull, 11922521640568367585ull,
+ 15997992205612268932ull, 5138852567569305212ull}},
+ {{8032172938925684558ull, 14903152050710459482ull,
+ 1550746183305784549ull, 6423565709461631516ull}},
+ {{816844136802329889ull, 4793882008105910641ull, 1938432729132230687ull,
+ 8029457136827039395ull}},
+ {{12039742631569925941ull, 9913705282707276006ull,
+ 17352421520203501843ull, 5018410710516899621ull}},
+ {{5826306252607631618ull, 7780445584956707104ull,
+ 7855468844972213592ull, 6273013388146124527ull}},
+ {{7282882815759539523ull, 9725556981195883880ull,
+ 5207650037787879086ull, 7841266735182655659ull}},
+ {{4551801759849712202ull, 1466787094820039521ull, 948938264403730477ull,
+ 4900791709489159787ull}},
+ {{10301438218239528156ull, 6445169886952437305ull,
+ 15021230885786826808ull, 6125989636861449733ull}},
+ {{17488483791226798099ull, 8056462358690546631ull,
+ 4941480551951369798ull, 7657487046076812167ull}},
+ {{17847831397157830668ull, 423602955754203740ull,
+ 10005954372610687980ull, 4785929403798007604ull}},
+ {{3863045172737736719ull, 529503694692754676ull,
+ 12507442965763359975ull, 5982411754747509505ull}},
+ {{4828806465922170899ull, 14496937673648107057ull,
+ 1799245651922036256ull, 7478014693434386882ull}},
+ {{14547219087269826572ull, 9060586046030066910ull,
+ 5736214550878660564ull, 4673759183396491801ull}},
+ {{8960651822232507407ull, 11325732557537583638ull,
+ 11781954207025713609ull, 5842198979245614751ull}},
+ {{1977442740935858450ull, 322107641639815836ull,
+ 10115756740354754108ull, 7302748724057018439ull}},
+ {{2471803426169823063ull, 402634552049769795ull, 8033009907016054731ull,
+ 9128435905071273049ull}},
+ {{17685778205851997078ull, 16392547659526963785ull,
+ 16549846237953503966ull, 5705272440669545655ull}},
+ {{8272164702032832636ull, 11267312537553928924ull,
+ 16075621779014492054ull, 7131590550836932069ull}},
+ {{10340205877541040795ull, 4860768635087635347ull,
+ 6259469168485951356ull, 8914488188546165087ull}},
+ {{4156785664249456545ull, 12261352433784547900ull,
+ 10829697257944801453ull, 5571555117841353179ull}},
+ {{5195982080311820681ull, 1491632486948521163ull,
+ 8925435554003613913ull, 6964443897301691474ull}},
+ {{1883291581962387947ull, 6476226627113039358ull,
+ 1933422405649741583ull, 8705554871627114343ull}},
+ {{15012115294008656179ull, 10965170669586731454ull,
+ 8125918031172170345ull, 5440971794766946464ull}},
+ {{9541772080656044416ull, 18318149355410802222ull,
+ 10157397538965212931ull, 6801214743458683080ull}},
+ {{2703843063965279712ull, 18286000675836114874ull,
+ 12696746923706516164ull, 8501518429323353850ull}},
+ {{6301587933405687724ull, 2205378385542795988ull,
+ 12547152845743960507ull, 5313449018327096156ull}},
+ {{7876984916757109655ull, 16591781037210658697ull,
+ 15683941057179950633ull, 6641811272908870195ull}},
+ {{14457917164373774972ull, 6904668241231159659ull,
+ 14993240303047550388ull, 8302264091136087744ull}},
+ {{6730355218519915406ull, 13538789687624250595ull,
+ 9370775189404718992ull, 5188915056960054840ull}},
+ {{3801258004722506353ull, 16923487109530313244ull,
+ 11713468986755898740ull, 6486143821200068550ull}},
+ {{4751572505903132941ull, 2707614813203339939ull,
+ 5418464196590097618ull, 8107679776500085688ull}},
+ {{663889806975764137ull, 6303945276679475366ull, 3386540122868811011ull,
+ 5067299860312553555ull}},
+ {{10053234295574480979ull, 3268245577421956303ull,
+ 18068233208868177476ull, 6334124825390691943ull}},
+ {{7954856851040713319ull, 4085306971777445379ull,
+ 17973605492657833941ull, 7917656031738364929ull}},
+ {{2665942522686751873ull, 4859159866574597314ull,
+ 4315974405270064357ull, 4948535019836478081ull}},
+ {{12555800190213215649ull, 10685635851645634546ull,
+ 10006654025014968350ull, 6185668774795597601ull}},
+ {{6471378200911743753ull, 4133672777702267375ull,
+ 17120003549696098342ull, 7732085968494497001ull}},
+ {{10962140403210921702ull, 16418603541346080821ull,
+ 3782473190918979607ull, 4832553730309060626ull}},
+ {{18314361522441040031ull, 15911568408255213122ull,
+ 13951463525503500317ull, 6040692162886325782ull}},
+ {{13669579866196524231ull, 6054402455036852691ull,
+ 8215957370024599589ull, 7550865203607907228ull}},
+ {{6237644407159133692ull, 6089844543611726884ull,
+ 14358345393120150551ull, 4719290752254942017ull}},
+ {{7797055508948917115ull, 3000619661087270701ull,
+ 4112873686118024477ull, 5899113440318677522ull}},
+ {{14358005404613534298ull, 8362460594786476280ull,
+ 14364464144502306404ull, 7373891800398346902ull}},
+ {{17947506755766917872ull, 10453075743483095350ull,
+ 8732208143773107197ull, 9217364750497933628ull}},
+ {{6605505703926935766ull, 8839015348890628546ull,
+ 14681002126712967806ull, 5760852969061208517ull}},
+ {{17480254166763445516ull, 1825397149258509874ull,
+ 4516194603109046046ull, 7201066211326510647ull}},
+ {{12626945671599531087ull, 11505118473427913151ull,
+ 1033557235458919653ull, 9001332764158138309ull}},
+ {{14809370072390788785ull, 9496542055106139671ull,
+ 2951816281375518735ull, 5625832977598836443ull}},
+ {{13900026572061098078ull, 7258991550455286685ull,
+ 17524828407001562131ull, 7032291221998545553ull}},
+ {{3539975159794208885ull, 4462053419641720453ull,
+ 8070977453469788952ull, 8790364027498181942ull}},
+ {{4518327484085074505ull, 2788783387276075283ull, 432674889991230191ull,
+ 5493977517186363714ull}},
+ {{1036223336678955227ull, 17321037289377257816ull,
+ 9764215649343813546ull, 6867471896482954642ull}},
+ {{1295279170848694034ull, 12427924574866796462ull,
+ 2981897524824991125ull, 8584339870603693303ull}},
+ {{14644607537062597484ull, 10073295868505441740ull,
+ 8781214980656701309ull, 5365212419127308314ull}},
+ {{18305759421328246854ull, 17203305854059190079ull,
+ 1753146688966100828ull, 6706515523909135393ull}},
+ {{18270513258232920664ull, 3057388243864435983ull,
+ 6803119379635013940ull, 8383144404886419241ull}},
+ {{18336599814036657271ull, 11134239689270048297ull,
+ 15781164658340353472ull, 5239465253054012025ull}},
+ {{9085691712263657877ull, 13917799611587560372ull,
+ 5891397767643278128ull, 6549331566317515032ull}},
+ {{11357114640329572346ull, 17397249514484450465ull,
+ 7364247209554097660ull, 8186664457896893790ull}},
+ {{180667622564900860ull, 1649908909698005733ull,
+ 18437712561253474750ull, 5116665286185558618ull}},
+ {{4837520546633513979ull, 11285758173977282974ull,
+ 13823768664712067629ull, 6395831607731948273ull}},
+ {{15270272720146668282ull, 272139662189440005ull,
+ 3444652775607920825ull, 7994789509664935342ull}},
+ {{11849763459305361628ull, 11699302334936869763ull,
+ 15987966040037114227ull, 4996743443540584588ull}},
+ {{10200518305704314131ull, 10012441900243699300ull,
+ 1538213476336841168ull, 6245929304425730736ull}},
+ {{12750647882130392664ull, 12515552375304624125ull,
+ 1922766845421051460ull, 7807411630532163420ull}},
+ {{10274997935545189367ull, 17045592271420165886ull,
+ 10425101315242932970ull, 4879632269082602137ull}},
+ {{3620375382576710901ull, 12083618302420431550ull,
+ 17643062662481054117ull, 6099540336353252671ull}},
+ {{13748841265075664434ull, 1269464822743375725ull,
+ 17442142309673929743ull, 7624425420441565839ull}},
+ {{10898868799885984223ull, 7710944541855691684ull,
+ 17818867971187287945ull, 4765265887775978649ull}},
+ {{13623585999857480279ull, 14250366695747002509ull,
+ 8438526908701946219ull, 5956582359719973312ull}},
+ {{3194424444539686637ull, 13201272351256365233ull,
+ 10548158635877432774ull, 7445727949649966640ull}},
+ {{13525730323905773908ull, 3639109201107840366ull,
+ 6592599147423395484ull, 4653579968531229150ull}},
+ {{7683790868027441577ull, 4548886501384800458ull,
+ 17464120971134020163ull, 5816974960664036437ull}},
+ {{381366548179526163ull, 1074422108303612669ull, 7995093158635361492ull,
+ 7271218700830045547ull}},
+ {{5088394203651795608ull, 1343027635379515836ull,
+ 5382180429866813961ull, 9089023376037556934ull}},
+ {{12403618414137148063ull, 12368607318180667157ull,
+ 17198920823948922437ull, 5680639610023473083ull}},
+ {{1669464962389271367ull, 1625701092443670235ull,
+ 16886965011508765143ull, 7100799512529341354ull}},
+ {{15921889258268752920ull, 15867184420836751505ull,
+ 11885334227531180620ull, 8875999390661676693ull}},
+ {{3033651758776888719ull, 693618226168193883ull, 9734176901420681840ull,
+ 5547499619163547933ull}},
+ {{17627122753753274611ull, 867022782710242353ull,
+ 16779407145203240204ull, 6934374523954434916ull}},
+ {{8198845386909429552ull, 1083778478387802942ull,
+ 2527514857794498639ull, 8667968154943043646ull}},
+ {{512592348391005566ull, 7594890576633458695ull,
+ 15414754841403725361ull, 5417480096839402278ull}},
+ {{14475798490770920669ull, 14105299239219211272ull,
+ 10045071514899880893ull, 6771850121049252848ull}},
+ {{18094748113463650837ull, 3796565993741850378ull,
+ 12556339393624851117ull, 8464812651311566060ull}},
+ {{15920903589342169677ull, 4678696755302350438ull,
+ 17071084157870307756ull, 5290507907069728787ull}},
+ {{10677757449822936288ull, 5848370944127938048ull,
+ 16727169178910496791ull, 6613134883837160984ull}},
+ {{13347196812278670360ull, 2698777661732534656ull,
+ 2462217399928569373ull, 8266418604796451231ull}},
+ {{8341998007674168975ull, 3992579047796528112ull,
+ 8456414902596437714ull, 5166511627997782019ull}},
+ {{10427497509592711219ull, 14214095846600435948ull,
+ 5958832609818159238ull, 6458139534997227524ull}},
+ {{13034371886990889024ull, 8544247771395769127ull,
+ 7448540762272699048ull, 8072674418746534405ull}},
+ {{15064011457010387496ull, 5340154857122355704ull,
+ 6961180985634130857ull, 5045421511716584003ull}},
+ {{383270247553432754ull, 11286879589830332535ull,
+ 4089790213615275667ull, 6306776889645730004ull}},
+ {{14314145864723954654ull, 9496913468860527764ull,
+ 5112237767019094584ull, 7883471112057162505ull}},
+ {{18169713202307247467ull, 5935570918037829852ull,
+ 14724363650455403875ull, 4927169445035726565ull}},
+ {{4265397429174507718ull, 2807777629119899412ull,
+ 4570396507787091132ull, 6158961806294658207ull}},
+ {{5331746786468134647ull, 3509722036399874265ull,
+ 1101309616306476011ull, 7698702257868322759ull}},
+ {{14861556787611053915ull, 18334477337245779079ull,
+ 7605847537832629362ull, 4811688911167701724ull}},
+ {{13965259966086429489ull, 13694724634702448041ull,
+ 9507309422290786703ull, 6014611138959627155ull}},
+ {{3621516902325873149ull, 12506719774950672148ull,
+ 7272450759436095475ull, 7518263923699533944ull}},
+ {{11486820100808446526ull, 5510856850130476140ull,
+ 4545281724647559672ull, 4698914952312208715ull}},
+ {{14358525126010558158ull, 6888571062663095175ull,
+ 1069916137382061686ull, 5873643690390260894ull}},
+ {{13336470389085809793ull, 17834085865183644777ull,
+ 10560767208582352915ull, 7342054612987826117ull}},
+ {{2835529931075098529ull, 17680921313052168068ull,
+ 17812645029155329048ull, 9177568266234782646ull}},
+ {{10995578243776712389ull, 11050575820657605042ull,
+ 6521217124794692751ull, 5735980166396739154ull}},
+ {{4521100767866114678ull, 9201533757394618399ull,
+ 17374893442848141747ull, 7169975207995923942ull}},
+ {{1039689941405255444ull, 6890231178315885095ull,
+ 12495244766705401376ull, 8962469009994904928ull}},
+ {{7567335241019366509ull, 4306394486447428184ull,
+ 7809527979190875860ull, 5601543131246815580ull}},
+ {{9459169051274208136ull, 5382993108059285230ull,
+ 9761909973988594825ull, 7001928914058519475ull}},
+ {{2600589277237984361ull, 11340427403501494442ull,
+ 7590701449058355627ull, 8752411142573149344ull}},
+ {{6237054316701128130ull, 4781924117974740074ull,
+ 4744188405661472267ull, 5470256964108218340ull}},
+ {{17019689932731185970ull, 1365719129041037188ull,
+ 5930235507076840334ull, 6837821205135272925ull}},
+ {{2827868342204430847ull, 10930520948156072294ull,
+ 12024480402273438321ull, 8547276506419091156ull}},
+ {{15602475769159932991ull, 18360790638666014943ull,
+ 16738672288275674758ull, 5342047816511931972ull}},
+ {{14891408693022528335ull, 13727616261477742871ull,
+ 2476596286635041832ull, 6677559770639914966ull}},
+ {{14002574847850772515ull, 17159520326847178589ull,
+ 12319117395148578098ull, 8346949713299893707ull}},
+ {{11057452289120426774ull, 15336386222706874522ull,
+ 5393605362754167359ull, 5216843570812433567ull}},
+ {{4598443324545757659ull, 14558796759956205249ull,
+ 2130320685015321295ull, 6521054463515541959ull}},
+ {{10359740174109584978ull, 13586809931517868657ull,
+ 16497958911551315331ull, 8151318079394427448ull}},
+ {{18004052654886960371ull, 6185913197984973958ull,
+ 10311224319719572082ull, 5094573799621517155ull}},
+ {{13281693781753924656ull, 16955763534335993256ull,
+ 8277344381222077198ull, 6368217249526896444ull}},
+ {{16602117227192405820ull, 11971332381065215762ull,
+ 10346680476527596498ull, 7960271561908620555ull}},
+ {{14988009285422641542ull, 12093768756593147755ull,
+ 4160832288616053859ull, 4975169726192887847ull}},
+ {{14123325588350914023ull, 10505524927314046790ull,
+ 589354342342679420ull, 6218962157741109809ull}},
+ {{8430784948583866721ull, 13131906159142558488ull,
+ 5348378946355737179ull, 7773702697176387261ull}},
+ {{5269240592864916701ull, 5901598340250405103ull,
+ 5648579850686029689ull, 4858564185735242038ull}},
+ {{1974864722653757972ull, 11988683943740394283ull,
+ 16284096850212312919ull, 6073205232169052547ull}},
+ {{16303638958599361176ull, 10374168911248104949ull,
+ 15743435044338003245ull, 7591506540211315684ull}},
+ {{12495617358338294687ull, 8789698578743759545ull,
+ 616274865856476220ull, 4744691587632072303ull}},
+ {{1784463642640704647ull, 10987123223429699432ull,
+ 14605401637602758987ull, 5930864484540090378ull}},
+ {{2230579553300880809ull, 9122218010859736386ull,
+ 9033380010148672926ull, 7413580605675112973ull}},
+ {{6005798239240438410ull, 1089700238359947337ull,
+ 7951705515556614531ull, 4633487878546945608ull}},
+ {{12118933817477935916ull, 15197183353232097883ull,
+ 9939631894445768163ull, 5791859848183682010ull}},
+ {{10536981253420031991ull, 14384793173112734450ull,
+ 3201167831202434396ull, 7239824810229602513ull}},
+ {{3947854529920264181ull, 17980991466390918063ull,
+ 8613145807430430899ull, 9049781012787003141ull}},
+ {{9384938108841246969ull, 8932276657280629837ull,
+ 7689059138857713264ull, 5656113132991876963ull}},
+ {{16342858654478946615ull, 11165345821600787296ull,
+ 4999637905144753676ull, 7070141416239846204ull}},
+ {{1981829244389131653ull, 13956682277000984121ull,
+ 6249547381430942095ull, 8837676770299807755ull}},
+ {{12767858323811677043ull, 15640455450766696931ull,
+ 1600124104180644857ull, 5523547981437379847ull}},
+ {{11348136886337208400ull, 5715511258176207452ull,
+ 15835213185507969784ull, 6904434976796724808ull}},
+ {{14185171107921510500ull, 7144389072720259315ull,
+ 1347272408175410614ull, 8630543720995906011ull}},
+ {{6559888933237250111ull, 18300301225732325784ull,
+ 16982946319605489297ull, 5394089825622441256ull}},
+ {{8199861166546562638ull, 9040318476883243518ull,
+ 2781938825797310006ull, 6742612282028051571ull}},
+ {{1026454421328427489ull, 2077026059249278590ull,
+ 17312481587528801220ull, 8428265352535064463ull}},
+ {{14476592068612430893ull, 10521513323885574926ull,
+ 17737830019846582618ull, 5267665845334415289ull}},
+ {{8872368048910762808ull, 3928519618002192850ull,
+ 8337229469526064561ull, 6584582306668019112ull}},
+ {{1867088024283677702ull, 9522335540930128967ull,
+ 10421536836907580701ull, 8230727883335023890ull}},
+ {{8084459042818380420ull, 8257302722295024556ull,
+ 11125146541494625842ull, 5144204927084389931ull}},
+ {{10105573803522975525ull, 1098256366014004887ull,
+ 9294747158440894399ull, 6430256158855487414ull}},
+ {{8020281235976331502ull, 15207878512799669821ull,
+ 2395061911196342190ull, 8037820198569359268ull}},
+ {{7318518781698901141ull, 4893238052072405734ull,
+ 10720285731352489677ull, 5023637624105849542ull}},
+ {{18371520513978402234ull, 10728233583517895071ull,
+ 4176985127335836288ull, 6279547030132311928ull}},
+ {{18352714624045614888ull, 13410291979397368839ull,
+ 5221231409169795360ull, 7849433787665389910ull}},
+ {{18387975667669591161ull, 8381432487123355524ull,
+ 17098327686013285812ull, 4905896117290868693ull}},
+ {{4538225510877437336ull, 10476790608904194406ull,
+ 7537851552234443553ull, 6132370146613585867ull}},
+ {{14896153925451572478ull, 17707674279557630911ull,
+ 4810628421865666537ull, 7665462683266982334ull}},
+ {{16227625231048314655ull, 4149767397082437463ull,
+ 16841700818948205298ull, 4790914177041863958ull}},
+ {{15672845520383005414ull, 14410581283207822637ull,
+ 11828753986830480814ull, 5988642721302329948ull}},
+ {{5755998845196593056ull, 8789854567155002489ull,
+ 14785942483538101018ull, 7485803401627912435ull}},
+ {{15126714324316340420ull, 10105345122899264459ull,
+ 6935371042997619184ull, 4678627126017445272ull}},
+ {{14296706886968037621ull, 12631681403624080574ull,
+ 8669213803747023980ull, 5848283907521806590ull}},
+ {{8647511571855271218ull, 15789601754530100718ull,
+ 1613145217829004167ull, 7310354884402258238ull}},
+ {{1586017427964313214ull, 15125316174735237994ull,
+ 11239803559141031017ull, 9137943605502822797ull}},
+ {{5602946910905083663ull, 2535793581568441890ull,
+ 9330720233676838338ull, 5711214753439264248ull}},
+ {{16227055675486130387ull, 12393114013815328170ull,
+ 11663400292096047922ull, 7139018441799080310ull}},
+ {{11060447557502887175ull, 6268020480414384405ull,
+ 5355878328265284095ull, 8923773052248850388ull}},
+ {{9218622732652998437ull, 10835041827900072109ull,
+ 12570795992020578367ull, 5577358157655531492ull}},
+ {{16134964434243635950ull, 8932116266447702232ull,
+ 15713494990025722959ull, 6971697697069414365ull}},
+ {{1721961469094993321ull, 6553459314632239887ull,
+ 5806810682249989987ull, 8714622121336767957ull}},
+ {{7993754945825452682ull, 1790069062431455977ull,
+ 5935099685619937694ull, 5446638825835479973ull}},
+ {{14603879700709203756ull, 11460958364894095779ull,
+ 12030560625452310021ull, 6808298532294349966ull}},
+ {{13643163607459116791ull, 491139900835456012ull,
+ 5814828744960611719ull, 8510373165367937458ull}},
+ {{17750349291516723803ull, 7224491465663241863ull,
+ 8245953984027770228ull, 5318983228354960911ull}},
+ {{17576250595968516849ull, 9030614332079052329ull,
+ 5695756461607324881ull, 6648729035443701139ull}},
+ {{8135255189678482349ull, 15899953933526203316ull,
+ 2508009558581768197ull, 8310911294304626424ull}},
+ {{14307906530403827277ull, 12243314217667571024ull,
+ 1567505974113605123ull, 5194319558940391515ull}},
+ {{17884883163004784096ull, 10692456753657075876ull,
+ 15794440522924170116ull, 6492899448675489393ull}},
+ {{3909359880046428503ull, 13365570942071344846ull,
+ 5907992598373048933ull, 8116124310844361742ull}},
+ {{16278407980311181527ull, 10659324848008284480ull,
+ 17527553429265319295ull, 5072577694277726088ull}},
+ {{1901265901679425292ull, 8712470041582967697ull,
+ 3462697712872097503ull, 6340722117847157611ull}},
+ {{6988268395526669519ull, 6278901533551321717ull,
+ 18163430196372285591ull, 7925902647308947013ull}},
+ {{6673510756417862402ull, 10841842486110657929ull,
+ 13657986881946372446ull, 4953689154568091883ull}},
+ {{12953574463949715906ull, 4328931070783546603ull,
+ 12460797584005577654ull, 6192111443210114854ull}},
+ {{11580282061509756978ull, 14634535875334209062ull,
+ 6352624943152196259ull, 7740139304012643568ull}},
+ {{2625990270016210208ull, 6840741912870186712ull,
+ 3970390589470122662ull, 4837587065007902230ull}},
+ {{3282487837520262760ull, 17774299427942509198ull,
+ 14186360273692429135ull, 6046983831259877787ull}},
+ {{13326481833755104257ull, 17606188266500748593ull,
+ 13121264323688148515ull, 7558729789074847234ull}},
+ {{1411522118455858305ull, 8698024657349273919ull,
+ 12812476220732480726ull, 4724206118171779521ull}},
+ {{15599460703351986593ull, 1649158784831816590ull,
+ 2180537220633437196ull, 5905257647714724402ull}},
+ {{10275953842335207433ull, 2061448481039770738ull,
+ 11949043562646572303ull, 7381572059643405502ull}},
+ {{11034157169886892550ull, 8205934328290938567ull,
+ 2856466208226719785ull, 4613482537277128439ull}},
+ {{9181010443931227783ull, 14869103928791061113ull,
+ 17405640815565563443ull, 5766853171596410548ull}},
+ {{16087949073341422633ull, 13974693892561438487ull,
+ 3310306945747402688ull, 7208566464495513186ull}},
+ {{15498250323249390387ull, 17468367365701798109ull,
+ 13361255719039029168ull, 9010708080619391482ull}},
+ {{11992249461244562944ull, 10917729603563623818ull,
+ 12962470842826781134ull, 5631692550387119676ull}},
+ {{5766939789700927872ull, 4423789967599753965ull,
+ 16203088553533476418ull, 7039615687983899595ull}},
+ {{11820360755553547744ull, 14753109496354468264ull,
+ 15642174673489457618ull, 8799519609979874494ull}},
+ {{7387725472220967340ull, 13832379453648930569ull,
+ 5164673152503523107ull, 5499699756237421559ull}},
+ {{13846342858703597079ull, 12678788298633775307ull,
+ 1844155422202015980ull, 6874624695296776949ull}},
+ {{12696242554952108445ull, 15848485373292219134ull,
+ 6916880296179907879ull, 8593280869120971186ull}},
+ {{3323465578417679874ull, 16822832385948718815ull,
+ 8934736203539830328ull, 5370800543200606991ull}},
+ {{17989390028304263555ull, 2581796408726346902ull,
+ 6556734235997400007ull, 6713500679000758739ull}},
+ {{13263365498525553635ull, 17062303566190097340ull,
+ 3584231776569362104ull, 8391875848750948424ull}},
+ {{17512975473433246830ull, 10663939728868810837ull,
+ 2240144860355851315ull, 5244922405469342765ull}},
+ {{8056161286509394826ull, 8718238642658625643ull,
+ 7411867093872202048ull, 6556153006836678456ull}},
+ {{5458515589709355628ull, 10897798303323282054ull,
+ 9264833867340252560ull, 8195191258545848070ull}},
+ {{17246630298850510980ull, 6811123939577051283ull,
+ 1178835148660269946ull, 5121994536591155044ull}},
+ {{16946601855135750820ull, 17737276961326089912ull,
+ 1473543935825337432ull, 6402493170738943805ull}},
+ {{2736508245210136909ull, 3724852127948060775ull,
+ 6453615938209059695ull, 8003116463423679756ull}},
+ {{8627846680897417424ull, 9245561607608619840ull,
+ 13256881998235438117ull, 5001947789639799847ull}},
+ {{10784808351121771780ull, 16168638027938162704ull,
+ 11959416479366909742ull, 6252434737049749809ull}},
+ {{13481010438902214725ull, 10987425498067927572ull,
+ 1114212543926473466ull, 7815543421312187262ull}},
+ {{17649003561168660012ull, 11478826954719842636ull,
+ 14531440895236209628ull, 4884714638320117038ull}},
+ {{3614510377751273398ull, 14348533693399803296ull,
+ 8940929082190486227ull, 6105893297900146298ull}},
+ {{4518137972189091748ull, 13323981098322366216ull,
+ 1952789315883331976ull, 7632366622375182873ull}},
+ {{2823836232618182343ull, 8327488186451478885ull,
+ 12749708368495552245ull, 4770229138984489295ull}},
+ {{8141481309200115832ull, 15021046251491736510ull,
+ 11325449442192052402ull, 5962786423730611619ull}},
+ {{953479599645368982ull, 9552935777509894830ull, 9545125784312677599ull,
+ 7453483029663264524ull}},
+ {{14430982805060519326ull, 12888113888584766124ull,
+ 15189075652050199307ull, 4658426893539540327ull}},
+ {{18038728506325649157ull, 11498456342303569751ull,
+ 14374658546635361230ull, 5823033616924425409ull}},
+ {{17936724614479673543ull, 5149698391024686381ull,
+ 4133265128012037826ull, 7278792021155531762ull}},
+ {{8585847712817428216ull, 15660495025635633785ull,
+ 14389953446869823090ull, 9098490026444414702ull}},
+ {{16895369866579362395ull, 14399495409449659019ull,
+ 4382034885866251527ull, 5686556266527759189ull}},
+ {{16507526314796815090ull, 13387683243384685870ull,
+ 10089229625760202313ull, 7108195333159698986ull}},
+ {{11411035856641243054ull, 2899545998948693626ull,
+ 3388164995345477084ull, 8885244166449623733ull}},
+ {{11743583428828164813ull, 11035588286197709324ull,
+ 4423446131304617129ull, 5553277604031014833ull}},
+ {{14679479286035206016ull, 18406171376174524559ull,
+ 10140993682558159315ull, 6941597005038768541ull}},
+ {{13737663089116619616ull, 18396028201790767795ull,
+ 17287928121625087048ull, 8676996256298460676ull}},
+ {{6280196421484193308ull, 11497517626119229872ull,
+ 1581583039160903597ull, 5423122660186537923ull}},
+ {{7850245526855241635ull, 536838977366873628ull,
+ 15812036854233293209ull, 6778903325233172403ull}},
+ {{9812806908569052044ull, 5282734740135979939ull,
+ 15153360049364228607ull, 8473629156541465504ull}},
+ {{3827161308641963576ull, 10219238240226069318ull,
+ 9470850030852642879ull, 5296018222838415940ull}},
+ {{14007323672657230277ull, 8162361781855198743ull,
+ 11838562538565803599ull, 6620022778548019925ull}},
+ {{12897468572394149943ull, 5591266208891610525ull,
+ 963145117925090787ull, 8275028473185024907ull}},
+ {{10366760866960037666ull, 1188698371343562626ull,
+ 16742866763199039406ull, 5171892795740640566ull}},
+ {{3735079046845271275ull, 10709245001034229091ull,
+ 11705211417144023449ull, 6464865994675800708ull}},
+ {{57162790129201189ull, 17998242269720174268ull,
+ 14631514271430029311ull, 8081082493344750885ull}},
+ {{9259098780685526552ull, 18166430446216190773ull,
+ 11450539428857462271ull, 5050676558340469303ull}},
+ {{16185559494284296093ull, 18096352039342850562ull,
+ 9701488267644439935ull, 6313345697925586629ull}},
+ {{11008577331000594309ull, 18008754030751175299ull,
+ 16738546352982937823ull, 7891682122406983286ull}},
+ {{4574517822661677491ull, 18173000296860566418ull,
+ 5849905452186948235ull, 4932301326504364554ull}},
+ {{14941519315181872672ull, 18104564352648320118ull,
+ 16535753852088461102ull, 6165376658130455692ull}},
+ {{9453527107122565031ull, 13407333403955624340ull,
+ 2222948241401024762ull, 7706720822663069616ull}},
+ {{15131826478806378953ull, 12991269395899653116ull,
+ 1389342650875640476ull, 4816700514164418510ull}},
+ {{468039024798422075ull, 16239086744874566396ull,
+ 10960050350449326403ull, 6020875642705523137ull}},
+ {{585048780998027594ull, 15687172412665820091ull,
+ 18311748956489045908ull, 7526094553381903921ull}},
+ {{16506556552619624910ull, 581110721061361748ull,
+ 4527314070164571837ull, 4703809095863689951ull}},
+ {{2186451617064979522ull, 5338074419754090090ull,
+ 1047456569278326892ull, 5879761369829612439ull}},
+ {{11956436558186000210ull, 6672593024692612612ull,
+ 15144378766880072327ull, 7349701712287015548ull}},
+ {{14945545697732500262ull, 3729055262438377861ull,
+ 483729384890538793ull, 9187127140358769436ull}},
+ {{11646809070296506616ull, 13859874585092455923ull,
+ 9525702902411362553ull, 5741954462724230897ull}},
+ {{9946825319443245366ull, 3489785176083406192ull,
+ 16518814646441591096ull, 7177443078405288621ull}},
+ {{12433531649304056707ull, 4362231470104257740ull,
+ 6813460252769825158ull, 8971803848006610777ull}},
+ {{16994329317669811250ull, 16561452724097324799ull,
+ 15787627704049610483ull, 5607377405004131735ull}},
+ {{16631225628659876159ull, 16090129886694268095ull,
+ 15122848611634625200ull, 7009221756255164669ull}},
+ {{16177346017397457294ull, 1665918284658283503ull,
+ 5068502709261117789ull, 8761527195318955837ull}},
+ {{17028370288514492665ull, 3347041937125121141ull,
+ 5473657202501892570ull, 5475954497074347398ull}},
+ {{7450404805360952119ull, 13407174458261177235ull,
+ 16065443539982141520ull, 6844943121342934247ull}},
+ {{4701319988273802245ull, 16758968072826471544ull,
+ 15470118406550288996ull, 8556178901678667809ull}},
+ {{2938324992671126403ull, 1250983008661768907ull,
+ 2751294976452848767ull, 5347611813549167381ull}},
+ {{17507964296121071716ull, 15398786816109374845ull,
+ 8050804738993448862ull, 6684514766936459226ull}},
+ {{8049897314869175933ull, 10025111483281942749ull,
+ 840133886887035270ull, 8355643458670574033ull}},
+ {{7337028831006928910ull, 1654008658623826314ull,
+ 12054298725372866804ull, 5222277161669108770ull}},
+ {{18394658075613436946ull, 2067510823279782892ull,
+ 5844501369861307697ull, 6527846452086385963ull}},
+ {{4546578520807244566ull, 7196074547527116520ull,
+ 2693940693899246717ull, 8159808065107982454ull}},
+ {{2841611575504527854ull, 6803389601418141777ull,
+ 15518770988969192910ull, 5099880040692489033ull}},
+ {{8163700487808047721ull, 17727609038627453029ull,
+ 5563405680929327425ull, 6374850050865611292ull}},
+ {{14816311628187447555ull, 8324453243002152574ull,
+ 6954257101161659282ull, 7968562563582014115ull}},
+ {{4648508749189766818ull, 9814469295303733263ull,
+ 2040567679012343099ull, 4980351602238758822ull}},
+ {{1198949918059820619ull, 7656400600702278675ull,
+ 11774081635620204682ull, 6225439502798448527ull}},
+ {{15333745452856939485ull, 347128714023072535ull,
+ 10105916026097867949ull, 7781799378498060659ull}},
+ {{16501119935676669034ull, 2522798455478114286ull,
+ 4010354507097473516ull, 4863624611561287912ull}},
+ {{11403027882741060485ull, 3153498069347642858ull,
+ 5012943133871841895ull, 6079530764451609890ull}},
+ {{5030412816571549798ull, 17776930641966717285ull,
+ 15489550954194578176ull, 7599413455564512362ull}},
+ {{5449851019570912576ull, 11110581651229198303ull,
+ 14292655364798999264ull, 4749633409727820226ull}},
+ {{2200627756036252816ull, 13888227064036497879ull,
+ 8642447169143973272ull, 5937041762159775283ull}},
+ {{16585842750327479732ull, 17360283830045622348ull,
+ 6191372943002578686ull, 7421302202699719104ull}},
+ {{1142779682099899025ull, 6238491375351126064ull,
+ 3869608089376611679ull, 4638313876687324440ull}},
+ {{1428474602624873781ull, 3186428200761519676ull,
+ 4837010111720764599ull, 5797892345859155550ull}},
+ {{1785593253281092226ull, 17818093306234063307ull,
+ 15269634676505731556ull, 7247365432323944437ull}},
+ {{16067049621883528994ull, 3825872559083027517ull,
+ 5251985290350000734ull, 9059206790404930547ull}},
+ {{12347749022890899573ull, 16226228404709055910ull,
+ 976647797255056506ull, 5662004244003081592ull}},
+ {{6211314241758848658ull, 11059413469031544080ull,
+ 1220809746568820633ull, 7077505305003851990ull}},
+ {{7764142802198560823ull, 18435952854716818004ull,
+ 10749384220065801599ull, 8846881631254814987ull}},
+ {{14075961288228876323ull, 18439999561839093108ull,
+ 4412522128327432047ull, 5529301019534259367ull}},
+ {{17594951610286095403ull, 18438313433871478481ull,
+ 903966641981902155ull, 6911626274417824209ull}},
+ {{8158631457575455542ull, 18436205773911960198ull,
+ 5741644320904765598ull, 8639532843022280261ull}},
+ {{487458642557271810ull, 6910942590267587220ull, 5894370709779172451ull,
+ 5399708026888925163ull}},
+ {{609323303196589762ull, 4026992219407096121ull, 2756277368796577660ull,
+ 6749635033611156454ull}},
+ {{5373340147423125106ull, 5033740274258870151ull,
+ 12668718747850497883ull, 8437043792013945567ull}},
+ {{10275866619780535048ull, 840244662198099892ull,
+ 14835478245047643033ull, 5273152370008715979ull}},
+ {{12844833274725668810ull, 5661991846175012769ull,
+ 13932661787882165887ull, 6591440462510894974ull}},
+ {{2220983538124922300ull, 2465803789291378058ull,
+ 8192455197997931551ull, 8239300578138618718ull}},
+ {{5999800729755464342ull, 8458656395948193142ull, 508598480321319315ull,
+ 5149562861336636699ull}},
+ {{16723122949049106235ull, 5961634476507853523ull,
+ 14470806155683812856ull, 6436953576670795873ull}},
+ {{16292217667883994889ull, 7452043095634816904ull,
+ 4253449639322602358ull, 8046191970838494842ull}},
+ {{10182636042427496806ull, 45840916344372661ull, 7270092043004014378ull,
+ 5028869981774059276ull}},
+ {{17339981071461758911ull, 9280673182285241634ull,
+ 9087615053755017972ull, 6286087477217574095ull}},
+ {{12451604302472422831ull, 11600841477856552043ull,
+ 6747832798766384561ull, 7857609346521967619ull}},
+ {{5476409679831570318ull, 332996896019263171ull, 1911552490015296399ull,
+ 4911005841576229762ull}},
+ {{2233826081362074993ull, 14251304175306242676ull,
+ 11612812649373896306ull, 6138757301970287202ull}},
+ {{2792282601702593741ull, 8590758182278027537ull,
+ 5292643774862594575ull, 7673446627462859003ull}},
+ {{13274391672132590848ull, 12286752891564849066ull,
+ 1002059350075427657ull, 4795904142164286877ull}},
+ {{7369617553310962752ull, 1523383059173897621ull,
+ 5864260206021672476ull, 5994880177705358596ull}},
+ {{13823707960066091344ull, 1904228823967372026ull,
+ 7330325257527090595ull, 7493600222131698245ull}},
+ {{13251503493468694994ull, 17331044079475465180ull,
+ 6887296295168125573ull, 4683500138832311403ull}},
+ {{16564379366835868743ull, 7828747044062167763ull,
+ 3997434350532769063ull, 5854375173540389254ull}},
+ {{16093788190117448024ull, 5174247786650321800ull,
+ 14220164975020737137ull, 7317968966925486567ull}},
+ {{1670491163937258414ull, 11079495751740290155ull,
+ 13163520200348533517ull, 9147461208656858209ull}},
+ {{17184958041956644173ull, 9230527854051375298ull,
+ 1309671097576751592ull, 5717163255410536381ull}},
+ {{12257825515591029408ull, 11538159817564219123ull,
+ 6248774890398327394ull, 7146454069263170476ull}},
+ {{10710595876061398856ull, 5199327735100498096ull,
+ 7810968612997909243ull, 8933067586578963095ull}},
+ {{6694122422538374285ull, 943736825224117358ull,
+ 11799384410764775133ull, 5583167241611851934ull}},
+ {{17591025065027743665ull, 5791357049957534601ull,
+ 5525858476601193108ull, 6978959052014814918ull}},
+ {{8153723276002515869ull, 7239196312446918252ull,
+ 16130695132606267193ull, 8723698815018518647ull}},
+ {{14319449084356348226ull, 16053712741347793667ull,
+ 16999213485519998851ull, 5452311759386574154ull}},
+ {{13287625337018047378ull, 15455454908257354180ull,
+ 12025644820045222756ull, 6815389699233217693ull}},
+ {{16609531671272559223ull, 872574561612141109ull,
+ 1196997969774364734ull, 8519237124041522117ull}},
+ {{12686800303759043467ull, 14380417156289751905ull,
+ 3053966740322671910ull, 5324523202525951323ull}},
+ {{2023442324416640621ull, 8752149408507414074ull,
+ 17652516480685503600ull, 6655654003157439153ull}},
+ {{11752674942375576584ull, 10940186760634267592ull,
+ 8230587545574715788ull, 8319567503946798942ull}},
+ {{7345421838984735365ull, 16060988762251193053ull,
+ 532431197556809463ull, 5199729689966749339ull}},
+ {{13793463317158307111ull, 15464549934386603412ull,
+ 14500597052228175541ull, 6499662112458436673ull}},
+ {{17241829146447883888ull, 5495629362701090553ull,
+ 4290688260003055715ull, 8124577640573045842ull}},
+ {{3858614188888845574ull, 1128925342474487644ull,
+ 7293366180929297726ull, 5077861025358153651ull}},
+ {{4823267736111056968ull, 10634528714947885363ull,
+ 4505021707734234253ull, 6347326281697692064ull}},
+ {{1417398651711433305ull, 17904846912112244608ull,
+ 5631277134667792816ull, 7934157852122115080ull}},
+ {{885874157319645816ull, 11190529320070152880ull,
+ 3519548209167370510ull, 4958848657576321925ull}},
+ {{1107342696649557270ull, 4764789613232915292ull,
+ 9011121279886601042ull, 6198560821970402406ull}},
+ {{1384178370811946587ull, 15179359053395919923ull,
+ 2040529563003475494ull, 7748201027463003008ull}},
+ {{17006012546253324281ull, 4875413389945062047ull,
+ 1275330976877172184ull, 4842625642164376880ull}},
+ {{16645829664389267447ull, 6094266737431327559ull,
+ 1594163721096465230ull, 6053282052705471100ull}},
+ {{16195601062059196405ull, 16841205458643935257ull,
+ 1992704651370581537ull, 7566602565881838875ull}},
+ {{3204721636145915897ull, 3608224384011377680ull,
+ 17386341471602471125ull, 4729126603676149296ull}},
+ {{4005902045182394872ull, 9121966498441610004ull,
+ 3286182765793537290ull, 5911408254595186621ull}},
+ {{5007377556477993589ull, 2179086086197236697ull,
+ 8719414475669309517ull, 7389260318243983276ull}},
+ {{14658826018867215754ull, 3667771813086966887ull,
+ 14673006084148094256ull, 4618287698902489547ull}},
+ {{13711846505156631788ull, 4584714766358708609ull,
+ 13729571586757729916ull, 5772859623628111934ull}},
+ {{3304750076163626023ull, 5730893457948385762ull,
+ 7938592446592386587ull, 7216074529535139918ull}},
+ {{13354309632059308336ull, 2551930804008094298ull,
+ 699868521385707426ull, 9020093161918924898ull}},
+ {{12958129538464455614ull, 6206642770932446840ull,
+ 5049103844293455045ull, 5637558226199328061ull}},
+ {{16197661923080569518ull, 12369989482092946454ull,
+ 10923065823794206710ull, 7046947782749160076ull}},
+ {{11023705366995936089ull, 6239114815761407260ull,
+ 13653832279742758388ull, 8808684728436450095ull}},
+ {{16113187891227235864ull, 13122818796705655345ull,
+ 15451174202480305848ull, 5505427955272781309ull}},
+ {{6306426808751881118ull, 16403523495882069182ull,
+ 5478909697818218598ull, 6881784944090976637ull}},
+ {{17106405547794627205ull, 11281032332997810669ull,
+ 11460323140700161152ull, 8602231180113720796ull}},
+ {{12997346476585335955ull, 7050645208123631668ull,
+ 16386073999792376528ull, 5376394487571075497ull}},
+ {{16246683095731669944ull, 8813306510154539585ull,
+ 6647534444458306948ull, 6720493109463844372ull}},
+ {{6473295814382423718ull, 11016633137693174482ull,
+ 8309418055572883685ull, 8400616386829805465ull}},
+ {{8657495902416402728ull, 9191238720271928003ull,
+ 16722601330801522063ull, 5250385241768628415ull}},
+ {{6210183859593115506ull, 6877362381912522100ull,
+ 16291565645074514675ull, 6562981552210785519ull}},
+ {{7762729824491394382ull, 3985016958963264721ull,
+ 15752771037915755440ull, 8203726940263481899ull}},
+ {{16380921186375591249ull, 2490635599352040450ull,
+ 7539638889483653198ull, 5127329337664676187ull}},
+ {{11252779446114713253ull, 12336666536044826371ull,
+ 4812862593427178593ull, 6409161672080845234ull}},
+ {{9454288289216003662ull, 1585775114773869252ull,
+ 15239450278638749050ull, 8011452090101056542ull}},
+ {{15132302217614778097ull, 5602795465161056186ull,
+ 4912970405721830252ull, 5007157556313160339ull}},
+ {{9692005735163696813ull, 7003494331451320233ull,
+ 1529526988724899911ull, 6258946945391450424ull}},
+ {{16726693187382008920ull, 4142681895886762387ull,
+ 1911908735906124889ull, 7823683681739313030ull}},
+ {{8148340232900061623ull, 14118391230997696252ull,
+ 15030001015223491767ull, 4889802301087070643ull}},
+ {{10185425291125077029ull, 13036303020319732411ull,
+ 14175815250601976805ull, 6112252876358838304ull}},
+ {{8120095595478958382ull, 2460320720117501802ull,
+ 17719769063252471007ull, 7640316095448547880ull}},
+ {{9686745765601736893ull, 8455229477714520482ull,
+ 11074855664532794379ull, 4775197559655342425ull}},
+ {{2885060170147395308ull, 5957350828715762699ull, 8511525383829262ull,
+ 5968996949569178032ull}},
+ {{17441383267966407847ull, 16670060572749479181ull,
+ 10639406729786577ull, 7461246186961472540ull}},
+ {{13206707551692698857ull, 3501258830327342632ull,
+ 9230021666060892419ull, 4663278866850920337ull}},
+ {{16508384439615873571ull, 18211631593191342002ull,
+ 16149213101003503427ull, 5829098583563650421ull}},
+ {{11412108512665066155ull, 18152853473061789599ull,
+ 6351458320972215572ull, 7286373229454563027ull}},
+ {{9653449622403944790ull, 4244322767617685383ull,
+ 3327636882787881562ull, 9107966536818203784ull}},
+ {{12950935041643547350ull, 7264387748188441268ull,
+ 2079773051742425976ull, 5692479085511377365ull}},
+ {{16188668802054434187ull, 9080484685235551585ull,
+ 7211402333105420374ull, 7115598856889221706ull}},
+ {{6400777947285879022ull, 2127233819689663674ull,
+ 18237624953236551276ull, 8894498571111527132ull}},
+ {{8612172235481062293ull, 10552893174160815604ull,
+ 2175143558918068739ull, 5559061606944704458ull}},
+ {{10765215294351327866ull, 8579430449273631601ull,
+ 11942301485502361732ull, 6948827008680880572ull}},
+ {{18068205136366547737ull, 10724288061592039501ull,
+ 14927876856877952165ull, 8686033760851100715ull}},
+ {{13598471219442786288ull, 9008523047708718640ull,
+ 7024080026335026151ull, 5428771100531937947ull}},
+ {{16998089024303482859ull, 6648967791208510396ull,
+ 4168414014491394785ull, 6785963875664922434ull}},
+ {{2800867206669801958ull, 12922895757438025900ull,
+ 14433889554969019289ull, 8482454844581153042ull}},
+ {{10973914041023402032ull, 1159280820757684331ull,
+ 13632866990283024960ull, 5301534277863220651ull}},
+ {{9105706532851864636ull, 1449101025947105414ull,
+ 12429397719426393296ull, 6626917847329025814ull}},
+ {{2158761129210054987ull, 1811376282433881768ull,
+ 6313375112428215812ull, 8283647309161282268ull}},
+ {{1349225705756284367ull, 10355482213375951913ull,
+ 13169231482122410690ull, 5177279568225801417ull}},
+ {{6298218150622743362ull, 3720980729865164083ull,
+ 2626481297370849651ull, 6471599460282251772ull}},
+ {{3261086669851041299ull, 39539893904067200ull, 3283101621713562064ull,
+ 8089499325352814715ull}},
+ {{2038179168656900812ull, 24712433690042000ull, 18192839578066833954ull,
+ 5055937078345509196ull}},
+ {{2547723960821126015ull, 9254262578967328308ull,
+ 4294305398873990826ull, 6319921347931886496ull}},
+ {{3184654951026407518ull, 2344456186854384577ull,
+ 5367881748592488533ull, 7899901684914858120ull}},
+ {{13519624390459974459ull, 3771128125997684312ull,
+ 3354926092870305333ull, 4937438553071786325ull}},
+ {{16899530488074968074ull, 9325596175924493294ull,
+ 8805343634515269570ull, 6171798191339732906ull}},
+ {{11901041073238934284ull, 2433623183050840810ull,
+ 1783307506289311155ull, 7714747739174666133ull}},
+ {{12049836689201721832ull, 17661915553902633170ull,
+ 3420410200644513423ull, 4821717336984166333ull}},
+ {{5838923824647376482ull, 17465708423950903559ull,
+ 8887198769233029683ull, 6027146671230207916ull}},
+ {{2686968762381832698ull, 17220449511511241545ull,
+ 11108998461541287104ull, 7533933339037759895ull}},
+ {{13208570522557115196ull, 10762780944694525965ull,
+ 13860653066104386296ull, 4708708336898599934ull}},
+ {{2675655097914230283ull, 13453476180868157457ull,
+ 8102444295775707062ull, 5885885421123249918ull}},
+ {{7956254890820175758ull, 7593473189230421013ull, 904683332864858020ull,
+ 7357356776404062398ull}},
+ {{14557004631952607602ull, 9491841486538026266ull,
+ 10354226202935848333ull, 9196695970505077997ull}},
+ {{13709813913397767655ull, 8238243938299960368ull,
+ 8777234386048599160ull, 5747934981565673748ull}},
+ {{17137267391747209569ull, 10297804922874950460ull,
+ 10971542982560748950ull, 7184918726957092185ull}},
+ {{2974840165974460345ull, 3648884116738912268ull,
+ 18326114746628324092ull, 8981148408696365231ull}},
+ {{11082647140588813524ull, 11503924609816595975ull,
+ 18371350744283784413ull, 5613217755435228269ull}},
+ {{9241622907308629001ull, 544847706988581257ull, 9129130375072566805ull,
+ 7016522194294035337ull}},
+ {{16163714652563174155ull, 5292745652163114475ull,
+ 16023098987268096410ull, 8770652742867544171ull}},
+ {{7796478648638289895ull, 7919652051029334451ull,
+ 7708593857828866304ull, 5481657964292215107ull}},
+ {{5133912292370474464ull, 9899565063786668064ull,
+ 5024056303858694976ull, 6852072455365268884ull}},
+ {{6417390365463093080ull, 12374456329733335080ull,
+ 6280070379823368720ull, 8565090569206586105ull}},
+ {{4010868978414433175ull, 7734035206083334425ull,
+ 15454259033458075210ull, 5353181605754116315ull}},
+ {{9625272241445429373ull, 444171970749392223ull,
+ 14706137773395206109ull, 6691477007192645394ull}},
+ {{7419904283379398812ull, 5166900981864128183ull,
+ 9159300179889231828ull, 8364346258990806743ull}},
+ {{11554969204753206114ull, 12452685150519855922ull,
+ 12642091640071851748ull, 5227716411869254214ull}},
+ {{5220339469086731834ull, 15565856438149819903ull,
+ 6579242513235038877ull, 6534645514836567768ull}},
+ {{1913738317931026889ull, 5622262492405111167ull,
+ 8224053141543798597ull, 8168306893545709710ull}},
+ {{8113615476347973662ull, 5819757066966888431ull, 528347195037486219ull,
+ 5105191808466068569ull}},
+ {{5530333327007579173ull, 2663010315281222635ull,
+ 5272120012224245678ull, 6381489760582585711ull}},
+ {{2301230640332086062ull, 12552134930956304102ull,
+ 1978463996852919193ull, 7976862200728232139ull}},
+ {{15273327205489717501ull, 927555304206608207ull,
+ 17377441062528932160ull, 4985538875455145086ull}},
+ {{14479972988434758972ull, 1159444130258260259ull,
+ 12498429291306389392ull, 6231923594318931358ull}},
+ {{13488280217116060811ull, 1449305162822825324ull,
+ 6399664577278210932ull, 7789904492898664198ull}},
+ {{17653547172552313815ull, 10129187763619041635ull,
+ 17834848416081045544ull, 4868690308061665123ull}},
+ {{17455247947263004365ull, 12661484704523802044ull,
+ 17681874501673919026ull, 6085862885077081404ull}},
+ {{3372315860369203840ull, 6603483843799976748ull,
+ 3655599053382847167ull, 7607328606346351756ull}},
+ {{11331069449585528208ull, 11044706430016067323ull,
+ 11508121445219055287ull, 4754580378966469847ull}},
+ {{9552150793554522356ull, 9194197019092696250ull,
+ 9773465788096431205ull, 5943225473708087309ull}},
+ {{2716816455088377137ull, 16104432292293258217ull,
+ 16828518253547926910ull, 7429031842135109136ull}},
+ {{13227225330498705471ull, 5453584164255898481ull,
+ 10517823908467454319ull, 4643144901334443210ull}},
+ {{2698973607841218126ull, 2205294186892485198ull,
+ 3923907848729542091ull, 5803931126668054013ull}},
+ {{12597089046656298466ull, 16591675788897770209ull,
+ 9516570829339315517ull, 7254913908335067516ull}},
+ {{1911303253038209370ull, 6904536680840049050ull,
+ 11895713536674144397ull, 9068642385418834395ull}},
+ {{5806250551576268760ull, 6621178434738724608ull,
+ 5128977951207646296ull, 5667901490886771497ull}},
+ {{7257813189470335950ull, 8276473043423405760ull,
+ 11022908457436945774ull, 7084876863608464371ull}},
+ {{9072266486837919938ull, 1122219267424481392ull,
+ 9166949553368794314ull, 8856096079510580464ull}},
+ {{5670166554273699961ull, 5313073060567688774ull,
+ 5729343470855496446ull, 5535060049694112790ull}},
+ {{16311080229696900759ull, 15864713362564386775ull,
+ 16385051375424146365ull, 6918825062117640987ull}},
+ {{15777164268693738045ull, 5995833647923319757ull,
+ 15869628200852795053ull, 8648531327647051234ull}},
+ {{12166570677147280230ull, 6053239039165768800ull,
+ 14530203643960384812ull, 5405332079779407021ull}},
+ {{15208213346434100288ull, 7566548798957211000ull,
+ 4327696499668317303ull, 6756665099724258777ull}},
+ {{563522609333073744ull, 4846499980269125847ull,
+ 10021306643012784533ull, 8445831374655323471ull}},
+ {{7269730658474252946ull, 5334905496881897606ull,
+ 13180845679524072189ull, 5278644609159577169ull}},
+ {{18310535359947591990ull, 11280317889529759911ull,
+ 2640999044122926524ull, 6598305761449471462ull}},
+ {{18276483181507102084ull, 14100397361912199889ull,
+ 12524620842008433963ull, 8247882201811839327ull}},
+ {{4505272960800856947ull, 6506905341981430979ull,
+ 14745417053896353083ull, 5154926376132399579ull}},
+ {{1019905182573683279ull, 3521945659049400820ull,
+ 13820085298943053450ull, 6443657970165499474ull}},
+ {{1274881478217104099ull, 13625804110666526833ull,
+ 8051734586824041004ull, 8054572462706874343ull}},
+ {{12326015969954159822ull, 17739499606021355078ull,
+ 11949863144406107483ull, 5034107789191796464ull}},
+ {{6184147925587923969ull, 17562688489099305944ull,
+ 14937328930507634354ull, 6292634736489745580ull}},
+ {{7730184906984904961ull, 12729988574519356622ull,
+ 224917089424991327ull, 7865793420612181976ull}},
+ {{219679548438177697ull, 14873771886715679745ull, 140573180890619579ull,
+ 4916120887882613735ull}},
+ {{4886285453975110025ull, 13980528839967211777ull,
+ 14010774531395438186ull, 6145151109853267168ull}},
+ {{10719542835896275435ull, 8252289013104238913ull,
+ 17513468164244297733ull, 7681438887316583960ull}},
+ {{18228929318503641907ull, 7463523642403843272ull,
+ 10945917602652686083ull, 4800899304572864975ull}},
+ {{4339417574420000768ull, 4717718534577416187ull,
+ 9070710984888469700ull, 6001124130716081219ull}},
+ {{812585949597613056ull, 5897148168221770234ull, 6726702712683199221ull,
+ 7501405163395101524ull}},
+ {{5119552236925896064ull, 5991560614352300348ull,
+ 13427561232281775321ull, 4688378227121938452ull}},
+ {{6399440296157370080ull, 12101136786367763339ull,
+ 16784451540352219151ull, 5860472783902423065ull}},
+ {{3387614351769324696ull, 10514734964532316270ull,
+ 7145506370158110227ull, 7325590979878028832ull}},
+ {{13457889976566431678ull, 8531732687238007433ull,
+ 8931882962697637784ull, 9156988724847536040ull}},
+ {{1493652207712937943ull, 5332332929523754646ull,
+ 5582426851686023615ull, 5723117953029710025ull}},
+ {{11090437296495948236ull, 2053730143477305403ull,
+ 11589719583034917423ull, 7153897441287137531ull}},
+ {{9251360602192547391ull, 16402220734628795466ull,
+ 9875463460366258874ull, 8942371801608921914ull}},
+ {{10393786394797730024ull, 14863073977570385070ull,
+ 10783850681156299700ull, 5588982376005576196ull}},
+ {{3768860956642386722ull, 132098398253429722ull,
+ 13479813351445374626ull, 6986227970006970245ull}},
+ {{13934448232657759210ull, 9388495034671562960ull,
+ 3014708634024554570ull, 8732784962508712807ull}},
+ {{8709030145411099506ull, 10479495415097114754ull,
+ 8801721923906428462ull, 5457990601567945504ull}},
+ {{1662915644909098575ull, 3875997232016617635ull,
+ 11002152404883035578ull, 6822488251959931880ull}},
+ {{15913702611418536930ull, 14068368576875547851ull,
+ 13752690506103794472ull, 8528110314949914850ull}},
+ {{7640221122922891630ull, 8792730360547217407ull,
+ 13207117584742259449ull, 5330068946843696781ull}},
+ {{4938590385226226633ull, 15602598969111409663ull,
+ 2673838925645660599ull, 6662586183554620977ull}},
+ {{1561551963105395387ull, 14891562692961874175ull,
+ 7953984675484463653ull, 8328232729443276221ull}},
+ {{7893499004581953973ull, 11613069692314865311ull,
+ 7277083431391483735ull, 5205145455902047638ull}},
+ {{5255187737300054562ull, 9904651096966193735ull,
+ 18319726326094130477ull, 6506431819877559547ull}},
+ {{1957298653197680299ull, 16992499889635130073ull,
+ 18287971889190275192ull, 8133039774846949434ull}},
+ {{12752526704317019947ull, 10620312431021956295ull,
+ 16041668449171309899ull, 5083149859279343396ull}},
+ {{11328972361968887030ull, 8663704520350057465ull,
+ 1605341487754585758ull, 6353937324099179246ull}},
+ {{326157397178945075ull, 1606258613582796024ull,
+ 11230048896548008006ull, 7942421655123974057ull}},
+ {{203848373236840672ull, 14838969688771411227ull, 101251532701423147ull,
+ 4964013534452483786ull}},
+ {{14089868521828214552ull, 13937026092536876129ull,
+ 9349936452731554742ull, 6205016918065604732ull}},
+ {{3777277597003104478ull, 8197910578816319354ull,
+ 11687420565914443428ull, 7756271147582005915ull}},
+ {{6972484516554328203ull, 14347066148614975404ull,
+ 4998794844482833190ull, 4847669467238753697ull}},
+ {{8715605645692910253ull, 8710460648913943447ull,
+ 10860179574030929392ull, 6059586834048442121ull}},
+ {{6282821038688749912ull, 10888075811142429309ull,
+ 18186910485966049644ull, 7574483542560552651ull}},
+ {{6232606158394162647ull, 16028419418818794126ull,
+ 9060976044515087075ull, 4734052214100345407ull}},
+ {{17014129734847479117ull, 15423838255096104753ull,
+ 6714534037216470940ull, 5917565267625431759ull}},
+ {{7432604113277185184ull, 833053745160579326ull, 3781481528093200772ull,
+ 7396956584531789699ull}},
+ {{33691552370852836ull, 9744030627580137887ull, 57582945844556530ull,
+ 4623097865332368562ull}},
+ {{13877172495745729757ull, 2956666247620396550ull,
+ 9295350719160471471ull, 5778872331665460702ull}},
+ {{8123093582827386389ull, 17530890864807659400ull,
+ 2395816362095813530ull, 7223590414581825878ull}},
+ {{10153866978534232986ull, 12690241544154798442ull,
+ 12218142489474542721ull, 9029488018227282347ull}},
+ {{10957852880011283520ull, 1013871937455667170ull,
+ 5330496046707895249ull, 5643430011392051467ull}},
+ {{4473944063159328592ull, 5879025940246971867ull,
+ 2051434039957481157ull, 7054287514240064334ull}},
+ {{980744060521772836ull, 11960468443736102738ull,
+ 11787664586801627254ull, 8817859392800080417ull}},
+ {{5224651056253495927ull, 2863606758907676307ull, 449761339109935178ull,
+ 5511162120500050261ull}},
+ {{1919127801889482004ull, 12802880485489371192ull,
+ 5173887692314806876ull, 6888952650625062826ull}},
+ {{2398909752361852505ull, 16003600606861713990ull,
+ 15690731652248284403ull, 8611190813281328532ull}},
+ {{15334376650508321528ull, 7696407370074877291ull,
+ 583335245800401944ull, 5381994258300830333ull}},
+ {{14556284794708014006ull, 9620509212593596614ull,
+ 5340855075677890334ull, 6727492822876037916ull}},
+ {{8971983956530241699ull, 2802264478887219960ull,
+ 6676068844597362918ull, 8409366028595047395ull}},
+ {{5607489972831401062ull, 15586473354586676187ull,
+ 1866700018659657871ull, 5255853767871904622ull}},
+ {{2397676447611863424ull, 14871405674805957330ull,
+ 11556747060179348147ull, 6569817209839880777ull}},
+ {{12220467596369605087ull, 13977571075080058758ull,
+ 610875769942021472ull, 8212271512299850972ull}},
+ {{3026106229303615276ull, 8735981921925036724ull,
+ 9605169393068539228ull, 5132669695187406857ull}},
+ {{3782632786629519095ull, 10919977402406295905ull,
+ 16618147759763061939ull, 6415837118984258571ull}},
+ {{9339977001714286772ull, 9038285734580481977ull,
+ 16160998681276439520ull, 8019796398730323214ull}},
+ {{17366700672139898993ull, 5648928584112801235ull,
+ 5488938157370386796ull, 5012372749206452009ull}},
+ {{17096689821747485837ull, 7061160730141001544ull,
+ 11472858715140371399ull, 6265465936508065011ull}},
+ {{2924118203474805680ull, 4214764894248864027ull,
+ 9729387375498076345ull, 7831832420635081264ull}},
+ {{17968474941667611214ull, 14163443104974009776ull,
+ 6080867109686297715ull, 4894895262896925790ull}},
+ {{4013849603374962402ull, 13092617862790124317ull,
+ 16824455923962647952ull, 6118619078621157237ull}},
+ {{9628998022646090906ull, 16365772328487655396ull,
+ 7195511849671146228ull, 7648273848276446547ull}},
+ {{15241495801008582624ull, 1005235668450008814ull,
+ 2191351896830772441ull, 4780171155172779092ull}},
+ {{9828497714405952472ull, 5868230603989898922ull,
+ 2739189871038465551ull, 5975213943965973865ull}},
+ {{3062250106152664782ull, 2723602236559985749ull,
+ 8035673357225469843ull, 7469017429957467331ull}},
+ {{4219749325559109441ull, 17843152462345848757ull,
+ 2716452839052224699ull, 4668135893723417082ull}},
+ {{9886372675376274705ull, 17692254559504923042ull,
+ 12618938085670056682ull, 5835169867154271352ull}},
+ {{3134593807365567573ull, 12891946162526377995ull,
+ 15773672607087570853ull, 7293962333942839190ull}},
+ {{17753300314489123179ull, 2279874647875808781ull,
+ 10493718722004687759ull, 9117452917428548988ull}},
+ {{13401655705769395939ull, 8342450682563462344ull,
+ 15781946238107705657ull, 5698408073392843117ull}},
+ {{16752069632211744923ull, 15039749371631715834ull,
+ 5892374742352468359ull, 7123010091741053897ull}},
+ {{11716715003409905346ull, 14188000696112256889ull,
+ 11977154446367973353ull, 8903762614676317371ull}},
+ {{405417849490108986ull, 1949971407429078700ull, 5179878519766289394ull,
+ 5564851634172698357ull}},
+ {{506772311862636232ull, 11660836296141124183ull,
+ 11086534168135249646ull, 6956064542715872946ull}},
+ {{14468523445110459002ull, 5352673333321629420ull,
+ 4634795673314286250ull, 8695080678394841183ull}},
+ {{18266199190048812684ull, 7957106851753406291ull,
+ 9814276323462510762ull, 5434425423996775739ull}},
+ {{18221062969133627951ull, 723011527836982056ull,
+ 7656159385900750549ull, 6793031779995969674ull}},
+ {{4329584637707483323ull, 5515450428223615475ull, 346827195521162378ull,
+ 8491289724994962093ull}},
+ {{400147389353483125ull, 8058842536067147576ull, 2522610006414420438ull,
+ 5307056078121851308ull}},
+ {{500184236691853906ull, 850181133229158662ull, 3153262508018025548ull,
+ 6633820097652314135ull}},
+ {{9848602332719593190ull, 1062726416536448327ull,
+ 17776636190304695647ull, 8292275122065392668ull}},
+ {{13072905485590827600ull, 7581733037976362060ull,
+ 1887025582085658971ull, 5182671951290870418ull}},
+ {{16341131856988534500ull, 4865480279043064671ull,
+ 11582154014461849522ull, 6478339939113588022ull}},
+ {{15814728802808280221ull, 15305222385658606647ull,
+ 5254320481222536094ull, 8097924923891985028ull}},
+ {{16801734529396256994ull, 4954077972609241250ull,
+ 12507322337618860867ull, 5061203077432490642ull}},
+ {{11778796124890545435ull, 1580911447334163659ull,
+ 6410780885168800276ull, 6326503846790613303ull}},
+ {{10111809137685793889ull, 1976139309167704574ull,
+ 3401790088033612441ull, 7908129808488266629ull}},
+ {{1708194692626233277ull, 12764302114298285119ull,
+ 4431961814234701727ull, 4942581130305166643ull}},
+ {{15970301421064955308ull, 11343691624445468494ull,
+ 928266249365989255ull, 6178226412881458304ull}},
+ {{10739504739476418327ull, 9567928512129447714ull,
+ 1160332811707486569ull, 7722783016101822880ull}},
+ {{11323876480600149359ull, 17509170366149374581ull,
+ 725208007317179105ull, 4826739385063639300ull}},
+ {{319787545468022986ull, 8051404902404554515ull, 906510009146473882ull,
+ 6033424231329549125ull}},
+ {{14234792487117192445ull, 840884091150917335ull,
+ 5744823529860480257ull, 7541780289161936406ull}},
+ {{15814274332089327134ull, 12054767603037793094ull,
+ 17425572761444963872ull, 4713612680726210253ull}},
+ {{10544470878256883109ull, 15068459503797241368ull,
+ 7946907896524041128ull, 5892015850907762817ull}},
+ {{13180588597821103887ull, 388830306037000094ull,
+ 14545320889082439315ull, 7365019813634703521ull}},
+ {{7252363710421604050ull, 14321095937828413830ull,
+ 4346593056070885431ull, 9206274767043379402ull}},
+ {{18367785374295666244ull, 15868213988783840499ull,
+ 7328306678471691298ull, 5753921729402112126ull}},
+ {{18348045699442194900ull, 10611895449125024816ull,
+ 18383755384944389931ull, 7192402161752640157ull}},
+ {{4488313050593192009ull, 8653183292978893117ull,
+ 9144636175898323702ull, 8990502702190800197ull}},
+ {{5111038665834438958ull, 796553539684420294ull, 8021240619150146266ull,
+ 5619064188869250123ull}},
+ {{15612170369147824505ull, 10219063961460301175ull,
+ 5414864755510294928ull, 7023830236086562654ull}},
+ {{14903526943007392728ull, 12773829951825376469ull,
+ 15991952981242644468ull, 8779787795108203317ull}},
+ {{11620547348593314407ull, 17207015756745636101ull,
+ 12300813622490346744ull, 5487367371942627073ull}},
+ {{690626130459479296ull, 3062025622222493511ull, 1540958972830769719ull,
+ 6859209214928283842ull}},
+ {{14698340718356512832ull, 17662590083060280600ull,
+ 11149570752893237956ull, 8574011518660354802ull}},
+ {{9186462948972820520ull, 1815746765057899567ull,
+ 11580167738985661627ull, 5358757199162721751ull}},
+ {{6871392667788637746ull, 16104741511604538171ull,
+ 9863523655304689129ull, 6698446498953402189ull}},
+ {{3977554816308409279ull, 6295868834223509002ull,
+ 16941090587558249316ull, 8373058123691752736ull}},
+ {{7097657778620143704ull, 13158290058244468934ull,
+ 10588181617223905822ull, 5233161327307345460ull}},
+ {{18095444260129955437ull, 7224490535950810359ull,
+ 13235227021529882278ull, 6541451659134181825ull}},
+ {{18007619306735056393ull, 18253985206793288757ull,
+ 2708975721630189135ull, 8176814573917727282ull}},
+ {{13560605075923104198ull, 18326269781886887329ull,
+ 6304795844446256113ull, 5110509108698579551ull}},
+ {{3115698289621716535ull, 9072779172076445450ull,
+ 3269308787130432238ull, 6388136385873224439ull}},
+ {{13117994898881921476ull, 2117601928240781004ull,
+ 17921694039195204010ull, 7985170482341530548ull}},
+ {{17422118848655976731ull, 5935187223577876031ull,
+ 1977686737642226698ull, 4990731551463456593ull}},
+ {{17165962542392583010ull, 16642356066327120847ull,
+ 7083794440480171276ull, 6238414439329320741ull}},
+ {{16845767159563340858ull, 2356201009199349443ull,
+ 13466429069027602000ull, 7798018049161650926ull}},
+ {{8222761465513394084ull, 1472625630749593402ull,
+ 3804832149714863346ull, 4873761280726031829ull}},
+ {{1055079795036966797ull, 11064154075291767561ull,
+ 9367726205570967086ull, 6092201600907539786ull}},
+ {{5930535762223596400ull, 4606820557259933643ull,
+ 2486285720108933050ull, 7615252001134424733ull}},
+ {{1400741842176053798ull, 7490948866714846431ull,
+ 3859771584281777108ull, 4759532500709015458ull}},
+ {{15585985358002230960ull, 9363686083393558038ull,
+ 14048086517206997193ull, 5949415625886269322ull}},
+ {{10259109660648012892ull, 16316293622669335452ull,
+ 8336736109653970683ull, 7436769532357836653ull}},
+ {{15635315574759783866ull, 7891840504954640705ull,
+ 7516303077747425629ull, 4647980957723647908ull}},
+ {{5709086413167566120ull, 14476486649620688786ull,
+ 9395378847184282036ull, 5809976197154559885ull}},
+ {{16359730053314233458ull, 18095608312025860982ull,
+ 16355909577407740449ull, 7262470246443199856ull}},
+ {{11226290529788016014ull, 8784452334750162516ull,
+ 1998142898050123946ull, 9078087808053999821ull}},
+ {{16239803617972285817ull, 10101968727646239476ull,
+ 3554682320495021418ull, 5673804880033749888ull}},
+ {{1853010448755805655ull, 3404088872703023538ull,
+ 4443352900618776773ull, 7092256100042187360ull}},
+ {{11539635097799532877ull, 8866797109306167326ull,
+ 5554191125773470966ull, 8865320125052734200ull}},
+ {{2600585917697320144ull, 930062174888966675ull, 3471369453608419354ull,
+ 5540825078157958875ull}},
+ {{17085790452403813892ull, 10385949755465984151ull,
+ 18174269872292687904ull, 6926031347697448593ull}},
+ {{16745552047077379461ull, 12982437194332480189ull,
+ 8882779285083696168ull, 8657539184621810742ull}},
+ {{12771813038637056115ull, 8114023246457800118ull,
+ 940051034749922201ull, 5410961990388631714ull}},
+ {{6741394261441544336ull, 14754215076499638052ull,
+ 10398435830292178559ull, 6763702487985789642ull}},
+ {{8426742826801930420ull, 13831082827197159661ull,
+ 3774672751010447391ull, 8454628109982237053ull}},
+ {{7572557275964900465ull, 15561955794639306644ull,
+ 4665013478595223571ull, 5284142568738898158ull}},
+ {{9465696594956125581ull, 14840758724871745401ull,
+ 15054638885098805272ull, 6605178210923622697ull}},
+ {{16443806762122544880ull, 104204332380130135ull,
+ 4983240551091342879ull, 8256472763654528372ull}},
+ {{17194908253967672406ull, 6982656735378663190ull,
+ 12337897381286865107ull, 5160295477284080232ull}},
+ {{12270263280604814699ull, 4116634900795941084ull,
+ 15422371726608581384ull, 6450369346605100290ull}},
+ {{15337829100756018374ull, 5145793625994926355ull,
+ 10054592621405950922ull, 8062961683256375363ull}},
+ {{7280300178758817532ull, 7827807034674216876ull,
+ 3978277379165025374ull, 5039351052035234602ull}},
+ {{9100375223448521915ull, 561386756487995287ull,
+ 14196218760811057526ull, 6299188815044043252ull}},
+ {{6763783010883264489ull, 9925105482464769917ull,
+ 17745273451013821907ull, 7873986018805054065ull}},
+ {{6533207391015734258ull, 3897347917326787246ull,
+ 4173266879242556836ull, 4921241261753158791ull}},
+ {{17389881275624443630ull, 4871684896658484057ull,
+ 604897580625808141ull, 6151551577191448489ull}},
+ {{7902293539248390826ull, 10701292139250492976ull,
+ 5367807994209648080ull, 7689439471489310611ull}},
+ {{4938933462030244266ull, 6688307587031558110ull,
+ 1049036987167336098ull, 4805899669680819132ull}},
+ {{15397038864392581141ull, 17583756520644223445ull,
+ 1311296233959170122ull, 6007374587101023915ull}},
+ {{5411240525208562714ull, 12756323613950503499ull,
+ 15474178347731126365ull, 7509218233876279893ull}},
+ {{1076182319041657744ull, 10278545267932758639ull,
+ 11977204476545647930ull, 4693261396172674933ull}},
+ {{15180285954084235892ull, 3624809548061172490ull,
+ 1136447540399896201ull, 5866576745215843667ull}},
+ {{9751985405750519057ull, 9142697953503853517ull,
+ 15255617480782033963ull, 7333220931519804583ull}},
+ {{16801667775615536725ull, 6816686423452428992ull,
+ 14457835832550154550ull, 9166526164399755729ull}},
+ {{10501042359759710454ull, 18095487069939931832ull,
+ 2118618367702764737ull, 5729078852749847331ull}},
+ {{13126302949699638067ull, 8784300782142751078ull,
+ 16483331014910619634ull, 7161348565937309163ull}},
+ {{7184506650269771775ull, 1757003940823663040ull,
+ 15992477750210886639ull, 8951685707421636454ull}},
+ {{4490316656418607360ull, 8015656490655871256ull,
+ 5383612575454416245ull, 5594803567138522784ull}},
+ {{5612895820523259200ull, 14631256631747226974ull,
+ 6729515719318020306ull, 6993504458923153480ull}},
+ {{16239491812508849808ull, 9065698752829257909ull,
+ 8411894649147525383ull, 8741880573653941850ull}},
+ {{12455525392031725082ull, 12583590748159368049ull,
+ 9869120174144591268ull, 5463675358533713656ull}},
+ {{1734348684757492640ull, 15729488435199210062ull,
+ 12336400217680739085ull, 6829594198167142070ull}},
+ {{11391307892801641608ull, 5826802488716848865ull,
+ 6197128235246148049ull, 8536992747708927588ull}},
+ {{202038405359944149ull, 15170966601516500301ull,
+ 13096577183883618338ull, 5335620467318079742ull}},
+ {{4864234025127318090ull, 9740336215040849568ull,
+ 7147349442999747115ull, 6669525584147599678ull}},
+ {{6080292531409147613ull, 7563734250373674056ull,
+ 18157558840604459702ull, 8336906980184499597ull}},
+ {{3800182832130717258ull, 115647888056158381ull,
+ 13654317284591481266ull, 5210566862615312248ull}},
+ {{9361914558590784477ull, 9367931896924973784ull,
+ 17067896605739351582ull, 6513208578269140310ull}},
+ {{11702393198238480596ull, 2486542834301441422ull,
+ 12111498720319413670ull, 8141510722836425388ull}},
+ {{2702309730471662469ull, 15389147326720564601ull,
+ 16793058737054409351ull, 5088444201772765867ull}},
+ {{7989573181516965990ull, 14624748139973317847ull,
+ 16379637402890623785ull, 6360555252215957334ull}},
+ {{5375280458468819583ull, 4445877119684483597ull,
+ 11251174716758503924ull, 7950694065269946668ull}},
+ {{5665393295756706191ull, 12002045236657578056ull,
+ 16255356234828840760ull, 4969183790793716667ull}},
+ {{7081741619695882739ull, 15002556545821972570ull,
+ 15707509275108663046ull, 6211479738492145834ull}},
+ {{18075549061474629232ull, 9529823645422689904ull,
+ 10411014557031053000ull, 7764349673115182293ull}},
+ {{11297218163421643270ull, 5956139778389181190ull,
+ 8812727107358102077ull, 4852718545696988933ull}},
+ {{4898150667422278280ull, 12056860741413864392ull,
+ 15627594902625015500ull, 6065898182121236166ull}},
+ {{6122688334277847849ull, 15071075926767330490ull,
+ 10311121591426493567ull, 7582372727651545208ull}},
+ {{8438366227351042810ull, 16336951481870663412ull,
+ 6444450994641558479ull, 4738982954782215755ull}},
+ {{10547957784188803512ull, 15809503333910941361ull,
+ 3443877724874560195ull, 5923728693477769694ull}},
+ {{17796633248663392294ull, 15150193148961288797ull,
+ 13528219192947976052ull, 7404660866847212117ull}},
+ {{13428738789628314136ull, 245498681246029690ull,
+ 10760980004806178985ull, 4627913041779507573ull}},
+ {{7562551450180616862ull, 4918559369984925017ull,
+ 18062911024435111635ull, 5784891302224384466ull}},
+ {{14064875331153158981ull, 1536513194053768367ull,
+ 13355266743689113736ull, 7231114127780480583ull}},
+ {{12969408145514060823ull, 1920641492567210459ull,
+ 12082397411184004266ull, 9038892659725600729ull}},
+ {{5800037081732594062ull, 5812086951281894441ull, 633969354348920810ull,
+ 5649307912328500456ull}},
+ {{11861732370593130482ull, 16488480725957143859ull,
+ 792461692936151012ull, 7061634890410625570ull}},
+ {{10215479444814025198ull, 2163856833736878208ull,
+ 10213949153024964574ull, 8827043613013281962ull}},
+ {{6384674653008765749ull, 15187468576367712592ull,
+ 10995404239067990762ull, 5516902258133301226ull}},
+ {{7980843316260957186ull, 9760963683604864932ull,
+ 4520883261980212645ull, 6896127822666626533ull}},
+ {{9976054145326196483ull, 16812890622933469069ull,
+ 10262790095902653710ull, 8620159778333283166ull}},
+ {{8540876850042566754ull, 5896370620906030264ull,
+ 1802557791511770665ull, 5387599861458301979ull}},
+ {{10676096062553208442ull, 11982149294559925734ull,
+ 16088255294671877043ull, 6734499826822877473ull}},
+ {{4121748041336734745ull, 10366000599772519264ull,
+ 6275261063057682592ull, 8418124783528596842ull}},
+ {{2576092525835459216ull, 6478750374857824540ull,
+ 8533724182838439524ull, 5261327989705373026ull}},
+ {{3220115657294324019ull, 8098437968572280675ull,
+ 1443783191693273597ull, 6576659987131716283ull}},
+ {{17860202626900068736ull, 14734733479142738747ull,
+ 15639787044898755708ull, 8220824983914645353ull}},
+ {{8856783632598849008ull, 18432580461318987525ull,
+ 2857337875420640461ull, 5138015614946653346ull}},
+ {{15682665559175949164ull, 9205667521366570694ull,
+ 12795044381130576385ull, 6422519518683316682ull}},
+ {{10379959912115160647ull, 16118770420135601272ull,
+ 6770433439558444673ull, 8028149398354145853ull}},
+ {{6487474945071975405ull, 3156702484943668939ull,
+ 6537363908937721873ull, 5017593373971341158ull}},
+ {{3497657662912581352ull, 8557564124606974078ull,
+ 17395076923026928149ull, 6271991717464176447ull}},
+ {{13595444115495502497ull, 15308641174186105501ull,
+ 17132160135356272282ull, 7839989646830220559ull}},
+ {{10802995581398383013ull, 14179586752293703842ull,
+ 17625129112238752032ull, 4899993529268887849ull}},
+ {{4280372439893202958ull, 17724483440367129803ull,
+ 8196353335016276328ull, 6124991911586109812ull}},
+ {{738779531439115794ull, 3708860226749360638ull,
+ 10245441668770345411ull, 7656239889482637265ull}},
+ {{14296795262431611083ull, 12194632504656446ull,
+ 17932616089049935642ull, 4785149930926648290ull}},
+ {{8647622041184738046ull, 9238615327485596366ull,
+ 13192398074457643744ull, 5981437413658310363ull}},
+ {{1586155514626146749ull, 11548269159356995458ull,
+ 11878811574644666776ull, 7476796767072887954ull}},
+ {{5603033215068729622ull, 7217668224598122161ull,
+ 12035943252580304639ull, 4672997979420554971ull}},
+ {{11615477537263299932ull, 4410399262320264797ull,
+ 10433243047297992895ull, 5841247474275693714ull}},
+ {{684288866296961203ull, 901313059472943093ull, 3818181772267715311ull,
+ 7301559342844617143ull}},
+ {{5467047101298589407ull, 14961699379623342578ull,
+ 161041196907256234ull, 9126949178555771429ull}},
+ {{8028590456739006284ull, 13962748130691977015ull,
+ 2406493757280729098ull, 5704343236597357143ull}},
+ {{5424052052496369951ull, 8230063126510195461ull,
+ 16843175251883075085ull, 7130429045746696428ull}},
+ {{11391751084047850342ull, 14899264926565132230ull,
+ 2607224991144292240ull, 8913036307183370536ull}},
+ {{2508158409102518560ull, 9312040579103207644ull,
+ 1629515619465182650ull, 5570647691989606585ull}},
+ {{3135198011378148200ull, 2416678687024233747ull,
+ 6648580542758866217ull, 6963309614987008231ull}},
+ {{17754055569504848962ull, 7632534377207680087ull,
+ 3699039660021194867ull, 8704137018733760289ull}},
+ {{18013813758581612457ull, 2464490976541106102ull,
+ 13841114833581716552ull, 5440085636708600180ull}},
+ {{13293895161372239763ull, 3080613720676382628ull,
+ 17301393541977145690ull, 6800107045885750225ull}},
+ {{16617368951715299704ull, 13074139187700254093ull,
+ 7791683872189268400ull, 8500133807357187782ull}},
+ {{12691698604035756267ull, 8171336992312658808ull,
+ 258116401690904846ull, 5312583629598242364ull}},
+ {{15864623255044695334ull, 990799203536047702ull, 322645502113631058ull,
+ 6640729536997802955ull}},
+ {{10607407031951093359ull, 10461871041274835436ull,
+ 14238364932924202534ull, 8300911921247253693ull}},
+ {{15853001431824209158ull, 1926983382369384243ull,
+ 11204821092291320536ull, 5188069950779533558ull}},
+ {{15204565771352873543ull, 2408729227961730304ull,
+ 4782654328509374862ull, 6485087438474416948ull}},
+ {{558963140481540313ull, 12234283571806938689ull,
+ 5978317910636718577ull, 8106359298093021185ull}},
+ {{11878567008869432456ull, 728898204738254824ull,
+ 15265663740216418871ull, 5066474561308138240ull}},
+ {{14848208761086790569ull, 14746180811204982242ull,
+ 635335601560971972ull, 6333093201635172801ull}},
+ {{9336888914503712404ull, 18432726014006227803ull,
+ 5405855520378602869ull, 7916366502043966001ull}},
+ {{3529712562351126301ull, 13826296767967586329ull,
+ 14907874746305096553ull, 4947729063777478750ull}},
+ {{9023826721366295780ull, 3447812904677319199ull,
+ 9411471396026594884ull, 6184661329721848438ull}},
+ {{6668097383280481820ull, 4309766130846648999ull,
+ 2540967208178467797ull, 7730826662152310548ull}},
+ {{11085089892191382994ull, 4999446840992849576ull,
+ 10811476541966318181ull, 4831766663845194092ull}},
+ {{13856362365239228742ull, 10860994569668449874ull,
+ 13514345677457897726ull, 6039708329806492615ull}},
+ {{8097080919694260120ull, 4352871175230786535ull,
+ 12281246078394984254ull, 7549635412258115769ull}},
+ {{11978204602449994431ull, 16555602539801405296ull,
+ 758249771355783302ull, 4718522132661322356ull}},
+ {{14972755753062493039ull, 11471131137896980812ull,
+ 947812214194729128ull, 5898152665826652945ull}},
+ {{269200617618564682ull, 14338913922371226016ull,
+ 5796451286170799314ull, 7372690832283316181ull}},
+ {{336500772023205852ull, 8700270366109256712ull,
+ 11857250126140887047ull, 9215863540354145226ull}},
+ {{210312982514503658ull, 12355198006459367301ull,
+ 12022467347265442308ull, 5759914712721340766ull}},
+ {{4874577246570517476ull, 15443997508074209126ull,
+ 5804712147227027077ull, 7199893390901675958ull}},
+ {{15316593595067922653ull, 5469938829810597695ull,
+ 16479262220888559655ull, 8999866738627094947ull}},
+ {{16490400024558533514ull, 10336240796272705415ull,
+ 7993695878841655832ull, 5624916711641934342ull}},
+ {{16001314012270778989ull, 12920300995340881769ull,
+ 768747811697293982ull, 7031145889552417928ull}},
+ {{6166584460056310024ull, 6927004207321326404ull, 960934764621617478ull,
+ 8788932361940522410ull}},
+ {{13077487324389969573ull, 18164435684857992714ull,
+ 5212270246315898827ull, 5493082726212826506ull}},
+ {{7123487118632686158ull, 18093858587645102989ull,
+ 15738709844749649342ull, 6866353407766033132ull}},
+ {{13516044916718245602ull, 13393951197701602928ull,
+ 1226643232227510062ull, 8582941759707541416ull}},
+ {{8447528072948903501ull, 3759533480136113926ull, 766652020142193789ull,
+ 5364338599817213385ull}},
+ {{1336038054331353569ull, 9311102868597530312ull,
+ 5570001043605130140ull, 6705423249771516731ull}},
+ {{1670047567914191961ull, 11638878585746912890ull,
+ 2350815286079024771ull, 8381779062214395914ull}},
+ {{5655465748373757880ull, 4968456106878126604ull,
+ 6080945572226778386ull, 5238611913883997446ull}},
+ {{7069332185467197349ull, 15433942170452434063ull,
+ 16824554002138248790ull, 6548264892354996807ull}},
+ {{4224979213406608783ull, 10069055676210766771ull,
+ 16419006484245423084ull, 8185331115443746009ull}},
+ {{334768999165436537ull, 15516531834486505040ull,
+ 3344350025012307571ull, 5115831947152341256ull}},
+ {{418461248956795672ull, 14783978774680743396ull,
+ 4180437531265384464ull, 6394789933940426570ull}},
+ {{523076561195994589ull, 33229394641377629ull, 14448918950936506389ull,
+ 7993487417425533212ull}},
+ {{2632765859961190570ull, 2326611380864554970ull,
+ 18253946381190092301ull, 4995929635890958257ull}},
+ {{12514329361806264021ull, 7519950244508081616ull,
+ 8982374921205451664ull, 6244912044863697822ull}},
+ {{15642911702257830026ull, 9399937805635102020ull,
+ 2004596614652038772ull, 7806140056079622278ull}},
+ {{553447777056367958ull, 15098333165376714571ull,
+ 15087930939439687944ull, 4878837535049763923ull}},
+ {{14526867776602623660ull, 426172383011341597ull,
+ 14248227655872222027ull, 6098546918812204904ull}},
+ {{4323526665471115863ull, 14367773534046340709ull,
+ 17810284569840277533ull, 7623183648515256130ull}},
+ {{5008047175133141366ull, 11285701467992656895ull,
+ 15743113874577561362ull, 4764489780322035081ull}},
+ {{1648372950489038804ull, 4883754798136045311ull,
+ 5843834287939787991ull, 5955612225402543852ull}},
+ {{15895524243393462217ull, 1493007479242668734ull,
+ 7304792859924734989ull, 7444515281753179815ull}},
+ {{5323016633693525982ull, 3238972683740361911ull,
+ 11483024565094041224ull, 4652822051095737384ull}},
+ {{2042084773689519573ull, 4048715854675452389ull,
+ 14353780706367551530ull, 5816027563869671730ull}},
+ {{7164291985539287370ull, 14284266855199091294ull,
+ 8718853846104663604ull, 7270034454837089663ull}},
+ {{18178737018778885021ull, 17855333568998864117ull,
+ 6286881289203441601ull, 9087543068546362079ull}},
+ {{13667553645950497090ull, 4242054452983208217ull,
+ 10846829833393232857ull, 5679714417841476299ull}},
+ {{3249384002155957650ull, 9914254084656398176ull,
+ 8946851273314153167ull, 7099643022301845374ull}},
+ {{4061730002694947063ull, 7781131587393109816ull,
+ 1960192054787915651ull, 8874553777877306718ull}},
+ {{2538581251684341914ull, 2557364232906999683ull,
+ 15060178089524610994ull, 5546596111173316698ull}},
+ {{17008284619887591105ull, 12420077327988525411ull,
+ 9601850575050987934ull, 6933245138966645873ull}},
+ {{16648669756432100977ull, 6301724623130880956ull,
+ 16613999237241122822ull, 8666556423708307341ull}},
+ {{1182046560915287303ull, 17773635944738964310ull,
+ 12689592532489395715ull, 5416597764817692088ull}},
+ {{10700930237998884936ull, 17605358912496317483ull,
+ 15861990665611744644ull, 6770747206022115110ull}},
+ {{8764476779071218266ull, 3559954566910845238ull,
+ 10604116295159904998ull, 8463434007527643888ull}},
+ {{866111968492123513ull, 16060029659601441986ull,
+ 6627572684474940623ull, 5289646254704777430ull}},
+ {{10306011997469930199ull, 15463351056074414578ull,
+ 17507837892448451587ull, 6612057818380971787ull}},
+ {{3659142959982636940ull, 14717502801665630319ull,
+ 17273111347133176580ull, 8265072272976214734ull}},
+ {{9204493377630229944ull, 18421811287895794757ull,
+ 6184008573530847458ull, 5165670170610134209ull}},
+ {{16117302740465175334ull, 13803892073014967638ull,
+ 12341696735340947227ull, 6457087713262667761ull}},
+ {{10923256388726693359ull, 12643179072841321644ull,
+ 1592062863894020322ull, 8071359641578334702ull}},
+ {{16050407279808959158ull, 12513672938953213931ull,
+ 14830097345215926413ull, 5044599775986459188ull}},
+ {{15451323081333811043ull, 1807033118409353702ull, 90877607810356401ull,
+ 6305749719983073986ull}},
+ {{10090781814812487996ull, 6870477416439080032ull,
+ 9336969046617721309ull, 7882187149978842482ull}},
+ {{6306738634257804997ull, 6599891394488118972ull,
+ 10447291672563463722ull, 4926366968736776551ull}},
+ {{7883423292822256247ull, 17473236279964924523ull,
+ 8447428572276941748ull, 6157958710920970689ull}},
+ {{5242593097600432404ull, 3394801276246604038ull,
+ 15170971733773565090ull, 7697448388651213361ull}},
+ {{17111678741282433965ull, 6733436816081515427ull,
+ 2564328305967396325ull, 4810905242907008351ull}},
+ {{16777912408175654552ull, 13028482038529282188ull,
+ 17040468437741409118ull, 6013631553633760438ull}},
+ {{2525646436510016574ull, 7062230511306826928ull,
+ 12077213510321985590ull, 7517039442042200548ull}},
+ {{1578529022818760359ull, 18248952124848930542ull,
+ 16771630480806016801ull, 4698149651276375342ull}},
+ {{11196533315378226256ull, 8976132100778999465ull,
+ 11741166064152745194ull, 5872687064095469178ull}},
+ {{160608588940619108ull, 1996793089118973524ull, 5453085543336155685ull,
+ 7340858830119336473ull}},
+ {{200760736175773885ull, 7107677379826104809ull,
+ 11428042947597582510ull, 9176073537649170591ull}},
+ {{11654690506178328438ull, 18277356417673479217ull,
+ 14060055869889570924ull, 5735045961030731619ull}},
+ {{733305077440746836ull, 4399951448382297406ull,
+ 12963383818934575752ull, 7168807451288414524ull}},
+ {{10140003383655709353ull, 5499939310477871757ull,
+ 16204229773668219690ull, 8961009314110518155ull}},
+ {{8643345123998512298ull, 8049148087476057752ull,
+ 7821800599328943354ull, 5600630821319073847ull}},
+ {{10804181404998140372ull, 838063072490296382ull,
+ 5165564730733791289ull, 7000788526648842309ull}},
+ {{4281854719392899657ull, 5659264859040258382ull,
+ 11068641931844627015ull, 8750985658311052886ull}},
+ {{16511217254902725998ull, 10454569564541243344ull,
+ 2306215188975503980ull, 5469366036444408054ull}},
+ {{2192277494918855881ull, 13068211955676554181ull,
+ 12106141023074155783ull, 6836707545555510067ull}},
+ {{7352032887075957755ull, 11723578926168304822ull,
+ 10520990260415306825ull, 8545884431944387584ull}},
+ {{18430078609704637309ull, 409707801214108657ull,
+ 6575618912759566766ull, 5341177769965242240ull}},
+ {{9202540206848632924ull, 9735506788372411630ull,
+ 8219523640949458457ull, 6676472212456552800ull}},
+ {{2279803221706015347ull, 16781069503892902442ull,
+ 10274404551186823071ull, 8345590265570691000ull}},
+ {{6036563031993647496ull, 17405697467574145882ull,
+ 6421502844491764419ull, 5215993915981681875ull}},
+ {{16769075826846835178ull, 17145435816040294448ull,
+ 3415192537187317620ull, 6519992394977102344ull}},
+ {{2514600709848992357ull, 2985050696340816445ull,
+ 4268990671484147026ull, 8149990493721377930ull}},
+ {{3877468452869314175ull, 6477342703640398182ull,
+ 7279805188104979795ull, 5093744058575861206ull}},
+ {{14070207602941418527ull, 3484992361123109823ull,
+ 18323128521986000552ull, 6367180073219826507ull}},
+ {{12976073485249385254ull, 4356240451403887279ull,
+ 18292224634055112786ull, 7958975091524783134ull}},
+ {{15027574955921947640ull, 7334336300554817453ull,
+ 6820954377857057587ull, 4974359432202989459ull}},
+ {{4949410639620270838ull, 4556234357266133913ull,
+ 3914506953893934080ull, 6217949290253736824ull}},
+ {{10798449317952726451ull, 5695292946582667391ull,
+ 4893133692367417600ull, 7772436612817171030ull}},
+ {{13666559851361535888ull, 3559558091614167119ull,
+ 16893266613011799712ull, 4857772883010731893ull}},
+ {{12471513795774531956ull, 4449447614517708899ull,
+ 7281525210982585928ull, 6072216103763414867ull}},
+ {{10977706226290777041ull, 5561809518147136124ull,
+ 4490220495300844506ull, 7590270129704268584ull}},
+ {{16084438428286511459ull, 8087816967269347981ull,
+ 2806387809563027816ull, 4743918831065167865ull}},
+ {{6270489980075975611ull, 10109771209086684977ull,
+ 8119670780381172674ull, 5929898538831459831ull}},
+ {{12449798493522357418ull, 3413841974503580413ull,
+ 5537902457049077939ull, 7412373173539324789ull}},
+ {{10086967067665167339ull, 18274552298560595422ull,
+ 5767032044869367663ull, 4632733233462077993ull}},
+ {{3385336797726683365ull, 18231504354773356374ull,
+ 11820476074514097483ull, 5790916541827597491ull}},
+ {{13455043034013130014ull, 18177694425039307563ull,
+ 10163909074715233950ull, 7238645677284496864ull}},
+ {{12207117774089024614ull, 13498745994444358646ull,
+ 12704886343394042438ull, 9048307096605621080ull}},
+ {{3017762590378252480ull, 3825030228100336250ull,
+ 7940553964621276524ull, 5655191935378513175ull}},
+ {{12995575274827591408ull, 4781287785125420312ull,
+ 5314006437349207751ull, 7068989919223141469ull}},
+ {{16244469093534489259ull, 1364923712979387486ull,
+ 11254194065113897593ull, 8836237399028926836ull}},
+ {{5541107165031667883ull, 12382292366680586939ull,
+ 16257243327550961803ull, 5522648374393079272ull}},
+ {{2314697937862196950ull, 10866179439923345770ull,
+ 1874810085729150638ull, 6903310467991349091ull}},
+ {{12116744459182521995ull, 4359352263049406404ull,
+ 16178570662443602010ull, 8629138084989186363ull}},
+ {{16796337323843852055ull, 7336281182833266906ull,
+ 7805763654813557304ull, 5393211303118241477ull}},
+ {{11772049617950039261ull, 9170351478541583633ull,
+ 14368890586944334534ull, 6741514128897801846ull}},
+ {{880003967155385364ull, 2239567311322203734ull, 8737741196825642360ull,
+ 8426892661122252308ull}},
+ {{14385060534754279565ull, 1399729569576377333ull,
+ 14684460284870802283ull, 5266807913201407692ull}},
+ {{4146267613160685744ull, 15584720017252635379ull,
+ 18355575356088502853ull, 6583509891501759615ull}},
+ {{571148498023469276ull, 5645841966283630512ull,
+ 18332783176683240663ull, 8229387364377199519ull}},
+ {{356967811264668297ull, 10446180256568350926ull,
+ 18375518513068107270ull, 5143367102735749699ull}},
+ {{9669581800935611180ull, 3834353283855662849ull,
+ 18357712122907746184ull, 6429208878419687124ull}},
+ {{16698663269596901878ull, 4792941604819578561ull,
+ 4500396079925131114ull, 8036511098024608906ull}},
+ {{3519135515856981818ull, 7607274521439624505ull,
+ 7424433568380594850ull, 5022819436265380566ull}},
+ {{9010605413248615177ull, 285721114944754823ull, 57169923620967755ull,
+ 6278524295331725708ull}},
+ {{6651570748133381067ull, 14192209448963107241ull, 71462404526209693ull,
+ 7848155369164657135ull}},
+ {{15686446763651832927ull, 11175973914815635977ull,
+ 6962193030469962914ull, 4905097105727910709ull}},
+ {{5773000399282627446ull, 4746595356664769164ull,
+ 13314427306514841547ull, 6131371382159888386ull}},
+ {{7216250499103284308ull, 1321558177403573551ull,
+ 7419662096288776126ull, 7664214227699860483ull}},
+ {{11427685589580634549ull, 14661031916159397181ull,
+ 2331445800966791126ull, 4790133892312412802ull}},
+ {{449548931693629474ull, 9102917858344470669ull,
+ 12137679288063264716ull, 5987667365390516002ull}},
+ {{5173622183044424746ull, 11378647322930588336ull,
+ 5948727073224305087ull, 7484584206738145003ull}},
+ {{3233513864402765466ull, 14029183604472699566ull,
+ 1412111411551496727ull, 4677865129211340627ull}},
+ {{13265264367358232641ull, 12924793487163486553ull,
+ 15600197319721534621ull, 5847331411514175783ull}},
+ {{2746522403915627089ull, 2320933803672194480ull,
+ 14888560631224530373ull, 7309164264392719729ull}},
+ {{3433153004894533861ull, 7512853273017631004ull,
+ 4775642733748499254ull, 9136455330490899662ull}},
+ {{11369092664913859471ull, 83847277208631473ull,
+ 16819834763874975746ull, 5710284581556812288ull}},
+ {{376307775860160627ull, 9328181133365565150ull, 2578049381134168066ull,
+ 7137855726946015361ull}},
+ {{9693756756679976592ull, 2436854379852180629ull,
+ 7834247744845097987ull, 8922319658682519201ull}},
+ {{8364440982138679322ull, 17663935051903470557ull,
+ 16425619886596656001ull, 5576449786676574500ull}},
+ {{15067237246100737056ull, 8244860759597174484ull,
+ 2085280784536268386ull, 6970562233345718126ull}},
+ {{387302483916369704ull, 1082703912641692298ull,
+ 11829973017525111291ull, 8713202791682147657ull}},
+ {{4853750070875118969ull, 16817591009896915350ull,
+ 476204108312112700ull, 5445751744801342286ull}},
+ {{15290559625448674520ull, 2575244688661592571ull,
+ 9818627172244916684ull, 6807189681001677857ull}},
+ {{14501513513383455246ull, 3219055860826990714ull,
+ 16884969983733533759ull, 8508987101252097321ull}},
+ {{13675131964292047433ull, 8929438940657951052ull,
+ 3635577212192376743ull, 5318116938282560826ull}},
+ {{17093914955365059291ull, 6550112657395050911ull,
+ 13767843552095246737ull, 6647646172853201032ull}},
+ {{16755707675778936209ull, 12799326840171201543ull,
+ 17209804440119058421ull, 8309557716066501290ull}},
+ {{17389846325002916987ull, 10305422284320694916ull,
+ 15367813793501799417ull, 5193473572541563306ull}},
+ {{3290563832544094618ull, 17493463873828256550ull,
+ 9986395205022473463ull, 6491841965676954133ull}},
+ {{13336576827534894080ull, 17255143823857932783ull,
+ 17094680024705479733ull, 8114802457096192666ull}},
+ {{15252889544850390656ull, 13090307899124901941ull,
+ 15295861033868312737ull, 5071751535685120416ull}},
+ {{5231053875780824608ull, 2527826818623963715ull, 673082218625839306ull,
+ 6339689419606400521ull}},
+ {{1927131326298642856ull, 12383155560134730452ull,
+ 5453038791709687036ull, 7924611774508000651ull}},
+ {{10427829115791427593ull, 16962844261938982340ull,
+ 1102306235604860445ull, 4952882359067500407ull}},
+ {{13034786394739284491ull, 7368497272141564213ull,
+ 15212940849788239269ull, 6191102948834375508ull}},
+ {{2458424938141941902ull, 13822307608604343171ull,
+ 569431988525747470ull, 7738878686042969386ull}},
+ {{17677416650834571353ull, 4027256236950326577ull,
+ 4967581011255980073ull, 4836799178776855866ull}},
+ {{8261712758261050479ull, 9645756314615296126ull,
+ 15432848300924750899ull, 6045998973471069832ull}},
+ {{1103768910971537291ull, 7445509374841732254ull, 844316302446387008ull,
+ 7557498716838837291ull}},
+ {{14524913624639374519ull, 4653443359276082658ull,
+ 16668598753524849544ull, 4723436698024273306ull}},
+ {{8932769993944442340ull, 5816804199095103323ull,
+ 11612376405051286122ull, 5904295872530341633ull}},
+ {{6554276474003165021ull, 16494377285723654962ull,
+ 680412451031943940ull, 7380369840662927042ull}},
+ {{8708108814679366043ull, 1085613766722508543ull,
+ 5036943800322352867ull, 4612731150414329401ull}},
+ {{6273449999921819649ull, 15192075263685299391ull,
+ 10907865768830328987ull, 5765913938017911751ull}},
+ {{3230126481474886657ull, 14378408061179236335ull,
+ 9023146192610523330ull, 7207392422522389689ull}},
+ {{17872716157125772033ull, 8749638039619269610ull,
+ 15890618759190542067ull, 9009240528152987111ull}},
+ {{15782133616630995425ull, 3162680765548349554ull,
+ 16849165752135170648ull, 5630775330095616944ull}},
+ {{10504294983933968473ull, 3953350956935436943ull,
+ 2614713116459411694ull, 7038469162619521181ull}},
+ {{8518682711490072687ull, 14165060733024071987ull,
+ 7880077414001652521ull, 8798086453274401476ull}},
+ {{3018333685467601478ull, 1935633930498963136ull,
+ 14148420420605808634ull, 5498804033296500922ull}},
+ {{3772917106834501847ull, 11642914449978479728ull,
+ 8462153488902484984ull, 6873505041620626153ull}},
+ {{4716146383543127309ull, 14553643062473099660ull,
+ 15189377879555494134ull, 8591881302025782691ull}},
+ {{12170963526569230376ull, 4484340895618299383ull,
+ 7187518165508489882ull, 5369925813766114182ull}},
+ {{10602018389784150066ull, 14828798156377650037ull,
+ 18207769743740388160ull, 6712407267207642727ull}},
+ {{17864209005657575486ull, 89253621762510930ull,
+ 18148026161248097297ull, 8390509084009553409ull}},
+ {{15776816646963372583ull, 11584998559670039091ull,
+ 4424987323138978954ull, 5244068177505970881ull}},
+ {{15109334790276827825ull, 5257876162732773056ull,
+ 10142920172351111597ull, 6555085221882463601ull}},
+ {{439924414136483165ull, 11184031221843354225ull,
+ 17290336233866277400ull, 8193856527353079501ull}},
+ {{11804167804903771738ull, 6990019513652096390ull,
+ 13112303155380117327ull, 5121160329595674688ull}},
+ {{5531837719274938865ull, 4125838373637732584ull,
+ 16390378944225146659ull, 6401450411994593360ull}},
+ {{6914797149093673581ull, 545611948619777826ull, 2041229606571881708ull,
+ 8001813014993241701ull}},
+ {{8933434236610933892ull, 9564379504742136949ull,
+ 3581611513321120019ull, 5001133134370776063ull}},
+ {{15778478814191055269ull, 7343788362500283282ull,
+ 18312072446933563736ull, 6251416417963470078ull}},
+ {{10499726480884043278ull, 9179735453125354103ull,
+ 13666718521812178862ull, 7814270522454337598ull}},
+ {{13479858078193608905ull, 1125648639775958410ull,
+ 3930013057705223885ull, 4883919076533960999ull}},
+ {{7626450560887235323ull, 6018746818147335917ull, 300830303704141952ull,
+ 6104898845667451249ull}},
+ {{14144749219536432058ull, 7523433522684169896ull,
+ 4987723898057565344ull, 7631123557084314061ull}},
+ {{8840468262210270036ull, 4702145951677606185ull,
+ 5423170445499672292ull, 4769452223177696288ull}},
+ {{15662271346190225449ull, 5877682439597007731ull,
+ 6778963056874590365ull, 5961815278972120360ull}},
+ {{14966153164310393908ull, 11958789067923647568ull,
+ 8473703821093237956ull, 7452269098715150450ull}},
+ {{9353845727693996192ull, 16697615204307055538ull,
+ 9907750906610661626ull, 4657668186696969031ull}},
+ {{2468935122762719432ull, 11648646968529043615ull,
+ 7773002614835939129ull, 5822085233371211289ull}},
+ {{16921226958735563002ull, 725750655379140806ull,
+ 14327939286972311816ull, 7277606541714014111ull}},
+ {{11928161661564677945ull, 907188319223926008ull,
+ 13298238090288001866ull, 9097008177142517639ull}},
+ {{7455101038477923716ull, 5178678717942341659ull,
+ 15228927834071083022ull, 5685630110714073524ull}},
+ {{4707190279670016741ull, 15696720434282702882ull,
+ 589415718879302161ull, 7107037638392591906ull}},
+ {{15107359886442296734ull, 5785842487571214890ull,
+ 9960141685453903510ull, 8883797047990739882ull}},
+ {{14053785947453823363ull, 17451209610014173018ull,
+ 10836774571836077597ull, 5552373154994212426ull}},
+ {{8343860397462503395ull, 7978953957235552561ull,
+ 4322596177940321189ull, 6940466443742765533ull}},
+ {{15041511515255517148ull, 14585378464971828605ull,
+ 10014931240852789390ull, 8675583054678456916ull}},
+ {{11706787706248392170ull, 4504175522180004974ull,
+ 15482704062387769177ull, 5422239409174035572ull}},
+ {{5410112595955714404ull, 10241905421152394122ull,
+ 906636004275159855ull, 6777799261467544466ull}},
+ {{15986012781799418813ull, 8190695758013104748ull,
+ 10356667042198725627ull, 8472249076834430582ull}},
+ {{767885951769860950ull, 2813341839544496516ull, 1861230882946815613ull,
+ 5295155673021519114ull}},
+ {{959857439712326188ull, 8128363317858008549ull,
+ 11549910640538295324ull, 6618944591276898892ull}},
+ {{5811507818067795638ull, 10160454147322510686ull,
+ 14437388300672869155ull, 8273680739096123615ull}},
+ {{17467250441574535986ull, 4044440832862875226ull,
+ 15940896715561625078ull, 5171050461935077259ull}},
+ {{12610691015113394175ull, 14278923077933369841ull,
+ 15314434876024643443ull, 6463813077418846574ull}},
+ {{1928305713609579006ull, 13236967828989324398ull,
+ 9919671558176028496ull, 8079766346773558218ull}},
+ {{15040249126288150591ull, 8273104893118327748ull,
+ 10811480742287405714ull, 5049853966733473886ull}},
+ {{353567334150636623ull, 1118009079543133878ull, 4290978891004481335ull,
+ 6312317458416842358ull}},
+ {{9665331204543071586ull, 15232569404711081059ull,
+ 14587095650610377476ull, 7890396823021052947ull}},
+ {{3734988993625725790ull, 296983841089649854ull, 6811091772417791971ull,
+ 4931498014388158092ull}},
+ {{13892108278886933045ull, 14206287856644226029ull,
+ 8513864715522239963ull, 6164372517985197615ull}},
+ {{3530077293326502594ull, 13146173802377894633ull,
+ 6030644875975412050ull, 7705465647481497019ull}},
+ {{13735513354397533881ull, 12828044644913572049ull,
+ 1463310038270938579ull, 4815916029675935637ull}},
+ {{3334333637714753640ull, 11423369787714577158ull,
+ 6440823566266061128ull, 6019895037094919546ull}},
+ {{13391289083998217857ull, 14279212234643221447ull,
+ 17274401494687352218ull, 7524868796368649432ull}},
+ {{15287084705139968017ull, 13536193665079401308ull,
+ 10796500934179595136ull, 4703042997730405895ull}},
+ {{662111807715408405ull, 16920242081349251636ull,
+ 8883940149297106016ull, 5878803747163007369ull}},
+ {{827639759644260506ull, 2703558527977012929ull,
+ 15716611205048770425ull, 7348504683953759211ull}},
+ {{5646235717982713537ull, 7991134178398654065ull,
+ 15034077987883575127ull, 9185630854942199014ull}},
+ {{15058112369807665721ull, 11911987889140240646ull,
+ 4784612723999846550ull, 5741019284338874384ull}},
+ {{9599268425404806343ull, 5666612824570525000ull,
+ 5980765904999808188ull, 7176274105423592980ull}},
+ {{11999085531756007928ull, 7083266030713156250ull,
+ 7475957381249760235ull, 8970342631779491225ull}},
+ {{12111114475774892859ull, 2121198259982028704ull,
+ 16201688409349569907ull, 5606464144862182015ull}},
+ {{15138893094718616074ull, 16486555880259699592ull,
+ 15640424493259574479ull, 7008080181077727519ull}},
+ {{476872294688718476ull, 15996508831897236587ull,
+ 14938844598147080195ull, 8760100226347159399ull}},
+ {{16438946248676306712ull, 7691975010722078914ull,
+ 16254306901483006978ull, 5475062641466974624ull}},
+ {{11325310773990607582ull, 391596726547822835ull,
+ 1871139553144207107ull, 6843828301833718281ull}},
+ {{9544952449060871573ull, 14324553963466942256ull,
+ 6950610459857646787ull, 8554785377292147851ull}},
+ {{5965595280663044733ull, 6647003217953144958ull,
+ 2038288528197335290ull, 5346740860807592407ull}},
+ {{16680366137683581725ull, 17532126059296207005ull,
+ 16382918715528832824ull, 6683426076009490508ull}},
+ {{7015399616822313444ull, 3468413500410707141ull,
+ 2031904320701489415ull, 8354282595011863136ull}},
+ {{6690467769727639854ull, 9085287465397773819ull,
+ 1269940200438430884ull, 5221426621882414460ull}},
+ {{3751398693732161914ull, 11356609331747217274ull,
+ 1587425250548038605ull, 6526783277353018075ull}},
+ {{13912620404019978200ull, 360703609401857880ull,
+ 15819339618467211969ull, 8158479096691272593ull}},
+ {{8695387752512486375ull, 11754654801944630935ull,
+ 2969558233900925624ull, 5099049435432045371ull}},
+ {{6257548672213220065ull, 14693318502430788669ull,
+ 17547005847658320742ull, 6373811794290056713ull}},
+ {{12433621858693912985ull, 9143276091183710028ull,
+ 8098699254290737216ull, 7967264742862570892ull}},
+ {{16994385698538471424ull, 5714547556989818767ull,
+ 14285059070786486568ull, 4979540464289106807ull}},
+ {{16631296104745701376ull, 7143184446237273459ull,
+ 13244637820055720306ull, 6224425580361383509ull}},
+ {{16177434112504738816ull, 18152352594651367632ull,
+ 2720739219787486670ull, 7780531975451729387ull}},
+ {{10110896320315461760ull, 6733534353229716866ull,
+ 17841363076863036833ull, 4862832484657330866ull}},
+ {{3415248363539551392ull, 13028603959964533987ull,
+ 13078331809224020233ull, 6078540605821663583ull}},
+ {{18104118509706602952ull, 2450696894673503771ull,
+ 11736228743102637388ull, 7598175757277079479ull}},
+ {{9009231059352932893ull, 10755057596025715665ull,
+ 14252671992080230223ull, 4748859848298174674ull}},
+ {{15873224842618554020ull, 8832135976604756677ull,
+ 8592467953245511971ull, 5936074810372718343ull}},
+ {{6006472997991028813ull, 6428483952328557943ull,
+ 6128898923129502060ull, 7420093512965897929ull}},
+ {{10671574651385474864ull, 13241174507060124522ull,
+ 15359776873024408547ull, 4637558445603686205ull}},
+ {{4116096277377067772ull, 11939782115397767749ull,
+ 5364663035998346972ull, 5796948057004607757ull}},
+ {{9756806365148722619ull, 14924727644247209686ull,
+ 11317514813425321619ull, 7246185071255759696ull}},
+ {{2972635919581127466ull, 14044223536881624204ull,
+ 14146893516781652024ull, 9057731339069699620ull}},
+ {{11081269486592980474ull, 8777639710551015127ull,
+ 18065180484843308323ull, 5661082086918562262ull}},
+ {{9239900839813837689ull, 6360363619761381005ull,
+ 13358103569199359596ull, 7076352608648202828ull}},
+ {{16161562068194685015ull, 7950454524701726256ull,
+ 16697629461499199495ull, 8845440760810253535ull}},
+ {{10100976292621678135ull, 11886563105579660766ull,
+ 17353547441078081540ull, 5528400475506408459ull}},
+ {{3402848328922321860ull, 14858203881974575958ull,
+ 17080248282920214021ull, 6910500594383010574ull}},
+ {{13476932448007678133ull, 4737696797186056235ull,
+ 12126938316795491719ull, 8638125742978763218ull}},
+ {{6117239770791104881ull, 9878589525882367003ull,
+ 12191022466424570228ull, 5398828589361727011ull}},
+ {{3034863695061493197ull, 12348236907352958754ull,
+ 10627092064603324881ull, 6748535736702158764ull}},
+ {{13016951655681642305ull, 1600238078909034730ull,
+ 13283865080754156102ull, 8435669670877698455ull}},
+ {{12747280803228414345ull, 14835206854600310418ull,
+ 15219944703112429419ull, 5272293544298561534ull}},
+ {{6710728967180742123ull, 13932322549823000119ull,
+ 9801558842035760966ull, 6590366930373201918ull}},
+ {{3776725190548539749ull, 8192031150423974341ull,
+ 3028576515689925400ull, 8237958662966502398ull}},
+ {{4666296253306531295ull, 5120019469014983963ull,
+ 15727918377588367087ull, 5148724164354063998ull}},
+ {{1221184298205776215ull, 1788338317841342050ull,
+ 10436525935130683051ull, 6435905205442579998ull}},
+ {{10749852409611996077ull, 16070480952583841274ull,
+ 3822285382058578005ull, 8044881506803224998ull}},
+ {{11330343774434885452ull, 12349893604578594748ull,
+ 16223986419068774965ull, 5028050941752015623ull}},
+ {{14162929718043606815ull, 1602308950441079723ull,
+ 15668297005408580803ull, 6285063677190019529ull}},
+ {{13091976129127120615ull, 15837944243333513366ull,
+ 5750313201478562291ull, 7856329596487524412ull}},
+ {{3570799062277062480ull, 7592872142869751902ull,
+ 12817317787778877240ull, 4910205997804702757ull}},
+ {{13686870864701103908ull, 9491090178587189877ull,
+ 2186589179441432838ull, 6137757497255878447ull}},
+ {{3273530525594216173ull, 2640490686379211539ull,
+ 16568294529583954760ull, 7672196871569848058ull}},
+ {{18186857642992242773ull, 1650306678987007211ull,
+ 14966870099417359629ull, 4795123044731155036ull}},
+ {{18121886035312915562ull, 6674569367161146918ull,
+ 261843550562147920ull, 5993903805913943796ull}},
+ {{13428985507286368644ull, 8343211708951433648ull,
+ 327304438202684900ull, 7492379757392429745ull}},
+ {{8393115942053980403ull, 14437879354949421838ull,
+ 11733780319945147822ull, 4682737348370268590ull}},
+ {{1268022890712699695ull, 8823977156832001490ull,
+ 5443853363076658970ull, 5853421685462835738ull}},
+ {{10808400650245650427ull, 1806599409185226054ull,
+ 16028188740700599521ull, 7316777106828544672ull}},
+ {{4287128775952287225ull, 6869935279908920472ull,
+ 1588491852166197785ull, 9145971383535680841ull}},
+ {{2679455484970179516ull, 15822924596011545055ull,
+ 12522022453672343375ull, 5716232114709800525ull}},
+ {{17184377411494888107ull, 15166969726587043414ull,
+ 1817470011808265507ull, 7145290143387250657ull}},
+ {{12257099727513834326ull, 14347026139806416364ull,
+ 6883523533187719788ull, 8931612679234063321ull}},
+ {{16884059366550922262ull, 18190263374233786035ull,
+ 15831417254310794627ull, 5582257924521289575ull}},
+ {{16493388189761264923ull, 18126143199364844640ull,
+ 15177585549461105380ull, 6977822405651611969ull}},
+ {{2169991163492029538ull, 4210934925496504185ull,
+ 5136923881544218014ull, 8722278007064514962ull}},
+ {{12885459523250988221ull, 16466892383717478827ull,
+ 7822263444392524162ull, 5451423754415321851ull}},
+ {{11495138385636347372ull, 11360243442792072726ull,
+ 5166143287063267299ull, 6814279693019152314ull}},
+ {{5145550945190658407ull, 9588618285062703004ull,
+ 15681051145683859932ull, 8517849616273940392ull}},
+ {{12439341377598937313ull, 15216258465018965185ull,
+ 9800656966052412457ull, 5323656010171212745ull}},
+ {{1714118666716507929ull, 5185265025991542770ull,
+ 16862507225992903476ull, 6654570012714015931ull}},
+ {{11366020370250410719ull, 6481581282489428462ull,
+ 16466448014063741441ull, 8318212515892519914ull}},
+ {{2492076712979118795ull, 15580203347624362549ull,
+ 14903216027217226304ull, 5198882822432824946ull}},
+ {{7726781909651286398ull, 1028510110820901570ull,
+ 9405647997166757073ull, 6498603528041031183ull}},
+ {{435105350209332190ull, 5897323656953514867ull, 7145373978031058437ull,
+ 8123254410051288979ull}},
+ {{16412841908376690283ull, 5991670294809640743ull,
+ 2160015727055717571ull, 5077034006282055612ull}},
+ {{15904366367043474949ull, 2877901850084663025ull,
+ 2700019658819646964ull, 6346292507852569515ull}},
+ {{6045399903522179974ull, 3597377312605828782ull,
+ 17210082628806722417ull, 7932865634815711893ull}},
+ {{17613432994983526196ull, 13777575866447112748ull,
+ 13062144652217895462ull, 4958041021759819933ull}},
+ {{3570047170019856129ull, 7998597796204115128ull,
+ 2492622759990205616ull, 6197551277199774917ull}},
+ {{4462558962524820161ull, 9998247245255143910ull,
+ 7727464468415144924ull, 7746939096499718646ull}},
+ {{16624157406860176313ull, 15472276565139240751ull,
+ 217979274332077673ull, 4841836935312324154ull}},
+ {{16168510740147832487ull, 5505287651141887227ull,
+ 9495846129769872900ull, 6052296169140405192ull}},
+ {{15598952406757402705ull, 6881609563927359034ull,
+ 11869807662212341125ull, 7565370211425506490ull}},
+ {{14361031272650764595ull, 6606848986668293348ull,
+ 12030315807310101107ull, 4728356382140941556ull}},
+ {{17951289090813455743ull, 3646875214907978781ull,
+ 15037894759137626384ull, 5910445477676176945ull}},
+ {{8604053308234655967ull, 4558594018634973477ull,
+ 4962310393639869268ull, 7388056847095221182ull}},
+ {{7683376326860353932ull, 12072493298501634231ull,
+ 16936502051307082004ull, 4617535529434513238ull}},
+ {{4992534390148054510ull, 15090616623127042789ull,
+ 11947255527279076697ull, 5771919411793141548ull}},
+ {{10852354006112456042ull, 5028212723626639774ull,
+ 14934069409098845872ull, 7214899264741426935ull}},
+ {{4342070470785794244ull, 6285265904533299718ull,
+ 14055900742946169436ull, 9018624080926783669ull}},
+ {{16548852099523285115ull, 13151663227188088131ull,
+ 11090780973555049849ull, 5636640050579239793ull}},
+ {{16074379105976718489ull, 2604520978702946452ull, 28418161661648600ull,
+ 7045800063224049742ull}},
+ {{1646229808761346495ull, 3255651223378683066ull,
+ 9258894738931836558ull, 8807250079030062177ull}},
+ {{5640579648903229464ull, 15869840069893840628ull,
+ 17316024257900867608ull, 5504531299393788860ull}},
+ {{7050724561129036830ull, 1390556013657749169ull,
+ 3198286248666532895ull, 6880664124242236076ull}},
+ {{13425091719838683941ull, 15573253072354350173ull,
+ 3997857810833166118ull, 8600830155302795095ull}},
+ {{10696525334112871415ull, 5121597151794080954ull,
+ 9416190159411810680ull, 5375518847064246934ull}},
+ {{4147284630786313461ull, 6401996439742601193ull,
+ 2546865662409987542ull, 6719398558830308668ull}},
+ {{9795791806910279730ull, 17225867586533027299ull,
+ 3183582078012484427ull, 8399248198537885835ull}},
+ {{3816526870105230879ull, 8460324232369448110ull,
+ 18130639863253660431ull, 5249530124086178646ull}},
+ {{13994030624486314407ull, 5963719272034422233ull,
+ 13439927792212299731ull, 6561912655107723308ull}},
+ {{3657480225325729297ull, 2842963071615639888ull,
+ 16799909740265374664ull, 8202390818884654135ull}},
+ {{2285925140828580811ull, 1776851919759774930ull,
+ 17417472615306941021ull, 5126494261802908834ull}},
+ {{12080778462890501821ull, 6832750918127106566ull,
+ 12548468732278900468ull, 6408117827253636043ull}},
+ {{5877601041758351469ull, 8540938647658883208ull,
+ 11073899896921237681ull, 8010147284067045054ull}},
+ {{3673500651098969668ull, 16867301700855271765ull,
+ 2309501417148385646ull, 5006342052541903159ull}},
+ {{9203561832301099989ull, 11860755089214313898ull,
+ 16721934826717645770ull, 6257927565677378948ull}},
+ {{2281080253521599178ull, 5602571824663116565ull,
+ 2455674459687505597ull, 7822409457096723686ull}},
+ {{3731518167664693438ull, 5807450399628141805ull,
+ 15369854592586854710ull, 4889005910685452303ull}},
+ {{9276083728008254702ull, 16482685036389953064ull,
+ 14600632222306180483ull, 6111257388356815379ull}},
+ {{11595104660010318377ull, 15991670277060053426ull,
+ 13639104259455337700ull, 7639071735446019224ull}},
+ {{11858626430933836890ull, 771421886307757583ull,
+ 8524440162159586063ull, 4774419834653762015ull}},
+ {{10211597020239908208ull, 14799335413166860691ull,
+ 6043864184272094674ull, 5968024793317202519ull}},
+ {{8152810256872497356ull, 9275797229603800056ull,
+ 2943144211912730439ull, 7460030991646503149ull}},
+ {{5095506410545310848ull, 12714902296143456891ull,
+ 4145308141659150476ull, 4662519369779064468ull}},
+ {{1757696994754250656ull, 15893627870179321114ull,
+ 5181635177073938095ull, 5828149212223830585ull}},
+ {{11420493280297589128ull, 15255348819296763488ull,
+ 11088729989769810523ull, 7285186515279788231ull}},
+ {{14275616600371986409ull, 14457500005693566456ull,
+ 9249226468784875250ull, 9106483144099735289ull}},
+ {{8922260375232491506ull, 13647623521985866939ull,
+ 17309981589059016791ull, 5691551965062334555ull}},
+ {{6541139450613226478ull, 12447843384054945770ull,
+ 17025790967896383085ull, 7114439956327918194ull}},
+ {{17399796350121308906ull, 1724746174786518500ull,
+ 12058866673015703049ull, 8893049945409897743ull}},
+ {{1651500681971042258ull, 12607181405310043823ull,
+ 14454320698275896261ull, 5558156215881186089ull}},
+ {{15899433907745966535ull, 1923918701355391066ull,
+ 4232842817562706615ull, 6947695269851482612ull}},
+ {{10650920347827682360ull, 16239956431976402545ull,
+ 5291053521953383268ull, 8684619087314353265ull}},
+ {{18186040263460771235ull, 926600733130475782ull,
+ 14836123497289334303ull, 5427886929571470790ull}},
+ {{13509178292471188236ull, 14993308971695258440ull,
+ 9321782334756892070ull, 6784858661964338488ull}},
+ {{16886472865588985295ull, 9518264177764297242ull,
+ 11652227918446115088ull, 8481073327455423110ull}},
+ {{15165731559420503714ull, 5948915111102685776ull,
+ 2670956430601434026ull, 5300670829659639444ull}},
+ {{510420375566078026ull, 16659515925733133029ull,
+ 3338695538251792532ull, 6625838537074549305ull}},
+ {{5249711487884985436ull, 2377650833456864670ull,
+ 8785055441242128570ull, 8282298171343186631ull}},
+ {{17116127735210279610ull, 6097717789337928322ull,
+ 12408188678417412212ull, 5176436357089491644ull}},
+ {{12171787632158073704ull, 7622147236672410403ull,
+ 15510235848021765265ull, 6470545446361864555ull}},
+ {{10603048521770204226ull, 14139370064267900908ull,
+ 14776108791599818677ull, 8088181807952330694ull}},
+ {{15850277362961153449ull, 11142949299381132019ull,
+ 4623381976322498769ull, 5055113629970206684ull}},
+ {{15201160685274053908ull, 93628568944251312ull, 5779227470403123462ull,
+ 6318892037462758355ull}},
+ {{554706782883015769ull, 9340407748035089949ull, 2612348319576516423ull,
+ 7898615046828447944ull}},
+ {{2652534748515578808ull, 12755283870163013074ull,
+ 1632717699735322764ull, 4936634404267779965ull}},
+ {{12539040472499249317ull, 15944104837703766342ull,
+ 6652583143096541359ull, 6170793005334724956ull}},
+ {{6450428553769285838ull, 15318445028702320024ull,
+ 8315728928870676699ull, 7713491256668406195ull}},
+ {{4031517846105803649ull, 7268185133725256063ull,
+ 2891487571330478985ull, 4820932035417753872ull}},
+ {{427711289204866657ull, 13696917435583957983ull,
+ 3614359464163098731ull, 6026165044272192340ull}},
+ {{14369697166788247034ull, 12509460776052559574ull,
+ 4517949330203873414ull, 7532706305340240425ull}},
+ {{4369374710815266492ull, 3206726966605461830ull,
+ 14352933377445890644ull, 4707941440837650265ull}},
+ {{14685090425373858923ull, 4008408708256827287ull,
+ 4106108666525199593ull, 5884926801047062832ull}},
+ {{13744677013289935750ull, 9622196903748422013ull,
+ 5132635833156499491ull, 7356158501308828540ull}},
+ {{3345788211330255975ull, 7416060111258139613ull,
+ 6415794791445624364ull, 9195198126636035675ull}},
+ {{4396960641295103937ull, 13858409606391113066ull,
+ 1704028735439821275ull, 5746998829147522297ull}},
+ {{14719572838473655729ull, 12711325989561503428ull,
+ 6741721937727164498ull, 7183748536434402871ull}},
+ {{18399466048092069661ull, 6665785450097103477ull,
+ 3815466403731567719ull, 8979685670543003589ull}},
+ {{13805509289271237490ull, 11083644933951771529ull,
+ 4690509511545923776ull, 5612303544089377243ull}},
+ {{3421828556306883151ull, 13854556167439714412ull,
+ 1251450871005016816ull, 7015379430111721554ull}},
+ {{4277285695383603938ull, 17318195209299643015ull,
+ 10787685625611046828ull, 8769224287639651942ull}},
+ {{9590832587255834317ull, 1600499968957501076ull,
+ 2130617497579516364ull, 5480765179774782464ull}},
+ {{11988540734069792897ull, 2000624961196876345ull,
+ 2663271871974395455ull, 6850956474718478080ull}},
+ {{1150617862305077409ull, 16335839256778259144ull,
+ 3329089839967994318ull, 8563695593398097600ull}},
+ {{719136163940673381ull, 5598213517059024061ull, 2080681149979996449ull,
+ 5352309745873811000ull}},
+ {{5510606223353229630ull, 11609452914751167980ull,
+ 2600851437474995561ull, 6690387182342263750ull}},
+ {{6888257779191537037ull, 676758088156796263ull,
+ 12474436333698520260ull, 8362983977927829687ull}},
+ {{11222690139635792504ull, 9646345841952773472ull,
+ 14714051736202657018ull, 5226864986204893554ull}},
+ {{14028362674544740630ull, 2834560265586191032ull,
+ 9169192633398545465ull, 6533581232756116943ull}},
+ {{17535453343180925788ull, 8154886350410126694ull,
+ 6849804773320793927ull, 8166976540945146179ull}},
+ {{6347972321060690714ull, 12014332996647411040ull,
+ 1975284974111802252ull, 5104360338090716362ull}},
+ {{7934965401325863392ull, 15017916245809263800ull,
+ 11692478254494528623ull, 6380450422613395452ull}},
+ {{9918706751657329240ull, 14160709288834191846ull,
+ 14615597818118160779ull, 7975563028266744315ull}},
+ {{1587505701358442871ull, 6544600296307675952ull,
+ 6828905627110156535ull, 4984726892666715197ull}},
+ {{1984382126698053589ull, 3569064351957207036ull,
+ 13147818052315083573ull, 6230908615833393996ull}},
+ {{2480477658372566986ull, 9073016458373896699ull,
+ 16434772565393854466ull, 7788635769791742495ull}},
+ {{17691199600978712030ull, 10282321304911073340ull,
+ 17189261881012240897ull, 4867897356119839059ull}},
+ {{3667255427513838422ull, 17464587649566229580ull,
+ 16874891332837913217ull, 6084871695149798824ull}},
+ {{4584069284392298027ull, 7995676506675623263ull,
+ 2646870092337839906ull, 7606089618937248531ull}},
+ {{9782572330386268123ull, 9608983835099652443ull,
+ 17795194872207007605ull, 4753806011835780331ull}},
+ {{7616529394555447250ull, 16622915812301953458ull,
+ 17632307571831371602ull, 5942257514794725414ull}},
+ {{297289706339533254ull, 11555272728522666015ull,
+ 12817012427934438695ull, 7427821893493406768ull}},
+ {{7103335094103290140ull, 14139574482967748115ull,
+ 8010632767459024184ull, 4642388683433379230ull}},
+ {{4267482849201724771ull, 17674468103709685144ull,
+ 789918922469004422ull, 5802985854291724038ull}},
+ {{5334353561502155963ull, 12869713092782330622ull,
+ 10210770689941031336ull, 7253732317864655047ull}},
+ {{15891313988732470762ull, 16087141365977913277ull,
+ 8151777343998901266ull, 9067165397330818809ull}},
+ {{12237914252171488178ull, 14666149372163583702ull,
+ 16624075886067783051ull, 5666978373331761755ull}},
+ {{6074020778359584415ull, 13721000696777091724ull,
+ 16168408839157340910ull, 7083722966664702194ull}},
+ {{7592525972949480518ull, 7927878834116588847ull,
+ 10987139012091900330ull, 8854653708330877743ull}},
+ {{11662857760734507180ull, 9566610289750255933ull,
+ 13784490910198519562ull, 5534158567706798589ull}},
+ {{743514145635970263ull, 2734890825333044109ull, 3395555582465985741ull,
+ 6917698209633498237ull}},
+ {{5541078700472350733ull, 8030299550093693040ull,
+ 8856130496509870080ull, 8647122762041872796ull}},
+ {{3463174187795219208ull, 5018937218808558150ull,
+ 14758453597173444608ull, 5404451726276170497ull}},
+ {{13552339771598799818ull, 6273671523510697687ull,
+ 4613008941184642048ull, 6755564657845213122ull}},
+ {{12328738696071111869ull, 7842089404388372109ull,
+ 14989633213335578368ull, 8444455822306516402ull}},
+ {{10011304694258138870ull, 4901305877742732568ull,
+ 13980206776762124384ull, 5277784888941572751ull}},
+ {{12514130867822673587ull, 6126632347178415710ull,
+ 12863572452525267576ull, 6597231111176965939ull}},
+ {{6419291547923566176ull, 7658290433973019638ull,
+ 11467779547229196566ull, 8246538888971207424ull}},
+ {{17847115272734392572ull, 174745502805749369ull,
+ 7167362217018247854ull, 5154086805607004640ull}},
+ {{8473836035635827003ull, 9441803915361962520ull,
+ 8959202771272809817ull, 6442608507008755800ull}},
+ {{10592295044544783754ull, 16413940912629841054ull,
+ 11199003464091012271ull, 8053260633760944750ull}},
+ {{2008498384413101942ull, 17176242098034732515ull,
+ 2387691146629494765ull, 5033287896100590469ull}},
+ {{16345681035798541140ull, 7635244567261251931ull,
+ 7596299951714256361ull, 6291609870125738086ull}},
+ {{15820415276320788521ull, 14155741727503952818ull,
+ 272002902788044643ull, 7864512337657172608ull}},
+ {{14499445566127880730ull, 6541495570476276559ull,
+ 170001814242527902ull, 4915320211035732880ull}},
+ {{13512620939232463008ull, 17400241499950121507ull,
+ 212502267803159877ull, 6144150263794666100ull}},
+ {{12279090155613190856ull, 7915243819655488172ull,
+ 265627834753949847ull, 7680187829743332625ull}},
+ {{16897803384113020093ull, 11864556414925761963ull,
+ 11695232442789688414ull, 4800117393589582890ull}},
+ {{16510568211713887212ull, 5607323481802426646ull,
+ 5395668516632334710ull, 6000146741986978613ull}},
+ {{11414838227787583207ull, 16232526389107809116ull,
+ 11356271664217806291ull, 7500183427483723266ull}},
+ {{16357645929222015313ull, 7839485983978686745ull,
+ 11709355808563516836ull, 4687614642177327041ull}},
+ {{6611999356245355429ull, 9799357479973358432ull, 801636705422232333ull,
+ 5859518302721658802ull}},
+ {{8264999195306694286ull, 16860882868394085944ull,
+ 10225417918632566224ull, 7324397878402073502ull}},
+ {{10331248994133367857ull, 2629359511783055814ull,
+ 3558400361435931973ull, 9155497348002591878ull}},
+ {{1845344602905967007ull, 3949192704078103836ull,
+ 16059058281179621195ull, 5722185842501619923ull}},
+ {{2306680753632458758ull, 324804861670241891ull,
+ 15462136833047138590ull, 7152732303127024904ull}},
+ {{16718408997322737160ull, 9629378113942578171ull,
+ 880926967599371621ull, 8940915378908781131ull}},
+ {{8143162614113016773ull, 8324204330427805309ull,
+ 16691480419245464927ull, 5588072111817988206ull}},
+ {{14790639286068658870ull, 5793569394607368732ull,
+ 11640978487202055351ull, 6985090139772485258ull}},
+ {{41555033876271972ull, 2630275724831823012ull, 5327851072147793381ull,
+ 8731362674715606573ull}},
+ {{9249343933027445790ull, 3949765337233583334ull,
+ 5635749929306064815ull, 5457101671697254108ull}},
+ {{2338307879429531430ull, 325520653114591264ull, 7044687411632581019ull,
+ 6821377089621567635ull}},
+ {{2922884849286914287ull, 14241958871675402792ull,
+ 4194173246113338369ull, 8526721362026959544ull}},
+ {{1826803030804321430ull, 1983695267156044889ull,
+ 2621358278820836481ull, 5329200851266849715ull}},
+ {{6895189806932789691ull, 7091305102372444015ull,
+ 17111755903808209313ull, 6661501064083562143ull}},
+ {{4007301240238599210ull, 13475817396392942923ull,
+ 16778008861332873737ull, 8326876330104452679ull}},
+ {{198720265935430554ull, 1504856845104507471ull,
+ 17403784565974127942ull, 5204297706315282924ull}},
+ {{14083458387701451905ull, 11104443093235410146ull,
+ 3307986633758108311ull, 6505372132894103656ull}},
+ {{8380950947772039073ull, 9268867848116874779ull,
+ 4134983292197635389ull, 8131715166117629570ull}},
+ {{2932251333143830469ull, 8098885414286740689ull,
+ 7196050576050910022ull, 5082321978823518481ull}},
+ {{8277000184857175990ull, 900234731003650053ull,
+ 13606749238491025432ull, 6352902473529398101ull}},
+ {{14957936249498857891ull, 1125293413754562566ull,
+ 3173378492831618078ull, 7941128091911747627ull}},
+ {{4737024137509398278ull, 14538366438878765316ull,
+ 18124262622515618962ull, 4963205057444842266ull}},
+ {{5921280171886747847ull, 8949586011743680837ull,
+ 13431956241289747895ull, 6204006321806052833ull}},
+ {{12013286233285822713ull, 6575296496252213142ull,
+ 2954887246330021157ull, 7755007902257566042ull}},
+ {{2896617877376251292ull, 6415403319371327166ull,
+ 6458490547383651127ull, 4846879938910978776ull}},
+ {{12844144383575089923ull, 3407568130786771053ull,
+ 8073113184229563909ull, 6058599923638723470ull}},
+ {{2220122424186698691ull, 8871146181910851721ull, 868019443432179078ull,
+ 7573249904548404338ull}},
+ {{12916791561185156442ull, 932780345266894421ull,
+ 5154198170572499828ull, 4733281190342752711ull}},
+ {{2310931396199281841ull, 1165975431583618027ull,
+ 1831061694788236881ull, 5916601487928440889ull}},
+ {{16723722300531266013ull, 6069155307906910437ull,
+ 6900513136912684005ull, 7395751859910551111ull}},
+ {{12758169447045735210ull, 6099065076655512975ull,
+ 11230349738211509359ull, 4622344912444094444ull}},
+ {{11336025790379781109ull, 3012145327392003315ull,
+ 14037937172764386699ull, 5777931140555118055ull}},
+ {{9558346219547338482ull, 17600239714522167856ull,
+ 12935735447528095469ull, 7222413925693897569ull}},
+ {{11947932774434173102ull, 8165241587870546108ull,
+ 2334611254127955625ull, 9028017407117371962ull}},
+ {{16690830020876133997ull, 16632491038487561077ull,
+ 6070818052257360169ull, 5642510879448357476ull}},
+ {{7028479470813003784ull, 6955555742827287635ull,
+ 7588522565321700212ull, 7053138599310446845ull}},
+ {{4173913320088866826ull, 8694444678534109544ull,
+ 14097339225079513169ull, 8816423249138058556ull}},
+ {{2608695825055541766ull, 16963242970152288225ull,
+ 18034209052529471538ull, 5510264530711286597ull}},
+ {{7872555799746815112ull, 11980681675835584473ull,
+ 8707703260379675711ull, 6887830663389108247ull}},
+ {{14452380768110906794ull, 10364166076367092687ull,
+ 6272943057047206735ull, 8609788329236385309ull}},
+ {{15950267007710398602ull, 13395132825370514785ull,
+ 6226432419868198161ull, 5381117705772740818ull}},
+ {{6102775704355834541ull, 2908857976430979770ull,
+ 17006412561690023510ull, 6726397132215926022ull}},
+ {{16851841667299568984ull, 12859444507393500520ull,
+ 12034643665257753579ull, 8407996415269907528ull}},
+ {{10532401042062230615ull, 5731309807907243873ull,
+ 7521652290786095987ull, 5254997759543692205ull}},
+ {{17777187321005176173ull, 2552451241456666937ull,
+ 14013751381910007888ull, 6568747199429615256ull}},
+ {{8386426095974306504ull, 3190564051820833672ull,
+ 17517189227387509860ull, 8210933999287019070ull}},
+ {{5241516309983941565ull, 11217474569242796853ull,
+ 6336557248689805758ull, 5131833749554386919ull}},
+ {{11163581405907314860ull, 4798471174698720258ull,
+ 3309010542434869294ull, 6414792186942983649ull}},
+ {{4731104720529367767ull, 15221461005228176131ull,
+ 8747949196470974521ull, 8018490233678729561ull}},
+ {{651097441117160903ull, 2595884100626528226ull,
+ 16996683293862828836ull, 5011556396049205975ull}},
+ {{10037243838251226936ull, 3244855125783160282ull,
+ 16634168098901148141ull, 6264445495061507469ull}},
+ {{3323182760959257862ull, 8667754925656338257ull,
+ 6957652068344271464ull, 7830556868826884337ull}},
+ {{13606204271668005924ull, 5417346828535211410ull,
+ 15877747588783639425ull, 4894098043016802710ull}},
+ {{7784383302730231597ull, 11383369554096402167ull,
+ 10623812449124773473ull, 6117622553771003388ull}},
+ {{5118793109985401592ull, 394153887338338997ull,
+ 13279765561405966842ull, 7647028192213754235ull}},
+ {{5505088702954569947ull, 4858032198013849777ull,
+ 5994010466665035324ull, 4779392620133596397ull}},
+ {{11493046897120600338ull, 6072540247517312221ull,
+ 12104199101758682059ull, 5974240775166995496ull}},
+ {{531250566118586710ull, 2978989290969252373ull,
+ 15130248877198352574ull, 7467800968958744370ull}},
+ {{2637874613037810646ull, 15696926362137946445ull,
+ 14068091566676358262ull, 4667375605599215231ull}},
+ {{7909029284724651211ull, 10397785915817657248ull,
+ 12973428439918059924ull, 5834219506999019039ull}},
+ {{9886286605905814014ull, 12997232394772071560ull,
+ 11605099531470187001ull, 7292774383748773799ull}},
+ {{12357858257382267517ull, 2411482438182925738ull,
+ 9894688395910345848ull, 9115967979685967249ull}},
+ {{12335347429291305103ull, 1507176523864328586ull,
+ 17713395293512435915ull, 5697479987303729530ull}},
+ {{6195812249759355570ull, 15719028710112574445ull,
+ 12918372080035769085ull, 7121849984129661913ull}},
+ {{12356451330626582366ull, 5813727832358554344ull,
+ 2312907044762547645ull, 8902312480162077392ull}},
+ {{7722782081641613979ull, 5939422904437790417ull,
+ 1445566902976592278ull, 5563945300101298370ull}},
+ {{14265163620479405378ull, 16647650667402013829ull,
+ 11030330665575516155ull, 6954931625126622962ull}},
+ {{3996396470317093010ull, 16197877315825129383ull,
+ 4564541295114619386ull, 8693664531408278703ull}},
+ {{9415276821589264988ull, 14735359340818093768ull,
+ 9770367337087718972ull, 5433540332130174189ull}},
+ {{11769096026986581234ull, 18419199176022617210ull,
+ 16824645189787036619ull, 6791925415162717736ull}},
+ {{5487997996878450735ull, 18412312951600883609ull,
+ 2584062413524244158ull, 8489906768953397171ull}},
+ {{14959213794117501469ull, 6896009576323164351ull,
+ 17755940072948510263ull, 5306191730595873231ull}},
+ {{14087331224219488933ull, 4008325951976567535ull,
+ 17583239072758249925ull, 6632739663244841539ull}},
+ {{12997478011846973262ull, 9622093458398097323ull,
+ 17367362822520424502ull, 8290924579056051924ull}},
+ {{5817580748190664337ull, 1402122393071422923ull,
+ 1631229727220489506ull, 5181827861910032453ull}},
+ {{2660289916810942517ull, 10976025028194054462ull,
+ 6650723177452999786ull, 6477284827387540566ull}},
+ {{12548734432868453954ull, 4496659248387792269ull,
+ 17536776008671025541ull, 8096606034234425707ull}},
+ {{10148802029756477673ull, 5116255039456064120ull,
+ 8654641996205697011ull, 5060378771396516067ull}},
+ {{12686002537195597092ull, 1783632780892692246ull,
+ 6206616476829733360ull, 6325473464245645084ull}},
+ {{6634131134639720556ull, 2229540976115865308ull,
+ 7758270596037166700ull, 7906841830307056355ull}},
+ {{13369703996004601156ull, 10616835146927191625ull,
+ 2543076113309535235ull, 4941776143941910222ull}},
+ {{2877071939723587733ull, 8659357915231601628ull,
+ 12402217178491694852ull, 6177220179927387777ull}},
+ {{3596339924654484666ull, 10824197394039502035ull,
+ 1667713417832454853ull, 7721525224909234722ull}},
+ {{18388613517404910580ull, 9070966380488382723ull,
+ 5654006904572672187ull, 4825953265568271701ull}},
+ {{18374080878328750321ull, 6727021957183090500ull,
+ 11679194649143228138ull, 6032441581960339626ull}},
+ {{4520857024201386286ull, 17632149483333638934ull,
+ 5375621274574259364ull, 7540551977450424533ull}},
+ {{16660593695408030141ull, 1796721390228748525ull,
+ 5665606305822606055ull, 4712844985906515333ull}},
+ {{6990684063977873964ull, 16080959793068099369ull,
+ 11693693900705645472ull, 5891056232383144166ull}},
+ {{13350041098399730358ull, 1654455667625572595ull,
+ 5393745339027281033ull, 7363820290478930208ull}},
+ {{12075865354572275044ull, 6679755602959353648ull,
+ 6742181673784101291ull, 9204775363098662760ull}},
+ {{7547415846607671903ull, 1869004242635902078ull,
+ 4213863546115063307ull, 5752984601936664225ull}},
+ {{210897771404814070ull, 16171313358577041310ull,
+ 9879015451071217037ull, 7191230752420830281ull}},
+ {{9486994251110793396ull, 6379083642939137925ull,
+ 16960455332266409201ull, 8989038440526037851ull}},
+ {{8235214416157939824ull, 15516142322905430963ull,
+ 8294441573452811798ull, 5618149025328773657ull}},
+ {{5682332001770036876ull, 10171805866777012896ull,
+ 14979737985243402652ull, 7022686281660967071ull}},
+ {{7102915002212546095ull, 12714757333471266120ull,
+ 14112986463126865411ull, 8778357852076208839ull}},
+ {{4439321876382841310ull, 5640880324205847373ull,
+ 15738145567095372738ull, 5486473657547630524ull}},
+ {{10160838363905939541ull, 16274472442112085024ull,
+ 1225937885159664306ull, 6858092071934538156ull}},
+ {{12701047954882424426ull, 11119718515785330472ull,
+ 1532422356449580383ull, 8572615089918172695ull}},
+ {{7938154971801515267ull, 13867353100006913401ull,
+ 7875293000422069595ull, 5357884431198857934ull}},
+ {{14534379733179281987ull, 12722505356581253847ull,
+ 620744213672811186ull, 6697355538998572418ull}},
+ {{13556288648046714580ull, 6679759658871791501ull,
+ 9999302303945789791ull, 8371694423748215522ull}},
+ {{10778523414242890565ull, 11092378814435951544ull,
+ 10861249958393506523ull, 5232309014842634701ull}},
+ {{13473154267803613206ull, 9253787499617551526ull,
+ 18188248466419271058ull, 6540386268553293376ull}},
+ {{7618070797899740699ull, 2343862337667163600ull,
+ 4288566509314537207ull, 8175482835691616721ull}},
+ {{4761294248687337937ull, 8382442988683059106ull,
+ 14209569114390055514ull, 5109676772307260450ull}},
+ {{15174989847713948229ull, 1254681698999048074ull,
+ 8538589356132793585ull, 6387095965384075563ull}},
+ {{9745365272787659478ull, 6180038142176197997ull,
+ 6061550676738604077ull, 7983869956730094454ull}},
+ {{8396696304705981126ull, 6168366848073817700ull,
+ 17623527228243791260ull, 4989918722956309033ull}},
+ {{10495870380882476408ull, 7710458560092272125ull,
+ 8194350980022575363ull, 6237398403695386292ull}},
+ {{17731523994530483413ull, 5026387181687952252ull,
+ 10242938725028219204ull, 7796748004619232865ull}},
+ {{1858830459726776325ull, 12364864025409745966ull,
+ 17931051749211106762ull, 4872967502887020540ull}},
+ {{11546910111513246215ull, 6232707994907406649ull,
+ 3967070612804331837ull, 6091209378608775676ull}},
+ {{598579584109394056ull, 12402571012061646216ull,
+ 4958838266005414796ull, 7614011723260969595ull}},
+ {{374112240068371285ull, 16974978919393304693ull, 793430907039690295ull,
+ 4758757327038105997ull}},
+ {{5079326318512852011ull, 16607037630814242962ull,
+ 5603474652227000773ull, 5948446658797632496ull}},
+ {{15572529934995840821ull, 6923738983235639990ull,
+ 7004343315283750967ull, 7435558323497040620ull}},
+ {{5121145190945012609ull, 11244865892163356850ull,
+ 13601086608907120162ull, 4647223952185650387ull}},
+ {{15624803525536041570ull, 4832710328349420254ull,
+ 12389672242706512299ull, 5809029940232062984ull}},
+ {{10307632370065276154ull, 1429201892009387414ull,
+ 15487090303383140374ull, 7261287425290078730ull}},
+ {{3661168425726819384ull, 11009874401866510076ull,
+ 10135490842374149659ull, 9076609281612598413ull}},
+ {{11511602302934037923ull, 4575328491952874845ull,
+ 8640524785697537489ull, 5672880801007874008ull}},
+ {{554444823385383692ull, 10330846633368481461ull,
+ 10800655982121921861ull, 7091101001259842510ull}},
+ {{5304742047659117519ull, 17525244310137989730ull,
+ 4277447940797626518ull, 8863876251574803138ull}},
+ {{7927149798214336353ull, 6341591675408855677ull,
+ 7285090981425904478ull, 5539922657234251961ull}},
+ {{14520623266195308346ull, 17150361631115845404ull,
+ 13718049745209768501ull, 6924903321542814951ull}},
+ {{18150779082744135432ull, 7602893983612643043ull,
+ 12535876163084822723ull, 8656129151928518689ull}},
+ {{9038393917501390693ull, 2445965730544207950ull, 917393574286932346ull,
+ 5410080719955324181ull}},
+ {{2074620360021962558ull, 12280829200035035746ull,
+ 5758427986286053336ull, 6762600899944155226ull}},
+ {{11816647486882229006ull, 15351036500043794682ull,
+ 16421407019712342478ull, 8453251124930194032ull}},
+ {{11997090697728781033ull, 4982711794099983772ull,
+ 10263379387320214049ull, 5283281953081371270ull}},
+ {{14996363372160976291ull, 10840075761052367619ull,
+ 3605852197295491753ull, 6604102441351714088ull}},
+ {{14133768196773832460ull, 18161780719742847428ull,
+ 4507315246619364691ull, 8255128051689642610ull}},
+ {{18056977159838421095ull, 9045269940625585690ull,
+ 7428758047564490836ull, 5159455032306026631ull}},
+ {{13347849412943250561ull, 11306587425781982113ull,
+ 4674261541028225641ull, 6449318790382533289ull}},
+ {{2849753710896899489ull, 298176226945313930ull,
+ 10454512944712669956ull, 8061648487978166611ull}},
+ {{6392782087737950085ull, 9409732178695597014ull,
+ 4228227581231724770ull, 5038530304986354132ull}},
+ {{17214349646527213414ull, 2538793186514720459ull,
+ 5285284476539655963ull, 6298162881232942665ull}},
+ {{16906251039731628864ull, 17008549538425564286ull,
+ 11218291614101957857ull, 7872703601541178331ull}},
+ {{5954720881404880136ull, 3712814433874895823ull,
+ 4705589249600029709ull, 4920439750963236457ull}},
+ {{2831715083328712266ull, 9252704060771007683ull,
+ 10493672580427425040ull, 6150549688704045571ull}},
+ {{17374701909443054044ull, 11565880075963759603ull,
+ 8505404707106893396ull, 7688187110880056964ull}},
+ {{8553345684188214826ull, 16452047084332125560ull,
+ 14539249978796584180ull, 4805116944300035602ull}},
+ {{10691682105235268532ull, 2118314781705605334ull,
+ 8950690436640954418ull, 6006396180375044503ull}},
+ {{4141230594689309857ull, 11871265513986782476ull,
+ 6576677027373805118ull, 7507995225468805629ull}},
+ {{11811641158535594469ull, 2807854927814351143ull,
+ 6416266151322322151ull, 4692497015918003518ull}},
+ {{10152865429742105182ull, 17344876715050102641ull,
+ 17243704726007678496ull, 5865621269897504397ull}},
+ {{17302767805605019381ull, 3234351820103076685ull,
+ 7719572852227434409ull, 7332026587371880497ull}},
+ {{7793401701724110514ull, 8654625793556233761ull,
+ 14261152083711680915ull, 9165033234214850621ull}},
+ {{16400091109646038832ull, 3103298111758952148ull,
+ 11219063061533494524ull, 5728145771384281638ull}},
+ {{2053369813347996923ull, 3879122639698690186ull,
+ 4800456790062092347ull, 7160182214230352048ull}},
+ {{11790084303539771962ull, 237217281195974828ull,
+ 6000570987577615434ull, 8950227767787940060ull}},
+ {{16592174726567133285ull, 4759946819174872171ull,
+ 12973728904090785454ull, 5593892354867462537ull}},
+ {{16128532389781528702ull, 15173305560823366022ull,
+ 2382103074831318105ull, 6992365443584328172ull}},
+ {{10937293450372135069ull, 5131573895747043816ull,
+ 2977628843539147632ull, 8740456804480410215ull}},
+ {{6835808406482584418ull, 3207233684841902385ull,
+ 8778547054853049126ull, 5462785502800256384ull}},
+ {{13156446526530618427ull, 13232414142907153789ull,
+ 10973183818566311407ull, 6828481878500320480ull}},
+ {{2610500102881109321ull, 11928831660206554333ull,
+ 13716479773207889259ull, 8535602348125400600ull}},
+ {{3937405573514387278ull, 5149676778415402506ull,
+ 8572799858254930787ull, 5334751467578375375ull}},
+ {{14145129003747759905ull, 1825409954591865228ull,
+ 6104313804391275580ull, 6668439334472969219ull}},
+ {{17681411254684699881ull, 2281762443239831535ull,
+ 3018706237061706571ull, 8335549168091211524ull}},
+ {{17968411061819019282ull, 17567002591520752373ull,
+ 11110063435018342414ull, 5209718230057007202ull}},
+ {{8625455771991610390ull, 12735381202546164659ull,
+ 4664207256918152210ull, 6512147787571259003ull}},
+ {{6170133696562125084ull, 6695854466327930016ull,
+ 1218573052720302359ull, 8140184734464073754ull}},
+ {{3856333560351328178ull, 11102438069096038116ull,
+ 5373294176377576878ull, 5087615459040046096ull}},
+ {{4820416950439160222ull, 4654675549515271837ull,
+ 6716617720471971098ull, 6359519323800057620ull}},
+ {{10637207206476338181ull, 15041716473748865604ull,
+ 8395772150589963872ull, 7949399154750072025ull}},
+ {{15871626540902487172ull, 9401072796093041002ull,
+ 16776572640187197180ull, 4968374471718795015ull}},
+ {{10616161139273333156ull, 11751340995116301253ull,
+ 16359029781806608571ull, 6210468089648493769ull}},
+ {{17881887442519054349ull, 10077490225467988662ull,
+ 6613729171976097002ull, 7763085112060617212ull}},
+ {{6564493633147021064ull, 10910117409344880818ull,
+ 13356952769339836434ull, 4851928195037885757ull}},
+ {{17428989078288552138ull, 4414274724826325214ull,
+ 2861132906392631831ull, 6064910243797357197ull}},
+ {{12562864311005914365ull, 906157387605518614ull,
+ 8188102151418177693ull, 7581137804746696496ull}},
+ {{3240104175951308574ull, 2872191376467143086ull,
+ 5117563844636361058ull, 4738211127966685310ull}},
+ {{13273502256793911526ull, 12813611257438704665ull,
+ 15620326842650227130ull, 5922763909958356637ull}},
+ {{2756819765710225695ull, 6793642034943605024ull,
+ 5690350498030620201ull, 7403454887447945797ull}},
+ {{1723012353568891060ull, 15775241317908222900ull,
+ 5862312070482831577ull, 4627159304654966123ull}},
+ {{2153765441961113824ull, 5883993592103114913ull,
+ 2716204069676151568ull, 5783949130818707654ull}},
+ {{7303892820878780184ull, 7354991990128893641ull,
+ 12618627123949965268ull, 7229936413523384567ull}},
+ {{13741552044525863134ull, 9193739987661117051ull,
+ 11161597886510068681ull, 9037420516904230709ull}},
+ {{6282627018614970507ull, 17275302538356667917ull,
+ 9281841688282486877ull, 5648387823065144193ull}},
+ {{12464969791696101038ull, 7759070117663671184ull,
+ 16213988128780496501ull, 7060484778831430241ull}},
+ {{15581212239620126297ull, 14310523665506976884ull,
+ 6432427105693456914ull, 8825605973539287802ull}},
+ {{514885612907803128ull, 13555763309369248457ull,
+ 8631952959485798475ull, 5516003733462054876ull}},
+ {{5255293034562141814ull, 12333018118284172667ull,
+ 10789941199357248094ull, 6895004666827568595ull}},
+ {{1957430274775289363ull, 6192900611000440026ull,
+ 8875740480769172214ull, 8618755833534460744ull}},
+ {{5835079940161943756ull, 17705620937157438728ull,
+ 5547337800480732633ull, 5386722395959037965ull}},
+ {{7293849925202429695ull, 8296968116164634698ull,
+ 11545858269028303696ull, 6733402994948797456ull}},
+ {{18340684443357812927ull, 10371210145205793372ull,
+ 14432322836285379620ull, 8416753743685996820ull}},
+ {{2239555740243857271ull, 15705378377608396666ull,
+ 18243573809533138070ull, 5260471089803748012ull}},
+ {{12022816712159597397ull, 10408350935155720024ull,
+ 4357723188206870972ull, 6575588862254685016ull}},
+ {{15028520890199496746ull, 13010438668944650030ull,
+ 5447153985258588715ull, 8219486077818356270ull}},
+ {{4781139537947297562ull, 5825681158876712317ull,
+ 17239529296068781659ull, 5137178798636472668ull}},
+ {{10588110440861509857ull, 2670415430168502492ull,
+ 3102667546376425458ull, 6421473498295590836ull}},
+ {{13235138051076887321ull, 12561391324565403923ull,
+ 3878334432970531822ull, 8026841872869488545ull}},
+ {{5966118272709360624ull, 3239183559425989548ull,
+ 13953174066675052149ull, 5016776170543430340ull}},
+ {{7457647840886700780ull, 8660665467709874839ull,
+ 17441467583343815186ull, 6270970213179287925ull}},
+ {{4710373782680988071ull, 1602459797782567741ull,
+ 7966776423897605271ull, 7838712766474109907ull}},
+ {{5249826623389311496ull, 7919066401255186694ull,
+ 2673392255722309342ull, 4899195479046318692ull}},
+ {{15785655316091415178ull, 675460964714207559ull,
+ 3341740319652886678ull, 6123994348807898365ull}},
+ {{15120383126686881069ull, 10067698242747535257ull,
+ 8788861417993496251ull, 7654992936009872956ull}},
+ {{2532710426538218812ull, 3986468392503515584ull,
+ 14716410423100710965ull, 4784370585006170597ull}},
+ {{3165888033172773515ull, 9594771509056782384ull,
+ 4560454973593724994ull, 5980463231257713247ull}},
+ {{3957360041465966894ull, 2770092349466202172ull,
+ 1088882698564768339ull, 7475579039072141559ull}},
+ {{11696722062771005117ull, 17872208782912234021ull,
+ 7598080714244062067ull, 4672236899420088474ull}},
+ {{785844523181592684ull, 17728574960212904623ull, 274228855950301776ull,
+ 5840296124275110593ull}},
+ {{14817363709259154567ull, 3713974626556579162ull,
+ 4954472088365265125ull, 7300370155343888241ull}},
+ {{9298332599719167400ull, 9254154301623111857ull,
+ 10804776128883969310ull, 9125462694179860301ull}},
+ {{17340672920892949385ull, 1172160420087057006ull,
+ 9058828089766174771ull, 5703414183862412688ull}},
+ {{12452469114261410923ull, 15300258580390984970ull,
+ 11323535112207718463ull, 7129267729828015860ull}},
+ {{6342214355971987846ull, 14513637207061343309ull,
+ 14154418890259648079ull, 8911584662285019825ull}},
+ {{6269726981696186356ull, 15988552282054421424ull,
+ 1928982778771198193ull, 5569740413928137391ull}},
+ {{7837158727120232945ull, 6150632297285863068ull,
+ 16246286528746161454ull, 6962175517410171738ull}},
+ {{9796448408900291181ull, 16911662408462104643ull,
+ 11084486124077926009ull, 8702719396762714673ull}},
+ {{3816937246348988036ull, 3652259977647733546ull, 10274799907621900ull,
+ 5439199622976696671ull}},
+ {{13994543594791010853ull, 4565324972059666932ull,
+ 13847901555166691087ull, 6798999528720870838ull}},
+ {{17493179493488763566ull, 1094970196647195761ull,
+ 8086504907103588051ull, 8498749410901088548ull}},
+ {{4015708155789395373ull, 16825257437400355015ull,
+ 14277437603794518339ull, 5311718381813180342ull}},
+ {{407949176309356312ull, 16419885778323055865ull,
+ 8623424967888372116ull, 6639647977266475428ull}},
+ {{5121622488814083294ull, 2078113149194268215ull,
+ 10779281209860465146ull, 8299559971583094285ull}},
+ {{10118543083149883915ull, 5910506736673805538ull,
+ 9042893765376484668ull, 5187224982239433928ull}},
+ {{3424806817082579086ull, 7388133420842256923ull,
+ 11303617206720605835ull, 6484031227799292410ull}},
+ {{18116066576635387569ull, 4623480757625433249ull,
+ 4906149471545981486ull, 8105039034749115513ull}},
+ {{4405012582756035375ull, 16724733528798059493ull,
+ 14595558465784708188ull, 5065649396718197195ull}},
+ {{10117951746872432123ull, 2459172837288022750ull,
+ 13632762063803497332ull, 6332061745897746494ull}},
+ {{3424067646735764345ull, 3073966046610028438ull,
+ 7817580542899595857ull, 7915077182372183118ull}},
+ {{15975100334492016428ull, 13450443825199737533ull,
+ 274301820884859506ull, 4946923238982614449ull}},
+ {{6133817362832856823ull, 7589682744644896109ull,
+ 4954563294533462287ull, 6183654048728268061ull}},
+ {{12278957721968458932ull, 4875417412378732232ull,
+ 10804890136594215763ull, 7729567560910335076ull}},
+ {{7674348576230286833ull, 741292873523013693ull,
+ 15976428372226160660ull, 4830979725568959422ull}},
+ {{14204621738715246445ull, 926616091903767116ull,
+ 10747163428427925017ull, 6038724656961199278ull}},
+ {{17755777173394058056ull, 5769956133307096799ull,
+ 4210582248680130463ull, 7548405821201499098ull}},
+ {{18014889761012368141ull, 10523751610958017355ull,
+ 7243299923852469443ull, 4717753638250936936ull}},
+ {{17906926182838072272ull, 8543003495270133790ull,
+ 9054124904815586804ull, 5897192047813671170ull}},
+ {{13160285691692814532ull, 10678754369087667238ull,
+ 2094284094164707697ull, 7371490059767088963ull}},
+ {{7226985077761242357ull, 17960128979786971952ull,
+ 16452913172988048333ull, 9214362574708861203ull}},
+ {{4516865673600776473ull, 13530923621580551422ull,
+ 7977227723903836256ull, 5758976609193038252ull}},
+ {{14869454128855746400ull, 16913654526975689277ull,
+ 9971534654879795320ull, 7198720761491297815ull}},
+ {{4751759605787519288ull, 2695324085010059981ull,
+ 7852732300172356247ull, 8998400951864122269ull}},
+ {{5275692762830893507ull, 8602106580772369344ull,
+ 7213800696821416606ull, 5624000594915076418ull}},
+ {{6594615953538616883ull, 1529261189110685872ull,
+ 18240622907881546566ull, 7030000743643845522ull}},
+ {{8243269941923271104ull, 11134948523243133148ull,
+ 13577406597997157399ull, 8787500929554806903ull}},
+ {{14375415750556820248ull, 13876871854668040073ull,
+ 15403408151389305230ull, 5492188080971754314ull}},
+ {{4134211632913861598ull, 8122717781480274284ull,
+ 10030888152381855730ull, 6865235101214692893ull}},
+ {{5167764541142326998ull, 930025189995567047ull,
+ 17150296208904707567ull, 8581543876518366116ull}},
+ {{10147381865855036230ull, 7498794771388311260ull,
+ 1495563093710666421ull, 5363464922823978823ull}},
+ {{12684227332318795287ull, 13985179482662776979ull,
+ 15704511922420496738ull, 6704331153529973528ull}},
+ {{11243598146971106205ull, 8258102316473695416ull,
+ 1183895829316069307ull, 8380413941912466911ull}},
+ {{7027248841856941378ull, 2855470938582365683ull,
+ 7657463920963625173ull, 5237758713695291819ull}},
+ {{4172375033893788819ull, 8181024691655345008ull,
+ 4960143882777143562ull, 6547198392119114774ull}},
+ {{5215468792367236023ull, 1002908827714405452ull,
+ 15423551890326205261ull, 8183997990148893467ull}},
+ {{12483040032084298323ull, 2932661026535197359ull,
+ 7333876922240184336ull, 5114998743843058417ull}},
+ {{10992114021677984999ull, 3665826283168996699ull,
+ 13779032171227618324ull, 6393748429803823021ull}},
+ {{9128456508670093345ull, 4582282853961245874ull,
+ 3388732158752359193ull, 7992185537254778777ull}},
+ {{10316971336346196245ull, 14393141829794248431ull,
+ 13647172645288694255ull, 4995115960784236735ull}},
+ {{8284528152005357402ull, 13379741268815422635ull,
+ 12447279788183479915ull, 6243894950980295919ull}},
+ {{5743974171579308848ull, 12112990567591890390ull,
+ 10947413716801961990ull, 7804868688725369899ull}},
+ {{17425041912519231742ull, 2958933086317543589ull,
+ 4536290563787532292ull, 4878042930453356187ull}},
+ {{7946244335366875966ull, 3698666357896929487ull,
+ 1058677186307027461ull, 6097553663066695234ull}},
+ {{5321119400781207053ull, 9235018965798549763ull,
+ 10546718519738560134ull, 7621942078833369042ull}},
+ {{1019856616274560456ull, 1160200835196705698ull,
+ 11203385093263987988ull, 4763713799270855651ull}},
+ {{10498192807197976378ull, 1450251043995882122ull,
+ 9392545348152597081ull, 5954642249088569564ull}},
+ {{3899368972142694665ull, 6424499823422240557ull,
+ 11740681685190746351ull, 7443302811360711955ull}},
+ {{4742948616802878118ull, 10932841417279982204ull,
+ 5032083044030522517ull, 4652064257100444972ull}},
+ {{5928685771003597647ull, 18277737790027365659ull,
+ 6290103805038153146ull, 5815080321375556215ull}},
+ {{2799171195327109154ull, 13623800200679431266ull,
+ 3250943737870303529ull, 7268850401719445269ull}},
+ {{12722336031013662251ull, 3194692195567125370ull,
+ 8675365690765267316ull, 9086063002149306586ull}},
+ {{12563146037810926811ull, 11220054659084229164ull,
+ 10033789575155679976ull, 5678789376343316616ull}},
+ {{15703932547263658514ull, 14025068323855286455ull,
+ 12542236968944599970ull, 7098486720429145770ull}},
+ {{15018229665652185238ull, 8307963367964332261ull,
+ 6454424174325974155ull, 8873108400536432213ull}},
+ {{11692236550246309726ull, 2886634095764013711ull,
+ 6339858118167427799ull, 5545692750335270133ull}},
+ {{10003609669380499253ull, 17443350674987180851ull,
+ 12536508666136672652ull, 6932115937919087666ull}},
+ {{7892826068298236162ull, 3357444270024424448ull,
+ 6447263795816065008ull, 8665144922398859583ull}},
+ {{4933016292686397602ull, 2098402668765265280ull,
+ 10947068900026122486ull, 5415715576499287239ull}},
+ {{6166270365857997002ull, 11846375372811357408ull,
+ 9072150106605265203ull, 6769644470624109049ull}},
+ {{7707837957322496252ull, 10196283197586808856ull,
+ 15951873651683969408ull, 8462055588280136311ull}},
+ {{4817398723326560158ull, 6372676998491755535ull,
+ 16887450059943562736ull, 5288784742675085194ull}},
+ {{1410062385730812293ull, 7965846248114694419ull,
+ 11885940538074677612ull, 6610980928343856493ull}},
+ {{15597636037445679079ull, 9957307810143368023ull,
+ 1022367617311183303ull, 8263726160429820617ull}},
+ {{16666051551044631280ull, 13140846408980686870ull,
+ 12168194806887959324ull, 5164828850268637885ull}},
+ {{11609192401951013292ull, 16426058011225858588ull,
+ 1375185453327785443ull, 6456036062835797357ull}},
+ {{14511490502438766615ull, 15920886495604935331ull,
+ 6330667835087119708ull, 8070045078544746696ull}},
+ {{6763838554810535183ull, 727182022898308774ull, 3956667396929449818ull,
+ 5043778174090466685ull}},
+ {{17678170230367944786ull, 10132349565477661775ull,
+ 9557520264589200176ull, 6304722717613083356ull}},
+ {{17486026769532543079ull, 12665436956847077219ull,
+ 11946900330736500220ull, 7880903397016354195ull}},
+ {{8622923721744145472ull, 17139270134884199070ull,
+ 5160969697496618685ull, 4925564623135221372ull}},
+ {{1555282615325406032ull, 7589029613323085126ull,
+ 6451212121870773357ull, 6156955778919026715ull}},
+ {{11167475306011533348ull, 14097973035081244311ull,
+ 3452329133911078792ull, 7696194723648783394ull}},
+ {{13897201093898290199ull, 8811233146925777694ull,
+ 6769391727121812149ull, 4810121702280489621ull}},
+ {{8148129330518086940ull, 15625727452084610022ull,
+ 13073425677329653090ull, 6012652127850612026ull}},
+ {{961789626292832867ull, 10308787278250986720ull,
+ 7118410059807290555ull, 7515815159813265033ull}},
+ {{601118516433020542ull, 4137149039693172748ull,
+ 15978221333448026357ull, 4697384474883290645ull}},
+ {{751398145541275678ull, 9783122318043853839ull, 6137718611527869234ull,
+ 5871730593604113307ull}},
+ {{14774305737208758309ull, 3005530860700041490ull,
+ 3060462245982448639ull, 7339663242005141634ull}},
+ {{9244510134656172078ull, 17591971631157215575ull,
+ 13048949844332836606ull, 9174579052506427042ull}},
+ {{12695347861801189405ull, 6383296251045871830ull,
+ 12767279671135410783ull, 5734111907816516901ull}},
+ {{6645812790396710948ull, 3367434295379951884ull,
+ 2124041533637099767ull, 7167639884770646127ull}},
+ {{8307265987995888685ull, 18044350924507103567ull,
+ 16490109972328538420ull, 8959549855963307658ull}},
+ {{12109570270138512284ull, 2054347290962163921ull,
+ 14918004751132724417ull, 5599718659977067286ull}},
+ {{1301904782390976643ull, 7179620132130092806ull,
+ 9424133902061129713ull, 6999648324971334108ull}},
+ {{10850753014843496612ull, 13586211183590003911ull,
+ 11780167377576412141ull, 8749560406214167635ull}},
+ {{13699249661918267239ull, 10797224998957446396ull,
+ 5056761601771563636ull, 5468475253883854772ull}},
+ {{17124062077397834048ull, 13496531248696807995ull,
+ 6320952002214454545ull, 6835594067354818465ull}},
+ {{16793391578319904656ull, 3035606005588846282ull,
+ 12512876021195456086ull, 8544492584193523081ull}},
+ {{15107555754877328314ull, 15732311808775192638ull,
+ 903018485606078197ull, 5340307865120951926ull}},
+ {{9661072656741884585ull, 5830331705686827086ull,
+ 10352145143862373555ull, 6675384831401189907ull}},
+ {{2852968784072579923ull, 2676228613681145954ull,
+ 8328495411400579040ull, 8344231039251487384ull}},
+ {{6394791508472750356ull, 1672642883550716221ull,
+ 5205309632125361900ull, 5215144399532179615ull}},
+ {{12605175404018325849ull, 2090803604438395276ull,
+ 1894951021729314471ull, 6518930499415224519ull}},
+ {{15756469255022907311ull, 16448562560830157807ull,
+ 16203746832443806800ull, 8148663124269030648ull}},
+ {{16765322312030398926ull, 10280351600518848629ull,
+ 10127341770277379250ull, 5092914452668144155ull}},
+ {{7121594834755834945ull, 3627067463793784979ull,
+ 8047491194419336159ull, 6366143065835180194ull}},
+ {{4290307525017405777ull, 18368892385024394936ull,
+ 835991956169394390ull, 7957678832293975243ull}},
+ {{2681442203135878611ull, 6868871722212858931ull,
+ 16663396037101729158ull, 4973549270183734526ull}},
+ {{17186860809202011975ull, 17809461689620849471ull,
+ 11605873009522385639ull, 6216936587729668158ull}},
+ {{16871889993075127065ull, 17650141093598673935ull,
+ 5283969225048206241ull, 7771170734662085198ull}},
+ {{17462460273313036272ull, 4113809155858089353ull,
+ 17137538820937292613ull, 4856981709163803248ull}},
+ {{7993017286359131628ull, 9753947463249999596ull,
+ 2975179452462064150ull, 6071227136454754061ull}},
+ {{9991271607948914534ull, 2969062292207723687ull,
+ 8330660334004968092ull, 7589033920568442576ull}},
+ {{13162073782609153440ull, 11079035969484603112ull,
+ 5206662708753105057ull, 4743146200355276610ull}},
+ {{16452592228261441800ull, 13736906573590178ull,
+ 15731700422796157130ull, 5928932750444095762ull}},
+ {{11342368248472026442ull, 9240543170071763531ull,
+ 10441253491640420604ull, 7411165938055119703ull}},
+ {{4783137146081322574ull, 14998711518149628015ull,
+ 13443312459916344733ull, 4631978711284449814ull}},
+ {{1367235414174265314ull, 4913331342404871307ull,
+ 7580768538040655109ull, 5789973389105562268ull}},
+ {{15544102322999995354ull, 10753350196433477037ull,
+ 9475960672550818886ull, 7237466736381952835ull}},
+ {{5595069848467830481ull, 4218315708687070489ull,
+ 7233264822261135704ull, 9046833420477441044ull}},
+ {{15026133701360863811ull, 2636447317929419055ull,
+ 13744162550767985623ull, 5654270887798400652ull}},
+ {{14170981108273691859ull, 17130617202693937531ull,
+ 17180203188459982028ull, 7067838609748000815ull}},
+ {{13102040366914726920ull, 2966527429657870298ull,
+ 16863567967147589632ull, 8834798262185001019ull}},
+ {{12800461247749092229ull, 1854079643536168936ull,
+ 8233886970253549568ull, 5521748913865625637ull}},
+ {{16000576559686365286ull, 2317599554420211170ull,
+ 14904044731244324864ull, 6902186142332032046ull}},
+ {{10777348662753180800ull, 2896999443025263963ull,
+ 9406683877200630272ull, 8627732677915040058ull}},
+ {{4429999905007044048ull, 1810624651890789977ull,
+ 10490863441677781824ull, 5392332923696900036ull}},
+ {{10149185899686192964ull, 2263280814863487471ull,
+ 13113579302097227280ull, 6740416154621125045ull}},
+ {{8074796356180353301ull, 2829101018579359339ull,
+ 2556916072339370388ull, 8425520193276406307ull}},
+ {{2740904713399026861ull, 10991560173466875395ull,
+ 17738973609707964156ull, 5265950120797753941ull}},
+ {{17261188947030947288ull, 13739450216833594243ull,
+ 8338658956852791483ull, 6582437650997192427ull}},
+ {{16964800165361296206ull, 12562626752614604900ull,
+ 5811637677638601450ull, 8228047063746490534ull}},
+ {{1379628066496034321ull, 12463327738811515967ull,
+ 17467331603806289618ull, 5142529414841556583ull}},
+ {{15559593138402206613ull, 6355787636659619150ull,
+ 17222478486330474119ull, 6428161768551945729ull}},
+ {{10226119386147982458ull, 3333048527397136034ull,
+ 7693040052630928937ull, 8035202210689932162ull}},
+ {{11003010634769876941ull, 13612370375691679781ull,
+ 9419836051321718489ull, 5022001381681207601ull}},
+ {{18365449311889734080ull, 3180404914332436014ull,
+ 16386481082579536016ull, 6277501727101509501ull}},
+ {{13733439603007391792ull, 3975506142915545018ull,
+ 6648043297942256308ull, 7846877158876886877ull}},
+ {{13195085770307007774ull, 11708063376176991444ull,
+ 6460870070427604144ull, 4904298224298054298ull}},
+ {{16493857212883759717ull, 14635079220221239305ull,
+ 17299459624889280988ull, 6130372780372567872ull}},
+ {{6782263460822535934ull, 18293849025276549132ull,
+ 3177580457402049619ull, 7662965975465709841ull}},
+ {{13462286699868860767ull, 9127812631584149255ull,
+ 13515202831944750772ull, 4789353734666068650ull}},
+ {{12216172356408688055ull, 11409765789480186569ull,
+ 7670631503076162657ull, 5986692168332585813ull}},
+ {{1435157390228696356ull, 427149181568069500ull,
+ 14199975397272591226ull, 7483365210415732266ull}},
+ {{10120345405747711031ull, 4878654256907431341ull,
+ 13486670641722757420ull, 4677103256509832666ull}},
+ {{17262117775612026693ull, 6098317821134289176ull,
+ 7634966265298670967ull, 5846379070637290833ull}},
+ {{3130903145805481750ull, 3011211257990473567ull,
+ 14155393850050726613ull, 7307973838296613541ull}},
+ {{17748686987539015899ull, 8375700090915479862ull,
+ 3859184257281244554ull, 9134967297870766927ull}},
+ {{6481243348784497033ull, 9846498575249562818ull,
+ 9329519188441859702ull, 5709354561169229329ull}},
+ {{17324926222835397099ull, 3084751182207177714ull,
+ 16273585003979712532ull, 7136693201461536661ull}},
+ {{12432785741689470566ull, 3855938977758972143ull,
+ 6506923199692476953ull, 8920866501826920827ull}},
+ {{14688020116197000960ull, 13939176907167827349ull,
+ 1760983990594104143ull, 5575541563641825517ull}},
+ {{4524967089964087488ull, 12812285115532396283ull,
+ 6812916006670018083ull, 6969426954552281896ull}},
+ {{1044522844027721455ull, 11403670375988107450ull,
+ 8516145008337522604ull, 8711783693190352370ull}},
+ {{5264512795944713814ull, 16350666021847342964ull,
+ 9934276648638339531ull, 5444864808243970231ull}},
+ {{6580640994930892267ull, 15826646508881790801ull,
+ 7806159792370536510ull, 6806081010304962789ull}},
+ {{12837487262091003238ull, 10559936099247462693ull,
+ 14369385758890558542ull, 8507601262881203486ull}},
+ {{10329272548020570976ull, 1988274043602276279ull,
+ 4369180080879211185ull, 5317250789300752179ull}},
+ {{8299904666598325816ull, 7097028572930233253ull, 849789082671626077ull,
+ 6646563486625940224ull}},
+ {{14986566851675295173ull, 13482971734590179470ull,
+ 1062236353339532596ull, 8308204358282425280ull}},
+ {{4754918263869671580ull, 17650229370973637977ull,
+ 663897720837207872ull, 5192627723926515800ull}},
+ {{10555333848264477378ull, 3616042640007495855ull,
+ 829872151046509841ull, 6490784654908144750ull}},
+ {{8582481291903208819ull, 9131739318436757723ull,
+ 10260712225662913109ull, 8113480818635180937ull}},
+ {{3058207798225811560ull, 8013180083236667529ull,
+ 17942160187107790453ull, 5070925511646988085ull}},
+ {{8434445766209652354ull, 14628161122473222315ull,
+ 8592642178602574354ull, 6338656889558735107ull}},
+ {{5931371189334677538ull, 9061829366236752086ull,
+ 6129116704825830039ull, 7923321111948418884ull}},
+ {{17542165048616337174ull, 12581172381539051909ull,
+ 13054069977370919582ull, 4952075694967761802ull}},
+ {{8092648255488257755ull, 6503093440069039079ull,
+ 7094215434858873670ull, 6190094618709702253ull}},
+ {{5504124300932934289ull, 17352238836941074657ull,
+ 13479455312000979991ull, 7737618273387127816ull}},
+ {{14969292734151553691ull, 17762678300729253516ull,
+ 8424659570000612494ull, 4836011420866954885ull}},
+ {{264871843979890498ull, 12979975839056791088ull,
+ 15142510480928153522ull, 6045014276083693606ull}},
+ {{331089804974863122ull, 7001597761966213052ull, 9704766064305416095ull,
+ 7556267845104617008ull}},
+ {{9430303164964065259ull, 11293527628869965013ull,
+ 6065478790190885059ull, 4722667403190385630ull}},
+ {{16399564974632469478ull, 9505223517660068362ull,
+ 16805220524593382132ull, 5903334253987982037ull}},
+ {{11276084181435811040ull, 11881529397075085453ull,
+ 7171467600459563953ull, 7379167817484977547ull}},
+ {{9353395622611075852ull, 508426845530846552ull, 2176324241073533519ull,
+ 4611979885928110967ull}},
+ {{11691744528263844815ull, 14470591612195721902ull,
+ 16555463356624080610ull, 5764974857410138708ull}},
+ {{5391308623475030210ull, 8864867478389876570ull,
+ 2247585122070549147ull, 7206218571762673386ull}},
+ {{15962507816198563571ull, 6469398329559957808ull,
+ 12032853439442962242ull, 9007773214703341732ull}},
+ {{9976567385124102232ull, 8655059974402361534ull,
+ 16743905436506627209ull, 5629858259189588582ull}},
+ {{3247337194550351982ull, 15430510986430339822ull,
+ 11706509758778508203ull, 7037322823986985728ull}},
+ {{13282543530042715785ull, 14676452714610536873ull,
+ 14633137198473135254ull, 8796653529983732160ull}},
+ {{1384060678635615510ull, 4561096928204197642ull,
+ 9145710749045709534ull, 5497908456239832600ull}},
+ {{10953447885149295195ull, 14924743197110022860ull,
+ 11432138436307136917ull, 6872385570299790750ull}},
+ {{13691809856436618994ull, 4820870941105364863ull,
+ 5066801008529145339ull, 8590481962874738438ull}},
+ {{15474910187913968727ull, 707201328977159087ull,
+ 17001808685612879549ull, 5369051226796711523ull}},
+ {{14731951716465073005ull, 5495687679648836763ull,
+ 16640574838588711532ull, 6711314033495889404ull}},
+ {{13803253627153953352ull, 6869609599561045954ull,
+ 2353974474526337799ull, 8389142541869861756ull}},
+ {{13238719535398608749ull, 11211035027366735577ull,
+ 10694606083433736932ull, 5243214088668663597ull}},
+ {{2713341363966097225ull, 14013793784208419472ull,
+ 17979943622719559069ull, 6554017610835829496ull}},
+ {{3391676704957621531ull, 3682184174978360628ull,
+ 4028185454689897221ull, 8192522013544786871ull}},
+ {{11343169977453289265ull, 4607208118575169344ull,
+ 9435144936822267619ull, 5120326258465491794ull}},
+ {{14178962471816611581ull, 1147324129791573776ull,
+ 2570559134173058716ull, 6400407823081864743ull}},
+ {{17723703089770764476ull, 1434155162239467220ull,
+ 17048256972998487107ull, 8000509778852330928ull}},
+ {{1853942394251951990ull, 17037248040895524677ull,
+ 10655160608124054441ull, 5000318611782706830ull}},
+ {{6929114011242327891ull, 7461501995837242134ull,
+ 4095578723300292244ull, 6250398264728383538ull}},
+ {{17884764550907685672ull, 9326877494796552667ull,
+ 14342845440980141113ull, 7812997830910479422ull}},
+ {{8872134835103609593ull, 17358513480316315177ull,
+ 4352592382185200291ull, 4883123644319049639ull}},
+ {{15701854562306899895ull, 17086455831968006067ull,
+ 829054459304112460ull, 6103904555398812049ull}},
+ {{15015632184456236965ull, 2911325716250455968ull,
+ 5648004092557528480ull, 7629880694248515061ull}},
+ {{9384770115285148103ull, 1819578572656534980ull,
+ 5835845567062149252ull, 4768675433905321913ull}},
+ {{11730962644106435129ull, 2274473215820668725ull,
+ 11906492977255074469ull, 5960844292381652391ull}},
+ {{828645249850880199ull, 7454777538203223811ull,
+ 10271430203141455182ull, 7451055365477065489ull}},
+ {{16658804345652657788ull, 47549942949626977ull,
+ 17948858923031879249ull, 4656909603423165930ull}},
+ {{6988447376783658523ull, 4671123447114421626ull,
+ 13212701616935073253ull, 5821137004278957413ull}},
+ {{17958931257834348962ull, 10450590327320414936ull,
+ 2680818965886677854ull, 7276421255348696767ull}},
+ {{4001919998583384587ull, 3839865872295742863ull,
+ 17186081762640511030ull, 9095526569185870958ull}},
+ {{9418729026755697223ull, 16234974225467003001ull,
+ 6129615083222931489ull, 5684704105741169349ull}},
+ {{16385097301872009432ull, 6458659726551590039ull,
+ 12273704872456052266ull, 7105880132176461686ull}},
+ {{15869685608912623886ull, 17296696695044263357ull,
+ 6118759053715289524ull, 8882350165220577108ull}},
+ {{12224396514784083881ull, 1587063397547888790ull,
+ 13047596445426831761ull, 5551468853262860692ull}},
+ {{6057123606625329043ull, 6595515265362248892ull,
+ 16309495556783539701ull, 6939336066578575865ull}},
+ {{7571404508281661304ull, 12856080100130199019ull,
+ 6551811390697260914ull, 8674170083223219832ull}},
+ {{2426284808462344363ull, 12646736081008762291ull,
+ 4094882119185788071ull, 5421356302014512395ull}},
+ {{16867914065860094166ull, 11196734082833564959ull,
+ 506916630554847185ull, 6776695377518140494ull}},
+ {{16473206563897729803ull, 160859548259792487ull,
+ 9857017825048334790ull, 8470869221897675617ull}},
+ {{17213283130077162983ull, 13935595272944534016ull,
+ 17689851186723679003ull, 5294293263686047260ull}},
+ {{3069859838886902113ull, 12807808072753279617ull,
+ 3665569909695047138ull, 6617866579607559076ull}},
+ {{8449010817036015545ull, 6786388054086823713ull,
+ 4581962387118808923ull, 8272333224509448845ull}},
+ {{16809846806715979476ull, 1935649524590570868ull,
+ 5169569501162949529ull, 5170208265318405528ull}},
+ {{2565564434685422729ull, 7031247924165601490ull,
+ 6461961876453686911ull, 6462760331648006910ull}},
+ {{12430327580211554219ull, 4177373886779613958ull,
+ 17300824382421884447ull, 8078450414560008637ull}},
+ {{3157268719204833483ull, 9528387706878340580ull,
+ 13118858248227371731ull, 5049031509100005398ull}},
+ {{3946585899006041853ull, 7298798615170537821ull,
+ 7175200773429438856ull, 6311289386375006748ull}},
+ {{9544918392184940221ull, 9123498268963172276ull,
+ 8969000966786798570ull, 7889111732968758435ull}},
+ {{15188946031970363446ull, 10313872436529370576ull,
+ 3299782595028055154ull, 4930694833105474022ull}},
+ {{539438466253402691ull, 3668968508806937413ull,
+ 13348100280639844751ull, 6163368541381842527ull}},
+ {{5285984101244141268ull, 18421268691290835478ull,
+ 12073439332372418034ull, 7704210676727303159ull}},
+ {{17138798118559752005ull, 16124978950484160077ull,
+ 14463428610373843127ull, 4815131672954564474ull}},
+ {{7588439592917526294ull, 15544537669677812193ull,
+ 8855913726112528101ull, 6018914591193205593ull}},
+ {{14097235509574295771ull, 5595614031815101529ull,
+ 15681578176068048031ull, 7523643238991506991ull}},
+ {{1893243165842853001ull, 10414787797525520312ull,
+ 16718515387683611875ull, 4702277024369691869ull}},
+ {{2366553957303566251ull, 8406798728479512486ull,
+ 7063086179322351132ull, 5877846280462114837ull}},
+ {{12181564483484233622ull, 10508498410599390607ull,
+ 13440543742580326819ull, 7347307850577643546ull}},
+ {{10615269585927904124ull, 8523936994821850355ull,
+ 7577307641370632716ull, 9184134813222054433ull}},
+ {{4328700481991246125ull, 14550832658618432280ull,
+ 16265032321925115207ull, 5740084258263784020ull}},
+ {{5410875602489057657ull, 13576854804845652446ull,
+ 1884546328696842393ull, 7175105322829730026ull}},
+ {{15986966539966097879ull, 3136010450774901845ull,
+ 11579054947725828800ull, 8968881653537162532ull}},
+ {{12297697096692505126ull, 1960006531734313653ull,
+ 16460281379183418808ull, 5605551033460726582ull}},
+ {{1537063315583467696ull, 2450008164667892067ull,
+ 11351979687124497702ull, 7006938791825908228ull}},
+ {{15756387199761498332ull, 12285882242689640891ull,
+ 14189974608905622127ull, 8758673489782385285ull}},
+ {{7541898990637242505ull, 14596205429322107413ull,
+ 11174577139779707781ull, 5474170931113990803ull}},
+ {{14039059756723941036ull, 4410198731370470554ull,
+ 9356535406297246823ull, 6842713663892488504ull}},
+ {{8325452659050150487ull, 901062395785700289ull,
+ 11695669257871558529ull, 8553392079865610630ull}},
+ {{16732622957974813814ull, 12092379043434532440ull,
+ 2698107267742336176ull, 5345870049916006644ull}},
+ {{2469034623758965652ull, 15115473804293165551ull,
+ 3372634084677920220ull, 6682337562395008305ull}},
+ {{16921351334980870776ull, 447598181656905322ull,
+ 8827478624274788180ull, 8352921952993760381ull}},
+ {{15187530602790432139ull, 9503120900390341634ull,
+ 7823017149385436564ull, 5220576220621100238ull}},
+ {{9761041216633264366ull, 11878901125487927043ull,
+ 555399399877019897ull, 6525720275776375298ull}},
+ {{7589615502364192554ull, 1013568351577745092ull,
+ 9917621286701050680ull, 8157150344720469122ull}},
+ {{13966881725832396154ull, 633480219736090682ull,
+ 10810199322615544579ull, 5098218965450293201ull}},
+ {{8235230120435719385ull, 14626908329952277065ull,
+ 18124435171696818627ull, 6372773706812866501ull}},
+ {{14905723668972037135ull, 13671949394012958427ull,
+ 8820485909338859572ull, 7965967133516083127ull}},
+ {{7010234283893829257ull, 17768340408112874825ull,
+ 12430332720977869088ull, 4978729458447551954ull}},
+ {{13374478873294674476ull, 3763681436431541915ull,
+ 6314543864367560553ull, 6223411823059439943ull}},
+ {{12106412573190955190ull, 9316287813966815298ull,
+ 3281493812032062787ull, 7779264778824299929ull}},
+ {{12178193876671734898ull, 3516836874515565609ull,
+ 13580148678588509002ull, 4862040486765187455ull}},
+ {{1387684290557504911ull, 13619418129999232820ull,
+ 12363499829808248348ull, 6077550608456484319ull}},
+ {{1734605363196881138ull, 17024272662499041025ull,
+ 10842688768832922531ull, 7596938260570605399ull}},
+ {{12613343398066520472ull, 8334327404848206688ull,
+ 13694209508161658438ull, 4748086412856628374ull}},
+ {{15766679247583150589ull, 1194537219205482552ull,
+ 7894389848347297240ull, 5935108016070785468ull}},
+ {{1261604985769386620ull, 1493171524006853191ull,
+ 9867987310434121550ull, 7418885020088481835ull}},
+ {{7706032143746948494ull, 14768290257786446956ull,
+ 3861649059807632016ull, 4636803137555301147ull}},
+ {{9632540179683685617ull, 13618748523507079ull, 215375306332152117ull,
+ 5796003921944126434ull}},
+ {{7428989206177219118ull, 4628709454081771753ull,
+ 9492591169769965954ull, 7245004902430158042ull}},
+ {{13897922526148911801ull, 15009258854456990499ull,
+ 2642366925357681634ull, 9056256128037697553ull}},
+ {{6380358569629375924ull, 13992472802463006966ull,
+ 13180694374417020781ull, 5660160080023560970ull}},
+ {{17198820248891495712ull, 3655532947796594995ull,
+ 7252495931166500169ull, 7075200100029451213ull}},
+ {{16886839292686981736ull, 9181102203173131648ull,
+ 13677305932385513115ull, 8844000125036814016ull}},
+ {{10554274557929363585ull, 3432345867769513328ull,
+ 8548316207740945697ull, 5527500078148008760ull}},
+ {{13192843197411704482ull, 8902118353139279564ull,
+ 10685395259676182121ull, 6909375097685010950ull}},
+ {{16491053996764630602ull, 15739333959851487359ull,
+ 4133372037740451843ull, 8636718872106263688ull}},
+ {{17224437775618975982ull, 7531240715693485647ull,
+ 2583357523587782402ull, 5397949295066414805ull}},
+ {{16918861201096332074ull, 190678857762081251ull,
+ 7840882922912115907ull, 6747436618833018506ull}},
+ {{16536890482943027188ull, 14073406627484765276ull,
+ 577731616785369075ull, 8434295773541273133ull}},
+ {{1112184514984616185ull, 6490036132964284346ull,
+ 2666925269704549624ull, 5271434858463295708ull}},
+ {{10613602680585546039ull, 8112545166205355432ull,
+ 3333656587130687030ull, 6589293573079119635ull}},
+ {{13267003350731932549ull, 917309420901918482ull,
+ 18002128789195522500ull, 8236616966348899543ull}},
+ {{12903563112634845747ull, 9796690424918474859ull,
+ 18168859520888283418ull, 5147885603968062214ull}},
+ {{11517767872366169280ull, 3022490994293317766ull,
+ 13487702364255578465ull, 6434857004960077768ull}},
+ {{5173837803602935792ull, 8389799761294035112ull,
+ 16859627955319473081ull, 8043571256200097210ull}},
+ {{3233648627251834870ull, 16772839896877241705ull,
+ 15148953490502058579ull, 5027232035125060756ull}},
+ {{8653746802492181491ull, 16354363852669164227ull,
+ 489447789418021608ull, 6284040043906325946ull}},
+ {{6205497484687838960ull, 1996210742126903668ull,
+ 9835181773627302819ull, 7855050054882907432ull}},
+ {{13101807964784675158ull, 17388532778325172456ull,
+ 6146988608517064261ull, 4909406284301817145ull}},
+ {{16377259955980843948ull, 7900607917624301858ull,
+ 12295421779073718231ull, 6136757855377271431ull}},
+ {{11248202908121279126ull, 5264073878602989419ull,
+ 10757591205414759885ull, 7670947319221589289ull}},
+ {{4724283808362105502ull, 5595889183340562339ull,
+ 18252709549452694688ull, 4794342074513493305ull}},
+ {{1293668742025243974ull, 6994861479175702924ull,
+ 8980828881533704648ull, 5992927593141866632ull}},
+ {{1617085927531554967ull, 8743576848969628655ull,
+ 11226036101917130810ull, 7491159491427333290ull}},
+ {{7928207732348303710ull, 10076421549033405813ull,
+ 11627958582125594660ull, 4681974682142083306ull}},
+ {{14521945683862767542ull, 12595526936291757266ull,
+ 5311576190802217517ull, 5852468352677604133ull}},
+ {{8929060067973683619ull, 1909350615082532871ull,
+ 11251156256930159801ull, 7315585440847005166ull}},
+ {{6549639066539716620ull, 6998374287280553993ull,
+ 4840573284307923943ull, 9144481801058756458ull}},
+ {{15622739462655792648ull, 11291512957191428101ull,
+ 7637044321119840368ull, 5715301125661722786ull}},
+ {{5693366273037577097ull, 14114391196489285127ull,
+ 322933364545024652ull, 7144126407077153483ull}},
+ {{2505021822869583468ull, 17642988995611606409ull,
+ 14238724760963444527ull, 8930158008846441853ull}},
+ {{13094853685361959428ull, 17944397149898335861ull,
+ 11205045984815846781ull, 5581348755529026158ull}},
+ {{2533509051420285572ull, 8595438382090756115ull,
+ 4782935444165032669ull, 6976685944411282698ull}},
+ {{17001944369557520677ull, 15355983996040833047ull,
+ 15202041342061066644ull, 8720857430514103372ull}},
+ {{17543744258614532279ull, 374117960670744846ull, 277903801933390845ull,
+ 5450535894071314608ull}},
+ {{12706308286413389541ull, 5079333469265818962ull,
+ 347379752416738556ull, 6813169867589143260ull}},
+ {{6659513321161961118ull, 6349166836582273703ull, 434224690520923195ull,
+ 8516462334486429075ull}},
+ {{11079724853367307555ull, 1662386263650227112ull,
+ 16412291496071434661ull, 5322788959054018171ull}},
+ {{13849656066709134444ull, 6689668847990171794ull,
+ 15903678351661905422ull, 6653486198817522714ull}},
+ {{8088698046531642247ull, 17585458096842490551ull,
+ 10656225902722605969ull, 8316857748521903393ull}},
+ {{11972965306723358260ull, 4073382282885474738ull,
+ 18189356235270098491ull, 5198036092826189620ull}},
+ {{5742834596549422017ull, 480041835179455519ull, 4289951220378071498ull,
+ 6497545116032737026ull}},
+ {{2566857227259389617ull, 9823424330829095207ull,
+ 14585811062327365180ull, 8121931395040921282ull}},
+ {{8521814794678200367ull, 15363012243622960312ull,
+ 13727817932381991141ull, 5076207121900575801ull}},
+ {{10652268493347750459ull, 5368707249246536678ull,
+ 3324714360195325215ull, 6345258902375719752ull}},
+ {{4091963579829912265ull, 2099198043130782944ull,
+ 4155892950244156519ull, 7931573627969649690ull}},
+ {{2557477237393695166ull, 8229527804597821196ull,
+ 7209119112329985728ull, 4957233517481031056ull}},
+ {{3196846546742118957ull, 10286909755747276495ull,
+ 9011398890412482160ull, 6196541896851288820ull}},
+ {{17831116238709812409ull, 12858637194684095618ull,
+ 11264248613015602700ull, 7745677371064111025ull}},
+ {{15756133667621020660ull, 17260020283532335569ull,
+ 122626355493669831ull, 4841048356915069391ull}},
+ {{5860109029244112112ull, 16963339335988031558ull,
+ 13988340999649251001ull, 6051310446143836738ull}},
+ {{16548508323409915948ull, 7369116114702875735ull,
+ 8262054212706787944ull, 7564138057679795923ull}},
+ {{17260346729772279324ull, 4605697571689297334ull,
+ 2857940873728048513ull, 4727586286049872452ull}},
+ {{12352061375360573347ull, 10368807983039009572ull,
+ 3572426092160060641ull, 5909482857562340565ull}},
+ {{15440076719200716683ull, 17572695997226149869ull,
+ 9077218633627463705ull, 7386853571952925706ull}},
+ {{11955890958714141879ull, 4065405970625261812ull,
+ 10284947664444552720ull, 4616783482470578566ull}},
+ {{14944863698392677349ull, 5081757463281577265ull,
+ 3632812543700915092ull, 5770979353088223208ull}},
+ {{4846021567708682974ull, 6352196829101971582ull,
+ 4541015679626143865ull, 7213724191360279010ull}},
+ {{15280898996490629525ull, 12551932054804852381ull,
+ 14899641636387455639ull, 9017155239200348762ull}},
+ {{11856404882020337406ull, 14762486561894114594ull,
+ 13923962041169547678ull, 5635722024500217976ull}},
+ {{5597134065670645949ull, 9229736165512867435ull,
+ 17404952551461934598ull, 7044652530625272470ull}},
+ {{2384731563660919532ull, 2313798170036308486ull,
+ 12532818652472642440ull, 8805815663281590588ull}},
+ {{15325515282570238420ull, 1446123856272692803ull,
+ 17056383694650177333ull, 5503634789550994117ull}},
+ {{14545208084785410120ull, 6419340838768253908ull,
+ 7485421563030557954ull, 6879543486938742647ull}},
+ {{18181510105981762650ull, 17247548085315093193ull,
+ 4745090935360809538ull, 8599429358673428309ull}},
+ {{4445914788597519801ull, 15391403571749321150ull,
+ 5271524843814199913ull, 5374643349170892693ull}},
+ {{14780765522601675559ull, 5404196409404487725ull,
+ 11201092073195137796ull, 6718304186463615866ull}},
+ {{4640898847969930736ull, 6755245511755609657ull,
+ 4777993054639146437ull, 8397880233079519833ull}},
+ {{14429776826049676470ull, 6527871454060949987ull,
+ 14515460705217936283ull, 5248675145674699895ull}},
+ {{13425535014134707684ull, 3548153299148799580ull,
+ 13532639863095032450ull, 6560843932093374869ull}},
+ {{16781918767668384605ull, 13658563660790775283ull,
+ 3080741773586626850ull, 8201054915116718587ull}},
+ {{8182856220579046426ull, 13148288306421622456ull,
+ 18066364672987499445ull, 5125659321947949116ull}},
+ {{10228570275723808033ull, 2600302327744864358ull,
+ 4136211767524822691ull, 6407074152434936396ull}},
+ {{3562340807799984233ull, 17085435964963244160ull,
+ 5170264709406028363ull, 8008842690543670495ull}},
+ {{2226463004874990146ull, 8372554468888333648ull,
+ 10148944471019849583ull, 5005526681589794059ull}},
+ {{2783078756093737682ull, 5854007067683029156ull,
+ 8074494570347424075ull, 6256908351987242574ull}},
+ {{3478848445117172102ull, 2705822816176398541ull, 869746176079504286ull,
+ 7821135439984053218ull}},
+ {{4480123287411926516ull, 15526197315392412800ull,
+ 5155277378477078082ull, 4888209649990033261ull}},
+ {{5600154109264908145ull, 10184374607385740192ull,
+ 11055782741523735507ull, 6110262062487541576ull}},
+ {{7000192636581135181ull, 8118782240804787336ull,
+ 13819728426904669384ull, 7637827578109426970ull}},
+ {{4375120397863209488ull, 5074238900502992085ull,
+ 13249016285242806269ull, 4773642236318391856ull}},
+ {{10080586515756399764ull, 10954484644056128010ull,
+ 16561270356553507836ull, 5967052795397989820ull}},
+ {{3377361107840723897ull, 13693105805070160013ull,
+ 2254843871982333179ull, 7458815994247487276ull}},
+ {{4416693701614146388ull, 6252348118955156056ull,
+ 10632649456843734045ull, 4661759996404679547ull}},
+ {{5520867127017682985ull, 12427121167121332974ull,
+ 8679125802627279652ull, 5827199995505849434ull}},
+ {{16124455945626879539ull, 15533901458901666217ull,
+ 1625535216429323757ull, 7283999994382311793ull}},
+ {{6320511876751435711ull, 5582318768344919060ull,
+ 6643605038964042601ull, 9104999992977889741ull}},
+ {{13173691959824423128ull, 15018164276284044172ull,
+ 6458096158566220577ull, 5690624995611181088ull}},
+ {{16467114949780528910ull, 4937647290072891503ull,
+ 8072620198207775722ull, 7113281244513976360ull}},
+ {{15972207668798273233ull, 15395431149445890187ull,
+ 10090775247759719652ull, 8891601555642470450ull}},
+ {{7676786783785226819ull, 398772431548905559ull,
+ 10918420548277212687ull, 5557250972276544031ull}},
+ {{4984297461304145619ull, 14333523594718295661ull,
+ 9036339666919127954ull, 6946563715345680039ull}},
+ {{10842057845057569928ull, 8693532456543093768ull,
+ 6683738565221522039ull, 8683204644182100049ull}},
+ {{6776286153160981205ull, 12350986812980515461ull,
+ 15706551649331921034ull, 5427002902613812530ull}},
+ {{13082043709878614410ull, 6215361479370868518ull,
+ 10409817524810125485ull, 6783753628267265663ull}},
+ {{7129182600493492205ull, 12380887867640973552ull,
+ 8400585887585268952ull, 8479692035334082079ull}},
+ {{4455739125308432628ull, 7738054917275608470ull,
+ 12167895207381874951ull, 5299807522083801299ull}},
+ {{14793045943490316593ull, 5060882628167122683ull,
+ 10598182990799955785ull, 6624759402604751624ull}},
+ {{13879621410935507837ull, 10937789303636291258ull,
+ 13247728738499944731ull, 8280949253255939530ull}},
+ {{13286449400262080303ull, 4530275305558988084ull,
+ 12891516479989853361ull, 5175593283284962206ull}},
+ {{16608061750327600378ull, 10274530150376123009ull,
+ 6891023563132540893ull, 6469491604106202758ull}},
+ {{6925019132627336760ull, 17454848706397541666ull,
+ 17837151490770451924ull, 8086864505132753447ull}},
+ {{8939822976319473379ull, 1685908404643687733ull,
+ 18065748709372614309ull, 5054290315707970904ull}},
+ {{15786464738826729628ull, 6719071524231997570ull,
+ 4135441813006216270ull, 6317862894634963631ull}},
+ {{10509708886678636227ull, 17622211442144772771ull,
+ 557616247830382433ull, 7897328618293704539ull}},
+ {{4262725044960453690ull, 4096353123699401126ull,
+ 16489411219389846685ull, 4935830386433565336ull}},
+ {{14551778343055342921ull, 9732127423051639311ull,
+ 2165019950527756740ull, 6169787983041956671ull}},
+ {{13578036910391790747ull, 12165159278814549139ull,
+ 16541332993441859637ull, 7712234978802445838ull}},
+ {{6180430059781175265ull, 9909067558472787164ull,
+ 5726647102473774369ull, 4820146861751528649ull}},
+ {{7725537574726469081ull, 16998020466518371859ull,
+ 11769994896519605865ull, 6025183577189410811ull}},
+ {{5045235949980698447ull, 7412467527865801112ull,
+ 10100807602222119428ull, 7531479471486763514ull}},
+ {{3153272468737936530ull, 13856164241770901503ull,
+ 10924690769816212546ull, 4707174669679227196ull}},
+ {{17776648641204584374ull, 8096833265358851070ull,
+ 13655863462270265683ull, 5883968337099033995ull}},
+ {{12997438764650954659ull, 5509355563271175934ull,
+ 12458143309410444200ull, 7354960421373792494ull}},
+ {{7023426418958917516ull, 6886694454088969918ull,
+ 6349307099908279442ull, 9193700526717240618ull}},
+ {{18224699567131487160ull, 8915870052232994102ull,
+ 8580002955870062555ull, 5746062829198275386ull}},
+ {{13557502422059583141ull, 6533151546863854724ull,
+ 1501631657982802386ull, 7182578536497844233ull}},
+ {{16946878027574478926ull, 17389811470434594213ull,
+ 6488725590905890886ull, 8978223170622305291ull}},
+ {{12897641776447743281ull, 6256946150594233479ull,
+ 1749610485102487852ull, 5611389481638940807ull}},
+ {{11510366202132291197ull, 7821182688242791849ull,
+ 16022071161660273527ull, 7014236852048676008ull}},
+ {{552899697383200285ull, 5164792341876101908ull, 1580844878365790293ull,
+ 8767796065060845011ull}},
+ {{9568934347719275986ull, 5533838222886257644ull,
+ 17128929113474476597ull, 5479872540663028131ull}},
+ {{11961167934649094982ull, 11528983797035209959ull,
+ 16799475373415707842ull, 6849840675828785164ull}},
+ {{10339773899883980824ull, 5187857709439236641ull,
+ 2552600143060083187ull, 8562300844785981456ull}},
+ {{17991573733495957775ull, 936568059185828948ull,
+ 1595375089412551992ull, 5351438027991238410ull}},
+ {{4042723093160395603ull, 1170710073982286186ull,
+ 11217590898620465798ull, 6689297534989048012ull}},
+ {{14276775903305270311ull, 10686759629332633540ull,
+ 14021988623275582247ull, 8361621918736310015ull}},
+ {{18146356976420569753ull, 13596753795973977818ull,
+ 15681271917188320760ull, 5226013699210193759ull}},
+ {{13459574183670936383ull, 16995942244967472273ull,
+ 14989903878058013046ull, 6532517124012742199ull}},
+ {{2989409674306506767ull, 12021555769354564534ull,
+ 14125693829145128404ull, 8165646405015927749ull}},
+ {{15703439101723730441ull, 16736844392701378641ull,
+ 11134401652429399204ull, 5103529003134954843ull}},
+ {{5794240821872499339ull, 2474311417167171686ull,
+ 9306316047109361102ull, 6379411253918693554ull}},
+ {{16466173064195399982ull, 12316261308313740415ull,
+ 2409523022031925569ull, 7974264067398366943ull}},
+ {{17208887192763206845ull, 780134290055005903ull,
+ 8423480916411035337ull, 4983915042123979339ull}},
+ {{16899422972526620652ull, 5586853880996145283ull,
+ 5917665127086406267ull, 6229893802654974174ull}},
+ {{16512592697230887911ull, 2371881332817793700ull,
+ 16620453445712783642ull, 7787367253318717717ull}},
+ {{1096998398914529137ull, 6094111851438508967ull,
+ 12693626412784183728ull, 4867104533324198573ull}},
+ {{15206306053925325133ull, 7617639814298136208ull,
+ 2031974960698065948ull, 6083880666655248217ull}},
+ {{561138493697104800ull, 9522049767872670261ull, 7151654719299970339ull,
+ 7604850833319060271ull}},
+ {{2656554567774384452ull, 3645438095706724961ull,
+ 11387313227203563318ull, 4753031770824412669ull}},
+ {{7932379228145368469ull, 13780169656488182009ull,
+ 399083478722290435ull, 5941289713530515837ull}},
+ {{14527160053609098490ull, 12613526052182839607ull,
+ 5110540366830250948ull, 7426612141913144796ull}},
+ {{15997004061146768412ull, 17106825819469050562ull,
+ 12417459766123682650ull, 4641632588695715497ull}},
+ {{10772883039578684707ull, 12160160237481537395ull,
+ 1686766652372439601ull, 5802040735869644372ull}},
+ {{8854417781045967980ull, 1365142241569758032ull,
+ 2108458315465549502ull, 7252550919837055465ull}},
+ {{11068022226307459975ull, 10929799838816973348ull,
+ 7247258912759324781ull, 9065688649796319331ull}},
+ {{16140885928296938293ull, 9136967908474302294ull,
+ 2223693811260884036ull, 5666055406122699582ull}},
+ {{10952735373516397058ull, 11421209885592877868ull,
+ 12002989300930880853ull, 7082569257653374477ull}},
+ {{13690919216895496322ull, 441454301708933623ull,
+ 1168678570881437355ull, 8853211572066718097ull}},
+ {{15474353538200767057ull, 16416810003063941178ull,
+ 12259639152869368106ull, 5533257232541698810ull}},
+ {{10119569885896183014ull, 11297640466975150665ull,
+ 6101176904231934325ull, 6916571540677123513ull}},
+ {{17261148375797616671ull, 286992528436774619ull,
+ 12238157148717305811ull, 8645714425846404391ull}},
+ {{8482374725659816467ull, 16320271394768841801ull,
+ 14566377245589397987ull, 5403571516154002744ull}},
+ {{15214654425502158488ull, 15788653225033664347ull,
+ 18207971556986747484ull, 6754464395192503430ull}},
+ {{14406632013450310206ull, 1289072457582528818ull,
+ 13536592409378658548ull, 8443080493990629288ull}},
+ {{13615831026833831783ull, 10029042322843856319ull,
+ 8460370255861661592ull, 5276925308744143305ull}},
+ {{12408102765114901825ull, 12536302903554820399ull,
+ 15187148838254464894ull, 6596156635930179131ull}},
+ {{10898442437966239377ull, 6447006592588749691ull,
+ 14372250029390693214ull, 8245195794912723914ull}},
+ {{4505683514515205659ull, 17864437175650132269ull,
+ 13594342286796571162ull, 5153247371820452446ull}},
+ {{10243790411571394977ull, 13107174432707889528ull,
+ 7769555821640938145ull, 6441559214775565558ull}},
+ {{12804738014464243721ull, 2548909985602698198ull,
+ 488572740196396874ull, 8051949018469456948ull}},
+ {{3391275240612764422ull, 6204754759429074278ull,
+ 9528729999477523854ull, 5032468136543410592ull}},
+ {{13462466087620731335ull, 16979315486141118655ull,
+ 11910912499346904817ull, 6290585170679263240ull}},
+ {{12216396591098526265ull, 7389086302394234607ull,
+ 14888640624183631022ull, 7863231463349079050ull}},
+ {{14552776897077660772ull, 6492920569008725ull, 13917086408542157293ull,
+ 4914519664593174406ull}},
+ {{4355913066064912253ull, 4619802169138648811ull,
+ 8172985973822920808ull, 6143149580741468008ull}},
+ {{833205314153752412ull, 5774752711423311014ull,
+ 10216232467278651010ull, 7678936975926835010ull}},
+ {{14355811376628258970ull, 8220906463066957287ull,
+ 10996831310476544785ull, 4799335609954271881ull}},
+ {{13333078202357935808ull, 14887819097261084513ull,
+ 18357725156523068885ull, 5999169512442839851ull}},
+ {{2831289697665256048ull, 4774715816294191930ull,
+ 18335470427226448203ull, 7498961890553549814ull}},
+ {{6381242079468172934ull, 678354375970176004ull, 6847982998589142223ull,
+ 4686851181595968634ull}},
+ {{7976552599335216167ull, 14683001025244883717ull,
+ 17783350785091203586ull, 5858563976994960792ull}},
+ {{14582376767596408113ull, 9130379244701328838ull,
+ 3782444407654452867ull, 7323204971243700991ull}},
+ {{9004598922640734333ull, 6801288037449273144ull, 116369491140678180ull,
+ 9154006214054626239ull}},
+ {{5627874326650458958ull, 13474177060260571523ull,
+ 6990259959604005718ull, 5721253883784141399ull}},
+ {{2423156889885685794ull, 7619349288470938596ull,
+ 4126138931077619244ull, 7151567354730176749ull}},
+ {{3028946112357107242ull, 9524186610588673245ull,
+ 9769359682274411959ull, 8939459193412720936ull}},
+ {{4198934329436885979ull, 12870145659259002634ull,
+ 6105849801421507474ull, 5587161995882950585ull}},
+ {{14472039948650883281ull, 6864310037218977484ull,
+ 12243998270204272247ull, 6983952494853688231ull}},
+ {{18090049935813604101ull, 3968701528096333951ull,
+ 10693311819327952405ull, 8729940618567110289ull}},
+ {{18223810237524584419ull, 4786281464273902671ull,
+ 18212534933148440013ull, 5456212886604443930ull}},
+ {{18168076778478342620ull, 10594537848769766243ull,
+ 13542296629580774208ull, 6820266108255554913ull}},
+ {{18098409954670540371ull, 13243172310962207804ull,
+ 3092812731693804048ull, 8525332635319443642ull}},
+ {{2088134184814311924ull, 8276982694351379878ull,
+ 6544693975736015434ull, 5328332897074652276ull}},
+ {{11833539767872665713ull, 1122856331084449039ull,
+ 8180867469670019293ull, 6660416121343315345ull}},
+ {{10180238691413444237ull, 6015256432282949203ull,
+ 14837770355514912020ull, 8325520151679144181ull}},
+ {{4056806172919708696ull, 12982907307031619060ull,
+ 11579449481410513964ull, 5203450094799465113ull}},
+ {{5071007716149635870ull, 16228634133789523825ull,
+ 639253796480978743ull, 6504312618499331392ull}},
+ {{10950445663614432742ull, 15674106648809516877ull,
+ 799067245601223429ull, 8130390773124164240ull}},
+ {{9149871548972714416ull, 12102159664719642000ull,
+ 499417028500764643ull, 5081494233202602650ull}},
+ {{11437339436215893020ull, 10516013562472164596ull,
+ 9847643322480731612ull, 6351867791503253312ull}},
+ {{14296674295269866275ull, 13145016953090205745ull,
+ 12309554153100914515ull, 7939834739379066640ull}},
+ {{2017892406902584566ull, 5909792586467684639ull,
+ 7693471345688071572ull, 4962396712111916650ull}},
+ {{16357423563910394419ull, 7387240733084605798ull,
+ 393467145255313657ull, 6202995890139895813ull}},
+ {{11223407418033217216ull, 13845736934783145152ull,
+ 5103519949996529975ull, 7753744862674869766ull}},
+ {{7014629636270760760ull, 15571114611880547576ull,
+ 17024758024029994946ull, 4846090539171793603ull}},
+ {{8768287045338450950ull, 10240521227995908662ull,
+ 16669261511610105779ull, 6057613173964742004ull}},
+ {{1736986769818287879ull, 8188965516567497924ull,
+ 2389832815803080608ull, 7572016467455927506ull}},
+ {{10308988767991205733ull, 5118103447854686202ull,
+ 6105331528304313284ull, 4732510292159954691ull}},
+ {{3662863923134231358ull, 6397629309818357753ull,
+ 3019978391953003701ull, 5915637865199943364ull}},
+ {{9190265922345177101ull, 12608722655700335095ull,
+ 3774972989941254626ull, 7394547331499929205ull}},
+ {{12661445229106817544ull, 12492137678240097338ull,
+ 4665201127926978093ull, 4621592082187455753ull}},
+ {{6603434499528746122ull, 1780114042517957961ull,
+ 10443187428336110521ull, 5776990102734319691ull}},
+ {{12865979142838320557ull, 6836828571574835355ull,
+ 8442298266992750247ull, 7221237628417899614ull}},
+ {{11470787910120512792ull, 3934349696041156290ull,
+ 1329500796886162001ull, 9026547035522374518ull}},
+ {{11780928462252708399ull, 13988183606094192441ull,
+ 14665996053336014962ull, 5641591897201484073ull}},
+ {{891102522533721787ull, 8261857470762964744ull, 4497437011387854991ull,
+ 7051989871501855092ull}},
+ {{1113878153167152233ull, 5715635820026318026ull,
+ 5621796264234818739ull, 8814987339377318865ull}},
+ {{5307859864156858050ull, 1266429378302754814ull,
+ 15042837711215231472ull, 5509367087110824290ull}},
+ {{15858196867050848370ull, 1583036722878443517ull,
+ 9580175102164263532ull, 6886708858888530363ull}},
+ {{5987688028531396751ull, 1978795903598054397ull,
+ 7363532859277941511ull, 8608386073610662954ull}},
+ {{6048148027045816922ull, 8154276467389865854ull,
+ 9213894055476101348ull, 5380241296006664346ull}},
+ {{16783557070662046960ull, 10192845584237332317ull,
+ 2293995532490350877ull, 6725301620008330433ull}},
+ {{7144388283045394988ull, 17352742998724053301ull,
+ 7479180434040326500ull, 8406627025010413041ull}},
+ {{6771085686117065819ull, 1622092337347757505ull,
+ 16203702817343673823ull, 5254141890631508150ull}},
+ {{13075543126073720178ull, 15862673476966860593ull,
+ 11031256484824816470ull, 6567677363289385188ull}},
+ {{2509370852309986511ull, 10604969809353799934ull,
+ 13789070606031020588ull, 8209596704111731485ull}},
+ {{15403414837975905281ull, 15851478167700900766ull,
+ 10924012137983081819ull, 5130997940069832178ull}},
+ {{10030896510615105793ull, 15202661691198738054ull,
+ 4431643135624076466ull, 6413747425087290223ull}},
+ {{3315248601414106434ull, 9779955077143646760ull, 927867901102707679ull,
+ 8017184281359112779ull}},
+ {{2072030375883816521ull, 13030000950855861081ull,
+ 16720818502685049963ull, 5010740175849445486ull}},
+ {{7201723988282158555ull, 11675815170142438447ull,
+ 11677651091501536646ull, 6263425219811806858ull}},
+ {{4390468966925310290ull, 5371396925823272251ull,
+ 5373691827522145000ull, 7829281524764758573ull}},
+ {{438200095114624980ull, 3357123078639545157ull, 5664400401415034577ull,
+ 4893300952977974108ull}},
+ {{5159436137320669128ull, 8808089866726819350ull,
+ 7080500501768793221ull, 6116626191222467635ull}},
+ {{15672667208505612218ull, 15621798351835912091ull,
+ 4238939608783603622ull, 7645782739028084544ull}},
+ {{7489573996102313685ull, 5151937951470057153ull,
+ 2649337255489752264ull, 4778614211892552840ull}},
+ {{13973653513555280010ull, 6439922439337571441ull,
+ 3311671569362190330ull, 5973267764865691050ull}},
+ {{3632008836661936300ull, 17273275086026740110ull,
+ 13362961498557513720ull, 7466584706082113812ull}},
+ {{16105063578195873900ull, 10795796928766712568ull,
+ 17575222973453221883ull, 4666615441301321132ull}},
+ {{1684585399035290758ull, 8883060142531002807ull,
+ 3522284643106975738ull, 5833269301626651416ull}},
+ {{15940789804076277160ull, 1880453141308977700ull,
+ 4402855803883719673ull, 7291586627033314270ull}},
+ {{1479243181385794834ull, 6962252445063610030ull,
+ 14726941791709425399ull, 9114483283791642837ull}},
+ {{14759585043648285483ull, 11268936805805838124ull,
+ 11510181629032084826ull, 5696552052369776773ull}},
+ {{2737230850805238ull, 4862798970402521848ull, 552668981007942321ull,
+ 7120690065462220967ull}},
+ {{3421538563506547ull, 10690184731430540214ull, 14525894281542091613ull,
+ 8900862581827776208ull}},
+ {{13837196516884355304ull, 8987208466357781585ull,
+ 9078683925963807258ull, 5563039113642360130ull}},
+ {{3461437590823280418ull, 2010638546092451174ull,
+ 2124982870599983265ull, 6953798892052950163ull}},
+ {{13550169025383876331ull, 7124984201042951871ull,
+ 16491286643532142793ull, 8692248615066187703ull}},
+ {{15386384668506004563ull, 15982330171720314679ull,
+ 17224583179848671101ull, 5432655384416367314ull}},
+ {{14621294817205117799ull, 6142854659368229637ull,
+ 12307356937956063069ull, 6790819230520459143ull}},
+ {{4441560466224233537ull, 12290254342637674951ull,
+ 10772510154017690932ull, 8488524038150573929ull}},
+ {{9693504319031227817ull, 16904781001003322652ull,
+ 18262033892329526592ull, 5305327523844108705ull}},
+ {{12116880398789034771ull, 2684232177544601699ull,
+ 8992484310129744529ull, 6631659404805135882ull}},
+ {{10534414480058905560ull, 7966976240358140028ull,
+ 2017233350807404853ull, 8289574256006419853ull}},
+ {{15807381086891591783ull, 7285203159437531469ull,
+ 3566613853468321985ull, 5180983910004012408ull}},
+ {{5924168303332326017ull, 13718189967724302241ull,
+ 4458267316835402481ull, 6476229887505015510ull}},
+ {{12016896397592795425ull, 3312679404373214089ull,
+ 14796206182899028910ull, 8095287359381269387ull}},
+ {{593031220854415285ull, 15905482683015422518ull,
+ 6941785855098199116ull, 5059554599613293367ull}},
+ {{9964661062922794914ull, 1435109280059726531ull,
+ 4065546300445360992ull, 6324443249516616709ull}},
+ {{7844140310226105738ull, 1793886600074658164ull,
+ 9693618893984089144ull, 7905554061895770886ull}},
+ {{14125959730746091894ull, 1121179125046661352ull,
+ 1446825790312667811ull, 4940971288684856804ull}},
+ {{17657449663432614868ull, 15236531961590490402ull,
+ 1808532237890834763ull, 6176214110856071005ull}},
+ {{12848440042435992777ull, 14433978933560725099ull,
+ 6872351315790931358ull, 7720267638570088756ull}},
+ {{5724432017308801534ull, 4409550815048065283ull,
+ 13518591609224107907ull, 4825167274106305472ull}},
+ {{2543854003208614013ull, 900252500382693700ull,
+ 16898239511530134884ull, 6031459092632881840ull}},
+ {{3179817504010767516ull, 1125315625478367125ull,
+ 2676055315703116989ull, 7539323865791102301ull}},
+ {{4293228949220423650ull, 3009165275137673405ull,
+ 3978377581528142070ull, 4712077416119438938ull}},
+ {{9978222204952917466ull, 12984828630776867564ull,
+ 14196344013764953395ull, 5890096770149298672ull}},
+ {{12472777756191146832ull, 11619349770043696551ull,
+ 17745430017206191744ull, 7362620962686623340ull}},
+ {{10979286176811545636ull, 14524187212554620689ull,
+ 3735043447798188064ull, 9203276203358279176ull}},
+ {{18391268906575685783ull, 9077617007846637930ull,
+ 2334402154873867540ull, 5752047627098924485ull}},
+ {{13765714096364831420ull, 11347021259808297413ull,
+ 7529688712019722329ull, 7190059533873655606ull}},
+ {{3372084565173875563ull, 348718519478208055ull, 188738853169877104ull,
+ 8987574417342069508ull}},
+ {{9025081880874754083ull, 217949074673880034ull, 9341333820085948998ull,
+ 5617234010838793442ull}},
+ {{2057980314238666796ull, 9495808380197125851ull,
+ 2453295238252660439ull, 7021542513548491803ull}},
+ {{16407533448080497207ull, 7258074456819019409ull,
+ 16901677103097989261ull, 8776928141935614753ull}},
+ {{3337179377409228899ull, 6842139544725581083ull,
+ 3646019161795161432ull, 5485580088709759221ull}},
+ {{18006532277043699835ull, 8552674430906976353ull,
+ 9169209970671339694ull, 6856975110887199026ull}},
+ {{8673107291022461082ull, 1467471001778944634ull,
+ 2238140426484398810ull, 8571218888608998783ull}},
+ {{10032378075316426080ull, 5528855394539228300ull,
+ 8316366794193831112ull, 5357011805380624239ull}},
+ {{12540472594145532600ull, 6911069243174035375ull,
+ 5783772474314900986ull, 6696264756725780299ull}},
+ {{11063904724254527846ull, 17862208590822320027ull,
+ 2618029574466238328ull, 8370330945907225374ull}},
+ {{4609097443445385952ull, 11163880369263950017ull,
+ 15471326539323562667ull, 5231456841192015858ull}},
+ {{10373057822734120344ull, 9343164443152549617ull,
+ 10115786137299677526ull, 6539321051490019823ull}},
+ {{17578008296845038334ull, 2455583517085911213ull,
+ 8033046653197209004ull, 8174151314362524779ull}},
+ {{13292098194741842911ull, 10758111735033470316ull,
+ 2714811149034561675ull, 5108844571476577987ull}},
+ {{16615122743427303638ull, 8835953650364449991ull,
+ 17228571991575365806ull, 6386055714345722483ull}},
+ {{16157217410856741644ull, 1821570026100786681ull,
+ 16924028971041819354ull, 7982569642932153104ull}},
+ {{3180731854144381672ull, 5750167284740379580ull,
+ 10577518106901137096ull, 4989106026832595690ull}},
+ {{3975914817680477089ull, 7187709105925474475ull,
+ 3998525596771645562ull, 6236382533540744613ull}},
+ {{358207503673208457ull, 18208008419261618902ull,
+ 9609843014391944856ull, 7795478166925930766ull}},
+ {{14058937745077918998ull, 11380005262038511813ull,
+ 1394465865567577631ull, 4872173854328706729ull}},
+ {{3738614126065235036ull, 9613320559120751863ull,
+ 6354768350386859943ull, 6090217317910883411ull}},
+ {{61581639154155890ull, 7404964680473551925ull, 3331774419556187025ull,
+ 7612771647388604264ull}},
+ {{2344331533685041384ull, 16157317971364439713ull,
+ 2082359012222616890ull, 4757982279617877665ull}},
+ {{7542100435533689633ull, 10973275427350773833ull,
+ 7214634783705659017ull, 5947477849522347081ull}},
+ {{14039311562844499946ull, 18328280302615855195ull,
+ 13629979498059461675ull, 7434347311902933851ull}},
+ {{6468726717564118514ull, 9149332179921215545ull,
+ 6212894177073469595ull, 4646467069939333657ull}},
+ {{12697594415382536047ull, 6824979206474131527ull,
+ 12377803739769224898ull, 5808083837424167071ull}},
+ {{11260307000800782154ull, 17754596044947440217ull,
+ 10860568656284143218ull, 7260104796780208839ull}},
+ {{240325695718813981ull, 12969873019329524464ull,
+ 8964024801927791119ull, 9075130995975261049ull}},
+ {{150203559824258738ull, 15023699664722034646ull,
+ 17131730547273339209ull, 5671956872484538155ull}},
+ {{9411126486635099230ull, 4944566525620379595ull,
+ 16802977165664286108ull, 7089946090605672694ull}},
+ {{7152222089866486134ull, 6180708157025474494ull,
+ 11780349420225581827ull, 8862432613257090868ull}},
+ {{18305196861448717546ull, 1557099588927227606ull,
+ 16586090424495764450ull, 5539020383285681792ull}},
+ {{13658124039956121124ull, 11169746523013810316ull,
+ 2285868956910153946ull, 6923775479107102241ull}},
+ {{17072655049945151405ull, 4738811116912487087ull,
+ 7469022214565080337ull, 8654719348883877801ull}},
+ {{17587938433856801484ull, 14490971994138774189ull,
+ 16197353930171644970ull, 5409199593052423625ull}},
+ {{8149864987038838143ull, 8890342955818691929ull,
+ 6411634357432392501ull, 6761499491315529532ull}},
+ {{14799017252225935583ull, 15724614713200752815ull,
+ 8014542946790490626ull, 8451874364144411915ull}},
+ {{16166914810282291596ull, 14439570214177858413ull,
+ 2703246332530362689ull, 5282421477590257447ull}},
+ {{6373585457570700782ull, 4214404712440159305ull,
+ 17214115970945117074ull, 6603026846987821808ull}},
+ {{12578667840390763882ull, 14491377927404974939ull,
+ 3070900889971844726ull, 8253783558734777261ull}},
+ {{5555824391030533474ull, 4445425186200721433ull,
+ 4225156065446096906ull, 5158614724209235788ull}},
+ {{11556466507215554747ull, 14780153519605677599ull,
+ 5281445081807621132ull, 6448268405261544735ull}},
+ {{9833897115592055529ull, 28447825797545383ull, 1990120333832138512ull,
+ 8060335506576930919ull}},
+ {{13063714724886116562ull, 17779891123465864ull, 8161354236286168426ull,
+ 5037709691610581824ull}},
+ {{16329643406107645702ull, 9245596900759108138ull,
+ 10201692795357710532ull, 6297137114513227280ull}},
+ {{11188682220779781320ull, 11556996125948885173ull,
+ 12752115994197138165ull, 7871421393141534100ull}},
+ {{9298769397201057277ull, 9528965587931747185ull,
+ 17193444533227987161ull, 4919638370713458812ull}},
+ {{16235147764928709500ull, 16522893003342071885ull,
+ 3045061592825432335ull, 6149547963391823516ull}},
+ {{6458876650878723163ull, 16041930235750201953ull,
+ 3806326991031790419ull, 7686934954239779395ull}},
+ {{15566012952867671737ull, 7720363388130182268ull, 73111360181175060ull,
+ 4804334346399862122ull}},
+ {{1010772117375038055ull, 9650454235162727836ull,
+ 9314761237081244633ull, 6005417932999827652ull}},
+ {{1263465146718797569ull, 16674753812380797699ull,
+ 11643451546351555791ull, 7506772416249784565ull}},
+ {{16930566781195106145ull, 17339250160379080417ull,
+ 9583000225683416321ull, 4691732760156115353ull}},
+ {{7328150421211718969ull, 7839004645191686810ull,
+ 16590436300531658306ull, 5864665950195144191ull}},
+ {{18383560063369424519ull, 575383769634832704ull,
+ 16126359357237184979ull, 7330832437743930239ull}},
+ {{4532706005502229033ull, 14554287767325704593ull,
+ 15546263178119093319ull, 9163540547179912799ull}},
+ {{14362156299507362906ull, 16013958882219647226ull,
+ 16633943513965515180ull, 5727212841987445499ull}},
+ {{8729323337529427824ull, 1570704529065007417ull,
+ 16180743374029506072ull, 7159016052484306874ull}},
+ {{15523340190339172684ull, 1963380661331259271ull,
+ 11002557180682106782ull, 8948770065605383593ull}},
+ {{16619616646603064784ull, 15062170968614200756ull,
+ 18405813283994786498ull, 5592981291003364745ull}},
+ {{2327776734544279363ull, 9604341673912975138ull,
+ 9172208549711319411ull, 6991226613754205932ull}},
+ {{12133092955035125012ull, 7393741073963831018ull,
+ 11465260687139149264ull, 8739033267192757415ull}},
+ {{12194869115324341037ull, 4621088171227394386ull,
+ 14083316957103050146ull, 5461895791995473384ull}},
+ {{6020214357300650488ull, 14999732250889018791ull,
+ 17604146196378812682ull, 6827369739994341730ull}},
+ {{2913581928198425206ull, 9526293276756497681ull,
+ 12781810708618740045ull, 8534212174992927163ull}},
+ {{13350203751192485514ull, 8259776307186505002ull,
+ 5682788683673018576ull, 5333882609370579477ull}},
+ {{7464382652135831084ull, 10324720383983131253ull,
+ 11715171873018661124ull, 6667353261713224346ull}},
+ {{13942164333597176759ull, 12905900479978914066ull,
+ 5420592804418550597ull, 8334191577141530433ull}},
+ {{13325538726925623378ull, 10372030809200515243ull,
+ 14917085548830063883ull, 5208869735713456520ull}},
+ {{12045237390229641319ull, 8353352493073256150ull,
+ 199612862328028238ull, 6511087169641820651ull}},
+ {{5833174700932275841ull, 1218318579486794380ull,
+ 14084574133192199010ull, 8138858962052275813ull}},
+ {{12869106224937448209ull, 5373135130606634391ull,
+ 11108701842458818333ull, 5086786851282672383ull}},
+ {{11474696762744422357ull, 11328104931685680893ull,
+ 9274191284646135012ull, 6358483564103340479ull}},
+ {{508312898148364234ull, 14160131164607101117ull,
+ 6981053087380280861ull, 7948104455129175599ull}},
+ {{2623538570556421598ull, 11155924987093132150ull,
+ 11280687207253757394ull, 4967565284455734749ull}},
+ {{12502795250050302806ull, 4721534197011639379ull,
+ 265800953785033031ull, 6209456605569668437ull}},
+ {{11016808044135490603ull, 1290231727837161320ull,
+ 4943937210658679193ull, 7761820756962085546ull}},
+ {{6885505027584681627ull, 12335609875966695585ull,
+ 7701646775089062399ull, 4851137973101303466ull}},
+ {{13218567302908239938ull, 10807826326530981577ull,
+ 403686432006552191ull, 6063922466376629333ull}},
+ {{2688151073353136210ull, 8898096889736339068ull,
+ 5116294058435578143ull, 7579903082970786666ull}},
+ {{10903466457700485939ull, 12478839583726293773ull,
+ 7809369804949624243ull, 4737439426856741666ull}},
+ {{18241019090552995328ull, 10986863461230479312ull,
+ 538340219332254496ull, 5921799283570927083ull}},
+ {{4354529789481692544ull, 13733579326538099141ull,
+ 14507983329447481832ull, 7402249104463658853ull}},
+ {{5027424127639751792ull, 8583487079086311963ull,
+ 11373332590118370097ull, 4626405690289786783ull}},
+ {{1672594141122301836ull, 15341044867285277858ull,
+ 9604979719220574717ull, 5783007112862233479ull}},
+ {{11314114713257653103ull, 5341248028824433610ull,
+ 7394538630598330493ull, 7228758891077791849ull}},
+ {{4919271354717290571ull, 11288246054457929917ull,
+ 13854859306675301020ull, 9035948613847239811ull}},
+ {{5380387605912000559ull, 16278525820890982006ull,
+ 6353444057458369185ull, 5647467883654524882ull}},
+ {{15948856544244776506ull, 6513099220831563795ull,
+ 17165177108677737290ull, 7059334854568156102ull}},
+ {{15324384661878582729ull, 17364746062894230552ull,
+ 12233099348992395804ull, 8824168568210195128ull}},
+ {{9577740413674114206ull, 1629594252454118287ull,
+ 7645687093120247378ull, 5515105355131371955ull}},
+ {{7360489498665254853ull, 11260364852422423667ull,
+ 4945422847972921318ull, 6893881693914214944ull}},
+ {{4588925854904180662ull, 4852084028673253776ull,
+ 6181778559966151648ull, 8617352117392768680ull}},
+ {{2868078659315112914ull, 3032552517920783610ull,
+ 3863611599978844780ull, 5385845073370480425ull}},
+ {{12808470360998666950ull, 3790690647400979512ull,
+ 9441200518400943879ull, 6732306341713100531ull}},
+ {{16010587951248333688ull, 126677290823836486ull,
+ 7189814629573791945ull, 8415382927141375664ull}},
+ {{5394931451102820651ull, 11608388352833367564ull,
+ 4493634143483619965ull, 5259614329463359790ull}},
+ {{6743664313878525814ull, 675427385759545743ull,
+ 14840414716209300765ull, 6574517911829199737ull}},
+ {{3817894373920769363ull, 5455970250626820083ull,
+ 4715460339979462244ull, 8218147389786499672ull}},
+ {{80340974486786900ull, 12633353443496538360ull, 2947162712487163902ull,
+ 5136342118616562295ull}},
+ {{100426218108483625ull, 6568319767515897142ull,
+ 17519011445891118590ull, 6420427648270702868ull}},
+ {{9348904809490380339ull, 17433771746249647235ull,
+ 3452020233654346621ull, 8025534560338378586ull}},
+ {{3537222496717793760ull, 13201950350619723474ull,
+ 6769198664461354542ull, 5015959100211486616ull}},
+ {{13644900157752018008ull, 7279065901419878534ull,
+ 8461498330576693178ull, 6269948875264358270ull}},
+ {{7832753160335246702ull, 18322204413629623976ull,
+ 1353500876366090664ull, 7837436094080447838ull}},
+ {{4895470725209529189ull, 11451377758518514985ull,
+ 14680996103010970377ull, 4898397558800279898ull}},
+ {{10731024424939299390ull, 479164142865980019ull,
+ 9127873091908937164ull, 6122996948500349873ull}},
+ {{8802094512746736333ull, 598955178582475024ull,
+ 16021527383313559359ull, 7653746185625437341ull}},
+ {{5501309070466710209ull, 7291876014255128746ull,
+ 12319297623784668551ull, 4783591366015898338ull}},
+ {{16100008374938163569ull, 4503158999391523028ull,
+ 6175749992876059881ull, 5979489207519872923ull}},
+ {{1678266394963152845ull, 10240634767666791690ull,
+ 3108001472667686947ull, 7474361509399841154ull}},
+ {{5660602515279358432ull, 4094553720578050854ull,
+ 6554186938844692246ull, 4671475943374900721ull}},
+ {{16299125180953973848ull, 14341564187577339375ull,
+ 12804419691983253211ull, 5839344929218625901ull}},
+ {{15762220457765079406ull, 13315269216044286315ull,
+ 2170466559696902802ull, 7299181161523282377ull}},
+ {{15091089553778961353ull, 7420714483200582086ull,
+ 7324769218048516407ull, 9123976451904102971ull}},
+ {{4820244952684462942ull, 11555475579641445660ull,
+ 2272137752066628802ull, 5702485282440064357ull}},
+ {{6025306190855578677ull, 5220972437697031267ull,
+ 7451858208510673907ull, 7128106603050080446ull}},
+ {{2919946720142085442ull, 1914529528693901180ull, 91450723783566576ull,
+ 8910133253812600558ull}},
+ {{11048338736943579210ull, 1196580955433688237ull,
+ 13892214757646892822ull, 5568833283632875348ull}},
+ {{18422109439606861916ull, 10719098231146886104ull,
+ 17365268447058616027ull, 6961041604541094185ull}},
+ {{4580892725799025779ull, 8787186770506219727ull,
+ 7871527503541106322ull, 8701302005676367732ull}},
+ {{9780586981265472968ull, 10103677749993775233ull,
+ 14143076726567967259ull, 5438313753547729832ull}},
+ {{16837419745009229114ull, 8017911169064831137ull,
+ 17678845908209959074ull, 6797892191934662290ull}},
+ {{7211716625979372680ull, 799016924476263114ull,
+ 12875185348407673035ull, 8497365239918327863ull}},
+ {{9119008909664495829ull, 16640286642293522110ull,
+ 14964519870395877502ull, 5310853274948954914ull}},
+ {{2175389100225843979ull, 11576986266012126830ull,
+ 9482277801140071070ull, 6638566593686193643ull}},
+ {{11942608412137080781ull, 5247860795660382729ull,
+ 7241161232997700934ull, 8298208242107742054ull}},
+ {{546601229944593632ull, 17114971052569902918ull,
+ 18360783825905726795ull, 5186380151317338783ull}},
+ {{9906623574285517848ull, 16782027797284990743ull,
+ 18339293763954770590ull, 6482975189146673479ull}},
+ {{7771593449429509406ull, 11754162709751462621ull,
+ 18312431186516075334ull, 8103718986433341849ull}},
+ {{7163088915107137331ull, 2734665675167276234ull,
+ 4527740463931465228ull, 5064824366520838656ull}},
+ {{18177233180738697472ull, 3418332093959095292ull,
+ 5659675579914331535ull, 6331030458151048320ull}},
+ {{4274797402213820224ull, 18107973172731032828ull,
+ 7074594474892914418ull, 7913788072688810400ull}},
+ {{11895120413238413448ull, 15929169251384283421ull,
+ 4421621546808071511ull, 4946117545430506500ull}},
+ {{1033842461265853098ull, 15299775545802966373ull,
+ 5527026933510089389ull, 6182646931788133125ull}},
+ {{5903989095009704276ull, 5289661376971544254ull,
+ 11520469685314999641ull, 7728308664735166406ull}},
+ {{17525051239663228885ull, 14835253406675684918ull,
+ 2588607534894486871ull, 4830192915459479004ull}},
+ {{12682942012724260298ull, 13932380739917218244ull,
+ 3235759418618108589ull, 6037741144324348755ull}},
+ {{15853677515905325372ull, 3580417869614359093ull,
+ 17879757328554799449ull, 7547176430405435943ull}},
+ {{12214391456654522310ull, 13766976214577444193ull,
+ 18092377357987831511ull, 4716985269003397464ull}},
+ {{1432931265535989175ull, 12597034249794417338ull,
+ 4168727623775237773ull, 5896231586254246831ull}},
+ {{11014536118774762277ull, 1911234756960857960ull,
+ 599223511291659313ull, 7370289482817808539ull}},
+ {{13768170148468452846ull, 7000729464628460354ull,
+ 14584087444396737853ull, 9212861853522260673ull}},
+ {{13216792361220170933ull, 6681298924606481673ull,
+ 2197525625106879302ull, 5758038658451412921ull}},
+ {{2685932396243049954ull, 17574995692612877900ull,
+ 7358593049810987031ull, 7197548323064266151ull}},
+ {{3357415495303812442ull, 17357058597338709471ull,
+ 4586555293836345885ull, 8996935403830332689ull}},
+ {{9015913712205964633ull, 13154004632550387371ull,
+ 14395812104716185938ull, 5623084627393957930ull}},
+ {{6658206121830067887ull, 7219133753833208406ull,
+ 8771393094040456615ull, 7028855784242447413ull}},
+ {{17546129689142360666ull, 4412231173864122603ull,
+ 15575927385977958673ull, 8786069730303059266ull}},
+ {{8660488046500281465ull, 14286859529733546387ull,
+ 14346640634663612074ull, 5491293581439412041ull}},
+ {{6213924039697963927ull, 8635202375312157176ull,
+ 4098242738047351381ull, 6864116976799265052ull}},
+ {{7767405049622454908ull, 15405688987567584374ull,
+ 5122803422559189226ull, 8580146220999081315ull}},
+ {{242942137586646414ull, 14240241635657128138ull, 895909129885799314ull,
+ 5362591388124425822ull}},
+ {{9527049708838083825ull, 8576930007716634364ull,
+ 10343258449212024951ull, 6703239235155532277ull}},
+ {{11908812136047604781ull, 6109476491218405051ull,
+ 17540759079942419093ull, 8379049043944415346ull}},
+ {{5137164575816059036ull, 6124265816225197109ull,
+ 15574660443391399837ull, 5236905652465259591ull}},
+ {{11033141738197461699ull, 12267018288708884290ull,
+ 14856639535811861892ull, 6546132065581574489ull}},
+ {{4568055135892051316ull, 15333772860886105363ull,
+ 4735741364482663653ull, 8182665081976968112ull}},
+ {{549191450718838121ull, 11889451047267509804ull,
+ 2959838352801664783ull, 5114165676235605070ull}},
+ {{686489313398547651ull, 10250127790656999351ull,
+ 12923169977856856787ull, 6392707095294506337ull}},
+ {{14693169697030348275ull, 8200973719893861284ull,
+ 2318904417038907272ull, 7990883869118132922ull}},
+ {{18406603097498743480ull, 5125608574933663302ull,
+ 6061001279076704949ull, 4994302418198833076ull}},
+ {{13784881835018653542ull, 11018696737094467032ull,
+ 7576251598845881186ull, 6242878022748541345ull}},
+ {{17231102293773316928ull, 4549998884513307982ull,
+ 14082000516984739387ull, 7803597528435676681ull}},
+ {{6157752915180935176ull, 537906293607123537ull, 1883721295474380261ull,
+ 4877248455272297926ull}},
+ {{12308877162403556874ull, 5284068885436292325ull,
+ 11578023656197751134ull, 6096560569090372407ull}},
+ {{1551038397722282380ull, 15828458143650141215ull,
+ 9860843551819801013ull, 7620700711362965509ull}},
+ {{7886928026217508344ull, 12198629348995032211ull,
+ 8468870229101069585ull, 4762937944601853443ull}},
+ {{5246974014344497526ull, 1413228630961626552ull,
+ 5974401767948949078ull, 5953672430752316804ull}},
+ {{6558717517930621907ull, 10989907825556808998ull,
+ 7468002209936186347ull, 7442090538440396005ull}},
+ {{17934256503988802404ull, 4562849381759311671ull,
+ 6973344390423810419ull, 4651306586525247503ull}},
+ {{17806134611558615101ull, 1091875708771751685ull,
+ 4104994469602375120ull, 5814133233156559379ull}},
+ {{8422610209166105164ull, 1364844635964689607ull, 519557068575580996ull,
+ 7267666541445699224ull}},
+ {{5916576743030243551ull, 1706055794955862009ull, 649446335719476245ull,
+ 9084583176807124030ull}},
+ {{15227075510462371979ull, 3372127881061107707ull,
+ 14240962015106836365ull, 5677864485504452518ull}},
+ {{14422158369650577070ull, 8826845869753772538ull,
+ 8577830482028769648ull, 7097330606880565648ull}},
+ {{8804325925208445530ull, 11033557337192215673ull,
+ 10722288102535962060ull, 8871663258600707060ull}},
+ {{17031918749323748216ull, 16119345372599910603ull,
+ 15924802100939752095ull, 5544789536625441912ull}},
+ {{16678212418227297366ull, 15537495697322500350ull,
+ 1459258552465138503ull, 6930986920781802391ull}},
+ {{11624393485929345900ull, 14810183603225737534ull,
+ 15659131245863586841ull, 8663733650977252988ull}},
+ {{2653559910278453283ull, 2338835724375004103ull, 563584991809965968ull,
+ 5414833531860783118ull}},
+ {{17152007943130230316ull, 2923544655468755128ull,
+ 9927853276617233268ull, 6768541914825978897ull}},
+ {{2993265855203236279ull, 3654430819335943911ull,
+ 17021502614198929489ull, 8460677393532473621ull}},
+ {{8788320187143104531ull, 13813234308153434704ull,
+ 12944282143088024882ull, 5287923370957796013ull}},
+ {{10985400233928880663ull, 8043170848337017572ull,
+ 2345294623577867391ull, 6609904213697245017ull}},
+ {{13731750292411100829ull, 5442277541993884061ull,
+ 7543304297899722143ull, 8262380267121556271ull}},
+ {{10888186941970631970ull, 10318952491387259394ull,
+ 11632094213828408195ull, 5163987666950972669ull}},
+ {{4386861640608514155ull, 8287004595806686339ull, 705059712003346532ull,
+ 6454984583688715837ull}},
+ {{871891032333254789ull, 10358755744758357924ull,
+ 5493010658431571069ull, 8068730729610894796ull}},
+ {{9768303932063060051ull, 8780065349687667654ull,
+ 12656503698374507726ull, 5042956706006809247ull}},
+ {{2987007878224049256ull, 1751709650254808760ull,
+ 11208943604540746754ull, 6303695882508511559ull}},
+ {{3733759847780061570ull, 11413009099673286758ull,
+ 9399493487248545538ull, 7879619853135639449ull}},
+ {{16168657960144702193ull, 11744816705723192127ull,
+ 17403898475598810721ull, 4924762408209774655ull}},
+ {{15599136431753489838ull, 845962826871826447ull,
+ 17143187076071125498ull, 6155953010262218319ull}},
+ {{14887234521264474393ull, 10280825570444558867ull,
+ 16817297826661518968ull, 7694941262827772899ull}},
+ {{6998678566576602544ull, 6425515981527849292ull,
+ 8204968132449755403ull, 4809338289267358062ull}},
+ {{8748348208220753180ull, 3420208958482423711ull,
+ 1032838128707418446ull, 6011672861584197578ull}},
+ {{6323749241848553570ull, 13498633234957805447ull,
+ 10514419697739048865ull, 7514591076980246972ull}},
+ {{10869872303796427838ull, 1519116744207546548ull,
+ 15794884347941681349ull, 4696619423112654357ull}},
+ {{13587340379745534797ull, 6510581948686821089ull,
+ 5908547379644937974ull, 5870774278890817947ull}},
+ {{3149117419399754784ull, 17361599472713302170ull,
+ 2773998206128784563ull, 7338467848613522434ull}},
+ {{13159768811104469288ull, 17090313322464239808ull,
+ 12690869794515756512ull, 9173084810766903042ull}},
+ {{8224855506940293305ull, 10681445826540149880ull,
+ 12543479639999735724ull, 5733178006729314401ull}},
+ {{10281069383675366631ull, 13351807283175187350ull,
+ 1844291494717505943ull, 7166472508411643002ull}},
+ {{3627964692739432481ull, 12078073085541596284ull,
+ 11528736405251658237ull, 8958090635514553752ull}},
+ {{11490849969816921109ull, 9854638687677191629ull,
+ 7205460253282286398ull, 5598806647196596095ull}},
+ {{528504406988987674ull, 3094926322741713729ull, 4395139298175470094ull,
+ 6998508308995745119ull}},
+ {{5272316527163622496ull, 13092029940281917969ull,
+ 882238104291949713ull, 8748135386244681399ull}},
+ {{14824412875545733820ull, 1264989685035116874ull,
+ 7468927842823550427ull, 5467584616402925874ull}},
+ {{9307144057577391467ull, 15416295161576059805ull,
+ 112787766674662225ull, 6834480770503657343ull}},
+ {{16245616090399127238ull, 5435310896687911044ull,
+ 13976042763625491494ull, 8543100963129571678ull}},
+ {{930138019644678716ull, 17232127365712108115ull,
+ 4123340708838544279ull, 5339438101955982299ull}},
+ {{14997730579838012107ull, 16928473188712747239ull,
+ 542489867620792445ull, 6674297627444977874ull}},
+ {{14135477206370127229ull, 7325533430608770337ull,
+ 9901484371380766365ull, 8342872034306222342ull}},
+ {{1917144226340247663ull, 6884301403344175413ull,
+ 1576741713685591074ull, 5214295021441388964ull}},
+ {{7008116301352697482ull, 17828748791034995074ull,
+ 1970927142106988842ull, 6517868776801736205ull}},
+ {{17983517413545647661ull, 13062563951938968034ull,
+ 7075344946061123957ull, 8147335971002170256ull}},
+ {{15851384401893417692ull, 10469945479175548973ull,
+ 4422090591288202473ull, 5092084981876356410ull}},
+ {{5979172447084608403ull, 17699117867396824121ull,
+ 14750985275965028899ull, 6365106227345445512ull}},
+ {{12085651577283148407ull, 17512211315818642247ull,
+ 18438731594956286124ull, 7956382784181806890ull}},
+ {{14471061263443049611ull, 1721760035531875596ull,
+ 16135893265275066732ull, 4972739240113629306ull}},
+ {{18088826579303812013ull, 2152200044414844495ull,
+ 10946494544739057607ull, 6215924050142036633ull}},
+ {{17999347205702377113ull, 16525308110800719331ull,
+ 18294804199351209912ull, 7769905062677545791ull}},
+ {{8943748994350291744ull, 10328317569250449582ull,
+ 18351781652235588051ull, 4856190664173466119ull}},
+ {{1956314206083088871ull, 8298710943135674074ull,
+ 18328041046867097160ull, 6070238330216832649ull}},
+ {{11668764794458636897ull, 10373388678919592592ull,
+ 9074993253301707738ull, 7587797912771040812ull}},
+ {{7292977996536648061ull, 11095053942752133274ull,
+ 14895242820168343144ull, 4742373695481900507ull}},
+ {{18339594532525585884ull, 13868817428440166592ull,
+ 14007367506783041026ull, 5927967119352375634ull}},
+ {{4477749091947430739ull, 8112649748695432433ull,
+ 8285837346624025475ull, 7409958899190469543ull}},
+ {{14327808228535613972ull, 2764563083720951318ull,
+ 12096177369281097778ull, 4631224311994043464ull}},
+ {{8686388248814741657ull, 12679075891505964956ull,
+ 15120221711601372222ull, 5789030389992554330ull}},
+ {{10857985311018427071ull, 6625472827527680387ull,
+ 9676905102646939470ull, 7236287987490692913ull}},
+ {{8960795620345645935ull, 17505213071264376292ull,
+ 16707817396736062241ull, 9045359984363366141ull}},
+ {{14823869299570804517ull, 4023229141899153326ull,
+ 12748228882173732853ull, 5653349990227103838ull}},
+ {{9306464587608729838ull, 9640722445801329562ull,
+ 6711914065862390258ull, 7066687487783879798ull}},
+ {{2409708697656136490ull, 2827531020396886145ull,
+ 17613264619182763631ull, 8833359359729849747ull}},
+ {{13035282982103555066ull, 8684735915389135696ull,
+ 8702447377775533317ull, 5520849599831156092ull}},
+ {{16294103727629443833ull, 15467605912663807524ull,
+ 10878059222219416646ull, 6901061999788945115ull}},
+ {{1920885585827253175ull, 10111135353974983598ull,
+ 8985888009346882904ull, 8626327499736181394ull}},
+ {{15035611546424196947ull, 6319459596234364748ull,
+ 10227866024269189719ull, 5391454687335113371ull}},
+ {{347770359320694567ull, 3287638476865568032ull, 8173146511909099245ull,
+ 6739318359168891714ull}},
+ {{434712949150868209ull, 8721234114509347944ull, 993061103031598248ull,
+ 8424147948961114643ull}},
+ {{271695593219292631ull, 5450771321568342465ull,
+ 16761564253890606569ull, 5265092468100696651ull}},
+ {{4951305509951503692ull, 11425150170387815985ull,
+ 16340269298935870307ull, 6581365585125870814ull}},
+ {{10800817905866767519ull, 9669751694557382077ull,
+ 11201964586815062076ull, 8226706981407338518ull}},
+ {{9056354200380423652ull, 15266966845953139606ull,
+ 2389541848332025893ull, 5141691863379586574ull}},
+ {{2097070713620753756ull, 5248650502159260796ull,
+ 12210299347269808175ull, 6427114829224483217ull}},
+ {{2621338392025942195ull, 1949127109271688091ull,
+ 1427816128805096507ull, 8033893536530604022ull}},
+ {{17779237559512071536ull, 17359105507790662720ull,
+ 14727443135785349028ull, 5021183460331627513ull}},
+ {{3777302875680537804ull, 3252137811028776785ull,
+ 4574245864449522574ull, 6276479325414534392ull}},
+ {{9333314613028060159ull, 13288544300640746789ull,
+ 5717807330561903217ull, 7845599156768167990ull}},
+ {{8139164642356231552ull, 1387811160259384887ull,
+ 17408687636883353223ull, 4903499472980104993ull}},
+ {{5562269784517901535ull, 15569822005606394821ull,
+ 7925801490822027816ull, 6129374341225131242ull}},
+ {{11564523249074764823ull, 1015533433298441910ull,
+ 683879826672758963ull, 7661717926531414053ull}},
+ {{2616141012244340111ull, 16775609460307383858ull,
+ 2733267900884168303ull, 4788573704082133783ull}},
+ {{12493548302160200946ull, 16357825806956841918ull,
+ 17251642931387374091ull, 5985717130102667228ull}},
+ {{6393563340845475375ull, 15835596240268664494ull,
+ 3117809590524665998ull, 7482146412628334036ull}},
+ {{17831035143310585821ull, 5285561631740527404ull,
+ 11172003030932692057ull, 4676341507892708772ull}},
+ {{3842049855428680661ull, 11218638058103047160ull,
+ 13965003788665865071ull, 5845426884865885965ull}},
+ {{4802562319285850826ull, 9411611554201421046ull,
+ 3621196680550167627ull, 7306783606082357457ull}},
+ {{15226574935962089340ull, 7152828424324388403ull,
+ 9138181869115097438ull, 9133479507602946821ull}},
+ {{7210766325762611886ull, 18305575820484906464ull,
+ 8017206677410629850ull, 5708424692251841763ull}},
+ {{9013457907203264857ull, 13658597738751357272ull,
+ 5409822328335899409ull, 7135530865314802204ull}},
+ {{11266822384004081071ull, 3238189118157032878ull,
+ 6762277910419874262ull, 8919413581643502755ull}},
+ {{2430077971575162766ull, 15858926254130309261ull,
+ 1920580684798727461ull, 5574633488527189222ull}},
+ {{7649283482896341361ull, 5988599762380722864ull,
+ 11624097892853185135ull, 6968291860658986527ull}},
+ {{9561604353620426701ull, 2874063684548515676ull,
+ 9918436347639093515ull, 8710364825823733159ull}},
+ {{15199374757867542496ull, 17937190867338679961ull,
+ 13116551744915515302ull, 5443978016139833224ull}},
+ {{5164160392052264408ull, 13198116547318574144ull,
+ 16395689681144394128ull, 6804972520174791530ull}},
+ {{6455200490065330510ull, 16497645684148217680ull,
+ 11271240064575716852ull, 8506215650218489413ull}},
+ {{4034500306290831569ull, 1087656515737860242ull,
+ 9350368049573516985ull, 5316384781386555883ull}},
+ {{14266497419718315269ull, 5971256663099713206ull,
+ 7076274043539508327ull, 6645480976733194854ull}},
+ {{8609749737793118278ull, 2852384810447253604ull,
+ 18068714591279161217ull, 8306851220916493567ull}},
+ {{14604465622975474732ull, 13311955552598003262ull,
+ 18210475647190557616ull, 5191782013072808479ull}},
+ {{9032209991864567607ull, 16639944440747504078ull,
+ 18151408540560809116ull, 6489727516341010599ull}},
+ {{2066890452975933701ull, 2353186477224828482ull,
+ 18077574657273623492ull, 8112159395426263249ull}},
+ {{5903492551537346467ull, 10694113585120293609ull,
+ 4380955133154932826ull, 5070099622141414531ull}},
+ {{11991051707849070988ull, 4144269944545591203ull,
+ 864507898016278129ull, 6337624527676768164ull}},
+ {{10377128616383950831ull, 9792023449109376908ull,
+ 1080634872520347661ull, 7922030659595960205ull}},
+ {{15709077422094745077ull, 8425857664907054519ull,
+ 2981239804538911240ull, 4951269162247475128ull}},
+ {{15024660759191043442ull, 10532322081133818149ull,
+ 3726549755673639050ull, 6189086452809343910ull}},
+ {{4945767893706640591ull, 3942030564562496879ull,
+ 13881559231446824621ull, 7736358066011679887ull}},
+ {{10008633961207732226ull, 4769612112065254501ull,
+ 15593503547295347244ull, 4835223791257299929ull}},
+ {{17122478469937053186ull, 5962015140081568126ull,
+ 5656821378837020343ull, 6044029739071624912ull}},
+ {{12179726050566540674ull, 2840832906674572254ull,
+ 7071026723546275429ull, 7555037173839531140ull}},
+ {{3000642763176700018ull, 4081363575885301611ull,
+ 13642763739071197951ull, 4721898233649706962ull}},
+ {{17585861509253038734ull, 490018451429239109ull,
+ 7830082636984221631ull, 5902372792062133703ull}},
+ {{8147268831284134705ull, 14447581119568712599ull,
+ 5175917277802889134ull, 7377965990077667129ull}},
+ {{5572400020677780477ull, 8836104362606114941ull,
+ 11081582615680999322ull, 9222457487597083911ull}},
+ {{5788593022137306750ull, 10134251245056209742ull,
+ 13843518162441706432ull, 5764035929748177444ull}},
+ {{16459113314526409246ull, 12667814056320262177ull,
+ 17304397703052133040ull, 7205044912185221805ull}},
+ {{6738833587875847845ull, 15834767570400327722ull,
+ 7795439073533002588ull, 9006306140231527257ull}},
+ {{8823457010849792808ull, 673357694645429018ull,
+ 16401364467026596378ull, 5628941337644704535ull}},
+ {{1805949226707465201ull, 10065069155161562081ull,
+ 15890019565355857568ull, 7036176672055880669ull}},
+ {{6869122551811719405ull, 12581336443951952601ull,
+ 6027466401412658248ull, 8795220840069850837ull}},
+ {{15822416640950794389ull, 7863335277469970375ull,
+ 6073009510096605357ull, 5497013025043656773ull}},
+ {{15166334782761105082ull, 14440855115264850873ull,
+ 12202947906048144600ull, 6871266281304570966ull}},
+ {{5122860423169217640ull, 18051068894081063592ull,
+ 6030312845705404942ull, 8589082851630713708ull}},
+ {{3201787764480761025ull, 6670232040373276841ull,
+ 12992317565420653897ull, 5368176782269196067ull}},
+ {{8613920724028339185ull, 12949476068893983955ull,
+ 11628710938348429467ull, 6710220977836495084ull}},
+ {{6155714886608036077ull, 11575159067690092040ull,
+ 14535888672935536834ull, 8387776222295618855ull}},
+ {{3847321804130022549ull, 11846160435733695429ull,
+ 16002459448225792377ull, 5242360138934761784ull}},
+ {{9420838273589916090ull, 972642489384955574ull, 1556330236572688856ull,
+ 6552950173668452231ull}},
+ {{2552675805132619304ull, 1215803111731194468ull,
+ 15780470850998024782ull, 8191187717085565288ull}},
+ {{10818794415062662873ull, 14594935000114160254ull,
+ 9862794281873765488ull, 5119492323178478305ull}},
+ {{4300120981973552783ull, 18243668750142700318ull,
+ 16940178870769594764ull, 6399365403973097881ull}},
+ {{14598523264321716787ull, 4357841863968823781ull,
+ 7340165533179829744ull, 7999206754966372352ull}},
+ {{11429920049414766944ull, 2723651164980514863ull,
+ 4587603458237393590ull, 4999504221853982720ull}},
+ {{9675714043341070776ull, 12627935993080419387ull,
+ 5734504322796741987ull, 6249380277317478400ull}},
+ {{7482956535748950566ull, 11173233972923136330ull,
+ 7168130403495927484ull, 7811725346646848000ull}},
+ {{9288533853270482008ull, 16206643269931736014ull,
+ 4480081502184954677ull, 4882328341654280000ull}},
+ {{2387295279733326702ull, 6423246032132506306ull,
+ 5600101877731193347ull, 6102910427067850000ull}},
+ {{12207491136521434185ull, 3417371521738244978ull,
+ 7000127347163991684ull, 7628638033834812500ull}},
+ {{12241367978753284270ull, 11359229237941178919ull,
+ 13598451628832270610ull, 4767898771146757812ull}},
+ {{10690023955014217433ull, 4975664510571697841ull,
+ 16998064536040338263ull, 5959873463933447265ull}},
+ {{17974215962195159695ull, 1607894619787234397ull,
+ 7412522614768259117ull, 7449841829916809082ull}},
+ {{13539727985585668762ull, 3310777146580715450ull,
+ 9244512652657549852ull, 4656151143698005676ull}},
+ {{7701287945127310144ull, 4138471433225894313ull,
+ 11555640815821937315ull, 5820188929622507095ull}},
+ {{14238295949836525584ull, 561403273104979987ull,
+ 9832865001350033740ull, 7275236162028133869ull}},
+ {{13186183918868269076ull, 701754091381224984ull,
+ 16902767270114930079ull, 9094045202535167336ull}},
+ {{8241364949292668173ull, 7356125334754347471ull,
+ 10564229543821831299ull, 5683778251584479585ull}},
+ {{5690020168188447312ull, 4583470650015546435ull,
+ 17816972948204677028ull, 7104722814480599481ull}},
+ {{2500839191808171235ull, 5729338312519433044ull,
+ 8436158129973682573ull, 8880903518100749352ull}},
+ {{10786396531734882830ull, 5886679454538339604ull,
+ 5272598831233551608ull, 5550564698812968345ull}},
+ {{13482995664668603538ull, 7358349318172924505ull,
+ 11202434557469327414ull, 6938205873516210431ull}},
+ {{3018686525553590710ull, 18421308684570931440ull,
+ 9391357178409271363ull, 8672757341895263039ull}},
+ {{1886679078470994194ull, 9207474918643138198ull,
+ 12787127264146876458ull, 5420473338684539399ull}},
+ {{11581720884943518550ull, 2285971611449146939ull,
+ 11372223061756207669ull, 6775591673355674249ull}},
+ {{9865465087752010284ull, 7469150532738821578ull, 380220771913095874ull,
+ 8469489591694592812ull}},
+ {{10777601698272394332ull, 9279905101389151390ull,
+ 9461010019300460729ull, 5293430994809120507ull}},
+ {{4248630085985717106ull, 16211567395163827142ull,
+ 7214576505698188007ull, 6616788743511400634ull}},
+ {{14534159644336922191ull, 15652773225527396023ull,
+ 18241592668977510817ull, 8270985929389250792ull}},
+ {{16001378805351658225ull, 2865454238313540658ull,
+ 11400995418110944261ull, 5169366205868281745ull}},
+ {{10778351469834796974ull, 8193503816319313727ull,
+ 416186217356516614ull, 6461707757335352182ull}},
+ {{8861253318866108313ull, 1018507733544366351ull,
+ 9743604808550421576ull, 8077134696669190227ull}},
+ {{12455812351932399552ull, 636567333465228969ull,
+ 3783909996130319533ull, 5048209185418243892ull}},
+ {{1734707384633335728ull, 5407395185258924116ull,
+ 4729887495162899416ull, 6310261481772804865ull}},
+ {{2168384230791669659ull, 6759243981573655145ull,
+ 10524045387381012174ull, 7887826852216006081ull}},
+ {{12884455190313263297ull, 18059585543765698177ull,
+ 18106743413181602368ull, 4929891782635003800ull}},
+ {{2270510932609415409ull, 4127737855997571106ull,
+ 4186685192767451345ull, 6162364728293754751ull}},
+ {{12061510702616545070ull, 9771358338424351786ull,
+ 621670472531926277ull, 7702955910367193439ull}},
+ {{12150130207562728573ull, 8412941970728913818ull,
+ 7306073072973535779ull, 4814347443979495899ull}},
+ {{5964290722598634908ull, 5904491444983754369ull,
+ 4520905322789531820ull, 6017934304974369874ull}},
+ {{12067049421675681539ull, 7380614306229692961ull,
+ 14874503690341690583ull, 7522417881217962342ull}},
+ {{624376860906219106ull, 11530412969034639957ull,
+ 4684878788036168710ull, 4701511175761226464ull}},
+ {{5392157094560161786ull, 5189644174438524138ull,
+ 5856098485045210888ull, 5876888969701533080ull}},
+ {{15963568405054978041ull, 6487055218048155172ull,
+ 7320123106306513610ull, 7346111212126916350ull}},
+ {{1507716432609170935ull, 17332191059414969774ull,
+ 18373525919737917820ull, 9182639015158645437ull}},
+ {{14777380825662895546ull, 1609247375279580300ull,
+ 13789296709049892590ull, 5739149384474153398ull}},
+ {{24981958369067817ull, 11234931255954251184ull, 8013248849457589929ull,
+ 7173936730592691748ull}},
+ {{31227447961334771ull, 208606014660650268ull, 10016561061821987412ull,
+ 8967420913240864685ull}},
+ {{9242889191830610040ull, 9353750796017682225ull,
+ 8566193672852436084ull, 5604638070775540428ull}},
+ {{16165297508215650454ull, 11692188495022102781ull,
+ 10707742091065545105ull, 7005797588469425535ull}},
+ {{6371563829987399355ull, 780177563495464765ull, 8772991595404543478ull,
+ 8757246985586781919ull}},
+ {{6288070402955818549ull, 14322669032466829190ull,
+ 12400648774768921529ull, 5473279365991738699ull}},
+ {{17083460040549548994ull, 4068278235301372775ull,
+ 10889124950033764008ull, 6841599207489673374ull}},
+ {{16742639032259548339ull, 5085347794126715969ull,
+ 4388034150687429202ull, 8551999009362091718ull}},
+ {{3546620367521135856ull, 7790028389756585385ull,
+ 16577579399461806963ull, 5344999380851307323ull}},
+ {{9044961477828807724ull, 5125849468768343827ull,
+ 16110288230899870800ull, 6681249226064134154ull}},
+ {{6694515828858621751ull, 6407311835960429784ull,
+ 10914488251770062692ull, 8351561532580167693ull}},
+ {{4184072393036638594ull, 13227941934330044423ull,
+ 9127398166569983134ull, 5219725957862604808ull}},
+ {{618404472868410339ull, 7311555381057779721ull,
+ 11409247708212478918ull, 6524657447328256010ull}},
+ {{5384691609512900827ull, 18362816263177000459ull,
+ 5038187598410822839ull, 8155821809160320013ull}},
+ {{1059589246731869065ull, 18394289192126707143ull,
+ 5454710258220458226ull, 5097388630725200008ull}},
+ {{15159544613697000043ull, 13769489453303608120ull,
+ 6818387822775572783ull, 6371735788406500010ull}},
+ {{502686693411698438ull, 12600175798202122247ull,
+ 17746356815324241787ull, 7964669735508125012ull}},
+ {{7231708211023393380ull, 5569266864662632452ull,
+ 1868100972722875309ull, 4977918584692578133ull}},
+ {{9039635263779241725ull, 11573269599255678469ull,
+ 6946812234330982040ull, 6222398230865722666ull}},
+ {{15911230098151440060ull, 14466586999069598086ull,
+ 17906887329768503358ull, 7777997788582153332ull}},
+ {{5332832792917262134ull, 4429930855991110900ull,
+ 1968432544250538791ull, 4861248617863845833ull}},
+ {{6666040991146577667ull, 925727551561500721ull, 7072226698740561393ull,
+ 6076560772329807291ull}},
+ {{12944237257360609988ull, 5768845457879263805ull,
+ 4228597354998313837ull, 7595700965412259114ull}},
+ {{10395991295064075194ull, 5911371420388233830ull,
+ 7254559365301334052ull, 4747313103382661946ull}},
+ {{3771617081975318185ull, 7389214275485292288ull,
+ 18291571243481443373ull, 5934141379228327432ull}},
+ {{4714521352469147731ull, 13848203862784003264ull,
+ 4417719980642252600ull, 7417676724035409291ull}},
+ {{2946575845293217332ull, 8655127414240002040ull, 455231978687713923ull,
+ 4636047952522130807ull}},
+ {{3683219806616521665ull, 6207223249372614646ull,
+ 14404098028641806116ull, 5795059940652663508ull}},
+ {{13827396795125427889ull, 7759029061715768307ull,
+ 18005122535802257645ull, 7243824925815829385ull}},
+ {{12672559975479396957ull, 14310472345572098288ull,
+ 8671345114470658344ull, 9054781157269786732ull}},
+ {{7920349984674623099ull, 8944045215982561430ull,
+ 14642962733398937273ull, 5659238223293616707ull}},
+ {{677065443988503065ull, 15791742538405589692ull,
+ 13692017398321283687ull, 7074047779117020884ull}},
+ {{846331804985628831ull, 15127992154579599211ull,
+ 17115021747901604609ull, 8842559723896276105ull}},
+ {{16669858442611875684ull, 2537466068971167650ull,
+ 3779359564797421025ull, 5526599827435172566ull}},
+ {{11613951016410068796ull, 7783518604641347467ull,
+ 13947571492851552089ull, 6908249784293965707ull}},
+ {{9905752752085198091ull, 14341084274229072238ull,
+ 12822778347637052207ull, 8635312230367457134ull}},
+ {{1579409451625860903ull, 15880706699034252005ull,
+ 3402550448845769725ull, 5397070143979660709ull}},
+ {{6585947832959714033ull, 6015825318510651294ull,
+ 8864874079484600061ull, 6746337679974575886ull}},
+ {{17455806828054418349ull, 12131467666565702021ull,
+ 1857720562500974268ull, 8432922099968219858ull}},
+ {{13215722276747705420ull, 16805539328458339571ull,
+ 5772761369990496821ull, 5270576312480137411ull}},
+ {{11907966827507243871ull, 7171866105290760752ull,
+ 2604265694060733123ull, 6588220390600171764ull}},
+ {{14884958534384054839ull, 4353146613186063036ull,
+ 3255332117575916404ull, 8235275488250214705ull}},
+ {{79727047135258467ull, 11944088670096065206ull,
+ 13563797619553417512ull, 5147047180156384190ull}},
+ {{9323030845773848891ull, 14930110837620081507ull,
+ 7731374987586996082ull, 6433808975195480238ull}},
+ {{7042102538789923210ull, 9439266510170326076ull, 440846697628969295ull,
+ 8042261218994350298ull}},
+ {{13624686123598477814ull, 12817070596497535653ull,
+ 4887215204445493713ull, 5026413261871468936ull}},
+ {{3195799599215933556ull, 2186280190339755855ull,
+ 6109019005556867142ull, 6283016577339336170ull}},
+ {{17829807554302080657ull, 11956222274779470626ull,
+ 16859645793800859735ull, 7853770721674170212ull}},
+ {{15755315739866188315ull, 14390167949378250997ull,
+ 1313906584270761526ull, 4908606701046356383ull}},
+ {{5859086619550571681ull, 8764337899868037939ull,
+ 15477441285620615620ull, 6135758376307945478ull}},
+ {{2712172256010826697ull, 10955422374835047424ull,
+ 10123429570170993717ull, 7669697970384931848ull}},
+ {{1695107660006766686ull, 9152981993485598592ull,
+ 6327143481356871073ull, 4793561231490582405ull}},
+ {{2118884575008458357ull, 16052913510284386144ull,
+ 12520615370123476745ull, 5991951539363228006ull}},
+ {{2648605718760572947ull, 6231083832573318968ull,
+ 6427397175799570124ull, 7489939424204035008ull}},
+ {{1655378574225358092ull, 13117799432213100163ull,
+ 4017123234874731327ull, 4681212140127521880ull}},
+ {{15904281273063861327ull, 11785563271838987299ull,
+ 5021404043593414159ull, 5851515175159402350ull}},
+ {{15268665572902438754ull, 10120268071371346220ull,
+ 15500127091346543507ull, 7314393968949252937ull}},
+ {{639087892418496827ull, 8038649070786794872ull, 5540100808901015672ull,
+ 9142992461186566172ull}},
+ {{399429932761560517ull, 5024155669241746795ull,
+ 12685935042417910603ull, 5714370288241603857ull}},
+ {{14334345471234114358ull, 1668508568124795589ull,
+ 2022360747740224542ull, 7142962860302004822ull}},
+ {{4082873783760479235ull, 11309007747010770295ull,
+ 11751322971530056485ull, 8928703575377506027ull}},
+ {{9469325142491381378ull, 9373972851095425386ull,
+ 5038733847992591351ull, 5580439734610941267ull}},
+ {{2613284391259450915ull, 7105780045441893829ull,
+ 1686731291563351285ull, 6975549668263676584ull}},
+ {{7878291507501701547ull, 13493911075229755190ull,
+ 2108414114454189106ull, 8719437085329595730ull}},
+ {{312246173761175563ull, 13045380440445984898ull,
+ 5929444839961256095ull, 5449648178330997331ull}},
+ {{9613679754056245262ull, 11695039532130093218ull,
+ 2800120031524182215ull, 6812060222913746664ull}},
+ {{2793727655715530769ull, 10007113396735228619ull,
+ 3500150039405227769ull, 8515075278642183330ull}},
+ {{17886980849318064395ull, 17783660919027987646ull,
+ 6799279793055655259ull, 5321922049151364581ull}},
+ {{13135354024792804685ull, 17617890130357596654ull,
+ 13110785759746956978ull, 6652402561439205726ull}},
+ {{7195820494136230049ull, 12798990626092220010ull,
+ 7165110162828920415ull, 8315503201799007158ull}},
+ {{9109073827262531685ull, 14916898168948719362ull,
+ 18313251907050238971ull, 5197189501124379473ull}},
+ {{2162970247223388798ull, 14034436692758511299ull,
+ 9056506828530635002ull, 6496486876405474342ull}},
+ {{16538770864311399709ull, 8319673829093363315ull,
+ 2097261498808517945ull, 8120608595506842928ull}},
+ {{8030888780980930866ull, 16729011189251821832ull,
+ 1310788436755323715ull, 5075380372191776830ull}},
+ {{10038610976226163583ull, 16299577968137389386ull,
+ 10861857582798930452ull, 6344225465239721037ull}},
+ {{3324891683427928670ull, 1927728386462185117ull,
+ 18189007996926050970ull, 7930281831549651296ull}},
+ {{4383900311356149371ull, 5816516259966253602ull,
+ 11368129998078781856ull, 4956426144718532060ull}},
+ {{14703247426049962522ull, 7270645324957817002ull,
+ 14210162497598477320ull, 6195532680898165075ull}},
+ {{9155687245707677344ull, 9088306656197271253ull,
+ 13151017103570708746ull, 7744415851122706344ull}},
+ {{8028147537780992292ull, 10291877678550682437ull,
+ 8219385689731692966ull, 4840259906951691465ull}},
+ {{14646870440653628269ull, 3641475061333577238ull,
+ 14885918130592004112ull, 6050324883689614331ull}},
+ {{9085216013962259528ull, 4551843826666971548ull,
+ 13995711644812617236ull, 7562906104612017914ull}},
+ {{14901632045581188013ull, 12068274428521633025ull,
+ 13359005796435273676ull, 4726816315382511196ull}},
+ {{4791982001694321305ull, 15085343035652041282ull,
+ 16698757245544092095ull, 5908520394228138995ull}},
+ {{15213349538972677439ull, 14244992776137663698ull,
+ 16261760538502727215ull, 7385650492785173744ull}},
+ {{14120029480285311303ull, 15820649512727121667ull,
+ 10163600336564204509ull, 4616031557990733590ull}},
+ {{13038350831929251225ull, 5940753835626738372ull,
+ 3481128383850479829ull, 5770039447488416988ull}},
+ {{16297938539911564031ull, 12037628312960810869ull,
+ 4351410479813099786ull, 7212549309360521235ull}},
+ {{6537365119607291327ull, 5823663354346237779ull, 827577081338986829ull,
+ 9015686636700651544ull}},
+ {{1780010190540863127ull, 5945632605680092564ull, 517235675836866768ull,
+ 5634804147937907215ull}},
+ {{2225012738176078909ull, 7432040757100115705ull,
+ 14481602650078247172ull, 7043505184922384018ull}},
+ {{7392951941147486540ull, 9290050946375144631ull,
+ 8878631275743033157ull, 8804381481152980023ull}},
+ {{11538123990858260944ull, 8112124850698159346ull,
+ 12466673574980477579ull, 5502738425720612514ull}},
+ {{5199282951718050372ull, 5528470044945311279ull,
+ 6359969931870821166ull, 6878423032150765643ull}},
+ {{1887417671220175061ull, 16133959593036414907ull,
+ 3338276396411138553ull, 8598028790188457054ull}},
+ {{17320537109008467077ull, 3166195718006677460ull,
+ 15921480803039125308ull, 5373767993867785658ull}},
+ {{3203927312551032230ull, 3957744647508346826ull,
+ 10678478966944130827ull, 6717209992334732073ull}},
+ {{13228281177543566096ull, 335494790958045628ull,
+ 17959784727107551438ull, 8396512490418415091ull}},
+ {{17491047772819504618ull, 14044742299630942229ull,
+ 8919022445228525696ull, 5247820306511509432ull}},
+ {{8028751660742217060ull, 17555927874538677787ull,
+ 11148778056535657120ull, 6559775383139386790ull}},
+ {{5424253557500383421ull, 3498165769463795618ull,
+ 4712600533814795593ull, 8199719228924233488ull}},
+ {{8001844491865127543ull, 13715568651983342021ull,
+ 2945375333634247245ull, 5124824518077645930ull}},
+ {{14613991633258797332ull, 3309402759697013814ull,
+ 12905091203897584865ull, 6406030647597057412ull}},
+ {{9044117504718720857ull, 8748439468048655172ull,
+ 16131364004871981081ull, 8007538309496321765ull}},
+ {{14875945477303976344ull, 16996989713598879242ull,
+ 12387945512258682127ull, 5004711443435201103ull}},
+ {{9371559809775194622ull, 16634551123571211149ull,
+ 10873245871895964755ull, 6255889304294001379ull}},
+ {{16326135780646381181ull, 16181502886036626032ull,
+ 8979871321442568040ull, 7819861630367501724ull}},
+ {{10203834862903988238ull, 10113439303772891270ull,
+ 14835791612756380833ull, 4887413518979688577ull}},
+ {{3531421541775209490ull, 17253485148143501992ull,
+ 4709681460663312329ull, 6109266898724610722ull}},
+ {{4414276927219011862ull, 7731798379897213778ull,
+ 15110473862683916220ull, 7636583623405763402ull}},
+ {{7370609097939270318ull, 14055746024290534419ull,
+ 14055732182604835541ull, 4772864764628602126ull}},
+ {{4601575353996699993ull, 3734624475081004312ull,
+ 8346293191401268619ull, 5966080955785752658ull}},
+ {{5751969192495874991ull, 56594575423867486ull, 1209494452396809966ull,
+ 7457601194732190823ull}},
+ {{17430038800592085582ull, 13870429664922080890ull,
+ 7673463060389088084ull, 4661000746707619264ull}},
+ {{12564176463885331169ull, 17338037081152601113ull,
+ 9591828825486360105ull, 5826250933384524080ull}},
+ {{1870162524574500249ull, 7837488296158587680ull,
+ 11989786031857950132ull, 7282813666730655100ull}},
+ {{2337703155718125312ull, 9796860370198234600ull,
+ 14987232539822437665ull, 9103517083413318875ull}},
+ {{1461064472323828320ull, 17652252777442366385ull,
+ 7061177328175329588ull, 5689698177133324297ull}},
+ {{6438016608832173304ull, 3618571898093406365ull,
+ 13438157678646549890ull, 7112122721416655371ull}},
+ {{12659206779467604534ull, 13746586909471533764ull,
+ 12186011079880799458ull, 8890153401770819214ull}},
+ {{17135376274022028642ull, 13203302836847096506ull,
+ 3004570906498111757ull, 5556345876106762009ull}},
+ {{12195848305672759994ull, 2669070490776706921ull,
+ 8367399651550027601ull, 6945432345133452511ull}},
+ {{1409752326808786280ull, 7948024131898271556ull,
+ 5847563546010146597ull, 8681790431416815639ull}},
+ {{10104467241110267233ull, 7273358091650113674ull,
+ 10572256243897423479ull, 5426119019635509774ull}},
+ {{3407212014533058234ull, 4480011596135254189ull,
+ 3991948268017003541ull, 6782648774544387218ull}},
+ {{8870701036593710696ull, 10211700513596455640ull,
+ 14213307371876030234ull, 8478310968180484022ull}},
+ {{5544188147871069185ull, 10993998839425172679ull,
+ 4271631088995130992ull, 5298944355112802514ull}},
+ {{2318549166411448577ull, 13742498549281465849ull,
+ 14562910898098689548ull, 6623680443891003142ull}},
+ {{7509872476441698625ull, 17178123186601832311ull,
+ 8980266585768586127ull, 8279600554863753928ull}},
+ {{11611199325417143497ull, 17653856019267227050ull,
+ 5612666616105366329ull, 5174750346789846205ull}},
+ {{5290627119916653563ull, 8232261968801870101ull,
+ 11627519288559095816ull, 6468437933487307756ull}},
+ {{11224969918323204858ull, 10290327461002337626ull,
+ 14534399110698869770ull, 8085547416859134695ull}},
+ {{11627292217379390940ull, 11043140681553848920ull,
+ 16001528471827875462ull, 5053467135536959184ull}},
+ {{14534115271724238675ull, 4580553815087535342ull,
+ 1555166516075292712ull, 6316833919421198981ull}},
+ {{8944272052800522536ull, 5725692268859419178ull,
+ 6555644163521503794ull, 7896042399276498726ull}},
+ {{10201856051427714489ull, 8190243686464524890ull,
+ 17932335657483103583ull, 4935026499547811703ull}},
+ {{3528948027429867303ull, 5626118589653268209ull,
+ 17803733553426491575ull, 6168783124434764629ull}},
+ {{9022871052714722033ull, 2420962218639197357ull,
+ 8419608886500950757ull, 7710978905543455787ull}},
+ {{7945137417160395223ull, 3818944395863192300ull,
+ 2956412544849400271ull, 4819361815964659867ull}},
+ {{9931421771450494029ull, 161994476401602471ull,
+ 17530573736343914051ull, 6024202269955824833ull}},
+ {{7802591195885729632ull, 14037551150784166801ull,
+ 8078159115147728851ull, 7530252837444781042ull}},
+ {{16405834543497050780ull, 6467626460026410298ull,
+ 9660535465394718436ull, 4706408023402988151ull}},
+ {{11283921142516537667ull, 8084533075033012873ull,
+ 7463983313316010141ull, 5883010029253735189ull}},
+ {{269843372863508371ull, 14717352362218653996ull,
+ 13941665160072400580ull, 7353762536567168986ull}},
+ {{337304216079385464ull, 18396690452773317495ull,
+ 8203709413235724917ull, 9192203170708961233ull}},
+ {{7128344162690697771ull, 13803774542197017386ull,
+ 16656533429340797833ull, 5745126981693100770ull}},
+ {{18133802240218148022ull, 3419660122464108020ull,
+ 11597294749821221484ull, 7181408727116375963ull}},
+ {{4220508726563133411ull, 4274575153080135026ull,
+ 9884932418849138951ull, 8976760908895469954ull}},
+ {{7249503972529346286ull, 9589138498316166247ull,
+ 10789768780208099748ull, 5610475568059668721ull}},
+ {{4450193947234294954ull, 11986423122895207809ull,
+ 18098896993687512589ull, 7013094460074585901ull}},
+ {{10174428452470256596ull, 1147970848336846049ull,
+ 8788563186827227025ull, 8766368075093232377ull}},
+ {{17888232828862380133ull, 12246696826278998540ull,
+ 17022067037835486650ull, 5478980046933270235ull}},
+ {{3913546962368423550ull, 6084998995993972368ull,
+ 16665897778866970409ull, 6848725058666587794ull}},
+ {{4891933702960529437ull, 12217934763419853364ull,
+ 11609000186728937203ull, 8560906323333234743ull}},
+ {{12280830601205106706ull, 5330366217923714400ull,
+ 14173154144346667608ull, 5350566452083271714ull}},
+ {{15351038251506383383ull, 6662957772404643000ull,
+ 8493070643578558702ull, 6688208065104089643ull}},
+ {{742053740673427612ull, 17552069252360579559ull,
+ 6004652286045810473ull, 8360260081380112054ull}},
+ {{7381312615561974114ull, 4052514255084280368ull,
+ 17587965734060795258ull, 5225162550862570033ull}},
+ {{9226640769452467642ull, 14289014855710126268ull,
+ 8149899112293830360ull, 6531453188578212542ull}},
+ {{11533300961815584553ull, 17861268569637657835ull,
+ 964001853512512142ull, 8164316485722765678ull}},
+ {{4902470091921046394ull, 6551606837596148243ull,
+ 14437559213727483801ull, 5102697803576728548ull}},
+ {{1516401596473920088ull, 12801194565422573208ull,
+ 18046949017159354751ull, 6378372254470910685ull}},
+ {{1895501995592400110ull, 11389807188350828606ull,
+ 8723628216167029727ull, 7972965318088638357ull}},
+ {{15019746802527413781ull, 14036158520360349734ull,
+ 7758110644318087531ull, 4983103323805398973ull}},
+ {{9551311466304491418ull, 12933512132023049264ull,
+ 14309324323824997318ull, 6228879154756748716ull}},
+ {{11939139332880614272ull, 6943518128174035772ull,
+ 17886655404781246648ull, 7786098943445935895ull}},
+ {{16685334119905159728ull, 4339698830108772357ull,
+ 18096688655629361011ull, 4866311839653709934ull}},
+ {{7021609594599285948ull, 812937519208577543ull,
+ 13397488782681925456ull, 6082889799567137418ull}},
+ {{4165325974821719531ull, 1016171899010721929ull,
+ 7523488941497631012ull, 7603612249458921773ull}},
+ {{14132543780332044467ull, 9858479473736477013ull,
+ 7008023597649713334ull, 4752257655911826108ull}},
+ {{3830621670132891872ull, 3099727305315820459ull,
+ 8760029497062141668ull, 5940322069889782635ull}},
+ {{176591069238726936ull, 3874659131644775574ull, 6338350852900289181ull,
+ 7425402587362228294ull}},
+ {{13945427473556368047ull, 4727504966491678685ull,
+ 17796527338344844450ull, 4640876617101392683ull}},
+ {{3596726286663296347ull, 15132753244969374165ull,
+ 17633973154503667658ull, 5801095771376740854ull}},
+ {{9107593876756508337ull, 9692569519356941898ull,
+ 12819094406274808765ull, 7251369714220926068ull}},
+ {{2161120309090859613ull, 16727397917623565277ull,
+ 16023868007843510956ull, 9064212142776157585ull}},
+ {{3656543202395481210ull, 1231251661659952490ull,
+ 3097388477261112492ull, 5665132589235098491ull}},
+ {{13794051039849127321ull, 1539064577074940612ull,
+ 17706793651858554327ull, 7081415736543873113ull}},
+ {{17242563799811409151ull, 15758888776625839477ull,
+ 8298434009541029196ull, 8851769670679841392ull}},
+ {{13082445384095824672ull, 625933448536373865ull,
+ 5186521255963143248ull, 5532356044174900870ull}},
+ {{2517998674837617127ull, 782416810670467332ull,
+ 15706523606808704868ull, 6915445055218626087ull}},
+ {{3147498343547021409ull, 978021013338084165ull,
+ 15021468490083493181ull, 8644306319023282609ull}},
+ {{4273029473930582333ull, 2917106142549996555ull,
+ 2470888778661101382ull, 5402691449389551631ull}},
+ {{729600823985840012ull, 12869754715042271502ull,
+ 16923669028608540439ull, 6753364311736939538ull}},
+ {{10135373066837075823ull, 11475507375375451473ull,
+ 11931214248905899741ull, 8441705389671174423ull}},
+ {{17863823212841642149ull, 9478035118823351122ull,
+ 14374537933207269194ull, 5276065868544484014ull}},
+ {{13106406979197276879ull, 2624171861674413095ull,
+ 8744800379654310685ull, 6595082335680605018ull}},
+ {{11771322705569208194ull, 7891900845520404273ull,
+ 1707628437713112548ull, 8243852919600756273ull}},
+ {{439547663339673266ull, 14155810065305028479ull,
+ 12596482819639165102ull, 5152408074750472670ull}},
+ {{14384492634456755294ull, 8471390544776509790ull,
+ 6522231487694180570ull, 6440510093438090838ull}},
+ {{8757243756216168309ull, 1365866144115861430ull,
+ 17376161396472501521ull, 8050637616797613547ull}},
+ {{861591329207717289ull, 12382881386140883154ull,
+ 8554257863581619498ull, 5031648510498508467ull}},
+ {{10300361198364422420ull, 6255229695821328134ull,
+ 6081136311049636469ull, 6289560638123135584ull}},
+ {{3652079461100752216ull, 12430723138204048072ull,
+ 7601420388812045586ull, 7861950797653919480ull}},
+ {{2282549663187970135ull, 12380887979804917949ull,
+ 4750887743007528491ull, 4913719248533699675ull}},
+ {{7464873097412350573ull, 10864423956328759532ull,
+ 1326923660332022710ull, 6142149060667124594ull}},
+ {{9331091371765438216ull, 4357157908556173607ull,
+ 10882026612269804196ull, 7677686325833905742ull}},
+ {{12749461134994480741ull, 11946595729702384312ull,
+ 2189580614241239718ull, 4798553953646191089ull}},
+ {{15936826418743100927ull, 5709872625273204582ull,
+ 7348661786228937552ull, 5998192442057738861ull}},
+ {{10697660986574100350ull, 7137340781591505728ull,
+ 13797513251213559844ull, 7497740552572173576ull}},
+ {{6686038116608812719ull, 13684210025349466888ull,
+ 8623445782008474902ull, 4686087845357608485ull}},
+ {{8357547645761015899ull, 7881890494832057802ull,
+ 15390993245937981532ull, 5857609806697010606ull}},
+ {{1223562520346494065ull, 9852363118540072253ull,
+ 10015369520567701107ull, 7322012258371263258ull}},
+ {{6141139168860505485ull, 7703767879747702412ull,
+ 3295839863854850576ull, 9152515322964079073ull}},
+ {{13061584017392591737ull, 4814854924842314007ull,
+ 13589114960977751370ull, 5720322076852549420ull}},
+ {{11715294003313351767ull, 15241940692907668317ull,
+ 16986393701222189212ull, 7150402596065686775ull}},
+ {{809059448859525996ull, 605681792425033781ull, 16621306108100348612ull,
+ 8938003245082108469ull}},
+ {{2811505164750897700ull, 9601923157120421921ull,
+ 12694159326776411834ull, 5586252028176317793ull}},
+ {{8126067474366010029ull, 2779031909545751593ull,
+ 2032641103188351081ull, 6982815035220397242ull}},
+ {{14769270361384900440ull, 8085475905359577395ull,
+ 11764173415840214659ull, 8728518794025496552ull}},
+ {{6924950966651868823ull, 2747579431636041920ull,
+ 7352608384900134162ull, 5455324246265935345ull}},
+ {{8656188708314836029ull, 12657846326399828208ull,
+ 13802446499552555606ull, 6819155307832419181ull}},
+ {{10820235885393545036ull, 6598935871145009452ull,
+ 3418000069158530796ull, 8523944134790523977ull}},
+ {{15986019465225741455ull, 13347706956320406715ull,
+ 13665465089292551507ull, 5327465084244077485ull}},
+ {{15370838313104788915ull, 12072947676973120490ull,
+ 3246773306333525672ull, 6659331355305096857ull}},
+ {{9990175854526210336ull, 15091184596216400613ull,
+ 8670152651344294994ull, 8324164194131371071ull}},
+ {{8549702918292575412ull, 14043676391062638287ull,
+ 12336374434731266227ull, 5202602621332106919ull}},
+ {{6075442629438331361ull, 12942909470400909955ull,
+ 10808782024986694880ull, 6503253276665133649ull}},
+ {{2982617268370526297ull, 16178636838001137444ull,
+ 18122663549660756504ull, 8129066595831417061ull}},
+ {{11087507829586354744ull, 10111648023750710902ull,
+ 13632507727751666767ull, 5080666622394635663ull}},
+ {{4636012750128167622ull, 8027874011261000724ull,
+ 12428948641262195555ull, 6350833277993294579ull}},
+ {{5795015937660209527ull, 5423156495648863001ull,
+ 10924499783150356540ull, 7938541597491618224ull}},
+ {{15151100007106100715ull, 12612844846635315183ull,
+ 6827812364468972837ull, 4961588498432261390ull}},
+ {{14327188990455237989ull, 1930998003011980267ull,
+ 17758137492440991855ull, 6201985623040326737ull}},
+ {{13297300219641659582ull, 16248805559047139046ull,
+ 8362613810269076106ull, 7752482028800408422ull}},
+ {{3699126618848649335ull, 14767189492831849808ull,
+ 614947612990784662ull, 4845301268000255264ull}}
+};
+
+static const BID_UINT256 bid_multipliers2_binary80[] = {
+ {{6207925045053820451ull, 7278732838564269635ull,
+ 11692571226397904350ull, 2627592000557903659ull}},
+ {{3148220287889887660ull, 18321788085060112852ull,
+ 10004028014569992533ull, 3284490000697379574ull}},
+ {{3935275359862359575ull, 9067177051042977353ull,
+ 3281662981357714859ull, 4105612500871724468ull}},
+ {{13988762145982444495ull, 3361142647688166893ull,
+ 11274411400203347595ull, 2566007813044827792ull}},
+ {{3650894627195891906ull, 18036486364892372329ull,
+ 14093014250254184493ull, 3207509766306034740ull}},
+ {{9175304302422252786ull, 8710549900833301699ull,
+ 17616267812817730617ull, 4009387207882543425ull}},
+ {{3428722179800214040ull, 16973308734089283322ull,
+ 4092638355369999779ull, 2505867004926589641ull}},
+ {{13509274761605043357ull, 16604949899184216248ull,
+ 9727483962639887628ull, 3132333756158237051ull}},
+ {{16886593452006304197ull, 2309443300270718694ull,
+ 7547668934872471632ull, 3915417195197796314ull}},
+ {{5942434889076552219ull, 1443402062669199184ull,
+ 9328979102722682674ull, 2447135746998622696ull}},
+ {{7428043611345690274ull, 11027624615191274788ull,
+ 11661223878403353342ull, 3058919683748278370ull}},
+ {{9285054514182112842ull, 4561158732134317677ull,
+ 5353157811149415870ull, 3823649604685347963ull}},
+ {{8109002080577514479ull, 16685782262866112260ull,
+ 1039880622754690966ull, 2389781002928342477ull}},
+ {{10136252600721893098ull, 11633855791727864517ull,
+ 5911536796870751612ull, 2987226253660428096ull}},
+ {{17282001769329754276ull, 14542319739659830646ull,
+ 7389420996088439515ull, 3734032817075535120ull}},
+ {{6189565087403708519ull, 6783106828073700202ull,
+ 4618388122555274697ull, 2333770510672209450ull}},
+ {{16960328396109411457ull, 13090569553519513156ull,
+ 14996357190048869179ull, 2917213138340261812ull}},
+ {{2753666421427212705ull, 11751525923472003542ull,
+ 298702413851534858ull, 3646516422925327266ull}},
+ {{12665455063638791689ull, 5466035367485228619ull,
+ 9596750054169194381ull, 4558145528656659082ull}},
+ {{5610066405560550854ull, 5722115113891961839ull,
+ 10609654802283134392ull, 2848840955410411926ull}},
+ {{2400896988523300663ull, 7152643892364952299ull,
+ 4038696465999142182ull, 3561051194263014908ull}},
+ {{16836179290936289540ull, 18164176902310966181ull,
+ 5048370582498927727ull, 4451313992828768635ull}},
+ {{12828455066048874915ull, 18270139591585435719ull,
+ 849388604848135877ull, 2782071245517980397ull}},
+ {{11423882814133705740ull, 9002616434199630937ull,
+ 5673421774487557751ull, 3477589056897475496ull}},
+ {{444795462384968462ull, 6641584524322150768ull, 7091777218109447189ull,
+ 4346986321121844370ull}},
+ {{277997163990605289ull, 6456833336915038182ull, 9044046779745792397ull,
+ 2716866450701152731ull}},
+ {{9570868491843032419ull, 12682727689571185631ull,
+ 6693372456254852592ull, 3396083063376440914ull}},
+ {{7351899596376402620ull, 15853409611963982039ull,
+ 17590087607173341548ull, 4245103829220551142ull}},
+ {{11512466275376333494ull, 685008970622712966ull,
+ 6382118736055950564ull, 2653189893262844464ull}},
+ {{5167210807365641059ull, 856261213278391208ull, 7977648420069938205ull,
+ 3316487366578555580ull}},
+ {{6459013509207051324ull, 5682012535025376914ull,
+ 9972060525087422756ull, 4145609208223194475ull}},
+ {{8648569461681794981ull, 12774629871245636379ull,
+ 3926694818965945270ull, 2591005755139496547ull}},
+ {{6199025808674855823ull, 6744915302202269666ull, 296682505280043684ull,
+ 3238757193924370684ull}},
+ {{16972154297698345586ull, 8431144127752837082ull,
+ 370853131600054605ull, 4048446492405463355ull}},
+ {{15219282454488853896ull, 7575308089059217128ull,
+ 16372684271745891792ull, 2530279057753414596ull}},
+ {{577358994401515753ull, 9469135111324021411ull, 2019111265972813124ull,
+ 3162848822191768246ull}},
+ {{14556756798284058404ull, 11836418889155026763ull,
+ 11747261119320792213ull, 3953561027739710307ull}},
+ {{6792129989713842550ull, 9703604814935585679ull,
+ 5036195190361801181ull, 2470975642337318942ull}},
+ {{3878476468714915284ull, 16741192037096870003ull,
+ 15518616024807027284ull, 3088719552921648677ull}},
+ {{236409567466256201ull, 2479745972661535888ull, 5563211975726620394ull,
+ 3860899441152060847ull}},
+ {{147755979666410126ull, 6161527251340847834ull,
+ 10394536512470219602ull, 2413062150720038029ull}},
+ {{9408067011437788465ull, 16925281101030835600ull,
+ 17604856659015162406ull, 3016327688400047536ull}},
+ {{11760083764297235581ull, 11933229339433768692ull,
+ 3559326750059401392ull, 3770409610500059421ull}},
+ {{16573424389540548046ull, 7458268337146105432ull,
+ 4530422228000819822ull, 2356506006562537138ull}},
+ {{2270036413216133442ull, 99463384577855983ull, 14886399821855800586ull,
+ 2945632508203171422ull}},
+ {{16672603571802330514ull, 9347701267577095786ull,
+ 9384627740464974924ull, 3682040635253964278ull}},
+ {{11617382427898137335ull, 11684626584471369733ull,
+ 2507412638726442847ull, 4602550794067455348ull}},
+ {{9566707026650029786ull, 14220420642935687939ull,
+ 10790504936058802587ull, 2876594246292159592ull}},
+ {{7346697764885149329ull, 13163839785242222020ull,
+ 13488131170073503234ull, 3595742807865199490ull}},
+ {{9183372206106436661ull, 7231427694698001717ull,
+ 7636791925737103235ull, 4494678509831499363ull}},
+ {{8045450638030216865ull, 2213799299972557121ull,
+ 2467151944371995570ull, 2809174068644687102ull}},
+ {{14668499315965158985ull, 11990621161820472209ull,
+ 12307311967319770270ull, 3511467585805858877ull}},
+ {{4500566089674285020ull, 5764904415420814454ull,
+ 1549081903867549126ull, 4389334482257323597ull}},
+ {{16647911861328591849ull, 17438123314920172745ull,
+ 3274019199130912155ull, 2743334051410827248ull}},
+ {{6974831771378576100ull, 17185968125222828028ull,
+ 4092523998913640194ull, 3429167564263534060ull}},
+ {{8718539714223220124ull, 12259088119673759227ull,
+ 5115654998642050243ull, 4286459455329417575ull}},
+ {{3143244312175818626ull, 5356087065582405565ull,
+ 10114813401792363258ull, 2679037159580885984ull}},
+ {{8540741408647161186ull, 15918480868832782764ull,
+ 12643516752240454072ull, 3348796449476107480ull}},
+ {{10675926760808951483ull, 1451357012331426839ull,
+ 15804395940300567591ull, 4185995561845134350ull}},
+ {{13589983253146676533ull, 7824627160348223630ull,
+ 5266061444260466840ull, 2616247226153208969ull}},
+ {{7764107029578569858ull, 9780783950435279538ull,
+ 11194262823752971454ull, 3270309032691511211ull}},
+ {{481761750118436514ull, 3002607901189323615ull, 9381142511263826414ull,
+ 4087886290864389014ull}},
+ {{7218630121465104678ull, 15711687993525490971ull,
+ 1251528051112503604ull, 2554928931790243134ull}},
+ {{4411601633403992943ull, 1192865918197312098ull,
+ 10787782100745405314ull, 3193661164737803917ull}},
+ {{14737874078609766987ull, 10714454434601415930ull,
+ 18096413644359144546ull, 3992076455922254896ull}},
+ {{13822857317558492271ull, 11308220040053272860ull,
+ 11310258527724465341ull, 2495047784951409310ull}},
+ {{17278571646948115338ull, 300216994784427363ull,
+ 4914451122800805869ull, 3118809731189261638ull}},
+ {{16986528540257756269ull, 4986957261907922108ull,
+ 15366435940355783144ull, 3898512163986577047ull}},
+ {{1393208300806321860ull, 3116848288692451318ull,
+ 16521551490363446321ull, 2436570102491610654ull}},
+ {{10964882412862678133ull, 8507746379292952051ull,
+ 11428567326099532093ull, 3045712628114513318ull}},
+ {{9094416997650959762ull, 15246368992543577968ull,
+ 5062337120769639308ull, 3807140785143141648ull}},
+ {{5684010623531849852ull, 305608583484960422ull, 3163960700481024568ull,
+ 2379462990714463530ull}},
+ {{16328385316269588122ull, 382010729356200527ull,
+ 13178322912456056518ull, 2974328738393079412ull}},
+ {{15798795626909597249ull, 9700885448550026467ull,
+ 16472903640570070647ull, 3717910922991349265ull}},
+ {{7568404257604804329ull, 12980582432984848398ull,
+ 3378035747715212298ull, 2323694326869593291ull}},
+ {{237133285151229603ull, 7002356004376284690ull,
+ 18057602739926179085ull, 2904617908586991613ull}},
+ {{9519788643293812811ull, 13364631023897743766ull,
+ 8736945369625560144ull, 3630772385733739517ull}},
+ {{2676363767262490206ull, 16705788779872179708ull,
+ 15532867730459338084ull, 4538465482167174396ull}},
+ {{10896099391393832187ull, 1217745950565336509ull,
+ 484670294682310495ull, 2836540926354483998ull}},
+ {{18231810257669678138ull, 15357240493488834348ull,
+ 9829209905207663926ull, 3545676157943104997ull}},
+ {{4343018748377546056ull, 9973178580006267128ull,
+ 16898198399936967812ull, 4432095197428881246ull}},
+ {{2714386717735966285ull, 15456608649358692763ull,
+ 5949687981533216978ull, 2770059498393050779ull}},
+ {{17228041452452121568ull, 10097388774843590145ull,
+ 2825423958489133319ull, 3462574372991313474ull}},
+ {{7699993760282988248ull, 8010049950127099778ull,
+ 12755151984966192457ull, 4328217966239141842ull}},
+ {{9424182118604255559ull, 16535496264897907121ull,
+ 12583656009031258189ull, 2705136228899463651ull}},
+ {{16391913666682707353ull, 6834312275840220189ull,
+ 11117883992861684833ull, 3381420286124329564ull}},
+ {{6654834028071220479ull, 13154576363227663141ull,
+ 13897354991077106041ull, 4226775357655411955ull}},
+ {{6465114276758206752ull, 1304081199376207607ull,
+ 6380003860209497324ull, 2641734598534632472ull}},
+ {{3469706827520370535ull, 1630101499220259509ull,
+ 7975004825261871655ull, 3302168248168290590ull}},
+ {{8948819552827851073ull, 15872684929307488098ull,
+ 745383994722563760ull, 4127710310210363238ull}},
+ {{10204698238944794825ull, 9920428080817180061ull,
+ 14300923051983766062ull, 2579818943881477023ull}},
+ {{17367558817108381435ull, 3177163064166699268ull,
+ 13264467796552319674ull, 3224773679851846279ull}},
+ {{3262704447675925178ull, 13194825867063149894ull,
+ 11968898727263011688ull, 4030967099814807849ull}},
+ {{15874248335079616948ull, 8246766166914468683ull,
+ 563032676898300449ull, 2519354437384254906ull}},
+ {{15231124400422133281ull, 14920143727070473758ull,
+ 9927162882977651369ull, 3149193046730318632ull}},
+ {{9815533463672890793ull, 4815121603555928486ull,
+ 12408953603722064212ull, 3936491308412898290ull}},
+ {{1523022396368168842ull, 12232823039077231112ull,
+ 12367282020753678036ull, 2460307067758061431ull}},
+ {{1903777995460211052ull, 15291028798846538890ull,
+ 10847416507514709641ull, 3075383834697576789ull}},
+ {{11603094531180039623ull, 5278727943276009900ull,
+ 18170956652820774956ull, 3844229793371970986ull}},
+ {{16475306118842300573ull, 12522577001402281995ull,
+ 15968533926440372251ull, 2402643620857481866ull}},
+ {{15982446630125487812ull, 11041535233325464590ull,
+ 10737295371195689506ull, 3003304526071852333ull}},
+ {{10754686250802083957ull, 4578547004802054930ull,
+ 18033305232421999787ull, 3754130657589815416ull}},
+ {{11333364925178690377ull, 555748868787590379ull,
+ 11270815770263749867ull, 2346331660993634635ull}},
+ {{9555020138045975067ull, 14529744141266651686ull,
+ 9476833694402299429ull, 2932914576242043294ull}},
+ {{2720403135702693026ull, 4327122121301150896ull,
+ 2622670081148098479ull, 3666143220302554118ull}},
+ {{3400503919628366282ull, 797216633199050716ull,
+ 12501709638289898907ull, 4582679025378192647ull}},
+ {{11348686986622504735ull, 16639161460245264361ull,
+ 14731097551572268672ull, 2864174390861370404ull}},
+ {{350800677995967206ull, 2352207751597028836ull,
+ 18413871939465335841ull, 3580217988576713005ull}},
+ {{438500847494959008ull, 7551945707923673949ull, 9182281869049506089ull,
+ 4475272485720891257ull}},
+ {{2579906038898043332ull, 16249181113520765978ull,
+ 17268141214224411065ull, 2797045303575557035ull}},
+ {{12448254585477329973ull, 6476418336618793760ull,
+ 16973490499353125928ull, 3496306629469446294ull}},
+ {{15560318231846662466ull, 8095522920773492200ull,
+ 11993491087336631602ull, 4370383286836807868ull}},
+ {{9725198894904164041ull, 9671387843910820529ull,
+ 16719303966440170559ull, 2731489554273004917ull}},
+ {{16768184637057592956ull, 7477548786461137757ull,
+ 7064071902768049487ull, 3414361942841256147ull}},
+ {{7125172741039827482ull, 4735249964649034293ull,
+ 4218403860032673955ull, 4267952428551570184ull}},
+ {{6759075972363586129ull, 653688218691952481ull, 2636502412520421222ull,
+ 2667470267844731365ull}},
+ {{13060530983881870565ull, 10040482310219716409ull,
+ 7907314034077914431ull, 3334337834805914206ull}},
+ {{2490605674570174494ull, 7938916869347257608ull, 660770505742617231ull,
+ 4167922293507392758ull}},
+ {{1556628546606359059ull, 11879352070983117861ull,
+ 14248039621371299481ull, 2604951433442120473ull}},
+ {{6557471701685336727ull, 1014132033446733614ull,
+ 3974991471431960640ull, 3256189291802650592ull}},
+ {{17420211663961446717ull, 1267665041808417017ull,
+ 4968739339289950800ull, 4070236614753313240ull}},
+ {{3970103262334822342ull, 792290651130260636ull, 3105462087056219250ull,
+ 2543897884220820775ull}},
+ {{4962629077918527928ull, 10213735350767601603ull,
+ 17716885664102437774ull, 3179872355276025968ull}},
+ {{1591600328970772006ull, 3543797151604726196ull,
+ 3699363006418495602ull, 3974840444095032461ull}},
+ {{10218122242461508312ull, 6826559238180341776ull,
+ 4617944888225253703ull, 2484275277559395288ull}},
+ {{12772652803076885390ull, 3921513029298039316ull,
+ 5772431110281567129ull, 3105344096949244110ull}},
+ {{15965816003846106737ull, 9513577305049937049ull,
+ 16438910924706734719ull, 3881680121186555137ull}},
+ {{3061105974762734855ull, 12863514843297292512ull,
+ 3356790300300627343ull, 2426050075741596961ull}},
+ {{3826382468453418568ull, 11467707535694227736ull,
+ 8807673893803172083ull, 3032562594676996201ull}},
+ {{4782978085566773210ull, 9722948401190396766ull,
+ 15621278385681353008ull, 3790703243346245251ull}},
+ {{16824419358761396969ull, 6076842750743997978ull,
+ 7457455981837151678ull, 2369189527091403282ull}},
+ {{11807152161596970403ull, 16819425475284773281ull,
+ 98447940441663789ull, 2961486908864254103ull}},
+ {{923882146714049291ull, 7189223788823802890ull,
+ 13958117980834243449ull, 3701858636080317628ull}},
+ {{5189112360123668711ull, 16022479914083346566ull,
+ 17947195774876177963ull, 2313661647550198517ull}},
+ {{15709762487009361697ull, 15416413874176795303ull,
+ 8598936663313058742ull, 2892077059437748147ull}},
+ {{15025517090334314217ull, 10047145305866218321ull,
+ 6136984810713935524ull, 3615096324297185184ull}},
+ {{4946838307635729059ull, 12558931632332772902ull,
+ 7671231013392419405ull, 4518870405371481480ull}},
+ {{16926831997554494374ull, 10155175279421677015ull,
+ 4794519383370262128ull, 2824294003357175925ull}},
+ {{16546853978515730063ull, 12693969099277096269ull,
+ 10604835247640215564ull, 3530367504196469906ull}},
+ {{6848509417862498867ull, 15867461374096370337ull,
+ 4032672022695493647ull, 4412959380245587383ull}},
+ {{15809533432232531552ull, 16834692386451313316ull,
+ 9437949041825765385ull, 2758099612653492114ull}},
+ {{1315172716581112824ull, 7208307427781977934ull,
+ 2574064265427430924ull, 3447624515816865143ull}},
+ {{10867337932581166838ull, 9010384284727472417ull,
+ 17052638387066452367ull, 4309530644771081428ull}},
+ {{18321301253931699034ull, 12549019205595752116ull,
+ 1434526955061756921ull, 2693456652981925893ull}},
+ {{4454882493705072176ull, 1851215951712526434ull,
+ 6404844712254584056ull, 3366820816227407366ull}},
+ {{14791975153986116028ull, 2314019939640658042ull,
+ 17229427927173005878ull, 4208526020284259207ull}},
+ {{13856670489668710422ull, 15281320517557574988ull,
+ 17685921482124210529ull, 2630328762677662004ull}},
+ {{17320838112085888027ull, 5266592591664805023ull,
+ 3660657778945711546ull, 3287910953347077506ull}},
+ {{17039361621679972130ull, 15806612776435782087ull,
+ 13799194260536915240ull, 4109888691683846882ull}},
+ {{17567130041191064437ull, 9879132985272363804ull,
+ 13236182431262959929ull, 2568680432302404301ull}},
+ {{3512168477779278930ull, 16960602250017842660ull,
+ 2710169983796536199ull, 3210850540378005377ull}},
+ {{4390210597224098663ull, 16589066794094915421ull,
+ 7999398498173058153ull, 4013563175472506721ull}},
+ {{5049724632478755617ull, 3450637718668240282ull,
+ 16528839107426631106ull, 2508476984670316700ull}},
+ {{15535527827453220329ull, 13536669185190076160ull,
+ 2214304810573737266ull, 3135596230837895876ull}},
+ {{972665710606973795ull, 7697464444632819393ull, 2767881013217171583ull,
+ 3919495288547369845ull}},
+ {{12137131115197828382ull, 11728444305536593976ull,
+ 4035768642474426191ull, 2449684555342106153ull}},
+ {{15171413893997285477ull, 10048869363493354566ull,
+ 9656396821520420643ull, 3062105694177632691ull}},
+ {{9740895330641831038ull, 7949400685939305304ull,
+ 7458810008473137900ull, 3827632117722040864ull}},
+ {{6088059581651144399ull, 14191747465566841623ull,
+ 4661756255295711187ull, 2392270073576275540ull}},
+ {{2998388458636542595ull, 13127998313531164125ull,
+ 5827195319119638984ull, 2990337591970344425ull}},
+ {{8359671591723066147ull, 16409997891913955156ull,
+ 11895680167326936634ull, 3737921989962930531ull}},
+ {{14448166781681692150ull, 14867934700873609876ull,
+ 5128957095365641444ull, 2336201243726831582ull}},
+ {{18060208477102115188ull, 138174302382460729ull,
+ 15634568406061827614ull, 2920251554658539477ull}},
+ {{8740202541095480273ull, 9396089914832851720ull,
+ 5708152452295120805ull, 3650314443323174347ull}},
+ {{10925253176369350341ull, 16356798411968452554ull,
+ 2523504546941513102ull, 4562893054153967934ull}},
+ {{11439969253658231867ull, 5611312989052894942ull,
+ 15412248397120609401ull, 2851808158846229958ull}},
+ {{5076589530218014026ull, 11625827254743506582ull,
+ 10041938459545985943ull, 3564760198557787448ull}},
+ {{15569108949627293340ull, 9920598050001995323ull,
+ 12552423074432482429ull, 4455950248197234310ull}},
+ {{7424850084303364386ull, 8506216790464941029ull,
+ 3233578403092913614ull, 2784968905123271444ull}},
+ {{13892748623806593386ull, 1409398951226400478ull,
+ 4041973003866142018ull, 3481211131404089305ull}},
+ {{8142563742903465924ull, 10985120725887776406ull,
+ 9664152273260065426ull, 4351513914255111631ull}},
+ {{477416320887278299ull, 11477386472107248158ull,
+ 12957624198428622747ull, 2719696196409444769ull}},
+ {{9820142437963873681ull, 9735047071706672293ull,
+ 2361972192753614722ull, 3399620245511805962ull}},
+ {{16886864065882230006ull, 2945436802778564558ull,
+ 12175837277796794211ull, 4249525306889757452ull}},
+ {{5942604022749005850ull, 17981799066232460513ull,
+ 16833270335477772189ull, 2655953316806098407ull}},
+ {{12039941046863645216ull, 8642190777508411929ull,
+ 16429901900919827333ull, 3319941646007623009ull}},
+ {{1214868253297392808ull, 15414424490312902816ull,
+ 6702319320867620454ull, 4149927057509528762ull}},
+ {{759292658310870505ull, 5022329288018176356ull, 8800635593969650688ull,
+ 2593704410943455476ull}},
+ {{949115822888588131ull, 6277911610022720445ull,
+ 11000794492462063360ull, 3242130513679319345ull}},
+ {{5798080797038123068ull, 7847389512528400556ull,
+ 18362679134004967104ull, 4052663142099149181ull}},
+ {{12847172535003602726ull, 4904618445330250347ull,
+ 13782517467966798392ull, 2532914463811968238ull}},
+ {{11447279650327115503ull, 6130773056662812934ull,
+ 8004774798103722182ull, 3166143079764960298ull}},
+ {{5085727526054118571ull, 16886838357683291976ull,
+ 782596460774876919ull, 3957678849706200373ull}},
+ {{3178579703783824107ull, 17471803001193139341ull,
+ 2794965797197992026ull, 2473549281066375233ull}},
+ {{8584910648157168037ull, 12616381714636648368ull,
+ 8105393264924877937ull, 3091936601332969041ull}},
+ {{10731138310196460047ull, 1935419088013646748ull,
+ 14743427599583485326ull, 3864920751666211301ull}},
+ {{15930333480727563337ull, 15044694985290692929ull,
+ 11520485258953372280ull, 2415575469791382063ull}},
+ {{6077858795627290460ull, 359124657903814546ull, 9788920555264327447ull,
+ 3019469337239227579ull}},
+ {{16820695531388888882ull, 14283963877661931894ull,
+ 7624464675653021404ull, 3774336671549034474ull}},
+ {{5901248688690667648ull, 18150849460393483242ull,
+ 9376976440710526281ull, 2358960419718146546ull}},
+ {{16599932897718110367ull, 8853503770209690340ull,
+ 2497848514033382044ull, 2948700524647683183ull}},
+ {{2303172048438086343ull, 11066879712762112926ull,
+ 16957368697823891267ull, 3685875655809603978ull}},
+ {{12102337097402383737ull, 9221913622525253253ull,
+ 11973338835425088276ull, 4607344569762004973ull}},
+ {{9869803695090183788ull, 14987068050933059091ull,
+ 9789179781354374124ull, 2879590356101253108ull}},
+ {{7725568600435341830ull, 287090989956772248ull,
+ 12236474726692967656ull, 3599487945126566385ull}},
+ {{9656960750544177288ull, 358863737445965310ull, 1460535353084045858ull,
+ 4499359931408207982ull}},
+ {{1423914450662722901ull, 4835975854331116223ull,
+ 14747892650959692373ull, 2812099957130129988ull}},
+ {{15614951118610567338ull, 10656655836341283182ull,
+ 18434865813699615466ull, 3515124946412662485ull}},
+ {{10295316861408433365ull, 4097447758571828170ull,
+ 9208524211842355621ull, 4393906183015828107ull}},
+ {{11046259056807658757ull, 4866747858321086558ull,
+ 3449484623187778311ull, 2746191364384892567ull}},
+ {{4584451784154797638ull, 1471748804473970294ull,
+ 18146913834266886601ull, 3432739205481115708ull}},
+ {{14953936767048272856ull, 6451372024019850771ull,
+ 4236898219124056635ull, 4290924006851394636ull}},
+ {{7040367470191476583ull, 1726264505798712780ull,
+ 11871433423807311205ull, 2681827504282121647ull}},
+ {{8800459337739345729ull, 6769516650675778879ull,
+ 10227605761331751102ull, 3352284380352652059ull}},
+ {{6388888153746794257ull, 17685267850199499407ull,
+ 8172821183237300973ull, 4190355475440815074ull}},
+ {{10910584123732828267ull, 13359135415588381081ull,
+ 9719699257950701012ull, 2618972172150509421ull}},
+ {{18249916173093423237ull, 16698919269485476351ull,
+ 16761310090865764169ull, 3273715215188136776ull}},
+ {{18200709197939391142ull, 7038591031574681727ull,
+ 2504893539872653596ull, 4092144018985170971ull}},
+ {{18292972276353201320ull, 13622491431588951887ull,
+ 17706459526916266161ull, 2557590011865731856ull}},
+ {{18254529327014113746ull, 3193056234204026147ull,
+ 3686330334935781086ull, 3196987514832164821ull}},
+ {{18206475640340254279ull, 13214692329609808492ull,
+ 9219598937097114261ull, 3996234393540206026ull}},
+ {{2155675238357883116ull, 10565025715219824260ull,
+ 10373935354113084317ull, 2497646495962628766ull}},
+ {{2694594047947353895ull, 17817968162452168229ull,
+ 3744047155786579588ull, 3122058119953285958ull}},
+ {{7979928578361580273ull, 3825716129355658670ull,
+ 13903430981588000294ull, 3902572649941607447ull}},
+ {{375769343048599767ull, 16226130636129450381ull,
+ 15607173391133582039ull, 2439107906213504654ull}},
+ {{5081397697238137612ull, 15670977276734425072ull,
+ 10285594702062201741ull, 3048884882766880818ull}},
+ {{6351747121547672015ull, 5753663540635867628ull,
+ 3633621340722976369ull, 3811106103458601023ull}},
+ {{13193213987822070818ull, 15125254758965887027ull,
+ 9188542365592942086ull, 2381941314661625639ull}},
+ {{11879831466350200618ull, 9683196411852582976ull,
+ 6873991938563789704ull, 2977426643327032049ull}},
+ {{14849789332937750772ull, 12103995514815728720ull,
+ 13204175941632125034ull, 3721783304158790061ull}},
+ {{9281118333086094233ull, 12176683215187218354ull,
+ 10558452972733772098ull, 2326114565099243788ull}},
+ {{2378025879502841983ull, 5997481982129247135ull,
+ 13198066215917215123ull, 2907643206374054735ull}},
+ {{16807590404660716191ull, 2885166459234171014ull,
+ 11885896751469131000ull, 3634554007967568419ull}},
+ {{11786115968971119430ull, 3606458074042713768ull,
+ 10245684920909025846ull, 4543192509959460524ull}},
+ {{7366322480606949644ull, 16089094351558859817ull,
+ 15626925112422916961ull, 2839495318724662827ull}},
+ {{13819589119186074959ull, 6276309884166411059ull,
+ 14921970372101258298ull, 3549369148405828534ull}},
+ {{12662800380555205795ull, 17068759392062789632ull,
+ 9429090928271797064ull, 4436711435507285668ull}},
+ {{7914250237847003622ull, 10667974620039243520ull,
+ 15116553867024648973ull, 2772944647192053542ull}},
+ {{9892812797308754527ull, 17946654293476442304ull,
+ 9672320296926035408ull, 3466180808990066928ull}},
+ {{12366015996635943159ull, 3986573793136001264ull,
+ 12090400371157544261ull, 4332726011237583660ull}},
+ {{7728759997897464474ull, 4797451629923694742ull,
+ 16779872268828240971ull, 2707953757023489787ull}},
+ {{437577960517054785ull, 1385128518977230524ull,
+ 16363154317607913310ull, 3384942196279362234ull}},
+ {{546972450646318481ull, 10954782685576313963ull,
+ 11230570860155115829ull, 4231177745349202793ull}},
+ {{16482758846149806715ull, 9152582187698890178ull,
+ 101577759955865537ull, 2644486090843251746ull}},
+ {{11380076520832482585ull, 16052413753051000627ull,
+ 9350344236799607729ull, 3305607613554064682ull}},
+ {{9613409632613215328ull, 6230459136031587072ull,
+ 2464558259144733854ull, 4132009516942580853ull}},
+ {{6008381020383259580ull, 17729095015301905632ull,
+ 3846191921179152610ull, 2582505948089113033ull}},
+ {{7510476275479074475ull, 12937996732272606232ull,
+ 9419425919901328667ull, 3228132435111391291ull}},
+ {{9388095344348843093ull, 11560809896913369886ull,
+ 7162596381449272930ull, 4035165543889239114ull}},
+ {{1255873571790639030ull, 11837192203998244083ull,
+ 9088308756833183485ull, 2521978464930774446ull}},
+ {{15404900020020462499ull, 961432199715641391ull,
+ 2137013909186703549ull, 3152473081163468058ull}},
+ {{14644439006598190219ull, 5813476268071939643ull,
+ 11894639423338155244ull, 3940591351454335072ull}},
+ {{6846931369910174935ull, 12856794704399738085ull,
+ 7434149639586347027ull, 2462869594658959420ull}},
+ {{13170350230815106573ull, 11459307362072284702ull,
+ 9292687049482933784ull, 3078586993323699275ull}},
+ {{7239565751664107408ull, 14324134202590355878ull,
+ 7004172793426279326ull, 3848233741654624094ull}},
+ {{18359786650072230842ull, 4340897858191584519ull,
+ 18212666051173588291ull, 2405146088534140058ull}},
+ {{18338047294162900649ull, 814436304312092745ull,
+ 13542460527112209556ull, 3006432610667675073ull}},
+ {{9087501062421462099ull, 1018045380390115932ull,
+ 3093017603608098233ull, 3758040763334593842ull}},
+ {{14903060200868189620ull, 12165493408812292217ull,
+ 6544822020682449299ull, 2348775477084121151ull}},
+ {{4793767195803073313ull, 10595180742587977368ull,
+ 3569341507425673720ull, 2935969346355151439ull}},
+ {{5992208994753841641ull, 13243975928234971710ull,
+ 18296734939564255862ull, 3669961682943939298ull}},
+ {{16713633280297077859ull, 7331597873438938829ull,
+ 13647546637600544020ull, 4587452103679924123ull}},
+ {{12751863809399367614ull, 13805620707754112576ull,
+ 6223873639286646060ull, 2867157564799952577ull}},
+ {{15939829761749209517ull, 17257025884692640720ull,
+ 12391528067535695479ull, 3583946955999940721ull}},
+ {{1478043128476960281ull, 16959596337438412997ull,
+ 1654352029137455637ull, 4479933694999925902ull}},
+ {{3229619964511794128ull, 12905590720112702075ull,
+ 14869028073493073485ull, 2799958559374953688ull}},
+ {{17872083010921906371ull, 2296930344858713881ull,
+ 139541018156790241ull, 3499948199218692111ull}},
+ {{8505045708370219252ull, 7482848949500780256ull,
+ 14009484327978151513ull, 4374935249023365138ull}},
+ {{5315653567731387033ull, 16205995639506457420ull,
+ 13367613723413732599ull, 2734334530639603211ull}},
+ {{6644566959664233791ull, 15645808530955683871ull,
+ 12097831135839777845ull, 3417918163299504014ull}},
+ {{3694022681152904334ull, 5722202608412441127ull,
+ 5898916882944946499ull, 4272397704124380018ull}},
+ {{9226293203361647065ull, 1270533621044081752ull,
+ 8298509070267979466ull, 2670248565077737511ull}},
+ {{11532866504202058831ull, 10811539063159877998ull,
+ 5761450319407586428ull, 3337810706347171889ull}},
+ {{5192711093397797731ull, 13514423828949847498ull,
+ 11813498917686870939ull, 4172263382933964861ull}},
+ {{7857130451801011486ull, 6140671883879960734ull,
+ 9689279832767988289ull, 2607664614333728038ull}},
+ {{598041027896488549ull, 12287525873277338822ull,
+ 2888227754105209553ull, 3259580767917160048ull}},
+ {{9970923321725386495ull, 1524349286314509815ull,
+ 3610284692631511942ull, 4074475959896450060ull}},
+ {{13149356103719448415ull, 14787776359228732346ull,
+ 11479799969749470771ull, 2546547474935281287ull}},
+ {{7213323092794534711ull, 13873034430608527529ull,
+ 9738063943759450560ull, 3183184343669101609ull}},
+ {{13628339884420556293ull, 17341293038260659411ull,
+ 16784265948126701104ull, 3978980429586377011ull}},
+ {{6211869418549153731ull, 10838308148912912132ull,
+ 8184323208365494238ull, 2486862768491485632ull}},
+ {{7764836773186442164ull, 4324513149286364357ull,
+ 10230404010456867798ull, 3108578460614357040ull}},
+ {{14317731984910440609ull, 14629013473462731254ull,
+ 12788005013071084747ull, 3885723075767946300ull}},
+ {{4336896472141637477ull, 6837290411700513082ull,
+ 17215875170024203775ull, 2428576922354966437ull}},
+ {{14644492627031822654ull, 3934926996198253448ull,
+ 7684785907248091007ull, 3035721152943708047ull}},
+ {{18305615783789778317ull, 306972726820428906ull,
+ 4994296365632725855ull, 3794651441179635059ull}},
+ {{16052695883295999352ull, 7109386981903849922ull,
+ 815592219306759707ull, 2371657150737271912ull}},
+ {{10842497817265223382ull, 4275047708952424499ull,
+ 1019490274133449634ull, 2964571438421589890ull}},
+ {{8941436253154141324ull, 14567181673045306432ull,
+ 10497734879521587850ull, 3705714298026987362ull}},
+ {{5588397658221338327ull, 13716174564080704424ull,
+ 11172770318128380310ull, 2316071436266867101ull}},
+ {{6985497072776672909ull, 7921846168246104722ull, 130904842378311676ull,
+ 2895089295333583877ull}},
+ {{17955243377825616944ull, 9902307710307630902ull,
+ 4775317071400277499ull, 3618861619166979846ull}},
+ {{13220682185427245372ull, 7766198619457150724ull,
+ 15192518376105122682ull, 4523577023958724807ull}},
+ {{17486298402746804166ull, 9465560155588107106ull,
+ 16412853012706783532ull, 2827235639974203004ull}},
+ {{12634500966578729399ull, 11831950194485133883ull,
+ 2069322192173927799ull, 3534044549967753756ull}},
+ {{11181440189796023845ull, 10178251724679029450ull,
+ 2586652740217409749ull, 4417555687459692195ull}},
+ {{11600086137049902807ull, 8667250337138087358ull,
+ 17757559027131738757ull, 2760972304662307621ull}},
+ {{5276735634457602701ull, 15445748939849997102ull,
+ 8361890728632509734ull, 3451215380827884527ull}},
+ {{15819291579926779184ull, 10083814137957720569ull,
+ 5840677392363249264ull, 4314019226034855659ull}},
+ {{2969528209813155134ull, 6302383836223575356ull,
+ 1344580361013336838ull, 2696262016271784787ull}},
+ {{3711910262266443918ull, 17101351832134245003ull,
+ 15515783506548834759ull, 3370327520339730983ull}},
+ {{28201809405666993ull, 16765003771740418350ull,
+ 14783043364758655545ull, 4212909400424663729ull}},
+ {{13852684186160705583ull, 3560598329696679612ull,
+ 2321873075333077860ull, 2633068375265414831ull}},
+ {{17315855232700881978ull, 4450747912120849515ull,
+ 16737399399448511037ull, 3291335469081768538ull}},
+ {{17033133022448714569ull, 10175120908578449798ull,
+ 11698377212455862988ull, 4114169336352210673ull}},
+ {{6034022120603058702ull, 15582822604716306932ull,
+ 393956730143832511ull, 2571355835220131671ull}},
+ {{7542527650753823377ull, 14866842237467995761ull,
+ 14327503967961954351ull, 3214194794025164588ull}},
+ {{14039845581869667125ull, 13971866778407606797ull,
+ 17909379959952442939ull, 4017743492531455735ull}},
+ {{11080746497882235905ull, 6426573727291060296ull,
+ 18110891502611358693ull, 2511089682832159834ull}},
+ {{13850933122352794882ull, 12644903177541213274ull,
+ 13415242341409422558ull, 3138862103540199793ull}},
+ {{8090294366086217794ull, 6582756935071740785ull,
+ 2933994871479614486ull, 3923577629425249742ull}},
+ {{16585649024872355881ull, 17949281139702001702ull,
+ 15668804849956922765ull, 2452236018390781088ull}},
+ {{11508689244235669044ull, 8601543369345338416ull,
+ 1139261988736601841ull, 3065295022988476361ull}},
+ {{14385861555294586304ull, 15363615230109060924ull,
+ 6035763504348140205ull, 3831618778735595451ull}},
+ {{18214535508913892248ull, 11908102528031857029ull,
+ 1466509181003893676ull, 2394761736709747157ull}},
+ {{8933111330860201598ull, 14885128160039821287ull,
+ 6444822494682254999ull, 2993452170887183946ull}},
+ {{6554703145147864094ull, 13994724181622388705ull,
+ 17279400155207594557ull, 3741815213608979932ull}},
+ {{15625904511785884819ull, 11052545622727686892ull,
+ 1576253060149970790ull, 2338634508505612458ull}},
+ {{1085636566022804407ull, 4592309991554832808ull,
+ 11193688362042239296ull, 2923293135632015572ull}},
+ {{1357045707528505509ull, 5740387489443541010ull,
+ 13992110452552799120ull, 3654116419540019465ull}},
+ {{10919679171265407694ull, 7175484361804426262ull,
+ 3655080010408835188ull, 4567645524425024332ull}},
+ {{2213113463613491905ull, 13708049762982542222ull,
+ 11507797043360297800ull, 2854778452765640207ull}},
+ {{11989763866371640689ull, 17135062203728177777ull,
+ 9773060285772984346ull, 3568473065957050259ull}},
+ {{1152146777682387150ull, 12195455717805446414ull,
+ 7604639338788842529ull, 4460591332446312824ull}},
+ {{14555149791333655681ull, 704630795987322152ull,
+ 4752899586743026581ull, 2787869582778945515ull}},
+ {{18193937239167069601ull, 5492474513411540594ull,
+ 1329438465001395322ull, 3484836978473681894ull}},
+ {{13519049512104061193ull, 16088965178619201551ull,
+ 10885170118106519960ull, 4356046223092102367ull}},
+ {{15366934972706120102ull, 10055603236637000969ull,
+ 13720760351457656831ull, 2722528889432563979ull}},
+ {{5373610660600486415ull, 7957818027368863308ull,
+ 12539264420894683135ull, 3403161111790704974ull}},
+ {{6717013325750608019ull, 5335586515783691231ull,
+ 6450708489263578111ull, 4253951389738381218ull}},
+ {{11115662356235211868ull, 10252270600005888875ull,
+ 8643378824217124223ull, 2658719618586488261ull}},
+ {{9282891926866626931ull, 8203652231579973190ull,
+ 15415909548698793183ull, 3323399523233110326ull}},
+ {{2380242871728507855ull, 5642879271047578584ull,
+ 10046514899018715671ull, 4154249404041387908ull}},
+ {{1487651794830317410ull, 10444328572045818471ull,
+ 15502443848741473102ull, 2596405877525867442ull}},
+ {{15694622798820060474ull, 3832038678202497280ull,
+ 10154682774072065570ull, 3245507346907334303ull}},
+ {{1171534424815523976ull, 14013420384607897409ull,
+ 8081667449162694058ull, 4056884183634167879ull}},
+ {{12261424061578172245ull, 13370073758807323784ull,
+ 11968571183367765642ull, 2535552614771354924ull}},
+ {{15326780076972715307ull, 7489220161654378922ull,
+ 14960713979209707053ull, 3169440768464193655ull}},
+ {{9935103059361118325ull, 13973211220495361557ull,
+ 14089206455584745912ull, 3961800960580242069ull}},
+ {{8515282421314392905ull, 8733257012809600973ull,
+ 11111597043954160147ull, 2476125600362651293ull}},
+ {{15255789045070379036ull, 6304885247584613312ull, 54438249660536472ull,
+ 3095157000453314117ull}},
+ {{622992232628422178ull, 7881106559480766641ull, 4679733830503058494ull,
+ 3868946250566642646ull}},
+ {{11918585191461233622ull, 314005581248091246ull,
+ 16759891699346575271ull, 2418091406604151653ull}},
+ {{5674859452471766219ull, 14227565031842277770ull,
+ 7114806568901055376ull, 3022614258255189567ull}},
+ {{16316946352444483582ull, 17784456289802847212ull,
+ 4281822192698931316ull, 3778267822818986959ull}},
+ {{974719433423026431ull, 1891913144272003700ull, 9593667898077913929ull,
+ 2361417389261866849ull}},
+ {{1218399291778783038ull, 6976577448767392529ull,
+ 16603770891024780315ull, 2951771736577333561ull}},
+ {{6134685133150866702ull, 4109035792531852757ull,
+ 6919655558498811682ull, 3689714670721666952ull}},
+ {{6140021217432985641ull, 7179833388759795877ull,
+ 4324784724061757301ull, 2306071669201041845ull}},
+ {{12286712540218619955ull, 13586477754377132750ull,
+ 10017666923504584530ull, 2882589586501302306ull}},
+ {{6135018638418499135ull, 7759725156116640130ull,
+ 3298711617525954855ull, 3603236983126627883ull}},
+ {{16892145334877899727ull, 5087970426718412258ull,
+ 17958447577189607281ull, 4504046228908284853ull}},
+ {{15169276852726075234ull, 14709196562767477421ull,
+ 13529872744957198502ull, 2815028893067678033ull}},
+ {{5126538010625430330ull, 9163123666604570969ull,
+ 3077282875914334416ull, 3518786116334597542ull}},
+ {{11019858531709175816ull, 11453904583255713711ull,
+ 13069975631747693828ull, 4398482645418246927ull}},
+ {{13804940609959316741ull, 16382062401389596877ull,
+ 15086263797483390498ull, 2749051653386404329ull}},
+ {{3421117707166982215ull, 11254205964882220289ull,
+ 5022771691572074411ull, 3436314566733005412ull}},
+ {{8888083152386115672ull, 9456071437675387457ull,
+ 6278464614465093014ull, 4295393208416256765ull}},
+ {{17084267016309792055ull, 1298358630119729256ull,
+ 6229883393254377086ull, 2684620755260160478ull}},
+ {{2908589696677688453ull, 10846320324504437379ull,
+ 17010726278422747165ull, 3355775944075200597ull}},
+ {{17470795176129274278ull, 18169586424057934627ull,
+ 7428349792746270244ull, 4194719930094000747ull}},
+ {{8613403975867102472ull, 2132619478181433334ull,
+ 2336875611252724951ull, 2621699956308750467ull}},
+ {{1543382932979102282ull, 16500832403008955380ull,
+ 16756152569348069900ull, 3277124945385938083ull}},
+ {{1929228666223877852ull, 2179296430051642609ull,
+ 16333504693257699472ull, 4096406181732422604ull}},
+ {{12734982962458393418ull, 1362060268782276630ull,
+ 985068396431286362ull, 2560253863582764128ull}},
+ {{6695356666218215964ull, 10925947372832621596ull,
+ 1231335495539107952ull, 3200317329478455160ull}},
+ {{8369195832772769955ull, 13657434216040776995ull,
+ 1539169369423884940ull, 4000396661848068950ull}},
+ {{2924904386269287270ull, 17759268421880261430ull,
+ 14797038911172091799ull, 2500247913655043093ull}},
+ {{12879502519691384895ull, 17587399508922938883ull,
+ 4661240583682951037ull, 3125309892068803867ull}},
+ {{11487692131186843215ull, 8149191330871509892ull,
+ 1214864711176300893ull, 3906637365086004834ull}},
+ {{16403179618846552818ull, 7399087591008387634ull,
+ 5370976462912575962ull, 2441648353178753021ull}},
+ {{11280602486703415214ull, 25487451905708735ull,
+ 11325406597068107857ull, 3052060441473441276ull}},
+ {{9489067089951881113ull, 4643545333309523823ull,
+ 14156758246335134821ull, 3815075551841801595ull}},
+ {{12848195958861007552ull, 5208058842532146341ull,
+ 6542130894745765311ull, 2384422219901125997ull}},
+ {{2225186893294095728ull, 1898387534737795023ull,
+ 12789349636859594543ull, 2980527774876407496ull}},
+ {{16616541671899783372ull, 16208042473704407490ull,
+ 15986687046074493178ull, 3725659718595509370ull}},
+ {{14997024563364752511ull, 14741712564492642585ull,
+ 14603365422223946140ull, 2328537324122193356ull}},
+ {{4911222648923776927ull, 18427140705615803232ull,
+ 18254206777779932675ull, 2910671655152741695ull}},
+ {{6139028311154721159ull, 18422239863592366136ull,
+ 18206072453797527940ull, 3638339568940927119ull}},
+ {{7673785388943401449ull, 4581055755780906054ull,
+ 18145904548819522022ull, 4547924461176158899ull}},
+ {{184429849662238002ull, 16698217902645229996ull,
+ 9035347333798507311ull, 2842452788235099312ull}},
+ {{230537312077797502ull, 16261086359879149591ull,
+ 11294184167248134139ull, 3553065985293874140ull}},
+ {{14123229695379410589ull, 15714671931421549084ull,
+ 14117730209060167674ull, 4441332481617342675ull}},
+ {{18050390596466907426ull, 14433355975565856081ull,
+ 6517738371448910844ull, 2775832801010839172ull}},
+ {{8727930190301470571ull, 18041694969457320102ull,
+ 8147172964311138555ull, 3469791001263548965ull}},
+ {{1686540701022062405ull, 17940432693394262224ull,
+ 14795652223816311098ull, 4337238751579436206ull}},
+ {{1054087938138789004ull, 15824456451798801794ull,
+ 4635596621457806532ull, 2710774219737147629ull}},
+ {{10540981959528262062ull, 1333826491038950626ull,
+ 10406181795249646070ull, 3388467774671434536ull}},
+ {{3952855412555551770ull, 10890655150653464091ull,
+ 13007727244062057587ull, 4235584718339293170ull}},
+ {{164691623633525904ull, 4500816459944721105ull,
+ 12741515545966173896ull, 2647240448962058231ull}},
+ {{4817550547969295284ull, 5626020574930901381ull,
+ 11315208414030329466ull, 3309050561202572789ull}},
+ {{10633624203389007009ull, 16255897755518402534ull,
+ 308952462255748120ull, 4136313201503215987ull}},
+ {{2034329108690741477ull, 10159936097199001584ull,
+ 16333996353405700239ull, 2585195750939509991ull}},
+ {{2542911385863426846ull, 8088234103071364076ull,
+ 15805809423329737395ull, 3231494688674387489ull}},
+ {{3178639232329283557ull, 5498606610411817191ull,
+ 5922203723880008032ull, 4039368360842984362ull}},
+ {{8904178547846884080ull, 3436629131507385744ull,
+ 8313063345852392924ull, 2524605225526865226ull}},
+ {{11130223184808605099ull, 4295786414384232180ull,
+ 1167957145460715347ull, 3155756531908581533ull}},
+ {{13912778981010756374ull, 758046999552902321ull,
+ 6071632450253282088ull, 3944695664885726916ull}},
+ {{1777957835490640878ull, 473779374720563951ull,
+ 13018142318263077113ull, 2465434790553579322ull}},
+ {{16057505349645464809ull, 5203910236828092842ull,
+ 7049305860974070583ull, 3081793488191974153ull}},
+ {{10848509650202055204ull, 1893201777607728149ull,
+ 13423318344644976133ull, 3852241860239967691ull}},
+ {{9086161540589978454ull, 3489094120218524045ull,
+ 6083730956189416131ull, 2407651162649979807ull}},
+ {{15969387944164860972ull, 18196425705555318768ull,
+ 2992977676809382259ull, 3009563953312474759ull}},
+ {{1514990856496524599ull, 18133846113516760557ull,
+ 17576280151293891536ull, 3761954941640593448ull}},
+ {{3252712294524021826ull, 11333653820947975348ull,
+ 10985175094558682210ull, 2351221838525370905ull}},
+ {{4065890368155027283ull, 4943695239330193377ull,
+ 18343154886625740667ull, 2939027298156713631ull}},
+ {{9694048978621172007ull, 1567933030735353817ull,
+ 18317257589854787930ull, 3673784122695892039ull}},
+ {{16729247241703852913ull, 11183288325273968079ull,
+ 18284885968891097008ull, 4592230153369865049ull}},
+ {{17373308553705989927ull, 6989555203296230049ull,
+ 4510524702915853774ull, 2870143845856165656ull}},
+ {{7881577636850323697ull, 17960316040975063370ull,
+ 5638155878644817217ull, 3587679807320207070ull}},
+ {{628600009208128813ull, 8615336995936665501ull,
+ 16271066885160797330ull, 4484599759150258837ull}},
+ {{2698718014968774460ull, 9996271640887803842ull,
+ 12475259812439192283ull, 2802874849468911773ull}},
+ {{12596769555565743883ull, 7883653532682366898ull,
+ 1759016710266826642ull, 3503593561836139717ull}},
+ {{6522589907602404046ull, 631194878998182815ull, 6810456906260921207ull,
+ 4379491952295174646ull}},
+ {{10994147719892584385ull, 7312025827014946115ull,
+ 18091593621695239466ull, 2737182470184484153ull}},
+ {{9130998631438342577ull, 18363404320623458452ull,
+ 8779433971836885620ull, 3421478087730605192ull}},
+ {{11413748289297928221ull, 4507511327069771449ull,
+ 10974292464796107026ull, 4276847609663256490ull}},
+ {{216063653170123282ull, 7428880597845995060ull,
+ 11470618808924954795ull, 2673029756039535306ull}},
+ {{270079566462654103ull, 4674414728880105921ull, 5114901474301417686ull,
+ 3341287195049419133ull}},
+ {{4949285476505705532ull, 15066390447954908209ull,
+ 11005312861304160011ull, 4176608993811773916ull}},
+ {{14622518468884535718ull, 7110651020758123678ull,
+ 16101692575169875815ull, 2610380621132358697ull}},
+ {{9054776049250893839ull, 4276627757520266694ull,
+ 6292057663680181057ull, 3262975776415448372ull}},
+ {{2095098024708841491ull, 9957470715327721272ull,
+ 7865072079600226321ull, 4078719720519310465ull}},
+ {{1309436265443025932ull, 17752634243148295555ull,
+ 16444885095818611210ull, 2549199825324569040ull}},
+ {{15471853387085946127ull, 12967420767080593635ull,
+ 2109362296063712397ull, 3186499781655711301ull}},
+ {{14728130715430044754ull, 2374217903568578332ull,
+ 7248388888507028401ull, 3983124727069639126ull}},
+ {{18428453733998553780ull, 13013101235798831217ull,
+ 18365301110599056462ull, 2489452954418524453ull}},
+ {{9200509112216028512ull, 7043004507893763214ull,
+ 9121568332966656866ull, 3111816193023155567ull}},
+ {{2277264353415259832ull, 18027127671721979826ull,
+ 6790274397780933178ull, 3889770241278944459ull}},
+ {{6034976239311925299ull, 15878640813253625295ull,
+ 1938078489399389284ull, 2431106400799340287ull}},
+ {{2932034280712518720ull, 1401556942857480003ull,
+ 16257656167031400318ull, 3038883000999175358ull}},
+ {{17500100906172812112ull, 10975318215426625811ull,
+ 11098698171934474589ull, 3798603751248969198ull}},
+ {{8631720057144313618ull, 9165416893855335084ull,
+ 2325000339031658714ull, 2374127344530605749ull}},
+ {{10789650071430392023ull, 2233399080464393047ull,
+ 7517936442216961297ull, 2967659180663257186ull}},
+ {{8875376570860602124ull, 7403434869007879213ull, 174048515916425813ull,
+ 3709573975829071483ull}},
+ {{7852953366001570280ull, 6932989802343618460ull,
+ 16249681386943623797ull, 2318483734893169676ull}},
+ {{9816191707501962850ull, 13277923271356910979ull,
+ 1865357659969978130ull, 2898104668616462096ull}},
+ {{7658553615950065658ull, 7374032052341362916ull,
+ 2331697074962472663ull, 3622630835770577620ull}},
+ {{9573192019937582072ull, 4605854046999315741ull,
+ 2914621343703090829ull, 4528288544713222025ull}},
+ {{8289088021674682747ull, 5184501788588266290ull,
+ 13350853385882901528ull, 2830180340445763765ull}},
+ {{1137987990238577626ull, 6480627235735332863ull,
+ 2853508677071463198ull, 3537725425557204707ull}},
+ {{15257543043080385744ull, 17324156081523941886ull,
+ 17401943901621492709ull, 4422156781946505883ull}},
+ {{4924278383497853186ull, 13133440560166157631ull,
+ 8570371929299738991ull, 2763847988716566177ull}},
+ {{1543661960944928579ull, 11805114681780309135ull,
+ 15324650930052061643ull, 3454809985895707721ull}},
+ {{15764635506463324436ull, 10144707333797998514ull,
+ 5320755607282913342ull, 4318512482369634652ull}},
+ {{14464583209966965676ull, 1728756065196361167ull,
+ 12548844291406596647ull, 2699070301481021657ull}},
+ {{13469042994031319191ull, 15996003136777615171ull,
+ 1850997308976082096ull, 3373837876851277072ull}},
+ {{12224617724111761085ull, 1548259847262467348ull,
+ 2313746636220102621ull, 4217297346064096340ull}},
+ {{16863758114424626486ull, 3273505413752736044ull,
+ 10669463684492339946ull, 2635810841290060212ull}},
+ {{2632953569321231492ull, 13315253804045695864ull,
+ 13336829605615424932ull, 3294763551612575265ull}},
+ {{3291191961651539365ull, 16644067255057119830ull,
+ 2835978951737117453ull, 4118454439515719082ull}},
+ {{15892053031314375815ull, 12708385043624393845ull,
+ 6384172863263086312ull, 2574034024697324426ull}},
+ {{6030008233860806057ull, 15885481304530492307ull,
+ 17203588115933633698ull, 3217542530871655532ull}},
+ {{2925824273898619667ull, 10633479593808339576ull,
+ 3057741071207490507ull, 4021928163589569416ull}},
+ {{1828640171186637292ull, 4340081736916518283ull,
+ 1911088169504681567ull, 2513705102243480885ull}},
+ {{16120858269265460327ull, 813416152718259949ull,
+ 7000546230308239863ull, 3142131377804351106ull}},
+ {{6316014781299661696ull, 14851828246179988649ull,
+ 17974054824740075636ull, 3927664222255438882ull}},
+ {{15476724284380758320ull, 59020617007717097ull,
+ 15845470283889935177ull, 2454790138909649301ull}},
+ {{5510847300193784188ull, 4685461789687034276ull,
+ 5971779799580255259ull, 3068487673637061627ull}},
+ {{6888559125242230235ull, 1245141218681404941ull,
+ 2853038731047931170ull, 3835609592046327034ull}},
+ {{6611192462490087849ull, 5389899280103265992ull,
+ 6394835225332344885ull, 2397255995028954396ull}},
+ {{8263990578112609812ull, 11349060118556470394ull,
+ 7993544031665431106ull, 2996569993786192995ull}},
+ {{1106616185785986456ull, 4962953111340812185ull,
+ 5380244021154400979ull, 3745712492232741244ull}},
+ {{12220850162184711295ull, 796002685374313663ull,
+ 12586024550076276420ull, 2341070307645463277ull}},
+ {{10664376684303501215ull, 995003356717892079ull,
+ 1897472632313181813ull, 2926337884556829097ull}},
+ {{8718784836951988615ull, 5855440214324753003ull,
+ 6983526808818865170ull, 3657922355696036371ull}},
+ {{6286795027762597864ull, 16542672304760717062ull,
+ 4117722492596193558ull, 4572402944620045464ull}},
+ {{17764304947633787377ull, 5727484172048060259ull,
+ 2573576557872620974ull, 2857751840387528415ull}},
+ {{17593695166114846318ull, 16382727251914851132ull,
+ 17052028752622939929ull, 3572189800484410518ull}},
+ {{3545374883934006281ull, 6643351009611400204ull,
+ 12091663903923899104ull, 4465237250605513148ull}},
+ {{11439231339313529734ull, 4152094381007125127ull,
+ 16780661976807212748ull, 2790773281628445717ull}},
+ {{9687353155714524263ull, 5190117976258906409ull,
+ 7140769415726852223ull, 3488466602035557147ull}},
+ {{16720877463070543233ull, 1875961451896245107ull,
+ 4314275751231177375ull, 4360583252544446434ull}},
+ {{8144705405205395569ull, 8090004935076235048ull,
+ 7308108362946873763ull, 2725364532840279021ull}},
+ {{10180881756506744461ull, 5500820150417905906ull,
+ 13746821472110980108ull, 3406705666050348776ull}},
+ {{3502730158778654768ull, 6876025188022382383ull,
+ 17183526840138725135ull, 4258382082562935970ull}},
+ {{9106735376877741086ull, 11215044770155070845ull,
+ 15351390293514091113ull, 2661488801601834981ull}},
+ {{15995105239524564261ull, 183747907411674844ull,
+ 5354179811610450180ull, 3326861002002293727ull}},
+ {{1547137475696153711ull, 229684884264593556ull, 2081038746085674821ull,
+ 4158576252502867159ull}},
+ {{10190332959164871877ull, 2449396061879064924ull,
+ 8218178243944628619ull, 2599110157814291974ull}},
+ {{12737916198956089846ull, 16896803132630994867ull,
+ 1049350768076009965ull, 3248887697267864968ull}},
+ {{11310709230267724404ull, 7285945860506579872ull,
+ 1311688460095012457ull, 4061109621584831210ull}},
+ {{7069193268917327753ull, 16082931208885082180ull,
+ 5431491305986770689ull, 2538193513490519506ull}},
+ {{8836491586146659691ull, 6268605955824189013ull,
+ 16012736169338239170ull, 3172741891863149382ull}},
+ {{15657300501110712517ull, 17059129481635012074ull,
+ 10792548174818023154ull, 3965927364828936728ull}},
+ {{14397498831621583227ull, 15273641944449270450ull,
+ 6745342609261264471ull, 2478704603018085455ull}},
+ {{8773501502672203226ull, 14480366412134200159ull,
+ 3819992243149192685ull, 3098380753772606819ull}},
+ {{6355190859912866129ull, 4265399959885586487ull, 163304285509102953ull,
+ 3872975942215758524ull}},
+ {{10889523315086623187ull, 14195090020996961314ull,
+ 9325437215297965153ull, 2420609963884849077ull}},
+ {{4388532107003503175ull, 3908804470964037931ull,
+ 16268482537549844346ull, 3025762454856061346ull}},
+ {{873979115326991065ull, 14109377625559823222ull,
+ 11112231135082529624ull, 3782203068570076683ull}},
+ {{14381295002361533128ull, 8818361015974889513ull,
+ 4639301450212887063ull, 2363876917856297927ull}},
+ {{4141560697669752697ull, 6411265251541223988ull,
+ 1187440794338720925ull, 2954846147320372409ull}},
+ {{5176950872087190872ull, 12625767582853917889ull,
+ 6095987011350789060ull, 3693557684150465511ull}},
+ {{14764809341122964055ull, 17114476776138474488ull,
+ 10727520909735325018ull, 2308473552594040944ull}},
+ {{9267602694153453ull, 12169723933318317303ull, 13409401137169156273ull,
+ 2885591940742551180ull}},
+ {{13846642558649855528ull, 1377096861365732916ull,
+ 16761751421461445342ull, 3606989925928188975ull}},
+ {{17308303198312319409ull, 10944743113561941953ull,
+ 16340503258399418773ull, 4508737407410236219ull}},
+ {{3900160471304117775ull, 9146307455189907673ull,
+ 7906971527285942781ull, 2817960879631397637ull}},
+ {{9486886607557535123ull, 16044570337414772495ull,
+ 14495400427534816380ull, 3522451099539247046ull}},
+ {{7246922241019530999ull, 1608968848058914003ull,
+ 8895878497563744668ull, 4403063874424058808ull}},
+ {{2223483391423512923ull, 10228977566891597060ull,
+ 5559924060977340417ull, 2751914921515036755ull}},
+ {{2779354239279391153ull, 17397907977041884229ull,
+ 2338219057794287617ull, 3439893651893795944ull}},
+ {{8085878817526626846ull, 7912326916020191574ull,
+ 2922773822242859522ull, 4299867064867244930ull}},
+ {{441988242526753875ull, 9556890340940007638ull, 6438419657329175105ull,
+ 2687416915542028081ull}},
+ {{9775857340013218151ull, 16557798944602397451ull,
+ 12659710590088856785ull, 3359271144427535101ull}},
+ {{7608135656589134785ull, 6862190625470833102ull,
+ 1989580182328907270ull, 4199088930534418877ull}},
+ {{143398766940821337ull, 18123927196201434401ull,
+ 3549330623169260995ull, 2624430581584011798ull}},
+ {{4790934477103414575ull, 18043222976824405097ull,
+ 13660035315816352052ull, 3280538226980014747ull}},
+ {{10600354114806656122ull, 4107284647320954755ull,
+ 12463358126343052162ull, 4100672783725018434ull}},
+ {{4319378312540466125ull, 7178738923002984626ull,
+ 12401284847391795505ull, 2562920489828136521ull}},
+ {{14622594927530358464ull, 13585109672181118686ull,
+ 1666548003957580669ull, 3203650612285170652ull}},
+ {{9054871622558172271ull, 3146329034944234646ull,
+ 2083185004946975837ull, 4004563265356463315ull}},
+ {{1047608745671469766ull, 4272298656053840606ull,
+ 17442891692587717562ull, 2502852040847789571ull}},
+ {{10532882968944113015ull, 14563745356922076565ull,
+ 17191928597307259048ull, 3128565051059736964ull}},
+ {{17777789729607529173ull, 18204681696152595706ull,
+ 3043166672924522194ull, 3910706313824671206ull}},
+ {{15722804599432093637ull, 15989612078522760220ull,
+ 15737037225859990083ull, 2444191446140419503ull}},
+ {{1206761675580565430ull, 15375329079726062372ull,
+ 15059610513897599700ull, 3055239307675524379ull}},
+ {{1508452094475706788ull, 772417275948026349ull,
+ 14212827123944611722ull, 3819049134594405474ull}},
+ {{3248625568261010695ull, 5094446815894904372ull,
+ 13494702970892770230ull, 2386905709121503421ull}},
+ {{4060781960326263368ull, 15591430556723406273ull,
+ 3033320658333799075ull, 2983632136401879277ull}},
+ {{9687663468835217114ull, 14877602177476869937ull,
+ 8403336841344636748ull, 3729540170502349096ull}},
+ {{17584004714090480456ull, 75129324068267902ull, 5252085525840397968ull,
+ 2330962606563968185ull}},
+ {{12756633855758324762ull, 93911655085334878ull,
+ 11176792925727885364ull, 2913703258204960231ull}},
+ {{6722420282843130145ull, 117389568856668598ull, 9359305138732468801ull,
+ 3642129072756200289ull}},
+ {{17626397390408688489ull, 4758422979498223651ull,
+ 16310817441842973905ull, 4552661340945250361ull}},
+ {{8710655359791736354ull, 14503229408254859542ull,
+ 3276731873510776834ull, 2845413338090781476ull}},
+ {{1664947162884894634ull, 8905664723463798620ull,
+ 4095914841888471043ull, 3556766672613476845ull}},
+ {{2081183953606118293ull, 6520394885902360371ull,
+ 9731579570787976708ull, 4445958340766846056ull}},
+ {{17441641035499681597ull, 13298618840543751039ull,
+ 6082237231742485442ull, 2778723962979278785ull}},
+ {{17190365275947214092ull, 7399901513824912991ull,
+ 12214482558105494707ull, 3473404953724098481ull}},
+ {{16876270576506629711ull, 4638190873853753335ull,
+ 1433045142349704672ull, 4341756192155123102ull}},
+ {{17465198137957725426ull, 2898869296158595834ull,
+ 14730711269250729132ull, 2713597620096951938ull}},
+ {{12608125635592380974ull, 3623586620198244793ull,
+ 9190017049708635607ull, 3391997025121189923ull}},
+ {{1925098989208312505ull, 18364541330529969704ull,
+ 6875835293708406604ull, 4239996281401487404ull}},
+ {{1203186868255195316ull, 2254466294726455257ull,
+ 13520769095422529936ull, 2649997675875929627ull}},
+ {{6115669603746382049ull, 2818082868408069071ull,
+ 12289275350850774516ull, 3312497094844912034ull}},
+ {{3032900986255589657ull, 3522603585510086339ull,
+ 6138222151708692337ull, 4140621368556140043ull}},
+ {{18036464180905601200ull, 13730842287012273721ull,
+ 1530545835604238758ull, 2587888355347587527ull}},
+ {{8710522170849837788ull, 7940180821910566344ull,
+ 15748240349787462160ull, 3234860444184484408ull}},
+ {{10888152713562297234ull, 9925226027388207930ull,
+ 1238556363524776084ull, 4043575555230605511ull}},
+ {{11416781464403823676ull, 15426638303972405764ull,
+ 7691626754844066908ull, 2527234722019128444ull}},
+ {{14270976830504779595ull, 836553806255955589ull,
+ 9614533443555083636ull, 3159043402523910555ull}},
+ {{4003662982848810781ull, 1045692257819944487ull,
+ 7406480786016466641ull, 3948804253154888194ull}},
+ {{9419818391921588594ull, 12182772707205935064ull,
+ 9240736509687679554ull, 2468002658221805121ull}},
+ {{11774772989901985743ull, 6005093847152643022ull,
+ 16162606655536987347ull, 3085003322777256401ull}},
+ {{5495094200522706370ull, 2894681290513415874ull,
+ 6368200264139070472ull, 3856254153471570502ull}},
+ {{8046119893754079386ull, 1809175806570884921ull,
+ 17815183220369082757ull, 2410158845919731563ull}},
+ {{14669335885619987136ull, 6873155776640994055ull,
+ 17657293007033965542ull, 3012698557399664454ull}},
+ {{13724983838597596016ull, 17814816757656018377ull,
+ 12848244221937681119ull, 3765873196749580568ull}},
+ {{1660585871482415654ull, 18051789501176093342ull,
+ 8030152638711050699ull, 2353670747968487855ull}},
+ {{11299104376207795375ull, 17953050858042728773ull,
+ 5426004779961425470ull, 2942088434960609819ull}},
+ {{288822414977580507ull, 13217941535698635159ull,
+ 2170819956524393934ull, 3677610543700762274ull}},
+ {{14196086074004139346ull, 7299054882768518140ull,
+ 11936896982510268226ull, 4597013179625952842ull}},
+ {{18095925833107362899ull, 9173595320157711741ull,
+ 12072246632496305545ull, 2873133237266220526ull}},
+ {{8784849236102039912ull, 16078680168624527581ull,
+ 5866936253765606123ull, 3591416546582775658ull}},
+ {{15592747563554937794ull, 15486664192353271572ull,
+ 16557042354061783462ull, 4489270683228469572ull}},
+ {{522095190367060313ull, 5067479101793406829ull, 1124779434433838856ull,
+ 2805794177017793483ull}},
+ {{5264305006386213296ull, 6334348877241758536ull,
+ 15241032348324462282ull, 3507242721272241853ull}},
+ {{6580381257982766619ull, 17141308133406973978ull,
+ 5216232380123414140ull, 4384053401590302317ull}},
+ {{8724424304666617041ull, 1489945546524582928ull,
+ 5565988246790827790ull, 2740033375993938948ull}},
+ {{10905530380833271302ull, 11085803970010504468ull,
+ 6957485308488534737ull, 3425041719992423685ull}},
+ {{13631912976041589127ull, 22196907230966873ull,
+ 13308542654038056326ull, 4281302149990529606ull}},
+ {{1602416582384911348ull, 13848931122301518008ull,
+ 3706153140346397299ull, 2675813843744081004ull}},
+ {{2003020727981139185ull, 12699477884449509606ull,
+ 4632691425432996624ull, 3344767304680101255ull}},
+ {{11727147946831199790ull, 15874347355561887007ull,
+ 1179178263363857876ull, 4180959130850126569ull}},
+ {{14246996494410581725ull, 698095060371403571ull,
+ 12266201460670880933ull, 2613099456781329105ull}},
+ {{13197059599585839252ull, 5484304843891642368ull,
+ 1497693770556437454ull, 3266374320976661382ull}},
+ {{16496324499482299065ull, 16078753091719328768ull,
+ 11095489250050322625ull, 4082967901220826727ull}},
+ {{10310202812176436916ull, 3131691654683498624ull,
+ 13852209808922533497ull, 2551854938263016704ull}},
+ {{12887753515220546144ull, 8526300586781761184ull,
+ 17315262261153166871ull, 3189818672828770880ull}},
+ {{16109691894025682680ull, 6046189715049813576ull,
+ 3197333752731906973ull, 3987273341035963601ull}},
+ {{10068557433766051675ull, 6084711581119827437ull,
+ 13527548641525911618ull, 2492045838147477250ull}},
+ {{17197382810634952498ull, 16829261513254560104ull,
+ 7686063765052613714ull, 3115057297684346563ull}},
+ {{3049984439584139006ull, 11813204854713424323ull,
+ 4995893687888379239ull, 3893821622105433204ull}},
+ {{18047141339235944543ull, 14300782061836972057ull,
+ 12345805591785012832ull, 2433638513815895752ull}},
+ {{8723868618762766967ull, 17875977577296215072ull,
+ 15432256989731266040ull, 3042048142269869690ull}},
+ {{10904835773453458709ull, 3898227897910717224ull,
+ 10066949200309306743ull, 3802560177837337113ull}},
+ {{6815522358408411693ull, 9353921463835280121ull,
+ 17821058296261786474ull, 2376600111148335695ull}},
+ {{13131088966437902520ull, 2469029792939324343ull,
+ 17664636851899845189ull, 2970750138935419619ull}},
+ {{11802175189619990246ull, 7697973259601543333ull,
+ 17469110046447418582ull, 3713437673669274524ull}},
+ {{9682202502726187856ull, 199547268823576679ull, 1694821742174860806ull,
+ 2320898546043296578ull}},
+ {{7491067109980346916ull, 9472806122884246657ull,
+ 11341899214573351815ull, 2901123182554120722ull}},
+ {{13975519905902821549ull, 7229321635177920417ull,
+ 4954001981361913961ull, 3626403978192650903ull}},
+ {{3634341827096363224ull, 13648338062399788426ull,
+ 1580816458275004547ull, 4533004972740813629ull}},
+ {{6883149660362614919ull, 6224368279786173814ull,
+ 3293853295635571794ull, 2833128107963008518ull}},
+ {{17827309112308044457ull, 17003832386587493075ull,
+ 13340688656399240550ull, 3541410134953760647ull}},
+ {{17672450371957667667ull, 12031418446379590536ull,
+ 12064174802071662784ull, 4426762668692200809ull}},
+ {{11045281482473542292ull, 7519636528987244085ull,
+ 622580223653707384ull, 2766726667932625506ull}},
+ {{18418287871519315769ull, 9399545661234055106ull,
+ 10001597316421910038ull, 3458408334915781882ull}},
+ {{13799487802544368903ull, 2526060039687793075ull,
+ 3278624608672611740ull, 4323010418644727353ull}},
+ {{6318836867376536612ull, 10802159561659646480ull,
+ 13578355426488852097ull, 2701881511652954595ull}},
+ {{7898546084220670765ull, 18114385470501946004ull,
+ 12361258264683677217ull, 3377351889566193244ull}},
+ {{9873182605275838457ull, 8807923782845268793ull,
+ 15451572830854596522ull, 4221689861957741555ull}},
+ {{17699954174365868796ull, 10116638382705680899ull,
+ 7351390010070428874ull, 2638556163723588472ull}},
+ {{17513256699529948090ull, 3422425941527325316ull,
+ 9189237512588036093ull, 3298195204654485590ull}},
+ {{3444826800702883497ull, 8889718445336544550ull,
+ 2263174853880269308ull, 4122744005818106988ull}},
+ {{15988074805721465898ull, 14779446065190116151ull,
+ 10637856320529944125ull, 2576715003636316867ull}},
+ {{15373407488724444468ull, 4639249526205481477ull,
+ 8685634382235042253ull, 3220893754545396084ull}},
+ {{5381701305623391873ull, 10410747926184239751ull,
+ 10857042977793802816ull, 4026117193181745105ull}},
+ {{10281092343655701777ull, 6506717453865149844ull,
+ 18314866907189596520ull, 2516323245738590690ull}},
+ {{12851365429569627221ull, 8133396817331437305ull,
+ 13670211597132219842ull, 3145404057173238363ull}},
+ {{2229148731679870314ull, 943373984809520824ull,
+ 12476078477987886899ull, 3931755071466547954ull}},
+ {{1393217957299918946ull, 16730509805001808179ull,
+ 12409235067169817215ull, 2457346919666592471ull}},
+ {{15576580501907062395ull, 16301451237824872319ull,
+ 10899857815534883615ull, 3071683649583240589ull}},
+ {{14859039608956440089ull, 15765128028853702495ull,
+ 18236508287845992423ull, 3839604561979050736ull}},
+ {{16204428783238856912ull, 16770734045674645915ull,
+ 11397817679903745264ull, 2399752851236906710ull}},
+ {{15643849960621183236ull, 2516673483383755778ull,
+ 5023900063024905773ull, 2999691064046133388ull}},
+ {{10331440413921703237ull, 7757527872657082627ull,
+ 6279875078781132216ull, 3749613830057666735ull}},
+ {{4151307249487370571ull, 4848454920410676642ull,
+ 10842450951879289491ull, 2343508643786041709ull}},
+ {{14412506098713989022ull, 1448882632085957898ull,
+ 18164749708276499768ull, 2929385804732552136ull}},
+ {{8792260586537710469ull, 1811103290107447373ull,
+ 4259193061636073094ull, 3661732255915690171ull}},
+ {{15602011751599525990ull, 11487251149489085024ull,
+ 712305308617703463ull, 4577165319894612714ull}},
+ {{9751257344749703744ull, 14097060996071759996ull,
+ 5056876836313452568ull, 2860728324934132946ull}},
+ {{12189071680937129680ull, 17621326245089699995ull,
+ 15544468082246591518ull, 3575910406167666182ull}},
+ {{10624653582744024196ull, 12803285769507349186ull,
+ 10207213065953463590ull, 4469888007709582728ull}},
+ {{11252094507642403027ull, 3390367587514705337ull,
+ 6379508166220914744ull, 2793680004818489205ull}},
+ {{230060079270840071ull, 4237959484393381672ull,
+ 12586071226203531334ull, 3492100006023111506ull}},
+ {{287575099088550089ull, 14520821392346502898ull,
+ 6509216995899638359ull, 4365125007528889383ull}},
+ {{4791420455357731710ull, 15993042397857646167ull,
+ 10985789650078355830ull, 2728203129705555864ull}},
+ {{1377589550769776733ull, 10767930960467281901ull,
+ 13732237062597944788ull, 3410253912131944830ull}},
+ {{6333672956889608820ull, 13459913700584102376ull,
+ 7941924291392655177ull, 4262817390164931038ull}},
+ {{3958545598056005513ull, 1494917035223982129ull, 352016663693021582ull,
+ 2664260868853081899ull}},
+ {{9559868015997394795ull, 11092018330884753469ull,
+ 14275078884898440689ull, 3330326086066352373ull}},
+ {{16561521038424131397ull, 29964858323778124ull, 4008790550840887150ull,
+ 4162907607582940467ull}},
+ {{1127578612160306316ull, 13853786091734525040ull,
+ 199651085061860516ull, 2601817254739337792ull}},
+ {{1409473265200382894ull, 17317232614668156300ull,
+ 249563856327325645ull, 3252271568424172240ull}},
+ {{1761841581500478618ull, 7811482713053031663ull, 311954820409157057ull,
+ 4065339460530215300ull}},
+ {{8018680016078880992ull, 16411391741726614549ull,
+ 9418343799610498968ull, 2540837162831384562ull}},
+ {{14635036038525989144ull, 2067495603448716570ull,
+ 2549557712658347903ull, 3176046453539230703ull}},
+ {{9070423011302710622ull, 16419427559593059425ull,
+ 17022005196105098590ull, 3970058066924038378ull}},
+ {{17198229428132663899ull, 5650456206318274236ull,
+ 15250439265993074523ull, 2481286291827523986ull}},
+ {{3051042711456278258ull, 2451384239470454892ull,
+ 9839677045636567346ull, 3101607864784404983ull}},
+ {{3813803389320347822ull, 12287602336192844423ull,
+ 7687910288618321278ull, 3877009830980506229ull}},
+ {{9301156145966299245ull, 3068065441693139860ull,
+ 7110786939600144751ull, 2423131144362816393ull}},
+ {{11626445182457874056ull, 17670139857398588537ull,
+ 13500169692927568842ull, 3028913930453520491ull}},
+ {{697998422790178858ull, 12864302784893459864ull,
+ 12263526097732073149ull, 3786142413066900614ull}},
+ {{436249014243861786ull, 10346032249772106367ull,
+ 3053017792655157814ull, 2366339008166812884ull}},
+ {{14380369323086990945ull, 3709168275360357150ull,
+ 3816272240818947268ull, 2957923760208516105ull}},
+ {{8752089617003962873ull, 4636460344200446438ull,
+ 9382026319451071989ull, 3697404700260645131ull}},
+ {{858369992200088892ull, 5203630724338972976ull, 3557923440443226041ull,
+ 2310877937662903207ull}},
+ {{1072962490250111115ull, 11116224423851104124ull,
+ 18282462355836196263ull, 2888597422078629008ull}},
+ {{1341203112812638893ull, 9283594511386492251ull,
+ 4406333871085693713ull, 3610746777598286261ull}},
+ {{15511561946297962328ull, 16216179157660503217ull,
+ 10119603357284505045ull, 4513433471997857826ull}},
+ {{2777197188795144599ull, 12440954982751508463ull,
+ 10936438116730203557ull, 2820895919998661141ull}},
+ {{17306554541276094461ull, 1716135673157221866ull,
+ 18282233664340142351ull, 3526119899998326426ull}},
+ {{12409821139740342268ull, 15980227646728691045ull,
+ 13629420043570402130ull, 4407649874997908033ull}},
+ {{10061981221551407870ull, 14599328297632819807ull,
+ 1600858499590419475ull, 2754781171873692521ull}},
+ {{7965790508511871933ull, 13637474353613636855ull,
+ 6612759142915412248ull, 3443476464842115651ull}},
+ {{5345552117212452012ull, 17046842942017046069ull,
+ 3654262910216877406ull, 4304345581052644564ull}},
+ {{5646813082471476460ull, 6042590820333265889ull,
+ 11507286355740324187ull, 2690215988157902852ull}},
+ {{11670202371516733479ull, 2941552506989194457ull,
+ 14384107944675405234ull, 3362769985197378565ull}},
+ {{752694909113753136ull, 12900312670591268880ull,
+ 4145076875562092830ull, 4203462481496723207ull}},
+ {{470434318196095710ull, 3451009400692155146ull, 9508202074867389875ull,
+ 2627164050935452004ull}},
+ {{9811414934599895446ull, 18148819806147357644ull,
+ 11885252593584237343ull, 3283955063669315005ull}},
+ {{12264268668249869307ull, 18074338739256809151ull,
+ 1021507686698132967ull, 4104943829586643757ull}},
+ {{14582696945297250173ull, 18213990739676587575ull,
+ 2944285313400027056ull, 2565589893491652348ull}},
+ {{13616685163194174812ull, 4320744350886182853ull,
+ 3680356641750033821ull, 3206987366864565435ull}},
+ {{3185798398710554803ull, 10012616457035116471ull,
+ 18435503857469705988ull, 4008734208580706793ull}},
+ {{8908653026835178608ull, 15481257322501723602ull,
+ 4604660883277484386ull, 2505458880362941746ull}},
+ {{1912444246689197452ull, 10128199616272378695ull,
+ 14979198140951631291ull, 3131823600453677182ull}},
+ {{16225613363643660527ull, 8048563501913085464ull,
+ 9500625639334763306ull, 3914779500567096478ull}},
+ {{10141008352277287830ull, 9642038207123066319ull,
+ 1326205006156839162ull, 2446737187854435299ull}},
+ {{8064574421919221883ull, 2829175722049057091ull,
+ 15492814312978212665ull, 3058421484818044123ull}},
+ {{5469032008971639450ull, 8148155670988709268ull,
+ 14754331872795377927ull, 3823026856022555154ull}},
+ {{12641517042462050464ull, 12010126322009025148ull,
+ 13833143438924499108ull, 2389391785014096971ull}},
+ {{15801896303077563080ull, 15012657902511281435ull,
+ 12679743280228235981ull, 2986739731267621214ull}},
+ {{15140684360419565946ull, 4930764322856938082ull,
+ 6626307063430519169ull, 3733424664084526518ull}},
+ {{14074613743689616620ull, 14610942747854056061ull,
+ 17976499969926238192ull, 2333390415052829073ull}},
+ {{3758209124329857063ull, 18263678434817570077ull,
+ 8635566907125634028ull, 2916738018816036342ull}},
+ {{9309447423839709233ull, 4382853969812410980ull,
+ 1571086597052266728ull, 3645922523520045428ull}},
+ {{11636809279799636541ull, 5478567462265513725ull,
+ 1963858246315333410ull, 4557403154400056785ull}},
+ {{9578848809088466791ull, 8035790682343333982ull,
+ 12756626450015553141ull, 2848376971500035490ull}},
+ {{2750188974505807680ull, 14656424371356555382ull,
+ 6722411025664665618ull, 3560471214375044363ull}},
+ {{12661108254987035408ull, 9097158427340918419ull,
+ 3791327763653444119ull, 4450589017968805454ull}},
+ {{5607349650153203178ull, 12603253044729155868ull,
+ 16204637907565566286ull, 2781618136230503408ull}},
+ {{7009187062691503973ull, 6530694269056669027ull,
+ 1809053310747406242ull, 3477022670288129261ull}},
+ {{4149797809936992062ull, 17386739873175612092ull,
+ 6873002656861645706ull, 4346278337860161576ull}},
+ {{11816995668065395847ull, 15478398439162145461ull,
+ 4295626660538528566ull, 2716423961162600985ull}},
+ {{936186529799581096ull, 10124626012097906019ull,
+ 9981219344100548612ull, 3395529951453251231ull}},
+ {{15005291217531640082ull, 12655782515122382523ull,
+ 7864838161698297861ull, 4244412439316564039ull}},
+ {{7072464001743581099ull, 10215707081165183029ull,
+ 11833052878702518019ull, 2652757774572852524ull}},
+ {{13452266020606864278ull, 8157947833029090882ull,
+ 14791316098378147524ull, 3315947218216065655ull}},
+ {{7591960488903804540ull, 10197434791286363603ull,
+ 13877459104545296501ull, 4144934022770082069ull}},
+ {{2439132296351183885ull, 8679239753767671204ull,
+ 10979254949554504265ull, 2590583764231301293ull}},
+ {{3048915370438979857ull, 15460735710636976909ull,
+ 18335754705370518235ull, 3238229705289126616ull}},
+ {{8422830231476112725ull, 14714233619868833232ull,
+ 4472949308003596178ull, 4047787131611408271ull}},
+ {{5264268894672570453ull, 13808082030845408674ull,
+ 9713122345143329467ull, 2529866957257130169ull}},
+ {{15803708155195488874ull, 12648416520129372938ull,
+ 16753088949856549738ull, 3162333696571412711ull}},
+ {{10531263157139585285ull, 6587148613306940365ull,
+ 16329675168893299269ull, 3952917120714265889ull}},
+ {{8887882482425934755ull, 6422810892530531680ull,
+ 3288517952917230187ull, 2470573200446416181ull}},
+ {{11109853103032418444ull, 3416827597235776696ull,
+ 8722333459573925638ull, 3088216500558020226ull}},
+ {{13887316378790523055ull, 13494406533399496678ull,
+ 1679544787612631239ull, 3860270625697525283ull}},
+ {{4067886718316689005ull, 15351533111015767280ull,
+ 17190616556753752188ull, 2412669141060953301ull}},
+ {{5084858397895861257ull, 742672315060157484ull, 7653212640660026524ull,
+ 3015836426326191627ull}},
+ {{6356072997369826571ull, 928340393825196855ull, 4954829782397645251ull,
+ 3769795532907739534ull}},
+ {{10890074650997223463ull, 16721113810636605698ull,
+ 16931826669280691993ull, 2356122208067337208ull}},
+ {{4389221276891753520ull, 7066334208013593411ull,
+ 2718039262891313376ull, 2945152760084171511ull}},
+ {{874840577687303996ull, 8832917760016991764ull,
+ 17232607133896305432ull, 3681440950105214388ull}},
+ {{1093550722109129995ull, 11041147200021239705ull,
+ 3094014843660830174ull, 4601801187631517986ull}},
+ {{12212684247386676007ull, 2289030981585886911ull,
+ 6545445295715406763ull, 2876125742269698741ull}},
+ {{10654169290805957105ull, 16696346782264522351ull,
+ 12793492638071646357ull, 3595157177837123426ull}},
+ {{8706025595080058477ull, 7035375422548489227ull,
+ 6768493760734782139ull, 4493946472296404283ull}},
+ {{3135422987711342596ull, 2091266629879111815ull,
+ 1924465591245544885ull, 2808716545185252677ull}},
+ {{17754336789921341957ull, 7225769305776277672ull,
+ 7017268007484319010ull, 3510895681481565846ull}},
+ {{3746176913692125831ull, 18255583669075122899ull,
+ 17994957046210174570ull, 4388619601851957307ull}},
+ {{35517561843884692ull, 16021425811599339716ull, 8941005144667665154ull,
+ 2742887251157473317ull}},
+ {{44396952304855865ull, 10803410227644398837ull,
+ 15787942449261969347ull, 3428609063946841646ull}},
+ {{4667182208808457735ull, 8892576766128110642ull,
+ 10511556024722685876ull, 4285761329933552058ull}},
+ {{7528674898932673989ull, 14781232515684844959ull,
+ 11181408533879066576ull, 2678600831208470036ull}},
+ {{4799157605238454582ull, 29796570896504583ull, 13976760667348833221ull,
+ 3348251039010587545ull}},
+ {{1387260988120680323ull, 4648931732048018633ull,
+ 3635892778903877814ull, 4185313798763234432ull}},
+ {{12396253163643894962ull, 16740640387812175357ull,
+ 2272432986814923633ull, 2615821124227021520ull}},
+ {{1660258399272704991ull, 7090742429483055485ull,
+ 2840541233518654542ull, 3269776405283776900ull}},
+ {{6687009017518269142ull, 18086800073708595164ull,
+ 3550676541898318177ull, 4087220506604721125ull}},
+ {{13402752672803694022ull, 4386721018426790121ull,
+ 4525015847900142813ull, 2554512816627950703ull}},
+ {{2918382785722453815ull, 10095087291460875556ull,
+ 1044583791447790612ull, 3193141020784938379ull}},
+ {{3647978482153067269ull, 12618859114326094445ull,
+ 15140787794591901977ull, 3991426275981172973ull}},
+ {{4585829560559360995ull, 969257918812727172ull,
+ 11768835380833632688ull, 2494641422488233108ull}},
+ {{5732286950699201244ull, 1211572398515908965ull,
+ 14711044226042040860ull, 3118301778110291385ull}},
+ {{11777044706801389459ull, 1514465498144886206ull,
+ 4553747227270387363ull, 3897877222637864232ull}},
+ {{2748966923323480508ull, 17087442000836411543ull,
+ 2846092017043992101ull, 2436173264148665145ull}},
+ {{17271266709436514347ull, 7524244445763350716ull,
+ 8169301039732378031ull, 3045216580185831431ull}},
+ {{3142339313086091318ull, 4793619538776800492ull,
+ 5599940281238084635ull, 3806520725232289289ull}},
+ {{11187334107533582882ull, 690169202521806355ull,
+ 15029177721842272657ull, 2379075453270180805ull}},
+ {{9372481615989590698ull, 5474397521579645848ull,
+ 4951414097020677109ull, 2973844316587726007ull}},
+ {{11715602019986988372ull, 11454682920401945214ull,
+ 1577581602848458482ull, 3717305395734657509ull}},
+ {{2710565244064479829ull, 11770862843678603663ull,
+ 3291831510993980503ull, 2323315872334160943ull}},
+ {{17223264610362763498ull, 10101892536170866674ull,
+ 17949847444024639341ull, 2904144840417701178ull}},
+ {{12305708726098678564ull, 17239051688640971247ull,
+ 13213937268176023368ull, 3630181050522126473ull}},
+ {{10770449889195960301ull, 3102070537091662443ull,
+ 2682363529937865499ull, 4537726313152658092ull}},
+ {{4425688171533781237ull, 18079695150178146691ull,
+ 10899849243065941744ull, 2836078945720411307ull}},
+ {{920424195989838642ull, 4152874864013131748ull, 9013125535405039277ull,
+ 3545098682150514134ull}},
+ {{1150530244987298302ull, 9802779598443802589ull,
+ 2043034882401523288ull, 4431373352688142668ull}},
+ {{3024924412330755391ull, 6126737249027376618ull,
+ 10500268838355727863ull, 2769608345430089167ull}},
+ {{13004527552268220046ull, 3046735542856832868ull,
+ 8513650029517271925ull, 3462010431787611459ull}},
+ {{16255659440335275058ull, 8420105446998428989ull,
+ 6030376518469202002ull, 4327513039734514324ull}},
+ {{12465630159423240863ull, 9874251922801406022ull,
+ 12992357360898027059ull, 2704695649834071452ull}},
+ {{6358665662424275271ull, 7731128885074369624ull,
+ 16240446701122533824ull, 3380869562292589315ull}},
+ {{7948332078030344089ull, 9663911106342962030ull,
+ 15688872357975779376ull, 4226086952865736644ull}},
+ {{356021530341577152ull, 6039944441464351269ull, 582173186880086302ull,
+ 2641304345541085403ull}},
+ {{5056712931354359343ull, 16773302588685214894ull,
+ 14562774538882271589ull, 3301630431926356753ull}},
+ {{15544263201047724987ull, 7131570180574354905ull,
+ 4368410118320675775ull, 4127038039907945942ull}},
+ {{2797635473013746261ull, 11374760390500053672ull,
+ 16565314379232586071ull, 2579398774942466213ull}},
+ {{3497044341267182826ull, 9606764469697679186ull,
+ 6871584918758568877ull, 3224248468678082767ull}},
+ {{13594677463438754341ull, 16620141605549486886ull,
+ 3977795130020823192ull, 4030310585847603459ull}},
+ {{3884987396221833559ull, 10387588503468429304ull,
+ 180278947049320543ull, 2518944116154752162ull}},
+ {{4856234245277291949ull, 8372799610908148726ull,
+ 9448720720666426487ull, 3148680145193440202ull}},
+ {{15293664843451390744ull, 5854313495207798003ull,
+ 2587528863978257301ull, 3935850181491800253ull}},
+ {{7252697517943425263ull, 5964788943718567704ull,
+ 3923048549200104765ull, 2459906363432375158ull}},
+ {{9065871897429281579ull, 12067672198075597534ull,
+ 14127182723354906764ull, 3074882954290468947ull}},
+ {{2108967834931826165ull, 15084590247594496918ull,
+ 13047292385766245551ull, 3843603692863086184ull}},
+ {{15153162952114555066ull, 16345397932387642429ull,
+ 8154557741103903469ull, 2402252308039428865ull}},
+ {{5106395634861030120ull, 6596689360202389325ull,
+ 14804883194807267241ull, 3002815385049286081ull}},
+ {{10994680562003675554ull, 12857547718680374560ull,
+ 4671045938226920339ull, 3753519231311607602ull}},
+ {{6871675351252297221ull, 5730124314961540148ull,
+ 7531089729819213116ull, 2345949519569754751ull}},
+ {{8589594189065371526ull, 7162655393701925185ull,
+ 4802176143846628491ull, 2932436899462193439ull}},
+ {{15348678754759102312ull, 4341633223700018577ull,
+ 1391034161380897710ull, 3665546124327741799ull}},
+ {{5350790388166714178ull, 14650413566479799030ull,
+ 15573850757008285849ull, 4581932655409677248ull}},
+ {{17179302047886360073ull, 2238979451408792537ull,
+ 9733656723130178656ull, 2863707909631048280ull}},
+ {{7639069504575786379ull, 2798724314260990672ull,
+ 12167070903912723320ull, 3579634887038810350ull}},
+ {{9548836880719732974ull, 3498405392826238340ull,
+ 5985466593036128342ull, 4474543608798512938ull}},
+ {{15191395087304608917ull, 16021561425798562674ull,
+ 8352602639074968117ull, 2796589755499070586ull}},
+ {{9765871822275985338ull, 6191893726966039631ull,
+ 1217381261988934339ull, 3495737194373838233ull}},
+ {{7595653759417593769ull, 3128181140280161635ull,
+ 6133412595913555828ull, 4369671492967297791ull}},
+ {{2441440590422302154ull, 11178485249529876830ull,
+ 10750911900087054248ull, 2731044683104561119ull}},
+ {{12275172774882653500ull, 13973106561912346037ull,
+ 8826953856681429906ull, 3413805853880701399ull}},
+ {{1508907913321153163ull, 8243011165535656739ull,
+ 6422006302424399479ull, 4267257317350876749ull}},
+ {{17083968510321578391ull, 12069411006100867317ull,
+ 6319596948228943626ull, 2667035823344297968ull}},
+ {{7519902582619809276ull, 5863391720771308339ull,
+ 7899496185286179533ull, 3333794779180372460ull}},
+ {{4788192209847373691ull, 11940925669391523328ull,
+ 9874370231607724416ull, 4167243473975465575ull}},
+ {{2992620131154608557ull, 7463078543369702080ull,
+ 13089010422395909616ull, 2604527171234665984ull}},
+ {{3740775163943260697ull, 9328848179212127600ull,
+ 16361263027994887020ull, 3255658964043332480ull}},
+ {{4675968954929075871ull, 11661060224015159500ull,
+ 2004834711284057159ull, 4069573705054165601ull}},
+ {{12145852633685448227ull, 14205691667650556543ull,
+ 12782236740621005484ull, 2543483565658853500ull}},
+ {{10570629773679422380ull, 17757114584563195679ull,
+ 15977795925776256855ull, 3179354457073566875ull}},
+ {{8601601198671890071ull, 17584707212276606695ull,
+ 15360558888792933165ull, 3974193071341958594ull}},
+ {{12293529776811013150ull, 13296285016886573136ull,
+ 14212035323922971132ull, 2483870669588724121ull}},
+ {{15366912221013766438ull, 16620356271108216420ull,
+ 3929986099621550203ull, 3104838336985905152ull}},
+ {{761896202557656431ull, 16163759320457882622ull,
+ 4912482624526937754ull, 3881047921232381440ull}},
+ {{14311243181880698982ull, 14714035593713564542ull,
+ 3070301640329336096ull, 2425654950770238400ull}},
+ {{8665681940496097919ull, 18392544492141955678ull,
+ 3837877050411670120ull, 3032068688462798000ull}},
+ {{1608730388765346591ull, 4543936541467892982ull,
+ 4797346313014587651ull, 3790085860578497500ull}},
+ {{14840514548260505331ull, 534117329203739161ull,
+ 12221713482488893090ull, 2368803662861560937ull}},
+ {{4715585130043467952ull, 9891018698359449760ull,
+ 1442083797828952650ull, 2961004578576951172ull}},
+ {{5894481412554334940ull, 3140401336094536392ull,
+ 1802604747286190813ull, 3701255723221188965ull}},
+ {{3684050882846459338ull, 4268593844272779197ull,
+ 3432470976267563210ull, 2313284827013243103ull}},
+ {{9216749621985462076ull, 14559114342195749804ull,
+ 18125646775616617724ull, 2891606033766553878ull}},
+ {{11520937027481827595ull, 18198892927744687255ull,
+ 13433686432665996347ull, 3614507542208192348ull}},
+ {{9789485265924896590ull, 18136930141253471165ull,
+ 16792108040832495434ull, 4518134427760240435ull}},
+ {{8424271300416754321ull, 15947267356710807382ull,
+ 8189224516306615694ull, 2823834017350150272ull}},
+ {{1306967088666167093ull, 10710712159033733420ull,
+ 10236530645383269618ull, 3529792521687687840ull}},
+ {{1633708860832708866ull, 4165018161937390967ull,
+ 12795663306729087023ull, 4412240652109609800ull}},
+ {{7938597065661524897ull, 9520665378851951210ull,
+ 7997289566705679389ull, 2757650407568506125ull}},
+ {{699874295222130313ull, 16512517741992326917ull,
+ 14608297976809487140ull, 3447063009460632656ull}},
+ {{5486528887455050796ull, 2193903103780857030ull,
+ 18260372471011858926ull, 4308828761825790820ull}},
+ {{17264138609941570459ull, 15206247495145199355ull,
+ 2189360757527636020ull, 2693017976141119263ull}},
+ {{16968487243999575170ull, 561065295221947578ull,
+ 16571759002191708738ull, 3366272470176399078ull}},
+ {{11987237018144693155ull, 9924703655882210281ull,
+ 11491326715884860114ull, 4207840587720498848ull}},
+ {{574494108699351366ull, 10814625803353769330ull,
+ 7182079197428037571ull, 2629900367325311780ull}},
+ {{9941489672728965015ull, 8906596235764823758ull,
+ 8977598996785046964ull, 3287375459156639725ull}},
+ {{3203490054056430461ull, 11133245294706029698ull,
+ 15833684764408696609ull, 4109219323945799656ull}},
+ {{6613867302212656942ull, 40749281550186705ull, 9896052977755435381ull,
+ 2568262077466124785ull}},
+ {{12879020146193209082ull, 4662622620365121285ull,
+ 16981752240621682130ull, 3210327596832655981ull}},
+ {{2263717127459347640ull, 15051650312311177415ull,
+ 7392132245494938950ull, 4012909496040819977ull}},
+ {{8332352232303174131ull, 4795595426767097980ull,
+ 16149297699502806604ull, 2508068435025512485ull}},
+ {{10415440290378967664ull, 5994494283458872475ull,
+ 6351564069096344543ull, 3135085543781890607ull}},
+ {{8407614344546321676ull, 2881431835896202690ull,
+ 3327769067943042775ull, 3918856929727363259ull}},
+ {{9866444983768838951ull, 8718423925076208537ull,
+ 18220756731960259398ull, 2449285581079602036ull}},
+ {{16944742248138436593ull, 1674657869490484863ull,
+ 4329201841240772632ull, 3061606976349502546ull}},
+ {{16569241791745657837ull, 2093322336863106079ull,
+ 14634874338405741598ull, 3827008720436878182ull}},
+ {{17273305147482118005ull, 15143384515821605011ull,
+ 4535110443076200594ull, 2391880450273048864ull}},
+ {{16979945415925259602ull, 9705858607922230456ull,
+ 5668888053845250743ull, 2989850562841311080ull}},
+ {{2778187696197022886ull, 7520637241475400167ull,
+ 7086110067306563429ull, 3737313203551638850ull}},
+ {{8653896337764221160ull, 7006241285135819056ull,
+ 9040504810493990047ull, 2335820752219774281ull}},
+ {{10817370422205276450ull, 4146115587992385916ull,
+ 15912317031544875463ull, 2919775940274717851ull}},
+ {{13521713027756595562ull, 570958466563094491ull,
+ 15278710271003706425ull, 3649719925343397314ull}},
+ {{12290455266268356548ull, 5325384101631256018ull,
+ 9875015801899857223ull, 4562149906679246643ull}},
+ {{12293220559845110747ull, 10245894091160616867ull,
+ 3866041866973716812ull, 2851343691674529152ull}},
+ {{10754839681379000529ull, 12807367613950771084ull,
+ 4832552333717146015ull, 3564179614593161440ull}},
+ {{13443549601723750662ull, 11397523499011075951ull,
+ 6040690417146432519ull, 4455224518241451800ull}},
+ {{15319747528718426020ull, 14040981214523004325ull,
+ 3775431510716520324ull, 2784515323900907375ull}},
+ {{5314626355615868813ull, 17551226518153755407ull,
+ 107603369968262501ull, 3480644154876134219ull}},
+ {{2031596926092448112ull, 8103975092410030547ull,
+ 13969562267742491839ull, 4350805193595167773ull}},
+ {{17410649143303637734ull, 11982513460397350947ull,
+ 11036819426552751351ull, 2719253245996979858ull}},
+ {{17151625410702159263ull, 10366455807069300780ull,
+ 4572652246336163381ull, 3399066557496224823ull}},
+ {{2992787689668147463ull, 17569755777264013880ull,
+ 1104129289492816322ull, 4248833196870281029ull}},
+ {{1870492306042592165ull, 15592783379217396579ull,
+ 2995923815146704153ull, 2655520748043925643ull}},
+ {{16173173437835403918ull, 5655921168739582011ull,
+ 17579962824215543904ull, 3319400935054907053ull}},
+ {{15604780778866866993ull, 7069901460924477514ull,
+ 8139895474987266168ull, 4149251168818633817ull}},
+ {{14364674005219179775ull, 4418688413077798446ull,
+ 16616649717935511115ull, 2593281980511646135ull}},
+ {{8732470469669198910ull, 911674497919860154ull,
+ 16159126128992000990ull, 3241602475639557669ull}},
+ {{1692216050231722830ull, 10362965159254601001ull,
+ 6363849605957837525ull, 4052003094549447087ull}},
+ {{12586850077463296529ull, 8782696233747819577ull,
+ 10894935031364730309ull, 2532501934093404429ull}},
+ {{1898504541546956949ull, 15590056310612162376ull,
+ 18230354807633300790ull, 3165627417616755536ull}},
+ {{2373130676933696186ull, 10264198351410427162ull,
+ 4341199435832074372ull, 3957034272020944421ull}},
+ {{6094892691510948020ull, 15638496006486292784ull,
+ 5019092656608740434ull, 2473146420013090263ull}},
+ {{7618615864388685025ull, 10324747971253090172ull,
+ 1662179802333537639ull, 3091433025016362829ull}},
+ {{9523269830485856282ull, 8294248945638974811ull,
+ 6689410771344309953ull, 3864291281270453536ull}},
+ {{3646200634839966224ull, 16713120637092829017ull,
+ 4180881732090193720ull, 2415182050794033460ull}},
+ {{9169436811977345684ull, 2444656722656484655ull,
+ 5226102165112742151ull, 3018977563492541825ull}},
+ {{6850109996544294201ull, 16890878958602769531ull,
+ 11144313724818315592ull, 3773721954365677281ull}},
+ {{1975475738626489924ull, 10556799349126730957ull, 47667050370365389ull,
+ 2358576221478548301ull}},
+ {{7081030691710500309ull, 17807685204835801600ull,
+ 4671269831390344640ull, 2948220276848185376ull}},
+ {{8851288364638125386ull, 3812862432335200384ull,
+ 5839087289237930801ull, 3685275346060231720ull}},
+ {{11064110455797656732ull, 9377764058846388384ull,
+ 7298859111547413501ull, 4606594182575289650ull}},
+ {{6915069034873535458ull, 8166945545992686692ull,
+ 9173472963144521342ull, 2879121364109556031ull}},
+ {{8643836293591919322ull, 985309895636082557ull, 6855155185503263774ull,
+ 3598901705136945039ull}},
+ {{15416481385417287056ull, 10455009406399879004ull,
+ 3957257963451691813ull, 4498627131421181299ull}},
+ {{411928829031028602ull, 8840223888213618330ull, 167443217943613431ull,
+ 2811641957138238312ull}},
+ {{9738283073143561561ull, 6438593841839635008ull, 209304022429516789ull,
+ 3514552446422797890ull}},
+ {{12172853841429451951ull, 12659928320726931664ull,
+ 9485002064891671794ull, 4393190558028497362ull}},
+ {{7608033650893407470ull, 12524141218881720194ull,
+ 10539812308984682775ull, 2745744098767810851ull}},
+ {{286670026761983529ull, 11043490505174762339ull,
+ 8563079367803465565ull, 3432180123459763564ull}},
+ {{14193395588734643123ull, 18416049149895840827ull,
+ 10703849209754331956ull, 4290225154324704455ull}},
+ {{6565029233745458000ull, 2286658681830124709ull,
+ 13607434783737539329ull, 2681390721452940284ull}},
+ {{12817972560609210404ull, 7470009370715043790ull,
+ 17009293479671924161ull, 3351738401816175355ull}},
+ {{6799093663906737197ull, 13949197731821192642ull,
+ 16649930831162517297ull, 4189673002270219194ull}},
+ {{8861119558369098652ull, 1800719554747163545ull,
+ 15017892787903961215ull, 2618545626418886996ull}},
+ {{15688085466388761219ull, 16085957498716118143ull,
+ 325621911170399902ull, 3273182033023608746ull}},
+ {{14998420814558563620ull, 10884074836540371871ull,
+ 9630399425817775686ull, 4091477541279510932ull}},
+ {{16291542036740184118ull, 2190860754410344515ull,
+ 15242371677990885612ull, 2557173463299694332ull}},
+ {{15752741527497842244ull, 2738575943012930644ull,
+ 606220523779055399ull, 3196466829124617916ull}},
+ {{1244182835662751189ull, 17258277984048327018ull,
+ 757775654723819248ull, 3995583536405772395ull}},
+ {{5389300290716607397ull, 10786423740030204386ull,
+ 16614510848698244694ull, 2497239710253607746ull}},
+ {{15959997400250535054ull, 4259657638182979674ull,
+ 11544766524018030060ull, 3121549637817009683ull}},
+ {{10726624713458393010ull, 5324572047728724593ull,
+ 9819272136595149671ull, 3901937047271262104ull}},
+ {{18233355491979965391ull, 10245386557471534726ull,
+ 6137045085371968544ull, 2438710654544538815ull}},
+ {{13568322328120180931ull, 12806733196839418408ull,
+ 3059620338287572776ull, 3048388318180673519ull}},
+ {{16960402910150226164ull, 16008416496049273010ull,
+ 17659583478141629682ull, 3810485397725841898ull}},
+ {{15211937837271279256ull, 14616946328458183535ull,
+ 15648925692265906455ull, 2381553373578651186ull}},
+ {{14403236278161711166ull, 13659496892145341515ull,
+ 10337785078477607261ull, 2976941716973313983ull}},
+ {{13392359329274751054ull, 3239313059899513182ull,
+ 8310545329669621173ull, 3721177146216642479ull}},
+ {{3758538562369331505ull, 4330413671650889691ull,
+ 12111619858684595089ull, 2325735716385401549ull}},
+ {{86487184534276477ull, 10024703107991000018ull, 1304466768073580149ull,
+ 2907169645481751937ull}},
+ {{9331481017522621404ull, 17142564903416137926ull,
+ 6242269478519363090ull, 3633962056852189921ull}},
+ {{2440979235048500947ull, 12204834092415396600ull,
+ 12414522866576591767ull, 4542452571065237401ull}},
+ {{1525612021905313092ull, 14545550335400704731ull,
+ 841547763969287998ull, 2839032856915773376ull}},
+ {{15742073082663805077ull, 8958565882396105105ull,
+ 1051934704961609998ull, 3548791071144716720ull}},
+ {{5842533298047592634ull, 1974835316140355574ull,
+ 1314918381202012498ull, 4435988838930895900ull}},
+ {{17486641366561909109ull, 5845958091015110137ull,
+ 10045196025106033619ull, 2772493024331809937ull}},
+ {{8023243652920222674ull, 2695761595341499768ull,
+ 17168181049809929928ull, 3465616280414762421ull}},
+ {{10029054566150278342ull, 3369701994176874710ull,
+ 7625168256980248698ull, 4332020350518453027ull}},
+ {{1656473085416536060ull, 6717749764787934598ull,
+ 2459887151398961484ull, 2707512719074033142ull}},
+ {{11293963393625445883ull, 8397187205984918247ull,
+ 12298230976103477663ull, 3384390898842541427ull}},
+ {{9505768223604419449ull, 5884797989053759905ull,
+ 10761102701701959175ull, 4230488623553176784ull}},
+ {{17470320185821231916ull, 10595527770799681796ull,
+ 6725689188563724484ull, 2644055389720735490ull}},
+ {{3391156158566988279ull, 13244409713499602246ull,
+ 17630483522559431413ull, 3305069237150919362ull}},
+ {{13462317235063511156ull, 2720454086592339095ull,
+ 12814732366344513459ull, 4131336546438649203ull}},
+ {{15331477299555776329ull, 17841184868616069598ull,
+ 5703364719751626959ull, 2582085341524155752ull}},
+ {{9940974587589944603ull, 17689795067342699094ull,
+ 7129205899689533699ull, 3227606676905194690ull}},
+ {{3202846197632654946ull, 17500557815750985964ull,
+ 18134879411466692932ull, 4034508346131493362ull}},
+ {{11225150910375185149ull, 1714476597989590419ull,
+ 15945985650594070987ull, 2521567716332183351ull}},
+ {{9419752619541593532ull, 15978153802769151736ull,
+ 15320796044815200829ull, 3151959645415229189ull}},
+ {{11774690774426991915ull, 6137634198179275958ull,
+ 5315937000736837325ull, 3939949556769036487ull}},
+ {{2747495715589482043ull, 6141864383075741426ull,
+ 10239989653101605184ull, 2462468472980647804ull}},
+ {{12657741681341628362ull, 7677330478844676782ull,
+ 12799987066377006480ull, 3078085591225809755ull}},
+ {{6598805064822259644ull, 9596663098555845978ull,
+ 11388297814543870196ull, 3847606989032262194ull}},
+ {{8735939183941300182ull, 15221286473452179544ull,
+ 11729372152517306776ull, 2404754368145163871ull}},
+ {{10919923979926625227ull, 579864018105672814ull,
+ 10050029172219245567ull, 3005942960181454839ull}},
+ {{4426532938053505726ull, 14559888077914254730ull,
+ 7950850446846669054ull, 3757428700226818549ull}},
+ {{7378269104710828983ull, 4488244030269021302ull,
+ 7275124538492862111ull, 2348392937641761593ull}},
+ {{18446208417743312037ull, 998619019408888723ull,
+ 13705591691543465543ull, 2935491172052201991ull}},
+ {{18446074503751752142ull, 15083331829543274616ull,
+ 12520303596001944024ull, 3669363965065252489ull}},
+ {{4610849055980138561ull, 407420713219541655ull, 1815321439720266319ull,
+ 4586704956331565612ull}},
+ {{9799309687628668457ull, 7172166973403295390ull,
+ 10357947936679942257ull, 2866690597707228507ull}},
+ {{3025765072681059763ull, 13576894735181507142ull,
+ 8335748902422539917ull, 3583363247134035634ull}},
+ {{13005578377706100511ull, 3136060363694720215ull,
+ 1196314091173399089ull, 4479204058917544543ull}},
+ {{15046015513707394676ull, 13489252773377669894ull,
+ 7665225334624456286ull, 2799502536823465339ull}},
+ {{9584147355279467537ull, 7638193929867311560ull,
+ 4969845649853182454ull, 3499378171029331674ull}},
+ {{11980184194099334421ull, 324370375479363642ull,
+ 15435679099171253876ull, 4374222713786664592ull}},
+ {{12099301139739471917ull, 9426103521529378084ull,
+ 9647299436982033672ull, 2733889196116665370ull}},
+ {{15124126424674339896ull, 11782629401911722605ull,
+ 2835752259372766282ull, 3417361495145831713ull}},
+ {{5070099975560761158ull, 5504914715534877449ull,
+ 8156376342643345757ull, 4271701868932289641ull}},
+ {{14698027530793945484ull, 5746414706422992357ull,
+ 16626950260220560858ull, 2669813668082681025ull}},
+ {{4537476358210268143ull, 16406390419883516255ull,
+ 6948629769993537360ull, 3337267085103351282ull}},
+ {{1060159429335447274ull, 2061243951144843703ull,
+ 17909159249346697509ull, 4171583856379189102ull}},
+ {{7580128670975736403ull, 3594120478679221266ull,
+ 6581538512414298039ull, 2607239910236993189ull}},
+ {{251788801864894695ull, 18327708653631190295ull,
+ 12838609158945260452ull, 3259049887796241486ull}},
+ {{14149794057613282081ull, 4462891743329436252ull,
+ 6824889411826799758ull, 4073812359745301858ull}},
+ {{18066993322863077109ull, 16624365394863061369ull,
+ 8877241900819137752ull, 2546132724840813661ull}},
+ {{8748683598296682674ull, 2333712669869275096ull,
+ 15708238394451310095ull, 3182665906051017076ull}},
+ {{10935854497870853342ull, 16752198892618757582ull,
+ 1188553919354586002ull, 3978332382563771346ull}},
+ {{2223223042741895435ull, 15081810326314111393ull,
+ 5354532218024004155ull, 2486457739102357091ull}},
+ {{7390714821854757198ull, 14240576889465251337ull,
+ 2081479254102617290ull, 3108072173877946364ull}},
+ {{13850079545745834401ull, 8577349074976788363ull,
+ 2601849067628271613ull, 3885090217347432955ull}},
+ {{6350456706877452549ull, 7666686181074186679ull,
+ 17767056731763527422ull, 2428181385842145596ull}},
+ {{3326384865169427782ull, 359985689487957541ull, 3762076840994857662ull,
+ 3035226732302681996ull}},
+ {{8769667099889172631ull, 9673354148714722734ull,
+ 4702596051243572077ull, 3794033415378352495ull}},
+ {{869355919003344991ull, 8351689352160395661ull, 9856651559668314404ull,
+ 2371270884611470309ull}},
+ {{5698380917181569142ull, 10439611690200494576ull,
+ 16932500468012780909ull, 2964088605764337886ull}},
+ {{7122976146476961428ull, 17661200631178006124ull,
+ 11942253548161200328ull, 3705110757205422358ull}},
+ {{13675232128402876700ull, 11038250394486253827ull,
+ 2852222449173362301ull, 2315694223253388974ull}},
+ {{12482354142076207971ull, 18409499011535205188ull,
+ 12788650098321478684ull, 2894617779066736217ull}},
+ {{15602942677595259964ull, 4565129690709454869ull,
+ 2150754567619684644ull, 3618272223833420272ull}},
+ {{5668620291711911243ull, 5706412113386818587ull,
+ 2688443209524605805ull, 4522840279791775340ull}},
+ {{1237044673106250575ull, 5872350580080455569ull,
+ 10903649042807654436ull, 2826775174869859587ull}},
+ {{6157991859810201123ull, 7340438225100569461ull,
+ 9017875285082180141ull, 3533468968587324484ull}},
+ {{12309175843190139307ull, 13787233799803099730ull,
+ 11272344106352725176ull, 4416836210734155605ull}},
+ {{12304920920421224971ull, 8617021124876937331ull,
+ 9351058075684147187ull, 2760522631708847253ull}},
+ {{10769465132099143310ull, 6159590387668783760ull,
+ 16300508613032571888ull, 3450653289636059066ull}},
+ {{13461831415123929137ull, 7699487984585979700ull,
+ 11152263729435939052ull, 4313316612045073833ull}},
+ {{17637016671307231519ull, 14035552027221013120ull,
+ 52635803256380051ull, 2695822882528171146ull}},
+ {{3599526765424487783ull, 12932754015598878497ull,
+ 9289166790925250872ull, 3369778603160213932ull}},
+ {{9111094475207997632ull, 16165942519498598121ull,
+ 11611458488656563590ull, 4212223253950267415ull}},
+ {{17223649093073468280ull, 5492028056259235921ull,
+ 14174690583051434100ull, 2632639533718917134ull}},
+ {{7694503311059671638ull, 6865035070324044902ull,
+ 8494991191959516817ull, 3290799417148646418ull}},
+ {{394757101969813740ull, 13192979856332444032ull,
+ 1395366953094620213ull, 4113499271435808023ull}},
+ {{246723188731133588ull, 10551455419421471472ull,
+ 7789633373325219489ull, 2570937044647380014ull}},
+ {{308403985913916984ull, 17801005292704227244ull, 513669679801748553ull,
+ 3213671305809225018ull}},
+ {{385504982392396230ull, 8416198560598120343ull, 9865459136606961500ull,
+ 4017089132261531272ull}},
+ {{7158469641636329500ull, 14483496137228601022ull,
+ 6165911960379350937ull, 2510680707663457045ull}},
+ {{18171459088900187683ull, 4269312116253587565ull,
+ 12319075968901576576ull, 3138350884579321306ull}},
+ {{8879265805843070892ull, 5336640145316984457ull,
+ 6175472924272194912ull, 3922938605724151633ull}},
+ {{17078756174720389067ull, 3335400090823115285ull,
+ 15388885623738591580ull, 2451836628577594770ull}},
+ {{7513387163118322622ull, 4169250113528894107ull,
+ 10012734992818463667ull, 3064795785721993463ull}},
+ {{4780047935470515374ull, 599876623483729730ull, 7904232722595691680ull,
+ 3830994732152491829ull}},
+ {{7599215978096460013ull, 374922889677331081ull, 7245988460836001252ull,
+ 2394371707595307393ull}},
+ {{14110705991047962920ull, 468653612096663851ull,
+ 13669171594472389469ull, 2992964634494134241ull}},
+ {{13026696470382565746ull, 5197503033548217718ull,
+ 3251406437808323124ull, 3741205793117667802ull}},
+ {{3529999275561715687ull, 12471811432822411882ull,
+ 6643815042057589856ull, 2338253620698542376ull}},
+ {{13635871131306920417ull, 15589764291028014852ull,
+ 8304768802571987320ull, 2922817025873177970ull}},
+ {{17044838914133650521ull, 1040461290075466949ull,
+ 1157588966360208343ull, 3653521282341472463ull}},
+ {{7470990587384899439ull, 15135634667876497399ull,
+ 15282044263232424140ull, 4566901602926840578ull}},
+ {{11586898144756644006ull, 236399630568035066ull,
+ 14162963682947652992ull, 2854313501829275361ull}},
+ {{5260250644091029199ull, 295499538210043833ull, 3868646548402402528ull,
+ 3567891877286594202ull}},
+ {{11186999323541174402ull, 369374422762554791ull,
+ 14059180222357778968ull, 4459864846608242752ull}},
+ {{13909403604854315858ull, 230859014226596744ull,
+ 8786987638973611855ull, 2787415529130151720ull}},
+ {{17386754506067894822ull, 14123631823065409642ull,
+ 10983734548717014818ull, 3484269411412689650ull}},
+ {{12510071095730092719ull, 8431167741976986245ull,
+ 4506296149041492715ull, 4355336764265862063ull}},
+ {{10124637444045001902ull, 2963636829521922451ull,
+ 9733964120792014803ull, 2722085477666163789ull}},
+ {{8044110786628864473ull, 17539604092184566776ull,
+ 16779141169417406407ull, 3402606847082704736ull}},
+ {{10055138483286080591ull, 17312819096803320566ull,
+ 2527182388062206393ull, 4253258558853380921ull}},
+ {{1672775533626412466ull, 3902982907860993498ull,
+ 13108704038607348756ull, 2658286599283363075ull}},
+ {{11314341453887791390ull, 4878728634826241872ull,
+ 11774194029831798041ull, 3322858249104203844ull}},
+ {{14142926817359739237ull, 10710096811960190244ull,
+ 14717742537289747551ull, 4153572811380254805ull}},
+ {{18062701297704612832ull, 13611339535116200758ull,
+ 11504432095019786171ull, 2595983007112659253ull}},
+ {{13355004585275990231ull, 12402488400467863044ull,
+ 545482063492569002ull, 3244978758890824067ull}},
+ {{16693755731594987789ull, 6279738463730052997ull,
+ 14516910634647874965ull, 4056223448613530083ull}},
+ {{12739440341460561320ull, 6230679549044977075ull,
+ 6767226137441227901ull, 2535139655383456302ull}},
+ {{11312614408398313746ull, 12400035454733609248ull,
+ 17682404708656310684ull, 3168924569229320377ull}},
+ {{14140768010497892183ull, 15500044318417011560ull,
+ 8267947830538224643ull, 3961155711536650472ull}},
+ {{8837980006561182614ull, 7381684689796938273ull,
+ 5167467394086390402ull, 2475722319710406545ull}},
+ {{15659161026628866172ull, 3733825391397033ull, 11071020261035375907ull,
+ 3094652899638008181ull}},
+ {{5738893228003919003ull, 13839725337021410004ull, 3717271012056171ull,
+ 3868316124547510227ull}},
+ {{12810180304357225185ull, 6343985326424687300ull,
+ 16143224358878392771ull, 2417697577842193891ull}},
+ {{16012725380446531481ull, 3318295639603471221ull,
+ 15567344430170603060ull, 3022121972302742364ull}},
+ {{6180848670276000639ull, 4147869549504339027ull,
+ 1012436464003702209ull, 3777652465378427956ull}},
+ {{1557187409708806448ull, 14121633514508681652ull,
+ 9856144826857089688ull, 2361032790861517472ull}},
+ {{1946484262136008059ull, 17652041893135852065ull,
+ 12320181033571362110ull, 2951290988576896840ull}},
+ {{7044791346097397978ull, 12841680329565039273ull,
+ 15400226291964202638ull, 3689113735721121050ull}},
+ {{13417675201049135377ull, 6828728375101523283ull,
+ 10026910828100477490ull, 4611392169651401313ull}},
+ {{6080203991442015659ull, 8879641252865839956ull,
+ 17796034313631268191ull, 2882120106032125820ull}},
+ {{7600254989302519573ull, 6487865547654912041ull,
+ 3798298818329533623ull, 3602650132540157276ull}},
+ {{14112004755055537370ull, 3498145916141252147ull,
+ 4747873522911917029ull, 4503312665675196595ull}},
+ {{6514159962696016905ull, 4492184206801976544ull, 661577942606254191ull,
+ 2814570416046997872ull}},
+ {{8142699953370021131ull, 1003544240075082776ull, 826972428257817739ull,
+ 3518213020058747340ull}},
+ {{10178374941712526413ull, 15089488355376017182ull,
+ 1033715535322272173ull, 4397766275073434175ull}},
+ {{1749798320142941104ull, 11736773231323704691ull,
+ 7563601237217501964ull, 2748603921920896359ull}},
+ {{16022305955460840092ull, 14670966539154630863ull,
+ 4842815528094489551ull, 3435754902401120449ull}},
+ {{15416196425898662211ull, 13727022155515900675ull,
+ 10665205428545499843ull, 4294693628001400561ull}},
+ {{7329279756972969930ull, 6273545837983743970ull,
+ 18194968438909407162ull, 2684183517500875350ull}},
+ {{18384971733070988221ull, 17065304334334455770ull,
+ 13520338511781983144ull, 3355229396876094188ull}},
+ {{13757842629483959468ull, 2884886344208518097ull,
+ 16900423139727478931ull, 4194036746095117735ull}},
+ {{1681122615786392812ull, 17943955029626181475ull,
+ 17480293489970756187ull, 2621272966309448584ull}},
+ {{15936461325015154726ull, 17818257768605338939ull,
+ 3403622788753893618ull, 3276591207886810731ull}},
+ {{15308890637841555504ull, 13049450173901897866ull,
+ 18089586541224530735ull, 4095739009858513413ull}},
+ {{14179742667078360094ull, 15073435386329768022ull,
+ 13611834597479025661ull, 2559836881161570883ull}},
+ {{8501306296993174309ull, 5006736177630046316ull,
+ 12403107228421394173ull, 3199796101451963604ull}},
+ {{10626632871241467887ull, 10870106240464945799ull,
+ 15503884035526742716ull, 3999745126814954505ull}},
+ {{13559174572166999285ull, 16017188437145366932ull,
+ 2772398494563132341ull, 2499840704259346566ull}},
+ {{16948968215208749107ull, 6186427491149544953ull,
+ 12688870155058691235ull, 3124800880324183207ull}},
+ {{7351152213728772671ull, 3121348345509543288ull,
+ 11249401675395976140ull, 3906001100405229009ull}},
+ {{4594470133580482920ull, 11174214752798240363ull,
+ 113347019481403231ull, 2441250687753268131ull}},
+ {{1131401648548215745ull, 9356082422570412550ull,
+ 13976741829633917751ull, 3051563359691585163ull}},
+ {{10637624097540045490ull, 7083417009785627783ull,
+ 12859241268615009285ull, 3814454199614481454ull}},
+ {{13566044088603610287ull, 6732978640329711316ull,
+ 3425339774456992899ull, 2384033874759050909ull}},
+ {{16957555110754512859ull, 3804537281984751241ull,
+ 8893360736498629028ull, 2980042343448813636ull}},
+ {{7361885833160977361ull, 4755671602480939052ull,
+ 11116700920623286285ull, 3725052929311017045ull}},
+ {{13824550682580386659ull, 5278137760764280859ull,
+ 9253781084603247880ull, 2328158080819385653ull}},
+ {{12669002334798095420ull, 6597672200955351074ull,
+ 16178912374181447754ull, 2910197601024232066ull}},
+ {{6612880881642843467ull, 17470462288048964651ull,
+ 11000268430872033884ull, 3637747001280290083ull}},
+ {{3654415083626166429ull, 3391333786351654198ull,
+ 9138649520162654452ull, 4547183751600362604ull}},
+ {{16119067482548517730ull, 11342955653324559681ull,
+ 14935027986956434840ull, 2841989844750226627ull}},
+ {{6313776297903483451ull, 14178694566655699602ull,
+ 14057098965268155646ull, 3552487305937783284ull}},
+ {{17115592409234130121ull, 8499996171464848694ull,
+ 17571373706585194558ull, 4440609132422229105ull}},
+ {{6085559237343943422ull, 700811588738142530ull, 4064579538974664743ull,
+ 2775380707763893191ull}},
+ {{16830321083534705085ull, 14711072541204841874ull,
+ 469038405290943024ull, 3469225884704866489ull}},
+ {{11814529317563605549ull, 18388840676506052343ull,
+ 5197984025041066684ull, 4336532355881083111ull}},
+ {{14301609851118335324ull, 2269653385961506906ull,
+ 10166269043291748534ull, 2710332722425676944ull}},
+ {{8653640277043143347ull, 12060438769306659441ull,
+ 12707836304114685667ull, 3387915903032096180ull}},
+ {{15428736364731317088ull, 10463862443205936397ull,
+ 15884795380143357084ull, 4234894878790120225ull}},
+ {{11948803237170767132ull, 15763286063858486056ull,
+ 3010468084948516321ull, 2646809299243825141ull}},
+ {{14936004046463458915ull, 5869049524540943858ull,
+ 8374771124613033306ull, 3308511624054781426ull}},
+ {{9446633021224547835ull, 16559683942530955631ull,
+ 1245091868911515824ull, 4135639530068476783ull}},
+ {{12821674665906424253ull, 10349802464081847269ull,
+ 7695711445710779246ull, 2584774706292797989ull}},
+ {{2192035277100866605ull, 3713881043247533279ull,
+ 14231325325565861962ull, 3230968382865997486ull}},
+ {{16575102151658246968ull, 13865723340914192406ull,
+ 8565784620102551644ull, 4038710478582496858ull}},
+ {{5747752826359016451ull, 17889449124926146062ull,
+ 9965301405991482681ull, 2524194049114060536ull}},
+ {{16408063069803546371ull, 8526753350875518865ull,
+ 12456626757489353352ull, 3155242561392575670ull}},
+ {{6675020781972269252ull, 10658441688594398582ull,
+ 6347411410006915882ull, 3944053201740719588ull}},
+ {{18006946044014831995ull, 11273212073798887017ull,
+ 13190504168109098234ull, 2465033251087949742ull}},
+ {{8673624499736376281ull, 4868143055393832964ull,
+ 7264758173281596985ull, 3081291563859937178ull}},
+ {{10842030624670470352ull, 10696864837669679109ull,
+ 18304319753456772039ull, 3851614454824921472ull}},
+ {{9082112149632737922ull, 13603069551184631299ull,
+ 11440199845910482524ull, 2407259034265575920ull}},
+ {{6740954168613534498ull, 17003836938980789124ull,
+ 14300249807388103155ull, 3009073792831969900ull}},
+ {{8426192710766918123ull, 16643110155298598501ull,
+ 17875312259235128944ull, 3761342241039962375ull}},
+ {{7572213453443017779ull, 10401943847061624063ull,
+ 18089599189663037446ull, 2350838900649976484ull}},
+ {{4853580798376384320ull, 3779057771972254271ull,
+ 4165254913369245192ull, 2938548625812470606ull}},
+ {{1455289979543092495ull, 4723822214965317839ull,
+ 14429940678566332298ull, 3673185782265588257ull}},
+ {{15654170529711029331ull, 15128149805561423106ull,
+ 4202367792925751660ull, 4591482227831985322ull}},
+ {{14395542599496781236ull, 231721591621113633ull,
+ 7238165889005982692ull, 2869676392394990826ull}},
+ {{4159370194088812833ull, 289651989526392042ull,
+ 18271079398112254173ull, 3587095490493738532ull}},
+ {{14422584779465791849ull, 4973751005335377956ull,
+ 4392105173930766100ull, 4483869363117173166ull}},
+ {{18237487524020895714ull, 12331966415189387030ull,
+ 16580123788988892524ull, 2802418351948233228ull}},
+ {{13573487368171343834ull, 15414958018986733788ull,
+ 2278410662526564039ull, 3503022939935291536ull}},
+ {{16966859210214179793ull, 14657011505306029331ull,
+ 2848013328158205049ull, 4378778674919114420ull}},
+ {{8298443997170168419ull, 2243103163175186476ull,
+ 11003380366953653964ull, 2736736671824446512ull}},
+ {{10373054996462710523ull, 2803878953968983095ull,
+ 13754225458692067455ull, 3420920839780558140ull}},
+ {{8354632727151000250ull, 17339906747743392581ull,
+ 17192781823365084318ull, 4276151049725697675ull}},
+ {{7527488463683069108ull, 6225755698912232459ull,
+ 8439645630389483747ull, 2672594406078561047ull}},
+ {{4797674561176448481ull, 3170508605212902670ull,
+ 5937871019559466780ull, 3340743007598201309ull}},
+ {{15220465238325336409ull, 3963135756516128337ull,
+ 12034024792876721379ull, 4175928759497751636ull}},
+ {{2595261746312253400ull, 171116838608886259ull,
+ 16744637532402726670ull, 2609955474686094772ull}},
+ {{17079135238172480462ull, 9437268085115883631ull,
+ 2484052841793856721ull, 3262444343357618466ull}},
+ {{16737233029288212673ull, 16408271124822242443ull,
+ 12328438089097096709ull, 4078055429197023082ull}},
+ {{8154927634091438969ull, 12561012462227595479ull,
+ 12316959824113073347ull, 2548784643248139426ull}},
+ {{5581973524186910807ull, 11089579559357106445ull,
+ 6172827743286565876ull, 3185980804060174283ull}},
+ {{11589152923661026413ull, 13861974449196383056ull,
+ 3104348660680819441ull, 3982476005075217854ull}},
+ {{7243220577288141508ull, 1746205003106657554ull,
+ 15775275968207675863ull, 2489047503172011158ull}},
+ {{18277397758464952693ull, 16017814309165485654ull,
+ 10495722923404819020ull, 3111309378965013948ull}},
+ {{13623375161226415058ull, 1575523812747305452ull,
+ 13119653654256023776ull, 3889136723706267435ull}},
+ {{17737981512621285220ull, 984702382967065907ull,
+ 5893940524696320908ull, 2430710452316417147ull}},
+ {{17560790872349218620ull, 1230877978708832384ull,
+ 2755739637443013231ull, 3038388065395521434ull}},
+ {{3504244516726971659ull, 15373655528668204193ull,
+ 12668046583658542346ull, 3797985081744401792ull}},
+ {{13719367869022827047ull, 14220220723845015524ull,
+ 7917529114786588966ull, 2373740676090251120ull}},
+ {{17149209836278533809ull, 8551903867951493597ull,
+ 9896911393483236208ull, 2967175845112813900ull}},
+ {{7601454240066003549ull, 10689879834939366997ull,
+ 12371139241854045260ull, 3708969806391017375ull}},
+ {{7056751909254946170ull, 15904546933691880181ull,
+ 14649491053799860143ull, 2318106128994385859ull}},
+ {{13432625904996070617ull, 15268997648687462322ull,
+ 13700177798822437275ull, 2897632661242982324ull}},
+ {{7567410344390312463ull, 14474561042431939999ull,
+ 17125222248528046594ull, 3622040826553727905ull}},
+ {{4847576912060502675ull, 8869829266185149191ull,
+ 7571469755377894531ull, 4527551033192159882ull}},
+ {{9947264597678896028ull, 3237800282152024292ull,
+ 9343854615538571986ull, 2829719395745099926ull}},
+ {{12434080747098620035ull, 13270622389544806173ull,
+ 2456446232568439174ull, 3537149244681374908ull}},
+ {{1707542878591111331ull, 7364905950076231909ull,
+ 3070557790710548968ull, 4421436555851718635ull}},
+ {{3373057308333138534ull, 4603066218797644943ull,
+ 18059999683689950769ull, 2763397847407324146ull}},
+ {{18051379690698586880ull, 10365518791924444082ull,
+ 13351627567757662653ull, 3454247309259155183ull}},
+ {{13340852576518457791ull, 17568584508332943007ull,
+ 12077848441269690412ull, 4317809136573943979ull}},
+ {{15255561887965117976ull, 1756993280853313571ull,
+ 5242812266579862556ull, 2698630710358714987ull}},
+ {{14457766341529009566ull, 2196241601066641964ull,
+ 1941829314797440291ull, 3373288387948393734ull}},
+ {{18072207926911261957ull, 16580360056615466167ull,
+ 11650658680351576171ull, 4216610484935492167ull}},
+ {{18212658981960620579ull, 8056882026170972402ull,
+ 14199190702860816963ull, 2635381553084682604ull}},
+ {{13542451690595999916ull, 5459416514286327599ull,
+ 17748988378576021204ull, 3294226941355853255ull}},
+ {{12316378594817611991ull, 6824270642857909499ull,
+ 17574549454792638601ull, 4117783676694816569ull}},
+ {{5391893612547313542ull, 15794384197854663197ull,
+ 4066564381604317269ull, 2573614797934260356ull}},
+ {{11351553034111529832ull, 5907922192036165284ull,
+ 5083205477005396587ull, 3217018497417825445ull}},
+ {{14189441292639412290ull, 2773216721617818701ull,
+ 10965692864684133638ull, 4021273121772281806ull}},
+ {{11174243817113326633ull, 15568318506293300400ull,
+ 2241872022000195619ull, 2513295701107676129ull}},
+ {{13967804771391658291ull, 14848712114439237596ull,
+ 7414026045927632428ull, 3141619626384595161ull}},
+ {{17459755964239572864ull, 114146069339495379ull,
+ 13879218575836928440ull, 3927024532980743951ull}},
+ {{8606504468436039088ull, 71341293337184612ull, 15592040637539162131ull,
+ 2454390333112964969ull}},
+ {{10758130585545048860ull, 13924234671953644477ull,
+ 5654992741641788951ull, 3067987916391206212ull}},
+ {{18059349250358698979ull, 12793607321514667692ull,
+ 7068740927052236189ull, 3834984895489007765ull}},
+ {{2063721244619411054ull, 10301847585160361260ull,
+ 6723806088621341570ull, 2396865559680629853ull}},
+ {{2579651555774263818ull, 3653937444595675767ull,
+ 13016443629204064867ull, 2996081949600787316ull}},
+ {{17059622499999993484ull, 18402479861026758420ull,
+ 16270554536505081083ull, 3745102437000984145ull}},
+ {{1438892025645220120ull, 9195706903928030061ull,
+ 3251567557674593821ull, 2340689023125615091ull}},
+ {{6410301050483913053ull, 16106319648337425480ull,
+ 17899517502375405988ull, 2925861278907018863ull}},
+ {{8012876313104891317ull, 1686155486712230234ull,
+ 17762710859541869582ull, 3657326598633773579ull}},
+ {{792723354526338338ull, 11331066395245063601ull,
+ 17591702555999949073ull, 4571658248292216974ull}},
+ {{12024667142647431221ull, 164387469387082894ull,
+ 6383128079072580267ull, 2857286405182635609ull}},
+ {{5807461891454513218ull, 14040542392016017330ull,
+ 12590596117268113237ull, 3571608006478294511ull}},
+ {{16482699401172917331ull, 3715619934737857950ull,
+ 11126559128157753643ull, 4464510008097868139ull}},
+ {{5690001107305685428ull, 16419449997467267ull, 4648256445884902075ull,
+ 2790318755061167587ull}},
+ {{2500815365704718881ull, 13855582367778997796ull,
+ 1198634538928739689ull, 3487898443826459484ull}},
+ {{3126019207130898601ull, 3484419904441583533ull,
+ 1498293173660924612ull, 4359873054783074355ull}},
+ {{4259605013670505578ull, 11401134477130765516ull,
+ 17077334298033935546ull, 2724920659239421471ull}},
+ {{5324506267088131972ull, 5028046059558681087ull,
+ 16734981854115031529ull, 3406150824049276839ull}},
+ {{2043946815432777061ull, 10896743592875739263ull,
+ 16307041299216401507ull, 4257688530061596049ull}},
+ {{8194995787286567519ull, 4504621736333643087ull,
+ 3274371784369169086ull, 2661055331288497531ull}},
+ {{5632058715680821495ull, 14854149207271829667ull,
+ 17928022785743625069ull, 3326319164110621913ull}},
+ {{2428387376173638965ull, 4732628453807623372ull,
+ 8574970426897367625ull, 4157898955138277392ull}},
+ {{10741114146963300161ull, 14487107829698234367ull,
+ 5359356516810854765ull, 2598686846961423370ull}},
+ {{8814706665276737297ull, 4273826731840629247ull,
+ 15922567682868344265ull, 3248358558701779212ull}},
+ {{6406697313168533717ull, 9953969433228174463ull,
+ 1456465529875878715ull, 4060448198377224016ull}},
+ {{10921714848371415430ull, 3915387886553915087ull,
+ 910290956172424197ull, 2537780123985765010ull}},
+ {{9040457542036881383ull, 9505920876619781763ull,
+ 10361235732070306054ull, 3172225154982206262ull}},
+ {{6688885909118713824ull, 2659029058919951396ull,
+ 3728172628233106760ull, 3965281443727757828ull}},
+ {{13403925730053971948ull, 1661893161824969622ull,
+ 11553479929500467533ull, 2478300902329848642ull}},
+ {{7531535125712689127ull, 6689052470708599932ull,
+ 5218477875020808608ull, 3097876127912310803ull}},
+ {{9414418907140861409ull, 8361315588385749915ull,
+ 1911411325348622856ull, 3872345159890388504ull}},
+ {{3578168807749344429ull, 5225822242741093697ull,
+ 1194632078342889285ull, 2420215724931492815ull}},
+ {{9084397028114068440ull, 11143963821853755025ull,
+ 15328348153210775318ull, 3025269656164366018ull}},
+ {{15967182303569973454ull, 4706582740462417973ull,
+ 9937063154658693340ull, 3781587070205457523ull}},
+ {{12285331948944927361ull, 12164986249643787041ull,
+ 3904821462447989385ull, 2363491918878410952ull}},
+ {{1521606880898995489ull, 1371174756772570090ull,
+ 4881026828059986732ull, 2954364898598013690ull}},
+ {{11125380637978520169ull, 1713968445965712612ull,
+ 15324655571929759223ull, 3692956123247517112ull}},
+ {{16176734935591350914ull, 7988759306369652238ull,
+ 9577909732456099514ull, 2308097577029698195ull}},
+ {{10997546632634412834ull, 762577096107289490ull,
+ 7360701147142736489ull, 2885121971287122744ull}},
+ {{4523561253938240235ull, 5564907388561499767ull,
+ 9200876433928420611ull, 3606402464108903430ull}},
+ {{1042765548995412389ull, 2344448217274486805ull,
+ 2277723505555749956ull, 4508003080136129288ull}},
+ {{2957571477335826695ull, 10688652172651330061ull,
+ 1423577190972343722ull, 2817501925085080805ull}},
+ {{8308650365097171273ull, 4137443178959386768ull,
+ 6391157507142817557ull, 3521877406356351006ull}},
+ {{10385812956371464091ull, 9783489992126621364ull,
+ 17212318920783297754ull, 4402346757945438757ull}},
+ {{15714505134586940865ull, 10726367263506526256ull,
+ 13063542334703255048ull, 2751466723715899223ull}},
+ {{1196387344524124465ull, 13407959079383157821ull,
+ 11717741899951680906ull, 3439333404644874029ull}},
+ {{6107170199082543486ull, 7536576812374171468ull, 812119319657437421ull,
+ 4299166755806092537ull}},
+ {{13040353411281365487ull, 7016203516947551119ull,
+ 12036789620854368148ull, 2686979222378807835ull}},
+ {{11688755745674318954ull, 8770254396184438899ull,
+ 10434301007640572281ull, 3358724027973509794ull}},
+ {{9999258663665510789ull, 15574504013657936528ull,
+ 3819504222695939543ull, 4198405034966887243ull}},
+ {{6249536664790944243ull, 16651594036177292186ull, 81347129971268262ull,
+ 2624003146854304527ull}},
+ {{17035292867843456112ull, 11591120508366839424ull,
+ 13936741967746249040ull, 3280003933567880658ull}},
+ {{2847372011094768524ull, 14488900635458549281ull,
+ 8197555422828035492ull, 4100004916959850823ull}},
+ {{13308822553002700087ull, 18278934934016369108ull,
+ 12041001166908604038ull, 2562503073099906764ull}},
+ {{16636028191253375109ull, 13625296630665685577ull,
+ 15051251458635755048ull, 3203128841374883455ull}},
+ {{6959977183784555174ull, 17031620788332106972ull,
+ 14202378304867305906ull, 4003911051718604319ull}},
+ {{13573357776720122792ull, 15256449011134954761ull,
+ 15794015468183148047ull, 2502444407324127699ull}},
+ {{3131639165617989778ull, 14458875245491305548ull,
+ 15130833316801547155ull, 3128055509155159624ull}},
+ {{3914548957022487222ull, 13461908038436744031ull,
+ 466797572292382328ull, 3910069386443949531ull}},
+ {{9364122125780136370ull, 8413692524022965019ull,
+ 16432649547178596619ull, 2443793366527468456ull}},
+ {{7093466638797782559ull, 5905429636601318370ull,
+ 2094067860263694158ull, 3054741708159335571ull}},
+ {{18090205335352004006ull, 16605159082606423770ull,
+ 16452642880611781409ull, 3818427135199169463ull}},
+ {{15918064353022390408ull, 3460695398987933000ull,
+ 17200430828023445237ull, 2386516959499480914ull}},
+ {{1450836367568436394ull, 8937555267162304155ull,
+ 12277166498174530738ull, 2983146199374351143ull}},
+ {{15648603514742709204ull, 1948572047098104385ull,
+ 10734772104290775519ull, 3728932749217938929ull}},
+ {{2862848169073111397ull, 8135386557077397097ull,
+ 18238447611250204459ull, 2330582968261211830ull}},
+ {{8190246229768777150ull, 5557547177919358467ull,
+ 13574687477207979766ull, 2913228710326514788ull}},
+ {{5626121768783583533ull, 16170306009253973892ull,
+ 16968359346509974707ull, 3641535887908143485ull}},
+ {{7032652210979479417ull, 15601196493140079461ull,
+ 7375391127855304672ull, 4551919859885179357ull}},
+ {{6701250641075868588ull, 9750747808212549663ull,
+ 6915462464123259372ull, 2844949912428237098ull}},
+ {{3764877282917447830ull, 12188434760265687079ull,
+ 17867700117008850023ull, 3556187390535296372ull}},
+ {{94410585219421884ull, 10623857431904720945ull, 3887881072551510913ull,
+ 4445234238169120466ull}},
+ {{11588221661830608438ull, 18169125941008920350ull,
+ 7041611688772082224ull, 2778271398855700291ull}},
+ {{5261905040433484739ull, 4264663352551598822ull,
+ 4190328592537714877ull, 3472839248569625364ull}},
+ {{15800753337396631731ull, 9942515209116886431ull,
+ 5237910740672143596ull, 4341049060712031705ull}},
+ {{16792999863513976688ull, 15437444042552829827ull,
+ 14802909258988559507ull, 2713155662945019815ull}},
+ {{16379563810965082956ull, 14685119034763649380ull,
+ 13891950555308311480ull, 3391444578681274769ull}},
+ {{2027710689996802079ull, 18356398793454561726ull,
+ 3529880138853225638ull, 4239305723351593462ull}},
+ {{15102377236530165012ull, 6861063227481713174ull,
+ 16041233142065429736ull, 2649566077094745913ull}},
+ {{9654599508807930456ull, 8576329034352141468ull,
+ 6216483372299623458ull, 3311957596368432392ull}},
+ {{12068249386009913070ull, 1497039256085401027ull,
+ 7770604215374529323ull, 4139946995460540490ull}},
+ {{5236812857042501717ull, 17076550599549233306ull,
+ 9468313653036468730ull, 2587466872162837806ull}},
+ {{15769388108157902954ull, 12122316212581765824ull,
+ 2612020029440810105ull, 3234333590203547258ull}},
+ {{1264991061487827077ull, 1317837210445043569ull,
+ 12488397073655788440ull, 4042916987754434072ull}},
+ {{12319834459498361683ull, 823648256528152230ull,
+ 7805248171034867775ull, 2526823117346521295ull}},
+ {{6176421037518176296ull, 14864618375942354000ull,
+ 5144874195366196814ull, 3158528896683151619ull}},
+ {{7720526296897720370ull, 9357400933073166692ull,
+ 1819406725780358114ull, 3948161120853939524ull}},
+ {{14048700972415851039ull, 10460061601598117086ull,
+ 10360501240467499629ull, 2467600700533712202ull}},
+ {{8337504178665037991ull, 17686763020425034262ull,
+ 3727254513729598728ull, 3084500875667140253ull}},
+ {{1198508186476521681ull, 3661709701821741212ull,
+ 9270754160589386315ull, 3855626094583925316ull}},
+ {{9972439653402601859ull, 18429469628134445921ull,
+ 15017593387223142254ull, 2409766309114953322ull}},
+ {{17077235585180640227ull, 13813464998313281593ull,
+ 9548619697174152010ull, 3012207886393691653ull}},
+ {{7511486426193636572ull, 8043459211036826184ull,
+ 16547460639895077917ull, 3765259857992114566ull}},
+ {{4694679016371022858ull, 7333005016111710317ull,
+ 5730476881507035794ull, 2353287411245071604ull}},
+ {{10480034788891166476ull, 18389628306994413704ull,
+ 7163096101883794742ull, 2941609264056339505ull}},
+ {{13100043486113958095ull, 13763663346888241322ull,
+ 13565556145782131332ull, 3677011580070424381ull}},
+ {{7151682320787671810ull, 17204579183610301653ull,
+ 3121887126945500453ull, 4596264475088030477ull}},
+ {{6775644459705988834ull, 13058704998970132485ull,
+ 4257022463554631735ull, 2872665296930019048ull}},
+ {{13081241593059873946ull, 11711695230285277702ull,
+ 5321278079443289669ull, 3590831621162523810ull}},
+ {{7128179954470066624ull, 804560982574433416ull,
+ 15874969636158887895ull, 4488539526453154762ull}},
+ {{4455112471543791640ull, 7420379641750102741ull,
+ 14533542041026692838ull, 2805337204033221726ull}},
+ {{10180576607857127454ull, 52102515332852618ull, 8943555514428590240ull,
+ 3506671505041527158ull}},
+ {{3502348722966633510ull, 65128144166065773ull, 1956072356180961992ull,
+ 4383339381301908948ull}},
+ {{4494810961067839896ull, 40705090103791108ull, 10445917259467877053ull,
+ 2739587113313693092ull}},
+ {{5618513701334799869ull, 4662567381057126789ull,
+ 13057396574334846316ull, 3424483891642116365ull}},
+ {{11634828145095887741ull, 5828209226321408486ull,
+ 2486687662636394183ull, 4280604864552645457ull}},
+ {{2660081572257541934ull, 10560159794091962160ull,
+ 13083394835216216124ull, 2675378040345403410ull}},
+ {{3325101965321927418ull, 13200199742614952700ull,
+ 7130871507165494347ull, 3344222550431754263ull}},
+ {{4156377456652409272ull, 11888563659841302971ull,
+ 4301903365529480030ull, 4180278188039692829ull}},
+ {{291892901194061843ull, 2818666268973426453ull, 4994532612669618971ull,
+ 2612673867524808018ull}},
+ {{4976552144919965208ull, 17358390891498946778ull,
+ 15466537802691799521ull, 3265842334406010022ull}},
+ {{15444062218004732318ull, 7862930559091519760ull,
+ 10109800216509973594ull, 4082302918007512528ull}},
+ {{9652538886252957699ull, 9526017617859587754ull,
+ 6318625135318733496ull, 2551439323754695330ull}},
+ {{2842301570961421315ull, 11907522022324484693ull,
+ 17121653456003192678ull, 3189299154693369162ull}},
+ {{8164562982129164548ull, 5661030491050830058ull,
+ 12178694783149215040ull, 3986623943366711453ull}},
+ {{9714537882258115747ull, 3538144056906768786ull,
+ 9917527248681953352ull, 2491639964604194658ull}},
+ {{2919800315967868875ull, 4422680071133460983ull,
+ 3173537023997665882ull, 3114549955755243323ull}},
+ {{17484808450241999806ull, 14751722125771602036ull,
+ 17801979335279246064ull, 3893187444694054153ull}},
+ {{1704633244546474071ull, 9219826328607251273ull,
+ 4208708056908446934ull, 2433242152933783846ull}},
+ {{6742477574110480492ull, 2301410873904288283ull,
+ 14484257107990334476ull, 3041552691167229807ull}},
+ {{3816410949210712711ull, 2876763592380360354ull,
+ 13493635366560530191ull, 3801940863959037259ull}},
+ {{6996942861684083349ull, 8715506272878807077ull,
+ 6127679094886637417ull, 2376213039974398287ull}},
+ {{13357864595532492090ull, 15506068859525896750ull,
+ 3047912850180908867ull, 2970266299967997859ull}},
+ {{7473958707560839304ull, 14770900055979983034ull,
+ 17644949118008299796ull, 3712832874959997323ull}},
+ {{9282910210652912469ull, 8440498132713588ull, 8722250189541493421ull,
+ 2320520546849998327ull}},
+ {{11603637763316140587ull, 4622236641093279889ull,
+ 6291126718499478872ull, 2900650683562497909ull}},
+ {{669489148863012021ull, 5777795801366599862ull,
+ 12475594416551736494ull, 3625813354453122386ull}},
+ {{10060233472933540834ull, 16445616788563025635ull,
+ 6371120983834894809ull, 4532266693066402983ull}},
+ {{3981802911369769070ull, 3360981465210809166ull,
+ 10899479642537891112ull, 2832666683166501864ull}},
+ {{14200625676066987145ull, 4201226831513511457ull,
+ 13624349553172363890ull, 3540833353958127330ull}},
+ {{3915724039801570219ull, 14474905576246665130ull,
+ 7807064904610679054ull, 4426041692447659163ull}},
+ {{7059013543303369291ull, 4435129966726777802ull,
+ 2573572556167980457ull, 2766276057779786977ull}},
+ {{18047138965983987422ull, 10155598476835860156ull,
+ 7828651713637363475ull, 3457845072224733721ull}},
+ {{4112179633770432661ull, 8082812077617437292ull,
+ 14397500660474092248ull, 4322306340280917151ull}},
+ {{11793484307961296221ull, 5051757548510898307ull,
+ 15915966940437389511ull, 2701441462675573219ull}},
+ {{10130169366524232372ull, 1703010917211234980ull,
+ 15283272657119348985ull, 3376801828344466524ull}},
+ {{12662711708155290465ull, 6740449664941431629ull,
+ 657346747689634615ull, 4221002285430583156ull}},
+ {{10220037826810750493ull, 11130310068229476624ull,
+ 9634213754160797442ull, 2638126428394114472ull}},
+ {{12775047283513438116ull, 4689515548432069972ull,
+ 12042767192700996803ull, 3297658035492643090ull}},
+ {{15968809104391797645ull, 1250208417112699561ull,
+ 5830086954021470196ull, 4122072544365803863ull}},
+ {{3062976662603791672ull, 10004752297550213034ull,
+ 10561333373904500728ull, 2576295340228627414ull}},
+ {{13052092865109515398ull, 12505940371937766292ull,
+ 3978294680525850102ull, 3220369175285784268ull}},
+ {{16315116081386894248ull, 6409053428067432057ull,
+ 4972868350657312628ull, 4025461469107230335ull}},
+ {{3279418523225727049ull, 13229030429396920844ull,
+ 10025571746801902248ull, 2515913418192018959ull}},
+ {{4099273154032158811ull, 16536288036746151055ull,
+ 7920278665074989906ull, 3144891772740023699ull}},
+ {{512405424112810610ull, 11446988009077913011ull,
+ 5288662312916349479ull, 3931114715925029624ull}},
+ {{16461154454566364295ull, 14071896533314777487ull,
+ 3305413945572718424ull, 2456946697453143515ull}},
+ {{15964757049780567465ull, 17589870666643471859ull,
+ 17966825487248061742ull, 3071183371816429393ull}},
+ {{15344260293798321427ull, 12763966296449564016ull,
+ 8623473803777913466ull, 3838979214770536742ull}},
+ {{9590162683623950892ull, 12589164953708365414ull,
+ 777985108933808012ull, 2399362009231585464ull}},
+ {{2764331317675162807ull, 15736456192135456768ull,
+ 972481386167260015ull, 2999202511539481830ull}},
+ {{3455414147093953509ull, 15058884221741933056ull,
+ 10438973769563850827ull, 3749003139424352287ull}},
+ {{2159633841933720943ull, 7105959629375014208ull,
+ 13441887633618488623ull, 2343126962140220179ull}},
+ {{2699542302417151179ull, 4270763518291379856ull,
+ 12190673523595722875ull, 2928908702675275224ull}},
+ {{3374427878021438973ull, 726768379436836916ull,
+ 15238341904494653594ull, 3661135878344094030ull}},
+ {{4218034847526798717ull, 10131832511150821953ull,
+ 9824555343763541184ull, 4576419847930117538ull}},
+ {{14165486825772718958ull, 6332395319469263720ull,
+ 10752033108279601144ull, 2860262404956323461ull}},
+ {{17706858532215898698ull, 7915494149336579650ull,
+ 18051727403776889334ull, 3575328006195404326ull}},
+ {{12910201128415097564ull, 670995649815948755ull,
+ 13341287217866335860ull, 4469160007744255408ull}},
+ {{5763032696045742026ull, 9642744317989743780ull,
+ 8338304511166459912ull, 2793225004840159630ull}},
+ {{7203790870057177532ull, 12053430397487179725ull,
+ 1199508602103299082ull, 3491531256050199538ull}},
+ {{13616424605998859819ull, 5843415960004198848ull,
+ 10722757789483899661ull, 4364414070062749422ull}},
+ {{8510265378749287387ull, 5957977984216318232ull,
+ 2090037600000049384ull, 2727758793789218389ull}},
+ {{10637831723436609233ull, 7447472480270397790ull,
+ 7224233018427449634ull, 3409698492236522986ull}},
+ {{4073917617440985734ull, 85968563483221430ull, 18253663309889087851ull,
+ 4262123115295653732ull}},
+ {{16381256566182779796ull, 16194631416672871057ull,
+ 2185167531825904098ull, 2663826947059783583ull}},
+ {{6641512652446311033ull, 11019917233986313014ull,
+ 16566517470064543835ull, 3329783683824729478ull}},
+ {{17525262852412664599ull, 9163210524055503363ull,
+ 11484774800725903986ull, 4162229604780911848ull}},
+ {{8647446273544221422ull, 10338692595962077506ull,
+ 7177984250453689991ull, 2601393502988069905ull}},
+ {{1585935805075500970ull, 8311679726525208979ull,
+ 13584166331494500393ull, 3251741878735087381ull}},
+ {{15817477811626539924ull, 15001285676583899127ull,
+ 3145149859085961779ull, 4064677348418859227ull}},
+ {{16803452659907669309ull, 7069960538651243002ull,
+ 18106619726424583776ull, 2540423342761787016ull}},
+ {{11780943788029810828ull, 8837450673314053753ull,
+ 4186530584321178104ull, 3175529178452233771ull}},
+ {{891121679755099823ull, 11046813341642567192ull, 621477211974084726ull,
+ 3969411473065292214ull}},
+ {{556951049846937389ull, 2292572320099216591ull,
+ 14223481312765966666ull, 2480882170665807633ull}},
+ {{14531246867590835448ull, 12089087436978796546ull,
+ 3944293585675294620ull, 3101102713332259542ull}},
+ {{8940686547633768502ull, 15111359296223495683ull,
+ 14153739018948894083ull, 3876378391665324427ull}},
+ {{3282086083057411362ull, 7138756550925990850ull,
+ 6540243877629364850ull, 2422736494790827767ull}},
+ {{13325979640676540011ull, 18146817725512264370ull,
+ 3563618828609318158ull, 3028420618488534709ull}},
+ {{7434102513990899205ull, 13460150120035554655ull,
+ 9066209554189035602ull, 3785525773110668386ull}},
+ {{11563843098885393859ull, 13024279843449609563ull,
+ 10278066989795535155ull, 2365953608194167741ull}},
+ {{9843117855179354420ull, 11668663785884624050ull,
+ 17459269755671806848ull, 2957442010242709676ull}},
+ {{3080525282119417217ull, 14585829732355780063ull,
+ 3377343120880206944ull, 3696802512803387096ull}},
+ {{8842857328965717617ull, 9116143582722362539ull,
+ 2110839450550129340ull, 2310501570502116935ull}},
+ {{6441885642779759117ull, 11395179478402953174ull,
+ 16473607368469825387ull, 2888126963127646168ull}},
+ {{17275729090329474704ull, 9632288329576303563ull,
+ 2145265136877730118ull, 3610158703909557711ull}},
+ {{16982975344484455476ull, 2816988375115603646ull,
+ 16516639476379326360ull, 4512698379886947138ull}},
+ {{6002673571875396769ull, 1760617734447252279ull,
+ 14934585691164466879ull, 2820436487429341961ull}},
+ {{2891655946416858057ull, 16035830223341229061ull,
+ 4833174058673419886ull, 3525545609286677452ull}},
+ {{8226255951448460475ull, 10821415742321760518ull,
+ 6041467573341774858ull, 4406932011608346815ull}},
+ {{529723951227899893ull, 11375070857378488228ull,
+ 10693446260979691142ull, 2754332507255216759ull}},
+ {{662154939034874866ull, 4995466534868334477ull, 8755121807797226024ull,
+ 3442915634069020949ull}},
+ {{5439379692220981486ull, 6244333168585418096ull,
+ 15555588278173920434ull, 4303644542586276186ull}},
+ {{3399612307638113429ull, 8514394248793274214ull,
+ 14333928692286088175ull, 2689777839116422616ull}},
+ {{13472887421402417594ull, 6031306792564204863ull,
+ 17917410865357610219ull, 3362222298895528270ull}},
+ {{12229423258325634089ull, 2927447472277868175ull,
+ 13173391544842236966ull, 4202777873619410338ull}},
+ {{14560918564094603162ull, 15664712725455831321ull,
+ 12845055733953786007ull, 2626736171012131461ull}},
+ {{4366090149836090240ull, 14969204888392401248ull,
+ 2221261612160068797ull, 3283420213765164327ull}},
+ {{5457612687295112800ull, 4876448055208337848ull,
+ 16611635070482249709ull, 4104275267206455408ull}},
+ {{3411007929559445500ull, 5353623043718905107ull,
+ 10382271919051406068ull, 2565172042004034630ull}},
+ {{18098817967231470587ull, 6692028804648631383ull,
+ 3754467861959481777ull, 3206465052505043288ull}},
+ {{18011836440611950330ull, 12976722024238177133ull,
+ 4693084827449352221ull, 4008081315631304110ull}},
+ {{13563240784596162908ull, 10416294274362554660ull,
+ 16768236072438008850ull, 2505050822269565068ull}},
+ {{16954050980745203635ull, 3796995806098417517ull,
+ 2513551016837959447ull, 3131313527836956336ull}},
+ {{7357505670649340832ull, 134558739195633993ull, 3141938771047449309ull,
+ 3914141909796195420ull}},
+ {{16127656090224307780ull, 2389942221210965197ull,
+ 11187083768759431626ull, 2446338693622622137ull}},
+ {{6324512057498221013ull, 12210799813368482305ull,
+ 148796655667125820ull, 3057923367028277672ull}},
+ {{12517326090300164170ull, 15263499766710602881ull,
+ 185995819583907275ull, 3822404208785347090ull}},
+ {{905799778796520750ull, 7233844344980432849ull, 4727933405667329951ull,
+ 2389002630490841931ull}},
+ {{5743935741923038842ull, 4430619412798153157ull,
+ 1298230738656774535ull, 2986253288113552414ull}},
+ {{11791605695831186456ull, 926588247570303542ull,
+ 10846160460175743977ull, 3732816610141940517ull}},
+ {{2758067541467103631ull, 12108332700799909474ull,
+ 9084693296823533937ull, 2333010381338712823ull}},
+ {{12670956463688655347ull, 1300357820717723130ull,
+ 6744180602602029518ull, 2916262976673391029ull}},
+ {{6615323542756043376ull, 10848819312751929721ull,
+ 13041911771679924801ull, 3645328720841738786ull}},
+ {{12880840446872442124ull, 18172710159367300055ull,
+ 7079017677745130193ull, 4556660901052173483ull}},
+ {{14968054306936358183ull, 4440414821963480678ull,
+ 2118543039377012419ull, 2847913063157608427ull}},
+ {{9486695846815671921ull, 938832509026962944ull,
+ 16483236854503429236ull, 3559891328947010533ull}},
+ {{11858369808519589901ull, 1173540636283703680ull,
+ 6768988012847122833ull, 4449864161183763167ull}},
+ {{7411481130324743689ull, 12262677943745784560ull,
+ 11148146535670533626ull, 2781165100739851979ull}},
+ {{9264351412905929611ull, 6104975392827454892ull,
+ 9323497151160779129ull, 3476456375924814974ull}},
+ {{11580439266132412013ull, 12242905259461706519ull,
+ 2430999402096198103ull, 4345570469906018718ull}},
+ {{14155303568973839364ull, 14569344814804648430ull,
+ 15354432681592287526ull, 2715981543691261698ull}},
+ {{8470757424362523397ull, 8988308981651034730ull,
+ 9969668815135583600ull, 3394976929614077123ull}},
+ {{1365074743598378438ull, 11235386227063793413ull,
+ 7850400000492091596ull, 4243721162017596404ull}},
+ {{3159014723962680476ull, 16245488428769646691ull,
+ 14129872037162333055ull, 2652325726260997752ull}},
+ {{17783826460235514307ull, 15695174517534670459ull,
+ 17662340046452916319ull, 3315407157826247190ull}},
+ {{17618097056867004980ull, 15007282128490950170ull,
+ 12854553021211369591ull, 4144258947282808988ull}},
+ {{15622996678969266017ull, 16297080357947925712ull,
+ 17257467675111881802ull, 2590161842051755617ull}},
+ {{1082001775002030905ull, 11147978410580131333ull,
+ 7736776538607688541ull, 3237702302564694522ull}},
+ {{5964188237179926535ull, 99914957943000454ull, 447598636404834869ull,
+ 4047127878205868153ull}},
+ {{17562675703519617796ull, 2368289857928069235ull,
+ 11808964193821491553ull, 2529454923878667595ull}},
+ {{17341658610972134341ull, 7572048340837474448ull,
+ 10149519223849476537ull, 3161818654848334494ull}},
+ {{3230329190005616311ull, 14076746444474230965ull,
+ 3463526992957069863ull, 3952273318560418118ull}},
+ {{4324798752967204146ull, 15715495555437476209ull,
+ 15999762425880332376ull, 2470170824100261323ull}},
+ {{10017684459636393087ull, 1197625370587293645ull,
+ 15388017013923027567ull, 3087713530125326654ull}},
+ {{17133791592972879262ull, 15332089768516280768ull,
+ 10011649230549008650ull, 3859641912656658318ull}},
+ {{10708619745608049539ull, 14194242123750063384ull,
+ 1645594750665742502ull, 2412276195410411449ull}},
+ {{13385774682010061924ull, 8519430617832803422ull,
+ 6668679456759566032ull, 3015345244263014311ull}},
+ {{7508846315657801597ull, 10649288272291004278ull,
+ 3724163302522069636ull, 3769181555328767889ull}},
+ {{81342928858738094ull, 15879177207036653482ull,
+ 13856817110144763282ull, 2355738472080479930ull}},
+ {{9325050697928198425ull, 10625599471941041044ull,
+ 8097649350826178295ull, 2944673090100599913ull}},
+ {{11656313372410248032ull, 8670313321498913401ull,
+ 14733747706960110773ull, 3680841362625749891ull}},
+ {{735333660230646327ull, 15449577670301029656ull,
+ 13805498615272750562ull, 4601051703282187364ull}},
+ {{459583537644153955ull, 14267672062365531439ull,
+ 17851808671400244909ull, 2875657314551367102ull}},
+ {{14409537477337356155ull, 3999532022674750586ull,
+ 13091388802395530329ull, 3594571643189208878ull}},
+ {{8788549809816919386ull, 9611101046770826137ull,
+ 7140863966139637103ull, 4493214553986511098ull}},
+ {{17022058677204044377ull, 12924467181872848191ull,
+ 9074725997264661093ull, 2808259096241569436ull}},
+ {{16665887328077667567ull, 2320525922058896527ull,
+ 11343407496580826367ull, 3510323870301961795ull}},
+ {{16220673141669696554ull, 16735715457855784371ull,
+ 9567573352298645054ull, 4387904837877452244ull}},
+ {{7832077704329866394ull, 5848136142732477328ull,
+ 15203105382041428967ull, 2742440523673407652ull}},
+ {{9790097130412332993ull, 2698484159988208756ull, 557137653842234593ull,
+ 3428050654591759566ull}},
+ {{12237621413015416241ull, 7984791218412648849ull,
+ 9919794104157569049ull, 4285063318239699457ull}},
+ {{730984355493553295ull, 16519709557576375291ull,
+ 17729086361166950415ull, 2678164573899812160ull}},
+ {{14748788499649105330ull, 16037950928543081209ull,
+ 3714613877749136403ull, 3347705717374765201ull}},
+ {{4600927569279217951ull, 15435752642251463608ull,
+ 9254953365613808408ull, 4184632146718456501ull}},
+ {{2875579730799511220ull, 9647345401407164755ull,
+ 8090188862722324207ull, 2615395091699035313ull}},
+ {{17429532718781552736ull, 7447495733331568039ull,
+ 14724422096830293163ull, 3269243864623794141ull}},
+ {{17175229880049553016ull, 4697683648237072145ull,
+ 4570469565755702742ull, 4086554830779742677ull}},
+ {{3816989647389888779ull, 16771110335430333803ull,
+ 5162386487811008165ull, 2554096769237339173ull}},
+ {{159551040809973070ull, 7128829864005753542ull,
+ 11064669128191148111ull, 3192620961546673966ull}},
+ {{9422810837867242145ull, 4299351311579804023ull,
+ 4607464373384159331ull, 3990776201933342458ull}},
+ {{12806785801308108197ull, 381251560523683562ull,
+ 7491351251792487486ull, 2494235126208339036ull}},
+ {{6785110214780359438ull, 9699936487509380261ull,
+ 9364189064740609357ull, 3117793907760423795ull}},
+ {{13093073786902837202ull, 16736606627814113230ull,
+ 7093550312498373792ull, 3897242384700529744ull}},
+ {{3571485098386885347ull, 10460379142383820769ull,
+ 4433468945311483620ull, 2435776490437831090ull}},
+ {{9076042391410994588ull, 13075473927979775961ull,
+ 14765208218494130333ull, 3044720613047288862ull}},
+ {{15956739007691131139ull, 2509284354692556239ull,
+ 9233138236262887109ull, 3805900766309111078ull}},
+ {{16890490907448038818ull, 3874145730896541601ull,
+ 1159025379236916539ull, 2378687978943194424ull}},
+ {{7278055579027884810ull, 230996145193289098ull, 1448781724046145674ull,
+ 2973359973678993030ull}},
+ {{18320941510639631821ull, 9512117218346387180ull,
+ 11034349191912457900ull, 3716699967098741287ull}},
+ {{2227216407294994080ull, 15168445298321267796ull,
+ 13813997272586368043ull, 2322937479436713304ull}},
+ {{2784020509118742600ull, 14348870604474196841ull,
+ 17267496590732960054ull, 2903671849295891630ull}},
+ {{8091711654825816154ull, 8712716218737970243ull,
+ 12360998701561424260ull, 3629589811619864538ull}},
+ {{5502953550104882288ull, 10890895273422462804ull,
+ 6227876340097004517ull, 4536987264524830673ull}},
+ {{12662718005670327238ull, 9112652555102733204ull,
+ 15421637758629097583ull, 2835617040328019170ull}},
+ {{15828397507087909048ull, 6779129675451028601ull,
+ 10053675161431596171ull, 3544521300410023963ull}},
+ {{5950438828577722598ull, 3862226075886397848ull,
+ 7955407933362107310ull, 4430651625512529954ull}},
+ {{3719024267861076624ull, 16248949352711162367ull,
+ 9583815976778704972ull, 2769157265945331221ull}},
+ {{37094316398957876ull, 1864442617179401343ull, 16591455989400769120ull,
+ 3461446582431664026ull}},
+ {{13881425950780861056ull, 2330553271474251678ull,
+ 11515947949896185592ull, 4326808228039580033ull}},
+ {{4064205200810650256ull, 1456595794671407299ull, 279938441044034139ull,
+ 2704255142524737521ull}},
+ {{468570482585924916ull, 15655802798621422836ull,
+ 4961609069732430577ull, 3380318928155921901ull}},
+ {{585713103232406145ull, 5734695442994614833ull,
+ 10813697355592926126ull, 4225398660194902376ull}},
+ {{11895285735588723601ull, 17419242707153797982ull,
+ 6758560847245578828ull, 2640874162621813985ull}},
+ {{5645735132631128693ull, 3327309310232695862ull,
+ 13059887077484361440ull, 3301092703277267481ull}},
+ {{16280540952643686674ull, 4159136637790869827ull,
+ 2489800791573288088ull, 4126365879096584352ull}},
+ {{7869495086188610220ull, 2599460398619293642ull,
+ 1556125494733305055ull, 2578978674435365220ull}},
+ {{613496820880986966ull, 17084383553556280765ull,
+ 1945156868416631318ull, 3223723343044206525ull}},
+ {{5378557044528621612ull, 12132107405090575148ull,
+ 7043132103948177052ull, 4029654178805258156ull}},
+ {{12584970189685164316ull, 16805939165036385275ull,
+ 13625329601822386465ull, 2518533861753286347ull}},
+ {{11119526718679067490ull, 7172365901013317882ull,
+ 12419975983850595178ull, 3148167327191607934ull}},
+ {{4676036361494058555ull, 18188829413121423161ull,
+ 6301597942958468164ull, 3935209158989509918ull}},
+ {{14451737772002256357ull, 2144646346346113667ull,
+ 17773556769631206315ull, 2459505724368443698ull}},
+ {{13452986196575432542ull, 16515865988214805796ull,
+ 12993573925184232085ull, 3074382155460554623ull}},
+ {{16816232745719290677ull, 6809774429986343533ull,
+ 11630281388052902203ull, 3842977694325693279ull}},
+ {{12815988475288250626ull, 1950266009527770756ull,
+ 14186454895174145733ull, 2401861058953558299ull}},
+ {{16019985594110313282ull, 7049518530337101349ull,
+ 13121382600540294262ull, 3002326323691947874ull}},
+ {{6189923937355727890ull, 18035270199776152495ull,
+ 7178356213820592019ull, 3752907904614934843ull}},
+ {{10786231488488411788ull, 8966200865646401357ull,
+ 2180629624424176060ull, 2345567440384334277ull}},
+ {{18094475379037902638ull, 11207751082058001696ull,
+ 7337473048957607979ull, 2931959300480417846ull}},
+ {{4171350150087826682ull, 9398002834145114217ull,
+ 18395213348051785782ull, 3664949125600522307ull}},
+ {{9825873706037171256ull, 2524131505826616963ull,
+ 18382330666637344324ull, 4581186407000652884ull}},
+ {{3835328057059538083ull, 10800954227996411410ull,
+ 2265584629793564394ull, 2863241504375408053ull}},
+ {{14017532108179198412ull, 4277820748140738454ull,
+ 7443666805669343397ull, 3579051880469260066ull}},
+ {{8298543098369222207ull, 9958961953603310972ull, 81211470231903438ull,
+ 4473814850586575083ull}},
+ {{14409961473335539687ull, 1612665202574681453ull,
+ 16191658233390797313ull, 2796134281616609426ull}},
+ {{4177393786387260897ull, 6627517521645739721ull,
+ 11016200754883720833ull, 3495167852020761783ull}},
+ {{9833428251411464025ull, 12896082920484562555ull,
+ 9158564925177263137ull, 4368959815025952229ull}},
+ {{3840049647918471064ull, 1142522797661769741ull,
+ 8029946087449483413ull, 2730599884391220143ull}},
+ {{9411748078325476734ull, 6039839515504600080ull,
+ 5425746590884466362ull, 3413249855489025179ull}},
+ {{11764685097906845917ull, 16773171431235525908ull,
+ 2170497220178195048ull, 4266562319361281474ull}},
+ {{16576300223046554506ull, 10483232144522203692ull,
+ 5968246781038759809ull, 2666601449600800921ull}},
+ {{2273631205098641517ull, 17715726199080142520ull,
+ 12071994494725837665ull, 3333251812001001151ull}},
+ {{2842039006373301896ull, 8309599693568014438ull,
+ 10478307099979909178ull, 4166564765001251439ull}},
+ {{15611332434265477397ull, 9805185826907396927ull,
+ 13466470965128525092ull, 2604102978125782149ull}},
+ {{14902479524404458842ull, 12256482283634246159ull,
+ 2998030651128492653ull, 3255128722657227687ull}},
+ {{14016413387078185649ull, 1485544799260643987ull,
+ 17582596369192779529ull, 4068910903321534608ull}},
+ {{6454415357710172079ull, 12457680545606372252ull,
+ 10989122730745487205ull, 2543069314575959130ull}},
+ {{8068019197137715098ull, 1737042626725801603ull,
+ 4513031376577083199ull, 3178836643219948913ull}},
+ {{5473337977994755969ull, 16006361338689415716ull,
+ 10252975239148741902ull, 3973545804024936141ull}},
+ {{12644208273101498289ull, 5392289818253496918ull,
+ 8713952533681657641ull, 2483466127515585088ull}},
+ {{6581888304522097053ull, 11352048291244259052ull,
+ 10892440667102072051ull, 3104332659394481360ull}},
+ {{8227360380652621316ull, 9578374345627935911ull,
+ 13615550833877590064ull, 3880415824243101700ull}},
+ {{12059629265548970179ull, 5986483966017459944ull,
+ 17733091308028269598ull, 2425259890151938562ull}},
+ {{15074536581936212723ull, 16706476994376600738ull,
+ 12942992098180561189ull, 3031574862689923203ull}},
+ {{9619798690565490096ull, 7048038187688587211ull,
+ 11567054104298313583ull, 3789468578362404004ull}},
+ {{3706531172389737358ull, 11322552894946448863ull,
+ 16452780852041221797ull, 2368417861476502502ull}},
+ {{21477947059783793ull, 318133063400897367ull, 11342604028196751439ull,
+ 2960522326845628128ull}},
+ {{13861905489106893454ull, 14232724384533285420ull,
+ 14178255035245939298ull, 3700652908557035160ull}},
+ {{17887062967546584217ull, 13507138758760691291ull,
+ 8861409397028712061ull, 2312908067848146975ull}},
+ {{17747142691005842367ull, 3048865393168700402ull,
+ 6465075727858502173ull, 2891135084810183719ull}},
+ {{12960556326902527150ull, 8422767759888263407ull,
+ 3469658641395739812ull, 3613918856012729649ull}},
+ {{11589009390200771034ull, 10528459699860329259ull,
+ 8948759320172062669ull, 4517398570015912061ull}},
+ {{4937287859661787944ull, 8886130321626399739ull,
+ 7898817584321233120ull, 2823374106259945038ull}},
+ {{1559923806149847026ull, 11107662902032999674ull,
+ 650149943546765592ull, 3529217632824931298ull}},
+ {{11173276794542084591ull, 13884578627541249592ull,
+ 10036059466288232798ull, 4411522041031164122ull}},
+ {{6983297996588802869ull, 4066175623785893091ull,
+ 10884223184857533403ull, 2757201275644477576ull}},
+ {{4117436477308615683ull, 471033511304978460ull,
+ 13605278981071916754ull, 3446501594555596970ull}},
+ {{5146795596635769603ull, 9812163925985998883ull,
+ 7783226689485120134ull, 4308126993194496213ull}},
+ {{910904238683662050ull, 1520916435313861398ull, 7170359690141894036ull,
+ 2692579370746560133ull}},
+ {{10362002335209353370ull, 1901145544142326747ull,
+ 13574635631104755449ull, 3365724213433200166ull}},
+ {{8340816900584303809ull, 6988117948605296338ull,
+ 7744922502026168503ull, 4207155266791500208ull}},
+ {{9824696581292577785ull, 11285102745519392067ull,
+ 4840576563766355314ull, 2629472041744687630ull}},
+ {{7669184708188334327ull, 4883006395044464276ull,
+ 15274092741562719951ull, 3286840052180859537ull}},
+ {{9586480885235417908ull, 1492071975378192441ull,
+ 5257557871671236227ull, 4108550065226074422ull}},
+ {{17520765599340605953ull, 17073446049107227939ull,
+ 17121031725076686353ull, 2567843790766296513ull}},
+ {{17289270980748369537ull, 7506749506101871212ull,
+ 7566231601063694230ull, 3209804738457870642ull}},
+ {{3164844652225910305ull, 160064845772563208ull, 234417464474841980ull,
+ 4012255923072338303ull}},
+ {{1978027907641193941ull, 9323412565462627813ull,
+ 7064039942937858093ull, 2507659951920211439ull}},
+ {{7084220902978880330ull, 16265951725255672670ull,
+ 4218363910244934712ull, 3134574939900264299ull}},
+ {{18078648165578376220ull, 1885695582860039221ull,
+ 661268869378780487ull, 3918218674875330374ull}},
+ {{13604998112700179090ull, 8096088766928606369ull,
+ 14248351098643901516ull, 2448886671797081483ull}},
+ {{3171189585593060150ull, 10120110958660757962ull,
+ 13198752854877488991ull, 3061108339746351854ull}},
+ {{13187359018846100996ull, 8038452679898559548ull,
+ 7275069031742085431ull, 3826385424682939818ull}},
+ {{17465471423633588931ull, 11941561952577681573ull,
+ 9158604163266191298ull, 2391490890426837386ull}},
+ {{7996781224259822451ull, 5703580403867326159ull,
+ 2224883167227963315ull, 2989363613033546733ull}},
+ {{5384290511897390160ull, 2517789486406769795ull,
+ 7392789977462342048ull, 3736704516291933416ull}},
+ {{1059338560722174898ull, 1573618429004231122ull,
+ 4620493735913963780ull, 2335440322682458385ull}},
+ {{10547545237757494430ull, 1967023036255288902ull,
+ 10387303188319842629ull, 2919300403353072981ull}},
+ {{3961059510342092230ull, 7070464813746499032ull,
+ 17595815003827191190ull, 3649125504191341226ull}},
+ {{4951324387927615287ull, 18061453054037899598ull,
+ 12771396717929213179ull, 4561406880239176533ull}},
+ {{16929635797736923267ull, 8982565149559993296ull,
+ 10287965957919452189ull, 2850879300149485333ull}},
+ {{2715300673461602467ull, 15839892455377379525ull,
+ 17471643465826703140ull, 3563599125186856666ull}},
+ {{8005811860254390988ull, 1353121495512172790ull,
+ 12616182295428603118ull, 4454498906483570833ull}},
+ {{391946394231606464ull, 14680758989977271706ull, 967584907001795092ull,
+ 2784061816552231771ull}},
+ {{9713305029644283887ull, 18350948737471589632ull,
+ 15044539189034407577ull, 3480077270690289713ull}},
+ {{12141631287055354859ull, 9103627866557323328ull,
+ 4970615931010845760ull, 4350096588362862142ull}},
+ {{7588519554409596787ull, 5689767416598327080ull,
+ 16941693012163942312ull, 2718810367726788838ull}},
+ {{9485649443011995984ull, 7112209270747908850ull,
+ 11953744228350152082ull, 3398512959658486048ull}},
+ {{2633689766910219172ull, 18113633625289661871ull,
+ 14942180285437690102ull, 4248141199573107560ull}},
+ {{8563585131959968839ull, 6709334997378650765ull,
+ 9338862678398556314ull, 2655088249733192225ull}},
+ {{15316167433377348952ull, 17610040783578089264ull,
+ 16285264366425583296ull, 3318860312166490281ull}},
+ {{698465218012134574ull, 3565806905763059965ull, 6521522402749815409ull,
+ 4148575390208112852ull}},
+ {{2742383770471278061ull, 13757844362170382238ull,
+ 13299323538573410438ull, 2592859618880070532ull}},
+ {{12651351749943873384ull, 7973933415858201989ull,
+ 16624154423216763048ull, 3241074523600088165ull}},
+ {{1979131632147678018ull, 9967416769822752487ull,
+ 6945134973738790098ull, 4051343154500110207ull}},
+ {{8154486297733380617ull, 10841321499566608208ull,
+ 11258238386227825667ull, 2532089471562568879ull}},
+ {{10193107872166725772ull, 8939965856030872356ull,
+ 9461111964357394180ull, 3165111839453211099ull}},
+ {{12741384840208407214ull, 11174957320038590445ull,
+ 7214703937019354821ull, 3956389799316513874ull}},
+ {{10269208534343948461ull, 9290191334237812980ull,
+ 9120875979064484667ull, 2472743624572821171ull}},
+ {{12836510667929935576ull, 7001053149369878321ull,
+ 6789408955403217930ull, 3090929530716026464ull}},
+ {{2210580279630255758ull, 17974688473567123710ull,
+ 8486761194254022412ull, 3863661913395033080ull}},
+ {{15216670730051073561ull, 2010808259124676510ull,
+ 5304225746408764008ull, 2414788695871895675ull}},
+ {{9797466375709066143ull, 2513510323905845638ull,
+ 2018596164583567106ull, 3018485869839869594ull}},
+ {{3023460932781556871ull, 12365259941737082856ull,
+ 11746617242584234690ull, 3773107337299836992ull}},
+ {{1889663082988473044ull, 12339973482013064689ull,
+ 7341635776615146681ull, 2358192085812398120ull}},
+ {{6973764872162979209ull, 1589908797234167149ull,
+ 9177044720768933352ull, 2947740107265497650ull}},
+ {{13328892108631111916ull, 1987385996542708936ull,
+ 2247933864106390882ull, 3684675134081872063ull}},
+ {{16661115135788889895ull, 11707604532533161978ull,
+ 16644975385415152314ull, 4605843917602340078ull}},
+ {{15024882978295444088ull, 11928938851260614140ull,
+ 5791423597457082292ull, 2878652448501462549ull}},
+ {{334359649159753494ull, 14911173564075767676ull,
+ 11850965515248740769ull, 3598315560626828186ull}},
+ {{417949561449691868ull, 4803908899812545883ull, 5590334857206150154ull,
+ 4497894450783535233ull}},
+ {{16402119540401915081ull, 7614129080810229080ull,
+ 15023174331822313606ull, 2811184031739709520ull}},
+ {{2055905351792842236ull, 294289314158010543ull, 332223841068340392ull,
+ 3513980039674636901ull}},
+ {{16404939745023216507ull, 367861642697513178ull,
+ 5026965819762813394ull, 4392475049593296126ull}},
+ {{14864773359066898221ull, 4841599545113333640ull,
+ 16976911692633922083ull, 2745296905995810078ull}},
+ {{134222625124071160ull, 1440313412964279147ull,
+ 11997767578937626796ull, 3431621132494762598ull}},
+ {{14002836336687252662ull, 1800391766205348933ull,
+ 5773837436817257687ull, 4289526415618453248ull}},
+ {{11057615719643226866ull, 8042773881519424939ull,
+ 3608648398010786054ull, 2680954009761533280ull}},
+ {{9210333631126645678ull, 830095315044505366ull, 4510810497513482568ull,
+ 3351192512201916600ull}},
+ {{2289545002053531289ull, 1037619143805631708ull,
+ 5638513121891853210ull, 4188990640252395750ull}},
+ {{10654337663138232864ull, 5260197983305907721ull,
+ 17359128756464571968ull, 2618119150157747343ull}},
+ {{17929608097350178984ull, 6575247479132384651ull,
+ 17087224927153327056ull, 3272648937697184179ull}},
+ {{17800324103260335826ull, 8219059348915480814ull,
+ 16747345140514270916ull, 4090811172121480224ull}},
+ {{6513516546110321987ull, 14360284129926951317ull,
+ 10467090712821419322ull, 2556756982575925140ull}},
+ {{12753581701065290388ull, 8726983125553913338ull,
+ 13083863391026774153ull, 3195946228219906425ull}},
+ {{6718605089476837177ull, 15520414925369779577ull,
+ 2519771183501303979ull, 3994932785274883032ull}},
+ {{15728343226991492996ull, 7394416319142418283ull,
+ 1574856989688314987ull, 2496832990796801895ull}},
+ {{15048743015311978341ull, 4631334380500634950ull,
+ 15803629292392557446ull, 3121041238496002368ull}},
+ {{9587556732285197118ull, 15012540012480569496ull,
+ 1307792541781145191ull, 3901301548120002961ull}},
+ {{5992222957678248199ull, 16300366535441437791ull,
+ 12346585384681685504ull, 2438313467575001850ull}},
+ {{2878592678670422344ull, 1928714095592245623ull,
+ 6209859693997331073ull, 3047891834468752313ull}},
+ {{17433298903620191642ull, 7022578637917694932ull,
+ 12374010635924051745ull, 3809864793085940391ull}},
+ {{1672439777907843969ull, 15918326694767029093ull,
+ 14651285675093614196ull, 2381165495678712744ull}},
+ {{6702235740812192865ull, 1451164294749234750ull,
+ 18314107093867017746ull, 2976456869598390930ull}},
+ {{17601166712870016889ull, 11037327405291319245ull,
+ 13669261830478996374ull, 3720571086997988663ull}},
+ {{13306572204757454508ull, 2286643609879686624ull,
+ 15460817671690454590ull, 2325356929373742914ull}},
+ {{16633215255946818134ull, 12081676549204384088ull,
+ 10102650052758292429ull, 2906696161717178643ull}},
+ {{2344774996223971052ull, 1267037631223316399ull,
+ 8016626547520477633ull, 3633370202146473304ull}},
+ {{16766026800562127527ull, 6195483057456533402ull,
+ 10020783184400597041ull, 4541712752683091630ull}},
+ {{15090452768778717608ull, 15401391956978803136ull,
+ 1651303471822985246ull, 2838570470426932269ull}},
+ {{416321887263845394ull, 10028367909368728113ull,
+ 6675815358206119462ull, 3548213088033665336ull}},
+ {{5132088377507194647ull, 3312087849856134333ull,
+ 8344769197757649328ull, 4435266360042081670ull}},
+ {{5513398245155690606ull, 2070054906160083958ull, 603794730171142926ull,
+ 2772041475026301044ull}},
+ {{16115119843299389066ull, 11810940669554880755ull,
+ 754743412713928657ull, 3465051843782876305ull}},
+ {{15532213785696848428ull, 928617781661437232ull,
+ 5555115284319798726ull, 4331314804728595381ull}},
+ {{9707633616060530268ull, 14415444168820561982ull,
+ 5777790061913568155ull, 2707071752955372113ull}},
+ {{2911169983220887027ull, 13407619192598314574ull,
+ 11833923595819348098ull, 3383839691194215141ull}},
+ {{12862334515880884591ull, 7536151953893117409ull,
+ 957346439492021411ull, 4229799613992768927ull}},
+ {{1121430044784471014ull, 2404251961969504429ull,
+ 7515870552323595238ull, 2643624758745480579ull}},
+ {{6013473574407976671ull, 12228686989316656344ull,
+ 4783152171977106143ull, 3304530948431850724ull}},
+ {{7516841968009970839ull, 10674172718218432526ull,
+ 5978940214971382679ull, 4130663685539813405ull}},
+ {{86340211578843870ull, 13588886976527602185ull, 6042680643570808126ull,
+ 2581664803462383378ull}},
+ {{4719611282900942742ull, 7762736683804726923ull,
+ 16776722841318285966ull, 3227081004327979222ull}},
+ {{1287828085198790523ull, 480048817901132846ull,
+ 11747531514793081650ull, 4033851255409974028ull}},
+ {{14639950608531407789ull, 4911716529615595932ull,
+ 16565579233600451839ull, 2521157034631233767ull}},
+ {{18299938260664259736ull, 1527959643592107011ull,
+ 16095288023573176895ull, 3151446293289042209ull}},
+ {{18263236807402936766ull, 15745007609772297476ull,
+ 6284051974184307406ull, 3939307866611302762ull}},
+ {{2191150967772059671ull, 5228943737680298019ull,
+ 8539218502292580033ull, 2462067416632064226ull}},
+ {{16573996764997238301ull, 11147865690527760427ull,
+ 1450651091010949233ull, 3077584270790080283ull}},
+ {{16105809937819159972ull, 99774057877536822ull,
+ 15648371919045850254ull, 3846980338487600353ull}},
+ {{5454445192709587079ull, 13897416841455624226ull,
+ 2862703421762574552ull, 2404362711554750221ull}},
+ {{16041428527741759656ull, 17371771051819530282ull,
+ 8190065295630606094ull, 3005453389443437776ull}},
+ {{10828413622822423762ull, 12491341777919637045ull,
+ 10237581619538257618ull, 3756816736804297220ull}},
+ {{9073601523477708803ull, 12418774629627161057ull,
+ 15621860549066186819ull, 2348010460502685762ull}},
+ {{15953687922774523908ull, 10911782268606563417ull,
+ 10303953649477957716ull, 2935013075628357203ull}},
+ {{6107051848185991173ull, 13639727835758204272ull,
+ 8268256043420059241ull, 3668766344535446504ull}},
+ {{7633814810232488966ull, 3214601739415591628ull,
+ 10335320054275074052ull, 4585957930669308130ull}},
+ {{13994506293250081412ull, 11232498123989520575ull,
+ 11071261052349309186ull, 2866223706668317581ull}},
+ {{12881446848135213861ull, 4817250618132124911ull, 4018260154472771ull,
+ 3582779633335396977ull}},
+ {{11490122541741629422ull, 1409877254237768235ull,
+ 4616708843620478868ull, 4478474541669246221ull}},
+ {{4875483579374824437ull, 10104545320753380955ull,
+ 5191286036476493244ull, 2799046588543278888ull}},
+ {{1482668455791142642ull, 12630681650941726194ull,
+ 6489107545595616555ull, 3498808235679098610ull}},
+ {{11076707606593704110ull, 11176666045249769838ull,
+ 17334756468849296502ull, 4373510294598873262ull}},
+ {{2311256235693677165ull, 2373730259853718245ull,
+ 6222536774603422410ull, 2733443934124295789ull}},
+ {{7500756313044484360ull, 12190534861671923614ull,
+ 12389856986681665916ull, 3416804917655369736ull}},
+ {{152573354450829642ull, 15238168577089904518ull,
+ 15487321233352082395ull, 4271006147069212170ull}},
+ {{13930416401813932239ull, 7218012351467496371ull,
+ 14291261789272439401ull, 2669378841918257606ull}},
+ {{12801334483840027394ull, 13634201457761758368ull,
+ 8640705199735773443ull, 3336723552397822008ull}},
+ {{16001668104800034243ull, 12431065803774810056ull,
+ 10800881499669716804ull, 4170904440497277510ull}},
+ {{10001042565500021402ull, 16992788164214032093ull,
+ 2138864918866185098ull, 2606815275310798444ull}},
+ {{17112989225302414656ull, 12017613168412764308ull,
+ 2673581148582731373ull, 3258519094138498055ull}},
+ {{2944492457918466704ull, 1186958405233791674ull,
+ 17177034491010577929ull, 4073148867673122568ull}},
+ {{6451993804626429594ull, 12271064049339589556ull,
+ 10735646556881611205ull, 2545718042295701605ull}},
+ {{8064992255783036993ull, 1503772006392323233ull,
+ 18031244214529401911ull, 3182147552869627006ull}},
+ {{14692926338156184145ull, 15714773063272567753ull,
+ 13315683231306976580ull, 3977684441087033758ull}},
+ {{2265549933706533235ull, 598361127690579038ull, 3710616001139472459ull,
+ 2486052775679396099ull}},
+ {{12055309453987942351ull, 14583009464895387509ull,
+ 26583982996952669ull, 3107565969599245124ull}},
+ {{1234078762202764227ull, 4393703775837070675ull, 33229978746190837ull,
+ 3884457461999056405ull}},
+ {{16912200290872585306ull, 5051907869111863123ull,
+ 2326611745930063225ull, 2427785913749410253ull}},
+ {{16528564345163343728ull, 10926570854817216808ull,
+ 7519950700839966935ull, 3034732392186762816ull}},
+ {{2213961357744628044ull, 9046527550094133107ull,
+ 9399938376049958669ull, 3793415490233453520ull}},
+ {{17524626913086250192ull, 7959922728022527143ull,
+ 5874961485031224168ull, 2370884681395908450ull}},
+ {{17294097622930424836ull, 9949903410028158929ull,
+ 16567073893143806018ull, 2963605851744885562ull}},
+ {{7782563973380867332ull, 3214007225680422854ull,
+ 11485470329574981715ull, 3704507314681106953ull}},
+ {{252416464935654179ull, 18149655580546121948ull, 260889928343281715ull,
+ 2315317071675691846ull}},
+ {{315520581169567724ull, 18075383457255264531ull,
+ 9549484447283877952ull, 2894146339594614807ull}},
+ {{14229458781744123366ull, 4147485247859529047ull,
+ 7325169540677459537ull, 3617682924493268509ull}},
+ {{13175137458752766304ull, 9796042578251799213ull,
+ 13768147944274212325ull, 4522103655616585636ull}},
+ {{10540303920934172892ull, 8428369620621068460ull,
+ 17828464502026158511ull, 2826314784760366022ull}},
+ {{13175379901167716115ull, 5923776007348947671ull,
+ 13062208590677922331ull, 3532893480950457528ull}},
+ {{11857538858032257240ull, 2793033990758796685ull,
+ 16327760738347402914ull, 4416116851188071910ull}},
+ {{9716804795483854727ull, 6357332262651635832ull,
+ 5593164443039738917ull, 2760073031992544944ull}},
+ {{12146005994354818409ull, 12558351346741932694ull,
+ 6991455553799673646ull, 3450091289990681180ull}},
+ {{5959135456088747203ull, 6474567146572640060ull,
+ 8739319442249592058ull, 4312614112488351475ull}},
+ {{12947831696910242810ull, 8658290485035287941ull,
+ 3156231642192301084ull, 2695383820305219672ull}},
+ {{2349731565855639800ull, 10822863106294109927ull,
+ 3945289552740376355ull, 3369229775381524590ull}},
+ {{16772222512601713462ull, 8916892864440249504ull,
+ 14154983977780246252ull, 4211537219226905737ull}},
+ {{10482639070376070914ull, 14796430077129931748ull,
+ 1929335958471572051ull, 2632210762016816086ull}},
+ {{13103298837970088642ull, 13883851577985026781ull,
+ 11635041984944240872ull, 3290263452521020107ull}},
+ {{2544065492180447091ull, 17354814472481283477ull,
+ 9932116462752913186ull, 4112829315651275134ull}},
+ {{3895883941826473384ull, 15458445063728190077ull,
+ 1595886770793182837ull, 2570518322282046959ull}},
+ {{9481540945710479634ull, 5487998274378073884ull,
+ 15829916518773642259ull, 3213147902852558698ull}},
+ {{11851926182138099542ull, 2248311824545204451ull,
+ 10564023611612277016ull, 4016434878565698373ull}},
+ {{5101610854622618262ull, 1405194890340752782ull,
+ 8908357766471367087ull, 2510271799103561483ull}},
+ {{15600385605133048635ull, 15591551668208104689ull,
+ 6523761189661820954ull, 3137839748879451854ull}},
+ {{5665423951134147082ull, 10266067548405355054ull,
+ 17378073523932052001ull, 3922299686099314817ull}},
+ {{17375948024741005638ull, 17945507263821816668ull,
+ 3943766924816450644ull, 2451437303812071761ull}},
+ {{3273190957216705432ull, 3985140006067719220ull,
+ 9541394674447951210ull, 3064296629765089701ull}},
+ {{4091488696520881790ull, 14204797044439424833ull,
+ 16538429361487326916ull, 3830370787206362126ull}},
+ {{14086395481394020879ull, 18101370189629416328ull,
+ 5724832332502191418ull, 2393981742003976329ull}},
+ {{17607994351742526098ull, 13403340700181994602ull,
+ 11767726434055127177ull, 2992477177504970411ull}},
+ {{12786620902823381815ull, 2919117819945329541ull,
+ 10097972024141521068ull, 3740596471881213014ull}},
+ {{10297481073478307587ull, 11047820674320606771ull,
+ 1699546496661062763ull, 2337872794925758134ull}},
+ {{8260165323420496579ull, 9198089824473370560ull,
+ 11347805157681104262ull, 2922340993657197667ull}},
+ {{10325206654275620724ull, 2274240243736937392ull,
+ 9573070428673992424ull, 3652926242071497084ull}},
+ {{12906508317844525904ull, 2842800304671171740ull,
+ 11966338035842490530ull, 4566157802589371355ull}},
+ {{17289939735507604498ull, 6388436208846870241ull,
+ 5173118263187862629ull, 2853848626618357097ull}},
+ {{7777366614102341911ull, 12597231279485975706ull,
+ 11078083847412216190ull, 3567310783272946371ull}},
+ {{498336230773151581ull, 6523167062502693825ull, 9235918790837882334ull,
+ 4459138479091182964ull}},
+ {{11840675190301689498ull, 17912037469346347352ull,
+ 14995821281128452266ull, 2786961549431989352ull}},
+ {{14800843987877111872ull, 13166674799828158382ull,
+ 298032527701013717ull, 3483701936789986691ull}},
+ {{9277682947991614032ull, 2623285444503034266ull,
+ 14207598714908430859ull, 4354627420987483363ull}},
+ {{10410237860922146674ull, 17780454467310254080ull,
+ 6573906187604075334ull, 2721642138117177102ull}},
+ {{13012797326152683343ull, 13002196047283041792ull,
+ 17440754771359869976ull, 3402052672646471377ull}},
+ {{16265996657690854179ull, 16252745059103802240ull,
+ 7965885408917673758ull, 4252565840808089222ull}},
+ {{10166247911056783862ull, 5546279643512488496ull,
+ 366992362146158195ull, 2657853650505055764ull}},
+ {{12707809888820979827ull, 2321163535963222716ull,
+ 458740452682697744ull, 3322317063131319705ull}},
+ {{15884762361026224784ull, 2901454419954028395ull,
+ 5185111584280760084ull, 4152896328914149631ull}},
+ {{7622133466427696538ull, 11036781049326043555ull,
+ 10158223767816556908ull, 2595560205571343519ull}},
+ {{4915980814607232768ull, 13795976311657554444ull,
+ 8086093691343308231ull, 3244450256964179399ull}},
+ {{6144976018259040960ull, 12633284371144555151ull,
+ 5495931095751747385ull, 4055562821205224249ull}},
+ {{10758139039052982456ull, 978273704324265113ull,
+ 14964171980913311876ull, 2534726763253265155ull}},
+ {{18059359817243615974ull, 1222842130405331391ull,
+ 14093528957714251941ull, 3168408454066581444ull}},
+ {{17962513753127132064ull, 6140238681434052143ull,
+ 17616911197142814926ull, 3960510567583226805ull}},
+ {{18144100123345539396ull, 17672707231178446301ull,
+ 13316412507427953280ull, 2475319104739516753ull}},
+ {{8845067098899760533ull, 3644139965263506261ull,
+ 2810457579002777889ull, 3094148880924395942ull}},
+ {{15668019892052088570ull, 9166860975006770730ull,
+ 12736444010608248169ull, 3867686101155494927ull}},
+ {{14404198450959943261ull, 17258503155447701466ull,
+ 14877806534271236961ull, 2417303813222184329ull}},
+ {{8781876026845153268ull, 7738070889027463121ull,
+ 4762200112556882490ull, 3021629766527730412ull}},
+ {{15589031051983829488ull, 449216574429553093ull,
+ 5952750140696103113ull, 3777037208159663015ull}},
+ {{12048987416703587382ull, 11809975405086940443ull,
+ 10637997865576146301ull, 2360648255099789384ull}},
+ {{10449548252452096324ull, 927411201076511842ull,
+ 13297497331970182877ull, 2950810318874736730ull}},
+ {{3838563278710344597ull, 5770950019773027707ull,
+ 7398499628107952788ull, 3688512898593420913ull}},
+ {{186518079960542842ull, 7213687524716284634ull,
+ 13859810553562328889ull, 4610641123241776141ull}},
+ {{4728259818402727180ull, 16037769749016147656ull,
+ 10968224605190149507ull, 2881650702026110088ull}},
+ {{5910324773003408975ull, 15435526167842796666ull,
+ 13710280756487686884ull, 3602063377532637610ull}},
+ {{16611278003109037027ull, 847663636093944216ull,
+ 7914478908754832798ull, 4502579221915797013ull}},
+ {{10382048751943148142ull, 14364847827840878847ull,
+ 7252392327185464450ull, 2814112013697373133ull}},
+ {{8365874921501547273ull, 8732687747946322751ull,
+ 13677176427409218467ull, 3517640017121716416ull}},
+ {{5845657633449546188ull, 6304173666505515535ull,
+ 17096470534261523084ull, 4397050021402145520ull}},
+ {{10571065048547048223ull, 13163480578420723017ull,
+ 10685294083913451927ull, 2748156263376340950ull}},
+ {{17825517329111198183ull, 11842664704598515867ull,
+ 4133245568037039101ull, 3435195329220426188ull}},
+ {{17670210642961609825ull, 968272825465981122ull,
+ 5166556960046298877ull, 4293994161525532735ull}},
+ {{15655567670278394045ull, 2911013525129932153ull,
+ 10146627127670018654ull, 2683746350953457959ull}},
+ {{5734401532565828844ull, 12862138943267191000ull,
+ 8071597891160135413ull, 3354682938691822449ull}},
+ {{7168001915707286055ull, 2242615623801825038ull,
+ 14701183382377557171ull, 4193353673364778061ull}},
+ {{18315059252599217496ull, 17542535829371998312ull,
+ 11494082623199667183ull, 2620846045852986288ull}},
+ {{4447079992039470254ull, 17316483768287609987ull,
+ 14367603278999583979ull, 3276057557316232860ull}},
+ {{947163971621949914ull, 17033918691932124580ull,
+ 17959504098749479974ull, 4095071946645291075ull}},
+ {{9815349519118494504ull, 6034513164030189958ull,
+ 8918847052504731032ull, 2559419966653306922ull}},
+ {{3045814862043342322ull, 7543141455037737448ull,
+ 1925186778776137982ull, 3199274958316633653ull}},
+ {{3807268577554177903ull, 205554781942396002ull, 7018169491897560382ull,
+ 3999093697895792066ull}},
+ {{6991228879398749093ull, 13963529793996161213ull,
+ 8998041950863363142ull, 2499433561184870041ull}},
+ {{13350722117675824270ull, 8231040205640425708ull,
+ 15859238457006591832ull, 3124291951481087551ull}},
+ {{16688402647094780338ull, 10288800257050532135ull,
+ 15212362052830851886ull, 3905364939351359439ull}},
+ {{17347780682075319567ull, 1818814142229194680ull,
+ 16425255310660364285ull, 2440853087094599649ull}},
+ {{3237981778884597843ull, 6885203696213881255ull,
+ 6696511083043291644ull, 3051066358868249562ull}},
+ {{17882535278887911016ull, 8606504620267351568ull,
+ 17594010890658890363ull, 3813832948585311952ull}},
+ {{11176584549304944385ull, 3073222378453400778ull,
+ 10996256806661806477ull, 2383645592865819970ull}},
+ {{4747358649776404673ull, 8453213991494138877ull,
+ 4521948971472482288ull, 2979556991082274963ull}},
+ {{10545884330647893745ull, 10566517489367673596ull,
+ 1040750195913214956ull, 3724446238852843704ull}},
+ {{15814549743509709399ull, 15827445467709571805ull,
+ 650468872445759347ull, 2327778899283027315ull}},
+ {{5933129124104973037ull, 15172620816209576853ull,
+ 14648144145839362896ull, 2909723624103784143ull}},
+ {{12028097423558604200ull, 519031946552419450ull,
+ 13698494163871815717ull, 3637154530129730179ull}},
+ {{5811749742593479442ull, 5260475951617912217ull,
+ 12511431686412381742ull, 4546443162662162724ull}},
+ {{15161558635189394411ull, 17122855525043358847ull,
+ 17043016840862514396ull, 2841526976663851702ull}},
+ {{14340262275559355110ull, 2956825332594646943ull,
+ 12080399014223367188ull, 3551908720829814628ull}},
+ {{13313641826021805983ull, 3696031665743308679ull,
+ 15100498767779208985ull, 4439885901037268285ull}},
+ {{15238555168904710596ull, 13839234837158037684ull,
+ 11743654739075699567ull, 2774928688148292678ull}},
+ {{601449887421336628ull, 12687357528020159202ull,
+ 5456196386989848651ull, 3468660860185365848ull}},
+ {{9975184396131446593ull, 11247510891597811098ull,
+ 6820245483737310814ull, 4335826075231707310ull}},
+ {{10846176266009542025ull, 2418008288821244032ull,
+ 18097711482617982971ull, 2709891297019817068ull}},
+ {{13557720332511927531ull, 16857568416308718752ull,
+ 4175395279562927097ull, 3387364121274771336ull}},
+ {{16947150415639909414ull, 7236902465103734728ull,
+ 5219244099453658872ull, 4234205151593464170ull}},
+ {{10591969009774943384ull, 4523064040689834205ull,
+ 7873713580585924699ull, 2646378219745915106ull}},
+ {{17851647280646067134ull, 1042144032434904852ull,
+ 618769938877630066ull, 3307972774682393883ull}},
+ {{3867815027098032301ull, 10526052077398406874ull,
+ 14608520478879201294ull, 4134965968352992353ull}},
+ {{7029070410363658092ull, 1967096529946616392ull,
+ 2212796271658418953ull, 2584353730220620221ull}},
+ {{8786338012954572615ull, 7070556680860658394ull,
+ 7377681358000411595ull, 3230442162775775276ull}},
+ {{1759550479338439961ull, 4226509832648435089ull,
+ 9222101697500514494ull, 4038052703469719095ull}},
+ {{12628934095654994736ull, 16476626700687435642ull,
+ 12681342588578903414ull, 2523782939668574434ull}},
+ {{6562795582713967612ull, 11372411339004518745ull,
+ 6628306198868853460ull, 3154728674585718043ull}},
+ {{12815180496819847418ull, 14215514173755648431ull,
+ 3673696730158678921ull, 3943410843232147554ull}},
+ {{14927016838153486493ull, 1967167330956198413ull,
+ 6907746474776562230ull, 2464631777020092221ull}},
+ {{4823712992409694404ull, 11682331200550023825ull,
+ 13246369111898090691ull, 3080789721275115276ull}},
+ {{10641327258939505909ull, 9991227982260141877ull,
+ 16557961389872613364ull, 3850987151593894095ull}},
+ {{8956672546050885145ull, 15467889525767364481ull,
+ 17266254896311465208ull, 2406866969746183809ull}},
+ {{15807526700990994335ull, 888117833499653985ull,
+ 7747760565107167799ull, 3008583712182729762ull}},
+ {{5924350320956579207ull, 14945205347156731194ull,
+ 461328669529183940ull, 3760729640228412203ull}},
+ {{8314404969025249908ull, 117381305118181188ull,
+ 16429231482951597627ull, 2350456025142757626ull}},
+ {{10393006211281562385ull, 13981784686679890197ull,
+ 11313167316834721225ull, 2938070031428447033ull}},
+ {{17602943782529340886ull, 3642172803067699034ull,
+ 306401090761237820ull, 3672587539285558792ull}},
+ {{12780307691306900299ull, 4552716003834623793ull,
+ 383001363451547275ull, 4590734424106948490ull}},
+ {{1070163279425730831ull, 539604493182945919ull, 4851061870584604951ull,
+ 2869209015066842806ull}},
+ {{15172762154564327251ull, 14509563671760846110ull,
+ 15287199375085531996ull, 3586511268833553507ull}},
+ {{9742580656350633255ull, 18136954589701057638ull,
+ 14497313200429527091ull, 4483139086041941884ull}},
+ {{1477426891791757881ull, 9029753609349467072ull,
+ 18284192787123230240ull, 2801961928776213677ull}},
+ {{1846783614739697351ull, 11287192011686833840ull,
+ 9020182928621874088ull, 3502452410970267097ull}},
+ {{2308479518424621688ull, 14108990014608542300ull,
+ 15886914679204730514ull, 4378065513712833871ull}},
+ {{10666171735870164363ull, 13429804777557726841ull,
+ 16846850702144038427ull, 2736290946070521169ull}},
+ {{17944400688265093358ull, 12175569953519770647ull,
+ 7223505322397884322ull, 3420363682588151462ull}},
+ {{17818814841903978794ull, 5996090405044937501ull,
+ 18252753689852131211ull, 4275454603235189327ull}},
+ {{13442602285403680698ull, 1441713493939391986ull,
+ 18325500083798663863ull, 2672159127021993329ull}},
+ {{7579880819899825065ull, 15637199922706403695ull,
+ 9071817049466166116ull, 3340198908777491662ull}},
+ {{4863165006447393427ull, 1099755829673453003ull,
+ 2116399274977931838ull, 4175248635971864578ull}},
+ {{733635119815926940ull, 14522405448828071839ull,
+ 5934435565288595302ull, 2609530397482415361ull}},
+ {{14752101955052072387ull, 8929634774180313990ull,
+ 12029730475038132032ull, 3261912996853019201ull}},
+ {{9216755406960314675ull, 11162043467725392488ull,
+ 1202105038515501328ull, 4077391246066274002ull}},
+ {{5760472129350196672ull, 6976277167328370305ull,
+ 5363001667499576234ull, 2548369528791421251ull}},
+ {{11812276180115133744ull, 17943718496015238689ull,
+ 2092066065947082388ull, 3185461910989276564ull}},
+ {{930287169861753468ull, 3982904046309496746ull, 2615082582433852986ull,
+ 3981827388736595705ull}},
+ {{5193115499590983822ull, 7101001047370823370ull,
+ 13163641660089627876ull, 2488642117960372315ull}},
+ {{15714766411343505585ull, 8876251309213529212ull,
+ 11842866056684646941ull, 3110802647450465394ull}},
+ {{1196713940469830365ull, 15707000154944299420ull,
+ 5580210534001032868ull, 3888503309313081743ull}},
+ {{9971318249648419786ull, 593503059985411329ull,
+ 10405160611391727399ull, 2430314568320676089ull}},
+ {{17075833830487912637ull, 14576936880263927873ull,
+ 17618136782667047152ull, 3037893210400845111ull}},
+ {{7509734232827727084ull, 18221171100329909842ull,
+ 17410984959906421036ull, 3797366513001056389ull}},
+ {{9305269913944717332ull, 2164859900851417843ull,
+ 13187708609155207100ull, 2373354070625660243ull}},
+ {{7019901374003508760ull, 2706074876064272304ull,
+ 11872949743016620971ull, 2966692588282075304ull}},
+ {{8774876717504385950ull, 17217651650362504092ull,
+ 14841187178770776213ull, 3708365735352594130ull}},
+ {{14707669985295017027ull, 13066875290690259009ull,
+ 13887428005159123037ull, 2317728584595371331ull}},
+ {{4549529426336607572ull, 2498536058080660050ull,
+ 12747598988021515893ull, 2897160730744214164ull}},
+ {{14910283819775535273ull, 7734856091028212966ull,
+ 15934498735026894866ull, 3621450913430267705ull}},
+ {{9414482737864643283ull, 445198076930490400ull, 6083065363501454871ull,
+ 4526813641787834632ull}},
+ {{5884051711165402052ull, 7195777825722638356ull,
+ 3801915852188409294ull, 2829258526117396645ull}},
+ {{7355064638956752565ull, 18218094319008073753ull,
+ 9364080833662899521ull, 3536573157646745806ull}},
+ {{13805516817123328610ull, 8937559843477928479ull,
+ 2481729005223848594ull, 4420716447058432258ull}},
+ {{15545977038343162237ull, 10197660920601093203ull,
+ 6162766646692293275ull, 2762947779411520161ull}},
+ {{14820785279501564893ull, 8135390132323978600ull,
+ 12315144326792754498ull, 3453684724264400201ull}},
+ {{79237525667404500ull, 945865628550197443ull, 1558872353208779411ull,
+ 4317105905330500252ull}},
+ {{16190424518037985476ull, 16732067082339731065ull,
+ 10197667257610262939ull, 2698191190831562657ull}},
+ {{6402972592265318133ull, 16303397834497275928ull,
+ 17358770090440216578ull, 3372738988539453321ull}},
+ {{8003715740331647667ull, 11155875256266819102ull,
+ 7863404557768107011ull, 4215923735674316652ull}},
+ {{390636319279891888ull, 4666579025953067987ull,
+ 14137999885459842690ull, 2634952334796447907ull}},
+ {{14323353454382028572ull, 15056595819296110791ull,
+ 13060813838397415458ull, 3293690418495559884ull}},
+ {{13292505799550147810ull, 9597372737265362681ull,
+ 16326017297996769323ull, 4117113023119449855ull}},
+ {{1390287097077760526ull, 3692514951577157724ull,
+ 17121289838889062683ull, 2573195639449656159ull}},
+ {{1737858871347200657ull, 3957671044059251ull, 16789926280183940450ull,
+ 3216494549312070199ull}},
+ {{16007381644466164533ull, 9228319125659849871ull,
+ 16375721831802537658ull, 4020618186640087749ull}},
+ {{16922142555432434689ull, 10379385471964794073ull,
+ 12540669154090279988ull, 2512886366650054843ull}},
+ {{7317620139008379650ull, 12974231839955992592ull,
+ 11064150424185462081ull, 3141107958312568554ull}},
+ {{9147025173760474562ull, 2382731744662827028ull,
+ 4606815993377051794ull, 3926384947890710693ull}},
+ {{14940262770455072409ull, 6100893358841654796ull,
+ 5185103005074351323ull, 2453990592431694183ull}},
+ {{228584389359288896ull, 3014430680124680592ull, 1869692737915551250ull,
+ 3067488240539617729ull}},
+ {{285730486699111119ull, 12991410387010626548ull,
+ 6948801940821826966ull, 3834360300674522161ull}},
+ {{9401953591041720258ull, 3507945473454253688ull,
+ 15872216259082111614ull, 2396475187921576350ull}},
+ {{11752441988802150322ull, 13608303878672592918ull,
+ 10616898286997863709ull, 2995593984901970438ull}},
+ {{5467180449147912095ull, 3175321793058577436ull,
+ 4047750821892553829ull, 3744492481127463048ull}},
+ {{12640359817572220867ull, 4290419129875304849ull,
+ 2529844263682846143ull, 2340307800704664405ull}},
+ {{1965391716683112372ull, 751337893916743158ull, 7773991348030945583ull,
+ 2925384750880830506ull}},
+ {{11680111682708666273ull, 14774230422678092659ull,
+ 494117148183906170ull, 3656730938601038133ull}},
+ {{9988453584958444937ull, 9244415991492840016ull,
+ 5229332453657270617ull, 4570913673251297666ull}},
+ {{6242783490599028086ull, 17306975040751494770ull,
+ 7880018801963182039ull, 2856821045782061041ull}},
+ {{17026851400103560915ull, 17022032782511980558ull,
+ 14461709520881365453ull, 3571026307227576301ull}},
+ {{12060192213274675336ull, 7442482922857811986ull,
+ 4242078845819543105ull, 4463782884034470377ull}},
+ {{12149306151724059989ull, 16180766872854602251ull,
+ 14180514324705684200ull, 2789864302521543985ull}},
+ {{10574946671227687082ull, 1779214517358701198ull,
+ 3890584850599941539ull, 3487330378151929982ull}},
+ {{3995311302179833045ull, 16059076201980540210ull,
+ 14086603100104702731ull, 4359162972689912477ull}},
+ {{7108755582289783557ull, 7731079617024143679ull,
+ 11109969946779133159ull, 2724476857931195298ull}},
+ {{4274258459434841542ull, 5052163502852791695ull,
+ 4664090396619140641ull, 3405596072413994123ull}},
+ {{731137055866164024ull, 10926890396993377523ull,
+ 1218426977346537897ull, 4256995090517492654ull}},
+ {{16597861724412210179ull, 18358521544189330711ull,
+ 14596574916123749897ull, 2660621931573432908ull}},
+ {{16135641137087874820ull, 9113093874954499677ull,
+ 18245718645154687372ull, 3325777414466791135ull}},
+ {{6334493366077679812ull, 11391367343693124597ull,
+ 18195462288015971311ull, 4157221768083488919ull}},
+ {{6264901363012243835ull, 14037133617449284729ull,
+ 18289692957651063925ull, 2598263605052180574ull}},
+ {{12442812722192692697ull, 3711358966529442199ull,
+ 13638744160209054099ull, 3247829506315225718ull}},
+ {{10941829884313477968ull, 27512689734414845ull, 7825058163406541816ull,
+ 4059786882894032148ull}},
+ {{9144486686909617682ull, 17195431084009278ull, 14114033388983864443ull,
+ 2537366801808770092ull}},
+ {{2207236321782246294ull, 13856552344137175310ull,
+ 17642541736229830553ull, 3171708502260962615ull}},
+ {{11982417439082583676ull, 3485632374889305425ull,
+ 17441491151859900288ull, 3964635627826203269ull}},
+ {{571481871785532942ull, 2178520234305815891ull,
+ 13206774979126131632ull, 2477897267391377043ull}},
+ {{14549410395014079889ull, 2723150292882269863ull,
+ 11896782705480276636ull, 3097371584239221304ull}},
+ {{13575076975340211957ull, 3403937866102837329ull,
+ 14870978381850345795ull, 3871714480299026630ull}},
+ {{1566894081946550617ull, 18268362230810130995ull,
+ 4682675470229078217ull, 2419821550186891644ull}},
+ {{15793675657715351983ull, 9000394733230500031ull,
+ 5853344337786347772ull, 3024776937733614555ull}},
+ {{15130408553716802075ull, 11250493416538125039ull,
+ 2704994403805546811ull, 3780971172167018194ull}},
+ {{16374034373714083153ull, 4725715376122634197ull,
+ 6302307520805854661ull, 2363106982604386371ull}},
+ {{6632484911860440229ull, 10518830238580680651ull,
+ 3266198382579930422ull, 2953883728255482964ull}},
+ {{3678920121398162383ull, 3925165761371075006ull,
+ 4082747978224913028ull, 3692354660319353705ull}},
+ {{16134383131156015201ull, 11676600637711697686ull,
+ 14080932532459040402ull, 2307721662699596065ull}},
+ {{10944606877090243193ull, 5372378760284846300ull,
+ 3766107610291636791ull, 2884652078374495082ull}},
+ {{13680758596362803992ull, 2103787431928669971ull,
+ 13931006549719321797ull, 3605815097968118852ull}},
+ {{12489262227026117086ull, 7241420308338225368ull,
+ 17413758187149152246ull, 4507268872460148565ull}},
+ {{7805788891891323179ull, 18360945747993554567ull,
+ 13189441876181914105ull, 2817043045287592853ull}},
+ {{5145550096436766069ull, 9116124129709779497ull,
+ 2651744289945228920ull, 3521303806609491067ull}},
+ {{11043623638973345490ull, 11395155162137224371ull,
+ 17149738417713699862ull, 4401629758261863833ull}},
+ {{4596421765144646980ull, 2510285957908377328ull,
+ 3801057483429980558ull, 2751018598913664896ull}},
+ {{5745527206430808724ull, 12361229484240247468ull,
+ 4751321854287475697ull, 3438773248642081120ull}},
+ {{7181909008038510905ull, 1616478800018145623ull,
+ 5939152317859344622ull, 4298466560802601400ull}},
+ {{11406222157665151172ull, 14845357305293504726ull,
+ 3711970198662090388ull, 2686541600501625875ull}},
+ {{5034405660226663157ull, 109952557907329292ull, 28276729900225082ull,
+ 3358177000627032344ull}},
+ {{6293007075283328946ull, 9360812734238937423ull, 35345912375281352ull,
+ 4197721250783790430ull}},
+ {{10850658449693162448ull, 5850507958899335889ull,
+ 13857149250516714557ull, 2623575781739869018ull}},
+ {{18175009080543840963ull, 11924820967051557765ull,
+ 8098064526291117388ull, 3279469727174836273ull}},
+ {{8883703295397637492ull, 14906026208814447207ull,
+ 14734266676291284639ull, 4099337158968545341ull}},
+ {{12469843587264605289ull, 16233795408150111360ull,
+ 11514759681895746851ull, 2562085724355340838ull}},
+ {{15587304484080756611ull, 15680558241760251296ull,
+ 5170077565514907756ull, 3202607155444176048ull}},
+ {{1037386531391394147ull, 1153953728490762505ull,
+ 6462596956893634696ull, 4003258944305220060ull}},
+ {{12177581628188091102ull, 721221080306726565ull,
+ 13262495134913297493ull, 2502036840190762537ull}},
+ {{1386918979952950166ull, 5513212368810796111ull,
+ 2743060863359458154ull, 3127546050238453172ull}},
+ {{15568706780223351419ull, 16114887497868270946ull,
+ 3428826079199322692ull, 3909432562798066465ull}},
+ {{14342127756066982541ull, 848432649312893533ull,
+ 13672231345568046443ull, 2443395351748791540ull}},
+ {{4092601639801564464ull, 14895598866923280629ull,
+ 17090289181960058053ull, 3054244189685989425ull}},
+ {{9727438068179343484ull, 4784440528371937074ull,
+ 7527803422167908855ull, 3817805237107486782ull}},
+ {{10691334811039477582ull, 9907804357873542527ull, 93191120427555130ull,
+ 2386128273192179239ull}},
+ {{8752482495371959073ull, 3161383410487152351ull,
+ 13951546955816607625ull, 2982660341490224048ull}},
+ {{6328917100787560937ull, 8563415281536328343ull,
+ 17439433694770759531ull, 3728325426862780060ull}},
+ {{10873102215633307442ull, 3046291541746511262ull,
+ 1676274022376948899ull, 2330203391789237538ull}},
+ {{4368005732686858494ull, 17642922482465302790ull,
+ 11318714564825961931ull, 2912754239736546922ull}},
+ {{14683379202713348926ull, 17441967084654240583ull,
+ 4925021169177676606ull, 3640942799670683653ull}},
+ {{13742537984964298253ull, 12579086818963024921ull,
+ 10767962479899483662ull, 4551178499588354566ull}},
+ {{1671557212961604552ull, 3250243243424502672ull,
+ 2118290531509789385ull, 2844486562242721604ull}},
+ {{2089446516202005690ull, 8674490072708016244ull,
+ 2647863164387236731ull, 3555608202803402005ull}},
+ {{2611808145252507113ull, 6231426572457632401ull,
+ 7921514973911433818ull, 4444510253504252506ull}},
+ {{13161595136851286706ull, 8506327626213408154ull,
+ 9562632877122034040ull, 2777818908440157816ull}},
+ {{7228621884209332574ull, 10632909532766760193ull,
+ 11953291096402542550ull, 3472273635550197270ull}},
+ {{13647463373689053621ull, 4067764879103674433ull,
+ 5718241833648402380ull, 4340342044437746588ull}},
+ {{1612135580914576657ull, 11765725086294572329ull,
+ 12797273182885027295ull, 2712713777773591617ull}},
+ {{6626855494570608726ull, 10095470339440827507ull,
+ 2161533423324120407ull, 3390892222216989522ull}},
+ {{3671883349785873003ull, 8007651905873646480ull,
+ 11925288816009926317ull, 4238615277771236902ull}},
+ {{2294927093616170627ull, 7310625450384723002ull,
+ 2841619491578816044ull, 2649134548607023064ull}},
+ {{12092030903874989092ull, 9138281812980903752ull,
+ 3552024364473520055ull, 3311418185758778830ull}},
+ {{15115038629843736365ull, 6811166247798741786ull,
+ 13663402492446675877ull, 4139272732198473537ull}},
+ {{14058585162079723132ull, 6562821914087907568ull,
+ 1622097530138090567ull, 2587045457624045961ull}},
+ {{17573231452599653915ull, 3591841374182496556ull,
+ 6639307931100001113ull, 3233806822030057451ull}},
+ {{3519795242040015778ull, 9101487736155508600ull,
+ 3687448895447613487ull, 4042258527537571814ull}},
+ {{2199872026275009861ull, 12605958862738274731ull,
+ 16139713614936922141ull, 2526411579710982383ull}},
+ {{16584898088125926038ull, 1922390523140679701ull,
+ 15562956000243764773ull, 3158014474638727979ull}},
+ {{6896064554875243836ull, 7014674172353237531ull,
+ 14842008981877318062ull, 3947518093298409974ull}},
+ {{2004197337583333446ull, 18219229413002937169ull,
+ 4664569595245935884ull, 2467198808311506234ull}},
+ {{7116932690406554711ull, 4327292692544119845ull,
+ 15054084030912195664ull, 3083998510389382792ull}},
+ {{13507851881435581292ull, 5409115865680149806ull,
+ 370860964930692964ull, 3854998137986728491ull}},
+ {{3830721407469850404ull, 12604069452904869437ull,
+ 16372689167577540766ull, 2409373836241705306ull}},
+ {{9400087777764700909ull, 6531714779276310988ull,
+ 11242489422617150150ull, 3011717295302131633ull}},
+ {{11750109722205876136ull, 17388015510950164543ull,
+ 218053722989273975ull, 3764646619127664542ull}},
+ {{14261347604019754441ull, 17785038721984934695ull,
+ 13971341632150459946ull, 2352904136954790338ull}},
+ {{13214998486597305147ull, 13007926365626392561ull,
+ 8240805003333299125ull, 2941130171193487923ull}},
+ {{2683690052964467722ull, 2424849901750826990ull,
+ 5689320235739236003ull, 3676412713991859904ull}},
+ {{12577984603060360460ull, 16866120432470697449ull,
+ 7111650294674045003ull, 4595515892489824880ull}},
+ {{943711349271643432ull, 8235482261080491954ull, 4444781434171278127ull,
+ 2872197432806140550ull}},
+ {{10403011223444330098ull, 5682666807923227038ull,
+ 14779348829568873467ull, 3590246791007675687ull}},
+ {{3780391992450636814ull, 2491647491476645894ull,
+ 13862500018533703930ull, 4487808488759594609ull}},
+ {{16197803050563811721ull, 6168965700600291587ull,
+ 1746533483942483100ull, 2804880305474746631ull}},
+ {{15635567794777376747ull, 7711207125750364484ull,
+ 16018224910210267587ull, 3506100381843433288ull}},
+ {{1097715669762169318ull, 5027322888760567702ull,
+ 1576037064053282868ull, 4382625477304291611ull}},
+ {{14521130348883519536ull, 12365448842330130621ull,
+ 17125924229529159456ull, 2739140923315182256ull}},
+ {{4316354880822235708ull, 15456811052912663277ull,
+ 2960661213201897704ull, 3423926154143977821ull}},
+ {{10007129619455182538ull, 874269742431277480ull,
+ 8312512534929760035ull, 4279907692679972276ull}},
+ {{6254456012159489087ull, 16687319653515406089ull,
+ 14418692371185875829ull, 2674942307924982672ull}},
+ {{12429756033626749262ull, 7024091511612093899ull,
+ 18023365463982344787ull, 3343677884906228340ull}},
+ {{10925509023606048674ull, 4168428371087729470ull,
+ 4082462756268379368ull, 4179597356132785426ull}},
+ {{2216757121326392517ull, 2605267731929830919ull,
+ 7163225241095125009ull, 2612248347582990891ull}},
+ {{16606004456940154358ull, 7868270683339676552ull,
+ 4342345532941518357ull, 3265310434478738614ull}},
+ {{2310761497465641332ull, 14447024372601983595ull,
+ 14651303953031673754ull, 4081638043098423267ull}},
+ {{17585127000411883497ull, 13641076251303627650ull,
+ 6851221961431102144ull, 2551023776936514542ull}},
+ {{12758036713660078563ull, 17051345314129534563ull,
+ 17787399488643653488ull, 3188779721170643177ull}},
+ {{11335859873647710299ull, 2867437568952366588ull,
+ 8399191305522403149ull, 3985974651463303972ull}},
+ {{16308284457884594745ull, 4097991489808923069ull,
+ 14472866602806277776ull, 2491234157164564982ull}},
+ {{6550297517073579719ull, 5122489362261153837ull,
+ 8867711216653071412ull, 3114042696455706228ull}},
+ {{12799557914769362553ull, 6403111702826442296ull,
+ 11084639020816339265ull, 3892553370569632785ull}},
+ {{7999723696730851596ull, 15531159860334996195ull, 10370360369130184ull,
+ 2432845856606020491ull}},
+ {{5387968602486176591ull, 967205751709193628ull,
+ 13848021005743576443ull, 3041057320757525613ull}},
+ {{6734960753107720738ull, 15044065244918655747ull,
+ 3474968201897306841ull, 3801321650946907017ull}},
+ {{1903507461478631510ull, 2485011750433077986ull,
+ 13701070172254286536ull, 2375826031841816885ull}},
+ {{11602756363703065195ull, 3106264688041347482ull,
+ 3291279660035694458ull, 2969782539802271107ull}},
+ {{5280073417774055685ull, 13106202896906460161ull,
+ 17949157630326781784ull, 3712228174752838883ull}},
+ {{14829260932177254564ull, 8191376810566537600ull,
+ 8912380509740544663ull, 2320142609220524302ull}},
+ {{89832091512016588ull, 5627534994780784097ull, 1917103600320905021ull,
+ 2900178261525655378ull}},
+ {{4723976132817408639ull, 11646104761903368025ull,
+ 11619751537255907084ull, 3625222826907069222ull}},
+ {{10516656184449148703ull, 14557630952379210031ull,
+ 5301317384715108047ull, 4531528533633836528ull}},
+ {{13490439142921799796ull, 16016048372878088125ull,
+ 3313323365446942529ull, 2832205333521147830ull}},
+ {{3027990873370086032ull, 6185002410815446445ull,
+ 13365026243663453970ull, 3540256666901434787ull}},
+ {{8396674610139995444ull, 16954625050374083864ull,
+ 12094596786151929558ull, 4425320833626793484ull}},
+ {{5247921631337497153ull, 5984954638056414511ull,
+ 16782495028199731782ull, 2765825521016745927ull}},
+ {{1948216020744483537ull, 16704565334425293947ull,
+ 16366432766822276823ull, 3457281901270932409ull}},
+ {{16270328081212768133ull, 16269020649604229529ull,
+ 6622982903245682317ull, 4321602376588665512ull}},
+ {{3251426023116898227ull, 12473980915216337408ull,
+ 4139364314528551448ull, 2701001485367915945ull}},
+ {{4064282528896122784ull, 15592476144020421760ull,
+ 9785891411588077214ull, 3376251856709894931ull}},
+ {{5080353161120153480ull, 10267223143170751392ull,
+ 7620678246057708614ull, 4220314820887368664ull}},
+ {{3175220725700095925ull, 1805328446054331716ull,
+ 4762923903786067884ull, 2637696763054605415ull}},
+ {{3969025907125119906ull, 2256660557567914645ull,
+ 1341968861305196951ull, 3297120953818256769ull}},
+ {{9572968402333787787ull, 16655883752242057018ull,
+ 6289147095058884092ull, 4121401192272820961ull}},
+ {{10594791269886005271ull, 1186555308296509828ull,
+ 15459931980480272318ull, 2575875745170513100ull}},
+ {{13243489087357506588ull, 10706566172225413093ull,
+ 878170901890788781ull, 3219844681463141376ull}},
+ {{2719303303914719523ull, 17994893733709154271ull,
+ 1097713627363485976ull, 4024805851828926720ull}},
+ {{8617093592587781558ull, 11246808583568221419ull,
+ 686071017102178735ull, 2515503657393079200ull}},
+ {{6159680972307339044ull, 9446824711032888870ull, 857588771377723419ull,
+ 3144379571741349000ull}},
+ {{16922973252238949613ull, 7196844870363723183ull,
+ 1071985964222154274ull, 3930474464676686250ull}},
+ {{17494387310290425364ull, 9109714062404714893ull,
+ 5281677246066234325ull, 2456546540422928906ull}},
+ {{8032926082580867993ull, 15998828596433281521ull,
+ 15825468594437568714ull, 3070683175528661132ull}},
+ {{14652843621653472895ull, 10775163708686826093ull,
+ 1335091669337409277ull, 3838353969410826416ull}},
+ {{11463870272747114512ull, 9040320327142960260ull,
+ 834432293335880798ull, 2398971230881766510ull}},
+ {{14329837840933893139ull, 2077028372073924517ull,
+ 10266412403524626806ull, 2998714038602208137ull}},
+ {{4077239245885202712ull, 11819657501947181455ull,
+ 17444701522833171411ull, 3748392548252760171ull}},
+ {{9465803556319333551ull, 5081442929503294457ull,
+ 8597095442557038180ull, 2342745342657975107ull}},
+ {{16443940463826554843ull, 6351803661879118071ull,
+ 6134683284768909821ull, 2928431678322468884ull}},
+ {{15943239561355805650ull, 12551440595776285493ull,
+ 7668354105961137276ull, 3660539597903086105ull}},
+ {{6093991396412593350ull, 15689300744720356867ull,
+ 14197128650878809499ull, 4575674497378857631ull}},
+ {{1502901613544176892ull, 7499969956236529090ull,
+ 15790734434440337793ull, 2859796560861786019ull}},
+ {{11101999053784996923ull, 13986648463723049266ull,
+ 15126732024623034337ull, 3574745701077232524ull}},
+ {{4654126780376470345ull, 3648252524371647871ull, 461670957069241306ull,
+ 4468432126346540656ull}},
+ {{9826358265376375822ull, 6891843846159667823ull, 288544348168275816ull,
+ 2792770078966587910ull}},
+ {{7671261813293081873ull, 8614804807699584779ull,
+ 9584052472065120578ull, 3490962598708234887ull}},
+ {{4977391248188964438ull, 1545133972769705166ull,
+ 7368379571654012819ull, 4363703248385293609ull}},
+ {{16945927585400266486ull, 17106609797476923392ull,
+ 16134452278352227771ull, 2727314530240808505ull}},
+ {{2735665408040781491ull, 16771576228418766337ull,
+ 6333007292658121002ull, 3409143162801010632ull}},
+ {{8031267778478364768ull, 11741098248668682113ull,
+ 7916259115822651253ull, 4261428953501263290ull}},
+ {{16548757407617447740ull, 9644029414631620272ull,
+ 9559347965816544937ull, 2663393095938289556ull}},
+ {{2239202685812258059ull, 16666722786716913245ull,
+ 11949184957270681171ull, 3329241369922861945ull}},
+ {{7410689375692710477ull, 16221717464968753652ull,
+ 1101423141306187752ull, 4161551712403577432ull}},
+ {{13855052896662719857ull, 10138573415605471032ull,
+ 688389463316367345ull, 2600969820252235895ull}},
+ {{17318816120828399821ull, 17284902787934226694ull,
+ 14695544884427622893ull, 3251212275315294868ull}},
+ {{12425148114180723968ull, 7771070429635619656ull,
+ 18369431105534528617ull, 4064015344144118585ull}},
+ {{7765717571362952480ull, 16386134064590732045ull,
+ 4563365413317998529ull, 2540009590090074116ull}},
+ {{14318832982631078504ull, 6647609525456251344ull,
+ 5704206766647498162ull, 3175011987612592645ull}},
+ {{17898541228288848130ull, 17532883943675089988ull,
+ 11741944476736760606ull, 3968764984515740806ull}},
+ {{1963216230825754273ull, 6346366446369543339ull,
+ 2727029279533087475ull, 2480478115322338004ull}},
+ {{16289078343814356553ull, 3321272039534541269ull,
+ 3408786599416359344ull, 3100597644152922505ull}},
+ {{6526289874485781980ull, 4151590049418176587ull,
+ 8872669267697837084ull, 3875747055191153131ull}},
+ {{1773088162339919785ull, 11818115817741136175ull,
+ 3239575283097454225ull, 2422341909494470707ull}},
+ {{16051418258207063444ull, 937586716894256506ull,
+ 17884527159153981494ull, 3027927386868088383ull}},
+ {{10840900785904053496ull, 10395355432972596441ull,
+ 17743972930515088963ull, 3784909233585110479ull}},
+ {{18304778037258503195ull, 4191254136394178823ull,
+ 18007512109213012458ull, 2365568270990694049ull}},
+ {{18269286528145741090ull, 14462439707347499337ull,
+ 8674332081234101860ull, 2956960338738367562ull}},
+ {{9001550104900012651ull, 18078049634184374172ull,
+ 1619543064687851517ull, 3696200423422959453ull}},
+ {{14849340852417283715ull, 13604624030578927809ull,
+ 3318057424643601150ull, 2310125264639349658ull}},
+ {{4726618010239440931ull, 7782408001368883954ull,
+ 13370943817659277246ull, 2887656580799187072ull}},
+ {{15131644549654076972ull, 504637964856329134ull,
+ 16713679772074096558ull, 3609570725998983840ull}},
+ {{9691183650212820407ull, 9854169492925187226ull,
+ 2445355641383069081ull, 4511963407498729801ull}},
+ {{10668675799810400659ull, 17688070979146711776ull,
+ 13057562321932887935ull, 2819977129686706125ull}},
+ {{13335844749763000823ull, 17498402705506001816ull,
+ 2486894847133946207ull, 3524971412108382657ull}},
+ {{16669805937203751029ull, 17261317363455114366ull,
+ 7720304577344820663ull, 4406214265135478321ull}},
+ {{5806942692324956489ull, 17705852379800528335ull,
+ 16354405406908982674ull, 2753883915709673950ull}},
+ {{2646992346978807707ull, 12908943437895884611ull,
+ 11219634721781452535ull, 3442354894637092438ull}},
+ {{17143798489005673346ull, 11524493278942467859ull,
+ 4801171365372039861ull, 4302943618296365548ull}},
+ {{8409031046414851889ull, 9508651308552736364ull,
+ 12224104140212300721ull, 2689339761435228467ull}},
+ {{10511288808018564862ull, 16497500154118308359ull,
+ 10668444156837987997ull, 3361674701794035584ull}},
+ {{8527424991595818173ull, 6786817137365721737ull,
+ 13335555196047484997ull, 4202093377242544480ull}},
+ {{16858855665815856118ull, 6547603720067270037ull,
+ 8334721997529678123ull, 2626308360776590300ull}},
+ {{7238511526987656436ull, 3572818631656699643ull,
+ 10418402496912097654ull, 3282885450970737875ull}},
+ {{4436453390307182641ull, 13689395326425650362ull,
+ 8411317102712734163ull, 4103606813713422344ull}},
+ {{7384469387369377055ull, 6250029069802337524ull,
+ 5257073189195458852ull, 2564754258570888965ull}},
+ {{9230586734211721318ull, 7812536337252921905ull,
+ 11183027504921711469ull, 3205942823213611206ull}},
+ {{16149919436192039551ull, 14377356439993540285ull,
+ 4755412344297363528ull, 4007428529017014008ull}},
+ {{12399542656833718672ull, 8985847774995962678ull,
+ 2972132715185852205ull, 2504642830635633755ull}},
+ {{6276056284187372532ull, 15843995737172341252ull,
+ 17550223949264478968ull, 3130803538294542193ull}},
+ {{7845070355234215664ull, 1358250597755874949ull,
+ 8102721881298434999ull, 3913504422868177742ull}},
+ {{7209011981235078742ull, 7766435651238503699ull, 452515157384133970ull,
+ 2445940264292611089ull}},
+ {{4399578958116460524ull, 484672527193353816ull, 5177329965157555367ull,
+ 3057425330365763861ull}},
+ {{5499473697645575655ull, 14440898714273855982ull,
+ 11083348474874332112ull, 3821781662957204826ull}},
+ {{17272229116310648496ull, 9025561696421159988ull,
+ 11538778815223845474ull, 2388613539348253016ull}},
+ {{3143542321678759004ull, 2058580083671674178ull,
+ 14423473519029806843ull, 2985766924185316270ull}},
+ {{13152799938953224563ull, 16408283159871756434ull,
+ 8805969861932482745ull, 3732208655231645338ull}},
+ {{12832185980273153256ull, 3337647947278765915ull,
+ 10115417182135189620ull, 2332630409519778336ull}},
+ {{11428546456914053666ull, 4172059934098457394ull,
+ 12644271477668987025ull, 2915788011899722920ull}},
+ {{5062311034287791275ull, 9826760936050459647ull,
+ 15805339347086233781ull, 3644735014874653650ull}},
+ {{1716202774432351189ull, 16895137188490462463ull,
+ 10533302147003016418ull, 4555918768593317063ull}},
+ {{7990155761661301349ull, 15171146761233926943ull,
+ 13500842869517967117ull, 2847449230370823164ull}},
+ {{5376008683649238783ull, 5128875396260244967ull,
+ 16876053586897458897ull, 3559311537963528955ull}},
+ {{2108324836134160574ull, 11022780263752694113ull,
+ 16483380965194435717ull, 4449139422454411194ull}},
+ {{12846918068652320119ull, 9195080674059127772ull,
+ 14913799121673910227ull, 2780712139034006996ull}},
+ {{16058647585815400149ull, 6882164824146521811ull,
+ 195504828382836168ull, 3475890173792508746ull}},
+ {{15461623463841862282ull, 8602706030183152264ull,
+ 9467753072333321018ull, 4344862717240635932ull}},
+ {{9663514664901163926ull, 9988377287291858069ull,
+ 15140717707063101444ull, 2715539198275397457ull}},
+ {{16691079349553842812ull, 12485471609114822586ull,
+ 5090839078546713093ull, 3394423997844246822ull}},
+ {{11640477150087527707ull, 1771781456111364521ull,
+ 15586920885038167175ull, 4243029997305308527ull}},
+ {{357769191163622961ull, 8024892437710684682ull,
+ 16659354580789936340ull, 2651893748315817829ull}},
+ {{9670583525809304509ull, 10031115547138355852ull,
+ 6989135170705256713ull, 3314867185394772287ull}},
+ {{12088229407261630636ull, 17150580452350332719ull,
+ 4124732944954182987ull, 4143583981743465359ull}},
+ {{14472672407179601004ull, 8413269773505263997ull,
+ 9495487118237446223ull, 2589739988589665849ull}},
+ {{4255782453692337542ull, 5904901198454192093ull,
+ 16481044916224195683ull, 3237174985737082311ull}},
+ {{9931414085542809832ull, 2769440479640352212ull,
+ 15989620126852856700ull, 4046468732171352889ull}},
+ {{15430505840319031953ull, 10954272336629995940ull,
+ 3075983551641953581ull, 2529042957607095556ull}},
+ {{841388226689238325ull, 18304526439214882830ull,
+ 3844979439552441976ull, 3161303697008869445ull}},
+ {{10275107320216323715ull, 4433913975309051921ull,
+ 9417910317867940375ull, 3951629621261086806ull}},
+ {{17951157121203672082ull, 9688725262209239306ull,
+ 1274507930240074830ull, 2469768513288179254ull}},
+ {{13215574364649814294ull, 2887534540906773325ull,
+ 10816506949654869346ull, 3087210641610224067ull}},
+ {{2684409900530104156ull, 12832790212988242465ull,
+ 8908947668641198778ull, 3859013302012780084ull}},
+ {{13206971233899784857ull, 12632179901545039444ull,
+ 14791464329755525044ull, 2411883313757987552ull}},
+ {{16508714042374731072ull, 15790224876931299305ull,
+ 42586338484854689ull, 3014854142197484441ull}},
+ {{6800834497686250127ull, 5902723040881960420ull,
+ 4664918941533456266ull, 3768567677746855551ull}},
+ {{13473893597908682138ull, 8300887918978613166ull,
+ 9833103366099492022ull, 2355354798591784719ull}},
+ {{7618994960531076864ull, 1152737861868490650ull,
+ 7679693189196977124ull, 2944193498239730899ull}},
+ {{300371663809070272ull, 1440922327335613313ull, 4987930468068833501ull,
+ 3680241872799663624ull}},
+ {{4987150598188725744ull, 6412838927596904545ull,
+ 6234913085086041876ull, 4600302340999579530ull}},
+ {{14646184169936423350ull, 13231396366602841148ull,
+ 8508506696606164076ull, 2875188963124737206ull}},
+ {{18307730212420529188ull, 16539245458253551435ull,
+ 1412261333902929287ull, 3593986203905921508ull}},
+ {{18272976747098273580ull, 16062370804389551390ull,
+ 1765326667378661609ull, 4492482754882401885ull}},
+ {{6808924448509033084ull, 3121452725102387763ull,
+ 3409172176325357458ull, 2807801721801501178ull}},
+ {{3899469542208903451ull, 13125187943232760512ull,
+ 13484837257261472630ull, 3509752152251876472ull}},
+ {{4874336927761129313ull, 7183112892186174832ull,
+ 16856046571576840788ull, 4387190190314845590ull}},
+ {{3046460579850705821ull, 13712817594471135078ull,
+ 5923343088808137588ull, 2741993868946778494ull}},
+ {{13031447761668158084ull, 17141021993088918847ull,
+ 16627550897864947793ull, 3427492336183473117ull}},
+ {{11677623683657809701ull, 7591219436078984847ull,
+ 6949380567049021030ull, 4284365420229341397ull}},
+ {{14216043829927212919ull, 132826129121977625ull,
+ 6649205863619332096ull, 2677728387643338373ull}},
+ {{3934996732126852437ull, 166032661402472032ull,
+ 12923193347951553024ull, 3347160484554172966ull}},
+ {{4918745915158565546ull, 207540826753090040ull, 6930619648084665472ull,
+ 4183950605692716208ull}},
+ {{3074216196974103467ull, 129713016720681275ull, 4331637280052915920ull,
+ 2614969128557947630ull}},
+ {{17677828301499793045ull, 162141270900851593ull,
+ 14637918636920920708ull, 3268711410697434537ull}},
+ {{8262227321592577594ull, 202676588626064492ull, 4462340240868987173ull,
+ 4085889263371793172ull}},
+ {{14387264112850136805ull, 2432515877104984259ull,
+ 12012334687397892791ull, 2553680789607370732ull}},
+ {{13372394122635283102ull, 16875702901663394036ull,
+ 15015418359247365988ull, 3192100987009213415ull}},
+ {{16715492653294103877ull, 2647884553369690929ull,
+ 14157586930631819582ull, 3990126233761516769ull}},
+ {{3529653880667733067ull, 15489985901138220543ull,
+ 1930962804003805382ull, 2493828896100947981ull}},
+ {{18247125406116830046ull, 10139110339567999870ull,
+ 7025389523432144632ull, 3117286120126184976ull}},
+ {{13585534720791261749ull, 12673887924459999838ull,
+ 8781736904290180790ull, 3896607650157731220ull}},
+ {{3879273182067150689ull, 3309493934360111995ull,
+ 14711957602036138802ull, 2435379781348582012ull}},
+ {{237405459156550458ull, 13360239454804915802ull,
+ 18389947002545173502ull, 3044224726685727515ull}},
+ {{9520128860800463880ull, 7476927281651368944ull,
+ 18375747734754078974ull, 3805280908357159394ull}},
+ {{5950080538000289925ull, 61393532604717686ull, 16096528352648687263ull,
+ 2378300567723224621ull}},
+ {{16660972709355138214ull, 13911799971038060819ull,
+ 6285602385528695366ull, 2972875709654030777ull}},
+ {{16214529868266534864ull, 8166377926942800216ull,
+ 12468689000338257112ull, 3716094637067538471ull}},
+ {{10134081167666584290ull, 5103986204339250135ull,
+ 14710459652852492551ull, 2322559148167211544ull}},
+ {{8055915441155842458ull, 1768296736996674765ull,
+ 18388074566065615689ull, 2903198935209014430ull}},
+ {{14681580319872190977ull, 6822056939673231360ull,
+ 13761721170727243803ull, 3628998669011268038ull}},
+ {{18351975399840238721ull, 3915885156164151296ull,
+ 7978779426554278946ull, 4536248336264085048ull}},
+ {{11469984624900149201ull, 7059114241029982464ull,
+ 4986737141596424341ull, 2835155210165053155ull}},
+ {{14337480781125186501ull, 13435578819714865984ull,
+ 1621735408568142522ull, 3543944012706316444ull}},
+ {{17921850976406483126ull, 7571101487788806672ull,
+ 2027169260710178153ull, 4429930015882895555ull}},
+ {{11201156860254051954ull, 16261153475936473930ull,
+ 17407881852439719009ull, 2768706259926809721ull}},
+ {{4778074038462789134ull, 6491383789638428701ull,
+ 7924794260267485050ull, 3460882824908512152ull}},
+ {{10584278566505874322ull, 17337601773902811684ull,
+ 9905992825334356312ull, 4326103531135640190ull}},
+ {{15838546140920947259ull, 10836001108689257302ull,
+ 1579559497406584791ull, 2703814706959775119ull}},
+ {{10574810639296408266ull, 8933315367434183724ull,
+ 15809507427040394701ull, 3379768383699718898ull}},
+ {{13218513299120510332ull, 15778330227720117559ull,
+ 10538512246945717568ull, 4224710479624648623ull}},
+ {{15179099839591400814ull, 9861456392325073474ull,
+ 13504099181982155336ull, 2640444049765405389ull}},
+ {{9750502762634475209ull, 12326820490406341843ull,
+ 3045065922195530458ull, 3300555062206756737ull}},
+ {{7576442434865706107ull, 6185153576153151496ull,
+ 8418018421171800977ull, 4125693827758445921ull}},
+ {{4735276521791066317ull, 15394936031164189445ull,
+ 16790476559300845370ull, 2578558642349028700ull}},
+ {{10530781670666220801ull, 10020298002100460998ull,
+ 2541351625416505097ull, 3223198302936285876ull}},
+ {{3940105051478000193ull, 17137058521052964152ull,
+ 3176689531770631371ull, 4028997878670357345ull}},
+ {{2462565657173750121ull, 8404818566444408643ull,
+ 13514646003425114367ull, 2518123674168973340ull}},
+ {{16913265126749351363ull, 5894337189628122899ull,
+ 16893307504281392959ull, 3147654592711216675ull}},
+ {{16529895390009301299ull, 2756235468607765720ull,
+ 16504948361924353295ull, 3934568240889020844ull}},
+ {{10331184618755813312ull, 8640176195520935431ull,
+ 1092220689347945001ull, 2459105150555638028ull}},
+ {{8302294755017378736ull, 15411906262828557193ull,
+ 1365275861684931251ull, 3073881438194547535ull}},
+ {{14989554462199111324ull, 14653196810108308587ull,
+ 15541652882388327776ull, 3842351797743184418ull}},
+ {{7062628529660750626ull, 9158248006317692867ull,
+ 14325219069920092764ull, 2401469873589490261ull}},
+ {{4216599643648550378ull, 11447810007897116084ull,
+ 4071465782117952243ull, 3001837341986862827ull}},
+ {{5270749554560687972ull, 9698076491444007201ull, 477646209220052400ull,
+ 3752296677483578534ull}},
+ {{14823433517668899743ull, 6061297807152504500ull,
+ 14133586936044696462ull, 2345185423427236583ull}},
+ {{82547823376573062ull, 16799994295795406434ull,
+ 13055297651628482673ull, 2931481779284045729ull}},
+ {{9326556816075492136ull, 7164934814462094330ull,
+ 2484064009253439630ull, 3664352224105057162ull}},
+ {{2434823983239589362ull, 18179540554932393721ull,
+ 12328452048421575345ull, 4580440280131321452ull}},
+ {{13050980035593213111ull, 4444683819191664219ull,
+ 16928654567118260399ull, 2862775175082075907ull}},
+ {{11702039026064128485ull, 944168755562192370ull,
+ 16549132190470437595ull, 3578468968852594884ull}},
+ {{5404176745725384798ull, 15015268999734904175ull,
+ 2239671164378495377ull, 4473086211065743606ull}},
+ {{10295139493719447355ull, 2467014097193233253ull,
+ 15234852533018723323ull, 2795678881916089753ull}},
+ {{17480610385576697098ull, 16918825676773705278ull,
+ 5208507610991240441ull, 3494598602395112192ull}},
+ {{12627390945116095564ull, 7313474040684967886ull,
+ 6510634513739050552ull, 4368248252993890240ull}},
+ {{3280433322270171824ull, 4570921275428104929ull,
+ 4069146571086906595ull, 2730155158121181400ull}},
+ {{8712227671265102683ull, 1101965575857743257ull,
+ 5086433213858633244ull, 3412693947651476750ull}},
+ {{15501970607508766258ull, 1377456969822179071ull,
+ 15581413554178067363ull, 4265867434564345937ull}},
+ {{16606260657334060768ull, 17001811670634719583ull,
+ 2820854443720210245ull, 2666167146602716211ull}},
+ {{16146139803240188055ull, 7417206533011235767ull,
+ 17361126109932426519ull, 3332708933253395263ull}},
+ {{15570988735622847165ull, 4659822147836656805ull,
+ 17089721618988145245ull, 4165886166566744079ull}},
+ {{12037710968977973430ull, 5218231851611604455ull,
+ 17598605039508672634ull, 2603678854104215049ull}},
+ {{10435452692795078884ull, 15746161851369281377ull,
+ 8163198244103677080ull, 3254598567630268812ull}},
+ {{17656001884421236509ull, 1235958240502050105ull,
+ 10203997805129596351ull, 4068248209537836015ull}},
+ {{4117472150122190962ull, 7690002927954863172ull,
+ 13295027655847079575ull, 2542655130961147509ull}},
+ {{5146840187652738702ull, 5000817641516191061ull,
+ 2783726514526685757ull, 3178318913701434387ull}},
+ {{11045236252993311282ull, 10862708070322626730ull,
+ 17314716198440520908ull, 3972898642126792983ull}},
+ {{11514958676548207455ull, 16012564580806417514ull,
+ 17739226651666407423ull, 2483061651329245614ull}},
+ {{5170326308830483511ull, 15404019707580633989ull,
+ 12950661277728233471ull, 3103827064161557018ull}},
+ {{11074593904465492293ull, 14643338616048404582ull,
+ 6964954560305516031ull, 3879783830201946273ull}},
+ {{2309935171863544779ull, 16069615662671334720ull,
+ 15882311646259417279ull, 2424864893876216420ull}},
+ {{2887418964829430974ull, 15475333559911780496ull,
+ 1406145484114719983ull, 3031081117345270526ull}},
+ {{3609273706036788717ull, 14732480931462337716ull,
+ 10981053891998175787ull, 3788851396681588157ull}},
+ {{11479168103127768756ull, 6901957572950267120ull,
+ 9169001691712553819ull, 2368032122925992598ull}},
+ {{14348960128909710945ull, 4015760947760445996ull,
+ 2237880077785916466ull, 2960040153657490748ull}},
+ {{17936200161137138682ull, 14243073221555333303ull,
+ 2797350097232395582ull, 3700050192071863435ull}},
+ {{18127654128351793532ull, 4290234745044695410ull,
+ 17889244875266104903ull, 2312531370044914646ull}},
+ {{13436195623584966107ull, 751107412878481359ull,
+ 13138184057227855321ull, 2890664212556143308ull}},
+ {{12183558511053819730ull, 5550570284525489603ull,
+ 16422730071534819151ull, 3613330265695179135ull}},
+ {{10617762120389886758ull, 2326526837229474100ull,
+ 15916726570991136035ull, 4516662832118973919ull}},
+ {{15859473362098455032ull, 17594980337764278976ull,
+ 16865483134510541877ull, 2822914270074358699ull}},
+ {{1377597628913517174ull, 8158667366923185009ull,
+ 16470167899710789443ull, 3528642837592948374ull}},
+ {{6333683054569284371ull, 5586648190226593357ull,
+ 11364337837783710996ull, 4410803546991185468ull}},
+ {{6264394918319496684ull, 12715027155746396656ull,
+ 16326083185469595180ull, 2756752216869490917ull}},
+ {{7830493647899370855ull, 15893783944682995820ull,
+ 6572545926554830263ull, 3445940271086863647ull}},
+ {{9788117059874213569ull, 15255543912426356871ull,
+ 3603996389766149925ull, 4307425338858579559ull}},
+ {{13035102190062465337ull, 11840557954480166996ull,
+ 9170026771244925559ull, 2692140836786612224ull}},
+ {{16293877737578081671ull, 10189011424672820841ull,
+ 11462533464056156949ull, 3365176045983265280ull}},
+ {{6532289116690438376ull, 17347950299268413956ull,
+ 14328166830070196186ull, 4206470057479081600ull}},
+ {{13306052734786299793ull, 15454154955470146626ull,
+ 8955104268793872616ull, 2629043785924426000ull}},
+ {{7409193881628098934ull, 870949620628131667ull,
+ 11193880335992340771ull, 3286304732405532500ull}},
+ {{4649806333607735763ull, 14923745081067328296ull,
+ 13992350419990425963ull, 4107880915506915625ull}},
+ {{2906128958504834852ull, 7021497666453386233ull,
+ 1827689984852934371ull, 2567425572191822266ull}},
+ {{8244347216558431469ull, 4165186064639344887ull,
+ 11507984517920943772ull, 3209281965239777832ull}},
+ {{5693748002270651432ull, 5206482580799181109ull,
+ 14384980647401179715ull, 4011602456549722290ull}},
+ {{5864435510632851097ull, 948208603785794241ull,
+ 13602298923053125226ull, 2507251535343576431ull}},
+ {{11942230406718451775ull, 10408632791587018609ull,
+ 12391187635389018628ull, 3134064419179470539ull}},
+ {{1092729953115901007ull, 13010790989483773262ull,
+ 10877298525808885381ull, 3917580523974338174ull}},
+ {{14518014275979601842ull, 10437587377641052240ull,
+ 2186625560203165459ull, 2448487827483961359ull}},
+ {{18147517844974502302ull, 8435298203623927396ull,
+ 16568340005536120536ull, 3060609784354951698ull}},
+ {{4237653232508576261ull, 10544122754529909246ull,
+ 11487052970065374862ull, 3825762230443689623ull}},
+ {{16483591325600023875ull, 1978390703153805374ull,
+ 14096937133931941145ull, 2391101394027306014ull}},
+ {{11381117120145254036ull, 7084674397369644622ull,
+ 8397799380560150623ull, 2988876742534132518ull}},
+ {{5003024363326791737ull, 4244156978284667874ull,
+ 1273877188845412471ull, 3736095928167665648ull}},
+ {{7738576245506632740ull, 9570127139068999277ull, 796173243028382794ull,
+ 2335059955104791030ull}},
+ {{14284906325310678829ull, 2739286886981473288ull,
+ 10218588590640254301ull, 2918824943880988787ull}},
+ {{17856132906638348536ull, 8035794627154229514ull,
+ 8161549719872929972ull, 3648531179851235984ull}},
+ {{13096794096443159862ull, 10044743283942786893ull,
+ 10201937149841162465ull, 4560663974814044980ull}},
+ {{10491339319490668866ull, 17807179598532711568ull,
+ 15599582755505502348ull, 2850414984258778112ull}},
+ {{13114174149363336082ull, 3812230424456337844ull,
+ 1052734370672326320ull, 3563018730323472641ull}},
+ {{16392717686704170102ull, 4765288030570422305ull,
+ 5927603981767795804ull, 4453773412904340801ull}},
+ {{3327919526549024458ull, 12201677055961289749ull,
+ 15233967534673342137ull, 2783608383065213000ull}},
+ {{8771585426613668477ull, 1417038264669448474ull, 595715344632126056ull,
+ 3479510478831516251ull}},
+ {{1741109746412309788ull, 1771297830836810593ull,
+ 14579702236072321282ull, 4349388098539395313ull}},
+ {{12617408637576163377ull, 5718747162700394524ull,
+ 2194784869904118945ull, 2718367561587122071ull}},
+ {{15771760796970204222ull, 11760119971802881059ull,
+ 16578539142662312393ull, 3397959451983902588ull}},
+ {{15103014977785367373ull, 865091909471437612ull,
+ 2276429854618338876ull, 4247449314979878236ull}},
+ {{216012324261078800ull, 9764054480274424316ull,
+ 10646140695991237605ull, 2654655821862423897ull}},
+ {{270015405326348500ull, 16816754118770418299ull,
+ 17919361888416434910ull, 3318319777328029871ull}},
+ {{14172577311940099337ull, 11797570611608247065ull,
+ 17787516342093155734ull, 4147899721660037339ull}},
+ {{1940331792321480230ull, 2761795613827766512ull,
+ 8811354704594528382ull, 2592437326037523337ull}},
+ {{2425414740401850287ull, 12675616554139483948ull,
+ 15625879399170548381ull, 3240546657546904171ull}},
+ {{3031768425502312859ull, 2009462637392191223ull,
+ 14920663230535797573ull, 4050683321933630214ull}},
+ {{8812384293580027393ull, 3561757157583813466ull,
+ 4713728500657485579ull, 2531677076208518884ull}},
+ {{1792108330120258433ull, 18287254502261930545ull,
+ 5892160625821856973ull, 3164596345260648605ull}},
+ {{6851821431077710945ull, 9024010072545249469ull,
+ 11976886800704709121ull, 3955745431575810756ull}},
+ {{6588231403637263293ull, 17169221341409250678ull,
+ 16708926287295219008ull, 2472340894734881722ull}},
+ {{17458661291401354924ull, 3014782603052011731ull,
+ 11662785822264247953ull, 3090426118418602153ull}},
+ {{17211640595824305751ull, 8380164272242402568ull,
+ 743424222548146229ull, 3863032648023252692ull}},
+ {{10757275372390191095ull, 7543445679365195557ull,
+ 9688012175947367201ull, 2414395405014532932ull}},
+ {{18058280233915126772ull, 14040993117633882350ull,
+ 12110015219934209001ull, 3017994256268166165ull}},
+ {{13349478255539132657ull, 3716183341760189226ull,
+ 1302460969635597540ull, 3772492820335207707ull}},
+ {{12955109928139345815ull, 11545986625454894074ull,
+ 16954939170518106126ull, 2357808012709504816ull}},
+ {{6970515373319406460ull, 5209111244963841785ull,
+ 2746929889438081042ull, 2947260015886881021ull}},
+ {{13324830235076645979ull, 15734761093059578039ull,
+ 8045348380224989206ull, 3684075019858601276ull}},
+ {{12044351775418419570ull, 10445079329469696741ull,
+ 10056685475281236508ull, 4605093774823251595ull}},
+ {{9833562868850206183ull, 15751546617773336271ull,
+ 3979585412837078865ull, 2878183609264532247ull}},
+ {{7680267567635369825ull, 5854375216934506627ull, 362795747618960678ull,
+ 3597729511580665309ull}},
+ {{4988648441116824377ull, 16541341058022909092ull,
+ 5065180702951088751ull, 4497161889475831636ull}},
+ {{12341277312552791044ull, 17255867188905400038ull,
+ 12389109976199206277ull, 2810726180922394772ull}},
+ {{6203224603836212997ull, 7734775930849586336ull,
+ 15486387470249007847ull, 3513407726152993465ull}},
+ {{7754030754795266246ull, 5056783895134595016ull,
+ 5522926282529096097ull, 4391759657691241832ull}},
+ {{4846269221747041404ull, 14689704980527591645ull,
+ 3451828926580685060ull, 2744849786057026145ull}},
+ {{10669522545611189659ull, 18362131225659489556ull,
+ 8926472176653244229ull, 3431062232571282681ull}},
+ {{13336903182013987073ull, 9117605976792198233ull,
+ 15769776239243943191ull, 4288827790714103351ull}},
+ {{1418035461117660065ull, 12616032763136205752ull,
+ 16773639177168546350ull, 2680517369196314594ull}},
+ {{1772544326397075081ull, 6546668917065481382ull,
+ 11743676934605907130ull, 3350646711495393243ull}},
+ {{11439052444851119659ull, 17406708183186627535ull,
+ 10067910149829996008ull, 4188308389369241554ull}},
+ {{14066936805673031643ull, 10879192614491642209ull,
+ 10904129862071135409ull, 2617692743355775971ull}},
+ {{3748612951809125842ull, 18210676786541940666ull,
+ 9018476309161531357ull, 3272115929194719964ull}},
+ {{13909138226616183110ull, 8928287927895262120ull,
+ 11273095386451914197ull, 4090144911493399955ull}},
+ {{8693211391635114444ull, 7886022964148232777ull,
+ 4739841607318752421ull, 2556340569683374972ull}},
+ {{15478200257971280959ull, 14469214723612678875ull,
+ 5924802009148440526ull, 3195425712104218715ull}},
+ {{14736064304036713295ull, 8863146367661072786ull,
+ 2794316493008162754ull, 3994282140130273394ull}},
+ {{13821726208450333713ull, 10151152498215558395ull,
+ 6358133826557489625ull, 2496426337581420871ull}},
+ {{12665471742135529238ull, 17300626641196835898ull,
+ 3335981264769474127ull, 3120532921976776089ull}},
+ {{6608467640814635739ull, 17014097283068656969ull,
+ 8781662599389230563ull, 3900666152470970111ull}},
+ {{15659507321577617097ull, 8327967792704216653ull,
+ 12406068152259350958ull, 2437916345294356319ull}},
+ {{5739326096689857659ull, 1186587704025495009ull,
+ 10895899171896800794ull, 3047395431617945399ull}},
+ {{11785843639289709978ull, 10706606666886644569ull,
+ 9008187946443613088ull, 3809244289522431749ull}},
+ {{448623246914986880ull, 6691629166804152856ull, 7935960475740952132ull,
+ 2380777680951519843ull}},
+ {{560779058643733600ull, 8364536458505191070ull, 5308264576248802261ull,
+ 2975972101189399804ull}},
+ {{9924345860159442808ull, 15067356591558876741ull,
+ 6635330720311002826ull, 3719965126486749755ull}},
+ {{8508559171813345707ull, 14028783888151685867ull,
+ 1841238690980682814ull, 2324978204054218597ull}},
+ {{6024012946339294230ull, 8312607823334831526ull,
+ 6913234382153241422ull, 2906222755067773246ull}},
+ {{16753388219778893595ull, 1167387742313763599ull,
+ 17864915014546327586ull, 3632778443834716557ull}},
+ {{16330049256296229090ull, 10682606714746980307ull,
+ 8496085712900745770ull, 4540973054793395697ull}},
+ {{7900437775971449230ull, 11288315215144250596ull,
+ 16839268616631435866ull, 2838108159245872310ull}},
+ {{9875547219964311537ull, 4887021982075537437ull,
+ 11825713733934519025ull, 3547635199057340388ull}},
+ {{16956120043382777325ull, 10720463496021809700ull,
+ 14782142167418148781ull, 4434543998821675485ull}},
+ {{1374202990259460020ull, 9006132694227325015ull,
+ 11544681863850036940ull, 2771589999263547178ull}},
+ {{15552811793106488737ull, 11257665867784156268ull,
+ 5207480292957770367ull, 3464487499079433973ull}},
+ {{994270667673559305ull, 9460396316302807432ull,
+ 11121036384624600863ull, 4330609373849292466ull}},
+ {{621419167295974566ull, 12830276725330336501ull,
+ 11562333758817763443ull, 2706630858655807791ull}},
+ {{5388459977547356111ull, 11426159888235532722ull,
+ 9841231180094816400ull, 3383288573319759739ull}},
+ {{15958947008788970947ull, 14282699860294415902ull,
+ 7689852956691132596ull, 4229110716649699674ull}},
+ {{5362655862065718938ull, 18150059449538785747ull,
+ 9417844116359345776ull, 2643194197906062296ull}},
+ {{2091633809154760769ull, 4240830238213930568ull,
+ 11772305145449182221ull, 3303992747382577870ull}},
+ {{2614542261443450961ull, 9912723816194801114ull,
+ 5492009394956701968ull, 4129990934228222338ull}},
+ {{6245774931829544755ull, 6195452385121750696ull,
+ 8044191890275326634ull, 2581244333892638961ull}},
+ {{7807218664786930943ull, 16967687518256964178ull,
+ 14666925881271546196ull, 3226555417365798701ull}},
+ {{535651294128887871ull, 2762865324111653607ull, 4498599296307269034ull,
+ 4033194271707248377ull}},
+ {{7252311086471636775ull, 6338476845997171408ull,
+ 14340839606260512906ull, 2520746419817030235ull}},
+ {{9065388858089545969ull, 17146468094351240068ull,
+ 13314363489398253228ull, 3150933024771287794ull}},
+ {{11331736072611932461ull, 2986341044229498469ull,
+ 7419582324893040728ull, 3938666280964109743ull}},
+ {{9388178054596151740ull, 1866463152643436543ull,
+ 11554767980699232311ull, 2461666425602568589ull}},
+ {{7123536549817801771ull, 16168136996086459391ull,
+ 608401920591876676ull, 3077083032003210737ull}},
+ {{4292734668844864310ull, 1763427171398522623ull,
+ 5372188419167233750ull, 3846353790004013421ull}},
+ {{9600488195669122050ull, 14937200037406240351ull,
+ 5663460771193215045ull, 2403971118752508388ull}},
+ {{7388924226159014658ull, 4836441991475636727ull,
+ 7079325963991518807ull, 3004963898440635485ull}},
+ {{4624469264271380419ull, 1433866470917158005ull,
+ 13460843473416786413ull, 3756204873050794356ull}},
+ {{5196136299383306714ull, 3202009553536917705ull,
+ 17636399207740267316ull, 2347628045656746472ull}},
+ {{11106856392656521296ull, 4002511941921147131ull,
+ 3598754935965782529ull, 2934535057070933091ull}},
+ {{9271884472393263716ull, 9614825945828821818ull,
+ 18333501725239391873ull, 3668168821338666363ull}},
+ {{2366483553636803837ull, 16630218450713415177ull,
+ 18305191138121851937ull, 4585211026673332954ull}},
+ {{13008267267091472159ull, 3476357504054802629ull,
+ 16052430479753545365ull, 2865756891670833096ull}},
+ {{2425276028582176486ull, 8957132898495891191ull,
+ 1618794025982380090ull, 3582196114588541371ull}},
+ {{16866653091009884319ull, 1973044086265088180ull,
+ 15858550587760138825ull, 4477745143235676713ull}},
+ {{1318286145026401892ull, 12762367599984149873ull,
+ 2994065089709004909ull, 2798590714522297946ull}},
+ {{6259543699710390269ull, 2117901444698023629ull,
+ 12965953398991031945ull, 3498238393152872432ull}},
+ {{12436115643065375740ull, 7259062824299917440ull,
+ 16207441748738789931ull, 4372797991441090540ull}},
+ {{7772572276915859837ull, 2231071255973754448ull, 906279056106967899ull,
+ 2732998744650681588ull}},
+ {{9715715346144824797ull, 16623897125249356772ull,
+ 1132848820133709873ull, 3416248430813351985ull}},
+ {{12144644182681030996ull, 6944813351279532253ull,
+ 6027747043594525246ull, 4270310538516689981ull}},
+ {{9896245623389338325ull, 18175566399831871370ull,
+ 6073184911460272230ull, 2668944086572931238ull}},
+ {{3146934992381897098ull, 13496085962935063405ull,
+ 16814853176180116096ull, 3336180108216164047ull}},
+ {{8545354758904759276ull, 16870107453668829256ull,
+ 16406880451797757216ull, 4170225135270205059ull}},
+ {{5340846724315474548ull, 10543817158543018285ull,
+ 7948457273159904308ull, 2606390709543878162ull}},
+ {{11287744423821731088ull, 13179771448178772856ull,
+ 712199554595104577ull, 3257988386929847703ull}},
+ {{14109680529777163860ull, 2639656254941302358ull,
+ 14725307498526044434ull, 4072485483662309628ull}},
+ {{4206864312683339509ull, 6261471177765701878ull,
+ 18426689223433553579ull, 2545303427288943517ull}},
+ {{14481952427708950194ull, 3215152953779739443ull,
+ 9198303474009778262ull, 3181629284111179397ull}},
+ {{13490754516208799838ull, 13242313229079450112ull,
+ 16109565360939610731ull, 3977036605138974246ull}},
+ {{8431721572630499899ull, 5970602758960962368ull,
+ 5456792332159868803ull, 2485647878211858904ull}},
+ {{10539651965788124874ull, 2851567430273815056ull,
+ 6820990415199836004ull, 3107059847764823630ull}},
+ {{13174564957235156092ull, 3564459287842268820ull,
+ 17749610055854570813ull, 3883824809706029537ull}},
+ {{17457475135126748366ull, 4533630064115111964ull,
+ 4175977257268024902ull, 2427390506066268461ull}},
+ {{3375099845198883841ull, 14890409616998665764ull,
+ 9831657590012419031ull, 3034238132582835576ull}},
+ {{4218874806498604801ull, 14001326002820944301ull,
+ 12289571987515523789ull, 3792797665728544470ull}},
+ {{4942639763275321953ull, 11056671760976784140ull,
+ 3069296473769814464ull, 2370498541080340294ull}},
+ {{6178299704094152441ull, 13820839701220980175ull,
+ 13059992629067043888ull, 2963123176350425367ull}},
+ {{3111188611690302647ull, 17276049626526225219ull,
+ 11713304767906416956ull, 3703903970438031709ull}},
+ {{18085393946802296819ull, 1574158979724114953ull,
+ 9626658489155204550ull, 2314939981523769818ull}},
+ {{8771684378220707311ull, 11191070761509919500ull,
+ 2809951074589229879ull, 2893674976904712273ull}},
+ {{10964605472775884139ull, 9377152433460011471ull,
+ 8124124861663925253ull, 3617093721130890341ull}},
+ {{9094070822542467270ull, 16333126560252402243ull,
+ 14766842095507294470ull, 4521367151413612926ull}},
+ {{3377951254875348092ull, 5596518081730363498ull,
+ 4617590291264671140ull, 2825854469633508079ull}},
+ {{13445811105448960922ull, 6995647602162954372ull,
+ 1160301845653451021ull, 3532318087041885099ull}},
+ {{16807263881811201153ull, 13356245521131080869ull,
+ 15285435362348977488ull, 4415397608802356373ull}},
+ {{12810382935345694673ull, 8347653450706925543ull,
+ 11859240110681804882ull, 2759623505501472733ull}},
+ {{11401292650754730437ull, 1211194776528881121ull,
+ 988992083070092391ull, 3449529381876840917ull}},
+ {{416557758161249334ull, 15349051525943265114ull,
+ 5847926122265003392ull, 4311911727346051146ull}},
+ {{4872034617278168738ull, 9593157203714540696ull,
+ 8266639844843015024ull, 2694944829591281966ull}},
+ {{6090043271597710922ull, 11991446504643175870ull,
+ 1109927769198992972ull, 3368681036989102458ull}},
+ {{16835926126351914461ull, 14989308130803969837ull,
+ 10610781748353517023ull, 4210851296236378072ull}},
+ {{12828296838183640490ull, 16285846609393563004ull,
+ 6631738592720948139ull, 2631782060147736295ull}},
+ {{16035371047729550613ull, 15745622243314565851ull,
+ 3677987222473797270ull, 3289727575184670369ull}},
+ {{15432527791234550362ull, 10458655767288431506ull,
+ 9209170046519634492ull, 4112159468980837961ull}},
+ {{14257015887948981880ull, 15760031891410045499ull,
+ 17284946325143241317ull, 2570099668113023725ull}},
+ {{13209583841508839446ull, 5864981808980393162ull,
+ 7771124851146887935ull, 3212624585141279657ull}},
+ {{7288607765031273499ull, 2719541242798103549ull,
+ 14325592082360997823ull, 4015780731426599571ull}},
+ {{6861222862358239889ull, 8617242304389896574ull,
+ 6647652042261929687ull, 2509862957141624732ull}},
+ {{17799900614802575670ull, 6159866862059982813ull,
+ 8309565052827412109ull, 3137328696427030915ull}},
+ {{8414817713221055875ull, 12311519596002366421ull,
+ 5775270297606877232ull, 3921660870533788644ull}},
+ {{7565104079976853874ull, 7694699747501479013ull,
+ 12832915972859074078ull, 2451038044083617902ull}},
+ {{14068066118398455246ull, 395002647522072958ull,
+ 6817772929219066790ull, 3063797555104522378ull}},
+ {{8361710611143293250ull, 9717125346257367006ull,
+ 17745588198378609295ull, 3829746943880652972ull}},
+ {{614383113537170377ull, 12990732369051936235ull,
+ 1867620587131855001ull, 2393591839925408108ull}},
+ {{14603036947203626683ull, 2403357406032756581ull,
+ 2334525733914818752ull, 2991989799906760135ull}},
+ {{4418738128722369642ull, 3004196757540945727ull,
+ 16753215222675687152ull, 3739987249883450168ull}},
+ {{9679240358092562883ull, 1877622973463091079ull,
+ 10470759514172304470ull, 2337492031177156355ull}},
+ {{7487364429188315699ull, 11570400753683639657ull,
+ 8476763374287992683ull, 2921865038971445444ull}},
+ {{13970891554912782528ull, 9851314923677161667ull,
+ 10595954217859990854ull, 3652331298714306805ull}},
+ {{12851928425213590256ull, 3090771617741676276ull,
+ 17856628790752376472ull, 4565414123392883506ull}},
+ {{17255827302613269718ull, 1931732261088547672ull,
+ 15772079012647623199ull, 2853383827120552191ull}},
+ {{3123040054557035531ull, 16249723381642848303ull,
+ 15103412747382141094ull, 3566729783900690239ull}},
+ {{17738858123478458126ull, 11088782190198784570ull,
+ 14267579915800288464ull, 4458412229875862799ull}},
+ {{15698472345601424233ull, 6930488868874240356ull,
+ 15834766475016262146ull, 2786507643672414249ull}},
+ {{1176346358292228675ull, 17886483122947576254ull,
+ 5958400038488163970ull, 3483134554590517812ull}},
+ {{10693804984720061652ull, 13134731866829694509ull,
+ 7448000048110204963ull, 4353918193238147265ull}},
+ {{8989471124663732484ull, 5903364407554865116ull,
+ 16184215076137347862ull, 2721198870773842040ull}},
+ {{11236838905829665605ull, 16602577546298357203ull,
+ 1783524771462133211ull, 3401498588467302551ull}},
+ {{9434362613859694103ull, 16141535914445558600ull,
+ 16064464019609830226ull, 4251873235584128188ull}},
+ {{5896476633662308814ull, 14700145964955862029ull,
+ 816917975401368083ull, 2657420772240080118ull}},
+ {{11982281810505273922ull, 13763496437767439632ull,
+ 10244519506106485912ull, 3321775965300100147ull}},
+ {{14977852263131592402ull, 17204370547209299540ull,
+ 8193963364205719486ull, 4152219956625125184ull}},
+ {{137785627602469444ull, 6141045573578424309ull, 5121227102628574679ull,
+ 2595137472890703240ull}},
+ {{4783918052930474708ull, 3064620948545642482ull,
+ 6401533878285718349ull, 3243921841113379050ull}},
+ {{15203269603017869193ull, 8442462204109441006ull,
+ 17225289384711923744ull, 4054902301391723812ull}},
+ {{4890357483458780342ull, 5276538877568400629ull,
+ 1542433828590176532ull, 2534313938369827383ull}},
+ {{10724632872750863331ull, 6595673596960500786ull,
+ 15763100341019884377ull, 3167892422962284228ull}},
+ {{4182419054083803356ull, 12856278014628013887ull,
+ 1257131352565303855ull, 3959865528702855286ull}},
+ {{9531540936443458954ull, 14952702786783590535ull,
+ 14620765150635478621ull, 2474915955439284553ull}},
+ {{7302740152126935788ull, 4855820428197324457ull,
+ 4440898383012184565ull, 3093644944299105692ull}},
+ {{13740111208586057639ull, 10681461553674043475ull,
+ 5551122978765230706ull, 3867056180373882115ull}},
+ {{6281726496152592073ull, 11287599489473665076ull,
+ 1163608852514575239ull, 2416910112733676322ull}},
+ {{7852158120190740091ull, 9497813343414693441ull,
+ 10677883102497994857ull, 3021137640917095402ull}},
+ {{14426883668665813017ull, 16483952697695754705ull,
+ 4123981841267717763ull, 3776422051146369253ull}},
+ {{2099273265275051280ull, 7996627426846152739ull,
+ 4883331660006017554ull, 2360263781966480783ull}},
+ {{16459149636875977812ull, 772412246702915115ull,
+ 1492478556580134039ull, 2950329727458100979ull}},
+ {{15962251027667584360ull, 14800573363660807606ull,
+ 15700656251007331260ull, 3687912159322626223ull}},
+ {{10729441747729704642ull, 53972630866457892ull,
+ 15014134295331776172ull, 4609890199153282779ull}},
+ {{15929273129185841210ull, 9257104931146311990ull,
+ 7077990925368666155ull, 2881181374470801737ull}},
+ {{10688219374627525704ull, 6959695145505502084ull,
+ 13459174675138220598ull, 3601476718088502171ull}},
+ {{13360274218284407130ull, 17922990968736653413ull,
+ 12212282325495387843ull, 4501845897610627714ull}},
+ {{10656014395641448408ull, 8896026346246714431ull,
+ 12244362471862005306ull, 2813653686006642321ull}},
+ {{8708331976124422606ull, 1896660895953617231ull,
+ 1470395034545342921ull, 3517067107508302902ull}},
+ {{6273728951728140354ull, 6982512138369409443ull,
+ 11061365830036454459ull, 4396333884385378627ull}},
+ {{1615237585616393769ull, 2058227077267186950ull,
+ 4607510634559090085ull, 2747708677740861642ull}},
+ {{11242419018875268019ull, 7184469865011371591ull,
+ 14982760330053638414ull, 3434635847176077052ull}},
+ {{9441337755166697120ull, 18203959368118990297ull,
+ 281706338857496401ull, 4293294808970096316ull}},
+ {{17430051143047655460ull, 4459945577433287079ull,
+ 9399438498640711059ull, 2683309255606310197ull}},
+ {{17175877910382181421ull, 963245953364220945ull,
+ 16360984141728276728ull, 3354136569507887746ull}},
+ {{7634789332695563064ull, 1204057441705276182ull,
+ 11227858140305570102ull, 4192670711884859683ull}},
+ {{160057314507339011ull, 14587593956347961326ull,
+ 4711568328477287361ull, 2620419194928037302ull}},
+ {{9423443679988949572ull, 4399434390152787945ull,
+ 15112832447451385010ull, 3275523993660046627ull}},
+ {{16390990618413574869ull, 14722665024545760739ull,
+ 14279354540886843358ull, 4094404992075058284ull}},
+ {{7938526127294790341ull, 4589979621913712558ull,
+ 18147968624909052907ull, 2559003120046911427ull}},
+ {{699785622263712119ull, 1125788508964752794ull,
+ 18073274762708928230ull, 3198753900058639284ull}},
+ {{10098104064684415956ull, 10630607673060716800ull,
+ 4144849379676608671ull, 3998442375073299106ull}},
+ {{6311315040427759973ull, 13561658823304029856ull,
+ 7202216880725268323ull, 2499026484420811941ull}},
+ {{7889143800534699966ull, 12340387510702649416ull,
+ 13614457119333973308ull, 3123783105526014926ull}},
+ {{9861429750668374957ull, 15425484388378311770ull,
+ 7794699362312690827ull, 3904728881907518658ull}},
+ {{10775079612595122252ull, 7335084733522750904ull,
+ 9483373119872819671ull, 2440455551192199161ull}},
+ {{13468849515743902815ull, 4557169898476050726ull,
+ 16465902418268412493ull, 3050569438990248951ull}},
+ {{7612689857825102711ull, 10308148391522451312ull,
+ 15970692004408127712ull, 3813211798737811189ull}},
+ {{4757931161140689195ull, 6442592744701532070ull,
+ 12287525511968773772ull, 2383257374211131993ull}},
+ {{15170785988280637301ull, 8053240930876915087ull,
+ 1524348834678803503ull, 2979071717763914992ull}},
+ {{14351796466923408722ull, 5454865145168755955ull,
+ 1905436043348504379ull, 3723839647204893740ull}},
+ {{6664029782613436500ull, 1103447706516778520ull,
+ 10414269563947591045ull, 2327399779503058587ull}},
+ {{8330037228266795624ull, 5990995651573361054ull,
+ 8406150936507100902ull, 2909249724378823234ull}},
+ {{1189174498478718722ull, 16712116601321477126ull,
+ 1284316633779100319ull, 3636562155473529043ull}},
+ {{10709840159953174211ull, 16278459733224458503ull,
+ 15440453847506039111ull, 4545702694341911303ull}},
+ {{13611179127611815738ull, 17091566360906368420ull,
+ 16567812682332356300ull, 2841064183963694564ull}},
+ {{17013973909514769672ull, 2917713877423408909ull,
+ 2263021779205893760ull, 3551330229954618206ull}},
+ {{7432409331611298378ull, 3647142346779261137ull,
+ 12052149260862143008ull, 4439162787443272757ull}},
+ {{16174470878325531247ull, 2279463966737038210ull,
+ 9838436297252533332ull, 2774476742152045473ull}},
+ {{10994716561052138250ull, 2849329958421297763ull,
+ 16909731389993054569ull, 3468095927690056841ull}},
+ {{9131709682887784909ull, 8173348466454010108ull,
+ 7302106182209154499ull, 4335119909612571052ull}},
+ {{14930690588659641376ull, 2802499782320062365ull,
+ 13787188400735497370ull, 2709449943507856907ull}},
+ {{4828305180542388008ull, 12726496764754853765ull,
+ 12622299482491983808ull, 3386812429384821134ull}},
+ {{10647067494105372914ull, 15908120955943567206ull,
+ 6554502316260203952ull, 4233515536731026418ull}},
+ {{2042731165388470167ull, 9942575597464729504ull,
+ 8708249966090015374ull, 2645947210456891511ull}},
+ {{2553413956735587709ull, 3204847459976136072ull,
+ 6273626439185131314ull, 3307434013071114389ull}},
+ {{3191767445919484636ull, 13229431361824945898ull,
+ 12453719067408802046ull, 4134292516338892986ull}},
+ {{6606540672127065802ull, 3656708582713203282ull,
+ 12395260435557889183ull, 2583932822711808116ull}},
+ {{17481547877013608060ull, 18405943783673667814ull,
+ 15494075544447361478ull, 3229916028389760145ull}},
+ {{12628562809412234267ull, 13784057692737308960ull,
+ 5532536375277038136ull, 4037395035487200182ull}},
+ {{7892851755882646417ull, 8615036057960818100ull,
+ 17292893289830312547ull, 2523371897179500113ull}},
+ {{9866064694853308021ull, 6157109054023634721ull,
+ 7781058557005726972ull, 3154214871474375142ull}},
+ {{16944266886994022930ull, 7696386317529543401ull,
+ 502951159402382907ull, 3942768589342968928ull}},
+ {{3672637776730182476ull, 2504398439242270674ull, 314344474626489317ull,
+ 2464230368339355580ull}},
+ {{13814169257767503903ull, 7742184067480226246ull,
+ 392930593283111646ull, 3080287960424194475ull}},
+ {{8044339535354604070ull, 454358047495507000ull,
+ 14326221296886053270ull, 3850359950530243093ull}},
+ {{5027712209596627544ull, 14119031834966855587ull,
+ 11259731319767477245ull, 2406474969081401933ull}},
+ {{1672954243568396526ull, 3813731738426405772ull, 239606094427182845ull,
+ 3008093711351752417ull}},
+ {{2091192804460495657ull, 9378850691460395119ull,
+ 4911193636461366460ull, 3760117139189690521ull}},
+ {{8224524530428891642ull, 15085153719017522757ull,
+ 14598711068856823797ull, 2350073211993556575ull}},
+ {{14892341681463502456ull, 5021384093489739734ull,
+ 13636702817643641843ull, 2937591514991945719ull}},
+ {{9392055064974602262ull, 1665044098434786764ull,
+ 12434192503627164400ull, 3671989393739932149ull}},
+ {{11740068831218252828ull, 2081305123043483455ull,
+ 1707682574251791788ull, 4589986742174915187ull}},
+ {{14255072047152489873ull, 10524187738756952967ull,
+ 17208202673403227531ull, 2868741713859321991ull}},
+ {{13207154040513224438ull, 8543548655018803305ull,
+ 16898567323326646510ull, 3585927142324152489ull}},
+ {{2673884495359366835ull, 1456063781918728324ull,
+ 7288151098876144426ull, 4482408927905190612ull}},
+ {{10894549846454380080ull, 5521725882126593106ull,
+ 13778466473652366074ull, 2801505579940744132ull}},
+ {{4394815271213199292ull, 16125529389513017191ull,
+ 17223083092065457592ull, 3501881974925930165ull}},
+ {{881833070589111211ull, 1710167663181719873ull, 7693795809799658279ull,
+ 4377352468657412707ull}},
+ {{12080360715186664267ull, 7986383817129656776ull,
+ 2502779371911092472ull, 2735845292910882942ull}},
+ {{15100450893983330334ull, 9982979771412070970ull,
+ 12351846251743641398ull, 3419806616138603677ull}},
+ {{9652191580624387109ull, 3255352677410312905ull,
+ 1604749759397388036ull, 4274758270173254597ull}},
+ {{17561834783958711703ull, 11257967460236221373ull,
+ 3308811608837061474ull, 2671723918858284123ull}},
+ {{8117235424666225917ull, 4849087288440500909ull,
+ 17971072566328490555ull, 3339654898572855153ull}},
+ {{14758230299260170300ull, 1449673092123238232ull,
+ 8628782652628449482ull, 4174568623216068942ull}},
+ {{9223893937037606438ull, 5517731701004411799ull, 781303139465393022ull,
+ 2609105389510043089ull}},
+ {{6918181402869620143ull, 16120536663110290557ull,
+ 5588314942759129181ull, 3261381736887553861ull}},
+ {{13259412772014413083ull, 6315612773605699484ull,
+ 11597079696876299381ull, 4076727171109442326ull}},
+ {{17510505019363783985ull, 6253100992717256129ull,
+ 2636488792120299209ull, 2547954481943401454ull}},
+ {{8053073218922566269ull, 12428062259323958066ull,
+ 12518983027005149819ull, 3184943102429251817ull}},
+ {{842969486798432028ull, 10923391805727559679ull,
+ 1813670728474273562ull, 3981178878036564772ull}},
+ {{7444384956890101874ull, 11438805897007112703ull,
+ 10356916242151196784ull, 2488236798772852982ull}},
+ {{4693795177685239438ull, 14298507371258890879ull,
+ 3722773265834220172ull, 3110295998466066228ull}},
+ {{1255557953679161393ull, 17873134214073613599ull,
+ 4653466582292775215ull, 3887869998082582785ull}},
+ {{7702252748690557727ull, 18088237911437090355ull,
+ 14437631660001454269ull, 2429918748801614240ull}},
+ {{5016129917435809255ull, 8775239334014199232ull,
+ 18047039575001817837ull, 3037398436002017800ull}},
+ {{6270162396794761568ull, 15580735185945136944ull,
+ 4112055395042720680ull, 3796748045002522251ull}},
+ {{3918851497996725980ull, 9737959491215710590ull, 264191612688006473ull,
+ 2372967528126576407ull}},
+ {{14121936409350683283ull, 16784135382447026141ull,
+ 14165297571142171803ull, 2966209410158220508ull}},
+ {{3817362456406190392ull, 16368483209631394773ull,
+ 17706621963927714754ull, 3707761762697775635ull}},
+ {{4691694544467562947ull, 14841988024447009637ull,
+ 8760795718241127769ull, 2317351101686109772ull}},
+ {{10476304199011841588ull, 4717426975276598334ull,
+ 10950994647801409712ull, 2896688877107637215ull}},
+ {{3872008211910026177ull, 5896783719095747918ull,
+ 9077057291324374236ull, 3620861096384546519ull}},
+ {{14063382301742308529ull, 7370979648869684897ull,
+ 6734635595728079891ull, 4526076370480683149ull}},
+ {{1872084910947860975ull, 2301019271329859109ull,
+ 6514990256543743884ull, 2828797731550426968ull}},
+ {{6951792157112214122ull, 2876274089162323886ull,
+ 8143737820679679855ull, 3535997164438033710ull}},
+ {{17913112233245043461ull, 17430400666735068569ull,
+ 956300238994824010ull, 4419996455547542138ull}},
+ {{4278166118137070307ull, 15505686435136805760ull,
+ 5209373667799152910ull, 2762497784717213836ull}},
+ {{5347707647671337884ull, 10158736007066231392ull,
+ 6511717084748941138ull, 3453122230896517295ull}},
+ {{6684634559589172354ull, 3475047971978013432ull,
+ 3527960337508788519ull, 4316402788620646619ull}},
+ {{4177896599743232722ull, 9089434010127340251ull,
+ 18345876275438850488ull, 2697751742887904136ull}},
+ {{610684731251652998ull, 11361792512659175314ull,
+ 4485601270589011494ull, 3372189678609880171ull}},
+ {{9986727950919342055ull, 4978868603969193334ull, 995315569808876464ull,
+ 4215237098262350214ull}},
+ {{1630018950897200881ull, 3111792877480745834ull,
+ 14457130286412711502ull, 2634523186413968883ull}},
+ {{11260895725476276909ull, 13113113133705708100ull,
+ 13459726839588501473ull, 3293153983017461104ull}},
+ {{14076119656845346136ull, 2556333361849971413ull,
+ 16824658549485626842ull, 4116442478771826380ull}},
+ {{11103417794742035287ull, 6209394369583620037ull,
+ 1292039556573740968ull, 2572776549232391488ull}},
+ {{44214188145380397ull, 7761742961979525047ull, 1615049445717176210ull,
+ 3215970686540489360ull}},
+ {{13890325790463889208ull, 478806665619630500ull,
+ 2018811807146470263ull, 4019963358175611700ull}},
+ {{17904825655894706563ull, 7216783193653350918ull,
+ 10485129416321319722ull, 2512477098859757312ull}},
+ {{13157660033013607396ull, 18244351028921464456ull,
+ 13106411770401649652ull, 3140596373574696640ull}},
+ {{16447075041267009245ull, 4358694712442278954ull,
+ 16383014713002062066ull, 3925745466968370800ull}},
+ {{14891107919219268682ull, 7335870213703812250ull,
+ 10239384195626288791ull, 2453590916855231750ull}},
+ {{9390512862169310044ull, 4558151748702377409ull,
+ 3575858207678085181ull, 3066988646069039688ull}},
+ {{16349827096139025459ull, 10309375704305359665ull,
+ 4469822759597606476ull, 3833735807586299610ull}},
+ {{3301112907445809056ull, 15666731852045625599ull,
+ 7405325243175891951ull, 2396084879741437256ull}},
+ {{17961449189589425032ull, 14971728796629644094ull,
+ 9256656553969864939ull, 2995106099676796570ull}},
+ {{13228439450132005482ull, 14102974977359667214ull,
+ 2347448655607555366ull, 3743882624595995713ull}},
+ {{3656088637905115523ull, 4202673342422404105ull,
+ 12996370455823191864ull, 2339926640372497320ull}},
+ {{9181796815808782307ull, 5253341678028005131ull,
+ 16245463069778989830ull, 2924908300465621650ull}},
+ {{6865560001333589980ull, 15790049134389782222ull,
+ 11083456800368961479ull, 3656135375582027063ull}},
+ {{17805322038521763283ull, 15125875399559839873ull,
+ 9242634982033813945ull, 4570169219477533829ull}},
+ {{4210797246435020196ull, 2536143097083818065ull,
+ 8082489872984827668ull, 2856355762173458643ull}},
+ {{9875182576471163149ull, 3170178871354772581ull,
+ 5491426322803646681ull, 3570444702716823304ull}},
+ {{16955664239016341840ull, 8574409607620853630ull,
+ 6864282903504558351ull, 4463055878396029130ull}},
+ {{5985604130957825746ull, 12276535032404115375ull,
+ 8901862833117736873ull, 2789409923997518206ull}},
+ {{2870319145269894278ull, 1510610735222980507ull,
+ 1903956504542395284ull, 3486762404996897758ull}},
+ {{17422956986869531560ull, 1888263419028725633ull,
+ 11603317667532769913ull, 4358453006246122197ull}},
+ {{3971819089152375369ull, 12709379682961423281ull,
+ 9557916551421675147ull, 2724033128903826373ull}},
+ {{9576459879867857115ull, 11275038585274391197ull,
+ 16559081707704481838ull, 3405041411129782966ull}},
+ {{16582260868262209298ull, 4870426194738213188ull,
+ 11475480097775826490ull, 4256301763912228708ull}},
+ {{1140541005809105003ull, 7655702390138771147ull,
+ 16395547097964667364ull, 2660188602445142942ull}},
+ {{15260734312543544966ull, 9569627987673463933ull,
+ 11271061835601058397ull, 3325235753056428678ull}},
+ {{5240859835397267496ull, 16573721003019217821ull,
+ 4865455257646547188ull, 4156544691320535848ull}},
+ {{5581380406336986137ull, 1135203590032235330ull,
+ 3040909536029091993ull, 2597840432075334905ull}},
+ {{16200097544776008479ull, 6030690505967682066ull,
+ 8412822938463752895ull, 3247300540094168631ull}},
+ {{11026749894115234791ull, 2926677114032214679ull,
+ 5904342654652303215ull, 4059125675117710789ull}},
+ {{13809247711463103600ull, 8746702223911216030ull,
+ 5996057168371383461ull, 2536953546948569243ull}},
+ {{8038187602474103692ull, 15545063798316407942ull,
+ 2883385442036841422ull, 3171191933685711554ull}},
+ {{824362466237853807ull, 10207957711040734120ull,
+ 12827603839400827586ull, 3963989917107139442ull}},
+ {{515226541398658630ull, 10991659587827846729ull,
+ 12628938418052905145ull, 2477493698191962151ull}},
+ {{5255719195175711191ull, 18351260503212196315ull,
+ 11174487004138743527ull, 3096867122739952689ull}},
+ {{1957962975542251085ull, 18327389610587857490ull,
+ 133050699891265697ull, 3871083903424940862ull}},
+ {{5835412878141294832ull, 4537089478976329075ull,
+ 13918214742714204773ull, 2419427439640588038ull}},
+ {{2682580079249230636ull, 10283047867147799248ull,
+ 8174396391537980158ull, 3024284299550735048ull}},
+ {{3353225099061538295ull, 3630437797079973252ull,
+ 10217995489422475198ull, 3780355374438418810ull}},
+ {{11319137723768237242ull, 16104081678457146994ull,
+ 10997933199316434902ull, 2362722109024011756ull}},
+ {{4925550117855520745ull, 10906730061216657935ull,
+ 13747416499145543628ull, 2953402636280014695ull}},
+ {{1545251628892013027ull, 13633412576520822419ull,
+ 12572584605504541631ull, 3691753295350018369ull}},
+ {{17106683332553365806ull, 15438411887966595867ull,
+ 940336350799256663ull, 2307345809593761481ull}},
+ {{16771668147264319354ull, 14686328841530856930ull,
+ 5787106456926458733ull, 2884182261992201851ull}},
+ {{11741213147225623384ull, 4522852996631407451ull,
+ 2622197052730685513ull, 3605227827490252314ull}},
+ {{10064830415604641326ull, 10265252264216647218ull,
+ 12501118352768132699ull, 4506534784362815392ull}},
+ {{10902205028180288733ull, 4109939655921710559ull,
+ 7813198970480082937ull, 2816584240226759620ull}},
+ {{9016070266797973012ull, 9749110588329526103ull,
+ 9766498713100103671ull, 3520730300283449525ull}},
+ {{6658401815070078361ull, 7574702216984519725ull,
+ 16819809409802517493ull, 4400912875354311906ull}},
+ {{6467344143632492928ull, 7040031894829018780ull,
+ 15124066899553961337ull, 2750570547096444941ull}},
+ {{8084180179540616159ull, 13411725886963661379ull,
+ 5070025569160287959ull, 3438213183870556177ull}},
+ {{5493539205998382295ull, 12152971340277188820ull,
+ 10949217979877747853ull, 4297766479838195221ull}},
+ {{12656834040603764743ull, 9901450096886936964ull,
+ 9149104246637286360ull, 2686104049898872013ull}},
+ {{15821042550754705928ull, 12376812621108671205ull,
+ 16048066326723995854ull, 3357630062373590016ull}},
+ {{5941245133161218698ull, 6247643739531063199ull,
+ 1613338834695443202ull, 4197037577966987521ull}},
+ {{10630807235866843542ull, 8516463355634302403ull,
+ 12537551817753121761ull, 2623148486229367200ull}},
+ {{8676823026406166524ull, 15257265212970265908ull,
+ 15671939772191402201ull, 3278935607786709000ull}},
+ {{10846028783007708155ull, 5236523460930668673ull,
+ 1143180641529701136ull, 4098669509733386251ull}},
+ {{18307983035448287357ull, 3272827163081667920ull,
+ 16855388965451920874ull, 2561668443583366406ull}},
+ {{4438234720600807580ull, 13314405990706860709ull,
+ 11845864169960125284ull, 3202085554479208008ull}},
+ {{10159479419178397379ull, 16643007488383575886ull,
+ 14807330212450156605ull, 4002606943099010010ull}},
+ {{1737988618559110458ull, 12707722689453428881ull,
+ 13866267401208735782ull, 2501629339436881256ull}},
+ {{6784171791626275976ull, 6661281324962010293ull,
+ 17332834251510919728ull, 3127036674296101570ull}},
+ {{13091900757960232874ull, 8326601656202512866ull,
+ 12442670777533873852ull, 3908795842870126963ull}},
+ {{12794123992152533451ull, 14427498071981346349ull,
+ 5470826226744977205ull, 2442997401793829352ull}},
+ {{2157596934908503101ull, 4199314534694519225ull,
+ 6838532783431221507ull, 3053746752242286690ull}},
+ {{7308682187063016780ull, 637457149940761127ull,
+ 17771538016143802692ull, 3817183440302858362ull}},
+ {{11485455394555467344ull, 9621782755567751512ull,
+ 15718897278517264586ull, 2385739650189286476ull}},
+ {{14356819243194334180ull, 2803856407604913582ull,
+ 1201877524437029117ull, 2982174562736608096ull}},
+ {{8722652017138141917ull, 8116506527933529882ull,
+ 1502346905546286396ull, 3727718203420760120ull}},
+ {{10063343529138726602ull, 14296188616813231984ull,
+ 938966815966428997ull, 2329823877137975075ull}},
+ {{12579179411423408252ull, 4035177715734376268ull,
+ 15008766575240199959ull, 2912279846422468843ull}},
+ {{15723974264279260315ull, 432286126240582431ull,
+ 14149272200622862045ull, 3640349808028086054ull}},
+ {{15043281811921687490ull, 5152043676228115943ull,
+ 8463218213923801748ull, 4550437260035107568ull}},
+ {{16319580160092136537ull, 12443399334497348272ull,
+ 5289511383702376092ull, 2844023287521942230ull}},
+ {{1952731126405619056ull, 15554249168121685341ull,
+ 15835261266482745923ull, 3555029109402427787ull}},
+ {{7052599926434411724ull, 14831125441724718772ull,
+ 15182390564676044500ull, 4443786386753034734ull}},
+ {{13631246990876283135ull, 46081364223173424ull, 4877308084495139909ull,
+ 2777366491720646709ull}},
+ {{17039058738595353919ull, 4669287723706354684ull,
+ 10708321124046312790ull, 3471708114650808386ull}},
+ {{2852079349534640783ull, 15059981691487719164ull,
+ 4162029368203115179ull, 4339635143313510483ull}},
+ {{11005921630313926297ull, 7106645547966130525ull,
+ 295425345913253035ull, 2712271964570944052ull}},
+ {{18369088056319795776ull, 4271620916530275252ull,
+ 369281682391566294ull, 3390339955713680065ull}},
+ {{4514615996690193103ull, 14562898182517619874ull,
+ 5073288121416845771ull, 4237924944642100081ull}},
+ {{7433321016358758594ull, 6795968354859818469ull,
+ 14700020121953998367ull, 2648703090401312550ull}},
+ {{13903337288875836146ull, 3883274425147385182ull,
+ 9151653115587722151ull, 3310878863001640688ull}},
+ {{8155799574240019375ull, 242407013006843574ull,
+ 11439566394484652689ull, 4138598578752050860ull}},
+ {{485688715472624205ull, 11680719429197746994ull,
+ 16373101033407683738ull, 2586624111720031787ull}},
+ {{9830482931195556065ull, 5377527249642407934ull,
+ 15854690273332216769ull, 3233280139650039734ull}},
+ {{3064731627139669273ull, 11333595080480397822ull,
+ 10594990804810495153ull, 4041600174562549668ull}},
+ {{15750515322244457008ull, 165967897659166782ull,
+ 15845241289861335279ull, 2526000109101593542ull}},
+ {{10464772115950795451ull, 14042517927356122190ull,
+ 10583179575471893290ull, 3157500136376991928ull}},
+ {{3857593108083718506ull, 8329775372340376930ull,
+ 13228974469339866613ull, 3946875170471239910ull}},
+ {{7022681710979711970ull, 7511952616926429533ull,
+ 3656423024910028729ull, 2466796981544524944ull}},
+ {{13390038157152027867ull, 14001626789585424820ull,
+ 4570528781137535911ull, 3083496226930656180ull}},
+ {{16737547696440034834ull, 12890347468554393121ull,
+ 5713160976421919889ull, 3854370283663320225ull}},
+ {{3543438282633939915ull, 1138938140205413845ull,
+ 15099940656332169691ull, 2408981427289575140ull}},
+ {{9040983871719812798ull, 15258730730538931018ull,
+ 428181746705660497ull, 3011226784111968926ull}},
+ {{2077857802794990189ull, 5238355357891500061ull,
+ 9758599220236851430ull, 3764033480139961157ull}},
+ {{3604504135960562820ull, 17109030153964351250ull,
+ 8404967521861726095ull, 2352520925087475723ull}},
+ {{13729002206805479333ull, 16774601674028051158ull,
+ 5894523383899769715ull, 2940651156359344654ull}},
+ {{7937880721652073359ull, 16356566074107676044ull,
+ 16591526266729487952ull, 3675813945449180817ull}},
+ {{9922350902065091698ull, 1998963518925043439ull,
+ 6904349778129696229ull, 4594767431811476022ull}},
+ {{13118998341431764167ull, 3555195208541846101ull,
+ 18150276666613223855ull, 2871729644882172513ull}},
+ {{2563689871507541497ull, 18279052065959471339ull,
+ 8852787777984366106ull, 3589662056102715642ull}},
+ {{17039670394666590583ull, 13625443045594563365ull,
+ 1842612685625681825ull, 4487077570128394553ull}},
+ {{12955637005880313067ull, 1598372875855520247ull,
+ 12680847974584520901ull, 2804423481330246595ull}},
+ {{11582860238923003429ull, 6609652113246788213ull,
+ 11239373949803263222ull, 3505529351662808244ull}},
+ {{643517243371590575ull, 17485437178413261075ull,
+ 14049217437254079027ull, 4381911689578510305ull}},
+ {{16543099341603101773ull, 8622555227294594219ull,
+ 1863231870642717536ull, 2738694805986568941ull}},
+ {{16067188158576489313ull, 10778194034118242774ull,
+ 6940725856730784824ull, 3423368507483211176ull}},
+ {{10860613161365835833ull, 13472742542647803468ull,
+ 8675907320913481030ull, 4279210634354013970ull}},
+ {{16011255262708423204ull, 3808778070727489263ull,
+ 10034128093998313548ull, 2674506646471258731ull}},
+ {{15402383059958141100ull, 4760972588409361579ull,
+ 7930974099070504031ull, 3343133308089073414ull}},
+ {{14641292806520288471ull, 1339529717084314070ull,
+ 690345586983354231ull, 4178916635111341768ull}},
+ {{4539121985647792391ull, 7754735100818778150ull, 431465991864596394ull,
+ 2611822896944588605ull}},
+ {{14897274518914516296ull, 470046839168696879ull,
+ 5151018508258133397ull, 3264778621180735756ull}},
+ {{14009907130215757466ull, 5199244567388259003ull,
+ 6438773135322666746ull, 4080973276475919695ull}},
+ {{6450348947171154465ull, 7861213873045049781ull,
+ 10941762237217748572ull, 2550608297797449809ull}},
+ {{12674622202391330985ull, 9826517341306312226ull,
+ 18288888814949573619ull, 3188260372246812261ull}},
+ {{6619905716134387923ull, 7671460658205502379ull,
+ 9026052963404803312ull, 3985325465308515327ull}},
+ {{1831598063370298500ull, 4794662911378438987ull,
+ 12558812129769083926ull, 2490828415817822079ull}},
+ {{16124555634495036837ull, 15216700676077824541ull,
+ 11086829143783967003ull, 3113535519772277599ull}},
+ {{6320636487836632334ull, 14409189826669892773ull,
+ 9246850411302570850ull, 3891919399715346999ull}},
+ {{6256240814111589161ull, 13617429660096070887ull,
+ 12696810534705188637ull, 2432449624822091874ull}},
+ {{3208614999212098547ull, 3186729019837924897ull,
+ 6647641131526709989ull, 3040562031027614843ull}},
+ {{8622454767442511087ull, 8595097293224794025ull,
+ 3697865395980999582ull, 3800702538784518554ull}},
+ {{16918249275720039190ull, 760249789838108361ull,
+ 6922851890915512643ull, 2375439086740324096ull}},
+ {{7312753539367885275ull, 14785370292579799164ull,
+ 8653564863644390803ull, 2969298858425405120ull}},
+ {{9140941924209856594ull, 13870026847297361051ull,
+ 10816956079555488504ull, 3711623573031756400ull}},
+ {{3407245693417466419ull, 8668766779560850657ull,
+ 6760597549722180315ull, 2319764733144847750ull}},
+ {{8870743135199220928ull, 6224272456023675417ull,
+ 17674118974007501202ull, 2899705916431059687ull}},
+ {{15700114937426414064ull, 17003712606884370079ull,
+ 17480962699081988598ull, 3624632395538824609ull}},
+ {{15013457653355629676ull, 12031268721750686791ull,
+ 8016145318570322036ull, 4530790494423530762ull}},
+ {{16300940060988350403ull, 16742914987948955052ull,
+ 9621776842533839176ull, 2831744059014706726ull}},
+ {{1929431002525886388ull, 2481899661226642200ull,
+ 2803849016312523163ull, 3539680073768383408ull}},
+ {{2411788753157357985ull, 16937432631815466462ull,
+ 3504811270390653953ull, 4424600092210479260ull}},
+ {{15342426026005512453ull, 3668366367243584682ull,
+ 11413879080848934529ull, 2765375057631549537ull}},
+ {{9954660495652114758ull, 9197143977481868757ull, 432290795779004449ull,
+ 3456718822039436922ull}},
+ {{17055011637992531351ull, 16108115990279723850ull,
+ 9763735531578531369ull, 4320898527549296152ull}},
+ {{15271068292172719999ull, 3150043466283745550ull,
+ 6102334707236582106ull, 2700561579718310095ull}},
+ {{9865463328361124190ull, 13160926369709457746ull,
+ 3016232365618339728ull, 3375701974647887619ull}},
+ {{3108457123596629430ull, 16451157962136822183ull,
+ 17605348512305088372ull, 4219627468309859523ull}},
+ {{8860314729888975250ull, 1058601689480738056ull,
+ 8697499810976986281ull, 2637267167693662202ull}},
+ {{11075393412361219062ull, 5934938130278310474ull,
+ 1648502726866457043ull, 3296583959617077753ull}},
+ {{4620869728596748020ull, 2806986644420500189ull,
+ 6672314427010459208ull, 4120729949521347191ull}},
+ {{5193886589586661464ull, 1754366652762812618ull,
+ 11087725544522618861ull, 2575456218450841994ull}},
+ {{15715730273838102638ull, 6804644334380903676ull,
+ 4636284893798497768ull, 3219320273063552493ull}},
+ {{1197918768588076682ull, 8505805417976129596ull,
+ 10407042135675510114ull, 4024150341329440616ull}},
+ {{9972071267222323734ull, 9927814404662468901ull,
+ 6504401334797193821ull, 2515093963330900385ull}},
+ {{17076775102455292572ull, 17021454024255474030ull,
+ 12742187686923880180ull, 3143867454163625481ull}},
+ {{12122596841214339907ull, 2830073456609790922ull,
+ 2092676553372686514ull, 3929834317704531852ull}},
+ {{12188309044186350346ull, 6380481928808507230ull,
+ 10531294882712704879ull, 2456146448565332407ull}},
+ {{6012014268378162124ull, 3363916392583246134ull,
+ 8552432584963493195ull, 3070183060706665509ull}},
+ {{16738389872327478463ull, 18039953546011221379ull,
+ 15302226749631754397ull, 3837728825883331886ull}},
+ {{8155650660990980088ull, 13580813975470707314ull,
+ 4952205700092458594ull, 2398580516177082429ull}},
+ {{971191289383949301ull, 7752645432483608335ull,
+ 10801943143542961147ull, 2998225645221353036ull}},
+ {{15049047167012100339ull, 5079120772177122514ull,
+ 13502428929428701434ull, 3747782056526691295ull}},
+ {{14017340497809950616ull, 7786136501038089475ull,
+ 15356547108534020252ull, 2342363785329182059ull}},
+ {{12909989603835050366ull, 9732670626297611844ull,
+ 14583997867240137411ull, 2927954731661477574ull}},
+ {{16137487004793812957ull, 7554152264444626901ull,
+ 9006625297195395956ull, 3659943414576846968ull}},
+ {{6336800700710102484ull, 9442690330555783627ull,
+ 11258281621494244945ull, 4574929268221058710ull}},
+ {{1654657428730120101ull, 17430896502665834527ull,
+ 2424739995006515186ull, 2859330792638161694ull}},
+ {{15903379841194813838ull, 12565248591477517350ull,
+ 12254297030612919791ull, 3574163490797702117ull}},
+ {{10655852764638741489ull, 11094874720919508784ull,
+ 1482813232983986027ull, 4467704363497127647ull}},
+ {{6659907977899213431ull, 4628453691360999038ull,
+ 7844287298256073123ull, 2792315227185704779ull}},
+ {{17548257009228792597ull, 1173881095773860893ull,
+ 5193673104392703500ull, 3490394033982130974ull}},
+ {{8100263206253827034ull, 1467351369717326117ull,
+ 15715463417345655183ull, 4362992542477663717ull}},
+ {{7368507513122335848ull, 7834623633714410679ull,
+ 12128007645054728441ull, 2726870339048539823ull}},
+ {{4598948372975531906ull, 14404965560570401253ull,
+ 10548323537891022647ull, 3408587923810674779ull}},
+ {{10360371484646802786ull, 13394520932285613662ull,
+ 8573718403936390405ull, 4260734904763343474ull}},
+ {{1863546159476863838ull, 10677418591892202491ull,
+ 9970260020887631907ull, 2662959315477089671ull}},
+ {{16164490754628243509ull, 8735087221437865209ull,
+ 7851139007682151980ull, 3328699144346362089ull}},
+ {{6370555388003140674ull, 10918859026797331512ull,
+ 14425609778030077879ull, 4160873930432952611ull}},
+ {{3981597117501962922ull, 13741815919389414051ull,
+ 6710163102055104722ull, 2600546206520595382ull}},
+ {{365310378450065748ull, 7953897862381991756ull,
+ 17611075914423656711ull, 3250682758150744227ull}},
+ {{456637973062582185ull, 5330686309550101791ull,
+ 17402158874602182985ull, 4063353447688430284ull}},
+ {{7202927760805195722ull, 14860893989537283379ull,
+ 1652977259771588557ull, 2539595904805268928ull}},
+ {{4391973682579106748ull, 4741059431639440512ull,
+ 2066221574714485697ull, 3174494881006586160ull}},
+ {{5489967103223883435ull, 10538010307976688544ull,
+ 2582776968393107121ull, 3968118601258232700ull}},
+ {{3431229439514927147ull, 18115471488553900100ull,
+ 10837607642100467758ull, 2480074125786395437ull}},
+ {{4289036799393658933ull, 13420967323837599317ull,
+ 18158695571052972602ull, 3100092657232994296ull}},
+ {{9972982017669461571ull, 7552837117942223338ull,
+ 4251625390106664137ull, 3875115821541242871ull}},
+ {{10844799779470801386ull, 16249738244782359346ull,
+ 9574794896457746941ull, 2421947388463276794ull}},
+ {{4332627687483725924ull, 6477114750695785471ull,
+ 2745121583717407869ull, 3027434235579095993ull}},
+ {{804098590927269501ull, 12708079456797119743ull,
+ 8043087998074147740ull, 3784292794473869991ull}},
+ {{7420090646970625294ull, 17165921697352975647ull,
+ 11944459026437424193ull, 2365182996546168744ull}},
+ {{4663427290285893714ull, 7622344066409055847ull,
+ 14930573783046780242ull, 2956478745682710930ull}},
+ {{1217598094429979238ull, 304558046156544001ull, 9439845191953699495ull,
+ 3695598432103388663ull}},
+ {{12290213855087206784ull, 7107877806488921856ull,
+ 12817432272612144040ull, 2309749020064617914ull}},
+ {{15362767318859008480ull, 8884847258111152320ull,
+ 6798418303910404242ull, 2887186275080772393ull}},
+ {{756715074864208984ull, 1882687035784164593ull,
+ 13109708898315393207ull, 3608982843850965491ull}},
+ {{5557579862007649134ull, 16188416850012369453ull,
+ 11775450104466853604ull, 4511228554813706864ull}},
+ {{5779330422968474661ull, 894388494402955100ull, 7359656315291783503ull,
+ 2819517846758566790ull}},
+ {{7224163028710593326ull, 14953043673285857587ull,
+ 18422942430969505186ull, 3524397308448208487ull}},
+ {{4418517767460853753ull, 9467932554752546176ull,
+ 18416992020284493579ull, 4405496635560260609ull}},
+ {{2761573604663033596ull, 3611614837506647408ull,
+ 4593090985036726631ull, 2753435397225162881ull}},
+ {{3451967005828791995ull, 18349576602165472972ull,
+ 10353049749723296192ull, 3441794246531453601ull}},
+ {{4314958757285989993ull, 4490226678997289599ull,
+ 17552998205581508145ull, 4302242808164317001ull}},
+ {{9614378250944825602ull, 14335606720441775759ull,
+ 4053094850847360734ull, 2688901755102698126ull}},
+ {{7406286795253644098ull, 8696136363697443891ull,
+ 14289740600413976726ull, 3361127193878372657ull}},
+ {{4646172475639667219ull, 1646798417767029056ull,
+ 4027117695235307196ull, 4201408992347965822ull}},
+ {{2903857797274792012ull, 10252621047959168968ull,
+ 16352006614804230709ull, 2625880620217478638ull}},
+ {{3629822246593490015ull, 17427462328376349114ull,
+ 11216636231650512578ull, 3282350775271848298ull}},
+ {{13760649845096638326ull, 12560955873615660584ull,
+ 4797423252708364915ull, 4102938469089810373ull}},
+ {{8600406153185398954ull, 5544754411796093913ull,
+ 5304232542156422024ull, 2564336543181131483ull}},
+ {{15362193709909136597ull, 6930943014745117391ull,
+ 2018604659268139626ull, 3205420678976414354ull}},
+ {{14591056118959032842ull, 17887050805286172547ull,
+ 11746627860939950340ull, 4006775848720517942ull}},
+ {{6813567065135701574ull, 1956034716449082034ull,
+ 2729956394660081059ull, 2504234905450323714ull}},
+ {{17740330868274402776ull, 16280101450843516254ull,
+ 12635817530179877131ull, 3130293631812904642ull}},
+ {{12952041548488227661ull, 15738440795127007414ull,
+ 6571399875870070606ull, 3912867039766130803ull}},
+ {{3483339949377754385ull, 5224839478526991730ull,
+ 1801281913205100177ull, 2445541899853831752ull}},
+ {{13577546973576968789ull, 11142735366586127566ull,
+ 2251602391506375221ull, 3056927374817289690ull}},
+ {{7748561680116435178ull, 93361152950495746ull, 12037875026237744835ull,
+ 3821159218521612112ull}},
+ {{9454537068500159890ull, 16199251785089917505ull,
+ 7523671891398590521ull, 2388224511576007570ull}},
+ {{16429857354052587767ull, 6414006676080233169ull,
+ 181217827393462344ull, 2985280639470009463ull}},
+ {{6702263637283570996ull, 8017508345100291462ull,
+ 14061580339523991642ull, 3731600799337511828ull}},
+ {{18023972828584395585ull, 9622628734115070067ull,
+ 18011859749057270584ull, 2332250499585944892ull}},
+ {{17918280017303106577ull, 12028285917643837584ull,
+ 4068080612612036614ull, 2915313124482431116ull}},
+ {{3951105947919331605ull, 5811985360200021173ull,
+ 5085100765765045768ull, 3644141405603038895ull}},
+ {{9550568453326552410ull, 7264981700250026466ull,
+ 1744689938778919306ull, 4555176757003798619ull}},
+ {{10580791301756483160ull, 9152299581083654445ull,
+ 17231332276232682230ull, 2846985473127374136ull}},
+ {{17837675145622991854ull, 2217002439499792248ull,
+ 3092421271581301172ull, 3558731841409217671ull}},
+ {{3850349858319188202ull, 2771253049374740311ull,
+ 17700584644758790177ull, 4448414801761522088ull}},
+ {{9323997689090574482ull, 13261248201927682454ull,
+ 11062865402974243860ull, 2780259251100951305ull}},
+ {{2431625074508442295ull, 16576560252409603068ull,
+ 18440267772145192729ull, 3475324063876189131ull}},
+ {{3039531343135552868ull, 6885642260229840123ull,
+ 18438648696754103008ull, 4344155079845236414ull}},
+ {{18040608153955578207ull, 4303526412643650076ull,
+ 6912469417043926476ull, 2715096924903272759ull}},
+ {{4104016118734921143ull, 5379408015804562596ull,
+ 4028900752877520191ull, 3393871156129090949ull}},
+ {{5130020148418651428ull, 2112574001328315341ull,
+ 9647811959524288143ull, 4242338945161363686ull}},
+ {{5512105601975351095ull, 8237887778471278944ull,
+ 1418196456275292185ull, 2651461840725852304ull}},
+ {{6890132002469188868ull, 14909045741516486584ull,
+ 1772745570344115231ull, 3314327300907315380ull}},
+ {{8612665003086486085ull, 14024621158468220326ull,
+ 2215931962930144039ull, 4142909126134144225ull}},
+ {{771229608501665900ull, 15682917251683719560ull,
+ 12914172522899809784ull, 2589318203833840140ull}},
+ {{964037010627082374ull, 1156902490895097834ull,
+ 16142715653624762231ull, 3236647754792300175ull}},
+ {{10428418300138628776ull, 15281186168901036004ull,
+ 15566708548603564884ull, 4045809693490375219ull}},
+ {{15741133474441418793ull, 327369318708371694ull,
+ 7423349833663534101ull, 2528631058431484512ull}},
+ {{10453044806196997683ull, 5020897666812852522ull,
+ 9279187292079417626ull, 3160788823039355640ull}},
+ {{3842933970891471296ull, 15499494120370841461ull,
+ 11598984115099272032ull, 3950986028799194550ull}},
+ {{4707676741020863512ull, 9687183825231775913ull,
+ 2637679053509657116ull, 2469366267999496594ull}},
+ {{10496281944703467294ull, 12108979781539719891ull,
+ 12520470853741847203ull, 3086707834999370742ull}},
+ {{8508666412451946213ull, 10524538708497261960ull,
+ 6427216530322533196ull, 3858384793749213428ull}},
+ {{5317916507782466383ull, 15801208729665564533ull,
+ 13240382368306359055ull, 2411490496093258392ull}},
+ {{11259081653155470883ull, 15139824893654567762ull,
+ 16550477960382948819ull, 3014363120116572990ull}},
+ {{4850480029589562796ull, 14313095098640821799ull,
+ 11464725413623910216ull, 3767953900145716238ull}},
+ {{9949079046134558604ull, 8945684436650513624ull,
+ 2553767365087555981ull, 2354971187591072649ull}},
+ {{12436348807668198254ull, 15793791564240529934ull,
+ 7803895224786832880ull, 2943713984488840811ull}},
+ {{6322063972730472010ull, 1295495381591110802ull,
+ 5143183012556153197ull, 3679642480611051014ull}},
+ {{17125952002767865820ull, 6231055245416276406ull,
+ 15652350802549967304ull, 4599553100763813767ull}},
+ {{6092033983302528234ull, 3894409528385172754ull,
+ 16700248279234811421ull, 2874720687977383604ull}},
+ {{16838414515982936100ull, 9479697928908853846ull,
+ 2428566275333962660ull, 3593400859971729506ull}},
+ {{11824646108123894317ull, 11849622411136067308ull,
+ 12259079881022229133ull, 4491751074964661882ull}},
+ {{16613775854432209756ull, 9711857016173736019ull,
+ 12273610944066281112ull, 2807344421852913676ull}},
+ {{16155533799612874291ull, 12139821270217170024ull,
+ 15342013680082851390ull, 3509180527316142095ull}},
+ {{1747673175806541248ull, 5951404550916686723ull,
+ 14565831081676176334ull, 4386475659145177619ull}},
+ {{17233196799374945944ull, 17554685899605092913ull,
+ 6797801416833916256ull, 2741547286965736012ull}},
+ {{7706437943936518718ull, 3496613300796814526ull,
+ 8497251771042395321ull, 3426934108707170015ull}},
+ {{409675393065872590ull, 8982452644423406062ull, 6009878695375606247ull,
+ 4283667635883962519ull}},
+ {{14091105175948334081ull, 12531561930405710644ull,
+ 10673703212250835760ull, 2677292272427476574ull}},
+ {{17613881469935417601ull, 15664452413007138305ull,
+ 4118756978458768892ull, 3346615340534345718ull}},
+ {{8182293782137108289ull, 1133821442549371266ull,
+ 14371818259928236924ull, 4183269175667932147ull}},
+ {{9725619632263080585ull, 9932010438448132849ull,
+ 6676543403241454125ull, 2614543234792457592ull}},
+ {{16768710558756238635ull, 17026699066487553965ull,
+ 8345679254051817656ull, 3268179043490571990ull}},
+ {{7125830143163134581ull, 2836629759399890841ull,
+ 1208727030709996263ull, 4085223804363214988ull}},
+ {{15982858885545428873ull, 8690422627266013631ull,
+ 9978826431048523472ull, 2553264877727009367ull}},
+ {{15366887588504398188ull, 10863028284082517039ull,
+ 7861847020383266436ull, 3191581097158761709ull}},
+ {{14596923467203109831ull, 13578785355103146299ull,
+ 14438994793906470949ull, 3989476371448452136ull}},
+ {{6817234157788249692ull, 10792583856153160389ull,
+ 9024371746191544343ull, 2493422732155282585ull}},
+ {{13133228715662700019ull, 8879043801764062582ull,
+ 15892150701166818333ull, 3116778415194103231ull}},
+ {{7193163857723599216ull, 15710490770632466132ull,
+ 15253502358031135012ull, 3895973018992629039ull}},
+ {{13719099447932025318ull, 595684694790515524ull,
+ 16450968001410541239ull, 2434983136870393149ull}},
+ {{17148874309915031648ull, 14579663923770308117ull,
+ 6728651946481012836ull, 3043728921087991437ull}},
+ {{7601034832111625847ull, 18224579904712885147ull,
+ 13022500951528653949ull, 3804661151359989296ull}},
+ {{2444803760856072203ull, 13696205449659247169ull,
+ 8139063094705408718ull, 2377913219599993310ull}},
+ {{7667690719497478157ull, 7896884775219283153ull, 950456831526985090ull,
+ 2972391524499991638ull}},
+ {{14196299417799235600ull, 647733932169328133ull,
+ 10411443076263507171ull, 3715489405624989547ull}},
+ {{11178530145338216202ull, 16545734772101687747ull,
+ 4201308913450998029ull, 2322180878515618467ull}},
+ {{9361476663245382349ull, 6847110409844945972ull, 639950123386359633ull,
+ 2902726098144523084ull}},
+ {{11701845829056727936ull, 13170574030733570369ull,
+ 799937654232949541ull, 3628407622680653855ull}},
+ {{792249231038746208ull, 2628159483134799250ull,
+ 14834980123073350639ull, 4535509528350817318ull}},
+ {{5106841787826604284ull, 8560128704600331387ull,
+ 4660176558493456245ull, 2834693455219260824ull}},
+ {{1771866216355867451ull, 15311846899177802138ull,
+ 5825220698116820306ull, 3543366819024076030ull}},
+ {{11438204807299610122ull, 9916436587117476864ull,
+ 16504897909500801191ull, 4429208523780095037ull}},
+ {{7148878004562256326ull, 13115301894589504896ull,
+ 12621404202651694696ull, 2768255327362559398ull}},
+ {{8936097505702820408ull, 16394127368236881120ull,
+ 6553383216459842562ull, 3460319159203199248ull}},
+ {{11170121882128525510ull, 11269287173441325592ull,
+ 8191729020574803203ull, 4325398949003999060ull}},
+ {{6981326176330328444ull, 4737461474187134543ull,
+ 14343202674714027810ull, 2703374343127499412ull}},
+ {{4114971701985522650ull, 15145198879588693987ull,
+ 17929003343392534762ull, 3379217928909374265ull}},
+ {{532028609054515409ull, 9708126562631091676ull, 8576196123958504741ull,
+ 4224022411136717832ull}},
+ {{9555889917513847939ull, 8373422110858126249ull,
+ 5360122577474065463ull, 2640014006960448645ull}},
+ {{16556548415319697827ull, 5855091620145269907ull,
+ 11311839240269969733ull, 3300017508700560806ull}},
+ {{16083999500722234380ull, 11930550543608975288ull,
+ 4916427013482686358ull, 4125021885875701008ull}},
+ {{10052499687951396488ull, 2844908071328221651ull,
+ 3072766883426678974ull, 2578138678672313130ull}},
+ {{7953938591511857706ull, 12779507126015052872ull,
+ 13064330641138124525ull, 3222673348340391412ull}},
+ {{9942423239389822132ull, 2139325852236652378ull,
+ 16330413301422655657ull, 4028341685425489265ull}},
+ {{10825700543046026737ull, 12866293703716377496ull,
+ 3288979285748077929ull, 2517713553390930791ull}},
+ {{13532125678807533421ull, 2247809074363308158ull,
+ 17946282162467261124ull, 3147141941738663488ull}},
+ {{7691785061654640968ull, 2809761342954135198ull,
+ 3986108629374524789ull, 3933927427173329361ull}},
+ {{195679645106762701ull, 4061943848560028451ull,
+ 14020532939427547753ull, 2458704641983330850ull}},
+ {{14079657611665617088ull, 9689115829127423467ull,
+ 8302294137429658883ull, 3073380802479163563ull}},
+ {{12987885996154633456ull, 7499708767981891430ull,
+ 5766181653359685700ull, 3841726003098954454ull}},
+ {{3505742729169258006ull, 13910690016843457952ull,
+ 17438921588631967274ull, 2401078751936846533ull}},
+ {{4382178411461572508ull, 8164990484199546632ull,
+ 7963593930507795381ull, 3001348439921058167ull}},
+ {{5477723014326965634ull, 14817924123676821194ull,
+ 5342806394707356322ull, 3751685549901322709ull}},
+ {{8035262902381741426ull, 13872888595725401150ull,
+ 5645097005905791653ull, 2344803468688326693ull}},
+ {{820706591122400974ull, 3506052689374587726ull,
+ 11668057275809627471ull, 2931004335860408366ull}},
+ {{10249255275757777025ull, 18217623917000398369ull,
+ 5361699557907258530ull, 3663755419825510458ull}},
+ {{17423255113124609185ull, 13548657859395722153ull,
+ 15925496484238848971ull, 4579694274781888072ull}},
+ {{3972005418061798885ull, 6162068152908632394ull,
+ 9953435302649280607ull, 2862308921738680045ull}},
+ {{14188378809432024414ull, 3090899172708402588ull,
+ 17053480146738988663ull, 3577886152173350056ull}},
+ {{17735473511790030518ull, 17698682021167666947ull,
+ 2870106109714184212ull, 4472357690216687571ull}},
+ {{8778827935655075122ull, 1838304226375016034ull,
+ 17934717383067222797ull, 2795223556385429731ull}},
+ {{1750162882714068094ull, 6909566301396157947ull,
+ 17806710710406640592ull, 3494029445481787164ull}},
+ {{16022761658674748829ull, 8636957876745197433ull,
+ 3811644314298749124ull, 4367536806852233956ull}},
+ {{3096697009030636163ull, 14621470709820524204ull,
+ 11605649733291494010ull, 2729710504282646222ull}},
+ {{3870871261288295203ull, 9053466350420879447ull,
+ 5283690129759591705ull, 3412138130353307778ull}},
+ {{226903058182981100ull, 15928518956453487213ull,
+ 15827984699054265439ull, 4265172662941634722ull}},
+ {{2447657420578057140ull, 16872853375424511364ull,
+ 14504176455336303803ull, 2665732914338521701ull}},
+ {{3059571775722571424ull, 16479380700853251301ull,
+ 4295162513888216042ull, 3332166142923152127ull}},
+ {{8436150738080602184ull, 11375853839211788318ull,
+ 757267123932882149ull, 4165207678653940159ull}},
+ {{660908192872988461ull, 9415751658721061651ull, 7390820980099133199ull,
+ 2603254799158712599ull}},
+ {{14661193296373399289ull, 7158003554973939159ull,
+ 4626840206696528595ull, 3254068498948390749ull}},
+ {{13714805602039361207ull, 4335818425290036045ull,
+ 10395236276798048648ull, 4067585623685488436ull}},
+ {{10877596510488294706ull, 2709886515806272528ull,
+ 15720394709853556213ull, 2542241014803430272ull}},
+ {{13596995638110368383ull, 7999044163185228564ull,
+ 1203749313607393650ull, 3177801268504287841ull}},
+ {{16996244547637960478ull, 775433167126759897ull,
+ 6116372660436629967ull, 3972251585630359801ull}},
+ {{3705123814632643443ull, 7402174757095306792ull,
+ 15351947958841363489ull, 2482657241018974875ull}},
+ {{4631404768290804304ull, 13864404464796521394ull,
+ 14578248930124316457ull, 3103321551273718594ull}},
+ {{15012627997218281188ull, 3495447525713488030ull,
+ 8999439125800619764ull, 3879151939092148243ull}},
+ {{4771206479834037838ull, 11408026740425705827ull,
+ 3318806444411693400ull, 2424469961932592652ull}},
+ {{1352322081365159394ull, 14260033425532132284ull,
+ 4148508055514616750ull, 3030587452415740815ull}},
+ {{1690402601706449242ull, 8601669745060389547ull, 573949050965883034ull,
+ 3788234315519676019ull}},
+ {{17197402690562388441ull, 9987729609090131370ull,
+ 16499619221349534560ull, 2367646447199797511ull}},
+ {{12273381326348209743ull, 12484662011362664213ull,
+ 16012838008259530296ull, 2959558058999746889ull}},
+ {{1506668602653098466ull, 15605827514203330267ull,
+ 6180989455042249158ull, 3699447573749683612ull}},
+ {{17082568941154044206ull, 5141956177949693512ull,
+ 13086490446256181532ull, 2312154733593552257ull}},
+ {{2906467102733003641ull, 6427445222437116891ull,
+ 2523055002538063203ull, 2890193416991940322ull}},
+ {{17468141933698418263ull, 3422620509619008209ull,
+ 12377190790027354812ull, 3612741771239925402ull}},
+ {{8000119361840859116ull, 4278275637023760262ull,
+ 6248116450679417707ull, 4515927214049906753ull}},
+ {{388388582723149044ull, 368079263926156212ull, 15434287827743105827ull,
+ 2822454508781191720ull}},
+ {{485485728403936305ull, 14295157135189858977ull, 846115710969330667ull,
+ 3528068135976489651ull}},
+ {{5218543178932308285ull, 13257260400559935817ull,
+ 14892702693993827046ull, 4410085169970612063ull}},
+ {{14790804532901162438ull, 3674101731922571981ull,
+ 16225468211387223760ull, 2756303231231632539ull}},
+ {{4653447610844289336ull, 4592627164903214977ull,
+ 15670149245806641796ull, 3445379039039540674ull}},
+ {{10428495531982749574ull, 5740783956129018721ull,
+ 10364314520403526437ull, 4306723798799425843ull}},
+ {{18047024753557688244ull, 5893832981794330652ull,
+ 4171853566038510071ull, 2691702374249641152ull}},
+ {{4112036868237558688ull, 2755605208815525412ull,
+ 5214816957548137589ull, 3364627967812051440ull}},
+ {{5140046085296948360ull, 8056192529446794669ull,
+ 6518521196935171986ull, 4205784959765064300ull}},
+ {{5518371812524286677ull, 9646806349331634572ull,
+ 13297447784939258299ull, 2628615599853165187ull}},
+ {{6897964765655358347ull, 7446821918237155311ull,
+ 12010123712746684970ull, 3285769499816456484ull}},
+ {{4010769938641810029ull, 85155360941668331ull, 15012654640933356213ull,
+ 4107211874770570605ull}},
+ {{200888202437437316ull, 2359065109802236659ull,
+ 11688752159797041585ull, 2567007421731606628ull}},
+ {{14086168308328960357ull, 7560517405680183727ull,
+ 14610940199746301981ull, 3208759277164508285ull}},
+ {{12996024366983812543ull, 14062332775527617563ull,
+ 4428617194400713764ull, 4010949096455635357ull}},
+ {{5816672220151188887ull, 18012330021559536785ull,
+ 5073728755714140054ull, 2506843185284772098ull}},
+ {{11882526293616374013ull, 13292040490094645173ull,
+ 15565532981497450876ull, 3133553981605965122ull}},
+ {{1018099811738303804ull, 16615050612618306467ull,
+ 10233544190017037787ull, 3916942477007456403ull}},
+ {{16777213446832297542ull, 8078563623672747589ull,
+ 4090122109546954665ull, 2448089048129660252ull}},
+ {{7136458753258208215ull, 14709890548018322391ull,
+ 5112652636933693331ull, 3060111310162075315ull}},
+ {{4308887423145372365ull, 13775677166595515085ull,
+ 1779129777739728760ull, 3825139137702594144ull}},
+ {{4998897648679551680ull, 8609798229122196928ull,
+ 1111956111087330475ull, 2390711961064121340ull}},
+ {{6248622060849439600ull, 6150561767975358256ull,
+ 1389945138859163094ull, 2988389951330151675ull}},
+ {{7810777576061799500ull, 16911574246823973628ull,
+ 15572489478856117579ull, 3735487439162689593ull}},
+ {{14105108021893400496ull, 8263890895051289565ull,
+ 2815276896643991631ull, 2334679649476680996ull}},
+ {{3796326972084586908ull, 5718177600386724053ull,
+ 3519096120804989539ull, 2918349561845851245ull}},
+ {{9357094733533121538ull, 2536035982056017162ull,
+ 9010556169433624828ull, 3647936952307314056ull}},
+ {{2472996380061626115ull, 3170044977570021453ull,
+ 11263195211792031035ull, 4559921190384142570ull}},
+ {{3851465746752210274ull, 18122179175477121072ull,
+ 11651183025797407300ull, 2849950743990089106ull}},
+ {{4814332183440262842ull, 4205979895636849724ull,
+ 5340606745391983318ull, 3562438429987611383ull}},
+ {{6017915229300328553ull, 14480846906400837963ull,
+ 2064072413312591243ull, 4453048037484514229ull}},
+ {{1455354009099011394ull, 6744686307286829775ull,
+ 3595888267534063479ull, 2783155023427821393ull}},
+ {{15654250566655927954ull, 3819171865681149314ull,
+ 9106546352844967253ull, 3478943779284776741ull}},
+ {{10344441171465134134ull, 9385650850528824547ull,
+ 15994868959483596970ull, 4348679724105970926ull}},
+ {{4159432722952014882ull, 10477717800007903246ull,
+ 5385107081249860202ull, 2717924827566231829ull}},
+ {{14422662940544794410ull, 3873775213155103249ull,
+ 11343069869989713157ull, 3397406034457789786ull}},
+ {{4193270620398829301ull, 9453905034871266966ull,
+ 4955465300632365638ull, 4246757543072237233ull}},
+ {{16455852193031432025ull, 1297004628367153949ull,
+ 14626380858963698284ull, 2654223464420148270ull}},
+ {{6734757186007126319ull, 1621255785458942437ull,
+ 9059604036849847047ull, 3317779330525185338ull}},
+ {{13030132500936295803ull, 15861627787105841758ull,
+ 2101133009207533000ull, 4147224163156481673ull}},
+ {{3532146794657796973ull, 9913517366941151099ull,
+ 12842423176823177885ull, 2592015101972801045ull}},
+ {{18250241548604409928ull, 17003582727103826777ull,
+ 2217970915746808644ull, 3240018877466001307ull}},
+ {{8977743880473348698ull, 2807734335170231856ull,
+ 16607521699965674518ull, 4050023596832501633ull}},
+ {{5611089925295842937ull, 15589892014763558622ull,
+ 3462172034837464717ull, 2531264748020313521ull}},
+ {{16237234443474579479ull, 5652306963172284565ull,
+ 8939401061974218801ull, 3164080935025391901ull}},
+ {{6461484999061060636ull, 11677069722392743611ull,
+ 15785937345895161405ull, 3955101168781739876ull}},
+ {{1732585115199468946ull, 9604011585709158709ull, 642838804329700070ull,
+ 2471938230488587423ull}},
+ {{6777417412426724086ull, 2781642445281672578ull,
+ 14638606560694288800ull, 3089922788110734278ull}},
+ {{17695143802388180916ull, 3477053056602090722ull,
+ 9074886164013085192ull, 3862403485138417848ull}},
+ {{15671150894920000976ull, 2173158160376306701ull,
+ 5671803852508178245ull, 2414002178211511155ull}},
+ {{5753880563367837508ull, 7328133718897771281ull,
+ 2478068797207834902ull, 3017502722764388944ull}},
+ {{11804036722637184789ull, 18383539185476989909ull,
+ 3097585996509793627ull, 3771878403455486180ull}},
+ {{9683365960861934446ull, 9183868981709424741ull,
+ 11159363284673396825ull, 2357424002159678862ull}},
+ {{16715893469504805961ull, 16091522245564168830ull,
+ 4725832068986970223ull, 2946780002699598578ull}},
+ {{11671494800026231643ull, 15502716788527823134ull,
+ 15130662123088488587ull, 3683475003374498222ull}},
+ {{5365996463178013746ull, 14766709967232391014ull,
+ 9689955617005834926ull, 4604343754218122778ull}},
+ {{17188805844768422303ull, 4617507711092856479ull,
+ 10667908279056034733ull, 2877714846386326736ull}},
+ {{16874321287533139975ull, 10383570657293458503ull,
+ 13334885348820043416ull, 3597143557982908420ull}},
+ {{16481215590989037064ull, 12979463321616823129ull,
+ 16668606686025054270ull, 4496429447478635525ull}},
+ {{3383230716727066309ull, 3500478557583126552ull,
+ 12723722187979352871ull, 2810268404674147203ull}},
+ {{4229038395908832887ull, 18210656252261071902ull,
+ 11292966716546803184ull, 3512835505842684004ull}},
+ {{14509670031740816916ull, 4316576241616788261ull,
+ 14116208395683503981ull, 4391044382303355005ull}},
+ {{11374386779051704525ull, 5003703160224186615ull,
+ 11128473256515883940ull, 2744402738939596878ull}},
+ {{9606297455387242752ull, 6254628950280233269ull,
+ 4687219533790079117ull, 3430503423674496098ull}},
+ {{16619557837661441344ull, 12429972206277679490ull,
+ 15082396454092374704ull, 4288129279593120122ull}},
+ {{14998909666965788744ull, 7768732628923549681ull,
+ 14038183802235122094ull, 2680080799745700076ull}},
+ {{4913579028425072218ull, 487543749299661294ull,
+ 17547729752793902618ull, 3350100999682125095ull}},
+ {{15365345822386116080ull, 9832801723479352425ull,
+ 17322976172564990368ull, 4187626249602656369ull}},
+ {{2685812111350240694ull, 6145501077174595266ull,
+ 3909331080212037124ull, 2617266406001660231ull}},
+ {{12580637176042576676ull, 7681876346468244082ull,
+ 274977831837658501ull, 3271583007502075289ull}},
+ {{6502424433198445037ull, 14214031451512693007ull,
+ 4955408308224461030ull, 4089478759377594111ull}},
+ {{10981544298390110004ull, 4272083638768045225ull,
+ 10014659220281370000ull, 2555924224610996319ull}},
+ {{18338616391415025409ull, 5340104548460056531ull,
+ 7906638006924324596ull, 3194905280763745399ull}},
+ {{18311584470841393857ull, 6675130685575070664ull,
+ 5271611490228017841ull, 3993631600954681749ull}},
+ {{11444740294275871161ull, 15701171724552888925ull,
+ 5600600190606205102ull, 2496019750596676093ull}},
+ {{470867312562675239ull, 10403092618836335349ull,
+ 11612436256685144282ull, 3120024688245845116ull}},
+ {{5200270159130731953ull, 3780493736690643378ull,
+ 14515545320856430353ull, 3900030860307306395ull}},
+ {{7861854867884095375ull, 13892023631500121871ull,
+ 6766372816321575018ull, 2437519287692066497ull}},
+ {{5215632566427731314ull, 8141657502520376531ull,
+ 13069652038829356677ull, 3046899109615083121ull}},
+ {{1907854689607276238ull, 14788757896577858568ull,
+ 2502006993254532134ull, 3808623887018853902ull}},
+ {{1192409181004547649ull, 4631287666933773701ull,
+ 15398812426066246296ull, 2380389929386783688ull}},
+ {{6102197494683072465ull, 5789109583667217126ull, 801771458873256254ull,
+ 2975487411733479611ull}},
+ {{16851118905208616390ull, 16459759016438797215ull,
+ 14837272378873734029ull, 3719359264666849513ull}},
+ {{17449478343396467100ull, 12593192394487942211ull,
+ 2355766209155001912ull, 2324599540416780946ull}},
+ {{17200161910818195970ull, 15741490493109927764ull,
+ 12168079798298528198ull, 2905749425520976182ull}},
+ {{3053458314813193347ull, 10453491079532633898ull,
+ 5986727711018384440ull, 3632186781901220228ull}},
+ {{13040194930371267492ull, 13066863849415792372ull,
+ 7483409638772980550ull, 4540233477376525285ull}},
+ {{17373493868336817990ull, 3555103887457482328ull,
+ 6982974033446806796ull, 2837645923360328303ull}},
+ {{3270123261711470872ull, 4443879859321852911ull,
+ 4117031523381120591ull, 3547057404200410379ull}},
+ {{17922712132421502302ull, 943163805724928234ull, 534603385799012835ull,
+ 4433821755250512974ull}},
+ {{15813381101190826843ull, 16730378443073937810ull,
+ 14169185171406546733ull, 2771138597031570608ull}},
+ {{10543354339633757745ull, 7077914998560258551ull,
+ 17711481464258183417ull, 3463923246289463260ull}},
+ {{8567506906114809278ull, 13459079766627711093ull,
+ 3692607756613177655ull, 4329904057861829076ull}},
+ {{7660534825535449751ull, 15329453881783401289ull,
+ 11531251884738011842ull, 2706190036163643172ull}},
+ {{14187354550346700092ull, 9938445315374475803ull,
+ 14414064855922514803ull, 3382737545204553965ull}},
+ {{13122507169505987211ull, 7811370625790706850ull,
+ 4182523014620979792ull, 4228421931505692457ull}},
+ {{12813252999368629911ull, 4882106641119191781ull,
+ 14143291930206582130ull, 2642763707191057785ull}},
+ {{2181508193928623677ull, 15326005338253765535ull,
+ 3844056857476063950ull, 3303454633988822232ull}},
+ {{16561943297692943308ull, 9934134635962431110ull,
+ 4805071071845079938ull, 4129318292486027790ull}},
+ {{5739528542630701664ull, 10820520165903907348ull,
+ 16838227475185338673ull, 2580823932803767368ull}},
+ {{7174410678288377079ull, 18137336225807272089ull,
+ 2601040270272121725ull, 3226029916004709211ull}},
+ {{13579699366287859253ull, 8836612226976926399ull,
+ 17086358393122315869ull, 4032537395005886513ull}},
+ {{15404841131570993889ull, 7828725651074272951ull,
+ 3761444968060365562ull, 2520335871878679071ull}},
+ {{14644365396036354458ull, 562535026988065381ull, 90120191648069049ull,
+ 3150419839848348839ull}},
+ {{4470398689763279360ull, 5314854802162469631ull,
+ 13947708294842250023ull, 3938024799810436048ull}},
+ {{9711528208743131456ull, 10239313278992625375ull,
+ 8717317684276406264ull, 2461265499881522530ull}},
+ {{7527724242501526416ull, 12799141598740781719ull,
+ 1673275068490732022ull, 3076581874851903163ull}},
+ {{4797969284699520116ull, 6775554961571201341ull,
+ 15926651890895578740ull, 3845727343564878953ull}},
+ {{5304573812150894025ull, 13458093887836776646ull,
+ 3036628404168654856ull, 2403579589728049346ull}},
+ {{15854089302043393339ull, 16822617359795970807ull,
+ 13019157542065594378ull, 3004474487160061682ull}},
+ {{15205925609126853769ull, 11804899662890187701ull,
+ 7050574890727217165ull, 3755593108950077103ull}},
+ {{11809546514917977558ull, 9683905298520061265ull,
+ 11324138334345592584ull, 2347245693093798189ull}},
+ {{926875088365308235ull, 12104881623150076582ull, 320114862649827018ull,
+ 2934057116367247737ull}},
+ {{10381965897311411102ull, 5907729992082819919ull,
+ 5011829596739671677ull, 3667571395459059671ull}},
+ {{8365771353211875973ull, 11996348508530912803ull,
+ 1653100977497201692ull, 4584464244323824589ull}},
+ {{2922764086543728532ull, 16721089854686596310ull,
+ 3339031120149445009ull, 2865290152702390368ull}},
+ {{12876827145034436472ull, 7066304263076081675ull,
+ 4173788900186806262ull, 3581612690877987960ull}},
+ {{11484347912865657686ull, 18056252365699877902ull,
+ 5217236125233507827ull, 4477015863597484950ull}},
+ {{2566031427113648150ull, 8979314719348729737ull,
+ 17095830633553106104ull, 2798134914748428093ull}},
+ {{7819225302319448092ull, 11224143399185912171ull,
+ 7534730236659218918ull, 3497668643435535117ull}},
+ {{5162345609471922210ull, 4806807212127614406ull,
+ 14030098814251411552ull, 4372085804294418896ull}},
+ {{17061524061202115094ull, 3004254507579759003ull,
+ 8768811758907132220ull, 2732553627684011810ull}},
+ {{16715219058075255963ull, 3755318134474698754ull,
+ 1737642661779139467ull, 3415692034605014763ull}},
+ {{11670651785739294145ull, 82461649665985539ull,
+ 16007111382506088046ull, 4269615043256268453ull}},
+ {{4988314356873364889ull, 13886596586323404674ull,
+ 12310287623279998980ull, 2668509402035167783ull}},
+ {{15458764982946481919ull, 17358245732904255842ull,
+ 10776173510672610821ull, 3335636752543959729ull}},
+ {{10100084191828326591ull, 7862749110848156091ull,
+ 18081902906768151431ull, 4169545940679949661ull}},
+ {{4006709610679010168ull, 11831747221921179413ull,
+ 13607032325943788596ull, 2605966212924968538ull}},
+ {{9620073031776150613ull, 14789684027401474266ull,
+ 7785418370574959937ull, 3257457766156210673ull}},
+ {{2801719252865412459ull, 4652046978969679121ull,
+ 14343458981646087826ull, 4071822207695263341ull}},
+ {{13280289579109352547ull, 7519215380283437354ull,
+ 11270504872742498843ull, 2544888879809539588ull}},
+ {{7376989937031914875ull, 4787333206926908789ull,
+ 14088131090928123554ull, 3181111099761924485ull}},
+ {{13832923439717281498ull, 15207538545513411794ull,
+ 3775105808377990730ull, 3976388874702405607ull}},
+ {{13257263168250688840ull, 14116397609373270275ull,
+ 9276970157877326062ull, 2485243046689003504ull}},
+ {{11959892941885973146ull, 8422124974861812036ull,
+ 11596212697346657578ull, 3106553808361254380ull}},
+ {{14949866177357466433ull, 1304284181722489237ull,
+ 14495265871683321973ull, 3883192260451567975ull}},
+ {{11649509370062110473ull, 3121020622790249725ull,
+ 15977070197443158089ull, 2426995162782229984ull}},
+ {{726828657295474379ull, 8512961796915200061ull, 1524593673094395995ull,
+ 3033743953477787481ull}},
+ {{5520221840046730877ull, 6029516227716612172ull,
+ 6517428109795382898ull, 3792179941847234351ull}},
+ {{12673510686883982607ull, 8380133660750270511ull,
+ 10990921596263196167ull, 2370112463654521469ull}},
+ {{11230202340177590354ull, 5863481057510450235ull,
+ 18350338013756383113ull, 2962640579568151836ull}},
+ {{9426066906794600038ull, 11941037340315450698ull,
+ 4491178443485927275ull, 3703300724460189796ull}},
+ {{10502977835174012928ull, 5157305328483462734ull,
+ 12030358564033480355ull, 2314562952787618622ull}},
+ {{3905350257112740352ull, 1834945642176940514ull,
+ 5814576168187074636ull, 2893203690984523278ull}},
+ {{14105059858245701248ull, 2293682052721175642ull,
+ 16491592247088619103ull, 3616504613730654097ull}},
+ {{8407952785952350752ull, 16702160621183633265ull,
+ 6779432253578610166ull, 4520630767163317622ull}},
+ {{16784185537288688980ull, 5827164369812382886ull,
+ 18072203213768795066ull, 2825394229477073513ull}},
+ {{11756859884756085417ull, 16507327499120254416ull,
+ 8755195961928830120ull, 3531742786846341892ull}},
+ {{14696074855945106771ull, 2187415300190766404ull,
+ 10943994952411037651ull, 4414678483557927365ull}},
+ {{18408418821820467540ull, 17508035627115086666ull,
+ 9145839854470592483ull, 2759174052223704603ull}},
+ {{13787151490420808617ull, 17273358515466470429ull,
+ 6820613799660852700ull, 3448967565279630754ull}},
+ {{3398881307743847059ull, 3144954070623536421ull,
+ 17749139286430841684ull, 4311209456599538442ull}},
+ {{4430143826553598364ull, 11188968330994486071ull,
+ 15704898072446663956ull, 2694505910374711526ull}},
+ {{925993764764610051ull, 13986210413743107589ull,
+ 10407750553703554137ull, 3368132387968389408ull}},
+ {{5769178224383150468ull, 3647704961896720774ull,
+ 13009688192129442672ull, 4210165484960486760ull}},
+ {{17440794445521632755ull, 2279815601185450483ull,
+ 8131055120080901670ull, 2631353428100304225ull}},
+ {{17189307038474653039ull, 12073141538336588912ull,
+ 14775504918528514991ull, 3289191785125380281ull}},
+ {{3039889724383764683ull, 10479740904493348237ull,
+ 4634323092878480027ull, 4111489731406725352ull}},
+ {{4205774086953546879ull, 4243995056094648696ull,
+ 2896451933049050017ull, 2569681082129203345ull}},
+ {{5257217608691933599ull, 9916679838545698774ull,
+ 8232250934738700425ull, 3212101352661504181ull}},
+ {{15794894047719692806ull, 17007535816609511371ull,
+ 14901999686850763435ull, 4015126690826880226ull}},
+ {{7565965770611114052ull, 8323866876167250655ull,
+ 13925435822709115051ull, 2509454181766800141ull}},
+ {{4845771194836504661ull, 5793147576781675415ull,
+ 3571736723104230102ull, 3136817727208500177ull}},
+ {{1445527975118242922ull, 16464806507831870077ull,
+ 9076356922307675531ull, 3921022159010625221ull}},
+ {{3209297993662595778ull, 7984661058181224846ull,
+ 7978566085655991159ull, 2450638849381640763ull}},
+ {{13234994528933020531ull, 5369140304299143153ull,
+ 5361521588642601045ull, 3063298561727050954ull}},
+ {{2708685105884111951ull, 11323111398801316846ull,
+ 15925274022658027114ull, 3829123202158813692ull}},
+ {{15527986246459733682ull, 11688630642678210932ull,
+ 729924227306491138ull, 2393202001349258558ull}},
+ {{963238734365115486ull, 5387416266492987858ull,
+ 10135777320987889731ull, 2991502501686573197ull}},
+ {{10427420454811170166ull, 2122584314688846918ull,
+ 17281407669662250068ull, 3739378127108216496ull}},
+ {{1905451765829593450ull, 10549987233535305132ull,
+ 10800879793538906292ull, 2337111329442635310ull}},
+ {{2381814707286991812ull, 13187484041919131415ull,
+ 4277727705068857057ull, 2921389161803294138ull}},
+ {{16812326439390903477ull, 2649296997116750556ull,
+ 14570531668190847130ull, 3651736452254117672ull}},
+ {{2568663975529077730ull, 12534993283250714004ull,
+ 18213164585238558912ull, 4564670565317647090ull}},
+ {{10828787021560449389ull, 7834370802031696252ull,
+ 15994913884201487224ull, 2852919103323529431ull}},
+ {{13535983776950561737ull, 9792963502539620315ull,
+ 15381956336824471126ull, 3566148879154411789ull}},
+ {{12308293702760814267ull, 3017832341319749586ull,
+ 5392387365748425196ull, 4457686098943014737ull}},
+ {{12304369582652896821ull, 11109517250179619299ull,
+ 14899457149661235507ull, 2786053811839384210ull}},
+ {{10768775959888733122ull, 9275210544297136220ull,
+ 9400949400221768576ull, 3482567264799230263ull}},
+ {{13460969949860916402ull, 11594013180371420275ull,
+ 7139500731849822816ull, 4353209080999037829ull}},
+ {{6107263209449378800ull, 7246258237732137672ull,
+ 6768030966619833212ull, 2720755675624398643ull}},
+ {{7634079011811723499ull, 9057822797165172090ull,
+ 3848352689847403611ull, 3400944594530498304ull}},
+ {{319226727909878566ull, 6710592478029077209ull, 4810440862309254514ull,
+ 4251180743163122880ull}},
+ {{11728731751012143864ull, 8805806317195561159ull,
+ 3006525538943284071ull, 2656987964476951800ull}},
+ {{10049228670337791926ull, 6395571878067063545ull,
+ 3758156923679105089ull, 3321234955596189750ull}},
+ {{17173221856349627811ull, 12606150866011217335ull,
+ 13921068191453657169ull, 4151543694495237187ull}},
+ {{17650792687859599238ull, 961315263615928978ull,
+ 6394824610444841779ull, 2594714809059523242ull}},
+ {{12840118822969723240ull, 15036702134802074935ull,
+ 17216902799910828031ull, 3243393511324404052ull}},
+ {{11438462510284766145ull, 14184191650075205765ull,
+ 3074384426178983423ull, 4054241889155505066ull}},
+ {{9454882078141672793ull, 15782648808938085459ull,
+ 6533176284789252543ull, 2533901180722190666ull}},
+ {{7206916579249703087ull, 15116624992745218920ull,
+ 17389842392841341487ull, 3167376475902738332ull}},
+ {{9008645724062128859ull, 14284095222504135746ull,
+ 3290558917342125243ull, 3959220594878422916ull}},
+ {{10242089595966218441ull, 6621716504851390889ull,
+ 11279971360193604085ull, 2474512871799014322ull}},
+ {{17414298013385160955ull, 12888831649491626515ull,
+ 4876592163387229298ull, 3093141089748767903ull}},
+ {{17156186498304063290ull, 6887667525009757336ull,
+ 1484054185806648719ull, 3866426362185959879ull}},
+ {{10722616561440039556ull, 11222321230772180191ull,
+ 7845062893770237305ull, 2416516476366224924ull}},
+ {{8791584683372661541ull, 192843483183061527ull, 9806328617212796632ull,
+ 3020645595457781155ull}},
+ {{6377794835788439022ull, 241054353978826909ull, 7646224753088607886ull,
+ 3775806994322226444ull}},
+ {{6291964781581468341ull, 13985717026518930530ull,
+ 14002262507535155736ull, 2359879371451391527ull}},
+ {{17088328013831611234ull, 17482146283148663162ull,
+ 12891142115991556766ull, 2949849214314239409ull}},
+ {{12137037980434738235ull, 12629310817081053145ull,
+ 2278869589707282246ull, 3687311517892799262ull}},
+ {{1336239420261259081ull, 6563266484496540624ull,
+ 12071959023988878616ull, 4609139397365999077ull}},
+ {{835149637663286926ull, 4102041552810337890ull, 9850817399206743087ull,
+ 2880712123353749423ull}},
+ {{10267309083933884466ull, 515865922585534458ull,
+ 7701835730581040955ull, 3600890154192186779ull}},
+ {{3610764318062579774ull, 14479890458514081785ull,
+ 5015608644798913289ull, 4501112692740233474ull}},
+ {{13785942744857582119ull, 2132402508930219259ull,
+ 7746441421426708710ull, 2813195432962645921ull}},
+ {{12620742412644589744ull, 11888875173017549882ull,
+ 14294737795210773791ull, 3516494291203307401ull}},
+ {{6552555978950961372ull, 10249407947844549449ull,
+ 4033364188731303527ull, 4395617864004134252ull}},
+ {{15624562532912820618ull, 13323408995043925261ull,
+ 11744224654811840512ull, 2747261165002583907ull}},
+ {{5695645110858862060ull, 16654261243804906577ull,
+ 10068594800087412736ull, 3434076456253229884ull}},
+ {{11731242407000965479ull, 2371082481046581605ull,
+ 12585743500109265921ull, 4292595570316537355ull}},
+ {{9637869513589297377ull, 13011141596722583263ull,
+ 5560246678354597248ull, 2682872231447835847ull}},
+ {{7435650873559233817ull, 16263926995903229079ull,
+ 2338622329515858656ull, 3353590289309794809ull}},
+ {{4682877573521654367ull, 1883164671169484733ull,
+ 7534963930322211225ull, 4191987861637243511ull}},
+ {{5232641492664727931ull, 12706192965549397718ull,
+ 11626881484092463871ull, 2619992413523277194ull}},
+ {{15764173902685685722ull, 11271055188509359243ull,
+ 5310229818260804031ull, 3274990516904096493ull}},
+ {{15093531359929719249ull, 9477132967209311150ull,
+ 11249473291253392943ull, 4093738146130120616ull}},
+ {{4821771081528686627ull, 12840737132146901325ull,
+ 7030920807033370589ull, 2558586341331325385ull}},
+ {{10638899870338246187ull, 2215863359901462944ull,
+ 13400337027219101141ull, 3198232926664156731ull}},
+ {{13298624837922807734ull, 7381515218304216584ull,
+ 12138735265596488522ull, 3997791158330195914ull}},
+ {{8311640523701754834ull, 9225133029867523269ull,
+ 12198395559425193230ull, 2498619473956372446ull}},
+ {{15001236673054581446ull, 2308044250479628278ull,
+ 6024622412426715730ull, 3123274342445465558ull}},
+ {{9528173804463450999ull, 12108427349954311156ull,
+ 16754150052388170470ull, 3904092928056831947ull}},
+ {{15178480664644432683ull, 2956081075294056568ull,
+ 8165500773528912592ull, 2440058080035519967ull}},
+ {{526356757095989237ull, 3695101344117570711ull, 5595189948483752836ull,
+ 3050072600044399959ull}},
+ {{14493004001652150259ull, 4618876680146963388ull,
+ 2382301417177303141ull, 3812590750055499949ull}},
+ {{18281499537887369720ull, 5192640934305546069ull,
+ 3794781394949508415ull, 2382869218784687468ull}},
+ {{9016816367077048438ull, 1879115149454544683ull,
+ 4743476743686885519ull, 2978586523480859335ull}},
+ {{6659334440418922643ull, 16183951992100344566ull,
+ 1317659911181218994ull, 3723233154351074169ull}},
+ {{17997142080543990364ull, 14726656013490103257ull,
+ 12352752490556731631ull, 2327020721469421355ull}},
+ {{8661369545397824243ull, 13796633998435241168ull,
+ 10829254594768526635ull, 2908775901836776694ull}},
+ {{10826711931747280304ull, 12634106479616663556ull,
+ 4313196206605882486ull, 3635969877295970868ull}},
+ {{13533389914684100379ull, 6569261062666053637ull,
+ 5391495258257353108ull, 4544962346619963585ull}},
+ {{10764211705891256689ull, 13329160201021059331ull,
+ 14898899582479315452ull, 2840601466637477240ull}},
+ {{8843578613936682957ull, 16661450251276324164ull,
+ 176880404389592699ull, 3550751833296846551ull}},
+ {{11054473267420853697ull, 16215126795668017301ull,
+ 14056158560769154586ull, 4438439791621058188ull}},
+ {{9214888801351727513ull, 14746140265719898717ull,
+ 18008471137335497424ull, 2774024869763161367ull}},
+ {{16130297020117047295ull, 18432675332149873396ull,
+ 17898902903241983876ull, 3467531087203951709ull}},
+ {{1716127201436757502ull, 4594100091477790130ull,
+ 8538570573770316134ull, 4334413859004939637ull}},
+ {{5684265519325361343ull, 16706370612455782543ull,
+ 7642449617820141535ull, 2709008661878087273ull}},
+ {{2493645880729313775ull, 16271277247142340275ull,
+ 14164748040702564823ull, 3386260827347609091ull}},
+ {{16952115406193805930ull, 15727410540500537439ull,
+ 13094249032450818125ull, 4232826034184511364ull}},
+ {{17512601156512210563ull, 12135474597026529851ull,
+ 17407277682136537136ull, 2645516271365319602ull}},
+ {{17279065427212875299ull, 15169343246283162314ull,
+ 12535725065815895612ull, 3306895339206649503ull}},
+ {{12375459747161318316ull, 514934984144401277ull,
+ 11057970313842481612ull, 4133619174008311879ull}},
+ {{10040505351189517900ull, 9545206401945026606ull,
+ 13828760473792632863ull, 2583511983755194924ull}},
+ {{3327259652132121566ull, 7319821984003895354ull,
+ 17285950592240791079ull, 3229389979693993655ull}},
+ {{13382446602019927766ull, 4538091461577481288ull,
+ 16995752221873600945ull, 4036737474617492069ull}},
+ {{8364029126262454854ull, 14365522209554395565ull,
+ 12928188147884694542ull, 2522960921635932543ull}},
+ {{15066722426255456471ull, 8733530725088218648ull,
+ 11548549166428480274ull, 3153701152044915679ull}},
+ {{386658959109768973ull, 1693541369505497503ull, 9824000439608212439ull,
+ 3942126440056144599ull}},
+ {{7159190877084687464ull, 7975992383582017795ull,
+ 13057529302396214630ull, 2463829025035090374ull}},
+ {{4337302577928471426ull, 746618442622746436ull, 7098539591140492480ull,
+ 3079786281293862968ull}},
+ {{5421628222410589282ull, 933273053278433045ull, 8873174488925615600ull,
+ 3849732851617328710ull}},
+ {{5694360648220312254ull, 583295658299020653ull, 934048037151121846ull,
+ 2406083032260830444ull}},
+ {{11729636828702778221ull, 9952491609728551624ull,
+ 1167560046438902307ull, 3007603790326038055ull}},
+ {{14662046035878472776ull, 7828928493733301626ull,
+ 15294508113330791596ull, 3759504737907547568ull}},
+ {{13775464790851433389ull, 14116452345438089324ull,
+ 9559067570831744747ull, 2349690461192217230ull}},
+ {{17219330988564291736ull, 13033879413370223751ull,
+ 2725462426684905126ull, 2937113076490271538ull}},
+ {{16912477717277976766ull, 7068977229858003881ull,
+ 12630200070210907216ull, 3671391345612839422ull}},
+ {{7305539091315307246ull, 8836221537322504852ull,
+ 6564378050908858212ull, 4589239182016049278ull}},
+ {{13789333968926842837ull, 14746010497681341340ull,
+ 17937794337100200094ull, 2868274488760030798ull}},
+ {{17236667461158553546ull, 9209141085246900867ull,
+ 13198870884520474310ull, 3585343110950038498ull}},
+ {{16934148308020804028ull, 2288054319703850276ull,
+ 7275216568795817080ull, 4481678888687548123ull}},
+ {{1360470655658226710ull, 1430033949814906423ull,
+ 2241167346283691723ull, 2801049305429717577ull}},
+ {{15535646374854947099ull, 15622600492550796740ull,
+ 7413145201282002557ull, 3501311631787146971ull}},
+ {{972813894859132258ull, 5693192560406332214ull, 4654745483175115293ull,
+ 4376639539733933714ull}},
+ {{14443066739569121373ull, 5864088359467651585ull,
+ 7520901945411834962ull, 2735399712333708571ull}},
+ {{4218775369179238005ull, 16553482486189340290ull,
+ 4789441413337405798ull, 3419249640417135714ull}},
+ {{14496841248328823314ull, 11468481070881899554ull,
+ 15210173803526533056ull, 4274062050521419642ull}},
+ {{13672211798632902475ull, 7167800669301187221ull,
+ 14118044645631471064ull, 2671288781575887276ull}},
+ {{3255206693008964382ull, 8959750836626484027ull,
+ 17647555807039338830ull, 3339110976969859095ull}},
+ {{17904066421543369189ull, 1976316508928329225ull,
+ 17447758740371785634ull, 4173888721212323869ull}},
+ {{4272512485823523887ull, 5846883836507593670ull,
+ 13210692221946059973ull, 2608680450757702418ull}},
+ {{14564012644134180667ull, 11920290814061879991ull,
+ 7289993240577799158ull, 3260850563447128023ull}},
+ {{13593329786740337930ull, 5676991480722574181ull,
+ 4500805532294861044ull, 4076063204308910029ull}},
+ {{10801674125926405158ull, 12771491712306384671ull,
+ 5118846466897982104ull, 2547539502693068768ull}},
+ {{8890406638980618544ull, 15964364640382980839ull,
+ 6398558083622477630ull, 3184424378366335960ull}},
+ {{6501322280298385276ull, 10732083763623950241ull,
+ 7998197604528097038ull, 3980530472957919950ull}},
+ {{15592541471254960558ull, 2095866333837580996ull,
+ 387187484402672745ull, 2487831545598699969ull}},
+ {{1043932765359149081ull, 7231518935724364150ull,
+ 5095670373930728835ull, 3109789431998374961ull}},
+ {{10528287993553712159ull, 4427712651228067283ull,
+ 10981273985840798948ull, 3887236789997968701ull}},
+ {{4274336986757376147ull, 11990692443872317860ull,
+ 9169139250364193294ull, 2429522993748730438ull}},
+ {{5342921233446720184ull, 5764993517985621517ull,
+ 2238052026100465810ull, 3036903742185913048ull}},
+ {{11290337560235788134ull, 16429613934336802704ull,
+ 2797565032625582262ull, 3796129677732391310ull}},
+ {{7056460975147367584ull, 5656822690533113786ull,
+ 15583536200673152626ull, 2372581048582744568ull}},
+ {{18043948255788985288ull, 16294400400021168040ull,
+ 1032676177131889166ull, 2965726310728430711ull}},
+ {{4108191246026679994ull, 11144628463171684243ull,
+ 15125903276697025170ull, 3707157888410538388ull}},
+ {{261776519552981044ull, 11577078807909690556ull, 230317511080864923ull,
+ 2316973680256586493ull}},
+ {{327220649441226305ull, 9859662491459725291ull, 4899582907278469058ull,
+ 2896217100320733116ull}},
+ {{14244083867083696593ull, 3101206077469880805ull,
+ 6124478634098086323ull, 3620271375400916395ull}},
+ {{3970046778572457030ull, 17711565652119514719ull,
+ 3043912274195219999ull, 4525339219251145494ull}},
+ {{9398808264248867500ull, 17987257560215778555ull,
+ 15737503226654176211ull, 2828337012031965933ull}},
+ {{7136824311883696470ull, 17872385931842335290ull,
+ 5836820978035556552ull, 3535421265039957417ull}},
+ {{18144402426709396396ull, 3893738341093367496ull,
+ 11907712240971833595ull, 4419276581299946771ull}},
+ {{11340251516693372748ull, 127743453969660733ull,
+ 5136477141393702045ull, 2762047863312466732ull}},
+ {{340256340584552222ull, 4771365335889463821ull, 6420596426742127556ull,
+ 3452559829140583415ull}},
+ {{5037006444158078182ull, 5964206669861829776ull,
+ 3414059515000271541ull, 4315699786425729269ull}},
+ {{3148129027598798864ull, 6033472177877337562ull,
+ 4439630206088863665ull, 2697312366516080793ull}},
+ {{13158533321353274388ull, 12153526240774059856ull,
+ 10161223776038467485ull, 3371640458145100991ull}},
+ {{16448166651691592985ull, 1356849745685411108ull,
+ 8089843701620696453ull, 4214550572681376239ull}},
+ {{1056732120452469808ull, 3153874100267075895ull,
+ 11973681341154017139ull, 2634094107925860149ull}},
+ {{15155973205847750971ull, 17777400680616008580ull,
+ 1132043621160357711ull, 3292617634907325187ull}},
+ {{498222433600137098ull, 17610064832342622822ull,
+ 15250112581732610851ull, 4115772043634156483ull}},
+ {{14146447076282249398ull, 8700447511000445311ull,
+ 7225477354369187830ull, 2572357527271347802ull}},
+ {{13071372826925423844ull, 1652187351895780831ull,
+ 18255218729816260596ull, 3215446909089184752ull}},
+ {{11727530015229391901ull, 2065234189869726039ull,
+ 4372279338560774129ull, 4019308636361480941ull}},
+ {{14247235287159451794ull, 12819986414737048534ull,
+ 5038517595814177782ull, 2512067897725925588ull}},
+ {{8585672072094538935ull, 6801610981566534860ull,
+ 6298146994767722228ull, 3140084872157406985ull}},
+ {{10732090090118173668ull, 8502013726958168575ull,
+ 12484369761887040689ull, 3925106090196758731ull}},
+ {{13625085333964940399ull, 16842973625417325119ull,
+ 5496888091965706478ull, 2453191306372974207ull}},
+ {{12419670649028787594ull, 11830344994916880591ull,
+ 2259424096529745194ull, 3066489132966217759ull}},
+ {{10912902292858596589ull, 5564559206791324931ull,
+ 16659338175944345205ull, 3833111416207772198ull}},
+ {{4514720923822928916ull, 5783692513458272034ull,
+ 5800400341537827849ull, 2395694635129857624ull}},
+ {{14866773191633436953ull, 11841301660250227946ull,
+ 7250500426922284811ull, 2994618293912322030ull}},
+ {{9360094452687020383ull, 10189941056885397029ull,
+ 18286497570507631822ull, 3743272867390402537ull}},
+ {{8155902042143081692ull, 1757027142125985239ull,
+ 4511531953926188033ull, 2339545542119001586ull}},
+ {{5583191534251464211ull, 6807969946084869453ull,
+ 14862786979262510849ull, 2924431927648751982ull}},
+ {{11590675436241718167ull, 13121648451033474720ull,
+ 9355111687223362753ull, 3655539909560939978ull}},
+ {{14488344295302147709ull, 2567002508509679688ull,
+ 2470517572174427634ull, 4569424886951174973ull}},
+ {{9055215184563842318ull, 6216062586245937709ull,
+ 3849916491822711223ull, 2855890554344484358ull}},
+ {{15930704999132190802ull, 3158392214380034232ull,
+ 14035767651633164837ull, 3569863192930605447ull}},
+ {{1466637175205686886ull, 8559676286402430695ull,
+ 12933023546114068142ull, 4462328991163256809ull}},
+ {{7834177262144636160ull, 738111660574131280ull, 1165610688680210733ull,
+ 2788955619477035506ull}},
+ {{9792721577680795200ull, 5534325594145052004ull,
+ 10680385397705039224ull, 3486194524346294382ull}},
+ {{12240901972100993999ull, 6917906992681315005ull,
+ 4127109710276523222ull, 4357743155432867978ull}},
+ {{9956406741776815202ull, 18158749925707985590ull,
+ 7191129587350214917ull, 2723589472145542486ull}},
+ {{3222136390366243194ull, 8863379351852818276ull,
+ 18212284021042544455ull, 3404486840181928107ull}},
+ {{4027670487957803993ull, 6467538171388634941ull,
+ 18153669007875792665ull, 4255608550227410134ull}},
+ {{4823137064187321448ull, 15571426403186366598ull,
+ 6734357111494982511ull, 2659755343892131334ull}},
+ {{15252293367088927617ull, 14852596985555570343ull,
+ 17641318426223503947ull, 3324694179865164167ull}},
+ {{14453680690433771617ull, 13954060213517075025ull,
+ 17439962014351992030ull, 4155867724831455209ull}},
+ {{2116021403880025405ull, 4109601615020783987ull,
+ 3982447231328913163ull, 2597417328019659506ull}},
+ {{16480084810132195468ull, 525316000348592079ull,
+ 14201431076015917262ull, 3246771660024574382ull}},
+ {{15988419994237856431ull, 9880017037290515907ull,
+ 8528416808165120769ull, 4058464575030717978ull}},
+ {{7686919487184966318ull, 17704225694375042202ull,
+ 9941946523530588384ull, 2536540359394198736ull}},
+ {{385277322126432089ull, 3683538044259251137ull,
+ 12427433154413235481ull, 3170675449242748420ull}},
+ {{5093282671085428015ull, 9216108573751451825ull,
+ 15534291443016544351ull, 3963344311553435525ull}},
+ {{14712516715496862270ull, 12677596886235739246ull,
+ 12014775161099034171ull, 2477090194720897203ull}},
+ {{9167273857516302029ull, 11235310089367286154ull,
+ 10406782932946404810ull, 3096362743401121504ull}},
+ {{2235720285040601728ull, 4820765574854331885ull,
+ 13008478666183006013ull, 3870453429251401880ull}},
+ {{3703168187364070032ull, 5318821493497651380ull,
+ 8130299166364378758ull, 2419033393282126175ull}},
+ {{4628960234205087540ull, 15871898903726840033ull,
+ 5551187939528085543ull, 3023791741602657719ull}},
+ {{10397886311183747329ull, 15228187611231162137ull,
+ 2327298905982719025ull, 3779739677003322149ull}},
+ {{18027893990558311841ull, 2600088229378394479ull,
+ 3760404825452893343ull, 2362337298127076343ull}},
+ {{17923181469770501897ull, 17085168342005156811ull,
+ 88820013388728774ull, 2952921622658845429ull}},
+ {{17792290818785739467ull, 12133088390651670206ull,
+ 4722711035163298872ull, 3691152028323556786ull}},
+ {{6508495743313699263ull, 7583180244157293879ull,
+ 7563380415404449699ull, 2306970017702222991ull}},
+ {{3523933660714736175ull, 4867289286769229445ull,
+ 4842539500828174220ull, 2883712522127778739ull}},
+ {{9016603094320808122ull, 6084111608461536806ull,
+ 1441488357607829871ull, 3604640652659723424ull}},
+ {{2047381831046234345ull, 2993453492149533104ull,
+ 1801860447009787339ull, 4505800815824654280ull}},
+ {{1279613644403896466ull, 18011809497089315854ull,
+ 1126162779381117086ull, 2816125509890408925ull}},
+ {{10822889092359646390ull, 13291389834506869009ull,
+ 6019389492653784262ull, 3520156887363011156ull}},
+ {{18140297383876945891ull, 7390865256278810453ull,
+ 7524236865817230328ull, 4400196109203763945ull}},
+ {{13643528874136785134ull, 4619290785174256533ull,
+ 16231863087204238715ull, 2750122568252352465ull}},
+ {{3219353037388817706ull, 1162427463040432763ull,
+ 6454770803723134682ull, 3437653210315440582ull}},
+ {{17859249352018185844ull, 10676406365655316761ull,
+ 17291835541508694160ull, 4297066512894300727ull}},
+ {{4244501817370284297ull, 6672753978534572976ull,
+ 17724926241084015706ull, 2685666570558937954ull}},
+ {{5305627271712855371ull, 17564314510022992028ull,
+ 12932785764500243824ull, 3357083213198672443ull}},
+ {{6632034089641069213ull, 3508649063819188419ull,
+ 11554296187197916877ull, 4196354016498340554ull}},
+ {{1839178296811974306ull, 4498748674100686714ull,
+ 11833121135426085952ull, 2622721260311462846ull}},
+ {{11522344907869743691ull, 5623435842625858392ull,
+ 5568029382427831632ull, 3278401575389328558ull}},
+ {{14402931134837179614ull, 7029294803282322990ull,
+ 16183408764889565348ull, 4098001969236660697ull}},
+ {{4390145940845849355ull, 13616681288906227677ull,
+ 3197101450414896486ull, 2561251230772912936ull}},
+ {{10099368444484699597ull, 7797479574278008788ull,
+ 3996376813018620608ull, 3201564038466141170ull}},
+ {{12624210555605874496ull, 9746849467847510985ull,
+ 14218843053128051568ull, 4001955048082676462ull}},
+ {{972602569612589704ull, 6091780917404694366ull, 4275090889777644326ull,
+ 2501221905051672789ull}},
+ {{10439125248870512938ull, 16838098183610643765ull,
+ 9955549630649443311ull, 3126527381314590986ull}},
+ {{17660592579515529077ull, 16435936711085916802ull,
+ 3221065001457028331ull, 3908159226643238733ull}},
+ {{15649556380624593577ull, 7966617435215004049ull,
+ 4319008635124336659ull, 2442599516652024208ull}},
+ {{5726887420498578259ull, 5346585775591367158ull,
+ 5398760793905420824ull, 3053249395815030260ull}},
+ {{16381981312477998632ull, 6683232219489208947ull,
+ 6748450992381776030ull, 3816561744768787825ull}},
+ {{7932895311085055193ull, 18012078192462919304ull,
+ 15746996916307079778ull, 2385351090480492390ull}},
+ {{9916119138856318992ull, 13291725703723873322ull,
+ 10460374108529073915ull, 2981688863100615488ull}},
+ {{3171776886715622931ull, 12002971111227453749ull,
+ 13075467635661342394ull, 3727111078875769360ull}},
+ {{4288203563410958284ull, 12113542962944546497ull,
+ 8172167272288338996ull, 2329444424297355850ull}},
+ {{9971940472691085759ull, 15141928703680683121ull,
+ 991837053505647937ull, 2911805530371694813ull}},
+ {{17076611609291245103ull, 5092352824318690189ull,
+ 5851482335309447826ull, 3639756912964618516ull}},
+ {{7510706456331892666ull, 15588813067253138545ull,
+ 7314352919136809782ull, 4549696141205773145ull}},
+ {{16223406581275902677ull, 5131322148605823686ull,
+ 16100685620528975874ull, 2843560088253608215ull}},
+ {{11055886189740102538ull, 15637524722612055416ull,
+ 15514171007233831938ull, 3554450110317010269ull}},
+ {{13819857737175128172ull, 10323533866410293462ull,
+ 5557655703760126211ull, 4443062637896262837ull}},
+ {{4025725067307067204ull, 4146365657292739462ull,
+ 5779377824063772834ull, 2776914148685164273ull}},
+ {{14255528370988609813ull, 14406329108470700135ull,
+ 11835908298507103946ull, 3471142685856455341ull}},
+ {{13207724445308374362ull, 8784539348733599361ull,
+ 959827317851716221ull, 4338928357320569177ull}},
+ {{1337298750676652120ull, 7796180102172193553ull,
+ 12129107119725792398ull, 2711830223325355735ull}},
+ {{6283309456773203054ull, 521853090860466133ull,
+ 10549697881229852594ull, 3389787779156694669ull}},
+ {{12465822839393891721ull, 9875688400430358474ull,
+ 17798808369964703646ull, 4237234723945868336ull}},
+ {{12402825293048570230ull, 1560619231841586142ull,
+ 11124255231227939779ull, 2648271702466167710ull}},
+ {{6280159579455936979ull, 15785832095084146390ull,
+ 4681947002180148915ull, 3310339628082709638ull}},
+ {{17073571511174697032ull, 15120604100427795083ull,
+ 15075805789579961952ull, 4137924535103387047ull}},
+ {{8365139185270491693ull, 9450377562767371927ull,
+ 16339907646128558076ull, 2586202834439616904ull}},
+ {{5844737963160726713ull, 11812971953459214909ull,
+ 1978140483951145979ull, 3232753543049521131ull}},
+ {{11917608472378296295ull, 10154528923396630732ull,
+ 16307733660221096186ull, 4040941928811901413ull}},
+ {{16671877332091210992ull, 10958266595550282111ull,
+ 12498176546851879068ull, 2525588705507438383ull}},
+ {{16228160646686625836ull, 13697833244437852639ull,
+ 11011034665137460931ull, 3156985881884297979ull}},
+ {{15673514789930894391ull, 12510605537119927895ull,
+ 9152107312994438260ull, 3946232352355372474ull}},
+ {{16713475771347890851ull, 17042500497554730742ull,
+ 10331753089048911816ull, 2466395220222107796ull}},
+ {{11668472677330087755ull, 2856381548233861812ull,
+ 12914691361311139771ull, 3082994025277634745ull}},
+ {{14585590846662609694ull, 17405534990574490977ull,
+ 2308306146356761001ull, 3853742531597043432ull}},
+ {{2198465251523049203ull, 3960930341467975005ull,
+ 1442691341472975626ull, 2408589082248152145ull}},
+ {{7359767582831199407ull, 14174534963689744564ull,
+ 6415050195268607436ull, 3010736352810190181ull}},
+ {{9199709478538999259ull, 17718168704612180705ull,
+ 12630498762513147199ull, 3763420441012737726ull}},
+ {{17279033470155344297ull, 17991384468023694796ull,
+ 3282375708143329095ull, 2352137775632961079ull}},
+ {{3152047763984628755ull, 17877544566602230592ull,
+ 17938027690461325081ull, 2940172219541201348ull}},
+ {{3940059704980785944ull, 8511872652970624528ull,
+ 3975790539367104736ull, 3675215274426501686ull}},
+ {{4925074631225982430ull, 10639840816213280660ull,
+ 14193110211063656728ull, 4594019093033127107ull}},
+ {{12301543681371014827ull, 6649900510133300412ull,
+ 6564850872701091503ull, 2871261933145704442ull}},
+ {{15376929601713768534ull, 3700689619239237611ull,
+ 17429435627731140187ull, 3589077416432130552ull}},
+ {{14609475983714822763ull, 14176005621659110ull, 3340050460954373618ull,
+ 4486346770540163191ull}},
+ {{4519236471394376323ull, 4620546021940924848ull,
+ 9005060565737565367ull, 2803966731587601994ull}},
+ {{5649045589242970404ull, 1163996508998768156ull,
+ 2032953670317180901ull, 3504958414484502493ull}},
+ {{7061306986553713004ull, 6066681654675848099ull,
+ 7152878106323864030ull, 4381198018105628116ull}},
+ {{2107473857382376676ull, 17626734089454568774ull,
+ 13693920853307190826ull, 2738248761316017572ull}},
+ {{11857714358582746653ull, 12810045574963435159ull,
+ 17117401066633988533ull, 3422810951645021965ull}},
+ {{10210456929801045412ull, 2177498913422130237ull,
+ 7561693278010321955ull, 4278513689556277457ull}},
+ {{8687378590339347335ull, 17501837885384689062ull,
+ 16255273344824920981ull, 2674071055972673410ull}},
+ {{1635851201069408360ull, 8042239301448697616ull,
+ 11095719644176375419ull, 3342588819965841763ull}},
+ {{2044814001336760450ull, 5441113108383484116ull,
+ 9257963536793081370ull, 4178236024957302204ull}},
+ {{10501380787690251089ull, 8012381711167065476ull,
+ 15009599247350451664ull, 2611397515598313877ull}},
+ {{13126725984612813862ull, 10015477138958831845ull,
+ 4926941003905900868ull, 3264246894497892347ull}},
+ {{2573349425483853615ull, 12519346423698539807ull,
+ 1546990236454988181ull, 4080308618122365434ull}},
+ {{8525872418568490365ull, 10130434524025281331ull,
+ 5578554916211755517ull, 2550192886326478396ull}},
+ {{6045654504783225053ull, 17274729173458989568ull,
+ 6973193645264694396ull, 3187741107908097995ull}},
+ {{7557068130979031316ull, 3146667393114185344ull,
+ 4104806038153480092ull, 3984676384885122494ull}},
+ {{4723167581861894573ull, 11190039157551141648ull,
+ 16400561829128088769ull, 2490422740553201558ull}},
+ {{5903959477327368216ull, 152490891656763348ull,
+ 11277330249555335154ull, 3113028425691501948ull}},
+ {{7379949346659210269ull, 9413985651425729993ull,
+ 14096662811944168942ull, 3891285532114377435ull}},
+ {{16141683387730476179ull, 1272055013713693341ull,
+ 6504571248251411637ull, 2432053457571485897ull}},
+ {{6342046179380931511ull, 6201754785569504581ull,
+ 12742400078741652450ull, 3040066821964357371ull}},
+ {{12539243742653552293ull, 16975565518816656534ull,
+ 11316314079999677658ull, 3800083527455446714ull}},
+ {{3225341320731082279ull, 15221414467687798238ull,
+ 11684382318427186440ull, 2375052204659654196ull}},
+ {{13255048687768628657ull, 580024010900196181ull,
+ 14605477898033983051ull, 2968815255824567745ull}},
+ {{2733752804428622109ull, 14560088068907408939ull,
+ 4421789317260315101ull, 3711019069780709682ull}},
+ {{17849496567263746482ull, 11405898052280824538ull,
+ 7375304341715084842ull, 2319386918612943551ull}},
+ {{13088498672224907295ull, 5034000528496254865ull,
+ 4607444408716468149ull, 2899233648266179439ull}},
+ {{2525565284998970406ull, 10904186679047706486ull,
+ 1147619492468197282ull, 3624042060332724299ull}},
+ {{12380328643103488816ull, 4406861311954857299ull,
+ 15269582420867410315ull, 4530052575415905373ull}},
+ {{5431862392725986558ull, 448445310758091860ull,
+ 11849332022255825399ull, 2831282859634940858ull}},
+ {{6789827990907483197ull, 14395614693729778537ull,
+ 5588292990965005940ull, 3539103574543676073ull}},
+ {{13098971007061741900ull, 17994518367162223171ull,
+ 11597052257133645329ull, 4423879468179595091ull}},
+ {{5881013870199894736ull, 4329044951835307626ull,
+ 4942314651494834379ull, 2764924667612246932ull}},
+ {{16574639374604644228ull, 799620171366746628ull,
+ 6177893314368542974ull, 3456155834515308665ull}},
+ {{2271555144546253669ull, 10222897251063209094ull,
+ 12334052661388066621ull, 4320194793144135831ull}},
+ {{15254780020623572255ull, 8695153791128199635ull,
+ 14626311941008623494ull, 2700121745715084894ull}},
+ {{14456789007352077415ull, 1645570202055473736ull,
+ 9059517889406003560ull, 3375152182143856118ull}},
+ {{18070986259190096768ull, 2056962752569342170ull,
+ 2101025324902728642ull, 4218940227679820148ull}},
+ {{15906052430421198384ull, 5897287738783226760ull,
+ 10536512864918981209ull, 2636837642299887592ull}},
+ {{1435821464316946364ull, 11983295691906421355ull,
+ 13170641081148726511ull, 3296047052874859490ull}},
+ {{15629834885678346667ull, 10367433596455638789ull,
+ 7239929314581132331ull, 4120058816093574363ull}},
+ {{12074489812762660619ull, 4173802988571080291ull,
+ 2219112812399513755ull, 2575036760058483977ull}},
+ {{10481426247525937870ull, 605567717286462460ull,
+ 7385577033926780098ull, 3218795950073104971ull}},
+ {{13101782809407422337ull, 9980331683462853883ull,
+ 4620285273981087218ull, 4023494937591381214ull}},
+ {{5882771246665945009ull, 10849393320591671581ull,
+ 16722736351520343223ull, 2514684335994613258ull}},
+ {{11965150076759819165ull, 8950055632312201572ull,
+ 11680048402545653221ull, 3143355419993266573ull}},
+ {{14956437595949773956ull, 15799255558817639869ull,
+ 765002447899902814ull, 3929194274991583217ull}},
+ {{11653616506682302675ull, 5262848705833637014ull,
+ 12007341576005909019ull, 2455746421869739510ull}},
+ {{5343648596498102535ull, 1966874863864658364ull,
+ 5785804933152610466ull, 3069683027337174388ull}},
+ {{6679560745622628169ull, 11681965616685598763ull,
+ 7232256166440763082ull, 3837103784171467985ull}},
+ {{1868882456800448654ull, 11912914528855887131ull,
+ 16049375150093946686ull, 2398189865107167490ull}},
+ {{16171161126282724529ull, 5667771124215083105ull,
+ 10838346900762657550ull, 2997737331383959363ull}},
+ {{6378893352571241950ull, 16308085942123629690ull,
+ 8936247607525934033ull, 3747171664229949204ull}},
+ {{8598494363784414123ull, 3275024686186186700ull,
+ 14808526791558484579ull, 2341982290143718252ull}},
+ {{10748117954730517653ull, 17928838913014897087ull,
+ 63914415738554107ull, 2927477862679647816ull}},
+ {{8823461424985759162ull, 17799362622841233455ull, 79893019673192634ull,
+ 3659347328349559770ull}},
+ {{6417640762804811049ull, 13025831241696766011ull,
+ 9323238311446266601ull, 4574184160436949712ull}},
+ {{1705182467539312954ull, 1223615498419396901ull,
+ 5827023944653916626ull, 2858865100273093570ull}},
+ {{6743164102851529096ull, 10752891409879021934ull,
+ 16507151967672171590ull, 3573581375341366962ull}},
+ {{17652327165419187178ull, 4217742225494001609ull,
+ 11410567922735438680ull, 4466976719176708703ull}},
+ {{4115175450745910130ull, 2636088890933751006ull,
+ 14049133979350731031ull, 2791860449485442939ull}},
+ {{14367341350287163471ull, 17130169168949352469ull,
+ 12949731455761025884ull, 3489825561856803674ull}},
+ {{4124118632576790626ull, 2965967387477138971ull,
+ 6963792282846506548ull, 4362281952321004593ull}},
+ {{271731136146800190ull, 11077101654027987665ull,
+ 15881585222847536352ull, 2726426220200627870ull}},
+ {{4951349938610888141ull, 13846377067534984581ull,
+ 10628609491704644632ull, 3408032775250784838ull}},
+ {{10800873441690998080ull, 17307971334418730726ull,
+ 4062389827776029982ull, 4260040969063481048ull}},
+ {{2138859882629485896ull, 6205796065584318800ull,
+ 2538993642360018739ull, 2662525605664675655ull}},
+ {{2673574853286857370ull, 3145559063553010596ull,
+ 17008800108232187136ull, 3328157007080844568ull}},
+ {{3341968566608571713ull, 3931948829441263245ull,
+ 2814256061580682304ull, 4160196258851055711ull}},
+ {{4394573363344051273ull, 2457468018400789528ull,
+ 8676439066129008296ull, 2600122661781909819ull}},
+ {{5493216704180064091ull, 3071835023000986910ull,
+ 6233862814233872466ull, 3250153327227387274ull}},
+ {{16089892917079855921ull, 13063165815606009445ull,
+ 17015700554647116390ull, 4062691659034234092ull}},
+ {{12362026082388603903ull, 3552792616326367999ull,
+ 1411440809799671936ull, 2539182286896396308ull}},
+ {{10840846584558366974ull, 4440990770407959999ull,
+ 1764301012249589920ull, 3173977858620495385ull}},
+ {{8939372212270570814ull, 5551238463009949999ull,
+ 6817062283739375304ull, 3967472323275619231ull}},
+ {{12504636660310188615ull, 3469524039381218749ull,
+ 11178192954978191421ull, 2479670202047262019ull}},
+ {{1795737770105572057ull, 8948591067653911341ull,
+ 9361055175295351372ull, 3099587752559077524ull}},
+ {{6856358231059352975ull, 11185738834567389176ull,
+ 11701318969119189215ull, 3874484690698846905ull}},
+ {{4285223894412095609ull, 13908615799245700091ull,
+ 395795328058411403ull, 2421552931686779316ull}},
+ {{744843849587731607ull, 12774083730629737210ull, 494744160073014254ull,
+ 3026941164608474145ull}},
+ {{10154426848839440317ull, 6744232626432395704ull,
+ 5230116218518655722ull, 3783676455760592681ull}},
+ {{6346516780524650198ull, 8826831409947635219ull,
+ 14798037682642629586ull, 2364797784850370425ull}},
+ {{3321459957228424844ull, 1810167225579768216ull,
+ 4662489048021123271ull, 2955997231062963032ull}},
+ {{4151824946535531055ull, 16097767087256873982ull,
+ 5828111310026404088ull, 3694996538828703790ull}},
+ {{16429948646866870621ull, 10061104429535546238ull,
+ 17477627624048666267ull, 2309372836767939868ull}},
+ {{11314063771728812469ull, 7964694518492044894ull,
+ 3400290456351281218ull, 2886716045959924836ull}},
+ {{4919207677806239778ull, 732496111260280310ull, 4250363070439101523ull,
+ 3608395057449906045ull}},
+ {{15372381634112575530ull, 14750678194357514099ull,
+ 9924639856476264807ull, 4510493821812382556ull}},
+ {{7301895512106665754ull, 16136702899114528168ull,
+ 15426271947152441312ull, 2819058638632739097ull}},
+ {{9127369390133332193ull, 1724134550183608594ull,
+ 5447781878658387929ull, 3523823298290923872ull}},
+ {{2185839700811889433ull, 6766854206156898647ull,
+ 6809727348322984911ull, 4404779122863654840ull}},
+ {{8283678840648512752ull, 11146812906489143510ull,
+ 4256079592701865569ull, 2752986951789784275ull}},
+ {{1131226513955865132ull, 98458077829265676ull, 708413472449944058ull,
+ 3441233689737230344ull}},
+ {{1414033142444831414ull, 9346444634141357903ull, 885516840562430072ull,
+ 4301542112171537930ull}},
+ {{7801299741669101490ull, 5841527896338348689ull,
+ 5165134043778906699ull, 2688463820107211206ull}},
+ {{14363310695513764767ull, 2690223851995547957ull,
+ 15679789591578409182ull, 3360579775134014007ull}},
+ {{4119080314110042246ull, 12586151851849210755ull,
+ 14988050971045623573ull, 4200724718917517509ull}},
+ {{268582187105082452ull, 10172187916619450674ull,
+ 11673374866117208685ull, 2625452949323448443ull}},
+ {{9559099770736128873ull, 17326920914201701246ull,
+ 9980032564219122952ull, 3281816186654310554ull}},
+ {{2725502676565385283ull, 3211907069042574942ull,
+ 3251668668419127883ull, 4102270233317888193ull}},
+ {{15538497228135529514ull, 18148342982647467002ull,
+ 13561507963830424686ull, 2563918895823680120ull}},
+ {{10199749498314636084ull, 13462056691454557945ull,
+ 16951884954788030858ull, 3204898619779600150ull}},
+ {{17361372891320683009ull, 7604198827463421623ull,
+ 11966484156630262765ull, 4006123274724500188ull}},
+ {{17768387084716508737ull, 7058467276378332466ull,
+ 16702424634748690036ull, 2503827046702812617ull}},
+ {{12987111819040860113ull, 8823084095472915583ull,
+ 7042972738153698833ull, 3129783808378515772ull}},
+ {{11622203755373687237ull, 15640541137768532383ull,
+ 8803715922692123541ull, 3912229760473144715ull}},
+ {{14181406374749636380ull, 12081181220319026691ull,
+ 3196479442468883261ull, 2445143600295715447ull}},
+ {{13115071950009657570ull, 1266418470116619652ull,
+ 17830657358368267789ull, 3056429500369644308ull}},
+ {{16393839937512071963ull, 6194709106073162469ull,
+ 3841577624250783120ull, 3820536875462055386ull}},
+ {{12551992970158738929ull, 3871693191295726543ull,
+ 7012672033584127354ull, 2387835547163784616ull}},
+ {{11078305194271035757ull, 14062988525974433987ull,
+ 8765840041980159192ull, 2984794433954730770ull}},
+ {{9236195474411406792ull, 17578735657468042484ull,
+ 1733928015620423182ull, 3730993042443413463ull}},
+ {{14995994208361905053ull, 6375023767490138648ull,
+ 8001234037403846345ull, 2331870651527133414ull}},
+ {{298248686742829701ull, 12580465727790061215ull, 778170509900032123ull,
+ 2914838314408916768ull}},
+ {{14207868913710700838ull, 11113896141310188614ull,
+ 972713137375040154ull, 3643547893011145960ull}},
+ {{8536464105283600239ull, 4668998139782959960ull,
+ 1215891421718800193ull, 4554434866263932450ull}},
+ {{5335290065802250149ull, 14447338883432819735ull,
+ 5371618157001638024ull, 2846521791414957781ull}},
+ {{2057426563825424783ull, 18059173604291024669ull,
+ 11326208714679435434ull, 3558152239268697226ull}},
+ {{7183469223209168882ull, 13350594968509005028ull,
+ 4934388856494518485ull, 4447690299085871533ull}},
+ {{13713040301360506360ull, 10649964864531822094ull,
+ 5389836044522768005ull, 2779806436928669708ull}},
+ {{7917928339845857141ull, 17924142099092165522ull,
+ 6737295055653460006ull, 3474758046160837135ull}},
+ {{674038387952545619ull, 13181805587010431095ull,
+ 3809932801139437104ull, 4343447557701046419ull}},
+ {{7338803020111422868ull, 8238628491881519434ull, 75364991498454238ull,
+ 2714654723563154012ull}},
+ {{18396875811994054393ull, 1074913577997123484ull, 94206239373067798ull,
+ 3393318404453942515ull}},
+ {{4549350691283016375ull, 10567014009351180164ull,
+ 13952815854498498459ull, 4241648005567428143ull}},
+ {{12066716218906661042ull, 4298540746630793650ull,
+ 15638038936702643393ull, 2651030003479642589ull}},
+ {{5860023236778550495ull, 9984861951715879967ull,
+ 5712490615596140529ull, 3313787504349553237ull}},
+ {{2713343027545800214ull, 17092763458072237863ull,
+ 11752299287922563565ull, 4142234380436941546ull}},
+ {{8613368419857206990ull, 12988820170508842616ull,
+ 11956873073378990132ull, 2588896487773088466ull}},
+ {{10766710524821508738ull, 16236025213136053270ull,
+ 5722719304868961857ull, 3236120609716360583ull}},
+ {{4235016119172110114ull, 6459973461137902876ull,
+ 2541713112658814418ull, 4045150762145450729ull}},
+ {{11870257111337344629ull, 8649169431638577201ull,
+ 13117785741480228771ull, 2528219226340906705ull}},
+ {{1002763333889517075ull, 6199775771120833598ull,
+ 2562174121568122252ull, 3160274032926133382ull}},
+ {{10476826204216672151ull, 7749719713901041997ull,
+ 12426089688814928623ull, 3950342541157666727ull}},
+ {{8853859386849114047ull, 11761103848829233104ull,
+ 14683835083150412245ull, 2468964088223541704ull}},
+ {{11067324233561392558ull, 866321755754377668ull,
+ 18354793853938015307ull, 3086205110279427130ull}},
+ {{13834155291951740698ull, 14917960249975135797ull,
+ 13720120280567743325ull, 3857756387849283913ull}},
+ {{10952190066683531888ull, 11629568165448153825ull,
+ 1657546147713757722ull, 2411097742405802446ull}},
+ {{18301923601781802764ull, 5313588169955416473ull,
+ 11295304721496972961ull, 3013872178007253057ull}},
+ {{9042346446945089743ull, 11253671230871658496ull,
+ 284072846589052489ull, 3767340222509066322ull}},
+ {{5651466529340681090ull, 116015491653704704ull, 4789231547545545710ull,
+ 2354587639068166451ull}},
+ {{7064333161675851362ull, 9368391401421906688ull,
+ 1374853416004544233ull, 2943234548835208064ull}},
+ {{8830416452094814202ull, 16322175270204771264ull,
+ 1718566770005680291ull, 3679043186044010080ull}},
+ {{11038020565118517753ull, 15791033069328576176ull,
+ 2148208462507100364ull, 4598803982555012600ull}},
+ {{6898762853199073596ull, 646023631475584302ull, 1342630289066937728ull,
+ 2874252489096882875ull}},
+ {{17846825603353617802ull, 807529539344480377ull,
+ 15513345916615835872ull, 3592815611371103593ull}},
+ {{8473473948909858541ull, 1009411924180600472ull,
+ 5556624340487631128ull, 4491019514213879492ull}},
+ {{5295921218068661588ull, 630882452612875295ull,
+ 12696262249659545263ull, 2806887196383674682ull}},
+ {{2008215504158439081ull, 14623661121048257831ull,
+ 6646955775219655770ull, 3508608995479593353ull}},
+ {{16345327435480212563ull, 9056204364455546480ull,
+ 12920380737451957617ull, 4385761244349491691ull}},
+ {{10215829647175132852ull, 17189342773853186310ull,
+ 5769394951693779558ull, 2741100777718432307ull}},
+ {{3546415022114140257ull, 12263306430461707080ull,
+ 2600057671189836544ull, 3426375972148040384ull}},
+ {{4433018777642675321ull, 15329133038077133850ull,
+ 3250072088987295680ull, 4282969965185050480ull}},
+ {{7382322754454059980ull, 9580708148798208656ull,
+ 2031295055617059800ull, 2676856228240656550ull}},
+ {{9227903443067574975ull, 11975885185997760820ull,
+ 11762490856376100558ull, 3346070285300820687ull}},
+ {{11534879303834468718ull, 5746484445642425217ull,
+ 10091427552042737794ull, 4182587856626025859ull}},
+ {{291770537255461093ull, 8203238796953903665ull, 4001299210813017169ull,
+ 2614117410391266162ull}},
+ {{4976399189996714270ull, 14865734514619767485ull,
+ 14224996050371047269ull, 3267646762989082702ull}},
+ {{10832185005923280742ull, 4747110087992545644ull,
+ 8557873026109033279ull, 4084558453736353378ull}},
+ {{15993487665556826272ull, 9884472832636422883ull,
+ 9960356659745533703ull, 2552849033585220861ull}},
+ {{15380173563518644936ull, 7743905022368140700ull,
+ 17062131843109305033ull, 3191061291981526076ull}},
+ {{778472880688754553ull, 14291567296387563780ull,
+ 2880920730177079675ull, 3988826614976907596ull}},
+ {{9709917587285247404ull, 6626386551028533410ull,
+ 11023947493215450605ull, 2493016634360567247ull}},
+ {{2914024947251783447ull, 12894669207213054667ull,
+ 9168248348091925352ull, 3116270792950709059ull}},
+ {{17477589239346893021ull, 16118336509016318333ull,
+ 6848624416687518786ull, 3895338491188386324ull}},
+ {{13229336283805502090ull, 14685646336562586862ull,
+ 13503762297284475049ull, 2434586556992741452ull}},
+ {{7313298317902101804ull, 4521999865421069866ull,
+ 16879702871605593812ull, 3043233196240926815ull}},
+ {{18364994934232403063ull, 5652499831776337332ull,
+ 16487942571079604361ull, 3804041495301158519ull}},
+ {{2254749797040476107ull, 15062027440928680593ull,
+ 17222493134565834581ull, 2377525934563224074ull}},
+ {{7430123264727983037ull, 4992476245878687029ull,
+ 12304744381352517419ull, 2971907418204030093ull}},
+ {{13899340099337366701ull, 1628909288920970882ull,
+ 1545872421408483062ull, 3714884272755037617ull}},
+ {{13298773580513242092ull, 14853126360857770513ull,
+ 12495385309448771673ull, 2321802670471898510ull}},
+ {{2788408920359388903ull, 4731349895790049430ull,
+ 6395859599956188784ull, 2902253338089873138ull}},
+ {{12708883187304011937ull, 5914187369737561787ull,
+ 17218196536800011788ull, 3627816672612341422ull}},
+ {{11274417965702627017ull, 7392734212171952234ull,
+ 12299373634145238927ull, 4534770840765426778ull}},
+ {{11658197246991529790ull, 11537987910248552002ull,
+ 12298794539768162233ull, 2834231775478391736ull}},
+ {{5349374521884636429ull, 587426832528526291ull,
+ 15373493174710202792ull, 3542789719347989670ull}},
+ {{2075032133928407632ull, 734283540660657864ull, 9993494431532977682ull,
+ 4428487149184987088ull}},
+ {{1296895083705254770ull, 5070613231340299069ull,
+ 6245934019708111051ull, 2767804468240616930ull}},
+ {{6232804873058956367ull, 1726580520747985932ull,
+ 17030789561489914622ull, 3459755585300771162ull}},
+ {{7791006091323695458ull, 11381597687789758223ull,
+ 12065114915007617469ull, 4324694481625963953ull}},
+ {{11786907834718391518ull, 9419341564082292841ull,
+ 623167794238679062ull, 2702934051016227471ull}},
+ {{898576738115825685ull, 2550804918248090244ull,
+ 14614017798080512540ull, 3378667563770284338ull}},
+ {{1123220922644782106ull, 3188506147810112805ull,
+ 9044150210745864867ull, 4223334454712855423ull}},
+ {{3007856085866682768ull, 18133717406877178167ull,
+ 12570122909357247397ull, 2639584034195534639ull}},
+ {{17594878162615517172ull, 8832088703314308996ull,
+ 11100967618269171343ull, 3299480042744418299ull}},
+ {{3546853629559844849ull, 6428424860715498342ull,
+ 9264523504409076275ull, 4124350053430522874ull}},
+ {{16051841573757066743ull, 1711922528733492511ull,
+ 10402013208683060576ull, 2577718783394076796ull}},
+ {{15453115948768945525ull, 2139903160916865639ull,
+ 13002516510853825720ull, 3222148479242595995ull}},
+ {{14704708917533794002ull, 2674878951146082049ull,
+ 11641459620139894246ull, 4027685599053244994ull}},
+ {{2272914045817539395ull, 15506857399748464993ull,
+ 11887598281014821807ull, 2517303499408278121ull}},
+ {{7452828575699312148ull, 14771885731258193337ull,
+ 1024439795986363547ull, 3146629374260347652ull}},
+ {{13927721738051528089ull, 13853171145645353767ull,
+ 1280549744982954434ull, 3933286717825434565ull}},
+ {{15622355113923286912ull, 13269917984455734008ull,
+ 3106186599828040473ull, 2458304198640896603ull}},
+ {{1081199818694557023ull, 2752339425287503799ull,
+ 17717791305067214304ull, 3072880248301120753ull}},
+ {{15186557828650359991ull, 3440424281609379748ull,
+ 8312181076051854168ull, 3841100310376400942ull}},
+ {{268226606051699187ull, 2150265176005862343ull, 583427154105020951ull,
+ 2400687693985250589ull}},
+ {{14170341312846787695ull, 16522889525289491640ull,
+ 5340969961058664092ull, 3000859617481563236ull}},
+ {{17712926641058484619ull, 2206867832902312934ull,
+ 6676212451323330116ull, 3751074521851954045ull}},
+ {{6458893132234164983ull, 10602664432418721392ull,
+ 6478475791290775274ull, 2344421576157471278ull}},
+ {{8073616415292706229ull, 4029958503668625932ull,
+ 17321466775968244901ull, 2930526970196839097ull}},
+ {{10092020519115882786ull, 9649134148013170319ull,
+ 7816775414678142414ull, 3663158712746048872ull}},
+ {{8003339630467465578ull, 2838045648161687091ull,
+ 9770969268347678018ull, 4578948390932561090ull}},
+ {{2696244259828472034ull, 6385464548528442336ull,
+ 10718541811144686665ull, 2861842744332850681ull}},
+ {{3370305324785590043ull, 12593516704087940824ull,
+ 18009863282358246235ull, 3577303430416063351ull}},
+ {{4212881655981987553ull, 11130209861682538126ull,
+ 17900643084520419890ull, 4471629288020079189ull}},
+ {{16468109090270905933ull, 11568067181978974232ull,
+ 13493744937038956383ull, 2794768305012549493ull}},
+ {{2138392289129080800ull, 9848397959046329887ull,
+ 3032123116016531767ull, 3493460381265686867ull}},
+ {{16508048416693514712ull, 7698811430380524454ull,
+ 17625211950302828421ull, 4366825476582108583ull}},
+ {{5705844242006058791ull, 7117600153201521736ull,
+ 17933286496580349619ull, 2729265922863817864ull}},
+ {{7132305302507573489ull, 4285314173074514266ull,
+ 3969864047015885408ull, 3411582403579772331ull}},
+ {{18138753664989242669ull, 5356642716343142832ull,
+ 350644040342468856ull, 4264478004474715414ull}},
+ {{11336721040618276668ull, 3347901697714464270ull,
+ 14054210580496206747ull, 2665298752796697133ull}},
+ {{4947529263918070027ull, 18019935177425244050ull,
+ 3732705170338094721ull, 3331623440995871417ull}},
+ {{15407783616752363342ull, 8689860916499391350ull,
+ 9277567481350006306ull, 4164529301244839271ull}},
+ {{5018178742042839185ull, 10042849091239507498ull,
+ 12716008703484835797ull, 2602830813278024544ull}},
+ {{15496095464408324789ull, 17165247382476772276ull,
+ 15895010879356044746ull, 3253538516597530680ull}},
+ {{923375256800854370ull, 12233187191241189538ull,
+ 1422019525485504317ull, 4066923145746913351ull}},
+ {{5188795553927921886ull, 9951585003739437413ull,
+ 7806291231069522054ull, 2541826966091820844ull}},
+ {{11097680460837290261ull, 3216109217819520958ull,
+ 9757864038836902568ull, 3177283707614776055ull}},
+ {{4648728539191837018ull, 4020136522274401198ull,
+ 7585644030118740306ull, 3971604634518470069ull}},
+ {{16740513392277061848ull, 7124271344848888652ull,
+ 7046870528037906643ull, 2482252896574043793ull}},
+ {{2478897666636775694ull, 4293653162633722912ull,
+ 13420274178474771208ull, 3102816120717554741ull}},
+ {{3098622083295969618ull, 5367066453292153640ull,
+ 2940284667811300298ull, 3878520150896943427ull}},
+ {{1936638802059981011ull, 7966102551734983929ull,
+ 17978578981877920350ull, 2424075094310589641ull}},
+ {{7032484521002364168ull, 734256152813954103ull, 8638165672065236726ull,
+ 3030093867888237052ull}},
+ {{4178919632825567306ull, 10141192227872218437ull,
+ 10797707090081545907ull, 3787617334860296315ull}},
+ {{4917667779729673518ull, 4032402133206442571ull,
+ 4442723922087272240ull, 2367260834287685197ull}},
+ {{1535398706234703994ull, 5040502666508053214ull,
+ 10165090921036478204ull, 2959076042859606496ull}},
+ {{11142620419648155800ull, 6300628333135066517ull,
+ 12706363651295597755ull, 3698845053574508120ull}},
+ {{9269980771493791327ull, 1632049698995722621ull,
+ 7941477282059748597ull, 2311778158484067575ull}},
+ {{16199161982794627063ull, 6651748142172041180ull,
+ 5315160584147297842ull, 2889722698105084469ull}},
+ {{1802208404783732213ull, 17538057214569827284ull,
+ 11255636748611510206ull, 3612153372631355586ull}},
+ {{2252760505979665266ull, 12699199481357508297ull,
+ 4846173898909611950ull, 4515191715789194483ull}},
+ {{12937190362305760551ull, 3325313657421054781ull,
+ 723015677604813517ull, 2821994822368246552ull}},
+ {{2336429897600036977ull, 8768328090203706381ull, 903769597006016896ull,
+ 3527493527960308190ull}},
+ {{7532223390427434125ull, 10960410112754632976ull,
+ 10353084033112296928ull, 4409366909950385237ull}},
+ {{4707639619017146328ull, 6850256320471645610ull,
+ 8776520529908879532ull, 2755854318718990773ull}},
+ {{15107921560626208718ull, 8562820400589557012ull,
+ 15582336680813487319ull, 3444817898398738466ull}},
+ {{438157877073209282ull, 6091839482309558362ull,
+ 10254548814162083341ull, 4306022372998423083ull}},
+ {{4885534691598143705ull, 6113242685657167928ull,
+ 4103249999637608136ull, 2691263983124014427ull}},
+ {{6106918364497679631ull, 7641553357071459910ull, 517376481119622266ull,
+ 3364079978905018034ull}},
+ {{16857019992476875347ull, 328569659484549079ull,
+ 9870092638254303641ull, 4205099973631272542ull}},
+ {{17453166522939128948ull, 11734571083246312934ull,
+ 1557121880481551871ull, 2628187483519545339ull}},
+ {{12593086116819135377ull, 10056527835630503264ull,
+ 15781460405884103551ull, 3285234354399431673ull}},
+ {{15741357646023919221ull, 7958973776110741176ull,
+ 5891767452072965727ull, 4106542942999289592ull}},
+ {{9838348528764949513ull, 11891887637710295091ull,
+ 3682354657545603579ull, 2566589339374555995ull}},
+ {{7686249642528798988ull, 10253173528710480960ull,
+ 18438001377214168186ull, 3208236674218194993ull}},
+ {{9607812053160998735ull, 3593094874033325392ull,
+ 9212443666235546521ull, 4010295842772743742ull}},
+ {{6004882533225624209ull, 13774899342339298130ull,
+ 1146091272969828671ull, 2506434901732964839ull}},
+ {{16729475203386806069ull, 12606938159496734758ull,
+ 15267672146494449551ull, 3133043627166206048ull}},
+ {{11688471967378731779ull, 11146986680943530544ull,
+ 637846109408510323ull, 3916304533957757561ull}},
+ {{7305294979611707362ull, 4661023666376012638ull,
+ 11927868864448788712ull, 2447690333723598475ull}},
+ {{18354990761369410010ull, 5826279582970015797ull,
+ 10298150062133597986ull, 3059612917154498094ull}},
+ {{9108680396429598801ull, 16506221515567295555ull,
+ 3649315540812221674ull, 3824516146443122618ull}},
+ {{3387082238554805299ull, 14928074465656947626ull,
+ 6892508231435026450ull, 2390322591526951636ull}},
+ {{13457224835048282431ull, 9436721045216408724ull,
+ 8615635289293783063ull, 2987903239408689545ull}},
+ {{16821531043810353039ull, 7184215288093123001ull,
+ 15381230130044616733ull, 3734879049260861931ull}},
+ {{3595927874740388793ull, 6795977564271895828ull,
+ 7307425822064191506ull, 2334299405788038707ull}},
+ {{4494909843425485992ull, 17718343992194645593ull,
+ 4522596259152851478ull, 2917874257235048384ull}},
+ {{10230323322709245393ull, 12924557953388531183ull,
+ 5653245323941064348ull, 3647342821543810480ull}},
+ {{8176218134959168838ull, 16155697441735663979ull,
+ 7066556654926330435ull, 4559178526929763100ull}},
+ {{2804293325135786572ull, 7791467891871096035ull,
+ 13639969946183732330ull, 2849486579331101937ull}},
+ {{17340424711701896927ull, 515962827984094235ull,
+ 3214904377447501701ull, 3561858224163877422ull}},
+ {{17063844871199983254ull, 5256639553407505698ull,
+ 13242002508664152934ull, 4452322780204846777ull}},
+ {{15276589062927377438ull, 17120457776161854773ull,
+ 1358722540274013727ull, 2782701737628029236ull}},
+ {{5260678273377058085ull, 16788886201774930563ull,
+ 1698403175342517159ull, 3478377172035036545ull}},
+ {{1964161823293934703ull, 16374421733791275300ull,
+ 6734689987605534353ull, 4347971465043795681ull}},
+ {{10450973176413484997ull, 3316484555978465206ull,
+ 15738396288321928731ull, 2717482165652372300ull}},
+ {{3840344433662080438ull, 17980663750255245220ull,
+ 1226251286692859297ull, 3396852707065465376ull}},
+ {{4800430542077600548ull, 8640771632536892813ull,
+ 1532814108366074122ull, 4246065883831831720ull}},
+ {{5306112098012194295ull, 10012168288762945912ull,
+ 958008817728796326ull, 2653791177394894825ull}},
+ {{6632640122515242868ull, 3291838324098906582ull,
+ 5809197040588383312ull, 3317238971743618531ull}},
+ {{17514172189998829393ull, 4114797905123633227ull,
+ 2649810282308091236ull, 4146548714679523164ull}},
+ {{8640514609535574419ull, 11795120727557046575ull,
+ 10879503463297332830ull, 2591592946674701977ull}},
+ {{6188957243492080119ull, 5520528872591532411ull,
+ 18211065347549053942ull, 3239491183343377471ull}},
+ {{3124510535937712245ull, 16124033127594191322ull,
+ 18152145666008929523ull, 4049363979179221839ull}},
+ {{6564505103388458057ull, 7771677695532675624ull,
+ 18262620068896662808ull, 2530852486987013649ull}},
+ {{8205631379235572572ull, 9714597119415844530ull,
+ 8993217030838664798ull, 3163565608733767062ull}},
+ {{1033667187189689907ull, 2919874362415029855ull,
+ 2018149251693555190ull, 3954457010917208828ull}},
+ {{7563571019634638048ull, 15659979531791557371ull,
+ 10484715319163247801ull, 2471535631823255517ull}},
+ {{4842777756115909656ull, 5739916359457283002ull,
+ 17717580167381447656ull, 3089419539779069396ull}},
+ {{15276844231999662877ull, 7174895449321603752ull,
+ 3700231135517257954ull, 3861774424723836746ull}},
+ {{9548027644999789299ull, 9095995674253390249ull,
+ 6924330478125674125ull, 2413609015452397966ull}},
+ {{16546720574677124527ull, 15981680611244125715ull,
+ 17878785134511868464ull, 3017011269315497457ull}},
+ {{16071714699919017755ull, 1530356690345605528ull,
+ 8513423362857671869ull, 3771264086644371822ull}},
+ {{10044821687449386097ull, 3262315940679697407ull,
+ 709203583358657014ull, 2357040054152732389ull}},
+ {{7944341090884344717ull, 13301266962704397567ull,
+ 5498190497625709171ull, 2946300067690915486ull}},
+ {{5318740345178042992ull, 12014897684953109055ull,
+ 16096110158886912272ull, 3682875084613644357ull}},
+ {{2036739413045165836ull, 15018622106191386319ull,
+ 6285079643326476628ull, 4603593855767055447ull}},
+ {{8190491160794310504ull, 163266779514840641ull,
+ 10845703804720129749ull, 2877246159854409654ull}},
+ {{14849799969420276033ull, 4815769492820938705ull,
+ 4333757719045386378ull, 3596557699818012068ull}},
+ {{4727191906493181330ull, 15243083902880949190ull,
+ 5417197148806732972ull, 4495697124772515085ull}},
+ {{16789552996840402043ull, 303555402445817435ull,
+ 5691591227217902060ull, 2809810702982821928ull}},
+ {{16375255227623114650ull, 379444253057271794ull,
+ 7114489034022377575ull, 3512263378728527410ull}},
+ {{11245696997674117504ull, 14309363371603753455ull,
+ 18116483329382747776ull, 4390329223410659262ull}},
+ {{13946089651187405296ull, 8943352107252345909ull,
+ 6711116062436829456ull, 2743955764631662039ull}},
+ {{3597554008702092908ull, 11179190134065432387ull,
+ 3777209059618648916ull, 3429944705789577549ull}},
+ {{18332000566159779847ull, 13973987667581790483ull,
+ 9333197342950699049ull, 4287430882236971936ull}},
+ {{9151657344636168453ull, 1816213264597537196ull,
+ 5833248339344186906ull, 2679644301398107460ull}},
+ {{11439571680795210566ull, 11493638617601697303ull,
+ 7291560424180233632ull, 3349555376747634325ull}},
+ {{9687778582566625303ull, 14367048272002121629ull,
+ 13726136548652679944ull, 4186944220934542906ull}},
+ {{8360704623317834767ull, 8979405170001326018ull,
+ 13190521361335312869ull, 2616840138084089316ull}},
+ {{1227508742292517650ull, 15835942480929045427ull,
+ 16488151701669141086ull, 3271050172605111645ull}},
+ {{15369443983147810775ull, 10571556064306530975ull,
+ 6775131571804262646ull, 4088812715756389557ull}},
+ {{16523431517108463590ull, 1995536521764193955ull,
+ 6540300241591358106ull, 2555507947347743473ull}},
+ {{16042603377958191584ull, 11717792689060018252ull,
+ 12787061320416585536ull, 3194384934184679341ull}},
+ {{1606510148738187864ull, 14647240861325022816ull,
+ 2148768595238568208ull, 3992981167730849177ull}},
+ {{1004068842961367415ull, 9154525538328139260ull,
+ 12872195418092574890ull, 2495613229831780735ull}},
+ {{1255086053701709269ull, 2219784886055398267ull,
+ 11478558254188330709ull, 3119516537289725919ull}},
+ {{15403915622409300298ull, 7386417125996635737ull,
+ 9736511799308025482ull, 3899395671612157399ull}},
+ {{2709918236364730830ull, 9228196722175285240ull,
+ 13002848902208597782ull, 2437122294757598374ull}},
+ {{3387397795455913538ull, 2311873865864330742ull,
+ 7030189090905971420ull, 3046402868446997968ull}},
+ {{13457619281174667730ull, 2889842332330413427ull,
+ 8787736363632464275ull, 3808003585558747460ull}},
+ {{6105169041520473379ull, 17947052522202366056ull,
+ 14715707264125065979ull, 2380002240974217162ull}},
+ {{7631461301900591724ull, 17822129634325569666ull,
+ 9171262043301556666ull, 2975002801217771453ull}},
+ {{315954590520963847ull, 13054290006052186275ull,
+ 16075763572554333737ull, 3718753501522214316ull}},
+ {{16338372683571460069ull, 1241402226141534565ull,
+ 823980195991682778ull, 2324220938451383948ull}},
+ {{6587907799182161374ull, 10775124819531694015ull,
+ 1029975244989603472ull, 2905276173064229935ull}},
+ {{3623198730550313813ull, 13468906024414617519ull,
+ 15122527111519168052ull, 3631595216330287418ull}},
+ {{18364056468470055978ull, 16836132530518271898ull,
+ 9679786852544184257ull, 4539494020412859273ull}},
+ {{16089221311221172890ull, 3605053803932838080ull,
+ 17579081828908584921ull, 2837183762758037045ull}},
+ {{1664782565316914497ull, 9118003273343435505ull,
+ 8138794230853567439ull, 3546479703447546307ull}},
+ {{6692664225073531025ull, 6785818073251906477ull,
+ 5561806770139571395ull, 4433099629309432884ull}},
+ {{6488758149884650843ull, 1935293286568747596ull,
+ 12699501268192007930ull, 2770687268318395552ull}},
+ {{8110947687355813553ull, 11642488645065710303ull,
+ 15874376585240009912ull, 3463359085397994440ull}},
+ {{5526998590767379037ull, 14553110806332137879ull,
+ 1396226657840460774ull, 4329198856747493051ull}},
+ {{10371903146870693755ull, 4484008235530198270ull,
+ 17013542725646145648ull, 2705749285467183156ull}},
+ {{3741506896733591385ull, 5605010294412747838ull,
+ 2820184333348130444ull, 3382186606833978946ull}},
+ {{13900255657771765039ull, 7006262868015934797ull,
+ 12748602453539938863ull, 4227733258542473682ull}},
+ {{10993502795321047102ull, 11296443320151041104ull,
+ 12579562551889849693ull, 2642333286589046051ull}},
+ {{13741878494151308877ull, 285496094906637668ull,
+ 11112767171434924213ull, 3302916608236307564ull}},
+ {{17177348117689136096ull, 4968556137060684989ull,
+ 13890958964293655266ull, 4128645760295384455ull}},
+ {{13041685582769404012ull, 7717033604090316022ull,
+ 15599378380324616397ull, 2580403600184615284ull}},
+ {{7078734941606979207ull, 14257978023540282932ull,
+ 1052478901696218880ull, 3225504500230769106ull}},
+ {{8848418677008724009ull, 17822472529425353665ull,
+ 10538970663975049408ull, 4031880625288461382ull}},
+ {{17059476719198922266ull, 11139045330890846040ull,
+ 1975170646557017976ull, 2519925390805288364ull}},
+ {{2877601825289101216ull, 13923806663613557551ull,
+ 2468963308196272470ull, 3149906738506610455ull}},
+ {{17432060336893540232ull, 8181386292662171130ull,
+ 16921262190527504300ull, 3937383423133263068ull}},
+ {{15506723728985850549ull, 14336738469768632764ull,
+ 1352416832224914379ull, 2460864639458289418ull}},
+ {{936660587522761570ull, 13309237068783403052ull,
+ 10913893077135918782ull, 3076080799322861772ull}},
+ {{1170825734403451963ull, 7413174299124478007ull,
+ 13642366346419898478ull, 3845100999153577215ull}},
+ {{7649295111643239333ull, 21547918525410850ull, 15444007994153518405ull,
+ 2403188124470985759ull}},
+ {{338246852699273358ull, 4638620916584151467ull,
+ 14693323974264510102ull, 3003985155588732199ull}},
+ {{14257866621156255409ull, 15021648182584965141ull,
+ 13754968949403249723ull, 3754981444485915249ull}},
+ {{11217009647436353583ull, 7082687104901909261ull,
+ 1679326565735949221ull, 2346863402803697031ull}},
+ {{186204004013278267ull, 13465044899554774481ull,
+ 15934216262452100238ull, 2933579253504621288ull}},
+ {{4844441023443985737ull, 7607934087588692293ull,
+ 1471026254355573682ull, 3666974066880776611ull}},
+ {{10667237297732370076ull, 286545572631089558ull,
+ 15673840873226630815ull, 4583717583600970763ull}},
+ {{2055337292655343393ull, 7096620010535512830ull,
+ 7490307536552950307ull, 2864823489750606727ull}},
+ {{11792543652673955050ull, 4259088994742003133ull,
+ 4751198402263799980ull, 3581029362188258409ull}},
+ {{905621510560280100ull, 5323861243427503917ull,
+ 10550684021257137879ull, 4476286702735323011ull}},
+ {{2871856453313869015ull, 10244942304783271804ull,
+ 4288334504072017222ull, 2797679189209576882ull}},
+ {{3589820566642336268ull, 3582805844124313947ull,
+ 14583790166944797336ull, 3497098986511971102ull}},
+ {{18322333763585084047ull, 4478507305155392433ull,
+ 9006365671826220862ull, 4371373733139963878ull}},
+ {{4533929574599595674ull, 16634125121004283983ull,
+ 1017292526464000134ull, 2732108583212477424ull}},
+ {{1055725949822106688ull, 11569284364400579171ull,
+ 1271615658080000168ull, 3415135729015596780ull}},
+ {{15154715492559797072ull, 14461605455500723963ull,
+ 1589519572600000210ull, 4268919661269495975ull}},
+ {{7165854173636179218ull, 13650189428115340381ull,
+ 7910978760516081987ull, 2668074788293434984ull}},
+ {{13569003735472611926ull, 12451050766716787572ull,
+ 9888723450645102484ull, 3335093485366793730ull}},
+ {{16961254669340764908ull, 15563813458395984465ull,
+ 3137532276451602297ull, 4168866856708492163ull}},
+ {{3683255140696896212ull, 2809854383856408435ull,
+ 18101858737278109100ull, 2605541785442807601ull}},
+ {{18439126981153283976ull, 3512317979820510543ull,
+ 8792265366315472663ull, 3256927231803509502ull}},
+ {{18437222708014217066ull, 18225455530057801891ull,
+ 1766959671039565020ull, 4071159039754386878ull}},
+ {{9217421183295191715ull, 2167537669431350374ull,
+ 14939407849681891850ull, 2544474399846491798ull}},
+ {{2298404442264213835ull, 11932794123643963776ull,
+ 9450887775247589004ull, 3180592999808114748ull}},
+ {{2873005552830267294ull, 14915992654554954720ull,
+ 11813609719059486255ull, 3975741249760143435ull}},
+ {{1795628470518917059ull, 16240024436737928556ull,
+ 5077663065198484957ull, 2484838281100089647ull}},
+ {{2244535588148646323ull, 6464972490640246983ull,
+ 1735392813070718293ull, 3106047851375112059ull}},
+ {{16640727540467971616ull, 12692901631727696632ull,
+ 16004299071620561578ull, 3882559814218890073ull}},
+ {{10400454712792482260ull, 12544749538257198299ull,
+ 3085157892121769130ull, 2426599883886806296ull}},
+ {{8388882372563214921ull, 6457564885966722066ull,
+ 3856447365152211413ull, 3033249854858507870ull}},
+ {{1262730928849242843ull, 12683642125885790487ull,
+ 14043931243295040074ull, 3791562318573134837ull}},
+ {{7706735858171858633ull, 12538962347106006958ull,
+ 11083300036273093998ull, 2369726449108209273ull}},
+ {{410047785860047484ull, 6450330897027732890ull, 19066990059203786ull,
+ 2962158061385261592ull}},
+ {{9735931769179835162ull, 17286285658139441920ull, 23833737574004732ull,
+ 3702697576731576990ull}},
+ {{6084957355737396977ull, 1580556499482375392ull,
+ 13849954141265916670ull, 2314185985457235618ull}},
+ {{7606196694671746221ull, 11199067661207745048ull,
+ 8089070639727620029ull, 2892732481821544523ull}},
+ {{9507745868339682776ull, 163776521227517598ull, 5499652281232137133ull,
+ 3615915602276930654ull}},
+ {{2661310298569827661ull, 4816406669961784902ull,
+ 16097937388394947224ull, 4519894502846163317ull}},
+ {{15498376991888306001ull, 3010254168726115563ull,
+ 12367053876960535967ull, 2824934064278852073ull}},
+ {{14761285221432994597ull, 17597875766189808166ull,
+ 1623759290918506246ull, 3531167580348565092ull}},
+ {{9228234489936467438ull, 12773972670882484400ull,
+ 2029699113648132808ull, 4413959475435706365ull}},
+ {{5767646556210292149ull, 7983732919301552750ull,
+ 3574404955243776957ull, 2758724672147316478ull}},
+ {{16432930232117640994ull, 14591352167554328841ull,
+ 13691378230909497004ull, 3448405840184145597ull}},
+ {{6706104734864887530ull, 18239190209442911052ull,
+ 3279164733354707543ull, 4310507300230181997ull}},
+ {{13414687496145330515ull, 18317022908542901263ull,
+ 4355320967560386166ull, 2694067062643863748ull}},
+ {{12156673351754275239ull, 13672906598823850771ull,
+ 5444151209450482708ull, 3367583828304829685ull}},
+ {{10584155671265456145ull, 17091133248529813464ull,
+ 11416875030240491289ull, 4209479785381037106ull}},
+ {{6615097294540910091ull, 3764429252690051559ull,
+ 11747232912327694960ull, 2630924865863148191ull}},
+ {{3657185599748749709ull, 4705536565862564449ull,
+ 10072355121982230796ull, 3288656082328935239ull}},
+ {{9183168018113325040ull, 5881920707328205561ull,
+ 7978757884050400591ull, 4110820102911169049ull}},
+ {{17268695057389297910ull, 10593729469721210331ull,
+ 16515938723599970129ull, 2569262564319480655ull}},
+ {{16974182803309234484ull, 17853847855578900818ull,
+ 16033237386072574757ull, 3211578205399350819ull}},
+ {{11994356467281767297ull, 8482251764191462311ull,
+ 15429860714163330543ull, 4014472756749188524ull}},
+ {{14414001819692186417ull, 12218936380260745800ull,
+ 420290909497305781ull, 2509045472968242828ull}},
+ {{18017502274615233021ull, 1438612420043768538ull,
+ 525363636871632227ull, 3136306841210303535ull}},
+ {{13298505806414265468ull, 15633323580336874385ull,
+ 14491762601371703995ull, 3920383551512879418ull}},
+ {{1394037101367834061ull, 7464984228496852539ull,
+ 13669037644284702901ull, 2450239719695549636ull}},
+ {{15577604431991956289ull, 13942916304048453577ull,
+ 17086297055355878626ull, 3062799649619437045ull}},
+ {{5636947484707781649ull, 8205273343205791164ull,
+ 7522813263912684571ull, 3828499562024296307ull}},
+ {{12746464214797139339ull, 2822452830289925525ull,
+ 2395915280731733905ull, 2392812226265185192ull}},
+ {{2098022213214260461ull, 8139752056289794811ull,
+ 2994894100914667381ull, 2991015282831481490ull}},
+ {{16457585821799989288ull, 14786376088789631417ull,
+ 12966989662998110034ull, 3738769103539351862ull}},
+ {{3368462110983911449ull, 13853171073920907540ull,
+ 3492682520946430867ull, 2336730689712094914ull}},
+ {{4210577638729889312ull, 12704777823973746521ull,
+ 13589225188037814392ull, 2920913362140118642ull}},
+ {{9874908066839749543ull, 15880972279967183151ull,
+ 7763159448192492182ull, 3651141702675148303ull}},
+ {{7731949065122299025ull, 10627843313104203131ull,
+ 5092263291813227324ull, 4563927128343935379ull}},
+ {{2526625156487742939ull, 15865774107544902765ull,
+ 876821548169573125ull, 2852454455214959612ull}},
+ {{7769967464037066578ull, 5997159579148964744ull,
+ 1096026935211966407ull, 3565568069018699515ull}},
+ {{9712459330046333222ull, 2884763455508818026ull,
+ 15205091724297121721ull, 4456960086273374393ull}},
+ {{10681973099706346168ull, 13332192205761481026ull,
+ 2585653300044619219ull, 2785600053920858996ull}},
+ {{4129094337778156902ull, 12053554238774463379ull,
+ 3232066625055774024ull, 3482000067401073745ull}},
+ {{549681903795308223ull, 15066942798468079224ull,
+ 8651769299747105434ull, 4352500084251342181ull}},
+ {{343551189872067640ull, 14028525267469937419ull,
+ 7713198821555634848ull, 2720312552657088863ull}},
+ {{14264497042622248261ull, 17535656584337421773ull,
+ 5029812508517155656ull, 3400390690821361079ull}},
+ {{3995563247995646614ull, 3472826656712225601ull,
+ 1675579617219056667ull, 4250488363526701349ull}},
+ {{14026442076065748894ull, 18311417724940998664ull,
+ 3353080269975604368ull, 2656555227204188343ull}},
+ {{17533052595082186118ull, 4442528082466696714ull,
+ 18026408392751669173ull, 3320694034005235428ull}},
+ {{12692943706997956839ull, 10164846121510758797ull,
+ 4086266417230034850ull, 4150867542506544286ull}},
+ {{10238932826087416977ull, 10964714844371612152ull,
+ 16388974566050935493ull, 2594292214066590178ull}},
+ {{12798666032609271221ull, 18317579573891903094ull,
+ 11262846170708893558ull, 3242865267583237723ull}},
+ {{6774960503906813218ull, 13673602430510103060ull,
+ 9466871694958729044ull, 4053581584479047154ull}},
+ {{13457722351796534069ull, 17769373555923590220ull,
+ 10528480827776593556ull, 2533488490299404471ull}},
+ {{16822152939745667586ull, 3764972871194936159ull,
+ 8548915016293354042ull, 3166860612874255589ull}},
+ {{16416005156254696579ull, 13929588125848446007ull,
+ 15297829788794080456ull, 3958575766092819486ull}},
+ {{17177532250300267218ull, 8705992578655278754ull,
+ 4949457599568912381ull, 2474109853808012179ull}},
+ {{12248543276020558214ull, 15494176741746486347ull,
+ 1575135981033752572ull, 3092637317260015224ull}},
+ {{10698993076598309864ull, 920976853473556318ull,
+ 1968919976292190716ull, 3865796646575019030ull}},
+ {{2075184654446555761ull, 9798982570275748507ull,
+ 15065633040464782909ull, 2416122904109386893ull}},
+ {{16429038873340358413ull, 16860414231272073537ull,
+ 4996983245298814924ull, 3020153630136733617ull}},
+ {{6701240536393284304ull, 2628773715380540306ull,
+ 10857915075050906560ull, 3775192037670917021ull}},
+ {{8799961353673190594ull, 1642983572112837691ull,
+ 9092039931120510552ull, 2359495023544323138ull}},
+ {{6388265673664100339ull, 2053729465141047114ull,
+ 2141677877045862382ull, 2949368779430403923ull}},
+ {{17208704128934901231ull, 11790533868281084700ull,
+ 16512155401589491689ull, 3686710974288004903ull}},
+ {{3064136087459074923ull, 903109280069192164ull,
+ 16028508233559476708ull, 4608388717860006129ull}},
+ {{11138457091516697635ull, 9787815336898020910ull,
+ 3100288618333591086ull, 2880242948662503831ull}},
+ {{4699699327541096236ull, 3011397134267750330ull,
+ 17710418828199152570ull, 3600303685828129788ull}},
+ {{15097996196281146103ull, 12987618454689463720ull,
+ 3691279461539389096ull, 4500379607285162236ull}},
+ {{9436247622675716314ull, 8117261534180914825ull,
+ 11530421700316893993ull, 2812737254553226397ull}},
+ {{16406995546772033297ull, 14758262936153531435ull,
+ 577969070113953779ull, 3515921568191532997ull}},
+ {{15897058415037653717ull, 13836142651764526390ull,
+ 5334147356069830128ull, 4394901960239416246ull}},
+ {{5323975490971145669ull, 8647589157352828994ull,
+ 17168900152825807542ull, 2746813725149635153ull}},
+ {{15878341400568707894ull, 1586114409836260434ull,
+ 7626067135750095716ull, 3433517156437043942ull}},
+ {{10624554713856109060ull, 1982643012295325543ull,
+ 309211882832843837ull, 4291896445546304928ull}},
+ {{13557875723801150019ull, 3544994891898272416ull,
+ 193257426770527398ull, 2682435278466440580ull}},
+ {{16947344654751437523ull, 13654615651727616328ull,
+ 241571783463159247ull, 3353044098083050725ull}},
+ {{2737436744729745288ull, 12456583546232132507ull,
+ 4913650747756336963ull, 4191305122603813406ull}},
+ {{17851799029951948469ull, 5479521707181388864ull,
+ 16906089772629874314ull, 2619565701627383378ull}},
+ {{3868004713730383970ull, 16072774170831511889ull,
+ 11909240178932567084ull, 3274457127034229223ull}},
+ {{9446691910590367867ull, 1644223639829838245ull,
+ 10274864205238320952ull, 4093071408792786529ull}},
+ {{8210025453332673869ull, 1027639774893648903ull,
+ 17951005174342420355ull, 2558169630495491580ull}},
+ {{5650845798238454432ull, 15119607773899224841ull,
+ 3992012394218473827ull, 3197712038119364476ull}},
+ {{11675243266225455944ull, 14287823698946643147ull,
+ 4990015492773092284ull, 3997140047649205595ull}},
+ {{4991184032177216013ull, 18153261848696427775ull,
+ 812916673769488725ull, 2498212529780753497ull}},
+ {{1627294021794132112ull, 8856519255588371007ull,
+ 5627831860639248811ull, 3122765662225941871ull}},
+ {{15869175582524828852ull, 6458963051058075854ull,
+ 2423103807371673110ull, 3903457077782427339ull}},
+ {{5306548720650630129ull, 17871909962193461121ull,
+ 17655340944103153357ull, 2439660673614017086ull}},
+ {{11244871919240675565ull, 8504829397459662689ull,
+ 12845804143274165889ull, 3049575842017521358ull}},
+ {{221031843768680744ull, 15242722765251966266ull,
+ 6833883142237931553ull, 3811969802521901698ull}},
+ {{4749830920782813369ull, 2609172700641397060ull,
+ 8882862982326095125ull, 2382481126576188561ull}},
+ {{5937288650978516711ull, 7873151894229134229ull,
+ 15715264746335006810ull, 2978101408220235701ull}},
+ {{12033296832150533793ull, 618067830931641978ull,
+ 5809022877636594801ull, 3722626760275294627ull}},
+ {{12132496538521471525ull, 11915507440400745996ull,
+ 1324796289309177798ull, 2326641725172059142ull}},
+ {{15165620673151839406ull, 5671012263646156687ull,
+ 10879367398491248056ull, 2908302156465073927ull}},
+ {{14345339823012411353ull, 7088765329557695859ull,
+ 8987523229686672166ull, 3635377695581342409ull}},
+ {{13319988760338126287ull, 18084328698801895632ull,
+ 15846090055535728111ull, 4544222119476678011ull}},
+ {{8324992975211328930ull, 18220234464392266626ull,
+ 7597963275496136117ull, 2840138824672923757ull}},
+ {{1182869182159385354ull, 8940235025208169571ull,
+ 14109140112797558051ull, 3550173530841154696ull}},
+ {{15313644532981395405ull, 6563607763082824059ull,
+ 17636425140996947564ull, 4437716913551443370ull}},
+ {{7265184823899678176ull, 13325626888781540845ull,
+ 15634451731550480131ull, 2773573070969652106ull}},
+ {{13693167048301985624ull, 12045347592549538152ull,
+ 10319692627583324356ull, 3466966338712065133ull}},
+ {{17116458810377482030ull, 15056684490686922690ull,
+ 17511301802906543349ull, 4333707923390081416ull}},
+ {{15309472774913314173ull, 11716270815893020633ull,
+ 10944563626816589593ull, 2708567452118800885ull}},
+ {{5301782913359479004ull, 810280464584112080ull,
+ 18292390551948124896ull, 3385709315148501106ull}},
+ {{6627228641699348755ull, 1012850580730140100ull,
+ 13642116153080380312ull, 4232136643935626383ull}},
+ {{13365389937916868780ull, 633031612956337562ull,
+ 15443851623316319551ull, 2645085402459766489ull}},
+ {{7483365385541310167ull, 14626347571477585665ull,
+ 5469756473863235726ull, 3306356753074708112ull}},
+ {{13965892750354025612ull, 9059562427492206273ull,
+ 6837195592329044658ull, 4132945941343385140ull}},
+ {{1811153941330184152ull, 10273912535610016825ull,
+ 13496619282060428719ull, 2583091213339615712ull}},
+ {{6875628445090118094ull, 8230704651085133127ull,
+ 16870774102575535899ull, 3228864016674519640ull}},
+ {{3982849537935259713ull, 5676694795429028505ull,
+ 2641723554509868258ull, 4036080020843149551ull}},
+ {{14018496007278007081ull, 8159620265570530719ull,
+ 8568606249209749517ull, 2522550013026968469ull}},
+ {{12911433990670120947ull, 14811211350390551303ull,
+ 15322443829939574800ull, 3153187516283710586ull}},
+ {{11527606469910263279ull, 67270114278637513ull, 9929682750569692693ull,
+ 3941484395354638233ull}},
+ {{287225016052832694ull, 2347886830637842398ull,
+ 17735266765174527693ull, 2463427747096648895ull}},
+ {{9582403306920816675ull, 7546544556724690901ull,
+ 17557397438040771712ull, 3079284683870811119ull}},
+ {{16589690152078408748ull, 9433180695905863626ull,
+ 17335060779123576736ull, 3849105854838513899ull}},
+ {{14980242363476393372ull, 5895737934941164766ull,
+ 8528569977738541508ull, 2405691159274071187ull}},
+ {{9501930917490715906ull, 7369672418676455958ull,
+ 6049026453745788981ull, 3007113949092588984ull}},
+ {{2654041610008619075ull, 13823776541772957852ull,
+ 7561283067182236226ull, 3758892436365736230ull}},
+ {{10882148043110162730ull, 13251546357035486561ull,
+ 114115898561509737ull, 2349307772728585144ull}},
+ {{18214371072315091316ull, 2729374891012194489ull,
+ 142644873201887172ull, 2936634715910731430ull}},
+ {{8932905785111700433ull, 3411718613765243112ull,
+ 9401678128357134773ull, 3670793394888414287ull}},
+ {{11166132231389625542ull, 8876334285633941794ull,
+ 7140411642019030562ull, 4588491743610517859ull}},
+ {{11590518663045903868ull, 10159394946948601525ull,
+ 2156914267048200149ull, 2867807339756573662ull}},
+ {{653090273525216122ull, 17310929702113139811ull,
+ 11919514870665025994ull, 3584759174695717077ull}},
+ {{14651420897188683865ull, 12415290090786648955ull,
+ 1064335533049118781ull, 4480948968369646347ull}},
+ {{6851295051529233464ull, 10065399315955349549ull,
+ 16806110772651556902ull, 2800593105231028966ull}},
+ {{13175804832838929734ull, 3358377108089411128ull,
+ 11784266428959670320ull, 3500741381538786208ull}},
+ {{16469756041048662167ull, 4197971385111763910ull,
+ 14730333036199587900ull, 4375926726923482760ull}},
+ {{5681911507228025950ull, 11847104152549628252ull,
+ 9206458147624742437ull, 2734954204327176725ull}},
+ {{7102389384035032438ull, 973822135404871603ull,
+ 16119758702958315951ull, 3418692755408970906ull}},
+ {{4266300711616402643ull, 15052335724538253216ull,
+ 10926326341843119130ull, 4273365944261213633ull}},
+ {{2666437944760251652ull, 14019395846263796164ull,
+ 18358169009720419216ull, 2670853715163258520ull}},
+ {{3333047430950314565ull, 17524244807829745205ull,
+ 4500967188440972404ull, 3338567143954073151ull}},
+ {{8777995307115281110ull, 3458561936077629890ull,
+ 1014522967123827602ull, 4173208929942591439ull}},
+ {{10097933085374438598ull, 6773287228475906585ull,
+ 7551605882093474107ull, 2608255581214119649ull}},
+ {{17234102375145436152ull, 3854923017167495327ull,
+ 14051193371044230538ull, 3260319476517649561ull}},
+ {{16930941950504407285ull, 14042025808314144967ull,
+ 3728933658523124460ull, 4075399345647061952ull}},
+ {{17499367746706336410ull, 17999638167051116412ull,
+ 2330583536576952787ull, 2547124591029413720ull}},
+ {{3427465609673368896ull, 17887861690386507612ull,
+ 2913229420721190984ull, 3183905738786767150ull}},
+ {{4284332012091711120ull, 3913083039273582899ull,
+ 12864908812756264539ull, 3979882173483458937ull}},
+ {{371864498343625498ull, 139833890332295360ull, 1123038980331583481ull,
+ 2487426358427161836ull}},
+ {{464830622929531872ull, 4786478381342757104ull, 1403798725414479351ull,
+ 3109282948033952295ull}},
+ {{581038278661914840ull, 1371411958251058476ull,
+ 15589806462050262901ull, 3886603685042440368ull}},
+ {{9586520961018472583ull, 3162975483120605499ull,
+ 9743629038781414313ull, 2429127303151525230ull}},
+ {{7371465182845702825ull, 8565405372328144778ull,
+ 2956164261621992083ull, 3036409128939406538ull}},
+ {{18437703515411904339ull, 6095070696982793068ull,
+ 12918577363882265912ull, 3795511411174258172ull}},
+ {{2300192660277664404ull, 3809419185614245668ull,
+ 17297482889281192003ull, 2372194631983911357ull}},
+ {{2875240825347080505ull, 150087963590419181ull, 7786795556319326292ull,
+ 2965243289979889197ull}},
+ {{8205737050111238535ull, 187609954488023976ull,
+ 14345180463826545769ull, 3706554112474861496ull}},
+ {{5128585656319524085ull, 11646471267623484745ull,
+ 8965737789891591105ull, 2316596320296788435ull}},
+ {{11022418088826793010ull, 723031029247192219ull,
+ 6595486218937100978ull, 2895745400370985544ull}},
+ {{9166336592606103358ull, 10127160823413766082ull,
+ 8244357773671376222ull, 3619681750463731930ull}},
+ {{2234548703902853390ull, 3435578992412431795ull,
+ 1082075180234444470ull, 4524602188079664913ull}},
+ {{17537494004435141033ull, 15982294925539933583ull,
+ 12205512033714997553ull, 2827876367549790570ull}},
+ {{17310181487116538387ull, 6142810601642753267ull,
+ 6033518005288971134ull, 3534845459437238213ull}},
+ {{17026040840468285079ull, 16901885288908217392ull,
+ 12153583525038601821ull, 4418556824296547766ull}},
+ {{10641275525292678175ull, 12869521314781329822ull,
+ 2984303684721738234ull, 2761598015185342354ull}},
+ {{4078222369761071910ull, 6863529606621886470ull,
+ 12953751642756948601ull, 3451997518981677942ull}},
+ {{14321149999056115696ull, 13191098026704745991ull,
+ 6968817516591409943ull, 4314996898727097428ull}},
+ {{15868247777051154166ull, 15161965294331548100ull,
+ 13578882984724407022ull, 2696873061704435892ull}},
+ {{1388565647604391091ull, 9729084581059659318ull,
+ 16973603730905508778ull, 3371091327130544865ull}},
+ {{10959079096360264672ull, 2937983689469798339ull,
+ 7381946608349722261ull, 4213864158913181082ull}},
+ {{4543581426011471468ull, 4142082815132317914ull,
+ 9225402648645964317ull, 2633665099320738176ull}},
+ {{14902848819369115143ull, 9789289537342785296ull,
+ 11531753310807455396ull, 3292081374150922720ull}},
+ {{181816950501842313ull, 12236611921678481621ull,
+ 14414691638509319245ull, 4115101717688653400ull}},
+ {{2419478603277345398ull, 9953725460262744965ull,
+ 9009182274068324528ull, 2571938573555408375ull}},
+ {{7636034272524069651ull, 12442156825328431206ull,
+ 6649791824158017756ull, 3214923216944260469ull}},
+ {{321670803800311256ull, 15552696031660539008ull,
+ 12923925798624910099ull, 4018654021180325586ull}},
+ {{201044252375194535ull, 7414592010574142928ull,
+ 12689139642567956716ull, 2511658763237703491ull}},
+ {{251305315468993169ull, 9268240013217678660ull,
+ 11249738534782557991ull, 3139573454047129364ull}},
+ {{314131644336241461ull, 6973613998094710421ull,
+ 14062173168478197489ull, 3924466817558911705ull}},
+ {{2502175286923844865ull, 15887723794877663773ull,
+ 1871329202657791574ull, 2452791760974319816ull}},
+ {{7739405127082193985ull, 10636282706742303908ull,
+ 2339161503322239468ull, 3065989701217899770ull}},
+ {{9674256408852742481ull, 13295353383427879885ull,
+ 12147323916007575143ull, 3832487126522374712ull}},
+ {{8352253264746658003ull, 15227124892283506784ull,
+ 7592077447504734464ull, 2395304454076484195ull}},
+ {{10440316580933322504ull, 587162041644831864ull,
+ 4878410790953530177ull, 2994130567595605244ull}},
+ {{13050395726166653129ull, 5345638570483427734ull,
+ 6098013488691912721ull, 3742663209494506555ull}},
+ {{3544811310426770302ull, 14870239152620612094ull,
+ 1505415421218751498ull, 2339164505934066597ull}},
+ {{13654386174888238686ull, 9364426903920989309ull,
+ 6493455294950827277ull, 2923955632417583246ull}},
+ {{3232924663328134645ull, 16317219648328624541ull,
+ 17340191155543309904ull, 3654944540521979057ull}},
+ {{8652841847587556210ull, 1949780486701229060ull,
+ 7840180889146973669ull, 4568680675652473822ull}},
+ {{14631398191596998439ull, 3524455813401962114ull,
+ 288427037289470639ull, 2855425422282796139ull}},
+ {{9065875702641472241ull, 18240627822034616355ull,
+ 14195591851894002010ull, 3569281777853495173ull}},
+ {{6720658609874452397ull, 13577412740688494636ull,
+ 3909431759585338801ull, 4461602222316868967ull}},
+ {{13423783668026308556ull, 1568353935289227291ull,
+ 9360923877381918607ull, 2788501388948043104ull}},
+ {{12168043566605497791ull, 15795500474393697826ull,
+ 11701154846727398258ull, 3485626736185053880ull}},
+ {{5986682421402096431ull, 10521003556137346475ull,
+ 14626443558409247823ull, 4357033420231317350ull}},
+ {{1435833504162616318ull, 13493156250226923403ull,
+ 4529841205578391985ull, 2723145887644573344ull}},
+ {{15629849935485434109ull, 3031387257501490541ull,
+ 5662301506972989982ull, 3403932359555716680ull}},
+ {{5702254364074628924ull, 13012606108731638985ull,
+ 7077876883716237477ull, 4254915449444645850ull}},
+ {{15093124023615112838ull, 10438721827170968317ull,
+ 9035359070750036327ull, 2659322155902903656ull}},
+ {{5031346974236727335ull, 8436716265536322493ull,
+ 11294198838437545409ull, 3324152694878629570ull}},
+ {{10900869736223297073ull, 15157581350347791020ull,
+ 4894376511192155953ull, 4155190868598286963ull}},
+ {{16036415621994336479ull, 2555959316326287531ull,
+ 753142310281403519ull, 2596994292873929352ull}},
+ {{15433833509065532694ull, 17030007200690023126ull,
+ 941427887851754398ull, 3246242866092411690ull}},
+ {{10068919849477140060ull, 12064136964007753100ull,
+ 10400156896669468806ull, 4057803582615514612ull}},
+ {{15516446942777988345ull, 2928399584077457783ull,
+ 15723470097273193812ull, 2536127239134696632ull}},
+ {{14783872660045097528ull, 3660499480096822229ull,
+ 1207593547881940649ull, 3170159048918370791ull}},
+ {{4644782769774208197ull, 9187310368548415691ull,
+ 15344549990134589523ull, 3962698811147963488ull}},
+ {{597146221895186172ull, 3436225971129065855ull, 9590343743834118452ull,
+ 2476686756967477180ull}},
+ {{14581490832651146426ull, 4295282463911332318ull,
+ 11987929679792648065ull, 3095858446209346475ull}},
+ {{9003491503959157225ull, 9980789098316553302ull,
+ 10373226081313422177ull, 3869823057761683094ull}},
+ {{1015496171547085362ull, 17767208232516315574ull,
+ 1871580282393500956ull, 2418639411101051934ull}},
+ {{10492742251288632510ull, 3762266216935842851ull,
+ 11562847389846652004ull, 3023299263876314917ull}},
+ {{8504241795683402733ull, 4702832771169803564ull, 618501182026151293ull,
+ 3779124079845393647ull}},
+ {{14538523159156902517ull, 5245113491194821179ull,
+ 7304092266407426414ull, 2361952549903371029ull}},
+ {{13561467930518740242ull, 15779763900848302282ull,
+ 13741801351436670921ull, 2952440687379213786ull}},
+ {{7728462876293649494ull, 5889646820778214141ull,
+ 7953879652441062844ull, 3690550859224017233ull}},
+ {{7136132306897224886ull, 12904401299841159646ull,
+ 16500389828844134037ull, 2306594287015010770ull}},
+ {{18143537420476306915ull, 2295443569519285845ull,
+ 11402115249200391739ull, 2883242858768763463ull}},
+ {{8844363720313219932ull, 16704362517181271019ull,
+ 9640958043073101769ull, 3604053573460954329ull}},
+ {{6443768631964137011ull, 7045395091194425062ull,
+ 16662883572268765116ull, 4505066966826192911ull}},
+ {{17862413450259749344ull, 13626743968851291471ull,
+ 17331831260309060053ull, 2815666854266370569ull}},
+ {{17716330794397298776ull, 3198371905781950627ull,
+ 7829731020104161355ull, 3519583567832963212ull}},
+ {{17533727474569235565ull, 17833022937509601996ull,
+ 9787163775130201693ull, 4399479459791204015ull}},
+ {{1735207634750996421ull, 13451482345157195200ull,
+ 13034506387097457914ull, 2749674662369502509ull}},
+ {{2169009543438745526ull, 7590980894591718192ull,
+ 2458074928589658681ull, 3437093327961878137ull}},
+ {{2711261929298431907ull, 14100412136667035644ull,
+ 7684279679164461255ull, 4296366659952347671ull}},
+ {{10917910742666295750ull, 15730286613057979133ull,
+ 11720203827118870140ull, 2685229162470217294ull}},
+ {{18259074446760257591ull, 1216114192612922300ull,
+ 5426882747043811868ull, 3356536453087771618ull}},
+ {{4377098984740770373ull, 1520142740766152876ull,
+ 16006975470659540643ull, 4195670566359714522ull}},
+ {{11959058902317757291ull, 17090990277474703211ull,
+ 14616045687589600805ull, 2622294103974821576ull}},
+ {{10337137609469808710ull, 7528679791561215302ull,
+ 18270057109487001007ull, 3277867629968526970ull}},
+ {{3698049974982485079ull, 4799163721024131224ull,
+ 13614199350003975451ull, 4097334537460658713ull}},
+ {{2311281234364053175ull, 693634316426388063ull, 1591345566111402801ull,
+ 2560834085912911696ull}},
+ {{16724159598237230180ull, 5478728913960372982ull,
+ 1989181957639253501ull, 3201042607391139620ull}},
+ {{11681827460941761917ull, 11460097160877854132ull,
+ 2486477447049066876ull, 4001303259238924525ull}},
+ {{16524514199943377007ull, 16385932762403434640ull,
+ 3859891413619360749ull, 2500814537024327828ull}},
+ {{2208898676219669642ull, 6647357897722129589ull,
+ 4824864267024200937ull, 3126018171280409785ull}},
+ {{7372809363701974956ull, 12920883390580049890ull,
+ 10642766352207639075ull, 3907522714100512231ull}},
+ {{9219691870741122252ull, 5769709109898837229ull,
+ 13569257997770856278ull, 2442201696312820144ull}},
+ {{16136300856853790719ull, 16435508424228322344ull,
+ 16961572497213570347ull, 3052752120391025180ull}},
+ {{1723631997357686782ull, 15932699511858015027ull,
+ 2755221547807411318ull, 3815940150488781476ull}},
+ {{17218171062844411903ull, 5346251176483871487ull,
+ 10945385504234407882ull, 2384962594055488422ull}},
+ {{16911027810128126975ull, 15906186007459615167ull,
+ 4458359843438234044ull, 2981203242569360528ull}},
+ {{16527098744232770815ull, 1435988435614967343ull,
+ 5572949804297792556ull, 3726504053211700660ull}},
+ {{17246965742786563615ull, 10120864809114130397ull,
+ 12706465664540896155ull, 2329065033257312912ull}},
+ {{7723649123201040807ull, 8039394992965275093ull,
+ 15883082080676120194ull, 2911331291571641140ull}},
+ {{14266247422428688913ull, 825871704351818058ull,
+ 1407108527135598627ull, 3639164114464551426ull}},
+ {{8609437241181085333ull, 14867397685721936285ull,
+ 10982257695774274091ull, 4548955143080689282ull}},
+ {{7686741284951872285ull, 6986280544362516226ull,
+ 11475597078286309211ull, 2843096964425430801ull}},
+ {{385054569335064548ull, 4121164662025757379ull, 509438292575722802ull,
+ 3553871205531788502ull}},
+ {{14316376266950994397ull, 14374827864386972531ull,
+ 9860169902574429310ull, 4442339006914735627ull}},
+ {{6641892157630677546ull, 4372581396814469928ull,
+ 3856763179895324367ull, 2776461879321709767ull}},
+ {{8302365197038346933ull, 854040727590699506ull, 209267956441767555ull,
+ 3470577349152137209ull}},
+ {{1154584459443157858ull, 14902608964770538095ull,
+ 4873270963979597347ull, 4338221686440171511ull}},
+ {{7639144314793055517ull, 7008287593767892357ull,
+ 9963323380128330198ull, 2711388554025107194ull}},
+ {{14160616411918707301ull, 17983731529064641254ull,
+ 3230782188305636939ull, 3389235692531383993ull}},
+ {{8477398478043608318ull, 17867978392903413664ull,
+ 8650163753809434078ull, 4236544615664229991ull}},
+ {{5298374048777255199ull, 6555800477137245636ull,
+ 12323881373771978155ull, 2647840384790143744ull}},
+ {{6622967560971568998ull, 3583064577994169141ull,
+ 15404851717214972694ull, 3309800480987679680ull}},
+ {{12890395469641849152ull, 13702202759347487234ull,
+ 809320572809164251ull, 4137250601234599601ull}},
+ {{12668183186953543624ull, 6258033715378485569ull,
+ 12035040404074197417ull, 2585781625771624750ull}},
+ {{2000170928409765818ull, 12434228162650494866ull,
+ 5820428468237970963ull, 3232227032214530938ull}},
+ {{11723585697366983080ull, 10931099184885730678ull,
+ 16498907622152239512ull, 4040283790268163672ull}},
+ {{2715555042426976521ull, 6831936990553581674ull,
+ 10311817263845149695ull, 2525177368917602295ull}},
+ {{12617815839888496460ull, 3928235219764589188ull,
+ 8278085561379049215ull, 3156471711147002869ull}},
+ {{15772269799860620574ull, 298608006278348581ull,
+ 14959292970151199423ull, 3945589638933753586ull}},
+ {{12163511634126581811ull, 7104159031565049719ull,
+ 13961244124771887543ull, 2465993524333595991ull}},
+ {{10592703524230839360ull, 4268512771028924245ull,
+ 12839869137537471525ull, 3082491905416994989ull}},
+ {{17852565423715937104ull, 9947326982213543210ull,
+ 2214778366639675694ull, 3853114881771243737ull}},
+ {{15769539408249848594ull, 1605393345456076602ull,
+ 12913451525218267069ull, 2408196801107027335ull}},
+ {{10488552223457534934ull, 6618427700247483657ull,
+ 11530128388095445932ull, 3010246001383784169ull}},
+ {{17722376297749306572ull, 8273034625309354571ull,
+ 577602429837143703ull, 3762807501729730212ull}},
+ {{8770642176879622656ull, 12088175668459428463ull,
+ 9584373555502990622ull, 2351754688581081382ull}},
+ {{6351616702672140415ull, 5886847548719509771ull,
+ 2757094907523962470ull, 2939693360726351728ull}},
+ {{3327834859912787615ull, 16581931472754163022ull,
+ 3446368634404953087ull, 3674616700907939660ull}},
+ {{13383165611745760327ull, 16115728322515315873ull,
+ 4307960793006191359ull, 4593270876134924575ull}},
+ {{1446949479700018348ull, 16989859229213154277ull,
+ 9610004523269951455ull, 2870794297584327859ull}},
+ {{6420372868052410839ull, 16625638018089054942ull,
+ 7400819635660051415ull, 3588492871980409824ull}},
+ {{17248838121920289357ull, 16170361504183930773ull,
+ 9251024544575064269ull, 4485616089975512280ull}},
+ {{13086366835413874800ull, 12412318949328650685ull,
+ 5781890340359415168ull, 2803510056234695175ull}},
+ {{2522900488985179788ull, 15515398686660813357ull,
+ 2615676907021881056ull, 3504387570293368969ull}},
+ {{7765311629658862639ull, 947504284616465080ull, 7881282152204739225ull,
+ 4380484462866711211ull}},
+ {{4853319768536789150ull, 12121405223953760435ull,
+ 2619958335914268063ull, 2737802789291694507ull}},
+ {{1454963692243598533ull, 10540070511514812640ull,
+ 17110005975174998791ull, 3422253486614618133ull}},
+ {{1818704615304498166ull, 8563402120966127896ull,
+ 7552449413686584777ull, 4277816858268272667ull}},
+ {{1136690384565311354ull, 16881341371672299695ull,
+ 2414437874340421533ull, 2673635536417670417ull}},
+ {{15255921035988802904ull, 7266618659308210906ull,
+ 7629733361352914821ull, 3342044420522088021ull}},
+ {{9846529258131227822ull, 13694959342562651537ull,
+ 14148852720118531430ull, 4177555525652610026ull}},
+ {{17683295832400487149ull, 3947663570674269306ull,
+ 13454718968501470048ull, 2610972203532881266ull}},
+ {{12880747753645833128ull, 4934579463342836633ull,
+ 7595026673772061752ull, 3263715254416101583ull}},
+ {{2265876636775127698ull, 6168224329178545792ull,
+ 4882097323787689286ull, 4079644068020126979ull}},
+ {{1416172897984454812ull, 17690198261018754832ull,
+ 745467818153611851ull, 2549777542512579362ull}},
+ {{1770216122480568514ull, 17501061807846055636ull,
+ 10155206809546790622ull, 3187221928140724202ull}},
+ {{2212770153100710643ull, 12652955222952793737ull,
+ 3470636475078712470ull, 3984027410175905253ull}},
+ {{12912196391756413912ull, 3296410995918108181ull,
+ 4474990806137889246ull, 2490017131359940783ull}},
+ {{2305187434413353678ull, 13343885781752411035ull,
+ 982052489244973653ull, 3112521414199925979ull}},
+ {{16716542348298855809ull, 2844799171908350081ull,
+ 15062623666838380779ull, 3890651767749907473ull}},
+ {{3530309940045703025ull, 17918900546938576465ull,
+ 2496610764132906130ull, 2431657354843692171ull}},
+ {{9024573443484516685ull, 13175253646818444773ull,
+ 16955821510448296375ull, 3039571693554615213ull}},
+ {{15892402822783033760ull, 11857381040095668062ull,
+ 7359718832778206757ull, 3799464616943269017ull}},
+ {{5321065745812008196ull, 9716706159273486491ull,
+ 16129039316554848983ull, 2374665385589543135ull}},
+ {{2039646163837622341ull, 7534196680664470210ull,
+ 15549613127266173325ull, 2968331731986928919ull}},
+ {{11772929741651803734ull, 14029431869257975666ull,
+ 14825330390655328752ull, 3710414664983661149ull}},
+ {{11969767106959765238ull, 8768394918286234791ull,
+ 11571674503373274422ull, 2319009165614788218ull}},
+ {{10350522865272318644ull, 1737121611003017681ull,
+ 5241221092361817220ull, 2898761457018485273ull}},
+ {{17549839600017786208ull, 2171402013753772101ull,
+ 11163212383879659429ull, 3623451821273106591ull}},
+ {{8102241444740069048ull, 7325938535619603031ull,
+ 9342329461422186382ull, 4529314776591383239ull}},
+ {{11981429930603625011ull, 18413769640044415606ull,
+ 12756484941029948344ull, 2830821735369614524ull}},
+ {{5753415376399755456ull, 4570467976345967892ull,
+ 15945606176287435431ull, 3538527169212018155ull}},
+ {{7191769220499694320ull, 1101398952005071961ull,
+ 15320321701931906385ull, 4423158961515022694ull}},
+ {{16024070808880778710ull, 12217589391071639735ull,
+ 4963515045280053586ull, 2764474350946889184ull}},
+ {{15418402492673585484ull, 6048614701984773861ull,
+ 6204393806600066983ull, 3455592938683611480ull}},
+ {{5437945060559818142ull, 2949082359053579423ull,
+ 7755492258250083729ull, 4319491173354514350ull}},
+ {{10316244690490968195ull, 13372391520476956899ull,
+ 235496642978914426ull, 2699681983346571469ull}},
+ {{8283619844686322340ull, 7492117363741420316ull,
+ 4906056822151030937ull, 3374602479183214336ull}},
+ {{10354524805857902925ull, 13976832723104163299ull,
+ 6132571027688788671ull, 4218253098979017920ull}},
+ {{4165734994447495376ull, 15653049479581183918ull,
+ 3832856892305492919ull, 2636408186861886200ull}},
+ {{14430540779914145028ull, 14954625831049091993ull,
+ 4791071115381866149ull, 3295510233577357750ull}},
+ {{4203117919610517573ull, 4858224233529201280ull,
+ 15212210931082108495ull, 4119387791971697187ull}},
+ {{2626948699756573483ull, 9953919173596832656ull,
+ 7201788822712623857ull, 2574617369982310742ull}},
+ {{3283685874695716854ull, 17054084985423428724ull,
+ 18225608065245555629ull, 3218271712477888427ull}},
+ {{4104607343369646067ull, 7482548176497122193ull,
+ 18170324063129556633ull, 4022839640597360534ull}},
+ {{14094594635674498552ull, 16205807656379171130ull,
+ 6744766521028584991ull, 2514274775373350334ull}},
+ {{8394871257738347382ull, 15645573552046576009ull,
+ 17654330188140507047ull, 3142843469216687917ull}},
+ {{15105275090600322132ull, 14945280921630832107ull,
+ 8232854679893470097ull, 3928554336520859897ull}},
+ {{7134953922411507380ull, 2423271548378188211ull,
+ 16674749221001888571ull, 2455346460325537435ull}},
+ {{4307006384586996321ull, 16864147490754898976ull,
+ 16231750507824972809ull, 3069183075406921794ull}},
+ {{5383757980733745402ull, 7245126308161460008ull,
+ 11066316097926440204ull, 3836478844258652243ull}},
+ {{3364848737958590876ull, 13751575979455688313ull,
+ 4610604551990331175ull, 2397799277661657652ull}},
+ {{8817746940875626499ull, 12577783955892222487ull,
+ 5763255689987913969ull, 2997249097077072065ull}},
+ {{6410497657667145220ull, 1887171889583114397ull,
+ 11815755630912280366ull, 3746561371346340081ull}},
+ {{6312404045255659715ull, 15014540486271610210ull,
+ 467318241679093372ull, 2341600857091462551ull}},
+ {{17113877093424350451ull, 321431534129961146ull,
+ 14419205857381030428ull, 2927001071364328188ull}},
+ {{12168974329925662256ull, 401789417662451433ull,
+ 18024007321726288035ull, 3658751339205410235ull}},
+ {{1376159857124914108ull, 14337294827360228004ull,
+ 17918323133730472139ull, 4573439174006762794ull}},
+ {{10083471947557847125ull, 6654966257886448550ull,
+ 15810637977008932991ull, 2858399483754226746ull}},
+ {{3380967897592533099ull, 3707021803930672784ull,
+ 10539925434406390431ull, 3572999354692783433ull}},
+ {{4226209871990666373ull, 22091236485953076ull, 17786592811435375943ull,
+ 4466249193365979291ull}},
+ {{11864753206848942291ull, 6931336050444802528ull,
+ 8810777497933416012ull, 2791405745853737057ull}},
+ {{14830941508561177864ull, 8664170063056003160ull,
+ 15625157890844157919ull, 3489257182317171321ull}},
+ {{91932811991920714ull, 6218526560392616047ull, 5696389308273033687ull,
+ 4361571477896464152ull}},
+ {{6974987035136032302ull, 10804108127886466885ull,
+ 3560243317670646054ull, 2725982173685290095ull}},
+ {{13330419812347428282ull, 4281763123003307798ull,
+ 18285362202370471280ull, 3407477717106612618ull}},
+ {{7439652728579509544ull, 5352203903754134748ull,
+ 13633330716108313292ull, 4259347146383265773ull}},
+ {{13873154992216969273ull, 12568499476701110025ull,
+ 10826674706781389759ull, 2662091966489541108ull}},
+ {{3506385684989047880ull, 11098938327448999628ull,
+ 13533343383476737199ull, 3327614958111926385ull}},
+ {{4382982106236309849ull, 9261986890883861631ull,
+ 3081621174063757787ull, 4159518697639907982ull}},
+ {{9656892844038775512ull, 3482898797588719567ull,
+ 15761071289072012329ull, 2599699186024942488ull}},
+ {{7459430036621081486ull, 8965309515413287363ull,
+ 1254595037630463795ull, 3249623982531178111ull}},
+ {{4712601527348963953ull, 6594950875839221300ull,
+ 15403301852320243456ull, 4062029978163972638ull}},
+ {{12168747991447878279ull, 4121844297399513312ull,
+ 5015377639272764256ull, 2538768736352482899ull}},
+ {{15210934989309847849ull, 5152305371749391640ull,
+ 1657536030663567416ull, 3173460920440603624ull}},
+ {{566924662927758195ull, 6440381714686739551ull, 2071920038329459270ull,
+ 3966826150550754530ull}},
+ {{7271856941970930728ull, 17860296626961375931ull,
+ 5906636042383299947ull, 2479266344094221581ull}},
+ {{4478135159036275506ull, 17713684765274332010ull,
+ 11994981071406512838ull, 3099082930117776976ull}},
+ {{14821040985650120190ull, 12918733919738139204ull,
+ 14993726339258141048ull, 3873853662647221220ull}},
+ {{39778579176549311ull, 8074208699836337003ull, 147706925181562347ull,
+ 2421158539154513263ull}},
+ {{13884781279252850351ull, 5481074856368033349ull,
+ 14019691711759116646ull, 3026448173943141578ull}},
+ {{3520918543783899226ull, 16074715607314817495ull,
+ 8301242602844119999ull, 3783060217428926973ull}},
+ {{9118103117506018872ull, 16964226282212842790ull,
+ 7494119635991268951ull, 2364412635893079358ull}},
+ {{2174256860027747782ull, 16593596834338665584ull,
+ 144277508134310381ull, 2955515794866349198ull}},
+ {{2717821075034684728ull, 6906937987641168268ull,
+ 9403718922022663785ull, 3694394743582936497ull}},
+ {{10922010208751453763ull, 15846051288344199927ull,
+ 17406539372332634625ull, 2308996714739335310ull}},
+ {{9040826742511929300ull, 5972506055148086197ull,
+ 12534802178561017474ull, 2886245893424169138ull}},
+ {{15912719446567299529ull, 16689004605789883554ull,
+ 6445130686346496034ull, 3607807366780211423ull}},
+ {{10667527271354348603ull, 11637883720382578635ull,
+ 3444727339505732139ull, 4509759208475264279ull}},
+ {{4361361535382773925ull, 4967834316025417695ull,
+ 9070483614832164443ull, 2818599505297040174ull}},
+ {{840015900801079502ull, 1598106876604384215ull, 2114732481685429746ull,
+ 3523249381621300218ull}},
+ {{14885077931283513089ull, 11221005632610256076ull,
+ 11866787638961562990ull, 4404061727026625272ull}},
+ {{79801670197419873ull, 2401442501954022144ull, 7416742274350976869ull,
+ 2752538579391640795ull}},
+ {{99752087746774841ull, 7613489145869915584ull, 4659241824511333182ull,
+ 3440673224239550994ull}},
+ {{124690109683468551ull, 293489395482618672ull, 15047424317493942286ull,
+ 4300841530299438742ull}},
+ {{77931318552167845ull, 14018488927458800382ull, 4792954180006326024ull,
+ 2688025956437149214ull}},
+ {{9320786185044985614ull, 17523111159323500477ull,
+ 15214564761862683338ull, 3360032445546436517ull}},
+ {{16262668749733619921ull, 12680516912299599788ull,
+ 5183147897046190461ull, 4200040556933045647ull}},
+ {{940795931728736643ull, 10231166079400943820ull,
+ 10156996463294950894ull, 2625025348083153529ull}},
+ {{1175994914660920804ull, 3565585562396403967ull,
+ 17307931597546076522ull, 3281281685103941911ull}},
+ {{15305051698608314716ull, 13680353989850280766ull,
+ 17023228478505207748ull, 4101602106379927389ull}},
+ {{4953971293202808794ull, 17773593280511201287ull,
+ 12945360808279448794ull, 2563501316487454618ull}},
+ {{1580778098076123088ull, 12993619563784225801ull,
+ 6958328973494535185ull, 3204376645609318273ull}},
+ {{6587658641022541764ull, 2406966399448118539ull,
+ 13309597235295556886ull, 4005470807011647841ull}},
+ {{1811443641425394651ull, 15339412054937237799ull,
+ 1400969244418641197ull, 2503419254382279901ull}},
+ {{16099362607063907025ull, 5339207013389383536ull,
+ 6362897573950689401ull, 3129274067977849876ull}},
+ {{1677459185120332166ull, 11285694785164117325ull,
+ 7953621967438361751ull, 3911592584972312345ull}},
+ {{3354254999913901556ull, 13971088268368655184ull,
+ 16500228775717445854ull, 2444745365607695215ull}},
+ {{4192818749892376944ull, 8240488298606043172ull,
+ 16013599951219419414ull, 3055931707009619019ull}},
+ {{5241023437365471180ull, 1077238336402778157ull,
+ 15405313920596886364ull, 3819914633762023774ull}},
+ {{5581482657567113440ull, 9896645997106512156ull,
+ 5016635181945666073ull, 2387446646101264859ull}},
+ {{6976853321958891800ull, 16982493514810528099ull,
+ 1659107959004694687ull, 2984308307626581074ull}},
+ {{4109380634021226846ull, 16616430875085772220ull,
+ 11297256985610644167ull, 3730385384533226342ull}},
+ {{11791734933118042587ull, 17302798324569689493ull,
+ 2449099597579264700ull, 2331490865333266464ull}},
+ {{904610611115389521ull, 3181753832002560251ull, 3061374496974080876ull,
+ 2914363581666583080ull}},
+ {{14965821319176400613ull, 3977192290003200313ull,
+ 3826718121217601095ull, 3642954477083228850ull}},
+ {{4872218593688337055ull, 359804344076612488ull,
+ 14006769688376777177ull, 4553693096354036062ull}},
+ {{3045136621055210659ull, 11754092761116352565ull,
+ 4142545036808097831ull, 2846058185221272539ull}},
+ {{8418106794746401228ull, 10080929932968052802ull,
+ 566495277582734385ull, 3557572731526590674ull}},
+ {{1299261456578225727ull, 17212848434637453907ull,
+ 9931491133833193789ull, 4446965914408238342ull}},
+ {{16952939474857248744ull, 13063873280862102643ull,
+ 1595495940218358214ull, 2779353696505148964ull}},
+ {{16579488325144173025ull, 7106469564222852496ull,
+ 1994369925272947768ull, 3474192120631436205ull}},
+ {{2277616332720664666ull, 8883086955278565621ull,
+ 7104648425018572614ull, 4342740150789295256ull}},
+ {{3729353217164109368ull, 940243328621715609ull, 4440405265636607884ull,
+ 2714212594243309535ull}},
+ {{9273377539882524614ull, 1175304160777144511ull, 938820563618371951ull,
+ 3392765742804136919ull}},
+ {{6980035906425767863ull, 15304188256253594351ull,
+ 15008583759805128650ull, 4240957178505171148ull}},
+ {{11280051469157186771ull, 14176803678585884373ull,
+ 156992813023429598ull, 2650598236565731968ull}},
+ {{265006281164319751ull, 8497632561377579659ull, 196241016279286998ull,
+ 3313247795707164960ull}},
+ {{14166315906737563401ull, 1398668664867198765ull,
+ 245301270349108748ull, 4141559744633956200ull}},
+ {{11159790450924671078ull, 10097539952396775036ull,
+ 153313293968192967ull, 2588474840396222625ull}},
+ {{13949738063655838847ull, 8010238922068580891ull,
+ 4803327635887629113ull, 3235593550495278281ull}},
+ {{12825486561142410655ull, 14624484671013114018ull,
+ 10615845563286924295ull, 4044491938119097851ull}},
+ {{12627615119141394564ull, 16057831947024278117ull,
+ 4329060467840633732ull, 2527807461324436157ull}},
+ {{1949460843644579492ull, 1625545860070796031ull,
+ 10023011603228180070ull, 3159759326655545196ull}},
+ {{16271884109837888077ull, 11255304361943270846ull,
+ 12528764504035225087ull, 3949699158319431495ull}},
+ {{5558241550221292144ull, 13952094253855626135ull,
+ 14748006842663097535ull, 2468561973949644684ull}},
+ {{2336115919349227276ull, 12828431798892144765ull,
+ 18435008553328871919ull, 3085702467437055855ull}},
+ {{7531830917613921999ull, 11423853730187793052ull,
+ 18432074673233701995ull, 3857128084296319819ull}},
+ {{13930766360363477058ull, 4834065572153676705ull,
+ 9214203661557369795ull, 2410705052685199887ull}},
+ {{3578399895172182610ull, 1430895946764707978ull,
+ 6906068558519324340ull, 3013381315856499859ull}},
+ {{13696371905820004071ull, 1788619933455884972ull,
+ 4020899679721767521ull, 3766726644820624824ull}},
+ {{17783604477992278352ull, 12647102504478397867ull,
+ 2513062299826104700ull, 2354204153012890515ull}},
+ {{17617819579062960036ull, 15808878130597997334ull,
+ 16976385930064794587ull, 2942755191266113143ull}},
+ {{12798902436973924237ull, 15149411644820108764ull,
+ 16608796394153605330ull, 3678443989082641429ull}},
+ {{15998628046217405296ull, 9713392519170360147ull,
+ 6925937437409842951ull, 4598054986353301787ull}},
+ {{7693299519672184358ull, 12988399352122556948ull,
+ 2022867889167457892ull, 2873784366470813617ull}},
+ {{9616624399590230448ull, 16235499190153196185ull,
+ 7140270879886710269ull, 3592230458088517021ull}},
+ {{16632466517915175964ull, 6459315932409331519ull,
+ 13537024618285775741ull, 4490288072610646276ull}},
+ {{17312820601338066834ull, 6342915466969526151ull,
+ 17684012423283385646ull, 2806430045381653922ull}},
+ {{17029339733245195638ull, 17152016370566683497ull,
+ 12881643492249456249ull, 3508037556727067403ull}},
+ {{7451616611274330835ull, 7604962407926190660ull,
+ 11490368346884432408ull, 4385046945908834254ull}},
+ {{13880632418901232580ull, 4753101504953869162ull,
+ 2569794198375382351ull, 2740654341193021409ull}},
+ {{8127418486771764917ull, 1329690862764948549ull,
+ 7823928766396615843ull, 3425817926491276761ull}},
+ {{14770959126892094050ull, 15497171633738349398ull,
+ 14391596976423157707ull, 4282272408114095951ull}},
+ {{4620163435880170878ull, 7379889261872774422ull,
+ 15912277137905555423ull, 2676420255071309969ull}},
+ {{14998576331704989405ull, 4613175558913580123ull,
+ 6055288367099780567ull, 3345525318839137462ull}},
+ {{14136534396203848852ull, 1154783430214587250ull,
+ 16792482495729501517ull, 4181906648548921827ull}},
+ {{13447020016054793437ull, 3027582653097810983ull,
+ 8189458550617244496ull, 2613691655343076142ull}},
+ {{12197089001641103892ull, 3784478316372263729ull,
+ 1013451151416779812ull, 3267114569178845178ull}},
+ {{1411303196769216152ull, 4730597895465329662ull,
+ 10490185976125750573ull, 4083893211473556472ull}},
+ {{14717122553262923807ull, 5262466693879524990ull,
+ 6556366235078594108ull, 2552433257170972795ull}},
+ {{9173031154723878951ull, 6578083367349406238ull,
+ 3583771775420854731ull, 3190541571463715994ull}},
+ {{2242916906550072881ull, 3610918190759369894ull,
+ 13703086756130844222ull, 3988176964329644992ull}},
+ {{15236881121875959263ull, 16091881924506769895ull,
+ 8564429222581777638ull, 2492610602706028120ull}},
+ {{14434415383917561174ull, 10891480368778686561ull,
+ 10705536528227222048ull, 3115763253382535150ull}},
+ {{4207961174614787756ull, 13614350460973358202ull,
+ 4158548623429251752ull, 3894704066728168938ull}},
+ {{7241661752561630252ull, 8508969038108348876ull,
+ 7210778908070670249ull, 2434190041705105586ull}},
+ {{9052077190702037814ull, 15247897316062823999ull,
+ 18236845671943113619ull, 3042737552131381982ull}},
+ {{6703410469950159364ull, 14448185626651142095ull,
+ 13572685053074116216ull, 3803421940164227478ull}},
+ {{11107160571359931459ull, 9030116016656963809ull,
+ 3871242139743934731ull, 2377138712602642174ull}},
+ {{48892658917750611ull, 6675959002393816858ull, 14062424711534694222ull,
+ 2971423390753302717ull}},
+ {{9284487860501964072ull, 17568320789847046880ull,
+ 3742972834136204065ull, 3714279238441628397ull}},
+ {{5802804912813727545ull, 4062671466013322444ull,
+ 4645201030548821493ull, 2321424524026017748ull}},
+ {{7253506141017159431ull, 9690025350944040959ull,
+ 5806501288186026866ull, 2901780655032522185ull}},
+ {{4455196657844061385ull, 2889159651825275391ull,
+ 11869812628659921487ull, 3627225818790652731ull}},
+ {{957309803877688827ull, 17446507620063757951ull,
+ 10225579767397513954ull, 4534032273488315914ull}},
+ {{7515847655064637373ull, 15515753280967236623ull,
+ 11002673373050834125ull, 2833770170930197446ull}},
+ {{4783123550403408812ull, 5559633545926882067ull,
+ 4529969679458766849ull, 3542212713662746808ull}},
+ {{1367218419576873111ull, 11561227950835990488ull,
+ 5662462099323458561ull, 4427765892078433510ull}},
+ {{854511512235545695ull, 308238441631412199ull, 17374096867359325313ull,
+ 2767353682549020943ull}},
+ {{14903197445576595830ull, 4996984070466653152ull,
+ 17105935065771768737ull, 3459192103186276179ull}},
+ {{182252733261193171ull, 10857916106510704345ull,
+ 16770732813787323017ull, 4323990128982845224ull}},
+ {{11643123004356715492ull, 18315412612637659975ull,
+ 10481708008617076885ull, 2702493830614278265ull}},
+ {{9942217737018506461ull, 9059207710514911257ull,
+ 17713821029198734011ull, 3378117288267847831ull}},
+ {{17039458189700520980ull, 6712323619716251167ull,
+ 17530590268071029610ull, 4222646610334809789ull}},
+ {{17567190396203907469ull, 8806888280750044883ull,
+ 13262461926758087458ull, 2639154131459256118ull}},
+ {{17347301976827496432ull, 1785238314082780296ull,
+ 7354705371592833515ull, 3298942664324070148ull}},
+ {{3237383397324818924ull, 16066605947885639083ull,
+ 9193381714491041893ull, 4123678330405087685ull}},
+ {{18164265687823869492ull, 12347471726642218378ull,
+ 8051706580770595135ull, 2577298956503179803ull}},
+ {{13481960072925061056ull, 10822653639875385069ull,
+ 5452947207535856015ull, 3221623695628974754ull}},
+ {{3017392035874162608ull, 8916631031416843433ull,
+ 16039556046274595827ull, 4027029619536218442ull}},
+ {{13415085068489821390ull, 3267051385421833193ull,
+ 14636408547349010296ull, 2516893512210136526ull}},
+ {{2933798280330113026ull, 4083814231777291492ull,
+ 9072138647331487062ull, 3146116890262670658ull}},
+ {{3667247850412641282ull, 14328139826576390173ull,
+ 2116801272309583019ull, 3932646112828338323ull}},
+ {{4597872915721594754ull, 6649244382396549906ull,
+ 17463901859689347051ull, 2457903820517711451ull}},
+ {{14970713181506769250ull, 3699869459568299478ull,
+ 17218191306184295910ull, 3072379775647139314ull}},
+ {{9490019440028685754ull, 13848208861315150156ull,
+ 12299367095875594079ull, 3840474719558924143ull}},
+ {{15154634186872704405ull, 15572659565963050703ull,
+ 14604633462563328155ull, 2400296699724327589ull}},
+ {{14331606715163492602ull, 14854138439026425475ull,
+ 4420733772921996482ull, 3000370874655409487ull}},
+ {{13302822375526977848ull, 9344301011928256036ull,
+ 914231197725107699ull, 3750463593319261859ull}},
+ {{17537636021559136963ull, 3534345123241466070ull,
+ 16712295563074049976ull, 2344039745824538661ull}},
+ {{12698672990094145396ull, 4417931404051832588ull,
+ 7055311398560398758ull, 2930049682280673327ull}},
+ {{15873341237617681745ull, 14745786291919566543ull,
+ 4207453229773110543ull, 3662562102850841659ull}},
+ {{15229990528594714277ull, 13820546846472070275ull,
+ 647630518789000275ull, 4578202628563552074ull}},
+ {{7212901071158002471ull, 6331998769831349970ull,
+ 5016455092670513076ull, 2861376642852220046ull}},
+ {{18239498375802278897ull, 7914998462289187462ull,
+ 15493940902692917153ull, 3576720803565275057ull}},
+ {{13576000932898072813ull, 14505434096288872232ull,
+ 5532368073083982729ull, 4470901004456593822ull}},
+ {{8485000583061295508ull, 2148367282539463289ull,
+ 17292788100959652918ull, 2794313127785371138ull}},
+ {{15217936747254007289ull, 11908831140029104919ull,
+ 12392613089344790339ull, 3492891409731713923ull}},
+ {{14410734915640121207ull, 10274352906608993245ull,
+ 10879080343253600020ull, 4366114262164642404ull}},
+ {{11312552331488769707ull, 15644842603485396586ull,
+ 16022797251388275820ull, 2728821413852901502ull}},
+ {{4917318377506186325ull, 1109309180647194117ull,
+ 10805124527380568968ull, 3411026767316126878ull}},
+ {{10758333990310120811ull, 1386636475808992646ull,
+ 4283033622370935402ull, 4263783459145158598ull}},
+ {{2112272725516437603ull, 5478333815808008308ull,
+ 16511954069263998338ull, 2664864661965724123ull}},
+ {{2640340906895547003ull, 16071289306614786193ull,
+ 16028256568152610018ull, 3331080827457155154ull}},
+ {{7912112152046821658ull, 10865739596413706933ull,
+ 10811948673335986715ull, 4163851034321443943ull}},
+ {{7250913104242957488ull, 4485244238544872881ull,
+ 13674996948476073553ull, 2602406896450902464ull}},
+ {{13675327398731084764ull, 10218241316608479005ull,
+ 17093746185595091941ull, 3253008620563628080ull}},
+ {{3259101193131692243ull, 17384487664187986661ull,
+ 2920438658284313310ull, 4066260775704535101ull}},
+ {{4342781254921001604ull, 6253618771690103759ull,
+ 4131117170641389771ull, 2541412984815334438ull}},
+ {{816790550223864101ull, 3205337446185241795ull,
+ 14387268500156513022ull, 3176766231019168047ull}},
+ {{14856046243061993839ull, 13230043844586328051ull,
+ 13372399606768253373ull, 3970957788773960059ull}},
+ {{6979185892700052197ull, 10574620412080148984ull,
+ 6051906745016464406ull, 2481848617983725037ull}},
+ {{8723982365875065246ull, 3994903478245410422ull,
+ 12176569449697968412ull, 3102310772479656296ull}},
+ {{1681605920489055750ull, 4993629347806763028ull,
+ 15220711812122460515ull, 3877888465599570370ull}},
+ {{10274375737160435652ull, 815175333165532940ull,
+ 14124630901003925726ull, 2423680290999731481ull}},
+ {{12842969671450544565ull, 10242341203311691983ull,
+ 3820730570972743445ull, 3029600363749664352ull}},
+ {{11442026070885792802ull, 17414612522567002883ull,
+ 4775913213715929306ull, 3787000454687080440ull}},
+ {{4845423285089926549ull, 15495818845031764706ull,
+ 2984945758572455816ull, 2366875284179425275ull}},
+ {{15280151143217183995ull, 923029482580154266ull,
+ 17566240253497733483ull, 2958594105224281593ull}},
+ {{9876816892166704185ull, 14988844908507356545ull,
+ 8122742261590003141ull, 3698242631530351992ull}},
+ {{17702225603672659876ull, 11673871077030791792ull,
+ 5076713913493751963ull, 2311401644706469995ull}},
+ {{3681037930881273229ull, 9980652827861101837ull,
+ 1734206373439802050ull, 2889252055883087494ull}},
+ {{9212983432028979440ull, 3252443997971601488ull,
+ 11391130003654528371ull, 3611565069853859367ull}},
+ {{11516229290036224299ull, 17900613052746665572ull,
+ 9627226486140772559ull, 4514456337317324209ull}},
+ {{16421015343127415995ull, 18105412185607747838ull,
+ 17546231599906452609ull, 2821535210823327630ull}},
+ {{11302897142054494186ull, 8796707176727521086ull,
+ 12709417463028289954ull, 3526919013529159538ull}},
+ {{4905249390713341924ull, 1772511934054625550ull,
+ 6663399791930586635ull, 4408648766911449423ull}},
+ {{16900838924478002415ull, 17248721023279998632ull,
+ 11082153897597698502ull, 2755405479319655889ull}},
+ {{2679304581887951403ull, 12337529242245222483ull, 17634316714959416ull,
+ 3444256849149569862ull}},
+ {{17184188782642102965ull, 15421911552806528103ull,
+ 9245414932748475078ull, 4305321061436962327ull}},
+ {{17657647016792396209ull, 5027008702076692160ull,
+ 12695913360608878780ull, 2690825663398101454ull}},
+ {{3625314697280943646ull, 6283760877595865201ull,
+ 6646519663906322667ull, 3363532079247626818ull}},
+ {{9143329390028567461ull, 3243015078567443597ull,
+ 17531521616737679142ull, 4204415099059533522ull}},
+ {{8020423877981548615ull, 15861942479386815960ull,
+ 15568887028888437367ull, 2627759436912208451ull}},
+ {{10025529847476935769ull, 15215742080806132046ull,
+ 14849422767683158805ull, 3284699296140260564ull}},
+ {{3308540272491393903ull, 5184619545725501346ull, 115034385894396891ull,
+ 4105874120175325706ull}},
+ {{6679523688734509094ull, 934544206864744389ull, 4683582509611385961ull,
+ 2566171325109578566ull}},
+ {{12961090629345524271ull, 5779866277008318390ull,
+ 15077850173869008259ull, 3207714156386973207ull}},
+ {{6977991249827129530ull, 2613146827833010084ull,
+ 14235626698908872420ull, 4009642695483716509ull}},
+ {{13584616567996731765ull, 10856588804250407110ull,
+ 11203109696031739214ull, 2506026684677322818ull}},
+ {{7757398673141138898ull, 4347363968458233080ull,
+ 4780515083184898210ull, 3132533355846653523ull}},
+ {{9696748341426423622ull, 14657576997427567158ull,
+ 1363957835553734858ull, 3915666694808316904ull}},
+ {{1448781694964126860ull, 13772671641819617378ull,
+ 852473647221084286ull, 2447291684255198065ull}},
+ {{11034349155559934383ull, 7992467515419745914ull,
+ 5677278077453743262ull, 3059114605318997581ull}},
+ {{4569564407595142170ull, 767212357419906585ull,
+ 11708283615244566982ull, 3823893256648746976ull}},
+ {{14385192800815433617ull, 14314565778669605327ull,
+ 7317677259527854363ull, 2389933285405466860ull}},
+ {{13369804982591904117ull, 13281521204909618755ull,
+ 9147096574409817954ull, 2987416606756833575ull}},
+ {{12100570209812492242ull, 7378529469282247636ull,
+ 6822184699584884539ull, 3734270758446041969ull}},
+ {{16786228417987583459ull, 2305737909087710820ull,
+ 15793080483309022597ull, 2333919224028776230ull}},
+ {{2536041448774927708ull, 7493858404787026430ull,
+ 10517978567281502438ull, 2917399030035970288ull}},
+ {{12393423847823435443ull, 143950969129007229ull,
+ 13147473209101878048ull, 3646748787544962860ull}},
+ {{1656721754497130592ull, 179938711411259037ull,
+ 16434341511377347560ull, 4558435984431203575ull}},
+ {{3341294105774400572ull, 112461694632036898ull,
+ 17188992472251924081ull, 2849022490269502234ull}},
+ {{13399989669072776523ull, 4752263136717434026ull,
+ 12262868553460129293ull, 3561278112836877793ull}},
+ {{7526615049486194845ull, 10552014939324180437ull,
+ 1493527636542997904ull, 4451597641046097242ull}},
+ {{7009977415142565731ull, 6595009337077612773ull,
+ 5545140791266761594ull, 2782248525653810776ull}},
+ {{13374157787355595067ull, 17467133708201791774ull,
+ 6931425989083451992ull, 3477810657067263470ull}},
+ {{7494325197339718026ull, 3387173061542688102ull,
+ 17887654523209090799ull, 4347263321334079337ull}},
+ {{72267229909935862ull, 9034512191105261920ull, 4262255049364599893ull,
+ 2717039575833799586ull}},
+ {{90334037387419828ull, 15904826257308965304ull,
+ 14551190848560525674ull, 3396299469792249482ull}},
+ {{112917546734274784ull, 10657660784781430822ull,
+ 8965616523845881285ull, 4245374337240311853ull}},
+ {{13905631521991085452ull, 8966880999702088215ull,
+ 7909353336617369755ull, 2653358960775194908ull}},
+ {{12770353384061468911ull, 6596915231200222365ull,
+ 9886691670771712194ull, 3316698700968993635ull}},
+ {{2127883674794672427ull, 17469516075855053765ull,
+ 7746678570037252338ull, 4145873376211242044ull}},
+ {{3635770305960364219ull, 15530133565836796507ull,
+ 14065046143128058519ull, 2591170860132026277ull}},
+ {{18379770937732618986ull, 14800980938868607729ull,
+ 3746249623627909437ull, 3238963575165032847ull}},
+ {{9139655616883610020ull, 4666168118303595950ull, 71126011107498893ull,
+ 4048704468956291059ull}},
+ {{1100598742124868359ull, 5222198083153441421ull,
+ 16185354821438044472ull, 2530440293097681911ull}},
+ {{5987434446083473352ull, 6527747603941801776ull,
+ 15620007508370167686ull, 3163050366372102389ull}},
+ {{7484293057604341690ull, 17383056541782028028ull,
+ 5689951330180545895ull, 3953812957965127987ull}},
+ {{13901055197857489365ull, 17781939366254849373ull,
+ 1250376572149147232ull, 2471133098728204992ull}},
+ {{3541260942039697994ull, 3780680134109010101ull,
+ 1562970715186434041ull, 3088916373410256240ull}},
+ {{9038262195977010396ull, 9337536186063650530ull,
+ 1953713393983042551ull, 3861145466762820300ull}},
+ {{10260599890913019402ull, 12753489143930863437ull,
+ 10444442908094177402ull, 2413215916726762687ull}},
+ {{17437435882068662156ull, 6718489393058803488ull,
+ 8443867616690333849ull, 3016519895908453359ull}},
+ {{3350050778876276079ull, 13009797759750892265ull,
+ 5943148502435529407ull, 3770649869885566699ull}},
+ {{13622996782866142309ull, 15048652627485389521ull,
+ 1408624804808511927ull, 2356656168678479187ull}},
+ {{3193687923300514175ull, 14199129765929348998ull,
+ 15595839061292803621ull, 2945820210848098983ull}},
+ {{13215481940980418526ull, 3913854152129522535ull,
+ 14883112808188616623ull, 3682275263560123729ull}},
+ {{11907666407798135254ull, 280631671734515265ull,
+ 4768832954953607067ull, 4602844079450154662ull}},
+ {{524762477232752678ull, 16316295859329929705ull,
+ 16815578652128168128ull, 2876777549656346663ull}},
+ {{5267639114968328751ull, 1948625750452860515ull,
+ 16407787296732822257ull, 3595971937070433329ull}},
+ {{1972862875283023035ull, 7047468206493463548ull,
+ 6674676065633864109ull, 4494964921338041662ull}},
+ {{10456411333906665205ull, 6710510638272108669ull,
+ 18006730596303328780ull, 2809353075836276038ull}},
+ {{17682200185810719410ull, 8388138297840135836ull,
+ 13285041208524385167ull, 3511691344795345048ull}},
+ {{3656006158553847646ull, 5873486853872781892ull,
+ 16606301510655481459ull, 4389614180994181310ull}},
+ {{11508375885950930587ull, 1365086274456794730ull,
+ 5767252425732288008ull, 2743508863121363319ull}},
+ {{5162097820583887426ull, 1706357843070993413ull,
+ 2597379513737972106ull, 3429386078901704149ull}},
+ {{11064308294157247186ull, 11356319340693517574ull,
+ 7858410410599853036ull, 4286732598627130186ull}},
+ {{2303506665420891588ull, 16321071624788224292ull,
+ 9523192525052296051ull, 2679207874141956366ull}},
+ {{2879383331776114484ull, 15789653512557892461ull,
+ 2680618619460594256ull, 3349009842677445458ull}},
+ {{8210915183147531009ull, 1290322816987813960ull,
+ 12574145311180518629ull, 4186262303346806822ull}},
+ {{5131821989467206881ull, 3112294769831077677ull,
+ 3247154801060436239ull, 2616413939591754264ull}},
+ {{11026463505261396505ull, 17725426517571010808ull,
+ 4058943501325545298ull, 3270517424489692830ull}},
+ {{13783079381576745631ull, 12933411110108987702ull,
+ 14297051413511707431ull, 4088146780612116037ull}},
+ {{4002738595058078116ull, 15000910971459199170ull,
+ 11241500142658511096ull, 2555091737882572523ull}},
+ {{14226795280677373453ull, 304394640614447346ull,
+ 9440189159895750967ull, 3193864672353215654ull}},
+ {{8560122063991941008ull, 14215551356050222895ull,
+ 2576864413014912900ull, 3992330840441519568ull}},
+ {{12267605317636044986ull, 18108091634386165117ull,
+ 1610540258134320562ull, 2495206775275949730ull}},
+ {{1499448591762892520ull, 13411742506127930589ull,
+ 11236547359522676511ull, 3119008469094937162ull}},
+ {{6485996758131003554ull, 12152992114232525332ull,
+ 4822312162548569831ull, 3898760586368671453ull}},
+ {{13277120010686653030ull, 14513149099036410188ull,
+ 5319788110806550096ull, 2436725366480419658ull}},
+ {{16596400013358316287ull, 18141436373795512735ull,
+ 15873107175362963428ull, 3045906708100524572ull}},
+ {{16133813998270507454ull, 4230051393534839303ull,
+ 1394639895494152670ull, 3807383385125655716ull}},
+ {{17001162776560149015ull, 16478840176241438276ull,
+ 10095021971538621226ull, 2379614615703534822ull}},
+ {{2804709396990634653ull, 11375178183447022038ull,
+ 3395405427568500725ull, 2974518269629418528ull}},
+ {{12729258783093069124ull, 383914674026613835ull,
+ 4244256784460625907ull, 3718147837036773160ull}},
+ {{5649943730219474251ull, 16380847735762491311ull,
+ 2652660490287891191ull, 2323842398147983225ull}},
+ {{2450743644346954909ull, 15864373651275726235ull,
+ 7927511631287251893ull, 2904802997684979031ull}},
+ {{16898487610715857348ull, 5995409008812494081ull,
+ 5297703520681676963ull, 3631003747106223789ull}},
+ {{7288051458112657973ull, 2882575242588229698ull,
+ 11233815419279484108ull, 4538754683882779736ull}},
+ {{9166718179747799137ull, 11024981563472419369ull,
+ 7021134637049677567ull, 2836721677426737335ull}},
+ {{16070083743112136826ull, 9169540935913136307ull,
+ 4164732277884709055ull, 3545902096783421669ull}},
+ {{15475918660462783128ull, 6850240151464032480ull,
+ 9817601365783274223ull, 4432377620979277086ull}},
+ {{9672449162789239455ull, 11198929122306102156ull,
+ 1524314835187158485ull, 2770236013112048179ull}},
+ {{12090561453486549319ull, 163603347600463983ull,
+ 15740451599266111819ull, 3462795016390060223ull}},
+ {{10501515798430798745ull, 14039562239782743691ull,
+ 15063878480655251869ull, 4328493770487575279ull}},
+ {{4257604364805555264ull, 11080569409077908759ull,
+ 16332453078050614274ull, 2705308606554734549ull}},
+ {{710319437579556175ull, 4627339724492610141ull, 6580508292281104131ull,
+ 3381635758193418187ull}},
+ {{5499585315401833123ull, 1172488637188374772ull,
+ 3613949346923992260ull, 4227044697741772734ull}},
+ {{12660612858980921510ull, 9956177435097510040ull,
+ 16093776397109658874ull, 2641902936088607958ull}},
+ {{15825766073726151887ull, 3221849757017111742ull,
+ 10893848459532297785ull, 3302378670110759948ull}},
+ {{10558835555302914051ull, 8638998214698777582ull,
+ 13617310574415372231ull, 4127973337638449935ull}},
+ {{1987586203636933378ull, 12316902911827817845ull,
+ 15428348136650689500ull, 2579983336024031209ull}},
+ {{7096168772973554627ull, 15396128639784772306ull,
+ 5450377115531198163ull, 3224979170030039012ull}},
+ {{18093583003071719091ull, 14633474781303577478ull,
+ 6812971394413997704ull, 4031223962537548765ull}},
+ {{6696803358492436528ull, 9145921738314735924ull,
+ 6563950130722442517ull, 2519514976585967978ull}},
+ {{8371004198115545660ull, 16044088191320807809ull,
+ 17428309700257828954ull, 3149393720732459972ull}},
+ {{15075441266071819979ull, 10831738202296233953ull,
+ 3338643051612734577ull, 3936742150915574966ull}},
+ {{2504621763653805631ull, 18299051422503615981ull,
+ 15921709962540122822ull, 2460463844322234353ull}},
+ {{7742463222994644943ull, 13650442241274744168ull,
+ 6067079397892989816ull, 3075579805402792942ull}},
+ {{9678079028743306178ull, 17063052801593430210ull,
+ 16807221284221013078ull, 3844474756753491177ull}},
+ {{10660485411391954266ull, 6052721982568505977ull,
+ 3586984274997051318ull, 2402796722970931986ull}},
+ {{17937292782667330736ull, 16789274515065408279ull,
+ 13707102380601089955ull, 3003495903713664982ull}},
+ {{17809929959906775516ull, 16374907125404372445ull,
+ 7910505938896586636ull, 3754369879642081228ull}},
+ {{13437049234155428649ull, 1010944916522956970ull,
+ 14167438248665142456ull, 2346481174776300767ull}},
+ {{7572939505839510004ull, 1263681145653696213ull,
+ 13097611792404040166ull, 2933101468470375959ull}},
+ {{14077860400726775408ull, 10802973468921896074ull,
+ 11760328722077662303ull, 3666376835587969949ull}},
+ {{8373953464053693452ull, 8892030817724982189ull, 865352847314914167ull,
+ 4582971044484962437ull}},
+ {{7539563924247252360ull, 12475048288719195724ull,
+ 2846688538785515306ull, 2864356902803101523ull}},
+ {{9424454905309065450ull, 6370438324044218847ull,
+ 17393418728764057845ull, 3580446128503876903ull}},
+ {{7168882613208943908ull, 12574733923482661463ull,
+ 17130087392527684402ull, 4475557660629846129ull}},
+ {{11398080660896671799ull, 12470894720604051318ull,
+ 3788775592688720895ull, 2797223537893653831ull}},
+ {{5024228789266063940ull, 10976932382327676244ull,
+ 124283472433513215ull, 3496529422367067289ull}},
+ {{6280285986582579925ull, 9109479459482207401ull,
+ 4767040358969279423ull, 4370661777958834111ull}},
+ {{15454393787682582214ull, 12610953689817461481ull,
+ 9896929251996881495ull, 2731663611224271319ull}},
+ {{5482934179321064055ull, 11152006093844438948ull,
+ 7759475546568713965ull, 3414579514030339149ull}},
+ {{6853667724151330068ull, 104949562023384973ull,
+ 14311030451638280361ull, 4268224392537923936ull}},
+ {{6589385336808275245ull, 11594808522333085368ull,
+ 8944394032273925225ull, 2667640245336202460ull}},
+ {{8236731671010344056ull, 658452597634192998ull,
+ 11180492540342406532ull, 3334550306670253075ull}},
+ {{1072542551908154262ull, 823065747042741248ull, 9363929657000620261ull,
+ 4168187883337816344ull}},
+ {{670339094942596414ull, 2820259101115407232ull, 5852456035625387663ull,
+ 2605117427086135215ull}},
+ {{837923868678245517ull, 17360381931676422752ull,
+ 2703884026104346674ull, 3256396783857669019ull}},
+ {{1047404835847806896ull, 12477105377740752632ull,
+ 17214913087912597055ull, 4070495979822086273ull}},
+ {{654628022404879310ull, 14715719888729052251ull,
+ 3841791652304291303ull, 2544059987388803921ull}},
+ {{14653343083288262850ull, 13782963842483927409ull,
+ 9413925583807752033ull, 3180074984236004901ull}},
+ {{4481620798828164850ull, 3393646747822745550ull,
+ 16379092998187077946ull, 3975093730295006126ull}},
+ {{16636071054549766744ull, 6732715235816603872ull,
+ 5625247105439535812ull, 2484433581434378829ull}},
+ {{2348344744477656813ull, 8415894044770754841ull,
+ 11643244900226807669ull, 3105541976792973536ull}},
+ {{7547116949024458921ull, 15131553574390831455ull,
+ 14554056125283509586ull, 3881927470991216920ull}},
+ {{11634477120781368682ull, 14068907002421657563ull,
+ 9096285078302193491ull, 2426204669369510575ull}},
+ {{9931410382549322948ull, 12974447734599684050ull,
+ 6758670329450353960ull, 3032755836711888219ull}},
+ {{3190890941331877877ull, 16218059668249605063ull,
+ 3836651893385554546ull, 3790944795889860274ull}},
+ {{8911835865973505529ull, 14747973311083391068ull,
+ 7009593451793359495ull, 2369340497431162671ull}},
+ {{11139794832466881911ull, 13823280620426850931ull,
+ 4150305796314311465ull, 2961675621788953339ull}},
+ {{9313057522156214485ull, 3444042720251399952ull, 576196226965501428ull,
+ 3702094527236191674ull}},
+ {{5820660951347634053ull, 11375898737011900778ull,
+ 4971808660280826296ull, 2313809079522619796ull}},
+ {{16499198226039318374ull, 14219873421264875972ull,
+ 6214760825351032870ull, 2892261349403274745ull}},
+ {{2177253708839596352ull, 8551469739726319158ull,
+ 12380137050116178992ull, 3615326686754093431ull}},
+ {{11944939172904271248ull, 10689337174657898947ull,
+ 10863485294217835836ull, 4519158358442616789ull}},
+ {{5159743973851475578ull, 15904207771015962650ull,
+ 9095521318099841349ull, 2824473974026635493ull}},
+ {{15673052004169120280ull, 6045201658487789600ull,
+ 15981087666052189591ull, 3530592467533294366ull}},
+ {{1144570931501848734ull, 2944816054682349097ull,
+ 10752987545710461181ull, 4413240584416617958ull}},
+ {{12244571878257125219ull, 4146353043390162137ull,
+ 2108931197641650334ull, 2758275365260386224ull}},
+ {{1470656792539242812ull, 14406313341092478480ull,
+ 2636163997052062917ull, 3447844206575482780ull}},
+ {{1838320990674053515ull, 4172833621083434388ull,
+ 3295204996315078647ull, 4309805258219353475ull}},
+ {{10372322656026059255ull, 9525550040818228348ull,
+ 18200404187192781818ull, 2693628286387095921ull}},
+ {{12965403320032574069ull, 2683565514168009627ull,
+ 8915447178708813561ull, 3367035357983869902ull}},
+ {{11595068131613329682ull, 7966142911137399938ull,
+ 1920936936531241143ull, 4208794197479837378ull}},
+ {{11858603600685718955ull, 11896368347101956817ull,
+ 5812271603759413618ull, 2630496373424898361ull}},
+ {{988196445574984982ull, 5647088397022670214ull,
+ 11877025523126654927ull, 3288120466781122951ull}},
+ {{10458617593823507035ull, 2447174477850949863ull,
+ 10234595885480930755ull, 4110150583476403689ull}},
+ {{13454165023780773753ull, 17670385113152701328ull,
+ 17925837474494051481ull, 2568844114672752305ull}},
+ {{16817706279725967191ull, 8252923336158712948ull,
+ 8572238787835400640ull, 3211055143340940382ull}},
+ {{2575388775947907373ull, 10316154170198391186ull,
+ 1491926447939474992ull, 4013818929176175478ull}},
+ {{6221304003394830012ull, 6447596356373994491ull,
+ 14767512085244335582ull, 2508636830735109673ull}},
+ {{3164943985816149611ull, 17282867482322268922ull,
+ 4624332051273255765ull, 3135796038418887092ull}},
+ {{13179552019124962822ull, 7768526297620672440ull,
+ 5780415064091569707ull, 3919745048023608865ull}},
+ {{8237220011953101764ull, 2549485926799226323ull,
+ 15141974461125700827ull, 2449840655014755540ull}},
+ {{5684838996513989301ull, 17021915463781196616ull,
+ 480724002697574417ull, 3062300818768444426ull}},
+ {{7106048745642486626ull, 7442336274444332058ull,
+ 9824277040226743830ull, 3827876023460555532ull}},
+ {{9052966484453942045ull, 39774153100319632ull, 15363545186996490702ull,
+ 2392422514662847207ull}},
+ {{11316208105567427557ull, 9273089728230175348ull,
+ 14592745465318225473ull, 2990528143328559009ull}},
+ {{14145260131959284446ull, 16203048178715107089ull,
+ 4405873776365618129ull, 3738160179160698762ull}},
+ {{1923258554833470923ull, 3209376084055860075ull,
+ 7365357128655899235ull, 2336350111975436726ull}},
+ {{16239131248824002365ull, 17846778160351988805ull,
+ 18430068447674649851ull, 2920437639969295907ull}},
+ {{6463856005747839244ull, 17696786682012598103ull,
+ 18425899541165924410ull, 3650547049961619884ull}},
+ {{3468133988757411151ull, 12897611315660971821ull,
+ 4585630352747853897ull, 4563183812452024856ull}},
+ {{4473426752187075922ull, 1143478044647025532ull,
+ 2866018970467408686ull, 2851989882782515535ull}},
+ {{5591783440233844902ull, 10652719592663557723ull,
+ 17417581768366424569ull, 3564987353478144418ull}},
+ {{2378043281864918223ull, 17927585509256835058ull,
+ 12548605173603254903ull, 4456234191847680523ull}},
+ {{6097963069592961794ull, 18122269970926603767ull,
+ 5537035224288340362ull, 2785146369904800327ull}},
+ {{3010767818563814338ull, 13429465426803478901ull,
+ 2309608011933037549ull, 3481432962381000409ull}},
+ {{8375145791632155827ull, 2951773728222184914ull,
+ 7498696033343684841ull, 4351791202976250511ull}},
+ {{9846152138197485296ull, 13374073626207335331ull,
+ 11604214048480884881ull, 2719869501860156569ull}},
+ {{7696004154319468716ull, 2882533977477005452ull, 670209505318942390ull,
+ 3399836877325195712ull}},
+ {{9620005192899335894ull, 12826539508701032623ull,
+ 837761881648677987ull, 4249796096656494640ull}},
+ {{12930032273203166790ull, 5710744183724451437ull,
+ 523601176030423742ull, 2656122560410309150ull}},
+ {{2327482286221794776ull, 16361802266510340105ull,
+ 9877873506892805485ull, 3320153200512886437ull}},
+ {{7521038876204631373ull, 6617194777855761419ull,
+ 16959027902043394761ull, 4150191500641108046ull}},
+ {{2394806288414200657ull, 15664961782228320647ull,
+ 5987706420349733821ull, 2593869687900692529ull}},
+ {{16828565915799914533ull, 5746144172503237096ull,
+ 12096319043864555181ull, 3242337109875865661ull}},
+ {{2588963321040341550ull, 11794366234056434275ull,
+ 1285340749548530264ull, 4052921387344832077ull}},
+ {{17759003140146071133ull, 7371478896285271421ull,
+ 3109180977681525367ull, 2533075867090520048ull}},
+ {{8363695869900425204ull, 4602662601929201373ull,
+ 3886476222101906709ull, 3166344833863150060ull}},
+ {{15066305855802919409ull, 10365014270838889620ull,
+ 4858095277627383386ull, 3957931042328937575ull}},
+ {{193069123022048823ull, 11089819937701693917ull,
+ 9953838576158196472ull, 2473706901455585984ull}},
+ {{4853022422204948932ull, 13862274922127117396ull,
+ 12442298220197745590ull, 3092133626819482480ull}},
+ {{6066278027756186165ull, 8104471615804120937ull,
+ 15552872775247181988ull, 3865167033524353100ull}},
+ {{15320638813416086113ull, 14288666796732351393ull,
+ 497173447674712934ull, 2415729395952720688ull}},
+ {{5315740461487943929ull, 8637461459060663434ull, 621466809593391168ull,
+ 3019661744940900860ull}},
+ {{15868047613714705720ull, 10796826823825829292ull,
+ 776833511991738960ull, 3774577181176126075ull}},
+ {{694157721716915267ull, 6748016764891143308ull,
+ 16626422009490694514ull, 2359110738235078796ull}},
+ {{867697152146144084ull, 17658392992968704943ull,
+ 2336283438153816526ull, 2948888422793848496ull}},
+ {{14919679495464843816ull, 12849619204356105370ull,
+ 2920354297692270658ull, 3686110528492310620ull}},
+ {{9426227332476278962ull, 6838651968590355905ull,
+ 3650442872115338323ull, 4607638160615388275ull}},
+ {{17420607128866144112ull, 1968314471155278488ull,
+ 18422427859567944116ull, 2879773850384617671ull}},
+ {{3329014837373128523ull, 2460393088944098111ull,
+ 18416348806032542241ull, 3599717312980772089ull}},
+ {{17996326601998574366ull, 7687177379607510542ull,
+ 9185377952258514089ull, 4499646641225965112ull}},
+ {{6636018107821721075ull, 16333700908323163849ull,
+ 5740861220161571305ull, 2812279150766228195ull}},
+ {{12906708653204539248ull, 6582068080121791099ull,
+ 2564390506774576228ull, 3515348938457785244ull}},
+ {{11521699798078286156ull, 8227585100152238874ull,
+ 3205488133468220285ull, 4394186173072231555ull}},
+ {{11812748392226316751ull, 7448083696808843248ull,
+ 18144331147913495342ull, 2746366358170144721ull}},
+ {{14765935490282895939ull, 86732584156278252ull, 8845355879609705466ull,
+ 3432957947712680902ull}},
+ {{10675289144068308ull, 9331787767050123624ull, 1833322812657356024ull,
+ 4291197434640851128ull}},
+ {{6672055715042693ull, 5832367354406327265ull, 1145826757910847515ull,
+ 2681998396650531955ull}},
+ {{4620026088071191270ull, 2678773174580521177ull,
+ 15267341502670723106ull, 3352497995813164943ull}},
+ {{10386718628516376991ull, 12571838505080427279ull,
+ 14472490859911015978ull, 4190622494766456179ull}},
+ {{13409228170463817475ull, 12469085084102654953ull,
+ 6739463778230691034ull, 2619139059229035112ull}},
+ {{2926477157797608132ull, 6362984318273542884ull,
+ 8424329722788363793ull, 3273923824036293890ull}},
+ {{3658096447247010165ull, 12565416416269316509ull,
+ 1307040116630678933ull, 4092404780045367363ull}},
+ {{4592153288743075305ull, 10159228269382016770ull,
+ 16957801137390031997ull, 2557752987528354601ull}},
+ {{14963563647783619940ull, 17310721355154908866ull,
+ 7362193366455376284ull, 3197191234410443252ull}},
+ {{9481082522874749116ull, 3191657620234084467ull,
+ 9202741708069220356ull, 3996489043013054065ull}},
+ {{3619833567583024246ull, 11218158049501078600ull,
+ 17280928613611732482ull, 2497805651883158790ull}},
+ {{4524791959478780307ull, 4799325525021572442ull,
+ 12377788730159889795ull, 3122257064853948488ull}},
+ {{14879361986203251192ull, 1387470887849577648ull,
+ 15472235912699862244ull, 3902821331067435610ull}},
+ {{9299601241377031995ull, 10090541341760761838ull,
+ 14281833463864801806ull, 2439263331917147256ull}},
+ {{2401129514866514186ull, 3389804640346176490ull,
+ 17852291829831002258ull, 3049079164896434070ull}},
+ {{12224783930437918540ull, 13460627837287496420ull,
+ 13091992750433977014ull, 3811348956120542588ull}},
+ {{16863861993378474896ull, 3801206379877297358ull,
+ 17405867505876011442ull, 2382093097575339117ull}},
+ {{11856455454868317812ull, 13974880011701397506ull,
+ 7922276327062850590ull, 2977616371969173897ull}},
+ {{5597197281730621456ull, 8245227977771971075ull,
+ 14514531427255951142ull, 3722020464961467371ull}},
+ {{1192405291867944458ull, 541581467680094018ull, 6765739132821275512ull,
+ 2326262790600917107ull}},
+ {{10713878651689706381ull, 676976834600117522ull,
+ 3845487897599206486ull, 2907828488251146384ull}},
+ {{4168976277757357168ull, 10069593080104922711ull,
+ 4806859871999008107ull, 3634785610313932980ull}},
+ {{599534328769308556ull, 7975305331703765485ull, 6008574839998760134ull,
+ 4543482012892416225ull}},
+ {{2680551964694511800ull, 372879813887465524ull,
+ 15284574321067694844ull, 2839676258057760140ull}},
+ {{3350689955868139749ull, 466099767359331905ull, 658973827625066939ull,
+ 3549595322572200176ull}},
+ {{8800048463262562591ull, 14417682764481328593ull,
+ 823717284531333673ull, 4436994153215250220ull}},
+ {{17029245335607571379ull, 2093522700159748514ull,
+ 9738195339686859354ull, 2773121345759531387ull}},
+ {{12063184632654688416ull, 11840275412054461451ull,
+ 7561058156181186288ull, 3466401682199414234ull}},
+ {{10467294772390972616ull, 14800344265068076814ull,
+ 227950658371707052ull, 4333002102749267793ull}},
+ {{1930373214316969981ull, 26843128812772201ull, 11671684207550786668ull,
+ 2708126314218292370ull}},
+ {{7024652536323600380ull, 33553911015965251ull, 5366233222583707527ull,
+ 3385157892772865463ull}},
+ {{4169129651977112571ull, 13877000444052120276ull,
+ 2096105509802246504ull, 4231447365966081829ull}},
+ {{11829078069340471165ull, 8673125277532575172ull,
+ 3615908952840098017ull, 2644654603728801143ull}},
+ {{14786347586675588956ull, 15453092615343106869ull,
+ 18354944246332286233ull, 3305818254661001428ull}},
+ {{4647876428062322483ull, 5481307713896719875ull,
+ 4496936234205806176ull, 4132272818326251786ull}},
+ {{599079758325257600ull, 3425817321185449922ull, 7422271164806016764ull,
+ 2582670511453907366ull}},
+ {{9972221734761347808ull, 4282271651481812402ull, 54466919152745147ull,
+ 3228338139317384208ull}},
+ {{3241905131596908952ull, 741153545924877599ull, 68083648940931434ull,
+ 4035422674146730260ull}},
+ {{8943719734889149951ull, 5074906984630436403ull,
+ 9265924317442857954ull, 2522139171341706412ull}},
+ {{6567963650184049535ull, 15567005767642821312ull,
+ 11582405396803572442ull, 3152673964177133015ull}},
+ {{8209954562730061919ull, 10235385172698750832ull,
+ 9866320727577077649ull, 3940842455221416269ull}},
+ {{5131221601706288699ull, 17926330779005189030ull,
+ 8472293463949367482ull, 2463026534513385168ull}},
+ {{15637399038987636682ull, 13184541436901710479ull,
+ 10590366829936709353ull, 3078783168141731460ull}},
+ {{14935062780307157948ull, 2645618740844974387ull,
+ 13237958537420886692ull, 3848478960177164325ull}},
+ {{7028571228478279766ull, 10876883749882884800ull,
+ 10579567095101748134ull, 2405299350110727703ull}},
+ {{8785714035597849707ull, 4372732650498830192ull,
+ 8612772850449797264ull, 3006624187638409629ull}},
+ {{10982142544497312134ull, 5465915813123537740ull,
+ 15377652081489634484ull, 3758280234548012036ull}},
+ {{16087211127165595892ull, 12639569420056986895ull,
+ 387660514076245744ull, 2348925146592507523ull}},
+ {{15497327890529606961ull, 15799461775071233619ull,
+ 14319633697877470892ull, 2936156433240634403ull}},
+ {{14759973844734620797ull, 1302583145129490408ull,
+ 13287856103919450712ull, 3670195541550793004ull}},
+ {{3223232208724380ull, 1628228931411863011ull, 16609820129899313390ull,
+ 4587744426938491255ull}},
+ {{16142915584626310402ull, 14852701137414578093ull,
+ 17298666608828152724ull, 2867340266836557034ull}},
+ {{6343586425500724290ull, 119132348058671001ull,
+ 12399961224180415098ull, 3584175333545696293ull}},
+ {{12541169050303293266ull, 9372287471928114559ull,
+ 1664893474943355160ull, 4480219166932120367ull}},
+ {{14755759684080640148ull, 5857679669955071599ull,
+ 7958087449480678831ull, 2800136979332575229ull}},
+ {{13833013586673412280ull, 2710413569016451595ull,
+ 14559295330278236443ull, 3500171224165719036ull}},
+ {{12679580964914377446ull, 17223075016552728206ull,
+ 18199119162847795553ull, 4375214030207148795ull}},
+ {{3313052084644098000ull, 3846892857704373273ull,
+ 9068606467566178269ull, 2734508768879467997ull}},
+ {{8753001124232510404ull, 9420302090557854495ull,
+ 15947444102885110740ull, 3418135961099334996ull}},
+ {{6329565386863250101ull, 11775377613197318119ull,
+ 1487561054896836809ull, 4272669951374168746ull}},
+ {{10873507394430613169ull, 442081980607241968ull,
+ 5541411677737910910ull, 2670418719608855466ull}},
+ {{13591884243038266462ull, 9775974512613828268ull,
+ 16150136634027164445ull, 3338023399511069332ull}},
+ {{16989855303797833077ull, 16831654159194673239ull,
+ 1740926718824403940ull, 4172529249388836666ull}},
+ {{17536188592514727529ull, 1296411812641894966ull,
+ 5699765217692640367ull, 2607830780868022916ull}},
+ {{12696863703788633603ull, 15455572821084532420ull,
+ 7124706522115800458ull, 3259788476085028645ull}},
+ {{15871079629735792004ull, 10096093989500889717ull,
+ 13517569171072138477ull, 4074735595106285806ull}},
+ {{12225267777798563955ull, 8615901752651750025ull,
+ 3836794713492698644ull, 2546709746941428629ull}},
+ {{1446526666966041231ull, 10769877190814687532ull,
+ 9407679410293261209ull, 3183387183676785786ull}},
+ {{1808158333707551539ull, 18074032506945747319ull,
+ 2536227226011800703ull, 3979233979595982233ull}},
+ {{8047627986208301568ull, 18213799344482173930ull,
+ 13114357062325845199ull, 2487021237247488895ull}},
+ {{836162945905601152ull, 18155563162175329509ull,
+ 11781260309479918595ull, 3108776546559361119ull}},
+ {{5656889700809389344ull, 18082767934291773982ull,
+ 10114889368422510340ull, 3885970683199201399ull}},
+ {{17370614118288032052ull, 2078357922077582930ull,
+ 13239334882905150819ull, 2428731676999500874ull}},
+ {{12489895611005264257ull, 16433005457879142375ull,
+ 7325796566776662715ull, 3035914596249376093ull}},
+ {{11000683495329192417ull, 15929570803921540065ull,
+ 13768931726898216298ull, 3794893245311720116ull}},
+ {{18404642230649215021ull, 14567667770878350444ull,
+ 17828954366166160994ull, 2371808278319825072ull}},
+ {{4559058714601967160ull, 8986212676743162248ull,
+ 3839448883998149627ull, 2964760347899781341ull}},
+ {{5698823393252458950ull, 6621079827501564906ull,
+ 9410997123425074938ull, 3705950434874726676ull}},
+ {{8173450639210174748ull, 8749860910615865970ull,
+ 15105245238995447644ull, 2316219021796704172ull}},
+ {{993441262157942627ull, 10937326138269832463ull, 434812475034757939ull,
+ 2895273777245880216ull}},
+ {{15076859632979591995ull, 9059971654409902674ull,
+ 543515593793447424ull, 3619092221557350270ull}},
+ {{9622702504369714186ull, 11324964568012378343ull,
+ 9902766529096585088ull, 4523865276946687837ull}},
+ {{12931718092872153222ull, 7078102855007736464ull,
+ 8495072089899059632ull, 2827415798091679898ull}},
+ {{16164647616090191528ull, 8847628568759670580ull,
+ 1395468075519048732ull, 3534269747614599873ull}},
+ {{1759065446403187794ull, 11059535710949588226ull,
+ 6356021112826198819ull, 4417837184518249841ull}},
+ {{5711101922429380275ull, 4606366810129798689ull,
+ 15501728241584844022ull, 2761148240323906150ull}},
+ {{11750563421464113248ull, 14981330549517024169ull,
+ 10153788265126279219ull, 3451435300404882688ull}},
+ {{853146221547977848ull, 14114977168468892308ull,
+ 12692235331407849024ull, 4314294125506103360ull}},
+ {{9756588425322261963ull, 8821860730293057692ull,
+ 7932647082129905640ull, 2696433828441314600ull}},
+ {{12195735531652827454ull, 11027325912866322115ull,
+ 9915808852662382050ull, 3370542285551643250ull}},
+ {{10632983396138646413ull, 4560785354228126836ull,
+ 3171389028973201755ull, 4213177856939554063ull}},
+ {{15868986659441429816ull, 544647837178885320ull,
+ 8899647170749332953ull, 2633236160587221289ull}},
+ {{1389489250592235654ull, 5292495814900994555ull,
+ 15736244981864054095ull, 3291545200734026611ull}},
+ {{15571919618522458280ull, 2003933750198855289ull,
+ 15058620208902679715ull, 4114431500917533264ull}},
+ {{2814920733935454569ull, 17393359658370142220ull,
+ 9411637630564174821ull, 2571519688073458290ull}},
+ {{3518650917419318211ull, 7906641517680514063ull,
+ 2541175001350442719ull, 3214399610091822863ull}},
+ {{18233371702056311476ull, 5271615878673254674ull,
+ 17011526806970217111ull, 4017999512614778578ull}},
+ {{16007543332212582577ull, 10212288951811866027ull,
+ 15243890272783773598ull, 2511249695384236611ull}},
+ {{15397743146838340317ull, 3541989152910056726ull,
+ 14443176822552329094ull, 3139062119230295764ull}},
+ {{10023806896693149588ull, 13650858477992346716ull,
+ 18053971028190411367ull, 3923827649037869705ull}},
+ {{15488251347287994300ull, 15449315576386298553ull,
+ 4366202864977925248ull, 2452392280648668566ull}},
+ {{5525256128827829163ull, 864900396773321576ull,
+ 14681125618077182369ull, 3065490350810835707ull}},
+ {{6906570161034786454ull, 5692811514394039874ull,
+ 13739721004169090057ull, 3831862938513544634ull}},
+ {{8928292369074129438ull, 15087222242564744681ull,
+ 13199011646033069189ull, 2394914336570965396ull}},
+ {{15772051479770049701ull, 5023969747923767139ull,
+ 16498764557541336487ull, 2993642920713706745ull}},
+ {{15103378331285174223ull, 1668276166477321020ull,
+ 6788397641644506897ull, 3742053650892133432ull}},
+ {{216239420198458081ull, 12571887650116795398ull,
+ 4242748526027816810ull, 2338783531807583395ull}},
+ {{9493671312102848410ull, 6491487525791218439ull, 691749639107383109ull,
+ 2923479414759479244ull}},
+ {{7255403121701172608ull, 12726045425666410953ull,
+ 864687048884228886ull, 3654349268449349055ull}},
+ {{13680939920553853664ull, 6684184745228237883ull,
+ 14915916866387449820ull, 4567936585561686318ull}},
+ {{6244744441132464588ull, 13400987502622424485ull,
+ 4710762023064768233ull, 2854960365976053949ull}},
+ {{12417616569842968639ull, 2916176322995866894ull,
+ 10500138547258348196ull, 3568700457470067436ull}},
+ {{6298648675448934990ull, 3645220403744833618ull,
+ 13125173184072935245ull, 4460875571837584295ull}},
+ {{8548341440582972273ull, 4584105761554214963ull,
+ 15120762267686666384ull, 2788047232398490184ull}},
+ {{6073740782301327437ull, 5730132201942768704ull, 454208760898781364ull,
+ 3485059040498112731ull}},
+ {{7592175977876659297ull, 7162665252428460880ull,
+ 14402819006405640417ull, 4356323800622640913ull}},
+ {{4745109986172912061ull, 16005880828836257810ull,
+ 2084232851362443404ull, 2722702375389150571ull}},
+ {{15154759519570915884ull, 1560606962335770646ull,
+ 16440349119485217968ull, 3403377969236438213ull}},
+ {{9720077362608869046ull, 1950758702919713308ull,
+ 6715378344074358748ull, 4254222461545547767ull}},
+ {{15298420388485318962ull, 10442596226179596625ull,
+ 11114640492687556073ull, 2658889038465967354ull}},
+ {{5287967430324484991ull, 17664931301151883686ull,
+ 4669928579004669283ull, 3323611298082459193ull}},
+ {{15833331324760382046ull, 17469478108012466703ull,
+ 10449096742183224508ull, 4154514122603073991ull}},
+ {{16813361105616320635ull, 1695051780653015881ull,
+ 13448214491505597174ull, 2596571326626921244ull}},
+ {{7181643326738237082ull, 11342186762671045660ull,
+ 16810268114381996467ull, 3245714158283651555ull}},
+ {{8977054158422796352ull, 9566047434911419171ull,
+ 16401149124550107680ull, 4057142697854564444ull}},
+ {{3304815839800553768ull, 5978779646819636982ull,
+ 1027346165989041492ull, 2535714186159102778ull}},
+ {{13354391836605468018ull, 7473474558524546227ull,
+ 10507554744341077673ull, 3169642732698878472ull}},
+ {{12081303777329447118ull, 13953529216583070688ull,
+ 13134443430426347091ull, 3962053415873598090ull}},
+ {{7550814860830904449ull, 6415112751150725228ull,
+ 12820713162443854836ull, 2476283384920998806ull}},
+ {{9438518576038630561ull, 8018890938938406535ull,
+ 6802519416200042737ull, 3095354231151248508ull}},
+ {{7186462201620900298ull, 14635299692100396073ull,
+ 8503149270250053421ull, 3869192788939060635ull}},
+ {{16020753922081532446ull, 11452905316776441497ull,
+ 3008625284692589436ull, 2418245493086912897ull}},
+ {{6190884347319751846ull, 14316131645970551872ull,
+ 8372467624293124699ull, 3022806866358641121ull}},
+ {{7738605434149689807ull, 13283478539035801936ull,
+ 15077270548793793778ull, 3778508582948301401ull}},
+ {{4836628396343556129ull, 12913860105324764114ull,
+ 2505765065355039255ull, 2361567864342688376ull}},
+ {{15269157532284220970ull, 11530639113228567238ull,
+ 3132206331693799069ull, 2951959830428360470ull}},
+ {{9863074878500500404ull, 578240836253545336ull,
+ 13138629951472024645ull, 3689949788035450587ull}},
+ {{6164421799062812753ull, 2667243531872159787ull,
+ 5905800710456321451ull, 2306218617522156617ull}},
+ {{3093841230401128037ull, 17169112470122363446ull,
+ 11993936906497789717ull, 2882773271902695771ull}},
+ {{13090673574856185854ull, 7626332532370790595ull,
+ 10380735114694849243ull, 3603466589878369714ull}},
+ {{11751655950142844413ull, 4921229647036100340ull,
+ 3752546856513785746ull, 4504333237347962143ull}},
+ {{16568157005694053566ull, 7687454547824950616ull,
+ 9262870812962197947ull, 2815208273342476339ull}},
+ {{2263452183408015342ull, 4997632166353800367ull,
+ 6966902497775359530ull, 3519010341678095424ull}},
+ {{16664373284542182889ull, 15470412244797026266ull,
+ 8708628122219199412ull, 4398762927097619280ull}},
+ {{15026919321266252210ull, 445635616143365608ull,
+ 5442892576386999633ull, 2749226829436012050ull}},
+ {{336905077873263646ull, 5168730538606594915ull,
+ 16026987757338525349ull, 3436533536795015062ull}},
+ {{14256189402623743270ull, 11072599191685631547ull,
+ 10810362659818380878ull, 4295666920993768828ull}},
+ {{6604275367426145592ull, 2308688476376131813ull,
+ 15979848699241263857ull, 2684791825621105517ull}},
+ {{12867030227710069894ull, 7497546613897552670ull,
+ 6139752818769416109ull, 3355989782026381897ull}},
+ {{6860415747782811559ull, 13983619285799328742ull,
+ 12286377041889158040ull, 4194987227532977371ull}},
+ {{18122817897646420936ull, 8739762053624580463ull,
+ 5373142641967029823ull, 2621867017208110857ull}},
+ {{18041836353630638266ull, 6313016548603337675ull,
+ 11328114320886175183ull, 3277333771510138571ull}},
+ {{17940609423610909929ull, 3279584667326784190ull,
+ 9548456882680331075ull, 4096667214387673214ull}},
+ {{6601194871329430802ull, 18190641481575097783ull,
+ 1356099533247819017ull, 2560417008992295759ull}},
+ {{3639807570734400598ull, 8903243796686708517ull,
+ 15530182471841937484ull, 3200521261240369698ull}},
+ {{9161445481845388652ull, 11129054745858385646ull,
+ 10189356052947646047ull, 4000651576550462123ull}},
+ {{1114217407725980003ull, 13873188243802572885ull,
+ 4062504523878584827ull, 2500407235344038827ull}},
+ {{6004457778084862908ull, 12729799286325828202ull,
+ 466444636420843130ull, 3125509044180048534ull}},
+ {{16728944259460854443ull, 6688877071052509444ull,
+ 9806427832380829721ull, 3906886305225060667ull}},
+ {{1232218125308258219ull, 15709763215476288163ull,
+ 3823174386024324623ull, 2441803940765662917ull}},
+ {{15375330711917486486ull, 15025518000917972299ull,
+ 9390654000957793683ull, 3052254925957078646ull}},
+ {{14607477371469470203ull, 14170211482720077470ull,
+ 2514945464342466296ull, 3815318657446348308ull}},
+ {{4517987338741030973ull, 8856382176700048419ull,
+ 10795212952068817243ull, 2384574160903967692ull}},
+ {{1035798154998900812ull, 6458791702447672620ull,
+ 13494016190086021554ull, 2980717701129959615ull}},
+ {{1294747693748626015ull, 17296861664914366583ull,
+ 12255834219180139038ull, 3725897126412449519ull}},
+ {{7726746336233973116ull, 6198852522144091210ull,
+ 14577425414628668755ull, 2328685704007780949ull}},
+ {{435060883437690586ull, 3136879634252726109ull, 4386723713003672232ull,
+ 2910857130009726187ull}},
+ {{5155512122724501137ull, 3921099542815907636ull, 871718622827202386ull,
+ 3638571412512157734ull}},
+ {{6444390153405626421ull, 14124746465374660353ull,
+ 10313020315388778790ull, 4548214265640197167ull}},
+ {{15556958891946986273ull, 4216280522431774816ull,
+ 13363166724759068600ull, 2842633916025123229ull}},
+ {{999454541224181226ull, 5270350653039718521ull, 2868900350666672038ull,
+ 3553292395031404037ull}},
+ {{5861004194957614436ull, 15811310353154423959ull,
+ 8197811456760727951ull, 4441615493789255046ull}},
+ {{10580656649489590879ull, 16799597998362596830ull,
+ 511946142048067065ull, 2776009683618284404ull}},
+ {{4002448775007212790ull, 7164439442671082326ull, 639932677560083832ull,
+ 3470012104522855505ull}},
+ {{14226433005613791795ull, 8955549303338852907ull,
+ 5411601865377492694ull, 4337515130653569381ull}},
+ {{6585677619294925920ull, 985532296159395163ull, 5688094175074626886ull,
+ 2710946956658480863ull}},
+ {{3620411005691269496ull, 10455287407054019762ull,
+ 2498431700415895703ull, 3388683695823101079ull}},
+ {{13748885793968862678ull, 8457423240390136798ull,
+ 16958097680802033341ull, 4235854619778876348ull}},
+ {{3981367602803151270ull, 7591732534457529451ull,
+ 1375439013646495030ull, 2647409137361797718ull}},
+ {{365023485076551183ull, 266293631217136006ull, 10942670803912894596ull,
+ 3309261421702247147ull}},
+ {{9679651393200464787ull, 332867039021420007ull, 9066652486463730341ull,
+ 4136576777127808934ull}},
+ {{12967311148391372348ull, 2513884908602081456ull,
+ 1054971785612443559ull, 2585360485704880584ull}},
+ {{16209138935489215435ull, 16977414191034765532ull,
+ 1318714732015554448ull, 3231700607131100730ull}},
+ {{1814679595651967678ull, 2775023665083905300ull,
+ 10871765451874218869ull, 4039625758913875912ull}},
+ {{10357546784137255607ull, 4040232799891134764ull,
+ 6794853407421386793ull, 2524766099321172445ull}},
+ {{12946933480171569508ull, 9661977018291306359ull,
+ 13105252777704121395ull, 3155957624151465556ull}},
+ {{11571980831787073981ull, 7465785254436745045ull,
+ 16381565972130151744ull, 3944947030189331945ull}},
+ {{9538331029080615191ull, 4666115784022965653ull,
+ 3320949704940262984ull, 2465591893868332466ull}},
+ {{16534599804778156892ull, 5832644730028707066ull,
+ 13374559168030104538ull, 3081989867335415582ull}},
+ {{11444877719117920307ull, 16514177949390659641ull,
+ 7494826923182854864ull, 3852487334169269478ull}},
+ {{235519546807618336ull, 10321361218369162276ull, 72580808561896386ull,
+ 2407804583855793424ull}},
+ {{294399433509522920ull, 3678329486106677037ull, 90726010702370483ull,
+ 3009755729819741780ull}},
+ {{4979685310314291554ull, 18432969912915510008ull,
+ 113407513377963103ull, 3762194662274677225ull}},
+ {{3112303318946432221ull, 18438135223213275611ull,
+ 11600094741929696699ull, 2351371663921673265ull}},
+ {{17725437203965203988ull, 18435983010589206609ull,
+ 665060372129957162ull, 2939214579902091582ull}},
+ {{8321738449674341273ull, 13821606726381732454ull,
+ 10054697502017222261ull, 3674018224877614477ull}},
+ {{1178801025238150784ull, 3441950352695001856ull,
+ 17180057895948915731ull, 4592522781097018096ull}},
+ {{736750640773844240ull, 18292120034930233824ull,
+ 10737536184968072331ull, 2870326738185636310ull}},
+ {{920938300967305300ull, 18253464025235404376ull,
+ 4198548194355314606ull, 3587908422732045388ull}},
+ {{1151172876209131625ull, 13593457994689479662ull,
+ 5248185242944143258ull, 4484885528415056735ull}},
+ {{14554541102912870978ull, 13107597265108312692ull,
+ 10197644804481171392ull, 2803053455259410459ull}},
+ {{18193176378641088722ull, 16384496581385390865ull,
+ 8135369987174076336ull, 3503816819074263074ull}},
+ {{8906412418019197190ull, 2033876653022186966ull, 945840447112819613ull,
+ 4379771023842828843ull}},
+ {{954821742834610340ull, 3577015917352560806ull,
+ 16732051343941369922ull, 2737356889901768026ull}},
+ {{10416899215398038733ull, 13694641933545476815ull,
+ 11691692143071936594ull, 3421696112377210033ull}},
+ {{8409438000820160512ull, 7894930380077070211ull, 779557123557757031ull,
+ 4277120140471512542ull}},
+ {{2950055741298906368ull, 11851860515189250738ull,
+ 14322281257505761856ull, 2673200087794695338ull}},
+ {{12910941713478408768ull, 14814825643986563422ull,
+ 8679479535027426512ull, 3341500109743369173ull}},
+ {{6915305104993235152ull, 71787981273652662ull, 15461035437211671045ull,
+ 4176875137179211466ull}},
+ {{18157123745902935682ull, 2350710497509726865ull,
+ 14274833166684682307ull, 2610546960737007166ull}},
+ {{8861346627096505891ull, 16773446177169322294ull,
+ 8620169421501077075ull, 3263183700921258958ull}},
+ {{1853311247015856555ull, 16355121703034264964ull,
+ 1551839740021570536ull, 4078979626151573698ull}},
+ {{10381691566239686155ull, 10221951064396415602ull,
+ 5581585855940869489ull, 2549362266344733561ull}},
+ {{3753742420944831886ull, 17389124848922907407ull,
+ 11588668338353474765ull, 3186702832930916951ull}},
+ {{80492007753651953ull, 7901348005871470547ull, 9874149404514455553ull,
+ 3983378541163646189ull}},
+ {{16191208569341890135ull, 16467557549738138851ull,
+ 8477186387035228672ull, 2489611588227278868ull}},
+ {{15627324693249974765ull, 2137702863463121948ull,
+ 10596482983794035841ull, 3112014485284098585ull}},
+ {{1087411792852916840ull, 7283814597756290340ull,
+ 17857289748169932705ull, 3890018106605123231ull}},
+ {{9903004407387848833ull, 16081599169666151222ull,
+ 18078335120247289796ull, 2431261316628202019ull}},
+ {{3155383472380035233ull, 1655254888373137412ull,
+ 17986232881881724342ull, 3039076645785252524ull}},
+ {{3944229340475044041ull, 11292440647321197573ull,
+ 4036047028642603811ull, 3798845807231565656ull}},
+ {{4770986347010596478ull, 4751932395362054531ull,
+ 2522529392901627382ull, 2374278629519728535ull}},
+ {{1352046915335857693ull, 15163287531057343972ull,
+ 16988219796409197939ull, 2967848286899660668ull}},
+ {{1690058644169822117ull, 14342423395394292061ull,
+ 2788530671801945808ull, 3709810358624575836ull}},
+ {{3362129661819832775ull, 8964014622121432538ull,
+ 10966203706730991938ull, 2318631474140359897ull}},
+ {{13426034114129566777ull, 1981646240797014864ull,
+ 18319440651841127827ull, 2898289342675449871ull}},
+ {{16782542642661958471ull, 16312115856278432292ull,
+ 18287614796374021879ull, 3622861678344312339ull}},
+ {{2531434229617896472ull, 15778458801920652462ull,
+ 18247832477040139445ull, 4528577097930390424ull}},
+ {{15417204448793349007ull, 12167379760414101740ull,
+ 11404895298150087153ull, 2830360686206494015ull}},
+ {{824761487282134643ull, 1374166645235463464ull, 9644433104260221038ull,
+ 3537950857758117519ull}},
+ {{1030951859102668304ull, 10941080343399105138ull,
+ 7443855361897888393ull, 4422438572197646899ull}},
+ {{5256030930366555594ull, 18367390260692910471ull,
+ 2346566591972486293ull, 2764024107623529312ull}},
+ {{1958352644530806588ull, 9124179770583974377ull,
+ 2933208239965607867ull, 3455030134529411640ull}},
+ {{7059626824090896139ull, 6793538694802580067ull,
+ 3666510299957009834ull, 4318787668161764550ull}},
+ {{2106423755843116135ull, 8857647702679000446ull,
+ 16126626992755294858ull, 2699242292601102843ull}},
+ {{11856401731658670977ull, 1848687591493974749ull,
+ 15546597722516730669ull, 3374052865751378554ull}},
+ {{985444109291175009ull, 6922545507794856341ull,
+ 10209875116291137528ull, 4217566082189223193ull}},
+ {{2921745577520678333ull, 4326590942371785213ull,
+ 17910386993750430715ull, 2635978801368264495ull}},
+ {{8263867990328235820ull, 796552659537343612ull,
+ 17776297723760650490ull, 3294973501710330619ull}},
+ {{10329834987910294775ull, 10219062861276455323ull,
+ 17608686136273425208ull, 4118716877137913274ull}},
+ {{4150303858230240282ull, 6386914288297784577ull,
+ 15617114853598278659ull, 2574198048211195796ull}},
+ {{9799565841215188257ull, 3371956841944842817ull,
+ 1074649493288296708ull, 3217747560263994746ull}},
+ {{16861143319946373225ull, 4214946052431053521ull,
+ 10566683903465146693ull, 4022184450329993432ull}},
+ {{3620685547325401410ull, 4940184291983102403ull,
+ 6604177439665716683ull, 2513865281456245895ull}},
+ {{18360914989438915474ull, 1563544346551490099ull,
+ 3643535781154757950ull, 3142331601820307369ull}},
+ {{18339457718371256439ull, 11177802470044138432ull,
+ 9166105744870835341ull, 3927914502275384211ull}},
+ {{11462161073982035274ull, 9291969552991280472ull,
+ 3422973081330578136ull, 2454946563922115132ull}},
+ {{14327701342477544093ull, 11614961941239100590ull,
+ 4278716351663222670ull, 3068683204902643915ull}},
+ {{8686254641242154308ull, 5295330389694099930ull, 736709421151640434ull,
+ 3835854006128304894ull}},
+ {{10040595169203734347ull, 7921267511986200360ull,
+ 14295501443501938983ull, 2397408753830190558ull}},
+ {{12550743961504667933ull, 5289898371555362546ull,
+ 8646004767522647921ull, 2996760942287738198ull}},
+ {{6465057915026059108ull, 11224058982871591087ull,
+ 1584133922548534093ull, 3745951177859672748ull}},
+ {{10958190224532368799ull, 9320879873508438381ull,
+ 10213455738447609616ull, 2341219486162295467ull}},
+ {{18309423799092848902ull, 11651099841885547976ull,
+ 8155133654632124116ull, 2926524357702869334ull}},
+ {{4440035675156509512ull, 14563874802356934971ull,
+ 970545031435379337ull, 3658155447128586668ull}},
+ {{938358575518248986ull, 4369785447664005002ull, 1213181289294224172ull,
+ 4572694308910733335ull}},
+ {{5198160128126293520ull, 11954487941644778934ull,
+ 7675767333449971963ull, 2857933943069208334ull}},
+ {{15721072197012642708ull, 10331423908628585763ull,
+ 371337129957689146ull, 3572417428836510418ull}},
+ {{15039654227838415481ull, 3690907848930956396ull,
+ 9687543449301887241ull, 4465521786045638022ull}},
+ {{176411855544233868ull, 13836032451650317508ull,
+ 1443028637386291621ull, 2790951116278523764ull}},
+ {{220514819430292335ull, 3459982509280733173ull, 1803785796732864527ull,
+ 3488688895348154705ull}},
+ {{4887329542715253322ull, 18160036191883080178ull,
+ 6866418264343468562ull, 4360861119185193381ull}},
+ {{7666266982624421231ull, 15961708638354313015ull,
+ 6597354424428361803ull, 2725538199490745863ull}},
+ {{4971147709853138634ull, 15340449779515503365ull,
+ 3635007012108064350ull, 3406922749363432329ull}},
+ {{10825620655743811197ull, 9952190187539603398ull,
+ 9155444783562468342ull, 4258653436704290411ull}},
+ {{2154326891412494094ull, 1608432848784864220ull,
+ 3416309980512848762ull, 2661658397940181507ull}},
+ {{2692908614265617617ull, 11233913097835856083ull,
+ 18105445530923224664ull, 3327072997425226883ull}},
+ {{17201193823114185734ull, 14042391372294820103ull,
+ 18020120895226642926ull, 4158841246781533604ull}},
+ {{17668275167087447940ull, 4164808589256874660ull,
+ 2039203522661876021ull, 2599275779238458503ull}},
+ {{3638599885149758309ull, 9817696754998481230ull,
+ 16384062458609508738ull, 3249094724048073128ull}},
+ {{13771621893291973694ull, 3048748906893325729ull,
+ 2033333999552334307ull, 4061368405060091411ull}},
+ {{1689734655666401703ull, 18046369131304186245ull,
+ 17411734814216066605ull, 2538355253162557131ull}},
+ {{6723854338010390032ull, 8722903358848069094ull,
+ 17152982499342695353ull, 3172944066453196414ull}},
+ {{17628189959367763348ull, 15515315216987474271ull,
+ 12217856087323593383ull, 3966180083066495518ull}},
+ {{17935147752245933949ull, 16614601038258253275ull,
+ 3024474036149857960ull, 2478862551916559699ull}},
+ {{17807248671880029532ull, 2321507224113264978ull,
+ 17615650600469486163ull, 3098578189895699623ull}},
+ {{13035688802995261107ull, 16736942085423744935ull,
+ 17407877232159469799ull, 3873222737369624529ull}},
+ {{15064834529513120048ull, 17378117831030922440ull,
+ 3962394242458586768ull, 2420764210856015331ull}},
+ {{384299088181848444ull, 3275903215079101435ull, 341306784645845557ull,
+ 3025955263570019164ull}},
+ {{14315431915509474267ull, 8706565037276264697ull,
+ 426633480807306946ull, 3782444079462523955ull}},
+ {{2029615919552339561ull, 10053289166725053340ull,
+ 16407546990000424505ull, 2364027549664077471ull}},
+ {{2537019899440424451ull, 17178297476833704579ull,
+ 15897747719073142727ull, 2955034437080096839ull}},
+ {{17006332929582694275ull, 16861185827614742819ull,
+ 15260498630414040505ull, 3693793046350121049ull}},
+ {{8323115071775489970ull, 3620712114618132406ull,
+ 2620282616367693460ull, 2308620653968825656ull}},
+ {{1180521802864586655ull, 4525890143272665508ull,
+ 3275353270459616825ull, 2885775817461032070ull}},
+ {{1475652253580733318ull, 10269048697518219789ull,
+ 13317563624929296839ull, 3607219771826290087ull}},
+ {{6456251335403304552ull, 8224624853470386832ull,
+ 12035268512734233145ull, 4509024714782862609ull}},
+ {{4035157084627065345ull, 16669605579487461530ull,
+ 604513792817813859ull, 2818140446739289131ull}},
+ {{14267318392638607489ull, 16225320955931939008ull,
+ 14590700296304431036ull, 3522675558424111413ull}},
+ {{17834147990798259361ull, 1834907121205372144ull,
+ 4403317315098375084ull, 4403344448030139267ull}},
+ {{11146342494248912101ull, 10370188987608133398ull,
+ 446230312722790475ull, 2752090280018837042ull}},
+ {{4709556080956364318ull, 8351050216082778844ull,
+ 9781159927758263902ull, 3440112850023546302ull}},
+ {{5886945101195455398ull, 1215440733248697747ull,
+ 3003077872843054070ull, 4300141062529432878ull}},
+ {{1373497679033465672ull, 14594708513562599804ull,
+ 15711981725809072505ull, 2687588164080895548ull}},
+ {{1716872098791832089ull, 4408327586671086043ull,
+ 1193233083551789016ull, 3359485205101119436ull}},
+ {{15981148178771953824ull, 5510409483338857553ull,
+ 1491541354439736270ull, 4199356506376399295ull}},
+ {{3070688584091389284ull, 17279063982368949683ull,
+ 7849742374165917024ull, 2624597816485249559ull}},
+ {{17673418785396400317ull, 3152085904251635487ull,
+ 5200491949280008377ull, 3280747270606561949ull}},
+ {{17480087463318112492ull, 8551793398741932263ull,
+ 11112300955027398375ull, 4100934088258202436ull}},
+ {{17842583692214902164ull, 12262399901854789520ull,
+ 16168560133746899792ull, 2563083805161376522ull}},
+ {{3856485541559076088ull, 15327999877318486901ull,
+ 10987328130328848932ull, 3203854756451720653ull}},
+ {{9432292945376233014ull, 713255772938557010ull,
+ 18345846181338449070ull, 4004818445564650816ull}},
+ {{10506869109287533538ull, 14280842913368761843ull,
+ 11466153863336530668ull, 2503011528477906760ull}},
+ {{8521900368182029019ull, 17851053641710952304ull,
+ 14332692329170663335ull, 3128764410597383450ull}},
+ {{10652375460227536273ull, 17702131033711302476ull,
+ 8692493374608553361ull, 3910955513246729313ull}},
+ {{15881106699496985979ull, 4146302868428482191ull,
+ 16962023405198815611ull, 2444347195779205820ull}},
+ {{15239697355943844570ull, 571192567108214835ull,
+ 2755785182788967898ull, 3055433994724007276ull}},
+ {{14437935676502417808ull, 9937362745740044352ull,
+ 3444731478486209872ull, 3819292493405009095ull}},
+ {{9023709797814011130ull, 6210851716087527720ull,
+ 9070486201694963026ull, 2387057808378130684ull}},
+ {{11279637247267513912ull, 16986936681964185458ull,
+ 11338107752118703782ull, 2983822260472663355ull}},
+ {{4876174522229616582ull, 12010298815600456015ull,
+ 9560948671720991824ull, 3729777825590829194ull}},
+ {{9965138104034592220ull, 7506436759750285009ull,
+ 10587278938253007794ull, 2331111140994268246ull}},
+ {{17068108648470628179ull, 159673912833080453ull,
+ 4010726635961483935ull, 2913888926242835308ull}},
+ {{7500077755306121512ull, 14034650446323514279ull,
+ 5013408294951854918ull, 3642361157803544135ull}},
+ {{4763411175705263986ull, 8319941021049617041ull,
+ 1655074350262430744ull, 4552951447254430169ull}},
+ {{14506347030884259751ull, 5199963138156010650ull,
+ 12563636514982488975ull, 2845594654534018855ull}},
+ {{8909561751750548881ull, 1888267904267625409ull,
+ 11092859625300723315ull, 3556993318167523569ull}},
+ {{15748638208115574005ull, 16195392935616695473ull,
+ 31016476343740431ull, 4446241647709404462ull}},
+ {{2925369852431151897ull, 17039649612401516527ull,
+ 13854443352997001481ull, 2778901029818377788ull}},
+ {{17491770370821103584ull, 7464503960219731946ull,
+ 17318054191246251852ull, 3473626287272972235ull}},
+ {{12641340926671603671ull, 9330629950274664933ull,
+ 17035881720630426911ull, 4342032859091215294ull}},
+ {{10206681088383446247ull, 12749172746562747439ull,
+ 6035740056966628915ull, 2713770536932009559ull}},
+ {{8146665342051919904ull, 11324779914776046395ull,
+ 2932989052780898240ull, 3392213171165011949ull}},
+ {{5571645659137511976ull, 14155974893470057994ull,
+ 8277922334403510704ull, 4240266463956264936ull}},
+ {{8093964555388332889ull, 8847484308418786246ull,
+ 5173701459002194190ull, 2650166539972665585ull}},
+ {{894083657380640304ull, 1835983348668707000ull,
+ 11078812842180130642ull, 3312708174965831981ull}},
+ {{1117604571725800379ull, 11518351222690659558ull, 13457997442999590ull,
+ 4140885218707289977ull}},
+ {{14533560912610788949ull, 2587283495754274319ull,
+ 11537626294470344504ull, 2588053261692056235ull}},
+ {{13555265122336098282ull, 3234104369692842899ull,
+ 9810346849660542726ull, 3235066577115070294ull}},
+ {{12332395384492734949ull, 13266002498970829432ull,
+ 3039561525220902599ull, 4043833221393837868ull}},
+ {{7707747115307959343ull, 15208780589497850251ull,
+ 11123097990117839932ull, 2527395763371148667ull}},
+ {{5022997875707561275ull, 564231663162761198ull, 9292186469219912012ull,
+ 3159244704213935834ull}},
+ {{15502119381489227402ull, 705289578953451497ull,
+ 2391861049670114207ull, 3949055880267419793ull}},
+ {{2771295585789685270ull, 7358335014486989042ull,
+ 13024128202112291139ull, 2468159925167137370ull}},
+ {{12687491519091882396ull, 4586232749681348398ull,
+ 7056788215785588116ull, 3085199906458921713ull}},
+ {{6635992362010077186ull, 5732790937101685498ull,
+ 13432671288159373049ull, 3856499883073652141ull}},
+ {{8759181244683686146ull, 15112209381757023196ull,
+ 10701262564313302107ull, 2410312426921032588ull}},
+ {{10948976555854607682ull, 14278575708768891091ull,
+ 13376578205391627634ull, 3012890533651290735ull}},
+ {{9074534676390871698ull, 8624847599106338056ull,
+ 12109036738312146639ull, 3766113167064113419ull}},
+ {{5671584172744294812ull, 12308058777082543141ull,
+ 5262304952231397697ull, 2353820729415070887ull}},
+ {{11701166234357756418ull, 1550015416071015214ull,
+ 1966195171861859218ull, 2942275911768838609ull}},
+ {{5403085756092419715ull, 11160891306943544826ull,
+ 7069429983254711926ull, 3677844889711048261ull}},
+ {{15977229231970300451ull, 4727742096824655224ull,
+ 13448473497495777812ull, 4597306112138810326ull}},
+ {{9985768269981437782ull, 12178210847370185323ull,
+ 3793609917507473228ull, 2873316320086756454ull}},
+ {{7870524319049409324ull, 15222763559212731654ull,
+ 13965384433739117343ull, 3591645400108445567ull}},
+ {{614783361956985847ull, 14416768430588526664ull,
+ 12845044523746508775ull, 4489556750135556959ull}},
+ {{384239601223116154ull, 15928009296758911021ull,
+ 14945681854982649840ull, 2805972968834723099ull}},
+ {{5091985519956283097ull, 1463267547239087160ull,
+ 14070416300300924397ull, 3507466211043403874ull}},
+ {{6364981899945353871ull, 6440770452476246854ull,
+ 8364648338521379688ull, 4384332763804254843ull}},
+ {{17813171742748009882ull, 4025481532797654283ull,
+ 2922062202362168353ull, 2740207977377659277ull}},
+ {{17654778660007624448ull, 9643537934424455758ull,
+ 8264263771380098345ull, 3425259971722074096ull}},
+ {{12845101288154754752ull, 16666108436457957602ull,
+ 10330329714225122931ull, 4281574964652592620ull}},
+ {{12639874323524109624ull, 8110474763572529549ull,
+ 15679828108245477640ull, 2675984352907870387ull}},
+ {{1964784849122973318ull, 10138093454465661937ull,
+ 14988099116879459146ull, 3344980441134837984ull}},
+ {{7067667079831104551ull, 3449244781227301613ull, 288379822389772317ull,
+ 4181225551418547481ull}},
+ {{6723134934108134297ull, 4461620997480757460ull,
+ 11709452435062077458ull, 2613265969636592175ull}},
+ {{8403918667635167871ull, 14800398283705722633ull,
+ 10025129525400208918ull, 3266582462045740219ull}},
+ {{15116584352971347742ull, 9277125817777377483ull,
+ 7919725888322873244ull, 4083228077557175274ull}},
+ {{7142022211393398387ull, 15021575672965636735ull,
+ 9561514698629183681ull, 2552017548473234546ull}},
+ {{4315841745814360080ull, 4941911535924882207ull,
+ 2728521336431703794ull, 3190021935591543183ull}},
+ {{783116163840562195ull, 15400761456760878567ull,
+ 17245709725821793454ull, 3987527419489428978ull}},
+ {{7406976630041433228ull, 5013789892048161200ull,
+ 15390254597066008813ull, 2492204637180893111ull}},
+ {{9258720787551791535ull, 10878923383487589404ull,
+ 14626132227905123112ull, 3115255796476116389ull}},
+ {{11573400984439739419ull, 13598654229359486755ull,
+ 4447607229599240178ull, 3894069745595145487ull}},
+ {{4927532606061143185ull, 13110844911777067126ull,
+ 9697283546140606967ull, 2433793590996965929ull}},
+ {{15382787794431204789ull, 11776870121293946003ull,
+ 16733290451103146613ull, 3042241988746207411ull}},
+ {{14616798724611618082ull, 886029596335268792ull,
+ 16304927045451545363ull, 3802802485932759264ull}},
+ {{9135499202882261302ull, 16694669562205400659ull,
+ 10190579403407215851ull, 2376751553707974540ull}},
+ {{6807687985175438723ull, 16256650934329362920ull,
+ 12738224254259019814ull, 2970939442134968175ull}},
+ {{8509609981469298404ull, 11097441631056927842ull,
+ 11311094299396386864ull, 3713674302668710219ull}},
+ {{9930192256845699406ull, 6935901019410579901ull,
+ 4763590927909047838ull, 2321046439167943887ull}},
+ {{17024426339484512162ull, 17893248311118000684ull,
+ 1342802641458921893ull, 2901308048959929859ull}},
+ {{2833788850646088586ull, 8531502333615337144ull,
+ 15513561357105816079ull, 3626635061199912323ull}},
+ {{3542236063307610733ull, 6052691898591783526ull,
+ 14780265677954882195ull, 4533293826499890404ull}},
+ {{16048955594849420420ull, 1477089427406170751ull, 14294011867025564ull,
+ 2833308641562431503ull}},
+ {{15449508475134387621ull, 1846361784257713439ull,
+ 13852925570115945667ull, 3541635801953039378ull}},
+ {{14700199575490596622ull, 16143010285604305511ull,
+ 8092784925790156275ull, 4427044752441299223ull}},
+ {{16105153762322704745ull, 7783538419288996992ull,
+ 11975519606259929528ull, 2766902970275812014ull}},
+ {{1684698129193829315ull, 9729423024111246241ull,
+ 5746027470970136102ull, 3458628712844765018ull}},
+ {{6717558679919674548ull, 2938406743284281993ull,
+ 16405906375567445936ull, 4323285891055956272ull}},
+ {{15727689221018266353ull, 1836504214552676245ull,
+ 10253691484729653710ull, 2702053681909972670ull}},
+ {{5824553470990669229ull, 11519002305045621115ull,
+ 3593742319057291329ull, 3377567102387465838ull}},
+ {{2669005820310948632ull, 563694826024862682ull,
+ 13715549935676389970ull, 4221958877984332297ull}},
+ {{6279814656121730799ull, 4963995284692927080ull,
+ 1654689682156661875ull, 2638724298740207686ull}},
+ {{7849768320152163499ull, 1593308087438770946ull,
+ 11291734139550603152ull, 3298405373425259607ull}},
+ {{588838363335428565ull, 1991635109298463683ull, 9502981656010866036ull,
+ 4123006716781574509ull}},
+ {{16508925041580500517ull, 10468143980166315609ull,
+ 8245206544220485224ull, 2576879197988484068ull}},
+ {{6801098246693461935ull, 13085179975207894512ull,
+ 10306508180275606530ull, 3221098997485605085ull}},
+ {{8501372808366827418ull, 7133102932155092332ull,
+ 17494821243771896067ull, 4026373746857006356ull}},
+ {{14536730042084042945ull, 2152346323383238755ull,
+ 1710891240502659234ull, 2516483591785628973ull}},
+ {{13559226534177665777ull, 11913804941083824252ull,
+ 6750300069055711946ull, 3145604489732036216ull}},
+ {{16949033167722082221ull, 5668884139500004507ull,
+ 8437875086319639933ull, 3932005612165045270ull}},
+ {{8287302720612607436ull, 5848895596401196769ull, 661985910522387054ull,
+ 2457503507603153294ull}},
+ {{14970814419193147199ull, 16534491532356271769ull,
+ 10050854425007759625ull, 3071879384503941617ull}},
+ {{4878459968709270287ull, 6833056360163176000ull,
+ 17175254049687087436ull, 3839849230629927021ull}},
+ {{3049037480443293929ull, 13494032261956760808ull,
+ 13040376790268123599ull, 2399905769143704388ull}},
+ {{3811296850554117411ull, 12255854309018563106ull,
+ 16300470987835154499ull, 2999882211429630485ull}},
+ {{13987493100047422572ull, 10708131867845815978ull,
+ 6540530679511779412ull, 3749852764287038107ull}},
+ {{13353869205957027012ull, 15915954454258410794ull,
+ 1781988665481168180ull, 2343657977679398817ull}},
+ {{7468964470591507957ull, 1448198994113461877ull,
+ 6839171850278848130ull, 2929572472099248521ull}},
+ {{13947891606666772850ull, 11033620779496603154ull,
+ 13160650831275948066ull, 3661965590124060651ull}},
+ {{8211492471478690254ull, 4568653937515978135ull,
+ 11839127520667547179ull, 4577456987655075814ull}},
+ {{12049711822315263265ull, 549565701733792382ull,
+ 2787768681989829083ull, 2860910617284422384ull}},
+ {{5838767741039303273ull, 14522015182449404190ull,
+ 3484710852487286353ull, 3576138271605527980ull}},
+ {{16521831713153904899ull, 4317460922779591525ull,
+ 4355888565609107942ull, 4470172839506909975ull}},
+ {{12631987829934884514ull, 16533471132019408415ull,
+ 9639959381146774319ull, 2793858024691818734ull}},
+ {{11178298768991217739ull, 16055152896596872615ull,
+ 2826577189578692091ull, 3492322530864773418ull}},
+ {{9361187442811634269ull, 15457255102318702865ull,
+ 12756593523828140922ull, 4365403163580966772ull}},
+ {{17379957197825741178ull, 14272470457376577194ull,
+ 17196242989247363884ull, 2728376977238104232ull}},
+ {{12501574460427400665ull, 17840588071720721493ull,
+ 3048559662849653239ull, 3410471221547630291ull}},
+ {{1791910020252087119ull, 17689049071223513963ull,
+ 17645757633844230261ull, 4263089026934537863ull}},
+ {{17260844827153412114ull, 13361498678728390178ull,
+ 17946127548793725769ull, 2664430641834086164ull}},
+ {{12352683997086989334ull, 2866815293128324011ull,
+ 3985915362282605596ull, 3330538302292607706ull}},
+ {{10829168977931348763ull, 3583519116410405014ull,
+ 14205766239708032803ull, 4163172877865759632ull}},
+ {{2156544592779705073ull, 18380600512252360798ull,
+ 8878603899817520501ull, 2601983048666099770ull}},
+ {{11919052777829407149ull, 9140692585033287285ull,
+ 1874882837917124819ull, 3252478810832624713ull}},
+ {{1063757917004595224ull, 6814179712864221203ull,
+ 6955289565823793928ull, 4065598513540780891ull}},
+ {{16805749762623729679ull, 4258862320540138251ull,
+ 2041212969426177253ull, 2540999070962988057ull}},
+ {{16395501184852274195ull, 9935263919102560718ull,
+ 7163202230210109470ull, 3176248838703735071ull}},
+ {{11271004444210566936ull, 3195707862023425090ull,
+ 4342316769335248934ull, 3970311048379668839ull}},
+ {{11656063796058992239ull, 15832375469046804393ull,
+ 9631477008475612439ull, 2481444405237293024ull}},
+ {{735021689791576587ull, 15178783317881117588ull,
+ 12039346260594515549ull, 3101805506546616280ull}},
+ {{918777112239470733ull, 5138421092069233273ull,
+ 15049182825743144437ull, 3877256883183270350ull}},
+ {{12103450741218138969ull, 5517356191756964747ull,
+ 4794053247662077369ull, 2423285551989543969ull}},
+ {{10517627408095285807ull, 11508381258123593838ull,
+ 10604252578004984615ull, 3029106939986929961ull}},
+ {{3923662223264331450ull, 9773790554227104394ull,
+ 17867001740933618673ull, 3786383674983662451ull}},
+ {{7063974907967595060ull, 17637834142460410006ull,
+ 8861033078869817718ull, 2366489796864789032ull}},
+ {{18053340671814269633ull, 12823920641220736699ull,
+ 11076291348587272148ull, 2958112246080986290ull}},
+ {{17954989821340449138ull, 16029900801525920874ull,
+ 4621992148879314377ull, 3697640307601232863ull}},
+ {{15833554656765168615ull, 3101158973312618690ull,
+ 9806274120690653342ull, 2311025192250770539ull}},
+ {{10568571284101684961ull, 13099820753495549171ull,
+ 7646156632435928773ull, 2888781490313463174ull}},
+ {{8599028086699718297ull, 2539717886587272752ull, 334323753690135159ull,
+ 3610976862891828968ull}},
+ {{10748785108374647871ull, 17009705413516254652ull,
+ 417904692112668948ull, 4513721078614786210ull}},
+ {{15941362729588930728ull, 1407693846592883349ull,
+ 4872876450997805997ull, 2821075674134241381ull}},
+ {{6091645356703999697ull, 6371303326668492091ull,
+ 10702781582174645400ull, 3526344592667801726ull}},
+ {{3002870677452611718ull, 7964129158335615114ull,
+ 4155104940863530942ull, 4407930740834752158ull}},
+ {{6488480191835270228ull, 365894705532371542ull,
+ 16431998643321870551ull, 2754956713021720098ull}},
+ {{17333972276648863593ull, 14292426437197628139ull,
+ 11316626267297562380ull, 3443695891277150123ull}},
+ {{17055779327383691587ull, 17865533046497035174ull,
+ 9534096815694565071ull, 4304619864096437654ull}},
+ {{6048176061187419338ull, 18083487181701728840ull,
+ 1347124491381715265ull, 2690387415060273534ull}},
+ {{7560220076484274172ull, 8769300921844997338ull,
+ 10907277651081919890ull, 3362984268825341917ull}},
+ {{226903058750566907ull, 1738254115451470865ull,
+ 18245783082279787767ull, 4203730336031677396ull}},
+ {{11671029457787574077ull, 8003937849798251146ull,
+ 2180242389570091546ull, 2627331460019798373ull}},
+ {{5365414785379691788ull, 781550275393038125ull, 7336989005390002337ull,
+ 3284164325024747966ull}},
+ {{11318454500152002639ull, 5588623862668685560ull,
+ 18394608293592278729ull, 4105205406280934957ull}},
+ {{7074034062595001650ull, 15022104960236398235ull,
+ 13802473192708868157ull, 2565753378925584348ull}},
+ {{4230856559816364158ull, 4942573145013334082ull,
+ 17253091490886085197ull, 3207191723656980435ull}},
+ {{14511942736625231005ull, 10789902449694055506ull,
+ 16954678345180218592ull, 4008989654571225544ull}},
+ {{13681650228818157283ull, 6743689031058784691ull,
+ 10596673965737636620ull, 2505618534107015965ull}},
+ {{12490376767595308699ull, 8429611288823480864ull,
+ 17857528475599433679ull, 3132023167633769956ull}},
+ {{15612970959494135874ull, 5925328092601963176ull,
+ 3875166520789740483ull, 3915028959542212446ull}},
+ {{9758106849683834921ull, 1397487048662533033ull,
+ 16257037130775751514ull, 2446893099713882778ull}},
+ {{16809319580532181555ull, 10970230847682942099ull,
+ 11097924376614913584ull, 3058616374642353473ull}},
+ {{16399963457237839040ull, 13712788559603677624ull,
+ 37347415486478268ull, 3823270468302941842ull}},
+ {{10249977160773649400ull, 17793864886607074323ull,
+ 4635028153106436821ull, 2389544042689338651ull}},
+ {{8200785432539673846ull, 8407273052976679192ull,
+ 1182099172955658123ull, 2986930053361673314ull}},
+ {{10250981790674592308ull, 5897405297793461086ull,
+ 10700996003049348462ull, 3733662566702091642ull}},
+ {{1795177600744232288ull, 17520936366403076891ull,
+ 11299808520333230692ull, 2333539104188807276ull}},
+ {{16079030056212454072ull, 3454426384294294497ull,
+ 14124760650416538366ull, 2916923880236009095ull}},
+ {{6263729514983403878ull, 13541405017222643930ull,
+ 13044264794593285053ull, 3646154850295011369ull}},
+ {{17053033930584030656ull, 3091698216246141200ull,
+ 2470272937959442605ull, 4557693562868764212ull}},
+ {{10658146206615019160ull, 4238154394367532202ull,
+ 10767292623079427436ull, 2848558476792977632ull}},
+ {{4099310721413998142ull, 5297692992959415253ull,
+ 13459115778849284295ull, 3560698095991222040ull}},
+ {{9735824420194885581ull, 2010430222771881162ull,
+ 16823894723561605369ull, 4450872619989027550ull}},
+ {{10696576281049191393ull, 12785733935300895486ull,
+ 5903248183798615451ull, 2781795387493142219ull}},
+ {{4147348314456713433ull, 11370481400698731454ull,
+ 2767374211320881410ull, 3477244234366427774ull}},
+ {{14407557429925667599ull, 4989729714018638509ull,
+ 12682589801005877571ull, 4346555292958034717ull}},
+ {{11310566402917236201ull, 812738062047955116ull,
+ 10232461634842367434ull, 2716597058098771698ull}},
+ {{14138208003646545252ull, 10239294614414719703ull,
+ 3567205006698183484ull, 3395746322623464623ull}},
+ {{13061073986130793660ull, 12799118268018399629ull,
+ 18294064313654893067ull, 4244682903279330778ull}},
+ {{10469014250545439990ull, 5693605908297805816ull,
+ 16045476214461696071ull, 2652926814549581736ull}},
+ {{13086267813181799987ull, 2505321366944869366ull,
+ 1610101194367568473ull, 3316158518186977171ull}},
+ {{7134462729622474176ull, 7743337727108474612ull,
+ 15847684548241624303ull, 4145198147733721463ull}},
+ {{13682411242868822168ull, 11757115107083878488ull,
+ 16822331870292097045ull, 2590748842333575914ull}},
+ {{17103014053586027710ull, 861335828572684398ull,
+ 11804542801010345499ull, 3238436052916969893ull}},
+ {{12155395530127758829ull, 14911727840998019210ull,
+ 920620445980768161ull, 4048045066146212367ull}},
+ {{12208808224757237173ull, 2402300872982680150ull,
+ 7492916806379061957ull, 2530028166341382729ull}},
+ {{6037638244091770658ull, 7614562109655738092ull,
+ 13977832026401215350ull, 3162535207926728411ull}},
+ {{7547047805114713322ull, 294830600214896807ull,
+ 12860604014574131284ull, 3953169009908410514ull}},
+ {{11634433905837777682ull, 9407641161989086312ull,
+ 12649563527536219956ull, 2470730631192756571ull}},
+ {{14543042382297222103ull, 11759551452486357890ull,
+ 11200268390992887041ull, 3088413288990945714ull}},
+ {{8955430941016751820ull, 864381260325783651ull, 4776963451886332994ull,
+ 3860516611238682143ull}},
+ {{3291301328921775936ull, 5151924306131002686ull,
+ 9903131185070039977ull, 2412822882024176339ull}},
+ {{13337498698006995728ull, 11051591401091141261ull,
+ 7767227962910162067ull, 3016028602530220424ull}},
+ {{2836815317226580948ull, 9202803232936538673ull,
+ 9709034953637702584ull, 3770035753162775530ull}},
+ {{13302224619335082852ull, 5751752020585336670ull,
+ 10679832864450952019ull, 2356272345726734706ull}},
+ {{7404408737314077757ull, 2578004007304282934ull,
+ 4126419043708914216ull, 2945340432158418383ull}},
+ {{32138884787821389ull, 3222505009130353668ull, 546337786208754866ull,
+ 3681675540198022979ull}},
+ {{40173605984776736ull, 13251503298267717893ull,
+ 14517980288043107294ull, 4602094425247528723ull}},
+ {{2330951512954179412ull, 3670503542989935779ull,
+ 6767894670813248107ull, 2876309015779705452ull}},
+ {{16748747446474887977ull, 18423187484019583435ull,
+ 8459868338516560133ull, 3595386269724631815ull}},
+ {{16324248289666222067ull, 9193926299742315582ull,
+ 5963149404718312263ull, 4494232837155789769ull}},
+ {{5590969162614000888ull, 12663732964980029095ull,
+ 15256183424017414924ull, 2808895523222368605ull}},
+ {{2377025434840113206ull, 15829666206225036369ull,
+ 5235171224739604943ull, 3511119404027960757ull}},
+ {{7582967811977529411ull, 15175396739353907557ull,
+ 11155650049351894083ull, 4388899255034950946ull}},
+ {{7045197891699649834ull, 7178779952882498271ull,
+ 11583967299272321706ull, 2743062034396844341ull}},
+ {{4194811346197174389ull, 18196846977957898647ull,
+ 644901068808238420ull, 3428827542996055427ull}},
+ {{631828164319080082ull, 4299314648737821693ull,
+ 14641184391292461738ull, 4286034428745069283ull}},
+ {{2700735611913119003ull, 7298757673888526462ull,
+ 6844897235344094634ull, 2678771517965668302ull}},
+ {{12599291551746174562ull, 18346819129215433885ull,
+ 17779493581034894100ull, 3348464397457085377ull}},
+ {{1914056384400554490ull, 4486779837809740741ull,
+ 8389308921011453914ull, 4185580496821356722ull}},
+ {{3502128249464040509ull, 7415923417058475867ull,
+ 9855004094059546600ull, 2615987810513347951ull}},
+ {{18212718367112214348ull, 9269904271323094833ull,
+ 7707069099147045346ull, 3269984763141684939ull}},
+ {{8930839903608104222ull, 2364008302299092734ull,
+ 5022150355506418779ull, 4087480953927106174ull}},
+ {{970088921327677235ull, 17618406253432790623ull,
+ 16973902027473675448ull, 2554675596204441358ull}},
+ {{15047669206941760256ull, 3576263743081436662ull,
+ 11994005497487318503ull, 3193344495255551698ull}},
+ {{9586214471822424512ull, 18305387734133959540ull,
+ 5769134835004372320ull, 3991680619069439623ull}},
+ {{15214756081743791128ull, 11440867333833724712ull,
+ 10523238299518814556ull, 2494800386918399764ull}},
+ {{571701028470187294ull, 14301084167292155891ull,
+ 13154047874398518195ull, 3118500483647999705ull}},
+ {{14549684340869897829ull, 13264669190687806959ull,
+ 2607501787715984032ull, 3898125604559999632ull}},
+ {{16011081740684767999ull, 8290418244179879349ull,
+ 1629688617322490020ull, 2436328502849999770ull}},
+ {{6178794120573796287ull, 10363022805224849187ull,
+ 11260482808507888333ull, 3045410628562499712ull}},
+ {{3111806632289857455ull, 17565464524958449388ull,
+ 14075603510634860416ull, 3806763285703124640ull}},
+ {{11168251182035936718ull, 10978415328099030867ull,
+ 8797252194146787760ull, 2379227053564452900ull}},
+ {{9348627959117532993ull, 13723019160123788584ull,
+ 10996565242683484700ull, 2974033816955566125ull}},
+ {{11685784948896916241ull, 17153773950154735730ull,
+ 18357392571781743779ull, 3717542271194457656ull}},
+ {{11915301611487960555ull, 8415265709633015879ull,
+ 11473370357363589862ull, 2323463919496536035ull}},
+ {{10282440995932562789ull, 1295710100186494041ull,
+ 9730026928277099424ull, 2904329899370670044ull}},
+ {{17464737263343091390ull, 1619637625233117551ull,
+ 12162533660346374280ull, 3630412374213337555ull}},
+ {{17219235560751476334ull, 2024547031541396939ull,
+ 10591481057005579946ull, 4538015467766671944ull}},
+ {{8456179216255978757ull, 5877027913140760991ull,
+ 6619675660628487466ull, 2836259667354169965ull}},
+ {{5958538001892585542ull, 16569656928280727047ull,
+ 12886280594212997236ull, 3545324584192712456ull}},
+ {{2836486483938344023ull, 2265327086641357193ull,
+ 16107850742766246546ull, 4431655730240890570ull}},
+ {{13302019098529934775ull, 6027515447578236149ull,
+ 14679092732656291995ull, 2769784831400556606ull}},
+ {{2792465817880254756ull, 2922708291045407283ull,
+ 9125493878965589186ull, 3462231039250695758ull}},
+ {{17325640327632482157ull, 12876757400661534911ull,
+ 2183495311852210674ull, 4327788799063369698ull}},
+ {{17746054232411383205ull, 12659659393840847223ull,
+ 5976370588335019575ull, 2704867999414606061ull}},
+ {{17570881772086841102ull, 11212888223873671125ull,
+ 12082149253846162373ull, 3381084999268257576ull}},
+ {{8128544159826387665ull, 181052224559925195ull,
+ 15102686567307702967ull, 4226356249085321970ull}},
+ {{2774497090677798339ull, 7030686667991035103ull,
+ 14050865122994702258ull, 2641472655678326231ull}},
+ {{17303179418629411635ull, 18011730371843569686ull,
+ 12951895385315989918ull, 3301840819597907789ull}},
+ {{12405602236431988736ull, 13291290927949686300ull,
+ 2354811176362823686ull, 4127301024497384737ull}},
+ {{16976873434624768768ull, 3695370811541166033ull,
+ 13000972031295234564ull, 2579563140310865460ull}},
+ {{7386033737998797248ull, 4619213514426457542ull,
+ 16251215039119043205ull, 3224453925388581825ull}},
+ {{9170135643720752ull, 10385702911460459832ull, 6478960743616640294ull,
+ 4030567406735727282ull}},
+ {{5731334777325470ull, 1879378301235399491ull, 8661036483187788088ull,
+ 2519104629209829551ull}},
+ {{13842222223753820550ull, 2349222876544249363ull,
+ 6214609585557347206ull, 3148880786512286939ull}},
+ {{12691091761264887783ull, 12159900632535087512ull,
+ 3156575963519296103ull, 3936100983140358674ull}},
+ {{7931932350790554864ull, 14517466922975511551ull,
+ 6584545995626947968ull, 2460063114462724171ull}},
+ {{5303229420060805676ull, 18146833653719389439ull,
+ 3618996476106297056ull, 3075078893078405214ull}},
+ {{2017350756648619191ull, 4236797993439685183ull,
+ 13747117631987647129ull, 3843848616348006517ull}},
+ {{8178373250546468851ull, 14177213791968272999ull,
+ 10897791529205973407ull, 2402405385217504073ull}},
+ {{5611280544755698159ull, 13109831221532953345ull,
+ 18233925429934854663ull, 3003006731521880091ull}},
+ {{11625786699372010603ull, 11775603008488803777ull,
+ 18180720768991180425ull, 3753758414402350114ull}},
+ {{348587659466424771ull, 442222852664420505ull, 15974636499046875670ull,
+ 2346099009001468821ull}},
+ {{5047420592760418868ull, 9776150602685301439ull,
+ 6133237568526430875ull, 2932623761251836027ull}},
+ {{1697589722523135681ull, 7608502234929238895ull,
+ 3054860942230650690ull, 3665779701564795034ull}},
+ {{15957045208436083313ull, 287255756806772810ull,
+ 13041948214643089171ull, 4582224626955993792ull}},
+ {{14584839273699939975ull, 16320435912500090670ull,
+ 8151217634151930731ull, 2863890391847496120ull}},
+ {{9007677055270149160ull, 15788858872197725434ull,
+ 10189022042689913414ull, 3579862989809370150ull}},
+ {{2036224282232910642ull, 10512701553392380985ull,
+ 3512905516507615960ull, 4474828737261712688ull}},
+ {{12801855222464038911ull, 6570438470870238115ull,
+ 2195565947817259975ull, 2796767960788570430ull}},
+ {{11390633009652660735ull, 3601362070160409740ull,
+ 11967829471626350777ull, 3495959950985713037ull}},
+ {{14238291262065825919ull, 9113388606127900079ull,
+ 1124728784250774759ull, 4369949938732141297ull}},
+ {{15816461066432223055ull, 12613396906471019405ull,
+ 12232170536225203984ull, 2731218711707588310ull}},
+ {{5935518277758115107ull, 15766746133088774257ull,
+ 6066841133426729172ull, 3414023389634485388ull}},
+ {{12031083865625031788ull, 1261688592651416205ull,
+ 7583551416783411466ull, 4267529237043106735ull}},
+ {{9825270425229338820ull, 5400241388834523032ull,
+ 11657248663130714022ull, 2667205773151941709ull}},
+ {{12281588031536673524ull, 15973673772897929598ull,
+ 736502773631228815ull, 3334007216439927137ull}},
+ {{6128613002566066097ull, 15355406197695024094ull,
+ 5532314485466423923ull, 4167509020549908921ull}},
+ {{17665441181885955023ull, 7291285864345696106ull,
+ 14986911599484984712ull, 2604693137843693075ull}},
+ {{12858429440502667971ull, 9114107330432120133ull,
+ 14121953480928842986ull, 3255866422304616344ull}},
+ {{2237978745346171251ull, 2169262126185374359ull,
+ 17652441851161053733ull, 4069833027880770430ull}},
+ {{8316265743482438888ull, 3661631838079552926ull,
+ 6421090138548270679ull, 2543645642425481519ull}},
+ {{1171960142498272802ull, 18412097852881604870ull,
+ 3414676654757950444ull, 3179557053031851899ull}},
+ {{10688322214977616811ull, 4568378242392454471ull,
+ 18103403873729601768ull, 3974446316289814873ull}},
+ {{13597730412002092363ull, 2855236401495284044ull,
+ 4397098393439919249ull, 2484028947681134296ull}},
+ {{16997163015002615453ull, 8180731520296492959ull,
+ 5496372991799899061ull, 3105036184601417870ull}},
+ {{16634767750325881413ull, 14837600418798004103ull,
+ 16093838276604649634ull, 3881295230751772337ull}},
+ {{17314258871594757739ull, 13885186280176140468ull,
+ 3141119895236824165ull, 2425809519219857711ull}},
+ {{3196079515783895558ull, 3521424794938011874ull,
+ 17761457924328193919ull, 3032261899024822138ull}},
+ {{13218471431584645255ull, 18236839048954678554ull,
+ 12978450368555466590ull, 3790327373781027673ull}},
+ {{12873230663167791189ull, 6786338387169286192ull,
+ 1194002452706084763ull, 2368954608613142296ull}},
+ {{16091538328959738986ull, 3871236965534219836ull,
+ 1492503065882605954ull, 2961193260766427870ull}},
+ {{1667678837490122116ull, 14062418243772550604ull,
+ 11089000869208033250ull, 3701491575958034837ull}},
+ {{10265671310286102131ull, 13400697420785232031ull,
+ 9236468552468714733ull, 2313432234973771773ull}},
+ {{8220403119430239759ull, 2915813720699376327ull,
+ 16157271709013281321ull, 2891790293717214716ull}},
+ {{5663817880860411795ull, 8256453169301608313ull,
+ 1749845562557050035ull, 3614737867146518396ull}},
+ {{11691458369502902647ull, 5708880443199622487ull,
+ 2187306953196312544ull, 4518422333933147995ull}},
+ {{14224690508580396011ull, 3568050276999764054ull,
+ 17507967910243553004ull, 2824013958708217496ull}},
+ {{8557491098870719205ull, 4460062846249705068ull,
+ 3438215814094889639ull, 3530017448385271871ull}},
+ {{10696863873588399007ull, 963392539384743431ull,
+ 18132827822900775761ull, 4412521810481589838ull}},
+ {{13603068948633831235ull, 12131335383183934404ull,
+ 6721331370885596946ull, 2757826131550993649ull}},
+ {{17003836185792289044ull, 5940797192125142197ull,
+ 13013350232034384087ull, 3447282664438742061ull}},
+ {{7419737176958197593ull, 2814310471729039843ull,
+ 2431629734760816397ull, 4309103330548427577ull}},
+ {{2331492726385179544ull, 4064787054044343854ull,
+ 13048983630293980008ull, 2693189581592767235ull}},
+ {{12137737944836250237ull, 5080983817555429817ull,
+ 11699543519440087106ull, 3366486976990959044ull}},
+ {{1337114375763149085ull, 15574601808799063080ull,
+ 14624429399300108882ull, 4208108721238698805ull}},
+ {{835696484851968178ull, 14345812148926802329ull,
+ 11446111383776262003ull, 2630067950774186753ull}},
+ {{5656306624492348127ull, 13320579167731115007ull,
+ 472581174438163792ull, 3287584938467733442ull}},
+ {{2458697262188047254ull, 16650723959663893759ull,
+ 9814098504902480548ull, 4109481173084666802ull}},
+ {{8454214816508611390ull, 1183330437935157791ull,
+ 10745497583991438247ull, 2568425733177916751ull}},
+ {{5956082502208376333ull, 15314221102701110951ull,
+ 8820185961561909904ull, 3210532166472395939ull}},
+ {{2833417109333082513ull, 696032304666837073ull, 6413546433524999477ull,
+ 4013165208090494924ull}},
+ {{13300100739401646331ull, 2740863199630467122ull,
+ 13231838557807900481ull, 2508228255056559327ull}},
+ {{7401753887397282105ull, 8037765017965471807ull,
+ 11928112178832487697ull, 3135285318820699159ull}},
+ {{4640506340819214727ull, 14658892290884227663ull,
+ 10298454205113221717ull, 3919106648525873949ull}},
+ {{9817845490653091061ull, 11467650691016336241ull,
+ 8742376887409457525ull, 2449441655328671218ull}},
+ {{16883992881743751730ull, 499505308488256589ull,
+ 1704599072407046099ull, 3061802069160839023ull}},
+ {{7269933046897525950ull, 14459439690892484449ull,
+ 15965806895790971335ull, 3827252586451048778ull}},
+ {{16072923200379423479ull, 15954678834448884636ull,
+ 14590315328296744988ull, 2392032866531905486ull}},
+ {{1644409926764727733ull, 1496604469351554180ull,
+ 9014522123516155428ull, 2990041083164881858ull}},
+ {{2055512408455909666ull, 1870755586689442725ull,
+ 2044780617540418477ull, 3737551353956102323ull}},
+ {{3590538264498637493ull, 3475065250894595655ull,
+ 17418888950458619212ull, 2335969596222563951ull}},
+ {{18323230885905460578ull, 4343831563618244568ull,
+ 17161925169645886111ull, 2919961995278204939ull}},
+ {{4457294533672274107ull, 818103436095417807ull,
+ 16840720443629969735ull, 3649952494097756174ull}},
+ {{959932148662954729ull, 14857687350401435971ull,
+ 11827528517682686360ull, 4562440617622195218ull}},
+ {{16740858657410204370ull, 9286054594000897481ull,
+ 12003891341979066879ull, 2851525386013872011ull}},
+ {{7091015266480591750ull, 6995882224073733948ull,
+ 10393178159046445695ull, 3564406732517340014ull}},
+ {{8863769083100739688ull, 4133166761664779531ull,
+ 3768100661953281311ull, 4455508415646675018ull}},
+ {{3234012667724268353ull, 9500758253681569063ull,
+ 6966748932148188723ull, 2784692759779171886ull}},
+ {{17877573889937499153ull, 7264261798674573424ull,
+ 17931808202040011712ull, 3480865949723964857ull}},
+ {{3900223288712322326ull, 9080327248343216781ull,
+ 8579702197267850928ull, 4351082437154956072ull}},
+ {{4743482564658895406ull, 5675204530214510488ull,
+ 5362313873292406830ull, 2719426523221847545ull}},
+ {{5929353205823619257ull, 16317377699622913918ull,
+ 11314578360042896441ull, 3399283154027309431ull}},
+ {{16635063544134299879ull, 6561664069246478685ull,
+ 9531536931626232648ull, 4249103942534136789ull}},
+ {{12702757724297631377ull, 4101040043279049178ull,
+ 8263053591480089357ull, 2655689964083835493ull}},
+ {{6655075118517263413ull, 9737986072526199377ull,
+ 14940503007777499600ull, 3319612455104794366ull}},
+ {{12930529916573967170ull, 12172482590657749221ull,
+ 9452256722867098692ull, 4149515568880992958ull}},
+ {{10387424207072423433ull, 16831173656015869071ull,
+ 1295974433364548778ull, 2593447230550620599ull}},
+ {{8372594240413141387ull, 11815595033165060531ull,
+ 15455026096987849685ull, 3241809038188275748ull}},
+ {{5854056782089038830ull, 934435736174161952ull, 872038547525260491ull,
+ 4052261297735344686ull}},
+ {{3658785488805649269ull, 16724923399604708884ull,
+ 14380082147485451518ull, 2532663311084590428ull}},
+ {{4573481861007061586ull, 11682782212651110297ull,
+ 17975102684356814398ull, 3165829138855738035ull}},
+ {{10328538344686214887ull, 5380105728959112063ull,
+ 17857192337018630094ull, 3957286423569672544ull}},
+ {{13372865493069966160ull, 17197624135881608751ull,
+ 11160745210636643808ull, 2473304014731045340ull}},
+ {{12104395847910069796ull, 3050286096142459323ull,
+ 13950931513295804761ull, 3091630018413806675ull}},
+ {{10518808791460199341ull, 8424543638605462058ull,
+ 12826978373192368047ull, 3864537523017258344ull}},
+ {{11185941513090012492ull, 12182868801769495642ull,
+ 8016861483245230029ull, 2415335951885786465ull}},
+ {{4759054854507739807ull, 1393527946929705841ull,
+ 14632762872483925441ull, 3019169939857233081ull}},
+ {{10560504586562062663ull, 6353595952089520205ull,
+ 4455895535322743089ull, 3773962424821541352ull}},
+ {{8906158375814983117ull, 15500212516124419888ull,
+ 2784934709576714430ull, 2358726515513463345ull}},
+ {{11132697969768728896ull, 10151893608300749052ull,
+ 8092854405398280942ull, 2948408144391829181ull}},
+ {{13915872462210911119ull, 3466494973521160507ull,
+ 14727754025175239082ull, 3685510180489786476ull}},
+ {{12783154559336250995ull, 13556490753756226442ull,
+ 18409692531469048852ull, 4606887725612233095ull}},
+ {{12601157618012544776ull, 17696178757952417334ull,
+ 18423586859809237388ull, 2879304828507645684ull}},
+ {{6528074985660905162ull, 3673479373730970052ull,
+ 4582739501051995120ull, 3599131035634557106ull}},
+ {{8160093732076131452ull, 4591849217163712565ull,
+ 14951796413169769708ull, 4498913794543196382ull}},
+ {{7405901591761276110ull, 12093277797582096161ull,
+ 4733186739803718163ull, 2811821121589497739ull}},
+ {{13869063008128983041ull, 10504911228550232297ull,
+ 1304797406327259800ull, 3514776401986872174ull}},
+ {{3501270704879065090ull, 13131139035687790372ull,
+ 10854368794763850558ull, 4393470502483590217ull}},
+ {{11411666227404191489ull, 3595275878877481078ull,
+ 18313195542795876359ull, 2745919064052243885ull}},
+ {{5041210747400463553ull, 18329152903879015060ull,
+ 9056436373212681736ull, 3432398830065304857ull}},
+ {{6301513434250579442ull, 4464697056139217209ull,
+ 15932231484943240075ull, 4290498537581631071ull}},
+ {{15467660942475081911ull, 484592650873316803ull,
+ 16875173705730606903ull, 2681561585988519419ull}},
+ {{14722890159666464485ull, 14440798868873809716ull,
+ 16482281113735870724ull, 3351951982485649274ull}},
+ {{18403612699583080606ull, 18050998586092262145ull,
+ 11379479355315062597ull, 4189939978107061593ull}},
+ {{4584728909598343523ull, 13587717125521357793ull,
+ 194645569430832267ull, 2618712486316913496ull}},
+ {{10342597155425317307ull, 12372960388474309337ull,
+ 243306961788540334ull, 3273390607896141870ull}},
+ {{17539932462709034538ull, 6242828448738110863ull,
+ 9527505739090451226ull, 4091738259870177337ull}},
+ {{17879986816834228443ull, 8513453798888707193ull,
+ 17483906133000001776ull, 2557336412418860835ull}},
+ {{8514925465760621841ull, 10641817248610883992ull,
+ 17243196647822614316ull, 3196670515523576044ull}},
+ {{10643656832200777301ull, 13302271560763604990ull,
+ 3107251736068716279ull, 3995838144404470056ull}},
+ {{2040599501698097909ull, 15231448753118334975ull,
+ 1942032335042947674ull, 2497398840252793785ull}},
+ {{16385807432404786099ull, 9815938904543142910ull,
+ 7039226437231072497ull, 3121748550315992231ull}},
+ {{11258887253651206815ull, 16881609649106316542ull,
+ 4187347028111452717ull, 3902185687894990289ull}},
+ {{2425118515104616356ull, 12856849039905141791ull,
+ 14146306938638127708ull, 2438866054934368930ull}},
+ {{16866456199162934157ull, 16071061299881427238ull,
+ 8459511636442883827ull, 3048582568667961163ull}},
+ {{11859698212098891888ull, 15477140606424396144ull,
+ 5962703527126216880ull, 3810728210834951454ull}},
+ {{7412311382561807430ull, 9673212879015247590ull,
+ 17561747759736049262ull, 2381705131771844658ull}},
+ {{42017191347483479ull, 2868144061914283680ull, 12728812662815285770ull,
+ 2977131414714805823ull}},
+ {{52521489184354349ull, 12808552114247630408ull,
+ 11299329810091719308ull, 3721414268393507279ull}},
+ {{32825930740221468ull, 17228717108259544813ull,
+ 13979610158948406423ull, 2325883917745942049ull}},
+ {{4652718431852664739ull, 16924210366897043112ull,
+ 3639454643403344317ull, 2907354897182427562ull}},
+ {{5815898039815830924ull, 7320204903339140178ull,
+ 13772690341108956205ull, 3634193621478034452ull}},
+ {{16493244586624564463ull, 13761942147601313126ull,
+ 17215862926386195256ull, 4542742026847543065ull}},
+ {{5696591848212964885ull, 8601213842250820704ull,
+ 3842385301350290179ull, 2839213766779714416ull}},
+ {{7120739810266206107ull, 6139831284386137976ull,
+ 4802981626687862724ull, 3549017208474643020ull}},
+ {{8900924762832757633ull, 7674789105482672470ull,
+ 6003727033359828405ull, 4436271510593303775ull}},
+ {{951391958343085617ull, 7102586200140364246ull,
+ 10669858423490974609ull, 2772669694120814859ull}},
+ {{10412611984783632829ull, 13489918768602843211ull,
+ 8725637010936330357ull, 3465837117651018574ull}},
+ {{8404078962552153132ull, 3027340405471390302ull,
+ 1683674226815637139ull, 4332296397063773218ull}},
+ {{640863333167707804ull, 18032988817915476603ull,
+ 5663982410187161115ull, 2707685248164858261ull}},
+ {{14636137221741798467ull, 17929550003966957849ull,
+ 11691664031161339298ull, 3384606560206072826ull}},
+ {{4460113471895084371ull, 13188565468103921504ull,
+ 5391208002096898315ull, 4230758200257591033ull}},
+ {{2787570919934427732ull, 5937010408351256988ull,
+ 14898720047379031207ull, 2644223875160994395ull}},
+ {{3484463649918034665ull, 2809576992011683331ull,
+ 14011714040796401105ull, 3305279843951242994ull}},
+ {{18190637617679707043ull, 8123657258441992067ull,
+ 8291270514140725573ull, 4131599804939053743ull}},
+ {{9063305501836122950ull, 7383128795739938994ull,
+ 12099573098979035339ull, 2582249878086908589ull}},
+ {{2105759840440377880ull, 4617224976247535839ull,
+ 1289408318441630462ull, 3227812347608635737ull}},
+ {{16467257855832636061ull, 14994903257164195606ull,
+ 6223446416479425981ull, 4034765434510794671ull}},
+ {{5680350141468009635ull, 11677657544941316206ull,
+ 10807183037940723094ull, 2521728396569246669ull}},
+ {{16323809713689787851ull, 5373699894321869449ull,
+ 18120664815853291772ull, 3152160495711558336ull}},
+ {{6569704086830071102ull, 6717124867902336812ull,
+ 4204086946107063099ull, 3940200619639447921ull}},
+ {{13329437091123570247ull, 1892360033225266555ull,
+ 14156769387385384197ull, 2462625387274654950ull}},
+ {{12050110345477074904ull, 6977136059958971098ull,
+ 8472589697376954438ull, 3078281734093318688ull}},
+ {{5839265894991567822ull, 17944792111803489681ull,
+ 10590737121721193047ull, 3847852167616648360ull}},
+ {{15178756230438199649ull, 18133024097518262906ull,
+ 6619210701075745654ull, 2404907604760405225ull}},
+ {{9750073251192973753ull, 13442908085043052825ull,
+ 12885699394772069972ull, 3006134505950506531ull}},
+ {{16799277582418605095ull, 16803635106303816031ull,
+ 11495438225037699561ull, 3757668132438133164ull}},
+ {{17417077516652710041ull, 3584742913798803163ull,
+ 16408020927503338034ull, 2348542582773833227ull}},
+ {{17159660877388499647ull, 13704300679103279762ull,
+ 15898340140951784638ull, 2935678228467291534ull}},
+ {{12226204059880848751ull, 7907003812024323895ull,
+ 10649553139334954990ull, 3669597785584114418ull}},
+ {{10671069056423673034ull, 660382728175629061ull,
+ 4088569387313917930ull, 4586997231980143023ull}},
+ {{8975261169478489598ull, 5024425223537156067ull,
+ 9472884894712280562ull, 2866873269987589389ull}},
+ {{6607390443420724094ull, 15503903566276220892ull,
+ 16452792136817738606ull, 3583591587484486736ull}},
+ {{8259238054275905117ull, 10156507420990500307ull,
+ 2119246097312621642ull, 4479489484355608421ull}},
+ {{2856180774708746746ull, 10959503156546450596ull,
+ 3630371820034082478ull, 2799680927722255263ull}},
+ {{3570225968385933433ull, 4476006908828287437ull,
+ 18373022830324766810ull, 3499601159652819078ull}},
+ {{9074468478909804695ull, 14818380672890135104ull,
+ 13742906501051182704ull, 4374501449566023848ull}},
+ {{5671542799318627935ull, 9261487920556334440ull,
+ 8589316563156989190ull, 2734063405978764905ull}},
+ {{7089428499148284918ull, 2353487863840642242ull,
+ 15348331722373624392ull, 3417579257473456131ull}},
+ {{18085157660790131956ull, 2941859829800802802ull,
+ 14573728634539642586ull, 4271974071841820164ull}},
+ {{15914909556421220376ull, 6450348412052889655ull,
+ 18331952433442052424ull, 2669983794901137602ull}},
+ {{15281950927099137566ull, 8062935515066112069ull,
+ 13691568504947789722ull, 3337479743626422003ull}},
+ {{5267380603591758246ull, 855297356977864279ull,
+ 12502774612757349249ull, 4171849679533027504ull}},
+ {{10209641904885930760ull, 12063775894179634934ull,
+ 7814234132973343280ull, 2607406049708142190ull}},
+ {{3538680344252637642ull, 15079719867724543668ull,
+ 544420629361903292ull, 3259257562135177738ull}},
+ {{4423350430315797052ull, 402905760946127969ull, 9903897823557154924ull,
+ 4074071952668972172ull}},
+ {{14293809065015842918ull, 9475188137446105788ull,
+ 15413308176577997635ull, 2546294970418107607ull}},
+ {{17867261331269803647ull, 7232299153380244331ull,
+ 14654949202295109140ull, 3182868713022634509ull}},
+ {{17722390645659866655ull, 9040373941725305414ull,
+ 4483628447586722713ull, 3978585891278293137ull}},
+ {{6464808135110028755ull, 17179448759646785644ull,
+ 14331482825810171455ull, 2486616182048933210ull}},
+ {{8081010168887535944ull, 16862624931131094151ull,
+ 8690981495407938511ull, 3108270227561166513ull}},
+ {{5489576692682032026ull, 16466595145486479785ull,
+ 15475412887687311043ull, 3885337784451458141ull}},
+ {{14960200478994739776ull, 7985778956715355913ull,
+ 11977976064018263354ull, 2428336115282161338ull}},
+ {{4865192543461261008ull, 758851659039419084ull, 5749098043168053385ull,
+ 3035420144102701673ull}},
+ {{6081490679326576260ull, 5560250592226661759ull,
+ 11798058572387454635ull, 3794275180128377091ull}},
+ {{10718460702220192019ull, 1169313610927969647ull,
+ 5067943598528465195ull, 2371421987580235682ull}},
+ {{8786389859347852119ull, 15296700068942125771ull,
+ 15558301535015357301ull, 2964277484475294602ull}},
+ {{6371301305757427245ull, 5285817030895493502ull,
+ 10224504881914420819ull, 3705346855594118253ull}},
+ {{17817121371380555740ull, 997792635095989486ull,
+ 8696158560410206964ull, 2315841784746323908ull}},
+ {{13048029677370918867ull, 1247240793869986858ull,
+ 10870198200512758705ull, 2894802230932904885ull}},
+ {{7086665059858872776ull, 6170737010764871477ull,
+ 18199433769068336285ull, 3618502788666131106ull}},
+ {{13470017343250978874ull, 12325107281883477250ull,
+ 13525920174480644548ull, 4523128485832663883ull}},
+ {{13030446857959249701ull, 16926564088031949089ull,
+ 6147857099836708890ull, 2826955303645414927ull}},
+ {{2453000517166898414ull, 11934833073185160554ull,
+ 3073135356368498209ull, 3533694129556768659ull}},
+ {{12289622683313398825ull, 1083483286199286980ull,
+ 17676477250742786474ull, 4417117661945960823ull}},
+ {{16904386213925650074ull, 5288863072301942266ull,
+ 17965327309355323402ull, 2760698538716225514ull}},
+ {{11907110730552286784ull, 15834450877232203641ull,
+ 13233287099839378444ull, 3450873173395281893ull}},
+ {{1048830357908194768ull, 1346319522830702936ull,
+ 2706550819517059344ull, 4313591466744102367ull}},
+ {{655518973692621730ull, 841449701769189335ull, 8609123289839243946ull,
+ 2695994666715063979ull}},
+ {{14654456772397940874ull, 10275184164066262476ull,
+ 6149718093871667028ull, 3369993333393829974ull}},
+ {{18318070965497426093ull, 12843980205082828095ull,
+ 16910519654194359593ull, 4212491666742287467ull}},
+ {{18366323381076973164ull, 1109958600535685703ull,
+ 8263231774657780794ull, 2632807291713929667ull}},
+ {{18346218207918828551ull, 10610820287524382937ull,
+ 5717353699894838088ull, 3291009114642412084ull}},
+ {{9097714704616371977ull, 13263525359405478672ull,
+ 7146692124868547610ull, 4113761393303015105ull}},
+ {{5686071690385232486ull, 12901389368055812074ull,
+ 15995897624111312016ull, 2571100870814384440ull}},
+ {{16330961649836316415ull, 16126736710069765092ull,
+ 1548127956429588404ull, 3213876088517980551ull}},
+ {{1966957988585843903ull, 1711676813877654750ull,
+ 15770218000819149218ull, 4017345110647475688ull}},
+ {{15064406798148316151ull, 5681484027100922122ull,
+ 9856386250511968261ull, 2510840694154672305ull}},
+ {{9607136460830619381ull, 11713541052303540557ull,
+ 16932168831567348230ull, 3138550867693340381ull}},
+ {{16620606594465662130ull, 5418554278524649888ull,
+ 7330152984177021576ull, 3923188584616675477ull}},
+ {{10387879121541038832ull, 3386596424077906180ull,
+ 6887188624324332437ull, 2451992865385422173ull}},
+ {{12984848901926298539ull, 8844931548524770629ull,
+ 13220671798832803450ull, 3064991081731777716ull}},
+ {{2396003072125709462ull, 1832792398801187479ull,
+ 16525839748541004313ull, 3831238852164722145ull}},
+ {{8415030947719650270ull, 12674710295319211934ull,
+ 3411120815197045839ull, 2394524282602951341ull}},
+ {{1295416647794787029ull, 11231701850721627014ull,
+ 8875587037423695203ull, 2993155353253689176ull}},
+ {{10842642846598259595ull, 9427941294974645863ull,
+ 11094483796779619004ull, 3741444191567111470ull}},
+ {{13694180806764994103ull, 15115835346213929472ull,
+ 2322366354559873973ull, 2338402619729444669ull}},
+ {{17117726008456242628ull, 5059736127485248128ull,
+ 7514643961627230371ull, 2923003274661805836ull}},
+ {{2950413436860751669ull, 1712984140929172257ull,
+ 9393304952034037964ull, 3653754093327257295ull}},
+ {{8299702814503327491ull, 2141230176161465321ull,
+ 7129945171615159551ull, 4567192616659071619ull}},
+ {{16716529305133049442ull, 8255797887741997681ull,
+ 2150372723045780767ull, 2854495385411919762ull}},
+ {{7060603576134148090ull, 5708061341250109198ull,
+ 11911337940662001767ull, 3568119231764899702ull}},
+ {{18049126507022460921ull, 2523390658135248593ull,
+ 5665800388972726401ull, 4460149039706124628ull}},
+ {{4363175039247956220ull, 13106334207403000131ull,
+ 12764497279962729808ull, 2787593149816327892ull}},
+ {{842282780632557370ull, 16382917759253750164ull,
+ 15955621599953412260ull, 3484491437270409865ull}},
+ {{1052853475790696713ull, 2031903125357636089ull,
+ 6109468944659601614ull, 4355614296588012332ull}},
+ {{12187248468437655206ull, 15104997508630686267ull,
+ 13041790127267026816ull, 2722258935367507707ull}},
+ {{10622374567119681103ull, 434502812078806218ull,
+ 11690551640656395617ull, 3402823669209384634ull}},
+ {{4054596172044825571ull, 5154814533525895677ull,
+ 5389817513965718713ull, 4253529586511730793ull}},
+ {{4839965616741709934ull, 14750974129522154558ull,
+ 14897850992297043955ull, 2658455991569831745ull}},
+ {{15273329057781913225ull, 13827031643475305293ull,
+ 4787255685089141232ull, 3323069989462289682ull}},
+ {{5256603266945227819ull, 17283789554344131617ull,
+ 15207441643216202348ull, 4153837486827862102ull}},
+ {{14814592087909237147ull, 1578996434610306452ull,
+ 4892965008582738564ull, 2596148429267413814ull}},
+ {{71496036176994818ull, 1973745543262883066ull, 15339578297583199013ull,
+ 3245185536584267267ull}},
+ {{9312742082076019330ull, 7078867947505991736ull,
+ 14562786853551610862ull, 4056481920730334084ull}},
+ {{5820463801297512082ull, 18259350522473408547ull,
+ 18325113820324532596ull, 2535301200456458802ull}},
+ {{2663893733194502198ull, 4377444079382209068ull,
+ 13683020238550889938ull, 3169126500570573503ull}},
+ {{3329867166493127747ull, 14695177136082537143ull,
+ 12492089279761224518ull, 3961408125713216879ull}},
+ {{8998696006699286698ull, 4572799691624197810ull,
+ 14725084827491847180ull, 2475880078570760549ull}},
+ {{2024997971519332565ull, 5715999614530247263ull,
+ 4571297979082645263ull, 3094850098213450687ull}},
+ {{16366305519681329418ull, 2533313499735421174ull,
+ 1102436455425918675ull, 3868562622766813359ull}},
+ {{5617254931373442982ull, 17724222001830495898ull,
+ 7606551812282281027ull, 2417851639229258349ull}},
+ {{16244940701071579536ull, 17543591483860731968ull,
+ 14119875783780239188ull, 3022314549036572936ull}},
+ {{1859431802629922803ull, 3482745281116363345ull,
+ 17649844729725298986ull, 3777893186295716170ull}},
+ {{12691359922712171512ull, 6788401819125114994ull,
+ 15642838974505699770ull, 2361183241434822606ull}},
+ {{6640827866535438582ull, 17708874310761169551ull,
+ 10330176681277348904ull, 2951479051793528258ull}},
+ {{3689348814741910324ull, 3689348814741910323ull,
+ 3689348814741910323ull, 3689348814741910323ull}},
+ {{0ull, 0ull, 0ull, 4611686018427387904ull}},
+ {{0ull, 0ull, 0ull, 2882303761517117440ull}},
+ {{0ull, 0ull, 0ull, 3602879701896396800ull}},
+ {{0ull, 0ull, 0ull, 4503599627370496000ull}},
+ {{0ull, 0ull, 0ull, 2814749767106560000ull}},
+ {{0ull, 0ull, 0ull, 3518437208883200000ull}},
+ {{0ull, 0ull, 0ull, 4398046511104000000ull}},
+ {{0ull, 0ull, 0ull, 2748779069440000000ull}},
+ {{0ull, 0ull, 0ull, 3435973836800000000ull}},
+ {{0ull, 0ull, 0ull, 4294967296000000000ull}},
+ {{0ull, 0ull, 0ull, 2684354560000000000ull}},
+ {{0ull, 0ull, 0ull, 3355443200000000000ull}},
+ {{0ull, 0ull, 0ull, 4194304000000000000ull}},
+ {{0ull, 0ull, 0ull, 2621440000000000000ull}},
+ {{0ull, 0ull, 0ull, 3276800000000000000ull}},
+ {{0ull, 0ull, 0ull, 4096000000000000000ull}},
+ {{0ull, 0ull, 0ull, 2560000000000000000ull}},
+ {{0ull, 0ull, 0ull, 3200000000000000000ull}},
+ {{0ull, 0ull, 0ull, 4000000000000000000ull}},
+ {{0ull, 0ull, 0ull, 2500000000000000000ull}},
+ {{0ull, 0ull, 0ull, 3125000000000000000ull}},
+ {{0ull, 0ull, 0ull, 3906250000000000000ull}},
+ {{0ull, 0ull, 0ull, 2441406250000000000ull}},
+ {{0ull, 0ull, 0ull, 3051757812500000000ull}},
+ {{0ull, 0ull, 0ull, 3814697265625000000ull}},
+ {{0ull, 0ull, 0ull, 2384185791015625000ull}},
+ {{0ull, 0ull, 0ull, 2980232238769531250ull}},
+ {{0ull, 0ull, 9223372036854775808ull, 3725290298461914062ull}},
+ {{0ull, 0ull, 1152921504606846976ull, 2328306436538696289ull}},
+ {{0ull, 0ull, 6052837899185946624ull, 2910383045673370361ull}},
+ {{0ull, 0ull, 12177733392409821184ull, 3637978807091712951ull}},
+ {{0ull, 0ull, 10610480722084888576ull, 4547473508864641189ull}},
+ {{0ull, 0ull, 8937393460516749312ull, 2842170943040400743ull}},
+ {{0ull, 0ull, 6560055807218548736ull, 3552713678800500929ull}},
+ {{0ull, 0ull, 12811755777450573824ull, 4440892098500626161ull}},
+ {{0ull, 0ull, 1089818333265526784ull, 2775557561562891351ull}},
+ {{0ull, 0ull, 15197330971864072192ull, 3469446951953614188ull}},
+ {{0ull, 0ull, 549919641120538624ull, 4336808689942017736ull}},
+ {{0ull, 0ull, 343699775700336640ull, 2710505431213761085ull}},
+ {{0ull, 0ull, 5041310738052808704ull, 3388131789017201356ull}},
+ {{0ull, 0ull, 6301638422566010880ull, 4235164736271501695ull}},
+ {{0ull, 0ull, 10856053041744838656ull, 2646977960169688559ull}},
+ {{0ull, 0ull, 8958380283753660416ull, 3308722450212110699ull}},
+ {{0ull, 0ull, 6586289336264687616ull, 4135903062765138374ull}},
+ {{0ull, 0ull, 17951488890447593472ull, 2584939414228211483ull}},
+ {{0ull, 0ull, 17827675094632103936ull, 3231174267785264354ull}},
+ {{0ull, 0ull, 13061221831435354112ull, 4038967834731580443ull}},
+ {{0ull, 0ull, 5857420635433402368ull, 2524354896707237777ull}},
+ {{0ull, 0ull, 11933461812719140864ull, 3155443620884047221ull}},
+ {{0ull, 0ull, 1081769210616762368ull, 3944304526105059027ull}},
+ {{0ull, 0ull, 16817006821131334144ull, 2465190328815661891ull}},
+ {{0ull, 0ull, 16409572507986779776ull, 3081487911019577364ull}},
+ {{0ull, 0ull, 2065221561273923104ull, 3851859888774471706ull}},
+ {{0ull, 0ull, 5902449494223589844ull, 2407412430484044816ull}},
+ {{0ull, 0ull, 7378061867779487305ull, 3009265538105056020ull}},
+ {{0ull, 4611686018427387904ull, 9222577334724359131ull,
+ 3761581922631320025ull}},
+ {{0ull, 576460752303423488ull, 17293325880271194217ull,
+ 2350988701644575015ull}},
+ {{0ull, 5332261958806667264ull, 17004971331911604867ull,
+ 2938735877055718769ull}},
+ {{0ull, 2053641430080946176ull, 7421156109607342372ull,
+ 3673419846319648462ull}},
+ {{0ull, 2567051787601182720ull, 53073100154402157ull,
+ 4591774807899560578ull}},
+ {{0ull, 3910250376464433152ull, 4644856706023889252ull,
+ 2869859254937225361ull}},
+ {{0ull, 4887812970580541440ull, 10417756900957249469ull,
+ 3587324068671531701ull}},
+ {{0ull, 10721452231653064704ull, 17633882144623949740ull,
+ 4484155085839414626ull}},
+ {{0ull, 15924279681637941248ull, 15632862358817356491ull,
+ 2802596928649634141ull}},
+ {{0ull, 15293663583620038656ull, 5706019893239531902ull,
+ 3503246160812042677ull}},
+ {{0ull, 9893707442670272512ull, 11744210884976802782ull,
+ 4379057701015053346ull}},
+ {{0ull, 1571881133241532416ull, 11951817821537889643ull,
+ 2736911063134408341ull}},
+ {{0ull, 15799909471834079232ull, 1104714221640198341ull,
+ 3421138828918010427ull}},
+ {{0ull, 5914828784510435328ull, 15215950832332411639ull,
+ 4276423536147513033ull}},
+ {{0ull, 10614297017960103936ull, 2592440242566675418ull,
+ 2672764710092195646ull}},
+ {{0ull, 4044499235595354112ull, 12463922340063120081ull,
+ 3340955887615244557ull}},
+ {{0ull, 9667310062921580544ull, 1744844869796736389ull,
+ 4176194859519055697ull}},
+ {{0ull, 8347911798539681792ull, 12619743089691430003ull,
+ 2610121787199409810ull}},
+ {{0ull, 5823203729747214336ull, 6551306825259511696ull,
+ 3262652233999262263ull}},
+ {{0ull, 7279004662184017920ull, 3577447513147001716ull,
+ 4078315292499077829ull}},
+ {{0ull, 13772749950719787008ull, 4541747704930570024ull,
+ 2548947057811923643ull}},
+ {{0ull, 17215937438399733760ull, 1065498612735824626ull,
+ 3186183822264904554ull}},
+ {{0ull, 12296549761144891392ull, 10555245302774556591ull,
+ 3982729777831130692ull}},
+ {{0ull, 14602872628356638976ull, 15820400351088873677ull,
+ 2489206111144456682ull}},
+ {{0ull, 4418532730163635008ull, 10552128402006316289ull,
+ 3111507638930570853ull}},
+ {{0ull, 10134851931131931664ull, 17801846520935283265ull,
+ 3889384548663213566ull}},
+ {{0ull, 17863497503025927050ull, 6514468057157164136ull,
+ 2430865342914508479ull}},
+ {{9223372036854775808ull, 3882627805072857196ull,
+ 3531399053019067267ull, 3038581678643135599ull}},
+ {{11529215046068469760ull, 241598737913683591ull,
+ 18249306871555997796ull, 3798227098303919498ull}},
+ {{14123288431433875456ull, 9374371248050828052ull,
+ 16017502813149886526ull, 2373891936439949686ull}},
+ {{17654110539292344320ull, 2494592023208759257ull,
+ 10798506479582582350ull, 2967364920549937108ull}},
+ {{8232580118833266688ull, 12341612065865724880ull,
+ 13498133099478227937ull, 3709206150687421385ull}},
+ {{5145362574270791680ull, 795978513524996194ull, 1518804159532810605ull,
+ 2318253844179638366ull}},
+ {{15655075254693265408ull, 5606659160333633146ull,
+ 11121877236270789064ull, 2897817305224547957ull}},
+ {{10345472031511805952ull, 7008323950417041433ull, 67288490056322618ull,
+ 3622271631530684947ull}},
+ {{17543526057817145344ull, 17983776974876077599ull,
+ 13919168667852566984ull, 4527839539413356183ull}},
+ {{17882232813776797696ull, 11239860609297548499ull,
+ 15617009445048936221ull, 2829899712133347614ull}},
+ {{17741104998793609216ull, 214767706339771912ull,
+ 10297889769456394469ull, 3537374640166684518ull}},
+ {{3729637174782459904ull, 4880145651352102795ull,
+ 3648990174965717278ull, 4421718300208355648ull}},
+ {{25180225025343488ull, 16885149087377227959ull, 2280618859353573298ull,
+ 2763573937630222280ull}},
+ {{13866533336563843072ull, 11883064322366759140ull,
+ 2850773574191966623ull, 3454467422037777850ull}},
+ {{17333166670704803840ull, 10242144384531061021ull,
+ 12786839004594734087ull, 4318084277547222312ull}},
+ {{13139072178404196352ull, 13318869267972994994ull,
+ 7991774377871708804ull, 2698802673467013945ull}},
+ {{7200468186150469632ull, 16648586584966243743ull,
+ 14601403990767023909ull, 3373503341833767431ull}},
+ {{4388899214260699136ull, 6975675175925640967ull,
+ 13640068970031391983ull, 4216879177292209289ull}},
+ {{9660591036554018816ull, 11277326012594607460ull,
+ 1607514078628538133ull, 2635549485807630806ull}},
+ {{12075738795692523520ull, 261599460461095613ull,
+ 11232764635140448475ull, 3294436857259538507ull}},
+ {{1259615439333490688ull, 14162057380858533229ull,
+ 9429269775498172689ull, 4118046071574423134ull}},
+ {{3093102658797125632ull, 1933756835395501412ull,
+ 1281607591258970027ull, 2573778794734014459ull}},
+ {{3866378323496407040ull, 16252254099526540477ull,
+ 15437067544355876245ull, 3217223493417518073ull}},
+ {{9444658922797896704ull, 6480259569126011884ull,
+ 5461276375162681595ull, 4021529366771897592ull}},
+ {{15126283863603461248ull, 1744319221490063475ull,
+ 3413297734476675997ull, 2513455854232435995ull}},
+ {{14296168811076938656ull, 6792085045289967248ull,
+ 18101680223378008708ull, 3141819817790544993ull}},
+ {{17870211013846173320ull, 8490106306612459060ull,
+ 8792042223940347173ull, 3927274772238181242ull}},
+ {{1945509846799082517ull, 7612159450846480865ull,
+ 10106712408390104887ull, 2454546732648863276ull}},
+ {{7043573326926241051ull, 4903513295130713177ull,
+ 12633390510487631109ull, 3068183415811079095ull}},
+ {{13416152677085189217ull, 10741077637340779375ull,
+ 11180052119682150982ull, 3835229269763848869ull}},
+ {{15302624450819325117ull, 2101487504910599205ull,
+ 9293375584015038316ull, 2397018293602405543ull}},
+ {{5293222508241992684ull, 2626859381138249007ull,
+ 7005033461591409991ull, 2996272867003006929ull}},
+ {{2004842116875102951ull, 17118632281704974971ull,
+ 13367977845416650392ull, 3745341083753758661ull}},
+ {{17393927387542797009ull, 10699145176065609356ull,
+ 10660829162599100447ull, 2340838177346099163ull}},
+ {{3295665160718944645ull, 8762245451654623792ull,
+ 8714350434821487655ull, 2926047721682623954ull}},
+ {{4119581450898680806ull, 6341120796140891836ull,
+ 1669566006672083761ull, 3657559652103279943ull}},
+ {{5149476813623351007ull, 12538087013603502699ull,
+ 15922015563622268413ull, 4571949565129099928ull}},
+ {{912579999300900428ull, 10142147392715883139ull,
+ 9951259727263917758ull, 2857468478205687455ull}},
+ {{14975783054408289246ull, 3454312204040078115ull,
+ 7827388640652509294ull, 3571835597757109319ull}},
+ {{14108042799582973654ull, 13541262291904873452ull,
+ 5172549782388248713ull, 4464794497196386649ull}},
+ {{18040898786594134342ull, 1545759904799464051ull,
+ 14762058660061125206ull, 2790496560747741655ull}},
+ {{17939437464815280023ull, 11155571917854105872ull,
+ 13840887306649018603ull, 3488120700934677069ull}},
+ {{3977552757309548413ull, 9332778878890244437ull,
+ 3466051078029109542ull, 4360150876168346337ull}},
+ {{4791813482532161710ull, 1221300780879014869ull,
+ 13695496969836663224ull, 2725094297605216460ull}},
+ {{10601452871592590042ull, 1526625976098768586ull,
+ 17119371212295829030ull, 3406367872006520575ull}},
+ {{4028444052635961744ull, 11131654506978236541ull,
+ 16787527996942398383ull, 4257959840008150719ull}},
+ {{4823620542111170042ull, 13874813094502479694ull,
+ 17409734025730080845ull, 2661224900005094199ull}},
+ {{15252897714493738360ull, 3508458312845935905ull,
+ 17150481513735213153ull, 3326531125006367749ull}},
+ {{5231064087835009238ull, 8997258909484807786ull,
+ 7603043836886852729ull, 4158163906257959687ull}},
+ {{7881101073324268678ull, 17152501864496474626ull,
+ 11669431425695364811ull, 2598852441411224804ull}},
+ {{628004304800560040ull, 16828941312193205379ull,
+ 14586789282119206014ull, 3248565551764031005ull}},
+ {{14620063436282863761ull, 11812804603386730915ull,
+ 4398428547366843806ull, 4060706939705038757ull}},
+ {{6831696638463095899ull, 2771316858689318918ull,
+ 5054860851317971331ull, 2537941837315649223ull}},
+ {{17762992834933645682ull, 17299204128643812359ull,
+ 1706890045720076259ull, 3172427296644561529ull}},
+ {{17592055025239669198ull, 17012319142377377545ull,
+ 6745298575577483228ull, 3965534120805701911ull}},
+ {{4077505363133711393ull, 1409327427131085158ull,
+ 11133340637377008874ull, 2478458825503563694ull}},
+ {{14320253740771915049ull, 10985031320768632255ull,
+ 4693303759866485284ull, 3098073531879454618ull}},
+ {{13288631157537505907ull, 13731289150960790319ull,
+ 15090001736687882413ull, 3872591914849318272ull}},
+ {{15222923501102023048ull, 10887898728564187901ull,
+ 9431251085429926508ull, 2420369946780823920ull}},
+ {{5193596321095365098ull, 13609873410705234877ull,
+ 11789063856787408135ull, 3025462433476029900ull}},
+ {{11103681419796594277ull, 12400655744954155692ull,
+ 14736329820984260169ull, 3781828041845037375ull}},
+ {{16163172924227647231ull, 832880812955265451ull,
+ 16127735165756244462ull, 2363642526153148359ull}},
+ {{15592280136857171135ull, 10264473053048857622ull,
+ 15547982938767917673ull, 2954553157691435449ull}},
+ {{10266978134216688110ull, 17442277334738459932ull,
+ 5599920618177733379ull, 3693191447114294312ull}},
+ {{15640233370740205877ull, 8595580324997843505ull,
+ 3499950386361083362ull, 2308244654446433945ull}},
+ {{5715233658143093634ull, 1521103369392528574ull,
+ 8986624001378742107ull, 2885305818058042431ull}},
+ {{16367414109533642851ull, 15736437267022824429ull,
+ 6621593983296039729ull, 3606632272572553039ull}},
+ {{6624209581634889851ull, 5835488528496366825ull,
+ 3665306460692661758ull, 4508290340715691299ull}},
+ {{15669346034590275917ull, 17482238385592392977ull,
+ 18431717602428771262ull, 2817681462947307061ull}},
+ {{5751624487955681184ull, 12629425945135715414ull,
+ 9204588947753800366ull, 3522101828684133827ull}},
+ {{16412902646799377288ull, 6563410394564868459ull,
+ 6894050166264862554ull, 4402627285855167284ull}},
+ {{7952221145035916853ull, 8713817515030430691ull,
+ 13532153390770314904ull, 2751642053659479552ull}},
+ {{5328590412867508163ull, 10892271893788038364ull,
+ 16915191738462893630ull, 3439552567074349440ull}},
+ {{6660738016084385203ull, 4391967830380272147ull,
+ 2697245599369065422ull, 4299440708842936801ull}},
+ {{1857118250839046800ull, 16580037949269833804ull,
+ 13214993545674135648ull, 2687150443026835500ull}},
+ {{2321397813548808500ull, 2278303362877740639ull,
+ 16518741932092669561ull, 3358938053783544375ull}},
+ {{16736805322218174337ull, 7459565222024563702ull,
+ 16036741396688449047ull, 4198672567229430469ull}},
+ {{5848817307958971057ull, 11579757291406434170ull,
+ 12328806382143974606ull, 2624170354518394043ull}},
+ {{16534393671803489629ull, 5251324577403266904ull,
+ 10799321959252580354ull, 3280212943147992554ull}},
+ {{2221248016044810420ull, 15787527758608859439ull,
+ 4275780412210949634ull, 4100266178934990693ull}},
+ {{8305809037669088369ull, 14478890867557925053ull,
+ 4978205766845537473ull, 2562666361834369183ull}},
+ {{14993947315513748365ull, 4263555529165242604ull,
+ 1611071190129533938ull, 3203332952292961479ull}},
+ {{295690070682633840ull, 14552816448311329064ull,
+ 15848897042944081134ull, 4004166190366201848ull}},
+ {{184806294176646150ull, 4483824261767192761ull, 9905560651840050709ull,
+ 2502603868978876155ull}},
+ {{4842693886148195591ull, 10216466345636378855ull,
+ 7770264796372675482ull, 3128254836223595194ull}},
+ {{1441681339257856585ull, 3547210895190697761ull, 489458958611068545ull,
+ 3910318545279493993ull}},
+ {{12430265883104630126ull, 13746221855562655860ull,
+ 11835126895200387600ull, 2443949090799683745ull}},
+ {{15537832353880787657ull, 17182777319453319825ull,
+ 958850563718320788ull, 3054936363499604682ull}},
+ {{5587232387068820859ull, 3031727575607098166ull,
+ 10421935241502676794ull, 3818670454374505852ull}},
+ {{17327078297200176749ull, 6506515753181824257ull,
+ 15737081562793948804ull, 2386669033984066157ull}},
+ {{7823789816218057224ull, 8133144691477280322ull,
+ 5836293898210272293ull, 2983336292480082697ull}},
+ {{556365233417795722ull, 14778116882773988307ull,
+ 11907053391190228270ull, 3729170365600103371ull}},
+ {{16488629335381979991ull, 4624637033306354787ull,
+ 5136065360280198717ull, 2330731478500064607ull}},
+ {{15999100650800087084ull, 10392482310060331388ull,
+ 1808395681922860492ull, 2913414348125080759ull}},
+ {{1552131739790557239ull, 12990602887575414236ull,
+ 16095552657685739327ull, 3641767935156350948ull}},
+ {{1940164674738196549ull, 11626567591041879891ull,
+ 1672696748397622543ull, 4552209918945438686ull}},
+ {{17353503986207230507ull, 14184133772042256787ull,
+ 14880493523030677801ull, 2845131199340899178ull}},
+ {{17080193964331650230ull, 3895109159770657272ull,
+ 9377244866933571444ull, 3556413999176123973ull}},
+ {{2903498381705011171ull, 4868886449713321591ull,
+ 16333242102094352209ull, 4445517498970154966ull}},
+ {{8732215516206713838ull, 14572269077139295754ull,
+ 5596590295381582226ull, 2778448436856346854ull}},
+ {{1691897358403616490ull, 8991964309569343885ull,
+ 16219109906081753591ull, 3473060546070433567ull}},
+ {{6726557716431908516ull, 6628269368534291952ull,
+ 15662201364174804085ull, 4341325682588041959ull}},
+ {{4204098572769942823ull, 6448511364547626422ull,
+ 16706404880250334409ull, 2713328551617526224ull}},
+ {{14478495252817204336ull, 12672325224111920931ull,
+ 2436262026603366395ull, 3391660689521907781ull}},
+ {{13486433047594117516ull, 11228720511712513260ull,
+ 7657013551681595898ull, 4239575861902384726ull}},
+ {{17652392691601099256ull, 11629636338247708691ull,
+ 173947451373609532ull, 2649734913688990454ull}},
+ {{17453804846073986166ull, 14537045422809635864ull,
+ 9440806351071787723ull, 3312168642111238067ull}},
+ {{3370511983882931091ull, 13559620760084656927ull,
+ 7189321920412346750ull, 4140210802639047584ull}},
+ {{9024099017567913788ull, 3863076956625522675ull,
+ 4493326200257716719ull, 2587631751649404740ull}},
+ {{6668437753532504331ull, 217160177354515440ull, 5616657750322145899ull,
+ 3234539689561755925ull}},
+ {{8335547191915630413ull, 14106508276975308012ull,
+ 11632508206330070277ull, 4043174611952194906ull}},
+ {{14433089031802044817ull, 11122410682323261459ull,
+ 11882003647383681827ull, 2526984132470121816ull}},
+ {{13429675271325168117ull, 9291327334476688920ull,
+ 14852504559229602284ull, 3158730165587652270ull}},
+ {{16787094089156460146ull, 11614159168095861150ull,
+ 9342258662182227047ull, 3948412706984565338ull}},
+ {{5880247787295399687ull, 14176378507700995075ull,
+ 10450597682291279808ull, 2467757941865353336ull}},
+ {{2738623715691861705ull, 17720473134626243844ull,
+ 13063247102864099760ull, 3084697427331691670ull}},
+ {{3423279644614827131ull, 3703847344573253189ull,
+ 7105686841725348893ull, 3855871784164614588ull}},
+ {{4445392787097960909ull, 4620747599571977195ull,
+ 13664426312933118866ull, 2409919865102884117ull}},
+ {{945054965445063232ull, 14999306536319747302ull,
+ 3245474835884234870ull, 3012399831378605147ull}},
+ {{10404690743661104848ull, 9525761133544908319ull,
+ 17891901600137457300ull, 3765499789223256433ull}},
+ {{13420460742429272386ull, 15176972745320343507ull,
+ 4264909472444828956ull, 2353437368264535271ull}},
+ {{12163889909609202579ull, 524471857940877768ull, 719450822128648292ull,
+ 2941796710330669089ull}},
+ {{15204862387011503223ull, 655589822426097210ull,
+ 5510999546088198269ull, 3677245887913336361ull}},
+ {{9782705946909603221ull, 5431173296460009417ull,
+ 11500435451037635740ull, 4596557359891670451ull}},
+ {{17643406262886971773ull, 12617855347142281693ull,
+ 4881929147684828385ull, 2872848349932294032ull}},
+ {{8219199773326551005ull, 1937261128645688405ull,
+ 6102411434606035482ull, 3591060437415367540ull}},
+ {{14885685735085576660ull, 11644948447661886314ull,
+ 7628014293257544352ull, 4488825546769209425ull}},
+ {{13915239602855873316ull, 7278092779788678946ull,
+ 16296723979354434980ull, 2805515966730755890ull}},
+ {{8170677466715065837ull, 9097615974735848683ull,
+ 11147532937338267917ull, 3506894958413444863ull}},
+ {{5601660814966444393ull, 15983705986847198758ull,
+ 9322730153245446992ull, 4383618698016806079ull}},
+ {{17336096064636191458ull, 9989816241779499223ull,
+ 12744235373419486226ull, 2739761686260503799ull}},
+ {{17058434062367851418ull, 3263898265369598221ull,
+ 11318608198346969879ull, 3424702107825629749ull}},
+ {{7487984522677650560ull, 17914930886994161489ull,
+ 313202192651548636ull, 4280877634782037187ull}},
+ {{16209205372742001360ull, 1973459767516575122ull,
+ 16336652434903075562ull, 2675548521738773241ull}},
+ {{11038134679072725892ull, 11690196746250494711ull,
+ 6585757488346680740ull, 3344435652173466552ull}},
+ {{9185982330413519461ull, 14612745932813118389ull,
+ 8232196860433350925ull, 4180544565216833190ull}},
+ {{8047081965722143615ull, 11438809217221892945ull,
+ 533437019343456424ull, 2612840353260520744ull}},
+ {{14670538475580067423ull, 14298511521527366181ull,
+ 666796274179320530ull, 3266050441575650930ull}},
+ {{4503115039192920567ull, 8649767365054431919ull,
+ 10056867379578926471ull, 4082563051969563662ull}},
+ {{9731975927136657210ull, 12323633630800101805ull,
+ 1673856093809441140ull, 2551601907480977289ull}},
+ {{16776655927348209417ull, 15404542038500127256ull,
+ 6704006135689189329ull, 3189502384351221611ull}},
+ {{2524075835475710155ull, 5420619492842995359ull,
+ 3768321651184098758ull, 3986877980439027014ull}},
+ {{8495076424813400703ull, 17222945238309035811ull,
+ 16190259087272225435ull, 2491798737774391883ull}},
+ {{6007159512589362975ull, 16916995529458906860ull,
+ 15626137840662893890ull, 3114748422217989854ull}},
+ {{7508949390736703718ull, 11922872374968857767ull,
+ 10309300263973841555ull, 3893435527772487318ull}},
+ {{11610622396851521680ull, 5145952225141842152ull,
+ 1831626646556263068ull, 2433397204857804574ull}},
+ {{14513277996064402100ull, 6432440281427302690ull,
+ 11512905345050104643ull, 3041746506072255717ull}},
+ {{8918225458225726817ull, 3428864333356740459ull, 556073626030467092ull,
+ 3802183132590319647ull}},
+ {{3268047902177385309ull, 11366412245202738595ull,
+ 7265075043910123788ull, 2376364457868949779ull}},
+ {{17920117933003895348ull, 14208015306503423243ull,
+ 4469657786460266831ull, 2970455572336187224ull}},
+ {{17788461397827481281ull, 13148333114701891150ull,
+ 5587072233075333539ull, 3713069465420234030ull}},
+ {{6506102355214787897ull, 5911865187474988017ull,
+ 17326978200954247174ull, 2320668415887646268ull}},
+ {{12744313962445872775ull, 16613203521198510829ull,
+ 3211978677483257351ull, 2900835519859557836ull}},
+ {{2095334397775177256ull, 16154818383070750633ull,
+ 4014973346854071689ull, 3626044399824447295ull}},
+ {{7230854015646359474ull, 6358464923556274579ull, 407030665140201708ull,
+ 4532555499780559119ull}},
+ {{2213440750565280719ull, 13197412614077447420ull,
+ 7171923193353707923ull, 2832847187362849449ull}},
+ {{2766800938206600899ull, 11885079749169421371ull,
+ 13576590010119522808ull, 3541058984203561811ull}},
+ {{17293559228040414836ull, 14856349686461776713ull,
+ 12359051494222015606ull, 4426323730254452264ull}},
+ {{3890945489884177417ull, 4673532535611222542ull,
+ 7724407183888759754ull, 2766452331409032665ull}},
+ {{14087053899209997579ull, 15065287706368803985ull,
+ 14267194998288337596ull, 3458065414261290831ull}},
+ {{3773759318730333261ull, 384865559251453366ull,
+ 13222307729433034092ull, 4322581767826613539ull}},
+ {{16193657629488622000ull, 9463913011386934161ull,
+ 5958099321681952355ull, 2701613604891633462ull}},
+ {{6407013981578613788ull, 7218205245806279798ull,
+ 16670996188957216252ull, 3377017006114541827ull}},
+ {{17232139513828043043ull, 9022756557257849747ull,
+ 16227059217769132411ull, 4221271257643177284ull}},
+ {{8464244186928832950ull, 3333379839072462140ull, 918539974250931949ull,
+ 2638294536026985803ull}},
+ {{10580305233661041188ull, 8778410817267965579ull,
+ 14983233023095828648ull, 3297868170033732253ull}},
+ {{8613695523648913581ull, 10973013521584956974ull,
+ 4893983223587622098ull, 4122335212542165317ull}},
+ {{771873683853183084ull, 11469819469417986013ull,
+ 5364582523955957763ull, 2576459507838853323ull}},
+ {{5576528123243866759ull, 9725588318345094612ull,
+ 2094042136517559300ull, 3220574384798566654ull}},
+ {{6970660154054833449ull, 12156985397931368265ull,
+ 11840924707501724933ull, 4025717980998208317ull}},
+ {{15885877642352740666ull, 9903958882920799117ull,
+ 9706420951402272035ull, 2516073738123880198ull}},
+ {{6022288997658762120ull, 7768262585223610993ull,
+ 2909654152398064236ull, 3145092172654850248ull}},
+ {{12139547265500840554ull, 9710328231529513741ull,
+ 3637067690497580295ull, 3931365215818562810ull}},
+ {{9893060050151719298ull, 12986484172347027944ull,
+ 6884853324988375588ull, 2457103259886601756ull}},
+ {{12366325062689649123ull, 16233105215433784930ull,
+ 8606066656235469485ull, 3071379074858252195ull}},
+ {{6234534291507285595ull, 6456323464010067451ull,
+ 6145897301866948953ull, 3839223843572815244ull}},
+ {{1590740922978359545ull, 15564417211074761917ull,
+ 13064557850521618903ull, 2399514902233009527ull}},
+ {{6600112172150337335ull, 14843835495416064492ull,
+ 11719011294724635725ull, 2999393627791261909ull}},
+ {{8250140215187921669ull, 4719736313987916903ull, 813706063123630945ull,
+ 3749242034739077387ull}},
+ {{12073866662133532899ull, 14479050242310917824ull,
+ 16649467353948127004ull, 2343276271711923366ull}},
+ {{15092333327666916124ull, 18098812802888647280ull,
+ 11588462155580382947ull, 2929095339639904208ull}},
+ {{418672585874093539ull, 18011829985183421197ull,
+ 14485577694475478684ull, 3661369174549880260ull}},
+ {{5135026750770004827ull, 4068043407769724880ull,
+ 18106972118094348356ull, 4576711468187350325ull}},
+ {{3209391719231253017ull, 11765899166710853858ull,
+ 13622700583022661674ull, 2860444667617093953ull}},
+ {{13235111685893842080ull, 5484001921533791514ull,
+ 3193317673496163381ull, 3575555834521367442ull}},
+ {{7320517570512526791ull, 11466688420344627297ull,
+ 13215019128724980034ull, 4469444793151709302ull}},
+ {{16104538527638799005ull, 11778366281142779964ull,
+ 3647700937025724617ull, 2793402995719818314ull}},
+ {{1683929085838947140ull, 887899796146311244ull,
+ 13782998208136931580ull, 3491753744649772892ull}},
+ {{2104911357298683925ull, 1109874745182889055ull,
+ 17228747760171164475ull, 4364692180812216115ull}},
+ {{8233098625952759309ull, 16834572780235163323ull,
+ 8462124340893283844ull, 2727932613007635072ull}},
+ {{5679687264013561232ull, 2596471901584402538ull,
+ 10577655426116604806ull, 3409915766259543840ull}},
+ {{16322981116871727348ull, 12468961913835278980ull,
+ 13222069282645756007ull, 4262394707824429800ull}},
+ {{978491161190053785ull, 14710630223788131219ull,
+ 8263793301653597504ull, 2663996692390268625ull}},
+ {{15058172006769730943ull, 18388287779735164023ull,
+ 14941427645494384784ull, 3329995865487835781ull}},
+ {{14211028990034775774ull, 4538615650959403413ull,
+ 4841726501585817269ull, 4162494831859794727ull}},
+ {{11187736127985428811ull, 5142477791063321085ull,
+ 9943608091132217649ull, 2601559269912371704ull}},
+ {{149612104699622302ull, 11039783257256539261ull,
+ 12429510113915272061ull, 3251949087390464630ull}},
+ {{4798701149301915781ull, 18411415089998061980ull,
+ 6313515605539314268ull, 4064936359238080788ull}},
+ {{12222560255168473171ull, 2283762394394012929ull,
+ 13169319290316847226ull, 2540585224523800492ull}},
+ {{1443142263678427752ull, 12078075029847291970ull,
+ 16461649112896059032ull, 3175731530654750615ull}},
+ {{11027299866452810498ull, 15097593787309114962ull,
+ 15965375372692685886ull, 3969664413318438269ull}},
+ {{11503748434960394466ull, 4824310098640808947ull,
+ 12284202617146622631ull, 2481040258324023918ull}},
+ {{9767999525273105178ull, 1418701604873623280ull,
+ 6131881234578502481ull, 3101300322905029898ull}},
+ {{12209999406591381472ull, 6385063024519417004ull,
+ 16888223580077903909ull, 3876625403631287372ull}},
+ {{16854621665974389228ull, 6296507399538329579ull,
+ 1331767700693914135ull, 2422890877269554608ull}},
+ {{16456591064040598631ull, 3258948230995524070ull,
+ 1664709625867392669ull, 3028613596586943260ull}},
+ {{11347366793195972481ull, 8685371307171792992ull,
+ 2080887032334240836ull, 3785766995733679075ull}},
+ {{7092104245747482801ull, 14651729103837146428ull,
+ 17441455459704758186ull, 2366104372333549421ull}},
+ {{8865130307184353501ull, 9091289342941657227ull,
+ 7966761269348784021ull, 2957630465416936777ull}},
+ {{6469726865553053972ull, 15975797697104459438ull,
+ 14570137605113367930ull, 3697038081771170971ull}},
+ {{17878637346252822445ull, 14596559579117675052ull,
+ 6800492993982161004ull, 2310648801106981857ull}},
+ {{3901552609106476440ull, 18245699473897093816ull,
+ 13112302260905089159ull, 2888311001383727321ull}},
+ {{4876940761383095549ull, 18195438323943979366ull,
+ 2555319770849197737ull, 3610388751729659152ull}},
+ {{15319547988583645245ull, 8909239849647810495ull,
+ 3194149713561497172ull, 4512985939662073940ull}},
+ {{16492246520505860134ull, 14791646942884657367ull,
+ 11219715607830711540ull, 2820616212288796212ull}},
+ {{16003622132204937264ull, 42814604896270093ull,
+ 14024644509788389426ull, 3525770265360995265ull}},
+ {{6169469609974007867ull, 9276890292975113425ull,
+ 3695747581953323070ull, 4407212831701244082ull}},
+ {{15385133552302224677ull, 1186370414682057986ull,
+ 6921528257148214823ull, 2754508019813277551ull}},
+ {{10008044903523005038ull, 15318021073634736195ull,
+ 4040224303007880624ull, 3443135024766596939ull}},
+ {{7898370110976368394ull, 700782268333868628ull, 438594360332462877ull,
+ 4303918780958246174ull}},
+ {{14159853356215006054ull, 2743831926922361844ull,
+ 14109179530489953010ull, 2689949238098903858ull}},
+ {{17699816695268757568ull, 12653161945507728113ull,
+ 8413102376257665454ull, 3362436547623629823ull}},
+ {{8289712813803783248ull, 6593080395029884334ull,
+ 5904691951894693914ull, 4203045684529537279ull}},
+ {{569384490199976626ull, 8732361265321065613ull,
+ 10607961497575265552ull, 2626903552830960799ull}},
+ {{5323416631177358686ull, 10915451581651332016ull,
+ 8648265853541694036ull, 3283629441038700999ull}},
+ {{6654270788971698358ull, 13644314477064165020ull,
+ 6198646298499729641ull, 4104536801298376249ull}},
+ {{13382291279962087282ull, 1610167520524021281ull,
+ 15403368982630800786ull, 2565335500811485155ull}},
+ {{2892806044670445390ull, 11236081437509802410ull,
+ 14642525209861113078ull, 3206669376014356444ull}},
+ {{12839379592692832546ull, 4821729760032477204ull,
+ 18303156512326391348ull, 4008336720017945555ull}},
+ {{17247984282287796149ull, 12236953136875074060ull,
+ 9133629810990300640ull, 2505210450011215972ull}},
+ {{3113236279150193570ull, 15296191421093842576ull,
+ 11417037263737875800ull, 3131513062514019965ull}},
+ {{3891545348937741963ull, 673495202657751604ull, 436238524390181039ull,
+ 3914391328142524957ull}},
+ {{11655587879940864535ull, 7338463529302176608ull,
+ 2578492086957557101ull, 2446494580089078098ull}},
+ {{14569484849926080669ull, 13784765430055108664ull,
+ 12446487145551722184ull, 3058118225111347622ull}},
+ {{18211856062407600836ull, 17230956787568885830ull,
+ 6334736895084876922ull, 3822647781389184528ull}},
+ {{6770724020577362618ull, 15381034010657941548ull,
+ 3959210559428048076ull, 2389154863368240330ull}},
+ {{8463405025721703273ull, 779548439612875319ull,
+ 14172385236139835904ull, 2986443579210300412ull}},
+ {{5967570263724741187ull, 974435549516094149ull,
+ 17715481545174794880ull, 3733054474012875515ull}},
+ {{6035574424041657194ull, 609022218447558843ull, 8766332956520552848ull,
+ 2333159046258047197ull}},
+ {{2932782011624683588ull, 761277773059448554ull,
+ 15569602214078078964ull, 2916448807822558996ull}},
+ {{12889349551385630293ull, 951597216324310692ull,
+ 1015258693888047089ull, 3645561009778198746ull}},
+ {{16111686939232037867ull, 5801182538832776269ull,
+ 10492445404214834669ull, 4556951262222748432ull}},
+ {{12375647346233717619ull, 5931582095984179120ull,
+ 6557778377634271668ull, 2848094538889217770ull}},
+ {{15469559182792147023ull, 7414477619980223900ull,
+ 17420595008897615393ull, 3560118173611522212ull}},
+ {{890204904780632163ull, 13879783043402667780ull,
+ 3328999687412467625ull, 4450147717014402766ull}},
+ {{9779750102342670910ull, 1757335374485585506ull,
+ 15915682859914955978ull, 2781342323134001728ull}},
+ {{3001315591073562830ull, 11420041254961757691ull,
+ 1447859501184143356ull, 3476677903917502161ull}},
+ {{17586702544124117249ull, 14275051568702197113ull,
+ 6421510394907567099ull, 4345847379896877701ull}},
+ {{4074160062436491425ull, 6616064221225179244ull,
+ 6319287006030923389ull, 2716154612435548563ull}},
+ {{5092700078045614281ull, 12881766294958861959ull,
+ 3287422739111266332ull, 3395193265544435704ull}},
+ {{1754189079129629947ull, 16102207868698577449ull,
+ 4109278423889082915ull, 4243991581930544630ull}},
+ {{12625583220524488477ull, 7758036908722916953ull,
+ 16403357070212840534ull, 2652494738706590393ull}},
+ {{1946920970373446884ull, 474174099048870384ull, 6669138282483886956ull,
+ 3315618423383237992ull}},
+ {{2433651212966808605ull, 592717623811087980ull, 8336422853104858695ull,
+ 4144523029229047490ull}},
+ {{10744404044959031186ull, 7287977542523011843ull,
+ 9821950301617924588ull, 2590326893268154681ull}},
+ {{8818819037771401079ull, 9109971928153764804ull,
+ 16889123895449793639ull, 3237908616585193351ull}},
+ {{11023523797214251348ull, 6775778891764818101ull,
+ 16499718850884854145ull, 4047385770731491689ull}},
+ {{9195545382472601045ull, 15764076853421481073ull,
+ 3394795254161951984ull, 2529616106707182306ull}},
+ {{16106117746518139210ull, 1258351993067299725ull,
+ 13466866104557215789ull, 3162020133383977882ull}},
+ {{6297589127865510300ull, 6184626009761512561ull,
+ 7610210593841743928ull, 3952525166729972353ull}},
+ {{15465208250984413698ull, 3865391256100945350ull,
+ 16285596667219559715ull, 2470328229206232720ull}},
+ {{10108138276875741314ull, 220053051698793784ull,
+ 1910251760314898028ull, 3087910286507790901ull}},
+ {{12635172846094676643ull, 275066314623492230ull,
+ 6999500718821010439ull, 3859887858134738626ull}},
+ {{3285297010381784998ull, 7089445474280764500ull,
+ 8986373967690519428ull, 2412429911334211641ull}},
+ {{4106621262977231247ull, 8861806842850955625ull,
+ 15844653478040537189ull, 3015537389167764551ull}},
+ {{9744962597148926963ull, 15688944571991082435ull,
+ 15194130829123283582ull, 3769421736459705689ull}},
+ {{3784758614004385400ull, 5193904339067038618ull,
+ 2578802740560970383ull, 2355888585287316056ull}},
+ {{13954320304360257558ull, 1880694405406410368ull,
+ 3223503425701212979ull, 2944860731609145070ull}},
+ {{17442900380450321947ull, 16185926062040176672ull,
+ 13252751318981292031ull, 3681075914511431337ull}},
+ {{3356881401853350818ull, 15620721559122832937ull,
+ 2730881093444451327ull, 4601344893139289172ull}},
+ {{13627265922226814021ull, 16680480002092852441ull,
+ 10930172720257557887ull, 2875840558212055732ull}},
+ {{3199024347501353815ull, 16238913984188677648ull,
+ 13662715900321947359ull, 3594800697765069665ull}},
+ {{3998780434376692268ull, 15686956461808459156ull,
+ 3243336820120270487ull, 4493500872206337082ull}},
+ {{11722609808340208476ull, 16721876816271368828ull,
+ 6638771531002556958ull, 2808438045128960676ull}},
+ {{14653262260425260595ull, 11678973983484435227ull,
+ 8298464413753196198ull, 3510547556411200845ull}},
+ {{13704891807104187839ull, 5375345442500768226ull,
+ 14984766535618883152ull, 4388184445514001056ull}},
+ {{13177243397867505304ull, 3359590901562980141ull,
+ 9365479084761801970ull, 2742615278446250660ull}},
+ {{2636496192052217917ull, 13422860663808500985ull,
+ 11706848855952252462ull, 3428269098057813325ull}},
+ {{7907306258492660301ull, 7555203792905850423ull, 798503014658151866ull,
+ 4285336372572266657ull}},
+ {{11859595439198994544ull, 9333688388993544418ull,
+ 12028279430229814676ull, 2678335232857666660ull}},
+ {{5601122262143967372ull, 11667110486241930523ull,
+ 15035349287787268345ull, 3347919041072083325ull}},
+ {{2389716809252571311ull, 748830052520249442ull, 4959128554451921720ull,
+ 4184898801340104157ull}},
+ {{6105259024210244973ull, 468018782825155901ull, 5405298355746145027ull,
+ 2615561750837565098ull}},
+ {{12243259798690194121ull, 14420081533813608588ull,
+ 15979994981537457091ull, 3269452188546956372ull}},
+ {{15304074748362742651ull, 13413415898839622831ull,
+ 1528249653212269748ull, 4086815235683695466ull}},
+ {{16482575745367796013ull, 17606756973629540077ull,
+ 5566842051685056496ull, 2554259522302309666ull}},
+ {{6768161626427581304ull, 3561702143327373481ull,
+ 16181924601461096429ull, 3192824402877887082ull}},
+ {{13071888051461864534ull, 9063813697586604755ull,
+ 11004033714971594728ull, 3991030503597358853ull}},
+ {{5864087022949971382ull, 5664883560991627972ull,
+ 9183364081070940657ull, 2494394064748349283ull}},
+ {{7330108778687464227ull, 11692790469666922869ull,
+ 6867519082911287917ull, 3117992580935436604ull}},
+ {{13774321991786718188ull, 780930031801489874ull,
+ 8584398853639109897ull, 3897490726169295755ull}},
+ {{13220637263294086772ull, 12017296315944400931ull,
+ 3059406274310749733ull, 2435931703855809847ull}},
+ {{11914110560690220560ull, 1186562339648337452ull,
+ 17659315898170600879ull, 3044914629819762308ull}},
+ {{14892638200862775700ull, 15318260979842585527ull,
+ 3627400799003699482ull, 3806143287274702886ull}},
+ {{16225427903180316669ull, 14185599130829003858ull,
+ 16102183554659475888ull, 2378839554546689303ull}},
+ {{11058412842120620028ull, 17731998913536254823ull,
+ 15516043424896956956ull, 2973549443183361629ull}},
+ {{9211330034223387131ull, 3718254568210766913ull,
+ 5559996225839032484ull, 3716936803979202037ull}},
+ {{17286296317458086717ull, 11547281141986505128ull,
+ 5780840650363089254ull, 2323085502487001273ull}},
+ {{3161126323113056780ull, 5210729390628355603ull,
+ 11837736831381249472ull, 2903856878108751591ull}},
+ {{17786465959173484687ull, 6513411738285444503ull,
+ 10185485020799173936ull, 3629821097635939489ull}},
+ {{17621396430539467955ull, 8141764672856805629ull,
+ 17343542294426355324ull, 4537276372044924361ull}},
+ {{13319215778300861424ull, 14311974957390279326ull,
+ 3922184906375390221ull, 2835797732528077726ull}},
+ {{7425647686021300972ull, 4054910641455685446ull,
+ 14126103169824013585ull, 3544747165660097157ull}},
+ {{58687570671850406ull, 9680324320246994712ull, 3822570906997853269ull,
+ 4430933957075121447ull}},
+ {{36679731669906504ull, 8356045709368065647ull, 9306635844514740149ull,
+ 2769333723171950904ull}},
+ {{13880907719869546842ull, 15056743155137469962ull,
+ 11633294805643425186ull, 3461667153964938630ull}},
+ {{8127762612982157745ull, 9597556907067061645ull,
+ 5318246470199505675ull, 4327083942456173288ull}},
+ {{7385694642327542543ull, 3692630057703219576ull,
+ 3323904043874691047ull, 2704427464035108305ull}},
+ {{9232118302909428178ull, 4101553701636566ull, 8766566073270751713ull,
+ 3380534330043885381ull}},
+ {{2316775841782009414ull, 4616812960554433612ull,
+ 15569893610015827545ull, 4225667912554856726ull}},
+ {{10671356937968531692ull, 14414723146414990767ull,
+ 5119497487832504311ull, 2641042445346785454ull}},
+ {{8727510154033276711ull, 13406717914591350555ull,
+ 15622743896645406197ull, 3301303056683481817ull}},
+ {{6297701674114207985ull, 2923339337957024482ull,
+ 5693371815524594035ull, 4126628820854352272ull}},
+ {{8547749564748767895ull, 17967988150718997965ull,
+ 3558357384702871271ull, 2579143013033970170ull}},
+ {{15296372974363347772ull, 17848299169971359552ull,
+ 13671318767733364897ull, 3223928766292462712ull}},
+ {{673722144244633099ull, 8475315907182035729ull,
+ 17089148459666706122ull, 4029910957865578390ull}},
+ {{11950291386221365447ull, 9908758460416160234ull,
+ 6069031768864303422ull, 2518694348665986494ull}},
+ {{5714492195921931001ull, 3162576038665424485ull,
+ 16809661747935155086ull, 3148367935832483117ull}},
+ {{11754801263329801655ull, 13176592085186556414ull,
+ 7177019129636780145ull, 3935459919790603897ull}},
+ {{2735064771153738131ull, 1317841025600515903ull,
+ 16014852002091457351ull, 2459662449869127435ull}},
+ {{17253889019224336375ull, 15482359337282808590ull,
+ 15406878984186933784ull, 3074578062336409294ull}},
+ {{12343989237175644661ull, 906205097893959122ull,
+ 10035226693378891423ull, 3843222577920511618ull}},
+ {{12326679291662165817ull, 7483907213824806307ull,
+ 10883702701789195043ull, 2402014111200319761ull}},
+ {{10796663096150319367ull, 4743197998853619980ull,
+ 18216314395663881708ull, 3002517639000399701ull}},
+ {{13495828870187899209ull, 5928997498567024975ull,
+ 8935334939297688423ull, 3753147048750499627ull}},
+ {{15352422071508518862ull, 10623152464245472465ull,
+ 3278741327847361312ull, 2345716905469062267ull}},
+ {{5355469534103484865ull, 13278940580306840582ull,
+ 17933484715091365352ull, 2932146131836327833ull}},
+ {{15917708954484131889ull, 16598675725383550727ull,
+ 8581797838582042978ull, 3665182664795409792ull}},
+ {{15285450174677776957ull, 11524972619874662601ull,
+ 10727247298227553723ull, 4581478330994262240ull}},
+ {{2635877331532528743ull, 4897264878207970174ull,
+ 6704529561392221077ull, 2863423956871413900ull}},
+ {{12518218701270436736ull, 10733267116187350621ull,
+ 8380661951740276346ull, 3579279946089267375ull}},
+ {{1812715321305882208ull, 4193211858379412469ull,
+ 5864141421247957529ull, 4474099932611584219ull}},
+ {{3438790085029870332ull, 14149972457555602553ull,
+ 1359245379066279503ull, 2796312457882240137ull}},
+ {{8910173624714725819ull, 13075779553517115287ull,
+ 6310742742260237283ull, 3495390572352800171ull}},
+ {{6526031012466019370ull, 11733038423469006205ull,
+ 3276742409397908700ull, 4369238215441000214ull}},
+ {{6384612392004956058ull, 16556521051522904686ull,
+ 15883022061155856649ull, 2730773884650625133ull}},
+ {{17204137526860970881ull, 6860593259121467145ull,
+ 6018719521162657100ull, 3413467355813281417ull}},
+ {{7670113853294049889ull, 8575741573901833932ull,
+ 12135085419880709279ull, 4266834194766601771ull}},
+ {{14017193195163556989ull, 12277367511329728063ull,
+ 5278585378211749347ull, 2666771371729126107ull}},
+ {{12909805475527058332ull, 10735023370734772175ull,
+ 1986545704337298780ull, 3333464214661407634ull}},
+ {{11525570825981435011ull, 13418779213418465219ull,
+ 11706554167276399283ull, 4166830268326759542ull}},
+ {{4897638757024702930ull, 6080893999172846810ull,
+ 2704910336120361648ull, 2604268917704224714ull}},
+ {{15345420483135654470ull, 7601117498966058512ull,
+ 12604509957005227868ull, 3255336147130280892ull}},
+ {{735031530210016471ull, 9501396873707573141ull,
+ 15755637446256534835ull, 4069170183912851115ull}},
+ {{2765237715594954247ull, 3632530036853539261ull,
+ 7541430394696640320ull, 2543231364945531947ull}},
+ {{8068233162921080712ull, 4540662546066924076ull,
+ 4815101974943412496ull, 3179039206181914934ull}},
+ {{10085291453651350890ull, 5675828182583655095ull,
+ 15242249505534041428ull, 3973799007727393667ull}},
+ {{13220836186173176163ull, 12770764650969560242ull,
+ 7220562931745081940ull, 2483624379829621042ull}},
+ {{7302673195861694395ull, 15963455813711950303ull,
+ 18249075701536128233ull, 3104530474787026302ull}},
+ {{4516655476399730090ull, 6119261711857774167ull,
+ 13587972590065384484ull, 3880663093483782878ull}},
+ {{9740438700390913162ull, 13047910606765884662ull,
+ 3880796850363477398ull, 2425414433427364299ull}},
+ {{2952176338633865645ull, 7086516221602580020ull, 239310044526958844ull,
+ 3031768041784205374ull}},
+ {{3690220423292332056ull, 8858145277003225025ull,
+ 9522509592513474363ull, 3789710052230256717ull}},
+ {{13835602810626177295ull, 3230497788913321688ull,
+ 8257411504534615429ull, 2368568782643910448ull}},
+ {{17294503513282721619ull, 8649808254569040014ull,
+ 10321764380668269286ull, 2960710978304888060ull}},
+ {{12394757354748626215ull, 1588888281356524210ull,
+ 12902205475835336608ull, 3700888722881110075ull}},
+ {{12358409365145279289ull, 993055175847827631ull,
+ 5758035413183391428ull, 2313055451800693797ull}},
+ {{10836325688004211207ull, 1241318969809784539ull,
+ 11809230284906627189ull, 2891319314750867246ull}},
+ {{8933721091577876105ull, 6163334730689618578ull,
+ 5538165819278508178ull, 3614149143438584058ull}},
+ {{1943779327617569323ull, 16927540450216799031ull,
+ 16146079310952911030ull, 4517686429298230072ull}},
+ {{8132391107402062683ull, 5968026762958111490ull,
+ 10091299569345569394ull, 2823554018311393795ull}},
+ {{942116847397802545ull, 16683405490552415171ull,
+ 8002438443254573838ull, 3529442522889242244ull}},
+ {{15012704114529416894ull, 11630884826335743155ull,
+ 10003048054068217298ull, 4411803153611552805ull}},
+ {{7077097062367191607ull, 11880989034887227376ull,
+ 8557748043006329763ull, 2757376971007220503ull}},
+ {{8846371327958989508ull, 10239550275181646316ull,
+ 6085499035330524300ull, 3446721213759025629ull}},
+ {{11057964159948736885ull, 12799437843977057895ull,
+ 12218559812590543279ull, 4308401517198782036ull}},
+ {{13828756627609042409ull, 14917177680126743040ull,
+ 16859971919723865357ull, 2692750948249238772ull}},
+ {{17285945784511303012ull, 4811414044876265088ull,
+ 2628220825945280081ull, 3365938685311548466ull}},
+ {{3160688156929577148ull, 10625953574522719265ull,
+ 12508648069286375909ull, 4207423356639435582ull}},
+ {{13504645144149455478ull, 8947063993290393492ull,
+ 3206219024876597039ull, 2629639597899647239ull}},
+ {{16880806430186819347ull, 6572143973185603961ull,
+ 17842831836377910011ull, 3287049497374559048ull}},
+ {{7265949982451360472ull, 3603493948054617048ull,
+ 3856795721762835898ull, 4108811871718198811ull}},
+ {{4541218739032100295ull, 6863869735961523559ull, 104654316888078484ull,
+ 2568007419823874257ull}},
+ {{1064837405362737465ull, 8579837169951904449ull,
+ 4742503914537486009ull, 3210009274779842821ull}},
+ {{5942732775130809735ull, 15336482480867268465ull,
+ 10539815911599245415ull, 4012511593474803526ull}},
+ {{15243423030525225845ull, 16502830578183124646ull,
+ 1975698926322140480ull, 2507819745921752204ull}},
+ {{9830906751301756498ull, 2181794149019354192ull,
+ 2469623657902675601ull, 3134774682402190255ull}},
+ {{12288633439127195622ull, 7338928704701580644ull,
+ 16922087627660508213ull, 3918468353002737818ull}},
+ {{16903767936309273072ull, 6892673449652181854ull,
+ 15187990785715205537ull, 2449042720626711136ull}},
+ {{11906337883531815532ull, 13227527830492615222ull,
+ 538244408434455305ull, 3061303400783388921ull}},
+ {{5659550317559993606ull, 2699351732833605316ull,
+ 5284491528970457036ull, 3826629250979236151ull}},
+ {{12760590985329771812ull, 10910466869875779130ull,
+ 10220336233247617503ull, 2391643281862022594ull}},
+ {{6727366694807438957ull, 9026397568917336009ull,
+ 3552048254704746071ull, 2989554102327528243ull}},
+ {{13020894386936686600ull, 6671310942719282107ull,
+ 18275118373663096301ull, 3736942627909410303ull}},
+ {{5832215982621735173ull, 6475412348413245269ull,
+ 18339478011180517044ull, 2335589142443381439ull}},
+ {{11901955996704556871ull, 8094265435516556586ull,
+ 18312661495548258401ull, 2919486428054226799ull}},
+ {{5654072959025920280ull, 14729517812823083637ull,
+ 18279140851007935097ull, 3649358035067783499ull}},
+ {{11679277217209788254ull, 4576839210746690834ull,
+ 18237240045332530968ull, 4561697543834729374ull}},
+ {{11911234279183505563ull, 2860524506716681771ull,
+ 6786589009905443951ull, 2851060964896705859ull}},
+ {{10277356830551994050ull, 17410713688678015926ull,
+ 3871550243954417034ull, 3563826206120882324ull}},
+ {{3623324001335216754ull, 12540020073992744100ull,
+ 4839437804943021293ull, 4454782757651102905ull}},
+ {{11487949537689286279ull, 10143355555459159014ull,
+ 14553863674157858068ull, 2784239223531939315ull}},
+ {{5136564885256832041ull, 12679194444323948768ull,
+ 13580643574269934681ull, 3480299029414924144ull}},
+ {{6420706106571040051ull, 2013935000122772248ull,
+ 16975804467837418352ull, 4350373786768655180ull}},
+ {{4012941316606900032ull, 1258709375076732655ull,
+ 1386505755543610662ull, 2718983616730409488ull}},
+ {{404490627331237136ull, 10796758755700691627ull,
+ 1733132194429513327ull, 3398729520913011860ull}},
+ {{14340671339446210132ull, 8884262426198476629ull,
+ 2166415243036891659ull, 4248411901141264825ull}},
+ {{11268762596367575285ull, 3246821007160353941ull,
+ 12883224572966527047ull, 2655257438213290515ull}},
+ {{250895190177305394ull, 17893584314232606139ull,
+ 11492344697780770904ull, 3319071797766613144ull}},
+ {{14148677043003795454ull, 3920236319081206057ull,
+ 14365430872225963631ull, 4148839747208266430ull}},
+ {{1925394124236290303ull, 9367676727066835642ull,
+ 4366708276713839365ull, 2593024842005166519ull}},
+ {{11630114692150138687ull, 16321281927260932456ull,
+ 846699327464911302ull, 3241281052506458149ull}},
+ {{14537643365187673358ull, 11178230372221389762ull,
+ 5670060177758527032ull, 4051601315633072686ull}},
+ {{13697713121669683753ull, 6986393982638368601ull,
+ 17378845666381243107ull, 2532250822270670428ull}},
+ {{3287083346804940979ull, 4121306459870572848ull,
+ 3276813009267002268ull, 3165313527838338036ull}},
+ {{4108854183506176224ull, 5151633074838216060ull,
+ 4096016261583752835ull, 3956641909797922545ull}},
+ {{11791405901546135948ull, 913927662560191085ull,
+ 14089225209558315282ull, 2472901193623701590ull}},
+ {{904199321650506223ull, 10365781615055014665ull,
+ 8388159475093118294ull, 3091126492029626988ull}},
+ {{5741935170490520683ull, 3733854981963992523ull,
+ 10485199343866397868ull, 3863908115037033735ull}},
+ {{1282866472342881475ull, 11557031400582271135ull,
+ 13470778617557580523ull, 2414942571898146084ull}},
+ {{15438641145710765555ull, 9834603232300451014ull,
+ 16838473271946975654ull, 3018678214872682605ull}},
+ {{10074929395283681136ull, 3069882003520787960ull,
+ 7213033534651555856ull, 3773347768590853257ull}},
+ {{6296830872052300710ull, 1918676252200492475ull,
+ 16037361005225692170ull, 2358342355369283285ull}},
+ {{3259352571637987984ull, 11621717352105391402ull,
+ 6211643201249951500ull, 2947927944211604107ull}},
+ {{13297562751402260787ull, 14527146690131739252ull,
+ 3152867983135051471ull, 3684909930264505134ull}},
+ {{16621953439252825984ull, 13547247344237286161ull,
+ 13164457015773590147ull, 4606137412830631417ull}},
+ {{3471191871891934384ull, 6161186580934609899ull,
+ 1310256607217411986ull, 2878835883019144636ull}},
+ {{18174047895147081692ull, 16924855263023038181ull,
+ 1637820759021764982ull, 3598544853773930795ull}},
+ {{8882501813651688403ull, 11932697041924021919ull,
+ 15882334004059369940ull, 4498181067217413493ull}},
+ {{12469092661173387108ull, 16681307688057289507ull,
+ 12232301761750800164ull, 2811363167010883433ull}},
+ {{10974679808039345981ull, 2404890536362060268ull,
+ 1455319146906336494ull, 3514203958763604292ull}},
+ {{13718349760049182476ull, 12229485207307351143ull,
+ 1819148933632920617ull, 4392754948454505365ull}},
+ {{15491497627671820904ull, 725899226926012608ull,
+ 3442811092734269338ull, 2745471842784065853ull}},
+ {{917627960880224514ull, 10130746070512291569ull,
+ 8915199884345224576ull, 3431839803480082316ull}},
+ {{5758720969527668546ull, 12663432588140364461ull,
+ 11143999855431530720ull, 4289799754350102895ull}},
+ {{5905043615168486793ull, 7914645367587727788ull,
+ 13882528937285788556ull, 2681124846468814309ull}},
+ {{7381304518960608492ull, 9893306709484659735ull,
+ 3518103116325071983ull, 3351406058086017887ull}},
+ {{4614944630273372710ull, 7754947368428436765ull,
+ 18232686950688503691ull, 4189257572607522358ull}},
+ {{5190183403134551896ull, 2540999096054079026ull,
+ 6783743325752926903ull, 2618285982879701474ull}},
+ {{15711101290772965678ull, 17011306925349762494ull,
+ 17703051194045934436ull, 3272857478599626842ull}},
+ {{10415504576611431290ull, 2817389582977651502ull,
+ 12905441955702642238ull, 4091071848249533553ull}},
+ {{1898004341954756652ull, 15595926544643195901ull,
+ 1148372194673069542ull, 2556919905155958471ull}},
+ {{6984191445870833719ull, 10271536143949219068ull,
+ 15270523298623500640ull, 3196149881444948088ull}},
+ {{8730239307338542149ull, 12839420179936523835ull,
+ 641410049569824184ull, 3995187351806185111ull}},
+ {{3150556557872894891ull, 8024637612460327397ull,
+ 7318410308622221971ull, 2496992094878865694ull}},
+ {{8549881715768506518ull, 5419110997148021342ull,
+ 18371384922632553272ull, 3121240118598582117ull}},
+ {{1463980107855857339ull, 6773888746435026678ull,
+ 9129173098008527878ull, 3901550148248227647ull}},
+ {{14750045622692074549ull, 18068738521804055385ull,
+ 12623262213896411779ull, 2438468842655142279ull}},
+ {{4602498973082929474ull, 17974237133827681328ull,
+ 11167391748943126820ull, 3048086053318927849ull}},
+ {{5753123716353661843ull, 4021052343575050044ull, 124181630896744814ull,
+ 3810107566648659812ull}},
+ {{12819074359575814460ull, 16348215770016569989ull,
+ 9300985556165241316ull, 2381317229155412382ull}},
+ {{2188784894187604363ull, 1988525638811160871ull,
+ 2402859908351775838ull, 2976646536444265478ull}},
+ {{16571039173016669165ull, 11709029085368726896ull,
+ 12226946922294495605ull, 3720808170555331847ull}},
+ {{10356899483135418228ull, 9623986187569148262ull,
+ 14559370854075141609ull, 2325505106597082404ull}},
+ {{3722752317064496977ull, 16641668752888823232ull,
+ 18199213567593927011ull, 2906881383246353005ull}},
+ {{4653440396330621222ull, 16190399922683641136ull,
+ 8913958904210245052ull, 3633601729057941257ull}},
+ {{5816800495413276527ull, 1791255829644999804ull,
+ 15754134648690194220ull, 4542002161322426571ull}},
+ {{12858872346488073638ull, 10342906930382900685ull,
+ 7540491146217677435ull, 2838751350826516607ull}},
+ {{2238532377827928335ull, 8316947644551237953ull,
+ 4813927914344708890ull, 3548439188533145759ull}},
+ {{7409851490712298322ull, 1172812518834271633ull,
+ 1405723874503498209ull, 4435548985666432199ull}},
+ {{16160372227763656212ull, 12262222870339889530ull,
+ 7796106449205768236ull, 2772218116041520124ull}},
+ {{10977093247849794457ull, 15327778587924861913ull,
+ 9745133061507210295ull, 3465272645051900155ull}},
+ {{18333052578239630975ull, 14548037216478689487ull,
+ 7569730308456624965ull, 4331590806314875194ull}},
+ {{18375686889040851215ull, 11398366269512874881ull,
+ 9342767461212778507ull, 2707244253946796996ull}},
+ {{9134550556018900307ull, 9636271818463705698ull,
+ 11678459326515973134ull, 3384055317433496245ull}},
+ {{2194816158168849576ull, 2821967736224856315ull, 763016102862802706ull,
+ 4230069146791870307ull}},
+ {{17512661163351388649ull, 6375415853567923100ull,
+ 16617786128785109355ull, 2643793216744918941ull}},
+ {{3444082380479684195ull, 3357583798532515972ull,
+ 6937174605699222982ull, 3304741520931148677ull}},
+ {{4305102975599605244ull, 13420351785020420773ull,
+ 13283154275551416631ull, 4130926901163935846ull}},
+ {{4996532368963447229ull, 15305248893278844839ull,
+ 3690285403792247490ull, 2581829313227459904ull}},
+ {{1633979442776921133ull, 9908189079743780241ull,
+ 4612856754740309363ull, 3227286641534324880ull}},
+ {{6654160321898539320ull, 7773550331252337397ull,
+ 5766070943425386704ull, 4034108301917906100ull}},
+ {{6464693210400281027ull, 4858468957032710873ull,
+ 12827166376495642498ull, 2521317688698691312ull}},
+ {{12692552531427739188ull, 15296458233145664399ull,
+ 16033957970619553122ull, 3151647110873364140ull}},
+ {{11254004645857286080ull, 9897200754577304691ull,
+ 1595703389564889787ull, 3939558888591705176ull}},
+ {{4727909894447109848ull, 3879907462397121480ull, 997314618478056117ull,
+ 2462224305369815735ull}},
+ {{5909887368058887310ull, 9461570346423789754ull,
+ 15081701328379733858ull, 3077780381712269668ull}},
+ {{16610731246928384946ull, 2603590896174961384ull,
+ 405382586765115707ull, 3847225477140337086ull}},
+ {{10381707029330240591ull, 17768145374605208529ull,
+ 14088422172010361028ull, 2404515923212710678ull}},
+ {{17588819805090188643ull, 3763437644546959045ull,
+ 8387155678158175478ull, 3005644904015888348ull}},
+ {{8150966701080572092ull, 13927669092538474615ull,
+ 10483944597697719347ull, 3757056130019860435ull}},
+ {{12011883215816439414ull, 6398950173622852682ull,
+ 4246622364347380640ull, 2348160081262412772ull}},
+ {{5791481982915773459ull, 7998687717028565853ull,
+ 5308277955434225800ull, 2935200101578015965ull}},
+ {{11851038497072104727ull, 9998359646285707316ull,
+ 11247033462720170154ull, 3669000126972519956ull}},
+ {{14813798121340130909ull, 3274577521002358337ull,
+ 14058791828400212693ull, 4586250158715649945ull}},
+ {{2341094798196499962ull, 4352453959840167913ull,
+ 1869215865109051077ull, 2866406349197281216ull}},
+ {{7538054516173012857ull, 10052253468227597795ull,
+ 2336519831386313846ull, 3583007936496601520ull}},
+ {{4810882126788878167ull, 3341944798429721436ull,
+ 2920649789232892308ull, 4478759920620751900ull}},
+ {{12230173366097824663ull, 11312087535873351705ull,
+ 11048778155125333500ull, 2799224950387969937ull}},
+ {{1452658652340117116ull, 14140109419841689632ull,
+ 18422658712334054779ull, 3499031187984962421ull}},
+ {{1815823315425146395ull, 13063450756374724136ull,
+ 9193265335135404762ull, 4373788984981203027ull}},
+ {{1134889572140716497ull, 12776342741161590489ull,
+ 3439947825245934024ull, 2733618115613251892ull}},
+ {{6030297983603283525ull, 15970428426451988111ull,
+ 4299934781557417530ull, 3417022644516564865ull}},
+ {{2926186461076716502ull, 10739663496210209331ull,
+ 9986604495374159817ull, 4271278305645706081ull}},
+ {{17969767602668805478ull, 18241504731199850591ull,
+ 17770842855677319645ull, 2669548941028566300ull}},
+ {{17850523484908618944ull, 8966822858717649527ull,
+ 3766809495887097941ull, 3336936176285707876ull}},
+ {{17701468337708385775ull, 15820214591824449813ull,
+ 4708511869858872426ull, 4171170220357134845ull}},
+ {{13369260720281435062ull, 14499320138317669037ull,
+ 5248662927875489218ull, 2606981387723209278ull}},
+ {{2876517845069630115ull, 8900778136042310489ull,
+ 15784200696699137331ull, 3258726734654011597ull}},
+ {{8207333324764425548ull, 6514286651625500207ull,
+ 5895192815591757952ull, 4073408418317514497ull}},
+ {{12047112355618847824ull, 4071429157265937629ull,
+ 15213710555813318480ull, 2545880261448446560ull}},
+ {{1223832389241396067ull, 5089286446582422037ull, 570394121057096484ull,
+ 3182350326810558201ull}},
+ {{6141476504979132988ull, 6361608058228027546ull,
+ 5324678669748758509ull, 3977937908513197751ull}},
+ {{8450108834039346022ull, 6281848045606211168ull,
+ 10245453196234055924ull, 2486211192820748594ull}},
+ {{10562636042549182527ull, 7852310057007763960ull,
+ 3583444458437794097ull, 3107763991025935743ull}},
+ {{13203295053186478159ull, 14427073589687092854ull,
+ 18314363628329406333ull, 3884704988782419678ull}},
+ {{3640373389814160945ull, 11322764002768126986ull,
+ 6834791249278491054ull, 2427940617989012299ull}},
+ {{13773838774122476989ull, 4930082966605382924ull,
+ 3931803043170725914ull, 3034925772486265374ull}},
+ {{17217298467653096237ull, 15385975745111504463ull,
+ 14138125840818183200ull, 3793657215607831717ull}},
+ {{17678340569924267004ull, 9616234840694690289ull,
+ 11142171659725058452ull, 2371035759754894823ull}},
+ {{8262867657123170043ull, 12020293550868362862ull,
+ 9316028556228935161ull, 2963794699693618529ull}},
+ {{1105212534549186746ull, 1190308883303289866ull,
+ 16256721713713556856ull, 3704743374617023161ull}},
+ {{5302443852520629620ull, 743943052064556166ull, 3242922043429891179ull,
+ 2315464609135639476ull}},
+ {{15851426852505562833ull, 14764986870362858919ull,
+ 4053652554287363973ull, 2894330761419549345ull}},
+ {{15202597547204565637ull, 4621175532671409937ull,
+ 9678751711286592871ull, 3617913451774436681ull}},
+ {{5168188878723543335ull, 1164783397411874518ull,
+ 16710125657535628993ull, 4522391814718045851ull}},
+ {{17065176104484378296ull, 12257204669450891333ull,
+ 8137985526746074168ull, 2826494884198778657ull}},
+ {{7496412075323309158ull, 15321505836813614167ull,
+ 14784167926859980614ull, 3533118605248473321ull}},
+ {{4758829075726748544ull, 9928510259162241901ull,
+ 4645151853292812056ull, 4416398256560591652ull}},
+ {{5280111181542911792ull, 6205318911976401188ull,
+ 12126591945162783343ull, 2760248910350369782ull}},
+ {{6600138976928639740ull, 3144962621543113581ull,
+ 5934867894598703371ull, 3450311137937962228ull}},
+ {{12861859739588187579ull, 17766261332211055688ull,
+ 7418584868248379213ull, 4312888922422452785ull}},
+ {{8038662337242617237ull, 13409756341845603757ull,
+ 16165830588723706768ull, 2695555576514032990ull}},
+ {{14660013939980659450ull, 16762195427307004696ull,
+ 10983916199049857652ull, 3369444470642541238ull}},
+ {{18325017424975824312ull, 2506000210424204254ull,
+ 4506523211957546258ull, 4211805588303176548ull}},
+ {{6841449872182502291ull, 6177936149942515563ull,
+ 12039949044328242219ull, 2632378492689485342ull}},
+ {{3940126321800739960ull, 3110734169000756550ull,
+ 5826564268555526966ull, 3290473115861856678ull}},
+ {{14148529939105700758ull, 13111789748105721495ull,
+ 16506577372549184515ull, 4113091394827320847ull}},
+ {{15760360239582144830ull, 5889025583352381982ull,
+ 17234139885484322178ull, 2570682121767075529ull}},
+ {{10477078262622905229ull, 16584654016045253286ull,
+ 7707616801573239010ull, 3213352652208844412ull}},
+ {{3872975791423855729ull, 11507445483201790800ull,
+ 9634521001966548763ull, 4016690815261055515ull}},
+ {{2420609869639909831ull, 4886310417787425298ull,
+ 3715732617015399025ull, 2510431759538159697ull}},
+ {{12249134373904663096ull, 10719574040661669526ull,
+ 9256351789696636685ull, 3138039699422699621ull}},
+ {{6088045930526053062ull, 18011153569254474812ull,
+ 16182125755548183760ull, 3922549624278374526ull}},
+ {{13028400743433558972ull, 11256970980784046757ull,
+ 5502142578790226946ull, 2451593515173984079ull}},
+ {{2450442874009785003ull, 4847841689125282639ull,
+ 2265992205060395779ull, 3064491893967480099ull}},
+ {{16898111647794394965ull, 1448116092979215394ull,
+ 16667548311607658436ull, 3830614867459350123ull}},
+ {{15173005798298884757ull, 10128444594966785429ull,
+ 8111374685541092570ull, 2394134292162093827ull}},
+ {{5131199192591442235ull, 3437183706853705979ull,
+ 5527532338498977809ull, 2992667865202617284ull}},
+ {{1802312972311914889ull, 8908165651994520378ull,
+ 6909415423123722261ull, 3740834831503271605ull}},
+ {{5738131626122334710ull, 7873446541710269188ull,
+ 6624227648666020365ull, 2338021769689544753ull}},
+ {{7172664532652918387ull, 14453494195565224389ull,
+ 12891970579259913360ull, 2922527212111930941ull}},
+ {{13577516684243535888ull, 18066867744456530486ull,
+ 2279905168792727988ull, 3653159015139913677ull}},
+ {{7748523818449644052ull, 4136840606861111492ull,
+ 7461567479418297890ull, 4566448768924892096ull}},
+ {{14066199423385803341ull, 7197211397715582586ull,
+ 4663479674636436181ull, 2854030480578057560ull}},
+ {{8359377242377478368ull, 13608200265571866137ull,
+ 5829349593295545226ull, 3567538100722571950ull}},
+ {{15060907571399235864ull, 7786878295110056863ull,
+ 16510059028474207341ull, 4459422625903214937ull}},
+ {{16330596259765604271ull, 7172641943657479491ull,
+ 3401257865155297732ull, 2787139141189509336ull}},
+ {{15801559306279617434ull, 8965802429571849364ull,
+ 4251572331444122165ull, 3483923926486886670ull}},
+ {{1305205059139970177ull, 15818939055392199610ull,
+ 14537837451159928514ull, 4354904908108608337ull}},
+ {{5427439180389869265ull, 14498522928047512660ull,
+ 2168619379333873465ull, 2721815567567880211ull}},
+ {{6784298975487336581ull, 4288095604777227113ull,
+ 16545832279449505544ull, 3402269459459850263ull}},
+ {{13092059737786558630ull, 5360119505971533891ull,
+ 16070604330884494026ull, 4252836824324812829ull}},
+ {{5876694326902905192ull, 7961760709659596586ull,
+ 12349970716016502718ull, 2658023015203008018ull}},
+ {{16569239945483407298ull, 728828850219719924ull,
+ 6214091358165852590ull, 3322528769003760023ull}},
+ {{2264805858144707506ull, 10134408099629425714ull,
+ 3155928179279927833ull, 4153160961254700029ull}},
+ {{6027189679767830095ull, 17863220108336860831ull,
+ 4278298121263648847ull, 2595725600784187518ull}},
+ {{2922301081282399715ull, 17717339116993688135ull,
+ 14571244688434336867ull, 3244657000980234397ull}},
+ {{17487934406885163356ull, 17534987877814722264ull,
+ 4378997805260757372ull, 4055821251225292997ull}},
+ {{10929959004303227098ull, 1735995386779425607ull,
+ 5042716637501667310ull, 2534888282015808123ull}},
+ {{9050762736951645968ull, 11393366270329057817ull,
+ 1691709778449696233ull, 3168610352519760154ull}},
+ {{15925139439616945364ull, 406649782629158559ull,
+ 11338009259916896100ull, 3960762940649700192ull}},
+ {{16870741177401672709ull, 9477528150997999907ull,
+ 7086255787448060062ull, 2475476837906062620ull}},
+ {{16476740453324702982ull, 2623538151892724076ull,
+ 8857819734310075078ull, 3094346047382578275ull}},
+ {{2149181492946327111ull, 12502794726720680904ull,
+ 6460588649460205943ull, 3867932559228222844ull}},
+ {{1343238433091454444ull, 14731775731841507421ull,
+ 13261239942767404522ull, 2417457849517639277ull}},
+ {{6290734059791705959ull, 9191347627947108468ull,
+ 2741491873177091941ull, 3021822311897049097ull}},
+ {{7863417574739632449ull, 16100870553361273489ull,
+ 8038550859898752830ull, 3777277889871311371ull}},
+ {{16443851030280740041ull, 5451358077423408026ull,
+ 2718251278223026567ull, 2360798681169569607ull}},
+ {{11331441750996149243ull, 2202511578351872129ull,
+ 17232872153060946921ull, 2950998351461962008ull}},
+ {{329244133463022842ull, 7364825491367228066ull, 3094346117616632035ull,
+ 3688747939327452511ull}},
+ {{9634927203683554360ull, 4594345845781647178ull,
+ 17702990702302953756ull, 4610934924159315638ull}},
+ {{10633515520729609379ull, 12094838190468305294ull,
+ 6452683170511958193ull, 2881834327599572274ull}},
+ {{4068522364057235916ull, 1283489682803217906ull,
+ 17289225999994723550ull, 3602292909499465342ull}},
+ {{14309024991926320703ull, 10827734140358798190ull,
+ 12388160463138628629ull, 4502866136874331678ull}},
+ {{4331454601526562535ull, 9073176846937942821ull,
+ 3130914271034254989ull, 2814291335546457299ull}},
+ {{10026004270335591073ull, 15953157077099816430ull,
+ 17748700894074982448ull, 3517864169433071623ull}},
+ {{3309133301064713033ull, 1494702272665218922ull,
+ 17574190099166340157ull, 4397330211791339529ull}},
+ {{6679894331592833550ull, 3240031929629455778ull,
+ 4066339784337880742ull, 2748331382369587206ull}},
+ {{17573239951345817745ull, 13273411948891595530ull,
+ 14306296767277126735ull, 3435414227961984007ull}},
+ {{12743177902327496374ull, 11980078917687106509ull,
+ 13271184940669020515ull, 4294267784952480009ull}},
+ {{10270329198168379186ull, 5181706314340747616ull,
+ 1376961560277055966ull, 2683917365595300006ull}},
+ {{12837911497710473982ull, 15700504929780710328ull,
+ 10944573987201095765ull, 3354896706994125007ull}},
+ {{16047389372138092477ull, 5790573106943724198ull,
+ 9069031465573981803ull, 4193620883742656259ull}},
+ {{5417932339158919894ull, 1313265182626133672ull,
+ 3362301656770044675ull, 2621013052339160162ull}},
+ {{6772415423948649868ull, 15476639533564830802ull,
+ 13426249107817331651ull, 3276266315423950202ull}},
+ {{17688891316790588143ull, 14734113398528650598ull,
+ 7559439347916888756ull, 4095332894279937753ull}},
+ {{6443871054566729685ull, 18432192910935182432ull,
+ 16253864638516525232ull, 2559583058924961095ull}},
+ {{8054838818208412107ull, 4593497064959426424ull,
+ 15705644779718268637ull, 3199478823656201369ull}},
+ {{10068548522760515133ull, 10353557349626670934ull,
+ 5796997919365672084ull, 3999348529570251712ull}},
+ {{1681156808297934054ull, 15694345380371445142ull,
+ 3623123699603545052ull, 2499592830981407320ull}},
+ {{11324818047227193376ull, 1171187651754754811ull,
+ 4528904624504431316ull, 3124491038726759150ull}},
+ {{9544336540606603816ull, 1463984564693443514ull,
+ 14884502817485314953ull, 3905613798408448937ull}},
+ {{10576896356306515289ull, 12444205399001871956ull,
+ 2385285233287239989ull, 2441008624005280586ull}},
+ {{13221120445383144111ull, 1720198693470176233ull,
+ 12204978578463825795ull, 3051260780006600732ull}},
+ {{2691342501446766427ull, 15985306422119884004ull,
+ 15256223223079782243ull, 3814075975008250915ull}},
+ {{10905461100259004825ull, 7684973504611233550ull,
+ 7229296505211169950ull, 2383797484380156822ull}},
+ {{4408454338468980223ull, 382844843909266130ull,
+ 18259992668368738246ull, 2979746855475196027ull}},
+ {{14733939959941001087ull, 9701928091741358470ull,
+ 18213304817033534903ull, 3724683569343995034ull}},
+ {{4597026456535737775ull, 12981234084979430900ull,
+ 15995001529073347218ull, 2327927230839996896ull}},
+ {{5746283070669672219ull, 7003170569369512817ull,
+ 1547007837632132407ull, 2909909038549996121ull}},
+ {{11794539856764478178ull, 4142277193284503117ull,
+ 6545445815467553413ull, 3637386298187495151ull}},
+ {{908116765673434010ull, 9789532510033016801ull, 3570121250907053862ull,
+ 4546732872734368939ull}},
+ {{12096788024614366017ull, 1506771800343247596ull,
+ 18372226846312766328ull, 2841708045458980586ull}},
+ {{15120985030767957521ull, 1883464750429059495ull,
+ 13741911521036182102ull, 3552135056823725733ull}},
+ {{14289545270032558997ull, 11577702974891100177ull,
+ 3342331346013063915ull, 4440168821029657167ull}},
+ {{2013436766129267517ull, 4930221350093243659ull,
+ 9006486118899246803ull, 2775105513143535729ull}},
+ {{16351854012943748108ull, 1551090669189166669ull,
+ 15869793667051446408ull, 3468881891429419661ull}},
+ {{6604759460897521423ull, 1938863336486458337ull,
+ 6002184028532144298ull, 4336102364286774577ull}},
+ {{15657189709129420650ull, 5823475603731424364ull,
+ 15280580063901059946ull, 2710063977679234110ull}},
+ {{1124743062702224196ull, 16502716541519056264ull,
+ 9877353043021549124ull, 3387579972099042638ull}},
+ {{1405928828377780245ull, 2181651603189268714ull,
+ 3123319266922160598ull, 4234474965123803298ull}},
+ {{5490391536163500557ull, 15198590307275456658ull,
+ 6563760560253738277ull, 2646546853202377061ull}},
+ {{16086361457059151504ull, 5163179828812157110ull,
+ 12816386718744560751ull, 3308183566502971326ull}},
+ {{10884579784469163572ull, 1842288767587808484ull,
+ 6797111361575925131ull, 4135229458128714158ull}},
+ {{16026234402148003041ull, 17292331544238237966ull,
+ 18083252656267116918ull, 2584518411330446348ull}},
+ {{10809420965830227993ull, 12392042393443021650ull,
+ 4157321746624344532ull, 3230648014163057936ull}},
+ {{4288404170433009183ull, 15490052991803777063ull,
+ 5196652183280430665ull, 4038310017703822420ull}},
+ {{9597781634161712596ull, 2763754092236278808ull,
+ 12471279651405044974ull, 2523943761064889012ull}},
+ {{11997227042702140744ull, 12678064652150124318ull,
+ 15589099564256306217ull, 3154929701331111265ull}},
+ {{5773161766522900122ull, 2012522759905491686ull,
+ 5651316400038219060ull, 3943662126663889082ull}},
+ {{17443284159358976289ull, 10481198761795708111ull,
+ 8143758768451274816ull, 2464788829164930676ull}},
+ {{17192419180771332457ull, 13101498452244635139ull,
+ 10179698460564093520ull, 3080986036456163345ull}},
+ {{16878837957536777667ull, 16376873065305793924ull,
+ 17336309094132504804ull, 3851232545570204181ull}},
+ {{1325901686605710234ull, 1012173628961345395ull,
+ 13141036193046509455ull, 2407020340981377613ull}},
+ {{15492435163539301504ull, 15100275091483845455ull,
+ 2591237186025973106ull, 3008775426226722017ull}},
+ {{14753857935996738976ull, 9651971827500031011ull,
+ 7850732500959854287ull, 3760969282783402521ull}},
+ {{6915318200784267908ull, 12950011419828601238ull,
+ 16435922859168378689ull, 2350605801739626575ull}},
+ {{17867519787835110693ull, 2352456219503587835ull,
+ 15933217555533085458ull, 2938257252174533219ull}},
+ {{17722713716366500462ull, 12163942311234260602ull,
+ 15304835925988968918ull, 3672821565218166524ull}},
+ {{12930020108603349770ull, 5981555852188049945ull,
+ 684300833776659532ull, 4591026956522708156ull}},
+ {{1163733540236011750ull, 12961844444472307024ull,
+ 9651060057965188015ull, 2869391847826692597ull}},
+ {{1454666925295014688ull, 11590619537162995876ull,
+ 16675511090883872923ull, 3586739809783365746ull}},
+ {{1818333656618768360ull, 9876588403026356941ull,
+ 11621016826750065346ull, 4483424762229207183ull}},
+ {{3442301544600424177ull, 10784553770318860992ull,
+ 14180664544359872697ull, 2802140476393254489ull}},
+ {{4302876930750530221ull, 18092378231325964144ull,
+ 3890772625167677159ull, 3502675595491568112ull}},
+ {{5378596163438162776ull, 18003786770730067276ull,
+ 4863465781459596449ull, 4378344494364460140ull}},
+ {{12584994639003627543ull, 4334837704065210191ull,
+ 12263038150267023589ull, 2736465308977787587ull}},
+ {{11119557280327146525ull, 10030233148508900643ull,
+ 10717111669406391582ull, 3420581636222234484ull}},
+ {{9287760581981545252ull, 3314419398781349996ull,
+ 13396389586757989478ull, 4275727045277793105ull}},
+ {{15028222400593241591ull, 15906570179520507459ull,
+ 1455214464082661567ull, 2672329403298620691ull}},
+ {{14173591982314164084ull, 15271526705973246420ull,
+ 15654076135385490671ull, 3340411754123275863ull}},
+ {{17716989977892705105ull, 14477722364039170121ull,
+ 14955909150804475435ull, 4175514692654094829ull}},
+ {{4155589708541858835ull, 6742733468310787374ull,
+ 11653286228466491099ull, 2609696682908809268ull}},
+ {{14417859172532099352ull, 3816730816961096313ull,
+ 14566607785583113874ull, 3262120853636011585ull}},
+ {{4187265910382960477ull, 13994285558056146200ull,
+ 4373201676696728630ull, 4077651067045014482ull}},
+ {{2617041193989350299ull, 4134742455357703471ull,
+ 7344937066362843298ull, 2548531916903134051ull}},
+ {{17106359547768851585ull, 14391800106051905146ull,
+ 4569485314526166218ull, 3185664896128917564ull}},
+ {{12159577397856288673ull, 8766378095710105625ull,
+ 5711856643157707773ull, 3982081120161146955ull}},
+ {{682206846019098565ull, 7784829319032509968ull, 1264067392759873406ull,
+ 2488800700100716847ull}},
+ {{852758557523873206ull, 507664611935861652ull, 15415142296232005470ull,
+ 3111000875125896058ull}},
+ {{1065948196904841508ull, 9857952801774602873ull,
+ 10045555833435231029ull, 3888751093907370073ull}},
+ {{12195432669133995702ull, 8467063510322820747ull,
+ 17807687441965489153ull, 2430469433692106295ull}},
+ {{10632604817990106724ull, 15195515406330913838ull,
+ 17647923284029473537ull, 3038086792115132869ull}},
+ {{4067383985632857597ull, 5159336202631478586ull,
+ 8224846049754678210ull, 3797608490143916087ull}},
+ {{7153801009447923902ull, 7836271145072062020ull,
+ 12058057808737755737ull, 2373505306339947554ull}},
+ {{8942251261809904878ull, 14407024949767465429ull,
+ 5849200224067418863ull, 2966881632924934443ull}},
+ {{15789500095689769001ull, 13397095168781943882ull,
+ 2699814261656885675ull, 3708602041156168054ull}},
+ {{14480123578233493530ull, 6067341471275020974ull,
+ 15522441968817717259ull, 2317876275722605033ull}},
+ {{8876782435937091104ull, 2972490820666388314ull,
+ 5567994405739982862ull, 2897345344653256292ull}},
+ {{1872606008066588072ull, 12938985562687761201ull,
+ 6959993007174978577ull, 3621681680816570365ull}},
+ {{6952443528510622994ull, 2338673898077537789ull,
+ 13311677277396111126ull, 4527102101020712956ull}},
+ {{6651120214532833323ull, 15296729241580624830ull,
+ 17543170335227345261ull, 2829438813137945597ull}},
+ {{17537272305020817462ull, 5285853496693617325ull,
+ 8093904863752017865ull, 3536798516422431997ull}},
+ {{8086532325993858115ull, 11219002889294409561ull,
+ 14729067098117410235ull, 4420998145528039996ull}},
+ {{16583297749814631082ull, 4706033796595312023ull,
+ 18429038973178157205ull, 2763123840955024997ull}},
+ {{16117436168840900949ull, 10494228264171527933ull,
+ 9201240661190532794ull, 3453904801193781247ull}},
+ {{6311737155768962474ull, 3894413293359634109ull,
+ 6889864808060778089ull, 4317381001492226559ull}},
+ {{6250678731569295498ull, 13963223354418241078ull,
+ 11223694532679068161ull, 2698363125932641599ull}},
+ {{17036720451316395181ull, 3618971137740637635ull,
+ 9417932147421447298ull, 3372953907415801999ull}},
+ {{16684214545718106072ull, 13747085959030572852ull,
+ 7160729165849421218ull, 4216192384269752499ull}},
+ {{1204262054219040487ull, 13203614742821495937ull,
+ 2169612719442194309ull, 2635120240168595312ull}},
+ {{6117013586201188513ull, 2669460373244706209ull,
+ 2712015899302742887ull, 3293900300210744140ull}},
+ {{12257953001178873545ull, 17171883521838046473ull,
+ 3390019874128428608ull, 4117375375263430175ull}},
+ {{743691598095714110ull, 10732427201148779046ull,
+ 9036291448971349736ull, 2573359609539643859ull}},
+ {{10152986534474418445ull, 13415534001435973807ull,
+ 6683678292786799266ull, 3216699511924554824ull}},
+ {{8079547149665635152ull, 7546045464940191451ull,
+ 8354597865983499083ull, 4020874389905693530ull}},
+ {{2743873959327328018ull, 2410435406373925705ull,
+ 9833309684667074831ull, 2513046493691058456ull}},
+ {{8041528467586547927ull, 16848102313249570843ull,
+ 12291637105833843538ull, 3141308117113823070ull}},
+ {{5440224566055797004ull, 11836755854707187746ull,
+ 6141174345437528615ull, 3926635146392278838ull}},
+ {{8011826372212261032ull, 14315501436833074197ull,
+ 17673292021180619096ull, 2454146966495174273ull}},
+ {{14626468983692714194ull, 17894376796041342746ull,
+ 8256556971193610158ull, 3067683708118967842ull}},
+ {{9059714192761116934ull, 13144598958196902625ull,
+ 1097324177137236890ull, 3834604635148709803ull}},
+ {{17191536416544167844ull, 12827060367300452044ull,
+ 16826728675206630720ull, 2396627896967943626ull}},
+ {{3042676446970658189ull, 16033825459125565056ull,
+ 11810038807153512592ull, 2995784871209929533ull}},
+ {{3803345558713322736ull, 1595537750197404704ull, 927490453659727029ull,
+ 3744731089012411917ull}},
+ {{2377090974195826710ull, 3303054103087071892ull,
+ 2885524542751023345ull, 2340456930632757448ull}},
+ {{2971363717744783387ull, 8740503647286227769ull,
+ 3606905678438779181ull, 2925571163290946810ull}},
+ {{8325890665608367138ull, 15537315577535172615ull,
+ 13732004134903249784ull, 3656963954113683512ull}},
+ {{5795677313583071019ull, 974900398209414153ull,
+ 17165005168629062231ull, 4571204942642104390ull}},
+ {{15151513367057889147ull, 7526841776521965701ull,
+ 6116442211965775990ull, 2857003089151315244ull}},
+ {{5104333653540197721ull, 185180183797681319ull, 7645552764957219988ull,
+ 3571253861439144055ull}},
+ {{1768731048497859248ull, 231475229747101649ull, 4945254937769137081ull,
+ 4464067326798930069ull}},
+ {{12634671951379631790ull, 11673887064660408290ull,
+ 5396627345319404627ull, 2790042079249331293ull}},
+ {{6569967902369763929ull, 9980672812398122459ull,
+ 11357470200076643688ull, 3487552599061664116ull}},
+ {{3600773859534817007ull, 12475841015497653074ull,
+ 14196837750095804610ull, 4359440748827080145ull}},
+ {{6862169680636648534ull, 12409086653113421075ull,
+ 1955494566168796025ull, 2724650468016925091ull}},
+ {{3966026082368422763ull, 1676300261109612632ull,
+ 16279426262993158744ull, 3405813085021156363ull}},
+ {{4957532602960528454ull, 2095375326387015790ull,
+ 15737596810314060526ull, 4257266356276445454ull}},
+ {{16933515932132493996ull, 15144667634274048580ull,
+ 5224311988018899924ull, 2660791472672778409ull}},
+ {{2720150841456065879ull, 484090469133009110ull,
+ 11142076003451012810ull, 3325989340840973011ull}},
+ {{12623560588674858156ull, 9828485123271037195ull,
+ 9315908985886378108ull, 4157486676051216264ull}},
+ {{5583882358708092396ull, 15366175238899174055ull,
+ 5822443116178986317ull, 2598429172532010165ull}},
+ {{2368166929957727591ull, 5372660993341803857ull,
+ 11889739913651120801ull, 3248036465665012706ull}},
+ {{7571894680874547392ull, 11327512260104642725ull,
+ 5638802855209125193ull, 4060045582081265883ull}},
+ {{7038277184760286072ull, 162166134924319847ull, 1218408775292009294ull,
+ 2537528488800791177ull}},
+ {{4186160462522969686ull, 9426079705510175617ull,
+ 6134696987542399521ull, 3171910611000988971ull}},
+ {{9844386596581100012ull, 16394285650315107425ull,
+ 3056685216000611497ull, 3964888263751236214ull}},
+ {{17681956668931657268ull, 3328899503805860284ull,
+ 15745486315282545898ull, 2478055164844522633ull}},
+ {{3655701762455019968ull, 13384496416612101164ull,
+ 5846799838821018660ull, 3097568956055653292ull}},
+ {{4569627203068774960ull, 16730620520765126455ull,
+ 7308499798526273325ull, 3871961195069566615ull}},
+ {{9773546029559066206ull, 12762480834691897986ull,
+ 11485341401720002684ull, 2419975746918479134ull}},
+ {{2993560500094056950ull, 15953101043364872483ull,
+ 5133304715295227547ull, 3024969683648098918ull}},
+ {{17577008680399734899ull, 15329690285778702699ull,
+ 15640002930973810242ull, 3781212104560123647ull}},
+ {{8679787416036140360ull, 14192742447039077091ull,
+ 16692530859499713257ull, 2363257565350077279ull}},
+ {{6238048251617787546ull, 3905870003516682652ull,
+ 16253977555947253668ull, 2954071956687596599ull}},
+ {{7797560314522234432ull, 4882337504395853315ull,
+ 15705785926506679181ull, 3692589945859495749ull}},
+ {{2567632187362702568ull, 5357303949461102274ull,
+ 12121959213280368440ull, 2307868716162184843ull}},
+ {{12432912271058154018ull, 6696629936826377842ull,
+ 10540762998173072646ull, 2884835895202731054ull}},
+ {{6317768301967916715ull, 17594159457887748111ull,
+ 3952581710861564999ull, 3606044869003413818ull}},
+ {{3285524359032507990ull, 17381013303932297235ull,
+ 14164099175431732057ull, 4507556086254267272ull}},
+ {{18194353788891175158ull, 3945604287316603915ull,
+ 8852561984644832536ull, 2817222553908917045ull}},
+ {{18131256217686581043ull, 4932005359145754894ull,
+ 15677388499233428574ull, 3521528192386146306ull}},
+ {{13440698235253450496ull, 15388378735786969426ull,
+ 10373363587187009909ull, 4401910240482682883ull}},
+ {{13012122415460794464ull, 11923579719080549843ull,
+ 4177509232778187241ull, 2751193900301676802ull}},
+ {{11653467000898605176ull, 1069416593568523592ull,
+ 14445258577827509860ull, 3438992375377096002ull}},
+ {{14566833751123256470ull, 1336770741960654490ull,
+ 8833201185429611517ull, 4298740469221370003ull}},
+ {{13715957112879423198ull, 3141324722939103008ull,
+ 3214907731679813246ull, 2686712793263356252ull}},
+ {{17144946391099278997ull, 13150027940528654568ull,
+ 4018634664599766557ull, 3358390991579195315ull}},
+ {{2984438915164547130ull, 2602476870378654499ull, 411607312322320293ull,
+ 4197988739473994144ull}},
+ {{18006175386473699620ull, 3932391053200353013ull,
+ 257254570201450183ull, 2623742962171246340ull}},
+ {{8672661177809960813ull, 303802798073053363ull, 321568212751812729ull,
+ 3279678702714057925ull}},
+ {{6229140453835063113ull, 4991439516018704608ull,
+ 5013646284367153815ull, 4099598378392572406ull}},
+ {{3893212783646914446ull, 10037178725152772236ull,
+ 16968586983011634846ull, 2562248986495357753ull}},
+ {{4866515979558643057ull, 3323101369586189487ull,
+ 7375675673482379846ull, 3202811233119197192ull}},
+ {{1471458956020915917ull, 13377248748837512667ull,
+ 9219594591852974807ull, 4003514041398996490ull}},
+ {{17060562912008930112ull, 15278309495664527272ull,
+ 10373932638335497158ull, 2502196275874372806ull}},
+ {{2878959566301611024ull, 9874514832725883283ull,
+ 3744043761064595640ull, 3127745344842966008ull}},
+ {{17433757513159177492ull, 12343143540907354103ull,
+ 4680054701330744550ull, 3909681681053707510ull}},
+ {{17813627473365567789ull, 3102778694639708410ull,
+ 16760092243613879056ull, 2443551050658567193ull}},
+ {{13043662304852183928ull, 3878473368299635513ull,
+ 7115057249235185108ull, 3054438813323208992ull}},
+ {{2469519825783066198ull, 4848091710374544392ull,
+ 8893821561543981385ull, 3818048516654011240ull}},
+ {{1543449891114416374ull, 14559272365052560005ull,
+ 5558638475964988365ull, 2386280322908757025ull}},
+ {{6540998382320408371ull, 4364032401033536294ull,
+ 11559984113383623361ull, 2982850403635946281ull}},
+ {{17399620014755286272ull, 10066726519719308271ull,
+ 614922086447365489ull, 3728563004544932852ull}},
+ {{17792291536863135776ull, 17820919120893037429ull,
+ 9607698340884379238ull, 2330351877840583032ull}},
+ {{8405306365796756008ull, 13052776864261520979ull,
+ 12009622926105474048ull, 2912939847300728790ull}},
+ {{5894946938818557106ull, 16315971080326901224ull,
+ 5788656620777066752ull, 3641174809125910988ull}},
+ {{7368683673523196382ull, 1948219776699074914ull,
+ 7235820775971333441ull, 4551468511407388735ull}},
+ {{9217113314379385643ull, 12746852406505391581ull,
+ 11439917012623165256ull, 2844667819629617959ull}},
+ {{16133077661401619958ull, 15933565508131739476ull,
+ 9688210247351568666ull, 3555834774537022449ull}},
+ {{1719603003042473331ull, 10693584848309898538ull,
+ 16721948827616848737ull, 4444793468171278061ull}},
+ {{5686437895328933736ull, 18212705576262156346ull,
+ 12757061026474224412ull, 2777995917607048788ull}},
+ {{16331419406015942978ull, 4319137896618143816ull,
+ 15946326283092780516ull, 3472494897008810985ull}},
+ {{1967530183810377106ull, 5398922370772679771ull,
+ 6097849798583811933ull, 4340618621261013732ull}},
+ {{17370607429377343356ull, 5680169490946618808ull,
+ 13034528160969658266ull, 2712886638288133582ull}},
+ {{3266515213012127578ull, 16323583900538049319ull,
+ 7069788164357297024ull, 3391108297860166978ull}},
+ {{17918202071547323185ull, 1957735801963010032ull,
+ 18060607242301397089ull, 4238885372325208722ull}},
+ {{11198876294717076991ull, 12752799922295351030ull,
+ 15899565544865761084ull, 2649303357703255451ull}},
+ {{4775223331541570430ull, 15940999902869188788ull,
+ 15262770912654813451ull, 3311629197129069314ull}},
+ {{5969029164426963038ull, 15314563860159098081ull,
+ 9855091603963741006ull, 4139536496411336643ull}},
+ {{15259858273835321659ull, 4959916394172048396ull,
+ 3853589243263644177ull, 2587210310257085402ull}},
+ {{628078768584600457ull, 10811581511142448400ull,
+ 14040358590934331029ull, 3234012887821356752ull}},
+ {{785098460730750572ull, 18126162907355448404ull,
+ 17550448238667913786ull, 4042516109776695940ull}},
+ {{9714058574811494915ull, 15940537835524543156ull,
+ 1745658112312670308ull, 2526572568610434963ull}},
+ {{12142573218514368644ull, 1478928220696127329ull,
+ 16017130695673001598ull, 3158215710763043703ull}},
+ {{1343158467860797093ull, 11072032312724934970ull,
+ 15409727351163864093ull, 3947769638453804629ull}},
+ {{5451160060840386087ull, 9225863204666778308ull,
+ 11936922603691109010ull, 2467356024033627893ull}},
+ {{6813950076050482609ull, 2308956968978697077ull,
+ 1086095199331722551ull, 3084195030042034867ull}},
+ {{13129123613490491165ull, 16721254266505535058ull,
+ 15192677054446816900ull, 3855243787552543583ull}},
+ {{12817388276858944882ull, 1227411879711183603ull,
+ 16412952186670342419ull, 2409527367220339739ull}},
+ {{11410049327646293199ull, 15369322904921143216ull,
+ 15904504214910540119ull, 3011909209025424674ull}},
+ {{14262561659557866498ull, 14599967612724041116ull,
+ 10657258231783399341ull, 3764886511281780843ull}},
+ {{18137473074078442370ull, 11430822767166219649ull,
+ 4354943385650930636ull, 2353054069551113027ull}},
+ {{8836783287315889250ull, 14288528458957774562ull,
+ 831993213636275391ull, 2941317586938891284ull}},
+ {{1822607072290085754ull, 13248974555269830299ull,
+ 1039991517045344239ull, 3676646983673614105ull}},
+ {{16113316895644770905ull, 11949532175659899969ull,
+ 5911675414734068203ull, 4595808729592017631ull}},
+ {{3153294032136899960ull, 5162614600573743529ull,
+ 10612326161849874483ull, 2872380455995011019ull}},
+ {{8553303558598512854ull, 1841582232289791507ull,
+ 8653721683884955200ull, 3590475569993763774ull}},
+ {{6079943429820753163ull, 2301977790362239384ull,
+ 1593780068001418192ull, 4488094462492204718ull}},
+ {{3799964643637970727ull, 1438736118976399615ull,
+ 14831170597783050082ull, 2805059039057627948ull}},
+ {{138269786120075505ull, 11021792185575275327ull, 92219173519260986ull,
+ 3506323798822034936ull}},
+ {{14007895287932258093ull, 4553868195114318350ull,
+ 115273966899076233ull, 4382904748527543670ull}},
+ {{4143248536530273404ull, 14375382668014918729ull,
+ 13907104284594086357ull, 2739315467829714793ull}},
+ {{9790746689090229659ull, 4134170279736484699ull,
+ 3548822300460444235ull, 3424144334787143492ull}},
+ {{7626747342935399170ull, 556026831243217970ull, 4436027875575555294ull,
+ 4280180418483929365ull}},
+ {{9378403107762012385ull, 14182574824809174943ull,
+ 5078360431448416010ull, 2675112761552455853ull}},
+ {{7111317866275127577ull, 8504846494156692871ull,
+ 10959636557737907917ull, 3343890951940569816ull}},
+ {{4277461314416521568ull, 15242744136123253993ull,
+ 13699545697172384896ull, 4179863689925712270ull}},
+ {{14202628367578795740ull, 9526715085077033745ull,
+ 3950530042305352656ull, 2612414806203570169ull}},
+ {{3918227404191330963ull, 11908393856346292182ull,
+ 9549848571309078724ull, 3265518507754462711ull}},
+ {{14121156292093939511ull, 14885492320432865227ull,
+ 7325624695708960501ull, 4081898134693078389ull}},
+ {{6519879673345018243ull, 11609275709484234719ull,
+ 6884358444031794265ull, 2551186334183173993ull}},
+ {{3538163573253884899ull, 676536581573129687ull,
+ 13217134073467130736ull, 3188982917728967491ull}},
+ {{18257762521849519836ull, 845670726966412108ull,
+ 11909731573406525516ull, 3986228647161209364ull}},
+ {{2187729539301174090ull, 9751916241208783376ull,
+ 16666954270233854255ull, 2491392904475755852ull}},
+ {{2734661924126467612ull, 7578209283083591316ull,
+ 2386948764082766203ull, 3114241130594694816ull}},
+ {{3418327405158084515ull, 4861075585427101241ull,
+ 2983685955103457754ull, 3892801413243368520ull}},
+ {{13665669674292272582ull, 7649858259319326179ull,
+ 1864803721939661096ull, 2433000883277105325ull}},
+ {{12470401074437952823ull, 9562322824149157724ull,
+ 6942690670851964274ull, 3041251104096381656ull}},
+ {{15588001343047441029ull, 2729531493331671347ull,
+ 8678363338564955343ull, 3801563880120477070ull}},
+ {{7436657830190956691ull, 8623486210973376448ull, 812291068175709185ull,
+ 2375977425075298169ull}},
+ {{9295822287738695864ull, 15391043782144108464ull,
+ 5627049853647024385ull, 2969971781344122711ull}},
+ {{11619777859673369830ull, 5403746672397971868ull,
+ 2422126298631392578ull, 3712464726680153389ull}},
+ {{16485733199150631952ull, 7989027688676120321ull,
+ 3819671945858314313ull, 2320290454175095868ull}},
+ {{6772108443656126228ull, 14597970629272538306ull,
+ 4774589932322892891ull, 2900363067718869835ull}},
+ {{17688507591424933593ull, 13635777268163284978ull,
+ 1356551396976228210ull, 3625453834648587294ull}},
+ {{12887262452426391183ull, 7821349548349330415ull,
+ 10919061283075061071ull, 4531817293310734117ull}},
+ {{14972068060407576345ull, 11805872495359413365ull,
+ 9130256311135607121ull, 2832385808319208823ull}},
+ {{4880027020227306720ull, 922282563917102995ull, 6801134370492120998ull,
+ 3540482260399011029ull}},
+ {{1488347756856745495ull, 10376225241751154552ull,
+ 13113103981542539151ull, 4425602825498763786ull}},
+ {{930217348035465935ull, 13402669803735553451ull,
+ 12807376006891474873ull, 2766001765936727366ull}},
+ {{14997829740326496130ull, 2918279199387278101ull,
+ 6785847971759567784ull, 3457502207420909208ull}},
+ {{4912229120125956451ull, 3647848999234097627ull,
+ 8482309964699459730ull, 4321877759276136510ull}},
+ {{764300190865028830ull, 6891591642948698921ull, 689757709509774427ull,
+ 2701173599547585319ull}},
+ {{5567061257008673941ull, 4002803535258485747ull,
+ 14697255192169381746ull, 3376466999434481648ull}},
+ {{2347140552833454522ull, 14226876455927882992ull,
+ 18371568990211727182ull, 4220583749293102060ull}},
+ {{1466962845520909077ull, 4280111766527538966ull,
+ 2258858582027553681ull, 2637864843308188788ull}},
+ {{11057075593755912154ull, 9961825726586811611ull,
+ 2823573227534442101ull, 3297331054135235985ull}},
+ {{9209658473767502288ull, 17063968176660902418ull,
+ 8141152552845440530ull, 4121663817669044981ull}},
+ {{10367722564532076834ull, 15276666128840451915ull,
+ 7394063354742094283ull, 2576039886043153113ull}},
+ {{8347967187237708139ull, 14484146642623176990ull,
+ 13854265211855005758ull, 3220049857553941391ull}},
+ {{1211586947192359365ull, 8881811266424195430ull,
+ 12706145496391369294ull, 4025062321942426739ull}},
+ {{14592299897277388315ull, 939446023087734239ull,
+ 5635497926030911857ull, 2515663951214016712ull}},
+ {{13628688853169347490ull, 5785993547287055703ull,
+ 7044372407538639821ull, 3144579939017520890ull}},
+ {{12424175048034296459ull, 11844177952536207533ull,
+ 18028837546278075584ull, 3930724923771901112ull}},
+ {{10070952414235129239ull, 7402611220335129708ull,
+ 11268023466423797240ull, 2456703077357438195ull}},
+ {{12588690517793911548ull, 9253264025418912135ull,
+ 9473343314602358646ull, 3070878846696797744ull}},
+ {{11124177128815001531ull, 2343207994918864361ull,
+ 11841679143252948308ull, 3838598558370997180ull}},
+ {{35081677868294101ull, 10687877033679066034ull,
+ 16624421501387868500ull, 2399124098981873237ull}},
+ {{9267224134190143434ull, 13359846292098832542ull,
+ 6945468821452671913ull, 2998905123727341547ull}},
+ {{2360658130882903485ull, 2864749809841376966ull,
+ 4070150008388451988ull, 3748631404659176934ull}},
+ {{15310469387083978390ull, 11013840668005636411ull,
+ 16378901810524946204ull, 2342894627911985583ull}},
+ {{14526400715427585084ull, 13767300835007045514ull,
+ 15861941244728794851ull, 2928618284889981979ull}},
+ {{8934628857429705547ull, 12597440025331418989ull,
+ 15215740537483605660ull, 3660772856112477474ull}},
+ {{15779972090214519837ull, 15746800031664273736ull,
+ 9796303634999731267ull, 4575966070140596843ull}},
+ {{9862482556384074898ull, 7535907010576477133ull,
+ 3816846762661138090ull, 2859978793837873027ull}},
+ {{16939789213907481527ull, 196511726365820608ull, 159372434899034709ull,
+ 3574973492297341284ull}},
+ {{2727992443674800292ull, 4857325676384663665ull, 199215543623793386ull,
+ 4468716865371676605ull}},
+ {{13234210323365219943ull, 7647514566167802694ull,
+ 2430352723978564818ull, 2792948040857297878ull}},
+ {{7319390867351749121ull, 336021170854977560ull,
+ 12261312941827981831ull, 3491185051071622347ull}},
+ {{9149238584189686401ull, 14255084518850885662ull,
+ 10714955158857589384ull, 4363981313839527934ull}},
+ {{1106588096691166097ull, 8909427824281803539ull,
+ 2085160955858605461ull, 2727488321149704959ull}},
+ {{15218293176146121333ull, 15748470798779642327ull,
+ 16441509250105420538ull, 3409360401437131198ull}},
+ {{14411180451755263762ull, 10462216461619777101ull,
+ 11328514525776999865ull, 4261700501796413998ull}},
+ {{11312830791560733803ull, 18068100334580830448ull,
+ 2468635560183237011ull, 2663562813622758749ull}},
+ {{14141038489450917254ull, 17973439399798650156ull,
+ 7697480468656434168ull, 3329453517028448436ull}},
+ {{17676298111813646567ull, 4020055176038761079ull,
+ 9621850585820542711ull, 4161816896285560545ull}},
+ {{17965215347524610961ull, 9430063512665307530ull,
+ 17542871662206308954ull, 2601135560178475340ull}},
+ {{13233147147550987893ull, 2564207353976858605ull,
+ 3481845504048334577ull, 3251419450223094176ull}},
+ {{2706375879156571154ull, 7816945210898461161ull,
+ 4352306880060418221ull, 4064274312778867720ull}},
+ {{13220699970541326731ull, 7191433766025232177ull,
+ 2720191800037761388ull, 2540171445486792325ull}},
+ {{2690816907894494702ull, 8989292207531540222ull,
+ 8011925768474589639ull, 3175214306858490406ull}},
+ {{12586893171722894185ull, 6624929240987037373ull,
+ 791535173738461241ull, 3969017883573113008ull}},
+ {{10172651241540502818ull, 15669795821685368118ull,
+ 494709483586538275ull, 2480636177233195630ull}},
+ {{3492442015070852714ull, 14975558758679322244ull,
+ 9841758891337948652ull, 3100795221541494537ull}},
+ {{4365552518838565893ull, 272704374639601189ull,
+ 16913884632599823720ull, 3875994026926868171ull}},
+ {{5034313333487797635ull, 170440234149750743ull, 8265334886161195873ull,
+ 2422496266829292607ull}},
+ {{1681205648432359140ull, 4824736311114576333ull,
+ 5719982589274106937ull, 3028120333536615759ull}},
+ {{6713193078967836829ull, 10642606407320608320ull,
+ 2538292218165245767ull, 3785150416920769699ull}},
+ {{4195745674354898018ull, 13569158032216462056ull,
+ 17727333700849136268ull, 2365719010575481061ull}},
+ {{5244682092943622523ull, 16961447540270577570ull,
+ 8324109070779256623ull, 2957148763219351327ull}},
+ {{15779224653034303961ull, 16590123406910834058ull,
+ 5793450320046682875ull, 3696435954024189159ull}},
+ {{14473701426573827880ull, 8062984120105577334ull,
+ 10538435477670258653ull, 2310272471265118224ull}},
+ {{8868754746362509042ull, 14690416168559359572ull,
+ 13173044347087823316ull, 2887840589081397780ull}},
+ {{11085943432953136302ull, 18363020210699199465ull,
+ 16466305433859779145ull, 3609800736351747225ull}},
+ {{22371235909256665ull, 9118717208091835620ull, 6747823737042560220ull,
+ 4512250920439684032ull}},
+ {{9237354059298061224ull, 14922570291912173070ull,
+ 4217389835651600137ull, 2820156825274802520ull}},
+ {{2323320537267800722ull, 4818154809608052626ull,
+ 5271737294564500172ull, 3525196031593503150ull}},
+ {{12127522708439526710ull, 6022693512010065782ull,
+ 15813043655060401023ull, 4406495039491878937ull}},
+ {{2968015674347316290ull, 10681712472647372970ull,
+ 2965623256771668783ull, 2754059399682424336ull}},
+ {{12933391629788921171ull, 8740454572381828308ull,
+ 3707029070964585979ull, 3442574249603030420ull}},
+ {{16166739537236151463ull, 6313882197049897481ull,
+ 4633786338705732474ull, 4303217812003788025ull}},
+ {{3186683183131512809ull, 8557862391583573830ull,
+ 14425331507759552556ull, 2689511132502367515ull}},
+ {{13206726015769166819ull, 10697327989479467287ull,
+ 13419978366272052791ull, 3361888915627959394ull}},
+ {{11896721501284070619ull, 8759973968421946205ull,
+ 7551600920985290181ull, 4202361144534949243ull}},
+ {{9741293947516238089ull, 7780826739477410330ull,
+ 2413907566402112411ull, 2626475715334343277ull}},
+ {{2953245397540521803ull, 5114347405919375009ull,
+ 7629070476430028418ull, 3283094644167929096ull}},
+ {{8303242765353040158ull, 15616306294253994569ull,
+ 9536338095537535522ull, 4103868305209911370ull}},
+ {{16718741774414119859ull, 14371877452336134509ull,
+ 10571897328138347605ull, 2564917690756194606ull}},
+ {{7063369162735486112ull, 4129788760138004425ull,
+ 3991499623318158699ull, 3206147113445243258ull}},
+ {{13440897471846745543ull, 550549931745117627ull,
+ 14212746566002474182ull, 4007683891806554072ull}},
+ {{6094717910690522013ull, 14179151762622862229ull,
+ 8882966603751546363ull, 2504802432379096295ull}},
+ {{12230083406790540420ull, 13112253684851189882ull,
+ 6492022236262045050ull, 3131003040473870369ull}},
+ {{6064232221633399717ull, 7166945069209211545ull,
+ 12726713813754944217ull, 3913753800592337961ull}},
+ {{15319360184589344583ull, 16008555714324226975ull,
+ 1036667105955758279ull, 2446096125370211226ull}},
+ {{14537514212309292825ull, 15399008624477895815ull,
+ 10519205919299473657ull, 3057620156712764032ull}},
+ {{13560206746959228127ull, 5413702725315206057ull,
+ 13149007399124342072ull, 3822025195890955040ull}},
+ {{1557600189208435723ull, 3383564203322003786ull,
+ 8218129624452713795ull, 2388765747431846900ull}},
+ {{11170372273365320462ull, 18064513309434668444ull,
+ 10272662030565892243ull, 2985957184289808625ull}},
+ {{13962965341706650578ull, 17968955618365947651ull,
+ 17452513556634753208ull, 3732446480362260781ull}},
+ {{6421010329352962659ull, 11230597261478717282ull,
+ 13213663982110414707ull, 2332779050226412988ull}},
+ {{17249634948545979132ull, 9426560558421008698ull,
+ 16517079977638018384ull, 2915973812783016235ull}},
+ {{12338671648827698107ull, 11783200698026260873ull,
+ 16034663953620135076ull, 3644967265978770294ull}},
+ {{1588281505752458921ull, 14729000872532826092ull,
+ 10819957905170393037ull, 4556209082473462868ull}},
+ {{10216047977950062634ull, 11511468554546710259ull,
+ 15985845727586271456ull, 2847630676545914292ull}},
+ {{8158373954010190388ull, 14389335693183387824ull,
+ 1535563085773287704ull, 3559538345682392866ull}},
+ {{10197967442512737985ull, 17986669616479234780ull,
+ 11142825894071385438ull, 4449422932102991082ull}},
+ {{15597101688425237049ull, 6629982491872133833ull,
+ 11575952202222003803ull, 2780889332564369426ull}},
+ {{5661319055249382599ull, 3675792096412779388ull,
+ 5246568215922728946ull, 3476111665705461783ull}},
+ {{7076648819061728249ull, 13818112157370750043ull,
+ 1946524251476023278ull, 4345139582131827229ull}},
+ {{2117062502699886204ull, 4024634079929330873ull,
+ 3522420666386208501ull, 2715712238832392018ull}},
+ {{7258014146802245659ull, 9642478618339051495ull,
+ 13626397869837536434ull, 3394640298540490022ull}},
+ {{4460831665075419169ull, 2829726236069038561ull,
+ 7809625300442144735ull, 4243300373175612528ull}},
+ {{14317234836740606741ull, 8686107925184230956ull,
+ 4881015812776340459ull, 2652062733234757830ull}},
+ {{17896543545925758426ull, 6245948888052900791ull,
+ 15324641802825201382ull, 3315078416543447287ull}},
+ {{17758993413979810128ull, 17030808146920901797ull,
+ 14544116235104113823ull, 4143848020679309109ull}},
+ {{13405213892951075282ull, 17561784119466645479ull,
+ 11395915656153765091ull, 2589905012924568193ull}},
+ {{12144831347761456199ull, 17340544130905918945ull,
+ 409836514910042652ull, 3237381266155710242ull}},
+ {{1345981129419656536ull, 3228936089922847066ull,
+ 9735667680492329124ull, 4046726582694637802ull}},
+ {{5452924224314673239ull, 11241457093056555224ull,
+ 10696478318735093606ull, 2529204114184148626ull}},
+ {{6816155280393341549ull, 4828449329465918222ull,
+ 4147225861564091200ull, 3161505142730185783ull}},
+ {{17743566137346452744ull, 6035561661832397777ull,
+ 572346308527726096ull, 3951881428412732229ull}},
+ {{4172199808200451109ull, 3772226038645248611ull,
+ 2663559452043522762ull, 2469925892757957643ull}},
+ {{603563741823175983ull, 13938654585161336572ull,
+ 17164507370336567164ull, 3087407365947447053ull}},
+ {{754454677278969978ull, 17423318231451670715ull,
+ 7620576157638545243ull, 3859259207434308817ull}},
+ {{16612435237795213901ull, 8583730885443600244ull,
+ 16292075144592560537ull, 2412037004646443010ull}},
+ {{2318799973534465760ull, 15341349625231888210ull,
+ 11141721893885924863ull, 3015046255808053763ull}},
+ {{12121872003772858007ull, 14565001013112472358ull,
+ 9315466348930018175ull, 3768807819760067204ull}},
+ {{2964483983930648351ull, 16020654660836377080ull,
+ 15045538504936037167ull, 2355504887350042002ull}},
+ {{3705604979913310438ull, 15414132307618083446ull,
+ 9583551094315270651ull, 2944381109187552503ull}},
+ {{13855378261746413856ull, 14655979366095216403ull,
+ 7367752849466700410ull, 3680476386484440629ull}},
+ {{12707536808755629416ull, 9096602170764244696ull,
+ 13821377080260763417ull, 4600595483105550786ull}},
+ {{7942210505472268385ull, 17214591402796122695ull,
+ 13250046693590365039ull, 2875372176940969241ull}},
+ {{5316077113412947577ull, 16906553235067765465ull,
+ 2727500311705792587ull, 3594215221176211552ull}},
+ {{11256782410193572375ull, 16521505525407318927ull,
+ 3409375389632240734ull, 4492769026470264440ull}},
+ {{13953018034012064591ull, 5714254934952186425ull,
+ 2130859618520150459ull, 2807980641543915275ull}},
+ {{3606214487232917026ull, 2531132650262845128ull,
+ 16498632578432351786ull, 3509975801929894093ull}},
+ {{4507768109041146283ull, 12387287849683332218ull,
+ 6788232667758276020ull, 4387469752412367617ull}},
+ {{7429041086578104331ull, 16965426942906858444ull,
+ 15771860463417392272ull, 2742168595257729760ull}},
+ {{9286301358222630413ull, 2760039604924021439ull,
+ 1268081505562188725ull, 3427710744072162201ull}},
+ {{6996190679350900113ull, 8061735524582414703ull,
+ 6196787900380123810ull, 4284638430090202751ull}},
+ {{11290148202235394427ull, 9650270721291397093ull,
+ 10790521465378659237ull, 2677899018806376719ull}},
+ {{277627197512079321ull, 16674524420041634271ull,
+ 8876465813295936142ull, 3347373773507970899ull}},
+ {{14182092052172262863ull, 11619783488197267030ull,
+ 6483896248192532274ull, 4184217216884963624ull}},
+ {{4252121514180276386ull, 11874050698550679798ull,
+ 4052435155120332671ull, 2615135760553102265ull}},
+ {{14538523929580121290ull, 10230877354760961843ull,
+ 9677229962327803743ull, 3268919700691377831ull}},
+ {{13561468893547763708ull, 8176910675023814400ull,
+ 7484851434482366775ull, 4086149625864222289ull}},
+ {{8475918058467352318ull, 12028098199530965856ull,
+ 16207247192619948994ull, 2553843516165138930ull}},
+ {{10594897573084190397ull, 5811750712558931512ull,
+ 11035686953920160435ull, 3192304395206423663ull}},
+ {{13243621966355237997ull, 2653002372271276486ull,
+ 9182922673972812640ull, 3990380494008029579ull}},
+ {{3665577710544635844ull, 1658126482669547804ull,
+ 3433483662019313948ull, 2493987808755018487ull}},
+ {{4581972138180794805ull, 2072658103336934755ull,
+ 18126912632806306147ull, 3117484760943773108ull}},
+ {{1115779154298605602ull, 16425880684453332156ull,
+ 4211896717298331067ull, 3896855951179716386ull}},
+ {{9920734008291404309ull, 7960332418569638645ull,
+ 7244121466738844821ull, 2435534969487322741ull}},
+ {{17012603528791643291ull, 14562101541639436210ull,
+ 13666837851850943930ull, 3044418711859153426ull}},
+ {{12042382374134778305ull, 8979254890194519455ull,
+ 7860175277958904105ull, 3805523389823941783ull}},
+ {{14444018011475318297ull, 17141249352440044419ull,
+ 11830138576365396921ull, 2378452118639963614ull}},
+ {{13443336495916759967ull, 7591503635267891812ull,
+ 5564301183601970344ull, 2973065148299954518ull}},
+ {{16804170619895949959ull, 9489379544084864765ull,
+ 16178748516357238738ull, 3716331435374943147ull}},
+ {{12808449646648662676ull, 10542548233480428382ull,
+ 7805874813509580259ull, 2322707147109339467ull}},
+ {{6787190021456052537ull, 8566499273423147574ull,
+ 5145657498459587420ull, 2903383933886674334ull}},
+ {{17707359563674841480ull, 10708124091778934467ull,
+ 15655443909929260083ull, 3629229917358342917ull}},
+ {{17522513436166163945ull, 8773469096296280180ull,
+ 5734246832129411392ull, 4536537396697928647ull}},
+ {{1728198860749076658ull, 5483418185185175113ull,
+ 10501433297721963976ull, 2835335872936205404ull}},
+ {{6771934594363733726ull, 6854272731481468891ull,
+ 13126791622152454970ull, 3544169841170256755ull}},
+ {{3853232224527279254ull, 17791212951206611922ull,
+ 11796803509263180808ull, 4430212301462820944ull}},
+ {{7019956158756937438ull, 11119508094504132451ull,
+ 7373002193289488005ull, 2768882688414263090ull}},
+ {{4163259180018783893ull, 64327062848001852ull, 18439624778466635815ull,
+ 3461103360517828862ull}},
+ {{5204073975023479866ull, 13915466883842166027ull,
+ 13826158936228518960ull, 4326379200647286078ull}},
+ {{946703225175980965ull, 8697166802401353767ull, 4029663316715436446ull,
+ 2703987000404553799ull}},
+ {{15018437086752139918ull, 1648086466146916400ull,
+ 425393127466907654ull, 3379983750505692249ull}},
+ {{326302284730623281ull, 11283480119538421309ull,
+ 5143427427761022471ull, 4224979688132115311ull}},
+ {{2509781937170333503ull, 13969704102352595174ull,
+ 10132171169991720900ull, 2640612305082572069ull}},
+ {{12360599458317692686ull, 17462130127940743967ull,
+ 17276899980917039029ull, 3300765381353215086ull}},
+ {{10839063304469727954ull, 7992604604643766247ull,
+ 12372752939291522979ull, 4125956726691518858ull}},
+ {{13691943592934661827ull, 2689534868688659952ull,
+ 12344656605484589766ull, 2578722954182199286ull}},
+ {{17114929491168327284ull, 12585290622715600748ull,
+ 6207448720000961399ull, 3223403692727749108ull}},
+ {{2946917790250857489ull, 11119927259967113032ull,
+ 7759310900001201749ull, 4029254615909686385ull}},
+ {{1841823618906785931ull, 9255797546693139597ull,
+ 16378784358569220853ull, 2518284134943553990ull}},
+ {{6913965542060870317ull, 16181432951793812400ull,
+ 11250108411356750258ull, 3147855168679442488ull}},
+ {{8642456927576087897ull, 11003419152887489692ull,
+ 14062635514195937823ull, 3934818960849303110ull}},
+ {{14624907616589830744ull, 13794665998195762913ull,
+ 4177461177945073235ull, 2459261850530814444ull}},
+ {{4446076465455124717ull, 12631646479317315738ull,
+ 5221826472431341544ull, 3074077313163518055ull}},
+ {{14780967618673681704ull, 15789558099146644672ull,
+ 1915597072111789026ull, 3842596641454397569ull}},
+ {{9238104761671051065ull, 14480159830394040824ull,
+ 12726463216138337901ull, 2401622900908998480ull}},
+ {{11547630952088813832ull, 4265141732710387318ull,
+ 15908079020172922377ull, 3002028626136248100ull}},
+ {{5211166653256241482ull, 9943113184315372052ull,
+ 1438354701506601355ull, 3752535782670310126ull}},
+ {{12480351195139926734ull, 3908602730983413580ull,
+ 14734029743723789559ull, 2345334864168943828ull}},
+ {{15600438993924908418ull, 274067395301879071ull,
+ 18417537179654736949ull, 2931668580211179785ull}},
+ {{14888862723978747618ull, 4954270262554736743ull,
+ 9186863419286257474ull, 3664585725263974732ull}},
+ {{13999392386546046618ull, 15416209865048196737ull,
+ 11483579274107821842ull, 4580732156579968415ull}},
+ {{1832091213950197281ull, 14246817184082510865ull,
+ 14094766073958470507ull, 2862957597862480259ull}},
+ {{6901800035865134505ull, 13196835461675750677ull,
+ 13006771574020700230ull, 3578696997328100324ull}},
+ {{13238936063258806035ull, 7272672290239912538ull,
+ 16258464467525875288ull, 4473371246660125405ull}},
+ {{12886021057964141676ull, 4545420181399945336ull,
+ 12467383301417366007ull, 2795857029162578378ull}},
+ {{16107526322455177095ull, 1070089208322543766ull,
+ 6360857089916931701ull, 3494821286453222973ull}},
+ {{10911035866214195560ull, 5949297528830567612ull,
+ 12562757380823552530ull, 4368526608066528716ull}},
+ {{16042769453238648033ull, 8329996973946492661ull,
+ 17075095399869496139ull, 2730329130041580447ull}},
+ {{6218403761266146329ull, 5800810199005727923ull,
+ 16732183231409482270ull, 3412911412551975559ull}},
+ {{3161318683155295008ull, 16474384785611935712ull,
+ 16303543020834464933ull, 4266139265689969449ull}},
+ {{1975824176972059380ull, 12602333500221153772ull,
+ 3272185360380458727ull, 2666337041056230906ull}},
+ {{2469780221215074225ull, 11141230856849054311ull,
+ 13313603737330349217ull, 3332921301320288632ull}},
+ {{16922283331801006493ull, 91480515779154176ull,
+ 16642004671662936522ull, 4166151626650360790ull}},
+ {{10576427082375629058ull, 4668861340789359264ull,
+ 5789566901361947422ull, 2603844766656475494ull}},
+ {{13220533852969536323ull, 15059448712841474888ull,
+ 16460330663557210085ull, 3254805958320594367ull}},
+ {{16525667316211920403ull, 4989252835769679898ull,
+ 15963727311019124703ull, 4068507447900742959ull}},
+ {{14940228091059838156ull, 10035812049997131792ull,
+ 16894858597028034795ull, 2542817154937964349ull}},
+ {{228541040115246079ull, 7933079044069026837ull, 7283515191002879782ull,
+ 3178521443672455437ull}},
+ {{4897362318571445503ull, 692976768231507738ull,
+ 13716080007180987632ull, 3973151804590569296ull}},
+ {{7672537467534541343ull, 433110480144692336ull, 8572550004488117270ull,
+ 2483219877869105810ull}},
+ {{9590671834418176679ull, 9764760137035641228ull,
+ 1492315468755370779ull, 3104024847336382263ull}},
+ {{11988339793022720849ull, 7594264152867163631ull,
+ 15700452391226377186ull, 3880031059170477828ull}},
+ {{14410241398280282387ull, 9358101113969365173ull,
+ 589410707661709933ull, 2425019411981548643ull}},
+ {{4177743692568189271ull, 16309312410889094371ull,
+ 14571821439859301128ull, 3031274264976935803ull}},
+ {{610493597282848685ull, 1939896439901816348ull,
+ 13603090781396738507ull, 3789092831221169754ull}},
+ {{9604930535156556236ull, 17353336339434492881ull,
+ 13113617756800349470ull, 2368183019513231096ull}},
+ {{16617849187373083199ull, 12468298387438340293ull,
+ 16392022196000436838ull, 2960228774391538870ull}},
+ {{6937253428934190287ull, 6362000947443149559ull,
+ 11266655708145770240ull, 3700285967989423588ull}},
+ {{11253312420724950786ull, 3976250592151968474ull,
+ 16265031854445882208ull, 2312678729993389742ull}},
+ {{4843268489051412674ull, 4970313240189960593ull,
+ 11107917781202576952ull, 2890848412491737178ull}},
+ {{10665771629741653746ull, 6212891550237450741ull,
+ 4661525189648445382ull, 3613560515614671473ull}},
+ {{17943900555604455087ull, 16989486474651589234ull,
+ 10438592505487944631ull, 4516950644518339341ull}},
+ {{15826623865680172333ull, 17535958074298325127ull,
+ 8829963325143659346ull, 2823094152823962088ull}},
+ {{15171593813672827512ull, 12696575556018130601ull,
+ 11037454156429574183ull, 3528867691029952610ull}},
+ {{5129434211808870678ull, 11259033426595275348ull,
+ 4573445658682191921ull, 4411084613787440763ull}},
+ {{12429268419235319982ull, 119366863980965236ull, 552560527462675999ull,
+ 2756927883617150477ull}},
+ {{15536585524044149978ull, 13984266635258370257ull,
+ 5302386677755732902ull, 3446159854521438096ull}},
+ {{5585673849773023760ull, 8256961257218187014ull,
+ 6627983347194666128ull, 4307699818151797620ull}},
+ {{17326104211390303562ull, 5160600785761366883ull,
+ 13365861628851442138ull, 2692312386344873512ull}},
+ {{17045944245810491549ull, 15674123019056484412ull,
+ 16707327036064302672ull, 3365390482931091890ull}},
+ {{2860686233553562820ull, 1145909700111053900ull,
+ 11660786758225602533ull, 4206738103663864863ull}},
+ {{11011300932825752570ull, 3022036571783102639ull,
+ 14205520751532083439ull, 2629211314789915539ull}},
+ {{9152440147604802809ull, 17612603770011042011ull,
+ 13145214920987716394ull, 3286514143487394424ull}},
+ {{6828864166078615607ull, 12792382675659026706ull,
+ 16431518651234645493ull, 4108142679359243030ull}},
+ {{8879726122226522659ull, 10301082181500585643ull,
+ 5658013138594265529ull, 2567589174599526894ull}},
+ {{6487971634355765419ull, 17488038745303119958ull,
+ 16295888460097607719ull, 3209486468249408617ull}},
+ {{17333336579799482582ull, 17248362413201512043ull,
+ 6534802519839845937ull, 4011858085311760772ull}},
+ {{8527492353160982662ull, 3862697480609863171ull,
+ 13307623611754679519ull, 2507411303319850482ull}},
+ {{6047679423023840423ull, 216685832334941060ull, 7411157477838573591ull,
+ 3134264129149813103ull}},
+ {{7559599278779800529ull, 14105915345700840037ull,
+ 4652260828870829084ull, 3917830161437266379ull}},
+ {{7030592558451069283ull, 18039569127917800831ull,
+ 601820008830574225ull, 2448643850898291487ull}},
+ {{4176554679636448699ull, 8714403354615087327ull,
+ 14587333066320381494ull, 3060804813622864358ull}},
+ {{609007331118172970ull, 1669632156414083351ull, 9010794296045701060ull,
+ 3826006017028580448ull}},
+ {{7298158609589939962ull, 10266892134613577902ull,
+ 5631746435028563162ull, 2391253760642862780ull}},
+ {{18346070298842200761ull, 3610243131412196569ull,
+ 7039683043785703953ull, 2989067200803578475ull}},
+ {{9097529818270587239ull, 9124489932692633616ull,
+ 4187917786304742037ull, 3736334001004473094ull}},
+ {{5685956136419117025ull, 8008649217146589962ull,
+ 16452506671722627485ull, 2335208750627795683ull}},
+ {{16330817207378672089ull, 14622497539860625356ull,
+ 15953947321225896452ull, 2919010938284744604ull}},
+ {{1966777435513788495ull, 18278121924825781696ull,
+ 1495690077822818949ull, 3648763672855930756ull}},
+ {{2458471794392235618ull, 9012594350750063408ull,
+ 1869612597278523687ull, 4560954591069913445ull}},
+ {{1536544871495147261ull, 12550400496859871486ull,
+ 3474350882512771256ull, 2850596619418695903ull}},
+ {{11144053126223709885ull, 15688000621074839357ull,
+ 18177996658423127782ull, 3563245774273369878ull}},
+ {{95008352497473644ull, 10386628739488773389ull,
+ 13499123786174133920ull, 4454057217841712348ull}},
+ {{2365223229524614980ull, 6491642962180483368ull,
+ 17660324403213609508ull, 2783785761151070217ull}},
+ {{2956529036905768724ull, 8114553702725604210ull,
+ 8240347448734848173ull, 3479732201438837772ull}},
+ {{12919033332986986713ull, 14754878146834393166ull,
+ 10300434310918560216ull, 4349665251798547215ull}},
+ {{3462709814689478792ull, 9221798841771495729ull,
+ 13355300471965181991ull, 2718540782374092009ull}},
+ {{8940073286789236394ull, 6915562533786981757ull,
+ 2859067534674313777ull, 3398175977967615012ull}},
+ {{15786777626913933396ull, 13256139185661115100ull,
+ 3573834418342892221ull, 4247719972459518765ull}},
+ {{643363979966432565ull, 10590930000251890890ull,
+ 4539489520678001590ull, 2654824982787199228ull}},
+ {{10027577011812816514ull, 4015290463460087804ull,
+ 5674361900847501988ull, 3318531228483999035ull}},
+ {{12534471264766020642ull, 5019113079325109755ull,
+ 2481266357631989581ull, 4148164035604998794ull}},
+ {{5528201531265068950ull, 5442788683791887549ull,
+ 6162477491947381392ull, 2592602522253124246ull}},
+ {{11521937932508724091ull, 6803485854739859436ull,
+ 16926468901789002548ull, 3240753152816405307ull}},
+ {{14402422415635905113ull, 8504357318424824295ull,
+ 16546400108808865281ull, 4050941441020506634ull}},
+ {{15919043037413522552ull, 16844438370083984944ull,
+ 14953186086432928704ull, 2531838400637816646ull}},
+ {{1452059723057351574ull, 2608803888895429565ull,
+ 9468110571186385073ull, 3164798000797270808ull}},
+ {{6426760672249077371ull, 7872690879546674860ull,
+ 11835138213982981341ull, 3955997500996588510ull}},
+ {{13240097457010449165ull, 7226274808930365739ull,
+ 2785275365311975434ull, 2472498438122867819ull}},
+ {{11938435802835673552ull, 18256215548017732982ull,
+ 17316652261922133004ull, 3090623047653584773ull}},
+ {{5699672716689816132ull, 4373525361312614612ull,
+ 7810757272120502544ull, 3863278809566980967ull}},
+ {{12785667484785910891ull, 2733453350820384132ull,
+ 11799252322716395946ull, 2414549255979363104ull}},
+ {{15982084355982388614ull, 12640188725380255973ull,
+ 14749065403395494932ull, 3018186569974203880ull}},
+ {{6142547389695822055ull, 15800235906725319967ull,
+ 18436331754244368665ull, 3772733212467754850ull}},
+ {{10756621146200970640ull, 2957618414062243123ull,
+ 16134393364830118320ull, 2357958257792346781ull}},
+ {{8834090414323825396ull, 3697023017577803904ull,
+ 6332933650755484188ull, 2947447822240433477ull}},
+ {{11042613017904781745ull, 4621278771972254880ull,
+ 12527853081871743139ull, 3684309777800541846ull}},
+ {{13803266272380977182ull, 1164912446537930696ull,
+ 6436444315484903116ull, 4605387222250677308ull}},
+ {{8627041420238110739ull, 9951442315940982493ull,
+ 13246149734032840255ull, 2878367013906673317ull}},
+ {{15395487793725026327ull, 7827616876498840212ull,
+ 2722629112258886607ull, 3597958767383341647ull}},
+ {{797615668446731293ull, 5172835077196162362ull,
+ 17238344445605771971ull, 4497448459229177058ull}},
+ {{5110195811206594962ull, 927178914033907524ull,
+ 15385651296930995386ull, 2810905287018235661ull}},
+ {{6387744764008243703ull, 10382345679397160213ull,
+ 5397006065881580520ull, 3513631608772794577ull}},
+ {{12596366973437692532ull, 12977932099246450266ull,
+ 11357943600779363554ull, 4392039510965993221ull}},
+ {{12484415376825945737ull, 12722893580456419320ull,
+ 9404557759700796173ull, 2745024694353745763ull}},
+ {{15605519221032432171ull, 2068558920288360438ull,
+ 7144011181198607313ull, 3431280867942182204ull}},
+ {{10283526989435764406ull, 7197384668787838452ull,
+ 8930013976498259141ull, 4289101084927727755ull}},
+ {{15650576405252128562ull, 6804208427206092984ull,
+ 3275415726097718011ull, 2680688178079829847ull}},
+ {{1116476432855609086ull, 3893574515580228327ull,
+ 17929327712904311226ull, 3350860222599787308ull}},
+ {{15230653596351675069ull, 14090340181330061216ull,
+ 3964915567420837416ull, 4188575278249734136ull}},
+ {{9519158497719796919ull, 8806462613331288260ull,
+ 2478072229638023385ull, 2617859548906083835ull}},
+ {{11898948122149746148ull, 15619764285091498229ull,
+ 16932648342329692943ull, 3272324436132604793ull}},
+ {{1038627097405018973ull, 14913019337936984883ull,
+ 7330752372629952467ull, 4090405545165755992ull}},
+ {{16790043000373994522ull, 7014794076996921599ull,
+ 4581720232893720292ull, 2556503465728597495ull}},
+ {{16375867732040105249ull, 8768492596246151999ull,
+ 1115464272689762461ull, 3195629332160746869ull}},
+ {{15858148646622743657ull, 15572301763735077903ull,
+ 6006016359289590980ull, 3994536665200933586ull}},
+ {{16828871931780296642ull, 509316565479647881ull,
+ 8365446242983382267ull, 2496585415750583491ull}},
+ {{7201031859443207090ull, 14471703762131723564ull,
+ 5845121785301839929ull, 3120731769688229364ull}},
+ {{9001289824304008862ull, 4254571647382490743ull,
+ 7306402231627299912ull, 3900914712110286705ull}},
+ {{12543335167831087395ull, 2659107279614056714ull,
+ 16095716440835532205ull, 2438071695068929190ull}},
+ {{6455796922934083436ull, 7935570117944958797ull,
+ 10896273514189639448ull, 3047589618836161488ull}},
+ {{12681432172094992199ull, 9919462647431198496ull,
+ 13620341892737049310ull, 3809487023545201860ull}},
+ {{7925895107559370124ull, 1587978136217111156ull,
+ 17736085719815431627ull, 2380929389715751162ull}},
+ {{9907368884449212655ull, 15820030725553552657ull,
+ 12946735112914513725ull, 2976161737144688953ull}},
+ {{16995897123988903723ull, 5939980351659777109ull,
+ 2348360835860978445ull, 3720202171430861192ull}},
+ {{12928278711706758779ull, 6018330729001054645ull,
+ 1467725522413111528ull, 2325126357144288245ull}},
+ {{2325290334351284762ull, 7522913411251318307ull,
+ 6446342921443777314ull, 2906407946430360306ull}},
+ {{16741670973221269664ull, 180269727209372075ull,
+ 17281300688659497451ull, 3633009933037950382ull}},
+ {{16315402698099199176ull, 14060395214293878806ull,
+ 12378253823969596005ull, 4541262416297437978ull}},
+ {{5585440667884611581ull, 11093590018147368206ull,
+ 12348094658408385407ull, 2838289010185898736ull}},
+ {{16205172871710540284ull, 9255301504256822353ull,
+ 15435118323010481759ull, 3547861262732373420ull}},
+ {{6421408034356011643ull, 6957440861893640038ull, 847153830053550583ull,
+ 4434826578415466776ull}},
+ {{17848438076754670989ull, 11265929566324606879ull,
+ 529471143783469114ull, 2771766611509666735ull}},
+ {{17698861577515950832ull, 4859039921050982791ull,
+ 14496896985011500105ull, 3464708264387083418ull}},
+ {{17511890953467550636ull, 10685485919741116393ull,
+ 8897749194409599323ull, 4330885330483854273ull}},
+ {{4027402818276137292ull, 4372585690624503794ull,
+ 17090308292574469337ull, 2706803331552408920ull}},
+ {{14257625559699947423ull, 10077418131708017646ull,
+ 2916141292008535055ull, 3383504164440511151ull}},
+ {{8598659912770158470ull, 7985086646207634154ull,
+ 17480234670292832531ull, 4229380205550638938ull}},
+ {{9985848463908736948ull, 2684836144666077394ull,
+ 15536832687360408236ull, 2643362628469149336ull}},
+ {{3258938543031145377ull, 3356045180832596743ull, 974296785490958679ull,
+ 3304203285586436671ull}},
+ {{17908731234071095433ull, 18030114531322909640ull,
+ 15052929037145862060ull, 4130254106983045838ull}},
+ {{11192957021294434646ull, 2045449545222042717ull,
+ 4796394629788775884ull, 2581408816864403649ull}},
+ {{156138221335879595ull, 2556811931527553397ull,
+ 10607179305663357759ull, 3226761021080504561ull}},
+ {{4806858795097237398ull, 17031072969691605458ull,
+ 17870660150506585102ull, 4033451276350630701ull}},
+ {{7615972765363161278ull, 6032734587629865507ull,
+ 13475005603280309641ull, 2520907047719144188ull}},
+ {{4908279938276563693ull, 12152604252964719788ull,
+ 16843757004100387051ull, 3151133809648930235ull}},
+ {{6135349922845704616ull, 10579069297778511831ull,
+ 16443010236698095910ull, 3938917262061162794ull}},
+ {{10752122729419647241ull, 2000232292684181990ull,
+ 14888567416363697848ull, 2461823288788226746ull}},
+ {{4216781374919783244ull, 2500290365855227488ull,
+ 9387337233599846502ull, 3077279110985283433ull}},
+ {{5270976718649729054ull, 12348734994173810168ull,
+ 16345857560427196031ull, 3846598888731604291ull}},
+ {{3294360449156080659ull, 14635488398999713211ull,
+ 7910317966053303567ull, 2404124305457252682ull}},
+ {{17953008616727264536ull, 13682674480322253609ull,
+ 664525420711853651ull, 3005155381821565853ull}},
+ {{8606202715626916958ull, 12491657081975429108ull,
+ 5442342794317204968ull, 3756444227276957316ull}},
+ {{14602248734121598907ull, 7807285676234643192ull,
+ 12624836283303028913ull, 2347777642048098322ull}},
+ {{18252810917651998633ull, 14370793113720691894ull,
+ 6557673317274010333ull, 2934722052560122903ull}},
+ {{13592641610210222484ull, 4128433336868701156ull,
+ 3585405628165125013ull, 3668402565700153629ull}},
+ {{16990802012762778104ull, 9772227689513264349ull,
+ 9093443053633794170ull, 4585503207125192036ull}},
+ {{12925094267190430267ull, 10719328324373178122ull,
+ 14906773945375897164ull, 2865939504453245022ull}},
+ {{6932995797133262026ull, 13399160405466472653ull,
+ 9410095394865095647ull, 3582424380566556278ull}},
+ {{13277930764843965437ull, 12137264488405702912ull,
+ 2539247206726593751ull, 4478030475708195348ull}},
+ {{8298706728027478398ull, 14503319332894646176ull,
+ 10810401541058896902ull, 2798769047317622092ull}},
+ {{10373383410034347997ull, 8905777129263531912ull,
+ 13513001926323621128ull, 3498461309147027615ull}},
+ {{12966729262542934997ull, 11132221411579414890ull,
+ 12279566389477138506ull, 4373076636433784519ull}},
+ {{12715891807516722277ull, 11569324400664522210ull,
+ 14592258021064293422ull, 2733172897771115324ull}},
+ {{6671492722541127038ull, 5238283463975876955ull,
+ 18240322526330366778ull, 3416466122213894155ull}},
+ {{3727679884749020894ull, 15771226366824622002ull,
+ 18188717139485570568ull, 4270582652767367694ull}},
+ {{6941485946395525963ull, 9857016479265388751ull,
+ 6756262193751093701ull, 2669114157979604809ull}},
+ {{4065171414567019549ull, 16932956617509123843ull,
+ 13057013760616255030ull, 3336392697474506011ull}},
+ {{469778249781386533ull, 11942823735031628996ull,
+ 11709581182342930884ull, 4170490871843132514ull}},
+ {{9516983442968142391ull, 16687636871249543930ull,
+ 11930174257391719706ull, 2606556794901957821ull}},
+ {{2672857266855402181ull, 11636174052207154105ull,
+ 1077659766457485921ull, 3258195993627447277ull}},
+ {{7952757601996640630ull, 710159509976778919ull, 5958760726499245306ull,
+ 4072744992034309096ull}},
+ {{11888002528888982250ull, 5055535712162874728ull,
+ 3724225454062028316ull, 2545465620021443185ull}},
+ {{14860003161111227812ull, 6319419640203593410ull,
+ 9266967836004923299ull, 3181832025026803981ull}},
+ {{9351631914534258957ull, 3287588531827103859ull,
+ 16195395813433542028ull, 3977290031283504976ull}},
+ {{3538926937370217896ull, 11278114869246715720ull,
+ 10122122383395963767ull, 2485806269552190610ull}},
+ {{4423658671712772370ull, 9485957568131006746ull,
+ 3429280942390178901ull, 3107257836940238263ull}},
+ {{14752945376495741271ull, 16469132978591146336ull,
+ 18121659233269887338ull, 3884072296175297828ull}},
+ {{9220590860309838294ull, 14904894130046854364ull,
+ 2102664983938903778ull, 2427545185109561143ull}},
+ {{11525738575387297868ull, 9407745625703792147ull,
+ 16463389285205793435ull, 3034431481386951428ull}},
+ {{9795487200806734431ull, 7147996013702352280ull,
+ 2132492532797690178ull, 3793039351733689286ull}},
+ {{6122179500504209019ull, 9079183526991358079ull,
+ 15167865888280720073ull, 2370649594833555803ull}},
+ {{3041038357202873370ull, 15960665427166585503ull,
+ 14348146341923512187ull, 2963311993541944754ull}},
+ {{17636356001785755424ull, 15339145765530843974ull,
+ 8711810890549614426ull, 3704139991927430943ull}},
+ {{6411036482688709236ull, 14198652121884165388ull,
+ 12362410834234590872ull, 2315087494954644339ull}},
+ {{8013795603360886545ull, 17748315152355206735ull,
+ 10841327524365850686ull, 2893859368693305424ull}},
+ {{5405558485773720278ull, 12962021903589232611ull,
+ 13551659405457313358ull, 3617324210866631780ull}},
+ {{2145262088789762443ull, 6979155342631764956ull,
+ 16939574256821641698ull, 4521655263583289725ull}},
+ {{10564160842348377335ull, 8973658107572241001ull,
+ 12893076919727220013ull, 2826034539739556078ull}},
+ {{17816887071362859573ull, 15828758652892689155ull,
+ 6892974112804249208ull, 3532543174674445098ull}},
+ {{17659422820776186562ull, 1339204242406309828ull,
+ 17839589677860087319ull, 4415678968343056372ull}},
+ {{1813767226130340793ull, 7754531679145025499ull,
+ 1926371511807778766ull, 2759799355214410233ull}},
+ {{16102267087945089703ull, 469792562076506065ull,
+ 7019650408187111362ull, 3449749194018012791ull}},
+ {{6292775804649198417ull, 9810612739450408390ull,
+ 4162876991806501298ull, 4312186492522515989ull}},
+ {{17768042933187912723ull, 10743318980583893147ull,
+ 4907641129092757263ull, 2695116557826572493ull}},
+ {{17598367648057503000ull, 8817462707302478530ull,
+ 10746237429793334483ull, 3368895697283215616ull}},
+ {{12774587523217102941ull, 6410142365700710259ull,
+ 13432796787241668104ull, 4211119621604019520ull}},
+ {{5678274192796995386ull, 4006338978562943912ull,
+ 8395497992026042565ull, 2631949763502512200ull}},
+ {{7097842740996244233ull, 9619609741631067794ull,
+ 10494372490032553206ull, 3289937204378140250ull}},
+ {{18095675463100081099ull, 2801140140184058934ull,
+ 3894593575685915700ull, 4112421505472675313ull}},
+ {{6698111146010162783ull, 10974084624469812642ull,
+ 13963336030872167072ull, 2570263440920422070ull}},
+ {{17596010969367479287ull, 13717605780587265802ull,
+ 8230798001735433032ull, 3212829301150527588ull}},
+ {{12771641674854573300ull, 17147007225734082253ull,
+ 10288497502169291290ull, 4016036626438159485ull}},
+ {{10288119055997802265ull, 15328565534511189312ull,
+ 8736153948069501008ull, 2510022891523849678ull}},
+ {{12860148819997252831ull, 713962844429435024ull,
+ 1696820398232100453ull, 3137528614404812098ull}},
+ {{16075186024996566039ull, 5504139573964181684ull,
+ 11344397534644901374ull, 3921910768006015122ull}},
+ {{823619228768077966ull, 17275145289009777265ull,
+ 11701934477580451262ull, 2451194230003759451ull}},
+ {{5641210054387485362ull, 12370559574407445773ull,
+ 10015732078548176174ull, 3063992787504699314ull}},
+ {{11663198586411744606ull, 6239827431154531408ull,
+ 3296293061330444410ull, 3829990984380874143ull}},
+ {{7289499116507340379ull, 8511578162898970034ull,
+ 8977712190972609612ull, 2393744365238046339ull}},
+ {{18335245932488951282ull, 10639472703623712542ull,
+ 6610454220288374111ull, 2992180456547557924ull}},
+ {{13695685378756413294ull, 8687654861102252774ull,
+ 8263067775360467639ull, 3740225570684447405ull}},
+ {{3948117343295370405ull, 12347313315829989840ull,
+ 7470260368813986226ull, 2337640981677779628ull}},
+ {{4935146679119213006ull, 6210769607932711492ull,
+ 9337825461017482783ull, 2922051227097224535ull}},
+ {{6168933348899016257ull, 3151775991488501461ull,
+ 7060595807844465575ull, 3652564033871530669ull}},
+ {{12322852704551158226ull, 17774778044642790538ull,
+ 13437430778232969872ull, 4565705042339413336ull}},
+ {{12313468958771861795ull, 11109236277901744086ull,
+ 8398394236395606170ull, 2853565651462133335ull}},
+ {{6168464161610051436ull, 4663173310522404300ull,
+ 5886306777067119809ull, 3566957064327666669ull}},
+ {{7710580202012564295ull, 10440652656580393279ull,
+ 11969569489761287665ull, 4458696330409583336ull}},
+ {{11736641653898934540ull, 18054622956431215559ull,
+ 7480980931100804790ull, 2786685206505989585ull}},
+ {{10059116048946280271ull, 13344906658684243641ull,
+ 13962912182303393892ull, 3483356508132486981ull}},
+ {{17185581079610238243ull, 16681133323355304551ull,
+ 3618582172597078653ull, 4354195635165608727ull}},
+ {{17658517202397480758ull, 12731551336310759296ull,
+ 9179142885514256014ull, 2721372271978505454ull}},
+ {{3626402429287299331ull, 6691067133533673313ull,
+ 2250556570038044210ull, 3401715339973131818ull}},
+ {{9144689055036512068ull, 17587205953771867449ull,
+ 12036567749402331070ull, 4252144174966414772ull}},
+ {{17244645705466289803ull, 6380317702680029251ull,
+ 16746226880231232727ull, 2657590109354009232ull}},
+ {{16944121113405474349ull, 3363711109922648660ull,
+ 2486039526579489293ull, 3321987636692511541ull}},
+ {{2733407318047291321ull, 8816324905830698730ull,
+ 7719235426651749520ull, 4152484545865639426ull}},
+ {{6320065592206944980ull, 5510203066144186706ull,
+ 9436208160084731354ull, 2595302841166024641ull}},
+ {{17123454027113457032ull, 16111125869535009190ull,
+ 16406946218533302096ull, 3244128551457530801ull}},
+ {{12180945497037045482ull, 1692163263209209872ull,
+ 6673624717884463909ull, 4055160689321913502ull}},
+ {{7613090935648153427ull, 3363445048719450122ull,
+ 18006073503959953655ull, 2534475430826195938ull}},
+ {{292991632705415975ull, 18039364366181476365ull,
+ 13284219843095166260ull, 3168094288532744923ull}},
+ {{4977925559309157873ull, 4102461384017293840ull,
+ 11993588785441569922ull, 3960117860665931154ull}},
+ {{3111203474568223671ull, 7175724383438196554ull,
+ 12107679009328369105ull, 2475073662916206971ull}},
+ {{13112376380065055396ull, 13581341497725133596ull,
+ 10522912743233073477ull, 3093842078645258714ull}},
+ {{16390470475081319245ull, 3141618816874253283ull,
+ 3930268892186566039ull, 3867302598306573393ull}},
+ {{7938201037712130576ull, 8881040788187490158ull,
+ 13985633103685073534ull, 2417064123941608370ull}},
+ {{699379260285387412ull, 1877928948379586890ull, 8258669342751566110ull,
+ 3021330154927010463ull}},
+ {{10097596112211510073ull, 11570783222329259420ull,
+ 5711650660012069733ull, 3776662693658763079ull}},
+ {{15534369606986969604ull, 9537582523169481089ull,
+ 10487310690148625439ull, 2360414183536726924ull}},
+ {{5582903953451548293ull, 7310292135534463458ull,
+ 13109138362685781799ull, 2950517729420908655ull}},
+ {{16202001978669211174ull, 4526179150990691418ull,
+ 11774736934929839345ull, 3688147161776135819ull}},
+ {{11029130436481738159ull, 10269409957165752177ull,
+ 10106735150234911277ull, 4610183952220169774ull}},
+ {{18422421568869556110ull, 8724224232442289062ull,
+ 1705023450469431644ull, 2881364970137606109ull}},
+ {{13804654924232169329ull, 10905280290552861328ull,
+ 6742965331514177459ull, 3601706212672007636ull}},
+ {{17255818655290211661ull, 9019914344763688756ull,
+ 8428706664392721824ull, 4502132765840009545ull}},
+ {{1561514622701606481ull, 5637446465477305473ull,
+ 16797156711313920900ull, 2813832978650005965ull}},
+ {{6563579296804396005ull, 7046808081846631841ull,
+ 7161387833860237413ull, 3517291223312507457ull}},
+ {{12816160139432882910ull, 13420196120735677705ull,
+ 13563420810752684670ull, 4396614029140634321ull}},
+ {{1092571059504469963ull, 3775936557032410662ull,
+ 1559608979079346063ull, 2747883768212896451ull}},
+ {{10589085861235363261ull, 108234677863125423ull,
+ 15784569279131346291ull, 3434854710266120563ull}},
+ {{8624671308116816172ull, 13970351402611070491ull,
+ 15119025580486794959ull, 4293568387832650704ull}},
+ {{3084576558359316156ull, 15648998654273000913ull,
+ 9449390987804246849ull, 2683480242395406690ull}},
+ {{8467406716376533099ull, 5726190262559087429ull,
+ 2588366697900532754ull, 3354350302994258363ull}},
+ {{15195944413898054277ull, 16381109865053635094ull,
+ 17070516427657829654ull, 4192937878742822953ull}},
+ {{4885779240258896020ull, 5626507647231134030ull,
+ 3751543739645061678ull, 2620586174214264346ull}},
+ {{15330596087178395832ull, 16256506595893693345ull,
+ 13912801711411102905ull, 3275732717767830432ull}},
+ {{5328187053690831078ull, 6485575189584952970ull,
+ 17391002139263878632ull, 4094665897209788040ull}},
+ {{7941802926984157328ull, 4053484493490595606ull,
+ 10869376337039924145ull, 2559166185756117525ull}},
+ {{703881621875420852ull, 9678541635290632412ull,
+ 18198406439727293085ull, 3198957732195146906ull}},
+ {{879852027344276065ull, 16709863062540678419ull,
+ 13524636012804340548ull, 3998697165243933633ull}},
+ {{16690808581586030205ull, 1220292377233148203ull,
+ 1535368480361630987ull, 2499185728277458521ull}},
+ {{16251824708555149852ull, 15360423526823598966ull,
+ 6530896618879426637ull, 3123982160346823151ull}},
+ {{11091408848839161507ull, 5365471353247334996ull,
+ 3551934755171895393ull, 3904977700433528939ull}},
+ {{16155502567379251750ull, 14882634641848054132ull,
+ 18360860286478292284ull, 2440611062770955586ull}},
+ {{1747634135514513071ull, 156549228600516050ull,
+ 13727703321243089548ull, 3050763828463694483ull}},
+ {{11407914706247917147ull, 195686535750645062ull,
+ 12547943133126474031ull, 3813454785579618104ull}},
+ {{2518260672977560313ull, 7039833112485235020ull,
+ 7842464458204046269ull, 2383409240987261315ull}},
+ {{3147825841221950391ull, 13411477409033931679ull,
+ 5191394554327669932ull, 2979261551234076644ull}},
+ {{17769840356809601701ull, 16764346761292414598ull,
+ 6489243192909587415ull, 3724076939042595805ull}},
+ {{6494464204578613159ull, 17395245753448840980ull,
+ 6361620004782186086ull, 2327548086901622378ull}},
+ {{8118080255723266449ull, 12520685154956275417ull,
+ 17175397042832508416ull, 2909435108627027972ull}},
+ {{14759286338081470965ull, 15650856443695344271ull,
+ 3022502229831083904ull, 3636793885783784966ull}},
+ {{13837421904174450802ull, 1116826480909628723ull,
+ 13001499824143630689ull, 4545992357229731207ull}},
+ {{6342545680895337799ull, 12227231596636987712ull,
+ 15043466417730851036ull, 2841245223268582004ull}},
+ {{7928182101119172249ull, 15284039495796234640ull,
+ 357588948454012179ull, 3551556529085727506ull}},
+ {{9910227626398965311ull, 14493363351317905396ull,
+ 9670358222422291032ull, 4439445661357159382ull}},
+ {{15417264303354129128ull, 9058352094573690872ull,
+ 1432287870586543991ull, 2774653538348224614ull}},
+ {{824836305483109794ull, 6711254099789725687ull,
+ 11013731875087955797ull, 3468316922935280767ull}},
+ {{14866103437136050954ull, 13000753643164545012ull,
+ 9155478825432556842ull, 4335396153669100959ull}},
+ {{67942611355256038ull, 12737157045405228537ull,
+ 12639703293536429882ull, 2709622596043188099ull}},
+ {{4696614282621457952ull, 6698074269901759863ull,
+ 11187943098493149449ull, 3387028245053985124ull}},
+ {{1259081834849434536ull, 12984278855804587733ull,
+ 13984928873116436811ull, 4233785306317481405ull}},
+ {{3092769155994590537ull, 5809331275664173381ull,
+ 11046423554911466959ull, 2646115816448425878ull}},
+ {{8477647463420626075ull, 2649978076152828822ull,
+ 4584657406784557891ull, 3307644770560532348ull}},
+ {{1373687292421006786ull, 17147530650473199740ull,
+ 5730821758480697363ull, 4134555963200665435ull}},
+ {{10081926594617905049ull, 8411363647332055885ull,
+ 1275920589836741900ull, 2584097477000415897ull}},
+ {{17214094261699769215ull, 10514204559165069856ull,
+ 6206586755723315279ull, 3230121846250519871ull}},
+ {{3070873753415159903ull, 8531069680528949417ull,
+ 3146547426226756195ull, 4037652307813149839ull}},
+ {{13448511141952944700ull, 3026075541116899433ull,
+ 8884121169032804478ull, 2523532692383218649ull}},
+ {{2975580872159017162ull, 13005966463250900100ull,
+ 15716837479718393501ull, 3154415865479023311ull}},
+ {{3719476090198771453ull, 2422400023781461413ull,
+ 15034360831220603973ull, 3943019831848779139ull}},
+ {{4630515565587926110ull, 3819843024077107335ull,
+ 7090632510299183531ull, 2464387394905486962ull}},
+ {{1176458438557519734ull, 163117761668996265ull,
+ 18086662674728755222ull, 3080484243631858702ull}},
+ {{6082259066624287571ull, 9427269238941021139ull,
+ 13384956306556168219ull, 3850605304539823378ull}},
+ {{1495568907426485780ull, 3586200265124444260ull,
+ 12977283710024993041ull, 2406628315337389611ull}},
+ {{1869461134283107225ull, 9094436349832943229ull,
+ 11609918619103853397ull, 3008285394171737014ull}},
+ {{6948512436281271935ull, 15979731455718566940ull,
+ 5289026237025040938ull, 3760356742714671268ull}},
+ {{13566192309530570768ull, 14599018178251492241ull,
+ 12529013434995426394ull, 2350222964196669542ull}},
+ {{3122682331631049747ull, 9025400685959589494ull,
+ 6437894756889507185ull, 2937778705245836928ull}},
+ {{13126724951393587992ull, 15893436875876874771ull,
+ 8047368446111883981ull, 3672223381557296160ull}},
+ {{11796720170814597086ull, 6031738039563929752ull,
+ 10059210557639854977ull, 4590279226946620200ull}},
+ {{7372950106759123179ull, 15299051320795925855ull,
+ 6287006598524909360ull, 2868924516841637625ull}},
+ {{4604501615021516070ull, 677070077285355703ull,
+ 12470444266583524605ull, 3586155646052047031ull}},
+ {{1143941000349507183ull, 5458023615034082533ull,
+ 10976369314802017852ull, 4482694557565058789ull}},
+ {{3020806134432135941ull, 12634636796251077391ull,
+ 9166073830964955109ull, 2801684098478161743ull}},
+ {{17611065723322333639ull, 1958237940031683026ull,
+ 6845906270278805983ull, 3502105123097702179ull}},
+ {{12790460117298141240ull, 16282855480321767495ull,
+ 3945696819421119574ull, 4377631403872127724ull}},
+ {{14911566600952420131ull, 5565098656773716780ull,
+ 11689432548992975542ull, 2736019627420079827ull}},
+ {{192714177480973548ull, 16179745357821921784ull,
+ 10000104667813831523ull, 3420024534275099784ull}},
+ {{240892721851216935ull, 15612995678850014326ull,
+ 12500130834767289404ull, 4275030667843874730ull}},
+ {{13985616006439174297ull, 534750262426483145ull,
+ 12424267790156943782ull, 2671894167402421706ull}},
+ {{3646961952766804159ull, 9891809864887879740ull,
+ 6306962700841403919ull, 3339867709253027133ull}},
+ {{4558702440958505198ull, 7753076312682461771ull,
+ 12495389394479142803ull, 4174834636566283916ull}},
+ {{543346016385371797ull, 2539829686212844655ull,
+ 17032990408404240060ull, 2609271647853927447ull}},
+ {{14514240575763878458ull, 3174787107766055818ull,
+ 16679551992077912171ull, 3261589559817409309ull}},
+ {{8919428682850072264ull, 17803541939989733485ull,
+ 7014381934815226501ull, 4076986949771761637ull}},
+ {{7880485935994989117ull, 13433056721707277380ull,
+ 6689831718473210515ull, 2548116843607351023ull}},
+ {{9850607419993736397ull, 12179634883706708821ull,
+ 3750603629664125240ull, 3185146054509188779ull}},
+ {{16924945293419558400ull, 15224543604633386026ull,
+ 76568518652768646ull, 3981432568136485974ull}},
+ {{15189776826814611904ull, 4903653734468478362ull,
+ 13882913379440144116ull, 2488395355085303733ull}},
+ {{9763848996663489072ull, 6129567168085597953ull,
+ 3518583669018016433ull, 3110494193856629667ull}},
+ {{16816497264256749244ull, 12273644978534385345ull,
+ 18233287641554684253ull, 3888117742320787083ull}},
+ {{3592781762519386422ull, 9976871120797684793ull,
+ 9089961766757983706ull, 2430073588950491927ull}},
+ {{9102663221576620931ull, 3247716864142330183ull,
+ 6750766190020091729ull, 3037591986188114909ull}},
+ {{6766643008543388259ull, 8671332098605300633ull,
+ 13050143755952502565ull, 3796989982735143636ull}},
+ {{15758366926408087422ull, 7725425570842006847ull,
+ 17379711884325089911ull, 2373118739209464772ull}},
+ {{15086272639582721374ull, 5045095945125120655ull,
+ 3277895781696810773ull, 2966398424011830966ull}},
+ {{14246154781051013813ull, 10918055949833788723ull,
+ 13320741763975789274ull, 3707998030014788707ull}},
+ {{6598003728943189681ull, 11435470987073505856ull,
+ 6019620593271174344ull, 2317498768759242942ull}},
+ {{8247504661178987102ull, 14294338733841882320ull,
+ 16747897778443743738ull, 2896873460949053677ull}},
+ {{10309380826473733877ull, 8644551380447577092ull,
+ 7099814167772515961ull, 3621091826186317097ull}},
+ {{12886726033092167346ull, 15417375243986859269ull,
+ 13486453728143032855ull, 4526364782732896371ull}},
+ {{10360046779896298543ull, 16553388555132868899ull,
+ 6123190570875701582ull, 2828977989208060232ull}},
+ {{8338372456442985275ull, 11468363657061310316ull,
+ 7653988213594626978ull, 3536222486510075290ull}},
+ {{10422965570553731594ull, 5112082534471862087ull,
+ 344113230138507915ull, 4420278108137594113ull}},
+ {{13431882509237164102ull, 889208574831219852ull,
+ 11744285814905037207ull, 2762673817585996320ull}},
+ {{16789853136546455128ull, 14946568773821188527ull,
+ 14680357268631296508ull, 3453342271982495400ull}},
+ {{16375630402255681006ull, 236466893566934043ull,
+ 18350446585789120636ull, 4316677839978119250ull}},
+ {{7928925992196106677ull, 9371163845334109585ull,
+ 16080715134545588301ull, 2697923649986324531ull}},
+ {{14522843508672521250ull, 16325640825095024885ull,
+ 15489207899754597472ull, 3372404562482905664ull}},
+ {{4318496330558487850ull, 1960306957659229491ull, 914765800983695225ull,
+ 4215505703103632081ull}},
+ {{393217197385360954ull, 12754406894605488192ull,
+ 12100943671683279275ull, 2634691064439770050ull}},
+ {{491521496731701193ull, 11331322599829472336ull,
+ 5902807552749323286ull, 3293363830549712563ull}},
+ {{614401870914626491ull, 4940781212932064612ull, 2766823422509266204ull,
+ 4116704788187140704ull}},
+ {{9607373206176417365ull, 12311360294937316190ull,
+ 1729264639068291377ull, 2572940492616962940ull}},
+ {{2785844470865745898ull, 1554142313389481526ull,
+ 2161580798835364222ull, 3216175615771203675ull}},
+ {{12705677625436958181ull, 11166049928591627715ull,
+ 16537034053826368989ull, 4020219519714004593ull}},
+ {{5635205506684404911ull, 9284624214583461274ull,
+ 3418117256000398762ull, 2512637199821252871ull}},
+ {{16267378920210281947ull, 2382408231374550784ull,
+ 18107704625282662165ull, 3140796499776566088ull}},
+ {{1887479576553300817ull, 7589696307645576385ull,
+ 4187886707893776090ull, 3925995624720707611ull}},
+ {{12708889781414282771ull, 9355246210705873144ull,
+ 311586183219916104ull, 2453747265450442257ull}},
+ {{15886112226767853464ull, 11694057763382341430ull,
+ 5001168747452283034ull, 3067184081813052821ull}},
+ {{10634268246605041021ull, 5394200167373150980ull,
+ 10863146952742741697ull, 3833980102266316026ull}},
+ {{15869789690982926447ull, 14900590150676689122ull,
+ 11401152863891601464ull, 2396237563916447516ull}},
+ {{10613865076873882250ull, 178993614636309787ull,
+ 14251441079864501831ull, 2995296954895559395ull}},
+ {{8655645327664964908ull, 14058800073577550946ull,
+ 13202615331403239384ull, 3744121193619449244ull}},
+ {{10021464348217990972ull, 8786750045985969341ull,
+ 17475006618981800423ull, 2340075746012155777ull}},
+ {{17138516453699876619ull, 6371751539055073772ull,
+ 8008700218445086817ull, 2925094682515194722ull}},
+ {{2976401493415294157ull, 12576375442246230120ull,
+ 787503236201582713ull, 3656368353143993403ull}},
+ {{3720501866769117697ull, 1885411247525623938ull,
+ 14819437100534142104ull, 4570460441429991753ull}},
+ {{6936999685158086465ull, 1178382029703514961ull,
+ 2344619160192756959ull, 2856537775893744846ull}},
+ {{13282935624874995985ull, 15308035592411557413ull,
+ 12154145987095722006ull, 3570672219867181057ull}},
+ {{2768611475811581269ull, 9911672453659670959ull,
+ 1357624428587488796ull, 4463340274833976322ull}},
+ {{8647911200023320149ull, 15418167320392070157ull,
+ 5460201286294568401ull, 2789587671771235201ull}},
+ {{15421575018456538090ull, 5437651095207923984ull,
+ 11436937626295598406ull, 3486984589714044001ull}},
+ {{830224699361120997ull, 16020435905864680789ull, 461113977587334295ull,
+ 4358730737142555002ull}},
+ {{2824733446314394575ull, 16930301468806507349ull,
+ 4899882254419471838ull, 2724206710714096876ull}},
+ {{8142602826320381123ull, 11939504799153358378ull,
+ 6124852818024339798ull, 3405258388392621095ull}},
+ {{954881496045700595ull, 5701008962086922165ull, 3044380004103036844ull,
+ 4256572985490776369ull}},
+ {{2902643944242256824ull, 12786502638159102161ull,
+ 13431952548632867787ull, 2660358115931735230ull}},
+ {{8239990948730208934ull, 11371442279271489797ull,
+ 7566568648936308926ull, 3325447644914669038ull}},
+ {{14911674704340149072ull, 4990930812234586438ull,
+ 234838774315610350ull, 4156809556143336298ull}},
+ {{4708110671785205266ull, 16954389812928780236ull,
+ 4758460252374644372ull, 2598005972589585186ull}},
+ {{5885138339731506582ull, 2746243192451423679ull,
+ 15171447352323081274ull, 3247507465736981482ull}},
+ {{2744736906236995324ull, 12656176027419055407ull,
+ 9740937153549075784ull, 4059384332171226853ull}},
+ {{8632989594039203934ull, 7910110017136909629ull,
+ 8393928730181866317ull, 2537115207607016783ull}},
+ {{15402923010976392821ull, 14499323539848524940ull,
+ 5880724894299944992ull, 3171394009508770979ull}},
+ {{806909690010939410ull, 18124154424810656176ull,
+ 2739220099447543336ull, 3964242511885963724ull}},
+ {{504318556256837131ull, 11327596515506660110ull,
+ 10935384599009490393ull, 2477651569928727327ull}},
+ {{9853770232175822222ull, 324437589101161425ull, 9057544730334475088ull,
+ 3097064462410909159ull}},
+ {{16928898808647165682ull, 405546986376451781ull,
+ 6710244894490705956ull, 3871330578013636449ull}},
+ {{12886404764618172503ull, 9476838903340058171ull,
+ 15723118105125160982ull, 2419581611258522780ull}},
+ {{11496319937345327725ull, 2622676592320296906ull,
+ 1207153557696899612ull, 3024477014073153476ull}},
+ {{5147027884826883848ull, 3278345740400371133ull,
+ 1508941947121124515ull, 3780596267591441845ull}},
+ {{5522735437230496357ull, 18189867152246089622ull,
+ 3248931726164396773ull, 2362872667244651153ull}},
+ {{16126791333392896254ull, 8902275885025448315ull,
+ 8672850676132883871ull, 2953590834055813941ull}},
+ {{15546803148313732414ull, 6516158837854422490ull,
+ 15452749363593492743ull, 3691988542569767426ull}},
+ {{14328437986123470663ull, 10990128301300095912ull,
+ 14269654370673320868ull, 2307492839106104641ull}},
+ {{17910547482654338328ull, 13737660376625119890ull,
+ 4002009908059487373ull, 2884366048882630802ull}},
+ {{13164812316463147102ull, 3337017415499236151ull,
+ 14225884421929135025ull, 3605457561103288502ull}},
+ {{11844329377151545974ull, 8782957787801433093ull,
+ 8558983490556642973ull, 4506821951379110628ull}},
+ {{9708548869933410186ull, 7795191626589589635ull,
+ 14572736718452677666ull, 2816763719611944142ull}},
+ {{7524000068989374828ull, 520617496382211236ull, 8992548861211071275ull,
+ 3520954649514930178ull}},
+ {{9405000086236718535ull, 14485829925759927757ull,
+ 2017314039659063285ull, 4401193311893662723ull}},
+ {{8183968063111643037ull, 11359486712813648800ull,
+ 17401722339282772217ull, 2750745819933539201ull}},
+ {{10229960078889553796ull, 364300335734897288ull,
+ 7917094868821301560ull, 3438432274916924002ull}},
+ {{12787450098611942244ull, 455375419668621610ull, 672996549171851142ull,
+ 4298040343646155003ull}},
+ {{12603842330059851807ull, 14119667692575052218ull,
+ 16561523907728264627ull, 2686275214778846876ull}},
+ {{6531430875720038950ull, 13037898597291427369ull,
+ 2255160810950779168ull, 3357844018473558596ull}},
+ {{12775974613077436592ull, 16297373246614284211ull,
+ 2818951013688473960ull, 4197305023091948245ull}},
+ {{5679141123959703918ull, 10185858279133927632ull,
+ 4067687392768990177ull, 2623315639432467653ull}},
+ {{7098926404949629898ull, 17344008867344797444ull,
+ 9696295259388625625ull, 3279144549290584566ull}},
+ {{8873658006187037372ull, 7844953028898833093ull,
+ 2896997037381006224ull, 4098930686613230708ull}},
+ {{7851879263080592310ull, 4903095643061770683ull,
+ 11033995185217904698ull, 2561831679133269192ull}},
+ {{5203163060423352483ull, 15352241590681989162ull,
+ 13792493981522380872ull, 3202289598916586490ull}},
+ {{15727325862383966411ull, 743557914642934836ull,
+ 8017245440048200283ull, 4002861998645733113ull}},
+ {{606206627135203199ull, 16605624761147691937ull,
+ 16539993446098594936ull, 2501788749153583195ull}},
+ {{5369444302346391903ull, 2310286877725063305ull,
+ 16063305789195855767ull, 3127235936441978994ull}},
+ {{11323491396360377783ull, 16722916652438492843ull,
+ 10855760199640043900ull, 3909044920552473743ull}},
+ {{4771339113511542162ull, 1228450870919282219ull,
+ 13702379152416109294ull, 2443153075345296089ull}},
+ {{1352487873462039799ull, 10758935625503878582ull,
+ 3292915885237972905ull, 3053941344181620112ull}},
+ {{10913981878682325556ull, 18060355550307236131ull,
+ 4116144856547466131ull, 3817426680227025140ull}},
+ {{4515395664962759521ull, 8981879209728328630ull,
+ 11795962572196942140ull, 2385891675141890712ull}},
+ {{14867616618058225209ull, 11227349012160410787ull,
+ 14744953215246177675ull, 2982364593927363390ull}},
+ {{13972834754145393607ull, 9422500246773125580ull,
+ 9207819482202946286ull, 3727955742409204238ull}},
+ {{17956393758195646813ull, 1277376635805815583ull,
+ 1143201157949453525ull, 2329972339005752649ull}},
+ {{17833806179317170612ull, 6208406813184657383ull,
+ 6040687465864204810ull, 2912465423757190811ull}},
+ {{17680571705719075361ull, 16983880553335597537ull,
+ 2939173313902868108ull, 3640581779696488514ull}},
+ {{8265656576866680489ull, 2783106617959945306ull,
+ 12897338679233360944ull, 4550727224620610642ull}},
+ {{9777721378969063210ull, 1739441636224965816ull,
+ 12672522692948238494ull, 2844204515387881651ull}},
+ {{12222151723711329012ull, 11397674082135983078ull,
+ 11228967347757910213ull, 3555255644234852064ull}},
+ {{6054317617784385457ull, 412034547387815136ull,
+ 14036209184697387767ull, 4444069555293565080ull}},
+ {{3783948511115240911ull, 7175050619758466316ull,
+ 8772630740435867354ull, 2777543472058478175ull}},
+ {{4729935638894051138ull, 18192185311552858703ull,
+ 6354102407117446288ull, 3471929340073097719ull}},
+ {{1300733530190176019ull, 4293487565731521763ull,
+ 3330941990469419957ull, 4339911675091372149ull}},
+ {{16953859520864717676ull, 4989272737795895053ull,
+ 4387681753257081425ull, 2712444796932107593ull}},
+ {{7357266345798733383ull, 10848276940672256721ull,
+ 10096288209998739685ull, 3390555996165134491ull}},
+ {{13808268950675804632ull, 18172032194267708805ull,
+ 8008674244071036702ull, 4238194995206418114ull}},
+ {{10936011103386071847ull, 6745834102989930099ull,
+ 9617107420971785843ull, 2648871872004011321ull}},
+ {{9058327860805201905ull, 3820606610310024720ull,
+ 16633070294642120208ull, 3311089840005014151ull}},
+ {{11322909826006502381ull, 4775758262887530900ull,
+ 16179651849875262356ull, 4138862300006267689ull}},
+ {{16300190678108839796ull, 12208220951159482620ull,
+ 3194753378530957116ull, 2586788937503917306ull}},
+ {{1928494273926498129ull, 15260276188949353276ull,
+ 13216813760018472203ull, 3233486171879896632ull}},
+ {{2410617842408122661ull, 14463659217759303691ull,
+ 16521017200023090254ull, 4041857714849870790ull}},
+ {{17647537216000934328ull, 4428100992672176902ull,
+ 5713949731587043505ull, 2526161071781169244ull}},
+ {{12836049483146392101ull, 10146812259267609032ull,
+ 7142437164483804381ull, 3157701339726461555ull}},
+ {{16045061853932990127ull, 17295201342511899194ull,
+ 4316360437177367572ull, 3947126674658076944ull}},
+ {{14639849677135506733ull, 1586128802215161188ull,
+ 2697725273235854733ull, 2466954171661298090ull}},
+ {{18299812096419383417ull, 6594347021196339389ull,
+ 12595528628399594224ull, 3083692714576622612ull}},
+ {{9039707065242065559ull, 8242933776495424237ull,
+ 15744410785499492780ull, 3854615893220778265ull}},
+ {{7955659924989984926ull, 14375205647164415956ull,
+ 2922727713296101131ull, 2409134933262986416ull}},
+ {{9944574906237481158ull, 13357321040528132041ull,
+ 3653409641620126414ull, 3011418666578733020ull}},
+ {{17042404651224239351ull, 7473279263805389243ull,
+ 4566762052025158018ull, 3764273333223416275ull}},
+ {{8345659897801455643ull, 9282485558305756181ull, 548383273302029809ull,
+ 2352670833264635172ull}},
+ {{15043760890679207457ull, 16214792966309583130ull,
+ 685479091627537261ull, 2940838541580793965ull}},
+ {{9581329076494233513ull, 6433433152604815201ull,
+ 5468534882961809481ull, 3676048176975992456ull}},
+ {{16588347364045179795ull, 12653477459183406905ull,
+ 6835668603702261851ull, 4595060221219990570ull}},
+ {{3450188074887155516ull, 5602580402775935364ull,
+ 8883978895741301561ull, 2871912638262494106ull}},
+ {{4312735093608944395ull, 11614911521897307109ull,
+ 1881601582821851143ull, 3589890797828117633ull}},
+ {{10002604885438568398ull, 9906953383944245982ull,
+ 6963687996954701833ull, 4487363497285147041ull}},
+ {{1639942034971717345ull, 17721060911033623499ull,
+ 15881520044165158405ull, 2804602185803216900ull}},
+ {{15884985598996810393ull, 8316268083509865661ull,
+ 1405155981496896391ull, 3505752732254021126ull}},
+ {{6021173943463849279ull, 5783649085959944173ull,
+ 10979817013725896297ull, 4382190915317526407ull}},
+ {{6069076723878599752ull, 15143995724793434868ull,
+ 13779914661219767041ull, 2738869322073454004ull}},
+ {{7586345904848249689ull, 5094936600709629873ull,
+ 17224893326524708802ull, 3423586652591817505ull}},
+ {{14094618399487700016ull, 15592042787741813149ull,
+ 7696058602873722290ull, 4279483315739771882ull}},
+ {{11114979508893506462ull, 14356712760766021122ull,
+ 9421722645223464335ull, 2674677072337357426ull}},
+ {{4670352349262107269ull, 13334204932530138499ull,
+ 2553781269674554611ull, 3343346340421696783ull}},
+ {{1226254418150246183ull, 12056070147235285220ull,
+ 17027284642375356976ull, 4179182925527120978ull}},
+ {{9989781048198679672ull, 7535043842022053262ull,
+ 15253738919911986014ull, 2611989328454450611ull}},
+ {{3263854273393573782ull, 195432765672790770ull,
+ 14455487631462594614ull, 3264986660568063264ull}},
+ {{13303189878596743036ull, 9467662993945764270ull,
+ 18069359539328243267ull, 4081233325710079080ull}},
+ {{3702807655695576494ull, 3611446362002408717ull,
+ 11293349712080152042ull, 2550770828568799425ull}},
+ {{9240195588046858521ull, 13737679989357786704ull,
+ 281629084818026340ull, 3188463535710999282ull}},
+ {{11550244485058573151ull, 17172099986697233380ull,
+ 9575408392877308733ull, 3985579419638749102ull}},
+ {{16442274840016384027ull, 13038405500899464814ull,
+ 1372944227120930054ull, 2490987137274218189ull}},
+ {{11329471513165704226ull, 7074634839269555210ull,
+ 6327866302328550472ull, 3113733921592772736ull}},
+ {{4938467354602354475ull, 8843293549086944013ull,
+ 7909832877910688090ull, 3892167401990965920ull}},
+ {{5392385105840165499ull, 10138744486606727912ull,
+ 4943645548694180056ull, 2432604626244353700ull}},
+ {{6740481382300206873ull, 12673430608258409890ull,
+ 6179556935867725070ull, 3040755782805442125ull}},
+ {{17648973764730034400ull, 6618416223468236554ull,
+ 12336132188262044242ull, 3800944728506802656ull}},
+ {{15642294621383659404ull, 8748196158095035750ull,
+ 7710082617663777651ull, 2375590455316751660ull}},
+ {{10329496239874798447ull, 6323559179191406784ull,
+ 9637603272079722064ull, 2969488069145939575ull}},
+ {{12911870299843498058ull, 7904448973989258480ull,
+ 7435318071672264676ull, 3711860086432424469ull}},
+ {{8069918937402186287ull, 14163652645598062358ull,
+ 6952916804008859374ull, 2319912554020265293ull}},
+ {{864026634897957050ull, 8481193770142802140ull,
+ 13302832023438462122ull, 2899890692525331616ull}},
+ {{1080033293622446313ull, 1378120175823726867ull,
+ 16628540029298077653ull, 3624863365656664520ull}},
+ {{15185099672310221603ull, 6334336238207046487ull,
+ 2338930962913045450ull, 4531079207070830651ull}},
+ {{16408216322834970358ull, 8570646167306791958ull,
+ 17602732916316511070ull, 2831924504419269156ull}},
+ {{11286898366688937139ull, 1489935672278714140ull,
+ 3556672071686087222ull, 3539905630524086446ull}},
+ {{14108622958361171424ull, 11085791627203168483ull,
+ 13669212126462384835ull, 4424882038155108057ull}},
+ {{6512046339762038188ull, 4622776757788286350ull,
+ 1625728551397908666ull, 2765551273846942536ull}},
+ {{17363429961557323543ull, 15001842984090133745ull,
+ 2032160689247385832ull, 3456939092308678170ull}},
+ {{7869229396664490717ull, 305559656403115566ull,
+ 11763572898414008099ull, 4321173865385847712ull}},
+ {{306582354487918794ull, 16331875849747804893ull,
+ 7352233061508755061ull, 2700733665866154820ull}},
+ {{4994913961537286397ull, 6579786756902592404ull,
+ 9190291326885943827ull, 3375917082332693525ull}},
+ {{6243642451921607996ull, 3613047427700852601ull,
+ 16099550177034817688ull, 4219896352915866906ull}},
+ {{15431491578519474757ull, 2258154642313032875ull,
+ 14673904879074148959ull, 2637435220572416816ull}},
+ {{14677678454721955543ull, 16657751358173454806ull,
+ 18342381098842686198ull, 3296794025715521020ull}},
+ {{9123726031547668620ull, 11598817160862042700ull,
+ 4481232299843806132ull, 4120992532144401276ull}},
+ {{14925700806572068696ull, 16472632762393552495ull,
+ 12024142224257154640ull, 2575620332590250797ull}},
+ {{14045439989787697966ull, 2144046879282389003ull,
+ 1195119725039279589ull, 3219525415737813497ull}},
+ {{12945113968807234553ull, 7291744617530374158ull,
+ 6105585674726487390ull, 4024406769672266871ull}},
+ {{3479010212077133692ull, 18392398441238647561ull,
+ 10733520074345136474ull, 2515254231045166794ull}},
+ {{8960448783523805019ull, 13767126014693533643ull,
+ 4193528056076644785ull, 3144067788806458493ull}},
+ {{6588874960977368369ull, 3373849463084753342ull,
+ 9853596088523193886ull, 3930084736008073116ull}},
+ {{17953104905893018943ull, 15943713969710134550ull,
+ 15381869592181771986ull, 2456302960005045697ull}},
+ {{13218009095511497870ull, 10706270425282892380ull,
+ 5392278934945051271ull, 3070378700006307122ull}},
+ {{16522511369389372338ull, 8771152013176227571ull,
+ 15963720705536089897ull, 3837973375007883902ull}},
+ {{8020726596654663759ull, 17011185054303611992ull,
+ 5365639422532668281ull, 2398733359379927439ull}},
+ {{10025908245818329699ull, 7428923262597351278ull,
+ 2095363259738447448ull, 2998416699224909299ull}},
+ {{3309013270418136316ull, 9286154078246689098ull,
+ 16454262129955223022ull, 3748020874031136623ull}},
+ {{6679819312438723102ull, 1192160280476792782ull,
+ 17201442858863096245ull, 2342513046269460389ull}},
+ {{17573146177403179685ull, 6101886369023378881ull,
+ 7666745518296706594ull, 2928141307836825487ull}},
+ {{8131374666471810894ull, 16850729998133999410ull,
+ 4971745879443495338ull, 3660176634796031859ull}},
+ {{940846296234987809ull, 11840040460812723455ull,
+ 1602996330876981269ull, 4575220793495039824ull}},
+ {{7505557962787949237ull, 9705868297221646111ull,
+ 1001872706798113293ull, 2859512995934399890ull}},
+ {{4770261435057548642ull, 16744021389954445543ull,
+ 10475712920352417424ull, 3574391244917999862ull}},
+ {{1351140775394547898ull, 2483282663733505313ull,
+ 3871269113585745973ull, 4467989056147499828ull}},
+ {{12373678030690062197ull, 3857894674047134772ull,
+ 11642915232845867041ull, 2792493160092187392ull}},
+ {{15467097538362577746ull, 9434054360986306369ull,
+ 14553644041057333801ull, 3490616450115234240ull}},
+ {{5498813867671058470ull, 16404253969660270866ull,
+ 18192055051321667251ull, 4363270562644042800ull}},
+ {{8048444685721799448ull, 7946815721823975339ull,
+ 11370034407076042032ull, 2727044101652526750ull}},
+ {{5448869838724861406ull, 9933519652279969174ull,
+ 4989170971990276732ull, 3408805127065658438ull}},
+ {{16034459335260852565ull, 12416899565349961467ull,
+ 15459835751842621723ull, 4261006408832073047ull}},
+ {{7715694075324338901ull, 5454719219130031965ull,
+ 16579926372542720433ull, 2663129005520045654ull}},
+ {{14256303612582811531ull, 11430085042339927860ull,
+ 11501535928823624733ull, 3328911256900057068ull}},
+ {{17820379515728514413ull, 452548247642746113ull,
+ 14376919911029530917ull, 4161139071125071335ull}},
+ {{4220208169689239652ull, 2588685663990410273ull,
+ 15903103972034538679ull, 2600711919453169584ull}},
+ {{9886946230538937469ull, 17070915135270176553ull,
+ 1432135891333621732ull, 3250889899316461981ull}},
+ {{16970368806601059741ull, 2891899845378169075ull,
+ 6401855882594415070ull, 4063612374145577476ull}},
+ {{8300637494911968386ull, 15642495458643519384ull,
+ 13224531963476285226ull, 2539757733840985922ull}},
+ {{10375796868639960482ull, 10329747286449623422ull,
+ 7307292917490580725ull, 3174697167301232403ull}},
+ {{3746374048945174795ull, 17523870126489417182ull,
+ 4522430128435838002ull, 3968371459126540504ull}},
+ {{16176541835872897959ull, 15564104847483273642ull,
+ 2826518830272398751ull, 2480232161954087815ull}},
+ {{10997305257986346641ull, 14843445040926704149ull,
+ 17368206593122662151ull, 3100290202442609768ull}},
+ {{18358317590910321205ull, 13942620282730992282ull,
+ 3263514167693776073ull, 3875362753053262211ull}},
+ {{16085634512746338657ull, 1796608649065788320ull,
+ 18180597419304467710ull, 2422101720658288881ull}},
+ {{1660299067223371705ull, 11469132848187011209ull,
+ 8890688718848420925ull, 3027627150822861102ull}},
+ {{6687059852456602536ull, 501358004951600299ull, 1889988861705750349ull,
+ 3784533938528576378ull}},
+ {{1873569398571682633ull, 2619191762308444139ull,
+ 5792929056993481872ull, 2365333711580360236ull}},
+ {{16177019803496767003ull, 3273989702885555173ull,
+ 7241161321241852340ull, 2956667139475450295ull}},
+ {{6386216699088795042ull, 4092487128606943967ull,
+ 4439765633124927521ull, 3695833924344312869ull}},
+ {{10908914464571578757ull, 14087019501447809739ull,
+ 5080696529916773652ull, 2309896202715195543ull}},
+ {{9024457062287085542ull, 17608774376809762174ull,
+ 1739184643968579161ull, 2887370253393994429ull}},
+ {{2057199291004081120ull, 8175909915730039006ull,
+ 6785666823388111856ull, 3609212816742493036ull}},
+ {{11794871150609877208ull, 10219887394662548757ull,
+ 8482083529235139820ull, 4511516020928116295ull}},
+ {{9677637478344867207ull, 15610801658518868781ull,
+ 12218831233413044243ull, 2819697513080072684ull}},
+ {{16708732866358471913ull, 14901816054721198072ull,
+ 15273539041766305304ull, 3524621891350090855ull}},
+ {{2439172009238538275ull, 180525994691945975ull,
+ 14480237783780493727ull, 4405777364187613569ull}},
+ {{8442011533415168278ull, 7030357774323548090ull,
+ 2132619587221726723ull, 2753610852617258481ull}},
+ {{1329142379914184539ull, 4176261199477047209ull,
+ 7277460502454546308ull, 3442013565771573101ull}},
+ {{6273113993320118578ull, 5220326499346309011ull,
+ 13708511646495570789ull, 4302516957214466376ull}},
+ {{1614853236611380159ull, 5568547071305137084ull,
+ 8567819779059731743ull, 2689073098259041485ull}},
+ {{2018566545764225199ull, 2348997820704033451ull,
+ 15321460742252052583ull, 3361341372823801856ull}},
+ {{16358266237487445211ull, 16771305331162205525ull,
+ 705081854105514112ull, 4201676716029752321ull}},
+ {{12529759407643347209ull, 10482065831976378453ull,
+ 11969891204884416080ull, 2626047947518595200ull}},
+ {{1827141204272020299ull, 13102582289970473067ull,
+ 14962364006105520100ull, 3282559934398244000ull}},
+ {{16118984560622189086ull, 16378227862463091333ull,
+ 256210933922348509ull, 4103199917997805001ull}},
+ {{12380208359602562131ull, 12542235423253126035ull,
+ 11689346879769937578ull, 2564499948748628125ull}},
+ {{10863574431075814759ull, 6454422242211631736ull,
+ 776625544430258261ull, 3205624935935785157ull}},
+ {{13579468038844768449ull, 12679713821191927574ull,
+ 5582467948965210730ull, 4007031169919731446ull}},
+ {{3875481505850592377ull, 12536507156672342638ull,
+ 17324100523385420418ull, 2504394481199832153ull}},
+ {{14067723919168016279ull, 6447261908985652489ull,
+ 7820067598949611811ull, 3130493101499790192ull}},
+ {{3749596843677856636ull, 3447391367804677708ull,
+ 9775084498687014764ull, 3913116376874737740ull}},
+ {{11566870064153436206ull, 11377991641732699375ull,
+ 15332799848534160035ull, 2445697735546711087ull}},
+ {{9846901561764407353ull, 9610803533738486315ull,
+ 14554313792240312140ull, 3057122169433388859ull}},
+ {{7696940933778121287ull, 12013504417173107894ull,
+ 13581206221873002271ull, 3821402711791736074ull}},
+ {{198902065183937901ull, 14425969288374274290ull,
+ 13099939907098014323ull, 2388376694869835046ull}},
+ {{9471999618334698184ull, 13420775592040454958ull,
+ 7151552847017742096ull, 2985470868587293808ull}},
+ {{2616627486063596922ull, 16775969490050568698ull,
+ 8939441058772177620ull, 3731838585734117260ull}},
+ {{6247078197217135980ull, 1261608894426829628ull,
+ 14810522698587386821ull, 2332399116083823287ull}},
+ {{7808847746521419975ull, 6188697136460924939ull,
+ 13901467354806845622ull, 2915498895104779109ull}},
+ {{5149373664724387065ull, 16959243457430931982ull,
+ 3541776138226393315ull, 3644373618880973887ull}},
+ {{15660089117760259639ull, 16587368303361277073ull,
+ 18262278228065155356ull, 4555467023601217358ull}},
+ {{2870026670959080419ull, 1143733152746022363ull,
+ 6802237874113334194ull, 2847166889750760849ull}},
+ {{17422591393981014235ull, 10653038477787303761ull,
+ 13114483361069055646ull, 3558958612188451061ull}},
+ {{7943181187194104082ull, 4092926060379353894ull,
+ 2558046146054155846ull, 4448698265235563827ull}},
+ {{352802223568927147ull, 16393136843019259896ull,
+ 17739679905779705067ull, 2780436415772227391ull}},
+ {{441002779461158934ull, 15879735035346686966ull,
+ 17562913863797243430ull, 3475545519715284239ull}},
+ {{9774625511181224475ull, 10626296757328582899ull,
+ 17341956311319166384ull, 4344431899644105299ull}},
+ {{3803297935274571345ull, 6641435473330364312ull,
+ 8532879685360785038ull, 2715269937277565812ull}},
+ {{4754122419093214181ull, 17525166378517731198ull,
+ 10666099606700981297ull, 3394087421596957265ull}},
+ {{15166025060721293535ull, 8071399917865000285ull,
+ 17944310526803614526ull, 4242609276996196581ull}},
+ {{11784608672164502411ull, 432938930238237274ull,
+ 13521037088465953031ull, 2651630798122622863ull}},
+ {{5507388803350852206ull, 14376231718079960305ull,
+ 12289610342155053384ull, 3314538497653278579ull}},
+ {{11495922022615953162ull, 17970289647599950381ull,
+ 10750326909266428826ull, 4143173122066598224ull}},
+ {{9490794273348664678ull, 15843117048177356892ull,
+ 6718954318291518016ull, 2589483201291623890ull}},
+ {{11863492841685830848ull, 1357152236512144499ull,
+ 17622064934719173329ull, 3236854001614529862ull}},
+ {{10217680033679900655ull, 6308126314067568528ull,
+ 12804209131544190853ull, 4046067502018162328ull}},
+ {{6386050021049937910ull, 6248421955505924282ull,
+ 8002630707215119283ull, 2528792188761351455ull}},
+ {{17205934563167198195ull, 3198841425955017448ull,
+ 5391602365591511200ull, 3160990235951689319ull}},
+ {{3060674130249446128ull, 3998551782443771811ull,
+ 2127816938562001096ull, 3951237794939611649ull}},
+ {{18053822395901761494ull, 2499094864027357381ull,
+ 12859100632669720445ull, 2469523621837257280ull}},
+ {{8732219939595038155ull, 7735554598461584631ull,
+ 16073875790837150556ull, 3086904527296571600ull}},
+ {{6303588906066409790ull, 9669443248076980789ull,
+ 1645600664836886579ull, 3858630659120714501ull}},
+ {{6245586075505200071ull, 3737559020834419041ull,
+ 3334343424736748064ull, 2411644161950446563ull}},
+ {{12418668612808887993ull, 4671948776043023801ull,
+ 18002987336203098792ull, 3014555202438058203ull}},
+ {{1688277710728946279ull, 5839935970053779752ull,
+ 17892048151826485586ull, 3768194003047572754ull}},
+ {{1055173569205591424ull, 8261645999711000249ull,
+ 15794216113318941395ull, 2355121251904732971ull}},
+ {{5930652979934377184ull, 5715371481211362407ull,
+ 15131084123221288840ull, 2943901564880916214ull}},
+ {{2801630206490583576ull, 7144214351514203009ull,
+ 9690483117171835242ull, 3679876956101145268ull}},
+ {{8113723776540617374ull, 18153639976247529569ull,
+ 12113103896464794052ull, 4599846195126431585ull}},
+ {{16600292406406355619ull, 2122652948299930172ull,
+ 653160907649414427ull, 2874903871954019741ull}},
+ {{2303621434298392908ull, 16488374240657076428ull,
+ 5428137152989155937ull, 3593629839942524676ull}},
+ {{2879526792872991135ull, 6775409745539181823ull,
+ 6785171441236444922ull, 4492037299928155845ull}},
+ {{8717233273186701315ull, 8846317109389376543ull,
+ 6546575159986472028ull, 2807523312455097403ull}},
+ {{6284855573055988740ull, 11057896386736720679ull,
+ 3571532931555702131ull, 3509404140568871754ull}},
+ {{3244383447892598021ull, 9210684464993512945ull,
+ 13687788201299403472ull, 4386755175711089692ull}},
+ {{13556954701001343523ull, 5756677790620945590ull,
+ 17778239662666902978ull, 2741721984819431057ull}},
+ {{7722821339396903596ull, 16419219275130957796ull,
+ 8387741523051465010ull, 3427152481024288822ull}},
+ {{9653526674246129495ull, 11300652057058921437ull,
+ 1261304866959555455ull, 4283940601280361028ull}},
+ {{8339297180617524886ull, 13980436563302907754ull,
+ 10011687578704497967ull, 2677462875800225642ull}},
+ {{1200749438917130300ull, 12863859685701246789ull,
+ 3291237436525846651ull, 3346828594750282053ull}},
+ {{6112622817073800779ull, 11468138588699170582ull,
+ 8725732814084696218ull, 4183535743437852566ull}},
+ {{17655447315953289199ull, 11779272636364369517ull,
+ 841896990375547232ull, 2614709839648657854ull}},
+ {{8234251089659447786ull, 14724090795455461897ull,
+ 10275743274824209848ull, 3268387299560822317ull}},
+ {{14904499880501697637ull, 18405113494319327371ull,
+ 17456365111957650214ull, 4085484124451027896ull}},
+ {{7009469416099867071ull, 6891509915522191703ull,
+ 10910228194973531384ull, 2553427577781892435ull}},
+ {{4150150751697445935ull, 8614387394402739629ull,
+ 9026099225289526326ull, 3191784472227365544ull}},
+ {{9799374458049195323ull, 1544612206148648728ull,
+ 11282624031611907908ull, 3989730590284206930ull}},
+ {{6124609036280747077ull, 10188754665697681263ull,
+ 11663326038184830346ull, 2493581618927629331ull}},
+ {{3044075276923545942ull, 3512571295267325771ull,
+ 9967471529303650029ull, 3116977023659536664ull}},
+ {{17640152151436596139ull, 9002400137511545117ull,
+ 12459339411629562536ull, 3896221279574420830ull}},
+ {{13330938103861566539ull, 5626500085944715698ull,
+ 3175401113841088681ull, 2435138299734013019ull}},
+ {{7440300592972182366ull, 11644811125858282527ull,
+ 17804309447583524563ull, 3043922874667516273ull}},
+ {{4688689722787840053ull, 9944327888895465255ull,
+ 8420328754197241992ull, 3804903593334395342ull}},
+ {{9847960104383481889ull, 6215204930559665784ull, 651019452945888341ull,
+ 2378064745833997089ull}},
+ {{12309950130479352362ull, 12380692181626970134ull,
+ 5425460334609748330ull, 2972580932292496361ull}},
+ {{6164065626244414644ull, 6252493190178936860ull,
+ 11393511436689573317ull, 3715726165365620451ull}},
+ {{13075913053257534961ull, 6213651253075529489ull,
+ 4815101638717289371ull, 2322328853353512782ull}},
+ {{2509833261289754989ull, 3155378047917023958ull,
+ 15242249085251387522ull, 2902911066691890977ull}},
+ {{12360663613466969544ull, 13167594596751055755ull,
+ 5217753301282070690ull, 3628638833364863722ull}},
+ {{10839143498406324026ull, 7236121209084043886ull,
+ 15745563663457364171ull, 4535798541706079652ull}},
+ {{2162778668076564612ull, 2216732746463833477ull, 617605252806076799ull,
+ 2834874088566299783ull}},
+ {{7315159353523093669ull, 16605973988361955558ull,
+ 14607064621289759710ull, 3543592610707874728ull}},
+ {{18367321228758642894ull, 11534095448597668639ull,
+ 18258830776612199638ull, 4429490763384843410ull}},
+ {{18397104795615233665ull, 2597123636946154995ull,
+ 16023455253810012678ull, 2768431727115527131ull}},
+ {{18384694976091654177ull, 12469776583037469552ull,
+ 15417633048835127943ull, 3460539658894408914ull}},
+ {{4534124646405016105ull, 10975534710369449037ull,
+ 10048669274189134121ull, 4325674573618011143ull}},
+ {{5139670913216829018ull, 18388924240049375408ull,
+ 13197947324009290681ull, 2703546608511256964ull}},
+ {{6424588641521036273ull, 9151097244779555548ull,
+ 16497434155011613352ull, 3379433260639071205ull}},
+ {{8030735801901295341ull, 11438871555974444435ull,
+ 6786734638482352978ull, 4224291575798839007ull}},
+ {{2713366866974615636ull, 11760980740911415676ull,
+ 11159238176692552467ull, 2640182234874274379ull}},
+ {{3391708583718269545ull, 10089539907711881691ull,
+ 9337361702438302680ull, 3300227793592842974ull}},
+ {{18074693784930000643ull, 12611924884639852113ull,
+ 2448330091193102542ull, 4125284741991053718ull}},
+ {{4379154587940168546ull, 3270767034472519667ull,
+ 15365264362277852801ull, 2578302963744408573ull}},
+ {{862257216497822778ull, 8700144811518037488ull, 5371522397565152289ull,
+ 3222878704680510717ull}},
+ {{1077821520622278473ull, 15486867032824934764ull,
+ 11326089015383828265ull, 4028598380850638396ull}},
+ {{9897010487243699854ull, 2761762867874502371ull,
+ 16302177671469668474ull, 2517873988031648997ull}},
+ {{7759577090627236913ull, 12675575621697903772ull,
+ 6542664034054921880ull, 3147342485039561247ull}},
+ {{9699471363284046141ull, 15844469527122379715ull,
+ 3566644024141264446ull, 3934178106299451559ull}},
+ {{3756326592838834886ull, 5291107436024099418ull,
+ 9146681542729372135ull, 2458861316437157224ull}},
+ {{13918780277903319416ull, 2002198276602736368ull,
+ 11433351928411715169ull, 3073576645546446530ull}},
+ {{17398475347379149270ull, 7114433864180808364ull,
+ 5068317873659868153ull, 3841970806933058163ull}},
+ {{1650675055257192486ull, 15975736211181474988ull,
+ 861855661823723643ull, 2401231754333161352ull}},
+ {{2063343819071490607ull, 15357984245549455831ull,
+ 1077319577279654554ull, 3001539692916451690ull}},
+ {{16414237829121526971ull, 9974108270082043980ull,
+ 10570021508454344001ull, 3751924616145564612ull}},
+ {{1035526606346178549ull, 17763032714869747248ull,
+ 15829635479638740808ull, 2344952885090977882ull}},
+ {{1294408257932723186ull, 3757046819877632444ull,
+ 10563672312693650203ull, 2931191106363722353ull}},
+ {{1618010322415903982ull, 84622506419652651ull, 17816276409294450658ull,
+ 3663988882954652941ull}},
+ {{15857570958302043690ull, 9329150169879341621ull,
+ 8435287456335899610ull, 4579986103693316177ull}},
+ {{12216824858152471258ull, 10442404874601976417ull,
+ 16801269706278407016ull, 2862491314808322610ull}},
+ {{1435973017408425361ull, 13053006093252470522ull,
+ 11778215095993232962ull, 3578114143510403263ull}},
+ {{11018338308615307509ull, 7092885579710812344ull,
+ 10111082851564153299ull, 4472642679388004079ull}},
+ {{6886461442884567193ull, 2127210478105563763ull,
+ 13236955809868677668ull, 2795401674617502549ull}},
+ {{3996390785178321087ull, 2659013097631954704ull,
+ 2711136707053683373ull, 3494252093271878187ull}},
+ {{4995488481472901359ull, 7935452390467331284ull,
+ 17223978939099267928ull, 4367815116589847733ull}},
+ {{12345552337775339158ull, 4959657744042082052ull,
+ 13070829846150736407ull, 2729884447868654833ull}},
+ {{15431940422219173947ull, 1587886161625214661ull,
+ 2503479252406256797ull, 3412355559835818542ull}},
+ {{5454867472491803722ull, 6596543720458906231ull,
+ 12352721102362596804ull, 4265444449794773177ull}},
+ {{10326821197948459182ull, 13346211862141592202ull,
+ 802921661335541146ull, 2665902781121733236ull}},
+ {{3685154460580798170ull, 7459392790822214445ull,
+ 1003652076669426433ull, 3332378476402166545ull}},
+ {{9218129094153385616ull, 13935927006955155960ull,
+ 5866251114264170945ull, 4165473095502708181ull}},
+ {{5761330683845866010ull, 1792425351705890619ull,
+ 5972249955628800793ull, 2603420684689192613ull}},
+ {{2589977336379944609ull, 6852217708059751178ull,
+ 12076998462963388895ull, 3254275855861490766ull}},
+ {{12460843707329706569ull, 3953586116647301068ull,
+ 5872876041849460311ull, 4067844819826863458ull}},
+ {{17011399353935842414ull, 9388520350545645023ull,
+ 8282233544583300598ull, 2542403012391789661ull}},
+ {{16652563173992415113ull, 2512278401327280471ull,
+ 14964477949156513652ull, 3178003765489737076ull}},
+ {{16204017949063130987ull, 3140348001659100589ull,
+ 258853362736090449ull, 3972504706862171346ull}},
+ {{12433354227378150819ull, 13491932547105407628ull,
+ 4773469370137444434ull, 2482815441788857091ull}},
+ {{15541692784222688524ull, 7641543647026983727ull,
+ 1355150694244417639ull, 3103519302236071364ull}},
+ {{14815429961850972750ull, 4940243540356341755ull,
+ 1693938367805522049ull, 3879399127795089205ull}},
+ {{6953800716943164017ull, 14616867258791183357ull,
+ 3364554489092145232ull, 2424624454871930753ull}},
+ {{13303936914606342925ull, 18271084073488979196ull,
+ 8817379129792569444ull, 3030780568589913441ull}},
+ {{16629921143257928657ull, 4392111018151672379ull,
+ 15633409930668099710ull, 3788475710737391801ull}},
+ {{8087857705322511459ull, 16580127441626958949ull,
+ 2853352179026480462ull, 2367797319210869876ull}},
+ {{14721508150080527227ull, 11501787265178922878ull,
+ 3566690223783100578ull, 2959746649013587345ull}},
+ {{9178513150745883226ull, 5153862044618877790ull,
+ 9070048798156263627ull, 3699683311266984181ull}},
+ {{1124884700788789112ull, 915320768673104667ull, 7974623508061358719ull,
+ 2312302069541865113ull}},
+ {{15241163931268150102ull, 14979209016123544545ull,
+ 14579965403504086302ull, 2890377586927331391ull}},
+ {{5216396858803023916ull, 9500639233299654874ull,
+ 13613270735952719974ull, 3612971983659164239ull}},
+ {{15743868110358555702ull, 2652427004769792784ull,
+ 12404902401513512064ull, 4516214979573955299ull}},
+ {{9839917568974097314ull, 1657766877981120490ull,
+ 5447220991732251088ull, 2822634362233722062ull}},
+ {{3076524924362845835ull, 2072208597476400613ull,
+ 16032398276520089668ull, 3528292952792152577ull}},
+ {{8457342173880945197ull, 2590260746845500766ull,
+ 6205439790367948373ull, 4410366190990190722ull}},
+ {{674152840248202844ull, 3924755975992131931ull, 8490085887407355637ull,
+ 2756478869368869201ull}},
+ {{14677749105592417267ull, 9517630988417552817ull,
+ 15224293377686582450ull, 3445598586711086501ull}},
+ {{4512128326708357872ull, 2673666698667165214ull,
+ 5195308666826064351ull, 4306998233388858127ull}},
+ {{16655138259474887382ull, 8588570714308060114ull,
+ 10164596944407372075ull, 2691873895868036329ull}},
+ {{11595550787488833420ull, 6124027374457687239ull,
+ 17317432198936602998ull, 3364842369835045411ull}},
+ {{9882752465933653870ull, 16878406254926884857ull,
+ 17035104230243365843ull, 4206052962293806764ull}},
+ {{17705935337277003429ull, 8243160900115609083ull,
+ 1423568107047327844ull, 2628783101433629228ull}},
+ {{17520733153168866382ull, 10303951125144511354ull,
+ 1779460133809159805ull, 3285978876792036535ull}},
+ {{12677544404606307170ull, 17491624924858027097ull,
+ 16059383222543613468ull, 4107473595990045668ull}},
+ {{1005936225237860125ull, 1708893541181491128ull, 813742477234982610ull,
+ 2567170997493778543ull}},
+ {{1257420281547325157ull, 11359488963331639718ull,
+ 14852236151825891974ull, 3208963746867223178ull}},
+ {{10795147388788932254ull, 4975989167309773839ull,
+ 9341923152927589160ull, 4011204683584028973ull}},
+ {{13664496145634164515ull, 3109993229568608649ull,
+ 8144544979793437177ull, 2507002927240018108ull}},
+ {{3245562126760541931ull, 8499177555388148716ull,
+ 10180681224741796471ull, 3133753659050022635ull}},
+ {{4056952658450677414ull, 6012285925807797991ull,
+ 8114165512499857685ull, 3917192073812528294ull}},
+ {{9453124439172755240ull, 6063521712843567696ull, 459667426885023149ull,
+ 2448245046132830184ull}},
+ {{11816405548965944050ull, 12191088159481847524ull,
+ 574584283606278936ull, 3060306307666037730ull}},
+ {{14770506936207430062ull, 15238860199352309405ull,
+ 9941602391362624478ull, 3825382884582547162ull}},
+ {{11537409844343337741ull, 4912601606167805474ull,
+ 10825187513029028203ull, 2390864302864091976ull}},
+ {{5198390268574396368ull, 1529065989282368939ull,
+ 13531484391286285254ull, 2988580378580114970ull}},
+ {{1886301817290607556ull, 11134704523457736982ull,
+ 7690983452253080759ull, 3735725473225143713ull}},
+ {{15013996691088793435ull, 13876719354802167469ull,
+ 16336079703726645234ull, 2334828420765714820ull}},
+ {{4932437808578828081ull, 8122527156647933529ull,
+ 1973355555948754927ull, 2918535525957143526ull}},
+ {{10777233279150923005ull, 5541472927382529007ull,
+ 11690066481790719467ull, 3648169407446429407ull}},
+ {{8859855580511265853ull, 2315155140800773355ull,
+ 10000897083811011430ull, 4560211759308036759ull}},
+ {{3231566728605847206ull, 15282030018282647059ull,
+ 13168089705022963999ull, 2850132349567522974ull}},
+ {{17874516466039472719ull, 14490851504425920919ull,
+ 7236740094423929191ull, 3562665436959403718ull}},
+ {{17731459564121952995ull, 13501878362105013245ull,
+ 18269297154884687297ull, 4453331796199254647ull}},
+ {{13388005236789914574ull, 1521144948674551422ull,
+ 18335839749444011417ull, 2783332372624534154ull}},
+ {{7511634509132617410ull, 6513117204270577182ull,
+ 13696427649950238463ull, 3479165465780667693ull}},
+ {{166171099560995954ull, 3529710486910833574ull, 3285476507155634367ull,
+ 4348956832225834617ull}},
+ {{13938914992507786183ull, 9123598081960352839ull,
+ 13582637863040741239ull, 2718098020141146635ull}},
+ {{12811957722207344825ull, 6792811584023053145ull,
+ 12366611310373538645ull, 3397622525176433294ull}},
+ {{2179889097477017319ull, 13102700498456204336ull,
+ 6234892101112147498ull, 4247028156470541618ull}},
+ {{1362430685923135825ull, 12800873829962515614ull,
+ 8508493581622480090ull, 2654392597794088511ull}},
+ {{10926410394258695589ull, 6777720250598368709ull,
+ 6023930958600712209ull, 3317990747242610639ull}},
+ {{18269699011250757390ull, 13083836331675348790ull,
+ 2918227679823502357ull, 4147488434053263299ull}},
+ {{6806875863604335465ull, 10483240716510786946ull,
+ 17964793364385546637ull, 2592180271283289561ull}},
+ {{17731966866360195139ull, 17715736914065871586ull,
+ 8620933650199769584ull, 3240225339104111952ull}},
+ {{12941586546095468115ull, 3697927068872787867ull,
+ 10776167062749711981ull, 4050281673880139940ull}},
+ {{5782648582095973620ull, 4617047427259186369ull,
+ 15958476451073345796ull, 2531426046175087462ull}},
+ {{11839996746047354929ull, 5771309284073982961ull,
+ 10724723526986906437ull, 3164282557718859328ull}},
+ {{964937877277029950ull, 11825822623519866606ull,
+ 13405904408733633046ull, 3955353197148574160ull}},
+ {{14438144228580307431ull, 2779453121272528724ull,
+ 8378690255458520654ull, 2472095748217858850ull}},
+ {{18047680285725384288ull, 12697688438445436713ull,
+ 1249990782468375009ull, 3090119685272323563ull}},
+ {{8724542301874566648ull, 2037052492774632180ull,
+ 15397546533367632474ull, 3862649606590404453ull}},
+ {{14676210975526379963ull, 5884843826411533016ull,
+ 11929309592568464248ull, 2414156004119002783ull}},
+ {{18345263719407974954ull, 7356054783014416270ull,
+ 10299950972283192406ull, 3017695005148753479ull}},
+ {{13708207612405192884ull, 18418440515622796146ull,
+ 8263252696926602603ull, 3772118756435941849ull}},
+ {{13179315776180633457ull, 9205682313050553639ull,
+ 16693747981647596387ull, 2357574222772463655ull}},
+ {{11862458701798403917ull, 6895416872885804145ull,
+ 16255498958632107580ull, 2946967778465579569ull}},
+ {{993015321965841184ull, 8619271091107255182ull, 6484315643007970763ull,
+ 3683709723081974462ull}},
+ {{10464641189312077288ull, 6162402845456681073ull,
+ 17328766590614739262ull, 4604637153852468077ull}},
+ {{18069615789388518065ull, 17686559833692589382ull,
+ 13136322128347905990ull, 2877898221157792548ull}},
+ {{13363647699880871773ull, 12884827755260960920ull,
+ 16420402660434882488ull, 3597372776447240685ull}},
+ {{16704559624851089717ull, 16106034694076201150ull,
+ 6690445270261439398ull, 4496715970559050857ull}},
+ {{5828663747104543169ull, 5454585665370237815ull,
+ 15710743339981869384ull, 2810447481599406785ull}},
+ {{2674143665453291057ull, 6818232081712797269ull,
+ 5803371119695173018ull, 3513059351999258482ull}},
+ {{7954365600244001725ull, 17746162138995772394ull,
+ 16477585936473742080ull, 4391324189999073102ull}},
+ {{9583164518579888983ull, 11091351336872357746ull,
+ 5686805191868700896ull, 2744577618749420689ull}},
+ {{2755583611370085420ull, 13864189171090447183ull,
+ 11720192508263264024ull, 3430722023436775861ull}},
+ {{17279537569494770487ull, 17330236463863058978ull,
+ 815182580046916318ull, 4288402529295969827ull}},
+ {{15411396999361619459ull, 6219711771487023957ull,
+ 16650390177025180363ull, 2680251580809981141ull}},
+ {{5429188193919860611ull, 3162953695931392043ull,
+ 6977929665999311742ull, 3350314476012476427ull}},
+ {{2174799223972437860ull, 13177064156769015862ull,
+ 4110726064071751773ull, 4187893095015595534ull}},
+ {{15194307570264937374ull, 10541508107194328865ull,
+ 16404261845327008570ull, 2617433184384747208ull}},
+ {{5157826407549008006ull, 3953513097138135274ull,
+ 2058583232949209097ull, 3271791480480934011ull}},
+ {{15670655046291035815ull, 9553577389850056996ull,
+ 16408287096468675083ull, 4089739350601167513ull}},
+ {{570787367077121577ull, 3665142859442591671ull, 3337650407651840071ull,
+ 2556087094125729696ull}},
+ {{14548542264128565683ull, 18416486629585403300ull,
+ 4172063009564800088ull, 3195108867657162120ull}},
+ {{18185677830160707103ull, 4573864213272202509ull,
+ 5215078761956000111ull, 3993886084571452650ull}},
+ {{13671891653064135892ull, 9776194160936208424ull,
+ 7871110244649887973ull, 2496178802857157906ull}},
+ {{17089864566330169865ull, 16831928719597648434ull,
+ 615515768957584158ull, 3120223503571447383ull}},
+ {{12138958671057936523ull, 11816538862642284735ull,
+ 14604452766479143910ull, 3900279379464309228ull}},
+ {{14504378197052292183ull, 2773650770724040055ull,
+ 18351155015904240752ull, 2437674612165193267ull}},
+ {{13518786727887977324ull, 3467063463405050069ull,
+ 18327257751452913036ull, 3047093265206491584ull}},
+ {{3063425354577807943ull, 4333829329256312587ull,
+ 4462328115606589679ull, 3808866581508114481ull}},
+ {{18055541911106987629ull, 9626172358426277222ull,
+ 14318170118322588309ull, 2380541613442571550ull}},
+ {{13346055352028958728ull, 16644401466460234432ull,
+ 8674340611048459578ull, 2975677016803214438ull}},
+ {{16682569190036198410ull, 11582129796220517232ull,
+ 1619553726955798665ull, 3719596271004018048ull}},
+ {{10426605743772624006ull, 321302094996741414ull,
+ 1012221079347374166ull, 2324747669377511280ull}},
+ {{3809885142861004200ull, 9624999655600702576ull,
+ 1265276349184217707ull, 2905934586721889100ull}},
+ {{4762356428576255250ull, 7419563551073490316ull,
+ 1581595436480272134ull, 3632418233402361375ull}},
+ {{5952945535720319062ull, 51082401987087087ull, 15812052350882503880ull,
+ 4540522791752951718ull}},
+ {{10638119987466281270ull, 31926501241929429ull, 5270846700874177021ull,
+ 2837826744845594824ull}},
+ {{17909336002760239491ull, 4651594144979799690ull,
+ 6588558376092721276ull, 3547283431056993530ull}},
+ {{13163297966595523556ull, 5814492681224749613ull,
+ 17459070006970677403ull, 4434104288821241912ull}},
+ {{10532904238335896175ull, 1328214916551774556ull,
+ 10911918754356673377ull, 2771315180513276195ull}},
+ {{13166130297919870218ull, 6271954664117106099ull,
+ 9028212424518453817ull, 3464143975641595244ull}},
+ {{11845976853972449868ull, 12451629348573770528ull,
+ 11285265530648067271ull, 4330179969551994055ull}},
+ {{7403735533732781168ull, 14699797370499688436ull,
+ 13970819984296123900ull, 2706362480969996284ull}},
+ {{9254669417165976460ull, 18374746713124610545ull,
+ 17463524980370154875ull, 3382953101212495355ull}},
+ {{16180022789884858479ull, 18356747372978375277ull,
+ 17217720207035305690ull, 4228691376515619194ull}},
+ {{12418357252891730501ull, 16084653126538872452ull,
+ 15372761147824453960ull, 2642932110322261996ull}},
+ {{15522946566114663127ull, 1659072334464038949ull,
+ 769207361071015835ull, 3303665137902827496ull}},
+ {{5568625152361165196ull, 15908898473362212399ull,
+ 961509201338769793ull, 4129581422378534370ull}},
+ {{10397919747866810104ull, 3025532518210300893ull,
+ 5212629269264119025ull, 2580988388986583981ull}},
+ {{17609085703260900534ull, 8393601666190264020ull,
+ 11127472605007536685ull, 3226235486233229976ull}},
+ {{3564613055366574051ull, 15103688101165217930ull,
+ 13909340756259420856ull, 4032794357791537470ull}},
+ {{6839569178031496686ull, 9439805063228261206ull,
+ 4081651954234750131ull, 2520496473619710919ull}},
+ {{17772833509394146665ull, 7188070310607938603ull,
+ 490378924366049760ull, 3150620592024638649ull}},
+ {{17604355868315295428ull, 8985087888259923254ull,
+ 5224659673884950104ull, 3938275740030798311ull}},
+ {{6391036399269671738ull, 5615679930162452034ull,
+ 10182941323819175671ull, 2461422337519248944ull}},
+ {{17212167535941865481ull, 2407913894275677138ull,
+ 12728676654773969589ull, 3076777921899061180ull}},
+ {{12291837383072556043ull, 7621578386271984327ull,
+ 15910845818467461986ull, 3845972402373826475ull}},
+ {{14599927392061429383ull, 9375172509847378108ull,
+ 7638435627328469789ull, 2403732751483641547ull}},
+ {{18249909240076786729ull, 16330651655736610539ull,
+ 4936358515733199332ull, 3004665939354551934ull}},
+ {{18200700531668595507ull, 1966570495961211558ull,
+ 15393820181521274974ull, 3755832424193189917ull}},
+ {{6763751813865484288ull, 15064164615257920936ull,
+ 11926980622664490810ull, 2347395265120743698ull}},
+ {{8454689767331855360ull, 9606833732217625362ull,
+ 5685353741475837705ull, 2934244081400929623ull}},
+ {{1344990172310043392ull, 16620228183699419607ull,
+ 2495006158417409227ull, 3667805101751162029ull}},
+ {{15516295770669717951ull, 16163599211196886604ull,
+ 7730443716449149438ull, 4584756377188952536ull}},
+ {{474312819813797912ull, 5490563488570666224ull, 4831527322780718399ull,
+ 2865472735743095335ull}},
+ {{592891024767247390ull, 2251518342285944876ull, 1427723135048510095ull,
+ 3581840919678869169ull}},
+ {{741113780959059237ull, 16649455983139594807ull,
+ 6396339937238025522ull, 4477301149598586461ull}},
+ {{7380725140740493879ull, 15017596007889634658ull,
+ 6303555469987459903ull, 2798313218499116538ull}},
+ {{2534389070841541ull, 14160308991434655419ull, 17102816374339100687ull,
+ 3497891523123895672ull}},
+ {{13838226041620715638ull, 13088700220865931369ull,
+ 2931776394214324243ull, 4372364403904869591ull}},
+ {{1731362248371865418ull, 5874594628827513154ull,
+ 8749889274025034508ull, 2732727752440543494ull}},
+ {{11387574847319607580ull, 7343243286034391442ull,
+ 1713989555676517327ull, 3415909690550679368ull}},
+ {{5011096522294733667ull, 4567368089115601399ull,
+ 2142486944595646659ull, 4269887113188349210ull}},
+ {{10049464354075290398ull, 548762046483556922ull,
+ 5950740358799667066ull, 2668679445742718256ull}},
+ {{3338458405739337190ull, 9909324594959221961ull,
+ 7438425448499583832ull, 3335849307178397820ull}},
+ {{8784759025601559391ull, 12386655743699027451ull,
+ 9298031810624479790ull, 4169811633972997275ull}},
+ {{3184631381787280668ull, 3129973821384504253ull,
+ 3505426872426605917ull, 2606132271233123297ull}},
+ {{8592475245661488738ull, 8524153295158018220ull,
+ 8993469608960645300ull, 3257665339041404121ull}},
+ {{10740594057076860923ull, 10655191618947522775ull,
+ 15853523029628194529ull, 4072081673801755151ull}},
+ {{13630400313314119933ull, 18188709807910671494ull,
+ 16825980921158703436ull, 2545051046126096969ull}},
+ {{7814628354787874108ull, 4289143186178787752ull,
+ 7197418096166215584ull, 3181313807657621212ull}},
+ {{9768285443484842635ull, 5361428982723484690ull,
+ 8996772620207769480ull, 3976642259572026515ull}},
+ {{10716864420605414551ull, 3350893114202177931ull,
+ 3317139878416161973ull, 2485401412232516572ull}},
+ {{8784394507329380285ull, 8800302411180110318ull,
+ 4146424848020202466ull, 3106751765290645715ull}},
+ {{1757121097306949548ull, 1777005977120362090ull, 571345041597865179ull,
+ 3883439706613307144ull}},
+ {{5709886704244231371ull, 17251529800196083970ull,
+ 357090650998665736ull, 2427149816633316965ull}},
+ {{16360730417160065022ull, 3117668176535553346ull,
+ 5058049332175720075ull, 3033937270791646206ull}},
+ {{11227540984595305470ull, 17732143275951605395ull,
+ 15545933702074425901ull, 3792421588489557757ull}},
+ {{4711370106158371967ull, 13388432556683447324ull,
+ 12022051573010210140ull, 2370263492805973598ull}},
+ {{5889212632697964958ull, 16735540695854309155ull,
+ 5804192429407986867ull, 2962829366007466998ull}},
+ {{2749829772445068294ull, 16307739851390498540ull,
+ 16478612573614759392ull, 3703536707509333747ull}},
+ {{10942015644632943492ull, 10192337407119061587ull,
+ 7993289849295530668ull, 2314710442193333592ull}},
+ {{9065833537363791461ull, 12740421758898826984ull,
+ 9991612311619413335ull, 2893388052741666990ull}},
+ {{11332291921704739326ull, 11313841180196145826ull,
+ 3266143352669490861ull, 3616735065927083738ull}},
+ {{4941992865276148349ull, 307243419963018571ull,
+ 13306051227691639385ull, 4520918832408854672ull}},
+ {{782902531583898766ull, 11721242183545356367ull,
+ 8316282017307274615ull, 2825574270255534170ull}},
+ {{14813686219762037170ull, 10039866711004307554ull,
+ 1171980484779317461ull, 3531967837819417713ull}},
+ {{9293735737847770654ull, 17161519407182772347ull,
+ 6076661624401534730ull, 4414959797274272141ull}},
+ {{3502741826941162707ull, 15337635647916620621ull,
+ 6103756524464653158ull, 2759349873296420088ull}},
+ {{8990113302103841287ull, 9948672523040999968ull,
+ 7629695655580816448ull, 3449187341620525110ull}},
+ {{11237641627629801609ull, 12435840653801249960ull,
+ 313747532621244752ull, 4311484177025656388ull}},
+ {{7023526017268626006ull, 7772400408625781225ull,
+ 9419464244743053778ull, 2694677610641035242ull}},
+ {{13391093540013170411ull, 492128473927450723ull,
+ 2550958269074041415ull, 3368347013301294053ull}},
+ {{12127180906589075110ull, 14450218647691477116ull,
+ 7800383854769939672ull, 4210433766626617566ull}},
+ {{16802860103472947752ull, 9031386654807173197ull,
+ 263553890803824391ull, 2631521104141635979ull}},
+ {{7168517074059020978ull, 6677547300081578593ull,
+ 14164500418786944201ull, 3289401380177044973ull}},
+ {{13572332361001164126ull, 12958620143529361145ull,
+ 3870567468201516539ull, 4111751725221306217ull}},
+ {{1565178697984645723ull, 5793294580492156764ull,
+ 13948319713694417597ull, 2569844828263316385ull}},
+ {{1956473372480807154ull, 11853304244042583859ull,
+ 3600341586835858284ull, 3212306035329145482ull}},
+ {{16280649770883172654ull, 14816630305053229823ull,
+ 13723799020399598663ull, 4015382544161431852ull}},
+ {{17092935134443064765ull, 16177922968299350495ull,
+ 17800746424604524972ull, 2509614090100894907ull}},
+ {{16754482899626443052ull, 1775659636664636503ull,
+ 17639247012328268312ull, 3137017612626118634ull}},
+ {{16331417606105665911ull, 2219574545830795629ull,
+ 12825686728555559582ull, 3921272015782648293ull}},
+ {{12512979013029735146ull, 15222292146426410980ull,
+ 10321897214560918690ull, 2450795009864155183ull}},
+ {{15641223766287168933ull, 9804493146178237917ull,
+ 8290685499773760459ull, 3063493762330193979ull}},
+ {{5716471652576797454ull, 7643930414295409493ull,
+ 5751670856289812670ull, 3829367202912742474ull}},
+ {{5878637792074192361ull, 165770490507243029ull, 8206480303608520823ull,
+ 2393354501820464046ull}},
+ {{11959983258520128355ull, 14042271168416217498ull,
+ 1034728342655875220ull, 2991693127275580058ull}},
+ {{5726607036295384636ull, 17552838960520271873ull,
+ 10516782465174619833ull, 3739616409094475072ull}},
+ {{15108344443753085158ull, 4052995322684088064ull,
+ 6572989040734137396ull, 2337260255684046920ull}},
+ {{438686480981804831ull, 5066244153355110081ull, 8216236300917671745ull,
+ 2921575319605058650ull}},
+ {{5160044119654643942ull, 10944491210121275505ull,
+ 1046923339292313873ull, 3651969149506323313ull}},
+ {{11061741167995692832ull, 18292300031078982285ull,
+ 5920340192542780245ull, 4564961436882904141ull}},
+ {{9219431239211001972ull, 13738530528638057880ull,
+ 6006055629552931605ull, 2853100898051815088ull}},
+ {{11524289049013752465ull, 3338105105515408638ull,
+ 7507569536941164507ull, 3566376122564768860ull}},
+ {{5181989274412414773ull, 18007689437176424510ull,
+ 9384461921176455633ull, 4457970153205961075ull}},
+ {{17073801351789922945ull, 4337276870594183462ull,
+ 3559445691521590819ull, 2786231345753725672ull}},
+ {{12118879652882627874ull, 809910069815341424ull,
+ 4449307114401988524ull, 3482789182192157090ull}},
+ {{15148599566103284842ull, 1012387587269176780ull,
+ 14785005929857261463ull, 4353486477740196362ull}},
+ {{244502691959777218ull, 7550271269684317344ull,
+ 13852314724588176318ull, 2720929048587622726ull}},
+ {{305628364949721523ull, 214467050250620872ull, 8092021368880444590ull,
+ 3401161310734528408ull}},
+ {{382035456187151903ull, 9491455849668051898ull,
+ 10115026711100555737ull, 4251451638418160510ull}},
+ {{4850458178544357844ull, 17461374952111002196ull,
+ 1710205676010459431ull, 2657157274011350319ull}},
+ {{6063072723180447305ull, 17215032671711364841ull,
+ 15972815150295238001ull, 3321446592514187898ull}},
+ {{12190526922402947035ull, 7683732784357042339ull,
+ 10742646901014271694ull, 4151808240642734873ull}},
+ {{5313236317288147945ull, 190646971795763558ull,
+ 18243369359202389569ull, 2594880150401709295ull}},
+ {{15864917433464960739ull, 4849994733172092351ull,
+ 18192525680575599057ull, 3243600188002136619ull}},
+ {{15219460773403813020ull, 10674179434892503343ull,
+ 18128971082292110917ull, 4054500235002670774ull}},
+ {{16429692011018464993ull, 8977205156021508541ull,
+ 6718920908005181419ull, 2534062646876669234ull}},
+ {{6702056958490917530ull, 6609820426599497773ull,
+ 17622023171861252582ull, 3167578308595836542ull}},
+ {{12989257216541034816ull, 17485647570104148024ull,
+ 12804156927971789919ull, 3959472885744795678ull}},
+ {{8118285760338146760ull, 17846058758956174371ull,
+ 3390912061554980795ull, 2474670553590497299ull}},
+ {{5536171181995295546ull, 17695887430267830060ull,
+ 18073698132225889706ull, 3093338191988121623ull}},
+ {{6920213977494119432ull, 12896487250980011767ull,
+ 17980436646854974229ull, 3866672739985152029ull}},
+ {{11242662763574906501ull, 10366147541076201306ull,
+ 13543615913498052845ull, 2416670462490720018ull}},
+ {{4829956417613857319ull, 17569370444772639537ull,
+ 7706147855017790248ull, 3020838078113400023ull}},
+ {{10649131540444709552ull, 3514968982256247805ull,
+ 5020998800344849907ull, 3776047597641750029ull}},
+ {{8961550221991637422ull, 18337756678406012542ull,
+ 5443967259429225143ull, 2360029748526093768ull}},
+ {{1978565740634770970ull, 18310509829580127774ull,
+ 6804959074286531429ull, 2950037185657617210ull}},
+ {{11696579212648239520ull, 9053079231692996005ull,
+ 17729570879712940095ull, 3687546482072021512ull}},
+ {{785665960528135688ull, 6704663021188857103ull, 3715219525931623503ull,
+ 4609433102590026891ull}},
+ {{7408570252971166661ull, 11107943415884117545ull, 16169194493570737ull,
+ 2880895689118766807ull}},
+ {{13872398834641346230ull, 49871214572983219ull,
+ 13855269548399127134ull, 3601119611398458508ull}},
+ {{12728812524874294884ull, 9285711055071004832ull,
+ 17319086935498908917ull, 4501399514248073135ull}},
+ {{7955507828046434303ull, 8109412418633071972ull,
+ 17741958362327899929ull, 2813374696405045709ull}},
+ {{9944384785058042878ull, 14748451541718727869ull,
+ 8342389897627711199ull, 3516718370506307137ull}},
+ {{17042166999749941502ull, 13823878408721021932ull,
+ 15039673390462026903ull, 4395897963132883921ull}},
+ {{1427982337988937631ull, 15557453033091720564ull,
+ 2482266841397684958ull, 2747436226958052451ull}},
+ {{1784977922486172038ull, 10223444254509874897ull,
+ 16937891607029269910ull, 3434295283697565563ull}},
+ {{6842908421535102952ull, 3555933281282567813ull,
+ 16560678490359199484ull, 4292869104621956954ull}},
+ {{6582660772673133297ull, 11445830337656380691ull,
+ 14962110074901887581ull, 2683043190388723096ull}},
+ {{3616639947414028717ull, 472229866788312152ull, 255893519917807861ull,
+ 3353803987985903871ull}},
+ {{4520799934267535896ull, 5201973351912778094ull,
+ 14154924955179423538ull, 4192254984982379838ull}},
+ {{16660558014199373647ull, 7862919363372874212ull,
+ 4235142078559751807ull, 2620159365613987399ull}},
+ {{2378953444039665443ull, 5216963185788704862ull, 682241579772301855ull,
+ 3275199207017484249ull}},
+ {{12197063841904357612ull, 1909517963808493173ull,
+ 5464487993142765223ull, 4093999008771855311ull}},
+ {{9929007910403917459ull, 8110977755021390089ull,
+ 10332834023355310120ull, 2558749380482409569ull}},
+ {{17022945906432284728ull, 10138722193776737611ull,
+ 17527728547621525554ull, 3198436725603011961ull}},
+ {{16666996364612968006ull, 3450030705366146206ull,
+ 8074602629244743231ull, 3998045907003764952ull}},
+ {{5805186709455717100ull, 9073798218494923235ull,
+ 5046626643277964519ull, 2498778691877353095ull}},
+ {{2644797368392258471ull, 6730561754691266140ull,
+ 1696597285670067745ull, 3123473364846691369ull}},
+ {{3305996710490323089ull, 13024888211791470579ull,
+ 6732432625514972585ull, 3904341706058364211ull}},
+ {{18207149008552309595ull, 1223026104728587255ull,
+ 1901927381733163914ull, 2440213566286477632ull}},
+ {{18147250242262999089ull, 10752154667765509877ull,
+ 2377409227166454892ull, 3050266957858097040ull}},
+ {{8849004747546585149ull, 13440193334706887347ull,
+ 2971761533958068615ull, 3812833697322621300ull}},
+ {{3224784958002921766ull, 15317649861832886448ull,
+ 11080722995578568692ull, 2383021060826638312ull}},
+ {{4030981197503652208ull, 700318253581556444ull,
+ 13850903744473210866ull, 2978776326033297890ull}},
+ {{5038726496879565260ull, 10098769853831721363ull,
+ 8090257643736737774ull, 3723470407541622363ull}},
+ {{843361051336034336ull, 1700045140217437948ull, 2750568018121767157ull,
+ 2327169004713513977ull}},
+ {{1054201314170042919ull, 6736742443699185339ull,
+ 8049896041079596850ull, 2908961255891892471ull}},
+ {{15152809697994717361ull, 17644300091478757481ull,
+ 5450684032922108158ull, 3636201569864865589ull}},
+ {{5105954067211232989ull, 12832003077493671044ull,
+ 11425041059580023102ull, 4545251962331081986ull}},
+ {{12414593328861796426ull, 3408315905006156498ull,
+ 11752336680664902343ull, 2840782476456926241ull}},
+ {{6294869624222469725ull, 18095452936539859335ull,
+ 855362795548964216ull, 3550978095571157802ull}},
+ {{3256901011850699252ull, 4172572096965272553ull,
+ 10292575531290981079ull, 4438722619463947252ull}},
+ {{13564778178475156793ull, 9525386588244377201ull,
+ 15656231743911638982ull, 2774201637164967032ull}},
+ {{3120914667811782279ull, 2683361198450695694ull,
+ 1123545606179997112ull, 3467752046456208791ull}},
+ {{13124515371619503656ull, 3354201498063369617ull,
+ 15239490063007160102ull, 4334690058070260988ull}},
+ {{1285293079621107929ull, 15931433991571769723ull,
+ 301309252524699255ull, 2709181286293913118ull}},
+ {{15441674404808548624ull, 15302606471037324249ull,
+ 9600008602510649877ull, 3386476607867391397ull}},
+ {{5467034950728522067ull, 5293200033514491600ull,
+ 16611696771565700251ull, 4233095759834239246ull}},
+ {{3416896844205326292ull, 1002407011732863298ull,
+ 5770624463801174753ull, 2645684849896399529ull}},
+ {{13494493092111433673ull, 5864694783093467026ull,
+ 11824966598178856345ull, 3307106062370499411ull}},
+ {{7644744328284516283ull, 11942554497294221687ull,
+ 10169522229296182527ull, 4133882577963124264ull}},
+ {{11695494232818904533ull, 14381625588449970410ull,
+ 6355951393310114079ull, 2583676611226952665ull}},
+ {{5395995754168854858ull, 13365345967135075109ull,
+ 12556625260065030503ull, 3229595764033690831ull}},
+ {{11356680711138456477ull, 12094996440491455982ull,
+ 11084095556653900225ull, 4036994705042113539ull}},
+ {{2486239426034147394ull, 641843747666078133ull, 4621716713694993689ull,
+ 2523121690651320962ull}},
+ {{7719485300970072147ull, 5413990703009985570ull,
+ 15000517928973517919ull, 3153902113314151202ull}},
+ {{425984589357814375ull, 2155802360335094059ull, 9527275374362121591ull,
+ 3942377641642689003ull}},
+ {{16407141432844491649ull, 8264905502850515642ull,
+ 3648704099762632042ull, 2463986026026680627ull}},
+ {{11285554754200838753ull, 1107759841708368745ull,
+ 18395938179985453765ull, 3079982532533350783ull}},
+ {{271885387468884729ull, 5996385820562848836ull,
+ 18383236706554429302ull, 3849978165666688479ull}},
+ {{9393300404022828764ull, 17582799193133944234ull,
+ 18407051969237600169ull, 2406236353541680299ull}},
+ {{2518253468173760147ull, 8143440936135266581ull,
+ 18397128943119612308ull, 3007795441927100374ull}},
+ {{7759502853644588087ull, 10179301170169083226ull,
+ 13773039142044739577ull, 3759744302408875468ull}},
+ {{9461375301955255459ull, 17891278277424146776ull,
+ 17831521500632738043ull, 2349840189005547167ull}},
+ {{11826719127444069323ull, 17752411828352795566ull,
+ 17677715857363534650ull, 2937300236256933959ull}},
+ {{5560026872450310846ull, 12967142748586218650ull,
+ 17485458803277030409ull, 3671625295321167449ull}},
+ {{16173405627417664365ull, 2373870380450609600ull,
+ 8021765448814124300ull, 4589531619151459312ull}},
+ {{10108378517136040228ull, 10707041024636406808ull,
+ 5013603405508827687ull, 2868457261969662070ull}},
+ {{12635473146420050285ull, 8772115262368120606ull,
+ 15490376293740810417ull, 3585571577462077587ull}},
+ {{6570969396170287049ull, 15576830096387538662ull,
+ 14751284348748625117ull, 4481964471827596984ull}},
+ {{17941913927888593118ull, 12041361819455905615ull,
+ 9219552717967890698ull, 2801227794892248115ull}},
+ {{17815706391433353493ull, 5828330237465106211ull,
+ 6912754879032475469ull, 3501534743615310144ull}},
+ {{17657946970864303962ull, 11897098815258770668ull,
+ 8640943598790594336ull, 4376918429519137680ull}},
+ {{1812844819935414168ull, 7435686759536731668ull,
+ 5400589749244121460ull, 2735574018449461050ull}},
+ {{2266056024919267710ull, 9294608449420914585ull,
+ 15974109223409927633ull, 3419467523061826312ull}},
+ {{7444256049576472542ull, 16229946580203531135ull,
+ 1520892455552857925ull, 4274334403827282891ull}},
+ {{11570189058626377195ull, 12449559621840900911ull,
+ 17091458849216393867ull, 2671459002392051806ull}},
+ {{9851050304855583589ull, 10950263508873738235ull,
+ 12140951524665716526ull, 3339323752990064758ull}},
+ {{7702126862642091583ull, 4464457349237396986ull,
+ 5952817368977369850ull, 4174154691237580948ull}},
+ {{9425515307578695143ull, 7401971861700761020ull,
+ 12943882892465631964ull, 2608846682023488092ull}},
+ {{11781894134473368929ull, 9252464827125951275ull,
+ 16179853615582039955ull, 3261058352529360115ull}},
+ {{10115681649664323257ull, 6953895015480051190ull,
+ 15613131001050162040ull, 4076322940661700144ull}},
+ {{1710615012612814132ull, 4346184384675031994ull,
+ 9758206875656351275ull, 2547701837913562590ull}},
+ {{11361640802620793473ull, 821044462416402088ull,
+ 2974386557715663286ull, 3184627297391953238ull}},
+ {{14202051003275991841ull, 10249677614875278418ull,
+ 12941355233999354915ull, 3980784121739941547ull}},
+ {{13487967895474882805ull, 4100205500083355059ull,
+ 5782504012035902870ull, 2487990076087463467ull}},
+ {{12248273850916215602ull, 14348628911958969632ull,
+ 2616443996617490683ull, 3109987595109329334ull}},
+ {{15310342313645269502ull, 13324100121521324136ull,
+ 12493927032626639162ull, 3887484493886661667ull}},
+ {{9568963946028293439ull, 12939248594378215489ull,
+ 5502861386177955524ull, 2429677808679163542ull}},
+ {{16572890950962754703ull, 16174060742972769361ull,
+ 16101948769577220213ull, 3037097260848954427ull}},
+ {{6881055633421279666ull, 6382517873433797990ull,
+ 15515749943544137363ull, 3796371576061193034ull}},
+ {{18135717826170463503ull, 1683230661682429791ull,
+ 14309029733142473756ull, 2372732235038245646ull}},
+ {{18057961264285691475ull, 2104038327103037239ull,
+ 8662915129573316387ull, 2965915293797807058ull}},
+ {{17960765561929726440ull, 16465105964160960261ull,
+ 1605271875111869675ull, 3707394117247258823ull}},
+ {{13531321485419772977ull, 7984848218386906211ull,
+ 7920823949586000403ull, 2317121323279536764ull}},
+ {{12302465838347328317ull, 5369374254556244860ull,
+ 9901029936982500504ull, 2896401654099420955ull}},
+ {{15378082297934160396ull, 6711717818195306075ull,
+ 7764601402800737726ull, 3620502067624276194ull}},
+ {{14610916853990312591ull, 17613019309598908402ull,
+ 482379716646146349ull, 4525627584530345243ull}},
+ {{13743509052171333274ull, 13313980077713011703ull,
+ 16442388387399699132ull, 2828517240331465776ull}},
+ {{12567700296786778688ull, 16642475097141264629ull,
+ 2106241410540072299ull, 3535646550414332221ull}},
+ {{1874567315701309648ull, 16191407852999192883ull,
+ 7244487781602478278ull, 4419558188017915276ull}},
+ {{17312505636809176194ull, 5507943889697107647ull,
+ 13751176900356324732ull, 2762223867511197047ull}},
+ {{17028946027584082339ull, 6884929862121384559ull,
+ 12577285107018018011ull, 3452779834388996309ull}},
+ {{16674496516052715019ull, 3994476309224342795ull,
+ 1886548328490358802ull, 4315974792986245387ull}},
+ {{8115717313319252935ull, 7108233711692602151ull,
+ 17319993769802331915ull, 2697484245616403366ull}},
+ {{5532960623221678265ull, 4273606121188364785ull,
+ 12426620175398139086ull, 3371855307020504208ull}},
+ {{11527886797454485735ull, 14565379688340231789ull,
+ 15533275219247673857ull, 4214819133775630260ull}},
+ {{9510772257622747537ull, 2185833277571563012ull, 484924975175020353ull,
+ 2634261958609768913ull}},
+ {{11888465322028434421ull, 7343977615391841669ull,
+ 5217842237396163345ull, 3292827448262211141ull}},
+ {{1025523597253379314ull, 13791658037667189991ull,
+ 11133988815172592085ull, 4116034310327763926ull}},
+ {{7558481275924443927ull, 10925629282755687696ull,
+ 2347056991055482149ull, 2572521443954852454ull}},
+ {{9448101594905554909ull, 18268722621871997524ull,
+ 12157193275674128494ull, 3215651804943565567ull}},
+ {{11810126993631943636ull, 13612531240485221097ull,
+ 10584805576165272714ull, 4019564756179456959ull}},
+ {{463800343378882917ull, 13119518043730651090ull,
+ 13533032512744377302ull, 2512227972612160599ull}},
+ {{9803122466078379454ull, 7176025517808538054ull,
+ 12304604622503083724ull, 3140284965765200749ull}},
+ {{3030531045743198509ull, 8970031897260672568ull,
+ 1545697722846690943ull, 3925356207206500937ull}},
+ {{1894081903589499068ull, 12523798963429002211ull,
+ 12495276122847651599ull, 2453347629504063085ull}},
+ {{16202660434769037547ull, 11043062685858864859ull,
+ 1784037098277400787ull, 3066684536880078857ull}},
+ {{15641639525033909030ull, 9192142338896193170ull,
+ 6841732391274138888ull, 3833355671100098571ull}},
+ {{14387710721573581048ull, 5745088961810120731ull,
+ 1970239735332642853ull, 2395847294437561607ull}},
+ {{13372952383539588406ull, 11793047220690038818ull,
+ 16297857724447967278ull, 2994809118046952008ull}},
+ {{7492818442569709699ull, 5517936989007772715ull,
+ 1925578081850407482ull, 3743511397558690011ull}},
+ {{2377168517392374610ull, 8060396636557245851ull,
+ 17344387365652362340ull, 2339694623474181256ull}},
+ {{16806518702022631975ull, 10075495795696557313ull,
+ 3233740133355901309ull, 2924618279342726571ull}},
+ {{7173090322246126256ull, 17206055763048084546ull,
+ 17877233221977040348ull, 3655772849178408213ull}},
+ {{18189734939662433628ull, 3060825630100554066ull,
+ 8511483472189136724ull, 4569716061473010267ull}},
+ {{15980270355716408922ull, 11136388055667622099ull,
+ 3013834160904516500ull, 2856072538420631417ull}},
+ {{15363651926218123248ull, 13920485069584527624ull,
+ 8378978719558033529ull, 3570090673025789271ull}},
+ {{757820834063102444ull, 3565548281698495819ull, 5862037381020154008ull,
+ 4462613341282236589ull}},
+ {{16614539085785296692ull, 2228467676061559886ull,
+ 5969616372351290207ull, 2789133338301397868ull}},
+ {{11544801820376845056ull, 16620642650359113570ull,
+ 7462020465439112758ull, 3486416672876747335ull}},
+ {{5207630238616280512ull, 11552431276094116155ull,
+ 4715839563371503044ull, 4358020841095934169ull}},
+ {{948925889921481368ull, 16443641584413598405ull,
+ 14476614773175659162ull, 2723763025684958855ull}},
+ {{5797843380829239614ull, 11331179943662222198ull,
+ 13484082448042186049ull, 3404703782106198569ull}},
+ {{16470676262891325326ull, 328916874295614035ull,
+ 3020045004770568850ull, 4255879727632748212ull}},
+ {{7988329655093384377ull, 4817259064862146676ull,
+ 11110900164836381339ull, 2659924829770467632ull}},
+ {{9985412068866730471ull, 1409887812650295441ull,
+ 13888625206045476674ull, 3324906037213084540ull}},
+ {{17093451104510800992ull, 10985731802667645109ull,
+ 17360781507556845842ull, 4156132546516355675ull}},
+ {{12989249949532944572ull, 11477768395094666097ull,
+ 8544645433009334699ull, 2597582841572722297ull}},
+ {{2401504381634017003ull, 9735524475440944718ull,
+ 15292492809689056278ull, 3246978551965902871ull}},
+ {{12225252513897297062ull, 2946033557446405089ull,
+ 14503929993683932444ull, 4058723189957378589ull}},
+ {{723253793544728808ull, 11064643010258778989ull,
+ 11370799255266151729ull, 2536701993723361618ull}},
+ {{5515753260358298914ull, 18442489781250861640ull,
+ 4990127032227913853ull, 3170877492154202023ull}},
+ {{6894691575447873642ull, 9218054171281413338ull,
+ 1625972771857504413ull, 3963596865192752529ull}},
+ {{8920868253082308931ull, 8067126866264577288ull,
+ 12545448028479410018ull, 2477248040745470330ull}},
+ {{11151085316352886163ull, 860536545975945802ull,
+ 6458437998744486715ull, 3096560050931837913ull}},
+ {{4715484608586331896ull, 14910728737752095965ull,
+ 12684733516857996297ull, 3870700063664797391ull}},
+ {{5253020889580151387ull, 2401676433453978122ull,
+ 14845487475677329542ull, 2419187539790498369ull}},
+ {{15789648148829965042ull, 12225467578672248460ull,
+ 4721801289314498215ull, 3023984424738122962ull}},
+ {{1290316112327904686ull, 10670148454912922672ull,
+ 15125623648497898577ull, 3779980530922653702ull}},
+ {{806447570204940429ull, 18198057830389046430ull,
+ 4841828761883798706ull, 2362487831826658564ull}},
+ {{10231431499610951344ull, 13524200251131532229ull,
+ 6052285952354748383ull, 2953109789783323205ull}},
+ {{17400975392941077084ull, 12293564295487027382ull,
+ 12177043458870823383ull, 3691387237229154006ull}},
+ {{6263923602160785274ull, 14601006712320473970ull,
+ 2998966143366876710ull, 2307117023268221254ull}},
+ {{17053276539555757400ull, 9027886353545816654ull,
+ 12972079716063371696ull, 2883896279085276567ull}},
+ {{12093223637589920942ull, 11284857941932270818ull,
+ 11603413626651826716ull, 3604870348856595709ull}},
+ {{5893157510132625369ull, 14106072427415338523ull,
+ 669208978032619683ull, 4506087936070744637ull}},
+ {{1377380434619196904ull, 6510452257920892625ull,
+ 2724098620484081254ull, 2816304960044215398ull}},
+ {{6333411561701384034ull, 17361437359255891589ull,
+ 12628495312459877375ull, 3520381200055269247ull}},
+ {{12528450470554117946ull, 17090110680642476582ull,
+ 11173933122147458815ull, 4400476500069086559ull}},
+ {{3218595525668935812ull, 17598848203042629720ull,
+ 13901237228983243615ull, 2750297812543179099ull}},
+ {{4023244407086169765ull, 17386874235375899246ull,
+ 12764860517801666615ull, 3437872265678973874ull}},
+ {{14252427545712488015ull, 17121906775792486153ull,
+ 6732703610397307461ull, 4297340332098717343ull}},
+ {{1990238188429223153ull, 13007034744083997798ull,
+ 11125468784139399019ull, 2685837707561698339ull}},
+ {{11711169772391304750ull, 11647107411677609343ull,
+ 9295149961746860870ull, 3357297134452122924ull}},
+ {{10027276197061743033ull, 5335512227742235871ull,
+ 11618937452183576088ull, 4196621418065153655ull}},
+ {{13184576650804671252ull, 3334695142338897419ull,
+ 14179364935255816911ull, 2622888386290721034ull}},
+ {{11869034795078451161ull, 18003426983205785486ull,
+ 8500834132214995330ull, 3278610482863401293ull}},
+ {{5612921456993288143ull, 13280911692152456050ull,
+ 15237728683696132067ull, 4098263103579251616ull}},
+ {{8119761929048192993ull, 5994726798381591079ull,
+ 9523580427310082542ull, 2561414439737032260ull}},
+ {{5538016392882853338ull, 16716780534831764657ull,
+ 11904475534137603177ull, 3201768049671290325ull}},
+ {{11534206509530954576ull, 7060917613257542109ull,
+ 1045536362389840260ull, 4002210062089112907ull}},
+ {{9514722077670540562ull, 13636445545140739626ull,
+ 16794361290989507826ull, 2501381288805695566ull}},
+ {{2670030560233399894ull, 7822184894571148725ull,
+ 11769579576882108975ull, 3126726611007119458ull}},
+ {{7949224218719137772ull, 5166045099786548002ull,
+ 5488602434247860411ull, 3908408263758899323ull}},
+ {{9579951155126849012ull, 922935178152898549ull, 1124533512191218805ull,
+ 2442755164849312077ull}},
+ {{16586624962335949168ull, 5765354991118511090ull,
+ 6017352908666411410ull, 3053443956061640096ull}},
+ {{11509909166065160652ull, 16430065775752914671ull,
+ 7521691135833014262ull, 3816804945077050120ull}},
+ {{14111222256431807264ull, 5657105091418183765ull,
+ 4701056959895633914ull, 2385503090673156325ull}},
+ {{3803969765257595368ull, 16294753401127505515ull,
+ 10488007218296930296ull, 2981878863341445406ull}},
+ {{143276188144606306ull, 1921697677699830278ull, 3886636986016387063ull,
+ 3727348579176806758ull}},
+ {{13924605672872542653ull, 8118590076203475779ull,
+ 16264206171542405626ull, 2329592861985504223ull}},
+ {{12794071072663290412ull, 924865558399568916ull,
+ 15718571696000619129ull, 2911991077481880279ull}},
+ {{15992588840829113015ull, 5767767966426849049ull,
+ 15036528601573386007ull, 3639988846852350349ull}},
+ {{6155677995754227557ull, 2598023939606173408ull,
+ 4960602696684568797ull, 4549986058565437937ull}},
+ {{3847298747346392223ull, 3929607971467552332ull,
+ 14629591731496325258ull, 2843741286603398710ull}},
+ {{4809123434182990279ull, 14135382001189216223ull,
+ 9063617627515630764ull, 3554676608254248388ull}},
+ {{1399718274301349945ull, 17669227501486520279ull,
+ 11329522034394538455ull, 4443345760317810485ull}},
+ {{7792352949079425572ull, 17960796216070157030ull,
+ 9386794280710280486ull, 2777091100198631553ull}},
+ {{517069149494506156ull, 13227623233232920480ull,
+ 16345178869315238512ull, 3471363875248289441ull}},
+ {{646336436868132695ull, 16534529041541150600ull,
+ 6596415531361884428ull, 4339204844060361802ull}},
+ {{403960273042582935ull, 1110708614108443317ull, 8734445725528565672ull,
+ 2712003027537726126ull}},
+ {{5116636359730616572ull, 1388385767635554146ull,
+ 1694685120055931282ull, 3390003784422157658ull}},
+ {{15619167486518046523ull, 10958854246399218490ull,
+ 11341728436924689910ull, 4237504730527697072ull}},
+ {{14373665697501166981ull, 2237597885572123652ull,
+ 7088580273077931194ull, 2648440456579810670ull}},
+ {{17967082121876458726ull, 12020369393819930373ull,
+ 18084097378202189800ull, 3310550570724763337ull}},
+ {{8623794597063409696ull, 15025461742274912967ull,
+ 8770063667470573538ull, 4138188213405954172ull}},
+ {{12307400650805712916ull, 14002599607349208508ull,
+ 14704661829023884269ull, 2586367633378721357ull}},
+ {{15384250813507141145ull, 3668191453904346923ull,
+ 4545769230997691625ull, 3232959541723401697ull}},
+ {{14618627498456538527ull, 9196925335807821558ull,
+ 10293897557174502435ull, 4041199427154252121ull}},
+ {{4524956168107948676ull, 3442235325666194522ull,
+ 17962901019302533782ull, 2525749641971407575ull}},
+ {{14879567246989711652ull, 13526166193937518960ull,
+ 17841940255700779323ull, 3157187052464259469ull}},
+ {{152714985027587949ull, 12296021723994510797ull,
+ 8467367264343810442ull, 3946483815580324337ull}},
+ {{2401289874855936421ull, 12296699595923957152ull,
+ 16821319586283351286ull, 2466552384737702710ull}},
+ {{3001612343569920526ull, 6147502458050170632ull,
+ 11803277445999413300ull, 3083190480922128388ull}},
+ {{3752015429462400657ull, 7684378072562713290ull,
+ 14754096807499266625ull, 3853988101152660485ull}},
+ {{6956695661841388315ull, 16331951341420165566ull,
+ 11527153513900735592ull, 2408742563220412803ull}},
+ {{17919241614156511201ull, 1968195103065655341ull,
+ 9797255873948531587ull, 3010928204025516004ull}},
+ {{8563993962413475290ull, 16295301934114232889ull,
+ 12246569842435664483ull, 3763660255031895005ull}},
+ {{16881711272576891816ull, 7878720699607701603ull,
+ 9959949160735984254ull, 2352287659394934378ull}},
+ {{16490453072293726866ull, 625028837654851196ull,
+ 3226564414065204510ull, 2940359574243667973ull}},
+ {{2166322266657606966ull, 10004658083923339804ull,
+ 8644891536008893541ull, 3675449467804584966ull}},
+ {{2707902833322008708ull, 17117508623331562659ull,
+ 1582742383156341118ull, 4594311834755731208ull}},
+ {{17833340335322113107ull, 6086756871154838757ull,
+ 989213989472713199ull, 2871444896722332005ull}},
+ {{8456617363870477671ull, 2996760070516160543ull,
+ 5848203505268279403ull, 3589306120902915006ull}},
+ {{5959085686410709185ull, 17581008143427364391ull,
+ 16533626418440125061ull, 4486632651128643757ull}},
+ {{10641957581647775097ull, 13293973098855796696ull,
+ 12639359520738772115ull, 2804145406955402348ull}},
+ {{13302446977059718871ull, 12005780355142357966ull,
+ 15799199400923465144ull, 3505181758694252935ull}},
+ {{7404686684469872780ull, 15007225443927947458ull,
+ 15137313232726943526ull, 4381477198367816169ull}},
+ {{9239615196221058392ull, 4767829884027579257ull,
+ 2543291742813257848ull, 2738423248979885106ull}},
+ {{16161205013703710894ull, 5959787355034474071ull,
+ 12402486715371348118ull, 3423029061224856382ull}},
+ {{15589820248702250713ull, 16673106230647868397ull,
+ 6279736357359409339ull, 4278786326531070478ull}},
+ {{12049480664652600648ull, 8114848384941223796ull,
+ 17759893278631794549ull, 2674241454081919048ull}},
+ {{15061850830815750810ull, 14755246499603917649ull,
+ 3753122524580191570ull, 3342801817602398811ull}},
+ {{4992255483237524800ull, 9220686087650121254ull, 79717137297851559ull,
+ 4178502272002998514ull}},
+ {{16955217732305616712ull, 12680457832422407639ull,
+ 4661509229238545128ull, 2611563920001874071ull}},
+ {{16582336146954632986ull, 15850572290528009549ull,
+ 1215200518120793506ull, 3264454900002342589ull}},
+ {{6892862128411127521ull, 10589843326305236129ull,
+ 6130686666078379787ull, 4080568625002928236ull}},
+ {{15837253876325424461ull, 4312809069727078628ull,
+ 13055051203153763175ull, 2550355390626830147ull}},
+ {{1349823271697228960ull, 779325318731460382ull,
+ 11707127985514816065ull, 3187944238283537684ull}},
+ {{10910651126476312007ull, 5585842666841713381ull,
+ 14633909981893520081ull, 3984930297854422105ull}},
+ {{9124999963261388957ull, 15020366712844540623ull,
+ 2228664711042368194ull, 2490581436159013816ull}},
+ {{6794563935649348292ull, 9552086354200899971ull,
+ 2785830888802960243ull, 3113226795198767270ull}},
+ {{3881518901134297461ull, 7328421924323737060ull,
+ 12705660647858476112ull, 3891533493998459087ull}},
+ {{11649321350063711721ull, 4580263702702335662ull,
+ 14858566932552629426ull, 2432208433749036929ull}},
+ {{5338279650724863843ull, 14948701665232695386ull,
+ 4738150610408623070ull, 3040260542186296162ull}},
+ {{15896221600260855612ull, 9462505044686093424ull,
+ 15146060299865554646ull, 3800325677732870202ull}},
+ {{9935138500163034758ull, 1302379634501420486ull,
+ 14077973705843359558ull, 2375203548583043876ull}},
+ {{3195551088349017639ull, 10851346579981551416ull,
+ 17597467132304199447ull, 2969004435728804845ull}},
+ {{3994438860436272048ull, 8952497206549551366ull,
+ 8161775860098085597ull, 3711255544661006057ull}},
+ {{16331582343054833742ull, 7901153763307163555ull,
+ 16630324958629773258ull, 2319534715413128785ull}},
+ {{15802791910391154274ull, 653070167279178636ull,
+ 6952848143005052861ull, 2899418394266410982ull}},
+ {{1306745814279391226ull, 5428023727526361200ull,
+ 17914432215611091884ull, 3624272992833013727ull}},
+ {{1633432267849239033ull, 6785029659407951500ull,
+ 17781354251086476951ull, 4530341241041267159ull}},
+ {{10244267204260550204ull, 11158172564771051543ull,
+ 18030875434570129950ull, 2831463275650791974ull}},
+ {{8193647986898299851ull, 4724343669109038621ull,
+ 13315222256357886630ull, 3539329094563489968ull}},
+ {{14853746002050262717ull, 15128801623241074084ull,
+ 16644027820447358287ull, 4424161368204362460ull}},
+ {{60219214426638390ull, 16373030042166753159ull, 1179145350924823121ull,
+ 2765100855127726538ull}},
+ {{13910332073315461700ull, 6631229497426277736ull,
+ 10697303725510804710ull, 3456376068909658172ull}},
+ {{17387915091644327125ull, 17512408908637622978ull,
+ 13371629656888505887ull, 4320470086137072715ull}},
+ {{15479132950705092357ull, 17862784595539596217ull,
+ 6051425526341622227ull, 2700293803835670447ull}},
+ {{5513858133099201734ull, 17716794725997107368ull,
+ 2952595889499639880ull, 3375367254794588059ull}},
+ {{6892322666374002168ull, 3699249333786832594ull,
+ 17525802917156713563ull, 4219209068493235073ull}},
+ {{8919387684911139259ull, 6187824403076419ull, 4036097795581864121ull,
+ 2637005667808271921ull}},
+ {{6537548587711536170ull, 4619420798931233428ull,
+ 9656808262904718055ull, 3296257084760339901ull}},
+ {{8171935734639420212ull, 1162589980236653881ull,
+ 16682696347058285473ull, 4120321355950424876ull}},
+ {{16636674880218107393ull, 12255833783716378435ull,
+ 1203313180056652612ull, 2575200847469015548ull}},
+ {{16184157581845246337ull, 15319792229645473044ull,
+ 1504141475070815765ull, 3219001059336269435ull}},
+ {{1783452903597006305ull, 5314682231774677594ull,
+ 15715234899120683419ull, 4023751324170336793ull}},
+ {{5726344083175516845ull, 1015833385645479544ull,
+ 2904492784309345281ull, 2514844577606460496ull}},
+ {{7157930103969396056ull, 5881477750484237334ull,
+ 3630615980386681601ull, 3143555722008075620ull}},
+ {{18170784666816520877ull, 11963533206532684571ull,
+ 4538269975483352001ull, 3929444652510094525ull}},
+ {{9050897407546631597ull, 559679226441846001ull, 5142261743890788953ull,
+ 2455902907818809078ull}},
+ {{15925307777860677400ull, 5311285051479695405ull,
+ 15651199216718261999ull, 3069878634773511347ull}},
+ {{6071576667043683037ull, 2027420295922231353ull,
+ 14952313002470439595ull, 3837348293466889184ull}},
+ {{15323950462970771659ull, 17408038749447252259ull,
+ 9345195626544024746ull, 2398342683416805740ull}},
+ {{14543252060286076669ull, 12536676399954289516ull,
+ 11681494533180030933ull, 2997928354271007175ull}},
+ {{18179065075357595836ull, 1835787444660698183ull,
+ 9990182148047650763ull, 3747410442838758969ull}},
+ {{18279444699739579254ull, 17288268217408794028ull,
+ 17773078888598251486ull, 2342131526774224355ull}},
+ {{4402561800964922451ull, 12386963234906216728ull,
+ 17604662592320426454ull, 2927664408467780444ull}},
+ {{5503202251206153064ull, 6260332006777995102ull,
+ 3559084166690981452ull, 3659580510584725556ull}},
+ {{16102374850862467138ull, 7825415008472493877ull,
+ 4448855208363726815ull, 4574475638230906945ull}},
+ {{12369827291002735913ull, 11808413407936390529ull,
+ 14309749551295799019ull, 2859047273894316840ull}},
+ {{1627226058471256179ull, 10148830741493100258ull,
+ 17887186939119748774ull, 3573809092367896050ull}},
+ {{11257404609943846032ull, 3462666390011599514ull,
+ 13135611637044910160ull, 4467261365459870063ull}},
+ {{11647563899642291674ull, 2164166493757249696ull,
+ 15127286300794150706ull, 2792038353412418789ull}},
+ {{14559454874552864593ull, 11928580154051337928ull,
+ 5074049820710524670ull, 3490047941765523487ull}},
+ {{18199318593191080741ull, 5687353155709396602ull,
+ 1730876257460767934ull, 4362559927206904359ull}},
+ {{15986260139171813367ull, 17389653777600536588ull,
+ 7999326688554061814ull, 2726599954504315224ull}},
+ {{1536081100255215093ull, 12513695185145894928ull,
+ 9999158360692577268ull, 3408249943130394030ull}},
+ {{1920101375319018866ull, 15642118981432368660ull,
+ 3275575914010945777ull, 4260312428912992538ull}},
+ {{10423435396429162599ull, 2858795335754148556ull,
+ 6658920964684229015ull, 2662695268070620336ull}},
+ {{13029294245536453249ull, 17408552224974849407ull,
+ 8323651205855286268ull, 3328369085088275420ull}},
+ {{11674931788493178657ull, 3313946207509010143ull,
+ 10404564007319107836ull, 4160461356360344275ull}},
+ {{14214361395449318517ull, 11294588416547907147ull,
+ 4197009495360748445ull, 2600288347725215172ull}},
+ {{13156265725884260242ull, 283177465402720222ull,
+ 5246261869200935557ull, 3250360434656518965ull}},
+ {{7221960120500549494ull, 4965657850180788182ull,
+ 11169513354928557350ull, 4062950543320648706ull}},
+ {{18348783130595007146ull, 16938594211645156325ull,
+ 11592631865257736247ull, 2539344089575405441ull}},
+ {{9100920857961595221ull, 16561556746129057503ull,
+ 655731776290006597ull, 3174180111969256802ull}},
+ {{6764465054024606122ull, 6866887877379158167ull,
+ 10043036757217284055ull, 3967725139961571002ull}},
+ {{11145319686406460682ull, 11209333951003055710ull,
+ 10888583991688190438ull, 2479828212475981876ull}},
+ {{4708277571153300045ull, 4788295401899043830ull,
+ 13610729989610238048ull, 3099785265594977345ull}},
+ {{15108719000796400864ull, 5985369252373804787ull,
+ 3178354431730633848ull, 3874731581993721682ull}},
+ {{7137106366284056588ull, 3740855782733627992ull,
+ 6598157538259034059ull, 2421707238746076051ull}},
+ {{8921382957855070735ull, 64383709989647086ull, 3636010904396404670ull,
+ 3027134048432595064ull}},
+ {{1928356660464062610ull, 9303851674341834666ull,
+ 4545013630495505837ull, 3783917560540743830ull}},
+ {{5816908931217427036ull, 8120750305677340618ull,
+ 16675691574341854860ull, 2364948475337964893ull}},
+ {{16494508200876559603ull, 10150937882096675772ull,
+ 7009556412645154863ull, 2956185594172456117ull}},
+ {{2171391177386147887ull, 8076986334193456812ull,
+ 13373631534233831483ull, 3695231992715570146ull}},
+ {{10580491522721118238ull, 2742273449657216555ull,
+ 12970205727323532581ull, 2309519995447231341ull}},
+ {{8613928384974009893ull, 8039527830498908598ull,
+ 2377699103872252014ull, 2886899994309039177ull}},
+ {{1544038444362736558ull, 826037751268859940ull, 7583809898267702922ull,
+ 3608624992886298971ull}},
+ {{1930048055453420697ull, 10255919225940850733ull,
+ 4868076354407240748ull, 4510781241107873714ull}},
+ {{3512123043872081888ull, 15633321553067807516ull,
+ 7654233739931913371ull, 2819238275692421071ull}},
+ {{4390153804840102360ull, 14929965922907371491ull,
+ 4956106156487503810ull, 3524047844615526339ull}},
+ {{876006237622740046ull, 9439085366779438556ull, 1583446677181991859ull,
+ 4405059805769407924ull}},
+ {{9770875935368988337ull, 3593585345023455145ull,
+ 10213026210093520720ull, 2753162378605879952ull}},
+ {{16825280937638623325ull, 4491981681279318931ull,
+ 12766282762616900900ull, 3441452973257349940ull}},
+ {{16419915153620891252ull, 5614977101599148664ull,
+ 15957853453271126125ull, 4301816216571687425ull}},
+ {{10262446971013057033ull, 5815203697713161867ull,
+ 3056129380653371972ull, 2688635135357304641ull}},
+ {{8216372695338933387ull, 7269004622141452334ull,
+ 8431847744244102869ull, 3360793919196630801ull}},
+ {{1047093832318890925ull, 13697941796104203322ull,
+ 15151495698732516490ull, 4200992398995788501ull}},
+ {{5266119663626694732ull, 13172899640992514980ull,
+ 11775527820921516758ull, 2625620249372367813ull}},
+ {{6582649579533368415ull, 7242752514385867917ull, 884351720869732236ull,
+ 3282025311715459767ull}},
+ {{12839997992844098423ull, 9053440642982334896ull,
+ 14940497706369329007ull, 4102531639644324708ull}},
+ {{8024998745527561515ull, 12575929429505041166ull,
+ 114439029626054821ull, 2564082274777702943ull}},
+ {{807876395054676085ull, 1884853731599137746ull,
+ 13978106842314732239ull, 3205102843472128678ull}},
+ {{10233217530673120914ull, 16191125219781085894ull,
+ 8249261516038639490ull, 4006378554340160848ull}},
+ {{1784074938243312668ull, 14731139280790566588ull,
+ 5155788447524149681ull, 2503986596462600530ull}},
+ {{2230093672804140834ull, 4578866045706044523ull,
+ 15668107596259962910ull, 3129983245578250662ull}},
+ {{16622675146287339755ull, 14946954593987331461ull,
+ 10361762458470177829ull, 3912479056972813328ull}},
+ {{12695014975643281299ull, 11647689630455776115ull,
+ 6476101536543861143ull, 2445299410608008330ull}},
+ {{11257082701126713720ull, 9947926019642332240ull,
+ 17318498957534602237ull, 3056624263260010412ull}},
+ {{14071353376408392149ull, 17046593542980303204ull,
+ 3201379623208701180ull, 3820780329075013016ull}},
+ {{18017967897110020902ull, 1430748927507913694ull,
+ 2000862264505438238ull, 2387987705671883135ull}},
+ {{13299087834532750319ull, 11011808196239667926ull,
+ 16336135885913961509ull, 2984984632089853918ull}},
+ {{7400487756311162090ull, 18376446263726972812ull,
+ 11196797820537676078ull, 3731230790112317398ull}},
+ {{13848676884549252115ull, 6873592896401970103ull,
+ 2386312619408659645ull, 2332019243820198374ull}},
+ {{12699160087259177239ull, 13203677138929850533ull,
+ 12206262811115600364ull, 2915024054775247967ull}},
+ {{2038892053791807837ull, 16504596423662313167ull,
+ 10646142495467112551ull, 3643780068469059959ull}},
+ {{16383673122521923508ull, 16019059511150503554ull,
+ 8695992100906502785ull, 4554725085586324949ull}},
+ {{14851481720003590097ull, 3094383166827982865ull,
+ 7740838072280258193ull, 2846703178491453093ull}},
+ {{4729294094722323909ull, 8479664976962366486ull,
+ 14287733608777710645ull, 3558378973114316366ull}},
+ {{15134989655257680694ull, 15211267239630346011ull,
+ 8636294974117362498ull, 4447973716392895458ull}},
+ {{7153525525322356482ull, 14118728043196354161ull,
+ 10009370377250739465ull, 2779983572745559661ull}},
+ {{13553592925080333506ull, 3813351998713278989ull,
+ 17123398989990812236ull, 3474979465931949576ull}},
+ {{3106933101068253171ull, 4766689998391598737ull,
+ 2957504663778963679ull, 4343724332414936971ull}},
+ {{13471048234236127992ull, 9896710276635831066ull,
+ 17989341479357709963ull, 2714827707759335606ull}},
+ {{7615438255940384182ull, 7759201827367400929ull,
+ 13263304812342361646ull, 3393534634699169508ull}},
+ {{14130983838352868131ull, 475630247354475353ull,
+ 16579131015427952058ull, 4241918293373961885ull}},
+ {{1914335871329460726ull, 4908954923023935000ull,
+ 12667799893856163988ull, 2651198933358726178ull}},
+ {{2392919839161825907ull, 6136193653779918750ull,
+ 6611377830465429177ull, 3313998666698407723ull}},
+ {{12214521835807058192ull, 12281928085652286341ull,
+ 3652536269654398567ull, 4142498333373009654ull}},
+ {{9939919156593105322ull, 14593734081173760819ull,
+ 16117893223816162816ull, 2589061458358131033ull}},
+ {{7813212927313993749ull, 18242167601467201024ull,
+ 6312308474488039808ull, 3236326822947663792ull}},
+ {{9766516159142492186ull, 4355965428124449664ull,
+ 7890385593110049761ull, 4045408528684579740ull}},
+ {{6104072599464057616ull, 14251693438646250800ull,
+ 14154863032548556908ull, 2528380330427862337ull}},
+ {{7630090749330072020ull, 17814616798307813500ull,
+ 3858520735403532423ull, 3160475413034827922ull}},
+ {{9537613436662590025ull, 17656584979457378971ull,
+ 14046522956109191337ull, 3950594266293534902ull}},
+ {{3655165388700424814ull, 4117836584519780001ull,
+ 4167390829140856682ull, 2469121416433459314ull}},
+ {{9180642754302918921ull, 14370667767504500809ull,
+ 14432610573280846660ull, 3086401770541824142ull}},
+ {{16087489461306036555ull, 17963334709380626011ull,
+ 8817391179746282517ull, 3858002213177280178ull}},
+ {{7748837904102578895ull, 13532927202576585209ull,
+ 10122555505768814477ull, 2411251383235800111ull}},
+ {{14297733398555611523ull, 3081100947938567799ull,
+ 8041508363783630193ull, 3014064229044750139ull}},
+ {{13260480729767126500ull, 8463062203350597653ull,
+ 5440199436302149837ull, 3767580286305937674ull}},
+ {{10593643465318148015ull, 7595256886307817485ull,
+ 8011810666116231552ull, 2354737678941211046ull}},
+ {{17853740350075072922ull, 9494071107884771856ull,
+ 791391295790513632ull, 2943422098676513808ull}},
+ {{3870431363884289536ull, 11867588884855964821ull,
+ 989239119738142040ull, 3679277623345642260ull}},
+ {{9449725223282749824ull, 14834486106069956026ull,
+ 1236548899672677550ull, 4599097029182052825ull}},
+ {{10517764282979106544ull, 4659867797866334612ull,
+ 12302058108363893229ull, 2874435643238783015ull}},
+ {{13147205353723883180ull, 10436520765760306169ull,
+ 10765886617027478632ull, 3593044554048478769ull}},
+ {{2598948636872690263ull, 13045650957200382712ull,
+ 18069044289711736194ull, 4491305692560598461ull}},
+ {{1624342898045431415ull, 12765217866677627099ull,
+ 13598995690283529073ull, 2807066057850374038ull}},
+ {{15865486677838952980ull, 2121464278064870161ull,
+ 7775372575999635534ull, 3508832572312967548ull}},
+ {{5996800292016527513ull, 11875202384435863510ull,
+ 9719215719999544417ull, 4386040715391209435ull}},
+ {{17583058237792493408ull, 504472462631332837ull,
+ 3768666815786021309ull, 2741275447119505897ull}},
+ {{8143764741958453048ull, 5242276596716553951ull,
+ 9322519538159914540ull, 3426594308899382371ull}},
+ {{5568019909020678406ull, 6552845745895692439ull,
+ 7041463404272505271ull, 4283242886124227964ull}},
+ {{10397541470779005860ull, 11013057618825889630ull,
+ 13624286664525091602ull, 2677026803827642477ull}},
+ {{3773554801618981517ull, 4542949986677586230ull,
+ 3195300275374200791ull, 3346283504784553097ull}},
+ {{13940315538878502704ull, 1067001464919594883ull,
+ 8605811362645138893ull, 4182854380980691371ull}},
+ {{6406854202585370238ull, 2972718924788440754ull,
+ 3072789092439517856ull, 2614283988112932107ull}},
+ {{17231939790086488605ull, 3715898655985550942ull,
+ 17676044420831561032ull, 3267854985141165133ull}},
+ {{12316552700753334949ull, 4644873319981938678ull,
+ 8259997470757287578ull, 4084818731426456417ull}},
+ {{3086159419543446439ull, 7514731843416099578ull,
+ 16691713465291774496ull, 2553011707141535260ull}},
+ {{13081071311284083857ull, 9393414804270124472ull,
+ 2417897757905166504ull, 3191264633926919076ull}},
+ {{16351339139105104821ull, 11741768505337655590ull,
+ 3022372197381458130ull, 3989080792408648845ull}},
+ {{5607900943513302609ull, 11950291334263422648ull,
+ 4194825632577105283ull, 2493175495255405528ull}},
+ {{7009876179391628261ull, 10326178149401890406ull,
+ 5243532040721381604ull, 3116469369069256910ull}},
+ {{17985717261094311134ull, 12907722686752363007ull,
+ 15777787087756502813ull, 3895586711336571137ull}},
+ {{18158602315825026315ull, 10373169688433920831ull,
+ 2943587902206732402ull, 2434741694585356961ull}},
+ {{18086566876353894990ull, 3743090073687625231ull,
+ 8291170896185803407ull, 3043427118231696201ull}},
+ {{17996522577014980833ull, 67176573682143635ull,
+ 14975649638659642163ull, 3804283897789620251ull}},
+ {{8941983601420669069ull, 16182886423047197436ull,
+ 7053938014948582399ull, 2377677436118512657ull}},
+ {{11177479501775836336ull, 15616922010381608891ull,
+ 13429108537113115903ull, 2972096795148140821ull}},
+ {{9360163358792407516ull, 14909466494549623210ull,
+ 2951327616109231167ull, 3715120993935176027ull}},
+ {{10461788117672642602ull, 16235945586734596362ull,
+ 17985480824564127143ull, 2321950621209485016ull}},
+ {{3853863110236027444ull, 15683245964990857549ull,
+ 4035106956995607313ull, 2902438276511856271ull}},
+ {{9429014906222422209ull, 5768999400956408224ull, 432197677817121238ull,
+ 3628047845639820339ull}},
+ {{11786268632778027761ull, 16434621288050286088ull,
+ 14375305152553565259ull, 4535059807049775423ull}},
+ {{7366417895486267351ull, 7965795295817734853ull,
+ 15902094747987060143ull, 2834412379406109639ull}},
+ {{13819708387785222092ull, 5345558101344780662ull,
+ 15265932416556437275ull, 3543015474257637049ull}},
+ {{8051263447876751807ull, 2070261608253587924ull,
+ 5247357465413382882ull, 4428769342822046312ull}},
+ {{14255411691777745688ull, 5905599523585880356ull,
+ 3279598415883364301ull, 2767980839263778945ull}},
+ {{17819264614722182110ull, 11993685422909738349ull,
+ 8711184038281593280ull, 3459976049079723681ull}},
+ {{8439022713120563925ull, 14992106778637172937ull,
+ 15500666066279379504ull, 4324970061349654601ull}},
+ {{16803604241768822213ull, 9370066736648233085ull,
+ 2770387263783530334ull, 2703106288343534126ull}},
+ {{7169447246928864054ull, 2489211383955515549ull,
+ 12686356116584188726ull, 3378882860429417657ull}},
+ {{13573495077088467972ull, 12334886266799170244ull,
+ 2022887090448072195ull, 4223603575536772072ull}},
+ {{17706806460035068291ull, 5403460907535787450ull,
+ 1264304431530045122ull, 2639752234710482545ull}},
+ {{12910136038189059555ull, 15977698171274510121ull,
+ 6192066557839944306ull, 3299690293388103181ull}},
+ {{2302611992454160732ull, 10748750677238361844ull,
+ 12351769215727318287ull, 4124612866735128976ull}},
+ {{10662504532138626266ull, 13635498200915058008ull,
+ 7719855759829573929ull, 2577883041709455610ull}},
+ {{13328130665173282832ull, 3209314695861658798ull,
+ 426447662932191604ull, 3222353802136819513ull}},
+ {{7436791294611827732ull, 4011643369827073498ull,
+ 5144745597092627409ull, 4027942252671024391ull}},
+ {{9259680577559780236ull, 14036492152210390696ull,
+ 10132995025823973986ull, 2517463907919390244ull}},
+ {{11574600721949725295ull, 8322243153408212562ull,
+ 12666243782279967483ull, 3146829884899237805ull}},
+ {{5244878865582380811ull, 5791117923332877799ull,
+ 1997746672567795642ull, 3933537356124047257ull}},
+ {{10195578318630069863ull, 8231134720510436528ull,
+ 12777806716423342036ull, 2458460847577529535ull}},
+ {{12744472898287587329ull, 10288918400638045660ull,
+ 11360572377101789641ull, 3073076059471911919ull}},
+ {{15930591122859484161ull, 17472834019224944979ull,
+ 9589029452949849147ull, 3841345074339889899ull}},
+ {{7650776442573483649ull, 8614678252801896660ull,
+ 3687300398879961765ull, 2400840671462431187ull}},
+ {{9563470553216854561ull, 15380033834429758729ull,
+ 18444183553882115918ull, 3001050839328038983ull}},
+ {{16566024209948456105ull, 10001670256182422603ull,
+ 18443543423925256994ull, 3751313549160048729ull}},
+ {{8047922122004091114ull, 10862729928541402031ull,
+ 4609685612312203765ull, 2344570968225030456ull}},
+ {{5448216634077725988ull, 18190098429104140443ull,
+ 5762107015390254706ull, 2930713710281288070ull}},
+ {{2198584774169769581ull, 13514250999525399746ull,
+ 16426005806092594191ull, 3663392137851610087ull}},
+ {{11971603004566987784ull, 12281127730979361778ull,
+ 15920821239188354835ull, 4579240172314512609ull}},
+ {{12093937896281755269ull, 5369861822648407159ull,
+ 3032984246851639916ull, 2862025107696570381ull}},
+ {{10505736351924806182ull, 6712327278310508949ull,
+ 8402916326991937799ull, 3577531384620712976ull}},
+ {{17743856458333395632ull, 3778723079460748282ull,
+ 10503645408739922249ull, 4471914230775891220ull}},
+ {{15701596304885760174ull, 13890916970731437436ull,
+ 15788150417317227213ull, 2794946394234932012ull}},
+ {{1180251307397648602ull, 3528588158132133084ull,
+ 1288443947936982401ull, 3493682992793665016ull}},
+ {{1475314134247060752ull, 9022421216092554259ull,
+ 1610554934921228001ull, 4367103740992081270ull}},
+ {{17062972398400270634ull, 17168228306126316171ull,
+ 14841654889607931212ull, 2729439838120050793ull}},
+ {{16717029479572950388ull, 3013541308948343598ull,
+ 4717010556727750304ull, 3411799797650063492ull}},
+ {{11672914812611412177ull, 3766926636185429498ull,
+ 5896263195909687880ull, 4264749747062579365ull}},
+ {{11907257776309520515ull, 2354329147615893436ull,
+ 5991007506657248877ull, 2665468591914112103ull}},
+ {{14884072220386900644ull, 7554597452947254699ull,
+ 2877073364894173192ull, 3331835739892640129ull}},
+ {{13993404257056237901ull, 9443246816184068374ull,
+ 8208027724545104394ull, 4164794674865800161ull}},
+ {{4134191642232760784ull, 10513715278542430638ull,
+ 16659232373909160006ull, 2602996671791125100ull}},
+ {{14391111589645726788ull, 3918772061323262489ull,
+ 2377296393676898392ull, 3253745839738906376ull}},
+ {{4153831431774994773ull, 4898465076654078112ull,
+ 2971620492096122990ull, 4067182299673632970ull}},
+ {{2596144644859371733ull, 16896598728190962532ull,
+ 6468948825987464772ull, 2541988937296020606ull}},
+ {{3245180806074214666ull, 2674004336529151549ull,
+ 17309558069339106774ull, 3177486171620025757ull}},
+ {{8668162026020156237ull, 12565877457516215244ull,
+ 7801889531391719755ull, 3971857714525032197ull}},
+ {{14640973303117373456ull, 5547830401733940575ull,
+ 7182023966333518799ull, 2482411071578145123ull}},
+ {{13689530610469328916ull, 2323101983740037815ull,
+ 4365843939489510595ull, 3103013839472681404ull}},
+ {{12500227244659273241ull, 16738935534957210981ull,
+ 5457304924361888243ull, 3878767299340851755ull}},
+ {{10118485037125739728ull, 8155991700134562911ull,
+ 1104972568512486200ull, 2424229562088032347ull}},
+ {{8036420277979786756ull, 10194989625168203639ull,
+ 15216273765922771462ull, 3030286952610040433ull}},
+ {{5433839329047345540ull, 3520364994605478741ull,
+ 5185284152121300616ull, 3787858690762550542ull}},
+ {{5701992589868284915ull, 2200228121628424213ull,
+ 17075860650357976597ull, 2367411681726594088ull}},
+ {{11739176755762744048ull, 7361971170462918170ull,
+ 2898081739237919130ull, 2959264602158242611ull}},
+ {{5450598907848654251ull, 18425835999933423521ull,
+ 17457660229329562624ull, 3699080752697803263ull}},
+ {{14935839363473878667ull, 11516147499958389700ull,
+ 17828566670972058496ull, 2311925470436127039ull}},
+ {{223055130632796718ull, 14395184374947987126ull,
+ 17674022320287685216ull, 2889906838045158799ull}},
+ {{9502190950145771705ull, 17993980468684983907ull,
+ 17480841881932218616ull, 3612383547556448499ull}},
+ {{7266052669254826728ull, 4045731512146678268ull,
+ 17239366333987885367ull, 4515479434445560624ull}},
+ {{13764654955139042513ull, 9446111222732755773ull,
+ 10774603958742428354ull, 2822174646528475390ull}},
+ {{3370760638641639429ull, 2584266991561168909ull,
+ 4244882911573259635ull, 3527718308160594238ull}},
+ {{8825136816729437190ull, 17065391794733624848ull,
+ 14529475676321350351ull, 4409647885200742797ull}},
+ {{5515710510455898244ull, 17583398899349597386ull,
+ 11386765306914537921ull, 2756029928250464248ull}},
+ {{16118010174924648613ull, 8144190568904833020ull,
+ 14233456633643172402ull, 3445037410313080310ull}},
+ {{1700768644946259150ull, 956866174276265468ull, 8568448755199189695ull,
+ 4306296762891350388ull}},
+ {{10286352439946187777ull, 7515570386563747773ull,
+ 14578652508854269367ull, 2691435476807093992ull}},
+ {{17469626568360122625ull, 4782776964777296812ull,
+ 18223315636067836709ull, 3364294346008867490ull}},
+ {{3390289136740601665ull, 10590157224399008920ull,
+ 13555772508230020078ull, 4205367932511084363ull}},
+ {{2118930710462876041ull, 2007162246821992671ull,
+ 6166514808430068597ull, 2628354957819427727ull}},
+ {{16483721443360758763ull, 7120638826954878742ull,
+ 3096457492110197842ull, 3285443697274284659ull}},
+ {{11381279767346172646ull, 18124170570548374236ull,
+ 17705629920419911014ull, 4106804621592855823ull}},
+ {{16336671891446133712ull, 6715920588165345993ull,
+ 17983547727903526240ull, 2566752888495534889ull}},
+ {{6585781809025503428ull, 8394900735206682492ull,
+ 8644376604597244088ull, 3208441110619418612ull}},
+ {{8232227261281879284ull, 10493625919008353115ull,
+ 10805470755746555110ull, 4010551388274273265ull}},
+ {{2839299029087480601ull, 1946830180952832793ull,
+ 18282634268410066704ull, 2506594617671420790ull}},
+ {{8160809804786738655ull, 2433537726191040991ull,
+ 13629920798657807572ull, 3133243272089275988ull}},
+ {{5589326237556035415ull, 3041922157738801239ull,
+ 17037400998322259465ull, 3916554090111594985ull}},
+ {{10410857926113603990ull, 13430416394655220534ull,
+ 3730846596310330309ull, 2447846306319746866ull}},
+ {{3790200370787229180ull, 2952962438036861956ull,
+ 13886930282242688695ull, 3059807882899683582ull}},
+ {{4737750463484036475ull, 17526261102828241157ull,
+ 8135290815948585060ull, 3824759853624604478ull}},
+ {{5266937048891216749ull, 1730541152412874915ull, 472870741540477759ull,
+ 2390474908515377799ull}},
+ {{1971985292686633032ull, 15998234495798257356ull,
+ 14426146482207760910ull, 2988093635644222248ull}},
+ {{2464981615858291290ull, 10774421082893045887ull,
+ 18032683102759701138ull, 3735117044555277810ull}},
+ {{8458142537552513912ull, 11345699195235541583ull,
+ 15882112957652201115ull, 2334448152847048631ull}},
+ {{5960992153513254486ull, 9570437975617039075ull,
+ 15240955178637863490ull, 2918060191058810789ull}},
+ {{2839554173464180204ull, 2739675432666523036ull,
+ 5216135918015165651ull, 3647575238823513487ull}},
+ {{3549442716830225254ull, 17259652346115317507ull,
+ 1908483879091569159ull, 4559469048529391859ull}},
+ {{18359302762514748448ull, 17704811743963155297ull,
+ 17333703488928088388ull, 2849668155330869911ull}},
+ {{9114070397861271848ull, 3684270606244392506ull,
+ 17055443342732722582ull, 3562085194163587389ull}},
+ {{2169215960471814002ull, 13828710294660266441ull,
+ 7484246123133739515ull, 4452606492704484237ull}},
+ {{12884975021363353511ull, 6337100924948972573ull,
+ 6983496836172281149ull, 2782879057940302648ull}},
+ {{2271160721422028177ull, 12533062174613603621ull,
+ 8729371045215351436ull, 3478598822425378310ull}},
+ {{7450636920204923125ull, 15666327718267004526ull,
+ 1688341769664413487ull, 4348248528031722888ull}},
+ {{44962056700689050ull, 16708983851557959685ull, 1055213606040258429ull,
+ 2717655330019826805ull}},
+ {{4667888589303249216ull, 7051171759165285894ull,
+ 5930703025977710941ull, 3397069162524783506ull}},
+ {{15058232773483837328ull, 13425650717383995271ull,
+ 16636750819326914484ull, 4246336453155979382ull}},
+ {{16328924511068480186ull, 17614403735219772852ull,
+ 5786283243651933648ull, 2653960283222487114ull}},
+ {{1964411565126048616ull, 3571260595315164450ull,
+ 16456226091419692869ull, 3317450354028108892ull}},
+ {{11678886493262336578ull, 9075761762571343466ull,
+ 2123538540565064470ull, 4146812942535136116ull}},
+ {{11910990076716348266ull, 1060665083179701762ull,
+ 10550583624707941102ull, 2591758089084460072ull}},
+ {{5665365559040659524ull, 10549203390829403011ull,
+ 13188229530884926377ull, 3239697611355575090ull}},
+ {{2470020930373436501ull, 17798190256964141668ull,
+ 7261914876751382163ull, 4049622014194468863ull}},
+ {{10767135118338173621ull, 8818025901388894590ull,
+ 11456225825610695708ull, 2531013758871543039ull}},
+ {{4235546861067941218ull, 11022532376736118238ull,
+ 9708596263585981731ull, 3163767198589428799ull}},
+ {{14517805613189702331ull, 9166479452492759893ull,
+ 7524059311055089260ull, 3954708998236785999ull}},
+ {{11379471517457257909ull, 14952421694662750741ull,
+ 11620066097050512643ull, 2471693123897991249ull}},
+ {{389281341539408674ull, 14078841099901050523ull, 690024566030977092ull,
+ 3089616404872489062ull}},
+ {{14321659732206424554ull, 17598551374876313153ull,
+ 10085902744393497173ull, 3862020506090611327ull}},
+ {{2033508304987933491ull, 13304937618511389673ull,
+ 13221218242887017589ull, 2413762816306632079ull}},
+ {{7153571399662304767ull, 2796113967857073379ull,
+ 11914836785181384083ull, 3017203520383290099ull}},
+ {{4330278231150493055ull, 17330200515103505436ull,
+ 10281859963049342199ull, 3771504400479112624ull}},
+ {{11929795931323833968ull, 17748904349580772753ull,
+ 6426162476905838874ull, 2357190250299445390ull}},
+ {{1077186858872628747ull, 12962758400121190134ull,
+ 17256075132987074401ull, 2946487812874306737ull}},
+ {{10569855610445561742ull, 2368389944869323955ull,
+ 7735035860951679290ull, 3683109766092883422ull}},
+ {{8600633494629564273ull, 12183859467941430752ull,
+ 445422789334823304ull, 4603887207616104278ull}},
+ {{5375395934143477671ull, 7614912167463394220ull,
+ 14113447298616428277ull, 2877429504760065173ull}},
+ {{6719244917679347089ull, 14130326227756630679ull,
+ 3806751067988371634ull, 3596786880950081467ull}},
+ {{3787370128671795957ull, 8439535747841012541ull, 146752816558076639ull,
+ 4495983601187601834ull}},
+ {{4672949339633566425ull, 12192238870041714694ull,
+ 4703406528776185803ull, 2809989750742251146ull}},
+ {{15064558711396733839ull, 10628612569124755463ull,
+ 15102630197825008062ull, 3512487188427813932ull}},
+ {{14219012370818529395ull, 4062393674551168521ull,
+ 431543673571708462ull, 4390608985534767416ull}},
+ {{1969353704120499016ull, 16374054101876644038ull,
+ 269714795982317788ull, 2744130615959229635ull}},
+ {{11685064167005399578ull, 2020823553636253431ull,
+ 14172201550260060948ull, 3430163269949037043ull}},
+ {{9994644190329361568ull, 2526029442045316789ull,
+ 13103565919397688281ull, 4287704087436296304ull}},
+ {{8552495628169544932ull, 13107983447346792753ull,
+ 8189728699623555175ull, 2679815054647685190ull}},
+ {{15302305553639319069ull, 11773293290756103037ull,
+ 1013788837674668161ull, 3349768818309606488ull}},
+ {{5292823886766985125ull, 881558558162965085ull, 1267236047093335202ull,
+ 4187211022887008110ull}},
+ {{5613857938443059655ull, 5162660117279241082ull,
+ 14627080584715498213ull, 2617006889304380068ull}},
+ {{16240694459908600377ull, 11065011165026439256ull,
+ 18283850730894372766ull, 3271258611630475085ull}},
+ {{1854124001176198855ull, 4607891919428273263ull,
+ 9019755358335802246ull, 4089073264538093857ull}},
+ {{8076356528376206140ull, 16714990504924834501ull,
+ 17166562145028346163ull, 2555670790336308660ull}},
+ {{14707131678897645579ull, 16282052112728655222ull,
+ 3011458607575881088ull, 3194588487920385826ull}},
+ {{9160542561767281166ull, 1905821067201267412ull,
+ 12987695296324627169ull, 3993235609900482282ull}},
+ {{14948711137959326537ull, 12720353213069261892ull,
+ 12728995578630279884ull, 2495772256187801426ull}},
+ {{239144848739606555ull, 15900441516336577366ull,
+ 6687872436433074047ull, 3119715320234751783ull}},
+ {{9522303097779284002ull, 15263865876993333803ull,
+ 3748154527113954655ull, 3899644150293439729ull}},
+ {{3645596426898358549ull, 16457445200761915483ull,
+ 13871811625514691419ull, 2437277593933399830ull}},
+ {{18392053588905111898ull, 15960120482525006449ull,
+ 8116392495038588466ull, 3046596992416749788ull}},
+ {{9155008930849226161ull, 10726778566301482254ull,
+ 10145490618798235583ull, 3808246240520937235ull}},
+ {{1110194563353378447ull, 13621765631579508265ull,
+ 4035088627535203287ull, 2380153900325585772ull}},
+ {{5999429222619110962ull, 12415521021046997427ull,
+ 5043860784419004109ull, 2975192375406982215ull}},
+ {{2887600509846500799ull, 1684343221026583072ull,
+ 1693139962096367233ull, 3718990469258727769ull}},
+ {{1804750318654062999ull, 12581929559210084180ull,
+ 12587427522378699280ull, 2324369043286704855ull}},
+ {{2255937898317578749ull, 15727411949012605225ull,
+ 11122598384545986196ull, 2905461304108381069ull}},
+ {{7431608391324361340ull, 1212520862556204915ull, 68189925400319034ull,
+ 3631826630135476337ull}},
+ {{4677824470728063771ull, 10739023115050031952ull,
+ 4696923425177786696ull, 4539783287669345421ull}},
+ {{2923640294205039857ull, 6711889446906269970ull,
+ 5241420149949810637ull, 2837364554793340888ull}},
+ {{12877922404611075629ull, 13001547827060225366ull,
+ 6551775187437263296ull, 3546705693491676110ull}},
+ {{6874030968909068729ull, 16251934783825281708ull,
+ 17413091021151354928ull, 4433382116864595137ull}},
+ {{13519641392422943764ull, 10157459239890801067ull,
+ 3965652860578514974ull, 2770863823040371961ull}},
+ {{12287865722101291800ull, 3473452013008725526ull,
+ 9568752094150531622ull, 3463579778800464951ull}},
+ {{6136460115771838942ull, 13565187053115682716ull,
+ 7349254099260776623ull, 4329474723500581189ull}},
+ {{13058659609212175147ull, 15395770935838383553ull,
+ 6899126821251679341ull, 2705921702187863243ull}},
+ {{2488266456233055222ull, 5409655614515815730ull,
+ 4012222508137211273ull, 3382402127734829054ull}},
+ {{12333705107146094835ull, 11373755536572157566ull,
+ 14238650172026289899ull, 4228002659668536317ull}},
+ {{3096879673538921368ull, 4802754201143904527ull,
+ 11204999366730125139ull, 2642501662292835198ull}},
+ {{17706157647205815422ull, 1391756733002492754ull,
+ 4782877171557880616ull, 3303127077866043998ull}},
+ {{12909325022152493469ull, 1739695916253115943ull,
+ 15201968501302126578ull, 4128908847332554997ull}},
+ {{14985857166486390275ull, 5698995966085585368ull,
+ 11807073322527523063ull, 2580568029582846873ull}},
+ {{285577384398436227ull, 2512058939179593807ull, 923783597877240117ull,
+ 3225710036978558592ull}},
+ {{14192029785780208996ull, 7751759692401880162ull,
+ 1154729497346550146ull, 4032137546223198240ull}},
+ {{13481704634540018527ull, 9456535826178563005ull,
+ 721705935841593841ull, 2520085966389498900ull}},
+ {{3017072737892859446ull, 16432355801150591661ull,
+ 902132419801992301ull, 3150107457986873625ull}},
+ {{8383026940793462211ull, 6705386696156075864ull,
+ 5739351543179878281ull, 3937634322483592031ull}},
+ {{5239391837995913882ull, 15720081731166017175ull,
+ 10504623742128505781ull, 2461021451552245019ull}},
+ {{1937553779067504449ull, 5815044108675357757ull,
+ 8519093659233244323ull, 3076276814440306274ull}},
+ {{7033628242261768465ull, 2657119117416809292ull,
+ 1425495037186779596ull, 3845346018050382843ull}},
+ {{13619389688268381099ull, 10884071485240281615ull,
+ 17031835462737594911ull, 2403341261281489276ull}},
+ {{12412551091908088469ull, 8993403338122964115ull,
+ 2843050254712442023ull, 3004176576601861596ull}},
+ {{10904002846457722682ull, 6630068154226317240ull,
+ 3553812818390552529ull, 3755220720752326995ull}},
+ {{6815001779036076677ull, 15673007642459918035ull,
+ 18362034075989952994ull, 2347012950470204371ull}},
+ {{3907066205367707942ull, 10367887516220121736ull,
+ 18340856576560053339ull, 2933766188087755464ull}},
+ {{4883832756709634927ull, 8348173376847764266ull,
+ 4479326646990515058ull, 3667207735109694331ull}},
+ {{15328162982741819467ull, 1211844684204929524ull,
+ 987472290310755919ull, 4584009668887117914ull}},
+ {{356729827358861359ull, 7674931955269162809ull, 5228856199871610353ull,
+ 2865006043054448696ull}},
+ {{5057598302625964603ull, 14205350962513841415ull,
+ 6536070249839512941ull, 3581257553818060870ull}},
+ {{1710311859855067849ull, 3921630647860138057ull,
+ 17393459849154166985ull, 4476571942272576087ull}},
+ {{12598159958477887166ull, 13980234200981056045ull,
+ 17788441433362436221ull, 2797857463920360054ull}},
+ {{1912641892815195245ull, 3640234695944156345ull,
+ 13012179754848269469ull, 3497321829900450068ull}},
+ {{7002488384446381960ull, 9161979388357583335ull,
+ 16265224693560336836ull, 4371652287375562585ull}},
+ {{11294084267920070581ull, 14949609154578265392ull,
+ 3248236405834128666ull, 2732282679609726616ull}},
+ {{14117605334900088227ull, 9463639406368055932ull,
+ 4060295507292660833ull, 3415353349512158270ull}},
+ {{17647006668625110283ull, 16441235276387457819ull,
+ 14298741420970601849ull, 4269191686890197837ull}},
+ {{8723536158676999975ull, 3358243020101079281ull,
+ 11242556397320320108ull, 2668244804306373648ull}},
+ {{15516106216773637873ull, 4197803775126349101ull,
+ 14053195496650400135ull, 3335306005382967060ull}},
+ {{5560074715684883629ull, 635568700480548473ull,
+ 17566494370813000169ull, 4169132506728708825ull}},
+ {{15004261743371522028ull, 11926445483868812555ull,
+ 4061529954117043249ull, 2605707816705443016ull}},
+ {{14143641160787014631ull, 1072998799553851982ull,
+ 5076912442646304062ull, 3257134770881803770ull}},
+ {{8456179414128992481ull, 10564620536297090786ull,
+ 15569512590162655885ull, 4071418463602254712ull}},
+ {{9896798152258008205ull, 8908730844399375693ull,
+ 9730945368851659928ull, 2544636539751409195ull}},
+ {{16982683708749898160ull, 11135913555499219616ull,
+ 7551995692637187006ull, 3180795674689261494ull}},
+ {{2781610562227821084ull, 4696519907519248713ull, 216622578941707950ull,
+ 3975994593361576868ull}},
+ {{13267721647460857937ull, 16770382997481694157ull,
+ 9358761148693343276ull, 2484996620850985542ull}},
+ {{2749594004043908710ull, 2516234673142566081ull,
+ 2475079399011903288ull, 3106245776063731928ull}},
+ {{8048678523482273791ull, 3145293341428207601ull,
+ 3093849248764879110ull, 3882807220079664910ull}},
+ {{16559639123244890880ull, 15800866393674793462ull,
+ 15768713835760213155ull, 2426754512549790568ull}},
+ {{11476176867201337791ull, 15139396973666103924ull,
+ 1264148220990714828ull, 3033443140687238211ull}},
+ {{14345221084001672239ull, 477502143373078289ull,
+ 15415243331520557248ull, 3791803925859047763ull}},
+ {{2048234149859963294ull, 298438839608173931ull, 7328684072986654328ull,
+ 2369877453661904852ull}},
+ {{16395350742607117829ull, 373048549510217413ull,
+ 9160855091233317910ull, 2962346817077381065ull}},
+ {{6659130372976733574ull, 9689682723742547575ull,
+ 16062754882469035291ull, 3702933521346726331ull}},
+ {{11079485510751540340ull, 3750208693125398282ull,
+ 7733378792329453105ull, 2314333450841703957ull}},
+ {{4625984851584649617ull, 9299446884834135757ull,
+ 14278409508839204285ull, 2892916813552129946ull}},
+ {{10394167082908199925ull, 16235994624470057600ull,
+ 8624639849194229548ull, 3616146016940162433ull}},
+ {{12992708853635249906ull, 1848249206878020384ull,
+ 15392485829920174840ull, 4520182521175203041ull}},
+ {{8120443033522031191ull, 1155155754298762740ull,
+ 2702774616059027419ull, 2825114075734501901ull}},
+ {{10150553791902538989ull, 15279002748155617137ull,
+ 7990154288501172177ull, 3531392594668127376ull}},
+ {{17299878258305561640ull, 5263695379912357709ull,
+ 9987692860626465222ull, 4414240743335159220ull}},
+ {{13118266920654669977ull, 17124867667727387280ull,
+ 15465680074746316571ull, 2758900464584474512ull}},
+ {{16397833650818337472ull, 16794398566231846196ull,
+ 885356019723344098ull, 3448625580730593141ull}},
+ {{2050547989813370223ull, 11769626170935031938ull,
+ 5718381043081568027ull, 4310781975913241426ull}},
+ {{5893278512060744294ull, 5050173347620701009ull,
+ 8185674170353367921ull, 2694238734945775891ull}},
+ {{11978284158503318271ull, 10924402702953264165ull,
+ 5620406694514321997ull, 3367798418682219864ull}},
+ {{1137797142846984127ull, 18267189397118968111ull,
+ 7025508368142902496ull, 4209748023352774830ull}},
+ {{7628652241920446935ull, 11416993373199355069ull,
+ 18226000785371477772ull, 2631092514595484268ull}},
+ {{14147501320827946573ull, 14271241716499193836ull,
+ 4335756908004795599ull, 3288865643244355336ull}},
+ {{17684376651034933216ull, 13227366127196604391ull,
+ 5419696135005994499ull, 4111082054055444170ull}},
+ {{17970264434537915116ull, 5961260820284183792ull,
+ 7998996102806134466ull, 2569426283784652606ull}},
+ {{4016086469462842279ull, 16674948062210005549ull,
+ 775373091652892274ull, 3211782854730815758ull}},
+ {{9631794105255940753ull, 11620313040907731128ull,
+ 10192588401420891151ull, 4014728568413519697ull}},
+ {{6019871315784962971ull, 14180224678208413811ull,
+ 17899582796956526729ull, 2509205355258449810ull}},
+ {{2913153126303815809ull, 3890222792478353552ull,
+ 13151106459340882604ull, 3136506694073062263ull}},
+ {{3641441407879769762ull, 4862778490597941940ull,
+ 11827197055748715351ull, 3920633367591327829ull}},
+ {{11499272916779631909ull, 9956765584264795568ull,
+ 9697841169056641046ull, 2450395854744579893ull}},
+ {{14374091145974539886ull, 3222584943476218652ull,
+ 16733987479748189212ull, 3062994818430724866ull}},
+ {{17967613932468174858ull, 4028231179345273315ull,
+ 11694112312830460707ull, 3828743523038406083ull}},
+ {{8923915698578915334ull, 211801477877101870ull, 5002977186305343990ull,
+ 2392964701899003802ull}},
+ {{1931522586368868360ull, 9488123884201153146ull,
+ 15477093519736455795ull, 2991205877373754752ull}},
+ {{11637775269815861258ull, 7248468836824053528ull,
+ 899622825961018128ull, 3739007346717193441ull}},
+ {{7273609543634913286ull, 4530293023015033455ull,
+ 12091479312294106090ull, 2336879591698245900ull}},
+ {{4480325911116253704ull, 14886238315623567627ull,
+ 15114349140367632612ull, 2921099489622807375ull}},
+ {{988721370467929225ull, 161053820819907918ull, 14281250407032152862ull,
+ 3651374362028509219ull}},
+ {{10459273749939687340ull, 9424689312879660705ull,
+ 13239876990362803173ull, 4564217952535636524ull}},
+ {{18066261139780774347ull, 8196273829763481892ull,
+ 17498295155831527791ull, 2852636220334772827ull}},
+ {{4136082351016416318ull, 5633656268776964462ull,
+ 17261182926362021835ull, 3565795275418466034ull}},
+ {{14393474975625296206ull, 2430384317543817673ull,
+ 12353106621097751486ull, 4457244094273082543ull}},
+ {{2078392832124728273ull, 15354048253747049758ull,
+ 14638220665827176534ull, 2785777558920676589ull}},
+ {{11821363077010686149ull, 9969188280329036389ull,
+ 4462717777001806956ull, 3482221948650845737ull}},
+ {{941645790981193974ull, 12461485350411295487ull,
+ 10190083239679646599ull, 4352777435813557171ull}},
+ {{7506057647004328090ull, 14705957371648141535ull,
+ 4062959015586085172ull, 2720485897383473232ull}},
+ {{4770886040328022208ull, 18382446714560176919ull,
+ 5078698769482606465ull, 3400607371729341540ull}},
+ {{1351921531982639856ull, 9143000337918057437ull,
+ 6348373461853258082ull, 4250759214661676925ull}},
+ {{3150793966702843862ull, 10326061229626173802ull,
+ 6273576422871980253ull, 2656724509163548078ull}},
+ {{13161864495233330636ull, 17519262555460105156ull,
+ 17065342565444751124ull, 3320905636454435097ull}},
+ {{16452330619041663294ull, 3452334120615579829ull,
+ 7496620151523775194ull, 4151132045568043872ull}},
+ {{12588549646114733511ull, 6769394843812125297ull,
+ 4685387594702359496ull, 2594457528480027420ull}},
+ {{1900629002361253177ull, 8461743554765156622ull,
+ 5856734493377949370ull, 3243071910600034275ull}},
+ {{11599158289806342279ull, 1353807406601669969ull,
+ 2709232098295048809ull, 4053839888250042844ull}},
+ {{331944903487882069ull, 12375344675194513491ull,
+ 10916642098289181313ull, 2533649930156276777ull}},
+ {{14249989184642016298ull, 1634122788710978151ull,
+ 18257488641288864546ull, 3167062412695345971ull}},
+ {{13200800462375132468ull, 11266025522743498497ull,
+ 18210174783183692778ull, 3958828015869182464ull}},
+ {{1332971261343375937ull, 11652951970142074465ull,
+ 11381359239489807986ull, 2474267509918239040ull}},
+ {{6277900095106607825ull, 5342817925822817273ull,
+ 14226699049362259983ull, 3092834387397798800ull}},
+ {{12459061137310647685ull, 2066836388851133687ull,
+ 17783373811702824979ull, 3866042984247248500ull}},
+ {{14704442238460236659ull, 17432673807527816218ull,
+ 1891236595459489803ull, 2416276865154530313ull}},
+ {{9157180761220520016ull, 17179156240982382369ull,
+ 6975731762751750158ull, 3020346081443162891ull}},
+ {{16058161969953037924ull, 12250573264373202153ull,
+ 4107978685012299794ull, 3775432601803953614ull}},
+ {{3118822203579566846ull, 12268294308660639250ull,
+ 16402544733414851083ull, 2359645376127471008ull}},
+ {{13121899791329234366ull, 10723681867398411158ull,
+ 2056436843059012238ull, 2949556720159338761ull}},
+ {{7179002702306767149ull, 4181230297393238140ull,
+ 7182232072251153202ull, 3686945900199173451ull}},
+ {{8973753377883458936ull, 14449909908596323483ull,
+ 4366104071886553598ull, 4608682375248966814ull}},
+ {{3302752851963467883ull, 4419507674445314273ull,
+ 16563873100211259711ull, 2880426484530604258ull}},
+ {{8740127083381722758ull, 912698574629254937ull,
+ 11481469338409298831ull, 3600533105663255323ull}},
+ {{15536844872654541352ull, 14975931273568732383ull,
+ 9740150654584235634ull, 4500666382079069154ull}},
+ {{16628057073050170201ull, 13971643064407845643ull,
+ 10699280177542535175ull, 2812916488799418221ull}},
+ {{16173385322885324847ull, 12852867812082419150ull,
+ 17985786240355556873ull, 3516145610999272776ull}},
+ {{10993359616751880251ull, 2231026709820860226ull,
+ 4035488726734894476ull, 4395182013749090971ull}},
+ {{11482535778897313061ull, 10617763730492813449ull,
+ 216337444995615095ull, 2746988758593181857ull}},
+ {{518111668339477614ull, 8660518644688628908ull, 4882107824671906773ull,
+ 3433735948241477321ull}},
+ {{647639585424347017ull, 15437334324288174039ull,
+ 10714320799267271370ull, 4292169935301846651ull}},
+ {{7322303768531298742ull, 14260019971107496678ull,
+ 4390607490328350654ull, 2682606209563654157ull}},
+ {{18376251747518899235ull, 8601652927029595039ull,
+ 10099945381337826222ull, 3353257761954567696ull}},
+ {{18358628665971236140ull, 1528694121932217991ull,
+ 12624931726672282778ull, 4191572202443209620ull}},
+ {{18391671943873104444ull, 5567119844635024148ull,
+ 17113954366024952544ull, 2619732626527006012ull}},
+ {{4542845856131828939ull, 6958899805793780186ull,
+ 2945698883821639064ull, 3274665783158757516ull}},
+ {{14901929357019561981ull, 8698624757242225232ull,
+ 3682123604777048830ull, 4093332228948446895ull}},
+ {{9313705848137226238ull, 824954454849002866ull, 9218856280626737375ull,
+ 2558332643092779309ull}},
+ {{2418760273316756990ull, 14866251123843417295ull,
+ 16135256369210809622ull, 3197915803865974136ull}},
+ {{16858508396928109949ull, 9359441867949495810ull,
+ 1722326387803960412ull, 3997394754832467671ull}},
+ {{15148253766507456622ull, 15073023204323210689ull,
+ 7993983020018557113ull, 2498371721770292294ull}},
+ {{5100259152852157066ull, 5006220950121849650ull, 769106738168420584ull,
+ 3122964652212865368ull}},
+ {{15598695977919972140ull, 6257776187652312062ull,
+ 961383422710525730ull, 3903705815266081710ull}},
+ {{5137498967772594684ull, 8522796135710082943ull,
+ 14435922694476242293ull, 2439816134541301068ull}},
+ {{1810187691288355451ull, 15265181188064991583ull,
+ 18044903368095302866ull, 3049770168176626335ull}},
+ {{16097792669392608025ull, 9858104448226463670ull,
+ 17944443191691740679ull, 3812212710220782919ull}},
+ {{5449434399942992112ull, 13078844307782621650ull,
+ 18132806022448419780ull, 2382632943887989324ull}},
+ {{16035165036783515948ull, 16348555384728277062ull,
+ 4219263454350973109ull, 2978291179859986656ull}},
+ {{10820584259124619127ull, 6600636175628182616ull,
+ 5274079317938716387ull, 3722863974824983320ull}},
+ {{6762865161952886954ull, 1819554600553920183ull,
+ 3296299573711697742ull, 2326789984265614575ull}},
+ {{3841895434013720789ull, 11497815287547176037ull,
+ 17955432522421785889ull, 2908487480332018218ull}},
+ {{9414055310944538890ull, 537211054151806334ull,
+ 13220918616172456554ull, 3635609350415022773ull}},
+ {{2544197101825897804ull, 9894885854544533726ull,
+ 2691090214933406980ull, 4544511688018778467ull}},
+ {{15425181243923349840ull, 15407675695945109386ull,
+ 17822832448829237026ull, 2840319805011736541ull}},
+ {{10058104518049411492ull, 10036222583076610925ull,
+ 8443482505754382571ull, 3550399756264670677ull}},
+ {{17184316665989152268ull, 7933592210418375752ull,
+ 15166039150620366118ull, 4437999695330838346ull}},
+ {{10740197916243220168ull, 346809113084096941ull,
+ 14090460487565116728ull, 2773749809581773966ull}},
+ {{18036933413731413114ull, 433511391355121176ull,
+ 8389703572601620102ull, 3467187261977217458ull}},
+ {{4099422693454714776ull, 9765261276048677279ull,
+ 1263757428897249319ull, 4333984077471521823ull}},
+ {{9479668211050278591ull, 13020817325171505155ull,
+ 7707377420701862680ull, 2708740048419701139ull}},
+ {{7237899245385460335ull, 16276021656464381444ull,
+ 5022535757449940446ull, 3385925060524626424ull}},
+ {{9047374056731825419ull, 11121655033725700997ull,
+ 6278169696812425558ull, 4232406325655783030ull}},
+ {{7960451794671084839ull, 2339348377651175219ull,
+ 17758914115789929686ull, 2645253953534864393ull}},
+ {{5338878724911468144ull, 12147557508918744832ull,
+ 8363584589455248395ull, 3306567441918580492ull}},
+ {{6673598406139335180ull, 10572760867721043136ull,
+ 10454480736819060494ull, 4133209302398225615ull}},
+ {{4170999003837084488ull, 1996289523898264056ull,
+ 13451579488152994665ull, 2583255813998891009ull}},
+ {{5213748754796355610ull, 7107047923300217974ull,
+ 2979416304909079619ull, 3229069767498613762ull}},
+ {{15740557980350220320ull, 4272123885697884563ull,
+ 12947642417991125332ull, 4036337209373267202ull}},
+ {{7532005728505193748ull, 11893449465415953660ull,
+ 12703962529671841236ull, 2522710755858292001ull}},
+ {{9415007160631492185ull, 14866811831769942075ull,
+ 2044895106807637833ull, 3153388444822865002ull}},
+ {{7157072932361977327ull, 4748456734430263882ull,
+ 11779490920364323100ull, 3941735556028581252ull}},
+ {{9084856601153623734ull, 12191157495873690734ull,
+ 16585553862082477745ull, 2463584722517863282ull}},
+ {{2132698714587253859ull, 1403888814559949706ull,
+ 11508570290748321374ull, 3079480903147329103ull}},
+ {{11889245430088843132ull, 10978233055054712940ull,
+ 9774026845008013813ull, 3849351128934161379ull}},
+ {{16654150430660302766ull, 9167238668622889539ull,
+ 3802923768916314681ull, 2405844455583850862ull}},
+ {{16206002019897990553ull, 16070734354205999828ull,
+ 13977026748000169159ull, 3007305569479813577ull}},
+ {{1810758451162936575ull, 15476731924330111882ull,
+ 3636225379718047737ull, 3759131961849766972ull}},
+ {{5743410050404223263ull, 2755428425065238070ull,
+ 11496012899178555644ull, 2349457476156104357ull}},
+ {{16402634599860054887ull, 3444285531331547587ull,
+ 534958068691030843ull, 2936821845195130447ull}},
+ {{15891607231397680705ull, 18140414969446598196ull,
+ 14503755641145952265ull, 3671027306493913058ull}},
+ {{1417764965537549265ull, 8840460656526084034ull,
+ 8906322514577664524ull, 4588784133117391323ull}},
+ {{5497789121888356195ull, 14748659947183578329ull,
+ 3260608562397346375ull, 2867990083198369577ull}},
+ {{11483922420787833147ull, 13824138915552085007ull,
+ 8687446721424070873ull, 3584987603997961971ull}},
+ {{9743217007557403530ull, 3445115589157942547ull,
+ 6247622383352700688ull, 4481234504997452464ull}},
+ {{3783667620509683255ull, 2153197243223714092ull,
+ 3904763989595437930ull, 2800771565623407790ull}},
+ {{4729584525637104068ull, 11914868590884418423ull,
+ 14104327023849073220ull, 3500964457029259737ull}},
+ {{1300294638618992181ull, 14893585738605523029ull,
+ 3795350724529177813ull, 4376205571286574672ull}},
+ {{3118527158350564065ull, 11614334095842145845ull,
+ 2372094202830736133ull, 2735128482054109170ull}},
+ {{8509844966365592985ull, 682859564520518594ull,
+ 12188489790393195975ull, 3418910602567636462ull}},
+ {{1413934171102215424ull, 14688632510932811955ull,
+ 6012240201136719160ull, 4273638253209545578ull}},
+ {{17024609921434742304ull, 9180395319333007471ull,
+ 8369336144137837379ull, 2671023908255965986ull}},
+ {{16669076383366039976ull, 6863808130738871435ull,
+ 1238298143317520916ull, 3338779885319957483ull}},
+ {{16224659460780162066ull, 8579760163423589294ull,
+ 15382930734429064857ull, 4173474856649946853ull}},
+ {{5528726144560213387ull, 16891565148208213069ull,
+ 11920174718231859487ull, 2608421785406216783ull}},
+ {{11522593699127654638ull, 16502770416832878432ull,
+ 10288532379362436455ull, 3260527231757770979ull}},
+ {{14403242123909568297ull, 16016777002613710136ull,
+ 8248979455775657665ull, 4075659039697213724ull}},
+ {{9002026327443480186ull, 3092956598992486979ull,
+ 14378984196714561849ull, 2547286899810758577ull}},
+ {{6640846890876962328ull, 8477881767167996628ull,
+ 4138672190611038599ull, 3184108624763448222ull}},
+ {{8301058613596202910ull, 5985666190532607881ull,
+ 14396712275118574057ull, 3980135780954310277ull}},
+ {{16717376679566096579ull, 15270256415151349685ull,
+ 11303788181162802737ull, 2487584863096443923ull}},
+ {{7061662794175457012ull, 5252762463657023395ull,
+ 9518049208026115518ull, 3109481078870554904ull}},
+ {{4215392474291933361ull, 15789325116426055052ull,
+ 11897561510032644397ull, 3886851348588193630ull}},
+ {{11857992333287234159ull, 12174171206979978359ull,
+ 2824289925343014844ull, 2429282092867621019ull}},
+ {{10210804398181654794ull, 15217714008724972949ull,
+ 17365420461960932267ull, 3036602616084526273ull}},
+ {{17375191516154456396ull, 14410456492478828282ull,
+ 7871717522169001622ull, 3795753270105657842ull}},
+ {{15471180716023923152ull, 4394849289371879772ull,
+ 9531509469783013918ull, 2372345793816036151ull}},
+ {{892231821320352324ull, 14716933648569625524ull,
+ 7302700818801379493ull, 2965432242270045189ull}},
+ {{1115289776650440405ull, 4561109005429868193ull,
+ 13740062041929112271ull, 3706790302837556486ull}},
+ {{12226271156474995013ull, 9768222156034749476ull,
+ 3975852757778307265ull, 2316743939273472804ull}},
+ {{15282838945593743766ull, 16821963713470824749ull,
+ 4969815947222884081ull, 2895929924091841005ull}},
+ {{5268490626710015996ull, 7192396586556367225ull,
+ 10823955952455993006ull, 3619912405114801256ull}},
+ {{11197299301814907899ull, 18213867770050234839ull,
+ 13529944940569991257ull, 4524890506393501570ull}},
+ {{13915841091275399293ull, 4466138328640314918ull,
+ 13067901606283632440ull, 2828056566495938481ull}},
+ {{8171429327239473308ull, 5582672910800393648ull,
+ 2499818952572376838ull, 3535070708119923102ull}},
+ {{10214286659049341635ull, 16201713175355267868ull,
+ 12348145727570246855ull, 4418838385149903877ull}},
+ {{15607301198760614330ull, 17043599762238124273ull,
+ 10023434088945098236ull, 2761773990718689923ull}},
+ {{5674068443168604200ull, 2857755629088103726ull,
+ 7917606592753984892ull, 3452217488398362404ull}},
+ {{16315957590815531058ull, 3572194536360129657ull,
+ 9897008240942481115ull, 4315271860497953005ull}},
+ {{3279944466618625056ull, 18373522649720938700ull,
+ 8491473159802744648ull, 2697044912811220628ull}},
+ {{4099930583273281319ull, 4520159238441621759ull,
+ 10614341449753430811ull, 3371306141014025785ull}},
+ {{513227210664213745ull, 1038513029624639295ull,
+ 17879612830619176418ull, 4214132676267532231ull}},
+ {{7238296034306215447ull, 5260756661942787463ull,
+ 18092287046778067117ull, 2633832922667207644ull}},
+ {{4436184024455381404ull, 11187631845855872233ull,
+ 4168614734763032280ull, 3292291153334009556ull}},
+ {{10156916048996614659ull, 13984539807319840291ull,
+ 5210768418453790350ull, 4115363941667511945ull}},
+ {{4042229521409190210ull, 4128651361147512278ull,
+ 14785945307602088729ull, 2572102463542194965ull}},
+ {{14276158938616263571ull, 9772500219861778251ull,
+ 4647373579220447199ull, 3215128079427743707ull}},
+ {{13233512654842941559ull, 7603939256399834910ull,
+ 1197530955598171095ull, 4018910099284679634ull}},
+ {{3659259390849450571ull, 11669991062890978675ull,
+ 5360142865676244838ull, 2511818812052924771ull}},
+ {{18409132293843976925ull, 5364116791758947535ull,
+ 2088492563667918144ull, 3139773515066155964ull}},
+ {{18399729348877583252ull, 6705145989698684419ull,
+ 2610615704584897680ull, 3924716893832694955ull}},
+ {{9193987833834795581ull, 4190716243561677762ull,
+ 17772535879861418714ull, 2452948058645434346ull}},
+ {{2269112755438718668ull, 14461767341306873011ull,
+ 12992297812971997584ull, 3066185073306792933ull}},
+ {{16671448999580562047ull, 18077209176633591263ull,
+ 2405314210932833268ull, 3832731341633491167ull}},
+ {{17337184652378933136ull, 2074883698541218731ull,
+ 8420850409474102649ull, 2395457088520931979ull}},
+ {{17059794797046278515ull, 7205290641603911318ull,
+ 5914376993415240407ull, 2994321360651164974ull}},
+ {{12101371459453072336ull, 4394927283577501244ull,
+ 16616343278623826317ull, 3742901700813956217ull}},
+ {{16786729199012946018ull, 5052672561449632229ull,
+ 3467685521498809592ull, 2339313563008722636ull}},
+ {{7148353443484018811ull, 6315840701812040287ull,
+ 4334606901873511990ull, 2924141953760903295ull}},
+ {{4323755785927635609ull, 17118172914119826167ull,
+ 806572608914502083ull, 3655177442201129119ull}},
+ {{793008713982156607ull, 16786030124222394805ull,
+ 14843273816425291316ull, 4568971802751411398ull}},
+ {{2801473455452541832ull, 1267896790784220945ull,
+ 4665360116838419169ull, 2855607376719632124ull}},
+ {{8113527837743065194ull, 6196557006907664085ull,
+ 5831700146048023961ull, 3569509220899540155ull}},
+ {{14753595815606219396ull, 12357382277061968010ull,
+ 2677939164132642047ull, 4461886526124425194ull}},
+ {{13832683403181275027ull, 14640892950804811862ull,
+ 6285397996010289183ull, 2788679078827765746ull}},
+ {{8067482217121817975ull, 13689430170078626924ull,
+ 17080119531867637287ull, 3485848848534707182ull}},
+ {{10084352771402272469ull, 12500101694170895751ull,
+ 12126777377979770801ull, 4357311060668383978ull}},
+ {{13220249509767502149ull, 895034531215727988ull,
+ 12190921879664744655ull, 2723319412917739986ull}},
+ {{16525311887209377686ull, 14953851219301823697ull,
+ 6015280312726155010ull, 3404149266147174983ull}},
+ {{6821581803729558396ull, 9468941987272503814ull,
+ 2907414372480305859ull, 4255186582683968729ull}},
+ {{18098546682613137710ull, 3612245732831620931ull,
+ 13346349028868660922ull, 2659491614177480455ull}},
+ {{18011497334839034233ull, 13738679202894301972ull,
+ 12071250267658438248ull, 3324364517721850569ull}},
+ {{4067627594839241175ull, 17173349003617877466ull,
+ 1254004779290884098ull, 4155455647152313212ull}},
+ {{7153953265201913639ull, 15345029145688561320ull,
+ 10007125023911578369ull, 2597159779470195757ull}},
+ {{8942441581502392048ull, 5346228376828537938ull,
+ 17120592298316860866ull, 3246449724337744696ull}},
+ {{1954679940023214252ull, 15906157507890448231ull,
+ 2953996299186524466ull, 4058062155422180871ull}},
+ {{8139203990155590764ull, 14553034460858918048ull,
+ 8763776714632659647ull, 2536288847138863044ull}},
+ {{10174004987694488454ull, 13579607057646259656ull,
+ 10954720893290824559ull, 3170361058923578805ull}},
+ {{12717506234618110568ull, 12362822803630436666ull,
+ 18305087135040918603ull, 3962951323654473506ull}},
+ {{12560127415063707009ull, 5420921243055328964ull,
+ 16052365477827962031ull, 2476844577284045941ull}},
+ {{15700159268829633761ull, 2164465535391773301ull,
+ 6230398792002788827ull, 3096055721605057427ull}},
+ {{5790141030754878489ull, 16540639974521880339ull,
+ 3176312471576098129ull, 3870069652006321784ull}},
+ {{1312995135008105104ull, 3420370956435093356ull,
+ 1985195294735061331ull, 2418793532503951115ull}},
+ {{1641243918760131380ull, 18110521750826030407ull,
+ 16316552173700990375ull, 3023491915629938893ull}},
+ {{15886612953732327937ull, 18026466170105150104ull,
+ 6560632161844074257ull, 3779364894537423617ull}},
+ {{9929133096082704961ull, 4349012328674636959ull,
+ 15629610147221016171ull, 2362103059085889760ull}},
+ {{7799730351675993297ull, 824579392415908295ull, 1090268610316718598ull,
+ 2952628823857362201ull}},
+ {{5137976921167603717ull, 10254096277374661177ull,
+ 5974521781323286151ull, 3690786029821702751ull}},
+ {{14740450621798222083ull, 13326339201000245091ull,
+ 10651605140968135700ull, 2306741268638564219ull}},
+ {{13813877258820389700ull, 16657924001250306364ull,
+ 8702820407782781721ull, 2883426585798205274ull}},
+ {{17267346573525487125ull, 6987346946280719243ull,
+ 1655153472873701344ull, 3604283232247756593ull}},
+ {{16972497198479471002ull, 8734183682850899054ull,
+ 6680627859519514584ull, 4505354040309695741ull}},
+ {{5996124730622281472ull, 5458864801781811909ull,
+ 6481235421413390567ull, 2815846275193559838ull}},
+ {{12106841931705239744ull, 2211894983799876982ull,
+ 17324916313621514017ull, 3519807843991949797ull}},
+ {{5910180377776773872ull, 7376554748177234132ull,
+ 7821087336744728809ull, 4399759804989937247ull}},
+ {{12917234772965259478ull, 16139561763679241092ull,
+ 11805708613106537361ull, 2749849878118710779ull}},
+ {{16146543466206574348ull, 6339394149316887653ull,
+ 10145449747955783798ull, 3437312347648388474ull}},
+ {{6348121277476054223ull, 17147614723500885375ull,
+ 3458440148089953939ull, 4296640434560485593ull}},
+ {{10885104826063615745ull, 8411416192974359407ull,
+ 13690740138624690972ull, 2685400271600303495ull}},
+ {{8994695014152131778ull, 10514270241217949259ull,
+ 12501739154853475811ull, 3356750339500379369ull}},
+ {{6631682749262776818ull, 8531151783095048670ull,
+ 1792115888284681052ull, 4195937924375474212ull}},
+ {{17979859773571399223ull, 14555341901289181226ull,
+ 10343444467032701465ull, 2622461202734671382ull}},
+ {{13251452680109473221ull, 4359119321329312821ull,
+ 3705933546936101024ull, 3278076503418339228ull}},
+ {{2729257794854677814ull, 5448899151661641027ull,
+ 4632416933670126280ull, 4097595629272924035ull}},
+ {{17846687186280031298ull, 3405561969788525641ull,
+ 589417574330134973ull, 2560997268295577522ull}},
+ {{8473300927567875410ull, 8868638480663044956ull,
+ 9960144004767444524ull, 3201246585369471902ull}},
+ {{10591626159459844263ull, 11085798100828806195ull,
+ 3226807969104529847ull, 4001558231711839878ull}},
+ {{4313923340448708712ull, 13846152840659085728ull,
+ 15851813035972494866ull, 2500973894819899923ull}},
+ {{5392404175560885890ull, 8084319013969081352ull,
+ 15203080276538230679ull, 3126217368524874904ull}},
+ {{6740505219451107363ull, 5493712749033963786ull, 557106271963236733ull,
+ 3907771710656093631ull}},
+ {{8824501780584330006ull, 5739413477359921318ull,
+ 7265720447618104814ull, 2442357319160058519ull}},
+ {{1807255188875636699ull, 16397638883554677456ull,
+ 4470464541095243113ull, 3052946648950073149ull}},
+ {{2259068986094545874ull, 6661990549161183108ull,
+ 10199766694796441796ull, 3816183311187591436ull}},
+ {{10635290153163866980ull, 13387116130080515250ull,
+ 15598226221102551930ull, 2385114569492244647ull}},
+ {{4070740654600057916ull, 7510523125745868255ull,
+ 14886096757950802009ull, 2981393211865305809ull}},
+ {{476739799822684491ull, 13999839925609723223ull,
+ 4772562892156338799ull, 3726741514831632262ull}},
+ {{7215491402530259663ull, 15667428981147158870ull,
+ 16817909862879875461ull, 2329213446769770163ull}},
+ {{18242736290017600387ull, 5749228171151784875ull,
+ 16410701310172456423ull, 2911516808462212704ull}},
+ {{18191734344094612580ull, 2574849195512343190ull,
+ 2066632564006018913ull, 3639396010577765881ull}},
+ {{13516295893263489916ull, 7830247512817816892ull,
+ 7194976723434911545ull, 4549245013222207351ull}},
+ {{17671056970144457006ull, 16423119741579605317ull,
+ 11414389479787901571ull, 2843278133263879594ull}},
+ {{8253763157398407545ull, 15917213658547118743ull,
+ 5044614812880101156ull, 3554097666579849493ull}},
+ {{5705517928320621527ull, 1449772999474346813ull,
+ 10917454534527514350ull, 4442622083224811866ull}},
+ {{5871791714414082407ull, 14741166179953630470ull,
+ 11435095102507084372ull, 2776638802015507416ull}},
+ {{16563111679872378816ull, 18426457724942038087ull,
+ 14293868878133855465ull, 3470798502519384270ull}},
+ {{16092203581413085616ull, 9198014100895383897ull,
+ 8643964060812543524ull, 4338498128149230338ull}},
+ {{3140098210742096654ull, 14972130849914390744ull,
+ 10014163556435227606ull, 2711561330093268961ull}},
+ {{3925122763427620818ull, 9491791525538212622ull,
+ 17129390463971422412ull, 3389451662616586201ull}},
+ {{14129775491139301830ull, 11864739406922765777ull,
+ 7576680024682114303ull, 4236814578270732752ull}},
+ {{1913580654320981788ull, 14332991156967810467ull,
+ 4735425015426321439ull, 2648009111419207970ull}},
+ {{16227033873183390947ull, 13304552927782375179ull,
+ 15142653306137677607ull, 3310011389274009962ull}},
+ {{15672106323051850780ull, 12019005141300581070ull,
+ 9704944595817321201ull, 4137514236592512453ull}},
+ {{5183380433480018833ull, 594349185671781313ull, 8371433381599519703ull,
+ 2585946397870320283ull}},
+ {{11090911560277411446ull, 14577994537371890353ull,
+ 5852605708572011724ull, 3232432997337900354ull}},
+ {{28581395064600595ull, 18222493171714862942ull,
+ 16539129172569790463ull, 4040541246672375442ull}},
+ {{13852921427197539084ull, 18306587259962871194ull,
+ 14948641751283506943ull, 2525338279170234651ull}},
+ {{8092779747142148047ull, 18271548056526201089ull,
+ 14074116170676995775ull, 3156672848962793314ull}},
+ {{14727660702355072963ull, 18227749052230363457ull,
+ 8369273176491468911ull, 3945841061203491643ull}},
+ {{2287258911330838746ull, 18309872185285059017ull,
+ 2924952726093474117ull, 2466150663252182277ull}},
+ {{7470759657590936336ull, 9052282176324160059ull,
+ 8267876926044230551ull, 3082688329065227846ull}},
+ {{4726763553561282516ull, 6703666701977812170ull,
+ 1111474120700512381ull, 3853360411331534808ull}},
+ {{7565913239403189477ull, 6495634697949826558ull, 694671325437820238ull,
+ 2408350257082209255ull}},
+ {{234019512399211038ull, 17342915409292059006ull,
+ 14703397212079439009ull, 3010437821352761568ull}},
+ {{9515896427353789605ull, 7843586206332910045ull,
+ 18379246515099298762ull, 3763047276690951960ull}},
+ {{8253278276309812455ull, 9513927397385456682ull,
+ 11487029071937061726ull, 2351904547931844975ull}},
+ {{1093225808532489761ull, 2669037209877045045ull,
+ 9747100321493939254ull, 2939880684914806219ull}},
+ {{5978218279093000105ull, 12559668549201082114ull,
+ 7572189383440036163ull, 3674850856143507774ull}},
+ {{16696144885721025939ull, 11087899668073964738ull,
+ 241864692445269396ull, 4593563570179384718ull}},
+ {{15046776572003029116ull, 16153309329401003769ull,
+ 13986223488060457084ull, 2870977231362115448ull}},
+ {{4973412659721622683ull, 1744892588041703096ull,
+ 17482779360075571356ull, 3588721539202644310ull}},
+ {{6216765824652028354ull, 2181115735052128870ull,
+ 12630102163239688387ull, 4485901924003305388ull}},
+ {{17720536695689681433ull, 17504098398903438207ull,
+ 17117185888879581049ull, 2803688702502065867ull}},
+ {{17538984851184713888ull, 8045064943347134047ull,
+ 16784796342672088408ull, 3504610878127582334ull}},
+ {{17312045045553504455ull, 10056331179183917559ull,
+ 11757623391485334702ull, 4380763597659477918ull}},
+ {{17737557181112022141ull, 1673520968562560570ull,
+ 2736828601250946285ull, 2737977248537173699ull}},
+ {{12948574439535251868ull, 6703587229130588617ull,
+ 17256093806845846568ull, 3422471560671467123ull}},
+ {{2350659994136901123ull, 8379484036413235772ull,
+ 16958431240129920306ull, 4278089450839333904ull}},
+ {{10692534533190339010ull, 9848863541185660261ull,
+ 10599019525081200191ull, 2673805906774583690ull}},
+ {{17977354184915311666ull, 7699393408054687422ull,
+ 4025402369496724431ull, 3342257383468229613ull}},
+ {{13248320694289363775ull, 5012555741640971374ull,
+ 9643438980298293443ull, 4177821729335287016ull}},
+ {{3668514415503464455ull, 827004329311913157ull, 6027149362686433402ull,
+ 2611138580834554385ull}},
+ {{9197329037806718473ull, 10257127448494667254ull,
+ 12145622721785429656ull, 3263923226043192981ull}},
+ {{2273289260403622283ull, 12821409310618334068ull,
+ 1346970346949623358ull, 4079904032553991227ull}},
+ {{10644177824607039735ull, 3401694800709070888ull,
+ 16982757531339372263ull, 2549940020346244516ull}},
+ {{13305222280758799669ull, 18087176556168502322ull,
+ 2781702840464663712ull, 3187425025432805646ull}},
+ {{7408155814093723778ull, 4162226621501076287ull,
+ 12700500587435605449ull, 3984281281791007057ull}},
+ {{11547626411449659217ull, 14130606684506642439ull,
+ 1020283839506171549ull, 2490175801119379411ull}},
+ {{9822846995884686118ull, 3828200300351139337ull,
+ 15110412854664878149ull, 3112719751399224263ull}},
+ {{16890244763283245551ull, 9396936393866312075ull,
+ 14276330049903709782ull, 3890899689249030329ull}},
+ {{8250559967838334517ull, 1261399227739057143ull,
+ 2005177253548736758ull, 2431812305780643956ull}},
+ {{5701513941370530243ull, 10800121071528597237ull,
+ 2506471566935920947ull, 3039765382225804945ull}},
+ {{11738578445140550707ull, 8888465320983358642ull,
+ 7744775477097289088ull, 3799706727782256181ull}},
+ {{11948297546640232096ull, 5555290825614599151ull,
+ 7146327682399499632ull, 2374816704863910113ull}},
+ {{10323685914872902216ull, 6944113532018248939ull,
+ 13544595621426762444ull, 2968520881079887641ull}},
+ {{8292921375163739866ull, 8680141915022811174ull,
+ 3095686471501289343ull, 3710651101349859552ull}},
+ {{571389841049949513ull, 12342617724530338840ull,
+ 1934804044688305839ull, 2319156938343662220ull}},
+ {{714237301312436891ull, 10816586137235535646ull,
+ 2418505055860382299ull, 2898946172929577775ull}},
+ {{10116168663495321921ull, 8909046653117031653ull,
+ 16858189375107641586ull, 3623682716161972218ull}},
+ {{17256896847796540305ull, 1912936279541513758ull,
+ 11849364682029776175ull, 4529603395202465273ull}},
+ {{6173874511445449787ull, 8113114202354527955ull, 488323898627528253ull,
+ 2831002122001540796ull}},
+ {{3105657120879424329ull, 14753078771370547848ull,
+ 610404873284410316ull, 3538752652501925995ull}},
+ {{3882071401099280412ull, 18441348464213184810ull,
+ 14598064146887676607ull, 4423440815627407493ull}},
+ {{7037980644114438162ull, 18443371817774322362ull,
+ 11429633101018491831ull, 2764650509767129683ull}},
+ {{18020847841997823510ull, 18442528753790515048ull,
+ 9675355357845726885ull, 3455813137208912104ull}},
+ {{4079315728787727771ull, 9218102886955980099ull,
+ 12094194197307158607ull, 4319766421511140130ull}},
+ {{243729321278635905ull, 12678843331988569418ull,
+ 12170557391744362033ull, 2699854013444462581ull}},
+ {{9528033688453070689ull, 2013496109703548060ull,
+ 1378138684398288830ull, 3374817516805578227ull}},
+ {{11910042110566338361ull, 11740242173984210883ull,
+ 15557731410780024749ull, 4218521896006972783ull}},
+ {{5137933309890267524ull, 9643494367953825754ull,
+ 16641111159378597324ull, 2636576185004357989ull}},
+ {{15645788674217610213ull, 12054367959942282192ull,
+ 6966330893941082943ull, 3295720231255447487ull}},
+ {{1110491769062461150ull, 10456273931500464837ull,
+ 4096227598998965775ull, 4119650289069309359ull}},
+ {{2999900364877732171ull, 13452700234828872379ull,
+ 9477671277015435465ull, 2574781430668318349ull}},
+ {{17584933511379328926ull, 2980817238253926761ull,
+ 16458775114696682236ull, 3218476788335397936ull}},
+ {{8146108833941997445ull, 3726021547817408452ull,
+ 2126724819661301179ull, 4023095985419247421ull}},
+ {{14314690058068524211ull, 22920458172186330ull, 3635046021502007189ull,
+ 2514434990887029638ull}},
+ {{8669990535730879456ull, 4640336591142620817ull,
+ 13767179563732284794ull, 3143043738608787047ull}},
+ {{15449174188090987224ull, 15023792775783051829ull,
+ 12597288436237968088ull, 3928804673260983809ull}},
+ {{11961576876770560967ull, 9389870484864407393ull,
+ 955776245007648199ull, 2455502920788114881ull}},
+ {{1116913040681037497ull, 7125652087653121338ull,
+ 5806406324686948153ull, 3069378650985143601ull}},
+ {{10619513337706072679ull, 13518751127993789576ull,
+ 11869693924286073095ull, 3836723313731429501ull}},
+ {{6637195836066295424ull, 15366748482637200341ull,
+ 9724401711892489636ull, 2397952071082143438ull}},
+ {{12908180813510257184ull, 761691529586948810ull,
+ 2932130103010836238ull, 2997440088852679298ull}},
+ {{6911853980033045672ull, 10175486448838461821ull,
+ 12888534665618321105ull, 3746800111065849122ull}},
+ {{6625751746734347497ull, 17888894076592508398ull,
+ 12667020184438838594ull, 2341750069416155701ull}},
+ {{17505561720272710180ull, 13137745558885859689ull,
+ 1998717175266384531ull, 2927187586770194627ull}},
+ {{8046894095058724012ull, 11810495930179936708ull,
+ 16333454524365144376ull, 3658984483462743283ull}},
+ {{10058617618823405015ull, 14763119912724920885ull,
+ 15805132137029042566ull, 4573730604328429104ull}},
+ {{8592479020978322087ull, 4615263927025687649ull,
+ 9878207585643151604ull, 2858581627705268190ull}},
+ {{15352284794650290512ull, 5769079908782109561ull,
+ 3124387445199163697ull, 3573227034631585238ull}},
+ {{5355297938030699428ull, 11823035904405024856ull,
+ 13128856343353730429ull, 4466533793289481547ull}},
+ {{3347061211269187143ull, 9695240449466834487ull,
+ 5899692205382387566ull, 2791583620805925967ull}},
+ {{18018884569368647641ull, 2895678524978767300ull,
+ 2762929238300596554ull, 3489479526007407459ull}},
+ {{4076861638001257935ull, 12842970193078234934ull,
+ 17288719603157909404ull, 4361849407509259323ull}},
+ {{16383096579032949921ull, 17250228407528672641ull,
+ 8499606742759999425ull, 2726155879693287077ull}},
+ {{6643812668509023689ull, 7727727454128677090ull,
+ 15236194446877387186ull, 3407694849616608846ull}},
+ {{17528137872491055420ull, 436287280806070554ull,
+ 9821871021741958175ull, 4259618562020761058ull}},
+ {{15566772188734297542ull, 7190208578144875952ull,
+ 10750355407016111763ull, 2662261601262975661ull}},
+ {{1011721162208320311ull, 4376074704253707037ull,
+ 18049630277197527608ull, 3327827001578719576ull}},
+ {{5876337471187788292ull, 5470093380317133796ull,
+ 4115293772787357894ull, 4159783751973399471ull}},
+ {{12896082956347143491ull, 17253866417980372334ull,
+ 9489587635633180539ull, 2599864844983374669ull}},
+ {{6896731658579153556ull, 16955647004048077514ull,
+ 16473670562968863578ull, 3249831056229218336ull}},
+ {{17844286610078717752ull, 11971186718205321084ull,
+ 2145344130001527857ull, 4062288820286522921ull}},
+ {{1929307094444422787ull, 564462671237243822ull,
+ 12870055127319424671ull, 2538930512679076825ull}},
+ {{11635005904910304292ull, 14540636394328718489ull,
+ 2252510853867117126ull, 3173663140848846032ull}},
+ {{708699325855716653ull, 8952423456056122304ull, 2815638567333896408ull,
+ 3967078926061057540ull}},
+ {{442937078659822908ull, 5595264660035076440ull,
+ 10983146141438461063ull, 2479424328788160962ull}},
+ {{553671348324778635ull, 2382394806616457646ull, 4505560639943300521ull,
+ 3099280410985201203ull}},
+ {{9915461222260749102ull, 7589679526697959961ull,
+ 1020264781501737747ull, 3874100513731501504ull}},
+ {{17726378309981437949ull, 2437706694972531023ull,
+ 637665488438586092ull, 2421312821082188440ull}},
+ {{17546286869049409532ull, 3047133368715663779ull,
+ 797081860548232615ull, 3026641026352735550ull}},
+ {{17321172567884374011ull, 17643974766176743436ull,
+ 10219724362540066576ull, 3783301282940919437ull}},
+ {{1602360818072957949ull, 11027484228860464648ull,
+ 8693170735801235562ull, 2364563301838074648ull}},
+ {{2002951022591197436ull, 4560983249220805002ull,
+ 10866463419751544453ull, 2955704127297593310ull}},
+ {{11727060815093772603ull, 10312915079953394156ull,
+ 4359707237834654758ull, 3694630159121991638ull}},
+ {{16552785046288383685ull, 1833885906543483443ull,
+ 16559875078928822936ull, 2309143849451244773ull}},
+ {{16079295289433091702ull, 2292357383179354304ull,
+ 6864785793378864958ull, 2886429811814055967ull}},
+ {{1652375038081813012ull, 12088818765828968689ull,
+ 3969296223296193293ull, 3608037264767569959ull}},
+ {{6677154816029654168ull, 1275965402004047149ull, 349934260692853713ull,
+ 4510046580959462449ull}},
+ {{6479064769232227807ull, 12326693422320999228ull,
+ 11747923959001503330ull, 2818779113099664030ull}},
+ {{8098830961540284759ull, 6184994741046473227ull,
+ 5461532911897103355ull, 3523473891374580038ull}},
+ {{5511852683497968045ull, 3119557407880703630ull,
+ 16050288176726155002ull, 4404342364218225047ull}},
+ {{17279965982468393740ull, 6561409398352827672ull,
+ 16948959138094928732ull, 2752713977636390654ull}},
+ {{3153213404375940559ull, 8201761747941034591ull,
+ 11962826885763885107ull, 3440892472045488318ull}},
+ {{17776574810752089411ull, 5640516166498905334ull,
+ 5730161570350080576ull, 4301115590056860398ull}},
+ {{6498673238292667978ull, 3525322604061815834ull,
+ 17416409036750964072ull, 2688197243785537748ull}},
+ {{17346713584720610780ull, 4406653255077269792ull,
+ 3323767222229153474ull, 3360246554731922186ull}},
+ {{3236647907191211859ull, 14731688605701363049ull,
+ 13378081064641217650ull, 4200308193414902732ull}},
+ {{13552119988062977172ull, 13818991396990739809ull,
+ 17584672702255536839ull, 2625192620884314207ull}},
+ {{3105091929796557753ull, 12662053227811036858ull,
+ 17369154859392033145ull, 3281490776105392759ull}},
+ {{13104736949100472999ull, 1992508479481632360ull,
+ 17099757555812653528ull, 4101863470131740949ull}},
+ {{8190460593187795625ull, 1245317799676020225ull,
+ 12993191481596602407ull, 2563664668832338093ull}},
+ {{14849761759912132435ull, 15391705304877188993ull,
+ 2406431296713589296ull, 3204580836040422617ull}},
+ {{4727144144608001831ull, 792887557386934626ull, 7619725139319374525ull,
+ 4005726045050528271ull}},
+ {{7566151108807389049ull, 2801397732580528093ull,
+ 11679857239715690934ull, 2503578778156580169ull}},
+ {{14069374904436624215ull, 12725119202580435924ull,
+ 764763494362449955ull, 3129473472695725212ull}},
+ {{17586718630545780268ull, 11294712984798157001ull,
+ 955954367953062444ull, 3911841840869656515ull}},
+ {{4074170116450030812ull, 16282567652353623934ull,
+ 16738372544466521691ull, 2444901150543535321ull}},
+ {{14316084682417314323ull, 15741523547014642013ull,
+ 7087907625300988402ull, 3056126438179419152ull}},
+ {{4060047797739479191ull, 10453532396913526709ull,
+ 8859884531626235503ull, 3820158047724273940ull}},
+ {{4843372882800868447ull, 13450986775712036049ull,
+ 14760799869121172997ull, 2387598779827671212ull}},
+ {{10665902121928473462ull, 2978675414357881349ull, 4255762691914631ull,
+ 2984498474784589016ull}},
+ {{17944063670837979732ull, 17558402323229515398ull, 5319703364893288ull,
+ 3730623093480736270ull}},
+ {{6603353775846349429ull, 10974001452018447124ull,
+ 13838382869885222017ull, 2331639433425460168ull}},
+ {{8254192219807936786ull, 18329187833450446809ull,
+ 17297978587356527521ull, 2914549291781825210ull}},
+ {{14929426293187308886ull, 9076426736530894799ull,
+ 12399101197340883594ull, 3643186614727281513ull}},
+ {{14050096848056748203ull, 2122161383808842691ull,
+ 1663818441393940781ull, 4553983268409101892ull}},
+ {{6475467520821773675ull, 3632193874094220634ull,
+ 10263258562725988796ull, 2846239542755688682ull}},
+ {{17317706437881992902ull, 4540242342617775792ull,
+ 3605701166552710187ull, 3557799428444610853ull}},
+ {{3200388973642939511ull, 1063616909844831837ull,
+ 9118812476618275638ull, 4447249285555763566ull}},
+ {{4306086117740531147ull, 14499818623935183610ull,
+ 1087571779459034369ull, 2779530803472352229ull}},
+ {{14605979684030439741ull, 4289715224636815800ull,
+ 5971150742751180866ull, 3474413504340440286ull}},
+ {{18257474605038049677ull, 14585516067650795558ull,
+ 16687310465293751890ull, 4343016880425550357ull}},
+ {{6799235609721393144ull, 13727633560709135128ull,
+ 12735412050022288883ull, 2714385550265968973ull}},
+ {{8499044512151741430ull, 12547855932459031006ull,
+ 2084207007245697392ull, 3392981937832461217ull}},
+ {{1400433603334900979ull, 15684819915573788758ull,
+ 7216944777484509644ull, 4241227422290576521ull}},
+ {{14710329057366476824ull, 579640410378842165ull,
+ 16039805531996288288ull, 2650767138931610325ull}},
+ {{4552853266425932318ull, 724550512973552707ull, 6214698859713196648ull,
+ 3313458923664512907ull}},
+ {{1079380564605027494ull, 905688141216940884ull, 3156687556214107906ull,
+ 4141823654580641134ull}},
+ {{9897984889732917992ull, 5177741106687975956ull,
+ 15807987777915981153ull, 2588639784112900708ull}},
+ {{12372481112166147489ull, 11083862401787357849ull,
+ 1313240648685424825ull, 3235799730141125886ull}},
+ {{1630543334925520650ull, 19769946952033600ull, 10864922847711556840ull,
+ 4044749662676407357ull}},
+ {{1019089584328450406ull, 12356216845021000ull, 9096419789033416977ull,
+ 2527968539172754598ull}},
+ {{1273861980410563008ull, 4627131289483664154ull,
+ 2147152699436995413ull, 3159960673965943248ull}},
+ {{10815699512367979567ull, 10395600130281968096ull,
+ 2683940874296244266ull, 3949950842457429060ull}},
+ {{6759812195229987230ull, 11108936099853617964ull,
+ 10900835083289928474ull, 2468719276535893162ull}},
+ {{8449765244037484037ull, 4662798087962246647ull,
+ 4402671817257634785ull, 3085899095669866453ull}},
+ {{5950520536619467142ull, 10440183628380196213ull,
+ 10115025789999431385ull, 3857373869587333066ull}},
+ {{6024918344600860916ull, 18054329813806092393ull,
+ 10933577137177032519ull, 2410858668492083166ull}},
+ {{12142833949178464049ull, 17956226248830227587ull,
+ 4443599384616514841ull, 3013573335615103958ull}},
+ {{10566856418045692157ull, 8610224755755620772ull,
+ 14777871267625419360ull, 3766966669518879947ull}},
+ {{15827657298133333406ull, 5381390472347262982ull,
+ 6930326533052193148ull, 2354354168449299967ull}},
+ {{10561199585811890950ull, 6726738090434078728ull,
+ 4051222147887853531ull, 2942942710561624959ull}},
+ {{13201499482264863687ull, 3796736594615210506ull,
+ 452341666432429010ull, 3678678388202031199ull}},
+ {{7278502315976303801ull, 13969292780123788941ull,
+ 14400485138322699974ull, 4598347985252538998ull}},
+ {{6854906956698883828ull, 4119121969149980184ull,
+ 4388617193024299580ull, 2873967490782836874ull}},
+ {{8568633695873604785ull, 5148902461437475230ull,
+ 14709143528135150283ull, 3592459363478546092ull}},
+ {{1487420082987230173ull, 1824442058369456134ull,
+ 18386429410168937854ull, 4490574204348182615ull}},
+ {{14764695607149182570ull, 14975334341763073795ull,
+ 18409047408996668014ull, 2806608877717614134ull}},
+ {{13844183490509090309ull, 9495795890349066436ull,
+ 13787937224391059210ull, 3508261097147017668ull}},
+ {{17305229363136362886ull, 2646372826081557237ull,
+ 17234921530488824013ull, 4385326371433772085ull}},
+ {{13121611361173920756ull, 3959826025514667225ull,
+ 13077668965769208960ull, 2740828982146107553ull}},
+ {{2566956146185237232ull, 4949782531893334032ull,
+ 2512028151929347488ull, 3426036227682634442ull}},
+ {{3208695182731546540ull, 6187228164866667540ull,
+ 12363407226766460168ull, 4282545284603293052ull}},
+ {{11228806526061992396ull, 3867017603041667212ull,
+ 16950501553583813413ull, 2676590802877058157ull}},
+ {{14036008157577490495ull, 9445458022229471919ull,
+ 7353068886697603054ull, 3345738503596322697ull}},
+ {{12933324178544475214ull, 2583450490932064091ull,
+ 13803022126799391722ull, 4182173129495403371ull}},
+ {{5777484602376603057ull, 6226342575259927961ull,
+ 6321045820035925874ull, 2613858205934627107ull}},
+ {{11833541771398141725ull, 17006300255929685759ull,
+ 3289621256617519438ull, 3267322757418283884ull}},
+ {{10180241195820289253ull, 12034503283057331391ull,
+ 4112026570771899298ull, 4084153446772854855ull}},
+ {{13280179775028762639ull, 12133250570338220023ull,
+ 9487545634373518917ull, 2552595904233034284ull}},
+ {{11988538700358565395ull, 1331505157640611317ull,
+ 11859432042966898647ull, 3190744880291292855ull}},
+ {{1150615320166043031ull, 15499439502332927859ull,
+ 10212604035281235404ull, 3988431100364116069ull}},
+ {{16860035639599634559ull, 463777652103304103ull,
+ 8688720531264466080ull, 2492769437727572543ull}},
+ {{16463358531072155294ull, 579722065129130129ull,
+ 6249214645653194696ull, 3115961797159465679ull}},
+ {{6744140108558030406ull, 724652581411412662ull, 3199832288639105466ull,
+ 3894952246449332099ull}},
+ {{18050145623130932716ull, 5064593881809520817ull,
+ 18140796244895298580ull, 2434345154030832561ull}},
+ {{8727623973631502183ull, 6330742352261901022ull,
+ 8840937250836959513ull, 3042931442538540702ull}},
+ {{1686157930184601920ull, 12525113958754764182ull,
+ 1827799526691423583ull, 3803664303173175878ull}},
+ {{14888906761647539912ull, 14745725251862809469ull,
+ 14977432759464303451ull, 2377290189483234923ull}},
+ {{4776075396777261178ull, 13820470546401123933ull,
+ 14110104930902991410ull, 2971612736854043654ull}},
+ {{10581780264398964377ull, 8052216146146629108ull,
+ 8414259126773963455ull, 3714515921067554568ull}},
+ {{15836984702104128544ull, 11950164118982725048ull,
+ 5258911954233727159ull, 2321572450667221605ull}},
+ {{1349486803920609063ull, 10326019130301018407ull,
+ 11185325961219546853ull, 2901965563334027006ull}},
+ {{15521916560182925041ull, 17519209931303660912ull,
+ 4758285414669657758ull, 3627456954167533758ull}},
+ {{955651626519104685ull, 12675640377274800333ull,
+ 15171228805191848006ull, 4534321192709417197ull}},
+ {{2903125275788134380ull, 3310589217369362304ull,
+ 11787861012458598956ull, 2833950745443385748ull}},
+ {{3628906594735167975ull, 4138236521711702880ull,
+ 14734826265573248695ull, 3542438431804232185ull}},
+ {{4536133243418959969ull, 561109633712240696ull, 4583474776684397157ull,
+ 4428048039755290232ull}},
+ {{2835083277136849981ull, 2656536530283844387ull,
+ 2864671735427748223ull, 2767530024847056395ull}},
+ {{17378912151703226188ull, 17155728718136969195ull,
+ 17415897724566848990ull, 3459412531058820493ull}},
+ {{17111954171201644831ull, 12221288860816435686ull,
+ 7934814100426397526ull, 4324265663823525617ull}},
+ {{6083285338573640115ull, 3026619519582884400ull,
+ 16488473858834968214ull, 2702666039889703510ull}},
+ {{7604106673217050144ull, 13006646436333381308ull,
+ 11387220286688934459ull, 3378332549862129388ull}},
+ {{9505133341521312680ull, 11646622026989338731ull,
+ 14234025358361168074ull, 4222915687327661735ull}},
+ {{3634865329237126473ull, 11890824785295724611ull,
+ 15813794876616811902ull, 2639322304579788584ull}},
+ {{18378639716828571803ull, 5640158944764879955ull,
+ 1320499522061463262ull, 3299152880724735731ull}},
+ {{18361613627608326850ull, 16273570717810875752ull,
+ 15485682457858992789ull, 4123941100905919663ull}},
+ {{11476008517255204282ull, 12476824707845491297ull,
+ 16596080563802952349ull, 2577463188066199789ull}},
+ {{509952591286841640ull, 1760972829524700410ull, 6910042649471526725ull,
+ 3221828985082749737ull}},
+ {{9860812775963327858ull, 6812902055333263416ull,
+ 13249239330266796310ull, 4027286231353437171ull}},
+ {{6163007984977079911ull, 18093121839865453347ull,
+ 5974931572203053741ull, 2517053894595898232ull}},
+ {{3092073962793961985ull, 8781344244549652972ull,
+ 7468664465253817177ull, 3146317368244872790ull}},
+ {{3865092453492452481ull, 15588366324114454119ull,
+ 112458544712495663ull, 3932896710306090988ull}},
+ {{9333211811073864657ull, 16660257980212615680ull,
+ 9293658627300085597ull, 2458060443941306867ull}},
+ {{11666514763842330821ull, 6990264419983605888ull,
+ 7005387265697719093ull, 3072575554926633584ull}},
+ {{14583143454802913526ull, 13349516543406895264ull,
+ 8756734082122148866ull, 3840719443658291980ull}},
+ {{9114464659251820954ull, 12955133858056697444ull,
+ 14696330838181118849ull, 2400449652286432487ull}},
+ {{11393080824064776192ull, 2358859267288708093ull,
+ 13758727529299010658ull, 3000562065358040609ull}},
+ {{406292974798806528ull, 12171946120965660925ull,
+ 3363351356341599610ull, 3750702581697550762ull}},
+ {{2559776118462948032ull, 12219152344030925982ull,
+ 6713780616140887660ull, 2344189113560969226ull}},
+ {{12423092184933460848ull, 15273940430038657477ull,
+ 17615597807030885383ull, 2930236391951211532ull}},
+ {{1693807175884662348ull, 14480739519120933943ull,
+ 3572753185079055113ull, 3662795489939014416ull}},
+ {{15952317025137991647ull, 4265866343619003716ull,
+ 4465941481348818892ull, 4578494362423768020ull}},
+ {{746826103856468972ull, 11889538501616653131ull,
+ 12014585462697787615ull, 2861558976514855012ull}},
+ {{14768590685102749926ull, 10250237108593428509ull,
+ 15018231828372234519ull, 3576948720643568765ull}},
+ {{4625680301096273696ull, 8201110367314397733ull,
+ 4937731730183129437ull, 4471185900804460957ull}},
+ {{5196893197398865012ull, 7431536988785192535ull,
+ 5391925340578149850ull, 2794491188002788098ull}},
+ {{1884430478321193361ull, 66049199126714861ull, 15963278712577463121ull,
+ 3493113985003485122ull}},
+ {{6967224116328879605ull, 4694247517335781480ull,
+ 10730726353867053093ull, 4366392481254356403ull}},
+ {{4354515072705549753ull, 5239747707548557377ull,
+ 4400860961953214231ull, 2728995300783972752ull}},
+ {{10054829859309325096ull, 1937998616008308817ull,
+ 5501076202441517789ull, 3411244125979965940ull}},
+ {{17180223342564044273ull, 7034184288437773925ull,
+ 6876345253051897236ull, 4264055157474957425ull}},
+ {{13043482598316221623ull, 13619737217128384511ull,
+ 15826930829225905532ull, 2665034473421848390ull}},
+ {{11692667229467889125ull, 17024671521410480639ull,
+ 10560291499677606107ull, 3331293091777310488ull}},
+ {{10004148018407473502ull, 16669153383335712895ull,
+ 13200364374597007634ull, 4164116364721638110ull}},
+ {{13170121539145752795ull, 15029906883012208463ull,
+ 3638541715695741867ull, 2602572727951023819ull}},
+ {{11850965905504803089ull, 14175697585337872675ull,
+ 18383235199901841046ull, 3253215909938779773ull}},
+ {{10202021363453615958ull, 8496249944817565036ull,
+ 9143985944595137596ull, 4066519887423474717ull}},
+ {{15599635389013285782ull, 14533528252365753955ull,
+ 8020834224585654949ull, 2541574929639671698ull}},
+ {{14887858217839219323ull, 4331852260175028732ull,
+ 802670743877292879ull, 3176968662049589623ull}},
+ {{163078698589472538ull, 803129306791398012ull, 14838396485128779811ull,
+ 3971210827561987028ull}},
+ {{9325296223473196144ull, 16642856881240481421ull, 50625766350711573ull,
+ 2482006767226241893ull}},
+ {{16268306297768883084ull, 6968513046268438064ull,
+ 4674968226365777371ull, 3102508459032802366ull}},
+ {{1888638798501552239ull, 4098955289408159677ull,
+ 15067082319811997522ull, 3878135573791002957ull}},
+ {{3486242258277164102ull, 7173533074307487702ull,
+ 11722769459096192403ull, 2423834733619376848ull}},
+ {{13581174859701230935ull, 4355230324456971723ull,
+ 14653461823870240504ull, 3029793417024221060ull}},
+ {{12364782556199150764ull, 5444037905571214654ull,
+ 18316827279837800630ull, 3787241771280276325ull}},
+ {{3116303079197081324ull, 17237581746264172871ull,
+ 13753860059112319345ull, 2367026107050172703ull}},
+ {{17730436904278515367ull, 7711919127548052376ull,
+ 12580639055463011278ull, 2958782633812715879ull}},
+ {{3716302056638592592ull, 416526872580289663ull,
+ 11114112800901376194ull, 3698478292265894849ull}},
+ {{9240217813040202226ull, 4872015313790068943ull, 28791472922278265ull,
+ 2311548932666184281ull}},
+ {{6938586247872864879ull, 10701705160664974083ull,
+ 4647675359580235735ull, 2889436165832730351ull}},
+ {{4061546791413693195ull, 8765445432403829700ull,
+ 1197908181047906765ull, 3611795207290912939ull}},
+ {{5076933489267116493ull, 15568492808932175029ull,
+ 15332443281592047168ull, 4514744009113641173ull}},
+ {{5478926440005641760ull, 9730308005582609393ull,
+ 11888620060208723432ull, 2821715005696025733ull}},
+ {{11460344068434440104ull, 12162885006978261741ull,
+ 1025717019978740578ull, 3527143757120032167ull}},
+ {{490372030260886418ull, 5980234221868051369ull,
+ 15117204330255589435ull, 4408929696400040208ull}},
+ {{11835697564981523772ull, 1431803379453838153ull,
+ 9448252706409743397ull, 2755581060250025130ull}},
+ {{959563900944741002ull, 6401440242744685596ull, 2586943846157403438ull,
+ 3444476325312531413ull}},
+ {{1199454876180926253ull, 17225172340285632803ull,
+ 7845365826124142201ull, 4305595406640664266ull}},
+ {{16890560362108936572ull, 3848203685037438645ull,
+ 9515039659754976780ull, 2690997129150415166ull}},
+ {{7278142397354007003ull, 4810254606296798307ull,
+ 2670427537838945167ull, 3363746411438018958ull}},
+ {{4485991978265120850ull, 1401132239443609980ull,
+ 12561406459153457267ull, 4204683014297523697ull}},
+ {{12027117023270476339ull, 17016608714148113901ull,
+ 933350009329828935ull, 2627926883935952311ull}},
+ {{1198838223805931712ull, 16659074874257754473ull,
+ 15001745566944449881ull, 3284908604919940388ull}},
+ {{6110233798184802544ull, 6988785537540029379ull, 305437884971010736ull,
+ 4106135756149925486ull}},
+ {{1513053114651807638ull, 4367990960962518362ull,
+ 14025956733389045422ull, 2566334847593703428ull}},
+ {{11114688430169535356ull, 14683360738057923760ull,
+ 17532445916736306777ull, 3207918559492129285ull}},
+ {{13893360537711919194ull, 4519142867290240988ull,
+ 8080499340638219760ull, 4009898199365161607ull}},
+ {{17906722372924725305ull, 2824464292056400617ull,
+ 11967841115539969206ull, 2506186374603226004ull}},
+ {{8548344910873742919ull, 12753952401925276580ull,
+ 14959801394424961507ull, 3132732968254032505ull}},
+ {{10685431138592178648ull, 11330754483979207821ull,
+ 4864693687749038172ull, 3915916210317540632ull}},
+ {{8984237470833805607ull, 16305093589341780696ull,
+ 3040433554843148857ull, 2447447631448462895ull}},
+ {{11230296838542257009ull, 6546308931395062158ull,
+ 17635599998836099784ull, 3059309539310578618ull}},
+ {{4814499011323045453ull, 8182886164243827698ull,
+ 12821127961690348922ull, 3824136924138223273ull}},
+ {{7620747900504291312ull, 9725989871079780215ull,
+ 1095675948415386220ull, 2390085577586389546ull}},
+ {{4914248857202976236ull, 12157487338849725269ull,
+ 10592966972374008583ull, 2987606971982986932ull}},
+ {{10754497089931108199ull, 10585173155134768682ull,
+ 13241208715467510729ull, 3734508714978733665ull}},
+ {{11333246699634330529ull, 18144948268027700186ull,
+ 1358226419526112349ull, 2334067946861708541ull}},
+ {{4943186337688137353ull, 8846127279752461521ull,
+ 6309469042835028341ull, 2917584933577135676ull}},
+ {{10790668940537559595ull, 15669345118117964805ull,
+ 7886836303543785426ull, 3646981166971419595ull}},
+ {{18100022194099337398ull, 10363309360792680198ull,
+ 5246859361002343879ull, 4558726458714274494ull}},
+ {{6700827852884697970ull, 13394597378136506980ull,
+ 17114345155908628636ull, 2849204036696421558ull}},
+ {{8376034816105872462ull, 16743246722670633725ull,
+ 12169559408031009987ull, 3561505045870526948ull}},
+ {{15081729538559728481ull, 16317372384910904252ull,
+ 15211949260038762484ull, 4451881307338158685ull}},
+ {{202708924745054493ull, 974985703714539350ull, 11813311296737920505ull,
+ 2782425817086349178ull}},
+ {{9476758192786093924ull, 5830418148070562091ull,
+ 5543267084067624823ull, 3478032271357936473ull}},
+ {{7234261722555229501ull, 2676336666660814710ull,
+ 11540769873511918933ull, 4347540339197420591ull}},
+ {{18356471631879182150ull, 3978553425876703145ull,
+ 14130510198586031189ull, 2717212711998387869ull}},
+ {{9110531484566813976ull, 9584877800773266836ull,
+ 3828079692950375274ull, 3396515889997984837ull}},
+ {{11388164355708517470ull, 2757725214111807737ull,
+ 9396785634615356997ull, 4245644862497481046ull}},
+ {{200073694676741563ull, 4029421268033573788ull, 1261305003207210219ull,
+ 2653528039060925654ull}},
+ {{250092118345926953ull, 425090566614579331ull, 10800003290863788582ull,
+ 3316910048826157067ull}},
+ {{14147673203214572403ull, 9754735245122999971ull,
+ 8888318095152347823ull, 4146137561032696334ull}},
+ {{6536452742795413800ull, 13014238555842956838ull,
+ 943512791042829485ull, 2591335975645435209ull}},
+ {{17393937965349043058ull, 2432740139521532335ull,
+ 5791077007230924761ull, 3239169969556794011ull}},
+ {{17130736438258915919ull, 7652611192829303323ull,
+ 2627160240611268047ull, 4048962461945992514ull}},
+ {{8400867264698128497ull, 11700411023159396433ull,
+ 6253661168809430433ull, 2530601538716245321ull}},
+ {{15112770099300048526ull, 790455723667081829ull,
+ 12428762479439175946ull, 3163251923395306651ull}},
+ {{5055904568842896945ull, 10211441691438628095ull,
+ 10924267080871582028ull, 3954064904244133314ull}},
+ {{10077469383167892447ull, 15605523094003918367ull,
+ 11439352943972126671ull, 2471290565152583321ull}},
+ {{7985150710532477654ull, 14895217849077510055ull,
+ 464133124682994627ull, 3089113206440729152ull}},
+ {{5369752369738209164ull, 14007336292919499665ull,
+ 580166405853743284ull, 3861391508050911440ull}},
+ {{14885310277154850488ull, 17977957219929463098ull,
+ 362604003658589552ull, 2413369692531819650ull}},
+ {{9383265809588787301ull, 4025702451202277257ull,
+ 9676627041428012749ull, 3016712115664774562ull}},
+ {{16340768280413372031ull, 9643814082430234475ull,
+ 2872411764930240128ull, 3770890144580968203ull}},
+ {{7907137166044663567ull, 6027383801518896547ull,
+ 17936158417577257744ull, 2356806340363105126ull}},
+ {{5272235439128441555ull, 7534229751898620684ull,
+ 13196825985116796372ull, 2946007925453881408ull}},
+ {{6590294298910551944ull, 9417787189873275855ull,
+ 16496032481395995465ull, 3682509906817351760ull}},
+ {{3626181855210802025ull, 16383920005768982723ull,
+ 2173296528035442715ull, 4603137383521689701ull}},
+ {{18407264724002608930ull, 7934106994391920249ull,
+ 3664153339235845649ull, 2876960864701056063ull}},
+ {{9174022849721097450ull, 14529319761417288216ull,
+ 18415249729326970773ull, 3596201080876320078ull}},
+ {{11467528562151371813ull, 4326591646489446558ull,
+ 13795690124803937659ull, 4495251351095400098ull}},
+ {{2555519332917219479ull, 398276769842210147ull,
+ 13233992346429848941ull, 2809532094434625061ull}},
+ {{17029457221428688061ull, 5109531980730150587ull,
+ 2707432377755147464ull, 3511915118043281327ull}},
+ {{16675135508358472172ull, 6386914975912688234ull,
+ 17219348527476098042ull, 4389893897554101658ull}},
+ {{15033645711151433012ull, 8603507878372818050ull,
+ 15373778848099949180ull, 2743683685971313536ull}},
+ {{9568685102084515456ull, 10754384847966022563ull,
+ 770479486415384859ull, 3429604607464141921ull}},
+ {{7349170359178256416ull, 8831295041530140300ull,
+ 5574785376446618978ull, 4287005759330177401ull}},
+ {{13816603511341186068ull, 10131245419383725591ull,
+ 15013455906347606621ull, 2679378599581360875ull}},
+ {{12659068370749094681ull, 17275742792657044893ull,
+ 14155133864507120372ull, 3349223249476701094ull}},
+ {{1988777408154204640ull, 3147934417111754501ull,
+ 8470545293779124658ull, 4186529061845876368ull}},
+ {{3548828889310071852ull, 6579145029122234467ull,
+ 5294090808611952911ull, 2616580663653672730ull}},
+ {{18271094166919753527ull, 3612245267975405179ull,
+ 15840985547619716947ull, 3270725829567090912ull}},
+ {{18227181690222304005ull, 18350364640251420186ull,
+ 1354487860815094567ull, 4088407286958863641ull}},
+ {{16003674574816327907ull, 18386506927798219472ull,
+ 12375769959077903864ull, 2555254554349289775ull}},
+ {{1557849144810858268ull, 4536389586038222725ull,
+ 10858026430419991927ull, 3194068192936612219ull}},
+ {{6558997449440960738ull, 1058800964120390502ull,
+ 8960847019597602005ull, 3992585241170765274ull}},
+ {{17934431461182764174ull, 2967593611788938015ull,
+ 10212215405675889157ull, 2495365775731728296ull}},
+ {{17806353308051067313ull, 8321178033163560423ull,
+ 12765269257094861446ull, 3119207219664660370ull}},
+ {{17646255616636446237ull, 1178100504599674721ull,
+ 6733214534513801000ull, 3899009024580825463ull}},
+ {{4111380732756697042ull, 736312815374796701ull,
+ 11125788111712207481ull, 2436880640363015914ull}},
+ {{9750911934373259207ull, 5532077037645883780ull,
+ 4683863102785483543ull, 3046100800453769893ull}},
+ {{12188639917966574008ull, 2303410278629966821ull,
+ 10466514896909242333ull, 3807626000567212366ull}},
+ {{9923742957942802707ull, 3745474433357423215ull,
+ 1929885792140888554ull, 2379766250354507729ull}},
+ {{7792992679001115480ull, 13905215078551554827ull,
+ 7024043258603498596ull, 2974707812943134661ull}},
+ {{5129554830324006446ull, 17381518848189443534ull,
+ 13391740091681761149ull, 3718384766178918326ull}},
+ {{17041029824234667741ull, 13169292289332096160ull,
+ 3758151538873712814ull, 2323990478861823954ull}},
+ {{2854543206583783060ull, 7238243324810344393ull,
+ 13921061460446916826ull, 2904988098577279942ull}},
+ {{8179865026657116729ull, 18271176192867706299ull,
+ 8177954788703870224ull, 3631235123221599928ull}},
+ {{5613145264894008007ull, 4392226167375081258ull,
+ 10222443485879837781ull, 4539043904026999910ull}},
+ {{8119901808986142909ull, 5050984363823119738ull,
+ 1777341160247510709ull, 2836902440016874944ull}},
+ {{926505224377902828ull, 10925416473206287577ull,
+ 2221676450309388386ull, 3546128050021093680ull}},
+ {{5769817548899766439ull, 4433398554653083663ull,
+ 2777095562886735483ull, 4432660062526367100ull}},
+ {{10523664995703435880ull, 465031087444483337ull,
+ 10959056763658985485ull, 2770412539078979437ull}},
+ {{17766267263056682754ull, 5192974877732992075ull,
+ 18310506973001119760ull, 3463015673848724296ull}},
+ {{17596148060393465539ull, 6491218597166240094ull,
+ 4441389642541848084ull, 4328769592310905371ull}},
+ {{6385906519318528058ull, 13280383660083675867ull,
+ 470025517374961100ull, 2705480995194315857ull}},
+ {{3370697130720772168ull, 16600479575104594834ull,
+ 5199217915146089279ull, 3381851243992894821ull}},
+ {{13436743450255741018ull, 16138913450453355638ull,
+ 11110708412359999503ull, 4227314054991118526ull}},
+ {{3786278637982450233ull, 17004349934174429130ull,
+ 2332506739297611785ull, 2642071284369449079ull}},
+ {{13956220334332838599ull, 7420379362435872700ull,
+ 16750691479404178444ull, 3302589105461811348ull}},
+ {{17445275417916048248ull, 9275474203044840875ull,
+ 2491620275545671439ull, 4128236381827264186ull}},
+ {{8597454126983836203ull, 12714700404544107403ull,
+ 6168948690643432553ull, 2580147738642040116ull}},
+ {{6135131640302407350ull, 2058317450397970542ull,
+ 7711185863304290692ull, 3225184673302550145ull}},
+ {{16892286587232784995ull, 2572896812997463177ull,
+ 14250668347557751269ull, 4031480841628187681ull}},
+ {{3640150089379408766ull, 3913903517337108438ull,
+ 1989138689582512687ull, 2519675526017617301ull}},
+ {{13773559648579036766ull, 280693378243997643ull,
+ 7098109380405528763ull, 3149594407522021626ull}},
+ {{12605263542296408053ull, 14185924778087160766ull,
+ 18096008762361686761ull, 3936993009402527032ull}},
+ {{3266603695507867129ull, 1948673958663393623ull,
+ 11310005476476054226ull, 2460620630876579395ull}},
+ {{17918312674666997623ull, 11659214485184017836ull,
+ 9525820827167679878ull, 3075775788595724244ull}},
+ {{3951146769624195413ull, 5350646069625246488ull,
+ 11907276033959599848ull, 3844719735744655305ull}},
+ {{2469466731015122133ull, 3344153793515779055ull, 524518493583668049ull,
+ 2402949834840409566ull}},
+ {{16921891469051066379ull, 8791878260322111722ull,
+ 9879020153834360869ull, 3003687293550511957ull}},
+ {{11928992299459057165ull, 15601533843830027557ull,
+ 16960461210720338990ull, 3754609116938139946ull}},
+ {{9761463196375604680ull, 5139272633966379319ull,
+ 15211974275127599773ull, 2346630698086337466ull}},
+ {{7590142977042117946ull, 11035776810885362053ull,
+ 9791595807054723908ull, 2933288372607921833ull}},
+ {{14099364739730035337ull, 13794721013606702566ull,
+ 16851180777245792789ull, 3666610465759902291ull}},
+ {{8400833887807768363ull, 3408343211726214496ull,
+ 16452289953129853083ull, 4583263082199877864ull}},
+ {{5250521179879855227ull, 18271115571824741724ull,
+ 10282681220706158176ull, 2864539426374923665ull}},
+ {{6563151474849819034ull, 4392150391071375539ull,
+ 17465037544310085625ull, 3580674282968654581ull}},
+ {{3592253325134885888ull, 10101874007266607328ull,
+ 7996238875105443319ull, 4475842853710818227ull}},
+ {{2245158328209303680ull, 13231200282182711436ull,
+ 2691806287727208122ull, 2797401783569261392ull}},
+ {{2806447910261629600ull, 7315628315873613487ull,
+ 3364757859659010153ull, 3496752229461576740ull}},
+ {{17343117943109200712ull, 13756221413269404762ull,
+ 4205947324573762691ull, 4370940286826970925ull}},
+ {{15451134732870638349ull, 6291795374079684024ull,
+ 4934560087072295634ull, 2731837679266856828ull}},
+ {{867174342378746320ull, 17088116254454380839ull,
+ 6168200108840369542ull, 3414797099083571035ull}},
+ {{14919025983255596612ull, 12136773281213200240ull,
+ 3098564117623074024ull, 4268496373854463794ull}},
+ {{9324391239534747883ull, 7585483300758250150ull,
+ 6548288591941809169ull, 2667810233659039871ull}},
+ {{2432117012563659045ull, 14093540144375200592ull,
+ 3573674721499873557ull, 3334762792073799839ull}},
+ {{3040146265704573807ull, 3781867125186837028ull,
+ 18302151457157005659ull, 4168453490092249798ull}},
+ {{11123463452920134437ull, 57823944028079190ull, 6827158642295740633ull,
+ 2605283431307656124ull}},
+ {{4680957279295392239ull, 4683965948462486892ull,
+ 8533948302869675791ull, 3256604289134570155ull}},
+ {{5851196599119240298ull, 1243271417150720711ull,
+ 6055749360159706835ull, 4070755361418212694ull}},
+ {{10574526902090607043ull, 16917945700215058108ull,
+ 17619901405381980483ull, 2544222100886382933ull}},
+ {{13218158627613258803ull, 16535746106841434731ull,
+ 8189818701445311892ull, 3180277626107978667ull}},
+ {{11911012266089185600ull, 2222938559842241798ull,
+ 5625587358379251962ull, 3975347032634973334ull}},
+ {{2832696647878353096ull, 6001022618328789028ull,
+ 17351050154269196188ull, 2484591895396858333ull}},
+ {{3540870809847941370ull, 7501278272910986285ull,
+ 7853754637554331523ull, 3105739869246072917ull}},
+ {{9037774530737314616ull, 4764911822711344952ull,
+ 14428879315370302308ull, 3882174836557591146ull}},
+ {{5648609081710821635ull, 12201441926049366403ull,
+ 13629735590533826846ull, 2426359272848494466ull}},
+ {{2449075333711139140ull, 6028430370706932196ull,
+ 7813797451312507750ull, 3032949091060618083ull}},
+ {{3061344167138923925ull, 16758910000238441053ull,
+ 5155560795713246783ull, 3791186363825772604ull}},
+ {{4219183113675521405ull, 17391847777790107514ull,
+ 12445597534175555047ull, 2369491477391107877ull}},
+ {{14497350928949177564ull, 17128123703810246488ull,
+ 1721938862437280097ull, 2961864346738884847ull}},
+ {{18121688661186471955ull, 7575096574480644398ull,
+ 15987481633328763834ull, 3702330433423606058ull}},
+ {{6714369394814157068ull, 9346121377477790653ull,
+ 14603862039257865300ull, 2313956520889753786ull}},
+ {{13004647761945084239ull, 11682651721847238316ull,
+ 9031455512217555817ull, 2892445651112192233ull}},
+ {{16255809702431355299ull, 768256597026884183ull,
+ 15901005408699332676ull, 3615557063890240291ull}},
+ {{15708076109611806220ull, 960320746283605229ull,
+ 15264570742446777941ull, 4519446329862800364ull}},
+ {{12123390577721072839ull, 2906043475640947220ull,
+ 316984677174460405ull, 2824653956164250228ull}},
+ {{15154238222151341049ull, 8244240362978571929ull,
+ 396230846468075506ull, 3530817445205312785ull}},
+ {{5107739722407012599ull, 1081928416868439104ull,
+ 5106974576512482287ull, 4413521806506640981ull}},
+ {{3192337326504382875ull, 7593734288183856296ull,
+ 5497702119533995381ull, 2758451129066650613ull}},
+ {{3990421658130478593ull, 14103853878657208274ull,
+ 11483813667844882130ull, 3448063911333313266ull}},
+ {{14211399109517874050ull, 8406445311466734534ull,
+ 5131395047951326855ull, 4310079889166641583ull}},
+ {{4270438425021283377ull, 12171557347307790940ull,
+ 10124650932610661140ull, 2693799930729150989ull}},
+ {{5338048031276604221ull, 15214446684134738675ull,
+ 17267499684190714329ull, 3367249913411438736ull}},
+ {{2060874020668367373ull, 5183000299886259632ull,
+ 3137630531528841296ull, 4209062391764298421ull}},
+ {{1288046262917729608ull, 3239375187428912270ull,
+ 4266862091419219762ull, 2630663994852686513ull}},
+ {{10833429865501937818ull, 13272591021140916145ull,
+ 9945263632701412606ull, 3288329993565858141ull}},
+ {{18153473350304810176ull, 7367366739571369373ull,
+ 17043265559304153662ull, 4110412491957322676ull}},
+ {{13651763853154200312ull, 18439662267514269570ull,
+ 1428668937710320230ull, 2569007807473326673ull}},
+ {{7841332779587974582ull, 13826205797538061155ull,
+ 6397522190565288192ull, 3211259759341658341ull}},
+ {{5189979956057580324ull, 17282757246922576444ull,
+ 12608588756633998144ull, 4014074699177072926ull}},
+ {{12467109509390763511ull, 10801723279326610277ull,
+ 3268681954468860936ull, 2508796686985670579ull}},
+ {{1748828831456290676ull, 13502154099158262847ull,
+ 17920910498368239882ull, 3135995858732088223ull}},
+ {{16021094094602527057ull, 7654320587093052750ull,
+ 17789452104532911949ull, 3919994823415110279ull}},
+ {{5401497790699191507ull, 7089793376146851921ull,
+ 18035936592974151824ull, 2449996764634443924ull}},
+ {{11363558256801377287ull, 8862241720183564901ull,
+ 4098176667508138164ull, 3062495955793054906ull}},
+ {{369389765719557897ull, 11077802150229456127ull,
+ 14346092871239948513ull, 3828119944741318632ull}},
+ {{7148397631215805542ull, 6097316252328223ull, 8966308044524967821ull,
+ 2392574965463324145ull}},
+ {{4323811020592369023ull, 4619307663742798183ull,
+ 15819571074083597680ull, 2990718706829155181ull}},
+ {{793077757313073375ull, 5774134579678497729ull, 5939405787322333388ull,
+ 3738398383536443977ull}},
+ {{12024888644389140619ull, 12832206149153836888ull,
+ 15241343663144928127ull, 2336498989710277485ull}},
+ {{15031110805486425774ull, 11428571668014908206ull,
+ 5216621523648996447ull, 2920623737137846857ull}},
+ {{9565516470003256410ull, 9674028566591247354ull,
+ 11132462922988633463ull, 3650779671422308571ull}},
+ {{2733523550649294704ull, 7480849689811671289ull,
+ 9303892635308403925ull, 4563474589277885714ull}},
+ {{13237667265224278950ull, 6981374065345988507ull,
+ 10426618915495140357ull, 2852171618298678571ull}},
+ {{11935398063102960784ull, 13338403600109873538ull,
+ 8421587625941537542ull, 3565214522873348214ull}},
+ {{5695875542023925171ull, 7449632463282566115ull,
+ 1303612495572146120ull, 4456518153591685268ull}},
+ {{1254079204551259280ull, 4656020289551603822ull,
+ 10038129846587367133ull, 2785323845994803292ull}},
+ {{10790971042543849908ull, 10431711380366892681ull,
+ 12547662308234208916ull, 3481654807493504115ull}},
+ {{18100399821607200289ull, 13039639225458615851ull,
+ 11072891866865373241ull, 4352068509366880144ull}},
+ {{9006906879290806229ull, 1232245488270553051ull,
+ 6920557416790858276ull, 2720042818354300090ull}},
+ {{6646947580686119882ull, 1540306860338191314ull,
+ 17874068807843348653ull, 3400053522942875112ull}},
+ {{17532056512712425660ull, 6537069593850127046ull,
+ 3895841936094634200ull, 4250066903678593891ull}},
+ {{6345849302017878134ull, 4085668496156329404ull, 129058200845452423ull,
+ 2656291814799121182ull}},
+ {{7932311627522347667ull, 495399601768023851ull, 9384694787911591337ull,
+ 3320364768498901477ull}},
+ {{5303703515975546680ull, 5230935520637417718ull,
+ 16342554503316877075ull, 4150455960623626846ull}},
+ {{17149872752766880387ull, 963491691184692121ull,
+ 5602410546145660268ull, 2594034975389766779ull}},
+ {{7602282885676436772ull, 1204364613980865152ull,
+ 2391327164254687431ull, 3242543719237208474ull}},
+ {{9502853607095545965ull, 15340513822758245152ull,
+ 12212530992173135096ull, 4053179649046510592ull}},
+ {{5939283504434716228ull, 9587821139223903220ull,
+ 7632831870108209435ull, 2533237280654069120ull}},
+ {{7424104380543395285ull, 7373090405602491121ull,
+ 9541039837635261794ull, 3166546600817586400ull}},
+ {{13891816494106632010ull, 18439735043857889709ull,
+ 11926299797044077242ull, 3958183251021983000ull}},
+ {{10988228318030338959ull, 16136520420838568972ull,
+ 7453937373152548276ull, 2473864531888739375ull}},
+ {{13735285397537923698ull, 1723906452338659599ull,
+ 4705735698013297442ull, 3092330664860924219ull}},
+ {{12557420728495016718ull, 11378255102278100307ull,
+ 1270483604089233898ull, 3865413331076155274ull}},
+ {{5542544946095691497ull, 11723095457351200596ull,
+ 5405738270983159090ull, 2415883331922597046ull}},
+ {{6928181182619614371ull, 5430497284834224937ull,
+ 15980544875583724671ull, 3019854164903246307ull}},
+ {{13271912496701905868ull, 2176435587615393267ull,
+ 15363995076052267935ull, 3774817706129057884ull}},
+ {{5989102301224997216ull, 8277801269900702648ull, 379124885677891651ull,
+ 2359261066330661178ull}},
+ {{7486377876531246520ull, 5735565568948490406ull,
+ 9697278143952140372ull, 2949076332913326472ull}},
+ {{134600308809282341ull, 7169456961185613008ull,
+ 12121597679940175465ull, 3686345416141658090ull}},
+ {{168250386011602926ull, 13573507219909404164ull,
+ 5928625063070443523ull, 4607931770177072613ull}},
+ {{9328528528112027637ull, 6177599003229683650ull,
+ 6011233673632721154ull, 2879957356360670383ull}},
+ {{2437288623285258738ull, 16945370790891880371ull,
+ 2902356073613513538ull, 3599946695450837979ull}},
+ {{16881668834388737135ull, 11958341451760074655ull,
+ 17463003147299055635ull, 4499933369313547473ull}},
+ {{17468572049134042565ull, 5168120398136352707ull,
+ 3996847939420827916ull, 2812458355820967171ull}},
+ {{17224029042990165303ull, 6460150497670440884ull,
+ 384373905848646991ull, 3515572944776208964ull}},
+ {{3083292230028155012ull, 3463502103660663202ull, 480467382310808739ull,
+ 4394466180970261205ull}},
+ {{6538743662194984787ull, 18305589879283772165ull,
+ 2606135123157949413ull, 2746541363106413253ull}},
+ {{12785115596171118887ull, 9046929293822551494ull,
+ 7869354922374824671ull, 3433176703883016566ull}},
+ {{6758022458359122801ull, 6696975598850801464ull, 613321616113755031ull,
+ 4291470879853770708ull}},
+ {{4223764036474451751ull, 11103138776922832771ull,
+ 9606698046925872702ull, 2682169299908606692ull}},
+ {{668019027165676785ull, 4655551434298765156ull,
+ 12008372558657340878ull, 3352711624885758365ull}},
+ {{835023783957095981ull, 15042811329728232253ull,
+ 1175407643039512385ull, 4190889531107197957ull}},
+ {{2827732874186878940ull, 2484228053439063302ull,
+ 3040472786113389193ull, 2619305956941998723ull}},
+ {{12758038129588374483ull, 7716971085226217031ull,
+ 17635649037923900203ull, 3274132446177498403ull}},
+ {{11335861643558080200ull, 5034527838105383385ull,
+ 17432875278977487350ull, 4092665557721873004ull}},
+ {{167384499582718269ull, 16981637954098028328ull,
+ 1672175012506153785ull, 2557915973576170628ull}},
+ {{209230624478397836ull, 7391989387340371698ull, 2090218765632692232ull,
+ 3197394966970213285ull}},
+ {{9484910317452773103ull, 9239986734175464622ull,
+ 7224459475468253194ull, 3996743708712766606ull}},
+ {{1316382929980595285ull, 10386677727287053293ull,
+ 18350345227449821958ull, 2497964817945479128ull}},
+ {{6257164680903132011ull, 3759975122254040808ull,
+ 4491187460602725832ull, 3122456022431848911ull}},
+ {{7821455851128915013ull, 4699968902817551010ull,
+ 1002298307326019386ull, 3903070028039811139ull}},
+ {{9500095925382959787ull, 7549166582688357285ull,
+ 16767337506574619780ull, 2439418767524881961ull}},
+ {{16486805925156087638ull, 9436458228360446606ull,
+ 7124113827936111013ull, 3049273459406102452ull}},
+ {{11385135369590333740ull, 16407258803877946162ull,
+ 8905142284920138766ull, 3811591824257628065ull}},
+ {{11727395624421346491ull, 5642850733996328447ull,
+ 17094928974143556489ull, 2382244890161017540ull}},
+ {{10047558512099295210ull, 11665249435922798463ull,
+ 2921917143969893995ull, 2977806112701271926ull}},
+ {{7947762121696731109ull, 9969875776476110175ull,
+ 12875768466817143302ull, 3722257640876589907ull}},
+ {{11884880353701538799ull, 1619486341870180955ull,
+ 5741512282547020612ull, 2326411025547868692ull}},
+ {{10244414423699535595ull, 2024357927337726194ull,
+ 7176890353183775765ull, 2908013781934835865ull}},
+ {{3582145992769643685ull, 7142133427599545647ull,
+ 13582798959907107610ull, 3635017227418544831ull}},
+ {{18312740546244218319ull, 18151038821354207866ull,
+ 12366812681456496608ull, 4543771534273181039ull}},
+ {{16057148859830024353ull, 11344399263346379916ull,
+ 14646786953551392236ull, 2839857208920738149ull}},
+ {{1624692001077978825ull, 14180499079182974896ull,
+ 4473425636657076583ull, 3549821511150922687ull}},
+ {{2030865001347473532ull, 13113937830551330716ull,
+ 980096027393957825ull, 4437276888938653359ull}},
+ {{10492662662696946765ull, 1278682116453499841ull,
+ 7530089044762305497ull, 2773298055586658349ull}},
+ {{17727514346798571361ull, 6210038663994262705ull,
+ 14024297324380269775ull, 3466622569483322936ull}},
+ {{8324334878216050489ull, 3150862311565440478ull,
+ 17530371655475337219ull, 4333278211854153670ull}},
+ {{591023280457643652ull, 18110190009224257963ull,
+ 6344796266244697857ull, 2708298882408846044ull}},
+ {{14573837155854218276ull, 8802679456248158741ull,
+ 7930995332805872322ull, 3385373603011057555ull}},
+ {{4382238389535609133ull, 1779977283455422619ull,
+ 5302058147579952499ull, 4231717003763821944ull}},
+ {{433055984246061757ull, 17253386866655496801ull,
+ 3313786342237470311ull, 2644823127352388715ull}},
+ {{5153005998734965100ull, 16955047564891983097ull,
+ 17977290983079001601ull, 3306028909190485893ull}},
+ {{11052943516846094278ull, 7358751400832815159ull,
+ 8636555673566588290ull, 4132536136488107367ull}},
+ {{13825618725669890780ull, 9210905643947897378ull,
+ 12315376323620199537ull, 2582835085305067104ull}},
+ {{8058651370232587667ull, 16125318073362259627ull,
+ 15394220404525249421ull, 3228543856631333880ull}},
+ {{5461628194363346680ull, 6321589536420660822ull, 796031431947010161ull,
+ 4035679820789167351ull}},
+ {{17248575676759255387ull, 15480208506331382773ull,
+ 7415048672607963206ull, 2522299887993229594ull}},
+ {{7725661540666905522ull, 10126888596059452659ull, 45438803905178200ull,
+ 3152874859991536993ull}},
+ {{5045390907406243998ull, 12658610745074315824ull,
+ 4668484523308860654ull, 3941093574989421241ull}},
+ {{3153369317128902499ull, 3299945697244059486ull,
+ 14447017873136507669ull, 2463183484368388275ull}},
+ {{13165083683265903932ull, 8736618139982462261ull,
+ 13447086322993246682ull, 3078979355460485344ull}},
+ {{2621296548800216202ull, 1697400638123302019ull,
+ 16808857903741558353ull, 3848724194325606680ull}},
+ {{17779211407495992791ull, 12590090444895533521ull,
+ 10505536189838473970ull, 2405452621453504175ull}},
+ {{8388956204087827276ull, 6514241019264641094ull,
+ 8520234218870704559ull, 3006815776816880219ull}},
+ {{1262823218255008287ull, 3531115255653413464ull,
+ 6038606755160992795ull, 3758519721021100274ull}},
+ {{789264511409380180ull, 18347848099279241079ull,
+ 8385815240403008400ull, 2349074825638187671ull}},
+ {{14821638694543888936ull, 4488066050389499732ull,
+ 5870583032076372597ull, 2936343532047734589ull}},
+ {{80304294470309554ull, 10221768581414262570ull,
+ 11949914808522853650ull, 3670429415059668236ull}},
+ {{9323752404942662751ull, 3553838689913052404ull,
+ 14937393510653567063ull, 4588036768824585295ull}},
+ {{15050717289943940027ull, 9138678208836739608ull,
+ 16253399971799561270ull, 2867522980515365809ull}},
+ {{366652538720373418ull, 2199975724191148703ull, 6481691909467287876ull,
+ 3584403725644207262ull}},
+ {{14293373728682630485ull, 2749969655238935878ull,
+ 17325486923688885653ull, 4480504657055259077ull}},
+ {{4321672561999256149ull, 4024574043738028876ull,
+ 13134272336519247485ull, 2800315410659536923ull}},
+ {{5402090702499070186ull, 9642403573099923999ull,
+ 11806154402221671452ull, 3500394263324421154ull}},
+ {{2140927359696449829ull, 12053004466374904999ull,
+ 5534320965922313507ull, 4375492829155526443ull}},
+ {{8255608627451362999ull, 5227284782270621672ull,
+ 1153107594487751990ull, 2734683018222204027ull}},
+ {{10319510784314203749ull, 15757478014693052898ull,
+ 15276442548391853699ull, 3418353772777755033ull}},
+ {{3676016443537978878ull, 15085161499938928219ull,
+ 5260495130207653412ull, 4272942215972193792ull}},
+ {{18438411341707094463ull, 204853900607054328ull,
+ 3287809456379783383ull, 2670588884982621120ull}},
+ {{4601270103424316462ull, 14091125431040981623ull,
+ 4109761820474729228ull, 3338236106228276400ull}},
+ {{1139901610853007674ull, 17613906788801227029ull,
+ 5137202275593411535ull, 4172795132785345500ull}},
+ {{3018281515996823748ull, 17926220770641848749ull,
+ 12434123459100658017ull, 2607996957990840937ull}},
+ {{8384537913423417589ull, 8572717908020147224ull,
+ 1707596268593658810ull, 3259996197488551172ull}},
+ {{10480672391779271987ull, 1492525348170408222ull,
+ 2134495335742073513ull, 4074995246860688965ull}},
+ {{1938734226434657088ull, 12462043388674974899ull,
+ 3639902594052489897ull, 2546872029287930603ull}},
+ {{16258475838325485072ull, 1742496180561554911ull,
+ 18384936297847776084ull, 3183590036609913253ull}},
+ {{15711408779479468435ull, 2178120225701943639ull,
+ 9146112317027556393ull, 3979487545762391567ull}},
+ {{16737159514815749628ull, 12890540187132184534ull,
+ 12633849225783304601ull, 2487179716101494729ull}},
+ {{11698077356664911227ull, 2278117178633066956ull,
+ 1957253476946967040ull, 3108974645126868412ull}},
+ {{14622596695831139034ull, 2847646473291333695ull,
+ 2446566846183708800ull, 3886218306408585515ull}},
+ {{16056651962535543752ull, 1779779045807083559ull,
+ 17670005343360675664ull, 2428886441505365946ull}},
+ {{15459128934742041786ull, 2224723807258854449ull,
+ 12864134642346068772ull, 3036108051881707433ull}},
+ {{5488853113145388521ull, 2780904759073568062ull,
+ 2245110247650422253ull, 3795135064852134292ull}},
+ {{17265591250998031538ull, 4043908483634673990ull,
+ 10626565941636289716ull, 2371959415532583932ull}},
+ {{12358617026892763614ull, 5054885604543342488ull,
+ 13283207427045362145ull, 2964949269415729915ull}},
+ {{15448271283615954517ull, 10930293024106566014ull,
+ 11992323265379314777ull, 3706186586769662394ull}},
+ {{5043483533832583670ull, 18360648186135073519ull,
+ 12106888059289459639ull, 2316366616731038996ull}},
+ {{1692668398863341683ull, 18339124214241453995ull,
+ 15133610074111824549ull, 2895458270913798745ull}},
+ {{15950893553861340815ull, 9088847212519653781ull,
+ 5081954537357616975ull, 3619322838642248432ull}},
+ {{6103558887044512307ull, 6749372997222179323ull,
+ 6352443171697021219ull, 4524153548302810540ull}},
+ {{1508881295189126240ull, 1912515114050168125ull,
+ 13193649019165414070ull, 2827595967689256587ull}},
+ {{6497787637413795704ull, 11614015929417485964ull,
+ 11880375255529379683ull, 3534494959611570734ull}},
+ {{8122234546767244630ull, 9905833893344469551ull,
+ 5627097032556948796ull, 4418118699514463418ull}},
+ {{11993925619370609750ull, 15414518220195069277ull,
+ 8128621663775480901ull, 2761324187196539636ull}},
+ {{1157348968931098475ull, 5433089719961672885ull,
+ 10160777079719351127ull, 3451655233995674545ull}},
+ {{6058372229591260998ull, 2179676131524703202ull,
+ 17312657368076576813ull, 4314569042494593181ull}},
+ {{8398168661921926028ull, 3668140591416633453ull,
+ 13126253864261554460ull, 2696605651559120738ull}},
+ {{15109396845829795439ull, 4585175739270791816ull,
+ 7184445293472167267ull, 3370757064448900923ull}},
+ {{440001983577692682ull, 1119783655661101867ull, 4368870598412821180ull,
+ 4213446330561126154ull}},
+ {{16415902304231915591ull, 9923236821642964474ull,
+ 7342230142435401141ull, 2633403956600703846ull}},
+ {{11296505843435118680ull, 17015732045481093497ull,
+ 18401159714899027234ull, 3291754945750879807ull}},
+ {{285574249011734638ull, 12046293019996591064ull,
+ 18389763625196396139ull, 4114693682188599759ull}},
+ {{178483905632334149ull, 5223090128284175463ull,
+ 18411131293388829443ull, 2571683551367874849ull}},
+ {{14058162937322581398ull, 1917176641927831424ull,
+ 9178856061453873092ull, 3214604439209843562ull}},
+ {{17572703671653226747ull, 2396470802409789280ull,
+ 2250198039962565557ull, 4018255549012304453ull}},
+ {{10982939794783266717ull, 3803637260719812252ull,
+ 3712216784190297425ull, 2511409718132690283ull}},
+ {{13728674743479083397ull, 9366232594327153219ull, 28584961810483877ull,
+ 3139262147665862854ull}},
+ {{12549157410921466342ull, 16319476761336329428ull,
+ 9259103239117880654ull, 3924077684582328567ull}},
+ {{17066595418680692272ull, 5587986957407817988ull,
+ 12704468552089757265ull, 2452548552863955354ull}},
+ {{2886500199641313723ull, 11596669715187160390ull,
+ 6657213653257420773ull, 3065685691079944193ull}},
+ {{12831497286406417962ull, 660779088701786775ull,
+ 12933203084999163871ull, 3832107113849930241ull}},
+ {{14937214831645093083ull, 7330515958079698590ull,
+ 1165722900483395563ull, 2395066946156206401ull}},
+ {{9448146502701590545ull, 4551458929172235334ull,
+ 6068839644031632358ull, 2993833682695258001ull}},
+ {{2586811091522212373ull, 14912695698320069976ull,
+ 12197735573466928351ull, 3742292103369072501ull}},
+ {{1616756932201382733ull, 16237963839091125591ull,
+ 9929427742630524171ull, 2338932564605670313ull}},
+ {{15856004220533892129ull, 15685768780436519084ull,
+ 17023470696715543118ull, 2923665705757087891ull}},
+ {{1373261201957813545ull, 10383838938690873048ull,
+ 16667652352467040994ull, 3654582132196359864ull}},
+ {{1716576502447266931ull, 3756426636508815502ull,
+ 2387821366874249627ull, 4568227665245449831ull}},
+ {{14907918369311705544ull, 41923638604315736ull, 8409917381937487873ull,
+ 2855142290778406144ull}},
+ {{188153887930080314ull, 4664090566682782575ull,
+ 10512396727421859841ull, 3568927863473007680ull}},
+ {{14070250415194764104ull, 10441799226780866122ull,
+ 13140495909277324801ull, 4461159829341259600ull}},
+ {{13405592527924115469ull, 18055339562806511086ull,
+ 8212809943298328000ull, 2788224893338287250ull}},
+ {{7533618623050368528ull, 4122430379798587242ull,
+ 1042640392268134193ull, 3485281116672859063ull}},
+ {{193651241958184852ull, 9764723993175621957ull,
+ 15138358545617331453ull, 4356601395841073828ull}},
+ {{2426875035437559485ull, 8408795504948457675ull, 238102054156056350ull,
+ 2722875872400671143ull}},
+ {{16868651849579113068ull, 1287622344330796285ull,
+ 14132685622977234150ull, 3403594840500838928ull}},
+ {{7250756756691727623ull, 10832899967268271165ull,
+ 17665857028721542687ull, 4254493550626048660ull}},
+ {{6837565982146023717ull, 13688091507183751334ull,
+ 1817788606096188371ull, 2659058469141280413ull}},
+ {{17770329514537305454ull, 12498428365552301263ull,
+ 6883921776047623368ull, 3323823086426600516ull}},
+ {{17601225874744243913ull, 15623035456940376579ull,
+ 8604902220059529210ull, 4154778858033250645ull}},
+ {{8694923162501458494ull, 14376083179015123266ull,
+ 7683906896750899708ull, 2596736786270781653ull}},
+ {{1645281916272047309ull, 17970103973768904083ull,
+ 14216569639366012539ull, 3245920982838477066ull}},
+ {{15891660450622222848ull, 17850943948783742199ull,
+ 8547340012352739866ull, 4057401228548096333ull}},
+ {{16849816809279971136ull, 15768525986417226778ull,
+ 7647930516934156368ull, 2535875767842560208ull}},
+ {{11838898974745188112ull, 1263913409311981857ull,
+ 9559913146167695461ull, 3169844709803200260ull}},
+ {{963565663149321428ull, 6191577780067365226ull,
+ 11949891432709619326ull, 3962305887254000325ull}},
+ {{5213914557895713797ull, 17704794167824266978ull,
+ 9774525154657206030ull, 2476441179533750203ull}},
+ {{15740765234224418054ull, 12907620672925557914ull,
+ 7606470424894119634ull, 3095551474417187754ull}},
+ {{10452584505925746759ull, 6911153804302171585ull,
+ 284715994262873735ull, 3869439343021484693ull}},
+ {{18062080362272061485ull, 11237000155329939096ull,
+ 2483790505627990036ull, 2418399589388427933ull}},
+ {{4130856379130525240ull, 14046250194162423871ull,
+ 7716424150462375449ull, 3022999486735534916ull}},
+ {{551884455485768646ull, 3722754687420866127ull, 9645530188077969312ull,
+ 3778749358419418645ull}},
+ {{7262456812319687260ull, 2326721679638041329ull,
+ 8334299376762424772ull, 2361718349012136653ull}},
+ {{13689757033826996978ull, 2908402099547551661ull,
+ 15029560239380418869ull, 2952147936265170816ull}},
+ {{3277138237001582511ull, 8247188642861827481ull, 340206225515971970ull,
+ 3690184920331463521ull}},
+ {{13577426444194458830ull, 9766178920216030079ull,
+ 11741843937015952241ull, 2306365575207164700ull}},
+ {{12360097036815685633ull, 16819409668697425503ull,
+ 14677304921269940301ull, 2882956969008955875ull}},
+ {{10838435277592219137ull, 7189204030589618167ull,
+ 13734945133160037473ull, 3603696211261194844ull}},
+ {{8936358078562886017ull, 13598191056664410613ull,
+ 17168681416450046841ull, 4504620264076493555ull}},
+ {{7891066808315497713ull, 1581340382774174777ull,
+ 8424582876067585324ull, 2815387665047808472ull}},
+ {{14475519528821760045ull, 1976675478467718471ull,
+ 10530728595084481655ull, 3519234581309760590ull}},
+ {{13482713392599812152ull, 16305902403366811801ull,
+ 3940038707000826260ull, 4399043226637200738ull}},
+ {{1509166842733800739ull, 967816965249481568ull, 7074210210302904317ull,
+ 2749402016648250461ull}},
+ {{1886458553417250924ull, 5821457224989239864ull,
+ 13454448781306018300ull, 3436752520810313076ull}},
+ {{2358073191771563655ull, 7276821531236549830ull,
+ 16818060976632522875ull, 4295940651012891345ull}},
+ {{15308853800139390996ull, 2242170447809149691ull,
+ 3593759082754244941ull, 2684962906883057091ull}},
+ {{14524381231746850841ull, 7414399078188825018ull,
+ 18327256908724969888ull, 3356203633603821363ull}},
+ {{8932104502828787743ull, 9267998847736031273ull,
+ 18297385117478824456ull, 4195254542004776704ull}},
+ {{17111780360336462100ull, 5792499279835019545ull,
+ 11435865698424265285ull, 2622034088752985440ull}},
+ {{7554667395138413913ull, 11852310118221162336ull,
+ 14294832123030331606ull, 3277542610941231800ull}},
+ {{9443334243923017391ull, 5592015610921677112ull,
+ 17868540153787914508ull, 4096928263676539750ull}},
+ {{5902083902451885869ull, 12718381793680824003ull,
+ 6556151577690058663ull, 2560580164797837344ull}},
+ {{2765918859637469433ull, 11286291223673642100ull,
+ 8195189472112573329ull, 3200725205997296680ull}},
+ {{3457398574546836791ull, 272805974309888913ull,
+ 10243986840140716662ull, 4000906507496620850ull}},
+ {{13690089155160242754ull, 14005561789225844282ull,
+ 11014177793515335817ull, 2500566567185388031ull}},
+ {{7889239407095527635ull, 3671894181250141641ull,
+ 9156036223466781868ull, 3125708208981735039ull}},
+ {{14473235277296797447ull, 4589867726562677051ull,
+ 6833359260906089431ull, 3907135261227168799ull}},
+ {{6739929039096804453ull, 9786196356742755013ull,
+ 11188378565707387750ull, 2441959538266980499ull}},
+ {{13036597317298393470ull, 3009373409073667958ull,
+ 9373787188706846784ull, 3052449422833725624ull}},
+ {{7072374609768216029ull, 3761716761342084948ull,
+ 11717233985883558480ull, 3815561778542157030ull}},
+ {{13643606167959910826ull, 2351072975838803092ull,
+ 2711585222749836146ull, 2384726111588848144ull}},
+ {{17054507709949888533ull, 12162213256653279673ull,
+ 3389481528437295182ull, 2980907639486060180ull}},
+ {{7483076582155196954ull, 5979394533961823784ull,
+ 4236851910546618978ull, 3726134549357575225ull}},
+ {{4676922863846998096ull, 8348807602153527769ull,
+ 14177247490160106621ull, 2328834093348484515ull}},
+ {{10457839598236135524ull, 15047695521119297615ull,
+ 13109873344272745372ull, 2911042616685605644ull}},
+ {{8460613479367781501ull, 362875327689570403ull,
+ 16387341680340931716ull, 3638803270857007055ull}},
+ {{5964080830782338973ull, 453594159611963004ull,
+ 15872491081998776741ull, 4548504088571258819ull}},
+ {{12950922556093737666ull, 2589339358971170829ull,
+ 7614463917035541511ull, 2842815055357036762ull}},
+ {{2353595139835008371ull, 17071732253996127249ull,
+ 294707859439651080ull, 3553518819196295953ull}},
+ {{7553679943221148367ull, 2892921243785607445ull,
+ 4980070842726951755ull, 4441898523995369941ull}},
+ {{7026892973726911682ull, 17948976841861862317ull,
+ 5418387285918038798ull, 2776186577497106213ull}},
+ {{13395302235586027506ull, 13212849015472552088ull,
+ 11384670125824936402ull, 3470233221871382766ull}},
+ {{16744127794482534382ull, 7292689232485914302ull,
+ 5007465620426394695ull, 4337791527339228458ull}},
+ {{5853393853124196085ull, 11475459797944778295ull,
+ 7741352031193884588ull, 2711119704587017786ull}},
+ {{2705056297977857202ull, 14344324747430972869ull,
+ 453318002137579927ull, 3388899630733772233ull}},
+ {{7993006390899709407ull, 13318719915861328182ull,
+ 5178333521099362813ull, 4236124538417215291ull}},
+ {{383942975884930475ull, 10630042956627024066ull, 930615441473407806ull,
+ 2647577836510759557ull}},
+ {{9703300756710938902ull, 4064181658929004274ull,
+ 5774955320269147662ull, 3309472295638449446ull}},
+ {{2905753909033897819ull, 14303599110516031151ull,
+ 16442066187191210385ull, 4136840369548061807ull}},
+ {{8733625220787267993ull, 2022220416431437613ull,
+ 17193820394635588347ull, 2585525230967538629ull}},
+ {{15528717544411472896ull, 16362833575821460728ull,
+ 7657217438012321721ull, 3231906538709423287ull}},
+ {{964152856804789503ull, 6618483914494662199ull, 4959835779088014248ull,
+ 4039883173386779109ull}},
+ {{7520124563144075296ull, 4136552446559163874ull,
+ 5405740371143702857ull, 2524926983366736943ull}},
+ {{176783667075318312ull, 9782376576626342747ull, 2145489445502240667ull,
+ 3156158729208421179ull}},
+ {{14056037639126311601ull, 7616284702355540529ull,
+ 16516919862159964546ull, 3945198411510526473ull}},
+ {{1867494496812862895ull, 9371863957399600735ull,
+ 3405545886208895985ull, 2465749007194079046ull}},
+ {{16169426176298242331ull, 16326515965176888822ull,
+ 13480304394615895789ull, 3082186258992598807ull}},
+ {{10988410683518027105ull, 6573086901188947316ull,
+ 12238694474842481833ull, 3852732823740748509ull}},
+ {{16091128714053542749ull, 15637394359311561832ull,
+ 9955027055990245097ull, 2407958014837967818ull}},
+ {{1667166818857376820ull, 5711684893857288579ull,
+ 3220411783133030564ull, 3009947518547459773ull}},
+ {{15919016578853884737ull, 7139606117321610723ull,
+ 8637200747343676109ull, 3762434398184324716ull}},
+ {{7643542352569984009ull, 6768096832539700654ull,
+ 14621622503944573376ull, 2351521498865202947ull}},
+ {{331055903857704203ull, 8460121040674625818ull,
+ 13665342111503328816ull, 2939401873581503684ull}},
+ {{9637191916676906061ull, 10575151300843282272ull,
+ 17081677639379161020ull, 3674252341976879605ull}},
+ {{12046489895846132577ull, 13218939126054102840ull,
+ 7517038993941787563ull, 4592815427471099507ull}},
+ {{7529056184903832861ull, 5955993944570120323ull,
+ 2392306361999923275ull, 2870509642169437192ull}},
+ {{4799634212702403172ull, 2833306412285262500ull,
+ 2990382952499904094ull, 3588137052711796490ull}},
+ {{5999542765878003964ull, 12765005052211353933ull,
+ 12961350727479655925ull, 4485171315889745612ull}},
+ {{6055557237887446430ull, 10283971166845790160ull,
+ 17324216241529560761ull, 2803232072431091007ull}},
+ {{7569446547359308037ull, 17466649976984625604ull,
+ 17043584283484563047ull, 3504040090538863759ull}},
+ {{9461808184199135046ull, 17221626452803394101ull,
+ 16692794335928315905ull, 4380050113173579699ull}},
+ {{8219473124338153356ull, 3845987505361039457ull,
+ 8127153450741503489ull, 2737531320733487312ull}},
+ {{14886027423850079599ull, 9419170400128687225ull,
+ 10158941813426879361ull, 3421914150916859140ull}},
+ {{4772476224530435787ull, 16385649018588246936ull,
+ 12698677266783599201ull, 4277392688646073925ull}},
+ {{2982797640331522367ull, 3323501608976572479ull,
+ 10242516300953443453ull, 2673370430403796203ull}},
+ {{17563555105696566671ull, 8766063029648103502ull,
+ 8191459357764416412ull, 3341713038004745254ull}},
+ {{12731071845265932530ull, 10957578787060129378ull,
+ 1015952160350744707ull, 4177141297505931568ull}},
+ {{12568605921718595735ull, 4542643732698886909ull,
+ 634970100219215442ull, 2610713310941207230ull}},
+ {{1875699346866080957ull, 14901676702728384445ull,
+ 10017084662128795110ull, 3263391638676509037ull}},
+ {{6956310202009989100ull, 9403723841555704748ull,
+ 17133041846088381792ull, 4079239548345636296ull}},
+ {{13571065913111018996ull, 5877327400972315467ull,
+ 10708151153805238620ull, 2549524717716022685ull}},
+ {{12352146372961385841ull, 7346659251215394334ull,
+ 17996874960683936179ull, 3186905897145028356ull}},
+ {{6216810929346956493ull, 4571638045591855014ull,
+ 4049349627145368608ull, 3983632371431285446ull}},
+ {{17720564886124011520ull, 2857273778494909383ull,
+ 16365901572248019092ull, 2489770232144553403ull}},
+ {{17539020089227626496ull, 3571592223118636729ull,
+ 15845690946882635961ull, 3112212790180691754ull}},
+ {{8088717056252369408ull, 9076176297325683816ull,
+ 10583741646748519143ull, 3890265987725864693ull}},
+ {{5055448160157730880ull, 12590139213469634241ull,
+ 8920681538431518416ull, 2431416242328665433ull}},
+ {{10930996218624551504ull, 15737674016837042801ull,
+ 15762537941466785924ull, 3039270302910831791ull}},
+ {{18275431291708077284ull, 1225348447336751885ull,
+ 15091486408406094502ull, 3799087878638539739ull}},
+ {{13727987566531242255ull, 14600900834867633640ull,
+ 7126335996040115111ull, 2374429924149087337ull}},
+ {{17159984458164052818ull, 13639440025157154146ull,
+ 13519606013477531793ull, 2968037405186359171ull}},
+ {{12226608535850290215ull, 3214241976164278971ull,
+ 12287821498419526838ull, 3710046756482948964ull}},
+ {{5335787325692737432ull, 15843959290384838069ull,
+ 16903260473366980081ull, 2318779222801843102ull}},
+ {{11281420175543309694ull, 5969891057698883874ull,
+ 11905703554853949294ull, 2898474028502303878ull}},
+ {{4878403182574361310ull, 16685735858978380651ull,
+ 5658757406712660809ull, 3623092535627879848ull}},
+ {{1486317959790563733ull, 7022111768440812102ull,
+ 7073446758390826012ull, 4528865669534849810ull}},
+ {{14764006780151266045ull, 13612191892130283371ull,
+ 9032590242421654161ull, 2830541043459281131ull}},
+ {{13843322456761694653ull, 3180181809880690502ull,
+ 6679051784599679798ull, 3538176304324101414ull}},
+ {{8080781034097342508ull, 13198599299205638936ull,
+ 17572186767604375555ull, 4422720380405126767ull}},
+ {{5050488146310839068ull, 5943281552789830383ull,
+ 17900145757393816578ull, 2764200237753204229ull}},
+ {{1701424164461160930ull, 16652473977842063787ull,
+ 8540124141460107010ull, 3455250297191505287ull}},
+ {{15961838260858614875ull, 11592220435447803925ull,
+ 6063469158397745859ull, 4319062871489381609ull}},
+ {{12281991922250328249ull, 4939294762941183501ull,
+ 15318883270067060922ull, 2699414294680863505ull}},
+ {{1517431847530746599ull, 15397490490531255185ull,
+ 5313546032301662440ull, 3374267868351079382ull}},
+ {{6508475827840821153ull, 800119039454517365ull,
+ 15865304577231853859ull, 4217834835438849227ull}},
+ {{6373640401614207173ull, 16640975464154931017ull,
+ 7609972351556214709ull, 2636146772149280767ull}},
+ {{12578736520445146870ull, 6966161274911500059ull,
+ 4900779421017880483ull, 3295183465186600959ull}},
+ {{11111734632129045683ull, 4096015575211987170ull,
+ 1514288257844962700ull, 4118979331483251199ull}},
+ {{11556520163508041456ull, 11783381771362267789ull,
+ 7863959188794183543ull, 2574362082177031999ull}},
+ {{610592149102888108ull, 10117541195775446833ull,
+ 5218262967565341525ull, 3217952602721289999ull}},
+ {{5374926204805998039ull, 17258612513146696445ull,
+ 1911142691029289002ull, 4022440753401612499ull}},
+ {{5665171887217442726ull, 15398318839144073182ull,
+ 17335365246389163290ull, 2514025470876007811ull}},
+ {{16304836895876579216ull, 10024526512075315669ull,
+ 17057520539559066209ull, 3142531838595009764ull}},
+ {{6545988064563560308ull, 17142344158521532491ull,
+ 2875156600739281145ull, 3928164798243762206ull}},
+ {{1785399531138531240ull, 3796436071434875951ull,
+ 15632030930744214428ull, 2455102998902351378ull}},
+ {{16066807469205327762ull, 4745545089293594938ull,
+ 10316666626575492227ull, 3068878748627939223ull}},
+ {{10860137299651883895ull, 1320245343189605769ull,
+ 8284147264791977380ull, 3836098435784924029ull}},
+ {{18316800858350897195ull, 10048525376348279413ull,
+ 7483435049708679814ull, 2397561522365577518ull}},
+ {{9060943017656457781ull, 3337284683580573459ull, 130921775281073960ull,
+ 2996951902956971898ull}},
+ {{6714492753643184322ull, 4171605854475716824ull,
+ 9387024255956118258ull, 3746189878696214872ull}},
+ {{4196557971026990202ull, 7218939677474710919ull,
+ 5866890159972573911ull, 2341368674185134295ull}},
+ {{634011445356349848ull, 4411988578416000745ull, 2721926681538329485ull,
+ 2926710842731417869ull}},
+ {{5404200325122825214ull, 10126671741447388835ull,
+ 8014094370350299760ull, 3658388553414272336ull}},
+ {{2143564387976143613ull, 12658339676809236044ull,
+ 10017617962937874700ull, 4572985691767840420ull}},
+ {{10563099779339865566ull, 17134834334860548335ull,
+ 15484383263690947495ull, 2858116057354900262ull}},
+ {{8592188705747444054ull, 16806856900148297515ull,
+ 10132107042758908561ull, 3572645071693625328ull}},
+ {{6128549863756917163ull, 7173513069903208182ull,
+ 12665133803448635702ull, 4465806339617031660ull}},
+ {{17665401720130236939ull, 18318503723971668825ull,
+ 17139080664010173121ull, 2791128962260644787ull}},
+ {{8246694094880632462ull, 9063071599682422320ull,
+ 16812164811585328498ull, 3488911202825805984ull}},
+ {{10308367618600790577ull, 2105467462748252092ull,
+ 2568461940772109007ull, 4361139003532257481ull}},
+ {{15666101798480269919ull, 8233446191858739413ull,
+ 13134503759051037889ull, 2725711877207660925ull}},
+ {{5747569192818173686ull, 14903493758250812171ull,
+ 2583071643531633649ull, 3407139846509576157ull}},
+ {{2572775472595329204ull, 4794309142531351502ull,
+ 7840525572841929966ull, 4258924808136970196ull}},
+ {{15443042725654244465ull, 16831501269364258400ull,
+ 14123700519880982036ull, 2661828005085606372ull}},
+ {{857059333358253965ull, 2592632512995771385ull,
+ 17654625649851227546ull, 3327285006357007965ull}},
+ {{5683010185125205360ull, 12464162678099490039ull,
+ 8233224007031870720ull, 4159106257946259957ull}},
+ {{10469410393344335206ull, 7790101673812181274ull,
+ 7451608013608613152ull, 2599441411216412473ull}},
+ {{3863390954825643199ull, 9737627092265226593ull,
+ 13926196035438154344ull, 3249301764020515591ull}},
+ {{9440924711959441903ull, 12172033865331533241ull,
+ 12796059025870305026ull, 4061627205025644489ull}},
+ {{17429792991043120950ull, 12219207184259596179ull,
+ 1080007863527858785ull, 2538517003141027806ull}},
+ {{17175555220376513283ull, 1438950925042331512ull,
+ 10573381866264599290ull, 3173146253926284757ull}},
+ {{3022699951761089987ull, 11022060693157690199ull,
+ 17828413351258137016ull, 3966432817407855946ull}},
+ {{8806716497491763098ull, 6888787933223556374ull,
+ 15754444362963723539ull, 2479020510879909966ull}},
+ {{1785023585009928065ull, 3999298898102057564ull,
+ 10469683416849878616ull, 3098775638599887458ull}},
+ {{2231279481262410081ull, 4999123622627571955ull,
+ 3863732234207572462ull, 3873469548249859323ull}},
+ {{17535450740284863965ull, 16959510319424396183ull,
+ 108989637166038836ull, 2420918467656162077ull}},
+ {{17307627406928692052ull, 2752643825570943613ull,
+ 4747923064884936450ull, 3026148084570202596ull}},
+ {{7799476203378701353ull, 12664176818818455325ull,
+ 5934903831106170562ull, 3782685105712753245ull}},
+ {{7180515636325382298ull, 12526796530188922482ull,
+ 6015157903655050553ull, 2364178191070470778ull}},
+ {{18199016582261503680ull, 1823437607453989390ull,
+ 16742319416423589000ull, 2955222738838088472ull}},
+ {{13525398690972103792ull, 2279297009317486738ull,
+ 2481155196819934634ull, 3694028423547610591ull}},
+ {{13065060200284952774ull, 6036246649250817115ull,
+ 8468251025653541002ull, 2308767764717256619ull}},
+ {{11719639231928803063ull, 16768680348418297202ull,
+ 5973627763639538348ull, 2885959705896570774ull}},
+ {{5426177003056228021ull, 2514106361813319887ull,
+ 16690406741404198744ull, 3607449632370713467ull}},
+ {{2171035235392897122ull, 3142632952266649859ull,
+ 16251322408327860526ull, 4509312040463391834ull}},
+ {{17497798086616418366ull, 15799203650448819873ull,
+ 14768762523632300732ull, 2818320025289619896ull}},
+ {{8037189552988359245ull, 1302260489351473226ull, 14209080830824300ull,
+ 3522900031612024871ull}},
+ {{823114904380673248ull, 1627825611689341533ull,
+ 13852819406320694087ull, 4403625039515031088ull}},
+ {{2820289824451614732ull, 7934920034946920314ull,
+ 8658012128950433804ull, 2752265649696894430ull}},
+ {{12748734317419294223ull, 9918650043683650392ull,
+ 1599143124333266447ull, 3440332062121118038ull}},
+ {{15935917896774117779ull, 7786626536177175086ull,
+ 11222300942271358867ull, 4300415077651397547ull}},
+ {{5348262667056435708ull, 2560798575897040477ull,
+ 4708095079705905340ull, 2687759423532123467ull}},
+ {{11297014352247932539ull, 3200998219871300596ull,
+ 1273432831204993771ull, 3359699279415154334ull}},
+ {{14121267940309915673ull, 17836305830121289457ull,
+ 10815163075861018021ull, 4199624099268942917ull}},
+ {{1908263435052615440ull, 13453534153039499863ull,
+ 9065319931626830215ull, 2624765062043089323ull}},
+ {{16220387349097933012ull, 12205231672871986924ull,
+ 6719963896106149865ull, 3280956327553861654ull}},
+ {{1828740112662864649ull, 1421481535807819944ull,
+ 17623326906987463140ull, 4101195409442327067ull}},
+ {{1142962570414290406ull, 10111797996734663273ull,
+ 8708736307653470510ull, 2563247130901454417ull}},
+ {{6040389231445250911ull, 3416375459063553283ull,
+ 15497606402994226042ull, 3204058913626818021ull}},
+ {{2938800520879175735ull, 13493841360684217412ull,
+ 5536949948460618840ull, 4005073642033522527ull}},
+ {{11060122362404260642ull, 8433650850427635882ull,
+ 10378122745428968631ull, 2503171026270951579ull}},
+ {{4601780916150549995ull, 5930377544607156949ull,
+ 8360967413358822885ull, 3128963782838689474ull}},
+ {{10363912163615575397ull, 12024657949186334090ull,
+ 1227837229843752798ull, 3911204728548361843ull}},
+ {{11089131120687122527ull, 2903725199814070902ull,
+ 16908299333148203163ull, 2444502955342726151ull}},
+ {{4638041864004127351ull, 17464714555049752340ull,
+ 16523688148007866049ull, 3055628694178407689ull}},
+ {{5797552330005159189ull, 7995835138530026713ull,
+ 6819552129727668850ull, 3819535867723009612ull}},
+ {{15152685252321694253ull, 9609082980008654599ull,
+ 13485592117934568839ull, 2387209917326881007ull}},
+ {{14329170546974729912ull, 7399667706583430345ull,
+ 12245304128990823145ull, 2984012396658601259ull}},
+ {{4076405128436248678ull, 13861270651656675836ull,
+ 10694944142811141027ull, 3730015495823251574ull}},
+ {{11771125242127431232ull, 6357451148071728445ull,
+ 2072654070829575238ull, 2331259684889532234ull}},
+ {{878848497377125328ull, 17170185971944436365ull,
+ 11814189625391744855ull, 2914074606111915292ull}},
+ {{5710246640148794564ull, 16851046446503157552ull,
+ 14767737031739681069ull, 3642593257639894115ull}},
+ {{7137808300185993205ull, 7228750002846783228ull,
+ 13847985271247213433ull, 4553241572049867644ull}},
+ {{13684502224471021561ull, 16047183797847709277ull,
+ 17878362831384284203ull, 2845775982531167277ull}},
+ {{3270569725306613239ull, 15447293728882248693ull,
+ 8512895483948191542ull, 3557219978163959097ull}},
+ {{8699898175060654453ull, 10085745124248035058ull,
+ 15252805373362627332ull, 4446524972704948871ull}},
+ {{10049122377840296937ull, 15526962739509797719ull,
+ 16450532385992723938ull, 2779078107940593044ull}},
+ {{7949716953872983268ull, 10185331387532471341ull,
+ 2116421408781353307ull, 3473847634925741306ull}},
+ {{14548832210768616988ull, 8119978215988201272ull,
+ 11868898797831467442ull, 4342309543657176632ull}},
+ {{9093020131730385618ull, 9686672403420013699ull,
+ 7418061748644667151ull, 2713943464785735395ull}},
+ {{6754589146235594118ull, 7496654485847629220ull,
+ 4660891167378446035ull, 3392429330982169244ull}},
+ {{8443236432794492648ull, 4759132088882148621ull,
+ 5826113959223057544ull, 4240536663727711555ull}},
+ {{7582865779710251857ull, 2974457555551342888ull,
+ 1335478215300717013ull, 2650335414829819722ull}},
+ {{9478582224637814821ull, 8329757962866566514ull,
+ 10892719805980672074ull, 3312919268537274652ull}},
+ {{2624855743942492718ull, 1188825416728432335ull,
+ 13615899757475840093ull, 4141149085671593315ull}},
+ {{8558063867605139805ull, 3048858894668964161ull,
+ 6204094339208706106ull, 2588218178544745822ull}},
+ {{15309265852933812660ull, 13034445655190981009ull,
+ 16978489960865658440ull, 3235272723180932277ull}},
+ {{5301524260885102113ull, 16293057068988726262ull,
+ 7388054395799909338ull, 4044090903976165347ull}},
+ {{17148510718335352533ull, 14794846686545341817ull,
+ 2311690988161249384ull, 2527556814985103342ull}},
+ {{7600580342637026954ull, 46814284472125656ull, 12112985772056337539ull,
+ 3159446018731379177ull}},
+ {{9500725428296283693ull, 13893575910872320782ull,
+ 1306174159788258211ull, 3949307523414223972ull}},
+ {{1326267374257789404ull, 6377641935081506537ull,
+ 10039730886722437190ull, 2468317202133889982ull}},
+ {{6269520236249624659ull, 17195424455706658979ull,
+ 3326291571548270679ull, 3085396502667362478ull}},
+ {{3225214276884642919ull, 16882594551205935820ull,
+ 13381236501290114157ull, 3856745628334203097ull}},
+ {{11239130959907677633ull, 12857464603717403839ull,
+ 1445743785665239492ull, 2410466017708876936ull}},
+ {{9437227681457209137ull, 16071830754646754799ull,
+ 1807179732081549365ull, 3013082522136096170ull}},
+ {{7184848583394123517ull, 6254730388026279787ull,
+ 11482346701956712515ull, 3766353152670120212ull}},
+ {{2184687355407633246ull, 1603363483302730915ull,
+ 16399838725577721130ull, 2353970720418825132ull}},
+ {{16565917249541705270ull, 11227576390983189451ull,
+ 2053054333262599796ull, 2942463400523531416ull}},
+ {{16095710543499743683ull, 14034470488728986814ull,
+ 2566317916578249745ull, 3678079250654414270ull}},
+ {{10896266142519903796ull, 3708030055629069806ull,
+ 12431269432577587990ull, 4597599063318017837ull}},
+ {{2198480320647551969ull, 16152576840050332341ull,
+ 10075386404574686445ull, 2873499414573761148ull}},
+ {{7359786419236827865ull, 6355662994780751714ull,
+ 12594233005718358057ull, 3591874268217201435ull}},
+ {{18423105060900810639ull, 12556264761903327546ull,
+ 11131105238720559667ull, 4489842835271501794ull}},
+ {{16126126681490394553ull, 5541822466975885764ull,
+ 11568626792627737696ull, 2806151772044688621ull}},
+ {{1710914278153441576ull, 6927278083719857206ull, 625725435502508408ull,
+ 3507689715055860777ull}},
+ {{11362014884546577777ull, 8659097604649821507ull,
+ 5393842812805523414ull, 4384612143819825971ull}},
+ {{4795416293627917159ull, 800249984478750538ull, 1065308748789758182ull,
+ 2740382589887391232ull}},
+ {{15217642403889672257ull, 10223684517453213980ull,
+ 1331635935987197727ull, 3425478237359239040ull}},
+ {{575308931152538705ull, 8167919628389129572ull, 1664544919983997159ull,
+ 4281847796699048800ull}},
+ {{9582940118825112499ull, 12022478795384287838ull,
+ 1040340574989998224ull, 2676154872936905500ull}},
+ {{2755303111676614815ull, 15028098494230359798ull,
+ 1300425718737497780ull, 3345193591171131875ull}},
+ {{12667500926450544327ull, 338379044078398131ull,
+ 15460590203704035938ull, 4181491988963914843ull}},
+ {{5611345069817896252ull, 4823172920976386736ull,
+ 7357025868101328509ull, 2613432493102446777ull}},
+ {{7014181337272370315ull, 10640652169647871324ull,
+ 13807968353554048540ull, 3266790616378058471ull}},
+ {{8767726671590462894ull, 13300815212059839155ull,
+ 12648274423515172771ull, 4083488270472573089ull}},
+ {{3173986160530345357ull, 6007166498323705520ull, 987642487055901126ull,
+ 2552180169045358181ull}},
+ {{3967482700662931696ull, 16732330159759407708ull,
+ 5846239127247264311ull, 3190225211306697726ull}},
+ {{4959353375828664620ull, 16303726681271871731ull,
+ 16531170945913856197ull, 3987781514133372157ull}},
+ {{793752850679221436ull, 12495672185008613784ull,
+ 12637824850409854075ull, 2492363446333357598ull}},
+ {{992191063349026795ull, 11007904212833379326ull,
+ 6573909026157541786ull, 3115454307916696998ull}},
+ {{10463610866041059301ull, 4536508229186948349ull,
+ 17440758319551703041ull, 3894317884895871247ull}},
+ {{8845599800489356015ull, 14364532689310312478ull,
+ 17818002977360896256ull, 2433948678059919529ull}},
+ {{1833627713756919211ull, 17955665861637890598ull,
+ 8437445666418956608ull, 3042435847574899412ull}},
+ {{11515406679050924822ull, 3997838253337811631ull,
+ 10546807083023695761ull, 3803044809468624265ull}},
+ {{14114658202047909870ull, 14027863954404602029ull,
+ 18120969472958279610ull, 2376903005917890165ull}},
+ {{3808264697277723625ull, 8311457906150976729ull,
+ 8816153785915685801ull, 2971128757397362707ull}},
+ {{9372016890024542435ull, 15001008401116108815ull,
+ 6408506213967219347ull, 3713910946746703384ull}},
+ {{12775039583906420878ull, 7069787241483874057ull,
+ 4005316383729512092ull, 2321194341716689615ull}},
+ {{2133741424600862386ull, 8837234051854842572ull, 394959461234502211ull,
+ 2901492927145862019ull}},
+ {{2667176780751077982ull, 6434856546391165311ull,
+ 14328757381825291476ull, 3626866158932327523ull}},
+ {{17169029031221011189ull, 8043570682988956638ull,
+ 13299260708854226441ull, 4533582698665409404ull}},
+ {{6118957126085744089ull, 16556446722936567659ull,
+ 17535409979888667333ull, 2833489186665880877ull}},
+ {{3037010389179792208ull, 6860500348388545862ull,
+ 8084204419578670455ull, 3541861483332351097ull}},
+ {{13019635023329516067ull, 3963939417058294423ull,
+ 14716941542900725973ull, 4427326854165438871ull}},
+ {{15054800917222029398ull, 4783305144875127966ull,
+ 16115617491954035589ull, 2767079283853399294ull}},
+ {{9595129109672760940ull, 10590817449521297862ull,
+ 10921149828087768678ull, 3458849104816749118ull}},
+ {{2770539350236175367ull, 4015149775046846520ull,
+ 4428065248254935040ull, 4323561381020936398ull}},
+ {{1731587093897609604ull, 2509468609404279075ull,
+ 16602598835441498112ull, 2702225863138085248ull}},
+ {{15999541922654175717ull, 3136835761755348843ull,
+ 2306504470592321024ull, 3377782328922606561ull}},
+ {{15387741384890331743ull, 3921044702194186054ull,
+ 7494816606667789184ull, 4222227911153258201ull}},
+ {{5005652347129069435ull, 2450652938871366284ull,
+ 16213475425235838000ull, 2638892444470786375ull}},
+ {{6257065433911336794ull, 3063316173589207855ull,
+ 15655158263117409596ull, 3298615555588482969ull}},
+ {{3209645773961783088ull, 3829145216986509819ull,
+ 5733889773614598283ull, 4123269444485603712ull}},
+ {{18146929673221972094ull, 87372751402874684ull, 3583681108509123927ull,
+ 2577043402803502320ull}},
+ {{4236918017817913502ull, 13944273994535757068ull,
+ 4479601385636404908ull, 3221304253504377900ull}},
+ {{5296147522272391877ull, 17430342493169696335ull,
+ 5599501732045506135ull, 4026630316880472375ull}},
+ {{10227621229061326779ull, 17811493085872142065ull,
+ 10417217610169523190ull, 2516643948050295234ull}},
+ {{17396212554754046378ull, 13040994320485401773ull,
+ 3798149975857128180ull, 3145804935062869043ull}},
+ {{7910207638160394261ull, 16301242900606752217ull,
+ 136001451394022321ull, 3932256168828586304ull}},
+ {{16473094819918716173ull, 3270747785238138279ull, 85000907121263951ull,
+ 2457660105517866440ull}},
+ {{15979682506471007312ull, 17923492786829836561ull,
+ 106251133901579938ull, 3072075131897333050ull}},
+ {{6139545077806595428ull, 13180993946682519894ull,
+ 9356185954231750731ull, 3840093914871666312ull}},
+ {{17672273728911285855ull, 5932278207462880981ull,
+ 5847616221394844207ull, 2400058696794791445ull}},
+ {{8255284105856943606ull, 2803661740901213323ull,
+ 11921206295170943163ull, 3000073370993489306ull}},
+ {{5707419113893791604ull, 17339635231408680366ull,
+ 5678135832108903145ull, 3750091713741861633ull}},
+ {{17402195001465783465ull, 3919742991989343372ull,
+ 15078049941136534226ull, 2343807321088663520ull}},
+ {{3305999678122677715ull, 14123050776841455024ull,
+ 400818352711116166ull, 2929759151360829401ull}},
+ {{4132499597653347143ull, 8430441434197042972ull,
+ 5112708959316283112ull, 3662198939201036751ull}},
+ {{5165624497066683929ull, 10538051792746303715ull,
+ 1779200180717965986ull, 4577748674001295939ull}},
+ {{922672301452983504ull, 11197968388893827726ull,
+ 17252901177444586405ull, 2861092921250809961ull}},
+ {{10376712413671005187ull, 162402430835120945ull,
+ 7731068416523569295ull, 3576366151563512452ull}},
+ {{17582576535516144388ull, 14038061093826064893ull,
+ 9663835520654461618ull, 4470457689454390565ull}},
+ {{13294953343911284195ull, 13385474202068678462ull,
+ 8345740209622732463ull, 2794036055908994103ull}},
+ {{7395319643034329435ull, 12120156734158460174ull,
+ 5820489243601027675ull, 3492545069886242629ull}},
+ {{20777516938135986ull, 10538509899270687314ull,
+ 11887297572928672498ull, 4365681337357803286ull}},
+ {{4624671966513722895ull, 11198254705471567475ull,
+ 2817874964653032407ull, 2728550835848627054ull}},
+ {{1169153939714765715ull, 9386132363412071440ull,
+ 12745715742671066317ull, 3410688544810783817ull}},
+ {{1461442424643457144ull, 16344351472692477204ull,
+ 2097086623056669184ull, 4263360681013479772ull}},
+ {{10136773552256936523ull, 10215219670432798252ull,
+ 10534051176265194048ull, 2664600425633424857ull}},
+ {{12670966940321170654ull, 12769024588040997815ull,
+ 17779249988758880464ull, 3330750532041781071ull}},
+ {{11227022656974075413ull, 15961280735051247269ull,
+ 17612376467521212676ull, 4163438165052226339ull}},
+ {{9322732169822491085ull, 752428422552253735ull, 8701892282987063971ull,
+ 2602148853157641462ull}},
+ {{7041729193850725953ull, 14775593583472480881ull,
+ 1653993316879054155ull, 3252686066447051828ull}},
+ {{13413847510740795345ull, 13857805960913213197ull,
+ 2067491646098817694ull, 4065857583058814785ull}},
+ {{10689497703426691043ull, 4049442707143370344ull,
+ 12821397324880230819ull, 2541160989411759240ull}},
+ {{13361872129283363803ull, 450117365501825026ull,
+ 16026746656100288524ull, 3176451236764699050ull}},
+ {{7478968124749428946ull, 562646706877281283ull,
+ 10810061283270584847ull, 3970564045955873813ull}},
+ {{2368512068754699139ull, 7269183219439382658ull,
+ 9062131311257809481ull, 2481602528722421133ull}},
+ {{12184012122798149732ull, 13698165042726616226ull,
+ 15939350157499649755ull, 3102003160903026416ull}},
+ {{6006643116642911357ull, 12511020284980882379ull,
+ 1477443623165010578ull, 3877503951128783021ull}},
+ {{1448308938688125646ull, 12431073696540439391ull,
+ 3229245273691825563ull, 2423439969455489388ull}},
+ {{15645444228642320770ull, 10927156102248161334ull,
+ 4036556592114781954ull, 3029299961819361735ull}},
+ {{10333433248948125154ull, 4435573090955425860ull,
+ 434009721716089539ull, 3786624952274202169ull}},
+ {{15681767817447354029ull, 466390172633447210ull,
+ 11800471122141025722ull, 2366640595171376355ull}},
+ {{10378837734954416729ull, 9806359752646584821ull,
+ 10138902884248894248ull, 2958300743964220444ull}},
+ {{17585233187120408815ull, 12257949690808231026ull,
+ 12673628605311117810ull, 3697875929955275555ull}},
+ {{15602456760377643413ull, 12272904575182532295ull,
+ 5615174869105754679ull, 2311172456222047222ull}},
+ {{14891384932044666363ull, 10729444700550777465ull,
+ 16242340623236969157ull, 2888965570277559027ull}},
+ {{4779173109773669241ull, 18023491894115859736ull,
+ 15691239760618823542ull, 3611206962846948784ull}},
+ {{5973966387217086551ull, 13305992830790048862ull,
+ 1167305627063977812ull, 4514008703558685981ull}},
+ {{17568787047292842807ull, 17539617556098556346ull,
+ 3035409026128680084ull, 2821255439724178738ull}},
+ {{12737611772261277700ull, 3477777871413643817ull,
+ 13017633319515625914ull, 3526569299655223422ull}},
+ {{2086956660044433413ull, 13570594376121830580ull,
+ 7048669612539756584ull, 4408211624569029278ull}},
+ {{10527719949382546691ull, 8481621485076144112ull,
+ 18240476563119511577ull, 2755132265355643298ull}},
+ {{13159649936728183364ull, 15213712874772568044ull,
+ 13577223667044613663ull, 3443915331694554123ull}},
+ {{16449562420910229205ull, 14405455075038322151ull,
+ 12359843565378379175ull, 4304894164618192654ull}},
+ {{17198505540709975109ull, 15920938449540033200ull,
+ 3113216209934099080ull, 2690558852886370409ull}},
+ {{3051387852177917271ull, 1454428988215489885ull,
+ 8503206280845011755ull, 3363198566107963011ull}},
+ {{8425920833649784492ull, 15653094290551526068ull,
+ 6017321832628876789ull, 4203998207634953764ull}},
+ {{14489572557885891116ull, 12089026940808397744ull,
+ 12984198182247823801ull, 2627498879771846102ull}},
+ {{18111965697357363895ull, 1276225620728333468ull,
+ 7006875690955003944ull, 3284373599714807628ull}},
+ {{4193213047987153252ull, 1595282025910416836ull,
+ 8758594613693754930ull, 4105466999643509535ull}},
+ {{11844130191846746591ull, 5608737284621398426ull,
+ 12391650661199678687ull, 2565916874777193459ull}},
+ {{5581790702953657430ull, 2399235587349360129ull,
+ 10877877308072210455ull, 3207396093471491824ull}},
+ {{11588924397119459692ull, 16834102539468863873ull,
+ 13597346635090263068ull, 4009245116839364780ull}},
+ {{325548720558580452ull, 1297942050313264113ull,
+ 17721713683786190226ull, 2505778198024602987ull}},
+ {{5018621919125613468ull, 10845799599746355949ull,
+ 17540456086305349878ull, 3132222747530753734ull}},
+ {{10884963417334404739ull, 4333877462828169128ull,
+ 12702198071026911540ull, 3915278434413442168ull}},
+ {{6803102135834002962ull, 11932045451122381513ull,
+ 7938873794391819712ull, 2447049021508401355ull}},
+ {{13115563688219891607ull, 14915056813902976891ull,
+ 5311906224562386736ull, 3058811276885501694ull}},
+ {{11782768591847476604ull, 197076943669169498ull,
+ 15863254817557759229ull, 3823514096106877117ull}},
+ {{11975916388332060782ull, 2429016099006924888ull,
+ 12220377270187293470ull, 2389696310066798198ull}},
+ {{14969895485415075977ull, 12259642160613431918ull,
+ 6052099550879341029ull, 2987120387583497748ull}},
+ {{9488997319914069163ull, 1489494645484626186ull,
+ 7565124438599176287ull, 3733900484479372185ull}},
+ {{10542309343373681131ull, 7848463181068973222ull,
+ 16257417820192954939ull, 2333687802799607615ull}},
+ {{3954514642362325606ull, 5198892957908828624ull,
+ 15710086256813805770ull, 2917109753499509519ull}},
+ {{4943143302952907007ull, 15721988234240811588ull,
+ 15025921802589869308ull, 3646387191874386899ull}},
+ {{6178929128691133759ull, 1205741219091462869ull,
+ 14170716234809948732ull, 4557983989842983624ull}},
+ {{6167673714645652552ull, 9976960298786940101ull,
+ 8856697646756217957ull, 2848739993651864765ull}},
+ {{12321278161734453593ull, 17082886391911063030ull,
+ 15682558076872660350ull, 3560924992064830956ull}},
+ {{6178225665313291183ull, 12130235953034052980ull,
+ 1156453522381273822ull, 4451156240081038696ull}},
+ {{13084763077675582798ull, 2969711452218895208ull,
+ 722783451488296139ull, 2781972650050649185ull}},
+ {{16355953847094478497ull, 17547197370555782722ull,
+ 5515165332787758077ull, 3477465812563311481ull}},
+ {{11221570272013322313ull, 8098938657912564691ull,
+ 11505642684412085501ull, 4346832265704139351ull}},
+ {{4707638410794632494ull, 7367679670409046884ull,
+ 14108555705398635294ull, 2716770166065087094ull}},
+ {{5884548013493290617ull, 18432971624866084413ull,
+ 8412322594893518309ull, 3395962707581358868ull}},
+ {{11967371035294001176ull, 9206156475800441804ull,
+ 10515403243616897887ull, 4244953384476698585ull}},
+ {{16702978933913526543ull, 12671376825016357983ull,
+ 18101342073329030939ull, 2653095865297936615ull}},
+ {{16267037648964520275ull, 11227535012843059575ull,
+ 18014991573233900770ull, 3316369831622420769ull}},
+ {{15722111042778262439ull, 4811046729199048661ull,
+ 8683681411260212251ull, 4145462289528025962ull}},
+ {{12132162410950107977ull, 701061196535711461ull,
+ 10038986900465020561ull, 2590913930955016226ull}},
+ {{1330144958405471259ull, 5488012514097027231ull,
+ 3325361588726499893ull, 3238642413693770283ull}},
+ {{15497739253289002785ull, 11471701661048671942ull,
+ 17991760041190288578ull, 4048303017117212853ull}},
+ {{5074401014878238837ull, 11781499556582807868ull,
+ 13550693034957624313ull, 2530189385698258033ull}},
+ {{6343001268597798546ull, 891816390446346123ull, 3103308238414866680ull,
+ 3162736732122822542ull}},
+ {{3317065567319860278ull, 1114770488057932654ull,
+ 13102507334873359158ull, 3953420915153528177ull}},
+ {{15908224034857076386ull, 14531789610318371620ull,
+ 1271538056654767617ull, 2470888071970955111ull}},
+ {{1438535969861793867ull, 4329678957615800814ull,
+ 15424480626100623234ull, 3088610089963693888ull}},
+ {{11021541999182018141ull, 14635470733874526825ull,
+ 833856708916227426ull, 3860762612454617361ull}},
+ {{18417678795557231098ull, 13758855227098967169ull,
+ 12050375489141111901ull, 2412976632784135850ull}},
+ {{9187040439164375161ull, 3363510978591545250ull,
+ 5839597324571614069ull, 3016220790980169813ull}},
+ {{2260428512100693143ull, 8816074741666819467ull,
+ 11911182674141905490ull, 3770275988725212266ull}},
+ {{17553668884558790879ull, 10121732731969150070ull,
+ 12056175189766078835ull, 2356422492953257666ull}},
+ {{12718714068843712790ull, 8040479896534049684ull,
+ 5846846950352822736ull, 2945528116191572083ull}},
+ {{15898392586054640987ull, 10050599870667562105ull,
+ 2696872669513640516ull, 3681910145239465104ull}},
+ {{6037932677286137522ull, 12563249838334452632ull,
+ 3371090836892050645ull, 4602387681549331380ull}},
+ {{3773707923303835952ull, 10157874158172726847ull,
+ 11330303809912307461ull, 2876492300968332112ull}},
+ {{105448885702407035ull, 17309028716143296463ull,
+ 14162879762390384326ull, 3595615376210415140ull}},
+ {{13966869162410172506ull, 12412913858324344770ull,
+ 17703599702987980408ull, 4494519220263018925ull}},
+ {{13340979244933745720ull, 7758071161452715481ull,
+ 13370592823581181707ull, 2809074512664386828ull}},
+ {{2841166000885018438ull, 5085902933388506448ull,
+ 16713241029476477134ull, 3511343140830483535ull}},
+ {{3551457501106273048ull, 15580750703590408868ull,
+ 16279865268418208513ull, 4389178926038104419ull}},
+ {{11443032975046196463ull, 2820440162102923686ull,
+ 7869072783547686369ull, 2743236828773815262ull}},
+ {{5080419181952969771ull, 8137236221056042512ull, 612968942579832153ull,
+ 3429046035967269078ull}},
+ {{6350523977441212213ull, 14783231294747441044ull,
+ 9989583215079565999ull, 4286307544959086347ull}},
+ {{13192449522755533442ull, 16157048586858232508ull,
+ 3937646500211034797ull, 2678942215599428967ull}},
+ {{16490561903444416802ull, 6361252678290626923ull,
+ 310372106836405593ull, 3348677769499286209ull}},
+ {{16001516360878133098ull, 12563251866290671558ull,
+ 4999651151972894895ull, 4185847211874107761ull}},
+ {{5389261707121445283ull, 14769561444072751580ull,
+ 14653997016051529069ull, 2616154507421317350ull}},
+ {{6736577133901806603ull, 4626893749808775763ull,
+ 9094124233209635529ull, 3270193134276646688ull}},
+ {{3809035398949870350ull, 10395303205688357608ull,
+ 11367655291512044411ull, 4087741417845808360ull}},
+ {{2380647124343668969ull, 4191221494341529553ull,
+ 7104784557195027757ull, 2554838386153630225ull}},
+ {{7587494923856974115ull, 9850712886354299845ull,
+ 13492666714921172600ull, 3193547982692037781ull}},
+ {{14096054673248605547ull, 12313391107942874806ull,
+ 3030775338369302038ull, 3991934978365047227ull}},
+ {{4198348152352990563ull, 3084183424036908850ull,
+ 18035135650976671438ull, 2494959361478154516ull}},
+ {{14471307227296014012ull, 13078601316900911870ull,
+ 4097175490011287681ull, 3118699201847693146ull}},
+ {{8865761997265241707ull, 2513193590843976126ull,
+ 14344841399368885410ull, 3898374002309616432ull}},
+ {{929415229863388163ull, 6182432012704872983ull, 8965525874605553381ull,
+ 2436483751443510270ull}},
+ {{14996827092611398916ull, 12339726034308479132ull,
+ 1983535306402165918ull, 3045604689304387838ull}},
+ {{299289792054697028ull, 6201285506030823108ull,
+ 11702791169857483206ull, 3807005861630484797ull}},
+ {{9410428156888961451ull, 17710861496551428154ull,
+ 9620087490374620955ull, 2379378663519052998ull}},
+ {{2539663159256426006ull, 17526890852261897289ull,
+ 2801737326113500386ull, 2974223329398816248ull}},
+ {{7786264967497920411ull, 12685241528472595803ull,
+ 3502171657641875483ull, 3717779161748520310ull}},
+ {{2560572595472506305ull, 5622432946081678425ull,
+ 16023915341308335889ull, 2323611976092825193ull}},
+ {{7812401762768020785ull, 11639727201029485935ull,
+ 6194836121353256149ull, 2904514970116031492ull}},
+ {{5153816185032638077ull, 714600946004693707ull, 7743545151691570187ull,
+ 3630643712645039365ull}},
+ {{1830584212863409692ull, 14728309237788030846ull,
+ 14291117458041850637ull, 4538304640806299206ull}},
+ {{14979173188321794770ull, 11511036282831213230ull,
+ 4320262392848768744ull, 2836440400503937004ull}},
+ {{9500594448547467654ull, 14388795353539016538ull,
+ 5400327991060960930ull, 3545550500629921255ull}},
+ {{2652371023829558760ull, 8762622155068994865ull,
+ 2138723970398813259ull, 4431938125787401569ull}},
+ {{13186946935961943985ull, 3170795837704427838ull,
+ 12865917527567728047ull, 2769961328617125980ull}},
+ {{7260311633097654173ull, 17798552852412698510ull,
+ 16082396909459660058ull, 3462451660771407475ull}},
+ {{18298761578226843524ull, 13024819028661097329ull,
+ 15491310118397187169ull, 4328064575964259344ull}},
+ {{4519196958750695347ull, 1222982865272103975ull,
+ 9682068823998241981ull, 2705040359977662090ull}},
+ {{1037310180010981279ull, 6140414600017517873ull,
+ 2879213993143026668ull, 3381300449972077613ull}},
+ {{5908323743441114503ull, 7675518250021897341ull,
+ 8210703509856171239ull, 4226625562465097016ull}},
+ {{5998545348864390517ull, 11714727933904767694ull,
+ 5131689693660107024ull, 2641640976540685635ull}},
+ {{16721553722935263954ull, 14643409917380959617ull,
+ 1802926098647745876ull, 3302051220675857044ull}},
+ {{7066884098386916230ull, 18304262396726199522ull,
+ 2253657623309682345ull, 4127564025844821305ull}},
+ {{9028488579919210548ull, 4522634970312792845ull,
+ 12937751060637021226ull, 2579727516153013315ull}},
+ {{15897296743326401089ull, 14876665749745766864ull,
+ 11560502807368888628ull, 3224659395191266644ull}},
+ {{1424876855448449745ull, 149088113472656965ull,
+ 14450628509211110786ull, 4030824243989083305ull}},
+ {{3196391043868975043ull, 4704866089347798507ull,
+ 2114113790615862385ull, 2519265152493177066ull}},
+ {{17830546860118382515ull, 10492768630112136037ull,
+ 11866014275124603789ull, 3149081440616471332ull}},
+ {{8453125519865814432ull, 17727646806067557951ull,
+ 14832517843905754736ull, 3936351800770589165ull}},
+ {{12200732477557215876ull, 11079779253792223719ull,
+ 11576166661654790662ull, 2460219875481618228ull}},
+ {{10639229578519131941ull, 4626352030385503841ull,
+ 14470208327068488328ull, 3075274844352022785ull}},
+ {{17910722991576302830ull, 5782940037981879801ull,
+ 4252702353553446698ull, 3844093555440028482ull}},
+ {{4276672842094107413ull, 8226023542166062780ull,
+ 7269624989398292090ull, 2402558472150017801ull}},
+ {{5345841052617634266ull, 1059157390852802667ull,
+ 13698717255175253017ull, 3003198090187522251ull}},
+ {{2070615297344654929ull, 5935632756993391238ull,
+ 12511710550541678367ull, 3753997612734402814ull}},
+ {{15129192616122573043ull, 10627299500761951379ull,
+ 3208133075661161075ull, 2346248507959001759ull}},
+ {{14299804751725828399ull, 8672438357525051320ull,
+ 17845224399858615056ull, 2932810634948752198ull}},
+ {{17874755939657285499ull, 10840547946906314150ull,
+ 13083158462968493012ull, 3666013293685940248ull}},
+ {{13120072887716831065ull, 13550684933632892688ull,
+ 16353948078710616265ull, 4582516617107425310ull}},
+ {{8200045554823019416ull, 1551649055879476074ull,
+ 5609531530766747262ull, 2864072885692140819ull}},
+ {{1026684906673998462ull, 11162933356704120901ull,
+ 2400228395031046173ull, 3580091107115176024ull}},
+ {{5895042151769885981ull, 118608640597987414ull, 3000285493788807717ull,
+ 4475113883893970030ull}},
+ {{17519459400138342451ull, 2379973409587436085ull,
+ 15710236488900168535ull, 2796946177433731268ull}},
+ {{8064266194890764351ull, 16810024817266458819ull,
+ 1191051537415659052ull, 3496182721792164086ull}},
+ {{5468646725186067535ull, 2565786947873521908ull,
+ 10712186458624349624ull, 4370228402240205107ull}},
+ {{12641276240096068017ull, 1603616842420951192ull,
+ 4389273527426524563ull, 2731392751400128192ull}},
+ {{15801595300120085022ull, 15839579108308352702ull,
+ 5486591909283155703ull, 3414240939250160240ull}},
+ {{10528622088295330469ull, 15187787866958052974ull,
+ 6858239886603944629ull, 4267801174062700300ull}},
+ {{1968702786757193639ull, 11798210426062477061ull,
+ 13509771965982241201ull, 2667375733789187687ull}},
+ {{7072564501873879953ull, 912704977295932614ull,
+ 12275528939050413598ull, 3334219667236484609ull}},
+ {{18064077664197125749ull, 10364253258474691575ull,
+ 1509353118530853285ull, 4167774584045605762ull}},
+ {{18207577567764285449ull, 8783501295760376186ull,
+ 5555031717509171207ull, 2604859115028503601ull}},
+ {{13536099922850581003ull, 6367690601273082329ull,
+ 11555475665313851913ull, 3256073893785629501ull}},
+ {{3085066848281062542ull, 12571299270018740816ull,
+ 609286526360151179ull, 4070092367232036877ull}},
+ {{1928166780175664089ull, 5551219034548019058ull,
+ 2686647088188788439ull, 2543807729520023048ull}},
+ {{11633580512074355919ull, 2327337774757635918ull,
+ 3358308860235985549ull, 3179759661900028810ull}},
+ {{5318603603238169091ull, 7520858236874432802ull,
+ 13421258112149757744ull, 3974699577375036012ull}},
+ {{7935813270451243586ull, 4700536398046520501ull,
+ 17611658356948374398ull, 2484187235859397507ull}},
+ {{14531452606491442386ull, 15099042534412926434ull,
+ 17402886927758080093ull, 3105234044824246884ull}},
+ {{8940943721259527175ull, 5038745112733994331ull,
+ 3306864585988048501ull, 3881542556030308606ull}},
+ {{3282246816573510532ull, 5455058704672440409ull,
+ 15901848421524694025ull, 2425964097518942878ull}},
+ {{8714494539144276069ull, 11430509399267938415ull,
+ 10653938490051091723ull, 3032455121898678598ull}},
+ {{6281432155502957183ull, 9676450730657535115ull,
+ 4094051075709088846ull, 3790568902373348248ull}},
+ {{1620052087975654287ull, 1436095688233571543ull,
+ 2558781922318180529ull, 2369105563983342655ull}},
+ {{15860123165251731571ull, 6406805628719352332ull,
+ 17033535458179889373ull, 2961381954979178318ull}},
+ {{1378409882855112848ull, 12620193054326578320ull,
+ 12068547285870085908ull, 3701727443723972898ull}},
+ {{861506176784445530ull, 17110992695808887258ull,
+ 12154528072096191596ull, 2313579652327483061ull}},
+ {{10300254757835332720ull, 2941996796051557456ull,
+ 1358102034838075784ull, 2891974565409353827ull}},
+ {{12875318447294165900ull, 3677495995064446820ull,
+ 15532685598829758442ull, 3614968206761692283ull}},
+ {{16094148059117707375ull, 13820242030685334333ull,
+ 14804170980109810148ull, 4518710258452115354ull}},
+ {{12364685546162261062ull, 17861023306033109766ull,
+ 13864292880996019246ull, 2824193911532572096ull}},
+ {{6232484895848050519ull, 13102907095686611400ull,
+ 17330366101245024058ull, 3530242389415715120ull}},
+ {{7790606119810063149ull, 7155261832753488442ull,
+ 3216213552846728457ull, 4412802986769643901ull}},
+ {{9480814843308677372ull, 16001253691539400036ull,
+ 4315976479742899237ull, 2758001866731027438ull}},
+ {{11851018554135846715ull, 6166509059142086333ull,
+ 14618342636533399855ull, 3447502333413784297ull}},
+ {{978715137387644682ull, 3096450305500220013ull, 4437870240384586107ull,
+ 4309377916767230372ull}},
+ {{2917539970080971878ull, 18076182505433495172ull,
+ 11997040937095142124ull, 2693361197979518982ull}},
+ {{3646924962601214848ull, 4148484058082317349ull,
+ 5772929134514151848ull, 3366701497474398728ull}},
+ {{9170342221678906464ull, 5185605072602896686ull,
+ 7216161418142689810ull, 4208376871842998410ull}},
+ {{1119777870121928636ull, 7852689188804198333ull,
+ 9121786904766569035ull, 2630235544901874006ull}},
+ {{6011408356079798699ull, 5204175467577860012ull,
+ 2178861594103435486ull, 3287794431127342508ull}},
+ {{7514260445099748373ull, 15728591371327100823ull,
+ 2723576992629294357ull, 4109743038909178135ull}},
+ {{11613941805828424589ull, 12136212616293131966ull,
+ 8619764648034390829ull, 2568589399318236334ull}},
+ {{5294055220430754929ull, 1335207715084251246ull,
+ 1551333773188212729ull, 3210736749147795418ull}},
+ {{15840941062393219469ull, 6280695662282701961ull,
+ 11162539253340041719ull, 4013420936434744272ull}},
+ {{2983059136354680312ull, 10842963816567770582ull,
+ 6976587033337526074ull, 2508388085271715170ull}},
+ {{12952195957298126198ull, 4330332733854937419ull,
+ 17944105828526683401ull, 3135485106589643962ull}},
+ {{11578558928195269844ull, 10024601935746059678ull,
+ 13206760248803578443ull, 3919356383237054953ull}},
+ {{2624913311694655748ull, 3959533200627593347ull,
+ 1336696127861154671ull, 2449597739523159346ull}},
+ {{17116199694900483397ull, 337730482357103779ull,
+ 10894242196681219147ull, 3061997174403949182ull}},
+ {{16783563600198216343ull, 14257221158228543436ull,
+ 4394430708996748125ull, 3827496468004936478ull}},
+ {{1266355213269109406ull, 11216606233106533600ull,
+ 16581577248405131290ull, 2392185292503085298ull}},
+ {{1582944016586386758ull, 4797385754528391192ull,
+ 11503599523651638305ull, 2990231615628856623ull}},
+ {{1978680020732983447ull, 10608418211587876894ull,
+ 9767813386137159977ull, 3737789519536070779ull}},
+ {{15071733068240278367ull, 18159476428310892818ull,
+ 3799040357122031033ull, 2336118449710044237ull}},
+ {{9616294298445572150ull, 8864287480106452311ull,
+ 9360486464829926696ull, 2920148062137555296ull}},
+ {{7408681854629577284ull, 11080359350133065389ull,
+ 11700608081037408370ull, 3650185077671944120ull}},
+ {{13872538336714359508ull, 4627077150811555928ull,
+ 14625760101296760463ull, 4562731347089930150ull}},
+ {{8670336460446474693ull, 9809452246898304311ull,
+ 4529414044883087385ull, 2851707091931206344ull}},
+ {{6226234557130705462ull, 16873501327050268293ull,
+ 5661767556103859231ull, 3564633864914007930ull}},
+ {{12394479214840769731ull, 16480190640385447462ull,
+ 16300581481984599847ull, 4455792331142509912ull}},
+ {{3134863490848093178ull, 17217648177881986520ull,
+ 10187863426240374904ull, 2784870206964068695ull}},
+ {{3918579363560116473ull, 3075316148642931534ull,
+ 8123143264373080727ull, 3481087758705085869ull}},
+ {{14121596241304921399ull, 17679203241085828129ull,
+ 14765615098893738812ull, 4351359698381357336ull}},
+ {{1908468623174494018ull, 1826129988823866773ull,
+ 9228509436808586758ull, 2719599811488348335ull}},
+ {{6997271797395505427ull, 11506034522884609274ull,
+ 6923950777583345543ull, 3399499764360435419ull}},
+ {{17969961783599157591ull, 9770857135178373688ull,
+ 4043252453551794025ull, 4249374705450544274ull}},
+ {{11231226114749473495ull, 17636000755554953315ull,
+ 7138718801897259169ull, 2655859190906590171ull}},
+ {{9427346625009453964ull, 8209942889161527932ull,
+ 4311712483944186058ull, 3319823988633237714ull}},
+ {{11784183281261817455ull, 1039056574597134107ull,
+ 14613012641785008381ull, 4149779985791547142ull}},
+ {{5059271541574941958ull, 2955253368336902769ull,
+ 4521446882688242334ull, 2593612491119716964ull}},
+ {{10935775445396065351ull, 12917438747275904269ull,
+ 5651808603360302917ull, 3242015613899646205ull}},
+ {{18281405325172469593ull, 2311740378812716624ull,
+ 11676446772627766551ull, 4052519517374557756ull}},
+ {{11425878328232793496ull, 8362366764399029746ull,
+ 16521151269747129902ull, 2532824698359098597ull}},
+ {{5058975873436216062ull, 1229586418644011375ull,
+ 6816381031901748666ull, 3166030872948873247ull}},
+ {{1712033823367882173ull, 10760355060159790027ull,
+ 3908790271449797928ull, 3957538591186091559ull}},
+ {{17210922204100784022ull, 6725221912599868766ull,
+ 9360522947297205561ull, 2473461619491307224ull}},
+ {{12290280718271204220ull, 13018213409177223862ull,
+ 11700653684121506951ull, 3091827024364134030ull}},
+ {{6139478860984229466ull, 11661080743044141924ull,
+ 5402445068297107881ull, 3864783780455167538ull}},
+ {{13060546324969919225ull, 370646436761506846ull,
+ 7988214186113080330ull, 2415489862784479711ull}},
+ {{7102310869357623223ull, 9686680082806659366ull,
+ 5373581714213962508ull, 3019362328480599639ull}},
+ {{18101260623551804836ull, 12108350103508324207ull,
+ 2105291124340065231ull, 3774202910600749549ull}},
+ {{18230816917360959879ull, 14485247842333784485ull,
+ 3621649961926234721ull, 2358876819125468468ull}},
+ {{8953463091419036136ull, 4271501747635066895ull,
+ 4527062452407793402ull, 2948596023906835585ull}},
+ {{6580142845846407266ull, 14562749221398609427ull,
+ 10270514083937129656ull, 3685745029883544481ull}},
+ {{3613492538880621179ull, 18203436526748261784ull,
+ 17449828623348799974ull, 4607181287354430601ull}},
+ {{2258432836800388237ull, 6765461810790275711ull,
+ 3988613861951918128ull, 2879488304596519126ull}},
+ {{16658099101282649008ull, 8456827263487844638ull,
+ 14209139364294673468ull, 3599360380745648907ull}},
+ {{11599251839748535452ull, 10571034079359805798ull,
+ 13149738186940953931ull, 4499200475932061134ull}},
+ {{2637846381415446754ull, 4301053290386184672ull,
+ 3606900348410708303ull, 2812000297457538209ull}},
+ {{3297307976769308442ull, 764630594555342936ull, 9120311453940773283ull,
+ 3515000371821922761ull}},
+ {{4121634970961635552ull, 14790846298476342382ull,
+ 16012075335853354507ull, 4393750464777403451ull}},
+ {{16411079912133185932ull, 6938435927334020036ull,
+ 7701704075694652615ull, 2746094040485877157ull}},
+ {{2067105816456930799ull, 4061358890740137142ull,
+ 14238816113045703673ull, 3432617550607346446ull}},
+ {{11807254307425939307ull, 9688384631852559331ull,
+ 8575148104452353783ull, 4290771938259183058ull}},
+ {{5073690932927518115ull, 12972769422548931438ull,
+ 9971153583710109018ull, 2681732461411989411ull}},
+ {{15565485703014173452ull, 6992589741331388489ull,
+ 7852255961210248369ull, 3352165576764986764ull}},
+ {{5621799073485553103ull, 13352423195091623516ull,
+ 9815319951512810461ull, 4190206970956233455ull}},
+ {{12736996457783246497ull, 10651107506145958649ull,
+ 13052103997336588394ull, 2618879356847645909ull}},
+ {{2086187516946894410ull, 4090512345827672504ull,
+ 2480071941388571781ull, 3273599196059557387ull}},
+ {{2607734396183618012ull, 9724826450711978534ull,
+ 16935147982017878438ull, 4091998995074446733ull}},
+ {{15464892052896924970ull, 1466330513267598679ull,
+ 12890310497974867976ull, 2557499371921529208ull}},
+ {{14719429047693768308ull, 1832913141584498349ull,
+ 16112888122468584970ull, 3196874214901911510ull}},
+ {{4564228254335046673ull, 11514513463835398745ull,
+ 10917738116230955404ull, 3996092768627389388ull}},
+ {{14381857705027873931ull, 16419942951751900023ull,
+ 16046958359499122935ull, 2497557980392118367ull}},
+ {{13365636112857454509ull, 15913242671262487125ull,
+ 15447011930946515765ull, 3121947475490147959ull}},
+ {{2871987085789654424ull, 6056495283795945195ull,
+ 14697078895255756803ull, 3902434344362684949ull}},
+ {{17935892993114391679ull, 1479466543158771794ull,
+ 11491517318748541954ull, 2439021465226678093ull}},
+ {{13196494204538213791ull, 11072705215803240551ull,
+ 529338593153513730ull, 3048776831533347617ull}},
+ {{11883931737245379335ull, 4617509482899274881ull,
+ 5273359259869280067ull, 3810971039416684521ull}},
+ {{509928308137280228ull, 580100417598352849ull, 14825064583486769802ull,
+ 2381856899635427825ull}},
+ {{5249096403598988189ull, 9948497558852716869ull,
+ 4696272674076298540ull, 2977321124544284782ull}},
+ {{11173056522926123141ull, 12435621948565896086ull,
+ 15093712879450148983ull, 3721651405680355977ull}},
+ {{2371474308401439059ull, 14689792745494766910ull,
+ 2516041522015261258ull, 2326032128550222486ull}},
+ {{12187714922356574632ull, 9138868895013682829ull,
+ 12368423939373852381ull, 2907540160687778107ull}},
+ {{1399585597663554577ull, 16035272137194491441ull,
+ 10848843905789927572ull, 3634425200859722634ull}},
+ {{6361168015506831126ull, 1597346097783562685ull,
+ 4337682845382633658ull, 4543031501074653293ull}},
+ {{6281573018905463406ull, 5610027329542114582ull,
+ 5016894787577839988ull, 2839394688171658308ull}},
+ {{17075338310486605065ull, 7012534161927643227ull,
+ 6271118484472299985ull, 3549243360214572885ull}},
+ {{16732486869680868427ull, 13377353720836941938ull,
+ 12450584124017762885ull, 4436554200268216106ull}},
+ {{15069490311977930671ull, 10666689084736782663ull,
+ 12393301095938489707ull, 2772846375167635066ull}},
+ {{14225176871545025435ull, 8721675337493590425ull,
+ 6268254333068336326ull, 3466057968959543833ull}},
+ {{3946413034149118081ull, 1678722135012212224ull,
+ 12447003934762808312ull, 4332572461199429791ull}},
+ {{2466508146343198801ull, 1049201334382632640ull,
+ 14696906486867837051ull, 2707857788249643619ull}},
+ {{3083135182928998501ull, 15146559723260454512ull,
+ 13759447090157408409ull, 3384822235312054524ull}},
+ {{3853918978661248126ull, 5098141598793404428ull,
+ 17199308862696760512ull, 4231027794140068155ull}},
+ {{11632071398518055887ull, 3186338499245877767ull,
+ 8443725029971781368ull, 2644392371337542597ull}},
+ {{9928403229720181955ull, 3982923124057347209ull,
+ 15166342305892114614ull, 3305490464171928246ull}},
+ {{17022190055577615348ull, 14202025941926459819ull,
+ 9734555845510367459ull, 4131863080214910308ull}},
+ {{8333025775522315640ull, 6570423204490343435ull,
+ 15307469440298755470ull, 2582414425134318942ull}},
+ {{5804596200975506646ull, 17436401042467705102ull,
+ 9910964763518668529ull, 3228018031417898678ull}},
+ {{16479117288074159116ull, 7960443247802467665ull,
+ 3165333917543559854ull, 4035022539272373348ull}},
+ {{3381919277405267592ull, 363591011449154387ull,
+ 11201705735319500717ull, 2521889087045233342ull}},
+ {{18062457152038748201ull, 5066174782738830887ull,
+ 4778760132294600088ull, 3152361358806541678ull}},
+ {{17966385421621047348ull, 6332718478423538609ull,
+ 15196822202223025918ull, 3940451698508177097ull}},
+ {{4311461860872072736ull, 17793007104296875343ull,
+ 2580484848748309342ull, 2462782311567610686ull}},
+ {{777641307662703016ull, 13017886843516318371ull,
+ 12448978097790162486ull, 3078477889459513357ull}},
+ {{14807109689860542482ull, 7048986517540622155ull,
+ 1726164566955539396ull, 3848097361824391697ull}},
+ {{6948600546949145100ull, 13628988610317664655ull,
+ 12608067900415681882ull, 2405060851140244810ull}},
+ {{4074064665259043470ull, 7812863726042305011ull,
+ 6536712838664826545ull, 3006326063925306013ull}},
+ {{480894813146416434ull, 14377765675980269168ull,
+ 12782577066758421085ull, 3757907579906632516ull}},
+ {{300559258216510271ull, 11291946556701362182ull,
+ 17212482703578788986ull, 2348692237441645322ull}},
+ {{9599071109625413647ull, 4891561159021926919ull,
+ 12292231342618710425ull, 2935865296802056653ull}},
+ {{7387152868604379155ull, 10726137467204796553ull,
+ 1530231122991224319ull, 3669831621002570817ull}},
+ {{13845627104182861847ull, 8795985815578607787ull,
+ 6524474922166418303ull, 4587289526253213521ull}},
+ {{6347673930900594703ull, 12415020162377711723ull,
+ 15607011872422481199ull, 2867055953908258450ull}},
+ {{3322906395198355474ull, 10907089184544751750ull,
+ 10285392803673325691ull, 3583819942385323063ull}},
+ {{13377005030852720151ull, 9022175462253551783ull,
+ 8245054986164269210ull, 4479774927981653829ull}},
+ {{15278157171924031950ull, 10250545682335857768ull,
+ 7459002375566362208ull, 2799859329988533643ull}},
+ {{650952391195488322ull, 12813182102919822211ull,
+ 4712066951030564856ull, 3499824162485667054ull}},
+ {{14648748544276524114ull, 16016477628649777763ull,
+ 15113455725642981878ull, 4374780203107083817ull}},
+ {{6849624830959133620ull, 5398612499478723198ull,
+ 2528380800885781818ull, 2734237626941927386ull}},
+ {{17785403075553692832ull, 15971637661203179805ull,
+ 12383848037962003080ull, 3417797033677409232ull}},
+ {{8396695789159952328ull, 1517803002794423141ull,
+ 15479810047452503851ull, 4272246292096761540ull}},
+ {{7553777877438664157ull, 17089527941242372127ull,
+ 451509242803039098ull, 2670153932560475963ull}},
+ {{4830536328370942293ull, 12138537889698189351ull,
+ 14399444608785962585ull, 3337692415700594953ull}},
+ {{1426484392036289962ull, 1338114306840572977ull,
+ 4164247705700289520ull, 4172115519625743692ull}},
+ {{12420767791091150986ull, 836321441775358110ull,
+ 11826026852917456758ull, 2607572199766089807ull}},
+ {{6302587702009162925ull, 10268773839073973446ull,
+ 10170847547719433043ull, 3259465249707612259ull}},
+ {{17101606664366229464ull, 8224281280415078903ull,
+ 8101873416221903400ull, 4074331562134515324ull}},
+ {{17606033192869975271ull, 5140175800259424314ull,
+ 14287042921993465433ull, 2546457226334072077ull}},
+ {{12784169454232693281ull, 11036905768751668297ull,
+ 4023745597209668079ull, 3183071532917590097ull}},
+ {{2145153762508702889ull, 9184446192512197468ull,
+ 9641368014939473003ull, 3978839416146987621ull}},
+ {{10564093138422715114ull, 3434435861106429465ull,
+ 8331698018550864579ull, 2486774635091867263ull}},
+ {{17816802441455781796ull, 18128102881665200543ull,
+ 5802936504761192819ull, 3108468293864834079ull}},
+ {{17659317033392339341ull, 18048442583654112775ull,
+ 2641984612524103120ull, 3885585367331042599ull}},
+ {{17954602173511293944ull, 11280276614783820484ull,
+ 8568769410468646306ull, 2428490854581901624ull}},
+ {{3996508643179565814ull, 4876973731624999798ull,
+ 10710961763085807883ull, 3035613568227377030ull}},
+ {{14219007840829233075ull, 1484531146103861843ull,
+ 4165330167002484046ull, 3794516960284221288ull}},
+ {{6581036891304576720ull, 14762890021597077364ull,
+ 2603331354376552528ull, 2371573100177638305ull}},
+ {{8226296114130720900ull, 6868453286795089ull, 7865850211398078565ull,
+ 2964466375222047881ull}},
+ {{14894556161090789029ull, 4620271585035881765ull,
+ 14443998782674986110ull, 3705582969027559851ull}},
+ {{11614940609895437095ull, 16722727795929589815ull,
+ 6721656229958172366ull, 2315989355642224907ull}},
+ {{9906989743941908465ull, 11680037708057211461ull,
+ 3790384269020327554ull, 2894986694552781134ull}},
+ {{16995423198354773485ull, 5376675098216738518ull,
+ 13961352373130185251ull, 3618733368190976417ull}},
+ {{12020906961088691049ull, 2109157854343535244ull,
+ 3616632411130567852ull, 4523416710238720522ull}},
+ {{16736438887535207714ull, 10541595695819485335ull,
+ 6872081275383992811ull, 2827135443899200326ull}},
+ {{16308862590991621738ull, 8565308601346968765ull,
+ 17813473631084766822ull, 3533919304874000407ull}},
+ {{6551020183457363460ull, 1483263714828935149ull,
+ 17655156020428570624ull, 4417399131092500509ull}},
+ {{6400230623874546115ull, 927039821768084468ull,
+ 13340315521981550592ull, 2760874456932812818ull}},
+ {{8000288279843182643ull, 1158799777210105585ull,
+ 7452022365622162432ull, 3451093071166016023ull}},
+ {{14612046368231366208ull, 1448499721512631981ull,
+ 4703341938600315136ull, 4313866338957520029ull}},
+ {{11438371989358297832ull, 905312325945394988ull,
+ 5245431720838890912ull, 2696166461848450018ull}},
+ {{14297964986697872290ull, 1131640407431743735ull,
+ 15780161687903389448ull, 3370208077310562522ull}},
+ {{13260770214944952459ull, 1414550509289679669ull,
+ 10501830073024461002ull, 4212760096638203153ull}},
+ {{10593824393554289239ull, 5495780086733437697ull,
+ 18092858841708757886ull, 2632975060398876970ull}},
+ {{17853966510370249452ull, 16093097145271572929ull,
+ 13392701515281171549ull, 3291218825498596213ull}},
+ {{8482400082680648103ull, 6281313376307302450ull,
+ 2905818838819300725ull, 4114023531873245267ull}},
+ {{9913186070102792969ull, 6231663869405757983ull,
+ 17957037838757920617ull, 2571264707420778291ull}},
+ {{7779796569201103307ull, 12401265855184585383ull,
+ 17834611280020012867ull, 3214080884275972864ull}},
+ {{5113059693073991229ull, 10889896300553343825ull,
+ 3846520026315464468ull, 4017601105344966081ull}},
+ {{14724877354239714279ull, 16029557224700615698ull,
+ 13933290062515635052ull, 2511000690840603800ull}},
+ {{9182724655944867040ull, 1590202457166218007ull,
+ 17416612578144543816ull, 3138750863550754750ull}},
+ {{6866719801503695896ull, 1987753071457772509ull,
+ 12547393685825903962ull, 3923438579438443438ull}},
+ {{6597542885153503887ull, 5854031688088495722ull,
+ 3230435035213802072ull, 2452149112149027149ull}},
+ {{17470300643296655667ull, 7317539610110619652ull,
+ 8649729812444640494ull, 3065186390186283936ull}},
+ {{3391131730411267967ull, 18370296549493050374ull,
+ 10812162265555800617ull, 3831482987732854920ull}},
+ {{15954515386789206192ull, 4563906315792074627ull,
+ 6757601415972375386ull, 2394676867333034325ull}},
+ {{15331458215059119836ull, 14928254931594869092ull,
+ 13058687788392857136ull, 2993346084166292906ull}},
+ {{717578695114348178ull, 213574590784034750ull, 7099987698636295613ull,
+ 3741682605207866133ull}},
+ {{14283544739728631324ull, 2439327128453715670ull,
+ 6743335320861378710ull, 2338551628254916333ull}},
+ {{8631058887806013347ull, 12272530947421920396ull,
+ 13040855169504111291ull, 2923189535318645416ull}},
+ {{10788823609757516683ull, 10728977665850012591ull,
+ 16301068961880139114ull, 3653986919148306770ull}},
+ {{8874343493769507950ull, 4187850045457739931ull,
+ 11152964165495398085ull, 4567483648935383463ull}},
+ {{3240621674392248517ull, 4923249287624781409ull,
+ 13888131631075705659ull, 2854677280584614664ull}},
+ {{8662463111417698550ull, 1542375591103588857ull,
+ 17360164538844632074ull, 3568346600730768330ull}},
+ {{15439764907699511091ull, 11151341525734261879ull,
+ 12476833636701014284ull, 4460433250913460413ull}},
+ {{16567382094953276288ull, 16192960490438689482ull,
+ 10103864032151827879ull, 2787770781820912758ull}},
+ {{11485855581836819552ull, 15629514594620973949ull,
+ 3406458003335009041ull, 3484713477276140948ull}},
+ {{522261422013860728ull, 5701835187994053725ull, 4258072504168761302ull,
+ 4355891846595176185ull}},
+ {{2632256397972356907ull, 17398705047778447290ull,
+ 14190510361173945573ull, 2722432404121985115ull}},
+ {{12513692534320221942ull, 7913323254440895400ull,
+ 13126451933040044063ull, 3403040505152481394ull}},
+ {{15642115667900277427ull, 5279968049623731346ull,
+ 7184692879445279271ull, 4253800631440601743ull}},
+ {{14388008310865061296ull, 10217509058655913947ull,
+ 11407962077294381400ull, 2658625394650376089ull}},
+ {{13373324370153938716ull, 12771886323319892434ull,
+ 424894541335813038ull, 3323281743312970112ull}},
+ {{7493283425837647587ull, 6741485867295089735ull, 531118176669766298ull,
+ 4154102179141212640ull}},
+ {{11600831168789611598ull, 8825114685486818988ull,
+ 331948860418603936ull, 2596313861963257900ull}},
+ {{14501038960987014497ull, 11031393356858523735ull,
+ 414936075523254920ull, 3245392327454072375ull}},
+ {{13514612682806380218ull, 13789241696073154669ull,
+ 14353728149686232362ull, 4056740409317590468ull}},
+ {{10752475935967681588ull, 13229962078473109572ull,
+ 18194452130408671034ull, 2535462755823494042ull}},
+ {{13440594919959601985ull, 7314080561236611157ull,
+ 13519693126156062985ull, 3169328444779367553ull}},
+ {{2965685594667338769ull, 13754286719973151851ull,
+ 3064558352412915019ull, 3961660555974209442ull}},
+ {{17994454561162944395ull, 6290586190769525954ull,
+ 6527034988685459791ull, 2476037847483880901ull}},
+ {{13269696164598904686ull, 3251546720034519539ull,
+ 12770479754284212643ull, 3095047309354851126ull}},
+ {{11975434187321242953ull, 17899491455325313136ull,
+ 6739727656000489995ull, 3868809136693563908ull}},
+ {{7484646367075776846ull, 8881339150364626758ull,
+ 13435701821855082055ull, 2418005710433477442ull}},
+ {{132435921989945249ull, 6489987919528395544ull, 7571255240464076761ull,
+ 3022507138041846803ull}},
+ {{165544902487431561ull, 12724170917837882334ull,
+ 4852383032152708047ull, 3778133922552308504ull}},
+ {{13938523619336808438ull, 14870135851289758314ull,
+ 3032739395095442529ull, 2361333701595192815ull}},
+ {{8199782487316234739ull, 4752611758830034181ull,
+ 17625982299151466874ull, 2951667126993991018ull}},
+ {{14861414127572681328ull, 15164136735392318534ull,
+ 12809105837084557784ull, 3689583908742488773ull}},
+ {{4676697811305537926ull, 9477585459620199084ull,
+ 10311534157391542567ull, 2305989942964055483ull}},
+ {{5845872264131922408ull, 7235295806097860951ull,
+ 8277731678312040305ull, 2882487428705069354ull}},
+ {{2695654311737515105ull, 13655805776049714093ull,
+ 1123792561035274573ull, 3603109285881336693ull}},
+ {{7981253908099281786ull, 3234699164779978904ull,
+ 6016426719721481121ull, 4503886607351670866ull}},
+ {{4988283692562051116ull, 13550902024055956575ull,
+ 8371952718253313604ull, 2814929129594794291ull}},
+ {{1623668597275175991ull, 16938627530069945719ull,
+ 5853254879389254101ull, 3518661411993492864ull}},
+ {{15864643801876133701ull, 7338226357305268436ull,
+ 7316568599236567627ull, 4398326764991866080ull}},
+ {{692030339317807755ull, 2280548464102098821ull, 4572855374522854767ull,
+ 2748954228119916300ull}},
+ {{5476723942574647598ull, 16685743635409787238ull,
+ 5716069218153568458ull, 3436192785149895375ull}},
+ {{16069276965073085305ull, 11633807507407458239ull,
+ 2533400504264572669ull, 4295240981437369219ull}},
+ {{16960827130811760172ull, 9576972701343355351ull,
+ 17724276379661215582ull, 2684525613398355761ull}},
+ {{16589347895087312311ull, 2747843839824418381ull,
+ 8320287419294355766ull, 3355657016747944702ull}},
+ {{6901626813576976676ull, 12658176836635298785ull,
+ 1176987237263168899ull, 4194571270934930878ull}},
+ {{15842731804554080183ull, 5605517513683367788ull,
+ 14570675078571644274ull, 2621607044334331798ull}},
+ {{1356670681983048613ull, 16230268928958985544ull,
+ 8989971811359779534ull, 3277008805417914748ull}},
+ {{1695838352478810766ull, 11064464124343956122ull,
+ 11237464764199724418ull, 4096261006772393435ull}},
+ {{5671584988726644633ull, 11526976096142360480ull,
+ 4717572468411133809ull, 2560163129232745897ull}},
+ {{7089481235908305791ull, 573662064895786888ull,
+ 10508651603941305166ull, 3200203911540932371ull}},
+ {{8861851544885382238ull, 9940449617974509418ull,
+ 8524128486499243553ull, 4000254889426165464ull}},
+ {{10150343233980751803ull, 17741996057302538146ull,
+ 5327580304062027220ull, 2500159305891353415ull}},
+ {{3464557005621163946ull, 3730750997918621067ull,
+ 2047789361650146122ull, 3125199132364191769ull}},
+ {{18165754312308618644ull, 13886810784253052141ull,
+ 7171422720490070556ull, 3906498915455239711ull}},
+ {{13659439454406580605ull, 17902628777012933396ull,
+ 11399668227947375953ull, 2441561822159524819ull}},
+ {{17074299318008225756ull, 8543227915984003033ull,
+ 9637899266506832038ull, 3051952277699406024ull}},
+ {{7507816092228118483ull, 1455662858125227984ull,
+ 12047374083133540048ull, 3814940347124257530ull}},
+ {{4692385057642574052ull, 909789286328267490ull,
+ 12141294820385850434ull, 2384337716952660956ull}},
+ {{15088853358907993373ull, 10360608644765110170ull,
+ 15176618525482313042ull, 2980422146190826195ull}},
+ {{9637694661780215908ull, 3727388769101611905ull,
+ 14359087138425503399ull, 3725527682738532744ull}},
+ {{17552774209681104702ull, 9247147008329589296ull,
+ 8974429461515939624ull, 2328454801711582965ull}},
+ {{3494223688391829262ull, 11558933760411986621ull,
+ 15829722845322312434ull, 2910568502139478706ull}},
+ {{8979465628917174481ull, 5225295163660207468ull,
+ 10563781519798114735ull, 3638210627674348383ull}},
+ {{11224332036146468102ull, 1919932936147871431ull,
+ 8593040881320255515ull, 4547763284592935479ull}},
+ {{13932736550232624420ull, 17340859149588277308ull,
+ 12288179578466241552ull, 2842352052870584674ull}},
+ {{17415920687790780524ull, 3229329863275795019ull,
+ 6136852436228026133ull, 3552940066088230843ull}},
+ {{17158214841311087751ull, 8648348347522131678ull,
+ 3059379526857644762ull, 4441175082610288554ull}},
+ {{6112198257392041941ull, 10016903735628720203ull,
+ 6523798222713415880ull, 2775734426631430346ull}},
+ {{3028561803312664522ull, 12521129669535900254ull,
+ 17378119815246545658ull, 3469668033289287932ull}},
+ {{13009074290995606460ull, 6428040050065099509ull,
+ 3275905695348630457ull, 4337085041611609916ull}},
+ {{10436514441085947990ull, 15546740077359156953ull,
+ 11270813096447669843ull, 2710678151007256197ull}},
+ {{17657329069784822891ull, 14821739078271558287ull,
+ 253458315277423592ull, 3388347688759070247ull}},
+ {{17459975318803640710ull, 80429774129896243ull,
+ 14151880949378943203ull, 4235434610948837808ull}},
+ {{8606641565038581492ull, 16191169673327042816ull,
+ 8844925593361839501ull, 2647146631843023630ull}},
+ {{10758301956298226865ull, 6403904036376639808ull,
+ 1832784954847523569ull, 3308933289803779538ull}},
+ {{13447877445372783581ull, 12616566063898187664ull,
+ 11514353230414180269ull, 4136166612254724422ull}},
+ {{8404923403357989738ull, 10191196799150061242ull,
+ 2584784750581474764ull, 2585104132659202764ull}},
+ {{1282782217342711365ull, 12738995998937576553ull,
+ 3230980938226843455ull, 3231380165824003455ull}},
+ {{6215163790105777110ull, 11312058980244582787ull,
+ 17873784228065718031ull, 4039225207280004318ull}},
+ {{1578634359602416742ull, 13987565890293946098ull,
+ 6559429124113685865ull, 2524515754550002699ull}},
+ {{11196664986357796735ull, 3649399307585268910ull,
+ 3587600386714719428ull, 3155644693187503374ull}},
+ {{4772459196092470111ull, 4561749134481586138ull,
+ 13707872520248175093ull, 3944555866484379217ull}},
+ {{7594473015985181723ull, 5156936218264685288ull,
+ 1649891297514027577ull, 2465347416552737011ull}},
+ {{9493091269981477154ull, 11057856291258244514ull,
+ 15897422177174698183ull, 3081684270690921263ull}},
+ {{2642992050622070634ull, 9210634345645417739ull,
+ 15260091703040984825ull, 3852105338363651579ull}},
+ {{17792771096134651811ull, 17285861512096855846ull,
+ 7231714305186921563ull, 2407565836477282237ull}},
+ {{13017591833313538955ull, 16995640871693681904ull,
+ 13651328899911039858ull, 3009457295596602796ull}},
+ {{16271989791641923694ull, 12021179052762326572ull,
+ 17064161124888799823ull, 3761821619495753495ull}},
+ {{946621582921426501ull, 14430765935617535964ull,
+ 17582629730696581745ull, 2351138512184845934ull}},
+ {{1183276978651783126ull, 4203399364239756243ull,
+ 12754915126515951374ull, 2938923140231057418ull}},
+ {{15314154278596892619ull, 14477621242154471111ull,
+ 6720271871290163409ull, 3673653925288821773ull}},
+ {{14531006829818727870ull, 4261968497410925177ull,
+ 13012025857540092166ull, 4592067406611027216ull}},
+ {{2164350240995623063ull, 16498788366163991948ull,
+ 8132516160962557603ull, 2870042129131892010ull}},
+ {{2705437801244528829ull, 16011799439277602031ull,
+ 942273164348421196ull, 3587552661414865013ull}},
+ {{17216855306837824748ull, 1568005225387450922ull,
+ 5789527473862914400ull, 4484440826768581266ull}},
+ {{15372220585201028371ull, 980003265867156826ull,
+ 8230140689591709404ull, 2802775516730363291ull}},
+ {{9991903694646509656ull, 1225004082333946033ull,
+ 5675989843562248851ull, 3503469395912954114ull}},
+ {{17101565636735524974ull, 15366313158199596253ull,
+ 16318359341307586871ull, 4379336744891192642ull}},
+ {{12994321532173397061ull, 16521474751515829514ull,
+ 14810660606744629698ull, 2737085465556995401ull}},
+ {{7019529878361970518ull, 11428471402540011085ull,
+ 4678267703148623411ull, 3421356831946244252ull}},
+ {{13386098366379851052ull, 9673903234747625952ull,
+ 5847834628935779264ull, 4276696039932805315ull}},
+ {{8366311478987406907ull, 6046189521717266220ull,
+ 1349053633871168088ull, 2672935024958003322ull}},
+ {{10457889348734258634ull, 7557736902146582775ull,
+ 10909689079193735918ull, 3341168781197504152ull}},
+ {{8460675667490435388ull, 223799090828452661ull,
+ 13637111348992169898ull, 4176460976496880190ull}},
+ {{7593765301395216070ull, 4751560450195170817ull,
+ 3911508574692718282ull, 2610288110310550119ull}},
+ {{14103892645171407991ull, 15162822599598739329ull,
+ 277699699938509948ull, 3262860137888187649ull}},
+ {{3794807751182096277ull, 506784175788872546ull, 4958810643350525340ull,
+ 4078575172360234561ull}},
+ {{6983440862916198077ull, 9540112146722821149ull,
+ 14628471698162548097ull, 2549109482725146600ull}},
+ {{13340987097072635501ull, 16536826201830914340ull,
+ 18285589622703185121ull, 3186386853406433250ull}},
+ {{16676233871340794376ull, 6835974697006479213ull,
+ 13633614991524205594ull, 3982983566758041563ull}},
+ {{12728489178801690437ull, 8884170204056437412ull,
+ 6215166360488934544ull, 2489364729223775977ull}},
+ {{15910611473502113046ull, 11105212755070546765ull,
+ 12380643969038556084ull, 3111705911529719971ull}},
+ {{6053206286595477595ull, 13881515943838183457ull,
+ 10864118942870807201ull, 3889632389412149964ull}},
+ {{15312468975190643257ull, 1758418437257782804ull,
+ 16013446376149030309ull, 2431020243382593727ull}},
+ {{693842145278752456ull, 6809709064999616410ull,
+ 15405121951758899982ull, 3038775304228242159ull}},
+ {{10090674718453216377ull, 17735508368104296320ull,
+ 14644716421271237073ull, 3798469130285302699ull}},
+ {{6306671699033260236ull, 4167163702424103344ull,
+ 6847104754080829219ull, 2374043206428314187ull}},
+ {{7883339623791575295ull, 597268609602741276ull, 3947194924173648620ull,
+ 2967554008035392734ull}},
+ {{9854174529739469118ull, 746585762003426595ull,
+ 14157365692071836583ull, 3709442510044240917ull}},
+ {{3853016071873474247ull, 7384145128893223478ull,
+ 11154196566758591816ull, 2318401568777650573ull}},
+ {{14039642126696618617ull, 9230181411116529347ull,
+ 107687653166076058ull, 2898001960972063217ull}},
+ {{12937866639943385367ull, 2314354727040885876ull,
+ 4746295584884982977ull, 3622502451215079021ull}},
+ {{16172333299929231709ull, 7504629427228495249ull,
+ 10544555499533616625ull, 4528128064018848776ull}},
+ {{3190179284814687962ull, 16219608438086279291ull,
+ 6590347187208510390ull, 2830080040011780485ull}},
+ {{17822782161300523664ull, 11051138510753073305ull,
+ 12849620002438025892ull, 3537600050014725606ull}},
+ {{8443419646343490868ull, 13813923138441341632ull,
+ 6838652966192756557ull, 4422000062518407008ull}},
+ {{5277137278964681793ull, 10939544970739532472ull,
+ 4274158103870472848ull, 2763750039074004380ull}},
+ {{6596421598705852241ull, 13674431213424415590ull,
+ 5342697629838091060ull, 3454687548842505475ull}},
+ {{17468899035237091109ull, 17093039016780519487ull,
+ 2066686018870225921ull, 4318359436053131844ull}},
+ {{17835590924664263799ull, 3765620357846742823ull,
+ 10515050798648667009ull, 2698974647533207402ull}},
+ {{17682802637402941845ull, 9318711465735816433ull,
+ 3920441461456057953ull, 3373718309416509253ull}},
+ {{8268445241471513594ull, 16260075350597158446ull,
+ 9512237845247460345ull, 4217147886770636566ull}},
+ {{556092257492308093ull, 3245018066482142173ull, 1333462634852274812ull,
+ 2635717429231647854ull}},
+ {{5306801340292773020ull, 4056272583102677716ull,
+ 10890200330420119323ull, 3294646786539559817ull}},
+ {{6633501675365966275ull, 458654710450959241ull,
+ 18224436431452537058ull, 4118308483174449771ull}},
+ {{15675153593172198682ull, 4898345212459237429ull,
+ 9084429760444141709ull, 2573942801984031107ull}},
+ {{5758883936183084640ull, 10734617534001434691ull,
+ 6743851182127789232ull, 3217428502480038884ull}},
+ {{2586918901801467896ull, 13418271917501793364ull,
+ 8429813977659736540ull, 4021785628100048605ull}},
+ {{10840196350480693243ull, 17609791985293396660ull,
+ 7574476745251029289ull, 2513616017562530378ull}},
+ {{13550245438100866554ull, 8177181926334582113ull,
+ 244723894709010804ull, 3142020021953162973ull}},
+ {{3102748742343919480ull, 10221477407918227642ull,
+ 4917590886813651409ull, 3927525027441453716ull}},
+ {{6550903982392337579ull, 17917638426017362036ull,
+ 12296866341113307938ull, 2454703142150908572ull}},
+ {{8188629977990421974ull, 13173675995666926737ull,
+ 15371082926391634923ull, 3068378927688635715ull}},
+ {{14847473490915415371ull, 11855408976156270517ull,
+ 14602167639562155750ull, 3835473659610794644ull}},
+ {{11585513941035828559ull, 2797944591670281169ull,
+ 18349726811581123152ull, 2397171037256746652ull}},
+ {{646834371012621987ull, 3497430739587851462ull, 4490414440766852324ull,
+ 2996463796570933316ull}},
+ {{10031915000620553292ull, 4371788424484814327ull,
+ 5613018050958565405ull, 3745579745713666645ull}},
+ {{13187475903028927663ull, 5038210774516702906ull,
+ 5813979291062797330ull, 2340987341071041653ull}},
+ {{7260972841931383771ull, 15521135505000654441ull,
+ 11879160132255884566ull, 2926234176338802066ull}},
+ {{13687902070841617618ull, 10178047344396042243ull,
+ 5625578128465079900ull, 3657792720423502583ull}},
+ {{12498191570124634118ull, 12722559180495052804ull,
+ 2420286642153961971ull, 4572240900529378229ull}},
+ {{17034741768182672132ull, 5645756478595714050ull,
+ 3818522160559920184ull, 2857650562830861393ull}},
+ {{12070055173373564357ull, 7057195598244642563ull,
+ 9384838719127288134ull, 3572063203538576741ull}},
+ {{10475882948289567542ull, 18044866534660579012ull,
+ 16342734417336498071ull, 4465079004423220926ull}},
+ {{15770798879535755522ull, 18195570611803943738ull,
+ 5602522992407923390ull, 2790674377764513079ull}},
+ {{10490126562564918594ull, 13521091227900153865ull,
+ 2391467722082516334ull, 3488342972205641349ull}},
+ {{17724344221633536147ull, 7677991998020416523ull,
+ 7601020671030533322ull, 4360428715257051686ull}},
+ {{8771872129307266140ull, 9410431017190148231ull, 138951900966695422ull,
+ 2725267947035657304ull}},
+ {{6353154143206694771ull, 2539666734632909481ull, 173689876208369278ull,
+ 3406584933794571630ull}},
+ {{12553128697435756367ull, 12397955455145912659ull,
+ 9440484382115237405ull, 4258231167243214537ull}},
+ {{5539862426683653778ull, 10054565168679889364ull,
+ 17429517784890493138ull, 2661394479527009085ull}},
+ {{6924828033354567222ull, 3344834423995085897ull,
+ 7951839175830952711ull, 3326743099408761357ull}},
+ {{13267721060120596932ull, 18016101085276021083ull,
+ 14551484988216078792ull, 4158428874260951696ull}},
+ {{5986482653361679130ull, 11260063178297513177ull,
+ 9094678117635049245ull, 2599018046413094810ull}},
+ {{12094789335129486817ull, 240020917589727759ull,
+ 2144975610189035749ull, 3248772558016368513ull}},
+ {{10506800650484470617ull, 4911712165414547603ull,
+ 7292905531163682590ull, 4060965697520460641ull}},
+ {{4260907397339100184ull, 16904878158666255964ull,
+ 16087281003045771378ull, 2538103560950287900ull}},
+ {{5326134246673875230ull, 11907725661478044147ull,
+ 1662357180097662607ull, 3172629451187859876ull}},
+ {{2045981789914956133ull, 10272971058420167280ull,
+ 2077946475122078259ull, 3965786813984824845ull}},
+ {{1278738618696847583ull, 4114763902298910598ull,
+ 3604559556164992864ull, 2478616758740515528ull}},
+ {{10821795310225835287ull, 5143454877873638247ull,
+ 4505699445206241080ull, 3098270948425644410ull}},
+ {{8915558119354906205ull, 6429318597342047809ull,
+ 14855496343362577158ull, 3872838685532055512ull}},
+ {{17101438870665286138ull, 17853382178620943592ull,
+ 9284685214601610723ull, 2420524178457534695ull}},
+ {{2930054514622056056ull, 17705041704848791587ull,
+ 6994170499824625500ull, 3025655223071918369ull}},
+ {{17497626198559733782ull, 3684558057351437867ull,
+ 13354399143208169780ull, 3782069028839897961ull}},
+ {{8630173364886139662ull, 11526220822699424475ull,
+ 1428970436864024256ull, 2363793143024936226ull}},
+ {{6176030687680286674ull, 14407776028374280594ull,
+ 11009585082934806128ull, 2954741428781170282ull}},
+ {{16943410396455134150ull, 18009720035467850742ull,
+ 4538609316813731852ull, 3693426785976462853ull}},
+ {{5977945479357070940ull, 2032702985312630906ull,
+ 5142473832222276360ull, 2308391741235289283ull}},
+ {{16695803886051114483ull, 2540878731640788632ull,
+ 1816406271850457546ull, 2885489676544111604ull}},
+ {{2423010783854341487ull, 12399470451405761599ull,
+ 2270507839813071932ull, 3606862095680139505ull}},
+ {{16863821535100090571ull, 15499338064257201998ull,
+ 7449820818193727819ull, 4508577619600174381ull}},
+ {{5928202441010168703ull, 7381243280947057297ull,
+ 6961981020584773839ull, 2817861012250108988ull}},
+ {{12021939069690098783ull, 4614868082756433717ull,
+ 8702476275730967299ull, 3522326265312636235ull}},
+ {{1192365781830459766ull, 1156899085018154243ull,
+ 6266409326236321220ull, 4402907831640795294ull}},
+ {{16886129678139895018ull, 9946433964991122209ull,
+ 17751563884179864474ull, 2751817394775497058ull}},
+ {{7272604042392705060ull, 3209670419384126954ull,
+ 12966082818370054785ull, 3439771743469371323ull}},
+ {{18314127089845657133ull, 8623774042657546596ull,
+ 11595917504535180577ull, 4299714679336714154ull}},
+ {{2222957394298759901ull, 16919073822729436383ull,
+ 11859134458761875764ull, 2687321674585446346ull}},
+ {{16613754798155613588ull, 2702098204702243862ull,
+ 5600546036597568898ull, 3359152093231807933ull}},
+ {{11543821460839741176ull, 12600994792732580636ull,
+ 11612368564174349026ull, 4198940116539759916ull}},
+ {{16438260449879614043ull, 12487307763885250801ull,
+ 16481102389463743949ull, 2624337572837349947ull}},
+ {{6712767507067353842ull, 1774076649574399790ull,
+ 15989691968402292033ull, 3280421966046687434ull}},
+ {{17614331420688968111ull, 6829281830395387641ull,
+ 10763742923648089233ull, 4100527457558359293ull}},
+ {{4091428110289523213ull, 15797516190065587036ull,
+ 9033182336493749722ull, 2562829660973974558ull}},
+ {{5114285137861904017ull, 10523523200727207987ull,
+ 2068105883762411345ull, 3203537076217468198ull}},
+ {{1781170403899992117ull, 17766090019336397888ull,
+ 11808504391557789989ull, 4004421345271835247ull}},
+ {{1113231502437495073ull, 13409649271298942632ull,
+ 14297844272364700599ull, 2502763340794897029ull}},
+ {{1391539378046868841ull, 12150375570696290386ull,
+ 4037247285173712037ull, 3128454175993621287ull}},
+ {{10962796259413361859ull, 1352911408088199270ull,
+ 434873088039752143ull, 3910567719992026609ull}},
+ {{2240061643705963258ull, 7763098657696206400ull,
+ 11801010726093314849ull, 2444104824995016630ull}},
+ {{2800077054632454073ull, 14315559340547645904ull,
+ 5527891370761867753ull, 3055131031243770788ull}},
+ {{3500096318290567591ull, 4059391120402393668ull,
+ 6909864213452334692ull, 3818913789054713485ull}},
+ {{11410932235786380552ull, 11760491487106271850ull,
+ 6624508142621403134ull, 2386821118159195928ull}},
+ {{5040293257878199882ull, 5477242322028064005ull,
+ 8280635178276753918ull, 2983526397698994910ull}},
+ {{10912052590775137757ull, 16069924939389855814ull,
+ 1127421935991166589ull, 3729407997123743638ull}},
+ {{2208346850807073194ull, 12349546096332353836ull,
+ 14539696765276642830ull, 2330879998202339773ull}},
+ {{2760433563508841493ull, 6213560583560666487ull,
+ 4339562901313639826ull, 2913599997752924717ull}},
+ {{17285600009668215578ull, 16990322766305608916ull,
+ 10036139645069437686ull, 3641999997191155896ull}},
+ {{3160255938375717856ull, 12014531421027235338ull,
+ 12545174556336797108ull, 4552499996488944870ull}},
+ {{6586845979912211564ull, 16732454174996797894ull,
+ 3229048079283110288ull, 2845312497805590544ull}},
+ {{17456929511745040263ull, 2468823645036445751ull,
+ 4036310099103887861ull, 3556640622256988180ull}},
+ {{17209475871253912425ull, 7697715574722945093ull,
+ 5045387623879859826ull, 4445800777821235225ull}},
+ {{13061765428747389218ull, 9422758252629228587ull,
+ 14682582310993382151ull, 2778625486138272015ull}},
+ {{11715520767506848618ull, 7166761797359147830ull,
+ 13741541870314339785ull, 3473281857672840019ull}},
+ {{5421028922528784964ull, 13570138265126322692ull,
+ 12565241319465536827ull, 4341602322091050024ull}},
+ {{12611515113435266411ull, 6175493406490257730ull,
+ 7853275824665960517ull, 2713501451306906265ull}},
+ {{6541021854939307205ull, 12331052776540210067ull,
+ 14428280799259838550ull, 3391876814133632831ull}},
+ {{3564591300246746103ull, 6190443933820486776ull,
+ 13423664980647410284ull, 4239846017667041039ull}},
+ {{2227869562654216314ull, 13092399495492580043ull,
+ 15307319640545713283ull, 2649903761041900649ull}},
+ {{16619895008599934105ull, 11753813350938337149ull,
+ 5299091495399977892ull, 3312379701302375812ull}},
+ {{6939810705467753919ull, 14692266688672921437ull,
+ 6623864369249972365ull, 4140474626627969765ull}},
+ {{6643224700131040152ull, 11488509689634269850ull,
+ 6445758239994926680ull, 2587796641642481103ull}},
+ {{17527402912018575997ull, 14360637112042837312ull,
+ 3445511781566270446ull, 3234745802053101379ull}},
+ {{3462509566313668380ull, 8727424353198770833ull,
+ 18141947782240001770ull, 4043432252566376723ull}},
+ {{13693283525014512498ull, 10066326239176619674ull,
+ 9032874354686307154ull, 2527145157853985452ull}},
+ {{7893232369413364814ull, 3359535762115998785ull,
+ 11291092943357883943ull, 3158931447317481815ull}},
+ {{14478226480194093922ull, 18034477757927162193ull,
+ 9502180160769967024ull, 3948664309146852269ull}},
+ {{2131362522480226845ull, 11271548598704476371ull,
+ 8244705609694923342ull, 2467915193216782668ull}},
+ {{16499261208382447269ull, 4866063711525819655ull,
+ 10305882012118654178ull, 3084893991520978335ull}},
+ {{16012390492050671182ull, 15305951676262050377ull,
+ 8270666496720929818ull, 3856117489401222919ull}},
+ {{3090215029890587633ull, 14177905816091169390ull,
+ 12086695588091662992ull, 2410073430875764324ull}},
+ {{13086140824218010349ull, 17722382270113961737ull,
+ 15108369485114578740ull, 3012591788594705405ull}},
+ {{2522617974990349224ull, 3706233763932900556ull,
+ 5050403801111059714ull, 3765739735743381757ull}},
+ {{10800008271223744073ull, 6928082120885450751ull,
+ 5462345384908106273ull, 2353587334839613598ull}},
+ {{8888324320602292187ull, 13271788669534201343ull,
+ 16051303767989908649ull, 2941984168549516997ull}},
+ {{6498719382325477330ull, 2754677781635587967ull,
+ 6229071654705222100ull, 3677480210686896247ull}},
+ {{3511713209479458758ull, 3443347227044484959ull,
+ 3174653549954139721ull, 4596850263358620309ull}},
+ {{9112349783565743580ull, 13681307062971272859ull,
+ 4290001477935031277ull, 2873031414599137693ull}},
+ {{6778751211029791571ull, 3266575773431927362ull,
+ 9974187865846177001ull, 3591289268248922116ull}},
+ {{17696811050642015271ull, 8694905735217297106ull,
+ 12467734832307721251ull, 4489111585311152645ull}},
+ {{15672192925078647449ull, 3128473075297116739ull,
+ 10098177279406019734ull, 2805694740819470403ull}},
+ {{14978555137920921407ull, 13133963380976171732ull,
+ 8011035580830136763ull, 3507118426024338004ull}},
+ {{276449848691600143ull, 11805768207792826762ull,
+ 10013794476037670954ull, 4383898032530422505ull}},
+ {{4784467173859637993ull, 11990291148297904630ull,
+ 17787836593592014106ull, 2739936270331514065ull}},
+ {{15203956004179323299ull, 5764491898517604979ull,
+ 8399737686707853921ull, 3424920337914392582ull}},
+ {{14393258986796766220ull, 11817300891574394128ull,
+ 1276300071530041593ull, 4281150422392990728ull}},
+ {{8995786866747978888ull, 468284029592914474ull, 797687544706275996ull,
+ 2675719013995619205ull}},
+ {{2021361546580197802ull, 585355036991143093ull, 5608795449310232899ull,
+ 3344648767494524006ull}},
+ {{7138387951652635156ull, 14566751851521092578ull,
+ 16234366348492566931ull, 4180810959368155007ull}},
+ {{9073178488210284877ull, 6798376897986988909ull,
+ 17064007995448936188ull, 2613006849605096879ull}},
+ {{15953159128690244000ull, 8497971122483736136ull,
+ 16718323975883782331ull, 3266258562006371099ull}},
+ {{1494704837153253384ull, 6010777884677282267ull,
+ 16286218951427340010ull, 4082823202507963874ull}},
+ {{17075091587716641029ull, 8368422196350689320ull,
+ 14790572863069475410ull, 2551764501567477421ull}},
+ {{2897120410936249670ull, 1237155708583585843ull,
+ 4653158023554680551ull, 3189705626959346777ull}},
+ {{17456458568952475799ull, 15381502691011646015ull,
+ 10428133547870738592ull, 3987132033699183471ull}},
+ {{17827815633236379231ull, 9613439181882278759ull,
+ 13435112495060293476ull, 2491957521061989669ull}},
+ {{17673083523118086134ull, 12016798977352848449ull,
+ 2958832563543203133ull, 3114946901327487087ull}},
+ {{8256296348615443956ull, 1185940666408896850ull,
+ 17533598759711167629ull, 3893683626659358858ull}},
+ {{9771871236312040377ull, 3047055925719254483ull,
+ 15570185243246867672ull, 2433552266662099286ull}},
+ {{7603153026962662567ull, 3808819907149068104ull,
+ 10239359517203808782ull, 3041940333327624108ull}},
+ {{9503941283703328208ull, 13984396920791110938ull,
+ 12799199396504760977ull, 3802425416659530135ull}},
+ {{10551649320741968034ull, 1822719047853362480ull,
+ 14917028650456557467ull, 2376515885412206334ull}},
+ {{13189561650927460043ull, 16113456865098866812ull,
+ 9422913776215921025ull, 2970644856765257918ull}},
+ {{16486952063659325053ull, 6306763026091419803ull,
+ 2555270183415125474ull, 3713306070956572398ull}},
+ {{7998502030573384206ull, 8553412909734525281ull,
+ 15432101919916617133ull, 2320816294347857748ull}},
+ {{14609813556644118162ull, 15303452155595544505ull,
+ 843383326186219800ull, 2901020367934822186ull}},
+ {{4427208890522983990ull, 682571120784879016ull,
+ 10277601194587550559ull, 3626275459918527732ull}},
+ {{5534011113153729988ull, 14688271956263262482ull,
+ 12847001493234438198ull, 4532844324898159665ull}},
+ {{8070442964148469147ull, 4568483954237151147ull,
+ 1111846905630442018ull, 2833027703061349791ull}},
+ {{5476367686758198529ull, 14933976979651214742ull,
+ 15224866687320216234ull, 3541284628826687238ull}},
+ {{16068831645302523969ull, 9444099187709242619ull,
+ 9807711322295494485ull, 4426605786033359048ull}},
+ {{7737176769100383529ull, 8208405001531970589ull,
+ 6129819576434684053ull, 2766628616270849405ull}},
+ {{14283156979802867315ull, 14872192270342351140ull,
+ 12273960488970742970ull, 3458285770338561756ull}},
+ {{17853946224753584144ull, 9366868301073163117ull,
+ 15342450611213428713ull, 4322857212923202195ull}},
+ {{13464559399684684042ull, 17383507734239196708ull,
+ 7283188622794698993ull, 2701785758077001372ull}},
+ {{16830699249605855052ull, 7894326612516832173ull,
+ 9103985778493373742ull, 3377232197596251715ull}},
+ {{7203316006725155103ull, 644536228791264409ull, 6768296204689329274ull,
+ 4221540246995314644ull}},
+ {{16031287550271691700ull, 5014521161421928159ull,
+ 13453557164785606604ull, 2638462654372071652ull}},
+ {{15427423419412226721ull, 6268151451777410199ull,
+ 16816946455982008255ull, 3298078317965089565ull}},
+ {{14672593255837895497ull, 3223503296294374845ull,
+ 7186125014695346607ull, 4122597897456361957ull}},
+ {{11476213794112378638ull, 8932218587825066134ull,
+ 6797171143398285581ull, 2576623685910226223ull}},
+ {{5121895205785697489ull, 15776959253208720572ull,
+ 3884777910820469072ull, 3220779607387782779ull}},
+ {{6402369007232121861ull, 1274454992801349099ull, 244286370098198437ull,
+ 4025974509234728474ull}},
+ {{1695637620306382211ull, 3102377379714537139ull,
+ 4764364999738761927ull, 2516234068271705296ull}},
+ {{15954605080665141476ull, 17713029779925335135ull,
+ 5955456249673452408ull, 3145292585339631620ull}},
+ {{15331570332404038941ull, 3694543151197117303ull,
+ 7444320312091815511ull, 3931615731674539525ull}},
+ {{16499760485393606194ull, 9226618497139280170ull,
+ 6958543204271078646ull, 2457259832296587203ull}},
+ {{11401328569887231935ull, 2309901084569324405ull,
+ 4086492986911460404ull, 3071574790370734004ull}},
+ {{416602657076876206ull, 2887376355711655507ull, 5108116233639325505ull,
+ 3839468487963417505ull}},
+ {{16401277725168905293ull, 13333825268388254451ull,
+ 14721787692093048200ull, 2399667804977135940ull}},
+ {{15889911138033743712ull, 16667281585485318064ull,
+ 18402234615116310250ull, 2999584756221419925ull}},
+ {{1415644848832628024ull, 11610729945001871773ull,
+ 9167735213613224101ull, 3749480945276774907ull}},
+ {{3190621039734086467ull, 9562549224839863810ull,
+ 3423991499294571111ull, 2343425590797984317ull}},
+ {{13211648336522383892ull, 7341500512622441858ull,
+ 8891675392545601793ull, 2929281988497480396ull}},
+ {{7291188383798204057ull, 13788561659205440227ull,
+ 11114594240682002241ull, 3661602485621850495ull}},
+ {{4502299461320367167ull, 3400644018724636572ull,
+ 9281556782425114898ull, 4577003107027313119ull}},
+ {{12037309200180005287ull, 6737088530130285761ull,
+ 12718502016656778667ull, 2860626941892070699ull}},
+ {{1211578444942842897ull, 3809674644235469298ull,
+ 11286441502393585430ull, 3575783677365088374ull}},
+ {{10737845093033329429ull, 13985465342149112430ull,
+ 4884679841137205979ull, 4469729596706360468ull}},
+ {{2099467164718442990ull, 6435072829629501317ull,
+ 12276296937565529545ull, 2793580997941475292ull}},
+ {{7236019974325441641ull, 12655527055464264550ull,
+ 15345371171956911931ull, 3491976247426844115ull}},
+ {{18268397004761577859ull, 11207722800902942783ull,
+ 14570027946518752010ull, 4364970309283555144ull}},
+ {{18335277155617068018ull, 11616512768991727143ull,
+ 9106267466574220006ull, 2728106443302221965ull}},
+ {{18307410426093947118ull, 5297268924384883121ull,
+ 15994520351645162912ull, 3410133054127777456ull}},
+ {{9049204977335270186ull, 6621586155481103902ull,
+ 1546406365846902024ull, 4262666317659721821ull}},
+ {{1044067092407155962ull, 4138491347175689939ull,
+ 3272346987868007717ull, 2664166448537326138ull}},
+ {{15140141920791108665ull, 9784800202397000327ull,
+ 13313805771689785454ull, 3330208060671657672ull}},
+ {{14313491382561497927ull, 3007628216141474601ull,
+ 16642257214612231818ull, 4162760075839572090ull}},
+ {{2028403086459854348ull, 6491453653515809530ull,
+ 15013096777560032790ull, 2601725047399732556ull}},
+ {{11758875894929593743ull, 17337689103749537720ull,
+ 319626898240489371ull, 3252156309249665696ull}},
+ {{14698594868661992179ull, 17060425361259534246ull,
+ 399533622800611714ull, 4065195386562082120ull}},
+ {{4574935774486357208ull, 15274451869214596808ull,
+ 249708514250382321ull, 2540747116601301325ull}},
+ {{5718669718107946510ull, 5258006781236082298ull,
+ 4923821661240365806ull, 3175933895751626656ull}},
+ {{16371709184489708946ull, 15795880513399878680ull,
+ 6154777076550457257ull, 3969917369689533320ull}},
+ {{10232318240306068091ull, 2954896293233842319ull,
+ 3846735672844035786ull, 2481198356055958325ull}},
+ {{8178711781955197210ull, 12916992403397078707ull,
+ 9420105609482432636ull, 3101497945069947906ull}},
+ {{5611703709016608608ull, 16146240504246348384ull,
+ 2551759974998264987ull, 3876872431337434883ull}},
+ {{3507314818135380380ull, 7785557305940273788ull,
+ 17735751048869773281ull, 2423045269585896801ull}},
+ {{4384143522669225475ull, 14343632650852730139ull,
+ 8334630755805052889ull, 3028806586982371002ull}},
+ {{868493384909143940ull, 4094482758283748962ull, 1194916407901540304ull,
+ 3786008233727963753ull}},
+ {{5154494383995602867ull, 2559051723927343101ull,
+ 12276037801006932450ull, 2366255146079977345ull}},
+ {{11054803998421891487ull, 12422186691763954684ull,
+ 1509989195976501850ull, 2957818932599971682ull}},
+ {{13818504998027364359ull, 6304361327850167547ull,
+ 11110858531825403121ull, 3697273665749964602ull}},
+ {{6330722614553408772ull, 15469440875974824477ull,
+ 11555972600818264854ull, 2310796041093727876ull}},
+ {{12525089286619148869ull, 10113429058113754788ull,
+ 14444965751022831068ull, 2888495051367159845ull}},
+ {{15656361608273936087ull, 12641786322642193485ull,
+ 4221149133496375123ull, 3610618814208949807ull}},
+ {{5735393955060256396ull, 11190546884875353953ull,
+ 664750398443081000ull, 4513273517761187259ull}},
+ {{15113836267981130008ull, 6994091803047096220ull,
+ 16556370063522783289ull, 2820795948600742036ull}},
+ {{445551261266860894ull, 13354300772236258180ull,
+ 2248718505693927495ull, 3525994935750927546ull}},
+ {{556939076583576117ull, 12081189946867934821ull,
+ 12034270168972185177ull, 4407493669688659432ull}},
+ {{2653929932078429025ull, 633214689151377407ull, 7521418855607615736ull,
+ 2754683543555412145ull}},
+ {{17152470470380199993ull, 791518361439221758ull,
+ 14013459587936907574ull, 3443354429444265181ull}},
+ {{12217216051120474184ull, 10212769988653803006ull,
+ 3681766429638970755ull, 4304193036805331477ull}},
+ {{3024074013522908461ull, 4077138233694932927ull,
+ 4606947027738050674ull, 2690120648003332173ull}},
+ {{17615150572185799288ull, 14319794828973441966ull,
+ 10370369803099951246ull, 3362650810004165216ull}},
+ {{12795566178377473302ull, 8676371499362026650ull,
+ 12962962253874939058ull, 4203313512505206520ull}},
+ {{12608914879913308718ull, 10034418205528654560ull,
+ 8101851408671836911ull, 2627070945315754075ull}},
+ {{15761143599891635897ull, 7931336738483430296ull,
+ 5515628242412408235ull, 3283838681644692594ull}},
+ {{1254685426154993256ull, 5302484904676899967ull,
+ 16117907339870286102ull, 4104798352055865742ull}},
+ {{7701707418987952641ull, 17149111120705226191ull,
+ 5462006068991540909ull, 2565498970034916089ull}},
+ {{5015448255307552897ull, 7601330845599369027ull,
+ 11439193604666814041ull, 3206873712543645111ull}},
+ {{1657624300707053217ull, 14113349575426599188ull,
+ 9687305987406129647ull, 4008592140679556389ull}},
+ {{10259387224796684069ull, 15738372512282706348ull,
+ 8360409251342524981ull, 2505370087924722743ull}},
+ {{12824234030995855086ull, 5837907585071219223ull,
+ 5838825545750768323ull, 3131712609905903429ull}},
+ {{11418606520317430953ull, 2685698462911636125ull,
+ 11910217950615848308ull, 3914640762382379286ull}},
+ {{9442472084412088298ull, 10901933576174548386ull,
+ 2832200200707517288ull, 2446650476488987054ull}},
+ {{2579718068660334564ull, 13627416970218185483ull,
+ 12763622287739172418ull, 3058313095611233817ull}},
+ {{17059705641107581917ull, 7810899175917956045ull,
+ 2119469804391801811ull, 3822891369514042272ull}},
+ {{12968159034905932651ull, 2575968975735028576ull,
+ 1324668627744876132ull, 2389307105946276420ull}},
+ {{16210198793632415813ull, 3219961219668785720ull,
+ 1655835784681095165ull, 2986633882432845525ull}},
+ {{1816004418330968150ull, 8636637543013370055ull,
+ 6681480749278756860ull, 3733292353041056906ull}},
+ {{8052531789097936950ull, 14621270501238132092ull,
+ 8787611486726610941ull, 2333307720650660566ull}},
+ {{10065664736372421187ull, 4441530071265501403ull,
+ 1761142321553487869ull, 2916634650813325708ull}},
+ {{7970394902038138580ull, 10163598607509264658ull,
+ 2201427901941859836ull, 3645793313516657135ull}},
+ {{739621590692897417ull, 12704498259386580823ull,
+ 16586842932709488507ull, 4557241641895821418ull}},
+ {{7379792521824142742ull, 5634468402902919062ull,
+ 14978462851370818221ull, 2848276026184888386ull}},
+ {{1368615425402619ull, 11654771522056036732ull, 9499706527358746968ull,
+ 3560345032731110483ull}},
+ {{1710769281753274ull, 14568464402570045915ull, 7262947140771045806ull,
+ 4450431290913888104ull}},
+ {{16141970295296953460ull, 4493604233178890792ull,
+ 4539341962981903629ull, 2781519556821180065ull}},
+ {{1730718795411640209ull, 10228691309901001395ull,
+ 10285863472154767440ull, 3476899446026475081ull}},
+ {{15998456549546713974ull, 12785864137376251743ull,
+ 17469015358620847204ull, 4346124307533093851ull}},
+ {{16916564371107778090ull, 17214537122714933147ull,
+ 8612291589924335550ull, 2716327692208183657ull}},
+ {{16534019445457334708ull, 12294799366538890626ull,
+ 15377050505832807342ull, 3395409615260229571ull}},
+ {{11444152269966892577ull, 6145127171318837475ull,
+ 14609627113863621274ull, 4244262019075286964ull}},
+ {{4846752159515613909ull, 8452390500501661326ull,
+ 18354388983019539104ull, 2652663761922054352ull}},
+ {{15281812236249293194ull, 10565488125627076657ull,
+ 4496242155064872264ull, 3315829702402567941ull}},
+ {{5267207240029452780ull, 13206860157033845822ull,
+ 10231988712258478234ull, 4144787128003209926ull}},
+ {{17127062580300571700ull, 12865973616573541542ull,
+ 1783306926734160992ull, 2590491955002006204ull}},
+ {{12185456188520938817ull, 16082467020716926928ull,
+ 2229133658417701240ull, 3238114943752507755ull}},
+ {{15231820235651173521ull, 1656339702186607044ull,
+ 16621475128304290263ull, 4047643679690634693ull}},
+ {{296515610427207643ull, 7952741341507711259ull,
+ 12694264964403875366ull, 2529777299806646683ull}},
+ {{14205702568316173265ull, 717554640029863265ull,
+ 11256145187077456304ull, 3162221624758308354ull}},
+ {{3922070155113052869ull, 896943300037329082ull, 4846809446992044572ull,
+ 3952777030947885443ull}},
+ {{7062979865373045947ull, 9783961599378106484ull, 723412895156333905ull,
+ 2470485644342428402ull}},
+ {{8828724831716307434ull, 16841638017650021009ull,
+ 10127638155800193189ull, 3088107055428035502ull}},
+ {{15647592058072772197ull, 7216989466780362549ull,
+ 3436175657895465679ull, 3860133819285044378ull}},
+ {{12085588045509176575ull, 11428147444378808449ull,
+ 6759295804612053953ull, 2412583637053152736ull}},
+ {{1271927001604307007ull, 450126250191346850ull, 8449119755765067442ull,
+ 3015729546316440920ull}},
+ {{10813280788860159566ull, 9786029849593959370ull,
+ 10561399694706334302ull, 3769661932895551150ull}},
+ {{11369986511464987633ull, 1504582637568836702ull,
+ 1989188790764071035ull, 2356038708059719469ull}},
+ {{4989111102476458733ull, 15715786352243209590ull,
+ 7098172006882476697ull, 2945048385074649336ull}},
+ {{15459760914950349224ull, 5809674885021848275ull,
+ 8872715008603095872ull, 3681310481343311670ull}},
+ {{14713015125260548626ull, 7262093606277310344ull,
+ 1867521723899094032ull, 4601638101679139588ull}},
+ {{9195634453287842892ull, 4538808503923318965ull,
+ 10390573114291709578ull, 2876023813549462242ull}},
+ {{16106229085037191518ull, 14896882666758924514ull,
+ 3764844356009861164ull, 3595029766936827803ull}},
+ {{10909414319441713590ull, 174359259739104027ull, 94369426584938552ull,
+ 4493787208671034754ull}},
+ {{4512540940437377042ull, 108974537336940017ull, 4670666910042974499ull,
+ 2808617005419396721ull}},
+ {{10252362193974109206ull, 13971276226953338733ull,
+ 10450019655981106027ull, 3510771256774245901ull}},
+ {{17427138760895024412ull, 12852409265264285512ull,
+ 17674210588403770438ull, 4388464070967807376ull}},
+ {{10891961725559390258ull, 3421069772362790541ull,
+ 11046381617752356524ull, 2742790044354879610ull}},
+ {{18226638175376625726ull, 4276337215453488176ull,
+ 4584604985335669847ull, 3428487555443599513ull}},
+ {{4336553645511230541ull, 733735500889472317ull,
+ 10342442250096975213ull, 4285609444304499391ull}},
+ {{5016189037658213040ull, 2764427697269614150ull,
+ 13381555433951691364ull, 2678505902690312119ull}},
+ {{15493608333927542108ull, 3455534621587017687ull,
+ 12115258274012226301ull, 3348132378362890149ull}},
+ {{14755324398982039731ull, 8931104295411160013ull,
+ 1309014787233119164ull, 4185165472953612687ull}},
+ {{11527920758577468784ull, 14805312221486750816ull,
+ 7735663269661781333ull, 2615728420596007929ull}},
+ {{14409900948221835980ull, 4671582221576274808ull,
+ 14281265105504614571ull, 3269660525745009911ull}},
+ {{18012376185277294975ull, 1227791758542955606ull,
+ 13239895363453380310ull, 4087075657181262389ull}},
+ {{6646049097370921456ull, 14602427904371510966ull,
+ 10580777611372056645ull, 2554422285738288993ull}},
+ {{17530933408568427627ull, 4417976825182224995ull,
+ 17837658032642458711ull, 3193027857172861241ull}},
+ {{17301980742283146630ull, 910785013050393340ull,
+ 8462014485520909677ull, 3991284821466076552ull}},
+ {{1590365927072190836ull, 2875083642370189790ull,
+ 5288759053450568548ull, 2494553013416297845ull}},
+ {{11211329445695014353ull, 3593854552962737237ull,
+ 11222634835240598589ull, 3118191266770372306ull}},
+ {{179103751836604229ull, 9104004209630809451ull, 4804921507195972428ull,
+ 3897739083462965383ull}},
+ {{16252840909393735307ull, 14913374667874031714ull,
+ 9920604969638564623ull, 2436086927164353364ull}},
+ {{11092679099887393326ull, 14030032316415151739ull,
+ 12400756212048205779ull, 3045108658955441705ull}},
+ {{9254162856431853753ull, 12925854377091551770ull,
+ 1665887209778093512ull, 3806385823694302132ull}},
+ {{10395537803697296500ull, 8078658985682219856ull,
+ 10264551542966084253ull, 2378991139808938832ull}},
+ {{12994422254621620625ull, 14710009750530162724ull,
+ 12830689428707605316ull, 2973738924761173540ull}},
+ {{16243027818277025781ull, 18387512188162703405ull,
+ 16038361785884506645ull, 3717173655951466925ull}},
+ {{12457735395636835065ull, 13798038126815383580ull,
+ 12329819125391510605ull, 2323233534969666828ull}},
+ {{15572169244546043832ull, 3412489603237065763ull,
+ 15412273906739388257ull, 2904041918712083535ull}},
+ {{14853525537255166885ull, 8877298022473720108ull,
+ 14653656364996847417ull, 3630052398390104419ull}},
+ {{120162847859406991ull, 15708308546519538040ull,
+ 13705384437818671367ull, 4537565497987630524ull}},
+ {{75101779912129369ull, 16735221869215793131ull,
+ 17789237310491445412ull, 2835978436242269077ull}},
+ {{13928935280172325423ull, 2472283262810189797ull,
+ 8401488582832143054ull, 3544973045302836347ull}},
+ {{3576111044933243067ull, 12313726115367513055ull,
+ 5890174710112790913ull, 4431216306628545434ull}},
+ {{9152598430724358773ull, 778549794463613803ull, 8293045212247882225ull,
+ 2769510191642840896ull}},
+ {{6829062019978060562ull, 5584873261506905158ull,
+ 10366306515309852781ull, 3461887739553551120ull}},
+ {{17759699561827351511ull, 11592777595311019351ull,
+ 12957883144137315976ull, 4327359674441938900ull}},
+ {{18017341253783176550ull, 7245485997069387094ull,
+ 17322049001940598293ull, 2704599796526211812ull}},
+ {{13298304530374194880ull, 13668543514764121772ull,
+ 3205817178716196250ull, 3380749745657764766ull}},
+ {{16622880662967743600ull, 7862307356600376407ull,
+ 13230643510250021121ull, 4225937182072205957ull}},
+ {{17306829441995921606ull, 16443157143943705014ull,
+ 10574995203119957152ull, 2641210738795128723ull}},
+ {{12410164765640126199ull, 2107202356220079652ull,
+ 8607057985472558537ull, 3301513423493910904ull}},
+ {{15512705957050157749ull, 7245688963702487469ull,
+ 10758822481840698171ull, 4126891779367388630ull}},
+ {{12001284232370042545ull, 2222712593100360716ull,
+ 2112578032723048453ull, 2579307362104617894ull}},
+ {{15001605290462553182ull, 7390076759802838799ull,
+ 11864094577758586374ull, 3224134202630772367ull}},
+ {{14140320594650803573ull, 14223912898772691ull,
+ 10218432203770845064ull, 4030167753288465459ull}},
+ {{6531857362443058281ull, 8889945561732932ull, 4080677118143084213ull,
+ 2518854845805290912ull}},
+ {{8164821703053822851ull, 4622798450379554069ull,
+ 5100846397678855266ull, 3148568557256613640ull}},
+ {{14817713147244666468ull, 15001870099829218394ull,
+ 6376057997098569082ull, 3935710696570767050ull}},
+ {{13872756735455304447ull, 13987854830820649400ull,
+ 8596722266613993580ull, 2459819185356729406ull}},
+ {{17340945919319130558ull, 17484818538525811750ull,
+ 1522530796412716167ull, 3074773981695911758ull}},
+ {{12452810362294137390ull, 17244337154729876784ull,
+ 11126535532370671017ull, 3843467477119889697ull}},
+ {{7783006476433835869ull, 3860181694065091134ull, 36555680090587530ull,
+ 2402167173199931061ull}},
+ {{505386058687519028ull, 14048599154436139726ull,
+ 4657380618540622316ull, 3002708966499913826ull}},
+ {{9855104610214174593ull, 17560748943045174657ull,
+ 15045097810030553703ull, 3753386208124892282ull}},
+ {{17688655427452328881ull, 17892997117044316016ull,
+ 14014872149696483968ull, 2345866380078057676ull}},
+ {{3664075210605859485ull, 3919502322595843405ull,
+ 17518590187120604961ull, 2932332975097572095ull}},
+ {{9191780031684712260ull, 9511063921672192160ull,
+ 17286551715473368297ull, 3665416218871965119ull}},
+ {{11489725039605890325ull, 16500515920517628104ull,
+ 16996503625914322467ull, 4581770273589956399ull}},
+ {{7181078149753681453ull, 8006979441109823613ull,
+ 17540343793837533398ull, 2863606420993722749ull}},
+ {{13588033705619489720ull, 785352264532503708ull,
+ 8090371687014753036ull, 3579508026242153437ull}},
+ {{16985042132024362150ull, 981690330665629635ull,
+ 14724650627195829199ull, 4474385032802691796ull}},
+ {{8309808323301532392ull, 7531085484307100378ull,
+ 18426278678852169057ull, 2796490645501682372ull}},
+ {{1163888367272139682ull, 14025542873811263377ull,
+ 4586104274855659705ull, 3495613306877102966ull}},
+ {{6066546477517562506ull, 3696870536981915509ull,
+ 14956002380424350440ull, 4369516633596378707ull}},
+ {{6097434557662170519ull, 2310544085613697193ull,
+ 7041658478551525073ull, 2730947895997736692ull}},
+ {{12233479215505101052ull, 7499866125444509395ull,
+ 8802073098189406341ull, 3413684869997170865ull}},
+ {{10680163000953988411ull, 13986518675233024648ull,
+ 15614277391164145830ull, 4267106087496463581ull}},
+ {{6675101875596242757ull, 4129888153593252501ull,
+ 12064766378691285096ull, 2666941304685289738ull}},
+ {{12955563362922691350ull, 5162360191991565626ull,
+ 5857585936509330562ull, 3333676630856612173ull}},
+ {{6971082166798588380ull, 15676322276844232841ull,
+ 11933668439064051106ull, 4167095788570765216ull}},
+ {{15886141400317587497ull, 14409387441455033429ull,
+ 7458542774415031941ull, 2604434867856728260ull}},
+ {{6022618695114820660ull, 4176676246536628075ull,
+ 9323178468018789927ull, 3255543584820910325ull}},
+ {{2916587350466137921ull, 609159289743397190ull,
+ 16265659103450875313ull, 4069429481026137906ull}},
+ {{15657925149323499913ull, 11909939602158093003ull,
+ 14777722958084184974ull, 2543393425641336191ull}},
+ {{14960720418226986987ull, 5664052465842840446ull,
+ 13860467679177843314ull, 3179241782051670239ull}},
+ {{9477528485928957925ull, 16303437619158326366ull,
+ 12713898580544916238ull, 3974052227564587799ull}},
+ {{1311769285278210799ull, 5577962493546566075ull,
+ 14863715640481654505ull, 2483782642227867374ull}},
+ {{15474769661879927211ull, 11584139135360595497ull,
+ 9356272513747292323ull, 3104728302784834218ull}},
+ {{5508404022067745302ull, 9868487900773356468ull,
+ 2471968605329339596ull, 3880910378481042773ull}},
+ {{12666124550647116622ull, 15391176974838123600ull,
+ 3850823387544531199ull, 2425568986550651733ull}},
+ {{15832655688308895777ull, 14627285200120266596ull,
+ 9425215252858051903ull, 3031961233188314666ull}},
+ {{1344075536676568105ull, 13672420481722945342ull,
+ 2558147029217789071ull, 3789951541485393333ull}},
+ {{14675105265705018778ull, 15462791828717922694ull,
+ 3904684902474812121ull, 2368719713428370833ull}},
+ {{9120509545276497664ull, 5493431730615239656ull,
+ 9492542146520903056ull, 2960899641785463541ull}},
+ {{11400636931595622080ull, 6866789663269049570ull,
+ 16477363701578516724ull, 3701124552231829426ull}},
+ {{11737084100674651704ull, 13515115576397931789ull,
+ 14910038331913960856ull, 2313202845144893391ull}},
+ {{836297070561150918ull, 16893894470497414737ull,
+ 14025861896465063166ull, 2891503556431116739ull}},
+ {{5657057356628826552ull, 11893996051266992613ull,
+ 12920641352153941054ull, 3614379445538895924ull}},
+ {{11683007714213421094ull, 5644123027228964958ull,
+ 16150801690192426318ull, 4517974306923619905ull}},
+ {{2690193802956000280ull, 17362634947300266811ull,
+ 3176722028729184592ull, 2823733941827262441ull}},
+ {{17197800308977164061ull, 3256549610415781897ull,
+ 8582588554338868645ull, 3529667427284078051ull}},
+ {{7662192330939291365ull, 8682373031447115276ull,
+ 6116549674496197902ull, 4412084284105097564ull}},
+ {{14012242243691832911ull, 814797126227059143ull,
+ 13046215583414899497ull, 2757552677565685977ull}},
+ {{12903616786187403235ull, 5630182426211211833ull,
+ 2472711423986460659ull, 3446940846957107472ull}},
+ {{2294462927452090331ull, 2426042014336626888ull,
+ 3090889279983075824ull, 4308676058696384340ull}},
+ {{1434039329657556457ull, 1516276258960391805ull,
+ 11155177836844198198ull, 2692922536685240212ull}},
+ {{6404235180499333475ull, 11118717360555265564ull,
+ 13943972296055247747ull, 3366153170856550265ull}},
+ {{8005293975624166844ull, 9286710682266694051ull,
+ 3594907314786895972ull, 4207691463570687832ull}},
+ {{2697465725551410326ull, 15027566213271459590ull,
+ 2246817071741809982ull, 2629807164731679895ull}},
+ {{12595204193794038715ull, 9561085729734548679ull,
+ 16643579394959426190ull, 3287258955914599868ull}},
+ {{11132319223815160490ull, 2727985125313410041ull,
+ 2357730169989731122ull, 4109073694893249836ull}},
+ {{40170487243393450ull, 6316676721748269180ull, 10696953393098357759ull,
+ 2568171059308281147ull}},
+ {{50213109054241813ull, 3284159883757948571ull, 8759505722945559295ull,
+ 3210213824135351434ull}},
+ {{13897824441599965978ull, 17940257909979599425ull,
+ 1726010116827173310ull, 4012767280169189293ull}},
+ {{1768611248358896880ull, 6600975175309861737ull,
+ 3384599332230677271ull, 2507979550105743308ull}},
+ {{6822450078876009004ull, 3639532950709939267ull,
+ 4230749165288346589ull, 3134974437632179135ull}},
+ {{3916376580167623351ull, 9161102206814811988ull, 676750438183045332ull,
+ 3918718047040223919ull}},
+ {{11671107399459540403ull, 14949060916114033300ull,
+ 7340498051505485188ull, 2449198779400139949ull}},
+ {{14588884249324425503ull, 239582071432990009ull,
+ 13787308582809244390ull, 3061498474250174936ull}},
+ {{4401047256373368167ull, 9522849626146013320ull,
+ 17234135728511555487ull, 3826873092812718670ull}},
+ {{2750654535233355105ull, 12869310043982340181ull,
+ 6159648811892334275ull, 2391795683007949169ull}},
+ {{8050004187469081785ull, 11474951536550537322ull,
+ 12311247033292805748ull, 2989744603759936461ull}},
+ {{839133197481576423ull, 14343689420688171653ull,
+ 1554000736333843473ull, 3737180754699920577ull}},
+ {{2830301257639679216ull, 2047276860289025427ull,
+ 12500465506277121931ull, 2335737971687450360ull}},
+ {{17372934627331762732ull, 16394154130643445495ull,
+ 15625581882846402413ull, 2919672464609312950ull}},
+ {{17104482265737315511ull, 6657634608022143157ull,
+ 10308605316703227209ull, 3649590580761641188ull}},
+ {{7545544776889480677ull, 12933729278455066851ull,
+ 12885756645879034011ull, 4561988225952051485ull}},
+ {{2410122476342231471ull, 5777737789820722830ull,
+ 10359440912888090209ull, 2851242641220032178ull}},
+ {{12236025132282565147ull, 11833858255703291441ull,
+ 3725929104255336953ull, 3564053301525040223ull}},
+ {{1459973360071042721ull, 957264764346950590ull, 45725361891783288ull,
+ 4455066626906300279ull}},
+ {{14747541405326565413ull, 598290477716844118ull,
+ 6946107378823446411ull, 2784416641816437674ull}},
+ {{9211054719803430958ull, 14582921152428218860ull,
+ 17906006260384083821ull, 3480520802270547092ull}},
+ {{11513818399754288698ull, 4393593385253109863ull,
+ 3935763751770553161ull, 4350651002838183866ull}},
+ {{14113665527487512292ull, 14275210911851663424ull,
+ 7071538363283983629ull, 2719156876773864916ull}},
+ {{17642081909359390365ull, 4008955584532415568ull,
+ 8839422954104979537ull, 3398946095967331145ull}},
+ {{3605858312989686340ull, 9622880499092907365ull,
+ 15660964711058612325ull, 4248682619959163931ull}},
+ {{4559504454832247915ull, 8320143321146761055ull,
+ 7482259935197938751ull, 2655426637474477457ull}},
+ {{1087694550112921990ull, 5788493133006063415ull,
+ 13964510937424811343ull, 3319283296843096821ull}},
+ {{15194676242923316199ull, 2623930397830191364ull,
+ 3620580616498850467ull, 4149104121053871027ull}},
+ {{273300614972296816ull, 17780857563139727267ull,
+ 18403763949807639205ull, 2593190075658669391ull}},
+ {{14176683823997534732ull, 8391013898642495371ull,
+ 18393018918832161103ull, 3241487594573336739ull}},
+ {{13109168761569530511ull, 5877081354875731310ull,
+ 18379587630112813475ull, 4051859493216670924ull}},
+ {{3581544457553568666ull, 1367332837583638117ull,
+ 2263870231965732614ull, 2532412183260419328ull}},
+ {{9088616590369348736ull, 10932538083834323454ull,
+ 2829837789957165767ull, 3165515229075524160ull}},
+ {{2137398701106910112ull, 9053986586365516414ull,
+ 3537297237446457209ull, 3956894036344405200ull}},
+ {{15170932243473982532ull, 17187956662546917518ull,
+ 2210810773404035755ull, 2473058772715253250ull}},
+ {{9740293267487702357ull, 16873259809756258994ull,
+ 11986885503609820502ull, 3091323465894066562ull}},
+ {{2951994547504852138ull, 11868202725340547935ull,
+ 5760234842657499820ull, 3864154332367583203ull}},
+ {{8762525619831614443ull, 16640998740192618267ull,
+ 1294303767447243435ull, 2415096457729739502ull}},
+ {{6341471006362130149ull, 16189562406813384930ull,
+ 10841251746163830102ull, 3018870572162174377ull}},
+ {{17150210794807438494ull, 11013580971661955354ull,
+ 18163250701132175532ull, 3773588215202717971ull}},
+ {{15330567765182036963ull, 16106860144143497904ull,
+ 9046188678993915755ull, 2358492634501698732ull}},
+ {{716465632767994588ull, 15521889161751984477ull,
+ 11307735848742394694ull, 2948115793127123415ull}},
+ {{5507268059387381139ull, 10178989415335204788ull,
+ 9522983792500605464ull, 3685144741408904269ull}},
+ {{6884085074234226423ull, 12723736769169005985ull,
+ 16515415759053144734ull, 4606430926761130336ull}},
+ {{15831768217464861275ull, 3340649462303240836ull,
+ 10322134849408215459ull, 2879019329225706460ull}},
+ {{1342966198121524977ull, 18010869883161214758ull,
+ 12902668561760269323ull, 3598774161532133075ull}},
+ {{10902079784506682029ull, 17901901335524130543ull,
+ 11516649683772948750ull, 4498467701915166344ull}},
+ {{13731328892957758125ull, 6577002316275193685ull,
+ 7197906052358092969ull, 2811542313696978965ull}},
+ {{3329103060915033944ull, 12832938913771380011ull,
+ 13609068583875004115ull, 3514427892121223706ull}},
+ {{17996436881425956141ull, 11429487623786837109ull,
+ 7787963692988979336ull, 4393034865151529633ull}},
+ {{13553616060104916541ull, 7143429764866773193ull,
+ 16396692354186581845ull, 2745646790719706020ull}},
+ {{3106962019848981964ull, 13540973224510854396ull,
+ 2049121369023675690ull, 3432058488399632526ull}},
+ {{3883702524811227454ull, 7702844493783792187ull,
+ 11784773748134370421ull, 4290073110499540657ull}},
+ {{121471068793323207ull, 7120120817828564069ull, 447954564942899657ull,
+ 2681295694062212911ull}},
+ {{4763524854419041913ull, 13511837040713092990ull,
+ 14395001261460788283ull, 3351619617577766138ull}},
+ {{15177778104878578199ull, 12278110282463978333ull,
+ 8770379539971209546ull, 4189524521972207673ull}},
+ {{11791954324762805326ull, 12285504944967374362ull,
+ 17010702258550475726ull, 2618452826232629795ull}},
+ {{5516570869098730850ull, 6133509144354442145ull,
+ 16651691804760706754ull, 3273066032790787244ull}},
+ {{11507399604800801466ull, 16890258467297828489ull,
+ 2367870682241331826ull, 4091332540988484056ull}},
+ {{274595725359419061ull, 15168097560488530710ull,
+ 1479919176400832391ull, 2557082838117802535ull}},
+ {{9566616693554049634ull, 14348435932183275483ull,
+ 15684957025783204201ull, 3196353547647253168ull}},
+ {{7346584848515174138ull, 4100486859946930642ull,
+ 1159452208519453636ull, 3995441934559066461ull}},
+ {{9203301548749371740ull, 11786176324321607459ull,
+ 3030500639538352474ull, 2497151209099416538ull}},
+ {{6892440917509326771ull, 5509348368547233516ull,
+ 13011497836277716401ull, 3121439011374270672ull}},
+ {{8615551146886658464ull, 11498371479111429799ull,
+ 16264372295347145501ull, 3901798764217838340ull}},
+ {{12302248494445243396ull, 9492325183658337576ull,
+ 941860647737190130ull, 2438624227636148963ull}},
+ {{15377810618056554245ull, 2642034442718146162ull,
+ 15012383864953651375ull, 3048280284545186203ull}},
+ {{9998891235715916998ull, 17137601108679846415ull,
+ 14153793812764676314ull, 3810350355681482754ull}},
+ {{13166836049963529980ull, 15322686711352291913ull,
+ 13457807151405310600ull, 2381468972300926721ull}},
+ {{2623487007172248763ull, 706614315480813276ull, 2987200883974474539ull,
+ 2976836215376158402ull}},
+ {{3279358758965310954ull, 14718325949633180307ull,
+ 12957373141822868981ull, 3721045269220198002ull}},
+ {{18190500288849177010ull, 11504796727734431643ull,
+ 12710044232066681017ull, 2325653293262623751ull}},
+ {{18126439342634083359ull, 545937854385875842ull,
+ 11275869271655963368ull, 2907066616578279689ull}},
+ {{13434677141437828390ull, 682422317982344803ull, 259778534287790498ull,
+ 3633833270722849612ull}},
+ {{12181660408369897584ull, 10076399934332706812ull,
+ 324723167859738122ull, 4542291588403562015ull}},
+ {{16836909792085961798ull, 10909435977385329661ull,
+ 7120481007553418182ull, 2838932242752226259ull}},
+ {{7211079184825288535ull, 4413422934876886269ull,
+ 4288915241014384824ull, 3548665303440282824ull}},
+ {{13625534999458998573ull, 5516778668596107836ull,
+ 5361144051267981030ull, 4435831629300353530ull}},
+ {{17739331411516649916ull, 17283044723154731109ull,
+ 7962401050469876047ull, 2772394768312720956ull}},
+ {{8339106209113648683ull, 16992119885516025983ull,
+ 9953001313087345059ull, 3465493460390901195ull}},
+ {{5812196742964672950ull, 16628463838467644575ull,
+ 7829565622931793420ull, 4331866825488626494ull}},
+ {{10550151991994002450ull, 1169417862187502051ull,
+ 281792495904982984ull, 2707416765930391559ull}},
+ {{8576003971565115158ull, 1461772327734377564ull,
+ 14187298675163392442ull, 3384270957412989448ull}},
+ {{10720004964456393948ull, 11050587446522747763ull,
+ 17734123343954240552ull, 4230338696766236810ull}},
+ {{4394160093571552266ull, 6906617154076717352ull,
+ 15695513108398788249ull, 2643961685478898006ull}},
+ {{5492700116964440332ull, 13244957461023284594ull,
+ 10396019348643709503ull, 3304952106848622508ull}},
+ {{16089247183060326223ull, 11944510807851717838ull,
+ 12995024185804636879ull, 4131190133560778135ull}},
+ {{5444093470985315985ull, 14382848282548405505ull,
+ 15039419143768979905ull, 2581993833475486334ull}},
+ {{11416802857159032886ull, 4143502297903343169ull,
+ 9575901892856449074ull, 3227492291844357918ull}},
+ {{435945516166627395ull, 14402749909233954770ull,
+ 2746505329215785534ull, 4034365364805447398ull}},
+ {{4884151966031530026ull, 4390032674843833827ull,
+ 15551623886042029671ull, 2521478353003404623ull}},
+ {{1493503939112024628ull, 875854825127404380ull,
+ 14827843839125149185ull, 3151847941254255779ull}},
+ {{1866879923890030785ull, 5706504549836643379ull,
+ 13923118780479048577ull, 3939809926567819724ull}},
+ {{17307701016927126905ull, 15095780389716371871ull,
+ 17925321274654181168ull, 2462381204104887327ull}},
+ {{17022940252731520727ull, 422981413435913223ull,
+ 17794965574890338557ull, 3077976505131109159ull}},
+ {{16666989297487013005ull, 5140412785222279433ull,
+ 17632020950185535292ull, 3847470631413886449ull}},
+ {{3499339283288301272ull, 12436130027618700454ull,
+ 4102484066224877701ull, 2404669144633679031ull}},
+ {{13597546140965152398ull, 1710104479241211855ull,
+ 516419064353709223ull, 3005836430792098789ull}},
+ {{12385246657779052593ull, 15972688654333678531ull,
+ 5257209848869524432ull, 3757295538490123486ull}},
+ {{5434936151898213919ull, 9982930408958549082ull,
+ 17120814210825616482ull, 2348309711556327178ull}},
+ {{16017042226727543207ull, 3255290974343410544ull,
+ 12177645726677244795ull, 2935387139445408973ull}},
+ {{1574558709699877392ull, 17904171773211426893ull,
+ 1386999103064392281ull, 3669233924306761217ull}},
+ {{6579884405552234644ull, 8545156661232119904ull,
+ 6345434897257878256ull, 4586542405383451521ull}},
+ {{4112427753470146653ull, 5340722913270074940ull,
+ 15495111856854643670ull, 2866589003364657200ull}},
+ {{5140534691837683316ull, 15899275678442369483ull,
+ 922145747358752971ull, 3583236254205821501ull}},
+ {{1813982346369716241ull, 15262408579625573950ull,
+ 5764368202625829118ull, 4479045317757276876ull}},
+ {{14968797021763236363ull, 4927319343838595814ull,
+ 12826102163495919007ull, 2799403323598298047ull}},
+ {{9487624240349269645ull, 1547463161370856864ull,
+ 11420941685942510855ull, 3499254154497872559ull}},
+ {{11859530300436587056ull, 15769387006995734792ull,
+ 9664491089000750664ull, 4374067693122340699ull}},
+ {{7412206437772866910ull, 9855866879372334245ull,
+ 3734463921411775213ull, 2733792308201462937ull}},
+ {{13876944065643471542ull, 16931519617642805710ull,
+ 9279765920192106920ull, 3417240385251828671ull}},
+ {{8122808045199563619ull, 2717655448343955522ull,
+ 6988021381812745747ull, 4271550481564785839ull}},
+ {{9688441046677115166ull, 17839435719710829865ull,
+ 11285042391274047947ull, 2669719050977991149ull}},
+ {{16722237326773781862ull, 17687608631211149427ull,
+ 271244933810396222ull, 3337148813722488937ull}},
+ {{16291110640039839423ull, 12886138752159160976ull,
+ 4950742185690383182ull, 4171436017153111171ull}},
+ {{10181944150024899640ull, 3442150701672087706ull,
+ 788370856842795537ull, 2607147510720694482ull}},
+ {{3504058150676348741ull, 8914374395517497537ull,
+ 10208835607908270229ull, 3258934388400868102ull}},
+ {{8991758706772823831ull, 15754654012824259825ull,
+ 3537672473030561978ull, 4073667985501085128ull}},
+ {{17149064237801484654ull, 14458344776442550294ull,
+ 2211045295644101236ull, 2546042490938178205ull}},
+ {{12212958260397080010ull, 18072930970553187868ull,
+ 7375492637982514449ull, 3182553113672722756ull}},
+ {{15266197825496350012ull, 8756105657909321123ull,
+ 9219365797478143062ull, 3978191392090903445ull}},
+ {{7235530631721524806ull, 860880017765937798ull, 8067946632637533366ull,
+ 2486369620056814653ull}},
+ {{18267785326506681815ull, 10299472059062198055ull,
+ 14696619309224304611ull, 3107962025071018316ull}},
+ {{18223045639705964365ull, 8262654055400359665ull,
+ 18370774136530380764ull, 3884952531338772895ull}},
+ {{4471874497175145872ull, 14387530821480000599ull,
+ 18399262862972569833ull, 2428095332086733059ull}},
+ {{978157103041544436ull, 4149355471567837037ull,
+ 18387392560288324388ull, 3035119165108416324ull}},
+ {{5834382397229318449ull, 5186694339459796296ull,
+ 4537496626650853869ull, 3793898956385520406ull}},
+ {{3646488998268324031ull, 5547526971376066637ull,
+ 16670993446938947380ull, 2371186847740950253ull}},
+ {{9169797266262792942ull, 6934408714220083296ull,
+ 7003683753391520513ull, 2963983559676187817ull}},
+ {{11462246582828491178ull, 13279696911202492024ull,
+ 13366290710166788545ull, 3704979449595234771ull}},
+ {{7163904114267806986ull, 1382281541860475659ull,
+ 6048088684640548889ull, 2315612155997021732ull}},
+ {{4343194124407370829ull, 6339537945752982478ull,
+ 7560110855800686111ull, 2894515194996277165ull}},
+ {{14652364692363989344ull, 3312736413763840193ull,
+ 14061824588178245543ull, 3618143993745346456ull}},
+ {{4480397810172822968ull, 17975978572486963954ull,
+ 17577280735222806928ull, 4522679992181683070ull}},
+ {{7411934649785402259ull, 11234986607804352471ull,
+ 6374114441086866426ull, 2826674995113551919ull}},
+ {{4653232293804364919ull, 4820361222900664781ull,
+ 3355957032931195129ull, 3533343743891939899ull}},
+ {{10428226385682844053ull, 10637137547053218880ull,
+ 18030004346446157623ull, 4416679679864924873ull}},
+ {{6517641491051777533ull, 13565739994549343656ull,
+ 4351223688887766658ull, 2760424799915578046ull}},
+ {{8147051863814721917ull, 7733802956331903762ull,
+ 14662401647964484131ull, 3450530999894472557ull}},
+ {{960442792913626588ull, 5055567676987491799ull, 4492944004673441452ull,
+ 4313163749868090697ull}},
+ {{7517805773212098474ull, 12383101834971958182ull,
+ 14337305048989370667ull, 2695727343667556685ull}},
+ {{173885179660347284ull, 10867191275287559824ull,
+ 4086573255954549622ull, 3369659179584445857ull}},
+ {{217356474575434105ull, 4360617057254673972ull, 9719902588370574932ull,
+ 4212073974480557321ull}},
+ {{9359219833464422124ull, 11948757697638947040ull,
+ 17604154163800079092ull, 2632546234050348325ull}},
+ {{11699024791830527654ull, 14935947122048683800ull,
+ 8170134649467935153ull, 3290682792562935407ull}},
+ {{14623780989788159568ull, 4834875847278691038ull,
+ 5600982293407531038ull, 4113353490703669259ull}},
+ {{4528177100190211826ull, 16856855459831345611ull,
+ 1194770924166012946ull, 2570845931689793287ull}},
+ {{1048535356810376878ull, 11847697287934406206ull,
+ 15328521710489679895ull, 3213557414612241608ull}},
+ {{10534041232867746906ull, 10197935591490619853ull,
+ 713908064402548253ull, 4016946768265302011ull}},
+ {{8889618779756035768ull, 8679552753895331360ull,
+ 16587093604747450322ull, 2510591730165813756ull}},
+ {{11112023474695044710ull, 1626068905514388392ull,
+ 2287122932224761287ull, 3138239662707267196ull}},
+ {{13890029343368805888ull, 15867644187175149202ull,
+ 2858903665280951608ull, 3922799578384083995ull}},
+ {{13292954358032891584ull, 9917277616984468251ull,
+ 17927715855296452419ull, 2451749736490052496ull}},
+ {{12004506929113726576ull, 7784911002803197410ull,
+ 3962900745411013908ull, 3064687170612565621ull}},
+ {{5782261624537382412ull, 9731138753503996763ull,
+ 9565311950191155289ull, 3830858963265707026ull}},
+ {{1308070506122170056ull, 17611176767008467737ull,
+ 10590005987296859959ull, 2394286852041066891ull}},
+ {{6246774151080100473ull, 17402284940333196767ull,
+ 8625821465693687045ull, 2992858565051333614ull}},
+ {{3196781670422737688ull, 7917798120134332247ull,
+ 1558904795262332999ull, 3741073206314167018ull}},
+ {{8915517571655292911ull, 11866152852725039510ull,
+ 5586001515466346028ull, 2338170753946354386ull}},
+ {{1921024927714340331ull, 14832691065906299388ull,
+ 16205873931187708343ull, 2922713442432942982ull}},
+ {{2401281159642925413ull, 13929177813955486331ull,
+ 11033970377129859621ull, 3653391803041178728ull}},
+ {{16836659504835820478ull, 3576414212162194201ull,
+ 13792462971412324527ull, 4566739753801473410ull}},
+ {{3605383162881305943ull, 9152787910242453232ull,
+ 13231975375560090733ull, 2854212346125920881ull}},
+ {{4506728953601632429ull, 16052670906230454444ull,
+ 2704911164167949704ull, 3567765432657401102ull}},
+ {{5633411192002040536ull, 1619094559078516439ull,
+ 12604510992064712939ull, 4459706790821751377ull}},
+ {{10438411022642357191ull, 17152835163919930438ull,
+ 960290342399363730ull, 2787316744263594611ull}},
+ {{3824641741448170681ull, 12217671918045137240ull,
+ 15035420983281368375ull, 3484145930329493263ull}},
+ {{4780802176810213351ull, 10660403879129033646ull,
+ 14182590210674322565ull, 4355182412911866579ull}},
+ {{16823059415788547056ull, 8968595433669339980ull,
+ 6558275872457757651ull, 2721989008069916612ull}},
+ {{2582080196026132204ull, 6599058273659287072ull,
+ 8197844840572197064ull, 3402486260087395765ull}},
+ {{3227600245032665255ull, 8248822842074108840ull,
+ 14858992069142634234ull, 4253107825109244706ull}},
+ {{2017250153145415785ull, 9767200294723705929ull,
+ 13898556061641534300ull, 2658192390693277941ull}},
+ {{7133248709859157635ull, 12209000368404632411ull,
+ 3538137021769754163ull, 3322740488366597427ull}},
+ {{4304874868896559139ull, 10649564442078402610ull,
+ 18257729332494356416ull, 4153425610458246783ull}},
+ {{7302232811487737366ull, 6655977776299001631ull,
+ 18328609860450054616ull, 2595891006536404239ull}},
+ {{4516104995932283804ull, 8319972220373752039ull,
+ 18299076307135180366ull, 3244863758170505299ull}},
+ {{1033445226487966851ull, 1176593238612414241ull,
+ 18262159365491587554ull, 4056079697713131624ull}},
+ {{12175118312623449042ull, 5347056792560146804ull,
+ 11413849603432242221ull, 2535049811070707265ull}},
+ {{15218897890779311302ull, 11295507009127571409ull,
+ 432253949008139064ull, 3168812263838384082ull}},
+ {{5188564308191975416ull, 14119383761409464262ull,
+ 9763689473114949638ull, 3961015329797980102ull}},
+ {{17077910747902148347ull, 4212928832453527259ull,
+ 1490619902269455620ull, 2475634581123737564ull}},
+ {{16735702416450297529ull, 5266161040566909074ull,
+ 1863274877836819525ull, 3094543226404671955ull}},
+ {{11696255983708096104ull, 11194387319136024247ull,
+ 16164151652578188118ull, 3868179033005839943ull}},
+ {{14227689017458641921ull, 2384806056032627250ull,
+ 17020123810502449430ull, 2417611895628649964ull}},
+ {{8561239234968526593ull, 12204379606895559871ull,
+ 2828410689418510171ull, 3022014869535812456ull}},
+ {{6089863025283270337ull, 10643788490192061935ull,
+ 3535513361773137714ull, 3777518586919765570ull}},
+ {{10723693418443125817ull, 11264053824797426613ull,
+ 6821381869535598975ull, 2360949116824853481ull}},
+ {{18016302791481295175ull, 9468381262569395362ull,
+ 13138413355346886623ull, 2951186396031066851ull}},
+ {{13297006452496843161ull, 7223790559784356299ull,
+ 11811330675756220375ull, 3688982995038833564ull}},
+ {{12009572047193666047ull, 4418052181303057470ull,
+ 14764163344695275469ull, 4611228743798541955ull}},
+ {{2894296511068653375ull, 5067125622528104871ull,
+ 6921759081220853216ull, 2882017964874088722ull}},
+ {{17452928694117980431ull, 6333907028160131088ull,
+ 17875570888380842328ull, 3602522456092610902ull}},
+ {{3369416793937923923ull, 7917383785200163861ull,
+ 13121091573621277102ull, 4503153070115763628ull}},
+ {{4411728505424896404ull, 336678847322714509ull,
+ 17424054270368073997ull, 2814470668822352267ull}},
+ {{10126346650208508409ull, 5032534577580781040ull,
+ 17168381819532704592ull, 3518088336027940334ull}},
+ {{12657933312760635511ull, 6290668221975976300ull,
+ 12237105237561104932ull, 4397610420034925418ull}},
+ {{17134580357330173003ull, 13155039675589760995ull,
+ 12259876791903078486ull, 2748506512521828386ull}},
+ {{16806539428235328349ull, 7220427557632425436ull,
+ 6101473953024072300ull, 3435633140652285483ull}},
+ {{2561430211584608820ull, 9025534447040531796ull,
+ 3015156422852702471ull, 4294541425815356854ull}},
+ {{10824265919095156321ull, 12558488057041414228ull,
+ 15719530819565102756ull, 2684088391134598033ull}},
+ {{13530332398868945401ull, 15698110071301767785ull,
+ 5814355469174214733ull, 3355110488918247542ull}},
+ {{3077857443304018039ull, 5787579533845046020ull,
+ 16491316373322544225ull, 4193888111147809427ull}},
+ {{11147032938919787083ull, 15146452254721623522ull,
+ 8001229724112896188ull, 2621180069467380892ull}},
+ {{4710419136794958045ull, 486321244692477787ull,
+ 10001537155141120236ull, 3276475086834226115ull}},
+ {{1276337902566309652ull, 607901555865597234ull, 7890235425499012391ull,
+ 4095593858542782644ull}},
+ {{5409397207531331437ull, 7297467500057080127ull,
+ 14154769177791658552ull, 2559746161589239152ull}},
+ {{2150060490986776392ull, 9121834375071350159ull,
+ 17693461472239573190ull, 3199682701986548940ull}},
+ {{16522633669015634202ull, 2178920931984411890ull,
+ 3670082766589914872ull, 3999603377483186176ull}},
+ {{14938332061562159280ull, 1361825582490257431ull,
+ 2293801729118696795ull, 2499752110926991360ull}},
+ {{14061229058525311196ull, 15537340033394985501ull,
+ 2867252161398370993ull, 3124690138658739200ull}},
+ {{3741478267874475283ull, 5586616986461568165ull,
+ 3584065201747963742ull, 3905862673323424000ull}},
+ {{4644266926635241004ull, 17326693671820643815ull,
+ 2240040751092477338ull, 2441164170827140000ull}},
+ {{1193647639866663351ull, 12434995052921028961ull,
+ 2800050938865596673ull, 3051455213533925000ull}},
+ {{6103745568260717093ull, 1708685760869122489ull,
+ 3500063673581995842ull, 3814319016917406250ull}},
+ {{15344056026231417943ull, 5679614618970589459ull,
+ 6799225814416135305ull, 2383949385573378906ull}},
+ {{14568384014361884525ull, 11711204292140624728ull,
+ 17722404304874944939ull, 2979936731966723632ull}},
+ {{18210480017952355656ull, 10027319346748393006ull,
+ 3706261307384129558ull, 3724920914958404541ull}},
+ {{6769863992792834381ull, 1655388573290357725ull,
+ 4622256326328774926ull, 2328075571849002838ull}},
+ {{13074016009418430880ull, 11292607753467722964ull,
+ 15001192444765744465ull, 2910094464811253547ull}},
+ {{16342520011773038600ull, 280701636552489993ull,
+ 14139804537529792678ull, 3637618081014066934ull}},
+ {{6593091959434134538ull, 9574249082545388300ull,
+ 8451383635057465039ull, 4547022601267583668ull}},
+ {{13344054511501109895ull, 12901434704231949543ull,
+ 14505486808765691457ull, 2841889125792239792ull}},
+ {{12068382120948999464ull, 2291735325007773217ull,
+ 18131858510957114322ull, 3552361407240299740ull}},
+ {{1250419595904085618ull, 12088041193114492330ull,
+ 4218079064986841286ull, 4440451759050374676ull}},
+ {{5393198265867441415ull, 2943339727269169802ull,
+ 11859671452471551612ull, 2775282349406484172ull}},
+ {{15964869869189077577ull, 3679174659086462252ull,
+ 14824589315589439515ull, 3469102936758105215ull}},
+ {{1509343262776795355ull, 18434026379140241528ull,
+ 13919050626059411489ull, 4336378670947631519ull}},
+ {{943339539235497097ull, 4603737459321569099ull,
+ 15616935668928214037ull, 2710236669342269699ull}},
+ {{15014232479326535083ull, 10366357842579349277ull,
+ 14909483567732879642ull, 3387795836677837124ull}},
+ {{4932732543876005142ull, 3734575266369410789ull, 190110385956547937ull,
+ 4234744795847296406ull}},
+ {{5388800849136197166ull, 13863324587549351503ull,
+ 13953877046505006172ull, 2646715497404560253ull}},
+ {{2124315042992858553ull, 17329155734436689379ull,
+ 3607288252849094003ull, 3308394371755700317ull}},
+ {{16490451859023236904ull, 17049758649618473819ull,
+ 9120796334488755408ull, 4135492964694625396ull}},
+ {{8000689402675829113ull, 10656099156011546137ull,
+ 14923869745910247938ull, 2584683102934140872ull}},
+ {{14612547771772174295ull, 4096751908159656863ull,
+ 208093108678258307ull, 3230853878667676091ull}},
+ {{13653998696287829965ull, 509253866772183175ull,
+ 14095174441129986596ull, 4038567348334595113ull}},
+ {{15451278212820975584ull, 9541655703587390292ull,
+ 1891954998065159766ull, 2524104592709121946ull}},
+ {{867353692316667864ull, 2703697592629462058ull,
+ 11588315784436225516ull, 3155130740886402432ull}},
+ {{10307564152250610638ull, 3379621990786827572ull,
+ 14485394730545281895ull, 3943913426108003040ull}},
+ {{15665599632011407457ull, 9029792771882849088ull,
+ 9053371706590801184ull, 2464945891317501900ull}},
+ {{1135255466304707705ull, 11287240964853561361ull,
+ 11316714633238501480ull, 3081182364146877375ull}},
+ {{6030755351308272535ull, 14109051206066951701ull,
+ 9534207273120738946ull, 3851477955183596719ull}},
+ {{6075065103781364287ull, 13429843022219232717ull,
+ 12876408573341543697ull, 2407173721989747949ull}},
+ {{12205517398154093262ull, 2952245722491877184ull,
+ 2260452661394765910ull, 3008967152487184937ull}},
+ {{15256896747692616578ull, 12913679189969622288ull,
+ 7437251845170845291ull, 3761208940608981171ull}},
+ {{9535560467307885361ull, 5765206484517319978ull,
+ 2342439394018084355ull, 2350755587880613232ull}},
+ {{2696078547280080893ull, 2594822087219262069ull,
+ 2928049242522605444ull, 2938444484850766540ull}},
+ {{7981784202527489021ull, 3243527609024077586ull,
+ 3660061553153256805ull, 3673055606063458175ull}},
+ {{753858216304585468ull, 8666095529707484887ull,
+ 18410134996723734718ull, 4591319507579322718ull}},
+ {{7388690412831447773ull, 804623687639790150ull, 6894648354524946295ull,
+ 2869574692237076699ull}},
+ {{12490979184533909ull, 14840837664831901400ull, 4006624424728794964ull,
+ 3586968365296345874ull}},
+ {{15613723980667386ull, 104303007330325134ull, 14231652567765769514ull,
+ 4483710456620432342ull}},
+ {{13844816632770080828ull, 4676875398008841112ull,
+ 4283096836426218042ull, 2802319035387770214ull}},
+ {{17306020790962601035ull, 15069466284365827198ull,
+ 14577243082387548360ull, 3502898794234712767ull}},
+ {{12409153951848475486ull, 390088781747732382ull,
+ 13609867834557047547ull, 4378623492793390959ull}},
+ {{3144035201477909275ull, 16384706553088190403ull,
+ 15423696424239236572ull, 2736639682995869349ull}},
+ {{17765102057129550305ull, 2034139117650686387ull,
+ 5444562475016882004ull, 3420799603744836687ull}},
+ {{17594691552984549978ull, 2542673897063357984ull,
+ 2194017075343714601ull, 4275999504681045859ull}},
+ {{10996682220615343736ull, 13118386231733068500ull,
+ 17512161736585679289ull, 2672499690425653661ull}},
+ {{13745852775769179670ull, 2562924734384171913ull,
+ 8055144115449935400ull, 3340624613032067077ull}},
+ {{3347257914429310876ull, 3203655917980214892ull,
+ 14680616162739807154ull, 4175780766290083846ull}},
+ {{11315408233373095105ull, 6613970967165022211ull,
+ 4563699083284991567ull, 2609862978931302404ull}},
+ {{9532574273288980978ull, 3655777690528889860ull,
+ 5704623854106239459ull, 3262328723664128005ull}},
+ {{11915717841611226222ull, 18404780168443276037ull,
+ 11742465836060187227ull, 4077910904580160006ull}},
+ {{9753166660220710341ull, 9197144596063353571ull,
+ 2727355129110229113ull, 2548694315362600004ull}},
+ {{7579772306848500022ull, 16108116763506579868ull,
+ 3409193911387786391ull, 3185867894203250005ull}},
+ {{9474715383560625027ull, 15523459935955836931ull,
+ 8873178407662120893ull, 3982334867754062506ull}},
+ {{3615854105511696690ull, 12008005469186092034ull,
+ 10157422523216213462ull, 2488959292346289066ull}},
+ {{13743189668744396671ull, 5786634799627839234ull,
+ 3473406117165491020ull, 3111199115432861333ull}},
+ {{7955615049075720030ull, 7233293499534799043ull,
+ 8953443664884251679ull, 3888998894291076666ull}},
+ {{2666416396458631067ull, 11438337464850331258ull,
+ 10207588308980045203ull, 2430624308931922916ull}},
+ {{12556392532428064642ull, 9686235812635526168ull,
+ 12759485386225056504ull, 3038280386164903645ull}},
+ {{15695490665535080802ull, 12107794765794407710ull,
+ 2114298677499156918ull, 3797850482706129557ull}},
+ {{5197995647532037597ull, 2955685710194116915ull,
+ 3627279682650667026ull, 2373656551691330973ull}},
+ {{1885808540987659093ull, 12917979174597421952ull,
+ 9145785621740721686ull, 2967070689614163716ull}},
+ {{2357260676234573866ull, 6924101931392001632ull,
+ 11432232027175902108ull, 3708838362017704645ull}},
+ {{1473287922646608666ull, 13550935743974776828ull,
+ 9450988026198632769ull, 2318023976261065403ull}},
+ {{1841609903308260833ull, 3103611624686307323ull,
+ 7202049014320903058ull, 2897529970326331754ull}},
+ {{16137070434417489753ull, 13102886567712659961ull,
+ 18225933304755904630ull, 3621912462907914692ull}},
+ {{6336279987739698479ull, 7155236172786049144ull,
+ 4335672557235329172ull, 4527390578634893366ull}},
+ {{3960174992337311550ull, 13695394644846056523ull,
+ 16544853403554244444ull, 2829619111646808353ull}},
+ {{338532721994251533ull, 17119243306057570654ull,
+ 6846008699160641843ull, 3537023889558510442ull}},
+ {{9646537939347590224ull, 16787368114144575413ull,
+ 17780882910805578112ull, 4421279861948138052ull}},
+ {{8334929221305937842ull, 10492105071340359633ull,
+ 1889679782398710512ull, 2763299913717586283ull}},
+ {{15030347545059810206ull, 13115131339175449541ull,
+ 16197157783280551852ull, 3454124892146982853ull}},
+ {{4952876376042599046ull, 16393914173969311927ull,
+ 6411389173818526103ull, 4317656115183728567ull}},
+ {{10013076762667706260ull, 17163725386371901810ull,
+ 10924647261277660670ull, 2698535071989830354ull}},
+ {{3292973916479857017ull, 12231284696110101455ull,
+ 4432437039742300030ull, 3373168839987287943ull}},
+ {{17951275450881984983ull, 6065733833282851010ull,
+ 928860281250487134ull, 4216461049984109929ull}},
+ {{15831233175228628518ull, 17626141701083945593ull,
+ 12109752721850024218ull, 2635288156240068705ull}},
+ {{5953983413753621936ull, 12809305089500156184ull,
+ 1302132847030366561ull, 3294110195300085882ull}},
+ {{7442479267192027420ull, 2176573306593031518ull,
+ 10851038095642734010ull, 4117637744125107352ull}},
+ {{39863523567629234ull, 5972044335048032603ull, 6781898809776708756ull,
+ 2573523590078192095ull}},
+ {{13884887459741700254ull, 7465055418810040753ull,
+ 3865687493793498041ull, 3216904487597740119ull}},
+ {{3521051269394961605ull, 13943005291939938846ull,
+ 220423348814484647ull, 4021130609497175149ull}},
+ {{16035715098654014715ull, 15631907335103543634ull,
+ 2443607602222746856ull, 2513206630935734468ull}},
+ {{10821271836462742586ull, 1093140095169877927ull,
+ 3054509502778433571ull, 3141508288669668085ull}},
+ {{8914903777151040329ull, 15201483174244511121ull,
+ 8429822896900429867ull, 3926885360837085106ull}},
+ {{17101029906787869966ull, 7195083974689125498ull,
+ 9880325328990156571ull, 2454303350523178191ull}},
+ {{12152915346630061649ull, 4382168949934018969ull,
+ 7738720642810307810ull, 3067879188153972739ull}},
+ {{1356086128005413349ull, 14701083224272299520ull,
+ 5061714785085496858ull, 3834848985192465924ull}},
+ {{847553830003383343ull, 13799863033597575104ull,
+ 12386943777533211344ull, 2396780615745291202ull}},
+ {{1059442287504229179ull, 17249828791996968880ull,
+ 6260307685061738372ull, 2995975769681614003ull}},
+ {{1324302859380286474ull, 3115541916286659484ull,
+ 3213698587899785062ull, 3744969712102017504ull}},
+ {{10051061323967454854ull, 15782271752961325889ull,
+ 2008561617437365663ull, 2340606070063760940ull}},
+ {{17175512673386706472ull, 15116153672774269457ull,
+ 2510702021796707079ull, 2925757587579701175ull}},
+ {{7634332786451219377ull, 14283506072540448918ull,
+ 16973435582528047561ull, 3657196984474626468ull}},
+ {{319543946209248414ull, 4019324535393397436ull, 2770050404450507836ull,
+ 4571496230593283086ull}},
+ {{9423087003235556067ull, 11735449871475649205ull,
+ 15566339558063731109ull, 2857185144120801928ull}},
+ {{16390544772471832987ull, 834254284062397794ull,
+ 1011180373870112271ull, 3571481430151002411ull}},
+ {{11264808928735015426ull, 14877875910360160955ull,
+ 15099033522619804050ull, 4464351787688753013ull}},
+ {{4734662571245690689ull, 13910358462402488501ull,
+ 11742738960851071483ull, 2790219867305470633ull}},
+ {{10530014232484501266ull, 12776262059575722722ull,
+ 843365645781675642ull, 3487774834131838292ull}},
+ {{3939145753750850774ull, 6746955537614877595ull,
+ 1054207057227094553ull, 4359718542664797865ull}},
+ {{156123086880587782ull, 15746062257077768257ull,
+ 12188094456835403855ull, 2724824089165498665ull}},
+ {{4806839877028122631ull, 15070891802919822417ull,
+ 1400060015762091107ull, 3406030111456873332ull}},
+ {{10620235864712541193ull, 14226928735222390117ull,
+ 1750075019702613884ull, 4257537639321091665ull}},
+ {{8943490424659032198ull, 18115202496368769631ull,
+ 12623011933382603437ull, 2660961024575682290ull}},
+ {{6567677012396402343ull, 8808945065178798327ull,
+ 6555392879873478489ull, 3326201280719602863ull}},
+ {{3597910247068115025ull, 15622867349900885813ull,
+ 3582555081414460207ull, 4157751600899503579ull}},
+ {{4554536913631265843ull, 16681821121329135489ull,
+ 18379997990379895293ull, 2598594750562189736ull}},
+ {{10304857160466470207ull, 7017218346379255649ull,
+ 4528253414265317501ull, 3248243438202737171ull}},
+ {{17492757469010475663ull, 13383208951401457465ull,
+ 1048630749404258972ull, 4060304297753421464ull}},
+ {{4015444390490465433ull, 17587877631480686724ull,
+ 655394218377661857ull, 2537690186095888415ull}},
+ {{5019305488113081792ull, 8149788984068694693ull,
+ 14654300828254241034ull, 3172112732619860518ull}},
+ {{10885817878568740143ull, 963864193231092558ull,
+ 9094503998463025485ull, 3965140915774825648ull}},
+ {{2191950155678074686ull, 2908258129983126801ull,
+ 5684064999039390928ull, 2478213072359266030ull}},
+ {{7351623713024981261ull, 3635322662478908501ull,
+ 16328453285654014468ull, 3097766340449082537ull}},
+ {{13801215659708614480ull, 4544153328098635626ull,
+ 6575508551785354373ull, 3872207925561353172ull}},
+ {{13237445805745271954ull, 5145938839275341218ull,
+ 13333064881720622291ull, 2420129953475845732ull}},
+ {{7323435220326814135ull, 1820737530666788619ull,
+ 16666331102150777864ull, 3025162441844807165ull}},
+ {{4542608006981129764ull, 2275921913333485774ull,
+ 6997855822406308618ull, 3781453052306008957ull}},
+ {{16674188059645369815ull, 6034137214260816512ull,
+ 6679502898217636838ull, 2363408157691255598ull}},
+ {{2395991000847160653ull, 16766043554680796449ull,
+ 17572750659626821855ull, 2954260197114069497ull}},
+ {{7606674769486338720ull, 16345868424923607657ull,
+ 8130880269251363607ull, 3692825246392586872ull}},
+ {{16283386776997431460ull, 17133696793218336641ull,
+ 5081800168282102254ull, 2308015778995366795ull}},
+ {{6519175415964625613ull, 12193748954668144994ull,
+ 1740564191925239914ull, 2885019723744208494ull}},
+ {{17372341306810557824ull, 6018814156480405434ull,
+ 11399077276761325701ull, 3606274654680260617ull}},
+ {{12492054596658421472ull, 12135203714027894697ull,
+ 413788540669493414ull, 4507843318350325772ull}},
+ {{890005095270431564ull, 2972816302840046282ull, 9481989874773209192ull,
+ 2817402073968953607ull}},
+ {{10335878405942815263ull, 3716020378550057852ull,
+ 7240801325039123586ull, 3521752592461192009ull}},
+ {{12919848007428519078ull, 13868397510042348123ull,
+ 13662687674726292386ull, 4402190740576490011ull}},
+ {{5769061995429130472ull, 13279434462203855481ull,
+ 6233336787490238789ull, 2751369212860306257ull}},
+ {{11823013512713800994ull, 2764235022472655639ull,
+ 12403357002790186391ull, 3439211516075382821ull}},
+ {{10167080872464863339ull, 17290351833372983261ull,
+ 1669138198205569276ull, 4299014395094228527ull}},
+ {{8660268554504233539ull, 1583097859003338730ull,
+ 7960740401519562654ull, 2686883996933892829ull}},
+ {{1601963656275516115ull, 11202244360608949221ull,
+ 14562611520326841221ull, 3358604996167366036ull}},
+ {{6614140588771783048ull, 167747395479022814ull,
+ 18203264400408551527ull, 4198256245209207545ull}},
+ {{17968895923264528117ull, 7022371149815471114ull,
+ 4459511222614262848ull, 2623910153255754716ull}},
+ {{13237747867225884338ull, 8777963937269338893ull,
+ 5574389028267828560ull, 3279887691569693395ull}},
+ {{2712126778750191711ull, 10972454921586673617ull,
+ 2356300266907397796ull, 4099859614462116744ull}},
+ {{13224294282787339580ull, 16081156362846446818ull,
+ 1472687666817123622ull, 2562412259038822965ull}},
+ {{7306995816629398666ull, 10878073416703282715ull,
+ 6452545601948792432ull, 3203015323798528706ull}},
+ {{4522058752359360429ull, 13597591770879103394ull,
+ 17289054039290766348ull, 4003769154748160882ull}},
+ {{7437972738651988172ull, 17721866893654215429ull,
+ 15417344792984116871ull, 2502355721717600551ull}},
+ {{13909151941742373119ull, 17540647598640381382ull,
+ 14659994972802758185ull, 3127944652147000689ull}},
+ {{8163067890323190591ull, 8090751443018313016ull,
+ 4489935660721284020ull, 3909930815183750862ull}},
+ {{5101917431451994119ull, 14280091688741221443ull,
+ 16641267843232966224ull, 2443706759489844288ull}},
+ {{1765710770887604745ull, 17850114610926526804ull,
+ 2354840730331656164ull, 3054633449362305361ull}},
+ {{2207138463609505931ull, 3865899189948606889ull,
+ 7555236931341958110ull, 3818291811702881701ull}},
+ {{12908676585824410967ull, 16251245049000043017ull,
+ 7027866091302417770ull, 2386432382314301063ull}},
+ {{2300787676998349997ull, 11090684274395277964ull,
+ 4173146595700634309ull, 2983040477892876329ull}},
+ {{2875984596247937496ull, 28297287711933743ull, 9828119263053180791ull,
+ 3728800597366095411ull}},
+ {{8715019400296042791ull, 6935214832461040445ull,
+ 3836731530194544042ull, 2330500373353809632ull}},
+ {{15505460268797441393ull, 17892390577431076364ull,
+ 4795914412743180052ull, 2913125466692262040ull}},
+ {{935081262287250125ull, 3918744148079293840ull, 5994893015928975066ull,
+ 3641406833365327550ull}},
+ {{1168851577859062656ull, 14121802221953893108ull,
+ 16716988306765994640ull, 4551758541706659437ull}},
+ {{9953904273016689968ull, 8826126388721183192ull,
+ 12753960700942440602ull, 2844849088566662148ull}},
+ {{12442380341270862460ull, 1809285949046703182ull,
+ 15942450876178050753ull, 3556061360708327685ull}},
+ {{6329603389733802267ull, 6873293454735766882ull,
+ 6093005539940399729ull, 4445076700885409607ull}},
+ {{8567688137011014321ull, 15825023455278324061ull,
+ 10725657490103831686ull, 2778172938053381004ull}},
+ {{15321296189691155805ull, 10557907282243129268ull,
+ 13407071862629789608ull, 3472716172566726255ull}},
+ {{704876163404393140ull, 13197384102803911586ull,
+ 12147153809859849106ull, 4340895215708407819ull}},
+ {{5052233620555133617ull, 12860051082679832645ull,
+ 5286128121948711739ull, 2713059509817754887ull}},
+ {{10926978044121304925ull, 11463377834922402902ull,
+ 1995974134008501770ull, 3391324387272193609ull}},
+ {{4435350518296855348ull, 5105850256798227820ull,
+ 7106653685938015117ull, 4239155484090242011ull}},
+ {{11995466110790310401ull, 5496999419712586339ull,
+ 2135815544497565496ull, 2649472177556401257ull}},
+ {{10382646620060500097ull, 6871249274640732924ull,
+ 7281455449049344774ull, 3311840221945501571ull}},
+ {{12978308275075625121ull, 17812433630155691963ull,
+ 4490133292884293063ull, 4139800277431876964ull}},
+ {{5805599662708571749ull, 18050300046488389333ull,
+ 12029705344907458972ull, 2587375173394923102ull}},
+ {{11868685596813102590ull, 4116130984400935050ull,
+ 5813759644279547908ull, 3234218966743653878ull}},
+ {{5612484959161602429ull, 5145163730501168813ull,
+ 16490571592204210693ull, 4042773708429567347ull}},
+ {{5813646108689695470ull, 5521570340776924460ull,
+ 8000764235913937731ull, 2526733567768479592ull}},
+ {{7267057635862119338ull, 2290276907543767671ull,
+ 10000955294892422164ull, 3158416959710599490ull}},
+ {{4472136026400261268ull, 2862846134429709589ull,
+ 3277822081760751897ull, 3948021199638249363ull}},
+ {{5100928025713857245ull, 13318493880087038253ull,
+ 18189539865596327599ull, 2467513249773905851ull}},
+ {{10987846050569709460ull, 12036431331681409912ull,
+ 18125238813568021595ull, 3084391562217382314ull}},
+ {{13734807563212136825ull, 10433853146174374486ull,
+ 13433176480105251186ull, 3855489452771727893ull}},
+ {{3972568708580197612ull, 11132844234786371958ull,
+ 10701578309279475943ull, 2409680907982329933ull}},
+ {{14189082922580022823ull, 9304369275055577043ull,
+ 17988658905026732833ull, 3012101134977912416ull}},
+ {{13124667634797640624ull, 16242147612246859208ull,
+ 4039079557573864425ull, 3765126418722390521ull}},
+ {{8202917271748525390ull, 3233813230013205149ull,
+ 14053639769552135026ull, 2353204011701494075ull}},
+ {{14865332608113044642ull, 13265638574371282244ull,
+ 12955363693512780878ull, 2941505014626867594ull}},
+ {{134921686431754186ull, 7358676181109326998ull, 6970832580036200290ull,
+ 3676881268283584493ull}},
+ {{9392024144894468540ull, 18421717263241434555ull,
+ 13325226743472638266ull, 4596101585354480616ull}},
+ {{3564172081345348886ull, 16125259307953284501ull,
+ 8328266714670398916ull, 2872563490846550385ull}},
+ {{9066901120109074011ull, 1709830061232054010ull,
+ 15022019411765386550ull, 3590704363558187981ull}},
+ {{2110254363281566706ull, 11360659613394843321ull,
+ 4942466209424569475ull, 4488380454447734977ull}},
+ {{12848124023119448951ull, 4794569249158083123ull,
+ 14618256426958825682ull, 2805237784029834360ull}},
+ {{11448469010471923285ull, 15216583598302379712ull,
+ 18272820533698532102ull, 3506547230037292950ull}},
+ {{14310586263089904106ull, 9797357461023198832ull,
+ 13617653630268389320ull, 4383184037546616188ull}},
+ {{8944116414431190067ull, 6123348413139499270ull,
+ 17734405555772519133ull, 2739490023466635117ull}},
+ {{1956773481184211775ull, 12265871534851761992ull,
+ 8332948889433485204ull, 3424362529333293897ull}},
+ {{2445966851480264719ull, 15332339418564702490ull,
+ 15027872130219244409ull, 4280453161666617371ull}},
+ {{6140415300602553353ull, 2665183108961857200ull,
+ 7086577072173333804ull, 2675283226041635857ull}},
+ {{7675519125753191692ull, 3331478886202321500ull,
+ 13469907358644055159ull, 3344104032552044821ull}},
+ {{9594398907191489614ull, 17999406663035065587ull,
+ 3002326143022905236ull, 4180130040690056027ull}},
+ {{3690656307780987057ull, 2026257127542140184ull,
+ 18017354903885173437ull, 2612581275431285016ull}},
+ {{4613320384726233821ull, 7144507427855063134ull,
+ 4074949556146915180ull, 3265726594289106271ull}},
+ {{14990022517762568085ull, 8930634284818828917ull,
+ 482000926756256071ull, 4082158242861382839ull}},
+ {{11674607082815299005ull, 12499175455652849929ull,
+ 7218779606863741900ull, 2551348901788364274ull}},
+ {{758200798236960044ull, 15623969319566062412ull,
+ 18246846545434453183ull, 3189186127235455342ull}},
+ {{947750997796200055ull, 14918275631030190111ull,
+ 13585186144938290671ull, 3986482659044319178ull}},
+ {{7509873401263706891ull, 16241451297034950675ull,
+ 13102427359013819573ull, 2491551661902699486ull}},
+ {{4775655733152245709ull, 6466756066011524632ull,
+ 7154662161912498659ull, 3114439577378374358ull}},
+ {{5969569666440307136ull, 3471759064087017886ull,
+ 18166699739245399132ull, 3893049471722967947ull}},
+ {{17566039096807355672ull, 11393221451909161986ull,
+ 9048344327814680505ull, 2433155919826854967ull}},
+ {{12734176834154418782ull, 406468759604288771ull,
+ 6698744391340962728ull, 3041444899783568709ull}},
+ {{11306035024265635574ull, 508085949505360964ull,
+ 12985116507603591314ull, 3801806124729460886ull}},
+ {{16289643927020798042ull, 4929239736868238506ull,
+ 3504011798824856667ull, 2376128827955913054ull}},
+ {{11138682871921221744ull, 1549863652657910229ull,
+ 13603386785385846642ull, 2970161034944891317ull}},
+ {{88295534619363468ull, 11160701602677163595ull, 3169175426450144590ull,
+ 3712701293681114147ull}},
+ {{16196085773632959832ull, 2363752483245839342ull,
+ 18121635706027198033ull, 2320438308550696341ull}},
+ {{11021735180186423982ull, 7566376622484687082ull,
+ 8816986577251833829ull, 2900547885688370427ull}},
+ {{4553796938378254169ull, 14069656796533246757ull,
+ 6409547203137404382ull, 3625684857110463034ull}},
+ {{10303932191400205615ull, 8363698958811782638ull,
+ 17235306040776531286ull, 4532106071388078792ull}},
+ {{1828271601197740605ull, 615625830829976245ull,
+ 10772066275485332054ull, 2832566294617549245ull}},
+ {{6897025519924563661ull, 9992904325392246114ull,
+ 18076768862784052971ull, 3540707868271936556ull}},
+ {{17844653936760480384ull, 7879444388312919738ull,
+ 4149217004770514598ull, 4425884835339920696ull}},
+ {{15764594728902688144ull, 312966724268186932ull,
+ 2593260627981571624ull, 2766178022087450435ull}},
+ {{1258999337418808564ull, 391208405335233666ull,
+ 17076633840259128242ull, 3457722527609313043ull}},
+ {{10797121208628286513ull, 9712382543523817890ull,
+ 16734106281896522398ull, 4322153159511641304ull}},
+ {{11359886773820066975ull, 1458553071274998277ull,
+ 10458816426185326499ull, 2701345724694775815ull}},
+ {{364800411992920006ull, 15658249394375911559ull,
+ 8461834514304270219ull, 3376682155868469769ull}},
+ {{14291058570273313720ull, 14961125724542501544ull,
+ 15188979161307725678ull, 4220852694835587211ull}},
+ {{8931911606420821075ull, 4739017559411675561ull,
+ 7187268966603634597ull, 2638032934272242007ull}},
+ {{15776575526453414248ull, 10535457967691982355ull,
+ 4372400189827155342ull, 3297541167840302509ull}},
+ {{15109033389639379905ull, 3945950422760202136ull,
+ 10077186255711332082ull, 4121926459800378136ull}},
+ {{9443145868524612441ull, 7077905032652514239ull,
+ 6298241409819582551ull, 2576204037375236335ull}},
+ {{7192246317228377647ull, 4235695272388254895ull,
+ 3261115743847090285ull, 3220255046719045419ull}},
+ {{4378621878108084155ull, 9906305108912706523ull,
+ 17911452735091026568ull, 4025318808398806773ull}},
+ {{430795664603858645ull, 6191440693070441577ull,
+ 13500500968645585557ull, 2515824255249254233ull}},
+ {{5150180599182211210ull, 12350986884765439875ull,
+ 3040568155524818234ull, 3144780319061567792ull}},
+ {{1826039730550376108ull, 6215361569102024036ull,
+ 3800710194406022793ull, 3930975398826959740ull}},
+ {{10364646868448760876ull, 15413816026757234782ull,
+ 11598815908358540053ull, 2456859624266849837ull}},
+ {{3732436548706175287ull, 5432211978164379766ull, 663461830166011355ull,
+ 3071074530333562297ull}},
+ {{13888917722737494916ull, 2178578954278086803ull,
+ 5441013306134902098ull, 3838843162916952871ull}},
+ {{6374730567497240371ull, 5973297864851192156ull,
+ 10318162343975395667ull, 2399276976823095544ull}},
+ {{7968413209371550464ull, 2854936312636602291ull,
+ 12897702929969244584ull, 2999096221028869430ull}},
+ {{5348830493287050175ull, 3568670390795752864ull,
+ 6898756625606779922ull, 3748870276286086788ull}},
+ {{3343019058304406360ull, 6842105012674733444ull,
+ 13535094927859013259ull, 2343043922678804242ull}},
+ {{4178773822880507950ull, 3940945247416028901ull,
+ 7695496622968990766ull, 2928804903348505303ull}},
+ {{9835153297028022841ull, 14149553596124811934ull,
+ 5007684760283850553ull, 3661006129185631629ull}},
+ {{3070569584430252743ull, 3851883939873851206ull,
+ 10871291968782201096ull, 4576257661482039536ull}},
+ {{15754164045551071677ull, 2407427462421157003ull,
+ 6794557480488875685ull, 2860161038426274710ull}},
+ {{15081019038511451692ull, 7620970346453834158ull,
+ 17716568887465870414ull, 3575201298032843387ull}},
+ {{9627901761284538806ull, 302840896212516890ull,
+ 17534025090904950114ull, 4469001622541054234ull}},
+ {{10629124619230224658ull, 4800961578560210960ull,
+ 15570451700242981725ull, 2793126014088158896ull}},
+ {{13286405774037780823ull, 10612887991627651604ull,
+ 1016320551594175540ull, 3491407517610198621ull}},
+ {{16608007217547226028ull, 13266109989534564505ull,
+ 5882086707920107329ull, 4364259397012748276ull}},
+ {{3462475483325934412ull, 1373789715818020960ull,
+ 12899676229304842889ull, 2727662123132967672ull}},
+ {{4328094354157418015ull, 6328923163199914104ull,
+ 16124595286631053611ull, 3409577653916209590ull}},
+ {{5410117942696772518ull, 3299467935572504726ull,
+ 10932372071434041206ull, 4261972067395261988ull}},
+ {{17216381769467646536ull, 15897225515014979165ull,
+ 16056104581501051561ull, 2663732542122038742ull}},
+ {{7685419156552394458ull, 6036473838486560245ull,
+ 10846758690021538644ull, 3329665677652548428ull}},
+ {{14218459964117880976ull, 7545592298108200306ull,
+ 13558448362526923305ull, 4162082097065685535ull}},
+ {{13498223496001063514ull, 16245210232386094951ull,
+ 15391559254220408921ull, 2601301310666053459ull}},
+ {{12261093351573941489ull, 6471454735200454977ull,
+ 14627763049348123248ull, 3251626638332566824ull}},
+ {{1491308634185263149ull, 8089318419000568722ull,
+ 18284703811685154060ull, 4064533297915708530ull}},
+ {{5543753914793177372ull, 14279196048730131259ull,
+ 16039625900730609191ull, 2540333311197317831ull}},
+ {{2318006375064083811ull, 13237309042485276170ull,
+ 15437846357485873585ull, 3175416638996647289ull}},
+ {{12120880005684880572ull, 2711578247824431500ull,
+ 5462249891575178270ull, 3969270798745809112ull}},
+ {{16798922040407826166ull, 15529794460172433399ull,
+ 3413906182234486418ull, 2480794249216130695ull}},
+ {{16386966532082394803ull, 10188871038360765941ull,
+ 18102440783075271735ull, 3100992811520163368ull}},
+ {{6648650109820829791ull, 8124402779523569523ull,
+ 4181306905134538053ull, 3876241014400204211ull}},
+ {{1849563309424324668ull, 7383594746415924904ull, 307473806495392331ull,
+ 2422650634000127632ull}}
+};
diff --git a/Scripts/generate-src/common.py b/Scripts/generate-src/common.py
new file mode 100644
index 0000000..1febe80
--- /dev/null
+++ b/Scripts/generate-src/common.py
@@ -0,0 +1,231 @@
+from dataclasses import dataclass
+
+GENERATED_HEADER = """\
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+"""
+
+# ===============
+# === Decimal ===
+# ===============
+
+
+@dataclass
+class DecimalType:
+ """
+ See 'DecimalMixin' for the meaning of those fields.
+ Mostly from IEEE-754: Table 3.6 — Decimal interchange format parameters 0
+ """
+
+ name: str
+ # k, storage width in bits
+ bit_width: int
+ # stored UInt
+ bid_type: str
+ # double precision bid
+ double_bid_type: str
+ # w+5, combination field width in bits
+ combination_width: int
+ # bias, E − q
+ exponent_bias: int
+ # emax
+ emax: int
+ # t, trailing significand field width in bits
+ trailing_significand_width: int
+ # p, precision in digits
+ precision_in_digits: int
+ max_decimal_digits: str
+ pi_decimal_digits: str
+
+
+DECIMAL_TYPES = [
+ DecimalType(
+ name="Decimal32",
+ bit_width=32,
+ bid_type="UInt32",
+ double_bid_type="UInt64",
+ combination_width=11,
+ exponent_bias=101,
+ emax=96,
+ trailing_significand_width=20,
+ precision_in_digits=7,
+ max_decimal_digits="9_999_999",
+ pi_decimal_digits="3_141_592",
+ ),
+ DecimalType(
+ name="Decimal64",
+ bit_width=64,
+ bid_type="UInt64",
+ double_bid_type="UInt128",
+ combination_width=13,
+ exponent_bias=398,
+ emax=384,
+ trailing_significand_width=50,
+ precision_in_digits=16,
+ max_decimal_digits="9_999_999_999_999_999",
+ pi_decimal_digits="3_141_592_653_589_793",
+ ),
+ DecimalType(
+ name="Decimal128",
+ bit_width=128,
+ bid_type="_UInt128",
+ double_bid_type="UInt256",
+ combination_width=17,
+ exponent_bias=6176,
+ emax=6144,
+ trailing_significand_width=110,
+ precision_in_digits=34,
+ max_decimal_digits='BID("9999999999999999999999999999999999")!',
+ pi_decimal_digits='BID("3141592653589793238462643383279502")!',
+ ),
+]
+
+
+# ===========
+# === Int ===
+# ===========
+
+
+@dataclass
+class IntType:
+ "Int, UInt"
+ name: str
+ int64_type: str
+
+
+@dataclass
+class IntWidthType:
+ "Int64, UInt64 etc."
+ name: str
+ intel_name: str
+
+
+AnyIntType = IntType | IntWidthType
+
+INT_TYPES: list[AnyIntType] = [
+ IntType("Int", "Int64"),
+ IntType("UInt", "UInt64"),
+ IntWidthType("Int8", "int8"),
+ IntWidthType("UInt8", "uint8"),
+ IntWidthType("Int16", "int16"),
+ IntWidthType("UInt16", "uint16"),
+ IntWidthType("Int32", "int32"),
+ IntWidthType("UInt32", "uint32"),
+ IntWidthType("Int64", "int64"),
+ IntWidthType("UInt64", "uint64"),
+]
+
+
+# =============================
+# === Binary floating point ===
+# =============================
+
+
+@dataclass
+class BinaryFloatingPointType:
+ "Float, Double, Float80"
+ name: str
+
+
+BINARY_FLOATING_POINT_TYPES: list[BinaryFloatingPointType] = [
+ BinaryFloatingPointType("Float"),
+ BinaryFloatingPointType("Double"),
+ BinaryFloatingPointType("Float80"),
+]
+
+
+# ================
+# === Rounding ===
+# ================
+
+
+class Rounding:
+ "Default rounding direction."
+
+ # From Swift stdlib -> FloatingPointParsing.swift:
+ #
+ # /// A decimal or hexadecimal string is converted to a `Double`
+ # /// instance using the IEEE 754 roundTiesToEven (default) rounding
+ # /// attribute.
+ string_to_decimal = "toNearestOrEven"
+
+ # From Swift stdlib -> Integers.swift:
+ #
+ # public protocol BinaryInteger {
+ # /// Creates an integer from the given floating-point value, rounding toward
+ # /// zero.
+ # ///
+ # /// Any fractional part of the value passed as `source` is removed, rounding
+ # /// the value toward zero.
+ # ///
+ # /// let x = Int(21.5)
+ # /// // x == 21
+ # /// let y = Int(-21.5)
+ # /// // y == -21
+ # init(_ source: T)
+ decimal_to_int = "towardZero"
+ # From Swift stdlib -> FloatingPoint.swift:
+ #
+ # public protocol BinaryFloatingPoint {
+ # /// Creates a new value, rounded to the closest possible representation.
+ # ///
+ # /// If two representable values are equally close, the result is the value
+ # /// with more trailing zeros in its significand bit pattern.
+ # public init(_ value: Source)
+ #
+ # NOTE: This is not an exact match for the Swift rule.
+ int_to_decimal = "toNearestOrEven"
+
+ # From Swift stdlib -> FloatingPoint.swift (BinaryFloatingPoint -> BinaryFloatingPoint):
+ #
+ # extension BinaryFloatingPoint {
+ # static func _convert(
+ # from source: Source
+ # ) -> (value: Self, exact: Bool) {
+ # (…)
+ # // If two representable values are equally close, we return the value with
+ # // more trailing zeros in its significand bit pattern.
+ #
+ # NOTE: This is not an exact match for the Swift rule.
+ decimal_to_binary_floating_point = "toNearestOrEven"
+ binary_to_decimal_floating_point = "toNearestOrEven"
+
+ decimal_to_decimal = "toNearestOrEven"
+
+ # Bankers rounding. Obviously…
+ math = "toNearestOrEven"
+ # This one is hard to chose.
+ quantize = "toNearestOrEven"
+ # IEEE-754 scaleB operation
+ scaleb = "toNearestOrEven"
+ # From Swift stdlib -> FloatingPoint.swift:
+ #
+ # extension FloatingPoint {
+ # @_transparent
+ # public mutating func round() {
+ # round(.toNearestOrAwayFromZero)
+ # }
+ round = "toNearestOrAwayFromZero"
+
+
+_ROUNDING_REPLACEMENTS: dict[str, str] = {
+ "{default_rounding_string_to_decimal}": Rounding.string_to_decimal,
+ "{default_rounding_decimal_to_int}": Rounding.decimal_to_int,
+ "{default_rounding_int_to_decimal}": Rounding.int_to_decimal,
+ "{default_rounding_decimal_to_binary_floating_point}": Rounding.decimal_to_binary_floating_point,
+ "{default_rounding_binary_to_decimal_floating_point}": Rounding.binary_to_decimal_floating_point,
+ "{default_rounding_decimal_to_decimal}": Rounding.decimal_to_decimal,
+ "{default_rounding_math}": Rounding.math,
+ "{default_rounding_scaleb}": Rounding.scaleb,
+ "{default_rounding_quantize}": Rounding.quantize,
+ "{default_rounding_round}": Rounding.round,
+}
+
+
+def replace_rounding_in_template(template: str) -> str:
+ for key, value in _ROUNDING_REPLACEMENTS.items():
+ template = template.replace(key, value)
+
+ return template
diff --git a/Scripts/generate-src/decimal_protocol.py b/Scripts/generate-src/decimal_protocol.py
new file mode 100644
index 0000000..a6a6436
--- /dev/null
+++ b/Scripts/generate-src/decimal_protocol.py
@@ -0,0 +1,687 @@
+import os
+import re
+from io import TextIOWrapper
+from dataclasses import dataclass
+from common import GENERATED_HEADER, replace_rounding_in_template
+
+
+def generate(output_dir: str):
+ path = os.path.join(output_dir, f"DecimalFloatingPoint.swift")
+
+ with open(path, "w") as f:
+ f.write(GENERATED_HEADER)
+ f.write(
+ """\
+// This code was generated based on the 'public' operations from 'Decimal64'.
+// =============================================================================
+
+/// It is a truth universally acknowledged, that `0.1 + 0.2` must be
+/// `0.30000000000000004`.
+///
+/// …
+///
+/// This is a radix 10 (decimal) floating-point type from IEEE 754.
+public protocol DecimalFloatingPoint: Comparable, Hashable,
+ Sendable, Codable,
+ ExpressibleByIntegerLiteral,
+ CustomStringConvertible {
+"""
+ )
+
+ # We will use this file to generate the protocol.
+ decimal64_path = os.path.join(output_dir, "Decimal64.swift")
+ _write_requirements(f, decimal64_path)
+
+ f.write("}\n")
+ f.write("\n")
+
+ _write_extension(f)
+
+
+# ====================
+# === Requirements ===
+# ====================
+
+
+def _write_requirements(f: TextIOWrapper, decimal64_path: str):
+ with open(decimal64_path, "r") as d64:
+ swift_code = d64.read()
+ declarations = _parse_public_declarations(swift_code)
+
+ def write_doc(doc: str):
+ doc = doc.strip()
+ for l in doc.splitlines():
+ f.write(" ")
+ f.write(l)
+ f.write("\n")
+
+ def write_arg(arg: _Arg):
+ if arg.label:
+ f.write(arg.label)
+ f.write(" ")
+
+ f.write(arg.name)
+ f.write(": ")
+ f.write(arg.type)
+
+ def write_args(args: list[_Arg]):
+ args_len = len(args)
+
+ if args_len == 1:
+ write_arg(args[0])
+ elif args_len > 1:
+ for i, a in enumerate(args):
+ f.write("\n ")
+ write_arg(a)
+ if i != args_len - 1:
+ f.write(",")
+
+ for d in declarations:
+ if isinstance(d, _Struct):
+ assert d.name == "Decimal64"
+
+ elif isinstance(d, _Typealias):
+ f.write("\n")
+ write_doc(d.doc)
+
+ if d.name == "Exponent":
+ f.write(
+ " associatedtype Exponent: SignedInteger & FixedWidthInteger\n"
+ )
+ elif d.name == "BitPattern":
+ f.write(
+ " associatedtype BitPattern: UnsignedInteger & FixedWidthInteger\n"
+ )
+ else:
+ assert False, d.name
+
+ elif isinstance(d, _Init):
+ if len(d.args) > 0:
+ a = d.args[0]
+
+ # Conversion is specific to a given width.
+ # There is nothing to generalize.
+ is_decimal_conversion = a.name == "value" and a.type in (
+ "Decimal32",
+ "Decimal64",
+ "Decimal128",
+ )
+
+ if is_decimal_conversion or a.type == "Decoder":
+ continue
+
+ f.write("\n")
+ write_doc(d.doc)
+ f.write(" ")
+ f.write(d.name)
+
+ f.write("(")
+ write_args(d.args)
+ if len(d.args) > 1:
+ f.write("\n ")
+ f.write(")")
+
+ f.write("\n")
+
+ elif isinstance(d, _Property):
+ f.write("\n")
+ write_doc(d.doc)
+ f.write(" ")
+
+ if d.is_static:
+ f.write("static ")
+
+ f.write("var ")
+ f.write(d.name)
+ f.write(": ")
+ f.write(d.type)
+ f.write(" { get }\n")
+
+ elif isinstance(d, _Func):
+ if d.name in ("hash", "encode"):
+ # This one is already in 'Hashable'
+ continue
+
+ f.write("\n")
+ write_doc(d.doc)
+ f.write(" ")
+
+ if d.modifiers:
+ f.write(d.modifiers)
+ f.write(" ")
+
+ f.write("func ")
+ f.write(d.name)
+
+ f.write("(")
+ write_args(d.args)
+ if len(d.args) > 1:
+ f.write("\n ")
+ f.write(")")
+
+ if d.return_type is not None:
+ f.write(" -> ")
+ f.write(d.return_type)
+
+ f.write("\n")
+
+ elif isinstance(d, _ConditionalCompilation):
+ f.write("\n")
+ f.write(d.line)
+ f.write("\n")
+
+ else:
+ assert False, d
+
+
+@dataclass
+class _Struct:
+ doc: str
+ name: str
+
+
+@dataclass
+class _Typealias:
+ doc: str
+ name: str
+
+
+@dataclass
+class _Property:
+ doc: str
+ is_static: bool
+ keyword: str
+ name: str
+ type: str
+
+
+@dataclass
+class _Arg:
+ label: str | None
+ name: str
+ type: str
+ default_value: str | None
+
+
+@dataclass
+class _Init:
+ doc: str
+ name: str
+ args: list[_Arg]
+
+
+@dataclass
+class _Func:
+ doc: str
+ modifiers: str
+ name: str
+ args: list[_Arg]
+ return_type: str | None
+
+
+@dataclass
+class _ConditionalCompilation:
+ line: str
+
+
+_Declaration = (
+ _Struct | _Typealias | _Init | _Property | _Func | _ConditionalCompilation
+)
+
+
+def _parse_public_declarations(swift_code: str) -> list[_Declaration]:
+ result: list[_Declaration] = []
+
+ lines = swift_code.splitlines()
+ line_index = 0
+ line_index_end = len(lines)
+ doc_lines: list[str] = []
+
+ def get_doc() -> str:
+ result = "\n".join(doc_lines)
+ doc_lines.clear()
+ return result
+
+ def get_function_declaration_lines(initial_index: int) -> list[str]:
+ index = initial_index
+ result: list[str] = []
+
+ while index != line_index_end:
+ line = lines[index]
+ result.append(line)
+ index += 1
+
+ if "{" in line:
+ break
+
+ return result
+
+ while line_index != line_index_end:
+ line = lines[line_index].strip()
+ current_line_index = line_index
+ line_index += 1
+
+ if line.startswith("///"):
+ doc_lines.append(line)
+ continue
+
+ if line.startswith("#"):
+ result.append(_ConditionalCompilation(line))
+ doc_lines.clear()
+ continue
+
+ if not line.startswith("public"):
+ doc_lines.clear()
+ continue
+
+ line = line.replace("public", "", 1).strip()
+
+ if _starts_with(line, "struct"):
+ r = re.search("struct\\s+(\\w+)", line)
+ if r is None:
+ assert False, line
+
+ doc = get_doc()
+ name = r.group(1)
+ result.append(_Struct(doc, name))
+ continue
+
+ if _starts_with(line, "typealias"):
+ r = re.search("typealias\\s+(\\w+)\\s+=", line)
+ if r is None:
+ assert False, line
+
+ doc = get_doc()
+ name = r.group(1)
+ result.append(_Typealias(doc, name))
+ continue
+
+ if _starts_with(line, "init"):
+ fn_lines = get_function_declaration_lines(current_line_index)
+ fn = _parse_func(fn_lines)
+
+ doc = get_doc()
+ result.append(_Init(doc, fn.name, fn.args))
+ continue
+
+ if _starts_with(line, "let", "var", "static let", "static var"):
+ doc = get_doc()
+
+ r = re.search("(static)?\\s*(var|let)\\s+(\\w+)\\s*[=:]\\s*(\\w+)", line)
+ if r is None:
+ assert False, line
+
+ is_static = r.group(1) is not None
+ keyword = r.group(2)
+ name = r.group(3)
+
+ type = r.group(4)
+ type = "Int" if name == "radix" else type
+
+ result.append(_Property(doc, is_static, keyword, name, type))
+ continue
+
+ if _starts_with(
+ line, "func", "mutating func", "static func", "static prefix func"
+ ):
+ fn_lines = get_function_declaration_lines(current_line_index)
+ fn = _parse_func(fn_lines)
+ fn.doc = get_doc()
+ result.append(fn)
+ continue
+
+ assert False, "Unknown public declaration: " + line
+
+ return result
+
+
+def _starts_with(s: str, *args: str) -> bool:
+ for a in args:
+ if s.startswith(a):
+ return True
+
+ return False
+
+
+def _parse_func(lines: list[str]) -> _Func:
+ line = ""
+
+ for l in lines:
+ line += " "
+ line += l.strip()
+
+ line = line.replace("public", "").strip()
+ while " " in line:
+ line = line.replace(" ", " ")
+
+ pattern_name = "([^\\(]+)" # not '('
+ pattern_args = "([^\\)]*)" # not ')'
+ pattern_return_type = "([^{]*)" # not '{}'
+ pattern = f"{pattern_name}\\({pattern_args}\\)\\s*{pattern_return_type}"
+
+ r = re.search(pattern, line)
+ if r is None:
+ assert False, line
+
+ name_group = r.group(1).replace("func ", "", 1)
+ modifiers = ""
+
+ for m in ("mutating ", "static ", "prefix "):
+ if m in name_group:
+ modifiers += m
+ name_group = name_group.replace(m, "", 1)
+
+ modifiers = modifiers.strip()
+ name = name_group.strip()
+
+ args: list[_Arg] = []
+ args_str = r.group(2).strip()
+
+ if args_str:
+ for s in args_str.split(","):
+ split = s.split(":")
+
+ label_name = split[0].strip()
+ label_name_split = label_name.split(" ")
+
+ if len(label_name_split) == 1:
+ label = None
+ n = label_name_split[0].strip()
+ else:
+ label = label_name_split[0].strip()
+ n = label_name_split[1].strip()
+
+ type_default = split[1].strip()
+ type_default_split = type_default.split("=")
+ type = type_default_split[0].strip()
+
+ default = (
+ None if len(type_default_split) == 1 else type_default_split[1].strip()
+ )
+
+ args.append(_Arg(label, n, type, default))
+
+ return_type: str | None = r.group(3).replace("->", "").strip()
+ if not return_type:
+ return_type = None
+
+ return _Func("", modifiers, name, args, return_type)
+
+
+# =================
+# === Extension ===
+# =================
+
+
+def _write_extension(f: TextIOWrapper):
+ dir = os.path.dirname(__file__)
+ extension_file = os.path.join(dir, "DECIMAL_PROTOCOL_EXTENSION.swift")
+
+ with open(extension_file, "r") as ext:
+ code = ext.read()
+
+ code = _replace_float_overload(
+ code,
+ marker="{init_from_float}",
+ type_name="Float",
+ )
+
+ code = _replace_float_overload(
+ code,
+ marker="{init_from_double}",
+ type_name="Double",
+ )
+
+ code = _replace_float_overload(
+ code,
+ marker="{init_from_float80}",
+ type_name="Float80",
+ )
+
+ code = _replace_binary_overloads(
+ code,
+ marker="{binary_overloads_add}",
+ fn_name="adding",
+ fn_name_mutating="add",
+ )
+
+ code = _replace_binary_overloads(
+ code,
+ marker="{binary_overloads_sub}",
+ fn_name="subtracting",
+ fn_name_mutating="subtract",
+ )
+
+ code = _replace_binary_overloads(
+ code,
+ marker="{binary_overloads_mul}",
+ fn_name="multiplied",
+ fn_name_mutating="multiply",
+ first_arg_label="by",
+ )
+
+ code = _replace_binary_overloads(
+ code,
+ marker="{binary_overloads_div}",
+ fn_name="divided",
+ fn_name_mutating="divide",
+ first_arg_label="by",
+ )
+
+ code = _replace_binary_overloads(
+ code,
+ marker="{binary_overloads_quantize}",
+ fn_name="quantized",
+ fn_name_mutating="quantize",
+ first_arg_label="to",
+ )
+
+ code = _replace_unary_overloads(
+ code,
+ marker="{unary_overloads_square_root}",
+ fn_name="squareRoot",
+ fn_name_mutating="formSquareRoot",
+ rounding_arg_label="",
+ rounding_arg_name="rounding",
+ default_rounding="{default_rounding_math}",
+ )
+
+ code = _replace_unary_overloads(
+ code,
+ marker="{unary_overloads_round}",
+ fn_name="rounded",
+ fn_name_mutating="round",
+ rounding_arg_label="_",
+ rounding_arg_name="rule",
+ default_rounding="{default_rounding_round}",
+ )
+
+ code = replace_rounding_in_template(code)
+ f.write(code)
+
+
+def _replace_float_overload(code: str, marker: str, type_name: str) -> str:
+ new_code = f"""\
+ // overload: only rounding or no args
+ public init(
+ _ value: {type_name},
+ rounding: DecimalFloatingPointRoundingRule = .{{default_rounding_binary_to_decimal_floating_point}}
+ ) {{
+ var status = DecimalStatus()
+ self = Self(value, rounding: rounding, status: &status)
+ }}
+
+ // overload: only status
+ public init(
+ _ value: {type_name},
+ status: inout DecimalStatus
+ ) {{
+ let rounding = DecimalFloatingPointRoundingRule.{{default_rounding_binary_to_decimal_floating_point}}
+ self = Self(value, rounding: rounding, status: &status)
+ }}
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter value: A floating-point value to be converted.
+ public init?(
+ exactly value: {type_name},
+ status: inout DecimalStatus
+ ) {{
+ // Separate status to avoid polluting 'status' argument with 'isInexact'.
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var s = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &s)
+
+ if s.isSet(.isInexact) {{
+ return nil
+ }}
+
+ if s.isBinaryFloatingPointSubnormal {{
+ status.set(.isBinaryFloatingPointSubnormal)
+ }}
+ }}
+
+ // overload: no status
+ public init?(exactly value: {type_name}) {{
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.{{default_rounding_binary_to_decimal_floating_point}}
+ self = Self(value, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {{
+ return nil
+ }}
+ }}
+"""
+
+ if type_name == "Float80":
+ new_code = (
+ "#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)\n\n"
+ + new_code
+ + "\n#endif"
+ )
+
+ return code.replace(marker, new_code)
+
+
+def _replace_binary_overloads(
+ code: str,
+ marker: str,
+ fn_name: str,
+ fn_name_mutating: str,
+ first_arg_label: str = "",
+):
+ arg_label = first_arg_label or "_"
+ call_label = first_arg_label + ": " if first_arg_label else ""
+
+ return code.replace(
+ marker,
+ f"""\
+ public mutating func {fn_name_mutating}(
+ {arg_label} other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {{
+ self = self.{fn_name}({call_label}other, rounding: rounding, status: &status)
+ }}
+
+ // overload: only rounding or no args
+ public mutating func {fn_name_mutating}(
+ {arg_label} other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .{{default_rounding_math}}
+ ) {{
+ var status = DecimalStatus()
+ self = self.{fn_name}({call_label}other, rounding: rounding, status: &status)
+ }}
+
+ // overload: only status
+ public mutating func {fn_name_mutating}(
+ {arg_label} other: Self,
+ status: inout DecimalStatus
+ ) {{
+ let rounding = DecimalFloatingPointRoundingRule.{{default_rounding_math}}
+ self = self.{fn_name}({call_label}other, rounding: rounding, status: &status)
+ }}
+
+ // overload: only rounding or no args
+ public func {fn_name}(
+ {arg_label} other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .{{default_rounding_math}}
+ ) -> Self {{
+ var status = DecimalStatus()
+ return self.{fn_name}({call_label}other, rounding: rounding, status: &status)
+ }}
+
+ // overload: only status
+ public func {fn_name}(
+ {arg_label} other: Self,
+ status: inout DecimalStatus
+ ) -> Self {{
+ let rounding = DecimalFloatingPointRoundingRule.{{default_rounding_math}}
+ return self.{fn_name}({call_label}other, rounding: rounding, status: &status)
+ }}\
+""",
+ )
+
+
+def _replace_unary_overloads(
+ code: str,
+ marker: str,
+ fn_name: str,
+ fn_name_mutating: str,
+ rounding_arg_label: str,
+ rounding_arg_name: str,
+ default_rounding: str,
+):
+ arg_label = rounding_arg_label + " " if rounding_arg_label else ""
+ call_label = "" if rounding_arg_label == "_" else rounding_arg_name + ": "
+
+ return code.replace(
+ marker,
+ f"""\
+ public mutating func {fn_name_mutating}(
+ {arg_label}{rounding_arg_name}: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {{
+ self = self.{fn_name}({call_label}{rounding_arg_name}, status: &status)
+ }}
+
+ // overload: only rounding or no args
+ public mutating func {fn_name_mutating}(
+ {arg_label}{rounding_arg_name}: DecimalFloatingPointRoundingRule = .{default_rounding}
+ ) {{
+ var status = DecimalStatus()
+ self = self.{fn_name}({call_label}{rounding_arg_name}, status: &status)
+ }}
+
+ // overload: only status
+ public mutating func {fn_name_mutating}(
+ status: inout DecimalStatus
+ ) {{
+ let {rounding_arg_name} = DecimalFloatingPointRoundingRule.{default_rounding}
+ self = self.{fn_name}({call_label}{rounding_arg_name}, status: &status)
+ }}
+
+ // overload: only rounding or no args
+ public func {fn_name}(
+ {arg_label}{rounding_arg_name}: DecimalFloatingPointRoundingRule = .{default_rounding}
+ ) -> Self {{
+ var status = DecimalStatus()
+ return self.{fn_name}({call_label}{rounding_arg_name}, status: &status)
+ }}
+
+ // overload: only status
+ public func {fn_name}(
+ status: inout DecimalStatus
+ ) -> Self {{
+ let {rounding_arg_name} = DecimalFloatingPointRoundingRule.{default_rounding}
+ return self.{fn_name}({call_label}{rounding_arg_name}, status: &status)
+ }}\
+""",
+ )
diff --git a/Scripts/generate-src/decimals.py b/Scripts/generate-src/decimals.py
new file mode 100644
index 0000000..c4063fa
--- /dev/null
+++ b/Scripts/generate-src/decimals.py
@@ -0,0 +1,120 @@
+import os
+from io import TextIOWrapper
+from common import (
+ Rounding,
+ DecimalType,
+ GENERATED_HEADER,
+ DECIMAL_TYPES,
+ replace_rounding_in_template,
+)
+
+
+def generate(output_dir: str):
+ dir = os.path.dirname(__file__)
+ template_file = os.path.join(dir, "DECIMAL_TEMPLATE.swift")
+
+ with open(template_file, "r") as f:
+ template = f.read()
+
+ for d in DECIMAL_TYPES:
+ path = os.path.join(output_dir, f"{d.name}.swift")
+
+ with open(path, "w") as f:
+ f.write(GENERATED_HEADER)
+ f.write("\n")
+ t = _specialize(template, d)
+ f.write(t)
+
+
+def _specialize(template: str, d: DecimalType) -> str:
+ t = replace_rounding_in_template(template)
+ t = t.replace("{name}", d.name)
+ t = t.replace("{bit_width}", str(d.bit_width))
+ t = t.replace("{bid_type}", str(d.bid_type))
+ t = t.replace("{double_bid_type}", str(d.double_bid_type))
+ t = t.replace("{combination_width}", str(d.combination_width))
+ t = t.replace("{exponent_bias}", str(d.exponent_bias))
+ t = t.replace("{emax}", str(d.emax))
+ t = t.replace("{trailing_significand_width}", str(d.trailing_significand_width))
+ t = t.replace("{precision_in_digits}", str(d.precision_in_digits))
+ t = t.replace("{max_decimal_digits}", d.max_decimal_digits)
+ t = t.replace("{pi_decimal_digits}", d.pi_decimal_digits)
+
+ decimal_conversion = ""
+
+ for source in DECIMAL_TYPES:
+ if d.bit_width > source.bit_width:
+ decimal_conversion += create_from_smaller(source)
+ elif d.bit_width < source.bit_width:
+ decimal_conversion += create_from_bigger(source)
+
+ decimal_conversion = decimal_conversion.strip("\n")
+ t = t.replace("{decimal_conversion}", decimal_conversion)
+
+ return t
+
+
+def create_from_smaller(source: DecimalType):
+ return f"""
+ /// Creates a new instance from the given value.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(_ value: Decimal{source.bit_width}) {{
+ self = Self._init(smaller: value)
+ }}
+"""
+
+
+def create_from_bigger(source: DecimalType):
+ return f"""
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Decimal{source.bit_width},
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {{
+ self = Self._init(bigger: value, rounding: rounding, status: &status)
+ }}
+
+ // overload: only rounding or no args
+ public init(
+ _ value: Decimal{source.bit_width},
+ rounding: DecimalFloatingPointRoundingRule = .{Rounding.decimal_to_decimal}
+ ) {{
+ var status = DecimalStatus()
+ self = Self(value, rounding: rounding, status: &status)
+ }}
+
+ // overload: only status
+ public init(
+ _ value: Decimal{source.bit_width},
+ status: inout DecimalStatus
+ ) {{
+ let rounding = DecimalFloatingPointRoundingRule.{Rounding.decimal_to_decimal}
+ self = Self(value, rounding: rounding, status: &status)
+ }}
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter value: A floating-point value to be converted.
+ public init?(exactly value: Decimal{source.bit_width}) {{
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.{Rounding.decimal_to_decimal}
+ self = Self._init(bigger: value, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {{
+ return nil
+ }}
+ }}
+"""
diff --git a/Scripts/generate-src/int_extensions.py b/Scripts/generate-src/int_extensions.py
new file mode 100644
index 0000000..9996a97
--- /dev/null
+++ b/Scripts/generate-src/int_extensions.py
@@ -0,0 +1,98 @@
+import os
+from common import GENERATED_HEADER, DECIMAL_TYPES, INT_TYPES, Rounding
+
+
+def generate(output_dir: str):
+ path = os.path.join(output_dir, f"Int+Decimal.swift")
+
+ with open(path, "w") as f:
+ f.write(GENERATED_HEADER)
+
+ f.write("\n")
+ f.write("// swiftlint:disable line_length\n")
+ f.write("\n")
+ f.write("extension FixedWidthInteger {\n")
+
+ for d in DECIMAL_TYPES:
+ f.write(
+ f"""
+ // MARK: - {d.name}
+
+ /// Creates an integer from the given floating-point value, rounding using the
+ /// specified rounding mode.
+ ///
+ /// If `source` is outside the bounds of this type after rounding, a runtime
+ /// error may occur.
+ ///
+ /// let z = UInt(-21.5)
+ /// // Error: ...the result would be less than UInt.min
+ ///
+ /// - Parameter source: A floating-point value to convert to an integer.
+ /// `source` must be representable in this type after rounding.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: {d.name},
+ rounding: DecimalFloatingPointRoundingRule = .{Rounding.decimal_to_int}
+ ) {{
+ precondition(
+ source._isFinite,
+ "{d.name} value cannot be converted to \\(Self.self) because it is either infinite or NaN"
+ )
+
+ // This method raises:
+ // - isInexact - we don't care
+ // - isInvalidOperation - unrepresentable value -> fail
+ var status = DecimalStatus()
+ self = source._toExactlyInt(rounding: rounding, status: &status)
+
+ if status.isInvalidOperation {{
+ // We will make a tiny assumption, but:
+ // - this assumption is valid for every Swift.stdlib type
+ // - it makes our code trivial
+ if source._isNegative {{
+ preconditionFailure("{d.name} value cannot be converted to \\(Self.self) because the result would be less than \\(Self.self).min")
+ }}
+
+ preconditionFailure("{d.name} value cannot be converted to \\(Self.self) because the result would be greater than \\(Self.self).max")
+ }}
+ }}
+
+ /// Creates an integer from the given floating-point value, if it can be
+ /// represented exactly.
+ ///
+ /// If the value passed as `source` is not representable exactly, the result
+ /// is `nil`. In the following example, the constant `x` is successfully
+ /// created from a value of `21.0`, while the attempt to initialize the
+ /// constant `y` from `21.5` fails:
+ ///
+ /// let x = Int(exactly: 21.0)
+ /// // x == Optional(21)
+ /// let y = Int(exactly: 21.5)
+ /// // y == nil
+ ///
+ /// - Parameter source: A floating-point value to convert to an integer.
+ public init?(exactly source: {d.name}) {{
+ guard source.isFinite else {{
+ return nil
+ }}
+
+ // This method raises:
+ // - isInexact - fail
+ // - isInvalidOperation - unrepresentable value -> fail
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.towardZero
+ self = source._toExactlyInt(rounding: rounding, status: &status)
+
+ if status.isInvalidOperation {{
+ return nil
+ }}
+
+ if status.isInexact {{
+ return nil
+ }}
+ }}
+"""
+ )
+
+ f.write("}\n")
diff --git a/Scripts/generate-src/wide_uint_types.py b/Scripts/generate-src/wide_uint_types.py
new file mode 100644
index 0000000..c1f9520
--- /dev/null
+++ b/Scripts/generate-src/wide_uint_types.py
@@ -0,0 +1,1414 @@
+import os
+from io import TextIOWrapper
+from dataclasses import dataclass
+from collections.abc import Iterable
+from common import GENERATED_HEADER
+
+
+@dataclass
+class _UIntType:
+ "Unsigned Int."
+ name: str
+ word_count: int
+ public: str
+
+ @property
+ def width(self):
+ return 64 * self.word_count
+
+ @property
+ def div_helper_name(self):
+ return f"UInt{self.div_helper_word_count * 64}"
+
+ @property
+ def div_helper_word_count(self):
+ "Unsigned Int that is used during division."
+ return self.word_count // 2 * 3
+
+
+_U128 = _UIntType(name="UInt128", word_count=2, public="public")
+_U256 = _UIntType(name="UInt256", word_count=4, public="internal")
+
+_TYPES: list[_UIntType] = [_U128, _U256]
+
+
+def generate(output_dir: str):
+ for t in _TYPES:
+ path = os.path.join(output_dir, f"{t.name}.swift")
+
+ with open(path, "w") as ff:
+ f = _File(ff)
+ f.write(GENERATED_HEADER)
+ f.write("// swiftlint:disable all\n")
+
+ if t == _U128:
+ f.write(
+ f"""\
+// 'Decimal128.BitPattern = UInt128' is 'public'.
+// But we do not want to export `UInt128` as a global name.
+// Instead we will define 'UInt128' inside 'Decimal128' as 'Decimal128._UInt128'.
+
+extension Decimal128 {{
+ /// Internal storage.
+ /// DO NOT use as a general purpose `UInt128`!
+ /// This is only for `Decimal128`.
+ public struct _UInt128: Sendable {{
+ // Words from high bits (w0) to low bits (w1).
+ // It is slower than `LLVM.UInt128`, but that would require `Builtins`.
+ internal var w0: Word
+ internal var w1: Word
+ }}
+}}
+
+// Inside the module we want to use the normal name.
+internal typealias UInt128 = Decimal128._UInt128
+
+extension Decimal128._UInt128: Codable, FixedWidthInteger, UnsignedInteger, CustomStringConvertible {{\
+"""
+ )
+ elif t == _U256:
+ f.write(
+ f"""\
+/// You know what this is, don't make me say it…
+{t.public} struct {t.name}: Codable, FixedWidthInteger, UnsignedInteger, CustomStringConvertible {{\
+"""
+ )
+ else:
+ assert False, t.name
+
+ f.write("\n")
+ f.write(" internal typealias Word = UInt64")
+ f.write_mark("Static properties")
+ f.write("\n")
+ f.write(f" {t.public} static let bitWidth = {t.width}")
+
+ f.write_mark("Properties")
+ _write_properties(f, t)
+
+ f.write_mark("Init")
+ _write_inits(f, t)
+ f.write_mark("Init - Int")
+ _write_inits_int(f, t)
+ f.write_mark("Init - Float")
+ _write_inits_binary_floating_point(f, t)
+
+ f.write_mark("Add")
+ _write_add(f, t, t)
+ f.write_mark("Sub")
+ _write_sub(f, t, t)
+ f.write_mark("Mul")
+ _write_mul_for_division(f, t)
+ _write_mul(f, t, t)
+ f.write_mark("Div")
+ _write_div(f, t)
+
+ f.write_mark("Bit operations")
+ _write_bit_operations(f, t)
+
+ f.write_mark("Shifts")
+ _write_shifts(f, t)
+
+ f.write_mark("Equal, compare")
+ _write_equal(f, t)
+ _write_compare(f, t)
+
+ f.write_mark("Words")
+ _write_words(f, t)
+ f.write("}")
+
+ f.write_mark(f"Div helper - {t.div_helper_name}", indent=0)
+ _write_div_helper_type(f, t)
+
+
+class _File:
+ def __init__(self, f: TextIOWrapper) -> None:
+ self.f = f
+
+ def write(self, s: str, *args: object, new_line: bool = True):
+ if args:
+ ss = s.format(*args)
+ self.f.write(ss)
+ else:
+ self.f.write(s)
+
+ if new_line and s != "\n":
+ self.f.write("\n")
+
+ def write_mark(self, s: str, indent: int = 2):
+ self.f.write("\n")
+ self.f.write(" " * indent)
+ self.f.write("// MARK: - ")
+ self.f.write(s)
+ self.f.write("\n")
+
+ def lines(self, pattern: str, *args: object):
+ "Write each object in a new line."
+
+ iterables = []
+ static_args = []
+
+ for a in args:
+ if isinstance(a, Iterable) and not isinstance(a, str):
+ iterables.append(a)
+ else:
+ static_args.append(a)
+
+ for os in zip(*iterables):
+ format_args = [*os, *static_args]
+ s = pattern.format(*format_args)
+ self.f.write(s)
+ self.f.write("\n")
+
+ def join(self, pattern: str, objects: Iterable, *, separator: str = ", "):
+ "Write objects separated by 'separator'."
+
+ for i, o in enumerate(objects):
+ self.f.write("" if i == 0 else separator)
+ self.f.write(pattern.format(o))
+
+
+# ==================
+# === Properties ===
+# ==================
+
+
+def _write_properties(f: _File, t: _UIntType):
+ f.write("\n")
+
+ # =============
+ # === words ===
+ # =============
+
+ # 'UInt128' properties are stored in 'Decimal128._UInt128'.
+ if t != _U128:
+ f.write(f" // Words from high bits (w0) to low bits (w{t.word_count-1}).")
+ f.lines(" internal var w{0}: Word", range(t.word_count))
+ f.write("\n")
+
+ f.write(f" {t.public} var words: Words {{ Words(self) }}")
+
+ # ==============
+ # === isZero ===
+ # ==============
+
+ f.write("\n")
+ f.write(" internal var isZero: Bool {")
+ f.write(" return ", new_line=False)
+ f.join("self.w{0} == 0", range(t.word_count), separator=" && ")
+ f.write("\n")
+ f.write(" }")
+
+ # ================
+ # === bitCount ===
+ # ================
+
+ f.write("\n")
+ f.write(f" {t.public} var leadingZeroBitCount: Int {{")
+ f.lines(
+ " if self.w{0} != 0 {{ return {0} * Word.bitWidth + self.w{0}.leadingZeroBitCount }}",
+ range(t.word_count - 1),
+ )
+ f.write(
+ " return {0} * Word.bitWidth + self.w{0}.leadingZeroBitCount",
+ t.word_count - 1,
+ )
+ f.write(" }")
+
+ f.write("\n")
+ f.write(f" {t.public} var trailingZeroBitCount: Int {{")
+ f.lines(
+ " if self.w{0} != 0 {{ return {1} * Word.bitWidth + self.w{0}.trailingZeroBitCount }}",
+ reversed(range(1, t.word_count)),
+ range(0, t.word_count),
+ )
+ f.write(
+ f" return {t.word_count - 1} * Word.bitWidth + self.w0.trailingZeroBitCount"
+ )
+ f.write(" }")
+
+ f.write("\n")
+ f.write(f" {t.public} var nonzeroBitCount: Int {{")
+ f.write(" return ", new_line=False)
+ f.join("self.w{0}.nonzeroBitCount", range(t.word_count), separator=" + ")
+ f.write("\n")
+ f.write(" }")
+
+ # ===================
+ # === byteSwapped ===
+ # ===================
+
+ f.write("\n")
+ f.write(f" {t.public} var byteSwapped: Self {{")
+ f.lines(" let w{0} = self.w{0}.byteSwapped", range(t.word_count))
+ f.write(" return Self(", new_line=False)
+ f.join("w{0}", range(t.word_count))
+ f.write(")")
+ f.write(" }")
+
+ # ===================
+ # === description ===
+ # ===================
+
+ f.write(
+ f"""
+ {t.public} var description: String {{
+ let _0: UInt8 = 48
+ var n = self
+ var result = ""
+
+ while !n.isZero {{
+ let (q, r) = n.quotientAndRemainder(dividingBy: 10 as Word)
+ n = q
+
+ let ascii = _0 + UInt8(r)
+ let scalar = UnicodeScalar(ascii)
+ let char = Character(scalar)
+ result.append(char)
+ }}
+
+ return result.isEmpty ? "0" : String(result.reversed())
+ }}\
+"""
+ )
+
+
+# ============
+# === Init ===
+# ============
+
+
+def _write_inits(f: _File, t: _UIntType):
+ f.write("\n")
+ f.write(f" {t.public} init() {{")
+ f.lines(" self.w{0} = 0", range(t.word_count))
+ f.write(" }")
+
+ # =============
+ # === Words ===
+ # =============
+
+ f.write("\n")
+ f.write(" internal init(", new_line=False)
+ f.join("_ w{0}: Word", range(t.word_count))
+ f.write(") {")
+ f.lines(" self.w{0} = w{0}", range(t.word_count))
+ f.write(" }")
+
+
+def _write_inits_int(f: _File, t: _UIntType):
+ # =====================
+ # === BinaryInteger ===
+ # =====================
+
+ f.write(
+ f"""
+ {t.public} init(_ source: T) {{
+ guard let result = Self(exactly: source) else {{
+ preconditionFailure("Value is outside the representable range")
+ }}
+
+ self = result
+ }}
+
+ {t.public} init?(exactly source: T) {{
+ if source < (0 as T) {{
+ return nil
+ }}
+
+ if let low = Word(exactly: source.magnitude) {{\
+"""
+ )
+
+ f.lines(" self.w{0} = 0", range(t.word_count - 1))
+ f.write(f" self.w{t.word_count - 1} = low")
+ f.write(" } else {")
+ f.write(" var s = source")
+ f.write(" let mask = T(Word.max)")
+
+ for i in reversed(range(t.word_count)):
+ f.write("")
+ f.write(f" self.w{i} = Word(s & mask)")
+ f.write(f" s >>= Word.bitWidth")
+
+ f.write("")
+ f.write(" if s != (0 as T) {")
+ f.write(" return nil")
+ f.write(" }")
+ f.write(" }")
+ f.write(" }")
+
+ # ======================
+ # === integerLiteral ===
+ # ======================
+
+ f.write(
+ f"""
+ {t.public} init(integerLiteral value: IntegerLiteralType) {{
+ self = Self(value)
+ }}\
+"""
+ )
+
+ # ======================
+ # === truncatingBits ===
+ # ======================
+
+ f.write("\n")
+ f.write(f" {t.public} init(_truncatingBits bits: UInt) {{")
+ f.lines(
+ " self.w{0} = Word(_truncatingBits: bits >> ({1} * Word.bitWidth))",
+ range(t.word_count),
+ reversed(range(t.word_count)),
+ )
+ f.write(" }")
+
+
+def _write_inits_binary_floating_point(f: _File, t: _UIntType):
+ f.write(
+ f"""
+ {t.public} init(_ source: T) {{
+ preconditionFailure("{t.name}(BinaryFloatingPoint) not implemented.")
+ }}
+
+ {t.public} init?(exactly source: T) {{
+ preconditionFailure("{t.name}(exactly: BinaryFloatingPoint) not implemented.")
+ }}\
+"""
+ )
+
+
+# ================
+# === Add, sub ===
+# ================
+
+
+def _write_add(f: _File, t: _UIntType, rhs: _UIntType):
+ _write_add_sub(f, t, rhs, "add")
+
+
+def _write_sub(f: _File, t: _UIntType, rhs: _UIntType):
+ _write_add_sub(f, t, rhs, "sub")
+
+
+def _write_add_sub(f: _File, t: _UIntType, rhs: _UIntType, operation: str):
+ if operation == "add":
+ op = "+"
+ fn = "addingReportingOverflow"
+ carry = "carry"
+ elif operation == "sub":
+ op = "-"
+ fn = "subtractingReportingOverflow"
+ carry = "borrow"
+ else:
+ assert False, operation
+
+ rhs_name = "Self" if t.word_count == rhs.word_count else rhs.name
+
+ # =================
+ # === Operators ===
+ # =================
+
+ f.write(
+ f"""
+ {t.public} static func {op} (lhs: Self, rhs: {rhs_name}) -> Self {{
+ let (result, overflow) = lhs.{fn}(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }}
+
+ {t.public} static func {op}= (lhs: inout Self, rhs: {rhs_name}) {{
+ let (result, overflow) = lhs.{fn}(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }}\
+"""
+ )
+
+ # =========================
+ # === ReportingOverflow ===
+ # =========================
+
+ f.write("\n")
+ f.write(
+ f" {t.public} func {fn}(_ rhs: {rhs_name}) -> (partialValue: Self, overflow: Bool) {{"
+ )
+
+ i = t.word_count - 1
+ rhs_last_word = "rhs" if rhs.word_count == 1 else f"rhs.w{rhs.word_count-1}"
+ f.write(f" let w{i} = self.w{i}.{fn}({rhs_last_word})")
+ f.write(f" let {carry}{i}: Word = w{i}.overflow ? 1 : 0")
+
+ word_count_diff = t.word_count - rhs.word_count
+
+ for word_index in reversed(range(rhs.word_count - 1)):
+ i = word_count_diff + word_index
+ f.write(
+ f"""
+ let partial{i} = self.w{i}.{fn}(rhs.w{i - word_count_diff})
+ let w{i} = partial{i}.partialValue.{fn}({carry}{i+1})
+ let {carry}{i}: Word = (partial{i}.overflow ? 1 : 0) + (w{i}.overflow ? 1 : 0)\
+"""
+ )
+
+ for i in reversed(range(word_count_diff)):
+ f.write(
+ f"""
+ let w{i} = self.w{i}.{fn}({carry}{i+1})
+ let {carry}{i}: Word = w{i}.overflow ? 1 : 0\
+"""
+ )
+
+ f.write("\n")
+ f.write(f" let result = Self(", new_line=False)
+ f.join("w{0}.partialValue", range(t.word_count))
+ f.write(")")
+ f.write(f" let overflow = {carry}0 != 0")
+ f.write(" return (result, overflow)")
+ f.write(" }")
+
+
+# ===========
+# === Mul ===
+# ===========
+
+
+def _write_mul_for_division(f: _File, t: _UIntType):
+ word_count = t.word_count // 2
+ div_rhs = _UIntType(
+ name=f"UInt{word_count * 64}",
+ word_count=word_count,
+ public="",
+ )
+
+ _write_mul(f, t, div_rhs, "internal")
+
+
+def _write_mul(f: _File, t: _UIntType, rhs: _UIntType, public: str = ""):
+ public = public or t.public
+ rhs_name = "Self" if t.word_count == rhs.word_count else rhs.name
+
+ # =================
+ # === Operators ===
+ # =================
+
+ f.write(
+ f"""
+ {public} static func * (lhs: Self, rhs: {rhs_name}) -> Self {{
+ let (result, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }}
+
+ {public} static func *= (_ lhs: inout Self, _ rhs: {rhs_name}) {{
+ let (result, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }}\
+"""
+ )
+
+ # ===================================
+ # === multipliedReportingOverflow ===
+ # ===================================
+
+ word_count_diff = t.word_count - rhs.word_count
+ columns = _create_multiplication_columns(t, rhs)
+
+ # Last 't.word_count' columns are for result,
+ # everything else is for overflow checks.
+ mul_columns = columns[-t.word_count :]
+ overflow_columns = columns[: -t.word_count]
+
+ f.write("\n")
+ f.write(
+ f" {public} func multipliedReportingOverflow(by rhs: {rhs_name}) -> (partialValue: Self, overflow: Bool) {{"
+ )
+
+ _write_multiplications(f, mul_columns, rhs)
+
+ for column in reversed(mul_columns):
+ _write_multiplication_column_sum(f, columns, column)
+
+ f.write("\n")
+
+ f.write(f" let overflow: Bool = carry{t.word_count} != 0")
+
+ lowest_overflow_column = overflow_columns[-1]
+ f.write(f" // Check 'high' in column {lowest_overflow_column.index}")
+ for coord in lowest_overflow_column.high:
+ f.write(f" || (mul{coord.lhs}{coord.rhs}.high != 0)")
+
+ f.write(f" // Check not preformed multiplications")
+ written_coordinate_id: set[int] = set()
+
+ for column in reversed(overflow_columns):
+ for coord in column.low:
+ coord_id = id(coord)
+ if coord_id in written_coordinate_id:
+ continue
+
+ written_coordinate_id.add(coord_id)
+
+ l = f"self.w{coord.lhs}"
+ r = "rhs" if rhs.word_count == 1 else f"rhs.w{coord.rhs_in_initial_width}"
+ f.write(f" || ({l} != 0 && {r} != 0)")
+
+ f.write("\n")
+
+ f.write(" let result = Self(", new_line=False)
+ f.join("w{0}", range(t.word_count, 2 * t.word_count))
+ f.write(")")
+
+ f.write(" return (result, overflow)")
+ f.write(" }")
+
+ # ===========================
+ # === multipliedFullWidth ===
+ # ===========================
+
+ f.write("\n")
+ f.write(
+ f" {public} func multipliedFullWidth(by rhs: {rhs_name}) -> (high: {rhs_name}, low: Self) {{"
+ )
+
+ _write_multiplications(f, columns, rhs)
+
+ for column in reversed(columns):
+ _write_multiplication_column_sum(f, columns, column)
+
+ f.write("\n")
+ f.write(f" assert(carry{word_count_diff} == 0)")
+ f.write(f" let high = {rhs_name}(", new_line=False)
+ f.join("w{0}", range(word_count_diff, t.word_count))
+ f.write(")")
+
+ f.write(" let low = Self(", new_line=False)
+ f.join("w{0}", range(t.word_count, 2 * t.word_count))
+ f.write(")")
+
+ f.write(" return (high, low)")
+ f.write(" }")
+
+
+@dataclass
+class _MulCoordinate:
+ """
+ lhs - word index in self;
+ rhs_in_initial_width - word index in rhs;
+ rhs - word index as if rhs had the same width as lhs (all words in front are 0);
+ """
+
+ lhs: int
+ rhs: int
+ rhs_in_initial_width: int
+
+ def __repr__(self) -> str:
+ return f"({self.lhs}, {self.rhs})"
+
+
+@dataclass
+class _MulColumn:
+ """
+ Summation column for multiplication.
+ high - high word from this coordinate;
+ low - low word from this coordinate;
+ """
+
+ index: int
+ high: list[_MulCoordinate]
+ high_coordinate_sum: int
+ low: list[_MulCoordinate]
+ low_coordinate_sum: int
+
+
+def _create_multiplication_columns(
+ lhs: _UIntType,
+ rhs: _UIntType,
+) -> list[_MulColumn]:
+ result: list[_MulColumn] = []
+
+ for index in range(2 * lhs.word_count):
+ column = _MulColumn(index, [], 0, [], 0)
+ result.append(column)
+
+ # | 0 1
+ # | 0 1
+ # ----------+---------------
+ # | 11.high 11.low
+ # 10.high | 10.low
+ # 01.high | 01.low
+ # 00.high 00.low |
+ # 0 1 | 2 3 <- column (result word)
+ # 0 1 | 2 - <- coordinate sum for high
+ # - 0 | 1 2 <- coordinate sum for low
+
+ word_count_diff = lhs.word_count - rhs.word_count
+ assert word_count_diff >= 0
+
+ for lhs_i in range(lhs.word_count):
+ for rhs_in_initial_width in range(rhs.word_count):
+ rhs_i = word_count_diff + rhs_in_initial_width
+ coordinate = _MulCoordinate(lhs_i, rhs_i, rhs_in_initial_width)
+ coordinate_sum = lhs_i + rhs_i
+
+ column_high = result[coordinate_sum]
+ column_high.high.append(coordinate)
+ column_high.high_coordinate_sum = coordinate_sum
+
+ column_low = result[coordinate_sum + 1]
+ column_low.low.append(coordinate)
+ column_low.low_coordinate_sum = coordinate_sum
+
+ # Remove prefix columns without any sum
+ while result:
+ has_coordinates = result[0].high or result[0].low
+ if has_coordinates:
+ break
+
+ result.pop(0)
+
+ return result
+
+
+def _write_multiplications(f: _File, columns: list[_MulColumn], rhs: _UIntType):
+ coordinates: list[_MulCoordinate] = []
+
+ for c in columns:
+ coordinates.extend(c.low)
+
+ coordinates.sort(key=lambda c: (c.lhs, c.rhs))
+
+ for c in coordinates:
+ r = "rhs" if rhs.word_count == 1 else f"rhs.w{c.rhs_in_initial_width}"
+ f.write(
+ f" let mul{c.lhs}{c.rhs} = self.w{c.lhs}.multipliedFullWidth(by: {r})"
+ )
+
+
+def _write_multiplication_column_sum(
+ f: _File, columns: list[_MulColumn], c: _MulColumn
+):
+ f.write("\n")
+ f.write(f" // Column {c.index}")
+
+ if id(c) == id(columns[-1]):
+ assert not c.high
+ assert len(c.low) == 1
+
+ coord = c.low[0]
+ f.write(f" let w{c.index} = mul{coord.lhs}{coord.rhs}.low")
+ f.write(f" let carry{c.index}: Word = 0")
+ return
+
+ f.write(f" let (carry{c.index}, w{c.index}) = sum(")
+ f.write(f" carry{c.index + 1},")
+
+ high = map(lambda coord: f"mul{coord.lhs}{coord.rhs}.high", c.high)
+ low = map(lambda coord: f"mul{coord.lhs}{coord.rhs}.low", c.low)
+
+ f.write(f" ", new_line=False)
+ f.join("{0}", high)
+ if c.low:
+ f.write(",", new_line=False)
+ f.write(f" // previous column (sum={c.high_coordinate_sum})")
+
+ if c.low:
+ f.write(f" ", new_line=False)
+ f.join("{0}", low)
+ f.write(f" // this column (sum={c.low_coordinate_sum})")
+
+ f.write(f" )")
+
+
+# ===========
+# === Div ===
+# ===========
+
+
+def _write_div(f: _File, t: _UIntType):
+ # =================
+ # === Operators ===
+ # =================
+
+ f.write(
+ f"""
+ {t.public} static func / (lhs: Self, rhs: Self) -> Self {{
+ let (result, overflow) = lhs.dividedReportingOverflow(by: rhs)
+ precondition(!overflow, "Division by zero")
+ return result
+ }}
+
+ {t.public} static func /= (lhs: inout Self, rhs: Self) {{
+ let (result, overflow) = lhs.dividedReportingOverflow(by: rhs)
+ precondition(!overflow, "Division by zero")
+ lhs = result
+ }}
+
+ {t.public} func dividedReportingOverflow(by rhs: Self) -> (partialValue: Self, overflow: Bool) {{
+ if rhs == Self.zero {{
+ return (self, true)
+ }}
+
+ let qr = self.quotientAndRemainder(dividingBy: rhs)
+ return (qr.quotient, false)
+ }}
+
+ {t.public} static func % (lhs: Self, rhs: Self) -> Self {{
+ let (result, overflow) = lhs.remainderReportingOverflow(dividingBy: rhs)
+ precondition(!overflow, "Division by zero in remainder operation")
+ return result
+ }}
+
+ {t.public} static func %= (lhs: inout Self, rhs: Self) {{
+ let (result, overflow) = lhs.remainderReportingOverflow(dividingBy: rhs)
+ precondition(!overflow, "Division by zero in remainder operation")
+ lhs = result
+ }}
+
+ {t.public} func remainderReportingOverflow(dividingBy rhs: Self) -> (partialValue: Self, overflow: Bool) {{
+ if rhs == Self.zero {{
+ return (self, true)
+ }}
+
+ let qr = self.quotientAndRemainder(dividingBy: rhs)
+ return (qr.remainder, false)
+ }}\
+"""
+ )
+
+ # ====================================
+ # === quotientAndRemainder by Word ===
+ # ====================================
+
+ f.write(
+ """
+ internal func quotientAndRemainder(dividingBy rhs: Word) -> (quotient: Self, remainder: Word) {
+ let div0 = self.w0.quotientAndRemainder(dividingBy: rhs)\
+"""
+ )
+
+ for i in range(1, t.word_count):
+ f.write(
+ f"""
+ let div{i} = div{i-1}.remainder == 0 ?
+ self.w{i}.quotientAndRemainder(dividingBy: rhs) :
+ rhs.dividingFullWidth((div{i-1}.remainder, self.w{i}))\
+"""
+ )
+
+ f.write("\n")
+ f.write(" let quotient = Self(", new_line=False)
+ f.join("div{0}.quotient", range(t.word_count))
+ f.write(")")
+ f.write(f" return (quotient, div{t.word_count-1}.remainder)")
+ f.write(" }")
+
+ # =======================================
+ # === quotientAndRemainder by UInt128 ===
+ # =======================================
+
+ if t == _U256:
+ f.write(
+ f"""
+ internal func quotientAndRemainder(dividingBy rhs: UInt128) -> (quotient: Self, remainder: UInt128) {{
+ // rhs == Word?
+ if rhs.w0 == 0 {{
+ let (q, r) = self.quotientAndRemainder(dividingBy: rhs.w1)
+ let remainder = UInt128(0, r)
+ return (q, remainder)
+ }}
+
+ // self == UInt128?
+ if self.w0 == 0 && self.w1 == 0 {{
+ let w2w3 = UInt128(self.w2, self.w3)
+ let (q, r) = w2w3.quotientAndRemainder(dividingBy: rhs)
+ let quotient = Self(0, 0, q.w0, q.w1)
+ return (quotient, r)
+ }}
+
+ let w0w1 = UInt128(self.w0, self.w1)
+ let div0 = w0w1.quotientAndRemainder(dividingBy: rhs)
+
+ let w2w3 = UInt128(self.w2, self.w3)
+ let div1 = div0.remainder == 0 ?
+ w2w3.quotientAndRemainder(dividingBy: rhs) :
+ rhs.dividingFullWidth((div0.remainder, w2w3))
+
+ let quotient = Self(div0.quotient.w0, div0.quotient.w1, div1.quotient.w0, div1.quotient.w1)
+ let remainder = UInt128(div1.remainder.w0, div1.remainder.w1)
+ return (quotient, remainder)
+ }}\
+"""
+ )
+
+ # ====================================
+ # === quotientAndRemainder by Self ===
+ # ====================================
+
+ f.write(
+ f"""
+ {t.public} func quotientAndRemainder(dividingBy rhs: Self) -> (quotient: Self, remainder: Self) {{
+ precondition(rhs != 0, "Division by zero")
+
+ if self == rhs {{
+ return (1, 0)
+ }}
+
+ if self < rhs {{
+ return (0, self)
+ }}\
+"""
+ )
+
+ # === Check if rhs has n-words ===
+
+ fast_word_count = t.word_count // 2
+
+ s = "" if fast_word_count == 1 else "s"
+ f.write("\n")
+ f.write(f" // Rhs {fast_word_count} word{s}?")
+
+ f.write(" if ", new_line=False)
+ f.join("rhs.w{0} == 0", range(t.word_count - fast_word_count), separator=" && ")
+ f.write(" {")
+
+ rhs_width = fast_word_count * 64
+ f.write(f" let rhsShort = UInt{rhs_width}(", new_line=False)
+ f.join("rhs.w{0}", range(t.word_count - fast_word_count, t.word_count))
+ f.write(")")
+
+ f.write(" let (q, r) = self.quotientAndRemainder(dividingBy: rhsShort)")
+
+ f.write(" let remainder = Self(", new_line=False)
+ f.join("0", range(t.word_count - fast_word_count))
+ f.write(", ", new_line=False)
+ if fast_word_count == 1:
+ f.write("r", new_line=False)
+ else:
+ f.join("r.w{0}", range(fast_word_count))
+ f.write(")")
+
+ f.write(" return (q, remainder)")
+ f.write(" }")
+
+ # === Shifting edge case ===
+ f.write(
+ """
+ // Edge case for the bit shifting below.
+ if self.leadingZeroBitCount == rhs.leadingZeroBitCount {
+ // Quotient is 1 and remainder is the difference:
+ // - lhs > rhs
+ // - both operands have non-0 high bits
+ // - both have the same high power of 2, so quotient has to be 1\
+"""
+ )
+
+ f.write(" let quotient = Self(", new_line=False)
+ f.join("0", range(t.word_count - 1))
+ f.write(", 1)")
+ f.write(" let remainder = self - rhs")
+ f.write(" return (quotient, remainder)")
+ f.write(" }")
+
+ # === Shifting ===
+
+ f.write(
+ """
+ // At this point we know that:
+ // - lhs > rhs
+ // - lhs it has 'more' bits
+ // - both lhs and rhs have upper half filled -> full width division
+ //
+ // What follows is:
+ // - "Fast Recursive Division" by Christoph Burnikel and Joachim Ziegler
+ // - "The Art of Computer Programming vol 2" by Knuth -> 4.3.1 - Algorithm D
+ let shift = rhs.leadingZeroBitCount
+ let rhsShifted = rhs &<< shift
+
+ let lhsHigh = (self &>> (Self.bitWidth &- shift))
+ let lhsLow = self &<< shift
+
+ let (q, r) = Self.divide3by2(
+ lhsHigh.low, lhsLow.high, lhsLow.low,
+ by: rhsShifted
+ )
+
+ let quotient = Self(high: 0, low: q)
+ let remainder = r &>> shift
+ return (quotient, remainder)
+ }\
+"""
+ )
+
+ # ==================
+ # === divide3by2 ===
+ # ==================
+
+ half = f"UInt{t.width // 2}"
+ three_halfs = f"UInt{t.width + t.width // 2}"
+
+ f.write(
+ f"""
+ /// "Algorithm 2. (D3n/2n)" by Christoph Burnikel and Joachim Ziegler
+ private static func divide3by2(
+ _ a1: {half}, _ a2: {half}, _ a3: {half},
+ by b: Self
+ ) -> (quotient: {half}, remainder: Self) {{
+ // Let A and B be nonnegative integers, and let A<βn*B and β2n/2 <= B < β2n.
+ // Algorithm D3n/2n computes the quotient Q = [A/B] with remainder R = A-Q*B.
+ // 1. Split A into three parts A = [A1;A2;A3] with Ai < βn.
+ // 2. Split B into two parts B = [B1;B2] with Bi < βn.
+ // 3. Distinguish the cases A1 < B1 or A1 >= B1 .
+ // (a) If A1=B1, set Q̂ = βn-1
+ // set R1 = [A1;A2] - [B1;0] + [0;B1] (=[A1,A2] - Q̂B1).
+ // 4. Compute D = Q̂*B2 using Karatsuba multiplication.
+ // 5. Compute R̂ = R1*βn + A4 - D.
+ // 6. As long as R̂ < 0, repeat // Same as R1*βn + A4 < D.
+ // (a) R̂ = R̂ + B
+ // (b) Q̂ = Q̂ - 1
+ // 7. Return Q̂, R̂
+ //
+ // (…)
+ //
+ // We conclude that the body of the loop in step 6 of algorithm D3n/2n is
+ // processed at most twice.
+
+ assert(b.leadingZeroBitCount == 0)
+ let b1 = b.high
+
+ // We do not need R1.
+ // We will calculate 'R̂' differently, see details below.
+ var qHat = a1 < b1 ?
+ b1.dividingFullWidth((a1, a2)).quotient :
+ {half}.max
+
+ // The method in the paper gives incorrect reminder?
+ // They want 'D = Q̂*B2'.
+ // We will use 'D = Q̂*B' and compare with original value 'A'.
+ let d = b.multipliedFullWidth(by: qHat)
+ let D = {three_halfs}(d.high, d.low)
+ // This is basically the original value of 'A'
+ // We will do the '-D' part later.
+ var rHat = {three_halfs}(a1, a2, a3)
+ let bWide = {three_halfs}(0, b)
+
+ // Statement about the double iteration holds true even if 'D = Q̂*B'
+ // (and not 'D = Q̂*B1'), because the iteration count depends on the quotient
+ // approximation and not on the exact value of 'D'.
+ while rHat < D {{
+ rHat += bWide
+ qHat &-= 1
+ }}
+
+ rHat -= D
+ assert(rHat.w0 == 0)
+ let r = Self(high: rHat.w1, low: rHat.w2)
+ return (qHat, r)
+ }}\
+"""
+ )
+
+ # =========================
+ # === dividingFullWidth ===
+ # =========================
+
+ if t == _U128:
+ f.write(
+ """
+ public func dividingFullWidth(
+ _ lhs: (high: Self, low: Self)
+ ) -> (quotient: Self, remainder: Self) {
+ let rhs = self
+ precondition(rhs != 0, "Division by zero")
+ precondition(rhs >= lhs.high, "Division results in an overflow")
+
+ // lhs = UInt128?
+ if lhs.high == 0 {
+ return lhs.low.quotientAndRemainder(dividingBy: rhs)
+ }
+
+ let lhs = UInt256(high: lhs.high, low: lhs.low)
+
+ // rhs = Word?
+ if rhs.high == 0 {
+ // School method: abcd / r
+ let r = rhs.low
+ let a = lhs.w0 % r
+
+ let b = a == 0 ?
+ lhs.w1 % r :
+ r.dividingFullWidth((a, lhs.w1)).remainder
+
+ let (x, c) = b == 0 ?
+ lhs.w2.quotientAndRemainder(dividingBy: r) :
+ r.dividingFullWidth((b, lhs.w2))
+
+ let (y, d) = c == 0 ?
+ lhs.w3.quotientAndRemainder(dividingBy: r) :
+ r.dividingFullWidth((c, lhs.w3))
+
+ let quotient = Self(high: x, low: y)
+ let remainder = Self(high: 0, low: d)
+ return (quotient, remainder)
+ }
+
+ // Left shift both rhs and lhs, then divide and right shift the remainder.
+ // Similar to Knuth Algorithm D.
+ let shift = rhs.leadingZeroBitCount
+ let lhsShifted = lhs &<< shift
+ let rhsShifted = rhs &<< shift
+
+ if lhsShifted.w0 == 0 && Self(high: lhsShifted.w1, low: lhsShifted.w2) < rhsShifted {
+ let (q, r) = Self.divide3by2(
+ lhsShifted.w1, lhsShifted.w2, lhsShifted.w3,
+ by: rhsShifted
+ )
+
+ let quotient = Self(high: 0, low: q)
+ let remainder = r &>> shift
+ return (quotient, remainder)
+ }
+
+ let (q1, r1) = Self.divide3by2(
+ lhsShifted.w0, lhsShifted.w1, lhsShifted.w2,
+ by: rhsShifted
+ )
+
+ let (q2, r2) = Self.divide3by2(
+ r1.high, r1.low, lhsShifted.w3,
+ by: rhsShifted
+ )
+
+ let quotient = Self(q1, q2)
+ let remainder = r2 &>> shift
+ return (quotient, remainder)
+ }\
+"""
+ )
+ else:
+ f.write(
+ f"""
+ {t.public} func dividingFullWidth(_ dividend: (high: Self, low: Self)) -> (quotient: Self, remainder: Self) {{
+ fatalError("{t.name} dividingFullWidth is not implemented.")
+ }}\
+"""
+ )
+
+
+# ======================
+# === Bit operations ===
+# ======================
+
+
+def _write_bit_operations(f: _File, t: _UIntType):
+ # ==============
+ # === Invert ===
+ # ==============
+
+ f.write("\n")
+ f.write(f" {t.public} static prefix func ~ (n: Self) -> Self {{")
+ f.lines(" let w{0} = ~n.w{0}", range(t.word_count))
+ f.write(" return Self(", new_line=False)
+ f.join("w{0}", range(t.word_count))
+ f.write(")")
+ f.write(" }")
+
+ # ====================
+ # === And, or, xor ===
+ # ====================
+
+ bit_operators = (
+ ("and", "&"),
+ ("or", "|"),
+ ("xor", "^"),
+ )
+
+ for name, op in bit_operators:
+ f.write(f"\n")
+ f.write(f" {t.public} static func {op}= (lhs: inout Self, rhs: Self) {{")
+ f.lines(
+ " lhs.w{0} {1}= rhs.w{0}",
+ range(t.word_count),
+ op,
+ )
+ f.write(" }")
+
+
+# ==============
+# === Shifts ===
+# ==============
+
+
+def _write_shifts(f: _File, t: _UIntType):
+ f.write("\n")
+ s = _LeftShiftWriter(f, t)
+ s.write()
+
+ f.write("\n")
+ s = _RightShiftWriter(f, t)
+ s.write()
+
+ f.write(
+ """
+ /// Calculates the result of shifting a value’s binary representation the
+ /// specified number of digits in direction, MASKING THE SHIFT AMOUNT TO
+ /// THE TYPE’S BIT WIDTH, and stores the result in the left-hand-side variable.
+ private static func applyShiftMask(_ n: Self) -> Word {\
+"""
+ )
+
+ if t.word_count % 2 == 0:
+ i = t.word_count - 1
+ f.write(f" let mask = Word(truncatingIfNeeded: Self.bitWidth &- 1)")
+ f.write(f" return n.w{i} & mask")
+ else:
+ f.write(
+ """\
+ let wordWidth = Word(truncatingIfNeeded: Self.bitWidth)
+ let qr = n.quotientAndRemainder(dividingBy: wordWidth)
+ return qr.remainder\
+"""
+ )
+
+ f.write(" }")
+
+
+class _ShiftWriter:
+ def __init__(self, f: _File, t: _UIntType, op: str) -> None:
+ self.f = f
+ self.t = t
+ self.op = op
+
+ def write(self):
+ f = self.f
+ t = self.t
+
+ f.write(f" {t.public} static func &{self.op}= (lhs: inout Self, rhs: Self) {{")
+ f.write(f" let rhs = Self.applyShiftMask(rhs)")
+ f.write(f" let word = Word(Word.bitWidth)")
+ f.write("\n")
+
+ f.write(" if rhs == 0 {")
+ f.write(" // Nothing to do here.")
+
+ for word_count in range(1, t.word_count + 1):
+ is_last = word_count == t.word_count
+
+ f.write(f" }} else if rhs < {word_count} &* word {{")
+ self._write_rhs_less_than_word(word_count, is_last)
+
+ f.write(f" }} else if rhs == {word_count} &* word {{")
+ self._write_rhs_equal_word(word_count)
+
+ if is_last:
+ f.write(f" }}")
+
+ f.write(" }")
+
+ def _write_rhs_less_than_word(self, word_count: int, is_last: bool):
+ assert False, "Abstract _ShiftWriter._write_rhs_less_than_word"
+
+ def _write_rhs_equal_word(self, word_count: int):
+ assert False, "Abstract _ShiftWriter._write_rhs_equal_word"
+
+
+class _LeftShiftWriter(_ShiftWriter):
+ def __init__(self, f: _File, t: _UIntType) -> None:
+ super().__init__(f, t, "<<")
+
+ def _write_rhs_less_than_word(self, word_count: int, is_last: bool):
+ f = self.f
+ t = self.t
+
+ f.write(f" let left = rhs &- ({word_count-1} &* word)")
+ if not is_last:
+ f.write(f" let right = word &- left")
+
+ for i in range(t.word_count):
+ left_i = i + word_count - 1
+ right_i = left_i + 1
+
+ if 0 <= left_i < t.word_count:
+ f.write(f" lhs.w{i} = lhs.w{left_i} &<< left")
+
+ if 0 <= right_i < t.word_count:
+ f.write(f" lhs.w{i} |= lhs.w{right_i} &>> right")
+
+ if left_i >= t.word_count and right_i >= t.word_count:
+ f.write(f" lhs.w{i} = 0")
+
+ def _write_rhs_equal_word(self, word_count: int):
+ f = self.f
+ t = self.t
+
+ for i in range(t.word_count):
+ source_i = i + word_count
+
+ if 0 <= source_i < t.word_count:
+ f.write(f" lhs.w{i} = lhs.w{source_i}")
+ else:
+ f.write(f" lhs.w{i} = 0")
+
+
+class _RightShiftWriter(_ShiftWriter):
+ def __init__(self, f: _File, t: _UIntType) -> None:
+ super().__init__(f, t, ">>")
+
+ def _write_rhs_less_than_word(self, word_count: int, is_last: bool):
+ f = self.f
+ t = self.t
+
+ f.write(f" let right = rhs &- ({word_count-1} &* word)")
+ if not is_last:
+ f.write(f" let left = word &- right")
+
+ for i in reversed(range(t.word_count)):
+ right_i = i - word_count + 1
+ left_i = right_i - 1
+
+ if 0 <= right_i <= t.word_count:
+ f.write(f" lhs.w{i} = lhs.w{right_i} &>> right")
+
+ if 0 <= left_i <= t.word_count:
+ f.write(f" lhs.w{i} |= lhs.w{left_i} &<< left")
+
+ if left_i < 0 and right_i < 0:
+ f.write(f" lhs.w{i} = 0")
+
+ def _write_rhs_equal_word(self, word_count: int):
+ f = self.f
+ t = self.t
+
+ for i in reversed(range(t.word_count)):
+ source_i = i - word_count
+
+ if 0 <= source_i < t.word_count:
+ f.write(f" lhs.w{i} = lhs.w{source_i}")
+ else:
+ f.write(f" lhs.w{i} = 0")
+
+
+# ======================
+# === Equal, compare ===
+# ======================
+
+
+def _write_equal(f: _File, t: _UIntType):
+ f.write("\n")
+ f.write(f" {t.public} static func == (lhs: Self, rhs: Self) -> Bool {{")
+ f.write(" return ", new_line=False)
+ f.join("lhs.w{0} == rhs.w{0}", range(t.word_count), separator=" && ")
+ f.write("\n")
+ f.write(" }")
+
+
+def _write_compare(f: _File, t: _UIntType):
+ f.write("\n")
+ f.write(f" {t.public} static func < (lhs: Self, rhs: Self) -> Bool {{")
+
+ i = 0
+ f.write(f" if lhs.w{i} < rhs.w{i} {{ return true }}")
+
+ for i in range(1, t.word_count):
+ f.write("\n")
+ f.write(f" if lhs.w{i-1} != rhs.w{i-1} {{ return false }}")
+
+ if i != t.word_count - 1:
+ f.write(f" if lhs.w{i} < rhs.w{i} {{ return true }}")
+ else:
+ f.write(f" return lhs.w{i} < rhs.w{i}")
+
+ f.write(" }")
+
+
+# =============
+# === Words ===
+# =============
+
+
+def _write_words(f: _File, t: _UIntType):
+ f.write(
+ f"""
+ {t.public} struct Words: RandomAccessCollection {{
+ {t.public} typealias Element = UInt
+ {t.public} typealias Index = Int
+
+ {t.public} var count: Int {{ {t.name}.bitWidth / UInt.bitWidth }}
+ {t.public} var startIndex: Index {{ 0 }}
+ {t.public} var endIndex: Index {{ count }}
+
+ internal var value: {t.name}
+
+ fileprivate init(_ value: {t.name}) {{
+ self.value = value
+ }}
+
+ {t.public} subscript(position: Index) -> UInt {{
+ precondition(
+ 0 <= position && position < self.endIndex,
+ "Word index out of range"
+ )
+
+ let shift = position * UInt.bitWidth
+ let shifted = self.value &>> shift
+ return UInt(truncatingIfNeeded: shifted.w{t.word_count - 1})
+ }}
+
+ {t.public} func index(after i: Index) -> Index {{ i + 1 }}
+ {t.public} func index(before i: Index) -> Index {{ i - 1 }}
+ }}\
+"""
+ )
+
+
+# ==================
+# === Div helper ===
+# ==================
+
+
+def _write_div_helper_type(f: _File, t: _UIntType):
+ f.write("\n")
+ f.write("/// Unsigned Int that is used during division.")
+ f.write(f"private struct {t.div_helper_name} {{")
+
+ f.write("\n")
+ f.write(f" fileprivate typealias Word = UInt{t.div_helper_word_count // 3 * 64}")
+
+ f.write("\n")
+ f.write(" fileprivate let w0: Word")
+ f.write(" fileprivate let w1: Word")
+ f.write(" fileprivate let w2: Word")
+
+ f.write("\n")
+ f.write(f" fileprivate init(_ w0: Word, _ wide: {t.name}) {{")
+ f.write(" self.w0 = w0")
+ f.write(" self.w1 = Word(", new_line=False)
+ f.join("wide.w{0}", range(t.word_count // 2))
+ f.write(")")
+ f.write(" self.w2 = Word(", new_line=False)
+ f.join("wide.w{0}", range(t.word_count // 2, t.word_count))
+ f.write(")")
+ f.write(" }")
+
+ f.write(
+ f"""
+ fileprivate init(_ w0: Word, _ w1: Word, _ w2: Word) {{
+ self.w0 = w0
+ self.w1 = w1
+ self.w2 = w2
+ }}\
+"""
+ )
+
+ fake_uint = _UIntType(
+ name=t.div_helper_name,
+ word_count=3,
+ public="fileprivate",
+ )
+
+ _write_add(f, fake_uint, fake_uint)
+ _write_sub(f, fake_uint, fake_uint)
+ _write_compare(f, fake_uint)
+ f.write("}")
diff --git a/Scripts/generate-tests/__main__.py b/Scripts/generate-tests/__main__.py
new file mode 100644
index 0000000..3064aa3
--- /dev/null
+++ b/Scripts/generate-tests/__main__.py
@@ -0,0 +1,68 @@
+import os
+import sys
+import intel
+import to_int_tests
+import init_from_int_tests
+import wide_uint_tests
+import speleotrove_dectest
+
+
+def main():
+ if len(sys.argv) != 4:
+ print(f"USAGE: python3 SCRIPT INTEL_TEST_DIR SPELEOTROVE_DIR OUTPUT_DIR")
+ return
+
+ intel_dir = sys.argv[1]
+ speleotrove_dir = sys.argv[2]
+ output_dir = sys.argv[3]
+
+ generated_dir = os.path.join(output_dir, "Generated")
+ _clean_dir(generated_dir)
+ to_int_tests.generate(generated_dir)
+ init_from_int_tests.generate(generated_dir)
+ wide_uint_tests.generate(generated_dir)
+
+ intel_marker_path = os.path.join(intel_dir, intel.MARKER_FILE)
+
+ if os.path.exists(intel_marker_path):
+ intel_output_dir = os.path.join(output_dir, "Intel - generated")
+ _clean_dir(intel_output_dir)
+ intel.generate(intel_dir, intel_output_dir)
+ else:
+ print(
+ f"WARNING: Skipping Intel tests generation: {intel_marker_path} does not exist."
+ )
+
+ speleotrove_marker_path = os.path.join(
+ speleotrove_dir, speleotrove_dectest.MARKER_FILE
+ )
+
+ if os.path.exists(speleotrove_marker_path):
+ speleotrove_output_dir = os.path.join(output_dir, "Speleotrove - generated")
+ _clean_dir(speleotrove_output_dir)
+ speleotrove_dectest.generate(speleotrove_dir, speleotrove_output_dir)
+ else:
+ print(
+ f"WARNING: Skipping Speleotrove tests generation: {speleotrove_marker_path} does not exist."
+ )
+
+
+def _clean_dir(dir: str):
+ os.makedirs(dir, exist_ok=True)
+
+ for name in os.listdir(dir):
+ path = os.path.join(dir, name)
+ os.unlink(path)
+
+ readme_path = os.path.join(dir, "README.md")
+ with open(readme_path, "w") as f:
+ f.write(
+ """\
+All of the files in this directory were automatically generated.
+See README in the repository root for details.
+"""
+ )
+
+
+if __name__ == "__main__":
+ main()
diff --git a/Scripts/generate-tests/common.py b/Scripts/generate-tests/common.py
new file mode 100644
index 0000000..ce0519f
--- /dev/null
+++ b/Scripts/generate-tests/common.py
@@ -0,0 +1,66 @@
+from dataclasses import dataclass
+
+GENERATED_FILE_HEADER = """\
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+"""
+
+
+@dataclass
+class DecimalType:
+ name: str
+ # k, storage width in bits
+ bit_width: int
+ # p, precision in digits
+ precision: int
+
+
+Decimal32 = DecimalType(name="Decimal32", bit_width=32, precision=7)
+Decimal64 = DecimalType(name="Decimal64", bit_width=64, precision=16)
+Decimal128 = DecimalType(name="Decimal128", bit_width=128, precision=34)
+
+DECIMAL_TYPES = [Decimal32, Decimal64, Decimal128]
+
+
+@dataclass
+class IntType:
+ name: str
+ min: int
+ max: int
+
+ @property
+ def is_signed(self) -> bool:
+ return self.min < 0
+
+ @property
+ def is_unsigned(self) -> bool:
+ return self.min == 0
+
+
+Int32 = IntType("Int32", min=-2147483648, max=2147483647)
+Int64 = IntType("Int64", min=-9223372036854775808, max=9223372036854775807)
+UInt32 = IntType("UInt32", min=0, max=4294967295)
+UInt64 = IntType("UInt64", min=0, max=18446744073709551615)
+
+
+class IntToDecimal:
+ def __init__(self, d: DecimalType, n: int) -> None:
+ n = abs(n)
+ count = digit_count(n)
+
+ if d.precision < count:
+ self.decimal_exponent = count - d.precision
+ pow10 = pow(10, self.decimal_exponent)
+ self.decimal_significand = n // pow10
+ self.int = self.decimal_significand * pow10
+ else:
+ self.int = n
+ self.decimal_significand = n
+ self.decimal_exponent = 0
+
+
+def digit_count(i: int) -> int:
+ assert i >= 0
+ return len(str(i))
diff --git a/Scripts/generate-tests/init_from_int_tests.py b/Scripts/generate-tests/init_from_int_tests.py
new file mode 100644
index 0000000..e490eaf
--- /dev/null
+++ b/Scripts/generate-tests/init_from_int_tests.py
@@ -0,0 +1,363 @@
+import io
+import os
+import re
+from dataclasses import dataclass
+from common import (
+ GENERATED_FILE_HEADER,
+ DECIMAL_TYPES,
+ DecimalType,
+ Decimal32,
+ Decimal64,
+ Decimal128,
+ IntType,
+ Int32,
+ Int64,
+ UInt32,
+ UInt64,
+ IntToDecimal,
+ digit_count,
+)
+
+_INT_TYPES: list[IntType] = [Int32, Int64, UInt32, UInt64]
+
+
+def generate(dir: str):
+ class_name = "GeneratedInitFromIntTests"
+ file_path = os.path.join(dir, class_name + ".swift")
+
+ with open(file_path, "w") as f:
+ f.write(GENERATED_FILE_HEADER)
+ f.write(
+ f"""
+import XCTest
+@testable import Decimal
+
+class {class_name}: XCTestCase, DecimalTests {{
+
+ func test_double() {{
+ var i = Int64.zero
+ var expected = Float.zero
+ XCTAssertEqual(Float(i), expected)
+ XCTAssertEqual(Float(exactly: i), expected)
+
+ i = 5
+ expected = Float("5")!
+ XCTAssertEqual(Float( i), expected)
+ XCTAssertEqual(Float(-i), -expected)
+ XCTAssertEqual(Float(exactly: i), expected)
+ XCTAssertEqual(Float(exactly: -i), -expected)
+
+ i = 42
+ expected = Float("42")!
+ XCTAssertEqual(Float( i), expected)
+ XCTAssertEqual(Float(-i), -expected)
+ XCTAssertEqual(Float(exactly: i), expected)
+ XCTAssertEqual(Float(exactly: -i), -expected)
+
+ i = .max
+ // Float( i) - no easy algorithm to find the exact result
+ XCTAssertNil(Float(exactly: i))
+ XCTAssertNil(Float(exactly: -i))
+
+ // i = .min
+ // We can't test '-i', as it overflows.
+ // Float( i) - no easy algorithm to find the exact result
+ XCTAssertNil(Float(exactly: i))
+ }}
+"""
+ )
+
+ for d in DECIMAL_TYPES:
+ for i in _INT_TYPES:
+ _write_decimal_tests(f, d, i)
+
+ f.write(
+ """
+ // MARK: - Helpers
+
+ private func run(
+ _ i: I,
+ rounding: DecimalFloatingPointRoundingRule,
+ expected: D,
+ _ expectedStatus: DecimalStatus,
+ _ message: String = "",
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ var status = DecimalStatus()
+ let result = D(i, rounding: rounding, status: &status)
+
+ self.assertEqual(result, expected, message, file, line)
+ self.assertStatus(status, expectedStatus, message, file, line)
+ }
+
+ private func runExact(
+ _ i: I,
+ expected: D?,
+ _ message: String = "",
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ let result = D(exactly: i)
+
+ switch (result, expected) {
+ case let (.some(l), .some(r)):
+ self.assertEqual(l, r, message, file, line)
+
+ case let (.some(l), .none):
+ XCTFail("Got: \\(l) " + message, file: file, line: line)
+
+ case (.none, .some):
+ XCTFail("Got nil. " + message, file: file, line: line)
+
+ case (.none, .none):
+ // Both 'nil' -> equal
+ break
+ }
+ }
+
+ private func runExactNil(
+ _ i: I,
+ _ d: D.Type,
+ _ message: String = "",
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ let result = D(exactly: i)
+ XCTAssertNil(result, message, file: file, line: line)
+ }
+"""
+ )
+
+ f.write("}\n")
+
+
+def _write_decimal_tests(f: io.TextIOWrapper, d: DecimalType, i: IntType):
+ min = IntToDecimal(d, i.min)
+ max = IntToDecimal(d, i.max)
+ max_digit_count = digit_count(i.max)
+ can_represent_max_exactly = d.precision >= max_digit_count
+
+ f.write("\n")
+ f.write(f" // MARK: - {d.name} from {i.name}\n")
+
+ # Handle negative numbers for unsigned types.
+ is_signed = i.is_signed
+ is_unsigned = i.is_unsigned
+
+ def write_handling_unsigned(s: str, *, is_exactly: bool):
+ for line in s.splitlines():
+ has_negative = False
+
+ for marker in (
+ "self.run(-i,",
+ "self.runExact(-i",
+ "self.runExactNil(-i,",
+ "_packWithoutChecks(sign: .minus", # Otherwise unused variable
+ ):
+ has_negative = has_negative or marker in line
+
+ is_unsigned_negative = is_unsigned and has_negative
+
+ if not is_unsigned_negative:
+ f.write(line)
+ f.write("\n")
+
+ # ============
+ # === Cast ===
+ # ============
+
+ max_cast_status = "DecimalStatus()" if can_represent_max_exactly else ".isInexact"
+
+ s = f"""
+ func test_{d.name}_from_{i.name}() {{
+ var i = {i.name}.zero
+ var expected = {d.name}.zero
+
+ for r in Self.roundingRules {{
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = {d.name}._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = {d.name}._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+ }}
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: {d.name} = self.parseExact("{max.decimal_significand}E{max.decimal_exponent}", #file, #line) {{
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, {max_cast_status})
+ self.run(-i, rounding: .towardZero, expected: -e, {max_cast_status})
+ }}
+"""
+
+ write_handling_unsigned(s, is_exactly=False)
+
+ if is_signed:
+ f.write(
+ f"""
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ if let e: {d.name} = self.parseExact("{min.decimal_significand}E{min.decimal_exponent}", #file, #line) {{
+ i = .min
+ self.run(i, rounding: .towardZero, expected: -e, {max_cast_status})
+ }}
+"""
+ )
+
+ f.write(" }\n")
+
+ if not can_represent_max_exactly:
+ if d == Decimal32:
+ noRounding = "1234567"
+ rounded = "1234568"
+ elif d == Decimal64:
+ noRounding = "1234567890123455"
+ rounded = "1234567890123456"
+ else:
+ assert False, d.name
+
+ s = f"""
+ func test_{d.name}_from_{i.name}_rounding() {{
+ var i = {i.name}.zero
+ var expected = {d.name}.zero
+
+ for r in Self.roundingRules {{
+ // More digits than precision, but all = 0
+ i = {noRounding}_00
+ expected = {d.name}._packWithoutChecks(sign: .plus, significand: {noRounding}, signedExponent: 2)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+ }}
+
+ // More digits than precision, with rounding
+ let noRounding = {d.name}._packWithoutChecks(sign: .plus, significand: {noRounding}, signedExponent: 2)
+ let rounded = {d.name}._packWithoutChecks(sign: .plus, significand: {rounded}, signedExponent: 2)
+ let _noRounding = {d.name}._packWithoutChecks(sign: .minus, significand: {noRounding}, signedExponent: 2)
+ let _rounded = {d.name}._packWithoutChecks(sign: .minus, significand: {rounded}, signedExponent: 2)
+
+ // Below half
+ i = {noRounding}_42
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: noRounding, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _noRounding, .isInexact)
+
+ // Half - odd
+ i = {noRounding}_50
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _rounded, .isInexact)
+ // Half - even, we will reuse 'rounded' as it is even
+ i = {rounded}_50
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+
+ // Above half
+ i = {noRounding}_51
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _rounded, .isInexact)
+ }}
+"""
+ write_handling_unsigned(s, is_exactly=False)
+
+ # =============
+ # === Exact ===
+ # =============
+
+ max_cast_status = "DecimalStatus()" if can_represent_max_exactly else ".isInexact"
+
+ s = f"""
+ func test_{d.name}_from_{i.name}_exactly() {{
+ var i = {i.name}.zero
+ var expected = {d.name}.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = {d.name}._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ i = 42
+ expected = {d.name}._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+"""
+
+ if can_represent_max_exactly:
+ s += f"""
+ // We have to parse because the value may not be representable by int literal.
+ if let e: {d.name} = self.parseExact("{max.decimal_significand}E{max.decimal_exponent}", #file, #line) {{
+ i = .max
+ self.runExact( i, expected: e)
+ self.runExact(-i, expected: -e)
+ }}
+"""
+ if is_signed:
+ s += f"""
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ if let e: {d.name} = self.parseExact("{min.decimal_significand}E{min.decimal_exponent}", #file, #line) {{
+ i = .min
+ self.runExact(i, expected: -e)
+ }}
+"""
+
+ else:
+ base = "1" * d.precision
+ trailing_zero_count = max_digit_count - d.precision
+ assert trailing_zero_count > 0
+ trailing_zero = "0" * trailing_zero_count
+
+ s += f"""
+ // If we have a lot of trailing '0' then we are always representable.
+ i = {base}{trailing_zero}
+ expected = {d.name}._packWithoutChecks(sign: .plus, significand: {base}, signedExponent: {trailing_zero_count})
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ i = .max
+ expected = {d.name}._packWithoutChecks(sign: .plus, significand: {max.decimal_significand}, signedExponent: {max.decimal_exponent})
+ self.runExactNil( i, {d.name}.self)
+ self.runExactNil(-i, {d.name}.self)
+"""
+
+ if is_signed:
+ s += f"""
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ i = .min
+ self.runExactNil( i, {d.name}.self)
+"""
+
+ write_handling_unsigned(s, is_exactly=True)
+
+ f.write(" }\n")
diff --git a/Scripts/generate-tests/intel/__init__.py b/Scripts/generate-tests/intel/__init__.py
new file mode 100644
index 0000000..467759a
--- /dev/null
+++ b/Scripts/generate-tests/intel/__init__.py
@@ -0,0 +1,230 @@
+import os
+from dataclasses import dataclass
+from common import GENERATED_FILE_HEADER
+from intel.swift_code import get_swift_code
+from intel.write_test import Test, write_test
+from intel.fix_tests import fix_invalid_tests
+from intel.parse_readtest_h import IntelTestCode, parse_readtest_h
+from intel.parse_readtest_in import InputTest, parse_readtest_in
+
+# File used to check if Intel files are present.
+MARKER_FILE = "readtest.in"
+
+
+def generate(intel_dir: str, output_dir: str):
+ readtest_in_path = os.path.join(intel_dir, "readtest.in")
+ tests = parse_readtest_in(readtest_in_path)
+ fix_invalid_tests(tests)
+
+ readtest_h_path = os.path.join(intel_dir, "readtest.h")
+ c_code = parse_readtest_h(readtest_h_path)
+
+ files = _merge(tests, c_code)
+
+ for file in files:
+ if not file.tests:
+ continue
+
+ file_name = file.name + ".swift"
+ path = os.path.join(output_dir, file_name)
+
+ with open(path, "w") as f:
+ f.write(GENERATED_FILE_HEADER)
+ f.write("\n")
+ f.write("import XCTest\n")
+ f.write("@testable import Decimal\n")
+ f.write("\n")
+ f.write(f"class {file.name}: XCTestCase, IntelMixin {{\n")
+
+ for test in file.tests:
+ write_test(f, test)
+
+ f.write("}\n")
+
+
+@dataclass
+class _TestFile:
+ name: str
+ tests: list[Test]
+
+
+def _merge(tests: list[InputTest], c_code: list[IntelTestCode]) -> list[_TestFile]:
+ class_name_to_file: dict[str, _TestFile] = {}
+ test_name_to_c_code: dict[str, list[str]] = {}
+
+ for h in c_code:
+ name = h.test_name
+ assert name not in test_name_to_c_code, f"Duplicate: " + name
+ test_name_to_c_code[name] = h.lines
+
+ for test in tests:
+ test_name = test.name
+
+ # Skip if we do not have Swift implementation
+ if get_swift_code(test_name) is None:
+ continue
+
+ code = test_name_to_c_code.get(test_name)
+ assert code is not None, f"Missing C code: {test_name}"
+
+ class_name = _get_swift_class_name(test_name)
+ file = class_name_to_file.get(class_name)
+
+ if file is None:
+ file = _TestFile(class_name, [])
+ class_name_to_file[class_name] = file
+
+ test = Test(test_name, test.lines, code)
+ file.tests.append(test)
+
+ result: list[_TestFile] = []
+
+ for file in list(class_name_to_file.values()):
+ file.tests = sorted(file.tests, key=_by_bit_width)
+ result.append(file)
+
+ return result
+
+
+def _get_swift_class_name(test_name: str) -> str:
+ if _ends_with(
+ test_name,
+ "_isCanonical",
+ "_isFinite",
+ "_isInf",
+ "_isNaN",
+ "_isNormal",
+ "_isSignaling",
+ "_isSigned",
+ "_isSubnormal",
+ "_isZero",
+ "_abs",
+ "_class",
+ ):
+ return "IntelPropertyTests"
+
+ if _ends_with(test_name, "_negate"):
+ return "IntelUnaryTests"
+
+ if _ends_with(test_name, "_add"):
+ return "IntelAddTests"
+
+ if _ends_with(test_name, "_sub"):
+ return "IntelSubTests"
+
+ if _ends_with(test_name, "_div"):
+ return "IntelDivTests"
+
+ if _ends_with(test_name, "_rem"):
+ return "IntelRemTests"
+
+ if _ends_with(test_name, "_mul"):
+ return "IntelMulTests"
+
+ if _ends_with(test_name, "_fma"):
+ return "IntelFusedMultiplyAddTests"
+
+ if _ends_with(test_name, "_sqrt"):
+ return "IntelSquareRootTests"
+
+ if _ends_with(test_name, "_to_string"):
+ return "IntelToStringTests"
+
+ if _ends_with(test_name, "_from_string"):
+ return "IntelFromStringTests"
+
+ if _contains(test_name, "_to_int", "_to_uint"):
+ return "IntelToIntTests"
+
+ if _contains(test_name, "_from_int", "_from_uint"):
+ return "IntelFromIntTests"
+
+ if _ends_with(test_name, "_to_binary32", "_to_binary64", "_to_binary80"):
+ return "IntelToBinaryFloatingPointTests"
+
+ if _starts_with(test_name, "binary32_to_", "binary64_to_", "binary80_to_"):
+ return "IntelFromBinaryFloatingPointTests"
+
+ if _ends_with(test_name, "_to_dpd128", "_to_dpd32", "_to_dpd64"):
+ return "IntelToDenselyPackedDecimalTests"
+
+ if _starts_with(test_name, "bid_dpd_to_"):
+ return "IntelFromDenselyPackedDecimalTests"
+
+ if _ends_with(test_name, "_to_bid32", "_to_bid64", "_to_bid128"):
+ return "IntelFromDecimalTests"
+
+ if _ends_with(test_name, "_nextdown", "_nextup"):
+ return "IntelNextTests"
+
+ if _ends_with(test_name, "quiet_equal", "quiet_not_equal"):
+ return "IntelEqualTests"
+
+ if _ends_with(
+ test_name,
+ "quiet_greater",
+ "quiet_greater_equal",
+ "quiet_greater_unordered",
+ "quiet_not_greater",
+ "quiet_less",
+ "quiet_less_equal",
+ "quiet_less_unordered",
+ "quiet_not_less",
+ ):
+ return "IntelCompareTests"
+
+ if _ends_with(test_name, "_maxnum", "_maxnum_mag", "_minnum", "_minnum_mag"):
+ return "IntelMinMaxNumberTests"
+
+ if _ends_with(test_name, "_totalOrder", "_totalOrderMag"):
+ return "IntelTotalOrderTests"
+
+ if _ends_with(test_name, "_scalbln", "_scalbn", "_frexp", "_ilogb"):
+ return "IntelLogScaleTests"
+
+ if _ends_with(test_name, "_quantum", "_sameQuantum", "_quantize"):
+ return "IntelQuantumTests"
+
+ if _contains(test_name, "_round_integral_"):
+ return "IntelRoundTests"
+
+ if _ends_with(
+ test_name,
+ "_copy", # Does nothing
+ "_copySign", # Decimal{bit_width}(signOf: arg1, magnitudeOf: arg0)
+ "_inf", # Decimal{bit_width}.infinity
+ "_nan", # Decimal{bit_width}(nan: payload, signaling: false)
+ "_radix", # Decimal{bit_width}.radix
+ ):
+ return "IntelOtherTests"
+
+ assert False, f"Test '{test_name}' was not assigned to Swift file."
+
+
+def _starts_with(name: str, *args: str) -> bool:
+ for a in args:
+ if name.startswith(a):
+ return True
+
+ return False
+
+
+def _ends_with(name: str, *args: str) -> bool:
+ for a in args:
+ if name.endswith(a):
+ return True
+
+ return False
+
+
+def _contains(name: str, *args: str) -> bool:
+ for a in args:
+ if a in name:
+ return True
+
+ return False
+
+
+def _by_bit_width(t: Test) -> str:
+ "Sorting function."
+ return t.name.replace("bid32", "bid032").replace("bid64", "bid064")
diff --git a/Scripts/generate-tests/intel/fix_tests.py b/Scripts/generate-tests/intel/fix_tests.py
new file mode 100644
index 0000000..e3d2284
--- /dev/null
+++ b/Scripts/generate-tests/intel/fix_tests.py
@@ -0,0 +1,164 @@
+from dataclasses import dataclass
+from intel.parse_readtest_in import InputTest
+
+
+@dataclass
+class _ReplacedLine:
+ "Fix invalid test by changing the input."
+ old: str
+ new: str
+
+
+_REPLACED_LINES: list[_ReplacedLine] = [
+ # 'bid128_pow' has 3 operands (base, exponent and result).
+ # This line is not correct. We will add '00' status.
+ _ReplacedLine(
+ "bid128_pow 0 [7c00314dc6448d9338c15b0a00000000] [7c000000000000000000000000000000] 00",
+ "bid128_pow 0 [7c00314dc6448d9338c15b0a00000000] [7c000000000000000000000000000000] 00 00",
+ ),
+ # Decimal128 is expected to parse '1.1E-2E' (notice the double 'E').
+ # Decimal32 and Decimal64 are not.
+ # This is an invalid input, it should be NaN.
+ _ReplacedLine(
+ "bid128_from_string 0 1.1E-2E [303a000000000000000000000000000b] 00",
+ "bid128_from_string 0 1.1E-2E [7c000000000000000000000000000000] 00",
+ ),
+ # Intel parses 'SNANi' as 'SNAN'.
+ _ReplacedLine(
+ "bid64_from_string 0 +SNANi [7e00000000000000] 00",
+ "bid64_from_string 0 +SNAN [7e00000000000000] 00",
+ ),
+ _ReplacedLine(
+ "bid64_from_string 0 SNANi [7e00000000000000] 00",
+ "bid64_from_string 0 SNAN [7e00000000000000] 00",
+ ),
+ _ReplacedLine(
+ "bid32_from_string 0 +SNANi [7e000000] 00",
+ "bid32_from_string 0 +SNAN [7e000000] 00",
+ ),
+ _ReplacedLine(
+ "bid32_from_string 0 SNANi [7e000000] 00",
+ "bid32_from_string 0 SNAN [7e000000] 00",
+ ),
+ _ReplacedLine(
+ "bid128_from_string 0 +SNANi [7e000000000000000000000000000000] 00",
+ "bid128_from_string 0 +SNAN [7e000000000000000000000000000000] 00",
+ ),
+ _ReplacedLine(
+ "bid128_from_string 0 SNANi [7e000000000000000000000000000000] 00",
+ "bid128_from_string 0 SNAN [7e000000000000000000000000000000] 00",
+ ),
+ # Sometimes 'bid128_next[down/up]' have an additional arg in the middle:
+ # NAME ROUNDING ARG [ADDITIONAL_ARG] RESULT STATUS
+ _ReplacedLine(
+ "bid128_nextdown 0 1 [7c00314dc6448d9338c15b0a00000001] [2ffded09bead87c0378d8e63ffffffff] 00",
+ "bid128_nextdown 0 1 [2ffded09bead87c0378d8e63ffffffff] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextdown 0 [7c00314dc6448d9338c15b0a00000001] 1 [7c000000000000000000000000000000] 00",
+ "bid128_nextdown 0 [7c00314dc6448d9338c15b0a00000001] [7c000000000000000000000000000000] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextdown 0 [7c00314dc6448d9338c15b0a00000001] [7c00314dc6448d9338c15b0a00000001] [7c000000000000000000000000000000] 00",
+ "bid128_nextdown 0 [7c00314dc6448d9338c15b0a00000001] [7c000000000000000000000000000000] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextdown 0 [7c00314dc6448d9338c15b09ffffffff] [7c00314dc6448d9338c15b0a00000001] [7c00314dc6448d9338c15b09ffffffff] 00",
+ "bid128_nextdown 0 [7c00314dc6448d9338c15b09ffffffff] [7c00314dc6448d9338c15b09ffffffff] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextdown 0 [7c00314dc6448d9338c15b0a00000001] [7c00314dc6448d9338c15b09ffffffff] [7c000000000000000000000000000000] 00",
+ "bid128_nextdown 0 [7c00314dc6448d9338c15b0a00000001] [7c000000000000000000000000000000] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextdown 0 4294967296 4294967297 [3010d3c21bcecceda0ffffffffffffff] 00",
+ "bid128_nextdown 0 4294967296 [3010d3c21bcecceda0ffffffffffffff] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextdown 0 4294967296 4294967295 [3010d3c21bcecceda0ffffffffffffff] 00",
+ "bid128_nextdown 0 4294967296 [3010d3c21bcecceda0ffffffffffffff] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextdown 0 4294967295 4294967297 [3010d3c21bcdf92b853133125effffff] 00",
+ "bid128_nextdown 0 4294967295 [3010d3c21bcdf92b853133125effffff] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextdown 0 4294967295 4294967294 [3010d3c21bcdf92b853133125effffff] 00",
+ "bid128_nextdown 0 4294967295 [3010d3c21bcdf92b853133125effffff] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextup 0 1 [7c00314dc6448d9338c15b0a00000001] [2ffe314dc6448d9338c15b0a00000001] 00",
+ "bid128_nextup 0 1 [2ffe314dc6448d9338c15b0a00000001] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextup 0 [7c00314dc6448d9338c15b0a00000001] 1 [7c000000000000000000000000000000] 00",
+ "bid128_nextup 0 [7c00314dc6448d9338c15b0a00000001] [7c000000000000000000000000000000] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextup 0 [7c00314dc6448d9338c15b0a00000001] [7c00314dc6448d9338c15b0a00000001] [7c000000000000000000000000000000] 00",
+ "bid128_nextup 0 [7c00314dc6448d9338c15b0a00000001] [7c000000000000000000000000000000] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextup 0 [7c00314dc6448d9338c15b09ffffffff] [7c00314dc6448d9338c15b0a00000001] [7c00314dc6448d9338c15b09ffffffff] 00",
+ "bid128_nextup 0 [7c00314dc6448d9338c15b09ffffffff] [7c00314dc6448d9338c15b09ffffffff] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextup 0 [7c00314dc6448d9338c15b0a00000001] [7c00314dc6448d9338c15b09ffffffff] [7c000000000000000000000000000000] 00",
+ "bid128_nextup 0 [7c00314dc6448d9338c15b0a00000001] [7c000000000000000000000000000000] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextup 0 4294967296 4294967297 [3010d3c21bcecceda100000000000001] 00",
+ "bid128_nextup 0 4294967296 [3010d3c21bcecceda100000000000001] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextup 0 4294967296 4294967295 [3010d3c21bcecceda100000000000001] 00",
+ "bid128_nextup 0 4294967296 [3010d3c21bcecceda100000000000001] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextup 0 4294967295 4294967297 [3010d3c21bcdf92b853133125f000001] 00",
+ "bid128_nextup 0 4294967295 [3010d3c21bcdf92b853133125f000001] 00",
+ ),
+ _ReplacedLine(
+ "bid128_nextup 0 4294967295 4294967294 [3010d3c21bcdf92b853133125f000001] 00",
+ "bid128_nextup 0 4294967295 [3010d3c21bcdf92b853133125f000001] 00",
+ ),
+ # This Binary80 value is subnormal (exponent 0xA5 = 165, rest is 0).
+ # This should raise 'isSubnormal' flag, but it does not happen?
+ # There are other subnormal test lines that do not expect this flag,
+ # so I am not sure why THIS specific input should have it.
+ #
+ # Anyway, we will fix this test by removing 'subnormal' flag.
+ _ReplacedLine(
+ "binary80_to_bid32 0 [000000000000000A50000000000000000] [0000000000000000] 32",
+ "binary80_to_bid32 0 [000000000000000A50000000000000000] [0000000000000000] 30",
+ ),
+ # [407d3e74e92ab4e828a0] gives us:
+ # - sign = .plus
+ # - exponentBitPattern = 16509 = 0b100000001111101
+ # - significandBitPattern = 4500478297282980000 = 0b11111001110100111010010010101010110100111010000010100010100000
+ #
+ # This means 1.2658017740986624835e+38 and not 4.1509585679631632484e+37.
+ #
+ # I have no idea how this C line gives the 4.1509585679631632484e+37:
+ # sscanf(op+1, BID_FMT_X4""BID_FMT_LLX16, (unsigned int*)((BID_UINT64*)&ldbl1+1), (BID_UINT64*)&ldbl1)
+ # But it does, and after a few hours I give up.
+ #
+ # Anyway we will change the result to inexact 1.2658017740986624835e+38.
+ _ReplacedLine(
+ "binary80_to_bid128 0 [407d3e74e92ab4e828a0] [3048cca87682ee150000000000000000] 00",
+ "binary80_to_bid128 0 [407d3e74e92ab4e828a0] [304a3e68aa1edea0c76f2a5a469d7343] 0x20",
+ ),
+]
+
+
+def fix_invalid_tests(tests: list[InputTest]):
+ old_to_new: dict[str, str] = {}
+
+ for r in _REPLACED_LINES:
+ old_to_new[r.old] = r.new
+
+ for test in tests:
+ for line in test.lines:
+ new = old_to_new.get(line.value)
+ if new is not None:
+ line.value = new
diff --git a/Scripts/generate-tests/intel/parse_readtest_h.py b/Scripts/generate-tests/intel/parse_readtest_h.py
new file mode 100644
index 0000000..00afcd3
--- /dev/null
+++ b/Scripts/generate-tests/intel/parse_readtest_h.py
@@ -0,0 +1,318 @@
+from io import TextIOWrapper
+from dataclasses import dataclass
+
+
+# ============
+# === File ===
+# ============
+
+
+@dataclass
+class IntelTestCode:
+ test_name: str
+ # C code inside
+ lines: list[str]
+
+
+class _LineReader:
+ def __init__(self, f: TextIOWrapper) -> None:
+ self.line_number = -1
+ self.__line_start = 0
+ self.__f = f
+
+ def read_line(self) -> str | None:
+ self.line_number += 1
+ self.__line_start = self.__f.tell()
+ line = self.__f.readline()
+ return None if line == "" else line.rstrip()
+
+ def push_back_line(self):
+ self.__f.seek(self.__line_start)
+
+
+def _parse_test(reader: _LineReader) -> IntelTestCode | None:
+ while True:
+ line = reader.read_line()
+ line_number = reader.line_number
+
+ is_conditional = line == "#if __ENABLE_BINARY80__" or line == "#endif"
+ if not is_conditional:
+ break
+
+ if line is None:
+ return None
+
+ assert _is_test_start(
+ line
+ ), f"Expected '{line}' (line {line_number}) to start a new test."
+
+ name_split = line.split('"')
+ assert len(name_split) == 3
+
+ name = name_split[1]
+ code: list[str] = list()
+ line = reader.read_line()
+
+ while line is not None:
+ is_test_end = line == "}"
+ if is_test_end:
+ break
+
+ code.append(line)
+ line = reader.read_line()
+
+ return IntelTestCode(name, code)
+
+
+def _is_test_start(line: str) -> bool:
+ return _starts_with(line, "if(strcmp(func,")
+
+
+def parse_readtest_h(path: str) -> list[IntelTestCode]:
+ name_to_code: dict[str, IntelTestCode] = dict()
+
+ with open(path, "r") as f:
+ reader = _LineReader(f)
+ line = ""
+
+ # Skip header
+ while line is not None and not _is_test_start(line):
+ line = reader.read_line()
+
+ assert line is not None, "Skipping pash header skipped the whole file."
+
+ # Put back the initial test line
+ reader.push_back_line()
+
+ while True:
+ code = _parse_test(reader)
+
+ if code is None:
+ break
+ else:
+ name = code.test_name
+
+ if name in name_to_code:
+ # 'bidXX_fmod' functions have duplicates.
+ if name.endswith("_fmod"):
+ pass
+ else:
+ assert False, f"Duplicate {name}."
+
+ name_to_code[name] = code
+
+ return list(name_to_code.values())
+
+
+# ==============
+# === C code ===
+# ==============
+
+
+@dataclass
+class Operand:
+ name: str
+ swift_type: str
+ swift_parsing_function: str
+
+
+_OPERANDS = (
+ # BID encoding
+ Operand("OP_DEC32", "Decimal32", "parseDecimal32"),
+ Operand("OP_DEC64", "Decimal64", "parseDecimal64"),
+ Operand("OP_DEC128", "Decimal128", "parseDecimal128"),
+ # DPD encoding
+ Operand("OP_DPD32", "UInt32", "parseDenselyPackedDecimal32"),
+ Operand("OP_DPD64", "UInt64", "parseDenselyPackedDecimal64"),
+ Operand("OP_DPD128", "UInt128", "parseDenselyPackedDecimal128"),
+ # Binary floating point
+ Operand("OP_BIN32", "Float", "parseFloat"),
+ Operand("OP_BIN64", "Double", "parseDouble"),
+ Operand("OP_BIN80", "Float80", "parseFloat80"),
+ # Operand("OP_BIN128", "", ""),
+ # Int
+ Operand("OP_INT8", "Int8", "parseInt8"),
+ Operand("OP_INT16", "Int16", "parseInt16"),
+ Operand("OP_INT32", "Int32", "parseInt32"),
+ Operand("OP_INT64", "Int64", "parseInt64"),
+ # UInt
+ Operand("OP_BID_UINT8", "UInt8", "parseUInt8"),
+ Operand("OP_BID_UINT16", "UInt16", "parseUInt16"),
+ Operand("OP_BID_UINT32", "UInt32", "parseUInt32"),
+ Operand("OP_BID_UINT64", "UInt64", "parseUInt64"),
+ # Other
+ # Operand("OP_NONE", "", ""),
+ # Operand("OP_STRING", "", ""),
+ Operand("OP_LINT", "Int", "parseInt"),
+)
+
+
+@dataclass
+class Compare:
+ name: str
+ swift_enum_value: str
+
+
+# expected_status != *pfpsf
+# check64 (R64, Q64) // return a == b ? 0 : 1
+# i1 != i2
+# Qi64 != qi64
+# R64_1 != B64
+COMPARE_FUZZY_STATUS = Compare("CMP_FUZZYSTATUS", "fuzzyStatus")
+# check64 (R64, Q64)
+# BIDECIMAL_CALL2_NORND (bid64_quiet_not_equal, Q64, R64);
+# expected_status != *pfpsf
+COMPARE_EQUAL_STATUS = Compare("CMP_EQUALSTATUS", "equalStatus")
+# check64_rel(R64, Q64)
+# (expected_status&trans_flags_mask) != (*pfpsf&trans_flags_mask)
+COMPARE_RELATIVE_ERROR = Compare("CMP_RELATIVEERR", "relativeError")
+
+# Not used
+# COMPARE_EXACT = Compare("CMP_EXACT", "exact")
+# COMPARE_EXACT_STATUS = Compare("CMP_EXACTSTATUS", "exactStatus")
+# COMPARE_FUZZY = Compare("CMP_FUZZY", "fuzzy")
+# COMPARE_EQUAL = Compare("CMP_EQUAL", "equal")
+# COMPARE_NONE = Compare("CMP_NONE", "none")
+
+
+@dataclass
+class CHandler:
+ operands: list[Operand]
+ has_rounding: bool
+ has_status: bool
+ compare: Compare
+
+
+def parse_c_handler_code(test_name: str, code: list[str]) -> CHandler:
+ get_test: str | None = None
+ call: str | None = None
+ check_results: str | None = None
+ error_prefix = f"Unable to parse c handler for {test_name}: "
+
+ for line in code:
+ line = line.strip()
+
+ if line in ("{", "}", "*pfpsf = fpsf_0; save_binary_status();", "fpsf_0 = 0;"):
+ pass
+ elif line.startswith("GETTEST"):
+ get_test = line
+ elif line.startswith("BIDECIMAL_CALL"):
+ call = line
+ elif line.startswith("check_results"):
+ check_results = line
+ elif test_name.endswith("_nan"):
+ # We will allow different lines in 'bidXX_nan' tests.
+ pass
+ else:
+ assert False, error_prefix + f"invalid line pattern: '{line}'."
+
+ assert get_test is not None, error_prefix + "missing 'get_test' line."
+ assert call is not None, error_prefix + "missing 'call' line."
+ assert check_results is not None, error_prefix + "missing 'check_results' line."
+
+ # ================
+ # === Operands ===
+ # ================
+
+ assert _starts_with(get_test, "GETTEST1(", "GETTEST2(", "GETTEST3("), (
+ error_prefix + "unknown test GETTER: " + get_test
+ )
+
+ operands: list[Operand] = []
+ operands_str = _get_string_between_brackets(get_test)
+
+ for operand_name in operands_str.split(","):
+ operand: Operand | None = None
+ operand_name = operand_name.strip()
+
+ for o in _OPERANDS:
+ if o.name == operand_name:
+ operand = o
+ break
+
+ assert operand is not None, (
+ error_prefix + "unimplemented OPERAND: " + operand_name
+ )
+ operands.append(operand)
+
+ # GETTEST 1st argument is the result followed by arguments.
+ # In file the result is last.
+ # We will follow the file order.
+ #
+ # File reading:
+ # sscanf (line, "%s %d %s %s %x", funcstr, &rnd_mode, op1, res, &expected_status)
+ # sscanf (line, "%s %d %s %s %s %x", funcstr, &rnd_mode, op1, op2, res, &expected_status)
+ # sscanf (line, "%s %d %s %s %s %s %x", funcstr, &rnd_mode, op1, op2, op3, res, &expected_status)
+ #
+ # Get test:
+ # GETTEST1(res,op1) op1type = (op1); restype = (res); get_test();
+ # GETTEST2(res,op1,op2) op1type = (op1); op2type = (op2); restype = (res); get_test();
+ # GETTEST3(res,op1,op2,op3) op1type = (op1); op2type = (op2); op3type = (op3); restype = (res); get_test();
+ result_operand = operands.pop(0)
+ operands.append(result_operand)
+
+ # ============
+ # === Call ===
+ # ============
+
+ has_rounding = True
+ has_status = True
+
+ # Longer names have to be 1st!
+ if _starts_with(call, "BIDECIMAL_CALLV_EMPTY("):
+ pass
+ elif _starts_with(call, "BIDECIMAL_CALL1_NORND(", "BIDECIMAL_CALL2_NORND("):
+ has_rounding = False
+ elif _starts_with(
+ call, "BIDECIMAL_CALL1_NORND_NOSTAT(", "BIDECIMAL_CALL2_NORND_NOSTAT("
+ ):
+ has_status = False
+ has_rounding = False
+ elif _starts_with(call, "BIDECIMAL_CALL1_NORND_RESREF("):
+ has_rounding = False
+ elif _starts_with(call, "BIDECIMAL_CALL2_NORND_NOFLAGS_NOMASK_NOINFO_ARG2REF("):
+ # 'frexp' has rounding
+ has_rounding = test_name.endswith("_frexp")
+ elif _starts_with(call, "BIDECIMAL_CALL1_NORND_NOFLAGS_NOMASK_NOINFO_ARGREF("):
+ has_status = False
+ has_rounding = False
+ elif _starts_with(call, "BIDECIMAL_CALL1_RESARG("):
+ pass
+ elif _starts_with(call, "BIDECIMAL_CALL1(", "BIDECIMAL_CALL2(", "BIDECIMAL_CALL3("):
+ pass
+ else:
+ assert False, error_prefix + "unknown CALL function: " + call
+
+ # ==============
+ # === Assert ===
+ # ==============
+
+ compare_str = _get_string_between_brackets(check_results)
+
+ if compare_str == COMPARE_FUZZY_STATUS.name:
+ compare = COMPARE_FUZZY_STATUS
+ elif compare_str == COMPARE_EQUAL_STATUS.name:
+ compare = COMPARE_EQUAL_STATUS
+ elif compare_str == COMPARE_RELATIVE_ERROR.name:
+ compare = COMPARE_RELATIVE_ERROR
+ else:
+ assert False, error_prefix + "unknown COMPARE: " + compare_str
+
+ return CHandler(operands, has_rounding, has_status, compare)
+
+
+def _get_string_between_brackets(s: str) -> str:
+ "Get text between brackets"
+ left_index = s.index("(")
+ right_index = s.index(")")
+ return s[left_index + 1 : right_index]
+
+
+def _starts_with(s: str, *args: str) -> bool:
+ s = s.replace(" ", "")
+
+ for p in args:
+ if s.startswith(p):
+ return True
+
+ return False
diff --git a/Scripts/generate-tests/intel/parse_readtest_in.py b/Scripts/generate-tests/intel/parse_readtest_in.py
new file mode 100644
index 0000000..2248ac5
--- /dev/null
+++ b/Scripts/generate-tests/intel/parse_readtest_in.py
@@ -0,0 +1,133 @@
+from dataclasses import dataclass
+from intel.parse_readtest_h import Operand
+
+# ============
+# === File ===
+# ============
+
+
+@dataclass
+class InputLine:
+ number: int
+ value: str
+
+
+@dataclass
+class InputTest:
+ name: str
+ lines: list[InputLine]
+
+
+def parse_readtest_in(path: str) -> list[InputTest]:
+ "Returns mapping: intel_test_name -> list of inputs."
+
+ test_name_to_lines: dict[str, list[InputLine]] = dict()
+
+ with open(path, "r") as f:
+ for n, line in enumerate(f):
+ line = line.strip()
+
+ if not line or line.startswith("--"): # -- comment
+ continue
+
+ name_end_index = line.find(" ")
+ assert name_end_index != -1, "Unable to find name in: " + line
+
+ name = line[:name_end_index]
+ lines = test_name_to_lines.get(name)
+
+ if lines is None:
+ lines = []
+ test_name_to_lines[name] = lines
+
+ l = InputLine(n + 1, line)
+ lines.append(l)
+
+ result: list[InputTest] = []
+
+ for name, lines in test_name_to_lines.items():
+ t = InputTest(name, lines)
+ result.append(t)
+
+ return result
+
+
+# ============
+# === Line ===
+# ============
+
+
+@dataclass
+class Argument:
+ value: str
+ operand: Operand
+
+ @property
+ def swift_type(self) -> str:
+ return self.operand.swift_type
+
+ @property
+ def swift_parsing_function(self) -> str:
+ return self.operand.swift_parsing_function
+
+
+@dataclass
+class Arguments:
+ rounding: str
+ args: list[Argument]
+ status: str
+
+ ulp: str | None
+ str_prefix: str | None
+ long_int_size: str | None
+ underflow_before_only: bool
+
+
+# Rename: parse_input_line
+def parse_input(
+ test_name: str, input_line: InputLine, operands: list[Operand]
+) -> Arguments:
+ # Every line is: NAME ROUNDING ARG1 ARG2 ARG3 STATUS
+ line = input_line.value
+ while " " in line:
+ line = line.replace(" ", " ")
+
+ split = line.split(" ")
+ rounding = split[1]
+ args: list[Argument] = []
+
+ for i, op in enumerate(operands):
+ s = split[2 + i]
+ args.append(Argument(s, op))
+
+ status_index = 2 + len(operands)
+ status = split[status_index]
+
+ ulp: str | None = None
+ str_prefix: str | None = None
+ long_int_size: str | None = None
+ underflow_before_only = False
+
+ index = status_index + 1
+ while index < len(split):
+ s = split[index]
+
+ if s == "underflow_before_only" or s == "undefrlow_before_only":
+ underflow_before_only = True
+ elif s.startswith("ulp="):
+ ulp = s[4:]
+ elif s.startswith("str_prefix="):
+ str_prefix = s[11:]
+ elif s.startswith("longintsize="):
+ long_int_size = s[12:]
+ elif s.startswith("--"):
+ # Comment until the end of the line.
+ break
+ else:
+ assert False, "Unknown line suffix: " + s
+
+ index += 1
+
+ return Arguments(
+ rounding, args, status, ulp, str_prefix, long_int_size, underflow_before_only
+ )
diff --git a/Scripts/generate-tests/intel/swift_code.py b/Scripts/generate-tests/intel/swift_code.py
new file mode 100644
index 0000000..84a5960
--- /dev/null
+++ b/Scripts/generate-tests/intel/swift_code.py
@@ -0,0 +1,790 @@
+from dataclasses import dataclass
+
+_TEST_NAME_TO_SWIFT_CODE: dict[str, str] = dict()
+_NOT_IMPLEMENTED_TEST_NAMES: set[str] = set()
+
+
+def get_swift_code(test_name: str) -> str | None:
+ _fill_dict()
+
+ result = _TEST_NAME_TO_SWIFT_CODE.get(test_name)
+ if result is not None:
+ return result
+
+ assert (
+ test_name in _NOT_IMPLEMENTED_TEST_NAMES
+ ), f"Unknown test function: {test_name}."
+
+ return None
+
+
+def _fill_dict():
+ if _TEST_NAME_TO_SWIFT_CODE:
+ return
+
+ _TEST_NAME_TO_SWIFT_CODE["A"] = "B"
+
+ test_name: str | None = None
+ test_code: list[str] = []
+
+ for line in _get_lines(_DEFINITIONS):
+ line_strip = line.strip()
+
+ if line_strip.startswith("#"):
+ continue
+
+ if line_strip == "" or line.startswith(" "):
+ test_code.append(line)
+ else:
+ _add_test(test_name, test_code)
+ test_name = line
+ test_code = []
+
+ # Add last test
+ _add_test(test_name, test_code)
+
+
+@dataclass
+class _Replacement:
+ old: str
+ # If 'dict' -> all of the entries will be added as replacements.
+ values: list[str | dict[str, str]]
+
+
+# {compare_enum_value} will be replaced later based on 'readtest.h'.
+_REPLACEMENTS: list[_Replacement] = [
+ _Replacement("{bit_width}", ["32", "64", "128"]),
+ _Replacement("{binary_width}", ["32", "64", "80"]),
+ _Replacement(
+ "{int.intel}",
+ [
+ {"{int.intel}": "int8", "{int.swift}": "Int8"},
+ {"{int.intel}": "uint8", "{int.swift}": "UInt8"},
+ {"{int.intel}": "int16", "{int.swift}": "Int16"},
+ {"{int.intel}": "uint16", "{int.swift}": "UInt16"},
+ {"{int.intel}": "int32", "{int.swift}": "Int32"},
+ {"{int.intel}": "uint32", "{int.swift}": "UInt32"},
+ {"{int.intel}": "int64", "{int.swift}": "Int64"},
+ {"{int.intel}": "uint64", "{int.swift}": "UInt64"},
+ ],
+ ),
+ _Replacement(
+ "{binary_floating_point.intel}",
+ [
+ {
+ "{binary_floating_point.intel}": "binary32",
+ "{binary_floating_point.swift}": "Float",
+ },
+ {
+ "{binary_floating_point.intel}": "binary64",
+ "{binary_floating_point.swift}": "Double",
+ },
+ {
+ "{binary_floating_point.intel}": "binary80",
+ "{binary_floating_point.swift}": "Float80",
+ },
+ ],
+ ),
+]
+
+
+def _add_test(name_template: str | None, code_lines: list[str]):
+ if name_template is None:
+ return
+
+ code_template = "\n".join(code_lines)
+
+ # Select replacements to use.
+ # We have a lot of replacements, so nesting 'for' loops is too slow.
+ # By default replace Python '{{' with '{'.
+ replacements: list[dict[str, str]] = [
+ {
+ "{{": "{",
+ "}}": "}",
+ }
+ ]
+
+ for r in _REPLACEMENTS:
+ if r.old in name_template or r.old in code_template:
+ new_replacements: list[dict[str, str]] = []
+
+ for new in r.values:
+ for old_to_new in replacements:
+ copy = old_to_new.copy()
+
+ if isinstance(new, str):
+ copy[r.old] = new
+ else:
+ copy.update(new)
+
+ new_replacements.append(copy)
+
+ replacements = new_replacements
+
+ for r in replacements:
+ name = name_template
+ code = code_template
+
+ for old, new in r.items():
+ name = name.replace(old, new)
+ code = code.replace(old, new)
+
+ name = name.strip()
+ has_implementation = code.strip()
+
+ if has_implementation:
+ _TEST_NAME_TO_SWIFT_CODE[name] = code
+ else:
+ _NOT_IMPLEMENTED_TEST_NAMES.add(name)
+
+
+def _get_lines(s: str):
+ index = 0
+
+ while index < len(s):
+ line_end_index = s.find("\n", index)
+ line = s[index:line_end_index]
+ index = line_end_index + 1
+ yield line
+
+
+_DEFINITIONS = """
+
+bid{bit_width}_class
+ let result = arg0.floatingPointClass
+ self.assertFloatingPointClass(result, expected, file, line)
+
+bid{bit_width}_radix
+ // Dummy use for 'arg0', so that the compiler does not complain.
+ _ = arg0
+
+ let result = Decimal{bit_width}.radix
+ self.assertInt(result, Int(expected), file, line)
+
+bid{bit_width}_nan
+ let payload = arg0.bid & Decimal{bit_width}.nanPayloadMask
+ let result = Decimal{bit_width}(nan: payload, signaling: false)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_inf
+ // Dummy use for 'arg0, rounding, status', so that the compiler does not complain.
+ _ = (arg0, rounding)
+ // Dummy assign 'status', so that the compiler does not complain.
+ status = DecimalStatus()
+
+ let result = Decimal{bit_width}.infinity
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_copy
+ let result = arg0
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_copySign
+ let result = Decimal{bit_width}(signOf: arg1, magnitudeOf: arg0)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+# ==================
+# === Predicates ===
+# ==================
+
+bid{bit_width}_isZero
+ let result = arg0.isZero
+ self.assertBool(result, expected, file, line)
+bid{bit_width}_isFinite
+ let result = arg0.isFinite
+ self.assertBool(result, expected, file, line)
+bid{bit_width}_isInf
+ let result = arg0.isInfinite
+ self.assertBool(result, expected, file, line)
+
+bid{bit_width}_isNormal
+ let result = arg0.isNormal
+ self.assertBool(result, expected, file, line)
+bid{bit_width}_isSubnormal
+ let result = arg0.isSubnormal
+ self.assertBool(result, expected, file, line)
+bid{bit_width}_isCanonical
+ let result = arg0.isCanonical
+ self.assertBool(result, expected, file, line)
+
+bid{bit_width}_isNaN
+ let result = arg0.isNaN
+ self.assertBool(result, expected, file, line)
+bid{bit_width}_isSignaling
+ let result = arg0.isSignalingNaN
+ self.assertBool(result, expected, file, line)
+
+bid{bit_width}_isSigned
+ let result = arg0.sign
+ self.assertSign(result, expected, file, line)
+
+# ==============
+# === String ===
+# ==============
+
+bid{bit_width}_from_string
+ let result = Decimal{bit_width}(arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_parse(arg0, rounding, &status, result: result)
+ self.assertEqual(resultIntel, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_to_string
+ // Dummy assign 'status', so that the compiler does not complain.
+ status = DecimalStatus()
+
+ let result = String(arg0)
+ let resultIntel = self.toIntel_toString(arg0, result: result)
+ self.assertToString(Decimal{bit_width}.self, resultIntel, expected, file, line)
+
+# ================
+# === From Int ===
+# ================
+
+# For Int32:
+# - Decimal32 needs rounding
+# - Decimal64 and Decimal128 do not
+
+bid32_from_int32
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid32_from_uint32
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid64_from_int32
+ let result = Decimal64(arg0)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid64_from_uint32
+ let result = Decimal64(arg0)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid128_from_int32
+ let result = Decimal128(arg0)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid128_from_uint32
+ let result = Decimal128(arg0)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+# For Int64:
+# - Decimal32 and Decimal64 need rounding
+# - Decimal128 does not
+
+bid32_from_int64
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid32_from_uint64
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid64_from_int64
+ let result = Decimal64(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid64_from_uint64
+ let result = Decimal64(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid128_from_int64
+ let result = Decimal128(arg0)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid128_from_uint64
+ let result = Decimal128(arg0)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+# ==============
+# === To Int ===
+# ==============
+
+bid{bit_width}_to_{int.intel}_ceil
+ let result: {int.swift} = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+
+bid{bit_width}_to_{int.intel}_floor
+ let result: {int.swift} = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+
+bid{bit_width}_to_{int.intel}_int
+ let result: {int.swift} = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+
+bid{bit_width}_to_{int.intel}_rnint
+ let result: {int.swift} = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+
+bid{bit_width}_to_{int.intel}_rninta
+ let result: {int.swift} = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+
+
+bid{bit_width}_to_{int.intel}_xceil
+ let result: {int.swift} = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+
+bid{bit_width}_to_{int.intel}_xfloor
+ let result: {int.swift} = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+
+bid{bit_width}_to_{int.intel}_xint
+ let result: {int.swift} = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+
+bid{bit_width}_to_{int.intel}_xrnint
+ let result: {int.swift} = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+
+bid{bit_width}_to_{int.intel}_xrninta
+ let result: {int.swift} = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+
+# =============================
+# === Binary floating point ===
+# =============================
+
+{binary_floating_point.intel}_to_bid{bit_width}
+ let result = Decimal{bit_width}(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_to_{binary_floating_point.intel}
+ let result = {binary_floating_point.swift}(arg0, rounding: rounding, status: &status)
+ self.assertBinaryFloatingPoint(result, expected, file, line)
+
+# ====================
+# === From Decimal ===
+# ====================
+
+bid64_to_bid32
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, {compare_enum_value}, file, line)
+
+bid128_to_bid32
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, {compare_enum_value}, file, line)
+
+bid32_to_bid64
+ let result = Decimal64(arg0)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, {compare_enum_value}, file, line)
+
+bid128_to_bid64
+ let result = Decimal64(arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, {compare_enum_value}, file, line)
+
+bid32_to_bid128
+ let result = Decimal128(arg0)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, {compare_enum_value}, file, line)
+
+bid64_to_bid128
+ let result = Decimal128(arg0)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, {compare_enum_value}, file, line)
+
+# ============
+# === Math ===
+# ============
+
+bid{bit_width}_negate
+ let result1 = -arg0
+ self.assertEqual(result1, expected, {compare_enum_value}, file, line)
+
+ var result2 = arg0
+ result2.negate()
+ self.assertEqual(result2, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_abs
+ let result = arg0.magnitude
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_add
+ let result = arg0.adding(arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+bid{bit_width}_sub
+ let result = arg0.subtracting(arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_mul
+ let result = arg0.multiplied(by: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+bid{bit_width}_div
+ let result = arg0.divided(by: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+bid{bit_width}_rem
+ let result = arg0.remainder(dividingBy: arg1, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+ let result2 = self.remainderFromTruncatingRemainder(arg0, dividingBy: arg1)
+ self.assertEqual(result2, expected, {compare_enum_value}, file, line)
+
+# Pow is not implemented in Swift version
+bid{bit_width}_pow
+# let result = arg0.pow(exponent: arg1, rounding: rounding, status: &status)
+# self.assertEqual(result, expected, {compare_enum_value}, ulp: ulp, rounding: rounding, file, line)
+
+bid{bit_width}_sqrt
+ let result = arg0.squareRoot(rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, ulp: ulp, rounding: rounding, file, line)
+
+bid{bit_width}_fma
+ let result = arg2.addingProduct(arg0, arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+# ===============
+# === Compare ===
+# ===============
+
+bid{bit_width}_quiet_equal
+ let result = arg0.isEqual(to: arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+
+bid{bit_width}_quiet_not_equal
+ let result = arg0.isEqual(to: arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+
+bid{bit_width}_quiet_less
+ let result = arg0.isLess(than: arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+
+bid{bit_width}_quiet_not_less
+ let result = arg0.isLess(than: arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+
+bid{bit_width}_quiet_less_equal
+ let result = arg0.isLessThanOrEqualTo(arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+
+# Is it greater or unordered?
+# Table 5.3 — Required unordered-quiet predicates and negations
+# LT EQ | compareQuietLessEqual isLessEqual
+# GT UN | compareQuietGreaterUnordered ?>, NOT(isLessEqual)
+bid{bit_width}_quiet_greater_unordered
+ let result = arg0.isLessThanOrEqualTo(arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+
+bid{bit_width}_quiet_greater
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLess(than: arg0, status: &status)
+ self.assertBool(result, expected, file, line)
+
+bid{bit_width}_quiet_not_greater
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLess(than: arg0, status: &status)
+ self.assertNotBool(result, expected, file, line)
+
+bid{bit_width}_quiet_greater_equal
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLessThanOrEqualTo(arg0, status: &status)
+ self.assertBool(result, expected, file, line)
+
+# Is it less or unordered?
+# Table 5.3 — Required unordered-quiet predicates and negations
+# GT EQ | compareQuietGreaterEqual isGreaterEqual
+# LT UN | compareQuietLessUnordered ?<, NOT(isGreaterEqual)
+bid{bit_width}_quiet_less_unordered
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLessThanOrEqualTo(arg0, status: &status)
+ self.assertNotBool(result, expected, file, line)
+
+# ===================
+# === Total order ===
+# ===================
+
+bid{bit_width}_totalOrder
+ let result = arg0.isTotallyOrdered(belowOrEqualTo: arg1)
+ self.assertBool(result, expected, file, line)
+
+bid{bit_width}_totalOrderMag
+ let arg0Mag = arg0.magnitude
+ let arg1Mag = arg1.magnitude
+ let result = arg0Mag.isTotallyOrdered(belowOrEqualTo: arg1Mag)
+ self.assertBool(result, expected, file, line)
+
+# =======================
+# === Minimum/maximum ===
+# =======================
+
+bid{bit_width}_minnum
+ let result = Decimal{bit_width}.minimum(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_minnum_mag
+ let result = Decimal{bit_width}.minimumMagnitude(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_maxnum
+ let result = Decimal{bit_width}.maximum(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_maxnum_mag
+ let result = Decimal{bit_width}.maximumMagnitude(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+# =============
+# === Scale ===
+# =============
+
+bid{bit_width}_scalbln
+ let result = Decimal{bit_width}(sign: .plus, exponent: arg1, significand: arg0, rounding: rounding, status: &status)
+ _ = longIntSize // Never used; silence compiler warning
+ let resultIntel = self.toIntel_scaleB(arg0, arg1, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, {compare_enum_value}, ulp: ulp, rounding: rounding, file, line)
+
+bid{bit_width}_scalbn
+ let result = Decimal{bit_width}(sign: .plus, exponent: Int(arg1), significand: arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_scaleB(arg0, Int(arg1), result: result, status: &status)
+ self.assertEqual(resultIntel, expected, {compare_enum_value}, ulp: ulp, rounding: rounding, file, line)
+
+bid{bit_width}_ilogb
+ assert(ulp?.isZero ?? true) // 'ulp' does not make sense in this test
+ let result = arg0.exponent(status: &status)
+ let resultIntel = self.toIntel_logB(arg0, result: result)
+ self.assertInt(resultIntel, expected, file, line)
+
+# We will use 'frexp' to test 'significand'
+bid{bit_width}_frexp
+ let exponent = arg0.exponent(status: &status)
+ let significand = arg0.significand
+ let intel = self.toIntel_frexp(arg0, exponent: exponent, significand: significand)
+
+ // 'arg1' is the expected exponent
+ self.assertInt(intel.exponent, arg1, file, line, "Exponent")
+ self.assertEqual(intel.significand, expected, {compare_enum_value}, ulp: ulp, rounding: rounding, file, line, "Significand")
+
+ if arg0._isFinite && !arg0.isZero {
+ // We have to exclude 0, because it does not guarantee exponent preservation
+ // ('0.exponent' returns 'Int.min').
+ // Rounding should not matter
+ let restored = Decimal{bit_width}(sign: arg0.sign, exponent: exponent, significand: significand, rounding: .towardZero)
+ self.assertEqual(restored, arg0, {compare_enum_value}, ulp: ulp, rounding: rounding, file, line, "Decimal{bit_width}(sign:exponent:significand:)")
+ }
+
+ // 'frexp' does not signal any exceptions
+ status = DecimalStatus()
+
+# ===================
+# === bid <-> dpd ===
+# ===================
+
+bid_to_dpd{bit_width}
+ let result = arg0.decimalEncoding
+ self.assertInt(result, expected, file, line)
+
+bid_dpd_to_bid{bit_width}
+ let result = Decimal{bit_width}(decimalEncoding: arg0)
+ let expected2 = self.toIntel_initFromDecimalEncoding(expected: expected)
+ self.assertEqual(result, expected2, {compare_enum_value}, file, line)
+
+# ============
+# === Next ===
+# ============
+
+bid{bit_width}_nextup
+ let result = arg0.nextUp(status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_nextdown
+ let result = arg0.nextDown(status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+# ===============
+# === Quantum ===
+# ===============
+
+bid{bit_width}_quantize
+ let result = arg0.quantized(to: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+bid{bit_width}_sameQuantum
+ let result = arg0.sameQuantum(as: arg1)
+ self.assertBool(result, expected, file, line)
+
+bid{bit_width}_quantum
+ let result = arg0.quantum
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+# =============
+# === Round ===
+# =============
+
+bid{bit_width}_round_integral_nearest_away
+ let result = arg0.rounded(.toNearestOrAwayFromZero, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+ self.toIntel_round(status: &status)
+
+bid{bit_width}_round_integral_nearest_even
+ let result = arg0.rounded(.toNearestOrEven, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+ self.toIntel_round(status: &status)
+
+bid{bit_width}_round_integral_positive
+ let result = arg0.rounded(.up, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+ self.toIntel_round(status: &status)
+
+bid{bit_width}_round_integral_negative
+ let result = arg0.rounded(.down, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+ self.toIntel_round(status: &status)
+
+bid{bit_width}_round_integral_zero
+ let result = arg0.rounded(.towardZero, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+ self.toIntel_round(status: &status)
+
+# Signal inexact exceptions
+bid{bit_width}_round_integral_exact
+ let result = arg0.rounded(rounding, status: &status)
+ self.assertEqual(result, expected, {compare_enum_value}, file, line)
+
+
+
+
+
+
+
+
+
+# =======================
+# === Not implemented ===
+# =======================
+
+# We do not have Float128
+binary128_to_bid{bit_width}
+bid{bit_width}_to_binary128
+
+# String to Decimal - we already have parse
+bid_strtod{bit_width}
+bid_wcstod{bit_width}
+
+# Extract unbiased exponent - we don't need it
+bid{bit_width}_quantexp
+
+# Are operands ordered? (none of them is NaN?)
+bid{bit_width}_quiet_ordered
+# Are operands unordered? (at least one of them NaN?)
+bid{bit_width}_quiet_unordered
+
+# We do not have signaling operations
+bid{bit_width}_signaling_greater
+bid{bit_width}_signaling_greater_equal
+bid{bit_width}_signaling_greater_unordered
+bid{bit_width}_signaling_less
+bid{bit_width}_signaling_less_equal
+bid{bit_width}_signaling_less_unordered
+bid{bit_width}_signaling_not_greater
+bid{bit_width}_signaling_not_less
+
+# Breaks x into an integral and a fractional part.
+# Not needed.
+bid{bit_width}_modf
+
+# ???
+str64
+
+# Transcendental
+bid{bit_width}_acos
+bid{bit_width}_acosh
+bid{bit_width}_asin
+bid{bit_width}_asinh
+bid{bit_width}_atan
+bid{bit_width}_atan2
+bid{bit_width}_atanh
+bid{bit_width}_cbrt
+bid{bit_width}_cos
+bid{bit_width}_cosh
+bid{bit_width}_erf
+bid{bit_width}_erfc
+bid{bit_width}_exp
+bid{bit_width}_exp10
+bid{bit_width}_exp2
+bid{bit_width}_expm1
+bid{bit_width}_fdim
+bid{bit_width}_fmod
+bid{bit_width}_hypot
+bid{bit_width}_ldexp
+bid{bit_width}_lgamma
+bid{bit_width}_llquantexp
+bid{bit_width}_llrint
+bid{bit_width}_llround
+bid{bit_width}_log
+bid{bit_width}_log10
+bid{bit_width}_log1p
+bid{bit_width}_log2
+bid{bit_width}_logb
+bid{bit_width}_lrint
+bid{bit_width}_lround
+bid{bit_width}_nearbyint
+bid{bit_width}_nextafter
+bid{bit_width}_nexttoward
+bid{bit_width}_sin
+bid{bit_width}_sinh
+bid{bit_width}_tan
+bid{bit_width}_tanh
+bid{bit_width}_tgamma
+
+# Mixed operands
+bid128d_sqrt
+bid128dd_add
+bid128dd_div
+bid128dd_mul
+bid128dd_sub
+bid128ddd_fma
+bid128ddq_fma
+bid128dq_add
+bid128dq_div
+bid128dq_mul
+bid128dq_sub
+bid128dqd_fma
+bid128dqq_fma
+bid128qd_add
+bid128qd_div
+bid128qd_mul
+bid128qd_sub
+bid128qdd_fma
+bid128qdq_fma
+bid128qqd_fma
+
+bid64ddq_fma
+bid64dq_add
+bid64dq_div
+bid64dq_mul
+bid64dq_sub
+bid64dqd_fma
+bid64dqq_fma
+bid64q_sqrt
+bid64qd_add
+bid64qd_div
+bid64qd_mul
+bid64qd_sub
+bid64qdd_fma
+bid64qdq_fma
+bid64qq_add
+bid64qq_div
+bid64qq_mul
+bid64qq_sub
+bid64qqd_fma
+bid64qqq_fma
+
+# IEEE 754 config
+bid_feclearexcept
+bid_fegetexceptflag
+bid_feraiseexcept
+bid_fesetexceptflag
+bid_fetestexcept
+bid_getDecimalRoundingDirection
+bid_is754
+bid_is754R
+bid_lowerFlags
+bid_restoreFlags
+bid_saveFlags
+bid_setDecimalRoundingDirection
+bid_signalException
+bid_testFlags
+bid_testSavedFlags
+"""
diff --git a/Scripts/generate-tests/intel/write_test.py b/Scripts/generate-tests/intel/write_test.py
new file mode 100644
index 0000000..e5b1e10
--- /dev/null
+++ b/Scripts/generate-tests/intel/write_test.py
@@ -0,0 +1,204 @@
+from io import TextIOWrapper
+from dataclasses import dataclass
+from intel.swift_code import get_swift_code
+from intel.parse_readtest_in import InputLine, parse_input
+from intel.parse_readtest_h import parse_c_handler_code
+
+
+@dataclass
+class Test:
+ # Intel name
+ name: str
+ # Lines from 'readtest.in'.
+ inputs: list[InputLine]
+ # Intel code from 'readtest.h'.
+ c_handler_code: list[str]
+
+
+def write_test(f: TextIOWrapper, test: Test):
+ name = test.name
+ swift_code = get_swift_code(name)
+
+ if swift_code is None:
+ return
+
+ handler = parse_c_handler_code(name, test.c_handler_code)
+ operands = handler.operands
+ has_rounding = handler.has_rounding
+ has_status = handler.has_status
+
+ has_ulp = False
+ has_str_prefix = False
+ has_long_int_size = False
+ has_underflow_before_only = False
+
+ f.write(f"\n")
+ f.write(f" func test_{name}() {{\n")
+
+ for input in test.inputs:
+ i = parse_input(name, input, operands)
+
+ f.write(f" self.{name}(")
+ f.write(f'"{i.rounding}"')
+
+ for a in i.args:
+ f.write(f', "{a.value}"')
+
+ f.write(f', "{i.status}"')
+
+ if i.ulp is not None:
+ has_ulp = True
+ f.write(f', ulp: "{i.ulp}"')
+
+ if i.str_prefix is not None:
+ has_str_prefix = True
+ f.write(f', strPrefix: "{i.str_prefix}"')
+
+ if i.long_int_size is not None:
+ has_long_int_size = True
+ f.write(f', longIntSize: "{i.status}"')
+
+ if i.underflow_before_only:
+ has_underflow_before_only = True
+ f.write(f", underflowBeforeOnly: true")
+
+ f.write(")\n")
+
+ f.write(" }\n")
+
+ # ========================
+ # === Helper arguments ===
+ # ========================
+
+ @dataclass
+ class Arg:
+ argument: str
+ binding: str | None
+ is_last: bool = False
+
+ args: list[Arg] = []
+
+ def add_arg(argument: str, binding: str = ""):
+ "binding: name[: Type] = parsing method"
+
+ if binding:
+ split = binding.split("=")
+ name = split[0].strip()
+ parse = split[1].strip()
+ type = ""
+
+ name_split = name.split(":")
+ if len(name_split) == 2:
+ name = name_split[0].strip()
+ type = ": " + name_split[1].strip()
+
+ bind = f"guard let {name}{type} = {parse}(_{name}, file, line) else {{ return }}"
+ args.append(Arg(argument, bind))
+ else:
+ args.append(Arg(argument, None))
+
+ add_arg(
+ "_ _rounding: String", "rounding = self.parseRounding" if has_rounding else ""
+ )
+
+ has_float80 = False
+
+ for i, arg in enumerate(operands):
+ is_first = i == 0
+ is_last = i == len(operands) - 1
+ n = "expected" if is_last else f"arg{i}"
+
+ # In 'bidXX_from_string' argument is OP_DEC64, we want 'String'.
+ if is_first and test.name.endswith("_from_string"):
+ add_arg(f"_ {n}: String")
+
+ # In 'bidXX_to_string' result is OP_DEC64, we want 'String'.
+ elif is_last and test.name.endswith("_to_string"):
+ add_arg(f"_ {n}: String")
+
+ # In 'bid_dpd_to_bidXX' we want 1st arg as Int
+ elif is_first and test.name == "bid_dpd_to_bid32":
+ add_arg(f"_ _{n}: String", f"{n} = self.parseDenselyPackedDecimal32")
+ elif is_first and test.name == "bid_dpd_to_bid64":
+ add_arg(f"_ _{n}: String", f"{n} = self.parseDenselyPackedDecimal64")
+ elif is_first and test.name == "bid_dpd_to_bid128":
+ add_arg(f"_ _{n}: String", f"{n} = self.parseDenselyPackedDecimal128")
+ else:
+ add_arg(f"_ _{n}: String", f"{n} = self.{arg.swift_parsing_function}")
+
+ has_float80 = has_float80 or arg.swift_type == "Float80"
+
+ add_arg(
+ "_ _expectedStatus: String",
+ "expectedStatus = self.parseStatus" if has_status else "",
+ )
+
+ if has_ulp:
+ add_arg(
+ f"ulp _ulp: String? = nil",
+ f"ulp = self.parseUlp",
+ )
+
+ if has_str_prefix:
+ add_arg(
+ "strPrefix _strPrefix: String? = nil", "strPrefix = self.parseStrPrefix"
+ )
+
+ if has_long_int_size:
+ add_arg(
+ "longIntSize _longIntSize: String? = nil",
+ "longIntSize = self.parseLongIntSize",
+ )
+
+ if has_underflow_before_only:
+ add_arg("underflowBeforeOnly: Bool = false")
+
+ add_arg("file: StaticString = #file")
+ add_arg("line: UInt = #line")
+ args[-1].is_last = True
+
+ # =========================
+ # === Helper definition ===
+ # =========================
+
+ f.write(f"\n")
+ f.write(f" private func {name}(\n")
+
+ for a in args:
+ f.write(" ")
+ f.write(a.argument)
+ f.write("" if a.is_last else ",")
+ f.write("\n")
+
+ f.write(" ) {\n")
+
+ if has_float80:
+ f.write("#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)\n\n")
+
+ for a in args:
+ if a.binding is not None:
+ f.write(" ")
+ f.write(a.binding)
+ f.write("\n")
+
+ f.write("\n")
+
+ if has_status:
+ f.write(f" var status = DecimalStatus()\n")
+
+ compare = handler.compare
+ swift_compare = "." + compare.swift_enum_value
+ swift_code = swift_code.replace("{compare_enum_value}", swift_compare).rstrip()
+
+ f.write(swift_code)
+ f.write("\n")
+
+ if has_status:
+ f.write(
+ f" self.assertStatus(status, expectedStatus, .{compare.swift_enum_value}, file, line)\n"
+ )
+
+ if has_float80:
+ f.write("\n#endif\n")
+
+ f.write(" }\n")
diff --git a/Scripts/generate-tests/speleotrove_dectest/__init__.py b/Scripts/generate-tests/speleotrove_dectest/__init__.py
new file mode 100644
index 0000000..96bea8a
--- /dev/null
+++ b/Scripts/generate-tests/speleotrove_dectest/__init__.py
@@ -0,0 +1,81 @@
+import os
+from speleotrove_dectest.fix_tests import fix_invalid_tests
+from speleotrove_dectest.swift_code import get_swift_code
+from speleotrove_dectest.write_test import SwiftLine, write_test
+from speleotrove_dectest.parse_file import (
+ SpeleotroveLine,
+ parse_container_file,
+ parse_file,
+)
+
+# File used to check if Speleotrove files are present.
+MARKER_FILE = "decDouble.decTest"
+
+_CONTAINER_FILES = (
+ "decSingle.decTest",
+ "decDouble.decTest",
+ "decQuad.decTest",
+)
+
+_IGNORED_FILES = (
+ # We do not have toSci/toEng operations
+ "dsBase.decTest",
+ "ddBase.decTest",
+ "dqBase.decTest",
+ # Bit twiddling
+ "ddAnd.decTest",
+ "dqAnd.decTest",
+ "ddInvert.decTest",
+ "dqInvert.decTest",
+ "ddOr.decTest",
+ "dqOr.decTest",
+ "ddXor.decTest",
+ "dqXor.decTest",
+ "ddShift.decTest",
+ "dqShift.decTest",
+ "ddRotate.decTest",
+ "dqRotate.decTest",
+)
+
+
+def generate(speleotrove_dir: str, output_dir: str):
+ all_lines: list[SpeleotroveLine] = []
+
+ for container_name in _CONTAINER_FILES:
+ container_path = os.path.join(speleotrove_dir, container_name)
+
+ for file_name in parse_container_file(container_path):
+ file_name = file_name + ".decTest"
+
+ if file_name not in _IGNORED_FILES:
+ file_path = os.path.join(speleotrove_dir, file_name)
+ lines = parse_file(file_path)
+
+ fix_invalid_tests(file_name, lines)
+ all_lines.extend(lines)
+
+ class_name_to_lines = _group_by_file(all_lines)
+
+ for class_name, lines in class_name_to_lines.items():
+ write_test(output_dir, class_name, lines)
+
+
+def _group_by_file(lines: list[SpeleotroveLine]) -> dict[str, list[SwiftLine]]:
+ class_name_to_lines: dict[str, list[SwiftLine]] = dict()
+
+ for speleotrove_line in lines:
+ operation = speleotrove_line.operation
+
+ swift = get_swift_code(operation)
+ class_name = swift.class_name
+
+ class_lines = class_name_to_lines.get(class_name)
+
+ if class_lines is None:
+ class_lines = []
+ class_name_to_lines[class_name] = class_lines
+
+ line = SwiftLine(speleotrove_line, swift)
+ class_lines.append(line)
+
+ return class_name_to_lines
diff --git a/Scripts/generate-tests/speleotrove_dectest/fix_tests.py b/Scripts/generate-tests/speleotrove_dectest/fix_tests.py
new file mode 100644
index 0000000..302af9a
--- /dev/null
+++ b/Scripts/generate-tests/speleotrove_dectest/fix_tests.py
@@ -0,0 +1,53 @@
+from speleotrove_dectest.parse_file import SpeleotroveLine
+
+_ALL_TEST_IDS: set[str] = set()
+
+
+def fix_invalid_tests(file_name: str, lines: list[SpeleotroveLine]):
+ for l in lines:
+ # ================
+ # === Operands ===
+ # ================
+
+ # 'dqRemainderNear' contains a 'remainder' test which should be 'remaindernear'.
+ # This is probably a copy paste from 'remainder', as the same test is
+ # also present there.
+ if file_name == "dqRemainderNear.decTest":
+ if l.id == "dqrmn1070" and l.operation == "remainder":
+ l.operation = "remaindernear"
+ l.result = "-7291E-6176"
+
+ # ==========
+ # === Id ===
+ # ==========
+
+ # Correct dem identifiers.
+ # Not a part of the 'official' module.
+ # It may confuse us when we start to look for non-existing test.
+ # The 'dqrmn1070' from above is the main thingie.
+
+ # if file_name == "dqPlus.decTest":
+ # if l.id.startswith("ddqls"):
+ # l.id = l.id.replace("ddqls", "dqpls")
+ # elif file_name == "ddFMA.decTest":
+ # if l.id.startswith("fma"):
+ # l.id = "dd" + l.id
+
+ # elif file_name == "ddCanonical.decTest":
+ # if l.id == "decan011":
+ # l.id = "ddcan011"
+
+ # if file_name.endswith("Canonical.decTest") or file_name.endswith(
+ # "Encode.decTest"
+ # ):
+ # pass
+ # elif file_name.startswith("dd"):
+ # assert l.id.startswith("dd"), f"{file_name} -> {l.id}"
+ # elif file_name.startswith("dq"):
+ # assert l.id.startswith("dq"), f"{file_name} -> {l.id}"
+ # else:
+ # assert False, file_name
+
+ # for l in lines:
+ # assert l.id not in _ALL_TEST_IDS, "Duplicate: " + l.id
+ # _ALL_TEST_IDS.add(l.id)
diff --git a/Scripts/generate-tests/speleotrove_dectest/parse_file.py b/Scripts/generate-tests/speleotrove_dectest/parse_file.py
new file mode 100644
index 0000000..ca10846
--- /dev/null
+++ b/Scripts/generate-tests/speleotrove_dectest/parse_file.py
@@ -0,0 +1,296 @@
+from dataclasses import dataclass
+
+
+_INVALID_PRECISION = -1
+_INVALID_ROUNDING = ""
+_INVALID_MAX_EXPONENT = -1
+_INVALID_MIN_EXPONENT = -1
+
+SPELEOTROVE_ROUNDING_CEILING = "ceiling"
+SPELEOTROVE_ROUNDING_DOWN = "down"
+SPELEOTROVE_ROUNDING_FLOOR = "floor"
+SPELEOTROVE_ROUNDING_HALF_DOWN = "half_down"
+SPELEOTROVE_ROUNDING_HALF_EVEN = "half_even"
+SPELEOTROVE_ROUNDING_HALF_UP = "half_up"
+SPELEOTROVE_ROUNDING_UP = "up"
+SPELEOTROVE_ROUNDING_05UP = "05up"
+
+
+@dataclass
+class SpeleotroveConfig:
+ precision: int = _INVALID_PRECISION
+ rounding: str = _INVALID_ROUNDING
+ max_exponent: int = _INVALID_MAX_EXPONENT
+ min_exponent: int = _INVALID_MIN_EXPONENT
+ version: str = ""
+ extended: bool = False
+ clamp: bool = False
+
+ @property
+ def is_valid(self) -> bool:
+ return (
+ self.precision != _INVALID_PRECISION
+ and self.rounding != _INVALID_ROUNDING
+ and self.max_exponent != _INVALID_MAX_EXPONENT
+ and self.min_exponent != _INVALID_MIN_EXPONENT
+ )
+
+ def copy(self) -> "SpeleotroveConfig":
+ return SpeleotroveConfig(
+ precision=self.precision,
+ rounding=self.rounding,
+ max_exponent=self.max_exponent,
+ min_exponent=self.min_exponent,
+ version=self.version,
+ extended=self.extended,
+ clamp=self.clamp,
+ )
+
+
+@dataclass
+class SpeleotroveConditions:
+ clamped: bool = False
+ conversion_syntax: bool = False
+ division_by_zero: bool = False
+ division_impossible: bool = False
+ division_undefined: bool = False
+ inexact: bool = False
+ insufficient_storage: bool = False
+ invalid_context: bool = False
+ invalid_operation: bool = False
+ lost_digits: bool = False
+ overflow: bool = False
+ rounded: bool = False
+ subnormal: bool = False
+ underflow: bool = False
+
+ @property
+ def is_ieee_invalid_operation(self) -> bool:
+ return (
+ self.conversion_syntax
+ or self.division_impossible
+ or self.division_undefined
+ or self.insufficient_storage
+ or self.invalid_context
+ or self.invalid_operation
+ )
+
+ @property
+ def is_ieee_division_by_zero(self) -> bool:
+ return self.division_by_zero
+
+ @property
+ def is_ieee_overflow(self) -> bool:
+ return self.overflow
+
+ @property
+ def is_ieee_underflow(self) -> bool:
+ return self.underflow
+
+ @property
+ def is_ieee_inexact(self) -> bool:
+ return self.inexact
+
+
+@dataclass
+class SpeleotroveLine:
+ id: str
+ operation: str
+ arg0: str
+ arg1: str | None
+ arg2: str | None
+ result: str
+ config: SpeleotroveConfig
+ conditions: SpeleotroveConditions
+
+
+class _LineParser:
+ def __init__(self, line: str) -> None:
+ self.line = line
+ self.line_len = len(line)
+ self.index = 0
+
+ @property
+ def peek(self) -> str:
+ return self.line[self.index]
+
+ @property
+ def is_end(self) -> bool:
+ return self.index == self.line_len
+
+ def advance(self) -> str:
+ end_index = self.line.find(" ", self.index)
+ end_index = self.line_len if end_index == -1 else end_index
+ value = self.line[self.index : end_index]
+ self.index = end_index
+ return value.strip()
+
+ def consume_whitespaces(self):
+ while self.index != self.line_len and self.line[self.index].isspace():
+ self.index += 1
+
+
+def parse_file(path: str) -> list[SpeleotroveLine]:
+ config = SpeleotroveConfig()
+ result: list[SpeleotroveLine] = []
+
+ with open(path, "r") as f:
+ for line in f:
+ line = line.strip()
+
+ if not line or line.startswith("--"):
+ continue
+
+ p = _LineParser(line)
+ first = p.advance()
+
+ if first.endswith(":"):
+ config = config.copy()
+
+ directive = first.replace(":", "").lower()
+ p.consume_whitespaces()
+ value = p.advance()
+
+ if directive == "precision":
+ config.precision = int(value)
+ elif directive == "rounding":
+ if value == "ceiling":
+ config.rounding = SPELEOTROVE_ROUNDING_CEILING
+ elif value == "down":
+ config.rounding = SPELEOTROVE_ROUNDING_DOWN
+ elif value == "floor":
+ config.rounding = SPELEOTROVE_ROUNDING_FLOOR
+ elif value == "half_down":
+ config.rounding = SPELEOTROVE_ROUNDING_HALF_DOWN
+ elif value == "half_even":
+ config.rounding = SPELEOTROVE_ROUNDING_HALF_EVEN
+ elif value == "half_up":
+ config.rounding = SPELEOTROVE_ROUNDING_HALF_UP
+ elif value == "up":
+ config.rounding = SPELEOTROVE_ROUNDING_UP
+ elif value == "05up":
+ config.rounding = SPELEOTROVE_ROUNDING_05UP
+ else:
+ assert False, "Unknown rounding: " + value
+ elif directive == "maxexponent":
+ config.max_exponent = int(value)
+ elif directive == "minexponent":
+ config.min_exponent = int(value)
+ elif directive == "version":
+ config.version = value
+ elif directive == "extended":
+ config.extended = value == "1"
+ elif directive == "clamp":
+ config.clamp = value == "1"
+ else:
+ assert False, "Invalid directive: " + directive
+
+ assert p.is_end, line
+ continue
+
+ assert "->" in line, "Not test: " + line
+
+ id = first
+
+ p.consume_whitespaces()
+ operation = p.advance()
+
+ p.consume_whitespaces()
+ arg0 = p.advance()
+
+ arg1: str | None = None
+ arg2: str | None = None
+
+ p.consume_whitespaces()
+ tmp = p.advance()
+
+ if tmp != "->":
+ arg1 = tmp
+
+ p.consume_whitespaces()
+ tmp = p.advance()
+
+ if tmp != "->":
+ arg2 = tmp
+
+ p.consume_whitespaces()
+ tmp = p.advance()
+
+ assert tmp == "->", "More than 3 args? " + line
+
+ # We are after '->'
+ p.consume_whitespaces()
+ expected = p.advance()
+
+ conditions = SpeleotroveConditions()
+
+ while not p.is_end:
+ p.consume_whitespaces()
+ c = p.advance().lower()
+
+ if c == "clamped":
+ conditions.clamped = True
+ elif c == "conversion_syntax":
+ conditions.conversion_syntax = True
+ elif c == "division_by_zero":
+ conditions.division_by_zero = True
+ elif c == "division_impossible":
+ conditions.division_impossible = True
+ elif c == "division_undefined":
+ conditions.division_undefined = True
+ elif c == "inexact":
+ conditions.inexact = True
+ elif c == "insufficient_storage":
+ conditions.insufficient_storage = True
+ elif c == "invalid_context":
+ conditions.invalid_context = True
+ elif c == "invalid_operation":
+ conditions.invalid_operation = True
+ elif c == "lost_digits":
+ conditions.lost_digits = True
+ elif c == "overflow":
+ conditions.overflow = True
+ elif c == "rounded":
+ conditions.rounded = True
+ elif c == "subnormal":
+ conditions.subnormal = True
+ elif c == "underflow":
+ conditions.underflow = True
+ elif c == "--":
+ # Comment to the end of the line
+ break
+ else:
+ assert False, f"Unknown condition: '{c}' in {line}"
+
+ assert config.is_valid, str(config)
+ t = SpeleotroveLine(
+ id, operation, arg0, arg1, arg2, expected, config, conditions
+ )
+ result.append(t)
+
+ return result
+
+
+def parse_container_file(path: str) -> list[str]:
+ result: list[str] = []
+
+ with open(path, "r") as f:
+ for line in f:
+ line = line.strip()
+
+ if not line or line.startswith("--"):
+ continue
+
+ p = _LineParser(line)
+ first = p.advance()
+
+ if first == "version:":
+ continue
+
+ assert first == "dectest:", first
+
+ p.consume_whitespaces()
+ file_name = p.advance()
+ result.append(file_name)
+
+ return result
diff --git a/Scripts/generate-tests/speleotrove_dectest/swift_code.py b/Scripts/generate-tests/speleotrove_dectest/swift_code.py
new file mode 100644
index 0000000..2ae3eeb
--- /dev/null
+++ b/Scripts/generate-tests/speleotrove_dectest/swift_code.py
@@ -0,0 +1,605 @@
+from dataclasses import dataclass
+
+
+@dataclass
+class Swift:
+ speleotrove_operation: str
+ class_name: str
+ has_status: bool
+ arg0_type: str
+ arg1_type: str | None
+ arg2_type: str | None
+ result_type: str
+ code: str
+
+
+ARG_TYPE_INT = "ARG_TYPE_INT"
+ARG_TYPE_BOOL = "ARG_TYPE_BOOL"
+ARG_TYPE_STRING = "ARG_TYPE_STRING"
+ARG_TYPE_TESTED_DECIMAL = "_ARG_TYPE_TESTED_DECIMAL"
+ARG_TYPE_FLOATING_POINT_CLASS = "_ARG_TYPE_FLOATING_POINT_CLASS"
+
+_CLASS_NAME_ADD = "SpeleotroveAddTests"
+_CLASS_NAME_COMPARE = "SpeleotroveCompareTests"
+_CLASS_NAME_DIV = "SpeleotroveDivTests"
+_CLASS_NAME_FMA = "SpeleotroveFusedMultiplyAddTests"
+_CLASS_NAME_INIT_FROM_STRING = "SpeleotroveInitFromStringTests"
+_CLASS_NAME_LOG_SCALE = "SpeleotroveLogScaleTests"
+_CLASS_NAME_MIN_MAX = "SpeleotroveMinMaxTests"
+_CLASS_NAME_MUL = "SpeleotroveMulTests"
+_CLASS_NAME_NEXT = "SpeleotroveNextTests"
+_CLASS_NAME_OTHER = "SpeleotroveOtherTests"
+_CLASS_NAME_PROPERTY = "SpeleotrovePropertyTests"
+_CLASS_NAME_QUANTUM = "SpeleotroveQuantumTests"
+_CLASS_NAME_REM = "SpeleotroveRemTests"
+_CLASS_NAME_ROUND = "SpeleotroveRoundTests"
+_CLASS_NAME_SUB = "SpeleotroveSubTests"
+_CLASS_NAME_TOTAL_ORDER = "SpeleotroveTotalOrderTests"
+_CLASS_NAME_UNARY = "SpeleotroveUnaryTests"
+
+
+_OPERATION_LOWER_TO_SWIFT_CODE: dict[str, Swift] = {}
+
+
+def get_swift_code(operation: str) -> Swift:
+ if not _OPERATION_LOWER_TO_SWIFT_CODE:
+ for s in _SWIFT:
+ op = s.speleotrove_operation.lower()
+ assert op not in _OPERATION_LOWER_TO_SWIFT_CODE, (
+ "Duplicate operation: " + op
+ )
+ _OPERATION_LOWER_TO_SWIFT_CODE[op] = s
+
+ op = operation.lower()
+ result = _OPERATION_LOWER_TO_SWIFT_CODE.get(op)
+ assert result is not None, "No swift code for: " + op
+ return result
+
+
+_SWIFT: list[Swift] = [
+ # ==================
+ # === Properties ===
+ # ==================
+ Swift(
+ "abs",
+ class_name=_CLASS_NAME_PROPERTY,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0.magnitude
+ let speleotroveResult = self.toSpeleotrove_magnitude(arg0, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+""",
+ ),
+ Swift(
+ "class",
+ class_name=_CLASS_NAME_PROPERTY,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_FLOATING_POINT_CLASS,
+ code="""
+ let result = arg0.floatingPointClass
+ XCTAssertEqual(result, expected, file: file, line: line)
+""",
+ ),
+ # ==============
+ # === String ===
+ # ==============
+ Swift(
+ "apply",
+ class_name=_CLASS_NAME_INIT_FROM_STRING,
+ has_status=True,
+ arg0_type=ARG_TYPE_STRING,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ if let result: {decimal_name} = self.parseDecimal(arg0, rounding: rounding, status: &status, file, line) {
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ } else {
+ XCTFail(arg0)
+ }
+""",
+ ),
+ # =============
+ # === Unary ===
+ # =============
+ Swift(
+ "plus",
+ class_name=_CLASS_NAME_UNARY,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = +arg0
+ let speleotroveResult = self.toSpeleotrove_unaryPlus(arg0, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+""",
+ ),
+ Swift(
+ "minus",
+ class_name=_CLASS_NAME_UNARY,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = -arg0
+ let speleotroveResult = self.toSpeleotrove_unaryMinus(arg0, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+""",
+ ),
+ # ============
+ # === Math ===
+ # ============
+ Swift(
+ "add",
+ class_name=_CLASS_NAME_ADD,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0.adding(arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_add(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "subtract",
+ class_name=_CLASS_NAME_SUB,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0.subtracting(arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_sub(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "multiply",
+ class_name=_CLASS_NAME_MUL,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0.multiplied(by: arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_mul(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "divide",
+ class_name=_CLASS_NAME_DIV,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0.divided(by: arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_div(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "divideint",
+ class_name=_CLASS_NAME_DIV,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = self.divideInt(arg0, by: arg1, rounding: rounding)
+ self.assertEqualByEqualEqual(result, expected, file, line)
+""",
+ ),
+ Swift(
+ "remaindernear",
+ class_name=_CLASS_NAME_REM,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0.remainder(dividingBy: arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_rem(arg0, arg1, result: result, status: &status)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "remainder",
+ class_name=_CLASS_NAME_REM,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0.truncatingRemainder(dividingBy: arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_rem(arg0, arg1, result: result, status: &status)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+
+ let result2 = self.truncatingRemainderFromReminder(arg0, dividingBy: arg1)
+ self.assertEqual(result2, expected, file, line)
+""",
+ ),
+ Swift(
+ "fma",
+ class_name=_CLASS_NAME_FMA,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=ARG_TYPE_TESTED_DECIMAL,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg2.addingProduct(arg0, arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_fma(arg0, arg1, arg2, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ # ===============
+ # === Compare ===
+ # ===============
+ Swift(
+ "compare",
+ class_name=_CLASS_NAME_COMPARE,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_STRING,
+ code="""
+ self.assertCompare(
+ arg0,
+ arg1,
+ status: &status,
+ expected: expected,
+ expectedStatus: expectedStatus,
+ file,
+ line
+ )
+""",
+ ),
+ Swift(
+ "comparesig",
+ class_name=_CLASS_NAME_COMPARE,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_STRING,
+ code="""
+ self.assertCompareSignaling(
+ arg0,
+ arg1,
+ status: &status,
+ expected: expected,
+ expectedStatus: expectedStatus,
+ file,
+ line
+ )
+""",
+ ),
+ # ===================
+ # === Total order ===
+ # ===================
+ Swift(
+ "comparetotal",
+ class_name=_CLASS_NAME_TOTAL_ORDER,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_INT,
+ code="""
+ let result = self.totalOrder(arg0, arg1)
+ self.assertInt(result, expected, file, line)
+""",
+ ),
+ Swift(
+ "comparetotmag",
+ class_name=_CLASS_NAME_TOTAL_ORDER,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_INT,
+ code="""
+ let result = self.totalOrderMagnitude(arg0, arg1)
+ self.assertInt(result, expected, file, line)
+""",
+ ),
+ # ===============
+ # === Min/max ===
+ # ===============
+ Swift(
+ "min",
+ class_name=_CLASS_NAME_MIN_MAX,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = {decimal_name}.minimum(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_min(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "minmag",
+ class_name=_CLASS_NAME_MIN_MAX,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = {decimal_name}.minimumMagnitude(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_min(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "max",
+ class_name=_CLASS_NAME_MIN_MAX,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = {decimal_name}.maximum(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_max(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "maxmag",
+ class_name=_CLASS_NAME_MIN_MAX,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = {decimal_name}.maximumMagnitude(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_max(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ # ============
+ # === Next ===
+ # ============
+ Swift(
+ "nextplus",
+ class_name=_CLASS_NAME_NEXT,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0.nextUp(status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "nextminus",
+ class_name=_CLASS_NAME_NEXT,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0.nextDown(status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "nexttoward",
+ class_name=_CLASS_NAME_NEXT,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = self.nextToward(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ # ===============
+ # === Quantum ===
+ # ===============
+ Swift(
+ "quantize",
+ class_name=_CLASS_NAME_QUANTUM,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0.quantized(to: arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_quantize(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "samequantum",
+ class_name=_CLASS_NAME_QUANTUM,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_BOOL,
+ code="""
+ let result = arg0.sameQuantum(as: arg1)
+ self.assertBool(result, expected, file, line)
+""",
+ ),
+ # ====================
+ # === LogB, scaleB ===
+ # ====================
+ Swift(
+ "logb",
+ class_name=_CLASS_NAME_LOG_SCALE,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = self.logB(arg0, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ Swift(
+ "scaleb",
+ class_name=_CLASS_NAME_LOG_SCALE,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = self.scaleB(arg0, arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ # =============
+ # === Round ===
+ # =============
+ Swift(
+ "tointegralx",
+ class_name=_CLASS_NAME_ROUND,
+ has_status=True,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0.rounded(rounding, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+""",
+ ),
+ # =============
+ # === Other ===
+ # =============
+ Swift(
+ "copy",
+ class_name=_CLASS_NAME_OTHER,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = arg0
+ self.assertEqual(result, expected, file, line)
+""",
+ ),
+ Swift(
+ "copysign",
+ class_name=_CLASS_NAME_OTHER,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=ARG_TYPE_TESTED_DECIMAL,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = {decimal_name}(signOf: arg1, magnitudeOf: arg0)
+ self.assertEqual(result, expected, file, line)
+""",
+ ),
+ Swift(
+ "copyabs",
+ class_name=_CLASS_NAME_OTHER,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = self.copyAbs(arg0)
+ self.assertEqual(result, expected, file, line)
+""",
+ ),
+ Swift(
+ "copynegate",
+ class_name=_CLASS_NAME_OTHER,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = self.copyNegate(arg0)
+ self.assertEqual(result, expected, file, line)
+""",
+ ),
+ Swift(
+ "reduce",
+ class_name=_CLASS_NAME_OTHER,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = self.reduce(arg0, expected: expected)
+ self.assertEqual(result, expected, file, line)
+""",
+ ),
+ Swift(
+ "canonical",
+ class_name=_CLASS_NAME_OTHER,
+ has_status=False,
+ arg0_type=ARG_TYPE_TESTED_DECIMAL,
+ arg1_type=None,
+ arg2_type=None,
+ result_type=ARG_TYPE_TESTED_DECIMAL,
+ code="""
+ let result = self.canonical(arg0)
+ self.assertEqual(result, expected, file, line)
+""",
+ ),
+]
diff --git a/Scripts/generate-tests/speleotrove_dectest/write_test.py b/Scripts/generate-tests/speleotrove_dectest/write_test.py
new file mode 100644
index 0000000..4863d2b
--- /dev/null
+++ b/Scripts/generate-tests/speleotrove_dectest/write_test.py
@@ -0,0 +1,514 @@
+import os
+from io import TextIOWrapper
+from dataclasses import dataclass
+from common import GENERATED_FILE_HEADER
+from speleotrove_dectest.swift_code import (
+ Swift,
+ get_swift_code,
+ ARG_TYPE_INT,
+ ARG_TYPE_BOOL,
+ ARG_TYPE_STRING,
+ ARG_TYPE_TESTED_DECIMAL,
+ ARG_TYPE_FLOATING_POINT_CLASS,
+)
+from speleotrove_dectest.parse_file import (
+ SpeleotroveLine,
+ SpeleotroveConfig,
+ SPELEOTROVE_ROUNDING_CEILING,
+ SPELEOTROVE_ROUNDING_DOWN,
+ SPELEOTROVE_ROUNDING_FLOOR,
+ SPELEOTROVE_ROUNDING_HALF_EVEN,
+ SPELEOTROVE_ROUNDING_HALF_UP,
+)
+
+
+@dataclass
+class SwiftLine(SpeleotroveLine):
+ swift: Swift
+
+ def __init__(self, line: SpeleotroveLine, swift: Swift):
+ super().__init__(
+ id=line.id,
+ operation=line.operation,
+ arg0=line.arg0,
+ arg1=line.arg1,
+ arg2=line.arg2,
+ result=line.result,
+ config=line.config,
+ conditions=line.conditions,
+ )
+ self.swift = swift
+
+
+@dataclass
+class _Decimal:
+ name: str
+ bit_width: int
+ precision: int
+ min_exponent: int
+ max_exponent: int
+
+ def is_equal(self, config: SpeleotroveConfig) -> bool:
+ "Is this decimal type is equal to config from file?"
+ return (
+ self.precision == config.precision
+ and self.min_exponent == config.min_exponent
+ and self.max_exponent == config.max_exponent
+ )
+
+
+_DECIMAL32 = _Decimal(
+ "Decimal32",
+ bit_width=32,
+ precision=7,
+ min_exponent=-95,
+ max_exponent=96,
+)
+_DECIMAL64 = _Decimal(
+ "Decimal64",
+ bit_width=64,
+ precision=16,
+ min_exponent=-383,
+ max_exponent=384,
+)
+_DECIMAL128 = _Decimal(
+ "Decimal128",
+ bit_width=128,
+ precision=34,
+ min_exponent=-6143,
+ max_exponent=6144,
+)
+
+
+@dataclass
+class _DecimalGroup:
+ "All tests for a given decimal"
+ decimal: _Decimal
+ lines: list[SwiftLine]
+
+
+@dataclass
+class _OperationGroup:
+ "All tests for a given operation grouped by decimal type"
+ name: str
+ decimal32: _DecimalGroup
+ decimal64: _DecimalGroup
+ decimal128: _DecimalGroup
+
+
+def write_test(output_dir: str, class_name: str, lines: list[SwiftLine]):
+ file_name = class_name + ".swift"
+ path = os.path.join(output_dir, file_name)
+
+ operations = _group_by_operation(lines)
+ operations.sort(key=lambda o: o.name)
+
+ with open(path, "w") as f:
+ f.write(GENERATED_FILE_HEADER)
+ f.write("\n")
+ f.write("import XCTest\n")
+ f.write("@testable import Decimal\n")
+ f.write("\n")
+ f.write(f"class {class_name}: XCTestCase, SpeleotroveMixin {{\n")
+
+ for o in operations:
+ if len(operations) != 1:
+ f.write("\n")
+ f.write(" // MARK: - ")
+ f.write(o.name.title())
+ f.write("\n")
+
+ _write_test(f, o, o.decimal32)
+ _write_test(f, o, o.decimal64)
+ _write_test(f, o, o.decimal128)
+
+ f.write("}\n")
+
+
+def _group_by_operation(lines: list[SwiftLine]) -> list[_OperationGroup]:
+ operation_lower_to_lines: dict[str, list[SwiftLine]] = dict()
+
+ for l in lines:
+ op = l.operation.lower()
+ op_lines = operation_lower_to_lines.get(op)
+
+ if op_lines is None:
+ op_lines = []
+ operation_lower_to_lines[op] = op_lines
+
+ op_lines.append(l)
+
+ result: list[_OperationGroup] = []
+
+ for op_lower, lines in operation_lower_to_lines.items():
+ g = _OperationGroup(
+ op_lower,
+ decimal32=_DecimalGroup(_DECIMAL32, []),
+ decimal64=_DecimalGroup(_DECIMAL64, []),
+ decimal128=_DecimalGroup(_DECIMAL128, []),
+ )
+
+ for l in lines:
+ if _DECIMAL32.is_equal(l.config):
+ g.decimal32.lines.append(l)
+ elif _DECIMAL64.is_equal(l.config):
+ g.decimal64.lines.append(l)
+ elif _DECIMAL128.is_equal(l.config):
+ g.decimal128.lines.append(l)
+ else:
+ assert False, "Config not assigned to decimal: " + str(l.config)
+
+ result.append(g)
+
+ return result
+
+
+# https://speleotrove.com/decimal/damodel.html
+_SPELEOTROVE_ROUNDING_TO_SWIFT_ROUNDING: dict[str, str] = {
+ # (Round toward 0; truncate.) The discarded digits are ignored;
+ # the result is unchanged.
+ SPELEOTROVE_ROUNDING_DOWN: "towardZero",
+ # (Round toward +¥.) If all of the discarded digits are zero or if the sign
+ # is 1 the result is unchanged. Otherwise, the result coefficient should be
+ # incremented by 1 (rounded up).
+ SPELEOTROVE_ROUNDING_CEILING: "up",
+ # (Round toward –¥.) If all of the discarded digits are zero or if the sign
+ # is 0 the result is unchanged. Otherwise, the sign is 1 and the result
+ # coefficient should be incremented by 1.
+ SPELEOTROVE_ROUNDING_FLOOR: "down",
+ # If the discarded digits represent greater than half (0.5) the value of a
+ # one in the next left position then the result coefficient should be
+ # incremented by 1 (rounded up). If they represent less than half, then the
+ # result coefficient is not adjusted (that is, the discarded digits are ignored).
+ #
+ # Otherwise (they represent exactly half) the result coefficient is unaltered
+ # if its rightmost digit is even, or incremented by 1 (rounded up) if its
+ # rightmost digit is odd (to make an even digit).
+ SPELEOTROVE_ROUNDING_HALF_EVEN: "toNearestOrEven",
+ # If the discarded digits represent greater than or equal to half (0.5) of
+ # the value of a one in the next left position then the result coefficient
+ # should be incremented by 1 (rounded up).
+ # Otherwise the discarded digits are ignored.
+ SPELEOTROVE_ROUNDING_HALF_UP: "toNearestOrAwayFromZero",
+ # --------------------
+ # (Round away from 0.) If all of the discarded digits are zero the result is
+ # unchanged.
+ # Otherwise, the result coefficient should be incremented by 1 (rounded up).
+ # SPELEOTROVE_ROUNDING_UP: "",
+ # --------------------
+ # If the discarded digits represent greater than half (0.5) of the value of
+ # a one in the next left position then the result coefficient should be
+ # incremented by 1 (rounded up). Otherwise (the discarded digits are 0.5 or
+ # less) the discarded digits are ignored.
+ # SPELEOTROVE_ROUNDING_HALF_DOWN: "",
+ # --------------------
+ # (Round zero or five away from 0.) The same as round-up, except that rounding
+ # up only occurs if the digit to be rounded up is 0 or 5, and after overflow
+ # the result is the same as for round-down.[10]
+ # SPELEOTROVE_ROUNDING_05UP: "",
+}
+
+
+_ARG_INDEX_EXPECTED = -1
+
+
+@dataclass
+class _ArgType:
+ def write_call_arg(self, f: TextIOWrapper, arg: str):
+ assert False, "ArgType.write_call_arg should be overriden."
+
+ def write_helper_arg(self, f: TextIOWrapper, index: int):
+ assert False, "ArgType.write_helper_arg should be overriden."
+
+ def write_helper_parse(self, f: TextIOWrapper, index: int):
+ assert False, "ArgType.write_helper_parse should be overriden."
+
+ def _helper_arg_name(self, index: int) -> str:
+ return "expected" if index == _ARG_INDEX_EXPECTED else f"arg{index}"
+
+
+def _write_test(f: TextIOWrapper, operation: _OperationGroup, group: _DecimalGroup):
+ decimal = group.decimal
+ lines: list[SwiftLine] = []
+ swift: Swift | None = None
+
+ for l in group.lines:
+ # We do not support references.
+ if l.arg0 == "#" or l.arg1 == "#" or l.arg2 == "#":
+ continue
+
+ if l.config.rounding not in _SPELEOTROVE_ROUNDING_TO_SWIFT_ROUNDING:
+ continue
+
+ if swift is None:
+ swift = l.swift
+ else:
+ assert id(swift) == id(l.swift)
+
+ lines.append(l)
+
+ if not lines:
+ if group.lines:
+ f.write(f"\n")
+ f.write(
+ f" // There are some lines for {decimal.name}, but none of them is supported.\n"
+ )
+
+ return
+
+ assert swift is not None
+
+ lines.sort(key=lambda l: l.id)
+ fn_name = operation.name + str(decimal.bit_width)
+
+ # =================
+ # === Arg types ===
+ # =================
+
+ arg0_type = _get_arg_type(swift.arg0_type, decimal)
+ arg1_type = _get_arg_type_optional(swift.arg1_type, decimal)
+ arg2_type = _get_arg_type_optional(swift.arg2_type, decimal)
+ result_type = _get_arg_type(swift.result_type, decimal)
+
+ # ============
+ # === Test ===
+ # ============
+
+ f.write(f"\n")
+ f.write(f" func test_{operation.name}{decimal.bit_width}() {{\n")
+
+ for l in lines:
+ f.write(f" /* {l.id} */ self.{fn_name}(")
+
+ arg0_type.write_call_arg(f, l.arg0)
+
+ if arg1_type is None:
+ assert l.arg1 is None, f"Unexpected arg1: {l.operation} -> {l.id}"
+ else:
+ assert l.arg1 is not None, f"Missing arg1: {l.operation} -> {l.id}"
+ f.write(", ")
+ arg1_type.write_call_arg(f, l.arg1)
+
+ if arg2_type is None:
+ assert l.arg2 is None, f"Unexpected arg2: {l.operation} -> {l.id}"
+ else:
+ assert l.arg2 is not None, f"Missing arg2: {l.operation} -> {l.id}"
+ f.write(", ")
+ arg2_type.write_call_arg(f, l.arg2)
+
+ f.write(", ")
+ result_type.write_call_arg(f, l.result)
+
+ f.write(", .")
+ rounding = _SPELEOTROVE_ROUNDING_TO_SWIFT_ROUNDING[l.config.rounding]
+ f.write(rounding)
+
+ status: list[str] = []
+
+ if l.conditions.is_ieee_invalid_operation:
+ status.append(".isInvalidOperation")
+ if l.conditions.is_ieee_inexact:
+ status.append(".isInexact")
+ if l.conditions.is_ieee_overflow:
+ status.append(".isOverflow")
+ if l.conditions.is_ieee_underflow:
+ status.append(".isUnderflow")
+ if l.conditions.is_ieee_division_by_zero:
+ status.append(".isDivisionByZero")
+
+ if status:
+ f.write(", ")
+ f.write(" | ".join(status))
+
+ f.write(")\n")
+
+ f.write(" }\n")
+
+ # ==============
+ # === Helper ===
+ # ==============
+
+ swift_code = get_swift_code(operation.name)
+ arg_types = [arg0_type]
+
+ if arg1_type is not None:
+ arg_types.append(arg1_type)
+
+ if arg2_type is not None:
+ arg_types.append(arg2_type)
+
+ f.write("\n")
+ f.write(f" private func {fn_name}(\n")
+
+ for i, a in enumerate(arg_types):
+ a.write_helper_arg(f, i)
+
+ result_type.write_helper_arg(f, _ARG_INDEX_EXPECTED)
+
+ f.write(" _ rounding: DecimalFloatingPointRoundingRule,\n")
+ f.write(" _ _expectedStatus: DecimalStatus? = nil,\n")
+ f.write(" file: StaticString = #file,\n")
+ f.write(" line: UInt = #line\n")
+ f.write(" ) {\n")
+
+ for i, a in enumerate(arg_types):
+ a.write_helper_parse(f, i)
+
+ result_type.write_helper_parse(f, _ARG_INDEX_EXPECTED)
+
+ if swift_code.has_status:
+ f.write(" let expectedStatus = _expectedStatus ?? DecimalStatus()\n")
+
+ f.write("\n")
+
+ if swift_code.has_status:
+ f.write(" var status = DecimalStatus()\n")
+
+ code = swift_code.code
+ if code.startswith("\n"):
+ code = code[1:]
+
+ code = code.replace("{decimal_name}", decimal.name)
+
+ f.write(code)
+ f.write(" }\n")
+
+
+def _get_arg_type(s: str, tested_decimal: _Decimal) -> _ArgType:
+ if s == ARG_TYPE_INT:
+ return _IntArgType()
+
+ if s == ARG_TYPE_BOOL:
+ return _BoolArgType()
+
+ if s == ARG_TYPE_STRING:
+ return _StringArgType()
+
+ if s == ARG_TYPE_TESTED_DECIMAL:
+ return _DecimalArgType(tested_decimal)
+
+ if s == ARG_TYPE_FLOATING_POINT_CLASS:
+ return _FloatingPointClassArgType()
+
+ assert False, "Unknown arg type: " + s
+
+
+def _get_arg_type_optional(s: str | None, tested_decimal: _Decimal) -> _ArgType | None:
+ if s is None:
+ return None
+
+ return _get_arg_type(s, tested_decimal)
+
+
+def _encode_decimal_payload(arg: str) -> str:
+ arg_lower = arg.lower()
+
+ for p in ("nan", "+nan", "-nan", "snan", "+snan", "-snan"):
+ if arg_lower.startswith(p):
+ p_len = len(p)
+ nan = arg[:p_len]
+ payload_str = arg[p_len:]
+
+ if payload_str != "":
+ payload_int = int(payload_str)
+ payload_hex = hex(payload_int)
+ arg = nan + "(" + payload_hex + ")"
+
+ break
+
+ return arg
+
+
+@dataclass
+class _DecimalArgType(_ArgType):
+ decimal: _Decimal
+
+ def write_call_arg(self, f: TextIOWrapper, arg: str):
+ # https://speleotrove.com/decimal/dtfile.html#syntax
+ arg = arg.replace("'", "")
+ arg = _encode_decimal_payload(arg)
+ f.write('"')
+ f.write(arg)
+ f.write('"')
+
+ def write_helper_arg(self, f: TextIOWrapper, index: int):
+ name = self._helper_arg_name(index)
+ f.write(f" _ _{name}: String,\n")
+
+ def write_helper_parse(self, f: TextIOWrapper, index: int):
+ name = self._helper_arg_name(index)
+ f.write(
+ f" guard let {name} = self.parse{self.decimal.name}(_{name}, file, line) else {{ return }}\n"
+ )
+
+
+class _IntArgType(_ArgType):
+ def write_call_arg(self, f: TextIOWrapper, arg: str):
+ f.write(arg)
+
+ def write_helper_arg(self, f: TextIOWrapper, index: int):
+ name = self._helper_arg_name(index)
+ f.write(f" _ {name}: Int,\n")
+
+ def write_helper_parse(self, f: TextIOWrapper, index: int):
+ pass
+
+
+class _BoolArgType(_ArgType):
+ def write_call_arg(self, f: TextIOWrapper, arg: str):
+ assert arg in "01", arg
+ f.write("false" if arg == "0" else "true")
+
+ def write_helper_arg(self, f: TextIOWrapper, index: int):
+ name = self._helper_arg_name(index)
+ f.write(f" _ {name}: Bool,\n")
+
+ def write_helper_parse(self, f: TextIOWrapper, index: int):
+ pass
+
+
+class _StringArgType(_ArgType):
+ def write_call_arg(self, f: TextIOWrapper, arg: str):
+ # Compare uses 'str', but in some rare cases they also use nan.
+ arg = _encode_decimal_payload(arg)
+ f.write('"')
+ f.write(arg)
+ f.write('"')
+
+ def write_helper_arg(self, f: TextIOWrapper, index: int):
+ name = self._helper_arg_name(index)
+ f.write(f" _ {name}: String,\n")
+
+ def write_helper_parse(self, f: TextIOWrapper, index: int):
+ pass
+
+
+_SPELEOTROVE_CLASS_TO_SWIFT_CLASS: dict[str, str] = {
+ "+zero": "positiveZero",
+ "+subnormal": "positiveSubnormal",
+ "+normal": "positiveNormal",
+ "+infinity": "positiveInfinity",
+ "-zero": "negativeZero",
+ "-subnormal": "negativeSubnormal",
+ "-normal": "negativeNormal",
+ "-infinity": "negativeInfinity",
+ "nan": "quietNaN",
+ "snan": "signalingNaN",
+}
+
+
+class _FloatingPointClassArgType(_ArgType):
+ def write_call_arg(self, f: TextIOWrapper, arg: str):
+ arg = arg.lower()
+ swift_class = _SPELEOTROVE_CLASS_TO_SWIFT_CLASS.get(arg)
+ assert swift_class is not None, "Unknown class: " + arg
+
+ f.write(".")
+ f.write(swift_class)
+
+ def write_helper_arg(self, f: TextIOWrapper, index: int):
+ name = self._helper_arg_name(index)
+ f.write(f" _ {name}: FloatingPointClassification,\n")
+
+ def write_helper_parse(self, f: TextIOWrapper, index: int):
+ pass
diff --git a/Scripts/generate-tests/to_int_tests.py b/Scripts/generate-tests/to_int_tests.py
new file mode 100644
index 0000000..e1bb5a3
--- /dev/null
+++ b/Scripts/generate-tests/to_int_tests.py
@@ -0,0 +1,277 @@
+import io
+import os
+import re
+from dataclasses import dataclass
+from common import (
+ GENERATED_FILE_HEADER,
+ DECIMAL_TYPES,
+ DecimalType,
+ IntType,
+ IntToDecimal,
+ Int32,
+ Int64,
+ UInt32,
+ UInt64,
+)
+
+
+_INT_TYPES: list[IntType] = [Int32, Int64, UInt32, UInt64]
+
+
+def generate(dir: str):
+ class_name = "GeneratedToIntTests"
+ file_path = os.path.join(dir, class_name + ".swift")
+
+ with open(file_path, "w") as f:
+ f.write(GENERATED_FILE_HEADER)
+ f.write(
+ f"""
+import XCTest
+@testable import Decimal
+
+class {class_name}: XCTestCase, DecimalTests {{
+
+ func test_double() {{
+ var d = Double.nan
+ // _ = Int32(d) // crash
+ // _ = Int32(-d) // crash
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Double.signalingNaN
+ // _ = Int32(d) // crash
+ // _ = Int32(-d) // crash
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Double.infinity
+ // _ = Int32(d) // crash
+ // _ = Int32(-d) // crash
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Double.zero
+ XCTAssertEqual(Int32( d), 0)
+ XCTAssertEqual(Int32(-d), 0)
+ XCTAssertEqual(Int32(exactly: d), 0)
+ XCTAssertEqual(Int32(exactly: -d), 0)
+
+ d = 5.0
+ XCTAssertEqual(Int32( d), 5)
+ XCTAssertEqual(Int32(-d), -5)
+ XCTAssertEqual(Int32(exactly: d), 5)
+ XCTAssertEqual(Int32(exactly: -d), -5)
+
+ d = 11.00
+ XCTAssertEqual(Int32( d), 11)
+ XCTAssertEqual(Int32(-d), -11)
+ XCTAssertEqual(Int32(exactly: d), 11)
+ XCTAssertEqual(Int32(exactly: -d), -11)
+
+ d = 11.13
+ XCTAssertEqual(Int32( d), 11)
+ XCTAssertEqual(Int32(-d), -11)
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+ }}
+"""
+ )
+
+ for d in DECIMAL_TYPES:
+ for i in _INT_TYPES:
+ _write_decimal_tests(f, d, i)
+
+ f.write("}\n")
+
+
+HAS_NEGATIVE_NUMBER = re.compile(r"-\d")
+
+
+def _write_decimal_tests(f: io.TextIOWrapper, d: DecimalType, i: IntType):
+ min = IntToDecimal(d, i.min)
+ max = IntToDecimal(d, i.max)
+
+ f.write("\n")
+ f.write(f" // MARK: - {d.name} -> {i.name}\n")
+
+ # Handle negative numbers for unsigned types.
+ is_signed = i.is_signed
+ is_unsigned = i.is_unsigned
+
+ def write_handling_unsigned(s: str, *, is_exactly: bool):
+ for line in s.splitlines():
+ # Because of 'exponent' we need to allow negative numbers in 'pack'.
+ has_negative = HAS_NEGATIVE_NUMBER.search(line)
+ is_pack = "_packWithoutChecks" in line
+ is_unsigned_negative = is_unsigned and has_negative and not is_pack
+
+ if is_unsigned_negative:
+ if is_exactly:
+ f.write(f" XCTAssertNil({i.name}(exactly: -d))")
+ f.write("\n")
+ else:
+ f.write(line)
+ f.write("\n")
+
+ # ============
+ # === Cast ===
+ # ============
+
+ s = f"""
+ func test_{d.name}_to_{i.name}() {{
+ // {d.name}.nan will crash
+ // {d.name}.signalingNaN will crash
+ // {d.name}.infinity will crash
+ var d = {d.name}.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {{
+ d = {d.name}.zero
+ XCTAssertEqual({i.name}( d, rounding: r), 0, r.description)
+ XCTAssertEqual({i.name}(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual({i.name}( d, rounding: r), 5, r.description)
+ XCTAssertEqual({i.name}(-d, rounding: r), -5, r.description)
+
+ // Positive exponent
+ d = {d.name}._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual({i.name}( d, rounding: r), 171900, r.description)
+ XCTAssertEqual({i.name}(-d, rounding: r), -171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = {d.name}._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual({i.name}( d, rounding: r), 11, r.description)
+ XCTAssertEqual({i.name}(-d, rounding: r), -11, r.description)
+ }}
+
+ // Negative exponent, decimal digits below half
+ d = {d.name}._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual({i.name}( d, rounding: .up), 12)
+ XCTAssertEqual({i.name}( d, rounding: .down), 11)
+ XCTAssertEqual({i.name}( d, rounding: .towardZero), 11)
+ XCTAssertEqual({i.name}( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual({i.name}( d, rounding: .toNearestOrAwayFromZero), 11)
+ XCTAssertEqual({i.name}(-d, rounding: .up), -11)
+ XCTAssertEqual({i.name}(-d, rounding: .down), -12)
+ XCTAssertEqual({i.name}(-d, rounding: .towardZero), -11)
+ XCTAssertEqual({i.name}(-d, rounding: .toNearestOrEven), -11)
+ XCTAssertEqual({i.name}(-d, rounding: .toNearestOrAwayFromZero), -11)
+
+ // Negative exponent, decimal digits half odd
+ d = {d.name}._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual({i.name}( d, rounding: .up), 12)
+ XCTAssertEqual({i.name}( d, rounding: .down), 11)
+ XCTAssertEqual({i.name}( d, rounding: .towardZero), 11)
+ XCTAssertEqual({i.name}( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual({i.name}( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual({i.name}(-d, rounding: .up), -11)
+ XCTAssertEqual({i.name}(-d, rounding: .down), -12)
+ XCTAssertEqual({i.name}(-d, rounding: .towardZero), -11)
+ XCTAssertEqual({i.name}(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual({i.name}(-d, rounding: .toNearestOrAwayFromZero), -12)
+ // Negative exponent, decimal digits half even
+ d = {d.name}._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual({i.name}( d, rounding: .toNearestOrEven), 10)
+ XCTAssertEqual({i.name}(-d, rounding: .toNearestOrEven), -10)
+
+ // Negative exponent, decimal digits above half
+ d = {d.name}._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual({i.name}( d, rounding: .up), 12)
+ XCTAssertEqual({i.name}( d, rounding: .down), 11)
+ XCTAssertEqual({i.name}( d, rounding: .towardZero), 11)
+ XCTAssertEqual({i.name}( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual({i.name}( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual({i.name}(-d, rounding: .up), -11)
+ XCTAssertEqual({i.name}(-d, rounding: .down), -12)
+ XCTAssertEqual({i.name}(-d, rounding: .towardZero), -11)
+ XCTAssertEqual({i.name}(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual({i.name}(-d, rounding: .toNearestOrAwayFromZero), -12)
+
+ // {i.name}.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: {d.name} = self.parseExact("{max.decimal_significand}E{max.decimal_exponent}", #file, #line) {{
+ XCTAssertEqual({i.name}( d), {max.int})
+ XCTAssertEqual({i.name}(-d), -{max.int})
+ }}
+"""
+
+ write_handling_unsigned(s, is_exactly=False)
+
+ if is_signed:
+ f.write(
+ f"""
+ // {i.name}.min
+ // We have to parse because the value may not be representable by int literal.
+ if let d: {d.name} = self.parseExact("{min.decimal_significand}E{min.decimal_exponent}", #file, #line) {{
+ XCTAssertEqual({i.name}(-d), -{min.int})
+ }}
+"""
+ )
+
+ f.write(" }\n")
+
+ # =============
+ # === Exact ===
+ # =============
+
+ s = f"""
+ func test_{d.name}_to_{i.name}_exactly() {{
+ var d = {d.name}.nan
+ XCTAssertNil({i.name}(exactly: d))
+ XCTAssertNil({i.name}(exactly: -d))
+
+ d = {d.name}.signalingNaN
+ XCTAssertNil({i.name}(exactly: d))
+ XCTAssertNil({i.name}(exactly: -d))
+
+ d = {d.name}.infinity
+ XCTAssertNil({i.name}(exactly: d))
+ XCTAssertNil({i.name}(exactly: -d))
+
+ d = {d.name}.zero
+ XCTAssertEqual({i.name}(exactly: d), 0)
+ XCTAssertEqual({i.name}(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual({i.name}(exactly: d), 5)
+ XCTAssertEqual({i.name}(exactly: -d), -5)
+
+ // Positive exponent
+ d = {d.name}._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual({i.name}(exactly: d), 171900)
+ XCTAssertEqual({i.name}(exactly: -d), -171900)
+
+ // Negative exponent, decimal digits = 0
+ d = {d.name}._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual({i.name}(exactly: d), 11)
+ XCTAssertEqual({i.name}(exactly: -d), -11)
+
+ // Negative exponent, decimal digits != 0
+ d = {d.name}._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil({i.name}(exactly: d))
+ XCTAssertNil({i.name}(exactly: -d))
+
+ // {i.name}.max
+ if let d: {d.name} = self.parseExact("{max.decimal_significand}E{max.decimal_exponent}", #file, #line) {{
+ XCTAssertEqual({i.name}(exactly: d), {max.int})
+ XCTAssertEqual({i.name}(exactly: -d), -{max.int})
+ }}
+"""
+
+ write_handling_unsigned(s, is_exactly=True)
+
+ if is_signed:
+ f.write(
+ f"""
+ // {i.name}.min
+ // We have to parse because '-{i.name}.min' may not be representable.
+ if let d: {d.name} = self.parseExact("{min.decimal_significand}E{min.decimal_exponent}", #file, #line) {{
+ XCTAssertEqual({i.name}(exactly: -d), -{min.int})
+ }}
+"""
+ )
+
+ f.write(" }\n")
diff --git a/Scripts/generate-tests/wide_uint_tests.py b/Scripts/generate-tests/wide_uint_tests.py
new file mode 100644
index 0000000..e9a654b
--- /dev/null
+++ b/Scripts/generate-tests/wide_uint_tests.py
@@ -0,0 +1,373 @@
+import io
+import os
+import random
+from dataclasses import dataclass
+from common import GENERATED_FILE_HEADER
+
+# 2^64−1 - upper bound is included in 'random'
+_WORD_UPPER_BOUND = 18446744073709551615
+# Divide by this to obtain 'words'
+_WORD_MUL = _WORD_UPPER_BOUND + 1
+# Max number characters on Word hexadecimal representation.
+_WORD_HEX_CHAR_COUNT = len(hex(_WORD_UPPER_BOUND))
+
+
+@dataclass
+class _UIntType:
+ name: str
+ word_count: int
+ max: int
+
+ def __init__(self, name: str, word_count: int):
+ self.name = name
+ self.word_count = word_count
+
+ self.max = 1
+ for _ in range(word_count):
+ self.max *= _WORD_MUL
+
+
+_INT_TYPES = [
+ _UIntType(name="UInt128", word_count=2),
+ _UIntType(name="UInt256", word_count=4),
+]
+
+
+def generate(dir: str):
+ # Fix seed, so that we generate the same tests every time
+ random.seed(123456)
+
+ for t in _INT_TYPES:
+ name = "Generated" + t.name + "Tests"
+ path = os.path.join(dir, name + ".swift")
+
+ with open(path, "w") as f:
+ f.write(GENERATED_FILE_HEADER)
+ f.write(
+ f"""
+import XCTest
+@testable import Decimal
+
+class {name}: XCTestCase {{
+
+ typealias Word = {t.name}.Word
+"""
+ )
+
+ _write_add(f, t)
+ _write_sub(f, t)
+ _write_mul(f, t)
+ _write_div(f, t)
+ _write_create_function(f, t)
+ f.write("}\n")
+
+
+def _write_add(f: io.TextIOWrapper, t: _UIntType):
+ _write_add_sub(
+ f,
+ t,
+ "Add",
+ lambda a, b: a + b,
+ "addingReportingOverflow",
+ "+",
+ )
+
+
+def _write_sub(f: io.TextIOWrapper, t: _UIntType):
+ _write_add_sub(
+ f,
+ t,
+ "Sub",
+ lambda a, b: a - b,
+ "subtractingReportingOverflow",
+ "-",
+ )
+
+
+def _write_add_sub(
+ f: io.TextIOWrapper,
+ t: _UIntType,
+ name: str,
+ python_fn,
+ swift_reporting_overflow: str,
+ swift_op: str,
+):
+ name_lower = name.lower()
+ _write_mark(f, name)
+
+ for lhs_word_count, rhs_word_count in _get_binary_word_counts(t):
+ f.write("\n")
+ f.write(f" func test_{name_lower}_{lhs_word_count}_by_{rhs_word_count}() {{\n")
+
+ for _ in range(50):
+ lhs = _Number.random(lhs_word_count)
+ rhs = _Number.random(rhs_word_count)
+ expected = python_fn(lhs.n, rhs.n)
+ has_overflow = expected < 0 or expected > t.max
+ expected = _Number.from_int(expected % t.max)
+
+ f.write(f" self.{name_lower}(")
+ f.write(lhs.word_array)
+ f.write(f", ")
+ f.write(rhs.word_array)
+ f.write(f", ")
+ f.write("true" if has_overflow else "false")
+ f.write(f", ")
+ f.write(expected.word_array)
+ f.write(f")\n")
+
+ f.write(" }\n")
+
+ f.write(
+ f"""
+ private func {name_lower}(
+ _ lhsWords: [Word],
+ _ rhsWords: [Word],
+ _ expectedOverflow: Bool,
+ _ expectedWords: [Word],
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {{
+ let lhs = self.create(lhsWords)
+ let rhs = self.create(rhsWords)
+ let expected = self.create(expectedWords)
+
+ let (result, overflow) = lhs.{swift_reporting_overflow}(rhs)
+ XCTAssertEqual(result, expected, "reportingOverflow.result", file: file, line: line)
+ XCTAssertEqual(overflow, expectedOverflow, "reportingOverflow.overflow", file: file, line: line)
+
+ if !overflow {{
+ let result2 = lhs {swift_op} rhs
+ XCTAssertEqual(result2, expected, "{swift_op}", file: file, line: line)
+ }}
+ }}
+"""
+ )
+
+
+def _write_mul(f: io.TextIOWrapper, t: _UIntType):
+ name = "Mul"
+ name_lower = name.lower()
+ _write_mark(f, name)
+
+ for lhs_word_count, rhs_word_count in _get_binary_word_counts(t):
+ f.write("\n")
+ f.write(f" func test_{name_lower}_{lhs_word_count}_by_{rhs_word_count}() {{\n")
+
+ for _ in range(100):
+ lhs = _Number.random(lhs_word_count)
+ rhs = _Number.random(rhs_word_count)
+ expected = lhs.n * rhs.n
+ expected_high = _Number.from_int(expected // t.max)
+ expected_low = _Number.from_int(expected % t.max)
+
+ f.write(f" self.{name_lower}(")
+ f.write(lhs.word_array)
+ f.write(f", ")
+ f.write(rhs.word_array)
+ f.write(f", ")
+ f.write(expected_high.word_array)
+ f.write(f", ")
+ f.write(expected_low.word_array)
+ f.write(f")\n")
+
+ f.write(" }\n")
+
+ half_type = f"UInt{t.word_count // 2 * 64}"
+ f.write(
+ f"""
+ private func {name_lower}(
+ _ lhsWords: [Word],
+ _ rhsWords: [Word],
+ _ expectedHighWords: [Word],
+ _ expectedLowWords: [Word],
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {{
+ let lhs = self.create(lhsWords)
+ let rhs = self.create(rhsWords)
+ let expectedHigh = self.create(expectedHighWords)
+ let expectedLow = self.create(expectedLowWords)
+
+ let (high, low) = lhs.multipliedFullWidth(by: rhs)
+ XCTAssertEqual(high, expectedHigh, "fullWidth.high", file: file, line: line)
+ XCTAssertEqual(low, expectedLow, "fullWidth.low", file: file, line: line)
+
+ let expectedOverflow = expectedHigh != 0
+ let (low1, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ XCTAssertEqual(low1, expectedLow, "reportingOverflow.low", file: file, line: line)
+ XCTAssertEqual(overflow, expectedOverflow, "reportingOverflow.overflow", file: file, line: line)
+
+ if !expectedOverflow {{
+ let low2 = lhs * rhs
+ XCTAssertEqual(low2, expectedLow, "*", file: file, line: line)
+ }}
+
+ if rhsWords.count == {t.word_count // 2} {{
+ let rhsSmall = rhs.low
+
+ let (highSmall, lowSmall) = lhs.multipliedFullWidth(by: rhsSmall)
+ XCTAssertEqual(highSmall, expectedHigh.low, "fullWidth({half_type}).high", file: file, line: line)
+ XCTAssertEqual(lowSmall, expectedLow, "fullWidth({half_type}).low", file: file, line: line)
+
+ let (lowOvSmall, overflowSmall) = lhs.multipliedReportingOverflow(by: rhsSmall)
+ XCTAssertEqual(lowOvSmall, expectedLow, "reportingOverflow({half_type}).low", file: file, line: line)
+ XCTAssertEqual(overflowSmall, expectedOverflow, "reportingOverflow({half_type}).overflow", file: file, line: line)
+
+ if !expectedOverflow {{
+ let lowStarSmall = lhs * rhsSmall
+ XCTAssertEqual(lowStarSmall, expectedLow, "{half_type}.*", file: file, line: line)
+ }}
+ }}
+ }}
+"""
+ )
+
+
+def _write_div(f: io.TextIOWrapper, t: _UIntType):
+ name = "Div"
+ name_lower = name.lower()
+ _write_mark(f, name)
+
+ for lhs_word_count, rhs_word_count in _get_binary_word_counts(t):
+ f.write("\n")
+ f.write(f" func test_{name_lower}_{lhs_word_count}_by_{rhs_word_count}() {{\n")
+
+ for _ in range(100):
+ lhs = _Number.random(lhs_word_count)
+ rhs = _Number.random(rhs_word_count)
+ expected_q = _Number.from_int(lhs.n // rhs.n)
+ expected_r = _Number.from_int(lhs.n % rhs.n)
+
+ f.write(f" self.{name_lower}(")
+ f.write(lhs.word_array)
+ f.write(f", ")
+ f.write(rhs.word_array)
+ f.write(f", ")
+ f.write(expected_q.word_array)
+ f.write(f", ")
+ f.write(expected_r.word_array)
+ f.write(f")\n")
+
+ f.write(" }\n")
+
+ f.write(
+ f"""
+ private func {name_lower}(
+ _ lhsWords: [Word],
+ _ rhsWords: [Word],
+ _ quotientWords: [Word],
+ _ remainderWords: [Word],
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {{
+ let lhs = self.create(lhsWords)
+ let rhs = self.create(rhsWords)
+ let quotient = self.create(quotientWords)
+ let remainder = self.create(remainderWords)
+
+ let qr = lhs.quotientAndRemainder(dividingBy: rhs)
+ XCTAssertEqual(qr.quotient, quotient, "quotientAndRemainder.quotient", file: file, line: line)
+ XCTAssertEqual(qr.remainder, remainder, "quotientAndRemainder.remainder", file: file, line: line)
+
+ let q = lhs / rhs
+ XCTAssertEqual(q, quotient, "/", file: file, line: line)
+
+ let r = lhs % rhs
+ XCTAssertEqual(r, remainder, "%", file: file, line: line)
+ }}
+"""
+ )
+
+
+@dataclass
+class _Number:
+ n: int
+ words: list[int]
+
+ @property
+ def word_array(self) -> str:
+ result = "["
+
+ for index, w in enumerate(self.words):
+ if index != 0:
+ result += ", "
+
+ s = hex(w)
+ result += s.rjust(_WORD_HEX_CHAR_COUNT)
+
+ result += "]"
+ return result
+
+ @staticmethod
+ def from_int(n: int) -> "_Number":
+ words: list[int] = []
+
+ if n == 0:
+ words.append(0)
+ else:
+ nn = n
+ while nn != 0:
+ words.append(nn % _WORD_MUL)
+ nn = nn // _WORD_MUL
+
+ words.reverse()
+
+ return _Number(n, words)
+
+ @staticmethod
+ def random(word_count: int) -> "_Number":
+ n = 0
+ words: list[int] = []
+
+ for _ in range(word_count):
+ word = random.randint(0, _WORD_UPPER_BOUND)
+ n = n * _WORD_MUL + word
+ words.append(word)
+
+ return _Number(n, words)
+
+
+def _get_binary_word_counts(t: _UIntType):
+ for lhs_word_count in range(1, t.word_count + 1):
+ for rhs_word_count in range(1, t.word_count + 1):
+ yield (lhs_word_count, rhs_word_count)
+
+
+def _write_create_function(f: io.TextIOWrapper, t: _UIntType):
+ _write_mark(f, "Create")
+ f.write("\n")
+ f.write(f" private func create(_ words: [Word]) -> {t.name} {{\n")
+ f.write(f" switch words.count {{\n")
+
+ for n in range(t.word_count):
+ n += 1
+ f.write(f" case {n}: return {t.name}(")
+ is_first = True
+
+ for _ in range(t.word_count - n):
+ if not is_first:
+ f.write(", ")
+
+ f.write("0")
+ is_first = False
+
+ for i in range(n):
+ if not is_first:
+ f.write(", ")
+
+ f.write(f"words[{i}]")
+ is_first = False
+
+ f.write(f")\n")
+
+ f.write(f' default: fatalError("Unknown {t.name} input: \\(words)")\n')
+ f.write(" }\n")
+ f.write(" }\n")
+
+
+def _write_mark(f: io.TextIOWrapper, s: str):
+ f.write("\n")
+ f.write(" // MARK: - ")
+ f.write(s)
+ f.write("\n")
diff --git a/Sources/Decimal/Decimal+Add+Sub+Negate.swift b/Sources/Decimal/Decimal+Add+Sub+Negate.swift
new file mode 100644
index 0000000..746623b
--- /dev/null
+++ b/Sources/Decimal/Decimal+Add+Sub+Negate.swift
@@ -0,0 +1,631 @@
+extension DecimalMixin {
+
+ // MARK: - Negate
+
+ internal mutating func _negate() {
+ // If the input is not canonical, then we will return non-canonical value.
+ // Oh well…
+ let bid = self.bid ^ Self.signMask
+ self = Self(unchecked: bid)
+ }
+
+ // MARK: - Sub
+
+ internal func _subtracting(
+ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // Change sign, but not for NaN.
+ let o = other._isNaN ? other : Self(unchecked: other.bid ^ Self.signMask)
+ return self._adding(other: o, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Add
+
+ internal func _adding(
+ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // formatOf-addition(source1, source2)
+ //
+ // The operation addition(x, y) computes x + y.
+ // The preferred exponent is min(Q(x), Q( y)).
+ //
+ // 6.1 Infinity arithmetic
+ // Operations on infinite operands are usually exact and therefore signal no
+ // exceptions, including, among others:
+ // ― addition(∞, x), addition(x, ∞), subtraction(∞, x), or subtraction(x, ∞),
+ // for finite x
+ //
+ // 7.2 Invalid operation
+ // For operations producing results in floating-point format, the default
+ // result of an operation that signals the invalid operation exception shall
+ // be a quiet NaN that should provide some diagnostic information (see 6.2).
+ //
+ // These operations are:
+ // ― addition or subtraction or fusedMultiplyAdd: magnitude subtraction of
+ // infinities, such as: addition(+∞, −∞)
+
+ if self._isNaN || other._isNaN {
+ return Self._nanResult_viaIEEE754_section62(self, other, status: &status)
+ }
+
+ if self._isInfinite && other._isInfinite {
+ if self._isNegative == other._isNegative {
+ // +inf + +inf = +inf
+ // -inf + -inf = -inf
+ return Self(canonical: (self.bid & Self.signMask) | Self.infinityMask)
+ }
+
+ // Different signs: inf + -inf = ?
+ status.set(.isInvalidOperation)
+ return ._nan
+ }
+
+ // inf + y = inf
+ if self._isInfinite {
+ return Self(canonical: (self.bid & Self.signMask) | Self.infinityMask)
+ }
+
+ // x + inf = inf
+ if other._isInfinite {
+ return Self(canonical: (other.bid & Self.signMask) | Self.infinityMask)
+ }
+
+ let lhs = self._unpackFiniteOrZero()
+ let rhs = other._unpackFiniteOrZero()
+
+ // From now on we will share our code with FMA. This makes the 'add' more
+ // complicated, but this code is way too fragile to copy-paste it around.
+
+ return Self._addFiniteOrZero(
+ lhs: (
+ sign: lhs.sign,
+ signedExponent: lhs.exponent.signed,
+ significand: lhs.significand.canonical
+ ),
+ rhs: (
+ sign: rhs.sign,
+ signedExponent: rhs.exponent.signed,
+ significand: rhs.significand.canonical
+ ),
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Finite or zero
+
+ internal typealias AddFiniteOrZero = (
+ sign: Sign,
+ signedExponent: Int,
+ significand: BID
+ )
+
+ internal static func _addFiniteOrZero(
+ lhs: AddFiniteOrZero,
+ rhs: AddFiniteOrZero,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ let isLhsZero = lhs.significand == 0
+ let isRhsZero = rhs.significand == 0
+
+ // 0 + 0 = 0 with minimum exponent.
+ if isLhsZero && isRhsZero {
+ // The preferred exponent is min(Q(x), Q(y)).
+ return Self._additionExactZero(
+ lhsSign: lhs.sign,
+ rhsSign: rhs.sign,
+ signedExponent: Swift.min(lhs.signedExponent, rhs.signedExponent),
+ rounding: rounding
+ )
+ }
+
+ // 0 + y = canonical y
+ // The preferred exponent is min(Q(x), Q(y)), so we can only do this when
+ // 'self' has bigger exponent.
+ if isLhsZero && lhs.signedExponent >= rhs.signedExponent {
+ return Self._canonical(rhs)
+ }
+
+ // x + 0 = canonical x
+ if isRhsZero && rhs.signedExponent >= lhs.signedExponent {
+ return Self._canonical(lhs)
+ }
+
+ // Sort arguments by exponent. We can do this because:
+ //
+ // 10.4 Literal meaning and value-changing optimizations
+ //
+ // A language implementation preserves the literal meaning of the source code
+ // by, for example:
+ // ― Applying the properties of real numbers to floating-point expressions
+ // only when they preserve numerical results and flags raised:
+ // ― Applying the commutative law only to operations, such as addition and
+ // multiplication, for which neither the numerical values of the results,
+ // nor the representations of the results, depend on the order of the operands.
+ let lhsHasBiggerExponent = lhs.signedExponent >= rhs.signedExponent
+ var big = lhsHasBiggerExponent ? lhs : rhs
+ let small = lhsHasBiggerExponent ? rhs : lhs
+ assert(big.signedExponent >= small.signedExponent)
+
+ // One of the exponents dominates the other.
+ //
+ // Example for precision 5:
+ // - big 123E6 = 12300E4 = 123 000 000
+ // - small 12E0 = 12
+ // - sum = 123 000 012 = 12300E4
+ if small.signedExponent + Self.precisionInDigits < big.signedExponent {
+ // Rescale 'big' to fill all 'precision' digits.
+ // This will also take care of: The preferred exponent is min(Q(x), Q(y)).
+ big = Self._quantizeToUseAllDecimalDigits(big)
+
+ // Same check as above.
+ // Are they comparable after the quantization?
+ if small.signedExponent + Self.precisionInDigits < big.signedExponent {
+ return Self._additionWithBigExponentDiscrepancy(
+ quantizedBigExponent: big,
+ smallExponent: small,
+ rounding: rounding,
+ status: &status
+ )
+ }
+ }
+
+ // Bring 'big' to the exponent of 'small'.
+ let bigInSmallExponent: DoubleBID = {
+ let exponentDiff = big.signedExponent - small.signedExponent
+ let pow10: BID = Tables.getPowerOf10(exponent: exponentDiff)
+ let m = big.significand.multipliedFullWidth(by: pow10)
+ return DoubleBID(high: m.high, low: m.low)
+ }()
+
+ // Now we can just add 'bigInSmallExponent + small.significand' and the final
+ // result will be: 'resultInSmallExponent * 10^small.exponent'.
+ let (resultSign, resultInSmallExponent) = Self._addSignificands(
+ lhsSign: big.sign,
+ lhs: bigInSmallExponent,
+ rhsSign: small.sign,
+ rhs: small.significand
+ )
+
+ // Special case for '0', because of the sign requirements.
+ // Note that this is an exact '0', so the rule applies here.
+ // Rounded '0' does not get the special treatment.
+ if resultInSmallExponent == 0 {
+ return Self._additionExactZero(
+ lhsSign: lhs.sign,
+ rhsSign: rhs.sign,
+ signedExponent: small.signedExponent,
+ rounding: rounding
+ )
+ }
+
+ // We have our result: 'resultInSmallExponent * 10^small.exponent'.
+ // Simplest case it when 'resultInSmallExponent' fits inside 'Self.precisionInDigits'.
+ // (This is for performance, as operating on DoubleBID is slower than on BID.)
+ var exponent = small.signedExponent
+
+ let isResultSignificandSmall = resultInSmallExponent.high == 0
+ && resultInSmallExponent.low <= Self.maxDecimalDigits
+
+ // This one is for FMA. Addition will always be in range.
+ let isResultExponentInRange = Self.minSignedExponent <= exponent
+ && exponent <= Self.maxSignedExponent
+
+ if isResultSignificandSmall && isResultExponentInRange {
+ return Self._packWithoutChecks(
+ sign: resultSign,
+ significand: resultInSmallExponent.low,
+ signedExponent: exponent
+ )
+ }
+
+ // Now we have to bring 'resultInSmallExponent' into 'Self.precisionInDigits'
+ // potentially rounding and modifying exponent.
+ let roundingDigitCount = Self._getRoundingDigitCount(resultInSmallExponent)
+ exponent += roundingDigitCount
+
+ return Self._pack(
+ sign: resultSign,
+ significand: resultInSmallExponent,
+ signedExponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ private static func _canonical(_ a: AddFiniteOrZero) -> Self {
+ return Self._packWithoutChecks(
+ sign: a.sign,
+ significand: a.significand,
+ signedExponent: a.signedExponent
+ )
+ }
+
+ private static func _quantizeToUseAllDecimalDigits(
+ _ a: AddFiniteOrZero
+ ) -> AddFiniteOrZero {
+ let (significand, signedExponent, _) = Self._quantizeToUseAllDecimalDigits(
+ significand: a.significand,
+ signedExponent: a.signedExponent
+ )
+
+ return AddFiniteOrZero(
+ sign: a.sign,
+ signedExponent: signedExponent,
+ significand: significand
+ )
+ }
+
+ internal typealias AddSignificandsResult = (sign: Sign, significand: DoubleBID)
+
+ internal static func _addSignificands(
+ lhsSign: Sign,
+ lhs: DoubleBID,
+ rhsSign: Sign,
+ rhs: BID
+ ) -> AddSignificandsResult {
+ return Self._addSignificands(
+ lhsSign: lhsSign,
+ lhs: lhs,
+ rhsSign: rhsSign,
+ rhs: DoubleBID(high: 0, low: rhs)
+ )
+ }
+
+ internal static func _addSignificands(
+ lhsSign: Sign,
+ lhs: DoubleBID,
+ rhsSign: Sign,
+ rhs: DoubleBID
+ ) -> AddSignificandsResult {
+ if lhsSign == rhsSign {
+ // 123000E7 + 777E7 = 123777E7
+ // -123000E7 + -777E7 = -123777E7
+ return (lhsSign, lhs + rhs)
+ }
+
+ // We have different signs.
+ // We need to subtract: 'bigger magnitude - smaller magnitude'.
+ // Sign will be taken from 'bigger magnitude'.
+
+ if lhs >= rhs {
+ return (lhsSign, lhs - rhs)
+ }
+
+ return (rhsSign, rhs - lhs)
+ }
+
+ // MARK: - Exact zero
+
+ /// Important: this only applies if the zero is EXACT!!1
+ internal static func _additionExactZero(
+ lhsSign: Sign,
+ rhsSign: Sign,
+ signedExponent: Int,
+ rounding: DecimalFloatingPointRoundingRule
+ ) -> Self {
+ // IEEE-754 -> 6.3 The sign bit
+ // When the sum of two operands with opposite signs (or the difference of
+ // two operands with like signs) is exactly zero, the sign of that sum
+ // (or difference) shall be +0 in all rounding-direction attributes except
+ // roundTowardNegative; under that attribute, the sign of an exact zero sum
+ // (or difference) shall be −0.
+ // However, x + x = x − (−x) retains the same sign as x even when x is zero.
+ let sign: Sign = {
+ let isSameSign = lhsSign == rhsSign
+
+ switch rounding {
+ case .down where !isSameSign:
+ return .minus
+ case .up, .down, .towardZero, .toNearestOrEven, .toNearestOrAwayFromZero:
+ // If we have the same sign then: 'retains the same sign as x' apply.
+ return isSameSign ? lhsSign : .plus
+ }
+ }()
+
+ let clampedExponent = clamp(
+ signedExponent,
+ min: Self.minSignedExponent,
+ max: Self.maxSignedExponent
+ )
+
+ let biased = Self._addBias(exponent: clampedExponent)
+ return Self(canonical: sign | biased << Self.exponentShift_00_01_10)
+ }
+
+ // MARK: - Big exponent discrepancy
+
+ /// Call `Self._quantizeToUseAllDecimalDigits(bigExponent)` before calling this
+ /// method!
+ internal static func _additionWithBigExponentDiscrepancy(
+ quantizedBigExponent big: AddFiniteOrZero,
+ smallExponent small: AddFiniteOrZero,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // For example:
+ // Precision = Self.maxDecimalDigits = 5
+ // big = 12312E9 = 12312 000 000 000
+ // small = 56789E3 = 56 789 000
+ //
+ // Small exponent is <9-5 which is <4.
+
+#if DEBUG
+ // Big.exponent below 'minSignedExponent'?
+ // If 'big.signedExponent < Self.minSignedExponent' then how did we arrive
+ // to 'big exponent discrepancy'? Small would have to be even smaller.
+ //
+ // Big.exponent above 'maxSignedExponent'?
+ // We are 'ok' with 'big.signedExponent > Self.maxSignedExponent' because
+ // big is quantized to fill the whole 'precision' (see the next assert).
+ // In such case we join Buzz Lightyear in the journey to 'infinity' and beyond.
+ assert(big.signedExponent >= Self.minSignedExponent, "big.exponent < min?")
+
+ // In just a sec we will be doing rounding with, so we need it quantized.
+ Self._assertQuantizedToAllDecimalDigits(
+ significand: big.significand,
+ signedExponent: big.signedExponent
+ )
+
+ let __smallDigitCount = Self._getDecimalDigitCount(small.significand)
+ assert(
+ __smallDigitCount + small.signedExponent < big.signedExponent,
+ "Small exponent discrepancy?"
+ )
+#endif
+
+ let sign = big.sign
+
+ if small.significand == 0 {
+ // We can return canonical 'big', because '_quantizeToUseAllDecimalDigits'
+ // was called before this method. This lowered exponent to as close as
+ // possible to the preferred one.
+ // Though it is still possible that 'big.exponent > maxSignedExponent' (FMA).
+ if big.signedExponent > Self.maxSignedExponent {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(sign: sign, rounding: rounding)
+ }
+
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: big.significand,
+ signedExponent: big.signedExponent
+ )
+ }
+
+ // 'small' has 'something' -> returning 'big' is 'inexact'.
+ status.set(.isInexact)
+
+ // leastNormalMagnitude - small = underflow
+ if big.signedExponent == Self.minSignedExponent {
+ let leastNormal = Self._leastNormalMagnitudeSignificand
+ let isBelowNormal = big.significand < leastNormal
+ let isNormalTowardZero = big.significand == leastNormal && big.sign != small.sign
+
+ if isBelowNormal || isNormalTowardZero {
+ status.set(.isUnderflow)
+ }
+ }
+
+ var significand = big.significand
+ var exponent = big.signedExponent
+ var direction = AdditionWithBigExponentDiscrepancy_RoundingDirection.none
+
+ switch rounding {
+ case .up:
+ // +big + +small = away from 0, significand +1
+ // +big + -small = big
+ // -big + +small = toward 0, significand -1
+ // -big + -small = big
+ if big.sign.isMinus && small.sign.isPlus { direction = .towardZero }
+ if big.sign.isPlus && small.sign.isPlus { direction = .awayFromZero }
+
+ case .down:
+ // +big + +small = big
+ // +big + -small = toward 0, significand -1
+ // -big + +small = big
+ // -big + -small = away from 0, significand +1
+ if big.sign.isPlus && small.sign.isMinus { direction = .towardZero }
+ if big.sign.isMinus && small.sign.isMinus { direction = .awayFromZero }
+
+ case .towardZero:
+ // +big + +small = big
+ // +big + -small = toward 0, significand -1
+ // -big + +small = toward 0, significand -1
+ // -big + -small = big
+ if big.sign != small.sign { direction = .towardZero }
+
+ case .toNearestOrEven,
+ .toNearestOrAwayFromZero:
+ // What happens here is that we are changing the ulp ('big' is power of 10).
+ // This rounding has to be done with lower number ulp which will round it
+ // to the lower number. This is because ulp for powers of radix is kind of
+ // asymmetrical toward/away from zero.
+ //
+ // let lhs = Decimal32("+1000000E+8")!
+ // let rhs = Decimal32("-5000001")!
+ // lhs._adding(other: rhs, rounding: .toNearestOrEven, status: &s)
+ //
+ // 1 000 000|000 000 00 // 1000000E+8
+ // -50 000 01 // -5000001
+ // 9 999 999| 00 000 00 // 9999999E+7 <-- expected result
+ // 1| 00 000 00 // 1E+7 <-- ulp of 9999999E+7
+ // you have to divide it by 2
+ //
+ // Is this the only case when we have to do the rounding?
+ // Probably.
+ // Before calling this method we did '_quantizeToUseAllDecimalDigits'.
+ // - if this filled all digits -> this is our case
+ // - if this has NOT filled all digits -> exponent did not allow us
+ // -> no 'big exponent discrepancy'
+ let lowerPowerOf10Ulp = (Self.maxDecimalDigits + 1) / 2
+
+ if
+ // Small is just after big
+ big.signedExponent == small.signedExponent + Self.precisionInDigits + 1
+ // Different signs
+ && big.sign != small.sign
+ // Max power of 10 (we quantized 'big' before calling this method)
+ && (significand == (Self.maxDecimalDigits + 1) / 10)
+ // We trigger rounding on the lower number. On exactly halfway:
+ // - orEven - current 'significand' is even -> not applicable
+ // - orAwayFromZero - current 'significand' is 'more away' -> not applicable
+ && (small.significand > lowerPowerOf10Ulp) {
+ significand = Self.maxDecimalDigits
+ exponent -= 1
+ }
+ }
+
+ return Self._additionWithBigExponentDiscrepancy_roundAndPack(
+ sign: sign,
+ signedExponent: exponent,
+ quantizedSignificand: significand,
+ additionRounding: direction,
+ rounding: rounding,
+ status: &status
+ )
+ }
+}
+
+internal enum AdditionWithBigExponentDiscrepancy_RoundingDirection {
+ case awayFromZero
+ case towardZero
+ case none
+}
+
+extension DecimalMixin {
+
+ /// This method does not handle underflow BEFORE rounding!
+ /// But how can you underflow with big exponent discrepancy?
+ /// Is the 2nd exponent even smaller?
+ internal static func _additionWithBigExponentDiscrepancy_roundAndPack(
+ sign: Sign,
+ signedExponent: Int,
+ quantizedSignificand significand: BID,
+ additionRounding: AdditionWithBigExponentDiscrepancy_RoundingDirection,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+#if DEBUG
+ // We can deal with overflow, but not with underflow.
+ assert(signedExponent >= Self.minSignedExponent, "exponent < min?")
+
+ // In just a sec we will be doing rounding, so we need it quantized.
+ Self._assertQuantizedToAllDecimalDigits(
+ significand: significand,
+ signedExponent: signedExponent
+ )
+#endif
+
+ var significand = significand
+ var exponent = signedExponent
+
+ switch additionRounding {
+ case .awayFromZero:
+ significand += 1
+
+ // Make it canonical if needed.
+ if significand == Self.maxDecimalDigits + 1 {
+ significand /= 10
+ exponent += 1
+ }
+
+ case .towardZero:
+ // The preferred exponent is min(Q(x), Q(y)).
+ // If 'significand == 0' -> we can't subtract. But it would also mean
+ // that '0' has bigger exponent, which should be handled before calling
+ // this method.
+ assert(
+ significand != 0,
+ "0 has bigger exponent -> fast-path before we even call this method"
+ )
+
+ significand -= 1
+
+ // 1 000 000 000 000 000E7 - 1 = 999 999 999 999 999E+7
+ // but should be: 9 999 999 999 999 999E+6
+ //
+ // This situation is referred as EXPONENT_DECREASE_SPECIAL_CASE below.
+ if significand == Self.maxDecimalDigits / 10 {
+ significand = Self.maxDecimalDigits
+ exponent -= 1
+ }
+
+ case .none:
+ break
+ }
+
+#if DEBUG
+ // We are AFTER the rounding, our new state may be underflow/overflow.
+ // Btw. this seems like a double rounding, but:
+ //
+ // - overflow will try to decrease the exponent by increasing significand.
+ // Since significand was quantized to all decimal digits then there is
+ // no more space to do this. The edge cases that change the number of
+ // digits were handled inside the 'ifs':
+ // - 999 + 1 -> 100, exponent++
+ // - 100 - 1 -> 999, exponent--
+ //
+ // - underflow - 'pack' will try to increase exponent by decreasing the
+ // significand.
+ // - ADD - in the worst case 'small' was 'leastNonzeroMagnitude'.
+ // Big exponent discrepancy means that even after the rounding toward 0
+ // we are still able to avoid underflow (by a lot).
+ //
+ // let lhs = Decimal32("1000000E\(-101 + 8)")!
+ // let rhs = Decimal32.leastNonzeroMagnitude
+ // let result = lhs.subtracting(rhs, rounding: .towardZero, status: &status)
+ // print(result, status) // 9999999E-94, isInexact
+ //
+ // - FMA
+ // - if 'add' is 'smaller' -> same case as 'add' above.
+ // - if 'mul' is 'smaller' (possibly way out of exponent range, E-9999999)
+ // - if exponent is the same as before rounding -> no underflow.
+ // - if we decreased the exponent - EXPONENT_DECREASE_SPECIAL_CASE.
+ //
+ // let lhs = Decimal32("-1000000E-101")!
+ // let result = lhs.addingProduct(
+ // .leastNonzeroMagnitude, // 1E-101
+ // .leastNonzeroMagnitude, // 1E-101
+ // rounding: .towardZero,
+ // status: &status
+ // )
+ //
+ // The result after the 1st rounding is: 9999999E-102
+ // This is underflow: -102 < -101, we need to remove the last 9:
+ //
+ // Rounding |Positive |Negative |Status
+ // up |1000000E-101| -999999E-101|underflow, inexact
+ // down | 999999E-101|-1000000E-101|underflow, inexact
+ // towardZero | 999999E-101| -999999E-101|underflow, inexact
+ // toNearestOrEven |1000000E-101|-1000000E-101|underflow, inexact
+ // toNearestOrAwayFromZero|1000000E-101|-1000000E-101|underflow, inexact
+ if exponent < Self.minSignedExponent {
+ // (FMA only)
+ // Underflow, the last '9' will be used for rounding -> always away.
+ assert(significand == Self.maxDecimalDigits)
+ } else {
+ // It was quantized before rounding, it should stay this way.
+ Self._assertQuantizedToAllDecimalDigits(
+ significand: significand,
+ signedExponent: exponent
+ )
+ }
+#endif
+
+ return Self._pack(
+ sign: sign,
+ significand: significand,
+ signedExponent: exponent,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ status: &status
+ )
+ }
+}
diff --git a/Sources/Decimal/Decimal+BinaryFloatingPoint.swift b/Sources/Decimal/Decimal+BinaryFloatingPoint.swift
new file mode 100644
index 0000000..f5b58c7
--- /dev/null
+++ b/Sources/Decimal/Decimal+BinaryFloatingPoint.swift
@@ -0,0 +1,998 @@
+// swiftlint:disable empty_count
+
+// MARK: - BinaryFloatingPoint
+
+extension BinaryFloatingPoint {
+ fileprivate static var exponentBias: Int { (1 << (Self.exponentBitCount - 1)) - 1 }
+
+ // Swift binary floating point conforms to IEEE-754 2008, which means that
+ // the highest 'significand' bit designates 'signaling' or not.
+ // Remaining bits are the payload.
+ // In IEEE-754 1985 it was 'left to the implementor’s discretion'.
+ fileprivate static var nanPayloadWidth: Int { Self.significandBitCount - 1 }
+ fileprivate static var nanPayloadMask: Self.RawSignificand { (1 << Self.nanPayloadWidth) - 1 }
+}
+
+// MARK: - UInt384
+
+/// Result of reciprocal multiplication.
+private struct UInt384 {
+
+ fileprivate typealias Word = UInt128.Word
+
+ fileprivate private(set) var high: UInt128
+ fileprivate private(set) var low: UInt256
+
+ fileprivate var w0: Word { self.high.w0 }
+ fileprivate var w1: Word { self.high.w1 }
+ fileprivate var w2: Word { self.low.w0 }
+
+ fileprivate init(multiplying lhs: UInt128, by rhs: UInt256) {
+ assert(Word.bitWidth == UInt256.Word.bitWidth)
+ (self.high, self.low) = rhs.multipliedFullWidth(by: lhs)
+ }
+
+ fileprivate mutating func multiplyBy10() {
+ let (lowCarry, low) = self.low.multipliedFullWidth(by: 10 as UInt128)
+ let (highCarry, partialHigh) = self.high.multipliedFullWidth(by: 10 as UInt64)
+ assert(highCarry == 0)
+ let (high, overflow) = partialHigh.addingReportingOverflow(lowCarry)
+ assert(!overflow)
+
+ self.low = low
+ self.high = high
+ }
+
+ fileprivate static func <<= (n: inout Self, count: Int) {
+ assert(0 <= count && count <= Word.bitWidth)
+
+ if count != 0 {
+ let rhsCount = Word.bitWidth - count
+ n.high.w0 = (n.high.w0 << count) | (n.high.w1 &>> rhsCount)
+ n.high.w1 = (n.high.w1 << count) | (n.low.w0 &>> rhsCount)
+ n.low.w0 = (n.low.w0 << count) | (n.low.w1 &>> rhsCount)
+ n.low.w1 = (n.low.w1 << count) | (n.low.w2 &>> rhsCount)
+ n.low.w2 = (n.low.w2 << count) | (n.low.w3 &>> rhsCount)
+ n.low.w3 = (n.low.w3 << count)
+ }
+ }
+
+ fileprivate static func >>= (n: inout Self, count: Int) {
+ assert(0 <= count && count <= Word.bitWidth)
+
+ if count != 0 {
+ let lhsCount = Word.bitWidth - count
+ n.low.w3 = (n.low.w2 << lhsCount) | (n.low.w3 >> count)
+ n.low.w2 = (n.low.w1 << lhsCount) | (n.low.w2 >> count)
+ n.low.w1 = (n.low.w0 << lhsCount) | (n.low.w1 >> count)
+ n.low.w0 = (n.high.w1 << lhsCount) | (n.low.w0 >> count)
+ n.high.w1 = (n.high.w0 << lhsCount) | (n.high.w1 >> count)
+ n.high.w0 = n.high.w0 >> count
+ }
+ }
+}
+
+// MARK: - Roundbound
+
+/// Get 'halfway' rounding digits.
+private func getRoundbound(
+ isNegative: Bool,
+ isSignificandOdd: Bool,
+ rounding: DecimalFloatingPointRoundingRule
+) -> UInt128 {
+ let rnd_mode: Int
+ switch rounding {
+ case .toNearestOrEven: rnd_mode = 0
+ case .down: rnd_mode = 1
+ case .up: rnd_mode = 2
+ case .towardZero: rnd_mode = 3
+ case .toNearestOrAwayFromZero: rnd_mode = 4
+ }
+
+ let s = isNegative ? 1 : 0
+ let index = (rnd_mode << 2) + ((s & 1) << 1) + (isSignificandOdd ? 1 : 0)
+ return BinaryFloatingPointTables.bid_roundbound_128[index]
+}
+
+// MARK: - BinaryToDecimal
+
+/// Logic for the `BinaryFloatingPoint` -> `Decimal` conversion.
+/// `Decimal32` and `Decimal64` logic is the same, but `Decimal128` is different.
+private protocol BinaryToDecimal: DecimalMixin {
+
+ /// Look for the following comment: "(312 is the shift value for these tables)".
+ static var reciprocalShift: Int { get }
+ /// Is the value trivially greater than `9.99… * 10^emax`?
+ ///
+ /// ```
+ /// 2^e * 2^112 > 10^emax * 10^d
+ /// e >= ceil((emax + d) * log_2(10) - 112) = maxExponent
+ /// ```
+ static var maxExponent: Int { get }
+ /// `BinaryFloatingPointTables.bid_coefflimits_bidXX`
+ static var bid_coefflimits: [UInt128] { get }
+
+ /// Multiply binary significand by reciprocal to get the decimal exponent,
+ /// significand and rounding digits.
+ static func _multiplyByReciprocal(
+ binaryExponent e: Int,
+ binarySignificandPackedToImplicitBit c: UInt128
+ ) -> ReciprocalMultiplyResult
+}
+
+extension BinaryToDecimal {
+
+ fileprivate typealias ReciprocalMultiplyResult = (
+ e_out: Int,
+ c_prov: BID,
+ roundingDigits: UInt128
+ )
+
+ /// `Private` because the existence of this protocol in an implementation detail.
+ fileprivate static func _initFromFloat(
+ _ d: T,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self where T.RawSignificand: FixedWidthInteger {
+ if d.isNaN {
+ return Self._fromFloatNaN(d, status: &status)
+ }
+
+ let sign: Sign = d.sign == .minus ? .minus : .plus
+
+ if d.isInfinite {
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ if d.isZero {
+ // ±0E0
+ let e = BID(Self.exponentBias)
+ return Self(canonical: sign | e << Self.exponentShift_00_01_10)
+ }
+
+ // =========================================================================
+ // Intel code starts here.
+ // Minor changes were made mostly to replace hard-coded values with names
+ // for readability. Comments are taken from 'binary64_to_bid64'.
+ // See the original Intel code for more details.
+ // =========================================================================
+
+ // We want this representation: d = c0 * 2^e
+ // Where 'c0' contains the implicit '1'.
+ var e: Int
+ var c0 = d.significandBitPattern
+ var t: Int
+
+ if d.isNormal {
+ // Pretend that this is binary:
+ // - input = 1.234E10
+ // - signed exponent = 10
+ // - significand fraction bits = 234
+ // - significand with implicit 1 = 1.234
+ // - output: 1234E(10-3) = 1234E7
+
+ // Add implicit 1 to fractional significand.
+ c0 |= 1 << T.significandBitCount
+ // signedExponent = d.exponentBitPattern - T.exponentBias
+ e = Int(d.exponentBitPattern) - T.exponentBias - T.significandBitCount
+ t = c0.trailingZeroBitCount
+ } else {
+ status.set(.isBinaryFloatingPointSubnormal)
+ assert(d.exponentBitPattern == 0)
+
+ // Pretend that this is binary:
+ // - T.significandBitCount = 4
+ // - T.rawSignificandBitWidth = 4
+ // - input = 0.0123 with exponentBitPattern = 0
+ // - significand fraction bits = 0123
+ // - l = 1 - (4-3-1) = 1 - 0 = 1
+ // - signed exponent = -4
+ // - output: 123E(-4-1+1) = 123E-4
+ //
+ // Btw. '0.123E0', is also subnormal, but is is much easier -> worse example.
+
+ // l = number of 0 bits from the start of the significand.
+ // -1 is because we want to fill the implicit bit.
+ //
+ // Example for Float:
+ // l = LZ - (rawSignificandBitWidth - significandBitCount - 1)
+ // = LZ - (32 - 23 - 1)
+ // = LZ - 8
+ //
+ // xx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx - RawSignificand (32 x)
+ // isss sssss sssss sssss sssss - full significand (23 s, 1 implicit)
+ // BBBBB BBBBB BBBBB BBBBB - example (12 leading zeros, 20 bits)
+ // BBBB BBBBB BBBBB BBBBB B - result (l = 12-(32-23-1) = 12-8 = 4)
+ //
+ // Btw. The following line also works on 'FLoat80' (which is not an obvious thing).
+ let l = c0.leadingZeroBitCount - (T.RawSignificand.bitWidth - T.significandBitCount - 1)
+ // Shift subnormal significand to the significand high bits (including implicit).
+ c0 <<= l
+ // signedExponent = 0 - T.exponentBias = -T.exponentBias
+ e = -T.exponentBias - T.significandBitCount - l + 1
+ t = 0
+ }
+
+ // [Comment from binary64_to_bid64]
+ // Now -1126<=e<=971
+ // 971 for max normal
+ // -1074 for min normal
+ // -1126 for min subnormal
+
+ // [Comment from binary64_to_bid64]
+ // Treat like a quad input for uniformity, so (2^{113-53} * c * r) >> 312
+ // (312 is the shift value for these tables) which can be written as
+ // (2^68 c * r) >> 320, lopping off exactly 320 bits = 5 words. Thus we put
+ // input coefficient as the high part of c (<<64) shifted by 4 bits (<<68)
+ //
+ // Remember to compensate for the fact that exponents are integer for quad
+
+ // 320 because after the reciprocal multiplication we will have UInt320.
+ let align320 = 320 - Self.reciprocalShift
+ let significandBitCountWithImplicit1 = T.significandBitCount + 1
+
+ assert(T.RawSignificand.bitWidth <= UInt64.bitWidth, "What floating point is this?")
+ var c = UInt128(high: 0, low: UInt64(truncatingIfNeeded: c0))
+ let shift = 113 - significandBitCountWithImplicit1 + align320
+ c <<= shift
+
+ t += (113 - significandBitCountWithImplicit1)
+ e -= (113 - significandBitCountWithImplicit1) // Now e belongs [-1186;911].
+
+ // [Comment from binary64_to_bid64]
+ // Check for "trivial" overflow, when 2^e * 2^112 > 10^emax * 10^d.
+ // We actually check if e >= ceil((emax + d) * log_2(10) - 112)
+ // This could be intercepted later, but it's convenient to keep tables smaller
+ if e >= Self.maxExponent {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(sign: sign, rounding: rounding)
+ }
+
+ // [Comment from binary64_to_bid64]
+ // Now filter out all the exact cases where we need to specially force
+ // the exponent to 0. We can let through inexact cases and those where the
+ // main path will do the right thing anyway, e.g. integers outside coeff range.
+ //
+ // First check that e <= 0, because if e > 0, the input must be >= 2^113,
+ // which is too large for the coefficient of any target decimal format.
+ // We write a = -(e + t)
+ //
+ // (1) If e + t >= 0 <=> a <= 0 the input is an integer; treat it specially
+ // iff it fits in the coefficient range. Shift c' = c >> -e, and
+ // compare with the coefficient range; if it's in range then c' is
+ // our coefficient, exponent is 0. Otherwise we pass through.
+ //
+ // (2) If a > 0 then we have a non-integer input. The special case would
+ // arise as c' / 2^a where c' = c >> t, i.e. 10^-a * (5^a c'). Now
+ // if a > 48 we can immediately forget this, since 5^49 > 10^34.
+ // Otherwise we determine whether we're in range by a table based on
+ // a, and if so get the multiplier also from a table based on a.
+ //
+ // Note that when we shift, we need to take into account the fact that
+ // c is already 8 places to the left in preparation for the reciprocal
+ // multiplication; thus we add 8 to all the shift counts
+ if e <= 0 {
+ assert(Self.maxDecimalDigits <= UInt128.max)
+ let maxDecimalDigits = UInt128(truncatingIfNeeded: Self.maxDecimalDigits)
+ let a = -(e + t)
+
+ if a <= 0 {
+ let cint = c >> (align320 - e)
+
+ if cint <= maxDecimalDigits {
+ let s = BID(truncatingIfNeeded: cint)
+ return Self._packWithoutChecks(sign: sign, significand: s, signedExponent: 0)
+ }
+ } else if a <= 48 {
+ let pow5 = Self.bid_coefflimits[a]
+ let cint = c >> (align320 + t)
+
+ if cint <= pow5 {
+ let pow5 = BinaryFloatingPointTables.bid_power_five[a]
+ let (cc, overflow) = cint.multipliedReportingOverflow(by: pow5)
+ assert(!overflow)
+ assert(cc <= maxDecimalDigits)
+
+ let s = BID(truncatingIfNeeded: cc)
+ return Self._packWithoutChecks(sign: sign, significand: s, signedExponent: -a)
+ }
+ }
+ }
+
+ var (e_out, c_prov, roundingDigits) = Self._multiplyByReciprocal(
+ binaryExponent: e,
+ binarySignificandPackedToImplicitBit: c
+ )
+
+ // [Comment from binary64_to_bid64]
+ // Test inexactness and underflow
+ if roundingDigits != 0 {
+ status.set(.isInexact)
+
+ if c_prov < (Self.maxDecimalDigits + 1) / 10 {
+ status.set(.isUnderflow)
+ }
+ }
+
+ // [Comment from binary64_to_bid64]
+ // Round using round-sticky words
+ // If we spill over into the next decade, correct
+ let roundbound = getRoundbound(
+ isNegative: sign.isMinus,
+ isSignificandOdd: c_prov.isOdd,
+ rounding: rounding
+ )
+
+ if roundingDigits > roundbound {
+ c_prov += 1
+
+ // Make it canonical if needed.
+ if c_prov == Self.maxDecimalDigits + 1 {
+ c_prov /= 10
+ e_out += 1
+ }
+ }
+
+ // [Comment from binary64_to_bid64]
+ // Check for overflow
+ let maxBiasedExponent = Self._addBias(exponent: Self.maxSignedExponent)
+
+ if e_out > maxBiasedExponent {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(sign: sign, rounding: rounding)
+ }
+
+ assert(0 <= e_out && e_out <= (1 << Self.exponentWidth))
+ let biasedExponent = BID(e_out)
+
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: c_prov,
+ biasedExponent: biasedExponent
+ )
+ }
+
+ private static func _fromFloatNaN(
+ _ d: T,
+ status: inout DecimalStatus
+ ) -> Self {
+ if d.isSignalingNaN {
+ status.set(.isInvalidOperation)
+ }
+
+ let nonCanonicalPayload: BID
+ let binaryPayloadWidth = T.nanPayloadWidth
+ let binaryPayload = d.significandBitPattern & T.nanPayloadMask
+
+ if binaryPayloadWidth <= Self.nanPayloadWidth {
+ // Decimal payload is wider: cast to BID, and then shift to high bits.
+ // For example: Double to Decimal128.
+ let shift = Self.nanPayloadWidth - binaryPayloadWidth
+ nonCanonicalPayload = BID(truncatingIfNeeded: binaryPayload) << shift
+ } else {
+ // Decimal payload is shorter: shift to fit, and then cast to BID.
+ // For example: Double to Decimal32, Decimal64.
+ let shift = binaryPayloadWidth - Self.nanPayloadWidth
+ nonCanonicalPayload = BID(truncatingIfNeeded: binaryPayload >> shift)
+ }
+
+ let sign: BID = d.sign == .minus ? Self.signMask : 0
+ let payload = nonCanonicalPayload <= Self.nanPayloadCanonicalMax ?
+ nonCanonicalPayload :
+ 0
+
+ return Self(canonical: sign | Self.nanQuietMask | payload)
+ }
+
+ /// Shared code for `Self._multiplyByReciprocal` for `Decimal32` and `Decimal64`.
+ ///
+ /// # minExponent
+ /// Is the value trivially less than than `0.25 * 10^emin`?
+ ///
+ /// ```
+ /// 2^e * 2^113 <= 10^emin * 1/4
+ /// e <= floor(emin * log_2(10) - 115) = minExponent
+ /// ```
+ ///
+ /// # Tables
+ ///
+ /// ```
+ /// BinaryFloatingPointTables.bid_breakpoints_bidXX
+ /// BinaryFloatingPointTables.bid_exponents_bidXX
+ /// BinaryFloatingPointTables.bid_multipliers1_bidXX
+ /// BinaryFloatingPointTables.bid_multipliers2_bidXX
+ /// ```
+ fileprivate static func _fromFloatMultiplyByReciprocal_decimal32_decimal64(
+ binaryExponent e: Int,
+ binarySignificandPackedToImplicitBit c: UInt128,
+ minExponent: Int,
+ bid_breakpoints: (Int) -> UInt128,
+ bid_exponents: (Int) -> Int,
+ bid_multipliers1: (Int) -> UInt256,
+ bid_multipliers2: (Int) -> UInt256
+ ) -> ReciprocalMultiplyResult {
+ // [Comment from binary64_to_bid64]
+ // Check for "trivial" underflow, when 2^e * 2^113 <= 10^emin * 1/4,
+ // so test e <= floor(emin * log_2(10) - 115)
+ // In this case just fix ourselves at that value for uniformity.
+ //
+ // This is important not only to keep the tables small but to maintain the
+ // testing of the round/sticky words as a correct rounding method
+ let e = Swift.max(e, minExponent)
+
+ // 'Self.minExponent' is negative, so we have to subtract.
+ assert(minExponent < 0)
+ let index = e - minExponent
+
+ // [Comment from binary64_to_bid64]
+ // Now look up our exponent e, and the breakpoint between e and e+1
+ let m_min = bid_breakpoints(index)
+ var e_out = bid_exponents(index)
+
+ // [Comment from binary64_to_bid64]
+ // Choose exponent and reciprocal multiplier based on breakpoint
+ let r: UInt256
+
+ if c <= m_min {
+ r = bid_multipliers1(index)
+ } else {
+ r = bid_multipliers2(index)
+ e_out += 1
+ }
+
+ // [Comment from binary64_to_bid64]
+ // Do the reciprocal multiplication
+ let z = UInt384(multiplying: c, by: r)
+
+ let z5 = z.w0
+ assert(z5 <= Self.maxDecimalDigits)
+ let c_prov = BID(truncatingIfNeeded: z5)
+
+ let z4 = z.w1
+ let z3 = z.w2
+ let roundingDigits = UInt128(z4, z3)
+
+ return ReciprocalMultiplyResult(
+ e_out: e_out,
+ c_prov: c_prov,
+ roundingDigits: roundingDigits
+ )
+ }
+}
+
+// MARK: - Float to Decimal32
+
+extension Decimal32: BinaryToDecimal {
+
+ // We do not want to expose our private protocol (because it is an
+ // implementation detail), so we need to re-export `init`.
+ internal static func _init(
+ _ d: T,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self where T.RawSignificand: FixedWidthInteger {
+ return Self._initFromFloat(d, rounding: rounding, status: &status)
+ }
+
+ fileprivate static let reciprocalShift = 320
+ fileprivate static let maxExponent = 211
+ fileprivate static let bid_coefflimits = BinaryFloatingPointTables.bid_coefflimits_bid32
+
+ fileprivate static func _multiplyByReciprocal(
+ binaryExponent e: Int,
+ binarySignificandPackedToImplicitBit c: UInt128
+ ) -> ReciprocalMultiplyResult {
+ return Self._fromFloatMultiplyByReciprocal_decimal32_decimal64(
+ binaryExponent: e,
+ binarySignificandPackedToImplicitBit: c,
+ minExponent: -450,
+ bid_breakpoints: BinaryFloatingPointTables.bid_breakpoints_bid32,
+ bid_exponents: BinaryFloatingPointTables.bid_exponents_bid32,
+ bid_multipliers1: BinaryFloatingPointTables.bid_multipliers1_bid32,
+ bid_multipliers2: BinaryFloatingPointTables.bid_multipliers2_bid32
+ )
+ }
+}
+
+// MARK: - Float to Decimal64
+
+extension Decimal64: BinaryToDecimal {
+
+ // We do not want to expose our private protocol (because it is an
+ // implementation detail), so we need to re-export `init`.
+ internal static func _init(
+ _ d: T,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self where T.RawSignificand: FixedWidthInteger {
+ return Self._initFromFloat(d, rounding: rounding, status: &status)
+ }
+
+ fileprivate static let reciprocalShift = 312
+ fileprivate static let maxExponent = 1168
+ fileprivate static let bid_coefflimits = BinaryFloatingPointTables.bid_coefflimits_bid64
+
+ fileprivate static func _multiplyByReciprocal(
+ binaryExponent e: Int,
+ binarySignificandPackedToImplicitBit c: UInt128
+ ) -> ReciprocalMultiplyResult {
+ return Self._fromFloatMultiplyByReciprocal_decimal32_decimal64(
+ binaryExponent: e,
+ binarySignificandPackedToImplicitBit: c,
+ minExponent: -1437,
+ bid_breakpoints: BinaryFloatingPointTables.bid_breakpoints_bid64,
+ bid_exponents: BinaryFloatingPointTables.bid_exponents_bid64,
+ bid_multipliers1: BinaryFloatingPointTables.bid_multipliers1_bid64,
+ bid_multipliers2: BinaryFloatingPointTables.bid_multipliers2_bid64
+ )
+ }
+}
+
+// MARK: - Float to Decimal128
+
+extension Decimal128: BinaryToDecimal {
+
+ // We do not want to expose our private protocol (because it is an
+ // implementation detail), so we need to re-export `init`.
+ internal static func _init(
+ _ d: T,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self where T.RawSignificand: FixedWidthInteger {
+ return Self._initFromFloat(d, rounding: rounding, status: &status)
+ }
+
+ fileprivate static let reciprocalShift = 305
+ // No overflow possible.
+ fileprivate static let maxExponent = Int.max
+ fileprivate static let bid_coefflimits = BinaryFloatingPointTables.bid_coefflimits_bid128
+
+ fileprivate static func _multiplyByReciprocal(
+ binaryExponent e: Int,
+ binarySignificandPackedToImplicitBit c: UInt128
+ ) -> ReciprocalMultiplyResult {
+ // [Comment from binary80_to_bid128]
+ // Input exponent can stretch between the maximal and minimal
+ // exponents (remembering we force normalization): -16607 <= e <= 16271
+
+ // [Comment from binary80_to_bid128]
+ // Compute the estimated decimal exponent e_out; the provisional exponent
+ // will be either "e_out" or "e_out-1" depending on later significand check
+ // NB: this is the *biased* exponent
+ var e = e
+ let e_plus = e + 42152
+ var e_out = (((19728 * e_plus) + ((19779 * e_plus) >> 16)) >> 16) - 6512
+
+ // [Comment from binary80_to_bid128]
+ // Set up pointers into the bipartite table
+ var e_hi = 11232 - e_out
+ let e_lo = e_hi & 127
+ e_hi = e_hi >> 7
+
+ // [Comment from binary80_to_bid128]
+ // Look up the inner entry first
+ var r = BinaryFloatingPointTables.bid_innertable_sig(e_lo)
+ var f = BinaryFloatingPointTables.bid_innertable_exp(e_lo)
+
+ // [Comment from binary80_to_bid128]
+ // If we need the other entry, multiply significands and add exponents
+ if e_hi != 39 {
+ let s_prime = BinaryFloatingPointTables.bid_outertable_sig(e_hi)
+ f += 256 + BinaryFloatingPointTables.bid_outertable_exp(e_hi)
+ let (t_prime, _) = r.multipliedFullWidth(by: s_prime)
+ r = t_prime + 1
+ }
+
+ var z = UInt384(multiplying: c, by: r)
+
+ // [Comment from binary80_to_bid128]
+ // Make adjustive shift, ignoring the lower 128 bits
+ e = -(241 + Int(e) + Int(f))
+ z >>= e
+
+ // [Comment from binary80_to_bid128]
+ // Now test against 10^33 and so decide on adjustment
+ // I feel there ought to be a smarter way of doing the multiplication
+ if z.high < (Decimal128.maxDecimalDigits + 1) / 10 {
+ z.multiplyBy10()
+ e_out -= 1
+ }
+
+ assert(z.high <= Self.maxDecimalDigits)
+ let c_prov = BID(truncatingIfNeeded: z.high)
+
+ let z3 = z.low.w0
+ let z2 = z.low.w1
+ let roundingDigits = UInt128(z3, z2)
+
+ return ReciprocalMultiplyResult(
+ e_out: e_out,
+ c_prov: c_prov,
+ roundingDigits: roundingDigits
+ )
+ }
+}
+
+// MARK: - DecimalToBinary
+
+internal protocol DecimalToBinary: BinaryFloatingPoint {
+
+ /// [Decimal -> binary floating point]
+ /// Smaller exponent is rounded to this exponent.
+ static var minExponent: Int { get }
+ /// [Decimal -> binary floating point]
+ /// Greater equal exponent returns rounded infinity.
+ static var maxExponent: Int { get }
+
+ /// [Decimal -> binary floating point]
+ /// Float: 0; Double: 6; Float80: 10
+ static var reciprocalShift: Int { get }
+ /// [Decimal -> binary floating point]
+ /// Float: 0; Double: 0; Float80: 47
+ static var afterReciprocalMultiplicationShift: Int { get }
+
+ /// [Decimal -> binary floating point]
+ /// BinaryFloatingPointTables.bid_breakpoints_binaryXX
+ static var bid_breakpoints_binary: (Int) -> UInt128 { get }
+ /// [Decimal -> binary floating point]
+ /// BinaryFloatingPointTables.bid_exponents_binaryXX
+ static var bid_exponents_binary: (Int) -> Int { get }
+ /// [Decimal -> binary floating point]
+ /// BinaryFloatingPointTables.bid_multipliers1_binaryXX
+ static var bid_multipliers1_binary: (Int) -> UInt256 { get }
+ /// [Decimal -> binary floating point]
+ /// BinaryFloatingPointTables.bid_multipliers2_binaryXX
+ static var bid_multipliers2_binary: (Int) -> UInt256 { get }
+}
+
+extension DecimalToBinary {
+
+ internal static func _initFromDecimal(
+ _ d: Decimal32,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._initFromDecimal(
+ d,
+ kUnpackModifier: 8,
+ alignShift: 89,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ internal static func _initFromDecimal(
+ _ d: Decimal64,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._initFromDecimal(
+ d,
+ kUnpackModifier: 10,
+ alignShift: 59,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ internal static func _initFromDecimal(
+ _ d: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._initFromDecimal(
+ d,
+ kUnpackModifier: 15,
+ alignShift: 0,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ /// `Private` because the existence of this protocol in an implementation detail.
+ private static func _initFromDecimal(
+ _ d: T,
+ kUnpackModifier: Int,
+ alignShift: Int,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ let isNegative = d._isNegative
+
+ if d._isNaN {
+ return Self._fromDecimalNaN(d, status: &status)
+ }
+
+ if d._isInfinite {
+ return isNegative ? -Self.infinity : Self.infinity
+ }
+
+ let unpack = d._unpackFiniteOrZero()
+
+ if unpack.significand.isZero {
+ return isNegative ? -Self.zero : Self.zero
+ }
+
+ // =========================================================================
+ // Intel code starts here.
+ // Minor changes were made mostly to replace hard-coded values with names
+ // for readability. Comments are taken from 'binary64_to_bid64'.
+ // See the original Intel code for more details.
+ // =========================================================================
+
+ var e = unpack.exponent.signed
+ var c0 = unpack.significand.canonical
+ var k = d._isSet(T.combinationHighBits11Mask) ? 0 : c0.leadingZeroBitCount - kUnpackModifier
+ c0 <<= k
+
+ // [Comment from bid64_to_binary64]
+ // Correct to 2^112 <= c < 2^113 with corresponding exponent adding 113-54=59
+ // In fact shift a further 6 places ready for reciprocal multiplication
+ // Thus (113-54)+6=65, a shift of 1 given that we've already upacked in c.w[1]
+ assert(T.bitWidth <= UInt128.bitWidth, "What decimal is this?")
+ var c = UInt128(truncatingIfNeeded: c0)
+ let shift = alignShift + Self.reciprocalShift
+ c <<= shift
+ k += alignShift
+
+ // [Comment from bid64_to_binary64]
+ // Check for "trivial" overflow, when 10^e * 1 > 2^{sci_emax+1}, just to
+ // keep tables smaller (it would be intercepted later otherwise).
+ //
+ // (Note that we may have normalized the coefficient, but we have a
+ // corresponding exponent postcorrection to account for; this can
+ // afford to be conservative anyway.)
+ //
+ // We actually check if e >= ceil((sci_emax + 1) * log_10(2))
+ // which in this case is 2 >= ceil(1024 * log_10(2)) = ceil(308.25) = 309
+ if e >= Self.maxExponent {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(isNegative: isNegative, rounding: rounding)
+ }
+
+ // [Comment from bid64_to_binary64]
+ // Also check for "trivial" underflow, when 10^e * 2^113 <= 2^emin * 1/4,
+ // so test e <= floor((emin - 115) * log_10(2))
+ // In this case just fix ourselves at that value for uniformity.
+ //
+ // This is important not only to keep the tables small but to maintain the
+ // testing of the round/sticky words as a correct rounding method
+ e = Swift.max(e, Self.minExponent)
+
+ // 'Self.minExponent' is negative, so we have to subtract.
+ assert(Self.minExponent < 0)
+ let index = e - Self.minExponent
+
+ // [Comment from bid64_to_binary64]
+ // Look up the breakpoint and approximate exponent
+ let m_min = Self.bid_breakpoints_binary(index)
+ let e_outTable = Self.bid_exponents_binary(index)
+ var e_out = e_outTable - k
+
+ // [Comment from bid64_to_binary64]
+ // Choose provisional exponent and reciprocal multiplier based on breakpoint
+ let r: UInt256
+
+ if c <= m_min {
+ r = Self.bid_multipliers1_binary(index)
+ } else {
+ r = Self.bid_multipliers2_binary(index)
+ e_out += 1
+ }
+
+ // [Comment from bid64_to_binary64]
+ // Do the reciprocal multiplication
+ var z = UInt384(multiplying: c, by: r)
+
+ // This is for Float80:
+ // Intel does shift right by 47, we will do shift left by 64-47=17.
+ // This way we will end up wit the same code as for other types.
+ // We could have done it before reciprocal multiplication, but then we
+ // would have to shift 'm_min' anyway.
+ z <<= Self.afterReciprocalMultiplicationShift
+
+ // [Comment from bid64_to_binary64]
+ // Check for exponent underflow and compensate by shifting the product
+ // Cut off the process at precision+2, since we can't really shift further
+ if e_out < 1 {
+ // 3 because = implicit bit + 2
+ var d = Swift.min(1 - e_out, Self.significandBitCount + 3)
+
+ if d >= UInt384.Word.bitWidth {
+ d -= UInt384.Word.bitWidth
+ z >>= UInt384.Word.bitWidth
+ }
+
+ e_out = 1
+
+ if d > 0 {
+ z >>= d
+ }
+ }
+
+ let z5 = z.w0
+ var c_prov = z5
+ let implicitBit: UInt128.Word = 1 << Self.significandBitCount
+
+ // [Comment from bid64_to_binary64]
+ // Round using round-sticky words
+ // If we spill into the next binade, correct
+ // Flag underflow where it may be needed even for |result| = SNN
+ let roundbound = getRoundbound(
+ isNegative: isNegative,
+ isSignificandOdd: c_prov.isOdd,
+ rounding: rounding
+ )
+
+ let z4 = z.w1
+ let z3 = z.w2
+ let roundingDigits = UInt128(high: z4, low: z3)
+
+ if roundingDigits > roundbound {
+ // 'Float80' uses 'UInt64' which can overflow.
+ let add = c_prov.addingReportingOverflow(1)
+ c_prov = add.partialValue
+
+ // Did the addition overflow the significand?
+ if add.overflow || c_prov == (implicitBit << 1) {
+ c_prov = implicitBit
+ e_out += 1
+ } else if c_prov == implicitBit && e_out == 1 {
+ // TODO: [Decimal -> binary, underflow] Minor differences from Intel
+ let hasUnderflow: Bool
+
+ // 0 000 toNearestOrEven
+ // 1 001 down
+ // 2 010 up
+ // 3 011 toward zero
+ // 4 100 toNearestTiesAway
+ switch rounding {
+ case .up: hasUnderflow = !isNegative && z4 < (1 << 63)
+ case .down: hasUnderflow = isNegative && z4 < (1 << 63)
+ case .towardZero: hasUnderflow = false
+ case .toNearestOrEven, .toNearestOrAwayFromZero: hasUnderflow = z4 < (3 << 62)
+ }
+
+ if hasUnderflow {
+ status.set(.isUnderflow)
+ }
+ }
+ }
+
+ // [Comment from bid64_to_binary64]
+ // Check for overflow
+ let fullExponent = (1 << Self.exponentBitCount) - 1
+
+ if e_out >= fullExponent {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(isNegative: isNegative, rounding: rounding)
+ }
+
+ // [Comment from bid64_to_binary64]
+ // Modify exponent for a tiny result, otherwise lop the implicit bit
+ if c_prov < implicitBit {
+ e_out = 0
+ } else {
+ c_prov &= implicitBit - 1
+ }
+
+ // [Comment from bid64_to_binary64]
+ // Set the inexact and underflow flag as appropriate
+ if roundingDigits != 0 {
+ status.set(.isInexact)
+
+ if e_out == 0 {
+ status.set(.isUnderflow)
+ }
+ }
+
+ let exponentBitPattern = RawExponent(truncatingIfNeeded: e_out)
+ let significandBitPattern = RawSignificand(truncatingIfNeeded: c_prov)
+
+ return Self(
+ sign: isNegative ? .minus : .plus,
+ exponentBitPattern: exponentBitPattern,
+ significandBitPattern: significandBitPattern
+ )
+ }
+
+ private static func _fromDecimalNaN(
+ _ d: T,
+ status: inout DecimalStatus
+ ) -> Self {
+ if d._isSignalingNaN {
+ status.set(.isInvalidOperation)
+ }
+
+ let payload: RawSignificand
+ let decimalUnpack = d._unpackNaN()
+ let decimalPayload = decimalUnpack.canonical
+ let decimalPayloadWidth = T.nanPayloadWidth
+
+ if decimalPayloadWidth <= Self.nanPayloadWidth {
+ // Decimal payload is wider: shift to fit in narrower binary payload.
+ // For example: Decimal128 to Double.
+ let shift = Self.nanPayloadWidth - decimalPayloadWidth
+ payload = RawSignificand(truncatingIfNeeded: decimalPayload >> shift)
+ } else {
+ // Decimal payload is shorter: shift to fill high bits in wider binary payload.
+ // For example: Decimal32 or Decimal64 to Double.
+ let shift = decimalPayloadWidth - Self.nanPayloadWidth
+ payload = RawSignificand(truncatingIfNeeded: decimalPayload << shift)
+ }
+
+ let highPayload: RawSignificand = 1 << (Self.significandBitCount - 1)
+ let significandBitPattern = highPayload | payload
+
+ return Self(
+ sign: d._isNegative ? .minus : .plus,
+ exponentBitPattern: (1 << Self.exponentBitCount) - 1, // All bits 1
+ significandBitPattern: significandBitPattern
+ )
+ }
+
+ private static func _roundInfinitelyBigValue(
+ isNegative: Bool,
+ rounding: DecimalFloatingPointRoundingRule
+ ) -> Self {
+ // Infinity or greatestFiniteMagnitude.
+ let isInfinity: Bool
+
+ switch rounding {
+ case .up: isInfinity = !isNegative
+ case .down: isInfinity = isNegative
+ case .towardZero: isInfinity = false
+ case .toNearestOrEven: isInfinity = true
+ case .toNearestOrAwayFromZero: isInfinity = true
+ }
+
+ let magnitude = isInfinity ? Self.infinity : Self.greatestFiniteMagnitude
+ return isNegative ? -magnitude : magnitude
+ }
+}
+
+// MARK: - Decimal to Float
+
+extension Float: DecimalToBinary {
+ internal static let minExponent = -80
+ internal static let maxExponent = 39
+ internal static let reciprocalShift = 0
+ internal static let afterReciprocalMultiplicationShift = 0
+
+ internal static let bid_breakpoints_binary = BinaryFloatingPointTables.bid_breakpoints_binary32
+ internal static let bid_exponents_binary = BinaryFloatingPointTables.bid_exponents_binary32
+ internal static let bid_multipliers1_binary = BinaryFloatingPointTables.bid_multipliers1_binary32
+ internal static let bid_multipliers2_binary = BinaryFloatingPointTables.bid_multipliers2_binary32
+}
+
+// MARK: - Decimal to Double
+
+extension Double: DecimalToBinary {
+ internal static let minExponent = -358
+ internal static let maxExponent = 309
+ internal static let reciprocalShift = 6
+ internal static let afterReciprocalMultiplicationShift = 0
+
+ internal static let bid_breakpoints_binary = BinaryFloatingPointTables.bid_breakpoints_binary64
+ internal static let bid_exponents_binary = BinaryFloatingPointTables.bid_exponents_binary64
+ internal static let bid_multipliers1_binary = BinaryFloatingPointTables.bid_multipliers1_binary64
+ internal static let bid_multipliers2_binary = BinaryFloatingPointTables.bid_multipliers2_binary64
+}
+
+// MARK: - Decimal to Float80
+
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+extension Float80: DecimalToBinary {
+ internal static let minExponent = -4985
+ internal static let maxExponent = 4933
+ internal static let reciprocalShift = 0
+ internal static let afterReciprocalMultiplicationShift = 17
+
+ internal static let bid_breakpoints_binary = BinaryFloatingPointTables.bid_breakpoints_binary80
+ internal static let bid_exponents_binary = BinaryFloatingPointTables.bid_exponents_binary80
+ internal static let bid_multipliers1_binary = BinaryFloatingPointTables.bid_multipliers1_binary80
+ internal static let bid_multipliers2_binary = BinaryFloatingPointTables.bid_multipliers2_binary80
+}
+
+#endif
diff --git a/Sources/Decimal/Decimal+DecimalFloatingPoint.swift b/Sources/Decimal/Decimal+DecimalFloatingPoint.swift
new file mode 100644
index 0000000..7ff0881
--- /dev/null
+++ b/Sources/Decimal/Decimal+DecimalFloatingPoint.swift
@@ -0,0 +1,103 @@
+extension DecimalMixin {
+
+ // MARK: - From smaller
+
+ /// `Smaller = D.bitWidth < Self.bitWidth`
+ internal static func _init(smaller d: D) -> Self {
+ assert(D.bitWidth < Self.bitWidth)
+
+ let shift = Self.bitWidth - D.bitWidth
+ let bid = BID(truncatingIfNeeded: d.bid)
+ let sign = (bid << shift) & Self.signMask
+
+ if d._isNaN {
+ let nan = d._isSignalingNaN ? Self.nanSignalingMask : Self.nanQuietMask
+ let unpack = d._unpackNaN()
+ let payloadScale = Self.precisionInDigits - D.precisionInDigits
+ let payloadScalePow10: BID = Tables.getPowerOf10(exponent: payloadScale)
+ let payload = BID(truncatingIfNeeded: unpack.canonical) * payloadScalePow10
+ return Self(canonical: sign | nan | payload)
+ }
+
+ if d._isInfinite {
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ let unpack = d._unpackFiniteOrZero()
+ let exponent = BID(truncatingIfNeeded: unpack.exponent.biased)
+ + BID(truncatingIfNeeded: Self.exponentBias)
+ - BID(truncatingIfNeeded: D.exponentBias)
+ let significand = BID(truncatingIfNeeded: unpack.significand.canonical)
+
+ return Self._packWithoutChecks(
+ sign: Sign(bid: sign),
+ significand: significand,
+ biasedExponent: exponent
+ )
+ }
+
+ // MARK: - From bigger
+
+ /// `Bigger = D.bitWidth > Self.bitWidth`
+ internal static func _init(
+ bigger d: D,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ assert(D.bitWidth > Self.bitWidth)
+
+ let shift = D.bitWidth - Self.bitWidth
+ let sign = BID(truncatingIfNeeded: d.bid >> shift) & Self.signMask
+
+ if d._isNaN {
+ let nan = d._isSignalingNaN ? Self.nanSignalingMask : Self.nanQuietMask
+ let unpack = d._unpackNaN()
+ let scale = D.precisionInDigits - Self.precisionInDigits
+ let pow10: D.BID = Tables.getPowerOf10(exponent: scale)
+ let payload = BID(truncatingIfNeeded: unpack.canonical / pow10)
+ return Self(canonical: sign | nan | payload)
+ }
+
+ if d._isInfinite {
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ let unpack = d._unpackFiniteOrZero()
+ var signedExponent = unpack.exponent.signed
+ let significand = unpack.significand.canonical
+
+ // Exact without rounding digits?
+ // No truncation because 'D.bitWidth > Self.bitWidth', so 'Self.maxDecimalDigits'
+ // will trivially fit.
+ let maxDecimalDigits = D.BID(truncatingIfNeeded: Self.maxDecimalDigits)
+
+ if significand <= maxDecimalDigits {
+ let s = BID(truncatingIfNeeded: significand)
+ return Self._pack(
+ sign: Sign(bid: sign),
+ significand: s,
+ signedExponent: signedExponent,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ let digitCount = D._getDecimalDigitCount(significand)
+ let roundingDigitCount = digitCount - Self.precisionInDigits
+ signedExponent += roundingDigitCount
+ assert(roundingDigitCount > 0)
+
+ // This tiny little function allows us to initialize 'Decimal32' directly
+ // from 'Decimal128' without writing the whole 'QuadBID' thingie.
+ // And yes… sometimes I am amazed how brilliant I am. 🐭✨
+ return Self._pack(
+ sign: Sign(bid: sign),
+ significand: significand,
+ signedExponent: signedExponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+}
diff --git a/Sources/Decimal/Decimal+DenselyPackedDecimal.swift b/Sources/Decimal/Decimal+DenselyPackedDecimal.swift
new file mode 100644
index 0000000..02ed345
--- /dev/null
+++ b/Sources/Decimal/Decimal+DenselyPackedDecimal.swift
@@ -0,0 +1,135 @@
+extension DecimalMixin {
+
+ // MARK: - From
+
+ internal static func _init(decimalEncoding dpd: BID) -> Self {
+ let sign = Sign(bid: dpd & Self.signMask)
+
+ // Infinity stays the same
+ if (dpd & Self.nanQuietMask) == Self.infinityMask {
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ Self.assertTrailingSignificandWidth_isMultipleOf10()
+ let groupCount = Self.trailingSignificandWidth / 10 // 50 = 5 groups = 15 digits
+ var significand: BID = 0
+ var significandMultiplier: BID = 1
+
+ for i in 0..> shift) & 0b11_1111_1111
+ let decoded = Tables.dpd(decode: bits)
+ assert(decoded < 1000)
+
+ significand += BID(decoded) * significandMultiplier
+ significandMultiplier *= 1000
+ }
+
+ if (dpd & Self.nanQuietMask) == Self.nanQuietMask {
+ // If the payload is not canonical, then oh well…
+ let nan = dpd & Self.nanSignalingMask
+ let payload = significand
+ return Self(unchecked: sign | nan | payload)
+ }
+
+ // 5 highest combination bits
+ let combination5 = dpd >> (Self.bitWidth - Self.signWidth - 5)
+ let leadingSignificandDigit: BID
+ var leadingExponentBits: BID
+
+ if (combination5 & 0b11000) == 0b11000 {
+ // i) When the most significant five bits of G are 110xx or 1110x:
+ // - leading significand digit d[0] is 8+G[4], a value 8 or 9
+ // - leading biased exponent bits are 2G[2] + G[3], a value 0, 1, or 2
+ leadingSignificandDigit = 8 | (combination5 & 1)
+ leadingExponentBits = (combination5 >> 1) & 0b11
+ } else {
+ // ii) When the most significant five bits of G are 0xxxx or 10xxx:
+ // - leading significand digit d[0] is 4G[2]+2G[3]+G[4],
+ // a value in the range 0 through 7
+ // - leading biased exponent bits are 2G[0]+G[1], a value 0, 1, or 2
+ leadingSignificandDigit = combination5 & 0b111
+ leadingExponentBits = (combination5 >> 3) & 0b11
+ }
+
+ significand += leadingSignificandDigit * significandMultiplier
+ leadingExponentBits <<= Self.exponentWidth - 2
+
+ let trailingExponentMask: BID = (1 << (Self.exponentWidth - 2)) - 1
+ let trailingExponentBits = (dpd >> Self.trailingSignificandWidth) & trailingExponentMask
+
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: significand,
+ biasedExponent: leadingExponentBits | trailingExponentBits
+ )
+ }
+
+ // MARK: - To
+
+ internal func _toDenselyPackedDecimal() -> BID {
+ var result: BID = self.bid & Self.signMask
+
+ if self._isInfinite {
+ return result | Self.infinityMask
+ }
+
+ var significand: BID
+ var exponent: BID
+
+ if self._isNaN {
+ result |= self.bid & Self.nanSignalingMask
+ let payload = self._unpackNaN()
+ significand = payload.canonical
+ exponent = 0
+ } else {
+ let unpack = self._unpackFiniteOrZero()
+ significand = unpack.significand.canonical
+ exponent = unpack.exponent.biased
+ }
+
+ Self.assertTrailingSignificandWidth_isMultipleOf10()
+ let groupCount = Self.trailingSignificandWidth / 10 // 50 = 5 groups = 15 digits
+
+ for i in 0..> (Self.exponentWidth - 2)) & 0b11
+ let trailingExponentMask: BID = (1 << (Self.exponentWidth - 2)) - 1
+ result |= (exponent & trailingExponentMask) << Self.trailingSignificandWidth
+
+ // 5 highest combination bits
+ let combination5: BID
+ assert(significand <= 9)
+
+ if significand >= 8 {
+ // i) When the most significant five bits of G are 110xx or 1110x:
+ // - leading significand digit d[0] is 8+G[4], a value 8 or 9
+ // - leading biased exponent bits are 2G[2] + G[3], a value 0, 1, or 2
+ combination5 = 0b11000 | (leadingExponentBits << 1) | (significand & 1)
+ } else {
+ // ii) When the most significant five bits of G are 0xxxx or 10xxx:
+ // - leading significand digit d[0] is 4G[2]+2G[3]+G[4],
+ // a value in the range 0 through 7
+ // - leading biased exponent bits are 2G[0]+G[1], a value 0, 1, or 2
+ combination5 = (leadingExponentBits << 3) | significand
+ }
+
+ result |= combination5 << (Self.bitWidth - Self.signWidth - 5)
+ return result
+ }
+
+ private static func assertTrailingSignificandWidth_isMultipleOf10() {
+ assert(
+ Self.trailingSignificandWidth.isMultiple(of: 10),
+ "What monstrosity is this?"
+ )
+ }
+}
diff --git a/Sources/Decimal/Decimal+Div.swift b/Sources/Decimal/Decimal+Div.swift
new file mode 100644
index 0000000..7bbb019
--- /dev/null
+++ b/Sources/Decimal/Decimal+Div.swift
@@ -0,0 +1,399 @@
+extension DecimalMixin {
+
+ internal func _divided(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // formatOf-division(source1, source2)
+ //
+ // The operation division(x, y) computes x/y.
+ // The preferred exponent is Q(x) − Q(y).
+ //
+ // 6.1 Infinity arithmetic
+ // Operations on infinite operands are usually exact and therefore signal no
+ // exceptions, including, among others:
+ // ― division(∞, x) or division(x, ∞) for finite x
+ //
+ // The exceptions that do pertain to infinities are signaled only when:
+ // ― ∞ is created from finite operands by overflow (see 7.4) or division
+ // by zero (see 7.3)
+ //
+ // 7.2 Invalid operation
+ // For operations producing results in floating-point format, the default
+ // result of an operation that signals the invalid operation exception shall
+ // be a quiet NaN that should provide some diagnostic information (see 6.2).
+ //
+ // These operations are:
+ // ― division: division(0, 0) or division(∞, ∞)
+ //
+ // 7.3 Division by zero
+ // The divideByZero exception shall be signaled if and only if an exact
+ // infinite result is defined for an operation on finite operands.
+ // The default result of divideByZero shall be an ∞ correctly signed
+ // according to the operation:
+ // ― For division, when the divisor is zero and the dividend is a finite
+ // non-zero number, the sign of the infinity is the exclusive OR of the
+ // operands’ signs (see 6.3).
+
+ if self._isNaN || other._isNaN {
+ return Self._nanResult_viaIEEE754_section62(self, other, status: &status)
+ }
+
+ // inf / inf = ?
+ if self._isInfinite && other._isInfinite {
+ status.set(.isInvalidOperation)
+ return Self._nan
+ }
+
+ let sign = self._sign ^ other._sign
+
+ // inf / ? = inf
+ if self._isInfinite {
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ // 0 / inf = 0
+ // finite / inf = 0
+ if other._isInfinite {
+ return Self(canonical: sign.bid)
+ }
+
+ let lhs = self._unpackFiniteOrZero()
+ let rhs = other._unpackFiniteOrZero()
+
+ // 0 / finite = 0
+ if lhs.significand.isZero {
+ // 0 / 0 = invalid operation
+ if rhs.significand.isZero {
+ status.set(.isInvalidOperation)
+ return Self._nan
+ }
+
+ // The preferred exponent is Q(x) − Q(y).
+ let signedExponent = clamp(
+ lhs.exponent.signed - rhs.exponent.signed,
+ min: Self.minSignedExponent,
+ max: Self.maxSignedExponent
+ )
+
+ let biasedExponent = Self._addBias(exponent: signedExponent)
+ return Self(canonical: sign | biasedExponent << Self.exponentShift_00_01_10)
+ }
+
+ // finite / 0 = inf
+ if rhs.significand.isZero {
+ assert(!lhs.significand.isZero, "0/0 has special rules")
+ status.set(.isDivisionByZero)
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ let lhsSignificand = lhs.significand.canonical
+ let rhsSignificand = rhs.significand.canonical
+
+ // Result 'significand' depends only on the lhs/rhs significands, not on the
+ // exponents. We will borrow digits from 'lhs.exponent' just to calculate
+ // the correct 'significand', and then we will worry about underflow.
+ var quotient: BID
+ var remainder: BID
+ let exponentBorrowedDigitCount: Int
+ var signedExponent = lhs.exponent.signed - rhs.exponent.signed
+
+ if lhsSignificand >= rhsSignificand {
+ // Example for precision = 7:
+ // 1234567E20 / 456E7 = 2707E13 rem 175
+ let (q1, r1) = lhsSignificand.quotientAndRemainder(dividingBy: rhsSignificand)
+
+ // 10E20 / 5E7 = exactly 2E13, no remainder
+ if r1 == 0 {
+ return Self._pack(
+ sign: sign,
+ significand: q1,
+ signedExponent: signedExponent,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // Scale 'q' to 'Self.precisionInDigits' digits.
+ // In our example:
+ // scale = 7-4 = 3
+ // q1Scaled = 2707*1000 = 2 707 000
+ // r1Scaled = 175*1000 = 175 000
+ let digitCount = Self._getDecimalDigitCount(q1)
+ let scale = Self.precisionInDigits - digitCount
+ let scalePow10: BID = Tables.getPowerOf10(exponent: scale)
+
+ let q1Scaled = q1 * scalePow10
+ let r1Scaled = Self._mulSignificands(r1, scalePow10)
+ exponentBorrowedDigitCount = scale
+ signedExponent -= exponentBorrowedDigitCount
+
+ // r1Scaled / rhsSignificand = 175000 / 456 = 383 rem 352
+ // quotient = 383 + 2 707 000 = 2 707 383
+ let (q, r) = r1Scaled.quotientAndRemainder(dividingBy: rhsSignificand)
+ quotient = q1Scaled + q.low
+ remainder = r
+
+#if DEBUG
+ // We will reference 'IMPORTANT-1' later.
+ let __quotientDigitCount = Self._getDecimalDigitCount(quotient)
+ assert(__quotientDigitCount == Self.precisionInDigits, "IMPORTANT-1")
+
+ // Proof:
+ // a) We scaled 'q1' up to the full precision:
+ // q1Scaled = q1 * 10^scale <= Self.maxDecimalDigits
+ assert(q1Scaled <= Self.maxDecimalDigits, "We scaled 'q1' to 'precision'")
+ // b) r1Scaled < rhs*10^scale
+ let __rhsScaled = Self._mulSignificands(rhsSignificand, scalePow10)
+ assert(r1 < rhsSignificand, "remainder < divisor, obviously")
+ assert(r1Scaled < __rhsScaled, "remainder * 10^scale < rhs * 10^scale")
+ // c) From b) we can deduct that:
+ // q = r1Scaled / rhs = r1 * 10^scale / rhs < 10^scale
+ assert(q.high == 0)
+ assert(q.low < scalePow10)
+ // We know that:
+ // a) q1Scaled = q1 * scalePow10 <= Self.maxDecimalDigits
+ // c) q.low <= scalePow10
+ //
+ // So basically 'q.low' fills the trailing '0s' inside the 'q1Scaled'.
+ // And since 'q1Scaled' is 'q' scaled to 'precision' digits then:
+ // digitCount(quotient) = digitCount(q1Scaled + q.low) = digitCount(q1Scaled) = precision
+ // QED
+#endif
+ } else {
+ // 123E20 / 123456789E7 = ?
+ // Scale 'lhs' the the same number of decimal digits as 'rhs'.
+ let lhsDigitCount = Self._getDecimalDigitCount(lhsSignificand)
+ let rhsDigitCount = Self._getDecimalDigitCount(rhsSignificand)
+
+ let scaleToRhs = rhsDigitCount - lhsDigitCount
+ let scaleToRhsPow10: BID = Tables.getPowerOf10(exponent: scaleToRhs)
+ let lhsScaledToRhs = lhsSignificand * scaleToRhsPow10
+
+ // Scale 'lhs' by 'Self.precisionInDigits - 1' (we need 'DoubleBID' to fit it).
+ // If 'lhsScaledToRhs' is smaller than 'rhs' (they have the same number of
+ // digits, but we can have 1234 vs 5678) then scale it a little bit more.
+ // This is why we have this '-1' -> to fit in 'DoubleBID'.
+ let makeLhsGreaterThanRhs = lhsScaledToRhs < rhsSignificand ? 1 : 0
+ let scaleByPrecision = Self.precisionInDigits - 1 + makeLhsGreaterThanRhs
+ let scaleByPrecisionPow10: BID = Tables.getPowerOf10(exponent: scaleByPrecision)
+ assert(scaleByPrecision <= Self.precisionInDigits)
+
+ let remainder1 = Self._mulSignificands(lhsScaledToRhs, scaleByPrecisionPow10)
+ exponentBorrowedDigitCount = scaleToRhs + scaleByPrecision
+ signedExponent -= exponentBorrowedDigitCount
+
+ let (q, r) = remainder1.quotientAndRemainder(dividingBy: rhsSignificand)
+ quotient = q.low
+ remainder = r
+
+#if DEBUG
+ // We will reference 'IMPORTANT-2' later.
+ let __quotientDigitCount = Self._getDecimalDigitCount(quotient)
+ assert(__quotientDigitCount == Self.precisionInDigits, "IMPORTANT-2")
+
+ // Proof:
+ // We scaled 'lhs', so that 'digitCount(lhsScaledToRhs) == digitCount(rhs)':
+ // lhsScaledToRhs = lhs * 10^(digitCount(rhs) - digitCount(lhs))
+ // Then we scaled 'lhsScaledToRhs' by 'scaleByPrecision', so the division was:
+ // q = remainder1 / rhs
+ // = (lhsScaledToRhs * 10^scaleByPrecision) / rhs
+ //
+ // a) lhs < rhs
+ assert(lhsSignificand < rhsSignificand, "The 'else' branch that we are in")
+ // b) scaleByPrecision = precision - 1 + makeLhsGreaterThanRhs <= precision
+ assert(scaleByPrecision <= Self.precisionInDigits, "scaleByPrecision <= precision")
+ // c) From a) and b) we have:
+ // remainder1 = lhsScaledToRhs * 10^scaleByPrecision <= rhs * 10^precision
+ let __pow10: BID = Tables.getPowerOf10(exponent: Self.precisionInDigits)
+ let __rhsScaled = Self._mulSignificands(rhsSignificand, __pow10)
+ assert(remainder1 < __rhsScaled, "lhsScaledToRhs * 10^scaleByPrecision <= rhs * 10^precision")
+ // d) From c) we have:
+ // remainder1 < rhs*10^precision
+ assert(q.high == 0)
+ assert(q.low <= __pow10)
+ // e) rhs * 10^(precision-1) <= remainder1
+ // rhs * 10^(precision-1) <= lhsScaledToRhs * 10^scaleByPrecision
+ //
+ // if lhsScaledToRhs >= rhs:
+ // makeLhsGreaterThanRhs = 0
+ // scaleByPrecision = precision - 1 + 0 = precision -1
+ //
+ // Putting that into our equation:
+ // rhs * 10^(precision-1) <= lhsScaledToRhs * 10^(precision-1)
+ // rhs <= lhsScaledToRhs
+ //
+ // else lhsScaledToRhs < rhs:
+ // makeLhsGreaterThanRhs = 1
+ // scaleByPrecision = precision - 1 + 1 = precision
+ //
+ // Putting that into our equation:
+ // rhs * 10^(precision-1) <= lhsScaledToRhs * 10^precision
+ // rhs * 10^(precision-1) <= lhsScaledToRhs * 10^(precision-1) * 10
+ // rhs <= lhsScaledToRhs * 10
+ //
+ // Which is true because:
+ // - lhsScaledToRhs < rhs
+ // - digitCount(lhsScaledToRhs) == digitCount(rhs)
+ let __rhsScaledExponentMinus1 = __rhsScaled / 10
+ assert(__rhsScaledExponentMinus1 <= remainder1)
+ // From d) and e) we have:
+ // rhs*10^(precision-1) <= remainder1 < rhs*10^precision
+ // QED
+#endif
+ }
+
+ if remainder == 0 {
+ // Remainder is '0' -> exact result -> eliminate trailing zeros.
+ let trailingZeroCount = Self._divCountQuotientTrailingZeros(
+ lhs: lhs,
+ rhs: rhs,
+ quotient: quotient,
+ exponentBorrowedDigitCount: exponentBorrowedDigitCount
+ )
+
+ if trailingZeroCount != 0 {
+ let pow10: BID = Tables.getPowerOf10(exponent: trailingZeroCount)
+ quotient /= pow10
+ signedExponent += trailingZeroCount
+ }
+ } else {
+ status.set(.isInexact)
+ }
+
+ if signedExponent < Self.minSignedExponent {
+ // Increasing exponent will 'eat' least significand digits from 'quotient'.
+ // So the least significand digit does not matter (it will always be 'eaten'),
+ // as long as we round correctly. There will ALWAYS be rounding!
+ var roundingDigitCount = 0
+
+ if remainder != 0 {
+ quotient *= 10
+ quotient |= 1
+ roundingDigitCount = 1
+ }
+
+ return Self._pack(
+ sign: sign,
+ significand: quotient,
+ signedExponent: signedExponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ if remainder != 0 {
+#if DEBUG
+ // Why can we round here?
+ // We handled 'underflow', as for the 'overflow':
+ // - overflow will try to decrease exponent by multiplying the significand.
+ // - based on the 'IMPORTANT-1' and 'IMPORTANT-2' proofs from the 'if' above
+ // we know that the 'quotient' has all significand digits filled.
+ //
+ // This means that the significand multiplication will fail, as there are
+ // no available significand digits.
+ //
+ // Also, FML for doing mathematical proofs for such 💩.
+ let __quotientDigitCount = Self._getDecimalDigitCount(quotient)
+ assert(__quotientDigitCount == Self.precisionInDigits, "IMPORTANT-1&2")
+ assert(quotient <= Self.maxDecimalDigits, "No rounding digits.")
+#endif
+
+ let isRoundingAwayFromZero: Bool
+
+ switch rounding {
+ case .up:
+ isRoundingAwayFromZero = sign.isPlus
+ case .down:
+ isRoundingAwayFromZero = sign.isMinus
+ case .towardZero:
+ isRoundingAwayFromZero = false // Ignore the remainder.
+
+ case .toNearestOrEven,
+ .toNearestOrAwayFromZero:
+ // For 'toNearestOrAwayFromZero':
+ // rem >= rhs/2
+ // 2*rem >= rhs
+ // 2*rem - rhs >= 0
+ let remainder2 = remainder + remainder
+ let (sub, borrow) = remainder2.subtractingReportingOverflow(rhsSignificand)
+ let isHalfway = sub == 0
+
+ isRoundingAwayFromZero = isHalfway ?
+ (rounding == .toNearestOrAwayFromZero || quotient.isOdd) :
+ !borrow
+ }
+
+ if isRoundingAwayFromZero {
+ quotient += 1
+
+ // Make it canonical if needed.
+ // I can't think of any pair of numbers that would go inside this 'if'.
+ // Things like '99999/0.1' are handled via fast path.
+ // And yet… we still have to handle it.
+ if quotient == Self.maxDecimalDigits + 1 {
+ quotient /= 10
+ signedExponent += 1
+ }
+ }
+ }
+
+ return Self._pack(
+ sign: sign,
+ significand: quotient,
+ signedExponent: signedExponent,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ private static func _divCountQuotientTrailingZeros(
+ lhs: FiniteUnpack,
+ rhs: FiniteUnpack,
+ quotient: BID,
+ exponentBorrowedDigitCount: Int
+ ) -> Int {
+ if quotient == 0 {
+ return 0
+ }
+
+ let lhsSignificand = lhs.significand.canonical
+ let rhsSignificand = rhs.significand.canonical
+
+ if lhsSignificand <= 1024 && rhsSignificand <= 1024 {
+ // Prime factorization -> count the number of 2 and 5 (because 2*5=10).
+ // The lower number dictates the power of 10 (trailing zero count).
+ let lhsFactors = Tables.getFactorCount(lessEqual1024: lhsSignificand)
+ let rhsFactors = Tables.getFactorCount(lessEqual1024: rhsSignificand)
+
+ let d2 = exponentBorrowedDigitCount - rhsFactors.count2 + lhsFactors.count2
+ let d5 = exponentBorrowedDigitCount - rhsFactors.count5 + lhsFactors.count5
+ return Swift.min(d2, d5)
+ }
+
+ if let q64 = UInt64(exactly: quotient) {
+ return countTrailingZeros(q64)
+ }
+
+ // 10^17
+ let pow10_17: BID = 100_000_000_000_000_000
+ let (q, r) = quotient.quotientAndRemainder(dividingBy: pow10_17)
+
+ // If we have 'remainder' then its trailing zero count is the result.
+ if r != 0 {
+ let r64 = UInt64(r)
+ return countTrailingZeros(r64)
+ }
+
+ // 'Decimal128' is the biggest with 'Self.precisionInDigits = 34'.
+ assert(q <= pow10_17)
+ let q64 = UInt64(q)
+ let count = countTrailingZeros(q64)
+ // Since 'r == 0' then we have at least 17 trailing '0'.
+ return count + 17
+ }
+}
diff --git a/Sources/Decimal/Decimal+Dump.swift b/Sources/Decimal/Decimal+Dump.swift
new file mode 100644
index 0000000..6d6796d
--- /dev/null
+++ b/Sources/Decimal/Decimal+Dump.swift
@@ -0,0 +1,71 @@
+#if DEBUG
+
+extension DecimalMixin {
+
+ /// Print dem thingies…
+ internal static func dumpEncoding() {
+ let sign = "+"
+ let highBits = "hh"
+
+ var combination = sign
+ for n in 0..= s.count,
+ "Dump string too long: \(s) (count: \(s.count), max: \(Self.bitWidth))."
+ )
+
+ let padding = String(repeating: " ", count: Self.bitWidth - s.count)
+ let full = padding + s
+
+ var printed = "|"
+ printed.reserveCapacity(Self.bitWidth + Self.bitWidth / 4 + 1 + comment.count)
+
+ for (index, c) in full.enumerated() {
+ printed.append(c)
+
+ if (index + 1).isMultiple(of: 8) {
+ printed.append("|")
+ }
+ }
+
+ if !comment.isEmpty {
+ printed.append(comment)
+ }
+
+ print(printed)
+ }
+}
+
+#endif
diff --git a/Sources/Decimal/Decimal+Equal+Compare.swift b/Sources/Decimal/Decimal+Equal+Compare.swift
new file mode 100644
index 0000000..59e7148
--- /dev/null
+++ b/Sources/Decimal/Decimal+Equal+Compare.swift
@@ -0,0 +1,294 @@
+extension DecimalMixin {
+
+ // MARK: - Equal, less
+
+ internal func _isEqual(to other: Self, status: inout DecimalStatus) -> Bool {
+ switch Self._compare(self, other) {
+ case .nan:
+ if self._isSignalingNaN || other._isSignalingNaN {
+ status.set(.isInvalidOperation)
+ }
+
+ return false
+
+ case .equal:
+ return true
+
+ case .less, .greater:
+ return false
+ }
+ }
+
+ internal func _isLess(than other: Self, status: inout DecimalStatus) -> Bool {
+ switch Self._compare(self, other) {
+ case .nan:
+ if self._isSignalingNaN || other._isSignalingNaN {
+ status.set(.isInvalidOperation)
+ }
+
+ return false
+
+ case .less:
+ return true
+
+ case .equal, .greater:
+ return false
+ }
+ }
+
+ internal func _isLessThanOrEqualTo(_ other: Self, status: inout DecimalStatus) -> Bool {
+ switch Self._compare(self, other) {
+ case .nan:
+ if self._isSignalingNaN || other._isSignalingNaN {
+ status.set(.isInvalidOperation)
+ }
+
+ return false
+
+ case .less, .equal:
+ return true
+
+ case .greater:
+ return false
+ }
+ }
+
+ // MARK: - Total order
+
+ internal func _isTotallyOrdered(belowOrEqualTo other: Self) -> Bool {
+ switch Self._compare(self, other) {
+ // a) If x < y, totalOrder(x, y) is true.
+ case .less:
+ return true
+
+ // b) If x > y, totalOrder(x, y) is false
+ case .greater:
+ return false
+
+ // c) If x = y:
+ case .equal:
+ // Infinity with the same sign.
+ // Other bits do not matter, because they are not canonical.
+ if self._isInfinite {
+ return true
+ }
+
+ // 1) totalOrder(−0, +0) is true.
+ // 2) totalOrder(+0, −0) is false.
+ // Note that this check will be 'false' if we have '0' with the same sign!
+ if self._isNegative != other._isNegative {
+ assert(self._isZero, "Only 0 can be equal with different signs?")
+ return self._isNegative
+ }
+
+ // 3) If x and y represent the same floating-point datum:
+ // i) If x and y have negative sign,
+ // totalOrder(x, y) is true if and only if the exponent of x ≥ the exponent of y
+ // ii) otherwise
+ // totalOrder(x, y) is true if and only if the exponent of x ≤ the exponent of y.
+ let selfUnpack = self._unpackFiniteOrZero()
+ let otherUnpack = other._unpackFiniteOrZero()
+
+ if self._isNegative {
+ return selfUnpack.exponent >= otherUnpack.exponent
+ }
+
+ return selfUnpack.exponent <= otherUnpack.exponent
+
+ // d) If x and y are unordered numerically because x or y is NaN:
+ case .nan:
+ // 3) If x and y are both NaNs, then totalOrder reflects a total ordering
+ // based on:
+ if self._isNaN && other._isNaN {
+ // i) negative sign orders below positive sign
+ if self._isNegative != other._isNegative {
+ return self._isNegative
+ }
+
+ // ii) signaling orders below quiet for +NaN, reverse for −NaN
+ if self._isSignalingNaN && other._isQuietNaN {
+ return self._isPositive
+ }
+
+ if other._isSignalingNaN && self._isQuietNaN {
+ return self._isNegative
+ }
+
+ // iii) lesser payload, when regarded as an integer, orders below greater
+ // payload for +NaN, reverse for −NaN.
+ let payloadSelf = self._unpackNaN()
+ let payloadOther = other._unpackNaN()
+
+ if self._isPositive {
+ return payloadSelf.canonical <= payloadOther.canonical
+ }
+
+ return payloadSelf.canonical >= payloadOther.canonical
+ }
+
+ // 1) totalOrder(−NaN, y) is true where −NaN represents a NaN with negative
+ // sign bit and y is a floating-point number.
+ // 2) totalOrder(x, +NaN) is true where +NaN represents a NaN with positive
+ // sign bit and x is a floating-point number.
+ if self._isNaN {
+ return self._isNegative
+ }
+
+ assert(other._isNaN)
+ return other._isPositive
+ }
+ }
+}
+
+// MARK: - Compare
+
+internal enum CompareResult {
+ /// One of the arguments is NaN.
+ case nan
+ /// x < y
+ case less
+ /// x == y
+ case equal
+ /// x > y
+ case greater
+}
+
+extension DecimalMixin {
+
+ internal static func _compare(_ x: Self, _ y: Self) -> CompareResult {
+ // =========================================================================
+ // Brace yourself.
+ // This function is truly mind-bending.
+ // Unfortunately, a general purpose 'compare' function is quite useful.
+ // =========================================================================
+
+ if x._isNaN || y._isNaN {
+ return .nan
+ }
+
+ if x.bid == y.bid {
+ return .equal
+ }
+
+ if x._isInfinite {
+ if x._isPositive {
+ // +inf vs y
+ return y._isPositive && y._isInfinite ? .equal : .greater
+ }
+
+ // -inf vs y
+ return y._isNegative && y._isInfinite ? .equal : .less
+ }
+
+ // x vs +inf
+ // x vs -inf
+ if y._isInfinite {
+ return y._isPositive ? .less : .greater
+ }
+
+ let xUnpack = x._unpackFiniteOrZero()
+ let yUnpack = y._unpackFiniteOrZero()
+ let xSignificand = xUnpack.significand.canonical
+ let ySignificand = yUnpack.significand.canonical
+
+ // ±0 vs ±0? This will also handle non-canonical.
+ if xSignificand == 0 && ySignificand == 0 {
+ return .equal
+ }
+
+ // 0 vs y
+ if xSignificand == 0 {
+ return y._isPositive ? .less : .greater
+ }
+
+ // x vs 0
+ if ySignificand == 0 {
+ return x._isPositive ? .greater : .less
+ }
+
+ // Different signs
+ if x._isPositive != y._isPositive {
+ return x._isPositive ? .greater : .less
+ }
+
+ let xExponent = xUnpack.exponent.signed
+ let yExponent = yUnpack.exponent.signed
+
+ // |x| > |y|
+ if xSignificand > ySignificand && xExponent > yExponent {
+ return x._isPositive ? .greater : .less
+ }
+
+ // |x| < |y|
+ if xSignificand < ySignificand && xExponent < yExponent {
+ return x._isPositive ? .less : .greater
+ }
+
+ // Even after quantization the result would still be the same.
+ // xExponent ≫ yExponent
+ if xExponent - yExponent >= Self.precisionInDigits {
+ return x._isPositive ? .greater : .less
+ }
+
+ // xExponent ≪ yExponent
+ if yExponent - xExponent >= Self.precisionInDigits {
+ return x._isPositive ? .less : .greater
+ }
+
+ if xExponent > yExponent {
+ let (significand, overflow) = Self._quantize(
+ significand: xSignificand,
+ exponentBig: xExponent,
+ exponentSmall: yExponent
+ )
+
+ // When rescaling x it overflowed
+ if overflow {
+ return x._isPositive ? .greater : .less
+ }
+
+ if significand == ySignificand {
+ return .equal
+ }
+
+ if x._isPositive {
+ return significand < ySignificand ? .less : .greater
+ }
+
+ return significand < ySignificand ? .greater : .less
+ }
+
+ let (significand, overflow) = Self._quantize(
+ significand: ySignificand,
+ exponentBig: yExponent,
+ exponentSmall: xExponent
+ )
+
+ // When rescaling y it overflowed
+ if overflow {
+ return x._isPositive ? .less : .greater
+ }
+
+ if significand == xSignificand {
+ return .equal
+ }
+
+ if x._isPositive {
+ return xSignificand < significand ? .less : .greater
+ }
+
+ return xSignificand < significand ? .greater : .less
+ }
+
+ private static func _quantize(
+ significand: BID,
+ exponentBig: Int,
+ exponentSmall: Int
+ ) -> (significand: BID, overflow: Bool) {
+ assert(exponentBig >= exponentSmall)
+ let diff = exponentBig - exponentSmall
+ let pow10: BID = Tables.getPowerOf10(exponent: diff)
+ let r = significand.multipliedReportingOverflow(by: pow10)
+ return (r.partialValue, r.overflow)
+ }
+}
diff --git a/Sources/Decimal/Decimal+FusedMultiplyAdd - unused code.swift b/Sources/Decimal/Decimal+FusedMultiplyAdd - unused code.swift
new file mode 100644
index 0000000..b696743
--- /dev/null
+++ b/Sources/Decimal/Decimal+FusedMultiplyAdd - unused code.swift
@@ -0,0 +1,718 @@
+// swiftlint:disable all
+
+/*
+================================================================================
+Fast path in main method?
+================================================================================
+
+ private static func _fusedMultiplyAdd(
+ mulLhs: Self,
+ mulRhs: Self,
+ add: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self? {
+ // (lhs * rhs) + add = very_big + add = very_big
+ // By 'very_big' we mean: 'mul * 10^99999999…'
+ let isMulTooBig = mul.signedExponent >= Self.maxSignedExponent + Self.precisionInDigits
+ let isAddingTooBig = mul.isNegative == addUnpack.isNegative
+ && mul.signedExponent > Self.maxSignedExponent
+
+ if isMulTooBig || isAddingTooBig {
+ return Self._pack(
+ sign: mul.sign,
+ signedExponent: mul.signedExponent,
+ significand: (Self.maxDecimalDigits + 1) / 10,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ status: &status
+ )
+ }
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*
+================================================================================
+This is mostly translation of Intel for this branch:
+'if add.signedExponent >= mul.signedExponent {'
+================================================================================
+
+ private static func _fmaOhNo(
+ mul: Mul,
+ add: FiniteUnpack,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus,
+ EXPECTED: Self
+ ) -> Self? {
+/*
+ if add.exponent.signed > mul.signedExponent {
+ let exponentDiff = add.exponent.signed - mul.signedExponent
+ let pow10: BID = Tables.getPowerOf10(exponent: exponentDiff)
+ let addSignificandScaled = Self._mulSignificands(add.significand.canonical, pow10)
+
+ // let CT = Self._addSignificands(
+ // isLhsNegative: add,
+ // lhs: mul,
+ // isRhsNegative: add.isNegative,
+ // rhs: addSignificandScaled
+ // )
+
+ // let exponent = exponent_y + mul.roundingDigitCount + 1 // Exponent is wrong!
+ // let digitCount = Self._getDecimalDigitCount(CT.significand)
+
+ // var zz = Self._pack(
+ // sign: CT.isNegative ? .minus : .plus,
+ // signedExponent: exponent,
+ // significand: CT.significand,
+ // roundingDigitCount: digitCount.roundingDigitCount,
+ // rounding: rounding,
+ // status: &status
+ // )
+
+ // if CT.significand == 0 {
+ // zz = Self._additionExactZero(
+ // isLhsNegative: mul.isNegative,
+ // isRhsNegative: add.isNegative,
+ // signedExponent: exponent,
+ // rounding: rounding
+ // )
+ // }
+
+ // print(
+ // zz.bid == EXPECTED.bid ? "🟢" : "🔴",
+ // zz,
+ // EXPECTED
+ // )
+ return nil
+ }
+*/
+
+/*
+ // In Intel:
+ // P = mul
+ // digits_p = mulDigitCount.digitCount
+ // extra_digits = mulDigitCount.roundingDigitCount
+ // final_exponent = mulExponent
+ // ez = addExponentWithFullPrecision << only in 'handleMulExponentTooSmall'
+
+ // res = bid_get_add128 (
+ // sign_z,
+ // exponent_z,
+ // coefficient_z,
+ // sign_x ^ sign_y,
+ // final_exponent,
+ // P,
+ // extra_digits,
+ // rnd_mode,
+ // pfpsf
+ // );
+ // BID_RETURN (res);
+*/
+//x = add!
+ let sign_x = add.isNegative // BID_UINT64 sign_x,
+ var exponent_x = add.exponent.signed // Intel: BIASED; int exponent_x,
+ var coefficient_x = add.significand.canonical // BID_UINT64 coefficient_x,
+
+ let sign_y = mul.isNegative // BID_UINT64 sign_y,
+ /// Exponent in 'small' form
+ let final_exponent_y = mul.signedExponent // Intel: BIASED; int final_exponent_y,
+ let CY = mul.significand // BID_UINT128 CY,
+ var extra_digits = mul.roundingDigitCount // int extra_digits,
+//----------------------------------------------------------
+
+ // CY has more than 16 decimal digits
+ /// Full exponent in 'DoubleBID' form
+ let exponent_y = mul.signedExponent - extra_digits
+
+ // 'add' has greater exponent
+ // exponent_x > final_exponent_y - extra_digits
+ // add.exponent > mul.signedExponent - mul.roundingDigitCount
+ // mul.signedExponent - mul.roundingDigitCount < add.exponent
+ if exponent_y < exponent_x {
+ // Quantization 'x' to max decimal digits?
+ let digits_x = Self._getDecimalDigitCount(coefficient_x)
+ var extra_dx = 16 - digits_x
+
+ let pow10: BID = Tables.getPowerOf10(exponent: extra_dx)
+ coefficient_x *= pow10
+
+ if sign_x != sign_y && coefficient_x == 1000000000000000 {
+ extra_dx += 1
+ coefficient_x = 10000000000000000
+ }
+
+ exponent_x -= extra_dx
+
+ // If full mul.exponent < add.exponent
+ if exponent_y < exponent_x {
+ let diff_dec_expon = exponent_x - exponent_y
+
+ if exponent_x <= final_exponent_y + 1 {
+ let pow10B: BID = Tables.getPowerOf10(exponent: diff_dec_expon)
+ let CX = Self._mulSignificands(coefficient_x, pow10B)
+
+ let CT = Self._addSignificands(
+ isLhsNegative: sign_x,
+ lhs: CX,
+ isRhsNegative: sign_y,
+ rhs: CY
+ )
+
+ let exponent = exponent_y + mul.roundingDigitCount + 1 // Exponent is wrong!
+ let digitCount = Self._getDecimalDigitCount(CT.significand)
+
+ var zz = Self._pack(
+ sign: CT.isNegative ? .minus : .plus,
+ signedExponent: exponent,
+ significand: CT.significand,
+ roundingDigitCount: digitCount.roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+
+ if CT.significand == 0 {
+ zz = Self._additionExactZero(
+ isLhsNegative: mul.isNegative,
+ isRhsNegative: add.isNegative,
+ signedExponent: exponent,
+ rounding: rounding
+ )
+ }
+
+ // print(
+ // zz.bid == EXPECTED.bid ? "🟢" : "🔴",
+ // zz,
+ // EXPECTED
+ // )
+ return nil
+ }
+
+ // diff_dec2+extra_digits is the number of digits to eliminate from
+ // argument CY
+ let diff_dec2 = exponent_x - final_exponent_y
+
+ // This was already handled by my code
+ // if diff_dec2 >= 17 {
+ // print("x")
+ // }
+
+ // here exponent_x <= 16+final_exponent_y
+
+ }
+ }
+
+// print("y")
+
+//----------------------------------------------------------
+return nil
+ }
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*
+================================================================================
+Triple BID operations.
+This is mostly for the subset where exponents are close.
+================================================================================
+
+ private static func _fmaBadThings(
+ mul: FmaMul,
+ add: AddFiniteOrZero,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus,
+ EXPECTED: Self
+ ) -> Self? {
+//------------------------------------------------------------------------------
+// guard Self.bitWidth == 64 else { return nil }
+
+ // Normally 'mul.signedExponent' does not include 'roundingDigits'
+ // Only the first 'Self.precisionInDigits' are included.
+ let mulExponentWithRoundingDigits = mul.signedExponent - mul.roundingDigitCount
+ let exponent = Swift.min(mulExponentWithRoundingDigits, add.signedExponent)
+
+ let mulScale = mulExponentWithRoundingDigits - exponent
+ let mulPow10: DoubleBID = Tables.getPowerOf10(exponent: mulScale)
+ let mulSignificand = mul.significand.multipliedFullWidth(by: mulPow10)
+
+ let addScale = add.signedExponent - exponent
+ let addPow10: DoubleBID = Tables.getPowerOf10(exponent: addScale)
+ let addSignificand = DoubleBID(high: 0, low: add.significand).multipliedFullWidth(by: addPow10)
+
+ guard let (isNegative, significand) = Self._fmaAddSignificands(
+ isLhsNegative: mul.isNegative,
+ lhs: mulSignificand,
+ isRhsNegative: add.isNegative,
+ rhs: addSignificand
+ ) else {
+ return nil
+ }
+
+ let sign: FloatingPointSign = isNegative ? .minus : .plus
+
+ if significand.high == 0 {
+ let s = significand.low
+ let digitCount = Self._getDecimalDigitCount(s)
+ let e = exponent + digitCount.roundingDigitCount
+ return Self._pack(
+ sign: sign,
+ signedExponent: e,
+ significand: s,
+ roundingDigitCount: digitCount.roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+print("y")
+
+ // print("\(significand)E\(exponent) ==? \(EXPECTED)")
+
+return nil
+ }
+
+ private typealias FmaAddSignificands = (
+ isNegative: Bool,
+ significand: (high: DoubleBID, low: DoubleBID)
+ )
+
+ private static func _fmaAddSignificands(
+ isLhsNegative: Bool,
+ lhs: (high: DoubleBID, low: DoubleBID),
+ isRhsNegative: Bool,
+ rhs: (high: DoubleBID, low: DoubleBID)
+ ) -> FmaAddSignificands? {
+ if isLhsNegative == isRhsNegative {
+ let (low, ov1) = lhs.low.addingReportingOverflow(rhs.low)
+ let (ov2, high) = sum(lhs.high, rhs.high, ov1 ? 1 : 0)
+ assert(ov2 == 0, "Overflow on QuadBID?")
+
+ return (isLhsNegative, (high, low))
+ }
+
+return nil
+ }
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+/*
+================================================================================
+Slower (but still interesting) version of '_fmaAlignedAddIsPartiallyOutsideMul'.
+================================================================================
+
+ /// Aligned 'add' is partially outside of 'mul'.
+ /// We possibly need the 3rd BID.
+ private static func _fmaAlignedAddIsPartiallyOutsideMul(
+ mul: FmaMul,
+ add: AddFiniteOrZero,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ assert(add.signedExponent > mul.signedExponent + mul.roundingDigitCount)
+ assert(add.signedExponent <= mul.signedExponent + mul.digitCount)
+ assert(
+ mul.significand.high != 0 || mul.significand.low > Self.maxDecimalDigits,
+ "'mul.significand' should have all 'Self.precisionInDigits' digits filled."
+ )
+
+ // Take top 'Self.precisionInDigits' from mul.
+ // Later we will align 'add' to this.
+ let mulRoundingDigitsPow10: BID = Tables.getPowerOf10(exponent: mul.roundingDigitCount)
+ let (mulSignificand, mulRemainder) = mul.significand.quotientAndRemainder(dividingBy: mulRoundingDigitsPow10)
+
+ // Align 'add'.
+ let doubleBidExponent = mul.signedExponentWithoutRoundingDigits
+ let addScale = add.signedExponent - doubleBidExponent
+ assert(addScale <= Self.precisionInDigits)
+ let addPow10: BID = Tables.getPowerOf10(exponent: addScale)
+ let addSignificand = Self._mulSignificands(add.significand, addPow10)
+
+ // The final result is approximately equal to:
+ // doubleBidSignificand * 10^doubleBidExponent
+ // Obviously now we have to take 'mulRemainder' into account.
+ let (isNegative, doubleBidSignificand) = Self._addSignificands(
+ isLhsNegative: mul.isNegative,
+ lhs: mulSignificand,
+ isRhsNegative: add.isNegative,
+ rhs: addSignificand
+ )
+
+ // Proof for this assertion is difficult (but necessary).
+ // 1. We started with 'add.exponent >= mul.exponent'
+ // 2. We quantized 'add' to 'mul.exponent'
+ //
+ // 'mul' can look like this (precision=7; s=significand; r=rounding):
+ // mul = s sss sss rrr rrrE5
+ //
+ // Cases for 'doubleBidSignificand' to be 0:
+ //
+ // a) 'Add' matches exactly with 's sss sss' from 'mul':
+ // mul = s sss sss rrr rrr E5
+ // add = s sss sss E11
+ // This case should be handled before calling this method.
+ // It triggers this assertion (it is equal, not greater):
+ // assert(add.signedExponent > mul.signedExponent + mul.roundingDigitCount)
+ //
+ // b) 'Mul' ends with a bunch of '0'
+ // mul = s sss 000 rrr rrr E5
+ // add = s sss E14
+ // After quantization 'add' becomes:
+ // add = s sss 000 E11
+ // Which is the same case as a).
+ assert(doubleBidSignificand != 0)
+
+ let sign: FloatingPointSign = isNegative ? .minus : .plus
+ let (_, doubleBidRoundingDigitCount) = Self._getDecimalDigitCount(doubleBidSignificand)
+ let singleBidExponent = doubleBidExponent + doubleBidRoundingDigitCount
+
+ // Are we just a standard DoubleBID?
+ if mulRemainder == 0 {
+ return Self._pack(
+ sign: sign,
+ signedExponent: singleBidExponent,
+ significand: doubleBidSignificand,
+ roundingDigitCount: doubleBidRoundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // We have some 'mulRemainder' digits -> we are inexact by definition.
+ status.set(.isInexact)
+
+ // If 'mul' and 'add' have the same sign:
+ // 'mulRemainder' further increases the magnitude
+ // Else if 'mull' has bigger magnitude:
+ // doubleBidSignificand = mulSignificand - addSignificand
+ // So 'doubleBidSignificand' has the same sign as 'mul' which means that
+ // the 'mulRemainder' pushes us away from '0'.
+ // Else (if 'add' has bigger magnitude):
+ // doubleBidSignificand = addSignificand - mulSignificand
+ // So far we have subtracted 'mulSignificand', now we have to subtract
+ // 'mulRemainder' -> this pushes us toward '0'.
+ let mulRemainderIsAwayFromZero = isNegative == mul.isNegative
+
+ // Fill all remaining 'rounding digits' in 'doubleBidSignificand' with '0'.
+ // Then fill those '0' with numbers depending on 'mulRemainderIsAwayFromZero'.
+ // The idea is that by calculating to double precision we can safely round.
+ // In almost all of the cases 'exponent' stays at 'singleBidExponent',
+ // because this is the preferred exponent.
+ let addedZeroCount = Self.precisionInDigits - doubleBidRoundingDigitCount
+ let significand: DoubleBID
+ var exponent = singleBidExponent
+ let roundingDigitCount: Int
+
+ if mulRemainderIsAwayFromZero {
+ // Move top digits from 'mulRemainder' to 'significand' as rounding digits.
+ // Always move at least 1 digit, so that we correctly handle 'toNearest…'.
+ // 'DoubleBID' with '2 * Self.precisionInDigits' digits is not 'full'.
+ // We always have space for at least 1 more decimal digit.
+ let movedDigitCount = Swift.min(addedZeroCount + 1, mul.roundingDigitCount)
+
+ let movedDivExponent = mul.roundingDigitCount - movedDigitCount
+ let movedDiv: BID = Tables.getPowerOf10(exponent: movedDivExponent)
+ // We know that 'mulRemainder != 0' -> we always have to move something.
+ let movedDigits = Swift.max(mulRemainder / movedDiv, 1)
+
+ let pow10: BID = Tables.getPowerOf10(exponent: movedDigitCount)
+ let s10 = doubleBidSignificand * pow10
+ significand = s10 + movedDigits
+ roundingDigitCount = doubleBidRoundingDigitCount + movedDigitCount
+ } else {
+ // Fill rounding digits with '0' and subtract '1'.
+ let pow10: BID = Tables.getPowerOf10(exponent: addedZeroCount)
+ let s10 = doubleBidSignificand * pow10
+ significand = s10 - (1 as BID)
+
+ // 10000000000 - 1 = 9999999999
+ let dc = Self._getDecimalDigitCount(significand)
+ let hasRemovedDigit = dc.roundingDigitCount != doubleBidRoundingDigitCount + addedZeroCount
+ exponent -= hasRemovedDigit ? 1 : 0
+ roundingDigitCount = dc.roundingDigitCount
+ }
+
+ return Self._pack(
+ sign: sign,
+ // 'carry' digit means that our exponent goes up.
+ signedExponent: exponent,
+ significand: significand,
+ // We added a new digit at the back -> this is a rounding digit.
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*
+================================================================================
+Fast path in ;_fmaAlignedAddIsPartiallyOutsideMul':
+if doubleWidthSignificand.high == 0 && doubleWidthSignificand.low <= Self.maxDecimalDigits {
+================================================================================
+
+ private static func _fmaAlignedAddIsPartiallyOutsideMul(
+ mul: FmaMul,
+ add: AddFiniteOrZero,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus,
+ EXPECTED: Self
+ ) -> Self? {
+
+
+ // Are we a single BID?
+ if doubleWidthSignificand.high == 0 && doubleWidthSignificand.low <= Self.maxDecimalDigits {
+ var significand = doubleWidthSignificand
+ var exponent = doubleWidthExponent
+
+ if mulRemainder != 0 {
+ // Scale 'significand' to make space for 'mulRemainder'.
+ significand = significand * mulRoundingDigitsPow10
+ exponent -= mul.roundingDigitCount
+
+ // Add them together.
+ if mulRemainderIsAwayFromZero {
+ significand = significand + mulRemainder
+ } else {
+ // Because we scaled 'significand' we are sure that it is greater than
+ // 'mulRemainder', so we will never go below '0'.
+ significand = significand - mulRemainder
+ }
+ }
+
+ let roundingDigitCount = Self._getRoundingDigitCount(significand)
+ exponent += roundingDigitCount
+
+ return Self._pack(
+ sign: sign,
+ signedExponent: exponent,
+ significand: significand,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*
+================================================================================
+Manual rounding for '_fmaAlignedAddIsPartiallyOutsideMul'.
+Scarry stuff, that never managed to work properly.
+================================================================================
+
+ private static func _fmaAlignedAddIsPartiallyOutsideMul(
+ mul: FmaMul,
+ add: AddFiniteOrZero,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus,
+ EXPECTED: Self
+ ) -> Self? {
+
+// Check if 'doubleBidSignificand' and 'bid3' fit inside DoubleBID
+
+ // Split 'doubleBidSignificand' into 'significand' and 'bid2'.
+ // Our 3 BIDs are: [significand, bid2, bid3] (in this order).
+ // Our result is: [significand, bid2] * 10^doubleBidExponent, with 'bid3' for rounding.
+ assert(doubleBidRoundingDigitCount > 0)
+ let pow10: DoubleBID = Tables.getPowerOf10(exponent: doubleBidRoundingDigitCount)
+ let (q, bid2) = doubleBidSignificand.quotientAndRemainder(dividingBy: pow10)
+ var significand = q.low
+ assert(q.high == 0)
+ assert(significand != 0)
+
+ // It is not possible to be exactly 'halfway'.
+ // If 'bid2 == halfway' then the 'bid3' will make it '!= halfway'.
+ let halfway = pow10 / 2
+ let isAboveHalfway = bid2 > halfway || (bid2 == halfway && isBid3AwayFromZero)
+
+#if DEBUG
+ let __isHalfway = bid2 == halfway && bid3 == 0
+ assert(!__isHalfway, "We have 'bid3 != 0'. We can't be halfway?")
+#endif
+
+ let isPositive = !isNegative
+ var direction = AdditionWithBigExponentDiscrepancy_RoundingDirection.none
+
+ switch rounding {
+ case .up:
+ // -123 (rounding digits: 000) + 0.1 = -122
+ if isNegative && bid2 == 0 && isBid3TowardZero { direction = .towardZero }
+ // 123 (rounding digits: 100) + xxx = 124
+ // 123 (rounding digits: 000) + 0.1 = 124
+ if isPositive && (bid2 != 0 || isBid3AwayFromZero) { direction = .awayFromZero }
+
+ case .down:
+ // -123 (rounding digits: 100) + xxx = -124
+ // -123 (rounding digits: 000) - 0.1 = -124
+ if isNegative && (bid2 != 0 || isBid3AwayFromZero) { direction = .awayFromZero }
+ // 123 (rounding digits: 000) - 0.1 = 122
+ if isPositive && bid2 == 0 && isBid3TowardZero { direction = .towardZero }
+
+ case .towardZero:
+ // -123 (rounding digits: 000) + 0.1 = -122
+ // 123 (rounding digits: 000) - 0.1 = 122
+ if bid2 == 0 && isBid3TowardZero { direction = .towardZero }
+
+ case .toNearestOrEven,
+ .toNearestOrAwayFromZero:
+ // We can't be halfway because we have 'add'.
+ if isAboveHalfway { direction = .awayFromZero }
+ }
+
+print("mul = \(mul.isNegative ? "-" : "+")\(mul.significand)E\(mul.signedExponent)")
+print("add = \(add.isNegative ? "-" : "+")\(add.significand)E\(add.signedExponent)")
+print("")
+print("mulScaled = \(mul.isNegative ? "-" : "+")\(mulSignificand)E\(doubleBidExponent)")
+print("addScaled = \(add.isNegative ? "-" : "+")\(addSignificand)E\(doubleBidExponent)")
+print("doubleBID = \(isNegative ? "-" : "+")\(doubleBidSignificand)E\(doubleBidExponent)")
+print("")
+
+print("significand =", significand)
+print("bid2 =", bid2)
+print("bid3 = \(mul.isNegative ? "-" : "+")\(bid3) SIGN MAY BE INCORRECT")
+print("Exponent =", singleBidExponent)
+print("Rounding =", direction, "from", rounding)
+print("")
+
+print("EXPECTED =", EXPECTED)
+defer { print("-----------") }
+
+//------------------------------------------------------------------------------
+// guard Self.bitWidth == 64 else { return nil }
+
+/*
+ // Rename method
+ Self._additionWithBigExponentDiscrepancy_round(
+ significand: &significand,
+ signedExponent: &singleBidExponent,
+ direction: direction
+ )
+
+ let result = Self._pack(
+ sign: sign,
+ signedExponent: singleBidExponent,
+ significand: significand,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ status: &status
+ )
+*/
+
+// Another version. Maybe this will work? Nope!
+ var s = doubleBidSignificand
+
+ switch direction {
+ case .awayFromZero:
+ s += 1
+
+ case .towardZero:
+ s -= 1
+
+ case .none:
+ break
+ }
+
+ let roundingDigitCount = Self._getRoundingDigitCount(s)
+ var e = doubleBidExponent + roundingDigitCount
+
+ let result = Self._pack(
+ sign: sign,
+ signedExponent: e,
+ significand: s,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+
+
+ print(
+ result.bid == EXPECTED.bid ? "🟢" : "🔴",
+ result,
+ EXPECTED
+ // , " ", doubleBidRoundingDigitCount
+ )
+
+
+// What it we have to increase exponent?
+// We need to decrease significand
+// Rounding nearest ties to even:
+// .51 always bring us to next
+// .5 only if we are odd
+// Handle the edge case when exponent is just 1 below? No we may have trailing '00s'
+
+ // This seems like a double rounding: when exponent is too high 'pack' will
+ // try to decrease the exponent by increasing significand. But remember that
+ // we 'quantized' the 'mul', so there is no more space available.
+ // Thus no digits will be moved from 'bid2'.
+ return Self._pack(
+ sign: mul.isNegative ? .minus : .plus,
+ signedExponent: exponent,
+ significand: significand,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ status: &status
+ )
+*/
diff --git a/Sources/Decimal/Decimal+FusedMultiplyAdd.swift b/Sources/Decimal/Decimal+FusedMultiplyAdd.swift
new file mode 100644
index 0000000..49679f8
--- /dev/null
+++ b/Sources/Decimal/Decimal+FusedMultiplyAdd.swift
@@ -0,0 +1,917 @@
+// swiftlint:disable shorthand_operator
+
+extension DecimalMixin {
+
+ private typealias FmaMul = (
+ sign: Sign,
+ signedExponent: Int,
+ /// Exponent for the 'Self.precisionInDigits' part of the 'significand',
+ /// because 'self.signedExponent' includes the rounding digits!
+ ///
+ /// Basically: `self.signedExponent + self.roundingDigitCount`.
+ ///
+ /// Example for precision = 7:
+ /// - mul: 1234567890E10 (more digits than precision!)
+ /// - without rounding digits: 1234567E13
+ signedExponentWithoutRoundingDigits: Int,
+ /// Significand with rounding digits after.
+ significand: DoubleBID,
+ /// Number of decimal digits in `significand`.
+ digitCount: Int,
+ /// Number of decimal digits in `significand` that are used for rounding.
+ roundingDigitCount: Int
+ )
+
+ /// 🧛🏻 Bad things happen here!
+ internal static func _fusedMultiplyAdd(
+ mulLhs: Self,
+ mulRhs: Self,
+ add: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // formatOf-fusedMultiplyAdd(source1, source2, source3)
+ //
+ // The operation fusedMultiplyAdd(x, y, z) computes (x × y) + z as if with
+ // unbounded range and precision, rounding only once to the destination format.
+ //
+ // No underflow, overflow, or inexact exception (see 7) can arise due to the
+ // multiplication, but only due to the addition; and so fusedMultiplyAdd
+ // differs from a multiplication operation followed by an addition operation.
+ //
+ // The preferred exponent is min(Q(x) + Q(y), Q(z)).
+ //
+ // Every general-computational and quiet-computational operation involving
+ // one or more input NaNs, none of them signaling, shall signal no exception,
+ // except fusedMultiplyAdd might signal the invalid operation exception (see 7.2).
+ //
+ // 7.2 Invalid operation
+ // For operations producing results in floating-point format, the default
+ // result of an operation that signals the invalid operation exception shall
+ // be a quiet NaN that should provide some diagnostic information (see 6.2).
+ //
+ // These operations are:
+ // ― fusedMultiplyAdd(0, ∞, c) or fusedMultiplyAdd(∞, 0, c) unless c is a
+ // quiet NaN; if c is a quiet NaN then it is implementation defined whether
+ // the invalid operation exception is signaled
+ //
+ // 6.3 The sign bit 6.30
+ // When (a × b) + c is exactly zero, the sign of fusedMultiplyAdd(a, b, c)
+ // shall be determined by the rules above for a sum of operands. When the
+ // exact result of (a × b) + c is non-zero yet the result of fusedMultiplyAdd
+ // is zero because of rounding, the zero result takes the sign of the exact
+ // result.
+
+ if mulLhs._isNaN || mulRhs._isNaN || add._isNaN {
+ return Self._fmaNaN(mulLhs, mulRhs, add, status: &status)
+ }
+
+ if mulLhs._isInfinite || mulRhs._isInfinite || add._isInfinite {
+ return Self._fmaInfinity(mulLhs, mulRhs, add, status: &status)
+ }
+
+ // Shadow the inputs, because we will not need them anymore.
+ let mulLhs = mulLhs._unpackFiniteOrZero()
+ let mulRhs = mulRhs._unpackFiniteOrZero()
+
+ let addUnpack = add._unpackFiniteOrZero()
+ var add = AddFiniteOrZero(
+ sign: addUnpack.sign,
+ signedExponent: addUnpack.exponent.signed,
+ significand: addUnpack.significand.canonical
+ )
+
+ let isMulZero = mulLhs.significand.isZero || mulRhs.significand.isZero
+ let mulSign = mulLhs.sign ^ mulRhs.sign
+ let mulExponent = mulLhs.exponent.signed + mulRhs.exponent.signed
+
+ // (0 * rhs) + ±0 = 0
+ if isMulZero && add.significand == 0 {
+ // The preferred exponent is min(Q(x) + Q(y), Q(z)).
+ // There are some special rules about the sign of this thingie.
+ return Self._additionExactZero(
+ lhsSign: mulSign,
+ rhsSign: add.sign,
+ signedExponent: Swift.min(mulExponent, add.signedExponent),
+ rounding: rounding
+ )
+ }
+
+ // (0 * rhs) + add
+ if isMulZero {
+ return Self._fmaMulIsZero(
+ mulExponent: mulExponent,
+ add: add,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // What about 'if add.isZero {…}'?
+ // We can't just call 'multiply' because it has different preferred exponent.
+ // Also, it would round, and if the addition has lower exponent (preferred
+ // exponent for FMA) then we would have to quantize the rounded value!
+ // Double rounding! Oh no!
+
+ // Everything we know about the multiplication result.
+ // From now on use this value instead of 'mulSign' and 'mulExponent'.
+ // This is just a normal Decimal with significand and exponent.
+ // It has some 'roundingDigits' digits after the significand.
+ let mul: FmaMul = {
+ let significand = Self._mulSignificands(mulLhs, mulRhs)
+ assert(significand != 0, "Multiplication of 2 finite (non 0) numbers gave 0?")
+
+ // We have multiplication result: 'significand * 10^mulExponent'.
+ // Let's bring it into 'Self.precisionInDigits' range.
+ let digitCount = Self._getDecimalDigitCount(significand)
+
+ return FmaMul(
+ sign: mulSign,
+ signedExponent: mulExponent,
+ signedExponentWithoutRoundingDigits: mulExponent + digitCount.roundingDigitCount,
+ significand: significand,
+ digitCount: digitCount.digitCount,
+ roundingDigitCount: digitCount.roundingDigitCount
+ )
+ }()
+
+ // (lhs * rhs) + ±0
+ if add.significand == 0 {
+ return Self._fmaAddIsZero(
+ mul: mul,
+ addExponent: add.signedExponent,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // When the 'mul.significand' is small we can just use the standard addition
+ // algorithm (as expected).
+ //
+ // This will handle the following edge case:
+ // Since we do not have 'roundingDigits' it may happen that 'add' is just
+ // after 'mul' in which case 'add' is used for rounding.
+ // There is a very special case when we are power of 10 -> we change 'ulp'.
+ //
+ // (Also, for performance, as operating on DoubleBID is slower than on BID.)
+ if mul.significand.high == 0 && mul.significand.low <= Self.maxDecimalDigits {
+ assert(mul.roundingDigitCount == 0)
+
+ return Self._addFiniteOrZero(
+ lhs: (
+ sign: mul.sign,
+ signedExponent: mul.signedExponent,
+ significand: mul.significand.low
+ ),
+ rhs: add,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // The easiest thing to do would be to move 'mul' and 'add' into 'TripleBID',
+ // align them and add. But then our result would be in 'TripleBID' which
+ // would be the only place in this module that uses such wide type.
+ // Too much code to write just for the FMA.
+
+ // This path is quite common:
+ // - all exponent equal: 1E-2 + 1E-2*1E-2 = 1E-2 + 1E-4
+ // - mul by int: 1E-2 + 2E0 *1E-2 = 1E-2 + 2E-2
+ if add.signedExponent >= mul.signedExponent {
+ // Rescale 'add' to get to 'mul' exponent.
+ // This will also take care of: The preferred exponent is min(Q(x) + Q(y), Q(z)).
+ let addDigitCount: Int
+ (add, addDigitCount) = Self._quantize(add, toLowerExponent: mul.signedExponent)
+ assert(add.signedExponent >= mul.signedExponent)
+
+ // Is 'add' dominating the 'mul'?
+ // (lhs * rhs) + add = very_small + add = add
+ //
+ // Example for precision=7 (s=significand digit, r=rounding digit):
+ // add | sss sss s00 000 000 000 | E11 | |
+ // mul | sss sss srr r00 | E2 | 2+10=12 | False
+ // mul | ss sss ssr rr0 | E1 | 1+10=11 | False
+ // mul | s sss sss rrr | E0 | 0+10=10 | True
+ if mul.signedExponent + mul.digitCount < add.signedExponent {
+ return Self._fmaAddDominatesMul(
+ mul: mul,
+ add: add,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // If 'add' is inside 'mul' (or just a tiny bit outside), then we do not
+ // need the 3rd BID. In this case we can scale 'add' and simply add them.
+ //
+ // (This is only for performance, because equal exponents are very common.)
+ //
+ // Example for precision=7 (s=significand digit, r=rounding digit):
+ // mul | s sss sss rrr rrr r00 | E2 |
+ // add | sss sss s00 | E2 | 'add' is inside 'mul'
+ // add | sss sss s00 000 | E5 | 'add' is inside 'mul'
+ // add | s sss sss 000 000 000 | E9 | 'add' is inside 'mul'
+ // add | ss sss ss0 000 000 000 | E10 | Allowed via SPECIAL CASE.
+ // add | ss sss ss0 000 000 000 000 | E13 | Invalid. 'add' is partially outside 'mul'
+ //
+ // SPECIAL CASE - We know that 'DoubleBID' can always hold at least
+ // '2 * Self.precisionInDigits + 1' decimal digits, so we will use this
+ // value instead of '2 * Self.precisionInDigits'.
+ let maxAddDigitCountForInside = mul.signedExponent + 2 * Self.precisionInDigits + 1
+
+ if add.signedExponent + addDigitCount <= maxAddDigitCountForInside {
+ return Self._fmaAddIsInsideMul(
+ mul: mul,
+ add: add,
+ addDigitCount: addDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // Aligned 'add' is partially outside of 'mul'.
+ // We possibly need the 3rd BID.
+ //
+ // Example for precision=7 (s=significand digit, r=rounding digit):
+ // BID index | 111 111 122 222 223 333 333|
+ // mul | ss sss ssr rrr rrr 000| E3 |
+ // add | sss sss s00 000 000 000 000| E14 |
+ return Self._fmaAddIsPartiallyOutsideMul(
+ mul: mul,
+ add: add,
+ addDigitCount: addDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ assert(mul.signedExponent > add.signedExponent)
+ // We have filled all 'Self.precisionInDigits' digits.
+ // This means that 'mul' is already 'quantized'.
+ assert(mul.roundingDigitCount > 0, "We already handled: high=0, low<=Self.maxDecimalDigits")
+
+ // Is 'mul' dominating the 'add'?
+ // (lhs * rhs) + add = mul + very_small = mul
+ //
+ // We also have to avoid overlap with 'mul.roundingDigits', because:
+ // mul | sssssss rrrrrrr
+ // add | 9999999
+ // So adding '9999999' to 'roundingDigits' could increase significand.
+ //
+ // Example for precision=7 (s=significand digit; r=rounding digit):
+ // mul | sss sss srr rrr rr0 000 000 000 0 | E11 | |
+ // add | ss sss ss0 000 0 | E5 | 5+7=12 | False
+ // add | s sss sss 000 0 | E4 | 4+7=11 | False
+ // add | sss sss s00 0 | E3 | 3+7=10 | True
+ let addDigitCount = Self._getDecimalDigitCount(add.significand)
+
+ if add.signedExponent + addDigitCount < mul.signedExponent {
+ return Self._fmaMulDominatesAdd(
+ quantizedMul: mul,
+ add: add,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // At this point we know:
+ // add.exponent < mul.exponent <= add.exponent + addDigitCount
+ //
+ // For example (precision=7; s=significand; r=rounding):
+ // 1) partial overlap including 'mul.significand'
+ // mul | sss sss srr rrr 000 000 | E6 |
+ // add | sss sss sss 000 | E3 |
+ // 2) partial overlap on 'mul.roundingDigits'
+ // mul | sss sss srr rrr rr0 000 000 | E7 |
+ // add | sss sss sss 000 | E3 |
+ // 3) 'add' is just after 'mul'
+ // mul | sss sss srr rrr rr0 000 000 000 | sE10 |
+ // add | s sss sss 000 | sE3 |
+ return Self._fmaMulIsPartiallyOutsideAdd(
+ mul: mul,
+ add: add,
+ addDigitCount: addDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Quantize
+
+ private static func _quantize(
+ _ add: AddFiniteOrZero,
+ toLowerExponent newExponent: Int
+ ) -> (add: AddFiniteOrZero, digitCount: Int) {
+ let (significand, signedExponent, digitCount) = Self._quantizeToLowerExponent(
+ significand: add.significand,
+ oldSignedExponent: add.signedExponent,
+ newSignedExponent: newExponent
+ )
+
+ return (
+ add: AddFiniteOrZero(
+ sign: add.sign,
+ signedExponent: signedExponent,
+ significand: significand
+ ),
+ digitCount: digitCount
+ )
+ }
+
+ // MARK: - NaN, infinity
+
+ private static func _fmaNaN(
+ _ mulLhs: Self,
+ _ mulRhs: Self,
+ _ add: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ if mulLhs._isSignalingNaN || mulRhs._isSignalingNaN || add._isSignalingNaN {
+ status.set(.isInvalidOperation)
+ }
+
+ // The NaN checking order is a bit weird, but this is how Intel does it.
+
+ if mulRhs._isNaN {
+ return Self._nanResult_viaIEEE754_section62(mulRhs, status: &status)
+ }
+
+ if add._isNaN {
+ return Self._nanResult_viaIEEE754_section62(add, status: &status)
+ }
+
+ // https://www.youtube.com/watch?v=EtoMN_xi-AM
+ assert(mulLhs._isNaN, "'mulLhs' is just a Bruce Wayne, not NaNaNaNa Batman?")
+ return Self._nanResult_viaIEEE754_section62(mulLhs, status: &status)
+ }
+
+ private static func _fmaInfinity(
+ _ mulLhs: Self,
+ _ mulRhs: Self,
+ _ add: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ assert(!mulLhs._isNaN && !mulRhs._isNaN && !add._isNaN)
+
+ let mulSign = mulLhs._sign ^ mulRhs._sign
+
+ // (inf * rhs) + add
+ if mulLhs._isInfinite {
+ // (inf * 0) + add
+ if mulRhs._isZero {
+ status.set(.isInvalidOperation)
+ return ._nan
+ }
+
+ // (inf * rhs) + -inf = inf + -inf
+ if add._isInfinite && add._sign != mulSign {
+ status.set(.isInvalidOperation)
+ return ._nan
+ }
+
+ // (inf * rhs) + add = inf
+ return Self(canonical: mulSign | Self.infinityMask)
+ }
+
+ // (lhs * inf) + add
+ if mulRhs._isInfinite {
+ // (0 * inf) + add
+ if mulLhs._isZero {
+ status.set(.isInvalidOperation)
+ return ._nan
+ }
+
+ // (lhs * inf) + -inf = inf + -inf
+ if add._isInfinite && add._sign != mulSign {
+ status.set(.isInvalidOperation)
+ return ._nan
+ }
+
+ // (rhs * inf) + add = inf
+ return Self(canonical: mulSign | Self.infinityMask)
+ }
+
+ // (lhs * rhs) + inf
+ assert(add._isInfinite, "Buzz Lightyear can't go to 'add' and Beyond!?")
+ // We checked every other option, so:
+ assert(mulLhs._isZero || mulLhs._isFinite)
+ assert(mulRhs._isZero || mulRhs._isFinite)
+
+ return Self(canonical: add._sign | Self.infinityMask)
+ }
+
+ // MARK: - Zero
+
+ private static func _fmaMulIsZero(
+ mulExponent: Int,
+ add: AddFiniteOrZero,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // (0 * rhs) + add, where add != 0
+ // The preferred exponent is min(Q(x) + Q(y), Q(z)).
+ assert(add.significand != 0)
+ let sign = add.sign
+
+ if add.signedExponent <= mulExponent {
+ // 'add' has preferred exponent -> canonical add
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: add.significand,
+ signedExponent: add.signedExponent
+ )
+ }
+
+ // We have to bring 'add' into the 'mulExponent'.
+ let (significand, signedExponent, _) = Self._quantizeToLowerExponent(
+ significand: add.significand,
+ oldSignedExponent: add.signedExponent,
+ newSignedExponent: mulExponent
+ )
+
+ return Self._pack(
+ sign: sign,
+ significand: significand,
+ signedExponent: signedExponent,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ private static func _fmaAddIsZero(
+ mul: FmaMul,
+ addExponent: Int,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // The preferred exponent is min(Q(x) + Q(y), Q(z)).
+ // Btw. remember that at this point 'mul.exponent' is unchecked:
+ // - can be ultra big: 999999…
+ // - can be ultra small: -999999…
+ // 'Self._pack' can deal with it, but be careful in the next few lines.
+ var exponent = mul.signedExponentWithoutRoundingDigits
+ var significand = mul.significand
+ var roundingDigitCount = mul.roundingDigitCount
+
+ let addHasLowerExponent = addExponent < exponent
+ let mulExponentCanGoDown = exponent != Self.minSignedExponent
+ let mulHasAvailableDigits = mul.digitCount < Self.precisionInDigits
+
+ if addHasLowerExponent && mulExponentCanGoDown && mulHasAvailableDigits {
+ // We are in a single precision.
+ assert(mul.roundingDigitCount == 0)
+
+ // We have to bring 'mul' into the 'add' exponent.
+ // Or at least try to get as close as possible…
+ let addedDigitCount = Swift.min(
+ exponent - addExponent, // Get to 'add' exponent.
+ Self.precisionInDigits - mul.digitCount, // Available digit count.
+ exponent + Self.exponentBias // How low can exponent go?
+ )
+
+ assert(addedDigitCount > 0, "But we checked exponentCanGoDown/availableDigits?")
+
+ let pow10: BID = Tables.getPowerOf10(exponent: addedDigitCount)
+ significand = significand * pow10
+ exponent = exponent - addedDigitCount
+ roundingDigitCount = 0
+
+ // We are in a single precision with all digits filled
+ // (if the exponent allowed us).
+ assert(significand.high == 0 && significand.low <= Self.maxDecimalDigits)
+ }
+
+ return Self._pack(
+ sign: mul.sign,
+ significand: significand,
+ signedExponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Add.exponent >= mul.exponent
+
+ private static func _fmaAddDominatesMul(
+ mul: FmaMul,
+ add: AddFiniteOrZero,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // There is a 1 digit 'gap' between '1*10^add.exponent' and highest 'mul' digit.
+ // add: 1E7 = 10 000 000, signedExponent = 7
+ // mul: 11111E1 = 111 110, signedExponent + digitCount = 1+5 = 6
+ // ^ gap
+ assert(mul.signedExponent + mul.digitCount < add.signedExponent)
+ assert(mul.significand != 0, "mul=0, should be handled before calling this method")
+
+ // 'mul' is small when compared to 'add'.
+ // Most of the time its value will not matter, just a tiny thing used for
+ // rounding. Though when it matters ('toNearest…' roundings) we need to
+ // be precise for the whole 'Self.precisionInDigits' after the 'add'.
+ //
+ // Also, we want to unify our code with 'add' operation because of the tricky
+ // edge cases. This is an additional (but necessary) difficulty.
+ let mulSignificand: BID
+ let mulMaxDigit = mul.signedExponent + mul.digitCount
+ let minDigitToMatter = add.signedExponent - Self.precisionInDigits
+
+ if mulMaxDigit <= minDigitToMatter {
+ // The exact 'mul' value does not matter as long as it does not trigger
+ // halfway rounding. Can't be '0' because 'mul.significand != 0'.
+ mulSignificand = 1
+ } else {
+ // 'mul' is just after the 'add' (with possible 1 digit 'gap') -> full
+ // calculation with 'Self.precisionInDigits' precision.
+ let pow10: DoubleBID = Tables.getPowerOf10(exponent: mul.roundingDigitCount)
+ let (q, r) = mul.significand.quotientAndRemainder(dividingBy: pow10)
+ assert(q.high == 0 && q.low <= Self.maxDecimalDigits)
+ mulSignificand = BID(truncatingIfNeeded: q) + (r == 0 ? 0 : 1)
+ }
+
+ return Self._additionWithBigExponentDiscrepancy(
+ quantizedBigExponent: add,
+ smallExponent: (
+ sign: mul.sign,
+ // Example for precision=7:
+ // - mul: 1234567890E10 (more digits than precision!)
+ // - without rounding digits: 1234567E13
+ signedExponent: mul.signedExponentWithoutRoundingDigits,
+ significand: mulSignificand
+ ),
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ /// All 'add' bits overlap (maybe except for the highest bit, but it is still
+ /// within 'DoubleBID'). We do not need the 3rd BID.
+ private static func _fmaAddIsInsideMul(
+ mul: FmaMul,
+ add: AddFiniteOrZero,
+ addDigitCount: Int,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ assert(mul.signedExponent <= add.signedExponent)
+ assert(
+ add.signedExponent + addDigitCount <= mul.signedExponent + 2 * Self.precisionInDigits + 1
+ )
+
+ var exponent = mul.signedExponent
+
+ let addScale = add.signedExponent - exponent
+ let pow10: DoubleBID = Tables.getPowerOf10(exponent: addScale)
+ let addSignificandScaled = pow10 * add.significand
+
+ let (sign, significand) = Self._addSignificands(
+ lhsSign: mul.sign,
+ lhs: mul.significand,
+ rhsSign: add.sign,
+ rhs: addSignificandScaled
+ )
+
+ // Do we have an exact 0?
+ // There are some special rules about the sign of this thingie.
+ if significand == 0 {
+ return Self._additionExactZero(
+ lhsSign: mul.sign,
+ rhsSign: add.sign,
+ signedExponent: exponent,
+ rounding: rounding
+ )
+ }
+
+ let roundingDigitCount = Self._getRoundingDigitCount(significand)
+ exponent += roundingDigitCount
+
+ return Self._pack(
+ sign: sign,
+ significand: significand,
+ signedExponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ /// `add.exponent > mul.exponent`; some digits overlap.
+ private static func _fmaAddIsPartiallyOutsideMul(
+ mul: FmaMul,
+ add: AddFiniteOrZero,
+ addDigitCount: Int,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ assert(add.signedExponent > mul.signedExponent + mul.roundingDigitCount)
+ assert(add.signedExponent <= mul.signedExponent + mul.digitCount)
+ assert(
+ mul.significand.high != 0 || mul.significand.low > Self.maxDecimalDigits,
+ "'mul.significand' should have all 'Self.precisionInDigits' digits filled."
+ )
+
+ // Number of non-overlapping digits in 'mul' (the ones that 'stick out').
+ let exponentDiff = add.signedExponent - mul.signedExponent
+ assert(exponentDiff > 0)
+
+ // Resize 'add' to '2 * Self.precisionInDigits' digits.
+ // The idea is that by calculating to double precision we can safely round.
+ let addScale = Swift.min(
+ 2 * Self.precisionInDigits - addDigitCount,
+ exponentDiff
+ )
+
+ let addScalePow10: DoubleBID = Tables.getPowerOf10(exponent: addScale)
+ let addScaledSignificand = addScalePow10 * add.significand
+
+ // Align 'mul'
+ let mulRemainderDigitCount = exponentDiff - addScale
+ let pow10: DoubleBID = Tables.getPowerOf10(exponent: mulRemainderDigitCount)
+ let (
+ mulScaledSignificand,
+ mulRemainder
+ ) = mul.significand.quotientAndRemainder(dividingBy: pow10)
+
+ // Exponent for 'mulScaledSignificand' (which is DoubleBID):
+ // add = addScaledSignificand * 10^scaledExponent
+ let scaledExponent = add.signedExponent - addScale
+
+ return Self._fmaAddTripleBidWithRemainder(
+ mulSign: mul.sign,
+ mulScaledSignificand: mulScaledSignificand,
+ addSign: add.sign,
+ addScaledSignificand: addScaledSignificand,
+ signedExponent: scaledExponent,
+ remainderSign: mul.sign,
+ remainder: mulRemainder,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ /// Add `mul` + `add` then adjust with `remainder`.
+ /// `signedExponent` is for the whole `mulScaledSignificand/addScaledSignificand`
+ /// (they have the same exponent).
+ private static func _fmaAddTripleBidWithRemainder(
+ mulSign: Sign,
+ mulScaledSignificand: DoubleBID,
+ addSign: Sign,
+ addScaledSignificand: DoubleBID,
+ signedExponent: Int,
+ remainderSign: Sign,
+ remainder: DoubleBID,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ var (sign, significand) = Self._addSignificands(
+ lhsSign: mulSign,
+ lhs: mulScaledSignificand,
+ rhsSign: addSign,
+ rhs: addScaledSignificand
+ )
+
+ // If we come from one of the 'PartiallyOutside' methods then 'significand != 0'.
+ // This is important, because exact '0' has special rules about the sign.
+ //
+ // Proof (for add.exponent >= mul.exponent, similar for the other side):
+ // 1. We started with 'add.exponent >= mul.exponent'
+ // 2. We quantized 'add' to 'mul.exponent'
+ //
+ // 'mul' can look like this (precision=7; s=significand; r=rounding):
+ // mul = s sss sss rrr rrrE5
+ //
+ // Cases for 'significand' to be 0:
+ //
+ // a) 'Add' matches exactly with 's sss sss' from 'mul':
+ // mul = s sss sss rrr rrr E5
+ // add = s sss sss E11
+ // This case should be handled before calling this method (fast path that
+ // does not need the 3rd BID).
+ // It triggers this assertion (it is equal, not greater):
+ // assert(add.signedExponent > mul.signedExponent + mul.roundingDigitCount)
+ //
+ // b) 'Mul' ends with a bunch of '0'
+ // mul = s sss 000 rrr rrr E5
+ // add = s sss E14
+ // After quantization 'add' becomes:
+ // add = s sss 000 E11
+ // Which is the same case as a).
+ assert(significand != 0)
+
+ var roundingDigitCount = Self._getRoundingDigitCount(significand)
+ var exponent = signedExponent + roundingDigitCount
+
+ // Whatever remaining digits the 'remainder' holds, they will just modify
+ // the least significand digit by '1'. We are in double precision, so most
+ // of the time it will not change the final result.
+ if remainder != 0 {
+ // We have some 'remainder' digits -> we are inexact by definition.
+ status.set(.isInexact)
+
+ var isRemainderAwayFromZero = false
+ var isRemainderTowardZero = false
+
+ switch rounding {
+ case .up:
+ if sign.isPlus && remainderSign.isPlus { isRemainderAwayFromZero = true }
+ if sign.isMinus && remainderSign.isPlus { isRemainderTowardZero = true }
+
+ case .down:
+ if sign.isMinus && remainderSign.isMinus { isRemainderAwayFromZero = true }
+ if sign.isPlus && remainderSign.isMinus { isRemainderTowardZero = true }
+
+ case .towardZero:
+ if sign != remainderSign { isRemainderTowardZero = true }
+
+ case .toNearestOrEven,
+ .toNearestOrAwayFromZero:
+ // Example for different signs:
+ // -8390735022900000|00000000000000000 <- mul
+ // + +50000000000000000 <- add
+ // = -8390735022899999|50000000000000000 <- addition result
+ // +80288723120953 <- rounding
+ // They have different signs, so it is not a perfect '50000000000000000'
+ // (which could would round) it is a tiny bit below it -> no round.
+ isRemainderAwayFromZero = sign == remainderSign
+ isRemainderTowardZero = sign != remainderSign
+ }
+
+ if isRemainderAwayFromZero || isRemainderTowardZero {
+ // Add trailing rounding digit that represents 'remainder'.
+ // 'DoubleBID' always has space for at least '2*Self.precisionInDigits + 2'
+ // digits. We will use them like this:
+ // - 1 is potential overflow from 'add' + 'mul' addition
+ // - 1 we will introduce right now for rounding
+ let (s, overflow) = significand.multipliedReportingOverflow(by: 10 as BID)
+ assert(!overflow)
+ significand = s
+
+ if isRemainderAwayFromZero {
+ significand += 1
+ } else {
+ significand -= 1
+ }
+
+ let newRoundingDigitCount = Self._getRoundingDigitCount(significand)
+
+ if newRoundingDigitCount == roundingDigitCount {
+ // Rare case when significand was '10000…' we multiplied it by '10',
+ // but by subtracting '-1' we brought it back to the same digit count.
+ assert(isRemainderTowardZero)
+ exponent -= 1
+ } else {
+ // We just added a new rounding digit.
+ // Note that the exponent stays the same!
+ roundingDigitCount = newRoundingDigitCount
+ }
+ }
+ }
+
+ return Self._pack(
+ sign: sign,
+ significand: significand,
+ signedExponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Mul.exponent > add.exponent
+
+ /// `mul.exponent ≫ add.exponent`.
+ private static func _fmaMulDominatesAdd(
+ quantizedMul mul: FmaMul,
+ add: AddFiniteOrZero,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // '0' should have been handled before calling this method!
+ // This is a CRUCIAL assertion for the way this whole thing is written.
+ // From now on we will assume that 'add' has 'something'.
+ // The only thing that we will be concerned about is whether this 'something'
+ // has the same sign as 'mul' or not.
+ assert(add.significand != 0)
+
+ // Are we double width?
+ // Single width case should be handled before calling this method.
+ assert(mul.significand.high != 0 || mul.significand > Self.maxDecimalDigits)
+
+ // We have some 'add' digits -> we are inexact by definition.
+ status.set(.isInexact)
+
+ let pow10: DoubleBID = Tables.getPowerOf10(exponent: mul.roundingDigitCount)
+ let (q, r) = mul.significand.quotientAndRemainder(dividingBy: pow10)
+
+ assert(q.high == 0)
+ let significand = q.low
+ let roundingDigits = r
+ var direction = AdditionWithBigExponentDiscrepancy_RoundingDirection.none
+
+ switch rounding {
+ case .up:
+ // -123 (rounding digits: 000) + 0.1 = -122
+ if mul.sign.isMinus && roundingDigits == 0 && add.sign.isPlus { direction = .towardZero }
+ // 123 (rounding digits: 100) + xxx = 124
+ // 123 (rounding digits: 000) + 0.1 = 124
+ if mul.sign.isPlus && (roundingDigits != 0 || add.sign.isPlus) { direction = .awayFromZero }
+
+ case .down:
+ // -123 (rounding digits: 100) + xxx = -124
+ // -123 (rounding digits: 000) - 0.1 = -124
+ if mul.sign.isMinus && (roundingDigits != 0 || add.sign.isMinus) { direction = .awayFromZero }
+ // 123 (rounding digits: 000) - 0.1 = 122
+ if mul.sign.isPlus && roundingDigits == 0 && add.sign.isMinus { direction = .towardZero }
+
+ case .towardZero:
+ // -123 (rounding digits: 000) + 0.1 = -122
+ // 123 (rounding digits: 000) - 0.1 = 122
+ if roundingDigits == 0 && add.sign != mul.sign { direction = .towardZero }
+
+ case .toNearestOrEven,
+ .toNearestOrAwayFromZero:
+ // There is a very special case in the standard 'add' code here about
+ // rounding to toward '0' because we are power of 10 and we crossed the
+ // lower 'ulp'. This will not happen here, because we have some 'rounding
+ // digits'. Even if those digits are a single '0' it is enough to push
+ // 'add' away, so that it will never cross the lower 'ulp'.
+
+ let halfway = pow10 / 2
+ let isAboveHalfway = roundingDigits > halfway
+ || (roundingDigits == halfway && add.sign == mul.sign)
+
+#if DEBUG
+ // We can't be exactly 'halfway' because we have 'add'.
+ let __isHalfway = roundingDigits == halfway && add.significand == 0
+ assert(!__isHalfway, "We have 'add != 0'. We can't be halfway?")
+#endif
+
+ if isAboveHalfway { direction = .awayFromZero }
+ }
+
+ let exponent = mul.signedExponentWithoutRoundingDigits
+ assert(exponent >= Self.minSignedExponent, "But we dominate 'add', so how?")
+
+ return Self._additionWithBigExponentDiscrepancy_roundAndPack(
+ sign: mul.sign,
+ signedExponent: exponent,
+ quantizedSignificand: significand,
+ additionRounding: direction,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ /// `mul.exponent > add.exponent`; some digits overlap.
+ private static func _fmaMulIsPartiallyOutsideAdd(
+ mul: FmaMul,
+ add: AddFiniteOrZero,
+ addDigitCount: Int,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ assert(add.signedExponent < mul.signedExponent)
+ assert(mul.signedExponent <= add.signedExponent + addDigitCount)
+ assert(mul.roundingDigitCount > 0)
+
+ // Number of non-overlapping digits in 'add' (the ones that 'stick out').
+ let exponentDiff = mul.signedExponent - add.signedExponent
+ assert(exponentDiff > 0)
+
+ // Resize 'mul' to '2 * Self.precisionInDigits' digits.
+ // The idea is that by calculating to double precision we can safely round.
+ let mulScale = Swift.min(
+ 2 * Self.precisionInDigits - mul.digitCount,
+ exponentDiff
+ )
+
+ assert(mulScale <= Self.precisionInDigits, "Because: mul.roundingDigitCount > 0")
+ let mulScalePow10: BID = Tables.getPowerOf10(exponent: mulScale)
+ let mulScaledSignificand = mul.significand * mulScalePow10
+
+ // Align 'add'.
+ let addRemainderDigitCount = exponentDiff - mulScale
+ let pow10: BID = Tables.getPowerOf10(exponent: addRemainderDigitCount)
+ let qr = add.significand.quotientAndRemainder(dividingBy: pow10)
+ let addScaledSignificand = DoubleBID(high: 0, low: qr.quotient)
+ let addRemainder = DoubleBID(high: 0, low: qr.remainder)
+
+ // Exponent for 'mulScaledSignificand' (which is DoubleBID):
+ // mul = mulScaledSignificand * 10^scaledExponent
+ let scaledExponent = mul.signedExponent - mulScale
+
+ return Self._fmaAddTripleBidWithRemainder(
+ mulSign: mul.sign,
+ mulScaledSignificand: mulScaledSignificand,
+ addSign: add.sign,
+ addScaledSignificand: addScaledSignificand,
+ signedExponent: scaledExponent,
+ remainderSign: add.sign,
+ remainder: addRemainder,
+ rounding: rounding,
+ status: &status
+ )
+ }
+}
diff --git a/Sources/Decimal/Decimal+Hash.swift b/Sources/Decimal/Decimal+Hash.swift
new file mode 100644
index 0000000..c2f76e0
--- /dev/null
+++ b/Sources/Decimal/Decimal+Hash.swift
@@ -0,0 +1,48 @@
+// swiftlint:disable line_length
+
+extension DecimalMixin {
+
+ public func _hash(into hasher: inout Hasher) {
+ if self._isNaN {
+ // Tbh. it does not matter what we do here. 'Hash' is just a shortcut
+ // before the real equality, and 'NaNs' are never be equal to anything.
+ //
+ // That said… there is a potential attack vector for certain dictionary
+ // implementations where you pack them with NaN, and bring overall
+ // performance to O(n).
+ //
+ // Anyway, things go into the dictionary, but nothing gets out!
+ hasher.combine(self.bid)
+ return
+ }
+
+ if self._isInfinite {
+ // inf == inf
+ // Regardless of the remaining 'significand' bits.
+ let sign = self.bid & Self.signMask
+ hasher.combine(sign | Self.infinityMask)
+ return
+ }
+
+ let unpack = self._unpackFiniteOrZero()
+
+ if unpack.significand.isZero {
+ // 0 == 0
+ // Regardless of the sign and exponent.
+ // This will also handle non-canonical.
+ let oneZeroToRuleThemAll_oneZeroToFindThem_oneZeroToBringThemAll_andInTheDarknessBindThem = Self._zero
+ hasher.combine(oneZeroToRuleThemAll_oneZeroToFindThem_oneZeroToBringThemAll_andInTheDarknessBindThem.bid)
+ return
+ }
+
+ let sign = unpack.sign.bid
+
+ let (significand, exponent, _) = Self._quantizeToUseAllDecimalDigits(
+ significand: unpack.significand,
+ exponent: unpack.exponent
+ )
+
+ hasher.combine(sign | significand)
+ hasher.combine(exponent)
+ }
+}
diff --git a/Sources/Decimal/Decimal+Init.swift b/Sources/Decimal/Decimal+Init.swift
new file mode 100644
index 0000000..a94493d
--- /dev/null
+++ b/Sources/Decimal/Decimal+Init.swift
@@ -0,0 +1,21 @@
+extension DecimalMixin {
+
+ internal static func _init(payload: BID, signaling: Bool) -> Self {
+ precondition(
+ (payload & ~Self.nanPayloadMask) == 0,
+ "NaN payload is not encodable."
+ )
+
+ let nan = signaling ? Self.nanSignalingMask : Self.nanQuietMask
+ let significand = payload & Self.nanPayloadMask
+
+ // If payload is not canonical, then we will not be canonical.
+ return Self(unchecked: nan | significand)
+ }
+
+ internal static func _init(signOf: Self, magnitudeOf: Self) -> Self {
+ // If the 'magnitudeOf' is not canonical then the output will not be canonical.
+ let bid = (signOf.bid & Self.signMask) | (magnitudeOf.bid & ~Self.signMask)
+ return Self(unchecked: bid)
+ }
+}
diff --git a/Sources/Decimal/Decimal+Int.swift b/Sources/Decimal/Decimal+Int.swift
new file mode 100644
index 0000000..56dd64c
--- /dev/null
+++ b/Sources/Decimal/Decimal+Int.swift
@@ -0,0 +1,292 @@
+// MARK: - From Int
+
+extension DecimalMixin {
+
+ /// Will set 'isInexact' flag on status if needed.
+ internal static func _init(
+ _ int: T,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ guard let magnitude = UInt64(exactly: int.magnitude) else {
+ preconditionFailure("\(Self.self) does not support integers over 64 bits.")
+ }
+
+ let isNegative = int < (0 as T)
+ let sign: Sign = isNegative ? .minus : .plus
+
+ // Exact without rounding digits?
+ if let s = BID(exactly: magnitude), s <= Self.maxDecimalDigits {
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: s,
+ signedExponent: 0
+ )
+ }
+
+ let digitCount = Tables.getDecimalDigitCount(magnitude)
+ let roundingDigitCount = digitCount - Self.precisionInDigits
+ let signedExponent = roundingDigitCount
+
+ return Self._pack(
+ sign: sign,
+ significand: magnitude,
+ signedExponent: signedExponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+}
+
+// MARK: - To Int
+
+extension FixedWidthInteger {
+ // A Boolean value indicating whether this type is an unsigned integer type.
+ fileprivate static var isUnsigned: Bool { !self.isSigned }
+}
+
+extension DecimalMixin {
+
+ /// Method for Intel tests.
+ internal func _toInt(
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> T {
+ // This method does not set the 'isInexact' flag.
+ var s = DecimalStatus()
+ let result: T = self._toExactlyInt(rounding: rounding, status: &s)
+
+ // Copy flags, except for 'isInexact'.
+ s.clear(.isInexact)
+ status.set(s)
+
+ return result
+ }
+
+ /// Method for Intel tests.
+ /// - `status.isInexact` - result is not 'exact'
+ /// - `status.isInvalidOperation` - unrepresentable value
+ internal func _toExactlyInt(
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> T {
+ if !self._isFinite {
+ return Self._toUnrepresentableInt(status: &status)
+ }
+
+ let unpack = self._unpackFiniteOrZero()
+
+ if unpack.significand.isZero {
+ return 0
+ }
+
+ precondition(
+ T.bitWidth <= 64,
+ "\(Self.self) does not support integers over 64 bits."
+ )
+
+ let exponent = unpack.exponent.signed
+ let significand = unpack.significand.canonical
+ let digitCount = Self._getDecimalDigitCount(significand)
+
+ let totalDigitCount = digitCount + exponent
+
+ // Is magnitude between 0 and 1?
+ // 123E-3 = 0.123 -> 0
+ // 123E-4 = 0.0123 -> 0 etc.
+ // The exact result depends on the rounding.
+ if totalDigitCount <= 0 {
+ let int = Self._toRoundedIntWithMagnitudeLessThan1(
+ sign: unpack.sign,
+ exponent: exponent,
+ significand: significand,
+ significandDigitCount: digitCount,
+ rounding: rounding
+ )
+
+ assert(-1 <= int && int <= 1, "-1, 0, 1")
+
+ if T.isUnsigned && int == -1 {
+ return Self._toUnrepresentableInt(status: &status)
+ }
+
+ status.set(.isInexact)
+ return T(int)
+ }
+
+ // Negative decimal to unsigned Int? -> nope.
+ // Except for -1 < d < 0, because those depend on rounding, but we already
+ // handled them.
+ if T.isUnsigned && unpack.sign.isMinus {
+ return Self._toUnrepresentableInt(status: &status)
+ }
+
+ // Do you even l̵i̵f̵t̵ fit? 1E1000 into UInt8 -> nope.
+ // For signed 2-complement types -> negative numbers have greater range.
+ let maxMagnitude = Swift.max(T.min.magnitude, T.max.magnitude)
+ let maxDigitCount = Tables.getDecimalDigitCount(maxMagnitude)
+
+ if totalDigitCount > maxDigitCount {
+ return Self._toUnrepresentableInt(status: &status)
+ }
+
+ typealias Magnitude = T.Magnitude
+ assert(0 < totalDigitCount && totalDigitCount <= maxDigitCount)
+
+ // We have the correct digit count, but we can still overflow.
+ // 123E0 -> 123, no rounding
+ // 999E0 as UInt8 -> nope
+ if exponent == 0, let m = Magnitude(exactly: significand) {
+ return Self._toInt(sign: unpack.sign, magnitude: m, status: &status)
+ }
+
+ // 123E1 = 1230, no rounding
+ if exponent > 0 {
+ // Both 'significand' and 'pow10' are representable (separately),
+ // because we checked the total digit count.
+ let s = Magnitude(truncatingIfNeeded: significand)
+ let pow10: Magnitude = Tables.getPowerOf10(exponent: exponent)
+ let (m, overflow) = s.multipliedReportingOverflow(by: pow10)
+
+ // Overflow when:
+ // 90E1 -> UInt8
+ // mul = 990 > UInt8.max = 255
+ // Note that but both 990 and 255 have 3 digits.
+ if !overflow {
+ return Self._toInt(sign: unpack.sign, magnitude: m, status: &status)
+ }
+ }
+
+ // 123E-1 = 12.3 -> 12, with rounding
+ if exponent < 0 {
+ let pow10: BID = Tables.getPowerOf10(exponent: -exponent)
+ var (quotient, remainder) = significand.quotientAndRemainder(dividingBy: pow10)
+
+ let isRoundingAway = Self._isRoundingAwayFromZero(
+ sign: unpack.sign,
+ significand: quotient,
+ roundingDigits: remainder,
+ halfway: pow10 / 2,
+ rounding: rounding
+ )
+
+ if isRoundingAway {
+ quotient += 1
+ }
+
+ // Cast fails for:
+ // 9999999E-4 -> UInt8 towardZero
+ // quotient = 999
+ // UInt8.max = 255
+ if let m = Magnitude(exactly: quotient) {
+ return Self._toInt(
+ sign: unpack.sign,
+ magnitude: m,
+ status: &status,
+ isExact: remainder == 0
+ )
+ }
+ }
+
+ return Self._toUnrepresentableInt(status: &status)
+ }
+
+ private static func _toInt(
+ sign: Sign,
+ magnitude: T.Magnitude,
+ status: inout DecimalStatus,
+ isExact: Bool = true
+ ) -> T {
+ let isNegative = sign.isMinus
+
+ // This path handles all of the unsigned numbers (and some of the signed).
+ if magnitude <= T.max.magnitude {
+ if !isExact {
+ status.set(.isInexact)
+ }
+
+ let n = T(truncatingIfNeeded: magnitude)
+ return isNegative ? (-1 * n) : n
+ }
+
+ assert(T.isSigned)
+ if isNegative && magnitude == T.min.magnitude {
+ if !isExact {
+ status.set(.isInexact)
+ }
+
+ return T.min
+ }
+
+ // Magnitude is not representable as a signed type.
+ // For example 500 (UInt8) as Int8.
+ return Self._toUnrepresentableInt(status: &status)
+ }
+
+ /// Round `|decimal| < 1`.
+ private static func _toRoundedIntWithMagnitudeLessThan1(
+ sign: Sign,
+ exponent: Int,
+ significand: BID,
+ significandDigitCount digitCount: Int,
+ rounding: DecimalFloatingPointRoundingRule
+ ) -> Int {
+ let isPositive = sign.isPlus
+
+ switch rounding {
+ case .up:
+ // 0.1 -> 1
+ // -0.1 -> 0
+ return isPositive ? 1 : 0
+
+ case .down:
+ // 0.1 -> 0
+ // -0.1 -> error
+ return isPositive ? 0 : -1
+
+ case .towardZero:
+ // 0.1 -> 0
+ // -0.1 -> 0
+ return 0
+
+ case .toNearestOrEven,
+ .toNearestOrAwayFromZero:
+ // 123E-10 = 0.0_000_000_123 -> 0
+ // Exponent is negative so we have to '-exponent'.
+ let exponentAbs = -exponent
+
+ if digitCount < exponentAbs {
+ return 0
+ }
+
+ // 123E-3 = 0.123
+ assert(digitCount == exponentAbs)
+ let pow10: BID = Tables.getPowerOf10(exponent: exponentAbs)
+ let halfway = pow10 / 2
+
+ if significand < halfway {
+ return 0
+ }
+
+ // Halfway with 'toNearestOrEven' is '0'.
+ if rounding == .toNearestOrEven && significand == halfway {
+ return 0
+ }
+
+ // We are either:
+ // - toNearestOrEven - '> halfway'
+ // - toNearestOrAwayFromZero - '>= halfway'
+ //
+ // This means rounding away from '0'.
+ return isPositive ? 1 : -1
+ }
+ }
+
+ private static func _toUnrepresentableInt(
+ status: inout DecimalStatus
+ ) -> T {
+ status.set(.isInvalidOperation)
+ return 1 << (T.bitWidth - 1)
+ }
+}
diff --git a/Sources/Decimal/Decimal+LogB+ScaleB.swift b/Sources/Decimal/Decimal+LogB+ScaleB.swift
new file mode 100644
index 0000000..1947e1c
--- /dev/null
+++ b/Sources/Decimal/Decimal+LogB+ScaleB.swift
@@ -0,0 +1,211 @@
+extension DecimalMixin {
+
+ // MARK: - ScaleB
+
+ internal static func _init(
+ sign: FloatingPointSign,
+ exponent: Int,
+ significand: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // sourceFormat scaleB(source, logBFormat)
+ //
+ // scaleB(x, N) is x × b N for integral values N. The result is computed as
+ // if the exact product were formed and then rounded to the destination format,
+ // subject to the applicable rounding-direction attribute. When logBFormat
+ // is a floating-point format, the behavior of scaleB is language-defined
+ // when the second operand is non-integral.
+ //
+ // For non-zero values of N, scaleB(±0, N) returns ±0 and scaleB(±∞, N)
+ // returns ±∞. For zero values of N, scaleB(x, N) returns x.
+ //
+ // The preferred exponent is Q(x) + N.
+
+ // What is the sign of the result?
+ //
+ // sign | exponent | significand | Double |
+ // + | 2 | 1.2345 | 4.938 |
+ // + | 2 | -1.2345 | -4.938 |
+ // - | 2 | 1.2345 | -4.938 |
+ // - | 2 | -1.2345 | 4.938 |
+ //
+ // Basically: sign equal -> plus; sign different -> minus.
+ let isSignEqual = (sign == .minus) == significand._isNegative
+ let sign: Sign = isSignEqual ? .plus : .minus
+
+ if significand._isNaN {
+ // For sNaN the result of this function will not obey IEEE-754.
+ //
+ // Swift returns sNaN (with no flags?):
+ // let nan = Double(nan: 123, signaling: true)
+ // print(Double(sign: .plus, exponent: 1, significand: nan)) // snan(0x7b)
+ //
+ // IEEE-754 -> 6.2 Operations with NaNs -> returns NaN:
+ // Under default exception handling, any operation signaling an invalid
+ // operation exception and for which a floating-point result is to be
+ // delivered shall deliver a quiet NaN.
+ //
+ // The only exception is character sequence conversion.
+ //
+ // If the payload is not canonical, then oh well…
+ let keep = significand.bid & ~Self.signMask
+ return Self(unchecked: sign | keep)
+ }
+
+ if significand._isInfinite {
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ let unpack = significand._unpackFiniteOrZero()
+ let oldExponent = unpack.exponent.signed
+ let (newExponent, overflow) = oldExponent.addingReportingOverflow(exponent)
+
+ // '0' becomes '0' with clamped 'newExponent'.
+ // No status flags are raised (even on overflow).
+ // Intel works differently, but I think this is a sensible default.
+ if unpack.significand.isZero {
+ let signedExponent: Int
+
+ if overflow {
+ signedExponent = exponent > 0 ? Self.maxSignedExponent : Self.minSignedExponent
+ } else {
+ signedExponent = clamp(
+ newExponent,
+ min: Self.minSignedExponent,
+ max: Self.maxSignedExponent
+ )
+ }
+
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: 0,
+ signedExponent: signedExponent
+ )
+ }
+
+ if overflow {
+ if exponent > 0 {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(sign: sign, rounding: rounding)
+ }
+
+ status.set(.isUnderflowInexact)
+ return Self._roundInfinitelySmallValue(
+ sign: sign,
+ preferredSignedExponentForZero: Self.minSignedExponent,
+ rounding: rounding
+ )
+ }
+
+ return Self._pack(
+ sign: sign,
+ significand: unpack.significand.canonical,
+ signedExponent: newExponent,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Exponent - LogB
+
+ internal func _getExponent(status: inout DecimalStatus) -> Int {
+ // logBFormat logB(source)
+ //
+ // logB(x) is the exponent e of x, a signed integral value, determined as
+ // though x were represented with infinite range and minimum exponent.
+ // Thus 1 ≤ scaleB(x, −logB(x)) < b when x is positive and finite.
+ // logB(1) is +0.
+ //
+ // When logBFormat is a floating-point format, logB(NaN) is a NaN,
+ // logB(∞) is +∞, and logB(0) is −∞ and signals the divideByZero exception.
+ //
+ // When logBFormat is an integer format, then logB(NaN), logB(∞), and logB(0)
+ // return language-defined values outside the range ±2 × (emax + p − 1) and
+ // signal the invalid operation exception.
+ //
+ // The preferred exponent is 0.
+ //
+ // NOTE — For positive finite x, the value of logB(x) is floor(log2 (x)) in
+ // a binary format, and is floor(log10 (x)) in a decimal format.
+ //
+ // 7.2 Invalid operation
+ // For operations producing no result in floating-point format, the operations
+ // that signal the invalid operation exception are:
+ // k) logB(NaN), logB(∞), or logB(0) when logBFormat is an integer format (see 5.3.3).
+ //
+ // 7.3 Division by zero
+ // The divideByZero exception shall be signaled if and only if an exact
+ // infinite result is defined for an operation on finite operands. The
+ // default result of divideByZero shall be an ∞ correctly signed according to
+ // the operation:
+ // ― For logB(0) when logBFormat is a floating-point format, the sign of the
+ // infinity is minus (−∞).
+
+ if self._isInfiniteOrNaN {
+ status.set(.isInvalidOperation)
+ return Int.max
+ }
+
+ let unpack = self._unpackFiniteOrZero()
+
+ if unpack.significand.isZero {
+ status.set(.isInvalidOperation)
+ return Int.min
+ }
+
+ let digitCount = Self._getDecimalDigitCount(unpack.significand)
+ let exponent = unpack.exponent.signed
+ return exponent + digitCount - 1
+ }
+
+ // MARK: - Significand
+
+ /// Cbid: bid64_frexp (modified for Swift semantics)
+ internal func _getSignificand() -> Self {
+ if self._isNaN {
+ // We will return positive value, even though 'Swift.Double' returns negative.
+ // This is needed to preserve following idiom:
+ // let x0 = F(sign: x.sign, exponent: x.exponent, significand: x.significand)
+ // assert(x.bid == x0.bid)
+ //
+ // On '-Double.nan' the result of this idiom would be 'nan' instead of '-nan'.
+ //
+ // If the payload is not canonical, then oh well…
+ let bid = self.bid & (~Self.signMask)
+ return Self(unchecked: bid)
+ }
+
+ if self._isInfinite {
+ return Self._infinity
+ }
+
+ // For finite values we have to return positive value.
+ let unpack = self._unpackFiniteOrZero()
+
+ // This will also handle non-canonical values.
+ if unpack.significand.isZero {
+ // 0 with 00_01_10 encoding
+ return Self(canonical: unpack.exponent.biased << Self.exponentShift_00_01_10)
+ }
+
+ let digitCount = Self._getDecimalDigitCount(unpack.significand)
+ let maxSignificand_00_01_10 = BID(1) << Self.exponentShift_00_01_10
+
+ assert(Self.exponentBias > digitCount)
+ let newExponent = BID(Self.exponentBias - digitCount) + 1
+
+ if unpack.significand.canonical < maxSignificand_00_01_10 {
+ let mask = maxSignificand_00_01_10 - 1
+ let significand = self.bid & mask
+ let exponent = newExponent << Self.exponentShift_00_01_10
+ return Self(canonical: significand | exponent)
+ }
+
+ let mask = (BID(1) << Self.exponentShift_11) - 1
+ let significand = self.bid & mask
+ let exponent = newExponent << Self.exponentShift_11
+ return Self(canonical: Self.combinationHighBits11Mask | significand | exponent)
+ }
+}
diff --git a/Sources/Decimal/Decimal+Minimum+Maximum.swift b/Sources/Decimal/Decimal+Minimum+Maximum.swift
new file mode 100644
index 0000000..ce98629
--- /dev/null
+++ b/Sources/Decimal/Decimal+Minimum+Maximum.swift
@@ -0,0 +1,157 @@
+extension DecimalMixin {
+
+ // MARK: - Minimum
+
+ internal static func _minimum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ // minNum(x, y) is the canonicalized number x if x < y, y if y < x, the
+ // canonicalized number if one operand is a number and the other a quiet NaN.
+ // Otherwise it is either x or y, canonicalized (this means results might
+ // differ among implementations).
+ // When either x or y is a signalingNaN, then the result is according to 6.2.
+ let x = Self.makeCanonical(x)
+ let y = Self.makeCanonical(y)
+
+ switch Self._compare(x, y) {
+ case .nan:
+ return Self.handleNaN(x, y, status: &status)
+
+ case .less, .equal:
+ return x
+
+ case .greater:
+ return y
+ }
+ }
+
+ internal static func _minimumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ // minNumMag(x, y) is the canonicalized number
+ // x if |x| < |y|
+ // y if |y| < |x|
+ // otherwise minNum(x, y).
+ let x = Self.makeCanonical(x)
+ let y = Self.makeCanonical(y)
+
+ switch Self._compare(x._magnitude, y._magnitude) {
+ case .nan:
+ return Self.handleNaN(x, y, status: &status)
+
+ case .less:
+ return x
+
+ case .equal:
+ var s = DecimalStatus()
+ let isLessEqual = x._isLessThanOrEqualTo(y, status: &s)
+ assert(s.isEmpty)
+ return isLessEqual ? x : y
+
+ case .greater:
+ return y
+ }
+ }
+
+ // MARK: - Maximum
+
+ internal static func _maximum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ // maxNum(x, y) is the canonicalized number y if x < y, x if y < x, the
+ // canonicalized number if one operand is a number and the other a quiet NaN.
+ // Otherwise it is either x or y, canonicalized (this means results might
+ // differ among implementations).
+ // When either x or y is a signalingNaN, then the result is according to 6.2.
+ let x = Self.makeCanonical(x)
+ let y = Self.makeCanonical(y)
+
+ switch Self._compare(x, y) {
+ case .nan:
+ return Self.handleNaN(x, y, status: &status)
+
+ case .less:
+ return y
+
+ case .equal, .greater:
+ return x
+ }
+ }
+
+ internal static func _maximumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ // maxNumMag(x, y) is the canonicalized number
+ // x if |x| > |y|
+ // y if |y| > |x|
+ // otherwise maxNum(x, y).
+ let x = Self.makeCanonical(x)
+ let y = Self.makeCanonical(y)
+
+ switch Self._compare(x._magnitude, y._magnitude) {
+ case .nan:
+ return Self.handleNaN(x, y, status: &status)
+
+ case .less:
+ return y
+
+ case .equal:
+ var s = DecimalStatus()
+ let isLess = x._isLess(than: y, status: &s)
+ assert(s.isEmpty)
+ return isLess ? y : x
+
+ case .greater:
+ return x
+ }
+ }
+
+ // MARK: - Helpers
+
+ private static func makeCanonical(_ d: Self) -> Self {
+ if d._isNaN {
+ let nan = d.bid & (Self.signMask | Self.nanSignalingMask)
+ let payload = d._unpackNaN()
+ return Self(canonical: nan | payload.canonical)
+ }
+
+ if d._isInfinite {
+ let sign = d.bid & Self.signMask
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ let unpack = d._unpackFiniteOrZero()
+ return Self(canonical: unpack)
+ }
+
+ private static func handleNaN(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ assert(x._isNaN || y._isNaN)
+
+ // When either x or y is a signalingNaN, then the result is according to 6.2.
+ if x._isSignalingNaN || y._isSignalingNaN {
+ return Self._nanResult_viaIEEE754_section62(x, y, status: &status)
+ }
+
+ // minNum(x, y) is (…), the canonicalized number if one operand is a number
+ // and the other a quiet NaN.
+ // If both are 'nan' then return x.
+ if y._isNaN {
+ return x
+ }
+
+ assert(x._isNaN)
+ return y
+ }
+}
diff --git a/Sources/Decimal/Decimal+Mul.swift b/Sources/Decimal/Decimal+Mul.swift
new file mode 100644
index 0000000..81bca4b
--- /dev/null
+++ b/Sources/Decimal/Decimal+Mul.swift
@@ -0,0 +1,119 @@
+extension DecimalMixin {
+
+ internal func _multiplied(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // formatOf-multiplication(source1, source2)
+ //
+ // The operation multiplication(x, y) computes x × y.
+ // The preferred exponent is Q(x) + Q( y).
+ //
+ // 6.1 Infinity arithmetic
+ // Operations on infinite operands are usually exact and therefore signal no
+ // exceptions, including, among others:
+ // ― multiplication(∞, x) or multiplication(x, ∞) for finite or infinite x ≠ 0
+ //
+ // 7.2 Invalid operation
+ // For operations producing results in floating-point format, the default
+ // result of an operation that signals the invalid operation exception shall
+ // be a quiet NaN that should provide some diagnostic information (see 6.2).
+ //
+ // These operations are:
+ // b) multiplication: multiplication(0, ∞) or multiplication(∞, 0)
+
+ if self._isNaN || other._isNaN {
+ return Self._nanResult_viaIEEE754_section62(self, other, status: &status)
+ }
+
+ let sign = self._sign ^ other._sign
+
+ if self._isInfinite {
+ if other._isZero {
+ status.set(.isInvalidOperation)
+ return ._nan
+ }
+
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ if other._isInfinite {
+ if self._isZero {
+ status.set(.isInvalidOperation)
+ return ._nan
+ }
+
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ let lhs = self._unpackFiniteOrZero()
+ let rhs = other._unpackFiniteOrZero()
+ let exponentSum = lhs.exponent.signed + rhs.exponent.signed
+
+ if lhs.significand.isZero || rhs.significand.isZero {
+ let clampedExponent = clamp(
+ exponentSum,
+ min: Self.minSignedExponent,
+ max: Self.maxSignedExponent
+ )
+ let biased = Self._addBias(exponent: clampedExponent)
+ return Self(canonical: sign | biased << Self.exponentShift_00_01_10)
+ }
+
+ let significand = Self._mulSignificands(lhs, rhs)
+
+ // We have our result: 'significand * 10^exponentSum'.
+ // Simplest case it when 'significand' fits inside 'Self.precisionInDigits'.
+ // (This is for performance, as operating on DoubleBID is slower than on BID.)
+ if significand.high == 0 && significand.low <= Self.maxDecimalDigits {
+ // This assertion is more of a curiosity. It does not really matter.
+ // Even for 0 the sign follows the normal rules:
+ // Double.leastNonzeroMagnitude * (-Double.leastNonzeroMagnitude) // -0.0
+ assert(significand.low != 0, "We already handled 0?")
+
+ return Self._pack(
+ sign: sign,
+ significand: significand.low,
+ signedExponent: exponentSum,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // Now we have to bring 'mul' into 'Self.precisionInDigits' potentially
+ // rounding and modifying exponent.
+ let roundingDigitCount = Self._getRoundingDigitCount(significand)
+ let exponent = lhs.exponent.signed
+ + rhs.exponent.signed
+ + roundingDigitCount
+
+ return Self._pack(
+ sign: sign,
+ significand: significand,
+ signedExponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ internal static func _mulSignificands(
+ _ lhs: FiniteUnpack,
+ _ rhs: FiniteUnpack
+ ) -> DoubleBID {
+ return Self._mulSignificands(
+ lhs.significand.canonical,
+ rhs.significand.canonical
+ )
+ }
+
+ internal static func _mulSignificands(
+ _ lhs: BID,
+ _ rhs: BID
+ ) -> DoubleBID {
+ let m = lhs.multipliedFullWidth(by: rhs)
+ return DoubleBID(high: m.high, low: m.low)
+ }
+}
diff --git a/Sources/Decimal/Decimal+Next.swift b/Sources/Decimal/Decimal+Next.swift
new file mode 100644
index 0000000..072effc
--- /dev/null
+++ b/Sources/Decimal/Decimal+Next.swift
@@ -0,0 +1,84 @@
+extension DecimalMixin {
+
+ // MARK: - Up
+
+ internal func _nextUp(status: inout DecimalStatus) -> Self {
+ // When x is NaN, then the result is according to 6.2.
+ if self._isNaN {
+ return Self._nanResult_viaIEEE754_section62(self, status: &status)
+ }
+
+ // nextUp(+∞) is +∞
+ // nextUp(−∞) is the finite negative number largest in magnitude
+ if self._isInfinite {
+ return self._isNegative ? Self._minusGreatestFiniteMagnitude : Self._infinity
+ }
+
+ // Edge cases
+ if self.bid == Self._minusLeastNonzeroMagnitude.bid {
+ // The preferred exponent is the least possible: -0 * 10^emin
+ return Self(canonical: Self.signMask)
+ }
+
+ if self.bid == Self._greatestFiniteMagnitude.bid {
+ return Self._infinity
+ }
+
+ let unpack = self._unpackFiniteOrZero()
+
+ // nextUp(±0) is the positive number of least magnitude in x’s format.
+ if unpack.significand.isZero {
+ return Self._leastNonzeroMagnitude
+ }
+
+ // Increase significand (multiply by 10) while decreasing exponent (-= 1).
+ // This will allow us to just += 1 the significand later. It will also
+ // satisfy 'The preferred exponent is the least possible' from IEEE-754.
+ var (significand, exponent, _) = Self._quantizeToUseAllDecimalDigits(
+ significand: unpack.significand,
+ exponent: unpack.exponent
+ )
+
+ if unpack.sign.isPlus {
+ significand += 1
+
+ // +1 put us in the non-canonical territory.
+ if significand == (Self.maxDecimalDigits + 1) {
+ significand /= 10
+ exponent += 1
+ }
+ } else {
+ significand -= 1
+
+ // Special case for things like:
+ // (-1E-238).nextUp
+ // = (-1000000000000000E-253).nextUp
+ // = -999999999999999E-253
+ // = -9999999999999999E-254
+ if significand == Self.maxDecimalDigits / 10 && exponent != Self.minSignedExponent {
+ significand = Self.maxDecimalDigits
+ exponent -= 1
+ }
+ }
+
+ return Self._packWithoutChecks(
+ sign: unpack.sign,
+ significand: significand,
+ signedExponent: exponent
+ )
+ }
+
+ // MARK: - Down
+
+ internal func _nextDown(status: inout DecimalStatus) -> Self {
+ // From IEEE-754: nextDown(x) is −nextUp(−x).
+
+ var d = self
+ d._negate()
+
+ var up = d._nextUp(status: &status)
+ up._negate()
+
+ return up
+ }
+}
diff --git a/Sources/Decimal/Decimal+Pack+Unpack.swift b/Sources/Decimal/Decimal+Pack+Unpack.swift
new file mode 100644
index 0000000..9a1fc77
--- /dev/null
+++ b/Sources/Decimal/Decimal+Pack+Unpack.swift
@@ -0,0 +1,559 @@
+extension DecimalMixin {
+
+ // MARK: - Pack without checks
+
+ internal static func _packWithoutChecks(
+ sign: Sign,
+ significand: BID,
+ signedExponent: Int
+ ) -> Self {
+ let biased = Self._addBias(exponent: signedExponent)
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: significand,
+ biasedExponent: biased
+ )
+ }
+
+ internal static func _packWithoutChecks(
+ sign: Sign,
+ significand: BID,
+ exponent: Exponent
+ ) -> Self {
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: significand,
+ biasedExponent: exponent.biased
+ )
+ }
+
+ /// No overflow/underflow checking or checking for significand above
+ /// `Self.maxDecimalDigits`.
+ internal static func _packWithoutChecks(
+ sign: Sign,
+ significand: BID,
+ biasedExponent: BID
+ ) -> Self {
+ assert(significand <= Self.maxDecimalDigits)
+ let maxSignificand_00_01_10: BID = 1 << Self.exponentShift_00_01_10
+
+ if significand < maxSignificand_00_01_10 {
+ let e = biasedExponent << Self.exponentShift_00_01_10
+ return Self(canonical: sign | e | significand)
+ }
+
+ // Add significand, without leading bits
+ let e = biasedExponent << Self.exponentShift_11
+ let s = significand & Self.significandMask_11
+ return Self(canonical: sign | Self.combinationHighBits11Mask | e | s)
+ }
+
+ // MARK: - Pack
+
+ /// Combine all of the arguments into a single `Decimal`.
+ ///
+ /// `roundingDigitCount` - number of trailing decimal digits in `significand`
+ /// that are used for rounding. For example `significand = 12345` and
+ /// `roundingDigitCount = 2` mean `result = 123`, and `45` is used for rounding.
+ /// `signedExponent` is for the `result`, without the rounding digits.
+ ///
+ /// Works on both `BID` and `DoubleBID`.
+ internal static func _pack(
+ sign: Sign,
+ significand: T,
+ signedExponent: Int,
+ roundingDigitCount: Int,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ Self._assertSignificandLessEqualMaxDecimalDigits(
+ significand: significand,
+ roundingDigitCount: roundingDigitCount
+ )
+
+/*
+// TODO: [Pack] Avoid underflow by digits.
+// Currently we use 'signedExponent < Self.minSignedExponent'.
+// Is underflow possible for 'signedExponent < Self.emin'?
+// Then the significand digits determine underflow or not.
+// -----------------------------------------------------------------------------
+// Underflow is when we are between 0 and 1 * 10^emin (for positive numbers).
+//
+// For this we need:
+// - minSignedExponent <= exponent < emin
+// - sufficient amount of digits in 'significand' to bring us above '1 * 10^emin'.
+//
+// 'digitCount' should be '>' or '>='?
+// 'Decimal64.emin = -383' which means that min value is '1 * 10^-383':
+// |value |digitCount|minDigitCountTo…|underflow|
+// |10E-385 = 1E-384| 2| -383 - -385 = 2| True|
+// |10E-384 = 1E-383| 2| -383 - -384 = 1| False|
+let digitCount = Tables.getDecimalDigitCount(significand) - roundingDigitCount
+let minDigitCountToAvoidUnderflow = Swift.abs(Self.emin - signedExponent)
+
+if signedExponent >= Self.minSignedExponent && digitCount > minDigitCountToAvoidUnderflow {
+ // We successfully escaped the underflow.
+ // Maybe just the 'digitCount > minDigitCountToAvoidUnderflow' is enough?
+}
+*/
+
+ // If the exponent is equal to 'Self.minSignedExponent' then no underflow is
+ // possible. Even if 'significand' is 1 then our magnitude is >= '1 * 10^emin'.
+ // Rounding digits do not matter because they are away from zero.
+ if signedExponent < Self.minSignedExponent {
+ return Self._handlePotentialUnderflow(
+ sign: sign,
+ significand: significand,
+ signedExponent: signedExponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // If the exponent is equal to 'Self.maxSignedExponent' then no overflow
+ // BEFORE rounding, because we know that 'significand' (without
+ // 'roundingDigits') is <= 'Self.maxDecimalDigits'.
+ // Case when we have 'infinity' AFTER rounding is handled by this method.
+ if signedExponent > Self.maxSignedExponent {
+ return Self._handlePotentialOverflow(
+ sign: sign,
+ significand: significand,
+ signedExponent: signedExponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ let roundingResult = Self._round(
+ sign: sign,
+ significand: significand,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding
+ )
+
+ let finalExponent: Int
+ let finalSignificand: BID
+
+ switch roundingResult.afterRounding {
+ case .aboveMaxDecimalDigits:
+ if signedExponent == Self.maxSignedExponent {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(sign: sign, rounding: rounding)
+ }
+
+ // The new 'significand' is 'Self.maxDecimalDigits + 1', which is 10000….
+ finalExponent = signedExponent + 1
+ finalSignificand = (Self.maxDecimalDigits + 1) / 10
+
+ case .value(let s):
+ finalExponent = signedExponent
+ finalSignificand = s
+ }
+
+ if roundingResult.isInexact {
+ status.set(.isInexact)
+ }
+
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: finalSignificand,
+ signedExponent: finalExponent
+ )
+ }
+
+ /// Check if 'significand' without rounding digits is in valid range.
+ internal static func _assertSignificandLessEqualMaxDecimalDigits(
+ significand: T,
+ roundingDigitCount: Int
+ ) {
+#if DEBUG
+ let pow10: T = Tables.getPowerOf10(exponent: roundingDigitCount)
+ let significand = significand / pow10
+ assert(
+ significand <= Self.maxDecimalDigits,
+ "Forgot about some rounding digits?"
+ )
+#endif
+ }
+
+ /// Increase `exponent` while decreasing `significand` (potentially rounding).
+ /// Or just make it (rounded) 0.
+ private static func _handlePotentialUnderflow(
+ sign: Sign,
+ significand: T,
+ signedExponent: Int,
+ roundingDigitCount: Int,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // IEEE-754 -> 7.5 Underflow
+ //
+ // b) before rounding — when a non-zero result computed as though both the
+ // exponent range and the precision were unbounded would lie strictly
+ // between ±b^emin.
+ //
+ // (…)
+ //
+ // For decimal formats, tininess is detected before rounding — when
+ // a non-zero result computed as though both the exponent range and the
+ // precision were unbounded would lie strictly between ±b^emin.
+ //
+ // The default exception handling for underflow shall always deliver a
+ // rounded result. The method for detecting tininess does not affect the
+ // rounded result delivered, which might be zero, subnormal, or ±b^emin.
+ //
+ // In addition, under default exception handling for underflow, if the
+ // rounded result is inexact — that is, it differs from what would have been
+ // computed were both exponent range and precision unbounded — the underflow
+ // flag shall be raised and the inexact (see 7.6) exception shall be signaled.
+ //
+ // If the rounded result is exact, no flag is raised and no inexact exception
+ // is signaled. This is the only case in this standard of an exception signal
+ // receiving default handling that does not raise the corresponding flag.
+ // Such an underflow signal has no observable effect under default handling.
+ //
+ // === SIMPLIFIED ===
+ // Result before rounding is not 0 and between ±b^emin -> underflow.
+ // If the result is inexact (we have 'roundingDigits') -> inexact underflow.
+ // If the result is exact (no 'roundingDigits') -> no status.
+ assert(signedExponent < Self.minSignedExponent)
+
+ // If both 'significand' and 'roundingDigits' are 0 -> exact 0 with minimum
+ // exponent, no underflow.
+ if significand == 0 {
+ // Use the exponent that the user provided or biased '0' if it is too low.
+ // Do NOT add bias before deciding which exponent to use ->
+ // 'signedExponent' with bias may not be representable by 'BID' (below 0).
+ let e = Swift.max(signedExponent, Self.minSignedExponent)
+ let biased = Self._addBias(exponent: e)
+ return Self(canonical: sign | biased << Self.exponentShift_00_01_10)
+ }
+
+ // How many 'significand' digits do we need to remove to get to exponent >= min?
+ // This looks weird, but both operands are negative, so it does make sense.
+ let removedDigitCount = Swift.abs(Self.minSignedExponent - signedExponent)
+
+ // Situations like: 1E-999999999999…
+ // Edge case: If 'removedDigitCount == Self.precisionInDigits' then we have
+ // to use 'significand' for rounding -> we can't use this fast path.
+ if removedDigitCount > Self.precisionInDigits {
+ assert(significand != 0, "0 was already handled -> we removed 'some' digits.")
+ status.set(.isUnderflowInexact)
+
+ return Self._roundInfinitelySmallValue(
+ sign: sign,
+ preferredSignedExponentForZero: Self.minSignedExponent,
+ rounding: rounding
+ )
+ }
+
+ assert(1 <= removedDigitCount && removedDigitCount <= Self.precisionInDigits)
+
+ // Remove digits, but remember that we have 'roundingDigits'!
+ // We also need to 'hop over' them to get to real 'significand'.
+ let roundingDigitCount = removedDigitCount + roundingDigitCount
+
+ let roundingResult = Self._round(
+ sign: sign,
+ significand: significand,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding
+ )
+
+ // If the rounded result is exact, no flag is raised and no inexact exception
+ // is signaled. This is the only case in this standard of an exception signal
+ // receiving default handling that does not raise the corresponding flag.
+ // Such an underflow signal has no observable effect under default handling.
+ if roundingResult.isInexact {
+ status.set(.isUnderflowInexact)
+ }
+
+ switch roundingResult.afterRounding {
+ case .aboveMaxDecimalDigits:
+ // It is not possible for '+1' to go over 'Self.maxDecimalDigits' because:
+ // - significand <= Self.maxDecimalDigits
+ // - removedDigitCount > 1 which means we decreased the 'significand'
+ preconditionFailure("[Pack-Underflow] Division increased the value?")
+ case .value(let afterRounding):
+ return Self(canonical: sign | afterRounding)
+ }
+ }
+
+ /// Decrease 'exponent' by multiplying 'significand' by 10.
+ /// In the worst case we will just nuke it into the (rounded) infinity.
+ private static func _handlePotentialOverflow(
+ sign: Sign,
+ significand: T,
+ signedExponent: Int,
+ roundingDigitCount: Int,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // IEEE-754 -> 7.4 Overflow
+ //
+ // The overflow exception shall be signaled if and only if the destination
+ // format’s largest finite number is exceeded in magnitude by what would have
+ // been the rounded floating-point result (see 4) were the exponent range
+ // unbounded. The default result shall be determined by the rounding
+ // direction attribute and the sign of the intermediate result as follows:
+ //
+ // a) roundTiesToEven and roundTiesToAway carry all overflows to ∞ with the
+ // sign of the intermediate result.
+ // b) roundTowardZero carries all overflows to the format’s largest finite
+ // number with the sign of the intermediate result.
+ // c) roundTowardNegative carries positive overflows to the format’s largest
+ // finite number, and carries negative overflows to −∞.
+ // d) roundTowardPositive carries negative overflows to the format’s most
+ // negative finite number, and carries positive overflows to +∞.
+ //
+ // In addition, under default exception handling for overflow, the overflow
+ // flag shall be raised and the inexact exception shall be signaled.
+ assert(signedExponent > Self.maxSignedExponent)
+
+ // If both 'significand' and 'roundingDigits' are 0 -> exact 0 with maximum
+ // exponent, no underflow.
+ // Remember that if we have 'roundingDigits' then they may become a part of
+ // 'significand' after multiplication which would change the value.
+ if significand == 0 {
+ // Exact 0 with max exponent.
+ let exponent = Self._addBias(exponent: Self.maxSignedExponent)
+ return Self(canonical: sign | exponent << Self.exponentShift_00_01_10)
+ }
+
+ // Add digits to 'significand' up to decrease the 'exponent'.
+ var addedDigitCount = signedExponent - Self.maxSignedExponent
+
+ // Situations like: 1E999999999999…
+ if addedDigitCount >= Self.precisionInDigits {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(sign: sign, rounding: rounding)
+ }
+
+ let finalSignificand: BID
+
+ if addedDigitCount == roundingDigitCount {
+ // Nothing to do.
+ // We will just include all 'roundingDigits' in 'significand'.
+
+ if significand > Self.maxDecimalDigits {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(sign: sign, rounding: rounding)
+ }
+
+ finalSignificand = BID(significand)
+ } else if addedDigitCount > roundingDigitCount {
+ // We need to add all of the 'roundingDigits' and then add some trailing '0'.
+ addedDigitCount -= roundingDigitCount
+ assert(addedDigitCount != 0)
+
+ // We can't go over 'precision' digits.
+ let digitCount = Tables.getDecimalDigitCount(significand)
+ let availableDigitCount = Self.precisionInDigits - digitCount
+
+ // 'significand' does not have enough space to perform multiplication.
+ if addedDigitCount > availableDigitCount {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(sign: sign, rounding: rounding)
+ }
+
+ assert(significand <= Self.maxDecimalDigits, "Forgot about some rounding digits?")
+
+ let s = BID(significand)
+ let pow10: BID = Tables.getPowerOf10(exponent: addedDigitCount)
+ finalSignificand = s * pow10
+ } else {
+ // We include some of the 'roundingDigits' in significand and use the rest
+ // for rounding.
+ assert(addedDigitCount < roundingDigitCount)
+
+ let digitCount = Tables.getDecimalDigitCount(significand)
+ let roundingDigitCount = roundingDigitCount - addedDigitCount
+ let newDigitCount = digitCount - roundingDigitCount
+
+ // Adding 'rounding digits' to get the proper exponent made our significand
+ // too big.
+ if newDigitCount > Self.precisionInDigits {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(sign: sign, rounding: rounding)
+ }
+
+ let roundingResult = Self._round(
+ sign: sign,
+ significand: significand,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding
+ )
+
+ if roundingResult.isInexact {
+ status.set(.isInexact)
+ }
+
+ switch roundingResult.afterRounding {
+ case .aboveMaxDecimalDigits:
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(sign: sign, rounding: rounding)
+ case .value(let s):
+ finalSignificand = s
+ }
+ }
+
+ // We successfully added all of the digits. There is no overflow!
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: finalSignificand,
+ signedExponent: Self.maxSignedExponent
+ )
+ }
+}
+
+// MARK: - Unpack NaN
+
+internal struct _NaNPayload {
+ internal let isCanonical: Bool
+ internal let valueCanonicalOrNot: BID
+ /// Value with applied non-canonical correction.
+ internal var canonical: BID { self.isCanonical ? self.valueCanonicalOrNot : 0 }
+}
+
+extension DecimalMixin {
+
+ internal typealias NaNPayload = _NaNPayload
+
+ /// Get NaN payload with IEEE-754 max value check.
+ ///
+ /// The maximum value of the binary-encoded significand is the same as that of
+ /// the corresponding decimal-encoded significand; that is, 10^(3×J + 1) −1
+ /// (or 10^(3×J) −1 when T is used as the payload of a NaN).
+ ///
+ /// If the value exceeds the maximum, the significand c is non-canonical and
+ /// the value used for c is zero.
+ internal func _unpackNaN() -> NaNPayload {
+ assert(self._isNaN, "Checking NaN payload without checking for NaN?")
+ let bits = self.bid & Self.nanPayloadMask
+ let isCanonical = bits <= Self.nanPayloadCanonicalMax
+ return NaNPayload(isCanonical: isCanonical, valueCanonicalOrNot: bits)
+ }
+}
+
+// MARK: - Unpack finite or zero
+
+internal struct _Sign: CustomStringConvertible {
+
+ internal static var plus: Self { Self(bid: 0) }
+ internal static var minus: Self { Self(bid: 1 << (BID.bitWidth - 1)) }
+
+ internal let bid: BID
+
+ internal var isPlus: Bool { self.bid == 0 }
+ internal var isMinus: Bool { self.bid != 0 }
+ internal var description: String { self.isPlus ? "+" : "-" }
+
+ internal static func == (lhs: Self, rhs: Self) -> Bool {
+ return lhs.bid == rhs.bid
+ }
+
+ internal static func != (lhs: Self, rhs: Self) -> Bool {
+ return lhs.bid != rhs.bid
+ }
+
+ internal static func | (lhs: Self, rhs: BID) -> BID {
+ return lhs.bid | rhs
+ }
+
+ internal static func ^ (lhs: Self, rhs: Self) -> Self {
+ return Self(bid: lhs.bid ^ rhs.bid)
+ }
+
+ internal static func ^ (lhs: Self, rhs: BID) -> BID {
+ return lhs.bid ^ rhs
+ }
+
+ internal init(bid: BID) {
+#if DEBUG
+ let signMask: BID = 1 << (BID.bitWidth - 1)
+ let restMask = ~signMask
+ assert((bid & restMask) == 0)
+#endif
+
+ self.bid = bid
+ }
+}
+
+internal struct _Significand {
+ internal let isCanonical: Bool
+ internal let valueCanonicalOrNot: BID
+
+ /// Value with applied non-canonical correction.
+ internal var canonical: BID { self.isCanonical ? self.valueCanonicalOrNot : 0 }
+ /// Is zero or non-canonical.
+ internal var isZero: Bool { self.canonical == 0 }
+}
+
+internal struct _Exponent: Equatable, Comparable {
+ internal let biased: BID
+ /// Unbiased. Human centric value.
+ /// We can't name it `unbiased` because that is way too similar to `biased`.
+ internal let signed: Int
+
+ internal static func == (lhs: Self, rhs: Self) -> Bool {
+ return lhs.biased == rhs.biased
+ }
+
+ internal static func < (lhs: Self, rhs: Self) -> Bool {
+ return lhs.biased < rhs.biased
+ }
+}
+
+internal struct _FiniteUnpack {
+ internal var sign: _Sign
+ internal let exponent: _Exponent
+ internal let significand: _Significand
+}
+
+extension DecimalMixin {
+
+ internal typealias Sign = _Sign
+ /// Exponent patronum!
+ internal typealias Exponent = _Exponent
+ internal typealias Significand = _Significand
+ internal typealias FiniteUnpack = _FiniteUnpack
+
+ /// Technically `zero` is also finite, but we want to make it explicit.
+ internal func _unpackFiniteOrZero() -> FiniteUnpack {
+ assert(self._isFinite, "Unpack finite on infinity or NaN?")
+
+ let sign = self._sign
+ let exponentShift: Int
+ let significandBID: BID
+
+ if self._isSet(Self.combinationHighBits11Mask) {
+ exponentShift = Self.exponentShift_11
+ significandBID = (self.bid & Self.significandMask_11) | Self.prefix100_11
+ } else {
+ exponentShift = Self.exponentShift_00_01_10
+ significandBID = self.bid & Self.significandMask_00_01_10
+ }
+
+ // The maximum value of the binary-encoded significand 10 (3 × J + 1) −1
+ // (or 10 (3 × J ) −1 when T is used as the payload of a NaN).
+ // If the value exceeds the maximum, the significand c is non-canonical and
+ // the value used for c is zero.
+ //
+ // IMPORTANT:
+ // This check has nothing to do with 'greatestFiniteMagnitude'!
+ // You may be non-canonical while having a low exponent (00_01_10 mode).
+ let isCanonical = significandBID <= Self.maxDecimalDigits
+ let significand = Significand(
+ isCanonical: isCanonical,
+ valueCanonicalOrNot: significandBID
+ )
+
+ let biased = (self.bid >> exponentShift) & Self.exponentMask
+ let signed = Self._removeBias(biasedExponent: biased)
+ let exponent = Exponent(biased: biased, signed: signed)
+
+ return FiniteUnpack(sign: sign, exponent: exponent, significand: significand)
+ }
+}
diff --git a/Sources/Decimal/Decimal+Properties.swift b/Sources/Decimal/Decimal+Properties.swift
new file mode 100644
index 0000000..4a95c5c
--- /dev/null
+++ b/Sources/Decimal/Decimal+Properties.swift
@@ -0,0 +1,169 @@
+extension DecimalMixin {
+
+ // MARK: - Sign
+
+ internal var _isNegative: Bool { self._isSet(Self.signMask) }
+ internal var _isPositive: Bool { !self._isNegative }
+ internal var _sign: Sign { Sign(bid: self.bid & Self.signMask) }
+
+ internal var _floatingPointSign: FloatingPointSign {
+ self._isNegative ? .minus : .plus
+ }
+
+ // MARK: - Finite
+
+ internal var _isFinite: Bool {
+ !self._isSet(Self.infinityMask)
+ }
+
+ internal var _isInfinite: Bool {
+ (self.bid & Self.nanQuietMask) == Self.infinityMask
+ }
+
+ internal var _isInfiniteOrNaN: Bool {
+ self._isSet(Self.infinityMask)
+ }
+
+ internal var _isZero: Bool {
+ if self._isInfiniteOrNaN {
+ return false
+ }
+
+ let unpack = self._unpackFiniteOrZero()
+ return unpack.significand.isZero
+ }
+
+ // MARK: - NaN
+
+ internal var _isNaN: Bool { self._isSet(Self.nanQuietMask) }
+ internal var _isQuietNaN: Bool { (self.bid & Self.nanSignalingMask) == Self.nanQuietMask }
+ internal var _isSignalingNaN: Bool { self._isSet(Self.nanSignalingMask) }
+
+ // MARK: - Normal
+
+ internal var _isNormal: Bool {
+ // 2.1.38 normal number:
+ // For a particular format, a finite non-zero floating-point number with
+ // magnitude greater than or equal to a minimum b emin value, where b is the
+ // radix.
+ // Normal numbers can use the full precision available in a format.
+ // In this standard, zero is neither normal nor subnormal.
+
+ if self._isInfiniteOrNaN {
+ return false
+ }
+
+ let unpack = self._unpackFiniteOrZero()
+ let significand = unpack.significand
+
+ if significand.isZero {
+ return false
+ }
+
+ return self._isFiniteNormal(significand: significand)
+ }
+
+ internal var _isSubnormal: Bool {
+ // The smallest positive normal floating-point number is b^emin and the
+ // largest is b^emax×(b−b1−p). The non-zero floating-point numbers for
+ // a format with magnitude less than b^emin are called subnormal because
+ // their magnitudes lie between zero and the smallest normal magnitude.
+ // They always have fewer than p significant digits.
+
+ if self._isInfiniteOrNaN {
+ return false
+ }
+
+ let unpack = self._unpackFiniteOrZero()
+ let significand = unpack.significand
+
+ if significand.isZero {
+ return false
+ }
+
+ return !self._isFiniteNormal(significand: significand)
+ }
+
+ /// Is finite value normal?
+ private func _isFiniteNormal(significand: Significand) -> Bool {
+ assert(self._isFinite, "Checking isFiniteNormal on infinity or NaN?")
+
+ let unpack = self._unpackFiniteOrZero()
+ let exponent = unpack.exponent
+
+ if exponent.biased >= Self.precisionInDigits {
+ // Even if significand = 1 -> our exponent is enough to make it normal.
+ return true
+ }
+
+ let digitCount = Self._getDecimalDigitCount(significand)
+ return digitCount + exponent.signed > Self.emin
+ }
+
+ // MARK: - Canonical
+
+ internal var _isCanonical: Bool {
+ if self._isNaN {
+ // A NaN is in its preferred (canonical) representation if the bits G6
+ // through Gw + 4 are zero and the encoding of the payload is canonical.
+
+ let significandMask: BID = (1 << Self.trailingSignificandWidth) - 1
+ let combinationInvertedMask = Self.signMask | Self.nanSignalingMask | significandMask
+ let combinationMask = ~combinationInvertedMask
+ let hasCombinationBits0 = (self.bid & combinationMask) == 0
+
+ let payload = self._unpackNaN()
+ return hasCombinationBits0 && payload.isCanonical
+ }
+
+ if self._isInfinite {
+ // The two canonical representations of infinity have bits G5 through
+ // Gw +4 = 0, and T = 0. "nanQuietMask" ends at exactly G5.
+ let valid = Self.signMask | Self.nanQuietMask
+ let invalid = ~valid
+ return (self.bid & invalid) == 0
+ }
+
+ let unpack = self._unpackFiniteOrZero()
+ return unpack.significand.isCanonical
+ }
+
+ // MARK: - ULP
+
+ internal var _ulp: Self {
+ if !self._isFinite {
+ return ._nan
+ }
+
+ let unpack = self._unpackFiniteOrZero()
+
+ // 0 or non-canonical?
+ if unpack.significand.isZero {
+ return Self._leastNonzeroMagnitude
+ }
+
+ let digitCount = Self._getDecimalDigitCount(unpack.significand)
+ let exponentDecrease = Swift.min(
+ BID(Self.precisionInDigits - digitCount), // fill all significand digits
+ unpack.exponent.biased // biased exponent can't go below 0
+ )
+
+ let significand: BID = 1
+ let exponent = unpack.exponent.biased - exponentDecrease
+ return Self(canonical: exponent << Self.exponentShift_00_01_10 | significand)
+ }
+
+ internal static var _ulpOfOne: Self {
+ let one = Self._one
+ return one._ulp
+ }
+
+ // MARK: - Magnitude
+
+ internal var _magnitude: Self {
+ // If the input is not canonical, then we will return non-canonical value.
+ // Oh well…
+ let bid = self.bid & (~Self.signMask)
+ return Self(unchecked: bid)
+ }
+}
diff --git a/Sources/Decimal/Decimal+Quantum.swift b/Sources/Decimal/Decimal+Quantum.swift
new file mode 100644
index 0000000..2d27836
--- /dev/null
+++ b/Sources/Decimal/Decimal+Quantum.swift
@@ -0,0 +1,323 @@
+extension DecimalMixin {
+
+ // MARK: - Quantum
+
+ internal var _quantum: Self {
+ // From IEEE-754 2019:
+ // sourceFormat quantum(source)
+ //
+ // If x is finite number, the operation quantum(x) is the number represented
+ // by (0, q, 1) where q is the exponent of x. If x is infinite, quantum(x)
+ // is +∞ with no exception.
+ //
+ // The preferred exponent is Q(x).
+
+ if self._isInfinite {
+ return Self._infinity
+ }
+
+ if self._isNaN {
+ return Self._nan
+ }
+
+ // Can you just shift the exponent with 00_01_10 encoding?
+ // Yes.
+ //
+ // The only problem would be if:
+ // - we have 11 encoding (2 highest combination bits)
+ // - high exponent bits are 11
+ //
+ // Then after shifting we would end up with 11 encoding instead of 00_01_10.
+ // Fortunately this bit pattern (1111 in high combination) is reserved for
+ // infinity which we already handled.
+
+ let unpack = self._unpackFiniteOrZero()
+ let exponent = unpack.exponent.biased
+
+ let exponentHighBits11: BID = 0b11 << (Self.exponentWidth - 2)
+ assert(
+ (exponent & exponentHighBits11) != exponentHighBits11,
+ "quantum: exponent should not be 0b11xxx"
+ )
+
+ // Significand is 1
+ return Self(canonical: exponent << Self.exponentShift_00_01_10 | 1)
+ }
+
+ // MARK: - Same quantum
+
+ internal func _sameQuantum(other: Self) -> Bool {
+ if self._isNaN || other._isNaN {
+ return self._isNaN && other._isNaN
+ }
+
+ if self._isInfinite || other._isInfinite {
+ return self._isInfinite && other._isInfinite
+ }
+
+ let selfUnpack = self._unpackFiniteOrZero()
+ let otherUnpack = other._unpackFiniteOrZero()
+ return selfUnpack.exponent == otherUnpack.exponent
+ }
+
+ // MARK: - Quantize
+
+ internal func _quantize(
+ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // sourceFormat quantize(source, source)
+ //
+ // For finite decimal operands x and y of the same format, quantize(x, y) is
+ // a floating-point number in the same format that has, if possible, the same
+ // numerical value as x and the same quantum as y.
+ //
+ // If the exponent is being increased, rounding according to the applicable
+ // rounding-direction attribute might occur: the result is a different
+ // floating-point representation and the inexact exception is signaled if the
+ // result does not have the same numerical value as x.
+ //
+ // If the exponent is being decreased and the significand of the result would
+ // have more than p digits, the invalid operation exception is signaled and
+ // the result is NaN.
+ //
+ // If one or both operands are NaN, the rules in 6.2 are followed.
+ //
+ // Otherwise if only one operand is infinite then the invalid operation
+ // exception is signaled and the result is NaN.
+ //
+ // If both operands are infinite then the result is canonical ∞ with the sign
+ // of x. quantize does not signal underflow or overflow.
+ //
+ // The preferred exponent is Q(y).
+
+ // If one or both operands are NaN, the rules in 6.2 are followed.
+ if self._isNaN || other._isNaN {
+ return Self._nanResult_viaIEEE754_section62(self, other, status: &status)
+ }
+
+ // If both operands are infinite then the result is canonical ∞ with the
+ // sign of x.
+ if self._isInfinite && other._isInfinite {
+ return Self(canonical: (self.bid & Self.signMask) | Self.infinityMask)
+ }
+
+ // Otherwise if only one operand is infinite then the invalid operation
+ // exception is signaled and the result is NaN.
+ if self._isInfinite || other._isInfinite {
+ status.set(.isInvalidOperation)
+ return ._nan
+ }
+
+ // We can't just pack(self.significand, other.exponent) because that would
+ // change the value. We have to actually re-scale our significand.
+
+ let selfUnpack = self._unpackFiniteOrZero()
+ let sign = selfUnpack.sign
+
+ let otherUnpack = other._unpackFiniteOrZero()
+ let otherExponent = otherUnpack.exponent
+
+ // Zero or non-canonical
+ if selfUnpack.significand.isZero {
+ return Self._packWithoutChecks(sign: sign, significand: 0, exponent: otherExponent)
+ }
+
+ let significand = selfUnpack.significand.canonical
+ let selfExponent = selfUnpack.exponent
+
+ if selfExponent == otherExponent {
+ return self
+ }
+
+ if selfExponent < otherExponent {
+ // Increase exponent by dividing significand.
+ // - rounding might occur - the result is a different floating-point
+ // - inexact exception is signaled if the result != x
+ let removedDigitCount = otherExponent.signed - selfExponent.signed
+
+ if removedDigitCount >= Self.precisionInDigits {
+ // We are removing the whole 'significand' and making it (rounded) 0.
+ assert(significand != 0, "We already checked it?")
+ let s: BID
+
+ switch rounding {
+ case .up: s = sign.isPlus ? 1 : 0
+ case .down: s = sign.isMinus ? 1 : 0
+ case .towardZero: s = 0
+ case .toNearestOrEven,
+ .toNearestOrAwayFromZero:
+ if removedDigitCount == Self.precisionInDigits {
+ let halfway = (Self.maxDecimalDigits + 1) / 2
+ let isAboveHalfway = significand > halfway
+ // Significand is 0 = even
+ let isHalfway = significand == halfway && rounding == .toNearestOrAwayFromZero
+ s = isAboveHalfway || isHalfway ? 1 : 0
+ } else {
+ s = 0
+ }
+ }
+
+ status.set(.isInexact) // We checked for 'significand.isZero' before
+ return Self._packWithoutChecks(sign: sign, significand: s, exponent: otherExponent)
+ }
+
+ return Self._pack(
+ sign: sign,
+ significand: significand,
+ signedExponent: otherExponent.signed,
+ roundingDigitCount: removedDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // Decrease exponent by increasing the significand.
+ // If the significand of the result would have more than p digits:
+ // - the invalid operation exception is signaled
+ // - result is NaN
+ assert(selfExponent > otherExponent)
+
+ // We will add this many '0' to significand, 5 -> 5000 etc…
+ let addedZeroCount = selfExponent.signed - otherExponent.signed
+
+ if addedZeroCount >= Self.precisionInDigits {
+ status.set(.isInvalidOperation)
+ return ._nan
+ }
+
+ let pow10: BID = Tables.getPowerOf10(exponent: addedZeroCount)
+ let (low, ov) = significand.multipliedReportingOverflow(by: pow10)
+
+ if ov || low > Self.maxDecimalDigits {
+ status.set(.isInvalidOperation)
+ return ._nan
+ }
+
+ return Self._packWithoutChecks(sign: sign, significand: low, exponent: otherExponent)
+ }
+
+ // MARK: - Quantize to…
+
+ /// Increase significand to get to `newExponent`.
+ ///
+ /// Returns number of digits in new significand. It may NOT be
+ /// `Self.precisionInDigits` if that would make exponent lower than min value.
+ internal static func _quantizeToLowerExponent(
+ significand: T,
+ oldSignedExponent oldExponent: Int,
+ newSignedExponent newExponent: Int
+ ) -> (significand: T, signedExponent: Int, digitCount: Int) {
+ assert(oldExponent >= newExponent)
+
+ if significand == 0 {
+ return (significand, newExponent, Tables.zeroDecimalDigitCount)
+ }
+
+ let digitCount = Tables.getDecimalDigitCount(significand)
+
+ // Biased exponent can't go <0!
+ // In such case we will go as far as we can.
+ // So, instead of multiplying by 10_000, we will multiply by 100.
+ let addedDigitCount = Swift.min(
+ Self.precisionInDigits - digitCount, // How much more can our significand hold?
+ oldExponent + Self.exponentBias, // How low can exponent go?
+ oldExponent - newExponent // Get to new exponent
+ )
+
+ return Self._quantizeTo(
+ significand: significand,
+ signedExponent: oldExponent,
+ digitCount: digitCount,
+ addedDigitCount: addedDigitCount
+ )
+ }
+
+ internal static func _quantizeToUseAllDecimalDigits(
+ significand: Significand,
+ exponent: Exponent
+ ) -> (significand: BID, signedExponent: Int, digitCount: Int) {
+ return Self._quantizeToUseAllDecimalDigits(
+ significand: significand.canonical,
+ signedExponent: exponent.signed
+ )
+ }
+
+ /// Increase significand to fill all `maxDecimalDigits` while decreasing exponent.
+ ///
+ /// Returns number of digits in new significand. It may NOT be
+ /// `Self.precisionInDigits` if that would make exponent lower than min value.
+ ///
+ /// Example for Decimal32 (maxDecimalDigits = 7):
+ /// - Input: `123 * 10^10`
+ /// - Output: `123_0000 * 10^6`
+ internal static func _quantizeToUseAllDecimalDigits(
+ significand: T,
+ signedExponent: Int
+ ) -> (significand: T, signedExponent: Int, digitCount: Int) {
+ if significand == 0 {
+ return (significand, signedExponent, Tables.zeroDecimalDigitCount)
+ }
+
+ let digitCount = Tables.getDecimalDigitCount(significand)
+
+ // Biased exponent can't go <0!
+ // In such case we will go as far as we can.
+ // So, instead of multiplying by 10_000, we will multiply by 100.
+ let addedDigitCount = Swift.min(
+ Self.precisionInDigits - digitCount, // How much we need?
+ signedExponent + Self.exponentBias // How low can exponent go?
+ )
+
+ return Self._quantizeTo(
+ significand: significand,
+ signedExponent: signedExponent,
+ digitCount: digitCount,
+ addedDigitCount: addedDigitCount
+ )
+ }
+
+ /// Common for `_quantizeTo…`.
+ private static func _quantizeTo(
+ significand: T,
+ signedExponent: Int,
+ digitCount: Int,
+ addedDigitCount: Int
+ ) -> (significand: T, signedExponent: Int, digitCount: Int) {
+ // For 'DoubleBID' the 'addedDigitCount' may be below 0.
+ // For example:
+ // - precision = 16
+ // - significand has 30 digits
+ // - addedDigitCount = 16 - 30 = -14
+ if addedDigitCount <= 0 {
+ return (significand, signedExponent, digitCount)
+ }
+
+ let pow10: T = Tables.getPowerOf10(exponent: addedDigitCount)
+ let s = significand * pow10
+ // Multiplication by 10 only adds '0' after the number.
+ // If we started with '9' we are now '9000000…', which should be 'ok'.
+ assert(s <= Self.maxDecimalDigits)
+
+ let e = signedExponent - addedDigitCount
+ return (s, e, digitCount + addedDigitCount)
+ }
+
+ // MARK: - Assert
+
+ /// Are all 'precision' digits filled?
+ internal static func _assertQuantizedToAllDecimalDigits(
+ significand: BID,
+ signedExponent: Int
+ ) {
+#if DEBUG
+ let (__significandQuant, __exponentQuant, _) = Self._quantizeToUseAllDecimalDigits(
+ significand: significand,
+ signedExponent: signedExponent
+ )
+ assert(__significandQuant == significand, "significand not quantified?")
+ assert(__exponentQuant == signedExponent, "exponent not quantified?")
+#endif
+ }
+}
diff --git a/Sources/Decimal/Decimal+Rem.swift b/Sources/Decimal/Decimal+Rem.swift
new file mode 100644
index 0000000..8a40f3d
--- /dev/null
+++ b/Sources/Decimal/Decimal+Rem.swift
@@ -0,0 +1,190 @@
+extension DecimalMixin {
+
+ internal func _remainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._remainder(dividingBy: other, status: &status, isNear: true)
+ }
+
+ internal func _truncatingRemainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._remainder(dividingBy: other, status: &status, isNear: false)
+ }
+
+ private func _remainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus,
+ isNear: Bool
+ ) -> Self {
+ // sourceFormat remainder(source, source)
+ //
+ // When y ≠ 0, the remainder r = remainder(x, y) is defined for finite x
+ // and y regardless of the rounding-direction attribute by the mathematical
+ // relation r = x−y×n , where n is the integer nearest the exact number x/y;
+ // whenever |n−x/y| = ½ , then n is even. Thus, the remainder is always exact.
+ //
+ // If r=0, its sign shall be that of x. remainder(x, ∞) is x for finite x.
+ //
+ // The preferred exponent is min(Q(x), Q(y)).
+ //
+ // 6.1 Infinity arithmetic
+ // Operations on infinite operands are usually exact and therefore signal no
+ // exceptions, including, among others:
+ // ― remainder(x, ∞) for finite normal x
+ //
+ // The exceptions that do pertain to infinities are signaled only when:
+ // ― remainder(subnormal, ∞) signals underflow.
+ //
+ // 7.2 Invalid operation
+ // For operations producing results in floating-point format, the default
+ // result of an operation that signals the invalid operation exception shall
+ // be a quiet NaN that should provide some diagnostic information (see 6.2).
+ // These operations are:
+ // f) remainder(x, y), when y is zero or x is infinite and neither is NaN
+
+ if self._isNaN || other._isNaN {
+ return Self._nanResult_viaIEEE754_section62(self, other, status: &status)
+ }
+
+ // inf % rhs = nan
+ if self._isInfinite {
+ status.set(.isInvalidOperation)
+ return Self._nan
+ }
+
+ let lhs = self._unpackFiniteOrZero()
+
+ // lhs % inf = canonical lhs
+ if other._isInfinite {
+ return Self(canonical: lhs)
+ }
+
+ let rhs = other._unpackFiniteOrZero()
+
+ // lhs % 0 = nan
+ // In case of '0 % 0 = ?' the 'rhs = 0' takes precedence over the 'lhs' rule.
+ if rhs.significand.isZero {
+ status.set(.isInvalidOperation)
+ return Self._nan
+ }
+
+ // 0 % rhs = 0 if y != 0
+ if lhs.significand.isZero {
+ // The preferred exponent is min(Q(x), Q(y)).
+ let sign = self.bid & Self.signMask
+ let exponent = Swift.min(lhs.exponent.biased, rhs.exponent.biased)
+ return Self(canonical: sign | exponent << Self.exponentShift_00_01_10)
+ }
+
+ var sign = lhs.sign
+
+ // 5E5 / 5E20 = 0 rem 5E5
+ if lhs.exponent <= rhs.exponent {
+ // Important: self has the preferred exponent!
+ let exponentDiff = rhs.exponent.signed - lhs.exponent.signed
+
+ // lhs < rhs, and even quantization will not help.
+ if exponentDiff > Self.precisionInDigits {
+ return Self(canonical: lhs)
+ }
+
+ // Quantize 'rhs' to 'lhs'.
+ let pow10: BID = Tables.getPowerOf10(exponent: exponentDiff)
+ let rhsScaledSignificand = Self._mulSignificands(rhs.significand.canonical, pow10)
+ let lhsSignificand = lhs.significand.canonical
+
+ // If 'rhs' is more than 2 times larger than 'rhs' then just return 'lhs'.
+ if rhsScaledSignificand.high != 0 || rhsScaledSignificand.low > (lhsSignificand << 1) {
+ return Self(canonical: lhs)
+ }
+
+ // Unsigned integer remainder
+ let rhsSignificand = rhsScaledSignificand.low
+ var (quotient, remainder) = lhsSignificand.quotientAndRemainder(dividingBy: rhsSignificand)
+
+ if isNear {
+ Self._remRoundQuotientAwayFromZeroIfNeeded(
+ sign: &sign,
+ quotient: quotient,
+ remainder: &remainder,
+ rhsSignificand: rhsSignificand
+ )
+ }
+
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: remainder,
+ exponent: lhs.exponent
+ )
+ }
+
+ let rhsSignificand = rhs.significand.canonical
+ var quotient: BID = 0
+ var remainder = lhs.significand.canonical
+ var exponentDiff = lhs.exponent.signed - rhs.exponent.signed
+ assert(exponentDiff > 0, "We already checked 'lhs.exponent <= rhs.exponent'?")
+
+ while exponentDiff > 0 {
+ // Scale 'remainder' up to 'Self.precisionInDigits + 2' digits.
+ let remainderDigitCount = Self._getDecimalDigitCount(remainder)
+ var remainderScale = Self.precisionInDigits + 2 - remainderDigitCount
+
+ if remainderScale <= exponentDiff {
+ exponentDiff -= remainderScale
+ } else {
+ // Just use the remaining 'exponentDiff'
+ remainderScale = exponentDiff
+ exponentDiff = 0
+ }
+
+ remainder *= Tables.getPowerOf10(exponent: remainderScale)
+ (quotient, remainder) = remainder.quotientAndRemainder(dividingBy: rhsSignificand)
+
+ // Is this an exact division?
+ if remainder == 0 {
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: 0,
+ exponent: rhs.exponent
+ )
+ }
+ }
+
+ if isNear {
+ Self._remRoundQuotientAwayFromZeroIfNeeded(
+ sign: &sign,
+ quotient: quotient,
+ remainder: &remainder,
+ rhsSignificand: rhsSignificand
+ )
+ }
+
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: remainder,
+ exponent: rhs.exponent
+ )
+ }
+
+ /// `n` has to be an integer NEAREST the exact number x/y:
+ /// - `remainder` is more than half of `rhs` -> increase `n`
+ /// - `remainder` is exactly half of `rhs` and `n` is odd -> make `n` even
+ private static func _remRoundQuotientAwayFromZeroIfNeeded(
+ sign: inout Sign,
+ quotient: BID,
+ remainder: inout BID,
+ rhsSignificand: BID
+ ) {
+ let remainder2 = remainder + remainder
+ let isRoundingQuotientAwayFromZero = remainder2 > rhsSignificand
+ || (remainder2 == rhsSignificand && quotient.isOdd)
+
+ if isRoundingQuotientAwayFromZero {
+ remainder = rhsSignificand - remainder
+ sign = sign.isPlus ? .minus : .plus
+ }
+ }
+}
diff --git a/Sources/Decimal/Decimal+Round.swift b/Sources/Decimal/Decimal+Round.swift
new file mode 100644
index 0000000..9244750
--- /dev/null
+++ b/Sources/Decimal/Decimal+Round.swift
@@ -0,0 +1,285 @@
+extension DecimalMixin {
+
+ // MARK: - Round
+
+ /// `roundToIntegralExact`
+ /// If the rounding occurs then `isInexact` flag is raised. <-- IMPORTANT!
+ internal func _round(
+ _ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // ==============================================
+ // === Description for 'roundToIntegralExact' === <- We implement this!
+ // ==============================================
+ // For the following operation, the rounding direction is the applicable
+ // rounding-direction attribute. This operation signals the invalid operation
+ // exception for a signaling NaN operand, and for a numerical operand,
+ // signals the inexact exception if the result does not have the same
+ // numerical value as x.
+ //
+ // ― sourceFormat roundToIntegralExact(source)
+ // roundToIntegralExact(x) rounds x to an integral value according to the
+ // applicable rounding-direction attribute.
+ //
+ // The preferred exponent is max(Q(source), 0), even when the inexact
+ // exception is signaled.
+ //
+ // ==========================================
+ // === Description for 'roundToIntegral…' ===
+ // ==========================================
+ // 5.9 Details of operations to round a floating-point datum to integral value
+ //
+ // Several operations round a floating-point number to an integral valued
+ // floating-point number in the same format.
+ //
+ // The rounding is analogous to that specified in Clause 4, but the rounding
+ // chooses only from among those floating-point numbers of integral values
+ // in the format. These operations convert zero operands to zero results of
+ // the same sign, and infinite operands to infinite results of the same sign.
+ //
+ // For the following operations, the rounding direction is specified by the
+ // operation name and does not depend on a rounding-direction attribute.
+ // These operations shall not signal any exception except for signaling NaN
+ // input.
+ //
+ // The preferred exponent is max(Q(source), 0).
+
+ if self._isNaN {
+ return Self._nanResult_viaIEEE754_section62(self, status: &status)
+ }
+
+ let sign = self._sign
+
+ if self._isInfinite {
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ let unpack = self._unpackFiniteOrZero()
+ let exponent = unpack.exponent
+ let significand = unpack.significand.canonical
+
+ // Zero is already rounded, but make it canonical.
+ // The preferred exponent is max(Q(source), 0).
+ if significand == 0 {
+ let e = Swift.max(exponent.biased, BID(Self.exponentBias))
+ return Self(canonical: sign | e << Self.exponentShift_00_01_10)
+ }
+
+ // Yer a W̵i̵z̵z̵a̵r̵d̵ Int, Harry.
+ if exponent.signed >= 0 {
+ return Self._packWithoutChecks(
+ sign: sign,
+ significand: significand,
+ exponent: exponent
+ )
+ }
+
+ let digitCount = Self._getDecimalDigitCount(significand)
+
+ // Ultra small values like -1 < x < 1 go to -1, 0 or 1.
+ if exponent.signed <= -digitCount {
+ status.set(.isInexact)
+
+ switch rounding {
+ case .up:
+ return sign.isPlus ? Self._one : Self._minusZero
+ case .down:
+ return sign.isPlus ? Self._zero : Self._minusOne
+ case .towardZero:
+ return sign.isPlus ? Self._zero : Self._minusZero
+
+ case .toNearestOrEven, .toNearestOrAwayFromZero:
+ // 567E-3 = 0.567 -> 1
+ if exponent.signed == -digitCount {
+ let pow10: BID = Tables.getPowerOf10(exponent: digitCount)
+ let halfway = pow10 / 2
+
+ // '0' is even -> we don't need a special case for halfway 'toNearestOrEven'.
+ if significand > halfway
+ || (rounding == .toNearestOrAwayFromZero && significand == halfway) {
+ return sign.isPlus ? Self._one : Self._minusOne
+ }
+ }
+
+ return sign.isPlus ? Self._zero : Self._minusZero
+ }
+ }
+
+ // At this point we know that we have a fraction (exponent < 0).
+ assert(-digitCount < exponent.signed && exponent.signed < 0)
+
+ return Self._pack(
+ sign: sign,
+ significand: significand,
+ signedExponent: 0,
+ roundingDigitCount: -exponent.signed,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Infinitely big/small
+
+ /// Remember to: `status.set(.isOverflowInexact)` if needed.
+ internal static func _roundInfinitelyBigValue(
+ sign: Sign,
+ rounding: DecimalFloatingPointRoundingRule
+ ) -> Self {
+ // IEEE-754 -> 7.4 Overflow
+ // a) roundTiesToEven and roundTiesToAway carry all overflows to ∞ with the
+ // sign of the intermediate result.
+ // b) roundTowardZero carries all overflows to the format’s largest finite
+ // number with the sign of the intermediate result.
+ // c) roundTowardNegative carries positive overflows to the format’s largest
+ // finite number, and carries negative overflows to −∞.
+ // d) roundTowardPositive carries negative overflows to the format’s most
+ // negative finite number, and carries positive overflows to +∞.
+
+ // Infinity or greatestFiniteMagnitude.
+ let isInfinity: Bool
+
+ switch rounding {
+ case .up: isInfinity = sign.isPlus
+ case .down: isInfinity = sign.isMinus
+ case .towardZero: isInfinity = false
+ case .toNearestOrEven: isInfinity = true
+ case .toNearestOrAwayFromZero: isInfinity = true
+ }
+
+ if isInfinity {
+ return Self(canonical: sign | Self.infinityMask)
+ }
+
+ let magnitude = Self._greatestFiniteMagnitude
+ return Self(canonical: sign | magnitude.bid)
+ }
+
+ /// Remember to: `status.set(.isUnderflowInexact)` if needed.
+ internal static func _roundInfinitelySmallValue(
+ sign: Sign,
+ preferredSignedExponentForZero: Int,
+ rounding: DecimalFloatingPointRoundingRule
+ ) -> Self {
+ // LeastNonzeroMagnitude or zero.
+ let isLeastNonzeroMagnitude: Bool
+
+ switch rounding {
+ case .up:
+ isLeastNonzeroMagnitude = sign.isPlus
+ case .down:
+ isLeastNonzeroMagnitude = sign.isMinus
+ case .towardZero,
+ .toNearestOrEven,
+ .toNearestOrAwayFromZero:
+ // 0 is 'closer'.
+ isLeastNonzeroMagnitude = false
+ }
+
+ if isLeastNonzeroMagnitude {
+ let magnitude = Self._leastNonzeroMagnitude
+ return Self(canonical: sign | magnitude.bid)
+ }
+
+ let biased = Self._addBias(exponent: preferredSignedExponentForZero)
+ return Self(canonical: sign | biased << Self.exponentShift_00_01_10)
+ }
+}
+
+// MARK: - Round with digits
+
+internal struct _RoundWithDigitsResult {
+ internal enum After {
+ case aboveMaxDecimalDigits
+ case value(BID)
+ }
+
+ internal let beforeRounding: BID
+ internal let afterRounding: After
+ internal let isInexact: Bool
+}
+
+extension DecimalMixin {
+
+ internal typealias RoundWithDigitsResult = _RoundWithDigitsResult
+
+ /// Got some `significand`?
+ /// Got some `roundingDigits`?
+ /// Here is the answer.
+ ///
+ /// After removing `roundingDigits` the `significand` HAS to be
+ /// `<= Self.maxDecimalDigits`!
+ internal static func _round(
+ sign: Sign,
+ significand: T,
+ roundingDigitCount: Int,
+ rounding: DecimalFloatingPointRoundingRule
+ ) -> RoundWithDigitsResult {
+ Self._assertSignificandLessEqualMaxDecimalDigits(
+ significand: significand,
+ roundingDigitCount: roundingDigitCount
+ )
+
+ if roundingDigitCount == 0 {
+ let s = BID(significand)
+ return RoundWithDigitsResult(
+ beforeRounding: s,
+ afterRounding: .value(s),
+ isInexact: false
+ )
+ }
+
+ let pow10: T = Tables.getPowerOf10(exponent: roundingDigitCount)
+ let (quotient, roundingDigits) = significand.quotientAndRemainder(dividingBy: pow10)
+
+ // The main precondition for this function guarantees that this is a valid cast.
+ let beforeRounding = BID(quotient)
+ let halfway = pow10 / 2 // the same as: pow10 / 10 * 5
+
+ let isRoundingAwayFromZero = Self._isRoundingAwayFromZero(
+ sign: sign,
+ significand: beforeRounding,
+ roundingDigits: roundingDigits,
+ halfway: halfway,
+ rounding: rounding
+ )
+
+ let isMax = beforeRounding == Self.maxDecimalDigits
+
+ let after: RoundWithDigitsResult.After = isRoundingAwayFromZero && isMax ?
+ .aboveMaxDecimalDigits :
+ .value(beforeRounding + (isRoundingAwayFromZero ? 1 : 0))
+
+ return RoundWithDigitsResult(
+ beforeRounding: beforeRounding,
+ afterRounding: after,
+ isInexact: roundingDigits != 0
+ )
+ }
+
+ /// Round `significand` based on digits after it (`roundingDigits`).
+ ///
+ /// - `roundingDigits` - digits on which we decide whether to round or not.
+ /// - `halfway` - halfway point for `toNearestOrEven` and `toNearestOrAwayFromZero`.
+ internal static func _isRoundingAwayFromZero(
+ sign: Sign,
+ significand: BID,
+ roundingDigits: T,
+ halfway: T,
+ rounding: DecimalFloatingPointRoundingRule
+ ) -> Bool {
+ switch rounding {
+ case .up:
+ return sign.isPlus && roundingDigits != 0
+ case .down:
+ return sign.isMinus && roundingDigits != 0
+ case .towardZero:
+ return false
+ case .toNearestOrEven:
+ let isAbove = roundingDigits > halfway
+ let isHalfwayOdd = roundingDigits == halfway && significand.isOdd
+ return isAbove || isHalfwayOdd
+ case .toNearestOrAwayFromZero:
+ return roundingDigits >= halfway
+ }
+ }
+}
diff --git a/Sources/Decimal/Decimal+SquareRoot.swift b/Sources/Decimal/Decimal+SquareRoot.swift
new file mode 100644
index 0000000..ba97845
--- /dev/null
+++ b/Sources/Decimal/Decimal+SquareRoot.swift
@@ -0,0 +1,159 @@
+extension Int {
+ fileprivate var isOdd: Bool {
+ return (self & 1) == 1
+ }
+}
+
+extension DecimalMixin {
+
+ internal func _squareRoot(
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ // formatOf-squareRoot(source1)
+ // The operation squareRoot(x) computes √x.
+ // It has a positive sign for all operands ≥ 0, except that squareRoot(−0)
+ // shall be −0.
+ // The preferred exponent is floor(Q(x)/2).
+ //
+ // 6.1 Infinity arithmetic
+ // Operations on infinite operands are usually exact and therefore signal no
+ // exceptions, including, among others:
+ // ― squareRoot(+∞)
+ //
+ // 6.3 The sign bit
+ // Except that squareRoot(−0) shall be −0, every numeric squareRoot result
+ // shall have a positive sign.
+ //
+ // 7.2 Invalid operation
+ // For operations producing results in floating-point format, the default
+ // result of an operation that signals the invalid operation exception shall
+ // be a quiet NaN that should provide some diagnostic information (see 6.2).
+ //
+ // These operations are:
+ // g) squareRoot if the operand is less than zero
+
+ if self._isNaN {
+ return Self._nanResult_viaIEEE754_section62(self, status: &status)
+ }
+
+ if self._isInfinite {
+ if self._isNegative {
+ status.set(.isInvalidOperation)
+ return Self._nan
+ }
+
+ return Self._infinity
+ }
+
+ let unpack = self._unpackFiniteOrZero()
+
+ if unpack.significand.canonical == 0 {
+ let exponent = Self._sqrtBiasedHalf(exponent: unpack.exponent)
+ return Self(canonical: unpack.sign | exponent << Self.exponentShift_00_01_10)
+ }
+
+ if unpack.sign.isMinus {
+ status.set(.isInvalidOperation)
+ return Self._nan
+ }
+
+ if let exact = Self._sqrtExact(unpack: unpack) {
+ return exact
+ }
+
+ status.set(.isInexact)
+
+ // Scale to 'DoubleBID'.
+ // '-1' to fit the '+1' from the odd exponent.
+ let unpackDigitCount = Self._getDecimalDigitCount(unpack.significand)
+ var scale = 2 * Self.precisionInDigits - unpackDigitCount - 1
+ let scaledSignedExponent = unpack.exponent.signed - scale
+ // Multiply by an additional '10' if we have 'odd' exponent.
+ // Note that this is based on 'scaledExponent', not on 'unpack.exponent'.
+ scale += scaledSignedExponent.isOdd ? 1 : 0
+
+ let pow10: DoubleBID = Tables.getPowerOf10(exponent: scale)
+ let scaledSignificand = pow10 * unpack.significand.canonical
+
+ // root = ⌊√scaledSignificand⌋
+ // Only 'low' matter because √(2*precision digits) = precision digits.
+ let rootDoubleBID = scaledSignificand.squareRoot()
+ assert(rootDoubleBID.high == 0 && rootDoubleBID.low <= Self.maxDecimalDigits)
+ var root = rootDoubleBID.low
+
+ // Exponent/2 will escape us from underflow/overflow range.
+ // So, we can just round it here.
+ let isRoundingUp: Bool
+
+ switch rounding {
+ case .up:
+ // Our integer square root rounds toward '0'.
+ // We are not 'exact', so we know that we have some digits after.
+ isRoundingUp = true
+
+ case .down,
+ .towardZero:
+ // Positive number -> toward zero -> truncate -> no change.
+ isRoundingUp = false
+
+ case .toNearestOrEven,
+ .toNearestOrAwayFromZero:
+ // We will never be exactly 'halfway', so 'OrEven/OrAwayFromZero' can
+ // share the code. The thing below is not exactly 'halfway', but it serves
+ // the same purpose.
+ let halfway = root + root + 1
+ let halfwaySquare = Self._mulSignificands(halfway, halfway)
+ let scaledSignificand4 = scaledSignificand << 2 // multiply by 4
+
+ // Not '>=' because we are inexact!
+ isRoundingUp = scaledSignificand4 > halfwaySquare
+ }
+
+ var biasedExponent = BID((scaledSignedExponent + 2 * Self.exponentBias) >> 1)
+
+ if isRoundingUp {
+ root += 1
+
+ // Make it canonical if needed.
+ if root == Self.maxDecimalDigits + 1 {
+ root /= 10
+ biasedExponent += 1
+ }
+ }
+
+ return Self._packWithoutChecks(
+ sign: .plus,
+ significand: root,
+ biasedExponent: biasedExponent
+ )
+ }
+
+ private static func _sqrtExact(unpack: FiniteUnpack) -> Self? {
+ var significand = unpack.significand.canonical
+ let exponent = unpack.exponent
+
+ if exponent.signed.isOdd {
+ significand *= 10
+ }
+
+ let root = significand.squareRoot()
+
+ if root * root == significand {
+ let e = Self._sqrtBiasedHalf(exponent: exponent)
+ return Self._packWithoutChecks(
+ sign: .plus,
+ significand: root,
+ biasedExponent: e
+ )
+ }
+
+ return nil
+ }
+
+ private static func _sqrtBiasedHalf(exponent: Exponent) -> BID {
+ // - '+ exponentBias' - because after spit we will need 2 biases
+ // - '>> 1' - the same as divide by 2
+ return (exponent.biased + BID(Self.exponentBias)) >> 1
+ }
+}
diff --git a/Sources/Decimal/Decimal+StaticProperties.swift b/Sources/Decimal/Decimal+StaticProperties.swift
new file mode 100644
index 0000000..9cbe107
--- /dev/null
+++ b/Sources/Decimal/Decimal+StaticProperties.swift
@@ -0,0 +1,120 @@
+extension DecimalMixin {
+
+ // MARK: - Zero, one
+
+ internal static var _zero: Self {
+ return Self._initWithExponent0(significand: 0)
+ }
+
+ internal static var _one: Self {
+ return Self._initWithExponent0(significand: 1)
+ }
+
+ /// Create value with signed exponent = 0.
+ private static func _initWithExponent0(significand: BID) -> Self {
+ // Exponent = 0 -> encoded as bias.
+ //
+ // Note that 'bias' always starts with '01' which will become combination
+ // high bits. In this case exponent is stored continuously after sign.
+ //
+ // |exponent width|bias|bias binary |bias binary width
+ // Decimal32 | 8| 101| 0110 0101| 8
+ // Decimal64 | 10| 398| 01 1000 1110|10
+ // Decimal128| 14|6176|01 1000 0010 0000|14
+ let exponent = BID(Self.exponentBias)
+ let shift = Self.exponentShift_00_01_10
+ return Self(canonical: exponent << shift | significand)
+ }
+
+ // MARK: - NaN, infinity
+
+ internal static var _nan: Self { Self(canonical: Self.nanQuietMask) }
+ internal static var _signalingNaN: Self { Self(canonical: Self.nanSignalingMask) }
+ internal static var _infinity: Self { Self(canonical: Self.infinityMask) }
+
+ // MARK: - Greatest/least magnitude
+
+ /// Hard-coded `Self.infinity.nextDown`.
+ ///
+ /// The largest positive normal floating-point number is b^Emax ×(b − b^[1− p]).
+ internal static var _greatestFiniteMagnitude: Self {
+ // Largest value is 9.99… * 10^emax.
+ // We want it in the 9999… * 10^(emax-p+1) form.
+ // We could also hard-code the values, but this should optimize nicely.
+ return Self._packWithoutChecks(
+ sign: .plus,
+ significand: Self.maxDecimalDigits,
+ signedExponent: Self.maxSignedExponent
+ )
+ }
+
+ /// The smallest positive normal floating-point number is `b^Emin`.
+ internal static var _leastNormalMagnitude: Self {
+ // Smallest normalized value is 1 * 10^Emin.
+ // Sign: 0 - positive
+ // Exponent: 0 -> 0 - Self.exponentBias
+ // Significand: 100000…
+ let bid = Self._leastNormalMagnitudeSignificand
+ return Self(canonical: bid)
+
+ // Same value in different cohort:
+ // let exponent = Self._addBias(exponent: Self.emin)
+ // let significand: Self.BID = 1
+ // return Self(canonical: exponent << Self.exponentShift_00_01_10 | significand)
+ }
+
+ /// The smallest positive normal floating-point number is `b^Emin`.
+ ///
+ /// This is also the underflow cutoff:
+ /// b) before rounding — when a non-zero result computed as though both the
+ /// exponent range and the precision were unbounded would lie strictly
+ /// between ± b emin.
+ internal static var _leastNormalMagnitudeSignificand: BID {
+ return (Self.maxDecimalDigits + 1) / 10
+ }
+
+ /// Hard-coded `Self.zero.nextUp`.
+ ///
+ /// Every finite floating-point number is an integral multiple of the smallest
+ /// subnormal magnitude: `b^Emin × b^(1−p) = b^(Emin + 1 - p)`.
+ internal static var _leastNonzeroMagnitude: Self {
+ // Smallest non-zero value is 1×10^(2−p−Emax).
+ // Sign: 0 - positive
+ // Exponent: 0 -> 0 - Self.exponentBias
+ // Significand: 1
+ return Self(canonical: 1)
+ }
+
+ // MARK: - Pie
+
+ internal static var _pi: Self {
+ let exponent = -Self.precisionInDigits + 1
+ let biasedExponent = Self._addBias(exponent: exponent)
+ let exponentBits = biasedExponent << Self.exponentShift_00_01_10
+
+ let significandBits = Self.piDecimalDigits
+ return Self(canonical: exponentBits | significandBits)
+ }
+
+ // MARK: - Minus
+
+ /// `-Self._zero`
+ internal static var _minusZero: Self {
+ Self(canonical: Self.signMask | Self._zero.bid)
+ }
+
+ /// `-Self._one`
+ internal static var _minusOne: Self {
+ Self(canonical: Self.signMask | Self._one.bid)
+ }
+
+ /// `-Self._greatestFiniteMagnitude`
+ internal static var _minusGreatestFiniteMagnitude: Self {
+ Self(canonical: Self.signMask | Self._greatestFiniteMagnitude.bid)
+ }
+
+ /// `-Self._leastNonzeroMagnitude`
+ internal static var _minusLeastNonzeroMagnitude: Self {
+ Self(canonical: Self.signMask | Self._leastNonzeroMagnitude.bid)
+ }
+}
diff --git a/Sources/Decimal/Decimal+String.swift b/Sources/Decimal/Decimal+String.swift
new file mode 100644
index 0000000..6c4b2ab
--- /dev/null
+++ b/Sources/Decimal/Decimal+String.swift
@@ -0,0 +1,509 @@
+// ASCII constants
+private let _0: UInt8 = 48
+private let _9: UInt8 = 57
+
+private let _A: UInt8 = 65
+private let _E: UInt8 = 69
+private let _F: UInt8 = 70
+private let _Z: UInt8 = 90
+
+private let _a: UInt8 = 97
+private let _e: UInt8 = 101
+private let _f: UInt8 = 102
+private let _i: UInt8 = 105
+private let _n: UInt8 = 110
+private let _s: UInt8 = 115
+private let _t: UInt8 = 116
+private let _x: UInt8 = 120
+private let _y: UInt8 = 121
+
+private let _NULL: UInt8 = 0
+private let _tab: UInt8 = 9
+private let _space: UInt8 = 32
+private let _parenOpen: UInt8 = 40
+private let _parenClose: UInt8 = 41
+private let _plus: UInt8 = 43
+private let _minus: UInt8 = 45
+private let _point: UInt8 = 46
+
+private func casefold(_ c: UInt8) -> UInt8 {
+ let isUpper = _A <= c && c <= _Z
+ return isUpper ? c - _A + _a : c
+}
+
+private func isDecimalDigit(_ char: UInt8) -> Bool {
+ return _0 <= char && char <= _9
+}
+
+// MARK: - String
+
+extension String {
+ public init(_ decimal: T) {
+ self = decimal.description
+ }
+}
+
+// MARK: - Parse
+
+private struct Parser where C.Element == UInt8 {
+ private let chars: C
+ private var index: C.Index
+
+ fileprivate var peek: UInt8? {
+ return self.index == self.chars.endIndex ? nil : self.chars[self.index]
+ }
+
+ fileprivate var isEnd: Bool { self.index == self.chars.endIndex }
+
+ fileprivate init(_ chars: C) {
+ self.chars = chars
+ self.index = chars.startIndex
+ }
+
+ fileprivate mutating func advance() {
+ self.chars.formIndex(after: &self.index)
+ }
+
+ /// Check if `self.peek == char` and advance if true.
+ fileprivate mutating func advanceIf(_ char: UInt8) -> Bool {
+ if let p = self.peek, casefold(p) == char {
+ self.advance()
+ return true
+ }
+
+ return false
+ }
+
+ /// Advance while `self.peek == 0`.
+ fileprivate mutating func consumeZeros() {
+ while let p = self.peek, p == _0 {
+ self.chars.formIndex(after: &self.index)
+ }
+ }
+}
+
+extension DecimalMixin {
+
+ internal static func _parse(
+ _ s: S,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self? {
+ if s.isEmpty {
+ return nil
+ }
+
+ let utf8 = Substring(s).utf8
+
+ // Most of the time we will go 'fast' (in Swift dominant apps).
+ let fast = utf8.withContiguousStorageIfAvailable { ptr in
+ return Self.parse(ptr, rounding: rounding, status: &status)
+ }
+
+ // There is also 'string.withUTF8', but it may copy the whole input and that
+ // could result in ENOMEM. We value stability over performance.
+ if let r = fast ?? Self.parse(utf8, rounding: rounding, status: &status) {
+ return r
+ }
+
+ return nil
+ }
+
+ private static func parse(
+ _ chars: C,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self? where C.Element == UInt8 {
+ var parser = Parser(chars)
+ assert(!parser.isEnd, "Decimal.parse with empty?")
+
+ let sign = Self.parseSign(&parser)
+
+ guard let char = parser.peek, char == _point || isDecimalDigit(char) else {
+ if let d = Self.parseInfinity(sign, parser) { return d }
+ if let d = Self.parseNaN(sign, parser) { return d }
+ return nil
+ }
+
+ var significand: BID = 0
+ var significandDigitCount = 0
+ // 2 most important digits after 'significand', because 0.5 may round
+ // differently than 0.51. We will skip middle '0', so '50001' -> '51'.
+ var roundingDigitsCount = 0
+ // There will be a 2nd exponent from parsing 'e+XX' later.
+ var significandExponent = 0
+ var hasSeenPoint = false
+
+ parser.consumeZeros()
+
+ while let char = parser.peek, char == _point || isDecimalDigit(char) {
+ if char == _point {
+ if hasSeenPoint {
+ return nil
+ }
+
+ hasSeenPoint = true
+ } else if char == _0 && significand == 0 {
+ // '0' is not a valid leading 'significand' digit, so skip it.
+ // Though, for numbers like 0.0000000000000000000000000000001001
+ // we want to decrease the exponent for the future 'significand'.
+ if hasSeenPoint {
+ significandExponent -= 1
+ }
+ } else if significandDigitCount < Self.precisionInDigits {
+ significand *= 10
+ significand += BID(truncatingIfNeeded: char - _0)
+ significandDigitCount += 1
+
+ // We added a 'fraction' digit: 123.45 = 12345 * 10^-2
+ if hasSeenPoint {
+ significandExponent -= 1
+ }
+ } else {
+ // We are dealing with 'tail' digits that, will not be included in
+ // 'significand'. 2 digits will be used for rounding. Rest is discarded.
+ if roundingDigitsCount == 0 {
+ significand *= 10
+ significand += BID(truncatingIfNeeded: char - _0)
+ roundingDigitsCount = 1
+ } else if roundingDigitsCount == 1 && char != _0 {
+ significand *= 10
+ significand += BID(truncatingIfNeeded: char - _0)
+ roundingDigitsCount = 2
+ }
+
+ // This is a 'whole' digit: 12354 = 123 * 10^2
+ if !hasSeenPoint {
+ significandExponent += 1
+ }
+ }
+
+ parser.advance()
+ }
+
+ if parser.isEnd {
+ return Self._pack(
+ sign: sign,
+ significand: significand,
+ signedExponent: significandExponent,
+ roundingDigitCount: roundingDigitsCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ guard parser.advanceIf(_e) else {
+ return nil
+ }
+
+ let exponentSign = Self.parseSign(&parser)
+ var explicitExponent = 0
+
+ parser.consumeZeros()
+
+ while let char = parser.peek, isDecimalDigit(char) {
+ let n = Int(truncatingIfNeeded: char - _0)
+ let (mul, ov1) = explicitExponent.multipliedReportingOverflow(by: 10)
+ let (add, ov2) = mul.addingReportingOverflow(n)
+
+ if ov1 || ov2 {
+ return Self.exponentOverflow(
+ sign: sign,
+ exponentSign: exponentSign,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ explicitExponent = add
+ parser.advance()
+ }
+
+ guard parser.isEnd else {
+ return nil
+ }
+
+ explicitExponent = exponentSign.isPlus ? explicitExponent : -explicitExponent
+ let (exponent, ov) = explicitExponent.addingReportingOverflow(significandExponent)
+
+ if ov {
+ return Self.exponentOverflow(
+ sign: sign,
+ exponentSign: exponentSign,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ return Self._pack(
+ sign: sign,
+ significand: significand,
+ signedExponent: exponent,
+ roundingDigitCount: roundingDigitsCount,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ private static func parseSign(_ parser: inout Parser) -> Sign {
+ if parser.peek == _plus {
+ parser.advance()
+ return .plus
+ }
+
+ if parser.peek == _minus {
+ parser.advance()
+ return .minus
+ }
+
+ return .plus
+ }
+
+ private static func exponentOverflow(
+ sign: Sign,
+ exponentSign: Sign,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ if exponentSign.isPlus {
+ status.set(.isOverflowInexact)
+ return Self._roundInfinitelyBigValue(sign: sign, rounding: rounding)
+ }
+
+ status.set(.isUnderflowInexact)
+ return Self._roundInfinitelySmallValue(
+ sign: sign,
+ preferredSignedExponentForZero: 0,
+ rounding: rounding
+ )
+ }
+
+ private static func parseInfinity(_ sign: Sign, _ parser: Parser) -> Self? {
+ var p = parser
+
+ guard p.advanceIf(_i) else { return nil }
+ guard p.advanceIf(_n) else { return nil }
+ guard p.advanceIf(_f) else { return nil }
+
+ if p.isEnd { return Self(canonical: sign | Self.infinityMask) }
+
+ guard p.advanceIf(_i) else { return nil }
+ guard p.advanceIf(_n) else { return nil }
+ guard p.advanceIf(_i) else { return nil }
+ guard p.advanceIf(_t) else { return nil }
+ guard p.advanceIf(_y) else { return nil }
+
+ return p.isEnd ? Self(canonical: sign | Self.infinityMask) : nil
+ }
+
+ private static func parseNaN(_ sign: Sign, _ parser: Parser) -> Self? {
+ var p = parser
+
+ var nan = Self.nanQuietMask
+
+ if p.advanceIf(_s) {
+ nan = Self.nanSignalingMask
+ }
+
+ guard p.advanceIf(_n) else { return nil }
+ guard p.advanceIf(_a) else { return nil }
+ guard p.advanceIf(_n) else { return nil }
+
+ let withoutPayload = Self(canonical: sign | nan)
+
+ if p.isEnd {
+ return withoutPayload
+ }
+
+ // From Swift docs:
+ // A NaN string may also include a payload in parentheses following the "nan"
+ // keyword. The payload consists of a sequence of decimal digits, or the
+ // characters 0X or 0x followed by a sequence of hexadecimal digits.
+ // If the payload contains any other characters, it is ignored.
+ // If the value of the payload is larger than can be stored as the payload
+ // of a Double.nan, the least significant bits are used.
+
+ guard p.advanceIf(_parenOpen) else { return nil }
+
+ var payload: BID = 0
+ var hasInvalidCharacter = false
+ var base: BID = 10
+
+ if p.advanceIf(_0) && p.advanceIf(_x) {
+ base = 16
+ }
+
+ let isHexaDecimal = base == 16
+ var hasOverflow = false
+
+ while let char = p.peek {
+ if char == _parenClose {
+ break
+ }
+
+ // Continue parsing even if we have an overflow.
+ // If the ')' is missing then we should return 'nil'.
+ let mul = payload.multipliedReportingOverflow(by: base)
+ payload = mul.partialValue
+ hasOverflow = hasOverflow || mul.overflow
+
+ if isDecimalDigit(char) {
+ payload += BID(truncatingIfNeeded: char - _0)
+ } else if isHexaDecimal && _a <= char && char <= _f {
+ payload += BID(truncatingIfNeeded: char - _a + 10)
+ } else if isHexaDecimal && _A <= char && char <= _F {
+ payload += BID(truncatingIfNeeded: char - _A + 10)
+ } else {
+ hasInvalidCharacter = true
+ }
+
+ p.advance()
+ }
+
+ guard p.advanceIf(_parenClose) else { return nil }
+ guard p.isEnd else { return nil }
+
+ // If the payload contains any other characters, it is ignored.
+ if hasInvalidCharacter {
+ return withoutPayload
+ }
+
+ // - payload is canonical -> ok
+ // - payload is not canonical, but fits within mask -> accept non-canonical
+ // - payload does not fit within mask -> non-canonical with all bits 1
+ if hasOverflow || payload > Self.nanPayloadMask {
+ payload = Self.nanPayloadMask
+ }
+
+ return Self(unchecked: withoutPayload.bid | payload)
+ }
+}
+
+// MARK: - To string
+
+/// Writer that writes from the back.
+///
+/// We are dealing with trivial data, so we can do things 'by hand' without
+/// dealing with Swift overhead.
+private struct ReverseWriter {
+
+ private let ptr: UnsafeMutablePointer
+ private var index: Int
+
+ fileprivate init(capacity: Int) {
+ let nullCapacity = capacity + 1
+ self.ptr = UnsafeMutablePointer.allocate(capacity: nullCapacity)
+ self.ptr[nullCapacity - 1] = _NULL
+ self.index = nullCapacity - 2
+ }
+
+ fileprivate mutating func write(_ n: T) {
+ if n == 0 {
+ self.write(_0)
+ } else {
+ var n = n
+
+ while n != 0 {
+ let (quotient, remainder) = n.quotientAndRemainder(dividingBy: 10)
+ self.write(_0 + UInt8(remainder))
+ n = quotient
+ }
+ }
+ }
+
+ fileprivate mutating func write(hex n: T) {
+ if n == 0 {
+ self.write(_0)
+ } else {
+ var n = n
+
+ while n != 0 {
+ let (quotient, remainder) = n.quotientAndRemainder(dividingBy: 16)
+ let r = UInt8(remainder)
+ self.write(r < 10 ? r + _0 : r - 10 + _a)
+ n = quotient
+ }
+ }
+ }
+
+ fileprivate mutating func write(_ n: UInt8) {
+ assert(self.index >= 0, "Incorrect capacity estimation.")
+ self.ptr[self.index] = n
+ self.index -= 1
+ }
+
+ /// Will deallocate buffer! Do not call 2 times!
+ fileprivate func finalize() -> String {
+ let ptr = self.ptr.advanced(by: self.index + 1)
+ let result = String(cString: ptr) // Borrows 'ptr' to create owned copy.
+ self.ptr.deallocate()
+ return result
+ }
+}
+
+extension DecimalMixin {
+
+ internal func _toString() -> String {
+ let isNegative = self._isNegative
+
+ if self._isNaN {
+ let payload = self._unpackNaN()
+ let isSignaling = self._isSignalingNaN
+
+ if payload.canonical == 0 {
+ return isSignaling ?
+ isNegative ? "-snan" : "snan" :
+ isNegative ? "-nan" : "nan"
+ }
+
+ // Double(nan: 123, signaling: false) -> nan(0x7b)
+ // sign (1) + [optional s (1)] + nan (3) + '(' (1) + payload + ')' (1)
+ let capacity = 6 + Self.precisionInDigits + (isSignaling ? 1 : 0)
+ var writer = ReverseWriter(capacity: capacity)
+
+ writer.write(_parenClose)
+ writer.write(hex: payload.canonical)
+ writer.write(_x)
+ writer.write(_0)
+ writer.write(_parenOpen)
+ writer.write(_n)
+ writer.write(_a)
+ writer.write(_n)
+ if isSignaling { writer.write(_s) }
+ if isNegative { writer.write(_minus) }
+
+ return writer.finalize()
+ }
+
+ if self._isInfinite {
+ return isNegative ? "-inf" : "inf"
+ }
+
+ let u = self._unpackFiniteOrZero()
+
+ // sign (1) + significand + e (1) + exponentSign (1) + exponent
+ let exponent = u.exponent.signed
+ let exponentCount = self.estimateCount(exponent: exponent)
+ let significandCount = u.significand.isZero ? 1 : Self.precisionInDigits
+ let capacity = 3 + significandCount + exponentCount
+
+ var writer = ReverseWriter(capacity: capacity)
+ writer.write(exponent.magnitude)
+ writer.write(exponent >= 0 ? _plus : _minus)
+ writer.write(_E)
+ writer.write(u.significand.canonical)
+ if isNegative { writer.write(_minus) }
+
+ return writer.finalize()
+ }
+
+ private func estimateCount(exponent: Int) -> Int {
+ // Exponents are small (6144 for Decimal128), we can get away with this.
+ let n = exponent.magnitude
+ assert(n < 10_000, "exponent >= 10_000?")
+ if n >= 1000 { return 4 }
+ if n >= 100 { return 3 }
+ if n >= 10 { return 2 }
+ return 1
+ }
+}
diff --git a/Sources/Decimal/DecimalMixin.swift b/Sources/Decimal/DecimalMixin.swift
new file mode 100644
index 0000000..a0a60d5
--- /dev/null
+++ b/Sources/Decimal/DecimalMixin.swift
@@ -0,0 +1,310 @@
+// swiftlint:disable line_length
+
+/// Internal protocol for all of the helpers.
+///
+/// All of the functions start with `_` to avoid clashes with `public` methods
+/// from `DecimalFloatingPoint`.
+internal protocol DecimalMixin {
+
+ associatedtype BID: BinaryIntegerDecimal
+ /// Two times wider than a normal BID. Much wow!
+ associatedtype DoubleBID: DoubleWidthBinaryIntegerDecimal where DoubleBID.Half == BID
+
+ // Layout:
+ // |Field |Sign|Combination|Trailing significand|
+ // |Short name|S |G |T |
+ // |Width |1 |w+5 |t=J*10 bits |
+ //
+ // See IEEE-754 2008:
+ // - 3.5.2 Encodings
+ // - Table 3.6 — Decimal interchange format parameters
+
+ /// IEEE-754: G, combination field; width: w+5 where w = biased exponent width
+ ///
+ /// A `w+5` bit combination field `G` encoding classification and, if the encoded
+ /// datum is a finite number, the exponent `q` and four significand bits
+ /// (1 or 3 of which are implied). The biased exponent `E` is a `w+2` bit quantity
+ /// `q + bias`, where the value of the first two bits of the biased exponent taken
+ /// together is either 0, 1, or 2.
+ static var combinationWidth: Int { get }
+ /// IEEE-754: `bias = emax + p − 2`
+ static var exponentBias: Int { get }
+ /// IEEE-754: `emax = 3×2^(w−1)`
+ ///
+ /// - Important:
+ /// This is the exponent for the `9.999… * 10^emax` form (notice the decimal
+ /// separator position). Most of the time you want `9999… * 10^(emax-p+1)`,
+ /// so use `Self.maxSignedExponent` instead.
+ static var emax: Int { get }
+
+ /// IEEE-754: t, trailing significand field width in bits
+ ///
+ /// A t-bit trailing significand field `T` that contains `J*10 bits` and contains
+ /// the bulk of the significand. When this field is combined with the leading
+ /// significand bits from the combination field, the format encodes a total
+ /// of `p = 3*J+1` decimal digits.
+ static var trailingSignificandWidth: Int { get }
+ /// IEEE-754: p, precision in digits
+ static var precisionInDigits: Int { get }
+ /// The maximum value of the binary-encoded significand is 10^(3×J + 1) −1.
+ ///
+ /// This is used in `greatestFiniteMagnitude`, but also while checking the
+ /// canonical value of encoded significand (it has to be below those digits).
+ ///
+ /// For example `9_999_999_999_999_999` (`9` repeated `Self.precisionInDigits` times).
+ /// Group by 3 digits to easy spot `J`.
+ static var maxDecimalDigits: BID { get }
+ /// Decimal digits for pi (count: `Self.precisionInDigits`).
+ ///
+ /// For example `3_141_592_653_589_793`.
+ /// Group by 3 digits to easy spot `J`.
+ ///
+ /// Parse https://www.piday.org/million to ensure the correct rounding of last digit.
+ static var piDecimalDigits: BID { get }
+
+ var bid: BID { get }
+
+ /// Use `init(canonical)` instead.
+ init(unchecked bid: BID)
+}
+
+extension DecimalMixin {
+
+ /// IEEE-754: `emin = 1 − emax`
+ internal static var emin: Int { 1 - Self.emax }
+
+ /// Min exponent in `9999E-123` form. Biased `0`.
+ internal static var minSignedExponent: Int {
+ // Biased exponent = 0
+ // Signed exponent = Biased exponent - bias = -bias
+ return -Self.exponentBias
+ }
+
+ /// Max exponent in `9999E+123` form. `emax - p + 1`.
+ internal static var maxSignedExponent: Int {
+ // Go from `1.23… * 10^exponent`
+ // to `123… * 10^(exponent - Self.precisionInDigits + 1)`.
+ return Self.emax - Self.precisionInDigits + 1
+ }
+
+ // MARK: - Width
+
+ /// IEEE-754: k, storage width in bits
+ internal static var bitWidth: Int { BID.bitWidth }
+ /// IEEE-754: s, 1-bit sign S
+ internal static var signWidth: Int { 1 }
+ /// IEEE-754: w = combination field (G) width - 5
+ internal static var combinationExponentWidth: Int { Self.combinationWidth - 5 }
+ /// Highest 2 bits of combination.
+ internal static var combinationHighBitsWidth: Int { 2 }
+
+ // MARK: - Masks
+
+ internal static var signMask: BID { 1 << (Self.bitWidth - Self.signWidth) }
+ /// All `1` in `T`.
+ internal static var trailingSignificandMask: BID { (1 << Self.trailingSignificandWidth) - 1 }
+
+ /// G[0] = 0, G[1] = 0
+ internal static var combinationHighBits00Mask: BID { 0b00 << (Self.bitWidth - Self.signWidth - 2) }
+ /// G[0] = 0, G[1] = 1
+ internal static var combinationHighBits01Mask: BID { 0b01 << (Self.bitWidth - Self.signWidth - 2) }
+ /// G[0] = 1, G[1] = 0
+ internal static var combinationHighBits10Mask: BID { 0b10 << (Self.bitWidth - Self.signWidth - 2) }
+ /// G[0] = 1, G[1] = 1
+ internal static var combinationHighBits11Mask: BID { 0b11 << (Self.bitWidth - Self.signWidth - 2) }
+
+ internal static var infinityMask: BID { 0b11_1100 << (Self.bitWidth - Self.signWidth - 6) }
+ internal static var nanQuietMask: BID { 0b11_1110 << (Self.bitWidth - Self.signWidth - 6) }
+ internal static var nanSignalingMask: BID { 0b11_1111 << (Self.bitWidth - Self.signWidth - 6) }
+
+ /// If G0 through G4 are 11111, then v is NaN regardless of S.
+ /// Furthermore, if G5 is 1, then r is sNaN; otherwise r is qNaN.
+ ///
+ /// The remaining bits of G are ignored, and T constitutes the NaN’s payload,
+ /// which can be used to distinguish various NaNs.
+ /// The NaN payload is encoded similarly to finite numbers described below,
+ /// with G treated as though all bits were zero. The payload corresponds to
+ /// the significand of finite numbers, interpreted as an integer with a maximum
+ /// value of 10^(3×J) − 1, and the exponent field is ignored (it is treated as
+ /// if it were zero).
+ /// A NaN is in its preferred (canonical) representation if the bits G6 through
+ /// Gw + 4 are zero and the encoding of the payload is canonical.
+ internal static var nanPayloadWidth: Int { Self.trailingSignificandWidth }
+ internal static var nanPayloadMask: BID { Self.trailingSignificandMask }
+
+ /// The maximum value of the binary-encoded significand is the same as that of
+ /// the corresponding decimal-encoded significand; that is, 10^(3×J + 1) −1
+ /// (or 10^(3×J) −1 when T is used as the payload of a NaN).
+ ///
+ /// If the value exceeds the maximum, the significand c is non-canonical and
+ /// the value used for c is zero.
+ internal static var nanPayloadCanonicalMax: BID { Self.maxDecimalDigits / 10 }
+
+ // MARK: - Encoding
+
+ // From IEEE-754 - 3.5.2 Encodings 3.52.0:
+ //
+ // If G[0] and G[1] together are one of 00, 01, or 10:
+ // - biased exponent E is formed from G[0] through G[w+1]
+ // - significand is formed from bits G[w+2] through the end of the encoding (including T).
+ //
+ // If G[0] and G[1] together are 11 and not NaN or Infinity:
+ // - biased exponent E is formed from G[2] through G[w+3]
+ // - significand is formed by prefixing the 4 bits (0b1000 | G[w+4]) to T.
+
+ // exponentWidth is always w+2. Example for Decimal64 (w=8):
+ // - 00, 01, 10 - G[0] through G[w+1= 9]: 0123456789 <= 10 digits
+ // - 11 - G[2] through G[w+3=11]: 2345678901 <= 10 digits
+ internal static var exponentWidth: Int { Self.combinationExponentWidth + 2 }
+ internal static var exponentMask: BID { (1 << Self.exponentWidth) - 1 }
+ /// From G[0] through G[w+1].
+ internal static var exponentShift_00_01_10: Int { Self.bitWidth - Self.signWidth - Self.exponentWidth }
+ /// From G[w+2] to end (including T).
+ internal static var significandMask_00_01_10: BID { (1 << exponentShift_00_01_10) - 1 }
+ /// From G[2] through G[w+3].
+ /// In 11 we have sign, 2 high combination bits followed `Self.exponentWidth`
+ /// bits of exponent.
+ internal static var exponentShift_11: Int { Self.bitWidth - Self.signWidth - Self.combinationHighBitsWidth - Self.exponentWidth }
+ internal static var prefix100_11: BID { 1 << (Self.trailingSignificandWidth + 3) }
+ /// From G[w+4]) to end (including T).
+ internal static var significandMask_11: BID { (1 << exponentShift_11) - 1 }
+
+ // MARK: - Inits
+
+ internal init(canonical bid: BID) {
+ self = Self(unchecked: bid)
+ self.assertIsCanonical()
+ }
+
+ internal init(canonical unpack: FiniteUnpack) {
+ self = Self._packWithoutChecks(
+ sign: unpack.sign,
+ significand: unpack.significand.canonical,
+ exponent: unpack.exponent
+ )
+ self.assertIsCanonical()
+ }
+
+ private func assertIsCanonical() {
+#if DEBUG
+ // *Teknikly* we do not need this '#if', but just to be sure that the
+ // compiler does not emit anything.
+ assert(self._isCanonical, "Not canonical: \(self) (\(Self.self)).")
+#endif
+ }
+
+ // MARK: - Decimal digit count
+
+ /// Number of decimal digits in a given value.
+ internal static func _getDecimalDigitCount(_ significand: Significand) -> Int {
+ return Self._getDecimalDigitCount(significand.canonical)
+ }
+
+ /// Number of decimal digits in a given value.
+ ///
+ /// Assumption: `significand <= Self.maxDecimalDigits`.
+ internal static func _getDecimalDigitCount(_ significand: BID) -> Int {
+ assert(significand <= Self.maxDecimalDigits, "Significand bigger than expected.")
+ let result = Tables.getDecimalDigitCount(significand)
+ assert(result <= Self.precisionInDigits, "Significand longer than expected.")
+ return result
+ }
+
+ /// - `digitCount` - total number of digits in a value.
+ /// - `roundingDigitCount` - number of digits that have to be used as 'rounding'
+ /// to get to 'Self.precisionInDigits'.
+ internal typealias DoubleBIDDigitCount = (
+ digitCount: Int,
+ roundingDigitCount: Int
+ )
+
+ /// Number of decimal digits in a given value.
+ internal static func _getDecimalDigitCount(_ significand: DoubleBID) -> DoubleBIDDigitCount {
+ let digitCount = Tables.getDecimalDigitCount(significand)
+ let roundingDigitCount = digitCount - Self.precisionInDigits
+ return (digitCount, Swift.max(0, roundingDigitCount))
+ }
+
+ /// How many digits do we have to remove from `DoubleBID` to fit in
+ /// `Self.precisionInDigits`?
+ internal static func _getRoundingDigitCount(_ significand: DoubleBID) -> Int {
+ if significand.high == 0 && significand.low <= Self.maxDecimalDigits {
+ return 0
+ }
+
+ let digitCount = Self._getDecimalDigitCount(significand)
+ return digitCount.roundingDigitCount
+ }
+
+ // MARK: - Bias
+
+ internal static func _addBias(exponent: Int) -> BID {
+ // Exponents are small, so in general the overflow should not occur.
+ let int = exponent + Self.exponentBias
+ return BID(int)
+ }
+
+ internal static func _removeBias(biasedExponent: BID) -> Int {
+ let int = Int(biasedExponent)
+ return int - Self.exponentBias
+ }
+
+ // MARK: - NaN arguments
+
+ /// Result when one of the operands is NaN.
+ /// IEEE-754 -> 6.2 Operations with NaNs
+ ///
+ /// Under default exception handling, any operation signaling an invalid
+ /// operation exception and for which a floating-point result is to be
+ /// delivered shall deliver a quiet NaN.
+ ///
+ /// Signaling NaNs shall be reserved operands that, under default exception
+ /// handling, signal the invalid operation exception (see 7.2) for every
+ /// general-computational and signaling-computational operation except for
+ /// the conversions described in 5.12.
+ ///
+ /// For an operation with quiet NaN inputs, other than maximum and minimum
+ /// operations, if a floating-point result is to be delivered the result shall
+ /// be a quiet NaN which should be one of the input NaNs. If the trailing
+ /// significand field of a decimal input NaN is canonical then the bit pattern
+ /// of that field shall be preserved if that NaN is chosen as the result NaN.
+ internal static func _nanResult_viaIEEE754_section62(
+ _ nan: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ assert(nan._isNaN, "6.2 Operations with --> NaNs <--")
+
+ if nan._isSignalingNaN {
+ status.set(.isInvalidOperation)
+ }
+
+ // Make payload canonical.
+ let sign = nan.bid & Self.signMask
+ let payload = nan._unpackNaN()
+ return Self(canonical: sign | Self.nanQuietMask | payload.canonical)
+ }
+
+ internal static func _nanResult_viaIEEE754_section62(
+ _ nan0: Self,
+ _ nan1: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ assert(nan0._isNaN || nan1._isNaN, "6.2 Operations with --> NaNs <--")
+
+ if nan0._isSignalingNaN || nan1._isSignalingNaN {
+ status.set(.isInvalidOperation)
+ }
+
+ if nan0._isNaN {
+ return Self._nanResult_viaIEEE754_section62(nan0, status: &status)
+ }
+
+ return Self._nanResult_viaIEEE754_section62(nan1, status: &status)
+ }
+
+ // MARK: - Other
+
+ internal func _isSet(_ mask: BID) -> Bool {
+ return (self.bid & mask) == mask
+ }
+}
diff --git a/Sources/Decimal/Generated/BinaryFloatingPoint+Decimal.swift b/Sources/Decimal/Generated/BinaryFloatingPoint+Decimal.swift
new file mode 100644
index 0000000..8c3131c
--- /dev/null
+++ b/Sources/Decimal/Generated/BinaryFloatingPoint+Decimal.swift
@@ -0,0 +1,473 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+// MARK: - Float
+
+extension Float {
+
+ /// Creates a new instance from the given value, rounding using the specified
+ /// rounding mode.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal32,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ source: Decimal32,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ source: Decimal32,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ public init?(exactly source: Decimal32) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+ /// Creates a new instance from the given value, rounding using the specified
+ /// rounding mode.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal64,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ source: Decimal64,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ source: Decimal64,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ public init?(exactly source: Decimal64) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+ /// Creates a new instance from the given value, rounding using the specified
+ /// rounding mode.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ source: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ source: Decimal128,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ public init?(exactly source: Decimal128) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+}
+
+// MARK: - Double
+
+extension Double {
+
+ /// Creates a new instance from the given value, rounding using the specified
+ /// rounding mode.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal32,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ source: Decimal32,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ source: Decimal32,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ public init?(exactly source: Decimal32) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+ /// Creates a new instance from the given value, rounding using the specified
+ /// rounding mode.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal64,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ source: Decimal64,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ source: Decimal64,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ public init?(exactly source: Decimal64) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+ /// Creates a new instance from the given value, rounding using the specified
+ /// rounding mode.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ source: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ source: Decimal128,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ public init?(exactly source: Decimal128) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+}
+
+// MARK: - Float80
+
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+extension Float80 {
+
+ /// Creates a new instance from the given value, rounding using the specified
+ /// rounding mode.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal32,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ source: Decimal32,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ source: Decimal32,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ public init?(exactly source: Decimal32) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+ /// Creates a new instance from the given value, rounding using the specified
+ /// rounding mode.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal64,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ source: Decimal64,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ source: Decimal64,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ public init?(exactly source: Decimal64) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+ /// Creates a new instance from the given value, rounding using the specified
+ /// rounding mode.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ source: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ source: Decimal128,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter source: A floating-point value to be converted.
+ public init?(exactly source: Decimal128) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._initFromDecimal(source, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+}
+
+#endif
diff --git a/Sources/Decimal/Generated/BinaryFloatingPointTables.swift b/Sources/Decimal/Generated/BinaryFloatingPointTables.swift
new file mode 100644
index 0000000..b265bad
--- /dev/null
+++ b/Sources/Decimal/Generated/BinaryFloatingPointTables.swift
@@ -0,0 +1,61531 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+// swiftlint:disable all
+
+// TODO: [Swift bug] Compiling big tables require 15min+ and 20GB+ of ram
+// We have to split big tables into a multiple smaller ones.
+// Otherwise the compilation would take at least 15min and 20GB of ram.
+// 'At least' because I never managed to compile it.
+
+/// Tables of values for the various conversions:
+///
+/// - exponents: table of output exponents
+/// - breakpoints: test values to decide between two possible exponents
+/// - multipliers1/multipliers2: corresponding reciprocal multipliers
+/// - coefflimits: used in exactness checks
+internal enum BinaryFloatingPointTables {}
+
+// MARK: - bid_roundbound_128
+
+extension BinaryFloatingPointTables {
+ internal static let bid_roundbound_128: [UInt128] = [
+UInt128((1 << 63), 0), // BID_ROUNDING_TO_NEAREST | positive | even
+UInt128((1 << 63) - 1, ~0), // BID_ROUNDING_TO_NEAREST | positive | odd
+UInt128((1 << 63), 0), // BID_ROUNDING_TO_NEAREST | negative | even
+UInt128((1 << 63) - 1, ~0), // BID_ROUNDING_TO_NEAREST | negative | odd
+UInt128(~0, ~0), // BID_ROUNDING_DOWN | positive | even
+UInt128(~0, ~0), // BID_ROUNDING_DOWN | positive | odd
+UInt128(0, 0), // BID_ROUNDING_DOWN | negative | even
+UInt128(0, 0), // BID_ROUNDING_DOWN | negative | odd
+UInt128(0, 0), // BID_ROUNDING_UP | positive | even
+UInt128(0, 0), // BID_ROUNDING_UP | positive | odd
+UInt128(~0, ~0), // BID_ROUNDING_UP | negative | even
+UInt128(~0, ~0), // BID_ROUNDING_UP | negative | odd
+UInt128(~0, ~0), // BID_ROUNDING_TO_ZERO | positive | even
+UInt128(~0, ~0), // BID_ROUNDING_TO_ZERO | positive | odd
+UInt128(~0, ~0), // BID_ROUNDING_TO_ZERO | negative | even
+UInt128(~0, ~0), // BID_ROUNDING_TO_ZERO | negative | odd
+UInt128((1 << 63) - 1, ~0), // BID_ROUNDING_TIES_AWAY | positive | even
+UInt128((1 << 63) - 1, ~0), // BID_ROUNDING_TIES_AWAY | positive | odd
+UInt128((1 << 63) - 1, ~0), // BID_ROUNDING_TIES_AWAY | negative | even
+UInt128((1 << 63) - 1, ~0), // BID_ROUNDING_TIES_AWAY | negative | odd
+ ]
+}
+
+// MARK: - bid_power_five
+
+extension BinaryFloatingPointTables {
+ internal static let bid_power_five: [UInt128] = [
+UInt128(0, 1),
+UInt128(0, 5),
+UInt128(0, 25),
+UInt128(0, 125),
+UInt128(0, 625),
+UInt128(0, 3125),
+UInt128(0, 15625),
+UInt128(0, 78125),
+UInt128(0, 390625),
+UInt128(0, 1953125),
+UInt128(0, 9765625),
+UInt128(0, 48828125),
+UInt128(0, 244140625),
+UInt128(0, 1220703125),
+UInt128(0, 6103515625),
+UInt128(0, 30517578125),
+UInt128(0, 152587890625),
+UInt128(0, 762939453125),
+UInt128(0, 3814697265625),
+UInt128(0, 19073486328125),
+UInt128(0, 95367431640625),
+UInt128(0, 476837158203125),
+UInt128(0, 2384185791015625),
+UInt128(0, 11920928955078125),
+UInt128(0, 59604644775390625),
+UInt128(0, 298023223876953125),
+UInt128(0, 1490116119384765625),
+UInt128(0, 7450580596923828125),
+UInt128(2, 359414837200037393),
+UInt128(10, 1797074186000186965),
+UInt128(50, 8985370930000934825),
+UInt128(252, 8033366502585570893),
+UInt128(1262, 3273344365508751233),
+UInt128(6310, 16366721827543756165),
+UInt128(31554, 8046632842880574361),
+UInt128(157772, 3339676066983768573),
+UInt128(788860, 16698380334918842865),
+UInt128(3944304, 9704925379756007861),
+UInt128(19721522, 11631138751360936073),
+UInt128(98607613, 2815461535676025517),
+UInt128(493038065, 14077307678380127585),
+UInt128(2465190328, 15046306170771983077),
+UInt128(12325951644, 1444554559021708921),
+UInt128(61629758220, 7222772795108544605),
+UInt128(308148791101, 17667119901833171409),
+UInt128(1540743955509, 14548623214327650581),
+UInt128(7703719777548, 17402883850509598057),
+UInt128(38518598887744, 13227442957709783821),
+UInt128(192592994438723, 10796982567420264257),
+ ]
+}
+
+// MARK: - bid_coefflimits_bid32
+
+extension BinaryFloatingPointTables {
+ internal static let bid_coefflimits_bid32: [UInt128] = [
+UInt128(0, 10000000),
+UInt128(0, 2000000),
+UInt128(0, 400000),
+UInt128(0, 80000),
+UInt128(0, 16000),
+UInt128(0, 3200),
+UInt128(0, 640),
+UInt128(0, 128),
+UInt128(0, 25),
+UInt128(0, 5),
+UInt128(0, 1),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+ ]
+}
+
+// MARK: - bid_coefflimits_bid64
+
+extension BinaryFloatingPointTables {
+ internal static let bid_coefflimits_bid64: [UInt128] = [
+UInt128(0, 10000000000000000),
+UInt128(0, 2000000000000000),
+UInt128(0, 400000000000000),
+UInt128(0, 80000000000000),
+UInt128(0, 16000000000000),
+UInt128(0, 3200000000000),
+UInt128(0, 640000000000),
+UInt128(0, 128000000000),
+UInt128(0, 25600000000),
+UInt128(0, 5120000000),
+UInt128(0, 1024000000),
+UInt128(0, 204800000),
+UInt128(0, 40960000),
+UInt128(0, 8192000),
+UInt128(0, 1638400),
+UInt128(0, 327680),
+UInt128(0, 65536),
+UInt128(0, 13107),
+UInt128(0, 2621),
+UInt128(0, 524),
+UInt128(0, 104),
+UInt128(0, 20),
+UInt128(0, 4),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+ ]
+}
+
+// MARK: - bid_coefflimits_bid128
+
+extension BinaryFloatingPointTables {
+ internal static let bid_coefflimits_bid128: [UInt128] = [
+UInt128(542101086242752, 4003012203950112768),
+UInt128(108420217248550, 8179300070273843200),
+UInt128(21684043449710, 1635860014054768640),
+UInt128(4336808689942, 327172002810953728),
+UInt128(867361737988, 7444132030046011392),
+UInt128(173472347597, 12556872850234933248),
+UInt128(34694469519, 9890072199530807296),
+UInt128(6938893903, 16735409698873802752),
+UInt128(1387778780, 14415128384000491520),
+UInt128(277555756, 2883025676800098304),
+UInt128(55511151, 4265953950101929984),
+UInt128(11102230, 4542539604762296320),
+UInt128(2220446, 908507920952459264),
+UInt128(444089, 3871050398932402176),
+UInt128(88817, 15531605338754121728),
+UInt128(17763, 10485018697234644992),
+UInt128(3552, 13165050183672659968),
+UInt128(710, 10011707666218352640),
+UInt128(142, 2002341533243670528),
+UInt128(28, 7779165936132554752),
+UInt128(5, 12623879631452241920),
+UInt128(1, 2524775926290448384),
+UInt128(0, 4194304000000000000),
+UInt128(0, 838860800000000000),
+UInt128(0, 167772160000000000),
+UInt128(0, 33554432000000000),
+UInt128(0, 6710886400000000),
+UInt128(0, 1342177280000000),
+UInt128(0, 268435456000000),
+UInt128(0, 53687091200000),
+UInt128(0, 10737418240000),
+UInt128(0, 2147483648000),
+UInt128(0, 429496729600),
+UInt128(0, 85899345920),
+UInt128(0, 17179869184),
+UInt128(0, 3435973836),
+UInt128(0, 687194767),
+UInt128(0, 137438953),
+UInt128(0, 27487790),
+UInt128(0, 5497558),
+UInt128(0, 1099511),
+UInt128(0, 219902),
+UInt128(0, 43980),
+UInt128(0, 8796),
+UInt128(0, 1759),
+UInt128(0, 351),
+UInt128(0, 70),
+UInt128(0, 14),
+UInt128(0, 2),
+ ]
+}
+
+// MARK: - bid_breakpoints_bid32
+
+extension BinaryFloatingPointTables {
+ internal static func bid_breakpoints_bid32(_ index: Int) -> UInt128 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_breakpoints_bid32_0[r]
+ case 1: return bid_breakpoints_bid32_1[r]
+ case 2: return bid_breakpoints_bid32_2[r]
+ case 3: return bid_breakpoints_bid32_3[r]
+ case 4: return bid_breakpoints_bid32_4[r]
+ case 5: return bid_breakpoints_bid32_5[r]
+ case 6: return bid_breakpoints_bid32_6[r]
+ case 7: return bid_breakpoints_bid32_7[r]
+ case 8: return bid_breakpoints_bid32_8[r]
+ case 9: return bid_breakpoints_bid32_9[r]
+ case 10: return bid_breakpoints_bid32_10[r]
+ case 11: return bid_breakpoints_bid32_11[r]
+ case 12: return bid_breakpoints_bid32_12[r]
+ case 13: return bid_breakpoints_bid32_13[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_breakpoints_bid32_0: [UInt128] = [
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(469708516554766, 11908810229357645280),
+UInt128(234854258277383, 5954405114678822640),
+UInt128(117427129138691, 12200574594194187128),
+UInt128(58713564569345, 15323659333951869372),
+UInt128(293567822846729, 2831320374921140396),
+UInt128(146783911423364, 10639032224315346006),
+UInt128(73391955711682, 5319516112157673003),
+UInt128(366959778558411, 8150836487078813399),
+UInt128(183479889279205, 13298790280394182507),
+UInt128(91739944639602, 15872767177051867061),
+UInt128(458699723198014, 5576859590421128845),
+UInt128(229349861599007, 2788429795210564422),
+UInt128(114674930799503, 10617586934460058019),
+UInt128(57337465399751, 14532165504084804817),
+UInt128(286687326998758, 17320595299295369240),
+UInt128(143343663499379, 8660297649647684620),
+UInt128(71671831749689, 13553520861678618118),
+UInt128(358359158748448, 12427372087264435742),
+UInt128(179179579374224, 6213686043632217871),
+UInt128(89589789687112, 3106843021816108935),
+UInt128(447948948435560, 15534215109080544677),
+UInt128(223974474217780, 7767107554540272338),
+UInt128(111987237108890, 3883553777270136169),
+UInt128(559936185544451, 971024812641129231),
+UInt128(279968092772225, 9708884443175340423),
+]
+
+private let bid_breakpoints_bid32_1: [UInt128] = [
+UInt128(139984046386112, 14077814258442446019),
+UInt128(69992023193056, 7038907129221223009),
+UInt128(349960115965281, 16747791572396563433),
+UInt128(174980057982640, 17597267823053057524),
+UInt128(87490028991320, 8798633911526528762),
+UInt128(437450144956602, 7099681410213540580),
+UInt128(218725072478301, 3549840705106770290),
+UInt128(109362536239150, 10998292389408160953),
+UInt128(546812681195752, 18097973799621701533),
+UInt128(273406340597876, 9048986899810850766),
+UInt128(136703170298938, 4524493449905425383),
+UInt128(68351585149469, 2262246724952712691),
+UInt128(341757925747345, 11311233624763563458),
+UInt128(170878962873672, 14878988849236557537),
+UInt128(85439481436836, 7439494424618278768),
+UInt128(427197407184182, 303983975672290610),
+UInt128(213598703592091, 151991987836145305),
+UInt128(106799351796045, 9299368030772848460),
+UInt128(533996758980227, 9603352006445139071),
+UInt128(266998379490113, 14025048040077345343),
+UInt128(133499189745056, 16235896056893448479),
+UInt128(66749594872528, 8117948028446724239),
+UInt128(333747974362642, 3696251994814517967),
+UInt128(166873987181321, 1848125997407258983),
+UInt128(83436993590660, 10147435035558405299),
+UInt128(417184967953302, 13843687030372923267),
+UInt128(208592483976651, 6921843515186461633),
+UInt128(104296241988325, 12684293794448006624),
+UInt128(521481209941628, 8081236751111378276),
+UInt128(260740604970814, 4040618375555689138),
+UInt128(130370302485407, 2020309187777844569),
+UInt128(65185151242703, 10233526630743698092),
+UInt128(325925756213517, 14274145006299387230),
+UInt128(162962878106758, 16360444540004469423),
+UInt128(81481439053379, 8180222270002234711),
+UInt128(407407195266897, 4007623202592070326),
+UInt128(203703597633448, 11227183638150810971),
+UInt128(101851798816724, 5613591819075405485),
+UInt128(509258994083621, 9621215021667475812),
+UInt128(254629497041810, 14033979547688513714),
+UInt128(127314748520905, 7016989773844256857),
+UInt128(63657374260452, 12731866923776904236),
+UInt128(318286871302263, 8319102397755866334),
+UInt128(159143435651131, 13382923235732708975),
+UInt128(79571717825565, 15914833654721130295),
+UInt128(397858589127829, 5787191978767445014),
+UInt128(198929294563914, 12116968026238498315),
+UInt128(99464647281957, 6058484013119249157),
+UInt128(497323236409786, 11845675991886694171),
+UInt128(248661618204893, 5922837995943347085),
+]
+
+private let bid_breakpoints_bid32_2: [UInt128] = [
+UInt128(124330809102446, 12184791034826449350),
+UInt128(62165404551223, 6092395517413224675),
+UInt128(310827022756116, 12015233513356571761),
+UInt128(155413511378058, 6007616756678285880),
+UInt128(77706755689029, 3003808378339142940),
+UInt128(388533778445145, 15019041891695714701),
+UInt128(194266889222572, 16732892982702633158),
+UInt128(97133444611286, 8366446491351316579),
+UInt128(485667223056432, 4938744309337479665),
+UInt128(242833611528216, 2469372154668739832),
+UInt128(121416805764108, 1234686077334369916),
+UInt128(60708402882054, 617343038667184958),
+UInt128(303542014410270, 3086715193335924790),
+UInt128(151771007205135, 1543357596667962395),
+UInt128(75885503602567, 9995050835188757005),
+UInt128(379427518012837, 13081766028524681796),
+UInt128(189713759006418, 15764255051117116706),
+UInt128(94856879503209, 7882127525558558353),
+UInt128(474284397516047, 2517149480373688533),
+UInt128(237142198758023, 10481946777041620074),
+UInt128(118571099379011, 14464345425375585845),
+UInt128(59285549689505, 16455544749542568730),
+UInt128(296427748447529, 8490747452874637189),
+UInt128(148213874223764, 13468745763292094402),
+UInt128(74106937111882, 6734372881646047201),
+UInt128(370534685559411, 15225120334520684390),
+UInt128(185267342779705, 16835932204115118003),
+UInt128(92633671389852, 17641338138912334809),
+UInt128(463168356949264, 14419714399723467584),
+UInt128(231584178474632, 7209857199861733792),
+UInt128(115792089237316, 3604928599930866896),
+UInt128(57896044618658, 1802464299965433448),
+UInt128(289480223093290, 9012321499827167240),
+UInt128(144740111546645, 4506160749913583620),
+UInt128(72370055773322, 11476452411811567618),
+UInt128(361850278866613, 2042029837929183242),
+UInt128(180925139433306, 10244386955819367429),
+UInt128(90462569716653, 5122193477909683714),
+UInt128(452312848583266, 7164223315838866956),
+UInt128(226156424291633, 3582111657919433478),
+UInt128(113078212145816, 11014427865814492547),
+UInt128(56539106072908, 5507213932907246273),
+UInt128(282695530364541, 9089325590826679752),
+UInt128(141347765182270, 13768034832268115684),
+UInt128(70673882591135, 6884017416134057842),
+UInt128(353369412955676, 15973343006960737594),
+UInt128(176684706477838, 7986671503480368797),
+UInt128(88342353238919, 3993335751740184398),
+UInt128(441711766194596, 1519934684991370376),
+UInt128(220855883097298, 759967342495685188),
+]
+
+private let bid_breakpoints_bid32_3: [UInt128] = [
+UInt128(110427941548649, 379983671247842594),
+UInt128(552139707743245, 1899918356239212970),
+UInt128(276069853871622, 10173331214974382293),
+UInt128(138034926935811, 5086665607487191146),
+UInt128(69017463467905, 11766704840598371381),
+UInt128(345087317339528, 3493291981863202058),
+UInt128(172543658669764, 1746645990931601029),
+UInt128(86271829334882, 873322995465800514),
+UInt128(431359146674410, 4366614977329002573),
+UInt128(215679573337205, 2183307488664501286),
+UInt128(107839786668602, 10315025781187026451),
+UInt128(539198933343012, 14681640758516029024),
+UInt128(269599466671506, 7340820379258014512),
+UInt128(134799733335753, 3670410189629007256),
+UInt128(67399866667876, 11058577131669279436),
+UInt128(336999333339382, 18399397510927293948),
+UInt128(168499666669691, 9199698755463646974),
+UInt128(84249833334845, 13823221414586599295),
+UInt128(421249166674228, 13775874851804341627),
+UInt128(210624583337114, 6887937425902170813),
+UInt128(105312291668557, 3443968712951085406),
+UInt128(526561458342785, 17219843564755427034),
+UInt128(263280729171392, 17833293819232489325),
+UInt128(131640364585696, 8916646909616244662),
+UInt128(65820182292848, 4458323454808122331),
+UInt128(329100911464241, 3844873200331060040),
+UInt128(164550455732120, 11145808637020305828),
+UInt128(82275227866060, 5572904318510152914),
+UInt128(411376139330301, 9417777518841212954),
+UInt128(205688069665150, 13932260796275382285),
+UInt128(102844034832575, 6966130398137691142),
+UInt128(514220174162876, 16383907916978904097),
+UInt128(257110087081438, 8191953958489452048),
+UInt128(128555043540719, 4095976979244726024),
+UInt128(64277521770359, 11271360526477138820),
+UInt128(321387608851798, 1016570411257039252),
+UInt128(160693804425899, 508285205628519626),
+UInt128(80346902212949, 9477514639669035621),
+UInt128(401734511064747, 10494085050926074874),
+UInt128(200867255532373, 14470414562317813245),
+UInt128(100433627766186, 16458579318013682430),
+UInt128(502168138830934, 8505920295230205688),
+UInt128(251084069415467, 4252960147615102844),
+UInt128(125542034707733, 11349852110662327230),
+UInt128(62771017353866, 14898298092185939423),
+UInt128(313855086769334, 704514166091490651),
+UInt128(156927543384667, 352257083045745325),
+UInt128(78463771692333, 9399500578377648470),
+UInt128(392318858461667, 10104014744469139122),
+UInt128(196159429230833, 14275379409089345369),
+]
+
+private let bid_breakpoints_bid32_4: [UInt128] = [
+UInt128(98079714615416, 16361061741399448492),
+UInt128(490398573077084, 8018332412159035998),
+UInt128(245199286538542, 4009166206079517999),
+UInt128(122599643269271, 2004583103039758999),
+UInt128(61299821634635, 10225663588374655307),
+UInt128(306499108173177, 14234829794454173307),
+UInt128(153249554086588, 16340786934081862461),
+UInt128(76624777043294, 8170393467040931230),
+UInt128(383123885216472, 3958479187785552922),
+UInt128(191561942608236, 1979239593892776461),
+UInt128(95780971304118, 989619796946388230),
+UInt128(478904856520590, 4948098984731941152),
+UInt128(239452428260295, 2474049492365970576),
+UInt128(119726214130147, 10460396783037761096),
+UInt128(59863107065073, 14453570428373656356),
+UInt128(299315535325368, 16927619920739626932),
+UInt128(149657767662684, 8463809960369813466),
+UInt128(74828883831342, 4231904980184906733),
+UInt128(374144419156711, 2712780827214982049),
+UInt128(187072209578355, 10579762450462266832),
+UInt128(93536104789177, 14513253262085909224),
+UInt128(467680523945888, 17226034089300891273),
+UInt128(233840261972944, 8613017044650445636),
+UInt128(116920130986472, 4306508522325222818),
+UInt128(58460065493236, 2153254261162611409),
+UInt128(292300327466180, 10766271305813057046),
+UInt128(146150163733090, 5383135652906528523),
+UInt128(73075081866545, 2691567826453264261),
+UInt128(365375409332725, 13457839132266321307),
+UInt128(182687704666362, 15952291602987936461),
+UInt128(91343852333181, 7976145801493968230),
+UInt128(456719261665907, 2987240860050737922),
+UInt128(228359630832953, 10716992466880144769),
+UInt128(114179815416476, 14581868270294848192),
+UInt128(57089907708238, 7290934135147424096),
+UInt128(285449538541191, 18007926602027568865),
+UInt128(142724769270595, 18227335337868560240),
+UInt128(71362384635297, 18337039705789055928),
+UInt128(356811923176489, 17898222234107073178),
+UInt128(178405961588244, 18172483153908312397),
+UInt128(89202980794122, 9086241576954156198),
+UInt128(446014903970612, 8537719737351677760),
+UInt128(223007451985306, 4268859868675838880),
+UInt128(111503725992653, 2134429934337919440),
+UInt128(557518629963265, 10672149671689597200),
+UInt128(278759314981632, 14559446872699574408),
+UInt128(139379657490816, 7279723436349787204),
+UInt128(69689828745408, 3639861718174893602),
+UInt128(348449143727040, 18199308590874468010),
+UInt128(174224571863520, 9099654295437234005),
+]
+
+private let bid_breakpoints_bid32_5: [UInt128] = [
+UInt128(87112285931760, 4549827147718617002),
+UInt128(435561429658801, 4302391664883533397),
+UInt128(217780714829400, 11374567869296542506),
+UInt128(108890357414700, 5687283934648271253),
+UInt128(544451787073501, 9989675599531804650),
+UInt128(272225893536750, 14218209836620678133),
+UInt128(136112946768375, 7109104918310339066),
+UInt128(68056473384187, 12777924496009945341),
+UInt128(340282366920938, 8549390258921071858),
+UInt128(170141183460469, 4274695129460535929),
+UInt128(85070591730234, 11360719601585043772),
+UInt128(425352958651173, 1463365786796564015),
+UInt128(212676479325586, 9955054930253057815),
+UInt128(106338239662793, 4977527465126528907),
+UInt128(531691198313966, 6440893251923092922),
+UInt128(265845599156983, 3220446625961546461),
+UInt128(132922799578491, 10833595349835549038),
+UInt128(66461399789245, 14640169711772550327),
+UInt128(332306998946228, 17860616337734096788),
+UInt128(166153499473114, 8930308168867048394),
+UInt128(83076749736557, 4465154084433524197),
+UInt128(415383748682786, 3879026348458069369),
+UInt128(207691874341393, 1939513174229034684),
+UInt128(103845937170696, 10193128623969293150),
+UInt128(519229685853482, 14072154972427362520),
+UInt128(259614842926741, 7036077486213681260),
+UInt128(129807421463370, 12741410779961616438),
+UInt128(64903710731685, 6370705389980808219),
+UInt128(324518553658426, 13406782876194489479),
+UInt128(162259276829213, 6703391438097244739),
+UInt128(81129638414606, 12575067755903398177),
+UInt128(405648192073033, 7535106558388336041),
+UInt128(202824096036516, 12990925316048943828),
+UInt128(101412048018258, 6495462658024471914),
+UInt128(507060240091291, 14030569216412807955),
+UInt128(253530120045645, 16238656645061179785),
+UInt128(126765060022822, 17342700359385365700),
+UInt128(63382530011411, 8671350179692682850),
+UInt128(316912650057057, 6463262751044311020),
+UInt128(158456325028528, 12455003412376931318),
+UInt128(79228162514264, 6227501706188465659),
+UInt128(396140812571321, 12690764457232776679),
+UInt128(198070406285660, 15568754265471164147),
+UInt128(99035203142830, 7784377132735582073),
+UInt128(495176015714152, 2028397516258807136),
+UInt128(247588007857076, 1014198758129403568),
+UInt128(123794003928538, 507099379064701784),
+UInt128(61897001964269, 253549689532350892),
+UInt128(309485009821345, 1267748447661754460),
+UInt128(154742504910672, 9857246260685653038),
+]
+
+private let bid_breakpoints_bid32_6: [UInt128] = [
+UInt128(77371252455336, 4928623130342826519),
+UInt128(386856262276681, 6196371578004580979),
+UInt128(193428131138340, 12321557825857066297),
+UInt128(96714065569170, 6160778912928533148),
+UInt128(483570327845851, 12357150490933114128),
+UInt128(241785163922925, 15401947282321332872),
+UInt128(120892581961462, 16924345678015442244),
+UInt128(60446290980731, 8462172839007721122),
+UInt128(302231454903657, 5417376047619502378),
+UInt128(151115727451828, 11932060060664526997),
+UInt128(75557863725914, 5966030030332263498),
+UInt128(377789318629571, 11383406077951765876),
+UInt128(188894659314785, 14915075075830658746),
+UInt128(94447329657392, 16680909574770105181),
+UInt128(472236648286964, 9617571579012319442),
+UInt128(236118324143482, 4808785789506159721),
+UInt128(118059162071741, 2404392894753079860),
+UInt128(59029581035870, 10425568484231315738),
+UInt128(295147905179352, 15234354273737475459),
+UInt128(147573952589676, 7617177136868737729),
+UInt128(73786976294838, 3808588568434368864),
+UInt128(368934881474191, 596198768462292708),
+UInt128(184467440737095, 9521471421085922162),
+UInt128(92233720368547, 13984107747397736889),
+UInt128(461168601842738, 14580306515860029597),
+UInt128(230584300921369, 7290153257930014798),
+UInt128(115292150460684, 12868448665819783207),
+UInt128(57646075230342, 6434224332909891603),
+UInt128(288230376151711, 13724377590839906402),
+UInt128(144115188075855, 16085560832274729009),
+UInt128(72057594037927, 17266152452992140312),
+UInt128(360287970189639, 12543785970122495098),
+UInt128(180143985094819, 15495265021916023357),
+UInt128(90071992547409, 16971004547812787486),
+UInt128(450359962737049, 11068046444225730969),
+UInt128(225179981368524, 14757395258967641292),
+UInt128(112589990684262, 7378697629483820646),
+UInt128(56294995342131, 3689348814741910323),
+UInt128(281474976710655, 18446744073709551615),
+UInt128(140737488355327, 18446744073709551615),
+UInt128(70368744177663, 18446744073709551615),
+UInt128(351843720888319, 18446744073709551615),
+UInt128(175921860444159, 18446744073709551615),
+UInt128(87960930222079, 18446744073709551615),
+UInt128(439804651110399, 18446744073709551615),
+UInt128(219902325555199, 18446744073709551615),
+UInt128(109951162777599, 18446744073709551615),
+UInt128(549755813887999, 18446744073709551615),
+UInt128(274877906943999, 18446744073709551615),
+UInt128(137438953471999, 18446744073709551615),
+]
+
+private let bid_breakpoints_bid32_7: [UInt128] = [
+UInt128(68719476735999, 18446744073709551615),
+UInt128(343597383679999, 18446744073709551615),
+UInt128(171798691839999, 18446744073709551615),
+UInt128(85899345919999, 18446744073709551615),
+UInt128(429496729599999, 18446744073709551615),
+UInt128(214748364799999, 18446744073709551615),
+UInt128(107374182399999, 18446744073709551615),
+UInt128(536870911999999, 18446744073709551615),
+UInt128(268435455999999, 18446744073709551615),
+UInt128(134217727999999, 18446744073709551615),
+UInt128(67108863999999, 18446744073709551615),
+UInt128(335544319999999, 18446744073709551615),
+UInt128(167772159999999, 18446744073709551615),
+UInt128(83886079999999, 18446744073709551615),
+UInt128(419430399999999, 18446744073709551615),
+UInt128(209715199999999, 18446744073709551615),
+UInt128(104857599999999, 18446744073709551615),
+UInt128(524287999999999, 18446744073709551615),
+UInt128(262143999999999, 18446744073709551615),
+UInt128(131071999999999, 18446744073709551615),
+UInt128(65535999999999, 18446744073709551615),
+UInt128(327679999999999, 18446744073709551615),
+UInt128(163839999999999, 18446744073709551615),
+UInt128(81919999999999, 18446744073709551615),
+UInt128(409599999999999, 18446744073709551615),
+UInt128(204799999999999, 18446744073709551615),
+UInt128(102399999999999, 18446744073709551615),
+UInt128(511999999999999, 18446744073709551615),
+UInt128(255999999999999, 18446744073709551615),
+UInt128(127999999999999, 18446744073709551615),
+UInt128(63999999999999, 18446744073709551615),
+UInt128(319999999999999, 18446744073709551615),
+UInt128(159999999999999, 18446744073709551615),
+UInt128(79999999999999, 18446744073709551615),
+UInt128(399999999999999, 18446744073709551615),
+UInt128(199999999999999, 18446744073709551615),
+UInt128(99999999999999, 18446744073709551615),
+UInt128(499999999999999, 18446744073709551615),
+UInt128(249999999999999, 18446744073709551615),
+UInt128(124999999999999, 18446744073709551615),
+UInt128(62499999999999, 18446744073709551615),
+UInt128(312499999999999, 18446744073709551615),
+UInt128(156249999999999, 18446744073709551615),
+UInt128(78124999999999, 18446744073709551615),
+UInt128(390624999999999, 18446744073709551615),
+UInt128(195312499999999, 18446744073709551615),
+UInt128(97656249999999, 18446744073709551615),
+UInt128(488281249999999, 18446744073709551615),
+UInt128(244140624999999, 18446744073709551615),
+UInt128(122070312499999, 18446744073709551615),
+]
+
+private let bid_breakpoints_bid32_8: [UInt128] = [
+UInt128(61035156249999, 18446744073709551615),
+UInt128(305175781249999, 18446744073709551615),
+UInt128(152587890624999, 18446744073709551615),
+UInt128(76293945312499, 18446744073709551615),
+UInt128(381469726562499, 18446744073709551615),
+UInt128(190734863281249, 18446744073709551615),
+UInt128(95367431640624, 18446744073709551615),
+UInt128(476837158203124, 18446744073709551615),
+UInt128(238418579101562, 9223372036854775807),
+UInt128(119209289550781, 4611686018427387903),
+UInt128(59604644775390, 11529215046068469759),
+UInt128(298023223876953, 2305843009213693951),
+UInt128(149011611938476, 10376293541461622783),
+UInt128(74505805969238, 5188146770730811391),
+UInt128(372529029846191, 7493989779944505343),
+UInt128(186264514923095, 12970366926827028479),
+UInt128(93132257461547, 15708555500268290047),
+UInt128(465661287307739, 4755801206503243775),
+UInt128(232830643653869, 11601272640106397695),
+UInt128(116415321826934, 15024008356907974655),
+UInt128(58207660913467, 7512004178453987327),
+UInt128(291038304567337, 666532744850833407),
+UInt128(145519152283668, 9556638409280192511),
+UInt128(72759576141834, 4778319204640096255),
+UInt128(363797880709171, 5444851949490929663),
+UInt128(181898940354585, 11945798011600240639),
+UInt128(90949470177292, 15196271042654896127),
+UInt128(454747350886464, 2194378918436274175),
+UInt128(227373675443232, 1097189459218137087),
+UInt128(113686837721616, 548594729609068543),
+UInt128(56843418860808, 274297364804534271),
+UInt128(284217094304040, 1371486824022671359),
+UInt128(142108547152020, 685743412011335679),
+UInt128(71054273576010, 342871706005667839),
+UInt128(355271367880050, 1714358530028339199),
+UInt128(177635683940025, 857179265014169599),
+UInt128(88817841970012, 9651961669361860607),
+UInt128(444089209850062, 11366320199390199807),
+UInt128(222044604925031, 5683160099695099903),
+UInt128(111022302462515, 12064952086702325759),
+UInt128(555111512312578, 4984528212382973951),
+UInt128(277555756156289, 2492264106191486975),
+UInt128(138777878078144, 10469504089950519295),
+UInt128(69388939039072, 5234752044975259647),
+UInt128(346944695195361, 7727016151166746623),
+UInt128(173472347597680, 13086880112438149119),
+UInt128(86736173798840, 6543440056219074559),
+UInt128(433680868994201, 14270456207385821183),
+UInt128(216840434497100, 16358600140547686399),
+UInt128(108420217248550, 8179300070273843199),
+]
+
+private let bid_breakpoints_bid32_9: [UInt128] = [
+UInt128(542101086242752, 4003012203950112767),
+UInt128(271050543121376, 2001506101975056383),
+UInt128(135525271560688, 1000753050987528191),
+UInt128(67762635780344, 500376525493764095),
+UInt128(338813178901720, 2501882627468820479),
+UInt128(169406589450860, 1250941313734410239),
+UInt128(84703294725430, 625470656867205119),
+UInt128(423516473627150, 3127353284336025599),
+UInt128(211758236813575, 1563676642168012799),
+UInt128(105879118406787, 10005210357938782207),
+UInt128(529395592033937, 13132563642274807807),
+UInt128(264697796016968, 15789653857992179711),
+UInt128(132348898008484, 7894826928996089855),
+UInt128(66174449004242, 3947413464498044927),
+UInt128(330872245021211, 1290323248780673023),
+UInt128(165436122510605, 9868533661245112319),
+UInt128(82718061255302, 14157638867477331967),
+UInt128(413590306276513, 15447962116258004991),
+UInt128(206795153138256, 16947353094983778303),
+UInt128(103397576569128, 8473676547491889151),
+UInt128(516987882845642, 5474894590040342527),
+UInt128(258493941422821, 2737447295020171263),
+UInt128(129246970711410, 10592095684364861439),
+UInt128(64623485355705, 5296047842182430719),
+UInt128(323117426778526, 8033495137202601983),
+UInt128(161558713389263, 4016747568601300991),
+UInt128(80779356694631, 11231745821155426303),
+UInt128(403896783473158, 818496884648476671),
+UInt128(201948391736579, 409248442324238335),
+UInt128(100974195868289, 9427996258016894975),
+UInt128(504870979341447, 10246493142665371647),
+UInt128(252435489670723, 14346618608187461631),
+UInt128(126217744835361, 16396681340948506623),
+UInt128(63108872417680, 17421712707329029119),
+UInt128(315544362088404, 13321587241806939135),
+UInt128(157772181044202, 6660793620903469567),
+UInt128(78886090522101, 3330396810451734783),
+UInt128(394430452610505, 16651984052258673919),
+UInt128(197215226305252, 17549364062984112767),
+UInt128(98607613152626, 8774682031492056383),
+UInt128(493038065763132, 6979922010041178687),
+UInt128(246519032881566, 3489961005020589343),
+UInt128(123259516440783, 1744980502510294671),
+UInt128(61629758220391, 10095862288109923143),
+UInt128(308148791101957, 13585823293130512487),
+UInt128(154074395550978, 16016283683420032051),
+UInt128(77037197775489, 8008141841710016025),
+UInt128(385185988877447, 3147221061130976897),
+UInt128(192592994438723, 10796982567420264256),
+UInt128(96296497219361, 14621863320564907936),
+]
+
+private let bid_breakpoints_bid32_10: [UInt128] = [
+UInt128(481482486096808, 17769084381695884834),
+UInt128(240741243048404, 8884542190847942417),
+UInt128(120370621524202, 4442271095423971208),
+UInt128(60185310762101, 2221135547711985604),
+UInt128(300926553810505, 11105677738559928021),
+UInt128(150463276905252, 14776210906134739818),
+UInt128(75231638452626, 7388105453067369909),
+UInt128(376158192263132, 47039117917746314),
+UInt128(188079096131566, 23519558958873157),
+UInt128(94039548065783, 11759779479436578),
+UInt128(470197740328915, 58798897397182893),
+UInt128(235098870164457, 9252771485553367254),
+UInt128(117549435082228, 13849757779631459435),
+UInt128(58774717541114, 6924878889815729717),
+UInt128(293873587705571, 16177650375369096972),
+UInt128(146936793852785, 17312197224539324294),
+UInt128(73468396926392, 17879470649124437955),
+UInt128(367341984631964, 15610376950783983311),
+UInt128(183670992315982, 7805188475391991655),
+UInt128(91835496157991, 3902594237695995827),
+UInt128(459177480789956, 1066227114770427523),
+UInt128(229588740394978, 533113557385213761),
+UInt128(114794370197489, 266556778692606880),
+UInt128(57397185098744, 9356650426201079248),
+UInt128(286985925493722, 9889763983586293010),
+UInt128(143492962746861, 4944881991793146505),
+UInt128(71746481373430, 11695813032751349060),
+UInt128(358732406867153, 3138832942628090454),
+UInt128(179366203433576, 10792788508168821035),
+UInt128(89683101716788, 5396394254084410517),
+UInt128(448415508583941, 8535227196712500972),
+UInt128(224207754291970, 13490985635211026294),
+UInt128(112103877145985, 6745492817605513147),
+UInt128(560519385729926, 15280720014318014119),
+UInt128(280259692864963, 7640360007159007059),
+UInt128(140129846432481, 13043552040434279337),
+UInt128(70064923216240, 15745148057071915476),
+UInt128(350324616081204, 4938763990521370920),
+UInt128(175162308040602, 2469381995260685460),
+UInt128(87581154020301, 1234690997630342730),
+UInt128(437905770101505, 6173454988151713650),
+UInt128(218952885050752, 12310099530930632633),
+UInt128(109476442525376, 6155049765465316316),
+UInt128(547382212626881, 12328504753617029967),
+UInt128(273691106313440, 15387624413663290791),
+UInt128(136845553156720, 7693812206831645395),
+UInt128(68422776578360, 3846906103415822697),
+UInt128(342113882891801, 787786443369561873),
+UInt128(171056941445900, 9617265258539556744),
+UInt128(85528470722950, 4808632629269778372),
+]
+
+private let bid_breakpoints_bid32_11: [UInt128] = [
+UInt128(427642353614751, 5596419072639340246),
+UInt128(213821176807375, 12021581573174445931),
+UInt128(106910588403687, 15234162823441998773),
+UInt128(534552942018439, 2383837822371787403),
+UInt128(267276471009219, 10415290948040669509),
+UInt128(133638235504609, 14431017510875110562),
+UInt128(66819117752304, 16438880792292331089),
+UInt128(334095588761524, 8407427666623448983),
+UInt128(167047794380762, 4203713833311724491),
+UInt128(83523897190381, 2101856916655862245),
+UInt128(417619485951905, 10509284583279311229),
+UInt128(208809742975952, 14478014328494431422),
+UInt128(104404871487976, 7239007164247215711),
+UInt128(522024357439881, 17748291747526526940),
+UInt128(261012178719940, 18097517910618039278),
+UInt128(130506089359970, 9048758955309019639),
+UInt128(65253044679985, 4524379477654509819),
+UInt128(326265223399926, 4175153314562997481),
+UInt128(163132611699963, 2087576657281498740),
+UInt128(81566305849981, 10267160365495525178),
+UInt128(407831529249907, 14442313680058522660),
+UInt128(203915764624953, 16444528876884037138),
+UInt128(101957882312476, 17445636475296794377),
+UInt128(509789411562384, 13441206081645765421),
+UInt128(254894705781192, 6720603040822882710),
+UInt128(127447352890596, 3360301520411441355),
+UInt128(63723676445298, 1680150760205720677),
+UInt128(318618382226490, 8400753801028603388),
+UInt128(159309191113245, 4200376900514301694),
+UInt128(79654595556622, 11323560487111926655),
+UInt128(398272977783113, 1277570214430978427),
+UInt128(199136488891556, 9862157144070265021),
+UInt128(99568244445778, 4931078572035132510),
+UInt128(497841222228891, 6208648786466110938),
+UInt128(248920611114445, 12327696430087831277),
+UInt128(124460305557222, 15387220251898691446),
+UInt128(62230152778611, 7693610125949345723),
+UInt128(311150763893057, 1574562482327625384),
+UInt128(155575381946528, 10010653278018588500),
+UInt128(77787690973264, 5005326639009294250),
+UInt128(388938454866321, 6579889121336919634),
+UInt128(194469227433160, 12513316597523235625),
+UInt128(97234613716580, 6256658298761617812),
+UInt128(486173068582901, 12836547420098537447),
+UInt128(243086534291450, 15641645746904044531),
+UInt128(121543267145725, 7820822873452022265),
+UInt128(60771633572862, 13133783473580786940),
+UInt128(303858167864313, 10328685146775279856),
+UInt128(151929083932156, 14387714610242415736),
+UInt128(75964541966078, 7193857305121207868),
+]
+
+private let bid_breakpoints_bid32_12: [UInt128] = [
+UInt128(379822709830391, 17522542451896487724),
+UInt128(189911354915195, 17984643262803019670),
+UInt128(94955677457597, 18215693668256285643),
+UInt128(474778387287989, 17291492046443221751),
+UInt128(237389193643994, 17869118060076386683),
+UInt128(118694596821997, 8934559030038193341),
+UInt128(59347298410998, 13690651551873872478),
+UInt128(296736492054993, 13113025538240707546),
+UInt128(148368246027496, 15779884805975129581),
+UInt128(74184123013748, 7889942402987564790),
+UInt128(370920615068742, 2556223867518720721),
+UInt128(185460307534371, 1278111933759360360),
+UInt128(92730153767185, 9862428003734455988),
+UInt128(463650768835927, 12418651871253176710),
+UInt128(231825384417963, 15432697972481364163),
+UInt128(115912692208981, 16939721023095457889),
+UInt128(57956346104490, 17693232548402504752),
+UInt128(289781730522454, 14679186447174317299),
+UInt128(144890865261227, 7339593223587158649),
+UInt128(72445432630613, 12893168648648355132),
+UInt128(362227163153068, 9125611022113120816),
+UInt128(181113581576534, 4562805511056560408),
+UInt128(90556790788267, 2281402755528280204),
+UInt128(452783953941335, 11407013777641401020),
+UInt128(226391976970667, 14926878925675476318),
+UInt128(113195988485333, 16686811499692513967),
+UInt128(56597994242666, 17566777786701032791),
+UInt128(282989971213334, 14046912638666957494),
+UInt128(141494985606667, 7023456319333478747),
+UInt128(70747492803333, 12735100196521515181),
+UInt128(353737464016668, 8335268761478921059),
+UInt128(176868732008334, 4167634380739460529),
+UInt128(88434366004167, 2083817190369730264),
+UInt128(442171830020835, 10419085951848651324),
+UInt128(221085915010417, 14432915012779101470),
+UInt128(110542957505208, 16439829543244326543),
+UInt128(552714787526044, 8412171421383426251),
+UInt128(276357393763022, 4206085710691713125),
+UInt128(138178696881511, 2103042855345856562),
+UInt128(69089348440755, 10274893464527704089),
+UInt128(345446742203777, 14480979175219417215),
+UInt128(172723371101888, 16463861624464484415),
+UInt128(86361685550944, 8231930812232242207),
+UInt128(431808427754722, 4266165913742107807),
+UInt128(215904213877361, 2133082956871053903),
+UInt128(107952106938680, 10289913515290302759),
+UInt128(539760534693402, 14556079429032410566),
+UInt128(269880267346701, 7278039714516205283),
+UInt128(134940133673350, 12862391894112878449),
+UInt128(67470066836675, 6431195947056439224),
+]
+
+private let bid_breakpoints_bid32_13: [UInt128] = [
+UInt128(337350334183376, 13709235661572644508),
+UInt128(168675167091688, 6854617830786322254),
+UInt128(84337583545844, 3427308915393161127),
+UInt128(421687917729220, 17136544576965805635),
+UInt128(210843958864610, 8568272288482902817),
+UInt128(105421979432305, 4284136144241451408),
+UInt128(527109897161526, 2973936647497705428),
+UInt128(263554948580763, 1486968323748852714),
+UInt128(131777474290381, 9966856198729202165),
+UInt128(65888737145190, 14206800136219376890),
+UInt128(329443685725953, 15693768459968229604),
+UInt128(164721842862976, 17070256266838890610),
+]
+
+// MARK: - bid_breakpoints_bid64
+
+extension BinaryFloatingPointTables {
+ internal static func bid_breakpoints_bid64(_ index: Int) -> UInt128 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_breakpoints_bid64_0[r]
+ case 1: return bid_breakpoints_bid64_1[r]
+ case 2: return bid_breakpoints_bid64_2[r]
+ case 3: return bid_breakpoints_bid64_3[r]
+ case 4: return bid_breakpoints_bid64_4[r]
+ case 5: return bid_breakpoints_bid64_5[r]
+ case 6: return bid_breakpoints_bid64_6[r]
+ case 7: return bid_breakpoints_bid64_7[r]
+ case 8: return bid_breakpoints_bid64_8[r]
+ case 9: return bid_breakpoints_bid64_9[r]
+ case 10: return bid_breakpoints_bid64_10[r]
+ case 11: return bid_breakpoints_bid64_11[r]
+ case 12: return bid_breakpoints_bid64_12[r]
+ case 13: return bid_breakpoints_bid64_13[r]
+ case 14: return bid_breakpoints_bid64_14[r]
+ case 15: return bid_breakpoints_bid64_15[r]
+ case 16: return bid_breakpoints_bid64_16[r]
+ case 17: return bid_breakpoints_bid64_17[r]
+ case 18: return bid_breakpoints_bid64_18[r]
+ case 19: return bid_breakpoints_bid64_19[r]
+ case 20: return bid_breakpoints_bid64_20[r]
+ case 21: return bid_breakpoints_bid64_21[r]
+ case 22: return bid_breakpoints_bid64_22[r]
+ case 23: return bid_breakpoints_bid64_23[r]
+ case 24: return bid_breakpoints_bid64_24[r]
+ case 25: return bid_breakpoints_bid64_25[r]
+ case 26: return bid_breakpoints_bid64_26[r]
+ case 27: return bid_breakpoints_bid64_27[r]
+ case 28: return bid_breakpoints_bid64_28[r]
+ case 29: return bid_breakpoints_bid64_29[r]
+ case 30: return bid_breakpoints_bid64_30[r]
+ case 31: return bid_breakpoints_bid64_31[r]
+ case 32: return bid_breakpoints_bid64_32[r]
+ case 33: return bid_breakpoints_bid64_33[r]
+ case 34: return bid_breakpoints_bid64_34[r]
+ case 35: return bid_breakpoints_bid64_35[r]
+ case 36: return bid_breakpoints_bid64_36[r]
+ case 37: return bid_breakpoints_bid64_37[r]
+ case 38: return bid_breakpoints_bid64_38[r]
+ case 39: return bid_breakpoints_bid64_39[r]
+ case 40: return bid_breakpoints_bid64_40[r]
+ case 41: return bid_breakpoints_bid64_41[r]
+ case 42: return bid_breakpoints_bid64_42[r]
+ case 43: return bid_breakpoints_bid64_43[r]
+ case 44: return bid_breakpoints_bid64_44[r]
+ case 45: return bid_breakpoints_bid64_45[r]
+ case 46: return bid_breakpoints_bid64_46[r]
+ case 47: return bid_breakpoints_bid64_47[r]
+ case 48: return bid_breakpoints_bid64_48[r]
+ case 49: return bid_breakpoints_bid64_49[r]
+ case 50: return bid_breakpoints_bid64_50[r]
+ case 51: return bid_breakpoints_bid64_51[r]
+ case 52: return bid_breakpoints_bid64_52[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_breakpoints_bid64_0: [UInt128] = [
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+]
+
+private let bid_breakpoints_bid64_1: [UInt128] = [
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(0, 0),
+UInt128(73239311802481213, 632147898099709952),
+UInt128(36619655901240606, 9539445985904630784),
+UInt128(18309827950620303, 4769722992952315392),
+UInt128(91549139753101516, 5401870891052025344),
+UInt128(45774569876550758, 2700935445526012672),
+UInt128(22887284938275379, 1350467722763006208),
+UInt128(114436424691376895, 6752338613815031552),
+UInt128(57218212345688447, 12599541343762291456),
+UInt128(28609106172844223, 15523142708735921408),
+UInt128(143045530864221119, 3828737248841401600),
+UInt128(71522765432110559, 11137740661275476480),
+UInt128(35761382716055279, 14792242367492514048),
+UInt128(17880691358027639, 16619493220601032704),
+UInt128(89403456790138199, 9310489808166957824),
+UInt128(44701728395069099, 13878616940938254592),
+UInt128(22350864197534549, 16162680507323902976),
+UInt128(111754320987672749, 7026426241781309440),
+UInt128(55877160493836374, 12736585157745430528),
+UInt128(27938580246918187, 6368292578872715264),
+UInt128(139692901234590936, 13394718820654024704),
+UInt128(69846450617295468, 6697359410327012352),
+UInt128(34923225308647734, 3348679705163506176),
+UInt128(17461612654323867, 1674339852581753088),
+UInt128(87308063271619335, 8371699262908765440),
+UInt128(43654031635809667, 13409221668309158400),
+UInt128(21827015817904833, 15927982871009355008),
+UInt128(109135079089524169, 5852938060208568832),
+UInt128(54567539544762084, 12149841066959060224),
+UInt128(27283769772381042, 6074920533479529984),
+UInt128(136418848861905211, 11927858593688099072),
+UInt128(68209424430952605, 15187301333698825216),
+UInt128(34104712215476302, 16817022703704188416),
+UInt128(17052356107738151, 8408511351852094208),
+UInt128(85261780538690757, 5149068611841367808),
+UInt128(42630890269345378, 11797906342775459584),
+UInt128(21315445134672689, 5898953171387729664),
+UInt128(106577225673363446, 11048021783229097728),
+UInt128(53288612836681723, 5524010891614548736),
+UInt128(26644306418340861, 11985377482662050048),
+UInt128(133221532091704308, 4586655192181596416),
+UInt128(66610766045852154, 2293327596090798080),
+UInt128(33305383022926077, 1146663798045399040),
+UInt128(16652691511463038, 9796703935877475328),
+UInt128(83263457557315192, 12090031531968273664),
+]
+
+private let bid_breakpoints_bid64_2: [UInt128] = [
+UInt128(41631728778657596, 6045015765984136704),
+UInt128(20815864389328798, 3022507882992068352),
+UInt128(104079321946643990, 15112539414960342016),
+UInt128(52039660973321995, 7556269707480171008),
+UInt128(26019830486660997, 13001506890594861312),
+UInt128(130099152433304988, 9667302231845651712),
+UInt128(65049576216652494, 4833651115922825728),
+UInt128(32524788108326247, 2416825557961412864),
+UInt128(16262394054163123, 10431784815835482112),
+UInt128(81311970270815617, 15265435931758308096),
+UInt128(40655985135407808, 16856090002733929728),
+UInt128(20327992567703904, 8428045001366964736),
+UInt128(101639962838519522, 5246736859415721472),
+UInt128(50819981419259761, 2623368429707860736),
+UInt128(25409990709629880, 10535056251708706048),
+UInt128(127049953548149402, 15781793111124427520),
+UInt128(63524976774074701, 7890896555562213632),
+UInt128(31762488387037350, 13168820314635882496),
+UInt128(15881244193518675, 6584410157317941248),
+UInt128(79406220967593376, 14475306712880155136),
+UInt128(39703110483796688, 7237653356440077568),
+UInt128(19851555241898344, 3618826678220038656),
+UInt128(99257776209491720, 18094133391100194048),
+UInt128(49628888104745860, 9047066695550096896),
+UInt128(24814444052372930, 4523533347775048448),
+UInt128(124072220261864651, 4170922665165690880),
+UInt128(62036110130932325, 11308833369437621248),
+UInt128(31018055065466162, 14877788721573586432),
+UInt128(15509027532733081, 7438894360786793216),
+UInt128(77545137663665407, 300983656514862848),
+UInt128(38772568831832703, 9373863865112207104),
+UInt128(19386284415916351, 13910303969410879232),
+UInt128(96931422079581758, 14211287625925742080),
+UInt128(48465711039790879, 7105643812962871040),
+UInt128(24232855519895439, 12776193943336211200),
+UInt128(121164277599477198, 8540737495552401920),
+UInt128(60582138799738599, 4270368747776200960),
+UInt128(30291069399869299, 11358556410742876160),
+UInt128(15145534699934649, 14902650242226213888),
+UInt128(75727673499673249, 726274916292863232),
+UInt128(37863836749836624, 9586509495001207296),
+UInt128(18931918374918312, 4793254747500603648),
+UInt128(94659591874591561, 5519529663793467136),
+UInt128(47329795937295780, 11983136868751509248),
+UInt128(23664897968647890, 5991568434375754496),
+UInt128(118324489843239451, 11511098098169221632),
+UInt128(59162244921619725, 14978921085939386624),
+UInt128(29581122460809862, 16712832579824468992),
+UInt128(14790561230404931, 8356416289912234496),
+UInt128(73952806152024657, 4888593302142069504),
+]
+
+private let bid_breakpoints_bid64_3: [UInt128] = [
+UInt128(36976403076012328, 11667668687925810432),
+UInt128(18488201538006164, 5833834343962905088),
+UInt128(92441007690030821, 10722427646104974848),
+UInt128(46220503845015410, 14584585859907263232),
+UInt128(23110251922507705, 7292292929953631488),
+UInt128(115551259612538526, 18014720576058606592),
+UInt128(57775629806269263, 9007360288029303296),
+UInt128(28887814903134631, 13727052180869427456),
+UInt128(14443907451567315, 16086898127289489408),
+UInt128(72219537257836579, 6647514341609241088),
+UInt128(36109768628918289, 12547129207659396352),
+UInt128(18054884314459144, 15496936640684473856),
+UInt128(90274421572295724, 3697706908584163584),
+UInt128(45137210786147862, 1848853454292081664),
+UInt128(22568605393073931, 924426727146040832),
+UInt128(112843026965369655, 4622133635730204416),
+UInt128(56421513482684827, 11534438854719877888),
+UInt128(28210756741342413, 14990591464214714624),
+UInt128(141053783706712069, 1165981026235367680),
+UInt128(70526891853356034, 9806362549972459520),
+UInt128(35263445926678017, 4903181274986229760),
+UInt128(17631722963339008, 11674962674347890688),
+UInt128(88158614816695043, 3034581150610798848),
+UInt128(44079307408347521, 10740662612160175104),
+UInt128(22039653704173760, 14593703342934863360),
+UInt128(110198268520868803, 17628284493545662208),
+UInt128(55099134260434401, 18037514283627606784),
+UInt128(27549567130217200, 18242129178668579072),
+UInt128(137747835651086004, 17423669598504689920),
+UInt128(68873917825543002, 8711834799252344832),
+UInt128(34436958912771501, 4355917399626172416),
+UInt128(17218479456385750, 11401330736667862016),
+UInt128(86092397281928753, 1666421462210655232),
+UInt128(43046198640964376, 10056582767960103424),
+UInt128(21523099320482188, 5028291383980051712),
+UInt128(107615496602410941, 6694712846190706944),
+UInt128(53807748301205470, 12570728459950129152),
+UInt128(26903874150602735, 6285364229975064576),
+UInt128(134519370753013676, 12980077076165771776),
+UInt128(67259685376506838, 6490038538082885888),
+UInt128(33629842688253419, 3245019269041442816),
+UInt128(16814921344126709, 10845881671375497216),
+UInt128(84074606720633547, 17335920209458383104),
+UInt128(42037303360316773, 17891332141583967232),
+UInt128(21018651680158386, 18169038107646759424),
+UInt128(105093258400791934, 17058214243395590912),
+UInt128(52546629200395967, 8529107121697795328),
+UInt128(26273314600197983, 13487925597703673344),
+UInt128(131366573000989918, 12099395767389712896),
+UInt128(65683286500494959, 6049697883694856448),
+]
+
+private let bid_breakpoints_bid64_4: [UInt128] = [
+UInt128(32841643250247479, 12248220978702203904),
+UInt128(16420821625123739, 15347482526205877760),
+UInt128(82104108125618699, 2950436336191182592),
+UInt128(41052054062809349, 10698590204950366976),
+UInt128(20526027031404674, 14572667139329959168),
+UInt128(102630135157023373, 17523103475521142016),
+UInt128(51315067578511686, 17984923774615346688),
+UInt128(25657533789255843, 8992461887307673344),
+UInt128(128287668946279217, 8068821289119264000),
+UInt128(64143834473139608, 13257782681414407680),
+UInt128(32071917236569804, 6628891340707203840),
+UInt128(16035958618284902, 3314445670353601792),
+UInt128(80179793091424510, 16572228351768009728),
+UInt128(40089896545712255, 8286114175884004864),
+UInt128(20044948272856127, 13366429124796778240),
+UInt128(100224741364280638, 11491913402855236352),
+UInt128(50112370682140319, 5745956701427618048),
+UInt128(25056185341070159, 12096350387568584704),
+UInt128(125280926705350798, 5141519716714269696),
+UInt128(62640463352675399, 2570759858357134848),
+UInt128(31320231676337699, 10508751966033343232),
+UInt128(15660115838168849, 14477748019871447296),
+UInt128(78300579190844248, 17048507878228582144),
+UInt128(39150289595422124, 8524253939114290944),
+UInt128(19575144797711062, 4262126969557145344),
+UInt128(97875723988555311, 2863890774076176128),
+UInt128(48937861994277655, 10655317423892863744),
+UInt128(24468930997138827, 14551030748801207552),
+UInt128(122344654985694138, 17414921522877383936),
+UInt128(61172327492847069, 8707460761438691840),
+UInt128(30586163746423534, 13577102417574121728),
+UInt128(15293081873211767, 6788551208787060736),
+UInt128(76465409366058836, 15496011970225752832),
+UInt128(38232704683029418, 7748005985112876288),
+UInt128(19116352341514709, 3874002992556438016),
+UInt128(95581761707573546, 923270889072639488),
+UInt128(47790880853786773, 461635444536319744),
+UInt128(23895440426893386, 9454189759122935552),
+UInt128(119477202134466932, 10377460648195575040),
+UInt128(59738601067233466, 5188730324097787392),
+UInt128(29869300533616733, 2594365162048893696),
+UInt128(14934650266808366, 10520554617879222528),
+UInt128(74673251334041832, 15709284941977010176),
+UInt128(37336625667020916, 7854642470988505088),
+UInt128(18668312833510458, 3927321235494252544),
+UInt128(93341564167552291, 1189862103761711104),
+UInt128(46670782083776145, 9818303088735631360),
+UInt128(23335391041888072, 14132523581222591488),
+UInt128(116676955209440363, 15322385684984302592),
+UInt128(58338477604720181, 16884564879346927104),
+]
+
+private let bid_breakpoints_bid64_5: [UInt128] = [
+UInt128(29169238802360090, 17665654476528239360),
+UInt128(14584619401180045, 8832827238264119552),
+UInt128(72923097005900227, 7270648043901495296),
+UInt128(36461548502950113, 12858696058805523456),
+UInt128(18230774251475056, 15652720066257537536),
+UInt128(91153871257375284, 4476624036449481216),
+UInt128(45576935628687642, 2238312018224740608),
+UInt128(22788467814343821, 1119156009112370176),
+UInt128(113942339071719105, 5595780045561851392),
+UInt128(56971169535859552, 12021262059635701504),
+UInt128(28485584767929776, 6010631029817850624),
+UInt128(142427923839648881, 11606411075379702272),
+UInt128(71213961919824440, 15026577574544626944),
+UInt128(35606980959912220, 7513288787272313344),
+UInt128(17803490479956110, 3756644393636156672),
+UInt128(89017452399780551, 336477894471232000),
+UInt128(44508726199890275, 9391610984090391808),
+UInt128(22254363099945137, 13919177528899971584),
+UInt128(111271815499725688, 14255655423371203840),
+UInt128(55635907749862844, 7127827711685601792),
+UInt128(27817953874931422, 3563913855842800896),
+UInt128(139089769374657110, 17819569279214004736),
+UInt128(69544884687328555, 8909784639607002368),
+UInt128(34772442343664277, 13678264356658276864),
+UInt128(17386221171832138, 16062504215183914240),
+UInt128(86931105859160694, 6525544781081364992),
+UInt128(43465552929580347, 3262772390540682496),
+UInt128(21732776464790173, 10854758232125116928),
+UInt128(108663882323950867, 17380303013206482176),
+UInt128(54331941161975433, 17913523543458016768),
+UInt128(27165970580987716, 18180133808583784192),
+UInt128(135829852904938584, 17113692748080714752),
+UInt128(67914926452469292, 8556846374040357376),
+UInt128(33957463226234646, 4278423187020178688),
+UInt128(16978731613117323, 2139211593510089216),
+UInt128(84893658065586615, 10696057967550446592),
+UInt128(42446829032793307, 14571401020629999104),
+UInt128(21223414516396653, 16509072547169775360),
+UInt128(106117072581983269, 8758386441010670336),
+UInt128(53058536290991634, 13602565257360110848),
+UInt128(26529268145495817, 6801282628680055296),
+UInt128(132646340727479086, 15559669069690725888),
+UInt128(66323170363739543, 7779834534845362944),
+UInt128(33161585181869771, 13113289304277457152),
+UInt128(16580792590934885, 15780016688993504256),
+UInt128(82903962954674429, 5113107150129315840),
+UInt128(41451981477337214, 11779925611919433728),
+UInt128(20725990738668607, 5889962805959716864),
+UInt128(103629953693343036, 11003069956089032704),
+UInt128(51814976846671518, 5501534978044516352),
+]
+
+private let bid_breakpoints_bid64_6: [UInt128] = [
+UInt128(25907488423335759, 2750767489022258176),
+UInt128(129537442116678795, 13753837445111290880),
+UInt128(64768721058339397, 16100290759410421248),
+UInt128(32384360529169698, 17273517416559986432),
+UInt128(16192180264584849, 8636758708279993088),
+UInt128(80960901322924247, 6290305393980862720),
+UInt128(40480450661462123, 12368524733845207040),
+UInt128(20240225330731061, 15407634403777379328),
+UInt128(101201126653655309, 3251195724048690688),
+UInt128(50600563326827654, 10848969898879121152),
+UInt128(25300281663413827, 5424484949439560448),
+UInt128(126501408317069136, 8675680673488251136),
+UInt128(63250704158534568, 4337840336744125440),
+UInt128(31625352079267284, 2168920168372062720),
+UInt128(15812676039633642, 1084460084186031360),
+UInt128(79063380198168210, 5422300420930157056),
+UInt128(39531690099084105, 2711150210465078528),
+UInt128(19765845049542052, 10578947142087314944),
+UInt128(98829225247710262, 16001247563017472000),
+UInt128(49414612623855131, 8000623781508736000),
+UInt128(24707306311927565, 13223683927609143808),
+UInt128(123536531559637828, 10778187416917064192),
+UInt128(61768265779818914, 5389093708458532096),
+UInt128(30884132889909457, 2694546854229265920),
+UInt128(15442066444954728, 10570645463969408768),
+UInt128(77210332224773642, 15959739172427940864),
+UInt128(38605166112386821, 7979869586213970432),
+UInt128(19302583056193410, 13213306829961761024),
+UInt128(96512915280967053, 10726301928680150272),
+UInt128(48256457640483526, 14586523001194850816),
+UInt128(24128228820241763, 7293261500597425408),
+UInt128(120641144101208816, 18019563429277575936),
+UInt128(60320572050604408, 9009781714638787840),
+UInt128(30160286025302204, 4504890857319393792),
+UInt128(15080143012651102, 2252445428659696896),
+UInt128(75400715063255510, 11262227143298484992),
+UInt128(37700357531627755, 5631113571649242368),
+UInt128(18850178765813877, 12038928822679396864),
+UInt128(94250893829069388, 4854411892268330240),
+UInt128(47125446914534694, 2427205946134164992),
+UInt128(23562723457267347, 1213602973067082496),
+UInt128(117813617286336735, 6068014865335412992),
+UInt128(58906808643168367, 12257379469522482176),
+UInt128(29453404321584183, 15352061771616016896),
+UInt128(14726702160792091, 16899402922662784256),
+UInt128(73633510803960459, 10710038318475714816),
+UInt128(36816755401980229, 14578391196092633088),
+UInt128(18408377700990114, 16512567634901092352),
+UInt128(92041888504950574, 8775861879667255808),
+UInt128(46020944252475287, 4387930939833627904),
+]
+
+private let bid_breakpoints_bid64_7: [UInt128] = [
+UInt128(23010472126237643, 11417337506771589632),
+UInt128(115052360631188218, 1746455312729293824),
+UInt128(57526180315594109, 873227656364646912),
+UInt128(28763090157797054, 9659985865037099264),
+UInt128(143815450788985272, 11406441177766393344),
+UInt128(71907725394492636, 5703220588883196672),
+UInt128(35953862697246318, 2851610294441598208),
+UInt128(17976931348623159, 1425805147220798976),
+UInt128(89884656743115795, 7129025736103995648),
+UInt128(44942328371557897, 12787884904906773504),
+UInt128(22471164185778948, 15617314489308162560),
+UInt128(112355820928894744, 4299596151702606848),
+UInt128(56177910464447372, 2149798075851303424),
+UInt128(28088955232223686, 1074899037925651712),
+UInt128(140444776161118430, 5374495189628258560),
+UInt128(70222388080559215, 2687247594814129152),
+UInt128(35111194040279607, 10566995834261840384),
+UInt128(17555597020139803, 14506869953985696000),
+UInt128(87777985100699018, 17194117548799825152),
+UInt128(43888992550349509, 8597058774399912448),
+UInt128(21944496275174754, 13521901424054732032),
+UInt128(109722481375873773, 12269274899145005824),
+UInt128(54861240687936886, 15358009486427278592),
+UInt128(27430620343968443, 7679004743213639168),
+UInt128(137153101719842217, 1501535568649093632),
+UInt128(68576550859921108, 9974139821179322624),
+UInt128(34288275429960554, 4987069910589661184),
+UInt128(17144137714980277, 2493534955294830592),
+UInt128(85720688574901385, 12467674776474153216),
+UInt128(42860344287450692, 15457209425091852288),
+UInt128(21430172143725346, 7728604712545926144),
+UInt128(107150860718626732, 1749535415310527744),
+UInt128(53575430359313366, 874767707655263744),
+UInt128(26787715179656683, 437383853827631872),
+UInt128(133938575898283415, 2186919269138159872),
+UInt128(66969287949141707, 10316831671423855616),
+UInt128(33484643974570853, 14381787872566703616),
+UInt128(16742321987285426, 16414265973138127616),
+UInt128(83711609936427134, 8284353570852431616),
+UInt128(41855804968213567, 4142176785426215680),
+UInt128(20927902484106783, 11294460429567883520),
+UInt128(104639512420533918, 1132069926710763776),
+UInt128(52319756210266959, 566034963355381760),
+UInt128(26159878105133479, 9506389518532466688),
+UInt128(130799390525667397, 10638459445243230464),
+UInt128(65399695262833698, 14542601759476390912),
+UInt128(32699847631416849, 7271300879738195456),
+UInt128(16349923815708424, 12859022476723873536),
+UInt128(81749619078542123, 8954880162490713088),
+UInt128(40874809539271061, 13700812118100132352),
+]
+
+private let bid_breakpoints_bid64_8: [UInt128] = [
+UInt128(20437404769635530, 16073778095904841984),
+UInt128(102187023848177654, 6581914184686003456),
+UInt128(51093511924088827, 3290957092343001600),
+UInt128(25546755962044413, 10868850583026276608),
+UInt128(127733779810222067, 17450764767712280064),
+UInt128(63866889905111033, 17948754420710915840),
+UInt128(31933444952555516, 18197749247210233600),
+UInt128(15966722476277758, 9098874623605116672),
+UInt128(79833612381388792, 8600884970606481152),
+UInt128(39916806190694396, 4300442485303240448),
+UInt128(19958403095347198, 2150221242651620096),
+UInt128(99792015476735990, 10751106213258101248),
+UInt128(49896007738367995, 5375553106629050624),
+UInt128(24948003869183997, 11911148590169300992),
+UInt128(124740019345919988, 4215510729717850880),
+UInt128(62370009672959994, 2107755364858925312),
+UInt128(31185004836479997, 1053877682429462528),
+UInt128(15592502418239998, 9750310878069507072),
+UInt128(77962512091199992, 11858066242928432640),
+UInt128(38981256045599996, 5929033121464216320),
+UInt128(19490628022799998, 2964516560732108032),
+UInt128(97453140113999990, 14822582803660540672),
+UInt128(48726570056999995, 7411291401830270208),
+UInt128(24363285028499997, 12929017737769910784),
+UInt128(121816425142499988, 9304856467720900096),
+UInt128(60908212571249994, 4652428233860450048),
+UInt128(30454106285624997, 2326214116930224896),
+UInt128(15227053142812498, 10386479095319888128),
+UInt128(76135265714062492, 15038907329180338432),
+UInt128(38067632857031246, 7519453664590169088),
+UInt128(19033816428515623, 3759726832295084544),
+UInt128(95169082142578116, 351890087765871360),
+UInt128(47584541071289058, 175945043882935552),
+UInt128(23792270535644529, 87972521941467648),
+UInt128(118961352678222645, 439862609707339264),
+UInt128(59480676339111322, 9443303341708445440),
+UInt128(29740338169555661, 4721651670854222592),
+UInt128(14870169084777830, 11584197872281886976),
+UInt128(74350845423889153, 2580757140280781056),
+UInt128(37175422711944576, 10513750606995166208),
+UInt128(18587711355972288, 5256875303497583104),
+UInt128(92938556779861441, 7837632443778364160),
+UInt128(46469278389930720, 13142188258743957760),
+UInt128(23234639194965360, 6571094129371978752),
+UInt128(116173195974826801, 14408726573150343168),
+UInt128(58086597987413400, 16427735323429947392),
+UInt128(29043298993706700, 8213867661714973696),
+UInt128(14521649496853350, 4106933830857486848),
+UInt128(72608247484266751, 2087925080577882624),
+UInt128(36304123742133375, 10267334577143717120),
+]
+
+private let bid_breakpoints_bid64_9: [UInt128] = [
+UInt128(18152061871066687, 14357039325426634240),
+UInt128(90760309355333438, 16444964406004516864),
+UInt128(45380154677666719, 8222482203002258432),
+UInt128(22690077338833359, 13334613138355905024),
+UInt128(113450386694166798, 11332833470650870272),
+UInt128(56725193347083399, 5666416735325435136),
+UInt128(28362596673541699, 12056580404517493248),
+UInt128(141812983367708498, 4942669801458812160),
+UInt128(70906491683854249, 2471334900729405952),
+UInt128(35453245841927124, 10459039487219478784),
+UInt128(17726622920963562, 5229519743609739264),
+UInt128(88633114604817811, 7700854644339145472),
+UInt128(44316557302408905, 13073799359024348416),
+UInt128(22158278651204452, 15760271716366949888),
+UInt128(110791393256022264, 5014382286996544000),
+UInt128(55395696628011132, 2507191143498272000),
+UInt128(27697848314005566, 1253595571749135872),
+UInt128(138489241570027830, 6267977858745679872),
+UInt128(69244620785013915, 3133988929372839936),
+UInt128(34622310392506957, 10790366501541195776),
+UInt128(17311155196253478, 14618555287625373696),
+UInt128(86555775981267393, 17752544216998213632),
+UInt128(43277887990633696, 18099644145353882624),
+UInt128(21638943995316848, 9049822072676941312),
+UInt128(108194719976584242, 8355622215965603328),
+UInt128(54097359988292121, 4177811107982801664),
+UInt128(27048679994146060, 11312277590846176512),
+UInt128(135243399970730303, 1221155733102228480),
+UInt128(67621699985365151, 9833949903405890048),
+UInt128(33810849992682575, 14140346988557720832),
+UInt128(16905424996341287, 16293545531133636096),
+UInt128(84527124981706439, 7680751360829974528),
+UInt128(42263562490853219, 13063747717269763072),
+UInt128(21131781245426609, 15755245895489657344),
+UInt128(105658906227133049, 4989253182610080256),
+UInt128(52829453113566524, 11717998628159815936),
+UInt128(26414726556783262, 5858999314079907840),
+UInt128(132073632783916311, 10848252496689988352),
+UInt128(66036816391958155, 14647498285199769856),
+UInt128(33018408195979077, 16547121179454660608),
+UInt128(16509204097989538, 17496932626582106112),
+UInt128(82546020489947694, 13697686838072324608),
+UInt128(41273010244973847, 6848843419036162304),
+UInt128(20636505122486923, 12647793746372856832),
+UInt128(103182525612434618, 7898736510735629824),
+UInt128(51591262806217309, 3949368255367814912),
+UInt128(25795631403108654, 11198056164538683136),
+UInt128(128978157015543273, 650048601564761600),
+UInt128(64489078507771636, 9548396337637156608),
+UInt128(32244539253885818, 4774198168818578176),
+]
+
+private let bid_breakpoints_bid64_10: [UInt128] = [
+UInt128(16122269626942909, 2387099084409288960),
+UInt128(80611348134714545, 11935495422046445824),
+UInt128(40305674067357272, 15191119747877998592),
+UInt128(20152837033678636, 7595559873938999296),
+UInt128(100764185168393182, 1084311222275893504),
+UInt128(50382092584196591, 542155611137946624),
+UInt128(25191046292098295, 9494449842423749120),
+UInt128(125955231460491477, 10578761064699642624),
+UInt128(62977615730245738, 14512752569204596992),
+UInt128(31488807865122869, 7256376284602298368),
+UInt128(15744403932561434, 12851560179155924992),
+UInt128(78722019662807173, 8917568674650970624),
+UInt128(39361009831403586, 13682156374180261120),
+UInt128(19680504915701793, 6841078187090130432),
+UInt128(98402524578508966, 15758646861741101056),
+UInt128(49201262289254483, 7879323430870550528),
+UInt128(24600631144627241, 13163033752290051072),
+UInt128(123003155723136208, 10474936540321600768),
+UInt128(61501577861568104, 5237468270160800256),
+UInt128(30750788930784052, 2618734135080400128),
+UInt128(15375394465392026, 1309367067540199936),
+UInt128(76876972326960130, 6546835337701000448),
+UInt128(38438486163480065, 3273417668850500096),
+UInt128(19219243081740032, 10860080871280025856),
+UInt128(96096215408700162, 17406916208981026304),
+UInt128(48048107704350081, 8703458104490513152),
+UInt128(24024053852175040, 13575101089100032256),
+UInt128(120120269260875203, 12535273224371507200),
+UInt128(60060134630437601, 15491008649040529408),
+UInt128(30030067315218800, 16968876361375040512),
+UInt128(15015033657609400, 8484438180687520256),
+UInt128(75075168288047002, 5528702756018498048),
+UInt128(37537584144023501, 2764351378009249024),
+UInt128(18768792072011750, 10605547725859400192),
+UInt128(93843960360058752, 16134250481877898240),
+UInt128(46921980180029376, 8067125240938949120),
+UInt128(23460990090014688, 4033562620469474560),
+UInt128(117304950450073441, 1721069028637821184),
+UInt128(58652475225036720, 10083906551173686272),
+UInt128(29326237612518360, 5041953275586843136),
+UInt128(14663118806259180, 2520976637793421568),
+UInt128(73315594031295900, 12604883188967108096),
+UInt128(36657797015647950, 6302441594483554048),
+UInt128(18328898507823975, 3151220797241776896),
+UInt128(91644492539119875, 15756103986208884992),
+UInt128(45822246269559937, 17101424029959218176),
+UInt128(22911123134779968, 17774084051834384896),
+UInt128(114555615673899844, 15083443964333718272),
+UInt128(57277807836949922, 7541721982166859008),
+UInt128(28638903918474961, 3770860991083429376),
+]
+
+private let bid_breakpoints_bid64_11: [UInt128] = [
+UInt128(143194519592374806, 407560881707596288),
+UInt128(71597259796187403, 203780440853798144),
+UInt128(35798629898093701, 9325262257281674752),
+UInt128(17899314949046850, 13886003165495613184),
+UInt128(89496574745234253, 14089783606349411328),
+UInt128(44748287372617126, 16268263840029481472),
+UInt128(22374143686308563, 8134131920014740736),
+UInt128(111870718431542817, 3777171452654600704),
+UInt128(55935359215771408, 11111957763182076160),
+UInt128(27967679607885704, 5555978881591037952),
+UInt128(139838398039428521, 9333150334245638656),
+UInt128(69919199019714260, 13889947203977595136),
+UInt128(34959599509857130, 6944973601988797440),
+UInt128(17479799754928565, 3472486800994398720),
+UInt128(87398998774642825, 17362434004971993856),
+UInt128(43699499387321412, 17904589039340772608),
+UInt128(21849749693660706, 8952294519670386176),
+UInt128(109248748468303532, 7867984450932828672),
+UInt128(54624374234151766, 3933992225466414336),
+UInt128(27312187117075883, 1966996112733207040),
+UInt128(136560935585379415, 9834980563666035968),
+UInt128(68280467792689707, 14140862318687793664),
+UInt128(34140233896344853, 16293803196198672640),
+UInt128(17070116948172426, 17370273634954112000),
+UInt128(85350584740862134, 13064391879932354304),
+UInt128(42675292370431067, 6532195939966177024),
+UInt128(21337646185215533, 12489470006837864192),
+UInt128(106688230926077668, 7107117813060667136),
+UInt128(53344115463038834, 3553558906530333440),
+UInt128(26672057731519417, 1776779453265166592),
+UInt128(133360288657597085, 8883897266325833728),
+UInt128(66680144328798542, 13665320670017692672),
+UInt128(33340072164399271, 6832660335008846336),
+UInt128(16670036082199635, 12639702204359198976),
+UInt128(83350180410998178, 7858278800667340032),
+UInt128(41675090205499089, 3929139400333669888),
+UInt128(20837545102749544, 11187941737021610752),
+UInt128(104187725513747723, 599476463979399168),
+UInt128(52093862756873861, 9523110268844475392),
+UInt128(26046931378436930, 13984927171277013504),
+UInt128(130234656892184653, 14584403635256412928),
+UInt128(65117328446092326, 16515573854482982144),
+UInt128(32558664223046163, 8257786927241490944),
+UInt128(16279332111523081, 13352265500475521280),
+UInt128(81396660557615408, 11421095281248951808),
+UInt128(40698330278807704, 5710547640624475904),
+UInt128(20349165139403852, 2855273820312237824),
+UInt128(101745825697019260, 14276369101561189888),
+UInt128(50872912848509630, 7138184550780594944),
+UInt128(25436456424254815, 3569092275390297344),
+]
+
+private let bid_breakpoints_bid64_12: [UInt128] = [
+UInt128(127182282121274075, 17845461376951487488),
+UInt128(63591141060637037, 18146102725330519552),
+UInt128(31795570530318518, 18296423399520035584),
+UInt128(15897785265159259, 9148211699760017664),
+UInt128(79488926325796297, 8847570351380985600),
+UInt128(39744463162898148, 13647157212545268480),
+UInt128(19872231581449074, 6823578606272634112),
+UInt128(99361157907245371, 15671148957653619968),
+UInt128(49680578953622685, 17058946515681585664),
+UInt128(24840289476811342, 17752845294695568640),
+UInt128(124201447384056714, 14977250178639637248),
+UInt128(62100723692028357, 7488625089319818496),
+UInt128(31050361846014178, 12967684581514684928),
+UInt128(15525180923007089, 6483842290757342464),
+UInt128(77625904615035446, 13972467380077160960),
+UInt128(38812952307517723, 6986233690038580480),
+UInt128(19406476153758861, 12716488881874065920),
+UInt128(97032380768794308, 8242212188241675520),
+UInt128(48516190384397154, 4121106094120837632),
+UInt128(24258095192198577, 2060553047060418816),
+UInt128(121290475960992885, 10302765235302094592),
+UInt128(60645237980496442, 14374754654505822976),
+UInt128(30322618990248221, 7187377327252911360),
+UInt128(15161309495124110, 12817060700481231360),
+UInt128(75806547475620553, 8745071281277502976),
+UInt128(37903273737810276, 13595907677493527296),
+UInt128(18951636868905138, 6797953838746763520),
+UInt128(94758184344525691, 15543025120024266496),
+UInt128(47379092172262845, 16994884596866908928),
+UInt128(23689546086131422, 17720814335288230144),
+UInt128(118447730430657114, 14817095381602945280),
+UInt128(59223865215328557, 7408547690801472512),
+UInt128(29611932607664278, 12927645882255512064),
+UInt128(14805966303832139, 6463822941127756032),
+UInt128(74029831519160696, 13872370631929228800),
+UInt128(37014915759580348, 6936185315964614400),
+UInt128(18507457879790174, 3468092657982307072),
+UInt128(92537289398950870, 17340463289911535872),
+UInt128(46268644699475435, 8670231644955767808),
+UInt128(23134322349737717, 13558487859332659712),
+UInt128(115671611748688588, 12452207075534644224),
+UInt128(57835805874344294, 6226103537767322112),
+UInt128(28917902937172147, 3113051768883661056),
+UInt128(14458951468586073, 10779897921296606208),
+UInt128(72294757342930367, 17006001459063928320),
+UInt128(36147378671465183, 17726372766386739968),
+UInt128(18073689335732591, 18086558420048145664),
+UInt128(90368446678662959, 16645815805402522624),
+UInt128(45184223339331479, 17546279939556037120),
+UInt128(22592111669665739, 17996512006632794368),
+]
+
+private let bid_breakpoints_bid64_13: [UInt128] = [
+UInt128(112960558348328699, 16195583738325765376),
+UInt128(56480279174164349, 17321163906017658368),
+UInt128(28240139587082174, 17883953989863604992),
+UInt128(141200697935410874, 15632793654479818752),
+UInt128(70600348967705437, 7816396827239909376),
+UInt128(35300174483852718, 13131570450474730496),
+UInt128(17650087241926359, 6565785225237365248),
+UInt128(88250436209631796, 14382182052477274624),
+UInt128(44125218104815898, 7191091026238637312),
+UInt128(22062609052407949, 3595545513119318528),
+UInt128(110313045262039745, 17977727565596593408),
+UInt128(55156522631019872, 18212235819653072384),
+UInt128(27578261315509936, 9106117909826536192),
+UInt128(137891306577549682, 8637101401713577984),
+UInt128(68945653288774841, 4318550700856788992),
+UInt128(34472826644387420, 11382647387283170304),
+UInt128(17236413322193710, 5691323693641585152),
+UInt128(86182066610968551, 10009874394498374144),
+UInt128(43091033305484275, 14228309234103962880),
+UInt128(21545516652742137, 16337526653906757120),
+UInt128(107727583263710689, 7900656974695579648),
+UInt128(53863791631855344, 13173700524202565632),
+UInt128(26931895815927672, 6586850262101282816),
+UInt128(134659479079638361, 14487507236796862464),
+UInt128(67329739539819180, 16467125655253207040),
+UInt128(33664869769909590, 8233562827626603520),
+UInt128(16832434884954795, 4116781413813301760),
+UInt128(84162174424773976, 2137162995356957184),
+UInt128(42081087212386988, 1068581497678478592),
+UInt128(21040543606193494, 534290748839239168),
+UInt128(105202718030967470, 2671453744196196608),
+UInt128(52601359015483735, 1335726872098098176),
+UInt128(26300679507741867, 9891235472903824896),
+UInt128(131503397538709337, 12562689217100021504),
+UInt128(65751698769354668, 15504716645404786432),
+UInt128(32875849384677334, 7752358322702393088),
+UInt128(16437924692338667, 3876179161351196416),
+UInt128(82189623461693336, 934151733046431488),
+UInt128(41094811730846668, 467075866523215616),
+UInt128(20547405865423334, 233537933261607680),
+UInt128(102737029327116670, 1167689666308039424),
+UInt128(51368514663558335, 583844833154019584),
+UInt128(25684257331779167, 9515294453431785472),
+UInt128(128421286658895837, 10682984119739825152),
+UInt128(64210643329447918, 14564864096724688384),
+UInt128(32105321664723959, 7282432048362344192),
+UInt128(16052660832361979, 12864588061035947776),
+UInt128(80263304161809898, 8982708084051084544),
+UInt128(40131652080904949, 4491354042025542144),
+UInt128(20065826040452474, 11469049057867546880),
+]
+
+private let bid_breakpoints_bid64_14: [UInt128] = [
+UInt128(100329130202262373, 2005013068209080064),
+UInt128(50164565101131186, 10225878570959315712),
+UInt128(25082282550565593, 5112939285479657728),
+UInt128(125411412752827966, 7117952353688738048),
+UInt128(62705706376413983, 3558976176844368896),
+UInt128(31352853188206991, 11002860125276960256),
+UInt128(15676426594103495, 14724802099493255936),
+UInt128(78382132970517478, 18283778276337624832),
+UInt128(39191066485258739, 9141889138168812288),
+UInt128(19595533242629369, 13794316605939181824),
+UInt128(97977666213146848, 13631350808567255296),
+UInt128(48988833106573424, 6815675404283627520),
+UInt128(24494416553286712, 3407837702141813760),
+UInt128(122472082766433560, 17039188510709069312),
+UInt128(61236041383216780, 8519594255354534656),
+UInt128(30618020691608390, 4259797127677267200),
+UInt128(15309010345804195, 2129898563838633472),
+UInt128(76545051729020975, 10649492819193168128),
+UInt128(38272525864510487, 14548118446451359744),
+UInt128(19136262932255243, 16497431260080455680),
+UInt128(95681314661276219, 8700180005564072448),
+UInt128(47840657330638109, 13573462039636812032),
+UInt128(23920328665319054, 16010103056673181696),
+UInt128(119601643326595274, 6263538988527702528),
+UInt128(59800821663297637, 3131769494263851264),
+UInt128(29900410831648818, 10789256783986701312),
+UInt128(14950205415824409, 5394628391993350656),
+UInt128(74751027079122046, 8526397886257201920),
+UInt128(37375513539561023, 4263198943128600832),
+UInt128(18687756769780511, 11354971508419076096),
+UInt128(93438783848902558, 1434625320966726656),
+UInt128(46719391924451279, 717312660483363328),
+UInt128(23359695962225639, 9582028367096457472),
+UInt128(116798479811128197, 11016653688063184128),
+UInt128(58399239905564098, 14731698880886367744),
+UInt128(29199619952782049, 7365849440443183872),
+UInt128(14599809976391024, 12906296757076367616),
+UInt128(72999049881955123, 9191251564253184000),
+UInt128(36499524940977561, 13818997818981367808),
+UInt128(18249762470488780, 16132870946345459712),
+UInt128(91248812352443904, 6877378436889092096),
+UInt128(45624406176221952, 3438689218444546048),
+UInt128(22812203088110976, 1719344609222273024),
+UInt128(114061015440554880, 8596723046111365376),
+UInt128(57030507720277440, 4298361523055682560),
+UInt128(28515253860138720, 2149180761527841280),
+UInt128(142576269300693600, 10745903807639206656),
+UInt128(71288134650346800, 5372951903819603200),
+UInt128(35644067325173400, 2686475951909801472),
+UInt128(17822033662586700, 1343237975954900736),
+]
+
+private let bid_breakpoints_bid64_15: [UInt128] = [
+UInt128(89110168312933500, 6716189879774504192),
+UInt128(44555084156466750, 3358094939887251968),
+UInt128(22277542078233375, 1679047469943625984),
+UInt128(111387710391166875, 8395237349718130176),
+UInt128(55693855195583437, 13420990711713840896),
+UInt128(27846927597791718, 15933867392711696128),
+UInt128(139234637988958594, 5882360668720274688),
+UInt128(69617318994479297, 2941180334360137216),
+UInt128(34808659497239648, 10693962204034844416),
+UInt128(17404329748619824, 5346981102017422080),
+UInt128(87021648743099121, 8288161436377559552),
+UInt128(43510824371549560, 13367452755043555584),
+UInt128(21755412185774780, 6683726377521777664),
+UInt128(108777060928873901, 14971887813899337472),
+UInt128(54388530464436950, 16709315943804444416),
+UInt128(27194265232218475, 8354657971902222080),
+UInt128(135971326161092377, 4879801712092008192),
+UInt128(67985663080546188, 11663272892900779776),
+UInt128(33992831540273094, 5831636446450389760),
+UInt128(16996415770136547, 2915818223225194752),
+UInt128(84982078850682735, 14579091116125974784),
+UInt128(42491039425341367, 16512917594917763072),
+UInt128(21245519712670683, 17479830834313657344),
+UInt128(106227598563353419, 13612177876730080512),
+UInt128(53113799281676709, 16029460975219815936),
+UInt128(26556899640838354, 17238102524464683776),
+UInt128(132784498204191774, 12403536327485212928),
+UInt128(66392249102095887, 6201768163742606336),
+UInt128(33196124551047943, 12324256118726078976),
+UInt128(16598062275523971, 15385500096217815296),
+UInt128(82990311377619859, 3140524186250870016),
+UInt128(41495155688809929, 10793634129980210688),
+UInt128(20747577844404964, 14620189101844881152),
+UInt128(103737889222024823, 17760713288095751424),
+UInt128(51868944611012411, 18103728680902651392),
+UInt128(25934472305506205, 18275236377306101504),
+UInt128(129672361527531029, 17589205591692301312),
+UInt128(64836180763765514, 18017974832700926464),
+UInt128(32418090381882757, 9008987416350463232),
+UInt128(16209045190941378, 13727865745030007296),
+UInt128(81045225954706893, 13299096504021382144),
+UInt128(40522612977353446, 15872920288865466880),
+UInt128(20261306488676723, 7936460144432733440),
+UInt128(101306532443383617, 2788812574744564224),
+UInt128(50653266221691808, 10617778324227057920),
+UInt128(25326633110845904, 5308889162113528832),
+UInt128(126633165554229521, 8097701736858093056),
+UInt128(63316582777114760, 13272222905283822336),
+UInt128(31658291388557380, 6636111452641911040),
+UInt128(15829145694278690, 3318055726320955392),
+]
+
+private let bid_breakpoints_bid64_16: [UInt128] = [
+UInt128(79145728471393450, 16590278631604777984),
+UInt128(39572864235696725, 8295139315802388992),
+UInt128(19786432117848362, 13370941694755970304),
+UInt128(98932160589241813, 11514476252651196672),
+UInt128(49466080294620906, 14980610163180374016),
+UInt128(24733040147310453, 7490305081590187008),
+UInt128(123665200736552267, 558037260531832064),
+UInt128(61832600368276133, 9502390667120691712),
+UInt128(30916300184138066, 13974567370415121664),
+UInt128(15458150092069033, 6987283685207560704),
+UInt128(77290750460345166, 16489674352328252672),
+UInt128(38645375230172583, 8244837176164126208),
+UInt128(19322687615086291, 13345790624936838912),
+UInt128(96613438075431458, 11388720903555539968),
+UInt128(48306719037715729, 5694360451777769984),
+UInt128(24153359518857864, 12070552262743660800),
+UInt128(120766797594289323, 5012529092589649152),
+UInt128(60383398797144661, 11729636583149600256),
+UInt128(30191699398572330, 15088190328429575936),
+UInt128(15095849699286165, 7544095164214787840),
+UInt128(75479248496430827, 826987673654836736),
+UInt128(37739624248215413, 9636865873682194176),
+UInt128(18869812124107706, 14041804973695872768),
+UInt128(94349060620538533, 14868792647350709760),
+UInt128(47174530310269266, 16657768360530130688),
+UInt128(23587265155134633, 8328884180265065216),
+UInt128(117936325775673167, 4750932753906223616),
+UInt128(58968162887836583, 11598838413807887616),
+UInt128(29484081443918291, 15022791243758719488),
+UInt128(14742040721959145, 16734767658734135552),
+UInt128(73710203609795729, 9886861998832471552),
+UInt128(36855101804897864, 14166803036271011584),
+UInt128(18427550902448932, 7083401518135505664),
+UInt128(92137754512244661, 16970263516967977216),
+UInt128(46068877256122330, 17708503795338764288),
+UInt128(23034438628061165, 8854251897669382144),
+UInt128(115172193140305827, 7377771340927808000),
+UInt128(57586096570152913, 12912257707318679808),
+UInt128(28793048285076456, 15679500890514115584),
+UInt128(143965241425382284, 4610528157732371968),
+UInt128(71982620712691142, 2305264078866185984),
+UInt128(35991310356345571, 1152632039433092864),
+UInt128(17995655178172785, 9799688056571322112),
+UInt128(89978275890863927, 12104952135437508352),
+UInt128(44989137945431963, 15275848104573529856),
+UInt128(22494568972715981, 16861296089141540608),
+UInt128(112472844863579909, 10519504150869497600),
+UInt128(56236422431789954, 14483124112289524480),
+UInt128(28118211215894977, 7241562056144762112),
+UInt128(140591056079474886, 17761066207014259712),
+]
+
+private let bid_breakpoints_bid64_17: [UInt128] = [
+UInt128(70295528039737443, 8880533103507129856),
+UInt128(35147764019868721, 13663638588608340736),
+UInt128(17573882009934360, 16055191331158946048),
+UInt128(87869410049671804, 6488980360956524544),
+UInt128(43934705024835902, 3244490180478262272),
+UInt128(21967352512417951, 1622245090239131136),
+UInt128(109836762562089755, 8111225451195655680),
+UInt128(54918381281044877, 13278984762452603648),
+UInt128(27459190640522438, 15862864418081077504),
+UInt128(137295953202612194, 5527345795567181568),
+UInt128(68647976601306097, 2763672897783590656),
+UInt128(34323988300653048, 10605208485746571008),
+UInt128(17161994150326524, 5302604242873285376),
+UInt128(85809970751632621, 8066277140656876288),
+UInt128(42904985375816310, 13256510607183213824),
+UInt128(21452492687908155, 6628255303591606784),
+UInt128(107262463439540776, 14694532444248483328),
+UInt128(53631231719770388, 7347266222124241664),
+UInt128(26815615859885194, 3673633111062120704),
+UInt128(134078079299425970, 18368165555310604288),
+UInt128(67039039649712985, 9184082777655302144),
+UInt128(33519519824856492, 13815413425682426880),
+UInt128(16759759912428246, 6907706712841213440),
+UInt128(83798799562141231, 16091789490496515584),
+UInt128(41899399781070615, 17269266782103033600),
+UInt128(20949699890535307, 17858005427906292480),
+UInt128(104748499452676539, 15503050844693256448),
+UInt128(52374249726338269, 16974897459201403904),
+UInt128(26187124863169134, 17710820766455477760),
+UInt128(130935624315845674, 14767127537439182848),
+UInt128(65467812157922837, 7383563768719591424),
+UInt128(32733906078961418, 12915153921214571520),
+UInt128(16366953039480709, 6457576960607285760),
+UInt128(81834765197403546, 13841140729326877184),
+UInt128(40917382598701773, 6920570364663438592),
+UInt128(20458691299350886, 12683657219186494976),
+UInt128(102293456496754433, 8078053874803820544),
+UInt128(51146728248377216, 13262398974256686080),
+UInt128(25573364124188608, 6631199487128343040),
+UInt128(127866820620943041, 14709253361932163584),
+UInt128(63933410310471520, 16577998717820857600),
+UInt128(31966705155235760, 8288999358910428672),
+UInt128(15983352577617880, 4144499679455214336),
+UInt128(79916762888089401, 2275754323566520320),
+UInt128(39958381444044700, 10361249198638035968),
+UInt128(19979190722022350, 5180624599319017984),
+UInt128(99895953610111751, 7456378922885538304),
+UInt128(49947976805055875, 12951561498297544960),
+UInt128(24973988402527937, 15699152786003548160),
+UInt128(124869942012639689, 4708787635179535104),
+]
+
+private let bid_breakpoints_bid64_18: [UInt128] = [
+UInt128(62434971006319844, 11577765854444543232),
+UInt128(31217485503159922, 5788882927222271488),
+UInt128(15608742751579961, 2894441463611135744),
+UInt128(78043713757899805, 14472207318055679232),
+UInt128(39021856878949902, 16459475695882615296),
+UInt128(19510928439474951, 8229737847941307648),
+UInt128(97554642197374757, 4255201092287435264),
+UInt128(48777321098687378, 11350972582998493440),
+UInt128(24388660549343689, 5675486291499246592),
+UInt128(121943302746718446, 9930687383786682112),
+UInt128(60971651373359223, 4965343691893340928),
+UInt128(30485825686679611, 11706043882801446144),
+UInt128(15242912843339805, 15076393978255498752),
+UInt128(76214564216699029, 1594993596439288320),
+UInt128(38107282108349514, 10020868835074419968),
+UInt128(19053641054174757, 5010434417537209856),
+UInt128(95268205270873786, 6605428013976498432),
+UInt128(47634102635436893, 3302714006988249088),
+UInt128(23817051317718446, 10874729040348900352),
+UInt128(119085256588592232, 17480157054325398784),
+UInt128(59542628294296116, 8740078527162699264),
+UInt128(29771314147148058, 4370039263581349632),
+UInt128(14885657073574029, 2185019631790674688),
+UInt128(74428285367870145, 10925098158953374208),
+UInt128(37214142683935072, 14685921116331462912),
+UInt128(18607071341967536, 7342960558165731328),
+UInt128(93035356709837681, 18268058717119105792),
+UInt128(46517678354918840, 18357401395414328576),
+UInt128(23258839177459420, 9178700697707164160),
+UInt128(116294195887297102, 9000015341116718336),
+UInt128(58147097943648551, 4500007670558359040),
+UInt128(29073548971824275, 11473375872133955328),
+UInt128(14536774485912137, 14960059972921753344),
+UInt128(72683872429560689, 1013323569770561024),
+UInt128(36341936214780344, 9730033821740056320),
+UInt128(18170968107390172, 4865016910870028032),
+UInt128(90854840536950861, 5878340480640589312),
+UInt128(45427420268475430, 12162542277175070464),
+UInt128(22713710134237715, 6081271138587535104),
+UInt128(113568550671188576, 11959611619228124416),
+UInt128(56784275335594288, 5979805809614062080),
+UInt128(28392137667797144, 2989902904807031040),
+UInt128(141960688338985720, 14949514524035155712),
+UInt128(70980344169492860, 7474757262017577728),
+UInt128(35490172084746430, 3737378631008788736),
+UInt128(17745086042373215, 1868689315504394240),
+UInt128(88725430211866075, 9343446577521972224),
+UInt128(44362715105933037, 13895095325615761920),
+UInt128(22181357552966518, 16170919699662656768),
+UInt128(110906787764832594, 7067622203475077376),
+]
+
+private let bid_breakpoints_bid64_19: [UInt128] = [
+UInt128(55453393882416297, 3533811101737538560),
+UInt128(27726696941208148, 10990277587723545088),
+UInt128(138633484706040742, 18057899791198622720),
+UInt128(69316742353020371, 9028949895599311360),
+UInt128(34658371176510185, 13737846984654431488),
+UInt128(17329185588255092, 16092295529181991424),
+UInt128(86645927941275464, 6674501351071751168),
+UInt128(43322963970637732, 3337250675535875584),
+UInt128(21661481985318866, 1668625337767937792),
+UInt128(108307409926594330, 8343126688839688960),
+UInt128(54153704963297165, 4171563344419844352),
+UInt128(27076852481648582, 11309153709064697856),
+UInt128(135384262408242913, 1205536324194835456),
+UInt128(67692131204121456, 9826140198952193536),
+UInt128(33846065602060728, 4913070099476096768),
+UInt128(16923032801030364, 2456535049738048256),
+UInt128(84615164005151820, 12282675248690241792),
+UInt128(42307582002575910, 6141337624345120768),
+UInt128(21153791001287955, 3070668812172560384),
+UInt128(105768955006439775, 15353344060862802432),
+UInt128(52884477503219887, 16900044067286177024),
+UInt128(26442238751609943, 17673394070497864192),
+UInt128(132211193758049719, 14579994057651115264),
+UInt128(66105596879024859, 16513369065680333312),
+UInt128(33052798439512429, 17480056569694942464),
+UInt128(16526399219756214, 17963400321702246912),
+UInt128(82631996098781074, 16030025313673028864),
+UInt128(41315998049390537, 8015012656836514304),
+UInt128(20657999024695268, 13230878365273032960),
+UInt128(103289995123476343, 10814159605236510208),
+UInt128(51644997561738171, 14630451839473030912),
+UInt128(25822498780869085, 16538597956591291136),
+UInt128(129112493904345429, 8906013488118249984),
+UInt128(64556246952172714, 13676378780913900800),
+UInt128(32278123476086357, 6838189390456950272),
+UInt128(16139061738043178, 12642466732083250944),
+UInt128(80695308690215893, 7872101439287600128),
+UInt128(40347654345107946, 13159422756498575872),
+UInt128(20173827172553973, 6579711378249287936),
+UInt128(100869135862769866, 14451812817536888064),
+UInt128(50434567931384933, 7225906408768443904),
+UInt128(25217283965692466, 12836325241238997760),
+UInt128(126086419828462333, 8841393985066334208),
+UInt128(63043209914231166, 13644069029387942912),
+UInt128(31521604957115583, 6822034514693971456),
+UInt128(15760802478557791, 12634389294201761536),
+UInt128(78804012392788958, 7831714249880152832),
+UInt128(39402006196394479, 3915857124940076288),
+UInt128(19701003098197239, 11181300599324813824),
+UInt128(98505015490986198, 566270775495415296),
+]
+
+private let bid_breakpoints_bid64_20: [UInt128] = [
+UInt128(49252507745493099, 283135387747707648),
+UInt128(24626253872746549, 9364939730728629504),
+UInt128(123131269363732747, 9931210506224044800),
+UInt128(61565634681866373, 14188977289966798080),
+UInt128(30782817340933186, 16317860681838174720),
+UInt128(15391408670466593, 8158930340919087360),
+UInt128(76957043352332967, 3901163557176334080),
+UInt128(38478521676166483, 11173953815442942720),
+UInt128(19239260838083241, 14810348944576247040),
+UInt128(96196304190416209, 264768428043029760),
+UInt128(48098152095208104, 9355756250876290560),
+UInt128(24049076047604052, 4677878125438145280),
+UInt128(120245380238020261, 4942646553481175040),
+UInt128(60122690119010130, 11694695313595363328),
+UInt128(30061345059505065, 5847347656797681664),
+UInt128(15030672529752532, 12147045865253616640),
+UInt128(75153362648762663, 5394997105139428352),
+UInt128(37576681324381331, 11920870589424489984),
+UInt128(18788340662190665, 15183807331567020800),
+UInt128(93941703310953329, 2132060362996897536),
+UInt128(46970851655476664, 10289402218353224448),
+UInt128(23485425827738332, 5144701109176612096),
+UInt128(117427129138691661, 7276761472173509888),
+UInt128(58713564569345830, 12861752772941530624),
+UInt128(29356782284672915, 6430876386470765312),
+UInt128(14678391142336457, 12438810230090158336),
+UInt128(73391955711682288, 6853818929322137600),
+UInt128(36695977855841144, 3426909464661068800),
+UInt128(18347988927920572, 1713454732330534400),
+UInt128(91739944639602860, 8567273661652672000),
+UInt128(45869972319801430, 4283636830826336000),
+UInt128(22934986159900715, 2141818415413167872),
+UInt128(114674930799503575, 10709092077065839872),
+UInt128(57337465399751787, 14577918075387695616),
+UInt128(28668732699875893, 16512331074548623616),
+UInt128(143343663499379469, 8774679077904912128),
+UInt128(71671831749689734, 13610711575807231744),
+UInt128(35835915874844867, 6805355787903615744),
+UInt128(17917957937422433, 12626049930806583552),
+UInt128(89589789687112168, 7790017432904263936),
+UInt128(44794894843556084, 3895008716452131840),
+UInt128(22397447421778042, 1947504358226065920),
+UInt128(111987237108890210, 9737521791130330112),
+UInt128(55993618554445105, 4868760895565165056),
+UInt128(27996809277222552, 11657752484637358336),
+UInt128(139984046386112763, 2948530202058136832),
+UInt128(69992023193056381, 10697637137883844096),
+UInt128(34996011596528190, 14572190605796697856),
+UInt128(17498005798264095, 7286095302898348800),
+UInt128(87490028991320476, 17983732440782193152),
+]
+
+private let bid_breakpoints_bid64_21: [UInt128] = [
+UInt128(43745014495660238, 8991866220391096576),
+UInt128(21872507247830119, 4495933110195548160),
+UInt128(109362536239150596, 4032921477268189696),
+UInt128(54681268119575298, 2016460738634094848),
+UInt128(27340634059787649, 1008230369317047296),
+UInt128(136703170298938245, 5041151846585237248),
+UInt128(68351585149469122, 11743947960147394304),
+UInt128(34175792574734561, 5871973980073697024),
+UInt128(17087896287367280, 12159359026891624192),
+UInt128(85439481436836403, 5456562913329467136),
+UInt128(42719740718418201, 11951653493519509248),
+UInt128(21359870359209100, 15199198783614530304),
+UInt128(106799351796045504, 2209017623234446080),
+UInt128(53399675898022752, 1104508811617222912),
+UInt128(26699837949011376, 552254405808611328),
+UInt128(133499189745056880, 2761272029043057664),
+UInt128(66749594872528440, 1380636014521528832),
+UInt128(33374797436264220, 690318007260764416),
+UInt128(16687398718132110, 345159003630382080),
+UInt128(83436993590660550, 1725795018151910912),
+UInt128(41718496795330275, 862897509075955456),
+UInt128(20859248397665137, 9654820791392753408),
+UInt128(104296241988325687, 11380615809544664576),
+UInt128(52148120994162843, 14913679941627108096),
+UInt128(26074060497081421, 16680212007668329728),
+UInt128(130370302485407109, 9614083743503442944),
+UInt128(65185151242703554, 14030413908606497280),
+UInt128(32592575621351777, 7015206954303248640),
+UInt128(16296287810675888, 12730975514006400000),
+UInt128(81481439053379443, 8314645348903345664),
+UInt128(40740719526689721, 13380694711306448640),
+UInt128(20370359763344860, 15913719392508000000),
+UInt128(101851798816724304, 5781620667701794304),
+UInt128(50925899408362152, 2890810333850897152),
+UInt128(25462949704181076, 1445405166925448448),
+UInt128(127314748520905380, 7227025834627242752),
+UInt128(63657374260452690, 3613512917313621248),
+UInt128(31828687130226345, 1806756458656810496),
+UInt128(15914343565113172, 10126750266183181056),
+UInt128(79571717825565862, 13740263183496802560),
+UInt128(39785858912782931, 6870131591748401152),
+UInt128(19892929456391465, 12658437832728976384),
+UInt128(99464647281957328, 7951956942516227328),
+UInt128(49732323640978664, 3975978471258113536),
+UInt128(24866161820489332, 1987989235629056768),
+UInt128(124330809102446660, 9939946178145284352),
+UInt128(62165404551223330, 4969973089072642048),
+UInt128(31082702275611665, 2484986544536321024),
+UInt128(15541351137805832, 10465865309122936320),
+UInt128(77706755689029162, 15435838398195578368),
+]
+
+private let bid_breakpoints_bid64_22: [UInt128] = [
+UInt128(38853377844514581, 7717919199097789184),
+UInt128(19426688922257290, 13082331636403670272),
+UInt128(97133444611286453, 10071425960889697280),
+UInt128(48566722305643226, 14259085017299624448),
+UInt128(24283361152821613, 7129542508649812224),
+UInt128(121416805764108066, 17200968469539509504),
+UInt128(60708402882054033, 8600484234769754624),
+UInt128(30354201441027016, 13523614154239653120),
+UInt128(15177100720513508, 6761807077119826432),
+UInt128(75885503602567541, 15362291311889581312),
+UInt128(37942751801283770, 16904517692799566336),
+UInt128(18971375900641885, 8452258846399783168),
+UInt128(94856879503209427, 5367806084579812864),
+UInt128(47428439751604713, 11907275079144682240),
+UInt128(23714219875802356, 15177009576427116800),
+UInt128(118571099379011784, 2098071587297378304),
+UInt128(59285549689505892, 1049035793648689152),
+UInt128(29642774844752946, 524517896824344576),
+UInt128(14821387422376473, 262258948412172288),
+UInt128(74106937111882365, 1311294742060861440),
+UInt128(37053468555941182, 9879019407885206528),
+UInt128(18526734277970591, 4939509703942603264),
+UInt128(92633671389852956, 6250804446003464704),
+UInt128(46316835694926478, 3125402223001732352),
+UInt128(23158417847463239, 1562701111500866048),
+UInt128(115792089237316195, 7813505557504330752),
+UInt128(57896044618658097, 13130124815606941184),
+UInt128(28948022309329048, 15788434444658246400),
+UInt128(14474011154664524, 7894217222329123072),
+UInt128(72370055773322622, 2577597964226512896),
+UInt128(36185027886661311, 1288798982113256448),
+UInt128(18092513943330655, 9867771527911404032),
+UInt128(90462569716653277, 12445369492137916928),
+UInt128(45231284858326638, 15446056782923734272),
+UInt128(22615642429163319, 7723028391461867008),
+UInt128(113078212145816597, 1721653809890232320),
+UInt128(56539106072908298, 10084198941799891968),
+UInt128(28269553036454149, 5042099470899945984),
+UInt128(141347765182270746, 6763753280790178304),
+UInt128(70673882591135373, 3381876640395089152),
+UInt128(35336941295567686, 10914310357052320256),
+UInt128(17668470647783843, 5457155178526160128),
+UInt128(88342353238919216, 8839031818921249280),
+UInt128(44171176619459608, 4419515909460624640),
+UInt128(22085588309729804, 2209757954730312192),
+UInt128(110427941548649020, 11048789773651561728),
+UInt128(55213970774324510, 5524394886825780736),
+UInt128(27606985387162255, 2762197443412890368),
+UInt128(138034926935811275, 13810987217064452096),
+UInt128(69017463467905637, 16128865645387001856),
+]
+
+private let bid_breakpoints_bid64_23: [UInt128] = [
+UInt128(34508731733952818, 17287804859548276736),
+UInt128(17254365866976409, 8643902429774138368),
+UInt128(86271829334882047, 6326024001451588608),
+UInt128(43135914667441023, 12386384037580570112),
+UInt128(21567957333720511, 15416564055645060864),
+UInt128(107839786668602559, 3295843983387097856),
+UInt128(53919893334301279, 10871294028548324608),
+UInt128(26959946667150639, 14659019051128937984),
+UInt128(134799733335753198, 17954863034516036096),
+UInt128(67399866667876599, 8977431517258018048),
+UInt128(33699933333938299, 13712087795483784704),
+UInt128(16849966666969149, 16079415934596668160),
+UInt128(84249833334845749, 6610103378145134592),
+UInt128(42124916667422874, 12528423725927343104),
+UInt128(21062458333711437, 6264211862963671552),
+UInt128(105312291668557186, 12874315241108806144),
+UInt128(52656145834278593, 6437157620554403072),
+UInt128(26328072917139296, 12441950847131977216),
+UInt128(131640364585696483, 6869522014531232000),
+UInt128(65820182292848241, 12658133044120391680),
+UInt128(32910091146424120, 15552438558914971648),
+UInt128(16455045573212060, 7776219279457485824),
+UInt128(82275227866060302, 1987608249868325888),
+UInt128(41137613933030151, 993804124934162944),
+UInt128(20568806966515075, 9720274099321857280),
+UInt128(102844034832575377, 11707882349190183424),
+UInt128(51422017416287688, 15077313211449867520),
+UInt128(25711008708143844, 7538656605724933632),
+UInt128(128555043540719222, 799794881205565440),
+UInt128(64277521770359611, 399897440602782720),
+UInt128(32138760885179805, 9423320757156167168),
+UInt128(16069380442589902, 13935032415432859392),
+UInt128(80346902212949513, 14334929856035642112),
+UInt128(40173451106474756, 16390836964872596736),
+UInt128(20086725553237378, 8195418482436298240),
+UInt128(100433627766186892, 4083604264762388992),
+UInt128(50216813883093446, 2041802132381194496),
+UInt128(25108406941546723, 1020901066190597120),
+UInt128(125542034707733615, 5104505330952986112),
+UInt128(62771017353866807, 11775624702331268864),
+UInt128(31385508676933403, 15111184388020410112),
+UInt128(15692754338466701, 16778964230864980736),
+UInt128(78463771692333509, 10107844859486698240),
+UInt128(39231885846166754, 14277294466598124800),
+UInt128(19615942923083377, 7138647233299062272),
+UInt128(98079714615416886, 17246492092785760768),
+UInt128(49039857307708443, 8623246046392880384),
+UInt128(24519928653854221, 13534995060051215872),
+UInt128(122599643269271108, 12334743079127425024),
+UInt128(61299821634635554, 6167371539563712512),
+]
+
+private let bid_breakpoints_bid64_24: [UInt128] = [
+UInt128(30649910817317777, 3083685769781856256),
+UInt128(15324955408658888, 10765214921745703936),
+UInt128(76624777043294442, 16932586461309416448),
+UInt128(38312388521647221, 8466293230654708224),
+UInt128(19156194260823610, 13456518652182129920),
+UInt128(95780971304118053, 11942361039781994752),
+UInt128(47890485652059026, 15194552556745773056),
+UInt128(23945242826029513, 7597276278372886528),
+UInt128(119726214130147567, 1092893244445329664),
+UInt128(59863107065073783, 9769818659077440512),
+UInt128(29931553532536891, 14108281366393496064),
+UInt128(14965776766268445, 16277512720051523840),
+UInt128(74828883831342229, 7600587305419412992),
+UInt128(37414441915671114, 13023665689564482304),
+UInt128(18707220957835557, 6511832844782241024),
+UInt128(93536104789177786, 14112420150201654016),
+UInt128(46768052394588893, 7056210075100826880),
+UInt128(23384026197294446, 12751477074405189120),
+UInt128(116920130986472233, 8417153150897291776),
+UInt128(58460065493236116, 13431948612303421696),
+UInt128(29230032746618058, 6715974306151710720),
+UInt128(14615016373309029, 3357987153075855360),
+UInt128(73075081866545145, 16789935765379277056),
+UInt128(36537540933272572, 17618339919544414208),
+UInt128(18268770466636286, 8809169959772207104),
+UInt128(91343852333181432, 7152361651441932800),
+UInt128(45671926166590716, 3576180825720966400),
+UInt128(22835963083295358, 1788090412860483072),
+UInt128(114179815416476790, 8940452064302415872),
+UInt128(57089907708238395, 4470226032151207936),
+UInt128(28544953854119197, 11458485052930379776),
+UInt128(142724769270595988, 1952193043523244032),
+UInt128(71362384635297994, 976096521761622016),
+UInt128(35681192317648997, 488048260880811008),
+UInt128(17840596158824498, 9467396167295181312),
+UInt128(89202980794122492, 10443492689056803328),
+UInt128(44601490397061246, 5221746344528401664),
+UInt128(22300745198530623, 2610873172264200704),
+UInt128(111503725992653115, 13054365861321004288),
+UInt128(55751862996326557, 15750554967515277824),
+UInt128(27875931498163278, 17098649520612414720),
+UInt128(139379657490816394, 11706271308223867392),
+UInt128(69689828745408197, 5853135654111933696),
+UInt128(34844914372704098, 12149939863910742528),
+UInt128(17422457186352049, 6074969931955371264),
+UInt128(87112285931760246, 11928105586067304960),
+UInt128(43556142965880123, 5964052793033652480),
+UInt128(21778071482940061, 12205398433371601920),
+UInt128(108890357414700308, 5686759945729355520),
+UInt128(54445178707350154, 2843379972864677632),
+]
+
+private let bid_breakpoints_bid64_25: [UInt128] = [
+UInt128(27222589353675077, 1421689986432338688),
+UInt128(136112946768375385, 7108449932161694208),
+UInt128(68056473384187692, 12777597002935622912),
+UInt128(34028236692093846, 6388798501467811328),
+UInt128(17014118346046923, 3194399250733905664),
+UInt128(85070591730234615, 15971996253669528576),
+UInt128(42535295865117307, 17209370163689540096),
+UInt128(21267647932558653, 17828057118699545856),
+UInt128(106338239662793269, 15353309298659522816),
+UInt128(53169119831396634, 16900026686184537088),
+UInt128(26584559915698317, 8450013343092268544),
+UInt128(132922799578491587, 5356578568042240000),
+UInt128(66461399789245793, 11901661320875895808),
+UInt128(33230699894622896, 15174202697292723712),
+UInt128(16615349947311448, 7587101348646361856),
+UInt128(83076749736557242, 1042018595812706048),
+UInt128(41538374868278621, 521009297906352896),
+UInt128(20769187434139310, 9483876685807952128),
+UInt128(103845937170696552, 10525895281620658432),
+UInt128(51922968585348276, 5262947640810329088),
+UInt128(25961484292674138, 2631473820405164544),
+UInt128(129807421463370690, 13157369102025822976),
+UInt128(64903710731685345, 6578684551012911360),
+UInt128(32451855365842672, 12512714312361231360),
+UInt128(16225927682921336, 6256357156180615680),
+UInt128(81129638414606681, 12835041707193527296),
+UInt128(40564819207303340, 15640892890451539456),
+UInt128(20282409603651670, 7820446445225769728),
+UInt128(101412048018258352, 2208744078709745408),
+UInt128(50706024009129176, 1104372039354872576),
+UInt128(25353012004564588, 552186019677436160),
+UInt128(126765060022822940, 2760930098387181568),
+UInt128(63382530011411470, 1380465049193590784),
+UInt128(31691265005705735, 690232524596795392),
+UInt128(15845632502852867, 9568488299153173504),
+UInt128(79228162514264337, 10948953348346764288),
+UInt128(39614081257132168, 14697848711028157952),
+UInt128(19807040628566084, 7348924355514078976),
+UInt128(99035203142830421, 18297877703860843264),
+UInt128(49517601571415210, 18372310888785197312),
+UInt128(24758800785707605, 9186155444392598528),
+UInt128(123794003928538027, 9037289074543890432),
+UInt128(61897001964269013, 13742016574126721024),
+UInt128(30948500982134506, 16094380323918136320),
+UInt128(15474250491067253, 8047190161959068160),
+UInt128(77371252455336267, 3342462662376237568),
+UInt128(38685626227668133, 10894603368042894592),
+UInt128(19342813113834066, 14670673720876222976),
+UInt128(96714065569170333, 18013136383252460544),
+UInt128(48357032784585166, 18229940228481006080),
+]
+
+private let bid_breakpoints_bid64_26: [UInt128] = [
+UInt128(24178516392292583, 9114970114240503040),
+UInt128(120892581961462917, 8681362423783412224),
+UInt128(60446290980731458, 13564053248746481920),
+UInt128(30223145490365729, 6782026624373240832),
+UInt128(15111572745182864, 12614385349041396224),
+UInt128(75557863725914323, 7731694524078326528),
+UInt128(37778931862957161, 13089219298893938944),
+UInt128(18889465931478580, 15767981686301745152),
+UInt128(94447329657392904, 5052932136670520320),
+UInt128(47223664828696452, 2526466068335260160),
+UInt128(23611832414348226, 1263233034167630080),
+UInt128(118059162071741130, 6316165170838150400),
+UInt128(59029581035870565, 3158082585419075072),
+UInt128(29514790517935282, 10802413329564313344),
+UInt128(14757395258967641, 5401206664782156544),
+UInt128(73786976294838206, 8559289250201231872),
+UInt128(36893488147419103, 4279644625100615936),
+UInt128(18446744073709551, 11363194349405083648),
+UInt128(92233720368547758, 1475739525896763904),
+UInt128(46116860184273879, 737869762948381952),
+UInt128(23058430092136939, 9592306918328966656),
+UInt128(115292150460684697, 11068046444225730816),
+UInt128(57646075230342348, 14757395258967641088),
+UInt128(28823037615171174, 7378697629483820544),
+UInt128(14411518807585587, 3689348814741910272),
+UInt128(72057594037927935, 18446744073709551360),
+UInt128(36028797018963967, 18446744073709551360),
+UInt128(18014398509481983, 18446744073709551360),
+UInt128(90071992547409919, 18446744073709551360),
+UInt128(45035996273704959, 18446744073709551360),
+UInt128(22517998136852479, 18446744073709551360),
+UInt128(112589990684262399, 18446744073709551360),
+UInt128(56294995342131199, 18446744073709551360),
+UInt128(28147497671065599, 18446744073709551360),
+UInt128(140737488355327999, 18446744073709551360),
+UInt128(70368744177663999, 18446744073709551360),
+UInt128(35184372088831999, 18446744073709551360),
+UInt128(17592186044415999, 18446744073709551360),
+UInt128(87960930222079999, 18446744073709551360),
+UInt128(43980465111039999, 18446744073709551360),
+UInt128(21990232555519999, 18446744073709551360),
+UInt128(109951162777599999, 18446744073709551360),
+UInt128(54975581388799999, 18446744073709551360),
+UInt128(27487790694399999, 18446744073709551360),
+UInt128(137438953471999999, 18446744073709551360),
+UInt128(68719476735999999, 18446744073709551360),
+UInt128(34359738367999999, 18446744073709551360),
+UInt128(17179869183999999, 18446744073709551360),
+UInt128(85899345919999999, 18446744073709551360),
+UInt128(42949672959999999, 18446744073709551360),
+]
+
+private let bid_breakpoints_bid64_27: [UInt128] = [
+UInt128(21474836479999999, 18446744073709551360),
+UInt128(107374182399999999, 18446744073709551360),
+UInt128(53687091199999999, 18446744073709551360),
+UInt128(26843545599999999, 18446744073709551360),
+UInt128(134217727999999999, 18446744073709551360),
+UInt128(67108863999999999, 18446744073709551360),
+UInt128(33554431999999999, 18446744073709551360),
+UInt128(16777215999999999, 18446744073709551360),
+UInt128(83886079999999999, 18446744073709551360),
+UInt128(41943039999999999, 18446744073709551360),
+UInt128(20971519999999999, 18446744073709551360),
+UInt128(104857599999999999, 18446744073709551360),
+UInt128(52428799999999999, 18446744073709551360),
+UInt128(26214399999999999, 18446744073709551360),
+UInt128(131071999999999999, 18446744073709551360),
+UInt128(65535999999999999, 18446744073709551360),
+UInt128(32767999999999999, 18446744073709551360),
+UInt128(16383999999999999, 18446744073709551360),
+UInt128(81919999999999999, 18446744073709551360),
+UInt128(40959999999999999, 18446744073709551360),
+UInt128(20479999999999999, 18446744073709551360),
+UInt128(102399999999999999, 18446744073709551360),
+UInt128(51199999999999999, 18446744073709551360),
+UInt128(25599999999999999, 18446744073709551360),
+UInt128(127999999999999999, 18446744073709551360),
+UInt128(63999999999999999, 18446744073709551360),
+UInt128(31999999999999999, 18446744073709551360),
+UInt128(15999999999999999, 18446744073709551360),
+UInt128(79999999999999999, 18446744073709551360),
+UInt128(39999999999999999, 18446744073709551360),
+UInt128(19999999999999999, 18446744073709551360),
+UInt128(99999999999999999, 18446744073709551360),
+UInt128(49999999999999999, 18446744073709551360),
+UInt128(24999999999999999, 18446744073709551360),
+UInt128(124999999999999999, 18446744073709551360),
+UInt128(62499999999999999, 18446744073709551360),
+UInt128(31249999999999999, 18446744073709551360),
+UInt128(15624999999999999, 18446744073709551360),
+UInt128(78124999999999999, 18446744073709551360),
+UInt128(39062499999999999, 18446744073709551360),
+UInt128(19531249999999999, 18446744073709551360),
+UInt128(97656249999999999, 18446744073709551360),
+UInt128(48828124999999999, 18446744073709551360),
+UInt128(24414062499999999, 18446744073709551360),
+UInt128(122070312499999999, 18446744073709551360),
+UInt128(61035156249999999, 18446744073709551360),
+UInt128(30517578124999999, 18446744073709551360),
+UInt128(15258789062499999, 18446744073709551360),
+UInt128(76293945312499999, 18446744073709551360),
+UInt128(38146972656249999, 18446744073709551360),
+]
+
+private let bid_breakpoints_bid64_28: [UInt128] = [
+UInt128(19073486328124999, 18446744073709551360),
+UInt128(95367431640624999, 18446744073709551360),
+UInt128(47683715820312499, 18446744073709551360),
+UInt128(23841857910156249, 18446744073709551360),
+UInt128(119209289550781249, 18446744073709551360),
+UInt128(59604644775390624, 18446744073709551360),
+UInt128(29802322387695312, 9223372036854775552),
+UInt128(14901161193847656, 4611686018427387648),
+UInt128(74505805969238281, 4611686018427387648),
+UInt128(37252902984619140, 11529215046068469504),
+UInt128(18626451492309570, 5764607523034234624),
+UInt128(93132257461547851, 10376293541461622528),
+UInt128(46566128730773925, 14411518807585586944),
+UInt128(23283064365386962, 16429131440647569152),
+UInt128(116415321826934814, 8358680908399640320),
+UInt128(58207660913467407, 4179340454199820032),
+UInt128(29103830456733703, 11313042263954685696),
+UInt128(14551915228366851, 14879893168832118528),
+UInt128(72759576141834259, 612489549322387200),
+UInt128(36379788070917129, 9529616811515969280),
+UInt128(18189894035458564, 13988180442612760320),
+UInt128(90949470177292823, 14600669991935147776),
+UInt128(45474735088646411, 16523707032822349568),
+UInt128(22737367544323205, 17485225553265950464),
+UInt128(113686837721616029, 13639151471491546880),
+UInt128(56843418860808014, 16042947772600549120),
+UInt128(28421709430404007, 8021473886300274432),
+UInt128(142108547152020037, 3213881284082269952),
+UInt128(71054273576010018, 10830312678895910656),
+UInt128(35527136788005009, 5415156339447955200),
+UInt128(17763568394002504, 11930950206578753280),
+UInt128(88817841970012523, 4314518811765112576),
+UInt128(44408920985006261, 11380631442737331968),
+UInt128(22204460492503130, 14913687758223441664),
+UInt128(111022302462515654, 781462496279002880),
+UInt128(55511151231257827, 390731248139501312),
+UInt128(27755575615628913, 9418737660924526336),
+UInt128(138777878078144567, 10200200157203529472),
+UInt128(69388939039072283, 14323472115456540416),
+UInt128(34694469519536141, 16385108094583045888),
+UInt128(17347234759768070, 17415926084146298624),
+UInt128(86736173798840354, 13292654125893287680),
+UInt128(43368086899420177, 6646327062946643712),
+UInt128(21684043449710088, 12546535568328097536),
+UInt128(108420217248550443, 7392445620511833856),
+UInt128(54210108624275221, 12919594847110692608),
+UInt128(27105054312137610, 15683169460410121984),
+UInt128(135525271560688054, 4628871007212404480),
+UInt128(67762635780344027, 2314435503606202112),
+UInt128(33881317890172013, 10380589788657876736),
+]
+
+private let bid_breakpoints_bid64_29: [UInt128] = [
+UInt128(16940658945086006, 14413666931183714048),
+UInt128(84703294725430033, 16728102434789916416),
+UInt128(42351647362715016, 17587423254249733888),
+UInt128(21175823681357508, 8793711627124866816),
+UInt128(105879118406787542, 7075069988205231872),
+UInt128(52939559203393771, 3537534994102615808),
+UInt128(26469779601696885, 10992139533906083584),
+UInt128(132348898008484427, 18067209522111315712),
+UInt128(66174449004242213, 18256976797910433536),
+UInt128(33087224502121106, 18351860435809992448),
+UInt128(16543612251060553, 9175930217904996096),
+UInt128(82718061255302767, 8986162942105878272),
+UInt128(41359030627651383, 13716453507907714816),
+UInt128(20679515313825691, 16081598790808633088),
+UInt128(103397576569128459, 6621017659204960000),
+UInt128(51698788284564229, 12533880866457255680),
+UInt128(25849394142282114, 15490312470083403520),
+UInt128(129246970711410574, 3664586055578812160),
+UInt128(64623485355705287, 1832293027789405952),
+UInt128(32311742677852643, 10139518550749478656),
+UInt128(16155871338926321, 14293131312229515008),
+UInt128(80779356694631608, 16125424340018921216),
+UInt128(40389678347315804, 8062712170009460480),
+UInt128(20194839173657902, 4031356085004730112),
+UInt128(100974195868289511, 1710036351314099968),
+UInt128(50487097934144755, 10078390212511825664),
+UInt128(25243548967072377, 14262567143110688512),
+UInt128(126217744835361888, 15972603494424788736),
+UInt128(63108872417680944, 7986301747212394240),
+UInt128(31554436208840472, 3993150873606196992),
+UInt128(15777218104420236, 1996575436803098368),
+UInt128(78886090522101180, 9982877184015492864),
+UInt128(39443045261050590, 4991438592007746304),
+UInt128(19721522630525295, 2495719296003873024),
+UInt128(98607613152626475, 12478596480019366144),
+UInt128(49303806576313237, 15462670276864458752),
+UInt128(24651903288156618, 16954707175287005184),
+UInt128(123259516440783094, 10986559581596819968),
+UInt128(61629758220391547, 5493279790798409984),
+UInt128(30814879110195773, 11970011932253980672),
+UInt128(15407439555097886, 15208378002981766144),
+UInt128(77037197775489434, 2254913720070624512),
+UInt128(38518598887744717, 1127456860035312128),
+UInt128(19259299443872358, 9787100466872431872),
+UInt128(96296497219361792, 12042014186943056384),
+UInt128(48148248609680896, 6021007093471528192),
+UInt128(24074124304840448, 3010503546735763968),
+UInt128(120370621524202240, 15052517733678820608),
+UInt128(60185310762101120, 7526258866839410176),
+UInt128(30092655381050560, 3763129433419705088),
+]
+
+private let bid_breakpoints_bid64_30: [UInt128] = [
+UInt128(15046327690525280, 1881564716709852416),
+UInt128(75231638452626400, 9407823583549262848),
+UInt128(37615819226313200, 4703911791774631424),
+UInt128(18807909613156600, 2351955895887315712),
+UInt128(94039548065783000, 11759779479436578560),
+UInt128(47019774032891500, 5879889739718289152),
+UInt128(23509887016445750, 2939944869859144448),
+UInt128(117549435082228750, 14699724349295723264),
+UInt128(58774717541114375, 7349862174647861504),
+UInt128(29387358770557187, 12898303124178706432),
+UInt128(14693679385278593, 15672523598944129024),
+UInt128(73468396926392969, 4575641699882439168),
+UInt128(36734198463196484, 11511192886795995392),
+UInt128(18367099231598242, 5755596443397997568),
+UInt128(91835496157991211, 10331238143280436736),
+UInt128(45917748078995605, 14388991108494994176),
+UInt128(22958874039497802, 16417867591102272768),
+UInt128(114794370197489014, 8302361660673158144),
+UInt128(57397185098744507, 4151180830336579072),
+UInt128(28698592549372253, 11298962452023065344),
+UInt128(143492962746861268, 1154580038986671872),
+UInt128(71746481373430634, 577290019493335808),
+UInt128(35873240686715317, 288645009746667776),
+UInt128(17936620343357658, 9367694541728109568),
+UInt128(89683101716788292, 9944984561221445632),
+UInt128(44841550858394146, 4972492280610722816),
+UInt128(22420775429197073, 2486246140305361408),
+UInt128(112103877145985365, 12431230701526807040),
+UInt128(56051938572992682, 15438987387618179328),
+UInt128(28025969286496341, 7719493693809089536),
+UInt128(140129846432481707, 1703980321626345216),
+UInt128(70064923216240853, 10075362197667948288),
+UInt128(35032461608120426, 14261053135688749824),
+UInt128(17516230804060213, 7130526567844374784),
+UInt128(87581154020301066, 17205888765512323328),
+UInt128(43790577010150533, 8602944382756161536),
+UInt128(21895288505075266, 13524844228232856576),
+UInt128(109476442525376333, 12283988920035628544),
+UInt128(54738221262688166, 15365366496872590080),
+UInt128(27369110631344083, 7682683248436294912),
+UInt128(136845553156720417, 1519928094762371840),
+UInt128(68422776578360208, 9983336084235961600),
+UInt128(34211388289180104, 4991668042117980672),
+UInt128(17105694144590052, 2495834021058990336),
+UInt128(85528470722950260, 12479170105294952192),
+UInt128(42764235361475130, 6239585052647475968),
+UInt128(21382117680737565, 3119792526323737856),
+UInt128(106910588403687825, 15598962631618690304),
+UInt128(53455294201843912, 17022853352664120832),
+UInt128(26727647100921956, 8511426676332060416),
+]
+
+private let bid_breakpoints_bid64_31: [UInt128] = [
+UInt128(133638235504609782, 5663645234241199104),
+UInt128(66819117752304891, 2831822617120599552),
+UInt128(33409558876152445, 10639283345415075584),
+UInt128(16704779438076222, 14543013709562313472),
+UInt128(83523897190381113, 17374836326682913024),
+UInt128(41761948595190556, 17910790200196232192),
+UInt128(20880974297595278, 8955395100098116096),
+UInt128(104404871487976392, 7883487353071477760),
+UInt128(52202435743988196, 3941743676535738880),
+UInt128(26101217871994098, 1970871838267869440),
+UInt128(130506089359970490, 9854359191339347200),
+UInt128(65253044679985245, 4927179595669673472),
+UInt128(32626522339992622, 11686961834689612544),
+UInt128(16313261169996311, 5843480917344806144),
+UInt128(81566305849981556, 10770660513014479872),
+UInt128(40783152924990778, 5385330256507239936),
+UInt128(20391576462495389, 2692665128253619968),
+UInt128(101957882312476945, 13463325641268099840),
+UInt128(50978941156238472, 15955034857488825600),
+UInt128(25489470578119236, 7977517428744412672),
+UInt128(127447352890596182, 2994098996302961152),
+UInt128(63723676445298091, 1497049498151480576),
+UInt128(31861838222649045, 9971896785930515968),
+UInt128(15930919111324522, 14209320429820033792),
+UInt128(79654595556622613, 15706369927971514368),
+UInt128(39827297778311306, 17076557000840532992),
+UInt128(19913648889155653, 8538278500420266496),
+UInt128(99568244445778267, 5797904354682229248),
+UInt128(49784122222889133, 12122324214195890432),
+UInt128(24892061111444566, 15284534143952720896),
+UInt128(124460305557222834, 2635694424925398784),
+UInt128(62230152778611417, 1317847212462699264),
+UInt128(31115076389305708, 9882295643086125312),
+UInt128(15557538194652854, 4941147821543062528),
+UInt128(77787690973264271, 6258995034005762048),
+UInt128(38893845486632135, 12352869553857656832),
+UInt128(19446922743316067, 15399806813783604224),
+UInt128(97234613716580339, 3212057774079814656),
+UInt128(48617306858290169, 10829400923894683136),
+UInt128(24308653429145084, 14638072498802117376),
+UInt128(121543267145725423, 17850130272881932032),
+UInt128(60771633572862711, 18148437173295741696),
+UInt128(30385816786431355, 18297590623502646528),
+UInt128(15192908393215677, 18372167348606098944),
+UInt128(75964541966078389, 18073860448192289280),
+UInt128(37982270983039194, 18260302260950920448),
+UInt128(18991135491519597, 9130151130475460096),
+UInt128(94955677457597987, 8757267504958198016),
+UInt128(47477838728798993, 13602005789333874688),
+UInt128(23738919364399496, 16024374931521713152),
+]
+
+private let bid_breakpoints_bid64_32: [UInt128] = [
+UInt128(118694596821997484, 6334898362770359808),
+UInt128(59347298410998742, 3167449181385179904),
+UInt128(29673649205499371, 1583724590692589824),
+UInt128(14836824602749685, 10015234332201070592),
+UInt128(74184123013748427, 13182683513586250496),
+UInt128(37092061506874213, 15814713793647900928),
+UInt128(18546030753437106, 17130728933678726144),
+UInt128(92730153767185534, 11866668373555425280),
+UInt128(46365076883592767, 5933334186777712640),
+UInt128(23182538441796383, 12190039130243632128),
+UInt128(115912692208981918, 5609963430089505792),
+UInt128(57956346104490959, 2804981715044752896),
+UInt128(28978173052245479, 10625862894377152256),
+UInt128(14489086526122739, 14536303484043351808),
+UInt128(72445432630613698, 17341285199088104960),
+UInt128(36222716315306849, 8670642599544052480),
+UInt128(18111358157653424, 13558693336626801920),
+UInt128(90556790788267123, 12453234462005355264),
+UInt128(45278395394133561, 15449989267857453312),
+UInt128(22639197697066780, 16948366670783502336),
+UInt128(113195988485333904, 10954857059079306240),
+UInt128(56597994242666952, 5477428529539653120),
+UInt128(28298997121333476, 2738714264769826560),
+UInt128(141494985606667380, 13693571323849132800),
+UInt128(70747492803333690, 6846785661924566272),
+UInt128(35373746401666845, 3423392830962283008),
+UInt128(17686873200833422, 10935068452335917312),
+UInt128(88434366004167112, 17781854114260483840),
+UInt128(44217183002083556, 8890927057130241792),
+UInt128(22108591501041778, 4445463528565120768),
+UInt128(110542957505208891, 3780573569116053248),
+UInt128(55271478752604445, 11113658821412802304),
+UInt128(27635739376302222, 14780201447561176832),
+UInt128(138178696881511114, 114030942967678464),
+UInt128(69089348440755557, 57015471483839232),
+UInt128(34544674220377778, 9251879772596695296),
+UInt128(17272337110188889, 4625939886298347520),
+UInt128(86361685550944446, 4682955357782187008),
+UInt128(43180842775472223, 2341477678891093504),
+UInt128(21590421387736111, 10394110876300322560),
+UInt128(107952106938680557, 15077066234082509568),
+UInt128(53976053469340278, 16761905153896030464),
+UInt128(26988026734670139, 8380952576948015104),
+UInt128(134940133673350697, 5011274737320973312),
+UInt128(67470066836675348, 11729009405515262464),
+UInt128(33735033418337674, 5864504702757631232),
+UInt128(16867516709168837, 2932252351378815488),
+UInt128(84337583545844185, 14661261756894077952),
+UInt128(42168791772922092, 16554002915301814784),
+UInt128(21084395886461046, 8277001457650907392),
+]
+
+private let bid_breakpoints_bid64_33: [UInt128] = [
+UInt128(105421979432305232, 4491519140835433728),
+UInt128(52710989716152616, 2245759570417716736),
+UInt128(26355494858076308, 1122879785208858368),
+UInt128(131777474290381540, 5614398926044292352),
+UInt128(65888737145190770, 2807199463022146048),
+UInt128(32944368572595385, 1403599731511073024),
+UInt128(16472184286297692, 9925171902610312192),
+UInt128(82360921431488462, 12732371365632458496),
+UInt128(41180460715744231, 6366185682816229120),
+UInt128(20590230357872115, 12406464878262890240),
+UInt128(102951151789360578, 6692092170185797376),
+UInt128(51475575894680289, 3346046085092898560),
+UInt128(25737787947340144, 10896395079401224960),
+UInt128(128688939736700722, 17588487249587022336),
+UInt128(64344469868350361, 8794243624793511168),
+UInt128(32172234934175180, 13620493849251531264),
+UInt128(16086117467087590, 6810246924625765632),
+UInt128(80430587335437951, 15604490549419276800),
+UInt128(40215293667718975, 17025617311564414208),
+UInt128(20107646833859487, 17736180692636982784),
+UInt128(100538234169297439, 14893927168346708224),
+UInt128(50269117084648719, 16670335621028129792),
+UInt128(25134558542324359, 17558539847368840704),
+UInt128(125672792711621799, 14005722942005997312),
+UInt128(62836396355810899, 16226233507857774336),
+UInt128(31418198177905449, 17336488790783662848),
+UInt128(15709099088952724, 17891616432246607104),
+UInt128(78545495444763624, 15671105866394830080),
+UInt128(39272747722381812, 7835552933197414912),
+UInt128(19636373861190906, 3917776466598707456),
+UInt128(98181869305954531, 1142138259283986176),
+UInt128(49090934652977265, 9794441166496768768),
+UInt128(24545467326488632, 14120592620103160064),
+UInt128(122727336632443163, 15262730879387146496),
+UInt128(61363668316221581, 16854737476548348928),
+UInt128(30681834158110790, 17650740775128950272),
+UInt128(15340917079055395, 8825370387564475136),
+UInt128(76704585395276977, 7233363790403272448),
+UInt128(38352292697638488, 12840053932056411904),
+UInt128(19176146348819244, 6420026966028205824),
+UInt128(95880731744096221, 13653390756431478528),
+UInt128(47940365872048110, 16050067415070514944),
+UInt128(23970182936024055, 8025033707535257344),
+UInt128(119850914680120277, 3231680390257184512),
+UInt128(59925457340060138, 10839212231983367936),
+UInt128(29962728670030069, 5419606115991683840),
+UInt128(14981364335015034, 11933175094850617600),
+UInt128(74906821675075173, 4325643253124434176),
+UInt128(37453410837537586, 11386193663416992768),
+UInt128(18726705418768793, 5693096831708496384),
+]
+
+private let bid_breakpoints_bid64_34: [UInt128] = [
+UInt128(93633527093843966, 10018740084832930816),
+UInt128(46816763546921983, 5009370042416465408),
+UInt128(23408381773460991, 11728057058063008512),
+UInt128(117041908867304958, 3300053069186387712),
+UInt128(58520954433652479, 1650026534593193728),
+UInt128(29260477216826239, 10048385304151372544),
+UInt128(14630238608413119, 14247564688930461952),
+UInt128(73151193042065598, 15897591223523655936),
+UInt128(36575596521032799, 7948795611761827840),
+UInt128(18287798260516399, 13197769842735689728),
+UInt128(91438991302581998, 10648616992549794048),
+UInt128(45719495651290999, 5324308496274896896),
+UInt128(22859747825645499, 11885526284992224256),
+UInt128(114298739128227498, 4087399203832466944),
+UInt128(57149369564113749, 2043699601916233472),
+UInt128(28574684782056874, 10245221837812892416),
+UInt128(142873423910284372, 14332621041645359360),
+UInt128(71436711955142186, 7166310520822679552),
+UInt128(35718355977571093, 3583155260411339776),
+UInt128(17859177988785546, 11014949667060445696),
+UInt128(89295889943927732, 18181260187883125504),
+UInt128(44647944971963866, 9090630093941562624),
+UInt128(22323972485981933, 4545315046970781184),
+UInt128(111619862429909666, 4279831161144355328),
+UInt128(55809931214954833, 2139915580572177664),
+UInt128(27904965607477416, 10293329827140864512),
+UInt128(139524828037387082, 14573160988285219840),
+UInt128(69762414018693541, 7286580494142609920),
+UInt128(34881207009346770, 12866662283926080768),
+UInt128(17440603504673385, 6433331141963040256),
+UInt128(87203017523366926, 13719911636105650176),
+UInt128(43601508761683463, 6859955818052825088),
+UInt128(21800754380841731, 12653349945881188352),
+UInt128(109003771904208658, 7926517508277287168),
+UInt128(54501885952104329, 3963258754138643456),
+UInt128(27250942976052164, 11205001413924097536),
+UInt128(136254714880260823, 684774848491833088),
+UInt128(68127357440130411, 9565759461100692224),
+UInt128(34063678720065205, 14006251767405121792),
+UInt128(17031839360032602, 16226497920557336576),
+UInt128(85159196800163014, 7345513307948477440),
+UInt128(42579598400081507, 3672756653974238720),
+UInt128(21289799200040753, 11059750363841895168),
+UInt128(106448996000203767, 18405263671790372608),
+UInt128(53224498000101883, 18426003872749961984),
+UInt128(26612249000050941, 18436373973229756672),
+UInt128(133061245000254709, 18394893571310577920),
+UInt128(66530622500127354, 18420818822510064640),
+UInt128(33265311250063677, 9210409411255032320),
+UInt128(16632655625031838, 13828576742482291968),
+]
+
+private let bid_breakpoints_bid64_35: [UInt128] = [
+UInt128(83163278125159193, 13802651491282805248),
+UInt128(41581639062579596, 16124697782496178432),
+UInt128(20790819531289798, 8062348891248089088),
+UInt128(103954097656448992, 3418256308821342720),
+UInt128(51977048828224496, 1709128154410671360),
+UInt128(25988524414112248, 854564077205335552),
+UInt128(129942622070561240, 4272820386026678528),
+UInt128(64971311035280620, 2136410193013339136),
+UInt128(32485655517640310, 1068205096506669568),
+UInt128(16242827758820155, 534102548253334784),
+UInt128(81214138794100775, 2670512741266673920),
+UInt128(40607069397050387, 10558628407488112640),
+UInt128(20303534698525193, 14502686240598832128),
+UInt128(101517673492625968, 17173198981865506304),
+UInt128(50758836746312984, 8586599490932753152),
+UInt128(25379418373156492, 4293299745466376448),
+UInt128(126897091865782461, 3019754653622331136),
+UInt128(63448545932891230, 10733249363665941248),
+UInt128(31724272966445615, 5366624681832970496),
+UInt128(15862136483222807, 11906684377771260928),
+UInt128(79310682416114038, 4193189667727650816),
+UInt128(39655341208057019, 2096594833863825408),
+UInt128(19827670604028509, 10271669453786688512),
+UInt128(99138353020142547, 14464859121514339328),
+UInt128(49569176510071273, 16455801597611945472),
+UInt128(24784588255035636, 17451272835660748544),
+UInt128(123922941275178184, 13469387883465536512),
+UInt128(61961470637589092, 6734693941732768256),
+UInt128(30980735318794546, 3367346970866384128),
+UInt128(15490367659397273, 1683673485433191936),
+UInt128(77451838296986365, 8418367427165960192),
+UInt128(38725919148493182, 13432555750437755904),
+UInt128(19362959574246591, 6716277875218877952),
+UInt128(96814797871232956, 15134645302384838144),
+UInt128(48407398935616478, 7567322651192419072),
+UInt128(24203699467808239, 3783661325596209408),
+UInt128(121018497339041196, 471562554271496192),
+UInt128(60509248669520598, 235781277135748096),
+UInt128(30254624334760299, 117890638567874048),
+UInt128(15127312167380149, 9282317356138712832),
+UInt128(75636560836900747, 9518098633274460928),
+UInt128(37818280418450373, 13982421353492006144),
+UInt128(18909140209225186, 16214582713600778752),
+UInt128(94545701046125934, 7285937273165688320),
+UInt128(47272850523062967, 3642968636582844160),
+UInt128(23636425261531483, 11044856355146197760),
+UInt128(118182126307657417, 18330793628311886080),
+UInt128(59091063153828708, 18388768851010718720),
+UInt128(29545531576914354, 9194384425505359360),
+UInt128(14772765788457177, 4597192212752679680),
+]
+
+private let bid_breakpoints_bid64_36: [UInt128] = [
+UInt128(73863828942285886, 4539216990053847040),
+UInt128(36931914471142943, 2269608495026923520),
+UInt128(18465957235571471, 10358176284368237568),
+UInt128(92329786177857357, 14897393274422084608),
+UInt128(46164893088928678, 16672068674065818112),
+UInt128(23082446544464339, 8336034337032909056),
+UInt128(115412232722321697, 4786683537745442048),
+UInt128(57706116361160848, 11616713805727496704),
+UInt128(28853058180580424, 5808356902863748352),
+UInt128(14426529090290212, 2904178451431874048),
+UInt128(72132645451451060, 14520892257159371008),
+UInt128(36066322725725530, 7260446128579685376),
+UInt128(18033161362862765, 3630223064289842688),
+UInt128(90165806814313825, 18151115321449213696),
+UInt128(45082903407156912, 18298929697579382528),
+UInt128(22541451703578456, 9149464848789691136),
+UInt128(112707258517892282, 8853836096529353472),
+UInt128(56353629258946141, 4426918048264676608),
+UInt128(28176814629473070, 11436831060987113984),
+UInt128(140884073147365353, 1843923083806916096),
+UInt128(70442036573682676, 10145333578758233856),
+UInt128(35221018286841338, 5072666789379116800),
+UInt128(17610509143420669, 2536333394689558272),
+UInt128(88052545717103345, 12681666973447792128),
+UInt128(44026272858551672, 15564205523578671872),
+UInt128(22013136429275836, 7782102761789335808),
+UInt128(110065682146379182, 2017025661527576576),
+UInt128(55032841073189591, 1008512830763788288),
+UInt128(27516420536594795, 9727628452236669952),
+UInt128(137582102682973977, 11744654113764246528),
+UInt128(68791051341486988, 15095699093736899072),
+UInt128(34395525670743494, 7547849546868449536),
+UInt128(17197762835371747, 3773924773434224640),
+UInt128(85988814176858736, 422879793461572096),
+UInt128(42994407088429368, 211439896730786048),
+UInt128(21497203544214684, 105719948365392896),
+UInt128(107486017721073420, 528599741826965248),
+UInt128(53743008860536710, 264299870913482496),
+UInt128(26871504430268355, 132149935456741120),
+UInt128(134357522151341775, 660749677283706624),
+UInt128(67178761075670887, 9553746875496628992),
+UInt128(33589380537835443, 14000245474603090176),
+UInt128(16794690268917721, 16223494774156320768),
+UInt128(83973451344588609, 7330497575943398400),
+UInt128(41986725672294304, 12888620824826475008),
+UInt128(20993362836147152, 6444310412413237504),
+UInt128(104966814180735761, 13774807988356635904),
+UInt128(52483407090367880, 16110776031033093632),
+UInt128(26241703545183940, 8055388015516546816),
+UInt128(131208517725919702, 3383451930163631360),
+]
+
+private let bid_breakpoints_bid64_37: [UInt128] = [
+UInt128(65604258862959851, 1691725965081815552),
+UInt128(32802129431479925, 10069235019395683584),
+UInt128(16401064715739962, 14257989546552617472),
+UInt128(82005323578699813, 15949715511634433280),
+UInt128(41002661789349906, 17198229792671992320),
+UInt128(20501330894674953, 8599114896335996160),
+UInt128(102506654473374767, 6102086334260877824),
+UInt128(51253327236687383, 12274415203985214720),
+UInt128(25626663618343691, 15360579638847383040),
+UInt128(128133318091718459, 3015921899398709504),
+UInt128(64066659045859229, 10731332986554130432),
+UInt128(32033329522929614, 14589038530131841024),
+UInt128(16016664761464807, 7294519265065920512),
+UInt128(80083323807324036, 18025852251620050944),
+UInt128(40041661903662018, 9012926125810025472),
+UInt128(20020830951831009, 4506463062905012736),
+UInt128(100104154759155046, 4085571240815512320),
+UInt128(50052077379577523, 2042785620407756032),
+UInt128(25026038689788761, 10244764847058653696),
+UInt128(125130193448943807, 14330336087874166016),
+UInt128(62565096724471903, 16388540080791858688),
+UInt128(31282548362235951, 17417642077250705152),
+UInt128(15641274181117975, 17932193075480128256),
+UInt128(78206370905589879, 15873989082562435584),
+UInt128(39103185452794939, 17160366578135993600),
+UInt128(19551592726397469, 17803555325922772480),
+UInt128(97757963631987349, 15230800334775656704),
+UInt128(48878981815993674, 16838772204242604032),
+UInt128(24439490907996837, 8419386102121302016),
+UInt128(122197454539984187, 5203442363187407104),
+UInt128(61098727269992093, 11825093218448479232),
+UInt128(30549363634996046, 15135918646079015424),
+UInt128(15274681817498023, 7567959323039507712),
+UInt128(76373409087490117, 946308467778435584),
+UInt128(38186704543745058, 9696526270743993600),
+UInt128(19093352271872529, 4848263135371996672),
+UInt128(95466761359362646, 5794571603150432256),
+UInt128(47733380679681323, 2897285801575216128),
+UInt128(23866690339840661, 10672014937642383872),
+UInt128(119333451699203307, 16466586540792816128),
+UInt128(59666725849601653, 17456665307251183872),
+UInt128(29833362924800826, 17951704690480367616),
+UInt128(14916681462400413, 8975852345240183808),
+UInt128(74583407312002067, 7985773578781816064),
+UInt128(37291703656001033, 13216258826245683712),
+UInt128(18645851828000516, 15831501449977617664),
+UInt128(93229259140002584, 5370530955049882368),
+UInt128(46614629570001292, 2685265477524941056),
+UInt128(23307314785000646, 1342632738762470400),
+UInt128(116536573925003230, 6713163693812352768),
+]
+
+private let bid_breakpoints_bid64_38: [UInt128] = [
+UInt128(58268286962501615, 3356581846906176256),
+UInt128(29134143481250807, 10901662960307863808),
+UInt128(14567071740625403, 14674203517008707584),
+UInt128(72835358703127018, 18030785363914884096),
+UInt128(36417679351563509, 9015392681957442048),
+UInt128(18208839675781754, 13731068377833496832),
+UInt128(91044198378908773, 13315109668038829568),
+UInt128(45522099189454386, 15880926870874190592),
+UInt128(22761049594727193, 7940463435437095168),
+UInt128(113805247973635967, 2808829029766373120),
+UInt128(56902623986817983, 10627786551737962240),
+UInt128(28451311993408991, 14537265312723756800),
+UInt128(142256559967044958, 17346094342490130176),
+UInt128(71128279983522479, 8673047171245064960),
+UInt128(35564139991761239, 13559895622477308160),
+UInt128(17782069995880619, 16003319848093429760),
+UInt128(88910349979403099, 6229622945628943360),
+UInt128(44455174989701549, 12338183509669247488),
+UInt128(22227587494850774, 15392463791689399552),
+UInt128(111137937474253874, 3175342663608791296),
+UInt128(55568968737126937, 1587671331804395520),
+UInt128(27784484368563468, 10017207702756973568),
+UInt128(138922421842817342, 13192550366365765120),
+UInt128(69461210921408671, 6596275183182882560),
+UInt128(34730605460704335, 12521509628446216960),
+UInt128(17365302730352167, 15484126851077884160),
+UInt128(86826513651760839, 3633657960551215360),
+UInt128(43413256825880419, 11040201017130383360),
+UInt128(21706628412940209, 14743472545419967488),
+UInt128(108533142064701048, 18377130505971182848),
+UInt128(54266571032350524, 9188565252985591296),
+UInt128(27133285516175262, 4594282626492795648),
+UInt128(135666427580876311, 4524669058754426880),
+UInt128(67833213790438155, 11485706566231989248),
+UInt128(33916606895219077, 14966225319970770432),
+UInt128(16958303447609538, 16706484696840161024),
+UInt128(84791517238047694, 9745447189362598656),
+UInt128(42395758619023847, 4872723594681299200),
+UInt128(21197879309511923, 11659733834195425280),
+UInt128(105989396547559618, 2958436949848472576),
+UInt128(52994698273779809, 1479218474924236288),
+UInt128(26497349136889904, 9962981274316893952),
+UInt128(132486745684449522, 12921418224165366528),
+UInt128(66243372842224761, 6460709112082683136),
+UInt128(33121686421112380, 12453726592896117248),
+UInt128(16560843210556190, 6226863296448058624),
+UInt128(82804216052780951, 12687572408530742016),
+UInt128(41402108026390475, 15567158241120146688),
+UInt128(20701054013195237, 17006951157414849024),
+UInt128(103505270065976189, 11247779492236039424),
+]
+
+private let bid_breakpoints_bid64_39: [UInt128] = [
+UInt128(51752635032988094, 14847261782972795392),
+UInt128(25876317516494047, 7423630891486397696),
+UInt128(129381587582470237, 224666310012885760),
+UInt128(64690793791235118, 9335705191861218560),
+UInt128(32345396895617559, 4667852595930609152),
+UInt128(16172698447808779, 11557298334820080384),
+UInt128(80863492239043898, 2446259452971747584),
+UInt128(40431746119521949, 1223129726485873664),
+UInt128(20215873059760974, 9834936900097712640),
+UInt128(101079365298804872, 12281196353069460224),
+UInt128(50539682649402436, 6140598176534729984),
+UInt128(25269841324701218, 3070299088267364864),
+UInt128(126349206623506090, 15351495441336825344),
+UInt128(63174603311753045, 7675747720668412672),
+UInt128(31587301655876522, 13061245897188982016),
+UInt128(15793650827938261, 6530622948594490880),
+UInt128(78968254139691306, 14206370669262903552),
+UInt128(39484127069845653, 7103185334631451648),
+UInt128(19742063534922826, 12774964704170501632),
+UInt128(98710317674614133, 8534591299723853824),
+UInt128(49355158837307066, 13490667686716702720),
+UInt128(24677579418653533, 6745333843358351360),
+UInt128(123387897093267666, 15279925143082205184),
+UInt128(61693948546633833, 7639962571541102592),
+UInt128(30846974273316916, 13043353322625327104),
+UInt128(15423487136658458, 6521676661312663552),
+UInt128(77117435683292291, 14161639232853766144),
+UInt128(38558717841646145, 16304191653281658880),
+UInt128(19279358920823072, 17375467863495605248),
+UInt128(96396794604115364, 13090363022639819776),
+UInt128(48198397302057682, 6545181511319909888),
+UInt128(24099198651028841, 3272590755659954944),
+UInt128(120495993255144205, 16362953778299774720),
+UInt128(60247996627572102, 17404848926004663040),
+UInt128(30123998313786051, 8702424463002331392),
+UInt128(15061999156893025, 13574584268355941376),
+UInt128(75309995784465128, 12532689120651053056),
+UInt128(37654997892232564, 6266344560325526528),
+UInt128(18827498946116282, 3133172280162763264),
+UInt128(94137494730581410, 15665861400813816320),
+UInt128(47068747365290705, 7832930700406908160),
+UInt128(23534373682645352, 13139837387058229760),
+UInt128(117671868413226763, 10358954714162494720),
+UInt128(58835934206613381, 14402849393936023040),
+UInt128(29417967103306690, 16424796733822787328),
+UInt128(14708983551653345, 8212398366911393536),
+UInt128(73544917758266727, 4168503687137865216),
+UInt128(36772458879133363, 11307623880423708416),
+UInt128(18386229439566681, 14877183977066629888),
+UInt128(91931147197833409, 598943590494943744),
+]
+
+private let bid_breakpoints_bid64_40: [UInt128] = [
+UInt128(45965573598916704, 9522843832102247680),
+UInt128(22982786799458352, 4761421916051123712),
+UInt128(114913933997291761, 5360365506546067456),
+UInt128(57456966998645880, 11903554790127809536),
+UInt128(28728483499322940, 5951777395063904768),
+UInt128(143642417496614701, 11312142901609972224),
+UInt128(71821208748307350, 14879443487659761920),
+UInt128(35910604374153675, 7439721743829880832),
+UInt128(17955302187076837, 12943232908769716224),
+UInt128(89776510935384188, 9375932322719926528),
+UInt128(44888255467692094, 4687966161359963136),
+UInt128(22444127733846047, 2343983080679981568),
+UInt128(112220638669230235, 11719915403399908352),
+UInt128(56110319334615117, 15083329738554729984),
+UInt128(28055159667307558, 16765036906132140800),
+UInt128(140275798336537794, 10038208235822497536),
+UInt128(70137899168268897, 5019104117911248640),
+UInt128(35068949584134448, 11732924095810400000),
+UInt128(17534474792067224, 5866462047905199872),
+UInt128(87672373960336121, 10885566165816448768),
+UInt128(43836186980168060, 14666155119763000064),
+UInt128(21918093490084030, 7333077559881499904),
+UInt128(109590467450420151, 18218643725697948928),
+UInt128(54795233725210075, 18332693899703750144),
+UInt128(27397616862605037, 18389718986706650880),
+UInt128(136988084313025189, 18161618638695048192),
+UInt128(68494042156512594, 18304181356202299904),
+UInt128(34247021078256297, 9152090678101149952),
+UInt128(17123510539128148, 13799417375905350656),
+UInt128(85617552695640743, 13656854658398098944),
+UInt128(42808776347820371, 16051799366053825280),
+UInt128(21404388173910185, 17249271719881688320),
+UInt128(107021940869550929, 12459382304570235904),
+UInt128(53510970434775464, 15453063189139893760),
+UInt128(26755485217387732, 7726531594569946880),
+UInt128(133777426086938662, 1739169825430631168),
+UInt128(66888713043469331, 869584912715315456),
+UInt128(33444356521734665, 9658164493212433408),
+UInt128(16722178260867332, 14052454283460992512),
+UInt128(83610891304336663, 14922039196176308224),
+UInt128(41805445652168331, 16684391634942929920),
+UInt128(20902722826084165, 17565567854326240768),
+UInt128(104513614130420829, 14040862976792997376),
+UInt128(52256807065210414, 16243803525251274496),
+UInt128(26128403532605207, 8121901762625637120),
+UInt128(130642017663026037, 3716020665709083136),
+UInt128(65321008831513018, 11081382369709317376),
+UInt128(32660504415756509, 5540691184854658560),
+UInt128(16330252207878254, 11993717629282105088),
+UInt128(81651261039391273, 4628355925281870848),
+]
+
+private let bid_breakpoints_bid64_41: [UInt128] = [
+UInt128(40825630519695636, 11537549999495711232),
+UInt128(20412815259847818, 5768774999747855616),
+UInt128(102064076299239091, 10397130925029726464),
+UInt128(51032038149619545, 14421937499369638912),
+UInt128(25516019074809772, 16434340786539595264),
+UInt128(127580095374048864, 8384727637859770112),
+UInt128(63790047687024432, 4192363818929884928),
+UInt128(31895023843512216, 2096181909464942336),
+UInt128(15947511921756108, 1048090954732471040),
+UInt128(79737559608780540, 5240454773662356224),
+UInt128(39868779804390270, 2620227386831177984),
+UInt128(19934389902195135, 1310113693415588864),
+UInt128(99671949510975675, 6550568467077945344),
+UInt128(49835974755487837, 12498656270393748480),
+UInt128(24917987377743918, 15472700172051650048),
+UInt128(124589936888719594, 3576524565420043776),
+UInt128(62294968444359797, 1788262282710021888),
+UInt128(31147484222179898, 10117503178209786624),
+UInt128(15573742111089949, 5058751589104893184),
+UInt128(77868710555449746, 6847013871814915328),
+UInt128(38934355277724873, 3423506935907457536),
+UInt128(19467177638862436, 10935125504808504576),
+UInt128(97335888194312182, 17782139376623419904),
+UInt128(48667944097156091, 8891069688311709952),
+UInt128(24333972048578045, 13668906881010630656),
+UInt128(121669860242890228, 13004302183924499200),
+UInt128(60834930121445114, 6502151091962249472),
+UInt128(30417465060722557, 3251075545981124608),
+UInt128(15208732530361278, 10848909809845338112),
+UInt128(76043662651806392, 17351060901807587840),
+UInt128(38021831325903196, 8675530450903793920),
+UInt128(19010915662951598, 4337765225451896832),
+UInt128(95054578314757991, 3242082053549933056),
+UInt128(47527289157378995, 10844413063629742336),
+UInt128(23763644578689497, 14645578568669646848),
+UInt128(118818222893447488, 17887660622219580160),
+UInt128(59409111446723744, 8943830311109789952),
+UInt128(29704555723361872, 4471915155554894848),
+UInt128(14852277861680936, 2235957577777447424),
+UInt128(74261389308404680, 11179787888887237632),
+UInt128(37130694654202340, 5589893944443618816),
+UInt128(18565347327101170, 2794946972221809408),
+UInt128(92826736635505850, 13974734861109047040),
+UInt128(46413368317752925, 6987367430554523392),
+UInt128(23206684158876462, 12717055752132037376),
+UInt128(116033420794382313, 8245046539531532800),
+UInt128(58016710397191156, 13345895306620542208),
+UInt128(29008355198595578, 6672947653310270976),
+UInt128(14504177599297789, 3336473826655135488),
+UInt128(72520887996488945, 16682369133275677696),
+]
+
+private let bid_breakpoints_bid64_42: [UInt128] = [
+UInt128(36260443998244472, 17564556603492614656),
+UInt128(18130221999122236, 8782278301746307328),
+UInt128(90651109995611182, 7017903361312433408),
+UInt128(45325554997805591, 3508951680656216576),
+UInt128(22662777498902795, 10977847877182884096),
+UInt128(113313887494513977, 17995751238495317760),
+UInt128(56656943747256988, 18221247656102434560),
+UInt128(28328471873628494, 9110623828051217152),
+UInt128(141642359368142472, 8659630992836983552),
+UInt128(70821179684071236, 4329815496418491648),
+UInt128(35410589842035618, 2164907748209245696),
+UInt128(17705294921017809, 1082453874104622848),
+UInt128(88526474605089045, 5412269370523114752),
+UInt128(44263237302544522, 11929506722116333056),
+UInt128(22131618651272261, 5964753361058166528),
+UInt128(110658093256361306, 11377022731581281280),
+UInt128(55329046628180653, 5688511365790640640),
+UInt128(27664523314090326, 12067627719750096128),
+UInt128(138322616570451633, 4997906377621825792),
+UInt128(69161308285225816, 11722325225665688576),
+UInt128(34580654142612908, 5861162612832844288),
+UInt128(17290327071306454, 2930581306416422144),
+UInt128(86451635356532270, 14652906532082110720),
+UInt128(43225817678266135, 7326453266041055232),
+UInt128(21612908839133067, 12886598669875303424),
+UInt128(108064544195665338, 9092761128247862784),
+UInt128(54032272097832669, 4546380564123931392),
+UInt128(27016136048916334, 11496562318916741376),
+UInt128(135080680244581673, 2142579373455052544),
+UInt128(67540340122290836, 10294661723582301952),
+UInt128(33770170061145418, 5147330861791150848),
+UInt128(16885085030572709, 2573665430895575296),
+UInt128(84425425152863545, 12868327154477877504),
+UInt128(42212712576431772, 15657535614093714432),
+UInt128(21106356288215886, 7828767807046857216),
+UInt128(105531781441079432, 2250350887815183360),
+UInt128(52765890720539716, 1125175443907591680),
+UInt128(26382945360269858, 562587721953795840),
+UInt128(131914726801349290, 2812938609768979200),
+UInt128(65957363400674645, 1406469304884489472),
+UInt128(32978681700337322, 9926606689297020416),
+UInt128(16489340850168661, 4963303344648510208),
+UInt128(82446704250843306, 6369772649532999936),
+UInt128(41223352125421653, 3184886324766499840),
+UInt128(20611676062710826, 10815815199238025728),
+UInt128(103058380313554132, 17185587848771025664),
+UInt128(51529190156777066, 8592793924385512704),
+UInt128(25764595078388533, 4296396962192756224),
+UInt128(128822975391942666, 3035240737254230528),
+UInt128(64411487695971333, 1517620368627115264),
+]
+
+private let bid_breakpoints_bid64_43: [UInt128] = [
+UInt128(32205743847985666, 9982182221168333312),
+UInt128(16102871923992833, 4991091110584166656),
+UInt128(80514359619964166, 6508711479211281920),
+UInt128(40257179809982083, 3254355739605640960),
+UInt128(20128589904991041, 10850549906657596160),
+UInt128(100642949524955207, 17359261385868878336),
+UInt128(50321474762477603, 17903002729789214976),
+UInt128(25160737381238801, 18174873401749383168),
+UInt128(125803686906194009, 17087390713908709888),
+UInt128(62901843453097004, 17767067393809130752),
+UInt128(31450921726548502, 8883533696904565248),
+UInt128(15725460863274251, 4441766848452282624),
+UInt128(78627304316371256, 3762090168551861760),
+UInt128(39313652158185628, 1881045084275930880),
+UInt128(19656826079092814, 940522542137965312),
+UInt128(98284130395464070, 4702612710689827328),
+UInt128(49142065197732035, 2351306355344913664),
+UInt128(24571032598866017, 10399025214527232512),
+UInt128(122855162994330087, 15101637925217059840),
+UInt128(61427581497165043, 16774190999463305728),
+UInt128(30713790748582521, 17610467536586428672),
+UInt128(15356895374291260, 18028605805147990016),
+UInt128(76784476871456304, 16356052730901744384),
+UInt128(38392238435728152, 8178026365450872064),
+UInt128(19196119217864076, 4089013182725435904),
+UInt128(95980596089320381, 1998321839917628672),
+UInt128(47990298044660190, 10222532956813590016),
+UInt128(23995149022330095, 5111266478406795008),
+UInt128(119975745111650476, 7109588318324423936),
+UInt128(59987872555825238, 3554794159162211840),
+UInt128(29993936277912619, 1777397079581105920),
+UInt128(14996968138956309, 10112070576645328640),
+UInt128(74984840694781547, 13666864735807540736),
+UInt128(37492420347390773, 16056804404758546176),
+UInt128(18746210173695386, 17251774239234048768),
+UInt128(93731050868476934, 12471894901332037888),
+UInt128(46865525434238467, 6235947450666018816),
+UInt128(23432762717119233, 12341345762187785216),
+UInt128(117163813585596168, 6366496589810271744),
+UInt128(58581906792798084, 3183248294905135872),
+UInt128(29290953396399042, 1591624147452567808),
+UInt128(14645476698199521, 795812073726283776),
+UInt128(73227383490997605, 3979060368631419648),
+UInt128(36613691745498802, 11212902221170485504),
+UInt128(18306845872749401, 5606451110585242624),
+UInt128(91534229363747006, 9585511479216662528),
+UInt128(45767114681873503, 4792755739608331264),
+UInt128(22883557340936751, 11619749906658941440),
+UInt128(114417786704683758, 2758517312166052608),
+UInt128(57208893352341879, 1379258656083026176),
+]
+
+private let bid_breakpoints_bid64_44: [UInt128] = [
+UInt128(28604446676170939, 9913001364896288768),
+UInt128(143022233380854697, 12671518677062341632),
+UInt128(71511116690427348, 15559131375385946624),
+UInt128(35755558345213674, 7779565687692973312),
+UInt128(17877779172606837, 3889782843846486528),
+UInt128(89388895863034186, 1002170145522881536),
+UInt128(44694447931517093, 501085072761440768),
+UInt128(22347223965758546, 9473914573235496192),
+UInt128(111736119828792732, 10476084718758377728),
+UInt128(55868059914396366, 5238042359379188736),
+UInt128(27934029957198183, 2619021179689594368),
+UInt128(139670149785990915, 13095105898447972352),
+UInt128(69835074892995457, 15770924986078761984),
+UInt128(34917537446497728, 17108834529894156800),
+UInt128(17458768723248864, 8554417264947078400),
+UInt128(87293843616244322, 5878598177316288768),
+UInt128(43646921808122161, 2939299088658144256),
+UInt128(21823460904061080, 10693021581183847936),
+UInt128(109117304520305402, 16571619758500136704),
+UInt128(54558652260152701, 8285809879250068224),
+UInt128(27279326130076350, 13366276976479809792),
+UInt128(136396630650381753, 11491152661270395136),
+UInt128(68198315325190876, 14968948367489973248),
+UInt128(34099157662595438, 7484474183744986624),
+UInt128(17049578831297719, 3742237091872493312),
+UInt128(85247894156488596, 264441385652914944),
+UInt128(42623947078244298, 132220692826457344),
+UInt128(21311973539122149, 66110346413228544),
+UInt128(106559867695610745, 330551732066143744),
+UInt128(53279933847805372, 9388647902887847680),
+UInt128(26639966923902686, 4694323951443923712),
+UInt128(133199834619513431, 5024875683510067712),
+UInt128(66599917309756715, 11735809878609809664),
+UInt128(33299958654878357, 15091276976159680512),
+UInt128(16649979327439178, 16769010524934616064),
+UInt128(83249896637195894, 10058076329834874112),
+UInt128(41624948318597947, 5029038164917436928),
+UInt128(20812474159298973, 11737891119313494272),
+UInt128(104062370796494868, 3349223375438816768),
+UInt128(52031185398247434, 1674611687719408384),
+UInt128(26015592699123717, 837305843859704064),
+UInt128(130077963495618585, 4186529219298521088),
+UInt128(65038981747809292, 11316636646504036352),
+UInt128(32519490873904646, 5658318323252018176),
+UInt128(16259745436952323, 2829159161626009088),
+UInt128(81298727184761615, 14145795808130045440),
+UInt128(40649363592380807, 16296269940919798528),
+UInt128(20324681796190403, 17371507007314674944),
+UInt128(101623408980952019, 13070558741735168768),
+UInt128(50811704490476009, 15758651407722360064),
+]
+
+private let bid_breakpoints_bid64_45: [UInt128] = [
+UInt128(25405852245238004, 17102697740715955712),
+UInt128(127029261226190024, 11726512408741573120),
+UInt128(63514630613095012, 5863256204370786560),
+UInt128(31757315306547506, 2931628102185393152),
+UInt128(15878657653273753, 1465814051092696576),
+UInt128(79393288266368765, 7329070255463483136),
+UInt128(39696644133184382, 12887907164586517248),
+UInt128(19848322066592191, 6443953582293258496),
+UInt128(99241610332960956, 13773023837756741888),
+UInt128(49620805166480478, 6886511918878370816),
+UInt128(24810402583240239, 3443255959439185408),
+UInt128(124052012916201195, 17216279797195927552),
+UInt128(62026006458100597, 17831511935452739584),
+UInt128(31013003229050298, 18139128004581145600),
+UInt128(15506501614525149, 9069564002290572800),
+UInt128(77532508072625747, 8454331864033760768),
+UInt128(38766254036312873, 13450537968871656192),
+UInt128(19383127018156436, 15948641021290603776),
+UInt128(96915635090782184, 5956228811614812928),
+UInt128(48457817545391092, 2978114405807406336),
+UInt128(24228908772695546, 1489057202903703040),
+UInt128(121144543863477730, 7445286014518516224),
+UInt128(60572271931738865, 3722643007259258112),
+UInt128(30286135965869432, 11084693540484404736),
+UInt128(15143067982934716, 5542346770242202368),
+UInt128(75715339914673581, 9264989777501460480),
+UInt128(37857669957336790, 13855866925605506048),
+UInt128(18928834978668395, 6927933462802753024),
+UInt128(94644174893341976, 16192923240304213504),
+UInt128(47322087446670988, 8096461620152106752),
+UInt128(23661043723335494, 4048230810076053248),
+UInt128(118305218616677471, 1794409976670715392),
+UInt128(59152609308338735, 10120577025190133504),
+UInt128(29576304654169367, 14283660549449842432),
+UInt128(14788152327084683, 16365202311579696896),
+UInt128(73940761635423419, 8039035263060278784),
+UInt128(36970380817711709, 13242889668384915200),
+UInt128(18485190408855854, 15844816871047233280),
+UInt128(92425952044279274, 5437108060397960704),
+UInt128(46212976022139637, 2718554030198980352),
+UInt128(23106488011069818, 10582649051954265856),
+UInt128(115532440055349092, 16019757112352226816),
+UInt128(57766220027674546, 8009878556176113408),
+UInt128(28883110013837273, 4004939278088056576),
+UInt128(14441555006918636, 11225841675898803968),
+UInt128(72207775034593183, 788976158365366016),
+UInt128(36103887517296591, 9617860116037458688),
+UInt128(18051943758648295, 14032302094873505024),
+UInt128(90259718793241478, 14821278253238871040),
+UInt128(45129859396620739, 7410639126619435520),
+]
+
+private let bid_breakpoints_bid64_46: [UInt128] = [
+UInt128(22564929698310369, 12928691600164493568),
+UInt128(112824648491551848, 9303225779693812992),
+UInt128(56412324245775924, 4651612889846906368),
+UInt128(28206162122887962, 2325806444923453184),
+UInt128(141030810614439810, 11629032224617266432),
+UInt128(70515405307219905, 5814516112308633088),
+UInt128(35257702653609952, 12130630093009092352),
+UInt128(17628851326804976, 6065315046504546048),
+UInt128(88144256634024881, 11879831158813179392),
+UInt128(44072128317012440, 15163287616261365504),
+UInt128(22036064158506220, 7581643808130682624),
+UInt128(110180320792531102, 1014730893234310656),
+UInt128(55090160396265551, 507365446617155328),
+UInt128(27545080198132775, 9477054760163353344),
+UInt128(137725400990663877, 10491785653397664000),
+UInt128(68862700495331938, 14469264863553607680),
+UInt128(34431350247665969, 7234632431776803840),
+UInt128(17215675123832984, 12840688252743177728),
+UInt128(86078375619164923, 8863209042587233792),
+UInt128(43039187809582461, 13654976558148392704),
+UInt128(21519593904791230, 16050860315928972032),
+UInt128(107597969523956154, 6467325284806654464),
+UInt128(53798984761978077, 3233662642403327232),
+UInt128(26899492380989038, 10840203358056439296),
+UInt128(134497461904945192, 17307528642863094016),
+UInt128(67248730952472596, 8653764321431546880),
+UInt128(33624365476236298, 4326882160715773440),
+UInt128(16812182738118149, 2163441080357886720),
+UInt128(84060913690590745, 10817205401789433600),
+UInt128(42030456845295372, 14631974737749492480),
+UInt128(21015228422647686, 7315987368874746112),
+UInt128(105076142113238431, 18133192770664179968),
+UInt128(52538071056619215, 18289968422186865664),
+UInt128(26269035528309607, 18368356247948208640),
+UInt128(131345177641548039, 18054804944902837248),
+UInt128(65672588820774019, 18250774509306194432),
+UInt128(32836294410387009, 18348759291507873024),
+UInt128(16418147205193504, 18397751682608712192),
+UInt128(82090736025967524, 18201782118205355008),
+UInt128(41045368012983762, 9100891059102677504),
+UInt128(20522684006491881, 4550445529551338752),
+UInt128(102613420032459406, 4305483574047142144),
+UInt128(51306710016229703, 2152741787023570944),
+UInt128(25653355008114851, 10299742930366561280),
+UInt128(128266775040574257, 14605226504413703680),
+UInt128(64133387520287128, 16525985289061627648),
+UInt128(32066693760143564, 8262992644530813696),
+UInt128(16033346880071782, 4131496322265406720),
+UInt128(80166734400358911, 2210737537617482752),
+UInt128(40083367200179455, 10328740805663517184),
+]
+
+private let bid_breakpoints_bid64_47: [UInt128] = [
+UInt128(20041683600089727, 14387742439686534400),
+UInt128(100208418000448638, 16598479977304017408),
+UInt128(50104209000224319, 8299239988652008704),
+UInt128(25052104500112159, 13372992031180780032),
+UInt128(125260522500560798, 11524727934775245824),
+UInt128(62630261250280399, 5762363967387622912),
+UInt128(31315130625140199, 12104554020548587264),
+UInt128(15657565312570099, 15275649047129069312),
+UInt128(78287826562850499, 2591268940807140608),
+UInt128(39143913281425249, 10519006507258345984),
+UInt128(19571956640712624, 14482875290483948800),
+UInt128(97859783203563123, 17074144231291089664),
+UInt128(48929891601781561, 17760444152500320512),
+UInt128(24464945800890780, 18103594113104935936),
+UInt128(122324729004453904, 16730994270686474240),
+UInt128(61162364502226952, 8365497135343237120),
+UInt128(30581182251113476, 4182748567671618560),
+UInt128(15290591125556738, 2091374283835809280),
+UInt128(76452955627783690, 10456871419179046400),
+UInt128(38226477813891845, 5228435709589523200),
+UInt128(19113238906945922, 11837589891649537280),
+UInt128(95566194534729613, 3847717237119032064),
+UInt128(47783097267364806, 11147230655414291712),
+UInt128(23891548633682403, 5573615327707145728),
+UInt128(119457743168412016, 9421332564826178048),
+UInt128(59728871584206008, 4710666282413089024),
+UInt128(29864435792103004, 2355333141206544384),
+UInt128(14932217896051502, 1177666570603272192),
+UInt128(74661089480257510, 5888332853016361216),
+UInt128(37330544740128755, 2944166426508180480),
+UInt128(18665272370064377, 10695455250108866048),
+UInt128(93326361850321887, 16583788103125227520),
+UInt128(46663180925160943, 17515266088417389568),
+UInt128(23331590462580471, 17981005081063470592),
+UInt128(116657952312902359, 16118049110479146496),
+UInt128(58328976156451179, 17282396592094349056),
+UInt128(29164488078225589, 17864570332901950208),
+UInt128(14582244039112794, 18155657203305750784),
+UInt128(72911220195563974, 16991309721690548224),
+UInt128(36455610097781987, 8495654860845274112),
+UInt128(18227805048890993, 13471199467277412864),
+UInt128(91139025244454968, 12015765115258409472),
+UInt128(45569512622227484, 6007882557629204736),
+UInt128(22784756311113742, 3003941278814602240),
+UInt128(113923781555568710, 15019706394073011968),
+UInt128(56961890777784355, 7509853197036505856),
+UInt128(28480945388892177, 12978298635373028608),
+UInt128(142404726944460888, 9551260955736489216),
+UInt128(71202363472230444, 4775630477868244480),
+UInt128(35601181736115222, 2387815238934122240),
+]
+
+private let bid_breakpoints_bid64_48: [UInt128] = [
+UInt128(17800590868057611, 1193907619467060992),
+UInt128(89002954340288055, 5969538097335305728),
+UInt128(44501477170144027, 12208141085522428672),
+UInt128(22250738585072013, 15327442579615990016),
+UInt128(111253692925360069, 2850236603241744384),
+UInt128(55626846462680034, 10648490338475648000),
+UInt128(27813423231340017, 5324245169237824000),
+UInt128(139067116156700086, 8174481772479568384),
+UInt128(69533558078350043, 4087240886239784192),
+UInt128(34766779039175021, 11266992479974667776),
+UInt128(17383389519587510, 14856868276842109696),
+UInt128(86916947597937554, 497365089372342272),
+UInt128(43458473798968777, 248682544686171136),
+UInt128(21729236899484388, 9347713309197861376),
+UInt128(108646184497421942, 9845078398570203648),
+UInt128(54323092248710971, 4922539199285101824),
+UInt128(27161546124355485, 11684641636497326592),
+UInt128(135807730621777428, 3082975961357978880),
+UInt128(67903865310888714, 1541487980678989312),
+UInt128(33951932655444357, 770743990339494656),
+UInt128(16975966327722178, 9608744032024523008),
+UInt128(84879831638610892, 11150232012703512576),
+UInt128(42439915819305446, 5575116006351756288),
+UInt128(21219957909652723, 2787558003175878144),
+UInt128(106099789548263615, 13937790015879390720),
+UInt128(53049894774131807, 16192267044794471168),
+UInt128(26524947387065903, 17319505559252011264),
+UInt128(132624736935329519, 12810551501421850368),
+UInt128(66312368467664759, 15628647787565700864),
+UInt128(33156184233832379, 17037695930637626112),
+UInt128(16578092116916189, 17742220002173588736),
+UInt128(82890460584580949, 14924123716029738240),
+UInt128(41445230292290474, 16685433894869644800),
+UInt128(20722615146145237, 8342716947434822400),
+UInt128(103613075730726187, 4820096589755009280),
+UInt128(51806537865363093, 11633420331732280320),
+UInt128(25903268932681546, 15040082202720915968),
+UInt128(129516344663407734, 1413434718766373632),
+UInt128(64758172331703867, 706717359383186688),
+UInt128(32379086165851933, 9576730716546369024),
+UInt128(16189543082925966, 14011737395127960320),
+UInt128(80947715414629833, 14718454754511147264),
+UInt128(40473857707314916, 16582599414110349312),
+UInt128(20236928853657458, 8291299707055174656),
+UInt128(101184644268287292, 4563010387856770304),
+UInt128(50592322134143646, 2281505193928385024),
+UInt128(25296161067071823, 1140752596964192512),
+UInt128(126480805335359115, 5703762984820963072),
+UInt128(63240402667679557, 12075253529265257216),
+UInt128(31620201333839778, 15260998801487404288),
+]
+
+private let bid_breakpoints_bid64_49: [UInt128] = [
+UInt128(15810100666919889, 7630499400743702016),
+UInt128(79050503334599447, 1259008856299407872),
+UInt128(39525251667299723, 9852876465004479744),
+UInt128(19762625833649861, 14149810269357015552),
+UInt128(98813129168249308, 15408819125656423680),
+UInt128(49406564584124654, 7704409562828211712),
+UInt128(24703282292062327, 3852204781414105856),
+UInt128(123516411460311636, 814279833360977920),
+UInt128(61758205730155818, 407139916680488960),
+UInt128(30879102865077909, 203569958340244480),
+UInt128(15439551432538954, 9325157016024898048),
+UInt128(77197757162694772, 9732296932705387008),
+UInt128(38598878581347386, 4866148466352693504),
+UInt128(19299439290673693, 2433074233176346624),
+UInt128(96497196453368465, 12165371165881733632),
+UInt128(48248598226684232, 15306057619795642624),
+UInt128(24124299113342116, 7653028809897821184),
+UInt128(120621495566710582, 1371655902070003456),
+UInt128(60310747783355291, 685827951035001600),
+UInt128(30155373891677645, 9566286012372276480),
+UInt128(15077686945838822, 14006515043040913920),
+UInt128(75388434729194113, 14692342994075915776),
+UInt128(37694217364597056, 16569543533892733696),
+UInt128(18847108682298528, 8284771766946366720),
+UInt128(94235543411492642, 4530370687312731136),
+UInt128(47117771705746321, 2265185343656365568),
+UInt128(23558885852873160, 10355964708682958592),
+UInt128(117794429264365802, 14886335395995689728),
+UInt128(58897214632182901, 7443167697997844736),
+UInt128(29448607316091450, 12944955885853698048),
+UInt128(14724303658045725, 6472477942926849024),
+UInt128(73621518290228626, 13915645640924694016),
+UInt128(36810759145114313, 6957822820462347008),
+UInt128(18405379572557156, 12702283447085949184),
+UInt128(92026897862785783, 8171185014301091584),
+UInt128(46013448931392891, 13308964544005321472),
+UInt128(23006724465696445, 15877854308857436416),
+UInt128(115033622328482229, 5602295249448976640),
+UInt128(57516811164241114, 12024519661579264000),
+UInt128(28758405582120557, 6012259830789632000),
+UInt128(143792027910602786, 11614555080238608640),
+UInt128(71896013955301393, 5807277540119304192),
+UInt128(35948006977650696, 12127010806914427904),
+UInt128(17974003488825348, 6063505403457213952),
+UInt128(89870017444126741, 11870782943576518400),
+UInt128(44935008722063370, 15158763508643034880),
+UInt128(22467504361031685, 7579381754321517312),
+UInt128(112337521805158427, 1003420624188484096),
+UInt128(56168760902579213, 9725082348949017856),
+UInt128(28084380451289606, 14085913211329284608),
+]
+
+private let bid_breakpoints_bid64_50: [UInt128] = [
+UInt128(140421902256448033, 15089333835517768960),
+UInt128(70210951128224016, 16768038954613660160),
+UInt128(35105475564112008, 8384019477306830080),
+UInt128(17552737782056004, 4192009738653414912),
+UInt128(87763688910280021, 2513304619557523712),
+UInt128(43881844455140010, 10480024346633537536),
+UInt128(21940922227570005, 5240012173316768768),
+UInt128(109704611137850026, 7753316792874292480),
+UInt128(54852305568925013, 3876658396437146112),
+UInt128(27426152784462506, 11161701235073348864),
+UInt128(137130763922312533, 468273954238089984),
+UInt128(68565381961156266, 9457509013973820672),
+UInt128(34282690980578133, 4728754506986910208),
+UInt128(17141345490289066, 11587749290348230912),
+UInt128(85706727451445333, 2598514230612500224),
+UInt128(42853363725722666, 10522629152161025792),
+UInt128(21426681862861333, 5261314576080512768),
+UInt128(107133409314306666, 7859828806693012992),
+UInt128(53566704657153333, 3929914403346506496),
+UInt128(26783352328576666, 11188329238528028928),
+UInt128(133916761642883333, 601413971511490560),
+UInt128(66958380821441666, 9524079022610521088),
+UInt128(33479190410720833, 4762039511305260544),
+UInt128(16739595205360416, 11604391792507406080),
+UInt128(83697976026802083, 2681726741408375552),
+UInt128(41848988013401041, 10564235407558963456),
+UInt128(20924494006700520, 14505489740634257408),
+UInt128(104622470033502603, 17187216482042633216),
+UInt128(52311235016751301, 17816980277876092416),
+UInt128(26155617508375650, 18131862175792822016),
+UInt128(130778087541878254, 16872334584125903616),
+UInt128(65389043770939127, 8436167292062951680),
+UInt128(32694521885469563, 13441455682886251520),
+UInt128(16347260942734781, 15944099878297901568),
+UInt128(81736304713673909, 5933523096651301888),
+UInt128(40868152356836954, 12190133585180426752),
+UInt128(20434076178418477, 6095066792590213376),
+UInt128(102170380892092386, 12028589889241515264),
+UInt128(51085190446046193, 6014294944620757504),
+UInt128(25542595223023096, 12230519509165154560),
+UInt128(127712976115115483, 5812365324697118208),
+UInt128(63856488057557741, 12129554699203334912),
+UInt128(31928244028778870, 15288149386456443136),
+UInt128(15964122014389435, 7644074693228221440),
+UInt128(79820610071947177, 1326885318722004736),
+UInt128(39910305035973588, 9886814696215778048),
+UInt128(19955152517986794, 4943407348107888896),
+UInt128(99775762589933971, 6270292666829893888),
+UInt128(49887881294966985, 12358518370269722624),
+UInt128(24943940647483492, 15402631221989637120),
+]
+
+private let bid_breakpoints_bid64_51: [UInt128] = [
+UInt128(124719703237417464, 3226179815109979648),
+UInt128(62359851618708732, 1613089907554989824),
+UInt128(31179925809354366, 806544953777494784),
+UInt128(15589962904677183, 403272476888747264),
+UInt128(77949814523385915, 2016362384443737344),
+UInt128(38974907261692957, 10231553229076644352),
+UInt128(19487453630846478, 14339148651393097984),
+UInt128(97437268154232393, 16355511035836835328),
+UInt128(48718634077116196, 17401127554773193472),
+UInt128(24359317038558098, 8700563777386596608),
+UInt128(121796585192790492, 6609330739513880320),
+UInt128(60898292596395246, 3304665369756940032),
+UInt128(30449146298197623, 1652332684878469888),
+UInt128(15224573149098811, 10049538379294010624),
+UInt128(76122865745494057, 13354203749050950912),
+UInt128(38061432872747028, 15900473911380251136),
+UInt128(19030716436373514, 7950236955690125568),
+UInt128(95153582181867572, 2857696631031525120),
+UInt128(47576791090933786, 1428848315515762432),
+UInt128(23788395545466893, 714424157757881088),
+UInt128(118941977727334465, 3572120788789406464),
+UInt128(59470988863667232, 11009432431249478912),
+UInt128(29735494431833616, 5504716215624739328),
+UInt128(14867747215916808, 2752358107812369664),
+UInt128(74338736079584040, 13761790539061848832),
+UInt128(37169368039792020, 6880895269530924288),
+UInt128(18584684019896010, 3440447634765462016),
+UInt128(92923420099480050, 17202238173827310848),
+UInt128(46461710049740025, 8601119086913655296),
+UInt128(23230855024870012, 13523931580311603456),
+UInt128(116154275124350063, 12279425680429362944),
+UInt128(58077137562175031, 15363084877069457152),
+UInt128(29038568781087515, 16904914475389504256),
+UInt128(14519284390543757, 17675829274549527808),
+UInt128(72596421952718789, 14592170077909433600),
+UInt128(36298210976359394, 16519457075809492480),
+UInt128(18149105488179697, 8259728537904746240),
+UInt128(90745527440898487, 4405154542104628224),
+UInt128(45372763720449243, 11425949307907089920),
+UInt128(22686381860224621, 14936346690808320768),
+UInt128(113431909301123109, 894757159203397632),
+UInt128(56715954650561554, 9670750616456474624),
+UInt128(28357977325280777, 4835375308228237312),
+UInt128(141789886626403886, 5730132467431634944),
+UInt128(70894943313201943, 2865066233715817472),
+UInt128(35447471656600971, 10655905153712684544),
+UInt128(17723735828300485, 14551324613711118080),
+UInt128(88618679141502428, 17416390847426935552),
+UInt128(44309339570751214, 8708195423713467648),
+UInt128(22154669785375607, 4354097711856733696),
+]
+
+private let bid_breakpoints_bid64_52: [UInt128] = [
+UInt128(110773348926878036, 3323744485574117632),
+UInt128(55386674463439018, 1661872242787058688),
+UInt128(27693337231719509, 830936121393529344),
+UInt128(138466686158597545, 4154680606967647232),
+UInt128(69233343079298772, 11300712340338599424),
+]
+
+// MARK: - bid_exponents_bid32
+
+extension BinaryFloatingPointTables {
+ internal static func bid_exponents_bid32(_ index: Int) -> Int {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+ let result: Int16
+
+ switch q {
+ case 0: result = bid_exponents_bid32_0[r]
+ case 1: result = bid_exponents_bid32_1[r]
+ case 2: result = bid_exponents_bid32_2[r]
+ case 3: result = bid_exponents_bid32_3[r]
+ case 4: result = bid_exponents_bid32_4[r]
+ case 5: result = bid_exponents_bid32_5[r]
+ case 6: result = bid_exponents_bid32_6[r]
+ case 7: result = bid_exponents_bid32_7[r]
+ case 8: result = bid_exponents_bid32_8[r]
+ case 9: result = bid_exponents_bid32_9[r]
+ case 10: result = bid_exponents_bid32_10[r]
+ case 11: result = bid_exponents_bid32_11[r]
+ case 12: result = bid_exponents_bid32_12[r]
+ case 13: result = bid_exponents_bid32_13[r]
+ default: preconditionFailure("Index out of range")
+ }
+
+ return Int(truncatingIfNeeded: result)
+ }
+}
+
+private let bid_exponents_bid32_0: [Int16] = [
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+0,
+0,
+0,
+0,
+1,
+1,
+1,
+2,
+2,
+2,
+3,
+3,
+3,
+3,
+4,
+4,
+4,
+5,
+5,
+5,
+6,
+6,
+6,
+7,
+7,
+]
+
+private let bid_exponents_bid32_1: [Int16] = [
+7,
+7,
+8,
+8,
+8,
+9,
+9,
+9,
+10,
+10,
+10,
+10,
+11,
+11,
+11,
+12,
+12,
+12,
+13,
+13,
+13,
+13,
+14,
+14,
+14,
+15,
+15,
+15,
+16,
+16,
+16,
+16,
+17,
+17,
+17,
+18,
+18,
+18,
+19,
+19,
+19,
+19,
+20,
+20,
+20,
+21,
+21,
+21,
+22,
+22,
+]
+
+private let bid_exponents_bid32_2: [Int16] = [
+22,
+22,
+23,
+23,
+23,
+24,
+24,
+24,
+25,
+25,
+25,
+25,
+26,
+26,
+26,
+27,
+27,
+27,
+28,
+28,
+28,
+28,
+29,
+29,
+29,
+30,
+30,
+30,
+31,
+31,
+31,
+31,
+32,
+32,
+32,
+33,
+33,
+33,
+34,
+34,
+34,
+34,
+35,
+35,
+35,
+36,
+36,
+36,
+37,
+37,
+]
+
+private let bid_exponents_bid32_3: [Int16] = [
+37,
+38,
+38,
+38,
+38,
+39,
+39,
+39,
+40,
+40,
+40,
+41,
+41,
+41,
+41,
+42,
+42,
+42,
+43,
+43,
+43,
+44,
+44,
+44,
+44,
+45,
+45,
+45,
+46,
+46,
+46,
+47,
+47,
+47,
+47,
+48,
+48,
+48,
+49,
+49,
+49,
+50,
+50,
+50,
+50,
+51,
+51,
+51,
+52,
+52,
+]
+
+private let bid_exponents_bid32_4: [Int16] = [
+52,
+53,
+53,
+53,
+53,
+54,
+54,
+54,
+55,
+55,
+55,
+56,
+56,
+56,
+56,
+57,
+57,
+57,
+58,
+58,
+58,
+59,
+59,
+59,
+59,
+60,
+60,
+60,
+61,
+61,
+61,
+62,
+62,
+62,
+62,
+63,
+63,
+63,
+64,
+64,
+64,
+65,
+65,
+65,
+66,
+66,
+66,
+66,
+67,
+67,
+]
+
+private let bid_exponents_bid32_5: [Int16] = [
+67,
+68,
+68,
+68,
+69,
+69,
+69,
+69,
+70,
+70,
+70,
+71,
+71,
+71,
+72,
+72,
+72,
+72,
+73,
+73,
+73,
+74,
+74,
+74,
+75,
+75,
+75,
+75,
+76,
+76,
+76,
+77,
+77,
+77,
+78,
+78,
+78,
+78,
+79,
+79,
+79,
+80,
+80,
+80,
+81,
+81,
+81,
+81,
+82,
+82,
+]
+
+private let bid_exponents_bid32_6: [Int16] = [
+82,
+83,
+83,
+83,
+84,
+84,
+84,
+84,
+85,
+85,
+85,
+86,
+86,
+86,
+87,
+87,
+87,
+87,
+88,
+88,
+88,
+89,
+89,
+89,
+90,
+90,
+90,
+90,
+91,
+91,
+91,
+92,
+92,
+92,
+93,
+93,
+93,
+93,
+94,
+94,
+94,
+95,
+95,
+95,
+96,
+96,
+96,
+97,
+97,
+97,
+]
+
+private let bid_exponents_bid32_7: [Int16] = [
+97,
+98,
+98,
+98,
+99,
+99,
+99,
+100,
+100,
+100,
+100,
+101,
+101,
+101,
+102,
+102,
+102,
+103,
+103,
+103,
+103,
+104,
+104,
+104,
+105,
+105,
+105,
+106,
+106,
+106,
+106,
+107,
+107,
+107,
+108,
+108,
+108,
+109,
+109,
+109,
+109,
+110,
+110,
+110,
+111,
+111,
+111,
+112,
+112,
+112,
+]
+
+private let bid_exponents_bid32_8: [Int16] = [
+112,
+113,
+113,
+113,
+114,
+114,
+114,
+115,
+115,
+115,
+115,
+116,
+116,
+116,
+117,
+117,
+117,
+118,
+118,
+118,
+118,
+119,
+119,
+119,
+120,
+120,
+120,
+121,
+121,
+121,
+121,
+122,
+122,
+122,
+123,
+123,
+123,
+124,
+124,
+124,
+125,
+125,
+125,
+125,
+126,
+126,
+126,
+127,
+127,
+127,
+]
+
+private let bid_exponents_bid32_9: [Int16] = [
+128,
+128,
+128,
+128,
+129,
+129,
+129,
+130,
+130,
+130,
+131,
+131,
+131,
+131,
+132,
+132,
+132,
+133,
+133,
+133,
+134,
+134,
+134,
+134,
+135,
+135,
+135,
+136,
+136,
+136,
+137,
+137,
+137,
+137,
+138,
+138,
+138,
+139,
+139,
+139,
+140,
+140,
+140,
+140,
+141,
+141,
+141,
+142,
+142,
+142,
+]
+
+private let bid_exponents_bid32_10: [Int16] = [
+143,
+143,
+143,
+143,
+144,
+144,
+144,
+145,
+145,
+145,
+146,
+146,
+146,
+146,
+147,
+147,
+147,
+148,
+148,
+148,
+149,
+149,
+149,
+149,
+150,
+150,
+150,
+151,
+151,
+151,
+152,
+152,
+152,
+153,
+153,
+153,
+153,
+154,
+154,
+154,
+155,
+155,
+155,
+156,
+156,
+156,
+156,
+157,
+157,
+157,
+]
+
+private let bid_exponents_bid32_11: [Int16] = [
+158,
+158,
+158,
+159,
+159,
+159,
+159,
+160,
+160,
+160,
+161,
+161,
+161,
+162,
+162,
+162,
+162,
+163,
+163,
+163,
+164,
+164,
+164,
+165,
+165,
+165,
+165,
+166,
+166,
+166,
+167,
+167,
+167,
+168,
+168,
+168,
+168,
+169,
+169,
+169,
+170,
+170,
+170,
+171,
+171,
+171,
+171,
+172,
+172,
+172,
+]
+
+private let bid_exponents_bid32_12: [Int16] = [
+173,
+173,
+173,
+174,
+174,
+174,
+174,
+175,
+175,
+175,
+176,
+176,
+176,
+177,
+177,
+177,
+177,
+178,
+178,
+178,
+179,
+179,
+179,
+180,
+180,
+180,
+180,
+181,
+181,
+181,
+182,
+182,
+182,
+183,
+183,
+183,
+184,
+184,
+184,
+184,
+185,
+185,
+185,
+186,
+186,
+186,
+187,
+187,
+187,
+187,
+]
+
+private let bid_exponents_bid32_13: [Int16] = [
+188,
+188,
+188,
+189,
+189,
+189,
+190,
+190,
+190,
+190,
+191,
+191,
+]
+
+// MARK: - bid_exponents_bid64
+
+extension BinaryFloatingPointTables {
+ internal static func bid_exponents_bid64(_ index: Int) -> Int {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+ let result: Int16
+
+ switch q {
+ case 0: result = bid_exponents_bid64_0[r]
+ case 1: result = bid_exponents_bid64_1[r]
+ case 2: result = bid_exponents_bid64_2[r]
+ case 3: result = bid_exponents_bid64_3[r]
+ case 4: result = bid_exponents_bid64_4[r]
+ case 5: result = bid_exponents_bid64_5[r]
+ case 6: result = bid_exponents_bid64_6[r]
+ case 7: result = bid_exponents_bid64_7[r]
+ case 8: result = bid_exponents_bid64_8[r]
+ case 9: result = bid_exponents_bid64_9[r]
+ case 10: result = bid_exponents_bid64_10[r]
+ case 11: result = bid_exponents_bid64_11[r]
+ case 12: result = bid_exponents_bid64_12[r]
+ case 13: result = bid_exponents_bid64_13[r]
+ case 14: result = bid_exponents_bid64_14[r]
+ case 15: result = bid_exponents_bid64_15[r]
+ case 16: result = bid_exponents_bid64_16[r]
+ case 17: result = bid_exponents_bid64_17[r]
+ case 18: result = bid_exponents_bid64_18[r]
+ case 19: result = bid_exponents_bid64_19[r]
+ case 20: result = bid_exponents_bid64_20[r]
+ case 21: result = bid_exponents_bid64_21[r]
+ case 22: result = bid_exponents_bid64_22[r]
+ case 23: result = bid_exponents_bid64_23[r]
+ case 24: result = bid_exponents_bid64_24[r]
+ case 25: result = bid_exponents_bid64_25[r]
+ case 26: result = bid_exponents_bid64_26[r]
+ case 27: result = bid_exponents_bid64_27[r]
+ case 28: result = bid_exponents_bid64_28[r]
+ case 29: result = bid_exponents_bid64_29[r]
+ case 30: result = bid_exponents_bid64_30[r]
+ case 31: result = bid_exponents_bid64_31[r]
+ case 32: result = bid_exponents_bid64_32[r]
+ case 33: result = bid_exponents_bid64_33[r]
+ case 34: result = bid_exponents_bid64_34[r]
+ case 35: result = bid_exponents_bid64_35[r]
+ case 36: result = bid_exponents_bid64_36[r]
+ case 37: result = bid_exponents_bid64_37[r]
+ case 38: result = bid_exponents_bid64_38[r]
+ case 39: result = bid_exponents_bid64_39[r]
+ case 40: result = bid_exponents_bid64_40[r]
+ case 41: result = bid_exponents_bid64_41[r]
+ case 42: result = bid_exponents_bid64_42[r]
+ case 43: result = bid_exponents_bid64_43[r]
+ case 44: result = bid_exponents_bid64_44[r]
+ case 45: result = bid_exponents_bid64_45[r]
+ case 46: result = bid_exponents_bid64_46[r]
+ case 47: result = bid_exponents_bid64_47[r]
+ case 48: result = bid_exponents_bid64_48[r]
+ case 49: result = bid_exponents_bid64_49[r]
+ case 50: result = bid_exponents_bid64_50[r]
+ case 51: result = bid_exponents_bid64_51[r]
+ case 52: result = bid_exponents_bid64_52[r]
+ default: preconditionFailure("Index out of range")
+ }
+
+ return Int(truncatingIfNeeded: result)
+ }
+}
+
+private let bid_exponents_bid64_0: [Int16] = [
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+]
+
+private let bid_exponents_bid64_1: [Int16] = [
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+0,
+0,
+0,
+1,
+1,
+1,
+2,
+2,
+2,
+3,
+3,
+3,
+3,
+4,
+4,
+4,
+5,
+5,
+5,
+6,
+6,
+6,
+6,
+7,
+7,
+7,
+8,
+8,
+8,
+9,
+9,
+9,
+9,
+10,
+10,
+10,
+11,
+11,
+11,
+12,
+12,
+12,
+12,
+13,
+]
+
+private let bid_exponents_bid64_2: [Int16] = [
+13,
+13,
+14,
+14,
+14,
+15,
+15,
+15,
+15,
+16,
+16,
+16,
+17,
+17,
+17,
+18,
+18,
+18,
+18,
+19,
+19,
+19,
+20,
+20,
+20,
+21,
+21,
+21,
+21,
+22,
+22,
+22,
+23,
+23,
+23,
+24,
+24,
+24,
+24,
+25,
+25,
+25,
+26,
+26,
+26,
+27,
+27,
+27,
+27,
+28,
+]
+
+private let bid_exponents_bid64_3: [Int16] = [
+28,
+28,
+29,
+29,
+29,
+30,
+30,
+30,
+30,
+31,
+31,
+31,
+32,
+32,
+32,
+33,
+33,
+33,
+34,
+34,
+34,
+34,
+35,
+35,
+35,
+36,
+36,
+36,
+37,
+37,
+37,
+37,
+38,
+38,
+38,
+39,
+39,
+39,
+40,
+40,
+40,
+40,
+41,
+41,
+41,
+42,
+42,
+42,
+43,
+43,
+]
+
+private let bid_exponents_bid64_4: [Int16] = [
+43,
+43,
+44,
+44,
+44,
+45,
+45,
+45,
+46,
+46,
+46,
+46,
+47,
+47,
+47,
+48,
+48,
+48,
+49,
+49,
+49,
+49,
+50,
+50,
+50,
+51,
+51,
+51,
+52,
+52,
+52,
+52,
+53,
+53,
+53,
+54,
+54,
+54,
+55,
+55,
+55,
+55,
+56,
+56,
+56,
+57,
+57,
+57,
+58,
+58,
+]
+
+private let bid_exponents_bid64_5: [Int16] = [
+58,
+58,
+59,
+59,
+59,
+60,
+60,
+60,
+61,
+61,
+61,
+62,
+62,
+62,
+62,
+63,
+63,
+63,
+64,
+64,
+64,
+65,
+65,
+65,
+65,
+66,
+66,
+66,
+67,
+67,
+67,
+68,
+68,
+68,
+68,
+69,
+69,
+69,
+70,
+70,
+70,
+71,
+71,
+71,
+71,
+72,
+72,
+72,
+73,
+73,
+]
+
+private let bid_exponents_bid64_6: [Int16] = [
+73,
+74,
+74,
+74,
+74,
+75,
+75,
+75,
+76,
+76,
+76,
+77,
+77,
+77,
+77,
+78,
+78,
+78,
+79,
+79,
+79,
+80,
+80,
+80,
+80,
+81,
+81,
+81,
+82,
+82,
+82,
+83,
+83,
+83,
+83,
+84,
+84,
+84,
+85,
+85,
+85,
+86,
+86,
+86,
+86,
+87,
+87,
+87,
+88,
+88,
+]
+
+private let bid_exponents_bid64_7: [Int16] = [
+88,
+89,
+89,
+89,
+90,
+90,
+90,
+90,
+91,
+91,
+91,
+92,
+92,
+92,
+93,
+93,
+93,
+93,
+94,
+94,
+94,
+95,
+95,
+95,
+96,
+96,
+96,
+96,
+97,
+97,
+97,
+98,
+98,
+98,
+99,
+99,
+99,
+99,
+100,
+100,
+100,
+101,
+101,
+101,
+102,
+102,
+102,
+102,
+103,
+103,
+]
+
+private let bid_exponents_bid64_8: [Int16] = [
+103,
+104,
+104,
+104,
+105,
+105,
+105,
+105,
+106,
+106,
+106,
+107,
+107,
+107,
+108,
+108,
+108,
+108,
+109,
+109,
+109,
+110,
+110,
+110,
+111,
+111,
+111,
+111,
+112,
+112,
+112,
+113,
+113,
+113,
+114,
+114,
+114,
+114,
+115,
+115,
+115,
+116,
+116,
+116,
+117,
+117,
+117,
+117,
+118,
+118,
+]
+
+private let bid_exponents_bid64_9: [Int16] = [
+118,
+119,
+119,
+119,
+120,
+120,
+120,
+121,
+121,
+121,
+121,
+122,
+122,
+122,
+123,
+123,
+123,
+124,
+124,
+124,
+124,
+125,
+125,
+125,
+126,
+126,
+126,
+127,
+127,
+127,
+127,
+128,
+128,
+128,
+129,
+129,
+129,
+130,
+130,
+130,
+130,
+131,
+131,
+131,
+132,
+132,
+132,
+133,
+133,
+133,
+]
+
+private let bid_exponents_bid64_10: [Int16] = [
+133,
+134,
+134,
+134,
+135,
+135,
+135,
+136,
+136,
+136,
+136,
+137,
+137,
+137,
+138,
+138,
+138,
+139,
+139,
+139,
+139,
+140,
+140,
+140,
+141,
+141,
+141,
+142,
+142,
+142,
+142,
+143,
+143,
+143,
+144,
+144,
+144,
+145,
+145,
+145,
+145,
+146,
+146,
+146,
+147,
+147,
+147,
+148,
+148,
+148,
+]
+
+private let bid_exponents_bid64_11: [Int16] = [
+149,
+149,
+149,
+149,
+150,
+150,
+150,
+151,
+151,
+151,
+152,
+152,
+152,
+152,
+153,
+153,
+153,
+154,
+154,
+154,
+155,
+155,
+155,
+155,
+156,
+156,
+156,
+157,
+157,
+157,
+158,
+158,
+158,
+158,
+159,
+159,
+159,
+160,
+160,
+160,
+161,
+161,
+161,
+161,
+162,
+162,
+162,
+163,
+163,
+163,
+]
+
+private let bid_exponents_bid64_12: [Int16] = [
+164,
+164,
+164,
+164,
+165,
+165,
+165,
+166,
+166,
+166,
+167,
+167,
+167,
+167,
+168,
+168,
+168,
+169,
+169,
+169,
+170,
+170,
+170,
+170,
+171,
+171,
+171,
+172,
+172,
+172,
+173,
+173,
+173,
+173,
+174,
+174,
+174,
+175,
+175,
+175,
+176,
+176,
+176,
+176,
+177,
+177,
+177,
+178,
+178,
+178,
+]
+
+private let bid_exponents_bid64_13: [Int16] = [
+179,
+179,
+179,
+180,
+180,
+180,
+180,
+181,
+181,
+181,
+182,
+182,
+182,
+183,
+183,
+183,
+183,
+184,
+184,
+184,
+185,
+185,
+185,
+186,
+186,
+186,
+186,
+187,
+187,
+187,
+188,
+188,
+188,
+189,
+189,
+189,
+189,
+190,
+190,
+190,
+191,
+191,
+191,
+192,
+192,
+192,
+192,
+193,
+193,
+193,
+]
+
+private let bid_exponents_bid64_14: [Int16] = [
+194,
+194,
+194,
+195,
+195,
+195,
+195,
+196,
+196,
+196,
+197,
+197,
+197,
+198,
+198,
+198,
+198,
+199,
+199,
+199,
+200,
+200,
+200,
+201,
+201,
+201,
+201,
+202,
+202,
+202,
+203,
+203,
+203,
+204,
+204,
+204,
+204,
+205,
+205,
+205,
+206,
+206,
+206,
+207,
+207,
+207,
+208,
+208,
+208,
+208,
+]
+
+private let bid_exponents_bid64_15: [Int16] = [
+209,
+209,
+209,
+210,
+210,
+210,
+211,
+211,
+211,
+211,
+212,
+212,
+212,
+213,
+213,
+213,
+214,
+214,
+214,
+214,
+215,
+215,
+215,
+216,
+216,
+216,
+217,
+217,
+217,
+217,
+218,
+218,
+218,
+219,
+219,
+219,
+220,
+220,
+220,
+220,
+221,
+221,
+221,
+222,
+222,
+222,
+223,
+223,
+223,
+223,
+]
+
+private let bid_exponents_bid64_16: [Int16] = [
+224,
+224,
+224,
+225,
+225,
+225,
+226,
+226,
+226,
+226,
+227,
+227,
+227,
+228,
+228,
+228,
+229,
+229,
+229,
+229,
+230,
+230,
+230,
+231,
+231,
+231,
+232,
+232,
+232,
+232,
+233,
+233,
+233,
+234,
+234,
+234,
+235,
+235,
+235,
+236,
+236,
+236,
+236,
+237,
+237,
+237,
+238,
+238,
+238,
+239,
+]
+
+private let bid_exponents_bid64_17: [Int16] = [
+239,
+239,
+239,
+240,
+240,
+240,
+241,
+241,
+241,
+242,
+242,
+242,
+242,
+243,
+243,
+243,
+244,
+244,
+244,
+245,
+245,
+245,
+245,
+246,
+246,
+246,
+247,
+247,
+247,
+248,
+248,
+248,
+248,
+249,
+249,
+249,
+250,
+250,
+250,
+251,
+251,
+251,
+251,
+252,
+252,
+252,
+253,
+253,
+253,
+254,
+]
+
+private let bid_exponents_bid64_18: [Int16] = [
+254,
+254,
+254,
+255,
+255,
+255,
+256,
+256,
+256,
+257,
+257,
+257,
+257,
+258,
+258,
+258,
+259,
+259,
+259,
+260,
+260,
+260,
+260,
+261,
+261,
+261,
+262,
+262,
+262,
+263,
+263,
+263,
+263,
+264,
+264,
+264,
+265,
+265,
+265,
+266,
+266,
+266,
+267,
+267,
+267,
+267,
+268,
+268,
+268,
+269,
+]
+
+private let bid_exponents_bid64_19: [Int16] = [
+269,
+269,
+270,
+270,
+270,
+270,
+271,
+271,
+271,
+272,
+272,
+272,
+273,
+273,
+273,
+273,
+274,
+274,
+274,
+275,
+275,
+275,
+276,
+276,
+276,
+276,
+277,
+277,
+277,
+278,
+278,
+278,
+279,
+279,
+279,
+279,
+280,
+280,
+280,
+281,
+281,
+281,
+282,
+282,
+282,
+282,
+283,
+283,
+283,
+284,
+]
+
+private let bid_exponents_bid64_20: [Int16] = [
+284,
+284,
+285,
+285,
+285,
+285,
+286,
+286,
+286,
+287,
+287,
+287,
+288,
+288,
+288,
+288,
+289,
+289,
+289,
+290,
+290,
+290,
+291,
+291,
+291,
+291,
+292,
+292,
+292,
+293,
+293,
+293,
+294,
+294,
+294,
+295,
+295,
+295,
+295,
+296,
+296,
+296,
+297,
+297,
+297,
+298,
+298,
+298,
+298,
+299,
+]
+
+private let bid_exponents_bid64_21: [Int16] = [
+299,
+299,
+300,
+300,
+300,
+301,
+301,
+301,
+301,
+302,
+302,
+302,
+303,
+303,
+303,
+304,
+304,
+304,
+304,
+305,
+305,
+305,
+306,
+306,
+306,
+307,
+307,
+307,
+307,
+308,
+308,
+308,
+309,
+309,
+309,
+310,
+310,
+310,
+310,
+311,
+311,
+311,
+312,
+312,
+312,
+313,
+313,
+313,
+313,
+314,
+]
+
+private let bid_exponents_bid64_22: [Int16] = [
+314,
+314,
+315,
+315,
+315,
+316,
+316,
+316,
+316,
+317,
+317,
+317,
+318,
+318,
+318,
+319,
+319,
+319,
+319,
+320,
+320,
+320,
+321,
+321,
+321,
+322,
+322,
+322,
+322,
+323,
+323,
+323,
+324,
+324,
+324,
+325,
+325,
+325,
+326,
+326,
+326,
+326,
+327,
+327,
+327,
+328,
+328,
+328,
+329,
+329,
+]
+
+private let bid_exponents_bid64_23: [Int16] = [
+329,
+329,
+330,
+330,
+330,
+331,
+331,
+331,
+332,
+332,
+332,
+332,
+333,
+333,
+333,
+334,
+334,
+334,
+335,
+335,
+335,
+335,
+336,
+336,
+336,
+337,
+337,
+337,
+338,
+338,
+338,
+338,
+339,
+339,
+339,
+340,
+340,
+340,
+341,
+341,
+341,
+341,
+342,
+342,
+342,
+343,
+343,
+343,
+344,
+344,
+]
+
+private let bid_exponents_bid64_24: [Int16] = [
+344,
+344,
+345,
+345,
+345,
+346,
+346,
+346,
+347,
+347,
+347,
+347,
+348,
+348,
+348,
+349,
+349,
+349,
+350,
+350,
+350,
+350,
+351,
+351,
+351,
+352,
+352,
+352,
+353,
+353,
+353,
+354,
+354,
+354,
+354,
+355,
+355,
+355,
+356,
+356,
+356,
+357,
+357,
+357,
+357,
+358,
+358,
+358,
+359,
+359,
+]
+
+private let bid_exponents_bid64_25: [Int16] = [
+359,
+360,
+360,
+360,
+360,
+361,
+361,
+361,
+362,
+362,
+362,
+363,
+363,
+363,
+363,
+364,
+364,
+364,
+365,
+365,
+365,
+366,
+366,
+366,
+366,
+367,
+367,
+367,
+368,
+368,
+368,
+369,
+369,
+369,
+369,
+370,
+370,
+370,
+371,
+371,
+371,
+372,
+372,
+372,
+372,
+373,
+373,
+373,
+374,
+374,
+]
+
+private let bid_exponents_bid64_26: [Int16] = [
+374,
+375,
+375,
+375,
+375,
+376,
+376,
+376,
+377,
+377,
+377,
+378,
+378,
+378,
+378,
+379,
+379,
+379,
+380,
+380,
+380,
+381,
+381,
+381,
+381,
+382,
+382,
+382,
+383,
+383,
+383,
+384,
+384,
+384,
+385,
+385,
+385,
+385,
+386,
+386,
+386,
+387,
+387,
+387,
+388,
+388,
+388,
+388,
+389,
+389,
+]
+
+private let bid_exponents_bid64_27: [Int16] = [
+389,
+390,
+390,
+390,
+391,
+391,
+391,
+391,
+392,
+392,
+392,
+393,
+393,
+393,
+394,
+394,
+394,
+394,
+395,
+395,
+395,
+396,
+396,
+396,
+397,
+397,
+397,
+397,
+398,
+398,
+398,
+399,
+399,
+399,
+400,
+400,
+400,
+400,
+401,
+401,
+401,
+402,
+402,
+402,
+403,
+403,
+403,
+403,
+404,
+404,
+]
+
+private let bid_exponents_bid64_28: [Int16] = [
+404,
+405,
+405,
+405,
+406,
+406,
+406,
+406,
+407,
+407,
+407,
+408,
+408,
+408,
+409,
+409,
+409,
+409,
+410,
+410,
+410,
+411,
+411,
+411,
+412,
+412,
+412,
+413,
+413,
+413,
+413,
+414,
+414,
+414,
+415,
+415,
+415,
+416,
+416,
+416,
+416,
+417,
+417,
+417,
+418,
+418,
+418,
+419,
+419,
+419,
+]
+
+private let bid_exponents_bid64_29: [Int16] = [
+419,
+420,
+420,
+420,
+421,
+421,
+421,
+422,
+422,
+422,
+422,
+423,
+423,
+423,
+424,
+424,
+424,
+425,
+425,
+425,
+425,
+426,
+426,
+426,
+427,
+427,
+427,
+428,
+428,
+428,
+428,
+429,
+429,
+429,
+430,
+430,
+430,
+431,
+431,
+431,
+431,
+432,
+432,
+432,
+433,
+433,
+433,
+434,
+434,
+434,
+]
+
+private let bid_exponents_bid64_30: [Int16] = [
+434,
+435,
+435,
+435,
+436,
+436,
+436,
+437,
+437,
+437,
+437,
+438,
+438,
+438,
+439,
+439,
+439,
+440,
+440,
+440,
+441,
+441,
+441,
+441,
+442,
+442,
+442,
+443,
+443,
+443,
+444,
+444,
+444,
+444,
+445,
+445,
+445,
+446,
+446,
+446,
+447,
+447,
+447,
+447,
+448,
+448,
+448,
+449,
+449,
+449,
+]
+
+private let bid_exponents_bid64_31: [Int16] = [
+450,
+450,
+450,
+450,
+451,
+451,
+451,
+452,
+452,
+452,
+453,
+453,
+453,
+453,
+454,
+454,
+454,
+455,
+455,
+455,
+456,
+456,
+456,
+456,
+457,
+457,
+457,
+458,
+458,
+458,
+459,
+459,
+459,
+459,
+460,
+460,
+460,
+461,
+461,
+461,
+462,
+462,
+462,
+462,
+463,
+463,
+463,
+464,
+464,
+464,
+]
+
+private let bid_exponents_bid64_32: [Int16] = [
+465,
+465,
+465,
+465,
+466,
+466,
+466,
+467,
+467,
+467,
+468,
+468,
+468,
+468,
+469,
+469,
+469,
+470,
+470,
+470,
+471,
+471,
+471,
+472,
+472,
+472,
+472,
+473,
+473,
+473,
+474,
+474,
+474,
+475,
+475,
+475,
+475,
+476,
+476,
+476,
+477,
+477,
+477,
+478,
+478,
+478,
+478,
+479,
+479,
+479,
+]
+
+private let bid_exponents_bid64_33: [Int16] = [
+480,
+480,
+480,
+481,
+481,
+481,
+481,
+482,
+482,
+482,
+483,
+483,
+483,
+484,
+484,
+484,
+484,
+485,
+485,
+485,
+486,
+486,
+486,
+487,
+487,
+487,
+487,
+488,
+488,
+488,
+489,
+489,
+489,
+490,
+490,
+490,
+490,
+491,
+491,
+491,
+492,
+492,
+492,
+493,
+493,
+493,
+493,
+494,
+494,
+494,
+]
+
+private let bid_exponents_bid64_34: [Int16] = [
+495,
+495,
+495,
+496,
+496,
+496,
+496,
+497,
+497,
+497,
+498,
+498,
+498,
+499,
+499,
+499,
+500,
+500,
+500,
+500,
+501,
+501,
+501,
+502,
+502,
+502,
+503,
+503,
+503,
+503,
+504,
+504,
+504,
+505,
+505,
+505,
+506,
+506,
+506,
+506,
+507,
+507,
+507,
+508,
+508,
+508,
+509,
+509,
+509,
+509,
+]
+
+private let bid_exponents_bid64_35: [Int16] = [
+510,
+510,
+510,
+511,
+511,
+511,
+512,
+512,
+512,
+512,
+513,
+513,
+513,
+514,
+514,
+514,
+515,
+515,
+515,
+515,
+516,
+516,
+516,
+517,
+517,
+517,
+518,
+518,
+518,
+518,
+519,
+519,
+519,
+520,
+520,
+520,
+521,
+521,
+521,
+521,
+522,
+522,
+522,
+523,
+523,
+523,
+524,
+524,
+524,
+524,
+]
+
+private let bid_exponents_bid64_36: [Int16] = [
+525,
+525,
+525,
+526,
+526,
+526,
+527,
+527,
+527,
+527,
+528,
+528,
+528,
+529,
+529,
+529,
+530,
+530,
+530,
+531,
+531,
+531,
+531,
+532,
+532,
+532,
+533,
+533,
+533,
+534,
+534,
+534,
+534,
+535,
+535,
+535,
+536,
+536,
+536,
+537,
+537,
+537,
+537,
+538,
+538,
+538,
+539,
+539,
+539,
+540,
+]
+
+private let bid_exponents_bid64_37: [Int16] = [
+540,
+540,
+540,
+541,
+541,
+541,
+542,
+542,
+542,
+543,
+543,
+543,
+543,
+544,
+544,
+544,
+545,
+545,
+545,
+546,
+546,
+546,
+546,
+547,
+547,
+547,
+548,
+548,
+548,
+549,
+549,
+549,
+549,
+550,
+550,
+550,
+551,
+551,
+551,
+552,
+552,
+552,
+552,
+553,
+553,
+553,
+554,
+554,
+554,
+555,
+]
+
+private let bid_exponents_bid64_38: [Int16] = [
+555,
+555,
+555,
+556,
+556,
+556,
+557,
+557,
+557,
+558,
+558,
+558,
+559,
+559,
+559,
+559,
+560,
+560,
+560,
+561,
+561,
+561,
+562,
+562,
+562,
+562,
+563,
+563,
+563,
+564,
+564,
+564,
+565,
+565,
+565,
+565,
+566,
+566,
+566,
+567,
+567,
+567,
+568,
+568,
+568,
+568,
+569,
+569,
+569,
+570,
+]
+
+private let bid_exponents_bid64_39: [Int16] = [
+570,
+570,
+571,
+571,
+571,
+571,
+572,
+572,
+572,
+573,
+573,
+573,
+574,
+574,
+574,
+574,
+575,
+575,
+575,
+576,
+576,
+576,
+577,
+577,
+577,
+577,
+578,
+578,
+578,
+579,
+579,
+579,
+580,
+580,
+580,
+580,
+581,
+581,
+581,
+582,
+582,
+582,
+583,
+583,
+583,
+583,
+584,
+584,
+584,
+585,
+]
+
+private let bid_exponents_bid64_40: [Int16] = [
+585,
+585,
+586,
+586,
+586,
+587,
+587,
+587,
+587,
+588,
+588,
+588,
+589,
+589,
+589,
+590,
+590,
+590,
+590,
+591,
+591,
+591,
+592,
+592,
+592,
+593,
+593,
+593,
+593,
+594,
+594,
+594,
+595,
+595,
+595,
+596,
+596,
+596,
+596,
+597,
+597,
+597,
+598,
+598,
+598,
+599,
+599,
+599,
+599,
+600,
+]
+
+private let bid_exponents_bid64_41: [Int16] = [
+600,
+600,
+601,
+601,
+601,
+602,
+602,
+602,
+602,
+603,
+603,
+603,
+604,
+604,
+604,
+605,
+605,
+605,
+605,
+606,
+606,
+606,
+607,
+607,
+607,
+608,
+608,
+608,
+608,
+609,
+609,
+609,
+610,
+610,
+610,
+611,
+611,
+611,
+611,
+612,
+612,
+612,
+613,
+613,
+613,
+614,
+614,
+614,
+614,
+615,
+]
+
+private let bid_exponents_bid64_42: [Int16] = [
+615,
+615,
+616,
+616,
+616,
+617,
+617,
+617,
+618,
+618,
+618,
+618,
+619,
+619,
+619,
+620,
+620,
+620,
+621,
+621,
+621,
+621,
+622,
+622,
+622,
+623,
+623,
+623,
+624,
+624,
+624,
+624,
+625,
+625,
+625,
+626,
+626,
+626,
+627,
+627,
+627,
+627,
+628,
+628,
+628,
+629,
+629,
+629,
+630,
+630,
+]
+
+private let bid_exponents_bid64_43: [Int16] = [
+630,
+630,
+631,
+631,
+631,
+632,
+632,
+632,
+633,
+633,
+633,
+633,
+634,
+634,
+634,
+635,
+635,
+635,
+636,
+636,
+636,
+636,
+637,
+637,
+637,
+638,
+638,
+638,
+639,
+639,
+639,
+639,
+640,
+640,
+640,
+641,
+641,
+641,
+642,
+642,
+642,
+642,
+643,
+643,
+643,
+644,
+644,
+644,
+645,
+645,
+]
+
+private let bid_exponents_bid64_44: [Int16] = [
+645,
+646,
+646,
+646,
+646,
+647,
+647,
+647,
+648,
+648,
+648,
+649,
+649,
+649,
+649,
+650,
+650,
+650,
+651,
+651,
+651,
+652,
+652,
+652,
+652,
+653,
+653,
+653,
+654,
+654,
+654,
+655,
+655,
+655,
+655,
+656,
+656,
+656,
+657,
+657,
+657,
+658,
+658,
+658,
+658,
+659,
+659,
+659,
+660,
+660,
+]
+
+private let bid_exponents_bid64_45: [Int16] = [
+660,
+661,
+661,
+661,
+661,
+662,
+662,
+662,
+663,
+663,
+663,
+664,
+664,
+664,
+664,
+665,
+665,
+665,
+666,
+666,
+666,
+667,
+667,
+667,
+667,
+668,
+668,
+668,
+669,
+669,
+669,
+670,
+670,
+670,
+670,
+671,
+671,
+671,
+672,
+672,
+672,
+673,
+673,
+673,
+673,
+674,
+674,
+674,
+675,
+675,
+]
+
+private let bid_exponents_bid64_46: [Int16] = [
+675,
+676,
+676,
+676,
+677,
+677,
+677,
+677,
+678,
+678,
+678,
+679,
+679,
+679,
+680,
+680,
+680,
+680,
+681,
+681,
+681,
+682,
+682,
+682,
+683,
+683,
+683,
+683,
+684,
+684,
+684,
+685,
+685,
+685,
+686,
+686,
+686,
+686,
+687,
+687,
+687,
+688,
+688,
+688,
+689,
+689,
+689,
+689,
+690,
+690,
+]
+
+private let bid_exponents_bid64_47: [Int16] = [
+690,
+691,
+691,
+691,
+692,
+692,
+692,
+692,
+693,
+693,
+693,
+694,
+694,
+694,
+695,
+695,
+695,
+695,
+696,
+696,
+696,
+697,
+697,
+697,
+698,
+698,
+698,
+698,
+699,
+699,
+699,
+700,
+700,
+700,
+701,
+701,
+701,
+701,
+702,
+702,
+702,
+703,
+703,
+703,
+704,
+704,
+704,
+705,
+705,
+705,
+]
+
+private let bid_exponents_bid64_48: [Int16] = [
+705,
+706,
+706,
+706,
+707,
+707,
+707,
+708,
+708,
+708,
+708,
+709,
+709,
+709,
+710,
+710,
+710,
+711,
+711,
+711,
+711,
+712,
+712,
+712,
+713,
+713,
+713,
+714,
+714,
+714,
+714,
+715,
+715,
+715,
+716,
+716,
+716,
+717,
+717,
+717,
+717,
+718,
+718,
+718,
+719,
+719,
+719,
+720,
+720,
+720,
+]
+
+private let bid_exponents_bid64_49: [Int16] = [
+720,
+721,
+721,
+721,
+722,
+722,
+722,
+723,
+723,
+723,
+723,
+724,
+724,
+724,
+725,
+725,
+725,
+726,
+726,
+726,
+726,
+727,
+727,
+727,
+728,
+728,
+728,
+729,
+729,
+729,
+729,
+730,
+730,
+730,
+731,
+731,
+731,
+732,
+732,
+732,
+733,
+733,
+733,
+733,
+734,
+734,
+734,
+735,
+735,
+735,
+]
+
+private let bid_exponents_bid64_50: [Int16] = [
+736,
+736,
+736,
+736,
+737,
+737,
+737,
+738,
+738,
+738,
+739,
+739,
+739,
+739,
+740,
+740,
+740,
+741,
+741,
+741,
+742,
+742,
+742,
+742,
+743,
+743,
+743,
+744,
+744,
+744,
+745,
+745,
+745,
+745,
+746,
+746,
+746,
+747,
+747,
+747,
+748,
+748,
+748,
+748,
+749,
+749,
+749,
+750,
+750,
+750,
+]
+
+private let bid_exponents_bid64_51: [Int16] = [
+751,
+751,
+751,
+751,
+752,
+752,
+752,
+753,
+753,
+753,
+754,
+754,
+754,
+754,
+755,
+755,
+755,
+756,
+756,
+756,
+757,
+757,
+757,
+757,
+758,
+758,
+758,
+759,
+759,
+759,
+760,
+760,
+760,
+760,
+761,
+761,
+761,
+762,
+762,
+762,
+763,
+763,
+763,
+764,
+764,
+764,
+764,
+765,
+765,
+765,
+]
+
+private let bid_exponents_bid64_52: [Int16] = [
+766,
+766,
+766,
+767,
+767,
+]
+
+// MARK: - bid_multipliers1_bid32
+
+extension BinaryFloatingPointTables {
+ internal static func bid_multipliers1_bid32(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_multipliers1_bid32_0[r]
+ case 1: return bid_multipliers1_bid32_1[r]
+ case 2: return bid_multipliers1_bid32_2[r]
+ case 3: return bid_multipliers1_bid32_3[r]
+ case 4: return bid_multipliers1_bid32_4[r]
+ case 5: return bid_multipliers1_bid32_5[r]
+ case 6: return bid_multipliers1_bid32_6[r]
+ case 7: return bid_multipliers1_bid32_7[r]
+ case 8: return bid_multipliers1_bid32_8[r]
+ case 9: return bid_multipliers1_bid32_9[r]
+ case 10: return bid_multipliers1_bid32_10[r]
+ case 11: return bid_multipliers1_bid32_11[r]
+ case 12: return bid_multipliers1_bid32_12[r]
+ case 13: return bid_multipliers1_bid32_13[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_multipliers1_bid32_0: [UInt256] = [
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(392727477223, 15091728617112590342, 4305922861044245892, 8022453891189237964),
+UInt256(785454954447, 11736713160515629068, 8611845722088491784, 16044907782378475927),
+UInt256(1570909908895, 5026682247321706520, 17223691444176983569, 13643071491047400238),
+UInt256(3141819817790, 10053364494643413041, 16000638814644415523, 8839398908385248859),
+UInt256(628363963558, 2010672898928682608, 6889476577670793427, 16525275040644691065),
+UInt256(1256727927116, 4021345797857365216, 13778953155341586855, 14603806007579830513),
+UInt256(2513455854232, 8042691595714730433, 9111162236973622095, 10760867941450109410),
+UInt256(502691170846, 8987235948626766733, 1822232447394724419, 2152173588290021882),
+UInt256(1005382341692, 17974471897253533466, 3644464894789448838, 4304347176580043764),
+UInt256(2010764683385, 17502199720797515316, 7288929789578897676, 8608694353160087528),
+UInt256(402152936677, 3500439944159503063, 5147134772657689858, 9100436500115838152),
+UInt256(804305873354, 7000879888319006126, 10294269545315379716, 18200873000231676304),
+UInt256(1608611746708, 14001759776638012253, 2141795016921207817, 17955001926753800992),
+UInt256(3217223493417, 9556775479566472890, 4283590033842415635, 17463259779798050368),
+UInt256(643444698683, 9290052725397115224, 8235415636252303773, 10871349585443430720),
+UInt256(1286889397367, 133361377084678832, 16470831272504607547, 3295955097177309824),
+UInt256(2573778794734, 266722754169357665, 14494918471299663478, 6591910194354619648),
+UInt256(514755758946, 14810739809801512825, 17656378953227573988, 8697079668354744576),
+UInt256(1029511517893, 11174735545893474035, 16866013832745596360, 17394159336709489152),
+UInt256(2059023035787, 3902727018077396455, 15285283591781641105, 16341574599709426688),
+UInt256(411804607157, 8159243033099299937, 10435754347840148867, 10647012549425705984),
+UInt256(823609214314, 16318486066198599875, 2424764621970746119, 2847281025141860352),
+UInt256(1647218428629, 14190228058687648134, 4849529243941492238, 5694562050283720704),
+UInt256(329443685725, 17595440870705170919, 12037952293014029417, 4828261224798654464),
+UInt256(658887371451, 16744137667700790223, 5629160512318507218, 9656522449597308928),
+]
+
+private let bid_multipliers1_bid32_1: [UInt256] = [
+UInt256(1317774742903, 15041531261692028830, 11258321024637014437, 866300825485066240),
+UInt256(2635549485807, 11636318449674506045, 4069897975564477258, 1732601650970132480),
+UInt256(527109897161, 9705961319418721855, 8192677224596716098, 346520330194026496),
+UInt256(1054219794323, 965178565127892094, 16385354449193432196, 693040660388052992),
+UInt256(2108439588646, 1930357130255784189, 14323964824677312776, 1386081320776105984),
+UInt256(421687917729, 4075420240793067161, 2864792964935462555, 3966565078897131520),
+UInt256(843375835458, 8150840481586134322, 5729585929870925110, 7933130157794263040),
+UInt256(1686751670916, 16301680963172268644, 11459171859741850220, 15866260315588526080),
+UInt256(337350334183, 6949685007376364052, 2291834371948370044, 3173252063117705216),
+UInt256(674700668366, 13899370014752728104, 4583668743896740088, 6346504126235410432),
+UInt256(1349401336733, 9351995955795904592, 9167337487793480176, 12693008252470820864),
+UInt256(2698802673467, 257247837882257568, 18334674975586960353, 6939272431232090112),
+UInt256(539760534693, 7430147197060272160, 3666934995117392070, 12455900930472148992),
+UInt256(1079521069386, 14860294394120544320, 7333869990234784141, 6465057787234746368),
+UInt256(2159042138773, 11273844714531537024, 14667739980469568282, 12930115574469492736),
+UInt256(431808427754, 13322815387132038374, 10312245625577734302, 17343418373861539840),
+UInt256(863616855509, 8198886700554525133, 2177747177445916989, 16240092674013528064),
+UInt256(1727233711018, 16397773401109050266, 4355494354891833979, 14033441274317504512),
+UInt256(345446742203, 14347601124447541022, 15628494129946008088, 13874734699089231872),
+UInt256(690893484407, 10248458175185530429, 12810244186182464561, 9302725324468912128),
+UInt256(1381786968815, 2050172276661509243, 7173744298655377507, 158706575228272640),
+UInt256(2763573937630, 4100344553323018486, 14347488597310755014, 317413150456545280),
+UInt256(552714787526, 820068910664603697, 6558846534204061326, 63482630091309056),
+UInt256(1105429575052, 1640137821329207394, 13117693068408122652, 126965260182618112),
+UInt256(2210859150104, 3280275642658414789, 7788642063106693688, 253930520365236224),
+UInt256(442171830020, 15413450387499324250, 12625774856847069707, 3740134918814957568),
+UInt256(884343660041, 12380156701289096885, 6804805639984587798, 7480269837629915136),
+UInt256(1768687320083, 6313569328868642154, 13609611279969175596, 14960539675259830272),
+UInt256(353737464016, 12330760309999459400, 10100619885477655765, 14060154379277697024),
+UInt256(707474928033, 6214776546289367185, 1754495697245759915, 9673564684845842432),
+UInt256(1414949856066, 12429553092578734370, 3508991394491519831, 900385295982133248),
+UInt256(2829899712133, 6412362111447917124, 7017982788983039662, 1800770591964266496),
+UInt256(565979942426, 12350518866515314394, 8782294187280428578, 15117549377360494592),
+UInt256(1131959884853, 6254293659321077172, 17564588374560857157, 11788354681011437568),
+UInt256(2263919769706, 12508587318642154345, 16682432675412162699, 5129965288313323520),
+UInt256(452783953941, 6191066278470341192, 7025835349824342863, 1025993057662664704),
+UInt256(905567907882, 12382132556940682384, 14051670699648685726, 2051986115325329408),
+UInt256(1811135815765, 6317521040171813153, 9656597325587819836, 4103972230650658816),
+UInt256(362227163153, 1263504208034362630, 12999365909343294936, 15578189705097773056),
+UInt256(724454326306, 2527008416068725261, 7551987744977038257, 12709635336485994496),
+UInt256(1448908652612, 5054016832137450522, 15103975489954076515, 6972526599262437376),
+UInt256(2897817305224, 10108033664274901045, 11761206906198601414, 13945053198524874752),
+UInt256(579563461044, 16779001991822621501, 17109636640207361575, 13857057083930705920),
+UInt256(1159126922089, 15111259909935691387, 15772529206705171535, 9267370094151860224),
+UInt256(2318253844179, 11775775746161831159, 13098314339700791455, 87996114594168832),
+UInt256(463650768835, 17112550408200007524, 13687709312165889260, 11085645667144564736),
+UInt256(927301537671, 15778356742690463433, 8928674550622226905, 3724547260579577856),
+UInt256(1854603075343, 13109969411671375250, 17857349101244453810, 7449094521159155712),
+UInt256(370920615068, 13690040326560006019, 14639516264474621731, 12557865348457562112),
+UInt256(741841230137, 8933336579410460423, 10832288455239691847, 6668986623205572608),
+]
+
+private let bid_multipliers1_bid32_2: [UInt256] = [
+UInt256(1483682460274, 17866673158820920847, 3217832836769832078, 13337973246411145216),
+UInt256(2967364920549, 17286602243932290078, 6435665673539664157, 8229202419112738816),
+UInt256(593472984109, 18214715707754099308, 8665830764191753477, 16403235742790189056),
+UInt256(1186945968219, 17982687341798647000, 17331661528383506955, 14359727411870826496),
+UInt256(2373891936439, 17518630609887742385, 16216578983057462295, 10272710750032101376),
+UInt256(474778387287, 18261121380945189769, 18000711055579133751, 16811937408974061568),
+UInt256(949556774575, 18075498688180827923, 17554678037448715887, 15177130744238571520),
+UInt256(1899113549151, 17704253302652104231, 16662612001187880159, 11907517414767591424),
+UInt256(379822709830, 7230199475272331169, 10711220029721396678, 6070852297695428608),
+UInt256(759645419660, 14460398950544662339, 2975695985733241740, 12141704595390857216),
+UInt256(1519290839321, 10474053827379773062, 5951391971466483481, 5836665117072162816),
+UInt256(3038581678643, 2501363581049994508, 11902783942932966962, 11673330234144325632),
+UInt256(607716335728, 11568319160435729871, 6069905603328503715, 13402712491054596096),
+UInt256(1215432671457, 4689894247161908126, 12139811206657007431, 8358680908399640576),
+UInt256(2430865342914, 9379788494323816253, 5832878339604463246, 16717361816799281152),
+UInt256(486173068582, 16633352957832404543, 8545273297404713295, 14411518807585587200),
+UInt256(972346137165, 14819961841955257470, 17090546594809426591, 10376293541461622784),
+UInt256(1944692274331, 11193179610200963325, 15734349115909301567, 2305843009213693952),
+UInt256(388938454866, 5927984736782102988, 6836218637923770636, 11529215046068469760),
+UInt256(777876909732, 11855969473564205976, 13672437275847541273, 4611686018427387904),
+UInt256(1555753819465, 5265194873418860337, 8898130477985530930, 9223372036854775808),
+UInt256(3111507638930, 10530389746837720674, 17796260955971061861, 0),
+UInt256(622301527786, 2106077949367544134, 18316647450161853665, 0),
+UInt256(1244603055572, 4212155898735088269, 18186550826614155714, 0),
+UInt256(2489206111144, 8424311797470176539, 17926357579518759812, 0),
+UInt256(497841222228, 16442257618461676600, 14653317960129482932, 0),
+UInt256(995682444457, 14437771163213801585, 10859891846549414248, 0),
+UInt256(1991364888915, 10428798252718051555, 3273039619389276880, 0),
+UInt256(398272977783, 2085759650543610311, 654607923877855376, 0),
+UInt256(796545955566, 4171519301087220622, 1309215847755710752, 0),
+UInt256(1593091911132, 8343038602174441244, 2618431695511421504, 0),
+UInt256(3186183822264, 16686077204348882488, 5236863391022843008, 0),
+UInt256(637236764452, 18094610699837417790, 8426070307688389248, 0),
+UInt256(1274473528905, 17742477325965283964, 16852140615376778496, 0),
+UInt256(2548947057811, 17038210578221016313, 15257537157044005376, 0),
+UInt256(509789411562, 7096990930386113585, 17808902690376442368, 0),
+UInt256(1019578823124, 14193981860772227171, 17171061307043333120, 0),
+UInt256(2039157646249, 9941219647834902727, 15895378540377114624, 0),
+UInt256(407831529249, 16745639188534621838, 6868424522817333248, 0),
+UInt256(815663058499, 15044534303359692060, 13736849045634666496, 0),
+UInt256(1631326116999, 11642324533009832505, 9026954017559781376, 0),
+UInt256(3262652233999, 4837904992310113394, 18053908035119562752, 0),
+UInt256(652530446799, 15724976257429663971, 14678828051249643520, 0),
+UInt256(1305060893599, 13003208441149776327, 10910912028789735424, 0),
+UInt256(2610121787199, 7559672808590001039, 3375079983869919232, 0),
+UInt256(522024357439, 16269329820685641500, 11743062440999714816, 0),
+UInt256(1044048714879, 14091915567661731385, 5039380808289878016, 0),
+UInt256(2088097429759, 9737087061613911154, 10078761616579756032, 0),
+UInt256(417619485951, 16704812671290423523, 13083798767541682176, 0),
+UInt256(835238971903, 14962881268871295431, 7720853461373812736, 0),
+]
+
+private let bid_multipliers1_bid32_3: [UInt256] = [
+UInt256(1670477943807, 11479018464033039246, 15441706922747625472, 0),
+UInt256(334095588761, 9674501322290428495, 14156387828775256064, 0),
+UInt256(668191177523, 902258570871305375, 9866031583840960512, 0),
+UInt256(1336382355046, 1804517141742610751, 1285319093972369408, 0),
+UInt256(2672764710092, 3609034283485221502, 2570638187944738816, 0),
+UInt256(534552942018, 8100504486180864946, 15271522896556589056, 0),
+UInt256(1069105884036, 16201008972361729893, 12096301719403626496, 0),
+UInt256(2138211768073, 13955273871013908171, 5745859365097701376, 0),
+UInt256(427642353614, 13859101218428512603, 15906567131987181568, 0),
+UInt256(855284707229, 9271458363147473591, 13366390190264811520, 0),
+UInt256(1710569414459, 96172652585395567, 8286036306820071424, 0),
+UInt256(342113882891, 14776629789484720406, 5346556076105924608, 0),
+UInt256(684227765783, 11106515505259889196, 10693112152211849216, 0),
+UInt256(1368455531567, 3766286936810226777, 2939480230714146816, 0),
+UInt256(2736911063134, 7532573873620453554, 5878960461428293632, 0),
+UInt256(547382212626, 16263910033691732003, 12243838536511389696, 0),
+UInt256(1094764425253, 14081075993673912391, 6040932999313227776, 0),
+UInt256(2189528850507, 9715407913638273166, 12081865998626455552, 0),
+UInt256(437905770101, 9321779212211475279, 13484419643951022080, 0),
+UInt256(875811540203, 196814350713398943, 8522095214192492544, 0),
+UInt256(1751623080406, 393628701426797886, 17044190428384985088, 0),
+UInt256(350324616081, 3768074555027269900, 10787535715160817664, 0),
+UInt256(700649232162, 7536149110054539801, 3128327356612083712, 0),
+UInt256(1401298464324, 15072298220109079602, 6256654713224167424, 0),
+UInt256(2802596928649, 11697852366508607588, 12513309426448334848, 0),
+UInt256(560519385729, 17096965732269362810, 9881359514773487616, 0),
+UInt256(1121038771459, 15747187390829174005, 1315974955837423616, 0),
+UInt256(2242077542919, 13047630707948796394, 2631949911674847232, 0),
+UInt256(448415508583, 17366921400557400571, 11594436426560700416, 0),
+UInt256(896831017167, 16287098727405249527, 4742128779411849216, 0),
+UInt256(1793662034335, 14127453381100947438, 9484257558823698432, 0),
+UInt256(358732406867, 2825490676220189487, 12964897955990470656, 0),
+UInt256(717464813734, 5650981352440378975, 7483051838271389696, 0),
+UInt256(1434929627468, 11301962704880757950, 14966103676542779392, 0),
+UInt256(2869859254937, 4157181336051964285, 11485463279376007168, 0),
+UInt256(573971850987, 8210133896694213503, 9675790285359022080, 0),
+UInt256(1147943701974, 16420267793388427007, 904836497008492544, 0),
+UInt256(2295887403949, 14393791513067302398, 1809672994016985088, 0),
+UInt256(459177480789, 17636153561581101772, 7740632228287217664, 0),
+UInt256(918354961579, 16825563049452651928, 15481264456574435328, 0),
+UInt256(1836709923159, 15204382025195752241, 12515784839439319040, 0),
+UInt256(367341984631, 17798271664006791741, 2503156967887863808, 0),
+UInt256(734683969263, 17149799254304031866, 5006313935775727616, 0),
+UInt256(1469367938527, 15852854434898512116, 10012627871551455232, 0),
+UInt256(2938735877055, 13258964796087472617, 1578511669393358848, 0),
+UInt256(587747175411, 2651792959217494523, 7694399963362492416, 0),
+UInt256(1175494350822, 5303585918434989046, 15388799926724984832, 0),
+UInt256(2350988701644, 10607171836869978093, 12330855779740418048, 0),
+UInt256(470197740328, 16878829626341636911, 9844868785431904256, 0),
+UInt256(940395480657, 15310915178973722207, 1242993497154256896, 0),
+]
+
+private let bid_multipliers1_bid32_4: [UInt256] = [
+UInt256(1880790961315, 12175086284237892798, 2485986994308513792, 0),
+UInt256(376158192263, 2435017256847578559, 11565243843087433728, 0),
+UInt256(752316384526, 4870034513695157119, 4683743612465315840, 0),
+UInt256(1504632769052, 9740069027390314238, 9367487224930631680, 0),
+UInt256(3009265538105, 1033393981071076861, 288230376151711744, 0),
+UInt256(601853107621, 206678796214215372, 3746994889972252672, 0),
+UInt256(1203706215242, 413357592428430744, 7493989779944505344, 0),
+UInt256(2407412430484, 826715184856861488, 14987979559889010688, 0),
+UInt256(481482486096, 14922738295939013590, 10376293541461622784, 0),
+UInt256(962964972193, 11398732518168475565, 2305843009213693952, 0),
+UInt256(1925929944387, 4350720962627399514, 4611686018427387904, 0),
+UInt256(385185988877, 8248841822009300549, 4611686018427387904, 0),
+UInt256(770371977754, 16497683644018601098, 9223372036854775808, 0),
+UInt256(1540743955509, 14548623214327650581, 0, 0),
+UInt256(3081487911019, 10650502354945749546, 0, 0),
+UInt256(616297582203, 16887495729956791202, 0, 0),
+UInt256(1232595164407, 15328247386204030788, 0, 0),
+UInt256(2465190328815, 12209750698698509960, 0, 0),
+UInt256(493038065763, 2441950139739701992, 0, 0),
+UInt256(986076131526, 4883900279479403984, 0, 0),
+UInt256(1972152263052, 9767800558958807968, 0, 0),
+UInt256(394430452610, 9332257741275582240, 0, 0),
+UInt256(788860905221, 217771408841612864, 0, 0),
+UInt256(1577721810442, 435542817683225728, 0, 0),
+UInt256(3155443620884, 871085635366451456, 0, 0),
+UInt256(631088724176, 14931612386040931584, 0, 0),
+UInt256(1262177448353, 11416480698372311552, 0, 0),
+UInt256(2524354896707, 4386217323035071488, 0, 0),
+UInt256(504870979341, 8255941094090834944, 0, 0),
+UInt256(1009741958682, 16511882188181669888, 0, 0),
+UInt256(2019483917365, 14577020302653788160, 0, 0),
+UInt256(403896783473, 2915404060530757632, 0, 0),
+UInt256(807793566946, 5830808121061515264, 0, 0),
+UInt256(1615587133892, 11661616242123030528, 0, 0),
+UInt256(3231174267785, 4876488410536509440, 0, 0),
+UInt256(646234853557, 975297682107301888, 0, 0),
+UInt256(1292469707114, 1950595364214603776, 0, 0),
+UInt256(2584939414228, 3901190728429207552, 0, 0),
+UInt256(516987882845, 11848284589911572480, 0, 0),
+UInt256(1033975765691, 5249825106113593344, 0, 0),
+UInt256(2067951531382, 10499650212227186688, 0, 0),
+UInt256(413590306276, 9478627671929257984, 0, 0),
+UInt256(827180612553, 510511270148964352, 0, 0),
+UInt256(1654361225106, 1021022540297928704, 0, 0),
+UInt256(330872245021, 3893553322801496064, 0, 0),
+UInt256(661744490042, 7787106645602992128, 0, 0),
+UInt256(1323488980084, 15574213291205984256, 0, 0),
+UInt256(2646977960169, 12701682508702416896, 0, 0),
+UInt256(529395592033, 17297731760708124672, 0, 0),
+UInt256(1058791184067, 16148719447706697728, 0, 0),
+]
+
+private let bid_multipliers1_bid32_5: [UInt256] = [
+UInt256(2117582368135, 13850694821703843840, 0, 0),
+UInt256(423516473627, 2770138964340768768, 0, 0),
+UInt256(847032947254, 5540277928681537536, 0, 0),
+UInt256(1694065894508, 11080555857363075072, 0, 0),
+UInt256(338813178901, 13284157615698345984, 0, 0),
+UInt256(677626357803, 8121571157687140352, 0, 0),
+UInt256(1355252715606, 16243142315374280704, 0, 0),
+UInt256(2710505431213, 14039540557039009792, 0, 0),
+UInt256(542101086242, 13875954555633532928, 0, 0),
+UInt256(1084202172485, 9305165037557514240, 0, 0),
+UInt256(2168404344971, 163586001405476864, 0, 0),
+UInt256(433680868994, 3722066015023005696, 0, 0),
+UInt256(867361737988, 7444132030046011392, 0, 0),
+UInt256(1734723475976, 14888264060092022784, 0, 0),
+UInt256(346944695195, 6667001626760314880, 0, 0),
+UInt256(693889390390, 13334003253520629760, 0, 0),
+UInt256(1387778780781, 8221262433331707904, 0, 0),
+UInt256(2775557561562, 16442524866663415808, 0, 0),
+UInt256(555111512312, 10667202602816503808, 0, 0),
+UInt256(1110223024625, 2887661131923456000, 0, 0),
+UInt256(2220446049250, 5775322263846912000, 0, 0),
+UInt256(444089209850, 1155064452769382400, 0, 0),
+UInt256(888178419700, 2310128905538764800, 0, 0),
+UInt256(1776356839400, 4620257811077529600, 0, 0),
+UInt256(355271367880, 924051562215505920, 0, 0),
+UInt256(710542735760, 1848103124431011840, 0, 0),
+UInt256(1421085471520, 3696206248862023680, 0, 0),
+UInt256(2842170943040, 7392412497724047360, 0, 0),
+UInt256(568434188608, 1478482499544809472, 0, 0),
+UInt256(1136868377216, 2956964999089618944, 0, 0),
+UInt256(2273736754432, 5913929998179237888, 0, 0),
+UInt256(454747350886, 8561483629119668224, 0, 0),
+UInt256(909494701772, 17122967258239336448, 0, 0),
+UInt256(1818989403545, 15799190442769121280, 0, 0),
+UInt256(363797880709, 3159838088553824256, 0, 0),
+UInt256(727595761418, 6319676177107648512, 0, 0),
+UInt256(1455191522836, 12639352354215297024, 0, 0),
+UInt256(2910383045673, 6831960634721042432, 0, 0),
+UInt256(582076609134, 12434438571169939456, 0, 0),
+UInt256(1164153218269, 6422133068630327296, 0, 0),
+UInt256(2328306436538, 12844266137260654592, 0, 0),
+UInt256(465661287307, 13636899671677861888, 0, 0),
+UInt256(931322574615, 8827055269646172160, 0, 0),
+UInt256(1862645149230, 17654110539292344320, 0, 0),
+UInt256(372529029846, 3530822107858468864, 0, 0),
+UInt256(745058059692, 7061644215716937728, 0, 0),
+UInt256(1490116119384, 14123288431433875456, 0, 0),
+UInt256(2980232238769, 9799832789158199296, 0, 0),
+UInt256(596046447753, 16717361816799281152, 0, 0),
+UInt256(1192092895507, 14987979559889010688, 0, 0),
+]
+
+private let bid_multipliers1_bid32_6: [UInt256] = [
+UInt256(2384185791015, 11529215046068469760, 0, 0),
+UInt256(476837158203, 2305843009213693952, 0, 0),
+UInt256(953674316406, 4611686018427387904, 0, 0),
+UInt256(1907348632812, 9223372036854775808, 0, 0),
+UInt256(381469726562, 9223372036854775808, 0, 0),
+UInt256(762939453125, 0, 0, 0),
+UInt256(1525878906250, 0, 0, 0),
+UInt256(3051757812500, 0, 0, 0),
+UInt256(610351562500, 0, 0, 0),
+UInt256(1220703125000, 0, 0, 0),
+UInt256(2441406250000, 0, 0, 0),
+UInt256(488281250000, 0, 0, 0),
+UInt256(976562500000, 0, 0, 0),
+UInt256(1953125000000, 0, 0, 0),
+UInt256(390625000000, 0, 0, 0),
+UInt256(781250000000, 0, 0, 0),
+UInt256(1562500000000, 0, 0, 0),
+UInt256(3125000000000, 0, 0, 0),
+UInt256(625000000000, 0, 0, 0),
+UInt256(1250000000000, 0, 0, 0),
+UInt256(2500000000000, 0, 0, 0),
+UInt256(500000000000, 0, 0, 0),
+UInt256(1000000000000, 0, 0, 0),
+UInt256(2000000000000, 0, 0, 0),
+UInt256(400000000000, 0, 0, 0),
+UInt256(800000000000, 0, 0, 0),
+UInt256(1600000000000, 0, 0, 0),
+UInt256(3200000000000, 0, 0, 0),
+UInt256(640000000000, 0, 0, 0),
+UInt256(1280000000000, 0, 0, 0),
+UInt256(2560000000000, 0, 0, 0),
+UInt256(512000000000, 0, 0, 0),
+UInt256(1024000000000, 0, 0, 0),
+UInt256(2048000000000, 0, 0, 0),
+UInt256(409600000000, 0, 0, 0),
+UInt256(819200000000, 0, 0, 0),
+UInt256(1638400000000, 0, 0, 0),
+UInt256(3276800000000, 0, 0, 0),
+UInt256(655360000000, 0, 0, 0),
+UInt256(1310720000000, 0, 0, 0),
+UInt256(2621440000000, 0, 0, 0),
+UInt256(524288000000, 0, 0, 0),
+UInt256(1048576000000, 0, 0, 0),
+UInt256(2097152000000, 0, 0, 0),
+UInt256(419430400000, 0, 0, 0),
+UInt256(838860800000, 0, 0, 0),
+UInt256(1677721600000, 0, 0, 0),
+UInt256(335544320000, 0, 0, 0),
+UInt256(671088640000, 0, 0, 0),
+UInt256(1342177280000, 0, 0, 0),
+]
+
+private let bid_multipliers1_bid32_7: [UInt256] = [
+UInt256(2684354560000, 0, 0, 0),
+UInt256(536870912000, 0, 0, 0),
+UInt256(1073741824000, 0, 0, 0),
+UInt256(2147483648000, 0, 0, 0),
+UInt256(429496729600, 0, 0, 0),
+UInt256(858993459200, 0, 0, 0),
+UInt256(1717986918400, 0, 0, 0),
+UInt256(343597383680, 0, 0, 0),
+UInt256(687194767360, 0, 0, 0),
+UInt256(1374389534720, 0, 0, 0),
+UInt256(2748779069440, 0, 0, 0),
+UInt256(549755813888, 0, 0, 0),
+UInt256(1099511627776, 0, 0, 0),
+UInt256(2199023255552, 0, 0, 0),
+UInt256(439804651110, 7378697629483820646, 7378697629483820646, 7378697629483820647),
+UInt256(879609302220, 14757395258967641292, 14757395258967641292, 14757395258967641293),
+UInt256(1759218604441, 11068046444225730969, 11068046444225730969, 11068046444225730970),
+UInt256(351843720888, 5902958103587056517, 2213609288845146193, 16971004547812787487),
+UInt256(703687441776, 11805916207174113034, 4427218577690292387, 15495265021916023358),
+UInt256(1407374883553, 5165088340638674452, 8854437155380584775, 12543785970122495099),
+UInt256(2814749767106, 10330176681277348904, 17708874310761169551, 6640827866535438582),
+UInt256(562949953421, 5755384150997380104, 3541774862152233910, 5017514388048998040),
+UInt256(1125899906842, 11510768301994760208, 7083549724304467820, 10035028776097996080),
+UInt256(2251799813685, 4574792530279968800, 14167099448608935641, 1623313478486440543),
+UInt256(450359962737, 914958506055993760, 2833419889721787128, 4014011510439198432),
+UInt256(900719925474, 1829917012111987520, 5666839779443574256, 8028023020878396864),
+UInt256(1801439850948, 3659834024223975040, 11333679558887148512, 16056046041756793727),
+UInt256(360287970189, 11800013249070525977, 13334782356003160672, 3211209208351358746),
+UInt256(720575940379, 5153282424431500339, 8222820638296769728, 6422418416702717491),
+UInt256(1441151880758, 10306564848863000678, 16445641276593539456, 12844836833405434982),
+UInt256(2882303761517, 2166385624016449741, 14444538479477527297, 7242929593101318347),
+UInt256(576460752303, 7811974754287110594, 13956954140121236429, 1448585918620263670),
+UInt256(1152921504606, 15623949508574221189, 9467164206532921242, 2897171837240527339),
+UInt256(2305843009213, 12801154943438890763, 487584339356290868, 5794343674481054678),
+UInt256(461168601842, 13628277432913509122, 3786865682613168496, 15916263993863852229),
+UInt256(922337203685, 8809810792117466628, 7573731365226336993, 13385783914018152841),
+UInt256(1844674407370, 17619621584234933256, 15147462730452673987, 8324823754326754065),
+UInt256(368934881474, 3523924316846986651, 6718841360832445120, 12733011195091081783),
+UInt256(737869762948, 7047848633693973302, 13437682721664890241, 7019278316472611950),
+UInt256(1475739525896, 14095697267387946605, 8428621369620228866, 14038556632945223899),
+UInt256(2951479051793, 9744650461066341594, 16857242739240457733, 9630369192180896181),
+UInt256(590295810358, 13016976536438999288, 10750146177331912193, 1926073838436179237),
+UInt256(1180591620717, 7587208999168446961, 3053548280954272770, 3852147676872358473),
+UInt256(2361183241434, 15174417998336893922, 6107096561908545540, 7704295353744716945),
+UInt256(472236648286, 17792278858635020077, 4910768127123619431, 5230207885490853713),
+UInt256(944473296573, 17137813643560488538, 9821536254247238862, 10460415770981707425),
+UInt256(1888946593147, 15828883213411425461, 1196328434784926109, 2474087468253863233),
+UInt256(377789318629, 10544474272166105738, 11307312131182716191, 7873515123134593293),
+UInt256(755578637259, 2642204470622659861, 4167880188655880766, 15747030246269186586),
+UInt256(1511157274518, 5284408941245319722, 8335760377311761533, 13047316418828821556),
+]
+
+private let bid_multipliers1_bid32_8: [UInt256] = [
+UInt256(3022314549036, 10568817882490639444, 16671520754623523067, 7647888763948091496),
+UInt256(604462909807, 5803112391240038212, 3334304150924704613, 8908275382273438946),
+UInt256(1208925819614, 11606224782480076424, 6668608301849409226, 17816550764546877891),
+UInt256(2417851639229, 4765705491250601232, 13337216603698818453, 17186357455384204166),
+UInt256(483570327845, 15710536357217761539, 6356792135481674013, 18194666750044482126),
+UInt256(967140655691, 12974328640725971462, 12713584270963348027, 17942589426379412636),
+UInt256(1934281311383, 7501913207742391309, 6980424468217144439, 17438434779049273656),
+UInt256(386856262276, 12568429085774209231, 8774782523127249534, 7177035770551765055),
+UInt256(773712524553, 6690114097838866846, 17549565046254499068, 14354071541103530109),
+UInt256(1547425049106, 13380228195677733693, 16652386018799446521, 10261399008497508602),
+UInt256(3094850098213, 8313712317645915771, 14858027963889341427, 2076053943285465587),
+UInt256(618970019642, 12730788907754914123, 17729000851745509578, 4104559603399003441),
+UInt256(1237940039285, 7014833741800276631, 17011257629781467540, 8209119206798006882),
+UInt256(2475880078570, 14029667483600553263, 15575771185853383464, 16418238413596013763),
+UInt256(495176015714, 2805933496720110652, 14183200681396407662, 10662345312203023399),
+UInt256(990352031428, 5611866993440221305, 9919657289083263709, 2877946550696495182),
+UInt256(1980704062856, 11223733986880442611, 1392570504456975802, 5755893101392990364),
+UInt256(396140812571, 5934095612117998845, 7657211730375215806, 15908573879246239366),
+UInt256(792281625142, 11868191224235997690, 15314423460750431613, 13370403684782927115),
+UInt256(1584563250285, 5289638374762443765, 12182102847791311611, 8294063295856302614),
+UInt256(3169126500570, 10579276749524887531, 5917461621873071606, 16588126591712605228),
+UInt256(633825300114, 2115855349904977506, 4872841139116524644, 10696322947826341692),
+UInt256(1267650600228, 4231710699809955012, 9745682278233049289, 2945901821943131768),
+UInt256(2535301200456, 8463421399619910025, 1044620482756546962, 5891803643886263536),
+UInt256(507060240091, 5382033094665892328, 3898272911293219715, 12246407173002983677),
+UInt256(1014120480182, 10764066189331784656, 7796545822586439431, 6046070272296415738),
+UInt256(2028240960365, 3081388304954017696, 15593091645172878862, 12092140544592831476),
+UInt256(405648192073, 616277660990803539, 6807967143776486095, 13486474553144297265),
+UInt256(811296384146, 1232555321981607078, 13615934287552972191, 8526205032579042914),
+UInt256(1622592768292, 2465110643963214157, 8785124501396392766, 17052410065158085827),
+UInt256(3245185536584, 4930221287926428314, 17570249002792785533, 15658076056606620037),
+UInt256(649037107316, 15743439516552926955, 14582096244784288076, 6820964026063234331),
+UInt256(1298074214633, 13040134959396302295, 10717448415859024536, 13641928052126468662),
+UInt256(2596148429267, 7633525845083052975, 2988152758008497457, 8837112030543385707),
+UInt256(519229685853, 8905402798500431241, 7976328181085520137, 16524817665076318435),
+UInt256(1038459371706, 17810805597000862482, 15952656362171040275, 14602891256443085253),
+UInt256(2076918743413, 17174867120292173349, 13458568650632528935, 10759038439176618889),
+UInt256(415383748682, 14503019868284165639, 10070411359610326433, 9530505317319144425),
+UInt256(830767497365, 10559295662858779663, 1694078645511101251, 614266560928737233),
+UInt256(1661534994731, 2671847252008007710, 3388157291022202502, 1228533121857474465),
+UInt256(332306998946, 4223718265143511865, 4366980272946350823, 11313753068597225863),
+UInt256(664613997892, 8447436530287023730, 8733960545892701647, 4180762063484900109),
+UInt256(1329227995784, 16894873060574047460, 17467921091785403294, 8361524126969800218),
+UInt256(2658455991569, 15343002047438543305, 16489098109861254972, 16723048253939600436),
+UInt256(531691198313, 17825995668455349953, 18055214880939892287, 7033958465529830411),
+UInt256(1063382396627, 17205247263201148291, 17663685688170232958, 14067916931059660821),
+UInt256(2126764793255, 15963750452692744967, 16880627302630914301, 9689089788409770026),
+UInt256(425352958651, 3192750090538548993, 10754823090010003506, 13005864401907684975),
+UInt256(850705917302, 6385500181077097987, 3062902106310455397, 7564984730105818334),
+UInt256(1701411834604, 12771000362154195974, 6125804212620910794, 15129969460211636667),
+]
+
+private let bid_multipliers1_bid32_9: [UInt256] = [
+UInt256(340282366920, 17311595331398480487, 12293207286749913128, 10404691521526147980),
+UInt256(680564733841, 16176446589087409359, 6139670499790274641, 2362638969342744344),
+UInt256(1361129467683, 13906149104465267102, 12279340999580549282, 4725277938685488687),
+UInt256(2722258935367, 9365554135220982589, 6111937925451546948, 9450555877370977374),
+UInt256(544451787073, 9251808456528017164, 4911736399832219712, 16647506434441836768),
+UInt256(1088903574147, 56872839346482712, 9823472799664439425, 14848268795174121920),
+UInt256(2177807148294, 113745678692965425, 1200201525619327235, 11249793516638692223),
+UInt256(435561429658, 14780144394706234377, 14997435564091506739, 17007353962295379738),
+UInt256(871122859317, 11113544715702917139, 11548127054473461863, 15567963850881207859),
+UInt256(1742245718635, 3780345357696282663, 4649510035237372111, 12689183628052864101),
+UInt256(348449143727, 756069071539256532, 11997948451273205391, 17295231984578214113),
+UInt256(696898287454, 1512138143078513065, 5549152828836859167, 16143719895446876610),
+UInt256(1393796574908, 3024276286157026130, 11098305657673718335, 13840695717184201604),
+UInt256(2787593149816, 6048552572314052261, 3749867241637885055, 9234647360658851592),
+UInt256(557518629963, 4899059329204720775, 8128671077811397657, 9225627101615590965),
+UInt256(1115037259926, 9798118658409441550, 16257342155622795315, 4510129521630314),
+UInt256(2230074519853, 1149493243109331485, 14067940237536039014, 9020259043260628),
+UInt256(446014903970, 11297945092847597266, 13881634491732938772, 7380501681292472772),
+UInt256(892029807941, 4149146111985642917, 9316524909756325928, 14761003362584945544),
+UInt256(1784059615882, 8298292223971285835, 186305745803100241, 11075262651460339472),
+UInt256(356811923176, 9038356074278077813, 7415958778644440694, 13283098974517798864),
+UInt256(713623846352, 18076712148556155626, 14831917557288881389, 8119453875326046112),
+UInt256(1427247692705, 17706680223402759637, 11217091040868211162, 16238907750652092224),
+UInt256(2854495385411, 16966616373095967659, 3987438008026870709, 14031071427594632831),
+UInt256(570899077082, 7082672089361103855, 797487601605374141, 17563609544486567859),
+UInt256(1141798154164, 14165344178722207710, 1594975203210748283, 16680475015263584102),
+UInt256(2283596308329, 9883944283734863804, 3189950406421496567, 14914205956817616588),
+UInt256(456719261665, 16734184115714614053, 11706036525510030283, 2982841191363523318),
+UInt256(913438523331, 15021624157719676491, 4965328977310508950, 5965682382727046636),
+UInt256(1826877046663, 11596504241729801366, 9930657954621017900, 11931364765454093271),
+UInt256(365375409332, 13387347292571691242, 16743526849891844872, 17143668212058459947),
+UInt256(730750818665, 8327950511433830869, 15040309626074138129, 15840592350407368278),
+UInt256(1461501637330, 16655901022867661739, 11633875178438724643, 13234440627105184940),
+UInt256(2923003274661, 14865057972025771863, 4821006283167897671, 8022137180500818264),
+UInt256(584600654932, 6662360409147064695, 15721596515601220827, 1604427436100163653),
+UInt256(1169201309864, 13324720818294129391, 12996448957492890038, 3208854872200327306),
+UInt256(2338402619729, 8202697562878707167, 7546153841276228460, 6417709744400654611),
+UInt256(467680523945, 16397934771543382726, 5198579582997156015, 4972890763622041246),
+UInt256(935361047891, 14349125469377213836, 10397159165994312030, 9945781527244082491),
+UInt256(1870722095783, 10251506865044876057, 2347574258279072445, 1444818980778613366),
+UInt256(374144419156, 13118347817234706181, 469514851655814489, 288963796155722674),
+UInt256(748288838313, 7789951560759860746, 939029703311628978, 577927592311445347),
+UInt256(1496577676626, 15579903121519721492, 1878059406623257956, 1155855184622890693),
+UInt256(2993155353253, 12713062169329891368, 3756118813246515912, 2311710369245781385),
+UInt256(598631070650, 13610658878091709243, 4440572577391213505, 11530388518074887247),
+UInt256(1197262141301, 8774573682473866870, 8881145154782427011, 4614032962440222877),
+UInt256(2394524282602, 17549147364947733740, 17762290309564854022, 9228065924880445754),
+UInt256(478904856520, 10888527102473367394, 10931155691396791450, 16603008443943730444),
+UInt256(957809713041, 3330310131237183173, 3415567309084031285, 14759272814177909272),
+UInt256(1915619426082, 6660620262474366346, 6831134618168062571, 11071801554646266927),
+]
+
+private let bid_multipliers1_bid32_10: [UInt256] = [
+UInt256(383123885216, 8710821681978693915, 12434273367859343483, 16971755569896894679),
+UInt256(766247770432, 17421643363957387831, 6421802662009135351, 15496767066084237741),
+UInt256(1532495540865, 16396542654205224046, 12843605324018270703, 12546790058458923865),
+UInt256(3064991081731, 14346341234700896477, 7240466574326989791, 6646836043208296113),
+UInt256(612998216346, 6558617061682089618, 12516139759091128927, 16086762467609300516),
+UInt256(1225996432692, 13117234123364179237, 6585535444472706239, 13726780861509049415),
+UInt256(2451992865385, 7787724173018806858, 13171070888945412479, 9006817649308547214),
+UInt256(490398573077, 1557544834603761371, 13702260622014813465, 9180061159345530090),
+UInt256(980797146154, 3115089669207522743, 8957777170320075314, 18360122318691060179),
+UInt256(1961594292308, 6230179338415045486, 17915554340640150629, 18273500563672568741),
+UInt256(392318858461, 12314082311908740066, 18340506127095671418, 14722746556960244718),
+UInt256(784637716923, 6181420550107928517, 18234268180481791221, 10998749040210937820),
+UInt256(1569275433846, 12362841100215857035, 18021792287254030827, 3550754006712324023),
+UInt256(3138550867693, 6278938126722162455, 17596840500798510038, 7101508013424648045),
+UInt256(627710173538, 12323834069570163460, 14587414544385432977, 5109650417426839933),
+UInt256(1255420347077, 6200924065430775305, 10728085015061314338, 10219300834853679865),
+UInt256(2510840694154, 12401848130861550611, 3009425956413077061, 1991857595997808113),
+UInt256(502168138830, 17237764885139951415, 601885191282615412, 4087720333941471946),
+UInt256(1004336277661, 16028785696570351214, 1203770382565230824, 8175440667882943892),
+UInt256(2008672555323, 13610827319431150812, 2407540765130461648, 16350881335765887783),
+UInt256(401734511064, 13790211908111961132, 481508153026092329, 14338222711378908527),
+UInt256(803469022129, 9133679742514370648, 963016306052184659, 10229701349048265437),
+UInt256(1606938044258, 18267359485028741296, 1926032612104369319, 2012658624386979257),
+UInt256(3213876088517, 18087974896347930976, 3852065224208738638, 4025317248773958514),
+UInt256(642775217703, 10996292608753406841, 11838459489067478697, 4494412264496702026),
+UInt256(1285550435407, 3545841143797262067, 5230174904425405778, 8988824528993404052),
+UInt256(2571100870814, 7091682287594524134, 10460349808850811556, 17977649057986808104),
+UInt256(514220174162, 16175731716486546119, 13160116405995893280, 18352925070565002914),
+UInt256(1028440348325, 13904719359263540623, 7873488738282234945, 18259106067420454212),
+UInt256(2056880696651, 9362694644817529630, 15746977476564469891, 18071468061131356807),
+UInt256(411376139330, 5561887743705416249, 6838744310054804301, 10992991241710092008),
+UInt256(822752278660, 11123775487410832498, 13677488620109608603, 3539238409710632400),
+UInt256(1645504557321, 3800806901112113381, 8908233166509665590, 7078476819421264799),
+UInt256(329100911464, 4449510194964332999, 9160344262785753764, 8794392993368073607),
+UInt256(658201822928, 8899020389928665998, 18320688525571507528, 17588785986736147213),
+UInt256(1316403645856, 17798040779857331997, 18194632977433463441, 16730827899762742809),
+UInt256(2632807291713, 17149337486005112379, 17942521881157375267, 15014911725815934001),
+UInt256(526561458342, 14497913941426753445, 10967202005715295699, 17760377604130828093),
+UInt256(1053122916685, 10549083809143955275, 3487659937721039783, 17074011134552104570),
+UInt256(2106245833371, 2651423544578358934, 6975319875442079567, 15701278195394657524),
+UInt256(421249166674, 4219633523657582110, 1395063975088415913, 10518953268562752152),
+UInt256(842498333348, 8439267047315164220, 2790127950176831827, 2591162463415952687),
+UInt256(1684996666696, 16878534094630328440, 5580255900353663654, 5182324926831905373),
+UInt256(336999333339, 7065055633667976011, 4805399994812643054, 1036464985366381075),
+UInt256(673998666678, 14130111267335952022, 9610799989625286108, 2072929970732762150),
+UInt256(1347997333357, 9813478460962352429, 774855905541020600, 4145859941465524299),
+UInt256(2695994666715, 1180212848215153242, 1549711811082041200, 8291719882931048597),
+UInt256(539198933343, 236042569643030648, 7688639991700228886, 9037041606070030366),
+UInt256(1078397866686, 472085139286061296, 15377279983400457772, 18074083212140060732),
+UInt256(2156795733372, 944170278572122593, 12307815893091363929, 17701422350570569847),
+]
+
+private let bid_multipliers1_bid32_11: [UInt256] = [
+UInt256(431359146674, 7567531685198245165, 2461563178618272785, 18297679729081755263),
+UInt256(862718293348, 15135063370396490330, 4923126357236545571, 18148615384453958909),
+UInt256(1725436586697, 11823382667083429044, 9846252714473091143, 17850486695198366201),
+UInt256(345087317339, 9743374162900506455, 5658599357636528551, 18327492598007314533),
+UInt256(690174634679, 1040004252091461294, 11317198715273057103, 18208241122305077450),
+UInt256(1380349269358, 2080008504182922589, 4187653356836562591, 17969738170900603284),
+UInt256(2760698538716, 4160017008365845178, 8375306713673125183, 17492732268091654952),
+UInt256(552139707743, 4521352216415079358, 16432456601702266329, 10877244083102151637),
+UInt256(1104279415486, 9042704432830158717, 14418169129694981043, 3307744092494751658),
+UInt256(2208558830972, 18085408865660317435, 10389594185680410470, 6615488184989503315),
+UInt256(441711766194, 10995779402615884133, 9456616466619902740, 8701795266481721310),
+UInt256(883423532389, 3544814731522216651, 466488859530253864, 17403590532963442619),
+UInt256(1766847064778, 7089629463044433302, 932977719060507729, 16360436992217333622),
+UInt256(353369412955, 12485972336834617630, 186595543812101545, 18029482657411108018),
+UInt256(706738825911, 6525200599959683644, 373191087624203091, 17612221241112664419),
+UInt256(1413477651822, 13050401199919367288, 746382175248406183, 16777698408515777221),
+UInt256(2826955303645, 7654058326129182960, 1492764350496812367, 15108652743322002825),
+UInt256(565391060729, 1530811665225836592, 298552870099362473, 10400428178148221212),
+UInt256(1130782121458, 3061623330451673184, 597105740198724947, 2354112282586890807),
+UInt256(2261564242916, 6123246660903346368, 1194211480397449894, 4708224565173781614),
+UInt256(452312848583, 4913998146922579596, 14996237555047131271, 12009691357260487293),
+UInt256(904625697166, 9827996293845159193, 11545731036384710927, 5572638640811422969),
+UInt256(1809251394333, 1209248513980766771, 4644717999059870238, 11145277281622845937),
+UInt256(361850278866, 11309896147021884323, 15686338858779615340, 9607753085808389834),
+UInt256(723700557733, 4173048220334217031, 12925933643849679065, 768762097907228052),
+UInt256(1447401115466, 8346096440668434063, 7405123213989806514, 1537524195814456104),
+UInt256(2894802230932, 16692192881336868126, 14810246427979613028, 3075048391628912207),
+UInt256(578960446186, 10717136205751194271, 14030095729821653575, 4304358493067692765),
+UInt256(1157920892373, 2987528337792836927, 9613447385933755534, 8608716986135385529),
+UInt256(2315841784746, 5975056675585673855, 780150698157959452, 17217433972270771058),
+UInt256(463168356949, 4884360149859045094, 3845378954373502213, 14511533238679885182),
+UInt256(926336713898, 9768720299718090188, 7690757908747004427, 10576322403650218747),
+UInt256(1852673427797, 1090696525726628760, 15381515817494008855, 2705900733590885877),
+UInt256(370534685559, 7596836934629146398, 10455000792982622417, 7919877776201997822),
+UInt256(741069371118, 15193673869258292797, 2463257512255693218, 15839755552403995644),
+UInt256(1482138742237, 11940603664807033978, 4926515024511386437, 13232767031098439671),
+UInt256(2964277484475, 5434463255904516340, 9853030049022772875, 8018789988487327726),
+UInt256(592855496895, 1086892651180903268, 1970606009804554575, 1603757997697465546),
+UInt256(1185710993790, 2173785302361806536, 3941212019609109150, 3207515995394931091),
+UInt256(2371421987580, 4347570604723613072, 7882424039218218300, 6415031990789862181),
+UInt256(474284397516, 869514120944722614, 8955182437327464306, 8661704027641793083),
+UInt256(948568795032, 1739028241889445228, 17910364874654928612, 17323408055283586166),
+UInt256(1897137590064, 3478056483778890457, 17373985675600305609, 16200072036857620715),
+UInt256(379427518012, 15453006555723419384, 7164145949861971445, 3240014407371524143),
+UInt256(758855036025, 12459269037737287152, 14328291899723942890, 6480028814743048286),
+UInt256(1517710072051, 6471794001765022689, 10209839725738334164, 12960057629486096572),
+UInt256(3035420144102, 12943588003530045379, 1972935377767116713, 7473371185262641527),
+UInt256(607084028820, 9967415230189829722, 4083935890295333665, 16252069496020169599),
+UInt256(1214168057641, 1488086386670107828, 8167871780590667331, 14057394918330787581),
+UInt256(2428336115282, 2976172773340215656, 16335743561181334663, 9668045762952023545),
+]
+
+private let bid_multipliers1_bid32_12: [UInt256] = [
+UInt256(485667223056, 7973932184151863777, 14335195156461997902, 5622957967332315033),
+UInt256(971334446112, 15947864368303727555, 10223646239214444188, 11245915934664630065),
+UInt256(1942668892225, 13448984662897903495, 2000548404719336761, 4045087795619708513),
+UInt256(388533778445, 2689796932579580699, 400109680943867352, 4498366373865852026),
+UInt256(777067556890, 5379593865159161398, 800219361887734704, 8996732747731704052),
+UInt256(1554135113780, 10759187730318322796, 1600438723775469408, 17993465495463408103),
+UInt256(3108270227561, 3071631386927093976, 3200877447550938817, 17540186917217264590),
+UInt256(621654045512, 4303675092127329118, 8018873118994008409, 18265432642411094211),
+UInt256(1243308091024, 8607350184254658236, 16037746237988016819, 18084121211112636806),
+UInt256(2486616182048, 17214700368509316473, 13628748402266482023, 17721498348515721995),
+UInt256(497323236409, 14510986517927594264, 6415098495195206727, 18301694928670785692),
+UInt256(994646472819, 10575228962145636912, 12830196990390413455, 18156645783632019768),
+UInt256(1989292945639, 2703713850581722209, 7213649907071275295, 17866547493554487919),
+UInt256(397858589127, 15298138029083985734, 12510776425639986028, 14641355942936628554),
+UInt256(795717178255, 12149531984458419853, 6574808777570420441, 10835967812163705491),
+UInt256(1591434356511, 5852319895207288090, 13149617555140840883, 3225191550617859366),
+UInt256(3182868713022, 11704639790414576181, 7852491036572130150, 6450383101235718732),
+UInt256(636573742604, 9719625587566735882, 12638544651540156999, 12358123064472874716),
+UInt256(1273147485209, 992507101423920149, 6830345229370762383, 6269502055236197816),
+UInt256(2546294970418, 1985014202847840298, 13660690458741524766, 12539004110472395632),
+UInt256(509258994083, 11465049284795299029, 6421486906490215276, 9886498451578299773),
+UInt256(1018517988167, 4483354495881046442, 12842973812980430553, 1326252829447047930),
+UInt256(2037035976334, 8966708991762092885, 7239203552251309490, 2652505658894095859),
+UInt256(407407195266, 16550737057320059869, 16205235969417903190, 15287896390746460465),
+UInt256(814814390533, 14654730040930568123, 13963727865126254765, 12129048707783369314),
+UInt256(1629628781067, 10862716008151584631, 9480711656542957915, 5811353341857187011),
+UInt256(3259257562135, 3278687942593617647, 514679239376364214, 11622706683714374021),
+UInt256(651851512427, 655737588518723529, 7481633477359093489, 6013890151484785128),
+UInt256(1303703024854, 1311475177037447058, 14963266954718186978, 12027780302969570255),
+UInt256(2607406049708, 2622950354074894117, 11479789835726822341, 5608816532229588893),
+UInt256(521481209941, 11592636515040709793, 2295957967145364468, 4811112121187828102),
+UInt256(1042962419883, 4738528956371867970, 4591915934290728936, 9622224242375656204),
+UInt256(2085924839766, 9477057912743735940, 9183831868581457873, 797704411041760792),
+UInt256(417184967953, 5584760397290657511, 5526115188458201897, 14916936141175993452),
+UInt256(834369935906, 11169520794581315022, 11052230376916403795, 11387128208642435287),
+UInt256(1668739871813, 3892297515453078429, 3657716680123255975, 4327512343575318957),
+UInt256(333747974362, 11846505947316346655, 8110240965508471841, 8244200098198884438),
+UInt256(667495948725, 5246267820923141694, 16220481931016943682, 16488400196397768876),
+UInt256(1334991897450, 10492535641846283389, 13994219788324335749, 14530056319085986135),
+UInt256(2669983794901, 2538327209983015163, 9541695502939119883, 10613368564462420654),
+UInt256(533996758980, 4197014256738513355, 16665734359555465269, 9501371342376304778),
+UInt256(1067993517960, 8394028513477026711, 14884724645401378923, 555998611043057939),
+UInt256(2135987035920, 16788057026954053423, 11322705217093206230, 1111997222086115877),
+UInt256(427197407184, 3357611405390810684, 13332587487644372215, 11290445888642954145),
+UInt256(854394814368, 6715222810781621369, 8218430901579192815, 4134147703576356674),
+UInt256(1708789628736, 13430445621563242738, 16436861803158385630, 8268295407152713348),
+UInt256(341757925747, 6375437939054558870, 18044767619599318418, 16411054340398183963),
+UInt256(683515851494, 12750875878109117741, 17642791165489085221, 14375364607086816309),
+UInt256(1367031702989, 7055007682508683867, 16838838257268618827, 10303985140464081001),
+UInt256(2734063405978, 14110015365017367735, 15230932440827686039, 2161226207218610386),
+]
+
+private let bid_multipliers1_bid32_13: [UInt256] = [
+UInt256(546812681195, 13890049517229204516, 14114232932391268177, 7810942870927542724),
+UInt256(1093625362391, 9333354960748857417, 9781721791072984738, 15621885741855085448),
+UInt256(2187250724783, 219965847788163219, 1116699508436417861, 12797027410000619279),
+UInt256(437450144956, 11112039613783363613, 7602037531171104218, 13627451926225854826),
+UInt256(874900289913, 3777335153857175610, 15204075062342208437, 8808159778742158035),
+UInt256(1749800579826, 7554670307714351221, 11961406050974865258, 17616319557484316070),
+UInt256(349960115965, 5200282876284780567, 9770978839678793698, 3523263911496863214),
+UInt256(699920231930, 10400565752569561135, 1095213605648035780, 7046527822993726428),
+UInt256(1399840463861, 2354387431429570654, 2190427211296071560, 14093055645987452856),
+UInt256(2799680927722, 4708774862859141308, 4380854422592143121, 9739367218265354095),
+UInt256(559936185544, 8320452602055648908, 876170884518428624, 5637222258394981143),
+UInt256(1119872371088, 16640905204111297816, 1752341769036857248, 11274444516789962285),
+]
+
+// MARK: - bid_multipliers2_bid32
+
+extension BinaryFloatingPointTables {
+ internal static func bid_multipliers2_bid32(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_multipliers2_bid32_0[r]
+ case 1: return bid_multipliers2_bid32_1[r]
+ case 2: return bid_multipliers2_bid32_2[r]
+ case 3: return bid_multipliers2_bid32_3[r]
+ case 4: return bid_multipliers2_bid32_4[r]
+ case 5: return bid_multipliers2_bid32_5[r]
+ case 6: return bid_multipliers2_bid32_6[r]
+ case 7: return bid_multipliers2_bid32_7[r]
+ case 8: return bid_multipliers2_bid32_8[r]
+ case 9: return bid_multipliers2_bid32_9[r]
+ case 10: return bid_multipliers2_bid32_10[r]
+ case 11: return bid_multipliers2_bid32_11[r]
+ case 12: return bid_multipliers2_bid32_12[r]
+ case 13: return bid_multipliers2_bid32_13[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_multipliers2_bid32_0: [UInt256] = [
+UInt256(11704, 3521238664523520994, 14694123111064470433, 7156996302188685206),
+UInt256(23408, 7042477329047041989, 10941502148419389250, 14313992604377370412),
+UInt256(46816, 14084954658094083979, 3436260223129226885, 10181241135045189207),
+UInt256(93633, 9723165242478616342, 6872520446258453771, 1915738196380826798),
+UInt256(187267, 999586411247681068, 13745040892516907542, 3831476392761653595),
+UInt256(374534, 1999172822495362137, 9043337711324263468, 7662952785523307189),
+UInt256(749068, 3998345644990724274, 18086675422648526936, 15325905571046614378),
+UInt256(1498136, 7996691289981448549, 17726606771587502257, 12205067068383677139),
+UInt256(2996272, 15993382579962897099, 17006469469465452899, 5963390063057802661),
+UInt256(5992545, 13540021086216242583, 15566194865221354182, 11926780126115605321),
+UInt256(11985091, 8633298098722933551, 12685645656733156749, 5406816178521659026),
+UInt256(23970182, 17266596197445867103, 6924547239756761882, 10813632357043318052),
+UInt256(47940365, 16086448321182182590, 13849094479513523765, 3180520640377084488),
+UInt256(95880731, 13726152568654813565, 9251444885317495914, 6361041280754168975),
+UInt256(191761463, 9005561063600075515, 56145696925440212, 12722082561508337950),
+UInt256(383522926, 18011122127200151030, 112291393850880425, 6997421049307124283),
+UInt256(767045853, 17575500180690750444, 224582787701760850, 13994842098614248565),
+UInt256(1534091707, 16704256287671949272, 449165575403521701, 9542940123518945513),
+UInt256(3068183415, 14961768501634346928, 898331150807043403, 639136173328339410),
+UInt256(6136366831, 11476792929559142240, 1796662301614086806, 1278272346656678820),
+UInt256(12272733663, 4506841785408732864, 3593324603228173612, 2556544693313357639),
+UInt256(24545467326, 9013683570817465728, 7186649206456347224, 5113089386626715277),
+UInt256(49090934652, 18027367141634931456, 14373298412912694448, 10226178773253430554),
+UInt256(98181869305, 17607990209560311297, 10299852752115837281, 2005613472797309491),
+UInt256(196363738611, 16769236345411070979, 2152961430522122946, 4011226945594618982),
+UInt256(39272747722, 7043196083824124519, 430592286104424589, 4491594203860834120),
+UInt256(78545495444, 14086392167648249038, 861184572208849178, 8983188407721668240),
+UInt256(157090990889, 9726040261586946460, 1722369144417698356, 17966376815443336479),
+UInt256(314181981779, 1005336449464341304, 3444738288835396713, 17486009557177121341),
+UInt256(62836396355, 14958462548860509553, 11756994101992810312, 7186550726177334592),
+UInt256(125672792711, 11470181024011467491, 5067244130276069008, 14373101452354669183),
+UInt256(251345585423, 4493617974313383366, 10134488260552138017, 10299458830999786749),
+UInt256(50269117084, 11966770039088407642, 16784292911078068896, 5749240580941867673),
+UInt256(100538234169, 5486796004467263669, 15121841748446586176, 11498481161883735346),
+UInt256(201076468338, 10973592008934527339, 11796939423183620737, 4550218250057919076),
+UInt256(40215293667, 13262764846012636437, 9738085514120544793, 15667438908979225108),
+UInt256(80430587335, 8078785618315721259, 1029426954531537971, 12888133744248898600),
+UInt256(160861174670, 16157571236631442518, 2058853909063075943, 7329523414788245584),
+UInt256(321722349341, 13868398399553333420, 4117707818126151886, 14659046829576491168),
+UInt256(64344469868, 6463028494652577007, 4512890378367140700, 10310506995399118880),
+UInt256(128688939736, 12926056989305154014, 9025780756734281401, 2174269917088686144),
+UInt256(257377879473, 7405369904900756412, 18051561513468562802, 4348539834177372288),
+UInt256(51475575894, 12549120425205882252, 3610312302693712560, 8248405596319295104),
+UInt256(102951151789, 6651496776702212888, 7220624605387425120, 16496811192638590208),
+UInt256(205902303578, 13302993553404425776, 14441249210774850241, 14546878311567628800),
+UInt256(41180460715, 13728645154906616124, 17645645101122611341, 2909375662313525760),
+UInt256(82360921431, 9010546236103680633, 16844546128535671066, 5818751324627051520),
+UInt256(164721842862, 18021092472207361267, 15242348183361790516, 11637502649254103040),
+UInt256(32944368572, 10982916123925292899, 17805864895639999396, 2327500529850820608),
+UInt256(65888737145, 3519088174141034183, 17164985717570447176, 4655001059701641216),
+]
+
+private let bid_multipliers2_bid32_1: [UInt256] = [
+UInt256(131777474290, 7038176348282068367, 15883227361431342736, 9310002119403282432),
+UInt256(263554948580, 14076352696564136735, 13319710649153133857, 173260165097013248),
+UInt256(52710989716, 2815270539312827347, 2663942129830626771, 7413349662503223296),
+UInt256(105421979432, 5630541078625654694, 5327884259661253542, 14826699325006446592),
+UInt256(210843958864, 11261082157251309388, 10655768519322507085, 11206654576303341568),
+UInt256(42168791772, 17009611690417903170, 9509851333348322063, 9620028544744488960),
+UInt256(84337583545, 15572479307126254725, 572958592987092511, 793313015779426304),
+UInt256(168675167091, 12698214540542957834, 1145917185974185022, 1586626031558852608),
+UInt256(33735033418, 6228991722850501890, 229183437194837004, 7696022835795591168),
+UInt256(67470066836, 12457983445701003780, 458366874389674008, 15392045671591182336),
+UInt256(134940133673, 6469222817692455944, 916733748779348017, 12337347269472813056),
+UInt256(269880267346, 12938445635384911888, 1833467497558696035, 6227950465236074496),
+UInt256(53976053469, 6277037941818892700, 15124088758479380499, 16002985352014856192),
+UInt256(107952106938, 12554075883637785401, 11801433443249209383, 13559226630320160768),
+UInt256(215904213877, 6661407693566019187, 5156122812788867151, 8671709186930769920),
+UInt256(43180842775, 8710979168197024483, 15788619821525414723, 1734341837386153984),
+UInt256(86361685550, 17421958336394048967, 13130495569341277830, 3468683674772307968),
+UInt256(172723371101, 16397172599078546319, 7814247064973004044, 6937367349544615936),
+UInt256(34544674220, 6968783334557619587, 1562849412994600808, 16144868728876564480),
+UInt256(69089348440, 13937566669115239174, 3125698825989201617, 13842993384043577344),
+UInt256(138178696881, 9428389264520926732, 6251397651978403235, 9239242694377603072),
+UInt256(276357393763, 410034455332301848, 12502795303956806471, 31741315045654528),
+UInt256(55271478752, 11150053335292191339, 6189907875533271617, 7385045892492951552),
+UInt256(110542957505, 3853362596874831062, 12379815751066543234, 14770091784985903104),
+UInt256(221085915010, 7706725193749662125, 6312887428423534853, 11093439496262254592),
+UInt256(44217183002, 1541345038749932425, 1262577485684706970, 13286734343478181888),
+UInt256(88434366004, 3082690077499864850, 2525154971369413941, 8126724613246812160),
+UInt256(176868732008, 6165380154999729700, 5050309942738827882, 16253449226493624320),
+UInt256(35373746401, 12301122475225676909, 12078108432773496546, 3250689845298724864),
+UInt256(70747492803, 6155500876741802203, 5709472791837441476, 6501379690597449728),
+UInt256(141494985606, 12311001753483604406, 11418945583674882952, 13002759381194899456),
+UInt256(282989971213, 6175259433257657197, 4391147093640214289, 7558774688680247296),
+UInt256(56597994242, 12303098330877262409, 878229418728042857, 16269150196703690752),
+UInt256(113195988485, 6159452588044973202, 1756458837456085715, 14091556319697829888),
+UInt256(226391976970, 12318905176089946404, 3512917674912171431, 9736368565686108160),
+UInt256(45278395394, 2463781035217989280, 15459978793950075579, 1947273713137221632),
+UInt256(90556790788, 4927562070435978561, 12473213514190599542, 3894547426274443264),
+UInt256(181113581576, 9855124140871957123, 6499682954671647468, 7789094852548886528),
+UInt256(36222716315, 5660373642916301747, 16057331849901970786, 8936516599993597952),
+UInt256(72445432630, 11320747285832603495, 13667919626094389956, 17873033199987195904),
+UInt256(144890865261, 4194750497955655375, 8889095178479228297, 17299322326264840192),
+UInt256(289781730522, 8389500995911310750, 17778190356958456595, 16151900578820128768),
+UInt256(57956346104, 9056597828666082796, 10934335700875511965, 10609077745247846400),
+UInt256(115912692208, 18113195657332165593, 3421927328041472315, 2771411416786141184),
+UInt256(231825384417, 17779647240954779570, 6843854656082944630, 5542822833572282368),
+UInt256(46365076883, 10934627077674776560, 8747468560700409572, 8487262196198277120),
+UInt256(92730153767, 3422510081640001504, 17494937121400819144, 16974524392396554240),
+UInt256(185460307534, 6845020163280003009, 16543130169092086673, 15502304711083556864),
+UInt256(37092061506, 16126399291623641894, 14376672478044148304, 6789809756958621696),
+UInt256(74184123013, 13806054509537732173, 10306600882378744992, 13579619513917243392),
+]
+
+private let bid_multipliers2_bid32_2: [UInt256] = [
+UInt256(148368246027, 9165364945365912731, 2166457691047938369, 8712494954124935168),
+UInt256(296736492054, 18330729890731825462, 4332915382095876738, 17424989908249870336),
+UInt256(59347298410, 18423541237114006385, 4555931891161085670, 18242393240617615360),
+UInt256(118694596821, 18400338400518461154, 9111863782322171341, 18038042407525679104),
+UInt256(237389193643, 18353932727327370692, 18223727564644342683, 17629340741341806592),
+UInt256(47477838728, 14738832989691205108, 3644745512928868536, 14593914592494092288),
+UInt256(94955677457, 11030921905672858600, 7289491025857737073, 10741085111278632960),
+UInt256(189911354915, 3615099737636165584, 14578982051715474147, 3035426148847714304),
+UInt256(37982270983, 723019947527233116, 17673191669310736122, 4296434044511453184),
+UInt256(75964541966, 1446039895054466233, 16899639264911920628, 8592868089022906368),
+UInt256(151929083932, 2892079790108932467, 15352534456114289640, 17185736178045812736),
+UInt256(303858167864, 5784159580217864935, 12258324838519027665, 15924728282382073856),
+UInt256(60771633572, 15914227175011214279, 17209060226671446825, 17942340915444056064),
+UInt256(121543267145, 13381710276312876943, 15971376379633342035, 17437937757178560512),
+UInt256(243086534291, 8316676478916202271, 13496008685557132455, 16429131440647569408),
+UInt256(48617306858, 5352684110525150777, 10077899366595247137, 10664523917613334528),
+UInt256(97234613716, 10705368221050301555, 1709054659480942659, 2882303761517117440),
+UInt256(194469227433, 2963992368391051494, 3418109318961885318, 5764607523034234880),
+UInt256(38893845486, 11660844917903941268, 8062319493276197710, 1152921504606846976),
+UInt256(77787690973, 4874945762098330920, 16124638986552395420, 2305843009213693952),
+UInt256(155575381946, 9749891524196661841, 13802533899395239224, 4611686018427387904),
+UInt256(311150763893, 1053038974683772067, 9158323725080926832, 9223372036854775808),
+UInt256(62230152778, 11278654239162485383, 1831664745016185366, 9223372036854775808),
+UInt256(124460305557, 4110564404615419150, 3663329490032370733, 0),
+UInt256(248920611114, 8221128809230838300, 7326658980064741466, 0),
+UInt256(49784122222, 16401621020813808952, 16222727054980589586, 0),
+UInt256(99568244445, 14356497967918066289, 13998710036251627556, 0),
+UInt256(199136488891, 10266251862126580963, 9550675998793703496, 0),
+UInt256(39827297778, 5742599187167226515, 16667530458726381992, 0),
+UInt256(79654595556, 11485198374334453031, 14888316843743212368, 0),
+UInt256(159309191113, 4523652674959354447, 11329889613776873120, 0),
+UInt256(318618382226, 9047305349918708895, 4213035153844194624, 0),
+UInt256(63723676445, 5498809884725652102, 4531955845510749248, 0),
+UInt256(127447352890, 10997619769451304204, 9063911691021498496, 0),
+UInt256(254894705781, 3548495465193056792, 18127823382042996992, 0),
+UInt256(50978941156, 4399047907780521681, 14693611120634330368, 0),
+UInt256(101957882312, 8798095815561043363, 10940478167559109120, 0),
+UInt256(203915764624, 17596191631122086727, 3434212261408666624, 0),
+UInt256(40783152924, 18276633585192058638, 4376191267023643648, 0),
+UInt256(81566305849, 18106523096674565660, 8752382534047287296, 0),
+UInt256(163132611699, 17766302119639579704, 17504765068094574592, 0),
+UInt256(326265223399, 17085860165569607793, 16562786062479597568, 0),
+UInt256(65253044679, 18174567292081562851, 10691254841979740160, 0),
+UInt256(130506089359, 17902390510453574087, 2935765610249928704, 0),
+UInt256(261012178719, 17358036947197596558, 5871531220499857408, 0),
+UInt256(52202435743, 18229002648407160604, 8553003873583792128, 0),
+UInt256(104404871487, 18011261223104769592, 17106007747167584256, 0),
+UInt256(208809742975, 17575778372499987569, 15765271420625616896, 0),
+UInt256(41761948595, 3515155674499997513, 17910449543092764672, 0),
+UInt256(83523897190, 7030311348999995027, 17374155012475977728, 0),
+]
+
+private let bid_multipliers2_bid32_3: [UInt256] = [
+UInt256(167047794380, 14060622697999990055, 16301565951242403840, 0),
+UInt256(33409558876, 2812124539599998011, 3260313190248480768, 0),
+UInt256(66819117752, 5624249079199996022, 6520626380496961536, 0),
+UInt256(133638235504, 11248498158399992044, 13041252760993923072, 0),
+UInt256(267276471009, 4050252243090432473, 7635761448278294528, 0),
+UInt256(53455294201, 15567445707585727787, 8905849919139479552, 0),
+UInt256(106910588403, 12688147341461903958, 17811699838278959104, 0),
+UInt256(213821176807, 6929550609214256301, 17176655602848366592, 0),
+UInt256(42764235361, 8764607751326671906, 14503377564795404288, 0),
+UInt256(85528470722, 17529215502653343813, 10560011055881256960, 0),
+UInt256(171056941445, 16611686931597136011, 2673278038052962304, 0),
+UInt256(34211388289, 3322337386319427202, 4224004422352502784, 0),
+UInt256(68422776578, 6644674772638854404, 8448008844705005568, 0),
+UInt256(136845553156, 13289349545277708808, 16896017689410011136, 0),
+UInt256(273691106313, 8131955016845866001, 15345291305110470656, 0),
+UInt256(54738221262, 12694437447594904169, 17826453519989735424, 0),
+UInt256(109476442525, 6942130821480256723, 17206162966269919232, 0),
+UInt256(218952885050, 13884261642960513447, 15965581858830286848, 0),
+UInt256(43790577010, 2776852328592102689, 10571814001249878016, 0),
+UInt256(87581154020, 5553704657184205379, 2696883928790204416, 0),
+UInt256(175162308040, 11107409314368410758, 5393767857580408832, 0),
+UInt256(35032461608, 2221481862873682151, 12146800015741812736, 0),
+UInt256(70064923216, 4442963725747364303, 5846855957774073856, 0),
+UInt256(140129846432, 8885927451494728606, 11693711915548147712, 0),
+UInt256(280259692864, 17771854902989457213, 4940679757386743808, 0),
+UInt256(56051938572, 18311766239565532735, 8366833580961169408, 0),
+UInt256(112103877145, 18176788405421513854, 16733667161922338816, 0),
+UInt256(224207754291, 17906832737133476093, 15020590250135126016, 0),
+UInt256(44841550858, 7270715362168605541, 17761513308994666496, 0),
+UInt256(89683101716, 14541430724337211083, 17076282544279781376, 0),
+UInt256(179366203433, 10636117374964870551, 15705821014850011136, 0),
+UInt256(35873240686, 13195269919218705079, 17898559461937643520, 0),
+UInt256(71746481373, 7943795764727858543, 17350374850165735424, 0),
+UInt256(143492962746, 15887591529455717087, 16254005626621919232, 0),
+UInt256(286985925493, 13328438985201882559, 14061267179534286848, 0),
+UInt256(57397185098, 13733734241266107481, 10190951065390678016, 0),
+UInt256(114794370197, 9020724408822663347, 1935158057071804416, 0),
+UInt256(229588740394, 18041448817645326694, 3870316114143608832, 0),
+UInt256(45917748078, 18365685022496706631, 11842109667054452736, 0),
+UInt256(91835496157, 18284625971283861647, 5237475260399353856, 0),
+UInt256(183670992315, 18122507868858171678, 10474950520798707712, 0),
+UInt256(36734198463, 3624501573771634335, 13163036548385472512, 0),
+UInt256(73468396926, 7249003147543268671, 7879329023061393408, 0),
+UInt256(146936793852, 14498006295086537342, 15758658046122786816, 0),
+UInt256(293873587705, 10549268516463523069, 13070572018536022016, 0),
+UInt256(58774717541, 2109853703292704613, 17371509662674845696, 0),
+UInt256(117549435082, 4219707406585409227, 16296275251640139776, 0),
+UInt256(235098870164, 8439414813170818455, 14145806429570727936, 0),
+UInt256(47019774032, 16445278221601804983, 17586556544881786880, 0),
+UInt256(94039548065, 14443812369494058351, 16726369016054022144, 0),
+]
+
+private let bid_multipliers2_bid32_4: [UInt256] = [
+UInt256(188079096131, 10440880665278565087, 15005993958398492672, 0),
+UInt256(37615819226, 5777524947797623340, 14069245235905429504, 0),
+UInt256(75231638452, 11555049895595246681, 9691746398101307392, 0),
+UInt256(150463276905, 4663355717480941747, 936748722493063168, 0),
+UInt256(300926553810, 9326711434961883494, 1873497444986126336, 0),
+UInt256(60185310762, 1865342286992376698, 15132094747964866560, 0),
+UInt256(120370621524, 3730684573984753397, 11817445422220181504, 0),
+UInt256(240741243048, 7461369147969506795, 5188146770730811392, 0),
+UInt256(48148248609, 12560320273819632328, 12105675798371893248, 0),
+UInt256(96296497219, 6673896473929713041, 5764607523034234880, 0),
+UInt256(192592994438, 13347792947859426082, 11529215046068469760, 0),
+UInt256(38518598887, 13737605033797616186, 2305843009213693952, 0),
+UInt256(77037197775, 9028465993885680756, 4611686018427387904, 0),
+UInt256(154074395550, 18056931987771361512, 9223372036854775808, 0),
+UInt256(308148791101, 17667119901833171409, 0, 0),
+UInt256(61629758220, 7222772795108544605, 0, 0),
+UInt256(123259516440, 14445545590217089210, 0, 0),
+UInt256(246519032881, 10444347106724626804, 0, 0),
+UInt256(49303806576, 5778218236086835684, 0, 0),
+UInt256(98607613152, 11556436472173671368, 0, 0),
+UInt256(197215226305, 4666128870637791120, 0, 0),
+UInt256(39443045261, 933225774127558224, 0, 0),
+UInt256(78886090522, 1866451548255116448, 0, 0),
+UInt256(157772181044, 3732903096510232896, 0, 0),
+UInt256(315544362088, 7465806193020465792, 0, 0),
+UInt256(63108872417, 12561207682829824128, 0, 0),
+UInt256(126217744835, 6675671291950096640, 0, 0),
+UInt256(252435489670, 13351342583900193280, 0, 0),
+UInt256(50487097934, 2670268516780038656, 0, 0),
+UInt256(100974195868, 5340537033560077312, 0, 0),
+UInt256(201948391736, 10681074067120154624, 0, 0),
+UInt256(40389678347, 5825563628165941248, 0, 0),
+UInt256(80779356694, 11651127256331882496, 0, 0),
+UInt256(161558713389, 4855510438954213376, 0, 0),
+UInt256(323117426778, 9711020877908426752, 0, 0),
+UInt256(64623485355, 13010250619807416320, 0, 0),
+UInt256(129246970711, 7573757165905281024, 0, 0),
+UInt256(258493941422, 15147514331810562048, 0, 0),
+UInt256(51698788284, 10408200495845933056, 0, 0),
+UInt256(103397576569, 2369656917982314496, 0, 0),
+UInt256(206795153138, 4739313835964628992, 0, 0),
+UInt256(41359030627, 12015909211418656768, 0, 0),
+UInt256(82718061255, 5585074349127761920, 0, 0),
+UInt256(165436122510, 11170148698255523840, 0, 0),
+UInt256(33087224502, 2234029739651104768, 0, 0),
+UInt256(66174449004, 4468059479302209536, 0, 0),
+UInt256(132348898008, 8936118958604419072, 0, 0),
+UInt256(264697796016, 17872237917208838144, 0, 0),
+UInt256(52939559203, 7263796398183677952, 0, 0),
+UInt256(105879118406, 14527592796367355904, 0, 0),
+]
+
+private let bid_multipliers2_bid32_5: [UInt256] = [
+UInt256(211758236813, 10608441519025160192, 0, 0),
+UInt256(42351647362, 13189734748030763008, 0, 0),
+UInt256(84703294725, 7932725422351974400, 0, 0),
+UInt256(169406589450, 15865450844703948800, 0, 0),
+UInt256(33881317890, 3173090168940789760, 0, 0),
+UInt256(67762635780, 6346180337881579520, 0, 0),
+UInt256(135525271560, 12692360675763159040, 0, 0),
+UInt256(271050543121, 6937977277816766464, 0, 0),
+UInt256(54210108624, 5076944270305263616, 0, 0),
+UInt256(108420217248, 10153888540610527232, 0, 0),
+UInt256(216840434497, 1861033007511502848, 0, 0),
+UInt256(43368086899, 7750904230986121216, 0, 0),
+UInt256(86736173798, 15501808461972242432, 0, 0),
+UInt256(173472347597, 12556872850234933248, 0, 0),
+UInt256(34694469519, 9890072199530807296, 0, 0),
+UInt256(69388939039, 1333400325352062976, 0, 0),
+UInt256(138777878078, 2666800650704125952, 0, 0),
+UInt256(277555756156, 5333601301408251904, 0, 0),
+UInt256(55511151231, 4756069075023560704, 0, 0),
+UInt256(111022302462, 9512138150047121408, 0, 0),
+UInt256(222044604925, 577532226384691200, 0, 0),
+UInt256(44408920985, 115506445276938240, 0, 0),
+UInt256(88817841970, 231012890553876480, 0, 0),
+UInt256(177635683940, 462025781107752960, 0, 0),
+UInt256(35527136788, 92405156221550592, 0, 0),
+UInt256(71054273576, 184810312443101184, 0, 0),
+UInt256(142108547152, 369620624886202368, 0, 0),
+UInt256(284217094304, 739241249772404736, 0, 0),
+UInt256(56843418860, 14905243508922122240, 0, 0),
+UInt256(113686837721, 11363742944134692864, 0, 0),
+UInt256(227373675443, 4280741814559834112, 0, 0),
+UInt256(45474735088, 11924194807137697792, 0, 0),
+UInt256(90949470177, 5401645540565843968, 0, 0),
+UInt256(181898940354, 10803291081131687936, 0, 0),
+UInt256(36379788070, 16918053475193978880, 0, 0),
+UInt256(72759576141, 15389362876678406144, 0, 0),
+UInt256(145519152283, 12331981679647260672, 0, 0),
+UInt256(291038304567, 6217219285584969728, 0, 0),
+UInt256(58207660913, 8622141486600814592, 0, 0),
+UInt256(116415321826, 17244282973201629184, 0, 0),
+UInt256(232830643653, 16041821872693706752, 0, 0),
+UInt256(46566128730, 14276410818764472320, 0, 0),
+UInt256(93132257461, 10106077563819393024, 0, 0),
+UInt256(186264514923, 1765411053929234432, 0, 0),
+UInt256(37252902984, 11421128655011577856, 0, 0),
+UInt256(74505805969, 4395513236313604096, 0, 0),
+UInt256(149011611938, 8791026472627208192, 0, 0),
+UInt256(298023223876, 17582052945254416384, 0, 0),
+UInt256(59604644775, 7205759403792793600, 0, 0),
+UInt256(119209289550, 14411518807585587200, 0, 0),
+]
+
+private let bid_multipliers2_bid32_6: [UInt256] = [
+UInt256(238418579101, 10376293541461622784, 0, 0),
+UInt256(47683715820, 5764607523034234880, 0, 0),
+UInt256(95367431640, 11529215046068469760, 0, 0),
+UInt256(190734863281, 4611686018427387904, 0, 0),
+UInt256(38146972656, 4611686018427387904, 0, 0),
+UInt256(76293945312, 9223372036854775808, 0, 0),
+UInt256(152587890625, 0, 0, 0),
+UInt256(305175781250, 0, 0, 0),
+UInt256(61035156250, 0, 0, 0),
+UInt256(122070312500, 0, 0, 0),
+UInt256(244140625000, 0, 0, 0),
+UInt256(48828125000, 0, 0, 0),
+UInt256(97656250000, 0, 0, 0),
+UInt256(195312500000, 0, 0, 0),
+UInt256(39062500000, 0, 0, 0),
+UInt256(78125000000, 0, 0, 0),
+UInt256(156250000000, 0, 0, 0),
+UInt256(312500000000, 0, 0, 0),
+UInt256(62500000000, 0, 0, 0),
+UInt256(125000000000, 0, 0, 0),
+UInt256(250000000000, 0, 0, 0),
+UInt256(50000000000, 0, 0, 0),
+UInt256(100000000000, 0, 0, 0),
+UInt256(200000000000, 0, 0, 0),
+UInt256(40000000000, 0, 0, 0),
+UInt256(80000000000, 0, 0, 0),
+UInt256(160000000000, 0, 0, 0),
+UInt256(320000000000, 0, 0, 0),
+UInt256(64000000000, 0, 0, 0),
+UInt256(128000000000, 0, 0, 0),
+UInt256(256000000000, 0, 0, 0),
+UInt256(51200000000, 0, 0, 0),
+UInt256(102400000000, 0, 0, 0),
+UInt256(204800000000, 0, 0, 0),
+UInt256(40960000000, 0, 0, 0),
+UInt256(81920000000, 0, 0, 0),
+UInt256(163840000000, 0, 0, 0),
+UInt256(327680000000, 0, 0, 0),
+UInt256(65536000000, 0, 0, 0),
+UInt256(131072000000, 0, 0, 0),
+UInt256(262144000000, 0, 0, 0),
+UInt256(52428800000, 0, 0, 0),
+UInt256(104857600000, 0, 0, 0),
+UInt256(209715200000, 0, 0, 0),
+UInt256(41943040000, 0, 0, 0),
+UInt256(83886080000, 0, 0, 0),
+UInt256(167772160000, 0, 0, 0),
+UInt256(33554432000, 0, 0, 0),
+UInt256(67108864000, 0, 0, 0),
+UInt256(134217728000, 0, 0, 0),
+]
+
+private let bid_multipliers2_bid32_7: [UInt256] = [
+UInt256(268435456000, 0, 0, 0),
+UInt256(53687091200, 0, 0, 0),
+UInt256(107374182400, 0, 0, 0),
+UInt256(214748364800, 0, 0, 0),
+UInt256(42949672960, 0, 0, 0),
+UInt256(85899345920, 0, 0, 0),
+UInt256(171798691840, 0, 0, 0),
+UInt256(34359738368, 0, 0, 0),
+UInt256(68719476736, 0, 0, 0),
+UInt256(137438953472, 0, 0, 0),
+UInt256(274877906944, 0, 0, 0),
+UInt256(54975581388, 14757395258967641292, 14757395258967641292, 14757395258967641293),
+UInt256(109951162777, 11068046444225730969, 11068046444225730969, 11068046444225730970),
+UInt256(219902325555, 3689348814741910323, 3689348814741910323, 3689348814741910324),
+UInt256(43980465111, 737869762948382064, 11805916207174113034, 4427218577690292388),
+UInt256(87960930222, 1475739525896764129, 5165088340638674452, 8854437155380584776),
+UInt256(175921860444, 2951479051793528258, 10330176681277348904, 17708874310761169552),
+UInt256(35184372088, 15347691069326346944, 9444732965739290427, 7231123676894144234),
+UInt256(70368744177, 12248638064943142273, 442721857769029238, 14462247353788288467),
+UInt256(140737488355, 6050532056176732930, 885443715538058477, 10477750633867025318),
+UInt256(281474976710, 12101064112353465860, 1770887431076116955, 2508757194024499020),
+UInt256(56294995342, 2420212822470693172, 354177486215223391, 501751438804899804),
+UInt256(112589990684, 4840425644941386344, 708354972430446782, 1003502877609799608),
+UInt256(225179981368, 9680851289882772688, 1416709944860893564, 2007005755219599216),
+UInt256(45035996273, 13004216702202285507, 3972690803714089036, 401401151043919844),
+UInt256(90071992547, 7561689330695019398, 7945381607428178072, 802802302087839687),
+UInt256(180143985094, 15123378661390038796, 15890763214856356144, 1605604604175679373),
+UInt256(36028797018, 17782070991245649052, 3178152642971271228, 15078516179802777168),
+UInt256(72057594037, 17117397908781746488, 6356305285942542457, 11710288285896002719),
+UInt256(144115188075, 15788051743853941360, 12712610571885084915, 4973832498082453822),
+UInt256(288230376151, 13129359413998331105, 6978477070060618214, 9947664996164907643),
+UInt256(57646075230, 6315220697541576544, 5085044228754033966, 1989532999232981529),
+UInt256(115292150460, 12630441395083153088, 10170088457508067932, 3979065998465963058),
+UInt256(230584300921, 6814138716456754561, 1893432841306584248, 7958131996931926115),
+UInt256(46116860184, 5052176558033261235, 7757384197745137496, 1591626399386385223),
+UInt256(92233720368, 10104353116066522470, 15514768395490274992, 3183252798772770446),
+UInt256(184467440737, 1761962158423493325, 12582792717270998368, 6366505597545540892),
+UInt256(36893488147, 7731090061168519311, 9895256172938020320, 1273301119509108179),
+UInt256(73786976294, 15462180122337038623, 1343768272166489024, 2546602239018216357),
+UInt256(147573952589, 12477616170964525630, 2687536544332978048, 5093204478036432714),
+UInt256(295147905179, 6508488268219499644, 5375073088665956096, 10186408956072865427),
+UInt256(59029581035, 16059092912611541221, 12143061061958922188, 16794677050182214379),
+UInt256(118059162071, 13671441751513530827, 5839378050208292761, 15142610026654877141),
+UInt256(236118324143, 8896139429317510038, 11678756100416585523, 11838475979600202665),
+UInt256(47223664828, 12847274330089232977, 6025100034825227427, 17125090454887681826),
+UInt256(94447329657, 7247804586468914338, 12050200069650454855, 15803436836065812036),
+UInt256(188894659314, 14495609172937828677, 5653656065591358095, 13160129598422072455),
+UInt256(37778931862, 17656517093555207028, 4820080027860181942, 6321374734426324815),
+UInt256(75557863725, 16866290113400862440, 9640160055720363884, 12642749468852649629),
+UInt256(151115727451, 15285836153092173265, 833576037731176153, 6838754863995747641),
+]
+
+private let bid_multipliers2_bid32_8: [UInt256] = [
+UInt256(302231454903, 12124928232474794914, 1667152075462352306, 13677509727991495281),
+UInt256(60446290980, 13493032090720689952, 7712128044576291107, 13803548389824030026),
+UInt256(120892581961, 8539320107731828288, 15424256089152582215, 9160352705938508436),
+UInt256(241785163922, 17078640215463656577, 12401768104595612814, 18320705411877016871),
+UInt256(48357032784, 10794425672576551961, 17237748879886763855, 14732187526601134344),
+UInt256(96714065569, 3142107271443552307, 16028753686063976095, 11017630979492717072),
+UInt256(193428131138, 6284214542887104615, 13610763298418400575, 3588517885275882528),
+UInt256(38685626227, 12324889352803151892, 13790199103909411084, 11785750021280907476),
+UInt256(77371252455, 6203034631896752169, 9133654134109270553, 5124755968852263335),
+UInt256(154742504910, 12406069263793504338, 18267308268218541106, 10249511937704526669),
+UInt256(309485009821, 6365394453877457061, 18087872462727530597, 2052279801699501721),
+UInt256(61897001964, 4962427705517401735, 10996272122029326765, 15167851219307541637),
+UInt256(123794003928, 9924855411034803471, 3545800170349101915, 11888958364905531658),
+UInt256(247588007857, 1402966748360055326, 7091600340698203831, 5331172656101511700),
+UInt256(49517601571, 7659290979155831711, 12486366512365371735, 15823629790187943633),
+UInt256(99035203142, 15318581958311663423, 6525988951021191855, 13200515506666335650),
+UInt256(198070406285, 12190419842913775230, 13051977902042383711, 7954286939623119683),
+UInt256(39614081257, 2438083968582755046, 2610395580408476742, 5280206202666534260),
+UInt256(79228162514, 4876167937165510092, 5220791160816953484, 10560412405333068520),
+UInt256(158456325028, 9752335874331020184, 10441582321633906969, 2674080736956585423),
+UInt256(316912650057, 1057927674952488753, 2436420569558262322, 5348161473913170846),
+UInt256(63382530011, 7590283164474318397, 487284113911652464, 8448329924266454816),
+UInt256(126765060022, 15180566328948636794, 974568227823304928, 16896659848532909632),
+UInt256(253530120045, 11914388584187721972, 1949136455646609857, 15346575623356267647),
+UInt256(50706024009, 2382877716837544394, 7768524920613142617, 17826710383638894823),
+UInt256(101412048018, 4765755433675088788, 15537049841226285235, 17206676693568238029),
+UInt256(202824096036, 9531510867350177577, 12627355608743018855, 15966609313426924441),
+UInt256(40564819207, 5595650988211945838, 13593517565974334740, 14261368306911115858),
+UInt256(81129638414, 11191301976423891677, 8740291058239117865, 10075992540112680100),
+UInt256(162259276829, 3935859879138231738, 17480582116478235731, 1705241006515808583),
+UInt256(324518553658, 7871719758276463477, 16514420159246919846, 3410482013031617166),
+UInt256(64903710731, 12642390395881023665, 3302884031849383969, 4371445217348233757),
+UInt256(129807421463, 6838036718052495714, 6605768063698767938, 8742890434696467513),
+UInt256(259614842926, 13676073436104991428, 13211536127397535876, 17485780869392935026),
+UInt256(51922968585, 6424563501962908608, 17399702484447148468, 3497156173878587006),
+UInt256(103845937170, 12849127003925817217, 16352660895184745320, 6994312347757174011),
+UInt256(207691874341, 7251509934142082819, 14258577716659939024, 13988624695514348021),
+UInt256(41538374868, 5139650801570326887, 2851715543331987804, 17555120198070510897),
+UInt256(83076749736, 10279301603140653774, 5703431086663975609, 16663496322431470178),
+UInt256(166153499473, 2111859132571755932, 11406862173327951219, 14880248571153388740),
+UInt256(33230699894, 11490418270740082156, 2281372434665590243, 17733444973198319041),
+UInt256(66461399789, 4534092467770612696, 4562744869331180487, 17020145872687086466),
+UInt256(132922799578, 9068184935541225392, 9125489738662360975, 15593547671664621315),
+UInt256(265845599156, 18136369871082450784, 18250979477324721951, 12740351269619691014),
+UInt256(53169119831, 7316622788958400480, 3650195895464944390, 6237419068665848526),
+UInt256(106338239662, 14633245577916800960, 7300391790929888780, 12474838137331697052),
+UInt256(212676479325, 10819747082124050304, 14600783581859777561, 6502932200953842488),
+UInt256(42535295865, 2163949416424810060, 17677551975339596805, 1300586440190768498),
+UInt256(85070591730, 4327898832849620121, 16908359876969641994, 2601172880381536995),
+UInt256(170141183460, 8655797665699240243, 15369975680229732372, 5202345760763073990),
+]
+
+private let bid_multipliers2_bid32_9: [UInt256] = [
+UInt256(34028236692, 1731159533139848048, 14142041580271677444, 1040469152152614798),
+UInt256(68056473384, 3462319066279696097, 9837339086833803272, 2080938304305229596),
+UInt256(136112946768, 6924638132559392195, 1227934099958054928, 4161876608610459192),
+UInt256(272225893536, 13849276265118784390, 2455868199916109856, 8323753217220918384),
+UInt256(54445178707, 6459204067765667201, 4180522454725132294, 9043448272928004324),
+UInt256(108890357414, 12918408135531334402, 8361044909450264588, 18086896545856008647),
+UInt256(217780714829, 7390072197353117188, 16722089818900529177, 17727049018002465677),
+UInt256(43556142965, 16235409698438264730, 10723115593263926481, 18302805062568134429),
+UInt256(87112285931, 14024075323166977845, 2999487112818301347, 18158866051426717241),
+UInt256(174224571863, 9601406572624404074, 5998974225636602695, 17870988029143882865),
+UInt256(34844914372, 12988327758750611784, 8578492474611141185, 10952895235312597220),
+UInt256(69689828745, 7529911443791671952, 17156984949222282371, 3459046396915642823),
+UInt256(139379657490, 15059822887583343905, 15867225824735013126, 6918092793831285646),
+UInt256(278759314981, 11672901701457136195, 13287707575760474636, 13836185587662571291),
+UInt256(55751862996, 6023929155033337562, 6346890329894005250, 10145934747016334905),
+UInt256(111503725992, 12047858310066675124, 12693780659788010501, 1845125420323118193),
+UInt256(223007451985, 5648972546423798633, 6940817245866469386, 3690250840646236386),
+UInt256(44601490397, 1129794509284759726, 12456209893399024846, 15495445427096888570),
+UInt256(89202980794, 2259589018569519453, 6465675713088498077, 12544146780484225524),
+UInt256(178405961588, 4519178037139038906, 12931351426176996155, 6641549487258899432),
+UInt256(35681192317, 11971882051653538750, 17343665544203040523, 16085705156419421180),
+UInt256(71362384635, 5497020029597525885, 16240587014696529431, 13724666239129290743),
+UInt256(142724769270, 10994040059195051771, 14034429955683507247, 9002588404549029869),
+UInt256(285449538541, 3541336044680551927, 9622115837657462878, 18005176809098059738),
+UInt256(57089907708, 4397616023678020708, 12992469611757223545, 7290384176561522271),
+UInt256(114179815416, 8795232047356041417, 7538195149804895474, 14580768353123044542),
+UInt256(228359630832, 17590464094712082834, 15076390299609790949, 10714792632536537467),
+UInt256(45671926166, 10896790448426237213, 6704626874663868513, 2142958526507307494),
+UInt256(91343852333, 3346836823142922810, 13409253749327737026, 4285917053014614987),
+UInt256(182687704666, 6693673646285845621, 8371763424945922436, 8571834106029229974),
+UInt256(36537540933, 5028083543999079447, 9053050314473005133, 12782413265431576965),
+UInt256(73075081866, 10056167087998158894, 18106100628946010267, 7118082457153602313),
+UInt256(146150163733, 1665590102286766173, 17765457184182468918, 14236164914307204626),
+UInt256(292300327466, 3331180204573532347, 17084170294655386221, 10025585754904857635),
+UInt256(58460065493, 4355584855656616792, 14484880503156808213, 16762512409948612820),
+UInt256(116920130986, 8711169711313233585, 10523016932604064811, 15078280746187674024),
+UInt256(233840261972, 17422339422626467171, 2599289791498578007, 11709817418665796431),
+UInt256(46768052394, 10863165514009114080, 11587904402525446571, 2341963483733159287),
+UInt256(93536104789, 3279586954308676545, 4729064731341341526, 4683926967466318573),
+UInt256(187072209578, 6559173908617353090, 9458129462682683052, 9367853934932637145),
+UInt256(37414441915, 12379881225949201587, 12959672336762267580, 1873570786986527429),
+UInt256(74828883831, 6313018378188851559, 7472600599814983544, 3747141573973054858),
+UInt256(149657767662, 12626036756377703118, 14945201199629967088, 7494283147946109716),
+UInt256(299315535325, 6805329439045854621, 11443658325550382560, 14988566295892219432),
+UInt256(59863107065, 1361065887809170924, 5978080479851986835, 6687062073920354210),
+UInt256(119726214130, 2722131775618341848, 11956160959703973670, 13374124147840708419),
+UInt256(239452428260, 5444263551236683697, 5465577845698395725, 8301504221971865222),
+UInt256(47890485652, 1088852710247336739, 8471813198623499791, 9038998473878193691),
+UInt256(95780971304, 2177705420494673478, 16943626397246999582, 18077996947756387382),
+UInt256(191561942608, 4355410840989346957, 15440508720784447549, 17709249821803223148),
+]
+
+private let bid_multipliers2_bid32_10: [UInt256] = [
+UInt256(38312388521, 11939128612423600361, 3088101744156889509, 18299245223328285923),
+UInt256(76624777043, 5431513151137649106, 6176203488313779019, 18151746372947020229),
+UInt256(153249554086, 10863026302275298212, 12352406976627558039, 17856748672184488841),
+UInt256(306499108173, 3279308530841044809, 6258069879545564463, 17266753270659426066),
+UInt256(61299821634, 11723908150393939931, 8630311605392933539, 3453350654131885214),
+UInt256(122599643269, 5001072227078328246, 17260623210785867078, 6906701308263770427),
+UInt256(245199286538, 10002144454156656493, 16074502347862182540, 13813402616527540853),
+UInt256(49039857307, 13068475335057062268, 6904249284314346831, 6452029338047418494),
+UInt256(98079714615, 7690206596404572920, 13808498568628693662, 12904058676094836988),
+UInt256(196159429230, 15380413192809145841, 9170253063547835709, 7361373278480122359),
+UInt256(39231885846, 3076082638561829168, 5523399427451477465, 1472274655696024472),
+UInt256(78463771692, 6152165277123658336, 11046798854902954930, 2944549311392048944),
+UInt256(156927543384, 12304330554247316673, 3646853636096358244, 5889098622784097888),
+UInt256(313855086769, 6161917034785081730, 7293707272192716488, 11778197245568195775),
+UInt256(62771017353, 15989778665924657638, 16216136713406184590, 9734337078597459802),
+UInt256(125542034707, 13532813258139763661, 13985529353102817565, 1021930083485367987),
+UInt256(251084069415, 8618882442569975707, 9524314632496083514, 2043860166970735973),
+UInt256(50216813883, 1723776488513995141, 9283560555983037349, 4098120848136057518),
+UInt256(100433627766, 3447552977027990283, 120377038256523082, 8196241696272115036),
+UInt256(200867255532, 6895105954055980566, 240754076513046164, 16392483392544230072),
+UInt256(40173451106, 8757718820295016759, 11116197259528340202, 10657194307992666661),
+UInt256(80346902212, 17515437640590033519, 3785650445347128789, 2867644542275781706),
+UInt256(160693804425, 16584131207470515422, 7571300890694257578, 5735289084551563411),
+UInt256(321387608851, 14721518341231479228, 15142601781388515156, 11470578169103126821),
+UInt256(64277521770, 6633652482988206168, 17785915615245344324, 2294115633820625365),
+UInt256(128555043540, 13267304965976412337, 17125087156781137032, 4588231267641250729),
+UInt256(257110087081, 8087865858243273059, 15803430239852722448, 9176462535282501457),
+UInt256(51422017416, 5306921986390564935, 3160686047970544489, 12903338951282231261),
+UInt256(102844034832, 10613843972781129870, 6321372095941088979, 7359933828854910906),
+UInt256(205688069665, 2780943871852708124, 12642744191882177958, 14719867657709821812),
+UInt256(41137613933, 556188774370541624, 17285944097344076884, 10322671161025785009),
+UInt256(82275227866, 1112377548741083249, 16125144120978602153, 2198598248342018402),
+UInt256(164550455732, 2224755097482166499, 13803544168247652690, 4397196496684036804),
+UInt256(32910091146, 7823648648980253946, 6450057648391440861, 4568788114078717684),
+UInt256(65820182292, 15647297297960507892, 12900115296782881722, 9137576228157435368),
+UInt256(131640364585, 12847850522211464169, 7353486519856211828, 18275152456314870736),
+UInt256(263280729171, 7248956970713376722, 14706973039712423657, 18103560838920189855),
+UInt256(52656145834, 5139140208884585667, 14009441052168215701, 3620712167784037971),
+UInt256(105312291668, 10278280417769171335, 9572138030626879786, 7241424335568075942),
+UInt256(210624583337, 2109816761828791055, 697531987544207956, 14482848671136151884),
+UInt256(42124916667, 7800660981849578857, 7518204026992662237, 13964616178452961347),
+UInt256(84249833334, 15601321963699157714, 15036408053985324475, 9482488283196371077),
+UInt256(168499666669, 12755899853688763813, 11626072034261097335, 518232492683190538),
+UInt256(33699933333, 17308575229705394055, 9703912036336040113, 7482344128020458754),
+UInt256(67399866667, 16170406385701236495, 961079998962528610, 14964688256040917508),
+UInt256(134799733335, 13894068697692921374, 1922159997925057221, 11482632438372283400),
+UInt256(269599466671, 9341393321676291132, 3844319995850114443, 4518520803035015183),
+UInt256(53919893334, 5557627479077168549, 11836910443395753858, 4593052975348913360),
+UInt256(107839786668, 11115254958154337099, 5227076813081956100, 9186105950697826720),
+UInt256(215679573337, 3783765842599122582, 10454153626163912200, 18372211901395653440),
+]
+
+private let bid_multipliers2_bid32_11: [UInt256] = [
+UInt256(43135914667, 8135450798003645162, 16848225984200423732, 18431837639246771981),
+UInt256(86271829334, 16270901596007290325, 15249707894691295849, 18416931204783992346),
+UInt256(172543658669, 14095059118305029035, 12052671715673040083, 18387118335858433075),
+UInt256(34508731733, 17576407082628647099, 17167929602102249309, 11056121296655507262),
+UInt256(69017463467, 16706070091547742583, 15889115130494947003, 3665498519601462907),
+UInt256(138034926935, 14965396109385933551, 13331486187280342390, 7330997039202925814),
+UInt256(276069853871, 11484048145062315487, 8216228300851133164, 14661994078405851627),
+UInt256(55213970774, 5986158443754373420, 12711292104395957602, 10311096445164990972),
+UInt256(110427941548, 11972316887508746841, 6975840135082363589, 2175448816620430328),
+UInt256(220855883097, 5497889701307942066, 13951680270164727178, 4350897633240860655),
+UInt256(44171176619, 8478275569745409059, 13858382498258676405, 4559528341390082455),
+UInt256(88342353238, 16956551139490818119, 9270020922807801194, 9119056682780164909),
+UInt256(176684706477, 15466358205272084623, 93297771906050772, 18238113365560329817),
+UInt256(35336941295, 10471969270538237571, 18659554381210154, 11026320302595886610),
+UInt256(70673882591, 2497194467366923526, 37319108762420309, 3605896531482221604),
+UInt256(141347765182, 4994388934733847052, 74638217524840618, 7211793062964443207),
+UInt256(282695530364, 9988777869467694104, 149276435049681236, 14423586125928886414),
+UInt256(56539106072, 16755150832861180113, 11097901731235667216, 17642112484153418576),
+UInt256(113078212145, 15063557592012808611, 3749059388761782817, 16837480894597285536),
+UInt256(226156424291, 11680371110316065606, 7498118777523565635, 15228217715485019455),
+UInt256(45231284858, 6025423036805123444, 8878321384988533773, 10424341172580824538),
+UInt256(90462569716, 12050846073610246888, 17756642769977067547, 2401938271452097459),
+UInt256(180925139433, 5654948073510942161, 17066541466244583478, 4803876542904194917),
+UInt256(36185027886, 12199036058927919401, 18170703552216557988, 8339472938064659630),
+UInt256(72370055773, 5951328044146287187, 17894663030723564360, 16678945876129319260),
+UInt256(144740111546, 11902656088292574375, 17342581987737577105, 14911147678549086904),
+UInt256(289480223093, 5358568102875597135, 16238419901765602595, 11375551283388622191),
+UInt256(57896044618, 12139760064800850396, 14315730424578851488, 13343156700903455408),
+UInt256(115792089237, 5832776055892149177, 10184716775448151361, 8239569328097359200),
+UInt256(231584178474, 11665552111784298355, 1922689477186751106, 16479138656194718399),
+UInt256(46316835694, 17090505681324500963, 15141933154404991514, 3295827731238943680),
+UInt256(92633671389, 15734267288939450311, 11837122235100431412, 6591655462477887360),
+UInt256(185267342779, 13021790504169349007, 5227500396491311208, 13183310924955774719),
+UInt256(37053468555, 17361753359801511094, 4734848894040172564, 17394057443958796237),
+UInt256(74106937111, 16276762645893470572, 9469697788080345129, 16341370814208040858),
+UInt256(148213874223, 14106781218077389529, 492651502451138643, 14235997554706530099),
+UInt256(296427748447, 9766818362445227442, 985303004902277287, 10025251035703508581),
+UInt256(59285549689, 9332061301972866134, 14954455859948096750, 5694399021882612040),
+UInt256(118571099379, 217378530236180653, 11462167646186641884, 11388798043765224079),
+UInt256(237142198758, 434757060472361307, 4477591218663732153, 4330852013820896542),
+UInt256(47428439751, 11154997856320203231, 895518243732746430, 11934216846989910278),
+UInt256(94856879503, 3863251638930854846, 1791036487465492861, 5421689620270268940),
+UInt256(189713759006, 7726503277861709692, 3582072974930985722, 10843379240540537880),
+UInt256(37942751801, 5234649470314252261, 11784461039211928114, 2168675848108107576),
+UInt256(75885503602, 10469298940628504523, 5122178004714304612, 4337351696216215152),
+UInt256(151771007205, 2491853807547457430, 10244356009428609224, 8674703392432430304),
+UInt256(303542014410, 4983707615094914861, 2041967945147666832, 17349406784864860608),
+UInt256(60708402882, 996741523018982972, 4097742403771443689, 14537927801198703092),
+UInt256(121416805764, 1993483046037965944, 8195484807542887379, 10629111528687854567),
+UInt256(242833611528, 3986966092075931888, 16390969615085774759, 2811478983666157517),
+]
+
+private let bid_multipliers2_bid32_12: [UInt256] = [
+UInt256(48566722305, 11865439662640917347, 6967542737759065275, 562295796733231504),
+UInt256(97133444611, 5284135251572283078, 13935085475518130550, 1124591593466463007),
+UInt256(194266889222, 10568270503144566157, 9423426877326709484, 2249183186932926013),
+UInt256(38853377844, 9492351730112733877, 16642080634432983189, 11517883081612316173),
+UInt256(77706755689, 537959386515916139, 14837417195156414763, 4589022089515080729),
+UInt256(155413511378, 1075918773031832279, 11228090316603277910, 9178044179030161457),
+UInt256(310827022756, 2151837546063664559, 4009436559497004204, 18356088358060322914),
+UInt256(62165404551, 4119716323954643235, 801887311899400840, 18428612930579705876),
+UInt256(124330809102, 8239432647909286470, 1603774623798801681, 18410481787449860135),
+UInt256(248661618204, 16478865295818572940, 3207549247597603363, 18374219501190168654),
+UInt256(49732323640, 18053168318131355880, 15398905108487161965, 11053541529721854378),
+UInt256(99464647281, 17659592562553160145, 12351066143264772315, 3660338985734157139),
+UInt256(198929294563, 16872441051396768675, 6255388212819993014, 7320677971468314277),
+UInt256(39785858912, 14442534654505084704, 12319124086789729572, 8842833223777483502),
+UInt256(79571717825, 10438325235300617793, 6191504099869907528, 17685666447554967004),
+UInt256(159143435651, 2429906396891683970, 12383008199739815057, 16924588821400382391),
+UInt256(318286871302, 4859812793783367941, 6319272325770078499, 15402433569091213166),
+UInt256(63657374260, 8350660188240494234, 12331900909379746669, 10459184343302063280),
+UInt256(127314748520, 16701320376480988469, 6217057745049941723, 2471624612894574944),
+UInt256(254629497041, 14955896679252425322, 12434115490099883446, 4943249225789149887),
+UInt256(50925899408, 6680528150592395387, 13554869542245707658, 15746045104125471271),
+UInt256(101851798816, 13361056301184790775, 8662995010781863701, 13045346134541390925),
+UInt256(203703597633, 8275368528660029934, 17325990021563727403, 7643948195373230233),
+UInt256(40740719526, 12723120149957736956, 10843895633796566127, 1528789639074646047),
+UInt256(81481439053, 6999496226205922297, 3241047193883580638, 3057579278149292093),
+UInt256(162962878106, 13998992452411844594, 6482094387767161276, 6115158556298584186),
+UInt256(325925756213, 9551240831114137572, 12964188775534322552, 12230317112597168372),
+UInt256(65185151242, 12978294610448558484, 2592837755106864510, 9824761052003254321),
+UInt256(130370302485, 7509845147187565352, 5185675510213729021, 1202778030296957026),
+UInt256(260740604970, 15019690294375130704, 10371351020427458042, 2405556060593914051),
+UInt256(52148120994, 3003938058875026140, 16831665463053132901, 4170460026860693134),
+UInt256(104296241988, 6007876117750052281, 15216586852396714186, 8340920053721386267),
+UInt256(208592483976, 12015752235500104563, 11986429631083876756, 16681840107442772534),
+UInt256(41718496795, 6092499261841931235, 17154681185184416644, 3336368021488554507),
+UInt256(83436993590, 12184998523683862471, 15862618296659281672, 6672736042977109014),
+UInt256(166873987181, 5923252973658173327, 13278492519609011728, 13345472085954218027),
+UInt256(33374797436, 4873999409473544988, 13723744948147533315, 6358443231932753929),
+UInt256(66749594872, 9747998818947089977, 9000745822585515014, 12716886463865507858),
+UInt256(133499189745, 1049253564184628338, 18001491645171030029, 6987028854021464099),
+UInt256(266998379490, 2098507128369256677, 17556239216632508442, 13974057708042928197),
+UInt256(53399675898, 419701425673851335, 10889945472810322334, 17552206800576226933),
+UInt256(106799351796, 839402851347702671, 3333146871911093053, 16657669527442902249),
+UInt256(213598703592, 1678805702695405342, 6666293743822186107, 14868594981176252881),
+UInt256(42719740718, 7714458770022901714, 16090654007732078514, 6663067810977160900),
+UInt256(85439481436, 15428917540045803429, 13734563941754605412, 13326135621954321799),
+UInt256(170878962873, 12411091006382055243, 9022383809799659209, 8205527170199091982),
+UInt256(34175792574, 13550264645502142018, 5493825576701842165, 1641105434039818397),
+UInt256(68351585149, 8653785217294732420, 10987651153403684330, 3282210868079636793),
+UInt256(136703170298, 17307570434589464841, 3528558233097817044, 6564421736159273585),
+UInt256(273406340597, 16168396795469378066, 7057116466195634088, 13128843472318547170),
+]
+
+private let bid_multipliers2_bid32_13: [UInt256] = [
+UInt256(54681268119, 10612376988577696259, 12479469737464857787, 6315117509205619758),
+UInt256(109362536239, 2778009903445840903, 6512195401220163958, 12630235018411239515),
+UInt256(218725072478, 5556019806891681806, 13024390802440327917, 6813725963112927413),
+UInt256(43745014495, 12179250405604067330, 17362273419455706876, 5052094007364495806),
+UInt256(87490028991, 5911756737498583045, 16277802765201862136, 10104188014728991612),
+UInt256(174980057982, 11823513474997166091, 14108861456694172657, 1761631955748431607),
+UInt256(34996011596, 9743400324483253864, 13889818735564565501, 352326391149686322),
+UInt256(69992023193, 1040056575256956113, 9332893397419579386, 704652782299372643),
+UInt256(139984046386, 2080113150513912227, 219042721129607156, 1409305564598745286),
+UInt256(279968092772, 4160226301027824454, 438085442259214312, 2818611129197490572),
+UInt256(55993618554, 8210742889689385537, 3776965903193753185, 11631768670065229084),
+UInt256(111987237108, 16421485779378771074, 7553931806387506371, 4816793266420906552),
+]
+
+// MARK: - bid_multipliers1_bid64
+
+extension BinaryFloatingPointTables {
+ internal static func bid_multipliers1_bid64(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_multipliers1_bid64_0[r]
+ case 1: return bid_multipliers1_bid64_1[r]
+ case 2: return bid_multipliers1_bid64_2[r]
+ case 3: return bid_multipliers1_bid64_3[r]
+ case 4: return bid_multipliers1_bid64_4[r]
+ case 5: return bid_multipliers1_bid64_5[r]
+ case 6: return bid_multipliers1_bid64_6[r]
+ case 7: return bid_multipliers1_bid64_7[r]
+ case 8: return bid_multipliers1_bid64_8[r]
+ case 9: return bid_multipliers1_bid64_9[r]
+ case 10: return bid_multipliers1_bid64_10[r]
+ case 11: return bid_multipliers1_bid64_11[r]
+ case 12: return bid_multipliers1_bid64_12[r]
+ case 13: return bid_multipliers1_bid64_13[r]
+ case 14: return bid_multipliers1_bid64_14[r]
+ case 15: return bid_multipliers1_bid64_15[r]
+ case 16: return bid_multipliers1_bid64_16[r]
+ case 17: return bid_multipliers1_bid64_17[r]
+ case 18: return bid_multipliers1_bid64_18[r]
+ case 19: return bid_multipliers1_bid64_19[r]
+ case 20: return bid_multipliers1_bid64_20[r]
+ case 21: return bid_multipliers1_bid64_21[r]
+ case 22: return bid_multipliers1_bid64_22[r]
+ case 23: return bid_multipliers1_bid64_23[r]
+ case 24: return bid_multipliers1_bid64_24[r]
+ case 25: return bid_multipliers1_bid64_25[r]
+ case 26: return bid_multipliers1_bid64_26[r]
+ case 27: return bid_multipliers1_bid64_27[r]
+ case 28: return bid_multipliers1_bid64_28[r]
+ case 29: return bid_multipliers1_bid64_29[r]
+ case 30: return bid_multipliers1_bid64_30[r]
+ case 31: return bid_multipliers1_bid64_31[r]
+ case 32: return bid_multipliers1_bid64_32[r]
+ case 33: return bid_multipliers1_bid64_33[r]
+ case 34: return bid_multipliers1_bid64_34[r]
+ case 35: return bid_multipliers1_bid64_35[r]
+ case 36: return bid_multipliers1_bid64_36[r]
+ case 37: return bid_multipliers1_bid64_37[r]
+ case 38: return bid_multipliers1_bid64_38[r]
+ case 39: return bid_multipliers1_bid64_39[r]
+ case 40: return bid_multipliers1_bid64_40[r]
+ case 41: return bid_multipliers1_bid64_41[r]
+ case 42: return bid_multipliers1_bid64_42[r]
+ case 43: return bid_multipliers1_bid64_43[r]
+ case 44: return bid_multipliers1_bid64_44[r]
+ case 45: return bid_multipliers1_bid64_45[r]
+ case 46: return bid_multipliers1_bid64_46[r]
+ case 47: return bid_multipliers1_bid64_47[r]
+ case 48: return bid_multipliers1_bid64_48[r]
+ case 49: return bid_multipliers1_bid64_49[r]
+ case 50: return bid_multipliers1_bid64_50[r]
+ case 51: return bid_multipliers1_bid64_51[r]
+ case 52: return bid_multipliers1_bid64_52[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_multipliers1_bid64_0: [UInt256] = [
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+]
+
+private let bid_multipliers1_bid64_1: [UInt256] = [
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(0, 0, 0, 0),
+UInt256(2518694348665986494, 6069031768864303422, 9908758460416160234, 11950291386221365447),
+UInt256(5037388697331972988, 12138063537728606845, 1370772847122768853, 5453838698733179278),
+UInt256(10074777394663945977, 5829383001747662074, 2741545694245537706, 10907677397466358555),
+UInt256(2014955478932789195, 8544574229833353061, 4237657953591017864, 9560233108977092358),
+UInt256(4029910957865578390, 17089148459666706122, 8475315907182035729, 673722144244633099),
+UInt256(8059821915731156781, 15731552845623860628, 16950631814364071458, 1347444288489266198),
+UInt256(1611964383146231356, 6835659383866682448, 18147521621840455584, 7648186487181673886),
+UInt256(3223928766292462712, 13671318767733364897, 17848299169971359552, 15296372974363347772),
+UInt256(6447857532584925425, 8895893461757178179, 17249854266233167489, 12146001875017143928),
+UInt256(1289571506516985085, 1779178692351435635, 18207366112214274790, 13497246819229159756),
+UInt256(2579143013033970170, 3558357384702871271, 17967988150718997965, 8547749564748767895),
+UInt256(5158286026067940340, 7116714769405742543, 17489232227728444314, 17095499129497535789),
+UInt256(10316572052135880680, 14233429538811485087, 16531720381747337013, 15744254185285519961),
+UInt256(2063314410427176136, 2846685907762297017, 10685041705833288049, 3148850837057103993),
+UInt256(4126628820854352272, 5693371815524594035, 2923339337957024482, 6297701674114207985),
+UInt256(8253257641708704544, 11386743631049188070, 5846678675914048964, 12595403348228415969),
+UInt256(1650651528341740908, 17034743985177478906, 15926730994150451085, 13587127113871414164),
+UInt256(3301303056683481817, 15622743896645406197, 13406717914591350555, 8727510154033276711),
+UInt256(6602606113366963635, 12798743719581260779, 8366691755473149494, 17455020308066553422),
+UInt256(1320521222673392727, 2559748743916252155, 16430733610062271191, 14559050505839041654),
+UInt256(2641042445346785454, 5119497487832504311, 14414723146414990767, 10671356937968531692),
+UInt256(5282084890693570908, 10238994975665008623, 10382702219120429919, 2895969802227511768),
+UInt256(10564169781387141817, 2031245877620465631, 2318660364531308222, 5791939604455023535),
+UInt256(2112833956277428363, 7784946805007913772, 11531778517131992614, 1158387920891004707),
+UInt256(4225667912554856726, 15569893610015827545, 4616812960554433612, 2316775841782009414),
+UInt256(8451335825109713453, 12693043146322103474, 9233625921108867224, 4633551683564018828),
+UInt256(1690267165021942690, 13606655073490151664, 9225422813705594091, 4616059151454714089),
+UInt256(3380534330043885381, 8766566073270751713, 4101553701636566, 9232118302909428178),
+UInt256(6761068660087770762, 17533132146541503426, 8203107403273133, 17492532109304740),
+UInt256(1352213732017554152, 10885324058792121331, 11069687065706385596, 3692847321163771272),
+UInt256(2704427464035108305, 3323904043874691047, 3692630057703219576, 7385694642327542543),
+UInt256(5408854928070216610, 6647808087749382094, 7385260115406439152, 14771389284655085085),
+UInt256(10817709856140433220, 13295616175498764188, 14770520230812878305, 11096034495600618553),
+UInt256(2163541971228086644, 2659123235099752837, 14022150490388306630, 13287253343345854681),
+UInt256(4327083942456173288, 5318246470199505675, 9597556907067061645, 8127762612982157745),
+UInt256(8654167884912346576, 10636492940399011351, 748369740424571674, 16255525225964315489),
+UInt256(1730833576982469315, 5816647402821712593, 7528371577568734981, 6940453859934773421),
+UInt256(3461667153964938630, 11633294805643425186, 15056743155137469962, 13880907719869546842),
+UInt256(6923334307929877261, 4819845537577298757, 11666742236565388309, 9315071366029542068),
+UInt256(1384666861585975452, 4653317922257370074, 13401394891538808631, 9241711902689729060),
+UInt256(2769333723171950904, 9306635844514740149, 8356045709368065647, 36679731669906504),
+UInt256(5538667446343901809, 166527615319928682, 16712091418736131294, 73359463339813008),
+UInt256(11077334892687803618, 333055230639857365, 14977438763762710972, 146718926679626015),
+UInt256(2215466978537560723, 11134657490353702442, 14063534196978273164, 29343785335925203),
+]
+
+private let bid_multipliers1_bid64_2: [UInt256] = [
+UInt256(4430933957075121447, 3822570906997853269, 9680324320246994712, 58687570671850406),
+UInt256(8861867914150242894, 7645141813995706539, 913904566784437808, 117375141343700812),
+UInt256(1772373582830048578, 16286423621766782600, 11250827357582618531, 3712823843010650486),
+UInt256(3544747165660097157, 14126103169824013585, 4054910641455685446, 7425647686021300972),
+UInt256(7089494331320194315, 9805462265938475554, 8109821282911370892, 14851295372042601943),
+UInt256(1417898866264038863, 1961092453187695110, 16379359515549915471, 6659607889150430712),
+UInt256(2835797732528077726, 3922184906375390221, 14311974957390279326, 13319215778300861424),
+UInt256(5671595465056155452, 7844369812750780443, 10177205841071007037, 8191687482892171231),
+UInt256(11343190930112310904, 15688739625501560887, 1907667608432462458, 16383374965784342462),
+UInt256(2268638186022462180, 17895143184067953470, 4070882336428402814, 18034070252124509786),
+UInt256(4537276372044924361, 17343542294426355324, 8141764672856805629, 17621396430539467955),
+UInt256(9074552744089848723, 16240340515143159032, 16283529345713611259, 16796048787369384293),
+UInt256(1814910548817969744, 14316114547254362776, 3256705869142722251, 18116605016441518152),
+UInt256(3629821097635939489, 10185485020799173936, 6513411738285444503, 17786465959173484687),
+UInt256(7259642195271878979, 1924225967888796256, 13026823476570889007, 17126187844637417758),
+UInt256(1451928439054375795, 15142240452545400544, 2605364695314177801, 10803935198411304198),
+UInt256(2903856878108751591, 11837736831381249472, 5210729390628355603, 3161126323113056780),
+UInt256(5807713756217503183, 5228729589052947328, 10421458781256711206, 6322252646226113560),
+UInt256(11615427512435006366, 10457459178105894657, 2396173488803870796, 12644505292452227119),
+UInt256(2323085502487001273, 5780840650363089254, 11547281141986505128, 17286296317458086717),
+UInt256(4646171004974002546, 11561681300726178509, 4647818210263458641, 16125848561206621817),
+UInt256(9292342009948005093, 4676618527742805402, 9295636420526917283, 13804953048703692018),
+UInt256(1858468401989601018, 12003370149774292050, 1859127284105383456, 13829037053966469374),
+UInt256(3716936803979202037, 5559996225839032484, 3718254568210766913, 9211330034223387131),
+UInt256(7433873607958404074, 11119992451678064968, 7436509136421533826, 18422660068446774261),
+UInt256(1486774721591680814, 16981393749303254286, 8865999456768127411, 14752578457915085822),
+UInt256(2973549443183361629, 15516043424896956956, 17731998913536254823, 11058412842120620028),
+UInt256(5947098886366723259, 12585342776084362297, 17017253753362958031, 3670081610531688440),
+UInt256(11894197772733446519, 6723941478459172979, 15587763433016364446, 7340163221063376879),
+UInt256(2378839554546689303, 16102183554659475888, 14185599130829003858, 16225427903180316669),
+UInt256(4757679109093378607, 13757623035609400161, 9924454187948456101, 14004111732651081721),
+UInt256(9515358218186757215, 9068501997509248707, 1402164302187360587, 9561479391592611826),
+UInt256(1903071643637351443, 1813700399501849741, 7659130489921292763, 16669691137286163658),
+UInt256(3806143287274702886, 3627400799003699482, 15318260979842585527, 14892638200862775700),
+UInt256(7612286574549405772, 7254801598007398965, 12189777885975619439, 11338532328015999784),
+UInt256(1522457314909881154, 8829657949085300439, 9816653206678944534, 5957055280345110280),
+UInt256(3044914629819762308, 17659315898170600879, 1186562339648337452, 11914110560690220560),
+UInt256(6089829259639524617, 16871887722631650142, 2373124679296674905, 5381477047670889504),
+UInt256(12179658519279049235, 15297031371553748668, 4746249358593349810, 10762954095341779008),
+UInt256(2435931703855809847, 3059406274310749733, 12017296315944400931, 13220637263294086772),
+UInt256(4871863407711619694, 6118812548621499467, 5587848558179250247, 7994530452878621927),
+UInt256(9743726815423239388, 12237625097242998934, 11175697116358500494, 15989060905757243853),
+UInt256(1948745363084647877, 13515571463674330756, 9613837052755520745, 6887160995893359094),
+UInt256(3897490726169295755, 8584398853639109897, 780930031801489874, 13774321991786718188),
+UInt256(7794981452338591510, 17168797707278219794, 1561860063602979749, 9101899909863884759),
+UInt256(1558996290467718302, 3433759541455643958, 15069767271688237242, 12888426426198507922),
+UInt256(3117992580935436604, 6867519082911287917, 11692790469666922869, 7330108778687464227),
+UInt256(6235985161870873208, 13735038165822575835, 4938836865624294122, 14660217557374928454),
+UInt256(12471970323741746417, 9023332257935600054, 9877673731248588245, 10873691041040305291),
+UInt256(2494394064748349283, 9183364081070940657, 5664883560991627972, 5864087022949971382),
+]
+
+private let bid_multipliers1_bid64_3: [UInt256] = [
+UInt256(4988788129496698566, 18366728162141881314, 11329767121983255944, 11728174045899942763),
+UInt256(9977576258993397133, 18286712250574211013, 4212790170256960273, 5009604018090333910),
+UInt256(1995515251798679426, 14725388894340573172, 4531906848793302377, 15759316062585708075),
+UInt256(3991030503597358853, 11004033714971594728, 9063813697586604755, 13071888051461864534),
+UInt256(7982061007194717707, 3561323356233637840, 18127627395173209511, 7697032029214177451),
+UInt256(1596412201438943541, 8090962300730548214, 11004223108518462548, 12607452850068566460),
+UInt256(3192824402877887082, 16181924601461096429, 3561702143327373481, 6768161626427581304),
+UInt256(6385648805755774165, 13917105129212641242, 7123404286654746962, 13536323252855162607),
+UInt256(12771297611511548331, 9387466184715730868, 14246808573309493925, 8625902432000773598),
+UInt256(2554259522302309666, 5566842051685056496, 17606756973629540077, 16482575745367796013),
+UInt256(5108519044604619332, 11133684103370112993, 16766769873549528539, 14518407417026040409),
+UInt256(10217038089209238665, 3820624133030674371, 15086795673389505463, 10590070760342529202),
+UInt256(2043407617841847733, 764124826606134874, 6706707949419811415, 16875409411036147134),
+UInt256(4086815235683695466, 1528249653212269748, 13413415898839622831, 15304074748362742651),
+UInt256(8173630471367390932, 3056499306424539497, 8380087723969694047, 12161405423015933685),
+UInt256(1634726094273478186, 7989997490768728545, 16433412803761580102, 6121629899345097061),
+UInt256(3269452188546956372, 15979994981537457091, 14420081533813608588, 12243259798690194121),
+UInt256(6538904377093912745, 13513245889365362567, 10393418993917665561, 6039775523670836625),
+UInt256(1307780875418782549, 2702649177873072513, 9457381428267353758, 12276001548959898295),
+UInt256(2615561750837565098, 5405298355746145027, 468018782825155901, 6105259024210244973),
+UInt256(5231123501675130196, 10810596711492290054, 936037565650311802, 12210518048420489946),
+UInt256(10462247003350260393, 3174449349275028492, 1872075131300623605, 5974292023131428276),
+UInt256(2092449400670052078, 11702936314080736668, 374415026260124721, 1194858404626285656),
+UInt256(4184898801340104157, 4959128554451921720, 748830052520249442, 2389716809252571311),
+UInt256(8369797602680208314, 9918257108903843440, 1497660105040498884, 4779433618505142621),
+UInt256(1673959520536041662, 16741046680748409980, 15056927279975741069, 12023933167926759494),
+UInt256(3347919041072083325, 15035349287787268345, 11667110486241930523, 5601122262143967372),
+UInt256(6695838082144166651, 11623954501864985075, 4887476898774309430, 11202244524287934743),
+UInt256(1339167616428833330, 6014139715114907338, 4666844194496772209, 5929797719599497272),
+UInt256(2678335232857666660, 12028279430229814676, 9333688388993544418, 11859595439198994544),
+UInt256(5356670465715333321, 5609814786750077737, 220632704277537221, 5272446804688437472),
+UInt256(10713340931430666642, 11219629573500155474, 441265408555074442, 10544893609376874943),
+UInt256(2142668186286133328, 9622623544183851741, 3777601896452925211, 13177025166101105959),
+UInt256(4285336372572266657, 798503014658151866, 7555203792905850423, 7907306258492660301),
+UInt256(8570672745144533314, 1597006029316303732, 15110407585811700846, 15814612516985320601),
+UInt256(1714134549028906662, 15076796464830902039, 6711430331904250492, 10541620132880884767),
+UInt256(3428269098057813325, 11706848855952252462, 13422860663808500985, 2636496192052217917),
+UInt256(6856538196115626651, 4966953638194953309, 8398977253907450354, 5272992384104435834),
+UInt256(1371307639223125330, 4682739542380900985, 1679795450781490070, 15811993735788528460),
+UInt256(2742615278446250660, 9365479084761801970, 3359590901562980141, 13177243397867505304),
+UInt256(5485230556892501321, 284214095814052324, 6719181803125960283, 7907742722025458991),
+UInt256(10970461113785002642, 568428191628104648, 13438363606251920566, 15815485444050917981),
+UInt256(2194092222757000528, 7492383267809441576, 2687672721250384113, 6852445903552093920),
+UInt256(4388184445514001056, 14984766535618883152, 5375345442500768226, 13704891807104187839),
+UInt256(8776368891028002113, 11522788997528214688, 10750690885001536453, 8963039540498824062),
+UInt256(1755273778205600422, 13372604243731373907, 5839486991742217613, 16550003167067406106),
+UInt256(3510547556411200845, 8298464413753196198, 11678973983484435227, 14653262260425260595),
+UInt256(7021095112822401690, 16596928827506392397, 4911203893259318839, 10859780447140969573),
+UInt256(1404219022564480338, 3319385765501278479, 8360938408135684414, 5861304904170104238),
+UInt256(2808438045128960676, 6638771531002556958, 16721876816271368828, 11722609808340208476),
+]
+
+private let bid_multipliers1_bid64_4: [UInt256] = [
+UInt256(5616876090257921352, 13277543062005113917, 14997009558833186041, 4998475542970865335),
+UInt256(11233752180515842705, 8108342050300676219, 11547275043956820466, 9996951085941730669),
+UInt256(2246750436103168541, 1621668410060135243, 17066850267759005386, 1999390217188346134),
+UInt256(4493500872206337082, 3243336820120270487, 15686956461808459156, 3998780434376692268),
+UInt256(8987001744412674164, 6486673640240540975, 12927168849907366696, 7997560868753384536),
+UInt256(1797400348882534832, 16054729987015749487, 17342829028949114632, 1599512173750676908),
+UInt256(3594800697765069665, 13662715900321947359, 16238913984188677648, 3199024347501353815),
+UInt256(7189601395530139331, 8878687726934343103, 14031083894667803680, 6398048695002707629),
+UInt256(1437920279106027866, 5465086360128778943, 17563612037901202028, 16037004997968182819),
+UInt256(2875840558212055732, 10930172720257557887, 16680480002092852441, 13627265922226814021),
+UInt256(5751681116424111465, 3413601366805564159, 14914215930476153267, 8807787770744076426),
+UInt256(11503362232848222930, 6827202733611128319, 11381687787242754918, 17615575541488152852),
+UInt256(2300672446569644586, 1365440546722225663, 17033732816416192276, 10901812737781451217),
+UInt256(4601344893139289172, 2730881093444451327, 15620721559122832937, 3356881401853350818),
+UInt256(9202689786278578344, 5461762186888902655, 12794699044536114258, 6713762803706701635),
+UInt256(1840537957255715668, 15849747696345421823, 17316335067874864144, 8721450190225160974),
+UInt256(3681075914511431337, 13252751318981292031, 16185926062040176672, 17442900380450321947),
+UInt256(7362151829022862675, 8058758564253032447, 13925108050370801729, 16439056687191092278),
+UInt256(1472430365804572535, 1611751712850606489, 10163719239557980992, 6977160152180128779),
+UInt256(2944860731609145070, 3223503425701212979, 1880694405406410368, 13954320304360257558),
+UInt256(5889721463218290140, 6447006851402425958, 3761388810812820737, 9461896535010963499),
+UInt256(11779442926436580280, 12894013702804851916, 7522777621625641475, 477048996312375382),
+UInt256(2355888585287316056, 2578802740560970383, 5193904339067038618, 3784758614004385400),
+UInt256(4711777170574632112, 5157605481121940766, 10387808678134077236, 7569517228008770799),
+UInt256(9423554341149264224, 10315210962243881533, 2328873282558602856, 15139034456017541598),
+UInt256(1884710868229852844, 16820437451416417599, 7844472285995541217, 14095853335429239290),
+UInt256(3769421736459705689, 15194130829123283582, 15688944571991082435, 9744962597148926963),
+UInt256(7538843472919411379, 11941517584537015549, 12931145070272613255, 1043181120588302309),
+UInt256(1507768694583882275, 17145698775875044402, 13654275458280253620, 11276682668343391432),
+UInt256(3015537389167764551, 15844653478040537189, 8861806842850955625, 4106621262977231247),
+UInt256(6031074778335529103, 13242562882371522762, 17723613685701911250, 8213242525954462494),
+UInt256(12062149556671058207, 8038381691033493909, 17000483297694270884, 16426485051908924987),
+UInt256(2412429911334211641, 8986373967690519428, 7089445474280764500, 3285297010381784998),
+UInt256(4824859822668423282, 17972747935381038856, 14178890948561529000, 6570594020763569995),
+UInt256(9649719645336846565, 17498751797052526097, 9911037823413506384, 13141188041527139990),
+UInt256(1929943929067369313, 3499750359410505219, 9360905194166521923, 6317586423047338322),
+UInt256(3859887858134738626, 6999500718821010439, 275066314623492230, 12635172846094676643),
+UInt256(7719775716269477252, 13999001437642020878, 550132629246984461, 6823601618479801669),
+UInt256(1543955143253895450, 10178497917012224822, 110026525849396892, 5054069138437870657),
+UInt256(3087910286507790901, 1910251760314898028, 220053051698793784, 10108138276875741314),
+UInt256(6175820573015581802, 3820503520629796056, 440106103397587569, 1769532480041931012),
+UInt256(12351641146031163604, 7641007041259592112, 880212206795175138, 3539064960083862023),
+UInt256(2470328229206232720, 16285596667219559715, 3865391256100945350, 15465208250984413698),
+UInt256(4940656458412465441, 14124449260729567814, 7730782512201890701, 12483672428259275779),
+UInt256(9881312916824930883, 9802154447749584012, 15461565024403781403, 6520600782808999942),
+UInt256(1976262583364986176, 13028477333775647772, 3092313004880756280, 12372166600787530958),
+UInt256(3952525166729972353, 7610210593841743928, 6184626009761512561, 6297589127865510300),
+UInt256(7905050333459944706, 15220421187683487856, 12369252019523025122, 12595178255731020600),
+UInt256(1581010066691988941, 6733433052278607894, 9852548033388425670, 17276430910113845413),
+UInt256(3162020133383977882, 13466866104557215789, 1258351993067299725, 16106117746518139210),
+]
+
+private let bid_multipliers1_bid64_5: [UInt256] = [
+UInt256(6324040266767955765, 8486988135404879962, 2516703986134599451, 13765491419326726803),
+UInt256(12648080533535911530, 16973976270809759924, 5033407972269198903, 9084238764943901990),
+UInt256(2529616106707182306, 3394795254161951984, 15764076853421481073, 9195545382472601045),
+UInt256(5059232213414364612, 6789590508323903969, 13081409633133410530, 18391090764945202089),
+UInt256(10118464426828729224, 13579181016647807939, 7716075192557269445, 18335437456180852562),
+UInt256(2023692885365745844, 17473231462297202880, 12611261482737184858, 14735133935461901482),
+UInt256(4047385770731491689, 16499718850884854145, 6775778891764818101, 11023523797214251348),
+UInt256(8094771541462983379, 14552693628060156674, 13551557783529636203, 3600303520718951080),
+UInt256(1618954308292596675, 17667933984579672627, 13778358000931658210, 4409409518885700540),
+UInt256(3237908616585193351, 16889123895449793639, 9109971928153764804, 8818819037771401079),
+UInt256(6475817233170386703, 15331503717190035662, 18219943856307529608, 17637638075542802157),
+UInt256(1295163446634077340, 14134347187663738102, 3643988771261505921, 14595574059334291401),
+UInt256(2590326893268154681, 9821950301617924588, 7287977542523011843, 10744404044959031186),
+UInt256(5180653786536309363, 1197156529526297560, 14575955085046023687, 3042064016208510756),
+UInt256(10361307573072618726, 2394313059052595121, 10705166096382495758, 6084128032417021512),
+UInt256(2072261514614523745, 4168211426552429347, 9519730848760319798, 1216825606483404303),
+UInt256(4144523029229047490, 8336422853104858695, 592717623811087980, 2433651212966808605),
+UInt256(8289046058458094980, 16672845706209717390, 1185435247622175960, 4867302425933617209),
+UInt256(1657809211691618996, 3334569141241943478, 237087049524435192, 973460485186723442),
+UInt256(3315618423383237992, 6669138282483886956, 474174099048870384, 1946920970373446884),
+UInt256(6631236846766475984, 13338276564967773912, 948348198097740768, 3893841940746893768),
+UInt256(1326247369353295196, 17425050571961196075, 3879018454361458476, 15536163647117020047),
+UInt256(2652494738706590393, 16403357070212840534, 7758036908722916953, 12625583220524488477),
+UInt256(5304989477413180787, 14359970066716129452, 15516073817445833907, 6804422367339425337),
+UInt256(10609978954826361575, 10273196059722707289, 12585403561182116198, 13608844734678850674),
+UInt256(2121995790965272315, 2054639211944541457, 17274475971204064532, 10100466576419590782),
+UInt256(4243991581930544630, 4109278423889082915, 16102207868698577449, 1754189079129629947),
+UInt256(8487983163861089260, 8218556847778165831, 13757671663687603282, 3508378158259259893),
+UInt256(1697596632772217852, 1643711369555633166, 6440883147479430979, 11769722075877582949),
+UInt256(3395193265544435704, 3287422739111266332, 12881766294958861959, 5092700078045614281),
+UInt256(6790386531088871408, 6574845478222532665, 7316788516208172302, 10185400156091228561),
+UInt256(1358077306217774281, 12383015539870237502, 12531404147467365430, 2037080031218245713),
+UInt256(2716154612435548563, 6319287006030923389, 6616064221225179244, 4074160062436491425),
+UInt256(5432309224871097126, 12638574012061846778, 13232128442450358488, 8148320124872982849),
+UInt256(10864618449742194253, 6830403950414141941, 8017512811191165360, 16296640249745965697),
+UInt256(2172923689948438850, 12434127234308559357, 16360897821205874364, 18016723308916834433),
+UInt256(4345847379896877701, 6421510394907567099, 14275051568702197113, 17586702544124117249),
+UInt256(8691694759793755402, 12843020789815134199, 10103359063694842611, 16726661014538682881),
+UInt256(1738338951958751080, 9947301787446847486, 5710020627480878845, 10724029832391557223),
+UInt256(3476677903917502161, 1447859501184143356, 11420041254961757691, 3001315591073562830),
+UInt256(6953355807835004322, 2895719002368286713, 4393338436213963766, 6002631182147125659),
+UInt256(1390671161567000864, 7957841429957477989, 878667687242792753, 4889875051171335455),
+UInt256(2781342323134001728, 15915682859914955978, 1757335374485585506, 9779750102342670910),
+UInt256(5562684646268003457, 13384621646120360340, 3514670748971171013, 1112756130975790204),
+UInt256(11125369292536006915, 8322499218531169064, 7029341497942342026, 2225512261951580407),
+UInt256(2225073858507201383, 1664499843706233812, 16163263558556109698, 445102452390316082),
+UInt256(4450147717014402766, 3328999687412467625, 13879783043402667780, 890204904780632163),
+UInt256(8900295434028805532, 6657999374824935251, 9312822013095783944, 1780409809561264326),
+UInt256(1780059086805761106, 8710297504448807696, 12930610846844887758, 7734779591396073512),
+UInt256(3560118173611522212, 17420595008897615393, 7414477619980223900, 15469559182792147023),
+]
+
+private let bid_multipliers1_bid64_6: [UInt256] = [
+UInt256(7120236347223044425, 16394445944085679170, 14828955239960447801, 12492374291874742430),
+UInt256(1424047269444608885, 3278889188817135834, 2965791047992089560, 6187823673116858810),
+UInt256(2848094538889217770, 6557778377634271668, 5931582095984179120, 12375647346233717619),
+UInt256(5696189077778435540, 13115556755268543336, 11863164191968358241, 6304550618757883621),
+UInt256(11392378155556871081, 7784369436827535057, 5279584310227164866, 12609101237515767242),
+UInt256(2278475631111374216, 5246222702107417334, 12123963306271163942, 17279215506470794742),
+UInt256(4556951262222748432, 10492445404214834669, 5801182538832776269, 16111686939232037867),
+UInt256(9113902524445496865, 2538146734720117722, 11602365077665552539, 13776629804754524117),
+UInt256(1822780504889099373, 507629346944023544, 9699170645016931154, 6444674775692815147),
+UInt256(3645561009778198746, 1015258693888047089, 951597216324310692, 12889349551385630293),
+UInt256(7291122019556397492, 2030517387776094178, 1903194432648621385, 7331955029061708970),
+UInt256(1458224403911279498, 7784801107039039482, 380638886529724277, 1466391005812341794),
+UInt256(2916448807822558996, 15569602214078078964, 761277773059448554, 2932782011624683588),
+UInt256(5832897615645117993, 12692460354446606312, 1522555546118897108, 5865564023249367176),
+UInt256(11665795231290235987, 6938176635183661008, 3045111092237794216, 11731128046498734352),
+UInt256(2333159046258047197, 8766332956520552848, 609022218447558843, 6035574424041657194),
+UInt256(4666318092516094394, 17532665913041105696, 1218044436895117686, 12071148848083314388),
+UInt256(9332636185032188789, 16618587752372659776, 2436088873790235373, 5695553622457077159),
+UInt256(1866527237006437757, 18081112809442173248, 487217774758047074, 12207157168717146402),
+UInt256(3733054474012875515, 17715481545174794880, 974435549516094149, 5967570263724741187),
+UInt256(7466108948025751031, 16984219016640038144, 1948871099032188298, 11935140527449482373),
+UInt256(1493221789605150206, 7086192618069917952, 389774219806437659, 13455074549715627445),
+UInt256(2986443579210300412, 14172385236139835904, 779548439612875319, 8463405025721703273),
+UInt256(5972887158420600825, 9898026398570120192, 1559096879225750638, 16926810051443406545),
+UInt256(11945774316841201651, 1349308723430688768, 3118193758451501277, 15406876029177261474),
+UInt256(2389154863368240330, 3959210559428048076, 15381034010657941548, 6770724020577362618),
+UInt256(4778309726736480660, 7918421118856096153, 12315323947606331480, 13541448041154725236),
+UInt256(9556619453472961320, 15836842237712192307, 6183903821503111345, 8636152008599898856),
+UInt256(1911323890694592264, 3167368447542438461, 8615478393784442915, 9105928031203800418),
+UInt256(3822647781389184528, 6334736895084876922, 17230956787568885830, 18211856062407600836),
+UInt256(7645295562778369056, 12669473790169753845, 16015169501428220045, 17976968051105650055),
+UInt256(1529059112555673811, 6223243572775861092, 6892382715027554332, 7284742424963040335),
+UInt256(3058118225111347622, 12446487145551722184, 13784765430055108664, 14569484849926080669),
+UInt256(6116236450222695245, 6446230217393892753, 9122786786400665713, 10692225626142609721),
+UInt256(12232472900445390490, 12892460434787785506, 18245573572801331427, 2937707178575667825),
+UInt256(2446494580089078098, 2578492086957557101, 7338463529302176608, 11655587879940864535),
+UInt256(4892989160178156196, 5156984173915114202, 14676927058604353217, 4864431686172177453),
+UInt256(9785978320356312392, 10313968347830228405, 10907110043499154818, 9728863372344354906),
+UInt256(1957195664071262478, 9441491299049866327, 9560119638183651610, 1945772674468870982),
+UInt256(3914391328142524957, 436238524390181039, 673495202657751604, 3891545348937741963),
+UInt256(7828782656285049914, 872477048780362078, 1346990405315503208, 7783090697875483925),
+UInt256(1565756531257009982, 14931890668723713708, 7648095710546921288, 1556618139575096785),
+UInt256(3131513062514019965, 11417037263737875800, 15296191421093842576, 3113236279150193570),
+UInt256(6263026125028039931, 4387330453766199985, 12145638768478133536, 6226472558300387140),
+UInt256(12526052250056079862, 8774660907532399971, 5844533463246715456, 12452945116600774280),
+UInt256(2505210450011215972, 9133629810990300640, 12236953136875074060, 17247984282287796149),
+UInt256(5010420900022431944, 18267259621980601281, 6027162200040596505, 16049224490866040682),
+UInt256(10020841800044863889, 18087775170251650946, 12054324400081193011, 13651704908022529747),
+UInt256(2004168360008972777, 18374950293017971482, 2410864880016238602, 6419689796346416273),
+UInt256(4008336720017945555, 18303156512326391348, 4821729760032477204, 12839379592692832546),
+]
+
+private let bid_multipliers1_bid64_7: [UInt256] = [
+UInt256(8016673440035891111, 18159568950943231080, 9643459520064954409, 7232015111676113475),
+UInt256(1603334688007178222, 7321262604930556539, 5618040718754901205, 1446403022335222695),
+UInt256(3206669376014356444, 14642525209861113078, 11236081437509802410, 2892806044670445390),
+UInt256(6413338752028712889, 10838306346012674541, 4025418801310053204, 5785612089340890780),
+UInt256(1282667750405742577, 16925056528170176201, 805083760262010640, 15914517676835819449),
+UInt256(2565335500811485155, 15403368982630800786, 1610167520524021281, 13382291279962087282),
+UInt256(5130671001622970311, 12359993891552049956, 3220335041048042563, 8317838486214622947),
+UInt256(10261342003245940623, 6273243709394548296, 6440670082096085126, 16635676972429245894),
+UInt256(2052268400649188124, 12322695186104640628, 16045529275386858318, 3327135394485849179),
+UInt256(4104536801298376249, 6198646298499729641, 13644314477064165020, 6654270788971698358),
+UInt256(8209073602596752498, 12397292596999459283, 8841884880418778424, 13308541577943396715),
+UInt256(1641814720519350499, 13547504963625622826, 5457725790825666008, 2661708315588679343),
+UInt256(3283629441038700999, 8648265853541694036, 10915451581651332016, 5323416631177358686),
+UInt256(6567258882077401998, 17296531707083388073, 3384159089593112416, 10646833262354717372),
+UInt256(1313451776415480399, 14527352785642408584, 4366180632660532806, 9508064281954764121),
+UInt256(2626903552830960799, 10607961497575265552, 8732361265321065613, 569384490199976626),
+UInt256(5253807105661921599, 2769178921440979488, 17464722530642131226, 1138768980399953251),
+UInt256(10507614211323843198, 5538357842881958977, 16482700987574710836, 2277537960799906502),
+UInt256(2101522842264768639, 12175718012802122765, 3296540197514942167, 4144856406901891624),
+UInt256(4203045684529537279, 5904691951894693914, 6593080395029884334, 8289712813803783248),
+UInt256(8406091369059074558, 11809383903789387828, 13186160790059768668, 16579425627607566495),
+UInt256(1681218273811814911, 13429923224983608535, 6326580972753864056, 18073280384489154592),
+UInt256(3362436547623629823, 8413102376257665454, 12653161945507728113, 17699816695268757568),
+UInt256(6724873095247259646, 16826204752515330909, 6859579817305904611, 16952889316827963519),
+UInt256(1344974619049451929, 7054589765244976505, 1371915963461180922, 7079926678107503027),
+UInt256(2689949238098903858, 14109179530489953010, 2743831926922361844, 14159853356215006054),
+UInt256(5379898476197807717, 9771614987270354404, 5487663853844723689, 9872962638720460492),
+UInt256(10759796952395615435, 1096485900831157192, 10975327707689447379, 1299181203731369368),
+UInt256(2151959390479123087, 219297180166231438, 9573763171021710122, 3949185055488184197),
+UInt256(4303918780958246174, 438594360332462877, 700782268333868628, 7898370110976368394),
+UInt256(8607837561916492348, 877188720664925754, 1401564536667737256, 15796740221952736787),
+UInt256(1721567512383298469, 11243484188358716120, 7659010536817368097, 14227394488616278327),
+UInt256(3443135024766596939, 4040224303007880624, 15318021073634736195, 10008044903523005038),
+UInt256(6886270049533193878, 8080448606015761249, 12189298073559920775, 1569345733336458460),
+UInt256(1377254009906638775, 12684136165428883219, 9816557244195804801, 7692566776151112339),
+UInt256(2754508019813277551, 6921528257148214823, 1186370414682057986, 15385133552302224677),
+UInt256(5509016039626555102, 13843056514296429646, 2372740829364115973, 12323523030894897738),
+UInt256(11018032079253110205, 9239368954883307676, 4745481658728231947, 6200301988080243859),
+UInt256(2203606415850622041, 1847873790976661535, 4638445146487556712, 12308106841841779742),
+UInt256(4407212831701244082, 3695747581953323070, 9276890292975113425, 6169469609974007867),
+UInt256(8814425663402488164, 7391495163906646141, 107036512240675234, 12338939219948015734),
+UInt256(1762885132680497632, 16235694291748970521, 21407302448135046, 17225183102957244440),
+UInt256(3525770265360995265, 14024644509788389426, 42814604896270093, 16003622132204937264),
+UInt256(7051540530721990531, 9602544945867227236, 85629209792540187, 13560500190700322911),
+UInt256(1410308106144398106, 5609857803915355770, 7395823471442328683, 17469495297107705875),
+UInt256(2820616212288796212, 11219715607830711540, 14791646942884657367, 16492246520505860134),
+UInt256(5641232424577592425, 3992687141951871465, 11136549812059763119, 14537748967302168652),
+UInt256(11282464849155184850, 7985374283903742931, 3826355550409974623, 10628753860894785687),
+UInt256(2256492969831036970, 1597074856780748586, 4454619924823905247, 16883146031146598431),
+UInt256(4512985939662073940, 3194149713561497172, 8909239849647810495, 15319547988583645245),
+]
+
+private let bid_multipliers1_bid64_8: [UInt256] = [
+UInt256(9025971879324147880, 6388299427122994344, 17818479699295620991, 12192351903457738873),
+UInt256(1805194375864829576, 1277659885424598868, 18321091198826765491, 2438470380691547775),
+UInt256(3610388751729659152, 2555319770849197737, 18195438323943979366, 4876940761383095549),
+UInt256(7220777503459318304, 5110639541698395475, 17944132574178407116, 9753881522766191098),
+UInt256(1444155500691863660, 15779523167307320387, 18346221773803322716, 1950776304553238220),
+UInt256(2888311001383727321, 13112302260905089159, 18245699473897093816, 3901552609106476440),
+UInt256(5776622002767454643, 7777860448100626703, 18044654874084636016, 7803105218212952879),
+UInt256(11553244005534909286, 15555720896201253407, 17642565674459720416, 15606210436425905757),
+UInt256(2310648801106981857, 6800492993982161004, 14596559579117675052, 17878637346252822445),
+UInt256(4621297602213963714, 13600985987964322009, 10746375084525798489, 17310530618796093273),
+UInt256(9242595204427927429, 8755227902219092403, 3046006095342045363, 16174317163882634929),
+UInt256(1848519040885585485, 16508440839411459773, 7987898848552229719, 3234863432776526986),
+UInt256(3697038081771170971, 14570137605113367930, 15975797697104459438, 6469726865553053972),
+UInt256(7394076163542341943, 10693531136517184245, 13504851320499367260, 12939453731106107943),
+UInt256(1478815232708468388, 13206752671529167818, 13769016708325604421, 13655937190446952559),
+UInt256(2957630465416936777, 7966761269348784021, 9091289342941657227, 8865130307184353501),
+UInt256(5915260930833873554, 15933522538697568042, 18182578685883314454, 17730260614368707001),
+UInt256(11830521861667747109, 13420301003685584469, 17918413298057077293, 17013777155027862386),
+UInt256(2366104372333549421, 17441455459704758186, 14651729103837146428, 7092104245747482801),
+UInt256(4732208744667098843, 16436166845699964757, 10856714133964741240, 14184208491494965601),
+UInt256(9464417489334197687, 14425589617690377899, 3266684194219930865, 9921672909280379586),
+UInt256(1892883497866839537, 10263815553021896226, 4342685653585896496, 5673683396597986241),
+UInt256(3785766995733679075, 2080887032334240836, 8685371307171792992, 11347366793195972481),
+UInt256(7571533991467358150, 4161774064668481672, 17370742614343585985, 4247989512682393345),
+UInt256(1514306798293471630, 832354812933696334, 10852846152352537843, 8228295532020299316),
+UInt256(3028613596586943260, 1664709625867392669, 3258948230995524070, 16456591064040598631),
+UInt256(6057227193173886520, 3329419251734785338, 6517896461991048141, 14466438054371645646),
+UInt256(12114454386347773040, 6658838503469570676, 13035792923982096283, 10486132035033739675),
+UInt256(2422890877269554608, 1331767700693914135, 6296507399538329579, 16854621665974389228),
+UInt256(4845781754539109216, 2663535401387828270, 12593014799076659159, 15262499258239226840),
+UInt256(9691563509078218432, 5327070802775656541, 6739285524443766703, 12078254442768902064),
+UInt256(1938312701815643686, 8444111790038951954, 12415903549114484310, 6104999703295690736),
+UInt256(3876625403631287372, 16888223580077903909, 6385063024519417004, 12209999406591381472),
+UInt256(7753250807262574745, 15329703086446256202, 12770126049038834009, 5973254739473211328),
+UInt256(1550650161452514949, 3065940617289251240, 9932722839291587448, 4883999762636552589),
+UInt256(3101300322905029898, 6131881234578502481, 1418701604873623280, 9767999525273105178),
+UInt256(6202600645810059796, 12263762469157004962, 2837403209747246561, 1089254976836658739),
+UInt256(12405201291620119593, 6080780864604458308, 5674806419494493122, 2178509953673317478),
+UInt256(2481040258324023918, 12284202617146622631, 4824310098640808947, 11503748434960394466),
+UInt256(4962080516648047837, 6121661160583693646, 9648620197281617895, 4560752796211237315),
+UInt256(9924161033296095674, 12243322321167387293, 850496320853684174, 9121505592422474629),
+UInt256(1984832206659219134, 17206059723201118751, 7548796893654557481, 5513649933226405249),
+UInt256(3969664413318438269, 15965375372692685886, 15097593787309114962, 11027299866452810498),
+UInt256(7939328826636876539, 13484006671675820157, 11748443500908678309, 3607855659196069380),
+UInt256(1587865765327375307, 17454196593302805324, 6039037514923645985, 721571131839213876),
+UInt256(3175731530654750615, 16461649112896059032, 12078075029847291970, 1443142263678427752),
+UInt256(6351463061309501231, 14476554152082566449, 5709405985985032324, 2886284527356855504),
+UInt256(12702926122619002463, 10506364230455581282, 11418811971970064648, 5772569054713711007),
+UInt256(2540585224523800492, 13169319290316847226, 2283762394394012929, 12222560255168473171),
+UInt256(5081170449047600985, 7891894506924142836, 4567524788788025859, 5998376436627394726),
+]
+
+private let bid_multipliers1_bid64_9: [UInt256] = [
+UInt256(10162340898095201970, 15783789013848285672, 9135049577576051718, 11996752873254789452),
+UInt256(2032468179619040394, 3156757802769657134, 9205707544999030990, 2399350574650957891),
+UInt256(4064936359238080788, 6313515605539314268, 18411415089998061980, 4798701149301915781),
+UInt256(8129872718476161576, 12627031211078628537, 18376086106286572344, 9597402298603831562),
+UInt256(1625974543695232315, 6214755056957636030, 14743263665483045438, 9298178089204586959),
+UInt256(3251949087390464630, 12429510113915272061, 11039783257256539261, 149612104699622302),
+UInt256(6503898174780929261, 6412276154120992507, 3632822440803526906, 299224209399244603),
+UInt256(1300779634956185852, 4971804045566108824, 11794610932386436350, 14817240100847490214),
+UInt256(2601559269912371704, 9943608091132217649, 5142477791063321085, 11187736127985428811),
+UInt256(5203118539824743409, 1440472108554883682, 10284955582126642171, 3928728182261306006),
+UInt256(10406237079649486818, 2880944217109767365, 2123167090543732726, 7857456364522612011),
+UInt256(2081247415929897363, 11644235287647684442, 11492679862334477514, 16328886531872163695),
+UInt256(4162494831859794727, 4841726501585817269, 4538615650959403413, 14211028990034775774),
+UInt256(8324989663719589454, 9683453003171634538, 9077231301918806827, 9975313906359999932),
+UInt256(1664997932743917890, 16694085859601968200, 9194143889867582011, 16752458040239641280),
+UInt256(3329995865487835781, 14941427645494384784, 18388287779735164023, 15058172006769730943),
+UInt256(6659991730975671563, 11436111217279217953, 18329831485760776431, 11669599939829910269),
+UInt256(1331998346195134312, 13355268687681574560, 7355315111894065609, 9712617617449802701),
+UInt256(2663996692390268625, 8263793301653597504, 14710630223788131219, 978491161190053785),
+UInt256(5327993384780537250, 16527586603307195009, 10974516373866710822, 1956982322380107569),
+UInt256(10655986769561074501, 14608429132904838403, 3502288674023870028, 3913964644760215138),
+UInt256(2131197353912214900, 6611034641322878003, 15457852993772415298, 8161490558435863674),
+UInt256(4262394707824429800, 13222069282645756007, 12468961913835278980, 16322981116871727348),
+UInt256(8524789415648859601, 7997394491581960399, 6491179753961006345, 14199218160033903080),
+UInt256(1704957883129771920, 5288827713058302403, 1298235950792201269, 2839843632006780616),
+UInt256(3409915766259543840, 10577655426116604806, 2596471901584402538, 5679687264013561232),
+UInt256(6819831532519087681, 2708566778523657996, 5192943803168805076, 11359374528027122464),
+UInt256(1363966306503817536, 4231062170446641922, 8417286390117581661, 13339921349831155463),
+UInt256(2727932613007635072, 8462124340893283844, 16834572780235163323, 8233098625952759309),
+UInt256(5455865226015270144, 16924248681786567689, 15222401486760775030, 16466197251905518618),
+UInt256(10911730452030540289, 15401753289863583763, 11998058899811998445, 14485650430101485619),
+UInt256(2182346090406108057, 17837745916940358045, 9778309409446220335, 10275827715504117771),
+UInt256(4364692180812216115, 17228747760171164475, 1109874745182889055, 2104911357298683925),
+UInt256(8729384361624432231, 16010751446632777334, 2219749490365778110, 4209822714597367849),
+UInt256(1745876872324886446, 6891499104068465790, 443949898073155622, 841964542919473570),
+UInt256(3491753744649772892, 13782998208136931580, 887899796146311244, 1683929085838947140),
+UInt256(6983507489299545785, 9119252342564311544, 1775799592292622488, 3367858171677894279),
+UInt256(1396701497859909157, 1823850468512862308, 15112555177426165790, 8052269263819399503),
+UInt256(2793402995719818314, 3647700937025724617, 11778366281142779964, 16104538527638799005),
+UInt256(5586805991439636628, 7295401874051449235, 5109988488576008313, 13762332981568046393),
+UInt256(11173611982879273256, 14590803748102898470, 10219976977152016627, 9077921889426541170),
+UInt256(2234722396575854651, 6607509564362490017, 5733344210172313648, 12883630822111039204),
+UInt256(4469444793151709302, 13215019128724980034, 11466688420344627297, 7320517570512526791),
+UInt256(8938889586303418605, 7983294183740408453, 4486632766979702978, 14641035141025053582),
+UInt256(1787777917260683721, 1596658836748081690, 11965372997621671565, 6617555842946921040),
+UInt256(3575555834521367442, 3193317673496163381, 5484001921533791514, 13235111685893842080),
+UInt256(7151111669042734884, 6386635346992326762, 10968003843067583029, 8023479298078132543),
+UInt256(1430222333808546976, 16034722328366106645, 5882949583355426929, 1604695859615626509),
+UInt256(2860444667617093953, 13622700583022661674, 11765899166710853858, 3209391719231253017),
+UInt256(5720889335234187907, 8798657092335771733, 5085054259712156100, 6418783438462506034),
+]
+
+private let bid_multipliers1_bid64_10: [UInt256] = [
+UInt256(11441778670468375814, 17597314184671543466, 10170108519424312200, 12837566876925012068),
+UInt256(2288355734093675162, 18276858095901949986, 2034021703884862440, 2567513375385002414),
+UInt256(4576711468187350325, 18106972118094348356, 4068043407769724880, 5135026750770004827),
+UInt256(9153422936374700651, 17767200162479145096, 8136086815539449760, 10270053501540009654),
+UInt256(1830684587274940130, 7242788847237739342, 9005914992591710598, 9432708329791822578),
+UInt256(3661369174549880260, 14485577694475478684, 18011829985183421197, 418672585874093539),
+UInt256(7322738349099760521, 10524411315241405753, 17576915896657290778, 837345171748187077),
+UInt256(1464547669819952104, 5794231077790191473, 18272778438299099448, 7546166663833458062),
+UInt256(2929095339639904208, 11588462155580382947, 18098812802888647280, 15092333327666916124),
+UInt256(5858190679279808417, 4730180237451214279, 17750881532067742945, 11737922581624280632),
+UInt256(11716381358559616834, 9460360474902428559, 17055018990425934275, 5029101089539009647),
+UInt256(2343276271711923366, 16649467353948127004, 14479050242310917824, 12073866662133532899),
+UInt256(4686552543423846733, 14852190634186702393, 10511356410912284033, 5700989250557514182),
+UInt256(9373105086847693467, 11257637194663853171, 2575968748115016450, 11401978501115028364),
+UInt256(1874621017369538693, 9630225068416591280, 11583240193848734259, 13348442144448736643),
+UInt256(3749242034739077387, 813706063123630945, 4719736313987916903, 8250140215187921669),
+UInt256(7498484069478154774, 1627412126247261890, 9439472627975833806, 16500280430375843337),
+UInt256(1499696813895630954, 15082877684217093670, 16645289784562808054, 3300056086075168668),
+UInt256(2999393627791261909, 11719011294724635725, 14843835495416064492, 6600112172150337335),
+UInt256(5998787255582523819, 4991278515739719835, 11240926917122577368, 13200224344300674670),
+UInt256(11997574511165047638, 9982557031479439671, 4035109760535603121, 7953704614891797724),
+UInt256(2399514902233009527, 13064557850521618903, 15564417211074761917, 1590740922978359545),
+UInt256(4799029804466019055, 7682371627333686191, 12682090348439972218, 3181481845956719090),
+UInt256(9598059608932038110, 15364743254667372383, 6917436623170392820, 6362963691913438179),
+UInt256(1919611921786407622, 3072948650933474476, 12451533768859809533, 12340639182608418606),
+UInt256(3839223843572815244, 6145897301866948953, 6456323464010067451, 6234534291507285595),
+UInt256(7678447687145630488, 12291794603733897906, 12912646928020134902, 12469068583014571190),
+UInt256(1535689537429126097, 13526405364972510550, 17339924644571668273, 6183162531344824562),
+UInt256(3071379074858252195, 8606066656235469485, 16233105215433784930, 12366325062689649123),
+UInt256(6142758149716504390, 17212133312470938971, 14019466357158018245, 6285906051669746629),
+UInt256(12285516299433008781, 15977522551232326327, 9592188640606484874, 12571812103339493257),
+UInt256(2457103259886601756, 6884853324988375588, 12986484172347027944, 9893060050151719298),
+UInt256(4914206519773203512, 13769706649976751177, 7526224270984504273, 1339376026593886980),
+UInt256(9828413039546407025, 9092669226243950738, 15052448541969008546, 2678752053187773959),
+UInt256(1965682607909281405, 1818533845248790147, 14078536152619532678, 15293145669605196085),
+UInt256(3931365215818562810, 3637067690497580295, 9710328231529513741, 12139547265500840554),
+UInt256(7862730431637125620, 7274135380995160591, 973912389349475867, 5832350457292129491),
+UInt256(1572546086327425124, 1454827076199032118, 3884131292611805496, 12234516535684156868),
+UInt256(3145092172654850248, 2909654152398064236, 7768262585223610993, 6022288997658762120),
+UInt256(6290184345309700496, 5819308304796128472, 15536525170447221986, 12044577995317524239),
+UInt256(12580368690619400992, 11638616609592256945, 12626306267184892357, 5642411916925496862),
+UInt256(2516073738123880198, 9706420951402272035, 9903958882920799117, 15885877642352740666),
+UInt256(5032147476247760397, 966097829094992455, 1361173692132046619, 13325011210995929715),
+UInt256(10064294952495520794, 1932195658189984910, 2722347384264093239, 8203278348282307813),
+UInt256(2012858990499104158, 15143834390605638274, 15301864735820459940, 12708702113882192533),
+UInt256(4025717980998208317, 11840924707501724933, 12156985397931368265, 6970660154054833449),
+UInt256(8051435961996416635, 5235105341293898251, 5867226722153184914, 13941320308109666897),
+UInt256(1610287192399283327, 1047021068258779650, 4862794159172547306, 2788264061621933380),
+UInt256(3220574384798566654, 2094042136517559300, 9725588318345094612, 5576528123243866759),
+UInt256(6441148769597133308, 4188084273035118601, 1004432562980637608, 11153056246487733517),
+]
+
+private let bid_multipliers1_bid64_11: [UInt256] = [
+UInt256(1288229753919426661, 11905663298832754689, 14958281771563768814, 9609308878781367350),
+UInt256(2576459507838853323, 5364582523955957763, 11469819469417986013, 771873683853183084),
+UInt256(5152919015677706646, 10729165047911915527, 4492894865126420410, 1543747367706366168),
+UInt256(10305838031355413293, 3011586022114279438, 8985789730252840820, 3087494735412732335),
+UInt256(2061167606271082658, 11670363648648586857, 5486506760792478487, 4306847761824456791),
+UInt256(4122335212542165317, 4893983223587622098, 10973013521584956974, 8613695523648913581),
+UInt256(8244670425084330634, 9787966447175244197, 3499282969460362332, 17227391047297827161),
+UInt256(1648934085016866126, 16714988548402690132, 4389205408633982789, 14513524653685296402),
+UInt256(3297868170033732253, 14983233023095828648, 8778410817267965579, 10580305233661041188),
+UInt256(6595736340067464507, 11519721972482105680, 17556821634535931159, 2713866393612530759),
+UInt256(1319147268013492901, 9682642023980241782, 10890061956391006878, 4232122093464416475),
+UInt256(2638294536026985803, 918539974250931949, 3333379839072462140, 8464244186928832950),
+UInt256(5276589072053971606, 1837079948501863898, 6666759678144924280, 16928488373857665900),
+UInt256(10553178144107943212, 3674159897003727796, 13333519356289848561, 15410232674005780184),
+UInt256(2110635628821588642, 8113529608884566205, 13734750315483700681, 17839441793768797330),
+UInt256(4221271257643177284, 16227059217769132411, 9022756557257849747, 17232139513828043043),
+UInt256(8442542515286354569, 14007374361828713206, 18045513114515699495, 16017534953946534470),
+UInt256(1688508503057270913, 17558870131333383934, 3609102622903139899, 3203506990789306894),
+UInt256(3377017006114541827, 16670996188957216252, 7218205245806279798, 6407013981578613788),
+UInt256(6754034012229083655, 14895248304204880888, 14436410491612559596, 12814027963157227576),
+UInt256(1350806802445816731, 2979049660840976177, 13955328542548242888, 17320200851599086808),
+UInt256(2701613604891633462, 5958099321681952355, 9463913011386934161, 16193657629488622000),
+UInt256(5403227209783266924, 11916198643363904711, 481081949064316707, 13940571185267692384),
+UInt256(10806454419566533849, 5385653213018257806, 962163898128633415, 9434398296825833152),
+UInt256(2161290883913306769, 15834525901571292854, 192432779625726683, 1886879659365166631),
+UInt256(4322581767826613539, 13222307729433034092, 384865559251453366, 3773759318730333261),
+UInt256(8645163535653227079, 7997871385156516568, 769731118502906732, 7547518637460666522),
+UInt256(1729032707130645415, 16356969535998944606, 7532643853184401992, 16266898986459774598),
+UInt256(3458065414261290831, 14267194998288337596, 15065287706368803985, 14087053899209997579),
+UInt256(6916130828522581663, 10087645922867123577, 11683831339028056355, 9727363724710443541),
+UInt256(1383226165704516332, 13085575628799155685, 2336766267805611271, 1945472744942088709),
+UInt256(2766452331409032665, 7724407183888759754, 4673532535611222542, 3890945489884177417),
+UInt256(5532904662818065330, 15448814367777519508, 9347065071222445084, 7781890979768354833),
+UInt256(11065809325636130661, 12450884661845487401, 247386068735338552, 15563781959536709665),
+UInt256(2213161865127226132, 6179525747111007803, 7428174843230888356, 17870151650874983226),
+UInt256(4426323730254452264, 12359051494222015606, 14856349686461776713, 17293559228040414836),
+UInt256(8852647460508904529, 6271358914734479597, 11265955299214001811, 16140374382371278055),
+UInt256(1770529492101780905, 16011667041914537212, 5942539874584710685, 10606772505958076258),
+UInt256(3541058984203561811, 13576590010119522808, 11885079749169421371, 2766800938206600899),
+UInt256(7082117968407123623, 8706435946529494001, 5323415424629291126, 5533601876413201798),
+UInt256(1416423593681424724, 12809333633531629769, 15822078343893499518, 1106720375282640360),
+UInt256(2832847187362849449, 7171923193353707923, 13197412614077447420, 2213440750565280719),
+UInt256(5665694374725698898, 14343846386707415847, 7948081154445343224, 4426881501130561438),
+UInt256(11331388749451397797, 10240948699705280078, 15896162308890686448, 8853763002261122876),
+UInt256(2266277749890279559, 9426887369424876662, 3179232461778137289, 12838799044677955545),
+UInt256(4532555499780559119, 407030665140201708, 6358464923556274579, 7230854015646359474),
+UInt256(9065110999561118238, 814061330280403416, 12716929847112549158, 14461708031292718948),
+UInt256(1813022199912223647, 11230858710281811652, 17300781228390151124, 10271039235742364436),
+UInt256(3626044399824447295, 4014973346854071689, 16154818383070750633, 2095334397775177256),
+UInt256(7252088799648894590, 8029946693708143379, 13862892692431949650, 4190668795550354512),
+]
+
+private let bid_multipliers1_bid64_12: [UInt256] = [
+UInt256(1450417759929778918, 1605989338741628675, 17529973797454031222, 15595529018077712196),
+UInt256(2900835519859557836, 3211978677483257351, 16613203521198510829, 12744313962445872775),
+UInt256(5801671039719115672, 6423957354966514703, 14779662968687470043, 7041883851182193933),
+UInt256(11603342079438231344, 12847914709933029407, 11112581863665388470, 14083767702364387865),
+UInt256(2320668415887646268, 17326978200954247174, 5911865187474988017, 6506102355214787897),
+UInt256(4641336831775292537, 16207212328198942732, 11823730374949976034, 13012204710429575793),
+UInt256(9282673663550585075, 13967680582688333849, 5200716676190400453, 7577665347149599969),
+UInt256(1856534732710117015, 2793536116537666769, 15797538594205721383, 8894230698913740641),
+UInt256(3713069465420234030, 5587072233075333539, 13148333114701891150, 17788461397827481281),
+UInt256(7426138930840468060, 11174144466150667079, 7849922155694230685, 17130178721945410945),
+UInt256(1485227786168093612, 2234828893230133415, 16327379690106487429, 18183431003356723482),
+UInt256(2970455572336187224, 4469657786460266831, 14208015306503423243, 17920117933003895348),
+UInt256(5940911144672374448, 8939315572920533663, 9969286539297294871, 17393491792298239079),
+UInt256(11881822289344748896, 17878631145841067327, 1491829004885038127, 16340239510886926542),
+UInt256(2376364457868949779, 7265075043910123788, 11366412245202738595, 3268047902177385309),
+UInt256(4752728915737899558, 14530150087820247577, 4286080416695925574, 6536095804354770617),
+UInt256(9505457831475799117, 10613556101930943538, 8572160833391851148, 13072191608709541233),
+UInt256(1901091566295159823, 9501408849870009354, 1714432166678370229, 13682484765967639217),
+UInt256(3802183132590319647, 556073626030467092, 3428864333356740459, 8918225458225726817),
+UInt256(7604366265180639294, 1112147252060934184, 6857728666713480918, 17836450916451453633),
+UInt256(1520873253036127858, 14979824709379828129, 12439592177568427153, 7256638998032201050),
+UInt256(3041746506072255717, 11512905345050104643, 6432440281427302690, 14513277996064402100),
+UInt256(6083493012144511435, 4579066616390657670, 12864880562854605381, 10579811918419252584),
+UInt256(12166986024289022870, 9158133232781315341, 7283017051999659147, 2712879763128953551),
+UInt256(2433397204857804574, 1831626646556263068, 5145952225141842152, 11610622396851521680),
+UInt256(4866794409715609148, 3663253293112526136, 10291904450283684305, 4774500719993491744),
+UInt256(9733588819431218296, 7326506586225052273, 2137064826857816994, 9549001439986983487),
+UInt256(1946717763886243659, 5154650131986920777, 15184808224339204691, 12977846732223127667),
+UInt256(3893435527772487318, 10309300263973841555, 11922872374968857767, 7508949390736703718),
+UInt256(7786871055544974637, 2171856454238131495, 5399000676228163918, 15017898781473407436),
+UInt256(1557374211108994927, 7813068920331446945, 8458497764729453430, 3003579756294681488),
+UInt256(3114748422217989854, 15626137840662893890, 16916995529458906860, 6007159512589362975),
+UInt256(6229496844435979709, 12805531607616236165, 15387246985208262104, 12014319025178725949),
+UInt256(12458993688871959419, 7164319141522920715, 12327749896706972593, 5581893976647900281),
+UInt256(2491798737774391883, 16190259087272225435, 17222945238309035811, 8495076424813400703),
+UInt256(4983597475548783767, 13933774100834899255, 15999146402908520006, 16990152849626801406),
+UInt256(9967194951097567535, 9420804127960246895, 13551548732107488397, 15533561625544051195),
+UInt256(1993438990219513507, 1884160825592049379, 2710309746421497679, 10485409954592630886),
+UInt256(3986877980439027014, 3768321651184098758, 5420619492842995359, 2524075835475710155),
+UInt256(7973755960878054028, 7536643302368197516, 10841238985685990718, 5048151670951420310),
+UInt256(1594751192175610805, 12575375104699370472, 16925643056104839436, 8388327963674104709),
+UInt256(3189502384351221611, 6704006135689189329, 15404542038500127256, 16776655927348209417),
+UInt256(6379004768702443222, 13408012271378378659, 12362340003290702897, 15106567780986867217),
+UInt256(12758009537404886445, 8369280469047205703, 6277935932871854179, 11766391488264182818),
+UInt256(2551601907480977289, 1673856093809441140, 12323633630800101805, 9731975927136657210),
+UInt256(5103203814961954578, 3347712187618882281, 6200523187890651995, 1017207780563762804),
+UInt256(10206407629923909156, 6695424375237764562, 12401046375781303990, 2034415561127525608),
+UInt256(2041281525984781831, 5028433689789463235, 13548255719381991767, 11474929556451236092),
+UInt256(4082563051969563662, 10056867379578926471, 8649767365054431919, 4503115039192920567),
+UInt256(8165126103939127325, 1666990685448301326, 17299534730108863838, 9006230078385841133),
+]
+
+private let bid_multipliers1_bid64_13: [UInt256] = [
+UInt256(1633025220787825465, 333398137089660265, 7149255760763683090, 16558641274644809520),
+UInt256(3266050441575650930, 666796274179320530, 14298511521527366181, 14670538475580067423),
+UInt256(6532100883151301860, 1333592548358641061, 10150278969345180747, 10894332877450583230),
+UInt256(1306420176630260372, 266718509671728212, 5719404608610946472, 13246913019715847616),
+UInt256(2612840353260520744, 533437019343456424, 11438809217221892945, 8047081965722143615),
+UInt256(5225680706521041488, 1066874038686912849, 4430874360734234274, 16094163931444287230),
+UInt256(10451361413042082976, 2133748077373825698, 8861748721468468549, 13741583789179022844),
+UInt256(2090272282608416595, 4116098430216675462, 16529745003261335002, 13816363202061535539),
+UInt256(4180544565216833190, 8232196860433350925, 14612745932813118389, 9185982330413519461),
+UInt256(8361089130433666380, 16464393720866701851, 10778747791916685162, 18371964660827038922),
+UInt256(1672217826086733276, 3292878744173340370, 5845098373125247355, 14742439376391138754),
+UInt256(3344435652173466552, 6585757488346680740, 11690196746250494711, 11038134679072725892),
+UInt256(6688871304346933104, 13171514976693361481, 4933649418791437807, 3629525284435900168),
+UInt256(1337774260869386620, 17391698254306313589, 986729883758287561, 8104602686371000680),
+UInt256(2675548521738773241, 16336652434903075562, 1973459767516575122, 16209205372742001360),
+UInt256(5351097043477546483, 14226560796096599508, 3946919535033150245, 13971666671774451104),
+UInt256(10702194086955092967, 10006377518483647400, 7893839070066300491, 9496589269839350592),
+UInt256(2140438817391018593, 9379973133180550126, 8957465443497080744, 12967364298193601088),
+UInt256(4280877634782037187, 313202192651548636, 17914930886994161489, 7487984522677650560),
+UInt256(8561755269564074374, 626404385303097273, 17383117700278771362, 14975969045355301120),
+UInt256(1712351053912814874, 14882676136028260747, 10855321169539574918, 17752589068038701517),
+UInt256(3424702107825629749, 11318608198346969879, 3263898265369598221, 17058434062367851418),
+UInt256(6849404215651259499, 4190472322984388142, 6527796530739196443, 15670124051026151219),
+UInt256(1369880843130251899, 15595489723564518921, 4994908120889749611, 17891420069172871537),
+UInt256(2739761686260503799, 12744235373419486226, 9989816241779499223, 17336096064636191458),
+UInt256(5479523372521007599, 7041726673129420837, 1532888409849446831, 16225448055562831299),
+UInt256(10959046745042015198, 14083453346258841674, 3065776819698893663, 14004152037416110981),
+UInt256(2191809349008403039, 13884737113477499304, 7991852993423599379, 2800830407483222197),
+UInt256(4383618698016806079, 9322730153245446992, 15983705986847198758, 5601660814966444393),
+UInt256(8767237396033612159, 198716232781342369, 13520667899984845900, 11203321629932888785),
+UInt256(1753447479206722431, 14797138505523909766, 13772180024222700149, 13308710770212308727),
+UInt256(3506894958413444863, 11147532937338267917, 9097615974735848683, 8170677466715065837),
+UInt256(7013789916826889727, 3848321800966984218, 18195231949471697366, 16341354933430131674),
+UInt256(1402757983365377945, 8148361989677217490, 3639046389894339473, 6957619801427936658),
+UInt256(2805515966730755890, 16296723979354434980, 7278092779788678946, 13915239602855873316),
+UInt256(5611031933461511781, 14146703884999318344, 14556185559577357893, 9383735132002195016),
+UInt256(11222063866923023563, 9846663696289085073, 10665627045445164171, 320726190294838416),
+UInt256(2244412773384604712, 13037379183483547984, 5822474223830943157, 7442842867542788330),
+UInt256(4488825546769209425, 7628014293257544352, 11644948447661886314, 14885685735085576660),
+UInt256(8977651093538418850, 15256028586515088705, 4843152821614221013, 11324627396461601703),
+UInt256(1795530218707683770, 3051205717303017741, 968630564322844202, 13332971923518051311),
+UInt256(3591060437415367540, 6102411434606035482, 1937261128645688405, 8219199773326551005),
+UInt256(7182120874830735080, 12204822869212070964, 3874522257291376810, 16438399546653102009),
+UInt256(1436424174966147016, 2440964573842414192, 15532299710425916654, 18045075168298261695),
+UInt256(2872848349932294032, 4881929147684828385, 12617855347142281693, 17643406262886971773),
+UInt256(5745696699864588064, 9763858295369656771, 6788966620575011771, 16840068452064391930),
+UInt256(11491393399729176129, 1080972517029761926, 13577933241150023543, 15233392830419232244),
+UInt256(2298278679945835225, 14973589762373593678, 2715586648230004708, 14114725010309577419),
+UInt256(4596557359891670451, 11500435451037635740, 5431173296460009417, 9782705946909603221),
+UInt256(9193114719783340903, 4554126828365719864, 10862346592920018835, 1118667820109654825),
+]
+
+private let bid_multipliers1_bid64_14: [UInt256] = [
+UInt256(1838622943956668180, 11978871809898874942, 9551166948067824413, 7602431193505751612),
+UInt256(3677245887913336361, 5510999546088198269, 655589822426097210, 15204862387011503223),
+UInt256(7354491775826672722, 11021999092176396538, 1311179644852194421, 11962980700313454830),
+UInt256(1470898355165334544, 9583097447919099954, 262235928970438884, 6081944954804601290),
+UInt256(2941796710330669089, 719450822128648292, 524471857940877768, 12163889909609202579),
+UInt256(5883593420661338178, 1438901644257296584, 1048943715881755537, 5881035745508853541),
+UInt256(11767186841322676356, 2877803288514593168, 2097887431763511074, 11762071491017707081),
+UInt256(2353437368264535271, 4264909472444828956, 15176972745320343507, 13420460742429272386),
+UInt256(4706874736529070542, 8529818944889657913, 11907201416931135399, 8394177411148993156),
+UInt256(9413749473058141084, 17059637889779315827, 5367658760152719182, 16788354822297986312),
+UInt256(1882749894611628216, 18169322836923504458, 4762880566772454159, 14425717408685328232),
+UInt256(3765499789223256433, 17891901600137457300, 9525761133544908319, 10404690743661104848),
+UInt256(7530999578446512867, 17337059126565362985, 604778193380265023, 2362637413612658080),
+UInt256(1506199915689302573, 10846109454796893243, 7499653268159873651, 472527482722531616),
+UInt256(3012399831378605147, 3245474835884234870, 14999306536319747302, 945054965445063232),
+UInt256(6024799662757210294, 6490949671768469741, 11551868998929942988, 1890109930890126464),
+UInt256(12049599325514420588, 12981899343536939483, 4656993924150334360, 3780219861780252927),
+UInt256(2409919865102884117, 13664426312933118866, 4620747599571977195, 4445392787097960909),
+UInt256(4819839730205768235, 8882108552156686116, 9241495199143954390, 8890785574195921818),
+UInt256(9639679460411536470, 17764217104313372233, 36246324578357164, 17781571148391843635),
+UInt256(1927935892082307294, 3552843420862674446, 11075295709141402402, 10935011859162189374),
+UInt256(3855871784164614588, 7105686841725348893, 3703847344573253189, 3423279644614827131),
+UInt256(7711743568329229176, 14211373683450697786, 7407694689146506378, 6846559289229654262),
+UInt256(1542348713665845835, 6531623551432049880, 8860236567313121922, 1369311857845930853),
+UInt256(3084697427331691670, 13063247102864099760, 17720473134626243844, 2738623715691861705),
+UInt256(6169394854663383341, 7679750132018647905, 16994202195542936072, 5477247431383723409),
+UInt256(12338789709326766682, 15359500264037295811, 15541660317376320528, 10954494862767446818),
+UInt256(2467757941865353336, 10450597682291279808, 14176378507700995075, 5880247787295399687),
+UInt256(4935515883730706673, 2454451290873008001, 9906012941692438534, 11760495574590799374),
+UInt256(9871031767461413346, 4908902581746016003, 1365281809675325453, 5074247075472047131),
+UInt256(1974206353492282669, 4671129331091113523, 15030451620902706383, 8393547044578230073),
+UInt256(3948412706984565338, 9342258662182227047, 11614159168095861150, 16787094089156460146),
+UInt256(7896825413969130677, 237773250654902479, 4781574262482170685, 15127444104603368675),
+UInt256(1579365082793826135, 7426252279614801142, 4645663667238344460, 6714837635662584059),
+UInt256(3158730165587652270, 14852504559229602284, 9291327334476688920, 13429675271325168117),
+UInt256(6317460331175304541, 11258265044749652953, 135910595243826225, 8412606468940784617),
+UInt256(12634920662350609083, 4069786015789754290, 271821190487652450, 16825212937881569233),
+UInt256(2526984132470121816, 11882003647383681827, 11122410682323261459, 14433089031802044817),
+UInt256(5053968264940243633, 5317263221057812039, 3798077290936971303, 10419433989894538017),
+UInt256(10107936529880487266, 10634526442115624078, 7596154581873942607, 2392123906079524417),
+UInt256(2021587305976097453, 5816254103165035138, 16276626175342429814, 4167773595957815207),
+UInt256(4043174611952194906, 11632508206330070277, 14106508276975308012, 8335547191915630413),
+UInt256(8086349223904389813, 4818272338950588939, 9766272480241064408, 16671094383831260826),
+UInt256(1617269844780877962, 12031700912015848757, 9331952125532033528, 3334218876766252166),
+UInt256(3234539689561755925, 5616657750322145899, 217160177354515440, 6668437753532504331),
+UInt256(6469079379123511850, 11233315500644291798, 434320354709030880, 13336875507065008661),
+UInt256(1293815875824702370, 2246663100128858359, 11154910515167537145, 13735421545638732702),
+UInt256(2587631751649404740, 4493326200257716719, 3863076956625522675, 9024099017567913788),
+UInt256(5175263503298809480, 8986652400515433438, 7726153913251045350, 18048198035135827576),
+UInt256(10350527006597618960, 17973304801030866876, 15452307826502090701, 17649651996562103535),
+]
+
+private let bid_multipliers1_bid64_15: [UInt256] = [
+UInt256(2070105401319523792, 3594660960206173375, 6779810380042328463, 10908628028796241354),
+UInt256(4140210802639047584, 7189321920412346750, 13559620760084656927, 3370511983882931091),
+UInt256(8280421605278095168, 14378643840824693501, 8672497446459762238, 6741023967765862181),
+UInt256(1656084321055619033, 13943775212390669669, 16491894748259593740, 8726902423036993083),
+UInt256(3312168642111238067, 9440806351071787723, 14537045422809635864, 17453804846073986166),
+UInt256(6624337284222476135, 434868628434023831, 10627346771909720113, 16460865618438420715),
+UInt256(1324867456844495227, 86973725686804766, 5814818169123854345, 18049568382655325436),
+UInt256(2649734913688990454, 173947451373609532, 11629636338247708691, 17652392691601099256),
+UInt256(5299469827377980908, 347894902747219065, 4812528602785865767, 16858041309492646895),
+UInt256(10598939654755961816, 695789805494438130, 9625057205571731535, 15269338545275742174),
+UInt256(2119787930951192363, 3828506775840797949, 5614360255856256630, 6743216523797058758),
+UInt256(4239575861902384726, 7657013551681595898, 11228720511712513260, 13486433047594117516),
+UInt256(8479151723804769452, 15314027103363191797, 4010696949715474905, 8526122021478683416),
+UInt256(1695830344760953890, 10441503050156459005, 15559534648910736273, 16462619663263377976),
+UInt256(3391660689521907781, 2436262026603366395, 12672325224111920931, 14478495252817204336),
+UInt256(6783321379043815562, 4872524053206732791, 6897906374514290247, 10510246431924857056),
+UInt256(1356664275808763112, 8353202440125167204, 12447627719128589019, 2102049286384971412),
+UInt256(2713328551617526224, 16706404880250334409, 6448511364547626422, 4204098572769942823),
+UInt256(5426657103235052449, 14966065686791117202, 12897022729095252844, 8408197145539885645),
+UInt256(10853314206470104899, 11485387299872682789, 7347301384480954072, 16816394291079771289),
+UInt256(2170662841294020979, 17054472718942177850, 12537506721121921784, 3363278858215954258),
+UInt256(4341325682588041959, 15662201364174804085, 6628269368534291952, 6726557716431908516),
+UInt256(8682651365176083919, 12877658654640056554, 13256538737068583904, 13453115432863817032),
+UInt256(1736530273035216783, 17332926989895652603, 13719354191639447750, 10069320716056584053),
+UInt256(3473060546070433567, 16219109906081753591, 8991964309569343885, 1691897358403616490),
+UInt256(6946121092140867135, 13991475738453955566, 17983928619138687770, 3383794716807232979),
+UInt256(1389224218428173427, 2798295147690791113, 7286134538569647877, 4366107758103356919),
+UInt256(2778448436856346854, 5596590295381582226, 14572269077139295754, 8732215516206713838),
+UInt256(5556896873712693708, 11193180590763164453, 10697794080569039892, 17464431032413427676),
+UInt256(11113793747425387417, 3939617107816777291, 2948844087428528169, 16482117991117303736),
+UInt256(2222758749485077483, 8166621051047176104, 11657815261711436603, 10675121227707281394),
+UInt256(4445517498970154966, 16333242102094352209, 4868886449713321591, 2903498381705011171),
+UInt256(8891034997940309933, 14219740130479152802, 9737772899426643182, 5806996763410022342),
+UInt256(1778206999588061986, 13911994470321561530, 1947554579885328636, 8540096982165825115),
+UInt256(3556413999176123973, 9377244866933571444, 3895109159770657272, 17080193964331650230),
+UInt256(7112827998352247947, 307745660157591272, 7790218319541314545, 15713643854953748843),
+UInt256(1422565599670449589, 7440246761515338900, 16315438922875904201, 17900124029958391062),
+UInt256(2845131199340899178, 14880493523030677801, 14184133772042256787, 17353503986207230507),
+UInt256(5690262398681798357, 11314242972351803987, 9921523470374961959, 16260263898704909398),
+UInt256(11380524797363596715, 4181741870994056359, 1396302867040372303, 14073783723700267180),
+UInt256(2276104959472719343, 836348374198811271, 15036655832375715753, 10193454374223874083),
+UInt256(4552209918945438686, 1672696748397622543, 11626567591041879891, 1940164674738196549),
+UInt256(9104419837890877372, 3345393496795245087, 4806391108374208166, 3880329349476393097),
+UInt256(1820883967578175474, 8047776328842869663, 15718673480642482926, 776065869895278620),
+UInt256(3641767935156350948, 16095552657685739327, 12990602887575414236, 1552131739790557239),
+UInt256(7283535870312701897, 13744361241661927039, 7534461701441276856, 3104263479581114478),
+UInt256(1456707174062540379, 10127569877816206054, 5196241155030165694, 7999550325400043542),
+UInt256(2913414348125080759, 1808395681922860492, 10392482310060331388, 15999100650800087084),
+UInt256(5826828696250161518, 3616791363845720985, 2338220546411111161, 13551457227890622552),
+UInt256(11653657392500323036, 7233582727691441970, 4676441092822222323, 8656170382071693488),
+]
+
+private let bid_multipliers1_bid64_16: [UInt256] = [
+UInt256(2330731478500064607, 5136065360280198717, 4624637033306354787, 16488629335381979991),
+UInt256(4661462957000129214, 10272130720560397434, 9249274066612709575, 14530514597054408365),
+UInt256(9322925914000258429, 2097517367411243253, 51804059515867535, 10614285120399265113),
+UInt256(1864585182800051685, 15176898732449889943, 7389058441386994153, 9501554653563673669),
+UInt256(3729170365600103371, 11907053391190228270, 14778116882773988307, 556365233417795722),
+UInt256(7458340731200206743, 5367362708670904925, 11109489691838424998, 1112730466835591444),
+UInt256(1491668146240041348, 12141518985959911954, 13289944382593415969, 3911894908109028612),
+UInt256(2983336292480082697, 5836293898210272293, 8133144691477280322, 7823789816218057224),
+UInt256(5966672584960165394, 11672587796420544586, 16266289382954560644, 15647579632436114448),
+UInt256(11933345169920330789, 4898431519131537557, 14085834692199569673, 12848415191162677280),
+UInt256(2386669033984066157, 15737081562793948804, 6506515753181824257, 17327078297200176749),
+UInt256(4773338067968132315, 13027419051878345992, 13013031506363648515, 16207412520690801882),
+UInt256(9546676135936264631, 7608094030047140369, 7579318939017745415, 13968080967672052148),
+UInt256(1909335227187252926, 5210967620751338397, 1515863787803549083, 2793616193534410430),
+UInt256(3818670454374505852, 10421935241502676794, 3031727575607098166, 5587232387068820859),
+UInt256(7637340908749011705, 2397126409295801972, 6063455151214196332, 11174464774137641718),
+UInt256(1527468181749802341, 479425281859160394, 8591388659726659912, 16992288213795169637),
+UInt256(3054936363499604682, 958850563718320788, 17182777319453319825, 15537832353880787657),
+UInt256(6109872726999209364, 1917701127436641577, 15918810565197088035, 12628920634052023698),
+UInt256(12219745453998418728, 3835402254873283155, 13390877056684624455, 6811097194394495779),
+UInt256(2443949090799683745, 11835126895200387600, 13746221855562655860, 12430265883104630126),
+UInt256(4887898181599367491, 5223509716691223585, 9045699637415760105, 6413787692499708635),
+UInt256(9775796363198734982, 10447019433382447170, 18091399274831520210, 12827575384999417270),
+UInt256(1955159272639746996, 9468101516160310080, 10996977484450124688, 9944212706483704101),
+UInt256(3910318545279493993, 489458958611068545, 3547210895190697761, 1441681339257856585),
+UInt256(7820637090558987986, 978917917222137090, 7094421790381395522, 2883362678515713170),
+UInt256(1564127418111797597, 3885132398186337741, 5108233172818189427, 11644718979928873604),
+UInt256(3128254836223595194, 7770264796372675482, 10216466345636378855, 4842693886148195591),
+UInt256(6256509672447190388, 15540529592745350965, 1986188617563206094, 9685387772296391182),
+UInt256(12513019344894380777, 12634315111781150314, 3972377235126412189, 924031470883230748),
+UInt256(2502603868978876155, 9905560651840050709, 4483824261767192761, 184806294176646150),
+UInt256(5005207737957752311, 1364377229970549802, 8967648523534385522, 369612588353292299),
+UInt256(10010415475915504622, 2728754459941099604, 17935297047068771044, 739225176706584598),
+UInt256(2002083095183100924, 7924448521472040567, 7276408224155664532, 147845035341316920),
+UInt256(4004166190366201848, 15848897042944081134, 14552816448311329064, 295690070682633840),
+UInt256(8008332380732403697, 13251050012178610653, 10658888822913106512, 591380141365267679),
+UInt256(1601666476146480739, 10028907631919542777, 2131777764582621302, 7496973657756874183),
+UInt256(3203332952292961479, 1611071190129533938, 4263555529165242604, 14993947315513748365),
+UInt256(6406665904585922958, 3222142380259067876, 8527111058330485209, 11541150557317945113),
+UInt256(1281333180917184591, 11712474920277544544, 16462817470633738334, 13376276555689319993),
+UInt256(2562666361834369183, 4978205766845537473, 14478890867557925053, 8305809037669088369),
+UInt256(5125332723668738366, 9956411533691074947, 10511037661406298490, 16611618075338176737),
+UInt256(10250665447337476733, 1466078993672598279, 2575331249103045365, 14776492076966801857),
+UInt256(2050133089467495346, 11361262242960250625, 7893763879304429719, 10333996044877181018),
+UInt256(4100266178934990693, 4275780412210949634, 15787527758608859439, 2221248016044810420),
+UInt256(8200532357869981386, 8551560824421899269, 13128311443508167262, 4442496032089620839),
+UInt256(1640106471573996277, 5399660979626290177, 2625662288701633452, 8267196835901744815),
+UInt256(3280212943147992554, 10799321959252580354, 5251324577403266904, 16534393671803489629),
+UInt256(6560425886295985109, 3151899844795609092, 10502649154806533809, 14622043269897427641),
+UInt256(1312085177259197021, 15387775227926763111, 5789878645703217085, 2924408653979485529),
+]
+
+private let bid_multipliers1_bid64_17: [UInt256] = [
+UInt256(2624170354518394043, 12328806382143974606, 11579757291406434170, 5848817307958971057),
+UInt256(5248340709036788087, 6210868690578397597, 4712770509103316724, 11697634615917942113),
+UInt256(10496681418073576174, 12421737381156795194, 9425541018206633449, 4948525158126332609),
+UInt256(2099336283614715234, 17241742735199000331, 12953154647867057659, 8368402661109087169),
+UInt256(4198672567229430469, 16036741396688449047, 7459565222024563702, 16736805322218174337),
+UInt256(8397345134458860939, 13626738719667346478, 14919130444049127405, 15026866570726797057),
+UInt256(1679469026891772187, 17482743002901110588, 10362523718293646127, 10384070943629180058),
+UInt256(3358938053783544375, 16518741932092669561, 2278303362877740639, 2321397813548808500),
+UInt256(6717876107567088751, 14590739790475787506, 4556606725755481278, 4642795627097617000),
+UInt256(1343575221513417750, 6607496772837067824, 8290018974634916902, 928559125419523400),
+UInt256(2687150443026835500, 13214993545674135648, 16580037949269833804, 1857118250839046800),
+UInt256(5374300886053671001, 7983243017638719681, 14713331824830115992, 3714236501678093600),
+UInt256(10748601772107342002, 15966486035277439363, 10979919575950680368, 7428473003356187199),
+UInt256(2149720354421468400, 10571994836539308519, 2195983915190136073, 12553741044896968410),
+UInt256(4299440708842936801, 2697245599369065422, 4391967830380272147, 6660738016084385203),
+UInt256(8598881417685873602, 5394491198738130844, 8783935660760544294, 13321476032168770406),
+UInt256(1719776283537174720, 8457595869231446815, 5446135946894019182, 2664295206433754082),
+UInt256(3439552567074349440, 16915191738462893630, 10892271893788038364, 5328590412867508163),
+UInt256(6879105134148698881, 15383639403216235645, 3337799713866525112, 10657180825735016325),
+UInt256(1375821026829739776, 6766076695385157452, 4356908757515215345, 13199482609372734235),
+UInt256(2751642053659479552, 13532153390770314904, 8713817515030430691, 7952221145035916853),
+UInt256(5503284107318959105, 8617562707831078192, 17427635030060861382, 15904442290071833706),
+UInt256(11006568214637918210, 17235125415662156385, 16408525986412171149, 13362140506434115796),
+UInt256(2201313642927583642, 3447025083132431277, 3281705197282434229, 17429823360254464452),
+UInt256(4402627285855167284, 6894050166264862554, 6563410394564868459, 16412902646799377288),
+UInt256(8805254571710334568, 13788100332529725108, 13126820789129736919, 14379061219889202960),
+UInt256(1761050914342066913, 13825666510731675991, 6314712972567857707, 2875812243977840592),
+UInt256(3522101828684133827, 9204588947753800366, 12629425945135715414, 5751624487955681184),
+UInt256(7044203657368267654, 18409177895507600733, 6812107816561879212, 11503248975911362368),
+UInt256(1408840731473653530, 18439230838069161439, 8741119192796196488, 17058045054149913767),
+UInt256(2817681462947307061, 18431717602428771262, 17482238385592392977, 15669346034590275917),
+UInt256(5635362925894614123, 18416691131147990909, 16517732697475234339, 12891947995471000218),
+UInt256(11270725851789228247, 18386638188586430203, 14588721321240917063, 7337151917232448819),
+UInt256(2254145170357845649, 11056025267201106687, 2917744264248183412, 12535476827672220734),
+UInt256(4508290340715691299, 3665306460692661758, 5835488528496366825, 6624209581634889851),
+UInt256(9016580681431382598, 7330612921385323516, 11670977056992733650, 13248419163269779702),
+UInt256(1803316136286276519, 12534169028502795672, 17091590670366188022, 17407079091621597234),
+UInt256(3606632272572553039, 6621593983296039729, 15736437267022824429, 16367414109533642851),
+UInt256(7213264545145106078, 13243187966592079459, 13026130460336097243, 14288084145357734085),
+UInt256(1442652909029021215, 13716684037544146861, 9983923721551040095, 2857616829071546817),
+UInt256(2885305818058042431, 8986624001378742107, 1521103369392528574, 5715233658143093634),
+UInt256(5770611636116084862, 17973248002757484214, 3042206738785057148, 11430467316286187268),
+UInt256(11541223272232169725, 17499751931805416812, 6084413477570114297, 4414190558862822919),
+UInt256(2308244654446433945, 3499950386361083362, 8595580324997843505, 15640233370740205877),
+UInt256(4616489308892867890, 6999900772722166724, 17191160649995687011, 12833722667770860138),
+UInt256(9232978617785735780, 13999801545444333449, 15935577226281822407, 7220701261832168659),
+UInt256(1846595723557147156, 2799960309088866689, 17944510704224005774, 5133489067108344055),
+UInt256(3693191447114294312, 5599920618177733379, 17442277334738459932, 10266978134216688110),
+UInt256(7386382894228588624, 11199841236355466759, 16437810595767368249, 2087212194723824604),
+UInt256(1477276578845717724, 16997363506238734644, 14355608563379204619, 7796140068428585568),
+]
+
+private let bid_multipliers1_bid64_18: [UInt256] = [
+UInt256(2954553157691435449, 15547982938767917673, 10264473053048857622, 15592280136857171135),
+UInt256(5909106315382870899, 12649221803826283731, 2082202032388163629, 12737816200004790653),
+UInt256(11818212630765741799, 6851699533943015846, 4164404064776327259, 7028888326300029689),
+UInt256(2363642526153148359, 16127735165756244462, 832880812955265451, 16163172924227647231),
+UInt256(4727285052306296719, 13808726257802937308, 1665761625910530903, 13879601774745742846),
+UInt256(9454570104612593439, 9170708441896323000, 3331523251821061807, 9312459475781934075),
+UInt256(1890914020922518687, 16591536947346905892, 15423699909331853654, 5551840709898297139),
+UInt256(3781828041845037375, 14736329820984260169, 12400655744954155692, 11103681419796594277),
+UInt256(7563656083690074751, 11025915568258968723, 6354567416198759769, 3760618765883636937),
+UInt256(1512731216738014950, 5894531928393704067, 16028308742207393246, 11820170197402458357),
+UInt256(3025462433476029900, 11789063856787408135, 13609873410705234877, 5193596321095365098),
+UInt256(6050924866952059801, 5131383639865264655, 8773002747700918138, 10387192642190730196),
+UInt256(12101849733904119602, 10262767279730529310, 17546005495401836277, 2327641210671908775),
+UInt256(2420369946780823920, 9431251085429926508, 10887898728564187901, 15222923501102023048),
+UInt256(4840739893561647841, 415758097150301401, 3329053383418824187, 11999102928494494480),
+UInt256(9681479787123295682, 831516194300602802, 6658106766837648375, 5551461783279437343),
+UInt256(1936295957424659136, 7545000868343941206, 16089016612335170967, 15867687615623528762),
+UInt256(3872591914849318272, 15090001736687882413, 13731289150960790319, 13288631157537505907),
+UInt256(7745183829698636545, 11733259399666213211, 9015834228212029023, 8130518241365460198),
+UInt256(1549036765939727309, 2346651879933242642, 5492515660384316127, 16383498907240733333),
+UInt256(3098073531879454618, 4693303759866485284, 10985031320768632255, 14320253740771915049),
+UInt256(6196147063758909236, 9386607519732970569, 3523318567827712895, 10193763407834278482),
+UInt256(12392294127517818473, 326470965756389522, 7046637135655425791, 1940782741959005347),
+UInt256(2478458825503563694, 11133340637377008874, 1409327427131085158, 4077505363133711393),
+UInt256(4956917651007127389, 3819937201044466132, 2818654854262170316, 8155010726267422785),
+UInt256(9913835302014254778, 7639874402088932264, 5637309708524340632, 16310021452534845570),
+UInt256(1982767060402850955, 12596021324643517422, 8506159571188688772, 18019399549474610407),
+UInt256(3965534120805701911, 6745298575577483228, 17012319142377377545, 17592055025239669198),
+UInt256(7931068241611403822, 13490597151154966457, 15577894211045203475, 16737365976769786780),
+UInt256(1586213648322280764, 10076817059714813937, 17872974101176681987, 18104868454321598649),
+UInt256(3172427296644561529, 1706890045720076259, 17299204128643812359, 17762992834933645682),
+UInt256(6344854593289123058, 3413780091440152519, 16151664183578073103, 17079241596157739747),
+UInt256(12689709186578246116, 6827560182880305039, 13856584293446594591, 15711739118605927877),
+UInt256(2537941837315649223, 5054860851317971331, 2771316858689318918, 6831696638463095899),
+UInt256(5075883674631298446, 10109721702635942662, 5542633717378637836, 13663393276926191798),
+UInt256(10151767349262596893, 1772699331562333708, 11085267434757275673, 8880042480142831979),
+UInt256(2030353469852519378, 11422586310538197711, 5906402301693365457, 16533403754996207689),
+UInt256(4060706939705038757, 4398428547366843806, 11812804603386730915, 14620063436282863761),
+UInt256(8121413879410077514, 8796857094733687613, 5178865133063910215, 10793382798856175906),
+UInt256(1624282775882015502, 16516766677914378815, 8414470656096602689, 9537374189255055828),
+UInt256(3248565551764031005, 14586789282119206014, 16828941312193205379, 628004304800560040),
+UInt256(6497131103528062011, 10726834490528860413, 15211138550676859142, 1256008609601120079),
+UInt256(1299426220705612402, 5834715712847682405, 17799622969103013121, 3940550536662134339),
+UInt256(2598852441411224804, 11669431425695364811, 17152501864496474626, 7881101073324268678),
+UInt256(5197704882822449609, 4892118777681178007, 15858259655283397636, 15762202146648537356),
+UInt256(10395409765644899218, 9784237555362356015, 13269775236857243657, 13077660219587523095),
+UInt256(2079081953128979843, 13024893955298202172, 13722001491597179701, 2615532043917504619),
+UInt256(4158163906257959687, 7603043836886852729, 8997258909484807786, 5231064087835009238),
+UInt256(8316327812515919374, 15206087673773705458, 17994517818969615572, 10462128175670018476),
+UInt256(1663265562503183874, 17798612793722382384, 10977601193277743760, 16849820894101644988),
+]
+
+private let bid_multipliers1_bid64_19: [UInt256] = [
+UInt256(3326531125006367749, 17150481513735213153, 3508458312845935905, 15252897714493738360),
+UInt256(6653062250012735499, 15854218953760874690, 7016916625691871811, 12059051355277925104),
+UInt256(1330612450002547099, 17928239049719816230, 16160778584106015655, 2411810271055585021),
+UInt256(2661224900005094199, 17409734025730080845, 13874813094502479694, 4823620542111170042),
+UInt256(5322449800010188399, 16372723977750610075, 9302882115295407772, 9647241084222340084),
+UInt256(10644899600020376799, 14298703881791668535, 159020156881263929, 847738094735128551),
+UInt256(2128979920004075359, 17617136035325974999, 14789199290343894078, 11237594063172756680),
+UInt256(4257959840008150719, 16787527996942398383, 11131654506978236541, 4028444052635961744),
+UInt256(8515919680016301439, 15128311920175245151, 3816564940246921466, 8056888105271923487),
+UInt256(1703183936003260287, 17783057643002690323, 763312988049384293, 5300726435796295021),
+UInt256(3406367872006520575, 17119371212295829030, 1526625976098768586, 10601452871592590042),
+UInt256(6812735744013041151, 15791998350882106444, 3053251952197537173, 2756161669475628467),
+UInt256(1362547148802608230, 6847748484918331612, 610650390439507434, 11619278778120856663),
+UInt256(2725094297605216460, 13695496969836663224, 1221300780879014869, 4791813482532161710),
+UInt256(5450188595210432921, 8944249865963774832, 2442601561758029738, 9583626965064323420),
+UInt256(10900377190420865842, 17888499731927549664, 4885203123516059477, 720509856419095223),
+UInt256(2180075438084173168, 10956397575869330579, 4666389439445122218, 11212148415509550015),
+UInt256(4360150876168346337, 3466051078029109542, 9332778878890244437, 3977552757309548413),
+UInt256(8720301752336692674, 6932102156058219085, 218813684070937258, 7955105514619096825),
+UInt256(1744060350467338534, 16143815690179285109, 14801157995781828744, 8969718732407640012),
+UInt256(3488120700934677069, 13840887306649018603, 11155571917854105872, 17939437464815280023),
+UInt256(6976241401869354139, 9235030539588485591, 3864399761998660129, 17432130855921008430),
+UInt256(1395248280373870827, 16604401366885338411, 772879952399732025, 18243821430151842979),
+UInt256(2790496560747741655, 14762058660061125206, 1545759904799464051, 18040898786594134342),
+UInt256(5580993121495483311, 11077373246412698796, 3091519809598928103, 17635053499478717067),
+UInt256(11161986242990966623, 3708002419115845976, 6183039619197856207, 16823362925247882518),
+UInt256(2232397248598193324, 11809646928048900164, 15994003182807212534, 7054021399791486827),
+UInt256(4464794497196386649, 5172549782388248713, 13541262291904873452, 14108042799582973654),
+UInt256(8929588994392773298, 10345099564776497427, 8635780510100195289, 9769341525456395691),
+UInt256(1785917798878554659, 13137066357181030455, 1727156102020039057, 16711263564058920431),
+UInt256(3571835597757109319, 7827388640652509294, 3454312204040078115, 14975783054408289246),
+UInt256(7143671195514218638, 15654777281305018588, 6908624408080156231, 11504822035107026876),
+UInt256(1428734239102843727, 14199001900486734687, 5071073696357941569, 9679662036505226022),
+UInt256(2857468478205687455, 9951259727263917758, 10142147392715883139, 912579999300900428),
+UInt256(5714936956411374911, 1455775380818283901, 1837550711722214662, 1825159998601800855),
+UInt256(11429873912822749822, 2911550761636567802, 3675101423444429324, 3650319997203601709),
+UInt256(2285974782564549964, 7961007781811134206, 15492415543656527157, 11798110443666451312),
+UInt256(4571949565129099928, 15922015563622268413, 12538087013603502699, 5149476813623351007),
+UInt256(9143899130258199857, 13397287053534985211, 6629429953497453782, 10298953627246702013),
+UInt256(1828779826051639971, 10058155040190817688, 12393932434925221726, 2059790725449340403),
+UInt256(3657559652103279943, 1669566006672083761, 6341120796140891836, 4119581450898680806),
+UInt256(7315119304206559886, 3339132013344167522, 12682241592281783672, 8239162901797361611),
+UInt256(1463023860841311977, 4357175217410743827, 13604494762682087704, 1647832580359472323),
+UInt256(2926047721682623954, 8714350434821487655, 8762245451654623792, 3295665160718944645),
+UInt256(5852095443365247908, 17428700869642975310, 17524490903309247584, 6591330321437889289),
+UInt256(11704190886730495817, 16410657665576399005, 16602237732908943552, 13182660642875778577),
+UInt256(2340838177346099163, 10660829162599100447, 10699145176065609356, 17393927387542797009),
+UInt256(4681676354692198327, 2874914251488649279, 2951546278421667097, 16341110701376042401),
+UInt256(9363352709384396654, 5749828502977298558, 5903092556843334195, 14235477329042533185),
+UInt256(1872670541876879330, 15907360959563101004, 8559316140852487485, 10225793095292327284),
+]
+
+private let bid_multipliers1_bid64_20: [UInt256] = [
+UInt256(3745341083753758661, 13367977845416650392, 17118632281704974971, 2004842116875102951),
+UInt256(7490682167507517323, 8289211617123749169, 15790520489700398326, 4009684233750205902),
+UInt256(1498136433501503464, 12725888767650480803, 10536801727423900311, 11869983290975772150),
+UInt256(2996272867003006929, 7005033461591409991, 2626859381138249007, 5293222508241992684),
+UInt256(5992545734006013858, 14010066923182819982, 5253718762276498014, 10586445016483985368),
+UInt256(11985091468012027717, 9573389772656088348, 10507437524552996029, 2726145959258419119),
+UInt256(2397018293602405543, 9293375584015038316, 2101487504910599205, 15302624450819325117),
+UInt256(4794036587204811087, 140007094320525016, 4202975009821198411, 12158504827929098618),
+UInt256(9588073174409622174, 280014188641050032, 8405950019642396823, 5870265582148645619),
+UInt256(1917614634881924434, 14813398096695851299, 5370538818670389687, 15931448375397370417),
+UInt256(3835229269763848869, 11180052119682150982, 10741077637340779375, 13416152677085189217),
+UInt256(7670458539527697739, 3913360165654750349, 3035411200972007135, 8385561280460826818),
+UInt256(1534091707905539547, 15540067292098591362, 11675128684420132396, 12745158700317896334),
+UInt256(3068183415811079095, 12633390510487631109, 4903513295130713177, 7043573326926241051),
+UInt256(6136366831622158191, 6820036947265710602, 9807026590261426354, 14087146653852482101),
+UInt256(12272733663244316382, 13640073894531421205, 1167309106813301093, 9727549233995412585),
+UInt256(2454546732648863276, 10106712408390104887, 7612159450846480865, 1945509846799082517),
+UInt256(4909093465297726553, 1766680743070658158, 15224318901692961730, 3891019693598165034),
+UInt256(9818186930595453106, 3533361486141316317, 12001893729676371844, 7782039387196330068),
+UInt256(1963637386119090621, 4396021111970173586, 13468425190161005338, 8935105506923086660),
+UInt256(3927274772238181242, 8792042223940347173, 8490106306612459060, 17870211013846173320),
+UInt256(7854549544476362484, 17584084447880694346, 16980212613224918121, 17293677953982795024),
+UInt256(1570909908895272496, 18274212148543780162, 3396042522644983624, 7148084405538469328),
+UInt256(3141819817790544993, 18101680223378008708, 6792085045289967248, 14296168811076938656),
+UInt256(6283639635581089987, 17756616373046465800, 13584170090579934497, 10145593548444325696),
+UInt256(12567279271162179975, 17066488672383379985, 8721596107450317379, 1844443023179099776),
+UInt256(2513455854232435995, 3413297734476675997, 1744319221490063475, 15126283863603461248),
+UInt256(5026911708464871990, 6826595468953351994, 3488638442980126951, 11805823653497370880),
+UInt256(10053823416929743980, 13653190937906703988, 6977276885960253903, 5164903233285190144),
+UInt256(2010764683385948796, 2730638187581340797, 12463501821417781750, 4722329461398948352),
+UInt256(4021529366771897592, 5461276375162681595, 6480259569126011884, 9444658922797896704),
+UInt256(8043058733543795184, 10922552750325363190, 12960519138252023769, 442573771886241792),
+UInt256(1608611746708759036, 16941905809032713930, 17349499086618046046, 11156561198602979328),
+UInt256(3217223493417518073, 15437067544355876245, 16252254099526540477, 3866378323496407040),
+UInt256(6434446986835036147, 12427391015002200875, 14057764125343529338, 7732756646992814080),
+UInt256(1286889397367007229, 9864175832484260821, 10190250454552526514, 1546551329398562816),
+UInt256(2573778794734014459, 1281607591258970027, 1933756835395501412, 3093102658797125632),
+UInt256(5147557589468028918, 2563215182517940054, 3867513670791002824, 6186205317594251264),
+UInt256(10295115178936057836, 5126430365035880108, 7735027341582005648, 12372410635188502528),
+UInt256(2059023035787211567, 4714634887749086344, 16304400727284042422, 9853179756521521152),
+UInt256(4118046071574423134, 9429269775498172689, 14162057380858533229, 1259615439333490688),
+UInt256(8236092143148846269, 411795477286793763, 9877370688007514842, 2519230878666981376),
+UInt256(1647218428629769253, 14839754354425000045, 9354171767085323614, 15261241434701037568),
+UInt256(3294436857259538507, 11232764635140448475, 261599460461095613, 12075738795692523520),
+UInt256(6588873714519077015, 4018785196571345334, 523198920922191227, 5704733517675495424),
+UInt256(1317774742903815403, 803757039314269066, 14862035043152079538, 4830295518277009408),
+UInt256(2635549485807630806, 1607514078628538133, 11277326012594607460, 9660591036554018816),
+UInt256(5271098971615261612, 3215028157257076267, 4107907951479663305, 874437999398486016),
+UInt256(10542197943230523224, 6430056314514152534, 8215815902959326610, 1748875998796972032),
+UInt256(2108439588646104644, 16043406521870471799, 12711209624817596291, 11417821643985125376),
+]
+
+private let bid_multipliers1_bid64_21: [UInt256] = [
+UInt256(4216879177292209289, 13640068970031391983, 6975675175925640967, 4388899214260699136),
+UInt256(8433758354584418579, 8833393866353232350, 13951350351851281934, 8777798428521398272),
+UInt256(1686751670916883715, 16524074032238287762, 17547665329337897679, 12823606129930010624),
+UInt256(3373503341833767431, 14601403990767023909, 16648586584966243743, 7200468186150469632),
+UInt256(6747006683667534863, 10756063907824496203, 14850429096222935870, 14400936372300939264),
+UInt256(1349401336733506972, 13219259225790630210, 6659434633986497497, 6569536089202098176),
+UInt256(2698802673467013945, 7991774377871708804, 13318869267972994994, 13139072178404196352),
+UInt256(5397605346934027890, 15983548755743417609, 8190994462236438373, 7831400283098841088),
+UInt256(10795210693868055781, 13520353437777283602, 16381988924472876746, 15662800566197682176),
+UInt256(2159042138773611156, 6393419502297367043, 14344444229120306318, 17889955372207177728),
+UInt256(4318084277547222312, 12786839004594734087, 10242144384531061021, 17333166670704803840),
+UInt256(8636168555094444625, 7126933935479916559, 2037544695352570427, 16219589267700056064),
+UInt256(1727233711018888925, 1425386787095983311, 15164904198038155378, 6933266668281921536),
+UInt256(3454467422037777850, 2850773574191966623, 11883064322366759140, 13866533336563843072),
+UInt256(6908934844075555700, 5701547148383933247, 5319384571023966665, 9286322599418134528),
+UInt256(1381786968815111140, 1140309429676786649, 8442574543688613979, 9235962149367447552),
+UInt256(2763573937630222280, 2280618859353573298, 16885149087377227959, 25180225025343488),
+UInt256(5527147875260444560, 4561237718707146597, 15323554101044904302, 50360450050686976),
+UInt256(11054295750520889120, 9122475437414293195, 12200364128380256988, 100720900101373952),
+UInt256(2210859150104177824, 1824495087482858639, 2440072825676051397, 11088190624246005760),
+UInt256(4421718300208355648, 3648990174965717278, 4880145651352102795, 3729637174782459904),
+UInt256(8843436600416711296, 7297980349931434556, 9760291302704205590, 7459274349564919808),
+UInt256(1768687320083342259, 5148944884728197234, 9330755890024661764, 8870552499396804608),
+UInt256(3537374640166684518, 10297889769456394469, 214767706339771912, 17741104998793609216),
+UInt256(7074749280333369037, 2149035465203237322, 429535412679543825, 17035465923877666816),
+UInt256(1414949856066673807, 7808504722524468110, 14843302341503550057, 18164488443743174656),
+UInt256(2829899712133347614, 15617009445048936221, 11239860609297548499, 17882232813776797696),
+UInt256(5659799424266695229, 12787274816388320827, 4032977144885545383, 17317721553844043776),
+UInt256(11319598848533390459, 7127805559067090038, 8065954289771090767, 16188699033978535936),
+UInt256(2263919769706678091, 16182956370781059300, 8991888487438038799, 17995135065763348480),
+UInt256(4527839539413356183, 13919168667852566984, 17983776974876077599, 17543526057817145344),
+UInt256(9055679078826712367, 9391593261995582353, 17520809876042603583, 16640308041924739072),
+UInt256(1811135815765342473, 9257016281882937117, 3504161975208520716, 14396108052610678784),
+UInt256(3622271631530684947, 67288490056322618, 7008323950417041433, 10345472031511805952),
+UInt256(7244543263061369894, 134576980112645236, 14016647900834082867, 2244199989314060288),
+UInt256(1448908652612273978, 14784310654990170340, 2803329580166816573, 7827537627346632704),
+UInt256(2897817305224547957, 11121877236270789064, 5606659160333633146, 15655075254693265408),
+UInt256(5795634610449095915, 3797010398832026512, 11213318320667266293, 12863406435676979200),
+UInt256(11591269220898191830, 7594020797664053025, 3979892567624980971, 7280068797644406784),
+UInt256(2318253844179638366, 1518804159532810605, 795978513524996194, 5145362574270791680),
+UInt256(4636507688359276732, 3037608319065621210, 1591957027049992388, 10290725148541583360),
+UInt256(9273015376718553464, 6075216638131242420, 3183914054099984777, 2134706223373615104),
+UInt256(1854603075343710692, 15972438586593889776, 15394178069787638248, 4116290059416633344),
+UInt256(3709206150687421385, 13498133099478227937, 12341612065865724880, 8232580118833266688),
+UInt256(7418412301374842771, 8549522125246904259, 6236480058021898144, 16465160237666533376),
+UInt256(1483682460274968554, 5399253239791291175, 1247296011604379628, 18050427306500947968),
+UInt256(2967364920549937108, 10798506479582582350, 2494592023208759257, 17654110539292344320),
+UInt256(5934729841099874217, 3150268885455613084, 4989184046417518515, 16861477004875137024),
+UInt256(11869459682199748434, 6300537770911226168, 9978368092835037031, 15276209936040722432),
+UInt256(2373891936439949686, 16017502813149886526, 9374371248050828052, 14123288431433875456),
+]
+
+private let bid_multipliers1_bid64_22: [UInt256] = [
+UInt256(4747783872879899373, 13588261552590221437, 301998422392104489, 9799832789158199296),
+UInt256(9495567745759798747, 8729779031470891258, 603996844784208979, 1152921504606846976),
+UInt256(1899113549151959749, 9124653435777998898, 120799368956841795, 14987979559889010688),
+UInt256(3798227098303919498, 18249306871555997796, 241598737913683591, 11529215046068469760),
+UInt256(7596454196607838997, 18051869669402443976, 483197475827367183, 4611686018427387904),
+UInt256(1519290839321567799, 10989071563364309441, 11164685939391204406, 4611686018427387904),
+UInt256(3038581678643135599, 3531399053019067267, 3882627805072857196, 9223372036854775808),
+UInt256(6077163357286271198, 7062798106038134534, 7765255610145714393, 0),
+UInt256(12154326714572542396, 14125596212076269068, 15530511220291428786, 0),
+UInt256(2430865342914508479, 6514468057157164136, 17863497503025927050, 0),
+UInt256(4861730685829016958, 13028936114314328273, 17280250932342302484, 0),
+UInt256(9723461371658033917, 7611128154919104931, 16113757790975053352, 0),
+UInt256(1944692274331606783, 8900923260467641632, 14290798002420741640, 0),
+UInt256(3889384548663213566, 17801846520935283265, 10134851931131931664, 0),
+UInt256(7778769097326427133, 17156948968161014915, 1822959788554311712, 0),
+UInt256(1555753819465285426, 14499436237857933952, 11432638401936593312, 0),
+UInt256(3111507638930570853, 10552128402006316289, 4418532730163635008, 0),
+UInt256(6223015277861141707, 2657512730303080962, 8837065460327270016, 0),
+UInt256(12446030555722283414, 5315025460606161924, 17674130920654540032, 0),
+UInt256(2489206111144456682, 15820400351088873677, 14602872628356638976, 0),
+UInt256(4978412222288913365, 13194056628468195739, 10759001183003726336, 0),
+UInt256(9956824444577826731, 7941369183226839863, 3071258292297901056, 0),
+UInt256(1991364888915565346, 5277622651387278295, 15371646917427221504, 0),
+UInt256(3982729777831130692, 10555245302774556591, 12296549761144891392, 0),
+UInt256(7965459555662261385, 2663746531839561567, 6146355448580231168, 0),
+UInt256(1593091911132452277, 532749306367912313, 8607968719199866880, 0),
+UInt256(3186183822264904554, 1065498612735824626, 17215937438399733760, 0),
+UInt256(6372367644529809108, 2130997225471649253, 15985130803089915904, 0),
+UInt256(12744735289059618216, 4261994450943298507, 13523517532470280192, 0),
+UInt256(2548947057811923643, 4541747704930570024, 13772749950719787008, 0),
+UInt256(5097894115623847286, 9083495409861140049, 9098755827730022400, 0),
+UInt256(10195788231247694572, 18166990819722280098, 18197511655460044800, 0),
+UInt256(2039157646249538914, 11012095793428276666, 3639502331092008960, 0),
+UInt256(4078315292499077829, 3577447513147001716, 7279004662184017920, 0),
+UInt256(8156630584998155658, 7154895026294003432, 14558009324368035840, 0),
+UInt256(1631326116999631131, 12499025449484531656, 2911601864873607168, 0),
+UInt256(3262652233999262263, 6551306825259511696, 5823203729747214336, 0),
+UInt256(6525304467998524526, 13102613650519023392, 11646407459494428672, 0),
+UInt256(1305060893599704905, 6309871544845715001, 13397327936124616704, 0),
+UInt256(2610121787199409810, 12619743089691430003, 8347911798539681792, 0),
+UInt256(5220243574398819621, 6792742105673308390, 16695823597079363584, 0),
+UInt256(10440487148797639242, 13585484211346616781, 14944903120449175552, 0),
+UInt256(2088097429759527848, 10095794471753144002, 14057027068315566080, 0),
+UInt256(4176194859519055697, 1744844869796736389, 9667310062921580544, 0),
+UInt256(8352389719038111394, 3489689739593472779, 887876052133609472, 0),
+UInt256(1670477943807622278, 15455333206886335848, 11245621654652452864, 0),
+UInt256(3340955887615244557, 12463922340063120081, 4044499235595354112, 0),
+UInt256(6681911775230489115, 6481100606416688546, 8088998471190708224, 0),
+UInt256(1336382355046097823, 1296220121283337709, 5307148508980051968, 0),
+UInt256(2672764710092195646, 2592440242566675418, 10614297017960103936, 0),
+]
+
+private let bid_multipliers1_bid64_23: [UInt256] = [
+UInt256(5345529420184391292, 5184880485133350837, 2781849962210656256, 0),
+UInt256(10691058840368782584, 10369760970266701674, 5563699924421312512, 0),
+UInt256(2138211768073756516, 16831347453020981627, 12180786429109993472, 0),
+UInt256(4276423536147513033, 15215950832332411639, 5914828784510435328, 0),
+UInt256(8552847072295026067, 11985157590955271662, 11829657569020870656, 0),
+UInt256(1710569414459005213, 9775729147674874978, 17123326772771815424, 0),
+UInt256(3421138828918010427, 1104714221640198341, 15799909471834079232, 0),
+UInt256(6842277657836020854, 2209428443280396683, 13153074869958606848, 0),
+UInt256(1368455531567204170, 15199280947623720629, 10009312603475542016, 0),
+UInt256(2736911063134408341, 11951817821537889643, 1571881133241532416, 0),
+UInt256(5473822126268816683, 5456891569366227670, 3143762266483064832, 0),
+UInt256(10947644252537633366, 10913783138732455340, 6287524532966129664, 0),
+UInt256(2189528850507526673, 5872105442488401391, 4946853721335136256, 0),
+UInt256(4379057701015053346, 11744210884976802782, 9893707442670272512, 0),
+UInt256(8758115402030106693, 5041677696244053949, 1340670811630993408, 0),
+UInt256(1751623080406021338, 12076381983474541759, 7646831791810019328, 0),
+UInt256(3503246160812042677, 5706019893239531902, 15293663583620038656, 0),
+UInt256(7006492321624085354, 11412039786479063805, 12140583093530525696, 0),
+UInt256(1401298464324817070, 17039803216263454053, 17185511877673746432, 0),
+UInt256(2802596928649634141, 15632862358817356491, 15924279681637941248, 0),
+UInt256(5605193857299268283, 12818980643925161367, 13401815289566330880, 0),
+UInt256(11210387714598536567, 7191217214140771119, 8356886505423110144, 0),
+UInt256(2242077542919707313, 8816941072311974870, 5360726115826532352, 0),
+UInt256(4484155085839414626, 17633882144623949740, 10721452231653064704, 0),
+UInt256(8968310171678829253, 16821020215538347865, 2996160389596577792, 0),
+UInt256(1793662034335765850, 14432250487333400542, 11667278522145046528, 0),
+UInt256(3587324068671531701, 10417756900957249469, 4887812970580541440, 0),
+UInt256(7174648137343063403, 2388769728204947322, 9775625941161082880, 0),
+UInt256(1434929627468612680, 11545800389866720434, 1955125188232216576, 0),
+UInt256(2869859254937225361, 4644856706023889252, 3910250376464433152, 0),
+UInt256(5739718509874450722, 9289713412047778504, 7820500752928866304, 0),
+UInt256(11479437019748901445, 132682750386005392, 15641001505857732608, 0),
+UInt256(2295887403949780289, 26536550077201078, 10506897930655367168, 0),
+UInt256(4591774807899560578, 53073100154402157, 2567051787601182720, 0),
+UInt256(9183549615799121156, 106146200308804314, 5134103575202365440, 0),
+UInt256(1836709923159824231, 3710578054803671186, 1026820715040473088, 0),
+UInt256(3673419846319648462, 7421156109607342372, 2053641430080946176, 0),
+UInt256(7346839692639296924, 14842312219214684744, 4107282860161892352, 0),
+UInt256(1469367938527859384, 17725857702810578241, 11889503016258109440, 0),
+UInt256(2938735877055718769, 17004971331911604867, 5332261958806667264, 0),
+UInt256(5877471754111437539, 15563198590113658118, 10664523917613334528, 0),
+UInt256(11754943508222875079, 12679653106517764621, 2882303761517117440, 0),
+UInt256(2350988701644575015, 17293325880271194217, 576460752303423488, 0),
+UInt256(4701977403289150031, 16139907686832836818, 1152921504606846976, 0),
+UInt256(9403954806578300063, 13833071299956122020, 2305843009213693952, 0),
+UInt256(1880790961315660012, 13834660704216955373, 11529215046068469760, 0),
+UInt256(3761581922631320025, 9222577334724359131, 4611686018427387904, 0),
+UInt256(7523163845262640050, 18445154669448718262, 9223372036854775808, 0),
+UInt256(1504632769052528010, 3689030933889743652, 9223372036854775808, 0),
+UInt256(3009265538105056020, 7378061867779487305, 0, 0),
+]
+
+private let bid_multipliers1_bid64_24: [UInt256] = [
+UInt256(6018531076210112040, 14756123735558974610, 0, 0),
+UInt256(12037062152420224081, 11065503397408397604, 0, 0),
+UInt256(2407412430484044816, 5902449494223589844, 0, 0),
+UInt256(4814824860968089632, 11804898988447179688, 0, 0),
+UInt256(9629649721936179265, 5163053903184807760, 0, 0),
+UInt256(1925929944387235853, 1032610780636961552, 0, 0),
+UInt256(3851859888774471706, 2065221561273923104, 0, 0),
+UInt256(7703719777548943412, 4130443122547846208, 0, 0),
+UInt256(1540743955509788682, 8204786253993389888, 0, 0),
+UInt256(3081487911019577364, 16409572507986779776, 0, 0),
+UInt256(6162975822039154729, 14372400942264007936, 0, 0),
+UInt256(12325951644078309459, 10298057810818464256, 0, 0),
+UInt256(2465190328815661891, 16817006821131334144, 0, 0),
+UInt256(4930380657631323783, 15187269568553116672, 0, 0),
+UInt256(9860761315262647567, 11927795063396681728, 0, 0),
+UInt256(1972152263052529513, 9764256642163156992, 0, 0),
+UInt256(3944304526105059027, 1081769210616762368, 0, 0),
+UInt256(7888609052210118054, 2163538421233524736, 0, 0),
+UInt256(1577721810442023610, 15190102943214346240, 0, 0),
+UInt256(3155443620884047221, 11933461812719140864, 0, 0),
+UInt256(6310887241768094443, 5420179551728730112, 0, 0),
+UInt256(12621774483536188886, 10840359103457460224, 0, 0),
+UInt256(2524354896707237777, 5857420635433402368, 0, 0),
+UInt256(5048709793414475554, 11714841270866804736, 0, 0),
+UInt256(10097419586828951109, 4982938468024057856, 0, 0),
+UInt256(2019483917365790221, 15753982952572452864, 0, 0),
+UInt256(4038967834731580443, 13061221831435354112, 0, 0),
+UInt256(8077935669463160887, 7675699589161156608, 0, 0),
+UInt256(1615587133892632177, 8913837547316051968, 0, 0),
+UInt256(3231174267785264354, 17827675094632103936, 0, 0),
+UInt256(6462348535570528709, 17208606115554656256, 0, 0),
+UInt256(1292469707114105741, 18199116482078572544, 0, 0),
+UInt256(2584939414228211483, 17951488890447593472, 0, 0),
+UInt256(5169878828456422967, 17456233707185635328, 0, 0),
+UInt256(10339757656912845935, 16465723340661719040, 0, 0),
+UInt256(2067951531382569187, 3293144668132343808, 0, 0),
+UInt256(4135903062765138374, 6586289336264687616, 0, 0),
+UInt256(8271806125530276748, 13172578672529375232, 0, 0),
+UInt256(1654361225106055349, 13702562178731606016, 0, 0),
+UInt256(3308722450212110699, 8958380283753660416, 0, 0),
+UInt256(6617444900424221398, 17916760567507320832, 0, 0),
+UInt256(1323488980084844279, 14651398557727195136, 0, 0),
+UInt256(2646977960169688559, 10856053041744838656, 0, 0),
+UInt256(5293955920339377119, 3265362009780125696, 0, 0),
+UInt256(10587911840678754238, 6530724019560251392, 0, 0),
+UInt256(2117582368135750847, 12374191248137781248, 0, 0),
+UInt256(4235164736271501695, 6301638422566010880, 0, 0),
+UInt256(8470329472543003390, 12603276845132021760, 0, 0),
+UInt256(1694065894508600678, 2520655369026404352, 0, 0),
+UInt256(3388131789017201356, 5041310738052808704, 0, 0),
+]
+
+private let bid_multipliers1_bid64_25: [UInt256] = [
+UInt256(6776263578034402712, 10082621476105617408, 0, 0),
+UInt256(1355252715606880542, 9395221924704944128, 0, 0),
+UInt256(2710505431213761085, 343699775700336640, 0, 0),
+UInt256(5421010862427522170, 687399551400673280, 0, 0),
+UInt256(10842021724855044340, 1374799102801346560, 0, 0),
+UInt256(2168404344971008868, 274959820560269312, 0, 0),
+UInt256(4336808689942017736, 549919641120538624, 0, 0),
+UInt256(8673617379884035472, 1099839282241077248, 0, 0),
+UInt256(1734723475976807094, 7598665485932036096, 0, 0),
+UInt256(3469446951953614188, 15197330971864072192, 0, 0),
+UInt256(6938893903907228377, 11947917870018592768, 0, 0),
+UInt256(1387778780781445675, 9768281203487539200, 0, 0),
+UInt256(2775557561562891351, 1089818333265526784, 0, 0),
+UInt256(5551115123125782702, 2179636666531053568, 0, 0),
+UInt256(11102230246251565404, 4359273333062107136, 0, 0),
+UInt256(2220446049250313080, 15629249925580062720, 0, 0),
+UInt256(4440892098500626161, 12811755777450573824, 0, 0),
+UInt256(8881784197001252323, 7176767481191596032, 0, 0),
+UInt256(1776356839400250464, 12503399940464050176, 0, 0),
+UInt256(3552713678800500929, 6560055807218548736, 0, 0),
+UInt256(7105427357601001858, 13120111614437097472, 0, 0),
+UInt256(1421085471520200371, 13692068767113150464, 0, 0),
+UInt256(2842170943040400743, 8937393460516749312, 0, 0),
+UInt256(5684341886080801486, 17874786921033498624, 0, 0),
+UInt256(11368683772161602973, 17302829768357445632, 0, 0),
+UInt256(2273736754432320594, 14528612397897220096, 0, 0),
+UInt256(4547473508864641189, 10610480722084888576, 0, 0),
+UInt256(9094947017729282379, 2774217370460225536, 0, 0),
+UInt256(1818989403545856475, 15312238733059686400, 0, 0),
+UInt256(3637978807091712951, 12177733392409821184, 0, 0),
+UInt256(7275957614183425903, 5908722711110090752, 0, 0),
+UInt256(1455191522836685180, 12249790986447749120, 0, 0),
+UInt256(2910383045673370361, 6052837899185946624, 0, 0),
+UInt256(5820766091346740722, 12105675798371893248, 0, 0),
+UInt256(11641532182693481445, 5764607523034234880, 0, 0),
+UInt256(2328306436538696289, 1152921504606846976, 0, 0),
+UInt256(4656612873077392578, 2305843009213693952, 0, 0),
+UInt256(9313225746154785156, 4611686018427387904, 0, 0),
+UInt256(1862645149230957031, 4611686018427387904, 0, 0),
+UInt256(3725290298461914062, 9223372036854775808, 0, 0),
+UInt256(7450580596923828125, 0, 0, 0),
+UInt256(1490116119384765625, 0, 0, 0),
+UInt256(2980232238769531250, 0, 0, 0),
+UInt256(5960464477539062500, 0, 0, 0),
+UInt256(11920928955078125000, 0, 0, 0),
+UInt256(2384185791015625000, 0, 0, 0),
+UInt256(4768371582031250000, 0, 0, 0),
+UInt256(9536743164062500000, 0, 0, 0),
+UInt256(1907348632812500000, 0, 0, 0),
+UInt256(3814697265625000000, 0, 0, 0),
+]
+
+private let bid_multipliers1_bid64_26: [UInt256] = [
+UInt256(7629394531250000000, 0, 0, 0),
+UInt256(1525878906250000000, 0, 0, 0),
+UInt256(3051757812500000000, 0, 0, 0),
+UInt256(6103515625000000000, 0, 0, 0),
+UInt256(12207031250000000000, 0, 0, 0),
+UInt256(2441406250000000000, 0, 0, 0),
+UInt256(4882812500000000000, 0, 0, 0),
+UInt256(9765625000000000000, 0, 0, 0),
+UInt256(1953125000000000000, 0, 0, 0),
+UInt256(3906250000000000000, 0, 0, 0),
+UInt256(7812500000000000000, 0, 0, 0),
+UInt256(1562500000000000000, 0, 0, 0),
+UInt256(3125000000000000000, 0, 0, 0),
+UInt256(6250000000000000000, 0, 0, 0),
+UInt256(12500000000000000000, 0, 0, 0),
+UInt256(2500000000000000000, 0, 0, 0),
+UInt256(5000000000000000000, 0, 0, 0),
+UInt256(10000000000000000000, 0, 0, 0),
+UInt256(2000000000000000000, 0, 0, 0),
+UInt256(4000000000000000000, 0, 0, 0),
+UInt256(8000000000000000000, 0, 0, 0),
+UInt256(1600000000000000000, 0, 0, 0),
+UInt256(3200000000000000000, 0, 0, 0),
+UInt256(6400000000000000000, 0, 0, 0),
+UInt256(12800000000000000000, 0, 0, 0),
+UInt256(2560000000000000000, 0, 0, 0),
+UInt256(5120000000000000000, 0, 0, 0),
+UInt256(10240000000000000000, 0, 0, 0),
+UInt256(2048000000000000000, 0, 0, 0),
+UInt256(4096000000000000000, 0, 0, 0),
+UInt256(8192000000000000000, 0, 0, 0),
+UInt256(1638400000000000000, 0, 0, 0),
+UInt256(3276800000000000000, 0, 0, 0),
+UInt256(6553600000000000000, 0, 0, 0),
+UInt256(1310720000000000000, 0, 0, 0),
+UInt256(2621440000000000000, 0, 0, 0),
+UInt256(5242880000000000000, 0, 0, 0),
+UInt256(10485760000000000000, 0, 0, 0),
+UInt256(2097152000000000000, 0, 0, 0),
+UInt256(4194304000000000000, 0, 0, 0),
+UInt256(8388608000000000000, 0, 0, 0),
+UInt256(1677721600000000000, 0, 0, 0),
+UInt256(3355443200000000000, 0, 0, 0),
+UInt256(6710886400000000000, 0, 0, 0),
+UInt256(1342177280000000000, 0, 0, 0),
+UInt256(2684354560000000000, 0, 0, 0),
+UInt256(5368709120000000000, 0, 0, 0),
+UInt256(10737418240000000000, 0, 0, 0),
+UInt256(2147483648000000000, 0, 0, 0),
+UInt256(4294967296000000000, 0, 0, 0),
+]
+
+private let bid_multipliers1_bid64_27: [UInt256] = [
+UInt256(8589934592000000000, 0, 0, 0),
+UInt256(1717986918400000000, 0, 0, 0),
+UInt256(3435973836800000000, 0, 0, 0),
+UInt256(6871947673600000000, 0, 0, 0),
+UInt256(1374389534720000000, 0, 0, 0),
+UInt256(2748779069440000000, 0, 0, 0),
+UInt256(5497558138880000000, 0, 0, 0),
+UInt256(10995116277760000000, 0, 0, 0),
+UInt256(2199023255552000000, 0, 0, 0),
+UInt256(4398046511104000000, 0, 0, 0),
+UInt256(8796093022208000000, 0, 0, 0),
+UInt256(1759218604441600000, 0, 0, 0),
+UInt256(3518437208883200000, 0, 0, 0),
+UInt256(7036874417766400000, 0, 0, 0),
+UInt256(1407374883553280000, 0, 0, 0),
+UInt256(2814749767106560000, 0, 0, 0),
+UInt256(5629499534213120000, 0, 0, 0),
+UInt256(11258999068426240000, 0, 0, 0),
+UInt256(2251799813685248000, 0, 0, 0),
+UInt256(4503599627370496000, 0, 0, 0),
+UInt256(9007199254740992000, 0, 0, 0),
+UInt256(1801439850948198400, 0, 0, 0),
+UInt256(3602879701896396800, 0, 0, 0),
+UInt256(7205759403792793600, 0, 0, 0),
+UInt256(1441151880758558720, 0, 0, 0),
+UInt256(2882303761517117440, 0, 0, 0),
+UInt256(5764607523034234880, 0, 0, 0),
+UInt256(11529215046068469760, 0, 0, 0),
+UInt256(2305843009213693952, 0, 0, 0),
+UInt256(4611686018427387904, 0, 0, 0),
+UInt256(9223372036854775808, 0, 0, 0),
+UInt256(1844674407370955161, 11068046444225730969, 11068046444225730969, 11068046444225730970),
+UInt256(3689348814741910323, 3689348814741910323, 3689348814741910323, 3689348814741910324),
+UInt256(7378697629483820646, 7378697629483820646, 7378697629483820646, 7378697629483820647),
+UInt256(1475739525896764129, 5165088340638674452, 8854437155380584775, 12543785970122495099),
+UInt256(2951479051793528258, 10330176681277348904, 17708874310761169551, 6640827866535438582),
+UInt256(5902958103587056517, 2213609288845146193, 16971004547812787486, 13281655733070877164),
+UInt256(11805916207174113034, 4427218577690292387, 15495265021916023357, 8116567392432202712),
+UInt256(2361183241434822606, 15642838974505699770, 6788401819125114994, 12691359922712171512),
+UInt256(4722366482869645213, 12838933875301847924, 13576803638250229989, 6935975771714791408),
+UInt256(9444732965739290427, 7231123676894144233, 8706863202790908362, 13871951543429582816),
+UInt256(1888946593147858085, 8824922364862649493, 1741372640558181672, 10153087938169737210),
+UInt256(3777893186295716170, 17649844729725298986, 3482745281116363345, 1859431802629922803),
+UInt256(7555786372591432341, 16852945385741046356, 6965490562232726690, 3718863605259845606),
+UInt256(1511157274518286468, 7059937891890119594, 8771795741930365984, 8122470350535789768),
+UInt256(3022314549036572936, 14119875783780239188, 17543591483860731968, 16244940701071579536),
+UInt256(6044629098073145873, 9793007493850926761, 16640438894011912321, 14043137328433607455),
+UInt256(12089258196146291747, 1139270913992301907, 14834133714314273027, 9639530583157663293),
+UInt256(2417851639229258349, 7606551812282281027, 17724222001830495898, 5617254931373442982),
+UInt256(4835703278458516698, 15213103624564562055, 17001699929951440180, 11234509862746885964),
+]
+
+private let bid_multipliers1_bid64_28: [UInt256] = [
+UInt256(9671406556917033397, 11979463175419572495, 15556655786193328745, 4022275651784220311),
+UInt256(1934281311383406679, 9774590264567735145, 10490028786722486395, 8183152759840664709),
+UInt256(3868562622766813359, 1102436455425918675, 2533313499735421174, 16366305519681329418),
+UInt256(7737125245533626718, 2204872910851837350, 5066626999470842349, 14285866965653107219),
+UInt256(1547425049106725343, 11509021026396098439, 12081371844119899439, 10235871022614442091),
+UInt256(3094850098213450687, 4571297979082645263, 5715999614530247263, 2024997971519332565),
+UInt256(6189700196426901374, 9142595958165290526, 11431999229060494526, 4049995943038665129),
+UInt256(12379400392853802748, 18285191916330581053, 4417254384411437436, 8099991886077330257),
+UInt256(2475880078570760549, 14725084827491847180, 4572799691624197810, 8998696006699286698),
+UInt256(4951760157141521099, 11003425581274142744, 9145599383248395620, 17997392013398573396),
+UInt256(9903520314283042199, 3560107088838733872, 18291198766496791241, 17548039953087595175),
+UInt256(1980704062856608439, 15469416676735388067, 7347588568041268571, 10888305620101339682),
+UInt256(3961408125713216879, 12492089279761224518, 14695177136082537143, 3329867166493127747),
+UInt256(7922816251426433759, 6537434485812897421, 10943610198455522670, 6659734332986255494),
+UInt256(1584563250285286751, 16064882156130220777, 2188722039691104534, 1331946866597251099),
+UInt256(3169126500570573503, 13683020238550889938, 4377444079382209068, 2663893733194502198),
+UInt256(6338253001141147007, 8919296403392228260, 8754888158764418136, 5327787466389004395),
+UInt256(12676506002282294014, 17838592806784456520, 17509776317528836272, 10655574932778008790),
+UInt256(2535301200456458802, 18325113820324532596, 18259350522473408547, 5820463801297512082),
+UInt256(5070602400912917605, 18203483566939513577, 18071956971237265478, 11640927602595024163),
+UInt256(10141204801825835211, 17960223060169475539, 17697169868764979341, 4835111131480496709),
+UInt256(2028240960365167042, 7281393426775805431, 3539433973752995868, 4656371041038009665),
+UInt256(4056481920730334084, 14562786853551610862, 7078867947505991736, 9312742082076019330),
+UInt256(8112963841460668169, 10678829633393670108, 14157735895011983473, 178740090442487044),
+UInt256(1622592768292133633, 16893161185646375314, 10210244808486217341, 35748018088497409),
+UInt256(3245185536584267267, 15339578297583199013, 1973745543262883066, 71496036176994818),
+UInt256(6490371073168534535, 12232412521456846410, 3947491086525766132, 142992072353989635),
+UInt256(1298074214633706907, 2446482504291369282, 789498217305153226, 7407296043954618574),
+UInt256(2596148429267413814, 4892965008582738564, 1578996434610306452, 14814592087909237147),
+UInt256(5192296858534827628, 9785930017165477128, 3157992869220612905, 11182440102108922678),
+UInt256(10384593717069655257, 1125115960621402640, 6315985738441225811, 3918136130508293739),
+UInt256(2076918743413931051, 7603720821608101174, 8641894777172065808, 11851673670327389718),
+UInt256(4153837486827862102, 15207441643216202348, 17283789554344131617, 5256603266945227819),
+UInt256(8307674973655724205, 11968139212722853081, 16120835034978711618, 10513206533890455638),
+UInt256(1661534994731144841, 2393627842544570616, 6913515821737652646, 16860036565745732421),
+UInt256(3323069989462289682, 4787255685089141232, 13827031643475305293, 15273329057781913225),
+UInt256(6646139978924579364, 9574511370178282465, 9207319213241058971, 12099914041854274834),
+UInt256(1329227995784915872, 16672297533003297785, 16598859101615853087, 2419982808370854967),
+UInt256(2658455991569831745, 14897850992297043955, 14750974129522154558, 4839965616741709934),
+UInt256(5316911983139663491, 11348957910884536295, 11055204185334757500, 9679931233483419867),
+UInt256(10633823966279326983, 4251171748059520975, 3663664296959963385, 913118393257288118),
+UInt256(2126764793255865396, 11918280793837635164, 11800779303617723646, 11250670122877188594),
+UInt256(4253529586511730793, 5389817513965718713, 5154814533525895677, 4054596172044825571),
+UInt256(8507059173023461586, 10779635027931437426, 10309629067051791354, 8109192344089651141),
+UInt256(1701411834604692317, 5845275820328197808, 9440623442894178917, 5311187283559840552),
+UInt256(3402823669209384634, 11690551640656395617, 434502812078806218, 10622374567119681103),
+UInt256(6805647338418769269, 4934359207603239618, 869005624157612437, 2798005060529810589),
+UInt256(1361129467683753853, 15744267100488289216, 7552498754315343133, 15316996271073603411),
+UInt256(2722258935367507707, 13041790127267026816, 15104997508630686267, 12187248468437655206),
+UInt256(5444517870735015415, 7636836180824502017, 11763250943551820919, 5927752863165758795),
+]
+
+private let bid_multipliers1_bid64_29: [UInt256] = [
+UInt256(10889035741470030830, 15273672361649004035, 5079757813394090222, 11855505726331517589),
+UInt256(2177807148294006166, 3054734472329800807, 1015951562678818044, 9749798774750124165),
+UInt256(4355614296588012332, 6109468944659601614, 2031903125357636089, 1052853475790696713),
+UInt256(8711228593176024664, 12218937889319203228, 4063806250715272178, 2105706951581393425),
+UInt256(1742245718635204932, 17201182836831481938, 8191458879626875082, 421141390316278685),
+UInt256(3484491437270409865, 15955621599953412260, 16382917759253750164, 842282780632557370),
+UInt256(6968982874540819731, 13464499126197272905, 14319091444797948712, 1684565561265114740),
+UInt256(1393796574908163946, 6382248639981364904, 6553167103701500065, 11404959556478753918),
+UInt256(2787593149816327892, 12764497279962729808, 13106334207403000131, 4363175039247956220),
+UInt256(5575186299632655785, 7082250486215908001, 7765924341096448646, 8726350078495912439),
+UInt256(11150372599265311570, 14164500972431816002, 15531848682192897292, 17452700156991824877),
+UInt256(2230074519853062314, 2832900194486363200, 10485067365922400104, 18247935290366006269),
+UInt256(4460149039706124628, 5665800388972726401, 2523390658135248593, 18049126507022460921),
+UInt256(8920298079412249256, 11331600777945452802, 5046781316270497187, 17651508940335370225),
+UInt256(1784059615882449851, 5955668970331000883, 12077402707479830407, 3530301788067074045),
+UInt256(3568119231764899702, 11911337940662001767, 5708061341250109198, 7060603576134148090),
+UInt256(7136238463529799405, 5375931807614451918, 11416122682500218396, 14121207152268296180),
+UInt256(1427247692705959881, 1075186361522890383, 13351270980725774648, 17581636689421300529),
+UInt256(2854495385411919762, 2150372723045780767, 8255797887741997681, 16716529305133049442),
+UInt256(5708990770823839524, 4300745446091561534, 16511595775483995363, 14986314536556547267),
+UInt256(11417981541647679048, 8601490892183123069, 14576447477258439111, 11525884999403542918),
+UInt256(2283596308329535809, 12788344622662355583, 10293987124935508468, 13373223444106439554),
+UInt256(4567192616659071619, 7129945171615159551, 2141230176161465321, 8299702814503327491),
+UInt256(9134385233318143238, 14259890343230319102, 4282460352322930642, 16599405629006654981),
+UInt256(1826877046663628647, 13920024512871794790, 856492070464586128, 10698578755285151643),
+UInt256(3653754093327257295, 9393304952034037964, 1712984140929172257, 2950413436860751669),
+UInt256(7307508186654514591, 339865830358524312, 3425968281858344514, 5900826873721503338),
+UInt256(1461501637330902918, 3757321980813615185, 11753240100597399872, 8558863004228121314),
+UInt256(2923003274661805836, 7514643961627230371, 5059736127485248128, 17117726008456242628),
+UInt256(5846006549323611672, 15029287923254460742, 10119472254970496257, 15788707943202933640),
+UInt256(11692013098647223345, 11611831772799369869, 1792200436231440899, 13130671812696315664),
+UInt256(2338402619729444669, 2322366354559873973, 15115835346213929472, 13694180806764994103),
+UInt256(4676805239458889338, 4644732709119747947, 11784926618718307329, 8941617539820436589),
+UInt256(9353610478917778676, 9289465418239495895, 5123109163727063042, 17883235079640873178),
+UInt256(1870722095783555735, 5547241898389809502, 4713970647487322931, 14644693460153905606),
+UInt256(3741444191567111470, 11094483796779619004, 9427941294974645863, 10842642846598259595),
+UInt256(7482888383134222941, 3742223519849686393, 409138516239740111, 3238541619486967573),
+UInt256(1496577676626844588, 4437793518711847601, 14839222962215589315, 647708323897393515),
+UInt256(2993155353253689176, 8875587037423695203, 11231701850721627014, 1295416647794787029),
+UInt256(5986310706507378352, 17751174074847390407, 4016659627733702412, 2590833295589574058),
+UInt256(11972621413014756705, 17055604075985229198, 8033319255467404824, 5181666591179148116),
+UInt256(2394524282602951341, 3411120815197045839, 12674710295319211934, 8415030947719650270),
+UInt256(4789048565205902682, 6822241630394091679, 6902676516928872252, 16830061895439300539),
+UInt256(9578097130411805364, 13644483260788183358, 13805353033857744505, 15213379717169049462),
+UInt256(1915619426082361072, 17486291911125277964, 10139768236255369547, 10421373572917630539),
+UInt256(3831238852164722145, 16525839748541004313, 1832792398801187479, 2396003072125709462),
+UInt256(7662477704329444291, 14604935423372457010, 3665584797602374958, 4792006144251418924),
+UInt256(1532495540865888858, 6610335899416401725, 4422465774262385314, 15715796487817925078),
+UInt256(3064991081731777716, 13220671798832803450, 8844931548524770629, 12984848901926298539),
+UInt256(6129982163463555433, 7994599523956055284, 17689863097049541259, 7522953730143045462),
+]
+
+private let bid_multipliers1_bid64_30: [UInt256] = [
+UInt256(12259964326927110866, 15989199047912110569, 16932982120389530902, 15045907460286090924),
+UInt256(2451992865385422173, 6887188624324332437, 3386596424077906180, 10387879121541038832),
+UInt256(4903985730770844346, 13774377248648664874, 6773192848155812361, 2329014169372526047),
+UInt256(9807971461541688693, 9102010423587778132, 13546385696311624722, 4658028338745052093),
+UInt256(1961594292308337738, 12888448528943286596, 2709277139262324944, 8310303297232831065),
+UInt256(3923188584616675477, 7330152984177021576, 5418554278524649888, 16620606594465662130),
+UInt256(7846377169233350954, 14660305968354043152, 10837108557049299777, 14794469115221772644),
+UInt256(1569275433846670190, 17689456452638449923, 5856770526151770278, 14026940267270085499),
+UInt256(3138550867693340381, 16932168831567348230, 11713541052303540557, 9607136460830619381),
+UInt256(6277101735386680763, 15417593589425144845, 4980338030897529499, 767528847951687146),
+UInt256(12554203470773361527, 12388443105140738074, 9960676061795058998, 1535057695903374291),
+UInt256(2510840694154672305, 9856386250511968261, 5681484027100922122, 15064406798148316151),
+UInt256(5021681388309344611, 1266028427314384906, 11362968054201844245, 11682069522587080686),
+UInt256(10043362776618689222, 2532056854628769813, 4279192034694136875, 4917394971464609756),
+UInt256(2008672555323737844, 7885109000409574609, 855838406938827375, 983478994292921952),
+UInt256(4017345110647475688, 15770218000819149218, 1711676813877654750, 1966957988585843903),
+UInt256(8034690221294951377, 13093691927928746820, 3423353627755309500, 3933915977171687805),
+UInt256(1606938044258990275, 9997436015069570010, 8063368355034882546, 8165480824918158208),
+UInt256(3213876088517980551, 1548127956429588404, 16126736710069765092, 16330961649836316415),
+UInt256(6427752177035961102, 3096255912859176809, 13806729346429978569, 14215179225963081214),
+UInt256(1285550435407192220, 7997948812055656008, 6450694684027906037, 2843035845192616243),
+UInt256(2571100870814384440, 15995897624111312016, 12901389368055812074, 5686071690385232486),
+UInt256(5142201741628768881, 13545051174513072417, 7356034662402072532, 11372143380770464971),
+UInt256(10284403483257537763, 8643358275316593218, 14712069324804145065, 4297542687831378326),
+UInt256(2056880696651507552, 12796718099289049613, 6631762679702739336, 4548857352308185989),
+UInt256(4113761393303015105, 7146692124868547610, 13263525359405478672, 9097714704616371977),
+UInt256(8227522786606030210, 14293384249737095221, 8080306645101405728, 18195429409232743953),
+UInt256(1645504557321206042, 2858676849947419044, 5305410143762191468, 18396481140814190084),
+UInt256(3291009114642412084, 5717353699894838088, 10610820287524382937, 18346218207918828551),
+UInt256(6582018229284824168, 11434707399789676177, 2774896501339214259, 18245692342128105486),
+UInt256(1316403645856964833, 13354987924183666205, 554979300267842851, 18406533727393262390),
+UInt256(2632807291713929667, 8263231774657780794, 1109958600535685703, 18366323381076973164),
+UInt256(5265614583427859334, 16526463549315561588, 2219917201071371407, 18285902688444394712),
+UInt256(10531229166855718669, 14606183024921571560, 4439834402142742815, 18125061303179237808),
+UInt256(2106245833371143733, 17678631863951955604, 15645362139396189855, 18382407519603488855),
+UInt256(4212491666742287467, 16910519654194359593, 12843980205082828095, 18318070965497426093),
+UInt256(8424983333484574935, 15374295234679167571, 7241216336456104575, 18189397857285300569),
+UInt256(1684996666696914987, 3074859046935833514, 5137592082033131238, 7327228386198970437),
+UInt256(3369993333393829974, 6149718093871667028, 10275184164066262476, 14654456772397940874),
+UInt256(6739986666787659948, 12299436187743334057, 2103624254422973337, 10862169471086330132),
+UInt256(1347997333357531989, 13527933681774397781, 420724850884594667, 9551131523701086673),
+UInt256(2695994666715063979, 8609123289839243946, 841449701769189335, 655518973692621730),
+UInt256(5391989333430127958, 17218246579678487892, 1682899403538378670, 1311037947385243460),
+UInt256(10783978666860255917, 15989749085647424168, 3365798807076757340, 2622075894770486919),
+UInt256(2156795733372051183, 10576647446613305480, 673159761415351468, 524415178954097384),
+UInt256(4313591466744102367, 2706550819517059344, 1346319522830702936, 1048830357908194768),
+UInt256(8627182933488204734, 5413101639034118688, 2692639045661405872, 2097660715816389535),
+UInt256(1725436586697640946, 15840015586774465030, 7917225438616101820, 15176927402130919200),
+UInt256(3450873173395281893, 13233287099839378444, 15834450877232203641, 11907110730552286784),
+UInt256(6901746346790563787, 8019830125969205273, 13222157680754855667, 5367477387395021951),
+]
+
+private let bid_multipliers1_bid64_31: [UInt256] = [
+UInt256(1380349269358112757, 8982663654677661701, 2644431536150971133, 8452193106962825037),
+UInt256(2760698538716225514, 17965327309355323402, 5288863072301942266, 16904386213925650074),
+UInt256(5521397077432451029, 17483910545001095188, 10577726144603884533, 15362028354141748531),
+UInt256(11042794154864902059, 16521077016292638761, 2708708215498217451, 12277312634573945445),
+UInt256(2208558830972980411, 18061610662226169045, 541741643099643490, 6144811341656699413),
+UInt256(4417117661945960823, 17676477250742786474, 1083483286199286980, 12289622683313398825),
+UInt256(8834235323891921647, 16906210427776021332, 2166966572398573961, 6132501292917246033),
+UInt256(1766847064778384329, 10759939715039024912, 15190788573447356085, 1226500258583449207),
+UInt256(3533694129556768659, 3073135356368498209, 11934833073185160554, 2453000517166898414),
+UInt256(7067388259113537318, 6146270712736996419, 5422922072660769492, 4906001034333796827),
+UInt256(1413477651822707463, 12297300586773130253, 8463282044015974544, 15738595465834400659),
+UInt256(2826955303645414927, 6147857099836708890, 16926564088031949089, 13030446857959249701),
+UInt256(5653910607290829854, 12295714199673417781, 15406384102354346563, 7614149642208947785),
+UInt256(11307821214581659709, 6144684325637283947, 12366024130999141510, 15228299284417895569),
+UInt256(2261564242916331941, 15986332124095098082, 6162553640941738625, 6735008671625489437),
+UInt256(4523128485832663883, 13525920174480644548, 12325107281883477250, 13470017343250978874),
+UInt256(9046256971665327767, 8605096275251737481, 6203470490057402885, 8493290612792406132),
+UInt256(1809251394333065553, 9099716884534168142, 12308740542237211546, 12766704566784212196),
+UInt256(3618502788666131106, 18199433769068336285, 6170737010764871477, 7086665059858872776),
+UInt256(7237005577332262213, 17952123464427120954, 12341474021529742954, 14173330119717745552),
+UInt256(1447401115466452442, 14658471137111155160, 9846992433789769237, 6524014838685459434),
+UInt256(2894802230932904885, 10870198200512758705, 1247240793869986858, 13048029677370918867),
+UInt256(5789604461865809771, 3293652327315965794, 2494481587739973717, 7649315281032286118),
+UInt256(11579208923731619542, 6587304654631931588, 4988963175479947434, 15298630562064572236),
+UInt256(2315841784746323908, 8696158560410206964, 997792635095989486, 17817121371380555740),
+UInt256(4631683569492647816, 17392317120820413928, 1995585270191978973, 17187498669051559864),
+UInt256(9263367138985295633, 16337890167931276240, 3991170540383957947, 15928253264393568112),
+UInt256(1852673427797059126, 14335624477811986217, 11866280552302522559, 3185650652878713623),
+UInt256(3705346855594118253, 10224504881914420819, 5285817030895493502, 6371301305757427245),
+UInt256(7410693711188236507, 2002265690119290022, 10571634061790987004, 12742602611514854490),
+UInt256(1482138742237647301, 7779150767507678650, 16871722071325838693, 13616566966528701868),
+UInt256(2964277484475294602, 15558301535015357301, 15296700068942125771, 8786389859347852119),
+UInt256(5928554968950589205, 12669858996321162987, 12146656064174699926, 17572779718695704238),
+UInt256(11857109937901178411, 6892973918932774359, 5846568054639848237, 16698815363681856860),
+UInt256(2371421987580235682, 5067943598528465195, 1169313610927969647, 10718460702220192019),
+UInt256(4742843975160471364, 10135887197056930390, 2338627221855939295, 2990177330730832421),
+UInt256(9485687950320942729, 1825030320404309164, 4677254443711878590, 5980354661461664842),
+UInt256(1897137590064188545, 15122401323048503125, 12003497332968106687, 12264117376518063938),
+UInt256(3794275180128377091, 11798058572387454635, 5560250592226661759, 6081490679326576260),
+UInt256(7588550360256754183, 5149373071065357654, 11120501184453323518, 12162981358653152520),
+UInt256(1517710072051350836, 12097921058438802500, 9602797866374485350, 2432596271730630504),
+UInt256(3035420144102701673, 5749098043168053385, 758851659039419084, 4865192543461261008),
+UInt256(6070840288205403346, 11498196086336106770, 1517703318078838168, 9730385086922522016),
+UInt256(12141680576410806693, 4549648098962661924, 3035406636157676337, 1014026100135492416),
+UInt256(2428336115282161338, 11977976064018263354, 7985778956715355913, 14960200478994739776),
+UInt256(4856672230564322677, 5509208054326975092, 15971557913430711827, 11473656884279927936),
+UInt256(9713344461128645354, 11018416108653950185, 13496371753151872039, 4500569694850304256),
+UInt256(1942668892225729070, 16961078480698431329, 17456669609598015700, 11968160383195791821),
+UInt256(3885337784451458141, 15475412887687311043, 16466595145486479785, 5489576692682032026),
+UInt256(7770675568902916283, 12504081701665070471, 14486446217263407954, 10979153385364064051),
+]
+
+private let bid_multipliers1_bid64_32: [UInt256] = [
+UInt256(1554135113780583256, 13568862784558745063, 17654684502420322883, 13263877121298543780),
+UInt256(3108270227561166513, 8690981495407938511, 16862624931131094151, 8081010168887535944),
+UInt256(6216540455122333026, 17381962990815877023, 15278505788552636686, 16162020337775071888),
+UInt256(12433080910244666053, 16317181907922202431, 12110267503395721757, 13877296601840592159),
+UInt256(2486616182048933210, 14331482825810171455, 17179448759646785644, 6464808135110028755),
+UInt256(4973232364097866421, 10216221577910791295, 15912153445584019672, 12929616270220057510),
+UInt256(9946464728195732843, 1985699082112030975, 13377562817458487729, 7412488466730563404),
+UInt256(1989292945639146568, 11465186260648137164, 13743559007717428515, 8861195322829933328),
+UInt256(3978585891278293137, 4483628447586722713, 9040373941725305414, 17722390645659866655),
+UInt256(7957171782556586274, 8967256895173445426, 18080747883450610829, 16998037217610181693),
+UInt256(1591434356511317254, 16550846638002330378, 3616149576690122165, 18157002702489677632),
+UInt256(3182868713022634509, 14654949202295109140, 7232299153380244331, 17867261331269803647),
+UInt256(6365737426045269019, 10863154330880666664, 14464598306760488663, 17287778588830055677),
+UInt256(12731474852090538039, 3279564588051781713, 10482452539811425711, 16128813103950559738),
+UInt256(2546294970418107607, 15413308176577997635, 9475188137446105788, 14293809065015842918),
+UInt256(5092589940836215215, 12379872279446443655, 503632201182659961, 10140874056322134219),
+UInt256(10185179881672430431, 6313000485183335694, 1007264402365319923, 1835004038934716821),
+UInt256(2037035976334486086, 4951948911778577462, 201452880473063984, 11435047252012674334),
+UInt256(4074071952668972172, 9903897823557154924, 402905760946127969, 4423350430315797052),
+UInt256(8148143905337944345, 1361051573404758232, 805811521892255938, 8846700860631594104),
+UInt256(1629628781067588869, 272210314680951646, 7539859933862271834, 1769340172126318821),
+UInt256(3259257562135177738, 544420629361903292, 15079719867724543668, 3538680344252637642),
+UInt256(6518515124270355476, 1088841258723806585, 11712695661739535720, 7077360688505275283),
+UInt256(1303703024854071095, 3907117066486671640, 6031887947089817467, 5104820952442965380),
+UInt256(2607406049708142190, 7814234132973343280, 12063775894179634934, 10209641904885930760),
+UInt256(5214812099416284380, 15628468265946686561, 5680807714649718253, 1972539736062309903),
+UInt256(10429624198832568761, 12810192458183821506, 11361615429299436506, 3945079472124619806),
+UInt256(2085924839766513752, 6251387306378674624, 9651020715343707947, 11857062338650654931),
+UInt256(4171849679533027504, 12502774612757349249, 855297356977864279, 5267380603591758246),
+UInt256(8343699359066055009, 6558805151805146882, 1710594713955728558, 10534761207183516491),
+UInt256(1668739871813211001, 16069156289328670669, 4031467757533056034, 16864347500404344591),
+UInt256(3337479743626422003, 13691568504947789722, 8062935515066112069, 15281950927099137566),
+UInt256(6674959487252844007, 8936392936186027828, 16125871030132224139, 12117157780488723516),
+UInt256(1334991897450568801, 9165976216721026212, 3225174206026444827, 17180826815065385996),
+UInt256(2669983794901137602, 18331952433442052424, 6450348412052889655, 15914909556421220376),
+UInt256(5339967589802275205, 18217160793174553232, 12900696824105779311, 13383075039132889136),
+UInt256(10679935179604550411, 17987577512639554849, 7354649574502007007, 8319406004556226656),
+UInt256(2135987035920910082, 7286864317269821293, 1470929914900401401, 9042578830395065978),
+UInt256(4271974071841820164, 14573728634539642586, 2941859829800802802, 18085157660790131956),
+UInt256(8543948143683640329, 10700713195369733556, 5883719659601605605, 17723571247870712295),
+UInt256(1708789628736728065, 16897537898041588004, 1176743931920321121, 3544714249574142459),
+UInt256(3417579257473456131, 15348331722373624392, 2353487863840642242, 7089428499148284918),
+UInt256(6835158514946912263, 12249919371037697168, 4706975727681284484, 14178856998296569836),
+UInt256(1367031702989382452, 13518030318433270403, 4630743960278167220, 2835771399659313968),
+UInt256(2734063405978764905, 8589316563156989190, 9261487920556334440, 5671542799318627935),
+UInt256(5468126811957529810, 17178633126313978381, 76231767403117264, 11343085598637255869),
+UInt256(10936253623915059621, 15910522178918405146, 152463534806234529, 4239427123564960121),
+UInt256(2187250724783011924, 6871453250525591352, 7409190336445067552, 4537234239454902348),
+UInt256(4374501449566023848, 13742906501051182704, 14818380672890135104, 9074468478909804695),
+UInt256(8749002899132047697, 9039068928392813793, 11190017272070718592, 18148936957819609390),
+]
+
+private let bid_multipliers1_bid64_33: [UInt256] = [
+UInt256(1749800579826409539, 9186511415162383405, 2238003454414143718, 11008485021047742525),
+UInt256(3499601159652819078, 18373022830324766810, 4476006908828287437, 3570225968385933433),
+UInt256(6999202319305638157, 18299301586939982004, 8952013817656574874, 7140451936771866865),
+UInt256(1399840463861127631, 11038557946871817047, 5479751578273225298, 1428090387354373373),
+UInt256(2799680927722255263, 3630371820034082478, 10959503156546450596, 2856180774708746746),
+UInt256(5599361855444510526, 7260743640068164957, 3472262239383349576, 5712361549417493492),
+UInt256(11198723710889021052, 14521487280136329914, 6944524478766699152, 11424723098834986984),
+UInt256(2239744742177804210, 10282995085511086629, 5078253710495250153, 13352991063992728367),
+UInt256(4479489484355608421, 2119246097312621642, 10156507420990500307, 8259238054275905117),
+UInt256(8958978968711216842, 4238492194625243285, 1866270768271448998, 16518476108551810234),
+UInt256(1791795793742243368, 8226396068408869303, 7751951783138110446, 3303695221710362047),
+UInt256(3583591587484486736, 16452792136817738606, 15503903566276220892, 6607390443420724094),
+UInt256(7167183174968973473, 14458840199925925597, 12561063058842890168, 13214780886841448187),
+UInt256(1433436634993794694, 13959814484210916089, 2512212611768578033, 13711002621594020607),
+UInt256(2866873269987589389, 9472884894712280562, 5024425223537156067, 8975261169478489598),
+UInt256(5733746539975178779, 499025715715009508, 10048850447074312134, 17950522338956979196),
+UInt256(11467493079950357558, 998051431430019017, 1650956820439072653, 17454300604204406776),
+UInt256(2293498615990071511, 11267656730511734773, 330191364087814530, 14558906565066612325),
+UInt256(4586997231980143023, 4088569387313917930, 660382728175629061, 10671069056423673034),
+UInt256(9173994463960286046, 8177138774627835860, 1320765456351258123, 2895394039137794452),
+UInt256(1834798892792057209, 5324776569667477495, 3953501906012161947, 15336474066795200184),
+UInt256(3669597785584114418, 10649553139334954990, 7907003812024323895, 12226204059880848751),
+UInt256(7339195571168228837, 2852362204960358364, 15814007624048647791, 6005664046052145885),
+UInt256(1467839114233645767, 7949170070475892319, 6852150339551639881, 8579830438694249824),
+UInt256(2935678228467291534, 15898340140951784638, 13704300679103279762, 17159660877388499647),
+UInt256(5871356456934583069, 13349936208194017661, 8961857284497007909, 15872577681067447677),
+UInt256(11742712913869166139, 8253128342678483706, 17923714568994015819, 13298411288425343738),
+UInt256(2348542582773833227, 16408020927503338034, 3584742913798803163, 17417077516652710041),
+UInt256(4697085165547666455, 14369297781297124452, 7169485827597606327, 16387410959595868465),
+UInt256(9394170331095332911, 10291851488884697288, 14338971655195212655, 14328077845482185314),
+UInt256(1878834066219066582, 5747719112518849780, 17625189590006683823, 17623010828064078356),
+UInt256(3757668132438133164, 11495438225037699561, 16803635106303816031, 16799277582418605095),
+UInt256(7515336264876266329, 4544132376365847507, 15160526138898080447, 15151811091127658574),
+UInt256(1503067252975253265, 15666221734240810794, 6721454042521526412, 14098408662451262685),
+UInt256(3006134505950506531, 12885699394772069972, 13442908085043052825, 9750073251192973753),
+UInt256(6012269011901013063, 7324654715834588329, 8439072096376554035, 1053402428676395890),
+UInt256(12024538023802026126, 14649309431669176658, 16878144192753108070, 2106804857352791779),
+UInt256(2404907604760405225, 6619210701075745654, 18133024097518262906, 15178756230438199649),
+UInt256(4809815209520810450, 13238421402151491309, 17819304121326974197, 11910768387166847682),
+UInt256(9619630419041620901, 8030098730593431003, 17191864168944396779, 5374792700624143747),
+UInt256(1923926083808324180, 5295368560860596523, 18195768092756520648, 12143004984350559719),
+UInt256(3847852167616648360, 10590737121721193047, 17944792111803489681, 5839265894991567822),
+UInt256(7695704335233296721, 2734730169732834479, 17442840149897427746, 11678531789983135644),
+UInt256(1539140867046659344, 4236294848688477219, 3488568029979485549, 6025055172738537452),
+UInt256(3078281734093318688, 8472589697376954438, 6977136059958971098, 12050110345477074904),
+UInt256(6156563468186637376, 16945179394753908876, 13954272119917942197, 5653476617244598192),
+UInt256(12313126936373274753, 15443614715798266137, 9461800166126332778, 11306953234489196384),
+UInt256(2462625387274654950, 14156769387385384197, 1892360033225266555, 13329437091123570247),
+UInt256(4925250774549309901, 9866794701061216778, 3784720066450533111, 8212130108537588877),
+UInt256(9850501549098619803, 1286845328412881940, 7569440132901066222, 16424260217075177753),
+]
+
+private let bid_multipliers1_bid64_34: [UInt256] = [
+UInt256(1970100309819723960, 11325415509908307357, 12581934470805944214, 3284852043415035551),
+UInt256(3940200619639447921, 4204086946107063099, 6717124867902336812, 6569704086830071102),
+UInt256(7880401239278895842, 8408173892214126198, 13434249735804673624, 13139408173660142203),
+UInt256(1576080247855779168, 9060332407926645886, 2686849947160934724, 17385276893699669734),
+UInt256(3152160495711558336, 18120664815853291772, 5373699894321869449, 16323809713689787851),
+UInt256(6304320991423116673, 17794585557997031928, 10747399788643738899, 14200875353670024086),
+UInt256(12608641982846233347, 17142427042284512241, 3048055503577926183, 9955006633630496555),
+UInt256(2521728396569246669, 10807183037940723094, 11677657544941316206, 5680350141468009635),
+UInt256(5043456793138493339, 3167622002171894573, 4908571016173080796, 11360700282936019269),
+UInt256(10086913586276986678, 6335244004343789146, 9817142032346161593, 4274656492162486921),
+UInt256(2017382717255397335, 12335095245094488798, 16720823665436873611, 8233628927916318031),
+UInt256(4034765434510794671, 6223446416479425981, 14994903257164195606, 16467257855832636061),
+UInt256(8069530869021589342, 12446892832958851963, 11543062440618839597, 14487771637955720506),
+UInt256(1613906173804317868, 9868076196075591039, 2308612488123767919, 10276251957074964748),
+UInt256(3227812347608635737, 1289408318441630462, 4617224976247535839, 2105759840440377880),
+UInt256(6455624695217271474, 2578816636883260924, 9234449952495071678, 4211519680880755759),
+UInt256(1291124939043454294, 15273158586344293477, 12914936434724745305, 4531652750918061475),
+UInt256(2582249878086908589, 12099573098979035339, 7383128795739938994, 9063305501836122950),
+UInt256(5164499756173817179, 5752402124248519062, 14766257591479877988, 18126611003672245900),
+UInt256(10328999512347634358, 11504804248497038125, 11085771109250204361, 17806477933634940183),
+UInt256(2065799902469526871, 13369007293925138594, 13285200666075771841, 18318690845694629330),
+UInt256(4131599804939053743, 8291270514140725573, 8123657258441992067, 18190637617679707043),
+UInt256(8263199609878107486, 16582541028281451146, 16247314516883984135, 17934531161649862470),
+UInt256(1652639921975621497, 7005857020398200552, 10628160532860617473, 10965603861813793141),
+UInt256(3305279843951242994, 14011714040796401105, 2809576992011683331, 3484463649918034665),
+UInt256(6610559687902485989, 9576684007883250594, 5619153984023366662, 6968927299836069330),
+UInt256(1322111937580497197, 16672732060544291411, 12191877241030404302, 1393785459967213866),
+UInt256(2644223875160994395, 14898720047379031207, 5937010408351256988, 2787570919934427732),
+UInt256(5288447750321988791, 11350696021048510798, 11874020816702513976, 5575141839868855464),
+UInt256(10576895500643977583, 4254647968387469981, 5301297559695476336, 11150283679737710927),
+UInt256(2115379100128795516, 11918976037903224965, 15817654770906736560, 2230056735947542186),
+UInt256(4230758200257591033, 5391208002096898315, 13188565468103921504, 4460113471895084371),
+UInt256(8461516400515182066, 10782416004193796631, 7930386862498291392, 8920226943790168742),
+UInt256(1692303280103036413, 5845832015580669649, 8964775001983478924, 16541440647725675042),
+UInt256(3384606560206072826, 11691664031161339298, 17929550003966957849, 14636137221741798467),
+UInt256(6769213120412145653, 4936583988613126981, 17412355934224364083, 10825530369774045317),
+UInt256(1353842624082429130, 12055363241948356365, 18239866445812514109, 9543803703438629710),
+UInt256(2707685248164858261, 5663982410187161115, 18032988817915476603, 640863333167707804),
+UInt256(5415370496329716522, 11327964820374322231, 17619233562121401590, 1281726666335415607),
+UInt256(10830740992659433045, 4209185567039092847, 16791723050533251564, 2563453332670831214),
+UInt256(2166148198531886609, 841837113407818569, 10737042239590470959, 4202039481276076566),
+UInt256(4332296397063773218, 1683674226815637139, 3027340405471390302, 8404078962552153132),
+UInt256(8664592794127546436, 3367348453631274278, 6054680810942780604, 16808157925104306264),
+UInt256(1732918558825509287, 4362818505468165178, 15968331421156197413, 14429678029246592223),
+UInt256(3465837117651018574, 8725637010936330357, 13489918768602843211, 10412611984783632829),
+UInt256(6931674235302037148, 17451274021872660715, 8533093463496134807, 2378479895857714042),
+UInt256(1386334847060407429, 14558301248600263112, 12774665136924957931, 475695979171542809),
+UInt256(2772669694120814859, 10669858423490974609, 7102586200140364246, 951391958343085617),
+UInt256(5545339388241629719, 2892972773272397602, 14205172400280728492, 1902783916686171233),
+UInt256(11090678776483259438, 5785945546544795205, 9963600726851905368, 3805567833372342466),
+]
+
+private let bid_multipliers1_bid64_35: [UInt256] = [
+UInt256(2218135755296651887, 12225235553534690010, 13060766589596112043, 4450462381416378817),
+UInt256(4436271510593303775, 6003727033359828405, 7674789105482672470, 8900924762832757633),
+UInt256(8872543021186607550, 12007454066719656810, 15349578210965344940, 17801849525665515266),
+UInt256(1774508604237321510, 2401490813343931362, 3069915642193068988, 3560369905133103054),
+UInt256(3549017208474643020, 4802981626687862724, 6139831284386137976, 7120739810266206107),
+UInt256(7098034416949286040, 9605963253375725448, 12279662568772275952, 14241479620532412213),
+UInt256(1419606883389857208, 1921192650675145089, 13523978957980186160, 2848295924106482443),
+UInt256(2839213766779714416, 3842385301350290179, 8601213842250820704, 5696591848212964885),
+UInt256(5678427533559428832, 7684770602700580358, 17202427684501641408, 11393183696425929770),
+UInt256(11356855067118857664, 15369541205401160717, 15958111295293731201, 4339623319142307924),
+UInt256(2271371013423771532, 17831303500047873436, 6880971073800656563, 8246622293312282232),
+UInt256(4542742026847543065, 17215862926386195256, 13761942147601313126, 16493244586624564463),
+UInt256(9085484053695086131, 15984981779062838897, 9077140221493074637, 14539745099539577309),
+UInt256(1817096810739017226, 6886345170554478102, 12883474488524345897, 2907949019907915462),
+UInt256(3634193621478034452, 13772690341108956205, 7320204903339140178, 5815898039815830924),
+UInt256(7268387242956068905, 9098636608508360794, 14640409806678280356, 11631796079631661847),
+UInt256(1453677448591213781, 1819727321701672158, 17685477220303297364, 2326359215926332370),
+UInt256(2907354897182427562, 3639454643403344317, 16924210366897043112, 4652718431852664739),
+UInt256(5814709794364855124, 7278909286806688635, 15401676660084534608, 9305436863705329478),
+UInt256(11629419588729710248, 14557818573613377271, 12356609246459517601, 164129653701107339),
+UInt256(2325883917745942049, 13979610158948406423, 17228717108259544813, 32825930740221468),
+UInt256(4651767835491884099, 9512476244187261231, 16010690142809538010, 65651861480442936),
+UInt256(9303535670983768199, 578208414664970847, 13574636211909524404, 131303722960885872),
+UInt256(1860707134196753639, 14873036941900635462, 6404276057123815204, 26260744592177175),
+UInt256(3721414268393507279, 11299329810091719308, 12808552114247630408, 52521489184354349),
+UInt256(7442828536787014559, 4151915546473887001, 7170360154785709200, 105042978368708697),
+UInt256(1488565707357402911, 15587778368262418693, 1434072030957141840, 21008595673741740),
+UInt256(2977131414714805823, 12728812662815285770, 2868144061914283680, 42017191347483479),
+UInt256(5954262829429611647, 7010881251921019924, 5736288123828567360, 84034382694966958),
+UInt256(11908525658859223294, 14021762503842039848, 11472576247657134720, 168068765389933915),
+UInt256(2381705131771844658, 17561747759736049262, 9673212879015247590, 7412311382561807430),
+UInt256(4763410263543689317, 16676751445762546909, 899681684320943564, 14824622765123614859),
+UInt256(9526820527087378635, 14906758817815542202, 1799363368641887129, 11202501456537678102),
+UInt256(1905364105417475727, 2981351763563108440, 7738570303212198072, 5929849106049445944),
+UInt256(3810728210834951454, 5962703527126216880, 15477140606424396144, 11859698212098891888),
+UInt256(7621456421669902908, 11925407054252433761, 12507537139139240673, 5272652350488232159),
+UInt256(1524291284333980581, 13453127855076217721, 17258902686795489427, 8433228099581467079),
+UInt256(3048582568667961163, 8459511636442883827, 16071061299881427238, 16866456199162934157),
+UInt256(6097165137335922326, 16919023272885767655, 13695378526053302861, 15286168324616316697),
+UInt256(12194330274671844653, 15391302472061983695, 8944012978397054107, 12125592575523081777),
+UInt256(2438866054934368930, 14146306938638127708, 12856849039905141791, 2425118515104616356),
+UInt256(4877732109868737861, 9845869803566703801, 7266954006100731966, 4850237030209232711),
+UInt256(9755464219737475723, 1244995533423855986, 14533908012201463932, 9700474060418465421),
+UInt256(1951092843947495144, 11317045550910502166, 17664176861407934079, 5629443626825603408),
+UInt256(3902185687894990289, 4187347028111452717, 16881609649106316542, 11258887253651206815),
+UInt256(7804371375789980578, 8374694056222905435, 15316475224503081469, 4071030433592862014),
+UInt256(1560874275157996115, 12742985255470312056, 14131341489126347263, 8192903716202393050),
+UInt256(3121748550315992231, 7039226437231072497, 9815938904543142910, 16385807432404786099),
+UInt256(6243497100631984462, 14078452874462144995, 1185133735376734205, 14324870791100020581),
+UInt256(12486994201263968925, 9710161675214738374, 2370267470753468411, 10202997508490489545),
+]
+
+private let bid_multipliers1_bid64_36: [UInt256] = [
+UInt256(2497398840252793785, 1942032335042947674, 15231448753118334975, 2040599501698097909),
+UInt256(4994797680505587570, 3884064670085895349, 12016153432527118334, 4081199003396195818),
+UInt256(9989595361011175140, 7768129340171790699, 5585562791344685052, 8162398006792391636),
+UInt256(1997919072202235028, 1553625868034358139, 15874507817236578303, 5321828416100388651),
+UInt256(3995838144404470056, 3107251736068716279, 13302271560763604990, 10643656832200777301),
+UInt256(7991676288808940112, 6214503472137432559, 8157799047817658365, 2840569590692002986),
+UInt256(1598335257761788022, 8621598323911307158, 5320908624305441996, 4257462732880310921),
+UInt256(3196670515523576044, 17243196647822614316, 10641817248610883992, 8514925465760621841),
+UInt256(6393341031047152089, 16039649221935677017, 2836890423512216368, 17029850931521243682),
+UInt256(12786682062094304179, 13632554370161802418, 5673780847024432737, 15612957789332935747),
+UInt256(2557336412418860835, 17483906133000001776, 8513453798888707193, 17879986816834228443),
+UInt256(5114672824837721671, 16521068192290451936, 17026907597777414387, 17313229559958905269),
+UInt256(10229345649675443343, 14595392310871352257, 15607071121845277159, 16179715046208258921),
+UInt256(2045869129935088668, 13987124906400001421, 3121414224369055431, 17993338268209293077),
+UInt256(4091738259870177337, 9527505739090451226, 6242828448738110863, 17539932462709034538),
+UInt256(8183476519740354675, 608267404471350836, 12485656897476221727, 16633120851708517460),
+UInt256(1636695303948070935, 121653480894270167, 6186480194237154668, 14394670614567434462),
+UInt256(3273390607896141870, 243306961788540334, 12372960388474309337, 10342597155425317307),
+UInt256(6546781215792283740, 486613923577080669, 6299176703239067059, 2238450237141082998),
+UInt256(1309356243158456748, 97322784715416133, 16017230599615454704, 11515736491653947570),
+UInt256(2618712486316913496, 194645569430832267, 13587717125521357793, 4584728909598343523),
+UInt256(5237424972633826992, 389291138861664535, 8728690177333163970, 9169457819196687045),
+UInt256(10474849945267653984, 778582277723329070, 17457380354666327940, 18338915638393374090),
+UInt256(2094969989053530796, 14913111714512307106, 18248871329900906880, 18425178386646316111),
+UInt256(4189939978107061593, 11379479355315062597, 18050998586092262145, 18403612699583080606),
+UInt256(8379879956214123187, 4312214636920573579, 17655253098474972675, 18360481325456609595),
+UInt256(1675975991242824637, 8241140556867935362, 7220399434436904858, 7361445079833232243),
+UInt256(3351951982485649274, 16482281113735870724, 14440798868873809716, 14722890159666464485),
+UInt256(6703903964971298549, 14517818153762189833, 10434853664038067817, 10999036245623377353),
+UInt256(1340780792994259709, 17660958889720079259, 9465668362291434209, 16957202508092316764),
+UInt256(2681561585988519419, 16875173705730606903, 484592650873316803, 15467660942475081911),
+UInt256(5363123171977038839, 15303603337751662190, 969185301746633607, 12488577811240612206),
+UInt256(10726246343954077679, 12160462601793772764, 1938370603493267215, 6530411548771672795),
+UInt256(2145249268790815535, 17189487779326395845, 11455720564924384412, 12374128753980065529),
+UInt256(4290498537581631071, 15932231484943240075, 4464697056139217209, 6301513434250579442),
+UInt256(8580997075163262143, 13417718896176928534, 8929394112278434418, 12603026868501158883),
+UInt256(1716199415032652428, 13751590223461116676, 9164576451939507530, 2520605373700231777),
+UInt256(3432398830065304857, 9056436373212681736, 18329152903879015060, 5041210747400463553),
+UInt256(6864797660130609714, 18112872746425363473, 18211561734048478504, 10082421494800927106),
+UInt256(1372959532026121942, 18379969808252713987, 11021009976293516347, 5705833113702095745),
+UInt256(2745919064052243885, 18313195542795876359, 3595275878877481078, 11411666227404191489),
+UInt256(5491838128104487771, 18179647011882201102, 7190551757754962157, 4376588381098831362),
+UInt256(10983676256208975543, 17912549950054850588, 14381103515509924314, 8753176762197662723),
+UInt256(2196735251241795108, 14650556434236701087, 6565569517843895186, 1750635352439532545),
+UInt256(4393470502483590217, 10854368794763850558, 13131139035687790372, 3501270704879065090),
+UInt256(8786941004967180435, 3261993515818149501, 7815533997666029128, 7002541409758130179),
+UInt256(1757388200993436087, 652398703163629900, 5252455614275116148, 16157903540919267329),
+UInt256(3514776401986872174, 1304797406327259800, 10504911228550232297, 13869063008128983041),
+UInt256(7029552803973744348, 2609594812654519601, 2563078383390912979, 9291381942548414466),
+UInt256(1405910560794748869, 11589965406756634889, 15270010935645823888, 12926322832735413863),
+]
+
+private let bid_multipliers1_bid64_37: [UInt256] = [
+UInt256(2811821121589497739, 4733186739803718163, 12093277797582096161, 7405901591761276110),
+UInt256(5623642243178995478, 9466373479607436327, 5739811521454640706, 14811803183522552219),
+UInt256(11247284486357990957, 486002885505321038, 11479623042909281413, 11176862293335552822),
+UInt256(2249456897271598191, 7475898206584884854, 2295924608581856282, 13303418902892841534),
+UInt256(4498913794543196382, 14951796413169769708, 4591849217163712565, 8160093732076131452),
+UInt256(8997827589086392765, 11456848752629987800, 9183698434327425130, 16320187464152262904),
+UInt256(1799565517817278553, 2291369750525997560, 1836739686865485026, 3264037492830452581),
+UInt256(3599131035634557106, 4582739501051995120, 3673479373730970052, 6528074985660905162),
+UInt256(7198262071269114212, 9165479002103990240, 7346958747461940104, 13056149971321810324),
+UInt256(1439652414253822842, 9211793429904618694, 8848089378976208667, 6300578809006272388),
+UInt256(2879304828507645684, 18423586859809237388, 17696178757952417334, 12601157618012544776),
+UInt256(5758609657015291369, 18400429645908923161, 16945613442195283053, 6755571162315537936),
+UInt256(11517219314030582739, 18354115218108294707, 15444482810681014490, 13511142324631075871),
+UInt256(2303443862806116547, 18428218302589300234, 6778245376878113221, 6391577279668125498),
+UInt256(4606887725612233095, 18409692531469048852, 13556490753756226442, 12783154559336250995),
+UInt256(9213775451224466191, 18372640989228546089, 8666237433802901269, 7119565044962950374),
+UInt256(1842755090244893238, 7363877012587619541, 1733247486760580253, 16181308267960231368),
+UInt256(3685510180489786476, 14727754025175239082, 3466494973521160507, 13915872462210911119),
+UInt256(7371020360979572953, 11008763976640926548, 6932989947042321015, 9385000850712270622),
+UInt256(1474204072195914590, 13269799239553916279, 5075946804150374526, 5566348984884364448),
+UInt256(2948408144391829181, 8092854405398280942, 10151893608300749052, 11132697969768728896),
+UInt256(5896816288783658362, 16185708810796561885, 1857043142891946489, 3818651865827906175),
+UInt256(11793632577567316725, 13924673547883572154, 3714086285783892978, 7637303731655812349),
+UInt256(2358726515513463345, 2784934709576714430, 15500212516124419888, 8906158375814983117),
+UInt256(4717453031026926690, 5569869419153428861, 12553680958539288160, 17812316751629966233),
+UInt256(9434906062053853380, 11139738838306857723, 6660617843369024705, 17177889429550380849),
+UInt256(1886981212410770676, 2227947767661371544, 12400170012899535910, 14503624330135807140),
+UInt256(3773962424821541352, 4455895535322743089, 6353595952089520205, 10560504586562062663),
+UInt256(7547924849643082704, 8911791070645486178, 12707191904179040411, 2674265099414573710),
+UInt256(1509584969928616540, 16539753473096738528, 9920136010319628728, 11602899464108645712),
+UInt256(3019169939857233081, 14632762872483925441, 1393527946929705841, 4759054854507739807),
+UInt256(6038339879714466163, 10818781671258299266, 2787055893859411682, 9518109709015479614),
+UInt256(12076679759428932327, 3190819268807046916, 5574111787718823365, 589475344321407612),
+UInt256(2415335951885786465, 8016861483245230029, 12182868801769495642, 11185941513090012492),
+UInt256(4830671903771572930, 16033722966490460059, 5918993529829439669, 3925138952470473368),
+UInt256(9661343807543145861, 13620701859271368502, 11837987059658879338, 7850277904940946736),
+UInt256(1932268761508629172, 6413489186596184023, 13435643856157506837, 5259404395730099671),
+UInt256(3864537523017258344, 12826978373192368047, 8424543638605462058, 10518808791460199341),
+UInt256(7729075046034516689, 7207212672675184478, 16849087277210924117, 2590873509210847066),
+UInt256(1545815009206903337, 16198837793502678188, 10748515084926005469, 15275569960809810706),
+UInt256(3091630018413806675, 13950931513295804761, 3050286096142459323, 12104395847910069796),
+UInt256(6183260036827613351, 9455118952882057906, 6100572192284918647, 5762047622110587976),
+UInt256(12366520073655226703, 463493832054564196, 12201144384569837294, 11524095244221175951),
+UInt256(2473304014731045340, 11160745210636643808, 17197624135881608751, 13372865493069966160),
+UInt256(4946608029462090681, 3874746347563736001, 15948504198053665887, 8298986912430380704),
+UInt256(9893216058924181362, 7749492695127472003, 13450264322397780158, 16597973824860761408),
+UInt256(1978643211784836272, 8928596168509315047, 2690052864479556031, 14387641209197883252),
+UInt256(3957286423569672544, 17857192337018630094, 5380105728959112063, 10328538344686214887),
+UInt256(7914572847139345089, 17267640600327708572, 10760211457918224127, 2210332615662878157),
+UInt256(1582914569427869017, 18210923379033183007, 5841391106325555148, 11510112967358306601),
+]
+
+private let bid_multipliers1_bid64_38: [UInt256] = [
+UInt256(3165829138855738035, 17975102684356814398, 11682782212651110297, 4573481861007061586),
+UInt256(6331658277711476071, 17503461295004077181, 4918820351592668978, 9146963722014123172),
+UInt256(12663316555422952143, 16560178516298602746, 9837640703185337956, 18293927444028246343),
+UInt256(2532663311084590428, 14380082147485451518, 16724923399604708884, 3658785488805649269),
+UInt256(5065326622169180857, 10313420221261351421, 15003102725499866152, 7317570977611298537),
+UInt256(10130653244338361715, 2180096368813151227, 11559461377290180688, 14635141955222597074),
+UInt256(2026130648867672343, 436019273762630245, 9690589904941856784, 2927028391044519415),
+UInt256(4052261297735344686, 872038547525260491, 934435736174161952, 5854056782089038830),
+UInt256(8104522595470689372, 1744077095050520982, 1868871472348323904, 11708113564178077660),
+UInt256(1620904519094137874, 7727513048493924842, 15131169553437306073, 13409669157061346502),
+UInt256(3241809038188275748, 15455026096987849685, 11815595033165060531, 8372594240413141387),
+UInt256(6483618076376551497, 12463308120266147755, 5184445992620569446, 16745188480826282774),
+UInt256(1296723615275310299, 9871359253537050197, 8415586828007934535, 14417084140390987525),
+UInt256(2593447230550620599, 1295974433364548778, 16831173656015869071, 10387424207072423433),
+UInt256(5186894461101241198, 2591948866729097557, 15215603238322186527, 2328104340435295250),
+UInt256(10373788922202482396, 5183897733458195115, 11984462402934821438, 4656208680870590499),
+UInt256(2074757784440496479, 4726128361433549346, 6086241295328874610, 15688636995141759393),
+UInt256(4149515568880992958, 9452256722867098692, 12172482590657749221, 12930529916573967170),
+UInt256(8299031137761985917, 457769372024645769, 5898221107605946827, 7414315759438382723),
+UInt256(1659806227552397183, 7470251503888749800, 4868993036263099688, 12550909596113407515),
+UInt256(3319612455104794366, 14940503007777499600, 9737986072526199377, 6655075118517263413),
+UInt256(6639224910209588733, 11434261941845447585, 1029228071342847138, 13310150237034526825),
+UInt256(1327844982041917746, 13354898832594820486, 11273892058494300397, 6351378862148815689),
+UInt256(2655689964083835493, 8263053591480089357, 4101040043279049178, 12702757724297631377),
+UInt256(5311379928167670986, 16526107182960178714, 8202080086558098357, 6958771374885711137),
+UInt256(10622759856335341973, 14605470292210805812, 16404160173116196714, 13917542749771422273),
+UInt256(2124551971267068394, 13989140502667892132, 3280832034623239342, 17540903808921925748),
+UInt256(4249103942534136789, 9531536931626232648, 6561664069246478685, 16635063544134299879),
+UInt256(8498207885068273579, 616329789542913680, 13123328138492957371, 14823383014559048142),
+UInt256(1699641577013654715, 14880661216876224028, 17382060886666232767, 2964676602911809629),
+UInt256(3399283154027309431, 11314578360042896441, 16317377699622913918, 5929353205823619257),
+UInt256(6798566308054618863, 4182412646376241267, 14188011325536276220, 11858706411647238513),
+UInt256(1359713261610923772, 11904528973500979223, 2837602265107255244, 2371741282329447703),
+UInt256(2719426523221847545, 5362313873292406830, 5675204530214510488, 4743482564658895406),
+UInt256(5438853046443695090, 10724627746584813660, 11350409060429020976, 9486965129317790811),
+UInt256(10877706092887390181, 3002511419460075705, 4254074047148490337, 527186184926030005),
+UInt256(2175541218577478036, 4289851098633925464, 4540163624171608390, 11173483681210936971),
+UInt256(4351082437154956072, 8579702197267850928, 9080327248343216781, 3900223288712322326),
+UInt256(8702164874309912144, 17159404394535701856, 18160654496686433562, 7800446577424644651),
+UInt256(1740432974861982428, 18189276137874781664, 3632130899337286712, 8938786944968749577),
+UInt256(3480865949723964857, 17931808202040011712, 7264261798674573424, 17877573889937499153),
+UInt256(6961731899447929715, 17416872330370471808, 14528523597349146849, 17308403706165446690),
+UInt256(1392346379889585943, 3483374466074094361, 13973751163695560339, 10840378370716909985),
+UInt256(2784692759779171886, 6966748932148188723, 9500758253681569063, 3234012667724268353),
+UInt256(5569385519558343772, 13933497864296377447, 554772433653586510, 6468025335448536706),
+UInt256(11138771039116687545, 9420251654883203278, 1109544867307173020, 12936050670897073411),
+UInt256(2227754207823337509, 1884050330976640655, 11289955417687165573, 13655256578405145652),
+UInt256(4455508415646675018, 3768100661953281311, 4133166761664779531, 8863769083100739688),
+UInt256(8911016831293350036, 7536201323906562622, 8266333523329559062, 17727538166201479375),
+UInt256(1782203366258670007, 5196589079523222847, 12721313148891642782, 3545507633240295875),
+]
+
+private let bid_multipliers1_bid64_39: [UInt256] = [
+UInt256(3564406732517340014, 10393178159046445695, 6995882224073733948, 7091015266480591750),
+UInt256(7128813465034680029, 2339612244383339774, 13991764448147467896, 14182030532961183500),
+UInt256(1425762693006936005, 15225317707844309247, 13866399333855224548, 17593801365559877993),
+UInt256(2851525386013872011, 12003891341979066879, 9286054594000897481, 16740858657410204370),
+UInt256(5703050772027744023, 5561038610248582143, 125365114292243347, 15034973241110857124),
+UInt256(11406101544055488046, 11122077220497164286, 250730228584486695, 11623202408512162631),
+UInt256(2281220308811097609, 5913764258841343180, 7428843675200717985, 9703338111186253173),
+UInt256(4562440617622195218, 11827528517682686360, 14857687350401435971, 959932148662954729),
+UInt256(9124881235244390437, 5208312961655821105, 11268630627093320326, 1919864297325909458),
+UInt256(1824976247048878087, 8420360221814984867, 9632423754902484711, 11452019303690912862),
+UInt256(3649952494097756174, 16840720443629969735, 818103436095417807, 4457294533672274107),
+UInt256(7299904988195512349, 15234696813550387854, 1636206872190835614, 8914589067344548213),
+UInt256(1459980997639102469, 17804334621677718863, 11395287818663898092, 9161615442952730289),
+UInt256(2919961995278204939, 17161925169645886111, 4343831563618244568, 18323230885905460578),
+UInt256(5839923990556409879, 15877106265582220606, 8687663127236489137, 18199717698101369540),
+UInt256(11679847981112819759, 13307468457454889596, 17375326254472978275, 17952691322493187464),
+UInt256(2335969596222563951, 17418888950458619212, 3475065250894595655, 3590538264498637493),
+UInt256(4671939192445127903, 16391033827207686808, 6950130501789191310, 7181076528997274986),
+UInt256(9343878384890255807, 14335323580705822000, 13900261003578382620, 14362153057994549971),
+UInt256(1868775676978051161, 10245762345624985046, 10158749830199497170, 10251128241082730641),
+UInt256(3737551353956102323, 2044780617540418477, 1870755586689442725, 2055512408455909666),
+UInt256(7475102707912204646, 4089561235080836954, 3741511173378885450, 4111024816911819331),
+UInt256(1495020541582440929, 4507261061758077714, 748302234675777090, 822204963382363867),
+UInt256(2990041083164881858, 9014522123516155428, 1496604469351554180, 1644409926764727733),
+UInt256(5980082166329763716, 18029044247032310856, 2993208938703108360, 3288819853529455465),
+UInt256(11960164332659527433, 17611344420355070096, 5986417877406216720, 6577639707058910929),
+UInt256(2392032866531905486, 14590315328296744988, 15954678834448884636, 16072923200379423479),
+UInt256(4784065733063810973, 10733886582883938361, 13462613595188217657, 13699102327049295341),
+UInt256(9568131466127621947, 3021029092058325107, 8478483116666883699, 8951460580389039066),
+UInt256(1913626293225524389, 7982903447895485667, 16453091882301018032, 12858338560303538783),
+UInt256(3827252586451048778, 15965806895790971335, 14459439690892484449, 7269933046897525950),
+UInt256(7654505172902097557, 13484869717872391055, 10472135308075417282, 14539866093795051900),
+UInt256(1530901034580419511, 10075671573058298857, 9473124691098904102, 17665368477726651673),
+UInt256(3061802069160839023, 1704599072407046099, 499505308488256589, 16883992881743751730),
+UInt256(6123604138321678046, 3409198144814092198, 999010616976513179, 15321241689777951843),
+UInt256(12247208276643356092, 6818396289628184396, 1998021233953026359, 12195739305846352069),
+UInt256(2449441655328671218, 8742376887409457525, 11467650691016336241, 9817845490653091061),
+UInt256(4898883310657342436, 17484753774818915051, 4488557308323120867, 1188946907596630505),
+UInt256(9797766621314684873, 16522763475928278486, 8977114616646241734, 2377893815193261009),
+UInt256(1959553324262936974, 14372599139411386666, 16552818182296889639, 11543625207264383172),
+UInt256(3919106648525873949, 10298454205113221717, 14658892290884227663, 4640506340819214727),
+UInt256(7838213297051747899, 2150164336516891819, 10871040508058903710, 9281012681638429454),
+UInt256(1567642659410349579, 15187428126271019656, 13242254545837511711, 12924248980553416861),
+UInt256(3135285318820699159, 11928112178832487697, 8037765017965471807, 7401753887397282105),
+UInt256(6270570637641398319, 5409480283955423778, 16075530035930943614, 14803507774794564210),
+UInt256(12541141275282796638, 10818960567910847557, 13704315998152335613, 11160271475879576803),
+UInt256(2508228255056559327, 13231838557807900481, 2740863199630467122, 13300100739401646331),
+UInt256(5016456510113118655, 8016933041906249346, 5481726399260934245, 8153457405093741045),
+UInt256(10032913020226237310, 16033866083812498692, 10963452798521868490, 16306914810187482089),
+UInt256(2006582604045247462, 3206773216762499738, 9571388189188194344, 10640080591521317065),
+]
+
+private let bid_multipliers1_bid64_40: [UInt256] = [
+UInt256(4013165208090494924, 6413546433524999477, 696032304666837073, 2833417109333082513),
+UInt256(8026330416180989848, 12827092867049998954, 1392064609333674146, 5666834218666165025),
+UInt256(1605266083236197969, 13633465017635730760, 7657110551350555475, 12201413287958963975),
+UInt256(3210532166472395939, 8820185961561909904, 15314221102701110951, 5956082502208376333),
+UInt256(6421064332944791878, 17640371923123819809, 12181698131692670286, 11912165004416752666),
+UInt256(1284212866588958375, 14596120828850494931, 9815037255822354703, 13450479445109081503),
+UInt256(2568425733177916751, 10745497583991438247, 1183330437935157791, 8454214816508611390),
+UInt256(5136851466355833503, 3044251094273324878, 2366660875870315582, 16908429633017222779),
+UInt256(10273702932711667006, 6088502188546649756, 4733321751740631165, 15370115192324893942),
+UInt256(2054740586542333401, 4907049252451240274, 8325361979831946879, 10452720667948799435),
+UInt256(4109481173084666802, 9814098504902480548, 16650723959663893759, 2458697262188047254),
+UInt256(8218962346169333605, 1181452936095409481, 14854703845618235902, 4917394524376094508),
+UInt256(1643792469233866721, 236290587219081896, 6660289583865557503, 12051525349100949872),
+UInt256(3287584938467733442, 472581174438163792, 13320579167731115007, 5656306624492348127),
+UInt256(6575169876935466884, 945162348876327585, 8194414261752678398, 11312613248984696253),
+UInt256(1315033975387093376, 14946427728742906809, 16396278111318176972, 9641220279280759897),
+UInt256(2630067950774186753, 11446111383776262003, 14345812148926802329, 835696484851968178),
+UInt256(5260135901548373507, 4445478693842972391, 10244880224144053042, 1671392969703936356),
+UInt256(10520271803096747014, 8890957387685944783, 2043016374578554468, 3342785939407872711),
+UInt256(2104054360619349402, 16535586736504830249, 7787300904399531540, 668557187881574543),
+UInt256(4208108721238698805, 14624429399300108882, 15574601808799063080, 1337114375763149085),
+UInt256(8416217442477397611, 10802114724890666149, 12702459543888574544, 2674228751526298169),
+UInt256(1683243488495479522, 5849771759720043553, 2540491908777714908, 15292241009272900927),
+UInt256(3366486976990959044, 11699543519440087106, 5080983817555429817, 12137737944836250237),
+UInt256(6732973953981918089, 4952342965170622596, 10161967635110859635, 5828731815962948858),
+UInt256(1346594790796383617, 15747863852001765812, 2032393527022171927, 1165746363192589772),
+UInt256(2693189581592767235, 13048983630293980008, 4064787054044343854, 2331492726385179544),
+UInt256(5386379163185534471, 7651223186878408400, 8129574108088687708, 4662985452770359087),
+UInt256(10772758326371068942, 15302446373756816800, 16259148216177375416, 9325970905540718173),
+UInt256(2154551665274213788, 10439186904235184006, 10630527272719295729, 12933240625333874605),
+UInt256(4309103330548427577, 2431629734760816397, 2814310471729039843, 7419737176958197593),
+UInt256(8618206661096855154, 4863259469521632794, 5628620943458079686, 14839474353916395185),
+UInt256(1723641332219371030, 15730047152871967851, 12193770632917346906, 17725290129750920330),
+UInt256(3447282664438742061, 13013350232034384087, 5940797192125142197, 17003836185792289044),
+UInt256(6894565328877484123, 7579956390359216558, 11881594384250284395, 15560928297875026471),
+UInt256(1378913065775496824, 12584037722297574281, 6065667691591967202, 6801534474316915618),
+UInt256(2757826131550993649, 6721331370885596946, 12131335383183934404, 13603068948633831235),
+UInt256(5515652263101987298, 13442662741771193893, 5815926692658317193, 8759393823558110854),
+UInt256(11031304526203974597, 8438581409832836170, 11631853385316634386, 17518787647116221708),
+UInt256(2206260905240794919, 9066413911450387880, 9705068306547147523, 14571803973648975312),
+UInt256(4412521810481589838, 18132827822900775761, 963392539384743431, 10696863873588399007),
+UInt256(8825043620963179677, 17818911572091999906, 1926785078769486863, 2946983673467246397),
+UInt256(1765008724192635935, 10942479943902220627, 11453403459979628342, 4278745549435359603),
+UInt256(3530017448385271871, 3438215814094889639, 4460062846249705068, 8557491098870719205),
+UInt256(7060034896770543742, 6876431628189779278, 8920125692499410136, 17114982197741438410),
+UInt256(1412006979354108748, 8753983955121776502, 1784025138499882027, 7112345254290198006),
+UInt256(2824013958708217496, 17507967910243553004, 3568050276999764054, 14224690508580396011),
+UInt256(5648027917416434993, 16569191746777554392, 7136100553999528109, 10002636943451240405),
+UInt256(11296055834832869987, 14691639419845557168, 14272201107999056219, 1558529813192929194),
+UInt256(2259211166966573997, 10317025513452932080, 2854440221599811243, 15069101221606227132),
+]
+
+private let bid_multipliers1_bid64_41: [UInt256] = [
+UInt256(4518422333933147995, 2187306953196312544, 5708880443199622487, 11691458369502902647),
+UInt256(9036844667866295990, 4374613906392625088, 11417760886399244975, 4936172665296253678),
+UInt256(1807368933573259198, 874922781278525017, 13351598621505579964, 12055280977284981706),
+UInt256(3614737867146518396, 1749845562557050035, 8256453169301608313, 5663817880860411795),
+UInt256(7229475734293036792, 3499691125114100070, 16512906338603216626, 11327635761720823589),
+UInt256(1445895146858607358, 8078635854506640660, 10681278897204463971, 13333573596569895688),
+UInt256(2891790293717214716, 16157271709013281321, 2915813720699376327, 8220403119430239759),
+UInt256(5783580587434429433, 13867799344317011026, 5831627441398752654, 16440806238860479518),
+UInt256(11567161174868858867, 9288854614924470436, 11663254882797505309, 14434868404011407419),
+UInt256(2313432234973771773, 9236468552468714733, 13400697420785232031, 10265671310286102131),
+UInt256(4626864469947543547, 26193031227877851, 8354650767860912447, 2084598546862652645),
+UInt256(9253728939895087094, 52386062455755702, 16709301535721824894, 4169197093725305289),
+UInt256(1850745787979017418, 14767872471458792433, 7031209121886275302, 833839418745061058),
+UInt256(3701491575958034837, 11089000869208033250, 14062418243772550604, 1667678837490122116),
+UInt256(7402983151916069675, 3731257664706514885, 9678092413835549592, 3335357674980244231),
+UInt256(1480596630383213935, 746251532941302977, 1935618482767109918, 8045769164479869493),
+UInt256(2961193260766427870, 1492503065882605954, 3871236965534219836, 16091538328959738986),
+UInt256(5922386521532855740, 2985006131765211908, 7742473931068439673, 13736332584209926355),
+UInt256(11844773043065711480, 5970012263530423816, 15484947862136879347, 9025921094710301093),
+UInt256(2368954608613142296, 1194002452706084763, 6786338387169286192, 12873230663167791189),
+UInt256(4737909217226284592, 2388004905412169526, 13572676774338572385, 7299717252626030761),
+UInt256(9475818434452569184, 4776009810824339053, 8698609474967593154, 14599434505252061521),
+UInt256(1895163686890513836, 15712597221132509103, 9118419524477339277, 6609235715792322628),
+UInt256(3790327373781027673, 12978450368555466590, 18236839048954678554, 13218471431584645255),
+UInt256(7580654747562055347, 7510156663401381565, 18026934024199805493, 7990198789459738893),
+UInt256(1516130949512411069, 8880728962164096959, 10984084434323781745, 1598039757891947779),
+UInt256(3032261899024822138, 17761457924328193919, 3521424794938011874, 3196079515783895558),
+UInt256(6064523798049644277, 17076171774946836222, 7042849589876023748, 6392159031567791115),
+UInt256(12129047596099288555, 15705599476184120828, 14085699179752047496, 12784318063135582229),
+UInt256(2425809519219857711, 3141119895236824165, 13885186280176140468, 17314258871594757739),
+UInt256(4851619038439715422, 6282239790473648331, 9323628486642729321, 16181773669479963862),
+UInt256(9703238076879430844, 12564479580947296663, 200512899575907027, 13916803265250376107),
+UInt256(1940647615375886168, 17270291175157100625, 7418800209399002051, 17540755912017716515),
+UInt256(3881295230751772337, 16093838276604649634, 14837600418798004103, 16634767750325881413),
+UInt256(7762590461503544675, 13740932479499747653, 11228456763886456591, 14822791426942211209),
+UInt256(1552518092300708935, 2748186495899949530, 13313737797003022287, 17721953544356083535),
+UInt256(3105036184601417870, 5496372991799899061, 8180731520296492959, 16997163015002615453),
+UInt256(6210072369202835740, 10992745983599798122, 16361463040592985919, 15547581956295679290),
+UInt256(12420144738405671481, 3538747893490044629, 14276182007476420223, 12648419838881806964),
+UInt256(2484028947681134296, 4397098393439919249, 2855236401495284044, 13597730412002092363),
+UInt256(4968057895362268592, 8794196786879838498, 5710472802990568089, 8748716750294633109),
+UInt256(9936115790724537184, 17588393573759676996, 11420945605981136178, 17497433500589266218),
+UInt256(1987223158144907436, 18275073973719576692, 2284189121196227235, 14567533144343584214),
+UInt256(3974446316289814873, 18103403873729601768, 4568378242392454471, 10688322214977616811),
+UInt256(7948892632579629747, 17760063673749651920, 9136756484784908943, 2929900356245682005),
+UInt256(1589778526515925949, 10930710364233751030, 9206048926440802435, 585980071249136401),
+UInt256(3179557053031851899, 3414676654757950444, 18412097852881604870, 1171960142498272802),
+UInt256(6359114106063703798, 6829353309515900889, 18377451632053658124, 2343920284996545604),
+UInt256(12718228212127407596, 13658706619031801779, 18308159190397764632, 4687840569993091207),
+UInt256(2543645642425481519, 6421090138548270679, 3661631838079552926, 8316265743482438888),
+]
+
+private let bid_multipliers1_bid64_42: [UInt256] = [
+UInt256(5087291284850963038, 12842180277096541358, 7323263676159105852, 16632531486964877776),
+UInt256(10174582569701926077, 7237616480483531100, 14646527352318211705, 14818318900220203935),
+UInt256(2034916513940385215, 8826220925580526866, 10308003099947462987, 10342361409527861434),
+UInt256(4069833027880770430, 17652441851161053733, 2169262126185374359, 2237978745346171251),
+UInt256(8139666055761540861, 16858139628612555850, 4338524252370748718, 4475957490692342502),
+UInt256(1627933211152308172, 7060976740464421493, 4557053665216060066, 15652586757106109794),
+UInt256(3255866422304616344, 14121953480928842986, 9114107330432120133, 12858429440502667971),
+UInt256(6511732844609232689, 9797162888148134356, 18228214660864240267, 7270114807295784325),
+UInt256(1302346568921846537, 16716827836597268164, 3645642932172848053, 8832720590942977512),
+UInt256(2604693137843693075, 14986911599484984712, 7291285864345696106, 17665441181885955023),
+UInt256(5209386275687386151, 11527079125260417808, 14582571728691392213, 16884138290062358430),
+UInt256(10418772551374772303, 4607414176811284001, 10718399383673232811, 15321532506415165243),
+UInt256(2083754510274954460, 11989529279587987769, 16901075135702287855, 3064306501283033049),
+UInt256(4167509020549908921, 5532314485466423923, 15355406197695024094, 6128613002566066097),
+UInt256(8335018041099817842, 11064628970932847847, 12264068321680496572, 12257226005132132194),
+UInt256(1667003608219963568, 9591623423670390215, 17210208923303740607, 6140794015768336762),
+UInt256(3334007216439927137, 736502773631228815, 15973673772897929598, 12281588031536673524),
+UInt256(6668014432879854274, 1473005547262457631, 13500603472086307581, 6116431989363795432),
+UInt256(1333602886575970854, 15051996368420132819, 2700120694417261516, 4912635212614669410),
+UInt256(2667205773151941709, 11657248663130714022, 5400241388834523032, 9825270425229338820),
+UInt256(5334411546303883419, 4867753252551876428, 10800482777669046065, 1203796776749126023),
+UInt256(10668823092607766838, 9735506505103752857, 3154221481628540514, 2407593553498252045),
+UInt256(2133764618521553367, 13015147745246481541, 630844296325708102, 15238913969667291702),
+UInt256(4267529237043106735, 7583551416783411466, 1261688592651416205, 12031083865625031788),
+UInt256(8535058474086213470, 15167102833566822932, 2523377185302832411, 5615423657540511959),
+UInt256(1707011694817242694, 3033420566713364586, 7883373066544387128, 12191131175733833362),
+UInt256(3414023389634485388, 6066841133426729172, 15766746133088774257, 5935518277758115107),
+UInt256(6828046779268970776, 12133682266853458345, 13086748192467996898, 11871036555516230214),
+UInt256(1365609355853794155, 6116085268112601992, 6306698453235509702, 17131602570070887336),
+UInt256(2731218711707588310, 12232170536225203984, 12613396906471019405, 15816461066432223055),
+UInt256(5462437423415176621, 6017596998740856353, 6780049739232487195, 13186178059154894494),
+UInt256(10924874846830353242, 12035193997481712706, 13560099478464974391, 7925612044600237372),
+UInt256(2184974969366070648, 9785736428980163187, 13780066339918725847, 16342517667887688768),
+UInt256(4369949938732141297, 1124728784250774759, 9113388606127900079, 14238291262065825919),
+UInt256(8739899877464282594, 2249457568501549518, 18226777212255800159, 10029838450422100221),
+UInt256(1747979975492856518, 15207286772667951196, 11024053071934980678, 5695316504826330368),
+UInt256(3495959950985713037, 11967829471626350777, 3601362070160409740, 11390633009652660735),
+UInt256(6991919901971426075, 5488914869543149938, 7202724140320819481, 4334521945595769854),
+UInt256(1398383980394285215, 1097782973908629987, 12508591272289894865, 15624299648086795264),
+UInt256(2796767960788570430, 2195565947817259975, 6570438470870238115, 12801855222464038911),
+UInt256(5593535921577140860, 4391131895634519950, 13140876941740476231, 7156966371218526206),
+UInt256(11187071843154281720, 8782263791269039901, 7835009809771400846, 14313932742437052412),
+UInt256(2237414368630856344, 1756452758253807980, 5256350776696190492, 10241484177971231129),
+UInt256(4474828737261712688, 3512905516507615960, 10512701553392380985, 2036224282232910642),
+UInt256(8949657474523425376, 7025811033015231921, 2578659033075210354, 4072448564465821284),
+UInt256(1789931494904685075, 5094511021344956707, 7894429436098862717, 4503838527635074580),
+UInt256(3579862989809370150, 10189022042689913414, 15788858872197725434, 9007677055270149160),
+UInt256(7159725979618740301, 1931300011670275213, 13130973670685899252, 18015354110540298320),
+UInt256(1431945195923748060, 4075608817075965365, 17383589993104821143, 7292419636849969988),
+UInt256(2863890391847496120, 8151217634151930731, 16320435912500090670, 14584839273699939975),
+]
+
+private let bid_multipliers1_bid64_43: [UInt256] = [
+UInt256(5727780783694992240, 16302435268303861463, 14194127751290629725, 10722934473690328333),
+UInt256(11455561567389984481, 14158126462898171311, 9941511428871707835, 2999124873671105049),
+UInt256(2291112313477996896, 6520974107321544585, 9366999915258162213, 7978522604218041657),
+UInt256(4582224626955993792, 13041948214643089171, 287255756806772810, 15957045208436083313),
+UInt256(9164449253911987585, 7637152355576626726, 574511513613545621, 13467346343162615009),
+UInt256(1832889850782397517, 1527430471115325345, 3804251117464619447, 10072166898116343649),
+UInt256(3665779701564795034, 3054860942230650690, 7608502234929238895, 1697589722523135681),
+UInt256(7331559403129590068, 6109721884461301380, 15217004469858477790, 3395179445046271361),
+UInt256(1466311880625918013, 12289990821117991245, 14111447338197426527, 11747082333234985242),
+UInt256(2932623761251836027, 6133237568526430875, 9776150602685301439, 5047420592760418868),
+UInt256(5865247522503672054, 12266475137052861751, 1105557131661051262, 10094841185520837735),
+UInt256(11730495045007344109, 6086206200396171886, 2211114263322102525, 1742938297332123854),
+UInt256(2346099009001468821, 15974636499046875670, 442222852664420505, 348587659466424771),
+UInt256(4692198018002937643, 13502528924384199724, 884445705328841010, 697175318932849542),
+UInt256(9384396036005875287, 8558313775058847832, 1768891410657682020, 1394350637865699083),
+UInt256(1876879207201175057, 9090360384495590212, 15111173541099177696, 15036265386540781110),
+UInt256(3753758414402350114, 18180720768991180425, 11775603008488803777, 11625786699372010603),
+UInt256(7507516828804700229, 17914697464272809235, 5104461943268055939, 4804829325034469590),
+UInt256(1501503365760940045, 18340334751822203139, 15778287647621252480, 12029012309232624888),
+UInt256(3003006731521880091, 18233925429934854663, 13109831221532953345, 5611280544755698159),
+UInt256(6006013463043760183, 18021106786160157711, 7772918369356355074, 11222561089511396318),
+UInt256(12012026926087520367, 17595469498610763806, 15545836738712710149, 3998378105313241020),
+UInt256(2402405385217504073, 10897791529205973407, 14177213791968272999, 8178373250546468851),
+UInt256(4804810770435008147, 3348838984702395199, 9907683510226994382, 16356746501092937701),
+UInt256(9609621540870016294, 6697677969404790399, 1368622946744437149, 14266748928476323786),
+UInt256(1921924308174003258, 16096930852848599372, 11341771033574618399, 10232047415179085404),
+UInt256(3843848616348006517, 13747117631987647129, 4236797993439685183, 2017350756648619191),
+UInt256(7687697232696013035, 9047491190265742642, 8473595986879370366, 4034701513297238382),
+UInt256(1537539446539202607, 1809498238053148528, 9073416826859694719, 11874986746885178646),
+UInt256(3075078893078405214, 3618996476106297056, 18146833653719389439, 5303229420060805676),
+UInt256(6150157786156810428, 7237992952212594113, 17846923233729227262, 10606458840121611352),
+UInt256(12300315572313620856, 14475985904425188227, 17247102393748902909, 2766173606533671088),
+UInt256(2460063114462724171, 6584545995626947968, 14517466922975511551, 7931932350790554864),
+UInt256(4920126228925448342, 13169091991253895937, 10588189772241471486, 15863864701581109728),
+UInt256(9840252457850896685, 7891439908798240259, 2729635470773391357, 13280985329452667840),
+UInt256(1968050491570179337, 1578287981759648051, 15303322353122319564, 6345545880632443892),
+UInt256(3936100983140358674, 3156575963519296103, 12159900632535087512, 12691091761264887783),
+UInt256(7872201966280717348, 6313151927038592207, 5873057191360623409, 6935439448820223949),
+UInt256(1574440393256143469, 12330676829633449411, 1174611438272124681, 16144483148731686083),
+UInt256(3148880786512286939, 6214609585557347206, 2349222876544249363, 13842222223753820550),
+UInt256(6297761573024573878, 12429219171114694412, 4698445753088498727, 9237700373798089483),
+UInt256(12595523146049147757, 6411694268519837208, 9396891506176997455, 28656673886627349),
+UInt256(2519104629209829551, 8661036483187788088, 1879378301235399491, 5731334777325470),
+UInt256(5038209258419659102, 17322072966375576176, 3758756602470798982, 11462669554650940),
+UInt256(10076418516839318205, 16197401859041600736, 7517513204941597964, 22925339109301879),
+UInt256(2015283703367863641, 3239480371808320147, 5192851455730229916, 4585067821860376),
+UInt256(4030567406735727282, 6478960743616640294, 10385702911460459832, 9170135643720752),
+UInt256(8061134813471454564, 12957921487233280589, 2324661749211368048, 18340271287441503),
+UInt256(1612226962694290912, 17348979556414297410, 11532978794068004579, 3693016868999398624),
+UInt256(3224453925388581825, 16251215039119043205, 4619213514426457542, 7386033737998797248),
+]
+
+private let bid_multipliers1_bid64_44: [UInt256] = [
+UInt256(6448907850777163651, 14055686004528534794, 9238427028852915084, 14772067475997594496),
+UInt256(1289781570155432730, 6500486015647617282, 1847685405770583016, 17711808754167160192),
+UInt256(2579563140310865460, 13000972031295234564, 3695370811541166033, 16976873434624768768),
+UInt256(5159126280621730921, 7555199988880917512, 7390741623082332067, 15507002795539985920),
+UInt256(10318252561243461842, 15110399977761835024, 14781483246164664135, 12567261517370420223),
+UInt256(2063650512248692368, 10400777625036187651, 6645645463974843150, 6202801118215994368),
+UInt256(4127301024497384737, 2354811176362823686, 13291290927949686300, 12405602236431988736),
+UInt256(8254602048994769474, 4709622352725647373, 8135837782189820985, 6364460399154425855),
+UInt256(1650920409798953894, 15699319729512770767, 9005865185921784843, 8651589709314705818),
+UInt256(3301840819597907789, 12951895385315989918, 18011730371843569686, 17303179418629411635),
+UInt256(6603681639195815579, 7457046696922428221, 17576716669977587757, 16159614763549271654),
+UInt256(1320736327839163115, 16248804598352126937, 3515343333995517551, 10610620582193674978),
+UInt256(2641472655678326231, 14050865122994702258, 7030686667991035103, 2774497090677798339),
+UInt256(5282945311356652463, 9654986172279852900, 14061373335982070206, 5548994181355596677),
+UInt256(10565890622713304927, 863228270850154185, 9676002598254588796, 11097988362711193353),
+UInt256(2113178124542660985, 7551343283653851483, 9313898149134738405, 13287644116767969641),
+UInt256(4226356249085321970, 15102686567307702967, 181052224559925195, 8128544159826387665),
+UInt256(8452712498170643941, 11758629060905854318, 362104449119850390, 16257088319652775329),
+UInt256(1690542499634128788, 6041074626923081186, 14829816148791611370, 18008812922898196359),
+UInt256(3381084999268257576, 12082149253846162373, 11212888223873671125, 17570881772086841102),
+UInt256(6762169998536515153, 5717554433982773131, 3979032374037790635, 16695019470464130587),
+UInt256(1352433999707303030, 12211557331022285595, 15553201733775199419, 18096399153060467411),
+UInt256(2704867999414606061, 5976370588335019575, 12659659393840847223, 17746054232411383205),
+UInt256(5409735998829212122, 11952741176670039151, 6872574713972142831, 17045364391113214793),
+UInt256(10819471997658424245, 5458738279630526686, 13745149427944285663, 15643984708516877969),
+UInt256(2163894399531684849, 1091747655926105337, 6438378700330767455, 17886192200671016887),
+UInt256(4327788799063369698, 2183495311852210674, 12876757400661534911, 17325640327632482157),
+UInt256(8655577598126739396, 4366990623704421349, 7306770727613518207, 16204536581555412698),
+UInt256(1731115519625347879, 4562746939482794593, 1461354145522703641, 10619604945794903186),
+UInt256(3462231039250695758, 9125493878965589186, 2922708291045407283, 2792465817880254756),
+UInt256(6924462078501391516, 18250987757931178372, 5845416582090814566, 5584931635760509512),
+UInt256(1384892415700278303, 7339546366328145997, 12237129760643893882, 15874381586119743196),
+UInt256(2769784831400556606, 14679092732656291995, 6027515447578236149, 13302019098529934775),
+UInt256(5539569662801113213, 10911441391603032374, 12055030895156472299, 8157294123350317933),
+UInt256(11079139325602226427, 3376138709496513133, 5663317716603392982, 16314588246700635866),
+UInt256(2215827865120445285, 8053925371383123273, 1132663543320678596, 10641615278823947820),
+UInt256(4431655730240890570, 16107850742766246546, 2265327086641357193, 2836486483938344023),
+UInt256(8863311460481781141, 13768957411822941476, 4530654173282714386, 5672972967876688046),
+UInt256(1772662292096356228, 6443140297106498618, 8284828464140363523, 12202641037801068579),
+UInt256(3545324584192712456, 12886280594212997236, 16569656928280727047, 5958538001892585542),
+UInt256(7090649168385424913, 7325817114716442857, 14692569782851902478, 11917076003785171083),
+UInt256(1418129833677084982, 12533209867169019541, 2938513956570380495, 13451461644982765187),
+UInt256(2836259667354169965, 6619675660628487466, 5877027913140760991, 8456179216255978757),
+UInt256(5672519334708339930, 13239351321256974932, 11754055826281521982, 16912358432511957513),
+UInt256(11345038669416679861, 8031958568804398249, 5061367578853492349, 15377972791314363410),
+UInt256(2269007733883335972, 5295740528502789973, 1012273515770698469, 17832989817230513975),
+UInt256(4538015467766671944, 10591481057005579946, 2024547031541396939, 17219235560751476334),
+UInt256(9076030935533343889, 2736218040301608276, 4049094063082793879, 15991727047793401051),
+UInt256(1815206187106668777, 15304638867027962948, 809818812616558775, 17955740668526321503),
+UInt256(3630412374213337555, 12162533660346374280, 1619637625233117551, 17464737263343091390),
+]
+
+private let bid_multipliers1_bid64_45: [UInt256] = [
+UInt256(7260824748426675111, 5878323246983196944, 3239275250466235103, 16482730452976631164),
+UInt256(1452164949685335022, 4865013464138549712, 647855050093247020, 14364592534821057203),
+UInt256(2904329899370670044, 9730026928277099424, 1295710100186494041, 10282440995932562789),
+UInt256(5808659798741340089, 1013309782844647232, 2591420200372988083, 2118137918155573962),
+UInt256(11617319597482680178, 2026619565689294464, 5182840400745976166, 4236275836311147924),
+UInt256(2323463919496536035, 11473370357363589862, 8415265709633015879, 11915301611487960555),
+UInt256(4646927838993072071, 4499996641017628108, 16830531419266031759, 5383859149266369493),
+UInt256(9293855677986144142, 8999993282035256217, 15214318764822511902, 10767718298532738985),
+UInt256(1858771135597228828, 9178696285890871889, 17800259011932143673, 5842892474448458121),
+UInt256(3717542271194457656, 18357392571781743779, 17153773950154735730, 11685784948896916241),
+UInt256(7435084542388915313, 18268041069853935943, 15860803826599919845, 4924825824084280865),
+UInt256(1487016908477783062, 14721654658196518158, 6861509580061894292, 4674313979558766497),
+UInt256(2974033816955566125, 10996565242683484700, 13723019160123788584, 9348627959117532993),
+UInt256(5948067633911132251, 3546386411657417785, 8999294246538025553, 250511844525514369),
+UInt256(11896135267822264502, 7092772823314835570, 17998588493076051106, 501023689051028738),
+UInt256(2379227053564452900, 8797252194146787760, 10978415328099030867, 11168251182035936718),
+UInt256(4758454107128905800, 17594504388293575521, 3510086582488510119, 3889758290362321819),
+UInt256(9516908214257811601, 16742264702877599426, 7020173164977020238, 7779516580724643637),
+UInt256(1903381642851562320, 7037801755317430208, 8782732262479224694, 1555903316144928728),
+UInt256(3806763285703124640, 14075603510634860416, 17565464524958449388, 3111806632289857455),
+UInt256(7613526571406249281, 9704462947560169217, 16684184976207347160, 6223613264579714909),
+UInt256(1522705314281249856, 5630241404253944166, 14404883439467200401, 12312769097141673952),
+UInt256(3045410628562499712, 11260482808507888333, 10363022805224849187, 6178794120573796287),
+UInt256(6090821257124999425, 4074221543306225051, 2279301536740146758, 12357588241147592574),
+UInt256(12181642514249998850, 8148443086612450102, 4558603073480293517, 6268432408585633531),
+UInt256(2436328502849999770, 1629688617322490020, 8290418244179879349, 16011081740684767999),
+UInt256(4872657005699999540, 3259377234644980040, 16580836488359758699, 13575419407659984382),
+UInt256(9745314011399999080, 6518754469289960081, 14714928903009965783, 8704094741610417148),
+UInt256(1949062802279999816, 1303750893857992016, 6632334595343903479, 16498214207289724723),
+UInt256(3898125604559999632, 2607501787715984032, 13264669190687806959, 14549684340869897829),
+UInt256(7796251209119999264, 5215003575431968065, 8082594307666062303, 10652624608030244042),
+UInt256(1559250241823999852, 15800395974054034905, 16373914120500853753, 9509222551089869455),
+UInt256(3118500483647999705, 13154047874398518195, 14301084167292155891, 571701028470187294),
+UInt256(6237000967295999411, 7861351675087484775, 10155424260874760166, 1143402056940374587),
+UInt256(12474001934591998822, 15722703350174969551, 1864104448039968716, 2286804113880749174),
+UInt256(2494800386918399764, 10523238299518814556, 11440867333833724712, 15214756081743791128),
+UInt256(4989600773836799529, 2599732525328077497, 4434990593957897809, 11982768089778030640),
+UInt256(9979201547673599058, 5199465050656154994, 8869981187915795619, 5518792105846509663),
+UInt256(1995840309534719811, 12107939454356961968, 9152693867066979770, 4793107235911212256),
+UInt256(3991680619069439623, 5769134835004372320, 18305387734133959540, 9586214471822424512),
+UInt256(7983361238138879246, 11538269670008744641, 18164031394558367465, 725684869935297407),
+UInt256(1596672247627775849, 5997002748743659251, 11011503908395494139, 7523834603470880128),
+UInt256(3193344495255551698, 11994005497487318503, 3576263743081436662, 15047669206941760256),
+UInt256(6386688990511103397, 5541266921265085390, 7152527486162873325, 11648594340173968895),
+UInt256(12773377981022206794, 11082533842530170780, 14305054972325746651, 4850444606638386174),
+UInt256(2554675596204441358, 16973902027473675448, 17618406253432790623, 970088921327677235),
+UInt256(5109351192408882717, 15501059981237799281, 16790068433156029630, 1940177842655354470),
+UInt256(10218702384817765435, 12555375888766046947, 15133392792602507644, 3880355685310708939),
+UInt256(2043740476963553087, 2511075177753209389, 10405376188004322175, 4465419951804052111),
+UInt256(4087480953927106174, 5022150355506418779, 2364008302299092734, 8930839903608104222),
+]
+
+private let bid_multipliers1_bid64_46: [UInt256] = [
+UInt256(8174961907854212348, 10044300711012837558, 4728016604598185468, 17861679807216208444),
+UInt256(1634992381570842469, 13076906586428298481, 4634952135661547416, 18329731220410882982),
+UInt256(3269984763141684939, 7707069099147045346, 9269904271323094833, 18212718367112214348),
+UInt256(6539969526283369878, 15414138198294090693, 93064468936638051, 17978692660514877079),
+UInt256(1307993905256673975, 14150874083884549108, 3707961708529237933, 10974436161586796063),
+UInt256(2615987810513347951, 9855004094059546600, 7415923417058475867, 3502128249464040509),
+UInt256(5231975621026695903, 1263264114409541584, 14831846834116951734, 7004256498928081017),
+UInt256(10463951242053391806, 2526528228819083169, 11216949594524351852, 14008512997856162033),
+UInt256(2092790248410678361, 4194654460505726957, 2243389918904870370, 10180400229055053053),
+UInt256(4185580496821356722, 8389308921011453914, 4486779837809740741, 1914056384400554490),
+UInt256(8371160993642713444, 16778617842022907828, 8973559675619481482, 3828112768801108980),
+UInt256(1674232198728542688, 18113118827372222858, 9173409564607716942, 15523017812727863089),
+UInt256(3348464397457085377, 17779493581034894100, 18346819129215433885, 12599291551746174562),
+UInt256(6696928794914170755, 17112243088360236585, 18246894184721316155, 6751839029782797507),
+UInt256(1339385758982834151, 3422448617672047317, 3649378836944263231, 1350367805956559502),
+UInt256(2678771517965668302, 6844897235344094634, 7298757673888526462, 2700735611913119003),
+UInt256(5357543035931336604, 13689794470688189268, 14597515347777052924, 5401471223826238006),
+UInt256(10715086071862673209, 8932844867666826921, 10748286621844554232, 10802942447652476012),
+UInt256(2143017214372534641, 16543964232501006677, 2149657324368910846, 9539286119014315849),
+UInt256(4286034428745069283, 14641184391292461738, 4299314648737821693, 631828164319080082),
+UInt256(8572068857490138567, 10835624708875371860, 8598629297475643386, 1263656328638160163),
+UInt256(1714413771498027713, 9545822571258895018, 9098423488978949323, 11320777709953363003),
+UInt256(3428827542996055427, 644901068808238420, 18196846977957898647, 4194811346197174389),
+UInt256(6857655085992110854, 1289802137616476841, 17946949882206245678, 8389622692394348777),
+UInt256(1371531017198422170, 15015355686490936661, 3589389976441249135, 12745970982704600725),
+UInt256(2743062034396844341, 11583967299272321706, 7178779952882498271, 7045197891699649834),
+UInt256(5486124068793688683, 4721190524835091796, 14357559905764996542, 14090395783399299668),
+UInt256(10972248137587377366, 9442381049670183593, 10268375737820441469, 9734047493089047719),
+UInt256(2194449627517475473, 5577825024675947041, 16811070406531729586, 13014855942843540514),
+UInt256(4388899255034950946, 11155650049351894083, 15175396739353907557, 7582967811977529411),
+UInt256(8777798510069901893, 3864556024994236551, 11904049404998263498, 15165935623955058822),
+UInt256(1755559702013980378, 11840957649224578279, 17138205139967293992, 10411884754274832411),
+UInt256(3511119404027960757, 5235171224739604943, 15829666206225036369, 2377025434840113206),
+UInt256(7022238808055921514, 10470342449479209887, 13212588338740521122, 4754050869680226411),
+UInt256(1404447761611184302, 16851463748863483270, 6331866482490014547, 12018856618161776252),
+UInt256(2808895523222368605, 15256183424017414924, 12663732964980029095, 5590969162614000888),
+UInt256(5617791046444737211, 12065622774325278233, 6880721856250506574, 11181938325228001776),
+UInt256(11235582092889474423, 5684501474941004850, 13761443712501013149, 3917132576746451935),
+UInt256(2247116418577894884, 12204946739213931939, 13820335186725933599, 8162124144833111034),
+UInt256(4494232837155789769, 5963149404718312263, 9193926299742315582, 16324248289666222067),
+UInt256(8988465674311579538, 11926298809436624526, 18387852599484631165, 14201752505622892517),
+UInt256(1797693134862315907, 13453306206113055874, 18434965778864567525, 17597745760092219797),
+UInt256(3595386269724631815, 8459868338516560133, 18423187484019583435, 16748747446474887977),
+UInt256(7190772539449263630, 16919736677033120267, 18399630894329615255, 15050750819240224337),
+UInt256(1438154507889852726, 3383947335406624053, 11058623808349743697, 10388847793331865514),
+UInt256(2876309015779705452, 6767894670813248107, 3670503542989935779, 2330951512954179412),
+UInt256(5752618031559410904, 13535789341626496214, 7341007085979871558, 4661903025908358824),
+UInt256(11505236063118821809, 8624834609543440812, 14682014171959743116, 9323806051816717647),
+UInt256(2301047212623764361, 16482362180876329455, 6625751649133858946, 9243458839847164176),
+UInt256(4602094425247528723, 14517980288043107294, 13251503298267717893, 40173605984776736),
+]
+
+private let bid_multipliers1_bid64_47: [UInt256] = [
+UInt256(9204188850495057447, 10589216502376662973, 8056262522825884170, 80347211969553471),
+UInt256(1840837770099011489, 9496540929959153241, 1611252504565176834, 16069442393910695),
+UInt256(3681675540198022979, 546337786208754866, 3222505009130353668, 32138884787821389),
+UInt256(7363351080396045958, 1092675572417509732, 6445010018260707336, 64277769575642777),
+UInt256(1472670216079209191, 11286581558709232916, 1289002003652141467, 3702204368657038879),
+UInt256(2945340432158418383, 4126419043708914216, 2578004007304282934, 7404408737314077757),
+UInt256(5890680864316836766, 8252838087417828432, 5156008014608565868, 14808817474628155514),
+UInt256(11781361728633673532, 16505676174835656864, 10312016029217131737, 11170890875546759412),
+UInt256(2356272345726734706, 10679832864450952019, 5751752020585336670, 13302224619335082852),
+UInt256(4712544691453469413, 2912921655192352422, 11503504041170673341, 8157705164960614088),
+UInt256(9425089382906938826, 5825843310384704845, 4560264008631795066, 16315410329921228176),
+UInt256(1885017876581387765, 4854517476818851292, 4601401616468269336, 10641779695468066282),
+UInt256(3770035753162775530, 9709034953637702584, 9202803232936538673, 2836815317226580948),
+UInt256(7540071506325551061, 971325833565853552, 18405606465873077346, 5673630634453161895),
+UInt256(1508014301265110212, 3883613981455081033, 14749167737400346438, 15892121385858273672),
+UInt256(3016028602530220424, 7767227962910162067, 11051591401091141261, 13337498698006995728),
+UInt256(6032057205060440848, 15534455925820324135, 3656438728472730907, 8228253322304439839),
+UInt256(12064114410120881697, 12622167777931096654, 7312877456945461814, 16456506644608879678),
+UInt256(2412822882024176339, 9903131185070039977, 5151924306131002686, 3291301328921775936),
+UInt256(4825645764048352679, 1359518296430528338, 10303848612262005372, 6582602657843551871),
+UInt256(9651291528096705358, 2719036592861056677, 2160953150814459128, 13165205315687103742),
+UInt256(1930258305619341071, 11611853762797942305, 432190630162891825, 13701087507363151718),
+UInt256(3860516611238682143, 4776963451886332994, 864381260325783651, 8955430941016751820),
+UInt256(7721033222477364286, 9553926903772665988, 1728762520651567302, 17910861882033503640),
+UInt256(1544206644495472857, 5600134195496443520, 15103147763097954753, 7271521191148611052),
+UInt256(3088413288990945714, 11200268390992887041, 11759551452486357890, 14543042382297222103),
+UInt256(6176826577981891429, 3953792708276222467, 5072358831263164165, 10639340690884892589),
+UInt256(12353653155963782858, 7907585416552444934, 10144717662526328331, 2831937308060233562),
+UInt256(2470730631192756571, 12649563527536219956, 9407641161989086312, 11634433905837777682),
+UInt256(4941461262385513143, 6852382981362888297, 368538250268621009, 4822123737966003748),
+UInt256(9882922524771026286, 13704765962725776594, 737076500537242018, 9644247475932007496),
+UInt256(1976584504954205257, 6430302007287065642, 147415300107448403, 12996895939412132469),
+UInt256(3953169009908410514, 12860604014574131284, 294830600214896807, 7547047805114713322),
+UInt256(7906338019816821029, 7274463955438710952, 589661200429793614, 15094095610229426643),
+UInt256(1581267603963364205, 16212288050055383483, 3807281054827869046, 3018819122045885329),
+UInt256(3162535207926728411, 13977832026401215350, 7614562109655738092, 6037638244091770658),
+UInt256(6325070415853456823, 9508919979092879084, 15229124219311476184, 12075276488183541315),
+UInt256(12650140831706913647, 571095884476206553, 12011504364913400753, 5703808902657531013),
+UInt256(2530028166341382729, 7492916806379061957, 2402300872982680150, 12208808224757237173),
+UInt256(5060056332682765458, 14985833612758123914, 4804601745965360301, 5970872375804922729),
+UInt256(10120112665365530917, 11524923151806696212, 9609203491930720602, 11941744751609845457),
+UInt256(2024022533073106183, 9683682259845159888, 16679235957353785413, 6077697765063879415),
+UInt256(4048045066146212367, 920620445980768161, 14911727840998019210, 12155395530127758829),
+UInt256(8096090132292424734, 1841240891961536323, 11376711608286486805, 5864046986545966042),
+UInt256(1619218026458484946, 15125643437359948557, 9654039951141118007, 8551507026793013855),
+UInt256(3238436052916969893, 11804542801010345499, 861335828572684398, 17103014053586027710),
+UInt256(6476872105833939787, 5162341528311139382, 1722671657145368797, 15759284033462503804),
+UInt256(1295374421166787957, 8411165935146048522, 15101929590396715052, 6841205621434411084),
+UInt256(2590748842333575914, 16822331870292097045, 11757115107083878488, 13682411242868822168),
+UInt256(5181497684667151829, 15197919666874642475, 5067486140458205361, 8918078412028092720),
+]
+
+private let bid_multipliers1_bid64_48: [UInt256] = [
+UInt256(10362995369334303659, 11949095260039733334, 10134972280916410722, 17836156824056185439),
+UInt256(2072599073866860731, 17147214310975587959, 13095040900409013114, 3567231364811237088),
+UInt256(4145198147733721463, 15847684548241624303, 7743337727108474612, 7134462729622474176),
+UInt256(8290396295467442927, 13248625022773696990, 15486675454216949224, 14268925459244948351),
+UInt256(1658079259093488585, 10028422634038560044, 10476032720327210491, 6543133906590899994),
+UInt256(3316158518186977171, 1610101194367568473, 2505321366944869366, 13086267813181799987),
+UInt256(6632317036373954342, 3220202388735136946, 5010642733889738733, 7725791552654048358),
+UInt256(1326463407274790868, 8022738107230848035, 12070174991003678716, 5234507125272719995),
+UInt256(2652926814549581736, 16045476214461696071, 5693605908297805816, 10469014250545439990),
+UInt256(5305853629099163473, 13644208355213840526, 11387211816595611633, 2491284427381328363),
+UInt256(10611707258198326947, 8841672636718129437, 4327679559481671650, 4982568854762656726),
+UInt256(2122341451639665389, 9147032156827446533, 15622931170863975622, 15753909029920172638),
+UInt256(4244682903279330778, 18294064313654893067, 12799118268018399629, 13061073986130793660),
+UInt256(8489365806558661557, 18141384553600234519, 7151492462327247643, 7675403898552035704),
+UInt256(1697873161311732311, 11006974540203867550, 5119647307207359851, 16292476038678048434),
+UInt256(3395746322623464623, 3567205006698183484, 10239294614414719703, 14138208003646545252),
+UInt256(6791492645246929246, 7134410013396366969, 2031845155119887791, 9829671933583538887),
+UInt256(1358298529049385849, 5116230817421183717, 406369031023977558, 5655283201458618101),
+UInt256(2716597058098771698, 10232461634842367434, 812738062047955116, 11310566402917236201),
+UInt256(5433194116197543397, 2018179195975183252, 1625476124095910233, 4174388732124920786),
+UInt256(10866388232395086794, 4036358391950366504, 3250952248191820466, 8348777464249841572),
+UInt256(2173277646479017358, 15564666937357714593, 11718236893864095062, 16427150751817609608),
+UInt256(4346555292958034717, 12682589801005877571, 4989729714018638509, 14407557429925667599),
+UInt256(8693110585916069435, 6918435528302203526, 9979459428037277019, 10368370786141783581),
+UInt256(1738622117183213887, 1383687105660440705, 5685240700349365727, 2073674157228356717),
+UInt256(3477244234366427774, 2767374211320881410, 11370481400698731454, 4147348314456713433),
+UInt256(6954488468732855548, 5534748422641762821, 4294218727687911292, 8294696628913426865),
+UInt256(1390897693746571109, 12174996128754083533, 15616239004505223551, 5348288140524595697),
+UInt256(2781795387493142219, 5903248183798615451, 12785733935300895486, 10696576281049191393),
+UInt256(5563590774986284438, 11806496367597230903, 7124723796892239357, 2946408488388831169),
+UInt256(11127181549972568877, 5166248661484910190, 14249447593784478714, 5892816976777662337),
+UInt256(2225436309994513775, 8411947361780802684, 10228587148240716389, 4867912210097442791),
+UInt256(4450872619989027550, 16823894723561605369, 2010430222771881162, 9735824420194885581),
+UInt256(8901745239978055101, 15201045373413659122, 4020860445543762325, 1024904766680219546),
+UInt256(1780349047995611020, 6729557889424642147, 11872218533334483434, 11273027397561774879),
+UInt256(3560698095991222040, 13459115778849284295, 5297692992959415253, 4099310721413998142),
+UInt256(7121396191982444081, 8471487483989016974, 10595385985918830506, 8198621442827996284),
+UInt256(1424279238396488816, 5383646311539713718, 2119077197183766101, 5329073103307509580),
+UInt256(2848558476792977632, 10767292623079427436, 4238154394367532202, 10658146206615019160),
+UInt256(5697116953585955265, 3087841172449303256, 8476308788735064405, 2869548339520486704),
+UInt256(11394233907171910530, 6175682344898606512, 16952617577470128810, 5739096679040973407),
+UInt256(2278846781434382106, 1235136468979721302, 10769221144977846408, 8526516965292015328),
+UInt256(4557693562868764212, 2470272937959442605, 3091698216246141200, 17053033930584030656),
+UInt256(9115387125737528424, 4940545875918885210, 6183396432492282401, 15659323787458509695),
+UInt256(1823077425147505684, 15745504434151418334, 15994074545466097773, 3131864757491701939),
+UInt256(3646154850295011369, 13044264794593285053, 13541405017222643930, 6263729514983403878),
+UInt256(7292309700590022739, 7641785515477018491, 8636065960735736244, 12527459029966807756),
+UInt256(1458461940118004547, 16285752362063044991, 1727213192147147248, 17262887064961002844),
+UInt256(2916923880236009095, 14124760650416538366, 3454426384294294497, 16079030056212454072),
+UInt256(5833847760472018191, 9802777227123525116, 6908852768588588995, 13711316038715356528),
+]
+
+private let bid_multipliers1_bid64_49: [UInt256] = [
+UInt256(11667695520944036383, 1158810380537498616, 13817705537177177991, 8975888003721161440),
+UInt256(2333539104188807276, 11299808520333230692, 17520936366403076891, 1795177600744232288),
+UInt256(4667078208377614553, 4152872966956909769, 16595128659096602166, 3590355201488464576),
+UInt256(9334156416755229106, 8305745933913819539, 14743513244483652716, 7180710402976929152),
+UInt256(1866831283351045821, 5350498001524674231, 2948702648896730543, 5125490895337296154),
+UInt256(3733662566702091642, 10700996003049348462, 5897405297793461086, 10250981790674592308),
+UInt256(7467325133404183285, 2955247932389145308, 11794810595586922173, 2055219507639632999),
+UInt256(1493465026680836657, 591049586477829061, 13427008563343115404, 4100392716269836923),
+UInt256(2986930053361673314, 1182099172955658123, 8407273052976679192, 8200785432539673846),
+UInt256(5973860106723346628, 2364198345911316246, 16814546105953358384, 16401570865079347692),
+UInt256(11947720213446693256, 4728396691822632493, 15182348138197165153, 14356397656449143767),
+UInt256(2389544042689338651, 4635028153106436821, 17793864886607074323, 10249977160773649400),
+UInt256(4779088085378677302, 9270056306212873643, 17140985699504597031, 2053210247837747184),
+UInt256(9558176170757354605, 93368538716195671, 15835227325299642446, 4106420495675494368),
+UInt256(1911635234151470921, 18673707743239134, 6856394279801838812, 8199981728618919520),
+UInt256(3823270468302941842, 37347415486478268, 13712788559603677624, 16399963457237839040),
+UInt256(7646540936605883684, 74694830972956537, 8978833045497803633, 14353182840766126464),
+UInt256(1529308187321176736, 14772334225162232600, 5485115423841471049, 17628031827120866586),
+UInt256(3058616374642353473, 11097924376614913584, 10970230847682942099, 16809319580532181555),
+UInt256(6117232749284706947, 3749104679520275553, 3493717621656332583, 15171895087354811494),
+UInt256(12234465498569413894, 7498209359040551106, 6987435243312665167, 11897046101000071372),
+UInt256(2446893099713882778, 16257037130775751514, 1397487048662533033, 9758106849683834921),
+UInt256(4893786199427765557, 14067330187841951412, 2794974097325066067, 1069469625658118226),
+UInt256(9787572398855531115, 9687916301974351208, 5589948194650132134, 2138939251316236451),
+UInt256(1957514479771106223, 1937583260394870241, 12186036083155757396, 7806485479747067937),
+UInt256(3915028959542212446, 3875166520789740483, 5925328092601963176, 15612970959494135874),
+UInt256(7830057919084424892, 7750333041579480966, 11850656185203926353, 12779197845278720131),
+UInt256(1566011583816884978, 8928764237799716839, 13438177681266516240, 6245188383797654350),
+UInt256(3132023167633769956, 17857528475599433679, 8429611288823480864, 12490376767595308699),
+UInt256(6264046335267539913, 17268312877489315742, 16859222577646961729, 6534009461481065782),
+UInt256(12528092670535079827, 16089881681269079869, 15271701081584371842, 13068018922962131563),
+UInt256(2505618534107015965, 10596673965737636620, 6743689031058784691, 13681650228818157283),
+UInt256(5011237068214031931, 2746603857765721624, 13487378062117569383, 8916556383926762949),
+UInt256(10022474136428063862, 5493207715531443249, 8528012050525587150, 17833112767853525897),
+UInt256(2004494827285612772, 8477339172590109296, 5394951224847027753, 7255971368312615503),
+UInt256(4008989654571225544, 16954678345180218592, 10789902449694055506, 14511942736625231005),
+UInt256(8017979309142451089, 15462612616650885569, 3133060825678559397, 10577141399540910394),
+UInt256(1603595861828490217, 17849917782297818406, 11694658609361442849, 2115428279908182079),
+UInt256(3207191723656980435, 17253091490886085197, 4942573145013334082, 4230856559816364158),
+UInt256(6414383447313960871, 16059438908062618778, 9885146290026668164, 8461713119632728315),
+UInt256(1282876689462792174, 6901236596354434078, 16734424516972974925, 12760389068152276633),
+UInt256(2565753378925584348, 13802473192708868157, 15022104960236398235, 7074034062595001650),
+UInt256(5131506757851168697, 9158202311708184699, 11597465846763244854, 14148068125190003299),
+UInt256(10263013515702337394, 18316404623416369399, 4748187619816938093, 9849392176670454981),
+UInt256(2052602703140467478, 18420676183650915172, 12017683968189118588, 5659227250076001320),
+UInt256(4105205406280934957, 18394608293592278729, 5588623862668685560, 11318454500152002639),
+UInt256(8210410812561869915, 18342472513475005842, 11177247725337371121, 4190164926594453662),
+UInt256(1642082162512373983, 3668494502695001168, 9614147174551294870, 11906079429544621702),
+UInt256(3284164325024747966, 7336989005390002337, 781550275393038125, 5365414785379691788),
+UInt256(6568328650049495932, 14673978010780004674, 1563100550786076250, 10730829570759383576),
+]
+
+private let bid_multipliers1_bid64_50: [UInt256] = [
+UInt256(1313665730009899186, 10313493231639821581, 4001968924899125573, 5835514728893787039),
+UInt256(2627331460019798373, 2180242389570091546, 8003937849798251146, 11671029457787574077),
+UInt256(5254662920039596746, 4360484779140183092, 16007875699596502293, 4895314841865596538),
+UInt256(10509325840079193492, 8720969558280366185, 13569007325483452970, 9790629683731193075),
+UInt256(2101865168015838698, 9122891541139893883, 10092499094580511240, 9336823566230059262),
+UInt256(4203730336031677396, 18245783082279787767, 1738254115451470865, 226903058750566907),
+UInt256(8407460672063354793, 18044822090850023918, 3476508230902941730, 453806117501133814),
+UInt256(1681492134412670958, 14677010862395735753, 4384650460922498669, 3780110038242137086),
+UInt256(3362984268825341917, 10907277651081919890, 8769300921844997338, 7560220076484274172),
+UInt256(6725968537650683835, 3367811228454288164, 17538601843689994676, 15120440152968548344),
+UInt256(1345193707530136767, 673562245690857632, 18265115627705640228, 3024088030593709669),
+UInt256(2690387415060273534, 1347124491381715265, 18083487181701728840, 6048176061187419338),
+UInt256(5380774830120547068, 2694248982763430531, 17720230289693906064, 12096352122374838675),
+UInt256(10761549660241094136, 5388497965526861063, 16993716505678260513, 5745960171040125734),
+UInt256(2152309932048218827, 4767048407847282535, 18156138560103293395, 8527889663691845794),
+UInt256(4304619864096437654, 9534096815694565071, 17865533046497035174, 17055779327383691587),
+UInt256(8609239728192875309, 621449557679578527, 17284322019284518733, 15664814581057831557),
+UInt256(1721847945638575061, 14881685170503556998, 7146213218598814069, 17890358175179207605),
+UInt256(3443695891277150123, 11316626267297562380, 14292426437197628139, 17333972276648863593),
+UInt256(6887391782554300247, 4186508460885573145, 10138108800685704663, 16221200479588175569),
+UInt256(1377478356510860049, 8215999321660935275, 9406319389620961579, 3244240095917635114),
+UInt256(2754956713021720098, 16431998643321870551, 365894705532371542, 6488480191835270228),
+UInt256(5509913426043440197, 14417253212934189486, 731789411064743084, 12976960383670540455),
+UInt256(11019826852086880395, 10387762352158827356, 1463578822129486169, 7507176693631529294),
+UInt256(2203965370417376079, 2077552470431765471, 3982064579167807557, 1501435338726305859),
+UInt256(4407930740834752158, 4155104940863530942, 7964129158335615114, 3002870677452611718),
+UInt256(8815861481669504316, 8310209881727061884, 15928258316671230228, 6005741354905223435),
+UInt256(1763172296333900863, 5351390791087322700, 3185651663334246045, 12269194715206775657),
+UInt256(3526344592667801726, 10702781582174645400, 6371303326668492091, 6091645356703999697),
+UInt256(7052689185335603453, 2958819090639739184, 12742606653336984182, 12183290713407999394),
+UInt256(1410537837067120690, 11659810262353678806, 9927218960151217482, 17194053401649241172),
+UInt256(2821075674134241381, 4872876450997805997, 1407693846592883349, 15941362729588930728),
+UInt256(5642151348268482762, 9745752901995611994, 2815387693185766699, 13435981385468309839),
+UInt256(11284302696536965525, 1044761730281672372, 5630775386371533399, 8425218697227068061),
+UInt256(2256860539307393105, 208952346056334474, 8504852706758127326, 5374392554187323936),
+UInt256(4513721078614786210, 417904692112668948, 17009705413516254652, 10748785108374647871),
+UInt256(9027442157229572420, 835809384225337897, 15572666753322957689, 3050826143039744126),
+UInt256(1805488431445914484, 167161876845067579, 10493230980148412184, 4299514043349859149),
+UInt256(3610976862891828968, 334323753690135159, 2539717886587272752, 8599028086699718297),
+UInt256(7221953725783657936, 668647507380270318, 5079435773174545504, 17198056173399436594),
+UInt256(1444390745156731587, 3823078316217964386, 15773282413602550393, 14507657678905618289),
+UInt256(2888781490313463174, 7646156632435928773, 13099820753495549171, 10568571284101684961),
+UInt256(5777562980626926348, 15292313264871857547, 7752897433281546727, 2690398494493818305),
+UInt256(11555125961253852697, 12137882456034163478, 15505794866563093454, 5380796988987636610),
+UInt256(2311025192250770539, 9806274120690653342, 3101158973312618690, 15833554656765168615),
+UInt256(4622050384501541079, 1165804167671755068, 6202317946625237381, 13220365239820785614),
+UInt256(9244100769003082158, 2331608335343510136, 12404635893250474763, 7993986405932019612),
+UInt256(1848820153800616431, 11534368111294432996, 17238322437617736245, 8977494910670224569),
+UInt256(3697640307601232863, 4621992148879314377, 16029900801525920874, 17954989821340449138),
+UInt256(7395280615202465726, 9243984297758628755, 13613057529342290133, 17463235568971346659),
+]
+
+private let bid_multipliers1_bid64_51: [UInt256] = [
+UInt256(1479056123040493145, 5538145674293636074, 6411960320610368349, 18250042372761910625),
+UInt256(2958112246080986290, 11076291348587272148, 12823920641220736699, 18053340671814269633),
+UInt256(5916224492161972581, 3705838623464992681, 7201097208731921783, 17659937269918987650),
+UInt256(11832448984323945162, 7411677246929985362, 14402194417463843567, 16873130466128423684),
+UInt256(2366489796864789032, 8861033078869817718, 17637834142460410006, 7063974907967595060),
+UInt256(4732979593729578064, 17722066157739635437, 16828924211211268396, 14127949815935190120),
+UInt256(9465959187459156129, 16997388241769719259, 15211104348712985177, 9809155558160828624),
+UInt256(1893191837491831225, 18156872907321585144, 14110267313968328005, 1961831111632165725),
+UInt256(3786383674983662451, 17867001740933618673, 9773790554227104394, 3923662223264331450),
+UInt256(7572767349967324903, 17287259408157685731, 1100837034744657172, 7847324446528662900),
+UInt256(1514553469993464980, 14525498325857268115, 14977562665916572727, 5258813704047642904),
+UInt256(3029106939986929961, 10604252578004984615, 11508381258123593838, 10517627408095285807),
+UInt256(6058213879973859923, 2761761082300417615, 4570018442537636061, 2588510742481019997),
+UInt256(12116427759947719846, 5523522164600835230, 9140036885075272122, 5177021484962039993),
+UInt256(2423285551989543969, 4794053247662077369, 5517356191756964747, 12103450741218138969),
+UInt256(4846571103979087938, 9588106495324154738, 11034712383513929495, 5760157408726726321),
+UInt256(9693142207958175877, 729468916938757861, 3622680693318307374, 11520314817453452641),
+UInt256(1938628441591635175, 7524591412871572218, 11792582582889392444, 9682760592974511175),
+UInt256(3877256883183270350, 15049182825743144437, 5138421092069233273, 918777112239470733),
+UInt256(7754513766366540701, 11651621577776737258, 10276842184138466546, 1837554224478941466),
+UInt256(1550902753273308140, 6019673130297257774, 16812763695795334602, 367510844895788294),
+UInt256(3101805506546616280, 12039346260594515549, 15178783317881117588, 735021689791576587),
+UInt256(6203611013093232561, 5631948447479479483, 11910822562052683560, 1470043379583153173),
+UInt256(12407222026186465122, 11263896894958958967, 5374901050395815504, 2940086759166306346),
+UInt256(2481444405237293024, 9631477008475612439, 15832375469046804393, 11656063796058992239),
+UInt256(4962888810474586049, 816209943241673263, 13218006864384057171, 4865383518408432862),
+UInt256(9925777620949172098, 1632419886483346527, 7989269655058562726, 9730767036816865723),
+UInt256(1985155524189834419, 11394530421522400275, 1597853931011712545, 5635502222105283468),
+UInt256(3970311048379668839, 4342316769335248934, 3195707862023425090, 11271004444210566936),
+UInt256(7940622096759337678, 8684633538670497868, 6391415724046850181, 4095264814711582255),
+UInt256(1588124419351867535, 12804973151959830543, 4967631959551280359, 8197750592426137098),
+UInt256(3176248838703735071, 7163202230210109470, 9935263919102560718, 16395501184852274195),
+UInt256(6352497677407470142, 14326404460420218941, 1423783764495569821, 14344258295994996774),
+UInt256(12704995354814940285, 10206064847130886266, 2847567528991139643, 10241772518280441931),
+UInt256(2540999070962988057, 2041212969426177253, 4258862320540138251, 16805749762623729679),
+UInt256(5081998141925976114, 4082425938852354506, 8517724641080276503, 15164755451537907742),
+UInt256(10163996283851952228, 8164851877704709012, 17035449282160553007, 11882766829366263868),
+UInt256(2032799256770390445, 12701016819766672772, 3407089856432110601, 9755250995357073420),
+UInt256(4065598513540780891, 6955289565823793928, 6814179712864221203, 1063757917004595224),
+UInt256(8131197027081561782, 13910579131647587856, 13628359425728442406, 2127515834009190448),
+UInt256(1626239405416312356, 10160813455813338217, 13793718329371419450, 15182898425769479383),
+UInt256(3252478810832624713, 1874882837917124819, 9140692585033287285, 11919052777829407149),
+UInt256(6504957621665249426, 3749765675834249638, 18281385170066574571, 5391361481949262682),
+UInt256(1300991524333049885, 4439301949908760250, 18413672292980956207, 1078272296389852537),
+UInt256(2601983048666099770, 8878603899817520501, 18380600512252360798, 2156544592779705073),
+UInt256(5203966097332199540, 17757207799635041003, 18314456950795169980, 4313089185559410146),
+UInt256(10407932194664399081, 17067671525560530391, 18182169827880788344, 8626178371118820291),
+UInt256(2081586438932879816, 7102883119854016401, 11015131595059978315, 5414584488965674382),
+UInt256(4163172877865759632, 14205766239708032803, 3583519116410405014, 10829168977931348763),
+UInt256(8326345755731519265, 9964788405706513990, 7167038232820810029, 3211593882153145910),
+]
+
+private let bid_multipliers1_bid64_52: [UInt256] = [
+UInt256(1665269151146303853, 1992957681141302798, 1433407646564162005, 15399714035398270475),
+UInt256(3330538302292607706, 3985915362282605596, 2866815293128324011, 12352683997086989334),
+UInt256(6661076604585215412, 7971830724565211192, 5733630586256648023, 6258623920464427051),
+UInt256(1332215320917043082, 8973063774396862884, 15904121376218970897, 8630422413576706057),
+UInt256(2664430641834086164, 17946127548793725769, 13361498678728390178, 17260844827153412114),
+]
+
+// MARK: - bid_multipliers2_bid64
+
+extension BinaryFloatingPointTables {
+ internal static func bid_multipliers2_bid64(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_multipliers2_bid64_0[r]
+ case 1: return bid_multipliers2_bid64_1[r]
+ case 2: return bid_multipliers2_bid64_2[r]
+ case 3: return bid_multipliers2_bid64_3[r]
+ case 4: return bid_multipliers2_bid64_4[r]
+ case 5: return bid_multipliers2_bid64_5[r]
+ case 6: return bid_multipliers2_bid64_6[r]
+ case 7: return bid_multipliers2_bid64_7[r]
+ case 8: return bid_multipliers2_bid64_8[r]
+ case 9: return bid_multipliers2_bid64_9[r]
+ case 10: return bid_multipliers2_bid64_10[r]
+ case 11: return bid_multipliers2_bid64_11[r]
+ case 12: return bid_multipliers2_bid64_12[r]
+ case 13: return bid_multipliers2_bid64_13[r]
+ case 14: return bid_multipliers2_bid64_14[r]
+ case 15: return bid_multipliers2_bid64_15[r]
+ case 16: return bid_multipliers2_bid64_16[r]
+ case 17: return bid_multipliers2_bid64_17[r]
+ case 18: return bid_multipliers2_bid64_18[r]
+ case 19: return bid_multipliers2_bid64_19[r]
+ case 20: return bid_multipliers2_bid64_20[r]
+ case 21: return bid_multipliers2_bid64_21[r]
+ case 22: return bid_multipliers2_bid64_22[r]
+ case 23: return bid_multipliers2_bid64_23[r]
+ case 24: return bid_multipliers2_bid64_24[r]
+ case 25: return bid_multipliers2_bid64_25[r]
+ case 26: return bid_multipliers2_bid64_26[r]
+ case 27: return bid_multipliers2_bid64_27[r]
+ case 28: return bid_multipliers2_bid64_28[r]
+ case 29: return bid_multipliers2_bid64_29[r]
+ case 30: return bid_multipliers2_bid64_30[r]
+ case 31: return bid_multipliers2_bid64_31[r]
+ case 32: return bid_multipliers2_bid64_32[r]
+ case 33: return bid_multipliers2_bid64_33[r]
+ case 34: return bid_multipliers2_bid64_34[r]
+ case 35: return bid_multipliers2_bid64_35[r]
+ case 36: return bid_multipliers2_bid64_36[r]
+ case 37: return bid_multipliers2_bid64_37[r]
+ case 38: return bid_multipliers2_bid64_38[r]
+ case 39: return bid_multipliers2_bid64_39[r]
+ case 40: return bid_multipliers2_bid64_40[r]
+ case 41: return bid_multipliers2_bid64_41[r]
+ case 42: return bid_multipliers2_bid64_42[r]
+ case 43: return bid_multipliers2_bid64_43[r]
+ case 44: return bid_multipliers2_bid64_44[r]
+ case 45: return bid_multipliers2_bid64_45[r]
+ case 46: return bid_multipliers2_bid64_46[r]
+ case 47: return bid_multipliers2_bid64_47[r]
+ case 48: return bid_multipliers2_bid64_48[r]
+ case 49: return bid_multipliers2_bid64_49[r]
+ case 50: return bid_multipliers2_bid64_50[r]
+ case 51: return bid_multipliers2_bid64_51[r]
+ case 52: return bid_multipliers2_bid64_52[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_multipliers2_bid64_0: [UInt256] = [
+UInt256(34, 17596454752367787604, 4145630637659340425, 9438227768328448678),
+UInt256(69, 16746165431026023592, 8291261275318680851, 429711462947345740),
+UInt256(139, 15045586788342495568, 16582522550637361702, 859422925894691480),
+UInt256(279, 11644429502975439521, 14718301027565171788, 1718845851789382959),
+UInt256(559, 4842114932241327427, 10989857981420791960, 3437691703578765918),
+UInt256(1118, 9684229864482654855, 3532971889132032304, 6875383407157531835),
+UInt256(2237, 921715655255758094, 7065943778264064608, 13750766814315063670),
+UInt256(4474, 1843431310511516188, 14131887556528129217, 9054789554920575724),
+UInt256(8948, 3686862621023032377, 9817031039346706818, 18109579109841151448),
+UInt256(17896, 7373725242046064755, 1187318004983862021, 17772414145972751280),
+UInt256(35792, 14747450484092129510, 2374636009967724043, 17098084218235950944),
+UInt256(71585, 11048156894474707404, 4749272019935448087, 15749424362762350272),
+UInt256(143171, 3649569715239863192, 9498544039870896175, 13052104651815148928),
+UInt256(286342, 7299139430479726385, 550344006032240735, 7657465229920746239),
+UInt256(572684, 14598278860959452770, 1100688012064481470, 15314930459841492478),
+UInt256(1145369, 10749813648209353924, 2201376024128962941, 12183116845973433340),
+UInt256(2290739, 3052883222709156232, 4402752048257925883, 5919489618237315063),
+UInt256(4581478, 6105766445418312464, 8805504096515851766, 11838979236474630126),
+UInt256(9162956, 12211532890836624928, 17611008193031703533, 5231214399239708635),
+UInt256(18325913, 5976321707963698241, 16775272312353855450, 10462428798479417270),
+UInt256(36651826, 11952643415927396483, 15103800550998159285, 2478113523249282924),
+UInt256(73303653, 5458542758145241351, 11760857028286766954, 4956227046498565847),
+UInt256(146607306, 10917085516290482703, 5074969982863982292, 9912454092997131693),
+UInt256(293214613, 3387426958871413790, 10149939965727964585, 1378164112284711770),
+UInt256(586429226, 6774853917742827581, 1853135857746377554, 2756328224569423540),
+UInt256(1172858452, 13549707835485655162, 3706271715492755108, 5512656449138847079),
+UInt256(2345716905, 8652671597261758708, 7412543430985510216, 11025312898277694158),
+UInt256(4691433810, 17305343194523517416, 14825086861971020433, 3603881722845836699),
+UInt256(9382867621, 16163942315337483217, 11203429650232489250, 7207763445691673397),
+UInt256(18765735243, 13881140556965414819, 3960115226755426884, 14415526891383346794),
+UInt256(37531470487, 9315537040221278022, 7920230453510853769, 10384309709057141972),
+UInt256(75062940975, 184330006733004428, 15840460907021707539, 2321875344404732328),
+UInt256(150125881950, 368660013466008857, 13234177740333863462, 4643750688809464655),
+UInt256(300251763900, 737320026932017715, 8021611406958175308, 9287501377618929309),
+UInt256(600503527800, 1474640053864035430, 16043222813916350617, 128258681528307001),
+UInt256(1201007055600, 2949280107728070861, 13639701554123149618, 256517363056614002),
+UInt256(2402014111200, 5898560215456141723, 8832659034536747620, 513034726113228003),
+UInt256(4804028222400, 11797120430912283446, 17665318069073495240, 1026069452226456005),
+UInt256(9608056444801, 5147496788115015277, 16883892064437438864, 2052138904452912009),
+UInt256(19216112889602, 10294993576230030555, 15321040055165326112, 4104277808905824018),
+UInt256(38432225779205, 2143243078750509495, 12195336036621100608, 8208555617811648035),
+UInt256(76864451558410, 4286486157501018991, 5943927999532649600, 16417111235623296070),
+UInt256(153728903116820, 8572972315002037982, 11887855999065299201, 14387478397537040523),
+UInt256(307457806233640, 17145944630004075965, 5328967924421046787, 10328212721364529429),
+UInt256(614915612467281, 15845145186298600314, 10657935848842093575, 2209681369019507241),
+UInt256(1229831224934563, 13243546298887649013, 2869127623974635534, 4419362738039014482),
+UInt256(2459662449869127, 8040348524065746410, 5738255247949271068, 8838725476078028963),
+UInt256(4919324899738254, 16080697048131492820, 11476510495898542136, 17677450952156057925),
+UInt256(9838649799476509, 13714650022553434025, 4506276918087532657, 16908157830602564233),
+UInt256(19677299598953019, 8982555971397316434, 9012553836175065315, 15369571587495576850),
+]
+
+private let bid_multipliers2_bid64_1: [UInt256] = [
+UInt256(39354599197906038, 17965111942794632868, 18025107672350130631, 12292399101281602084),
+UInt256(78709198395812077, 17483479811879714121, 17603471270990709647, 6138054128853652551),
+UInt256(157418396791624155, 16520215550049876627, 16760198468271867678, 12276108257707305101),
+UInt256(314836793583248311, 14593687026390201639, 15073652862834183741, 6105472441705058585),
+UInt256(629673587166496623, 10740629979070851663, 11700561651958815866, 12210944883410117170),
+UInt256(1259347174332993247, 3034515884432151711, 4954379230208080117, 5975145693110682724),
+UInt256(251869434866598649, 7985600806370250988, 12058922290267346993, 1195029138622136545),
+UInt256(503738869733197298, 15971201612740501977, 5671100506825142370, 2390058277244273090),
+UInt256(1007477739466394597, 13495659151771452338, 11342201013650284740, 4780116554488546179),
+UInt256(201495547893278919, 10077829459838111114, 2268440202730056948, 956023310897709236),
+UInt256(402991095786557839, 1708914845966670612, 4536880405460113896, 1912046621795418472),
+UInt256(805982191573115678, 3417829691933341224, 9073760810920227792, 3824093243590836943),
+UInt256(161196438314623135, 11751612382612399214, 9193449791667866204, 15522213907685808682),
+UInt256(322392876629246271, 5056480691515246812, 18386899583335732409, 12597683741662065747),
+UInt256(644785753258492542, 10112961383030493625, 18327055092961913203, 6748623409614579878),
+UInt256(128957150651698508, 9401289906089919371, 11044108648076203287, 1349724681922915976),
+UInt256(257914301303397017, 355835738470287127, 3641473222442854958, 2699449363845831952),
+UInt256(515828602606794034, 711671476940574254, 7282946444885709916, 5398898727691663903),
+UInt256(1031657205213588068, 1423342953881148508, 14565892889771419832, 10797797455383327805),
+UInt256(206331441042717613, 11352715035001960671, 6602527392696194289, 13227605935302396531),
+UInt256(412662882085435227, 4258685996294369726, 13205054785392388579, 8008467796895241445),
+UInt256(825325764170870454, 8517371992588739453, 7963365497075225542, 16016935593790482890),
+UInt256(165065152834174090, 16460869657485389183, 8971370728898865754, 17960782377725737871),
+UInt256(330130305668348181, 14474995241261226750, 17942741457797731509, 17474820681741924126),
+UInt256(660260611336696363, 10503246408812901885, 17438738841885911403, 16502897289774296635),
+UInt256(132052122267339272, 13168695725988311346, 14555794212602913250, 6989928272696769651),
+UInt256(264104244534678545, 7890647378267071077, 10664844351496274884, 13979856545393539301),
+UInt256(528208489069357090, 15781294756534142155, 2882944629282998153, 9512969017077526985),
+UInt256(1056416978138714181, 13115845439358732694, 5765889258565996307, 579193960445502354),
+UInt256(211283395627742836, 6312517902613656862, 1153177851713199261, 7494536421572921118),
+UInt256(422566791255485672, 12625035805227313724, 2306355703426398522, 14989072843145842235),
+UInt256(845133582510971345, 6803327536745075832, 4612711406852797045, 11531401612582132853),
+UInt256(169026716502194269, 1360665507349015166, 8301239910854380055, 9684977952000247217),
+UInt256(338053433004388538, 2721331014698030332, 16602479821708760111, 923211830290942818),
+UInt256(676106866008777076, 5442662029396060665, 14758215569707968606, 1846423660581885636),
+UInt256(135221373201755415, 4777881220621122456, 6640991928683504044, 7747982361600197774),
+UInt256(270442746403510830, 9555762441242244912, 13281983857367008088, 15495964723200395548),
+UInt256(540885492807021661, 664780808774938209, 8117223641024464561, 12545185372691239479),
+UInt256(1081770985614043322, 1329561617549876418, 16234447282048929123, 6643626671672927341),
+UInt256(216354197122808664, 7644609952993795930, 3246889456409785824, 12396771778560316438),
+UInt256(432708394245617328, 15289219905987591860, 6493778912819571649, 6346799483411081260),
+UInt256(865416788491234657, 12131695738265632104, 12987557825639143298, 12693598966822162519),
+UInt256(173083357698246931, 9805036777136947067, 6286860379869738982, 17296115052332073797),
+UInt256(346166715396493863, 1163329480564342518, 12573720759739477965, 16145486030954595977),
+UInt256(692333430792987726, 2326658961128685037, 6700697445769404315, 13844227988199640338),
+UInt256(138466686158597545, 4154680606967647330, 12408185933379611832, 13836892041865659038),
+UInt256(276933372317195090, 8309361213935294661, 6369627793049672049, 9227040010021766459),
+UInt256(553866744634390180, 16618722427870589322, 12739255586099344099, 7335946333981301),
+UInt256(1107733489268780361, 14790700782031627029, 7031767098489136582, 14671892667962602),
+UInt256(221546697853756072, 6647488971148235729, 1406353419697827316, 7381632008017413167),
+]
+
+private let bid_multipliers2_bid64_2: [UInt256] = [
+UInt256(443093395707512144, 13294977942296471458, 2812706839395654632, 14763264016034826334),
+UInt256(886186791415024289, 8143211810883391300, 5625413678791309265, 11079783958360101051),
+UInt256(177237358283004857, 16386037621144319552, 15882477994725903145, 16973352050639661503),
+UInt256(354474716566009715, 14325331168579087489, 13318211915742254675, 15499960027569771390),
+UInt256(708949433132019431, 10203918263448623363, 8189679757774957735, 12553175981429991164),
+UInt256(141789886626403886, 5730132467431634995, 16395331210522632839, 17268030455253639526),
+UInt256(283579773252807772, 11460264934863269991, 14343918347335714063, 16089316836797727436),
+UInt256(567159546505615545, 4473785796016988367, 10241092620961876511, 13731889599885903255),
+UInt256(1134319093011231090, 8947571592033976735, 2035441168214201407, 9017035126062254893),
+UInt256(226863818602246218, 1789514318406795347, 407088233642840281, 9182104654696271625),
+UInt256(453727637204492436, 3579028636813590694, 814176467285680562, 18364209309392543250),
+UInt256(907455274408984872, 7158057273627181388, 1628352934571361125, 18281674545075534884),
+UInt256(181491054881796974, 8810309084209256924, 325670586914272225, 3656334909015106977),
+UInt256(362982109763593948, 17620618168418513848, 651341173828544450, 7312669818030213954),
+UInt256(725964219527187897, 16794492263127476080, 1302682347657088900, 14625339636060427907),
+UInt256(145192843905437579, 10737596082109315862, 7639234099015238426, 10303765556695906228),
+UInt256(290385687810875159, 3028448090509080108, 15278468198030476853, 2160787039682260840),
+UInt256(580771375621750318, 6056896181018160217, 12110192322351402090, 4321574079364521680),
+UInt256(1161542751243500636, 12113792362036320435, 5773640570993252564, 8643148158729043359),
+UInt256(232308550248700127, 6112107287149174410, 4844076928940560836, 1728629631745808672),
+UInt256(464617100497400254, 12224214574298348820, 9688153857881121672, 3457259263491617344),
+UInt256(929234200994800509, 6001685074887146025, 929563642052691728, 6914518526983234687),
+UInt256(185846840198960101, 15957732273945070497, 14943307987378179638, 8761601334880467584),
+UInt256(371693680397920203, 13468720474180589379, 11439871901046807660, 17523202669760935168),
+UInt256(743387360795840407, 8490696874651627143, 4432999728384063705, 16599661265812318719),
+UInt256(148677472159168081, 9076837004414146075, 886599945676812741, 3319932253162463744),
+UInt256(297354944318336162, 18153674008828292150, 1773199891353625482, 6639864506324927488),
+UInt256(594709888636672325, 17860603943947032684, 3546399782707250964, 13279729012649854976),
+UInt256(1189419777273344651, 17274463814184513752, 7092799565414501929, 8112713951590158335),
+UInt256(237883955454668930, 7144241577578813073, 12486606357308631355, 9001240419801852314),
+UInt256(475767910909337860, 14288483155157626147, 6526468640907711094, 18002480839603704627),
+UInt256(951535821818675721, 10130222236605700678, 13052937281815422189, 17558217605497857637),
+UInt256(190307164363735144, 5715393262063050458, 17367982715330725730, 14579689965325302497),
+UInt256(380614328727470288, 11430786524126100917, 16289221356951899845, 10712635856941053378),
+UInt256(761228657454940577, 4414828974542650219, 14131698640194248075, 2978527640172555140),
+UInt256(152245731490988115, 8261663424392350690, 6515688542780759938, 4285054342776421352),
+UInt256(304491462981976230, 16523326848784701380, 13031377085561519876, 8570108685552842703),
+UInt256(608982925963952461, 14599909623859851145, 7616010097413488136, 17140217371105685405),
+UInt256(1217965851927904923, 10753075174010150674, 15232020194826976273, 15833690668501819194),
+UInt256(243593170385580984, 13218661479027761104, 10425101668449215901, 3166738133700363839),
+UInt256(487186340771161969, 7990578884345970593, 2403459263188880186, 6333476267400727678),
+UInt256(974372681542323938, 15981157768691941186, 4806918526377760372, 12666952534801455355),
+UInt256(194874536308464787, 14264277997964119206, 15718778964243193367, 6222739321702201395),
+UInt256(389749072616929575, 10081811922218686797, 12990813854776835118, 12445478643404402789),
+UInt256(779498145233859151, 1716879770727821979, 7534883635844118621, 6444213213099253961),
+UInt256(155899629046771830, 4032724768887474719, 1506976727168823724, 4978191457361761116),
+UInt256(311799258093543660, 8065449537774949438, 3013953454337647448, 9956382914723522231),
+UInt256(623598516187087320, 16130899075549898876, 6027906908675294897, 1466021755737492846),
+UInt256(1247197032374174641, 13815054077390246136, 12055813817350589794, 2932043511474985691),
+UInt256(249439406474834928, 6452359630219959550, 9789860392953938605, 4275757517036907462),
+]
+
+private let bid_multipliers2_bid64_3: [UInt256] = [
+UInt256(498878812949669856, 12904719260439919101, 1132976712198325594, 8551515034073814923),
+UInt256(997757625899339713, 7362694447170286586, 2265953424396651188, 17103030068147629846),
+UInt256(199551525179867942, 12540585333659788286, 15210585943846971530, 10799303643113346616),
+UInt256(399103050359735885, 6634426593610024957, 11974427813984391445, 3151863212517141615),
+UInt256(798206100719471770, 13268853187220049915, 5502111554259231274, 6303726425034283230),
+UInt256(159641220143894354, 2653770637444009983, 1100422310851846254, 16018140543974497939),
+UInt256(319282440287788708, 5307541274888019966, 2200844621703692509, 13589537014239444262),
+UInt256(638564880575577416, 10615082549776039932, 4401689243407385019, 8732329954769336908),
+UInt256(1277129761151154833, 2783421025842528248, 8803378486814770038, 17464659909538673815),
+UInt256(255425952230230966, 11624730649394236619, 5450024512104864330, 18250327240875376056),
+UInt256(510851904460461933, 4802717225078921622, 10900049024209728661, 18053910408041200496),
+UInt256(1021703808920923866, 9605434450157843245, 3353353974709905707, 17661076742372849375),
+UInt256(204340761784184773, 5610435704773478972, 4360019609683891464, 14600261792700300845),
+UInt256(408681523568369546, 11220871409546957944, 8720039219367782929, 10753779511691050074),
+UInt256(817363047136739093, 3994998745384364272, 17440078438735565859, 3060814949672548531),
+UInt256(163472609427347818, 11867046193302603824, 3488015687747113171, 15369558248902150999),
+UInt256(326945218854695637, 5287348312895656032, 6976031375494226343, 12292372424094750382),
+UInt256(653890437709391274, 10574696625791312064, 13952062750988452687, 6138000774479949148),
+UInt256(130778087541878254, 16872334584125903705, 13858458994423421507, 1227600154895989830),
+UInt256(261556175083756509, 15297925094542255795, 9270173915137291398, 2455200309791979659),
+UInt256(523112350167513019, 12149106115374959975, 93603756565031180, 4910400619583959318),
+UInt256(1046224700335026039, 5851468157040368334, 187207513130062360, 9820801239167918636),
+UInt256(209244940067005207, 15927688890375714959, 11105487946851743441, 13032206692059314697),
+UInt256(418489880134010415, 13408633707041878303, 3764231819993935267, 7617669310409077778),
+UInt256(836979760268020831, 8370523340374204990, 7528463639987870534, 15235338620818155555),
+UInt256(167395952053604166, 5363453482816751321, 5195041542739484430, 3047067724163631111),
+UInt256(334791904107208332, 10726906965633502642, 10390083085478968860, 6094135448327262222),
+UInt256(669583808214416665, 3007069857557453669, 2333422097248386104, 12188270896654524444),
+UInt256(133916761642883333, 601413971511490733, 15224079678417318513, 13505700623556635859),
+UInt256(267833523285766666, 1202827943022981467, 12001415283125085411, 8564657173403720101),
+UInt256(535667046571533332, 2405655886045962935, 5556086492540619206, 17129314346807440202),
+UInt256(1071334093143066664, 4811311772091925870, 11112172985081238413, 15811884619905328788),
+UInt256(214266818628613332, 15719657613386026466, 16979829855983888975, 10541074553464886404),
+UInt256(428533637257226665, 12992571153062501317, 15512915638258226335, 2635405033220221192),
+UInt256(857067274514453331, 7538398232415451019, 12579087202806901054, 5270810066440442384),
+UInt256(171413454902890666, 5197028461225000527, 2515817440561380210, 15811557272255729770),
+UInt256(342826909805781332, 10394056922450001054, 5031634881122760421, 13176370470801907923),
+UInt256(685653819611562665, 2341369771190450492, 10063269762245520843, 7905996867894264230),
+UInt256(137130763922312533, 468273954238090098, 9391351581932924815, 1581199373578852846),
+UInt256(274261527844625066, 936547908476180197, 335959090156298014, 3162398747157705692),
+UInt256(548523055689250132, 1873095816952360394, 671918180312596028, 6324797494315411384),
+UInt256(1097046111378500264, 3746191633904720788, 1343836360625192056, 12649594988630822768),
+UInt256(219409222275700052, 15506633585748585450, 7647464901608859057, 13597965441951895524),
+UInt256(438818444551400105, 12566523097787619284, 15294929803217718115, 8749186810194239431),
+UInt256(877636889102800211, 6686302121865686953, 12143115532725884614, 17498373620388478861),
+UInt256(175527377820560042, 5026609239115047713, 17186018365512818215, 14567721168303426742),
+UInt256(351054755641120084, 10053218478230095427, 15925292657316084815, 10688698262897301868),
+UInt256(702109511282240169, 1659692882750639239, 13403841240922618015, 2930652452085052119),
+UInt256(140421902256448033, 15089333835517769140, 13748814692410254572, 11654176934642741394),
+UInt256(280843804512896067, 11731923597325986665, 9050885311110957529, 4861609795575931171),
+]
+
+private let bid_multipliers2_bid64_4: [UInt256] = [
+UInt256(561687609025792135, 5017103120942421714, 18101770622221915058, 9723219591151862342),
+UInt256(1123375218051584270, 10034206241884843429, 17756797170734278501, 999695108594173067),
+UInt256(224675043610316854, 2006841248376968685, 18308754693114496993, 199939021718834614),
+UInt256(449350087220633708, 4013682496753937371, 18170765312519442370, 399878043437669227),
+UInt256(898700174441267416, 8027364993507874743, 17894786551329333124, 799756086875338454),
+UInt256(179740034888253483, 5294821813443485271, 18336352569233507917, 11227997661600798661),
+UInt256(359480069776506966, 10589643626886970543, 18225961064757464219, 4009251249492045705),
+UInt256(718960139553013933, 2732543180064389471, 18005178055805376822, 8018502498984091410),
+UInt256(143792027910602786, 11614555080238608863, 18358430870128716657, 5293049314538728606),
+UInt256(287584055821205573, 4782366086767666111, 18270117666547881698, 10586098629077457211),
+UInt256(575168111642411146, 9564732173535332223, 18093491259386211781, 2725453184445362805),
+UInt256(1150336223284822293, 682720273361112831, 17740238445062871946, 5450906368890725609),
+UInt256(230067244656964458, 11204590498897953535, 18305442947980215682, 1090181273778145122),
+UInt256(460134489313928917, 3962436924086355455, 18164141822250879748, 2180362547556290244),
+UInt256(920268978627857834, 7924873848172710911, 17881539570792207880, 4360725095112580487),
+UInt256(184053795725571566, 16342370028602183475, 3576307914158441576, 872145019022516098),
+UInt256(368107591451143133, 14237995983494815334, 7152615828316883152, 1744290038045032195),
+UInt256(736215182902286267, 10029247893280079052, 14305231656633766304, 3488580076090064390),
+UInt256(147243036580457253, 9384547208139836456, 17618441590294394553, 11765762459443743848),
+UInt256(294486073160914507, 322350342570121297, 16790139106879237491, 5084780845177936079),
+UInt256(588972146321829014, 644700685140242595, 15133534140048923366, 10169561690355872158),
+UInt256(1177944292643658028, 1289401370280485191, 11820324206388295117, 1892379307002192700),
+UInt256(235588858528731605, 11325926718281828007, 17121460100245300316, 4067824676142348864),
+UInt256(471177717057463211, 4205109362854104399, 15796176126781049016, 8135649352284697727),
+UInt256(942355434114926422, 8410218725708208799, 13145608179852546416, 16271298704569395453),
+UInt256(188471086822985284, 9060741374625462406, 6318470450712419606, 10632957370397699737),
+UInt256(376942173645970568, 18121482749250924812, 12636940901424839213, 2819170667085847858),
+UInt256(753884347291941137, 17796221424792298009, 6827137729140126810, 5638341334171695716),
+UInt256(150776869458388227, 10937941914442280248, 5054776360569935685, 4817017081576249467),
+UInt256(301553738916776455, 3429139755175008880, 10109552721139871370, 9634034163152498933),
+UInt256(603107477833552910, 6858279510350017761, 1772361368570191125, 821324252595446250),
+UInt256(1206214955667105820, 13716559020700035522, 3544722737140382250, 1642648505190892499),
+UInt256(241242991133421164, 2743311804140007104, 8087642176911897096, 7707227330521999147),
+UInt256(482485982266842328, 5486623608280014208, 16175284353823794192, 15414454661043998293),
+UInt256(964971964533684656, 10973247216560028417, 13903824633938036769, 12382165248378444969),
+UInt256(192994392906736931, 5883998258053916006, 13848811371013338323, 9855130679159509641),
+UInt256(385988785813473862, 11767996516107832013, 9250878668317125031, 1263517284609467665),
+UInt256(771977571626947725, 5089248958506112411, 55013262924698446, 2527034569218935329),
+UInt256(154395514325389545, 1017849791701222482, 3700351467326850012, 7884104543327607713),
+UInt256(308791028650779090, 2035699583402444964, 7400702934653700024, 15768209086655215425),
+UInt256(617582057301558180, 4071399166804889928, 14801405869307400049, 13089674099600879233),
+UInt256(1235164114603116360, 8142798333609779857, 11156067664905248483, 7732604125492206849),
+UInt256(247032822920623272, 1628559666721955971, 9609911162464870343, 1546520825098441370),
+UInt256(494065645841246544, 3257119333443911943, 773078251220189070, 3093041650196882740),
+UInt256(988131291682493088, 6514238666887823886, 1546156502440378140, 6186083300393765479),
+UInt256(197626258336498617, 12370894177603295746, 15066626559455716920, 15994611919046394389),
+UInt256(395252516672997235, 6295044281497039877, 11686509045201882225, 13542479764383237162),
+UInt256(790505033345994470, 12590088562994079755, 4926274016694212835, 8638215455056922707),
+UInt256(158101006669198894, 2518017712598815951, 985254803338842567, 1727643091011384542),
+UInt256(316202013338397788, 5036035425197631902, 1970509606677685134, 3455286182022769083),
+]
+
+private let bid_multipliers2_bid64_5: [UInt256] = [
+UInt256(632404026676795576, 10072070850395263804, 3941019213355370268, 6910572364045538166),
+UInt256(1264808053353591153, 1697397627080975992, 7882038426710740536, 13821144728091076331),
+UInt256(252961610670718230, 11407525969641926168, 1576407685342148107, 6453577760360125590),
+UInt256(505923221341436461, 4368307865574300720, 3152815370684296214, 12907155520720251179),
+UInt256(1011846442682872922, 8736615731148601440, 6305630741368592429, 7367566967730950741),
+UInt256(202369288536574584, 9126020775713540934, 8639823777757539132, 5162862208288100472),
+UInt256(404738577073149168, 18252041551427081868, 17279647555515078264, 10325724416576200943),
+UInt256(809477154146298337, 18057339029144612121, 16112551037320604913, 2204704759442850270),
+UInt256(161895430829259667, 10990165435312743070, 14290556651689851952, 4130289766630480378),
+UInt256(323790861658519335, 3533586796915934525, 10134369229670152288, 8260579533260960755),
+UInt256(647581723317038670, 7067173593831869051, 1821994385630752960, 16521159066521921509),
+UInt256(129516344663407734, 1413434718766373810, 4053747691868060915, 6993580628046294625),
+UInt256(259032689326815468, 2826869437532747620, 8107495383736121830, 13987161256092589250),
+UInt256(518065378653630936, 5653738875065495240, 16214990767472243661, 9527578438475626884),
+UInt256(1036130757307261872, 11307477750130990481, 13983237461234935707, 608412803241702152),
+UInt256(207226151461452374, 9640193179510018742, 13864693936472718111, 121682560648340431),
+UInt256(414452302922904749, 833642285310485869, 9282643799235884606, 243365121296680861),
+UInt256(828904605845809498, 1667284570620971739, 118543524762217596, 486730242593361721),
+UInt256(165780921169161899, 11401503358349925317, 7402406334436264165, 11165392492744403314),
+UInt256(331561842338323799, 4356262642990299018, 14804812668872528331, 3884040911779255012),
+UInt256(663123684676647598, 8712525285980598037, 11162881264035505046, 7768081823558510024),
+UInt256(132624736935329519, 12810551501421850577, 2232576252807101009, 5242965179453612328),
+UInt256(265249473870659039, 7174358929134149538, 4465152505614202018, 10485930358907224656),
+UInt256(530498947741318078, 14348717858268299076, 8930305011228404037, 2525116644104897696),
+UInt256(1060997895482636157, 10250691642827046536, 17860610022456808074, 5050233288209795391),
+UInt256(212199579096527231, 9428835958049229953, 14640168448717092584, 8388744287125779725),
+UInt256(424399158193054463, 410927842388908291, 10833592823724633552, 16777488574251559450),
+UInt256(848798316386108926, 821855684777816583, 3220441573739715489, 15108233074793567283),
+UInt256(169759663277221785, 3853719951697473639, 15401483573715584390, 14089693059184444427),
+UInt256(339519326554443570, 7707439903394947279, 12356223073721617165, 9732642044659337237),
+UInt256(679038653108887140, 15414879806789894559, 6265702073733682715, 1018540015609122857),
+UInt256(135807730621777428, 3082975961357978911, 16010535673714377835, 14961103262089465865),
+UInt256(271615461243554856, 6165951922715957823, 13574327273719204055, 11475462450469380113),
+UInt256(543230922487109712, 12331903845431915647, 8701910473728856495, 4504180827229208609),
+UInt256(1086461844974219425, 6217063617154279678, 17403820947457712990, 9008361654458417217),
+UInt256(217292368994843885, 1243412723430855935, 14548810633717273567, 12869718775117414413),
+UInt256(434584737989687770, 2486825446861711871, 10650877193724995519, 7292693476525277210),
+UInt256(869169475979375540, 4973650893723423743, 2855010313740439422, 14585386953050554420),
+UInt256(173833895195875108, 994730178744684748, 11639048506973818854, 2917077390610110884),
+UInt256(347667790391750216, 1989460357489369497, 4831352940238086092, 5834154781220221768),
+UInt256(695335580783500432, 3978920714978738994, 9662705880476172184, 11668309562440443536),
+UInt256(139067116156700086, 8174481772479568445, 5621889990837144760, 2333661912488088708),
+UInt256(278134232313400172, 16348963544959136890, 11243779981674289520, 4667323824976177415),
+UInt256(556268464626800345, 14251183016208722165, 4040815889639027424, 9334647649952354829),
+UInt256(1112536929253600691, 10055621958707892714, 8081631779278054849, 222551226195158041),
+UInt256(222507385850720138, 5700473206483488866, 1616326355855610969, 14801905504206672901),
+UInt256(445014771701440276, 11400946412966977732, 3232652711711221939, 11157066934703794186),
+UInt256(890029543402880553, 4355148752224403848, 6465305423422443879, 3867389795698036756),
+UInt256(178005908680576110, 11939076194670611739, 4982409899426399099, 773477959139607352),
+UInt256(356011817361152221, 5431408315631671862, 9964819798852798198, 1546955918279214703),
+]
+
+private let bid_multipliers2_bid64_6: [UInt256] = [
+UInt256(712023634722304442, 10862816631263343725, 1482895523996044780, 3093911836558429405),
+UInt256(142404726944460888, 9551260955736489391, 7675276734283029602, 7997479996795506528),
+UInt256(284809453888921777, 655777837763427166, 15350553468566059204, 15994959993591013055),
+UInt256(569618907777843554, 1311555675526854333, 12254362863422566793, 13543175913472474494),
+UInt256(1139237815555687108, 2623111351053708667, 6061981653135581971, 8639607753235397371),
+UInt256(227847563111137421, 11592668714436472703, 1212396330627116394, 5417270365388989798),
+UInt256(455695126222274843, 4738593355163393790, 2424792661254232788, 10834540730777979595),
+UInt256(911390252444549686, 9477186710326787580, 4849585322508465577, 3222337387846407574),
+UInt256(182278050488909937, 5584786156807267839, 4659265879243603438, 11712513921795012485),
+UInt256(364556100977819874, 11169572313614535678, 9318531758487206877, 4978283769880473353),
+UInt256(729112201955639749, 3892400553519519741, 190319443264862138, 9956567539760946705),
+UInt256(145822440391127949, 15535875369671545241, 38063888652972427, 13059359952177920311),
+UInt256(291644880782255899, 12625006665633538866, 76127777305944855, 7671975830646289006),
+UInt256(583289761564511799, 6803269257557526116, 152255554611889710, 15343951661292578011),
+UInt256(1166579523129023598, 13606538515115052232, 304511109223779421, 12241159248875604405),
+UInt256(233315904625804719, 13789354147248741416, 60902221844755884, 6137580664517031205),
+UInt256(466631809251609439, 9131964220787931216, 121804443689511768, 12275161329034062409),
+UInt256(933263618503218878, 18263928441575862432, 243608887379023537, 6103578584358573201),
+UInt256(186652723700643775, 14720832132540903456, 48721777475804707, 8599413346355535287),
+UInt256(373305447401287551, 10994920191372255296, 97443554951609414, 17198826692711070574),
+UInt256(746610894802575103, 3543096309034958976, 194887109903218829, 15950909311712589531),
+UInt256(149322178960515020, 11776665706032722764, 14796372680948285058, 14258228306568248876),
+UInt256(298644357921030041, 5106587338355893913, 11146001288187018501, 10069712539426946136),
+UInt256(597288715842060082, 10213174676711787827, 3845258502664485387, 1692681005144340655),
+UInt256(1194577431684120165, 1979605279714024038, 7690517005328970774, 3385362010288681309),
+UInt256(238915486336824033, 395921055942804807, 12606149845291525124, 8055770031541556909),
+UInt256(477830972673648066, 791842111885609615, 6765555616873498632, 16111540063083113817),
+UInt256(955661945347296132, 1583684223771219230, 13531111233746997265, 13776336052456676017),
+UInt256(191132389069459226, 7695434474238064492, 10084919876233220099, 10133964839975155850),
+UInt256(382264778138918452, 15390868948476128985, 1723095678756888583, 1821185606240760084),
+UInt256(764529556277836905, 12334993823242706354, 3446191357513777166, 3642371212481520168),
+UInt256(152905911255567381, 2466998764648541270, 15446633530470396726, 728474242496304034),
+UInt256(305811822511134762, 4933997529297082541, 12446522987231241836, 1456948484992608067),
+UInt256(611623645022269524, 9867995058594165083, 6446301900752932056, 2913896969985216134),
+UInt256(1223247290044539049, 1289246043478778550, 12892603801505864112, 5827793939970432268),
+UInt256(244649458008907809, 15015244467663397002, 17335916019268814115, 4854907602735996777),
+UInt256(489298916017815619, 11583744861617242389, 16225087964828076614, 9709815205471993554),
+UInt256(978597832035631239, 4720745649524933163, 14003431855946601613, 972886337234435491),
+UInt256(195719566407126247, 15701544388872627925, 10179384000673140969, 194577267446887099),
+UInt256(391439132814252495, 12956344704035704235, 1912023927636730322, 389154534893774197),
+UInt256(782878265628504991, 7465945334361856854, 3824047855273460644, 778309069787548393),
+UInt256(156575653125700998, 5182537881614281694, 764809571054692128, 14913057072925150972),
+UInt256(313151306251401996, 10365075763228563388, 1529619142109384257, 11379370072140750327),
+UInt256(626302612502803993, 2283407452747575160, 3059238284218768515, 4311996070571949038),
+UInt256(1252605225005607986, 4566814905495150320, 6118476568437537030, 8623992141143898075),
+UInt256(250521045001121597, 4602711795840940387, 4913044128429417729, 5414147242970689939),
+UInt256(501042090002243194, 9205423591681880774, 9826088256858835458, 10828294485941379877),
+UInt256(1002084180004486388, 18410847183363761549, 1205432440008119301, 3209844898173208137),
+UInt256(200416836000897277, 14750215880898483279, 7619784117485444506, 11710015423860372597),
+UInt256(400833672001794555, 11053687688087414942, 15239568234970889013, 4973286774011193578),
+]
+
+private let bid_multipliers2_bid64_7: [UInt256] = [
+UInt256(801667344003589111, 3660631302465278269, 12032392396232226410, 9946573548022387156),
+UInt256(160333468800717822, 4421475075234965977, 2406478479246445282, 1989314709604477432),
+UInt256(320666937601435644, 8842950150469931954, 4812956958492890564, 3978629419208954863),
+UInt256(641333875202871288, 17685900300939863908, 9625913916985781128, 7957258838417909725),
+UInt256(128266775040574257, 14605226504413703751, 5614531598139066548, 16348847026651223238),
+UInt256(256533550081148515, 10763708935117855886, 11229063196278133097, 14250949979592894860),
+UInt256(513067100162297031, 3080673796526160157, 4011382318846714579, 10055155885476238103),
+UInt256(1026134200324594062, 6161347593052320314, 8022764637693429159, 1663567697242924590),
+UInt256(205226840064918812, 8610967148094284709, 5293901742280596155, 332713539448584918),
+UInt256(410453680129837624, 17221934296188569418, 10587803484561192310, 665427078897169836),
+UInt256(820907360259675249, 15997124518667587221, 2728862895412833004, 1330854157794339672),
+UInt256(164181472051935049, 17956820162701158737, 545772579082566600, 15023566090526509228),
+UInt256(328362944103870099, 17466896251692765858, 1091545158165133201, 11600388107343466839),
+UInt256(656725888207740199, 16487048429675980100, 2183090316330266403, 4754032140977382061),
+UInt256(131345177641548039, 18054804944902837312, 15194013322233694573, 8329504057679297059),
+UInt256(262690355283096079, 17662865816096123009, 11941282570757837530, 16659008115358594117),
+UInt256(525380710566192159, 16878987558482694403, 5435821067806123445, 14871272157007636618),
+UInt256(1050761421132384319, 15311231043255837190, 10871642135612246891, 11295800240305721620),
+UInt256(210152284226476863, 17819641467618808730, 16931723686090090671, 2259160048061144324),
+UInt256(420304568452953727, 17192538861528065845, 15416703298470629726, 4518320096122288648),
+UInt256(840609136905907455, 15938333649346580075, 12386662523231707836, 9036640192244577296),
+UInt256(168121827381181491, 3187666729869316015, 2477332504646341567, 5496676853190825783),
+UInt256(336243654762362982, 6375333459738632030, 4954665009292683134, 10993353706381651565),
+UInt256(672487309524725964, 12750666919477264060, 9909330018585366269, 3539963339053751514),
+UInt256(134497461904945192, 17307528642863094104, 16739261262684714546, 11776039112036481273),
+UInt256(268994923809890385, 16168313212016636593, 15031778451659877477, 5105334150363410929),
+UInt256(537989847619780771, 13889882350323721571, 11616812829610203338, 10210668300726821858),
+UInt256(1075979695239561543, 9333020626937891527, 4786881585510855061, 1974592527744092099),
+UInt256(215195939047912308, 12934650569613309275, 957376317102171012, 4084267320290728743),
+UInt256(430391878095824617, 7422557065517066934, 1914752634204342024, 8168534640581457486),
+UInt256(860783756191649234, 14845114131034133868, 3829505268408684048, 16337069281162914972),
+UInt256(172156751238329846, 17726418085174468066, 8144598683165557456, 3267413856232582995),
+UInt256(344313502476659693, 17006092096639384516, 16289197366331114912, 6534827712465165989),
+UInt256(688627004953319387, 15565440119569217417, 14131650658952678208, 13069655424930331978),
+UInt256(137725400990663877, 10491785653397664129, 17583725390758176934, 9992628714469887042),
+UInt256(275450801981327755, 2536827233085776643, 16720706707806802253, 1538513355230222468),
+UInt256(550901603962655510, 5073654466171553287, 14994669341904052890, 3077026710460444936),
+UInt256(1101803207925311020, 10147308932343106575, 11542594610098554164, 6154053420920889871),
+UInt256(220360641585062204, 2029461786468621315, 2308518922019710832, 15988205943151819267),
+UInt256(440721283170124408, 4058923572937242630, 4617037844039421665, 13529667812594086918),
+UInt256(881442566340248816, 8117847145874485260, 9234075688078843331, 8612591551478622220),
+UInt256(176288513268049763, 5312918243916807375, 5536163952357678989, 9101215939779545091),
+UInt256(352577026536099526, 10625836487833614750, 11072327904715357978, 18202431879559090181),
+UInt256(705154053072199053, 2804928901957677885, 3697911735721164341, 17958119685408628746),
+UInt256(141030810614439810, 11629032224617266546, 11807628791369963837, 18349019196049367042),
+UInt256(282061621228879621, 4811320375524981477, 5168513509030376059, 18251294318389182468),
+UInt256(564123242457759242, 9622640751049962954, 10337027018060752119, 18055844563068813320),
+UInt256(1128246484915518485, 798537428390374293, 2227309962411952623, 17664945052428075024),
+UInt256(225649296983103697, 159707485678074858, 11513508436708121494, 7222337825227525328),
+UInt256(451298593966207394, 319414971356149717, 4580272799706691372, 14444675650455050656),
+]
+
+private let bid_multipliers2_bid64_8: [UInt256] = [
+UInt256(902597187932414788, 638829942712299434, 9160545599413382745, 10442607227200549696),
+UInt256(180519437586482957, 11195812432768190856, 9210806749366497195, 9467219074923930586),
+UInt256(361038875172965915, 3944880791826830096, 18421613498732994391, 487694076138309555),
+UInt256(722077750345931830, 7889761583653660193, 18396482923756437166, 975388152276619110),
+UInt256(144415550069186366, 1577952316730732038, 14747343028977018402, 14952472889422965115),
+UInt256(288831100138372732, 3155904633461464077, 11047941984244485189, 11458201705136378614),
+UInt256(577662200276745464, 6311809266922928155, 3649139894779418763, 4469659336563205612),
+UInt256(1155324400553490928, 12623618533845856310, 7298279789558837526, 8939318673126411223),
+UInt256(231064880110698185, 13592770150994902231, 12527702402137498474, 16545258993592923538),
+UInt256(462129760221396371, 8738796228280252847, 6608660730565445333, 14643773913476295459),
+UInt256(924259520442792742, 17477592456560505694, 13217321461130890667, 10840803753243039301),
+UInt256(184851904088558548, 10874216120795921785, 6332813106968088456, 13236207194874338830),
+UInt256(369703808177117097, 3301688167882291954, 12665626213936176913, 8025670316039126044),
+UInt256(739407616354234194, 6603376335764583909, 6884508354162802210, 16051340632078252088),
+UInt256(147881523270846838, 16078070526120558074, 12444948115058291411, 14278314570641381388),
+UInt256(295763046541693677, 13709396978531564533, 6443152156407031207, 10109885067573211159),
+UInt256(591526093083387355, 8972049883353577450, 12886304312814062415, 1773026061436870701),
+UInt256(1183052186166774710, 17944099766707154901, 7325864551918573214, 3546052122873741401),
+UInt256(236610437233354942, 3588819953341430980, 5154521725125624966, 709210424574748281),
+UInt256(473220874466709884, 7177639906682861960, 10309043450251249932, 1418420849149496561),
+UInt256(946441748933419768, 14355279813365723921, 2171342826792948248, 2836841698298993121),
+UInt256(189288349786683953, 13939102406898875753, 15191663824326230942, 7946065969143619271),
+UInt256(378576699573367907, 9431460740088199891, 11936583574942910268, 15892131938287238541),
+UInt256(757153399146735815, 416177406466848167, 5426423076176268921, 13337519802864925466),
+UInt256(151430679829347163, 83235481293369633, 8463982244719074430, 13735550404798716063),
+UInt256(302861359658694326, 166470962586739266, 16927964489438148861, 9024356735887880510),
+UInt256(605722719317388652, 332941925173478533, 15409184905166746106, 18048713471775761019),
+UInt256(1211445438634777304, 665883850346957067, 12371625736623940597, 17650682869841970422),
+UInt256(242289087726955460, 14890572029037032706, 6163673962066698442, 14598183018194125054),
+UInt256(484578175453910921, 11334399984364513796, 12327347924133396885, 10749621962678698492),
+UInt256(969156350907821843, 4222055895019475977, 6207951774557242155, 3052499851647845368),
+UInt256(193831270181564368, 11912457623229626165, 1241590354911448431, 610499970329569074),
+UInt256(387662540363128737, 5378171172749700714, 2483180709822896862, 1220999940659138148),
+UInt256(775325080726257474, 10756342345499401428, 4966361419645793724, 2441999881318276295),
+UInt256(155065016145251494, 16908663728067521578, 8371969913412979391, 4177748791005565583),
+UInt256(310130032290502989, 15370583382425491540, 16743939826825958782, 8355497582011131165),
+UInt256(620260064581005979, 12294422691141431465, 15041135579942365948, 16710995164022262329),
+UInt256(1240520129162011959, 6142101308573311315, 11635527086175180281, 14975246254334973041),
+UInt256(248104025832402391, 15985815520682303555, 17084500676202677349, 2995049250866994609),
+UInt256(496208051664804783, 13524886967655055495, 15722257278695803082, 5990098501733989217),
+UInt256(992416103329609567, 8603029861600559375, 12997770483682054548, 11980197003467978433),
+UInt256(198483220665921913, 9099303601803932521, 9978251726220231556, 2396039400693595687),
+UInt256(396966441331843826, 18198607203607865043, 1509759378730911496, 4792078801387191373),
+UInt256(793932882663687653, 17950470333506178470, 3019518757461822992, 9584157602774382746),
+UInt256(158786576532737530, 14658140510926966663, 11671950195718095568, 1916831520554876550),
+UInt256(317573153065475061, 10869536948144381711, 4897156317726639520, 3833663041109753099),
+UInt256(635146306130950123, 3292329822579211806, 9794312635453279040, 7667326082219506197),
+UInt256(1270292612261900246, 6584659645158423613, 1141881197197006464, 15334652164439012394),
+UInt256(254058522452380049, 5006280743773595045, 14985771498407042585, 14134976877113533449),
+UInt256(508117044904760098, 10012561487547190091, 11524798923104533555, 9823209680517515281),
+]
+
+private let bid_multipliers2_bid64_9: [UInt256] = [
+UInt256(1016234089809520197, 1578378901384828567, 4602853772499515495, 1199675287325478946),
+UInt256(203246817961904039, 7694373409760786359, 15677966013467544391, 14997330316432737082),
+UInt256(406493635923808078, 15388746819521572719, 12909187953225537167, 11547916559155922548),
+UInt256(812987271847616157, 12330749565333593823, 7371631832741522719, 4649089044602293480),
+UInt256(162597454369523231, 9844847542550539411, 1474326366548304543, 15687213067888099989),
+UInt256(325194908739046463, 1242951011391527206, 2948652733096609087, 12927682062066648362),
+UInt256(650389817478092926, 2485902022783054412, 5897305466193218175, 7408620050423745107),
+UInt256(130077963495618585, 4186529219298521205, 12247507537464374604, 12549770454310479991),
+UInt256(260155926991237170, 8373058438597042411, 6048271001219197593, 6652796834911408366),
+UInt256(520311853982474340, 16746116877194084822, 12096542002438395186, 13305593669822816732),
+UInt256(1040623707964948681, 15045489680678618029, 5746339931167238757, 8164443265936081848),
+UInt256(208124741592989736, 6698446750877633929, 1149267986233447751, 9011586282671037016),
+UInt256(416249483185979472, 13396893501755267858, 2298535972466895502, 18023172565342074032),
+UInt256(832498966371958945, 8347042929800984100, 4597071944933791005, 17599601056974596448),
+UInt256(166499793274391789, 1669408585960196820, 919414388986758201, 3519920211394919290),
+UInt256(332999586548783578, 3338817171920393640, 1838828777973516402, 7039840422789838580),
+UInt256(665999173097567156, 6677634343840787280, 3677657555947032804, 14079680845579677159),
+UInt256(133199834619513431, 5024875683510067779, 4424880325931316884, 2815936169115935432),
+UInt256(266399669239026862, 10049751367020135558, 8849760651862633768, 5631872338231870864),
+UInt256(532799338478053725, 1652758660330719500, 17699521303725267536, 11263744676463741727),
+UInt256(1065598676956107450, 3305517320661439001, 16952298533740983457, 4080745279217931837),
+UInt256(213119735391221490, 661103464132287800, 7079808521490107014, 11884195500069317337),
+UInt256(426239470782442980, 1322206928264575600, 14159617042980214029, 5321646926429083058),
+UInt256(852478941564885960, 2644413856529151201, 9872490012250876442, 10643293852858166116),
+UInt256(170495788312977192, 528882771305830240, 5663846817192085611, 13196705214797364193),
+UInt256(340991576625954384, 1057765542611660480, 11327693634384171223, 7946666355885176770),
+UInt256(681983153251908768, 2115531085223320961, 4208643195058790830, 15893332711770353540),
+UInt256(136396630650381753, 11491152661270395161, 15599123897979399458, 17936061801321712001),
+UInt256(272793261300763507, 4535561248831238707, 12751503722249247301, 17425379528933872386),
+UInt256(545586522601527014, 9071122497662477415, 7056263370788942987, 16404014984158193155),
+UInt256(1091173045203054028, 18142244995324954830, 14112526741577885975, 14361285894606834694),
+UInt256(218234609040610805, 14696495443290721935, 13890551792541308164, 13940303623147097909),
+UInt256(436469218081221611, 10946246812871892255, 9334359511373064713, 9433863172584644201),
+UInt256(872938436162443223, 3445749552034232895, 221974949036577811, 420982271459736785),
+UInt256(174587687232488644, 11757196354632577548, 11112441434033046531, 14841591713259588650),
+UInt256(349175374464977289, 5067648635555603481, 3778138794356541447, 11236439352809625684),
+UInt256(698350748929954578, 10135297271111206962, 7556277588713082895, 4026134631909699752),
+UInt256(139670149785990915, 13095105898447972362, 1511255517742616579, 805226926381939951),
+UInt256(279340299571981831, 7743467723186393108, 3022511035485233158, 1610453852763879901),
+UInt256(558680599143963662, 15486935446372786216, 6045022070970466316, 3220907705527759801),
+UInt256(1117361198287927325, 12527126819036020816, 12090044141940932632, 6441815411055519602),
+UInt256(223472239657585465, 2505425363807204163, 6107357643130096849, 12356409526436834890),
+UInt256(446944479315170930, 5010850727614408326, 12214715286260193699, 6266074979164118164),
+UInt256(893888958630341860, 10021701455228816653, 5982686498810835782, 12532149958328236328),
+UInt256(178777791726068372, 2004340291045763330, 12264583743987898126, 2506429991665647266),
+UInt256(357555583452136744, 4008680582091526661, 6082423414266244636, 5012859983331294532),
+UInt256(715111166904273488, 8017361164183053322, 12164846828532489272, 10025719966662589063),
+UInt256(143022233380854697, 12671518677062341634, 2432969365706497854, 9383841622816338459),
+UInt256(286044466761709395, 6896293280415131652, 4865938731412995709, 320939171923125302),
+UInt256(572088933523418790, 13792586560830263304, 9731877462825991418, 641878343846250604),
+]
+
+private let bid_multipliers2_bid64_10: [UInt256] = [
+UInt256(1144177867046837581, 9138429047950974993, 1017010851942431220, 1283756687692501207),
+UInt256(228835573409367516, 5517034624332105321, 14960797429356127536, 15014146596506141535),
+UInt256(457671146818735032, 11034069248664210643, 11474850785002703457, 11581549119302731453),
+UInt256(915342293637470065, 3621394423618869671, 4502957496295855299, 4716354164895911289),
+UInt256(183068458727494013, 724278884723773934, 4589940314001081383, 943270832979182258),
+UInt256(366136917454988026, 1448557769447547868, 9179880628002162766, 1886541665958364516),
+UInt256(732273834909976052, 2897115538895095736, 18359761256004325532, 3773083331916729031),
+UInt256(146454766981995210, 7958120737262839793, 14739998695426596076, 754616666383345807),
+UInt256(292909533963990420, 15916241474525679587, 11033253317143640536, 1509233332766691613),
+UInt256(585819067927980841, 13385738875341807559, 3619762560577729456, 3018466665533383225),
+UInt256(1171638135855961683, 8324733676974063502, 7239525121155458912, 6036933331066766450),
+UInt256(234327627171192336, 12732993179620543670, 1447905024231091782, 8586084295697173937),
+UInt256(468655254342384673, 7019242285531535724, 2895810048462183564, 17172168591394347873),
+UInt256(937310508684769346, 14038484571063071448, 5791620096924367129, 15897593109079144130),
+UInt256(187462101736953869, 6497045728954524612, 15915719278352514718, 14247565066041559796),
+UInt256(374924203473907738, 12994091457909049225, 13384694482995477821, 10048386058373567975),
+UInt256(749848406947815477, 7541438842108546835, 8322644892281404027, 1650028043037584334),
+UInt256(149969681389563095, 8886985397905530013, 9043226607940101451, 15087400867575158160),
+UInt256(299939362779126190, 17773970795811060026, 18086453215880202903, 11728057661440764704),
+UInt256(599878725558252381, 17101197517912568437, 17726162358050854191, 5009371249171977791),
+UInt256(1199757451116504763, 15755650962115585259, 17005580642392156766, 10018742498343955581),
+UInt256(239951490223300952, 14219176636648848021, 10779813757962251999, 13071794943894522086),
+UInt256(479902980446601905, 9991609199588144427, 3112883442214952383, 7696845814079492556),
+UInt256(959805960893203811, 1536474325466737238, 6225766884429904766, 15393691628158985111),
+UInt256(191961192178640762, 3996643679835257770, 16002548635853622246, 3078738325631797023),
+UInt256(383922384357281524, 7993287359670515541, 13558353197997692876, 6157476651263594045),
+UInt256(767844768714563048, 15986574719341031083, 8669962322285834136, 12314953302527188089),
+UInt256(153568953742912609, 14265361388093937186, 5423341279199077150, 9841688289989258265),
+UInt256(307137907485825219, 10083978702478322756, 10846682558398154301, 1236632506268964913),
+UInt256(614275814971650439, 1721213331247093897, 3246621043086756986, 2473265012537929825),
+UInt256(1228551629943300878, 3442426662494187794, 6493242086173513972, 4946530025075859649),
+UInt256(245710325988660175, 11756531776724568528, 8677346046718523440, 15746701263982813223),
+UInt256(491420651977320351, 5066319479739585440, 17354692093437046881, 13046658454256074830),
+UInt256(982841303954640702, 10132638959479170881, 16262640113164542147, 7646572834802598043),
+UInt256(196568260790928140, 9405225421379654822, 14320574466858639399, 1529314566960519609),
+UInt256(393136521581856281, 363706769049758029, 10194404860007727182, 3058629133921039217),
+UInt256(786273043163712562, 727413538099516059, 1942065646305902748, 6117258267842078434),
+UInt256(157254608632742512, 7524180337103723858, 4077761944003090872, 15980846912536056980),
+UInt256(314509217265485024, 15048360674207447716, 8155523888006181745, 13514949751362562344),
+UInt256(629018434530970049, 11649977274705343816, 16311047776012363491, 8583155429015573071),
+UInt256(1258036869061940099, 4853210475701136017, 14175351478315175366, 17166310858031146141),
+UInt256(251607373812388019, 15728037354107868496, 6524419110404945396, 10811959801090049875),
+UInt256(503214747624776039, 13009330634506185376, 13048838220809890793, 3177175528470548134),
+UInt256(1006429495249552079, 7571917195302819137, 7650932367910229970, 6354351056941096267),
+UInt256(201285899049910415, 16271778698028205120, 5219535288323956317, 4960219026130129577),
+UInt256(402571798099820831, 14096813322346858624, 10439070576647912634, 9920438052260259153),
+UInt256(805143596199641663, 9746882570984165633, 2431397079586273653, 1394132030810966690),
+UInt256(161028719239928332, 13017422958422564096, 4175628230659165053, 15036221665129834631),
+UInt256(322057438479856665, 7588101843135576576, 8351256461318330107, 11625699256550117646),
+UInt256(644114876959713330, 15176203686271153152, 16702512922636660215, 4804654439390683675),
+]
+
+private let bid_multipliers2_bid64_11: [UInt256] = [
+UInt256(128822975391942666, 3035240737254230630, 10719200214011152689, 8339628517361957382),
+UInt256(257645950783885332, 6070481474508461261, 2991656354312753762, 16679257034723914763),
+UInt256(515291901567770664, 12140962949016922522, 5983312708625507525, 14911769995738277910),
+UInt256(1030583803135541329, 5835181824324293428, 11966625417251015051, 11376795917767004204),
+UInt256(206116760627108265, 15924431623832499978, 9772022712934023656, 13343405627779131811),
+UInt256(412233521254216531, 13402119173955448341, 1097301352158495697, 8240067181848712005),
+UInt256(824467042508433063, 8357494274201345066, 2194602704316991394, 16480134363697424009),
+UInt256(164893408501686612, 12739545299065999982, 15196315799831039571, 14364073316965215772),
+UInt256(329786817003373225, 7032346524422448349, 11945887525952527527, 10281402560220879927),
+UInt256(659573634006746450, 14064693048844896699, 5445030978195503439, 2116061046732208238),
+UInt256(131914726801349290, 2812938609768979339, 15846401454606741980, 11491258653572172618),
+UInt256(263829453602698580, 5625877219537958679, 13246058835503932345, 4535773233434793619),
+UInt256(527658907205397160, 11251754439075917359, 8045373597298313074, 9071546466869587237),
+UInt256(1055317814410794321, 4056764804442283102, 16090747194596626148, 18143092933739174473),
+UInt256(211063562882158864, 4500701775630366943, 14286195883145056199, 7317967401489745218),
+UInt256(422127125764317728, 9001403551260733887, 10125647692580560782, 14635934802979490436),
+UInt256(844254251528635456, 18002807102521467775, 1804551311451569949, 10825125532249429255),
+UInt256(168850850305727091, 7289910235246203878, 4050259077032224313, 2165025106449885851),
+UInt256(337701700611454182, 14579820470492407756, 8100518154064448626, 4330050212899771702),
+UInt256(675403401222908365, 10712896867275263896, 16201036308128897252, 8660100425799543404),
+UInt256(135080680244581673, 2142579373455052779, 6929556076367689773, 12800066529385639651),
+UInt256(270161360489163346, 4285158746910105558, 13859112152735379547, 7153388985061727685),
+UInt256(540322720978326692, 8570317493820211117, 9271480231761207478, 14306777970123455370),
+UInt256(1080645441956653384, 17140634987640422235, 96216389812863341, 10166811866537359124),
+UInt256(216129088391330676, 18185522256495725739, 14776638536930213961, 2033362373307471825),
+UInt256(432258176782661353, 17924300439281899863, 11106533000150876306, 4066724746614943650),
+UInt256(864516353565322707, 17401856804854248111, 3766321926592200996, 8133449493229887299),
+UInt256(172903270713064541, 10859068990454670268, 11821310829544171168, 16384085157613618753),
+UInt256(345806541426129083, 3271393907199788921, 5195877585378790721, 14321426241517685890),
+UInt256(691613082852258166, 6542787814399577842, 10391755170757581443, 10196108409325820163),
+UInt256(138322616570451633, 4997906377621825891, 13146397478377247258, 5728570496607074356),
+UInt256(276645233140903266, 9995812755243651783, 7846050883044942900, 11457140993214148712),
+UInt256(553290466281806533, 1544881436777751950, 15692101766089885801, 4467537912718745807),
+UInt256(1106580932563613066, 3089762873555503901, 12937459458470219986, 8935075825437491613),
+UInt256(221316186512722613, 4307301389453011103, 9966189521177864643, 12855061609313229293),
+UInt256(442632373025445226, 8614602778906022207, 1485634968646177671, 7263379144916906969),
+UInt256(885264746050890452, 17229205557812044414, 2971269937292355342, 14526758289833813937),
+UInt256(177052949210178090, 10824538741046229529, 4283602802200381391, 13973398102192493757),
+UInt256(354105898420356181, 3202333408382907442, 8567205604400762783, 9500052130675435898),
+UInt256(708211796840712362, 6404666816765814884, 17134411208801525567, 553360187641320180),
+UInt256(141642359368142472, 8659630992836983623, 7116231056502215436, 11178718481753995006),
+UInt256(283284718736284944, 17319261985673967246, 14232462113004430873, 3910692889798438396),
+UInt256(566569437472569889, 16191779897638382877, 10018180152299310130, 7821385779596876791),
+UInt256(1133138874945139779, 13936815721567214139, 1589616230889068644, 15642771559193753581),
+UInt256(226627774989027955, 17544758403281084120, 11385969690403544698, 10507251941322571363),
+UInt256(453255549978055911, 16642772732852616625, 4325195307097537781, 2567759808935591109),
+UInt256(906511099956111823, 14838801391995681634, 8650390614195075562, 5135519617871182218),
+UInt256(181302219991222364, 14035806722624867296, 9108775752322835758, 15784499182541877737),
+UInt256(362604439982444729, 9624869371540182976, 18217551504645671517, 13122254291374203857),
+UInt256(725208879964889459, 802994669370814337, 17988358935581791419, 7797764509038856098),
+]
+
+private let bid_multipliers2_bid64_12: [UInt256] = [
+UInt256(145041775992977891, 14917994192841804160, 7287020601858268607, 1559552901807771220),
+UInt256(290083551985955783, 11389244311974056704, 14574041203716537214, 3119105803615542440),
+UInt256(580167103971911567, 4331744550238561793, 10701338333723522812, 6238211607231084879),
+UInt256(1160334207943823134, 8663489100477123587, 2955932593737494008, 12476423214462169757),
+UInt256(232066841588764626, 16490093079063066010, 4280535333489409124, 17252679901860075245),
+UInt256(464133683177529253, 14533442084416580404, 8561070666978818249, 16058615730010598873),
+UInt256(928267366355058507, 10620140095123609192, 17122141333957636499, 13670487386311646129),
+UInt256(185653473271011701, 9502725648508542484, 18181823525759168592, 13802143921488060196),
+UInt256(371306946542023403, 558707223307533353, 17916902977808785569, 9157543769266568775),
+UInt256(742613893084046806, 1117414446615066707, 17387061881908019522, 18315087538533137549),
+UInt256(148522778616809361, 3912831704064923664, 14545458820607334874, 3663017507706627510),
+UInt256(297045557233618722, 7825663408129847329, 10644173567505118132, 7326035015413255020),
+UInt256(594091114467237444, 15651326816259694659, 2841603061300684648, 14652070030826510040),
+UInt256(1188182228934474889, 12855909558809837702, 5683206122601369297, 10857395987943468463),
+UInt256(237636445786894977, 17328577170729608833, 4825990039262184182, 13239525641814424663),
+UInt256(475272891573789955, 16210410267749666050, 9651980078524368365, 8032307209919297709),
+UInt256(950545783147579911, 13974076461789780485, 857216083339185114, 16064614419838595417),
+UInt256(190109156629515982, 6484164107099866420, 3860792031409747346, 3212922883967719084),
+UInt256(380218313259031964, 12968328214199732840, 7721584062819494692, 6425845767935438167),
+UInt256(760436626518063929, 7489912354689914064, 15443168125638989384, 12851691535870876333),
+UInt256(152087325303612785, 16255377729905624105, 14156680069353528846, 9949035936657995913),
+UInt256(304174650607225571, 14064011386101696595, 9866616064997506077, 1451327799606440210),
+UInt256(608349301214451143, 9681278698493841575, 1286488056285460538, 2902655599212880420),
+UInt256(1216698602428902287, 915813323278131534, 2572976112570921076, 5805311198425760840),
+UInt256(243339720485780457, 7561860294139446953, 4203944037256094538, 8539759869168972815),
+UInt256(486679440971560914, 15123720588278893906, 8407888074512189076, 17079519738337945629),
+UInt256(973358881943121829, 11800697102848236196, 16815776149024378153, 15712295402966339642),
+UInt256(194671776388624365, 17117534679537288532, 3363155229804875630, 14210505524818998898),
+UInt256(389343552777248731, 15788325285365025448, 6726310459609751261, 9974266975928446180),
+UInt256(778687105554497463, 13129906497020499280, 13452620919219502523, 1501789878147340744),
+UInt256(155737421110899492, 13694027743629830825, 13758570628069631474, 3989706790371378472),
+UInt256(311474842221798985, 8941311413550110035, 9070397182429711332, 7979413580742756944),
+UInt256(622949684443597970, 17882622827100220070, 18140794364859422664, 15958827161485513888),
+UInt256(1245899368887195941, 17318501580490888525, 17834844656009293713, 13470910249261476160),
+UInt256(249179873777439188, 7153049130840088028, 7256317745943769065, 17451577308819936525),
+UInt256(498359747554878376, 14306098261680176056, 14512635491887538131, 16456410543930321434),
+UInt256(996719495109756753, 10165452449650800497, 10578526910065524647, 14466077014151091251),
+UInt256(199343899021951350, 13101136934155891069, 2115705382013104929, 10271913032314038897),
+UInt256(398687798043902701, 7755529794602230522, 4231410764026209859, 2097081990918526178),
+UInt256(797375596087805402, 15511059589204461044, 8462821528052419718, 4194163981837052355),
+UInt256(159475119217561080, 10480909547324712855, 5381913120352394266, 15596228055335051764),
+UInt256(318950238435122161, 2515075020939874094, 10763826240704788533, 12745712036960551912),
+UInt256(637900476870244322, 5030150041879748189, 3080908407700025451, 7044680000211552207),
+UInt256(1275800953740488644, 10060300083759496378, 6161816815400050902, 14089360000423104413),
+UInt256(255160190748097728, 16769455275719540568, 8611060992563830826, 17575267259052262176),
+UInt256(510320381496195457, 15092166477729529520, 17222121985127661653, 16703790444394972735),
+UInt256(1020640762992390915, 11737588881749507425, 15997499896545771691, 14960836815080393854),
+UInt256(204128152598478183, 2347517776349901485, 3199499979309154338, 6681516177757989094),
+UInt256(408256305196956366, 4695035552699802970, 6398999958618308676, 13363032355515978188),
+UInt256(816512610393912732, 9390071105399605940, 12797999917236617353, 8279320637322404760),
+]
+
+private let bid_multipliers2_bid64_13: [UInt256] = [
+UInt256(163302522078782546, 9256711850563741834, 9938297612931144117, 1655864127464480952),
+UInt256(326605044157565093, 66679627417932053, 1429851152152736618, 3311728254928961904),
+UInt256(653210088315130186, 133359254835864106, 2859702304305473236, 6623456509857923808),
+UInt256(130642017663026037, 3716020665709083144, 7950638090344915293, 12392737746197315732),
+UInt256(261284035326052074, 7432041331418166288, 15901276180689830587, 6338731418685079847),
+UInt256(522568070652104148, 14864082662836332577, 13355808287670109558, 12677462837370159693),
+UInt256(1045136141304208297, 11281421251963113539, 8264872501630667501, 6908181601030767770),
+UInt256(209027228260841659, 9634981879876443354, 5342323315068043823, 8760333949689974201),
+UInt256(418054456521683319, 823219686043335092, 10684646630136087646, 17520667899379948401),
+UInt256(836108913043366638, 1646439372086670185, 2922549186562623677, 16594591725050345185),
+UInt256(167221782608673327, 11397334318643065006, 11652556281538255705, 3318918345010069037),
+UInt256(334443565217346655, 4347924563576578397, 4858368489366959794, 6637836690020138074),
+UInt256(668887130434693310, 8695849127153156794, 9716736978733919588, 13275673380040276148),
+UInt256(133777426086938662, 1739169825430631358, 16700742654714425210, 10033832305491875876),
+UInt256(267554852173877324, 3478339650861262717, 14954741235719298805, 1620920537274200136),
+UInt256(535109704347754648, 6956679301722525435, 11462738397729045994, 3241841074548400272),
+UInt256(1070219408695509296, 13913358603445050871, 4478732721748540372, 6483682149096800544),
+UInt256(214043881739101859, 6472020535430920497, 8274444173833528720, 16054131688787001402),
+UInt256(428087763478203718, 12944041070861840994, 16548888347667057441, 13661519303864451188),
+UInt256(856175526956407437, 7441338068014130373, 14651032621624563267, 8876294534019350759),
+UInt256(171235105391281487, 8866965243086646721, 2930206524324912653, 9153956536287690799),
+UInt256(342470210782562974, 17733930486173293442, 5860413048649825306, 18307913072575381597),
+UInt256(684940421565125949, 17021116898637035268, 11720826097299650613, 18169082071441211577),
+UInt256(136988084313025189, 18161618638695048346, 9722862848943750769, 3633816414288242316),
+UInt256(273976168626050379, 17876493203680545077, 998981624177949922, 7267632828576484631),
+UInt256(547952337252100759, 17306242333651538538, 1997963248355899844, 14535265657152969262),
+UInt256(1095904674504201519, 16165740593593525460, 3995926496711799689, 10623787240596386907),
+UInt256(219180934900840303, 17990543377686346384, 15556580558310001230, 13192803892345008351),
+UInt256(438361869801680607, 17534342681663141153, 12666417042910450845, 7938863710980465086),
+UInt256(876723739603361215, 16621941289616730691, 6886090012111350074, 15877727421960930172),
+UInt256(175344747920672243, 3324388257923346138, 5066566817164180338, 3175545484392186035),
+UInt256(350689495841344486, 6648776515846692276, 10133133634328360676, 6351090968784372069),
+UInt256(701378991682688972, 13297553031693384553, 1819523194947169736, 12702181937568744137),
+UInt256(140275798336537794, 10038208235822497557, 363904638989433947, 6229785202255659151),
+UInt256(280551596673075589, 1629672397935443498, 727809277978867894, 12459570404511318302),
+UInt256(561103193346151178, 3259344795870886996, 1455618555957735789, 6472396735313084987),
+UInt256(1122206386692302356, 6518689591741773992, 2911237111915471578, 12944793470626169973),
+UInt256(224441277338460471, 4993086733090265121, 11650293866608825285, 6278307508867144318),
+UInt256(448882554676920942, 9986173466180530243, 4853843659508098954, 12556615017734288636),
+UInt256(897765109353841885, 1525602858651508870, 9707687319016197909, 6666485961759025656),
+UInt256(179553021870768377, 305120571730301774, 1941537463803239581, 16090692451319446424),
+UInt256(359106043741536754, 610241143460603548, 3883074927606479163, 13734640828929341232),
+UInt256(718212087483073508, 1220482286921207096, 7766149855212958327, 9022537584149130848),
+UInt256(143642417496614701, 11312142901609972388, 16310625230010232958, 5493856331571736493),
+UInt256(287284834993229403, 4177541729510393161, 14174506386310914300, 10987712663143472986),
+UInt256(574569669986458806, 8355083459020786323, 9902268698912276985, 3528681252577394355),
+UInt256(1149139339972917612, 16710166918041572647, 1357793324115002354, 7057362505154788710),
+UInt256(229827867994583522, 10720731013092135175, 15028953923790641763, 12479518945256688712),
+UInt256(459655735989167045, 2994717952474718735, 11611163773871731911, 6512293816803825807),
+UInt256(919311471978334090, 5989435904949437471, 4775583474033912206, 13024587633607651614),
+]
+
+private let bid_multipliers2_bid64_14: [UInt256] = [
+UInt256(183862294395666818, 1197887180989887494, 4644465509548692764, 9983615156205350970),
+UInt256(367724588791333636, 2395774361979774988, 9288931019097385529, 1520486238701150323),
+UInt256(735449177582667272, 4791548723959549977, 131117964485219442, 3040972477402300645),
+UInt256(147089835516533454, 8337007374275730641, 14783618851864685181, 4297543310222370453),
+UInt256(294179671033066908, 16674014748551461283, 11120493630019818746, 8595086620444740905),
+UInt256(588359342066133817, 14901285423393370951, 3794243186330085876, 17190173240889481809),
+UInt256(1176718684132267635, 11355826773077190286, 7588486372660171753, 15933602408069412001),
+UInt256(235343736826453527, 2271165354615438057, 5207046089273944673, 17944115740581523693),
+UInt256(470687473652907054, 4542330709230876114, 10414092178547889347, 17441487407453495770),
+UInt256(941374947305814108, 9084661418461752229, 2381440283386227079, 16436230741197439924),
+UInt256(188274989461162821, 12884978727918081415, 7854985686161066062, 6976594962981398308),
+UInt256(376549978922325643, 7323213382126611214, 15709971372322132124, 13953189925962796616),
+UInt256(753099957844651286, 14646426764253222429, 12973198670934712633, 9459635778216041616),
+UInt256(150619991568930257, 6618634167592554809, 2594639734186942526, 12959973599868939293),
+UInt256(301239983137860514, 13237268335185109618, 5189279468373885053, 7473203126028326970),
+UInt256(602479966275721029, 8027792596660667620, 10378558936747770106, 14946406252056653940),
+UInt256(1204959932551442058, 16055585193321335241, 2310373799785988597, 11446068430403756263),
+UInt256(240991986510288411, 14279163482889998017, 15219470018924839012, 5978562500822661576),
+UInt256(481983973020576823, 10111582892070444419, 11992195964140126408, 11957125001645323152),
+UInt256(963967946041153647, 1776421710431337223, 5537647854570701201, 5467505929581094687),
+UInt256(192793589208230729, 7733981971570088091, 1107529570914140240, 4782850000658129261),
+UInt256(385587178416461458, 15467963943140176182, 2215059141828280480, 9565700001316258522),
+UInt256(771174356832922917, 12489183812570800748, 4430118283656560961, 684655928922965427),
+UInt256(154234871366584583, 9876534391997980796, 886023656731312192, 3826280000526503409),
+UInt256(308469742733169167, 1306324710286409976, 1772047313462624384, 7652560001053006817),
+UInt256(616939485466338334, 2612649420572819952, 3544094626925248768, 15305120002106013634),
+UInt256(1233878970932676668, 5225298841145639904, 7088189253850497537, 12163495930502475652),
+UInt256(246775794186535333, 12113106212454858950, 8796335480253920153, 17190094445068136424),
+UInt256(493551588373070667, 5779468351200166284, 17592670960507840307, 15933444816426721231),
+UInt256(987103176746141334, 11558936702400332569, 16738597847306128999, 13420145559143890845),
+UInt256(197420635349228266, 17069182599447707806, 14415766013686956769, 10062726741312598816),
+UInt256(394841270698456533, 15691621125185863997, 10384787953664361923, 1678709408915646015),
+UInt256(789682541396913067, 12936498176662176379, 2322831833619172230, 3357418817831292030),
+UInt256(157936508279382613, 9965997264816255922, 4153915181465744769, 4360832578308168730),
+UInt256(315873016558765227, 1485250455922960228, 8307830362931489538, 8721665156616337459),
+UInt256(631746033117530454, 2970500911845920456, 16615660725862979076, 17443330313232674917),
+UInt256(1263492066235060908, 5941001823691840913, 14784577378016406537, 16439916552755798217),
+UInt256(252698413247012181, 12256246808964099152, 6646264290345191630, 14356029754776890613),
+UInt256(505396826494024363, 6065749544218646688, 13292528580690383261, 10265315435844229610),
+UInt256(1010793652988048726, 12131499088437293377, 8138313087671214907, 2083886797978907604),
+UInt256(202158730597609745, 6115648632429368998, 12695709061759973951, 416777359595781521),
+UInt256(404317461195219490, 12231297264858737997, 6944674049810396286, 833554719191563042),
+UInt256(808634922390438981, 6015850456007924378, 13889348099620792572, 1667109438383126083),
+UInt256(161726984478087796, 4892518905943495198, 17535264878891799807, 4022770702418535540),
+UInt256(323453968956175592, 9785037811886990397, 16623785684074047998, 8045541404837071080),
+UInt256(646907937912351185, 1123331550064429179, 14800827294438544380, 16091082809674142159),
+UInt256(129381587582470237, 224666310012885835, 17717560717855350168, 17975611820902469725),
+UInt256(258763175164940474, 449332620025771671, 16988377362001148721, 17504479568095387834),
+UInt256(517526350329880948, 898665240051543343, 15530010650292745827, 16562215062481224051),
+UInt256(1035052700659761896, 1797330480103086687, 12613277226875940039, 14677686051252896485),
+]
+
+private let bid_multipliers2_bid64_15: [UInt256] = [
+UInt256(207010540131952379, 4048814910762527660, 13590701889600918977, 10314234839734399944),
+UInt256(414021080263904758, 8097629821525055321, 8734659705492286339, 2181725605759248271),
+UInt256(828042160527809516, 16195259643050110642, 17469319410984572678, 4363451211518496542),
+UInt256(165608432105561903, 6928400743351932451, 14561910326422645505, 4562039057045609632),
+UInt256(331216864211123806, 13856801486703864903, 10677076579135739394, 9124078114091219263),
+UInt256(662433728422247613, 9266858899698178191, 2907409084561927172, 18248156228182438526),
+UInt256(132486745684449522, 12921418224165366607, 15338877075880026727, 7338980060378398029),
+UInt256(264973491368899045, 7396092374621181599, 12231010078050501838, 14677960120756796057),
+UInt256(529946982737798090, 14792184749242363199, 6015276082391452061, 10909176167804040498),
+UInt256(1059893965475596181, 11137625424775174782, 12030552164782904123, 3371608261898529379),
+UInt256(211978793095119236, 5916873899696945279, 13474156877182311794, 4363670467121616199),
+UInt256(423957586190238472, 11833747799393890559, 8501569680655071972, 8727340934243232398),
+UInt256(847915172380476945, 5220751525078229502, 17003139361310143944, 17454681868486464796),
+UInt256(169583034476095389, 1044150305015645900, 10779325501745849435, 7180285188439203283),
+UInt256(339166068952190778, 2088300610031291801, 3111906929782147254, 14360570376878406565),
+UInt256(678332137904381556, 4176601220062583602, 6223813859564294509, 10274396680047261514),
+UInt256(135666427580876311, 4524669058754427043, 12312809216138589871, 9433576965493272950),
+UInt256(271332855161752622, 9049338117508854087, 6178874358567628127, 420409857276994283),
+UInt256(542665710323505244, 18098676235017708174, 12357748717135256254, 840819714553988565),
+UInt256(1085331420647010489, 17750608396325864733, 6268753360560960892, 1681639429107977129),
+UInt256(217066284129402097, 18307516938232814239, 8632448301596012824, 15093723144789236719),
+UInt256(434132568258804195, 18168289802756076862, 17264896603192025649, 11740702215868921822),
+UInt256(868265136517608391, 17889835531802602109, 16083049132674499683, 5034660358028292027),
+UInt256(173653027303521678, 7267315921102430745, 3216609826534899936, 12074978515831389375),
+UInt256(347306054607043356, 14534631842204861490, 6433219653069799873, 5703212957953227134),
+UInt256(694612109214086713, 10622519610700171364, 12866439306139599746, 11406425915906454268),
+UInt256(138922421842817342, 13192550366365765242, 9951985490711740595, 13349331627407021824),
+UInt256(277844843685634685, 7938356659021978869, 1457226907713929575, 8251919181104492031),
+UInt256(555689687371269370, 15876713318043957738, 2914453815427859150, 16503838362208984061),
+UInt256(1111379374742538741, 13306682562378363860, 5828907630855718301, 14560932650708416505),
+UInt256(222275874948507748, 6350685327217583095, 4855130340913053983, 10290884159625503948),
+UInt256(444551749897015496, 12701370654435166190, 9710260681826107967, 2135024245541456279),
+UInt256(889103499794030993, 6955997235160780765, 973777289942664318, 4270048491082912558),
+UInt256(177820699958806198, 12459245891257887122, 11262801902214263833, 4543358512958492835),
+UInt256(355641399917612397, 6471747708806222629, 4078859730718976050, 9086717025916985670),
+UInt256(711282799835224794, 12943495417612445258, 8157719461437952100, 18173434051833971339),
+UInt256(142256559967044958, 17346094342490130344, 9010241521771411066, 11013384439850614915),
+UInt256(284513119934089917, 16245444611270709072, 18020483043542822133, 3580024805991678213),
+UInt256(569026239868179835, 14044145148831866529, 17594222013376092650, 7160049611983356425),
+UInt256(1138052479736359671, 9641546223954181443, 16741699953042633684, 14320099223966712850),
+UInt256(227610495947271934, 5617658059532746611, 18105735249576168029, 13932066289019073540),
+UInt256(455220991894543868, 11235316119065493223, 17764726425442784443, 9417388504328595463),
+UInt256(910441983789087737, 4023888164421434831, 17082708777176017271, 388032934947639310),
+UInt256(182088396757817547, 8183475262368107612, 14484588199660934423, 14835001845957169155),
+UInt256(364176793515635094, 16366950524736215225, 10522432325612317231, 11223259618204786694),
+UInt256(728353587031270189, 14287156975762878835, 2598120577515082847, 3999775162700021771),
+UInt256(145670717406254037, 17614826654120217059, 15277019374470657862, 4489303847281914678),
+UInt256(291341434812508075, 16782909234530882503, 12107294675231764108, 8978607694563829355),
+UInt256(582682869625016151, 15119074395352213391, 5767845276753976600, 17957215389127658710),
+UInt256(1165365739250032303, 11791404716994875166, 11535690553507953201, 17467686704545765804),
+]
+
+private let bid_multipliers2_bid64_16: [UInt256] = [
+UInt256(233073147850006460, 13426327387624706002, 17064533369669231933, 3493537340909153161),
+UInt256(466146295700012921, 8405910701539860389, 15682322665628912250, 6987074681818306322),
+UInt256(932292591400025842, 16811821403079720779, 12917901257548272884, 13974149363636612643),
+UInt256(186458518280005168, 10741061910099764802, 6272929066251564900, 2794829872727322529),
+UInt256(372917036560010337, 3035379746489977988, 12545858132503129800, 5589659745454645057),
+UInt256(745834073120020674, 6070759492979955977, 6644972191296707984, 11179319490909290114),
+UInt256(149166814624004134, 15971547157563632488, 5018343253001251920, 2235863898181858023),
+UInt256(298333629248008269, 13496350241417713360, 10036686506002503840, 4471727796363716046),
+UInt256(596667258496016539, 8545956409125875105, 1626628938295456064, 8943455592727432092),
+UInt256(1193334516992033078, 17091912818251750210, 3253257876590912128, 17886911185454864183),
+UInt256(238666903398406615, 14486429007876081011, 11718698019543913395, 7266731051832883160),
+UInt256(477333806796813231, 10526113942042610407, 4990651965378275174, 14533462103665766320),
+UInt256(954667613593626463, 2605483810375669198, 9981303930756550349, 10620180133621981023),
+UInt256(190933522718725292, 11589143206300864809, 5685609600893220393, 2124036026724396205),
+UInt256(381867045437450585, 4731542338892178002, 11371219201786440786, 4248072053448792410),
+UInt256(763734090874901170, 9463084677784356005, 4295694329863329956, 8496144106897584819),
+UInt256(152746818174980234, 1892616935556871201, 859138865972665991, 5388577636121427287),
+UInt256(305493636349960468, 3785233871113742402, 1718277731945331982, 10777155272242854574),
+UInt256(610987272699920936, 7570467742227484804, 3436555463890663965, 3107566470776157532),
+UInt256(1221974545399841872, 15140935484454969608, 6873110927781327930, 6215132941552315063),
+UInt256(244394909079968374, 10406884726374814568, 1374622185556265586, 1243026588310463013),
+UInt256(488789818159936749, 2367025379040077520, 2749244371112531172, 2486053176620926026),
+UInt256(977579636319873498, 4734050758080155040, 5498488742225062344, 4972106353241852051),
+UInt256(195515927263974699, 12014856595841761977, 12167744192670743438, 8373118900132191057),
+UInt256(391031854527949399, 5582969117973972339, 5888744311631935260, 16746237800264382113),
+UInt256(782063709055898798, 11165938235947944678, 11777488623263870521, 15045731526819212610),
+UInt256(156412741811179759, 13301234091415319905, 6044846539394684427, 10387843934847663169),
+UInt256(312825483622359519, 8155724109121088194, 12089693078789368855, 2328943795985774721),
+UInt256(625650967244719038, 16311448218242176389, 5732642083869186094, 4657887591971549442),
+UInt256(1251301934489438077, 14176152362774801162, 11465284167738372188, 9315775183943098883),
+UInt256(250260386897887615, 10213928102038780878, 17050452092515315730, 9241852666272440423),
+UInt256(500520773795775231, 1981112130368010141, 15654160111321079845, 36961258835329230),
+UInt256(1001041547591550462, 3962224260736020283, 12861576148932608074, 73922517670658460),
+UInt256(200208309518310092, 8171142481631024703, 2572315229786521614, 14772179762501772985),
+UInt256(400416619036620184, 16342284963262049406, 5144630459573043229, 11097615451293994354),
+UInt256(800833238073240369, 14237825852814547196, 10289260919146086459, 3748486828878437092),
+UInt256(160166647614648073, 17604960429530550732, 2057852183829217291, 15507092624743328712),
+UInt256(320333295229296147, 16763176785351549848, 4115704367658434583, 12567441175777105807),
+UInt256(640666590458592295, 15079609496993548080, 8231408735316869167, 6688138277844659997),
+UInt256(128133318091718459, 3015921899398709616, 1646281747063373833, 8716325285052752646),
+UInt256(256266636183436918, 6031843798797419232, 3292563494126747666, 17432650570105505292),
+UInt256(512533272366873836, 12063687597594838464, 6585126988253495333, 16418557066501458967),
+UInt256(1025066544733747673, 5680631121480125312, 13170253976506990667, 14390370059293366317),
+UInt256(205013308946749534, 12204172668521756032, 2634050795301398133, 10256771641342493910),
+UInt256(410026617893499069, 5961601263333960448, 5268101590602796267, 2066799208975436204),
+UInt256(820053235786998138, 11923202526667920896, 10536203181205592534, 4133598417950872408),
+UInt256(164010647157399627, 13452686949559315148, 16864635895208759799, 11894766127815905452),
+UInt256(328021294314799255, 8458629825409078681, 15282527716707967983, 5342788181922259287),
+UInt256(656042588629598510, 16917259650818157363, 12118311359706384350, 10685576363844518573),
+UInt256(131208517725919702, 3383451930163631472, 13491708716167007839, 13205161716994634685),
+]
+
+private let bid_multipliers2_bid64_17: [UInt256] = [
+UInt256(262417035451839404, 6766903860327262945, 8536673358624464063, 7963579360279717753),
+UInt256(524834070903678808, 13533807720654525890, 17073346717248928126, 15927158720559435505),
+UInt256(1049668141807357617, 8620871367599500165, 15699949360788304637, 13407573367409319393),
+UInt256(209933628361471523, 9102871903003720679, 10518687501641481573, 17438909932449505172),
+UInt256(419867256722943046, 18205743806007441359, 2590630929573411531, 16431075791189458727),
+UInt256(839734513445886093, 17964743538305331102, 5181261859146823063, 14415407508669365837),
+UInt256(167946902689177218, 14660995151886797190, 1036252371829364612, 13951127945959604137),
+UInt256(335893805378354437, 10875246230064042764, 2072504743658729225, 9455511818209656658),
+UInt256(671787610756708875, 3303748386418533912, 4145009487317458451, 464279562709761700),
+UInt256(134357522151341775, 660749677283706782, 8207699526947312336, 11160902356767683310),
+UInt256(268715044302683550, 1321499354567413564, 16415399053894624673, 3875060639825815004),
+UInt256(537430088605367100, 2642998709134827129, 14384054034079697730, 7750121279651630007),
+UInt256(1074860177210734200, 5285997418269654259, 10321363994449843844, 15500242559303260013),
+UInt256(214972035442146840, 1057199483653930851, 16821668057857610061, 14168094956086382973),
+UInt256(429944070884293680, 2114398967307861703, 15196592042005668507, 9889445838463214329),
+UInt256(859888141768587360, 4228797934615723407, 11946440010301785399, 1332147603216877041),
+UInt256(171977628353717472, 845759586923144681, 9767985631544177726, 3955778335385285732),
+UInt256(343955256707434944, 1691519173846289363, 1089227189378803836, 7911556670770571463),
+UInt256(687910513414869888, 3383038347692578726, 2178454378757607672, 15823113341541142926),
+UInt256(137582102682973977, 11744654113764246714, 15193086134719162827, 6853971483050138909),
+UInt256(275164205365947955, 5042564153818941813, 11939428195728774038, 13707942966100277817),
+UInt256(550328410731895910, 10085128307637883627, 5432112317747996461, 8969141858491004017),
+UInt256(1100656821463791821, 1723512541566215638, 10864224635495992922, 17938283716982008034),
+UInt256(220131364292758364, 4034051323055153450, 16930240186066839877, 7277005558138311930),
+UInt256(440262728585516728, 8068102646110306901, 15413736298424128138, 14554011116276623860),
+UInt256(880525457171033456, 16136205292220613803, 12380728523138704661, 10661278158843696104),
+UInt256(176105091434206691, 6916589873186033083, 17233540963595382225, 2132255631768739221),
+UInt256(352210182868413382, 13833179746372066167, 16020337853481212834, 4264511263537478442),
+UInt256(704420365736826765, 9219615419034580719, 13593931633252874052, 8529022527074956884),
+UInt256(140884073147365353, 1843923083806916143, 17476181585618216103, 5395153320156901700),
+UInt256(281768146294730706, 3687846167613832287, 16505619097526880590, 10790306640313803400),
+UInt256(563536292589461412, 7375692335227664575, 14564494121344209565, 3133869206918055184),
+UInt256(1127072585178922824, 14751384670455329151, 10682244168978867514, 6267738413836110367),
+UInt256(225414517035784564, 17707672193058707123, 2136448833795773502, 16010942941734863367),
+UInt256(450829034071569129, 16968600312407862630, 4272897667591547005, 13575141809760175117),
+UInt256(901658068143138259, 15490456551106173644, 8545795335183094011, 8703539545810798617),
+UInt256(180331613628627651, 17855486569188876021, 12777205511262349771, 16498103168129801017),
+UInt256(360663227257255303, 17264229064668200427, 7107666948815147927, 14549462262550050417),
+UInt256(721326454514510607, 16081714055626849238, 14215333897630295855, 10652180451390549217),
+UInt256(144265290902902121, 10595040440609190494, 2843066779526059171, 2130436090278109844),
+UInt256(288530581805804243, 2743336807508829372, 5686133559052118342, 4260872180556219687),
+UInt256(577061163611608486, 5486673615017658744, 11372267118104236684, 8521744361112439374),
+UInt256(1154122327223216972, 10973347230035317489, 4297790162498921752, 17043488722224878747),
+UInt256(230824465444643394, 9573367075490884144, 4548906847241694673, 14476744188670706719),
+UInt256(461648930889286789, 699990077272216672, 9097813694483389347, 10506744303631861822),
+UInt256(923297861778573578, 1399980154544433344, 18195627388966778695, 2566744533554172028),
+UInt256(184659572355714715, 11348042475134617638, 11017823107277176385, 7892046536194655052),
+UInt256(369319144711429431, 4249340876559683661, 3588902140844801154, 15784093072389310104),
+UInt256(738638289422858862, 8498681753119367322, 7177804281689602309, 13121442071069068592),
+UInt256(147727657884571772, 9078433980107694110, 16192956115305561754, 13692334858439544688),
+]
+
+private let bid_multipliers2_bid64_18: [UInt256] = [
+UInt256(295455315769143544, 18156867960215388221, 13939168156901571893, 8937925643169537760),
+UInt256(590910631538287089, 17866991846721224827, 9431592240093592170, 17875851286339075520),
+UInt256(1181821263076574179, 17287239619732898039, 416440406477632725, 17304958498968599424),
+UInt256(236364252615314835, 18214843182914220900, 11151334525521257514, 14529038144019450855),
+UInt256(472728505230629671, 17982942292118890185, 3855924977332963413, 10611332214329350093),
+UInt256(945457010461259343, 17519140510528228754, 7711849954665926827, 2775920354949148570),
+UInt256(189091402092251868, 14571874546331376720, 8921067620417006011, 15312579329957471007),
+UInt256(378182804184503737, 10697005018953201824, 17842135240834012023, 12178414586205390398),
+UInt256(756365608369007475, 2947265964196852033, 17237526407958472431, 5910085098701229179),
+UInt256(151273121673801495, 589453192839370406, 14515551725817425455, 15939412278707887129),
+UInt256(302546243347602990, 1178906385678740813, 10584359377925299295, 13432080483706222641),
+UInt256(605092486695205980, 2357812771357481627, 2721974682141046975, 8417416893702893666),
+UInt256(1210184973390411960, 4715625542714963254, 5443949364282093950, 16834833787405787332),
+UInt256(242036994678082392, 943125108542992650, 15846185131824060082, 18124362016448798760),
+UInt256(484073989356164784, 1886250217085985301, 13245626189938568549, 17801979959188045903),
+UInt256(968147978712329568, 3772500434171970603, 8044508306167585483, 17157215844666540189),
+UInt256(193629595742465913, 11822546531060125090, 5298250475975427419, 18188838427900949331),
+UInt256(387259191484931827, 5198348988410698564, 10596500951950854839, 17930932782092347046),
+UInt256(774518382969863654, 10396697976821397129, 2746257830192158063, 17415121490475142475),
+UInt256(154903676593972730, 16836734854331920718, 11617298010264162582, 7172373112836938819),
+UInt256(309807353187945461, 15226725634954289821, 4787851946818773548, 14344746225673877637),
+UInt256(619614706375890923, 12006707196199028026, 9575703893637547097, 10242748377638203657),
+UInt256(1239229412751781847, 5566670318688504437, 704663713565542579, 2038752681566855697),
+UInt256(247845882550356369, 8492031693221521533, 14898328001680749808, 11475796980539102109),
+UInt256(495691765100712738, 16984063386443043067, 11349911929651948001, 4504849887368652602),
+UInt256(991383530201425477, 15521382699176534519, 4253079785594344386, 9009699774737305204),
+UInt256(198276706040285095, 10482974169319127550, 4539964771860779200, 9180637584431281688),
+UInt256(396553412080570191, 2519204264928703484, 9079929543721558400, 18361275168862563375),
+UInt256(793106824161140382, 5038408529857406968, 18159859087443116801, 18275806264015575133),
+UInt256(158621364832228076, 8386379335455302040, 3631971817488623360, 7344510067545025350),
+UInt256(317242729664456152, 16772758670910604080, 7263943634977246720, 14689020135090050700),
+UInt256(634485459328912305, 15098773268111656544, 14527887269954493441, 10931296196470549783),
+UInt256(1268970918657824611, 11750802462513761473, 10609030466199435267, 3415848319231547950),
+UInt256(253794183731564922, 6039509307244662617, 16879201352207528346, 4372518478588219914),
+UInt256(507588367463129844, 12079018614489325235, 15311658630705505076, 8745036957176439827),
+UInt256(1015176734926259689, 5711293155269098855, 12176573187701458536, 17490073914352879653),
+UInt256(203035346985251937, 15899653890021461063, 17192709896507933000, 3498014782870575931),
+UInt256(406070693970503875, 13352563706333370511, 15938675719306314384, 6996029565741151861),
+UInt256(812141387941007751, 8258383338957189407, 13430607364903077152, 13992059131482303722),
+UInt256(162428277588201550, 5341025482533348204, 13754167917206346400, 2798411826296460745),
+UInt256(324856555176403100, 10682050965066696409, 9061591760703141184, 5596823652592921489),
+UInt256(649713110352806201, 2917357856423841202, 18123183521406282368, 11193647305185842978),
+UInt256(129942622070561240, 4272820386026678563, 14692683148506987443, 5928078275779078919),
+UInt256(259885244141122480, 8545640772053357127, 10938622223304423270, 11856156551558157838),
+UInt256(519770488282244960, 17091281544106714255, 3430500372899294925, 5265569029406764059),
+UInt256(1039540976564489921, 15735819014503876894, 6861000745798589850, 10531138058813528118),
+UInt256(207908195312897984, 6836512617642685702, 1372200149159717970, 2106227611762705624),
+UInt256(415816390625795968, 13673025235285371404, 2744400298319435940, 4212455223525411247),
+UInt256(831632781251591937, 8899306396861191192, 5488800596638871880, 8424910447050822494),
+UInt256(166326556250318387, 9158558908856058884, 15855155378295415668, 16442377348377805792),
+]
+
+private let bid_multipliers2_bid64_19: [UInt256] = [
+UInt256(332653112500636774, 18317117817712117769, 13263566682881279721, 14438010623046059968),
+UInt256(665306225001273549, 18187491561714683923, 8080389292053007827, 10429277172382568319),
+UInt256(133061245000254709, 18394893571310578077, 8994775487894422211, 16843250693444154957),
+UInt256(266122490000509419, 18343043068911604538, 17989550975788844423, 15239757313178758297),
+UInt256(532244980001018839, 18239342064113657461, 17532357877868137231, 12032770552647964978),
+UInt256(1064489960002037679, 18031940054517763307, 16617971682026722847, 5618797031586378340),
+UInt256(212897992000407535, 18363783269871193954, 7012943151147254892, 12191805850543006638),
+UInt256(425795984000815071, 18280822466032836292, 14025886302294509785, 5936867627376461660),
+UInt256(851591968001630143, 18114900858356120969, 9605028530879467954, 11873735254752923319),
+UInt256(170318393600326028, 14691026615896955163, 9299703335659714237, 6064095865692494987),
+UInt256(340636787200652057, 10935309158084358711, 152662597609876858, 12128191731384989974),
+UInt256(681273574401304115, 3423874242459165806, 305325195219753717, 5809639389060428332),
+UInt256(136254714880260823, 684774848491833161, 3750413853785861066, 12229974322037816636),
+UInt256(272509429760521646, 1369549696983666322, 7500827707571722133, 6013204570366081656),
+UInt256(545018859521043292, 2739099393967332644, 15001655415143444266, 12026409140732163312),
+UInt256(1090037719042086584, 5478198787934665289, 11556566756577336917, 5606074207754775008),
+UInt256(218007543808417316, 15853035016554574350, 13379359795541198353, 1121214841550955002),
+UInt256(436015087616834633, 13259325959399597085, 8311975517372845090, 2242429683101910003),
+UInt256(872030175233669267, 8071907845089642554, 16623951034745690180, 4484859366203820006),
+UInt256(174406035046733853, 8993079198501749157, 7014139021691048359, 4586320687982674325),
+UInt256(348812070093467706, 17986158397003498314, 14028278043382096718, 9172641375965348649),
+UInt256(697624140186935413, 17525572720297445013, 9609812013054641820, 18345282751930697298),
+UInt256(139524828037387082, 14573160988285219972, 5611311217352838687, 7358405365128049783),
+UInt256(279049656074774165, 10699577902860888328, 11222622434705677374, 14716810730256099566),
+UInt256(558099312149548331, 2952411732012225041, 3998500795701803133, 10986877386802647515),
+UInt256(1116198624299096662, 5904823464024450082, 7997001591403606267, 3527010699895743414),
+UInt256(223239724859819332, 8559662322288710662, 16356795577248362546, 4394750954721059006),
+UInt256(446479449719638664, 17119324644577421325, 14266847080787173476, 8789501909442118012),
+UInt256(892958899439277329, 15791905215445291035, 10086950087864795336, 17579003818884236024),
+UInt256(178591779887855465, 17915776302056699499, 16774785276540600360, 3515800763776847205),
+UInt256(357183559775710931, 17384808530403847383, 15102826479371649104, 7031601527553694410),
+UInt256(714367119551421863, 16322872987098143151, 11758908885033746592, 14063203055107388819),
+UInt256(142873423910284372, 14332621041645359599, 17109177035974390611, 6501989425763388087),
+UInt256(285746847820568745, 10218498009581167583, 15771609998239229606, 13003978851526776174),
+UInt256(571493695641137491, 1990251945452783551, 13096475922768907597, 7561213629344000732),
+UInt256(1142987391282274982, 3980503890905567103, 7746207771828263578, 15122427258688001464),
+UInt256(228597478256454996, 8174798407664934067, 1549241554365652715, 14092531895963331263),
+UInt256(457194956512909992, 16349596815329868134, 3098483108731305431, 9738319718217110909),
+UInt256(914389913025819985, 14252449556950184652, 6196966217462610863, 1029895362724670202),
+UInt256(182877982605163997, 2850489911390036930, 8618090872976342819, 205979072544934041),
+UInt256(365755965210327994, 5700979822780073860, 17236181745952685638, 411958145089868081),
+UInt256(731511930420655988, 11401959645560147721, 16025619418195819660, 823916290179736162),
+UInt256(146302386084131197, 13348438373337760513, 17962519142606805224, 14922178517003588526),
+UInt256(292604772168262395, 8250132672965969411, 17478294211504058833, 11397612960297625435),
+UInt256(585209544336524790, 16500265345931938823, 16509844349298566051, 4348481846885699253),
+UInt256(1170419088673049581, 14553786618154326031, 14572944624887580486, 8696963693771398505),
+UInt256(234083817734609916, 6600106138372775529, 10293286554461336743, 12807439182980010671),
+UInt256(468167635469219832, 13200212276745551059, 2139829035213121871, 7168134292250469725),
+UInt256(936335270938439665, 7953680479781550502, 4279658070426243742, 14336268584500939450),
+UInt256(187267054187687933, 1590736095956310100, 8234629243569069394, 17624648975867829183),
+]
+
+private let bid_multipliers2_bid64_20: [UInt256] = [
+UInt256(374534108375375866, 3181472191912620200, 16469258487138138789, 16802553878026106750),
+UInt256(749068216750751732, 6362944383825240401, 14491772900566725963, 15158363682342661883),
+UInt256(149813643350150346, 8651286506248868726, 13966401024339076162, 6721021551210442700),
+UInt256(299627286700300692, 17302573012497737453, 9486057974968600708, 13442043102420885400),
+UInt256(599254573400601385, 16158401951285923291, 525371876227649801, 8437342131132219184),
+UInt256(1198509146801202771, 13870059828862294966, 1050743752455299602, 16874684262264438367),
+UInt256(239701829360240554, 6463360780514369316, 7588846379974880566, 18132332111420528967),
+UInt256(479403658720481108, 12926721561028738632, 15177692759949761133, 17817920149131506317),
+UInt256(958807317440962217, 7406699048347925649, 11908641446189970651, 17189096224553461017),
+UInt256(191761463488192443, 8860037439153405776, 6071077103979904453, 10816516874394512850),
+UInt256(383522926976384886, 17720074878306811552, 12142154207959808907, 3186289675079474084),
+UInt256(767045853952769773, 16993405682904071489, 5837564342210066198, 6372579350158948167),
+UInt256(153409170790553954, 14466727580806545267, 8546210497925833886, 1274515870031789634),
+UInt256(306818341581107909, 10486711087903538918, 17092420995851667772, 2549031740063579267),
+UInt256(613636683162215819, 2526678102097526221, 15738097917993783928, 5098063480127158534),
+UInt256(1227273366324431638, 5053356204195052443, 13029451762278016240, 10196126960254317067),
+UInt256(245454673264886327, 12078717685064741458, 6295239167197513571, 5728574206792773737),
+UInt256(490909346529772655, 5710691296419931300, 12590478334395027142, 11457148413585547473),
+UInt256(981818693059545310, 11421382592839862601, 6734212595080502669, 4467552753461543330),
+UInt256(196363738611909062, 2284276518567972520, 5036191333758010857, 893510550692308666),
+UInt256(392727477223818124, 4568553037135945040, 10072382667516021714, 1787021101384617332),
+UInt256(785454954447636248, 9137106074271890081, 1698021261322491812, 3574042202769234664),
+UInt256(157090990889527249, 12895467659080108985, 15096999511232139655, 4404157255295757256),
+UInt256(314181981779054499, 7344191244450666355, 11747254948754727694, 8808314510591514512),
+UInt256(628363963558108998, 14688382488901332711, 5047765823799903772, 17616629021183029024),
+UInt256(1256727927116217997, 10930020904093113806, 10095531647599807545, 16786513968656506432),
+UInt256(251345585423243599, 9564701810302443407, 13087152773745692478, 14425349237957032256),
+UInt256(502691170846487199, 682659546895335199, 7727561473781833341, 10403954402204512896),
+UInt256(1005382341692974398, 1365319093790670398, 15455122947563666683, 2361164730699474176),
+UInt256(201076468338594879, 11341110262983865049, 6780373404254643659, 15229628205107536128),
+UInt256(402152936677189759, 4235476452258178482, 13560746808509287319, 12012512336505520640),
+UInt256(804305873354379518, 8470952904516356965, 8674749543309023023, 5578280599301489664),
+UInt256(160861174670875903, 12762237025129002362, 12802996352887535574, 4805004934602208256),
+UInt256(321722349341751807, 7077729976548453109, 7159248632065519532, 9610009869204416512),
+UInt256(643444698683503614, 14155459953096906218, 14318497264131039065, 773275664699281408),
+UInt256(128688939736700722, 17588487249587022536, 10242397082310028459, 7533352762423676928),
+UInt256(257377879473401445, 16730230425464493457, 2038050090910505302, 15066705524847353856),
+UInt256(514755758946802891, 15013716777219435298, 4076100181821010605, 11686666975985156096),
+UInt256(1029511517893605783, 11580689480729318980, 8152200363642021211, 4926589878260760576),
+UInt256(205902303578721156, 13384184340371594765, 12698486516954135211, 15742713234619793408),
+UInt256(411804607157442313, 8321624607033637915, 6950228960198718807, 13038682395530035200),
+UInt256(823609214314884626, 16643249214067275830, 13900457920397437615, 7630620717350518784),
+UInt256(164721842862976925, 7017998657555365489, 6469440398821397846, 5215472958212014080),
+UInt256(329443685725953850, 14035997315110730978, 12938880797642795692, 10430945916424028160),
+UInt256(658887371451907701, 9625250556511910341, 7431017521576039769, 2415147759138504704),
+UInt256(131777474290381540, 5614398926044292391, 8864901133799028600, 4172378366569611264),
+UInt256(263554948580763080, 11228797852088584782, 17729802267598057200, 8344756733139222528),
+UInt256(527109897161526161, 4010851630467617949, 17012860461486562784, 16689513466278445056),
+UInt256(1054219794323052322, 8021703260935235899, 15578976849263573953, 14932282858847338496),
+UInt256(210843958864610464, 8983038281670867826, 6805144184594625113, 17743851830737108992),
+]
+
+private let bid_multipliers2_bid64_21: [UInt256] = [
+UInt256(421687917729220928, 17966076563341735652, 13610288369189250227, 17040959587764666368),
+UInt256(843375835458441857, 17485409052973919689, 8773832664668948839, 15635175101819781120),
+UInt256(168675167091688371, 10875779440078604584, 5444115347675700091, 3127035020363956224),
+UInt256(337350334183376743, 3304814806447657552, 10888230695351400182, 6254070040727912448),
+UInt256(674700668366753486, 6609629612895315105, 3329717316993248748, 12508140081455824896),
+UInt256(134940133673350697, 5011274737320973344, 4355292278140560072, 17259023275258806272),
+UInt256(269880267346701394, 10022549474641946688, 8710584556281120145, 16071302476808060928),
+UInt256(539760534693402789, 1598354875574341760, 17421169112562240291, 13695860879906570240),
+UInt256(1079521069386805578, 3196709751148683521, 16395594151414928967, 8944977686103588864),
+UInt256(215904213877361115, 11707388394455467673, 18036514089250627086, 5478344351962628096),
+UInt256(431808427754722231, 4968032715201383731, 17626284104791702556, 10956688703925256192),
+UInt256(863616855509444462, 9936065430402767463, 16805824135873853497, 3466633334140960768),
+UInt256(172723371101888892, 9365910715564374139, 3361164827174770699, 8072024296312012800),
+UInt256(345446742203777785, 285077357419196662, 6722329654349541398, 16144048592624025600),
+UInt256(690893484407555570, 570154714838393324, 13444659308699082797, 13841353111538499584),
+UInt256(138178696881511114, 114030942967678664, 17446327120707457852, 6457619437049610240),
+UInt256(276357393763022228, 228061885935357329, 16445910167705364088, 12915238874099220480),
+UInt256(552714787526044456, 456123771870714659, 14445076261701176561, 7383733674488889344),
+UInt256(1105429575052088912, 912247543741429319, 10443408449692801506, 14767467348977778688),
+UInt256(221085915010417782, 7561147138232106510, 5778030504680470624, 10332191099279376384),
+UInt256(442171830020835564, 15122294276464213020, 11556061009360941249, 2217638124849201152),
+UInt256(884343660041671129, 11797844479218874425, 4665377945012330882, 4435276249698402304),
+UInt256(176868732008334225, 17116964154811416177, 15690470847970107469, 4576404064681590784),
+UInt256(353737464016668451, 15787184235913280739, 12934197622230663322, 9152808129363181568),
+UInt256(707474928033336903, 13127624398117009863, 7421651170751775028, 18305616258726363136),
+UInt256(141494985606667380, 13693571323849132942, 5173679048892265328, 18418518510712913920),
+UInt256(282989971213334761, 8940398573988714268, 10347358097784530657, 18390292947716276224),
+UInt256(565979942426669522, 17880797147977428537, 2247972121859509699, 18333841821723000832),
+UInt256(1131959884853339045, 17314850222245305458, 4495944243719019399, 18220939569736450048),
+UInt256(226391976970667809, 3462970044449061091, 11967235292969534849, 11022885543431110656),
+UInt256(452783953941335618, 6925940088898122183, 5487726512229518083, 3599027013152669696),
+UInt256(905567907882671236, 13851880177796244366, 10975453024459036166, 7198054026305339392),
+UInt256(181113581576534247, 6459724850301159196, 9573788234375627879, 12507657249486798848),
+UInt256(362227163153068494, 12919449700602318393, 700832395041704143, 6568570425264046080),
+UInt256(724454326306136989, 7392155327495085170, 1401664790083408286, 13137140850528092160),
+UInt256(144890865261227397, 16235826324466658326, 15037728216984322950, 2627428170105618432),
+UInt256(289781730522454795, 14024908575223765037, 11628712360259094284, 5254856340211236864),
+UInt256(579563461044909591, 9603073076737978459, 4810680646808636952, 10509712680422473728),
+UInt256(1159126922089819183, 759402079766405302, 9621361293617273905, 2572681287135395840),
+UInt256(231825384417963836, 11219926860179012030, 1924272258723454781, 514536257427079168),
+UInt256(463650768835927673, 3993109646648472444, 3848544517446909562, 1029072514854158336),
+UInt256(927301537671855346, 7986219293296944888, 7697089034893819124, 2058145029708316672),
+UInt256(185460307534371069, 5286592673401299300, 16296813065946405117, 11479675450167394304),
+UInt256(370920615068742138, 10573185346802598601, 14146882058183258619, 4512606826625236992),
+UInt256(741841230137484277, 2699626619895645587, 9847020042656965622, 9025213653250473984),
+UInt256(148368246027496855, 7918622953462949763, 16726799267499034417, 5494391545392005120),
+UInt256(296736492054993710, 15837245906925899527, 15006854461288517218, 10988783090784010240),
+UInt256(593472984109987421, 13227747740142247439, 11566964848867482821, 3530822107858468864),
+UInt256(1186945968219974843, 8008751406574943263, 4687185624025414026, 7061644215716937728),
+UInt256(237389193643994968, 12669796725540719622, 4626785939546993128, 8791026472627208192),
+]
+
+private let bid_multipliers2_bid64_22: [UInt256] = [
+UInt256(474778387287989937, 6892849377371887628, 9253571879093986256, 17582052945254416384),
+UInt256(949556774575979874, 13785698754743775257, 60399684478420897, 16717361816799281152),
+UInt256(189911354915195974, 17514535009916396344, 3701428751637594502, 14411518807585587200),
+UInt256(379822709830391949, 16582325946123241072, 7402857503275189005, 10376293541461622784),
+UInt256(759645419660783899, 14717907818536930528, 14805715006550378011, 2305843009213693952),
+UInt256(151929083932156779, 17700976822675027398, 10339840630793896248, 11529215046068469760),
+UInt256(303858167864313559, 16955209571640503181, 2232937187878240881, 4611686018427387904),
+UInt256(607716335728627119, 15463675069571454746, 4465874375756481762, 9223372036854775808),
+UInt256(1215432671457254239, 12480606065433357876, 8931748751512963525, 0),
+UInt256(243086534291450847, 17253516472054312868, 1786349750302592705, 0),
+UInt256(486173068582901695, 16060288870399074120, 3572699500605185410, 0),
+UInt256(972346137165803391, 13673833667088596624, 7145399001210370820, 0),
+UInt256(194469227433160678, 6424115548159629648, 1429079800242074164, 0),
+UInt256(388938454866321356, 12848231096319259296, 2858159600484148328, 0),
+UInt256(777876909732642713, 7249718118928966976, 5716319200968296656, 0),
+UInt256(155575381946528542, 12517990068011524364, 15900659099161300624, 0),
+UInt256(311150763893057085, 6589236062313497113, 13354574124613049632, 0),
+UInt256(622301527786114170, 13178472124626994227, 8262404175516547648, 0),
+UInt256(1244603055572228341, 7910200175544436838, 16524808351033095296, 0),
+UInt256(248920611114445668, 5271388849850797690, 18062356929174260352, 0),
+UInt256(497841222228891336, 10542777699701595381, 17677969784638969088, 0),
+UInt256(995682444457782673, 2638811325693639147, 16909195495568386560, 0),
+UInt256(199136488891556534, 11595808709364458799, 3381839099113677312, 0),
+UInt256(398272977783113069, 4744873345019365982, 6763678198227354624, 0),
+UInt256(796545955566226138, 9489746690038731964, 13527356396454709248, 0),
+UInt256(159309191113245227, 12965995782233477362, 10084168908774762496, 0),
+UInt256(318618382226490455, 7485247490757403109, 1721593743839973376, 0),
+UInt256(637236764452980910, 14970494981514806218, 3443187487679946752, 0),
+UInt256(1274473528905961821, 11494245889320060820, 6886374975359893504, 0),
+UInt256(254894705781192364, 5988197992605922487, 5066623809813889024, 0),
+UInt256(509789411562384728, 11976395985211844974, 10133247619627778048, 0),
+UInt256(1019578823124769457, 5506047896714138333, 1819751165546004480, 0),
+UInt256(203915764624953891, 8479907208826648313, 363950233109200896, 0),
+UInt256(407831529249907782, 16959814417653296626, 727900466218401792, 0),
+UInt256(815663058499815565, 15472884761597041636, 1455800932436803584, 0),
+UInt256(163132611699963113, 3094576952319408327, 3980509001229271040, 0),
+UInt256(326265223399926226, 6189153904638816654, 7961018002458542080, 0),
+UInt256(652530446799852452, 12378307809277633308, 15922036004917084160, 0),
+UInt256(130506089359970490, 9854359191339347308, 3184407200983416832, 0),
+UInt256(261012178719940981, 1261974308969143000, 6368814401966833664, 0),
+UInt256(522024357439881962, 2523948617938286000, 12737628803933667328, 0),
+UInt256(1044048714879763924, 5047897235876572001, 7028513534157783040, 0),
+UInt256(208809742975952784, 15766974706142955693, 1405702706831556608, 0),
+UInt256(417619485951905569, 13087205338576359770, 2811405413663113216, 0),
+UInt256(835238971903811139, 7727666603443167924, 5622810827326226432, 0),
+UInt256(167047794380762227, 16302928579656274877, 12192608609690976256, 0),
+UInt256(334095588761524455, 14159113085602998139, 5938473145672400896, 0),
+UInt256(668191177523048911, 9871482097496444662, 11876946291344801792, 0),
+UInt256(133638235504609782, 5663645234241199255, 13443435702494691328, 0),
+UInt256(267276471009219564, 11327290468482398511, 8440127331279831040, 0),
+]
+
+private let bid_multipliers2_bid64_23: [UInt256] = [
+UInt256(534552942018439129, 4207836863255245406, 16880254662559662080, 0),
+UInt256(1069105884036878258, 8415673726510490813, 15313765251409772544, 0),
+UInt256(213821176807375651, 12751181189527829132, 6752101865023864832, 0),
+UInt256(427642353614751303, 7055618305346106648, 13504203730047729664, 0),
+UInt256(855284707229502606, 14111236610692213297, 8561663386385907712, 0),
+UInt256(171056941445900521, 6511596136880352982, 12780379121502912512, 0),
+UInt256(342113882891801042, 13023192273760705965, 7114014169296273408, 0),
+UInt256(684227765783602085, 7599640473811860314, 14228028338592546816, 0),
+UInt256(136845553156720417, 1519928094762372062, 17603000926686150656, 0),
+UInt256(273691106313440834, 3039856189524744125, 16759257779662749696, 0),
+UInt256(547382212626881668, 6079712379049488251, 15071771485615947776, 0),
+UInt256(1094764425253763336, 12159424758098976503, 11696798897522343936, 0),
+UInt256(218952885050752667, 6121233766361705623, 17096755038472110080, 0),
+UInt256(437905770101505334, 12242467532723411247, 15746766003234668544, 0),
+UInt256(875811540203010669, 6038190991737270879, 13046787932759785472, 0),
+UInt256(175162308040602133, 15965033457315095468, 13677404030777688064, 0),
+UInt256(350324616081204267, 13483322840920639321, 8908063987845824512, 0),
+UInt256(700649232162408535, 8519901608131727026, 17816127975691649024, 0),
+UInt256(140129846432481707, 1703980321626345405, 7252574409880240128, 0),
+UInt256(280259692864963414, 3407960643252690810, 14505148819760480256, 0),
+UInt256(560519385729926828, 6815921286505381621, 10563553565811408896, 0),
+UInt256(1121038771459853656, 13631842573010763243, 2680363057913266176, 0),
+UInt256(224207754291970731, 6415717329344062971, 15293467870550294528, 0),
+UInt256(448415508583941462, 12831434658688125943, 12140191667391037440, 0),
+UInt256(896831017167882925, 7216125243666700271, 5833639261072523264, 0),
+UInt256(179366203433576585, 1443225048733340054, 4856076666956414976, 0),
+UInt256(358732406867153170, 2886450097466680108, 9712153333912829952, 0),
+UInt256(717464813734306340, 5772900194933360217, 977562594116108288, 0),
+UInt256(143492962746861268, 1154580038986672043, 7574210148307042304, 0),
+UInt256(286985925493722536, 2309160077973344086, 15148420296614084608, 0),
+UInt256(573971850987445072, 4618320155946688173, 11850096519518617600, 0),
+UInt256(1147943701974890144, 9236640311893376347, 5253448965327683584, 0),
+UInt256(229588740394978028, 16604723321346316562, 4740038607807447040, 0),
+UInt256(459177480789956057, 14762702568983081508, 9480077215614894080, 0),
+UInt256(918354961579912115, 11078661064256611401, 513410357520236544, 0),
+UInt256(183670992315982423, 2215732212851322280, 3792030886245957632, 0),
+UInt256(367341984631964846, 4431464425702644560, 7584061772491915264, 0),
+UInt256(734683969263929692, 8862928851405289120, 15168123544983830528, 0),
+UInt256(146936793852785938, 9151283399764878470, 10412322338480586752, 0),
+UInt256(293873587705571876, 18302566799529756941, 2377900603251621888, 0),
+UInt256(587747175411143753, 18158389525349962266, 4755801206503243776, 0),
+UInt256(1175494350822287507, 17870034976990372916, 9511602413006487552, 0),
+UInt256(235098870164457501, 10952704624881895229, 12970366926827028480, 0),
+UInt256(470197740328915003, 3458665176054238843, 7493989779944505344, 0),
+UInt256(940395480657830006, 6917330352108477686, 14987979559889010688, 0),
+UInt256(188079096131566001, 5072814885163605860, 10376293541461622784, 0),
+UInt256(376158192263132002, 10145629770327211721, 2305843009213693952, 0),
+UInt256(752316384526264005, 1844515466944871826, 4611686018427387904, 0),
+UInt256(150463276905252801, 368903093388974365, 4611686018427387904, 0),
+UInt256(300926553810505602, 737806186777948730, 9223372036854775808, 0),
+]
+
+private let bid_multipliers2_bid64_24: [UInt256] = [
+UInt256(601853107621011204, 1475612373555897461, 0, 0),
+UInt256(1203706215242022408, 2951224747111794922, 0, 0),
+UInt256(240741243048404481, 11658291393648089954, 0, 0),
+UInt256(481482486096808963, 4869838713586628292, 0, 0),
+UInt256(962964972193617926, 9739677427173256584, 0, 0),
+UInt256(192592994438723585, 5637284300176561640, 0, 0),
+UInt256(385185988877447170, 11274568600353123280, 0, 0),
+UInt256(770371977754894341, 4102393126996694944, 0, 0),
+UInt256(154074395550978868, 4509827440141249312, 0, 0),
+UInt256(308148791101957736, 9019654880282498624, 0, 0),
+UInt256(616297582203915472, 18039309760564997248, 0, 0),
+UInt256(1232595164407830945, 17631875447420442880, 0, 0),
+UInt256(246519032881566189, 3526375089484088576, 0, 0),
+UInt256(493038065763132378, 7052750178968177152, 0, 0),
+UInt256(986076131526264756, 14105500357936354304, 0, 0),
+UInt256(197215226305252951, 6510448886329181184, 0, 0),
+UInt256(394430452610505902, 13020897772658362368, 0, 0),
+UInt256(788860905221011805, 7595051471607173120, 0, 0),
+UInt256(157772181044202361, 1519010294321434624, 0, 0),
+UInt256(315544362088404722, 3038020588642869248, 0, 0),
+UInt256(631088724176809444, 6076041177285738496, 0, 0),
+UInt256(1262177448353618888, 12152082354571476992, 0, 0),
+UInt256(252435489670723777, 13498462915140026368, 0, 0),
+UInt256(504870979341447555, 8550181756570501120, 0, 0),
+UInt256(1009741958682895110, 17100363513141002240, 0, 0),
+UInt256(201948391736579022, 3420072702628200448, 0, 0),
+UInt256(403896783473158044, 6840145405256400896, 0, 0),
+UInt256(807793566946316088, 13680290810512801792, 0, 0),
+UInt256(161558713389263217, 13804104606328291328, 0, 0),
+UInt256(323117426778526435, 9161465138947031040, 0, 0),
+UInt256(646234853557052870, 18322930277894062080, 0, 0),
+UInt256(129246970711410574, 3664586055578812416, 0, 0),
+UInt256(258493941422821148, 7329172111157624832, 0, 0),
+UInt256(516987882845642296, 14658344222315249664, 0, 0),
+UInt256(1033975765691284593, 10869944370920947712, 0, 0),
+UInt256(206795153138256918, 13242035318409920512, 0, 0),
+UInt256(413590306276513837, 8037326563110289408, 0, 0),
+UInt256(827180612553027674, 16074653126220578816, 0, 0),
+UInt256(165436122510605534, 17972325884211757056, 0, 0),
+UInt256(330872245021211069, 17497907694713962496, 0, 0),
+UInt256(661744490042422139, 16549071315718373376, 0, 0),
+UInt256(132348898008484427, 18067209522111315968, 0, 0),
+UInt256(264697796016968855, 17687674970513080320, 0, 0),
+UInt256(529395592033937711, 16928605867316609024, 0, 0),
+UInt256(1058791184067875423, 15410467660923666432, 0, 0),
+UInt256(211758236813575084, 14150139976410464256, 0, 0),
+UInt256(423516473627150169, 9853535879111376896, 0, 0),
+UInt256(847032947254300339, 1260327684513202176, 0, 0),
+UInt256(169406589450860067, 15009460795870281728, 0, 0),
+UInt256(338813178901720135, 11572177518031011840, 0, 0),
+]
+
+private let bid_multipliers2_bid64_25: [UInt256] = [
+UInt256(677626357803440271, 4697610962352472064, 0, 0),
+UInt256(135525271560688054, 4628871007212404736, 0, 0),
+UInt256(271050543121376108, 9257742014424809472, 0, 0),
+UInt256(542101086242752217, 68739955140067328, 0, 0),
+UInt256(1084202172485504434, 137479910280134656, 0, 0),
+UInt256(216840434497100886, 14784891241023668224, 0, 0),
+UInt256(433680868994201773, 11123038408337784832, 0, 0),
+UInt256(867361737988403547, 3799332742966018048, 0, 0),
+UInt256(173472347597680709, 8138564178077024256, 0, 0),
+UInt256(346944695195361418, 16277128356154048512, 0, 0),
+UInt256(693889390390722837, 14107512638598545408, 0, 0),
+UInt256(138777878078144567, 10200200157203529728, 0, 0),
+UInt256(277555756156289135, 1953656240697507840, 0, 0),
+UInt256(555111512312578270, 3907312481395015680, 0, 0),
+UInt256(1110223024625156540, 7814624962790031360, 0, 0),
+UInt256(222044604925031308, 1562924992558006272, 0, 0),
+UInt256(444089209850062616, 3125849985116012544, 0, 0),
+UInt256(888178419700125232, 6251699970232025088, 0, 0),
+UInt256(177635683940025046, 8629037623530225664, 0, 0),
+UInt256(355271367880050092, 17258075247060451328, 0, 0),
+UInt256(710542735760100185, 16069406420411351040, 0, 0),
+UInt256(142108547152020037, 3213881284082270208, 0, 0),
+UInt256(284217094304040074, 6427762568164540416, 0, 0),
+UInt256(568434188608080148, 12855525136329080832, 0, 0),
+UInt256(1136868377216160297, 7264306198948610048, 0, 0),
+UInt256(227373675443232059, 8831558869273542656, 0, 0),
+UInt256(454747350886464118, 17663117738547085312, 0, 0),
+UInt256(909494701772928237, 16879491403384619008, 0, 0),
+UInt256(181898940354585647, 10754595910160744448, 0, 0),
+UInt256(363797880709171295, 3062447746611937280, 0, 0),
+UInt256(727595761418342590, 6124895493223874560, 0, 0),
+UInt256(145519152283668518, 1224979098644774912, 0, 0),
+UInt256(291038304567337036, 2449958197289549824, 0, 0),
+UInt256(582076609134674072, 4899916394579099648, 0, 0),
+UInt256(1164153218269348144, 9799832789158199296, 0, 0),
+UInt256(232830643653869628, 16717361816799281152, 0, 0),
+UInt256(465661287307739257, 14987979559889010688, 0, 0),
+UInt256(931322574615478515, 11529215046068469760, 0, 0),
+UInt256(186264514923095703, 2305843009213693952, 0, 0),
+UInt256(372529029846191406, 4611686018427387904, 0, 0),
+UInt256(745058059692382812, 9223372036854775808, 0, 0),
+UInt256(149011611938476562, 9223372036854775808, 0, 0),
+UInt256(298023223876953125, 0, 0, 0),
+UInt256(596046447753906250, 0, 0, 0),
+UInt256(1192092895507812500, 0, 0, 0),
+UInt256(238418579101562500, 0, 0, 0),
+UInt256(476837158203125000, 0, 0, 0),
+UInt256(953674316406250000, 0, 0, 0),
+UInt256(190734863281250000, 0, 0, 0),
+UInt256(381469726562500000, 0, 0, 0),
+]
+
+private let bid_multipliers2_bid64_26: [UInt256] = [
+UInt256(762939453125000000, 0, 0, 0),
+UInt256(152587890625000000, 0, 0, 0),
+UInt256(305175781250000000, 0, 0, 0),
+UInt256(610351562500000000, 0, 0, 0),
+UInt256(1220703125000000000, 0, 0, 0),
+UInt256(244140625000000000, 0, 0, 0),
+UInt256(488281250000000000, 0, 0, 0),
+UInt256(976562500000000000, 0, 0, 0),
+UInt256(195312500000000000, 0, 0, 0),
+UInt256(390625000000000000, 0, 0, 0),
+UInt256(781250000000000000, 0, 0, 0),
+UInt256(156250000000000000, 0, 0, 0),
+UInt256(312500000000000000, 0, 0, 0),
+UInt256(625000000000000000, 0, 0, 0),
+UInt256(1250000000000000000, 0, 0, 0),
+UInt256(250000000000000000, 0, 0, 0),
+UInt256(500000000000000000, 0, 0, 0),
+UInt256(1000000000000000000, 0, 0, 0),
+UInt256(200000000000000000, 0, 0, 0),
+UInt256(400000000000000000, 0, 0, 0),
+UInt256(800000000000000000, 0, 0, 0),
+UInt256(160000000000000000, 0, 0, 0),
+UInt256(320000000000000000, 0, 0, 0),
+UInt256(640000000000000000, 0, 0, 0),
+UInt256(1280000000000000000, 0, 0, 0),
+UInt256(256000000000000000, 0, 0, 0),
+UInt256(512000000000000000, 0, 0, 0),
+UInt256(1024000000000000000, 0, 0, 0),
+UInt256(204800000000000000, 0, 0, 0),
+UInt256(409600000000000000, 0, 0, 0),
+UInt256(819200000000000000, 0, 0, 0),
+UInt256(163840000000000000, 0, 0, 0),
+UInt256(327680000000000000, 0, 0, 0),
+UInt256(655360000000000000, 0, 0, 0),
+UInt256(131072000000000000, 0, 0, 0),
+UInt256(262144000000000000, 0, 0, 0),
+UInt256(524288000000000000, 0, 0, 0),
+UInt256(1048576000000000000, 0, 0, 0),
+UInt256(209715200000000000, 0, 0, 0),
+UInt256(419430400000000000, 0, 0, 0),
+UInt256(838860800000000000, 0, 0, 0),
+UInt256(167772160000000000, 0, 0, 0),
+UInt256(335544320000000000, 0, 0, 0),
+UInt256(671088640000000000, 0, 0, 0),
+UInt256(134217728000000000, 0, 0, 0),
+UInt256(268435456000000000, 0, 0, 0),
+UInt256(536870912000000000, 0, 0, 0),
+UInt256(1073741824000000000, 0, 0, 0),
+UInt256(214748364800000000, 0, 0, 0),
+UInt256(429496729600000000, 0, 0, 0),
+]
+
+private let bid_multipliers2_bid64_27: [UInt256] = [
+UInt256(858993459200000000, 0, 0, 0),
+UInt256(171798691840000000, 0, 0, 0),
+UInt256(343597383680000000, 0, 0, 0),
+UInt256(687194767360000000, 0, 0, 0),
+UInt256(137438953472000000, 0, 0, 0),
+UInt256(274877906944000000, 0, 0, 0),
+UInt256(549755813888000000, 0, 0, 0),
+UInt256(1099511627776000000, 0, 0, 0),
+UInt256(219902325555200000, 0, 0, 0),
+UInt256(439804651110400000, 0, 0, 0),
+UInt256(879609302220800000, 0, 0, 0),
+UInt256(175921860444160000, 0, 0, 0),
+UInt256(351843720888320000, 0, 0, 0),
+UInt256(703687441776640000, 0, 0, 0),
+UInt256(140737488355328000, 0, 0, 0),
+UInt256(281474976710656000, 0, 0, 0),
+UInt256(562949953421312000, 0, 0, 0),
+UInt256(1125899906842624000, 0, 0, 0),
+UInt256(225179981368524800, 0, 0, 0),
+UInt256(450359962737049600, 0, 0, 0),
+UInt256(900719925474099200, 0, 0, 0),
+UInt256(180143985094819840, 0, 0, 0),
+UInt256(360287970189639680, 0, 0, 0),
+UInt256(720575940379279360, 0, 0, 0),
+UInt256(144115188075855872, 0, 0, 0),
+UInt256(288230376151711744, 0, 0, 0),
+UInt256(576460752303423488, 0, 0, 0),
+UInt256(1152921504606846976, 0, 0, 0),
+UInt256(230584300921369395, 3689348814741910323, 3689348814741910323, 3689348814741910324),
+UInt256(461168601842738790, 7378697629483820646, 7378697629483820646, 7378697629483820647),
+UInt256(922337203685477580, 14757395258967641292, 14757395258967641292, 14757395258967641293),
+UInt256(184467440737095516, 2951479051793528258, 10330176681277348904, 17708874310761169552),
+UInt256(368934881474191032, 5902958103587056517, 2213609288845146193, 16971004547812787487),
+UInt256(737869762948382064, 11805916207174113034, 4427218577690292387, 15495265021916023358),
+UInt256(147573952589676412, 17118578500402463899, 11953490159763789447, 3099053004383204672),
+UInt256(295147905179352825, 15790412927095376183, 5460236245818027278, 6198106008766409343),
+UInt256(590295810358705651, 13134081780481200750, 10920472491636054556, 12396212017532818686),
+UInt256(1180591620717411303, 7821419487252849885, 3394200909562557497, 6345679961356085756),
+UInt256(236118324143482260, 12632330341676300946, 11746886626138242469, 1269135992271217152),
+UInt256(472236648286964521, 6817916609643050277, 5047029178566933322, 2538271984542434303),
+UInt256(944473296573929042, 13635833219286100554, 10094058357133866644, 5076543969084868605),
+UInt256(188894659314785808, 10105864273341040757, 5708160486168683652, 1015308793816973721),
+UInt256(377789318629571617, 1764984472972529898, 11416320972337367304, 2030617587633947442),
+UInt256(755578637259143234, 3529968945945059797, 4385897870965182992, 4061235175267894884),
+UInt256(151115727451828646, 15463389048156653252, 4566528388934946921, 11880293479279309947),
+UInt256(302231454903657293, 12480034022603754888, 9133056777869893843, 5313842884849068277),
+UInt256(604462909807314587, 6513323971497958160, 18266113555739787686, 10627685769698136554),
+UInt256(1208925819614629174, 13026647942995916321, 18085483037770023757, 2808627465686721491),
+UInt256(241785163922925834, 17362724847566824557, 3617096607554004751, 7940423122621164945),
+UInt256(483570327845851669, 16278705621424097498, 7234193215108009502, 15880846245242329890),
+]
+
+private let bid_multipliers2_bid64_28: [UInt256] = [
+UInt256(967140655691703339, 14110667169138643380, 14468386430216019005, 13314948416775108163),
+UInt256(193428131138340667, 17579528692795369968, 17651072545010845093, 17420384942322662926),
+UInt256(386856262276681335, 16712313311881188321, 16855401016312138571, 16394025810935774235),
+UInt256(773712524553362671, 14977882550052825027, 15264057958914725527, 14341307548161996854),
+UInt256(154742504910672534, 6684925324752475328, 14120858036008676075, 2868261509632399371),
+UInt256(309485009821345068, 13369850649504950657, 9794971998307800534, 5736523019264798742),
+UInt256(618970019642690137, 8292957225300349699, 1143199922906049452, 11473046038529597483),
+UInt256(1237940039285380274, 16585914450600699398, 2286399845812098905, 4499348003349643349),
+UInt256(247588007857076054, 18074578149087781172, 7835977598646240427, 8278567230153749317),
+UInt256(495176015714152109, 17702412224466010728, 15671955197292480854, 16557134460307498633),
+UInt256(990352031428304219, 16958080375222469841, 12897166320875410093, 14667524846905445649),
+UInt256(198070406285660843, 18149011334012135261, 2579433264175082018, 14001551413606820100),
+UInt256(396140812571321687, 17851278594314718906, 5158866528350164037, 9556358753504088583),
+UInt256(792281625142643375, 17255813114919886196, 10317733056700328075, 665973433298625550),
+UInt256(158456325028528675, 3451162622983977239, 5752895426081975938, 3822543501401635434),
+UInt256(316912650057057350, 6902325245967954478, 11505790852163951876, 7645087002803270867),
+UInt256(633825300114114700, 13804650491935908957, 4564837630618352136, 15290174005606541733),
+UInt256(1267650600228229401, 9162556910162266298, 9129675261236704273, 12133603937503531849),
+UInt256(253530120045645880, 5521860196774363582, 16583330311214982147, 9805418416984527017),
+UInt256(507060240091291760, 11043720393548727165, 14719916548720412679, 1164092760259502417),
+UInt256(1014120480182583521, 3640696713387902715, 10993089023731273742, 2328185520519004833),
+UInt256(202824096036516704, 4417488157419490866, 5887966619488165071, 11533683548329531937),
+UInt256(405648192073033408, 8834976314838981732, 11775933238976330143, 4620623022949512257),
+UInt256(811296384146066816, 17669952629677963465, 5105122404243108670, 9241246045899024513),
+UInt256(162259276829213363, 7223339340677503016, 4710373295590532057, 5537598023921715226),
+UInt256(324518553658426726, 14446678681355006032, 9420746591181064114, 11075196047843430452),
+UInt256(649037107316853453, 10446613289000460449, 394749108652576613, 3703648021977309287),
+UInt256(129807421463370690, 13157369102025823059, 7457647451214335969, 740729604395461858),
+UInt256(259614842926741381, 7867994130342094502, 14915294902428671938, 1481459208790923715),
+UInt256(519229685853482762, 15735988260684189005, 11383845731147792260, 2962918417581847430),
+UInt256(1038459371706965525, 13025232447658826395, 4320947388586032904, 5925836835163694859),
+UInt256(207691874341393105, 2605046489531765279, 864189477717206580, 15942562626000380265),
+UInt256(415383748682786210, 5210092979063530558, 1728378955434413161, 13438381178291208914),
+UInt256(830767497365572420, 10420185958127061116, 3456757910868826323, 8430018282872866211),
+UInt256(166153499473114484, 2084037191625412223, 4380700396915675587, 16443398915542214535),
+UInt256(332306998946228968, 4168074383250824446, 8761400793831351175, 14440053757374877454),
+UInt256(664613997892457936, 8336148766501648892, 17522801587662702351, 10433363441040203292),
+UInt256(132922799578491587, 5356578568042240101, 14572606761758271439, 16844067947175681952),
+UInt256(265845599156983174, 10713157136084480203, 10698469449806991263, 15241391820641812287),
+UInt256(531691198313966349, 2979570198459408791, 2950194825904430911, 12036039567574072957),
+UInt256(1063382396627932698, 5959140396918817582, 5900389651808861823, 5625335061438594297),
+UInt256(212676479325586539, 12259874523609494486, 1180077930361772364, 12193113456513449829),
+UInt256(425352958651173079, 6073004973509437356, 2360155860723544729, 5939482839317348042),
+UInt256(850705917302346158, 12146009947018874712, 4720311721447089458, 11878965678634696084),
+UInt256(170141183460469231, 13497248433629505912, 944062344289417891, 13443839579952670187),
+UInt256(340282366920938463, 8547752793549460208, 1888124688578835783, 8440935086195788757),
+UInt256(680564733841876926, 17095505587098920416, 3776249377157671566, 16881870172391577514),
+UInt256(136112946768375385, 7108449932161694406, 8133947504915354959, 14444420478704046473),
+UInt256(272225893536750770, 14216899864323388812, 16267895009830709919, 10442096883698541329),
+UInt256(544451787073501541, 9987055654937226009, 14089045945951868223, 2437449693687531042),
+]
+
+private let bid_multipliers2_bid64_29: [UInt256] = [
+UInt256(1088903574147003083, 1527367236164900403, 9731347818194184830, 4874899387375062083),
+UInt256(217780714829400616, 11373519891458711050, 5635618378380747289, 4664328692216922740),
+UInt256(435561429658801233, 4300295709207870484, 11271236756761494578, 9328657384433845480),
+UInt256(871122859317602466, 8600591418415740969, 4095729439813437541, 210570695158139343),
+UInt256(174224571863520493, 5409467098425058517, 819145887962687508, 3731462953773538192),
+UInt256(348449143727040986, 10818934196850117034, 1638291775925375016, 7462925907547076384),
+UInt256(696898287454081973, 3191124319990682452, 3276583551850750032, 14925851815094152767),
+UInt256(139379657490816394, 11706271308223867460, 655316710370150006, 10363867992502651200),
+UInt256(278759314981632789, 4965798542738183304, 1310633420740300013, 2280991911295750784),
+UInt256(557518629963265578, 9931597085476366608, 2621266841480600026, 4561983822591501568),
+UInt256(1115037259926531157, 1416450097243181600, 5242533682961200052, 9123967645183003135),
+UInt256(223007451985306231, 7661987648932456966, 8427204366076060656, 16582188788004241920),
+UInt256(446014903970612462, 15323975297864913932, 16854408732152121313, 14717633502298932224),
+UInt256(892029807941224925, 12201206522020276249, 15262073390594691011, 10988522930888312831),
+UInt256(178405961588244985, 2440241304404055249, 17809809937086579495, 2197704586177662567),
+UInt256(356811923176489970, 4880482608808110499, 17172875800463607374, 4395409172355325133),
+UInt256(713623846352979940, 9760965217616220999, 15899007527217663132, 8790818344710650265),
+UInt256(142724769270595988, 1952193043523244199, 17937196764411173919, 5447512483684040377),
+UInt256(285449538541191976, 3904386087046488399, 17427649455112796222, 10895024967368080753),
+UInt256(570899077082383952, 7808772174092976799, 16408554836516040829, 3343305861026609889),
+UInt256(1141798154164767904, 15617544348185953599, 14370365599322530042, 6686611722053219777),
+UInt256(228359630832953580, 17880904128604832012, 13942119564090236978, 1337322344410643956),
+UInt256(456719261665907161, 17315064183500112409, 9437495054470922340, 2674644688821287911),
+UInt256(913438523331814323, 16183384293290673203, 428246035232293064, 5349289377642575822),
+UInt256(182687704666362864, 14304723302883865610, 3774998021788368936, 1069857875528515165),
+UInt256(365375409332725729, 10162702532058179604, 7549996043576737872, 2139715751057030329),
+UInt256(730750818665451459, 1878660990406807592, 15099992087153475744, 4279431502114060657),
+UInt256(146150163733090291, 15133127457049002811, 6709347232172605472, 855886300422812132),
+UInt256(292300327466180583, 11819510840388454006, 13418694464345210944, 1711772600845624263),
+UInt256(584600654932361167, 5192277607067356397, 8390644854980870272, 3423545201691248526),
+UInt256(1169201309864722334, 10384555214134712794, 16781289709961740544, 6847090403382497052),
+UInt256(233840261972944466, 16834306301794583851, 14424304386218079078, 8748115710160320057),
+UInt256(467680523945888933, 15221868529879616087, 10401864698726606540, 17496231420320640114),
+UInt256(935361047891777867, 11996992986049680559, 2356985323743661465, 16545718766931728611),
+UInt256(187072209578355573, 9778096226693756758, 4160745879490642616, 6998492568128256046),
+UInt256(374144419156711147, 1109448379677961900, 8321491758981285232, 13996985136256512091),
+UInt256(748288838313422294, 2218896759355923800, 16642983517962570465, 9547226198803472566),
+UInt256(149657767662684458, 15201174610838826052, 18085991962560155385, 16666840498728335806),
+UInt256(299315535325368917, 11955605147968100489, 17725239851410759155, 14886936923747119996),
+UInt256(598631070650737835, 5464466222226649363, 17003735629111966695, 11327129773784688376),
+UInt256(1197262141301475670, 10928932444453298727, 15560727184514381775, 4207515473859825135),
+UInt256(239452428260295134, 2185786488890659745, 10490843066386697001, 8220200724255785674),
+UInt256(478904856520590268, 4371572977781319491, 2534942059063842386, 16440401448511571347),
+UInt256(957809713041180536, 8743145955562638982, 5069884118127684773, 14434058823313591078),
+UInt256(191561942608236107, 5437978005854438119, 12082023267851267924, 6576160579404628539),
+UInt256(383123885216472214, 10875956011708876239, 5717302461992984232, 13152321158809257078),
+UInt256(766247770432944429, 3305167949708200862, 11434604923985968465, 7857898243908962539),
+UInt256(153249554086588885, 15418428848909281465, 5976269799539104016, 5260928463523702831),
+UInt256(306499108173177771, 12390113624109011314, 11952539599078208032, 10521856927047405662),
+UInt256(612998216346355543, 6333483174508471013, 5458335124446864449, 2596969780385259708),
+]
+
+private let bid_multipliers2_bid64_30: [UInt256] = [
+UInt256(1225996432692711086, 12666966349016942026, 10916670248893728898, 5193939560770519416),
+UInt256(245199286538542217, 6222742084545298728, 9562031679262566426, 1038787912154103884),
+UInt256(490398573077084434, 12445484169090597457, 677319284815581236, 2077575824308207767),
+UInt256(980797146154168869, 6444224264471643298, 1354638569631162472, 4155151648616415533),
+UInt256(196159429230833773, 16046240111861969952, 7649625343410053140, 15588425588690924400),
+UInt256(392318858461667547, 13645736150014388288, 15299250686820106281, 12730107103672297183),
+UInt256(784637716923335095, 8844728226319224961, 12151757299930660947, 7013470133635042750),
+UInt256(156927543384667019, 1768945645263844992, 6119700274728042512, 12470740470952739520),
+UInt256(313855086769334038, 3537891290527689984, 12239400549456085025, 6494736868195927423),
+UInt256(627710173538668076, 7075782581055379969, 6032057025202618434, 12989473736391854846),
+UInt256(1255420347077336152, 14151565162110759938, 12064114050405236869, 7532203399074158076),
+UInt256(251084069415467230, 10209010661905972634, 2412822810081047373, 16263835938782472908),
+UInt256(502168138830934461, 1971277250102393652, 4825645620162094747, 14080927803855394200),
+UInt256(1004336277661868922, 3942554500204787304, 9651291240324189495, 9715111534001236784),
+UInt256(200867255532373784, 8167208529524778107, 5619607062806748222, 5632371121542157680),
+UInt256(401734511064747568, 16334417059049556214, 11239214125613496444, 11264742243084315360),
+UInt256(803469022129495137, 14222090044389560813, 4031684177517441273, 4082740412459079104),
+UInt256(160693804425899027, 10223115638361732809, 806336835503488254, 11884594526717546791),
+UInt256(321387608851798055, 1999487203013914002, 1612673671006976509, 5322444979725541965),
+UInt256(642775217703596110, 3998974406027828004, 3225347342013953018, 10644889959451083930),
+UInt256(128555043540719222, 799794881205565600, 15402464727370431896, 9507675621374037433),
+UInt256(257110087081438444, 1599589762411131201, 12358185381031312177, 568607169038523249),
+UInt256(514220174162876888, 3199179524822262403, 6269626688353072738, 1137214338077046498),
+UInt256(1028440348325753776, 6398359049644524806, 12539253376706145476, 2274428676154092995),
+UInt256(205688069665150755, 4969020624670815284, 9886548304825049741, 11522932179456549569),
+UInt256(411376139330301510, 9938041249341630569, 1326352535940547867, 4599120285203547521),
+UInt256(822752278660603021, 1429338424973709522, 2652705071881095734, 9198240570407095042),
+UInt256(164550455732120604, 3975216499736652227, 11598587458601950116, 9218345743565239655),
+UInt256(329100911464241208, 7950432999473304455, 4750430843494348616, 18436691487130479310),
+UInt256(658201822928482416, 15900865998946608910, 9500861686988697233, 18426638900551407003),
+UInt256(131640364585696483, 6869522014531232105, 5589521152139649769, 18442723039077922694),
+UInt256(263280729171392966, 13739044029062464210, 11179042304279299539, 18438702004446293771),
+UInt256(526561458342785933, 9031343984415376805, 3911340534849047463, 18430659935183035926),
+UInt256(1053122916685571866, 18062687968830753610, 7822681069698094927, 18414575796656520236),
+UInt256(210624583337114373, 7301886408508061045, 5253885028681529308, 14750961603557035017),
+UInt256(421249166674228746, 14603772817016122090, 10507770057363058617, 11055179133404518418),
+UInt256(842498333348457493, 10760801560322692565, 2568796041016565619, 3663614193099485219),
+UInt256(168499666669691498, 13220206756290269482, 11581805652429044093, 8111420468103717691),
+UInt256(336999333339382997, 7993669438870987349, 4716867231148536570, 16222840936207435381),
+UInt256(673998666678765994, 15987338877741974698, 9433734462297073141, 13998937798705319145),
+UInt256(134799733335753198, 17954863034516036232, 9265444521943235274, 13867834003966794799),
+UInt256(269599466671506397, 17462981995322520849, 84144970176918933, 9288923934224037981),
+UInt256(539198933343012795, 16479219916935490082, 168289940353837867, 131103794738524346),
+UInt256(1078397866686025591, 14511695760161428548, 336579880707675734, 262207589477048692),
+UInt256(215679573337205118, 6591687966774196032, 14824711235109176439, 11120487962121140708),
+UInt256(431359146674410236, 13183375933548392065, 11202678396508801263, 3794231850532729800),
+UInt256(862718293348820473, 7920007793387232515, 3958612719308050910, 7588463701065459600),
+UInt256(172543658669764094, 12652048002903177472, 11859768988087341151, 12585739184438822890),
+UInt256(345087317339528189, 6857351932096803329, 5272793902465130687, 6724734295168094164),
+UInt256(690174634679056378, 13714703864193606658, 10545587804930261374, 13449468590336188327),
+]
+
+private let bid_multipliers2_bid64_31: [UInt256] = [
+UInt256(138034926935811275, 13810987217064452301, 5798466375727962598, 2689893718067237666),
+UInt256(276069853871622551, 9175230360419352986, 11596932751455925196, 5379787436134475331),
+UInt256(552139707743245102, 18350460720838705973, 4747121429202298776, 10759574872268950662),
+UInt256(1104279415486490205, 18254177367967860330, 9494242858404597553, 3072405670828349707),
+UInt256(220855883097298041, 3650835473593572066, 1898848571680919510, 11682527578391400911),
+UInt256(441711766194596082, 7301670947187144132, 3797697143361839021, 4918311083073250206),
+UInt256(883423532389192164, 14603341894374288264, 7595394286723678042, 9836622166146500412),
+UInt256(176684706477838432, 17678063637842498945, 12587125301570466578, 1967324433229300083),
+UInt256(353369412955676865, 16909383201975446275, 6727506529431381540, 3934648866458600165),
+UInt256(706738825911353731, 15372022330241340934, 13455013058862763080, 7869297732917200330),
+UInt256(141347765182270746, 6763753280790178510, 2691002611772552616, 1573859546583440066),
+UInt256(282695530364541492, 13527506561580357020, 5382005223545105232, 3147719093166880132),
+UInt256(565391060729082985, 8608269049451162424, 10764010447090210464, 6295438186333760264),
+UInt256(1130782121458165970, 17216538098902324849, 3081276820470869312, 12590876372667520527),
+UInt256(226156424291633194, 3443307619780464969, 15373650623061815155, 6207524089275414429),
+UInt256(452312848583266388, 6886615239560929939, 12300557172414078694, 12415048178550828857),
+UInt256(904625697166532776, 13773230479121859879, 6154370271118605773, 6383352283392106098),
+UInt256(180925139433306555, 6443994910566282299, 1230874054223721154, 12344716900904152190),
+UInt256(361850278866613110, 12887989821132564598, 2461748108447442309, 6242689728098752763),
+UInt256(723700557733226221, 7329235568555577580, 4923496216894884618, 12485379456197505525),
+UInt256(144740111546645244, 5155195928453025839, 4674048058120887246, 17254471150207142398),
+UInt256(289480223093290488, 10310391856906051678, 9348096116241774493, 16062198226704733180),
+UInt256(578960446186580977, 2174039640102551741, 249448158773997371, 13677652379699914743),
+UInt256(1157920892373161954, 4348079280205103482, 498896317547994743, 8908560685690277870),
+UInt256(231584178474632390, 15627011115008661989, 3789128078251509271, 16539107396105696867),
+UInt256(463168356949264781, 12807278156307772362, 7578256156503018543, 14631470718501842118),
+UInt256(926336713898529563, 7167812238905993108, 15156512313006037087, 10816197363294132620),
+UInt256(185267342779705912, 12501608892006929591, 6720651277343117740, 13231285916884557494),
+UInt256(370534685559411825, 6556473710304307566, 13441302554686235481, 8015827760059563371),
+UInt256(741069371118823650, 13112947420608615133, 8435861035662919346, 16031655520119126742),
+UInt256(148213874223764730, 2622589484121723026, 12755218651358314838, 17963726362991466642),
+UInt256(296427748447529460, 5245178968243446053, 7063693229007078061, 17480708652273381667),
+UInt256(592855496895058920, 10490357936486892106, 14127386458014156123, 16514673230837211717),
+UInt256(1185710993790117841, 2533971799264232597, 9808028842318760631, 14582602387964871818),
+UInt256(237142198758023568, 4196143174594756842, 13029652212689483095, 17673915736560615657),
+UInt256(474284397516047136, 8392286349189513685, 7612560351669414575, 16901087399411679697),
+UInt256(948568795032094272, 16784572698379027370, 15225120703338829151, 15355430725113807777),
+UInt256(189713759006418854, 10735612169159626120, 10423721770151586476, 14139132589248492525),
+UInt256(379427518012837709, 3024480264609700625, 2400699466593621337, 9831521104787433434),
+UInt256(758855036025675418, 6048960529219401250, 4801398933187242675, 1216298135865315252),
+UInt256(151771007205135083, 12277838550069611219, 12028326230863179504, 11311306071398794020),
+UInt256(303542014410270167, 6108933026429670823, 5609908388016807393, 4175868069088036424),
+UInt256(607084028820540334, 12217866052859341646, 11219816776033614786, 8351736138176072848),
+UInt256(1214168057641080669, 5988988032009131677, 3992889478357677956, 16703472276352145696),
+UInt256(242833611528216133, 15955192865369467628, 4487926710413445914, 10719392084754249786),
+UInt256(485667223056432267, 13463641657029383640, 8975853420826891829, 2992040095798947956),
+UInt256(971334446112864535, 8480539240349215664, 17951706841653783658, 5984080191597895911),
+UInt256(194266889222572907, 1696107848069843132, 18347736627298398024, 8575513667803399829),
+UInt256(388533778445145814, 3392215696139686265, 18248729180887244432, 17151027335606799657),
+UInt256(777067556890291628, 6784431392279372531, 18050714288064937249, 15855310597504047698),
+]
+
+private let bid_multipliers2_bid64_32: [UInt256] = [
+UInt256(155413511378058325, 12424932722681605475, 18367538116580628742, 14239108563726540510),
+UInt256(310827022756116651, 6403121371653659335, 18288332159451705869, 10031473053743529403),
+UInt256(621654045512233302, 12806242743307318671, 18129920245193860123, 1616202033777507189),
+UInt256(1243308091024466605, 7165741412905085727, 17813096416678168630, 3232404067555014378),
+UInt256(248661618204893321, 1433148282581017145, 10941316912819454372, 8025178442994823522),
+UInt256(497323236409786642, 2866296565162034291, 3435889751929357128, 16050356885989647044),
+UInt256(994646472819573284, 5732593130324068582, 6871779503858714257, 13653969698269742472),
+UInt256(198929294563914656, 15903913885032455009, 5063704715513653174, 13798840383879679464),
+UInt256(397858589127829313, 13361083696355358402, 10127409431027306349, 9150936694049807312),
+UInt256(795717178255658627, 8275423319001165189, 1808074788345061082, 18301873388099614624),
+UInt256(159143435651131725, 9033782293284053684, 4050963772410922539, 14728421121845653895),
+UInt256(318286871302263450, 18067564586568107368, 8101927544821845079, 11010098169981756173),
+UInt256(636573742604526901, 17688385099426663120, 16203855089643690159, 3573452266253960730),
+UInt256(1273147485209053803, 16930026125143774625, 13960966105577828702, 7146904532507921459),
+UInt256(254629497041810760, 14454051669254485894, 13860239665341296710, 1429380906501584292),
+UInt256(509258994083621521, 10461359264799420173, 9273735256973041804, 2858761813003168584),
+UInt256(1018517988167243043, 2475974455889288731, 100726440236531992, 5717523626006337167),
+UInt256(203703597633448608, 11563241335403588715, 14777540547014947691, 4832853539943177757),
+UInt256(407407195266897217, 4679738597097625815, 11108337020320343766, 9665707079886355514),
+UInt256(814814390533794434, 9359477194195251631, 3769929966931135917, 884670086063159411),
+UInt256(162962878106758886, 16629290697806691619, 753985993386227183, 7555631646696452529),
+UInt256(325925756213517773, 14811837321903831622, 1507971986772454366, 15111263293392905057),
+UInt256(651851512427035547, 11176930570098111628, 3015943973544908733, 11775782513076258498),
+UInt256(130370302485407109, 9614083743503442972, 603188794708981746, 13423202946840982670),
+UInt256(260740604970814219, 781423413297334328, 1206377589417963493, 8399661819972413723),
+UInt256(521481209941628438, 1562846826594668656, 2412755178835926986, 16799323639944827445),
+UInt256(1042962419883256876, 3125693653189337312, 4825510357671853973, 15151903206180103274),
+UInt256(208592483976651375, 4314487545379777785, 12033148515760101764, 6719729455977930978),
+UInt256(417184967953302750, 8628975090759555571, 5619552957810651912, 13439458911955861956),
+UInt256(834369935906605500, 17257950181519111142, 11239105915621303825, 8432173750202172296),
+UInt256(166873987181321100, 3451590036303822228, 9626518812608081411, 9065132379524255106),
+UInt256(333747974362642200, 6903180072607644457, 806293551506611206, 18130264759048510211),
+UInt256(667495948725284400, 13806360145215288914, 1612587103013222413, 17813785444387468806),
+UInt256(133499189745056880, 2761272029043057782, 15079912679570285775, 10941454718361314408),
+UInt256(266998379490113760, 5522544058086115565, 11713081285431019935, 3436165363013077200),
+UInt256(533996758980227520, 11045088116172231131, 4979418497152488254, 6872330726026154399),
+UInt256(1067993517960455041, 3643432158634910646, 9958836994304976508, 13744661452052308797),
+UInt256(213598703592091008, 4418035246468892452, 9370465028344815948, 2748932290410461760),
+UInt256(427197407184182016, 8836070492937784905, 294185982980080280, 5497864580820923519),
+UInt256(854394814368364032, 17672140985875569810, 588371965960160560, 10995729161641847038),
+UInt256(170878962873672806, 10913125826658934608, 7496372022675852758, 9577843461812190054),
+UInt256(341757925747345613, 3379507579608317600, 14992744045351705517, 708942849914828492),
+UInt256(683515851494691226, 6759015159216635201, 11538744016993859418, 1417885699829656984),
+UInt256(136703170298938245, 5041151846585237363, 9686446432882592530, 283577139965931397),
+UInt256(273406340597876490, 10082303693170474727, 926148792055633444, 567154279931862794),
+UInt256(546812681195752981, 1717863312631397838, 1852297584111266888, 1134308559863725587),
+UInt256(1093625362391505962, 3435726625262795676, 3704595168222533776, 2268617119727451174),
+UInt256(218725072478301192, 8065842954536379781, 11808965477870237724, 15211118682913131528),
+UInt256(437450144956602384, 16131685909072759563, 5171186882030923833, 11975493292116711440),
+UInt256(874900289913204769, 13816627744435967510, 10342373764061847667, 5504242510523871263),
+]
+
+private let bid_multipliers2_bid64_33: [UInt256] = [
+UInt256(174980057982640953, 17520720807854834794, 16825870011780010826, 4790197316846684576),
+UInt256(349960115965281907, 16594697542000117973, 15204995949850470036, 9580394633693369152),
+UInt256(699920231930563815, 14742651010290684331, 11963247825991388457, 714045193677186687),
+UInt256(139984046386112763, 2948530202058136866, 6081998379940188014, 11210855482961168307),
+UInt256(279968092772225526, 5897060404116273732, 12163996759880376029, 3974966892212784998),
+UInt256(559936185544451052, 11794120808232547465, 5881249446051200442, 7949933784425569996),
+UInt256(1119872371088902105, 5141497542755543314, 11762498892102400884, 15899867568851139992),
+UInt256(223974474217780421, 1028299508551108662, 17109895037388121469, 14248019957995958968),
+UInt256(447948948435560842, 2056599017102217325, 15773046001066691323, 10049295842282366320),
+UInt256(895897896871121684, 4113198034204434651, 13099347928423831031, 1651847610855181024),
+UInt256(179179579374224336, 15580034865808528223, 2619869585684766206, 4019718336912946528),
+UInt256(358359158748448673, 12713325657907504830, 5239739171369532412, 8039436673825893056),
+UInt256(716718317496897347, 6979907242105458044, 10479478342739064824, 16078873347651786112),
+UInt256(143343663499379469, 8774679077904912255, 5785244483289723288, 3215774669530357223),
+UInt256(286687326998758938, 17549358155809824510, 11570488966579446576, 6431549339060714445),
+UInt256(573374653997517877, 16651972237910097405, 4694233859449341536, 12863098678121428890),
+UInt256(1146749307995035755, 14857200402110643194, 9388467718898683073, 7279453282533306163),
+UInt256(229349861599007151, 2971440080422128638, 16635088802747377907, 8834588285990481879),
+UInt256(458699723198014302, 5942880160844257277, 14823433531785204198, 17669176571980963758),
+UInt256(917399446396028604, 11885760321688514555, 11200122989860856781, 16891609070252375900),
+UInt256(183479889279205720, 17134547323305344203, 16997419856939812649, 3378321814050475180),
+UInt256(366959778558411441, 15822350572901136791, 15548095640170073682, 6756643628100950360),
+UInt256(733919557116822883, 13197957072092721967, 12649447206630595748, 13513287256201900720),
+UInt256(146783911423364576, 13707637858644275363, 2529889441326119149, 13770703895466111114),
+UInt256(293567822846729153, 8968531643578999110, 5059778882652238299, 9094663717222670612),
+UInt256(587135645693458306, 17937063287157998220, 10119557765304476598, 18189327434445341223),
+UInt256(1174271291386916613, 17427382500606444825, 1792371456899401581, 17931910795181130829),
+UInt256(234854258277383322, 14553522944347019934, 11426520735605611285, 18343777418003867459),
+UInt256(469708516554766645, 10660301814984488253, 4406297397501670955, 18240810762298183301),
+UInt256(939417033109533291, 2873859556259424890, 8812594795003341911, 18034877450886814986),
+UInt256(187883406621906658, 4264120725993795301, 5451867773742578705, 10985673119661183644),
+UInt256(375766813243813316, 8528241451987590602, 10903735547485157411, 3524602165612815672),
+UInt256(751533626487626632, 17056482903975181205, 3360727021260763206, 7049204331225631343),
+UInt256(150306725297525326, 10789994210278856887, 8050843033735973287, 12477887310470857239),
+UInt256(300613450595050653, 3133244346848162158, 16101686067471946575, 6509030547232162861),
+UInt256(601226901190101306, 6266488693696324317, 13756628061234341534, 13018061094464325721),
+UInt256(1202453802380202612, 12532977387392648635, 9066512048759131453, 7589378115219099825),
+UInt256(240490760476040522, 9885293106962350373, 9192000039235646937, 1517875623043819965),
+UInt256(480981520952081045, 1323842140215149130, 18384000078471293874, 3035751246087639930),
+UInt256(961963041904162090, 2647684280430298261, 18321256083233036132, 6071502492175279860),
+UInt256(192392608380832418, 529536856086059652, 7353600031388517549, 12282346942660786942),
+UInt256(384785216761664836, 1059073712172119304, 14707200062777035099, 6117949811612022267),
+UInt256(769570433523329672, 2118147424344238609, 10967656051844518582, 12235899623224044534),
+UInt256(153914086704665934, 7802327114352668368, 5882880025110814039, 13515226368870539877),
+UInt256(307828173409331868, 15604654228705336736, 11765760050221628079, 8583708664031528137),
+UInt256(615656346818663737, 12762564383701121857, 5084776026733704542, 17167417328063056274),
+UInt256(1231312693637327475, 7078384693692692098, 10169552053467409085, 15888090582416560932),
+UInt256(246262538727465495, 1415676938738538419, 13101956854919212786, 14245664560709043156),
+UInt256(492525077454930990, 2831353877477076839, 7757169636128873957, 10044585047708534696),
+UInt256(985050154909861980, 5662707754954153678, 15514339272257747915, 1642426021707517776),
+]
+
+private let bid_multipliers2_bid64_34: [UInt256] = [
+UInt256(197010030981972396, 1132541550990830735, 14170914298677280552, 11396531648567234525),
+UInt256(394020061963944792, 2265083101981661471, 9895084523645009489, 4346319223424917434),
+UInt256(788040123927889584, 4530166203963322943, 1343424973580467362, 8692638446849834867),
+UInt256(157608024785577916, 15663428499760305881, 7647382624199914118, 16495922948337608267),
+UInt256(315216049571155833, 12880112925811060146, 15294765248399828237, 14545101822965664917),
+UInt256(630432099142311667, 7313481777912568677, 12142786423090104859, 10643459572221778217),
+UInt256(1260864198284623334, 14626963555825137355, 5838828772470658103, 2840175070734004818),
+UInt256(252172839656924666, 17682787970132668763, 15925161013461772913, 7946732643630621610),
+UInt256(504345679313849333, 16918831866555785911, 13403577953213994210, 15893465287261243220),
+UInt256(1008691358627698667, 15390919659402020207, 8360411832718436805, 13340186500812934824),
+UInt256(201738271725539733, 10456881561364224687, 16429477625511328653, 17425432559130228258),
+UInt256(403476543451079467, 2467019049018897759, 14412211177313105691, 16404121044550904899),
+UInt256(806953086902158934, 4934038098037795519, 10377678280916659767, 14361498015392258182),
+UInt256(161390617380431786, 15744202878575200396, 13143582100409062923, 2872299603078451637),
+UInt256(322781234760863573, 13041661683440849177, 7840420127108574230, 5744599206156903273),
+UInt256(645562469521727147, 7636579293172146738, 15680840254217148460, 11489198412313806546),
+UInt256(129112493904345429, 8906013488118249994, 3136168050843429692, 2297839682462761310),
+UInt256(258224987808690858, 17812026976236499988, 6272336101686859384, 4595679364925522619),
+UInt256(516449975617381717, 17177309878763448360, 12544672203373718768, 9191358729851045237),
+UInt256(1032899951234763435, 15907875683817345105, 6642600333037885920, 18382717459702090473),
+UInt256(206579990246952687, 3181575136763469021, 1328520066607577184, 3676543491940418095),
+UInt256(413159980493905374, 6363150273526938042, 2657040133215154368, 7353086983880836190),
+UInt256(826319960987810748, 12726300547053876084, 5314080266430308736, 14706173967761672379),
+UInt256(165263992197562149, 13613306553636506186, 8441513682769882393, 14009281237778065446),
+UInt256(330527984395124299, 8779869033563460756, 16883027365539764787, 9571818401846579275),
+UInt256(661055968790248598, 17559738067126921513, 15319310657369977959, 696892729983606933),
+UInt256(132211193758049719, 14579994057651115272, 6753210946215905915, 139378545996721387),
+UInt256(264422387516099439, 10713244041592678928, 13506421892431811830, 278757091993442774),
+UInt256(528844775032198879, 2979744009475806241, 8566099711154072044, 557514183986885547),
+UInt256(1057689550064397758, 5959488018951612482, 17132199422308144088, 1115028367973771093),
+UInt256(211537910012879551, 12259944048016053466, 3426439884461628817, 11291052117820485189),
+UInt256(423075820025759103, 6073144022322555316, 6852879768923257635, 4135360161931418761),
+UInt256(846151640051518206, 12146288044645110632, 13705759537846515270, 8270720323862837521),
+UInt256(169230328010303641, 6118606423670932449, 13809198351795034023, 12722190508998298474),
+UInt256(338460656020607282, 12237212847341864899, 9171652629880516431, 6997636944287045332),
+UInt256(676921312041214565, 6027681620974178182, 18343305259761032862, 13995273888574090663),
+UInt256(135384262408242913, 1205536324194835636, 11047358681436027218, 17556450036682459426),
+UInt256(270768524816485826, 2411072648389671273, 3647973289162502821, 16666155999655367235),
+UInt256(541537049632971652, 4822145296779342546, 7295946578325005643, 14885567925601182854),
+UInt256(1083074099265943304, 9644290593558685092, 14591893156650011287, 11324391777492814091),
+UInt256(216614819853188660, 16686253377679378311, 6607727446071912580, 13332924799724293788),
+UInt256(433229639706377321, 14925762681649205006, 13215454892143825161, 8219105525739035960),
+UInt256(866459279412754643, 11404781289588858397, 7984165710578098706, 16438211051478071920),
+UInt256(173291855882550928, 13349002702143502649, 1596833142115619741, 6976991025037524708),
+UInt256(346583711765101857, 8251261330577453682, 3193666284231239482, 13953982050075049415),
+UInt256(693167423530203714, 16502522661154907364, 6387332568462478965, 9461220026440547213),
+UInt256(138633484706040742, 18057899791198622765, 12345512957918226762, 12960290449513840413),
+UInt256(277266969412081485, 17669055508687693915, 6244281842126901909, 7473836825318129209),
+UInt256(554533938824162971, 16891366943665836214, 12488563684253803818, 14947673650636258417),
+UInt256(1109067877648325943, 15335989813622120813, 6530383294798056021, 11448603227562965217),
+]
+
+private let bid_multipliers2_bid64_35: [UInt256] = [
+UInt256(221813575529665188, 14135244406950155132, 4995425473701521527, 9668418274996413690),
+UInt256(443627151059330377, 9823744740190758648, 9990850947403043055, 890092476283275764),
+UInt256(887254302118660755, 1200745406671965681, 1534957821096534494, 1780184952566551527),
+UInt256(177450860423732151, 240149081334393136, 3996340378961217222, 356036990513310306),
+UInt256(354901720847464302, 480298162668786272, 7992680757922434444, 712073981026620611),
+UInt256(709803441694928604, 960596325337572544, 15985361515844868888, 1424147962053241222),
+UInt256(141960688338985720, 14949514524035155801, 14265118747394704747, 3974178407152558568),
+UInt256(283921376677971441, 11452284974360759987, 10083493421079857878, 7948356814305117135),
+UInt256(567842753355942883, 4457825875011968359, 1720242768450164140, 15896713628610234270),
+UInt256(1135685506711885766, 8915651750023936718, 3440485536900328281, 13346683183510916924),
+UInt256(227137101342377153, 5472479164746697666, 15445492366347706949, 2669336636702183385),
+UInt256(454274202684754306, 10944958329493395333, 12444240658985862282, 5338673273404366770),
+UInt256(908548405369508613, 3443172585277239051, 6441737244262172948, 10677346546808733539),
+UInt256(181709681073901722, 11756680961281178779, 16045742707820075882, 9514166938845567355),
+UInt256(363419362147803445, 5066617848852805943, 13644741341930600149, 581589803981583093),
+UInt256(726838724295606890, 10133235697705611887, 8842738610151648682, 1163179607963166185),
+UInt256(145367744859121378, 2026647139541122377, 9147245351514150382, 14990031180560274530),
+UInt256(290735489718242756, 4053294279082244754, 18294490703028300765, 11533318287410997444),
+UInt256(581470979436485512, 8106588558164489509, 18142237332347049915, 4619892501112443271),
+UInt256(1162941958872971024, 16213177116328979019, 17837730590984548214, 9239785002224886542),
+UInt256(232588391774594204, 18000030682233437096, 14635592562422640612, 9226654629928797955),
+UInt256(465176783549188409, 17553317290757322577, 10824441051135729609, 6565186148044294),
+UInt256(930353567098376819, 16659890507805093539, 3202138028561907602, 13130372296088588),
+UInt256(186070713419675363, 18089373360528660000, 11708474049938112490, 2626074459217718),
+UInt256(372141426839350727, 17732002647347768385, 4970204026166673364, 5252148918435435),
+UInt256(744282853678701455, 17017261220985985154, 9940408052333346728, 10504297836870870),
+UInt256(148856570735740291, 3403452244197197030, 16745476869434310638, 7380798489051194821),
+UInt256(297713141471480582, 6806904488394394061, 15044209665159069660, 14761596978102389641),
+UInt256(595426282942961164, 13613808976788788123, 11641675256608587705, 11076449882495227666),
+UInt256(1190852565885922329, 8780873879868024631, 4836606439507623795, 3706155691280903715),
+UInt256(238170513177184465, 16513570034941246219, 967321287901524759, 741231138256180743),
+UInt256(476341026354368931, 14580395996172940822, 1934642575803049518, 1482462276512361486),
+UInt256(952682052708737863, 10714047918636330028, 3869285151606099036, 2964924553024722972),
+UInt256(190536410541747572, 13210856027952996975, 4463205845063130130, 7971682540088765241),
+UInt256(381072821083495145, 7974967982196442334, 8926411690126260260, 15943365080177530482),
+UInt256(762145642166990290, 15949935964392884668, 17852823380252520521, 13439986086645509348),
+UInt256(152429128433398058, 3189987192878576933, 14638611120276235073, 17445392476296743163),
+UInt256(304858256866796116, 6379974385757153867, 10830478166842918531, 16444040878883934709),
+UInt256(609716513733592232, 12759948771514307735, 3214212259976285447, 14441337684058317801),
+UInt256(1219433027467184465, 7073153469319063854, 6428424519952570895, 10435931294407083986),
+UInt256(243886605493436893, 1414630693863812770, 16043080162958155471, 16844581517849058090),
+UInt256(487773210986873786, 2829261387727625541, 13639416252206759327, 15242418961988564564),
+UInt256(975546421973747572, 5658522775455251083, 8832088430703967039, 12038093850267577512),
+UInt256(195109284394749514, 8510402184574870863, 1766417686140793407, 17165014029021156796),
+UInt256(390218568789499028, 17020804369149741726, 3532835372281586815, 15883283984332761975),
+UInt256(780437137578998057, 15594864664589931836, 7065670744563173631, 13319823894955972333),
+UInt256(156087427515799611, 10497670562401807013, 12481180593138365695, 17421360037958835760),
+UInt256(312174855031599223, 2548597051094062411, 6515617112567179775, 16395976002208119903),
+UInt256(624349710063198446, 5097194102188124822, 13031234225134359551, 14345207930706688190),
+UInt256(1248699420126396892, 10194388204376249645, 7615724376559167487, 10243671787703824763),
+]
+
+private let bid_multipliers2_bid64_36: [UInt256] = [
+UInt256(249739884025279378, 9417575270359070575, 8901842504795654143, 16806129616508406246),
+UInt256(499479768050558757, 388406467008589534, 17803685009591308287, 15165515159307260875),
+UInt256(998959536101117514, 776812934017179069, 17160625945473064959, 11884286244904970134),
+UInt256(199791907220223502, 14912757845771077106, 14500171633320343961, 9755554878464814674),
+UInt256(399583814440447005, 11378771617832602597, 10553599192931136307, 1064365683220077731),
+UInt256(799167628880894011, 4310799161955653579, 2660454312152720998, 2128731366440155461),
+UInt256(159833525776178802, 4551508647133041039, 532090862430544199, 11493792717513762062),
+UInt256(319667051552357604, 9103017294266082078, 1064181724861088399, 4540841361317972508),
+UInt256(639334103104715208, 18206034588532164156, 2128363449722176798, 9081682722635945015),
+UInt256(1278668206209430417, 17965325103354776696, 4256726899444353596, 18163365445271890030),
+UInt256(255733641241886083, 10971762650154775985, 11919391824114601688, 18390068348022019299),
+UInt256(511467282483772167, 3496781226600000355, 5392039574519651761, 18333392622334486982),
+UInt256(1022934564967544334, 6993562453200000710, 10784079149039303523, 18220041170959422347),
+UInt256(204586912993508866, 16156107749607641434, 16914211088775501997, 11022705863675705116),
+UInt256(409173825987017733, 13865471425505731253, 15381678103841452379, 3598667653641858616),
+UInt256(818347651974035467, 9284198777301910891, 12316612133973353142, 7197335307283717231),
+UInt256(163669530394807093, 9235537384944202824, 13531368871020401598, 1439467061456743447),
+UInt256(327339060789614187, 24330696178854033, 8615993668331251580, 2878934122913486893),
+UInt256(654678121579228374, 48661392357708066, 17231987336662503160, 5757868245826973785),
+UInt256(130935624315845674, 14767127537439182906, 3446397467332500632, 1151573649165394757),
+UInt256(261871248631691349, 11087511001168814196, 6892794934665001264, 2303147298330789514),
+UInt256(523742497263382699, 3728277928628076776, 13785589869330002528, 4606294596661579028),
+UInt256(1047484994526765398, 7456555857256153553, 9124435664950453440, 9212589193323158056),
+UInt256(209496998905353079, 12559357615676961680, 5514235947732001011, 5531866653406541935),
+UInt256(418993997810706159, 6671971157644371744, 11028471895464002022, 11063733306813083869),
+UInt256(837987995621412318, 13343942315288743489, 3610199717218452429, 3680722539916616122),
+UInt256(167597599124282463, 13736834907283479667, 8100737572927511132, 4425493322725233548),
+UInt256(335195198248564927, 9026925740857407718, 16201475145855022264, 8850986645450467095),
+UInt256(670390396497129854, 18053851481714815437, 13956206218000492912, 17701973290900934190),
+UInt256(134078079299425970, 18368165555310604380, 6480590058342008905, 14608441102405917808),
+UInt256(268156158598851941, 18289587036911657144, 12961180116684017811, 10770138131102284000),
+UInt256(536312317197703883, 18132430000113762673, 7475616159658484007, 3093532188495016383),
+UInt256(1072624634395407767, 17818115926517973730, 14951232319316968014, 6187064376990032765),
+UInt256(214524926879081553, 10942320814787415392, 10368944093347214249, 4926761690139916877),
+UInt256(429049853758163107, 3437897555865279169, 2291144112984876882, 9853523380279833753),
+UInt256(858099707516326214, 6875795111730558338, 4582288225969753765, 1260302686850115889),
+UInt256(171619941503265242, 16132554281313752960, 8295155274677771399, 7630758166853843825),
+UInt256(343239883006530485, 13818364488917954304, 16590310549355542798, 15261516333707687649),
+UInt256(686479766013060971, 9189984904126356993, 14733877025001533981, 12076288593705823681),
+UInt256(137295953202612194, 5527345795567181721, 17704170663967948089, 2415257718741164737),
+UInt256(274591906405224388, 11054691591134363443, 16961597254226344562, 4830515437482329473),
+UInt256(549183812810448777, 3662639108559175271, 15476450434743137508, 9661030874964658945),
+UInt256(1098367625620897554, 7325278217118350543, 12506156795776723401, 875317676219766273),
+UInt256(219673525124179510, 16222450902391311401, 9879928988639165326, 11243109979469684225),
+UInt256(439347050248359021, 13998157731073071187, 1313113903568779037, 4039475885229816833),
+UInt256(878694100496718043, 9549571388436590758, 2626227807137558074, 8078951770459633665),
+UInt256(175738820099343608, 12977960721913049121, 4214594376169421938, 1615790354091926733),
+UInt256(351477640198687217, 7509177370116546626, 8429188752338843876, 3231580708183853466),
+UInt256(702955280397374434, 15018354740233093252, 16858377504677687752, 6463161416367706932),
+UInt256(140591056079474886, 17761066207014259943, 7061024315677447873, 12360678727499272356),
+]
+
+private let bid_multipliers2_bid64_37: [UInt256] = [
+UInt256(281182112158949773, 17075388340318968270, 14122048631354895747, 6274613381288993096),
+UInt256(562364224317899547, 15704032606928384925, 9797353189000239878, 12549226762577986192),
+UInt256(1124728448635799095, 12961321140147218235, 1147962304290928141, 6651709451446420767),
+UInt256(224945689727159819, 2592264228029443647, 229592460858185628, 5019690705031194477),
+UInt256(449891379454319638, 5184528456058887294, 459184921716371256, 10039381410062388954),
+UInt256(899782758908639276, 10369056912117774588, 918369843432742513, 1632018746415226291),
+UInt256(179956551781727855, 5763160197165465240, 14941069227654189795, 7705101378766865905),
+UInt256(359913103563455710, 11526320394330930481, 11435394381598827974, 15410202757533731809),
+UInt256(719826207126911421, 4605896714952309347, 4424044689488104333, 12373661441357912002),
+UInt256(143965241425382284, 4610528157732372192, 11952855382123351836, 6164081103013492724),
+UInt256(287930482850764568, 9221056315464744385, 5458966690537152056, 12328162206026985448),
+UInt256(575860965701529136, 18442112630929488770, 10917933381074304113, 6209580338344419279),
+UInt256(1151721931403058273, 18437481188149425925, 3389122688439056610, 12419160676688838557),
+UInt256(230344386280611654, 14755542681855616154, 11745870981913542291, 13551878579563498681),
+UInt256(460688772561223309, 11064341290001680693, 5044997890117532967, 8657013085417445746),
+UInt256(921377545122446619, 3681938506293809770, 10089995780235065934, 17314026170834891492),
+UInt256(184275509024489323, 15493782960226403246, 16775394415014654479, 14530851678392709268),
+UInt256(368551018048978647, 12540821846743254877, 15104044756319757343, 10614959283075866920),
+UInt256(737102036097957295, 6634899619776958139, 11761345438929963071, 2783174492442182224),
+UInt256(147420407219591459, 1326979923955391627, 17109664346753633907, 556634898488436445),
+UInt256(294840814439182918, 2653959847910783255, 15772584619797716198, 1113269796976872890),
+UInt256(589681628878365836, 5307919695821566511, 13098425165885880780, 2226539593953745780),
+UInt256(1179363257756731672, 10615839391643133023, 7750106258062209944, 4453079187907491559),
+UInt256(235872651551346334, 9501865507812447251, 1550021251612441988, 15648011096549139605),
+UInt256(471745303102692669, 556986941915342886, 3100042503224883977, 12849278119388727593),
+UInt256(943490606205385338, 1113973883830685772, 6200085006449767955, 7251812165067903570),
+UInt256(188698121241077067, 11290841220991868124, 1240017001289953591, 1450362433013580714),
+UInt256(377396242482154135, 4134938368274184632, 2480034002579907182, 2900724866027161428),
+UInt256(754792484964308270, 8269876736548369264, 4960068005159814364, 5801449732054322856),
+UInt256(150958496992861654, 1653975347309673852, 15749408859999604165, 12228336390636595541),
+UInt256(301916993985723308, 3307950694619347705, 13052073646289656715, 6009928707563639466),
+UInt256(603833987971446616, 6615901389238695411, 7657403218869761814, 12019857415127278931),
+UInt256(1207667975942893232, 13231802778477390822, 15314806437739523629, 5592970756545006246),
+UInt256(241533595188578646, 10025058185179298810, 17820356546515546018, 12186640595534732219),
+UInt256(483067190377157293, 1603372296649046005, 17193969019321540421, 5926537117359912822),
+UInt256(966134380754314586, 3206744593298092011, 15941193964933529226, 11853074234719825644),
+UInt256(193226876150862917, 4330697733401528725, 10566936422470526491, 13438661291169696099),
+UInt256(386453752301725834, 8661395466803057451, 2687128771231501367, 8430578508629840581),
+UInt256(772907504603451668, 17322790933606114902, 5374257542463002734, 16861157017259681161),
+UInt256(154581500920690333, 14532604630946953950, 1074851508492600546, 18129626662419577525),
+UInt256(309163001841380667, 10618465188184356284, 2149703016985201093, 17812509251129603434),
+UInt256(618326003682761335, 2790186302659160952, 4299406033970402187, 17178274428549655252),
+UInt256(1236652007365522670, 5580372605318321904, 8598812067940804375, 15909804783389758888),
+UInt256(247330401473104534, 1116074521063664380, 16477157672555802167, 17939356215645593071),
+UInt256(494660802946209068, 2232149042127328761, 14507571271402052719, 17431968357581634525),
+UInt256(989321605892418136, 4464298084254657523, 10568398469094553823, 16417192641453717434),
+UInt256(197864321178483627, 4582208431592841827, 16871074952786552057, 10662136157774564134),
+UInt256(395728642356967254, 9164416863185683655, 15295405831863552499, 2877528241839576651),
+UInt256(791457284713934508, 18328833726371367311, 12144067590017553382, 5755056483679153301),
+UInt256(158291456942786901, 14733813189500004431, 17186208776971151969, 4840360111477740984),
+]
+
+private let bid_multipliers2_bid64_38: [UInt256] = [
+UInt256(316582913885573803, 11020882305290457247, 15925673480232752322, 9680720222955481967),
+UInt256(633165827771147607, 3595020536871362879, 13404602886755953029, 914696372201412318),
+UInt256(1266331655542295214, 7190041073742725759, 8362461699802354442, 1829392744402824635),
+UInt256(253266331108459042, 16195403473716186444, 12740538784186201858, 365878548880564927),
+UInt256(506532662216918085, 13944062873722821273, 7034333494662852100, 731757097761129854),
+UInt256(1013065324433836171, 9441381673736090930, 14068666989325704200, 1463514195522259708),
+UInt256(202613064886767234, 5577625149489128509, 6503082212607051163, 3982051653846362265),
+UInt256(405226129773534468, 11155250298978257018, 13006164425214102326, 7964103307692724530),
+UInt256(810452259547068937, 3863756524246962421, 7565584776718653036, 15928206615385449059),
+UInt256(162090451909413787, 8151448934333213130, 12581163399569461576, 17943036582044731105),
+UInt256(324180903818827574, 16302897868666426261, 6715582725429371537, 17439329090379910594),
+UInt256(648361807637655149, 14159051663623300906, 13431165450858743075, 16431914107050269571),
+UInt256(129672361527531029, 17589205591692301474, 2686233090171748615, 3286382821410053915),
+UInt256(259344723055062059, 16731667109675051332, 5372466180343497230, 6572765642820107829),
+UInt256(518689446110124119, 15016590145640551048, 10744932360686994460, 13145531285640215657),
+UInt256(1037378892220248239, 11586436217571550481, 3043120647664437305, 7844318497570879697),
+UInt256(207475778444049647, 17074682502481951389, 608624129532887461, 1568863699514175940),
+UInt256(414951556888099295, 15702620931254351162, 1217248259065774922, 3137727399028351879),
+UInt256(829903113776198591, 12958497788799150708, 2434496518131549844, 6275454798056703758),
+UInt256(165980622755239718, 6281048372501740464, 15244294562593951261, 12323137403837071722),
+UInt256(331961245510479436, 12562096745003480929, 12041845051478350907, 6199530733964591827),
+UInt256(663922491020958873, 6677449416297410243, 5636946029247150198, 12399061467929183653),
+UInt256(132784498204191774, 12403536327485213018, 4816738020591340362, 17237207552553478024),
+UInt256(265568996408383549, 6360328581260874420, 9633476041182680725, 16027671031397404431),
+UInt256(531137992816767098, 12720657162521748841, 820208008655809835, 13608597989085257245),
+UInt256(1062275985633534197, 6994570251333946066, 1640416017311619671, 8770451904460962874),
+UInt256(212455197126706839, 8777611679750609859, 11396129647688054903, 16511485639859833868),
+UInt256(424910394253413678, 17555223359501219719, 4345515221666558191, 14576227206010116120),
+UInt256(849820788506827357, 16663702645292887822, 8691030443333116383, 10705710338310680623),
+UInt256(169964157701365471, 10711438158542398210, 16495601347634264569, 9519839697145956771),
+UInt256(339928315402730943, 2976132243375244805, 14544458621558977523, 592935320582361926),
+UInt256(679856630805461886, 5952264486750489611, 10642173169408403430, 1185870641164723852),
+UInt256(135971326161092377, 4879801712092008245, 9507132263365501332, 7615871757716765417),
+UInt256(271942652322184754, 9759603424184016491, 567520453021451048, 15231743515433530834),
+UInt256(543885304644369509, 1072462774658481366, 1135040906042902097, 12016742957157510051),
+UInt256(1087770609288739018, 2144925549316962732, 2270081812085804195, 5586741840605468486),
+UInt256(217554121857747803, 11497031554089123516, 454016362417160839, 1117348368121093698),
+UInt256(435108243715495607, 4547319034468695416, 908032724834321678, 2234696736242187395),
+UInt256(870216487430991214, 9094638068937390832, 1816065449668643356, 4469393472484374789),
+UInt256(174043297486198242, 16576322872755119459, 4052561904675638994, 8272576323980695605),
+UInt256(348086594972396485, 14705901671800687302, 8105123809351277988, 16545152647961391209),
+UInt256(696173189944792971, 10965059269891822988, 16210247618702555977, 14643561222213230801),
+UInt256(139234637988958594, 5882360668720274920, 17999444782708152488, 6618061059184556484),
+UInt256(278469275977917188, 11764721337440549841, 17552145491706753360, 13236122118369112967),
+UInt256(556938551955834377, 5082698601171548067, 16657546909703955105, 8025500163028674317),
+UInt256(1113877103911668754, 10165397202343096135, 14868349745698358594, 16051000326057348634),
+UInt256(222775420782333750, 16790474699436260519, 17731065208107313011, 14278246509437200697),
+UInt256(445550841564667501, 15134205325162969423, 17015386342505074407, 10109748945164849777),
+UInt256(891101683129335003, 11821666576616387231, 15584028611300597199, 1772753816620147938),
+UInt256(178220336625867000, 13432379759549008415, 17874200981227760732, 11422597207549760558),
+]
+
+private let bid_multipliers2_bid64_39: [UInt256] = [
+UInt256(356440673251734001, 8418015445388465215, 17301657888745969849, 4398450341389969499),
+UInt256(712881346503468002, 16836030890776930431, 16156571703782388082, 8796900682779938997),
+UInt256(142576269300693600, 10745903807639206732, 14299360784982208586, 1759380136555987800),
+UInt256(285152538601387201, 3045063541568861849, 10151977496254865556, 3518760273111975599),
+UInt256(570305077202774402, 6090127083137723699, 1857210918800179496, 7037520546223951198),
+UInt256(1140610154405548804, 12180254166275447398, 3714421837600358992, 14075041092447902395),
+UInt256(228122030881109760, 17193446092222730772, 8121581997003892444, 17572403477457221772),
+UInt256(456244061762219521, 15940148110735909928, 16243163994007784889, 16698062881204891928),
+UInt256(912488123524439043, 13433552147762268241, 14039583914306018163, 14949381688700232239),
+UInt256(182497624704887808, 13754756873778184617, 17565312041828844925, 10368573967223867095),
+UInt256(364995249409775617, 9062769673846817619, 16683880009948138235, 2290403860738182573),
+UInt256(729990498819551234, 18125539347693635239, 14921015946186724854, 4580807721476365145),
+UInt256(145998099763910246, 18382503128506368340, 14052249633463075940, 8294859173779093676),
+UInt256(291996199527820493, 18318262183303185065, 9657755193216600264, 16589718347558187351),
+UInt256(583992399055640987, 18189780292896818515, 868766312723648913, 14732692621406823086),
+UInt256(1167984798111281975, 17932816512084085414, 1737532625447297827, 11018641169104094555),
+UInt256(233596959622256395, 3586563302416817082, 15104901784057100858, 5893077048562729235),
+UInt256(467193919244512790, 7173126604833634165, 11763059494404650100, 11786154097125458469),
+UInt256(934387838489025580, 14346253209667268331, 5079374915099748585, 5125564120541365321),
+UInt256(186877567697805116, 2869250641933453666, 4705223797761860040, 4714461638850183388),
+UInt256(373755135395610232, 5738501283866907332, 9410447595523720080, 9428923277700366775),
+UInt256(747510270791220464, 11477002567733814665, 374151117337888545, 411102481691181934),
+UInt256(149502054158244092, 17052795772514404225, 14832225482435219001, 14839615755305877680),
+UInt256(299004108316488185, 15658847471319256835, 11217706891160886387, 11232487436902203743),
+UInt256(598008216632976371, 12870950868928962055, 3988669708612221159, 4018230800094855870),
+UInt256(1196016433265952743, 7295157664148372494, 7977339417224442318, 8036461600189711740),
+UInt256(239203286653190548, 12527077977055405468, 8974165512928709110, 1607292320037942348),
+UInt256(478406573306381097, 6607411880401259320, 17948331025857418220, 3214584640075884696),
+UInt256(956813146612762194, 13214823760802518641, 17449917978005284824, 6429169280151769392),
+UInt256(191362629322552438, 17400360011128145021, 3489983595601056964, 16043229114997995172),
+UInt256(382725258645104877, 16353975948546738426, 6979967191202113929, 13639714156286438727),
+UInt256(765450517290209755, 14261207823383925236, 13959934382404227859, 8832684238863325837),
+UInt256(153090103458041951, 2852241564676785047, 6481335691222755895, 1766536847772665168),
+UInt256(306180206916083902, 5704483129353570094, 12962671382445511790, 3533073695545330335),
+UInt256(612360413832167804, 11408966258707140189, 7478598691181471964, 7066147391090660670),
+UInt256(1224720827664335609, 4371188443704728762, 14957197382362943928, 14132294782181321339),
+UInt256(244944165532867121, 15631632947708587045, 6680788291214499108, 17583854215403905561),
+UInt256(489888331065734243, 12816521821707622474, 13361576582428998217, 16720964357098259505),
+UInt256(979776662131468487, 7186299569705693333, 8276409091148444819, 14995184640486967394),
+UInt256(195955332426293697, 8815957543424959313, 1655281818229688963, 17756432187065034772),
+UInt256(391910664852587394, 17631915086849918626, 3310563636459377927, 17066120300420517928),
+UInt256(783821329705174789, 16817086099990285636, 6621127272918755855, 15685496527131484239),
+UInt256(156764265941034957, 18120812478965698420, 1324225454583751171, 3137099305426296848),
+UInt256(313528531882069915, 17794880884221845224, 2648450909167502342, 6274198610852593696),
+UInt256(627057063764139831, 17143017694734138832, 5296901818335004684, 12548397221705187391),
+UInt256(1254114127528279663, 15839291315758726048, 10593803636670009369, 6650050369700823166),
+UInt256(250822825505655932, 14235904707377476179, 5808109542075912197, 1330010073940164634),
+UInt256(501645651011311865, 10025065341045400742, 11616219084151824394, 2660020147880329267),
+UInt256(1003291302022623731, 1603386608381249869, 4785694094594097172, 5320040295760658533),
+UInt256(200658260404524746, 4010026136418160297, 957138818918819434, 8442705688635952353),
+]
+
+private let bid_multipliers2_bid64_40: [UInt256] = [
+UInt256(401316520809049492, 8020052272836320594, 1914277637837638868, 16885411377271904706),
+UInt256(802633041618098984, 16040104545672641188, 3828555275675277737, 15324078680834257796),
+UInt256(160526608323619796, 17965416168102169530, 8144408684618876193, 17822210995134492852),
+UInt256(321053216647239593, 17484088262494787444, 16288817369237752387, 17197677916559434088),
+UInt256(642106433294479187, 16521432451280023273, 14130890664765953159, 15948611759409316560),
+UInt256(128421286658895837, 10682984119739825301, 2826178132953190631, 17947117610849504605),
+UInt256(256842573317791675, 2919224165770098986, 5652356265906381263, 17447491147989457594),
+UInt256(513685146635583350, 5838448331540197972, 11304712531812762527, 16448238222269363571),
+UInt256(1027370293271166700, 11676896663080395945, 4162680989915973439, 14449732370829175526),
+UInt256(205474058654233340, 2335379332616079189, 832536197983194687, 17647341733133476398),
+UInt256(410948117308466680, 4670758665232158378, 1665072395966389375, 16847939392557401180),
+UInt256(821896234616933360, 9341517330464316756, 3330144791932778751, 15249134711405250744),
+UInt256(164379246923386672, 1868303466092863351, 4355377773128466073, 10428524571764870796),
+UInt256(328758493846773344, 3736606932185726702, 8710755546256932147, 2410305069820189975),
+UInt256(657516987693546688, 7473213864371453404, 17421511092513864294, 4820610139640379949),
+UInt256(131503397538709337, 12562689217100021650, 10862999847986593505, 4653470842669986313),
+UInt256(263006795077418675, 6678634360490491685, 3279255622263635394, 9306941685339972626),
+UInt256(526013590154837350, 13357268720980983370, 6558511244527270789, 167139296970393636),
+UInt256(1052027180309674701, 8267793368252415124, 13117022489054541578, 334278593940787272),
+UInt256(210405436061934940, 5342907488392393348, 2623404497810908315, 11134902163013888424),
+UInt256(420810872123869880, 10685814976784786696, 5246808995621816631, 3823060252318225232),
+UInt256(841621744247739761, 2924885879860021776, 10493617991243633262, 7646120504636450464),
+UInt256(168324348849547952, 4274325990713914678, 9477421227732547298, 16286619359894931386),
+UInt256(336648697699095904, 8548651981427829357, 508098381755542981, 14126494646080311155),
+UInt256(673297395398191808, 17097303962855658714, 1016196763511085963, 9806245218451070694),
+UInt256(134659479079638361, 14487507236796862712, 7581936982186037839, 1961249043690214139),
+UInt256(269318958159276723, 10528270399884173808, 15163873964372075678, 3922498087380428278),
+UInt256(538637916318553447, 2609796726058796001, 11881003855034599740, 7844996174760856556),
+UInt256(1077275832637106894, 5219593452117592003, 5315263636359647864, 15689992349521713111),
+UInt256(215455166527421378, 15801313949391159693, 8441750356755750219, 6827347284646252946),
+UInt256(430910333054842757, 13155883825072767770, 16883500713511500438, 13654694569292505891),
+UInt256(861820666109685515, 7865023576435983925, 15320257353313449261, 8862645064875460165),
+UInt256(172364133221937103, 1573004715287196785, 3064051470662689852, 5461877827717002357),
+UInt256(344728266443874206, 3146009430574393570, 6128102941325379704, 10923755655434004713),
+UInt256(689456532887748412, 6292018861148787140, 12256205882650759409, 3400767237158457809),
+UInt256(137891306577549682, 8637101401713578074, 9829938806013972528, 4369502262173601885),
+UInt256(275782613155099364, 17274202803427156149, 1213133538318393440, 8739004524347203770),
+UInt256(551565226310198729, 16101661533144760682, 2426267076636786880, 17478009048694407540),
+UInt256(1103130452620397459, 13756578992579969748, 4852534153273573761, 16509274023679263464),
+UInt256(220626090524079491, 17508711057483635242, 8349204460138535398, 14369901248961583663),
+UInt256(441252181048158983, 16570678041257718868, 16698408920277070797, 10293058424213615709),
+UInt256(882504362096317967, 14694612008805886121, 14950073766844589979, 2139372774717679802),
+UInt256(176500872419263593, 10317620031244997870, 14058061197594648965, 7806572184427356607),
+UInt256(353001744838527187, 2188495988780444125, 9669378321479746314, 15613144368854713214),
+UInt256(706003489677054374, 4376991977560888251, 892012569249941013, 12779544663999874811),
+UInt256(141200697935410874, 15632793654479818943, 178402513849988202, 13623955377025705932),
+UInt256(282401395870821749, 12818843235250086270, 356805027699976405, 8801166680341860248),
+UInt256(564802791741643499, 7190942396790620924, 713610055399952810, 17602333360683720495),
+UInt256(1129605583483286998, 14381884793581241848, 1427220110799905621, 16757922647657889374),
+UInt256(225921116696657399, 13944423402941979339, 3974792836901891447, 10730282159015398522),
+]
+
+private let bid_multipliers2_bid64_41: [UInt256] = [
+UInt256(451842233393314799, 9442102732174407062, 7949585673803782895, 3013820244321245427),
+UInt256(903684466786629599, 437461390639262508, 15899171347607565790, 6027640488642490853),
+UInt256(180736893357325919, 14844887537095493794, 10558531899005333804, 8584225727212318817),
+UInt256(361473786714651839, 11243031000481435973, 2670319724301115992, 17168451454424637634),
+UInt256(722947573429303679, 4039317927253320330, 5340639448602231985, 15890158835139723652),
+UInt256(144589514685860735, 15565258844418305358, 15825523148688087689, 17935427025995586024),
+UInt256(289179029371721471, 12683773615127059101, 13204302223666623763, 17424109978281620431),
+UInt256(578358058743442943, 6920803156544566587, 7961860373623695911, 16401475882853689245),
+UInt256(1156716117486885886, 13841606313089133174, 15923720747247391823, 14356207691997826874),
+UInt256(231343223497377177, 6457670077359736958, 3184744149449478364, 13939287982625296345),
+UInt256(462686446994754354, 12915340154719473916, 6369488298898956729, 9431831891541041073),
+UInt256(925372893989508709, 7383936235729396216, 12738976597797913459, 416919709372530529),
+UInt256(185074578797901741, 16234182506113520536, 2547795319559582691, 14840779200842147399),
+UInt256(370149157595803483, 14021620938517489456, 5095590639119165383, 11234814327974743182),
+UInt256(740298315191606967, 9596497803325427296, 10191181278238330767, 4022884582239934747),
+UInt256(148059663038321393, 9297997190148906105, 13106282699873397123, 804576916447986950),
+UInt256(296119326076642787, 149250306588260595, 7765821326037242630, 1609153832895973899),
+UInt256(592238652153285574, 298500613176521190, 15531642652074485260, 3218307665791947798),
+UInt256(1184477304306571148, 597001226353042381, 12616541230439418904, 6436615331583895595),
+UInt256(236895460861314229, 11187446689496339445, 17280703505055525073, 12355369510542510089),
+UInt256(473790921722628459, 3928149305283127275, 16114662936401498531, 6263994947375468561),
+UInt256(947581843445256918, 7856298610566254551, 13782581799093445446, 12527989894750937122),
+UInt256(189516368689051383, 12639306166338981879, 17513911618786330382, 2505597978950187425),
+UInt256(379032737378102767, 6831868258968412143, 16581079163863109148, 5011195957900374849),
+UInt256(758065474756205534, 13663736517936824287, 14715414254016666680, 10022391915800749698),
+UInt256(151613094951241106, 17490142562555006150, 6632431665545243659, 5693827197902060263),
+UInt256(303226189902482213, 16533541051400460684, 13264863331090487318, 11387654395804120526),
+UInt256(606452379804964427, 14620338029091369753, 8082982588471423021, 4328564717898689435),
+UInt256(1212904759609928855, 10793931984473187890, 16165965176942846042, 8657129435797378870),
+UInt256(242580951921985771, 2158786396894637578, 3233193035388569208, 9110123516643296421),
+UInt256(485161903843971542, 4317572793789275156, 6466386070777138416, 18220247033286592841),
+UInt256(970323807687943084, 8635145587578550312, 12932772141554276833, 17993749992863634066),
+UInt256(194064761537588616, 16484424376483351355, 6275903243052765689, 18356145257540368106),
+UInt256(388129523075177233, 14522104679257151094, 12551806486105531379, 18265546441371184596),
+UInt256(776259046150354467, 10597465284804750573, 6656868898501511143, 18084348809032817576),
+UInt256(155251809230070893, 9498190686444770761, 1331373779700302228, 14684916206032294485),
+UInt256(310503618460141787, 549637299179989906, 2662747559400604457, 10923088338355037354),
+UInt256(621007236920283574, 1099274598359979812, 5325495118801208915, 3399432603000523091),
+UInt256(1242014473840567148, 2198549196719959624, 10650990237602417830, 6798865206001046182),
+UInt256(248402894768113429, 11507756283569722894, 9508895677004304212, 8738470670684029883),
+UInt256(496805789536226859, 4568768493429894173, 571047280299056808, 17476941341368059766),
+UInt256(993611579072453718, 9137536986859788346, 1142094560598113617, 16507138609026567915),
+UInt256(198722315814490743, 12895553841597688638, 14985814171087264016, 6990776536547223907),
+UInt256(397444631628981487, 7344363609485825661, 11524884268464976416, 13981553073094447813),
+UInt256(794889263257962974, 14688727218971651323, 4603024463220401217, 9516362072479344009),
+UInt256(158977852651592594, 17695140702761971557, 8299302522127900889, 16660667673463510095),
+UInt256(317955705303185189, 16943537331814391498, 16598605044255801779, 14874591273217468573),
+UInt256(635911410606370379, 15440330589919231381, 14750466014802051943, 11302438472725385530),
+UInt256(1271822821212740759, 12433917106128911147, 11054187955894552271, 4158132871741219444),
+UInt256(254364564242548151, 17244178680193423522, 5900186405920820777, 8210324203832064536),
+]
+
+private let bid_multipliers2_bid64_42: [UInt256] = [
+UInt256(508729128485096303, 16041613286677295428, 11800372811841641554, 16420648407664129071),
+UInt256(1017458256970192607, 13636482499645039241, 5154001549973731493, 14394552741618706525),
+UInt256(203491651394038521, 10105994129412828494, 12098846754220477268, 6568259363065651629),
+UInt256(406983302788077043, 1765244185116105373, 5750949434731402920, 13136518726131303257),
+UInt256(813966605576154086, 3530488370232210746, 11501898869462805841, 7826293378553054897),
+UInt256(162793321115230817, 4395446488788352472, 9679077403376381814, 12633305119936341949),
+UInt256(325586642230461634, 8790892977576704945, 911410733043212013, 6819866166163132282),
+UInt256(651173284460923268, 17581785955153409890, 1822821466086424026, 13639732332326264564),
+UInt256(130234656892184653, 14584403635256412947, 11432610737443015774, 17485341725432894206),
+UInt256(260469313784369307, 10722063196803274279, 4418477401176479933, 16523939377156236796),
+UInt256(520938627568738615, 2997382319896996942, 8836954802352959867, 14601134680602921975),
+UInt256(1041877255137477230, 5994764639793993884, 17673909604705919735, 10755525287496292333),
+UInt256(208375451027495446, 1198952927958798776, 18292177179908825239, 16908500316466899760),
+UInt256(416750902054990892, 2397905855917597553, 18137610286108098863, 15370256559224247903),
+UInt256(833501804109981784, 4795811711835195107, 17828476498506646111, 12293769044738944189),
+UInt256(166700360821996356, 15716557601334680314, 7255044114443239545, 9837451438431609485),
+UInt256(333400721643992713, 12986371128959809012, 14510088228886479091, 1228158803153667353),
+UInt256(666801443287985427, 7525998184210066409, 10573432384063406566, 2456317606307334705),
+UInt256(133360288657597085, 8883897266325833928, 5804035291554591636, 7869961150745287588),
+UInt256(266720577315194170, 17767794532651667856, 11608070583109183272, 15739922301490575175),
+UInt256(533441154630388341, 17088844991593784097, 4769397092508814929, 13033100529271598734),
+UInt256(1066882309260776683, 15730945909478016578, 9538794185017629859, 7619456984833645851),
+UInt256(213376461852155336, 14214235626121334285, 5597107651745436295, 1523891396966729171),
+UInt256(426752923704310673, 9981727178533116954, 11194215303490872590, 3047782793933458341),
+UInt256(853505847408621347, 1516710283356682293, 3941686533272193564, 6095565587866916681),
+UInt256(170701169481724269, 7682039686155157105, 788337306654438712, 15976508376541024629),
+UInt256(341402338963448538, 15364079372310314210, 1576674613308877425, 13506272679372497642),
+UInt256(682804677926897077, 12281414670911076804, 3153349226617754851, 8565801285035443668),
+UInt256(136560935585379415, 9834980563666036007, 4320018660065461293, 9091857886490909380),
+UInt256(273121871170758831, 1223217053622520398, 8640037320130922586, 18183715772981818760),
+UInt256(546243742341517662, 2446434107245040796, 17280074640261845173, 17920687472254085904),
+UInt256(1092487484683035324, 4892868214490081593, 16113405206814138731, 17394630870798620192),
+UInt256(218497496936607064, 15735968901865657611, 10601378670846648392, 14546972618385455008),
+UInt256(436994993873214129, 13025193730021763607, 2756013267983745169, 10647201163061358400),
+UInt256(873989987746428259, 7603643386333975598, 5512026535967490339, 2847658252413165184),
+UInt256(174797997549285651, 16278123936234436412, 8481102936677318714, 4258880465224543360),
+UInt256(349595995098571303, 14109503798759321208, 16962205873354637428, 8517760930449086720),
+UInt256(699191990197142607, 9772263523809090801, 15477667672999723240, 17035521860898173440),
+UInt256(139838398039428521, 9333150334245638806, 14163579978825675617, 14475150816405365658),
+UInt256(279676796078857043, 219556594781725997, 9880415883941799619, 10503557559101179700),
+UInt256(559353592157714086, 439113189563451995, 1314087694174047623, 2560371044492807783),
+UInt256(1118707184315428172, 878226379126903990, 2628175388348095246, 5120742088985615565),
+UInt256(223741436863085634, 7554342905309201444, 7904332707153439695, 12092194862022854083),
+UInt256(447482873726171268, 15108685810618402888, 15808665414306879391, 5737645650336156549),
+UInt256(894965747452342537, 11770627547527254161, 13170586754904207166, 11475291300672313098),
+UInt256(178993149490468507, 9732823138989271478, 13702163795206572402, 17052453519102103913),
+UInt256(357986298980937015, 1018902204268991341, 8957583516703593189, 15658162964494656209),
+UInt256(715972597961874030, 2037804408537982682, 17915167033407186379, 12869581855279760802),
+UInt256(143194519592374806, 407560881707596536, 10961731036165257922, 6263265185797862484),
+UInt256(286389039184749612, 815121763415193073, 3476717998620964228, 12526530371595724968),
+]
+
+private let bid_multipliers2_bid64_43: [UInt256] = [
+UInt256(572778078369499224, 1630243526830386146, 6953435997241928457, 6606316669481898319),
+UInt256(1145556156738998448, 3260487053660772292, 13906871994483856914, 13212633338963796637),
+UInt256(229111231347799689, 11720143854957885428, 2781374398896771382, 17399921926760400621),
+UInt256(458222462695599379, 4993543636206219240, 5562748797793542765, 16353099779811249625),
+UInt256(916444925391198758, 9987087272412438480, 11125497595587085531, 14259455485912947633),
+UInt256(183288985078239751, 13065463898708218665, 13293145963343148075, 17609286356150230820),
+UInt256(366577970156479503, 7684183723706885715, 8139547852976744535, 16771828638590910023),
+UInt256(733155940312959006, 15368367447413771430, 16279095705953489071, 15096913203472268429),
+UInt256(146631188062591801, 6763022304224664609, 6945167955932608137, 10398080270178274333),
+UInt256(293262376125183602, 13526044608449329218, 13890335911865216275, 2349416466646997049),
+UInt256(586524752250367205, 8605345143189106821, 9333927750020880934, 4698832933293994097),
+UInt256(1173049504500734410, 17210690286378213643, 221111426332210252, 9397665866587988194),
+UInt256(234609900900146882, 3442138057275642728, 11112268729492173020, 1879533173317597639),
+UInt256(469219801800293764, 6884276114551285457, 3777793385274794424, 3759066346635195278),
+UInt256(938439603600587528, 13768552229102570914, 7555586770549588848, 7518132693270390555),
+UInt256(187687920720117505, 13821756890046245152, 8889814983593738416, 1503626538654078111),
+UInt256(375375841440235011, 9196769706382938688, 17779629967187476832, 3007253077308156222),
+UInt256(750751682880470022, 18393539412765877377, 17112515860665402048, 6014506154616312444),
+UInt256(150150336576094004, 11057405512036996121, 18179898431100721702, 8581598860407083136),
+UInt256(300300673152188009, 3668066950364440627, 17913052788491891788, 17163197720814166271),
+UInt256(600601346304376018, 7336133900728881255, 17379361503274231961, 15879651367918780925),
+UInt256(1201202692608752036, 14672267801457762511, 16311978932838912307, 13312558662128010234),
+UInt256(240240538521750407, 6623802375033462825, 10641093416051603107, 17419906991393243340),
+UInt256(480481077043500814, 13247604750066925651, 2835442758393654599, 16393069909076935063),
+UInt256(960962154087001629, 8048465426424299686, 5670885516787309199, 14339395744444318510),
+UInt256(192192430817400325, 16367088344252501230, 1134177103357461839, 17625274407856504995),
+UInt256(384384861634800651, 14287432614795450844, 2268354206714923679, 16803804742003458374),
+UInt256(768769723269601303, 10128121155881350072, 4536708413429847359, 15160865410297365131),
+UInt256(153753944653920260, 13093670675402000984, 907341682685969471, 17789568341027114319),
+UInt256(307507889307840521, 7740597277094450352, 1814683365371938943, 17132392608344677022),
+UInt256(615015778615681042, 15481194554188900704, 3629366730743877887, 15818041142979802428),
+UInt256(1230031557231362085, 12515645034668249792, 7258733461487755775, 13189338212250053240),
+UInt256(246006311446272417, 2503129006933649958, 8830444321781371801, 10016565271933831295),
+UInt256(492012622892544834, 5006258013867299916, 17660888643562743603, 1586386470158110973),
+UInt256(984025245785089668, 10012516027734599833, 16875033213415935590, 3172772940316221946),
+UInt256(196805049157017933, 13070549649772650936, 7064355457425097441, 4323903402805154713),
+UInt256(393610098314035867, 7694355225835750256, 14128710914850194882, 8647806805610309425),
+UInt256(787220196628071734, 15388710451671500513, 9810677755990838148, 17295613611220618850),
+UInt256(157444039325614346, 17835137349301941395, 9340833180681988276, 3459122722244123770),
+UInt256(314888078651228693, 17223530624894331175, 234922287654424936, 6918245444488247540),
+UInt256(629776157302457387, 16000317176079110734, 469844575308849872, 13836490888976495080),
+UInt256(1259552314604914775, 13553890278448669852, 939689150617699745, 9226237704243438543),
+UInt256(251910462920982955, 2710778055689733970, 7566635459607360595, 9223945170332508355),
+UInt256(503820925841965910, 5421556111379467940, 15133270919214721191, 1146266955465094),
+UInt256(1007641851683931820, 10843112222758935881, 11819797764719890766, 2292533910930188),
+UInt256(201528370336786364, 2168622444551787176, 6053308367685888476, 7379156136266006684),
+UInt256(403056740673572728, 4337244889103574352, 12106616735371776952, 14758312272532013368),
+UInt256(806113481347145456, 8674489778207148705, 5766489397034002289, 11069880471354475120),
+UInt256(161222696269429091, 5424246770383340064, 4842646694148710781, 2213976094270895024),
+UInt256(322445392538858182, 10848493540766680128, 9685293388297421562, 4427952188541790048),
+]
+
+private let bid_multipliers2_bid64_44: [UInt256] = [
+UInt256(644890785077716365, 3250243007823808641, 923842702885291508, 8855904377083580096),
+UInt256(128978157015543273, 650048601564761728, 3874117355318968624, 16528576134384357312),
+UInt256(257956314031086546, 1300097203129523456, 7748234710637937249, 14610408195059163008),
+UInt256(515912628062173092, 2600194406259046912, 15496469421275874499, 10774072316408774400),
+UInt256(1031825256124346184, 5200388812518093825, 12546194768842197383, 3101400559107997184),
+UInt256(206365051224869236, 15797473021471260057, 17266634212736080769, 7998977741305420084),
+UInt256(412730102449738473, 13148201969232968499, 16086524351762609922, 15997955482610840167),
+UInt256(825460204899476947, 7849659864756385383, 13726304629815668229, 13549166891512128717),
+UInt256(165092040979895389, 8948629602435097723, 2745260925963133645, 17467228637270067037),
+UInt256(330184081959790778, 17897259204870195446, 5490521851926267291, 16487713200830582457),
+UInt256(660368163919581557, 17347774336030839276, 10981043703852534583, 14528682327951613297),
+UInt256(132073632783916311, 10848252496689988501, 13264255184996237886, 6595085280332232983),
+UInt256(264147265567832623, 3249760919670425387, 8081766296282924156, 13190170560664465966),
+UInt256(528294531135665246, 6499521839340850774, 16163532592565848313, 7933597047619380315),
+UInt256(1056589062271330492, 12999043678681701549, 13880321111422145010, 15867194095238760629),
+UInt256(211317812454266098, 9978506365220160956, 6465413037026339325, 6862787633789662449),
+UInt256(422635624908532197, 1510268656730770296, 12930826074052678650, 13725575267579324898),
+UInt256(845271249817064394, 3020537313461540593, 7414908074395805685, 9004406461449098180),
+UInt256(169054249963412878, 15361502721659949411, 8861679244362981783, 9179578921773640283),
+UInt256(338108499926825757, 12276261369610347206, 17723358488725963566, 18359157843547280565),
+UInt256(676216999853651515, 6105778665511142797, 16999972903742375517, 18271571613385009514),
+UInt256(135243399970730303, 1221155733102228559, 10778692210232295749, 18411709581644643196),
+UInt256(270486799941460606, 2442311466204457119, 3110640346755039883, 18376675089579734775),
+UInt256(540973599882921212, 4884622932408914238, 6221280693510079767, 18306606105449917934),
+UInt256(1081947199765842424, 9769245864817828476, 12442561387020159535, 18166468137190284252),
+UInt256(216389439953168484, 16711244431931206988, 2488512277404031907, 3633293627438056851),
+UInt256(432778879906336969, 14975744790152862360, 4977024554808063814, 7266587254876113701),
+UInt256(865557759812673939, 11504745506596173104, 9954049109616127628, 14533174509752227401),
+UInt256(173111551962534787, 17058344360286875913, 13058856266148956495, 6595983716692355804),
+UInt256(346223103925069575, 15669944646864200211, 7670968458588361374, 13191967433384711607),
+UInt256(692446207850139151, 12893145220018848806, 15341936917176722749, 7937190793059871598),
+UInt256(138489241570027830, 6267977858745680084, 10447085012919165196, 5276786973353884643),
+UInt256(276978483140055660, 12535955717491360169, 2447425952128778776, 10553573946707769286),
+UInt256(553956966280111321, 6625167361273168722, 4894851904257557553, 2660403819705986955),
+UInt256(1107913932560222642, 13250334722546337444, 9789703808515115106, 5320807639411973910),
+UInt256(221582786512044528, 10028764573993088135, 5647289576444933344, 8442859157366215429),
+UInt256(443165573024089057, 1610785074276624654, 11294579152889866688, 16885718314732430857),
+UInt256(886331146048178114, 3221570148553249309, 4142414232070181761, 15324692555755310098),
+UInt256(177266229209635622, 15401709288678291154, 11896529290639767321, 17822333770118703313),
+UInt256(354532458419271245, 12356674503647030693, 5346314507569983027, 17197923466527855009),
+UInt256(709064916838542491, 6266604933584509770, 10692629015139966055, 15949102859346158402),
+UInt256(141812983367708498, 4942669801458812277, 5827874617769903534, 6879169386611142004),
+UInt256(283625966735416996, 9885339602917624554, 11655749235539807068, 13758338773222284007),
+UInt256(567251933470833993, 1323935132125697493, 4864754397370062521, 9069933472735016398),
+UInt256(1134503866941667986, 2647870264251394986, 9729508794740125042, 18139866945470032796),
+UInt256(226900773388333597, 4218922867592189320, 9324599388431845654, 18385368648061647852),
+UInt256(453801546776667194, 8437845735184378641, 202454703154139693, 18323993222413744088),
+UInt256(907603093553334388, 16875691470368757282, 404909406308279387, 18201242371117936560),
+UInt256(181520618710666877, 14443184738299482426, 80981881261655877, 11018946103707407959),
+UInt256(363041237421333755, 10439625402889413236, 161963762523311755, 3591148133705264301),
+]
+
+private let bid_multipliers2_bid64_45: [UInt256] = [
+UInt256(726082474842667511, 2432506732069274856, 323927525046623510, 7182296267410528602),
+UInt256(145216494968533502, 4175850161155765294, 7443483134493145348, 8815156882965926367),
+UInt256(290432989937067004, 8351700322311530588, 14886966268986290696, 17630313765931852734),
+UInt256(580865979874134008, 16703400644623061177, 11327188464263029777, 16813883458154153851),
+UInt256(1161731959748268017, 14960057215536570739, 4207632854816507939, 15181022842598756086),
+UInt256(232346391949653603, 10370709072591134794, 4530875385705211911, 3036204568519751218),
+UInt256(464692783899307207, 2294674071472717972, 9061750771410423822, 6072409137039502435),
+UInt256(929385567798614414, 4589348142945435944, 18123501542820847644, 12144818274079004869),
+UInt256(185877113559722882, 15675264887556728481, 14692746752789900498, 9807661284299621621),
+UInt256(371754227119445765, 12903785701403905347, 10938749431870249381, 1168578494889691625),
+UInt256(743508454238891531, 7360827329098259079, 3430754790030947146, 2337156989779383249),
+UInt256(148701690847778306, 5161514280561562139, 686150958006189429, 4156780212697786973),
+UInt256(297403381695556612, 10323028561123124278, 1372301916012378858, 8313560425395573946),
+UInt256(594806763391113225, 2199313048536696940, 2744603832024757716, 16627120850791147892),
+UInt256(1189613526782226450, 4398626097073393880, 5489207664049515433, 14807497627872744167),
+UInt256(237922705356445290, 879725219414678776, 1097841532809903086, 14029545969800279803),
+UInt256(475845410712890580, 1759450438829357552, 2195683065619806173, 9612347865891007990),
+UInt256(951690821425781160, 3518900877658715104, 4391366131239612347, 777951658072464364),
+UInt256(190338164285156232, 703780175531743020, 15635668485215563762, 3844939146356403196),
+UInt256(380676328570312464, 1407560351063486041, 12824592896721575908, 7689878292712806392),
+UInt256(761352657140624928, 2815120702126972083, 7202441719733600200, 15379756585425612784),
+UInt256(152270531428124985, 11631070584651125386, 5129837158688630363, 6765300131827032880),
+UInt256(304541062856249971, 4815397095592699156, 10259674317377260726, 13530600263654065760),
+UInt256(609082125712499942, 9630794191185398313, 2072604561044969837, 8614456453598579904),
+UInt256(1218164251424999885, 814844308661245010, 4145209122089939674, 17228912907197159808),
+UInt256(243632850284999977, 162968861732249002, 829041824417987934, 18203177840407073255),
+UInt256(487265700569999954, 325937723464498004, 1658083648835975869, 17959611607104594893),
+UInt256(974531401139999908, 651875446928996008, 3316167297671951739, 17472479140499638170),
+UInt256(194906280227999981, 11198421533611530171, 4352582274276300671, 3494495828099927634),
+UInt256(389812560455999963, 3950098993513508726, 8705164548552601342, 6988991656199855268),
+UInt256(779625120911999926, 7900197987027017452, 17410329097105202684, 13977983312399710536),
+UInt256(155925024182399985, 5269388412147313813, 14550112263646771506, 10174294291963762754),
+UInt256(311850048364799970, 10538776824294627627, 10653480453583991397, 1901844510217973891),
+UInt256(623700096729599941, 2630809574879703639, 2860216833458431178, 3803689020435947782),
+UInt256(1247400193459199882, 5261619149759407278, 5720433666916862356, 7607378040871895564),
+UInt256(249480038691839976, 8431021459435702102, 1144086733383372471, 5210824422916289436),
+UInt256(498960077383679952, 16862042918871404204, 2288173466766744942, 10421648845832578872),
+UInt256(997920154767359905, 15277341764033256792, 4576346933533489885, 2396553617955606128),
+UInt256(199584030953471981, 3055468352806651358, 8293967016190518623, 7858008353074941872),
+UInt256(399168061906943962, 6110936705613302716, 16587934032381037246, 15716016706149883744),
+UInt256(798336123813887924, 12221873411226605433, 14729123991052522877, 12985289338590215872),
+UInt256(159667224762777584, 17201769941212962379, 10324522427694325221, 17354453126685684468),
+UInt256(319334449525555169, 15956795808716373143, 2202300781679098827, 16262162179661817319),
+UInt256(638668899051110339, 13466847543723194670, 4404601563358197655, 14077580285614083021),
+UInt256(1277337798102220679, 8486951013736837724, 8809203126716395311, 9708416497518614426),
+UInt256(255467559620444135, 16454785461715008837, 12829887069569010031, 16699078558471364178),
+UInt256(510935119240888271, 14462826849720466059, 7213030065428468447, 14951413043233176740),
+UInt256(1021870238481776543, 10478909625731380502, 14426060130856936895, 11456082012756801864),
+UInt256(204374047696355308, 13163828369372007070, 2885212026171387379, 2291216402551360373),
+UInt256(408748095392710617, 7880912665034462524, 5770424052342774758, 4582432805102720746),
+]
+
+private let bid_multipliers2_bid64_46: [UInt256] = [
+UInt256(817496190785421234, 15761825330068925048, 11540848104685549516, 9164865610205441491),
+UInt256(163499238157084246, 17909760324981426302, 9686867250420930549, 12901019566266819268),
+UInt256(326998476314168493, 17372776576253300989, 926990427132309483, 7355295058824086920),
+UInt256(653996952628336987, 16298809078797050362, 1853980854264618966, 14710590117648173840),
+UInt256(130799390525667397, 10638459445243230718, 15128191429820565086, 2942118023529634768),
+UInt256(261598781051334795, 2830174816776909821, 11809638785931578556, 5884236047059269536),
+UInt256(523197562102669590, 5660349633553819643, 5172533498153605496, 11768472094118539072),
+UInt256(1046395124205339180, 11320699267107639286, 10345066996307210993, 5090200114527526527),
+UInt256(209279024841067836, 2264139853421527857, 5758362214003352521, 15775435281873146599),
+UInt256(418558049682135672, 4528279706843055714, 11516724428006705043, 13104126490036741581),
+UInt256(837116099364271344, 9056559413686111429, 4586704782303858471, 7761508906363931545),
+UInt256(167423219872854268, 16568707141704863578, 11985387400686502663, 16309697040240427602),
+UInt256(334846439745708537, 14690670209700175541, 5524030727663453711, 14172650006771303588),
+UInt256(669692879491417075, 10934596345690799466, 11048061455326907423, 9898555939833055559),
+UInt256(133938575898283415, 2186919269138159893, 5898961105807291807, 16737106446934252405),
+UInt256(267877151796566830, 4373838538276319786, 11797922211614583615, 15027468820158953194),
+UInt256(535754303593133660, 8747677076552639573, 5149100349519615615, 11608193566608354771),
+UInt256(1071508607186267320, 17495354153105279146, 10298200699039231231, 4769643059507157925),
+UInt256(214301721437253464, 3499070830621055829, 5748988954549756569, 8332626241385252232),
+UInt256(428603442874506928, 6998141661242111658, 11497977909099513138, 16665252482770504463),
+UInt256(857206885749013856, 13996283322484223317, 4549211744489474661, 14883760891831457310),
+UInt256(171441377149802771, 6488605479238754986, 11977888793123625901, 17734147437333932755),
+UInt256(342882754299605542, 12977210958477509973, 5509033512537700187, 17021550800958313894),
+UInt256(685765508599211085, 7507677843245468330, 11018067025075400375, 15596357528207076171),
+UInt256(137153101719842217, 1501535568649093666, 2203613405015080075, 3119271505641415235),
+UInt256(274306203439684434, 3003071137298187332, 4407226810030160150, 6238543011282830469),
+UInt256(548612406879368868, 6006142274596374664, 8814453620060320300, 12477086022565660937),
+UInt256(1097224813758737736, 12012284549192749328, 17628907240120640601, 6507427971421770257),
+UInt256(219444962751747547, 6091805724580460188, 18283176706991769413, 1301485594284354052),
+UInt256(438889925503495094, 12183611449160920377, 18119609340273987210, 2602971188568708103),
+UInt256(877779851006990189, 5920478824612289139, 17792474606838422804, 5205942377137416206),
+UInt256(175555970201398037, 15941491023890099120, 14626541365593415530, 8419886104911303888),
+UInt256(351111940402796075, 13436237974070646625, 10806338657477279444, 16839772209822607775),
+UInt256(702223880805592151, 8425731874431741635, 3165933241245007273, 15232800345935663934),
+UInt256(140444776161118430, 5374495189628258650, 4322535462990911777, 17803955328154774080),
+UInt256(280889552322236860, 10748990379256517300, 8645070925981823555, 17161166582599996544),
+UInt256(561779104644473721, 3051236684803482984, 17290141851963647111, 15875589091490441471),
+UInt256(1123558209288947442, 6102473369606965969, 16133539630217742607, 13304434109271331325),
+UInt256(224711641857789488, 8599192303405213840, 6916056740785458844, 13728933266079997235),
+UInt256(449423283715578976, 17198384606810427680, 13832113481570917689, 9011122458450442854),
+UInt256(898846567431157953, 15950025139911303745, 9217482889432283762, 18022244916900885707),
+UInt256(179769313486231590, 14258051472207991718, 12911543022112187722, 3604448983380177142),
+UInt256(359538626972463181, 10069358870706431821, 7376341970514823828, 7208897966760354283),
+UInt256(719077253944926363, 1691973667703312026, 14752683941029647656, 14417795933520708565),
+UInt256(143815450788985272, 11406441177766393374, 17707932047173570824, 2883559186704141713),
+UInt256(287630901577970545, 4366138281823235133, 16969120020637590032, 5767118373408283426),
+UInt256(575261803155941090, 8732276563646470267, 15491495967565628448, 11534236746816566852),
+UInt256(1150523606311882180, 17464553127292940535, 12536247861421705281, 4621729419923582088),
+UInt256(230104721262376436, 3492910625458588107, 2507249572284341056, 4613694698726626741),
+UInt256(460209442524752872, 6985821250917176214, 5014499144568682112, 9227389397453253482),
+]
+
+private let bid_multipliers2_bid64_47: [UInt256] = [
+UInt256(920418885049505744, 13971642501834352428, 10028998289137364225, 8034721196955348),
+UInt256(184083777009901148, 17551723759334511778, 9384497287311293491, 7380304573723211716),
+UInt256(368167554019802297, 16656703444959471941, 322250500913035366, 14760609147446423432),
+UInt256(736335108039604595, 14866662816209392266, 644501001826070733, 11074474221183295248),
+UInt256(147267021607920919, 2973332563241878453, 3818249015107124469, 16972290103204300343),
+UInt256(294534043215841838, 5946665126483756906, 7636498030214248939, 15497836132699049069),
+UInt256(589068086431683676, 11893330252967513812, 15272996060428497879, 12548928191688546521),
+UInt256(1178136172863367353, 5339916432225476009, 12099248047147444143, 6651112309667541426),
+UInt256(235627234572673470, 12136029730670826171, 9798547238913309475, 1330222461933508286),
+UInt256(471254469145346941, 5825315387632100727, 1150350404117067334, 2660444923867016571),
+UInt256(942508938290693882, 11650630775264201454, 2300700808234134668, 5320889847734033141),
+UInt256(188501787658138776, 9708823784536660937, 4149488976388737256, 15821573228514447921),
+UInt256(377003575316277553, 970903495363770258, 8298977952777474513, 13196402383319344226),
+UInt256(754007150632555106, 1941806990727540516, 16597955905554949027, 7946060692929136836),
+UInt256(150801430126511021, 4077710212887418426, 10698288810594810451, 16346607397553468660),
+UInt256(301602860253022042, 8155420425774836853, 2949833547480069287, 14246470721397385704),
+UInt256(603205720506044084, 16310840851549673706, 5899667094960138575, 10046197369085219792),
+UInt256(1206411441012088169, 14174937629389795796, 11799334189920277151, 1645650664460887968),
+UInt256(241282288202417633, 17592382784845600452, 2359866837984055430, 4018478947634087917),
+UInt256(482564576404835267, 16738021495981649288, 4719733675968110860, 8036957895268175834),
+UInt256(965129152809670535, 15029298918253746960, 9439467351936221720, 16073915790536351667),
+UInt256(193025830561934107, 3005859783650749392, 1887893470387244344, 3214783158107270334),
+UInt256(386051661123868214, 6011719567301498784, 3775786940774488688, 6429566316214540667),
+UInt256(772103322247736428, 12023439134602997568, 7551573881548977376, 12859132632429081334),
+UInt256(154420664449547285, 13472734271146330483, 5199663591051705798, 9950524155969636914),
+UInt256(308841328899094571, 8498724468583109350, 10399327182103411597, 1454304238229722211),
+UInt256(617682657798189142, 16997448937166218701, 2351910290497271578, 2908608476459444421),
+UInt256(1235365315596378285, 15548153800622885786, 4703820580994543156, 5817216952918888841),
+UInt256(247073063119275657, 3109630760124577157, 4630112930940818954, 8542141020067598415),
+UInt256(494146126238551314, 6219261520249154314, 9260225861881637908, 17084282040135196830),
+UInt256(988292252477102628, 12438523040498308629, 73707650053724201, 15721820006560842043),
+UInt256(197658450495420525, 13555751052325392695, 7393439159494565486, 14212410445537899379),
+UInt256(395316900990841051, 8664758030941233774, 14786878318989130973, 9978076817366247141),
+UInt256(790633801981682102, 17329516061882467549, 11127012564268710331, 1509409561022942665),
+UInt256(158126760396336420, 10844600841860314156, 5914751327595652389, 7680579541688409180),
+UInt256(316253520792672841, 3242457610011076696, 11829502655191304778, 15361159083376818359),
+UInt256(632507041585345682, 6484915220022153393, 5212261236673057941, 12275574093044085102),
+UInt256(1265014083170691364, 12969830440044306786, 10424522473346115883, 6104404112378618587),
+UInt256(253002816634138272, 17351361346976502650, 2084904494669223176, 12288927266701454687),
+UInt256(506005633268276545, 16255978620243453684, 4169808989338446353, 6131110459693357758),
+UInt256(1012011266536553091, 14065213166777355752, 8339617978676892706, 12262220919386715516),
+UInt256(202402253307310618, 6502391448097381473, 12735970039961109510, 17209839442844984396),
+UInt256(404804506614621236, 13004782896194762947, 7025196006212667405, 15972934811980417176),
+UInt256(809609013229242473, 7562821718679974278, 14050392012425334811, 13499125550251282736),
+UInt256(161921802645848494, 12580610787961725825, 6499427217226977285, 10078522739534077194),
+UInt256(323843605291696989, 6714477502213900034, 12998854434453954571, 1710301405358602771),
+UInt256(647687210583393978, 13428955004427800069, 7550964795198357526, 3420602810717205542),
+UInt256(129537442116678795, 13753837445111290983, 8888890588523492151, 11752167006369172078),
+UInt256(259074884233357591, 9060930816513030350, 17777781177046984303, 5057589939028792540),
+UInt256(518149768466715182, 18121861633026060701, 17108818280384416990, 10115179878057585080),
+]
+
+private let bid_multipliers2_bid64_48: [UInt256] = [
+UInt256(1036299536933430365, 17796979192342569787, 15770892487059282365, 1783615682405618544),
+UInt256(207259907386686073, 3559395838468513957, 10532876126895677119, 7735420765964944356),
+UInt256(414519814773372146, 7118791676937027915, 2619008180081802622, 15470841531929888711),
+UInt256(829039629546744292, 14237583353874055830, 5238016360163605245, 12494938990150225805),
+UInt256(165807925909348858, 10226214300258631812, 8426300901516541695, 9877685427513865808),
+UInt256(331615851818697717, 2005684526807712008, 16852601803033083391, 1308626781318179999),
+UInt256(663231703637395434, 4011369053615424017, 15258459532356615166, 2617253562636359998),
+UInt256(132646340727479086, 15559669069690726096, 6741040721213233356, 7902148342011092646),
+UInt256(265292681454958173, 12672594065671900576, 13482081442426466712, 15804296684022185292),
+UInt256(530585362909916347, 6898444057634249537, 8517418811143381809, 13161849294334818968),
+UInt256(1061170725819832694, 13796888115268499074, 17034837622286763619, 7876954514960086319),
+UInt256(212234145163966538, 17516772882021341107, 14475013968683083693, 8954088532475837911),
+UInt256(424468290327933077, 16586801690333130599, 10503283863656615770, 17908177064951675821),
+UInt256(848936580655866155, 14726859306956709583, 2559823653603679925, 17369610056193800025),
+UInt256(169787316131173231, 2945371861391341916, 11580011174946466954, 14541968455464490975),
+UInt256(339574632262346462, 5890743722782683833, 4713278276183382293, 10637192837219430334),
+UInt256(679149264524692924, 11781487445565367666, 9426556552366764587, 2827641600729309051),
+UInt256(135829852904938584, 17113692748080714826, 1885311310473352917, 7944225949629682457),
+UInt256(271659705809877169, 15780641422451878036, 3770622620946705834, 15888451899259364913),
+UInt256(543319411619754339, 13114538771194204456, 7541245241893411669, 13330159724809178210),
+UInt256(1086638823239508679, 7782333468678857296, 15082490483786823339, 8213575375908804804),
+UInt256(217327764647901735, 16313861952703412752, 3016498096757364667, 16400110334149402254),
+UInt256(434655529295803471, 14180979831697273888, 6032996193514729335, 14353476594589252892),
+UInt256(869311058591606943, 9915215589684996160, 12065992387029458671, 10260209115468954167),
+UInt256(173862211718321388, 13051089562162730201, 13481244921631622703, 16809437082061432127),
+UInt256(347724423436642777, 7655435050615908787, 8515745769553693791, 15172130090413312637),
+UInt256(695448846873285554, 15310870101231817574, 17031491539107387583, 11897516107117073657),
+UInt256(139089769374657110, 17819569279214004807, 14474344752047208486, 6068852036165325055),
+UInt256(278179538749314221, 17192394484718457999, 10501945430384865356, 12137704072330650109),
+UInt256(556359077498628443, 15938044895727364383, 2557146787060179097, 5828664070951748602),
+UInt256(1112718154997256887, 13429345717745177150, 5114293574120358194, 11657328141903497204),
+UInt256(222543630999451377, 10064566773032856076, 8401556344307892285, 6020814443122609764),
+UInt256(445087261998902755, 1682389472356160536, 16803112688615784570, 12041628886245219528),
+UInt256(890174523997805510, 3364778944712321073, 15159481303522017525, 5636513698780887440),
+UInt256(178034904799561102, 672955788942464214, 14099942704930134474, 12195349183981908458),
+UInt256(356069809599122204, 1345911577884928429, 9753141336150717333, 5943954294254265299),
+UInt256(712139619198244408, 2691823155769856859, 1059538598591883050, 11887908588508530598),
+UInt256(142427923839648881, 11606411075379702341, 7590605349202197256, 9756279347185526766),
+UInt256(284855847679297763, 4766078077049853066, 15181210698404394513, 1065814620661501916),
+UInt256(569711695358595526, 9532156154099706133, 11915677323099237410, 2131629241323003832),
+UInt256(1139423390717191053, 617568234489860651, 5384610572488923204, 4263258482646007664),
+UInt256(227884678143438210, 11191560091123703099, 15834317373465425933, 11920698140754932503),
+UInt256(455769356286876421, 3936376108537854583, 13221890673221300251, 5394652207800313389),
+UInt256(911538712573752842, 7872752217075709167, 7997037272733048886, 10789304415600626778),
+UInt256(182307742514750568, 8953248072898962479, 16356802713514251070, 2157860883120125356),
+UInt256(364615485029501136, 17906496145797924959, 14266861353318950524, 4315721766240250711),
+UInt256(729230970059002273, 17366248217886298303, 10086978632928349432, 8631443532480501422),
+UInt256(145846194011800454, 14541296087802990630, 5706744541327580209, 12794335150721831254),
+UInt256(291692388023600909, 10635848101896429644, 11413489082655160419, 7141926227734110892),
+UInt256(583384776047201819, 2824952130083307673, 4380234091600769222, 14283852455468221784),
+]
+
+private let bid_multipliers2_bid64_49: [UInt256] = [
+UInt256(1166769552094403638, 5649904260166615346, 8760468183201538445, 10120960837226891952),
+UInt256(233353910418880727, 12198027296259054038, 16509488895607948981, 16781587426413019684),
+UInt256(466707820837761455, 5949310518808556461, 14572233717506346347, 15116430779116487751),
+UInt256(933415641675522910, 11898621037617112923, 10697723361303141079, 11786117484523423885),
+UInt256(186683128335104582, 2379724207523422584, 13207591116486359185, 9735921126388505424),
+UInt256(373366256670209164, 4759448415046845169, 7968438159263166755, 1025098179067459231),
+UInt256(746732513340418328, 9518896830093690338, 15936876318526333510, 2050196358134918462),
+UInt256(149346502668083665, 12971825810244469037, 6876724078447177025, 4099388086368894016),
+UInt256(298693005336167331, 7496907546779386458, 13753448156894354050, 8198776172737788031),
+UInt256(597386010672334662, 14993815093558772917, 9060152240079156484, 16397552345475576062),
+UInt256(1194772021344669325, 11540886113407994218, 18120304480158312969, 14348360617241600508),
+UInt256(238954404268933865, 2308177222681598843, 14692107340257393563, 10248369752932140748),
+UInt256(477908808537867730, 4616354445363197687, 10937470606805235511, 2049995432154729880),
+UInt256(955817617075735460, 9232708890726395375, 3428197139900919406, 4099990864309459760),
+UInt256(191163523415147092, 1846541778145279075, 685639427980183881, 4509346987603802276),
+UInt256(382327046830294184, 3693083556290558150, 1371278855960367762, 9018693975207604551),
+UInt256(764654093660588368, 7386167112581116300, 2742557711920735524, 18037387950415209101),
+UInt256(152930818732117673, 12545279866741954229, 11616557986609878074, 10986175219566862467),
+UInt256(305861637464235347, 6643815659774356843, 4786371899510204533, 3525606365424173318),
+UInt256(611723274928470694, 13287631319548713686, 9572743799020409066, 7051212730848346635),
+UInt256(1223446549856941389, 8128518565387875757, 698743524331266516, 14102425461696693269),
+UInt256(244689309971388277, 16383098972045216444, 3829097519608163626, 10199182721823159301),
+UInt256(489378619942776555, 14319453870380881272, 7658195039216327253, 1951621369936766985),
+UInt256(978757239885553111, 10192163667052210928, 15316390078432654506, 3903242739873533969),
+UInt256(195751447977110622, 5727781548152352508, 17820673274654172194, 780648547974706794),
+UInt256(391502895954221244, 11455563096304705017, 17194602475598792772, 1561297095949413588),
+UInt256(783005791908442489, 4464382118899858419, 15942460877488033928, 3122594191898827175),
+UInt256(156601158381688497, 15650271682747612976, 14256538619723337755, 4313867653121675759),
+UInt256(313202316763376995, 12853799291785674337, 10066333165737123894, 8627735306243351517),
+UInt256(626404633526753991, 7260854509861797059, 1685922257764696172, 17255470612486703033),
+UInt256(1252809267053507982, 14521709019723594118, 3371844515529392345, 16064197151263854450),
+UInt256(250561853410701596, 10283039433428539470, 674368903105878469, 3212839430252770890),
+UInt256(501123706821403193, 2119334793147527324, 1348737806211756938, 6425678860505541780),
+UInt256(1002247413642806386, 4238669586295054648, 2697475612423513876, 12851357721011083560),
+UInt256(200449482728561277, 4537082732000921252, 15296890381452344068, 2570271544202216712),
+UInt256(400898965457122554, 9074165464001842505, 12147036689195136520, 5140543088404433424),
+UInt256(801797930914245108, 18148330928003685011, 5847329304680721424, 10281086176808866848),
+UInt256(160359586182849021, 14697712629826467971, 15926861119903785577, 13124263679587504340),
+UInt256(320719172365698043, 10948681185943384327, 13406978166098019539, 7801783285465457063),
+UInt256(641438344731396087, 3450618298177217039, 8367212258486487462, 15603566570930914125),
+UInt256(128287668946279217, 8068821289119264054, 5362791266439207815, 14188759758411913795),
+UInt256(256575337892558434, 16137642578238528108, 10725582532878415631, 9930775443114275973),
+UInt256(513150675785116869, 13828541082767504601, 3004420992047279647, 1414806812519000330),
+UInt256(1026301351570233739, 9210338091825457586, 6008841984094559294, 2829613625038000660),
+UInt256(205260270314046747, 16599462877332732810, 1201768396818911858, 15323317983975241425),
+UInt256(410520540628093495, 14752181680955914004, 2403536793637823717, 12199891894240931234),
+UInt256(821041081256186991, 11057619288202276392, 4807073587275647435, 5953039714772310851),
+UInt256(164208216251237398, 5900872672382365601, 12029461161680860456, 12258654387180193140),
+UInt256(328416432502474796, 11801745344764731203, 5612178249652169297, 6070564700650834664),
+UInt256(656832865004949593, 5156746615819910790, 11224356499304338594, 12141129401301669328),
+]
+
+private let bid_multipliers2_bid64_50: [UInt256] = [
+UInt256(131366573000989918, 12099395767389713127, 13312917744086598688, 9806923509744154512),
+UInt256(262733146001979837, 5752047461069874639, 8179091414463645761, 1167102945778757408),
+UInt256(525466292003959674, 11504094922139749278, 16358182828927291522, 2334205891557514816),
+UInt256(1050932584007919349, 4561445770569946941, 14269621584145031428, 4668411783115029631),
+UInt256(210186516801583869, 15669684413081630681, 2853924316829006285, 12001728800848736896),
+UInt256(420373033603167739, 12892624752453709746, 5707848633658012571, 5556713527987922176),
+UInt256(840746067206335479, 7338505431197867876, 11415697267316025142, 11113427055975844351),
+UInt256(168149213441267095, 16225096345207214868, 2283139453463205028, 9601383040678989517),
+UInt256(336298426882534191, 14003448616704878120, 4566278906926410057, 756022007648427418),
+UInt256(672596853765068383, 9560153159700204624, 9132557813852820114, 1512044015296854835),
+UInt256(134519370753013676, 12980077076165771894, 9205209192254384669, 3991757617801281291),
+UInt256(269038741506027353, 7513410078621992172, 18410418384508769338, 7983515235602562581),
+UInt256(538077483012054706, 15026820157243984345, 18374092695307987060, 15967030471205125161),
+UInt256(1076154966024109413, 11606896240778417075, 18301441316906422505, 13487316868700698705),
+UInt256(215230993204821882, 13389425692381414384, 14728334707607015470, 13765509817965870711),
+UInt256(430461986409643765, 8332107311053277153, 11009925341504479325, 9084275562222189806),
+UInt256(860923972819287530, 16664214622106554307, 3573106609299407034, 18168551124444379611),
+UInt256(172184794563857506, 3332842924421310861, 8093318951343702053, 7323059039630786246),
+UInt256(344369589127715012, 6665685848842621722, 16186637902687404106, 14646118079261572491),
+UInt256(688739178255430024, 13331371697685243445, 13926531731665256597, 10845492084813593365),
+UInt256(137747835651086004, 17423669598504689981, 17542701605300692612, 5858447231704628997),
+UInt256(275495671302172009, 16400595123299828347, 16638659136891833608, 11716894463409257993),
+UInt256(550991342604344019, 14354446172890105079, 14830574200074115601, 4987044853108964369),
+UInt256(1101982685208688039, 10262148272070658543, 11214404326438679586, 9974089706217928738),
+UInt256(220396537041737607, 16809824913381773001, 9621578494771556563, 13062864385469316718),
+UInt256(440793074083475215, 15172905753053994387, 796412915833561511, 7678984697229081819),
+UInt256(881586148166950431, 11899067432398437158, 1592825831667123022, 15357969394458163637),
+UInt256(176317229633390086, 6069162301221597754, 15075960425301065897, 6760942693633543051),
+UInt256(352634459266780172, 12138324602443195509, 11705176776892580178, 13521885387267086101),
+UInt256(705268918533560345, 5829905131176839403, 4963609480075608741, 8597026700824620586),
+UInt256(141053783706712069, 1165981026235367880, 12060768340240852717, 16476800599132565410),
+UInt256(282107567413424138, 2331962052470735761, 5674792606772153819, 14506857124555579204),
+UInt256(564215134826848276, 4663924104941471522, 11349585213544307639, 10566970175401606792),
+UInt256(1128430269653696552, 9327848209882943045, 4252426353379063663, 2687196277093661968),
+UInt256(225686053930739310, 9244267271460409255, 8229182900159633379, 537439255418732394),
+UInt256(451372107861478621, 41790469211266894, 16458365800319266758, 1074878510837464788),
+UInt256(902744215722957242, 83580938422533789, 14469987526928981900, 2149757021674929575),
+UInt256(180548843144591448, 7395413817168327404, 6583346320127706703, 4119300219076896239),
+UInt256(361097686289182896, 14790827634336654808, 13166692640255413406, 8238600438153792477),
+UInt256(722195372578365793, 11134911194963758001, 7886641206801275196, 16477200876307584953),
+UInt256(144439074515673158, 13295028683218482569, 16334723500327896332, 3295440175261516991),
+UInt256(288878149031346317, 8143313292727413523, 14222702926946241048, 6590880350523033981),
+UInt256(577756298062692634, 16286626585454827047, 9998661780182930480, 13181760701046067962),
+UInt256(1155512596125385269, 14126509097200102479, 1550579486656309345, 7916777328382584308),
+UInt256(231102519225077053, 17582697078407661788, 11378162341556992838, 12651401909902247832),
+UInt256(462205038450154107, 16718650083105771961, 4309580609404434061, 6856059746094944047),
+UInt256(924410076900308215, 14990556092501992306, 8619161218808868122, 13712119492189888093),
+UInt256(184882015380061643, 2998111218500398461, 5413181058503683947, 13810470342663708589),
+UInt256(369764030760123286, 5996222437000796922, 10826362117007367895, 9174196611617865561),
+UInt256(739528061520246572, 11992444874001593845, 3205980160305184174, 18348393223235731121),
+]
+
+private let bid_multipliers2_bid64_51: [UInt256] = [
+UInt256(147905612304049314, 9777186604284139415, 8019893661544857481, 7359027459389056548),
+UInt256(295811224608098629, 1107629134858727214, 16039787323089714962, 14718054918778113095),
+UInt256(591622449216197258, 2215258269717454429, 13632830572469878309, 10989365763846674573),
+UInt256(1183244898432394516, 4430516539434908859, 8818917071230205003, 3531987453983797530),
+UInt256(236648979686478903, 4575452122628892095, 1763783414246041000, 11774443935022490476),
+UInt256(473297959372957806, 9150904245257784190, 3527566828492082001, 5102143796335429336),
+UInt256(946595918745915612, 18301808490515568380, 7055133656984164002, 10204287592670858671),
+UInt256(189319183749183122, 11039059327586934322, 8789724360880653446, 16798252777501813027),
+UInt256(378638367498366245, 3631374581464317028, 17579448721761306893, 15149761481294074438),
+UInt256(757276734996732490, 7262749162928634057, 16712153369813062171, 11852778888878597260),
+UInt256(151455346999346498, 1452549832585726811, 10721128303446433080, 13438602222001450422),
+UInt256(302910693998692996, 2905099665171453623, 2995512533183314545, 8430460370293349228),
+UInt256(605821387997385992, 5810199330342907246, 5991025066366629090, 16860920740586698455),
+UInt256(1211642775994771984, 11620398660685814492, 11982050132733258181, 15275097407463845293),
+UInt256(242328555198954396, 17081474991104804191, 6085758841288561959, 10433717110976589705),
+UInt256(484657110397908793, 15716205908500056766, 12171517682577123919, 2420690148243627794),
+UInt256(969314220795817587, 12985667743290561917, 5896291291444696222, 4841380296487255588),
+UInt256(193862844159163517, 9975831178141933029, 15936653517256580537, 4657624874039361441),
+UInt256(387725688318327035, 1504918282574314443, 13426562960803609458, 9315249748078722882),
+UInt256(775451376636654070, 3009836565148628887, 8406381847897667301, 183755422447894147),
+UInt256(155090275327330814, 601967313029725777, 9059973999063354106, 11104797528715309799),
+UInt256(310180550654661628, 1203934626059451554, 18119947998126708213, 3762850983721067982),
+UInt256(620361101309323256, 2407869252118903109, 17793151922543864810, 7525701967442135964),
+UInt256(1240722202618646512, 4815738504237806219, 17139559771378178004, 15051403934884271928),
+UInt256(248144440523729302, 8341845330331381890, 7117260769017545924, 3010280786976854386),
+UInt256(496288881047458604, 16683690660662763780, 14234521538035091848, 6020561573953708771),
+UInt256(992577762094917209, 14920637247615975945, 10022299002360632080, 12041123147907417542),
+UInt256(198515552418983441, 17741522708490836481, 16761855059439767708, 17165619888549124802),
+UInt256(397031104837966883, 17036301343272121347, 15076966045169983801, 15884495703388697987),
+UInt256(794062209675933767, 15625858612834691079, 11707188016630415987, 13322247333067844357),
+UInt256(158812441935186753, 10503869352050758862, 6030786418067993520, 13732495910839299841),
+UInt256(317624883870373507, 2560994630391966108, 12061572836135987041, 9018247747969048066),
+UInt256(635249767740747014, 5121989260783932217, 5676401598562422466, 18036495495938096132),
+UInt256(1270499535481494028, 10243978521567864434, 11352803197124844933, 17626246918166640648),
+UInt256(254099907096298805, 13116842148539303856, 9649258268908789633, 3525249383633328130),
+UInt256(508199814192597611, 7786940223369056097, 851772464108027650, 7050498767266656259),
+UInt256(1016399628385195222, 15573880446738112194, 1703544928216055300, 14100997534533312518),
+UInt256(203279925677039044, 10493473718831443085, 4030057800385121383, 6509548321648572827),
+UInt256(406559851354078089, 2540203363953334554, 8060115600770242766, 13019096643297145654),
+UInt256(813119702708156178, 5080406727906669108, 16120231201540485533, 7591449212884739692),
+UInt256(162623940541631235, 12084127789807064791, 6913395055050007429, 16275685101544589232),
+UInt256(325247881083262471, 5721511505904577966, 13826790110100014859, 14104626129379626847),
+UInt256(650495762166524942, 11443023011809155933, 9206836146490478103, 9762508185049702077),
+UInt256(130099152433304988, 9667302231845651833, 1841367229298095620, 13020548081235671385),
+UInt256(260198304866609977, 887860389981752050, 3682734458596191241, 7594352088761791154),
+UInt256(520396609733219954, 1775720779963504100, 7365468917192382482, 15188704177523582308),
+UInt256(1040793219466439908, 3551441559927008200, 14730937834384764965, 11930664281337612999),
+UInt256(208158643893287981, 11778334756211132609, 14014234011102683962, 13454179300493253570),
+UInt256(416317287786575963, 5109925438712713603, 9581723948495816309, 8461614527276955523),
+UInt256(832634575573151926, 10219850877425427207, 716703823282081002, 16923229054553911046),
+]
+
+private let bid_multipliers2_bid64_52: [UInt256] = [
+UInt256(166526915114630385, 5733318990226995764, 11211387208882147170, 3384645810910782210),
+UInt256(333053830229260770, 11466637980453991529, 3976030344054742724, 6769291621821564419),
+UInt256(666107660458521541, 4486531887198431442, 7952060688109485448, 13538583243643128837),
+UInt256(133221532091704308, 4586655192181596611, 12658458581847628059, 6397065463470536091),
+UInt256(266443064183408616, 9173310384363193223, 6870173089985704502, 12794130926941072181),
+]
+
+// MARK: - bid_innertable_sig
+
+extension BinaryFloatingPointTables {
+ internal static func bid_innertable_sig(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_innertable_sig_0[r]
+ case 1: return bid_innertable_sig_1[r]
+ case 2: return bid_innertable_sig_2[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_innertable_sig_0: [UInt256] = [
+UInt256(12141680576410806693, 4549648098962661924, 3035406636157676337, 1014026100135492416),
+UInt256(15177100720513508366, 10298746142130715309, 3794258295197095421, 5879218643596753424),
+UInt256(9485687950320942729, 1825030320404309164, 4677254443711878590, 5980354661461664842),
+UInt256(11857109937901178411, 6892973918932774359, 5846568054639848237, 16698815363681856860),
+UInt256(14821387422376473014, 4004531380238580045, 2696524049872422393, 7038461149320157363),
+UInt256(9263367138985295633, 16337890167931276240, 3991170540383957947, 15928253264393568112),
+UInt256(11579208923731619542, 6587304654631931588, 4988963175479947434, 15298630562064572236),
+UInt256(14474011154664524427, 17457502855144690293, 6236203969349934293, 9899916165725939487),
+UInt256(18092513943330655534, 17210192550503474962, 12406940980114805770, 16986581225584812263),
+UInt256(11307821214581659709, 6144684325637283947, 12366024130999141510, 15228299284417895569),
+UInt256(14134776518227074636, 12292541425473992838, 10845844145321538984, 9812002068667593653),
+UInt256(17668470647783843295, 15365676781842491048, 4333933144797147922, 12265002585834492066),
+UInt256(11042794154864902059, 16521077016292638761, 2708708215498217451, 12277312634573945445),
+UInt256(13803492693581127574, 16039660251938410547, 7997571287800159718, 10734954774790043902),
+UInt256(17254365866976409468, 10826203278068237376, 5385278091322811744, 4195321431632779070),
+UInt256(10783978666860255917, 15989749085647424168, 3365798807076757340, 2622075894770486919),
+UInt256(13479973333575319897, 6152128301777116498, 4207248508845946675, 3277594868463108648),
+UInt256(16849966666969149871, 12301846395648783526, 14482432672912209151, 17932051640861049522),
+UInt256(10531229166855718669, 14606183024921571560, 4439834402142742815, 18125061303179237808),
+UInt256(13164036458569648337, 4422670725869800738, 5549793002678428519, 18044640610546659355),
+UInt256(16455045573212060421, 10140024425764638826, 16160613290202811457, 17944114744755936290),
+UInt256(10284403483257537763, 8643358275316593218, 14712069324804145065, 4297542687831378326),
+UInt256(12855504354071922204, 6192511825718353619, 9166714619150405523, 9983614378216610811),
+UInt256(16069380442589902755, 7740639782147942024, 6846707255510619000, 7867831954343375609),
+UInt256(10043362776618689222, 2532056854628769813, 4279192034694136875, 4917394971464609756),
+UInt256(12554203470773361527, 12388443105140738074, 9960676061795058998, 1535057695903374291),
+UInt256(15692754338466701909, 10873867862998534689, 3227473040389047939, 11142194156733993672),
+UInt256(9807971461541688693, 9102010423587778132, 13546385696311624722, 4658028338745052093),
+UInt256(12259964326927110866, 15989199047912110569, 16932982120389530902, 15045907460286090924),
+UInt256(15324955408658888583, 10763126773035362404, 7331169595204749916, 9584012288502837847),
+UInt256(9578097130411805364, 13644483260788183358, 13805353033857744505, 15213379717169049462),
+UInt256(11972621413014756705, 17055604075985229198, 8033319255467404824, 5181666591179148116),
+UInt256(14965776766268445882, 7484447039699372786, 818277032479480222, 6477083238973935145),
+UInt256(9353610478917778676, 9289465418239495895, 5123109163727063042, 17883235079640873178),
+UInt256(11692013098647223345, 11611831772799369869, 1792200436231440899, 13130671812696315664),
+UInt256(14615016373309029182, 679731660717048624, 6851936563716689028, 11801653747443006676),
+UInt256(18268770466636286477, 10073036612751086588, 8564920704645861285, 14752067184303758345),
+UInt256(11417981541647679048, 8601490892183123069, 14576447477258439111, 11525884999403542918),
+UInt256(14272476927059598810, 10751863615228903837, 4385501291290885177, 9795670230827040743),
+UInt256(17840596158824498513, 4216457482181353988, 10093562632540994375, 16856273806961188833),
+UInt256(11150372599265311570, 14164500972431816002, 15531848682192897292, 17452700156991824877),
+UInt256(13937965749081639463, 8482254178684994195, 10191438815886345808, 3369131122530229480),
+UInt256(17422457186352049329, 5991131704928854840, 8127612501430544356, 4211413903162786849),
+UInt256(10889035741470030830, 15273672361649004035, 5079757813394090222, 11855505726331517589),
+UInt256(13611294676837538538, 9868718415206479236, 1738011248315224874, 5596010121059621178),
+UInt256(17014118346046923173, 3112525982153323237, 2172514060394031092, 16218384688179302281),
+UInt256(10633823966279326983, 4251171748059520975, 3663664296959963385, 913118393257288118),
+UInt256(13292279957849158729, 702278666647013314, 18414638426482117943, 5753084009998998051),
+UInt256(16615349947311448411, 5489534351736154547, 13794925996247871621, 2579668994071359659),
+UInt256(10384593717069655257, 1125115960621402640, 6315985738441225811, 3918136130508293739),
+]
+
+private let bid_innertable_sig_1: [UInt256] = [
+UInt256(12980742146337069071, 6018080969204141204, 7894982173051532264, 285984144707979270),
+UInt256(16225927682921336339, 2910915193077788601, 9868727716314415330, 357480180884974087),
+UInt256(10141204801825835211, 17960223060169475539, 17697169868764979341, 4835111131480496709),
+UInt256(12676506002282294014, 17838592806784456520, 17509776317528836272, 10655574932778008790),
+UInt256(15845632502852867518, 13074868971625794843, 3440476323201493724, 13319468665972510987),
+UInt256(9903520314283042199, 3560107088838733872, 18291198766496791241, 17548039953087595175),
+UInt256(12379400392853802748, 18285191916330581053, 4417254384411437436, 8099991886077330257),
+UInt256(15474250491067253436, 4409745821703674700, 10133253998941684699, 10124989857596662821),
+UInt256(9671406556917033397, 11979463175419572495, 15556655786193328745, 4022275651784220311),
+UInt256(12089258196146291747, 1139270913992301907, 14834133714314273027, 9639530583157663293),
+UInt256(15111572745182864683, 15259146697772541096, 13930981124465453380, 7437727210519691212),
+UInt256(9444732965739290427, 7231123676894144233, 8706863202790908362, 13871951543429582816),
+UInt256(11805916207174113034, 4427218577690292387, 15495265021916023357, 8116567392432202712),
+UInt256(14757395258967641292, 14757395258967641292, 14757395258967641292, 14757395258967641293),
+UInt256(9223372036854775808, 0, 0, 0),
+UInt256(11529215046068469760, 0, 0, 0),
+UInt256(14411518807585587200, 0, 0, 0),
+UInt256(18014398509481984000, 0, 0, 0),
+UInt256(11258999068426240000, 0, 0, 0),
+UInt256(14073748835532800000, 0, 0, 0),
+UInt256(17592186044416000000, 0, 0, 0),
+UInt256(10995116277760000000, 0, 0, 0),
+UInt256(13743895347200000000, 0, 0, 0),
+UInt256(17179869184000000000, 0, 0, 0),
+UInt256(10737418240000000000, 0, 0, 0),
+UInt256(13421772800000000000, 0, 0, 0),
+UInt256(16777216000000000000, 0, 0, 0),
+UInt256(10485760000000000000, 0, 0, 0),
+UInt256(13107200000000000000, 0, 0, 0),
+UInt256(16384000000000000000, 0, 0, 0),
+UInt256(10240000000000000000, 0, 0, 0),
+UInt256(12800000000000000000, 0, 0, 0),
+UInt256(16000000000000000000, 0, 0, 0),
+UInt256(10000000000000000000, 0, 0, 0),
+UInt256(12500000000000000000, 0, 0, 0),
+UInt256(15625000000000000000, 0, 0, 0),
+UInt256(9765625000000000000, 0, 0, 0),
+UInt256(12207031250000000000, 0, 0, 0),
+UInt256(15258789062500000000, 0, 0, 0),
+UInt256(9536743164062500000, 0, 0, 0),
+UInt256(11920928955078125000, 0, 0, 0),
+UInt256(14901161193847656250, 0, 0, 0),
+UInt256(9313225746154785156, 4611686018427387904, 0, 0),
+UInt256(11641532182693481445, 5764607523034234880, 0, 0),
+UInt256(14551915228366851806, 11817445422220181504, 0, 0),
+UInt256(18189894035458564758, 5548434740920451072, 0, 0),
+UInt256(11368683772161602973, 17302829768357445632, 0, 0),
+UInt256(14210854715202003717, 7793479155164643328, 0, 0),
+UInt256(17763568394002504646, 14353534962383192064, 0, 0),
+UInt256(11102230246251565404, 4359273333062107136, 0, 0),
+]
+
+private let bid_innertable_sig_2: [UInt256] = [
+UInt256(13877787807814456755, 5449091666327633920, 0, 0),
+UInt256(17347234759768070944, 2199678564482154496, 0, 0),
+UInt256(10842021724855044340, 1374799102801346560, 0, 0),
+UInt256(13552527156068805425, 1718498878501683200, 0, 0),
+UInt256(16940658945086006781, 6759809616554491904, 0, 0),
+UInt256(10587911840678754238, 6530724019560251392, 0, 0),
+UInt256(13234889800848442797, 17386777061305090048, 0, 0),
+UInt256(16543612251060553497, 7898413271349198848, 0, 0),
+UInt256(10339757656912845935, 16465723340661719040, 0, 0),
+UInt256(12924697071141057419, 15970468157399760896, 0, 0),
+UInt256(16155871338926321774, 15351399178322313216, 0, 0),
+UInt256(10097419586828951109, 4982938468024057856, 0, 0),
+UInt256(12621774483536188886, 10840359103457460224, 0, 0),
+UInt256(15777218104420236108, 4327076842467049472, 0, 0),
+UInt256(9860761315262647567, 11927795063396681728, 0, 0),
+UInt256(12325951644078309459, 10298057810818464256, 0, 0),
+UInt256(15407439555097886824, 8260886245095692416, 0, 0),
+UInt256(9629649721936179265, 5163053903184807760, 0, 0),
+UInt256(12037062152420224081, 11065503397408397604, 0, 0),
+UInt256(15046327690525280101, 18443565265187884909, 0, 0),
+UInt256(9403954806578300063, 13833071299956122020, 2305843009213693952, 0),
+UInt256(11754943508222875079, 12679653106517764621, 2882303761517117440, 0),
+UInt256(14693679385278593849, 11237880364719817872, 8214565720323784704, 0),
+UInt256(18367099231598242312, 212292400617608628, 10268207150404730880, 0),
+UInt256(11479437019748901445, 132682750386005392, 15641001505857732608, 0),
+UInt256(14349296274686126806, 4777539456409894645, 1104507808612614144, 0),
+UInt256(17936620343357658507, 15195296357367144114, 5992320779193155584, 0),
+UInt256(11210387714598536567, 7191217214140771119, 8356886505423110144, 0),
+]
+
+// MARK: - bid_innertable_exp
+
+extension BinaryFloatingPointTables {
+ internal static func bid_innertable_exp(_ index: Int) -> Int {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+ let result: Int16
+
+ switch q {
+ case 0: result = bid_innertable_exp_0[r]
+ case 1: result = bid_innertable_exp_1[r]
+ case 2: result = bid_innertable_exp_2[r]
+ default: preconditionFailure("Index out of range")
+ }
+
+ return Int(truncatingIfNeeded: result)
+ }
+}
+
+private let bid_innertable_exp_0: [Int16] = [
+-468,
+-465,
+-461,
+-458,
+-455,
+-451,
+-448,
+-445,
+-442,
+-438,
+-435,
+-432,
+-428,
+-425,
+-422,
+-418,
+-415,
+-412,
+-408,
+-405,
+-402,
+-398,
+-395,
+-392,
+-388,
+-385,
+-382,
+-378,
+-375,
+-372,
+-368,
+-365,
+-362,
+-358,
+-355,
+-352,
+-349,
+-345,
+-342,
+-339,
+-335,
+-332,
+-329,
+-325,
+-322,
+-319,
+-315,
+-312,
+-309,
+-305,
+]
+
+private let bid_innertable_exp_1: [Int16] = [
+-302,
+-299,
+-295,
+-292,
+-289,
+-285,
+-282,
+-279,
+-275,
+-272,
+-269,
+-265,
+-262,
+-259,
+-255,
+-252,
+-249,
+-246,
+-242,
+-239,
+-236,
+-232,
+-229,
+-226,
+-222,
+-219,
+-216,
+-212,
+-209,
+-206,
+-202,
+-199,
+-196,
+-192,
+-189,
+-186,
+-182,
+-179,
+-176,
+-172,
+-169,
+-166,
+-162,
+-159,
+-156,
+-153,
+-149,
+-146,
+-143,
+-139,
+]
+
+private let bid_innertable_exp_2: [Int16] = [
+-136,
+-133,
+-129,
+-126,
+-123,
+-119,
+-116,
+-113,
+-109,
+-106,
+-103,
+-99,
+-96,
+-93,
+-89,
+-86,
+-83,
+-79,
+-76,
+-73,
+-69,
+-66,
+-63,
+-60,
+-56,
+-53,
+-50,
+-46,
+]
+
+// MARK: - bid_outertable_sig
+
+extension BinaryFloatingPointTables {
+ internal static func bid_outertable_sig(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_outertable_sig_0[r]
+ case 1: return bid_outertable_sig_1[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_outertable_sig_0: [UInt256] = [
+UInt256(17633471421292828081, 17470362193306814444, 1427578414467097172, 16710528681477587410),
+UInt256(10175591536883283100, 12421848348224877000, 3169162604521042544, 15880413049339289368),
+UInt256(11743877385420605756, 14277366029702694882, 5487234822932806241, 728324709502741634),
+UInt256(13553871098685738146, 4731239033579481048, 5335305964155802506, 5270439690693945016),
+UInt256(15642825255298684824, 12172666691698088779, 17478494563481727979, 15770926697301461842),
+UInt256(18053733887991431306, 3584925281718916951, 9524484409513358023, 6706015564063194464),
+UInt256(10418108684938663938, 15462553542164535233, 11405570099769256704, 11970480524618434228),
+UInt256(12023771840725819358, 3306628541457879036, 2319456072422691258, 6786207772287397676),
+UInt256(13876903538819465956, 1876153621163772099, 3504057943690712651, 11981052113010165492),
+UInt256(16015644206874417279, 1469280998340568779, 12786250932199773041, 9393164661428669080),
+UInt256(9242006282008467740, 8443357802200517361, 18017830257179898541, 16924685242153318850),
+UInt256(10666405798403203685, 5426243050445487622, 5039440430669711539, 10964968671057563176),
+UInt256(12310337083160321132, 5802604364043796934, 7697974614691938479, 10955754838860298353),
+UInt256(14207634883319258514, 11428107909474365520, 11827301330378587775, 2020816881108765590),
+UInt256(16397348635874181367, 3596834484036483711, 4283872614129133981, 17088069107880998350),
+UInt256(9462273083962776199, 16689816215723394984, 16765016545576715295, 17878879927905357932),
+UInt256(10920620632484725600, 16276586284347626380, 18283685101712419716, 13121733289080687293),
+UInt256(12603732099085151178, 16363965810173909683, 13245640156276305425, 17814811358648632259),
+UInt256(14546248621894116172, 5137266535116401279, 11508234184157253656, 4756697993914874888),
+UInt256(16788150311867950084, 6453355338781772809, 6543830884414701181, 5318236458935323174),
+UInt256(9687789553853107178, 1405691438411884535, 9658720758000782538, 6485710970464102310),
+UInt256(11180894225541718927, 16398637311140236340, 7353216905500064137, 16668567668910748869),
+UInt256(12904119664018836844, 10404161081088486903, 17209112682100433509, 10250898639443956700),
+UInt256(14892932617404296676, 5270639644724875979, 9395575747272723417, 8190593687966138954),
+UInt256(17188266051577202911, 13827109944906121794, 5812137315202163815, 16096765186944088526),
+UInt256(9918680808189048078, 7819283672493662452, 13878096157524874998, 13125058493821651226),
+UInt256(11447370977331402726, 5980679097159643429, 7095114120404217728, 10784977039313888136),
+UInt256(13211666432945230258, 7557580538320593620, 1141984379626550674, 18074025829186132275),
+UInt256(15247879210087606793, 8888788495242174599, 5630658839879210216, 884127375074722974),
+UInt256(17597917839164816062, 2255166953101703543, 15991859528909753139, 14794677677148287412),
+UInt256(10155074945409931597, 1614766483381505408, 16487377189598053250, 11781503818372409883),
+UInt256(11720198729122693309, 9774501520532043416, 17671725616207330354, 13901203812957478350),
+UInt256(13526543032773672749, 7875289095414864909, 62614824260888948, 2841277750318224700),
+UInt256(15611285324269742443, 6548711429670794128, 5549883551398310595, 4177215723684349918),
+UInt256(18017332949391848572, 15010187426055142985, 1238174514434849746, 10113135653152274419),
+UInt256(10397103116953834012, 8156814090647504084, 16659234357027498643, 15332868447221136909),
+UInt256(11999528845718521943, 9861651730211963150, 12129929088655149192, 15245187402216469644),
+UInt256(13848924157002783033, 18055231442152805128, 11690833164181629132, 11169863271521019024),
+UInt256(15983352577617880224, 12429006944274865118, 16315598095635316730, 5681139181384005971),
+UInt256(9223372036854775808, 0, 0, 0),
+UInt256(10644899600020376799, 14298703881791668535, 159020156881263929, 847738094735128551),
+UInt256(12285516299433008781, 15977522551232326327, 9592188640606484874, 12571812103339493257),
+UInt256(14178988662640388631, 1164180458167399492, 16219642565822741785, 11255846670375652269),
+UInt256(16364287392998134214, 14728279675391465720, 11269558331910606010, 4768530159026621925),
+UInt256(9443194724678278428, 10873005112892106269, 3358688235984080491, 10435171899994305314),
+UInt256(10898601872067700364, 7821978264675184102, 12742858465034581069, 9001934648837042518),
+UInt256(12578319756070083561, 9730745556445007669, 4697230115438671198, 17621267265258286727),
+UInt256(14516919669433371671, 7281543418588385486, 5939008219696634639, 15489206033570711069),
+UInt256(16754301112998936544, 15859662269683349667, 1021128504191590019, 5582382164278045428),
+UInt256(9668256495766433483, 602300193611639289, 17077419079040409017, 13306060077138970688),
+]
+
+private let bid_outertable_sig_1: [UInt256] = [
+UInt256(11158350687084940805, 3394061071468721991, 6332437060439625781, 16144900726383728979),
+UInt256(12878101662951253988, 4780478900157118356, 8576187517129556015, 841527738022137013),
+UInt256(14862904661462481806, 8680557599339190037, 6563228687006195825, 6209518431268106959),
+UInt256(17153610117183879308, 3260730320187665275, 13980713634323581067, 13777918056850427098),
+UInt256(9898682214361989196, 13563648246219923183, 16044002814696042637, 14026398967643035423),
+UInt256(11424290153682525668, 12055336643618066002, 7652064075251385167, 8580849201736980837),
+UInt256(13185028339041359606, 1733744904199768989, 30939122015382097, 7703450277136593061),
+UInt256(15217135591158481007, 4562366333509913804, 268706294728574543, 16645858086931268484),
+UInt256(17562435942139069664, 1726174694286833848, 16249574698204674087, 1535817262145462730),
+UInt256(10134599720625107110, 6773080245737622022, 12607890553358950732, 1327779613951528273),
+UInt256(11696567815043613180, 17338427607494047961, 6816618733538609533, 10146669700226523625),
+UInt256(13499270067222312908, 5512554737593155320, 8053984438814192242, 1218646606393179524),
+UInt256(15579808985797328396, 12799329154556421864, 2898610325645650649, 8529816360522570005),
+UInt256(17981005404381600394, 18289272351796647404, 17306366585957786234, 8976626101186384018),
+UInt256(10376139901559067117, 3962898110873089456, 3853966764738768487, 13259258789938866699),
+UInt256(11975334730781032005, 5828614502416977816, 18205835716688941338, 899097863387258947),
+UInt256(13821001188766021149, 15713752492130876427, 11269663690239600300, 6805696657844643720),
+UInt256(15951126056533488631, 10784451562526769943, 9874674503958832077, 1390669429605106863),
+UInt256(18409550726197325520, 13484363347568202582, 13359511205918707297, 5704986635434998471),
+UInt256(10623436763626360685, 10108131133879485063, 15203770801091158414, 8031416311578790746),
+UInt256(12260745560745135745, 16152175176069010361, 10823414366732926995, 14540970352057967818),
+UInt256(14150400200058902426, 14504991862333000338, 7311065895593189991, 15950896424073439808),
+UInt256(16331292810031855499, 9804643584580705193, 5596367464999577452, 5978819348613013533),
+UInt256(9424154832238877876, 7956755163056284140, 6018330550275346810, 8586457898440847299),
+UInt256(10876627507095459665, 9839409379426382903, 1760611426277998851, 1114429888821394320),
+UInt256(12552958650829068784, 9148491728899045148, 6504275622057553570, 7554605751361075608),
+UInt256(14487649851631658771, 17563500997894963674, 15518058123431536615, 9208049516541304162),
+UInt256(16720520162760224108, 12009304572091620947, 16657394431011607502, 1484107481346855224),
+UInt256(9648762821313776241, 2403442209646777766, 11250726580617083666, 14325586681310127114),
+UInt256(11135852602159508258, 15313875826588494017, 3450059817568720983, 14963893077912294692),
+]
+
+// MARK: - bid_outertable_exp
+
+extension BinaryFloatingPointTables {
+ internal static func bid_outertable_exp(_ index: Int) -> Int {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+ let result: Int16
+
+ switch q {
+ case 0: result = bid_outertable_exp_0[r]
+ case 1: result = bid_outertable_exp_1[r]
+ default: preconditionFailure("Index out of range")
+ }
+
+ return Int(truncatingIfNeeded: result)
+ }
+}
+
+private let bid_outertable_exp_0: [Int16] = [
+-16839,
+-16413,
+-15988,
+-15563,
+-15138,
+-14713,
+-14287,
+-13862,
+-13437,
+-13012,
+-12586,
+-12161,
+-11736,
+-11311,
+-10886,
+-10460,
+-10035,
+-9610,
+-9185,
+-8760,
+-8334,
+-7909,
+-7484,
+-7059,
+-6634,
+-6208,
+-5783,
+-5358,
+-4933,
+-4508,
+-4082,
+-3657,
+-3232,
+-2807,
+-2382,
+-1956,
+-1531,
+-1106,
+-681,
+-255,
+170,
+595,
+1020,
+1445,
+1871,
+2296,
+2721,
+3146,
+3571,
+3997,
+]
+
+private let bid_outertable_exp_1: [Int16] = [
+4422,
+4847,
+5272,
+5697,
+6123,
+6548,
+6973,
+7398,
+7823,
+8249,
+8674,
+9099,
+9524,
+9949,
+10375,
+10800,
+11225,
+11650,
+12075,
+12501,
+12926,
+13351,
+13776,
+14202,
+14627,
+15052,
+15477,
+15902,
+16328,
+16753,
+]
+
+// MARK: - bid_breakpoints_binary32
+
+extension BinaryFloatingPointTables {
+ internal static func bid_breakpoints_binary32(_ index: Int) -> UInt128 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_breakpoints_binary32_0[r]
+ case 1: return bid_breakpoints_binary32_1[r]
+ case 2: return bid_breakpoints_binary32_2[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_breakpoints_binary32_0: [UInt128] = [
+UInt128(474778387287989, 17291492046443221751),
+UInt128(379822709830391, 17522542451896487724),
+UInt128(303858167864313, 10328685146775279856),
+UInt128(486173068582901, 12836547420098537447),
+UInt128(388938454866321, 6579889121336919634),
+UInt128(311150763893057, 1574562482327625384),
+UInt128(497841222228891, 6208648786466110938),
+UInt128(398272977783113, 1277570214430978427),
+UInt128(318618382226490, 8400753801028603388),
+UInt128(509789411562384, 13441206081645765421),
+UInt128(407831529249907, 14442313680058522660),
+UInt128(326265223399926, 4175153314562997481),
+UInt128(522024357439881, 17748291747526526940),
+UInt128(417619485951905, 10509284583279311229),
+UInt128(334095588761524, 8407427666623448983),
+UInt128(534552942018439, 2383837822371787403),
+UInt128(427642353614751, 5596419072639340246),
+UInt128(342113882891801, 787786443369561873),
+UInt128(547382212626881, 12328504753617029967),
+UInt128(437905770101505, 6173454988151713650),
+UInt128(350324616081204, 4938763990521370920),
+UInt128(560519385729926, 15280720014318014119),
+UInt128(448415508583941, 8535227196712500972),
+UInt128(358732406867153, 3138832942628090454),
+UInt128(286985925493722, 9889763983586293010),
+UInt128(459177480789956, 1066227114770427523),
+UInt128(367341984631964, 15610376950783983311),
+UInt128(293873587705571, 16177650375369096972),
+UInt128(470197740328915, 58798897397182893),
+UInt128(376158192263132, 47039117917746314),
+UInt128(300926553810505, 11105677738559928021),
+UInt128(481482486096808, 17769084381695884834),
+UInt128(385185988877447, 3147221061130976897),
+UInt128(308148791101957, 13585823293130512487),
+UInt128(493038065763132, 6979922010041178687),
+UInt128(394430452610505, 16651984052258673919),
+UInt128(315544362088404, 13321587241806939135),
+UInt128(504870979341447, 10246493142665371647),
+UInt128(403896783473158, 818496884648476671),
+UInt128(323117426778526, 8033495137202601983),
+UInt128(516987882845642, 5474894590040342527),
+UInt128(413590306276513, 15447962116258004991),
+UInt128(330872245021211, 1290323248780673023),
+UInt128(529395592033937, 13132563642274807807),
+UInt128(423516473627150, 3127353284336025599),
+UInt128(338813178901720, 2501882627468820479),
+UInt128(542101086242752, 4003012203950112767),
+UInt128(433680868994201, 14270456207385821183),
+UInt128(346944695195361, 7727016151166746623),
+UInt128(555111512312578, 4984528212382973951),
+]
+
+private let bid_breakpoints_binary32_1: [UInt128] = [
+UInt128(444089209850062, 11366320199390199807),
+UInt128(355271367880050, 1714358530028339199),
+UInt128(284217094304040, 1371486824022671359),
+UInt128(454747350886464, 2194378918436274175),
+UInt128(363797880709171, 5444851949490929663),
+UInt128(291038304567337, 666532744850833407),
+UInt128(465661287307739, 4755801206503243775),
+UInt128(372529029846191, 7493989779944505343),
+UInt128(298023223876953, 2305843009213693951),
+UInt128(476837158203124, 18446744073709551615),
+UInt128(381469726562499, 18446744073709551615),
+UInt128(305175781249999, 18446744073709551615),
+UInt128(488281249999999, 18446744073709551615),
+UInt128(390624999999999, 18446744073709551615),
+UInt128(312499999999999, 18446744073709551615),
+UInt128(499999999999999, 18446744073709551615),
+UInt128(399999999999999, 18446744073709551615),
+UInt128(319999999999999, 18446744073709551615),
+UInt128(511999999999999, 18446744073709551615),
+UInt128(409599999999999, 18446744073709551615),
+UInt128(327679999999999, 18446744073709551615),
+UInt128(524287999999999, 18446744073709551615),
+UInt128(419430399999999, 18446744073709551615),
+UInt128(335544319999999, 18446744073709551615),
+UInt128(536870911999999, 18446744073709551615),
+UInt128(429496729599999, 18446744073709551615),
+UInt128(343597383679999, 18446744073709551615),
+UInt128(549755813887999, 18446744073709551615),
+UInt128(439804651110399, 18446744073709551615),
+UInt128(351843720888319, 18446744073709551615),
+UInt128(281474976710655, 18446744073709551615),
+UInt128(450359962737049, 11068046444225730969),
+UInt128(360287970189639, 12543785970122495098),
+UInt128(288230376151711, 13724377590839906402),
+UInt128(461168601842738, 14580306515860029597),
+UInt128(368934881474191, 596198768462292708),
+UInt128(295147905179352, 15234354273737475459),
+UInt128(472236648286964, 9617571579012319442),
+UInt128(377789318629571, 11383406077951765876),
+UInt128(302231454903657, 5417376047619502378),
+UInt128(483570327845851, 12357150490933114128),
+UInt128(386856262276681, 6196371578004580979),
+UInt128(309485009821345, 1267748447661754460),
+UInt128(495176015714152, 2028397516258807136),
+UInt128(396140812571321, 12690764457232776679),
+UInt128(316912650057057, 6463262751044311020),
+UInt128(507060240091291, 14030569216412807955),
+UInt128(405648192073033, 7535106558388336041),
+UInt128(324518553658426, 13406782876194489479),
+UInt128(519229685853482, 14072154972427362520),
+]
+
+private let bid_breakpoints_binary32_2: [UInt128] = [
+UInt128(415383748682786, 3879026348458069369),
+UInt128(332306998946228, 17860616337734096788),
+UInt128(531691198313966, 6440893251923092922),
+UInt128(425352958651173, 1463365786796564015),
+UInt128(340282366920938, 8549390258921071858),
+UInt128(544451787073501, 9989675599531804650),
+UInt128(435561429658801, 4302391664883533397),
+UInt128(348449143727040, 18199308590874468010),
+UInt128(557518629963265, 10672149671689597200),
+UInt128(446014903970612, 8537719737351677760),
+UInt128(356811923176489, 17898222234107073178),
+UInt128(285449538541191, 18007926602027568865),
+UInt128(456719261665907, 2987240860050737922),
+UInt128(365375409332725, 13457839132266321307),
+UInt128(292300327466180, 10766271305813057046),
+UInt128(467680523945888, 17226034089300891273),
+UInt128(374144419156711, 2712780827214982049),
+UInt128(299315535325368, 16927619920739626932),
+UInt128(478904856520590, 4948098984731941152),
+UInt128(383123885216472, 3958479187785552922),
+]
+
+// MARK: - bid_breakpoints_binary64
+
+extension BinaryFloatingPointTables {
+ internal static func bid_breakpoints_binary64(_ index: Int) -> UInt128 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_breakpoints_binary64_0[r]
+ case 1: return bid_breakpoints_binary64_1[r]
+ case 2: return bid_breakpoints_binary64_2[r]
+ case 3: return bid_breakpoints_binary64_3[r]
+ case 4: return bid_breakpoints_binary64_4[r]
+ case 5: return bid_breakpoints_binary64_5[r]
+ case 6: return bid_breakpoints_binary64_6[r]
+ case 7: return bid_breakpoints_binary64_7[r]
+ case 8: return bid_breakpoints_binary64_8[r]
+ case 9: return bid_breakpoints_binary64_9[r]
+ case 10: return bid_breakpoints_binary64_10[r]
+ case 11: return bid_breakpoints_binary64_11[r]
+ case 12: return bid_breakpoints_binary64_12[r]
+ case 13: return bid_breakpoints_binary64_13[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_breakpoints_binary64_0: [UInt128] = [
+UInt128(21426681862861333, 5261314576080512960),
+UInt128(34282690980578133, 4728754506986910400),
+UInt128(27426152784462506, 11161701235073348928),
+UInt128(21940922227570005, 5240012173316768832),
+UInt128(35105475564112008, 8384019477306830144),
+UInt128(28084380451289606, 14085913211329284736),
+UInt128(22467504361031685, 7579381754321517504),
+UInt128(35948006977650696, 12127010806914427968),
+UInt128(28758405582120557, 6012259830789632064),
+UInt128(23006724465696445, 15877854308857436608),
+UInt128(18405379572557156, 12702283447085949312),
+UInt128(29448607316091450, 12944955885853698240),
+UInt128(23558885852873160, 10355964708682958592),
+UInt128(18847108682298528, 8284771766946366848),
+UInt128(30155373891677645, 9566286012372276672),
+UInt128(24124299113342116, 7653028809897821312),
+UInt128(19299439290673693, 2433074233176346752),
+UInt128(30879102865077909, 203569958340244480),
+UInt128(24703282292062327, 3852204781414105920),
+UInt128(19762625833649861, 14149810269357015680),
+UInt128(31620201333839778, 15260998801487404480),
+UInt128(25296161067071823, 1140752596964192576),
+UInt128(20236928853657458, 8291299707055174720),
+UInt128(32379086165851933, 9576730716546369216),
+UInt128(25903268932681546, 15040082202720916032),
+UInt128(20722615146145237, 8342716947434822464),
+UInt128(33156184233832379, 17037695930637626304),
+UInt128(26524947387065903, 17319505559252011392),
+UInt128(21219957909652723, 2787558003175878144),
+UInt128(33951932655444357, 770743990339494720),
+UInt128(27161546124355485, 11684641636497326720),
+UInt128(21729236899484388, 9347713309197861376),
+UInt128(34766779039175021, 11266992479974667904),
+UInt128(27813423231340017, 5324245169237824000),
+UInt128(22250738585072013, 15327442579615990144),
+UInt128(35601181736115222, 2387815238934122304),
+UInt128(28480945388892177, 12978298635373028800),
+UInt128(22784756311113742, 3003941278814602368),
+UInt128(18227805048890993, 13471199467277412864),
+UInt128(29164488078225589, 17864570332901950336),
+UInt128(23331590462580471, 17981005081063470592),
+UInt128(18665272370064377, 10695455250108866112),
+UInt128(29864435792103004, 2355333141206544512),
+UInt128(23891548633682403, 5573615327707145920),
+UInt128(19113238906945922, 11837589891649537408),
+UInt128(30581182251113476, 4182748567671618560),
+UInt128(24464945800890780, 18103594113104936128),
+UInt128(19571956640712624, 14482875290483948864),
+UInt128(31315130625140199, 12104554020548587264),
+UInt128(25052104500112159, 13372992031180780160),
+]
+
+private let bid_breakpoints_binary64_1: [UInt128] = [
+UInt128(20041683600089727, 14387742439686534400),
+UInt128(32066693760143564, 8262992644530813824),
+UInt128(25653355008114851, 10299742930366561344),
+UInt128(20522684006491881, 4550445529551338752),
+UInt128(32836294410387009, 18348759291507873024),
+UInt128(26269035528309607, 18368356247948208704),
+UInt128(21015228422647686, 7315987368874746304),
+UInt128(33624365476236298, 4326882160715773504),
+UInt128(26899492380989038, 10840203358056439424),
+UInt128(21519593904791230, 16050860315928972160),
+UInt128(34431350247665969, 7234632431776803904),
+UInt128(27545080198132775, 9477054760163353472),
+UInt128(22036064158506220, 7581643808130682752),
+UInt128(35257702653609952, 12130630093009092416),
+UInt128(28206162122887962, 2325806444923453248),
+UInt128(22564929698310369, 12928691600164493568),
+UInt128(18051943758648295, 14032302094873505216),
+UInt128(28883110013837273, 4004939278088056704),
+UInt128(23106488011069818, 10582649051954265984),
+UInt128(18485190408855854, 15844816871047233408),
+UInt128(29576304654169367, 14283660549449842560),
+UInt128(23661043723335494, 4048230810076053376),
+UInt128(18928834978668395, 6927933462802753024),
+UInt128(30286135965869432, 11084693540484404864),
+UInt128(24228908772695546, 1489057202903703232),
+UInt128(19383127018156436, 15948641021290603904),
+UInt128(31013003229050298, 18139128004581145600),
+UInt128(24810402583240239, 3443255959439185472),
+UInt128(19848322066592191, 6443953582293258688),
+UInt128(31757315306547506, 2931628102185393280),
+UInt128(25405852245238004, 17102697740715955904),
+UInt128(20324681796190403, 17371507007314675072),
+UInt128(32519490873904646, 5658318323252018176),
+UInt128(26015592699123717, 837305843859704192),
+UInt128(20812474159298973, 11737891119313494336),
+UInt128(33299958654878357, 15091276976159680640),
+UInt128(26639966923902686, 4694323951443923840),
+UInt128(21311973539122149, 66110346413228736),
+UInt128(34099157662595438, 7484474183744986688),
+UInt128(27279326130076350, 13366276976479809984),
+UInt128(21823460904061080, 10693021581183848000),
+UInt128(34917537446497728, 17108834529894156800),
+UInt128(27934029957198183, 2619021179689594432),
+UInt128(22347223965758546, 9473914573235496192),
+UInt128(35755558345213674, 7779565687692973312),
+UInt128(28604446676170939, 9913001364896288960),
+UInt128(22883557340936751, 11619749906658941440),
+UInt128(18306845872749401, 5606451110585242816),
+UInt128(29290953396399042, 1591624147452567936),
+UInt128(23432762717119233, 12341345762187785280),
+]
+
+private let bid_breakpoints_binary64_2: [UInt128] = [
+UInt128(18746210173695386, 17251774239234048896),
+UInt128(29993936277912619, 1777397079581105984),
+UInt128(23995149022330095, 5111266478406795072),
+UInt128(19196119217864076, 4089013182725436096),
+UInt128(30713790748582521, 17610467536586428672),
+UInt128(24571032598866017, 10399025214527232640),
+UInt128(19656826079092814, 940522542137965440),
+UInt128(31450921726548502, 8883533696904565376),
+UInt128(25160737381238801, 18174873401749383296),
+UInt128(20128589904991041, 10850549906657596288),
+UInt128(32205743847985666, 9982182221168333440),
+UInt128(25764595078388533, 4296396962192756416),
+UInt128(20611676062710826, 10815815199238025792),
+UInt128(32978681700337322, 9926606689297020608),
+UInt128(26382945360269858, 562587721953795840),
+UInt128(21106356288215886, 7828767807046857280),
+UInt128(33770170061145418, 5147330861791151040),
+UInt128(27016136048916334, 11496562318916741504),
+UInt128(21612908839133067, 12886598669875303488),
+UInt128(34580654142612908, 5861162612832844352),
+UInt128(27664523314090326, 12067627719750096128),
+UInt128(22131618651272261, 5964753361058166592),
+UInt128(35410589842035618, 2164907748209245888),
+UInt128(28328471873628494, 9110623828051217344),
+UInt128(22662777498902795, 10977847877182884160),
+UInt128(18130221999122236, 8782278301746307328),
+UInt128(29008355198595578, 6672947653310271104),
+UInt128(23206684158876462, 12717055752132037568),
+UInt128(18565347327101170, 2794946972221809408),
+UInt128(29704555723361872, 4471915155554895040),
+UInt128(23763644578689497, 14645578568669646976),
+UInt128(19010915662951598, 4337765225451896960),
+UInt128(30417465060722557, 3251075545981124800),
+UInt128(24333972048578045, 13668906881010630784),
+UInt128(19467177638862436, 10935125504808504640),
+UInt128(31147484222179898, 10117503178209786752),
+UInt128(24917987377743918, 15472700172051650048),
+UInt128(19934389902195135, 1310113693415589056),
+UInt128(31895023843512216, 2096181909464942528),
+UInt128(25516019074809772, 16434340786539595328),
+UInt128(20412815259847818, 5768774999747855616),
+UInt128(32660504415756509, 5540691184854658688),
+UInt128(26128403532605207, 8121901762625637248),
+UInt128(20902722826084165, 17565567854326240768),
+UInt128(33444356521734665, 9658164493212433600),
+UInt128(26755485217387732, 7726531594569946880),
+UInt128(21404388173910185, 17249271719881688448),
+UInt128(34247021078256297, 9152090678101149952),
+UInt128(27397616862605037, 18389718986706650944),
+UInt128(21918093490084030, 7333077559881500096),
+]
+
+private let bid_breakpoints_binary64_3: [UInt128] = [
+UInt128(35068949584134448, 11732924095810400192),
+UInt128(28055159667307558, 16765036906132140800),
+UInt128(22444127733846047, 2343983080679981632),
+UInt128(35910604374153675, 7439721743829880960),
+UInt128(28728483499322940, 5951777395063904768),
+UInt128(22982786799458352, 4761421916051123840),
+UInt128(18386229439566681, 14877183977066630016),
+UInt128(29417967103306690, 16424796733822787392),
+UInt128(23534373682645352, 13139837387058229888),
+UInt128(18827498946116282, 3133172280162763264),
+UInt128(30123998313786051, 8702424463002331584),
+UInt128(24099198651028841, 3272590755659954944),
+UInt128(19279358920823072, 17375467863495605248),
+UInt128(30846974273316916, 13043353322625327104),
+UInt128(24677579418653533, 6745333843358351360),
+UInt128(19742063534922826, 12774964704170501696),
+UInt128(31587301655876522, 13061245897188982144),
+UInt128(25269841324701218, 3070299088267365056),
+UInt128(20215873059760974, 9834936900097712704),
+UInt128(32345396895617559, 4667852595930609344),
+UInt128(25876317516494047, 7423630891486397760),
+UInt128(20701054013195237, 17006951157414849216),
+UInt128(33121686421112380, 12453726592896117440),
+UInt128(26497349136889904, 9962981274316893952),
+UInt128(21197879309511923, 11659733834195425472),
+UInt128(33916606895219077, 14966225319970770432),
+UInt128(27133285516175262, 4594282626492795712),
+UInt128(21706628412940209, 14743472545419967552),
+UInt128(34730605460704335, 12521509628446217088),
+UInt128(27784484368563468, 10017207702756973632),
+UInt128(22227587494850774, 15392463791689399552),
+UInt128(35564139991761239, 13559895622477308352),
+UInt128(28451311993408991, 14537265312723756992),
+UInt128(22761049594727193, 7940463435437095296),
+UInt128(18208839675781754, 13731068377833496832),
+UInt128(29134143481250807, 10901662960307864000),
+UInt128(23307314785000646, 1342632738762470592),
+UInt128(18645851828000516, 15831501449977617728),
+UInt128(29833362924800826, 17951704690480367744),
+UInt128(23866690339840661, 10672014937642383872),
+UInt128(19093352271872529, 4848263135371996800),
+UInt128(30549363634996046, 15135918646079015488),
+UInt128(24439490907996837, 8419386102121302080),
+UInt128(19551592726397469, 17803555325922772608),
+UInt128(31282548362235951, 17417642077250705216),
+UInt128(25026038689788761, 10244764847058653888),
+UInt128(20020830951831009, 4506463062905012736),
+UInt128(32033329522929614, 14589038530131841088),
+UInt128(25626663618343691, 15360579638847383168),
+UInt128(20501330894674953, 8599114896335996224),
+]
+
+private let bid_breakpoints_binary64_4: [UInt128] = [
+UInt128(32802129431479925, 10069235019395683648),
+UInt128(26241703545183940, 8055388015516546880),
+UInt128(20993362836147152, 6444310412413237504),
+UInt128(33589380537835443, 14000245474603090368),
+UInt128(26871504430268355, 132149935456741312),
+UInt128(21497203544214684, 105719948365393024),
+UInt128(34395525670743494, 7547849546868449536),
+UInt128(27516420536594795, 9727628452236669952),
+UInt128(22013136429275836, 7782102761789335936),
+UInt128(35221018286841338, 5072666789379116928),
+UInt128(28176814629473070, 11436831060987114176),
+UInt128(22541451703578456, 9149464848789691328),
+UInt128(18033161362862765, 3630223064289842752),
+UInt128(28853058180580424, 5808356902863748416),
+UInt128(23082446544464339, 8336034337032909056),
+UInt128(18465957235571471, 10358176284368237568),
+UInt128(29545531576914354, 9194384425505359424),
+UInt128(23636425261531483, 11044856355146197888),
+UInt128(18909140209225186, 16214582713600778944),
+UInt128(30254624334760299, 117890638567874048),
+UInt128(24203699467808239, 3783661325596209536),
+UInt128(19362959574246591, 6716277875218877952),
+UInt128(30980735318794546, 3367346970866384128),
+UInt128(24784588255035636, 17451272835660748544),
+UInt128(19827670604028509, 10271669453786688512),
+UInt128(31724272966445615, 5366624681832970688),
+UInt128(25379418373156492, 4293299745466376576),
+UInt128(20303534698525193, 14502686240598832192),
+UInt128(32485655517640310, 1068205096506669632),
+UInt128(25988524414112248, 854564077205335680),
+UInt128(20790819531289798, 8062348891248089216),
+UInt128(33265311250063677, 9210409411255032384),
+UInt128(26612249000050941, 18436373973229756864),
+UInt128(21289799200040753, 11059750363841895168),
+UInt128(34063678720065205, 14006251767405121984),
+UInt128(27250942976052164, 11205001413924097600),
+UInt128(21800754380841731, 12653349945881188352),
+UInt128(34881207009346770, 12866662283926080768),
+UInt128(27904965607477416, 10293329827140864640),
+UInt128(22323972485981933, 4545315046970781376),
+UInt128(35718355977571093, 3583155260411339840),
+UInt128(28574684782056874, 10245221837812892544),
+UInt128(22859747825645499, 11885526284992224320),
+UInt128(18287798260516399, 13197769842735689792),
+UInt128(29260477216826239, 10048385304151372736),
+UInt128(23408381773460991, 11728057058063008512),
+UInt128(18726705418768793, 5693096831708496448),
+UInt128(29962728670030069, 5419606115991684032),
+UInt128(23970182936024055, 8025033707535257536),
+UInt128(19176146348819244, 6420026966028206016),
+]
+
+private let bid_breakpoints_binary64_5: [UInt128] = [
+UInt128(30681834158110790, 17650740775128950336),
+UInt128(24545467326488632, 14120592620103160256),
+UInt128(19636373861190906, 3917776466598707520),
+UInt128(31418198177905449, 17336488790783663040),
+UInt128(25134558542324359, 17558539847368840768),
+UInt128(20107646833859487, 17736180692636982912),
+UInt128(32172234934175180, 13620493849251531392),
+UInt128(25737787947340144, 10896395079401225152),
+UInt128(20590230357872115, 12406464878262890432),
+UInt128(32944368572595385, 1403599731511073088),
+UInt128(26355494858076308, 1122879785208858432),
+UInt128(21084395886461046, 8277001457650907392),
+UInt128(33735033418337674, 5864504702757631232),
+UInt128(26988026734670139, 8380952576948015296),
+UInt128(21590421387736111, 10394110876300322560),
+UInt128(34544674220377778, 9251879772596695424),
+UInt128(27635739376302222, 14780201447561177024),
+UInt128(22108591501041778, 4445463528565120960),
+UInt128(35373746401666845, 3423392830962283200),
+UInt128(28298997121333476, 2738714264769826560),
+UInt128(22639197697066780, 16948366670783502528),
+UInt128(18111358157653424, 13558693336626802048),
+UInt128(28978173052245479, 10625862894377152256),
+UInt128(23182538441796383, 12190039130243632128),
+UInt128(18546030753437106, 17130728933678726336),
+UInt128(29673649205499371, 1583724590692589952),
+UInt128(23738919364399496, 16024374931521713216),
+UInt128(18991135491519597, 9130151130475460224),
+UInt128(30385816786431355, 18297590623502646720),
+UInt128(24308653429145084, 14638072498802117376),
+UInt128(19446922743316067, 15399806813783604224),
+UInt128(31115076389305708, 9882295643086125504),
+UInt128(24892061111444566, 15284534143952721024),
+UInt128(19913648889155653, 8538278500420266496),
+UInt128(31861838222649045, 9971896785930516096),
+UInt128(25489470578119236, 7977517428744412864),
+UInt128(20391576462495389, 2692665128253619968),
+UInt128(32626522339992622, 11686961834689612608),
+UInt128(26101217871994098, 1970871838267869440),
+UInt128(20880974297595278, 8955395100098116160),
+UInt128(33409558876152445, 10639283345415075584),
+UInt128(26727647100921956, 8511426676332060480),
+UInt128(21382117680737565, 3119792526323738048),
+UInt128(34211388289180104, 4991668042117980864),
+UInt128(27369110631344083, 7682683248436295040),
+UInt128(21895288505075266, 13524844228232856640),
+UInt128(35032461608120426, 14261053135688750016),
+UInt128(28025969286496341, 7719493693809089664),
+UInt128(22420775429197073, 2486246140305361408),
+UInt128(35873240686715317, 288645009746667968),
+]
+
+private let bid_breakpoints_binary64_6: [UInt128] = [
+UInt128(28698592549372253, 11298962452023065344),
+UInt128(22958874039497802, 16417867591102272896),
+UInt128(18367099231598242, 5755596443397997696),
+UInt128(29387358770557187, 12898303124178706624),
+UInt128(23509887016445750, 2939944869859144640),
+UInt128(18807909613156600, 2351955895887315712),
+UInt128(30092655381050560, 3763129433419705152),
+UInt128(24074124304840448, 3010503546735764096),
+UInt128(19259299443872358, 9787100466872431936),
+UInt128(30814879110195773, 11970011932253980800),
+UInt128(24651903288156618, 16954707175287005248),
+UInt128(19721522630525295, 2495719296003873216),
+UInt128(31554436208840472, 3993150873606197184),
+UInt128(25243548967072377, 14262567143110688704),
+UInt128(20194839173657902, 4031356085004730304),
+UInt128(32311742677852643, 10139518550749478848),
+UInt128(25849394142282114, 15490312470083403712),
+UInt128(20679515313825691, 16081598790808633280),
+UInt128(33087224502121106, 18351860435809992640),
+UInt128(26469779601696885, 10992139533906083776),
+UInt128(21175823681357508, 8793711627124867008),
+UInt128(33881317890172013, 10380589788657876928),
+UInt128(27105054312137610, 15683169460410122176),
+UInt128(21684043449710088, 12546535568328097728),
+UInt128(34694469519536141, 16385108094583046080),
+UInt128(27755575615628913, 9418737660924526528),
+UInt128(22204460492503130, 14913687758223441856),
+UInt128(35527136788005009, 5415156339447955392),
+UInt128(28421709430404007, 8021473886300274624),
+UInt128(22737367544323205, 17485225553265950656),
+UInt128(18189894035458564, 13988180442612760512),
+UInt128(29103830456733703, 11313042263954685888),
+UInt128(23283064365386962, 16429131440647569344),
+UInt128(18626451492309570, 5764607523034234816),
+UInt128(29802322387695312, 9223372036854775744),
+UInt128(23841857910156249, 18446744073709551552),
+UInt128(19073486328124999, 18446744073709551552),
+UInt128(30517578124999999, 18446744073709551552),
+UInt128(24414062499999999, 18446744073709551552),
+UInt128(19531249999999999, 18446744073709551552),
+UInt128(31249999999999999, 18446744073709551552),
+UInt128(24999999999999999, 18446744073709551552),
+UInt128(19999999999999999, 18446744073709551552),
+UInt128(31999999999999999, 18446744073709551552),
+UInt128(25599999999999999, 18446744073709551552),
+UInt128(20479999999999999, 18446744073709551552),
+UInt128(32767999999999999, 18446744073709551552),
+UInt128(26214399999999999, 18446744073709551552),
+UInt128(20971519999999999, 18446744073709551552),
+UInt128(33554431999999999, 18446744073709551552),
+]
+
+private let bid_breakpoints_binary64_7: [UInt128] = [
+UInt128(26843545599999999, 18446744073709551552),
+UInt128(21474836479999999, 18446744073709551552),
+UInt128(34359738367999999, 18446744073709551552),
+UInt128(27487790694399999, 18446744073709551552),
+UInt128(21990232555519999, 18446744073709551552),
+UInt128(35184372088831999, 18446744073709551552),
+UInt128(28147497671065599, 18446744073709551552),
+UInt128(22517998136852479, 18446744073709551552),
+UInt128(18014398509481983, 18446744073709551552),
+UInt128(28823037615171174, 7378697629483820608),
+UInt128(23058430092136939, 9592306918328966784),
+UInt128(18446744073709551, 11363194349405083776),
+UInt128(29514790517935282, 10802413329564313408),
+UInt128(23611832414348226, 1263233034167630080),
+UInt128(18889465931478580, 15767981686301745344),
+UInt128(30223145490365729, 6782026624373240960),
+UInt128(24178516392292583, 9114970114240503040),
+UInt128(19342813113834066, 14670673720876223104),
+UInt128(30948500982134506, 16094380323918136320),
+UInt128(24758800785707605, 9186155444392598720),
+UInt128(19807040628566084, 7348924355514078976),
+UInt128(31691265005705735, 690232524596795392),
+UInt128(25353012004564588, 552186019677436352),
+UInt128(20282409603651670, 7820446445225769728),
+UInt128(32451855365842672, 12512714312361231552),
+UInt128(25961484292674138, 2631473820405164608),
+UInt128(20769187434139310, 9483876685807952320),
+UInt128(33230699894622896, 15174202697292723712),
+UInt128(26584559915698317, 8450013343092268608),
+UInt128(21267647932558653, 17828057118699545856),
+UInt128(34028236692093846, 6388798501467811456),
+UInt128(27222589353675077, 1421689986432338880),
+UInt128(21778071482940061, 12205398433371602048),
+UInt128(34844914372704098, 12149939863910742656),
+UInt128(27875931498163278, 17098649520612414784),
+UInt128(22300745198530623, 2610873172264200832),
+UInt128(35681192317648997, 488048260880811008),
+UInt128(28544953854119197, 11458485052930379776),
+UInt128(22835963083295358, 1788090412860483200),
+UInt128(18268770466636286, 8809169959772207168),
+UInt128(29230032746618058, 6715974306151710848),
+UInt128(23384026197294446, 12751477074405189312),
+UInt128(18707220957835557, 6511832844782241152),
+UInt128(29931553532536891, 14108281366393496128),
+UInt128(23945242826029513, 7597276278372886592),
+UInt128(19156194260823610, 13456518652182129920),
+UInt128(30649910817317777, 3083685769781856256),
+UInt128(24519928653854221, 13534995060051216000),
+UInt128(19615942923083377, 7138647233299062464),
+UInt128(31385508676933403, 15111184388020410240),
+]
+
+private let bid_breakpoints_binary64_8: [UInt128] = [
+UInt128(25108406941546723, 1020901066190597248),
+UInt128(20086725553237378, 8195418482436298432),
+UInt128(32138760885179805, 9423320757156167168),
+UInt128(25711008708143844, 7538656605724933760),
+UInt128(20568806966515075, 9720274099321857280),
+UInt128(32910091146424120, 15552438558914971712),
+UInt128(26328072917139296, 12441950847131977344),
+UInt128(21062458333711437, 6264211862963671552),
+UInt128(33699933333938299, 13712087795483784832),
+UInt128(26959946667150639, 14659019051128938176),
+UInt128(21567957333720511, 15416564055645060864),
+UInt128(34508731733952818, 17287804859548276736),
+UInt128(27606985387162255, 2762197443412890432),
+UInt128(22085588309729804, 2209757954730312320),
+UInt128(35336941295567686, 10914310357052320384),
+UInt128(28269553036454149, 5042099470899945984),
+UInt128(22615642429163319, 7723028391461867136),
+UInt128(18092513943330655, 9867771527911404032),
+UInt128(28948022309329048, 15788434444658246400),
+UInt128(23158417847463239, 1562701111500866176),
+UInt128(18526734277970591, 4939509703942603264),
+UInt128(29642774844752946, 524517896824344576),
+UInt128(23714219875802356, 15177009576427116928),
+UInt128(18971375900641885, 8452258846399783232),
+UInt128(30354201441027016, 13523614154239653184),
+UInt128(24283361152821613, 7129542508649812224),
+UInt128(19426688922257290, 13082331636403670400),
+UInt128(31082702275611665, 2484986544536321088),
+UInt128(24866161820489332, 1987989235629056832),
+UInt128(19892929456391465, 12658437832728976448),
+UInt128(31828687130226345, 1806756458656810688),
+UInt128(25462949704181076, 1445405166925448576),
+UInt128(20370359763344860, 15913719392508000128),
+UInt128(32592575621351777, 7015206954303248640),
+UInt128(26074060497081421, 16680212007668329856),
+UInt128(20859248397665137, 9654820791392753536),
+UInt128(33374797436264220, 690318007260764416),
+UInt128(26699837949011376, 552254405808611520),
+UInt128(21359870359209100, 15199198783614530496),
+UInt128(34175792574734561, 5871973980073697216),
+UInt128(27340634059787649, 1008230369317047424),
+UInt128(21872507247830119, 4495933110195548288),
+UInt128(34996011596528190, 14572190605796697920),
+UInt128(27996809277222552, 11657752484637358336),
+UInt128(22397447421778042, 1947504358226065984),
+UInt128(35835915874844867, 6805355787903615936),
+UInt128(28668732699875893, 16512331074548623680),
+UInt128(22934986159900715, 2141818415413168000),
+UInt128(18347988927920572, 1713454732330534400),
+UInt128(29356782284672915, 6430876386470765376),
+]
+
+private let bid_breakpoints_binary64_9: [UInt128] = [
+UInt128(23485425827738332, 5144701109176612288),
+UInt128(18788340662190665, 15183807331567020800),
+UInt128(30061345059505065, 5847347656797681664),
+UInt128(24049076047604052, 4677878125438145344),
+UInt128(19239260838083241, 14810348944576247232),
+UInt128(30782817340933186, 16317860681838174912),
+UInt128(24626253872746549, 9364939730728629632),
+UInt128(19701003098197239, 11181300599324814016),
+UInt128(31521604957115583, 6822034514693971456),
+UInt128(25217283965692466, 12836325241238997824),
+UInt128(20173827172553973, 6579711378249287936),
+UInt128(32278123476086357, 6838189390456950400),
+UInt128(25822498780869085, 16538597956591291264),
+UInt128(20657999024695268, 13230878365273033024),
+UInt128(33052798439512429, 17480056569694942528),
+UInt128(26442238751609943, 17673394070497864320),
+UInt128(21153791001287955, 3070668812172560448),
+UInt128(33846065602060728, 4913070099476096768),
+UInt128(27076852481648582, 11309153709064698048),
+UInt128(21661481985318866, 1668625337767937792),
+UInt128(34658371176510185, 13737846984654431488),
+UInt128(27726696941208148, 10990277587723545152),
+UInt128(22181357552966518, 16170919699662656768),
+UInt128(35490172084746430, 3737378631008788928),
+UInt128(28392137667797144, 2989902904807031104),
+UInt128(22713710134237715, 6081271138587535232),
+UInt128(18170968107390172, 4865016910870028160),
+UInt128(29073548971824275, 11473375872133955392),
+UInt128(23258839177459420, 9178700697707164352),
+UInt128(18607071341967536, 7342960558165731456),
+UInt128(29771314147148058, 4370039263581349696),
+UInt128(23817051317718446, 10874729040348900416),
+UInt128(19053641054174757, 5010434417537209984),
+UInt128(30485825686679611, 11706043882801446336),
+UInt128(24388660549343689, 5675486291499246720),
+UInt128(19510928439474951, 8229737847941307712),
+UInt128(31217485503159922, 5788882927222271680),
+UInt128(24973988402527937, 15699152786003548288),
+UInt128(19979190722022350, 5180624599319017984),
+UInt128(31966705155235760, 8288999358910428800),
+UInt128(25573364124188608, 6631199487128343040),
+UInt128(20458691299350886, 12683657219186495104),
+UInt128(32733906078961418, 12915153921214571520),
+UInt128(26187124863169134, 17710820766455477824),
+UInt128(20949699890535307, 17858005427906292608),
+UInt128(33519519824856492, 13815413425682426880),
+UInt128(26815615859885194, 3673633111062120832),
+UInt128(21452492687908155, 6628255303591606976),
+UInt128(34323988300653048, 10605208485746571200),
+UInt128(27459190640522438, 15862864418081077632),
+]
+
+private let bid_breakpoints_binary64_10: [UInt128] = [
+UInt128(21967352512417951, 1622245090239131136),
+UInt128(35147764019868721, 13663638588608340736),
+UInt128(28118211215894977, 7241562056144762304),
+UInt128(22494568972715981, 16861296089141540800),
+UInt128(35991310356345571, 1152632039433092992),
+UInt128(28793048285076456, 15679500890514115712),
+UInt128(23034438628061165, 8854251897669382208),
+UInt128(18427550902448932, 7083401518135505792),
+UInt128(29484081443918291, 15022791243758719616),
+UInt128(23587265155134633, 8328884180265065344),
+UInt128(18869812124107706, 14041804973695872896),
+UInt128(30191699398572330, 15088190328429576000),
+UInt128(24153359518857864, 12070552262743660800),
+UInt128(19322687615086291, 13345790624936838976),
+UInt128(30916300184138066, 13974567370415121728),
+UInt128(24733040147310453, 7490305081590187072),
+UInt128(19786432117848362, 13370941694755970304),
+UInt128(31658291388557380, 6636111452641911168),
+UInt128(25326633110845904, 5308889162113528960),
+UInt128(20261306488676723, 7936460144432733440),
+UInt128(32418090381882757, 9008987416350463232),
+UInt128(25934472305506205, 18275236377306101568),
+UInt128(20747577844404964, 14620189101844881216),
+UInt128(33196124551047943, 12324256118726079040),
+UInt128(26556899640838354, 17238102524464683840),
+UInt128(21245519712670683, 17479830834313657408),
+UInt128(33992831540273094, 5831636446450389952),
+UInt128(27194265232218475, 8354657971902222272),
+UInt128(21755412185774780, 6683726377521777792),
+UInt128(34808659497239648, 10693962204034844480),
+UInt128(27846927597791718, 15933867392711696256),
+UInt128(22277542078233375, 1679047469943626048),
+UInt128(35644067325173400, 2686475951909801664),
+UInt128(28515253860138720, 2149180761527841344),
+UInt128(22812203088110976, 1719344609222273024),
+UInt128(18249762470488780, 16132870946345459712),
+UInt128(29199619952782049, 7365849440443183936),
+UInt128(23359695962225639, 9582028367096457472),
+UInt128(18687756769780511, 11354971508419076288),
+UInt128(29900410831648818, 10789256783986701440),
+UInt128(23920328665319054, 16010103056673181824),
+UInt128(19136262932255243, 16497431260080455744),
+UInt128(30618020691608390, 4259797127677267328),
+UInt128(24494416553286712, 3407837702141813824),
+UInt128(19595533242629369, 13794316605939182016),
+UInt128(31352853188206991, 11002860125276960320),
+UInt128(25082282550565593, 5112939285479657920),
+UInt128(20065826040452474, 11469049057867546944),
+UInt128(32105321664723959, 7282432048362344192),
+UInt128(25684257331779167, 9515294453431785664),
+]
+
+private let bid_breakpoints_binary64_11: [UInt128] = [
+UInt128(20547405865423334, 233537933261607872),
+UInt128(32875849384677334, 7752358322702393280),
+UInt128(26300679507741867, 9891235472903824960),
+UInt128(21040543606193494, 534290748839239296),
+UInt128(33664869769909590, 8233562827626603520),
+UInt128(26931895815927672, 6586850262101282816),
+UInt128(21545516652742137, 16337526653906757248),
+UInt128(34472826644387420, 11382647387283170304),
+UInt128(27578261315509936, 9106117909826536256),
+UInt128(22062609052407949, 3595545513119318656),
+UInt128(35300174483852718, 13131570450474730496),
+UInt128(28240139587082174, 17883953989863605056),
+UInt128(22592111669665739, 17996512006632794368),
+UInt128(18073689335732591, 18086558420048145792),
+UInt128(28917902937172147, 3113051768883661056),
+UInt128(23134322349737717, 13558487859332659776),
+UInt128(18507457879790174, 3468092657982307200),
+UInt128(29611932607664278, 12927645882255512128),
+UInt128(23689546086131422, 17720814335288230336),
+UInt128(18951636868905138, 6797953838746763648),
+UInt128(30322618990248221, 7187377327252911552),
+UInt128(24258095192198577, 2060553047060418880),
+UInt128(19406476153758861, 12716488881874066048),
+UInt128(31050361846014178, 12967684581514685120),
+UInt128(24840289476811342, 17752845294695568704),
+UInt128(19872231581449074, 6823578606272634304),
+UInt128(31795570530318518, 18296423399520035584),
+UInt128(25436456424254815, 3569092275390297472),
+UInt128(20349165139403852, 2855273820312237952),
+UInt128(32558664223046163, 8257786927241491136),
+UInt128(26046931378436930, 13984927171277013504),
+UInt128(20837545102749544, 11187941737021610816),
+UInt128(33340072164399271, 6832660335008846336),
+UInt128(26672057731519417, 1776779453265166784),
+UInt128(21337646185215533, 12489470006837864384),
+UInt128(34140233896344853, 16293803196198672704),
+UInt128(27312187117075883, 1966996112733207168),
+UInt128(21849749693660706, 8952294519670386368),
+UInt128(34959599509857130, 6944973601988797568),
+UInt128(27967679607885704, 5555978881591038080),
+UInt128(22374143686308563, 8134131920014740736),
+UInt128(35798629898093701, 9325262257281674880),
+UInt128(28638903918474961, 3770860991083429568),
+UInt128(22911123134779968, 17774084051834384960),
+UInt128(18328898507823975, 3151220797241777024),
+UInt128(29326237612518360, 5041953275586843200),
+UInt128(23460990090014688, 4033562620469474560),
+UInt128(18768792072011750, 10605547725859400320),
+UInt128(30030067315218800, 16968876361375040512),
+UInt128(24024053852175040, 13575101089100032384),
+]
+
+private let bid_breakpoints_binary64_12: [UInt128] = [
+UInt128(19219243081740032, 10860080871280025920),
+UInt128(30750788930784052, 2618734135080400192),
+UInt128(24600631144627241, 13163033752290051072),
+UInt128(19680504915701793, 6841078187090130560),
+UInt128(31488807865122869, 7256376284602298560),
+UInt128(25191046292098295, 9494449842423749184),
+UInt128(20152837033678636, 7595559873938999360),
+UInt128(32244539253885818, 4774198168818578304),
+UInt128(25795631403108654, 11198056164538683264),
+UInt128(20636505122486923, 12647793746372856960),
+UInt128(33018408195979077, 16547121179454660800),
+UInt128(26414726556783262, 5858999314079907968),
+UInt128(21131781245426609, 15755245895489657344),
+UInt128(33810849992682575, 14140346988557720832),
+UInt128(27048679994146060, 11312277590846176640),
+UInt128(21638943995316848, 9049822072676941312),
+UInt128(34622310392506957, 10790366501541195776),
+UInt128(27697848314005566, 1253595571749136000),
+UInt128(22158278651204452, 15760271716366950080),
+UInt128(35453245841927124, 10459039487219478848),
+UInt128(28362596673541699, 12056580404517493376),
+UInt128(22690077338833359, 13334613138355905024),
+UInt128(18152061871066687, 14357039325426634368),
+UInt128(29043298993706700, 8213867661714973696),
+UInt128(23234639194965360, 6571094129371978944),
+UInt128(18587711355972288, 5256875303497583168),
+UInt128(29740338169555661, 4721651670854222720),
+UInt128(23792270535644529, 87972521941467840),
+UInt128(19033816428515623, 3759726832295084608),
+UInt128(30454106285624997, 2326214116930225024),
+UInt128(24363285028499997, 12929017737769910976),
+UInt128(19490628022799998, 2964516560732108160),
+UInt128(31185004836479997, 1053877682429462720),
+UInt128(24948003869183997, 11911148590169301120),
+UInt128(19958403095347198, 2150221242651620288),
+UInt128(31933444952555516, 18197749247210233728),
+UInt128(25546755962044413, 10868850583026276672),
+UInt128(20437404769635530, 16073778095904841984),
+UInt128(32699847631416849, 7271300879738195520),
+UInt128(26159878105133479, 9506389518532466752),
+UInt128(20927902484106783, 11294460429567883712),
+UInt128(33484643974570853, 14381787872566703680),
+UInt128(26787715179656683, 437383853827631936),
+UInt128(21430172143725346, 7728604712545926208),
+UInt128(34288275429960554, 4987069910589661312),
+UInt128(27430620343968443, 7679004743213639360),
+UInt128(21944496275174754, 13521901424054732096),
+UInt128(35111194040279607, 10566995834261840448),
+UInt128(28088955232223686, 1074899037925651712),
+UInt128(22471164185778948, 15617314489308162624),
+]
+
+private let bid_breakpoints_binary64_13: [UInt128] = [
+UInt128(35953862697246318, 2851610294441598336),
+UInt128(28763090157797054, 9659985865037099264),
+UInt128(23010472126237643, 11417337506771589760),
+UInt128(18408377700990114, 16512567634901092416),
+UInt128(29453404321584183, 15352061771616016960),
+UInt128(23562723457267347, 1213602973067082560),
+UInt128(18850178765813877, 12038928822679397056),
+UInt128(30160286025302204, 4504890857319393984),
+UInt128(24128228820241763, 7293261500597425472),
+UInt128(19302583056193410, 13213306829961761024),
+UInt128(30884132889909457, 2694546854229266048),
+UInt128(24707306311927565, 13223683927609143808),
+UInt128(19765845049542052, 10578947142087315072),
+UInt128(31625352079267284, 2168920168372062784),
+UInt128(25300281663413827, 5424484949439560576),
+UInt128(20240225330731061, 15407634403777379392),
+UInt128(32384360529169698, 17273517416559986432),
+UInt128(25907488423335759, 2750767489022258176),
+]
+
+// MARK: - bid_breakpoints_binary80
+
+extension BinaryFloatingPointTables {
+ internal static func bid_breakpoints_binary80(_ index: Int) -> UInt128 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_breakpoints_binary80_0[r]
+ case 1: return bid_breakpoints_binary80_1[r]
+ case 2: return bid_breakpoints_binary80_2[r]
+ case 3: return bid_breakpoints_binary80_3[r]
+ case 4: return bid_breakpoints_binary80_4[r]
+ case 5: return bid_breakpoints_binary80_5[r]
+ case 6: return bid_breakpoints_binary80_6[r]
+ case 7: return bid_breakpoints_binary80_7[r]
+ case 8: return bid_breakpoints_binary80_8[r]
+ case 9: return bid_breakpoints_binary80_9[r]
+ case 10: return bid_breakpoints_binary80_10[r]
+ case 11: return bid_breakpoints_binary80_11[r]
+ case 12: return bid_breakpoints_binary80_12[r]
+ case 13: return bid_breakpoints_binary80_13[r]
+ case 14: return bid_breakpoints_binary80_14[r]
+ case 15: return bid_breakpoints_binary80_15[r]
+ case 16: return bid_breakpoints_binary80_16[r]
+ case 17: return bid_breakpoints_binary80_17[r]
+ case 18: return bid_breakpoints_binary80_18[r]
+ case 19: return bid_breakpoints_binary80_19[r]
+ case 20: return bid_breakpoints_binary80_20[r]
+ case 21: return bid_breakpoints_binary80_21[r]
+ case 22: return bid_breakpoints_binary80_22[r]
+ case 23: return bid_breakpoints_binary80_23[r]
+ case 24: return bid_breakpoints_binary80_24[r]
+ case 25: return bid_breakpoints_binary80_25[r]
+ case 26: return bid_breakpoints_binary80_26[r]
+ case 27: return bid_breakpoints_binary80_27[r]
+ case 28: return bid_breakpoints_binary80_28[r]
+ case 29: return bid_breakpoints_binary80_29[r]
+ case 30: return bid_breakpoints_binary80_30[r]
+ case 31: return bid_breakpoints_binary80_31[r]
+ case 32: return bid_breakpoints_binary80_32[r]
+ case 33: return bid_breakpoints_binary80_33[r]
+ case 34: return bid_breakpoints_binary80_34[r]
+ case 35: return bid_breakpoints_binary80_35[r]
+ case 36: return bid_breakpoints_binary80_36[r]
+ case 37: return bid_breakpoints_binary80_37[r]
+ case 38: return bid_breakpoints_binary80_38[r]
+ case 39: return bid_breakpoints_binary80_39[r]
+ case 40: return bid_breakpoints_binary80_40[r]
+ case 41: return bid_breakpoints_binary80_41[r]
+ case 42: return bid_breakpoints_binary80_42[r]
+ case 43: return bid_breakpoints_binary80_43[r]
+ case 44: return bid_breakpoints_binary80_44[r]
+ case 45: return bid_breakpoints_binary80_45[r]
+ case 46: return bid_breakpoints_binary80_46[r]
+ case 47: return bid_breakpoints_binary80_47[r]
+ case 48: return bid_breakpoints_binary80_48[r]
+ case 49: return bid_breakpoints_binary80_49[r]
+ case 50: return bid_breakpoints_binary80_50[r]
+ case 51: return bid_breakpoints_binary80_51[r]
+ case 52: return bid_breakpoints_binary80_52[r]
+ case 53: return bid_breakpoints_binary80_53[r]
+ case 54: return bid_breakpoints_binary80_54[r]
+ case 55: return bid_breakpoints_binary80_55[r]
+ case 56: return bid_breakpoints_binary80_56[r]
+ case 57: return bid_breakpoints_binary80_57[r]
+ case 58: return bid_breakpoints_binary80_58[r]
+ case 59: return bid_breakpoints_binary80_59[r]
+ case 60: return bid_breakpoints_binary80_60[r]
+ case 61: return bid_breakpoints_binary80_61[r]
+ case 62: return bid_breakpoints_binary80_62[r]
+ case 63: return bid_breakpoints_binary80_63[r]
+ case 64: return bid_breakpoints_binary80_64[r]
+ case 65: return bid_breakpoints_binary80_65[r]
+ case 66: return bid_breakpoints_binary80_66[r]
+ case 67: return bid_breakpoints_binary80_67[r]
+ case 68: return bid_breakpoints_binary80_68[r]
+ case 69: return bid_breakpoints_binary80_69[r]
+ case 70: return bid_breakpoints_binary80_70[r]
+ case 71: return bid_breakpoints_binary80_71[r]
+ case 72: return bid_breakpoints_binary80_72[r]
+ case 73: return bid_breakpoints_binary80_73[r]
+ case 74: return bid_breakpoints_binary80_74[r]
+ case 75: return bid_breakpoints_binary80_75[r]
+ case 76: return bid_breakpoints_binary80_76[r]
+ case 77: return bid_breakpoints_binary80_77[r]
+ case 78: return bid_breakpoints_binary80_78[r]
+ case 79: return bid_breakpoints_binary80_79[r]
+ case 80: return bid_breakpoints_binary80_80[r]
+ case 81: return bid_breakpoints_binary80_81[r]
+ case 82: return bid_breakpoints_binary80_82[r]
+ case 83: return bid_breakpoints_binary80_83[r]
+ case 84: return bid_breakpoints_binary80_84[r]
+ case 85: return bid_breakpoints_binary80_85[r]
+ case 86: return bid_breakpoints_binary80_86[r]
+ case 87: return bid_breakpoints_binary80_87[r]
+ case 88: return bid_breakpoints_binary80_88[r]
+ case 89: return bid_breakpoints_binary80_89[r]
+ case 90: return bid_breakpoints_binary80_90[r]
+ case 91: return bid_breakpoints_binary80_91[r]
+ case 92: return bid_breakpoints_binary80_92[r]
+ case 93: return bid_breakpoints_binary80_93[r]
+ case 94: return bid_breakpoints_binary80_94[r]
+ case 95: return bid_breakpoints_binary80_95[r]
+ case 96: return bid_breakpoints_binary80_96[r]
+ case 97: return bid_breakpoints_binary80_97[r]
+ case 98: return bid_breakpoints_binary80_98[r]
+ case 99: return bid_breakpoints_binary80_99[r]
+ case 100: return bid_breakpoints_binary80_100[r]
+ case 101: return bid_breakpoints_binary80_101[r]
+ case 102: return bid_breakpoints_binary80_102[r]
+ case 103: return bid_breakpoints_binary80_103[r]
+ case 104: return bid_breakpoints_binary80_104[r]
+ case 105: return bid_breakpoints_binary80_105[r]
+ case 106: return bid_breakpoints_binary80_106[r]
+ case 107: return bid_breakpoints_binary80_107[r]
+ case 108: return bid_breakpoints_binary80_108[r]
+ case 109: return bid_breakpoints_binary80_109[r]
+ case 110: return bid_breakpoints_binary80_110[r]
+ case 111: return bid_breakpoints_binary80_111[r]
+ case 112: return bid_breakpoints_binary80_112[r]
+ case 113: return bid_breakpoints_binary80_113[r]
+ case 114: return bid_breakpoints_binary80_114[r]
+ case 115: return bid_breakpoints_binary80_115[r]
+ case 116: return bid_breakpoints_binary80_116[r]
+ case 117: return bid_breakpoints_binary80_117[r]
+ case 118: return bid_breakpoints_binary80_118[r]
+ case 119: return bid_breakpoints_binary80_119[r]
+ case 120: return bid_breakpoints_binary80_120[r]
+ case 121: return bid_breakpoints_binary80_121[r]
+ case 122: return bid_breakpoints_binary80_122[r]
+ case 123: return bid_breakpoints_binary80_123[r]
+ case 124: return bid_breakpoints_binary80_124[r]
+ case 125: return bid_breakpoints_binary80_125[r]
+ case 126: return bid_breakpoints_binary80_126[r]
+ case 127: return bid_breakpoints_binary80_127[r]
+ case 128: return bid_breakpoints_binary80_128[r]
+ case 129: return bid_breakpoints_binary80_129[r]
+ case 130: return bid_breakpoints_binary80_130[r]
+ case 131: return bid_breakpoints_binary80_131[r]
+ case 132: return bid_breakpoints_binary80_132[r]
+ case 133: return bid_breakpoints_binary80_133[r]
+ case 134: return bid_breakpoints_binary80_134[r]
+ case 135: return bid_breakpoints_binary80_135[r]
+ case 136: return bid_breakpoints_binary80_136[r]
+ case 137: return bid_breakpoints_binary80_137[r]
+ case 138: return bid_breakpoints_binary80_138[r]
+ case 139: return bid_breakpoints_binary80_139[r]
+ case 140: return bid_breakpoints_binary80_140[r]
+ case 141: return bid_breakpoints_binary80_141[r]
+ case 142: return bid_breakpoints_binary80_142[r]
+ case 143: return bid_breakpoints_binary80_143[r]
+ case 144: return bid_breakpoints_binary80_144[r]
+ case 145: return bid_breakpoints_binary80_145[r]
+ case 146: return bid_breakpoints_binary80_146[r]
+ case 147: return bid_breakpoints_binary80_147[r]
+ case 148: return bid_breakpoints_binary80_148[r]
+ case 149: return bid_breakpoints_binary80_149[r]
+ case 150: return bid_breakpoints_binary80_150[r]
+ case 151: return bid_breakpoints_binary80_151[r]
+ case 152: return bid_breakpoints_binary80_152[r]
+ case 153: return bid_breakpoints_binary80_153[r]
+ case 154: return bid_breakpoints_binary80_154[r]
+ case 155: return bid_breakpoints_binary80_155[r]
+ case 156: return bid_breakpoints_binary80_156[r]
+ case 157: return bid_breakpoints_binary80_157[r]
+ case 158: return bid_breakpoints_binary80_158[r]
+ case 159: return bid_breakpoints_binary80_159[r]
+ case 160: return bid_breakpoints_binary80_160[r]
+ case 161: return bid_breakpoints_binary80_161[r]
+ case 162: return bid_breakpoints_binary80_162[r]
+ case 163: return bid_breakpoints_binary80_163[r]
+ case 164: return bid_breakpoints_binary80_164[r]
+ case 165: return bid_breakpoints_binary80_165[r]
+ case 166: return bid_breakpoints_binary80_166[r]
+ case 167: return bid_breakpoints_binary80_167[r]
+ case 168: return bid_breakpoints_binary80_168[r]
+ case 169: return bid_breakpoints_binary80_169[r]
+ case 170: return bid_breakpoints_binary80_170[r]
+ case 171: return bid_breakpoints_binary80_171[r]
+ case 172: return bid_breakpoints_binary80_172[r]
+ case 173: return bid_breakpoints_binary80_173[r]
+ case 174: return bid_breakpoints_binary80_174[r]
+ case 175: return bid_breakpoints_binary80_175[r]
+ case 176: return bid_breakpoints_binary80_176[r]
+ case 177: return bid_breakpoints_binary80_177[r]
+ case 178: return bid_breakpoints_binary80_178[r]
+ case 179: return bid_breakpoints_binary80_179[r]
+ case 180: return bid_breakpoints_binary80_180[r]
+ case 181: return bid_breakpoints_binary80_181[r]
+ case 182: return bid_breakpoints_binary80_182[r]
+ case 183: return bid_breakpoints_binary80_183[r]
+ case 184: return bid_breakpoints_binary80_184[r]
+ case 185: return bid_breakpoints_binary80_185[r]
+ case 186: return bid_breakpoints_binary80_186[r]
+ case 187: return bid_breakpoints_binary80_187[r]
+ case 188: return bid_breakpoints_binary80_188[r]
+ case 189: return bid_breakpoints_binary80_189[r]
+ case 190: return bid_breakpoints_binary80_190[r]
+ case 191: return bid_breakpoints_binary80_191[r]
+ case 192: return bid_breakpoints_binary80_192[r]
+ case 193: return bid_breakpoints_binary80_193[r]
+ case 194: return bid_breakpoints_binary80_194[r]
+ case 195: return bid_breakpoints_binary80_195[r]
+ case 196: return bid_breakpoints_binary80_196[r]
+ case 197: return bid_breakpoints_binary80_197[r]
+ case 198: return bid_breakpoints_binary80_198[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_breakpoints_binary80_0: [UInt128] = [
+UInt128(494016656451265, 6337302757928054309),
+UInt128(395213325161012, 5069842206342443447),
+UInt128(316170660128809, 15123920209299685727),
+UInt128(505873056206095, 13130225890653766194),
+UInt128(404698444964876, 10504180712523012955),
+UInt128(323758755971901, 4713995755276500041),
+UInt128(518014009555042, 163695578958579419),
+UInt128(414411207644033, 11199002907392594505),
+UInt128(331528966115226, 16337899955397896250),
+UInt128(530446345784363, 315198225443261738),
+UInt128(424357076627490, 7630856209838430037),
+UInt128(339485661301992, 6104684967870744030),
+UInt128(543177058083187, 13456844763335100771),
+UInt128(434541646466550, 3386778181184259970),
+UInt128(347633317173240, 2709422544947407976),
+UInt128(556213307477184, 4335076071915852762),
+UInt128(444970645981747, 7157409672274592533),
+UInt128(355976516785397, 16793974182045404996),
+UInt128(284781213428318, 6056481716152503350),
+UInt128(455649941485309, 6001021931102095037),
+UInt128(364519953188247, 8490166359623586353),
+UInt128(291615962550597, 17860179531924600052),
+UInt128(466585540080956, 13818891992111718790),
+UInt128(373268432064765, 7365764778947464709),
+UInt128(298614745651812, 5892611823157971767),
+UInt128(477783593042899, 13117527731794665151),
+UInt128(382226874434319, 14183371000177642444),
+UInt128(305781499547455, 15036045614884024278),
+UInt128(489250399275929, 5610928910104887229),
+UInt128(391400319420743, 8178091942825820106),
+UInt128(313120255536594, 13921171183744476731),
+UInt128(500992408858551, 11205827449765431801),
+UInt128(400793927086841, 5275313145070435117),
+UInt128(320635141669473, 530901701314437771),
+UInt128(513016226671156, 15606837981070741726),
+UInt128(410412981336925, 8796121570114683058),
+UInt128(328330385069540, 7036897256091746446),
+UInt128(525328616111264, 11259035609746794314),
+UInt128(420262892889011, 12696577302539345774),
+UInt128(336210314311209, 6467913027289566296),
+UInt128(537936502897934, 17727358473147126720),
+UInt128(430349202318347, 17871235593259611699),
+UInt128(344279361854678, 6918290845123868713),
+UInt128(550846978967485, 7379916537456279618),
+UInt128(440677583173988, 5903933229965023694),
+UInt128(352542066539190, 12101844213455839602),
+UInt128(282033653231352, 9681475370764671681),
+UInt128(451253845170164, 732965334255833398),
+UInt128(361003076136131, 4275721082146577041),
+UInt128(288802460908904, 18177972124684902926),
+]
+
+private let bid_breakpoints_binary80_1: [UInt128] = [
+UInt128(462083937454247, 18016708955270113712),
+UInt128(369667149963398, 7034669534732270323),
+UInt128(295733719970718, 13006433257269636905),
+UInt128(473173951953149, 17120944396889508724),
+UInt128(378539161562519, 17386104332253517303),
+UInt128(302831329250015, 17598232280544724165),
+UInt128(484530126800025, 9710427575162007049),
+UInt128(387624101440020, 7768342060129605639),
+UInt128(310099281152016, 6214673648103684511),
+UInt128(496158849843226, 2564780207482074571),
+UInt128(396927079874580, 16809219424953300950),
+UInt128(317541663899664, 13447375539962640760),
+UInt128(508066662239463, 10447754419714494246),
+UInt128(406453329791570, 15736901165255416043),
+UInt128(325162663833256, 12589520932204332835),
+UInt128(520260262133210, 12764535862043111889),
+UInt128(416208209706568, 10211628689634489511),
+UInt128(332966567765254, 15548000581191412255),
+UInt128(532746508424407, 13808754485680528639),
+UInt128(426197206739526, 3668305959060602265),
+UInt128(340957765391620, 17692040026216123105),
+UInt128(545532424626593, 9860519968236245352),
+UInt128(436425939701274, 15267113604072816928),
+UInt128(349140751761019, 15903039698000163865),
+UInt128(558625202817631, 14376817072574531215),
+UInt128(446900162254105, 7812104843317714649),
+UInt128(357520129803284, 6249683874654171719),
+UInt128(286016103842627, 8689095914465247698),
+UInt128(457625766148203, 17591902277886306641),
+UInt128(366100612918563, 3005475378083314343),
+UInt128(292880490334850, 9783077931950472121),
+UInt128(468608784535760, 15652924691120755393),
+UInt128(374887027628608, 12522339752896604314),
+UInt128(299909622102886, 17396569431801104098),
+UInt128(479855395364619, 2009069387688394294),
+UInt128(383884316291695, 5296604324892625759),
+UInt128(307107453033356, 4237283459914100607),
+UInt128(491371924853369, 17847699980088291941),
+UInt128(393097539882695, 17967508798812543876),
+UInt128(314478031906156, 14374007039050035101),
+UInt128(503164851049850, 15619713632996235515),
+UInt128(402531880839880, 12495770906396988412),
+UInt128(322025504671904, 9996616725117590729),
+UInt128(515240807475047, 4926540315962414197),
+UInt128(412192645980037, 15009278696995662327),
+UInt128(329754116784030, 4628725328112709215),
+UInt128(527606586854448, 7405960524980334745),
+UInt128(422085269483558, 13303466049468088442),
+UInt128(337668215586846, 18021470469058291400),
+UInt128(540269144938955, 3008911047299893978),
+]
+
+private let bid_breakpoints_binary80_2: [UInt128] = [
+UInt128(432215315951164, 2407128837839915182),
+UInt128(345772252760931, 5615051885013842469),
+UInt128(553235604417490, 1605385386538327304),
+UInt128(442588483533992, 1284308309230661843),
+UInt128(354070786827193, 12095493091610260444),
+UInt128(283256629461754, 17055092102772029002),
+UInt128(453210607138807, 16220100920209515433),
+UInt128(362568485711046, 5597383106683791700),
+UInt128(290054788568837, 788557670605123037),
+UInt128(464087661710139, 4951041087710107183),
+UInt128(371270129368111, 7650181684909996069),
+UInt128(297016103494489, 2430796533186086532),
+UInt128(475225765591182, 11267972082581559098),
+UInt128(380180612472946, 1635680036581426632),
+UInt128(304144489978356, 16065939288232782598),
+UInt128(486631183965370, 18326805231688631511),
+UInt128(389304947172296, 14661444185350905209),
+UInt128(311443957737837, 8039806533538813844),
+UInt128(498310332380539, 16553039268404012473),
+UInt128(398648265904431, 16931780229465120302),
+UInt128(318918612723545, 9856075368830185918),
+UInt128(510269780357672, 15769720590128297469),
+UInt128(408215824286138, 5237078842618817329),
+UInt128(326572659428910, 11568360703578874509),
+UInt128(522516255086257, 62633052016647599),
+UInt128(418013004069005, 11118152885839049049),
+UInt128(334410403255204, 8894522308671239239),
+UInt128(535056645208327, 3163189249648251813),
+UInt128(428045316166661, 13598597843944332420),
+UInt128(342436252933329, 7189529460413555613),
+UInt128(547898004693327, 435200692435958011),
+UInt128(438318403754661, 11416206998174497378),
+UInt128(350654723003729, 5443616783797687579),
+UInt128(561047556805966, 16088484483560120774),
+UInt128(448838045444773, 9181438772106186296),
+UInt128(359070436355818, 14723848647168769683),
+UInt128(287256349084655, 711032473509284777),
+UInt128(459610158535448, 1137651957614855643),
+UInt128(367688126828358, 8288819195575705161),
+UInt128(294150501462686, 14009752985944384775),
+UInt128(470640802340298, 15036907148027194994),
+UInt128(376512641872239, 961479274196025025),
+UInt128(301210113497791, 4458532234098730343),
+UInt128(481936181596465, 18201698018783699519),
+UInt128(385548945277172, 14561358415026959615),
+UInt128(308439156221738, 4270389102537747046),
+UInt128(493502649954781, 3143273749318484950),
+UInt128(394802119963824, 17272014258422429253),
+UInt128(315841695971059, 17506960221479853725),
+UInt128(505346713553695, 16943089910142034991),
+]
+
+private let bid_breakpoints_binary80_3: [UInt128] = [
+UInt128(404277370842956, 13554471928113627993),
+UInt128(323421896674365, 7154228727748992071),
+UInt128(517475034678984, 11446765964398387314),
+UInt128(413980027743187, 12846761586260620174),
+UInt128(331184022194550, 2898711639524675493),
+UInt128(529894435511280, 4637938623239480789),
+UInt128(423915548409024, 3710350898591584631),
+UInt128(339132438727219, 6657629533615178028),
+UInt128(542611901963550, 18030904883268105491),
+UInt128(434089521570840, 14424723906614484393),
+UInt128(347271617256672, 11539779125291587514),
+UInt128(555634587610676, 3706251341498898730),
+UInt128(444507670088540, 17722396332166760277),
+UInt128(355606136070832, 14177917065733408221),
+UInt128(284484908856666, 3963636023102905931),
+UInt128(455175854170665, 17409864081190380459),
+UInt128(364140683336532, 13927891264952304367),
+UInt128(291312546669226, 3763615382478022847),
+UInt128(466100074670761, 17089831056190567525),
+UInt128(372880059736609, 9982516030210543697),
+UInt128(298304047789287, 11675361638910345281),
+UInt128(477286476462860, 3923183363288911157),
+UInt128(381829181170288, 3138546690631128925),
+UInt128(305463344936230, 9889534981988723786),
+UInt128(488741351897968, 15823255971181958059),
+UInt128(390993081518375, 1590558332719835477),
+UInt128(312794465214700, 1272446666175868382),
+UInt128(500471144343520, 2035914665881389411),
+UInt128(400376915474816, 1628731732705111529),
+UInt128(320301532379852, 16060380645131730516),
+UInt128(512482451807764, 10939213773243127533),
+UInt128(409985961446211, 12440719833336412349),
+UInt128(327988769156969, 6263227051927219556),
+UInt128(524782030651150, 17399860912567371936),
+UInt128(419825624520920, 13919888730053897549),
+UInt128(335860499616736, 11135910984043118039),
+UInt128(537376799386778, 10438759944985168216),
+UInt128(429901439509422, 15729705585471955219),
+UInt128(343921151607538, 5205066838893743529),
+UInt128(550273842572061, 4638758127488079324),
+UInt128(440219074057649, 21657687248553136),
+UInt128(352175259246119, 3706674964540752832),
+UInt128(281740207396895, 6654688786374512588),
+UInt128(450784331835032, 10647502058199220142),
+UInt128(360627465468026, 1139304017075555467),
+UInt128(288501972374420, 15668838472628085666),
+UInt128(461603155799073, 6623397482495385450),
+UInt128(369282524639258, 12677415615480129006),
+UInt128(295426019711406, 17520630121867923851),
+UInt128(472681631538251, 2207566491795305900),
+]
+
+private let bid_breakpoints_binary80_4: [UInt128] = [
+UInt128(378145305230600, 16523448452403886013),
+UInt128(302516244184480, 13218758761923108810),
+UInt128(484025990695169, 2703269945367422481),
+UInt128(387220792556135, 5851964771035848308),
+UInt128(309776634044908, 4681571816828678646),
+UInt128(495642614471853, 3801166092183975511),
+UInt128(396514091577482, 10419630503231001055),
+UInt128(317211273261986, 957006773100980197),
+UInt128(507538037219177, 12599257281187299286),
+UInt128(406030429775342, 2700708195466018782),
+UInt128(324824343820273, 13228613000598545995),
+UInt128(519718950112437, 17476431986215763269),
+UInt128(415775160089950, 6602447959488789969),
+UInt128(332620128071960, 5281958367591031975),
+UInt128(532192204915136, 8451133388145651160),
+UInt128(425753763932109, 3071557895774610605),
+UInt128(340603011145687, 6146595131361598807),
+UInt128(544964817833099, 13523901024920468415),
+UInt128(435971854266479, 14508469634678285055),
+UInt128(348777483413183, 15296124522484538367),
+UInt128(558043973461094, 2337706347523799448),
+UInt128(446435178768875, 5559513892760949882),
+UInt128(357148143015100, 4447611114208759905),
+UInt128(285718514412080, 3558088891367007924),
+UInt128(457149623059328, 5692942226187212679),
+UInt128(365719698447462, 11933051410433590789),
+UInt128(292575758757970, 2167743498863051985),
+UInt128(468121214012752, 3468389598180883176),
+UInt128(374496971210201, 13842758122770437511),
+UInt128(299597576968161, 7384857683474439685),
+UInt128(479356123149058, 4437074664075282850),
+UInt128(383484898519246, 10928357360744046927),
+UInt128(306787918815397, 5053337073853327218),
+UInt128(490860670104635, 11774688132907233872),
+UInt128(392688536083708, 9419750506325787098),
+UInt128(314150828866966, 14914498034544450324),
+UInt128(502641326187146, 16484499225787299873),
+UInt128(402113060949717, 9498250565887929575),
+UInt128(321690448759774, 219902823226523014),
+UInt128(514704718015638, 7730542146646257468),
+UInt128(411763774412510, 13563131346800826621),
+UInt128(329411019530008, 10850505077440661297),
+UInt128(527057631248013, 13671459309163147752),
+UInt128(421646104998410, 18315865076814338848),
+UInt128(337316883998728, 14652692061451471078),
+UInt128(539707014397966, 1308214409870891786),
+UInt128(431765611518372, 15803966786864354722),
+UInt128(345412489214698, 5264475800007663131),
+UInt128(552659982743517, 4733812465270350686),
+UInt128(442127986194813, 14855096416442011519),
+]
+
+private let bid_breakpoints_binary80_5: [UInt128] = [
+UInt128(353702388955851, 816030688927878245),
+UInt128(282961911164680, 15410219810109943889),
+UInt128(452739057863489, 6209607622466358606),
+UInt128(362191246290791, 8657034912714997208),
+UInt128(289752997032633, 3236279115430087443),
+UInt128(463604795252213, 1488697769946229586),
+UInt128(370883836201770, 8569655845440804315),
+UInt128(296707068961416, 6855724676352643452),
+UInt128(474731310338266, 3590461852680408877),
+UInt128(379785048270612, 17629764741111968395),
+UInt128(303828038616490, 6725114163405754069),
+UInt128(486124861786384, 10760182661449206511),
+UInt128(388899889429107, 12297494943901275532),
+UInt128(311119911543286, 2459298325637199779),
+UInt128(497791858469257, 15002923765245250616),
+UInt128(398233486775406, 4623641382712379847),
+UInt128(318586789420325, 9564291427993554),
+UInt128(509738863072520, 15302866284789687),
+UInt128(407791090458016, 12242293027831749),
+UInt128(326232872366412, 14767189093389906692),
+UInt128(521972595786260, 8870107290456209415),
+UInt128(417578076629008, 7096085832364967532),
+UInt128(334062461303206, 13055566295375794672),
+UInt128(534499938085130, 13510208443117450829),
+UInt128(427599950468104, 10808166754493960663),
+UInt128(342079960374483, 12335882218337078853),
+UInt128(547327936599173, 16048062734597415842),
+UInt128(437862349279339, 1770403743452201704),
+UInt128(350289879423471, 5105671809503671686),
+UInt128(560463807077554, 790377265722054052),
+UInt128(448371045662043, 4321650627319553565),
+UInt128(358696836529634, 10836018131339463498),
+UInt128(286957469223707, 12358163319813481122),
+UInt128(459131950757932, 5015666052733928502),
+UInt128(367305560606345, 15080579286412873771),
+UInt128(293844448485076, 12064463429130299017),
+UInt128(470151117576122, 11924443857124657781),
+UInt128(376120894060898, 2160857456215905578),
+UInt128(300896715248718, 9107383594456545109),
+UInt128(481434744397949, 10882464936388561851),
+UInt128(385147795518359, 12395320763852759804),
+UInt128(308118236414687, 13605605425824118166),
+UInt128(492989178263500, 7011573422350947774),
+UInt128(394391342610800, 5609258737880758219),
+UInt128(315513074088640, 4487406990304606575),
+UInt128(504820918541824, 7179851184487370520),
+UInt128(403856734833459, 9433229762331806739),
+UInt128(323085387866767, 11235932624607355715),
+UInt128(516936620586828, 3220096940404127851),
+UInt128(413549296469462, 9954775181807122927),
+]
+
+private let bid_breakpoints_binary80_6: [UInt128] = [
+UInt128(330839437175570, 585122515961877695),
+UInt128(529343099480912, 936196025539004313),
+UInt128(423474479584729, 11817003264656934420),
+UInt128(338779583667783, 13142951426467457859),
+UInt128(542047333868453, 17339373467606022251),
+UInt128(433637867094763, 2803452329859086831),
+UInt128(346910293675810, 9621459493371090111),
+UInt128(555056469881296, 15394335189393744178),
+UInt128(444045175905037, 8626119336773085019),
+UInt128(355236140724029, 17968941913644198985),
+UInt128(284188912579223, 18064502345657269511),
+UInt128(454702260126758, 6767110864600169279),
+UInt128(363761808101406, 12792386321163956069),
+UInt128(291009446481125, 6544560242189254532),
+UInt128(465615114369800, 10471296387502807252),
+UInt128(372492091495840, 8377037110002245801),
+UInt128(297993673196672, 6701629688001796641),
+UInt128(476789877114675, 14411956315544784949),
+UInt128(381431901691740, 11529565052435827959),
+UInt128(305145521353392, 9223652041948662367),
+UInt128(488232834165428, 448008150218495),
+UInt128(390586267332342, 7379056036003995442),
+UInt128(312469013865873, 16971291273028927323),
+UInt128(499950422185398, 5017973148394821778),
+UInt128(399960337748318, 11393076148199678069),
+UInt128(319968270198654, 16493158548043563102),
+UInt128(511949232317847, 15321007232643969993),
+UInt128(409559385854278, 4878108156631355348),
+UInt128(327647508683422, 11281184154788904925),
+UInt128(524236013893476, 3292499388694606587),
+UInt128(419388811114780, 17391394769923326562),
+UInt128(335511048891824, 13913115815938661250),
+UInt128(536817678226919, 11192938861276127030),
+UInt128(429454142581535, 12643699903762811947),
+UInt128(343563314065228, 10114959923010249558),
+UInt128(549701302504365, 12494587062074488970),
+UInt128(439761042003492, 9995669649659591176),
+UInt128(351808833602794, 617838090243852294),
+UInt128(562894133764470, 8367238573873984317),
+UInt128(450315307011576, 6693790859099187453),
+UInt128(360252245609261, 1665683872537439639),
+UInt128(288201796487408, 16089942356997593004),
+UInt128(461122874379854, 3607814882744686868),
+UInt128(368898299503883, 6575600720937659817),
+UInt128(295118639603106, 12639178206233948500),
+UInt128(472189823364970, 12843987500490496954),
+UInt128(377751858691976, 10275190000392397563),
+UInt128(302201486953581, 4530803185572007727),
+UInt128(483522379125729, 18317331541140943334),
+UInt128(386817903300583, 18343214047654664990),
+]
+
+private let bid_breakpoints_binary80_7: [UInt128] = [
+UInt128(309454322640467, 3606524793898001022),
+UInt128(495126916224747, 9459788484978711959),
+UInt128(396101532979798, 189133158499148921),
+UInt128(316881226383838, 7530004156283139783),
+UInt128(507009962214141, 8358657835311113330),
+UInt128(405607969771313, 2997577453506980341),
+UInt128(324486375817050, 9776759592289404919),
+UInt128(519178201307280, 15642815347663047870),
+UInt128(415342561045824, 12514252278130438296),
+UInt128(332274048836659, 13700750637246260960),
+UInt128(531638478138655, 10853154575368286567),
+UInt128(425310782510924, 8682523660294629253),
+UInt128(340248626008739, 10635367742977613726),
+UInt128(544397801613983, 5948541944538450992),
+UInt128(435518241291186, 12137531185114581440),
+UInt128(348414593032949, 6020676133349754829),
+UInt128(557463348852718, 17011779442843428373),
+UInt128(445970679082175, 2541377110049011728),
+UInt128(356776543265740, 2033101688039209383),
+UInt128(285421234612592, 1626481350431367506),
+UInt128(456673975380147, 6291718975432098333),
+UInt128(365339180304117, 16101421624571409636),
+UInt128(292271344243294, 5502439670173307062),
+UInt128(467634150789270, 16182601101761111946),
+UInt128(374107320631416, 12946080881408889557),
+UInt128(299285856505133, 6667515890385201322),
+UInt128(478857370408213, 6978676609874411793),
+UInt128(383085896326570, 12961638917383350080),
+UInt128(306468717061256, 10369311133906680064),
+UInt128(490349947298010, 9212200184766867457),
+UInt128(392279957838408, 7369760147813493965),
+UInt128(313823966270726, 13274505747734615819),
+UInt128(502118346033162, 13860511566891564664),
+UInt128(401694676826530, 3709711624029431084),
+UInt128(321355741461224, 2967769299223544867),
+UInt128(514169186337958, 12127128508241492434),
+UInt128(411335349070366, 17080400436077014594),
+UInt128(329068279256293, 9974971534119701352),
+UInt128(526509246810069, 12270605639849611840),
+UInt128(421207397448055, 13505833326621599795),
+UInt128(336965917958444, 10804666661297279836),
+UInt128(539145468733511, 6219420213849916768),
+UInt128(431316374986809, 1286187356338023091),
+UInt128(345053099989447, 4718298699812328796),
+UInt128(552084959983115, 11238626734441636397),
+UInt128(441667967986492, 8990901387553309118),
+UInt128(353334374389193, 18260767554268378264),
+UInt128(282667499511355, 3540567599188971641),
+UInt128(452267999218168, 5664908158702354626),
+UInt128(361814399374534, 11910624156445704347),
+]
+
+private let bid_breakpoints_binary80_8: [UInt128] = [
+UInt128(289451519499627, 13217848139898473801),
+UInt128(463122431199404, 6391161764869916789),
+UInt128(370497944959523, 8802278226637843754),
+UInt128(296398355967618, 14420520210794095650),
+UInt128(474237369548190, 936739448819091101),
+UInt128(379389895638552, 749391559055272880),
+UInt128(303511916510841, 11667559691469949274),
+UInt128(485619066417346, 11289397876868098192),
+UInt128(388495253133877, 5342169486752568230),
+UInt128(310796202507101, 15341782033627785554),
+UInt128(497273924011362, 17168153624320636240),
+UInt128(397819139209090, 6355825269972688346),
+UInt128(318255311367272, 5084660215978150676),
+UInt128(509208498187635, 11824805160306951406),
+UInt128(407366798550108, 9459844128245561124),
+UInt128(325893438840086, 14946572932080269546),
+UInt128(521429502144138, 16535819061844610627),
+UInt128(417143601715311, 2160608805249957532),
+UInt128(333714881372248, 16485882303167607318),
+UInt128(533943810195598, 4241318796616709770),
+UInt128(427155048156478, 10771752666777188463),
+UInt128(341724038525182, 15996099762905571416),
+UInt128(546758461640292, 10836364361681272974),
+UInt128(437406769312234, 1290393859861197733),
+UInt128(349925415449787, 4721663902630868509),
+UInt128(559880664719659, 11244011058951299938),
+UInt128(447904531775727, 12684557661902950274),
+UInt128(358323625420582, 2768948500038539572),
+UInt128(286658900336465, 13283205244256562627),
+UInt128(458654240538345, 2806384317100948588),
+UInt128(366923392430676, 2245107453680758870),
+UInt128(293538713944540, 16553481221912248389),
+UInt128(469661942311265, 8038825881350045807),
+UInt128(375729553849012, 6431060705080036645),
+UInt128(300583643079209, 16212895008289760286),
+UInt128(480933828926735, 14872585569037885488),
+UInt128(384747063141388, 11898068455230308390),
+UInt128(307797650513110, 16897152393668067358),
+UInt128(492476240820977, 8588699756159356158),
+UInt128(393980992656781, 17939006249153215896),
+UInt128(315184794125425, 10661856184580662393),
+UInt128(504295670600680, 17058969895329059830),
+UInt128(403436536480544, 13647175916263247864),
+UInt128(322749229184435, 14607089547752508614),
+UInt128(516398766695097, 4924599202694462167),
+UInt128(413119013356077, 15007725806381300703),
+UInt128(330495210684862, 4627483015621219916),
+UInt128(528792337095779, 11093321639735862189),
+UInt128(423033869676623, 12564006126530600074),
+UInt128(338427095741298, 17429902530708300706),
+]
+
+private let bid_breakpoints_binary80_9: [UInt128] = [
+UInt128(541483353186078, 5751751160681819190),
+UInt128(433186682548862, 11980098558029275998),
+UInt128(346549346039090, 2205381216939600152),
+UInt128(554478953662544, 3528609947103360244),
+UInt128(443583162930035, 6512236772424598518),
+UInt128(354866530344028, 5209789417939678814),
+UInt128(283893224275222, 11546529163835563698),
+UInt128(454229158840356, 3717051403169260624),
+UInt128(363383327072284, 17731036381503049792),
+UInt128(290706661657827, 17874177919944350157),
+UInt128(465130658652524, 13841289412943318958),
+UInt128(372104526922019, 14762380345096565490),
+UInt128(297683621537615, 15499253090819162715),
+UInt128(476293794460185, 6352060871601108728),
+UInt128(381035035568148, 5081648697280886982),
+UInt128(304828028454518, 11444016587308530232),
+UInt128(487724845527229, 14621077724951738048),
+UInt128(390179876421783, 15386210994703300762),
+UInt128(312143901137427, 1240922351536909640),
+UInt128(499430241819883, 5674824577200965747),
+UInt128(399544193455906, 11918557291244593244),
+UInt128(319635354764725, 5845497018253764272),
+UInt128(511416567623560, 9352795229206022835),
+UInt128(409133254098848, 7482236183364818268),
+UInt128(327306603279078, 13364486576175675261),
+UInt128(523690565246525, 17693829707139170094),
+UInt128(418952452197220, 14155063765711336075),
+UInt128(335161961757776, 11324051012569068860),
+UInt128(536259138812442, 10739783990626689530),
+UInt128(429007311049954, 1213129563017530978),
+UInt128(343205848839963, 4659852465155935105),
+UInt128(549129358143941, 3766415129507585846),
+UInt128(439303486515152, 17770527362573709969),
+UInt128(351442789212122, 6837724260575147329),
+UInt128(562308462739395, 14629707631662146050),
+UInt128(449846770191516, 11703766105329716840),
+UInt128(359877416153213, 5673664069521863148),
+UInt128(287901932922570, 11917628885101311165),
+UInt128(460643092676113, 621462142452546248),
+UInt128(368514474140890, 7875867343445857645),
+UInt128(294811579312712, 6300693874756686116),
+UInt128(471698526900339, 13770459014352608109),
+UInt128(377358821520271, 14705716026223996810),
+UInt128(301887057216217, 8075224006237287125),
+UInt128(483019291545947, 16609707224721569723),
+UInt128(386415433236758, 5909068150293435132),
+UInt128(309132346589406, 12105952149718568752),
+UInt128(494611754543050, 11990825810065889357),
+UInt128(395689403634440, 9592660648052711486),
+UInt128(316551522907552, 7674128518442169188),
+]
+
+private let bid_breakpoints_binary80_10: [UInt128] = [
+UInt128(506482436652083, 15967954444249381025),
+UInt128(405185949321667, 1706317111173773850),
+UInt128(324148759457333, 12433100133164750050),
+UInt128(518638015131733, 16203611398321689757),
+UInt128(414910412105387, 1894842674431620836),
+UInt128(331928329684309, 12583920583771027638),
+UInt128(531085327494895, 9066226489807913251),
+UInt128(424868261995916, 7252981191846330601),
+UInt128(339894609596733, 2113036138735154157),
+UInt128(543831375354772, 18138253080943887945),
+UInt128(435065100283818, 7131904835271289710),
+UInt128(348052080227054, 13084221497700852414),
+UInt128(556883328363287, 9866707952095632893),
+UInt128(445506662690630, 514668732192685668),
+UInt128(356405330152504, 411734985754148534),
+UInt128(285124264122003, 4018736803345229150),
+UInt128(456198822595205, 2740630070610456318),
+UInt128(364959058076164, 2192504056488365054),
+UInt128(291967246460931, 5443352059932602366),
+UInt128(467147594337490, 1330665666408343140),
+UInt128(373718075469992, 1064532533126674512),
+UInt128(298974460375993, 11919672470727070579),
+UInt128(478359136601589, 15382127138421402604),
+UInt128(382687309281271, 15995050525479032406),
+UInt128(306149847425017, 9106691605641315602),
+UInt128(489839755880027, 18260055383768015286),
+UInt128(391871804704022, 7229346677530591582),
+UInt128(313497443763217, 16851523786250204235),
+UInt128(501595910021148, 12205042799032685484),
+UInt128(401276728016918, 17142731868709969034),
+UInt128(321021382413535, 2646139050742244257),
+UInt128(513634211861656, 4233822481187590812),
+UInt128(410907369489324, 18144453243917713942),
+UInt128(328725895591459, 18204911409876081477),
+UInt128(525961432946335, 18059811811575999394),
+UInt128(420769146357068, 14447849449260799515),
+UInt128(336615317085655, 490233115182908642),
+UInt128(538584507337048, 784372984292653828),
+UInt128(430867605869638, 8006196016917943708),
+UInt128(344694084695710, 13783654443018175613),
+UInt128(551510535513137, 3607103035119529365),
+UInt128(441208428410509, 13953728872321354462),
+UInt128(352966742728407, 14852331912598993892),
+UInt128(282373394182726, 4503167900595374467),
+UInt128(451797430692361, 18273115085178330118),
+UInt128(361437944553889, 10929143253400753771),
+UInt128(289150355643111, 12432663417462513340),
+UInt128(462640569028978, 12513563838456200698),
+UInt128(370112455223182, 17389548700248781204),
+UInt128(296089964178546, 6532941330715204317),
+]
+
+private let bid_breakpoints_binary80_11: [UInt128] = [
+UInt128(473743942685674, 3074008499660506261),
+UInt128(378995154148539, 6148555614470315332),
+UInt128(303196123318831, 8608193306318162589),
+UInt128(485113797310130, 6394411660625239496),
+UInt128(388091037848104, 5115529328500191597),
+UInt128(310472830278483, 7781772277542063600),
+UInt128(496756528445573, 8761486829325391438),
+UInt128(397405222756458, 14387887092944133796),
+UInt128(317924178205167, 442263230129576067),
+UInt128(508678685128267, 4396969982949232031),
+UInt128(406942948102613, 14585622430585116595),
+UInt128(325554358482091, 600451500242362306),
+UInt128(520886973571345, 12028768844613510660),
+UInt128(416709578857076, 9623015075690808528),
+UInt128(333367663085661, 4009063245810736499),
+UInt128(533388260937057, 17482547637522909368),
+UInt128(426710608749646, 6607340480534506848),
+UInt128(341368486999717, 1596523569685695155),
+UInt128(546189579199547, 6243786526239022571),
+UInt128(436951663359637, 16063075665216949027),
+UInt128(349561330687710, 5471762902689738575),
+UInt128(559298129100336, 8754820644303581720),
+UInt128(447438503280269, 3314507700700955053),
+UInt128(357950802624215, 6340954975302674365),
+UInt128(286360642099372, 5072763980242139492),
+UInt128(458177027358995, 11805771183129333511),
+UInt128(366541621887196, 9444616946503466809),
+UInt128(293233297509757, 3866344742460863124),
+UInt128(469173276015611, 9875500402679291321),
+UInt128(375338620812489, 4211051507401522734),
+UInt128(300270896649991, 7058190020663128510),
+UInt128(480433434639986, 3914406403577184970),
+UInt128(384346747711988, 17888920381829389269),
+UInt128(307477398169591, 3243089861237780445),
+UInt128(491963837071345, 16256990222206179682),
+UInt128(393571069657076, 13005592177764943746),
+UInt128(314856855725661, 6715124927470044673),
+UInt128(503770969161058, 3365502254468250831),
+UInt128(403016775328846, 10071099433058421311),
+UInt128(322413420263077, 4367530731704826726),
+UInt128(515861472420923, 10677397985469633085),
+UInt128(412689177936738, 15920616017859527114),
+UInt128(330151342349391, 1668446370061890721),
+UInt128(528242147759025, 13737560636324756124),
+UInt128(422593718207220, 10990048509059804899),
+UInt128(338074974565776, 8792038807247843919),
+UInt128(540919959305242, 6688564462112729625),
+UInt128(432735967444193, 16418898013915914669),
+UInt128(346188773955355, 2067071966907000766),
+UInt128(553902038328568, 3307315147051201226),
+]
+
+private let bid_breakpoints_binary80_12: [UInt128] = [
+UInt128(443121630662854, 10024549747124781627),
+UInt128(354497304530283, 11708988612441735624),
+UInt128(283597843624226, 16745888519437209146),
+UInt128(453756549798763, 967979927906162371),
+UInt128(363005239839010, 8153081571808750543),
+UInt128(290404191871208, 6522465257447000435),
+UInt128(464646706993933, 6746595597173290372),
+UInt128(371717365595146, 12775974107222452944),
+UInt128(297373892476117, 6531430471036052032),
+UInt128(475798227961787, 14139637568399593575),
+UInt128(380638582369430, 3933012425235854213),
+UInt128(304510865895544, 3146409940188683371),
+UInt128(487217385432870, 12412953533785714040),
+UInt128(389773908346296, 9930362827028571232),
+UInt128(311819126677037, 4254941446880946662),
+UInt128(498910602683259, 10497255129751424983),
+UInt128(399128482146607, 12087152918543050309),
+UInt128(319302785717286, 2291024705350619601),
+UInt128(510884457147657, 14733685972786722331),
+UInt128(408707565718126, 4408251148745557219),
+UInt128(326966052574500, 18283996177964087068),
+UInt128(523145684119201, 10807649811032987692),
+UInt128(418516547295361, 4956771034084479831),
+UInt128(334813237836289, 276068012525673541),
+UInt128(535701180538062, 7820406449524898313),
+UInt128(428560944430449, 17324371603845649620),
+UInt128(342848755544359, 17548846097818430019),
+UInt128(548558008870975, 17010107312283757061),
+UInt128(438846407096780, 13608085849827005649),
+UInt128(351077125677424, 10886468679861604519),
+UInt128(561723401083879, 6350303443552836261),
+UInt128(449378720867103, 8769591569584179332),
+UInt128(359502976693682, 14394370885151164112),
+UInt128(287602381354946, 4136799078637110643),
+UInt128(460163810167913, 17686924970045107998),
+UInt128(368131048134331, 3081493531810355429),
+UInt128(294504838507464, 17222590084415925636),
+UInt128(471207741611943, 16488097690839750048),
+UInt128(376966193289555, 2122431708446069069),
+UInt128(301572954631644, 1697945366756855255),
+UInt128(482516727410630, 10095410216294789055),
+UInt128(386013381928504, 8076328173035831244),
+UInt128(308810705542803, 10150411353170575318),
+UInt128(494097128868485, 12551309350331010186),
+UInt128(395277703094788, 10041047480264808149),
+UInt128(316222162475830, 15411535613695667165),
+UInt128(505955459961329, 6211712908203515849),
+UInt128(404764367969063, 8658719141304723002),
+UInt128(323811494375250, 14305672942527599048),
+UInt128(518098391000401, 4442332634334606861),
+]
+
+private let bid_breakpoints_binary80_13: [UInt128] = [
+UInt128(414478712800320, 18311261366435326781),
+UInt128(331582970240256, 14649009093148261425),
+UInt128(530532752384410, 16059716919553397634),
+UInt128(424426201907528, 12847773535642718107),
+UInt128(339540961526022, 17656916457997995132),
+UInt128(543265538441636, 13493671073829150919),
+UInt128(434612430753309, 7105588044321410412),
+UInt128(347689944602647, 9373819250199038652),
+UInt128(556303911364236, 240715541350820551),
+UInt128(445043129091388, 14949967692048297734),
+UInt128(356034503273111, 891927709412907217),
+UInt128(284827602618488, 15470937426497967066),
+UInt128(455724164189582, 2617406993945285367),
+UInt128(364579331351665, 13161972039381959263),
+UInt128(291663465081332, 10529577631505567411),
+UInt128(466661544130132, 2089928951441266565),
+UInt128(373329235304105, 12739989605378744221),
+UInt128(298663388243284, 10191991684302995377),
+UInt128(477861421189255, 5239140250659061634),
+UInt128(382289136951404, 4191312200527249307),
+UInt128(305831309561123, 7042398575163709769),
+UInt128(489330095297797, 7578488905520025307),
+UInt128(391464076238237, 17130837568641751215),
+UInt128(313171260990590, 6325972425429580325),
+UInt128(501074017584944, 10121555880687328521),
+UInt128(400859214067955, 11786593519291773140),
+UInt128(320687371254364, 9429274815433418512),
+UInt128(513099794006983, 4018793260467738650),
+UInt128(410479835205586, 10593732237858011566),
+UInt128(328383868164469, 4785636975544498930),
+UInt128(525414189063150, 15035716790355018934),
+UInt128(420331351250520, 12028573432284015147),
+UInt128(336265081000416, 9622858745827212118),
+UInt128(538024129600666, 8017876363839718742),
+UInt128(430419303680533, 2724952276329864670),
+UInt128(344335442944426, 9558659450547712383),
+UInt128(550936708711082, 7915157491392519166),
+UInt128(440749366968865, 17400172437339746302),
+UInt128(352599493575092, 13920137949871797042),
+UInt128(282079594860074, 3757412730413616987),
+UInt128(451327351776118, 13390557998145607826),
+UInt128(361061881420894, 18091144028000306907),
+UInt128(288849505136715, 18162264037142155849),
+UInt128(462159208218745, 10612878385717897742),
+UInt128(369727366574996, 8490302708574318193),
+UInt128(295781893259997, 3102893352117544231),
+UInt128(473251029215995, 8653978178129981094),
+UInt128(378600823372796, 6923182542503984875),
+UInt128(302880658698237, 1849197219261277577),
+UInt128(484609053917179, 6648064365559954446),
+]
+
+private let bid_breakpoints_binary80_14: [UInt128] = [
+UInt128(387687243133743, 9007800307189873880),
+UInt128(310149794506994, 14584937875235719750),
+UInt128(496239671211191, 12267854156151420631),
+UInt128(396991736968953, 6124934510179226182),
+UInt128(317593389575162, 12278645237627201592),
+UInt128(508149423320260, 4888437121235881254),
+UInt128(406519538656208, 3910749696988705003),
+UInt128(325215630924966, 10507297387074784649),
+UInt128(520345009479946, 9432978189835834792),
+UInt128(416276007583957, 3857033737126757510),
+UInt128(333020806067165, 14153673433927136978),
+UInt128(532833289707465, 4199133420573867549),
+UInt128(426266631765972, 3359306736459094039),
+UInt128(341013305412777, 13755491833393006201),
+UInt128(545621288660444, 7251391674461168629),
+UInt128(436497030928355, 9490462154310845226),
+UInt128(349197624742684, 7592369723448676181),
+UInt128(558716199588295, 1079745113292150920),
+UInt128(446972959670636, 863796090633720736),
+UInt128(357578367736508, 15448432131474617881),
+UInt128(286062694189207, 1290699260953963335),
+UInt128(457700310702731, 5754467632268251660),
+UInt128(366160248562185, 914225291072691005),
+UInt128(292928198849748, 731380232858152804),
+UInt128(468685118159596, 15927603631540685779),
+UInt128(374948094527677, 9052734090490638300),
+UInt128(299958475622141, 18310233716618241609),
+UInt128(479933560995427, 3470932243395814313),
+UInt128(383946848796341, 13844792238942382420),
+UInt128(307157479037073, 7386484976411995613),
+UInt128(491451966459317, 8129027147517282657),
+UInt128(393161573167453, 17571268162239557095),
+UInt128(314529258533963, 2988968085565914707),
+UInt128(503246813654341, 1093000122163553208),
+UInt128(402597450923472, 15631795356698483859),
+UInt128(322077960738778, 5126738655874966440),
+UInt128(515324737182045, 4513433034658035982),
+UInt128(412259789745636, 3610746427726428785),
+UInt128(329807831796508, 17645992401148784321),
+UInt128(527692530874414, 6097494953386592975),
+UInt128(422154024699531, 8567344777451184703),
+UInt128(337723219759625, 3164527007219037439),
+UInt128(540357151615400, 5063243211550459903),
+UInt128(432285721292320, 4050594569240367922),
+UInt128(345828577033856, 3240475655392294338),
+UInt128(553325723254169, 16252807492853401910),
+UInt128(442660578603335, 16691594809024631851),
+UInt128(354128462882668, 13353275847219705481),
+UInt128(283302770306134, 18061318307259585031),
+UInt128(453284432489815, 17830062847389605080),
+]
+
+private let bid_breakpoints_binary80_15: [UInt128] = [
+UInt128(362627545991852, 14264050277911684064),
+UInt128(290102036793482, 4032542592845526605),
+UInt128(464163258869571, 10141416963294752891),
+UInt128(371330607095657, 4423784755893891990),
+UInt128(297064485676525, 14607074248940844561),
+UInt128(475303177082441, 4924574724595799682),
+UInt128(380242541665953, 250310964934729422),
+UInt128(304194033332762, 7578946401431604184),
+UInt128(486710453332419, 15815663057032477018),
+UInt128(389368362665935, 16341879260367891938),
+UInt128(311494690132748, 13073503408294313550),
+UInt128(498391504212397, 17228256638528991357),
+UInt128(398713203369918, 6403907681339372439),
+UInt128(318970562695934, 12501823774555318598),
+UInt128(510352900313495, 8934871595062778787),
+UInt128(408282320250796, 7147897276050223030),
+UInt128(326625856200637, 2028969006098268100),
+UInt128(522601369921019, 6935699224499139284),
+UInt128(418081095936815, 9237908194341221750),
+UInt128(334464876749452, 7390326555472977400),
+UInt128(535143802799123, 15513871303498674164),
+UInt128(428115042239299, 1343050598573208361),
+UInt128(342492033791439, 4763789293600477012),
+UInt128(547987254066302, 15000760499244583866),
+UInt128(438389803253042, 4621910769911846446),
+UInt128(350711842602433, 14765575060155208127),
+UInt128(561138948163894, 1488827207796871064),
+UInt128(448911158531115, 4880410580979407174),
+UInt128(359128926824892, 3904328464783525739),
+UInt128(287303141459913, 14191509216052551561),
+UInt128(459685026335862, 570321857232620558),
+UInt128(367748021068689, 11524303930011827416),
+UInt128(294198416854951, 12908791958751372256),
+UInt128(470717466967922, 13275369504518374964),
+UInt128(376573973574338, 3241597974130879324),
+UInt128(301259178859470, 9971976008788524106),
+UInt128(482014686175152, 15955161614061638570),
+UInt128(385611748940122, 5385431661765490209),
+UInt128(308489399152097, 15376391773638123137),
+UInt128(493583038643356, 9844831578853355726),
+UInt128(394866430914685, 4186516448340774258),
+UInt128(315893144731748, 3349213158672619406),
+UInt128(505429031570797, 1669392239134280727),
+UInt128(404343225256637, 12403560235533155551),
+UInt128(323474580205310, 2544150558942703794),
+UInt128(517559328328496, 4070640894308326071),
+UInt128(414047462662796, 18013907974414302150),
+UInt128(331237970130237, 10721777564789531397),
+UInt128(529980752208380, 2397448844695608942),
+UInt128(423984601766704, 1917959075756487153),
+]
+
+private let bid_breakpoints_binary80_16: [UInt128] = [
+UInt128(339187681413363, 5223716075347100046),
+UInt128(542700290261381, 4668596905813449750),
+UInt128(434160232209105, 45528709908849477),
+UInt128(347328185767284, 36422967927079582),
+UInt128(555725097227654, 7436974378167147977),
+UInt128(444580077782123, 9638928317275628705),
+UInt128(355664062225698, 15089840283304323610),
+UInt128(284531249780559, 1003825782417727918),
+UInt128(455249999648894, 8984818881352185316),
+UInt128(364199999719115, 10877203919823658576),
+UInt128(291359999775292, 8701763135858926861),
+UInt128(466175999640467, 17612169832116193301),
+UInt128(372940799712374, 6711038236209133994),
+UInt128(298352639769899, 9058179403709217518),
+UInt128(477364223631839, 3425040601709017060),
+UInt128(381891378905471, 6429381296109123971),
+UInt128(305513103124377, 1454156222145388854),
+UInt128(488820964999003, 6015998770174532489),
+UInt128(391056771999202, 12191496645623446638),
+UInt128(312845417599362, 2374499687014936664),
+UInt128(500552668158979, 7488548313965808985),
+UInt128(400442134527183, 9680187465914557511),
+UInt128(320353707621746, 15122847602215466655),
+UInt128(512565932194794, 16817858534060926003),
+UInt128(410052745755835, 17143635641990651125),
+UInt128(328042196604668, 13714908513592520900),
+UInt128(524867514567469, 18254504807006123117),
+UInt128(419894011653975, 18292952660346808817),
+UInt128(335915209323180, 14634362128277447053),
+UInt128(537464334917089, 4968235331534363670),
+UInt128(429971467933671, 7663937079969401259),
+UInt128(343977174346937, 2441800849233610684),
+UInt128(550363478955099, 7596230173515687418),
+UInt128(440290783164079, 9766332953554460257),
+UInt128(352232626531263, 11502415177585478529),
+UInt128(281786101225010, 16580629771552203469),
+UInt128(450857761960017, 8082263560773973935),
+UInt128(360686209568013, 17533857292844910118),
+UInt128(288548967654411, 2959039390050197124),
+UInt128(461678348247057, 15802509468306046369),
+UInt128(369342678597646, 5263309945161016449),
+UInt128(295474142878117, 521299141386902836),
+UInt128(472758628604987, 4523427440960954861),
+UInt128(378206902883989, 14686788396994494858),
+UInt128(302565522307191, 15438779532337506209),
+UInt128(484104835691506, 17323349622256189289),
+UInt128(387283868553205, 10169330883063041108),
+UInt128(309827094842564, 8135464706450432886),
+UInt128(495723351748103, 1948697086094961649),
+UInt128(396578681398482, 8937655298359789965),
+]
+
+private let bid_breakpoints_binary80_17: [UInt128] = [
+UInt128(317262945118785, 18218170682913562942),
+UInt128(507620712190057, 10702329018952149091),
+UInt128(406096569752046, 1183165585677898626),
+UInt128(324877255801636, 15703927727509960194),
+UInt128(519803609282618, 17747586734532115664),
+UInt128(415842887426095, 3130022943399961561),
+UInt128(332674309940876, 2504018354719969249),
+UInt128(532278895905401, 15074475811777681768),
+UInt128(425823116724321, 8370231834680235091),
+UInt128(340658493379457, 3006836653002277750),
+UInt128(545053589407131, 8500287459545554723),
+UInt128(436042871525705, 3110881152894533455),
+UInt128(348834297220564, 2488704922315626764),
+UInt128(558134875552902, 11360625505188823469),
+UInt128(446507900442322, 1709802774667238129),
+UInt128(357206320353857, 12435888663959521473),
+UInt128(285765056283086, 2570013301683796532),
+UInt128(457224090052937, 15180067726919805421),
+UInt128(365779272042350, 4765356552052023690),
+UInt128(292623417633880, 3812285241641618952),
+UInt128(468197468214208, 6099656386626590323),
+UInt128(374557974571366, 12258422738785092905),
+UInt128(299646379657093, 6117389376286164001),
+UInt128(479434207451349, 6098474187315952078),
+UInt128(383547365961079, 8568128164594671986),
+UInt128(306837892768863, 10543851346417647912),
+UInt128(490940628430181, 13180813339526326336),
+UInt128(392752502744145, 6855301856879150745),
+UInt128(314202002195316, 5484241485503320596),
+UInt128(502723203512506, 1396088747321492308),
+UInt128(402178562810004, 15874266256824835139),
+UInt128(321742850248003, 16388761820201778434),
+UInt128(514788560396806, 4085926023871383556),
+UInt128(411830848317444, 18026136078064748137),
+UInt128(329464678653955, 18110257677193708833),
+UInt128(527143485846329, 10529668209800382517),
+UInt128(421714788677063, 12113083382582216337),
+UInt128(337371830941650, 17069164335549593716),
+UInt128(539794929506641, 8863918863169798329),
+UInt128(431835943605313, 3401786275793928340),
+UInt128(345468754884250, 10100126650118963318),
+UInt128(552750007814800, 16160202640190341310),
+UInt128(442200006251840, 12928162112152273048),
+UInt128(353760005001472, 10342529689721818438),
+UInt128(283008004001178, 895326122293634104),
+UInt128(452812806401884, 16189917054637455859),
+UInt128(362250245121507, 16641282458451875011),
+UInt128(289800196097206, 5934328337277679362),
+UInt128(463680313755530, 2116227710160466333),
+UInt128(370944251004424, 1692982168128373066),
+]
+
+private let bid_breakpoints_binary80_18: [UInt128] = [
+UInt128(296755400803539, 5043734549244608776),
+UInt128(474808641285662, 15448672908275194689),
+UInt128(379846913028530, 4980240697136335104),
+UInt128(303877530422824, 3984192557709068083),
+UInt128(486204048676518, 13753405721818329580),
+UInt128(388963238941214, 18381422206938484310),
+UInt128(311170591152971, 18394486580292697771),
+UInt128(497872945844755, 3605736825274944172),
+UInt128(398298356675804, 2884589460219955338),
+UInt128(318638685340643, 5997020382917874593),
+UInt128(509821896545029, 5905883797926689026),
+UInt128(407857517236023, 8414055853083261544),
+UInt128(326286013788818, 14109942311950429882),
+UInt128(522057622062110, 439814810669225872),
+UInt128(417646097649688, 351851848535380697),
+UInt128(334116878119750, 7660179108312125204),
+UInt128(534587004991600, 12256286573299400327),
+UInt128(427669603993280, 9805029258639520261),
+UInt128(342135683194624, 7844023406911616209),
+UInt128(547417093111399, 1482391006832854965),
+UInt128(437933674489119, 4875261620208194295),
+UInt128(350346939591295, 7589558110908465759),
+UInt128(560555103346072, 12143292977453545215),
+UInt128(448444082676858, 2335936752479015526),
+UInt128(358755266141486, 9247447031467033067),
+UInt128(287004212913189, 3708608810431716130),
+UInt128(459206740661102, 13312471726174566455),
+UInt128(367365392528882, 3271279751455832517),
+UInt128(293892314023105, 13685070245390396983),
+UInt128(470227702436969, 3449368318915083558),
+UInt128(376182161949575, 6448843469873977169),
+UInt128(300945729559660, 5159074775899181735),
+UInt128(481513167295456, 8254519641438690777),
+UInt128(385210533836365, 2914266898409042298),
+UInt128(308168427069092, 2331413518727233838),
+UInt128(493069483310547, 7419610444705484465),
+UInt128(394455586648437, 17003734799990118541),
+UInt128(315564469318750, 6224290210508274187),
+UInt128(504903150910000, 9958864336813238699),
+UInt128(403922520728000, 7967091469450590959),
+UInt128(323138016582400, 6373673175560472767),
+UInt128(517020826531840, 10197877080896756428),
+UInt128(413616661225472, 8158301664717405142),
+UInt128(330893328980377, 17594687775999655083),
+UInt128(529429326368604, 13394105182631806841),
+UInt128(423543461094883, 14404632960847355796),
+UInt128(338834768875907, 455659924452153667),
+UInt128(542135630201451, 4418404693865356190),
+UInt128(433708504161160, 18292119014059926245),
+UInt128(346966803328928, 14633695211247940996),
+]
+
+private let bid_breakpoints_binary80_19: [UInt128] = [
+UInt128(555146885326286, 1277819449545243655),
+UInt128(444117508261028, 15779650818603836216),
+UInt128(355294006608823, 1555674210657338003),
+UInt128(284235205287058, 8623236998009691049),
+UInt128(454776328459293, 10107830382073595355),
+UInt128(363821062767434, 15464961935142696931),
+UInt128(291056850213947, 16061318362856067868),
+UInt128(465690960342316, 10940714121602067296),
+UInt128(372552768273853, 5063222482539743513),
+UInt128(298042214619082, 11429275615515615457),
+UInt128(476867543390532, 3529445725857343439),
+UInt128(381494034712425, 13891603024911605720),
+UInt128(305195227769940, 11113282419929284576),
+UInt128(488312364431904, 17781251871886855322),
+UInt128(390649891545523, 17914350312251394581),
+UInt128(312519913236419, 3263433805575384695),
+UInt128(500031861178270, 12600191718404436159),
+UInt128(400025488942616, 10080153374723548927),
+UInt128(320020391154093, 4374773885036928818),
+UInt128(512032625846549, 3310289401317175786),
+UInt128(409626100677239, 6337580335795650952),
+UInt128(327700880541791, 8759413083378431085),
+UInt128(524321408866866, 6636363303921669089),
+UInt128(419457127093493, 1619741828395424948),
+UInt128(335565701674794, 8674491092200160605),
+UInt128(536905122679671, 2811139303294525999),
+UInt128(429524098143736, 17006306701603262092),
+UInt128(343619278514989, 9915696546540699350),
+UInt128(549790845623983, 4797068030239387991),
+UInt128(439832676499186, 11216352053675331039),
+UInt128(351866141199349, 5283732828198354508),
+UInt128(281492912959479, 7916335077300593929),
+UInt128(450388660735167, 1598089679455219318),
+UInt128(360310928588133, 12346518187789906424),
+UInt128(288248742870506, 17255912179715745785),
+UInt128(461197988592811, 1784017784351820994),
+UInt128(368958390874248, 16184609486449098088),
+UInt128(295166712699399, 1879641144933547501),
+UInt128(472266740319038, 10386123461377496648),
+UInt128(377813392255230, 15687596398585817965),
+UInt128(302250713804184, 12550077118868654372),
+UInt128(483601142086695, 9012076945964116025),
+UInt128(386880913669356, 7209661556771292820),
+UInt128(309504730935485, 2078380430675123933),
+UInt128(495207569496776, 3325408689080198293),
+UInt128(396166055597420, 17417722210231799927),
+UInt128(316932844477936, 13934177768185439941),
+UInt128(507092551164698, 14915986799612883260),
+UInt128(405674040931759, 864742995464575638),
+UInt128(324539232745407, 4381143211113570834),
+]
+
+private let bid_breakpoints_binary80_20: [UInt128] = [
+UInt128(519262772392651, 10699177952523623658),
+UInt128(415410217914121, 4869993547276988603),
+UInt128(332328174331297, 206646023079680559),
+UInt128(531725078930075, 4019982451669399218),
+UInt128(425380063144060, 3215985961335519374),
+UInt128(340304050515248, 2572788769068415499),
+UInt128(544486480824397, 427113215767554476),
+UInt128(435589184659517, 11409737016839774550),
+UInt128(348471347727614, 1749091983987998994),
+UInt128(557554156364182, 10177244803864619036),
+UInt128(446043325091346, 763098213607874583),
+UInt128(356834660073076, 15367873829853940959),
+UInt128(285467728058461, 8604950249141242444),
+UInt128(456748364893538, 6389222769142167264),
+UInt128(365398691914830, 12490075844797554457),
+UInt128(292318953531864, 9992060675838043566),
+UInt128(467710325650983, 4919250637115138736),
+UInt128(374168260520786, 11314098139175931635),
+UInt128(299334608416629, 5361929696598834985),
+UInt128(478935373466606, 15957785144041956622),
+UInt128(383148298773285, 9076879300491654975),
+UInt128(306518639018628, 7261503440393323980),
+UInt128(490429822429805, 7929056689887408044),
+UInt128(392343857943844, 6343245351909926435),
+UInt128(313875086355075, 8763945096269851471),
+UInt128(502200138168120, 14022312154031762355),
+UInt128(401760110534496, 11217849723225409884),
+UInt128(321408088427597, 5284930963838417584),
+UInt128(514252941484155, 12145238356883378457),
+UInt128(411402353187324, 9716190685506702766),
+UInt128(329121882549859, 11462301363147272536),
+UInt128(526595012079775, 7271635736809905088),
+UInt128(421276009663820, 5817308589447924070),
+UInt128(337020807731056, 4653846871558339256),
+UInt128(539233292369690, 67457365009522164),
+UInt128(431386633895752, 53965892007617731),
+UInt128(345109307116601, 11111219157831825154),
+UInt128(552174891386562, 10399253023047099600),
+UInt128(441739913109250, 940704788953859034),
+UInt128(353391930487400, 752563831163087227),
+UInt128(282713544389920, 602051064930469781),
+UInt128(452341671023872, 963281703888751651),
+UInt128(361873336819097, 11838671807336732290),
+UInt128(289498669455278, 2092239816385565186),
+UInt128(463197871128444, 18104978965184545590),
+UInt128(370558296902755, 18173331986889546795),
+UInt128(296446637522204, 14538665589511637436),
+UInt128(474314620035527, 12193818498992888928),
+UInt128(379451696028422, 2376357169710490496),
+UInt128(303561356822737, 12969132179994123366),
+]
+
+private let bid_breakpoints_binary80_21: [UInt128] = [
+UInt128(485698170916380, 5993216229022956094),
+UInt128(388558536733104, 4794572983218364875),
+UInt128(310846829386483, 7525007201316602223),
+UInt128(497354927018373, 8350662707364653234),
+UInt128(397883941614698, 14059227795375543233),
+UInt128(318307153291759, 179335792074703617),
+UInt128(509291445266814, 7665634896803346434),
+UInt128(407433156213451, 9821856732184587470),
+UInt128(325946524970761, 4168136571005759653),
+UInt128(521514439953217, 17737064957834946414),
+UInt128(417211551962574, 6810954336784136485),
+UInt128(333769241570059, 9138112284169219511),
+UInt128(534030786512095, 3552933210445020249),
+UInt128(427224629209676, 2842346568356016199),
+UInt128(341779703367740, 17031272513652454252),
+UInt128(546847525388385, 8803291948134375187),
+UInt128(437478020310708, 7042633558507500150),
+UInt128(349982416248566, 13012804476289820766),
+UInt128(559971865997706, 13441789532579892579),
+UInt128(447977492798165, 7064082811322003740),
+UInt128(358381994238532, 5651266249057602992),
+UInt128(286705595390825, 15589059443471813363),
+UInt128(458728952625321, 6495751035845349765),
+UInt128(366983162100257, 1507252013934369489),
+UInt128(293586529680205, 12273848055373226561),
+UInt128(469738447488329, 1191412814887610881),
+UInt128(375790757990663, 4642479066651999028),
+UInt128(300632606392530, 11092680882805419869),
+UInt128(481012170228048, 17748289412488671790),
+UInt128(384809736182439, 3130585085765206463),
+UInt128(307847788945951, 6193816883354075493),
+UInt128(492556462313522, 2531409383882700143),
+UInt128(394045169850817, 13093173951331891084),
+UInt128(315236135880654, 3095841531581692221),
+UInt128(504377817409046, 12332044080014528200),
+UInt128(403502253927237, 6176286449269712237),
+UInt128(322801803141789, 16009075603641500759),
+UInt128(516482885026863, 14546474521600670245),
+UInt128(413186308021491, 569133173054805226),
+UInt128(330549046417192, 15212701797411485474),
+UInt128(528878474267508, 9582927616890735465),
+UInt128(423102779414006, 15045039722996409018),
+UInt128(338482223531205, 8346682963655216891),
+UInt128(541571557649928, 13354692741848347027),
+UInt128(433257246119942, 18062451822962498268),
+UInt128(346605796895954, 7071263828886177968),
+UInt128(554569275033527, 245975681992153779),
+UInt128(443655420026821, 11264826989819453993),
+UInt128(354924336021457, 5322512777113652871),
+UInt128(283939468817165, 15326056665916653266),
+]
+
+private let bid_breakpoints_binary80_22: [UInt128] = [
+UInt128(454303150107465, 6074946591757093610),
+UInt128(363442520085972, 4859957273405674888),
+UInt128(290754016068777, 14956012262950270880),
+UInt128(465206425710044, 9172224361752792115),
+UInt128(372165140568035, 11027128304144144015),
+UInt128(297732112454428, 8821702643315315212),
+UInt128(476371379927085, 10425375414562594017),
+UInt128(381097103941668, 8340300331650075213),
+UInt128(304877683153334, 14050937894803880817),
+UInt128(487804293045335, 11413454187460478338),
+UInt128(390243434436268, 9130763349968382670),
+UInt128(312194747549014, 14683308309458526782),
+UInt128(499511596078423, 12425246850907911882),
+UInt128(399609276862738, 17318895110210150152),
+UInt128(319687421490191, 2787069643942389152),
+UInt128(511499874384305, 15527357874533553613),
+UInt128(409199899507444, 12421886299626842890),
+UInt128(327359919605955, 13626857854443384635),
+UInt128(523775871369529, 3356228493399863801),
+UInt128(419020697095623, 6374331609461801364),
+UInt128(335216557676498, 12478162917053261737),
+UInt128(536346492282397, 16275711852543308457),
+UInt128(429077193825918, 5641871852550826119),
+UInt128(343261755060734, 11892195111524481542),
+UInt128(549218808097175, 7959465734213439497),
+UInt128(439375046477740, 6367572587370751598),
+UInt128(351500037182192, 5094058069896601278),
+UInt128(562400059491507, 11839841726576472368),
+UInt128(449920047593206, 2093175751777357248),
+UInt128(359936038074564, 16431935860389527091),
+UInt128(287948830459651, 16834897503053531996),
+UInt128(460718128735443, 1110394301692278932),
+UInt128(368574502988354, 8267013070837643792),
+UInt128(294859602390683, 10302959271412025356),
+UInt128(471775363825093, 12795386019517330247),
+UInt128(377420291060074, 17615006445097684844),
+UInt128(301936232848059, 17781353970820058198),
+UInt128(483097972556895, 17382119909086362148),
+UInt128(386478378045516, 13905695927269089718),
+UInt128(309182702436413, 7435207927073361451),
+UInt128(494692323898261, 8206983868575467999),
+UInt128(395753859118609, 2876238280118464076),
+UInt128(316603087294887, 5990339438836681584),
+UInt128(506564939671819, 13273891916880600858),
+UInt128(405251951737455, 14308462348246391010),
+UInt128(324201561389964, 11446769878597112808),
+UInt128(518722498223943, 7246785361529649523),
+UInt128(414977998579154, 13176125918707540264),
+UInt128(331982398863323, 14230249549707942535),
+UInt128(531171838181318, 632306391081246117),
+]
+
+private let bid_breakpoints_binary80_23: [UInt128] = [
+UInt128(424937470545054, 7884542742348817540),
+UInt128(339949976436043, 9996983008620964355),
+UInt128(543919962297669, 12305823999051632645),
+UInt128(435135969838135, 13534008013983216439),
+UInt128(348108775870508, 10827206411186573151),
+UInt128(556974041392813, 13634181443156606719),
+UInt128(445579233114250, 18286042784009106021),
+UInt128(356463386491400, 14628834227207284817),
+UInt128(285170709193120, 11703067381765827853),
+UInt128(456273134708993, 278163737115772950),
+UInt128(365018507767194, 7601228619176439006),
+UInt128(292014806213755, 9770331710083061528),
+UInt128(467223689942008, 15632530736132898445),
+UInt128(373778951953607, 1437978144680587786),
+UInt128(299023161562885, 12218428959970201199),
+UInt128(478437058500617, 1102742262242770302),
+UInt128(382749646800493, 11950240254019947211),
+UInt128(306199717440394, 16938889832699778415),
+UInt128(489919547904631, 16034177288093914495),
+UInt128(391935638323705, 9137993015733221273),
+UInt128(313548510658964, 7310394412586577018),
+UInt128(501677617054343, 628584615912792260),
+UInt128(401342093643474, 7881565322214054454),
+UInt128(321073674914779, 9994601072513153886),
+UInt128(513717879863647, 4923315271795315249),
+UInt128(410974303890917, 15006698661661983169),
+UInt128(328779443112734, 4626661299845765888),
+UInt128(526047108980374, 14781355709237046068),
+UInt128(420837687184299, 15514433382131547178),
+UInt128(336670149747439, 16100895520447148065),
+UInt128(538672239595903, 14693386388489705935),
+UInt128(430937791676723, 686662666566033778),
+UInt128(344750233341378, 7928027762736647669),
+UInt128(551600373346205, 8995495605636725947),
+UInt128(441280298676964, 7196396484509380758),
+UInt128(353024238941571, 9446466002349414929),
+UInt128(282419391153257, 3867823987137621620),
+UInt128(451871025845211, 9877867194162104916),
+UInt128(361496820676169, 4212944940587773609),
+UInt128(289197456540935, 7059704767212129211),
+UInt128(462715930465496, 11295527627539406737),
+UInt128(370172744372397, 5347073287289615066),
+UInt128(296138195497917, 15345705074057423023),
+UInt128(473821112796668, 9795732859524235544),
+UInt128(379056890237334, 15215283917103209081),
+UInt128(303245512189867, 15861575948424477588),
+UInt128(485192819503788, 10621126258511522848),
+UInt128(388154255603030, 15875598636293038925),
+UInt128(310523404482424, 12700478909034431140),
+UInt128(496837447171879, 9252719810229358855),
+]
+
+private let bid_breakpoints_binary80_24: [UInt128] = [
+UInt128(397469957737503, 11091524662925397407),
+UInt128(317975966190002, 16251917359824138572),
+UInt128(508761545904004, 11245672516750980422),
+UInt128(407009236723203, 12685886828142694661),
+UInt128(325607389378562, 17527407091997976375),
+UInt128(520971823005700, 13286456088229120908),
+UInt128(416777458404560, 10629164870583296726),
+UInt128(333421966723648, 8503331896466637381),
+UInt128(533475146757837, 9915982219604709486),
+UInt128(426780117406270, 554088146199946942),
+UInt128(341424093925016, 443270516959957554),
+UInt128(546278550280025, 11777279271361663056),
+UInt128(437022840224020, 9421823417089330445),
+UInt128(349618272179216, 7537458733671464356),
+UInt128(559389235486746, 4681236344390522323),
+UInt128(447511388389397, 55640260770507535),
+UInt128(358009110711517, 11112558652842136998),
+UInt128(286407288569214, 1511349292789888952),
+UInt128(458251661710742, 9796856497947642969),
+UInt128(366601329368594, 458787568874293729),
+UInt128(293281063494875, 4056378869841345306),
+UInt128(469249701591800, 6490206191746152490),
+UInt128(375399761273440, 5192164953396921992),
+UInt128(300319809018752, 4153731962717537594),
+UInt128(480511694430003, 10335319955089970473),
+UInt128(384409355544002, 15646953593555797025),
+UInt128(307527484435202, 5138865245360816973),
+UInt128(492043975096323, 11911533207319217481),
+UInt128(393635180077058, 16907924195339194631),
+UInt128(314908144061647, 2458292912045624735),
+UInt128(503853030498635, 7622617474014909900),
+UInt128(403082424398908, 6098093979211927920),
+UInt128(322465939519126, 12257172812853362982),
+UInt128(515945503230602, 12232778871081560125),
+UInt128(412756402584482, 2407525467381427454),
+UInt128(330205122067585, 12994066818130872932),
+UInt128(528328195308137, 2343762835299845076),
+UInt128(422662556246509, 12943056712465607030),
+UInt128(338130044997207, 14043794184714395947),
+UInt128(541008071995532, 7712675436575392223),
+UInt128(432806457596425, 17238186793486044748),
+UInt128(346245166077140, 13790549434788835798),
+UInt128(553992265723425, 3618135021952585662),
+UInt128(443193812578740, 2894508017562068529),
+UInt128(354555050062992, 2315606414049654823),
+UInt128(283644040050393, 12920531575465454828),
+UInt128(453830464080629, 16983501706002817402),
+UInt128(363064371264503, 17276150179544164245),
+UInt128(290451497011603, 2752873699409600426),
+UInt128(464722395218565, 715249104313450359),
+]
+
+private let bid_breakpoints_binary80_25: [UInt128] = [
+UInt128(371777916174852, 572199283450760287),
+UInt128(297422332939881, 11525805870986339199),
+UInt128(475875732703810, 11062591764094322073),
+UInt128(380700586163048, 8850073411275457658),
+UInt128(304560468930438, 14458756358504186773),
+UInt128(487296750288702, 997917285155236897),
+UInt128(389837400230961, 11866380272349920487),
+UInt128(311869920184769, 5803755403138026067),
+UInt128(498991872295630, 16664706274504662353),
+UInt128(399193497836504, 13331765019603729883),
+UInt128(319354798269203, 14354760830424894229),
+UInt128(510967677230726, 831524440228368828),
+UInt128(408774141784580, 15422614811150336355),
+UInt128(327019313427664, 12338091848920269084),
+UInt128(523230901484263, 8672900514046699565),
+UInt128(418584721187410, 14317018040721180298),
+UInt128(334867776949928, 11453614432576944238),
+UInt128(535788443119885, 14636434277381200459),
+UInt128(428630754495908, 11709147421904960367),
+UInt128(342904603596726, 16746015567007788940),
+UInt128(548647365754763, 968183204019090041),
+UInt128(438917892603810, 8153244192699092679),
+UInt128(351134314083048, 6522595354159274143),
+UInt128(561814902532877, 6746803751912928307),
+UInt128(449451922026301, 16465489445756073615),
+UInt128(359561537621041, 9483042741862948569),
+UInt128(287649230096833, 3897085378748448532),
+UInt128(460238768154933, 2545987791255607328),
+UInt128(368191014523946, 9415487862488306508),
+UInt128(294552811619157, 3843041475248734883),
+UInt128(471284498590651, 9838215175139886137),
+UInt128(377027598872521, 4181223325369998586),
+UInt128(301622079098016, 18102373919263640162),
+UInt128(482595326556827, 3138356567628451997),
+UInt128(386076261245461, 13578731698328492567),
+UInt128(308861008996369, 7173636543920883730),
+UInt128(494177614394191, 409772026047682999),
+UInt128(395342091515352, 15085212879805787692),
+UInt128(316273673212282, 4689472674360809507),
+UInt128(506037877139651, 11192505093719205535),
+UInt128(404830301711721, 5264655260233454104),
+UInt128(323864241369377, 522375393444852960),
+UInt128(518182786191003, 4525149444253675060),
+UInt128(414546228952802, 10998817184886760694),
+UInt128(331636983162242, 1420356118425587909),
+UInt128(530619173059587, 5961918604222850978),
+UInt128(424495338447669, 15837581327604011752),
+UInt128(339596270758135, 16359413876825119724),
+UInt128(543354033213017, 7728318129210639943),
+UInt128(434683226570413, 17250700947594242924),
+]
+
+private let bid_breakpoints_binary80_26: [UInt128] = [
+UInt128(347746581256331, 2732514313849663370),
+UInt128(556394530010129, 15440069346385192361),
+UInt128(445115624008103, 16041404291850064212),
+UInt128(356092499206483, 1765076989254320400),
+UInt128(284873999365186, 8790759220887276966),
+UInt128(455798398984298, 6686517123935822500),
+UInt128(364638719187438, 12727911328632478646),
+UInt128(291710975349950, 17561026692389803563),
+UInt128(466737560559921, 9650898634114134086),
+UInt128(373390048447937, 4031370092549396945),
+UInt128(298712038758349, 14293142518265248526),
+UInt128(477939262013359, 11800981584998666672),
+UInt128(382351409610687, 13130134082740843661),
+UInt128(305881127688550, 3125409636708854282),
+UInt128(489409804301680, 5000655418734166851),
+UInt128(391527843441344, 4000524334987333481),
+UInt128(313222274753075, 6889768282731777108),
+UInt128(501155639604920, 11023629252370843373),
+UInt128(400924511683936, 8818903401896674698),
+UInt128(320739609347149, 3365773906775429435),
+UInt128(513183374955438, 12763935880324507743),
+UInt128(410546699964350, 17589846333743426841),
+UInt128(328437359971480, 14071877066994741473),
+UInt128(525499775954369, 4068259233482034740),
+UInt128(420399820763495, 6943956201527538115),
+UInt128(336319856610796, 5555164961222030492),
+UInt128(538111770577274, 1509566308471428142),
+UInt128(430489416461819, 4897001861519052836),
+UInt128(344391533169455, 7606950303957152592),
+UInt128(551026453071128, 12171120486331444148),
+UInt128(440821162456902, 17115594018548975964),
+UInt128(352656929965522, 6313777585355360125),
+UInt128(282125543972417, 16119068512510019070),
+UInt128(451400870355868, 11033114361048389219),
+UInt128(361120696284694, 16205189118322532021),
+UInt128(288896557027755, 16653500109399935940),
+UInt128(462234491244409, 8198856101330345889),
+UInt128(369787592995527, 10248433695806187034),
+UInt128(295830074396422, 820049327161128981),
+UInt128(473328119034275, 5001427738199716693),
+UInt128(378662495227420, 4001142190559773354),
+UInt128(302929996181936, 3200913752447818683),
+UInt128(484687993891097, 16189508448142240863),
+UInt128(387750395112878, 5572909129029972044),
+UInt128(310200316090302, 11837024932707798281),
+UInt128(496320505744484, 4181844633364835958),
+UInt128(397056404595587, 7034824521433779089),
+UInt128(317645123676469, 16695906061372754241),
+UInt128(508232197882351, 15645403253970675816),
+UInt128(406585758305881, 8826973788434630330),
+]
+
+private let bid_breakpoints_binary80_27: [UInt128] = [
+UInt128(325268606644705, 3372230216005793940),
+UInt128(520429770631528, 5395568345609270305),
+UInt128(416343816505222, 11695152305971236890),
+UInt128(333075053204178, 1977424215293168866),
+UInt128(532920085126684, 17921274003436711478),
+UInt128(426336068101347, 18026368017491279506),
+UInt128(341068854481078, 7042396784509202958),
+UInt128(545710167169725, 7578486040472814410),
+UInt128(436568133735780, 6062788832378251528),
+UInt128(349254506988624, 4850231065902601222),
+UInt128(558807211181798, 15139067334927982602),
+UInt128(447045768945439, 1043207423716655112),
+UInt128(357636615156351, 4523914753715234413),
+UInt128(286109292125080, 18376527061939828823),
+UInt128(457774867400129, 10955699225394174501),
+UInt128(366219893920103, 12453908195057249924),
+UInt128(292975915136082, 17341824185529620585),
+UInt128(468761464217732, 12989523437879751644),
+UInt128(375009171374186, 3012921120819980669),
+UInt128(300007337099348, 17167732155623625828),
+UInt128(480011739358958, 5332278560546339385),
+UInt128(384009391487166, 11644520477920892155),
+UInt128(307207513189733, 5626267567594803400),
+UInt128(491532021103573, 5312679293409775118),
+UInt128(393225616882858, 11628841064211640740),
+UInt128(314580493506286, 16681770480853133239),
+UInt128(503328789610059, 865391066171640920),
+UInt128(402663031688047, 4381661667679223059),
+UInt128(322130425350437, 14573375778369109417),
+UInt128(515408680560700, 8560005986422933774),
+UInt128(412326944448560, 6848004789138347019),
+UInt128(329861555558848, 5478403831310677615),
+UInt128(527778488894157, 5076097315355173862),
+UInt128(422222791115325, 15128924296509870059),
+UInt128(337778232892260, 12103139437207896047),
+UInt128(540445172627617, 918279025823082059),
+UInt128(432356138102093, 11802669664884196617),
+UInt128(345884910481674, 16820833361391177940),
+UInt128(553415856770679, 15845286934000153734),
+UInt128(442732685416543, 16365578361942033311),
+UInt128(354186148333235, 2024416245327895679),
+UInt128(283348918666588, 1619532996262316543),
+UInt128(453358269866540, 17348648052987347762),
+UInt128(362686615893232, 13878918442389878209),
+UInt128(290149292714586, 3724437124428081921),
+UInt128(464238868343337, 17027145843310662043),
+UInt128(371391094674670, 6243019045164708988),
+UInt128(297112875739736, 4994415236131767191),
+UInt128(475380601183578, 612366748327006859),
+UInt128(380304480946862, 7868591028145426133),
+]
+
+private let bid_breakpoints_binary80_28: [UInt128] = [
+UInt128(304243584757489, 17362919266742071876),
+UInt128(486789735611983, 16712624382561584033),
+UInt128(389431788489587, 2302053061823536256),
+UInt128(311545430791669, 12909688893684559975),
+UInt128(498472689266671, 9587455785669564990),
+UInt128(398778151413337, 3980615813793741669),
+UInt128(319022521130669, 14252539095260724304),
+UInt128(510436033809071, 11736016108191427918),
+UInt128(408348827047257, 5699464071811232011),
+UInt128(326679061637805, 15627617701674716578),
+UInt128(522686498620489, 6557444248969994910),
+UInt128(418149198896391, 8935304213917906251),
+UInt128(334519359117113, 3458894556392414677),
+UInt128(535230974587381, 1844882475485953161),
+UInt128(428184779669904, 16233301239356403821),
+UInt128(342547823735923, 16675989806227033380),
+UInt128(548076517977478, 4545490801511791469),
+UInt128(438461214381982, 11015090270693253822),
+UInt128(350768971505586, 1433374587070782411),
+UInt128(561230354408937, 13361445783538982827),
+UInt128(448984283527150, 3310458997347365615),
+UInt128(359187426821720, 2648367197877892492),
+UInt128(287349941457376, 2118693758302313994),
+UInt128(459759906331801, 14457956457509433360),
+UInt128(367807925065441, 7877016351265636365),
+UInt128(294246340052353, 2612264266270598768),
+UInt128(470794144083765, 490274011291047706),
+UInt128(376635315267012, 392219209032838165),
+UInt128(301308252213609, 11381821811452001502),
+UInt128(482093203541775, 7142868454097471433),
+UInt128(385674562833420, 5714294763277977146),
+UInt128(308539650266736, 4571435810622381717),
+UInt128(493663440426777, 18382343741221541717),
+UInt128(394930752341422, 7327177363493412727),
+UInt128(315944601873137, 16929788335020461151),
+UInt128(505511362997020, 12330266077065096550),
+UInt128(404409090397616, 9864212861652077240),
+UInt128(323527272318093, 4202021474579751468),
+UInt128(517643635708949, 3033885544585692026),
+UInt128(414114908567159, 6116457250410463944),
+UInt128(331291926853727, 8582514615070281478),
+UInt128(530067082965963, 17421372198854360689),
+UInt128(424053666372771, 2869051314857757582),
+UInt128(339242933098216, 17052636310853847358),
+UInt128(542788692957147, 1458776394172783511),
+UInt128(434230954365717, 12235067559563957778),
+UInt128(347384763492574, 2409356418167345576),
+UInt128(555815621588118, 11233667898551573568),
+UInt128(444652497270494, 16365631948325079501),
+UInt128(355721997816395, 16781854373401973924),
+]
+
+private let bid_breakpoints_binary80_29: [UInt128] = [
+UInt128(284577598253116, 13425483498721579139),
+UInt128(455324157204986, 14102075968470705976),
+UInt128(364259325763989, 7592311960034654458),
+UInt128(291407460611191, 9763198382769633889),
+UInt128(466251936977906, 8242419782947593577),
+UInt128(373001549582325, 2904587011616164538),
+UInt128(298401239665860, 2323669609292931630),
+UInt128(477441983465376, 3717871374868690609),
+UInt128(381953586772300, 17731692358862593780),
+UInt128(305562869417840, 14185353887090075024),
+UInt128(488900591068545, 4249822145634568422),
+UInt128(391120472854836, 3399857716507654738),
+UInt128(312896378283868, 17477281432173765083),
+UInt128(500634205254190, 5827557403026562194),
+UInt128(400507364203352, 4662045922421249755),
+UInt128(320405891362681, 14797683182162730773),
+UInt128(512649426180290, 16297595461976548591),
+UInt128(410119540944232, 13038076369581238873),
+UInt128(328095632755386, 3051763466181170452),
+UInt128(524953012408617, 15950867990115603693),
+UInt128(419962409926894, 5381996762608662308),
+UInt128(335969927941515, 7994946224828840169),
+UInt128(537551884706424, 12791913959726144271),
+UInt128(430041507765139, 13922879982522825740),
+UInt128(344033206212111, 14827652800760170915),
+UInt128(550453129939378, 16345546851732452818),
+UInt128(440362503951503, 2008391037160231285),
+UInt128(352290003161202, 8985410459212005674),
+UInt128(281832002528961, 18256374811595335509),
+UInt128(450931204046339, 3384757995359164552),
+UInt128(360744963237071, 6397155211029241965),
+UInt128(288595970589657, 1428375354081483248),
+UInt128(461753552943451, 5974749381272283521),
+UInt128(369402842354761, 1090450690275916493),
+UInt128(295522273883808, 15629755811188374487),
+UInt128(472835638214094, 2871516409449937241),
+UInt128(378268510571275, 5986561942301860116),
+UInt128(302614808457020, 4789249553841488093),
+UInt128(484183693531232, 7662799286146380949),
+UInt128(387346954824985, 17198285873142835728),
+UInt128(309877563859988, 13758628698514268583),
+UInt128(495804102175981, 18324457102880919409),
+UInt128(396643281740785, 10970216867562825204),
+UInt128(317314625392628, 8776173494050260163),
+UInt128(507703400628205, 10352528775738505938),
+UInt128(406162720502564, 8282023020590804750),
+UInt128(324930176402051, 10314967231214554123),
+UInt128(519888282243282, 9125249940459465951),
+UInt128(415910625794625, 18368246396593303731),
+UInt128(332728500635700, 14694597117274642984),
+]
+
+private let bid_breakpoints_binary80_30: [UInt128] = [
+UInt128(532365601017121, 5064611313929877159),
+UInt128(425892480813697, 362340236401991404),
+UInt128(340713984650957, 11357918633347324093),
+UInt128(545142375441532, 3415274554388077256),
+UInt128(436113900353225, 13800266087736192774),
+UInt128(348891120282580, 11040212870188954219),
+UInt128(558225792452128, 17664340592302326751),
+UInt128(446580633961703, 3063426029616130431),
+UInt128(357264507169362, 9829438453176724991),
+UInt128(285811605735490, 484853133057559347),
+UInt128(457298569176784, 775765012892094955),
+UInt128(365838855341427, 4309960825055586287),
+UInt128(292671084273141, 14516015104270199999),
+UInt128(468273734837026, 15846926537348499352),
+UInt128(374618987869621, 8988192415136889159),
+UInt128(299695190295697, 3501205117367601004),
+UInt128(479512304473115, 9291277002530071929),
+UInt128(383609843578492, 7433021602024057543),
+UInt128(306887874862793, 17014463725844977004),
+UInt128(491020599780470, 5087049072900501268),
+UInt128(392816479824376, 4069639258320401014),
+UInt128(314253183859500, 18013106665623962104),
+UInt128(502805094175201, 10374226591288787751),
+UInt128(402244075340161, 4610032458289119877),
+UInt128(321795260272128, 18445421225598937194),
+UInt128(514872416435406, 7376581072506837572),
+UInt128(411897933148325, 2211916043263559735),
+UInt128(329518346518660, 1769532834610847788),
+UInt128(527229354429856, 2831252535377356460),
+UInt128(421783483543884, 17022397287269526461),
+UInt128(337426786835107, 17307266644557531492),
+UInt128(539882858936172, 12934231372324409095),
+UInt128(431906287148938, 2968687468375706629),
+UInt128(345525029719150, 9753647604184385950),
+UInt128(552840047550640, 15605836166695017520),
+UInt128(442272038040512, 12484668933356014016),
+UInt128(353817630432410, 2609037517200990566),
+UInt128(283054104345928, 2087230013760792453),
+UInt128(452886566953484, 18096963280984909217),
+UInt128(362309253562787, 18166919439529837697),
+UInt128(289847402850230, 7154837922140049511),
+UInt128(463755844560368, 11447740675424079218),
+UInt128(371004675648294, 16536890169823084021),
+UInt128(296803740518635, 16918860950600377540),
+UInt128(474885984829817, 8623433447251052448),
+UInt128(379908787863853, 17966793202026572928),
+UInt128(303927030291083, 3305388117395527373),
+UInt128(486283248465733, 1599272173090933473),
+UInt128(389026598772586, 8658115367956567425),
+UInt128(311221279018069, 3237143479623343617),
+]
+
+private let bid_breakpoints_binary80_31: [UInt128] = [
+UInt128(497954046428910, 12558127196881170433),
+UInt128(398363237143128, 10046501757504936346),
+UInt128(318690589714502, 15415899035487769723),
+UInt128(509904943543204, 9908043197812790265),
+UInt128(407923954834563, 11615783372992142535),
+UInt128(326339163867650, 16671324327877534674),
+UInt128(522142662188241, 8227374850894503863),
+UInt128(417714129750593, 2892551065973692767),
+UInt128(334171303800474, 9692738482262774860),
+UInt128(534674086080759, 4440335127394708807),
+UInt128(427739268864607, 7241616916657677369),
+UInt128(342191415091685, 16861339977551872864),
+UInt128(547506264146697, 8531399890373444967),
+UInt128(438005011317357, 17893166356524486943),
+UInt128(350404009053886, 6935835455735768908),
+UInt128(560646414486218, 3718639099693409607),
+UInt128(448517131588974, 10353608909238548332),
+UInt128(358813705271179, 11972235942132748989),
+UInt128(287050964216943, 13267137568448109514),
+UInt128(459281542747109, 17538071294775064900),
+UInt128(367425234197687, 17719805850561962243),
+UInt128(293940187358150, 6797147050965749148),
+UInt128(470304299773040, 10875435281545198637),
+UInt128(376243439818432, 8700348225236158909),
+UInt128(300994751854745, 18028325024414658097),
+UInt128(481591602967593, 10398575965353901339),
+UInt128(385273282374074, 15697558401766941718),
+UInt128(308218625899259, 16247395536155463697),
+UInt128(493149801438815, 14927786413623010946),
+UInt128(394519841151052, 11942229130898408757),
+UInt128(315615872920842, 2175085675234906359),
+UInt128(504985396673347, 7169485895117760498),
+UInt128(403988317338677, 16803635160319939368),
+UInt128(323190653870942, 6064210498772130848),
+UInt128(517105046193507, 13392085612777319680),
+UInt128(413684036954806, 3334970860738035098),
+UInt128(330947229563844, 17425371947558069371),
+UInt128(529515567302151, 16812548671867180024),
+UInt128(423612453841721, 9760690122751833696),
+UInt128(338889963073377, 4119203283459556633),
+UInt128(542223940917403, 10280074068277200937),
+UInt128(433779152733922, 15602756884105581396),
+UInt128(347023322187138, 5103507877800644470),
+UInt128(555237315499421, 4476263789739120829),
+UInt128(444189852399536, 18338406290758937956),
+UInt128(355351881919629, 10981376217865240042),
+UInt128(284281505535703, 12474449789034102356),
+UInt128(454850408857125, 16269770847712653447),
+UInt128(363880327085700, 13015816678170122758),
+UInt128(291104261668560, 10412653342536098206),
+]
+
+private let bid_breakpoints_binary80_32: [UInt128] = [
+UInt128(465766818669696, 16660245348057757130),
+UInt128(372613454935757, 9638847463704295381),
+UInt128(298090763948606, 332380341479615658),
+UInt128(476945222317769, 11599854990593116023),
+UInt128(381556177854215, 12969232807216403141),
+UInt128(305244942283372, 10375386245773122513),
+UInt128(488391907653396, 1843222734269354728),
+UInt128(390713526122716, 16231973446383125075),
+UInt128(312570820898173, 9296229942364589737),
+UInt128(500113313437077, 11184619093041433256),
+UInt128(400090650749662, 1568997644949325959),
+UInt128(320072520599729, 12323244560185191736),
+UInt128(512116032959567, 8649144852070575809),
+UInt128(409692826367653, 17987362325882191617),
+UInt128(327754261094123, 3321843416480022324),
+UInt128(524406817750597, 1625600651626125395),
+UInt128(419525454200477, 12368526965526631285),
+UInt128(335620363360382, 2516123942937484382),
+UInt128(536992581376611, 7715147123441885334),
+UInt128(429594065101289, 2482768884011597944),
+UInt128(343675252081031, 5675563921951188678),
+UInt128(549880403329650, 1702204645638081239),
+UInt128(439904322663720, 1361763716510464991),
+UInt128(351923458130976, 1089410973208371993),
+UInt128(281538766504780, 15628924037534338887),
+UInt128(450462026407649, 6559534386345390604),
+UInt128(360369621126119, 8936976323818222806),
+UInt128(288295696900895, 10838929873796488568),
+UInt128(461273115041432, 17342287798074381709),
+UInt128(369018492033146, 6495132608975684721),
+UInt128(295214793626517, 1506757272438637453),
+UInt128(472343669802427, 6100160450643730249),
+UInt128(377874935841941, 15948174804740715168),
+UInt128(302299948673553, 9069191029050661811),
+UInt128(483679917877685, 10821356831739148575),
+UInt128(386943934302148, 8657085465391318860),
+UInt128(309555147441718, 14304366001796875735),
+UInt128(495288235906750, 750892714423539236),
+UInt128(396230588725400, 600714171538831389),
+UInt128(316984470980320, 480571337231065111),
+UInt128(507175153568512, 768914139569704178),
+UInt128(405740122854809, 11683177755881494312),
+UInt128(324592098283847, 13035891019447105773),
+UInt128(519347357254156, 6100030372147727944),
+UInt128(415477885803325, 1190675482976272032),
+UInt128(332382308642660, 952540386381017625),
+UInt128(531811693828256, 1524064618209628201),
+UInt128(425449355062604, 15976646953535343853),
+UInt128(340359484050083, 16470666377570185406),
+UInt128(544575174480134, 4216973315660834710),
+]
+
+private let bid_breakpoints_binary80_33: [UInt128] = [
+UInt128(435660139584107, 7062927467270578091),
+UInt128(348528111667285, 16718388418042193443),
+UInt128(557644978667657, 8302677395157957892),
+UInt128(446115982934125, 17710188360352097283),
+UInt128(356892786347300, 14168150688281677827),
+UInt128(285514229077840, 11334520550625342261),
+UInt128(456822766524544, 18135232881000547618),
+UInt128(365458213219635, 18197535119542348418),
+UInt128(292366570575708, 14558028095633878734),
+UInt128(467786512921134, 1156752064562744035),
+UInt128(374229210336907, 4614750466392105551),
+UInt128(299383368269525, 14759846817339415411),
+UInt128(479013389231241, 5169010834033513041),
+UInt128(383210711384993, 445859852484900110),
+UInt128(306568569107994, 7735385511471740734),
+UInt128(490509710572791, 1308570374129054205),
+UInt128(392407768458232, 15804251558270884657),
+UInt128(313926214766586, 5264703617132887079),
+UInt128(502281943626538, 1044828157928798680),
+UInt128(401825554901230, 8214560155826859591),
+UInt128(321460443920984, 6571648124661487672),
+UInt128(514336710273574, 17893334628942200923),
+UInt128(411469368218859, 18004016517895671061),
+UInt128(329175494575087, 18092562029058447172),
+UInt128(526680791320140, 14190703987525874183),
+UInt128(421344633056112, 11352563190020699346),
+UInt128(337075706444890, 1703352922532738830),
+UInt128(539321130311824, 2725364676052382129),
+UInt128(431456904249459, 5869640555583816026),
+UInt128(345165523399567, 8385061259208963144),
+UInt128(552264837439307, 17105446829476251354),
+UInt128(441811869951446, 6305659834097180437),
+UInt128(353449495961157, 1355179052535834026),
+UInt128(282759596768925, 12152189686254398190),
+UInt128(452415354830281, 996759424297485489),
+UInt128(361932283864224, 15554802798405629684),
+UInt128(289545827091379, 16133191053466414070),
+UInt128(463273323346207, 14745059241320531543),
+UInt128(370618658676966, 4417349763572604588),
+UInt128(296494926941572, 18291275069825724963),
+UInt128(474391883106516, 14508644852753518648),
+UInt128(379513506485213, 7917567067460904595),
+UInt128(303610805188170, 13712751283452544323),
+UInt128(485777288301073, 3493657979814519300),
+UInt128(388621830640858, 10173624013335436087),
+UInt128(310897464512686, 15517596840152169516),
+UInt128(497435943220298, 17449457314759650579),
+UInt128(397948754576239, 2891519407581989493),
+UInt128(318359003660991, 6002564340807501918),
+UInt128(509374405857586, 2225405315808182422),
+]
+
+private let bid_breakpoints_binary80_34: [UInt128] = [
+UInt128(407499524686068, 16537719511614187231),
+UInt128(325999619748855, 2162129165065618815),
+UInt128(521599391598168, 3459406664104990104),
+UInt128(417279513278534, 10146222960767812729),
+UInt128(333823610622827, 11806327183356160507),
+UInt128(534117776996524, 4132728234402215518),
+UInt128(427294221597219, 6995531402263682738),
+UInt128(341835377277775, 9285773936552856513),
+UInt128(546936603644440, 14857238298484570421),
+UInt128(437549282915552, 11885790638787656337),
+UInt128(350039426332442, 2129934881546304423),
+UInt128(560063082131907, 7097244625215997401),
+UInt128(448050465705525, 16745842144398528890),
+UInt128(358440372564420, 13396673715518823112),
+UInt128(286752298051536, 10717338972415058489),
+UInt128(458803676882458, 9769044726380272937),
+UInt128(367042941505966, 15193933410588038996),
+UInt128(293634353204773, 8465797913728520873),
+UInt128(469814965127637, 9855927847223723074),
+UInt128(375851972102110, 506044648295157813),
+UInt128(300681577681688, 404835718636126250),
+UInt128(481090524290700, 15405132408785443294),
+UInt128(384872419432560, 12324105927028354635),
+UInt128(307897935546048, 9859284741622683708),
+UInt128(492636696873677, 12085506771854383610),
+UInt128(394109357498942, 2289707787999686241),
+UInt128(315287485999153, 12899812674625479962),
+UInt128(504459977598645, 16950351464658857617),
+UInt128(403567982078916, 13560281171727086093),
+UInt128(322854385663133, 7158876122639758551),
+UInt128(516567017061013, 7764852981481703359),
+UInt128(413253613648810, 13590580014669183334),
+UInt128(330602890919048, 10872464011735346667),
+UInt128(528964625470477, 13706593604034644344),
+UInt128(423171700376382, 3586577253743894829),
+UInt128(338537360301105, 13937308247220846833),
+UInt128(541659776481769, 3852949121843803316),
+UInt128(433327821185415, 6771708112216952976),
+UInt128(346662256948332, 5417366489773562381),
+UInt128(554659611117331, 12357135198379610133),
+UInt128(443727688893865, 6196359343961777783),
+UInt128(354982151115092, 4957087475169422226),
+UInt128(283985720892073, 15033716424361268751),
+UInt128(454377153427318, 1917853390526568062),
+UInt128(363501722741854, 8912980341905075096),
+UInt128(290801378193483, 10819733088265970400),
+UInt128(465282205109573, 13622224126483642317),
+UInt128(372225764087658, 18276476930670734500),
+UInt128(297780611270127, 3553135100310856630),
+UInt128(476448978032203, 9374364975239280932),
+]
+
+private let bid_breakpoints_binary80_35: [UInt128] = [
+UInt128(381159182425762, 14878189609675245392),
+UInt128(304927345940610, 4523854058256375667),
+UInt128(487883753504976, 7238166493210201067),
+UInt128(390307002803981, 2101184379826250531),
+UInt128(312245602243184, 16438342762828641717),
+UInt128(499592963589095, 15233301976300095778),
+UInt128(399674370871276, 12186641581040076622),
+UInt128(319739496697021, 6059964450090150975),
+UInt128(511583194715234, 2317245490660420913),
+UInt128(409266555772187, 5543145207270247054),
+UInt128(327413244617749, 15502562610041928612),
+UInt128(523861191388399, 13736053731841354811),
+UInt128(419088953110719, 14678191800214994172),
+UInt128(335271162488575, 15431902254913905660),
+UInt128(536433859981721, 6244299534152697441),
+UInt128(429147087985377, 1306090812580247629),
+UInt128(343317670388301, 12112919094289929073),
+UInt128(549308272621282, 12001972921380065871),
+UInt128(439446618097026, 2222880707620232050),
+UInt128(351557294477620, 16535699825063826933),
+UInt128(562491671164193, 8010375646392571477),
+UInt128(449993336931354, 13786998146597877828),
+UInt128(359994669545083, 14718947332020212585),
+UInt128(287995735636067, 707111421390439099),
+UInt128(460793177017707, 4820727088966612881),
+UInt128(368634541614165, 14924628115399021274),
+UInt128(294907633291332, 11939702492319217019),
+UInt128(471852213266132, 4346128728743105939),
+UInt128(377481770612905, 14544949427220215720),
+UInt128(301985416490324, 11635959541776172576),
+UInt128(483176666384519, 7549488822616145153),
+UInt128(386541333107615, 9728939872834826445),
+UInt128(309233066486092, 7783151898267861156),
+UInt128(494772906377747, 16142391851970488173),
+UInt128(395818325102198, 5535215852092569892),
+UInt128(316654660081758, 11806870311157876560),
+UInt128(506647456130813, 15201643683110692173),
+UInt128(405317964904651, 1093268502262822769),
+UInt128(324254371923720, 15632010060777899508),
+UInt128(518806995077953, 6564472023535087597),
+UInt128(415045596062362, 12630275248311890724),
+UInt128(332036476849890, 2725522569165691932),
+UInt128(531258362959824, 4360836110665107092),
+UInt128(425006690367859, 7178017703273995997),
+UInt128(340005352294287, 9431762977361107120),
+UInt128(544008563670860, 333425504810130100),
+UInt128(435206850936688, 266740403848104080),
+UInt128(348165480749350, 7592089952562303910),
+UInt128(557064769198960, 12147343924099686257),
+UInt128(445651815359168, 9717875139279749005),
+]
+
+private let bid_breakpoints_binary80_36: [UInt128] = [
+UInt128(356521452287334, 15152997740907619851),
+UInt128(285217161829867, 15811747007468006204),
+UInt128(456347458927788, 10541399952981168633),
+UInt128(365077967142230, 15811817591868755553),
+UInt128(292062373713784, 12649454073495004442),
+UInt128(467299797942055, 9171080073366276138),
+UInt128(373839838353644, 7336864058693020911),
+UInt128(299071870682915, 9558840061696327052),
+UInt128(478514993092664, 15294144098714123283),
+UInt128(382811994474131, 15924664093713208949),
+UInt128(306249595579305, 9050382460228656836),
+UInt128(489999352926888, 14480611936365850938),
+UInt128(391999482341511, 516443104866949781),
+UInt128(313599585873208, 15170549742861201117),
+UInt128(501759337397134, 2136786700126459849),
+UInt128(401407469917707, 5398778174843078202),
+UInt128(321125975934165, 15387068984100193531),
+UInt128(513801561494665, 6172566300850758034),
+UInt128(411041249195732, 4938053040680606427),
+UInt128(328832999356585, 15018488876770216111),
+UInt128(526132798970537, 5582838129122794162),
+UInt128(420906239176429, 15534316947523966299),
+UInt128(336724991341143, 16116802372761083363),
+UInt128(538759986145830, 3650790907966271441),
+UInt128(431007988916664, 2920632726373017153),
+UInt128(344806391133331, 6025854995840324045),
+UInt128(551690225813330, 2262670363860697827),
+UInt128(441352180650664, 1810136291088558261),
+UInt128(353081744520531, 5137457847612756932),
+UInt128(282465395616425, 420617463348295222),
+UInt128(451944632986280, 672987941357272356),
+UInt128(361555706389024, 538390353085817885),
+UInt128(289244565111219, 4120061097210564631),
+UInt128(462791304177950, 13970795385020724056),
+UInt128(370233043342360, 11176636308016579245),
+UInt128(296186434673888, 8941309046413263396),
+UInt128(473898295478221, 10616745659519311110),
+UInt128(379118636382577, 4804047712873538565),
+UInt128(303294909106061, 14911284614524561821),
+UInt128(485271854569698, 16479357753755478268),
+UInt128(388217483655759, 2115439758778651645),
+UInt128(310573986924607, 5381700621764831639),
+UInt128(496918379079371, 12300069809565640946),
+UInt128(397534703263497, 6150707032910602433),
+UInt128(318027762610797, 15988612070554212916),
+UInt128(508844420177276, 10824384053919099374),
+UInt128(407075536141821, 4970158428393369176),
+UInt128(325660428913457, 286777927972785017),
+UInt128(521056686261531, 4148193499498366351),
+UInt128(416845349009224, 18075950058566334373),
+]
+
+private let bid_breakpoints_binary80_37: [UInt128] = [
+UInt128(333476279207379, 18150108861594977822),
+UInt128(533562046731807, 17972127734326233546),
+UInt128(426849637385446, 6999004557977166190),
+UInt128(341479709908357, 1909854831639822629),
+UInt128(546367535853371, 6745116545365626529),
+UInt128(437094028682697, 1706744421550590900),
+UInt128(349675222946157, 12433441981466203690),
+UInt128(559480356713852, 5136111911378284611),
+UInt128(447584285371081, 15176935973328358658),
+UInt128(358067428296865, 8452199963920776603),
+UInt128(286453942637492, 6761759971136621283),
+UInt128(458326308219987, 14508164768560504376),
+UInt128(366661046575990, 4227834185364582854),
+UInt128(293328837260792, 3382267348291666283),
+UInt128(469326139617267, 9100976572008576376),
+UInt128(375460911693813, 18348827701832592071),
+UInt128(300368729355051, 3611015717240342687),
+UInt128(480589966968081, 16845671591810279269),
+UInt128(384471973574465, 9787188458706313092),
+UInt128(307577578859572, 7829750766965050473),
+UInt128(492124126175315, 16216950041885991081),
+UInt128(393699300940252, 12973560033508792865),
+UInt128(314959440752202, 3000150397323213645),
+UInt128(503935105203523, 8489589450459052156),
+UInt128(403148084162818, 14170369189851062371),
+UInt128(322518467330255, 268248907655118927),
+UInt128(516029547728408, 429198252248190284),
+UInt128(412823638182726, 7722056231282372873),
+UInt128(330258910546181, 2488296170283987975),
+UInt128(528414256873889, 15049320316680111730),
+UInt128(422731405499111, 15728805068085999707),
+UInt128(338185124399289, 8893695239726889443),
+UInt128(541096199038863, 3161865939337292139),
+UInt128(432876959231090, 9908190380953654357),
+UInt128(346301567384872, 7926552304762923486),
+UInt128(554082507815795, 16371832502362587901),
+UInt128(443266006252636, 13097466001890070320),
+UInt128(354612805002109, 6788623986770145933),
+UInt128(283690244001687, 9120248004158027070),
+UInt128(453904390402699, 18281745621394753635),
+UInt128(363123512322159, 18314745311857713231),
+UInt128(290498809857727, 18341145064228080908),
+UInt128(464798095772364, 14588436843797288160),
+UInt128(371838476617891, 15360098289779740851),
+UInt128(297470781294313, 8598729817081882358),
+UInt128(475953250070901, 10068618892589101449),
+UInt128(380762600056721, 4365546299329370836),
+UInt128(304610080045376, 18249832298431137962),
+UInt128(487376128072603, 3374289974296448476),
+UInt128(389900902458082, 10078129608920979427),
+]
+
+private let bid_breakpoints_binary80_38: [UInt128] = [
+UInt128(311920721966466, 683806057652962895),
+UInt128(499073155146345, 12162136136470471603),
+UInt128(399258524117076, 9729708909176377282),
+UInt128(319406819293661, 4094418312599191502),
+UInt128(511050910869857, 17619115744384437374),
+UInt128(408840728695886, 6716594966023729252),
+UInt128(327072582956709, 1683927158077073079),
+UInt128(523316132730734, 10072981082407137572),
+UInt128(418652906184587, 11747733680667620381),
+UInt128(334922324947670, 2019489315050275658),
+UInt128(535875719916272, 3231182904080441054),
+UInt128(428700575933017, 13652992767490083812),
+UInt128(342960460746414, 3543696584508246403),
+UInt128(548736737194262, 13048612164697014892),
+UInt128(438989389755410, 3060192102273791267),
+UInt128(351191511804328, 2448153681819033014),
+UInt128(561906418886925, 227697076168542499),
+UInt128(449525135109540, 182157660934833999),
+UInt128(359620108087632, 145726128747867199),
+UInt128(287696086470105, 11184627347224024729),
+UInt128(460313738352168, 17895403755558439566),
+UInt128(368250990681735, 3248276560221020683),
+UInt128(294600792545388, 2598621248176816547),
+UInt128(471361268072621, 468445182340996152),
+UInt128(377089014458096, 15132151404840438214),
+UInt128(301671211566477, 8416372309130440248),
+UInt128(482673938506363, 17155544509350614720),
+UInt128(386139150805091, 2656389163254760807),
+UInt128(308911320644072, 16882506589571449938),
+UInt128(494258113030516, 12254615284346678608),
+UInt128(395406490424413, 6114343412735432563),
+UInt128(316325192339530, 12270172359672166697),
+UInt128(506120307743249, 1185531701765915099),
+UInt128(404896246194599, 4637774176154642403),
+UInt128(323916996955679, 7399568155665624245),
+UInt128(518267195129087, 771262604839267823),
+UInt128(414613756103269, 11685056528097145228),
+UInt128(331691004882615, 13037394037219626505),
+UInt128(530705607812185, 2413086385841850793),
+UInt128(424564486249748, 1930469108673480634),
+UInt128(339651588999798, 8923072916422605154),
+UInt128(543442542399677, 10587567851534257923),
+UInt128(434754033919742, 1091356651743585692),
+UInt128(347803227135793, 11941131765620599523),
+UInt128(556485163417269, 15416462010251048914),
+UInt128(445188130733815, 16022518422942749454),
+UInt128(356150504587052, 12818014738354199563),
+UInt128(284920403669642, 2875714161199539004),
+UInt128(455872645871427, 8290491472661172730),
+UInt128(364698116697141, 17700439622354669154),
+]
+
+private let bid_breakpoints_binary80_39: [UInt128] = [
+UInt128(291758493357713, 10471002883141825000),
+UInt128(466813589372341, 13064255798285009676),
+UInt128(373450871497873, 6762055823886097418),
+UInt128(298760697198298, 12788342288592698581),
+UInt128(478017115517277, 16771998847006407406),
+UInt128(382413692413822, 6038901448121305278),
+UInt128(305930953931057, 15899167602722775192),
+UInt128(489489526289692, 10681272905388799015),
+UInt128(391591621031754, 1166320694827218565),
+UInt128(313273296825403, 4622405370603685175),
+UInt128(501237274920645, 3706499778223985958),
+UInt128(400989819936516, 2965199822579188766),
+UInt128(320791855949212, 17129555117030992306),
+UInt128(513266969518740, 12649892928281946397),
+UInt128(410613575614992, 10119914342625557117),
+UInt128(328490860491994, 717233844616625047),
+UInt128(525585376787190, 8526271780870420722),
+UInt128(420468301429752, 6821017424696336578),
+UInt128(336374641143801, 16524860383982800232),
+UInt128(538199425830083, 614334911179108109),
+UInt128(430559540664066, 7870165558427107133),
+UInt128(344447632531253, 2606783631999775383),
+UInt128(551116212050005, 481504996457730290),
+UInt128(440892969640004, 385203997166184232),
+UInt128(352714375712003, 3997512012474857709),
+UInt128(282171500569602, 10576707239463706813),
+UInt128(451474400911364, 2165336324174289609),
+UInt128(361179520729091, 5421617874081342010),
+UInt128(288943616583273, 647945484523163285),
+UInt128(462309786533236, 15794108034204702549),
+UInt128(369847829226589, 8945937612621851716),
+UInt128(295878263381271, 10846098904839391696),
+UInt128(473405221410034, 9975060618259206067),
+UInt128(378724177128027, 11669397309349275177),
+UInt128(302979341702422, 1956820217995599495),
+UInt128(484766946723875, 6820261163534869515),
+UInt128(387813557379100, 5456208930827895612),
+UInt128(310250845903280, 4364967144662316490),
+UInt128(496401353445248, 6983947431459706384),
+UInt128(397121082756198, 12965855574651585753),
+UInt128(317696866204958, 17751382089205089249),
+UInt128(508314985927934, 6266118454276680859),
+UInt128(406651988742347, 8702243578163255011),
+UInt128(325321590993877, 18029841306756334978),
+UInt128(520514545590204, 14090350831842494672),
+UInt128(416411636472163, 14961629480215906061),
+UInt128(333129309177731, 901257139946993879),
+UInt128(533006894684369, 12510057868140921176),
+UInt128(426405515747495, 13697395109254647264),
+UInt128(341124412597996, 10957916087403717811),
+]
+
+private let bid_breakpoints_binary80_40: [UInt128] = [
+UInt128(545799060156794, 10153968110362127852),
+UInt128(436639248125435, 11812523303031612605),
+UInt128(349311398500348, 9450018642425290084),
+UInt128(558898237600557, 11430681013138553811),
+UInt128(447118590080446, 1765847181027022402),
+UInt128(357694872064356, 16170073003789259214),
+UInt128(286155897651485, 9246709588289497048),
+UInt128(457849436242376, 14794735341263195277),
+UInt128(366279548993901, 8146439458268645899),
+UInt128(293023639195121, 2827802751873006396),
+UInt128(468837822712193, 15592530847222541203),
+UInt128(375070258169755, 1405978233552301993),
+UInt128(300056206535804, 1124782586841841594),
+UInt128(480089930457286, 9178349768430767197),
+UInt128(384071944365829, 3653331000002703434),
+UInt128(307257555492663, 6612013614744073071),
+UInt128(491612088788261, 6889872968848606590),
+UInt128(393289671030609, 1822549560336974949),
+UInt128(314631736824487, 5147388463011490282),
+UInt128(503410778919179, 11925170355560294775),
+UInt128(402728623135343, 13229485099190146143),
+UInt128(322182898508274, 17962285708835937561),
+UInt128(515492637613239, 17671610689911769128),
+UInt128(412394110090591, 17826637366671325625),
+UInt128(329915288072473, 10571961078595150177),
+UInt128(527864460915957, 13225788911010329960),
+UInt128(422291568732766, 3201933499324443322),
+UInt128(337833254986212, 17318942058427195950),
+UInt128(540533207977940, 12952912034515872228),
+UInt128(432426566382352, 10362329627612697782),
+UInt128(345941253105882, 911166072606337579),
+UInt128(553506004969411, 5147214530912050450),
+UInt128(442804803975529, 428422809987730037),
+UInt128(354243843180423, 4032087062732094352),
+UInt128(283395074544338, 10604367279669496128),
+UInt128(453432119270941, 13277638832729283482),
+UInt128(362745695416753, 6932762251441516463),
+UInt128(290196556333402, 12924907430637033816),
+UInt128(464314490133444, 5922456630051612814),
+UInt128(371451592106755, 8427314118783200574),
+UInt128(297161273685404, 6741851295026560459),
+UInt128(475458037896646, 18165659701526317381),
+UInt128(380366430317317, 10843178946479143582),
+UInt128(304293144253854, 1295845527699494219),
+UInt128(486869030806166, 9452050473803011397),
+UInt128(389495224644933, 3872291564300498794),
+UInt128(311596179715946, 10476530880924219682),
+UInt128(498553887545514, 9383751779994930845),
+UInt128(398843110036411, 11196350238737854999),
+UInt128(319074488029129, 5267731376248373676),
+]
+
+private let bid_breakpoints_binary80_41: [UInt128] = [
+UInt128(510519180846606, 15807067831481218528),
+UInt128(408415344677285, 8956305450443064499),
+UInt128(326732275741828, 7165044360354451599),
+UInt128(522771641186925, 7774722161825212236),
+UInt128(418217312949540, 6219777729460169788),
+UInt128(334573850359632, 4975822183568135831),
+UInt128(535318160575411, 11650664308450927653),
+UInt128(428254528460329, 5631182632018831799),
+UInt128(342603622768263, 8194294920356975762),
+UInt128(548165796429221, 9421523057829250896),
+UInt128(438532637143377, 3847869631521490394),
+UInt128(350826109714701, 14146342149442923285),
+UInt128(561321775543522, 15255449809624856609),
+UInt128(449057420434818, 4825662218216064641),
+UInt128(359245936347854, 11239227404056672359),
+UInt128(287396749078283, 12680730737987248210),
+UInt128(459834798525253, 16599820366037686814),
+UInt128(367867838820203, 2211809848604418481),
+UInt128(294294271056162, 9148145508367355431),
+UInt128(470870833689859, 18326381628129679013),
+UInt128(376696666951887, 18350454117245653534),
+UInt128(301357333561510, 7301665664312702181),
+UInt128(482171733698416, 11682665062900323489),
+UInt128(385737386958733, 5656783235578348468),
+UInt128(308589909566986, 11904124217946499421),
+UInt128(493743855307178, 11667901119230578427),
+UInt128(394995084245742, 16713018524868283388),
+UInt128(315996067396594, 5991717190410806064),
+UInt128(505593707834550, 16965445134141110349),
+UInt128(404474966267640, 13572356107312888279),
+UInt128(323579973014112, 10857884885850310623),
+UInt128(517727956822580, 2615220558392855705),
+UInt128(414182365458064, 2092176446714284564),
+UInt128(331345892366451, 5363089972113337974),
+UInt128(530153427786322, 1202246325897520112),
+UInt128(424122742229057, 12029843504943747059),
+UInt128(339298193783246, 2245177174471177001),
+UInt128(542877110053193, 14660329923379614171),
+UInt128(434301688042555, 660217494477960367),
+UInt128(347441350434044, 528173995582368294),
+UInt128(555906160694470, 8223776022415609917),
+UInt128(444724928555576, 6579020817932487933),
+UInt128(355779942844461, 1573867839604080023),
+UInt128(284623954275568, 16016489530650905311),
+UInt128(455398326840910, 3490290360589986559),
+UInt128(364318661472728, 2792232288471989247),
+UInt128(291454929178182, 9612483460261412044),
+UInt128(466327886685092, 622578277450617978),
+UInt128(373062309348073, 11566109066186225352),
+UInt128(298449847478458, 16631584882432800928),
+]
+
+private let bid_breakpoints_binary80_42: [UInt128] = [
+UInt128(477519755965534, 4474442923441019546),
+UInt128(382015804772427, 7268903153494725960),
+UInt128(305612643817941, 16883168967021511737),
+UInt128(488980230108707, 1187628644041046518),
+UInt128(391184184086965, 12018149359458568184),
+UInt128(312947347269572, 9614519487566854547),
+UInt128(500715755631316, 625835921139325982),
+UInt128(400572604505052, 15258063995879102079),
+UInt128(320458083604042, 4827753567219461016),
+UInt128(512732933766467, 11413754522293047950),
+UInt128(410186347013174, 1752305988350617713),
+UInt128(328149077610539, 5091193605422404494),
+UInt128(525038524176862, 15524607398159667837),
+UInt128(420030819341490, 5040988289043913623),
+UInt128(336024655473192, 4032790631235130898),
+UInt128(537639448757107, 10141813824718119760),
+UInt128(430111559005686, 734753430290675162),
+UInt128(344089247204548, 15345198003200181422),
+UInt128(550542795527278, 2416223916668828337),
+UInt128(440434236421822, 9311676762818883316),
+UInt128(352347389137458, 70643780771286006),
+UInt128(281877911309966, 7435212654100849451),
+UInt128(451004658095946, 4517642617077538476),
+UInt128(360803726476756, 18371509352629672073),
+UInt128(288642981181405, 11007858667361827335),
+UInt128(461828769890248, 17612573867778923737),
+UInt128(369463015912199, 3022012649997408020),
+UInt128(295570412729759, 6106958934739836739),
+UInt128(472912660367614, 17149831925067559429),
+UInt128(378330128294091, 17409214354795957866),
+UInt128(302664102635273, 10238022669094855970),
+UInt128(484262564216437, 12691487455809859229),
+UInt128(387410051373150, 2774492335164066736),
+UInt128(309928041098520, 2219593868131253389),
+UInt128(495884865757632, 3551350189010005423),
+UInt128(396707892606105, 13909126595433735308),
+UInt128(317366314084884, 11127301276346988246),
+UInt128(507786102535815, 6735635597929450224),
+UInt128(406228882028652, 5388508478343560179),
+UInt128(324983105622921, 15378853226900579113),
+UInt128(519972968996674, 17227467533557105935),
+UInt128(415978375197339, 17471322841587595071),
+UInt128(332782700157871, 17666407088011986380),
+UInt128(532452320252595, 2440809637625805945),
+UInt128(425961856202076, 1952647710100644756),
+UInt128(340769484961660, 16319513427048157098),
+UInt128(545231175938657, 7664477409567499741),
+UInt128(436184940750925, 17199628371879730762),
+UInt128(348947952600740, 13759702697503784610),
+UInt128(558316724161185, 3568780242296503760),
+]
+
+private let bid_breakpoints_binary80_43: [UInt128] = [
+UInt128(446653379328948, 2855024193837203008),
+UInt128(357322703463158, 9662716984553583052),
+UInt128(285858162770526, 15108871217126687088),
+UInt128(457373060432842, 16795496317918878695),
+UInt128(365898448346274, 6057699424851282309),
+UInt128(292718758677019, 8535508354622936171),
+UInt128(468350013883231, 2588766923170966904),
+UInt128(374680011106584, 16828408797504414816),
+UInt128(299744008885267, 17152075852745442176),
+UInt128(479590414216428, 12685926105425066189),
+UInt128(383672331373142, 17527438513823873597),
+UInt128(306937865098514, 6643253181575278231),
+UInt128(491100584157622, 18007902720004265817),
+UInt128(392880467326098, 7027624546519592007),
+UInt128(314304373860878, 13000797266699494252),
+UInt128(502886998177405, 17111926811977280480),
+UInt128(402309598541924, 13689541449581824384),
+UInt128(321847678833539, 14640981974407369830),
+UInt128(514956286133663, 12357524714826060759),
+UInt128(411965028906930, 17264717401344669253),
+UInt128(329572023125544, 13811773921075735403),
+UInt128(527315237000871, 11030791829495445675),
+UInt128(421852189600697, 5135284648854446217),
+UInt128(337481751680557, 15176274163309287943),
+UInt128(539970802688892, 9524643402327219416),
+UInt128(431976642151114, 241017092377954886),
+UInt128(345581313720891, 3882162488644274232),
+UInt128(552930101953425, 17279506426056569741),
+UInt128(442344081562740, 13823605140845255793),
+UInt128(353875265250192, 11058884112676204634),
+UInt128(283100212200154, 1468409660657143061),
+UInt128(452960339520246, 9728153086535249544),
+UInt128(362368271616197, 4093173654486289312),
+UInt128(289894617292957, 14342585367814762419),
+UInt128(463831387668732, 8190741329535978578),
+UInt128(371065110134985, 17620639507854513832),
+UInt128(296852088107988, 14096511606283611066),
+UInt128(474963340972782, 418325681602315766),
+UInt128(379970672778225, 11402706989507583582),
+UInt128(303976538222580, 9122165591606066866),
+UInt128(486362461156128, 14595464946569706985),
+UInt128(389089968924903, 608325513030034619),
+UInt128(311271975139922, 7865358039907848341),
+UInt128(498035160223875, 16273921678594467669),
+UInt128(398428128179100, 13019137342875574135),
+UInt128(318742502543280, 10415309874300459308),
+UInt128(509988004069248, 16664495798880734894),
+UInt128(407990403255399, 2263550194878856945),
+UInt128(326392322604319, 5500188970644995879),
+UInt128(522227716166910, 16178999982515814053),
+]
+
+private let bid_breakpoints_binary80_44: [UInt128] = [
+UInt128(417782172933528, 12943199986012651243),
+UInt128(334225738346822, 17733257618293941640),
+UInt128(534761181354916, 13615816930302665332),
+UInt128(427808945083933, 7203304729500221942),
+UInt128(342247156067146, 13141341413083998200),
+UInt128(547595449707434, 13647448631450576474),
+UInt128(438076359765947, 14607307719902371503),
+UInt128(350461087812758, 4307148546438076556),
+UInt128(560737740500413, 3202088859559012166),
+UInt128(448590192400330, 9940368717131030379),
+UInt128(358872153920264, 7952294973704824303),
+UInt128(287097723136211, 10051184793705769766),
+UInt128(459356357017938, 8703198040445410979),
+UInt128(367485085614350, 14341256061840149429),
+UInt128(293988068491480, 11473004849472119543),
+UInt128(470380909586368, 18356807759155391270),
+UInt128(376304727669095, 3617399763098582046),
+UInt128(301043782135276, 2893919810478865637),
+UInt128(481670051416441, 15698318140991915989),
+UInt128(385336041133153, 8869305698051622468),
+UInt128(308268832906522, 14474142187925118620),
+UInt128(493230132650436, 8401232241712548500),
+UInt128(394584106120349, 3031636978628128477),
+UInt128(315667284896279, 6114658397644413105),
+UInt128(505067655834046, 17162151065714881614),
+UInt128(404054124667237, 10040372037829994968),
+UInt128(323243299733790, 653600000780175328),
+UInt128(517189279574064, 1045760001248280525),
+UInt128(413751423659251, 4525956815740534743),
+UInt128(331001138927400, 18378160711560069087),
+UInt128(529601822283841, 10958313064786558924),
+UInt128(423681457827073, 5077301637087336816),
+UInt128(338945166261658, 11440538939153690099),
+UInt128(542312266018653, 14615513487903993835),
+UInt128(433849812814923, 624364346097464098),
+UInt128(347079850251938, 7878189106361791925),
+UInt128(555327760403101, 8915753755436956757),
+UInt128(444262208322481, 3443254189607655082),
+UInt128(355409766657984, 17511998610653765359),
+UInt128(284327813326387, 17698947703264922610),
+UInt128(454924501322220, 13560921066256234884),
+UInt128(363939601057776, 10848736853004987907),
+UInt128(291151680846221, 4989640667662080002),
+UInt128(465842689353954, 604727438775507357),
+UInt128(372674151483163, 4173130765762316209),
+UInt128(298139321186530, 10717202242093673613),
+UInt128(477022913898448, 17147523587349877782),
+UInt128(381618331118759, 2649972425654171256),
+UInt128(305294664895007, 5809326755265247328),
+UInt128(488471463832011, 12984271623166306048),
+]
+
+private let bid_breakpoints_binary80_45: [UInt128] = [
+UInt128(390777171065609, 6698068483791134515),
+UInt128(312621736852487, 9047803601774817935),
+UInt128(500194778963979, 18165834577581619020),
+UInt128(400155823171183, 18222016476807205539),
+UInt128(320124658536947, 3509566737220033461),
+UInt128(512199453659115, 9304655594293963862),
+UInt128(409759562927292, 7443724475435171089),
+UInt128(327807650341833, 17023026024573867841),
+UInt128(524492240546934, 5100748750866726606),
+UInt128(419593792437547, 7769947815435291608),
+UInt128(335675033950037, 17284004696573964256),
+UInt128(537080054320060, 12897012255550701517),
+UInt128(429664043456048, 10317609804440561214),
+UInt128(343731234764838, 15632785473036269617),
+UInt128(549969975623742, 2876363868406569449),
+UInt128(439975980498993, 13369137538950986528),
+UInt128(351980784399194, 18074007660644609869),
+UInt128(281584627519355, 18148554943257598218),
+UInt128(450535404030969, 10590943835502605534),
+UInt128(360428323224775, 12162103883143994750),
+UInt128(288342658579820, 9729683106515195800),
+UInt128(461348253727712, 15567492970424313280),
+UInt128(369078602982170, 5075296746855629978),
+UInt128(295262882385736, 4060237397484503982),
+UInt128(472420611817177, 17564426280200937341),
+UInt128(377936489453742, 6672843394676929226),
+UInt128(302349191562993, 16406321159967274351),
+UInt128(483758706500790, 4114020967496177022),
+UInt128(387006965200632, 3291216773996941618),
+UInt128(309605572160505, 13701019863423284264),
+UInt128(495368915456809, 3474887707767703206),
+UInt128(396295132365447, 6469258980956072888),
+UInt128(317036105892357, 16243453628990589280),
+UInt128(507257769427772, 11232130547417301555),
+UInt128(405806215542218, 1607006808450020598),
+UInt128(324644972433774, 8664303076243837124),
+UInt128(519431955894039, 2794838477764408430),
+UInt128(415545564715231, 5925219596953437067),
+UInt128(332436451772185, 1050826862820839330),
+UInt128(531898322835496, 1681322980513342929),
+UInt128(425518658268396, 16102453643378315636),
+UInt128(340414926614717, 9192614099960742185),
+UInt128(544663882583547, 18397531374679097820),
+UInt128(435731106066838, 7339327470259457609),
+UInt128(348584884853470, 13250159605691386734),
+UInt128(557735815765553, 2753511295396667158),
+UInt128(446188652612442, 9581506665801154373),
+UInt128(356950922089954, 286507703157102852),
+UInt128(285560737671963, 3918554977267592605),
+UInt128(456897180275141, 2580339148886237845),
+]
+
+private let bid_breakpoints_binary80_46: [UInt128] = [
+UInt128(365517744220112, 16821666578076631568),
+UInt128(292414195376090, 6078635632977484608),
+UInt128(467862712601744, 9725817012763975373),
+UInt128(374290170081395, 11470002424953090622),
+UInt128(299432136065116, 9176001939962472497),
+UInt128(479091417704186, 7302905474456135350),
+UInt128(383273134163349, 2152975564822997956),
+UInt128(306618507330679, 5411729266600308688),
+UInt128(490589611729086, 16037464456044314548),
+UInt128(392471689383269, 9140622750093541315),
+UInt128(313977351506615, 11001847014816743375),
+UInt128(502363762410584, 17602955223706789400),
+UInt128(401891009928467, 17771712993707341843),
+UInt128(321512807942774, 6838672765482052828),
+UInt128(514420492708438, 18320574054255105172),
+UInt128(411536394166751, 3588412799178353168),
+UInt128(329229115333400, 17628125498310323827),
+UInt128(526766584533441, 9758256723586966507),
+UInt128(421413267626753, 4117256564127662883),
+UInt128(337130614101402, 10672502880785950952),
+UInt128(539408982562244, 2318609350289880231),
+UInt128(431527186049795, 5544236294973814508),
+UInt128(345221748839836, 4435389035979051606),
+UInt128(552354798143737, 18164668901792213540),
+UInt128(441883838514990, 7153037491949950186),
+UInt128(353507070811992, 5722429993559960148),
+UInt128(282805656649593, 15645990439073699088),
+UInt128(452489050639350, 2897491814066456602),
+UInt128(361991240511480, 2317993451253165282),
+UInt128(289592992409184, 1854394761002532225),
+UInt128(463348787854694, 10345729247087872207),
+UInt128(370679030283755, 11965932212412208089),
+UInt128(296543224227004, 9572745769929766471),
+UInt128(474469158763207, 4248346787661895384),
+UInt128(379575327010565, 14466723874355247277),
+UInt128(303660261608452, 11573379099484197821),
+UInt128(485856418573524, 3760011300207075222),
+UInt128(388685134858819, 6697357854907570501),
+UInt128(310948107887055, 9047235098667966724),
+UInt128(497516972619288, 14475576157868746758),
+UInt128(398013578095431, 512414482069266437),
+UInt128(318410862476344, 15167326844623054442),
+UInt128(509457379962151, 13199676507171156138),
+UInt128(407565903969721, 6870392390995014587),
+UInt128(326052723175777, 1806965098054101346),
+UInt128(521684357081243, 6580492971628472478),
+UInt128(417347485664994, 12643092006786598628),
+UInt128(333877988531995, 13803822420171189226),
+UInt128(534204781651193, 3639371798564351146),
+UInt128(427363825320954, 10290195068335301563),
+]
+
+private let bid_breakpoints_binary80_47: [UInt128] = [
+UInt128(341891060256763, 11921504869410151573),
+UInt128(547025696410821, 15385058976314332194),
+UInt128(437620557128657, 8618698366309555432),
+UInt128(350096445702925, 17963005137273375315),
+UInt128(560154313124681, 10294064145927848889),
+UInt128(448123450499745, 4545902502000368788),
+UInt128(358498760399796, 3636722001600295030),
+UInt128(286799008319836, 17666772860247877317),
+UInt128(458878413311739, 2441394873203231445),
+UInt128(367102730649391, 5642464713304495479),
+UInt128(293682184519513, 824622955901686060),
+UInt128(469891495231220, 16076791988410338989),
+UInt128(375913196184976, 12861433590728271191),
+UInt128(300730556947981, 6599798057840706629),
+UInt128(481168891116770, 3180979263061309961),
+UInt128(384935112893416, 2544783410449047969),
+UInt128(307948090314732, 16793221987326879668),
+UInt128(492716944503572, 12111759920755366176),
+UInt128(394173555602858, 2310710307120472294),
+UInt128(315338844482286, 9227265875180198482),
+UInt128(504542151171658, 7384927770804496924),
+UInt128(403633720937326, 13286639846127418186),
+UInt128(322906976749861, 6939963062160024225),
+UInt128(516651162799778, 3725243269972218115),
+UInt128(413320930239822, 10358892245461595138),
+UInt128(330656744191858, 908416166885455464),
+UInt128(529050790706972, 16210861125984370035),
+UInt128(423240632565578, 5589991271303675382),
+UInt128(338592506052462, 11850690646526760952),
+UInt128(541748009683940, 4203709775475176230),
+UInt128(433398407747152, 3362967820380140984),
+UInt128(346718726197721, 13758420700529843757),
+UInt128(554749961916354, 14634775491363929365),
+UInt128(443799969533083, 15397169207833053815),
+UInt128(355039975626467, 1249688922040712082),
+UInt128(284031980501173, 12067797581858300635),
+UInt128(454451168801877, 15619127316231370693),
+UInt128(363560935041502, 5116604223501275908),
+UInt128(290848748033201, 15161329823026751696),
+UInt128(465357996853122, 16879430087358982068),
+UInt128(372286397482498, 6124846440403365008),
+UInt128(297829117985998, 12278574781806512652),
+UInt128(476526588777597, 15956370836148509921),
+UInt128(381221271022078, 5386399039434987290),
+UInt128(304977016817662, 11687816861031810479),
+UInt128(487963226908260, 3943111718683255473),
+UInt128(390370581526608, 3154489374946604378),
+UInt128(312296465221286, 9902289129441104149),
+UInt128(499674344354058, 8464964977621945992),
+UInt128(399739475483246, 14150669611581377440),
+]
+
+private let bid_breakpoints_binary80_48: [UInt128] = [
+UInt128(319791580386597, 7631186874523191629),
+UInt128(511666528618555, 15899247813979016930),
+UInt128(409333222894844, 12719398251183213544),
+UInt128(327466578315875, 13864867415688481158),
+UInt128(523946525305401, 3737043791392018237),
+UInt128(419157220244320, 17747030292081255882),
+UInt128(335325776195456, 14197624233665004706),
+UInt128(536521241912730, 15337501144380186883),
+UInt128(429216993530184, 12270000915504149506),
+UInt128(343373594824147, 13505349547145229928),
+UInt128(549397751718636, 6851164016464726593),
+UInt128(439518201374909, 1791582398429870951),
+UInt128(351614561099927, 5122614733485807084),
+UInt128(562583297759883, 11885532388319201658),
+UInt128(450066638207906, 16887123540139181972),
+UInt128(360053310566325, 9820350017369435255),
+UInt128(288042648453060, 7856280013895548204),
+UInt128(460868237524896, 12570048022232877126),
+UInt128(368694590019917, 6366689603044391378),
+UInt128(294955672015933, 16161398126661244072),
+UInt128(471929075225494, 3722144114206528576),
+UInt128(377543260180395, 6667064106107133184),
+UInt128(302034608144316, 5333651284885706547),
+UInt128(483255373030906, 1155144426333309829),
+UInt128(386604298424724, 15681510800034289156),
+UInt128(309283438739779, 16234557454769341648),
+UInt128(494853501983647, 14907245483405215667),
+UInt128(395882801586918, 4547098757240351887),
+UInt128(316706241269534, 11016376635276102156),
+UInt128(506729986031255, 6558156172216032480),
+UInt128(405383988825004, 5246524937772825984),
+UInt128(324307191060003, 7886568764960171110),
+UInt128(518891505696005, 8929161209194363454),
+UInt128(415113204556804, 7143328967355490763),
+UInt128(332090563645443, 9404011988626302933),
+UInt128(531344901832709, 11357070367060174370),
+UInt128(425075921466167, 12775005108390049819),
+UInt128(340060737172934, 2841306457228219209),
+UInt128(544097179476694, 11924787961048971381),
+UInt128(435277743581355, 13229179183581087428),
+UInt128(348222194865084, 10583343346864869942),
+UInt128(557155511784135, 5865302910758060938),
+UInt128(445724409427308, 4692242328606448751),
+UInt128(356579527541846, 11132491492368979647),
+UInt128(285263622033477, 5216644379153273394),
+UInt128(456421795253563, 12035979821387147754),
+UInt128(365137436202850, 17007481486593538850),
+UInt128(292109948962280, 13605985189274831080),
+UInt128(467375918339649, 3322832229130178112),
+UInt128(373900734671719, 6347614598046052812),
+]
+
+private let bid_breakpoints_binary80_49: [UInt128] = [
+UInt128(299120587737375, 8767440493178752573),
+UInt128(478592940379800, 14027904789086004117),
+UInt128(382874352303840, 11222323831268803294),
+UInt128(306299481843072, 8977859065015042635),
+UInt128(490079170948915, 18053923318765978539),
+UInt128(392063336759132, 14443138655012782831),
+UInt128(313650669407306, 4175813294526405618),
+UInt128(501841071051689, 17749347715467979959),
+UInt128(401472856841351, 17888826987116294291),
+UInt128(321178285473081, 10621712774951125109),
+UInt128(513885256756930, 9616042810437979529),
+UInt128(411108205405544, 7692834248350383623),
+UInt128(328886564324435, 9843616213422217221),
+UInt128(526218502919096, 15749785941475547554),
+UInt128(420974802335277, 8910479938438527720),
+UInt128(336779841868221, 18196430394976553146),
+UInt128(538847746989155, 3288846928769112771),
+UInt128(431078197591324, 2631077543015290217),
+UInt128(344862558073059, 5794210849154142496),
+UInt128(551780092916894, 16649434988130448641),
+UInt128(441424074333515, 17008896805246269236),
+UInt128(353139259466812, 13607117444197015389),
+UInt128(282511407573450, 3506996325873791664),
+UInt128(452018252117520, 5611194121398066663),
+UInt128(361614601694016, 4488955297118453331),
+UInt128(289291681355212, 18348559496662403957),
+UInt128(462866690168340, 14600299935692205039),
+UInt128(370293352134672, 11680239948553764031),
+UInt128(296234681707738, 1965494329359190578),
+UInt128(473975490732380, 17902186185942346219),
+UInt128(379180392585904, 14321748948753876975),
+UInt128(303344314068723, 15146747973745011903),
+UInt128(485350902509958, 2098703869540557106),
+UInt128(388280722007966, 9057660725116266331),
+UInt128(310624577606373, 3556779765351102741),
+UInt128(496999324170197, 2001498809819854063),
+UInt128(397599459336157, 12669245492081614220),
+UInt128(318079567468926, 2756698764181470730),
+UInt128(508927307950281, 15478764466916084137),
+UInt128(407141846360225, 8693662758790956987),
+UInt128(325713477088180, 6954930207032765589),
+UInt128(521141563341088, 11127888331252424943),
+UInt128(416913250672870, 16281008294485760601),
+UInt128(333530600538296, 13024806635588608480),
+UInt128(533648960861274, 13460992987457952923),
+UInt128(426919168689019, 14458143204708272661),
+UInt128(341535334951215, 15255863378508528452),
+UInt128(546456535921945, 5962637331904093908),
+UInt128(437165228737556, 4770109865523275126),
+UInt128(349732182990045, 126739077676709777),
+]
+
+private let bid_breakpoints_binary80_50: [UInt128] = [
+UInt128(559571492784072, 202782524282735644),
+UInt128(447657194227257, 11230272463651919485),
+UInt128(358125755381806, 1605520341437714941),
+UInt128(286500604305444, 16041811532117813246),
+UInt128(458400966888711, 14598852007162770224),
+UInt128(366720773510969, 7989732790988305856),
+UInt128(293376618808775, 10081135047532555008),
+UInt128(469402590094040, 16129816076052088013),
+UInt128(375522072075232, 12903852860841670410),
+UInt128(300417657660186, 2944384659189515682),
+UInt128(480668252256297, 15779061898928956060),
+UInt128(384534601805038, 5244551889659344202),
+UInt128(307627681444030, 11574339141211296008),
+UInt128(492204290310449, 72198552228521997),
+UInt128(393763432248359, 3747107656524727921),
+UInt128(315010745798687, 6687034939961692660),
+UInt128(504017193277899, 14388604718680618579),
+UInt128(403213754622319, 15200232589686405186),
+UInt128(322571003697855, 15849534886491034472),
+UInt128(516113605916569, 6912511744676103539),
+UInt128(412890884733255, 9219358210482793155),
+UInt128(330312707786604, 7375486568386234524),
+UInt128(528500332458567, 732732065192244269),
+UInt128(422800265966853, 11654232096379526384),
+UInt128(338240212773482, 16702083306587441754),
+UInt128(541184340437572, 11965938031572265514),
+UInt128(432947472350058, 2194052795773991764),
+UInt128(346357977880046, 9133939866103014058),
+UInt128(554172764608074, 7235606156281001846),
+UInt128(443338211686459, 9477833739766711800),
+UInt128(354670569349167, 11271615806555279763),
+UInt128(283736455479334, 1638595015760403164),
+UInt128(453978328766934, 10000449654700465709),
+UInt128(363182663013547, 11689708538502282890),
+UInt128(290546130410838, 1973069201318005666),
+UInt128(464873808657340, 17914305981076450358),
+UInt128(371899046925872, 14331444784861160287),
+UInt128(297519237540698, 4086458198405107583),
+UInt128(476030780065117, 2848984302706261810),
+UInt128(380824624052093, 13347233886390740417),
+UInt128(304659699241674, 18056484738596412980),
+UInt128(487455518786679, 17822329137528529799),
+UInt128(389964415029343, 17947212124764734162),
+UInt128(311971532023475, 3289723255586056360),
+UInt128(499154451237560, 5263557208937690176),
+UInt128(399323560990048, 4210845767150152141),
+UInt128(319458848792038, 10747374243203942359),
+UInt128(511134158067261, 13506449974384397452),
+UInt128(408907326453809, 7115811164765607638),
+UInt128(327125861163047, 9381997746554396434),
+]
+
+private let bid_breakpoints_binary80_51: [UInt128] = [
+UInt128(523401377860876, 253801135519393001),
+UInt128(418721102288700, 14960436167383155694),
+UInt128(334976881830960, 11968348933906524555),
+UInt128(535963010929537, 702614220540887672),
+UInt128(428770408743629, 11630137820658441107),
+UInt128(343016326994903, 12993459071268663209),
+UInt128(548826123191845, 17100185699287950811),
+UInt128(439060898553476, 13680148559430360649),
+UInt128(351248718842781, 7254770032802378196),
+UInt128(561997950148450, 4228934422999984467),
+UInt128(449598360118760, 3383147538399987574),
+UInt128(359678688095008, 2706518030719990059),
+UInt128(287742950476006, 9543912054059812693),
+UInt128(460388720761610, 7891561657011879663),
+UInt128(368310976609288, 6313249325609503730),
+UInt128(294648781287430, 12429297089971423631),
+UInt128(471438050059889, 1440131270244726193),
+UInt128(377150440047911, 4841453830937691278),
+UInt128(301720352038329, 183814250008242699),
+UInt128(482752563261326, 7672800429497008965),
+UInt128(386202050609061, 2448891528855696849),
+UInt128(308961640487248, 16716508482052198772),
+UInt128(494338624779598, 4610320682832056096),
+UInt128(395470899823678, 11066954175749465523),
+UInt128(316376719858942, 16232260970083393065),
+UInt128(506202751774308, 11214222293165787611),
+UInt128(404962201419446, 16350075464016450735),
+UInt128(323969761135557, 9390711556471250265),
+UInt128(518351617816892, 267743231386359131),
+UInt128(414681294253513, 11282241029334818274),
+UInt128(331745035402810, 16404490452951675266),
+UInt128(530792056644497, 7800440651013128809),
+UInt128(424633645315597, 17308398965036234017),
+UInt128(339706916252478, 6468021542545166567),
+UInt128(543531066003965, 6659485653330356185),
+UInt128(434824852803172, 5327588522664284948),
+UInt128(347859882242537, 15330117262357158928),
+UInt128(556575811588060, 9770792360803812992),
+UInt128(445260649270448, 7816633888643050393),
+UInt128(356208519416358, 13632004740398260961),
+UInt128(284966815533086, 18284301421802429415),
+UInt128(455946904852939, 3429440571690514802),
+UInt128(364757523882351, 6432901272094322165),
+UInt128(291806019105881, 1456972202933547408),
+UInt128(466889630569409, 13399201968919406823),
+UInt128(373511704455527, 14408710389877435782),
+UInt128(298809363564422, 4148270682418127979),
+UInt128(478094981703075, 10326581906610915090),
+UInt128(382475985362460, 8261265525288732072),
+UInt128(305980788289968, 6609012420230985657),
+]
+
+private let bid_breakpoints_binary80_52: [UInt128] = [
+UInt128(489569261263949, 6885071057627666729),
+UInt128(391655409011159, 9197405660844043706),
+UInt128(313324327208927, 11047273343417145288),
+UInt128(501318923534284, 2918242090499791168),
+UInt128(401055138827427, 6023942487141743258),
+UInt128(320844111061941, 15887200433939125576),
+UInt128(513350577699106, 18040823064818780275),
+UInt128(410680462159285, 10743309637113113897),
+UInt128(328544369727428, 8594647709690491117),
+UInt128(525670991563885, 10062087520762875465),
+UInt128(420536793251108, 8049670016610300372),
+UInt128(336429434600886, 13818433642772060944),
+UInt128(538287095361418, 14730796198951476864),
+UInt128(430629676289135, 716590514935450521),
+UInt128(344503741031308, 573272411948360417),
+UInt128(551205985650092, 15674631118085017960),
+UInt128(440964788520074, 5161007264984193722),
+UInt128(352771830816059, 7818154626729265300),
+UInt128(282217464652847, 9943872516125322563),
+UInt128(451547943444556, 1152800766832874809),
+UInt128(361238354755644, 15679635872433941140),
+UInt128(288990683804515, 16233057512689063235),
+UInt128(462385094087225, 7526147946592949560),
+UInt128(369908075269780, 6020918357274359648),
+UInt128(295926460215824, 4816734685819487718),
+UInt128(473482336345318, 15085473126795000996),
+UInt128(378785869076255, 1000332057210269827),
+UInt128(303028695261004, 800265645768215862),
+UInt128(484845912417606, 8659122662712966025),
+UInt128(387876729934085, 3237949315428462497),
+UInt128(310301383947268, 2590359452342769997),
+UInt128(496482214315629, 455226309006521673),
+UInt128(397185771452503, 4053529861947127662),
+UInt128(317748617162002, 10621521519041522776),
+UInt128(508397787459204, 2237039171498795148),
+UInt128(406718229967363, 5478980151940946442),
+UInt128(325374583973890, 11761881751036577800),
+UInt128(520599334358225, 372266727948972864),
+UInt128(416479467486580, 297813382359178291),
+UInt128(333183573989264, 238250705887342633),
+UInt128(533093718382822, 7759898758903568859),
+UInt128(426474974706257, 17275965451348586057),
+UInt128(341179979765006, 6442074731595048199),
+UInt128(545887967624010, 2928621941068256472),
+UInt128(436710374099208, 2342897552854605178),
+UInt128(349368299279366, 9253015671767504788),
+UInt128(558989278846986, 7426127445344187015),
+UInt128(447191423077589, 2251553141533439289),
+UInt128(357753138462071, 5490591327968661754),
+UInt128(286202510769657, 703124247633019080),
+]
+
+private let bid_breakpoints_binary80_53: [UInt128] = [
+UInt128(457924017231451, 4814347610954740852),
+UInt128(366339213785161, 162129274021882358),
+UInt128(293071371028128, 14887098678185147179),
+UInt128(468914193645006, 1683264996644773548),
+UInt128(375131354916004, 16104007256283460131),
+UInt128(300105083932803, 16572554619768678428),
+UInt128(480168134292486, 4379994503178423545),
+UInt128(384134507433988, 18261390861510380129),
+UInt128(307307605947191, 3541066244982573134),
+UInt128(491692169515505, 16733752436197847984),
+UInt128(393353735612404, 13387001948958278387),
+UInt128(314682988489923, 14398950373908533033),
+UInt128(503492781583878, 902227709802190913),
+UInt128(402794225267102, 8100479797325573377),
+UInt128(322235380213681, 17548430282086189671),
+UInt128(515576608341891, 2252046748144531211),
+UInt128(412461286673512, 16559032657483266262),
+UInt128(329969029338810, 5868528496502792363),
+UInt128(527950446942096, 9389645594404467781),
+UInt128(422360357553677, 3822367660781663902),
+UInt128(337888286042941, 14125940572851062091),
+UInt128(540621257668706, 15222807287077878699),
+UInt128(432497006134965, 8488897014920392636),
+UInt128(345997604907972, 6791117611936314109),
+UInt128(553596167852755, 14555136993840012897),
+UInt128(442876934282204, 11644109595072010318),
+UInt128(354301547425763, 13004636490799518577),
+UInt128(283441237940610, 17782406822123435508),
+UInt128(453505980704977, 10005106841687945197),
+UInt128(362804784563982, 625387843866535511),
+UInt128(290243827651185, 11568356719318959379),
+UInt128(464390124241897, 62626677200783390),
+UInt128(371512099393517, 11118147785986357682),
+UInt128(297209679514814, 1515820599305265499),
+UInt128(475535487223702, 9804010588372245445),
+UInt128(380428389778962, 464510841213975709),
+UInt128(304342711823169, 11439655117196911537),
+UInt128(486948338917071, 7235401743289327490),
+UInt128(389558671133657, 2098972579889551669),
+UInt128(311646936906925, 12747224508137372304),
+UInt128(498635099051081, 1948815139310244071),
+UInt128(398908079240864, 16316447370415836550),
+UInt128(319126463392691, 16742506711074579563),
+UInt128(510602341428307, 962569034525955038),
+UInt128(408481873142645, 11838101671846495000),
+UInt128(326785498514116, 9470481337477196000),
+UInt128(522856797622586, 7774072510479692954),
+UInt128(418285438098069, 2529909193641844040),
+UInt128(334628350478455, 5713276169655385555),
+UInt128(535405360765528, 9141241871448616888),
+]
+
+private let bid_breakpoints_binary80_54: [UInt128] = [
+UInt128(428324288612422, 14691691126642714157),
+UInt128(342659430889938, 4374655271830350679),
+UInt128(548255089423901, 3310099620186650764),
+UInt128(438604071539120, 17405474955116961904),
+UInt128(350883257231296, 13924379964093569523),
+UInt128(561413211570074, 14900310313065890590),
+UInt128(449130569256059, 15609597065194622795),
+UInt128(359304455404847, 16177026466897608559),
+UInt128(287443564323878, 5562923544034266201),
+UInt128(459909702918205, 5211328855712915599),
+UInt128(367927762334564, 4169063084570332479),
+UInt128(294342209867651, 7024599282398176306),
+UInt128(470947535788242, 3860661222353261444),
+UInt128(376758028630593, 14156575422108340125),
+UInt128(301406422904475, 257213893460941130),
+UInt128(482250276647160, 411542229537505808),
+UInt128(385800221317728, 329233783630004647),
+UInt128(308640177054182, 7642084656387824364),
+UInt128(493824283286691, 15916684264962429305),
+UInt128(395059426629353, 9043998597228033121),
+UInt128(316047541303482, 14613896507266247143),
+UInt128(505676066085572, 8624839152658354136),
+UInt128(404540852868457, 17967917766352414278),
+UInt128(323632682294766, 6995636583598110776),
+UInt128(517812291671626, 3814320904273156596),
+UInt128(414249833337300, 17808851982386166569),
+UInt128(331399866669840, 14247081585908933255),
+UInt128(530239786671745, 4348586463744741593),
+UInt128(424191829337396, 3478869170995793274),
+UInt128(339353463469916, 17540490595764275912),
+UInt128(542965541551867, 2239343250029469197),
+UInt128(434372433241493, 12859521044249306327),
+UInt128(347497946593194, 17666314464883265708),
+UInt128(555996714549111, 17198056699587494164),
+UInt128(444797371639289, 10069096544928085008),
+UInt128(355837897311431, 11744626050684378329),
+UInt128(284670317849145, 5706352025805592340),
+UInt128(455472508558632, 9130163241288947745),
+UInt128(364378006846905, 18372177037256889165),
+UInt128(291502405477524, 14697741629805511332),
+UInt128(466403848764039, 12448340163463087162),
+UInt128(373123079011231, 13648020945512380053),
+UInt128(298498463208985, 7229067941667993719),
+UInt128(477597541134376, 11566508706668789950),
+UInt128(382078032907501, 5563858150593121637),
+UInt128(305662426326001, 761737705732586986),
+UInt128(489059882121601, 12286826773397870148),
+UInt128(391247905697281, 6140112603976385795),
+UInt128(312998324557825, 1222741268439198313),
+UInt128(500797319292520, 1956386029502717301),
+]
+
+private let bid_breakpoints_binary80_55: [UInt128] = [
+UInt128(400637855434016, 1565108823602173840),
+UInt128(320510284347212, 16009482317849380365),
+UInt128(512816454955540, 10857776449591367292),
+UInt128(410253163964432, 8686221159673093833),
+UInt128(328202531171545, 18017023371964206036),
+UInt128(525124049874473, 10380493321433178042),
+UInt128(420099239899578, 15683092286630363080),
+UInt128(336079391919663, 1478427385078559494),
+UInt128(537727027071460, 17122879075093336484),
+UInt128(430181621657168, 13698303260074669187),
+UInt128(344145297325734, 18337340237543555996),
+UInt128(550632475721175, 18271697935843958624),
+UInt128(440505980576940, 14617358348675166899),
+UInt128(352404784461552, 11693886678940133519),
+UInt128(281923827569242, 1976411713668286169),
+UInt128(451078124110787, 6851607556611168194),
+UInt128(360862499288629, 16549332489514665525),
+UInt128(288689999430903, 16928814806353642743),
+UInt128(461903999089446, 4950010801714366449),
+UInt128(369523199271557, 270659826629582836),
+UInt128(295618559417245, 11284574305529397238),
+UInt128(472989695067592, 18055318888847035582),
+UInt128(378391756054074, 7065557481593807819),
+UInt128(302713404843259, 9341794800016956578),
+UInt128(484341447749215, 3878825235801399556),
+UInt128(387473158199372, 3103060188641119645),
+UInt128(309978526559497, 13550494595138626685),
+UInt128(495965642495196, 6923396093254161404),
+UInt128(396772513996157, 1849368059861418800),
+UInt128(317418011196925, 12547540892114866009),
+UInt128(507868817915081, 1629321353674233999),
+UInt128(406295054332064, 16060852341907028492),
+UInt128(325036043465651, 16538030688267533117),
+UInt128(520057669545043, 635407398034680725),
+UInt128(416046135636034, 7887023547911565226),
+UInt128(332836908508827, 9998967653071162504),
+UInt128(532539053614124, 1240952985946218714),
+UInt128(426031242891299, 4682111203498885294),
+UInt128(340824994313039, 7435037777541018558),
+UInt128(545319990900863, 828013999839898724),
+UInt128(436255992720690, 8041108829355739626),
+UInt128(349004794176552, 6432887063484591700),
+UInt128(558407670682483, 13981968116317257044),
+UInt128(446726136545987, 117528048828074666),
+UInt128(357380909236789, 11162068883288190702),
+UInt128(285904727389431, 12619003921372462885),
+UInt128(457447563823090, 12811708644712119969),
+UInt128(365958051058472, 10249366915769695975),
+UInt128(292766440846778, 820795903131936134),
+UInt128(468426305354844, 16070668703978739107),
+]
+
+private let bid_breakpoints_binary80_56: [UInt128] = [
+UInt128(374741044283875, 16545883777924901609),
+UInt128(299792835427100, 13236707022339921287),
+UInt128(479668536683361, 2731987162034322444),
+UInt128(383734829346688, 16942984988595099248),
+UInt128(306987863477351, 2486341546650348428),
+UInt128(491180581563761, 15046192918866288455),
+UInt128(392944465251009, 8347605520351120441),
+UInt128(314355572200807, 10367433231022806676),
+UInt128(502968915521292, 1830497910668849389),
+UInt128(402375132417033, 12532444772760810481),
+UInt128(321900105933626, 17404653447692469031),
+UInt128(515040169493803, 2022003813114578187),
+UInt128(412032135595042, 8996300679975483196),
+UInt128(329625708476033, 18265086988206117526),
+UInt128(527401133561654, 7088046292678326103),
+UInt128(421920906849323, 9359785848884571206),
+UInt128(337536725479458, 14866526308591477611),
+UInt128(540058760767134, 1650349205294902238),
+UInt128(432047008613707, 5009628178977832114),
+UInt128(345637606890965, 15075748987407996661),
+UInt128(553020171025545, 5674454306143243041),
+UInt128(442416136820436, 4539563444914594433),
+UInt128(353932909456348, 18389046014899316839),
+UInt128(283146327565079, 3643190367693722501),
+UInt128(453034124104126, 13207802217793776649),
+UInt128(362427299283301, 6876892959493110996),
+UInt128(289941839426641, 1812165552852578473),
+UInt128(463906943082625, 13967511328789856527),
+UInt128(371125554466100, 11174009063031885222),
+UInt128(296900443572880, 8939207250425508177),
+UInt128(475040709716608, 14302731600680813084),
+UInt128(380032567773287, 374138836318919498),
+UInt128(304026054218629, 11367357513280866568),
+UInt128(486441686749807, 7119725577023655539),
+UInt128(389153349399845, 16763826905844655401),
+UInt128(311322679519876, 13411061524675724320),
+UInt128(498116287231802, 14079000809997338266),
+UInt128(398493029785442, 3884503018514049967),
+UInt128(318794423828353, 14175648859036970943),
+UInt128(510071078125366, 544945286007691570),
+UInt128(408056862500292, 15193351487773794548),
+UInt128(326445490000234, 4775983560735214992),
+UInt128(522312784000374, 15020271326660164634),
+UInt128(417850227200299, 15705565876070042031),
+UInt128(334280181760239, 16253801515597943948),
+UInt128(534848290816383, 14938035980730979347),
+UInt128(427878632653107, 882382340359052508),
+UInt128(342302906122485, 11773952316512972976),
+UInt128(547684649795977, 391579632711205145),
+UInt128(438147719836781, 11381310150394695086),
+]
+
+private let bid_breakpoints_binary80_57: [UInt128] = [
+UInt128(350518175869425, 5415699305573845745),
+UInt128(560829081391080, 8665118888918153193),
+UInt128(448663265112864, 6932095111134522554),
+UInt128(358930612090291, 9235024903649528366),
+UInt128(287144489672233, 3698671108177712370),
+UInt128(459431183475573, 2228524958342429469),
+UInt128(367544946780458, 9161517596157764221),
+UInt128(294035957424366, 14707911706410032023),
+UInt128(470457531878986, 16153961100772230591),
+UInt128(376366025503189, 9233820065875874150),
+UInt128(301092820402551, 11076404867442609643),
+UInt128(481748512644082, 10343550158424354783),
+UInt128(385398810115266, 896142497255663180),
+UInt128(308319048092212, 15474309256772171836),
+UInt128(493310476947540, 10001499551867833646),
+UInt128(394648381558032, 8001199641494266916),
+UInt128(315718705246425, 17469006157421144503),
+UInt128(505149928394281, 9503665778164279588),
+UInt128(404119942715425, 3913583807789513347),
+UInt128(323295954172340, 3130867046231610678),
+UInt128(517273526675744, 5009387273970577085),
+UInt128(413818821340595, 7696858633918371991),
+UInt128(331055057072476, 6157486907134697593),
+UInt128(529688091315962, 2473281421931695502),
+UInt128(423750473052769, 13046671581771087371),
+UInt128(339000378442215, 14126686080158780220),
+UInt128(542400605507545, 4155953654544496737),
+UInt128(433920484406036, 3324762923635597389),
+UInt128(347136387524828, 17417205597876119204),
+UInt128(555418220039726, 5731436068150328788),
+UInt128(444334576031781, 895800039778352707),
+UInt128(355467660825424, 15474035290790323458),
+UInt128(284374128660339, 16068577047374169090),
+UInt128(454998605856543, 14641676831572939574),
+UInt128(363998884685235, 645295021032620689),
+UInt128(291199107748188, 516236016826096551),
+UInt128(465918572397100, 15583372885889395775),
+UInt128(372734857917680, 12466698308711516620),
+UInt128(298187886334144, 9973358646969213296),
+UInt128(477100618134631, 4889327390925010305),
+UInt128(381680494507705, 222113097998097920),
+UInt128(305344395606164, 177690478398478336),
+UInt128(488551032969862, 7663002394921385985),
+UInt128(390840826375889, 17198448360162839757),
+UInt128(312672661100711, 17448107502872182129),
+UInt128(500276257761139, 2091530301402119144),
+UInt128(400221006208911, 5362573055863605638),
+UInt128(320176804967129, 600709629948974187),
+UInt128(512282887947406, 8339833037402179346),
+UInt128(409826310357925, 2982517615179833154),
+]
+
+private let bid_breakpoints_binary80_58: [UInt128] = [
+UInt128(327861048286340, 2386014092143866523),
+UInt128(524577677258144, 3817622547430186437),
+UInt128(419662141806515, 6743446852686059473),
+UInt128(335729713445212, 5394757482148847578),
+UInt128(537167541512339, 12320960786180066448),
+UInt128(429734033209871, 13546117443685963482),
+UInt128(343787226567897, 7147545140206860462),
+UInt128(550059562508635, 15125421039072887063),
+UInt128(440047650006908, 12100336831258309650),
+UInt128(352038120005526, 17058967094490468367),
+UInt128(281630496004421, 9957824860850464370),
+UInt128(450608793607074, 8553822147876922346),
+UInt128(360487034885659, 10532406533043448200),
+UInt128(288389627908527, 12115274041176668883),
+UInt128(461423404653644, 4627043206915028920),
+UInt128(369138723722915, 7390983380273933459),
+UInt128(295310978978332, 5912786704219146767),
+UInt128(472497566365331, 13149807541492545151),
+UInt128(377998053092265, 6830497218452125798),
+UInt128(302398442473812, 5464397774761700638),
+UInt128(483837507958099, 12432385254360631344),
+UInt128(387070006366479, 13635257018230415399),
+UInt128(309656005093183, 14597554429326242642),
+UInt128(495449608149094, 1219994198470526288),
+UInt128(396359686519275, 4665344173518331354),
+UInt128(317087749215420, 3732275338814665083),
+UInt128(507340398744672, 5971640542103464133),
+UInt128(405872318995737, 15845358877908502276),
+UInt128(324697855196590, 5297589472842981174),
+UInt128(519516568314544, 8476143156548769879),
+UInt128(415613254651635, 10470263339980926226),
+UInt128(332490603721308, 8376210671984740981),
+UInt128(531984965954093, 9712588260433675246),
+UInt128(425587972763274, 15148768237830760843),
+UInt128(340470378210619, 15808363405006518998),
+UInt128(544752605136991, 14225335003784699427),
+UInt128(435802084109593, 7690919188285849219),
+UInt128(348641667287674, 13531432980112500021),
+UInt128(557826667660279, 10582246323954269064),
+UInt128(446261334128223, 12155145873905325575),
+UInt128(357009067302578, 17102814328608081106),
+UInt128(285607253842063, 2614205018660733915),
+UInt128(456971606147301, 493379215115263941),
+UInt128(365577284917840, 15152098631059852446),
+UInt128(292461827934272, 12121678904847881957),
+UInt128(467938924694836, 4637290988788969838),
+UInt128(374351139755869, 20483976289265547),
+UInt128(299480911804695, 3705735995773322761),
+UInt128(479169458887512, 5929177593237316417),
+UInt128(383335567110009, 15811388518815584103),
+]
+
+private let bid_breakpoints_binary80_59: [UInt128] = [
+UInt128(306668453688007, 16338459629794377606),
+UInt128(490669525900812, 11384140148703362877),
+UInt128(392535620720650, 1728614489478869655),
+UInt128(314028496576520, 1382891591583095724),
+UInt128(502445594522432, 2212626546532953159),
+UInt128(401956475617945, 12838147681452093496),
+UInt128(321565180494356, 10270518145161674797),
+UInt128(514504288790970, 9054131402774859029),
+UInt128(411603431032776, 7243305122219887223),
+UInt128(329282744826221, 2105295283033999455),
+UInt128(526852391721953, 14436518897080130098),
+UInt128(421481913377563, 481168673438373109),
+UInt128(337185530702050, 7763632568234519133),
+UInt128(539496849123280, 12421812109175230614),
+UInt128(431597479298624, 9937449687340184491),
+UInt128(345277983438899, 11639308564614057916),
+UInt128(552444773502239, 7554847259156761696),
+UInt128(441955818801791, 9733226622067319680),
+UInt128(353564655041433, 4097232482911945421),
+UInt128(282851724033146, 10656483615813376983),
+UInt128(452562758453034, 9671676155817582526),
+UInt128(362050206762427, 11426689739395976344),
+UInt128(289640165409942, 1762654162032960429),
+UInt128(463424264655907, 6509595473994647010),
+UInt128(370739411724725, 16275722823421448577),
+UInt128(296591529379780, 13020578258737158862),
+UInt128(474546447007649, 2386181140269902563),
+UInt128(379637157606119, 5598293726957832374),
+UInt128(303709726084895, 8167983796308176222),
+UInt128(485935561735832, 13068774074093081955),
+UInt128(388748449388666, 3076321629790644918),
+UInt128(310998759510932, 17218452562800157227),
+UInt128(497598015217492, 12792128841512610271),
+UInt128(398078412173994, 2855005443726267570),
+UInt128(318462729739195, 5973353169722924379),
+UInt128(509540367582712, 9557365071556679007),
+UInt128(407632294066170, 267194427761522559),
+UInt128(326105835252936, 213755542209218047),
+UInt128(521769336404697, 11410055311760479845),
+UInt128(417415469123758, 1749346619924563230),
+UInt128(333932375299006, 8778174925423471230),
+UInt128(534291800478410, 6666382251193733322),
+UInt128(427433440382728, 5333105800954986657),
+UInt128(341946752306182, 11645182270247809972),
+UInt128(547114803689892, 3874896373428854663),
+UInt128(437691842951913, 14167963542968814700),
+UInt128(350153474361531, 266324390149320790),
+UInt128(560245558978449, 11494165468464644234),
+UInt128(448196447182759, 12884681189513625711),
+UInt128(358557157746207, 13997093766352810892),
+]
+
+private let bid_breakpoints_binary80_60: [UInt128] = [
+UInt128(286845726196966, 3818977383598428067),
+UInt128(458953161915145, 17178410257983215877),
+UInt128(367162529532116, 13742728206386572701),
+UInt128(293730023625693, 7304833750367347838),
+UInt128(469968037801109, 7998385185845846217),
+UInt128(375974430240887, 10088056963418587297),
+UInt128(300779544192710, 691747941251049191),
+UInt128(481247270708336, 1106796706001678706),
+UInt128(384997816566668, 15642832623768984258),
+UInt128(307998253253335, 1446219654789456436),
+UInt128(492797205205336, 2313951447663130299),
+UInt128(394237764164268, 16608556417098145532),
+UInt128(315390211331415, 2218798689452785456),
+UInt128(504624338130264, 3550077903124456729),
+UInt128(403699470504211, 6529411137241475706),
+UInt128(322959576403369, 1534180095051270242),
+UInt128(516735322245390, 9833385781565853034),
+UInt128(413388257796312, 7866708625252682427),
+UInt128(330710606237049, 17361413344427876911),
+UInt128(529136969979279, 16710214906858872088),
+UInt128(423309575983423, 17057520740229007994),
+UInt128(338647660786739, 2577970147957475425),
+UInt128(541836257258782, 11503449866215781327),
+UInt128(433469005807026, 1824062263488804415),
+UInt128(346775204645620, 16216645069758684825),
+UInt128(554840327432993, 7499888037904344104),
+UInt128(443872261946394, 13378608059807295930),
+UInt128(355097809557115, 14392235262587747067),
+UInt128(284078247645692, 11513788210070197653),
+UInt128(454525196233108, 3664665877144674953),
+UInt128(363620156986486, 10310430331199560608),
+UInt128(290896125589189, 4558995450217738163),
+UInt128(465433800942702, 14673090349832201708),
+UInt128(372347040754162, 4359774650381940720),
+UInt128(297877632603329, 14555866164531283546),
+UInt128(476604212165327, 12221339419024322704),
+UInt128(381283369732262, 2398373905735637516),
+UInt128(305026695785809, 12986745568814240983),
+UInt128(488042713257295, 9710746465877054603),
+UInt128(390434170605836, 7768597172701643682),
+UInt128(312347336484669, 2525528923419404623),
+UInt128(499755738375470, 11419543906954868043),
+UInt128(399804590700376, 9135635125563894434),
+UInt128(319843672560301, 3619159285709205224),
+UInt128(511749876096481, 16858701301360459328),
+UInt128(409399900877185, 9797612226346457139),
+UInt128(327519920701748, 7838089781077165711),
+UInt128(524031873122797, 8851594834981554815),
+UInt128(419225498498237, 18149322312210974822),
+UInt128(335380398798590, 7140760220284959211),
+]
+
+private let bid_breakpoints_binary80_61: [UInt128] = [
+UInt128(536608638077744, 11425216352455934738),
+UInt128(429286910462195, 12829521896706658113),
+UInt128(343429528369756, 10263617517365326490),
+UInt128(549487245391610, 9043090398300701739),
+UInt128(439589796313288, 7234472318640561391),
+UInt128(351671837050630, 13166275484396269759),
+UInt128(562674939281009, 2619296701324479999),
+UInt128(450139951424807, 5784786175801494322),
+UInt128(360111961139845, 15695875384866926427),
+UInt128(288089568911876, 12556700307893541142),
+UInt128(460943310259002, 12712022863145845180),
+UInt128(368754648207202, 2790920661032855498),
+UInt128(295003718565761, 13300782973052015368),
+UInt128(472005949705218, 13902555127399403942),
+UInt128(377604759764175, 53997657693792184),
+UInt128(302083807811340, 43198126155033747),
+UInt128(483334092498144, 69117001848053996),
+UInt128(386667273998515, 3744642416220353520),
+UInt128(309333819198812, 2995713932976282816),
+UInt128(494934110718099, 8482491107503962829),
+UInt128(395947288574479, 10475341700745080586),
+UInt128(316757830859583, 12069622175337974792),
+UInt128(506812529375333, 15622046665798849344),
+UInt128(405450023500267, 1429590888413348506),
+UInt128(324360018800213, 12211719154956409774),
+UInt128(518976030080341, 15849401833188345316),
+UInt128(415180824064273, 8990172651808765929),
+UInt128(332144659251418, 14570835750930833390),
+UInt128(531431454802270, 1177244313037871484),
+UInt128(425145163841816, 941795450430297187),
+UInt128(340116131073452, 15510831619311879043),
+UInt128(544185809717524, 10059935331931365176),
+UInt128(435348647774019, 11737297080287002464),
+UInt128(348278918219215, 13079186478971512294),
+UInt128(557246269150745, 2479954292644868055),
+UInt128(445797015320596, 1983963434115894444),
+UInt128(356637612256476, 16344566006260356848),
+UInt128(285310089805181, 9386303990266375155),
+UInt128(456496143688290, 7639388754942379602),
+UInt128(365196914950632, 6111511003953903681),
+UInt128(292157531960505, 15957255247388853915),
+UInt128(467452051136809, 7084864322112614648),
+UInt128(373961640909447, 9357240272432002041),
+UInt128(299169312727558, 107094588461780986),
+UInt128(478670900364092, 14928746600506490871),
+UInt128(382936720291274, 4564299650921372051),
+UInt128(306349376233019, 7340788535479007964),
+UInt128(490159001972831, 677215212540681772),
+UInt128(392127201578264, 15299167429000186711),
+UInt128(313701761262611, 15928682757942059692),
+]
+
+private let bid_breakpoints_binary80_62: [UInt128] = [
+UInt128(501922818020178, 18107194783223474860),
+UInt128(401538254416143, 3417709382353048919),
+UInt128(321230603532914, 10112865135366259781),
+UInt128(513968965652663, 5112537772360284681),
+UInt128(411175172522130, 11468727847372048391),
+UInt128(328940138017704, 9174982277897638713),
+UInt128(526304220828327, 3611925200410490971),
+UInt128(421043376662661, 13957586604554123746),
+UInt128(336834701330129, 7476720468901388674),
+UInt128(538935522128207, 894706306016490908),
+UInt128(431148417702565, 11783811489038923696),
+UInt128(344918734162052, 9427049191231138957),
+UInt128(551869974659284, 325883447002181039),
+UInt128(441495979727427, 3950055572343655154),
+UInt128(353196783781941, 14228090902100655093),
+UInt128(282557427025553, 7693123906938613751),
+UInt128(452091883240885, 8619649436359871678),
+UInt128(361673506592708, 6895719549087897343),
+UInt128(289338805274166, 12895273268754138520),
+UInt128(462942088438666, 13253739600522800987),
+UInt128(370353670750933, 6913642865676330466),
+UInt128(296282936600746, 12909611922024885019),
+UInt128(474052698561194, 13276681445755995384),
+UInt128(379242158848955, 14310693971346706631),
+UInt128(303393727079164, 11448555177077365304),
+UInt128(485429963326663, 7249641839098053518),
+UInt128(388343970661330, 13178411100762263460),
+UInt128(310675176529064, 10542728880609810768),
+UInt128(497080282446503, 5800319764749966260),
+UInt128(397664225957202, 12018953441283793654),
+UInt128(318131380765762, 2236465123543214277),
+UInt128(509010209225219, 7267693012411053167),
+UInt128(407208167380175, 9503503224670752856),
+UInt128(325766533904140, 7602802579736602285),
+UInt128(521226454246624, 12164484127578563656),
+UInt128(416981163397299, 13420936116804761248),
+UInt128(333584930717839, 14426097708185719322),
+UInt128(533735889148543, 12013709888871419945),
+UInt128(426988711318834, 16989665540580956603),
+UInt128(341590969055067, 17281081247206675605),
+UInt128(546545550488108, 12892334736563039676),
+UInt128(437236440390486, 17692565418734252387),
+UInt128(349789152312389, 10464703520245491586),
+UInt128(559662643699823, 5675479188167055569),
+UInt128(447730114959858, 11919080980017465101),
+UInt128(358184091967886, 16913962413497792727),
+UInt128(286547273574309, 9841821116056323858),
+UInt128(458475637718895, 4678867341464387204),
+UInt128(366780510175116, 3743093873171509763),
+UInt128(293424408140092, 17751870357504849103),
+]
+
+private let bid_breakpoints_binary80_63: [UInt128] = [
+UInt128(469479053024148, 13645597313040117273),
+UInt128(375583242419318, 18295175479915914465),
+UInt128(300466593935455, 3568093939707000602),
+UInt128(480746550296728, 5708950303531200963),
+UInt128(384597240237382, 11945857872308781417),
+UInt128(307677792189906, 2177988668363204487),
+UInt128(492284467503849, 14552828313606858149),
+UInt128(393827574003079, 15331611465627396843),
+UInt128(315062059202463, 15954637987243827797),
+UInt128(504099294723942, 3391327891138662537),
+UInt128(403279435779153, 13781108757136660999),
+UInt128(322623548623322, 18403584635193149445),
+UInt128(516197677797316, 14688340157341397820),
+UInt128(412958142237853, 8061323311131207933),
+UInt128(330366513790282, 13827756278388786992),
+UInt128(528586422064452, 7367014786454417895),
+UInt128(422869137651561, 16961658273389265286),
+UInt128(338295310121249, 9879977803969501905),
+UInt128(541272496193999, 4739918042125472079),
+UInt128(433017996955199, 7481283248442287987),
+UInt128(346414397564159, 9674375413495740712),
+UInt128(554263036102655, 4410954217367454170),
+UInt128(443410428882124, 3528763373893963336),
+UInt128(354728343105699, 6512359513857080992),
+UInt128(283782674484559, 8899236425827575117),
+UInt128(454052279175295, 3170731837098389218),
+UInt128(363241823340236, 2536585469678711374),
+UInt128(290593458672188, 16786663634710610392),
+UInt128(464949533875502, 4722568927085514688),
+UInt128(371959627100401, 14846101585894142720),
+UInt128(297567701680321, 8187532453973403853),
+UInt128(476108322688514, 5721354296873625518),
+UInt128(380886658150811, 8266432252240810738),
+UInt128(304709326520649, 2923796987050738267),
+UInt128(487534922433038, 12056772808765001874),
+UInt128(390027937946430, 17024115876495822145),
+UInt128(312022350357144, 13619292701196657716),
+UInt128(499235760571431, 10722821877688921376),
+UInt128(399388608457145, 4888908687409226778),
+UInt128(319510886765716, 3911126949927381422),
+UInt128(511217418825145, 17325849564109541245),
+UInt128(408973935060116, 13860679651287632996),
+UInt128(327179148048093, 7399194906288196074),
+UInt128(523486636876949, 8149363035319203395),
+UInt128(418789309501559, 10208839242997273039),
+UInt128(335031447601247, 11856420209139728754),
+UInt128(536050316161996, 4212877075655924714),
+UInt128(428840252929596, 18127696919492381064),
+UInt128(343072202343677, 10812808720851994528),
+UInt128(548915523749884, 2543098694395549952),
+]
+
+private let bid_breakpoints_binary80_64: [UInt128] = [
+UInt128(439132418999907, 5723827770258350285),
+UInt128(351305935199925, 15647108660432411197),
+UInt128(562089496319881, 6588629782982306300),
+UInt128(449671597055905, 1581555011643934717),
+UInt128(359737277644724, 1265244009315147773),
+UInt128(287789822115779, 4701544022194028542),
+UInt128(460463715385246, 14901168064994266314),
+UInt128(368370972308197, 8231585637253502728),
+UInt128(294696777846557, 17653314954028533152),
+UInt128(471514844554492, 13487908667478011750),
+UInt128(377211875643594, 3411629304498588754),
+UInt128(301769500514875, 6418652258340781326),
+UInt128(482831200823800, 10269843613345250122),
+UInt128(386264960659040, 8215874890676200097),
+UInt128(309011968527232, 6572699912540960078),
+UInt128(494419149643571, 14205668674807446448),
+UInt128(395535319714857, 7675186125104046835),
+UInt128(316428255771885, 17208195344308968438),
+UInt128(506285209235017, 9086368477184797884),
+UInt128(405028167388013, 18337141225973569277),
+UInt128(324022533910411, 3601666536553124452),
+UInt128(518436054256657, 16830712902710730093),
+UInt128(414748843405326, 6085872692684763428),
+UInt128(331799074724261, 1179349339405900419),
+UInt128(530878519558817, 12955005387275171640),
+UInt128(424702815647054, 2985306680336316666),
+UInt128(339762252517643, 6077594159010963656),
+UInt128(543619604028229, 6034801839675631526),
+UInt128(434895683222583, 8517190286482415544),
+UInt128(347916546578066, 14192449858669753082),
+UInt128(556666474524906, 15329222144387784284),
+UInt128(445333179619925, 8574028900768317104),
+UInt128(356266543695940, 6859223120614653683),
+UInt128(285013234956752, 5487378496491722946),
+UInt128(456021175930803, 12469154409128667038),
+UInt128(364816940744642, 17354021156786754277),
+UInt128(291853552595714, 6504519295945582775),
+UInt128(466965684153142, 17785928502996753086),
+UInt128(373572547322514, 6850045172913581823),
+UInt128(298858037858011, 9169384953072775781),
+UInt128(478172860572818, 7292318295432620604),
+UInt128(382538288458254, 13212552265829917129),
+UInt128(306030630766603, 14259390627405844027),
+UInt128(489649009226566, 678932115397888504),
+UInt128(391719207381252, 15300540951285952096),
+UInt128(313375365905002, 4861735131544941030),
+UInt128(501400585448003, 11468125025213815971),
+UInt128(401120468358402, 16553197649654873423),
+UInt128(320896374686722, 5863860490240078092),
+UInt128(513434199498755, 13071525599126035271),
+]
+
+private let bid_breakpoints_binary80_65: [UInt128] = [
+UInt128(410747359599004, 10457220479300828217),
+UInt128(328597887679203, 12055125198182572897),
+UInt128(525756620286725, 15598851502350206312),
+UInt128(420605296229380, 12479081201880165049),
+UInt128(336484236983504, 9983264961504132039),
+UInt128(538374779173607, 4905177494180880293),
+UInt128(430699823338885, 14992188439570435204),
+UInt128(344559858671108, 11993750751656348163),
+UInt128(551295773873773, 15500652387908246738),
+UInt128(441036619099019, 1332475466100866421),
+UInt128(352829295279215, 4755329187622603460),
+UInt128(282263436223372, 3804263350098082768),
+UInt128(451621497957395, 9776170174898842752),
+UInt128(361297198365916, 7820936139919074202),
+UInt128(289037758692733, 2567400097193349038),
+UInt128(462460413908373, 418491340767448138),
+UInt128(369968331126698, 7713490702097779157),
+UInt128(295974664901358, 13549490191162043972),
+UInt128(473559463842173, 17989835491117360032),
+UInt128(378847571073739, 3323821948668157056),
+UInt128(303078056858991, 6348406373676435968),
+UInt128(484924890974386, 2778752568398476902),
+UInt128(387939912779508, 16980397313686422814),
+UInt128(310351930223607, 2516271406723407282),
+UInt128(496563088357771, 7715383065499361974),
+UInt128(397250470686217, 2482957637657579256),
+UInt128(317800376548973, 13054412554351794374),
+UInt128(508480602478357, 17197711272220960676),
+UInt128(406784481982686, 6379471388292947894),
+UInt128(325427585586149, 1414228295892447992),
+UInt128(520684136937838, 9641462902911737434),
+UInt128(416547309550270, 15091867951813210594),
+UInt128(333237847640216, 12073494361450568475),
+UInt128(533180556224346, 11938893348837088914),
+UInt128(426544444979477, 5861765864327760808),
+UInt128(341235555983581, 15757459135687939616),
+UInt128(545976889573730, 17833236987616882739),
+UInt128(436781511658984, 14266589590093506191),
+UInt128(349425209327187, 15102620486816715276),
+UInt128(559080334923500, 9406797519939103149),
+UInt128(447264267938800, 7525438015951282519),
+UInt128(357811414351040, 6020350412761026015),
+UInt128(286249131480832, 4816280330208820812),
+UInt128(457998610369331, 11395397343076023623),
+UInt128(366398888295465, 5426969059718908575),
+UInt128(293119110636372, 4341575247775126860),
+UInt128(468990577018195, 10635869211182113299),
+UInt128(375192461614556, 8508695368945690639),
+UInt128(300153969291645, 3117607480414642188),
+UInt128(480246350866632, 4988171968663427501),
+]
+
+private let bid_breakpoints_binary80_66: [UInt128] = [
+UInt128(384197080693305, 15058584019156472970),
+UInt128(307357664554644, 12046867215325178376),
+UInt128(491772263287431, 8206941100294554433),
+UInt128(393417810629945, 2876204065493733223),
+UInt128(314734248503956, 2300963252394986578),
+UInt128(503574797606329, 14749587648057709495),
+UInt128(402859838085063, 15489018933188077919),
+UInt128(322287870468051, 1323168702324731366),
+UInt128(515660592748881, 13185116367945301155),
+UInt128(412528474199105, 6858744279614330601),
+UInt128(330022779359284, 5486995423691464480),
+UInt128(528036446974854, 16157890307390163815),
+UInt128(422429157579883, 16615661060654041375),
+UInt128(337943326063907, 2224482404297502131),
+UInt128(540709321702251, 7248520661617913732),
+UInt128(432567457361801, 2109467714552420663),
+UInt128(346053965889440, 16444969430609577823),
+UInt128(553686345423105, 7865207015265772901),
+UInt128(442949076338484, 6292165612212618321),
+UInt128(354359261070787, 8723081304512004980),
+UInt128(283487408856629, 18046511487835334953),
+UInt128(453579854170607, 17806371936310804956),
+UInt128(362863883336486, 6866399919564823318),
+UInt128(290291106669189, 1803771120909948331),
+UInt128(464465770670702, 10264731422939737977),
+UInt128(371572616536562, 833087508867969735),
+UInt128(297258093229249, 11734516451320106757),
+UInt128(475612949166799, 7707179877886439842),
+UInt128(380490359333439, 9855092717051062197),
+UInt128(304392287466751, 11573422988382760081),
+UInt128(487027659946802, 11138779151928595483),
+UInt128(389622127957442, 1532325692059055740),
+UInt128(311697702365953, 12293906997872975561),
+UInt128(498716323785525, 15980902381854850575),
+UInt128(398973059028420, 12784721905483880460),
+UInt128(319178447222736, 10227777524387104368),
+UInt128(510685515556378, 8985746409535546343),
+UInt128(408548412445102, 14567294757112257721),
+UInt128(326838729956082, 4275138176205985530),
+UInt128(522941967929731, 10529569896671487171),
+UInt128(418353574343785, 4734307102595279414),
+UInt128(334682859475028, 3787445682076223531),
+UInt128(535492575160045, 2370564276580047327),
+UInt128(428394060128036, 1896451421264037861),
+UInt128(342715248102428, 16274556395978871582),
+UInt128(548344396963886, 3903197345114732592),
+UInt128(438675517571108, 17879953135059427366),
+UInt128(350940414056887, 3235916063821810923),
+UInt128(561504662491019, 8866814516856807801),
+UInt128(449203729992815, 10782800428227356564),
+]
+
+private let bid_breakpoints_binary80_67: [UInt128] = [
+UInt128(359362983994252, 8626240342581885251),
+UInt128(287490387195401, 17969038718291239170),
+UInt128(459984619512643, 2925020246072610410),
+UInt128(367987695610114, 9718713826341908974),
+UInt128(294390156488091, 11464319875815437503),
+UInt128(471024250380946, 10964214171820879358),
+UInt128(376819400304757, 5082022522714793163),
+UInt128(301455520243805, 15133664462397565500),
+UInt128(482328832390089, 5767119066126553184),
+UInt128(385863065912071, 8303044067643152871),
+UInt128(308690452729657, 2953086439372611973),
+UInt128(493904724367451, 8414287117738089480),
+UInt128(395123779493961, 3042080879448561261),
+UInt128(316099023595168, 17191059962526490302),
+UInt128(505758437752270, 5369603051590922544),
+UInt128(404606750201816, 4295682441272738035),
+UInt128(323685400161452, 18193941211985831721),
+UInt128(517896640258324, 14352910680209689460),
+UInt128(414317312206659, 15171677358909661891),
+UInt128(331453849765327, 15826690701869639836),
+UInt128(530326159624524, 10565309864023782445),
+UInt128(424260927699619, 12141596705960936279),
+UInt128(339408742159695, 13402626179510659347),
+UInt128(543053987455513, 2997457813507503339),
+UInt128(434443189964410, 9776663880289823317),
+UInt128(347554551971528, 7821331104231858654),
+UInt128(556087283154445, 8824780952029063523),
+UInt128(444869826523556, 7059824761623250819),
+UInt128(355895861218845, 1958510994556690332),
+UInt128(284716688975076, 1566808795645352265),
+UInt128(455546702360121, 13574940517258294594),
+UInt128(364437361888097, 7170603599064725352),
+UInt128(291549889510477, 16804529323477511251),
+UInt128(466479823216764, 12129851658596376709),
+UInt128(373183858573411, 13393230141619011690),
+UInt128(298547086858729, 7025235298553299029),
+UInt128(477675338973967, 172330033459547477),
+UInt128(382140271179173, 11205910470993368951),
+UInt128(305712216943338, 16343426006278515807),
+UInt128(489139547109342, 4013388721594163353),
+UInt128(391311637687473, 14278757421501061652),
+UInt128(313049310149979, 354959492975118352),
+UInt128(500878896239966, 7946632818244010009),
+UInt128(400703116991973, 2667957439853297684),
+UInt128(320562493593578, 9513063581366458794),
+UInt128(512899989749725, 11531552915444423747),
+UInt128(410319991799780, 9225242332355538998),
+UInt128(328255993439824, 7380193865884431198),
+UInt128(525209589503719, 740263741189358947),
+UInt128(420167671602975, 4281559807693397481),
+]
+
+private let bid_breakpoints_binary80_68: [UInt128] = [
+UInt128(336134137282380, 3425247846154717985),
+UInt128(537814619651808, 5480396553847548776),
+UInt128(430251695721446, 11763014872561859667),
+UInt128(344201356577157, 5721063083307577410),
+UInt128(550722170523451, 12843049748034034180),
+UInt128(440577736418761, 6585090983685317021),
+UInt128(352462189135009, 1578723972206343293),
+UInt128(281969751308007, 4952327992506984958),
+UInt128(451151602092811, 11613073602753086256),
+UInt128(360921281674249, 5601110067460558681),
+UInt128(288737025339399, 8170236868710357268),
+UInt128(461979240543039, 2004332545710840660),
+UInt128(369583392434431, 5292814851310582851),
+UInt128(295666713947545, 544903066306555957),
+UInt128(473066742316072, 871844906090489532),
+UInt128(378453393852857, 11765522369098122595),
+UInt128(302762715082286, 2033720265794677430),
+UInt128(484420344131657, 14321998869497214857),
+UInt128(387536275305326, 4078901466113951239),
+UInt128(310029020244260, 18020516431858802284),
+UInt128(496046432390817, 10386082217264532039),
+UInt128(396837145912654, 930168144327804985),
+UInt128(317469716730123, 4433483330204154311),
+UInt128(507951546768197, 3404224513584736575),
+UInt128(406361237414557, 13791426055093520229),
+UInt128(325088989931646, 3654443214590995537),
+UInt128(520142383890633, 16915155587571323829),
+UInt128(416113907112507, 2464078025831328093),
+UInt128(332891125690005, 13039308864890793444),
+UInt128(532625801104009, 2416150110115717895),
+UInt128(426100640883207, 5622268902834484639),
+UInt128(340880512706565, 15565861566493318681),
+UInt128(545408820330505, 6458634432679758274),
+UInt128(436327056264404, 5166907546143806619),
+UInt128(349061645011523, 7822874851656955618),
+UInt128(558498632018437, 8827250947909218666),
+UInt128(446798905614749, 18129847202553105902),
+UInt128(357439124491799, 18193226576784395045),
+UInt128(285951299593439, 18243930076169426359),
+UInt128(457522079349503, 18122241677645351205),
+UInt128(366017663479603, 3429746897890549994),
+UInt128(292814130783682, 10122495147796260642),
+UInt128(468502609253892, 1438596977506375734),
+UInt128(374802087403113, 12218924026230831557),
+UInt128(299841669922490, 17153836850468485892),
+UInt128(479746671875985, 8999394887040025811),
+UInt128(383797337500788, 7199515909632020649),
+UInt128(307037870000630, 13138310357189437166),
+UInt128(491260592001009, 2574552497793547849),
+UInt128(393008473600807, 5748990812976748602),
+]
+
+private let bid_breakpoints_binary80_69: [UInt128] = [
+UInt128(314406778880645, 15667239094607129851),
+UInt128(503050846209033, 6620838477661856147),
+UInt128(402440676967226, 12675368411613305564),
+UInt128(321952541573781, 6450945914548734128),
+UInt128(515124066518050, 2942815833794153958),
+UInt128(412099253214440, 2354252667035323166),
+UInt128(329679402571552, 1883402133628258533),
+UInt128(527487044114483, 6702792228547123976),
+UInt128(421989635291586, 12740931412321519827),
+UInt128(337591708233269, 6503396315115305539),
+UInt128(540146733173230, 17784131733668309508),
+UInt128(432117386538584, 14227305386934647607),
+UInt128(345693909230867, 15071193124289628408),
+UInt128(553110254769388, 9356513739895764161),
+UInt128(442488203815510, 14863908621400431975),
+UInt128(353990563052408, 11891126897120345580),
+UInt128(283192450441926, 16891599147180097110),
+UInt128(453107920707083, 1201116932294783114),
+UInt128(362486336565666, 8339591175319647138),
+UInt128(289989069252533, 2982324125513807387),
+UInt128(463982510804053, 1082369786080181496),
+UInt128(371186008643242, 8244593458347965843),
+UInt128(296948806914593, 17663721210904103644),
+UInt128(475118091063350, 6125861048995103892),
+UInt128(380094472850680, 4900688839196083113),
+UInt128(304075578280544, 3920551071356866490),
+UInt128(486520925248870, 13651579343654807031),
+UInt128(389216740199096, 10921263474923845625),
+UInt128(311373392159277, 5047661965197166177),
+UInt128(498197427454843, 11765607959057376206),
+UInt128(398557941963874, 16791183996729721611),
+UInt128(318846353571099, 17122296012125687612),
+UInt128(510154165713759, 16327627175175369210),
+UInt128(408123332571007, 16751450554882205691),
+UInt128(326498666056806, 6022462814421943906),
+UInt128(522397865690890, 2257242873591289604),
+UInt128(417918292552712, 1805794298873031683),
+UInt128(334334634042169, 12512681883324156316),
+UInt128(534935414467471, 8952244569092919136),
+UInt128(427948331573977, 3472446840532424986),
+UInt128(342358665259181, 13846003916651670958),
+UInt128(547773864414690, 14774908637158852887),
+UInt128(438219091531752, 11819926909727082310),
+UInt128(350575273225402, 2077243898297845201),
+UInt128(560920437160643, 7012939052018462645),
+UInt128(448736349728514, 12989048871098590763),
+UInt128(358989079782811, 14080587911620782933),
+UInt128(287191263826249, 7575121514554716023),
+UInt128(459506022121999, 1052147979061814668),
+UInt128(367604817697599, 4531067197991362057),
+]
+
+private let bid_breakpoints_binary80_70: [UInt128] = [
+UInt128(294083854158079, 7314202573134999969),
+UInt128(470534166652927, 634677672790268981),
+UInt128(376427333322341, 11575788582457946154),
+UInt128(301141866657873, 5571282051224446600),
+UInt128(481826986652597, 5224702467217204237),
+UInt128(385461589322077, 15247808417999494359),
+UInt128(308369271457662, 4819549104915774841),
+UInt128(493390834332259, 11400627382607150069),
+UInt128(394712667465807, 12809850720827630378),
+UInt128(315770133972646, 2869182947178283656),
+UInt128(505232214356233, 15658739159710984820),
+UInt128(404185771484987, 1458944883543056886),
+UInt128(323348617187989, 12235202351060176478),
+UInt128(517357787500783, 8508277317470551396),
+UInt128(413886230000626, 14185319483460261763),
+UInt128(331108984000501, 7658906772026299087),
+UInt128(529774374400802, 4875553205758257894),
+UInt128(423819499520641, 14968489008832337284),
+UInt128(339055599616513, 8285442392323959504),
+UInt128(542488959386421, 9567359012976424884),
+UInt128(433991167509137, 3964538395639229584),
+UInt128(347192934007309, 14239677160737114637),
+UInt128(555508694411695, 11715437012953652449),
+UInt128(444406955529356, 9372349610362921959),
+UInt128(355525564423485, 3808530873548427244),
+UInt128(284420451538788, 3046824698838741795),
+UInt128(455072722462061, 1185570703400076549),
+UInt128(364058177969648, 15705851821687702532),
+UInt128(291246542375719, 1496635013124431056),
+UInt128(465994467801150, 9773313650482910336),
+UInt128(372795574240920, 7818650920386328269),
+UInt128(298236459392736, 6254920736309062615),
+UInt128(477178335028378, 2629175548610679538),
+UInt128(381742668022702, 9482038068372364277),
+UInt128(305394134418162, 206932825214070775),
+UInt128(488630615069059, 4020441335084423563),
+UInt128(390904492055247, 6905701882809449174),
+UInt128(312723593644197, 16592607950473290309),
+UInt128(500357749830716, 11790777461789623201),
+UInt128(400286199864573, 5743273154689788238),
+UInt128(320228959891658, 11973316153235651236),
+UInt128(512366335826653, 15467957030435131655),
+UInt128(409893068661323, 1306319180122374355),
+UInt128(327914454929058, 8423752973581720130),
+UInt128(524663127886493, 9788655942988841885),
+UInt128(419730502309194, 15209622383874894154),
+UInt128(335784401847355, 15857046721841825647),
+UInt128(537255042955769, 6924530681237369419),
+UInt128(429804034364615, 9228973359731805858),
+UInt128(343843227491692, 7383178687785444686),
+]
+
+private let bid_breakpoints_binary80_71: [UInt128] = [
+UInt128(550149163986707, 15502434715198621822),
+UInt128(440119331189366, 5023250142675076811),
+UInt128(352095464951493, 329251299398151125),
+UInt128(281676371961194, 7642098669002341547),
+UInt128(450682195137911, 1159311426178015505),
+UInt128(360545756110328, 15684844399910053697),
+UInt128(288436604888263, 1479829075702311988),
+UInt128(461498567821220, 17125121780091340474),
+UInt128(369198854256976, 13700097424073072379),
+UInt128(295359083405581, 7270729124516547580),
+UInt128(472574533448930, 4254468969742655482),
+UInt128(378059626759144, 3403575175794124385),
+UInt128(302447701407315, 6412208955377209831),
+UInt128(483916322251704, 10259534328603535730),
+UInt128(387133057801363, 11896976277624738907),
+UInt128(309706446241090, 16896278651583611772),
+UInt128(495530313985745, 8587301768824227220),
+UInt128(396424251188596, 6869841415059381776),
+UInt128(317139400950877, 1806524317305595097),
+UInt128(507423041521403, 6579787722430862479),
+UInt128(405938433217122, 12642527807428510630),
+UInt128(324750746573698, 2735324616458987857),
+UInt128(519601194517917, 687170571592470248),
+UInt128(415680955614333, 11617782901499707168),
+UInt128(332544764491466, 16672923950683586381),
+UInt128(532071623186347, 851236617900365947),
+UInt128(425657298549077, 11749035738546023727),
+UInt128(340525838839262, 2020530961352998335),
+UInt128(544841342142819, 6922198352906707660),
+UInt128(435873073714255, 9227107497067276451),
+UInt128(348698458971404, 7381685997653821161),
+UInt128(557917534354247, 742651152020382888),
+UInt128(446334027483397, 11662167365842037280),
+UInt128(357067221986718, 1951036263189809178),
+UInt128(285653777589374, 8939526640035667988),
+UInt128(457046044142999, 3235196179831337812),
+UInt128(365636835314399, 6277505758606980573),
+UInt128(292509468251519, 8711353421627494781),
+UInt128(468015149202431, 2870119030378260681),
+UInt128(374412119361944, 17053490483270249837),
+UInt128(299529695489555, 17332141201358110193),
+UInt128(479247512783289, 9284681848463424693),
+UInt128(383398010226631, 11117094293512650077),
+UInt128(306718408181305, 5204326620068209739),
+UInt128(490749453090088, 8326922592109135582),
+UInt128(392599562472070, 14040235703171129112),
+UInt128(314079649977656, 11232188562536903290),
+UInt128(502527439964250, 10592804070575224617),
+UInt128(402021951971400, 8474243256460179694),
+UInt128(321617561577120, 6779394605168143755),
+]
+
+private let bid_breakpoints_binary80_72: [UInt128] = [
+UInt128(514588098523392, 10847031368269030008),
+UInt128(411670478818714, 1298927465131403360),
+UInt128(329336383054971, 4728490786847033011),
+UInt128(526938212887954, 186887629471432172),
+UInt128(421550570310363, 3838858918319056060),
+UInt128(337240456248290, 10449784764139065495),
+UInt128(539584729997264, 16719655622622504792),
+UInt128(431667783997811, 17065073312839914156),
+UInt128(345334227198249, 9962709835530021002),
+UInt128(552534763517199, 4872289292622302634),
+UInt128(442027810813759, 7587180248839752430),
+UInt128(353622248651007, 9759093013813712267),
+UInt128(282897798920806, 428576781567149167),
+UInt128(452636478273289, 11753769294733169637),
+UInt128(362109182618631, 13092364250528446033),
+UInt128(289687346094905, 6784542585680846503),
+UInt128(463499753751848, 10855268137089354405),
+UInt128(370799803001478, 16062912139155304170),
+UInt128(296639842401183, 1782283267098512367),
+UInt128(474623747841892, 17609048486325261080),
+UInt128(379698998273514, 6708541159576388217),
+UInt128(303759198618811, 9056181742403020897),
+UInt128(486014717790098, 7111193158361012789),
+UInt128(388811774232078, 13067652156172630878),
+UInt128(311049419385662, 17832819354421925348),
+UInt128(497679071017060, 13775115708107439265),
+UInt128(398143256813648, 11020092566485951412),
+UInt128(318514605450918, 16194771682672581776),
+UInt128(509623368721470, 3775541803824668902),
+UInt128(407698694977176, 3020433443059735122),
+UInt128(326158955981740, 17173742013415429390),
+UInt128(521854329570785, 9031243147755135408),
+UInt128(417483463656628, 7224994518204108327),
+UInt128(333986770925302, 13158693244047107308),
+UInt128(534378833480484, 6296513931507730400),
+UInt128(427503066784387, 8726559959948094643),
+UInt128(342002453427509, 18049294412184206684),
+UInt128(547203925484015, 17810824615268999725),
+UInt128(437763140387212, 14248659692215199780),
+UInt128(350210512309770, 4020230124288339177),
+UInt128(560336819695632, 6432368198861342684),
+UInt128(448269455756505, 16213941003314805117),
+UInt128(358615564605204, 12971152802651844093),
+UInt128(286892451684163, 14066271056863385598),
+UInt128(459027922694662, 369940802529955017),
+UInt128(367222338155729, 11363999086249694983),
+UInt128(293777870524583, 12780548083741666310),
+UInt128(470044592839333, 16759528119244755773),
+UInt128(376035674271467, 2339576051170073649),
+UInt128(300828539417173, 12939707285161789888),
+]
+
+private let bid_breakpoints_binary80_73: [UInt128] = [
+UInt128(481325663067477, 17014182841516953498),
+UInt128(385060530453982, 6232648643729742152),
+UInt128(308048424363185, 16054165359209524691),
+UInt128(492877478981097, 7239920501025687890),
+UInt128(394301983184877, 16859982845046281282),
+UInt128(315441586547902, 6109288646553204379),
+UInt128(504706538476643, 13464210649227037330),
+UInt128(403765230781314, 18150066148865450510),
+UInt128(323012184625051, 18209401733834270731),
+UInt128(516819495400083, 3309601070941460908),
+UInt128(413455596320066, 10026378486236989373),
+UInt128(330764477056053, 4331753974247681175),
+UInt128(529223163289685, 3241457544054379557),
+UInt128(423378530631748, 2593166035243503645),
+UInt128(338702824505398, 9453230457678623562),
+UInt128(541924519208637, 11435819917543887377),
+UInt128(433539615366910, 1769958304551289255),
+UInt128(346831692293528, 1415966643641031404),
+UInt128(554930707669644, 17022941888793291540),
+UInt128(443944566135715, 17307702325776543555),
+UInt128(355155652908572, 13846161860621234844),
+UInt128(284124522326858, 3698231859013167228),
+UInt128(454599235722973, 2227822159679157243),
+UInt128(363679388578378, 9160955357227146440),
+UInt128(290943510862702, 14707461915265537799),
+UInt128(465509617380324, 8774543805457219185),
+UInt128(372407693904259, 10708983859107685671),
+UInt128(297926155123407, 12256535902028058860),
+UInt128(476681848197452, 4853062184277252884),
+UInt128(381345478557961, 14950496191647533277),
+UInt128(305076382846369, 8271048138576116298),
+UInt128(488122212554191, 2165630577496055107),
+UInt128(390497770043352, 16489899720964485379),
+UInt128(312398216034682, 5813222147287767656),
+UInt128(499837145655491, 12990504250402338574),
+UInt128(399869716524393, 6703054585579960536),
+UInt128(319895773219514, 12741141297947789075),
+UInt128(511833237151223, 9317779632490731550),
+UInt128(409466589720978, 14832921335476405887),
+UInt128(327573271776783, 798290624155393740),
+UInt128(524117234842852, 16034660257616271276),
+UInt128(419293787874282, 5449030576609196375),
+UInt128(335435030299425, 15427270905513088069),
+UInt128(536696048479081, 6236889375111389295),
+UInt128(429356838783265, 1300162685347201113),
+UInt128(343485471026612, 1040130148277760890),
+UInt128(549576753642579, 5353557051986327748),
+UInt128(439661402914063, 7972194456330972521),
+UInt128(351729122331250, 13756453194548598663),
+UInt128(562766595730001, 3563581037568206246),
+]
+
+private let bid_breakpoints_binary80_74: [UInt128] = [
+UInt128(450213276584000, 17608260089022206289),
+UInt128(360170621267200, 14086608071217765031),
+UInt128(288136497013760, 11269286456974212025),
+UInt128(461018395222016, 18030858331158739240),
+UInt128(368814716177613, 10735337850185081069),
+UInt128(295051772942090, 15966967909631885501),
+UInt128(472082836707345, 7100404581701465186),
+UInt128(377666269365876, 5680323665361172149),
+UInt128(302133015492701, 854910117547027396),
+UInt128(483412824788321, 12435902632300974803),
+UInt128(386730259830657, 6259373291098869519),
+UInt128(309384207864525, 16075545077104826585),
+UInt128(495014732583241, 7274128049658170920),
+UInt128(396011786066593, 2129953624984626413),
+UInt128(316809428853274, 9082660529471521777),
+UInt128(506895086165239, 3464210402928703873),
+UInt128(405516068932191, 6460717137084873422),
+UInt128(324412855145753, 1479224894925988414),
+UInt128(519060568233204, 17124155090849222756),
+UInt128(415248454586563, 17388672887421288528),
+UInt128(332198763669251, 2842891865711299852),
+UInt128(531518021870801, 15616673429363810734),
+UInt128(425214417496641, 8803989928749138264),
+UInt128(340171533997313, 3353843128257400288),
+UInt128(544274454395701, 1676800190469930137),
+UInt128(435419563516560, 16098835411343585403),
+UInt128(348335650813248, 12879068329074868322),
+UInt128(557337041301197, 16917160511777878992),
+UInt128(445869633040958, 6155030779938482547),
+UInt128(356695706432766, 12302722253434606684),
+UInt128(285356565146213, 6152828988005775024),
+UInt128(456570504233941, 6155177566067329716),
+UInt128(365256403387153, 1234793238111953449),
+UInt128(292205122709722, 8366532219973383406),
+UInt128(467528196335555, 17075800366699323773),
+UInt128(374022557068444, 13660640293359459018),
+UInt128(299218045654755, 14617861049429477537),
+UInt128(478748873047609, 4941833605377612444),
+UInt128(382999098438087, 7642815699044000278),
+UInt128(306399278750469, 17182299003460931192),
+UInt128(490238846000751, 16423631961311758938),
+UInt128(392191076800601, 9449556754307496827),
+UInt128(313752861440481, 3870296588704087139),
+UInt128(502004578304769, 17260520986152270392),
+UInt128(401603662643815, 17497765603663726636),
+UInt128(321282930115052, 13998212482930981309),
+UInt128(514052688184084, 7639744713721928802),
+UInt128(411242150547267, 9801144585719453365),
+UInt128(328993720437814, 462218039091742045),
+UInt128(526389952700502, 8118246492030607919),
+]
+
+private let bid_breakpoints_binary80_75: [UInt128] = [
+UInt128(421111962160401, 17562643637850217305),
+UInt128(336889569728321, 10360766095538263520),
+UInt128(539023311565314, 9198528123377400987),
+UInt128(431218649252251, 11048171313443831112),
+UInt128(344974919401801, 5149188236013154567),
+UInt128(551959871042882, 860003548137226661),
+UInt128(441567896834305, 11756049282735512298),
+UInt128(353254317467444, 9404839426188409838),
+UInt128(282603453973955, 11213220355692638194),
+UInt128(452165526358328, 17941152569108221110),
+UInt128(361732421086663, 3284875611060845918),
+UInt128(289385936869330, 10006598118332497381),
+UInt128(463017498990928, 16010556989331995810),
+UInt128(370413999192743, 1740399147239865678),
+UInt128(296331199354194, 8771016947275713189),
+UInt128(474129918966711, 2965580671415410133),
+UInt128(379303935173368, 17129859796099969399),
+UInt128(303443148138695, 2635841392654244550),
+UInt128(485509037021912, 4217346228246791280),
+UInt128(388407229617529, 14441923426823163993),
+UInt128(310725783694023, 15242887556200441518),
+UInt128(497161253910438, 2252527201469244489),
+UInt128(397729003128350, 9180719390659216238),
+UInt128(318183202502680, 7344575512527372990),
+UInt128(509093124004288, 11751320820043796785),
+UInt128(407274499203430, 16779754285518858074),
+UInt128(325819599362744, 13423803428415086459),
+UInt128(521311358980391, 10410039041238407365),
+UInt128(417049087184313, 4638682418248815569),
+UInt128(333639269747450, 11089643564082873101),
+UInt128(533822831595920, 17743429702532596963),
+UInt128(427058265276736, 14194743762026077570),
+UInt128(341646612221389, 7666446194878951733),
+UInt128(546634579554223, 1198267467580591803),
+UInt128(437307663643378, 8337311603548294089),
+UInt128(349846130914702, 14048546912322455917),
+UInt128(559753809463524, 7720279800748288175),
+UInt128(447803047570819, 9865572655340540863),
+UInt128(358242438056655, 11581806939014343014),
+UInt128(286593950445324, 9265445551211474411),
+UInt128(458550320712519, 3756666437712628088),
+UInt128(366840256570015, 6694681964912012793),
+UInt128(293472205256012, 5355745571929610235),
+UInt128(469555528409619, 12258541729829286699),
+UInt128(375644422727695, 13496182198605339682),
+UInt128(300515538182156, 10796945758884271746),
+UInt128(480824861091450, 9896415584731014147),
+UInt128(384659888873160, 7917132467784811318),
+UInt128(307727911098528, 6333705974227849054),
+UInt128(492364657757645, 6444580744022648163),
+]
+
+private let bid_breakpoints_binary80_76: [UInt128] = [
+UInt128(393891726206116, 5155664595218118531),
+UInt128(315113380964893, 435182861432584501),
+UInt128(504181409543828, 15453687837259776495),
+UInt128(403345127635063, 1294903825582090226),
+UInt128(322676102108050, 8414620689949492827),
+UInt128(516281763372880, 13463393103919188524),
+UInt128(413025410698304, 10770714483135350819),
+UInt128(330420328558643, 12305920401250190978),
+UInt128(528672525693829, 16000123827258395243),
+UInt128(422938020555063, 16489447876548626517),
+UInt128(338350416444051, 2123511857013170244),
+UInt128(541360666310481, 14465665415446803360),
+UInt128(433088533048385, 7883183517615532365),
+UInt128(346470826438708, 6306546814092425892),
+UInt128(554353322301933, 6401126087805971104),
+UInt128(443482657841546, 12499598499728597530),
+UInt128(354786126273237, 6310329985040967700),
+UInt128(283828901018589, 16116310432258505130),
+UInt128(454126241629743, 14718050247387877238),
+UInt128(363300993303795, 706393753684570821),
+UInt128(290640794643036, 565115002947656657),
+UInt128(465025271428857, 11972230448941981621),
+UInt128(372020217143086, 2199086729669764650),
+UInt128(297616173714468, 16516664642703453013),
+UInt128(476185877943150, 4290570539874062881),
+UInt128(380948702354520, 3432456431899250305),
+UInt128(304758961883616, 2745965145519400244),
+UInt128(487614339013785, 15461590677056771360),
+UInt128(390091471211028, 12369272541645417088),
+UInt128(312073176968822, 17274115662800154317),
+UInt128(499317083150116, 12881189801512605614),
+UInt128(399453666520093, 6615603026468174168),
+UInt128(319562933216074, 12671180050658359981),
+UInt128(511300693145719, 9205841636827645000),
+UInt128(409040554516575, 11054022124204026323),
+UInt128(327232443613260, 8843217699363221058),
+UInt128(523571909781216, 14149148318981153694),
+UInt128(418857527824973, 7629969840443012632),
+UInt128(335086022259978, 13482673501838230752),
+UInt128(536137635615965, 17882928788199258880),
+UInt128(428910108492772, 14306343030559407104),
+UInt128(343128086794218, 4066376794963705036),
+UInt128(549004938870749, 2816854057200017735),
+UInt128(439203951096599, 5942832060501924511),
+UInt128(351363160877279, 8443614463143449932),
+UInt128(562181057403647, 2441736696803788922),
+UInt128(449744845922917, 13021435801668762107),
+UInt128(359795876738334, 3038451011851189039),
+UInt128(287836701390667, 6120109624222861555),
+UInt128(460538722225067, 13481524213498488811),
+]
+
+private let bid_breakpoints_binary80_77: [UInt128] = [
+UInt128(368430977780054, 3406521741314970402),
+UInt128(294744782224043, 6414566207793886645),
+UInt128(471591651558469, 6573957117728308309),
+UInt128(377273321246775, 8948514508924556970),
+UInt128(301818656997420, 7158811607139645576),
+UInt128(482909851195872, 11454098571423432922),
+UInt128(386327880956698, 1784581227654925691),
+UInt128(309062304765358, 8806362611607761199),
+UInt128(494499687624573, 10400831363830507596),
+UInt128(395599750099658, 15699362720548226723),
+UInt128(316479800079727, 1491443732212850409),
+UInt128(506367680127563, 6075658786282470977),
+UInt128(405094144102050, 12239224658509797428),
+UInt128(324075315281640, 9791379726807837942),
+UInt128(518520504450624, 15666207562892540708),
+UInt128(414816403560499, 16222314865055942890),
+UInt128(331853122848399, 16667200706786664635),
+UInt128(530964996557439, 15599474686632932446),
+UInt128(424771997245951, 16168928564048256280),
+UInt128(339817597796761, 9245794036496694701),
+UInt128(543708156474818, 7414572828910890875),
+UInt128(434966525179854, 13310355892612533346),
+UInt128(347973220143883, 14337633528831937000),
+UInt128(556757152230214, 804120757679637262),
+UInt128(445405721784171, 4332645420885620132),
+UInt128(356324577427336, 18223511595676137399),
+UInt128(285059661941869, 10889460461798999596),
+UInt128(456095459106991, 6355090294652668384),
+UInt128(364876367285593, 1394723420980224384),
+UInt128(291901093828474, 8494476366268000153),
+UInt128(467041750125559, 2523115741803069276),
+UInt128(373633400100447, 5707841408184365744),
+UInt128(298906720080357, 15634319570773223564),
+UInt128(478250752128572, 10257516054269516411),
+UInt128(382600601702858, 827315213931792482),
+UInt128(306080481362286, 8040549800629254632),
+UInt128(489728770179658, 5486182051522986765),
+UInt128(391783016143726, 11767643270702210058),
+UInt128(313426412914981, 5724765801819857723),
+UInt128(501482260663970, 1780927653427951711),
+UInt128(401185808531176, 1424742122742361369),
+UInt128(320948646824940, 15897188957161530388),
+UInt128(513517834919905, 6988758257748897005),
+UInt128(410814267935924, 5591006606199117604),
+UInt128(328651414348739, 8162154099701204406),
+UInt128(525842262957983, 1991400115296196080),
+UInt128(420673810366386, 8971817721720777511),
+UInt128(336539048293109, 3488105362634711685),
+UInt128(538462477268974, 12959666209699359343),
+UInt128(430769981815179, 14057081782501397798),
+]
+
+private let bid_breakpoints_binary80_78: [UInt128] = [
+UInt128(344615985452143, 14935014240743028561),
+UInt128(551385576723430, 1759929896737383759),
+UInt128(441108461378744, 1407943917389907007),
+UInt128(352886769102995, 4815703948653835929),
+UInt128(282309415282396, 3852563158923068743),
+UInt128(451695064451833, 17232147498502640958),
+UInt128(361356051561467, 2717671554576381797),
+UInt128(289084841249173, 13242183687886836407),
+UInt128(462535745998677, 17498145085877027929),
+UInt128(370028596798942, 6619818439217801696),
+UInt128(296022877439153, 16363901195599972327),
+UInt128(473636603902646, 4046149024508493784),
+UInt128(378909283122116, 17994314478574436320),
+UInt128(303127426497693, 10706102768117638732),
+UInt128(485003882396309, 13440415614246311649),
+UInt128(388003105917047, 14441681306138959642),
+UInt128(310402484733638, 4174647415427347067),
+UInt128(496643975573821, 2990087049941844985),
+UInt128(397315180459056, 17149464898921117280),
+UInt128(317852144367245, 10030223104394983501),
+UInt128(508563430987592, 16048356967031973602),
+UInt128(406850744790074, 5459987944141758235),
+UInt128(325480595832059, 8057339170055316911),
+UInt128(520768953331295, 1823696227862776089),
+UInt128(416615162665036, 1458956982290220871),
+UInt128(333292130132028, 15924560844799817989),
+UInt128(533267408211246, 3343204463228246844),
+UInt128(426613926568996, 17431958829550238768),
+UInt128(341291141255197, 10256218248898280691),
+UInt128(546065826008316, 1652553939269607813),
+UInt128(436852660806652, 16079438410383327543),
+UInt128(349482128645322, 5484853098822841388),
+UInt128(559171405832515, 12465113772858456544),
+UInt128(447337124666012, 9972091018286765235),
+UInt128(357869699732810, 598975185145591542),
+UInt128(286295759786248, 479180148116473233),
+UInt128(458073215657996, 15524083495953998467),
+UInt128(366458572526397, 8729917982021288450),
+UInt128(293166858021117, 18051980829842761729),
+UInt128(469066972833788, 14125774068780777475),
+UInt128(375253578267031, 232572810798891010),
+UInt128(300202862613624, 14943453507606754101),
+UInt128(480324580181799, 12841479167945075592),
+UInt128(384259664145439, 13962532149097970797),
+UInt128(307407731316351, 14859374534020286960),
+UInt128(491852370106162, 16396301624948638490),
+UInt128(393481896084930, 5738343670475090146),
+UInt128(314785516867944, 4590674936380072117),
+UInt128(503656826988710, 14723777527691936033),
+UInt128(402925461590968, 11779022022153548826),
+]
+
+private let bid_breakpoints_binary80_79: [UInt128] = [
+UInt128(322340369272774, 16801915247206659707),
+UInt128(515744590836439, 15815017951304924563),
+UInt128(412595672669151, 16341363175785849973),
+UInt128(330076538135321, 9383741725886769655),
+UInt128(528122461016514, 7635289131935010802),
+UInt128(422497968813211, 9797580120289918965),
+UInt128(337998375050569, 4148715281490024849),
+UInt128(540797400080910, 14016642079867860405),
+UInt128(432637920064728, 11213313663894288324),
+UInt128(346110336051782, 16349348560599251305),
+UInt128(553776537682852, 11401562437991160796),
+UInt128(443021230146282, 1742552320909107990),
+UInt128(354416984117025, 12462088300953017362),
+UInt128(283533587293620, 9969670640762413889),
+UInt128(453653739669792, 15951473025219862223),
+UInt128(362922991735834, 5382480790692069132),
+UInt128(290338393388667, 7995333447295565629),
+UInt128(464541429421867, 16481882330414815329),
+UInt128(371633143537494, 5806808234848031617),
+UInt128(297306514829995, 8334795402620335617),
+UInt128(475690423727992, 13335672644192536987),
+UInt128(380552338982394, 3289840485870208943),
+UInt128(304441871185915, 6321221203438077478),
+UInt128(487106993897464, 10113953925500923964),
+UInt128(389685595117971, 11780511955142649495),
+UInt128(311748476094377, 5735060749372209272),
+UInt128(498797561751003, 12865446013737445159),
+UInt128(399038049400802, 17671054440473776774),
+UInt128(319230439520642, 6758145922895200772),
+UInt128(510768703233027, 14502382291374231559),
+UInt128(408614962586422, 4223208203615564601),
+UInt128(326891970069137, 14446613007118182650),
+UInt128(523027152110620, 8357185552421450948),
+UInt128(418421721688496, 6685748441937160758),
+UInt128(334737377350797, 1659249938807818283),
+UInt128(535579803761275, 6344148716834419577),
+UInt128(428463843009020, 5075318973467535661),
+UInt128(342771074407216, 4060255178774028529),
+UInt128(548433719051545, 17564454730264176616),
+UInt128(438746975241236, 14051563784211341293),
+UInt128(350997580192989, 7551902212627162711),
+UInt128(561596128308783, 1014997095977729368),
+UInt128(449276902647026, 8190695306266004141),
+UInt128(359421522117621, 2863207430270892990),
+UInt128(287537217694096, 17047961203184355684),
+UInt128(460059548310555, 1451296221901596833),
+UInt128(368047638648444, 1161036977521277466),
+UInt128(294438110918755, 4618178396758932296),
+UInt128(471100977470008, 7389085434814291674),
+UInt128(376880781976006, 13289965977335253985),
+]
+
+private let bid_breakpoints_binary80_80: [UInt128] = [
+UInt128(301504625580805, 6942623967126292865),
+UInt128(482407400929288, 11108198347402068584),
+UInt128(385925920743430, 16265256307405475514),
+UInt128(308740736594744, 13012205045924380411),
+UInt128(493985178551591, 9751481629253277688),
+UInt128(395188142841273, 4111836488660711827),
+UInt128(316150514273018, 10668166820412390108),
+UInt128(505840822836829, 13379718097917913850),
+UInt128(404672658269463, 14393123293076241403),
+UInt128(323738126615571, 446452190235262153),
+UInt128(517981002584913, 11782369948602150414),
+UInt128(414384802067930, 16804593588365540978),
+UInt128(331507841654344, 13443674870692432782),
+UInt128(530412546646951, 10441833348882161482),
+UInt128(424330037317561, 4664117864363818862),
+UInt128(339464029854049, 41945476749144767),
+UInt128(543142447766478, 7445810392282452273),
+UInt128(434513958213182, 13335345943309782465),
+UInt128(347611166570546, 3289579125164005326),
+UInt128(556177866512873, 16331373044488139491),
+UInt128(444942293210299, 1997051991364780623),
+UInt128(355953834568239, 5286990407833734821),
+UInt128(284763067654591, 7918941141008898180),
+UInt128(455620908247346, 5291608196130416442),
+UInt128(364496726597877, 543937742162422831),
+UInt128(291597381278301, 11503196637955669234),
+UInt128(466555810045282, 11026416991245250128),
+UInt128(373244648036226, 1442435963512379456),
+UInt128(298595718428980, 15911344029777544858),
+UInt128(477753149486369, 7011406373934520156),
+UInt128(382202519589095, 9298473913889526448),
+UInt128(305762015671276, 7438779131111621158),
+UInt128(489219225074042, 4523348980294773207),
+UInt128(391375380059233, 14686725628461549535),
+UInt128(313100304047387, 681334058543508659),
+UInt128(500960486475819, 4779483308411524177),
+UInt128(400768389180655, 7512935461471129665),
+UInt128(320614711344524, 6010348369176903732),
+UInt128(512983538151238, 16995255020166866618),
+UInt128(410386830520991, 2528157571907762324),
+UInt128(328309464416792, 16779921316493851152),
+UInt128(525295143066868, 12090478847422520551),
+UInt128(420236114453494, 17051080707421837087),
+UInt128(336188891562795, 17330213380679379993),
+UInt128(537902226500473, 9281597335377456373),
+UInt128(430321781200378, 14803975497785785745),
+UInt128(344257424960303, 775133954002897626),
+UInt128(550811879936484, 15997609585372277495),
+UInt128(440649503949187, 16487436483039732319),
+UInt128(352519603159350, 5811251556947965209),
+]
+
+private let bid_breakpoints_binary80_81: [UInt128] = [
+UInt128(282015682527480, 4649001245558372167),
+UInt128(451225092043968, 7438401992893395467),
+UInt128(360980073635174, 13329419223798537020),
+UInt128(288784058908139, 14352884193780739939),
+UInt128(462054494253023, 11896568265823452933),
+UInt128(369643595402418, 16895952242142582993),
+UInt128(295714876321935, 2448715349488335425),
+UInt128(473143802115096, 3917944559181336680),
+UInt128(378515041692076, 17891750906312710636),
+UInt128(302812033353661, 10624051910308258186),
+UInt128(484499253365858, 9619785427009392451),
+UInt128(387599402692686, 15074525971091334607),
+UInt128(310079522154149, 8370271962131157363),
+UInt128(496127235446639, 2324388695184120811),
+UInt128(396901788357311, 5548859770889206972),
+UInt128(317521430685849, 749739001969455254),
+UInt128(508034289097358, 8578280032634949053),
+UInt128(406427431277886, 14241321655591779889),
+UInt128(325141945022309, 7703708509731513588),
+UInt128(520227112035695, 1257887171344690771),
+UInt128(416181689628556, 1006309737075752617),
+UInt128(332945351702844, 15562443048628243386),
+UInt128(532712562724551, 13831862433579458449),
+UInt128(426170050179641, 7376141132121656436),
+UInt128(340936040143713, 2211564090955414825),
+UInt128(545497664229940, 18295897804496305013),
+UInt128(436398131383952, 14636718243597044011),
+UInt128(349118505107162, 4330676965393814562),
+UInt128(558589608171459, 10618431959372013623),
+UInt128(446871686537167, 12184094382239521221),
+UInt128(357497349229734, 2368577876307796330),
+UInt128(285997879383787, 5584211115788147387),
+UInt128(457596607014059, 12624086600002946143),
+UInt128(366077285611247, 13788618094744267238),
+UInt128(292861828488998, 3652196846311593144),
+UInt128(468578925582397, 2154166139356638707),
+UInt128(374863140465917, 12791379355711041935),
+UInt128(299890512372734, 2854405855085012902),
+UInt128(479824819796374, 11945746997619841289),
+UInt128(383859855837099, 13245946412837783355),
+UInt128(307087884669679, 14286105945012137007),
+UInt128(491340615471487, 11789723067793688242),
+UInt128(393072492377190, 2053080824751129947),
+UInt128(314457993901752, 1642464659800903957),
+UInt128(503132790242803, 6317292270423356655),
+UInt128(402506232194242, 12432531445822505970),
+UInt128(322004985755394, 2567327527174184130),
+UInt128(515207977208630, 11486421672962515254),
+UInt128(412166381766904, 9189137338370012203),
+UInt128(329733105413523, 11040658685437920086),
+]
+
+private let bid_breakpoints_binary80_82: [UInt128] = [
+UInt128(527572968661637, 13975705081958761815),
+UInt128(422058374929310, 3801866436083188805),
+UInt128(337646699943448, 3041493148866551044),
+UInt128(540234719909517, 1177040223444571347),
+UInt128(432187775927613, 12009678622981388047),
+UInt128(345750220742090, 16986440527868931084),
+UInt128(553200353187345, 8731560770880738119),
+UInt128(442560282549876, 6985248616704590495),
+UInt128(354048226039901, 1898850078621762073),
+UInt128(283238580831920, 16276475321865050951),
+UInt128(453181729331073, 7595616441274529906),
+UInt128(362545383464858, 13455190782503444571),
+UInt128(290036306771886, 18142850255486576303),
+UInt128(464058090835019, 3203118705585149823),
+UInt128(371246472668015, 6251843779210030181),
+UInt128(296997178134412, 5001475023368024145),
+UInt128(475195485015059, 11691708852130748956),
+UInt128(380156388012047, 13042715896446509488),
+UInt128(304125110409638, 3055475087673386944),
+UInt128(486600176655421, 1199411325535508787),
+UInt128(389280141324336, 15716924319396048322),
+UInt128(311424113059469, 8884190640774928334),
+UInt128(498278580895151, 3146658581014154366),
+UInt128(398622864716120, 17274722123778964785),
+UInt128(318898291772896, 13819777699023171828),
+UInt128(510237266836634, 14732946688953254279),
+UInt128(408189813469307, 15475706165904513746),
+UInt128(326551850775446, 5001867303239790350),
+UInt128(522482961240714, 624290055699843915),
+UInt128(417986368992571, 4188780859301785455),
+UInt128(334389095194056, 18108419946409069657),
+UInt128(535022552310491, 3148030211061139188),
+UInt128(428018041848392, 17275819427816552643),
+UInt128(342414433478714, 6441957912769421468),
+UInt128(547863093565942, 17685830289914894996),
+UInt128(438290474852754, 6769966602448095350),
+UInt128(350632379882203, 9105322096700386603),
+UInt128(561011807811525, 10879166539978708242),
+UInt128(448809446249220, 8703333231982966594),
+UInt128(359047556999376, 6962666585586373275),
+UInt128(287238045599501, 1880784453727188297),
+UInt128(459580872959201, 14077301570189232244),
+UInt128(367664698367361, 7572492441409475472),
+UInt128(294131758693889, 2368645138385670055),
+UInt128(470610813910222, 11168529850900892734),
+UInt128(376488651128178, 1556126251236893541),
+UInt128(301190920902542, 8623598630473335479),
+UInt128(481905473444067, 17487106623499247090),
+UInt128(385524378755254, 6610987669315577025),
+UInt128(308419503004203, 8978138950194371943),
+]
+
+private let bid_breakpoints_binary80_83: [UInt128] = [
+UInt128(493471204806725, 10675673505569084786),
+UInt128(394776963845380, 8540538804455267829),
+UInt128(315821571076304, 6832431043564214263),
+UInt128(505314513722086, 18310587299186563468),
+UInt128(404251610977669, 10959121024607340451),
+UInt128(323401288782135, 12456645634427782684),
+UInt128(517442062051417, 1483888941374900678),
+UInt128(413953649641133, 12255157597325651512),
+UInt128(331162919712906, 17182823707344341856),
+UInt128(529860671540651, 1667076228557574707),
+UInt128(423888537232520, 16091056241813701059),
+UInt128(339110829786016, 12872844993450960847),
+UInt128(542577327657626, 13217854360037716709),
+UInt128(434061862126101, 6884934673288263044),
+UInt128(347249489700881, 1818598923888700112),
+UInt128(555599183521409, 13977804722447651149),
+UInt128(444479346817127, 14871592592700031242),
+UInt128(355583477453702, 4518576444676204347),
+UInt128(284466781962961, 14682907599966694447),
+UInt128(455146851140738, 16113954530462890469),
+UInt128(364117480912591, 1823117180144581406),
+UInt128(291293984730072, 16215889003083306417),
+UInt128(466070375568116, 11188027145965648975),
+UInt128(372856300454493, 5261072902030608857),
+UInt128(298285040363594, 11587555951108307732),
+UInt128(477256064581751, 7472043077547561402),
+UInt128(381804851665401, 2288285647296138798),
+UInt128(305443881332320, 16588023776804552331),
+UInt128(488710210131713, 8094093969177732114),
+UInt128(390968168105370, 13853972804826006338),
+UInt128(312774534484296, 11083178243860805070),
+UInt128(500439255174874, 10354387560693467466),
+UInt128(400351404139899, 11972858863296684296),
+UInt128(320281123311919, 13267635905379257760),
+UInt128(512449797299071, 10160171004381081446),
+UInt128(409959837839257, 4438787988762954834),
+UInt128(327967870271405, 14619076835236094836),
+UInt128(524748592434249, 4943778862668200123),
+UInt128(419798873947399, 7644371904876470421),
+UInt128(335839099157919, 9804846338643086660),
+UInt128(537342558652671, 4619707697603207687),
+UInt128(429874046922137, 6417343340655826),
+UInt128(343899237537709, 11073180318898255630),
+UInt128(550238780060335, 6649042066011478039),
+UInt128(440191024048268, 5319233652809182431),
+UInt128(352152819238614, 11634084551731166591),
+UInt128(281722255390891, 12996616456126843596),
+UInt128(450755608625426, 13415888700319129108),
+UInt128(360604486900341, 7043362145513392963),
+UInt128(288483589520273, 1945340901668804047),
+]
+
+private let bid_breakpoints_binary80_84: [UInt128] = [
+UInt128(461573743232436, 17869940701637727768),
+UInt128(369258994585949, 10606603746568271891),
+UInt128(295407195668759, 12174631811996527836),
+UInt128(472651513070015, 8411364454968713569),
+UInt128(378121210456012, 6729091563974970855),
+UInt128(302496968364809, 16451319695405707653),
+UInt128(483995149383695, 15254065068423401276),
+UInt128(387196119506956, 12203252054738721021),
+UInt128(309756895605565, 6073252829049066493),
+UInt128(495611032968904, 9717204526478506390),
+UInt128(396488826375123, 11463112435924715435),
+UInt128(317191061100098, 16549187578223592994),
+UInt128(507505697760158, 4342607236706286852),
+UInt128(406004558208126, 10852783418848850128),
+UInt128(324803646566501, 4992877920337169779),
+UInt128(519685834506402, 609907043055651000),
+UInt128(415748667605121, 11555972078670251770),
+UInt128(332598934084097, 5555428848194291092),
+UInt128(532158294534555, 12578034971852776071),
+UInt128(425726635627644, 10062427977482220857),
+UInt128(340581308502115, 11739291196727687009),
+UInt128(544930093603385, 336121841054747598),
+UInt128(435944074882708, 268897472843798078),
+UInt128(348755259906166, 7593815607758859109),
+UInt128(558008415849866, 4771407342930353928),
+UInt128(446406732679893, 127777059602372819),
+UInt128(357125386143914, 7480919277165718902),
+UInt128(285700308915131, 9674084236474485445),
+UInt128(457120494264210, 8099837148875356065),
+UInt128(365696395411368, 6479869719100284852),
+UInt128(292557116329094, 12562593404764048528),
+UInt128(468091386126551, 9032103003396746675),
+UInt128(374473108901241, 3536333587975487017),
+UInt128(299578487120992, 17586462129348030906),
+UInt128(479325579393588, 13380944147989208158),
+UInt128(383460463514870, 18083452947875187172),
+UInt128(306768370811896, 14466762358300149738),
+UInt128(490829393299034, 15768122143796418934),
+UInt128(392663514639227, 16303846529779045471),
+UInt128(314130811711382, 5664379594339415730),
+UInt128(502609298738211, 12752356165684975491),
+UInt128(402087438990569, 6512536117806070070),
+UInt128(321669951192455, 8899377708986766379),
+UInt128(514671921907928, 14239004334378826207),
+UInt128(411737537526343, 323157023277329996),
+UInt128(329390030021074, 7637223248105684643),
+UInt128(527024048033719, 1151510752743364459),
+UInt128(421619238426975, 4610557416936601890),
+UInt128(337295390741580, 3688445933549281512),
+UInt128(539672625186528, 5901513493678850420),
+]
+
+private let bid_breakpoints_binary80_85: [UInt128] = [
+UInt128(431738100149222, 12099908424426900982),
+UInt128(345390480119378, 2301229110057700139),
+UInt128(552624768191004, 18439361835059961516),
+UInt128(442099814552803, 18440838282789879536),
+UInt128(353679851642243, 3684624182006172659),
+UInt128(282943881313794, 10326396975088758774),
+UInt128(452710210102071, 5454188715916283068),
+UInt128(362168168081657, 674002157991116131),
+UInt128(289734534465325, 11607248170618623875),
+UInt128(463575255144521, 124852999280246584),
+UInt128(370860204115616, 14857277658391838560),
+UInt128(296688163292493, 8196473311971560524),
+UInt128(474701061267989, 9425008484412586516),
+UInt128(379760849014391, 11229355602271979536),
+UInt128(303808679211513, 5294135667075673305),
+UInt128(486093886738421, 4781268252579166966),
+UInt128(388875109390737, 135665787321423249),
+UInt128(311100087512589, 11176579074082869569),
+UInt128(497760140020143, 6814480074306860341),
+UInt128(398208112016114, 12830281688929308919),
+UInt128(318566489612891, 13953574165885357458),
+UInt128(509706383380626, 14947021035932751287),
+UInt128(407765106704501, 8268268014004290707),
+UInt128(326212085363601, 2925265596461522242),
+UInt128(521939336581761, 15748471398564166557),
+UInt128(417551469265409, 8909428304109422922),
+UInt128(334041175412327, 10816891458029448661),
+UInt128(534465880659724, 2549631073879476565),
+UInt128(427572704527779, 5729053673845491575),
+UInt128(342058163622223, 8272591753818303583),
+UInt128(547293061795557, 9546797991367375410),
+UInt128(437834449436446, 258740763610079682),
+UInt128(350267559549156, 14964387869855705038),
+UInt128(560428095278650, 16564322962285307415),
+UInt128(448342476222920, 13251458369828245932),
+UInt128(358673980978336, 10601166695862596745),
+UInt128(286939184782669, 4791584541948167073),
+UInt128(459102695652270, 15045232896600887963),
+UInt128(367282156521816, 12036186317280710371),
+UInt128(293825725217453, 5939600239082657973),
+UInt128(470121160347925, 5814011567790342434),
+UInt128(376096928278340, 4651209254232273947),
+UInt128(300877542622672, 3720967403385819158),
+UInt128(481404068196275, 9642896660159220976),
+UInt128(385123254557020, 7714317328127376781),
+UInt128(308098603645616, 6171453862501901424),
+UInt128(492957765832986, 2495628550519221633),
+UInt128(394366212666388, 16753898099383018599),
+UInt128(315492970133111, 2335072035280683910),
+UInt128(504788752212977, 14804161700674825225),
+]
+
+private let bid_breakpoints_binary80_86: [UInt128] = [
+UInt128(403831001770382, 4464631731056039534),
+UInt128(323064801416305, 14639751829070562596),
+UInt128(516903682266089, 4976858852803348539),
+UInt128(413522945812871, 7670835896984589154),
+UInt128(330818356650297, 2447319902845761000),
+UInt128(529309370640475, 7605060659295127923),
+UInt128(423447496512380, 6084048527436102339),
+UInt128(338757997209904, 4867238821948881871),
+UInt128(542012795535846, 15166279744602031640),
+UInt128(433610236428677, 8443674980939714989),
+UInt128(346888189142941, 17822986428977502960),
+UInt128(555021102628707, 2691336583170632474),
+UInt128(444016882102965, 13221115710762236949),
+UInt128(355213505682372, 10576892568609789559),
+UInt128(284170804545898, 1082816425404011001),
+UInt128(454673287273436, 16489901539614058894),
+UInt128(363738629818749, 9502572416949336792),
+UInt128(290990903854999, 11291406748301379757),
+UInt128(465585446167999, 6998204353056476642),
+UInt128(372468356934399, 9287912297187091636),
+UInt128(297974685547519, 11119678652491583632),
+UInt128(476759496876031, 6723439399760802842),
+UInt128(381407597500825, 1689402705066731951),
+UInt128(305126078000660, 1351522164053385560),
+UInt128(488201724801056, 2162435462485416897),
+UInt128(390561379840844, 16487343628955974810),
+UInt128(312449103872675, 16879223717906690171),
+UInt128(499918566196281, 8560013874941152658),
+UInt128(399934852957025, 3158662285211011803),
+UInt128(319947882365620, 2526929828168809443),
+UInt128(511916611784992, 4043087725070095108),
+UInt128(409533289427993, 14302516624281807056),
+UInt128(327626631542395, 373966855199714675),
+UInt128(524202610467832, 598346968319543481),
+UInt128(419362088374265, 11546724018881365754),
+UInt128(335489670699412, 9237379215105092603),
+UInt128(536783473119060, 22411485200506873),
+UInt128(429426778495248, 17929188160405498),
+UInt128(343541422796198, 7393040980012145045),
+UInt128(549666276473917, 8139516753277521749),
+UInt128(439733021179133, 17579659846847748368),
+UInt128(351786416943307, 2995681433252467725),
+UInt128(562858267109291, 8482439107945858684),
+UInt128(450286613687433, 3096602471614776624),
+UInt128(360229290949946, 9855979606775641945),
+UInt128(288183432759957, 4195434870678603233),
+UInt128(461093492415931, 10402044607827675496),
+UInt128(368874793932745, 4632286871520230073),
+UInt128(295099835146196, 3705829497216184059),
+UInt128(472159736233913, 16997373639771625464),
+]
+
+private let bid_breakpoints_binary80_87: [UInt128] = [
+UInt128(377727788987131, 2529852467591569401),
+UInt128(302182231189704, 16781277233040896814),
+UInt128(483491569903527, 15781997128639703933),
+UInt128(386793255922822, 5246900073427942500),
+UInt128(309434604738257, 15265566502968084969),
+UInt128(495095367581212, 9667511145781294658),
+UInt128(396076294064970, 355311287141215080),
+UInt128(316861035251976, 284249029712972064),
+UInt128(506977656403161, 11522844891766486272),
+UInt128(405582125122529, 5528927098671278695),
+UInt128(324465700098023, 8112490493678933279),
+UInt128(519145120156837, 9290635975144382923),
+UInt128(415316096125470, 53811150631685692),
+UInt128(332252876900376, 43048920505348553),
+UInt128(531604603040601, 11136924717034288655),
+UInt128(425283682432481, 5220190958885520601),
+UInt128(340226945945985, 486803952366506158),
+UInt128(544363113513576, 778886323786409852),
+UInt128(435490490810860, 15380504317996769175),
+UInt128(348392392648688, 12304403454397415340),
+UInt128(557427828237901, 15997696712293954220),
+UInt128(445942262590321, 9108808555093253053),
+UInt128(356753810072257, 3597698029332692119),
+UInt128(285403048057805, 13946204867691884665),
+UInt128(456644876892489, 3867183714597463848),
+UInt128(365315901513991, 6783095786419881402),
+UInt128(292252721211193, 1737127814393994798),
+UInt128(467604353937908, 17536799761998032970),
+UInt128(374083483150327, 2961393365372695406),
+UInt128(299266786520261, 13437161136523887294),
+UInt128(478826858432418, 14120760188954399025),
+UInt128(383061486745935, 228561706937788250),
+UInt128(306449189396748, 182849365550230600),
+UInt128(490318703034796, 15049954243848010253),
+UInt128(392254962427837, 8350614580336497879),
+UInt128(313803969942269, 17748538108494929273),
+UInt128(502086351907631, 17329614529366155867),
+UInt128(401669081526105, 10174342808751014371),
+UInt128(321335265220884, 8139474247000811496),
+UInt128(514136424353415, 1955112350975567425),
+UInt128(411309139482732, 1564089880780453940),
+UInt128(329047311586185, 12319318348850094121),
+UInt128(526475698537897, 1264165284450598978),
+UInt128(421180558830317, 12079378671786210152),
+UInt128(336944447064254, 2284805307945147475),
+UInt128(539111115302806, 11034386122196056607),
+UInt128(431288892242245, 5138160083014934962),
+UInt128(345031113793796, 4110528066411947970),
+UInt128(552049782070073, 17644891350484847722),
+UInt128(441639825656059, 3047866636162147208),
+]
+
+private let bid_breakpoints_binary80_88: [UInt128] = [
+UInt128(353311860524847, 6127642123671628089),
+UInt128(282649488419877, 15970160143163033441),
+UInt128(452239181471804, 10794860970093212213),
+UInt128(361791345177443, 12325237590816480093),
+UInt128(289433076141954, 17238887702137004721),
+UInt128(463092921827127, 16514173879193476584),
+UInt128(370474337461702, 5832641473870960621),
+UInt128(296379469969361, 15734159623322499466),
+UInt128(474207151950978, 17795957767832178500),
+UInt128(379365721560783, 3168719770040011830),
+UInt128(303492577248626, 9913673445515830111),
+UInt128(485588123597802, 8483179883341507531),
+UInt128(388470498878241, 17854590350898936994),
+UInt128(310776399102593, 10594323465977239272),
+UInt128(497242238564149, 13261568730821672512),
+UInt128(397793790851319, 14298603799399248333),
+UInt128(318235032681055, 15128231854261308989),
+UInt128(509176052289689, 5758426893108542767),
+UInt128(407340841831751, 8296090329228744537),
+UInt128(325872673465401, 2947523448641085306),
+UInt128(521396277544641, 15784083962051467460),
+UInt128(417117022035713, 8937918354899263645),
+UInt128(333693617628570, 14529032313403231562),
+UInt128(533909788205713, 4799707627735618884),
+UInt128(427127830564570, 11218463731672315753),
+UInt128(341702264451656, 8974770985337852602),
+UInt128(546723623122650, 6980935947056743518),
+UInt128(437378898498120, 5584748757645394814),
+UInt128(349903118798496, 4467799006116315851),
+UInt128(559844990077593, 18216524854011836332),
+UInt128(447875992062075, 3505173438983738096),
+UInt128(358300793649660, 2804138751186990477),
+UInt128(286640634919728, 2243311000949592381),
+UInt128(458625015871564, 18346692860486989103),
+UInt128(366900012697251, 18366703103131501605),
+UInt128(293520010157801, 11004013667763290961),
+UInt128(469632016252482, 10227724238937444892),
+UInt128(375705613001986, 803481761666135267),
+UInt128(300564490401588, 15400180668300549506),
+UInt128(480903184642542, 2504196180829417271),
+UInt128(384722547714033, 13071403388889264786),
+UInt128(307778038171226, 17835820340595232475),
+UInt128(492444861073963, 2711870841758999698),
+UInt128(393955888859170, 9548194302891020405),
+UInt128(315164711087336, 7638555442312816324),
+UInt128(504263537739738, 4842991078216685472),
+UInt128(403410830191790, 11253090492057169024),
+UInt128(322728664153432, 9002472393645735219),
+UInt128(516365862645491, 18093304644575086674),
+UInt128(413092690116393, 10785294900918159016),
+]
+
+private let bid_breakpoints_binary80_89: [UInt128] = [
+UInt128(330474152093114, 16006933550218347859),
+UInt128(528758643348983, 14543047236123625605),
+UInt128(423006914679187, 566391344673169514),
+UInt128(338405531743349, 11521159519964266581),
+UInt128(541448850789359, 7365808787717095560),
+UInt128(433159080631487, 9581995844915586771),
+UInt128(346527264505190, 286899046448648771),
+UInt128(554443623208304, 459038474317838033),
+UInt128(443554898566643, 4056579594196180750),
+UInt128(354843918853314, 10623961304840765246),
+UInt128(283875135082651, 12188517858614522520),
+UInt128(454200216132242, 12122930944299415386),
+UInt128(363360172905794, 2319647125955711662),
+UInt128(290688138324635, 5545066515506479653),
+UInt128(465101021319416, 8872106424810367445),
+UInt128(372080817055533, 3408336325106383633),
+UInt128(297664653644426, 10105366689568927552),
+UInt128(476263445831082, 8789889073826463438),
+UInt128(381010756664865, 18099957703286901720),
+UInt128(304808605331892, 14479966162629521376),
+UInt128(487693768531028, 8410550601239592908),
+UInt128(390155014824822, 14107138110475494973),
+UInt128(312124011859858, 3907012858896575332),
+UInt128(499398418975773, 2561871759492610208),
+UInt128(399518735180618, 9428195037077908813),
+UInt128(319614988144494, 14921253659146147697),
+UInt128(511383981031191, 12805959410408105345),
+UInt128(409107184824953, 6555418713584573953),
+UInt128(327285747859962, 12623032600351479809),
+UInt128(523657196575940, 5439456901594726401),
+UInt128(418925757260752, 4351565521275781121),
+UInt128(335140605808601, 14549298861246355866),
+UInt128(536224969293762, 15900180548510348740),
+UInt128(428979975435010, 5341446809324458345),
+UInt128(343183980348008, 4273157447459566676),
+UInt128(549094368556813, 3147703101193396359),
+UInt128(439275494845450, 9896860110438537734),
+UInt128(351420395876360, 7917488088350830187),
+UInt128(562272633402176, 12667980941361328299),
+UInt128(449818106721741, 6445035938347152316),
+UInt128(359854485377393, 1466679935935811529),
+UInt128(287883588301914, 8552041578232469870),
+UInt128(460613741283063, 2615220080946220823),
+UInt128(368490993026450, 9470873694240797304),
+UInt128(294792794421160, 7576698955392637843),
+UInt128(471668471073856, 12122718328628220550),
+UInt128(377334776859085, 6008825848160666116),
+UInt128(301867821487268, 4807060678528532893),
+UInt128(482988514379629, 4001948270903742306),
+UInt128(386390811503703, 6890907431464904168),
+]
+
+private let bid_breakpoints_binary80_90: [UInt128] = [
+UInt128(309112649202962, 12891423574655743981),
+UInt128(494580238724740, 5868882460481549076),
+UInt128(395664190979792, 4695105968385239261),
+UInt128(316531352783833, 14824131218933922378),
+UInt128(506450164454134, 1582517061842813866),
+UInt128(405160131563307, 4955362464216161416),
+UInt128(324128105250645, 15032336415598660103),
+UInt128(518604968401033, 5604994191248304548),
+UInt128(414883974720826, 11862692982482464285),
+UInt128(331907179776661, 5800805571244061105),
+UInt128(531051487642658, 1902591284506677121),
+UInt128(424841190114126, 8900770657089162343),
+UInt128(339872952091301, 3431267710929419551),
+UInt128(543796723346081, 16558074781712802252),
+UInt128(435037378676865, 9557111010628331478),
+UInt128(348029902941492, 7645688808502665183),
+UInt128(556847844706387, 15922450908346174616),
+UInt128(445478275765110, 5359263097193119046),
+UInt128(356382620612088, 4287410477754495237),
+UInt128(285106096489670, 10808626011687416836),
+UInt128(456169754383472, 17293801618699866937),
+UInt128(364935803506778, 6456343665476072903),
+UInt128(291948642805422, 12543772561864678969),
+UInt128(467117828488676, 5312640840015845058),
+UInt128(373694262790941, 560763857270765723),
+UInt128(298955410232752, 15206006344784253871),
+UInt128(478328656372404, 9572214892687164901),
+UInt128(382662925097923, 11347120728891642244),
+UInt128(306130340078338, 16456394212597134442),
+UInt128(489808544125342, 4194137851703953168),
+UInt128(391846835300273, 14423356725588893504),
+UInt128(313477468240219, 470638936245383833),
+UInt128(501563949184350, 8131719927476434780),
+UInt128(401251159347480, 6505375941981147824),
+UInt128(321000927477984, 5204300753584918259),
+UInt128(513601483964774, 15705578835219689861),
+UInt128(410881187171819, 16253811882917662212),
+UInt128(328704949737455, 16692398321076040093),
+UInt128(525927919579929, 8261093240012112533),
+UInt128(420742335663943, 10298223406751600349),
+UInt128(336593868531154, 15617276354885100926),
+UInt128(538550189649847, 13919595723590430512),
+UInt128(430840151719878, 3756978949388523763),
+UInt128(344672121375902, 10384280788994639657),
+UInt128(551475394201444, 1857454003423782158),
+UInt128(441180315361155, 5175312017480936050),
+UInt128(352944252288924, 4140249613984748840),
+UInt128(282355401831139, 7001548505929709395),
+UInt128(451768642929823, 134431165261804062),
+UInt128(361414914343858, 7486242561693263896),
+]
+
+private let bid_breakpoints_binary80_91: [UInt128] = [
+UInt128(289131931475086, 13367691678838431763),
+UInt128(462611090360138, 14009609056657670175),
+UInt128(370088872288111, 139640801100405170),
+UInt128(296071097830488, 14869107899847965429),
+UInt128(473713756528782, 1654479751305282747),
+UInt128(378971005223025, 12391630245269957167),
+UInt128(303176804178420, 9913304196215965734),
+UInt128(485082886685472, 15861286713945545174),
+UInt128(388066309348378, 5310331741672615493),
+UInt128(310453047478702, 11626963022821913041),
+UInt128(496724875965924, 3845745577547419573),
+UInt128(397379900772739, 6765945276779845981),
+UInt128(317903920618191, 9102105036165787108),
+UInt128(508646272989106, 7184670428381438727),
+UInt128(406917018391285, 2058387527963240658),
+UInt128(325533614713028, 1646710022370592526),
+UInt128(520853783540844, 17392131294760589335),
+UInt128(416683026832675, 17603053850550381791),
+UInt128(333346421466140, 14082443080440305433),
+UInt128(533354274345825, 4085164854994937077),
+UInt128(426683419476660, 3268131883995949662),
+UInt128(341346735581328, 2614505507196759729),
+UInt128(546154776930125, 493859996772905244),
+UInt128(436923821544100, 395087997418324195),
+UInt128(349539057235280, 316070397934659356),
+UInt128(559262491576448, 505712636695454970),
+UInt128(447409993261158, 7783267738840184622),
+UInt128(357927994608926, 13605311820555968344),
+UInt128(286342395687141, 7194900641702864352),
+UInt128(458147833099426, 4133143397240762317),
+UInt128(366518266479540, 18063909976760251146),
+UInt128(293214613183632, 14451127981408200917),
+UInt128(469143381093812, 8364409511285480174),
+UInt128(375314704875049, 17759574053254115109),
+UInt128(300251763900039, 17897008057345202410),
+UInt128(480402822240063, 17567166447526592887),
+UInt128(384322257792051, 2985686713795543340),
+UInt128(307457806233640, 17145944630004075965),
+UInt128(491932489973825, 8986767334296969928),
+UInt128(393545991979060, 7189413867437575942),
+UInt128(314836793583248, 5751531093950060754),
+UInt128(503738869733197, 5513100935578186883),
+UInt128(402991095786557, 15478527192688280476),
+UInt128(322392876629246, 5004124124666803734),
+UInt128(515828602606794, 627900969983065329),
+UInt128(412662882085435, 4191669590728362586),
+UInt128(330130305668348, 3353335672582690069),
+UInt128(528208489069357, 1675988261390393787),
+UInt128(422566791255485, 12408837053338045999),
+UInt128(338053433004388, 9927069642670436799),
+]
+
+private let bid_breakpoints_binary80_92: [UInt128] = [
+UInt128(540885492807021, 12193962613530788556),
+UInt128(432708394245617, 6065821276082720521),
+UInt128(346166715396493, 15920703465091907387),
+UInt128(553866744634390, 3337032655695589880),
+UInt128(443093395707512, 2669626124556471904),
+UInt128(354474716566009, 13203747343870908492),
+UInt128(283579773252807, 14252346689838637117),
+UInt128(453727637204492, 8046359444774178095),
+UInt128(362982109763593, 17505134000045073445),
+UInt128(290385687810875, 2936060755810327787),
+UInt128(464617100497400, 4697697209296524459),
+UInt128(371693680397920, 3758157767437219567),
+UInt128(297354944318336, 3006526213949775653),
+UInt128(475767910909337, 15878488386545372015),
+UInt128(380614328727470, 5324093079752476966),
+UInt128(304491462981976, 4259274463801981573),
+UInt128(487186340771161, 17882885586308901486),
+UInt128(389749072616929, 10616959654305210865),
+UInt128(311799258093543, 12182916538186079015),
+UInt128(498878812949669, 15803317646355816102),
+UInt128(399103050359735, 16332002931826563205),
+UInt128(319282440287788, 13065602345461250564),
+UInt128(510851904460461, 17215614937996090579),
+UInt128(408681523568369, 10083143135654962140),
+UInt128(326945218854695, 11755863323265880035),
+UInt128(523112350167513, 362637243515856440),
+UInt128(418489880134010, 7668807424296505798),
+UInt128(334791904107208, 6135045939437204639),
+UInt128(535667046571533, 6126724688357617099),
+UInt128(428533637257226, 12280077380169914325),
+UInt128(342826909805781, 6134713089394021137),
+UInt128(548523055689250, 2436843313546613173),
+UInt128(438818444551400, 1949474650837290538),
+UInt128(351054755641120, 1559579720669832431),
+UInt128(561687609025792, 2495327553071731889),
+UInt128(449350087220633, 13064308486683116481),
+UInt128(359480069776506, 17830144418830313831),
+UInt128(287584055821205, 10574766720322340742),
+UInt128(460134489313928, 16919626752515745187),
+UInt128(368107591451143, 2467654957786865180),
+UInt128(294486073160914, 9352821595713312790),
+UInt128(471177717057463, 3896468108915569495),
+UInt128(376942173645970, 10495872116616276242),
+UInt128(301553738916776, 8396697693293020994),
+UInt128(482485982266842, 6056018679785012944),
+UInt128(385988785813473, 15912861388053741325),
+UInt128(308791028650779, 1662242666217262090),
+UInt128(494065645841246, 10038285895431439991),
+UInt128(395252516672997, 4341279901603241669),
+UInt128(316202013338397, 14541070365508324305),
+]
+
+private let bid_breakpoints_binary80_93: [UInt128] = [
+UInt128(505923221341436, 8508317325845677595),
+UInt128(404738577073149, 3117305045934631753),
+UInt128(323790861658519, 6183192851489615725),
+UInt128(518065378653630, 17271806191867205807),
+UInt128(414452302922904, 13817444953493764646),
+UInt128(331561842338323, 14743304777536922040),
+UInt128(530498947741318, 1453194755607613325),
+UInt128(424399158193054, 8541253433969911306),
+UInt128(339519326554443, 10522351561917839368),
+UInt128(543230922487109, 13146413684326632666),
+UInt128(434584737989687, 14206479762203216456),
+UInt128(347667790391750, 3986486180278752518),
+UInt128(556268464626800, 6378377888446004029),
+UInt128(445014771701440, 5102702310756803223),
+UInt128(356011817361152, 4082161848605442578),
+UInt128(284809453888921, 14333775923110085032),
+UInt128(455695126222274, 15555343847492315406),
+UInt128(364556100977819, 16133623892735762648),
+UInt128(291644880782255, 16596247928930520441),
+UInt128(466631809251609, 8107252612579281090),
+UInt128(373305447401287, 10175150904805335195),
+UInt128(298644357921030, 761423094360447510),
+UInt128(477830972673648, 1218276950976716016),
+UInt128(382264778138918, 8353319190265193459),
+UInt128(305811822511134, 14061352981695975413),
+UInt128(489298916017815, 11430118326487829692),
+UInt128(391439132814252, 9144094661190263754),
+UInt128(313151306251401, 18383322173177941972),
+UInt128(501042090002243, 3587873773891334894),
+UInt128(400833672001794, 10248996648596888561),
+UInt128(320666937601435, 11888546133619421172),
+UInt128(513067100162297, 574929740081522260),
+UInt128(410453680129837, 11527990236290948777),
+UInt128(328362944103870, 1843694559548938375),
+UInt128(525380710566192, 2949911295278301401),
+UInt128(420304568452953, 13427975480448372090),
+UInt128(336243654762362, 18121078013842518318),
+UInt128(537989847619780, 14236329563180388017),
+UInt128(430391878095824, 11389063650544310414),
+UInt128(344313502476659, 12800599735177358654),
+UInt128(550901603962655, 9412913132058042877),
+UInt128(440721283170124, 7530330505646434301),
+UInt128(352577026536099, 9713613219259057764),
+UInt128(282061621228879, 11460239390149156535),
+UInt128(451298593966207, 7268336580012919486),
+UInt128(361038875172965, 16882715708236066558),
+UInt128(288831100138372, 13506172566588853246),
+UInt128(462129760221396, 6852480847574523902),
+UInt128(369703808177117, 1792635863317708798),
+UInt128(295763046541693, 12502155134879898008),
+]
+
+private let bid_breakpoints_binary80_94: [UInt128] = [
+UInt128(473220874466709, 16314099401065926490),
+UInt128(378576699573367, 16740628335594651515),
+UInt128(302861359658694, 6013805038991900566),
+UInt128(484578175453910, 17000785691870861552),
+UInt128(387662540363128, 13600628553496689241),
+UInt128(310130032290502, 18259200472281172039),
+UInt128(496208051664804, 14457325496682233970),
+UInt128(396966441331843, 15255209212087697499),
+UInt128(317573153065475, 1136120925444427030),
+UInt128(508117044904760, 1817793480711083248),
+UInt128(406493635923808, 1454234784568866598),
+UInt128(325194908739046, 8542085457138913925),
+UInt128(520311853982474, 6288639101938441634),
+UInt128(416249483185979, 8720260096292663630),
+UInt128(332999586548783, 10665556891776041227),
+UInt128(532799338478053, 13375542212099755641),
+UInt128(426239470782442, 18079131399163625159),
+UInt128(340991576625954, 7084607489847079481),
+UInt128(545586522601527, 267325539529596200),
+UInt128(436469218081221, 11281906875849407929),
+UInt128(349175374464977, 5336176685937616020),
+UInt128(558680599143963, 12227231512242095956),
+UInt128(446944479315170, 17160482839277497411),
+UInt128(357555583452136, 13728386271421997928),
+UInt128(286044466761709, 7293360202395688019),
+UInt128(457671146818735, 601329879607369862),
+UInt128(366136917454988, 481063903685895889),
+UInt128(292909533963990, 7763548752432537358),
+UInt128(468655254342384, 12421678003892059773),
+UInt128(374924203473907, 13626691217855558141),
+UInt128(299939362779126, 3522655344800625867),
+UInt128(479902980446601, 16704294995906732356),
+UInt128(383922384357281, 9674087181983475562),
+UInt128(307137907485825, 4049920930844870126),
+UInt128(491420651977320, 6479873489351792202),
+UInt128(393136521581856, 5183898791481433762),
+UInt128(314509217265485, 457770218443236686),
+UInt128(503214747624776, 732432349509178698),
+UInt128(402571798099820, 15343341138574984251),
+UInt128(322057438479856, 12274672910859987401),
+UInt128(515291901567770, 12260779027892159195),
+UInt128(412233521254216, 9808623222313727356),
+UInt128(329786817003373, 4157549763109071561),
+UInt128(527658907205397, 2962730806232604175),
+UInt128(422127125764317, 13438231089211814310),
+UInt128(337701700611454, 3371887241885630801),
+UInt128(540322720978326, 12773717216500829929),
+UInt128(432258176782661, 6529624958458753620),
+UInt128(345806541426129, 1534351152025092573),
+UInt128(553290466281806, 9833659472723968763),
+]
+
+private let bid_breakpoints_binary80_95: [UInt128] = [
+UInt128(442632373025445, 4177578763437264687),
+UInt128(354105898420356, 3342063010749811749),
+UInt128(283284718736284, 17431045667567490692),
+UInt128(453255549978055, 16821626623882254138),
+UInt128(362604439982444, 13457301299105803311),
+UInt128(290083551985955, 14455189854026552972),
+UInt128(464133683177529, 4681559692732933139),
+UInt128(371306946542023, 7434596568928256834),
+UInt128(297045557233618, 13326374884626426114),
+UInt128(475272891573789, 17632851000660371459),
+UInt128(380218313259031, 17795629615270207490),
+UInt128(304174650607225, 10547154877474255669),
+UInt128(486679440971560, 16875447803958809070),
+UInt128(389343552777248, 13500358243167047256),
+UInt128(311474842221798, 18178984224017458451),
+UInt128(498359747554878, 6950281869976471583),
+UInt128(398687798043902, 12938923125464997913),
+UInt128(318950238435122, 2972440870888177684),
+UInt128(510320381496195, 8445254208162994618),
+UInt128(408256305196956, 6756203366530395694),
+UInt128(326605044157565, 1715613878482406232),
+UInt128(522568070652104, 2744982205571849971),
+UInt128(418054456521683, 5885334579199390300),
+UInt128(334443565217346, 12086965292843332886),
+UInt128(535109704347754, 11960446839065511972),
+UInt128(428087763478203, 13257706285994319901),
+UInt128(342470210782562, 17984862658279276567),
+UInt128(547952337252100, 14018384994279201215),
+UInt128(438361869801680, 11214707995423360972),
+UInt128(350689495841344, 8971766396338688777),
+UInt128(561103193346151, 3286779789916171074),
+UInt128(448882554676920, 17386819090900578152),
+UInt128(359106043741536, 13909455272720462522),
+UInt128(287284834993229, 7438215403434459694),
+UInt128(459655735989167, 833098201269404541),
+UInt128(367724588791333, 11734525005241254602),
+UInt128(294179671033066, 16766317633676824328),
+UInt128(470687473652907, 1000666510689546663),
+UInt128(376549978922325, 11868579652777368300),
+UInt128(301239983137860, 9494863722221894640),
+UInt128(481983973020576, 15191781955555031424),
+UInt128(385587178416461, 8464076749702114816),
+UInt128(308469742733169, 3081912585019781529),
+UInt128(493551588373070, 12309757765515471094),
+UInt128(394841270698456, 9847806212412376875),
+UInt128(315873016558765, 4188896155187991177),
+UInt128(505396826494024, 6702233848300785883),
+UInt128(404317461195219, 9051135893382539029),
+UInt128(323453968956175, 10930257529447941547),
+UInt128(517526350329880, 17488412047116706475),
+]
+
+private let bid_breakpoints_binary80_96: [UInt128] = [
+UInt128(414021080263904, 13990729637693365180),
+UInt128(331216864211123, 14881932524896602467),
+UInt128(529946982737798, 1674999151383102008),
+UInt128(423957586190238, 8718696950590302253),
+UInt128(339166068952190, 14353655189956062449),
+UInt128(542665710323505, 4519104230220148302),
+UInt128(434132568258804, 3615283384176118641),
+UInt128(347306054607043, 6581575522082805236),
+UInt128(555689687371269, 6841172020590578055),
+UInt128(444551749897015, 9162286431214372767),
+UInt128(355641399917612, 7329829144971498214),
+UInt128(284513119934089, 16931909760202929540),
+UInt128(455220991894543, 16023009172098956295),
+UInt128(364176793515635, 1750360893453434067),
+UInt128(291341434812508, 1400288714762747253),
+UInt128(466146295700012, 16997857202588036898),
+UInt128(372917036560010, 6219588132586608872),
+UInt128(298333629248008, 4975670506069287098),
+UInt128(477333806796813, 4271723994968949033),
+UInt128(381867045437450, 10796076825458979873),
+UInt128(305493636349960, 8636861460367183898),
+UInt128(488789818159936, 13818978336587494237),
+UInt128(391031854527949, 7365833854528085067),
+UInt128(312825483622359, 9582015898364378376),
+UInt128(500520773795775, 4263178993157274433),
+UInt128(400416619036620, 3410543194525819546),
+UInt128(320333295229296, 2728434555620655637),
+UInt128(512533272366873, 15433541733218779989),
+UInt128(410026617893499, 1278786942349293021),
+UInt128(328021294314799, 4712378368621344740),
+UInt128(524834070903678, 14918503019277972231),
+UInt128(419867256722943, 866755971196646815),
+UInt128(335893805378354, 8072102406441138098),
+UInt128(537430088605367, 1847317406080089988),
+UInt128(429944070884293, 12545900369089802960),
+UInt128(343955256707434, 17415417924755663014),
+UInt128(550328410731895, 16796622235383329854),
+UInt128(440262728585516, 13437297788306663883),
+UInt128(352210182868413, 7060489415903420783),
+UInt128(281768146294730, 13027089162206557273),
+UInt128(450829034071569, 2396598585820940021),
+UInt128(360663227257255, 5606627683398662340),
+UInt128(288530581805804, 4485302146718929872),
+UInt128(461648930889286, 14555181064234108441),
+UInt128(369319144711429, 7954796036645376430),
+UInt128(295455315769143, 10053185644058211467),
+UInt128(472728505230629, 12395748215751228024),
+UInt128(378182804184503, 13605947387342892742),
+UInt128(302546243347602, 18263455539358134840),
+UInt128(484073989356164, 14464133604005374452),
+]
+
+private let bid_breakpoints_binary80_97: [UInt128] = [
+UInt128(387259191484931, 15260655697946209884),
+UInt128(309807353187945, 8519175743615057584),
+UInt128(495691765100712, 13630681189784092135),
+UInt128(396553412080570, 3525847322343453062),
+UInt128(317242729664456, 2820677857874762449),
+UInt128(507588367463129, 15581131016825350889),
+UInt128(406070693970503, 16154253628202191034),
+UInt128(324856555176403, 1855356458336021858),
+UInt128(519770488282244, 17725965592305276265),
+UInt128(415816390625795, 17870121288586131335),
+UInt128(332653112500636, 14296097030868905068),
+UInt128(532244980001018, 15495057619906427463),
+UInt128(425795984000815, 1327999651699411001),
+UInt128(340636787200652, 1062399721359528800),
+UInt128(545018859521043, 5389188368917156404),
+UInt128(436015087616834, 11690048324617545770),
+UInt128(348812070093467, 13041387474435946939),
+UInt128(558099312149548, 6108824700129873809),
+UInt128(446479449719638, 12265757389587719694),
+UInt128(357183559775710, 17191303541153996401),
+UInt128(285746847820568, 13753042832923197121),
+UInt128(457194956512909, 18315519717935205071),
+UInt128(365755965210327, 18341764589090074380),
+UInt128(292604772168262, 7294714041788238857),
+UInt128(468167635469219, 15360891281603092495),
+UInt128(374534108375375, 15978061840024384319),
+UInt128(299627286700300, 12782449472019507455),
+UInt128(479403658720481, 2005175081521660313),
+UInt128(383522926976384, 16361535324184969543),
+UInt128(306818341581107, 16778577074089885957),
+UInt128(490909346529772, 12088328059576176239),
+UInt128(392727477223818, 2291964818177120345),
+UInt128(314181981779054, 9212269484025516922),
+UInt128(502691170846487, 3671584730215096106),
+UInt128(402152936677189, 14005314228397807855),
+UInt128(321722349341751, 14893600197460156607),
+UInt128(514755758946802, 16451062686452429925),
+UInt128(411804607157442, 5782152519678123293),
+UInt128(329443685725953, 15693768459968229604),
+UInt128(527109897161526, 2973936647497705428),
+UInt128(421687917729220, 17136544576965805635),
+UInt128(337350334183376, 13709235661572644508),
+UInt128(539760534693402, 14556079429032410566),
+UInt128(431808427754722, 4266165913742107807),
+UInt128(345446742203777, 14480979175219417215),
+UInt128(552714787526044, 8412171421383426251),
+UInt128(442171830020835, 10419085951848651324),
+UInt128(353737464016668, 8335268761478921059),
+UInt128(282989971213334, 14046912638666957494),
+UInt128(452783953941335, 11407013777641401020),
+]
+
+private let bid_breakpoints_binary80_98: [UInt128] = [
+UInt128(362227163153068, 9125611022113120816),
+UInt128(289781730522454, 14679186447174317299),
+UInt128(463650768835927, 12418651871253176710),
+UInt128(370920615068742, 2556223867518720721),
+UInt128(296736492054993, 13113025538240707546),
+UInt128(474778387287989, 17291492046443221751),
+UInt128(379822709830391, 17522542451896487724),
+UInt128(303858167864313, 10328685146775279856),
+UInt128(486173068582901, 12836547420098537447),
+UInt128(388938454866321, 6579889121336919634),
+UInt128(311150763893057, 1574562482327625384),
+UInt128(497841222228891, 6208648786466110938),
+UInt128(398272977783113, 1277570214430978427),
+UInt128(318618382226490, 8400753801028603388),
+UInt128(509789411562384, 13441206081645765421),
+UInt128(407831529249907, 14442313680058522660),
+UInt128(326265223399926, 4175153314562997481),
+UInt128(522024357439881, 17748291747526526940),
+UInt128(417619485951905, 10509284583279311229),
+UInt128(334095588761524, 8407427666623448983),
+UInt128(534552942018439, 2383837822371787403),
+UInt128(427642353614751, 5596419072639340246),
+UInt128(342113882891801, 787786443369561873),
+UInt128(547382212626881, 12328504753617029967),
+UInt128(437905770101505, 6173454988151713650),
+UInt128(350324616081204, 4938763990521370920),
+UInt128(560519385729926, 15280720014318014119),
+UInt128(448415508583941, 8535227196712500972),
+UInt128(358732406867153, 3138832942628090454),
+UInt128(286985925493722, 9889763983586293010),
+UInt128(459177480789956, 1066227114770427523),
+UInt128(367341984631964, 15610376950783983311),
+UInt128(293873587705571, 16177650375369096972),
+UInt128(470197740328915, 58798897397182893),
+UInt128(376158192263132, 47039117917746314),
+UInt128(300926553810505, 11105677738559928021),
+UInt128(481482486096808, 17769084381695884834),
+UInt128(385185988877447, 3147221061130976897),
+UInt128(308148791101957, 13585823293130512487),
+UInt128(493038065763132, 6979922010041178687),
+UInt128(394430452610505, 16651984052258673919),
+UInt128(315544362088404, 13321587241806939135),
+UInt128(504870979341447, 10246493142665371647),
+UInt128(403896783473158, 818496884648476671),
+UInt128(323117426778526, 8033495137202601983),
+UInt128(516987882845642, 5474894590040342527),
+UInt128(413590306276513, 15447962116258004991),
+UInt128(330872245021211, 1290323248780673023),
+UInt128(529395592033937, 13132563642274807807),
+UInt128(423516473627150, 3127353284336025599),
+]
+
+private let bid_breakpoints_binary80_99: [UInt128] = [
+UInt128(338813178901720, 2501882627468820479),
+UInt128(542101086242752, 4003012203950112767),
+UInt128(433680868994201, 14270456207385821183),
+UInt128(346944695195361, 7727016151166746623),
+UInt128(555111512312578, 4984528212382973951),
+UInt128(444089209850062, 11366320199390199807),
+UInt128(355271367880050, 1714358530028339199),
+UInt128(284217094304040, 1371486824022671359),
+UInt128(454747350886464, 2194378918436274175),
+UInt128(363797880709171, 5444851949490929663),
+UInt128(291038304567337, 666532744850833407),
+UInt128(465661287307739, 4755801206503243775),
+UInt128(372529029846191, 7493989779944505343),
+UInt128(298023223876953, 2305843009213693951),
+UInt128(476837158203124, 18446744073709551615),
+UInt128(381469726562499, 18446744073709551615),
+UInt128(305175781249999, 18446744073709551615),
+UInt128(488281249999999, 18446744073709551615),
+UInt128(390624999999999, 18446744073709551615),
+UInt128(312499999999999, 18446744073709551615),
+UInt128(499999999999999, 18446744073709551615),
+UInt128(399999999999999, 18446744073709551615),
+UInt128(319999999999999, 18446744073709551615),
+UInt128(511999999999999, 18446744073709551615),
+UInt128(409599999999999, 18446744073709551615),
+UInt128(327679999999999, 18446744073709551615),
+UInt128(524287999999999, 18446744073709551615),
+UInt128(419430399999999, 18446744073709551615),
+UInt128(335544319999999, 18446744073709551615),
+UInt128(536870911999999, 18446744073709551615),
+UInt128(429496729599999, 18446744073709551615),
+UInt128(343597383679999, 18446744073709551615),
+UInt128(549755813887999, 18446744073709551615),
+UInt128(439804651110399, 18446744073709551615),
+UInt128(351843720888319, 18446744073709551615),
+UInt128(281474976710655, 18446744073709551615),
+UInt128(450359962737049, 11068046444225730969),
+UInt128(360287970189639, 12543785970122495098),
+UInt128(288230376151711, 13724377590839906402),
+UInt128(461168601842738, 14580306515860029597),
+UInt128(368934881474191, 596198768462292708),
+UInt128(295147905179352, 15234354273737475459),
+UInt128(472236648286964, 9617571579012319442),
+UInt128(377789318629571, 11383406077951765876),
+UInt128(302231454903657, 5417376047619502378),
+UInt128(483570327845851, 12357150490933114128),
+UInt128(386856262276681, 6196371578004580979),
+UInt128(309485009821345, 1267748447661754460),
+UInt128(495176015714152, 2028397516258807136),
+UInt128(396140812571321, 12690764457232776679),
+]
+
+private let bid_breakpoints_binary80_100: [UInt128] = [
+UInt128(316912650057057, 6463262751044311020),
+UInt128(507060240091291, 14030569216412807955),
+UInt128(405648192073033, 7535106558388336041),
+UInt128(324518553658426, 13406782876194489479),
+UInt128(519229685853482, 14072154972427362520),
+UInt128(415383748682786, 3879026348458069369),
+UInt128(332306998946228, 17860616337734096788),
+UInt128(531691198313966, 6440893251923092922),
+UInt128(425352958651173, 1463365786796564015),
+UInt128(340282366920938, 8549390258921071858),
+UInt128(544451787073501, 9989675599531804650),
+UInt128(435561429658801, 4302391664883533397),
+UInt128(348449143727040, 18199308590874468010),
+UInt128(557518629963265, 10672149671689597200),
+UInt128(446014903970612, 8537719737351677760),
+UInt128(356811923176489, 17898222234107073178),
+UInt128(285449538541191, 18007926602027568865),
+UInt128(456719261665907, 2987240860050737922),
+UInt128(365375409332725, 13457839132266321307),
+UInt128(292300327466180, 10766271305813057046),
+UInt128(467680523945888, 17226034089300891273),
+UInt128(374144419156711, 2712780827214982049),
+UInt128(299315535325368, 16927619920739626932),
+UInt128(478904856520590, 4948098984731941152),
+UInt128(383123885216472, 3958479187785552922),
+UInt128(306499108173177, 14234829794454173307),
+UInt128(490398573077084, 8018332412159035998),
+UInt128(392318858461667, 10104014744469139122),
+UInt128(313855086769334, 704514166091490651),
+UInt128(502168138830934, 8505920295230205688),
+UInt128(401734511064747, 10494085050926074874),
+UInt128(321387608851798, 1016570411257039252),
+UInt128(514220174162876, 16383907916978904097),
+UInt128(411376139330301, 9417777518841212954),
+UInt128(329100911464241, 3844873200331060040),
+UInt128(526561458342785, 17219843564755427034),
+UInt128(421249166674228, 13775874851804341627),
+UInt128(336999333339382, 18399397510927293948),
+UInt128(539198933343012, 14681640758516029024),
+UInt128(431359146674410, 4366614977329002573),
+UInt128(345087317339528, 3493291981863202058),
+UInt128(552139707743245, 1899918356239212970),
+UInt128(441711766194596, 1519934684991370376),
+UInt128(353369412955676, 15973343006960737594),
+UInt128(282695530364541, 9089325590826679752),
+UInt128(452312848583266, 7164223315838866956),
+UInt128(361850278866613, 2042029837929183242),
+UInt128(289480223093290, 9012321499827167240),
+UInt128(463168356949264, 14419714399723467584),
+UInt128(370534685559411, 15225120334520684390),
+]
+
+private let bid_breakpoints_binary80_101: [UInt128] = [
+UInt128(296427748447529, 8490747452874637189),
+UInt128(474284397516047, 2517149480373688533),
+UInt128(379427518012837, 13081766028524681796),
+UInt128(303542014410270, 3086715193335924790),
+UInt128(485667223056432, 4938744309337479665),
+UInt128(388533778445145, 15019041891695714701),
+UInt128(310827022756116, 12015233513356571761),
+UInt128(497323236409786, 11845675991886694171),
+UInt128(397858589127829, 5787191978767445014),
+UInt128(318286871302263, 8319102397755866334),
+UInt128(509258994083621, 9621215021667475812),
+UInt128(407407195266897, 4007623202592070326),
+UInt128(325925756213517, 14274145006299387230),
+UInt128(521481209941628, 8081236751111378276),
+UInt128(417184967953302, 13843687030372923267),
+UInt128(333747974362642, 3696251994814517967),
+UInt128(533996758980227, 9603352006445139071),
+UInt128(427197407184182, 303983975672290610),
+UInt128(341757925747345, 11311233624763563458),
+UInt128(546812681195752, 18097973799621701533),
+UInt128(437450144956602, 7099681410213540580),
+UInt128(349960115965281, 16747791572396563433),
+UInt128(559936185544451, 971024812641129231),
+UInt128(447948948435560, 15534215109080544677),
+UInt128(358359158748448, 12427372087264435742),
+UInt128(286687326998758, 17320595299295369240),
+UInt128(458699723198014, 5576859590421128845),
+UInt128(366959778558411, 8150836487078813399),
+UInt128(293567822846729, 2831320374921140396),
+UInt128(469708516554766, 11908810229357645280),
+UInt128(375766813243813, 5837699368744205901),
+UInt128(300613450595050, 12048857124479185367),
+UInt128(480981520952081, 831427325457144971),
+UInt128(384785216761664, 15422537119333357270),
+UInt128(307828173409331, 16027378510208596139),
+UInt128(492525077454930, 18265107986849933176),
+UInt128(394020061963944, 14612086389479946541),
+UInt128(315216049571155, 15379017926325867556),
+UInt128(504345679313849, 6159684608411836474),
+UInt128(403476543451079, 8617096501471379502),
+UInt128(322781234760863, 10583026015919013925),
+UInt128(516449975617381, 13243492810728511957),
+UInt128(413159980493905, 6905445433840899242),
+UInt128(330527984395124, 5524356347072719393),
+UInt128(528844775032198, 16217667784800171676),
+UInt128(423075820025759, 1906087783614406371),
+UInt128(338460656020607, 5214219041633435420),
+UInt128(541537049632971, 12032099281355406996),
+UInt128(433229639706377, 5936330610342415273),
+UInt128(346583711765101, 15817110932499663188),
+]
+
+private let bid_breakpoints_binary80_102: [UInt128] = [
+UInt128(554533938824162, 17928679862515640455),
+UInt128(443627151059330, 6964246260528691717),
+UInt128(354901720847464, 5571397008422953374),
+UInt128(283921376677971, 8146466421480273022),
+UInt128(454274202684754, 5655648644884616189),
+UInt128(363419362147803, 8213867730649603275),
+UInt128(290735489718242, 13949791814003503266),
+UInt128(465176783549188, 7562271643437963933),
+UInt128(372141426839350, 13428514944234191793),
+UInt128(297713141471480, 10742811955387353434),
+UInt128(476341026354368, 17188499128619765495),
+UInt128(381072821083495, 2682752858670081426),
+UInt128(304858256866796, 2146202286936065141),
+UInt128(487773210986873, 14501970103323435195),
+UInt128(390218568789499, 533529638433017186),
+UInt128(312174855031599, 4116172525488324072),
+UInt128(499479768050558, 13964573670265139162),
+UInt128(399583814440447, 103612491986380360),
+UInt128(319667051552357, 11150936437814835258),
+UInt128(511467282483772, 3084103041536095120),
+UInt128(409173825987017, 13535328877454607065),
+UInt128(327339060789614, 3449565472479865006),
+UInt128(523742497263382, 12898002385451604656),
+UInt128(418993997810706, 2939704278877463078),
+UInt128(335195198248564, 17109158682069611755),
+UInt128(536312317197703, 16306607447085647839),
+UInt128(429049853758163, 1977239513442787302),
+UInt128(343239883006530, 8960489240238050488),
+UInt128(549183812810448, 14336782784380880780),
+UInt128(439347050248359, 401379783278973655),
+UInt128(351477640198687, 4010452641365089247),
+UInt128(562364224317899, 10106073040926053118),
+UInt128(449891379454319, 11774207247482752818),
+UInt128(359913103563455, 13108714612728112577),
+UInt128(287930482850764, 10486971690182490062),
+UInt128(460688772561223, 5711108260066253130),
+UInt128(368551018048978, 11947584237536823150),
+UInt128(294840814439182, 16936765019513279166),
+UInt128(471745303102692, 12341428772253605373),
+UInt128(377396242482154, 2494445388319063652),
+UInt128(301916993985723, 5684905125397161245),
+UInt128(483067190377157, 5406499385893547669),
+UInt128(386453752301725, 15393245952940569105),
+UInt128(309163001841380, 12314596762352455284),
+UInt128(494660802946209, 1256610746054376838),
+UInt128(395728642356967, 4694637411585411794),
+UInt128(316582913885573, 14823756373494060404),
+UInt128(506532662216918, 1581917309139034708),
+UInt128(405226129773534, 8644231476795048413),
+UInt128(324180903818827, 10604733996177949053),
+]
+
+private let bid_breakpoints_binary80_103: [UInt128] = [
+UInt128(518689446110124, 2210179134917077193),
+UInt128(414951556888099, 5457492122675572077),
+UInt128(331961245510479, 8055342512882367985),
+UInt128(531137992816767, 1820501576386057807),
+UInt128(424910394253413, 12524447705334577215),
+UInt128(339928315402730, 17398255793751482418),
+UInt128(543885304644369, 9390465196292820253),
+UInt128(435108243715495, 11201720971776166526),
+UInt128(348086594972396, 8961376777420933221),
+UInt128(556938551955834, 6959505214389672507),
+UInt128(445550841564667, 9256952986253648329),
+UInt128(356440673251734, 26864759519098016),
+UInt128(285152538601387, 3710840622357188736),
+UInt128(456244061762219, 9626693810513412301),
+UInt128(364995249409775, 11390703863152640164),
+UInt128(291996199527820, 9112563090522112131),
+UInt128(467193919244512, 14580100944835379410),
+UInt128(373755135395610, 4285383126384482882),
+UInt128(299004108316488, 3428306501107586305),
+UInt128(478406573306381, 1795941587030227766),
+UInt128(382725258645104, 16194148528591823505),
+UInt128(306180206916083, 16644667637615369127),
+UInt128(489888331065734, 4495375331733128665),
+UInt128(391910664852587, 7285649080128413255),
+UInt128(313528531882069, 16896565708328461573),
+UInt128(501645651011311, 15966458689099807548),
+UInt128(401316520809049, 9083818136537935715),
+UInt128(321053216647239, 10956403323972258895),
+UInt128(513685146635583, 6462198874129883263),
+UInt128(410948117308466, 12548456728787727257),
+UInt128(328758493846773, 6349416568288271482),
+UInt128(526013590154837, 6469717694519324048),
+UInt128(420810872123869, 16243820599841190208),
+UInt128(336648697699095, 16684405294614862490),
+UInt128(538637916318553, 8248304397674228368),
+UInt128(430910333054842, 13977341147623203341),
+UInt128(344728266443874, 3803175288614742026),
+UInt128(551565226310198, 13463778091267407888),
+UInt128(441252181048158, 18149720102497746957),
+UInt128(353001744838527, 3451729637772466596),
+UInt128(282401395870821, 13829430154443704246),
+UInt128(451842233393314, 14748390617626106148),
+UInt128(361473786714651, 15488061308842795241),
+UInt128(289179029371721, 8701100232332325870),
+UInt128(462686446994754, 6543062742247900745),
+UInt128(370149157595803, 8923799008540230919),
+UInt128(296119326076642, 14517736836316005382),
+UInt128(473790921722628, 8470983679137967319),
+UInt128(379032737378102, 14155484572794194501),
+UInt128(303226189902482, 3945690028751534954),
+]
+
+private let bid_breakpoints_binary80_104: [UInt128] = [
+UInt128(485161903843971, 10002452860744366251),
+UInt128(388129523075177, 4312613473853582677),
+UInt128(310503618460141, 14518137223308597111),
+UInt128(496805789536226, 15850321927809934732),
+UInt128(397444631628981, 8990908727506037462),
+UInt128(317955705303185, 3503378167262919646),
+UInt128(508729128485096, 5605405067620671435),
+UInt128(406983302788077, 794975239354626824),
+UInt128(325586642230461, 11704026635709432429),
+UInt128(520938627568738, 11347744987651271240),
+UInt128(416750902054990, 16456893619604837639),
+UInt128(333400721643992, 13165514895683870111),
+UInt128(533441154630388, 6307428574126550885),
+UInt128(426752923704310, 12424640488785061354),
+UInt128(341402338963448, 9939712391028049083),
+UInt128(546243742341517, 12214191010902968210),
+UInt128(436994993873214, 2392655179238553922),
+UInt128(349595995098571, 5603472958132753460),
+UInt128(559353592157714, 1586859103528584890),
+UInt128(447482873726171, 4958836097564778235),
+UInt128(357986298980937, 277720063309912265),
+UInt128(286389039184749, 11290222494873660782),
+UInt128(458222462695599, 6996309547572126281),
+UInt128(366577970156479, 9286396452799611348),
+UInt128(293262376125183, 11118465976981599402),
+UInt128(469219801800293, 14100196748428648720),
+UInt128(375375841440235, 212110954517188006),
+UInt128(300300673152188, 169688763613750405),
+UInt128(480481077043500, 15028897280749641941),
+UInt128(384384861634800, 12023117824599713552),
+UInt128(307507889307840, 9618494259679770842),
+UInt128(492012622892544, 15389590815487633347),
+UInt128(393610098314035, 16001021467132017001),
+UInt128(314888078651228, 12800817173705613601),
+UInt128(503820925841965, 16791958663187071438),
+UInt128(403056740673572, 13433566930549657150),
+UInt128(322445392538858, 3368155914955905074),
+UInt128(515912628062173, 1699700649187537795),
+UInt128(412730102449738, 8738458148833850882),
+UInt128(330184081959790, 14369464148550901352),
+UInt128(528294531135665, 4544398563971890548),
+UInt128(422635624908532, 3635518851177512438),
+UInt128(338108499926825, 13976461525167740920),
+UInt128(540973599882921, 3915594366558833856),
+UInt128(432778879906336, 17889870752214708378),
+UInt128(346223103925069, 10622547787029856379),
+UInt128(553956966280111, 5928030015022039237),
+UInt128(443165573024089, 1053075197275721066),
+UInt128(354532458419271, 4531808972562487176),
+UInt128(283625966735416, 18382842437017631034),
+]
+
+private let bid_breakpoints_binary80_105: [UInt128] = [
+UInt128(453801546776667, 3587106196034837392),
+UInt128(363041237421333, 13937731401053600883),
+UInt128(290432989937067, 82138676617149737),
+UInt128(464692783899307, 3820770697329349902),
+UInt128(371754227119445, 14124663002089210891),
+UInt128(297403381695556, 11299730401671368713),
+UInt128(475845410712890, 10700871013190369294),
+UInt128(380676328570312, 8560696810552295435),
+UInt128(304541062856249, 17916603892667567318),
+UInt128(487265700569999, 17598519784042376739),
+UInt128(389812560455999, 17768164641975811714),
+UInt128(311850048364799, 17903880528322559695),
+UInt128(498960077383679, 17578162401090364542),
+UInt128(399168061906943, 17751878735614201957),
+UInt128(319334449525555, 3133456544265630596),
+UInt128(510935119240888, 5013530470825008953),
+UInt128(408748095392710, 11389522006143827809),
+UInt128(326998476314168, 9111617604915062247),
+UInt128(523197562102669, 10889239353122189273),
+UInt128(418558049682135, 12400740297239661741),
+UInt128(334846439745708, 9920592237791729393),
+UInt128(535754303593133, 12183598765724856706),
+UInt128(428603442874506, 17125576642063706011),
+UInt128(342882754299605, 10011112498909054485),
+UInt128(548612406879368, 16017779998254487177),
+UInt128(438889925503495, 1746177554377858772),
+UInt128(351111940402796, 1396942043502287017),
+UInt128(561779104644473, 13303153713829390198),
+UInt128(449423283715578, 18021220600547332804),
+UInt128(359538626972463, 3348930036212135274),
+UInt128(287630901577970, 10057841658453528865),
+UInt128(460209442524752, 16092546653525646185),
+UInt128(368167554019802, 5495339693336696301),
+UInt128(294534043215841, 15464318198895088011),
+UInt128(471254469145346, 17364211488748320171),
+UInt128(377003575316277, 10202020376256745813),
+UInt128(301602860253022, 782918671521576004),
+UInt128(482564576404835, 4942018689176431930),
+UInt128(386051661123868, 3953614951341145544),
+UInt128(308841328899094, 10541589590556737082),
+UInt128(494146126238551, 5798496900665048361),
+UInt128(395316900990841, 949448705790128366),
+UInt128(316253520792672, 15516954223599743985),
+UInt128(506005633268276, 10069731498791949084),
+UInt128(404804506614621, 4366436384291648944),
+UInt128(323843605291696, 18250544366400960448),
+UInt128(518149768466715, 3375429283048164454),
+UInt128(414519814773372, 2700343426438531563),
+UInt128(331615851818697, 13228321185376556220),
+UInt128(530585362909916, 6407918637634848660),
+]
+
+private let bid_breakpoints_binary80_106: [UInt128] = [
+UInt128(424468290327933, 1436986095365968605),
+UInt128(339574632262346, 8528286505776595530),
+UInt128(543319411619754, 6266560779758732202),
+UInt128(434655529295803, 8702597438548896085),
+UInt128(347724423436642, 14340775580322937514),
+UInt128(556359077498628, 8187845669549058730),
+UInt128(445087261998902, 13928974165123067630),
+UInt128(356069809599122, 3764481702614633458),
+UInt128(284855847679297, 14079631806317437736),
+UInt128(455769356286876, 7770015631140259084),
+UInt128(364615485029501, 2526663690170296944),
+UInt128(291692388023600, 16778726211103878848),
+UInt128(466707820837761, 8399217864056654541),
+UInt128(373366256670209, 3030025476503413310),
+UInt128(298693005336167, 6113369195944640971),
+UInt128(477908808537867, 13470739528253335877),
+UInt128(382327046830294, 3397893993118848055),
+UInt128(305861637464235, 6407664009236988767),
+UInt128(489378619942776, 10252262414779182028),
+UInt128(391502895954221, 4512461117081435299),
+UInt128(313202316763376, 18367364152632789532),
+UInt128(501123706821403, 3562340941019090989),
+UInt128(400898965457122, 10228570382299093437),
+UInt128(320719172365698, 804158676355454103),
+UInt128(513150675785116, 16044049141136367858),
+UInt128(410520540628093, 9145890498167183963),
+UInt128(328416432502474, 14695410028017567817),
+UInt128(525466292003959, 12444609600602377538),
+UInt128(420373033603167, 13645036495223812353),
+UInt128(336298426882534, 3537331566695229236),
+UInt128(538077483012054, 13038428136196187425),
+UInt128(430461986409643, 14120091323698860263),
+UInt128(344369589127715, 228026614733357241),
+UInt128(550991342604344, 364842583573371585),
+UInt128(440793074083475, 3981222881600607591),
+UInt128(352634459266780, 3184978305280486073),
+UInt128(282107567413424, 2547982644224388858),
+UInt128(451372107861478, 11455469860242842820),
+UInt128(361097686289182, 16543073517678094902),
+UInt128(288878149031346, 5855761184658655275),
+UInt128(462205038450154, 1990520265970027794),
+UInt128(369764030760123, 5281765027517932559),
+UInt128(295811224608098, 11604109651498166693),
+UInt128(473297959372957, 14877226627655156386),
+UInt128(378638367498366, 4523083672640304462),
+UInt128(302910693998692, 18375862197079884863),
+UInt128(484657110397908, 14643984256360174488),
+UInt128(387725688318327, 647140960862408621),
+UInt128(310180550654661, 11585759212915657866),
+UInt128(496288881047458, 11158517111181231939),
+]
+
+private let bid_breakpoints_binary80_107: [UInt128] = [
+UInt128(397031104837966, 16305511318428806198),
+UInt128(317624883870373, 9355060240001134635),
+UInt128(508199814192597, 11278747569259905093),
+UInt128(406559851354078, 1644300425924103428),
+UInt128(325247881083262, 8694137970223103389),
+UInt128(520396609733219, 17599969567098875745),
+UInt128(416317287786575, 17769324468421010919),
+UInt128(333053830229260, 14215459574736808735),
+UInt128(532886128366817, 4297991245869342361),
+UInt128(426308902693453, 14506439440921204858),
+UInt128(341047122154763, 537105108511232917),
+UInt128(545675395447620, 15616763432585613960),
+UInt128(436540316358096, 12493410746068491168),
+UInt128(349232253086477, 6305379782112882611),
+UInt128(558771604938363, 13777956466122522501),
+UInt128(447017283950690, 18401062802381838647),
+UInt128(357613827160552, 14720850241905470918),
+UInt128(286091061728442, 4397982564040556088),
+UInt128(457745698765507, 10726120917206800064),
+UInt128(366196559012406, 1202199104281619405),
+UInt128(292957247209924, 15719154542392936816),
+UInt128(468731595535879, 14082600823602967937),
+UInt128(374985276428703, 14955429473624284673),
+UInt128(299988221142963, 896297134673696768),
+UInt128(479981153828740, 16191470674445556122),
+UInt128(383984923062992, 12953176539556444898),
+UInt128(307187938450394, 2983843602161335272),
+UInt128(491500701520630, 12152847392941957082),
+UInt128(393200561216504, 9722277914353565665),
+UInt128(314560448973203, 11467171146224762855),
+UInt128(503296718357125, 14658125019217710245),
+UInt128(402637374685700, 11726500015374168196),
+UInt128(322109899748560, 9381200012299334557),
+UInt128(515375839597696, 15009920019678935291),
+UInt128(412300671678157, 8318587201001237910),
+UInt128(329840537342525, 17722916205026721297),
+UInt128(527744859748041, 9909921854333202460),
+UInt128(422195887798433, 4238588668724651645),
+UInt128(337756710238746, 10769568564463541962),
+UInt128(540410736381994, 9852612073657846493),
+UInt128(432328589105595, 11571438473668187518),
+UInt128(345862871284476, 9257150778934550014),
+UInt128(553380594055162, 7432743616811459376),
+UInt128(442704475244129, 17014241337674898471),
+UInt128(354163580195303, 17300741884881829100),
+UInt128(283330864156243, 2772547063679732310),
+UInt128(453329382649989, 746726487145661373),
+UInt128(362663506119991, 4286730004458439422),
+UInt128(290130804895992, 18186779262534392830),
+UInt128(464209287833588, 14341451561087387235),
+]
+
+private let bid_breakpoints_binary80_108: [UInt128] = [
+UInt128(371367430266871, 405114804644178819),
+UInt128(297093944213496, 15081487102682984348),
+UInt128(475350310741594, 16751681734808954310),
+UInt128(380280248593275, 17090694202589073771),
+UInt128(304224198874620, 13672555362071259017),
+UInt128(486758718199393, 3429344505604462811),
+UInt128(389406974559514, 10122173233967390895),
+UInt128(311525579647611, 11787087401915823039),
+UInt128(498440927436178, 11480642213581496217),
+UInt128(398752741948942, 16563211400349017620),
+UInt128(319002193559154, 5871871490795393449),
+UInt128(510403509694646, 16773692014756450166),
+UInt128(408322807755717, 9729604797063249809),
+UInt128(326658246204574, 404986208166779201),
+UInt128(522653193927318, 8026675562550667368),
+UInt128(418122555141854, 13800038079524354541),
+UInt128(334498044113483, 14729379278361393956),
+UInt128(535196870581574, 1430913956926768390),
+UInt128(428157496465259, 4834079980283325035),
+UInt128(342525997172207, 7556612798968570351),
+UInt128(548041595475531, 15779929293091622885),
+UInt128(438433276380425, 8934594619731387985),
+UInt128(350746621104340, 7147675695785110388),
+UInt128(561194593766944, 11436281113256176621),
+UInt128(448955675013555, 12838373705346851620),
+UInt128(359164540010844, 10270698964277481296),
+UInt128(287331632008675, 11905907986163895360),
+UInt128(459730611213881, 602708704152680960),
+UInt128(367784488971104, 15239562222289786061),
+UInt128(294227591176883, 15880998592573739172),
+UInt128(470764145883014, 3273504859666520736),
+UInt128(376611316706411, 6308152702475126912),
+UInt128(301289053365129, 1357173347238191206),
+UInt128(482062485384206, 9550174985064926576),
+UInt128(385649988307365, 3950791173310030938),
+UInt128(308519990645892, 3160632938648024750),
+UInt128(493631985033427, 8746361516578749924),
+UInt128(394905588026741, 18065135657488730908),
+UInt128(315924470421393, 10762759711249074403),
+UInt128(505479152674229, 13531066723256608723),
+UInt128(404383322139383, 14514202193347197301),
+UInt128(323506657711507, 543315310452026871),
+UInt128(517610652338411, 4558653311465153318),
+UInt128(414088521870728, 18404317908139763947),
+UInt128(331270817496583, 3655407882286080188),
+UInt128(530033307994533, 2159303796915817977),
+UInt128(424026646395626, 9106140667016475028),
+UInt128(339221317116501, 3595563718871269699),
+UInt128(542754107386401, 16820948394419762489),
+UInt128(434203285909121, 9767409900793899668),
+]
+
+private let bid_breakpoints_binary80_109: [UInt128] = [
+UInt128(347362628727297, 4124579105893209411),
+UInt128(555780205963675, 10288675384171045381),
+UInt128(444624164770940, 8230940307336836305),
+UInt128(355699331816752, 6584752245869469044),
+UInt128(284559465453401, 16335848240921306204),
+UInt128(455295144725443, 311915482280717665),
+UInt128(364236115780354, 7628230015308394778),
+UInt128(291388892624283, 9791932826988626146),
+UInt128(466222228198853, 11977743708439891510),
+UInt128(372977782559082, 16960892596235733854),
+UInt128(298382226047266, 6190016447504766437),
+UInt128(477411561675626, 2525328686523805653),
+UInt128(381929249340500, 16777658208186685815),
+UInt128(305543399472400, 13422126566549348652),
+UInt128(488869439155841, 3028658432769406228),
+UInt128(391095551324672, 17180322005183166275),
+UInt128(312876441059738, 6365559974662712373),
+UInt128(500602305695581, 6495547144718429474),
+UInt128(400481844556465, 1507088901032833256),
+UInt128(320385475645172, 1205671120826266605),
+UInt128(512616761032275, 5618422608063936891),
+UInt128(410093408825820, 4494738086451149513),
+UInt128(328074727060656, 3595790469160919610),
+UInt128(524919563297049, 16821311194883202346),
+UInt128(419935650637639, 17146397770648472200),
+UInt128(335948520510111, 17406467031260688083),
+UInt128(537517632816179, 2024905546823728671),
+UInt128(430014106252943, 5309273252200893260),
+UInt128(344011285002354, 11626116231244535254),
+UInt128(550418056003767, 7533739525765525438),
+UInt128(440334444803013, 17095038064838151320),
+UInt128(352267555842411, 2607984007644790086),
+UInt128(281814044673928, 16843782465083473361),
+UInt128(450902471478286, 4813959055682095439),
+UInt128(360721977182629, 161818429803766028),
+UInt128(288577581746103, 3818803558584923146),
+UInt128(461724130793765, 2420736878993966710),
+UInt128(369379304635012, 1936589503195173368),
+UInt128(295503443708009, 12617318046781869664),
+UInt128(472805509932815, 9119662430625260493),
+UInt128(378244407946252, 7295729944500208394),
+UInt128(302595526357001, 16904630399825897685),
+UInt128(484152842171203, 1221966936528064034),
+UInt128(387322273736962, 8356271178706271873),
+UInt128(309857818989569, 17753063387190748468),
+UInt128(495772510383311, 17336854975279466580),
+UInt128(396618008306649, 10180135165481662941),
+UInt128(317294406645319, 11833456947127240676),
+UInt128(507671050632511, 7865484671177854112),
+UInt128(406136840506009, 2603038922200372966),
+]
+
+private let bid_breakpoints_binary80_110: [UInt128] = [
+UInt128(324909472404807, 5771779952502208696),
+UInt128(519855155847691, 12924196738745444237),
+UInt128(415884124678153, 6650008576254445066),
+UInt128(332707299742522, 12698704490487376699),
+UInt128(532331679588036, 5560531925812161426),
+UInt128(425865343670429, 759076725907818818),
+UInt128(340692274936343, 4296610195468165377),
+UInt128(545107639898149, 3185227498007154281),
+UInt128(436086111918519, 6237530813147633748),
+UInt128(348868889534815, 8679373465260017321),
+UInt128(558190223255704, 13886997544416027714),
+UInt128(446552178604563, 14798946850274732495),
+UInt128(357241742883651, 771111035994055026),
+UInt128(285793394306920, 15374284087762885313),
+UInt128(457269430891073, 6152110466711064886),
+UInt128(365815544712858, 12300386002852672555),
+UInt128(292652435770286, 17219006431765958690),
+UInt128(468243897232459, 1724968587632161642),
+UInt128(374595117785967, 5069323684847639637),
+UInt128(299676094228773, 15123505392103842679),
+UInt128(479481750766038, 2061515738914686348),
+UInt128(383585400612830, 9027910220615569724),
+UInt128(306868320490264, 7222328176492455779),
+UInt128(490989312784423, 487678638162198278),
+UInt128(392791450227538, 7768840540013579269),
+UInt128(314233160182030, 13593770061494684061),
+UInt128(502773056291249, 3303288024681942882),
+UInt128(402218445032999, 6331979234487464629),
+UInt128(321774756026399, 8754932202331882026),
+UInt128(514839609642239, 2939845079505280272),
+UInt128(411871687713791, 6041224878346134541),
+UInt128(329497350171033, 1143631087934997310),
+UInt128(527195760273652, 16587204999663636988),
+UInt128(421756608218922, 5891066370247088944),
+UInt128(337405286575137, 15780899540423402125),
+UInt128(539848458520220, 10492044005709802107),
+UInt128(431878766816176, 8393635204567841686),
+UInt128(345503013452941, 3025559348912363025),
+UInt128(552804821524705, 15908941402485511810),
+UInt128(442243857219764, 12727153121988409448),
+UInt128(353795085775811, 13871071312332637882),
+UInt128(283036068620649, 7407508235124199982),
+UInt128(452857709793039, 783966731972989002),
+UInt128(362286167834431, 4316522200320301525),
+UInt128(289828934267544, 18210613019223882512),
+UInt128(463726294828071, 18068934386532481051),
+UInt128(370981035862457, 10765798694484074517),
+UInt128(296784828689966, 1233941326103438967),
+UInt128(474855725903945, 13042352565991233317),
+UInt128(379884580723156, 10433882052792986654),
+]
+
+private let bid_breakpoints_binary80_111: [UInt128] = [
+UInt128(303907664578525, 4657756827492479000),
+UInt128(486252263325640, 7452410923987966400),
+UInt128(389001810660512, 5961928739190373120),
+UInt128(311201448528409, 15837589435578029465),
+UInt128(497922317645455, 14272096652699116175),
+UInt128(398337854116364, 11417677322159292940),
+UInt128(318670283293091, 12823490672469344675),
+UInt128(509872453268946, 13138887446467130834),
+UInt128(407897962615157, 6821761142431794344),
+UInt128(326318370092125, 16525455358171166445),
+UInt128(522109392147401, 7993984499364314696),
+UInt128(417687513717921, 2705838784749541434),
+UInt128(334150010974336, 16922066286767274440),
+UInt128(534640017558939, 1249864355634266841),
+UInt128(427712014047151, 4689240299249323796),
+UInt128(342169611237721, 62043424657548713),
+UInt128(547471377980353, 11167315923677808911),
+UInt128(437977102384282, 16312550368426067775),
+UInt128(350381681907426, 5671342665257033574),
+UInt128(560610691051882, 1695450634927433072),
+UInt128(448488552841505, 12424406952167677427),
+UInt128(358790842273204, 9939525561734141942),
+UInt128(287032673818563, 11640969264129223876),
+UInt128(459252278109701, 14936202007864847879),
+UInt128(367401822487761, 8259612791549967980),
+UInt128(293921457990209, 2918341418498064061),
+UInt128(470274332784334, 12048043899080723144),
+UInt128(376219466227467, 13327783934006488838),
+UInt128(300975572981974, 3283529517721370424),
+UInt128(481560916771158, 12632344857838013325),
+UInt128(385248733416926, 17484573515754231307),
+UInt128(308198986733541, 10298309997861474722),
+UInt128(493118378773666, 9098598367094538909),
+UInt128(394494703018933, 3589529878933720804),
+UInt128(315595762415146, 10250321532630797289),
+UInt128(504953219864234, 9021816822725455017),
+UInt128(403962575891387, 10906802272922274337),
+UInt128(323170060713110, 1346744188853998823),
+UInt128(517072097140976, 2154790702166398117),
+UInt128(413657677712780, 16481227820700759786),
+UInt128(330926142170224, 13184982256560607829),
+UInt128(529481827472359, 10027925166271241557),
+UInt128(423585461977887, 11711688947758903569),
+UInt128(338868369582310, 1990653528723302208),
+UInt128(542189391331696, 3185045645957283534),
+UInt128(433751513065356, 17305431775733468120),
+UInt128(347001210452285, 10154996605844864172),
+UInt128(555201936723656, 16247994569351782676),
+UInt128(444161549378925, 9309046840739515818),
+UInt128(355329239503140, 7447237472591612654),
+]
+
+private let bid_breakpoints_binary80_112: [UInt128] = [
+UInt128(284263391602512, 5957789978073290123),
+UInt128(454821426564019, 13221812779659174521),
+UInt128(363857141251215, 14266799038469249940),
+UInt128(291085713000972, 11413439230775399952),
+UInt128(465737140801556, 3504107510272998630),
+UInt128(372589712641244, 17560681267186040197),
+UInt128(298071770112995, 17737893828490742480),
+UInt128(476914832180793, 9933886051875636353),
+UInt128(381531865744634, 15325806470984329729),
+UInt128(305225492595707, 15949993991529374106),
+UInt128(488360788153132, 10762595127479357277),
+UInt128(390688630522506, 1231378472499665175),
+UInt128(312550904418004, 15742498036967373433),
+UInt128(500081447068807, 14119950414922066523),
+UInt128(400065157655046, 3917262702453832572),
+UInt128(320052126124036, 17891205420930707350),
+UInt128(512083401798459, 2800486970295759499),
+UInt128(409666721438767, 5929738390978517922),
+UInt128(327733377151013, 15811837157008545307),
+UInt128(524373403441622, 3162846562762210552),
+UInt128(419498722753297, 13598323694435499411),
+UInt128(335598978202638, 3499961326064578883),
+UInt128(536958365124221, 1910589306961415889),
+UInt128(429566692099376, 16285866704536774004),
+UInt128(343653353679501, 9339344548887508880),
+UInt128(549845365887202, 7564253648736193562),
+UInt128(439876292709761, 17119449363214685819),
+UInt128(351901034167809, 10006210675829838332),
+UInt128(281520827334247, 11694317355405780989),
+UInt128(450433323734796, 3953512509681608289),
+UInt128(360346658987836, 17920205266712927924),
+UInt128(288277327190269, 10646815398628432016),
+UInt128(461243723504431, 5966858193579760256),
+UInt128(368994978803545, 1084137740121897882),
+UInt128(295195983042836, 867310192097518305),
+UInt128(472313572868537, 12455742751581760258),
+UInt128(377850858294830, 2585896571781587560),
+UInt128(302280686635864, 2068717257425270048),
+UInt128(483649098617382, 10688645241364252724),
+UInt128(386919278893906, 1172218563607581532),
+UInt128(309535423115124, 15695170109853706519),
+UInt128(495256676984199, 14044225731540199461),
+UInt128(396205341587359, 14924729399974069892),
+UInt128(316964273269887, 15629132334721166236),
+UInt128(507142837231820, 10249216476586224686),
+UInt128(405714269785456, 8199373181268979748),
+UInt128(324571415828365, 2870149730273273475),
+UInt128(519314265325384, 4592239568437237561),
+UInt128(415451412260307, 7363140469491700372),
+UInt128(332361129808245, 16958558819819091267),
+]
+
+private let bid_breakpoints_binary80_113: [UInt128] = [
+UInt128(531777807693193, 8686950038000994412),
+UInt128(425422246154554, 14328257659884616176),
+UInt128(340337796923643, 15151954942649603264),
+UInt128(544540475077830, 2107035019787903283),
+UInt128(435632380062264, 1685628015830322626),
+UInt128(348505904049811, 5037851227406168424),
+UInt128(557609446479698, 681864334366048832),
+UInt128(446087557183758, 7924189096976659712),
+UInt128(356870045747006, 13718048907065148416),
+UInt128(285496036597605, 7285090310910208409),
+UInt128(456793658556168, 11656144497456333455),
+UInt128(365434926844934, 16703613227448887411),
+UInt128(292347941475947, 17052239396701020252),
+UInt128(467756706361516, 12526187775753991110),
+UInt128(374205365089213, 6331601405861282565),
+UInt128(299364292071370, 12443978754172846698),
+UInt128(478982867314193, 1463621932967003101),
+UInt128(383186293851354, 8549595175857423127),
+UInt128(306549035081083, 10529024955427848825),
+UInt128(490478456129733, 13157091113942647797),
+UInt128(392382764903786, 17904370520637938884),
+UInt128(313906211923029, 10634147601768440784),
+UInt128(502249939076847, 5946589718603774285),
+UInt128(401799951261477, 15825318219108750397),
+UInt128(321439961009182, 5281556945803179671),
+UInt128(514303937614691, 12139839928026997798),
+UInt128(411443150091753, 6022523127679687915),
+UInt128(329154520073402, 12196716131627570978),
+UInt128(526647232117444, 4757350551636472273),
+UInt128(421317785693955, 7495229256051088141),
+UInt128(337054228555164, 5996183404840870513),
+UInt128(539286765688262, 16972591077229213467),
+UInt128(431429412550610, 6199375232299550127),
+UInt128(345143530040488, 4959500185839640102),
+UInt128(552229648064781, 4245851482601513840),
+UInt128(441783718451824, 18154076445048852365),
+UInt128(353426974761459, 18212609970780992215),
+UInt128(282741579809167, 18259436791366704095),
+UInt128(452386527694668, 14457703607219085259),
+UInt128(361909222155735, 498116441549537238),
+UInt128(289527377724588, 398493153239629790),
+UInt128(463243804359340, 15394984304151048957),
+UInt128(370595043487472, 12315987443320839166),
+UInt128(296476034789978, 2474092325172850686),
+UInt128(474361655663965, 269198905534650775),
+UInt128(379489324531172, 215359124427720620),
+UInt128(303591459624937, 11240333743767907465),
+UInt128(485746335399900, 3227138731061010652),
+UInt128(388597068319920, 2581710984848808522),
+UInt128(310877654655936, 2065368787879046817),
+]
+
+private let bid_breakpoints_binary80_114: [UInt128] = [
+UInt128(497404247449497, 14372636504832205877),
+UInt128(397923397959598, 4119411574381944055),
+UInt128(318338718367678, 10674226888989375891),
+UInt128(509341949388285, 13389414207641091102),
+UInt128(407473559510628, 10711531366112872882),
+UInt128(325978847608502, 15947922722374118952),
+UInt128(521566156173604, 10759281096830949030),
+UInt128(417252924938883, 12296773692206669547),
+UInt128(333802339951106, 17216116583249156284),
+UInt128(534083743921771, 1720344830005277792),
+UInt128(427266995137416, 16133671122971863527),
+UInt128(341813596109933, 9217588083635580498),
+UInt128(546901753775893, 11058792119075018474),
+UInt128(437521403020714, 16225731324743835425),
+UInt128(350017122416571, 16669933874536978663),
+UInt128(560027395866515, 846452496065793599),
+UInt128(448021916693212, 677161996852634879),
+UInt128(358417533354569, 11609776041707838873),
+UInt128(286734026683655, 12977169648108181421),
+UInt128(458774442693849, 2316727363263538659),
+UInt128(367019554155079, 5542730705352741250),
+UInt128(293615643324063, 8123533379024103323),
+UInt128(469785029318501, 9308304591696654994),
+UInt128(375828023454801, 3757294858615413672),
+UInt128(300662418763840, 17763231145859972230),
+UInt128(481059870022145, 9974425759666403953),
+UInt128(384847896017716, 7979540607733123162),
+UInt128(307878316814173, 2694283671444588206),
+UInt128(492605306902677, 621505059569430807),
+UInt128(394084245522141, 11565250491881275615),
+UInt128(315267396417713, 5562851578763110169),
+UInt128(504427834268341, 5211213711279065947),
+UInt128(403542267414673, 479622154281342435),
+UInt128(322833813931738, 7762395352908894594),
+UInt128(516534102290781, 8730483749912321028),
+UInt128(413227281832625, 3295038185187946499),
+UInt128(330581825466100, 2636030548150357199),
+UInt128(528930920745760, 4217648877040571519),
+UInt128(423144736596608, 3374119101632457215),
+UInt128(338515789277286, 10077992910789786418),
+UInt128(541625262843658, 8746091027779837623),
+UInt128(433300210274926, 14375570451707690745),
+UInt128(346640168219941, 7811107546624242272),
+UInt128(554624269151906, 5119074445114966990),
+UInt128(443699415321525, 405910741350063268),
+UInt128(354959532257220, 324728593080050615),
+UInt128(283967625805776, 259782874464040492),
+UInt128(454348201289241, 11483699043368195756),
+UInt128(363478561031393, 5497610419952646282),
+UInt128(290782848825114, 11776785965445937672),
+]
+
+private let bid_breakpoints_binary80_115: [UInt128] = [
+UInt128(465252558120183, 7774811100487769306),
+UInt128(372202046496146, 13598546509874036091),
+UInt128(297761637196917, 7189488393157318549),
+UInt128(476418619515067, 15192530243793620002),
+UInt128(381134895612054, 4775326565551075355),
+UInt128(304907916489643, 7509610067182770607),
+UInt128(487852666383429, 8326027292750522649),
+UInt128(390282133106743, 10350170648942328442),
+UInt128(312225706485394, 15658834148637683400),
+UInt128(499561130376631, 13986088193594562471),
+UInt128(399648904301305, 7499521740133739653),
+UInt128(319719123441044, 5999617392106991723),
+UInt128(511550597505670, 16978085456855007403),
+UInt128(409240478004536, 13582468365484005922),
+UInt128(327392382403629, 7176625877645294415),
+UInt128(523827811845807, 414554960006740094),
+UInt128(419062249476645, 11399690412231123045),
+UInt128(335249799581316, 9119752329784898436),
+UInt128(536399679330106, 7212906098172016851),
+UInt128(429119743464085, 2080976063795703157),
+UInt128(343295794771268, 1664780851036562526),
+UInt128(549273271634028, 17421044620626141334),
+UInt128(439418617307223, 2868789252275182098),
+UInt128(351534893845778, 9673729031303966325),
+UInt128(562455830153245, 11788617635344435796),
+UInt128(449964664122596, 9430894108275548637),
+UInt128(359971731298077, 3855366471878528586),
+UInt128(287977385038461, 14152339621728553839),
+UInt128(460763816061538, 15265045765281865496),
+UInt128(368611052849231, 1143990167999761427),
+UInt128(294888842279384, 15672587393367450434),
+UInt128(471822147647015, 14008093385162189725),
+UInt128(377457718117612, 11206474708129751780),
+UInt128(301966174494090, 1586482137019980778),
+UInt128(483145879190544, 2538371419231969244),
+UInt128(386516703352435, 5720045950127485719),
+UInt128(309213362681948, 4576036760101988575),
+UInt128(494741380291117, 3632310001421271397),
+UInt128(395793104232893, 13973894445362748087),
+UInt128(316634483386315, 111069112064467500),
+UInt128(506615173418104, 177710579303148000),
+UInt128(405292138734483, 3831517278184428723),
+UInt128(324233710987586, 10443911452031363625),
+UInt128(518773937580138, 9331560693766361154),
+UInt128(415019150064110, 14843946184496909569),
+UInt128(332015320051288, 11875156947597527655),
+UInt128(531224512082061, 15310902301414133926),
+UInt128(424979609665649, 8559373026389396817),
+UInt128(339983687732519, 10536847235853427777),
+UInt128(543973900372031, 5790909133139753474),
+]
+
+private let bid_breakpoints_binary80_116: [UInt128] = [
+UInt128(435179120297625, 943378491769892456),
+UInt128(348143296238100, 754702793415913964),
+UInt128(557029273980960, 1207524469465462343),
+UInt128(445623419184768, 966019575572369875),
+UInt128(356498735347814, 8151513289941716546),
+UInt128(285198988278251, 10210559446695283560),
+UInt128(456318381245202, 8958197485228633050),
+UInt128(365054704996161, 18234604432408637409),
+UInt128(292043763996929, 10898334731184999604),
+UInt128(467270022395087, 6369289125670268397),
+UInt128(373816017916069, 16163477744761945687),
+UInt128(299052814332855, 16620131010551466873),
+UInt128(478484502932569, 8145465543172795381),
+UInt128(382787602346055, 10205721249280146628),
+UInt128(306230081876844, 8164576999424117302),
+UInt128(489968131002951, 1995276754852856714),
+UInt128(391974504802360, 16353616662849926664),
+UInt128(313579603841888, 13082893330279941331),
+UInt128(501727366147021, 17243280513705995807),
+UInt128(401381892917617, 10105275596222886322),
+UInt128(321105514334094, 705522847494488411),
+UInt128(513768822934550, 8507534185475002105),
+UInt128(411015058347640, 6806027348380001684),
+UInt128(328812046678112, 5444821878704001347),
+UInt128(526099274684979, 12401063820668312478),
+UInt128(420879419747983, 13610199871276560306),
+UInt128(336703535798386, 18266857526505068891),
+UInt128(538725657277419, 3401530339214737964),
+UInt128(430980525821935, 6410573086113700694),
+UInt128(344784420657548, 5128458468890960555),
+UInt128(551655073052077, 4516184735483626565),
+UInt128(441324058441661, 14680994232612632222),
+UInt128(353059246753329, 8055446571348195454),
+UInt128(282447397402663, 10133706071820466686),
+UInt128(451915835844261, 12524580900170836375),
+UInt128(361532668675409, 6330315905394758777),
+UInt128(289226134940327, 8753601539057717345),
+UInt128(462761815904523, 17695111277234258075),
+UInt128(370209452723619, 3088042577561675490),
+UInt128(296167562178895, 6159782876791250715),
+UInt128(473868099486232, 9855652602866001145),
+UInt128(379094479588986, 505824452808980269),
+UInt128(303275583671188, 15162054821214825508),
+UInt128(485240933873902, 2123194825492258874),
+UInt128(388192747099121, 12766602304619538069),
+UInt128(310554197679297, 6523933028953720132),
+UInt128(496886716286875, 14127641661067862534),
+UInt128(397509373029500, 11302113328854290027),
+UInt128(318007498423600, 9041690663083432022),
+UInt128(508811997477760, 14466705060933491235),
+]
+
+private let bid_breakpoints_binary80_117: [UInt128] = [
+UInt128(407049597982208, 11573364048746792988),
+UInt128(325639678385766, 16637388868481255037),
+UInt128(521023485417227, 794380486376635797),
+UInt128(416818788333781, 11703550833327039607),
+UInt128(333455030667025, 5673491851919721362),
+UInt128(533528049067240, 9077586963071554180),
+UInt128(426822439253792, 7262069570457243344),
+UInt128(341457951403033, 16877702100591525644),
+UInt128(546332722244854, 4868230472494979092),
+UInt128(437066177795883, 7583933192737893597),
+UInt128(349652942236706, 13445844183674135524),
+UInt128(559444707578730, 14134653064394796192),
+UInt128(447555766062984, 11307722451515836953),
+UInt128(358044612850387, 12735526775954579886),
+UInt128(286435690280310, 2809723791279843262),
+UInt128(458297104448496, 4495558066047749220),
+UInt128(366637683558796, 18353841711805840668),
+UInt128(293310146847037, 10993724554702762211),
+UInt128(469296234955260, 2832564028556778246),
+UInt128(375436987964208, 2266051222845422597),
+UInt128(300349590371366, 9191538607760158724),
+UInt128(480559344594186, 7327764142932433312),
+UInt128(384447475675349, 2172862499604036326),
+UInt128(307557980540279, 5427638814425139384),
+UInt128(492092768864446, 16062919732564043661),
+UInt128(393674215091557, 9160986971309324605),
+UInt128(314939372073245, 18396836021273190654),
+UInt128(503902995317193, 10988193560327553430),
+UInt128(403122396253754, 16169252477745863391),
+UInt128(322497917003003, 16624750796938601036),
+UInt128(515996667204806, 4463508386650299718),
+UInt128(412797333763844, 18328201968287881067),
+UInt128(330237867011075, 18351910389372215177),
+UInt128(528380587217721, 10916312549285992667),
+UInt128(422704469774177, 5043701224686883811),
+UInt128(338163575819341, 15103007423975238018),
+UInt128(541061721310946, 16786114248876560183),
+UInt128(432849377048757, 9739542584359337823),
+UInt128(346279501639006, 412936438003649612),
+UInt128(554047202622409, 11728744745031570349),
+UInt128(443237762097927, 13072344610767166602),
+UInt128(354590209678342, 3079178059129912635),
+UInt128(283672167742673, 13531388891529661078),
+UInt128(453875468388277, 17960873411705547401),
+UInt128(363100374710622, 6990001099880617274),
+UInt128(290480299768497, 16660047324130224789),
+UInt128(464768479629596, 11898680459640718370),
+UInt128(371814783703677, 5829595552970664373),
+UInt128(297451826962941, 15731722886602262468),
+UInt128(475922923140706, 17792058989079799302),
+]
+
+private let bid_breakpoints_binary80_118: [UInt128] = [
+UInt128(380738338512565, 10544298376521929118),
+UInt128(304590670810052, 8435438701217543295),
+UInt128(487345073296083, 17186050736689979595),
+UInt128(389876058636867, 2680794145126252706),
+UInt128(311900846909493, 13212681760326733135),
+UInt128(499041355055189, 17450942001780862692),
+UInt128(399233084044151, 17650102416166600477),
+UInt128(319386467235321, 10430733118191370058),
+UInt128(511018347576514, 9310475359622371447),
+UInt128(408814678061211, 11137729102439807481),
+UInt128(327051742448969, 5220834467209935661),
+UInt128(523282787918350, 15732032777019717705),
+UInt128(418626230334680, 12585626221615774164),
+UInt128(334900984267744, 10068500977292619331),
+UInt128(535841574828391, 5041555119442459960),
+UInt128(428673259862713, 343895280812057645),
+UInt128(342938607890170, 7653813854133466762),
+UInt128(548701772624272, 12246102166613546820),
+UInt128(438961418099418, 2418184103807016809),
+UInt128(351169134479534, 9313244912529434094),
+UInt128(561870615167255, 3833145415821363581),
+UInt128(449496492133804, 3066516332657090864),
+UInt128(359597193707043, 6142561880867583015),
+UInt128(287677754965634, 12292747134177887058),
+UInt128(460284407945015, 8600348970458888324),
+UInt128(368227526356012, 6880279176367110659),
+UInt128(294582021084809, 16572269785319419497),
+UInt128(471331233735695, 15447585212285340225),
+UInt128(377064986988556, 12358068169828272180),
+UInt128(301651989590845, 6197105721120707421),
+UInt128(482643183345352, 9915369153793131873),
+UInt128(386114546676282, 553597693550684852),
+UInt128(308891637341025, 11510924599066278851),
+UInt128(494226619745640, 18417479358506046162),
+UInt128(395381295796512, 14733983486804836930),
+UInt128(316305036637210, 4408489159960048897),
+UInt128(506088058619536, 7053582655936078236),
+UInt128(404870446895629, 1953517310006952266),
+UInt128(323896357516503, 5252162662747472136),
+UInt128(518234172026405, 4714111445654045094),
+UInt128(414587337621124, 3771289156523236075),
+UInt128(331669870096899, 6706380139960499183),
+UInt128(530671792155038, 18108905853420619340),
+UInt128(424537433724031, 3419078238510764502),
+UInt128(339629946979224, 17492657849776252894),
+UInt128(543407915166759, 16920206115416273662),
+UInt128(434726332133407, 17225513707074929252),
+UInt128(347781065706726, 6401713336176122755),
+UInt128(556449705130762, 2864043708397975763),
+UInt128(445159764104609, 13359281410944111580),
+]
+
+private let bid_breakpoints_binary80_119: [UInt128] = [
+UInt128(356127811283687, 14376773943497199587),
+UInt128(284902249026950, 4122721525313939023),
+UInt128(455843598443120, 6596354440502302437),
+UInt128(364674878754496, 5277083552401841949),
+UInt128(291739903003597, 532318027179563236),
+UInt128(466783844805755, 4541057658229211502),
+UInt128(373427075844604, 3632846126583369201),
+UInt128(298741660675683, 6595625716008605684),
+UInt128(477986657081093, 6863652330871858772),
+UInt128(382389325664874, 12869619494181307664),
+UInt128(305911460531899, 13985044410086956454),
+UInt128(489458336851039, 11308024611913399357),
+UInt128(391566669480831, 12735768504272629809),
+UInt128(313253335584665, 6499265988676193524),
+UInt128(501205336935464, 10398825581881909638),
+UInt128(400964269548371, 12008409280247438034),
+UInt128(320771415638697, 5917378609456040104),
+UInt128(513234265021915, 13157154589871574489),
+UInt128(410587412017532, 10525723671897259591),
+UInt128(328469929614026, 1041881308033987027),
+UInt128(525551887382441, 12735056537080110212),
+UInt128(420441509905953, 6498696414922177847),
+UInt128(336353207924762, 12577654761421562924),
+UInt128(538165132679620, 5366852359306859385),
+UInt128(430532106143696, 4293481887445487508),
+UInt128(344425684914956, 18192180768924031299),
+UInt128(551081095863931, 3282047527085077817),
+UInt128(440864876691144, 17383033280635703546),
+UInt128(352691901352915, 17595775439250473160),
+UInt128(282153521082332, 14076620351400378528),
+UInt128(451445633731732, 7765197303272964352),
+UInt128(361156506985385, 17280204286844102451),
+UInt128(288925205588308, 13824163429475281961),
+UInt128(462280328941293, 18429312672418540814),
+UInt128(369824263153035, 3675403693709101682),
+UInt128(295859410522428, 2940322954967281345),
+UInt128(473375056835885, 1015167913205739830),
+UInt128(378700045468708, 812134330564591864),
+UInt128(302960036374966, 8028405093935494137),
+UInt128(484736058199946, 5466750520812969973),
+UInt128(387788846559957, 684051601908465655),
+UInt128(310231077247965, 11615287725752503494),
+UInt128(496369723596745, 137716287494453974),
+UInt128(397095778877396, 110173029995563179),
+UInt128(317676623101916, 14845533682964091836),
+UInt128(508282596963066, 16374156263258726292),
+UInt128(406626077570453, 9409976195865070710),
+UInt128(325300862056362, 14906678586175877214),
+UInt128(520481379290180, 9093290478913762251),
+UInt128(416385103432144, 7274632383131009800),
+]
+
+private let bid_breakpoints_binary80_120: [UInt128] = [
+UInt128(333108082745715, 9509054721246718163),
+UInt128(532972932393144, 15214487553994749062),
+UInt128(426378345914515, 15860938857937709572),
+UInt128(341102676731612, 12688751086350167658),
+UInt128(545764282770580, 5544606479192626960),
+UInt128(436611426216464, 4435685183354101568),
+UInt128(349289140973171, 7237896961425191577),
+UInt128(558862625557074, 4201937508796485878),
+UInt128(447090100445659, 7050898821779099025),
+UInt128(357672080356527, 9330067872165189543),
+UInt128(286137664285222, 85356668248330988),
+UInt128(457820262856355, 3825919483939239905),
+UInt128(366256210285084, 3060735587151391924),
+UInt128(293004968228067, 6137937284463023862),
+UInt128(468807949164907, 13510048469882748503),
+UInt128(375046359331926, 3429341146422378156),
+UInt128(300037087465540, 17500868176105543817),
+UInt128(480059339944865, 9554645008059318492),
+UInt128(384047471955892, 7643716006447454793),
+UInt128(307237977564713, 17183019249383694804),
+UInt128(491580764103542, 5356737910562449748),
+UInt128(393264611282833, 15353436772675690768),
+UInt128(314611689026267, 1214702973914821645),
+UInt128(503378702442027, 5632873573005624955),
+UInt128(402702961953621, 15574345302630230933),
+UInt128(322162369562897, 8770127427362274423),
+UInt128(515459791300635, 17721552698521549401),
+UInt128(412367833040508, 14177242158817239521),
+UInt128(329894266432407, 273747282828060647),
+UInt128(527830826291851, 4127344467266807358),
+UInt128(422264661033480, 18059270832781087179),
+UInt128(337811728826784, 14447416666224869743),
+UInt128(540498766122855, 12047820221734060620),
+UInt128(432399012898284, 9638256177387248496),
+UInt128(345919210318627, 11399953756651709120),
+UInt128(553470736509804, 3482530751675093299),
+UInt128(442776589207843, 6475373416081984963),
+UInt128(354221271366274, 12558996362349408616),
+UInt128(283377017093019, 13736545904621437216),
+UInt128(453403227348831, 10910427003168568577),
+UInt128(362722581879065, 5038992787792944538),
+UInt128(290178065503252, 4031194230234355630),
+UInt128(464284904805203, 10139259583116879332),
+UInt128(371427923844162, 15490105295977324112),
+UInt128(297142339075330, 5013386607298038643),
+UInt128(475427742520528, 8021418571676861829),
+UInt128(380342194016422, 13795832486825310110),
+UInt128(304273755213138, 3657968359976427441),
+UInt128(486838008341021, 2163400561220373583),
+UInt128(389470406672816, 16488115707943940159),
+]
+
+private let bid_breakpoints_binary80_121: [UInt128] = [
+UInt128(311576325338253, 9501143751613241804),
+UInt128(498522120541205, 11512481187839276563),
+UInt128(398817696432964, 9209984950271421251),
+UInt128(319054157146371, 11057336774959047324),
+UInt128(510486651434194, 10313041210450655072),
+UInt128(408389321147355, 11939781783102434380),
+UInt128(326711456917884, 9551825426481947504),
+UInt128(522738331068615, 4214874238145385037),
+UInt128(418190664854892, 3371899390516308030),
+UInt128(334552531883913, 13765565956638777393),
+UInt128(535284051014261, 18335556715880133507),
+UInt128(428227240811409, 10979096557962196482),
+UInt128(342581792649127, 12472626061111667509),
+UInt128(548130868238604, 5198806438811026721),
+UInt128(438504694590883, 7848393965790731700),
+UInt128(350803755672706, 13657412802116406006),
+UInt128(561286009076330, 14473162853902428964),
+UInt128(449028807261064, 11578530283121943171),
+UInt128(359223045808851, 12952173041239464860),
+UInt128(287378436647081, 6672389618249661565),
+UInt128(459805498635330, 3297125759715637858),
+UInt128(367844398908264, 2637700607772510286),
+UInt128(294275519126611, 5799509300959918552),
+UInt128(470840830602578, 1900517252052049037),
+UInt128(376672664482062, 8899111431125459876),
+UInt128(301338131585649, 18187335589126098870),
+UInt128(482141010537039, 18031690498376027223),
+UInt128(385712808429631, 18114701213442732101),
+UInt128(308570246743705, 10802412156012275358),
+UInt128(493712394789928, 17283859449619640573),
+UInt128(394969915831943, 2759041115469981489),
+UInt128(315975932665554, 9585930521859805837),
+UInt128(505561492264887, 4269442390749958370),
+UInt128(404449193811909, 14483600356825697666),
+UInt128(323559355049527, 15276229100202468456),
+UInt128(517694968079244, 9684571301356308236),
+UInt128(414155974463395, 11437005855826956912),
+UInt128(331324779570716, 9149604684661565530),
+UInt128(530119647313146, 7260669865974684201),
+UInt128(424095717850517, 2119187078037837038),
+UInt128(339276574280413, 12763396106656000600),
+UInt128(542842518848661, 16732084955907690637),
+UInt128(434274015078929, 9696319149984242186),
+UInt128(347419212063143, 11446404134729304072),
+UInt128(555870739301029, 14624897800824976192),
+UInt128(444696591440823, 15389267055401891277),
+UInt128(355757273152659, 1243367200095782052),
+UInt128(284605818522127, 4684042574818535965),
+UInt128(455369309635403, 11183816934451567867),
+UInt128(364295447708322, 16325751177045074940),
+]
+
+private let bid_breakpoints_binary80_122: [UInt128] = [
+UInt128(291436358166658, 5681903312152239305),
+UInt128(466298173066653, 5401696484701672566),
+UInt128(373038538453322, 11700054817245158699),
+UInt128(298430830762658, 1981346224312306313),
+UInt128(477489329220252, 17927549217867331393),
+UInt128(381991463376202, 6963341744810044468),
+UInt128(305593170700961, 16638719840073766544),
+UInt128(488949073121539, 796510040924654208),
+UInt128(391159258497231, 4326556847481633690),
+UInt128(312927406797784, 18218640736952948244),
+UInt128(500683850876455, 18081778734898986222),
+UInt128(400547080701164, 14465422987919188977),
+UInt128(320437664560931, 15261687205077261505),
+UInt128(512700263297490, 17040001898639797762),
+UInt128(410160210637992, 13632001518911838209),
+UInt128(328128168510394, 3526903585645649921),
+UInt128(525005069616630, 13021743366516860520),
+UInt128(420004055693304, 10417394693213488416),
+UInt128(336003244554643, 12023264569312701056),
+UInt128(537605191287429, 15547874496158411367),
+UInt128(430084153029943, 16127648411668639416),
+UInt128(344067322423955, 1834072285109180563),
+UInt128(550507715878328, 2934515656174688902),
+UInt128(440406172702662, 9726310154423571768),
+UInt128(352324938162130, 402350494055036768),
+UInt128(281859950529704, 321880395244029414),
+UInt128(450975920847526, 7893706261874267709),
+UInt128(360780736678021, 2625616194757503844),
+UInt128(288624589342416, 16857888214773644368),
+UInt128(461799342947867, 1147179440444458727),
+UInt128(369439474358293, 11985789996581297951),
+UInt128(295551579486634, 16967329626748859007),
+UInt128(472882527178615, 16079680958572443442),
+UInt128(378306021742892, 12863744766857954753),
+UInt128(302644817394314, 2912298184002543156),
+UInt128(484231707830902, 12038374723887889697),
+UInt128(387385366264722, 2252002149626491111),
+UInt128(309908293011777, 12869648163926923858),
+UInt128(495853268818844, 5834041803315436880),
+UInt128(396682615055075, 8356582257394259827),
+UInt128(317346092044060, 6685265805915407862),
+UInt128(507753747270496, 10696425289464652579),
+UInt128(406202997816397, 4867791416829811740),
+UInt128(324962398253117, 14962279577689580362),
+UInt128(519939837204988, 9182252065335687286),
+UInt128(415951869763990, 14724499281752370475),
+UInt128(332761495811192, 11779599425401896380),
+UInt128(532418393297908, 4089963821675392916),
+UInt128(425934714638326, 10650668686824134979),
+UInt128(340747771710661, 4831186134717397660),
+]
+
+private let bid_breakpoints_binary80_123: [UInt128] = [
+UInt128(545196434737058, 351200186064015609),
+UInt128(436157147789646, 7659657778335033134),
+UInt128(348925718231717, 2438377407926116184),
+UInt128(558281149170747, 7590752667423696218),
+UInt128(446624919336597, 17140648578164687944),
+UInt128(357299935469278, 6333821233047929708),
+UInt128(285839948375422, 12445754615922164413),
+UInt128(457343917400676, 5155812126507821768),
+UInt128(365875133920541, 435300886464347091),
+UInt128(292700107136432, 15105635968139118966),
+UInt128(468320171418292, 9411622290054949053),
+UInt128(374656137134634, 150600202560138596),
+UInt128(299724909707707, 3809828976790021200),
+UInt128(479559855532331, 9785075177605944243),
+UInt128(383647884425865, 4138711327342845071),
+UInt128(306918307540692, 3310969061874276057),
+UInt128(491069292065107, 8986899313740752014),
+UInt128(392855433652085, 18257565895218332581),
+UInt128(314284346921668, 14606052716174666065),
+UInt128(502854955074670, 1233591457428003764),
+UInt128(402283964059736, 986873165942403011),
+UInt128(321827171247788, 15546893791721563702),
+UInt128(514923473996462, 2738937178303039984),
+UInt128(411938779197169, 13259196186868162957),
+UInt128(329551023357735, 14296705764236440689),
+UInt128(527281637372377, 4427985149068753486),
+UInt128(421825309897901, 14610434563480733758),
+UInt128(337460247918321, 7998998836042676683),
+UInt128(539936396669314, 5419700508184462047),
+UInt128(431949117335451, 8025109221289479961),
+UInt128(345559293868361, 2730738562289673645),
+UInt128(552894870189377, 15437228143889208802),
+UInt128(442315896151502, 4971084885627546395),
+UInt128(353852716921201, 15044914352727768086),
+UInt128(283082173536961, 8346582667440304145),
+UInt128(452931477659138, 5975834638420665987),
+UInt128(362345182127310, 12159365340220353436),
+UInt128(289876145701848, 9727492272176282748),
+UInt128(463801833122957, 11874638820740142074),
+UInt128(371041466498366, 2121013427108293013),
+UInt128(296833173198692, 16454206000654275703),
+UInt128(474933077117908, 11569334342079199833),
+UInt128(379946461694326, 16634165103147180512),
+UInt128(303957169355461, 9617983267775834087),
+UInt128(486331470968738, 8010075598957513892),
+UInt128(389065176774990, 13786758108649831760),
+UInt128(311252141419992, 11029406486919865408),
+UInt128(498003426271988, 2889655120104143360),
+UInt128(398402741017590, 9690421725567135335),
+UInt128(318722192814072, 7752337380453708268),
+]
+
+private let bid_breakpoints_binary80_124: [UInt128] = [
+UInt128(509955508502515, 16093088623467843552),
+UInt128(407964406802012, 12874470898774274841),
+UInt128(326371525441610, 2920879089535599226),
+UInt128(522194440706576, 4673406543256958763),
+UInt128(417755552565261, 49376419863656687),
+UInt128(334204442052208, 14796896394858566642),
+UInt128(534727107283534, 1538941343322244689),
+UInt128(427781685826827, 4920501889399706074),
+UInt128(342225348661461, 15004447955745495829),
+UInt128(547560557858338, 16628419099708972680),
+UInt128(438048446286671, 2234688835541447174),
+UInt128(350438757029336, 16545146327400799032),
+UInt128(560702011246939, 646792420647906189),
+UInt128(448561608997551, 4206782751260235274),
+UInt128(358849287198040, 18122821459975829512),
+UInt128(287079429758432, 14498257167980663610),
+UInt128(459327087613492, 8439816209801420483),
+UInt128(367461670090793, 17819899412066867356),
+UInt128(293969336072635, 3187873085427762915),
+UInt128(470350937716216, 5100596936684420664),
+UInt128(376280750172973, 391128734605626208),
+UInt128(301024600138378, 7691600617168321613),
+UInt128(481639360221405, 8617212172727404258),
+UInt128(385311488177124, 6893769738181923406),
+UInt128(308249190541699, 9204364605287449048),
+UInt128(493198704866719, 3658936924234187507),
+UInt128(394558963893375, 6616498354129260329),
+UInt128(315647171114700, 5293198683303408263),
+UInt128(505035473783520, 8469117893285453221),
+UInt128(404028379026816, 6775294314628362577),
+UInt128(323222703221453, 1730886636960779738),
+UInt128(517156325154324, 17526813878104888874),
+UInt128(413725060123459, 17710799917225821422),
+UInt128(330980048098767, 17857988748522567461),
+UInt128(529568076958028, 13815386738668466645),
+UInt128(423654461566422, 18431007020418593962),
+UInt128(338923569253138, 7366107986851054523),
+UInt128(542277710805021, 8096423964219776915),
+UInt128(433822168644017, 2787790356633911208),
+UInt128(347057734915213, 13298278729532859936),
+UInt128(555292375864341, 17587897152510665575),
+UInt128(444233900691473, 10380968907266622137),
+UInt128(355387120553178, 15683472755297118356),
+UInt128(284309696442543, 1478731760011963715),
+UInt128(454895514308068, 17123366074986783237),
+UInt128(363916411446455, 2630646415763695620),
+UInt128(291133129157164, 2104517132610956496),
+UInt128(465813006651462, 10745925041661351040),
+UInt128(372650405321170, 1218042403845260185),
+UInt128(298120324256936, 974433923076208148),
+]
+
+private let bid_breakpoints_binary80_125: [UInt128] = [
+UInt128(476992518811097, 12627140721147664007),
+UInt128(381594015048878, 2723014947434310559),
+UInt128(305275212039102, 9557109587431269094),
+UInt128(488440339262564, 533980080922389257),
+UInt128(390752271410051, 4116532879479821729),
+UInt128(312601817128040, 18050621562551498676),
+UInt128(500162907404865, 10434250426372846266),
+UInt128(400130325923892, 8347400341098277012),
+UInt128(320104260739113, 17745966717104352579),
+UInt128(512166817182582, 6257453858915502188),
+UInt128(409733453746065, 16074009531358132720),
+UInt128(327786762996852, 12859207625086506176),
+UInt128(524458820794964, 5817336941170768589),
+UInt128(419567056635971, 8343218367678525194),
+UInt128(335653645308777, 2985225879400909832),
+UInt128(537045832494043, 8465710221783366055),
+UInt128(429636665995234, 14151265806910513490),
+UInt128(343709332796187, 15010361460270321115),
+UInt128(549934932473900, 9259183077464872492),
+UInt128(439947945979120, 7407346461971897993),
+UInt128(351958356783296, 5925877169577518395),
+UInt128(281566685426637, 1051352920920104392),
+UInt128(450506696682619, 5371513488214077351),
+UInt128(360405357346095, 7986559605313172204),
+UInt128(288324285876876, 6389247684250537763),
+UInt128(461318857403002, 2844098665317039775),
+UInt128(369055085922401, 13343325376479362790),
+UInt128(295244068737921, 6985311486441579908),
+UInt128(472390509980674, 3797800748822707207),
+UInt128(377912407984539, 6727589413800076089),
+UInt128(302329926387631, 9071420345781971194),
+UInt128(483727882220210, 7135574923767333265),
+UInt128(386982305776168, 5708459939013866612),
+UInt128(309585844620934, 11945465580694913936),
+UInt128(495337351393495, 8044698484886131328),
+UInt128(396269881114796, 6435758787908905062),
+UInt128(317015904891837, 1459258215585213726),
+UInt128(507225447826939, 6024161959678252286),
+UInt128(405780358261551, 8508678382484512152),
+UInt128(324624286609241, 3117593891245699398),
+UInt128(519398858574785, 16056196670218850007),
+UInt128(415519086859828, 12844957336175080005),
+UInt128(332415269487862, 17654663498423884651),
+UInt128(531864431180580, 13490066338510574148),
+UInt128(425491544944464, 10792053070808459319),
+UInt128(340393235955571, 12322991271388677778),
+UInt128(544629177528914, 12338088404738063799),
+UInt128(435703342023131, 13559819538532361362),
+UInt128(348562673618505, 7158506816083978766),
+UInt128(557700277789608, 11453610905734366026),
+]
+
+private let bid_breakpoints_binary80_126: [UInt128] = [
+UInt128(446160222231686, 16541586354071313467),
+UInt128(356928177785349, 9543920268515140451),
+UInt128(285542542228279, 11324485029554022684),
+UInt128(456868067565247, 7051129603060705325),
+UInt128(365494454052197, 16708950126674295229),
+UInt128(292395563241758, 5988462471855615537),
+UInt128(467832901186813, 5892191140227074536),
+UInt128(374266320949450, 12092450541665480275),
+UInt128(299413056759560, 9673960433332384220),
+UInt128(479060890815296, 15478336693331814752),
+UInt128(383248712652237, 8693320539923541478),
+UInt128(306598970121789, 18022702876164564152),
+UInt128(490558352194863, 17768278157637571674),
+UInt128(392446681755891, 3146576081884326370),
+UInt128(313957345404712, 17274656124475102389),
+UInt128(502331752647540, 12882054540192522529),
+UInt128(401865402118032, 10305643632154018023),
+UInt128(321492321694426, 865817276239393772),
+UInt128(514387714711081, 12453354086208761005),
+UInt128(411510171768865, 6273334454225098481),
+UInt128(329208137415092, 5018667563380078785),
+UInt128(526733019864147, 11719216916150036379),
+UInt128(421386415891318, 1996675903436208457),
+UInt128(337109132713054, 8976038352232787412),
+UInt128(539374612340887, 3293614919346728889),
+UInt128(431499689872709, 13702938379703114081),
+UInt128(345199751898167, 14651699518504401588),
+UInt128(552319603037068, 8685323970639401248),
+UInt128(441855682429654, 14326956805995341645),
+UInt128(353484545943723, 15150914259538183639),
+UInt128(282787636754979, 1052684963404815941),
+UInt128(452460218807966, 9062993570931526153),
+UInt128(361968175046373, 3561046042003310599),
+UInt128(289574540037098, 10227534463086469126),
+UInt128(463319264059357, 12674706326196440278),
+UInt128(370655411247486, 2761067431473331576),
+UInt128(296524328997988, 16966249204146306553),
+UInt128(474438926396782, 5009905838182628546),
+UInt128(379551141117425, 15075971114771833807),
+UInt128(303640912893940, 12060776891817467045),
+UInt128(485825460630305, 850498953198395657),
+UInt128(388660368504244, 680399162558716525),
+UInt128(310928294803395, 4233668144788883543),
+UInt128(497485271685432, 6773869031662213670),
+UInt128(397988217348345, 16487141669555501905),
+UInt128(318390573878676, 13189713335644401524),
+UInt128(509424918205882, 13724843707547221792),
+UInt128(407539934564706, 3601177336553956787),
+UInt128(326031947651764, 17638337128210806723),
+UInt128(521651116242823, 17153292960911559787),
+]
+
+private let bid_breakpoints_binary80_127: [UInt128] = [
+UInt128(417320892994259, 2654587924503516860),
+UInt128(333856714395407, 5813019154344723811),
+UInt128(534170743032651, 12990179461693468421),
+UInt128(427336594426121, 6702794754612864414),
+UInt128(341869275540897, 1672886988948381208),
+UInt128(546990840865435, 6365967997059320256),
+UInt128(437592672692348, 5092774397647456204),
+UInt128(350074138153878, 11452917147601785610),
+UInt128(560118621046205, 14635318621420946653),
+UInt128(448094896836964, 11708254897136757322),
+UInt128(358475917469571, 13055952732451316181),
+UInt128(286780733975657, 6755413371219142621),
+UInt128(458849174361051, 14498010208692538518),
+UInt128(367079339488841, 7909059352212120491),
+UInt128(293663471591073, 2637898667027786069),
+UInt128(469861554545717, 531289052502547388),
+UInt128(375889243636573, 11493077686227768880),
+UInt128(300711394909258, 16573159778466035750),
+UInt128(481138231854814, 4380962757094195261),
+UInt128(384910585483851, 7194119020417266532),
+UInt128(307928468387081, 2065946401591902903),
+UInt128(492685549419329, 14373560686772775614),
+UInt128(394148439535463, 15188197364160130814),
+UInt128(315318751628371, 1082511447102373682),
+UInt128(504510002605393, 12800064759589528861),
+UInt128(403608002084314, 17618749437155443735),
+UInt128(322886401667451, 17784348364466265311),
+UInt128(516618242667923, 2629515679952652235),
+UInt128(413294594134338, 9482310173445942435),
+UInt128(330635675307470, 14964545768240574594),
+UInt128(529017080491953, 5496529155475367735),
+UInt128(423213664393562, 11775920953864114834),
+UInt128(338570931514850, 2042039133607471221),
+UInt128(541713490423760, 3267262613771953953),
+UInt128(433370792339008, 2613810091017563163),
+UInt128(346696633871206, 9469745702297871176),
+UInt128(554714614193930, 7772895494192773236),
+UInt128(443771691355144, 6218316395354218589),
+UInt128(355017353084115, 8664001931025285194),
+UInt128(284013882467292, 6931201544820228155),
+UInt128(454422211947667, 14779271286454275372),
+UInt128(363537769558134, 4444719399679599651),
+UInt128(290830215646507, 7245124334485590044),
+UInt128(465328345034411, 15281547749918854394),
+UInt128(372262676027529, 8535889385193173192),
+UInt128(297810140822023, 10518060322896448876),
+UInt128(476496225315237, 13139547701892407879),
+UInt128(381196980252190, 3132940532030105657),
+UInt128(304957584201752, 2506352425624084526),
+UInt128(487932134722803, 7699512695740445564),
+]
+
+private let bid_breakpoints_binary80_128: [UInt128] = [
+UInt128(390345707778242, 13538307786076177098),
+UInt128(312276566222594, 3451948599377121032),
+UInt128(499642505956150, 12901815388487214297),
+UInt128(399714004764920, 10321452310789771438),
+UInt128(319771203811936, 8257161848631817150),
+UInt128(511633926099098, 5832761328327086794),
+UInt128(409307140879278, 12044906692145490082),
+UInt128(327445712703422, 17014622983200212712),
+UInt128(523913140325476, 12466001514152699046),
+UInt128(419130512260381, 6283452396580248914),
+UInt128(335304409808305, 1337413102522288808),
+UInt128(536487055693288, 2139860964035662092),
+UInt128(429189644554630, 9090586400712350320),
+UInt128(343351715643704, 7272469120569880256),
+UInt128(549362745029927, 567904148686077440),
+UInt128(439490196023941, 11522369763174592922),
+UInt128(351592156819153, 5528546995797764014),
+UInt128(562547450910645, 5156326378534512100),
+UInt128(450037960728516, 4125061102827609680),
+UInt128(360030368582812, 18057444141229729036),
+UInt128(288024294866250, 7067257683499962583),
+UInt128(460838871786000, 11307612293599940133),
+UInt128(368671097428800, 9046089834879952106),
+UInt128(294936877943040, 7236871867903961685),
+UInt128(471899004708864, 11578994988646338696),
+UInt128(377519203767091, 12952544805658981280),
+UInt128(302015363013673, 6672687029785274700),
+UInt128(483224580821877, 6986950432914529198),
+UInt128(386579664657501, 16657606790557354328),
+UInt128(309263731726001, 9636736617703973139),
+UInt128(494821970761602, 8040080958842536376),
+UInt128(395857576609281, 17500111211299760070),
+UInt128(316686061287425, 10310740154297897733),
+UInt128(506697698059880, 16497184246876636373),
+UInt128(405358158447904, 13197747397501309098),
+UInt128(324286526758323, 14247546732742957602),
+UInt128(518858442813318, 659981883937270224),
+UInt128(415086754250654, 7906683136633636826),
+UInt128(332069403400523, 10014695324048819784),
+UInt128(531311045440837, 12334163703736201331),
+UInt128(425048836352670, 2488633333505140418),
+UInt128(340039069082136, 1990906666804112334),
+UInt128(544062510531417, 14253497111112310705),
+UInt128(435250008425134, 4024100059406027917),
+UInt128(348200006740107, 6908628862266732657),
+UInt128(557120010784171, 14743154994368682575),
+UInt128(445696008627337, 8105175180753035737),
+UInt128(356556806901869, 17552186588828159559),
+UInt128(285245445521495, 17731098085804437970),
+UInt128(456392712834393, 9923012863577549136),
+]
+
+private let bid_breakpoints_binary80_129: [UInt128] = [
+UInt128(365114170267514, 15317107920345859955),
+UInt128(292091336214011, 15943035151018598287),
+UInt128(467346137942418, 18130158612145936614),
+UInt128(373876910353935, 3436080445491018321),
+UInt128(299101528283148, 2748864356392814657),
+UInt128(478562445253037, 708834155486593128),
+UInt128(382849956202429, 11635113768615005472),
+UInt128(306279964961943, 12997439829633914701),
+UInt128(490047943939109, 17106554912672353198),
+UInt128(392038355151287, 17374592744879792882),
+UInt128(313630684121030, 6520976566420013659),
+UInt128(501809094593648, 10433562506272021855),
+UInt128(401447275674918, 15725547634501438130),
+UInt128(321157820539935, 1512391663375419534),
+UInt128(513852512863896, 2419826661400671255),
+UInt128(411082010291116, 16693256588088178297),
+UInt128(328865608232893, 9665256455728632314),
+UInt128(526184973172629, 11775061514423901380),
+UInt128(420947978538103, 13109398026281031427),
+UInt128(336758382830482, 17866216050508645788),
+UInt128(538813412528772, 13828550421846191968),
+UInt128(431050730023018, 3684142707993132928),
+UInt128(344840584018414, 10326011795878326989),
+UInt128(551744934429463, 5453572429179592213),
+UInt128(441395947543570, 11741555572827494416),
+UInt128(353116758034856, 9393244458261995533),
+UInt128(282493406427885, 3825246751867686103),
+UInt128(451989450284616, 6120394802988297765),
+UInt128(361591560227693, 1206967027648727889),
+UInt128(289273248182154, 8344271251602802957),
+UInt128(462837197091447, 2282787558338753763),
+UInt128(370269757673157, 12894276490896733980),
+UInt128(296215806138526, 2936723563233566537),
+UInt128(473945289821641, 15766804145399437429),
+UInt128(379156231857313, 8924094501577639620),
+UInt128(303324985485850, 14517973230745932342),
+UInt128(485319976777361, 4782013095483940132),
+UInt128(388255981421889, 136261661645241782),
+UInt128(310604785137511, 3798358144058103749),
+UInt128(496967656220017, 17145419474718696968),
+UInt128(397574124976014, 6337637950291136928),
+UInt128(318059299980811, 8759459174974819866),
+UInt128(508894879969298, 6636437050475891139),
+UInt128(407115903975438, 12687847269864533557),
+UInt128(325692723180350, 17528975445375447492),
+UInt128(521108357088561, 9599616638891164372),
+UInt128(416886685670849, 3990344496371021174),
+UInt128(333509348536679, 6881624411838727263),
+UInt128(533614957658686, 18389296688425784267),
+UInt128(426891966126949, 11022088535998717090),
+]
+
+private let bid_breakpoints_binary80_130: [UInt128] = [
+UInt128(341513572901559, 12507019643540883995),
+UInt128(546421716642495, 8943184985439683423),
+UInt128(437137373313996, 7154547988351746738),
+UInt128(349709898651197, 2034289575939487067),
+UInt128(559535837841915, 6944212136245089631),
+UInt128(447628670273532, 5555369708996071705),
+UInt128(358102936218825, 15512342211422588333),
+UInt128(286482348975060, 12409873769138070667),
+UInt128(458371758360097, 1409053956911361451),
+UInt128(366697406688077, 12195289609754820130),
+UInt128(293357925350462, 2377534058320035458),
+UInt128(469372680560739, 7493403308053967056),
+UInt128(375498144448591, 9684071461185083968),
+UInt128(300398515558873, 4057908354206156851),
+UInt128(480637624894197, 2803304551987940638),
+UInt128(384510099915357, 13310690085816083480),
+UInt128(307608079932286, 3269854439169046138),
+UInt128(492172927891657, 16299813546896204790),
+UInt128(393738342313326, 5661153208033143186),
+UInt128(314990673850661, 839573751684604225),
+UInt128(503985078161057, 12411364446921097730),
+UInt128(403188062528846, 2550393928053057538),
+UInt128(322550450023076, 16797710401410087323),
+UInt128(516080720036923, 1050894939062767455),
+UInt128(412864576029538, 8219413580734034610),
+UInt128(330291660823630, 13954228494071048334),
+UInt128(528466657317809, 3880021516804125719),
+UInt128(422773325854247, 6793366028185210898),
+UInt128(338218660683397, 16502739266773899688),
+UInt128(541149857093436, 11646987567870598209),
+UInt128(432919885674749, 5628241239554568244),
+UInt128(346335908539799, 8191941806385564918),
+UInt128(554137453663679, 2039060445991172899),
+UInt128(443309962930943, 5320597171534848643),
+UInt128(354647970344754, 11635175366711699560),
+UInt128(283718376275803, 12997489108111269971),
+UInt128(453949402041285, 17106633758236121631),
+UInt128(363159521633028, 13685307006588897305),
+UInt128(290527617306422, 18326943234754938490),
+UInt128(464844187690276, 14565713916640260292),
+UInt128(371875350152221, 7963222318570297910),
+UInt128(297500280121777, 2681229040114328005),
+UInt128(476000448194843, 7979315278924835131),
+UInt128(380800358555874, 13762149852623688751),
+UInt128(304640286844699, 14699068696840861324),
+UInt128(487424458951519, 12450463470719647150),
+UInt128(389939567161215, 13649719591317628043),
+UInt128(311951653728972, 10919775673054102434),
+UInt128(499122645966356, 2714245817918922602),
+UInt128(399298116773084, 16928791913302779374),
+]
+
+private let bid_breakpoints_binary80_131: [UInt128] = [
+UInt128(319438493418467, 17232382345384133823),
+UInt128(511101589469548, 12814416493646972824),
+UInt128(408881271575638, 17630230824401398905),
+UInt128(327105017260511, 3036138215295388154),
+UInt128(523368027616817, 15925867588698352017),
+UInt128(418694422093454, 5361996441474860967),
+UInt128(334955537674763, 7978945967921799097),
+UInt128(535928860279621, 9076964733932968232),
+UInt128(428743088223697, 3572222972404464262),
+UInt128(342994470578957, 13925824822149302379),
+UInt128(548791152926332, 7523924456471242514),
+UInt128(439032922341065, 17087186009402724981),
+UInt128(351226337872852, 13669748807522179985),
+UInt128(561962140596564, 7114202833067846683),
+UInt128(449569712477251, 9380711081196187670),
+UInt128(359655769981801, 3815220050215039812),
+UInt128(287724615985440, 17809571299139673143),
+UInt128(460359385576705, 10048570004913925412),
+UInt128(368287508461364, 8038856003931140330),
+UInt128(294630006769091, 10120433617886822587),
+UInt128(471408010830546, 8813996159135095493),
+UInt128(377126408664437, 3361848112566166071),
+UInt128(301701126931549, 13757524934278663826),
+UInt128(482721803090479, 10943993450620131153),
+UInt128(386177442472383, 12444543575238015245),
+UInt128(308941953977906, 17334332489674232843),
+UInt128(494307126364651, 1909490280285400286),
+UInt128(395445701091720, 16284987483195961522),
+UInt128(316356560873376, 13027989986556769217),
+UInt128(506170497397402, 13466086349007010101),
+UInt128(404936397917922, 3394171449721787435),
+UInt128(323949118334337, 13783383604003160917),
+UInt128(518318589334940, 7296018507437416175),
+UInt128(414654871467952, 5836814805949932940),
+UInt128(331723897174361, 15737498288985677321),
+UInt128(530758235478978, 17801299632893263068),
+UInt128(424606588383183, 3172993262088879485),
+UInt128(339685270706546, 9917092239154924234),
+UInt128(543496433130474, 8488649953164058129),
+UInt128(434797146504379, 10480268777273156826),
+UInt128(347837717203503, 12073563836560435784),
+UInt128(556540347525605, 15628353323754786931),
+UInt128(445232278020484, 12502682659003829545),
+UInt128(356185822416387, 13691494941944973959),
+UInt128(284948657933110, 3574498324072158521),
+UInt128(455917852692976, 5719197318515453634),
+UInt128(364734282154381, 886009040070452584),
+UInt128(291787425723504, 15466202491024003360),
+UInt128(466859881157607, 13677877541412674406),
+UInt128(373487904926086, 3563604403646318878),
+]
+
+private let bid_breakpoints_binary80_132: [UInt128] = [
+UInt128(298790323940868, 17608278781884696395),
+UInt128(478064518305390, 6037153162564052294),
+UInt128(382451614644312, 4829722530051241835),
+UInt128(305961291715449, 14931824468266724437),
+UInt128(489538066744719, 12822872705001028130),
+UInt128(391630453395775, 13947646978742732827),
+UInt128(313304362716620, 11158117582994186262),
+UInt128(501286980346592, 17852988132790698019),
+UInt128(401029584277274, 6903692876748737769),
+UInt128(320823667421819, 9212303116140900538),
+UInt128(513317867874911, 3671638541599709892),
+UInt128(410654294299928, 17694706092247409206),
+UInt128(328523435439943, 3087718429572196395),
+UInt128(525637496703909, 1251000672573603909),
+UInt128(420509997363127, 4690149352800793451),
+UInt128(336407997890501, 14820165926466365730),
+UInt128(538252796624802, 16333567852862364522),
+UInt128(430602237299842, 5688156652806070971),
+UInt128(344481789839873, 15618571766470587746),
+UInt128(551170863743798, 2853621937901478455),
+UInt128(440936690995038, 9661595179805003410),
+UInt128(352749352796030, 15107973773327823375),
+UInt128(282199482236824, 12086379018662258700),
+UInt128(451519171578919, 8270159985633882950),
+UInt128(361215337263135, 10305476803249016683),
+UInt128(288972269810508, 8244381442599213346),
+UInt128(462355631696813, 9501661493416831031),
+UInt128(369884505357450, 14980026824217285471),
+UInt128(295907604285960, 11984021459373828377),
+UInt128(473452166857537, 727690261288573788),
+UInt128(378761733486029, 11650198653256590000),
+UInt128(303009386788823, 13009507737347182323),
+UInt128(484815018862117, 17125863565013581394),
+UInt128(387852015089694, 6321993222527044468),
+UInt128(310281612071755, 8746943392763545898),
+UInt128(496450579314808, 13995109428421673437),
+UInt128(397160463451847, 128041098511607780),
+UInt128(317728370761477, 11170479323035017193),
+UInt128(508365393218364, 3115371657888386217),
+UInt128(406692314574691, 6181646141052619296),
+UInt128(325353851659753, 1255968098100185114),
+UInt128(520566162655604, 16766944215927937475),
+UInt128(416452930124483, 17102904187484260303),
+UInt128(333162344099587, 2614276905761677273),
+UInt128(533059750559339, 7872191863960593960),
+UInt128(426447800447471, 9987102305910385491),
+UInt128(341158240357977, 4300333029986398070),
+UInt128(545853184572763, 10569881662720147235),
+UInt128(436682547658210, 15834602959659938434),
+UInt128(349346038126568, 12667682367727950747),
+]
+
+private let bid_breakpoints_binary80_133: [UInt128] = [
+UInt128(558953661002509, 16578942973622810873),
+UInt128(447162928802007, 16952503193640159021),
+UInt128(357730343041606, 6183304925428306571),
+UInt128(286184274433285, 1257295125600734933),
+UInt128(457894839093256, 2011672200961175893),
+UInt128(366315871274604, 16366733019736582007),
+UInt128(293052697019683, 16782735230531175929),
+UInt128(468884315231494, 4716283480398419548),
+UInt128(375107452185195, 7462375599060645961),
+UInt128(300085961748156, 5969900479248516769),
+UInt128(480137538797050, 2173143137313806184),
+UInt128(384110031037640, 1738514509851044947),
+UInt128(307288024830112, 1390811607880835958),
+UInt128(491660839728179, 5914647387351247856),
+UInt128(393328671782543, 8421066724622908608),
+UInt128(314662937426034, 14115551009182147532),
+UInt128(503460699881655, 11516835170465705083),
+UInt128(402768559905324, 9213468136372564066),
+UInt128(322214847924259, 11060123323839961576),
+UInt128(515543756678815, 6628150873918207552),
+UInt128(412435005343052, 5302520699134566042),
+UInt128(329948004274441, 15310063003533383803),
+UInt128(527916806839106, 17117403176169593438),
+UInt128(422333445471285, 10004573726193764427),
+UInt128(337866756377028, 8003658980955011542),
+UInt128(540586810203245, 9116505554786108144),
+UInt128(432469448162596, 7293204443828886515),
+UInt128(345975558530077, 2145214740321198889),
+UInt128(553560893648123, 7121692399255828545),
+UInt128(442848714918498, 13076051548888483483),
+UInt128(354278971934798, 17839538868594607432),
+UInt128(283423177547839, 3203584650649954976),
+UInt128(453477084076542, 12504433070523748609),
+UInt128(362781667261234, 2624848826935178240),
+UInt128(290225333808987, 5789227876290052915),
+UInt128(464360534094379, 12952113416805994988),
+UInt128(371488427275503, 14051039548186706314),
+UInt128(297190741820403, 172785194323634081),
+UInt128(475505186912644, 15033851569885455823),
+UInt128(380404149530115, 15716430070650274982),
+UInt128(304323319624092, 12573144056520219985),
+UInt128(486917311398548, 5359635231464710684),
+UInt128(389533849118838, 11666405814655589193),
+UInt128(311627079295070, 16711822281208292001),
+UInt128(498603326872113, 8292171576223715586),
+UInt128(398882661497690, 14012434890462793115),
+UInt128(319106129198152, 11209947912370234492),
+UInt128(510569806717044, 3178521400824733895),
+UInt128(408455845373635, 6232165935401697439),
+UInt128(326764676298908, 4985732748321357951),
+]
+
+private let bid_breakpoints_binary80_134: [UInt128] = [
+UInt128(522823482078253, 4287823582572262398),
+UInt128(418258785662602, 10808956495541630565),
+UInt128(334607028530082, 1268467566949483806),
+UInt128(535371245648131, 5718896921861084412),
+UInt128(428296996518505, 885768722746957207),
+UInt128(342637597214804, 708614978197565765),
+UInt128(548220155543686, 8512481594599925871),
+UInt128(438576124434949, 3120636460938030374),
+UInt128(350860899547959, 6185857983492334622),
+UInt128(561377439276734, 17276070403071556042),
+UInt128(449101951421387, 17510205137199155157),
+UInt128(359281561137110, 6629466480275503479),
+UInt128(287425248909688, 5303573184220402783),
+UInt128(459880398255501, 4796368280010734130),
+UInt128(367904318604401, 147745809266676980),
+UInt128(294323454883520, 14875591906380982877),
+UInt128(470917527813633, 5354202976500020988),
+UInt128(376734022250906, 11662060010683837436),
+UInt128(301387217800725, 5640299193805159626),
+UInt128(482219548481160, 9024478710088255402),
+UInt128(385775638784928, 7219582968070604321),
+UInt128(308620511027942, 13154364003940304103),
+UInt128(493792817644708, 6289587147336845273),
+UInt128(395034254115766, 12410367347353296864),
+UInt128(316027403292613, 6238945063140727168),
+UInt128(505643845268181, 6292963286283253146),
+UInt128(404515076214545, 1345021814284692194),
+UInt128(323612060971636, 1076017451427753755),
+UInt128(517779297554617, 12789674366510136978),
+UInt128(414223438043694, 2853041863724288936),
+UInt128(331378750434955, 5971782305721341472),
+UInt128(530206000695928, 9554851689154146355),
+UInt128(424164800556742, 15022578980807137730),
+UInt128(339331840445394, 4639365555161889538),
+UInt128(542930944712630, 14801682517742843907),
+UInt128(434344755770104, 11841346014194275126),
+UInt128(347475804616083, 13162425626097330424),
+UInt128(555961287385733, 17370532187013818355),
+UInt128(444769029908587, 2828379305385323714),
+UInt128(355815223926869, 13330749888533989941),
+UInt128(284652179141495, 14353948725569102276),
+UInt128(455443486626393, 4519573887201012025),
+UInt128(364354789301114, 10994356739244630267),
+UInt128(291483831440891, 12484834206137614536),
+UInt128(466374130305426, 12597037100336362612),
+UInt128(373099304244341, 6388280865527179766),
+UInt128(298479443395473, 1421275877679833490),
+UInt128(477567109432756, 17031436663255374877),
+UInt128(382053687546205, 9935800515862389578),
+UInt128(305642950036964, 7948640412689911662),
+]
+
+private let bid_breakpoints_binary80_135: [UInt128] = [
+UInt128(489028720059143, 1649778216078127691),
+UInt128(391222976047314, 8698520202346322799),
+UInt128(312978380837851, 10648164976618968562),
+UInt128(500765409340562, 9658366333106529053),
+UInt128(400612327472450, 347995437001402596),
+UInt128(320489861977960, 278396349601122077),
+UInt128(512783779164736, 445434159361795323),
+UInt128(410227023331788, 15113742586457077551),
+UInt128(328181618665431, 1022947624939931071),
+UInt128(525090589864689, 12704762644129620684),
+UInt128(420072471891751, 13853158930045606870),
+UInt128(336057977513401, 7393178329294575173),
+UInt128(537692764021442, 4450387697387499631),
+UInt128(430154211217153, 14628356602135730674),
+UInt128(344123368973723, 634638837482853569),
+UInt128(550597390357956, 15772817398940207004),
+UInt128(440477912286365, 8928905104410255280),
+UInt128(352382329829092, 7143124083528204224),
+UInt128(281905863863273, 16782545711048294349),
+UInt128(451049382181238, 4715980249225809019),
+UInt128(360839505744990, 11151481828864467862),
+UInt128(288671604595992, 8921185463091574289),
+UInt128(461874567353587, 17963245555688429186),
+UInt128(369499653882870, 6991898815066922702),
+UInt128(295599723106296, 5593519052053538162),
+UInt128(472959556970074, 1570932853801840413),
+UInt128(378367645576059, 4946095097783382653),
+UInt128(302694116460847, 7646224892968616446),
+UInt128(484310586337355, 15923308643491696637),
+UInt128(387448469069884, 12738646914793357309),
+UInt128(309958775255907, 13880266346576596171),
+UInt128(495934040409452, 7451030895554912580),
+UInt128(396747232327561, 17028871160669661034),
+UInt128(317397785862049, 9933748113793818504),
+UInt128(507836457379279, 4825950537844378637),
+UInt128(406269165903423, 7550109245017413232),
+UInt128(325015332722738, 13418785025497751232),
+UInt128(520024532356381, 17780707226054491649),
+UInt128(416019625885105, 10535216966101682996),
+UInt128(332815700708084, 8428173572881346396),
+UInt128(532505121132935, 2417031272384423265),
+UInt128(426004096906348, 1933625017907538612),
+UInt128(340803277525078, 8925597643809851536),
+UInt128(545285244040125, 10591607415353852134),
+UInt128(436228195232100, 8473285932283081707),
+UInt128(348982556185680, 6778628745826465366),
+UInt128(558372089897088, 10845805993322344586),
+UInt128(446697671917670, 16055342424141696315),
+UInt128(357358137534136, 12844273939313357052),
+UInt128(285886510027309, 6586070336708775318),
+]
+
+private let bid_breakpoints_binary80_136: [UInt128] = [
+UInt128(457418416043694, 17916410168217861156),
+UInt128(365934732834955, 18022476949316199248),
+UInt128(292747786267964, 14417981559452959398),
+UInt128(468396458028743, 12000724050899004067),
+UInt128(374717166422994, 16979276870203023900),
+UInt128(299773733138395, 17272770310904329443),
+UInt128(479637973021433, 9189688423737375494),
+UInt128(383710378417146, 14730448368473721041),
+UInt128(306968302733717, 8095009880037066510),
+UInt128(491149284373947, 16641364622801216739),
+UInt128(392919427499158, 5934394068757152745),
+UInt128(314335541999326, 12126212884489542842),
+UInt128(502936867198922, 12023242985699447901),
+UInt128(402349493759138, 2239896759075737674),
+UInt128(321879595007310, 9170615036744410786),
+UInt128(515007352011696, 14672984058791057258),
+UInt128(412005881609357, 8049038432290935483),
+UInt128(329604705287485, 17507277190058479356),
+UInt128(527367528459977, 9564899430384015353),
+UInt128(421894022767982, 273221914823391636),
+UInt128(337515218214385, 11286623976084444279),
+UInt128(540024349143016, 18058598361735110846),
+UInt128(432019479314413, 10757529874646178353),
+UInt128(345615583451530, 15984721529200763329),
+UInt128(552984933522449, 7128810373011669711),
+UInt128(442387946817959, 9392397113151246092),
+UInt128(353910357454367, 11203266505262907196),
+UInt128(283128285963494, 1583915574726505111),
+UInt128(453005257541590, 9912962549046228824),
+UInt128(362404206033272, 7930370039236983059),
+UInt128(289923364826617, 17412342475615317417),
+UInt128(463877383722588, 13102352702016866574),
+UInt128(371101906978070, 17860579791097313906),
+UInt128(296881525582456, 14288463832877851124),
+UInt128(475010440931930, 15482844503120741153),
+UInt128(380008352745544, 12386275602496592922),
+UInt128(304006682196435, 13598369296739184661),
+UInt128(486410691514297, 3310646801073143842),
+UInt128(389128553211437, 13716563885084246043),
+UInt128(311302842569150, 3594553478583576188),
+UInt128(498084548110640, 5751285565733721901),
+UInt128(398467638488512, 4601028452586977521),
+UInt128(318774110790809, 14748869206295312986),
+UInt128(510038577265295, 12530144285846769808),
+UInt128(408030861812236, 10024115428677415846),
+UInt128(326424689449789, 4329943528200022354),
+UInt128(522279503119662, 14306607274603856413),
+UInt128(417823602495730, 4066588190199264484),
+UInt128(334258881996584, 3253270552159411587),
+UInt128(534814211194534, 12583930512938879186),
+]
+
+private let bid_breakpoints_binary80_137: [UInt128] = [
+UInt128(427851368955627, 13756493225093013672),
+UInt128(342281095164502, 3626496950590590291),
+UInt128(547649752263203, 9491743935686854789),
+UInt128(438119801810562, 14972092778033304477),
+UInt128(350495841448450, 4598976592942822935),
+UInt128(560793346317520, 7358362548708516697),
+UInt128(448634677054016, 5886690038966813358),
+UInt128(358907741643213, 1020003216431540363),
+UInt128(287126193314570, 8194700202629052936),
+UInt128(459401909303312, 13111520324206484699),
+UInt128(367521527442650, 3110518629881367112),
+UInt128(294017221954120, 2488414903905093690),
+UInt128(470427555126592, 3981463846248149904),
+UInt128(376342044101273, 14253217521224250893),
+UInt128(301073635281019, 334527572753669744),
+UInt128(481717816449630, 7913941745889692238),
+UInt128(385374253159704, 6331153396711753790),
+UInt128(308299402527763, 8754271532111313355),
+UInt128(493279044044421, 10317485636636191046),
+UInt128(394623235235537, 4564639694567042513),
+UInt128(315698588188429, 14719758199879364980),
+UInt128(505117741101487, 12483566675581252999),
+UInt128(404094192881190, 2608155710981181752),
+UInt128(323275354304952, 2086524568784945402),
+UInt128(517240566887923, 7027788124797822966),
+UInt128(413792453510338, 13000928129322079019),
+UInt128(331033962808270, 17779440132941483862),
+UInt128(529654340493233, 10000360138996822563),
+UInt128(423723472394586, 15378985740681278697),
+UInt128(338978777915669, 8613839777803112634),
+UInt128(542366044665071, 2714097200259249246),
+UInt128(433892835732056, 16928673019175040689),
+UInt128(347114268585645, 9853589600598122228),
+UInt128(555382829737032, 15765743360956995565),
+UInt128(444306263789626, 5233897059281775806),
+UInt128(355445011031701, 497768832683510321),
+UInt128(284356008825360, 15155610325114449550),
+UInt128(454969614120577, 5802232446473567664),
+UInt128(363975691296461, 15709832401404585100),
+UInt128(291180553037169, 8878517106381757757),
+UInt128(465888884859471, 3137580925985081442),
+UInt128(372711107887576, 17267459999755706446),
+UInt128(298168886310061, 10124619185062654834),
+UInt128(477070218096098, 8820693066616427088),
+UInt128(381656174476878, 14435252082776962317),
+UInt128(305324939581503, 480155221995838884),
+UInt128(488519903330404, 15525643614160983507),
+UInt128(390815922664323, 16109863706070697129),
+UInt128(312652738131459, 1819844520630826733),
+UInt128(500244381010334, 10290448862493143420),
+]
+
+private let bid_breakpoints_binary80_138: [UInt128] = [
+UInt128(400195504808267, 11921707904736425059),
+UInt128(320156403846614, 2158668694305319401),
+UInt128(512250246154582, 10832567540372331688),
+UInt128(409800196923666, 1287356402814044704),
+UInt128(327840157538932, 15787280381218877056),
+UInt128(524544252062292, 10502253350982561997),
+UInt128(419635401649834, 1023105051302228951),
+UInt128(335708321319867, 4507832855783693484),
+UInt128(537133314111787, 10901881383995819897),
+UInt128(429706651289430, 1342807477712835271),
+UInt128(343765321031544, 1074245982170268217),
+UInt128(550024513650470, 9097491200956249794),
+UInt128(440019610920376, 7277992960764999835),
+UInt128(352015688736301, 2133045553870089545),
+UInt128(281612550989040, 16463831702063712928),
+UInt128(450580081582465, 7895386649592389070),
+UInt128(360464065265972, 6316309319673911256),
+UInt128(288371252212777, 16121093899964859974),
+UInt128(461394003540444, 11036354980976134666),
+UInt128(369115202832355, 12518432799522818056),
+UInt128(295292162265884, 10014746239618254445),
+UInt128(472467459625415, 4955547539163476142),
+UInt128(377973967700332, 3964438031330780914),
+UInt128(302379174160265, 14239596869290355700),
+UInt128(483806678656425, 4336610917155017505),
+UInt128(387045342925140, 3469288733724014004),
+UInt128(309636274340112, 2775430986979211203),
+UInt128(495418038944179, 8130038393908648248),
+UInt128(396334431155343, 10193379529868828922),
+UInt128(317067544924274, 15533401253378883784),
+UInt128(507308071878839, 13785395561180483085),
+UInt128(405846457503071, 14717665263686296791),
+UInt128(324677166002457, 8084783396207127109),
+UInt128(519483465603931, 16625002248673313698),
+UInt128(415586772483145, 9610652984196740635),
+UInt128(332469417986516, 7688522387357392508),
+UInt128(531951068778426, 4922938190288007367),
+UInt128(425560855022741, 249001737488495570),
+UInt128(340448684018192, 14956596648958437749),
+UInt128(544717894429108, 9173159379365859106),
+UInt128(435774315543286, 14717225132976507931),
+UInt128(348619452434629, 8084431291639296022),
+UInt128(557791123895407, 1867043622397142665),
+UInt128(446232899116325, 12561681342143445102),
+UInt128(356986319293060, 10049345073714756081),
+UInt128(285589055434448, 8039476058971804865),
+UInt128(456942488695117, 9173812879612977461),
+UInt128(365553990956093, 18407096747916112938),
+UInt128(292443192764875, 3657630954107159381),
+UInt128(467909108423800, 5852209526571455010),
+]
+
+private let bid_breakpoints_binary80_139: [UInt128] = [
+UInt128(374327286739040, 4681767621257164008),
+UInt128(299461829391232, 3745414097005731206),
+UInt128(479138927025971, 9682011369951080253),
+UInt128(383311141620777, 4056260281218953879),
+UInt128(306648913296621, 14313054669200894073),
+UInt128(490638261274594, 15522189841237609870),
+UInt128(392510609019675, 16107100687731998219),
+UInt128(314008487215740, 12885680550185598575),
+UInt128(502413579545185, 2170344806587406105),
+UInt128(401930863636148, 1736275845269924884),
+UInt128(321544690908918, 8767718305699760553),
+UInt128(514471505454269, 10339000474377706563),
+UInt128(411577204363415, 11960549194244075573),
+UInt128(329261763490732, 9568439355395260458),
+UInt128(526818821585172, 552107709664775441),
+UInt128(421455057268137, 11509732611957551322),
+UInt128(337164045814510, 1829088460082220411),
+UInt128(539462473303216, 2926541536131552659),
+UInt128(431569978642572, 17098628487872883420),
+UInt128(345255982914058, 6300205160814486089),
+UInt128(552409572662493, 6390979442561267420),
+UInt128(441927658129994, 12491481183532834582),
+UInt128(353542126503995, 13682533761568177989),
+UInt128(282833701203196, 10946027009254542391),
+UInt128(452533921925114, 10134945585323447179),
+UInt128(362027137540091, 11797305283000668067),
+UInt128(289621710032073, 5748495411658624130),
+UInt128(463394736051317, 5508243843911888285),
+UInt128(370715788841053, 15474641519355241598),
+UInt128(296572631072843, 1311666771258462308),
+UInt128(474516209716548, 16856062092981180986),
+UInt128(379612967773239, 2416803230159213819),
+UInt128(303690374218591, 5622791398869281379),
+UInt128(485904598749746, 1617768608707029560),
+UInt128(388723678999796, 16051610145933264940),
+UInt128(310978943199837, 9151939302004701629),
+UInt128(497566309119739, 18332451697949432930),
+UInt128(398053047295791, 18355310173101456667),
+UInt128(318442437836633, 10994899323739255010),
+UInt128(509507900538613, 13902490103240897694),
+UInt128(407606320430891, 53945638366987185),
+UInt128(326085056344712, 14800551769661231041),
+UInt128(521736090151540, 8923487572490328373),
+UInt128(417388872121232, 7138790057992262698),
+UInt128(333911097696985, 16779078490619541128),
+UInt128(534257756315177, 8399781511281714189),
+UInt128(427406205052141, 17787871653251102321),
+UInt128(341924964041713, 10540948507858971533),
+UInt128(547079942466741, 13176168797832444131),
+UInt128(437663953973393, 6851586223524044981),
+]
+
+private let bid_breakpoints_binary80_140: [UInt128] = [
+UInt128(350131163178714, 12859966608303056631),
+UInt128(560209861085943, 9507900129059159641),
+UInt128(448167888868754, 14985017732731148359),
+UInt128(358534311095003, 15677363000926829010),
+UInt128(286827448876003, 1473843956515732238),
+UInt128(458923918201604, 17115545589392812875),
+UInt128(367139134561283, 17381785286256160623),
+UInt128(293711307649027, 2837381784779197529),
+UInt128(469938092238443, 8229159670388626369),
+UInt128(375950473790754, 13962025365794721742),
+UInt128(300760379032603, 14858969107377687716),
+UInt128(481216606452166, 1638257683352838407),
+UInt128(384973285161732, 16068001405649912019),
+UInt128(307978628129386, 5475703495036108968),
+UInt128(492765805007018, 1382427962573953703),
+UInt128(394212644005614, 8484639999542983609),
+UInt128(315370115204491, 10477060814376297210),
+UInt128(504592184327186, 9384599673518254890),
+UInt128(403673747461749, 3818330924072693589),
+UInt128(322938997969399, 6744013554000065194),
+UInt128(516702396751038, 18169119315883924958),
+UInt128(413361917400831, 3467249008481408996),
+UInt128(330689533920664, 17531194465752768490),
+UInt128(529103254273063, 16981864700978698614),
+UInt128(423282603418451, 2517445316557227922),
+UInt128(338626082734760, 16771351512213423630),
+UInt128(541801732375617, 8387418345831926192),
+UInt128(433441385900493, 17777981120891271923),
+UInt128(346753108720395, 3154338452487286569),
+UInt128(554804973952632, 5046941523979658511),
+UInt128(443843979162105, 15105599663409457778),
+UInt128(355075183329684, 12084479730727566222),
+UInt128(284060146663747, 13356932599323963301),
+UInt128(454496234661996, 6613696899950699989),
+UInt128(363596987729597, 1601608705218649668),
+UInt128(290877590183677, 12349333408400650704),
+UInt128(465404144293884, 5001538194473399834),
+UInt128(372323315435107, 7690579370320630190),
+UInt128(297858652348085, 17220509940482235122),
+UInt128(476573843756937, 9106071831062024579),
+UInt128(381259075005549, 18352903909075350633),
+UInt128(305007260004439, 18371671942002190829),
+UInt128(488011616007103, 18326628662977774357),
+UInt128(390409292805683, 3593256486156488516),
+UInt128(312327434244546, 10253302818409011459),
+UInt128(499723894791274, 9026586879970597689),
+UInt128(399779115833019, 10910618318718388474),
+UInt128(319823292666415, 12417843469716621102),
+UInt128(511717268266265, 1421805477837042148),
+UInt128(409373814613012, 1137444382269633718),
+]
+
+private let bid_breakpoints_binary80_141: [UInt128] = [
+UInt128(327499051690409, 11978001950041437944),
+UInt128(523998482704655, 8096756675840569741),
+UInt128(419198786163724, 6477405340672455793),
+UInt128(335359028930979, 8871273087279874958),
+UInt128(536574446289567, 3125990495422068963),
+UInt128(429259557031653, 13568838840563386140),
+UInt128(343407645625322, 18233768701934529558),
+UInt128(549452233000516, 14416634664127606000),
+UInt128(439561786400413, 7843958916560174477),
+UInt128(351649429120330, 13653864762731960228),
+UInt128(562639086592529, 3399439546661584749),
+UInt128(450111269274023, 6408900452071178122),
+UInt128(360089015419218, 12505817991140763144),
+UInt128(288071212335374, 17383352022396431162),
+UInt128(460913939736599, 16745316791608558889),
+UInt128(368731151789279, 17085602248028757434),
+UInt128(294984921431423, 17357830613164916271),
+UInt128(471975874290278, 5636436092612404094),
+UInt128(377580699432222, 11887846503573743922),
+UInt128(302064559545778, 2131579573375174491),
+UInt128(483303295273244, 18167922576367920478),
+UInt128(386642636218595, 18223686875836246706),
+UInt128(309314108974876, 14578949500668997365),
+UInt128(494902574359802, 15947621571586575137),
+UInt128(395922059487842, 5379399627785439463),
+UInt128(316737647590273, 15371566146454082540),
+UInt128(506780236144438, 2458412945875070125),
+UInt128(405424188915550, 9345427986183876747),
+UInt128(324339351132440, 7476342388947101397),
+UInt128(518942961811904, 11962147822315362236),
+UInt128(415154369449523, 13259067072594200112),
+UInt128(332123495559618, 17985951287559180736),
+UInt128(531397592895390, 6641429171643227238),
+UInt128(425118074316312, 5313143337314581790),
+UInt128(340094459453049, 15318561114077396402),
+UInt128(544151135124879, 13441651338298103274),
+UInt128(435320908099903, 14442669885380392942),
+UInt128(348256726479923, 486089464078583384),
+UInt128(557210762367876, 15535138401493374707),
+UInt128(445768609894301, 8738761906452789443),
+UInt128(356614887915441, 3301660710420321231),
+UInt128(285291910332352, 17398723827303898277),
+UInt128(456467056531764, 13080562864718595951),
+UInt128(365173645225411, 14153799106516787084),
+UInt128(292138916180329, 7633690470471519344),
+UInt128(467422265888527, 1145858308528699981),
+UInt128(373937812710821, 11984733091048690954),
+UInt128(299150250168657, 5898437658097042440),
+UInt128(478640400269851, 13126849067697178228),
+UInt128(382912320215881, 6812130439415832259),
+]
+
+private let bid_breakpoints_binary80_142: [UInt128] = [
+UInt128(306329856172705, 1760355536790755484),
+UInt128(490127769876328, 2816568858865208774),
+UInt128(392102215901062, 9631952716575987666),
+UInt128(313681772720850, 326864543776969486),
+UInt128(501890836353360, 522983270043151178),
+UInt128(401512669082688, 418386616034520942),
+UInt128(321210135266150, 7713406922311437400),
+UInt128(513936216425840, 12341451075698299841),
+UInt128(411148973140672, 9873160860558639872),
+UInt128(328919178512538, 519831058963091251),
+UInt128(526270685620060, 15589124953308587295),
+UInt128(421016548496048, 12471299962646869836),
+UInt128(336813238796838, 17355737599601316515),
+UInt128(538901182074942, 5633087270910644485),
+UInt128(431120945659953, 15574516260954246558),
+UInt128(344896756527963, 1391566564537666277),
+UInt128(551834810444740, 16983901762227907336),
+UInt128(441467848355792, 13587121409782325868),
+UInt128(353174278684634, 3490999498342040048),
+UInt128(282539422947707, 6482148413415542362),
+UInt128(452063076716331, 14060786276206778102),
+UInt128(361650461373065, 7559280206223512158),
+UInt128(289320369098452, 6047424164978809727),
+UInt128(462912590557523, 13365227478708005886),
+UInt128(370330072446018, 18070879612450225355),
+UInt128(296264057956815, 3388657245734449315),
+UInt128(474022492730904, 5421851593175118904),
+UInt128(379217994184723, 8026830089282005446),
+UInt128(303374395347778, 13800161700909425003),
+UInt128(485399032556445, 18390909906713169682),
+UInt128(388319226045156, 14712727925370535745),
+UInt128(310655380836125, 8080833525554518273),
+UInt128(497048609337800, 12929333640887229237),
+UInt128(397638887470240, 10343466912709783390),
+UInt128(318111109976192, 8274773530167826712),
+UInt128(508977775961907, 16928986463010433062),
+UInt128(407182220769526, 6164491540924525803),
+UInt128(325745776615621, 1242244417997710319),
+UInt128(521193242584993, 13055637513022067481),
+UInt128(416954594067994, 17823207639901474631),
+UInt128(333563675254395, 17947914926663090028),
+UInt128(533701880407033, 10269919808951392429),
+UInt128(426961504325626, 15594633476644934589),
+UInt128(341569203460501, 8786357966574037348),
+UInt128(546510725536802, 6679475117034639111),
+UInt128(437208580429441, 16411626537853442258),
+UInt128(349766864343553, 9439952415540843483),
+UInt128(559626982949685, 11414575050123439250),
+UInt128(447701586359748, 9131660040098751400),
+UInt128(358161269087798, 14684025661562821766),
+]
+
+private let bid_breakpoints_binary80_143: [UInt128] = [
+UInt128(286529015270239, 679174085024526443),
+UInt128(458446424432382, 8465376165523062956),
+UInt128(366757139545905, 17840347376644181335),
+UInt128(293405711636724, 14272277901315345068),
+UInt128(469449138618759, 11767598197878821139),
+UInt128(375559310895007, 13103427373044967234),
+UInt128(300447448716006, 3104044268952153141),
+UInt128(480715917945609, 16034517274549175995),
+UInt128(384572734356487, 16516962634381251119),
+UInt128(307658187485190, 5834872478021180249),
+UInt128(492253099976304, 9335795964833888398),
+UInt128(393802479981043, 11157985586609021042),
+UInt128(315041983984834, 16305086098771037480),
+UInt128(504067174375735, 15020091313807928998),
+UInt128(403253739500588, 12016073051046343199),
+UInt128(322602991600470, 16991556070320895205),
+UInt128(516164786560753, 8739745638803880713),
+UInt128(412931829248602, 14370494140526925216),
+UInt128(330345463398882, 4117697682937719527),
+UInt128(528552741438211, 10277665107442261566),
+UInt128(422842193150569, 4532783271211898930),
+UInt128(338273754520455, 7315575431711429467),
+UInt128(541238007232728, 11704920690738287147),
+UInt128(432990405786182, 16742634182074450364),
+UInt128(346392324628946, 6015409716175739645),
+UInt128(554227719406314, 2245957916397362785),
+UInt128(443382175525051, 5486115147859800551),
+UInt128(354705740420041, 699543303545930118),
+UInt128(283764592336032, 15317029901804385387),
+UInt128(454023347737652, 9749852583919375327),
+UInt128(363218678190122, 421184437651679615),
+UInt128(290574942552097, 11404993994347074661),
+UInt128(464919908083356, 3490595131987678166),
+UInt128(371935926466684, 17549871364557783825),
+UInt128(297548741173347, 17729245906388137383),
+UInt128(476077985877356, 13609398191253378521),
+UInt128(380862388701885, 7198169738260792493),
+UInt128(304689910961508, 5758535790608633995),
+UInt128(487503857538413, 5524308450231904068),
+UInt128(390003086030730, 11798144389669343901),
+UInt128(312002468824584, 9438515511735475121),
+UInt128(499203950119335, 4033578374551029224),
+UInt128(399363160095468, 3226862699640823379),
+UInt128(319490528076374, 9960187789196479349),
+UInt128(511184844922199, 4868254018488635990),
+UInt128(408947875937759, 7583952029532819115),
+UInt128(327158300750207, 9756510438368165615),
+UInt128(523453281200332, 853021442421423692),
+UInt128(418762624960265, 11750463598162869923),
+UInt128(335010099968212, 9400370878530295938),
+]
+
+private let bid_breakpoints_binary80_144: [UInt128] = [
+UInt128(536016159949140, 283198146680832208),
+UInt128(428812927959312, 226558517344665767),
+UInt128(343050342367449, 11249293258101463583),
+UInt128(548880547787919, 6930822768736610763),
+UInt128(439104438230335, 9234007029731198934),
+UInt128(351283550584268, 7387205623784959147),
+UInt128(562053680934829, 8130180183314024312),
+UInt128(449642944747863, 10193492961393129773),
+UInt128(359714355798290, 15533491998598324465),
+UInt128(287771484638632, 12426793598878659572),
+UInt128(460434375421812, 5125474499238214022),
+UInt128(368347500337449, 15168426043616302187),
+UInt128(294678000269959, 15824089649634952073),
+UInt128(471484800431935, 14250496995190192347),
+UInt128(377187840345548, 11400397596152153878),
+UInt128(301750272276438, 16499015706405543748),
+UInt128(482800435642302, 4262332241797408058),
+UInt128(386240348513841, 14477912237663657416),
+UInt128(308992278811073, 7892980975389015610),
+UInt128(494387646097717, 8939420745880514653),
+UInt128(395510116878173, 18219583040930142692),
+UInt128(316408093502539, 3507619988518383184),
+UInt128(506252949604062, 12990889611113233740),
+UInt128(405002359683250, 3014014059406766346),
+UInt128(324001887746600, 2411211247525413077),
+UInt128(518403020394560, 3857937996040660923),
+UInt128(414722416315648, 3086350396832528738),
+UInt128(331777933052518, 9847777946949843637),
+UInt128(530844692884029, 12067095900377839496),
+UInt128(424675754307223, 13343025535044181920),
+UInt128(339740603445778, 18053118057519166182),
+UInt128(543584965513246, 6748896003579203953),
+UInt128(434867972410597, 1709767988121452839),
+UInt128(347894377928477, 12435860834722893241),
+UInt128(556631004685564, 5139982076588987892),
+UInt128(445304803748451, 7801334476013100637),
+UInt128(356243842998761, 2551718766068570186),
+UInt128(284995074399008, 16798770271822497442),
+UInt128(455992119038414, 4741939546464533968),
+UInt128(364793695230731, 7482900451913537497),
+UInt128(291834956184585, 2296971546788919675),
+UInt128(466935929895336, 3675154474862271480),
+UInt128(373548743916268, 17697518838857458476),
+UInt128(298838995133015, 3089968626860235811),
+UInt128(478142392212824, 4943949802976377299),
+UInt128(382513913770259, 7644508657123012162),
+UInt128(306011131016207, 9804955740440320053),
+UInt128(489617809625932, 930533925736870792),
+UInt128(391694247700745, 11812473584815227603),
+UInt128(313355398160596, 9449978867852182082),
+]
+
+private let bid_breakpoints_binary80_145: [UInt128] = [
+UInt128(501368637056954, 7741268559079670686),
+UInt128(401094909645563, 9882363662005646872),
+UInt128(320875927716450, 15284588559088338144),
+UInt128(513401484346321, 6008597620831789414),
+UInt128(410721187477057, 1117529281923521208),
+UInt128(328576949981645, 11962069869764547936),
+UInt128(525723119970633, 692567717913725082),
+UInt128(420578495976506, 7932751803814800712),
+UInt128(336462796781205, 2656852628309930246),
+UInt128(538340474849928, 4250964205295888394),
+UInt128(430672379879942, 10779468993720531361),
+UInt128(344537903903954, 1244877565492604443),
+UInt128(551260646246326, 9370501734271987755),
+UInt128(441008516997061, 3807052572675679881),
+UInt128(352806813597648, 17803037317108185197),
+UInt128(282245450878119, 3174383409460817188),
+UInt128(451592721404990, 12457711084621128148),
+UInt128(361274177123992, 9966168867696902518),
+UInt128(289019341699194, 594237464673701368),
+UInt128(462430946718710, 8329477572961742835),
+UInt128(369944757374968, 6663582058369394268),
+UInt128(295955805899974, 12709563276179336061),
+UInt128(473529289439959, 9267254797661206728),
+UInt128(378823431551967, 11103152652870875705),
+UInt128(303058745241574, 1503824492812879918),
+UInt128(484893992386518, 9784816817984428515),
+UInt128(387915193909214, 15206551083871363459),
+UInt128(310332155127371, 15854589681839001090),
+UInt128(496531448203794, 17988645861458581098),
+UInt128(397225158563035, 18080265503908775201),
+UInt128(317780126850428, 14464212403127020161),
+UInt128(508448202960686, 1006646956551770319),
+UInt128(406758562368548, 15562712824209057548),
+UInt128(325406849894839, 1382123815141515068),
+UInt128(520650959831742, 9590095733710244756),
+UInt128(416520767865394, 293378957484375158),
+UInt128(333216614292315, 3924051980729410450),
+UInt128(533146582867704, 6278483169167056720),
+UInt128(426517266294163, 8712135350075555699),
+UInt128(341213813035330, 14348405909544265206),
+UInt128(545942100856529, 4510705381561272713),
+UInt128(436753680685223, 7297913119990928494),
+UInt128(349402944548178, 13217028125476563441),
+UInt128(559044711277085, 17457896186020591183),
+UInt128(447235769021668, 13966316948816472946),
+UInt128(357788615217335, 105007114827447387),
+UInt128(286230892173868, 84005691861957910),
+UInt128(457969427478188, 14891804365946773949),
+UInt128(366375541982551, 845397048531688189),
+UInt128(293100433586040, 15433712897792991844),
+]
+
+private let bid_breakpoints_binary80_146: [UInt128] = [
+UInt128(468960693737665, 6247196562759235335),
+UInt128(375168554990132, 4997757250207388268),
+UInt128(300134843992105, 15066252244391641584),
+UInt128(480215750387369, 5659259517317074918),
+UInt128(384172600309895, 8216756428595570258),
+UInt128(307338080247916, 6573405142876456206),
+UInt128(491740928396666, 3138750599118509284),
+UInt128(393392742717332, 17268395738262448720),
+UInt128(314714194173866, 6436018961126138329),
+UInt128(503542710678186, 2918932708318000681),
+UInt128(402834168542548, 17092541425622041837),
+UInt128(322267334834039, 2605986696271902500),
+UInt128(515627735734462, 11548276343518864647),
+UInt128(412502188587570, 1859923445331271071),
+UInt128(330001750870056, 1487938756265016857),
+UInt128(528002801392089, 13448748454249757941),
+UInt128(422402241113671, 14448347578141716676),
+UInt128(337921792890937, 7869329247771463017),
+UInt128(540674868625499, 16280275611176251151),
+UInt128(432539894900399, 16713569303682911244),
+UInt128(346031915920319, 17060204257688239318),
+UInt128(553651065472511, 16228280368075451940),
+UInt128(442920852378009, 9293275479718451229),
+UInt128(354336681902407, 11123969198516671306),
+UInt128(283469345521926, 1520477729329516398),
+UInt128(453550952835081, 13500810811152957207),
+UInt128(362840762268065, 7111299834180455442),
+UInt128(290272609814452, 5689039867344364354),
+UInt128(464436175703123, 12791812602492893290),
+UInt128(371548940562498, 17612147711478135278),
+UInt128(297239152449999, 3021671724956777253),
+UInt128(475582643919998, 12213372389414664251),
+UInt128(380466115135998, 17149395541015552047),
+UInt128(304372892108799, 2651469988586710668),
+UInt128(486996627374078, 11621049611222557716),
+UInt128(389597301899262, 16675537318461866819),
+UInt128(311677841519410, 5961732225285672808),
+UInt128(498684546431056, 9538771560457076494),
+UInt128(398947637144845, 3941668433623750872),
+UInt128(319158109715876, 3153334746899000697),
+UInt128(510652975545401, 16113382039264132086),
+UInt128(408522380436321, 9201356816669395345),
+UInt128(326817904349057, 3671736638593605953),
+UInt128(522908646958491, 9564127436491679848),
+UInt128(418326917566793, 3961953134451433555),
+UInt128(334661534053434, 10548260137044967490),
+UInt128(535458454485495, 5809169775046217015),
+UInt128(428366763588396, 4647335820036973612),
+UInt128(342693410870717, 28519841287668566),
+UInt128(548309457393147, 3734980560802180030),
+]
+
+private let bid_breakpoints_binary80_147: [UInt128] = [
+UInt128(438647565914517, 14056030892867474993),
+UInt128(350918052731614, 3866127084810159348),
+UInt128(561468884370582, 13564500965180075604),
+UInt128(449175107496466, 3472903142660239837),
+UInt128(359340085997172, 17535717773095833162),
+UInt128(287472068797738, 6649876588992845883),
+UInt128(459955310076381, 6950453727646643090),
+UInt128(367964248061105, 1871014167375404149),
+UInt128(294371398448884, 1496811333900323319),
+UInt128(470994237518214, 9773595763724337957),
+UInt128(376795390014571, 11508225425721380689),
+UInt128(301436312011657, 5517231525835194228),
+UInt128(482298099218651, 12516919256078221088),
+UInt128(385838479374921, 6324186590120666547),
+UInt128(308670783499937, 1370000457354622914),
+UInt128(493873253599899, 5881349546509306986),
+UInt128(395098602879919, 8394428451949355912),
+UInt128(316078882303935, 10404891576301395053),
+UInt128(505726211686296, 16647826522082232085),
+UInt128(404580969349037, 9628912402923875344),
+UInt128(323664775479230, 324432292855279629),
+UInt128(517863640766768, 519091668568447407),
+UInt128(414290912613414, 7793970964338578572),
+UInt128(331432730090731, 9924525586212773180),
+UInt128(530292368145170, 8500543308456616443),
+UInt128(424233894516136, 6800434646765293154),
+UInt128(339387115612909, 1750998902670324200),
+UInt128(543019384980654, 10180295873756339367),
+UInt128(434415507984523, 11833585513746981816),
+UInt128(347532406387618, 16845566040481406099),
+UInt128(556051850220190, 4816812776318787820),
+UInt128(444841480176152, 3853450221055030256),
+UInt128(355873184140921, 14150806621069755174),
+UInt128(284698547312737, 7631296482113893816),
+UInt128(455517675700379, 15899423186124140429),
+UInt128(364414140560303, 16408887363641222667),
+UInt128(291531312448243, 2059063446687247164),
+UInt128(466450099917188, 18051896773667236755),
+UInt128(373160079933751, 3373470974708058434),
+UInt128(298528063947000, 17456172038734088040),
+UInt128(477644902315201, 9483131188264989248),
+UInt128(382115921852161, 3897156135870081075),
+UInt128(305692737481728, 17875120167663706153),
+UInt128(489108379970766, 6464099379810467906),
+UInt128(391286703976613, 1481930689106464001),
+UInt128(313029363181290, 8564242180768991847),
+UInt128(500846981090064, 13702787489230386956),
+UInt128(400677584872051, 14651578806126219888),
+UInt128(320542067897641, 8031914230159065587),
+UInt128(512867308636226, 5472365138770684293),
+]
+
+private let bid_breakpoints_binary80_148: [UInt128] = [
+UInt128(410293846908981, 688543296274637111),
+UInt128(328235077527184, 15308229895987350982),
+UInt128(525176124043495, 13425121389354030601),
+UInt128(420140899234796, 10740097111483224481),
+UInt128(336112719387837, 4902728874444669262),
+UInt128(537780351020539, 11533715013853381142),
+UInt128(430224280816431, 12916320825824615237),
+UInt128(344179424653145, 6643707845917781866),
+UInt128(550687079445032, 10629932553468450986),
+UInt128(440549663556026, 1125248413290940142),
+UInt128(352439730844820, 15657593989600393407),
+UInt128(281951784675856, 12526075191680314725),
+UInt128(451122855481370, 12663022677204682914),
+UInt128(360898284385096, 10130418141763746331),
+UInt128(288718627508077, 4414985698669086742),
+UInt128(461949804012923, 10753325932612449110),
+UInt128(369559843210338, 15981358375573779934),
+UInt128(295647874568271, 1717040256233292978),
+UInt128(473036599309233, 13815310854198999734),
+UInt128(378429279447386, 18430946312843020434),
+UInt128(302743423557909, 11055408235532506024),
+UInt128(484389477692655, 6620606732626278669),
+UInt128(387511582154124, 5296485386101022935),
+UInt128(310009265723299, 7926537123622728671),
+UInt128(496014825157279, 1614412953570634904),
+UInt128(396811860125823, 4980879177598418247),
+UInt128(317449488100658, 11363400971562555244),
+UInt128(507919180961053, 14492092739758178067),
+UInt128(406335344768843, 525627747580811484),
+UInt128(325068275815074, 7799199827548469833),
+UInt128(520109241304119, 1410673279851820764),
+UInt128(416087393043295, 4817887438623366934),
+UInt128(332869914434636, 3854309950898693547),
+UInt128(532591863095417, 17234942365663640646),
+UInt128(426073490476334, 6409256263047091870),
+UInt128(340858792381067, 8816753825179583819),
+UInt128(545374067809707, 17796154935029244434),
+UInt128(436299254247766, 6858226318539574901),
+UInt128(349039403398213, 1797232240089749597),
+UInt128(558463045437140, 17632966843111240649),
+UInt128(446770436349712, 14106373474488992519),
+UInt128(357416349079770, 3906401150107373369),
+UInt128(285933079263816, 3125120920085898695),
+UInt128(457492926822105, 16068239916363168882),
+UInt128(365994341457684, 12854591933090535105),
+UInt128(292795473166147, 13973022361214338407),
+UInt128(468472757065836, 7599440518975300159),
+UInt128(374778205652669, 2390203600438329804),
+UInt128(299822564522135, 5601511695092574166),
+UInt128(479716103235416, 8962418712148118666),
+]
+
+private let bid_breakpoints_binary80_149: [UInt128] = [
+UInt128(383772882588333, 3480586154976584610),
+UInt128(307018306070666, 10163166553465088334),
+UInt128(491229289713066, 8882368856060320688),
+UInt128(392983431770453, 3416546270106346227),
+UInt128(314386745416362, 10111934645568897628),
+UInt128(503018792666180, 1421700173942594913),
+UInt128(402415034132944, 1137360139154075930),
+UInt128(321932027306355, 4599236926065171067),
+UInt128(515091243690168, 7358779081704273708),
+UInt128(412072994952134, 13265720894847239612),
+UInt128(329658395961707, 14301925530619702013),
+UInt128(527453433538732, 8125685590023881928),
+UInt128(421962746830985, 17568594916244836512),
+UInt128(337570197464788, 14054875932995869210),
+UInt128(540112315943662, 351708604341928797),
+UInt128(432089852754929, 11349413327699274007),
+UInt128(345671882203943, 12768879476901329529),
+UInt128(553075011526309, 16740858348300216923),
+UInt128(442460009221047, 17082035493382083861),
+UInt128(353968007376838, 6286930765221846443),
+UInt128(283174405901470, 12408242241661297800),
+UInt128(453079049442353, 1406443512948524865),
+UInt128(362463239553882, 8503852439842640538),
+UInt128(289970591643105, 17871128396099843400),
+UInt128(463952946628969, 10147061360050197824),
+UInt128(371162357303175, 11806997902782068583),
+UInt128(296929885842540, 9445598322225654866),
+UInt128(475087817348064, 15112957315561047786),
+UInt128(380070253878451, 15779714667190748552),
+UInt128(304056203102761, 8934422919010688518),
+UInt128(486489924964418, 6916379040933280983),
+UInt128(389191939971534, 12911800862230445433),
+UInt128(311353551977227, 14018789504526266669),
+UInt128(498165683163564, 7672667948274385378),
+UInt128(398532546530851, 9827483173361418626),
+UInt128(318826037224681, 4172637723947224577),
+UInt128(510121659559489, 17744266802541290293),
+UInt128(408097327647591, 17884762256774942558),
+UInt128(326477862118073, 10618460990678043723),
+UInt128(522364579388917, 13300188770342959634),
+UInt128(417891663511134, 3261453386790547061),
+UInt128(334313330808907, 6298511524174347972),
+UInt128(534901329294251, 13766967253420867078),
+UInt128(427921063435401, 7324224987994783339),
+UInt128(342336850748321, 2170031175653916348),
+UInt128(547738961197313, 14540096325271997127),
+UInt128(438191168957851, 564030615991866732),
+UInt128(350552935166280, 15208619751761134678),
+UInt128(560884696266049, 5887047529108263869),
+UInt128(448707757012839, 8398986838028521418),
+]
+
+private let bid_breakpoints_binary80_150: [UInt128] = [
+UInt128(358966205610271, 10408538285164727458),
+UInt128(287172964488217, 4637481813389871643),
+UInt128(459476743181147, 11109319716165704952),
+UInt128(367581394544918, 1508758143448743315),
+UInt128(294065115635934, 8585704144242815299),
+UInt128(470504185017495, 2669080186562773508),
+UInt128(376403348013996, 2135264149250218807),
+UInt128(301122678411196, 16465606578367816338),
+UInt128(481796285457915, 519528822195133879),
+UInt128(385437028366332, 415623057756107103),
+UInt128(308349622693065, 11400544890430616652),
+UInt128(493359396308904, 18240871824688986643),
+UInt128(394687517047123, 18282046274493099638),
+UInt128(315750013637699, 3557590575368748740),
+UInt128(505200021820318, 13070842550073818631),
+UInt128(404160017456254, 17835371669542875551),
+UInt128(323328013965003, 17957646150376210764),
+UInt128(517324822344006, 6596140952150475284),
+UInt128(413859857875205, 1587563946978469904),
+UInt128(331087886300164, 1270051157582775923),
+UInt128(529740618080262, 9410779481616262123),
+UInt128(423792494464210, 149925955809189052),
+UInt128(339033995571368, 119940764647351242),
+UInt128(542454392914188, 14949300482403403280),
+UInt128(433963514331351, 891393941696991654),
+UInt128(347170811465080, 15470510412325234616),
+UInt128(555473298344129, 6306072586010823770),
+UInt128(444378638675303, 8734206883550569339),
+UInt128(355502910940242, 14366063136324276117),
+UInt128(284402328752194, 4114152879575600247),
+UInt128(455043726003510, 13961342236804781043),
+UInt128(364034980802808, 11169073789443824834),
+UInt128(291227984642246, 16313956661038880514),
+UInt128(465964775427595, 276888954468836560),
+UInt128(372771820342076, 221511163575069248),
+UInt128(298217456273660, 14934604189827696691),
+UInt128(477147930037857, 5448622630014763089),
+UInt128(381718344030285, 15426944548237541441),
+UInt128(305374675224228, 12341555638590033153),
+UInt128(488599480358765, 16057140207002142722),
+UInt128(390879584287012, 12845712165601714177),
+UInt128(312703667429610, 2897872102997550695),
+UInt128(500325867887376, 4636595364796081113),
+UInt128(400260694309901, 19927477094954567),
+UInt128(320208555447920, 14773337240643604946),
+UInt128(512333688716673, 5190595511320216298),
+UInt128(409866950973338, 11531174038539993685),
+UInt128(327893560778670, 16603636860315815594),
+UInt128(524629697245873, 8119074902795753335),
+UInt128(419703757796698, 13873957551720423314),
+]
+
+private let bid_breakpoints_binary80_151: [UInt128] = [
+UInt128(335763006237359, 31119597150607682),
+UInt128(537220809979774, 7428488984924792937),
+UInt128(429776647983819, 9632140002681744673),
+UInt128(343821318387055, 11395060816887306061),
+UInt128(550114109419288, 18232097307019689699),
+UInt128(440091287535431, 3517631401390020789),
+UInt128(352073030028344, 17571500380079657924),
+UInt128(281658424022675, 17746549118805636662),
+UInt128(450653478436281, 9947734516379467044),
+UInt128(360522782749025, 4268838798361663312),
+UInt128(288418226199220, 3415071038689330649),
+UInt128(461469161918752, 5464113661902929039),
+UInt128(369175329535001, 15439337373748074201),
+UInt128(295340263628001, 8662121084256549038),
+UInt128(472544421804802, 6480696105326657814),
+UInt128(378035537443841, 16252603328487057221),
+UInt128(302428429955073, 9312733848047735453),
+UInt128(483885487928117, 11211025342134466402),
+UInt128(387108390342494, 1590122644223752475),
+UInt128(309686712273995, 4961446930120912303),
+UInt128(495498739638392, 7938315088193459686),
+UInt128(396398991710713, 17418698514780498718),
+UInt128(317119193368571, 2866912367598668005),
+UInt128(507390709389713, 15655106232383599778),
+UInt128(405912567511771, 1456038541681148852),
+UInt128(324730054009416, 15922226092312560375),
+UInt128(519568086415066, 18096864118216275953),
+UInt128(415654469132053, 10788142479831110439),
+UInt128(332523575305642, 16009211613348708998),
+UInt128(532037720489028, 10857343322390293104),
+UInt128(425630176391222, 16064572287396055129),
+UInt128(340504141112978, 5472960200433023457),
+UInt128(544806625780765, 5067387505950927208),
+UInt128(435845300624612, 4053910004760741767),
+UInt128(348676240499689, 14311174448034324383),
+UInt128(557881984799503, 11829832672629188043),
+UInt128(446305587839602, 16842563767587171081),
+UInt128(357044470271682, 6095353384585916218),
+UInt128(285635576217345, 15944329151894463944),
+UInt128(457016921947753, 7064182569321590695),
+UInt128(365613537558202, 13030043684941093202),
+UInt128(292490830046562, 3045337318469053915),
+UInt128(467985328074499, 8561888524292396588),
+UInt128(374388262459599, 10538859634175827593),
+UInt128(299510609967679, 12120436522082572398),
+UInt128(479216975948287, 8324651991106384867),
+UInt128(383373580758629, 17727768037110838863),
+UInt128(306698864606903, 17871563244430581414),
+UInt128(490718183371046, 6458408302637468323),
+UInt128(392574546696837, 1477377827368064335),
+]
+
+private let bid_breakpoints_binary80_152: [UInt128] = [
+UInt128(314059637357469, 12249948706120182437),
+UInt128(502495419771951, 8531871485566560931),
+UInt128(401996335817561, 3136148373711338421),
+UInt128(321597068654048, 17266313957936712030),
+UInt128(514555309846478, 5490009444247277309),
+UInt128(411644247877182, 11770705184881642493),
+UInt128(329315398301746, 2037866518421493348),
+UInt128(526904637282793, 14328632873700120327),
+UInt128(421523709826235, 394859854734365292),
+UInt128(337218967860988, 315887883787492233),
+UInt128(539550348577580, 15262815873027628866),
+UInt128(431640278862064, 12210252698422103093),
+UInt128(345312223089651, 13457550973479592797),
+UInt128(552499556943442, 14153383928083527830),
+UInt128(441999645554754, 3944009512983001617),
+UInt128(353599716443803, 6844556425128311617),
+UInt128(282879773155042, 12854342769586469940),
+UInt128(452607637048068, 5809553172370710611),
+UInt128(362086109638454, 12026340167380389135),
+UInt128(289668887710763, 13310420948646221631),
+UInt128(463470220337221, 17607324703092044287),
+UInt128(370776176269777, 10396510947731725107),
+UInt128(296620941015822, 938511128701559439),
+UInt128(474593505625315, 5190966620664405426),
+UInt128(379674804500252, 4152773296531524340),
+UInt128(303739843600201, 14390265081450950442),
+UInt128(485983749760322, 15645726500837700061),
+UInt128(388786999808258, 5137883571186339402),
+UInt128(311029599846606, 11489004486432892168),
+UInt128(497647359754570, 11003709548808806823),
+UInt128(398117887803656, 8802967639047045458),
+UInt128(318494310242925, 3353025296495726043),
+UInt128(509590896388680, 5364840474393161669),
+UInt128(407672717110944, 4291872379514529335),
+UInt128(326138173688755, 7122846718353533791),
+UInt128(521821077902008, 11396554749365654066),
+UInt128(417456862321606, 16495941428976343899),
+UInt128(333965489857285, 9507404328439164796),
+UInt128(534344783771656, 15211846925502663674),
+UInt128(427475827017325, 8480128725660220616),
+UInt128(341980661613860, 6784102980528176493),
+UInt128(547169058582176, 10854564768845082389),
+UInt128(437735246865741, 4994303000334155588),
+UInt128(350188197492593, 306093585525414147),
+UInt128(560301115988148, 15247144995808303928),
+UInt128(448240892790519, 1129669552420912173),
+UInt128(358592714232415, 4593084456678640061),
+UInt128(286874171385932, 3674467565342912049),
+UInt128(458998674217491, 9568496919290569602),
+UInt128(367198939373993, 3965448720690545358),
+]
+
+private let bid_breakpoints_binary80_153: [UInt128] = [
+UInt128(293759151499194, 10551056606036256933),
+UInt128(470014642398711, 5813644125432280123),
+UInt128(376011713918969, 961566485603913775),
+UInt128(300809371135175, 4458602003225041343),
+UInt128(481294993816280, 7133763205160066150),
+UInt128(385035995053024, 5707010564128052920),
+UInt128(308028796042419, 8254957266044352659),
+UInt128(492846073667871, 2139885181445233285),
+UInt128(394276858934296, 16469303404123827921),
+UInt128(315421487147437, 9486093908557152013),
+UInt128(504674379435900, 420354994723801929),
+UInt128(403739503548720, 336283995779041543),
+UInt128(322991602838976, 269027196623233234),
+UInt128(516786564542361, 11498489958822904144),
+UInt128(413429251633889, 5509443152316412992),
+UInt128(330743401307111, 8096903336595040717),
+UInt128(529189442091378, 5576347709068244501),
+UInt128(423351553673102, 11839775796738416247),
+UInt128(338681242938482, 2093123007906912351),
+UInt128(541889988701571, 7038345627392970085),
+UInt128(433511990961257, 1941327687172465745),
+UInt128(346809592769005, 12621108593963703565),
+UInt128(554895348430409, 1747029676632374089),
+UInt128(443916278744327, 5086972556047809594),
+UInt128(355133022995461, 15137624489063978645),
+UInt128(284106418396369, 8420750776509272593),
+UInt128(454570269434191, 2405154798189105179),
+UInt128(363656215547352, 16681519097518925436),
+UInt128(290924972437882, 5966517648531319702),
+UInt128(465479955900611, 13235777052392021847),
+UInt128(372383964720489, 6899272827171707154),
+UInt128(297907171776391, 9208767076479276047),
+UInt128(476651474842226, 7355329692883021028),
+UInt128(381321179873781, 2194914939564506499),
+UInt128(305056943899024, 16513327210619246492),
+UInt128(488091110238439, 15353277092765063418),
+UInt128(390472888190751, 15971970488953961058),
+UInt128(312378310552601, 9088227576421258523),
+UInt128(499805296884162, 7162466492790192990),
+UInt128(399844237507329, 16798019638457885362),
+UInt128(319875390005863, 17127764525508218613),
+UInt128(511800624009382, 5268330352361687841),
+UInt128(409440499207505, 15282710726115081243),
+UInt128(327552399366004, 12226168580892064994),
+UInt128(524083838985607, 8493823285201573021),
+UInt128(419267071188485, 17863105072386989386),
+UInt128(335413656950788, 14290484057909591509),
+UInt128(536661851121262, 728681604203884475),
+UInt128(429329480897009, 11650991727588838550),
+UInt128(343463584717607, 13010142196812981163),
+]
+
+private let bid_breakpoints_binary80_154: [UInt128] = [
+UInt128(549541735548172, 6058832255933128568),
+UInt128(439633388438537, 15915112248972233824),
+UInt128(351706710750830, 5353392169693966413),
+UInt128(562730737201328, 8565427471510346261),
+UInt128(450184589761062, 14231039606692097655),
+UInt128(360147671808850, 4006134055869857477),
+UInt128(288118137447080, 3204907244695885982),
+UInt128(460989019915328, 5127851591513417571),
+UInt128(368791215932262, 11480978902694554703),
+UInt128(295032972745810, 1806085492671823116),
+UInt128(472052756393296, 2889736788274916986),
+UInt128(377642205114636, 17069184689587574882),
+UInt128(302113764091709, 9965998936928149582),
+UInt128(483382022546735, 4877551854859308362),
+UInt128(386705618037388, 3902041483887446689),
+UInt128(309364494429910, 10500330816593777998),
+UInt128(494983191087856, 16800529306550044797),
+UInt128(395986552870285, 9751074630498125514),
+UInt128(316789242296228, 7800859704398500411),
+UInt128(506862787673965, 8792026712295690335),
+UInt128(405490230139172, 7033621369836552268),
+UInt128(324392184111337, 16694943540094972784),
+UInt128(519027494578140, 11954514405184315162),
+UInt128(415221995662512, 9563611524147452129),
+UInt128(332177596530010, 272191589834141057),
+UInt128(531484154448016, 435506543734625691),
+UInt128(425187323558412, 15105800493955341846),
+UInt128(340149858846730, 4705942765680452830),
+UInt128(544239774154768, 7529508425088724528),
+UInt128(435391819323814, 13402304369554800269),
+UInt128(348313455459051, 14411192310385750538),
+UInt128(557301528734482, 15679210067133380215),
+UInt128(445841222987586, 5164670424222883526),
+UInt128(356672978390069, 442387524636396497),
+UInt128(285338382712055, 4043258834451027521),
+UInt128(456541412339288, 6469214135121644034),
+UInt128(365233129871430, 12554068937581135873),
+UInt128(292186503897144, 10043255150064908699),
+UInt128(467498406235431, 5001161795878122948),
+UInt128(373998724988345, 311580621960588035),
+UInt128(299198979990676, 249264497568470428),
+UInt128(478718367985081, 11466869640335283655),
+UInt128(382974694388065, 5484146897526316601),
+UInt128(306379755510452, 4387317518021053280),
+UInt128(490207608816723, 10709056843575595572),
+UInt128(392166087053378, 15945943104344297104),
+UInt128(313732869642703, 1688708039249706714),
+UInt128(501972591428324, 17459328121767172035),
+UInt128(401578073142659, 17656811312155647951),
+UInt128(321262458514127, 17814797864466428684),
+]
+
+private let bid_breakpoints_binary80_155: [UInt128] = [
+UInt128(514019933622604, 13746281324178644602),
+UInt128(411215946898083, 14686373874084826004),
+UInt128(328972757518467, 681052655042129834),
+UInt128(526356412029547, 4779033062809318058),
+UInt128(421085129623637, 14891272894473185416),
+UInt128(336868103698910, 4534320686094727686),
+UInt128(538988965918256, 7254913097751564298),
+UInt128(431191172734605, 2114581663459341115),
+UInt128(344952938187684, 1691665330767472892),
+UInt128(551924701100294, 10085362158711777274),
+UInt128(441539760880235, 11757638541711332142),
+UInt128(353231808704188, 9406110833369065714),
+UInt128(282585446963350, 14903586296179073217),
+UInt128(452136715141361, 5398994000176965532),
+UInt128(361709372113089, 629846385399662102),
+UInt128(289367497690471, 4193225923061640005),
+UInt128(462987996304753, 17777207921124354978),
+UInt128(370390397043803, 3153719892673753012),
+UInt128(296312317635042, 9901673543622823056),
+UInt128(474099708216068, 1085282410828875597),
+UInt128(379279766572854, 8246923558146921124),
+UInt128(303423813258283, 10286887661259447222),
+UInt128(485478101213253, 12769671443273205233),
+UInt128(388382480970602, 17594434784102384833),
+UInt128(310705984776482, 6696850197798087220),
+UInt128(497129575642371, 14404309131218849875),
+UInt128(397703660513897, 7834098490233169577),
+UInt128(318162928411117, 17335325236412266631),
+UInt128(509060685457788, 12979125119291985317),
+UInt128(407248548366230, 17761997724917408900),
+UInt128(325798838692984, 14209598179933927120),
+UInt128(521278141908775, 11667310643668552422),
+UInt128(417022513527020, 9333848514934841938),
+UInt128(333618010821616, 7467078811947873550),
+UInt128(533788817314586, 4568628469632777034),
+UInt128(427031053851668, 18412298034673862920),
+UInt128(341624843081335, 3661791983513359366),
+UInt128(546599748930136, 5858867173621374986),
+UInt128(437279799144109, 997744924155189666),
+UInt128(349823839315287, 4487544754066062056),
+UInt128(559718142904459, 10869420421247609613),
+UInt128(447774514323567, 12384885151739998013),
+UInt128(358219611458854, 2529210491908177764),
+UInt128(286575689167083, 5712717208268452534),
+UInt128(458521102667333, 5450998718487613732),
+UInt128(366816882133866, 11739496604273911632),
+UInt128(293453505707093, 5702248468677218982),
+UInt128(469525609131349, 5434248735141640049),
+UInt128(375620487305079, 8036747802855222362),
+UInt128(300496389844063, 10118747057026088213),
+]
+
+private let bid_breakpoints_binary80_156: [UInt128] = [
+UInt128(480794223750501, 12500646476499830818),
+UInt128(384635379000401, 6311168366457954331),
+UInt128(307708303200321, 1359585878424453141),
+UInt128(492333285120513, 13243383849704855996),
+UInt128(393866628096410, 17973404709247705443),
+UInt128(315093302477128, 14378723767398164354),
+UInt128(504149283963406, 869865139385601028),
+UInt128(403319427170724, 15453287370476122115),
+UInt128(322655541736579, 16051978711122808015),
+UInt128(516248866778527, 14615119493570761855),
+UInt128(412999093422822, 4313397965372788838),
+UInt128(330399274738257, 14518764816523962040),
+UInt128(528638839581212, 8472628447470697971),
+UInt128(422911071664969, 17846149202202289346),
+UInt128(338328857331975, 17966268176503741800),
+UInt128(541326171731161, 10299285008696435264),
+UInt128(433060937384929, 4550079192215237888),
+UInt128(346448749907943, 7329412168514100634),
+UInt128(554317999852709, 8037710654880650691),
+UInt128(443454399882167, 10119517338646430876),
+UInt128(354763519905734, 716916241433324054),
+UInt128(283810815924587, 4262881807888569566),
+UInt128(454097305479339, 10509959707363621630),
+UInt128(363277844383471, 12097316580632807627),
+UInt128(290622275506777, 5988504449764335778),
+UInt128(464995640810843, 13270955934364847569),
+UInt128(371996512648674, 17995462376975698701),
+UInt128(297597210118939, 18085718716322469284),
+UInt128(476155536190303, 17869103501890219885),
+UInt128(380924428952243, 3227236357286444938),
+UInt128(304739543161794, 9960486715312976597),
+UInt128(487583269058871, 4868732300275031586),
+UInt128(390066615247097, 205637025478114945),
+UInt128(312053292197677, 11232556064608222926),
+UInt128(499285267516284, 3214694444405515389),
+UInt128(399428214013027, 6261104370266322634),
+UInt128(319542571210421, 16076929940438789077),
+UInt128(511268113936674, 18344390275218241877),
+UInt128(409014491149339, 18364861034916503825),
+UInt128(327211592919471, 18381237642675113383),
+UInt128(523538548671155, 3584538525086809150),
+UInt128(418830838936924, 2867630820069447320),
+UInt128(335064671149539, 5983453470797468179),
+UInt128(536103473839262, 16952223182759769734),
+UInt128(428882779071410, 6183080916723995140),
+UInt128(343106223257128, 4946464733379196112),
+UInt128(548969957211405, 4224994758664803457),
+UInt128(439175965769124, 3379995806931842765),
+UInt128(351340772615299, 6393345460287384535),
+UInt128(562145236184478, 17608050365943635903),
+]
+
+private let bid_breakpoints_binary80_157: [UInt128] = [
+UInt128(449716188947583, 3018393848529177753),
+UInt128(359772951158066, 9793412708307162849),
+UInt128(287818360926453, 4145381351903819956),
+UInt128(460509377482325, 2943261348304201606),
+UInt128(368407501985860, 2354609078643361285),
+UInt128(294726001588688, 1883687262914689028),
+UInt128(471561602541900, 17771294879631143737),
+UInt128(377249282033520, 14217035903704914990),
+UInt128(301799425626816, 11373628722963931992),
+UInt128(482879081002906, 10819108327258470541),
+UInt128(386303264802325, 4965937847064866109),
+UInt128(309042611841860, 3972750277651892887),
+UInt128(494468178946976, 6356400444243028620),
+UInt128(395574543157581, 1395771540652512573),
+UInt128(316459634526064, 15874012491489651351),
+UInt128(506335415241703, 14330373542157711192),
+UInt128(405068332193363, 396252389500437984),
+UInt128(324054665754690, 7695699541084171033),
+UInt128(518487465207504, 12313119265734673654),
+UInt128(414789972166003, 13539844227329649246),
+UInt128(331831977732802, 18210573011347540043),
+UInt128(530931164372484, 14379521559188422777),
+UInt128(424744931497987, 15192966062092648544),
+UInt128(339795945198390, 4775675220190298189),
+UInt128(543673512317424, 7641080352304477103),
+UInt128(434938809853939, 9802213096585492005),
+UInt128(347951047883151, 11531119292010303927),
+UInt128(556721676613042, 11071093237732665638),
+UInt128(445377341290434, 1478176960702311864),
+UInt128(356301873032347, 4871890383303759814),
+UInt128(285041498425877, 14965558750868738821),
+UInt128(456066397481404, 9187498742422340821),
+UInt128(364853117985123, 11039347808679782980),
+UInt128(291882494388098, 16210175876427647030),
+UInt128(467011991020958, 3800188513832773309),
+UInt128(373609592816766, 10418848440550039293),
+UInt128(298887674253413, 4645729937698121111),
+UInt128(478220278805461, 3743819085575083455),
+UInt128(382576223044368, 17752450527427708057),
+UInt128(306060978435495, 3133913977716435476),
+UInt128(489697565496792, 5014262364346296762),
+UInt128(391758052397433, 15079456335702768379),
+UInt128(313406441917947, 995518624336483733),
+UInt128(501450307068715, 5282178613680284297),
+UInt128(401160245654972, 4225742890944227438),
+UInt128(320928196523977, 14448640756981112920),
+UInt128(513485114438364, 8360429952202139379),
+UInt128(410788091550691, 10377692776503621826),
+UInt128(328630473240553, 4612805406460987138),
+UInt128(525808757184885, 3691139835595669097),
+]
+
+private let bid_breakpoints_binary80_158: [UInt128] = [
+UInt128(420647005747908, 2952911868476535278),
+UInt128(336517604598326, 9741027124265048868),
+UInt128(538428167357322, 8206945769340257543),
+UInt128(430742533885857, 17633603059697937004),
+UInt128(344594027108686, 6728184818274528957),
+UInt128(551350443373898, 3386398079755425685),
+UInt128(441080354699118, 10087816093288161194),
+UInt128(352864283759294, 15448950504114349602),
+UInt128(282291427007435, 16048509218033390004),
+UInt128(451666283211897, 7230870675143872391),
+UInt128(361333026569517, 16852742984340828883),
+UInt128(289066421255614, 6103496757988842460),
+UInt128(462506274008982, 17144292442265968582),
+UInt128(370005019207186, 6336736324328954219),
+UInt128(296004015365749, 1380040244721253052),
+UInt128(473606424585198, 9586762021037825530),
+UInt128(378885139668158, 15048107246314081070),
+UInt128(303108111734527, 970439352825533886),
+UInt128(484972978775243, 5242051779262764542),
+UInt128(387978383020194, 11572339052894032280),
+UInt128(310382706416155, 12947220057057136147),
+UInt128(496612330265849, 2268808017581866219),
+UInt128(397289864212679, 5504395228807403299),
+UInt128(317831891370143, 8092864997787832962),
+UInt128(508531026192229, 9259235181718622416),
+UInt128(406824820953783, 11096736960116808256),
+UInt128(325459856763026, 16256087197577267251),
+UInt128(520735770820843, 184297812930255340),
+UInt128(416588616656674, 7526135879828024918),
+UInt128(333270893325339, 9710257518604330258),
+UInt128(533233429320543, 4468365585541197443),
+UInt128(426586743456434, 10953390097916778601),
+UInt128(341269394765147, 12452060893075333204),
+UInt128(546031031624236, 5165902169952891833),
+UInt128(436824825299389, 443372921220403143),
+UInt128(349459860239511, 4044047151718232838),
+UInt128(559135776383217, 17538521886974903510),
+UInt128(447308621106574, 6652119880096102162),
+UInt128(357846896885259, 9011044718818792053),
+UInt128(286277517508207, 10898184589796943965),
+UInt128(458044028013132, 2679700084707469052),
+UInt128(366435222410505, 13211806511991706211),
+UInt128(293148177928404, 10569445209593364969),
+UInt128(469037084685447, 5843065891123652980),
+UInt128(375229667748357, 15742499157124653354),
+UInt128(300183734198686, 5215301696215902037),
+UInt128(480293974717898, 965785084461622612),
+UInt128(384235179774318, 8151325697053118736),
+UInt128(307388143819454, 13899758187126315635),
+UInt128(491821030111127, 11171566655176374047),
+]
+
+private let bid_breakpoints_binary80_159: [UInt128] = [
+UInt128(393456824088902, 1558555694657278591),
+UInt128(314765459271121, 12314890999951553842),
+UInt128(503624734833794, 12325127970438665502),
+UInt128(402899787867035, 13549451191092842725),
+UInt128(322319830293628, 10839560952874274180),
+UInt128(515711728469805, 13653948709856928364),
+UInt128(412569382775844, 10923158967885542691),
+UInt128(330055506220675, 12427875989050344476),
+UInt128(528088809953081, 1437857508770999546),
+UInt128(422471047962464, 15907681265984440930),
+UInt128(337976838369971, 16415493827529463067),
+UInt128(540762941391955, 439348420853768645),
+UInt128(432610353113564, 351478736683014916),
+UInt128(346088282490851, 3970531804088322256),
+UInt128(553741251985361, 17420897330767046579),
+UInt128(442993001588289, 10247369049871726940),
+UInt128(354394401270631, 11887244054639291875),
+UInt128(283515521016505, 5820446428969523177),
+UInt128(453624833626408, 9312714286351237083),
+UInt128(362899866901126, 14828869058564810313),
+UInt128(290319893520901, 8173746432109937927),
+UInt128(464511829633442, 5699296661892080037),
+UInt128(371609463706753, 15627483773739394999),
+UInt128(297287570965403, 1433940574765785030),
+UInt128(475660113544644, 17051700178592897340),
+UInt128(380528090835715, 17330708957616228195),
+UInt128(304422472668572, 13864567166092982556),
+UInt128(487075956269716, 7425912206781130798),
+UInt128(389660765015773, 2251380950682994315),
+UInt128(311728612012618, 9179802390030216098),
+UInt128(498765779220189, 10998335009306435434),
+UInt128(399012623376151, 12488016822187058670),
+UInt128(319210098700921, 6301064643007736613),
+UInt128(510736157921474, 2703005799328557935),
+UInt128(408588926337179, 5851753454204756671),
+UInt128(326871141069743, 8370751578105715660),
+UInt128(522993825711589, 9703853710227234733),
+UInt128(418395060569271, 11452431782923698109),
+UInt128(334716048455417, 5472596611597048164),
+UInt128(535545677528667, 12445503393297187386),
+UInt128(428436542022934, 2577705085153929262),
+UInt128(342749233618347, 5751512882865053733),
+UInt128(548398773789355, 12891769427325996296),
+UInt128(438719019031484, 10313415541860797037),
+UInt128(350975215225187, 11940081248230547953),
+UInt128(561560344360300, 4346734738201235432),
+UInt128(449248275488240, 3477387790560988345),
+UInt128(359398620390592, 2781910232448790676),
+UInt128(287518896312473, 13293574630184763510),
+UInt128(460030234099957, 17580370593553711294),
+]
+
+private let bid_breakpoints_binary80_160: [UInt128] = [
+UInt128(368024187279966, 6685598845359148388),
+UInt128(294419349823973, 1659130261545408387),
+UInt128(471070959718356, 17412003677440294713),
+UInt128(376856767774685, 10240254127210325447),
+UInt128(301485414219748, 8192203301768260358),
+UInt128(482376662751597, 9418176468087306249),
+UInt128(385901330201278, 155843544986024353),
+UInt128(308721064161022, 7503372465472640129),
+UInt128(493953702657635, 15694744759498134529),
+UInt128(395162962126108, 12555795807598507623),
+UInt128(316130369700886, 17423334275562626745),
+UInt128(505808591521419, 2051893137706830530),
+UInt128(404646873217135, 5330863324907374747),
+UInt128(323717498573708, 4264690659925899798),
+UInt128(517947997717933, 3134156241139529353),
+UInt128(414358398174346, 9886022622395444129),
+UInt128(331486718539477, 4219469283174444980),
+UInt128(530378749663163, 10440499667821022291),
+UInt128(424302999730530, 15731097363740638479),
+UInt128(339442399784424, 12584877890992510783),
+UInt128(543107839655079, 9067758181362286284),
+UInt128(434486271724063, 10943555359831739350),
+UInt128(347589017379250, 16133541917349212126),
+UInt128(556142427806801, 7366922994049187787),
+UInt128(444913942245441, 2204189580497439906),
+UInt128(355931153796352, 16520746923365593218),
+UInt128(284744923037082, 5837899909208653928),
+UInt128(455591876859331, 13029988669475756608),
+UInt128(364473501487465, 6734642120838694963),
+UInt128(291578801189972, 5387713696670955970),
+UInt128(466526081903955, 12309690729415439876),
+UInt128(373220865523164, 9847752583532351900),
+UInt128(298576692418531, 11567550881567791843),
+UInt128(477722707869650, 11129383781024646303),
+UInt128(382178166295720, 8903507024819717043),
+UInt128(305742533036576, 7122805619855773634),
+UInt128(489188052858522, 4017791362285417168),
+UInt128(391350442286817, 14282279534054064704),
+UInt128(313080353829454, 4047125997759431117),
+UInt128(500928566127126, 13854099225898910434),
+UInt128(400742852901701, 7393930565977218024),
+UInt128(320594282321361, 2225795638039864096),
+UInt128(512950851714177, 14629319465089513523),
+UInt128(410360681371342, 4324757942587790172),
+UInt128(328288545097073, 14527852798295963107),
+UInt128(525261672155318, 1108471588822079032),
+UInt128(420209337724254, 8265474900541483872),
+UInt128(336167470179403, 10301728735175097421),
+UInt128(537867952287045, 12793417161538245550),
+UInt128(430294361829636, 10234733729230596440),
+]
+
+private let bid_breakpoints_binary80_161: [UInt128] = [
+UInt128(344235489463709, 4498438168642566829),
+UInt128(550776783141934, 14576198699311927573),
+UInt128(440621426513547, 15350307774191452381),
+UInt128(352497141210838, 4901548589869341258),
+UInt128(281997712968670, 11299936501379293653),
+UInt128(451196340749872, 18079898402206869845),
+UInt128(360957072599898, 7085221092281675230),
+UInt128(288765658079918, 13046874503309160830),
+UInt128(462025052927869, 17185650390552747005),
+UInt128(369620042342295, 17437869127184107927),
+UInt128(295696033873836, 13950295301747286342),
+UInt128(473113654198138, 14941774853311837501),
+UInt128(378490923358511, 885373438423739031),
+UInt128(302792738686808, 15465694009706632517),
+UInt128(484468381898894, 2609017527079150089),
+UInt128(387574705519115, 5776562836405230394),
+UInt128(310059764415292, 4621250269124184315),
+UInt128(496095623064467, 11083349245340605228),
+UInt128(396876498451574, 1487981766788663536),
+UInt128(317501198761259, 4879734228172841152),
+UInt128(508001918018014, 15186272394560366489),
+UInt128(406401534414411, 15838366730390203515),
+UInt128(325121227531529, 8981344569570252488),
+UInt128(520193964050447, 3302104867086673012),
+UInt128(416155171240357, 13709730337895069379),
+UInt128(332924136992286, 3589086640832234857),
+UInt128(532678619187657, 16810585069557306741),
+UInt128(426142895350126, 6069770426162024746),
+UInt128(340914316280101, 1166467526187709474),
+UInt128(545462906048161, 12934394486126066128),
+UInt128(436370324838529, 6658166774158942579),
+UInt128(349096259870823, 9015882234069064386),
+UInt128(558554015793317, 10736062759768592695),
+UInt128(446843212634654, 1210152578331053510),
+UInt128(357474570107723, 4657470877406753131),
+UInt128(285979656086178, 11104674331409223151),
+UInt128(457567449737885, 14078130115512846719),
+UInt128(366053959790308, 11262504092410277375),
+UInt128(292843167832246, 16388700903412042546),
+UInt128(468549068531595, 396479742265895812),
+UInt128(374839254825276, 317183793812716649),
+UInt128(299871403860220, 15011142294017814612),
+UInt128(479794246176353, 5571083596718951764),
+UInt128(383835396941082, 11835564506858982057),
+UInt128(307068317552866, 2089753976003364999),
+UInt128(491309308084585, 14411652805831114969),
+UInt128(393047446467668, 11529322244664891975),
+UInt128(314437957174134, 16602155425215734226),
+UInt128(503100731478615, 15495402236119443793),
+UInt128(402480585182892, 12396321788895555034),
+]
+
+private let bid_breakpoints_binary80_162: [UInt128] = [
+UInt128(321984468146314, 2538359801632623381),
+UInt128(515175149034102, 11440073312096018056),
+UInt128(412140119227282, 1773361020192993798),
+UInt128(329712095381825, 12486735260380126008),
+UInt128(527539352610921, 1532032342898649997),
+UInt128(422031482088736, 15983021133286561290),
+UInt128(337625185670989, 9097068091887338709),
+UInt128(540200297073583, 3487262502794010965),
+UInt128(432160237658866, 10168507631719029418),
+UInt128(345728190127093, 4445457290633313211),
+UInt128(553165104203349, 3423382850271390815),
+UInt128(442532083362679, 6428055094959022975),
+UInt128(354025666690143, 8831792890709128703),
+UInt128(283220533352114, 14444131942051123609),
+UInt128(453152853363383, 12042564663056066805),
+UInt128(362522282690706, 17012749359928674090),
+UInt128(290017826152565, 9920850673201028949),
+UInt128(464028521844104, 15873361077121646319),
+UInt128(371222817475283, 16388037676439227378),
+UInt128(296978253980227, 2042383696925650933),
+UInt128(475165206368363, 6957162729822951816),
+UInt128(380132165094690, 12944427813342182099),
+UInt128(304105732075752, 10355542250673745679),
+UInt128(486569171321204, 1811472342110351794),
+UInt128(389255337056963, 5138526688430191758),
+UInt128(311404269645570, 11489518980227974053),
+UInt128(498246831432912, 18383230368364758485),
+UInt128(398597465146330, 7327886665207986142),
+UInt128(318877972117064, 5862309332166388913),
+UInt128(510204755387302, 16758392560950042908),
+UInt128(408163804309842, 6028016419276213680),
+UInt128(326531043447873, 15890459579646701913),
+UInt128(522449669516598, 3288642438983261122),
+UInt128(417959735613278, 10009611580670429544),
+UInt128(334367788490622, 15386386894020164282),
+UInt128(534988461584996, 9860823771464621558),
+UInt128(427990769267997, 4199310202429786923),
+UInt128(342392615414397, 14427494606169560508),
+UInt128(547828184663036, 8326596110903655521),
+UInt128(438262547730429, 2971928073981014093),
+UInt128(350610038184343, 6066891273926721598),
+UInt128(560976061094949, 6017677223540844233),
+UInt128(448780848875959, 8503490593574585710),
+UInt128(359024679100767, 10492141289601578891),
+UInt128(287219743280614, 1015015402197442466),
+UInt128(459551589248982, 9002722272999728593),
+UInt128(367641271399185, 18270224262625513844),
+UInt128(294113017119348, 14616179410100411075),
+UInt128(470580827390958, 1249794167709195781),
+UInt128(376464661912766, 8378532963651177271),
+]
+
+private let bid_breakpoints_binary80_163: [UInt128] = [
+UInt128(301171729530213, 3013477556179031493),
+UInt128(481874767248341, 1132215275144540067),
+UInt128(385499813798672, 15663167479083273346),
+UInt128(308399851038938, 5151836353782798030),
+UInt128(493439761662301, 4553589351310566526),
+UInt128(394751809329840, 18400266740016094513),
+UInt128(315801447463872, 14720213392012875610),
+UInt128(505282315942196, 8794946168252959684),
+UInt128(404225852753757, 3346608119860457424),
+UInt128(323380682203005, 13745332940114096909),
+UInt128(517409091524809, 3545788630473003438),
+UInt128(413927273219847, 6525979719120313074),
+UInt128(331141818575877, 16288830219521981428),
+UInt128(529826909721404, 11304733092267528993),
+UInt128(423861527777123, 12733135288555933517),
+UInt128(339089222221698, 17565205860328567460),
+UInt128(542542755554718, 5968236488074245998),
+UInt128(434034204443774, 12153286819943217444),
+UInt128(347227363555019, 13411978270696484279),
+UInt128(555563781688031, 10391118788888643876),
+UInt128(444451025350425, 4623546216369004778),
+UInt128(355560820280340, 3698836973095203822),
+UInt128(284448656224272, 2959069578476163058),
+UInt128(455117849958835, 8423860140303771216),
+UInt128(364094279967068, 6739088112243016972),
+UInt128(291275423973654, 12769968119278234224),
+UInt128(466040678357847, 9363902546619443790),
+UInt128(372832542686278, 112424407811734385),
+UInt128(298266034149022, 7468637155733208154),
+UInt128(477225654638435, 15639168263915043371),
+UInt128(381780523710748, 12511334611132034696),
+UInt128(305424418968598, 17387765318389448403),
+UInt128(488679070349758, 5684331620971655507),
+UInt128(390943256279806, 11926162926261145052),
+UInt128(312754605023845, 5851581526267005718),
+UInt128(500407368038152, 9362530442027209149),
+UInt128(400325894430522, 111326724137946673),
+UInt128(320260715544417, 11157107823536088308),
+UInt128(512417144871068, 3093977258690100000),
+UInt128(409933715896854, 9853879436435900646),
+UInt128(327946972717483, 11572452363890630840),
+UInt128(524715156347973, 14826574967483099021),
+UInt128(419772125078379, 793213529760748247),
+UInt128(335817700062703, 4323919638550508921),
+UInt128(537308320100325, 3228922606938903950),
+UInt128(429846656080260, 2583138085551123160),
+UInt128(343877324864208, 2066510468440898528),
+UInt128(550203719782732, 18063812008473078938),
+UInt128(440162975826186, 7072351977294642504),
+UInt128(352130380660949, 1968532767093803680),
+]
+
+private let bid_breakpoints_binary80_164: [UInt128] = [
+UInt128(281704304528759, 5264175028416953267),
+UInt128(450726887246014, 15801377674950945874),
+UInt128(360581509796811, 16330450954702667022),
+UInt128(288465207837449, 9375011949020223294),
+UInt128(461544332539919, 3931972674206626302),
+UInt128(369235466031935, 6834926954107211365),
+UInt128(295388372825548, 5467941563285769092),
+UInt128(472621396520877, 5059357686515320224),
+UInt128(378097117216701, 15115532593437987148),
+UInt128(302477693773361, 8403077260008479395),
+UInt128(483964310037378, 6066225986529746386),
+UInt128(387171448029902, 12231678418707617755),
+UInt128(309737158423922, 2406645105482273558),
+UInt128(495579453478275, 7539980983513548016),
+UInt128(396463562782620, 6031984786810838413),
+UInt128(317170850226096, 4825587829448670730),
+UInt128(507473360361754, 342242897634052522),
+UInt128(405978688289403, 3963143132849152341),
+UInt128(324782950631522, 10549212135763142519),
+UInt128(519652721010436, 2121344158253386738),
+UInt128(415722176808348, 16454470585570350683),
+UInt128(332577741446679, 2095530024230549577),
+UInt128(532124386314686, 10731545668252699969),
+UInt128(425699509051749, 4895887719860249652),
+UInt128(340559607241399, 7606058990630110045),
+UInt128(544895371586239, 1101647940782445102),
+UInt128(435916297268991, 4570667167367866405),
+UInt128(348733037815192, 18413928992861934417),
+UInt128(557972860504308, 14704891129611453774),
+UInt128(446378288403447, 695866459463432050),
+UInt128(357102630722757, 11624739611796476609),
+UInt128(285682104578206, 1921094059953360641),
+UInt128(457091367325129, 14141796940151107995),
+UInt128(365673093860103, 15002786366862796719),
+UInt128(292538475088083, 934182649264506406),
+UInt128(468061560140932, 16252087497790851542),
+UInt128(374449248112746, 5622972368748860587),
+UInt128(299559398490197, 809029080257178147),
+UInt128(479295037584315, 4983795343153395358),
+UInt128(383436030067452, 3987036274522716286),
+UInt128(306748824053961, 14257675463843903999),
+UInt128(490798118486338, 15433583112666425752),
+UInt128(392638494789071, 1278820045907409632),
+UInt128(314110795831256, 15780451295693568998),
+UInt128(502577273330010, 17870024443625889751),
+UInt128(402061818664008, 14296019554900711801),
+UInt128(321649454931207, 368769199694838471),
+UInt128(514639127889931, 4279379534253651877),
+UInt128(411711302311944, 18180898886370562794),
+UInt128(329369041849555, 18234067923838360558),
+]
+
+private let bid_breakpoints_binary80_165: [UInt128] = [
+UInt128(526990466959289, 10727764604431825278),
+UInt128(421592373567431, 12271560498287370545),
+UInt128(337273898853945, 6127899583887986113),
+UInt128(539638238166312, 9804639334220777781),
+UInt128(431710590533050, 465013837892801578),
+UInt128(345368472426440, 372011070314241262),
+UInt128(552589555882304, 595217712502786020),
+UInt128(442071644705843, 4165522984744139139),
+UInt128(353657315764674, 10711116017279131958),
+UInt128(282925852611739, 12258241628565215889),
+UInt128(452681364178783, 8545140161478614454),
+UInt128(362145091343026, 14214809758666712209),
+UInt128(289716073074421, 7682498992191459444),
+UInt128(463545716919074, 4913300758022514464),
+UInt128(370836573535259, 7619989421159921895),
+UInt128(296669258828207, 9785340351669847839),
+UInt128(474670814125132, 899149303704115249),
+UInt128(379736651300105, 11787365887189023169),
+UInt128(303789321040084, 9429892709751218535),
+UInt128(486062913664135, 4019781891376218687),
+UInt128(388850330931308, 3215825513100974949),
+UInt128(311080264745046, 9951358039964600606),
+UInt128(497728423592074, 8543475234459540323),
+UInt128(398182738873659, 10524129002309542582),
+UInt128(318546191098927, 12108652016589544388),
+UInt128(509673905758284, 4616447967575629729),
+UInt128(407739124606627, 7382507188802414106),
+UInt128(326191299685301, 16974052195267662255),
+UInt128(521906079496483, 1333041809234887345),
+UInt128(417524863597186, 8445131076871730522),
+UInt128(334019890877749, 3066756046755474095),
+UInt128(534431825404398, 12285507304292579198),
+UInt128(427545460323518, 17207103472917884005),
+UInt128(342036368258815, 2697636334108576234),
+UInt128(547258189214104, 4316218134573721975),
+UInt128(437806551371283, 7142323322400887903),
+UInt128(350245241097026, 13092556287404530969),
+UInt128(560392385755242, 13569392430363428904),
+UInt128(448313908604194, 3476816314806922477),
+UInt128(358651126883355, 6470801866587448304),
+UInt128(286920901506684, 5176641493269958643),
+UInt128(459073442410694, 15661324018715754476),
+UInt128(367258753928555, 16218408029714513904),
+UInt128(293807003142844, 12974726423771611123),
+UInt128(470091205028551, 9691515833808846828),
+UInt128(376072964022841, 4063863852305167139),
+UInt128(300858371218272, 18008486340811775004),
+UInt128(481373393949236, 14056182886331198714),
+UInt128(385098715159389, 7555597494323048648),
+UInt128(308078972127511, 9733826810200349241),
+]
+
+private let bid_breakpoints_binary80_166: [UInt128] = [
+UInt128(492926355404018, 8195425266836738140),
+UInt128(394341084323214, 13935037842953211158),
+UInt128(315472867458571, 14837379089104479250),
+UInt128(504756587933714, 16361108913083346153),
+UInt128(403805270346971, 16778235945208587246),
+UInt128(323044216277577, 9733239941424959473),
+UInt128(516870746044124, 815788647312293865),
+UInt128(413496596835299, 4341979732591745415),
+UInt128(330797277468239, 7162932600815306655),
+UInt128(529275643949183, 392645717078759679),
+UInt128(423420515159346, 7692814203146828389),
+UInt128(338736412127477, 2464902547775552388),
+UInt128(541978259403963, 7633192891182794144),
+UInt128(433582607523170, 13485251942430055962),
+UInt128(346866086018536, 10788201553944044769),
+UInt128(554985737629658, 9882424856826650985),
+UInt128(443988590103726, 15284637514945141434),
+UInt128(355190872082981, 8538361197214202824),
+UInt128(284152697666385, 3141340143029451936),
+UInt128(454644316266216, 5026144228847123098),
+UInt128(363715453012973, 331566568335788155),
+UInt128(290972362410378, 7643950884152451170),
+UInt128(465555779856605, 8540972599902011550),
+UInt128(372444623885284, 6832778079921609240),
+UInt128(297955699108227, 9155571278679197715),
+UInt128(476729118573163, 18338262860628626667),
+UInt128(381383294858531, 3602563844277170364),
+UInt128(305106635886824, 17639446334389377584),
+UInt128(488170617418919, 17155067690797273165),
+UInt128(390536493935135, 17413402967379728855),
+UInt128(312429195148108, 13930722373903783084),
+UInt128(499886712236974, 153062909794590995),
+UInt128(399909369789579, 3811799142577583119),
+UInt128(319927495831663, 6738788128803976819),
+UInt128(511883993330661, 7092712191344452587),
+UInt128(409507194664529, 1984820938333651746),
+UInt128(327605755731623, 5277205565408831720),
+UInt128(524169209170597, 4754180089912220429),
+UInt128(419335367336477, 14871390516155507313),
+UInt128(335468293869182, 4518414783440585204),
+UInt128(536749270190691, 10918812468246846650),
+UInt128(429399416152553, 5045701159855566996),
+UInt128(343519532922042, 11415258557368274243),
+UInt128(549631252675268, 3507018432821597497),
+UInt128(439705002140214, 10184312375741098644),
+UInt128(351764001712171, 11836798715334789238),
+UInt128(562822402739474, 11560180315051842135),
+UInt128(450257922191579, 12937493066783384031),
+UInt128(360206337753263, 14039343268168617548),
+UInt128(288165070202611, 163428170309163069),
+]
+
+private let bid_breakpoints_binary80_167: [UInt128] = [
+UInt128(461064112324177, 11329531516720391880),
+UInt128(368851289859342, 1684927583892492857),
+UInt128(295081031887473, 12415988511339725255),
+UInt128(472129651019957, 16176232803401650086),
+UInt128(377703720815966, 5562288613237499422),
+UInt128(302162976652773, 760482075848089214),
+UInt128(483460762644436, 15974166580324584036),
+UInt128(386768610115549, 9089984449517756906),
+UInt128(309414888092439, 10961336374356115848),
+UInt128(495063820947903, 6470091754744054387),
+UInt128(396051056758322, 12554771033279064156),
+UInt128(316840845406658, 2665119197139430678),
+UInt128(506945352650653, 574841900681178762),
+UInt128(405556282120522, 7838571150028763656),
+UInt128(324445025696417, 17338903364248741894),
+UInt128(519112041114268, 12984850123830345738),
+UInt128(415289632891414, 17766577728548097237),
+UInt128(332231706313131, 17902610997580388113),
+UInt128(531570730101011, 2818735892935248718),
+UInt128(425256584080808, 17012383973315840267),
+UInt128(340205267264647, 2541860734426941244),
+UInt128(544328427623435, 7756325989825016314),
+UInt128(435462742098748, 6205060791860013051),
+UInt128(348370193678998, 12342746262971831087),
+UInt128(557392309886397, 16059045206013019417),
+UInt128(445913847909118, 5468538535326594887),
+UInt128(356731078327294, 11753528457745096556),
+UInt128(285384862661835, 13092171580937987568),
+UInt128(456615780258937, 2500730455791228493),
+UInt128(365292624207149, 13068630808858713764),
+UInt128(292234099365719, 14144253461828881334),
+UInt128(467574558985151, 11562759094700479165),
+UInt128(374059647188121, 5560858461018473009),
+UInt128(299247717750497, 759337954072868084),
+UInt128(478796348400795, 4904289541258499257),
+UInt128(383037078720636, 3923431633006799406),
+UInt128(306429662976508, 17896140565373080817),
+UInt128(490287460762414, 6497732016145467369),
+UInt128(392229968609931, 8887534427658284218),
+UInt128(313783974887945, 3420678727384717051),
+UInt128(502054359820712, 5473085963815547282),
+UInt128(401643487856569, 15446515215278168795),
+UInt128(321314790285255, 16046560986964445359),
+UInt128(514103664456409, 7227753505433560959),
+UInt128(411282931565127, 9471551619088759090),
+UInt128(329026345252102, 198543665787186626),
+UInt128(526442152403363, 4007018680001408925),
+UInt128(421153721922690, 10584312573484947786),
+UInt128(336922977538152, 8467450058787958229),
+UInt128(539076764061043, 17237268908802643490),
+]
+
+private let bid_breakpoints_binary80_168: [UInt128] = [
+UInt128(431261411248835, 2721768682816383822),
+UInt128(345009128999068, 2177414946253107058),
+UInt128(552014606398508, 18241259172972612585),
+UInt128(441611685118807, 3524960894152359098),
+UInt128(353289348095045, 13888015159547618248),
+UInt128(282631478476036, 11110412127638094599),
+UInt128(452210365561658, 10397961774737130712),
+UInt128(361768292449326, 15697067049273525216),
+UInt128(289414633959461, 8868304824676909849),
+UInt128(463063414335138, 6810590089999235112),
+UInt128(370450731468110, 12827169701483208736),
+UInt128(296360585174488, 10261735761186566989),
+UInt128(474176936279181, 12729428403156596859),
+UInt128(379341549023345, 6494193907783367164),
+UInt128(303473239218676, 5195355126226693731),
+UInt128(485557182749882, 933870572478889324),
+UInt128(388445746199905, 11815142902208842429),
+UInt128(310756596959924, 9452114321767073943),
+UInt128(497210555135879, 4055336470601587339),
+UInt128(397768444108703, 6933617991223180194),
+UInt128(318214755286962, 12925592022462364802),
+UInt128(509143608459140, 5923551976972142390),
+UInt128(407314886767312, 4738841581577713912),
+UInt128(325851909413849, 14859119709487902099),
+UInt128(521363055062159, 12706545090954912390),
+UInt128(417090444049727, 13854584887505840235),
+UInt128(333672355239782, 3704970280520851541),
+UInt128(533875768383651, 9617301263575272790),
+UInt128(427100614706921, 4004492196118307908),
+UInt128(341680491765536, 17960989015862287619),
+UInt128(546688786824859, 2912140722186287929),
+UInt128(437351029459887, 6019061392490940666),
+UInt128(349880823567909, 15883295558218483503),
+UInt128(559809317708655, 14345226448923842635),
+UInt128(447847454166924, 11476181159139074108),
+UInt128(358277963333539, 12870293742053169609),
+UInt128(286622370666831, 13985583808384446011),
+UInt128(458595793066930, 14998236463931292971),
+UInt128(366876634453544, 11998589171145034376),
+UInt128(293501307562835, 13288220151657937824),
+UInt128(469602092100537, 2814408168943148903),
+UInt128(375681673680429, 13319572979380250092),
+UInt128(300545338944343, 14345007198246110397),
+UInt128(480872542310950, 815918628742314696),
+UInt128(384698033848760, 652734902993851757),
+UInt128(307758427079008, 522187922395081405),
+UInt128(492413483326412, 15592895934799771541),
+UInt128(393930786661130, 5095619118355996587),
+UInt128(315144629328904, 4076495294684797269),
+UInt128(504231406926246, 13901090100979496277),
+]
+
+private let bid_breakpoints_binary80_169: [UInt128] = [
+UInt128(403385125540997, 7431523266041686699),
+UInt128(322708100432797, 17013265057059080328),
+UInt128(516332960692476, 12463828832326887233),
+UInt128(413066368553981, 6281714251119599463),
+UInt128(330453094843185, 1336022586153769247),
+UInt128(528724951749096, 2137636137846030796),
+UInt128(422979961399276, 16467504169244465929),
+UInt128(338383969119421, 9484654520653662420),
+UInt128(541414350591074, 7796749603562039226),
+UInt128(433131480472859, 9926748497591541704),
+UInt128(346505184378287, 11630747612815143686),
+UInt128(554408295005260, 3851800921536588606),
+UInt128(443526636004208, 3081440737229270884),
+UInt128(354821308803366, 9843850219267237354),
+UInt128(283857047042693, 4185731360671879560),
+UInt128(454171275268309, 3007821362333096973),
+UInt128(363337020214647, 6095605904608387901),
+UInt128(290669616171717, 15944531167912441290),
+UInt128(465071385874748, 10753854609692264772),
+UInt128(372057108699798, 15981781317237632464),
+UInt128(297645686959839, 1717378609564375002),
+UInt128(476233099135742, 10126503404786820649),
+UInt128(380986479308594, 722505094345635873),
+UInt128(304789183446875, 4267352890218419021),
+UInt128(487662693515000, 6827764624349470435),
+UInt128(390130154812000, 5462211699479576348),
+UInt128(312104123849600, 4369769359583661078),
+UInt128(499366598159360, 6991630975333857725),
+UInt128(399493278527488, 5593304780267086180),
+UInt128(319594622821990, 11853341453697489590),
+UInt128(511351396515185, 518602252206431729),
+UInt128(409081117212148, 414881801765145383),
+UInt128(327264893769718, 7710603070895936953),
+UInt128(523623830031549, 8647616098691588801),
+UInt128(418899064025239, 10607441693695181364),
+UInt128(335119251220191, 12175302169698055414),
+UInt128(536190801952306, 12101785842033068017),
+UInt128(428952641561845, 5992079858884544090),
+UInt128(343162113249476, 4793663887107635272),
+UInt128(549059381199162, 291164589888395789),
+UInt128(439247504959329, 11300978116136447601),
+UInt128(351398003967463, 12730131307651068404),
+UInt128(562236806347941, 16678861277499799123),
+UInt128(449789445078353, 9653740207257928975),
+UInt128(359831556062682, 15101689795290163826),
+UInt128(287865244850146, 4702654206748310415),
+UInt128(460584391760234, 145549101313476017),
+UInt128(368467513408187, 3805788095792691137),
+UInt128(294774010726549, 14112676920859883879),
+UInt128(471638417162479, 11512236629150083237),
+]
+
+private let bid_breakpoints_binary80_170: [UInt128] = [
+UInt128(377310733729983, 12899138118061976913),
+UInt128(301848586983986, 17698008123933402177),
+UInt128(482957739174379, 2491371295100071220),
+UInt128(386366191339503, 5682445850821967299),
+UInt128(309092953071602, 11924654310141394486),
+UInt128(494548724914564, 4322051637258589885),
+UInt128(395638979931651, 7146990124548782231),
+UInt128(316511183945321, 2028243284897115462),
+UInt128(506417894312513, 14313235700061115708),
+UInt128(405134315450011, 382542115823161597),
+UInt128(324107452360008, 15063428951626170570),
+UInt128(518571923776014, 1965393434150410974),
+UInt128(414857539020811, 5261663562062239102),
+UInt128(331886031216649, 519982034907880958),
+UInt128(531017649946638, 8210668885336430180),
+UInt128(424814119957310, 13947232737752964790),
+UInt128(339851295965848, 11157786190202371832),
+UInt128(543762073545357, 14163109089581884608),
+UInt128(435009658836286, 3951789642181687040),
+UInt128(348007727069028, 17918826972712990925),
+UInt128(556812363310446, 6534030267889323541),
+UInt128(445449890648357, 1537875399569548509),
+UInt128(356359912518685, 12298346763881369777),
+UInt128(285087930014948, 9838677411105095822),
+UInt128(456140688023917, 12052535043026242992),
+UInt128(364912550419134, 2263330404937173747),
+UInt128(291930040335307, 5500013138691649320),
+UInt128(467088064536491, 12489369836648549236),
+UInt128(373670451629193, 6302147054576929066),
+UInt128(298936361303354, 12420415273145363899),
+UInt128(478298178085367, 8804617992806851269),
+UInt128(382638542468293, 18111740838471211985),
+UInt128(306110833974635, 3421346226551238618),
+UInt128(489777334359416, 5474153962481981789),
+UInt128(391821867487533, 689974355243675108),
+UInt128(313457493990026, 7930677113678760733),
+UInt128(501531990384042, 5310385752402196526),
+UInt128(401225592307233, 15316355046147488190),
+UInt128(320980473845787, 1185037592692259583),
+UInt128(513568758153259, 5585408963049525656),
+UInt128(410855006522607, 8157675985181530848),
+UInt128(328684005218085, 17594187232370955648),
+UInt128(525894408348937, 9703955498083977421),
+UInt128(420715526679150, 384466768983361290),
+UInt128(336572421343320, 307573415186689032),
+UInt128(538515874149312, 492117464298702451),
+UInt128(430812699319449, 11461740415664692931),
+UInt128(344650159455559, 12858741147273664668),
+UInt128(551440255128895, 9505939391412132499),
+UInt128(441152204103116, 7604751513129705999),
+]
+
+private let bid_breakpoints_binary80_171: [UInt128] = [
+UInt128(352921763282493, 2394452395761854476),
+UInt128(282337410625994, 9294259546093304227),
+UInt128(451739857001591, 3802768829523555794),
+UInt128(361391885601272, 17799610322586485928),
+UInt128(289113508481018, 6860990628585368096),
+UInt128(462581613569629, 7288236190994678630),
+UInt128(370065290855703, 9519937767537653227),
+UInt128(296052232684562, 14994647843513943228),
+UInt128(473683572295300, 9234041290654667873),
+UInt128(378946857836240, 7387233032523734298),
+UInt128(303157486268992, 5909786426018987438),
+UInt128(485051978030387, 13145007096372290225),
+UInt128(388041582424310, 3137308047614011533),
+UInt128(310433265939448, 2509846438091209226),
+UInt128(496693225503117, 326405486204024439),
+UInt128(397354580402493, 11329170833188950521),
+UInt128(317883664321994, 16442034296034981063),
+UInt128(508613862915191, 15239208429430238732),
+UInt128(406891090332153, 8502017928802280662),
+UInt128(325512872265722, 14180311972525645176),
+UInt128(520820595625156, 7931103897073390989),
+UInt128(416656476500125, 2655534302916802468),
+UInt128(333325181200100, 2124427442333441974),
+UInt128(533320289920160, 3399083907733507159),
+UInt128(426656231936128, 2719267126186805727),
+UInt128(341324985548902, 9554111330433265228),
+UInt128(546119976878244, 529182869725583072),
+UInt128(436895981502595, 4112695110522376781),
+UInt128(349516785202076, 3290156088417901425),
+UInt128(559226856323321, 16332296185694373249),
+UInt128(447381485058657, 9376488133813588276),
+UInt128(357905188046926, 122492877567049975),
+UInt128(286324150437540, 14855389561021281272),
+UInt128(458118640700065, 5321879223924498420),
+UInt128(366494912560052, 4257503379139598736),
+UInt128(293195930048041, 14474049147537409958),
+UInt128(469113488076866, 15779781006576035287),
+UInt128(375290790461493, 8934475990518917906),
+UInt128(300232632369194, 14526278421898954971),
+UInt128(480372211790711, 12173999030812596985),
+UInt128(384297769432569, 6049850409908167265),
+UInt128(307438215546055, 8529229142668444135),
+UInt128(491901144873688, 13646766628269510616),
+UInt128(393520915898950, 18296110932099429139),
+UInt128(314816732719160, 14636888745679543311),
+UInt128(503706772350657, 4972277919377717682),
+UInt128(402965417880525, 15045868779727905115),
+UInt128(322372334304420, 12036695023782324092),
+UInt128(515795734887073, 811967964342166932),
+UInt128(412636587909658, 8028272000957554192),
+]
+
+private let bid_breakpoints_binary80_172: [UInt128] = [
+UInt128(330109270327726, 13801315230249864000),
+UInt128(528174832524362, 14703406738915961753),
+UInt128(422539866019490, 4384027761648948756),
+UInt128(338031892815592, 3507222209319159005),
+UInt128(540851028504947, 9300904349652564731),
+UInt128(432680822803958, 62025850238231138),
+UInt128(346144658243166, 7428318309674405557),
+UInt128(553831453189066, 4506611665995228245),
+UInt128(443065162551252, 18362684591763823889),
+UInt128(354452130041002, 7311450043927238465),
+UInt128(283561704032801, 16917206479367521741),
+UInt128(453698726452483, 1242088663794662524),
+UInt128(362958981161986, 8372368560519550665),
+UInt128(290367184929589, 3008546033673730209),
+UInt128(464587495887342, 12192371283361788981),
+UInt128(371669996709874, 2375199397205610538),
+UInt128(297335997367899, 5589508332506398754),
+UInt128(475737595788638, 16321910961494058653),
+UInt128(380590076630911, 1989482324969515952),
+UInt128(304472061304728, 16348981118943254055),
+UInt128(487155298087566, 4022276901857744549),
+UInt128(389724238470052, 17975216780453836932),
+UInt128(311779390776042, 7001475794879248899),
+UInt128(498847025241667, 14891710086548708561),
+UInt128(399077620193334, 4534670439755146203),
+UInt128(319262096154667, 7317085166546027285),
+UInt128(510819353847467, 15396685081215553980),
+UInt128(408655483077974, 4938650435488622537),
+UInt128(326924386462379, 7640269163132808353),
+UInt128(523079018339807, 1156384216786762396),
+UInt128(418463214671845, 11993153817655140886),
+UInt128(334770571737476, 9594523054124112709),
+UInt128(535632914779962, 7972539257114759688),
+UInt128(428506331823969, 17446077849917538720),
+UInt128(342805065459175, 17646211094675941299),
+UInt128(548488104734681, 9787193677771954462),
+UInt128(438790483787745, 4140406127475653247),
+UInt128(351032387030196, 3312324901980522597),
+UInt128(561651819248313, 16367766287394567125),
+UInt128(449321455398651, 2026166585689922731),
+UInt128(359457164318920, 16378328527519579477),
+UInt128(287565731455136, 13102662822015663582),
+UInt128(460105170328218, 13585562885741241085),
+UInt128(368084136262574, 18247147938076813514),
+UInt128(294467309010059, 18287067165203361134),
+UInt128(471147694416095, 18191261020099646846),
+UInt128(376918155532876, 14553008816079717476),
+UInt128(301534524426301, 7953058238121863658),
+UInt128(482455239082082, 5346195551511161206),
+UInt128(385964191265665, 15345002885434659935),
+]
+
+private let bid_breakpoints_binary80_173: [UInt128] = [
+UInt128(308771353012532, 12276002308347727948),
+UInt128(494034164820052, 4884208434388723424),
+UInt128(395227331856041, 14975413191736709708),
+UInt128(316181865484833, 8290981738647457443),
+UInt128(505890984775733, 9576221967094021587),
+UInt128(404712787820586, 15039675203159037916),
+UInt128(323770230256469, 8342391347785320009),
+UInt128(518032368410351, 2279779712230781045),
+UInt128(414425894728280, 16581219028752266129),
+UInt128(331540715782624, 13264975223001812903),
+UInt128(530465145252199, 10155913912577169676),
+UInt128(424372116201759, 11814079944803646064),
+UInt128(339497692961407, 13140612770584827174),
+UInt128(543196308738252, 6267585173968082186),
+UInt128(434557046990601, 16082114583400196718),
+UInt128(347645637592481, 9176342851978247051),
+UInt128(556233020147970, 7303450933681374636),
+UInt128(444986416118376, 5842760746945099709),
+UInt128(355989132894701, 984859782814169444),
+UInt128(284791306315760, 15545283085218976848),
+UInt128(455666090105217, 6425708862640811340),
+UInt128(364532872084173, 16208613534338380042),
+UInt128(291626297667339, 1898844383244973064),
+UInt128(466602076267742, 10416848642675777549),
+UInt128(373281661014194, 954781284656801392),
+UInt128(298625328811355, 4453173842467351437),
+UInt128(477800526098168, 7125078147947762300),
+UInt128(382240420878534, 13078760147842030486),
+UInt128(305792336702827, 14152356933015534712),
+UInt128(489267738724524, 7886375833857214247),
+UInt128(391414190979619, 9998449481827681720),
+UInt128(313131352783695, 11688108400204055699),
+UInt128(501010164453913, 254229366616937503),
+UInt128(400808131563130, 7582081122777370649),
+UInt128(320646505250504, 6065664898221896519),
+UInt128(513034408400806, 17083761466638855077),
+UInt128(410427526720645, 9977660358569173738),
+UInt128(328342021376516, 7982128286855338991),
+UInt128(525347234202426, 5392707629484721739),
+UInt128(420277787361941, 624817288845867068),
+UInt128(336222229889552, 15257249090044334947),
+UInt128(537955567823284, 9654203285103294623),
+UInt128(430364454258627, 11412711442824546021),
+UInt128(344291563406902, 1751471524775816170),
+UInt128(550866501451043, 6491703254383216196),
+UInt128(440693201160834, 12572060232990393603),
+UInt128(352554560928667, 13746997001134225206),
+UInt128(282043648742934, 3618899971423559518),
+UInt128(451269837988694, 13168937583761515876),
+UInt128(361015870390955, 14224498881751123024),
+]
+
+private let bid_breakpoints_binary80_174: [UInt128] = [
+UInt128(288812696312764, 11379599105400898419),
+UInt128(462100314100423, 7139312124415706501),
+UInt128(369680251280338, 13090147329016385847),
+UInt128(295744201024270, 17850815492696929324),
+UInt128(473190721638833, 10114560714605535302),
+UInt128(378552577311066, 15470346201168248888),
+UInt128(302842061848853, 8686928146192688787),
+UInt128(484547298958165, 10209736219166391737),
+UInt128(387637839166532, 8167788975333113389),
+UInt128(310110271333225, 17602277624492221681),
+UInt128(496176434133161, 9716900125478003074),
+UInt128(396941147306529, 4084171285640492136),
+UInt128(317552917845223, 6956685843254304032),
+UInt128(508084668552357, 7441348534464976128),
+UInt128(406467734841885, 17021125271797711872),
+UInt128(325174187873508, 13616900217438169497),
+UInt128(520278700597613, 18097691533159160873),
+UInt128(416222960478091, 3410106782301597729),
+UInt128(332978368382472, 17485480684808919476),
+UInt128(532765389411956, 13219373836726629868),
+UInt128(426212311529565, 6886150254639393571),
+UInt128(340969849223652, 5508920203711514857),
+UInt128(545551758757843, 12503621140680334095),
+UInt128(436441407006274, 17381594542028087922),
+UInt128(349153125605019, 17594624448364380661),
+UInt128(558645000968031, 17083352673157278088),
+UInt128(446916000774425, 9977333323783912147),
+UInt128(357532800619540, 7981866659027129718),
+UInt128(286026240495632, 6385493327221703774),
+UInt128(457641984793011, 13906138138296636362),
+UInt128(366113587834409, 7435561695895398766),
+UInt128(292890870267527, 9637798171458229336),
+UInt128(468625392428044, 663081815365525645),
+UInt128(374900313942435, 4219814267034330839),
+UInt128(299920251153948, 3375851413627464671),
+UInt128(479872401846317, 1712013447062033151),
+UInt128(383897921477053, 12437657201875357490),
+UInt128(307118337181642, 17328823390984106639),
+UInt128(491389339490628, 12968722166606929329),
+UInt128(393111471592502, 17753675362769364110),
+UInt128(314489177274002, 6824242660731670641),
+UInt128(503182683638403, 14608137071912583349),
+UInt128(402546146910723, 618463213304335710),
+UInt128(322036917528578, 7873468200127289214),
+UInt128(515259068045725, 8908200305461752420),
+UInt128(412207254436580, 7126560244369401936),
+UInt128(329765803549264, 5701248195495521549),
+UInt128(527625285678822, 16500694742276655124),
+UInt128(422100228543058, 5821858164337503453),
+UInt128(337680182834446, 12036184160953823409),
+]
+
+private let bid_breakpoints_binary80_175: [UInt128] = [
+UInt128(540288292535114, 11879197028042296808),
+UInt128(432230634028091, 13192706437175747769),
+UInt128(345784507222473, 6864816334998687892),
+UInt128(553255211555957, 7294357321255990305),
+UInt128(442604169244765, 16903532301230523213),
+UInt128(354083335395812, 13522825840984418570),
+UInt128(283266668316650, 3439563043303714210),
+UInt128(453226669306640, 5503300869285942736),
+UInt128(362581335445312, 4402640695428754189),
+UInt128(290065068356249, 14590159000568734320),
+UInt128(464104109369999, 12276207956684243943),
+UInt128(371283287495999, 13510315180089305478),
+UInt128(297026629996799, 14497600958813354705),
+UInt128(475242607994879, 12128115089875636559),
+UInt128(380194086395903, 13391840886642419571),
+UInt128(304155269116722, 18092170338797756303),
+UInt128(486648430586756, 14190077283108768792),
+UInt128(389318744469405, 7662713011745104710),
+UInt128(311454995575524, 6130170409396083768),
+UInt128(498327992920838, 17186970284517554676),
+UInt128(398662394336671, 2681529783388312771),
+UInt128(318929915469336, 16902619085678291509),
+UInt128(510287864750939, 1218748833891894153),
+UInt128(408230291800751, 4664347881855425645),
+UInt128(326584233440601, 42129490742430193),
+UInt128(522534773504961, 11135453629413619279),
+UInt128(418027818803969, 5219014088788985100),
+UInt128(334422255043175, 7864560085773098403),
+UInt128(535075608069080, 12583296137236957445),
+UInt128(428060486455264, 10066636909789565956),
+UInt128(342448389164211, 11742658342573563088),
+UInt128(547917422662738, 11409555718633880294),
+UInt128(438333938130190, 16506342204390924882),
+UInt128(350667150504152, 13205073763512739905),
+UInt128(561067440806644, 6370722762652742556),
+UInt128(448853952645315, 8785927024864104368),
+UInt128(359083162116252, 7028741619891283494),
+UInt128(287266529693001, 16691039740138757765),
+UInt128(459626447508803, 880221881028640162),
+UInt128(367701158007042, 8082875134306732776),
+UInt128(294160926405633, 17534346551671117190),
+UInt128(470657482249014, 5918861594222325565),
+UInt128(376525985799211, 8424438090119770775),
+UInt128(301220788639369, 3050201657353906297),
+UInt128(481953261822990, 12259020281250070722),
+UInt128(385562609458392, 9807216225000056577),
+UInt128(308450087566714, 467075350516224615),
+UInt128(493520140106742, 8126018190309780031),
+UInt128(394816112085393, 17568860996473554994),
+UInt128(315852889668315, 2987042352953113026),
+]
+
+private let bid_breakpoints_binary80_176: [UInt128] = [
+UInt128(505364623469304, 4779267764724980842),
+UInt128(404291698775443, 7512763026521894996),
+UInt128(323433359020354, 13388908050701336643),
+UInt128(517493374432567, 10354206436896407660),
+UInt128(413994699546054, 904667520033305482),
+UInt128(331195759636843, 4413082830768554708),
+UInt128(529913215418949, 3371583714487777211),
+UInt128(423930572335159, 6386615786332132092),
+UInt128(339144457868127, 8798641443807615996),
+UInt128(542631132589003, 17767175124834095918),
+UInt128(434104906071203, 3145693655641545764),
+UInt128(347283924856962, 9895252553997057258),
+UInt128(555654279771140, 1075008827427650320),
+UInt128(444523423816912, 860007061942120256),
+UInt128(355618739053529, 11756052093779427174),
+UInt128(284494991242823, 13094190489765452062),
+UInt128(455191985988517, 17261355968882812977),
+UInt128(364153588790814, 6430387145622429735),
+UInt128(291322871032651, 8833658531239854111),
+UInt128(466116593652242, 6755156020499945932),
+UInt128(372893274921793, 16472171260625687715),
+UInt128(298314619937435, 2109690564274819202),
+UInt128(477303391899896, 3375504902839710724),
+UInt128(381842713519916, 17457799181239409872),
+UInt128(305474170815933, 10276890530249617574),
+UInt128(488758673305493, 12753676033657477796),
+UInt128(391006938644394, 17581638456409802883),
+UInt128(312805550915515, 17754659579869752629),
+UInt128(500488881464825, 9960711254082052591),
+UInt128(400391105171860, 7968569003265642073),
+UInt128(320312884137488, 6374855202612513658),
+UInt128(512500614619981, 6510419509438111530),
+UInt128(410000491695985, 1518986792808578901),
+UInt128(328000393356788, 1215189434246863121),
+UInt128(524800629370860, 16701698353762622286),
+UInt128(419840503496688, 13361358683010097829),
+UInt128(335872402797350, 18067784575891898909),
+UInt128(537395844475761, 10461711247717486639),
+UInt128(429916675580609, 4680020183432078988),
+UInt128(343933340464487, 7433364961487573514),
+UInt128(550293344743179, 15582732753122027945),
+UInt128(440234675794543, 16155535017239532679),
+UInt128(352187740635635, 1856381569565895174),
+UInt128(281750192508508, 1485105255652716139),
+UInt128(450800308013612, 17133563668011987115),
+UInt128(360640246410890, 6328153304925769046),
+UInt128(288512197128712, 5062522643940615237),
+UInt128(461619515405939, 11789385045046894702),
+UInt128(369295612324751, 13120856850779426085),
+UInt128(295436489859801, 6807336665881630544),
+]
+
+private let bid_breakpoints_binary80_177: [UInt128] = [
+UInt128(472698383775682, 3513041035926788225),
+UInt128(378158707020545, 13878479272967161550),
+UInt128(302526965616436, 11102783418373729240),
+UInt128(484043144986298, 10385755839914146137),
+UInt128(387234515989038, 15687302301415137556),
+UInt128(309787612791231, 1481795396906379075),
+UInt128(495660180465969, 13438919079275937490),
+UInt128(396528144372775, 14440484078162660315),
+UInt128(317222515498220, 11552387262530128252),
+UInt128(507556024797153, 37075546338653588),
+UInt128(406044819837722, 7408358066554743516),
+UInt128(324835855870177, 16994732897469525783),
+UInt128(519737369392284, 12434177376983599960),
+UInt128(415789895513827, 13636690716328790291),
+UInt128(332631916411062, 3530654943579211586),
+UInt128(532211066257699, 9338396724468648861),
+UInt128(425768853006159, 11160066194316829412),
+UInt128(340615082404927, 12617401770195373853),
+UInt128(544984131847884, 5430447573344956872),
+UInt128(435987305478307, 8033706873417875821),
+UInt128(348789844382645, 17495011942960031626),
+UInt128(558063751012233, 9545275035026498986),
+UInt128(446451000809786, 15014917657505019835),
+UInt128(357160800647829, 8322585311262105545),
+UInt128(285728640518263, 10347417063751594759),
+UInt128(457165824829221, 12866518487260641291),
+UInt128(365732659863377, 6603865975066602710),
+UInt128(292586127890701, 16351139224279013137),
+UInt128(468137804625123, 336381055653048758),
+UInt128(374510243700098, 7647802474006259652),
+UInt128(299608194960078, 13496939608688828368),
+UInt128(479373111936125, 17905754559160215066),
+UInt128(383498489548900, 14324603647328172053),
+UInt128(306798791639120, 11459682917862537642),
+UInt128(490878066622592, 18335492668580060228),
+UInt128(392702453298074, 7289696505380227536),
+UInt128(314161962638459, 9521106019046092352),
+UInt128(502659140221535, 4165723186248016794),
+UInt128(402127312177228, 3332578548998413435),
+UInt128(321701849741782, 10044760468682551394),
+UInt128(514722959586852, 1314221490924440938),
+UInt128(411778367669481, 12119423636965283720),
+UInt128(329422694135585, 6006190094830316653),
+UInt128(527076310616936, 9609904151728506645),
+UInt128(421661048493549, 3998574506640894992),
+UInt128(337328838794839, 6888208420054626317),
+UInt128(539726142071742, 18399831101571222754),
+UInt128(431780913657394, 7341167251773157557),
+UInt128(345424730925915, 9562282616160436368),
+UInt128(552679569481464, 15299652185856698190),
+]
+
+private let bid_breakpoints_binary80_178: [UInt128] = [
+UInt128(442143655585171, 15929070563427268875),
+UInt128(353714924468137, 9053907635999904777),
+UInt128(282971939574509, 18311172553025654791),
+UInt128(452755103319215, 18229829640615316696),
+UInt128(362204082655372, 14583863712492253357),
+UInt128(289763266124298, 4288393340509982039),
+UInt128(463621225798877, 3172080530074060939),
+UInt128(370896980639101, 13605710868284979721),
+UInt128(296717584511281, 7195219879886073453),
+UInt128(474748135218050, 4133654178333896879),
+UInt128(379798508174440, 3306923342667117503),
+UInt128(303838806539552, 2645538674133694003),
+UInt128(486142090463283, 7922210693355820728),
+UInt128(388913672370626, 13716466184168477228),
+UInt128(311130937896501, 7283824132592871459),
+UInt128(497809500634402, 4275420982664773689),
+UInt128(398247600507521, 14488383230357549921),
+UInt128(318598080406017, 7901357769544129613),
+UInt128(509756928649627, 16331521246012517705),
+UInt128(407805542919702, 5686519367326193517),
+UInt128(326244434335761, 15617261938086685783),
+UInt128(521991094937218, 17608921471454876607),
+UInt128(417592875949775, 3019090732938170316),
+UInt128(334074300759820, 2415272586350536253),
+UInt128(534518881215712, 3864436138160858005),
+UInt128(427615104972569, 14159595354754417373),
+UInt128(342092083978055, 15017025098545444222),
+UInt128(547347334364889, 5580496083963159139),
+UInt128(437877867491911, 8153745681912437634),
+UInt128(350302293993529, 2833647730788039784),
+UInt128(560483670389646, 11912533998744684301),
+UInt128(448386936311717, 5840678384253837118),
+UInt128(358709549049373, 15740589151628800664),
+UInt128(286967639239499, 1524424877077309561),
+UInt128(459148222783198, 9817777432807515945),
+UInt128(367318578226558, 15232919575729833402),
+UInt128(293854862581247, 1118289216358135752),
+UInt128(470167780129995, 5478611560914927527),
+UInt128(376134224103996, 4382889248731942021),
+UInt128(300907379283196, 18263706657953194910),
+UInt128(481451806853115, 3396488949531739593),
+UInt128(385161445482492, 2717191159625391675),
+UInt128(308129156385993, 13241799371926044309),
+UInt128(493006650217589, 17497530180339760572),
+UInt128(394405320174071, 17687372959013718781),
+UInt128(315524256139257, 10460549552469064701),
+UInt128(504838809822812, 1979484024982862229),
+UInt128(403871047858249, 12651633664212020753),
+UInt128(323096838286599, 13810655746111526925),
+UInt128(516954941258559, 11029002749552712111),
+]
+
+private let bid_breakpoints_binary80_179: [UInt128] = [
+UInt128(413563953006847, 12512551014384080012),
+UInt128(330851162405478, 2631343182023443363),
+UInt128(529361859848765, 520800276495599058),
+UInt128(423489487879012, 416640221196479247),
+UInt128(338791590303209, 11401358621182914367),
+UInt128(542066544485135, 7174127349666932018),
+UInt128(433653235588108, 5739301879733545614),
+UInt128(346922588470486, 11970139133270657137),
+UInt128(555076141552778, 11773524983749230774),
+UInt128(444060913242222, 16797517616483205265),
+UInt128(355248730593778, 6059316463702743566),
+UInt128(284198984475022, 12226150800446015499),
+UInt128(454718375160036, 4804446021745983506),
+UInt128(363774700128029, 154208002654876481),
+UInt128(291019760102423, 3812715216865811508),
+UInt128(465631616163877, 2410995532243388090),
+UInt128(372505292931101, 12996842870020441442),
+UInt128(298004234344881, 6708125481274442830),
+UInt128(476806774951810, 3354303140555287882),
+UInt128(381445419961448, 2683442512444230305),
+UInt128(305156335969158, 9525451639439204891),
+UInt128(488250137550653, 11551373808360817502),
+UInt128(390600110040522, 16619796676172474648),
+UInt128(312480088032418, 5917139711454159072),
+UInt128(499968140851869, 5778074723584744192),
+UInt128(399974512681495, 8311808593609705677),
+UInt128(319979610145196, 6649446874887764541),
+UInt128(511967376232314, 3260417370336602620),
+UInt128(409573900985851, 6297682711011192419),
+UInt128(327659120788681, 1348797354067043612),
+UInt128(524254593261889, 13226122210733000749),
+UInt128(419403674609511, 14270246583328310922),
+UInt128(335522939687609, 7726848451920738415),
+UInt128(536836703500175, 1294911078847450494),
+UInt128(429469362800140, 1035928863077960395),
+UInt128(343575490240112, 828743090462368316),
+UInt128(549720784384179, 5015337759481699629),
+UInt128(439776627507343, 7701619022327270026),
+UInt128(351821302005874, 13539992847345636667),
+UInt128(562914083209399, 10595942111527287699),
+UInt128(450331266567519, 12166102503963740482),
+UInt128(360265013254015, 13422230817912902709),
+UInt128(288212010603212, 10737784654330322167),
+UInt128(461139216965140, 2423060187960874174),
+UInt128(368911373572112, 1938448150368699339),
+UInt128(295129098857689, 12618804964520690441),
+UInt128(472206558172303, 9122041499007373736),
+UInt128(377765246537842, 14676330828689719635),
+UInt128(302212197230274, 4362367033467955062),
+UInt128(483539515568438, 14358484883032548746),
+]
+
+private let bid_breakpoints_binary80_180: [UInt128] = [
+UInt128(386831612454751, 418741462200308027),
+UInt128(309465289963800, 15092388428727887714),
+UInt128(495144463942081, 5701077412255068727),
+UInt128(396115571153665, 871513115062144658),
+UInt128(316892456922932, 697210492049715726),
+UInt128(507027931076691, 4804885602021455486),
+UInt128(405622344861353, 154559666875254065),
+UInt128(324497875889082, 7502345362984023899),
+UInt128(519196601422531, 15693101395516348561),
+UInt128(415357281138025, 8865132301671168526),
+UInt128(332285824910420, 7092105841336934820),
+UInt128(531657319856672, 11347369346139095713),
+UInt128(425325855885338, 1699197847427455924),
+UInt128(340260684708270, 8738055907425785385),
+UInt128(544417095533232, 13980889451881256617),
+UInt128(435533676426586, 3806013932021184647),
+UInt128(348426941141268, 17802206404584589010),
+UInt128(557483105826030, 6347437358883880478),
+UInt128(445986484660824, 5077949887107104382),
+UInt128(356789187728659, 7751708724427593829),
+UInt128(285431350182927, 9890715794283985386),
+UInt128(456690160292684, 1067750011886735325),
+UInt128(365352128234147, 4543548824251298583),
+UInt128(292281702587317, 14702885503626769836),
+UInt128(467650724139708, 8767221546835190445),
+UInt128(374120579311766, 14392474866951973003),
+UInt128(299296463449413, 7824631078819668079),
+UInt128(478874341519061, 8830060911369558603),
+UInt128(383099473215249, 3374699914353736559),
+UInt128(306479578572199, 6389108746224899570),
+UInt128(490367325715518, 17601271623443659959),
+UInt128(392293860572415, 3012970854529196998),
+UInt128(313835088457932, 2410376683623357598),
+UInt128(502136141532691, 7545951508539282481),
+UInt128(401708913226153, 2347412392089515661),
+UInt128(321367130580922, 9256627543155433175),
+UInt128(514187408929476, 53208810081051788),
+UInt128(411349927143580, 14799962307032482723),
+UInt128(329079941714864, 11839969845625986178),
+UInt128(526527906743783, 7875905308775846916),
+UInt128(421222325395026, 13679421876504498179),
+UInt128(336977860316021, 7254188686461688220),
+UInt128(539164576505634, 4228004268854880506),
+UInt128(431331661204507, 7071752229825814728),
+UInt128(345065328963605, 16725448228086382752),
+UInt128(552104526341769, 8313973091228660787),
+UInt128(441683621073415, 10340527287724838953),
+UInt128(353346896858732, 8272421830179871162),
+UInt128(282677517486985, 17685983908369627899),
+UInt128(452284027979177, 9850830179681853023),
+]
+
+private let bid_breakpoints_binary80_181: [UInt128] = [
+UInt128(361827222383342, 501966514261661772),
+UInt128(289461777906673, 11469619655635060387),
+UInt128(463138844650677, 14662042634274186296),
+UInt128(370511075720542, 4350936477935528391),
+UInt128(296408860576433, 14548795626574153682),
+UInt128(474254176922294, 1141980114067183952),
+UInt128(379403341537835, 4602932905995657485),
+UInt128(303522673230268, 3682346324796525988),
+UInt128(485636277168429, 2202405304932531258),
+UInt128(388509021734743, 5451273058687935329),
+UInt128(310807217387794, 11739716076434168910),
+UInt128(497291547820471, 7715499278068939286),
+UInt128(397833238256377, 2483050607713241106),
+UInt128(318266590605101, 13054486930396323854),
+UInt128(509226544968162, 13508481459150297520),
+UInt128(407381235974530, 3428087537836417370),
+UInt128(325904988779624, 2742470030269133896),
+UInt128(521447982047398, 11766649677914434880),
+UInt128(417158385637918, 16792017371815368550),
+UInt128(333726708510335, 2365567453226563870),
+UInt128(533962733616536, 3784907925162502193),
+UInt128(427170186893228, 17785321599097643047),
+UInt128(341736149514583, 3160210835052383468),
+UInt128(546777839223333, 1366988521341903226),
+UInt128(437422271378666, 8472288446557343227),
+UInt128(349937817102933, 3088481942503964258),
+UInt128(559900507364693, 1252222293264432490),
+UInt128(447920405891754, 8380475464095366639),
+UInt128(358336324713403, 10393729186018203634),
+UInt128(286669059770722, 15693680978298383553),
+UInt128(458670495633156, 10352494306309772393),
+UInt128(366936396506525, 4592646630305907591),
+UInt128(293549117205220, 3674117304244726073),
+UInt128(469678587528352, 5878587686791561717),
+UInt128(375742870022681, 15770916593658980343),
+UInt128(300594296018145, 8927384460185273951),
+UInt128(480950873629032, 14283815136296438322),
+UInt128(384760698903226, 4048354479553330011),
+UInt128(307808559122580, 17996078842610305302),
+UInt128(492493694596129, 10346982074466936867),
+UInt128(393994955676903, 11966934474315459817),
+UInt128(315195964541522, 16952245208936188500),
+UInt128(504313543266436, 12366197075330260307),
+UInt128(403450834613149, 6203608845522297922),
+UInt128(322760667690519, 8652235891159748661),
+UInt128(516417068304831, 2775530981629866888),
+UInt128(413133654643864, 16977820044271534803),
+UInt128(330506923715091, 17271604850159138166),
+UInt128(528811077944147, 1809126057061248803),
+UInt128(423048862355317, 12515347289874730012),
+]
+
+private let bid_breakpoints_binary80_182: [UInt128] = [
+UInt128(338439089884254, 2633580202415963363),
+UInt128(541502543814806, 11592425953349362027),
+UInt128(433202035051845, 5584591947937579299),
+UInt128(346561628041476, 4467673558350063439),
+UInt128(554498604866361, 18216324137585832472),
+UInt128(443598883893089, 10883710495326755654),
+UInt128(354879107114471, 12396317211003314846),
+UInt128(283903285691577, 6227704954060741554),
+UInt128(454245257106523, 13653676741239096810),
+UInt128(363396205685218, 18301639022475098094),
+UInt128(290716964548175, 3573264773754347506),
+UInt128(465147143277080, 5717223638006956009),
+UInt128(372117714621664, 4573778910405564807),
+UInt128(297694171697331, 7348371943066362169),
+UInt128(476310674715730, 4378697479422358824),
+UInt128(381048539772584, 3502957983537887059),
+UInt128(304838831818067, 6491715201572219970),
+UInt128(487742130908907, 14076093137257462276),
+UInt128(390193704727126, 3882176880322149174),
+UInt128(312154963781700, 17863136763225360632),
+UInt128(499447942050721, 10134274747451025396),
+UInt128(399558353640577, 4418070983218909993),
+UInt128(319646682912461, 14602503230800858964),
+UInt128(511434692659938, 15985307539797553697),
+UInt128(409147754127951, 1720199587612311988),
+UInt128(327318203302360, 16133554929057490883),
+UInt128(523709125283777, 7366943812782433797),
+UInt128(418967300227021, 16961601494451678007),
+UInt128(335173840181617, 9879932380819432082),
+UInt128(536278144290588, 1050496550343450039),
+UInt128(429022515432470, 8219094869758580678),
+UInt128(343218012345976, 6575275895806864542),
+UInt128(549148819753562, 3141743803807162621),
+UInt128(439319055802849, 13581441487271461066),
+UInt128(351455244642279, 14554502004559079176),
+UInt128(562328391427647, 12219156763068795713),
+UInt128(449862713142118, 2396627780971215924),
+UInt128(359890170513694, 9295999854260793385),
+UInt128(287912136410955, 11126148698150545031),
+UInt128(460659418257528, 17801837917040872050),
+UInt128(368527534606023, 3173423889406966671),
+UInt128(294822027684818, 9917436741009393983),
+UInt128(471715244295709, 12178549970873120049),
+UInt128(377372195436567, 13432188791440406363),
+UInt128(301897756349254, 3367053403668504444),
+UInt128(483036410158806, 12765983075353427757),
+UInt128(386429128127045, 6523437645540831882),
+UInt128(309143302501636, 5218750116432665505),
+UInt128(494629284002618, 971302556808444163),
+UInt128(395703427202094, 8155739674930575976),
+]
+
+private let bid_breakpoints_binary80_183: [UInt128] = [
+UInt128(316562741761675, 10213940554686371104),
+UInt128(506500386818680, 16342304887498193767),
+UInt128(405200309454944, 13073843909998555014),
+UInt128(324160247563955, 14148423942740754334),
+UInt128(518656396102329, 4190734234675655319),
+UInt128(414925116881863, 7041936202482434578),
+UInt128(331940093505490, 13012246591469768309),
+UInt128(531104149608785, 2372850472642077678),
+UInt128(424883319687028, 1898280378113662142),
+UInt128(339906655749622, 8897321931974750360),
+UInt128(543850649199395, 17925063905901510900),
+UInt128(435080519359516, 14340051124721208720),
+UInt128(348064415487613, 7782692085035056653),
+UInt128(556903064780181, 8762958521314180321),
+UInt128(445522451824145, 3321018002309433934),
+UInt128(356417961459316, 2656814401847547147),
+UInt128(285134369167452, 16882846780445679010),
+UInt128(456214990667924, 12255159589745445124),
+UInt128(364971992534339, 13493476486538266422),
+UInt128(291977594027471, 14484130003972523461),
+UInt128(467164150443954, 15795910376872216891),
+UInt128(373731320355163, 16326077116239683836),
+UInt128(298985056284131, 1992815248766016099),
+UInt128(478376090054609, 14256550842251356728),
+UInt128(382700872043687, 15094589488542995706),
+UInt128(306160697634950, 4696973961350575918),
+UInt128(489857116215920, 7515158338160921469),
+UInt128(391885692972736, 6012126670528737175),
+UInt128(313508554378189, 1120352521681079417),
+UInt128(501613687005102, 9171261664173547714),
+UInt128(401290949604081, 18405055775564569141),
+UInt128(321032759683265, 11034695805709744989),
+UInt128(513652415493224, 17655513289135591983),
+UInt128(410921932394579, 17813759446050383910),
+UInt128(328737545915663, 17940356371582217451),
+UInt128(525980073465062, 6568477306080085982),
+UInt128(420784058772049, 16322828289089799755),
+UInt128(336627247017639, 16747611446013750127),
+UInt128(538603595228223, 15728131869396269235),
+UInt128(430882876182579, 1514459051291284418),
+UInt128(344706300946063, 4900916055774937857),
+UInt128(551530081513701, 4152116874497990249),
+UInt128(441224065210960, 18079088758566033492),
+UInt128(352979252168768, 14463271006852826793),
+UInt128(282383401735015, 502570361256530465),
+UInt128(451813442776024, 804112578010448744),
+UInt128(361450754220819, 4332638877150269319),
+UInt128(289160603376655, 7155459916462125778),
+UInt128(462656965402648, 11448735866339401245),
+UInt128(370125572322118, 16537686322555341642),
+]
+
+private let bid_breakpoints_binary80_184: [UInt128] = [
+UInt128(296100457857695, 2162102613818542344),
+UInt128(473760732572312, 3459364182109667751),
+UInt128(379008586057849, 13835537789913465170),
+UInt128(303206868846279, 14757779046672682459),
+UInt128(485130990154047, 12544400030450560966),
+UInt128(388104792123238, 2656822394876628126),
+UInt128(310483833698590, 9504155545385123147),
+UInt128(496774133917744, 15206648872616197036),
+UInt128(397419307134195, 15854667912834867952),
+UInt128(317935445707356, 12683734330267894361),
+UInt128(508696713131770, 12915277298944810332),
+UInt128(406957370505416, 10332221839155848265),
+UInt128(325565896404333, 4576428656582768289),
+UInt128(520905434246933, 3632937035790518939),
+UInt128(416724347397546, 10285047258116235798),
+UInt128(333379477918037, 4538688991751078315),
+UInt128(533407164668859, 10951251201543635627),
+UInt128(426725731735087, 12450349775976818825),
+UInt128(341380585388070, 2581582191297634414),
+UInt128(546208936620912, 4130531506076215062),
+UInt128(436967149296729, 14372471649086703019),
+UInt128(349573719437383, 15187326134011272738),
+UInt128(559317951099814, 2163628925966574443),
+UInt128(447454360879851, 5420251955515169877),
+UInt128(357963488703881, 646852749670225578),
+UInt128(286370790963104, 15274877458703821755),
+UInt128(458193265540967, 13371757489700383839),
+UInt128(366554612432774, 3318708362276486425),
+UInt128(293243689946219, 6344315504563099463),
+UInt128(469189903913950, 17529602436784779788),
+UInt128(375351923131160, 14023681949427823830),
+UInt128(300281538504928, 11218945559542259064),
+UInt128(480450461607885, 14260964080525704179),
+UInt128(384360369286308, 11408771264420563343),
+UInt128(307488295429046, 16505714641020271321),
+UInt128(491981272686475, 583701722439061852),
+UInt128(393585018149180, 466961377951249481),
+UInt128(314868014519344, 373569102360999585),
+UInt128(503788823230950, 7976408193261419982),
+UInt128(403031058584760, 6381126554609135986),
+UInt128(322424846867808, 5104901243687308789),
+UInt128(515879754988493, 4478493175157783739),
+UInt128(412703803990794, 10961492169610047637),
+UInt128(330163043192635, 12458542550429948433),
+UInt128(528260869108217, 1486924006978365877),
+UInt128(422608695286573, 12257585649808423671),
+UInt128(338086956229258, 17184766149330559583),
+UInt128(540939129966814, 5359532950477433394),
+UInt128(432751303973451, 7976975175123857038),
+UInt128(346201043178761, 2692231325357175307),
+]
+
+private let bid_breakpoints_binary80_185: [UInt128] = [
+UInt128(553921669086017, 15375616564797211462),
+UInt128(443137335268814, 4921795622353948523),
+UInt128(354509868215051, 7626785312625069141),
+UInt128(283607894572041, 2412079435358144990),
+UInt128(453772631315265, 14927373540798762954),
+UInt128(363018105052212, 11941898832639010363),
+UInt128(290414484041770, 2174821436627387644),
+UInt128(464663174466832, 3479714298603820230),
+UInt128(371730539573465, 13851817883108787154),
+UInt128(297384431658772, 11081454306487029723),
+UInt128(475815090654036, 2972931631411606264),
+UInt128(380652072523228, 17135740564096926304),
+UInt128(304521658018583, 2640546007051810074),
+UInt128(487234652829733, 535524796540985795),
+UInt128(389787722263786, 7807117466716609282),
+UInt128(311830177811029, 2556345158631377102),
+UInt128(498928284497646, 11468849883294024011),
+UInt128(399142627598117, 5485731091893308885),
+UInt128(319314102078493, 15456631317740378078),
+UInt128(510902563325590, 2594517219933142985),
+UInt128(408722050660472, 2075613775946514388),
+UInt128(326977640528377, 12728537464982942480),
+UInt128(523164224845404, 5608264685005066675),
+UInt128(418531379876323, 8175960562745963663),
+UInt128(334825103901058, 13919466079680591577),
+UInt128(535720166241694, 135052839037484584),
+UInt128(428576132993355, 3797391085971897991),
+UInt128(342860906394684, 3037912868777518392),
+UInt128(548577450231494, 12239358219527850075),
+UInt128(438861960185195, 13480835390364190383),
+UInt128(351089568148156, 10784668312291352306),
+UInt128(561743309037050, 9876771670182343044),
+UInt128(449394647229640, 7901417336145874435),
+UInt128(359515717783712, 6321133868916699548),
+UInt128(287612574226969, 16124953539359090608),
+UInt128(460180118763151, 14731879218748814003),
+UInt128(368144095010521, 8096154560257140879),
+UInt128(294515276008417, 2787574833463802380),
+UInt128(471224441613467, 8149468548283994132),
+UInt128(376979553290773, 17587621282852926275),
+UInt128(301583642632619, 3002050582056610050),
+UInt128(482533828212190, 12181978560774396727),
+UInt128(386027062569752, 9745582848619517381),
+UInt128(308821650055802, 417768649411793259),
+UInt128(494114640089283, 4357778653800779537),
+UInt128(395291712071426, 10864920552524444276),
+UInt128(316233369657141, 5002587627277645098),
+UInt128(505973391451426, 625442574160411510),
+UInt128(404778713161140, 15257749318295970501),
+UInt128(323822970528912, 12206199454636776400),
+]
+
+private let bid_breakpoints_binary80_186: [UInt128] = [
+UInt128(518116752846260, 4772523868451200948),
+UInt128(414493402277008, 3818019094760960759),
+UInt128(331594721821606, 10433112905292589253),
+UInt128(530551554914570, 9314283018984322159),
+UInt128(424441243931656, 7451426415187457727),
+UInt128(339552995145325, 2271792317408055858),
+UInt128(543284792232520, 3634867707852889374),
+UInt128(434627833786016, 2907894166282311499),
+UInt128(347702267028812, 17083710591993490492),
+UInt128(556323627246100, 12576541688221943494),
+UInt128(445058901796880, 10061233350577554795),
+UInt128(356047121437504, 8048986680462043836),
+UInt128(284837697150003, 10128538159111545392),
+UInt128(455740315440005, 12516312239836562304),
+UInt128(364592252352004, 10013049791869249843),
+UInt128(291673801881603, 11699788648237310198),
+UInt128(466678083010565, 15030313022437785994),
+UInt128(373342466408452, 12024250417950228795),
+UInt128(298673973126762, 2240702704876362389),
+UInt128(477878357002819, 7274473142544090146),
+UInt128(382302685602255, 9508927328777182440),
+UInt128(305842148481804, 7607141863021745952),
+UInt128(489347437570887, 1103380536609062554),
+UInt128(391477950056709, 11950750873512981013),
+UInt128(313182360045367, 13249949513552295133),
+UInt128(501091776072588, 6442523962716030921),
+UInt128(400873420858070, 12532716799656645383),
+UInt128(320698736686456, 10026173439725316306),
+UInt128(513117978698330, 8663179874076685444),
+UInt128(410494382958664, 6930543899261348355),
+UInt128(328395506366931, 9233783934150989007),
+UInt128(525432810187090, 7395356665157761765),
+UInt128(420346248149672, 5916285332126209412),
+UInt128(336276998519737, 15801074709926698499),
+UInt128(538043197631580, 10524324276915076306),
+UInt128(430434558105264, 8419459421532061045),
+UInt128(344347646484211, 10424916351967559159),
+UInt128(550956234374738, 9301168533664274008),
+UInt128(440764987499790, 14819632456415239853),
+UInt128(352611989999832, 11855705965132191882),
+UInt128(282089591999866, 2105867142621932859),
+UInt128(451343347199785, 14437433872420823545),
+UInt128(361074677759828, 11549947097936658836),
+UInt128(288859742207862, 16618655307833147715),
+UInt128(462175587532580, 11832453233565395051),
+UInt128(369740470026064, 9465962586852316041),
+UInt128(295792376020851, 11262118884223763156),
+UInt128(473267801633362, 10640692585274200403),
+UInt128(378614241306690, 1133856438735539676),
+UInt128(302891393045352, 907085150988431741),
+]
+
+private let bid_breakpoints_binary80_187: [UInt128] = [
+UInt128(484626228872563, 5140685056323401109),
+UInt128(387700983098050, 11491245674542541533),
+UInt128(310160786478440, 9192996539634033226),
+UInt128(496257258365504, 14708794463414453163),
+UInt128(397005806692403, 15456384385473472853),
+UInt128(317604645353923, 1297061064153047313),
+UInt128(508167432566276, 16832692961612516994),
+UInt128(406533946053021, 9776805554548103272),
+UInt128(325227156842417, 4132095628896572294),
+UInt128(520363450947867, 10300701820976425994),
+UInt128(416290760758294, 861863827297320149),
+UInt128(333032608606635, 4378839876579766442),
+UInt128(532852173770616, 7006143802527626308),
+UInt128(426281739016493, 1915566227280190723),
+UInt128(341025391213194, 8911150611307973225),
+UInt128(545640625941111, 3189794533867026190),
+UInt128(436512500752888, 17309230886061262245),
+UInt128(349210000602311, 2779338264623278826),
+UInt128(558736000963697, 15514987667622977092),
+UInt128(446988800770958, 5033292504614561027),
+UInt128(357591040616766, 11405331633175469468),
+UInt128(286072832493413, 5434916491798465251),
+UInt128(457716531989461, 5006517572135634078),
+UInt128(366173225591569, 315865242966596939),
+UInt128(292938580473255, 3942041009115187875),
+UInt128(468701728757208, 6307265614584300600),
+UInt128(374961383005766, 12424510121151261126),
+UInt128(299969106404613, 6250259282179098578),
+UInt128(479950570247381, 6311066036744647401),
+UInt128(383960456197905, 1359504014653807598),
+UInt128(307168364958324, 1087603211723046078),
+UInt128(491469383933318, 9118862768240694372),
+UInt128(393175507146654, 14673787844076376144),
+UInt128(314540405717323, 15428379090003011238),
+UInt128(503264649147718, 2549313655553356042),
+UInt128(402611719318174, 9418148553926505480),
+UInt128(322089375454539, 11223867657883114707),
+UInt128(515343000727263, 6890141808387252562),
+UInt128(412274400581810, 12890811076193622696),
+UInt128(329819520465448, 10312648860954898156),
+UInt128(527711232744717, 12810889362785926727),
+UInt128(422168986195774, 2870013860744920735),
+UInt128(337735188956619, 5985359903337846911),
+UInt128(540376302330590, 16955273474824375705),
+UInt128(432301041864472, 13564218779859500564),
+UInt128(345840833491578, 3472677394403779805),
+UInt128(553345333586525, 1866935016304137365),
+UInt128(442676266869220, 1493548013043309892),
+UInt128(354141013495376, 1194838410434647913),
+UInt128(283312810796300, 15713265987315359623),
+]
+
+private let bid_breakpoints_binary80_188: [UInt128] = [
+UInt128(453300497274081, 6694481505995023781),
+UInt128(362640397819265, 1666236390054108702),
+UInt128(290112318255412, 1332989112043286961),
+UInt128(464179709208659, 5822131394011169462),
+UInt128(371343767366927, 8347053929950845892),
+UInt128(297075013893541, 17745689588186407683),
+UInt128(475320022229667, 2567661637904880031),
+UInt128(380256017783733, 13122175754549634995),
+UInt128(304204814226986, 17876438233123528642),
+UInt128(486727702763179, 2776859469804273565),
+UInt128(389382162210543, 5910836390585329175),
+UInt128(311505729768434, 12107366741952083986),
+UInt128(498409167629495, 8303740342897603409),
+UInt128(398727334103596, 6642992274318082727),
+UInt128(318981867282877, 1625045004712555858),
+UInt128(510370987652603, 6289420822281999697),
+UInt128(408296790122082, 12410234287309420404),
+UInt128(326637432097666, 2549489800363715677),
+UInt128(522619891356265, 15147230124807676052),
+UInt128(418095913085012, 12117784099846140842),
+UInt128(334476730468010, 2315529650393092027),
+UInt128(535162768748816, 3704847440628947243),
+UInt128(428130214999052, 17721273211470799087),
+UInt128(342504171999242, 6798320939692818623),
+UInt128(548006675198787, 14566662318250420121),
+UInt128(438405340159030, 4274632225116515450),
+UInt128(350724272127224, 3419705780093212360),
+UInt128(561158835403558, 12850226877632960423),
+UInt128(448927068322846, 17658879131590188985),
+UInt128(359141654658277, 10437754490530240864),
+UInt128(287313323726622, 971505962940372045),
+UInt128(459701317962595, 5243758355446505596),
+UInt128(367761054370076, 4195006684357204476),
+UInt128(294208843496060, 18113400606453404874),
+UInt128(470734149593697, 10534696896615896182),
+UInt128(376587319674958, 1049059887808896299),
+UInt128(301269855739966, 8217945539730937686),
+UInt128(482031769183946, 5770015234085679651),
+UInt128(385625415347157, 926663372526633398),
+UInt128(308500332277725, 11809377142247037688),
+UInt128(493600531644361, 448259353885708685),
+UInt128(394880425315488, 15116002742076208240),
+UInt128(315904340252391, 1024755749435235623),
+UInt128(505446944403825, 12707655643322107966),
+UInt128(404357555523060, 10166124514657686373),
+UInt128(323486044418448, 8132899611726149098),
+UInt128(517577671069517, 9323290564019928234),
+UInt128(414062136855614, 79934821732121941),
+UInt128(331249709484491, 3753296672127607876),
+UInt128(529999535175185, 17073321119629903571),
+]
+
+private let bid_breakpoints_binary80_189: [UInt128] = [
+UInt128(423999628140148, 13658656895703922857),
+UInt128(339199702512118, 18305623146046958932),
+UInt128(542719524019390, 7152904145223672352),
+UInt128(434175619215512, 5722323316178937881),
+UInt128(347340495372409, 15645905097168881275),
+UInt128(555744792595855, 13965401711244479070),
+UInt128(444595834076684, 11172321368995583256),
+UInt128(355676667261347, 12627205909938376928),
+UInt128(284541333809078, 2723067098466880896),
+UInt128(455266134094525, 667558542805099110),
+UInt128(364212907275620, 534046834244079288),
+UInt128(291370325820496, 427237467395263430),
+UInt128(466192521312793, 11751626392058152458),
+UInt128(372954017050234, 16779998743130342613),
+UInt128(298363213640187, 17113347809246184414),
+UInt128(477381141824300, 12623961235826253769),
+UInt128(381904913459440, 10099168988661003015),
+UInt128(305523930767552, 8079335190928802412),
+UInt128(488838289228083, 16616285120227994183),
+UInt128(391070631382467, 2224981651956664377),
+UInt128(312856505105973, 12848031765791062471),
+UInt128(500570408169557, 16867502010523789630),
+UInt128(400456326535646, 6115303978935211058),
+UInt128(320365061228517, 1202894368406258523),
+UInt128(512584097965627, 5613979804191923960),
+UInt128(410067278372501, 15559230287579270138),
+UInt128(328053822698001, 8758035415321505787),
+UInt128(524886116316802, 6634159035030588613),
+UInt128(419908893053441, 16375373672250201860),
+UInt128(335927114442753, 9410950123058251165),
+UInt128(537483383108405, 11368171382151291540),
+UInt128(429986706486724, 9094537105721033232),
+UInt128(343989365189379, 10964978499318736909),
+UInt128(550382984303007, 6475919154684248085),
+UInt128(440306387442405, 16248781767973129437),
+UInt128(352245109953924, 12999025414378503550),
+UInt128(281796087963139, 14088569146244713163),
+UInt128(450873740741023, 11473664189765810091),
+UInt128(360698992592818, 16557628981296468719),
+UInt128(288559194074255, 2178056740811444006),
+UInt128(461694710518808, 3484890785298310410),
+UInt128(369355768415046, 10166610257722468974),
+UInt128(295484614732037, 4443939391436064856),
+UInt128(472775383571259, 10799651841039614093),
+UInt128(378220306857007, 12329070287573601597),
+UInt128(302576245485606, 2484558600575060631),
+UInt128(484121992776969, 15043340205145827980),
+UInt128(387297594221575, 15724020978858572707),
+UInt128(309838075377260, 12579216783086858166),
+UInt128(495740920603617, 1680002779229421449),
+]
+
+private let bid_breakpoints_binary80_190: [UInt128] = [
+UInt128(396592736482893, 12412048667609268129),
+UInt128(317274189186314, 17308336563571235150),
+UInt128(507638702698103, 16625292057488245270),
+UInt128(406110962158483, 2232187201764865246),
+UInt128(324888769726786, 9164447390895712843),
+UInt128(519822031562858, 7284418195949319903),
+UInt128(415857625250286, 13206232186243276569),
+UInt128(332686100200229, 6875636934252710932),
+UInt128(532297760320366, 18379716724288158138),
+UInt128(425838208256293, 11014424564688616187),
+UInt128(340670566605034, 16190237281234713596),
+UInt128(545072906568055, 14836333205749810784),
+UInt128(436058325254444, 11869066564599848627),
+UInt128(348846660203555, 13184602066421789225),
+UInt128(558154656325689, 2648619232565311144),
+UInt128(446523725060551, 5808244200794159238),
+UInt128(357218980048441, 957246545893417067),
+UInt128(285775184038752, 15523192495682374946),
+UInt128(457240294462004, 10079712734124158622),
+UInt128(365792235569603, 11753119002041237221),
+UInt128(292633788455682, 16781192831116810423),
+UInt128(468214061529092, 12092513270819255384),
+UInt128(374571249223274, 2295312987171583661),
+UInt128(299656999378619, 5525599204479177252),
+UInt128(479451199005790, 16219656356650504249),
+UInt128(383560959204632, 12975725085320403399),
+UInt128(306848767363706, 3001882438772502073),
+UInt128(490958027781929, 15871058346261734287),
+UInt128(392766422225543, 16386195491751297752),
+UInt128(314213137780435, 2040909949175307232),
+UInt128(502741020448696, 3265455918680491572),
+UInt128(402192816358956, 17369759993912034550),
+UInt128(321754253087165, 10206459180387717317),
+UInt128(514806804939464, 16330334688620347707),
+UInt128(411845443951571, 16753616565638188489),
+UInt128(329476355161257, 9713544437768640468),
+UInt128(527162168258012, 784275841462183456),
+UInt128(421729734606409, 11695467117395477734),
+UInt128(337383787685127, 13045722508658292511),
+UInt128(539814060296204, 6115760754885626724),
+UInt128(431851248236963, 8581957418650411703),
+UInt128(345480998589570, 14244263564404150008),
+UInt128(552769597743313, 4344077629337088398),
+UInt128(442215678194650, 10853959732953491364),
+UInt128(353772542555720, 8683167786362793091),
+UInt128(283018034044576, 6946534229090234473),
+UInt128(452828854471322, 3735757137060554511),
+UInt128(362263083577057, 14056652153874174578),
+UInt128(289810466861646, 3866624093615519016),
+UInt128(463696746978633, 17254644994010561396),
+]
+
+private let bid_breakpoints_binary80_191: [UInt128] = [
+UInt128(370957397582907, 2735669550982718147),
+UInt128(296765918066325, 13256582085011905487),
+UInt128(474825468906121, 2763787262309497163),
+UInt128(379860375124896, 16968425068815239023),
+UInt128(303888300099917, 9885391240310280895),
+UInt128(486221280159868, 1059230725528808140),
+UInt128(388977024127894, 8226082209906867158),
+UInt128(311181619302315, 10270214582667404050),
+UInt128(497890590883704, 16432343332267846480),
+UInt128(398312472706963, 16835223480556187507),
+UInt128(318649978165571, 2400132340219219036),
+UInt128(509839965064913, 14908258188576481427),
+UInt128(407871972051931, 858560106635454172),
+UInt128(326297577641544, 15444243344276004631),
+UInt128(522076124226471, 13642742906615876440),
+UInt128(417660899381177, 7224845510550790828),
+UInt128(334128719504941, 16847922852666363632),
+UInt128(534605951207907, 1131234861072809549),
+UInt128(427684760966325, 11973034333083978609),
+UInt128(342147808773060, 9578427466467182887),
+UInt128(547436494036896, 15325483946347492620),
+UInt128(437949195229517, 8571038342336083772),
+UInt128(350359356183613, 17924877118094597987),
+UInt128(560574969893782, 6543710500499894841),
+UInt128(448459975915025, 16303014844625646842),
+UInt128(358767980732020, 13042411875700517474),
+UInt128(287014384585616, 10433929500560413979),
+UInt128(459223015336986, 9315589571412841720),
+UInt128(367378412269589, 3763122842388363053),
+UInt128(293902729815671, 6699847088652600765),
+UInt128(470244367705074, 3341057712360340578),
+UInt128(376195494164059, 6362194984630182786),
+UInt128(300956395331247, 8779104802446056552),
+UInt128(481530232529995, 17735916498655600806),
+UInt128(385224186023996, 14188733198924480645),
+UInt128(308179348819197, 7661637744397674193),
+UInt128(493086958110715, 15947969205778189032),
+UInt128(394469566488572, 12758375364622551225),
+UInt128(315575653190858, 2828002662214220334),
+UInt128(504921045105373, 835455444800842211),
+UInt128(403936836084298, 8047061985324494415),
+UInt128(323149468867438, 13816347217743416178),
+UInt128(517039150187901, 18416806733647555563),
+UInt128(413631320150321, 11044096572176134127),
+UInt128(330905056120257, 5145928442998996978),
+UInt128(529448089792411, 11922834323540305489),
+UInt128(423558471833929, 5848918644090334068),
+UInt128(338846777467143, 8368483730014177577),
+UInt128(542154843947429, 9700225153280773800),
+UInt128(433723875157943, 11449528937366529363),
+]
+
+private let bid_breakpoints_binary80_192: [UInt128] = [
+UInt128(346979100126354, 16538320779377044137),
+UInt128(555166560202167, 15393266802777539650),
+UInt128(444133248161734, 4935915812738211074),
+UInt128(355306598529387, 7638081464932479182),
+UInt128(284245278823509, 17178511616171714315),
+UInt128(454792446117615, 16417572141649011935),
+UInt128(363833956894092, 13134057713319209548),
+UInt128(291067165515274, 3128548541171546992),
+UInt128(465707464824438, 12384375295358295833),
+UInt128(372565971859550, 17286197865770457313),
+UInt128(298052777487640, 13828958292616365850),
+UInt128(476884443980225, 3679589194476633745),
+UInt128(381507555184180, 2943671355581306996),
+UInt128(305206044147344, 2354937084465045596),
+UInt128(488329670635750, 11146596964627893601),
+UInt128(390663736508600, 8917277571702314881),
+UInt128(312530989206880, 7133822057361851905),
+UInt128(500049582731008, 11414115291778963048),
+UInt128(400039666184806, 16509989862906991084),
+UInt128(320031732947845, 9518643075583682544),
+UInt128(512050772716552, 15229828920933892071),
+UInt128(409640618173242, 4805165507263293010),
+UInt128(327712494538593, 14912178850036365378),
+UInt128(524339991261750, 1723393271606722665),
+UInt128(419471993009400, 1378714617285378132),
+UInt128(335577594407520, 1102971693828302506),
+UInt128(536924151052032, 1764754710125284009),
+UInt128(429539320841625, 12479850212325958177),
+UInt128(343631456673300, 9983880169860766542),
+UInt128(549810330677280, 15974208271777226467),
+UInt128(439848264541824, 12779366617421781173),
+UInt128(351878611633459, 13912842108679335262),
+UInt128(281502889306767, 14819622501685378532),
+UInt128(450404622890828, 8954000743728964359),
+UInt128(360323698312662, 14541898224466992134),
+UInt128(288258958650130, 4254820950089773061),
+UInt128(461214333840208, 6807713520143636897),
+UInt128(368971467072166, 12824868445598730164),
+UInt128(295177173657733, 6570545941737073808),
+UInt128(472283477852373, 6823524692037407770),
+UInt128(377826782281898, 12837517383113746862),
+UInt128(302261425825518, 17648711535974818136),
+UInt128(483618281320830, 6101845569108247079),
+UInt128(386894625056664, 4881476455286597663),
+UInt128(309515700045331, 7594529978971188453),
+UInt128(495225120072530, 4772550336870080879),
+UInt128(396180096058024, 3818040269496064703),
+UInt128(316944076846419, 6743781030338762086),
+UInt128(507110522954270, 18168747278025839984),
+UInt128(405688418363416, 14534997822420671987),
+]
+
+private let bid_breakpoints_binary80_193: [UInt128] = [
+UInt128(324550734690733, 7938649443194627266),
+UInt128(519281175505173, 9012490294369493303),
+UInt128(415424940404138, 14588689864979415289),
+UInt128(332339952323311, 602905447757801261),
+UInt128(531743923717297, 12032695160638212988),
+UInt128(425395138973838, 2247458499026749744),
+UInt128(340316111179070, 9176664428705220442),
+UInt128(544505777886512, 14682663085928352707),
+UInt128(435604622309210, 4367432839258861519),
+UInt128(348483697847368, 3493946271407089215),
+UInt128(557573916555789, 1900965219509432421),
+UInt128(446059133244631, 5210120990349456260),
+UInt128(356847306595705, 478747977537654685),
+UInt128(285477845276564, 382998382030123748),
+UInt128(456764552442502, 7991495040732018643),
+UInt128(365411641954001, 17461242476811345884),
+UInt128(292329313563201, 10279645166707166384),
+UInt128(467726901701122, 9068734637247645568),
+UInt128(374181521360897, 18323034154023847424),
+UInt128(299345217088718, 7279729693735257293),
+UInt128(478952347341949, 7958218695234501345),
+UInt128(383161877873559, 10055923770929511399),
+UInt128(306529502298847, 11734087831485519443),
+UInt128(490447203678156, 4017145271409189816),
+UInt128(392357762942524, 17971111476094993145),
+UInt128(313886210354019, 18066237995617904839),
+UInt128(502217936566431, 17837934348762916774),
+UInt128(401774349253145, 10580998664268423096),
+UInt128(321419479402516, 8464798931414738476),
+UInt128(514271167044026, 6164980660779760916),
+UInt128(411416933635221, 1242635713881898410),
+UInt128(329133546908176, 15751503830073160020),
+UInt128(526613675053082, 17823708498633235386),
+UInt128(421290940042466, 6880269169422767663),
+UInt128(337032752033973, 1814866520796303807),
+UInt128(539252403254356, 17661181692241727384),
+UInt128(431401922603485, 10439596539051471584),
+UInt128(345121538082788, 8351677231241177267),
+UInt128(552194460932461, 9673334755243973304),
+UInt128(441755568745969, 4049318989453268320),
+UInt128(353404454996775, 6928804006304524979),
+UInt128(282723563997420, 5543043205043619983),
+UInt128(452357702395872, 8868869128069791974),
+UInt128(361886161916697, 18163141746681564548),
+UInt128(289508929533358, 7151815767861430992),
+UInt128(463214287253373, 7753556413836379265),
+UInt128(370571429802698, 13581542760552924058),
+UInt128(296457143842158, 18243931837926159893),
+UInt128(474331430147454, 7054198052230393889),
+UInt128(379465144117963, 9332707256526225435),
+]
+
+private let bid_breakpoints_binary80_194: [UInt128] = [
+UInt128(303572115294370, 14844863434704800994),
+UInt128(485715384470993, 5305037421818129975),
+UInt128(388572307576794, 11622727566938324626),
+UInt128(310857846061435, 12987530868292570024),
+UInt128(497372553698297, 2333305315558560423),
+UInt128(397898042958637, 12934690696672579308),
+UInt128(318318434366910, 2969054927854242800),
+UInt128(509309494987056, 4750487884566788480),
+UInt128(407447595989645, 111041492911520460),
+UInt128(325958076791716, 88833194329216368),
+UInt128(521532922866745, 11210179555152477159),
+UInt128(417226338293396, 8968143644121981727),
+UInt128(333781070634717, 3485166100555675058),
+UInt128(534049713015547, 9265614575630990417),
+UInt128(427239770412438, 33794031020971687),
+UInt128(341791816329950, 7405732854300597996),
+UInt128(546866906127920, 11849172566880956794),
+UInt128(437493524902336, 9479338053504765435),
+UInt128(349994819921869, 3894121628061902025),
+UInt128(559991711874990, 13609292234382863886),
+UInt128(447993369499992, 10887433787506291109),
+UInt128(358394695599994, 1331249400521212241),
+UInt128(286715756479995, 4754348335158880116),
+UInt128(458745210367992, 7606957336254208185),
+UInt128(366996168294393, 17153612313229097518),
+UInt128(293596934635515, 2654843406357547044),
+UInt128(469755095416824, 4247749450172075271),
+UInt128(375804076333459, 7087548374879570540),
+UInt128(300643261066767, 9359387514645566755),
+UInt128(481029217706828, 217624764465265516),
+UInt128(384823374165462, 7552797441056033059),
+UInt128(307858699332369, 17110284397070557417),
+UInt128(492573918931791, 16308408591087160897),
+UInt128(394059135145433, 9357378058127818395),
+UInt128(315247308116346, 14864600075986075362),
+UInt128(504395692986154, 16404662492093899933),
+UInt128(403516554388923, 16813078808417030270),
+UInt128(322813243511139, 2382416602507893246),
+UInt128(516501189617822, 11190564193496449840),
+UInt128(413200951694258, 1573753725313339226),
+UInt128(330560761355406, 8637700609734492027),
+UInt128(528897218168650, 6441623346091366597),
+UInt128(423117774534920, 5153298676873093277),
+UInt128(338494219627936, 4122638941498474622),
+UInt128(541590751404697, 17664268750623290365),
+UInt128(433272601123758, 6752717371014811645),
+UInt128(346618080899006, 12780871526295669963),
+UInt128(554588929438410, 13070696812589251294),
+UInt128(443671143550728, 10456557450071401035),
+UInt128(354936914840582, 15743943589540941474),
+]
+
+private let bid_breakpoints_binary80_195: [UInt128] = [
+UInt128(283949531872466, 5216457242148932533),
+UInt128(454319250995946, 967633957954471407),
+UInt128(363455400796756, 15531502425331218418),
+UInt128(290764320637405, 8735853125523064411),
+UInt128(465222913019848, 13977365000836903058),
+UInt128(372178330415879, 113845556443791477),
+UInt128(297742664332703, 3780425259896943505),
+UInt128(476388262932325, 2359331601093199284),
+UInt128(381110610345860, 1887465280874559427),
+UInt128(304888488276688, 1509972224699647542),
+UInt128(487821581242700, 17173350818487077360),
+UInt128(390257264994160, 13738680654789661888),
+UInt128(312205811995328, 10990944523831729510),
+UInt128(499529299192525, 13896162423388856894),
+UInt128(399623439354020, 11116929938711085515),
+UInt128(319698751483216, 8893543950968868412),
+UInt128(511518002373146, 6850972692066368813),
+UInt128(409214401898517, 1791429338911184727),
+UInt128(327371521518813, 12501189915354678751),
+UInt128(523794434430101, 16312555049825575679),
+UInt128(419035547544081, 9360695225118550220),
+UInt128(335228438035265, 3799207365352929852),
+UInt128(536365500856424, 6078731784564687764),
+UInt128(429092400685139, 8552334242393660534),
+UInt128(343273920548111, 10531216208656838751),
+UInt128(549238272876978, 9471248304367121355),
+UInt128(439390618301582, 14955696272977517730),
+UInt128(351512494641266, 4585859388898193538),
+UInt128(562419991426025, 18405421466462840630),
+UInt128(449935993140820, 14724337173170272504),
+UInt128(359948794512656, 11779469738536218003),
+UInt128(287959035610125, 5734226976087064079),
+UInt128(460734456976200, 9174763161739302527),
+UInt128(368587565580960, 7339810529391442021),
+UInt128(294870052464768, 5871848423513153617),
+UInt128(471792083943629, 5705608662879135464),
+UInt128(377433667154903, 8253835745045218695),
+UInt128(301946933723922, 13981766225519995602),
+UInt128(483115093958276, 7613430701864351671),
+UInt128(386492075166621, 2401395746749571013),
+UInt128(309193660133296, 16678511856367298103),
+UInt128(494709856213275, 860177266994304703),
+UInt128(395767884970620, 688141813595443762),
+UInt128(316614307976496, 550513450876355010),
+UInt128(506582892762393, 11948867965627898986),
+UInt128(405266314209914, 16937792001986139835),
+UInt128(324213051367931, 17239582416330822191),
+UInt128(518740882188691, 1757890162935943243),
+UInt128(414992705750952, 16163707389316395887),
+UInt128(331994164600762, 5552268281969296063),
+]
+
+private let bid_breakpoints_binary80_196: [UInt128] = [
+UInt128(531190663361219, 12572978065892784025),
+UInt128(424952530688975, 13747731267456137543),
+UInt128(339962024551180, 10998185013964910034),
+UInt128(543939239281888, 17597096022343856055),
+UInt128(435151391425511, 3009630373649353875),
+UInt128(348121113140408, 17165099557887124392),
+UInt128(556993781024654, 5328066404167937089),
+UInt128(445595024819723, 7951801938076259994),
+UInt128(356476019855778, 13740139179944828642),
+UInt128(285180815884622, 18370808973439683560),
+UInt128(456289305415396, 14635899098535852403),
+UInt128(365031444332317, 8019370464086771599),
+UInt128(292025155465853, 17483542815495148249),
+UInt128(467240248745366, 5837575616340775259),
+UInt128(373792198996293, 980711678330709884),
+UInt128(299033759197034, 8163266972148388553),
+UInt128(478454014715255, 1993180711211690716),
+UInt128(382763211772204, 1594544568969352573),
+UInt128(306210569417763, 4964984469917392381),
+UInt128(489936911068421, 4254626337125917487),
+UInt128(391949528854736, 18161096328668375283),
+UInt128(313559623083789, 10839528248192789903),
+UInt128(501695396934063, 6275198752882732875),
+UInt128(401356317547250, 12398856631790006946),
+UInt128(321085054037800, 9919085305432005557),
+UInt128(513736086460480, 15870536488691208892),
+UInt128(410988869168384, 12696429190952967113),
+UInt128(328791095334707, 13846492167504284014),
+UInt128(526065752535532, 7396992209039213129),
+UInt128(420852602028425, 16985640211457101473),
+UInt128(336682081622740, 13588512169165681178),
+UInt128(538691330596385, 3294875396955538270),
+UInt128(430953064477108, 2635900317564430616),
+UInt128(344762451581686, 9487417883535365139),
+UInt128(551619922530698, 7801170984172763576),
+UInt128(441295938024558, 13619634416822031507),
+UInt128(353036750419646, 18274405162941445852),
+UInt128(282429400335717, 10930175315611246358),
+UInt128(451887040537148, 2730885246010352881),
+UInt128(361509632429718, 9563405826292102951),
+UInt128(289207705943774, 15029422290517503007),
+UInt128(462732329510039, 12979029220602273842),
+UInt128(370185863608031, 14072572191223729397),
+UInt128(296148690886425, 7568708938237073194),
+UInt128(473837905418280, 12109934301179317111),
+UInt128(379070324334624, 9687947440943453688),
+UInt128(303256259467699, 11439706767496673274),
+UInt128(485210015148319, 7235484383768946269),
+UInt128(388168012118655, 9477736321757067338),
+UInt128(310534409694924, 7582189057405653870),
+]
+
+private let bid_breakpoints_binary80_197: [UInt128] = [
+UInt128(496855055511879, 1063456047623315223),
+UInt128(397484044409503, 4540113652840562502),
+UInt128(317987235527602, 11010788551756270648),
+UInt128(508779576844164, 2859866423842391744),
+UInt128(407023661475331, 5977241953815823718),
+UInt128(325618929180265, 1092444748310748651),
+UInt128(520990286688424, 1747911597297197842),
+UInt128(416792229350739, 5087678092579668597),
+UInt128(333433783480591, 7759491288805645201),
+UInt128(533494053568946, 5036488432605211675),
+UInt128(426795242855157, 339841931342259017),
+UInt128(341436194284125, 11339919989299538183),
+UInt128(546297910854600, 18143871982879261093),
+UInt128(437038328683680, 14515097586303408874),
+UInt128(349630662946944, 11612078069042727099),
+UInt128(559409060715111, 7511278466242632389),
+UInt128(447527248572089, 2319673958252195588),
+UInt128(358021798857671, 5545087981343666794),
+UInt128(286417439086137, 746721570333023112),
+UInt128(458267902537819, 4884103327274747302),
+UInt128(366614322030255, 7596631476561708165),
+UInt128(293291457624204, 6077305181249366532),
+UInt128(469266332198726, 17102385919482807098),
+UInt128(375413065758981, 9992559920844335355),
+UInt128(300330452607185, 4304699121933557960),
+UInt128(480528724171496, 6887518595093692737),
+UInt128(384422979337197, 1820666061333043866),
+UInt128(307538383469757, 12524579293292166063),
+UInt128(492061413551612, 5281931610299824408),
+UInt128(393649130841289, 15293591732465590496),
+UInt128(314919304673031, 15924222200714382720),
+UInt128(503870887476850, 18100057891659191705),
+UInt128(403096709981480, 14480046313327353364),
+UInt128(322477367985184, 11584037050661882691),
+UInt128(515963788776295, 7466412836833281337),
+UInt128(412771031021036, 5973130269466625069),
+UInt128(330216824816829, 1089155400831389732),
+UInt128(528346919706926, 9121346270814044218),
+UInt128(422677535765541, 3607728201909325051),
+UInt128(338142028612432, 17643577820495101334),
+UInt128(541027245779892, 13472329253824520841),
+UInt128(432821796623914, 3399165773575796026),
+UInt128(346257437299131, 6408681433602547144),
+UInt128(554011899678610, 2875192664280254785),
+UInt128(443209519742888, 2300154131424203828),
+UInt128(354567615794310, 9218820934623183708),
+UInt128(283654092635448, 7375056747698546967),
+UInt128(453846548216717, 8110741981575764824),
+UInt128(363077238573373, 17556640029486342828),
+UInt128(290461790858699, 2977265579363343293),
+]
+
+private let bid_breakpoints_binary80_198: [UInt128] = [
+UInt128(464738865373918, 12142322556465169916),
+UInt128(371791092299134, 17092555674655956579),
+UInt128(297432873839307, 17363393354466675586),
+UInt128(475892598142892, 13024034108179039645),
+UInt128(380714078514314, 3040529657059411070),
+UInt128(304571262811451, 6121772540389439179),
+UInt128(487314020498322, 2416138435139282040),
+UInt128(389851216398657, 13000957192337156602),
+UInt128(311880973118926, 3022068124385904635),
+UInt128(499009556990281, 15903355443243178386),
+UInt128(399207645592225, 9033335539852632385),
+UInt128(319366116473780, 7226668431882105908),
+UInt128(510985786358048, 11562669491011369453),
+UInt128(408788629086438, 16628833222292916209),
+UInt128(327030903269151, 2235020133608601997),
+UInt128(523249445230641, 14644078657999494166),
+UInt128(418599556184513, 8025914111657685009),
+UInt128(334879644947610, 13799428918809968654),
+UInt128(535807431916177, 3632342196386398230),
+]
+
+// MARK: - bid_exponents_binary32
+
+extension BinaryFloatingPointTables {
+ internal static func bid_exponents_binary32(_ index: Int) -> Int {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+ let result: Int16
+
+ switch q {
+ case 0: result = bid_exponents_binary32_0[r]
+ case 1: result = bid_exponents_binary32_1[r]
+ case 2: result = bid_exponents_binary32_2[r]
+ default: preconditionFailure("Index out of range")
+ }
+
+ return Int(truncatingIfNeeded: result)
+ }
+}
+
+private let bid_exponents_binary32_0: [Int16] = [
+-27,
+-24,
+-21,
+-17,
+-14,
+-11,
+-7,
+-4,
+-1,
+3,
+6,
+9,
+13,
+16,
+19,
+23,
+26,
+29,
+33,
+36,
+39,
+43,
+46,
+49,
+52,
+56,
+59,
+62,
+66,
+69,
+72,
+76,
+79,
+82,
+86,
+89,
+92,
+96,
+99,
+102,
+106,
+109,
+112,
+116,
+119,
+122,
+126,
+129,
+132,
+136,
+]
+
+private let bid_exponents_binary32_1: [Int16] = [
+139,
+142,
+145,
+149,
+152,
+155,
+159,
+162,
+165,
+169,
+172,
+175,
+179,
+182,
+185,
+189,
+192,
+195,
+199,
+202,
+205,
+209,
+212,
+215,
+219,
+222,
+225,
+229,
+232,
+235,
+238,
+242,
+245,
+248,
+252,
+255,
+258,
+262,
+265,
+268,
+272,
+275,
+278,
+282,
+285,
+288,
+292,
+295,
+298,
+302,
+]
+
+private let bid_exponents_binary32_2: [Int16] = [
+305,
+308,
+312,
+315,
+318,
+322,
+325,
+328,
+332,
+335,
+338,
+341,
+345,
+348,
+351,
+355,
+358,
+361,
+365,
+368,
+]
+
+// MARK: - bid_exponents_binary64
+
+extension BinaryFloatingPointTables {
+ internal static func bid_exponents_binary64(_ index: Int) -> Int {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+ let result: Int16
+
+ switch q {
+ case 0: result = bid_exponents_binary64_0[r]
+ case 1: result = bid_exponents_binary64_1[r]
+ case 2: result = bid_exponents_binary64_2[r]
+ case 3: result = bid_exponents_binary64_3[r]
+ case 4: result = bid_exponents_binary64_4[r]
+ case 5: result = bid_exponents_binary64_5[r]
+ case 6: result = bid_exponents_binary64_6[r]
+ case 7: result = bid_exponents_binary64_7[r]
+ case 8: result = bid_exponents_binary64_8[r]
+ case 9: result = bid_exponents_binary64_9[r]
+ case 10: result = bid_exponents_binary64_10[r]
+ case 11: result = bid_exponents_binary64_11[r]
+ case 12: result = bid_exponents_binary64_12[r]
+ case 13: result = bid_exponents_binary64_13[r]
+ default: preconditionFailure("Index out of range")
+ }
+
+ return Int(truncatingIfNeeded: result)
+ }
+}
+
+private let bid_exponents_binary64_0: [Int16] = [
+-55,
+-51,
+-48,
+-45,
+-41,
+-38,
+-35,
+-31,
+-28,
+-25,
+-22,
+-18,
+-15,
+-12,
+-8,
+-5,
+-2,
+2,
+5,
+8,
+12,
+15,
+18,
+22,
+25,
+28,
+32,
+35,
+38,
+42,
+45,
+48,
+52,
+55,
+58,
+62,
+65,
+68,
+71,
+75,
+78,
+81,
+85,
+88,
+91,
+95,
+98,
+101,
+105,
+108,
+]
+
+private let bid_exponents_binary64_1: [Int16] = [
+111,
+115,
+118,
+121,
+125,
+128,
+131,
+135,
+138,
+141,
+145,
+148,
+151,
+155,
+158,
+161,
+164,
+168,
+171,
+174,
+178,
+181,
+184,
+188,
+191,
+194,
+198,
+201,
+204,
+208,
+211,
+214,
+218,
+221,
+224,
+228,
+231,
+234,
+238,
+241,
+244,
+248,
+251,
+254,
+258,
+261,
+264,
+267,
+271,
+274,
+]
+
+private let bid_exponents_binary64_2: [Int16] = [
+277,
+281,
+284,
+287,
+291,
+294,
+297,
+301,
+304,
+307,
+311,
+314,
+317,
+321,
+324,
+327,
+331,
+334,
+337,
+341,
+344,
+347,
+351,
+354,
+357,
+360,
+364,
+367,
+370,
+374,
+377,
+380,
+384,
+387,
+390,
+394,
+397,
+400,
+404,
+407,
+410,
+414,
+417,
+420,
+424,
+427,
+430,
+434,
+437,
+440,
+]
+
+private let bid_exponents_binary64_3: [Int16] = [
+444,
+447,
+450,
+454,
+457,
+460,
+463,
+467,
+470,
+473,
+477,
+480,
+483,
+487,
+490,
+493,
+497,
+500,
+503,
+507,
+510,
+513,
+517,
+520,
+523,
+527,
+530,
+533,
+537,
+540,
+543,
+547,
+550,
+553,
+556,
+560,
+563,
+566,
+570,
+573,
+576,
+580,
+583,
+586,
+590,
+593,
+596,
+600,
+603,
+606,
+]
+
+private let bid_exponents_binary64_4: [Int16] = [
+610,
+613,
+616,
+620,
+623,
+626,
+630,
+633,
+636,
+640,
+643,
+646,
+649,
+653,
+656,
+659,
+663,
+666,
+669,
+673,
+676,
+679,
+683,
+686,
+689,
+693,
+696,
+699,
+703,
+706,
+709,
+713,
+716,
+719,
+723,
+726,
+729,
+733,
+736,
+739,
+743,
+746,
+749,
+752,
+756,
+759,
+762,
+766,
+769,
+772,
+]
+
+private let bid_exponents_binary64_5: [Int16] = [
+776,
+779,
+782,
+786,
+789,
+792,
+796,
+799,
+802,
+806,
+809,
+812,
+816,
+819,
+822,
+826,
+829,
+832,
+836,
+839,
+842,
+845,
+849,
+852,
+855,
+859,
+862,
+865,
+869,
+872,
+875,
+879,
+882,
+885,
+889,
+892,
+895,
+899,
+902,
+905,
+909,
+912,
+915,
+919,
+922,
+925,
+929,
+932,
+935,
+939,
+]
+
+private let bid_exponents_binary64_6: [Int16] = [
+942,
+945,
+948,
+952,
+955,
+958,
+962,
+965,
+968,
+972,
+975,
+978,
+982,
+985,
+988,
+992,
+995,
+998,
+1002,
+1005,
+1008,
+1012,
+1015,
+1018,
+1022,
+1025,
+1028,
+1032,
+1035,
+1038,
+1041,
+1045,
+1048,
+1051,
+1055,
+1058,
+1061,
+1065,
+1068,
+1071,
+1075,
+1078,
+1081,
+1085,
+1088,
+1091,
+1095,
+1098,
+1101,
+1105,
+]
+
+private let bid_exponents_binary64_7: [Int16] = [
+1108,
+1111,
+1115,
+1118,
+1121,
+1125,
+1128,
+1131,
+1134,
+1138,
+1141,
+1144,
+1148,
+1151,
+1154,
+1158,
+1161,
+1164,
+1168,
+1171,
+1174,
+1178,
+1181,
+1184,
+1188,
+1191,
+1194,
+1198,
+1201,
+1204,
+1208,
+1211,
+1214,
+1218,
+1221,
+1224,
+1228,
+1231,
+1234,
+1237,
+1241,
+1244,
+1247,
+1251,
+1254,
+1257,
+1261,
+1264,
+1267,
+1271,
+]
+
+private let bid_exponents_binary64_8: [Int16] = [
+1274,
+1277,
+1281,
+1284,
+1287,
+1291,
+1294,
+1297,
+1301,
+1304,
+1307,
+1311,
+1314,
+1317,
+1321,
+1324,
+1327,
+1330,
+1334,
+1337,
+1340,
+1344,
+1347,
+1350,
+1354,
+1357,
+1360,
+1364,
+1367,
+1370,
+1374,
+1377,
+1380,
+1384,
+1387,
+1390,
+1394,
+1397,
+1400,
+1404,
+1407,
+1410,
+1414,
+1417,
+1420,
+1424,
+1427,
+1430,
+1433,
+1437,
+]
+
+private let bid_exponents_binary64_9: [Int16] = [
+1440,
+1443,
+1447,
+1450,
+1453,
+1457,
+1460,
+1463,
+1467,
+1470,
+1473,
+1477,
+1480,
+1483,
+1487,
+1490,
+1493,
+1497,
+1500,
+1503,
+1507,
+1510,
+1513,
+1517,
+1520,
+1523,
+1526,
+1530,
+1533,
+1536,
+1540,
+1543,
+1546,
+1550,
+1553,
+1556,
+1560,
+1563,
+1566,
+1570,
+1573,
+1576,
+1580,
+1583,
+1586,
+1590,
+1593,
+1596,
+1600,
+1603,
+]
+
+private let bid_exponents_binary64_10: [Int16] = [
+1606,
+1610,
+1613,
+1616,
+1620,
+1623,
+1626,
+1629,
+1633,
+1636,
+1639,
+1643,
+1646,
+1649,
+1653,
+1656,
+1659,
+1663,
+1666,
+1669,
+1673,
+1676,
+1679,
+1683,
+1686,
+1689,
+1693,
+1696,
+1699,
+1703,
+1706,
+1709,
+1713,
+1716,
+1719,
+1722,
+1726,
+1729,
+1732,
+1736,
+1739,
+1742,
+1746,
+1749,
+1752,
+1756,
+1759,
+1762,
+1766,
+1769,
+]
+
+private let bid_exponents_binary64_11: [Int16] = [
+1772,
+1776,
+1779,
+1782,
+1786,
+1789,
+1792,
+1796,
+1799,
+1802,
+1806,
+1809,
+1812,
+1815,
+1819,
+1822,
+1825,
+1829,
+1832,
+1835,
+1839,
+1842,
+1845,
+1849,
+1852,
+1855,
+1859,
+1862,
+1865,
+1869,
+1872,
+1875,
+1879,
+1882,
+1885,
+1889,
+1892,
+1895,
+1899,
+1902,
+1905,
+1909,
+1912,
+1915,
+1918,
+1922,
+1925,
+1928,
+1932,
+1935,
+]
+
+private let bid_exponents_binary64_12: [Int16] = [
+1938,
+1942,
+1945,
+1948,
+1952,
+1955,
+1958,
+1962,
+1965,
+1968,
+1972,
+1975,
+1978,
+1982,
+1985,
+1988,
+1992,
+1995,
+1998,
+2002,
+2005,
+2008,
+2011,
+2015,
+2018,
+2021,
+2025,
+2028,
+2031,
+2035,
+2038,
+2041,
+2045,
+2048,
+2051,
+2055,
+2058,
+2061,
+2065,
+2068,
+2071,
+2075,
+2078,
+2081,
+2085,
+2088,
+2091,
+2095,
+2098,
+2101,
+]
+
+private let bid_exponents_binary64_13: [Int16] = [
+2105,
+2108,
+2111,
+2114,
+2118,
+2121,
+2124,
+2128,
+2131,
+2134,
+2138,
+2141,
+2144,
+2148,
+2151,
+2154,
+2158,
+2161,
+]
+
+// MARK: - bid_exponents_binary80
+
+extension BinaryFloatingPointTables {
+ internal static func bid_exponents_binary80(_ index: Int) -> Int {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+ let result: Int32
+
+ switch q {
+ case 0: result = bid_exponents_binary80_0[r]
+ case 1: result = bid_exponents_binary80_1[r]
+ case 2: result = bid_exponents_binary80_2[r]
+ case 3: result = bid_exponents_binary80_3[r]
+ case 4: result = bid_exponents_binary80_4[r]
+ case 5: result = bid_exponents_binary80_5[r]
+ case 6: result = bid_exponents_binary80_6[r]
+ case 7: result = bid_exponents_binary80_7[r]
+ case 8: result = bid_exponents_binary80_8[r]
+ case 9: result = bid_exponents_binary80_9[r]
+ case 10: result = bid_exponents_binary80_10[r]
+ case 11: result = bid_exponents_binary80_11[r]
+ case 12: result = bid_exponents_binary80_12[r]
+ case 13: result = bid_exponents_binary80_13[r]
+ case 14: result = bid_exponents_binary80_14[r]
+ case 15: result = bid_exponents_binary80_15[r]
+ case 16: result = bid_exponents_binary80_16[r]
+ case 17: result = bid_exponents_binary80_17[r]
+ case 18: result = bid_exponents_binary80_18[r]
+ case 19: result = bid_exponents_binary80_19[r]
+ case 20: result = bid_exponents_binary80_20[r]
+ case 21: result = bid_exponents_binary80_21[r]
+ case 22: result = bid_exponents_binary80_22[r]
+ case 23: result = bid_exponents_binary80_23[r]
+ case 24: result = bid_exponents_binary80_24[r]
+ case 25: result = bid_exponents_binary80_25[r]
+ case 26: result = bid_exponents_binary80_26[r]
+ case 27: result = bid_exponents_binary80_27[r]
+ case 28: result = bid_exponents_binary80_28[r]
+ case 29: result = bid_exponents_binary80_29[r]
+ case 30: result = bid_exponents_binary80_30[r]
+ case 31: result = bid_exponents_binary80_31[r]
+ case 32: result = bid_exponents_binary80_32[r]
+ case 33: result = bid_exponents_binary80_33[r]
+ case 34: result = bid_exponents_binary80_34[r]
+ case 35: result = bid_exponents_binary80_35[r]
+ case 36: result = bid_exponents_binary80_36[r]
+ case 37: result = bid_exponents_binary80_37[r]
+ case 38: result = bid_exponents_binary80_38[r]
+ case 39: result = bid_exponents_binary80_39[r]
+ case 40: result = bid_exponents_binary80_40[r]
+ case 41: result = bid_exponents_binary80_41[r]
+ case 42: result = bid_exponents_binary80_42[r]
+ case 43: result = bid_exponents_binary80_43[r]
+ case 44: result = bid_exponents_binary80_44[r]
+ case 45: result = bid_exponents_binary80_45[r]
+ case 46: result = bid_exponents_binary80_46[r]
+ case 47: result = bid_exponents_binary80_47[r]
+ case 48: result = bid_exponents_binary80_48[r]
+ case 49: result = bid_exponents_binary80_49[r]
+ case 50: result = bid_exponents_binary80_50[r]
+ case 51: result = bid_exponents_binary80_51[r]
+ case 52: result = bid_exponents_binary80_52[r]
+ case 53: result = bid_exponents_binary80_53[r]
+ case 54: result = bid_exponents_binary80_54[r]
+ case 55: result = bid_exponents_binary80_55[r]
+ case 56: result = bid_exponents_binary80_56[r]
+ case 57: result = bid_exponents_binary80_57[r]
+ case 58: result = bid_exponents_binary80_58[r]
+ case 59: result = bid_exponents_binary80_59[r]
+ case 60: result = bid_exponents_binary80_60[r]
+ case 61: result = bid_exponents_binary80_61[r]
+ case 62: result = bid_exponents_binary80_62[r]
+ case 63: result = bid_exponents_binary80_63[r]
+ case 64: result = bid_exponents_binary80_64[r]
+ case 65: result = bid_exponents_binary80_65[r]
+ case 66: result = bid_exponents_binary80_66[r]
+ case 67: result = bid_exponents_binary80_67[r]
+ case 68: result = bid_exponents_binary80_68[r]
+ case 69: result = bid_exponents_binary80_69[r]
+ case 70: result = bid_exponents_binary80_70[r]
+ case 71: result = bid_exponents_binary80_71[r]
+ case 72: result = bid_exponents_binary80_72[r]
+ case 73: result = bid_exponents_binary80_73[r]
+ case 74: result = bid_exponents_binary80_74[r]
+ case 75: result = bid_exponents_binary80_75[r]
+ case 76: result = bid_exponents_binary80_76[r]
+ case 77: result = bid_exponents_binary80_77[r]
+ case 78: result = bid_exponents_binary80_78[r]
+ case 79: result = bid_exponents_binary80_79[r]
+ case 80: result = bid_exponents_binary80_80[r]
+ case 81: result = bid_exponents_binary80_81[r]
+ case 82: result = bid_exponents_binary80_82[r]
+ case 83: result = bid_exponents_binary80_83[r]
+ case 84: result = bid_exponents_binary80_84[r]
+ case 85: result = bid_exponents_binary80_85[r]
+ case 86: result = bid_exponents_binary80_86[r]
+ case 87: result = bid_exponents_binary80_87[r]
+ case 88: result = bid_exponents_binary80_88[r]
+ case 89: result = bid_exponents_binary80_89[r]
+ case 90: result = bid_exponents_binary80_90[r]
+ case 91: result = bid_exponents_binary80_91[r]
+ case 92: result = bid_exponents_binary80_92[r]
+ case 93: result = bid_exponents_binary80_93[r]
+ case 94: result = bid_exponents_binary80_94[r]
+ case 95: result = bid_exponents_binary80_95[r]
+ case 96: result = bid_exponents_binary80_96[r]
+ case 97: result = bid_exponents_binary80_97[r]
+ case 98: result = bid_exponents_binary80_98[r]
+ case 99: result = bid_exponents_binary80_99[r]
+ case 100: result = bid_exponents_binary80_100[r]
+ case 101: result = bid_exponents_binary80_101[r]
+ case 102: result = bid_exponents_binary80_102[r]
+ case 103: result = bid_exponents_binary80_103[r]
+ case 104: result = bid_exponents_binary80_104[r]
+ case 105: result = bid_exponents_binary80_105[r]
+ case 106: result = bid_exponents_binary80_106[r]
+ case 107: result = bid_exponents_binary80_107[r]
+ case 108: result = bid_exponents_binary80_108[r]
+ case 109: result = bid_exponents_binary80_109[r]
+ case 110: result = bid_exponents_binary80_110[r]
+ case 111: result = bid_exponents_binary80_111[r]
+ case 112: result = bid_exponents_binary80_112[r]
+ case 113: result = bid_exponents_binary80_113[r]
+ case 114: result = bid_exponents_binary80_114[r]
+ case 115: result = bid_exponents_binary80_115[r]
+ case 116: result = bid_exponents_binary80_116[r]
+ case 117: result = bid_exponents_binary80_117[r]
+ case 118: result = bid_exponents_binary80_118[r]
+ case 119: result = bid_exponents_binary80_119[r]
+ case 120: result = bid_exponents_binary80_120[r]
+ case 121: result = bid_exponents_binary80_121[r]
+ case 122: result = bid_exponents_binary80_122[r]
+ case 123: result = bid_exponents_binary80_123[r]
+ case 124: result = bid_exponents_binary80_124[r]
+ case 125: result = bid_exponents_binary80_125[r]
+ case 126: result = bid_exponents_binary80_126[r]
+ case 127: result = bid_exponents_binary80_127[r]
+ case 128: result = bid_exponents_binary80_128[r]
+ case 129: result = bid_exponents_binary80_129[r]
+ case 130: result = bid_exponents_binary80_130[r]
+ case 131: result = bid_exponents_binary80_131[r]
+ case 132: result = bid_exponents_binary80_132[r]
+ case 133: result = bid_exponents_binary80_133[r]
+ case 134: result = bid_exponents_binary80_134[r]
+ case 135: result = bid_exponents_binary80_135[r]
+ case 136: result = bid_exponents_binary80_136[r]
+ case 137: result = bid_exponents_binary80_137[r]
+ case 138: result = bid_exponents_binary80_138[r]
+ case 139: result = bid_exponents_binary80_139[r]
+ case 140: result = bid_exponents_binary80_140[r]
+ case 141: result = bid_exponents_binary80_141[r]
+ case 142: result = bid_exponents_binary80_142[r]
+ case 143: result = bid_exponents_binary80_143[r]
+ case 144: result = bid_exponents_binary80_144[r]
+ case 145: result = bid_exponents_binary80_145[r]
+ case 146: result = bid_exponents_binary80_146[r]
+ case 147: result = bid_exponents_binary80_147[r]
+ case 148: result = bid_exponents_binary80_148[r]
+ case 149: result = bid_exponents_binary80_149[r]
+ case 150: result = bid_exponents_binary80_150[r]
+ case 151: result = bid_exponents_binary80_151[r]
+ case 152: result = bid_exponents_binary80_152[r]
+ case 153: result = bid_exponents_binary80_153[r]
+ case 154: result = bid_exponents_binary80_154[r]
+ case 155: result = bid_exponents_binary80_155[r]
+ case 156: result = bid_exponents_binary80_156[r]
+ case 157: result = bid_exponents_binary80_157[r]
+ case 158: result = bid_exponents_binary80_158[r]
+ case 159: result = bid_exponents_binary80_159[r]
+ case 160: result = bid_exponents_binary80_160[r]
+ case 161: result = bid_exponents_binary80_161[r]
+ case 162: result = bid_exponents_binary80_162[r]
+ case 163: result = bid_exponents_binary80_163[r]
+ case 164: result = bid_exponents_binary80_164[r]
+ case 165: result = bid_exponents_binary80_165[r]
+ case 166: result = bid_exponents_binary80_166[r]
+ case 167: result = bid_exponents_binary80_167[r]
+ case 168: result = bid_exponents_binary80_168[r]
+ case 169: result = bid_exponents_binary80_169[r]
+ case 170: result = bid_exponents_binary80_170[r]
+ case 171: result = bid_exponents_binary80_171[r]
+ case 172: result = bid_exponents_binary80_172[r]
+ case 173: result = bid_exponents_binary80_173[r]
+ case 174: result = bid_exponents_binary80_174[r]
+ case 175: result = bid_exponents_binary80_175[r]
+ case 176: result = bid_exponents_binary80_176[r]
+ case 177: result = bid_exponents_binary80_177[r]
+ case 178: result = bid_exponents_binary80_178[r]
+ case 179: result = bid_exponents_binary80_179[r]
+ case 180: result = bid_exponents_binary80_180[r]
+ case 181: result = bid_exponents_binary80_181[r]
+ case 182: result = bid_exponents_binary80_182[r]
+ case 183: result = bid_exponents_binary80_183[r]
+ case 184: result = bid_exponents_binary80_184[r]
+ case 185: result = bid_exponents_binary80_185[r]
+ case 186: result = bid_exponents_binary80_186[r]
+ case 187: result = bid_exponents_binary80_187[r]
+ case 188: result = bid_exponents_binary80_188[r]
+ case 189: result = bid_exponents_binary80_189[r]
+ case 190: result = bid_exponents_binary80_190[r]
+ case 191: result = bid_exponents_binary80_191[r]
+ case 192: result = bid_exponents_binary80_192[r]
+ case 193: result = bid_exponents_binary80_193[r]
+ case 194: result = bid_exponents_binary80_194[r]
+ case 195: result = bid_exponents_binary80_195[r]
+ case 196: result = bid_exponents_binary80_196[r]
+ case 197: result = bid_exponents_binary80_197[r]
+ case 198: result = bid_exponents_binary80_198[r]
+ default: preconditionFailure("Index out of range")
+ }
+
+ return Int(truncatingIfNeeded: result)
+ }
+}
+
+private let bid_exponents_binary80_0: [Int32] = [
+-65,
+-62,
+-59,
+-55,
+-52,
+-49,
+-45,
+-42,
+-39,
+-35,
+-32,
+-29,
+-25,
+-22,
+-19,
+-15,
+-12,
+-9,
+-6,
+-2,
+1,
+4,
+8,
+11,
+14,
+18,
+21,
+24,
+28,
+31,
+34,
+38,
+41,
+44,
+48,
+51,
+54,
+58,
+61,
+64,
+68,
+71,
+74,
+78,
+81,
+84,
+87,
+91,
+94,
+97,
+]
+
+private let bid_exponents_binary80_1: [Int32] = [
+101,
+104,
+107,
+111,
+114,
+117,
+121,
+124,
+127,
+131,
+134,
+137,
+141,
+144,
+147,
+151,
+154,
+157,
+161,
+164,
+167,
+171,
+174,
+177,
+181,
+184,
+187,
+190,
+194,
+197,
+200,
+204,
+207,
+210,
+214,
+217,
+220,
+224,
+227,
+230,
+234,
+237,
+240,
+244,
+247,
+250,
+254,
+257,
+260,
+264,
+]
+
+private let bid_exponents_binary80_2: [Int32] = [
+267,
+270,
+274,
+277,
+280,
+283,
+287,
+290,
+293,
+297,
+300,
+303,
+307,
+310,
+313,
+317,
+320,
+323,
+327,
+330,
+333,
+337,
+340,
+343,
+347,
+350,
+353,
+357,
+360,
+363,
+367,
+370,
+373,
+377,
+380,
+383,
+386,
+390,
+393,
+396,
+400,
+403,
+406,
+410,
+413,
+416,
+420,
+423,
+426,
+430,
+]
+
+private let bid_exponents_binary80_3: [Int32] = [
+433,
+436,
+440,
+443,
+446,
+450,
+453,
+456,
+460,
+463,
+466,
+470,
+473,
+476,
+479,
+483,
+486,
+489,
+493,
+496,
+499,
+503,
+506,
+509,
+513,
+516,
+519,
+523,
+526,
+529,
+533,
+536,
+539,
+543,
+546,
+549,
+553,
+556,
+559,
+563,
+566,
+569,
+572,
+576,
+579,
+582,
+586,
+589,
+592,
+596,
+]
+
+private let bid_exponents_binary80_4: [Int32] = [
+599,
+602,
+606,
+609,
+612,
+616,
+619,
+622,
+626,
+629,
+632,
+636,
+639,
+642,
+646,
+649,
+652,
+656,
+659,
+662,
+666,
+669,
+672,
+675,
+679,
+682,
+685,
+689,
+692,
+695,
+699,
+702,
+705,
+709,
+712,
+715,
+719,
+722,
+725,
+729,
+732,
+735,
+739,
+742,
+745,
+749,
+752,
+755,
+759,
+762,
+]
+
+private let bid_exponents_binary80_5: [Int32] = [
+765,
+768,
+772,
+775,
+778,
+782,
+785,
+788,
+792,
+795,
+798,
+802,
+805,
+808,
+812,
+815,
+818,
+822,
+825,
+828,
+832,
+835,
+838,
+842,
+845,
+848,
+852,
+855,
+858,
+862,
+865,
+868,
+871,
+875,
+878,
+881,
+885,
+888,
+891,
+895,
+898,
+901,
+905,
+908,
+911,
+915,
+918,
+921,
+925,
+928,
+]
+
+private let bid_exponents_binary80_6: [Int32] = [
+931,
+935,
+938,
+941,
+945,
+948,
+951,
+955,
+958,
+961,
+964,
+968,
+971,
+974,
+978,
+981,
+984,
+988,
+991,
+994,
+998,
+1001,
+1004,
+1008,
+1011,
+1014,
+1018,
+1021,
+1024,
+1028,
+1031,
+1034,
+1038,
+1041,
+1044,
+1048,
+1051,
+1054,
+1058,
+1061,
+1064,
+1067,
+1071,
+1074,
+1077,
+1081,
+1084,
+1087,
+1091,
+1094,
+]
+
+private let bid_exponents_binary80_7: [Int32] = [
+1097,
+1101,
+1104,
+1107,
+1111,
+1114,
+1117,
+1121,
+1124,
+1127,
+1131,
+1134,
+1137,
+1141,
+1144,
+1147,
+1151,
+1154,
+1157,
+1160,
+1164,
+1167,
+1170,
+1174,
+1177,
+1180,
+1184,
+1187,
+1190,
+1194,
+1197,
+1200,
+1204,
+1207,
+1210,
+1214,
+1217,
+1220,
+1224,
+1227,
+1230,
+1234,
+1237,
+1240,
+1244,
+1247,
+1250,
+1253,
+1257,
+1260,
+]
+
+private let bid_exponents_binary80_8: [Int32] = [
+1263,
+1267,
+1270,
+1273,
+1277,
+1280,
+1283,
+1287,
+1290,
+1293,
+1297,
+1300,
+1303,
+1307,
+1310,
+1313,
+1317,
+1320,
+1323,
+1327,
+1330,
+1333,
+1337,
+1340,
+1343,
+1347,
+1350,
+1353,
+1356,
+1360,
+1363,
+1366,
+1370,
+1373,
+1376,
+1380,
+1383,
+1386,
+1390,
+1393,
+1396,
+1400,
+1403,
+1406,
+1410,
+1413,
+1416,
+1420,
+1423,
+1426,
+]
+
+private let bid_exponents_binary80_9: [Int32] = [
+1430,
+1433,
+1436,
+1440,
+1443,
+1446,
+1449,
+1453,
+1456,
+1459,
+1463,
+1466,
+1469,
+1473,
+1476,
+1479,
+1483,
+1486,
+1489,
+1493,
+1496,
+1499,
+1503,
+1506,
+1509,
+1513,
+1516,
+1519,
+1523,
+1526,
+1529,
+1533,
+1536,
+1539,
+1543,
+1546,
+1549,
+1552,
+1556,
+1559,
+1562,
+1566,
+1569,
+1572,
+1576,
+1579,
+1582,
+1586,
+1589,
+1592,
+]
+
+private let bid_exponents_binary80_10: [Int32] = [
+1596,
+1599,
+1602,
+1606,
+1609,
+1612,
+1616,
+1619,
+1622,
+1626,
+1629,
+1632,
+1636,
+1639,
+1642,
+1645,
+1649,
+1652,
+1655,
+1659,
+1662,
+1665,
+1669,
+1672,
+1675,
+1679,
+1682,
+1685,
+1689,
+1692,
+1695,
+1699,
+1702,
+1705,
+1709,
+1712,
+1715,
+1719,
+1722,
+1725,
+1729,
+1732,
+1735,
+1738,
+1742,
+1745,
+1748,
+1752,
+1755,
+1758,
+]
+
+private let bid_exponents_binary80_11: [Int32] = [
+1762,
+1765,
+1768,
+1772,
+1775,
+1778,
+1782,
+1785,
+1788,
+1792,
+1795,
+1798,
+1802,
+1805,
+1808,
+1812,
+1815,
+1818,
+1822,
+1825,
+1828,
+1832,
+1835,
+1838,
+1841,
+1845,
+1848,
+1851,
+1855,
+1858,
+1861,
+1865,
+1868,
+1871,
+1875,
+1878,
+1881,
+1885,
+1888,
+1891,
+1895,
+1898,
+1901,
+1905,
+1908,
+1911,
+1915,
+1918,
+1921,
+1925,
+]
+
+private let bid_exponents_binary80_12: [Int32] = [
+1928,
+1931,
+1934,
+1938,
+1941,
+1944,
+1948,
+1951,
+1954,
+1958,
+1961,
+1964,
+1968,
+1971,
+1974,
+1978,
+1981,
+1984,
+1988,
+1991,
+1994,
+1998,
+2001,
+2004,
+2008,
+2011,
+2014,
+2018,
+2021,
+2024,
+2028,
+2031,
+2034,
+2037,
+2041,
+2044,
+2047,
+2051,
+2054,
+2057,
+2061,
+2064,
+2067,
+2071,
+2074,
+2077,
+2081,
+2084,
+2087,
+2091,
+]
+
+private let bid_exponents_binary80_13: [Int32] = [
+2094,
+2097,
+2101,
+2104,
+2107,
+2111,
+2114,
+2117,
+2121,
+2124,
+2127,
+2130,
+2134,
+2137,
+2140,
+2144,
+2147,
+2150,
+2154,
+2157,
+2160,
+2164,
+2167,
+2170,
+2174,
+2177,
+2180,
+2184,
+2187,
+2190,
+2194,
+2197,
+2200,
+2204,
+2207,
+2210,
+2214,
+2217,
+2220,
+2223,
+2227,
+2230,
+2233,
+2237,
+2240,
+2243,
+2247,
+2250,
+2253,
+2257,
+]
+
+private let bid_exponents_binary80_14: [Int32] = [
+2260,
+2263,
+2267,
+2270,
+2273,
+2277,
+2280,
+2283,
+2287,
+2290,
+2293,
+2297,
+2300,
+2303,
+2307,
+2310,
+2313,
+2317,
+2320,
+2323,
+2326,
+2330,
+2333,
+2336,
+2340,
+2343,
+2346,
+2350,
+2353,
+2356,
+2360,
+2363,
+2366,
+2370,
+2373,
+2376,
+2380,
+2383,
+2386,
+2390,
+2393,
+2396,
+2400,
+2403,
+2406,
+2410,
+2413,
+2416,
+2419,
+2423,
+]
+
+private let bid_exponents_binary80_15: [Int32] = [
+2426,
+2429,
+2433,
+2436,
+2439,
+2443,
+2446,
+2449,
+2453,
+2456,
+2459,
+2463,
+2466,
+2469,
+2473,
+2476,
+2479,
+2483,
+2486,
+2489,
+2493,
+2496,
+2499,
+2503,
+2506,
+2509,
+2513,
+2516,
+2519,
+2522,
+2526,
+2529,
+2532,
+2536,
+2539,
+2542,
+2546,
+2549,
+2552,
+2556,
+2559,
+2562,
+2566,
+2569,
+2572,
+2576,
+2579,
+2582,
+2586,
+2589,
+]
+
+private let bid_exponents_binary80_16: [Int32] = [
+2592,
+2596,
+2599,
+2602,
+2606,
+2609,
+2612,
+2615,
+2619,
+2622,
+2625,
+2629,
+2632,
+2635,
+2639,
+2642,
+2645,
+2649,
+2652,
+2655,
+2659,
+2662,
+2665,
+2669,
+2672,
+2675,
+2679,
+2682,
+2685,
+2689,
+2692,
+2695,
+2699,
+2702,
+2705,
+2708,
+2712,
+2715,
+2718,
+2722,
+2725,
+2728,
+2732,
+2735,
+2738,
+2742,
+2745,
+2748,
+2752,
+2755,
+]
+
+private let bid_exponents_binary80_17: [Int32] = [
+2758,
+2762,
+2765,
+2768,
+2772,
+2775,
+2778,
+2782,
+2785,
+2788,
+2792,
+2795,
+2798,
+2802,
+2805,
+2808,
+2811,
+2815,
+2818,
+2821,
+2825,
+2828,
+2831,
+2835,
+2838,
+2841,
+2845,
+2848,
+2851,
+2855,
+2858,
+2861,
+2865,
+2868,
+2871,
+2875,
+2878,
+2881,
+2885,
+2888,
+2891,
+2895,
+2898,
+2901,
+2904,
+2908,
+2911,
+2914,
+2918,
+2921,
+]
+
+private let bid_exponents_binary80_18: [Int32] = [
+2924,
+2928,
+2931,
+2934,
+2938,
+2941,
+2944,
+2948,
+2951,
+2954,
+2958,
+2961,
+2964,
+2968,
+2971,
+2974,
+2978,
+2981,
+2984,
+2988,
+2991,
+2994,
+2998,
+3001,
+3004,
+3007,
+3011,
+3014,
+3017,
+3021,
+3024,
+3027,
+3031,
+3034,
+3037,
+3041,
+3044,
+3047,
+3051,
+3054,
+3057,
+3061,
+3064,
+3067,
+3071,
+3074,
+3077,
+3081,
+3084,
+3087,
+]
+
+private let bid_exponents_binary80_19: [Int32] = [
+3091,
+3094,
+3097,
+3100,
+3104,
+3107,
+3110,
+3114,
+3117,
+3120,
+3124,
+3127,
+3130,
+3134,
+3137,
+3140,
+3144,
+3147,
+3150,
+3154,
+3157,
+3160,
+3164,
+3167,
+3170,
+3174,
+3177,
+3180,
+3184,
+3187,
+3190,
+3193,
+3197,
+3200,
+3203,
+3207,
+3210,
+3213,
+3217,
+3220,
+3223,
+3227,
+3230,
+3233,
+3237,
+3240,
+3243,
+3247,
+3250,
+3253,
+]
+
+private let bid_exponents_binary80_20: [Int32] = [
+3257,
+3260,
+3263,
+3267,
+3270,
+3273,
+3277,
+3280,
+3283,
+3287,
+3290,
+3293,
+3296,
+3300,
+3303,
+3306,
+3310,
+3313,
+3316,
+3320,
+3323,
+3326,
+3330,
+3333,
+3336,
+3340,
+3343,
+3346,
+3350,
+3353,
+3356,
+3360,
+3363,
+3366,
+3370,
+3373,
+3376,
+3380,
+3383,
+3386,
+3389,
+3393,
+3396,
+3399,
+3403,
+3406,
+3409,
+3413,
+3416,
+3419,
+]
+
+private let bid_exponents_binary80_21: [Int32] = [
+3423,
+3426,
+3429,
+3433,
+3436,
+3439,
+3443,
+3446,
+3449,
+3453,
+3456,
+3459,
+3463,
+3466,
+3469,
+3473,
+3476,
+3479,
+3483,
+3486,
+3489,
+3492,
+3496,
+3499,
+3502,
+3506,
+3509,
+3512,
+3516,
+3519,
+3522,
+3526,
+3529,
+3532,
+3536,
+3539,
+3542,
+3546,
+3549,
+3552,
+3556,
+3559,
+3562,
+3566,
+3569,
+3572,
+3576,
+3579,
+3582,
+3585,
+]
+
+private let bid_exponents_binary80_22: [Int32] = [
+3589,
+3592,
+3595,
+3599,
+3602,
+3605,
+3609,
+3612,
+3615,
+3619,
+3622,
+3625,
+3629,
+3632,
+3635,
+3639,
+3642,
+3645,
+3649,
+3652,
+3655,
+3659,
+3662,
+3665,
+3669,
+3672,
+3675,
+3679,
+3682,
+3685,
+3688,
+3692,
+3695,
+3698,
+3702,
+3705,
+3708,
+3712,
+3715,
+3718,
+3722,
+3725,
+3728,
+3732,
+3735,
+3738,
+3742,
+3745,
+3748,
+3752,
+]
+
+private let bid_exponents_binary80_23: [Int32] = [
+3755,
+3758,
+3762,
+3765,
+3768,
+3772,
+3775,
+3778,
+3781,
+3785,
+3788,
+3791,
+3795,
+3798,
+3801,
+3805,
+3808,
+3811,
+3815,
+3818,
+3821,
+3825,
+3828,
+3831,
+3835,
+3838,
+3841,
+3845,
+3848,
+3851,
+3855,
+3858,
+3861,
+3865,
+3868,
+3871,
+3874,
+3878,
+3881,
+3884,
+3888,
+3891,
+3894,
+3898,
+3901,
+3904,
+3908,
+3911,
+3914,
+3918,
+]
+
+private let bid_exponents_binary80_24: [Int32] = [
+3921,
+3924,
+3928,
+3931,
+3934,
+3938,
+3941,
+3944,
+3948,
+3951,
+3954,
+3958,
+3961,
+3964,
+3968,
+3971,
+3974,
+3977,
+3981,
+3984,
+3987,
+3991,
+3994,
+3997,
+4001,
+4004,
+4007,
+4011,
+4014,
+4017,
+4021,
+4024,
+4027,
+4031,
+4034,
+4037,
+4041,
+4044,
+4047,
+4051,
+4054,
+4057,
+4061,
+4064,
+4067,
+4070,
+4074,
+4077,
+4080,
+4084,
+]
+
+private let bid_exponents_binary80_25: [Int32] = [
+4087,
+4090,
+4094,
+4097,
+4100,
+4104,
+4107,
+4110,
+4114,
+4117,
+4120,
+4124,
+4127,
+4130,
+4134,
+4137,
+4140,
+4144,
+4147,
+4150,
+4154,
+4157,
+4160,
+4164,
+4167,
+4170,
+4173,
+4177,
+4180,
+4183,
+4187,
+4190,
+4193,
+4197,
+4200,
+4203,
+4207,
+4210,
+4213,
+4217,
+4220,
+4223,
+4227,
+4230,
+4233,
+4237,
+4240,
+4243,
+4247,
+4250,
+]
+
+private let bid_exponents_binary80_26: [Int32] = [
+4253,
+4257,
+4260,
+4263,
+4266,
+4270,
+4273,
+4276,
+4280,
+4283,
+4286,
+4290,
+4293,
+4296,
+4300,
+4303,
+4306,
+4310,
+4313,
+4316,
+4320,
+4323,
+4326,
+4330,
+4333,
+4336,
+4340,
+4343,
+4346,
+4350,
+4353,
+4356,
+4359,
+4363,
+4366,
+4369,
+4373,
+4376,
+4379,
+4383,
+4386,
+4389,
+4393,
+4396,
+4399,
+4403,
+4406,
+4409,
+4413,
+4416,
+]
+
+private let bid_exponents_binary80_27: [Int32] = [
+4419,
+4423,
+4426,
+4429,
+4433,
+4436,
+4439,
+4443,
+4446,
+4449,
+4453,
+4456,
+4459,
+4462,
+4466,
+4469,
+4472,
+4476,
+4479,
+4482,
+4486,
+4489,
+4492,
+4496,
+4499,
+4502,
+4506,
+4509,
+4512,
+4516,
+4519,
+4522,
+4526,
+4529,
+4532,
+4536,
+4539,
+4542,
+4546,
+4549,
+4552,
+4555,
+4559,
+4562,
+4565,
+4569,
+4572,
+4575,
+4579,
+4582,
+]
+
+private let bid_exponents_binary80_28: [Int32] = [
+4585,
+4589,
+4592,
+4595,
+4599,
+4602,
+4605,
+4609,
+4612,
+4615,
+4619,
+4622,
+4625,
+4629,
+4632,
+4635,
+4639,
+4642,
+4645,
+4649,
+4652,
+4655,
+4658,
+4662,
+4665,
+4668,
+4672,
+4675,
+4678,
+4682,
+4685,
+4688,
+4692,
+4695,
+4698,
+4702,
+4705,
+4708,
+4712,
+4715,
+4718,
+4722,
+4725,
+4728,
+4732,
+4735,
+4738,
+4742,
+4745,
+4748,
+]
+
+private let bid_exponents_binary80_29: [Int32] = [
+4751,
+4755,
+4758,
+4761,
+4765,
+4768,
+4771,
+4775,
+4778,
+4781,
+4785,
+4788,
+4791,
+4795,
+4798,
+4801,
+4805,
+4808,
+4811,
+4815,
+4818,
+4821,
+4825,
+4828,
+4831,
+4835,
+4838,
+4841,
+4844,
+4848,
+4851,
+4854,
+4858,
+4861,
+4864,
+4868,
+4871,
+4874,
+4878,
+4881,
+4884,
+4888,
+4891,
+4894,
+4898,
+4901,
+4904,
+4908,
+4911,
+4914,
+]
+
+private let bid_exponents_binary80_30: [Int32] = [
+4918,
+4921,
+4924,
+4928,
+4931,
+4934,
+4938,
+4941,
+4944,
+4947,
+4951,
+4954,
+4957,
+4961,
+4964,
+4967,
+4971,
+4974,
+4977,
+4981,
+4984,
+4987,
+4991,
+4994,
+4997,
+5001,
+5004,
+5007,
+5011,
+5014,
+5017,
+5021,
+5024,
+5027,
+5031,
+5034,
+5037,
+5040,
+5044,
+5047,
+5050,
+5054,
+5057,
+5060,
+5064,
+5067,
+5070,
+5074,
+5077,
+5080,
+]
+
+private let bid_exponents_binary80_31: [Int32] = [
+5084,
+5087,
+5090,
+5094,
+5097,
+5100,
+5104,
+5107,
+5110,
+5114,
+5117,
+5120,
+5124,
+5127,
+5130,
+5134,
+5137,
+5140,
+5143,
+5147,
+5150,
+5153,
+5157,
+5160,
+5163,
+5167,
+5170,
+5173,
+5177,
+5180,
+5183,
+5187,
+5190,
+5193,
+5197,
+5200,
+5203,
+5207,
+5210,
+5213,
+5217,
+5220,
+5223,
+5227,
+5230,
+5233,
+5236,
+5240,
+5243,
+5246,
+]
+
+private let bid_exponents_binary80_32: [Int32] = [
+5250,
+5253,
+5256,
+5260,
+5263,
+5266,
+5270,
+5273,
+5276,
+5280,
+5283,
+5286,
+5290,
+5293,
+5296,
+5300,
+5303,
+5306,
+5310,
+5313,
+5316,
+5320,
+5323,
+5326,
+5329,
+5333,
+5336,
+5339,
+5343,
+5346,
+5349,
+5353,
+5356,
+5359,
+5363,
+5366,
+5369,
+5373,
+5376,
+5379,
+5383,
+5386,
+5389,
+5393,
+5396,
+5399,
+5403,
+5406,
+5409,
+5413,
+]
+
+private let bid_exponents_binary80_33: [Int32] = [
+5416,
+5419,
+5423,
+5426,
+5429,
+5432,
+5436,
+5439,
+5442,
+5446,
+5449,
+5452,
+5456,
+5459,
+5462,
+5466,
+5469,
+5472,
+5476,
+5479,
+5482,
+5486,
+5489,
+5492,
+5496,
+5499,
+5502,
+5506,
+5509,
+5512,
+5516,
+5519,
+5522,
+5525,
+5529,
+5532,
+5535,
+5539,
+5542,
+5545,
+5549,
+5552,
+5555,
+5559,
+5562,
+5565,
+5569,
+5572,
+5575,
+5579,
+]
+
+private let bid_exponents_binary80_34: [Int32] = [
+5582,
+5585,
+5589,
+5592,
+5595,
+5599,
+5602,
+5605,
+5609,
+5612,
+5615,
+5619,
+5622,
+5625,
+5628,
+5632,
+5635,
+5638,
+5642,
+5645,
+5648,
+5652,
+5655,
+5658,
+5662,
+5665,
+5668,
+5672,
+5675,
+5678,
+5682,
+5685,
+5688,
+5692,
+5695,
+5698,
+5702,
+5705,
+5708,
+5712,
+5715,
+5718,
+5721,
+5725,
+5728,
+5731,
+5735,
+5738,
+5741,
+5745,
+]
+
+private let bid_exponents_binary80_35: [Int32] = [
+5748,
+5751,
+5755,
+5758,
+5761,
+5765,
+5768,
+5771,
+5775,
+5778,
+5781,
+5785,
+5788,
+5791,
+5795,
+5798,
+5801,
+5805,
+5808,
+5811,
+5815,
+5818,
+5821,
+5824,
+5828,
+5831,
+5834,
+5838,
+5841,
+5844,
+5848,
+5851,
+5854,
+5858,
+5861,
+5864,
+5868,
+5871,
+5874,
+5878,
+5881,
+5884,
+5888,
+5891,
+5894,
+5898,
+5901,
+5904,
+5908,
+5911,
+]
+
+private let bid_exponents_binary80_36: [Int32] = [
+5914,
+5917,
+5921,
+5924,
+5927,
+5931,
+5934,
+5937,
+5941,
+5944,
+5947,
+5951,
+5954,
+5957,
+5961,
+5964,
+5967,
+5971,
+5974,
+5977,
+5981,
+5984,
+5987,
+5991,
+5994,
+5997,
+6001,
+6004,
+6007,
+6010,
+6014,
+6017,
+6020,
+6024,
+6027,
+6030,
+6034,
+6037,
+6040,
+6044,
+6047,
+6050,
+6054,
+6057,
+6060,
+6064,
+6067,
+6070,
+6074,
+6077,
+]
+
+private let bid_exponents_binary80_37: [Int32] = [
+6080,
+6084,
+6087,
+6090,
+6094,
+6097,
+6100,
+6104,
+6107,
+6110,
+6113,
+6117,
+6120,
+6123,
+6127,
+6130,
+6133,
+6137,
+6140,
+6143,
+6147,
+6150,
+6153,
+6157,
+6160,
+6163,
+6167,
+6170,
+6173,
+6177,
+6180,
+6183,
+6187,
+6190,
+6193,
+6197,
+6200,
+6203,
+6206,
+6210,
+6213,
+6216,
+6220,
+6223,
+6226,
+6230,
+6233,
+6236,
+6240,
+6243,
+]
+
+private let bid_exponents_binary80_38: [Int32] = [
+6246,
+6250,
+6253,
+6256,
+6260,
+6263,
+6266,
+6270,
+6273,
+6276,
+6280,
+6283,
+6286,
+6290,
+6293,
+6296,
+6300,
+6303,
+6306,
+6309,
+6313,
+6316,
+6319,
+6323,
+6326,
+6329,
+6333,
+6336,
+6339,
+6343,
+6346,
+6349,
+6353,
+6356,
+6359,
+6363,
+6366,
+6369,
+6373,
+6376,
+6379,
+6383,
+6386,
+6389,
+6393,
+6396,
+6399,
+6402,
+6406,
+6409,
+]
+
+private let bid_exponents_binary80_39: [Int32] = [
+6412,
+6416,
+6419,
+6422,
+6426,
+6429,
+6432,
+6436,
+6439,
+6442,
+6446,
+6449,
+6452,
+6456,
+6459,
+6462,
+6466,
+6469,
+6472,
+6476,
+6479,
+6482,
+6486,
+6489,
+6492,
+6495,
+6499,
+6502,
+6505,
+6509,
+6512,
+6515,
+6519,
+6522,
+6525,
+6529,
+6532,
+6535,
+6539,
+6542,
+6545,
+6549,
+6552,
+6555,
+6559,
+6562,
+6565,
+6569,
+6572,
+6575,
+]
+
+private let bid_exponents_binary80_40: [Int32] = [
+6579,
+6582,
+6585,
+6589,
+6592,
+6595,
+6598,
+6602,
+6605,
+6608,
+6612,
+6615,
+6618,
+6622,
+6625,
+6628,
+6632,
+6635,
+6638,
+6642,
+6645,
+6648,
+6652,
+6655,
+6658,
+6662,
+6665,
+6668,
+6672,
+6675,
+6678,
+6682,
+6685,
+6688,
+6691,
+6695,
+6698,
+6701,
+6705,
+6708,
+6711,
+6715,
+6718,
+6721,
+6725,
+6728,
+6731,
+6735,
+6738,
+6741,
+]
+
+private let bid_exponents_binary80_41: [Int32] = [
+6745,
+6748,
+6751,
+6755,
+6758,
+6761,
+6765,
+6768,
+6771,
+6775,
+6778,
+6781,
+6785,
+6788,
+6791,
+6794,
+6798,
+6801,
+6804,
+6808,
+6811,
+6814,
+6818,
+6821,
+6824,
+6828,
+6831,
+6834,
+6838,
+6841,
+6844,
+6848,
+6851,
+6854,
+6858,
+6861,
+6864,
+6868,
+6871,
+6874,
+6878,
+6881,
+6884,
+6887,
+6891,
+6894,
+6897,
+6901,
+6904,
+6907,
+]
+
+private let bid_exponents_binary80_42: [Int32] = [
+6911,
+6914,
+6917,
+6921,
+6924,
+6927,
+6931,
+6934,
+6937,
+6941,
+6944,
+6947,
+6951,
+6954,
+6957,
+6961,
+6964,
+6967,
+6971,
+6974,
+6977,
+6980,
+6984,
+6987,
+6990,
+6994,
+6997,
+7000,
+7004,
+7007,
+7010,
+7014,
+7017,
+7020,
+7024,
+7027,
+7030,
+7034,
+7037,
+7040,
+7044,
+7047,
+7050,
+7054,
+7057,
+7060,
+7064,
+7067,
+7070,
+7074,
+]
+
+private let bid_exponents_binary80_43: [Int32] = [
+7077,
+7080,
+7083,
+7087,
+7090,
+7093,
+7097,
+7100,
+7103,
+7107,
+7110,
+7113,
+7117,
+7120,
+7123,
+7127,
+7130,
+7133,
+7137,
+7140,
+7143,
+7147,
+7150,
+7153,
+7157,
+7160,
+7163,
+7167,
+7170,
+7173,
+7176,
+7180,
+7183,
+7186,
+7190,
+7193,
+7196,
+7200,
+7203,
+7206,
+7210,
+7213,
+7216,
+7220,
+7223,
+7226,
+7230,
+7233,
+7236,
+7240,
+]
+
+private let bid_exponents_binary80_44: [Int32] = [
+7243,
+7246,
+7250,
+7253,
+7256,
+7260,
+7263,
+7266,
+7270,
+7273,
+7276,
+7279,
+7283,
+7286,
+7289,
+7293,
+7296,
+7299,
+7303,
+7306,
+7309,
+7313,
+7316,
+7319,
+7323,
+7326,
+7329,
+7333,
+7336,
+7339,
+7343,
+7346,
+7349,
+7353,
+7356,
+7359,
+7363,
+7366,
+7369,
+7372,
+7376,
+7379,
+7382,
+7386,
+7389,
+7392,
+7396,
+7399,
+7402,
+7406,
+]
+
+private let bid_exponents_binary80_45: [Int32] = [
+7409,
+7412,
+7416,
+7419,
+7422,
+7426,
+7429,
+7432,
+7436,
+7439,
+7442,
+7446,
+7449,
+7452,
+7456,
+7459,
+7462,
+7465,
+7469,
+7472,
+7475,
+7479,
+7482,
+7485,
+7489,
+7492,
+7495,
+7499,
+7502,
+7505,
+7509,
+7512,
+7515,
+7519,
+7522,
+7525,
+7529,
+7532,
+7535,
+7539,
+7542,
+7545,
+7549,
+7552,
+7555,
+7559,
+7562,
+7565,
+7568,
+7572,
+]
+
+private let bid_exponents_binary80_46: [Int32] = [
+7575,
+7578,
+7582,
+7585,
+7588,
+7592,
+7595,
+7598,
+7602,
+7605,
+7608,
+7612,
+7615,
+7618,
+7622,
+7625,
+7628,
+7632,
+7635,
+7638,
+7642,
+7645,
+7648,
+7652,
+7655,
+7658,
+7661,
+7665,
+7668,
+7671,
+7675,
+7678,
+7681,
+7685,
+7688,
+7691,
+7695,
+7698,
+7701,
+7705,
+7708,
+7711,
+7715,
+7718,
+7721,
+7725,
+7728,
+7731,
+7735,
+7738,
+]
+
+private let bid_exponents_binary80_47: [Int32] = [
+7741,
+7745,
+7748,
+7751,
+7755,
+7758,
+7761,
+7764,
+7768,
+7771,
+7774,
+7778,
+7781,
+7784,
+7788,
+7791,
+7794,
+7798,
+7801,
+7804,
+7808,
+7811,
+7814,
+7818,
+7821,
+7824,
+7828,
+7831,
+7834,
+7838,
+7841,
+7844,
+7848,
+7851,
+7854,
+7857,
+7861,
+7864,
+7867,
+7871,
+7874,
+7877,
+7881,
+7884,
+7887,
+7891,
+7894,
+7897,
+7901,
+7904,
+]
+
+private let bid_exponents_binary80_48: [Int32] = [
+7907,
+7911,
+7914,
+7917,
+7921,
+7924,
+7927,
+7931,
+7934,
+7937,
+7941,
+7944,
+7947,
+7951,
+7954,
+7957,
+7960,
+7964,
+7967,
+7970,
+7974,
+7977,
+7980,
+7984,
+7987,
+7990,
+7994,
+7997,
+8000,
+8004,
+8007,
+8010,
+8014,
+8017,
+8020,
+8024,
+8027,
+8030,
+8034,
+8037,
+8040,
+8044,
+8047,
+8050,
+8053,
+8057,
+8060,
+8063,
+8067,
+8070,
+]
+
+private let bid_exponents_binary80_49: [Int32] = [
+8073,
+8077,
+8080,
+8083,
+8087,
+8090,
+8093,
+8097,
+8100,
+8103,
+8107,
+8110,
+8113,
+8117,
+8120,
+8123,
+8127,
+8130,
+8133,
+8137,
+8140,
+8143,
+8146,
+8150,
+8153,
+8156,
+8160,
+8163,
+8166,
+8170,
+8173,
+8176,
+8180,
+8183,
+8186,
+8190,
+8193,
+8196,
+8200,
+8203,
+8206,
+8210,
+8213,
+8216,
+8220,
+8223,
+8226,
+8230,
+8233,
+8236,
+]
+
+private let bid_exponents_binary80_50: [Int32] = [
+8240,
+8243,
+8246,
+8249,
+8253,
+8256,
+8259,
+8263,
+8266,
+8269,
+8273,
+8276,
+8279,
+8283,
+8286,
+8289,
+8293,
+8296,
+8299,
+8303,
+8306,
+8309,
+8313,
+8316,
+8319,
+8323,
+8326,
+8329,
+8333,
+8336,
+8339,
+8342,
+8346,
+8349,
+8352,
+8356,
+8359,
+8362,
+8366,
+8369,
+8372,
+8376,
+8379,
+8382,
+8386,
+8389,
+8392,
+8396,
+8399,
+8402,
+]
+
+private let bid_exponents_binary80_51: [Int32] = [
+8406,
+8409,
+8412,
+8416,
+8419,
+8422,
+8426,
+8429,
+8432,
+8436,
+8439,
+8442,
+8445,
+8449,
+8452,
+8455,
+8459,
+8462,
+8465,
+8469,
+8472,
+8475,
+8479,
+8482,
+8485,
+8489,
+8492,
+8495,
+8499,
+8502,
+8505,
+8509,
+8512,
+8515,
+8519,
+8522,
+8525,
+8529,
+8532,
+8535,
+8538,
+8542,
+8545,
+8548,
+8552,
+8555,
+8558,
+8562,
+8565,
+8568,
+]
+
+private let bid_exponents_binary80_52: [Int32] = [
+8572,
+8575,
+8578,
+8582,
+8585,
+8588,
+8592,
+8595,
+8598,
+8602,
+8605,
+8608,
+8612,
+8615,
+8618,
+8622,
+8625,
+8628,
+8631,
+8635,
+8638,
+8641,
+8645,
+8648,
+8651,
+8655,
+8658,
+8661,
+8665,
+8668,
+8671,
+8675,
+8678,
+8681,
+8685,
+8688,
+8691,
+8695,
+8698,
+8701,
+8705,
+8708,
+8711,
+8715,
+8718,
+8721,
+8725,
+8728,
+8731,
+8734,
+]
+
+private let bid_exponents_binary80_53: [Int32] = [
+8738,
+8741,
+8744,
+8748,
+8751,
+8754,
+8758,
+8761,
+8764,
+8768,
+8771,
+8774,
+8778,
+8781,
+8784,
+8788,
+8791,
+8794,
+8798,
+8801,
+8804,
+8808,
+8811,
+8814,
+8818,
+8821,
+8824,
+8827,
+8831,
+8834,
+8837,
+8841,
+8844,
+8847,
+8851,
+8854,
+8857,
+8861,
+8864,
+8867,
+8871,
+8874,
+8877,
+8881,
+8884,
+8887,
+8891,
+8894,
+8897,
+8901,
+]
+
+private let bid_exponents_binary80_54: [Int32] = [
+8904,
+8907,
+8911,
+8914,
+8917,
+8921,
+8924,
+8927,
+8930,
+8934,
+8937,
+8940,
+8944,
+8947,
+8950,
+8954,
+8957,
+8960,
+8964,
+8967,
+8970,
+8974,
+8977,
+8980,
+8984,
+8987,
+8990,
+8994,
+8997,
+9000,
+9004,
+9007,
+9010,
+9014,
+9017,
+9020,
+9023,
+9027,
+9030,
+9033,
+9037,
+9040,
+9043,
+9047,
+9050,
+9053,
+9057,
+9060,
+9063,
+9067,
+]
+
+private let bid_exponents_binary80_55: [Int32] = [
+9070,
+9073,
+9077,
+9080,
+9083,
+9087,
+9090,
+9093,
+9097,
+9100,
+9103,
+9107,
+9110,
+9113,
+9116,
+9120,
+9123,
+9126,
+9130,
+9133,
+9136,
+9140,
+9143,
+9146,
+9150,
+9153,
+9156,
+9160,
+9163,
+9166,
+9170,
+9173,
+9176,
+9180,
+9183,
+9186,
+9190,
+9193,
+9196,
+9200,
+9203,
+9206,
+9210,
+9213,
+9216,
+9219,
+9223,
+9226,
+9229,
+9233,
+]
+
+private let bid_exponents_binary80_56: [Int32] = [
+9236,
+9239,
+9243,
+9246,
+9249,
+9253,
+9256,
+9259,
+9263,
+9266,
+9269,
+9273,
+9276,
+9279,
+9283,
+9286,
+9289,
+9293,
+9296,
+9299,
+9303,
+9306,
+9309,
+9312,
+9316,
+9319,
+9322,
+9326,
+9329,
+9332,
+9336,
+9339,
+9342,
+9346,
+9349,
+9352,
+9356,
+9359,
+9362,
+9366,
+9369,
+9372,
+9376,
+9379,
+9382,
+9386,
+9389,
+9392,
+9396,
+9399,
+]
+
+private let bid_exponents_binary80_57: [Int32] = [
+9402,
+9406,
+9409,
+9412,
+9415,
+9419,
+9422,
+9425,
+9429,
+9432,
+9435,
+9439,
+9442,
+9445,
+9449,
+9452,
+9455,
+9459,
+9462,
+9465,
+9469,
+9472,
+9475,
+9479,
+9482,
+9485,
+9489,
+9492,
+9495,
+9499,
+9502,
+9505,
+9508,
+9512,
+9515,
+9518,
+9522,
+9525,
+9528,
+9532,
+9535,
+9538,
+9542,
+9545,
+9548,
+9552,
+9555,
+9558,
+9562,
+9565,
+]
+
+private let bid_exponents_binary80_58: [Int32] = [
+9568,
+9572,
+9575,
+9578,
+9582,
+9585,
+9588,
+9592,
+9595,
+9598,
+9601,
+9605,
+9608,
+9611,
+9615,
+9618,
+9621,
+9625,
+9628,
+9631,
+9635,
+9638,
+9641,
+9645,
+9648,
+9651,
+9655,
+9658,
+9661,
+9665,
+9668,
+9671,
+9675,
+9678,
+9681,
+9685,
+9688,
+9691,
+9695,
+9698,
+9701,
+9704,
+9708,
+9711,
+9714,
+9718,
+9721,
+9724,
+9728,
+9731,
+]
+
+private let bid_exponents_binary80_59: [Int32] = [
+9734,
+9738,
+9741,
+9744,
+9748,
+9751,
+9754,
+9758,
+9761,
+9764,
+9768,
+9771,
+9774,
+9778,
+9781,
+9784,
+9788,
+9791,
+9794,
+9797,
+9801,
+9804,
+9807,
+9811,
+9814,
+9817,
+9821,
+9824,
+9827,
+9831,
+9834,
+9837,
+9841,
+9844,
+9847,
+9851,
+9854,
+9857,
+9861,
+9864,
+9867,
+9871,
+9874,
+9877,
+9881,
+9884,
+9887,
+9891,
+9894,
+9897,
+]
+
+private let bid_exponents_binary80_60: [Int32] = [
+9900,
+9904,
+9907,
+9910,
+9914,
+9917,
+9920,
+9924,
+9927,
+9930,
+9934,
+9937,
+9940,
+9944,
+9947,
+9950,
+9954,
+9957,
+9960,
+9964,
+9967,
+9970,
+9974,
+9977,
+9980,
+9984,
+9987,
+9990,
+9993,
+9997,
+10000,
+10003,
+10007,
+10010,
+10013,
+10017,
+10020,
+10023,
+10027,
+10030,
+10033,
+10037,
+10040,
+10043,
+10047,
+10050,
+10053,
+10057,
+10060,
+10063,
+]
+
+private let bid_exponents_binary80_61: [Int32] = [
+10067,
+10070,
+10073,
+10077,
+10080,
+10083,
+10087,
+10090,
+10093,
+10096,
+10100,
+10103,
+10106,
+10110,
+10113,
+10116,
+10120,
+10123,
+10126,
+10130,
+10133,
+10136,
+10140,
+10143,
+10146,
+10150,
+10153,
+10156,
+10160,
+10163,
+10166,
+10170,
+10173,
+10176,
+10180,
+10183,
+10186,
+10189,
+10193,
+10196,
+10199,
+10203,
+10206,
+10209,
+10213,
+10216,
+10219,
+10223,
+10226,
+10229,
+]
+
+private let bid_exponents_binary80_62: [Int32] = [
+10233,
+10236,
+10239,
+10243,
+10246,
+10249,
+10253,
+10256,
+10259,
+10263,
+10266,
+10269,
+10273,
+10276,
+10279,
+10282,
+10286,
+10289,
+10292,
+10296,
+10299,
+10302,
+10306,
+10309,
+10312,
+10316,
+10319,
+10322,
+10326,
+10329,
+10332,
+10336,
+10339,
+10342,
+10346,
+10349,
+10352,
+10356,
+10359,
+10362,
+10366,
+10369,
+10372,
+10376,
+10379,
+10382,
+10385,
+10389,
+10392,
+10395,
+]
+
+private let bid_exponents_binary80_63: [Int32] = [
+10399,
+10402,
+10405,
+10409,
+10412,
+10415,
+10419,
+10422,
+10425,
+10429,
+10432,
+10435,
+10439,
+10442,
+10445,
+10449,
+10452,
+10455,
+10459,
+10462,
+10465,
+10469,
+10472,
+10475,
+10478,
+10482,
+10485,
+10488,
+10492,
+10495,
+10498,
+10502,
+10505,
+10508,
+10512,
+10515,
+10518,
+10522,
+10525,
+10528,
+10532,
+10535,
+10538,
+10542,
+10545,
+10548,
+10552,
+10555,
+10558,
+10562,
+]
+
+private let bid_exponents_binary80_64: [Int32] = [
+10565,
+10568,
+10572,
+10575,
+10578,
+10581,
+10585,
+10588,
+10591,
+10595,
+10598,
+10601,
+10605,
+10608,
+10611,
+10615,
+10618,
+10621,
+10625,
+10628,
+10631,
+10635,
+10638,
+10641,
+10645,
+10648,
+10651,
+10655,
+10658,
+10661,
+10665,
+10668,
+10671,
+10674,
+10678,
+10681,
+10684,
+10688,
+10691,
+10694,
+10698,
+10701,
+10704,
+10708,
+10711,
+10714,
+10718,
+10721,
+10724,
+10728,
+]
+
+private let bid_exponents_binary80_65: [Int32] = [
+10731,
+10734,
+10738,
+10741,
+10744,
+10748,
+10751,
+10754,
+10758,
+10761,
+10764,
+10767,
+10771,
+10774,
+10777,
+10781,
+10784,
+10787,
+10791,
+10794,
+10797,
+10801,
+10804,
+10807,
+10811,
+10814,
+10817,
+10821,
+10824,
+10827,
+10831,
+10834,
+10837,
+10841,
+10844,
+10847,
+10851,
+10854,
+10857,
+10861,
+10864,
+10867,
+10870,
+10874,
+10877,
+10880,
+10884,
+10887,
+10890,
+10894,
+]
+
+private let bid_exponents_binary80_66: [Int32] = [
+10897,
+10900,
+10904,
+10907,
+10910,
+10914,
+10917,
+10920,
+10924,
+10927,
+10930,
+10934,
+10937,
+10940,
+10944,
+10947,
+10950,
+10954,
+10957,
+10960,
+10963,
+10967,
+10970,
+10973,
+10977,
+10980,
+10983,
+10987,
+10990,
+10993,
+10997,
+11000,
+11003,
+11007,
+11010,
+11013,
+11017,
+11020,
+11023,
+11027,
+11030,
+11033,
+11037,
+11040,
+11043,
+11047,
+11050,
+11053,
+11057,
+11060,
+]
+
+private let bid_exponents_binary80_67: [Int32] = [
+11063,
+11066,
+11070,
+11073,
+11076,
+11080,
+11083,
+11086,
+11090,
+11093,
+11096,
+11100,
+11103,
+11106,
+11110,
+11113,
+11116,
+11120,
+11123,
+11126,
+11130,
+11133,
+11136,
+11140,
+11143,
+11146,
+11150,
+11153,
+11156,
+11159,
+11163,
+11166,
+11169,
+11173,
+11176,
+11179,
+11183,
+11186,
+11189,
+11193,
+11196,
+11199,
+11203,
+11206,
+11209,
+11213,
+11216,
+11219,
+11223,
+11226,
+]
+
+private let bid_exponents_binary80_68: [Int32] = [
+11229,
+11233,
+11236,
+11239,
+11243,
+11246,
+11249,
+11252,
+11256,
+11259,
+11262,
+11266,
+11269,
+11272,
+11276,
+11279,
+11282,
+11286,
+11289,
+11292,
+11296,
+11299,
+11302,
+11306,
+11309,
+11312,
+11316,
+11319,
+11322,
+11326,
+11329,
+11332,
+11336,
+11339,
+11342,
+11346,
+11349,
+11352,
+11355,
+11359,
+11362,
+11365,
+11369,
+11372,
+11375,
+11379,
+11382,
+11385,
+11389,
+11392,
+]
+
+private let bid_exponents_binary80_69: [Int32] = [
+11395,
+11399,
+11402,
+11405,
+11409,
+11412,
+11415,
+11419,
+11422,
+11425,
+11429,
+11432,
+11435,
+11439,
+11442,
+11445,
+11448,
+11452,
+11455,
+11458,
+11462,
+11465,
+11468,
+11472,
+11475,
+11478,
+11482,
+11485,
+11488,
+11492,
+11495,
+11498,
+11502,
+11505,
+11508,
+11512,
+11515,
+11518,
+11522,
+11525,
+11528,
+11532,
+11535,
+11538,
+11542,
+11545,
+11548,
+11551,
+11555,
+11558,
+]
+
+private let bid_exponents_binary80_70: [Int32] = [
+11561,
+11565,
+11568,
+11571,
+11575,
+11578,
+11581,
+11585,
+11588,
+11591,
+11595,
+11598,
+11601,
+11605,
+11608,
+11611,
+11615,
+11618,
+11621,
+11625,
+11628,
+11631,
+11635,
+11638,
+11641,
+11644,
+11648,
+11651,
+11654,
+11658,
+11661,
+11664,
+11668,
+11671,
+11674,
+11678,
+11681,
+11684,
+11688,
+11691,
+11694,
+11698,
+11701,
+11704,
+11708,
+11711,
+11714,
+11718,
+11721,
+11724,
+]
+
+private let bid_exponents_binary80_71: [Int32] = [
+11728,
+11731,
+11734,
+11737,
+11741,
+11744,
+11747,
+11751,
+11754,
+11757,
+11761,
+11764,
+11767,
+11771,
+11774,
+11777,
+11781,
+11784,
+11787,
+11791,
+11794,
+11797,
+11801,
+11804,
+11807,
+11811,
+11814,
+11817,
+11821,
+11824,
+11827,
+11831,
+11834,
+11837,
+11840,
+11844,
+11847,
+11850,
+11854,
+11857,
+11860,
+11864,
+11867,
+11870,
+11874,
+11877,
+11880,
+11884,
+11887,
+11890,
+]
+
+private let bid_exponents_binary80_72: [Int32] = [
+11894,
+11897,
+11900,
+11904,
+11907,
+11910,
+11914,
+11917,
+11920,
+11924,
+11927,
+11930,
+11933,
+11937,
+11940,
+11943,
+11947,
+11950,
+11953,
+11957,
+11960,
+11963,
+11967,
+11970,
+11973,
+11977,
+11980,
+11983,
+11987,
+11990,
+11993,
+11997,
+12000,
+12003,
+12007,
+12010,
+12013,
+12017,
+12020,
+12023,
+12027,
+12030,
+12033,
+12036,
+12040,
+12043,
+12046,
+12050,
+12053,
+12056,
+]
+
+private let bid_exponents_binary80_73: [Int32] = [
+12060,
+12063,
+12066,
+12070,
+12073,
+12076,
+12080,
+12083,
+12086,
+12090,
+12093,
+12096,
+12100,
+12103,
+12106,
+12110,
+12113,
+12116,
+12120,
+12123,
+12126,
+12129,
+12133,
+12136,
+12139,
+12143,
+12146,
+12149,
+12153,
+12156,
+12159,
+12163,
+12166,
+12169,
+12173,
+12176,
+12179,
+12183,
+12186,
+12189,
+12193,
+12196,
+12199,
+12203,
+12206,
+12209,
+12213,
+12216,
+12219,
+12223,
+]
+
+private let bid_exponents_binary80_74: [Int32] = [
+12226,
+12229,
+12232,
+12236,
+12239,
+12242,
+12246,
+12249,
+12252,
+12256,
+12259,
+12262,
+12266,
+12269,
+12272,
+12276,
+12279,
+12282,
+12286,
+12289,
+12292,
+12296,
+12299,
+12302,
+12306,
+12309,
+12312,
+12316,
+12319,
+12322,
+12325,
+12329,
+12332,
+12335,
+12339,
+12342,
+12345,
+12349,
+12352,
+12355,
+12359,
+12362,
+12365,
+12369,
+12372,
+12375,
+12379,
+12382,
+12385,
+12389,
+]
+
+private let bid_exponents_binary80_75: [Int32] = [
+12392,
+12395,
+12399,
+12402,
+12405,
+12409,
+12412,
+12415,
+12418,
+12422,
+12425,
+12428,
+12432,
+12435,
+12438,
+12442,
+12445,
+12448,
+12452,
+12455,
+12458,
+12462,
+12465,
+12468,
+12472,
+12475,
+12478,
+12482,
+12485,
+12488,
+12492,
+12495,
+12498,
+12502,
+12505,
+12508,
+12512,
+12515,
+12518,
+12521,
+12525,
+12528,
+12531,
+12535,
+12538,
+12541,
+12545,
+12548,
+12551,
+12555,
+]
+
+private let bid_exponents_binary80_76: [Int32] = [
+12558,
+12561,
+12565,
+12568,
+12571,
+12575,
+12578,
+12581,
+12585,
+12588,
+12591,
+12595,
+12598,
+12601,
+12605,
+12608,
+12611,
+12614,
+12618,
+12621,
+12624,
+12628,
+12631,
+12634,
+12638,
+12641,
+12644,
+12648,
+12651,
+12654,
+12658,
+12661,
+12664,
+12668,
+12671,
+12674,
+12678,
+12681,
+12684,
+12688,
+12691,
+12694,
+12698,
+12701,
+12704,
+12708,
+12711,
+12714,
+12717,
+12721,
+]
+
+private let bid_exponents_binary80_77: [Int32] = [
+12724,
+12727,
+12731,
+12734,
+12737,
+12741,
+12744,
+12747,
+12751,
+12754,
+12757,
+12761,
+12764,
+12767,
+12771,
+12774,
+12777,
+12781,
+12784,
+12787,
+12791,
+12794,
+12797,
+12801,
+12804,
+12807,
+12810,
+12814,
+12817,
+12820,
+12824,
+12827,
+12830,
+12834,
+12837,
+12840,
+12844,
+12847,
+12850,
+12854,
+12857,
+12860,
+12864,
+12867,
+12870,
+12874,
+12877,
+12880,
+12884,
+12887,
+]
+
+private let bid_exponents_binary80_78: [Int32] = [
+12890,
+12894,
+12897,
+12900,
+12903,
+12907,
+12910,
+12913,
+12917,
+12920,
+12923,
+12927,
+12930,
+12933,
+12937,
+12940,
+12943,
+12947,
+12950,
+12953,
+12957,
+12960,
+12963,
+12967,
+12970,
+12973,
+12977,
+12980,
+12983,
+12987,
+12990,
+12993,
+12997,
+13000,
+13003,
+13006,
+13010,
+13013,
+13016,
+13020,
+13023,
+13026,
+13030,
+13033,
+13036,
+13040,
+13043,
+13046,
+13050,
+13053,
+]
+
+private let bid_exponents_binary80_79: [Int32] = [
+13056,
+13060,
+13063,
+13066,
+13070,
+13073,
+13076,
+13080,
+13083,
+13086,
+13090,
+13093,
+13096,
+13099,
+13103,
+13106,
+13109,
+13113,
+13116,
+13119,
+13123,
+13126,
+13129,
+13133,
+13136,
+13139,
+13143,
+13146,
+13149,
+13153,
+13156,
+13159,
+13163,
+13166,
+13169,
+13173,
+13176,
+13179,
+13183,
+13186,
+13189,
+13193,
+13196,
+13199,
+13202,
+13206,
+13209,
+13212,
+13216,
+13219,
+]
+
+private let bid_exponents_binary80_80: [Int32] = [
+13222,
+13226,
+13229,
+13232,
+13236,
+13239,
+13242,
+13246,
+13249,
+13252,
+13256,
+13259,
+13262,
+13266,
+13269,
+13272,
+13276,
+13279,
+13282,
+13286,
+13289,
+13292,
+13295,
+13299,
+13302,
+13305,
+13309,
+13312,
+13315,
+13319,
+13322,
+13325,
+13329,
+13332,
+13335,
+13339,
+13342,
+13345,
+13349,
+13352,
+13355,
+13359,
+13362,
+13365,
+13369,
+13372,
+13375,
+13379,
+13382,
+13385,
+]
+
+private let bid_exponents_binary80_81: [Int32] = [
+13388,
+13392,
+13395,
+13398,
+13402,
+13405,
+13408,
+13412,
+13415,
+13418,
+13422,
+13425,
+13428,
+13432,
+13435,
+13438,
+13442,
+13445,
+13448,
+13452,
+13455,
+13458,
+13462,
+13465,
+13468,
+13472,
+13475,
+13478,
+13482,
+13485,
+13488,
+13491,
+13495,
+13498,
+13501,
+13505,
+13508,
+13511,
+13515,
+13518,
+13521,
+13525,
+13528,
+13531,
+13535,
+13538,
+13541,
+13545,
+13548,
+13551,
+]
+
+private let bid_exponents_binary80_82: [Int32] = [
+13555,
+13558,
+13561,
+13565,
+13568,
+13571,
+13575,
+13578,
+13581,
+13584,
+13588,
+13591,
+13594,
+13598,
+13601,
+13604,
+13608,
+13611,
+13614,
+13618,
+13621,
+13624,
+13628,
+13631,
+13634,
+13638,
+13641,
+13644,
+13648,
+13651,
+13654,
+13658,
+13661,
+13664,
+13668,
+13671,
+13674,
+13678,
+13681,
+13684,
+13687,
+13691,
+13694,
+13697,
+13701,
+13704,
+13707,
+13711,
+13714,
+13717,
+]
+
+private let bid_exponents_binary80_83: [Int32] = [
+13721,
+13724,
+13727,
+13731,
+13734,
+13737,
+13741,
+13744,
+13747,
+13751,
+13754,
+13757,
+13761,
+13764,
+13767,
+13771,
+13774,
+13777,
+13780,
+13784,
+13787,
+13790,
+13794,
+13797,
+13800,
+13804,
+13807,
+13810,
+13814,
+13817,
+13820,
+13824,
+13827,
+13830,
+13834,
+13837,
+13840,
+13844,
+13847,
+13850,
+13854,
+13857,
+13860,
+13864,
+13867,
+13870,
+13873,
+13877,
+13880,
+13883,
+]
+
+private let bid_exponents_binary80_84: [Int32] = [
+13887,
+13890,
+13893,
+13897,
+13900,
+13903,
+13907,
+13910,
+13913,
+13917,
+13920,
+13923,
+13927,
+13930,
+13933,
+13937,
+13940,
+13943,
+13947,
+13950,
+13953,
+13957,
+13960,
+13963,
+13967,
+13970,
+13973,
+13976,
+13980,
+13983,
+13986,
+13990,
+13993,
+13996,
+14000,
+14003,
+14006,
+14010,
+14013,
+14016,
+14020,
+14023,
+14026,
+14030,
+14033,
+14036,
+14040,
+14043,
+14046,
+14050,
+]
+
+private let bid_exponents_binary80_85: [Int32] = [
+14053,
+14056,
+14060,
+14063,
+14066,
+14069,
+14073,
+14076,
+14079,
+14083,
+14086,
+14089,
+14093,
+14096,
+14099,
+14103,
+14106,
+14109,
+14113,
+14116,
+14119,
+14123,
+14126,
+14129,
+14133,
+14136,
+14139,
+14143,
+14146,
+14149,
+14153,
+14156,
+14159,
+14163,
+14166,
+14169,
+14172,
+14176,
+14179,
+14182,
+14186,
+14189,
+14192,
+14196,
+14199,
+14202,
+14206,
+14209,
+14212,
+14216,
+]
+
+private let bid_exponents_binary80_86: [Int32] = [
+14219,
+14222,
+14226,
+14229,
+14232,
+14236,
+14239,
+14242,
+14246,
+14249,
+14252,
+14256,
+14259,
+14262,
+14265,
+14269,
+14272,
+14275,
+14279,
+14282,
+14285,
+14289,
+14292,
+14295,
+14299,
+14302,
+14305,
+14309,
+14312,
+14315,
+14319,
+14322,
+14325,
+14329,
+14332,
+14335,
+14339,
+14342,
+14345,
+14349,
+14352,
+14355,
+14359,
+14362,
+14365,
+14368,
+14372,
+14375,
+14378,
+14382,
+]
+
+private let bid_exponents_binary80_87: [Int32] = [
+14385,
+14388,
+14392,
+14395,
+14398,
+14402,
+14405,
+14408,
+14412,
+14415,
+14418,
+14422,
+14425,
+14428,
+14432,
+14435,
+14438,
+14442,
+14445,
+14448,
+14452,
+14455,
+14458,
+14461,
+14465,
+14468,
+14471,
+14475,
+14478,
+14481,
+14485,
+14488,
+14491,
+14495,
+14498,
+14501,
+14505,
+14508,
+14511,
+14515,
+14518,
+14521,
+14525,
+14528,
+14531,
+14535,
+14538,
+14541,
+14545,
+14548,
+]
+
+private let bid_exponents_binary80_88: [Int32] = [
+14551,
+14554,
+14558,
+14561,
+14564,
+14568,
+14571,
+14574,
+14578,
+14581,
+14584,
+14588,
+14591,
+14594,
+14598,
+14601,
+14604,
+14608,
+14611,
+14614,
+14618,
+14621,
+14624,
+14628,
+14631,
+14634,
+14638,
+14641,
+14644,
+14648,
+14651,
+14654,
+14657,
+14661,
+14664,
+14667,
+14671,
+14674,
+14677,
+14681,
+14684,
+14687,
+14691,
+14694,
+14697,
+14701,
+14704,
+14707,
+14711,
+14714,
+]
+
+private let bid_exponents_binary80_89: [Int32] = [
+14717,
+14721,
+14724,
+14727,
+14731,
+14734,
+14737,
+14741,
+14744,
+14747,
+14750,
+14754,
+14757,
+14760,
+14764,
+14767,
+14770,
+14774,
+14777,
+14780,
+14784,
+14787,
+14790,
+14794,
+14797,
+14800,
+14804,
+14807,
+14810,
+14814,
+14817,
+14820,
+14824,
+14827,
+14830,
+14834,
+14837,
+14840,
+14844,
+14847,
+14850,
+14853,
+14857,
+14860,
+14863,
+14867,
+14870,
+14873,
+14877,
+14880,
+]
+
+private let bid_exponents_binary80_90: [Int32] = [
+14883,
+14887,
+14890,
+14893,
+14897,
+14900,
+14903,
+14907,
+14910,
+14913,
+14917,
+14920,
+14923,
+14927,
+14930,
+14933,
+14937,
+14940,
+14943,
+14946,
+14950,
+14953,
+14956,
+14960,
+14963,
+14966,
+14970,
+14973,
+14976,
+14980,
+14983,
+14986,
+14990,
+14993,
+14996,
+15000,
+15003,
+15006,
+15010,
+15013,
+15016,
+15020,
+15023,
+15026,
+15030,
+15033,
+15036,
+15039,
+15043,
+15046,
+]
+
+private let bid_exponents_binary80_91: [Int32] = [
+15049,
+15053,
+15056,
+15059,
+15063,
+15066,
+15069,
+15073,
+15076,
+15079,
+15083,
+15086,
+15089,
+15093,
+15096,
+15099,
+15103,
+15106,
+15109,
+15113,
+15116,
+15119,
+15123,
+15126,
+15129,
+15133,
+15136,
+15139,
+15142,
+15146,
+15149,
+15152,
+15156,
+15159,
+15162,
+15166,
+15169,
+15172,
+15176,
+15179,
+15182,
+15186,
+15189,
+15192,
+15196,
+15199,
+15202,
+15206,
+15209,
+15212,
+]
+
+private let bid_exponents_binary80_92: [Int32] = [
+15216,
+15219,
+15222,
+15226,
+15229,
+15232,
+15235,
+15239,
+15242,
+15245,
+15249,
+15252,
+15255,
+15259,
+15262,
+15265,
+15269,
+15272,
+15275,
+15279,
+15282,
+15285,
+15289,
+15292,
+15295,
+15299,
+15302,
+15305,
+15309,
+15312,
+15315,
+15319,
+15322,
+15325,
+15329,
+15332,
+15335,
+15338,
+15342,
+15345,
+15348,
+15352,
+15355,
+15358,
+15362,
+15365,
+15368,
+15372,
+15375,
+15378,
+]
+
+private let bid_exponents_binary80_93: [Int32] = [
+15382,
+15385,
+15388,
+15392,
+15395,
+15398,
+15402,
+15405,
+15408,
+15412,
+15415,
+15418,
+15422,
+15425,
+15428,
+15431,
+15435,
+15438,
+15441,
+15445,
+15448,
+15451,
+15455,
+15458,
+15461,
+15465,
+15468,
+15471,
+15475,
+15478,
+15481,
+15485,
+15488,
+15491,
+15495,
+15498,
+15501,
+15505,
+15508,
+15511,
+15515,
+15518,
+15521,
+15524,
+15528,
+15531,
+15534,
+15538,
+15541,
+15544,
+]
+
+private let bid_exponents_binary80_94: [Int32] = [
+15548,
+15551,
+15554,
+15558,
+15561,
+15564,
+15568,
+15571,
+15574,
+15578,
+15581,
+15584,
+15588,
+15591,
+15594,
+15598,
+15601,
+15604,
+15608,
+15611,
+15614,
+15618,
+15621,
+15624,
+15627,
+15631,
+15634,
+15637,
+15641,
+15644,
+15647,
+15651,
+15654,
+15657,
+15661,
+15664,
+15667,
+15671,
+15674,
+15677,
+15681,
+15684,
+15687,
+15691,
+15694,
+15697,
+15701,
+15704,
+15707,
+15711,
+]
+
+private let bid_exponents_binary80_95: [Int32] = [
+15714,
+15717,
+15720,
+15724,
+15727,
+15730,
+15734,
+15737,
+15740,
+15744,
+15747,
+15750,
+15754,
+15757,
+15760,
+15764,
+15767,
+15770,
+15774,
+15777,
+15780,
+15784,
+15787,
+15790,
+15794,
+15797,
+15800,
+15804,
+15807,
+15810,
+15814,
+15817,
+15820,
+15823,
+15827,
+15830,
+15833,
+15837,
+15840,
+15843,
+15847,
+15850,
+15853,
+15857,
+15860,
+15863,
+15867,
+15870,
+15873,
+15877,
+]
+
+private let bid_exponents_binary80_96: [Int32] = [
+15880,
+15883,
+15887,
+15890,
+15893,
+15897,
+15900,
+15903,
+15907,
+15910,
+15913,
+15916,
+15920,
+15923,
+15926,
+15930,
+15933,
+15936,
+15940,
+15943,
+15946,
+15950,
+15953,
+15956,
+15960,
+15963,
+15966,
+15970,
+15973,
+15976,
+15980,
+15983,
+15986,
+15990,
+15993,
+15996,
+16000,
+16003,
+16006,
+16009,
+16013,
+16016,
+16019,
+16023,
+16026,
+16029,
+16033,
+16036,
+16039,
+16043,
+]
+
+private let bid_exponents_binary80_97: [Int32] = [
+16046,
+16049,
+16053,
+16056,
+16059,
+16063,
+16066,
+16069,
+16073,
+16076,
+16079,
+16083,
+16086,
+16089,
+16093,
+16096,
+16099,
+16103,
+16106,
+16109,
+16112,
+16116,
+16119,
+16122,
+16126,
+16129,
+16132,
+16136,
+16139,
+16142,
+16146,
+16149,
+16152,
+16156,
+16159,
+16162,
+16166,
+16169,
+16172,
+16176,
+16179,
+16182,
+16186,
+16189,
+16192,
+16196,
+16199,
+16202,
+16205,
+16209,
+]
+
+private let bid_exponents_binary80_98: [Int32] = [
+16212,
+16215,
+16219,
+16222,
+16225,
+16229,
+16232,
+16235,
+16239,
+16242,
+16245,
+16249,
+16252,
+16255,
+16259,
+16262,
+16265,
+16269,
+16272,
+16275,
+16279,
+16282,
+16285,
+16289,
+16292,
+16295,
+16299,
+16302,
+16305,
+16308,
+16312,
+16315,
+16318,
+16322,
+16325,
+16328,
+16332,
+16335,
+16338,
+16342,
+16345,
+16348,
+16352,
+16355,
+16358,
+16362,
+16365,
+16368,
+16372,
+16375,
+]
+
+private let bid_exponents_binary80_99: [Int32] = [
+16378,
+16382,
+16385,
+16388,
+16392,
+16395,
+16398,
+16401,
+16405,
+16408,
+16411,
+16415,
+16418,
+16421,
+16425,
+16428,
+16431,
+16435,
+16438,
+16441,
+16445,
+16448,
+16451,
+16455,
+16458,
+16461,
+16465,
+16468,
+16471,
+16475,
+16478,
+16481,
+16485,
+16488,
+16491,
+16494,
+16498,
+16501,
+16504,
+16508,
+16511,
+16514,
+16518,
+16521,
+16524,
+16528,
+16531,
+16534,
+16538,
+16541,
+]
+
+private let bid_exponents_binary80_100: [Int32] = [
+16544,
+16548,
+16551,
+16554,
+16558,
+16561,
+16564,
+16568,
+16571,
+16574,
+16578,
+16581,
+16584,
+16588,
+16591,
+16594,
+16597,
+16601,
+16604,
+16607,
+16611,
+16614,
+16617,
+16621,
+16624,
+16627,
+16631,
+16634,
+16637,
+16641,
+16644,
+16647,
+16651,
+16654,
+16657,
+16661,
+16664,
+16667,
+16671,
+16674,
+16677,
+16681,
+16684,
+16687,
+16690,
+16694,
+16697,
+16700,
+16704,
+16707,
+]
+
+private let bid_exponents_binary80_101: [Int32] = [
+16710,
+16714,
+16717,
+16720,
+16724,
+16727,
+16730,
+16734,
+16737,
+16740,
+16744,
+16747,
+16750,
+16754,
+16757,
+16760,
+16764,
+16767,
+16770,
+16774,
+16777,
+16780,
+16784,
+16787,
+16790,
+16793,
+16797,
+16800,
+16803,
+16807,
+16810,
+16813,
+16817,
+16820,
+16823,
+16827,
+16830,
+16833,
+16837,
+16840,
+16843,
+16847,
+16850,
+16853,
+16857,
+16860,
+16863,
+16867,
+16870,
+16873,
+]
+
+private let bid_exponents_binary80_102: [Int32] = [
+16877,
+16880,
+16883,
+16886,
+16890,
+16893,
+16896,
+16900,
+16903,
+16906,
+16910,
+16913,
+16916,
+16920,
+16923,
+16926,
+16930,
+16933,
+16936,
+16940,
+16943,
+16946,
+16950,
+16953,
+16956,
+16960,
+16963,
+16966,
+16970,
+16973,
+16976,
+16980,
+16983,
+16986,
+16989,
+16993,
+16996,
+16999,
+17003,
+17006,
+17009,
+17013,
+17016,
+17019,
+17023,
+17026,
+17029,
+17033,
+17036,
+17039,
+]
+
+private let bid_exponents_binary80_103: [Int32] = [
+17043,
+17046,
+17049,
+17053,
+17056,
+17059,
+17063,
+17066,
+17069,
+17073,
+17076,
+17079,
+17082,
+17086,
+17089,
+17092,
+17096,
+17099,
+17102,
+17106,
+17109,
+17112,
+17116,
+17119,
+17122,
+17126,
+17129,
+17132,
+17136,
+17139,
+17142,
+17146,
+17149,
+17152,
+17156,
+17159,
+17162,
+17166,
+17169,
+17172,
+17175,
+17179,
+17182,
+17185,
+17189,
+17192,
+17195,
+17199,
+17202,
+17205,
+]
+
+private let bid_exponents_binary80_104: [Int32] = [
+17209,
+17212,
+17215,
+17219,
+17222,
+17225,
+17229,
+17232,
+17235,
+17239,
+17242,
+17245,
+17249,
+17252,
+17255,
+17259,
+17262,
+17265,
+17269,
+17272,
+17275,
+17278,
+17282,
+17285,
+17288,
+17292,
+17295,
+17298,
+17302,
+17305,
+17308,
+17312,
+17315,
+17318,
+17322,
+17325,
+17328,
+17332,
+17335,
+17338,
+17342,
+17345,
+17348,
+17352,
+17355,
+17358,
+17362,
+17365,
+17368,
+17371,
+]
+
+private let bid_exponents_binary80_105: [Int32] = [
+17375,
+17378,
+17381,
+17385,
+17388,
+17391,
+17395,
+17398,
+17401,
+17405,
+17408,
+17411,
+17415,
+17418,
+17421,
+17425,
+17428,
+17431,
+17435,
+17438,
+17441,
+17445,
+17448,
+17451,
+17455,
+17458,
+17461,
+17465,
+17468,
+17471,
+17474,
+17478,
+17481,
+17484,
+17488,
+17491,
+17494,
+17498,
+17501,
+17504,
+17508,
+17511,
+17514,
+17518,
+17521,
+17524,
+17528,
+17531,
+17534,
+17538,
+]
+
+private let bid_exponents_binary80_106: [Int32] = [
+17541,
+17544,
+17548,
+17551,
+17554,
+17558,
+17561,
+17564,
+17567,
+17571,
+17574,
+17577,
+17581,
+17584,
+17587,
+17591,
+17594,
+17597,
+17601,
+17604,
+17607,
+17611,
+17614,
+17617,
+17621,
+17624,
+17627,
+17631,
+17634,
+17637,
+17641,
+17644,
+17647,
+17651,
+17654,
+17657,
+17660,
+17664,
+17667,
+17670,
+17674,
+17677,
+17680,
+17684,
+17687,
+17690,
+17694,
+17697,
+17700,
+17704,
+]
+
+private let bid_exponents_binary80_107: [Int32] = [
+17707,
+17710,
+17714,
+17717,
+17720,
+17724,
+17727,
+17730,
+17734,
+17737,
+17740,
+17744,
+17747,
+17750,
+17754,
+17757,
+17760,
+17763,
+17767,
+17770,
+17773,
+17777,
+17780,
+17783,
+17787,
+17790,
+17793,
+17797,
+17800,
+17803,
+17807,
+17810,
+17813,
+17817,
+17820,
+17823,
+17827,
+17830,
+17833,
+17837,
+17840,
+17843,
+17847,
+17850,
+17853,
+17856,
+17860,
+17863,
+17866,
+17870,
+]
+
+private let bid_exponents_binary80_108: [Int32] = [
+17873,
+17876,
+17880,
+17883,
+17886,
+17890,
+17893,
+17896,
+17900,
+17903,
+17906,
+17910,
+17913,
+17916,
+17920,
+17923,
+17926,
+17930,
+17933,
+17936,
+17940,
+17943,
+17946,
+17950,
+17953,
+17956,
+17959,
+17963,
+17966,
+17969,
+17973,
+17976,
+17979,
+17983,
+17986,
+17989,
+17993,
+17996,
+17999,
+18003,
+18006,
+18009,
+18013,
+18016,
+18019,
+18023,
+18026,
+18029,
+18033,
+18036,
+]
+
+private let bid_exponents_binary80_109: [Int32] = [
+18039,
+18043,
+18046,
+18049,
+18052,
+18056,
+18059,
+18062,
+18066,
+18069,
+18072,
+18076,
+18079,
+18082,
+18086,
+18089,
+18092,
+18096,
+18099,
+18102,
+18106,
+18109,
+18112,
+18116,
+18119,
+18122,
+18126,
+18129,
+18132,
+18136,
+18139,
+18142,
+18145,
+18149,
+18152,
+18155,
+18159,
+18162,
+18165,
+18169,
+18172,
+18175,
+18179,
+18182,
+18185,
+18189,
+18192,
+18195,
+18199,
+18202,
+]
+
+private let bid_exponents_binary80_110: [Int32] = [
+18205,
+18209,
+18212,
+18215,
+18219,
+18222,
+18225,
+18229,
+18232,
+18235,
+18239,
+18242,
+18245,
+18248,
+18252,
+18255,
+18258,
+18262,
+18265,
+18268,
+18272,
+18275,
+18278,
+18282,
+18285,
+18288,
+18292,
+18295,
+18298,
+18302,
+18305,
+18308,
+18312,
+18315,
+18318,
+18322,
+18325,
+18328,
+18332,
+18335,
+18338,
+18341,
+18345,
+18348,
+18351,
+18355,
+18358,
+18361,
+18365,
+18368,
+]
+
+private let bid_exponents_binary80_111: [Int32] = [
+18371,
+18375,
+18378,
+18381,
+18385,
+18388,
+18391,
+18395,
+18398,
+18401,
+18405,
+18408,
+18411,
+18415,
+18418,
+18421,
+18425,
+18428,
+18431,
+18435,
+18438,
+18441,
+18444,
+18448,
+18451,
+18454,
+18458,
+18461,
+18464,
+18468,
+18471,
+18474,
+18478,
+18481,
+18484,
+18488,
+18491,
+18494,
+18498,
+18501,
+18504,
+18508,
+18511,
+18514,
+18518,
+18521,
+18524,
+18528,
+18531,
+18534,
+]
+
+private let bid_exponents_binary80_112: [Int32] = [
+18537,
+18541,
+18544,
+18547,
+18551,
+18554,
+18557,
+18561,
+18564,
+18567,
+18571,
+18574,
+18577,
+18581,
+18584,
+18587,
+18591,
+18594,
+18597,
+18601,
+18604,
+18607,
+18611,
+18614,
+18617,
+18621,
+18624,
+18627,
+18630,
+18634,
+18637,
+18640,
+18644,
+18647,
+18650,
+18654,
+18657,
+18660,
+18664,
+18667,
+18670,
+18674,
+18677,
+18680,
+18684,
+18687,
+18690,
+18694,
+18697,
+18700,
+]
+
+private let bid_exponents_binary80_113: [Int32] = [
+18704,
+18707,
+18710,
+18714,
+18717,
+18720,
+18724,
+18727,
+18730,
+18733,
+18737,
+18740,
+18743,
+18747,
+18750,
+18753,
+18757,
+18760,
+18763,
+18767,
+18770,
+18773,
+18777,
+18780,
+18783,
+18787,
+18790,
+18793,
+18797,
+18800,
+18803,
+18807,
+18810,
+18813,
+18817,
+18820,
+18823,
+18826,
+18830,
+18833,
+18836,
+18840,
+18843,
+18846,
+18850,
+18853,
+18856,
+18860,
+18863,
+18866,
+]
+
+private let bid_exponents_binary80_114: [Int32] = [
+18870,
+18873,
+18876,
+18880,
+18883,
+18886,
+18890,
+18893,
+18896,
+18900,
+18903,
+18906,
+18910,
+18913,
+18916,
+18920,
+18923,
+18926,
+18929,
+18933,
+18936,
+18939,
+18943,
+18946,
+18949,
+18953,
+18956,
+18959,
+18963,
+18966,
+18969,
+18973,
+18976,
+18979,
+18983,
+18986,
+18989,
+18993,
+18996,
+18999,
+19003,
+19006,
+19009,
+19013,
+19016,
+19019,
+19022,
+19026,
+19029,
+19032,
+]
+
+private let bid_exponents_binary80_115: [Int32] = [
+19036,
+19039,
+19042,
+19046,
+19049,
+19052,
+19056,
+19059,
+19062,
+19066,
+19069,
+19072,
+19076,
+19079,
+19082,
+19086,
+19089,
+19092,
+19096,
+19099,
+19102,
+19106,
+19109,
+19112,
+19116,
+19119,
+19122,
+19125,
+19129,
+19132,
+19135,
+19139,
+19142,
+19145,
+19149,
+19152,
+19155,
+19159,
+19162,
+19165,
+19169,
+19172,
+19175,
+19179,
+19182,
+19185,
+19189,
+19192,
+19195,
+19199,
+]
+
+private let bid_exponents_binary80_116: [Int32] = [
+19202,
+19205,
+19209,
+19212,
+19215,
+19218,
+19222,
+19225,
+19228,
+19232,
+19235,
+19238,
+19242,
+19245,
+19248,
+19252,
+19255,
+19258,
+19262,
+19265,
+19268,
+19272,
+19275,
+19278,
+19282,
+19285,
+19288,
+19292,
+19295,
+19298,
+19302,
+19305,
+19308,
+19311,
+19315,
+19318,
+19321,
+19325,
+19328,
+19331,
+19335,
+19338,
+19341,
+19345,
+19348,
+19351,
+19355,
+19358,
+19361,
+19365,
+]
+
+private let bid_exponents_binary80_117: [Int32] = [
+19368,
+19371,
+19375,
+19378,
+19381,
+19385,
+19388,
+19391,
+19395,
+19398,
+19401,
+19405,
+19408,
+19411,
+19414,
+19418,
+19421,
+19424,
+19428,
+19431,
+19434,
+19438,
+19441,
+19444,
+19448,
+19451,
+19454,
+19458,
+19461,
+19464,
+19468,
+19471,
+19474,
+19478,
+19481,
+19484,
+19488,
+19491,
+19494,
+19498,
+19501,
+19504,
+19507,
+19511,
+19514,
+19517,
+19521,
+19524,
+19527,
+19531,
+]
+
+private let bid_exponents_binary80_118: [Int32] = [
+19534,
+19537,
+19541,
+19544,
+19547,
+19551,
+19554,
+19557,
+19561,
+19564,
+19567,
+19571,
+19574,
+19577,
+19581,
+19584,
+19587,
+19591,
+19594,
+19597,
+19601,
+19604,
+19607,
+19610,
+19614,
+19617,
+19620,
+19624,
+19627,
+19630,
+19634,
+19637,
+19640,
+19644,
+19647,
+19650,
+19654,
+19657,
+19660,
+19664,
+19667,
+19670,
+19674,
+19677,
+19680,
+19684,
+19687,
+19690,
+19694,
+19697,
+]
+
+private let bid_exponents_binary80_119: [Int32] = [
+19700,
+19703,
+19707,
+19710,
+19713,
+19717,
+19720,
+19723,
+19727,
+19730,
+19733,
+19737,
+19740,
+19743,
+19747,
+19750,
+19753,
+19757,
+19760,
+19763,
+19767,
+19770,
+19773,
+19777,
+19780,
+19783,
+19787,
+19790,
+19793,
+19796,
+19800,
+19803,
+19806,
+19810,
+19813,
+19816,
+19820,
+19823,
+19826,
+19830,
+19833,
+19836,
+19840,
+19843,
+19846,
+19850,
+19853,
+19856,
+19860,
+19863,
+]
+
+private let bid_exponents_binary80_120: [Int32] = [
+19866,
+19870,
+19873,
+19876,
+19880,
+19883,
+19886,
+19890,
+19893,
+19896,
+19899,
+19903,
+19906,
+19909,
+19913,
+19916,
+19919,
+19923,
+19926,
+19929,
+19933,
+19936,
+19939,
+19943,
+19946,
+19949,
+19953,
+19956,
+19959,
+19963,
+19966,
+19969,
+19973,
+19976,
+19979,
+19983,
+19986,
+19989,
+19992,
+19996,
+19999,
+20002,
+20006,
+20009,
+20012,
+20016,
+20019,
+20022,
+20026,
+20029,
+]
+
+private let bid_exponents_binary80_121: [Int32] = [
+20032,
+20036,
+20039,
+20042,
+20046,
+20049,
+20052,
+20056,
+20059,
+20062,
+20066,
+20069,
+20072,
+20076,
+20079,
+20082,
+20086,
+20089,
+20092,
+20095,
+20099,
+20102,
+20105,
+20109,
+20112,
+20115,
+20119,
+20122,
+20125,
+20129,
+20132,
+20135,
+20139,
+20142,
+20145,
+20149,
+20152,
+20155,
+20159,
+20162,
+20165,
+20169,
+20172,
+20175,
+20179,
+20182,
+20185,
+20188,
+20192,
+20195,
+]
+
+private let bid_exponents_binary80_122: [Int32] = [
+20198,
+20202,
+20205,
+20208,
+20212,
+20215,
+20218,
+20222,
+20225,
+20228,
+20232,
+20235,
+20238,
+20242,
+20245,
+20248,
+20252,
+20255,
+20258,
+20262,
+20265,
+20268,
+20272,
+20275,
+20278,
+20281,
+20285,
+20288,
+20291,
+20295,
+20298,
+20301,
+20305,
+20308,
+20311,
+20315,
+20318,
+20321,
+20325,
+20328,
+20331,
+20335,
+20338,
+20341,
+20345,
+20348,
+20351,
+20355,
+20358,
+20361,
+]
+
+private let bid_exponents_binary80_123: [Int32] = [
+20365,
+20368,
+20371,
+20375,
+20378,
+20381,
+20384,
+20388,
+20391,
+20394,
+20398,
+20401,
+20404,
+20408,
+20411,
+20414,
+20418,
+20421,
+20424,
+20428,
+20431,
+20434,
+20438,
+20441,
+20444,
+20448,
+20451,
+20454,
+20458,
+20461,
+20464,
+20468,
+20471,
+20474,
+20477,
+20481,
+20484,
+20487,
+20491,
+20494,
+20497,
+20501,
+20504,
+20507,
+20511,
+20514,
+20517,
+20521,
+20524,
+20527,
+]
+
+private let bid_exponents_binary80_124: [Int32] = [
+20531,
+20534,
+20537,
+20541,
+20544,
+20547,
+20551,
+20554,
+20557,
+20561,
+20564,
+20567,
+20571,
+20574,
+20577,
+20580,
+20584,
+20587,
+20590,
+20594,
+20597,
+20600,
+20604,
+20607,
+20610,
+20614,
+20617,
+20620,
+20624,
+20627,
+20630,
+20634,
+20637,
+20640,
+20644,
+20647,
+20650,
+20654,
+20657,
+20660,
+20664,
+20667,
+20670,
+20673,
+20677,
+20680,
+20683,
+20687,
+20690,
+20693,
+]
+
+private let bid_exponents_binary80_125: [Int32] = [
+20697,
+20700,
+20703,
+20707,
+20710,
+20713,
+20717,
+20720,
+20723,
+20727,
+20730,
+20733,
+20737,
+20740,
+20743,
+20747,
+20750,
+20753,
+20757,
+20760,
+20763,
+20766,
+20770,
+20773,
+20776,
+20780,
+20783,
+20786,
+20790,
+20793,
+20796,
+20800,
+20803,
+20806,
+20810,
+20813,
+20816,
+20820,
+20823,
+20826,
+20830,
+20833,
+20836,
+20840,
+20843,
+20846,
+20850,
+20853,
+20856,
+20860,
+]
+
+private let bid_exponents_binary80_126: [Int32] = [
+20863,
+20866,
+20869,
+20873,
+20876,
+20879,
+20883,
+20886,
+20889,
+20893,
+20896,
+20899,
+20903,
+20906,
+20909,
+20913,
+20916,
+20919,
+20923,
+20926,
+20929,
+20933,
+20936,
+20939,
+20943,
+20946,
+20949,
+20953,
+20956,
+20959,
+20962,
+20966,
+20969,
+20972,
+20976,
+20979,
+20982,
+20986,
+20989,
+20992,
+20996,
+20999,
+21002,
+21006,
+21009,
+21012,
+21016,
+21019,
+21022,
+21026,
+]
+
+private let bid_exponents_binary80_127: [Int32] = [
+21029,
+21032,
+21036,
+21039,
+21042,
+21046,
+21049,
+21052,
+21056,
+21059,
+21062,
+21065,
+21069,
+21072,
+21075,
+21079,
+21082,
+21085,
+21089,
+21092,
+21095,
+21099,
+21102,
+21105,
+21109,
+21112,
+21115,
+21119,
+21122,
+21125,
+21129,
+21132,
+21135,
+21139,
+21142,
+21145,
+21149,
+21152,
+21155,
+21158,
+21162,
+21165,
+21168,
+21172,
+21175,
+21178,
+21182,
+21185,
+21188,
+21192,
+]
+
+private let bid_exponents_binary80_128: [Int32] = [
+21195,
+21198,
+21202,
+21205,
+21208,
+21212,
+21215,
+21218,
+21222,
+21225,
+21228,
+21232,
+21235,
+21238,
+21242,
+21245,
+21248,
+21252,
+21255,
+21258,
+21261,
+21265,
+21268,
+21271,
+21275,
+21278,
+21281,
+21285,
+21288,
+21291,
+21295,
+21298,
+21301,
+21305,
+21308,
+21311,
+21315,
+21318,
+21321,
+21325,
+21328,
+21331,
+21335,
+21338,
+21341,
+21345,
+21348,
+21351,
+21354,
+21358,
+]
+
+private let bid_exponents_binary80_129: [Int32] = [
+21361,
+21364,
+21368,
+21371,
+21374,
+21378,
+21381,
+21384,
+21388,
+21391,
+21394,
+21398,
+21401,
+21404,
+21408,
+21411,
+21414,
+21418,
+21421,
+21424,
+21428,
+21431,
+21434,
+21438,
+21441,
+21444,
+21447,
+21451,
+21454,
+21457,
+21461,
+21464,
+21467,
+21471,
+21474,
+21477,
+21481,
+21484,
+21487,
+21491,
+21494,
+21497,
+21501,
+21504,
+21507,
+21511,
+21514,
+21517,
+21521,
+21524,
+]
+
+private let bid_exponents_binary80_130: [Int32] = [
+21527,
+21531,
+21534,
+21537,
+21541,
+21544,
+21547,
+21550,
+21554,
+21557,
+21560,
+21564,
+21567,
+21570,
+21574,
+21577,
+21580,
+21584,
+21587,
+21590,
+21594,
+21597,
+21600,
+21604,
+21607,
+21610,
+21614,
+21617,
+21620,
+21624,
+21627,
+21630,
+21634,
+21637,
+21640,
+21643,
+21647,
+21650,
+21653,
+21657,
+21660,
+21663,
+21667,
+21670,
+21673,
+21677,
+21680,
+21683,
+21687,
+21690,
+]
+
+private let bid_exponents_binary80_131: [Int32] = [
+21693,
+21697,
+21700,
+21703,
+21707,
+21710,
+21713,
+21717,
+21720,
+21723,
+21727,
+21730,
+21733,
+21737,
+21740,
+21743,
+21746,
+21750,
+21753,
+21756,
+21760,
+21763,
+21766,
+21770,
+21773,
+21776,
+21780,
+21783,
+21786,
+21790,
+21793,
+21796,
+21800,
+21803,
+21806,
+21810,
+21813,
+21816,
+21820,
+21823,
+21826,
+21830,
+21833,
+21836,
+21839,
+21843,
+21846,
+21849,
+21853,
+21856,
+]
+
+private let bid_exponents_binary80_132: [Int32] = [
+21859,
+21863,
+21866,
+21869,
+21873,
+21876,
+21879,
+21883,
+21886,
+21889,
+21893,
+21896,
+21899,
+21903,
+21906,
+21909,
+21913,
+21916,
+21919,
+21923,
+21926,
+21929,
+21932,
+21936,
+21939,
+21942,
+21946,
+21949,
+21952,
+21956,
+21959,
+21962,
+21966,
+21969,
+21972,
+21976,
+21979,
+21982,
+21986,
+21989,
+21992,
+21996,
+21999,
+22002,
+22006,
+22009,
+22012,
+22016,
+22019,
+22022,
+]
+
+private let bid_exponents_binary80_133: [Int32] = [
+22026,
+22029,
+22032,
+22035,
+22039,
+22042,
+22045,
+22049,
+22052,
+22055,
+22059,
+22062,
+22065,
+22069,
+22072,
+22075,
+22079,
+22082,
+22085,
+22089,
+22092,
+22095,
+22099,
+22102,
+22105,
+22109,
+22112,
+22115,
+22119,
+22122,
+22125,
+22128,
+22132,
+22135,
+22138,
+22142,
+22145,
+22148,
+22152,
+22155,
+22158,
+22162,
+22165,
+22168,
+22172,
+22175,
+22178,
+22182,
+22185,
+22188,
+]
+
+private let bid_exponents_binary80_134: [Int32] = [
+22192,
+22195,
+22198,
+22202,
+22205,
+22208,
+22212,
+22215,
+22218,
+22222,
+22225,
+22228,
+22231,
+22235,
+22238,
+22241,
+22245,
+22248,
+22251,
+22255,
+22258,
+22261,
+22265,
+22268,
+22271,
+22275,
+22278,
+22281,
+22285,
+22288,
+22291,
+22295,
+22298,
+22301,
+22305,
+22308,
+22311,
+22315,
+22318,
+22321,
+22324,
+22328,
+22331,
+22334,
+22338,
+22341,
+22344,
+22348,
+22351,
+22354,
+]
+
+private let bid_exponents_binary80_135: [Int32] = [
+22358,
+22361,
+22364,
+22368,
+22371,
+22374,
+22378,
+22381,
+22384,
+22388,
+22391,
+22394,
+22398,
+22401,
+22404,
+22408,
+22411,
+22414,
+22417,
+22421,
+22424,
+22427,
+22431,
+22434,
+22437,
+22441,
+22444,
+22447,
+22451,
+22454,
+22457,
+22461,
+22464,
+22467,
+22471,
+22474,
+22477,
+22481,
+22484,
+22487,
+22491,
+22494,
+22497,
+22501,
+22504,
+22507,
+22511,
+22514,
+22517,
+22520,
+]
+
+private let bid_exponents_binary80_136: [Int32] = [
+22524,
+22527,
+22530,
+22534,
+22537,
+22540,
+22544,
+22547,
+22550,
+22554,
+22557,
+22560,
+22564,
+22567,
+22570,
+22574,
+22577,
+22580,
+22584,
+22587,
+22590,
+22594,
+22597,
+22600,
+22604,
+22607,
+22610,
+22613,
+22617,
+22620,
+22623,
+22627,
+22630,
+22633,
+22637,
+22640,
+22643,
+22647,
+22650,
+22653,
+22657,
+22660,
+22663,
+22667,
+22670,
+22673,
+22677,
+22680,
+22683,
+22687,
+]
+
+private let bid_exponents_binary80_137: [Int32] = [
+22690,
+22693,
+22697,
+22700,
+22703,
+22707,
+22710,
+22713,
+22716,
+22720,
+22723,
+22726,
+22730,
+22733,
+22736,
+22740,
+22743,
+22746,
+22750,
+22753,
+22756,
+22760,
+22763,
+22766,
+22770,
+22773,
+22776,
+22780,
+22783,
+22786,
+22790,
+22793,
+22796,
+22800,
+22803,
+22806,
+22809,
+22813,
+22816,
+22819,
+22823,
+22826,
+22829,
+22833,
+22836,
+22839,
+22843,
+22846,
+22849,
+22853,
+]
+
+private let bid_exponents_binary80_138: [Int32] = [
+22856,
+22859,
+22863,
+22866,
+22869,
+22873,
+22876,
+22879,
+22883,
+22886,
+22889,
+22893,
+22896,
+22899,
+22902,
+22906,
+22909,
+22912,
+22916,
+22919,
+22922,
+22926,
+22929,
+22932,
+22936,
+22939,
+22942,
+22946,
+22949,
+22952,
+22956,
+22959,
+22962,
+22966,
+22969,
+22972,
+22976,
+22979,
+22982,
+22986,
+22989,
+22992,
+22996,
+22999,
+23002,
+23005,
+23009,
+23012,
+23015,
+23019,
+]
+
+private let bid_exponents_binary80_139: [Int32] = [
+23022,
+23025,
+23029,
+23032,
+23035,
+23039,
+23042,
+23045,
+23049,
+23052,
+23055,
+23059,
+23062,
+23065,
+23069,
+23072,
+23075,
+23079,
+23082,
+23085,
+23089,
+23092,
+23095,
+23098,
+23102,
+23105,
+23108,
+23112,
+23115,
+23118,
+23122,
+23125,
+23128,
+23132,
+23135,
+23138,
+23142,
+23145,
+23148,
+23152,
+23155,
+23158,
+23162,
+23165,
+23168,
+23172,
+23175,
+23178,
+23182,
+23185,
+]
+
+private let bid_exponents_binary80_140: [Int32] = [
+23188,
+23192,
+23195,
+23198,
+23201,
+23205,
+23208,
+23211,
+23215,
+23218,
+23221,
+23225,
+23228,
+23231,
+23235,
+23238,
+23241,
+23245,
+23248,
+23251,
+23255,
+23258,
+23261,
+23265,
+23268,
+23271,
+23275,
+23278,
+23281,
+23285,
+23288,
+23291,
+23294,
+23298,
+23301,
+23304,
+23308,
+23311,
+23314,
+23318,
+23321,
+23324,
+23328,
+23331,
+23334,
+23338,
+23341,
+23344,
+23348,
+23351,
+]
+
+private let bid_exponents_binary80_141: [Int32] = [
+23354,
+23358,
+23361,
+23364,
+23368,
+23371,
+23374,
+23378,
+23381,
+23384,
+23388,
+23391,
+23394,
+23397,
+23401,
+23404,
+23407,
+23411,
+23414,
+23417,
+23421,
+23424,
+23427,
+23431,
+23434,
+23437,
+23441,
+23444,
+23447,
+23451,
+23454,
+23457,
+23461,
+23464,
+23467,
+23471,
+23474,
+23477,
+23481,
+23484,
+23487,
+23490,
+23494,
+23497,
+23500,
+23504,
+23507,
+23510,
+23514,
+23517,
+]
+
+private let bid_exponents_binary80_142: [Int32] = [
+23520,
+23524,
+23527,
+23530,
+23534,
+23537,
+23540,
+23544,
+23547,
+23550,
+23554,
+23557,
+23560,
+23564,
+23567,
+23570,
+23574,
+23577,
+23580,
+23583,
+23587,
+23590,
+23593,
+23597,
+23600,
+23603,
+23607,
+23610,
+23613,
+23617,
+23620,
+23623,
+23627,
+23630,
+23633,
+23637,
+23640,
+23643,
+23647,
+23650,
+23653,
+23657,
+23660,
+23663,
+23667,
+23670,
+23673,
+23677,
+23680,
+23683,
+]
+
+private let bid_exponents_binary80_143: [Int32] = [
+23686,
+23690,
+23693,
+23696,
+23700,
+23703,
+23706,
+23710,
+23713,
+23716,
+23720,
+23723,
+23726,
+23730,
+23733,
+23736,
+23740,
+23743,
+23746,
+23750,
+23753,
+23756,
+23760,
+23763,
+23766,
+23770,
+23773,
+23776,
+23779,
+23783,
+23786,
+23789,
+23793,
+23796,
+23799,
+23803,
+23806,
+23809,
+23813,
+23816,
+23819,
+23823,
+23826,
+23829,
+23833,
+23836,
+23839,
+23843,
+23846,
+23849,
+]
+
+private let bid_exponents_binary80_144: [Int32] = [
+23853,
+23856,
+23859,
+23863,
+23866,
+23869,
+23873,
+23876,
+23879,
+23882,
+23886,
+23889,
+23892,
+23896,
+23899,
+23902,
+23906,
+23909,
+23912,
+23916,
+23919,
+23922,
+23926,
+23929,
+23932,
+23936,
+23939,
+23942,
+23946,
+23949,
+23952,
+23956,
+23959,
+23962,
+23966,
+23969,
+23972,
+23975,
+23979,
+23982,
+23985,
+23989,
+23992,
+23995,
+23999,
+24002,
+24005,
+24009,
+24012,
+24015,
+]
+
+private let bid_exponents_binary80_145: [Int32] = [
+24019,
+24022,
+24025,
+24029,
+24032,
+24035,
+24039,
+24042,
+24045,
+24049,
+24052,
+24055,
+24059,
+24062,
+24065,
+24068,
+24072,
+24075,
+24078,
+24082,
+24085,
+24088,
+24092,
+24095,
+24098,
+24102,
+24105,
+24108,
+24112,
+24115,
+24118,
+24122,
+24125,
+24128,
+24132,
+24135,
+24138,
+24142,
+24145,
+24148,
+24152,
+24155,
+24158,
+24162,
+24165,
+24168,
+24171,
+24175,
+24178,
+24181,
+]
+
+private let bid_exponents_binary80_146: [Int32] = [
+24185,
+24188,
+24191,
+24195,
+24198,
+24201,
+24205,
+24208,
+24211,
+24215,
+24218,
+24221,
+24225,
+24228,
+24231,
+24235,
+24238,
+24241,
+24245,
+24248,
+24251,
+24255,
+24258,
+24261,
+24264,
+24268,
+24271,
+24274,
+24278,
+24281,
+24284,
+24288,
+24291,
+24294,
+24298,
+24301,
+24304,
+24308,
+24311,
+24314,
+24318,
+24321,
+24324,
+24328,
+24331,
+24334,
+24338,
+24341,
+24344,
+24348,
+]
+
+private let bid_exponents_binary80_147: [Int32] = [
+24351,
+24354,
+24358,
+24361,
+24364,
+24367,
+24371,
+24374,
+24377,
+24381,
+24384,
+24387,
+24391,
+24394,
+24397,
+24401,
+24404,
+24407,
+24411,
+24414,
+24417,
+24421,
+24424,
+24427,
+24431,
+24434,
+24437,
+24441,
+24444,
+24447,
+24451,
+24454,
+24457,
+24460,
+24464,
+24467,
+24470,
+24474,
+24477,
+24480,
+24484,
+24487,
+24490,
+24494,
+24497,
+24500,
+24504,
+24507,
+24510,
+24514,
+]
+
+private let bid_exponents_binary80_148: [Int32] = [
+24517,
+24520,
+24524,
+24527,
+24530,
+24534,
+24537,
+24540,
+24544,
+24547,
+24550,
+24553,
+24557,
+24560,
+24563,
+24567,
+24570,
+24573,
+24577,
+24580,
+24583,
+24587,
+24590,
+24593,
+24597,
+24600,
+24603,
+24607,
+24610,
+24613,
+24617,
+24620,
+24623,
+24627,
+24630,
+24633,
+24637,
+24640,
+24643,
+24647,
+24650,
+24653,
+24656,
+24660,
+24663,
+24666,
+24670,
+24673,
+24676,
+24680,
+]
+
+private let bid_exponents_binary80_149: [Int32] = [
+24683,
+24686,
+24690,
+24693,
+24696,
+24700,
+24703,
+24706,
+24710,
+24713,
+24716,
+24720,
+24723,
+24726,
+24730,
+24733,
+24736,
+24740,
+24743,
+24746,
+24749,
+24753,
+24756,
+24759,
+24763,
+24766,
+24769,
+24773,
+24776,
+24779,
+24783,
+24786,
+24789,
+24793,
+24796,
+24799,
+24803,
+24806,
+24809,
+24813,
+24816,
+24819,
+24823,
+24826,
+24829,
+24833,
+24836,
+24839,
+24843,
+24846,
+]
+
+private let bid_exponents_binary80_150: [Int32] = [
+24849,
+24852,
+24856,
+24859,
+24862,
+24866,
+24869,
+24872,
+24876,
+24879,
+24882,
+24886,
+24889,
+24892,
+24896,
+24899,
+24902,
+24906,
+24909,
+24912,
+24916,
+24919,
+24922,
+24926,
+24929,
+24932,
+24936,
+24939,
+24942,
+24945,
+24949,
+24952,
+24955,
+24959,
+24962,
+24965,
+24969,
+24972,
+24975,
+24979,
+24982,
+24985,
+24989,
+24992,
+24995,
+24999,
+25002,
+25005,
+25009,
+25012,
+]
+
+private let bid_exponents_binary80_151: [Int32] = [
+25015,
+25019,
+25022,
+25025,
+25029,
+25032,
+25035,
+25038,
+25042,
+25045,
+25048,
+25052,
+25055,
+25058,
+25062,
+25065,
+25068,
+25072,
+25075,
+25078,
+25082,
+25085,
+25088,
+25092,
+25095,
+25098,
+25102,
+25105,
+25108,
+25112,
+25115,
+25118,
+25122,
+25125,
+25128,
+25132,
+25135,
+25138,
+25141,
+25145,
+25148,
+25151,
+25155,
+25158,
+25161,
+25165,
+25168,
+25171,
+25175,
+25178,
+]
+
+private let bid_exponents_binary80_152: [Int32] = [
+25181,
+25185,
+25188,
+25191,
+25195,
+25198,
+25201,
+25205,
+25208,
+25211,
+25215,
+25218,
+25221,
+25225,
+25228,
+25231,
+25234,
+25238,
+25241,
+25244,
+25248,
+25251,
+25254,
+25258,
+25261,
+25264,
+25268,
+25271,
+25274,
+25278,
+25281,
+25284,
+25288,
+25291,
+25294,
+25298,
+25301,
+25304,
+25308,
+25311,
+25314,
+25318,
+25321,
+25324,
+25328,
+25331,
+25334,
+25337,
+25341,
+25344,
+]
+
+private let bid_exponents_binary80_153: [Int32] = [
+25347,
+25351,
+25354,
+25357,
+25361,
+25364,
+25367,
+25371,
+25374,
+25377,
+25381,
+25384,
+25387,
+25391,
+25394,
+25397,
+25401,
+25404,
+25407,
+25411,
+25414,
+25417,
+25421,
+25424,
+25427,
+25430,
+25434,
+25437,
+25440,
+25444,
+25447,
+25450,
+25454,
+25457,
+25460,
+25464,
+25467,
+25470,
+25474,
+25477,
+25480,
+25484,
+25487,
+25490,
+25494,
+25497,
+25500,
+25504,
+25507,
+25510,
+]
+
+private let bid_exponents_binary80_154: [Int32] = [
+25514,
+25517,
+25520,
+25524,
+25527,
+25530,
+25533,
+25537,
+25540,
+25543,
+25547,
+25550,
+25553,
+25557,
+25560,
+25563,
+25567,
+25570,
+25573,
+25577,
+25580,
+25583,
+25587,
+25590,
+25593,
+25597,
+25600,
+25603,
+25607,
+25610,
+25613,
+25617,
+25620,
+25623,
+25626,
+25630,
+25633,
+25636,
+25640,
+25643,
+25646,
+25650,
+25653,
+25656,
+25660,
+25663,
+25666,
+25670,
+25673,
+25676,
+]
+
+private let bid_exponents_binary80_155: [Int32] = [
+25680,
+25683,
+25686,
+25690,
+25693,
+25696,
+25700,
+25703,
+25706,
+25710,
+25713,
+25716,
+25719,
+25723,
+25726,
+25729,
+25733,
+25736,
+25739,
+25743,
+25746,
+25749,
+25753,
+25756,
+25759,
+25763,
+25766,
+25769,
+25773,
+25776,
+25779,
+25783,
+25786,
+25789,
+25793,
+25796,
+25799,
+25803,
+25806,
+25809,
+25813,
+25816,
+25819,
+25822,
+25826,
+25829,
+25832,
+25836,
+25839,
+25842,
+]
+
+private let bid_exponents_binary80_156: [Int32] = [
+25846,
+25849,
+25852,
+25856,
+25859,
+25862,
+25866,
+25869,
+25872,
+25876,
+25879,
+25882,
+25886,
+25889,
+25892,
+25896,
+25899,
+25902,
+25906,
+25909,
+25912,
+25915,
+25919,
+25922,
+25925,
+25929,
+25932,
+25935,
+25939,
+25942,
+25945,
+25949,
+25952,
+25955,
+25959,
+25962,
+25965,
+25969,
+25972,
+25975,
+25979,
+25982,
+25985,
+25989,
+25992,
+25995,
+25999,
+26002,
+26005,
+26009,
+]
+
+private let bid_exponents_binary80_157: [Int32] = [
+26012,
+26015,
+26018,
+26022,
+26025,
+26028,
+26032,
+26035,
+26038,
+26042,
+26045,
+26048,
+26052,
+26055,
+26058,
+26062,
+26065,
+26068,
+26072,
+26075,
+26078,
+26082,
+26085,
+26088,
+26092,
+26095,
+26098,
+26102,
+26105,
+26108,
+26111,
+26115,
+26118,
+26121,
+26125,
+26128,
+26131,
+26135,
+26138,
+26141,
+26145,
+26148,
+26151,
+26155,
+26158,
+26161,
+26165,
+26168,
+26171,
+26175,
+]
+
+private let bid_exponents_binary80_158: [Int32] = [
+26178,
+26181,
+26185,
+26188,
+26191,
+26195,
+26198,
+26201,
+26204,
+26208,
+26211,
+26214,
+26218,
+26221,
+26224,
+26228,
+26231,
+26234,
+26238,
+26241,
+26244,
+26248,
+26251,
+26254,
+26258,
+26261,
+26264,
+26268,
+26271,
+26274,
+26278,
+26281,
+26284,
+26288,
+26291,
+26294,
+26298,
+26301,
+26304,
+26307,
+26311,
+26314,
+26317,
+26321,
+26324,
+26327,
+26331,
+26334,
+26337,
+26341,
+]
+
+private let bid_exponents_binary80_159: [Int32] = [
+26344,
+26347,
+26351,
+26354,
+26357,
+26361,
+26364,
+26367,
+26371,
+26374,
+26377,
+26381,
+26384,
+26387,
+26391,
+26394,
+26397,
+26400,
+26404,
+26407,
+26410,
+26414,
+26417,
+26420,
+26424,
+26427,
+26430,
+26434,
+26437,
+26440,
+26444,
+26447,
+26450,
+26454,
+26457,
+26460,
+26464,
+26467,
+26470,
+26474,
+26477,
+26480,
+26484,
+26487,
+26490,
+26494,
+26497,
+26500,
+26503,
+26507,
+]
+
+private let bid_exponents_binary80_160: [Int32] = [
+26510,
+26513,
+26517,
+26520,
+26523,
+26527,
+26530,
+26533,
+26537,
+26540,
+26543,
+26547,
+26550,
+26553,
+26557,
+26560,
+26563,
+26567,
+26570,
+26573,
+26577,
+26580,
+26583,
+26587,
+26590,
+26593,
+26596,
+26600,
+26603,
+26606,
+26610,
+26613,
+26616,
+26620,
+26623,
+26626,
+26630,
+26633,
+26636,
+26640,
+26643,
+26646,
+26650,
+26653,
+26656,
+26660,
+26663,
+26666,
+26670,
+26673,
+]
+
+private let bid_exponents_binary80_161: [Int32] = [
+26676,
+26680,
+26683,
+26686,
+26689,
+26693,
+26696,
+26699,
+26703,
+26706,
+26709,
+26713,
+26716,
+26719,
+26723,
+26726,
+26729,
+26733,
+26736,
+26739,
+26743,
+26746,
+26749,
+26753,
+26756,
+26759,
+26763,
+26766,
+26769,
+26773,
+26776,
+26779,
+26783,
+26786,
+26789,
+26792,
+26796,
+26799,
+26802,
+26806,
+26809,
+26812,
+26816,
+26819,
+26822,
+26826,
+26829,
+26832,
+26836,
+26839,
+]
+
+private let bid_exponents_binary80_162: [Int32] = [
+26842,
+26846,
+26849,
+26852,
+26856,
+26859,
+26862,
+26866,
+26869,
+26872,
+26876,
+26879,
+26882,
+26885,
+26889,
+26892,
+26895,
+26899,
+26902,
+26905,
+26909,
+26912,
+26915,
+26919,
+26922,
+26925,
+26929,
+26932,
+26935,
+26939,
+26942,
+26945,
+26949,
+26952,
+26955,
+26959,
+26962,
+26965,
+26969,
+26972,
+26975,
+26979,
+26982,
+26985,
+26988,
+26992,
+26995,
+26998,
+27002,
+27005,
+]
+
+private let bid_exponents_binary80_163: [Int32] = [
+27008,
+27012,
+27015,
+27018,
+27022,
+27025,
+27028,
+27032,
+27035,
+27038,
+27042,
+27045,
+27048,
+27052,
+27055,
+27058,
+27062,
+27065,
+27068,
+27072,
+27075,
+27078,
+27081,
+27085,
+27088,
+27091,
+27095,
+27098,
+27101,
+27105,
+27108,
+27111,
+27115,
+27118,
+27121,
+27125,
+27128,
+27131,
+27135,
+27138,
+27141,
+27145,
+27148,
+27151,
+27155,
+27158,
+27161,
+27165,
+27168,
+27171,
+]
+
+private let bid_exponents_binary80_164: [Int32] = [
+27174,
+27178,
+27181,
+27184,
+27188,
+27191,
+27194,
+27198,
+27201,
+27204,
+27208,
+27211,
+27214,
+27218,
+27221,
+27224,
+27228,
+27231,
+27234,
+27238,
+27241,
+27244,
+27248,
+27251,
+27254,
+27258,
+27261,
+27264,
+27268,
+27271,
+27274,
+27277,
+27281,
+27284,
+27287,
+27291,
+27294,
+27297,
+27301,
+27304,
+27307,
+27311,
+27314,
+27317,
+27321,
+27324,
+27327,
+27331,
+27334,
+27337,
+]
+
+private let bid_exponents_binary80_165: [Int32] = [
+27341,
+27344,
+27347,
+27351,
+27354,
+27357,
+27361,
+27364,
+27367,
+27370,
+27374,
+27377,
+27380,
+27384,
+27387,
+27390,
+27394,
+27397,
+27400,
+27404,
+27407,
+27410,
+27414,
+27417,
+27420,
+27424,
+27427,
+27430,
+27434,
+27437,
+27440,
+27444,
+27447,
+27450,
+27454,
+27457,
+27460,
+27464,
+27467,
+27470,
+27473,
+27477,
+27480,
+27483,
+27487,
+27490,
+27493,
+27497,
+27500,
+27503,
+]
+
+private let bid_exponents_binary80_166: [Int32] = [
+27507,
+27510,
+27513,
+27517,
+27520,
+27523,
+27527,
+27530,
+27533,
+27537,
+27540,
+27543,
+27547,
+27550,
+27553,
+27557,
+27560,
+27563,
+27566,
+27570,
+27573,
+27576,
+27580,
+27583,
+27586,
+27590,
+27593,
+27596,
+27600,
+27603,
+27606,
+27610,
+27613,
+27616,
+27620,
+27623,
+27626,
+27630,
+27633,
+27636,
+27640,
+27643,
+27646,
+27650,
+27653,
+27656,
+27660,
+27663,
+27666,
+27669,
+]
+
+private let bid_exponents_binary80_167: [Int32] = [
+27673,
+27676,
+27679,
+27683,
+27686,
+27689,
+27693,
+27696,
+27699,
+27703,
+27706,
+27709,
+27713,
+27716,
+27719,
+27723,
+27726,
+27729,
+27733,
+27736,
+27739,
+27743,
+27746,
+27749,
+27753,
+27756,
+27759,
+27762,
+27766,
+27769,
+27772,
+27776,
+27779,
+27782,
+27786,
+27789,
+27792,
+27796,
+27799,
+27802,
+27806,
+27809,
+27812,
+27816,
+27819,
+27822,
+27826,
+27829,
+27832,
+27836,
+]
+
+private let bid_exponents_binary80_168: [Int32] = [
+27839,
+27842,
+27846,
+27849,
+27852,
+27855,
+27859,
+27862,
+27865,
+27869,
+27872,
+27875,
+27879,
+27882,
+27885,
+27889,
+27892,
+27895,
+27899,
+27902,
+27905,
+27909,
+27912,
+27915,
+27919,
+27922,
+27925,
+27929,
+27932,
+27935,
+27939,
+27942,
+27945,
+27949,
+27952,
+27955,
+27958,
+27962,
+27965,
+27968,
+27972,
+27975,
+27978,
+27982,
+27985,
+27988,
+27992,
+27995,
+27998,
+28002,
+]
+
+private let bid_exponents_binary80_169: [Int32] = [
+28005,
+28008,
+28012,
+28015,
+28018,
+28022,
+28025,
+28028,
+28032,
+28035,
+28038,
+28042,
+28045,
+28048,
+28051,
+28055,
+28058,
+28061,
+28065,
+28068,
+28071,
+28075,
+28078,
+28081,
+28085,
+28088,
+28091,
+28095,
+28098,
+28101,
+28105,
+28108,
+28111,
+28115,
+28118,
+28121,
+28125,
+28128,
+28131,
+28135,
+28138,
+28141,
+28145,
+28148,
+28151,
+28154,
+28158,
+28161,
+28164,
+28168,
+]
+
+private let bid_exponents_binary80_170: [Int32] = [
+28171,
+28174,
+28178,
+28181,
+28184,
+28188,
+28191,
+28194,
+28198,
+28201,
+28204,
+28208,
+28211,
+28214,
+28218,
+28221,
+28224,
+28228,
+28231,
+28234,
+28238,
+28241,
+28244,
+28247,
+28251,
+28254,
+28257,
+28261,
+28264,
+28267,
+28271,
+28274,
+28277,
+28281,
+28284,
+28287,
+28291,
+28294,
+28297,
+28301,
+28304,
+28307,
+28311,
+28314,
+28317,
+28321,
+28324,
+28327,
+28331,
+28334,
+]
+
+private let bid_exponents_binary80_171: [Int32] = [
+28337,
+28340,
+28344,
+28347,
+28350,
+28354,
+28357,
+28360,
+28364,
+28367,
+28370,
+28374,
+28377,
+28380,
+28384,
+28387,
+28390,
+28394,
+28397,
+28400,
+28404,
+28407,
+28410,
+28414,
+28417,
+28420,
+28424,
+28427,
+28430,
+28434,
+28437,
+28440,
+28443,
+28447,
+28450,
+28453,
+28457,
+28460,
+28463,
+28467,
+28470,
+28473,
+28477,
+28480,
+28483,
+28487,
+28490,
+28493,
+28497,
+28500,
+]
+
+private let bid_exponents_binary80_172: [Int32] = [
+28503,
+28507,
+28510,
+28513,
+28517,
+28520,
+28523,
+28527,
+28530,
+28533,
+28536,
+28540,
+28543,
+28546,
+28550,
+28553,
+28556,
+28560,
+28563,
+28566,
+28570,
+28573,
+28576,
+28580,
+28583,
+28586,
+28590,
+28593,
+28596,
+28600,
+28603,
+28606,
+28610,
+28613,
+28616,
+28620,
+28623,
+28626,
+28630,
+28633,
+28636,
+28639,
+28643,
+28646,
+28649,
+28653,
+28656,
+28659,
+28663,
+28666,
+]
+
+private let bid_exponents_binary80_173: [Int32] = [
+28669,
+28673,
+28676,
+28679,
+28683,
+28686,
+28689,
+28693,
+28696,
+28699,
+28703,
+28706,
+28709,
+28713,
+28716,
+28719,
+28723,
+28726,
+28729,
+28732,
+28736,
+28739,
+28742,
+28746,
+28749,
+28752,
+28756,
+28759,
+28762,
+28766,
+28769,
+28772,
+28776,
+28779,
+28782,
+28786,
+28789,
+28792,
+28796,
+28799,
+28802,
+28806,
+28809,
+28812,
+28816,
+28819,
+28822,
+28825,
+28829,
+28832,
+]
+
+private let bid_exponents_binary80_174: [Int32] = [
+28835,
+28839,
+28842,
+28845,
+28849,
+28852,
+28855,
+28859,
+28862,
+28865,
+28869,
+28872,
+28875,
+28879,
+28882,
+28885,
+28889,
+28892,
+28895,
+28899,
+28902,
+28905,
+28909,
+28912,
+28915,
+28919,
+28922,
+28925,
+28928,
+28932,
+28935,
+28938,
+28942,
+28945,
+28948,
+28952,
+28955,
+28958,
+28962,
+28965,
+28968,
+28972,
+28975,
+28978,
+28982,
+28985,
+28988,
+28992,
+28995,
+28998,
+]
+
+private let bid_exponents_binary80_175: [Int32] = [
+29002,
+29005,
+29008,
+29012,
+29015,
+29018,
+29021,
+29025,
+29028,
+29031,
+29035,
+29038,
+29041,
+29045,
+29048,
+29051,
+29055,
+29058,
+29061,
+29065,
+29068,
+29071,
+29075,
+29078,
+29081,
+29085,
+29088,
+29091,
+29095,
+29098,
+29101,
+29105,
+29108,
+29111,
+29115,
+29118,
+29121,
+29124,
+29128,
+29131,
+29134,
+29138,
+29141,
+29144,
+29148,
+29151,
+29154,
+29158,
+29161,
+29164,
+]
+
+private let bid_exponents_binary80_176: [Int32] = [
+29168,
+29171,
+29174,
+29178,
+29181,
+29184,
+29188,
+29191,
+29194,
+29198,
+29201,
+29204,
+29208,
+29211,
+29214,
+29217,
+29221,
+29224,
+29227,
+29231,
+29234,
+29237,
+29241,
+29244,
+29247,
+29251,
+29254,
+29257,
+29261,
+29264,
+29267,
+29271,
+29274,
+29277,
+29281,
+29284,
+29287,
+29291,
+29294,
+29297,
+29301,
+29304,
+29307,
+29310,
+29314,
+29317,
+29320,
+29324,
+29327,
+29330,
+]
+
+private let bid_exponents_binary80_177: [Int32] = [
+29334,
+29337,
+29340,
+29344,
+29347,
+29350,
+29354,
+29357,
+29360,
+29364,
+29367,
+29370,
+29374,
+29377,
+29380,
+29384,
+29387,
+29390,
+29394,
+29397,
+29400,
+29404,
+29407,
+29410,
+29413,
+29417,
+29420,
+29423,
+29427,
+29430,
+29433,
+29437,
+29440,
+29443,
+29447,
+29450,
+29453,
+29457,
+29460,
+29463,
+29467,
+29470,
+29473,
+29477,
+29480,
+29483,
+29487,
+29490,
+29493,
+29497,
+]
+
+private let bid_exponents_binary80_178: [Int32] = [
+29500,
+29503,
+29506,
+29510,
+29513,
+29516,
+29520,
+29523,
+29526,
+29530,
+29533,
+29536,
+29540,
+29543,
+29546,
+29550,
+29553,
+29556,
+29560,
+29563,
+29566,
+29570,
+29573,
+29576,
+29580,
+29583,
+29586,
+29590,
+29593,
+29596,
+29600,
+29603,
+29606,
+29609,
+29613,
+29616,
+29619,
+29623,
+29626,
+29629,
+29633,
+29636,
+29639,
+29643,
+29646,
+29649,
+29653,
+29656,
+29659,
+29663,
+]
+
+private let bid_exponents_binary80_179: [Int32] = [
+29666,
+29669,
+29673,
+29676,
+29679,
+29683,
+29686,
+29689,
+29693,
+29696,
+29699,
+29702,
+29706,
+29709,
+29712,
+29716,
+29719,
+29722,
+29726,
+29729,
+29732,
+29736,
+29739,
+29742,
+29746,
+29749,
+29752,
+29756,
+29759,
+29762,
+29766,
+29769,
+29772,
+29776,
+29779,
+29782,
+29786,
+29789,
+29792,
+29796,
+29799,
+29802,
+29805,
+29809,
+29812,
+29815,
+29819,
+29822,
+29825,
+29829,
+]
+
+private let bid_exponents_binary80_180: [Int32] = [
+29832,
+29835,
+29839,
+29842,
+29845,
+29849,
+29852,
+29855,
+29859,
+29862,
+29865,
+29869,
+29872,
+29875,
+29879,
+29882,
+29885,
+29889,
+29892,
+29895,
+29898,
+29902,
+29905,
+29908,
+29912,
+29915,
+29918,
+29922,
+29925,
+29928,
+29932,
+29935,
+29938,
+29942,
+29945,
+29948,
+29952,
+29955,
+29958,
+29962,
+29965,
+29968,
+29972,
+29975,
+29978,
+29982,
+29985,
+29988,
+29991,
+29995,
+]
+
+private let bid_exponents_binary80_181: [Int32] = [
+29998,
+30001,
+30005,
+30008,
+30011,
+30015,
+30018,
+30021,
+30025,
+30028,
+30031,
+30035,
+30038,
+30041,
+30045,
+30048,
+30051,
+30055,
+30058,
+30061,
+30065,
+30068,
+30071,
+30075,
+30078,
+30081,
+30085,
+30088,
+30091,
+30094,
+30098,
+30101,
+30104,
+30108,
+30111,
+30114,
+30118,
+30121,
+30124,
+30128,
+30131,
+30134,
+30138,
+30141,
+30144,
+30148,
+30151,
+30154,
+30158,
+30161,
+]
+
+private let bid_exponents_binary80_182: [Int32] = [
+30164,
+30168,
+30171,
+30174,
+30178,
+30181,
+30184,
+30187,
+30191,
+30194,
+30197,
+30201,
+30204,
+30207,
+30211,
+30214,
+30217,
+30221,
+30224,
+30227,
+30231,
+30234,
+30237,
+30241,
+30244,
+30247,
+30251,
+30254,
+30257,
+30261,
+30264,
+30267,
+30271,
+30274,
+30277,
+30281,
+30284,
+30287,
+30290,
+30294,
+30297,
+30300,
+30304,
+30307,
+30310,
+30314,
+30317,
+30320,
+30324,
+30327,
+]
+
+private let bid_exponents_binary80_183: [Int32] = [
+30330,
+30334,
+30337,
+30340,
+30344,
+30347,
+30350,
+30354,
+30357,
+30360,
+30364,
+30367,
+30370,
+30374,
+30377,
+30380,
+30383,
+30387,
+30390,
+30393,
+30397,
+30400,
+30403,
+30407,
+30410,
+30413,
+30417,
+30420,
+30423,
+30427,
+30430,
+30433,
+30437,
+30440,
+30443,
+30447,
+30450,
+30453,
+30457,
+30460,
+30463,
+30467,
+30470,
+30473,
+30476,
+30480,
+30483,
+30486,
+30490,
+30493,
+]
+
+private let bid_exponents_binary80_184: [Int32] = [
+30496,
+30500,
+30503,
+30506,
+30510,
+30513,
+30516,
+30520,
+30523,
+30526,
+30530,
+30533,
+30536,
+30540,
+30543,
+30546,
+30550,
+30553,
+30556,
+30560,
+30563,
+30566,
+30570,
+30573,
+30576,
+30579,
+30583,
+30586,
+30589,
+30593,
+30596,
+30599,
+30603,
+30606,
+30609,
+30613,
+30616,
+30619,
+30623,
+30626,
+30629,
+30633,
+30636,
+30639,
+30643,
+30646,
+30649,
+30653,
+30656,
+30659,
+]
+
+private let bid_exponents_binary80_185: [Int32] = [
+30663,
+30666,
+30669,
+30672,
+30676,
+30679,
+30682,
+30686,
+30689,
+30692,
+30696,
+30699,
+30702,
+30706,
+30709,
+30712,
+30716,
+30719,
+30722,
+30726,
+30729,
+30732,
+30736,
+30739,
+30742,
+30746,
+30749,
+30752,
+30756,
+30759,
+30762,
+30766,
+30769,
+30772,
+30775,
+30779,
+30782,
+30785,
+30789,
+30792,
+30795,
+30799,
+30802,
+30805,
+30809,
+30812,
+30815,
+30819,
+30822,
+30825,
+]
+
+private let bid_exponents_binary80_186: [Int32] = [
+30829,
+30832,
+30835,
+30839,
+30842,
+30845,
+30849,
+30852,
+30855,
+30859,
+30862,
+30865,
+30868,
+30872,
+30875,
+30878,
+30882,
+30885,
+30888,
+30892,
+30895,
+30898,
+30902,
+30905,
+30908,
+30912,
+30915,
+30918,
+30922,
+30925,
+30928,
+30932,
+30935,
+30938,
+30942,
+30945,
+30948,
+30952,
+30955,
+30958,
+30961,
+30965,
+30968,
+30971,
+30975,
+30978,
+30981,
+30985,
+30988,
+30991,
+]
+
+private let bid_exponents_binary80_187: [Int32] = [
+30995,
+30998,
+31001,
+31005,
+31008,
+31011,
+31015,
+31018,
+31021,
+31025,
+31028,
+31031,
+31035,
+31038,
+31041,
+31045,
+31048,
+31051,
+31055,
+31058,
+31061,
+31064,
+31068,
+31071,
+31074,
+31078,
+31081,
+31084,
+31088,
+31091,
+31094,
+31098,
+31101,
+31104,
+31108,
+31111,
+31114,
+31118,
+31121,
+31124,
+31128,
+31131,
+31134,
+31138,
+31141,
+31144,
+31148,
+31151,
+31154,
+31157,
+]
+
+private let bid_exponents_binary80_188: [Int32] = [
+31161,
+31164,
+31167,
+31171,
+31174,
+31177,
+31181,
+31184,
+31187,
+31191,
+31194,
+31197,
+31201,
+31204,
+31207,
+31211,
+31214,
+31217,
+31221,
+31224,
+31227,
+31231,
+31234,
+31237,
+31241,
+31244,
+31247,
+31251,
+31254,
+31257,
+31260,
+31264,
+31267,
+31270,
+31274,
+31277,
+31280,
+31284,
+31287,
+31290,
+31294,
+31297,
+31300,
+31304,
+31307,
+31310,
+31314,
+31317,
+31320,
+31324,
+]
+
+private let bid_exponents_binary80_189: [Int32] = [
+31327,
+31330,
+31334,
+31337,
+31340,
+31344,
+31347,
+31350,
+31353,
+31357,
+31360,
+31363,
+31367,
+31370,
+31373,
+31377,
+31380,
+31383,
+31387,
+31390,
+31393,
+31397,
+31400,
+31403,
+31407,
+31410,
+31413,
+31417,
+31420,
+31423,
+31427,
+31430,
+31433,
+31437,
+31440,
+31443,
+31446,
+31450,
+31453,
+31456,
+31460,
+31463,
+31466,
+31470,
+31473,
+31476,
+31480,
+31483,
+31486,
+31490,
+]
+
+private let bid_exponents_binary80_190: [Int32] = [
+31493,
+31496,
+31500,
+31503,
+31506,
+31510,
+31513,
+31516,
+31520,
+31523,
+31526,
+31530,
+31533,
+31536,
+31540,
+31543,
+31546,
+31549,
+31553,
+31556,
+31559,
+31563,
+31566,
+31569,
+31573,
+31576,
+31579,
+31583,
+31586,
+31589,
+31593,
+31596,
+31599,
+31603,
+31606,
+31609,
+31613,
+31616,
+31619,
+31623,
+31626,
+31629,
+31633,
+31636,
+31639,
+31642,
+31646,
+31649,
+31652,
+31656,
+]
+
+private let bid_exponents_binary80_191: [Int32] = [
+31659,
+31662,
+31666,
+31669,
+31672,
+31676,
+31679,
+31682,
+31686,
+31689,
+31692,
+31696,
+31699,
+31702,
+31706,
+31709,
+31712,
+31716,
+31719,
+31722,
+31726,
+31729,
+31732,
+31736,
+31739,
+31742,
+31745,
+31749,
+31752,
+31755,
+31759,
+31762,
+31765,
+31769,
+31772,
+31775,
+31779,
+31782,
+31785,
+31789,
+31792,
+31795,
+31799,
+31802,
+31805,
+31809,
+31812,
+31815,
+31819,
+31822,
+]
+
+private let bid_exponents_binary80_192: [Int32] = [
+31825,
+31829,
+31832,
+31835,
+31838,
+31842,
+31845,
+31848,
+31852,
+31855,
+31858,
+31862,
+31865,
+31868,
+31872,
+31875,
+31878,
+31882,
+31885,
+31888,
+31892,
+31895,
+31898,
+31902,
+31905,
+31908,
+31912,
+31915,
+31918,
+31922,
+31925,
+31928,
+31931,
+31935,
+31938,
+31941,
+31945,
+31948,
+31951,
+31955,
+31958,
+31961,
+31965,
+31968,
+31971,
+31975,
+31978,
+31981,
+31985,
+31988,
+]
+
+private let bid_exponents_binary80_193: [Int32] = [
+31991,
+31995,
+31998,
+32001,
+32005,
+32008,
+32011,
+32015,
+32018,
+32021,
+32025,
+32028,
+32031,
+32034,
+32038,
+32041,
+32044,
+32048,
+32051,
+32054,
+32058,
+32061,
+32064,
+32068,
+32071,
+32074,
+32078,
+32081,
+32084,
+32088,
+32091,
+32094,
+32098,
+32101,
+32104,
+32108,
+32111,
+32114,
+32118,
+32121,
+32124,
+32127,
+32131,
+32134,
+32137,
+32141,
+32144,
+32147,
+32151,
+32154,
+]
+
+private let bid_exponents_binary80_194: [Int32] = [
+32157,
+32161,
+32164,
+32167,
+32171,
+32174,
+32177,
+32181,
+32184,
+32187,
+32191,
+32194,
+32197,
+32201,
+32204,
+32207,
+32211,
+32214,
+32217,
+32221,
+32224,
+32227,
+32230,
+32234,
+32237,
+32240,
+32244,
+32247,
+32250,
+32254,
+32257,
+32260,
+32264,
+32267,
+32270,
+32274,
+32277,
+32280,
+32284,
+32287,
+32290,
+32294,
+32297,
+32300,
+32304,
+32307,
+32310,
+32314,
+32317,
+32320,
+]
+
+private let bid_exponents_binary80_195: [Int32] = [
+32323,
+32327,
+32330,
+32333,
+32337,
+32340,
+32343,
+32347,
+32350,
+32353,
+32357,
+32360,
+32363,
+32367,
+32370,
+32373,
+32377,
+32380,
+32383,
+32387,
+32390,
+32393,
+32397,
+32400,
+32403,
+32407,
+32410,
+32413,
+32417,
+32420,
+32423,
+32426,
+32430,
+32433,
+32436,
+32440,
+32443,
+32446,
+32450,
+32453,
+32456,
+32460,
+32463,
+32466,
+32470,
+32473,
+32476,
+32480,
+32483,
+32486,
+]
+
+private let bid_exponents_binary80_196: [Int32] = [
+32490,
+32493,
+32496,
+32500,
+32503,
+32506,
+32510,
+32513,
+32516,
+32519,
+32523,
+32526,
+32529,
+32533,
+32536,
+32539,
+32543,
+32546,
+32549,
+32553,
+32556,
+32559,
+32563,
+32566,
+32569,
+32573,
+32576,
+32579,
+32583,
+32586,
+32589,
+32593,
+32596,
+32599,
+32603,
+32606,
+32609,
+32612,
+32616,
+32619,
+32622,
+32626,
+32629,
+32632,
+32636,
+32639,
+32642,
+32646,
+32649,
+32652,
+]
+
+private let bid_exponents_binary80_197: [Int32] = [
+32656,
+32659,
+32662,
+32666,
+32669,
+32672,
+32676,
+32679,
+32682,
+32686,
+32689,
+32692,
+32696,
+32699,
+32702,
+32706,
+32709,
+32712,
+32715,
+32719,
+32722,
+32725,
+32729,
+32732,
+32735,
+32739,
+32742,
+32745,
+32749,
+32752,
+32755,
+32759,
+32762,
+32765,
+32769,
+32772,
+32775,
+32779,
+32782,
+32785,
+32789,
+32792,
+32795,
+32799,
+32802,
+32805,
+32808,
+32812,
+32815,
+32818,
+]
+
+private let bid_exponents_binary80_198: [Int32] = [
+32822,
+32825,
+32828,
+32832,
+32835,
+32838,
+32842,
+32845,
+32848,
+32852,
+32855,
+32858,
+32862,
+32865,
+32868,
+32872,
+32875,
+32878,
+32882,
+]
+
+// MARK: - bid_multipliers1_binary32
+
+extension BinaryFloatingPointTables {
+ internal static func bid_multipliers1_binary32(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_multipliers1_binary32_0[r]
+ case 1: return bid_multipliers1_binary32_1[r]
+ case 2: return bid_multipliers1_binary32_2[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_multipliers1_binary32_0: [UInt256] = [
+UInt256(651851512427, 655737588518723529, 7481633477359093489, 6013890151484785128),
+UInt256(814814390533, 14654730040930568123, 13963727865126254765, 12129048707783369314),
+UInt256(1018517988167, 4483354495881046442, 12842973812980430553, 1326252829447047930),
+UInt256(636573742604, 9719625587566735882, 12638544651540156999, 12358123064472874716),
+UInt256(795717178255, 12149531984458419853, 6574808777570420441, 10835967812163705491),
+UInt256(994646472819, 10575228962145636912, 12830196990390413455, 18156645783632019768),
+UInt256(621654045512, 4303675092127329118, 8018873118994008409, 18265432642411094211),
+UInt256(777067556890, 5379593865159161398, 800219361887734704, 8996732747731704052),
+UInt256(971334446112, 15947864368303727555, 10223646239214444188, 11245915934664630065),
+UInt256(607084028820, 9967415230189829722, 4083935890295333665, 16252069496020169599),
+UInt256(758855036025, 12459269037737287152, 14328291899723942890, 6480028814743048286),
+UInt256(948568795032, 1739028241889445228, 17910364874654928612, 17323408055283586166),
+UInt256(592855496895, 1086892651180903268, 1970606009804554575, 1603757997697465546),
+UInt256(741069371118, 15193673869258292797, 2463257512255693218, 15839755552403995644),
+UInt256(926336713898, 9768720299718090188, 7690757908747004427, 10576322403650218747),
+UInt256(578960446186, 10717136205751194271, 14030095729821653575, 4304358493067692765),
+UInt256(723700557733, 4173048220334217031, 12925933643849679065, 768762097907228052),
+UInt256(904625697166, 9827996293845159193, 11545731036384710927, 5572638640811422969),
+UInt256(565391060729, 1530811665225836592, 298552870099362473, 10400428178148221212),
+UInt256(706738825911, 6525200599959683644, 373191087624203091, 17612221241112664419),
+UInt256(883423532389, 3544814731522216651, 466488859530253864, 17403590532963442619),
+UInt256(552139707743, 4521352216415079358, 16432456601702266329, 10877244083102151637),
+UInt256(690174634679, 1040004252091461294, 11317198715273057103, 18208241122305077450),
+UInt256(862718293348, 15135063370396490330, 4923126357236545571, 18148615384453958909),
+UInt256(1078397866686, 472085139286061296, 15377279983400457772, 18074083212140060732),
+UInt256(673998666678, 14130111267335952022, 9610799989625286108, 2072929970732762150),
+UInt256(842498333348, 8439267047315164220, 2790127950176831827, 2591162463415952687),
+UInt256(1053122916685, 10549083809143955275, 3487659937721039783, 17074011134552104570),
+UInt256(658201822928, 8899020389928665998, 18320688525571507528, 17588785986736147213),
+UInt256(822752278660, 11123775487410832498, 13677488620109608603, 3539238409710632400),
+UInt256(1028440348325, 13904719359263540623, 7873488738282234945, 18259106067420454212),
+UInt256(642775217703, 10996292608753406841, 11838459489067478697, 4494412264496702026),
+UInt256(803469022129, 9133679742514370648, 963016306052184659, 10229701349048265437),
+UInt256(1004336277661, 16028785696570351214, 1203770382565230824, 8175440667882943892),
+UInt256(627710173538, 12323834069570163460, 14587414544385432977, 5109650417426839933),
+UInt256(784637716923, 6181420550107928517, 18234268180481791221, 10998749040210937820),
+UInt256(980797146154, 3115089669207522743, 8957777170320075314, 18360122318691060179),
+UInt256(612998216346, 6558617061682089618, 12516139759091128927, 16086762467609300516),
+UInt256(766247770432, 17421643363957387831, 6421802662009135351, 15496767066084237741),
+UInt256(957809713041, 3330310131237183173, 3415567309084031285, 14759272814177909272),
+UInt256(598631070650, 13610658878091709243, 4440572577391213505, 11530388518074887247),
+UInt256(748288838313, 7789951560759860746, 939029703311628978, 577927592311445347),
+UInt256(935361047891, 14349125469377213836, 10397159165994312030, 9945781527244082491),
+UInt256(584600654932, 6662360409147064695, 15721596515601220827, 1604427436100163653),
+UInt256(730750818665, 8327950511433830869, 15040309626074138129, 15840592350407368278),
+UInt256(913438523331, 15021624157719676491, 4965328977310508950, 5965682382727046636),
+UInt256(570899077082, 7082672089361103855, 797487601605374141, 17563609544486567859),
+UInt256(713623846352, 18076712148556155626, 14831917557288881389, 8119453875326046112),
+UInt256(892029807941, 4149146111985642917, 9316524909756325928, 14761003362584945544),
+UInt256(557518629963, 4899059329204720775, 8128671077811397657, 9225627101615590965),
+]
+
+private let bid_multipliers1_binary32_1: [UInt256] = [
+UInt256(696898287454, 1512138143078513065, 5549152828836859167, 16143719895446876610),
+UInt256(871122859317, 11113544715702917139, 11548127054473461863, 15567963850881207859),
+UInt256(1088903574147, 56872839346482712, 9823472799664439425, 14848268795174121920),
+UInt256(680564733841, 16176446589087409359, 6139670499790274641, 2362638969342744344),
+UInt256(850705917302, 6385500181077097987, 3062902106310455397, 7564984730105818334),
+UInt256(1063382396627, 17205247263201148291, 17663685688170232958, 14067916931059660821),
+UInt256(664613997892, 8447436530287023730, 8733960545892701647, 4180762063484900109),
+UInt256(830767497365, 10559295662858779663, 1694078645511101251, 614266560928737233),
+UInt256(1038459371706, 17810805597000862482, 15952656362171040275, 14602891256443085253),
+UInt256(649037107316, 15743439516552926955, 14582096244784288076, 6820964026063234331),
+UInt256(811296384146, 1232555321981607078, 13615934287552972191, 8526205032579042914),
+UInt256(1014120480182, 10764066189331784656, 7796545822586439431, 6046070272296415738),
+UInt256(633825300114, 2115855349904977506, 4872841139116524644, 10696322947826341692),
+UInt256(792281625142, 11868191224235997690, 15314423460750431613, 13370403684782927115),
+UInt256(990352031428, 5611866993440221305, 9919657289083263709, 2877946550696495182),
+UInt256(618970019642, 12730788907754914123, 17729000851745509578, 4104559603399003441),
+UInt256(773712524553, 6690114097838866846, 17549565046254499068, 14354071541103530109),
+UInt256(967140655691, 12974328640725971462, 12713584270963348027, 17942589426379412636),
+UInt256(604462909807, 5803112391240038212, 3334304150924704613, 8908275382273438946),
+UInt256(755578637259, 2642204470622659861, 4167880188655880766, 15747030246269186586),
+UInt256(944473296573, 17137813643560488538, 9821536254247238862, 10460415770981707425),
+UInt256(590295810358, 13016976536438999288, 10750146177331912193, 1926073838436179237),
+UInt256(737869762948, 7047848633693973302, 13437682721664890241, 7019278316472611950),
+UInt256(922337203685, 8809810792117466628, 7573731365226336993, 13385783914018152841),
+UInt256(576460752303, 7811974754287110594, 13956954140121236429, 1448585918620263670),
+UInt256(720575940379, 5153282424431500339, 8222820638296769728, 6422418416702717491),
+UInt256(900719925474, 1829917012111987520, 5666839779443574256, 8028023020878396864),
+UInt256(562949953421, 5755384150997380104, 3541774862152233910, 5017514388048998040),
+UInt256(703687441776, 11805916207174113034, 4427218577690292387, 15495265021916023358),
+UInt256(879609302220, 14757395258967641292, 14757395258967641292, 14757395258967641293),
+UInt256(1099511627776, 0, 0, 0),
+UInt256(687194767360, 0, 0, 0),
+UInt256(858993459200, 0, 0, 0),
+UInt256(1073741824000, 0, 0, 0),
+UInt256(671088640000, 0, 0, 0),
+UInt256(838860800000, 0, 0, 0),
+UInt256(1048576000000, 0, 0, 0),
+UInt256(655360000000, 0, 0, 0),
+UInt256(819200000000, 0, 0, 0),
+UInt256(1024000000000, 0, 0, 0),
+UInt256(640000000000, 0, 0, 0),
+UInt256(800000000000, 0, 0, 0),
+UInt256(1000000000000, 0, 0, 0),
+UInt256(625000000000, 0, 0, 0),
+UInt256(781250000000, 0, 0, 0),
+UInt256(976562500000, 0, 0, 0),
+UInt256(610351562500, 0, 0, 0),
+UInt256(762939453125, 0, 0, 0),
+UInt256(953674316406, 4611686018427387904, 0, 0),
+UInt256(596046447753, 16717361816799281152, 0, 0),
+]
+
+private let bid_multipliers1_binary32_2: [UInt256] = [
+UInt256(745058059692, 7061644215716937728, 0, 0),
+UInt256(931322574615, 8827055269646172160, 0, 0),
+UInt256(582076609134, 12434438571169939456, 0, 0),
+UInt256(727595761418, 6319676177107648512, 0, 0),
+UInt256(909494701772, 17122967258239336448, 0, 0),
+UInt256(568434188608, 1478482499544809472, 0, 0),
+UInt256(710542735760, 1848103124431011840, 0, 0),
+UInt256(888178419700, 2310128905538764800, 0, 0),
+UInt256(555111512312, 10667202602816503808, 0, 0),
+UInt256(693889390390, 13334003253520629760, 0, 0),
+UInt256(867361737988, 7444132030046011392, 0, 0),
+UInt256(1084202172485, 9305165037557514240, 0, 0),
+UInt256(677626357803, 8121571157687140352, 0, 0),
+UInt256(847032947254, 5540277928681537536, 0, 0),
+UInt256(1058791184067, 16148719447706697728, 0, 0),
+UInt256(661744490042, 7787106645602992128, 0, 0),
+UInt256(827180612553, 510511270148964352, 0, 0),
+UInt256(1033975765691, 5249825106113593344, 0, 0),
+UInt256(646234853557, 975297682107301888, 0, 0),
+UInt256(807793566946, 5830808121061515264, 0, 0),
+]
+
+// MARK: - bid_multipliers2_binary32
+
+extension BinaryFloatingPointTables {
+ internal static func bid_multipliers2_binary32(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_multipliers2_binary32_0[r]
+ case 1: return bid_multipliers2_binary32_1[r]
+ case 2: return bid_multipliers2_binary32_2[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_multipliers2_binary32_0: [UInt256] = [
+UInt256(325925756213, 9551240831114137572, 12964188775534322552, 12230317112597168372),
+UInt256(407407195266, 16550737057320059869, 16205235969417903190, 15287896390746460465),
+UInt256(509258994083, 11465049284795299029, 6421486906490215276, 9886498451578299773),
+UInt256(318286871302, 4859812793783367941, 6319272325770078499, 15402433569091213166),
+UInt256(397858589127, 15298138029083985734, 12510776425639986028, 14641355942936628554),
+UInt256(497323236409, 14510986517927594264, 6415098495195206727, 18301694928670785692),
+UInt256(310827022756, 2151837546063664559, 4009436559497004204, 18356088358060322914),
+UInt256(388533778445, 2689796932579580699, 400109680943867352, 4498366373865852026),
+UInt256(485667223056, 7973932184151863777, 14335195156461997902, 5622957967332315033),
+UInt256(303542014410, 4983707615094914861, 2041967945147666832, 17349406784864860608),
+UInt256(379427518012, 15453006555723419384, 7164145949861971445, 3240014407371524143),
+UInt256(474284397516, 869514120944722614, 8955182437327464306, 8661704027641793083),
+UInt256(296427748447, 9766818362445227442, 985303004902277287, 10025251035703508581),
+UInt256(370534685559, 7596836934629146398, 10455000792982622417, 7919877776201997822),
+UInt256(463168356949, 4884360149859045094, 3845378954373502213, 14511533238679885182),
+UInt256(289480223093, 5358568102875597135, 16238419901765602595, 11375551283388622191),
+UInt256(361850278866, 11309896147021884323, 15686338858779615340, 9607753085808389834),
+UInt256(452312848583, 4913998146922579596, 14996237555047131271, 12009691357260487293),
+UInt256(282695530364, 9988777869467694104, 149276435049681236, 14423586125928886414),
+UInt256(353369412955, 12485972336834617630, 186595543812101545, 18029482657411108018),
+UInt256(441711766194, 10995779402615884133, 9456616466619902740, 8701795266481721310),
+UInt256(276069853871, 11484048145062315487, 8216228300851133164, 14661994078405851627),
+UInt256(345087317339, 9743374162900506455, 5658599357636528551, 18327492598007314533),
+UInt256(431359146674, 7567531685198245165, 2461563178618272785, 18297679729081755263),
+UInt256(539198933343, 236042569643030648, 7688639991700228886, 9037041606070030366),
+UInt256(336999333339, 7065055633667976011, 4805399994812643054, 1036464985366381075),
+UInt256(421249166674, 4219633523657582110, 1395063975088415913, 10518953268562752152),
+UInt256(526561458342, 14497913941426753445, 10967202005715295699, 17760377604130828093),
+UInt256(329100911464, 4449510194964332999, 9160344262785753764, 8794392993368073607),
+UInt256(411376139330, 5561887743705416249, 6838744310054804301, 10992991241710092008),
+UInt256(514220174162, 16175731716486546119, 13160116405995893280, 18352925070565002914),
+UInt256(321387608851, 14721518341231479228, 15142601781388515156, 11470578169103126821),
+UInt256(401734511064, 13790211908111961132, 481508153026092329, 14338222711378908527),
+UInt256(502168138830, 17237764885139951415, 601885191282615412, 4087720333941471946),
+UInt256(313855086769, 6161917034785081730, 7293707272192716488, 11778197245568195775),
+UInt256(392318858461, 12314082311908740066, 18340506127095671418, 14722746556960244718),
+UInt256(490398573077, 1557544834603761371, 13702260622014813465, 9180061159345530090),
+UInt256(306499108173, 3279308530841044809, 6258069879545564463, 17266753270659426066),
+UInt256(383123885216, 8710821681978693915, 12434273367859343483, 16971755569896894679),
+UInt256(478904856520, 10888527102473367394, 10931155691396791450, 16603008443943730444),
+UInt256(299315535325, 6805329439045854621, 11443658325550382560, 14988566295892219432),
+UInt256(374144419156, 13118347817234706181, 469514851655814489, 288963796155722674),
+UInt256(467680523945, 16397934771543382726, 5198579582997156015, 4972890763622041246),
+UInt256(292300327466, 3331180204573532347, 17084170294655386221, 10025585754904857635),
+UInt256(365375409332, 13387347292571691242, 16743526849891844872, 17143668212058459947),
+UInt256(456719261665, 16734184115714614053, 11706036525510030283, 2982841191363523318),
+UInt256(285449538541, 3541336044680551927, 9622115837657462878, 18005176809098059738),
+UInt256(356811923176, 9038356074278077813, 7415958778644440694, 13283098974517798864),
+UInt256(446014903970, 11297945092847597266, 13881634491732938772, 7380501681292472772),
+UInt256(278759314981, 11672901701457136195, 13287707575760474636, 13836185587662571291),
+]
+
+private let bid_multipliers2_binary32_1: [UInt256] = [
+UInt256(348449143727, 756069071539256532, 11997948451273205391, 17295231984578214113),
+UInt256(435561429658, 14780144394706234377, 14997435564091506739, 17007353962295379738),
+UInt256(544451787073, 9251808456528017164, 4911736399832219712, 16647506434441836768),
+UInt256(340282366920, 17311595331398480487, 12293207286749913128, 10404691521526147980),
+UInt256(425352958651, 3192750090538548993, 10754823090010003506, 13005864401907684975),
+UInt256(531691198313, 17825995668455349953, 18055214880939892287, 7033958465529830411),
+UInt256(332306998946, 4223718265143511865, 4366980272946350823, 11313753068597225863),
+UInt256(415383748682, 14503019868284165639, 10070411359610326433, 9530505317319144425),
+UInt256(519229685853, 8905402798500431241, 7976328181085520137, 16524817665076318435),
+UInt256(324518553658, 7871719758276463477, 16514420159246919846, 3410482013031617166),
+UInt256(405648192073, 616277660990803539, 6807967143776486095, 13486474553144297265),
+UInt256(507060240091, 5382033094665892328, 3898272911293219715, 12246407173002983677),
+UInt256(316912650057, 1057927674952488753, 2436420569558262322, 5348161473913170846),
+UInt256(396140812571, 5934095612117998845, 7657211730375215806, 15908573879246239366),
+UInt256(495176015714, 2805933496720110652, 14183200681396407662, 10662345312203023399),
+UInt256(309485009821, 6365394453877457061, 18087872462727530597, 2052279801699501721),
+UInt256(386856262276, 12568429085774209231, 8774782523127249534, 7177035770551765055),
+UInt256(483570327845, 15710536357217761539, 6356792135481674013, 18194666750044482126),
+UInt256(302231454903, 12124928232474794914, 1667152075462352306, 13677509727991495281),
+UInt256(377789318629, 10544474272166105738, 11307312131182716191, 7873515123134593293),
+UInt256(472236648286, 17792278858635020077, 4910768127123619431, 5230207885490853713),
+UInt256(295147905179, 6508488268219499644, 5375073088665956096, 10186408956072865427),
+UInt256(368934881474, 3523924316846986651, 6718841360832445120, 12733011195091081783),
+UInt256(461168601842, 13628277432913509122, 3786865682613168496, 15916263993863852229),
+UInt256(288230376151, 13129359413998331105, 6978477070060618214, 9947664996164907643),
+UInt256(360287970189, 11800013249070525977, 13334782356003160672, 3211209208351358746),
+UInt256(450359962737, 914958506055993760, 2833419889721787128, 4014011510439198432),
+UInt256(281474976710, 12101064112353465860, 1770887431076116955, 2508757194024499020),
+UInt256(351843720888, 5902958103587056517, 2213609288845146193, 16971004547812787487),
+UInt256(439804651110, 7378697629483820646, 7378697629483820646, 7378697629483820647),
+UInt256(549755813888, 0, 0, 0),
+UInt256(343597383680, 0, 0, 0),
+UInt256(429496729600, 0, 0, 0),
+UInt256(536870912000, 0, 0, 0),
+UInt256(335544320000, 0, 0, 0),
+UInt256(419430400000, 0, 0, 0),
+UInt256(524288000000, 0, 0, 0),
+UInt256(327680000000, 0, 0, 0),
+UInt256(409600000000, 0, 0, 0),
+UInt256(512000000000, 0, 0, 0),
+UInt256(320000000000, 0, 0, 0),
+UInt256(400000000000, 0, 0, 0),
+UInt256(500000000000, 0, 0, 0),
+UInt256(312500000000, 0, 0, 0),
+UInt256(390625000000, 0, 0, 0),
+UInt256(488281250000, 0, 0, 0),
+UInt256(305175781250, 0, 0, 0),
+UInt256(381469726562, 9223372036854775808, 0, 0),
+UInt256(476837158203, 2305843009213693952, 0, 0),
+UInt256(298023223876, 17582052945254416384, 0, 0),
+]
+
+private let bid_multipliers2_binary32_2: [UInt256] = [
+UInt256(372529029846, 3530822107858468864, 0, 0),
+UInt256(465661287307, 13636899671677861888, 0, 0),
+UInt256(291038304567, 6217219285584969728, 0, 0),
+UInt256(363797880709, 3159838088553824256, 0, 0),
+UInt256(454747350886, 8561483629119668224, 0, 0),
+UInt256(284217094304, 739241249772404736, 0, 0),
+UInt256(355271367880, 924051562215505920, 0, 0),
+UInt256(444089209850, 1155064452769382400, 0, 0),
+UInt256(277555756156, 5333601301408251904, 0, 0),
+UInt256(346944695195, 6667001626760314880, 0, 0),
+UInt256(433680868994, 3722066015023005696, 0, 0),
+UInt256(542101086242, 13875954555633532928, 0, 0),
+UInt256(338813178901, 13284157615698345984, 0, 0),
+UInt256(423516473627, 2770138964340768768, 0, 0),
+UInt256(529395592033, 17297731760708124672, 0, 0),
+UInt256(330872245021, 3893553322801496064, 0, 0),
+UInt256(413590306276, 9478627671929257984, 0, 0),
+UInt256(516987882845, 11848284589911572480, 0, 0),
+UInt256(323117426778, 9711020877908426752, 0, 0),
+UInt256(403896783473, 2915404060530757632, 0, 0),
+]
+
+// MARK: - bid_multipliers1_binary64
+
+extension BinaryFloatingPointTables {
+ internal static func bid_multipliers1_binary64(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_multipliers1_binary64_0[r]
+ case 1: return bid_multipliers1_binary64_1[r]
+ case 2: return bid_multipliers1_binary64_2[r]
+ case 3: return bid_multipliers1_binary64_3[r]
+ case 4: return bid_multipliers1_binary64_4[r]
+ case 5: return bid_multipliers1_binary64_5[r]
+ case 6: return bid_multipliers1_binary64_6[r]
+ case 7: return bid_multipliers1_binary64_7[r]
+ case 8: return bid_multipliers1_binary64_8[r]
+ case 9: return bid_multipliers1_binary64_9[r]
+ case 10: return bid_multipliers1_binary64_10[r]
+ case 11: return bid_multipliers1_binary64_11[r]
+ case 12: return bid_multipliers1_binary64_12[r]
+ case 13: return bid_multipliers1_binary64_13[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_multipliers1_binary64_0: [UInt256] = [
+UInt256(7754513766366540701, 11651621577776737258, 10276842184138466546, 1837554224478941466),
+UInt256(4846571103979087938, 9588106495324154738, 11034712383513929495, 5760157408726726321),
+UInt256(6058213879973859923, 2761761082300417615, 4570018442537636061, 2588510742481019997),
+UInt256(7572767349967324903, 17287259408157685731, 1100837034744657172, 7847324446528662900),
+UInt256(4732979593729578064, 17722066157739635437, 16828924211211268396, 14127949815935190120),
+UInt256(5916224492161972581, 3705838623464992681, 7201097208731921783, 17659937269918987650),
+UInt256(7395280615202465726, 9243984297758628755, 13613057529342290133, 17463235568971346659),
+UInt256(4622050384501541079, 1165804167671755068, 6202317946625237381, 13220365239820785614),
+UInt256(5777562980626926348, 15292313264871857547, 7752897433281546727, 2690398494493818305),
+UInt256(7221953725783657936, 668647507380270318, 5079435773174545504, 17198056173399436594),
+UInt256(9027442157229572420, 835809384225337897, 15572666753322957689, 3050826143039744126),
+UInt256(5642151348268482762, 9745752901995611994, 2815387693185766699, 13435981385468309839),
+UInt256(7052689185335603453, 2958819090639739184, 12742606653336984182, 12183290713407999394),
+UInt256(8815861481669504316, 8310209881727061884, 15928258316671230228, 6005741354905223435),
+UInt256(5509913426043440197, 14417253212934189486, 731789411064743084, 12976960383670540455),
+UInt256(6887391782554300247, 4186508460885573145, 10138108800685704663, 16221200479588175569),
+UInt256(8609239728192875309, 621449557679578527, 17284322019284518733, 15664814581057831557),
+UInt256(5380774830120547068, 2694248982763430531, 17720230289693906064, 12096352122374838675),
+UInt256(6725968537650683835, 3367811228454288164, 17538601843689994676, 15120440152968548344),
+UInt256(8407460672063354793, 18044822090850023918, 3476508230902941730, 453806117501133814),
+UInt256(5254662920039596746, 4360484779140183092, 16007875699596502293, 4895314841865596538),
+UInt256(6568328650049495932, 14673978010780004674, 1563100550786076250, 10730829570759383576),
+UInt256(8210410812561869915, 18342472513475005842, 11177247725337371121, 4190164926594453662),
+UInt256(5131506757851168697, 9158202311708184699, 11597465846763244854, 14148068125190003299),
+UInt256(6414383447313960871, 16059438908062618778, 9885146290026668164, 8461713119632728315),
+UInt256(8017979309142451089, 15462612616650885569, 3133060825678559397, 10577141399540910394),
+UInt256(5011237068214031931, 2746603857765721624, 13487378062117569383, 8916556383926762949),
+UInt256(6264046335267539913, 17268312877489315742, 16859222577646961729, 6534009461481065782),
+UInt256(7830057919084424892, 7750333041579480966, 11850656185203926353, 12779197845278720131),
+UInt256(4893786199427765557, 14067330187841951412, 2794974097325066067, 1069469625658118226),
+UInt256(6117232749284706947, 3749104679520275553, 3493717621656332583, 15171895087354811494),
+UInt256(7646540936605883684, 74694830972956537, 8978833045497803633, 14353182840766126464),
+UInt256(4779088085378677302, 9270056306212873643, 17140985699504597031, 2053210247837747184),
+UInt256(5973860106723346628, 2364198345911316246, 16814546105953358384, 16401570865079347692),
+UInt256(7467325133404183285, 2955247932389145308, 11794810595586922173, 2055219507639632999),
+UInt256(4667078208377614553, 4152872966956909769, 16595128659096602166, 3590355201488464576),
+UInt256(5833847760472018191, 9802777227123525116, 6908852768588588995, 13711316038715356528),
+UInt256(7292309700590022739, 7641785515477018491, 8636065960735736244, 12527459029966807756),
+UInt256(9115387125737528424, 4940545875918885210, 6183396432492282401, 15659323787458509695),
+UInt256(5697116953585955265, 3087841172449303256, 8476308788735064405, 2869548339520486704),
+UInt256(7121396191982444081, 8471487483989016974, 10595385985918830506, 8198621442827996284),
+UInt256(8901745239978055101, 15201045373413659122, 4020860445543762325, 1024904766680219546),
+UInt256(5563590774986284438, 11806496367597230903, 7124723796892239357, 2946408488388831169),
+UInt256(6954488468732855548, 5534748422641762821, 4294218727687911292, 8294696628913426865),
+UInt256(8693110585916069435, 6918435528302203526, 9979459428037277019, 10368370786141783581),
+UInt256(5433194116197543397, 2018179195975183252, 1625476124095910233, 4174388732124920786),
+UInt256(6791492645246929246, 7134410013396366969, 2031845155119887791, 9829671933583538887),
+UInt256(8489365806558661557, 18141384553600234519, 7151492462327247643, 7675403898552035704),
+UInt256(5305853629099163473, 13644208355213840526, 11387211816595611633, 2491284427381328363),
+UInt256(6632317036373954342, 3220202388735136946, 5010642733889738733, 7725791552654048358),
+]
+
+private let bid_multipliers1_binary64_1: [UInt256] = [
+UInt256(8290396295467442927, 13248625022773696990, 15486675454216949224, 14268925459244948351),
+UInt256(5181497684667151829, 15197919666874642475, 5067486140458205361, 8918078412028092720),
+UInt256(6476872105833939787, 5162341528311139382, 1722671657145368797, 15759284033462503804),
+UInt256(8096090132292424734, 1841240891961536323, 11376711608286486805, 5864046986545966042),
+UInt256(5060056332682765458, 14985833612758123914, 4804601745965360301, 5970872375804922729),
+UInt256(6325070415853456823, 9508919979092879084, 15229124219311476184, 12075276488183541315),
+UInt256(7906338019816821029, 7274463955438710952, 589661200429793614, 15094095610229426643),
+UInt256(4941461262385513143, 6852382981362888297, 368538250268621009, 4822123737966003748),
+UInt256(6176826577981891429, 3953792708276222467, 5072358831263164165, 10639340690884892589),
+UInt256(7721033222477364286, 9553926903772665988, 1728762520651567302, 17910861882033503640),
+UInt256(4825645764048352679, 1359518296430528338, 10303848612262005372, 6582602657843551871),
+UInt256(6032057205060440848, 15534455925820324135, 3656438728472730907, 8228253322304439839),
+UInt256(7540071506325551061, 971325833565853552, 18405606465873077346, 5673630634453161895),
+UInt256(4712544691453469413, 2912921655192352422, 11503504041170673341, 8157705164960614088),
+UInt256(5890680864316836766, 8252838087417828432, 5156008014608565868, 14808817474628155514),
+UInt256(7363351080396045958, 1092675572417509732, 6445010018260707336, 64277769575642777),
+UInt256(9204188850495057447, 10589216502376662973, 8056262522825884170, 80347211969553471),
+UInt256(5752618031559410904, 13535789341626496214, 7341007085979871558, 4661903025908358824),
+UInt256(7190772539449263630, 16919736677033120267, 18399630894329615255, 15050750819240224337),
+UInt256(8988465674311579538, 11926298809436624526, 18387852599484631165, 14201752505622892517),
+UInt256(5617791046444737211, 12065622774325278233, 6880721856250506574, 11181938325228001776),
+UInt256(7022238808055921514, 10470342449479209887, 13212588338740521122, 4754050869680226411),
+UInt256(8777798510069901893, 3864556024994236551, 11904049404998263498, 15165935623955058822),
+UInt256(5486124068793688683, 4721190524835091796, 14357559905764996542, 14090395783399299668),
+UInt256(6857655085992110854, 1289802137616476841, 17946949882206245678, 8389622692394348777),
+UInt256(8572068857490138567, 10835624708875371860, 8598629297475643386, 1263656328638160163),
+UInt256(5357543035931336604, 13689794470688189268, 14597515347777052924, 5401471223826238006),
+UInt256(6696928794914170755, 17112243088360236585, 18246894184721316155, 6751839029782797507),
+UInt256(8371160993642713444, 16778617842022907828, 8973559675619481482, 3828112768801108980),
+UInt256(5231975621026695903, 1263264114409541584, 14831846834116951734, 7004256498928081017),
+UInt256(6539969526283369878, 15414138198294090693, 93064468936638051, 17978692660514877079),
+UInt256(8174961907854212348, 10044300711012837558, 4728016604598185468, 17861679807216208444),
+UInt256(5109351192408882717, 15501059981237799281, 16790068433156029630, 1940177842655354470),
+UInt256(6386688990511103397, 5541266921265085390, 7152527486162873325, 11648594340173968895),
+UInt256(7983361238138879246, 11538269670008744641, 18164031394558367465, 725684869935297407),
+UInt256(4989600773836799529, 2599732525328077497, 4434990593957897809, 11982768089778030640),
+UInt256(6237000967295999411, 7861351675087484775, 10155424260874760166, 1143402056940374587),
+UInt256(7796251209119999264, 5215003575431968065, 8082594307666062303, 10652624608030244042),
+UInt256(4872657005699999540, 3259377234644980040, 16580836488359758699, 13575419407659984382),
+UInt256(6090821257124999425, 4074221543306225051, 2279301536740146758, 12357588241147592574),
+UInt256(7613526571406249281, 9704462947560169217, 16684184976207347160, 6223613264579714909),
+UInt256(4758454107128905800, 17594504388293575521, 3510086582488510119, 3889758290362321819),
+UInt256(5948067633911132251, 3546386411657417785, 8999294246538025553, 250511844525514369),
+UInt256(7435084542388915313, 18268041069853935943, 15860803826599919845, 4924825824084280865),
+UInt256(4646927838993072071, 4499996641017628108, 16830531419266031759, 5383859149266369493),
+UInt256(5808659798741340089, 1013309782844647232, 2591420200372988083, 2118137918155573962),
+UInt256(7260824748426675111, 5878323246983196944, 3239275250466235103, 16482730452976631164),
+UInt256(9076030935533343889, 2736218040301608276, 4049094063082793879, 15991727047793401051),
+UInt256(5672519334708339930, 13239351321256974932, 11754055826281521982, 16912358432511957513),
+UInt256(7090649168385424913, 7325817114716442857, 14692569782851902478, 11917076003785171083),
+]
+
+private let bid_multipliers1_binary64_2: [UInt256] = [
+UInt256(8863311460481781141, 13768957411822941476, 4530654173282714386, 5672972967876688046),
+UInt256(5539569662801113213, 10911441391603032374, 12055030895156472299, 8157294123350317933),
+UInt256(6924462078501391516, 18250987757931178372, 5845416582090814566, 5584931635760509512),
+UInt256(8655577598126739396, 4366990623704421349, 7306770727613518207, 16204536581555412698),
+UInt256(5409735998829212122, 11952741176670039151, 6872574713972142831, 17045364391113214793),
+UInt256(6762169998536515153, 5717554433982773131, 3979032374037790635, 16695019470464130587),
+UInt256(8452712498170643941, 11758629060905854318, 362104449119850390, 16257088319652775329),
+UInt256(5282945311356652463, 9654986172279852900, 14061373335982070206, 5548994181355596677),
+UInt256(6603681639195815579, 7457046696922428221, 17576716669977587757, 16159614763549271654),
+UInt256(8254602048994769474, 4709622352725647373, 8135837782189820985, 6364460399154425855),
+UInt256(5159126280621730921, 7555199988880917512, 7390741623082332067, 15507002795539985920),
+UInt256(6448907850777163651, 14055686004528534794, 9238427028852915084, 14772067475997594496),
+UInt256(8061134813471454564, 12957921487233280589, 2324661749211368048, 18340271287441503),
+UInt256(5038209258419659102, 17322072966375576176, 3758756602470798982, 11462669554650940),
+UInt256(6297761573024573878, 12429219171114694412, 4698445753088498727, 9237700373798089483),
+UInt256(7872201966280717348, 6313151927038592207, 5873057191360623409, 6935439448820223949),
+UInt256(4920126228925448342, 13169091991253895937, 10588189772241471486, 15863864701581109728),
+UInt256(6150157786156810428, 7237992952212594113, 17846923233729227262, 10606458840121611352),
+UInt256(7687697232696013035, 9047491190265742642, 8473595986879370366, 4034701513297238382),
+UInt256(4804810770435008147, 3348838984702395199, 9907683510226994382, 16356746501092937701),
+UInt256(6006013463043760183, 18021106786160157711, 7772918369356355074, 11222561089511396318),
+UInt256(7507516828804700229, 17914697464272809235, 5104461943268055939, 4804829325034469590),
+UInt256(4692198018002937643, 13502528924384199724, 884445705328841010, 697175318932849542),
+UInt256(5865247522503672054, 12266475137052861751, 1105557131661051262, 10094841185520837735),
+UInt256(7331559403129590068, 6109721884461301380, 15217004469858477790, 3395179445046271361),
+UInt256(9164449253911987585, 7637152355576626726, 574511513613545621, 13467346343162615009),
+UInt256(5727780783694992240, 16302435268303861463, 14194127751290629725, 10722934473690328333),
+UInt256(7159725979618740301, 1931300011670275213, 13130973670685899252, 18015354110540298320),
+UInt256(8949657474523425376, 7025811033015231921, 2578659033075210354, 4072448564465821284),
+UInt256(5593535921577140860, 4391131895634519950, 13140876941740476231, 7156966371218526206),
+UInt256(6991919901971426075, 5488914869543149938, 7202724140320819481, 4334521945595769854),
+UInt256(8739899877464282594, 2249457568501549518, 18226777212255800159, 10029838450422100221),
+UInt256(5462437423415176621, 6017596998740856353, 6780049739232487195, 13186178059154894494),
+UInt256(6828046779268970776, 12133682266853458345, 13086748192467996898, 11871036555516230214),
+UInt256(8535058474086213470, 15167102833566822932, 2523377185302832411, 5615423657540511959),
+UInt256(5334411546303883419, 4867753252551876428, 10800482777669046065, 1203796776749126023),
+UInt256(6668014432879854274, 1473005547262457631, 13500603472086307581, 6116431989363795432),
+UInt256(8335018041099817842, 11064628970932847847, 12264068321680496572, 12257226005132132194),
+UInt256(5209386275687386151, 11527079125260417808, 14582571728691392213, 16884138290062358430),
+UInt256(6511732844609232689, 9797162888148134356, 18228214660864240267, 7270114807295784325),
+UInt256(8139666055761540861, 16858139628612555850, 4338524252370748718, 4475957490692342502),
+UInt256(5087291284850963038, 12842180277096541358, 7323263676159105852, 16632531486964877776),
+UInt256(6359114106063703798, 6829353309515900889, 18377451632053658124, 2343920284996545604),
+UInt256(7948892632579629747, 17760063673749651920, 9136756484784908943, 2929900356245682005),
+UInt256(4968057895362268592, 8794196786879838498, 5710472802990568089, 8748716750294633109),
+UInt256(6210072369202835740, 10992745983599798122, 16361463040592985919, 15547581956295679290),
+UInt256(7762590461503544675, 13740932479499747653, 11228456763886456591, 14822791426942211209),
+UInt256(4851619038439715422, 6282239790473648331, 9323628486642729321, 16181773669479963862),
+UInt256(6064523798049644277, 17076171774946836222, 7042849589876023748, 6392159031567791115),
+UInt256(7580654747562055347, 7510156663401381565, 18026934024199805493, 7990198789459738893),
+]
+
+private let bid_multipliers1_binary64_3: [UInt256] = [
+UInt256(4737909217226284592, 2388004905412169526, 13572676774338572385, 7299717252626030761),
+UInt256(5922386521532855740, 2985006131765211908, 7742473931068439673, 13736332584209926355),
+UInt256(7402983151916069675, 3731257664706514885, 9678092413835549592, 3335357674980244231),
+UInt256(4626864469947543547, 26193031227877851, 8354650767860912447, 2084598546862652645),
+UInt256(5783580587434429433, 13867799344317011026, 5831627441398752654, 16440806238860479518),
+UInt256(7229475734293036792, 3499691125114100070, 16512906338603216626, 11327635761720823589),
+UInt256(9036844667866295990, 4374613906392625088, 11417760886399244975, 4936172665296253678),
+UInt256(5648027917416434993, 16569191746777554392, 7136100553999528109, 10002636943451240405),
+UInt256(7060034896770543742, 6876431628189779278, 8920125692499410136, 17114982197741438410),
+UInt256(8825043620963179677, 17818911572091999906, 1926785078769486863, 2946983673467246397),
+UInt256(5515652263101987298, 13442662741771193893, 5815926692658317193, 8759393823558110854),
+UInt256(6894565328877484123, 7579956390359216558, 11881594384250284395, 15560928297875026471),
+UInt256(8618206661096855154, 4863259469521632794, 5628620943458079686, 14839474353916395185),
+UInt256(5386379163185534471, 7651223186878408400, 8129574108088687708, 4662985452770359087),
+UInt256(6732973953981918089, 4952342965170622596, 10161967635110859635, 5828731815962948858),
+UInt256(8416217442477397611, 10802114724890666149, 12702459543888574544, 2674228751526298169),
+UInt256(5260135901548373507, 4445478693842972391, 10244880224144053042, 1671392969703936356),
+UInt256(6575169876935466884, 945162348876327585, 8194414261752678398, 11312613248984696253),
+UInt256(8218962346169333605, 1181452936095409481, 14854703845618235902, 4917394524376094508),
+UInt256(5136851466355833503, 3044251094273324878, 2366660875870315582, 16908429633017222779),
+UInt256(6421064332944791878, 17640371923123819809, 12181698131692670286, 11912165004416752666),
+UInt256(8026330416180989848, 12827092867049998954, 1392064609333674146, 5666834218666165025),
+UInt256(5016456510113118655, 8016933041906249346, 5481726399260934245, 8153457405093741045),
+UInt256(6270570637641398319, 5409480283955423778, 16075530035930943614, 14803507774794564210),
+UInt256(7838213297051747899, 2150164336516891819, 10871040508058903710, 9281012681638429454),
+UInt256(4898883310657342436, 17484753774818915051, 4488557308323120867, 1188946907596630505),
+UInt256(6123604138321678046, 3409198144814092198, 999010616976513179, 15321241689777951843),
+UInt256(7654505172902097557, 13484869717872391055, 10472135308075417282, 14539866093795051900),
+UInt256(4784065733063810973, 10733886582883938361, 13462613595188217657, 13699102327049295341),
+UInt256(5980082166329763716, 18029044247032310856, 2993208938703108360, 3288819853529455465),
+UInt256(7475102707912204646, 4089561235080836954, 3741511173378885450, 4111024816911819331),
+UInt256(4671939192445127903, 16391033827207686808, 6950130501789191310, 7181076528997274986),
+UInt256(5839923990556409879, 15877106265582220606, 8687663127236489137, 18199717698101369540),
+UInt256(7299904988195512349, 15234696813550387854, 1636206872190835614, 8914589067344548213),
+UInt256(9124881235244390437, 5208312961655821105, 11268630627093320326, 1919864297325909458),
+UInt256(5703050772027744023, 5561038610248582143, 125365114292243347, 15034973241110857124),
+UInt256(7128813465034680029, 2339612244383339774, 13991764448147467896, 14182030532961183500),
+UInt256(8911016831293350036, 7536201323906562622, 8266333523329559062, 17727538166201479375),
+UInt256(5569385519558343772, 13933497864296377447, 554772433653586510, 6468025335448536706),
+UInt256(6961731899447929715, 17416872330370471808, 14528523597349146849, 17308403706165446690),
+UInt256(8702164874309912144, 17159404394535701856, 18160654496686433562, 7800446577424644651),
+UInt256(5438853046443695090, 10724627746584813660, 11350409060429020976, 9486965129317790811),
+UInt256(6798566308054618863, 4182412646376241267, 14188011325536276220, 11858706411647238513),
+UInt256(8498207885068273579, 616329789542913680, 13123328138492957371, 14823383014559048142),
+UInt256(5311379928167670986, 16526107182960178714, 8202080086558098357, 6958771374885711137),
+UInt256(6639224910209588733, 11434261941845447585, 1029228071342847138, 13310150237034526825),
+UInt256(8299031137761985917, 457769372024645769, 5898221107605946827, 7414315759438382723),
+UInt256(5186894461101241198, 2591948866729097557, 15215603238322186527, 2328104340435295250),
+UInt256(6483618076376551497, 12463308120266147755, 5184445992620569446, 16745188480826282774),
+UInt256(8104522595470689372, 1744077095050520982, 1868871472348323904, 11708113564178077660),
+]
+
+private let bid_multipliers1_binary64_4: [UInt256] = [
+UInt256(5065326622169180857, 10313420221261351421, 15003102725499866152, 7317570977611298537),
+UInt256(6331658277711476071, 17503461295004077181, 4918820351592668978, 9146963722014123172),
+UInt256(7914572847139345089, 17267640600327708572, 10760211457918224127, 2210332615662878157),
+UInt256(4946608029462090681, 3874746347563736001, 15948504198053665887, 8298986912430380704),
+UInt256(6183260036827613351, 9455118952882057906, 6100572192284918647, 5762047622110587976),
+UInt256(7729075046034516689, 7207212672675184478, 16849087277210924117, 2590873509210847066),
+UInt256(4830671903771572930, 16033722966490460059, 5918993529829439669, 3925138952470473368),
+UInt256(6038339879714466163, 10818781671258299266, 2787055893859411682, 9518109709015479614),
+UInt256(7547924849643082704, 8911791070645486178, 12707191904179040411, 2674265099414573710),
+UInt256(4717453031026926690, 5569869419153428861, 12553680958539288160, 17812316751629966233),
+UInt256(5896816288783658362, 16185708810796561885, 1857043142891946489, 3818651865827906175),
+UInt256(7371020360979572953, 11008763976640926548, 6932989947042321015, 9385000850712270622),
+UInt256(9213775451224466191, 18372640989228546089, 8666237433802901269, 7119565044962950374),
+UInt256(5758609657015291369, 18400429645908923161, 16945613442195283053, 6755571162315537936),
+UInt256(7198262071269114212, 9165479002103990240, 7346958747461940104, 13056149971321810324),
+UInt256(8997827589086392765, 11456848752629987800, 9183698434327425130, 16320187464152262904),
+UInt256(5623642243178995478, 9466373479607436327, 5739811521454640706, 14811803183522552219),
+UInt256(7029552803973744348, 2609594812654519601, 2563078383390912979, 9291381942548414466),
+UInt256(8786941004967180435, 3261993515818149501, 7815533997666029128, 7002541409758130179),
+UInt256(5491838128104487771, 18179647011882201102, 7190551757754962157, 4376588381098831362),
+UInt256(6864797660130609714, 18112872746425363473, 18211561734048478504, 10082421494800927106),
+UInt256(8580997075163262143, 13417718896176928534, 8929394112278434418, 12603026868501158883),
+UInt256(5363123171977038839, 15303603337751662190, 969185301746633607, 12488577811240612206),
+UInt256(6703903964971298549, 14517818153762189833, 10434853664038067817, 10999036245623377353),
+UInt256(8379879956214123187, 4312214636920573579, 17655253098474972675, 18360481325456609595),
+UInt256(5237424972633826992, 389291138861664535, 8728690177333163970, 9169457819196687045),
+UInt256(6546781215792283740, 486613923577080669, 6299176703239067059, 2238450237141082998),
+UInt256(8183476519740354675, 608267404471350836, 12485656897476221727, 16633120851708517460),
+UInt256(5114672824837721671, 16521068192290451936, 17026907597777414387, 17313229559958905269),
+UInt256(6393341031047152089, 16039649221935677017, 2836890423512216368, 17029850931521243682),
+UInt256(7991676288808940112, 6214503472137432559, 8157799047817658365, 2840569590692002986),
+UInt256(4994797680505587570, 3884064670085895349, 12016153432527118334, 4081199003396195818),
+UInt256(6243497100631984462, 14078452874462144995, 1185133735376734205, 14324870791100020581),
+UInt256(7804371375789980578, 8374694056222905435, 15316475224503081469, 4071030433592862014),
+UInt256(4877732109868737861, 9845869803566703801, 7266954006100731966, 4850237030209232711),
+UInt256(6097165137335922326, 16919023272885767655, 13695378526053302861, 15286168324616316697),
+UInt256(7621456421669902908, 11925407054252433761, 12507537139139240673, 5272652350488232159),
+UInt256(4763410263543689317, 16676751445762546909, 899681684320943564, 14824622765123614859),
+UInt256(5954262829429611647, 7010881251921019924, 5736288123828567360, 84034382694966958),
+UInt256(7442828536787014559, 4151915546473887001, 7170360154785709200, 105042978368708697),
+UInt256(4651767835491884099, 9512476244187261231, 16010690142809538010, 65651861480442936),
+UInt256(5814709794364855124, 7278909286806688635, 15401676660084534608, 9305436863705329478),
+UInt256(7268387242956068905, 9098636608508360794, 14640409806678280356, 11631796079631661847),
+UInt256(9085484053695086131, 15984981779062838897, 9077140221493074637, 14539745099539577309),
+UInt256(5678427533559428832, 7684770602700580358, 17202427684501641408, 11393183696425929770),
+UInt256(7098034416949286040, 9605963253375725448, 12279662568772275952, 14241479620532412213),
+UInt256(8872543021186607550, 12007454066719656810, 15349578210965344940, 17801849525665515266),
+UInt256(5545339388241629719, 2892972773272397602, 14205172400280728492, 1902783916686171233),
+UInt256(6931674235302037148, 17451274021872660715, 8533093463496134807, 2378479895857714042),
+UInt256(8664592794127546436, 3367348453631274278, 6054680810942780604, 16808157925104306264),
+]
+
+private let bid_multipliers1_binary64_5: [UInt256] = [
+UInt256(5415370496329716522, 11327964820374322231, 17619233562121401590, 1281726666335415607),
+UInt256(6769213120412145653, 4936583988613126981, 17412355934224364083, 10825530369774045317),
+UInt256(8461516400515182066, 10782416004193796631, 7930386862498291392, 8920226943790168742),
+UInt256(5288447750321988791, 11350696021048510798, 11874020816702513976, 5575141839868855464),
+UInt256(6610559687902485989, 9576684007883250594, 5619153984023366662, 6968927299836069330),
+UInt256(8263199609878107486, 16582541028281451146, 16247314516883984135, 17934531161649862470),
+UInt256(5164499756173817179, 5752402124248519062, 14766257591479877988, 18126611003672245900),
+UInt256(6455624695217271474, 2578816636883260924, 9234449952495071678, 4211519680880755759),
+UInt256(8069530869021589342, 12446892832958851963, 11543062440618839597, 14487771637955720506),
+UInt256(5043456793138493339, 3167622002171894573, 4908571016173080796, 11360700282936019269),
+UInt256(6304320991423116673, 17794585557997031928, 10747399788643738899, 14200875353670024086),
+UInt256(7880401239278895842, 8408173892214126198, 13434249735804673624, 13139408173660142203),
+UInt256(4925250774549309901, 9866794701061216778, 3784720066450533111, 8212130108537588877),
+UInt256(6156563468186637376, 16945179394753908876, 13954272119917942197, 5653476617244598192),
+UInt256(7695704335233296721, 2734730169732834479, 17442840149897427746, 11678531789983135644),
+UInt256(4809815209520810450, 13238421402151491309, 17819304121326974197, 11910768387166847682),
+UInt256(6012269011901013063, 7324654715834588329, 8439072096376554035, 1053402428676395890),
+UInt256(7515336264876266329, 4544132376365847507, 15160526138898080447, 15151811091127658574),
+UInt256(4697085165547666455, 14369297781297124452, 7169485827597606327, 16387410959595868465),
+UInt256(5871356456934583069, 13349936208194017661, 8961857284497007909, 15872577681067447677),
+UInt256(7339195571168228837, 2852362204960358364, 15814007624048647791, 6005664046052145885),
+UInt256(9173994463960286046, 8177138774627835860, 1320765456351258123, 2895394039137794452),
+UInt256(5733746539975178779, 499025715715009508, 10048850447074312134, 17950522338956979196),
+UInt256(7167183174968973473, 14458840199925925597, 12561063058842890168, 13214780886841448187),
+UInt256(8958978968711216842, 4238492194625243285, 1866270768271448998, 16518476108551810234),
+UInt256(5599361855444510526, 7260743640068164957, 3472262239383349576, 5712361549417493492),
+UInt256(6999202319305638157, 18299301586939982004, 8952013817656574874, 7140451936771866865),
+UInt256(8749002899132047697, 9039068928392813793, 11190017272070718592, 18148936957819609390),
+UInt256(5468126811957529810, 17178633126313978381, 76231767403117264, 11343085598637255869),
+UInt256(6835158514946912263, 12249919371037697168, 4706975727681284484, 14178856998296569836),
+UInt256(8543948143683640329, 10700713195369733556, 5883719659601605605, 17723571247870712295),
+UInt256(5339967589802275205, 18217160793174553232, 12900696824105779311, 13383075039132889136),
+UInt256(6674959487252844007, 8936392936186027828, 16125871030132224139, 12117157780488723516),
+UInt256(8343699359066055009, 6558805151805146882, 1710594713955728558, 10534761207183516491),
+UInt256(5214812099416284380, 15628468265946686561, 5680807714649718253, 1972539736062309903),
+UInt256(6518515124270355476, 1088841258723806585, 11712695661739535720, 7077360688505275283),
+UInt256(8148143905337944345, 1361051573404758232, 805811521892255938, 8846700860631594104),
+UInt256(5092589940836215215, 12379872279446443655, 503632201182659961, 10140874056322134219),
+UInt256(6365737426045269019, 10863154330880666664, 14464598306760488663, 17287778588830055677),
+UInt256(7957171782556586274, 8967256895173445426, 18080747883450610829, 16998037217610181693),
+UInt256(4973232364097866421, 10216221577910791295, 15912153445584019672, 12929616270220057510),
+UInt256(6216540455122333026, 17381962990815877023, 15278505788552636686, 16162020337775071888),
+UInt256(7770675568902916283, 12504081701665070471, 14486446217263407954, 10979153385364064051),
+UInt256(4856672230564322677, 5509208054326975092, 15971557913430711827, 11473656884279927936),
+UInt256(6070840288205403346, 11498196086336106770, 1517703318078838168, 9730385086922522016),
+UInt256(7588550360256754183, 5149373071065357654, 11120501184453323518, 12162981358653152520),
+UInt256(4742843975160471364, 10135887197056930390, 2338627221855939295, 2990177330730832421),
+UInt256(5928554968950589205, 12669858996321162987, 12146656064174699926, 17572779718695704238),
+UInt256(7410693711188236507, 2002265690119290022, 10571634061790987004, 12742602611514854490),
+UInt256(4631683569492647816, 17392317120820413928, 1995585270191978973, 17187498669051559864),
+]
+
+private let bid_multipliers1_binary64_6: [UInt256] = [
+UInt256(5789604461865809771, 3293652327315965794, 2494481587739973717, 7649315281032286118),
+UInt256(7237005577332262213, 17952123464427120954, 12341474021529742954, 14173330119717745552),
+UInt256(9046256971665327767, 8605096275251737481, 6203470490057402885, 8493290612792406132),
+UInt256(5653910607290829854, 12295714199673417781, 15406384102354346563, 7614149642208947785),
+UInt256(7067388259113537318, 6146270712736996419, 5422922072660769492, 4906001034333796827),
+UInt256(8834235323891921647, 16906210427776021332, 2166966572398573961, 6132501292917246033),
+UInt256(5521397077432451029, 17483910545001095188, 10577726144603884533, 15362028354141748531),
+UInt256(6901746346790563787, 8019830125969205273, 13222157680754855667, 5367477387395021951),
+UInt256(8627182933488204734, 5413101639034118688, 2692639045661405872, 2097660715816389535),
+UInt256(5391989333430127958, 17218246579678487892, 1682899403538378670, 1311037947385243460),
+UInt256(6739986666787659948, 12299436187743334057, 2103624254422973337, 10862169471086330132),
+UInt256(8424983333484574935, 15374295234679167571, 7241216336456104575, 18189397857285300569),
+UInt256(5265614583427859334, 16526463549315561588, 2219917201071371407, 18285902688444394712),
+UInt256(6582018229284824168, 11434707399789676177, 2774896501339214259, 18245692342128105486),
+UInt256(8227522786606030210, 14293384249737095221, 8080306645101405728, 18195429409232743953),
+UInt256(5142201741628768881, 13545051174513072417, 7356034662402072532, 11372143380770464971),
+UInt256(6427752177035961102, 3096255912859176809, 13806729346429978569, 14215179225963081214),
+UInt256(8034690221294951377, 13093691927928746820, 3423353627755309500, 3933915977171687805),
+UInt256(5021681388309344611, 1266028427314384906, 11362968054201844245, 11682069522587080686),
+UInt256(6277101735386680763, 15417593589425144845, 4980338030897529499, 767528847951687146),
+UInt256(7846377169233350954, 14660305968354043152, 10837108557049299777, 14794469115221772644),
+UInt256(4903985730770844346, 13774377248648664874, 6773192848155812361, 2329014169372526047),
+UInt256(6129982163463555433, 7994599523956055284, 17689863097049541259, 7522953730143045462),
+UInt256(7662477704329444291, 14604935423372457010, 3665584797602374958, 4792006144251418924),
+UInt256(4789048565205902682, 6822241630394091679, 6902676516928872252, 16830061895439300539),
+UInt256(5986310706507378352, 17751174074847390407, 4016659627733702412, 2590833295589574058),
+UInt256(7482888383134222941, 3742223519849686393, 409138516239740111, 3238541619486967573),
+UInt256(4676805239458889338, 4644732709119747947, 11784926618718307329, 8941617539820436589),
+UInt256(5846006549323611672, 15029287923254460742, 10119472254970496257, 15788707943202933640),
+UInt256(7307508186654514591, 339865830358524312, 3425968281858344514, 5900826873721503338),
+UInt256(9134385233318143238, 14259890343230319102, 4282460352322930642, 16599405629006654981),
+UInt256(5708990770823839524, 4300745446091561534, 16511595775483995363, 14986314536556547267),
+UInt256(7136238463529799405, 5375931807614451918, 11416122682500218396, 14121207152268296180),
+UInt256(8920298079412249256, 11331600777945452802, 5046781316270497187, 17651508940335370225),
+UInt256(5575186299632655785, 7082250486215908001, 7765924341096448646, 8726350078495912439),
+UInt256(6968982874540819731, 13464499126197272905, 14319091444797948712, 1684565561265114740),
+UInt256(8711228593176024664, 12218937889319203228, 4063806250715272178, 2105706951581393425),
+UInt256(5444517870735015415, 7636836180824502017, 11763250943551820919, 5927752863165758795),
+UInt256(6805647338418769269, 4934359207603239618, 869005624157612437, 2798005060529810589),
+UInt256(8507059173023461586, 10779635027931437426, 10309629067051791354, 8109192344089651141),
+UInt256(5316911983139663491, 11348957910884536295, 11055204185334757500, 9679931233483419867),
+UInt256(6646139978924579364, 9574511370178282465, 9207319213241058971, 12099914041854274834),
+UInt256(8307674973655724205, 11968139212722853081, 16120835034978711618, 10513206533890455638),
+UInt256(5192296858534827628, 9785930017165477128, 3157992869220612905, 11182440102108922678),
+UInt256(6490371073168534535, 12232412521456846410, 3947491086525766132, 142992072353989635),
+UInt256(8112963841460668169, 10678829633393670108, 14157735895011983473, 178740090442487044),
+UInt256(5070602400912917605, 18203483566939513577, 18071956971237265478, 11640927602595024163),
+UInt256(6338253001141147007, 8919296403392228260, 8754888158764418136, 5327787466389004395),
+UInt256(7922816251426433759, 6537434485812897421, 10943610198455522670, 6659734332986255494),
+UInt256(4951760157141521099, 11003425581274142744, 9145599383248395620, 17997392013398573396),
+]
+
+private let bid_multipliers1_binary64_7: [UInt256] = [
+UInt256(6189700196426901374, 9142595958165290526, 11431999229060494526, 4049995943038665129),
+UInt256(7737125245533626718, 2204872910851837350, 5066626999470842349, 14285866965653107219),
+UInt256(4835703278458516698, 15213103624564562055, 17001699929951440180, 11234509862746885964),
+UInt256(6044629098073145873, 9793007493850926761, 16640438894011912321, 14043137328433607455),
+UInt256(7555786372591432341, 16852945385741046356, 6965490562232726690, 3718863605259845606),
+UInt256(4722366482869645213, 12838933875301847924, 13576803638250229989, 6935975771714791408),
+UInt256(5902958103587056517, 2213609288845146193, 16971004547812787486, 13281655733070877164),
+UInt256(7378697629483820646, 7378697629483820646, 7378697629483820646, 7378697629483820647),
+UInt256(9223372036854775808, 0, 0, 0),
+UInt256(5764607523034234880, 0, 0, 0),
+UInt256(7205759403792793600, 0, 0, 0),
+UInt256(9007199254740992000, 0, 0, 0),
+UInt256(5629499534213120000, 0, 0, 0),
+UInt256(7036874417766400000, 0, 0, 0),
+UInt256(8796093022208000000, 0, 0, 0),
+UInt256(5497558138880000000, 0, 0, 0),
+UInt256(6871947673600000000, 0, 0, 0),
+UInt256(8589934592000000000, 0, 0, 0),
+UInt256(5368709120000000000, 0, 0, 0),
+UInt256(6710886400000000000, 0, 0, 0),
+UInt256(8388608000000000000, 0, 0, 0),
+UInt256(5242880000000000000, 0, 0, 0),
+UInt256(6553600000000000000, 0, 0, 0),
+UInt256(8192000000000000000, 0, 0, 0),
+UInt256(5120000000000000000, 0, 0, 0),
+UInt256(6400000000000000000, 0, 0, 0),
+UInt256(8000000000000000000, 0, 0, 0),
+UInt256(5000000000000000000, 0, 0, 0),
+UInt256(6250000000000000000, 0, 0, 0),
+UInt256(7812500000000000000, 0, 0, 0),
+UInt256(4882812500000000000, 0, 0, 0),
+UInt256(6103515625000000000, 0, 0, 0),
+UInt256(7629394531250000000, 0, 0, 0),
+UInt256(4768371582031250000, 0, 0, 0),
+UInt256(5960464477539062500, 0, 0, 0),
+UInt256(7450580596923828125, 0, 0, 0),
+UInt256(4656612873077392578, 2305843009213693952, 0, 0),
+UInt256(5820766091346740722, 12105675798371893248, 0, 0),
+UInt256(7275957614183425903, 5908722711110090752, 0, 0),
+UInt256(9094947017729282379, 2774217370460225536, 0, 0),
+UInt256(5684341886080801486, 17874786921033498624, 0, 0),
+UInt256(7105427357601001858, 13120111614437097472, 0, 0),
+UInt256(8881784197001252323, 7176767481191596032, 0, 0),
+UInt256(5551115123125782702, 2179636666531053568, 0, 0),
+UInt256(6938893903907228377, 11947917870018592768, 0, 0),
+UInt256(8673617379884035472, 1099839282241077248, 0, 0),
+UInt256(5421010862427522170, 687399551400673280, 0, 0),
+UInt256(6776263578034402712, 10082621476105617408, 0, 0),
+UInt256(8470329472543003390, 12603276845132021760, 0, 0),
+UInt256(5293955920339377119, 3265362009780125696, 0, 0),
+]
+
+private let bid_multipliers1_binary64_8: [UInt256] = [
+UInt256(6617444900424221398, 17916760567507320832, 0, 0),
+UInt256(8271806125530276748, 13172578672529375232, 0, 0),
+UInt256(5169878828456422967, 17456233707185635328, 0, 0),
+UInt256(6462348535570528709, 17208606115554656256, 0, 0),
+UInt256(8077935669463160887, 7675699589161156608, 0, 0),
+UInt256(5048709793414475554, 11714841270866804736, 0, 0),
+UInt256(6310887241768094443, 5420179551728730112, 0, 0),
+UInt256(7888609052210118054, 2163538421233524736, 0, 0),
+UInt256(4930380657631323783, 15187269568553116672, 0, 0),
+UInt256(6162975822039154729, 14372400942264007936, 0, 0),
+UInt256(7703719777548943412, 4130443122547846208, 0, 0),
+UInt256(4814824860968089632, 11804898988447179688, 0, 0),
+UInt256(6018531076210112040, 14756123735558974610, 0, 0),
+UInt256(7523163845262640050, 18445154669448718262, 9223372036854775808, 0),
+UInt256(4701977403289150031, 16139907686832836818, 1152921504606846976, 0),
+UInt256(5877471754111437539, 15563198590113658118, 10664523917613334528, 0),
+UInt256(7346839692639296924, 14842312219214684744, 4107282860161892352, 0),
+UInt256(9183549615799121156, 106146200308804314, 5134103575202365440, 0),
+UInt256(5739718509874450722, 9289713412047778504, 7820500752928866304, 0),
+UInt256(7174648137343063403, 2388769728204947322, 9775625941161082880, 0),
+UInt256(8968310171678829253, 16821020215538347865, 2996160389596577792, 0),
+UInt256(5605193857299268283, 12818980643925161367, 13401815289566330880, 0),
+UInt256(7006492321624085354, 11412039786479063805, 12140583093530525696, 0),
+UInt256(8758115402030106693, 5041677696244053949, 1340670811630993408, 0),
+UInt256(5473822126268816683, 5456891569366227670, 3143762266483064832, 0),
+UInt256(6842277657836020854, 2209428443280396683, 13153074869958606848, 0),
+UInt256(8552847072295026067, 11985157590955271662, 11829657569020870656, 0),
+UInt256(5345529420184391292, 5184880485133350837, 2781849962210656256, 0),
+UInt256(6681911775230489115, 6481100606416688546, 8088998471190708224, 0),
+UInt256(8352389719038111394, 3489689739593472779, 887876052133609472, 0),
+UInt256(5220243574398819621, 6792742105673308390, 16695823597079363584, 0),
+UInt256(6525304467998524526, 13102613650519023392, 11646407459494428672, 0),
+UInt256(8156630584998155658, 7154895026294003432, 14558009324368035840, 0),
+UInt256(5097894115623847286, 9083495409861140049, 9098755827730022400, 0),
+UInt256(6372367644529809108, 2130997225471649253, 15985130803089915904, 0),
+UInt256(7965459555662261385, 2663746531839561567, 6146355448580231168, 0),
+UInt256(4978412222288913365, 13194056628468195739, 10759001183003726336, 0),
+UInt256(6223015277861141707, 2657512730303080962, 8837065460327270016, 0),
+UInt256(7778769097326427133, 17156948968161014915, 1822959788554311712, 0),
+UInt256(4861730685829016958, 13028936114314328273, 17280250932342302484, 0),
+UInt256(6077163357286271198, 7062798106038134534, 7765255610145714393, 0),
+UInt256(7596454196607838997, 18051869669402443976, 483197475827367183, 4611686018427387904),
+UInt256(4747783872879899373, 13588261552590221437, 301998422392104489, 9799832789158199296),
+UInt256(5934729841099874217, 3150268885455613084, 4989184046417518515, 16861477004875137024),
+UInt256(7418412301374842771, 8549522125246904259, 6236480058021898144, 16465160237666533376),
+UInt256(4636507688359276732, 3037608319065621210, 1591957027049992388, 10290725148541583360),
+UInt256(5795634610449095915, 3797010398832026512, 11213318320667266293, 12863406435676979200),
+UInt256(7244543263061369894, 134576980112645236, 14016647900834082867, 2244199989314060288),
+UInt256(9055679078826712367, 9391593261995582353, 17520809876042603583, 16640308041924739072),
+UInt256(5659799424266695229, 12787274816388320827, 4032977144885545383, 17317721553844043776),
+]
+
+private let bid_multipliers1_binary64_9: [UInt256] = [
+UInt256(7074749280333369037, 2149035465203237322, 429535412679543825, 17035465923877666816),
+UInt256(8843436600416711296, 7297980349931434556, 9760291302704205590, 7459274349564919808),
+UInt256(5527147875260444560, 4561237718707146597, 15323554101044904302, 50360450050686976),
+UInt256(6908934844075555700, 5701547148383933247, 5319384571023966665, 9286322599418134528),
+UInt256(8636168555094444625, 7126933935479916559, 2037544695352570427, 16219589267700056064),
+UInt256(5397605346934027890, 15983548755743417609, 8190994462236438373, 7831400283098841088),
+UInt256(6747006683667534863, 10756063907824496203, 14850429096222935870, 14400936372300939264),
+UInt256(8433758354584418579, 8833393866353232350, 13951350351851281934, 8777798428521398272),
+UInt256(5271098971615261612, 3215028157257076267, 4107907951479663305, 874437999398486016),
+UInt256(6588873714519077015, 4018785196571345334, 523198920922191227, 5704733517675495424),
+UInt256(8236092143148846269, 411795477286793763, 9877370688007514842, 2519230878666981376),
+UInt256(5147557589468028918, 2563215182517940054, 3867513670791002824, 6186205317594251264),
+UInt256(6434446986835036147, 12427391015002200875, 14057764125343529338, 7732756646992814080),
+UInt256(8043058733543795184, 10922552750325363190, 12960519138252023769, 442573771886241792),
+UInt256(5026911708464871990, 6826595468953351994, 3488638442980126951, 11805823653497370880),
+UInt256(6283639635581089987, 17756616373046465800, 13584170090579934497, 10145593548444325696),
+UInt256(7854549544476362484, 17584084447880694346, 16980212613224918121, 17293677953982795024),
+UInt256(4909093465297726553, 1766680743070658158, 15224318901692961730, 3891019693598165034),
+UInt256(6136366831622158191, 6820036947265710602, 9807026590261426354, 14087146653852482101),
+UInt256(7670458539527697739, 3913360165654750349, 3035411200972007135, 8385561280460826818),
+UInt256(4794036587204811087, 140007094320525016, 4202975009821198411, 12158504827929098618),
+UInt256(5992545734006013858, 14010066923182819982, 5253718762276498014, 10586445016483985368),
+UInt256(7490682167507517323, 8289211617123749169, 15790520489700398326, 4009684233750205902),
+UInt256(4681676354692198327, 2874914251488649279, 2951546278421667097, 16341110701376042401),
+UInt256(5852095443365247908, 17428700869642975310, 17524490903309247584, 6591330321437889289),
+UInt256(7315119304206559886, 3339132013344167522, 12682241592281783672, 8239162901797361611),
+UInt256(9143899130258199857, 13397287053534985211, 6629429953497453782, 10298953627246702013),
+UInt256(5714936956411374911, 1455775380818283901, 1837550711722214662, 1825159998601800855),
+UInt256(7143671195514218638, 15654777281305018588, 6908624408080156231, 11504822035107026876),
+UInt256(8929588994392773298, 10345099564776497427, 8635780510100195289, 9769341525456395691),
+UInt256(5580993121495483311, 11077373246412698796, 3091519809598928103, 17635053499478717067),
+UInt256(6976241401869354139, 9235030539588485591, 3864399761998660129, 17432130855921008430),
+UInt256(8720301752336692674, 6932102156058219085, 218813684070937258, 7955105514619096825),
+UInt256(5450188595210432921, 8944249865963774832, 2442601561758029738, 9583626965064323420),
+UInt256(6812735744013041151, 15791998350882106444, 3053251952197537173, 2756161669475628467),
+UInt256(8515919680016301439, 15128311920175245151, 3816564940246921466, 8056888105271923487),
+UInt256(5322449800010188399, 16372723977750610075, 9302882115295407772, 9647241084222340084),
+UInt256(6653062250012735499, 15854218953760874690, 7016916625691871811, 12059051355277925104),
+UInt256(8316327812515919374, 15206087673773705458, 17994517818969615572, 10462128175670018476),
+UInt256(5197704882822449609, 4892118777681178007, 15858259655283397636, 15762202146648537356),
+UInt256(6497131103528062011, 10726834490528860413, 15211138550676859142, 1256008609601120079),
+UInt256(8121413879410077514, 8796857094733687613, 5178865133063910215, 10793382798856175906),
+UInt256(5075883674631298446, 10109721702635942662, 5542633717378637836, 13663393276926191798),
+UInt256(6344854593289123058, 3413780091440152519, 16151664183578073103, 17079241596157739747),
+UInt256(7931068241611403822, 13490597151154966457, 15577894211045203475, 16737365976769786780),
+UInt256(4956917651007127389, 3819937201044466132, 2818654854262170316, 8155010726267422785),
+UInt256(6196147063758909236, 9386607519732970569, 3523318567827712895, 10193763407834278482),
+UInt256(7745183829698636545, 11733259399666213211, 9015834228212029023, 8130518241365460198),
+UInt256(4840739893561647841, 415758097150301401, 3329053383418824187, 11999102928494494480),
+UInt256(6050924866952059801, 5131383639865264655, 8773002747700918138, 10387192642190730196),
+]
+
+private let bid_multipliers1_binary64_10: [UInt256] = [
+UInt256(7563656083690074751, 11025915568258968723, 6354567416198759769, 3760618765883636937),
+UInt256(4727285052306296719, 13808726257802937308, 1665761625910530903, 13879601774745742846),
+UInt256(5909106315382870899, 12649221803826283731, 2082202032388163629, 12737816200004790653),
+UInt256(7386382894228588624, 11199841236355466759, 16437810595767368249, 2087212194723824604),
+UInt256(4616489308892867890, 6999900772722166724, 17191160649995687011, 12833722667770860138),
+UInt256(5770611636116084862, 17973248002757484214, 3042206738785057148, 11430467316286187268),
+UInt256(7213264545145106078, 13243187966592079459, 13026130460336097243, 14288084145357734085),
+UInt256(9016580681431382598, 7330612921385323516, 11670977056992733650, 13248419163269779702),
+UInt256(5635362925894614123, 18416691131147990909, 16517732697475234339, 12891947995471000218),
+UInt256(7044203657368267654, 18409177895507600733, 6812107816561879212, 11503248975911362368),
+UInt256(8805254571710334568, 13788100332529725108, 13126820789129736919, 14379061219889202960),
+UInt256(5503284107318959105, 8617562707831078192, 17427635030060861382, 15904442290071833706),
+UInt256(6879105134148698881, 15383639403216235645, 3337799713866525112, 10657180825735016325),
+UInt256(8598881417685873602, 5394491198738130844, 8783935660760544294, 13321476032168770406),
+UInt256(5374300886053671001, 7983243017638719681, 14713331824830115992, 3714236501678093600),
+UInt256(6717876107567088751, 14590739790475787506, 4556606725755481278, 4642795627097617000),
+UInt256(8397345134458860939, 13626738719667346478, 14919130444049127405, 15026866570726797057),
+UInt256(5248340709036788087, 6210868690578397597, 4712770509103316724, 11697634615917942113),
+UInt256(6560425886295985109, 3151899844795609092, 10502649154806533809, 14622043269897427641),
+UInt256(8200532357869981386, 8551560824421899269, 13128311443508167262, 4442496032089620839),
+UInt256(5125332723668738366, 9956411533691074947, 10511037661406298490, 16611618075338176737),
+UInt256(6406665904585922958, 3222142380259067876, 8527111058330485209, 11541150557317945113),
+UInt256(8008332380732403697, 13251050012178610653, 10658888822913106512, 591380141365267679),
+UInt256(5005207737957752311, 1364377229970549802, 8967648523534385522, 369612588353292299),
+UInt256(6256509672447190388, 15540529592745350965, 1986188617563206094, 9685387772296391182),
+UInt256(7820637090558987986, 978917917222137090, 7094421790381395522, 2883362678515713170),
+UInt256(4887898181599367491, 5223509716691223585, 9045699637415760105, 6413787692499708635),
+UInt256(6109872726999209364, 1917701127436641577, 15918810565197088035, 12628920634052023698),
+UInt256(7637340908749011705, 2397126409295801972, 6063455151214196332, 11174464774137641718),
+UInt256(4773338067968132315, 13027419051878345992, 13013031506363648515, 16207412520690801882),
+UInt256(5966672584960165394, 11672587796420544586, 16266289382954560644, 15647579632436114448),
+UInt256(7458340731200206743, 5367362708670904925, 11109489691838424998, 1112730466835591444),
+UInt256(4661462957000129214, 10272130720560397434, 9249274066612709575, 14530514597054408365),
+UInt256(5826828696250161518, 3616791363845720985, 2338220546411111161, 13551457227890622552),
+UInt256(7283535870312701897, 13744361241661927039, 7534461701441276856, 3104263479581114478),
+UInt256(9104419837890877372, 3345393496795245087, 4806391108374208166, 3880329349476393097),
+UInt256(5690262398681798357, 11314242972351803987, 9921523470374961959, 16260263898704909398),
+UInt256(7112827998352247947, 307745660157591272, 7790218319541314545, 15713643854953748843),
+UInt256(8891034997940309933, 14219740130479152802, 9737772899426643182, 5806996763410022342),
+UInt256(5556896873712693708, 11193180590763164453, 10697794080569039892, 17464431032413427676),
+UInt256(6946121092140867135, 13991475738453955566, 17983928619138687770, 3383794716807232979),
+UInt256(8682651365176083919, 12877658654640056554, 13256538737068583904, 13453115432863817032),
+UInt256(5426657103235052449, 14966065686791117202, 12897022729095252844, 8408197145539885645),
+UInt256(6783321379043815562, 4872524053206732791, 6897906374514290247, 10510246431924857056),
+UInt256(8479151723804769452, 15314027103363191797, 4010696949715474905, 8526122021478683416),
+UInt256(5299469827377980908, 347894902747219065, 4812528602785865767, 16858041309492646895),
+UInt256(6624337284222476135, 434868628434023831, 10627346771909720113, 16460865618438420715),
+UInt256(8280421605278095168, 14378643840824693501, 8672497446459762238, 6741023967765862181),
+UInt256(5175263503298809480, 8986652400515433438, 7726153913251045350, 18048198035135827576),
+UInt256(6469079379123511850, 11233315500644291798, 434320354709030880, 13336875507065008661),
+]
+
+private let bid_multipliers1_binary64_11: [UInt256] = [
+UInt256(8086349223904389813, 4818272338950588939, 9766272480241064408, 16671094383831260826),
+UInt256(5053968264940243633, 5317263221057812039, 3798077290936971303, 10419433989894538017),
+UInt256(6317460331175304541, 11258265044749652953, 135910595243826225, 8412606468940784617),
+UInt256(7896825413969130677, 237773250654902479, 4781574262482170685, 15127444104603368675),
+UInt256(4935515883730706673, 2454451290873008001, 9906012941692438534, 11760495574590799374),
+UInt256(6169394854663383341, 7679750132018647905, 16994202195542936072, 5477247431383723409),
+UInt256(7711743568329229176, 14211373683450697786, 7407694689146506378, 6846559289229654262),
+UInt256(4819839730205768235, 8882108552156686116, 9241495199143954390, 8890785574195921818),
+UInt256(6024799662757210294, 6490949671768469741, 11551868998929942988, 1890109930890126464),
+UInt256(7530999578446512867, 17337059126565362985, 604778193380265023, 2362637413612658080),
+UInt256(4706874736529070542, 8529818944889657913, 11907201416931135399, 8394177411148993156),
+UInt256(5883593420661338178, 1438901644257296584, 1048943715881755537, 5881035745508853541),
+UInt256(7354491775826672722, 11021999092176396538, 1311179644852194421, 11962980700313454830),
+UInt256(9193114719783340903, 4554126828365719864, 10862346592920018835, 1118667820109654825),
+UInt256(5745696699864588064, 9763858295369656771, 6788966620575011771, 16840068452064391930),
+UInt256(7182120874830735080, 12204822869212070964, 3874522257291376810, 16438399546653102009),
+UInt256(8977651093538418850, 15256028586515088705, 4843152821614221013, 11324627396461601703),
+UInt256(5611031933461511781, 14146703884999318344, 14556185559577357893, 9383735132002195016),
+UInt256(7013789916826889727, 3848321800966984218, 18195231949471697366, 16341354933430131674),
+UInt256(8767237396033612159, 198716232781342369, 13520667899984845900, 11203321629932888785),
+UInt256(5479523372521007599, 7041726673129420837, 1532888409849446831, 16225448055562831299),
+UInt256(6849404215651259499, 4190472322984388142, 6527796530739196443, 15670124051026151219),
+UInt256(8561755269564074374, 626404385303097273, 17383117700278771362, 14975969045355301120),
+UInt256(5351097043477546483, 14226560796096599508, 3946919535033150245, 13971666671774451104),
+UInt256(6688871304346933104, 13171514976693361481, 4933649418791437807, 3629525284435900168),
+UInt256(8361089130433666380, 16464393720866701851, 10778747791916685162, 18371964660827038922),
+UInt256(5225680706521041488, 1066874038686912849, 4430874360734234274, 16094163931444287230),
+UInt256(6532100883151301860, 1333592548358641061, 10150278969345180747, 10894332877450583230),
+UInt256(8165126103939127325, 1666990685448301326, 17299534730108863838, 9006230078385841133),
+UInt256(5103203814961954578, 3347712187618882281, 6200523187890651995, 1017207780563762804),
+UInt256(6379004768702443222, 13408012271378378659, 12362340003290702897, 15106567780986867217),
+UInt256(7973755960878054028, 7536643302368197516, 10841238985685990718, 5048151670951420310),
+UInt256(4983597475548783767, 13933774100834899255, 15999146402908520006, 16990152849626801406),
+UInt256(6229496844435979709, 12805531607616236165, 15387246985208262104, 12014319025178725949),
+UInt256(7786871055544974637, 2171856454238131495, 5399000676228163918, 15017898781473407436),
+UInt256(4866794409715609148, 3663253293112526136, 10291904450283684305, 4774500719993491744),
+UInt256(6083493012144511435, 4579066616390657670, 12864880562854605381, 10579811918419252584),
+UInt256(7604366265180639294, 1112147252060934184, 6857728666713480918, 17836450916451453633),
+UInt256(4752728915737899558, 14530150087820247577, 4286080416695925574, 6536095804354770617),
+UInt256(5940911144672374448, 8939315572920533663, 9969286539297294871, 17393491792298239079),
+UInt256(7426138930840468060, 11174144466150667079, 7849922155694230685, 17130178721945410945),
+UInt256(4641336831775292537, 16207212328198942732, 11823730374949976034, 13012204710429575793),
+UInt256(5801671039719115672, 6423957354966514703, 14779662968687470043, 7041883851182193933),
+UInt256(7252088799648894590, 8029946693708143379, 13862892692431949650, 4190668795550354512),
+UInt256(9065110999561118238, 814061330280403416, 12716929847112549158, 14461708031292718948),
+UInt256(5665694374725698898, 14343846386707415847, 7948081154445343224, 4426881501130561438),
+UInt256(7082117968407123623, 8706435946529494001, 5323415424629291126, 5533601876413201798),
+UInt256(8852647460508904529, 6271358914734479597, 11265955299214001811, 16140374382371278055),
+UInt256(5532904662818065330, 15448814367777519508, 9347065071222445084, 7781890979768354833),
+UInt256(6916130828522581663, 10087645922867123577, 11683831339028056355, 9727363724710443541),
+]
+
+private let bid_multipliers1_binary64_12: [UInt256] = [
+UInt256(8645163535653227079, 7997871385156516568, 769731118502906732, 7547518637460666522),
+UInt256(5403227209783266924, 11916198643363904711, 481081949064316707, 13940571185267692384),
+UInt256(6754034012229083655, 14895248304204880888, 14436410491612559596, 12814027963157227576),
+UInt256(8442542515286354569, 14007374361828713206, 18045513114515699495, 16017534953946534470),
+UInt256(5276589072053971606, 1837079948501863898, 6666759678144924280, 16928488373857665900),
+UInt256(6595736340067464507, 11519721972482105680, 17556821634535931159, 2713866393612530759),
+UInt256(8244670425084330634, 9787966447175244197, 3499282969460362332, 17227391047297827161),
+UInt256(5152919015677706646, 10729165047911915527, 4492894865126420410, 1543747367706366168),
+UInt256(6441148769597133308, 4188084273035118601, 1004432562980637608, 11153056246487733517),
+UInt256(8051435961996416635, 5235105341293898251, 5867226722153184914, 13941320308109666897),
+UInt256(5032147476247760397, 966097829094992455, 1361173692132046619, 13325011210995929715),
+UInt256(6290184345309700496, 5819308304796128472, 15536525170447221986, 12044577995317524239),
+UInt256(7862730431637125620, 7274135380995160591, 973912389349475867, 5832350457292129491),
+UInt256(4914206519773203512, 13769706649976751177, 7526224270984504273, 1339376026593886980),
+UInt256(6142758149716504390, 17212133312470938971, 14019466357158018245, 6285906051669746629),
+UInt256(7678447687145630488, 12291794603733897906, 12912646928020134902, 12469068583014571190),
+UInt256(4799029804466019055, 7682371627333686191, 12682090348439972218, 3181481845956719090),
+UInt256(5998787255582523819, 4991278515739719835, 11240926917122577368, 13200224344300674670),
+UInt256(7498484069478154774, 1627412126247261890, 9439472627975833806, 16500280430375843337),
+UInt256(4686552543423846733, 14852190634186702393, 10511356410912284033, 5700989250557514182),
+UInt256(5858190679279808417, 4730180237451214279, 17750881532067742945, 11737922581624280632),
+UInt256(7322738349099760521, 10524411315241405753, 17576915896657290778, 837345171748187077),
+UInt256(9153422936374700651, 17767200162479145096, 8136086815539449760, 10270053501540009654),
+UInt256(5720889335234187907, 8798657092335771733, 5085054259712156100, 6418783438462506034),
+UInt256(7151111669042734884, 6386635346992326762, 10968003843067583029, 8023479298078132543),
+UInt256(8938889586303418605, 7983294183740408453, 4486632766979702978, 14641035141025053582),
+UInt256(5586805991439636628, 7295401874051449235, 5109988488576008313, 13762332981568046393),
+UInt256(6983507489299545785, 9119252342564311544, 1775799592292622488, 3367858171677894279),
+UInt256(8729384361624432231, 16010751446632777334, 2219749490365778110, 4209822714597367849),
+UInt256(5455865226015270144, 16924248681786567689, 15222401486760775030, 16466197251905518618),
+UInt256(6819831532519087681, 2708566778523657996, 5192943803168805076, 11359374528027122464),
+UInt256(8524789415648859601, 7997394491581960399, 6491179753961006345, 14199218160033903080),
+UInt256(5327993384780537250, 16527586603307195009, 10974516373866710822, 1956982322380107569),
+UInt256(6659991730975671563, 11436111217279217953, 18329831485760776431, 11669599939829910269),
+UInt256(8324989663719589454, 9683453003171634538, 9077231301918806827, 9975313906359999932),
+UInt256(5203118539824743409, 1440472108554883682, 10284955582126642171, 3928728182261306006),
+UInt256(6503898174780929261, 6412276154120992507, 3632822440803526906, 299224209399244603),
+UInt256(8129872718476161576, 12627031211078628537, 18376086106286572344, 9597402298603831562),
+UInt256(5081170449047600985, 7891894506924142836, 4567524788788025859, 5998376436627394726),
+UInt256(6351463061309501231, 14476554152082566449, 5709405985985032324, 2886284527356855504),
+UInt256(7939328826636876539, 13484006671675820157, 11748443500908678309, 3607855659196069380),
+UInt256(4962080516648047837, 6121661160583693646, 9648620197281617895, 4560752796211237315),
+UInt256(6202600645810059796, 12263762469157004962, 2837403209747246561, 1089254976836658739),
+UInt256(7753250807262574745, 15329703086446256202, 12770126049038834009, 5973254739473211328),
+UInt256(4845781754539109216, 2663535401387828270, 12593014799076659159, 15262499258239226840),
+UInt256(6057227193173886520, 3329419251734785338, 6517896461991048141, 14466438054371645646),
+UInt256(7571533991467358150, 4161774064668481672, 17370742614343585985, 4247989512682393345),
+UInt256(4732208744667098843, 16436166845699964757, 10856714133964741240, 14184208491494965601),
+UInt256(5915260930833873554, 15933522538697568042, 18182578685883314454, 17730260614368707001),
+UInt256(7394076163542341943, 10693531136517184245, 13504851320499367260, 12939453731106107943),
+]
+
+private let bid_multipliers1_binary64_13: [UInt256] = [
+UInt256(4621297602213963714, 13600985987964322009, 10746375084525798489, 17310530618796093273),
+UInt256(5776622002767454643, 7777860448100626703, 18044654874084636016, 7803105218212952879),
+UInt256(7220777503459318304, 5110639541698395475, 17944132574178407116, 9753881522766191098),
+UInt256(9025971879324147880, 6388299427122994344, 17818479699295620991, 12192351903457738873),
+UInt256(5641232424577592425, 3992687141951871465, 11136549812059763119, 14537748967302168652),
+UInt256(7051540530721990531, 9602544945867227236, 85629209792540187, 13560500190700322911),
+UInt256(8814425663402488164, 7391495163906646141, 107036512240675234, 12338939219948015734),
+UInt256(5509016039626555102, 13843056514296429646, 2372740829364115973, 12323523030894897738),
+UInt256(6886270049533193878, 8080448606015761249, 12189298073559920775, 1569345733336458460),
+UInt256(8607837561916492348, 877188720664925754, 1401564536667737256, 15796740221952736787),
+UInt256(5379898476197807717, 9771614987270354404, 5487663853844723689, 9872962638720460492),
+UInt256(6724873095247259646, 16826204752515330909, 6859579817305904611, 16952889316827963519),
+UInt256(8406091369059074558, 11809383903789387828, 13186160790059768668, 16579425627607566495),
+UInt256(5253807105661921599, 2769178921440979488, 17464722530642131226, 1138768980399953251),
+UInt256(6567258882077401998, 17296531707083388073, 3384159089593112416, 10646833262354717372),
+UInt256(8209073602596752498, 12397292596999459283, 8841884880418778424, 13308541577943396715),
+UInt256(5130671001622970311, 12359993891552049956, 3220335041048042563, 8317838486214622947),
+UInt256(6413338752028712889, 10838306346012674541, 4025418801310053204, 5785612089340890780),
+]
+
+// MARK: - bid_multipliers2_binary64
+
+extension BinaryFloatingPointTables {
+ internal static func bid_multipliers2_binary64(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_multipliers2_binary64_0[r]
+ case 1: return bid_multipliers2_binary64_1[r]
+ case 2: return bid_multipliers2_binary64_2[r]
+ case 3: return bid_multipliers2_binary64_3[r]
+ case 4: return bid_multipliers2_binary64_4[r]
+ case 5: return bid_multipliers2_binary64_5[r]
+ case 6: return bid_multipliers2_binary64_6[r]
+ case 7: return bid_multipliers2_binary64_7[r]
+ case 8: return bid_multipliers2_binary64_8[r]
+ case 9: return bid_multipliers2_binary64_9[r]
+ case 10: return bid_multipliers2_binary64_10[r]
+ case 11: return bid_multipliers2_binary64_11[r]
+ case 12: return bid_multipliers2_binary64_12[r]
+ case 13: return bid_multipliers2_binary64_13[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_multipliers2_binary64_0: [UInt256] = [
+UInt256(3877256883183270350, 15049182825743144437, 5138421092069233273, 918777112239470733),
+UInt256(2423285551989543969, 4794053247662077369, 5517356191756964747, 12103450741218138969),
+UInt256(3029106939986929961, 10604252578004984615, 11508381258123593838, 10517627408095285807),
+UInt256(3786383674983662451, 17867001740933618673, 9773790554227104394, 3923662223264331450),
+UInt256(2366489796864789032, 8861033078869817718, 17637834142460410006, 7063974907967595060),
+UInt256(2958112246080986290, 11076291348587272148, 12823920641220736699, 18053340671814269633),
+UInt256(3697640307601232863, 4621992148879314377, 16029900801525920874, 17954989821340449138),
+UInt256(2311025192250770539, 9806274120690653342, 3101158973312618690, 15833554656765168615),
+UInt256(2888781490313463174, 7646156632435928773, 13099820753495549171, 10568571284101684961),
+UInt256(3610976862891828968, 334323753690135159, 2539717886587272752, 8599028086699718297),
+UInt256(4513721078614786210, 417904692112668948, 17009705413516254652, 10748785108374647871),
+UInt256(2821075674134241381, 4872876450997805997, 1407693846592883349, 15941362729588930728),
+UInt256(3526344592667801726, 10702781582174645400, 6371303326668492091, 6091645356703999697),
+UInt256(4407930740834752158, 4155104940863530942, 7964129158335615114, 3002870677452611718),
+UInt256(2754956713021720098, 16431998643321870551, 365894705532371542, 6488480191835270228),
+UInt256(3443695891277150123, 11316626267297562380, 14292426437197628139, 17333972276648863593),
+UInt256(4304619864096437654, 9534096815694565071, 17865533046497035174, 17055779327383691587),
+UInt256(2690387415060273534, 1347124491381715265, 18083487181701728840, 6048176061187419338),
+UInt256(3362984268825341917, 10907277651081919890, 8769300921844997338, 7560220076484274172),
+UInt256(4203730336031677396, 18245783082279787767, 1738254115451470865, 226903058750566907),
+UInt256(2627331460019798373, 2180242389570091546, 8003937849798251146, 11671029457787574077),
+UInt256(3284164325024747966, 7336989005390002337, 781550275393038125, 5365414785379691788),
+UInt256(4105205406280934957, 18394608293592278729, 5588623862668685560, 11318454500152002639),
+UInt256(2565753378925584348, 13802473192708868157, 15022104960236398235, 7074034062595001650),
+UInt256(3207191723656980435, 17253091490886085197, 4942573145013334082, 4230856559816364158),
+UInt256(4008989654571225544, 16954678345180218592, 10789902449694055506, 14511942736625231005),
+UInt256(2505618534107015965, 10596673965737636620, 6743689031058784691, 13681650228818157283),
+UInt256(3132023167633769956, 17857528475599433679, 8429611288823480864, 12490376767595308699),
+UInt256(3915028959542212446, 3875166520789740483, 5925328092601963176, 15612970959494135874),
+UInt256(2446893099713882778, 16257037130775751514, 1397487048662533033, 9758106849683834921),
+UInt256(3058616374642353473, 11097924376614913584, 10970230847682942099, 16809319580532181555),
+UInt256(3823270468302941842, 37347415486478268, 13712788559603677624, 16399963457237839040),
+UInt256(2389544042689338651, 4635028153106436821, 17793864886607074323, 10249977160773649400),
+UInt256(2986930053361673314, 1182099172955658123, 8407273052976679192, 8200785432539673846),
+UInt256(3733662566702091642, 10700996003049348462, 5897405297793461086, 10250981790674592308),
+UInt256(2333539104188807276, 11299808520333230692, 17520936366403076891, 1795177600744232288),
+UInt256(2916923880236009095, 14124760650416538366, 3454426384294294497, 16079030056212454072),
+UInt256(3646154850295011369, 13044264794593285053, 13541405017222643930, 6263729514983403878),
+UInt256(4557693562868764212, 2470272937959442605, 3091698216246141200, 17053033930584030656),
+UInt256(2848558476792977632, 10767292623079427436, 4238154394367532202, 10658146206615019160),
+UInt256(3560698095991222040, 13459115778849284295, 5297692992959415253, 4099310721413998142),
+UInt256(4450872619989027550, 16823894723561605369, 2010430222771881162, 9735824420194885581),
+UInt256(2781795387493142219, 5903248183798615451, 12785733935300895486, 10696576281049191393),
+UInt256(3477244234366427774, 2767374211320881410, 11370481400698731454, 4147348314456713433),
+UInt256(4346555292958034717, 12682589801005877571, 4989729714018638509, 14407557429925667599),
+UInt256(2716597058098771698, 10232461634842367434, 812738062047955116, 11310566402917236201),
+UInt256(3395746322623464623, 3567205006698183484, 10239294614414719703, 14138208003646545252),
+UInt256(4244682903279330778, 18294064313654893067, 12799118268018399629, 13061073986130793660),
+UInt256(2652926814549581736, 16045476214461696071, 5693605908297805816, 10469014250545439990),
+UInt256(3316158518186977171, 1610101194367568473, 2505321366944869366, 13086267813181799987),
+]
+
+private let bid_multipliers2_binary64_1: [UInt256] = [
+UInt256(4145198147733721463, 15847684548241624303, 7743337727108474612, 7134462729622474176),
+UInt256(2590748842333575914, 16822331870292097045, 11757115107083878488, 13682411242868822168),
+UInt256(3238436052916969893, 11804542801010345499, 861335828572684398, 17103014053586027710),
+UInt256(4048045066146212367, 920620445980768161, 14911727840998019210, 12155395530127758829),
+UInt256(2530028166341382729, 7492916806379061957, 2402300872982680150, 12208808224757237173),
+UInt256(3162535207926728411, 13977832026401215350, 7614562109655738092, 6037638244091770658),
+UInt256(3953169009908410514, 12860604014574131284, 294830600214896807, 7547047805114713322),
+UInt256(2470730631192756571, 12649563527536219956, 9407641161989086312, 11634433905837777682),
+UInt256(3088413288990945714, 11200268390992887041, 11759551452486357890, 14543042382297222103),
+UInt256(3860516611238682143, 4776963451886332994, 864381260325783651, 8955430941016751820),
+UInt256(2412822882024176339, 9903131185070039977, 5151924306131002686, 3291301328921775936),
+UInt256(3016028602530220424, 7767227962910162067, 11051591401091141261, 13337498698006995728),
+UInt256(3770035753162775530, 9709034953637702584, 9202803232936538673, 2836815317226580948),
+UInt256(2356272345726734706, 10679832864450952019, 5751752020585336670, 13302224619335082852),
+UInt256(2945340432158418383, 4126419043708914216, 2578004007304282934, 7404408737314077757),
+UInt256(3681675540198022979, 546337786208754866, 3222505009130353668, 32138884787821389),
+UInt256(4602094425247528723, 14517980288043107294, 13251503298267717893, 40173605984776736),
+UInt256(2876309015779705452, 6767894670813248107, 3670503542989935779, 2330951512954179412),
+UInt256(3595386269724631815, 8459868338516560133, 18423187484019583435, 16748747446474887977),
+UInt256(4494232837155789769, 5963149404718312263, 9193926299742315582, 16324248289666222067),
+UInt256(2808895523222368605, 15256183424017414924, 12663732964980029095, 5590969162614000888),
+UInt256(3511119404027960757, 5235171224739604943, 15829666206225036369, 2377025434840113206),
+UInt256(4388899255034950946, 11155650049351894083, 15175396739353907557, 7582967811977529411),
+UInt256(2743062034396844341, 11583967299272321706, 7178779952882498271, 7045197891699649834),
+UInt256(3428827542996055427, 644901068808238420, 18196846977957898647, 4194811346197174389),
+UInt256(4286034428745069283, 14641184391292461738, 4299314648737821693, 631828164319080082),
+UInt256(2678771517965668302, 6844897235344094634, 7298757673888526462, 2700735611913119003),
+UInt256(3348464397457085377, 17779493581034894100, 18346819129215433885, 12599291551746174562),
+UInt256(4185580496821356722, 8389308921011453914, 4486779837809740741, 1914056384400554490),
+UInt256(2615987810513347951, 9855004094059546600, 7415923417058475867, 3502128249464040509),
+UInt256(3269984763141684939, 7707069099147045346, 9269904271323094833, 18212718367112214348),
+UInt256(4087480953927106174, 5022150355506418779, 2364008302299092734, 8930839903608104222),
+UInt256(2554675596204441358, 16973902027473675448, 17618406253432790623, 970088921327677235),
+UInt256(3193344495255551698, 11994005497487318503, 3576263743081436662, 15047669206941760256),
+UInt256(3991680619069439623, 5769134835004372320, 18305387734133959540, 9586214471822424512),
+UInt256(2494800386918399764, 10523238299518814556, 11440867333833724712, 15214756081743791128),
+UInt256(3118500483647999705, 13154047874398518195, 14301084167292155891, 571701028470187294),
+UInt256(3898125604559999632, 2607501787715984032, 13264669190687806959, 14549684340869897829),
+UInt256(2436328502849999770, 1629688617322490020, 8290418244179879349, 16011081740684767999),
+UInt256(3045410628562499712, 11260482808507888333, 10363022805224849187, 6178794120573796287),
+UInt256(3806763285703124640, 14075603510634860416, 17565464524958449388, 3111806632289857455),
+UInt256(2379227053564452900, 8797252194146787760, 10978415328099030867, 11168251182035936718),
+UInt256(2974033816955566125, 10996565242683484700, 13723019160123788584, 9348627959117532993),
+UInt256(3717542271194457656, 18357392571781743779, 17153773950154735730, 11685784948896916241),
+UInt256(2323463919496536035, 11473370357363589862, 8415265709633015879, 11915301611487960555),
+UInt256(2904329899370670044, 9730026928277099424, 1295710100186494041, 10282440995932562789),
+UInt256(3630412374213337555, 12162533660346374280, 1619637625233117551, 17464737263343091390),
+UInt256(4538015467766671944, 10591481057005579946, 2024547031541396939, 17219235560751476334),
+UInt256(2836259667354169965, 6619675660628487466, 5877027913140760991, 8456179216255978757),
+UInt256(3545324584192712456, 12886280594212997236, 16569656928280727047, 5958538001892585542),
+]
+
+private let bid_multipliers2_binary64_2: [UInt256] = [
+UInt256(4431655730240890570, 16107850742766246546, 2265327086641357193, 2836486483938344023),
+UInt256(2769784831400556606, 14679092732656291995, 6027515447578236149, 13302019098529934775),
+UInt256(3462231039250695758, 9125493878965589186, 2922708291045407283, 2792465817880254756),
+UInt256(4327788799063369698, 2183495311852210674, 12876757400661534911, 17325640327632482157),
+UInt256(2704867999414606061, 5976370588335019575, 12659659393840847223, 17746054232411383205),
+UInt256(3381084999268257576, 12082149253846162373, 11212888223873671125, 17570881772086841102),
+UInt256(4226356249085321970, 15102686567307702967, 181052224559925195, 8128544159826387665),
+UInt256(2641472655678326231, 14050865122994702258, 7030686667991035103, 2774497090677798339),
+UInt256(3301840819597907789, 12951895385315989918, 18011730371843569686, 17303179418629411635),
+UInt256(4127301024497384737, 2354811176362823686, 13291290927949686300, 12405602236431988736),
+UInt256(2579563140310865460, 13000972031295234564, 3695370811541166033, 16976873434624768768),
+UInt256(3224453925388581825, 16251215039119043205, 4619213514426457542, 7386033737998797248),
+UInt256(4030567406735727282, 6478960743616640294, 10385702911460459832, 9170135643720752),
+UInt256(2519104629209829551, 8661036483187788088, 1879378301235399491, 5731334777325470),
+UInt256(3148880786512286939, 6214609585557347206, 2349222876544249363, 13842222223753820550),
+UInt256(3936100983140358674, 3156575963519296103, 12159900632535087512, 12691091761264887783),
+UInt256(2460063114462724171, 6584545995626947968, 14517466922975511551, 7931932350790554864),
+UInt256(3075078893078405214, 3618996476106297056, 18146833653719389439, 5303229420060805676),
+UInt256(3843848616348006517, 13747117631987647129, 4236797993439685183, 2017350756648619191),
+UInt256(2402405385217504073, 10897791529205973407, 14177213791968272999, 8178373250546468851),
+UInt256(3003006731521880091, 18233925429934854663, 13109831221532953345, 5611280544755698159),
+UInt256(3753758414402350114, 18180720768991180425, 11775603008488803777, 11625786699372010603),
+UInt256(2346099009001468821, 15974636499046875670, 442222852664420505, 348587659466424771),
+UInt256(2932623761251836027, 6133237568526430875, 9776150602685301439, 5047420592760418868),
+UInt256(3665779701564795034, 3054860942230650690, 7608502234929238895, 1697589722523135681),
+UInt256(4582224626955993792, 13041948214643089171, 287255756806772810, 15957045208436083313),
+UInt256(2863890391847496120, 8151217634151930731, 16320435912500090670, 14584839273699939975),
+UInt256(3579862989809370150, 10189022042689913414, 15788858872197725434, 9007677055270149160),
+UInt256(4474828737261712688, 3512905516507615960, 10512701553392380985, 2036224282232910642),
+UInt256(2796767960788570430, 2195565947817259975, 6570438470870238115, 12801855222464038911),
+UInt256(3495959950985713037, 11967829471626350777, 3601362070160409740, 11390633009652660735),
+UInt256(4369949938732141297, 1124728784250774759, 9113388606127900079, 14238291262065825919),
+UInt256(2731218711707588310, 12232170536225203984, 12613396906471019405, 15816461066432223055),
+UInt256(3414023389634485388, 6066841133426729172, 15766746133088774257, 5935518277758115107),
+UInt256(4267529237043106735, 7583551416783411466, 1261688592651416205, 12031083865625031788),
+UInt256(2667205773151941709, 11657248663130714022, 5400241388834523032, 9825270425229338820),
+UInt256(3334007216439927137, 736502773631228815, 15973673772897929598, 12281588031536673524),
+UInt256(4167509020549908921, 5532314485466423923, 15355406197695024094, 6128613002566066097),
+UInt256(2604693137843693075, 14986911599484984712, 7291285864345696106, 17665441181885955023),
+UInt256(3255866422304616344, 14121953480928842986, 9114107330432120133, 12858429440502667971),
+UInt256(4069833027880770430, 17652441851161053733, 2169262126185374359, 2237978745346171251),
+UInt256(2543645642425481519, 6421090138548270679, 3661631838079552926, 8316265743482438888),
+UInt256(3179557053031851899, 3414676654757950444, 18412097852881604870, 1171960142498272802),
+UInt256(3974446316289814873, 18103403873729601768, 4568378242392454471, 10688322214977616811),
+UInt256(2484028947681134296, 4397098393439919249, 2855236401495284044, 13597730412002092363),
+UInt256(3105036184601417870, 5496372991799899061, 8180731520296492959, 16997163015002615453),
+UInt256(3881295230751772337, 16093838276604649634, 14837600418798004103, 16634767750325881413),
+UInt256(2425809519219857711, 3141119895236824165, 13885186280176140468, 17314258871594757739),
+UInt256(3032261899024822138, 17761457924328193919, 3521424794938011874, 3196079515783895558),
+UInt256(3790327373781027673, 12978450368555466590, 18236839048954678554, 13218471431584645255),
+]
+
+private let bid_multipliers2_binary64_3: [UInt256] = [
+UInt256(2368954608613142296, 1194002452706084763, 6786338387169286192, 12873230663167791189),
+UInt256(2961193260766427870, 1492503065882605954, 3871236965534219836, 16091538328959738986),
+UInt256(3701491575958034837, 11089000869208033250, 14062418243772550604, 1667678837490122116),
+UInt256(2313432234973771773, 9236468552468714733, 13400697420785232031, 10265671310286102131),
+UInt256(2891790293717214716, 16157271709013281321, 2915813720699376327, 8220403119430239759),
+UInt256(3614737867146518396, 1749845562557050035, 8256453169301608313, 5663817880860411795),
+UInt256(4518422333933147995, 2187306953196312544, 5708880443199622487, 11691458369502902647),
+UInt256(2824013958708217496, 17507967910243553004, 3568050276999764054, 14224690508580396011),
+UInt256(3530017448385271871, 3438215814094889639, 4460062846249705068, 8557491098870719205),
+UInt256(4412521810481589838, 18132827822900775761, 963392539384743431, 10696863873588399007),
+UInt256(2757826131550993649, 6721331370885596946, 12131335383183934404, 13603068948633831235),
+UInt256(3447282664438742061, 13013350232034384087, 5940797192125142197, 17003836185792289044),
+UInt256(4309103330548427577, 2431629734760816397, 2814310471729039843, 7419737176958197593),
+UInt256(2693189581592767235, 13048983630293980008, 4064787054044343854, 2331492726385179544),
+UInt256(3366486976990959044, 11699543519440087106, 5080983817555429817, 12137737944836250237),
+UInt256(4208108721238698805, 14624429399300108882, 15574601808799063080, 1337114375763149085),
+UInt256(2630067950774186753, 11446111383776262003, 14345812148926802329, 835696484851968178),
+UInt256(3287584938467733442, 472581174438163792, 13320579167731115007, 5656306624492348127),
+UInt256(4109481173084666802, 9814098504902480548, 16650723959663893759, 2458697262188047254),
+UInt256(2568425733177916751, 10745497583991438247, 1183330437935157791, 8454214816508611390),
+UInt256(3210532166472395939, 8820185961561909904, 15314221102701110951, 5956082502208376333),
+UInt256(4013165208090494924, 6413546433524999477, 696032304666837073, 2833417109333082513),
+UInt256(2508228255056559327, 13231838557807900481, 2740863199630467122, 13300100739401646331),
+UInt256(3135285318820699159, 11928112178832487697, 8037765017965471807, 7401753887397282105),
+UInt256(3919106648525873949, 10298454205113221717, 14658892290884227663, 4640506340819214727),
+UInt256(2449441655328671218, 8742376887409457525, 11467650691016336241, 9817845490653091061),
+UInt256(3061802069160839023, 1704599072407046099, 499505308488256589, 16883992881743751730),
+UInt256(3827252586451048778, 15965806895790971335, 14459439690892484449, 7269933046897525950),
+UInt256(2392032866531905486, 14590315328296744988, 15954678834448884636, 16072923200379423479),
+UInt256(2990041083164881858, 9014522123516155428, 1496604469351554180, 1644409926764727733),
+UInt256(3737551353956102323, 2044780617540418477, 1870755586689442725, 2055512408455909666),
+UInt256(2335969596222563951, 17418888950458619212, 3475065250894595655, 3590538264498637493),
+UInt256(2919961995278204939, 17161925169645886111, 4343831563618244568, 18323230885905460578),
+UInt256(3649952494097756174, 16840720443629969735, 818103436095417807, 4457294533672274107),
+UInt256(4562440617622195218, 11827528517682686360, 14857687350401435971, 959932148662954729),
+UInt256(2851525386013872011, 12003891341979066879, 9286054594000897481, 16740858657410204370),
+UInt256(3564406732517340014, 10393178159046445695, 6995882224073733948, 7091015266480591750),
+UInt256(4455508415646675018, 3768100661953281311, 4133166761664779531, 8863769083100739688),
+UInt256(2784692759779171886, 6966748932148188723, 9500758253681569063, 3234012667724268353),
+UInt256(3480865949723964857, 17931808202040011712, 7264261798674573424, 17877573889937499153),
+UInt256(4351082437154956072, 8579702197267850928, 9080327248343216781, 3900223288712322326),
+UInt256(2719426523221847545, 5362313873292406830, 5675204530214510488, 4743482564658895406),
+UInt256(3399283154027309431, 11314578360042896441, 16317377699622913918, 5929353205823619257),
+UInt256(4249103942534136789, 9531536931626232648, 6561664069246478685, 16635063544134299879),
+UInt256(2655689964083835493, 8263053591480089357, 4101040043279049178, 12702757724297631377),
+UInt256(3319612455104794366, 14940503007777499600, 9737986072526199377, 6655075118517263413),
+UInt256(4149515568880992958, 9452256722867098692, 12172482590657749221, 12930529916573967170),
+UInt256(2593447230550620599, 1295974433364548778, 16831173656015869071, 10387424207072423433),
+UInt256(3241809038188275748, 15455026096987849685, 11815595033165060531, 8372594240413141387),
+UInt256(4052261297735344686, 872038547525260491, 934435736174161952, 5854056782089038830),
+]
+
+private let bid_multipliers2_binary64_4: [UInt256] = [
+UInt256(2532663311084590428, 14380082147485451518, 16724923399604708884, 3658785488805649269),
+UInt256(3165829138855738035, 17975102684356814398, 11682782212651110297, 4573481861007061586),
+UInt256(3957286423569672544, 17857192337018630094, 5380105728959112063, 10328538344686214887),
+UInt256(2473304014731045340, 11160745210636643808, 17197624135881608751, 13372865493069966160),
+UInt256(3091630018413806675, 13950931513295804761, 3050286096142459323, 12104395847910069796),
+UInt256(3864537523017258344, 12826978373192368047, 8424543638605462058, 10518808791460199341),
+UInt256(2415335951885786465, 8016861483245230029, 12182868801769495642, 11185941513090012492),
+UInt256(3019169939857233081, 14632762872483925441, 1393527946929705841, 4759054854507739807),
+UInt256(3773962424821541352, 4455895535322743089, 6353595952089520205, 10560504586562062663),
+UInt256(2358726515513463345, 2784934709576714430, 15500212516124419888, 8906158375814983117),
+UInt256(2948408144391829181, 8092854405398280942, 10151893608300749052, 11132697969768728896),
+UInt256(3685510180489786476, 14727754025175239082, 3466494973521160507, 13915872462210911119),
+UInt256(4606887725612233095, 18409692531469048852, 13556490753756226442, 12783154559336250995),
+UInt256(2879304828507645684, 18423586859809237388, 17696178757952417334, 12601157618012544776),
+UInt256(3599131035634557106, 4582739501051995120, 3673479373730970052, 6528074985660905162),
+UInt256(4498913794543196382, 14951796413169769708, 4591849217163712565, 8160093732076131452),
+UInt256(2811821121589497739, 4733186739803718163, 12093277797582096161, 7405901591761276110),
+UInt256(3514776401986872174, 1304797406327259800, 10504911228550232297, 13869063008128983041),
+UInt256(4393470502483590217, 10854368794763850558, 13131139035687790372, 3501270704879065090),
+UInt256(2745919064052243885, 18313195542795876359, 3595275878877481078, 11411666227404191489),
+UInt256(3432398830065304857, 9056436373212681736, 18329152903879015060, 5041210747400463553),
+UInt256(4290498537581631071, 15932231484943240075, 4464697056139217209, 6301513434250579442),
+UInt256(2681561585988519419, 16875173705730606903, 484592650873316803, 15467660942475081911),
+UInt256(3351951982485649274, 16482281113735870724, 14440798868873809716, 14722890159666464485),
+UInt256(4189939978107061593, 11379479355315062597, 18050998586092262145, 18403612699583080606),
+UInt256(2618712486316913496, 194645569430832267, 13587717125521357793, 4584728909598343523),
+UInt256(3273390607896141870, 243306961788540334, 12372960388474309337, 10342597155425317307),
+UInt256(4091738259870177337, 9527505739090451226, 6242828448738110863, 17539932462709034538),
+UInt256(2557336412418860835, 17483906133000001776, 8513453798888707193, 17879986816834228443),
+UInt256(3196670515523576044, 17243196647822614316, 10641817248610883992, 8514925465760621841),
+UInt256(3995838144404470056, 3107251736068716279, 13302271560763604990, 10643656832200777301),
+UInt256(2497398840252793785, 1942032335042947674, 15231448753118334975, 2040599501698097909),
+UInt256(3121748550315992231, 7039226437231072497, 9815938904543142910, 16385807432404786099),
+UInt256(3902185687894990289, 4187347028111452717, 16881609649106316542, 11258887253651206815),
+UInt256(2438866054934368930, 14146306938638127708, 12856849039905141791, 2425118515104616356),
+UInt256(3048582568667961163, 8459511636442883827, 16071061299881427238, 16866456199162934157),
+UInt256(3810728210834951454, 5962703527126216880, 15477140606424396144, 11859698212098891888),
+UInt256(2381705131771844658, 17561747759736049262, 9673212879015247590, 7412311382561807430),
+UInt256(2977131414714805823, 12728812662815285770, 2868144061914283680, 42017191347483479),
+UInt256(3721414268393507279, 11299329810091719308, 12808552114247630408, 52521489184354349),
+UInt256(2325883917745942049, 13979610158948406423, 17228717108259544813, 32825930740221468),
+UInt256(2907354897182427562, 3639454643403344317, 16924210366897043112, 4652718431852664739),
+UInt256(3634193621478034452, 13772690341108956205, 7320204903339140178, 5815898039815830924),
+UInt256(4542742026847543065, 17215862926386195256, 13761942147601313126, 16493244586624564463),
+UInt256(2839213766779714416, 3842385301350290179, 8601213842250820704, 5696591848212964885),
+UInt256(3549017208474643020, 4802981626687862724, 6139831284386137976, 7120739810266206107),
+UInt256(4436271510593303775, 6003727033359828405, 7674789105482672470, 8900924762832757633),
+UInt256(2772669694120814859, 10669858423490974609, 7102586200140364246, 951391958343085617),
+UInt256(3465837117651018574, 8725637010936330357, 13489918768602843211, 10412611984783632829),
+UInt256(4332296397063773218, 1683674226815637139, 3027340405471390302, 8404078962552153132),
+]
+
+private let bid_multipliers2_binary64_5: [UInt256] = [
+UInt256(2707685248164858261, 5663982410187161115, 18032988817915476603, 640863333167707804),
+UInt256(3384606560206072826, 11691664031161339298, 17929550003966957849, 14636137221741798467),
+UInt256(4230758200257591033, 5391208002096898315, 13188565468103921504, 4460113471895084371),
+UInt256(2644223875160994395, 14898720047379031207, 5937010408351256988, 2787570919934427732),
+UInt256(3305279843951242994, 14011714040796401105, 2809576992011683331, 3484463649918034665),
+UInt256(4131599804939053743, 8291270514140725573, 8123657258441992067, 18190637617679707043),
+UInt256(2582249878086908589, 12099573098979035339, 7383128795739938994, 9063305501836122950),
+UInt256(3227812347608635737, 1289408318441630462, 4617224976247535839, 2105759840440377880),
+UInt256(4034765434510794671, 6223446416479425981, 14994903257164195606, 16467257855832636061),
+UInt256(2521728396569246669, 10807183037940723094, 11677657544941316206, 5680350141468009635),
+UInt256(3152160495711558336, 18120664815853291772, 5373699894321869449, 16323809713689787851),
+UInt256(3940200619639447921, 4204086946107063099, 6717124867902336812, 6569704086830071102),
+UInt256(2462625387274654950, 14156769387385384197, 1892360033225266555, 13329437091123570247),
+UInt256(3078281734093318688, 8472589697376954438, 6977136059958971098, 12050110345477074904),
+UInt256(3847852167616648360, 10590737121721193047, 17944792111803489681, 5839265894991567822),
+UInt256(2404907604760405225, 6619210701075745654, 18133024097518262906, 15178756230438199649),
+UInt256(3006134505950506531, 12885699394772069972, 13442908085043052825, 9750073251192973753),
+UInt256(3757668132438133164, 11495438225037699561, 16803635106303816031, 16799277582418605095),
+UInt256(2348542582773833227, 16408020927503338034, 3584742913798803163, 17417077516652710041),
+UInt256(2935678228467291534, 15898340140951784638, 13704300679103279762, 17159660877388499647),
+UInt256(3669597785584114418, 10649553139334954990, 7907003812024323895, 12226204059880848751),
+UInt256(4586997231980143023, 4088569387313917930, 660382728175629061, 10671069056423673034),
+UInt256(2866873269987589389, 9472884894712280562, 5024425223537156067, 8975261169478489598),
+UInt256(3583591587484486736, 16452792136817738606, 15503903566276220892, 6607390443420724094),
+UInt256(4479489484355608421, 2119246097312621642, 10156507420990500307, 8259238054275905117),
+UInt256(2799680927722255263, 3630371820034082478, 10959503156546450596, 2856180774708746746),
+UInt256(3499601159652819078, 18373022830324766810, 4476006908828287437, 3570225968385933433),
+UInt256(4374501449566023848, 13742906501051182704, 14818380672890135104, 9074468478909804695),
+UInt256(2734063405978764905, 8589316563156989190, 9261487920556334440, 5671542799318627935),
+UInt256(3417579257473456131, 15348331722373624392, 2353487863840642242, 7089428499148284918),
+UInt256(4271974071841820164, 14573728634539642586, 2941859829800802802, 18085157660790131956),
+UInt256(2669983794901137602, 18331952433442052424, 6450348412052889655, 15914909556421220376),
+UInt256(3337479743626422003, 13691568504947789722, 8062935515066112069, 15281950927099137566),
+UInt256(4171849679533027504, 12502774612757349249, 855297356977864279, 5267380603591758246),
+UInt256(2607406049708142190, 7814234132973343280, 12063775894179634934, 10209641904885930760),
+UInt256(3259257562135177738, 544420629361903292, 15079719867724543668, 3538680344252637642),
+UInt256(4074071952668972172, 9903897823557154924, 402905760946127969, 4423350430315797052),
+UInt256(2546294970418107607, 15413308176577997635, 9475188137446105788, 14293809065015842918),
+UInt256(3182868713022634509, 14654949202295109140, 7232299153380244331, 17867261331269803647),
+UInt256(3978585891278293137, 4483628447586722713, 9040373941725305414, 17722390645659866655),
+UInt256(2486616182048933210, 14331482825810171455, 17179448759646785644, 6464808135110028755),
+UInt256(3108270227561166513, 8690981495407938511, 16862624931131094151, 8081010168887535944),
+UInt256(3885337784451458141, 15475412887687311043, 16466595145486479785, 5489576692682032026),
+UInt256(2428336115282161338, 11977976064018263354, 7985778956715355913, 14960200478994739776),
+UInt256(3035420144102701673, 5749098043168053385, 758851659039419084, 4865192543461261008),
+UInt256(3794275180128377091, 11798058572387454635, 5560250592226661759, 6081490679326576260),
+UInt256(2371421987580235682, 5067943598528465195, 1169313610927969647, 10718460702220192019),
+UInt256(2964277484475294602, 15558301535015357301, 15296700068942125771, 8786389859347852119),
+UInt256(3705346855594118253, 10224504881914420819, 5285817030895493502, 6371301305757427245),
+UInt256(2315841784746323908, 8696158560410206964, 997792635095989486, 17817121371380555740),
+]
+
+private let bid_multipliers2_binary64_6: [UInt256] = [
+UInt256(2894802230932904885, 10870198200512758705, 1247240793869986858, 13048029677370918867),
+UInt256(3618502788666131106, 18199433769068336285, 6170737010764871477, 7086665059858872776),
+UInt256(4523128485832663883, 13525920174480644548, 12325107281883477250, 13470017343250978874),
+UInt256(2826955303645414927, 6147857099836708890, 16926564088031949089, 13030446857959249701),
+UInt256(3533694129556768659, 3073135356368498209, 11934833073185160554, 2453000517166898414),
+UInt256(4417117661945960823, 17676477250742786474, 1083483286199286980, 12289622683313398825),
+UInt256(2760698538716225514, 17965327309355323402, 5288863072301942266, 16904386213925650074),
+UInt256(3450873173395281893, 13233287099839378444, 15834450877232203641, 11907110730552286784),
+UInt256(4313591466744102367, 2706550819517059344, 1346319522830702936, 1048830357908194768),
+UInt256(2695994666715063979, 8609123289839243946, 841449701769189335, 655518973692621730),
+UInt256(3369993333393829974, 6149718093871667028, 10275184164066262476, 14654456772397940874),
+UInt256(4212491666742287467, 16910519654194359593, 12843980205082828095, 18318070965497426093),
+UInt256(2632807291713929667, 8263231774657780794, 1109958600535685703, 18366323381076973164),
+UInt256(3291009114642412084, 5717353699894838088, 10610820287524382937, 18346218207918828551),
+UInt256(4113761393303015105, 7146692124868547610, 13263525359405478672, 9097714704616371977),
+UInt256(2571100870814384440, 15995897624111312016, 12901389368055812074, 5686071690385232486),
+UInt256(3213876088517980551, 1548127956429588404, 16126736710069765092, 16330961649836316415),
+UInt256(4017345110647475688, 15770218000819149218, 1711676813877654750, 1966957988585843903),
+UInt256(2510840694154672305, 9856386250511968261, 5681484027100922122, 15064406798148316151),
+UInt256(3138550867693340381, 16932168831567348230, 11713541052303540557, 9607136460830619381),
+UInt256(3923188584616675477, 7330152984177021576, 5418554278524649888, 16620606594465662130),
+UInt256(2451992865385422173, 6887188624324332437, 3386596424077906180, 10387879121541038832),
+UInt256(3064991081731777716, 13220671798832803450, 8844931548524770629, 12984848901926298539),
+UInt256(3831238852164722145, 16525839748541004313, 1832792398801187479, 2396003072125709462),
+UInt256(2394524282602951341, 3411120815197045839, 12674710295319211934, 8415030947719650270),
+UInt256(2993155353253689176, 8875587037423695203, 11231701850721627014, 1295416647794787029),
+UInt256(3741444191567111470, 11094483796779619004, 9427941294974645863, 10842642846598259595),
+UInt256(2338402619729444669, 2322366354559873973, 15115835346213929472, 13694180806764994103),
+UInt256(2923003274661805836, 7514643961627230371, 5059736127485248128, 17117726008456242628),
+UInt256(3653754093327257295, 9393304952034037964, 1712984140929172257, 2950413436860751669),
+UInt256(4567192616659071619, 7129945171615159551, 2141230176161465321, 8299702814503327491),
+UInt256(2854495385411919762, 2150372723045780767, 8255797887741997681, 16716529305133049442),
+UInt256(3568119231764899702, 11911337940662001767, 5708061341250109198, 7060603576134148090),
+UInt256(4460149039706124628, 5665800388972726401, 2523390658135248593, 18049126507022460921),
+UInt256(2787593149816327892, 12764497279962729808, 13106334207403000131, 4363175039247956220),
+UInt256(3484491437270409865, 15955621599953412260, 16382917759253750164, 842282780632557370),
+UInt256(4355614296588012332, 6109468944659601614, 2031903125357636089, 1052853475790696713),
+UInt256(2722258935367507707, 13041790127267026816, 15104997508630686267, 12187248468437655206),
+UInt256(3402823669209384634, 11690551640656395617, 434502812078806218, 10622374567119681103),
+UInt256(4253529586511730793, 5389817513965718713, 5154814533525895677, 4054596172044825571),
+UInt256(2658455991569831745, 14897850992297043955, 14750974129522154558, 4839965616741709934),
+UInt256(3323069989462289682, 4787255685089141232, 13827031643475305293, 15273329057781913225),
+UInt256(4153837486827862102, 15207441643216202348, 17283789554344131617, 5256603266945227819),
+UInt256(2596148429267413814, 4892965008582738564, 1578996434610306452, 14814592087909237147),
+UInt256(3245185536584267267, 15339578297583199013, 1973745543262883066, 71496036176994818),
+UInt256(4056481920730334084, 14562786853551610862, 7078867947505991736, 9312742082076019330),
+UInt256(2535301200456458802, 18325113820324532596, 18259350522473408547, 5820463801297512082),
+UInt256(3169126500570573503, 13683020238550889938, 4377444079382209068, 2663893733194502198),
+UInt256(3961408125713216879, 12492089279761224518, 14695177136082537143, 3329867166493127747),
+UInt256(2475880078570760549, 14725084827491847180, 4572799691624197810, 8998696006699286698),
+]
+
+private let bid_multipliers2_binary64_7: [UInt256] = [
+UInt256(3094850098213450687, 4571297979082645263, 5715999614530247263, 2024997971519332565),
+UInt256(3868562622766813359, 1102436455425918675, 2533313499735421174, 16366305519681329418),
+UInt256(2417851639229258349, 7606551812282281027, 17724222001830495898, 5617254931373442982),
+UInt256(3022314549036572936, 14119875783780239188, 17543591483860731968, 16244940701071579536),
+UInt256(3777893186295716170, 17649844729725298986, 3482745281116363345, 1859431802629922803),
+UInt256(2361183241434822606, 15642838974505699770, 6788401819125114994, 12691359922712171512),
+UInt256(2951479051793528258, 10330176681277348904, 17708874310761169551, 6640827866535438582),
+UInt256(3689348814741910323, 3689348814741910323, 3689348814741910323, 3689348814741910324),
+UInt256(4611686018427387904, 0, 0, 0),
+UInt256(2882303761517117440, 0, 0, 0),
+UInt256(3602879701896396800, 0, 0, 0),
+UInt256(4503599627370496000, 0, 0, 0),
+UInt256(2814749767106560000, 0, 0, 0),
+UInt256(3518437208883200000, 0, 0, 0),
+UInt256(4398046511104000000, 0, 0, 0),
+UInt256(2748779069440000000, 0, 0, 0),
+UInt256(3435973836800000000, 0, 0, 0),
+UInt256(4294967296000000000, 0, 0, 0),
+UInt256(2684354560000000000, 0, 0, 0),
+UInt256(3355443200000000000, 0, 0, 0),
+UInt256(4194304000000000000, 0, 0, 0),
+UInt256(2621440000000000000, 0, 0, 0),
+UInt256(3276800000000000000, 0, 0, 0),
+UInt256(4096000000000000000, 0, 0, 0),
+UInt256(2560000000000000000, 0, 0, 0),
+UInt256(3200000000000000000, 0, 0, 0),
+UInt256(4000000000000000000, 0, 0, 0),
+UInt256(2500000000000000000, 0, 0, 0),
+UInt256(3125000000000000000, 0, 0, 0),
+UInt256(3906250000000000000, 0, 0, 0),
+UInt256(2441406250000000000, 0, 0, 0),
+UInt256(3051757812500000000, 0, 0, 0),
+UInt256(3814697265625000000, 0, 0, 0),
+UInt256(2384185791015625000, 0, 0, 0),
+UInt256(2980232238769531250, 0, 0, 0),
+UInt256(3725290298461914062, 9223372036854775808, 0, 0),
+UInt256(2328306436538696289, 1152921504606846976, 0, 0),
+UInt256(2910383045673370361, 6052837899185946624, 0, 0),
+UInt256(3637978807091712951, 12177733392409821184, 0, 0),
+UInt256(4547473508864641189, 10610480722084888576, 0, 0),
+UInt256(2842170943040400743, 8937393460516749312, 0, 0),
+UInt256(3552713678800500929, 6560055807218548736, 0, 0),
+UInt256(4440892098500626161, 12811755777450573824, 0, 0),
+UInt256(2775557561562891351, 1089818333265526784, 0, 0),
+UInt256(3469446951953614188, 15197330971864072192, 0, 0),
+UInt256(4336808689942017736, 549919641120538624, 0, 0),
+UInt256(2710505431213761085, 343699775700336640, 0, 0),
+UInt256(3388131789017201356, 5041310738052808704, 0, 0),
+UInt256(4235164736271501695, 6301638422566010880, 0, 0),
+UInt256(2646977960169688559, 10856053041744838656, 0, 0),
+]
+
+private let bid_multipliers2_binary64_8: [UInt256] = [
+UInt256(3308722450212110699, 8958380283753660416, 0, 0),
+UInt256(4135903062765138374, 6586289336264687616, 0, 0),
+UInt256(2584939414228211483, 17951488890447593472, 0, 0),
+UInt256(3231174267785264354, 17827675094632103936, 0, 0),
+UInt256(4038967834731580443, 13061221831435354112, 0, 0),
+UInt256(2524354896707237777, 5857420635433402368, 0, 0),
+UInt256(3155443620884047221, 11933461812719140864, 0, 0),
+UInt256(3944304526105059027, 1081769210616762368, 0, 0),
+UInt256(2465190328815661891, 16817006821131334144, 0, 0),
+UInt256(3081487911019577364, 16409572507986779776, 0, 0),
+UInt256(3851859888774471706, 2065221561273923104, 0, 0),
+UInt256(2407412430484044816, 5902449494223589844, 0, 0),
+UInt256(3009265538105056020, 7378061867779487305, 0, 0),
+UInt256(3761581922631320025, 9222577334724359131, 4611686018427387904, 0),
+UInt256(2350988701644575015, 17293325880271194217, 576460752303423488, 0),
+UInt256(2938735877055718769, 17004971331911604867, 5332261958806667264, 0),
+UInt256(3673419846319648462, 7421156109607342372, 2053641430080946176, 0),
+UInt256(4591774807899560578, 53073100154402157, 2567051787601182720, 0),
+UInt256(2869859254937225361, 4644856706023889252, 3910250376464433152, 0),
+UInt256(3587324068671531701, 10417756900957249469, 4887812970580541440, 0),
+UInt256(4484155085839414626, 17633882144623949740, 10721452231653064704, 0),
+UInt256(2802596928649634141, 15632862358817356491, 15924279681637941248, 0),
+UInt256(3503246160812042677, 5706019893239531902, 15293663583620038656, 0),
+UInt256(4379057701015053346, 11744210884976802782, 9893707442670272512, 0),
+UInt256(2736911063134408341, 11951817821537889643, 1571881133241532416, 0),
+UInt256(3421138828918010427, 1104714221640198341, 15799909471834079232, 0),
+UInt256(4276423536147513033, 15215950832332411639, 5914828784510435328, 0),
+UInt256(2672764710092195646, 2592440242566675418, 10614297017960103936, 0),
+UInt256(3340955887615244557, 12463922340063120081, 4044499235595354112, 0),
+UInt256(4176194859519055697, 1744844869796736389, 9667310062921580544, 0),
+UInt256(2610121787199409810, 12619743089691430003, 8347911798539681792, 0),
+UInt256(3262652233999262263, 6551306825259511696, 5823203729747214336, 0),
+UInt256(4078315292499077829, 3577447513147001716, 7279004662184017920, 0),
+UInt256(2548947057811923643, 4541747704930570024, 13772749950719787008, 0),
+UInt256(3186183822264904554, 1065498612735824626, 17215937438399733760, 0),
+UInt256(3982729777831130692, 10555245302774556591, 12296549761144891392, 0),
+UInt256(2489206111144456682, 15820400351088873677, 14602872628356638976, 0),
+UInt256(3111507638930570853, 10552128402006316289, 4418532730163635008, 0),
+UInt256(3889384548663213566, 17801846520935283265, 10134851931131931664, 0),
+UInt256(2430865342914508479, 6514468057157164136, 17863497503025927050, 0),
+UInt256(3038581678643135599, 3531399053019067267, 3882627805072857196, 9223372036854775808),
+UInt256(3798227098303919498, 18249306871555997796, 241598737913683591, 11529215046068469760),
+UInt256(2373891936439949686, 16017502813149886526, 9374371248050828052, 14123288431433875456),
+UInt256(2967364920549937108, 10798506479582582350, 2494592023208759257, 17654110539292344320),
+UInt256(3709206150687421385, 13498133099478227937, 12341612065865724880, 8232580118833266688),
+UInt256(2318253844179638366, 1518804159532810605, 795978513524996194, 5145362574270791680),
+UInt256(2897817305224547957, 11121877236270789064, 5606659160333633146, 15655075254693265408),
+UInt256(3622271631530684947, 67288490056322618, 7008323950417041433, 10345472031511805952),
+UInt256(4527839539413356183, 13919168667852566984, 17983776974876077599, 17543526057817145344),
+UInt256(2829899712133347614, 15617009445048936221, 11239860609297548499, 17882232813776797696),
+]
+
+private let bid_multipliers2_binary64_9: [UInt256] = [
+UInt256(3537374640166684518, 10297889769456394469, 214767706339771912, 17741104998793609216),
+UInt256(4421718300208355648, 3648990174965717278, 4880145651352102795, 3729637174782459904),
+UInt256(2763573937630222280, 2280618859353573298, 16885149087377227959, 25180225025343488),
+UInt256(3454467422037777850, 2850773574191966623, 11883064322366759140, 13866533336563843072),
+UInt256(4318084277547222312, 12786839004594734087, 10242144384531061021, 17333166670704803840),
+UInt256(2698802673467013945, 7991774377871708804, 13318869267972994994, 13139072178404196352),
+UInt256(3373503341833767431, 14601403990767023909, 16648586584966243743, 7200468186150469632),
+UInt256(4216879177292209289, 13640068970031391983, 6975675175925640967, 4388899214260699136),
+UInt256(2635549485807630806, 1607514078628538133, 11277326012594607460, 9660591036554018816),
+UInt256(3294436857259538507, 11232764635140448475, 261599460461095613, 12075738795692523520),
+UInt256(4118046071574423134, 9429269775498172689, 14162057380858533229, 1259615439333490688),
+UInt256(2573778794734014459, 1281607591258970027, 1933756835395501412, 3093102658797125632),
+UInt256(3217223493417518073, 15437067544355876245, 16252254099526540477, 3866378323496407040),
+UInt256(4021529366771897592, 5461276375162681595, 6480259569126011884, 9444658922797896704),
+UInt256(2513455854232435995, 3413297734476675997, 1744319221490063475, 15126283863603461248),
+UInt256(3141819817790544993, 18101680223378008708, 6792085045289967248, 14296168811076938656),
+UInt256(3927274772238181242, 8792042223940347173, 8490106306612459060, 17870211013846173320),
+UInt256(2454546732648863276, 10106712408390104887, 7612159450846480865, 1945509846799082517),
+UInt256(3068183415811079095, 12633390510487631109, 4903513295130713177, 7043573326926241051),
+UInt256(3835229269763848869, 11180052119682150982, 10741077637340779375, 13416152677085189217),
+UInt256(2397018293602405543, 9293375584015038316, 2101487504910599205, 15302624450819325117),
+UInt256(2996272867003006929, 7005033461591409991, 2626859381138249007, 5293222508241992684),
+UInt256(3745341083753758661, 13367977845416650392, 17118632281704974971, 2004842116875102951),
+UInt256(2340838177346099163, 10660829162599100447, 10699145176065609356, 17393927387542797009),
+UInt256(2926047721682623954, 8714350434821487655, 8762245451654623792, 3295665160718944645),
+UInt256(3657559652103279943, 1669566006672083761, 6341120796140891836, 4119581450898680806),
+UInt256(4571949565129099928, 15922015563622268413, 12538087013603502699, 5149476813623351007),
+UInt256(2857468478205687455, 9951259727263917758, 10142147392715883139, 912579999300900428),
+UInt256(3571835597757109319, 7827388640652509294, 3454312204040078115, 14975783054408289246),
+UInt256(4464794497196386649, 5172549782388248713, 13541262291904873452, 14108042799582973654),
+UInt256(2790496560747741655, 14762058660061125206, 1545759904799464051, 18040898786594134342),
+UInt256(3488120700934677069, 13840887306649018603, 11155571917854105872, 17939437464815280023),
+UInt256(4360150876168346337, 3466051078029109542, 9332778878890244437, 3977552757309548413),
+UInt256(2725094297605216460, 13695496969836663224, 1221300780879014869, 4791813482532161710),
+UInt256(3406367872006520575, 17119371212295829030, 1526625976098768586, 10601452871592590042),
+UInt256(4257959840008150719, 16787527996942398383, 11131654506978236541, 4028444052635961744),
+UInt256(2661224900005094199, 17409734025730080845, 13874813094502479694, 4823620542111170042),
+UInt256(3326531125006367749, 17150481513735213153, 3508458312845935905, 15252897714493738360),
+UInt256(4158163906257959687, 7603043836886852729, 8997258909484807786, 5231064087835009238),
+UInt256(2598852441411224804, 11669431425695364811, 17152501864496474626, 7881101073324268678),
+UInt256(3248565551764031005, 14586789282119206014, 16828941312193205379, 628004304800560040),
+UInt256(4060706939705038757, 4398428547366843806, 11812804603386730915, 14620063436282863761),
+UInt256(2537941837315649223, 5054860851317971331, 2771316858689318918, 6831696638463095899),
+UInt256(3172427296644561529, 1706890045720076259, 17299204128643812359, 17762992834933645682),
+UInt256(3965534120805701911, 6745298575577483228, 17012319142377377545, 17592055025239669198),
+UInt256(2478458825503563694, 11133340637377008874, 1409327427131085158, 4077505363133711393),
+UInt256(3098073531879454618, 4693303759866485284, 10985031320768632255, 14320253740771915049),
+UInt256(3872591914849318272, 15090001736687882413, 13731289150960790319, 13288631157537505907),
+UInt256(2420369946780823920, 9431251085429926508, 10887898728564187901, 15222923501102023048),
+UInt256(3025462433476029900, 11789063856787408135, 13609873410705234877, 5193596321095365098),
+]
+
+private let bid_multipliers2_binary64_10: [UInt256] = [
+UInt256(3781828041845037375, 14736329820984260169, 12400655744954155692, 11103681419796594277),
+UInt256(2363642526153148359, 16127735165756244462, 832880812955265451, 16163172924227647231),
+UInt256(2954553157691435449, 15547982938767917673, 10264473053048857622, 15592280136857171135),
+UInt256(3693191447114294312, 5599920618177733379, 17442277334738459932, 10266978134216688110),
+UInt256(2308244654446433945, 3499950386361083362, 8595580324997843505, 15640233370740205877),
+UInt256(2885305818058042431, 8986624001378742107, 1521103369392528574, 5715233658143093634),
+UInt256(3606632272572553039, 6621593983296039729, 15736437267022824429, 16367414109533642851),
+UInt256(4508290340715691299, 3665306460692661758, 5835488528496366825, 6624209581634889851),
+UInt256(2817681462947307061, 18431717602428771262, 17482238385592392977, 15669346034590275917),
+UInt256(3522101828684133827, 9204588947753800366, 12629425945135715414, 5751624487955681184),
+UInt256(4402627285855167284, 6894050166264862554, 6563410394564868459, 16412902646799377288),
+UInt256(2751642053659479552, 13532153390770314904, 8713817515030430691, 7952221145035916853),
+UInt256(3439552567074349440, 16915191738462893630, 10892271893788038364, 5328590412867508163),
+UInt256(4299440708842936801, 2697245599369065422, 4391967830380272147, 6660738016084385203),
+UInt256(2687150443026835500, 13214993545674135648, 16580037949269833804, 1857118250839046800),
+UInt256(3358938053783544375, 16518741932092669561, 2278303362877740639, 2321397813548808500),
+UInt256(4198672567229430469, 16036741396688449047, 7459565222024563702, 16736805322218174337),
+UInt256(2624170354518394043, 12328806382143974606, 11579757291406434170, 5848817307958971057),
+UInt256(3280212943147992554, 10799321959252580354, 5251324577403266904, 16534393671803489629),
+UInt256(4100266178934990693, 4275780412210949634, 15787527758608859439, 2221248016044810420),
+UInt256(2562666361834369183, 4978205766845537473, 14478890867557925053, 8305809037669088369),
+UInt256(3203332952292961479, 1611071190129533938, 4263555529165242604, 14993947315513748365),
+UInt256(4004166190366201848, 15848897042944081134, 14552816448311329064, 295690070682633840),
+UInt256(2502603868978876155, 9905560651840050709, 4483824261767192761, 184806294176646150),
+UInt256(3128254836223595194, 7770264796372675482, 10216466345636378855, 4842693886148195591),
+UInt256(3910318545279493993, 489458958611068545, 3547210895190697761, 1441681339257856585),
+UInt256(2443949090799683745, 11835126895200387600, 13746221855562655860, 12430265883104630126),
+UInt256(3054936363499604682, 958850563718320788, 17182777319453319825, 15537832353880787657),
+UInt256(3818670454374505852, 10421935241502676794, 3031727575607098166, 5587232387068820859),
+UInt256(2386669033984066157, 15737081562793948804, 6506515753181824257, 17327078297200176749),
+UInt256(2983336292480082697, 5836293898210272293, 8133144691477280322, 7823789816218057224),
+UInt256(3729170365600103371, 11907053391190228270, 14778116882773988307, 556365233417795722),
+UInt256(2330731478500064607, 5136065360280198717, 4624637033306354787, 16488629335381979991),
+UInt256(2913414348125080759, 1808395681922860492, 10392482310060331388, 15999100650800087084),
+UInt256(3641767935156350948, 16095552657685739327, 12990602887575414236, 1552131739790557239),
+UInt256(4552209918945438686, 1672696748397622543, 11626567591041879891, 1940164674738196549),
+UInt256(2845131199340899178, 14880493523030677801, 14184133772042256787, 17353503986207230507),
+UInt256(3556413999176123973, 9377244866933571444, 3895109159770657272, 17080193964331650230),
+UInt256(4445517498970154966, 16333242102094352209, 4868886449713321591, 2903498381705011171),
+UInt256(2778448436856346854, 5596590295381582226, 14572269077139295754, 8732215516206713838),
+UInt256(3473060546070433567, 16219109906081753591, 8991964309569343885, 1691897358403616490),
+UInt256(4341325682588041959, 15662201364174804085, 6628269368534291952, 6726557716431908516),
+UInt256(2713328551617526224, 16706404880250334409, 6448511364547626422, 4204098572769942823),
+UInt256(3391660689521907781, 2436262026603366395, 12672325224111920931, 14478495252817204336),
+UInt256(4239575861902384726, 7657013551681595898, 11228720511712513260, 13486433047594117516),
+UInt256(2649734913688990454, 173947451373609532, 11629636338247708691, 17652392691601099256),
+UInt256(3312168642111238067, 9440806351071787723, 14537045422809635864, 17453804846073986166),
+UInt256(4140210802639047584, 7189321920412346750, 13559620760084656927, 3370511983882931091),
+UInt256(2587631751649404740, 4493326200257716719, 3863076956625522675, 9024099017567913788),
+UInt256(3234539689561755925, 5616657750322145899, 217160177354515440, 6668437753532504331),
+]
+
+private let bid_multipliers2_binary64_11: [UInt256] = [
+UInt256(4043174611952194906, 11632508206330070277, 14106508276975308012, 8335547191915630413),
+UInt256(2526984132470121816, 11882003647383681827, 11122410682323261459, 14433089031802044817),
+UInt256(3158730165587652270, 14852504559229602284, 9291327334476688920, 13429675271325168117),
+UInt256(3948412706984565338, 9342258662182227047, 11614159168095861150, 16787094089156460146),
+UInt256(2467757941865353336, 10450597682291279808, 14176378507700995075, 5880247787295399687),
+UInt256(3084697427331691670, 13063247102864099760, 17720473134626243844, 2738623715691861705),
+UInt256(3855871784164614588, 7105686841725348893, 3703847344573253189, 3423279644614827131),
+UInt256(2409919865102884117, 13664426312933118866, 4620747599571977195, 4445392787097960909),
+UInt256(3012399831378605147, 3245474835884234870, 14999306536319747302, 945054965445063232),
+UInt256(3765499789223256433, 17891901600137457300, 9525761133544908319, 10404690743661104848),
+UInt256(2353437368264535271, 4264909472444828956, 15176972745320343507, 13420460742429272386),
+UInt256(2941796710330669089, 719450822128648292, 524471857940877768, 12163889909609202579),
+UInt256(3677245887913336361, 5510999546088198269, 655589822426097210, 15204862387011503223),
+UInt256(4596557359891670451, 11500435451037635740, 5431173296460009417, 9782705946909603221),
+UInt256(2872848349932294032, 4881929147684828385, 12617855347142281693, 17643406262886971773),
+UInt256(3591060437415367540, 6102411434606035482, 1937261128645688405, 8219199773326551005),
+UInt256(4488825546769209425, 7628014293257544352, 11644948447661886314, 14885685735085576660),
+UInt256(2805515966730755890, 16296723979354434980, 7278092779788678946, 13915239602855873316),
+UInt256(3506894958413444863, 11147532937338267917, 9097615974735848683, 8170677466715065837),
+UInt256(4383618698016806079, 9322730153245446992, 15983705986847198758, 5601660814966444393),
+UInt256(2739761686260503799, 12744235373419486226, 9989816241779499223, 17336096064636191458),
+UInt256(3424702107825629749, 11318608198346969879, 3263898265369598221, 17058434062367851418),
+UInt256(4280877634782037187, 313202192651548636, 17914930886994161489, 7487984522677650560),
+UInt256(2675548521738773241, 16336652434903075562, 1973459767516575122, 16209205372742001360),
+UInt256(3344435652173466552, 6585757488346680740, 11690196746250494711, 11038134679072725892),
+UInt256(4180544565216833190, 8232196860433350925, 14612745932813118389, 9185982330413519461),
+UInt256(2612840353260520744, 533437019343456424, 11438809217221892945, 8047081965722143615),
+UInt256(3266050441575650930, 666796274179320530, 14298511521527366181, 14670538475580067423),
+UInt256(4082563051969563662, 10056867379578926471, 8649767365054431919, 4503115039192920567),
+UInt256(2551601907480977289, 1673856093809441140, 12323633630800101805, 9731975927136657210),
+UInt256(3189502384351221611, 6704006135689189329, 15404542038500127256, 16776655927348209417),
+UInt256(3986877980439027014, 3768321651184098758, 5420619492842995359, 2524075835475710155),
+UInt256(2491798737774391883, 16190259087272225435, 17222945238309035811, 8495076424813400703),
+UInt256(3114748422217989854, 15626137840662893890, 16916995529458906860, 6007159512589362975),
+UInt256(3893435527772487318, 10309300263973841555, 11922872374968857767, 7508949390736703718),
+UInt256(2433397204857804574, 1831626646556263068, 5145952225141842152, 11610622396851521680),
+UInt256(3041746506072255717, 11512905345050104643, 6432440281427302690, 14513277996064402100),
+UInt256(3802183132590319647, 556073626030467092, 3428864333356740459, 8918225458225726817),
+UInt256(2376364457868949779, 7265075043910123788, 11366412245202738595, 3268047902177385309),
+UInt256(2970455572336187224, 4469657786460266831, 14208015306503423243, 17920117933003895348),
+UInt256(3713069465420234030, 5587072233075333539, 13148333114701891150, 17788461397827481281),
+UInt256(2320668415887646268, 17326978200954247174, 5911865187474988017, 6506102355214787897),
+UInt256(2900835519859557836, 3211978677483257351, 16613203521198510829, 12744313962445872775),
+UInt256(3626044399824447295, 4014973346854071689, 16154818383070750633, 2095334397775177256),
+UInt256(4532555499780559119, 407030665140201708, 6358464923556274579, 7230854015646359474),
+UInt256(2832847187362849449, 7171923193353707923, 13197412614077447420, 2213440750565280719),
+UInt256(3541058984203561811, 13576590010119522808, 11885079749169421371, 2766800938206600899),
+UInt256(4426323730254452264, 12359051494222015606, 14856349686461776713, 17293559228040414836),
+UInt256(2766452331409032665, 7724407183888759754, 4673532535611222542, 3890945489884177417),
+UInt256(3458065414261290831, 14267194998288337596, 15065287706368803985, 14087053899209997579),
+]
+
+private let bid_multipliers2_binary64_12: [UInt256] = [
+UInt256(4322581767826613539, 13222307729433034092, 384865559251453366, 3773759318730333261),
+UInt256(2701613604891633462, 5958099321681952355, 9463913011386934161, 16193657629488622000),
+UInt256(3377017006114541827, 16670996188957216252, 7218205245806279798, 6407013981578613788),
+UInt256(4221271257643177284, 16227059217769132411, 9022756557257849747, 17232139513828043043),
+UInt256(2638294536026985803, 918539974250931949, 3333379839072462140, 8464244186928832950),
+UInt256(3297868170033732253, 14983233023095828648, 8778410817267965579, 10580305233661041188),
+UInt256(4122335212542165317, 4893983223587622098, 10973013521584956974, 8613695523648913581),
+UInt256(2576459507838853323, 5364582523955957763, 11469819469417986013, 771873683853183084),
+UInt256(3220574384798566654, 2094042136517559300, 9725588318345094612, 5576528123243866759),
+UInt256(4025717980998208317, 11840924707501724933, 12156985397931368265, 6970660154054833449),
+UInt256(2516073738123880198, 9706420951402272035, 9903958882920799117, 15885877642352740666),
+UInt256(3145092172654850248, 2909654152398064236, 7768262585223610993, 6022288997658762120),
+UInt256(3931365215818562810, 3637067690497580295, 9710328231529513741, 12139547265500840554),
+UInt256(2457103259886601756, 6884853324988375588, 12986484172347027944, 9893060050151719298),
+UInt256(3071379074858252195, 8606066656235469485, 16233105215433784930, 12366325062689649123),
+UInt256(3839223843572815244, 6145897301866948953, 6456323464010067451, 6234534291507285595),
+UInt256(2399514902233009527, 13064557850521618903, 15564417211074761917, 1590740922978359545),
+UInt256(2999393627791261909, 11719011294724635725, 14843835495416064492, 6600112172150337335),
+UInt256(3749242034739077387, 813706063123630945, 4719736313987916903, 8250140215187921669),
+UInt256(2343276271711923366, 16649467353948127004, 14479050242310917824, 12073866662133532899),
+UInt256(2929095339639904208, 11588462155580382947, 18098812802888647280, 15092333327666916124),
+UInt256(3661369174549880260, 14485577694475478684, 18011829985183421197, 418672585874093539),
+UInt256(4576711468187350325, 18106972118094348356, 4068043407769724880, 5135026750770004827),
+UInt256(2860444667617093953, 13622700583022661674, 11765899166710853858, 3209391719231253017),
+UInt256(3575555834521367442, 3193317673496163381, 5484001921533791514, 13235111685893842080),
+UInt256(4469444793151709302, 13215019128724980034, 11466688420344627297, 7320517570512526791),
+UInt256(2793402995719818314, 3647700937025724617, 11778366281142779964, 16104538527638799005),
+UInt256(3491753744649772892, 13782998208136931580, 887899796146311244, 1683929085838947140),
+UInt256(4364692180812216115, 17228747760171164475, 1109874745182889055, 2104911357298683925),
+UInt256(2727932613007635072, 8462124340893283844, 16834572780235163323, 8233098625952759309),
+UInt256(3409915766259543840, 10577655426116604806, 2596471901584402538, 5679687264013561232),
+UInt256(4262394707824429800, 13222069282645756007, 12468961913835278980, 16322981116871727348),
+UInt256(2663996692390268625, 8263793301653597504, 14710630223788131219, 978491161190053785),
+UInt256(3329995865487835781, 14941427645494384784, 18388287779735164023, 15058172006769730943),
+UInt256(4162494831859794727, 4841726501585817269, 4538615650959403413, 14211028990034775774),
+UInt256(2601559269912371704, 9943608091132217649, 5142477791063321085, 11187736127985428811),
+UInt256(3251949087390464630, 12429510113915272061, 11039783257256539261, 149612104699622302),
+UInt256(4064936359238080788, 6313515605539314268, 18411415089998061980, 4798701149301915781),
+UInt256(2540585224523800492, 13169319290316847226, 2283762394394012929, 12222560255168473171),
+UInt256(3175731530654750615, 16461649112896059032, 12078075029847291970, 1443142263678427752),
+UInt256(3969664413318438269, 15965375372692685886, 15097593787309114962, 11027299866452810498),
+UInt256(2481040258324023918, 12284202617146622631, 4824310098640808947, 11503748434960394466),
+UInt256(3101300322905029898, 6131881234578502481, 1418701604873623280, 9767999525273105178),
+UInt256(3876625403631287372, 16888223580077903909, 6385063024519417004, 12209999406591381472),
+UInt256(2422890877269554608, 1331767700693914135, 6296507399538329579, 16854621665974389228),
+UInt256(3028613596586943260, 1664709625867392669, 3258948230995524070, 16456591064040598631),
+UInt256(3785766995733679075, 2080887032334240836, 8685371307171792992, 11347366793195972481),
+UInt256(2366104372333549421, 17441455459704758186, 14651729103837146428, 7092104245747482801),
+UInt256(2957630465416936777, 7966761269348784021, 9091289342941657227, 8865130307184353501),
+UInt256(3697038081771170971, 14570137605113367930, 15975797697104459438, 6469726865553053972),
+]
+
+private let bid_multipliers2_binary64_13: [UInt256] = [
+UInt256(2310648801106981857, 6800492993982161004, 14596559579117675052, 17878637346252822445),
+UInt256(2888311001383727321, 13112302260905089159, 18245699473897093816, 3901552609106476440),
+UInt256(3610388751729659152, 2555319770849197737, 18195438323943979366, 4876940761383095549),
+UInt256(4512985939662073940, 3194149713561497172, 8909239849647810495, 15319547988583645245),
+UInt256(2820616212288796212, 11219715607830711540, 14791646942884657367, 16492246520505860134),
+UInt256(3525770265360995265, 14024644509788389426, 42814604896270093, 16003622132204937264),
+UInt256(4407212831701244082, 3695747581953323070, 9276890292975113425, 6169469609974007867),
+UInt256(2754508019813277551, 6921528257148214823, 1186370414682057986, 15385133552302224677),
+UInt256(3443135024766596939, 4040224303007880624, 15318021073634736195, 10008044903523005038),
+UInt256(4303918780958246174, 438594360332462877, 700782268333868628, 7898370110976368394),
+UInt256(2689949238098903858, 14109179530489953010, 2743831926922361844, 14159853356215006054),
+UInt256(3362436547623629823, 8413102376257665454, 12653161945507728113, 17699816695268757568),
+UInt256(4203045684529537279, 5904691951894693914, 6593080395029884334, 8289712813803783248),
+UInt256(2626903552830960799, 10607961497575265552, 8732361265321065613, 569384490199976626),
+UInt256(3283629441038700999, 8648265853541694036, 10915451581651332016, 5323416631177358686),
+UInt256(4104536801298376249, 6198646298499729641, 13644314477064165020, 6654270788971698358),
+UInt256(2565335500811485155, 15403368982630800786, 1610167520524021281, 13382291279962087282),
+UInt256(3206669376014356444, 14642525209861113078, 11236081437509802410, 2892806044670445390),
+]
+
+// MARK: - bid_multipliers1_binary80
+
+extension BinaryFloatingPointTables {
+ internal static func bid_multipliers1_binary80(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_multipliers1_binary80_0[r]
+ case 1: return bid_multipliers1_binary80_1[r]
+ case 2: return bid_multipliers1_binary80_2[r]
+ case 3: return bid_multipliers1_binary80_3[r]
+ case 4: return bid_multipliers1_binary80_4[r]
+ case 5: return bid_multipliers1_binary80_5[r]
+ case 6: return bid_multipliers1_binary80_6[r]
+ case 7: return bid_multipliers1_binary80_7[r]
+ case 8: return bid_multipliers1_binary80_8[r]
+ case 9: return bid_multipliers1_binary80_9[r]
+ case 10: return bid_multipliers1_binary80_10[r]
+ case 11: return bid_multipliers1_binary80_11[r]
+ case 12: return bid_multipliers1_binary80_12[r]
+ case 13: return bid_multipliers1_binary80_13[r]
+ case 14: return bid_multipliers1_binary80_14[r]
+ case 15: return bid_multipliers1_binary80_15[r]
+ case 16: return bid_multipliers1_binary80_16[r]
+ case 17: return bid_multipliers1_binary80_17[r]
+ case 18: return bid_multipliers1_binary80_18[r]
+ case 19: return bid_multipliers1_binary80_19[r]
+ case 20: return bid_multipliers1_binary80_20[r]
+ case 21: return bid_multipliers1_binary80_21[r]
+ case 22: return bid_multipliers1_binary80_22[r]
+ case 23: return bid_multipliers1_binary80_23[r]
+ case 24: return bid_multipliers1_binary80_24[r]
+ case 25: return bid_multipliers1_binary80_25[r]
+ case 26: return bid_multipliers1_binary80_26[r]
+ case 27: return bid_multipliers1_binary80_27[r]
+ case 28: return bid_multipliers1_binary80_28[r]
+ case 29: return bid_multipliers1_binary80_29[r]
+ case 30: return bid_multipliers1_binary80_30[r]
+ case 31: return bid_multipliers1_binary80_31[r]
+ case 32: return bid_multipliers1_binary80_32[r]
+ case 33: return bid_multipliers1_binary80_33[r]
+ case 34: return bid_multipliers1_binary80_34[r]
+ case 35: return bid_multipliers1_binary80_35[r]
+ case 36: return bid_multipliers1_binary80_36[r]
+ case 37: return bid_multipliers1_binary80_37[r]
+ case 38: return bid_multipliers1_binary80_38[r]
+ case 39: return bid_multipliers1_binary80_39[r]
+ case 40: return bid_multipliers1_binary80_40[r]
+ case 41: return bid_multipliers1_binary80_41[r]
+ case 42: return bid_multipliers1_binary80_42[r]
+ case 43: return bid_multipliers1_binary80_43[r]
+ case 44: return bid_multipliers1_binary80_44[r]
+ case 45: return bid_multipliers1_binary80_45[r]
+ case 46: return bid_multipliers1_binary80_46[r]
+ case 47: return bid_multipliers1_binary80_47[r]
+ case 48: return bid_multipliers1_binary80_48[r]
+ case 49: return bid_multipliers1_binary80_49[r]
+ case 50: return bid_multipliers1_binary80_50[r]
+ case 51: return bid_multipliers1_binary80_51[r]
+ case 52: return bid_multipliers1_binary80_52[r]
+ case 53: return bid_multipliers1_binary80_53[r]
+ case 54: return bid_multipliers1_binary80_54[r]
+ case 55: return bid_multipliers1_binary80_55[r]
+ case 56: return bid_multipliers1_binary80_56[r]
+ case 57: return bid_multipliers1_binary80_57[r]
+ case 58: return bid_multipliers1_binary80_58[r]
+ case 59: return bid_multipliers1_binary80_59[r]
+ case 60: return bid_multipliers1_binary80_60[r]
+ case 61: return bid_multipliers1_binary80_61[r]
+ case 62: return bid_multipliers1_binary80_62[r]
+ case 63: return bid_multipliers1_binary80_63[r]
+ case 64: return bid_multipliers1_binary80_64[r]
+ case 65: return bid_multipliers1_binary80_65[r]
+ case 66: return bid_multipliers1_binary80_66[r]
+ case 67: return bid_multipliers1_binary80_67[r]
+ case 68: return bid_multipliers1_binary80_68[r]
+ case 69: return bid_multipliers1_binary80_69[r]
+ case 70: return bid_multipliers1_binary80_70[r]
+ case 71: return bid_multipliers1_binary80_71[r]
+ case 72: return bid_multipliers1_binary80_72[r]
+ case 73: return bid_multipliers1_binary80_73[r]
+ case 74: return bid_multipliers1_binary80_74[r]
+ case 75: return bid_multipliers1_binary80_75[r]
+ case 76: return bid_multipliers1_binary80_76[r]
+ case 77: return bid_multipliers1_binary80_77[r]
+ case 78: return bid_multipliers1_binary80_78[r]
+ case 79: return bid_multipliers1_binary80_79[r]
+ case 80: return bid_multipliers1_binary80_80[r]
+ case 81: return bid_multipliers1_binary80_81[r]
+ case 82: return bid_multipliers1_binary80_82[r]
+ case 83: return bid_multipliers1_binary80_83[r]
+ case 84: return bid_multipliers1_binary80_84[r]
+ case 85: return bid_multipliers1_binary80_85[r]
+ case 86: return bid_multipliers1_binary80_86[r]
+ case 87: return bid_multipliers1_binary80_87[r]
+ case 88: return bid_multipliers1_binary80_88[r]
+ case 89: return bid_multipliers1_binary80_89[r]
+ case 90: return bid_multipliers1_binary80_90[r]
+ case 91: return bid_multipliers1_binary80_91[r]
+ case 92: return bid_multipliers1_binary80_92[r]
+ case 93: return bid_multipliers1_binary80_93[r]
+ case 94: return bid_multipliers1_binary80_94[r]
+ case 95: return bid_multipliers1_binary80_95[r]
+ case 96: return bid_multipliers1_binary80_96[r]
+ case 97: return bid_multipliers1_binary80_97[r]
+ case 98: return bid_multipliers1_binary80_98[r]
+ case 99: return bid_multipliers1_binary80_99[r]
+ case 100: return bid_multipliers1_binary80_100[r]
+ case 101: return bid_multipliers1_binary80_101[r]
+ case 102: return bid_multipliers1_binary80_102[r]
+ case 103: return bid_multipliers1_binary80_103[r]
+ case 104: return bid_multipliers1_binary80_104[r]
+ case 105: return bid_multipliers1_binary80_105[r]
+ case 106: return bid_multipliers1_binary80_106[r]
+ case 107: return bid_multipliers1_binary80_107[r]
+ case 108: return bid_multipliers1_binary80_108[r]
+ case 109: return bid_multipliers1_binary80_109[r]
+ case 110: return bid_multipliers1_binary80_110[r]
+ case 111: return bid_multipliers1_binary80_111[r]
+ case 112: return bid_multipliers1_binary80_112[r]
+ case 113: return bid_multipliers1_binary80_113[r]
+ case 114: return bid_multipliers1_binary80_114[r]
+ case 115: return bid_multipliers1_binary80_115[r]
+ case 116: return bid_multipliers1_binary80_116[r]
+ case 117: return bid_multipliers1_binary80_117[r]
+ case 118: return bid_multipliers1_binary80_118[r]
+ case 119: return bid_multipliers1_binary80_119[r]
+ case 120: return bid_multipliers1_binary80_120[r]
+ case 121: return bid_multipliers1_binary80_121[r]
+ case 122: return bid_multipliers1_binary80_122[r]
+ case 123: return bid_multipliers1_binary80_123[r]
+ case 124: return bid_multipliers1_binary80_124[r]
+ case 125: return bid_multipliers1_binary80_125[r]
+ case 126: return bid_multipliers1_binary80_126[r]
+ case 127: return bid_multipliers1_binary80_127[r]
+ case 128: return bid_multipliers1_binary80_128[r]
+ case 129: return bid_multipliers1_binary80_129[r]
+ case 130: return bid_multipliers1_binary80_130[r]
+ case 131: return bid_multipliers1_binary80_131[r]
+ case 132: return bid_multipliers1_binary80_132[r]
+ case 133: return bid_multipliers1_binary80_133[r]
+ case 134: return bid_multipliers1_binary80_134[r]
+ case 135: return bid_multipliers1_binary80_135[r]
+ case 136: return bid_multipliers1_binary80_136[r]
+ case 137: return bid_multipliers1_binary80_137[r]
+ case 138: return bid_multipliers1_binary80_138[r]
+ case 139: return bid_multipliers1_binary80_139[r]
+ case 140: return bid_multipliers1_binary80_140[r]
+ case 141: return bid_multipliers1_binary80_141[r]
+ case 142: return bid_multipliers1_binary80_142[r]
+ case 143: return bid_multipliers1_binary80_143[r]
+ case 144: return bid_multipliers1_binary80_144[r]
+ case 145: return bid_multipliers1_binary80_145[r]
+ case 146: return bid_multipliers1_binary80_146[r]
+ case 147: return bid_multipliers1_binary80_147[r]
+ case 148: return bid_multipliers1_binary80_148[r]
+ case 149: return bid_multipliers1_binary80_149[r]
+ case 150: return bid_multipliers1_binary80_150[r]
+ case 151: return bid_multipliers1_binary80_151[r]
+ case 152: return bid_multipliers1_binary80_152[r]
+ case 153: return bid_multipliers1_binary80_153[r]
+ case 154: return bid_multipliers1_binary80_154[r]
+ case 155: return bid_multipliers1_binary80_155[r]
+ case 156: return bid_multipliers1_binary80_156[r]
+ case 157: return bid_multipliers1_binary80_157[r]
+ case 158: return bid_multipliers1_binary80_158[r]
+ case 159: return bid_multipliers1_binary80_159[r]
+ case 160: return bid_multipliers1_binary80_160[r]
+ case 161: return bid_multipliers1_binary80_161[r]
+ case 162: return bid_multipliers1_binary80_162[r]
+ case 163: return bid_multipliers1_binary80_163[r]
+ case 164: return bid_multipliers1_binary80_164[r]
+ case 165: return bid_multipliers1_binary80_165[r]
+ case 166: return bid_multipliers1_binary80_166[r]
+ case 167: return bid_multipliers1_binary80_167[r]
+ case 168: return bid_multipliers1_binary80_168[r]
+ case 169: return bid_multipliers1_binary80_169[r]
+ case 170: return bid_multipliers1_binary80_170[r]
+ case 171: return bid_multipliers1_binary80_171[r]
+ case 172: return bid_multipliers1_binary80_172[r]
+ case 173: return bid_multipliers1_binary80_173[r]
+ case 174: return bid_multipliers1_binary80_174[r]
+ case 175: return bid_multipliers1_binary80_175[r]
+ case 176: return bid_multipliers1_binary80_176[r]
+ case 177: return bid_multipliers1_binary80_177[r]
+ case 178: return bid_multipliers1_binary80_178[r]
+ case 179: return bid_multipliers1_binary80_179[r]
+ case 180: return bid_multipliers1_binary80_180[r]
+ case 181: return bid_multipliers1_binary80_181[r]
+ case 182: return bid_multipliers1_binary80_182[r]
+ case 183: return bid_multipliers1_binary80_183[r]
+ case 184: return bid_multipliers1_binary80_184[r]
+ case 185: return bid_multipliers1_binary80_185[r]
+ case 186: return bid_multipliers1_binary80_186[r]
+ case 187: return bid_multipliers1_binary80_187[r]
+ case 188: return bid_multipliers1_binary80_188[r]
+ case 189: return bid_multipliers1_binary80_189[r]
+ case 190: return bid_multipliers1_binary80_190[r]
+ case 191: return bid_multipliers1_binary80_191[r]
+ case 192: return bid_multipliers1_binary80_192[r]
+ case 193: return bid_multipliers1_binary80_193[r]
+ case 194: return bid_multipliers1_binary80_194[r]
+ case 195: return bid_multipliers1_binary80_195[r]
+ case 196: return bid_multipliers1_binary80_196[r]
+ case 197: return bid_multipliers1_binary80_197[r]
+ case 198: return bid_multipliers1_binary80_198[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_multipliers1_binary80_0: [UInt256] = [
+UInt256(5255184001115807319, 4938398379086257084, 14557465677128539270, 12415850090107640902),
+UInt256(6568980001394759149, 1561311955430433451, 18196832096410674088, 6296440575779775320),
+UInt256(8211225001743448936, 6563325962715429718, 18134354102085954706, 7870550719724719149),
+UInt256(5132015626089655585, 4102078726697143574, 6722285295376333787, 9530780218255337373),
+UInt256(6415019532612069481, 9739284426798817371, 17626228656075193042, 7301789254391783812),
+UInt256(8018774415765086851, 16785791551925909618, 17421099801666603398, 18350608604844505572),
+UInt256(5011734009853179282, 8185276710739999559, 15499873394469015028, 6857444359600428079),
+UInt256(6264667512316474103, 1008223851570223641, 14763155724658880881, 8571805449500535098),
+UInt256(7830834390395592628, 15095337869744943264, 4618886600541437389, 15326442830303056777),
+UInt256(4894271493997245393, 211214131735813732, 2886804125338398368, 11884869778153104438),
+UInt256(6117839367496556741, 4875703683097155069, 3608505156672997960, 14856087222691380547),
+UInt256(7647299209370695926, 10706315622298831740, 9122317464268635355, 123364954654674068),
+UInt256(4779562005856684954, 2079761245509381933, 14924820452022672904, 16218004161155028957),
+UInt256(5974452507320856192, 11823073593741503225, 4820967509746177419, 1825761127734234580),
+UInt256(7468065634151070240, 14778841992176879031, 10637895405610109677, 16117259464949956936),
+UInt256(4667541021344418900, 9236776245110549394, 13566213656147400404, 12379130174807417037),
+UInt256(5834426276680523625, 11545970306388186743, 7734395033329474697, 15473912718509271297),
+UInt256(7293032845850654532, 597404827703069717, 5056307773234455468, 5507332842854425409),
+UInt256(9116291057313318165, 746756034628837146, 10932070734970457239, 6884166053568031761),
+UInt256(5697681910820823853, 2772565530856717168, 11444230227783923678, 11220132811121101707),
+UInt256(7122102388526029816, 8077392931998284364, 14305287784729904598, 4801793977046601325),
+UInt256(8902627985657537270, 10096741164997855455, 17881609730912380747, 15225614508163027464),
+UInt256(5564142491035960794, 1698777209696271755, 18093535109461319823, 7210166058388198213),
+UInt256(6955178113794950992, 11346843548975115502, 18005232868399261875, 4401021554557859863),
+UInt256(8693972642243688740, 14183554436218894378, 13283169048644301536, 889590924769936924),
+UInt256(5433732901402305462, 18088093559491584794, 12913666673830076364, 555994327981210578),
+UInt256(6792166126752881828, 13386744912509705185, 6918711305432819647, 694992909976513222),
+UInt256(8490207658441102285, 16733431140637131481, 13260075150218412462, 14703799192752805239),
+UInt256(5306379786525688928, 12764237472111901128, 1370017941245425933, 4578188477043115371),
+UInt256(6632974733157111160, 15955296840139876410, 1712522426556782416, 10334421614731282117),
+UInt256(8291218416446388951, 1497376976465293896, 11364025070050753828, 12918027018414102647),
+UInt256(5182011510278993094, 7853389637931890541, 7102515668781721142, 17297138923363589962),
+UInt256(6477514387848741368, 593365010560087368, 13489830604404539332, 12398051617349711645),
+UInt256(8096892984810926710, 741706263200109210, 16862288255505674165, 15497564521687139556),
+UInt256(5060558115506829193, 14298624469782231968, 15150616178118434257, 11991820835268156175),
+UInt256(6325697644383536492, 4038222531945626249, 491526148938491206, 1154717988803031506),
+UInt256(7907122055479420615, 5047778164932032811, 5226093704600501911, 10666769522858565191),
+UInt256(4941951284674637884, 10072390380723602363, 960465556161619742, 13584259979427685100),
+UInt256(6177439105843297355, 12590487975904502953, 15035640000484188390, 7756952937429830567),
+UInt256(7721798882304121694, 11126423951453240788, 4959491945323071776, 472819134932512401),
+UInt256(4826124301440076059, 2342328951230887588, 12323054502681695668, 295511959332820251),
+UInt256(6032655376800095073, 16762969244320773197, 15403818128352119585, 369389949166025313),
+UInt256(7540819221000118842, 7118653500118802785, 5419714605157985769, 5073423454884919546),
+UInt256(4713012013125074276, 9060844456001639644, 14916536674292210865, 14700104705371544476),
+UInt256(5891265016406342845, 11326055570002049556, 198926769155711966, 4540072826432266883),
+UInt256(7364081270507928557, 322511407220398233, 248658461444639957, 14898463069895109412),
+UInt256(9205101588134910696, 5014825277452885695, 4922509095233187851, 4788020782086723053),
+UInt256(5753188492584319185, 3134265798408053559, 9994097212161824263, 686669979590507956),
+UInt256(7191485615730398981, 8529518266437454853, 7880935496774892424, 14693395529770298657),
+UInt256(8989357019662998726, 15273583851474206470, 14462855389396003434, 18366744412212873321),
+]
+
+private let bid_multipliers1_binary80_1: [UInt256] = [
+UInt256(5618348137289374204, 4934303888743991140, 4427598599945114242, 16090901276060433730),
+UInt256(7022935171611717755, 6167879860929988925, 5534498249931392803, 10890254558220766354),
+UInt256(8778668964514647194, 3098163807735098252, 11529808830841628908, 9001132179348570039),
+UInt256(5486668102821654496, 6548038398261824311, 16429502556130793875, 14849079648947632082),
+UInt256(6858335128527068120, 8185047997827280389, 15925192176736104440, 13949663542757152199),
+UInt256(8572918910658835150, 10231309997284100487, 6071432165637966838, 17437079428446440248),
+UInt256(5358074319161771969, 1782882729875174900, 10712174131164811130, 6286488624351637251),
+UInt256(6697592898952214961, 6840289430771356529, 13390217663956013912, 17081482817294322372),
+UInt256(8371991123690268701, 13162047806891583566, 2902714024662853679, 2905109447908351349),
+UInt256(5232494452306417938, 10532122888520933680, 15649254320696447261, 8733222432583801449),
+UInt256(6540618065383022423, 3941781573796391293, 1114823827161007460, 15528214059157139716),
+UInt256(8175772581728778029, 315540948818101212, 6005215802378647230, 963523500236873028),
+UInt256(5109857863580486268, 2503056102225007209, 12976631913341430326, 14437260242930209355),
+UInt256(6387322329475607835, 3128820127781259012, 2385731836394624196, 8823203266807985885),
+UInt256(7984152911844509793, 17746083215008737477, 2982164795493280245, 11029004083509982357),
+UInt256(4990095569902818621, 4173772981739379067, 4169696006396994105, 9198970561407432925),
+UInt256(6237619462378523276, 9828902245601611738, 600433989568854727, 16110399220186679060),
+UInt256(7797024327973154095, 12286127807002014672, 9973914523815844217, 15526313006805960921),
+UInt256(4873140204983221309, 14596358907017341026, 6233696577384902636, 2786416601612643720),
+UInt256(6091425256229026637, 4410390578489512570, 17015492758585904103, 3483020752015804650),
+UInt256(7614281570286283296, 10124674241539278617, 12045993911377604320, 18188833995301919524),
+UInt256(4758925981428927060, 6327921400962049136, 611217166969920844, 11368021247063699703),
+UInt256(5948657476786158825, 7909901751202561420, 764021458712401055, 14210026558829624628),
+UInt256(7435821845982698531, 14499063207430589679, 955026823390501319, 13150847180109642881),
+UInt256(4647388653739186582, 6756071495430424597, 7514420792260145180, 15136808515209608657),
+UInt256(5809235817173983227, 17668461406142806554, 14004712008752569380, 474266570302459205),
+UInt256(7261544771467479034, 17473890739251120289, 8282517974085935917, 592833212878074006),
+UInt256(9076930964334348793, 12618991387209124553, 14964833486034807800, 5352727534524980412),
+UInt256(5673081852708967996, 969340589364620990, 2435491901130673019, 3345454709078112758),
+UInt256(7091352315886209995, 1211675736705776237, 12267736913268117081, 18016876441629804659),
+UInt256(8864190394857762493, 15349652726164384009, 1499613086302982640, 8686037496755092111),
+UInt256(5540118996786101558, 11899375963066433957, 12466473225007833910, 5428773435471932570),
+UInt256(6925148745982626948, 5650847916978266639, 1748033475977628675, 16009338831194691520),
+UInt256(8656435932478283685, 7063559896222833298, 16020099900254199556, 15399987520565976496),
+UInt256(5410272457798927303, 6720567944352964763, 14624248456086262627, 401620163498959502),
+UInt256(6762840572248659129, 3789023912013818050, 13668624551680440379, 14337083259655863090),
+UInt256(8453550715310823911, 9347965908444660467, 7862408652745774666, 13309668056142440958),
+UInt256(5283469197069264944, 12760007720418994648, 2608162398752415214, 12930228553516413503),
+UInt256(6604336496336581180, 15950009650523743310, 3260202998440519018, 6939413655040741070),
+UInt256(8255420620420726476, 1490767989445127521, 13298625784905424580, 17897639105655702146),
+UInt256(5159637887762954047, 10155102030257980509, 1394112087924808507, 1962652404180038033),
+UInt256(6449547359703692559, 8082191519395087732, 6354326128333398537, 16288373560507211254),
+UInt256(8061934199629615699, 5491053380816471761, 7942907660416748172, 6525408895351850355),
+UInt256(5038708874768509812, 1126065353796600898, 16493532333828937367, 13301752596449682280),
+UInt256(6298386093460637265, 1407581692245751123, 11393543380431395901, 12015504727134714946),
+UInt256(7872982616825796581, 6371163133734576808, 9630243207111856973, 1184322853636229970),
+UInt256(4920614135516122863, 6287819967797804457, 6018902004444910608, 3046044792736337684),
+UInt256(6150767669395153579, 3248088941319867667, 12135313523983526164, 3807555990920422104),
+UInt256(7688459586743941973, 17895169231931998296, 10557455886552019801, 4759444988650527630),
+UInt256(4805287241714963733, 13490323779171192887, 6598409929095012375, 14503868163975049529),
+]
+
+private let bid_multipliers1_binary80_2: [UInt256] = [
+UInt256(6006609052143704667, 3027846668681827397, 3636326392941377565, 13518149186541424007),
+UInt256(7508261315179630833, 17619866391134447958, 9157094009604109861, 3062628427894616297),
+UInt256(4692663321987269271, 4094887466817948118, 1111497737575180759, 4219985776647829138),
+UInt256(5865829152484086589, 506923315095047243, 10612744208823751757, 663296202382398518),
+UInt256(7332286440605108236, 5245340162296196958, 8654244242602301792, 5440806271405386052),
+UInt256(9165358050756385295, 6556675202870246198, 1594433266398101432, 6801007839256732564),
+UInt256(5728348781722740809, 11015451029434985729, 14831578846780977107, 4250629899535457853),
+UInt256(7160435977153426011, 18380999805221120066, 4704415503194057672, 701601355991934412),
+UInt256(8950544971441782514, 18364563738099012178, 15103891415847347898, 877001694989918015),
+UInt256(5594090607151114071, 16089538354739270515, 14051618153331980340, 5159812077796086663),
+UInt256(6992613258938892589, 15500236924996700240, 12952836673237587521, 6449765097245108329),
+UInt256(8740766573673615737, 5540238100963711588, 16191045841546984401, 12673892389983773315),
+UInt256(5462979108546009835, 14991863859170789503, 896031614112089443, 1003653716098776466),
+UInt256(6828723885682512294, 14128143805536098974, 14955097572922275515, 15089625200405634295),
+UInt256(8535904857103140368, 8436807720065347910, 9470499929298068586, 14250345482079654964),
+UInt256(5334940535689462730, 5273004825040842444, 1307376437383904962, 13518151944727172257),
+UInt256(6668675669611828412, 15814628068155828863, 1634220546729881203, 7674317894054189513),
+UInt256(8335844587014785516, 1321541011485234462, 15877833738694515216, 4981211349140348987),
+UInt256(5209902866884240947, 10049335169033047347, 5311960068256684106, 3113257093212718117),
+UInt256(6512378583605301184, 7949982942863921280, 2028264066893467228, 13114943403370673454),
+UInt256(8140473229506626480, 9937478678579901600, 2535330083616834035, 16393679254213341818),
+UInt256(5087795768441641550, 6210924174112438500, 1584581302260521272, 7940206524669644684),
+UInt256(6359744710552051937, 16987027254495323933, 1980726627825651590, 9925258155837055855),
+UInt256(7949680888190064922, 7398726012836991204, 7087594303209452392, 3183200657941544011),
+UInt256(4968550555118790576, 9235889776450507406, 13653118476360683553, 1989500411213465007),
+UInt256(6210688193898488220, 11544862220563134258, 7843026058596078633, 7098561532444219163),
+UInt256(7763360242373110275, 14431077775703917823, 580410536390322483, 13484887933982661857),
+UInt256(4852100151483193922, 6713580600601254687, 7280285612885033408, 6122211949525469709),
+UInt256(6065125189353992402, 17615347787606344167, 4488670997678903856, 7652764936906837136),
+UInt256(7581406486692490503, 12795812697653154401, 999152728671241916, 9565956171133546420),
+UInt256(4738379054182806564, 14914911963674303356, 12153685501487995957, 15202094643813242321),
+UInt256(5922973817728508206, 196895880883327579, 15192106876859994947, 5167560249484389189),
+UInt256(7403717272160635257, 9469491887958935282, 14378447577647605780, 1847764293428098582),
+UInt256(4627323295100397035, 17447647476042804311, 13598215754457141516, 10378224720247337422),
+UInt256(5784154118875496294, 17197873326626117485, 12386083674644038991, 12972780900309171777),
+UInt256(7230192648594370368, 12273969621427871049, 1647546538022885027, 11604290106959076817),
+UInt256(9037740810742962960, 15342462026784838811, 6671119190955994188, 9893676615271458117),
+UInt256(5648588006714351850, 9589038766740524257, 1863606485133802415, 15406919921399437132),
+UInt256(7060735008392939813, 2762926421570879513, 6941194124844640923, 14646963883321908510),
+UInt256(8825918760491174766, 8065344045390987295, 13288178674483189058, 13697018835724997734),
+UInt256(5516199225306984229, 429154009941979155, 15222640699193075017, 13172322790755511488),
+UInt256(6895249031633730286, 5148128530854861848, 14416614855563955868, 2630345433162225648),
+UInt256(8619061289542162857, 15658532700423353118, 18020768569454944835, 3287931791452782059),
+UInt256(5386913305963851786, 2869053910123513843, 6651294337481952617, 18195858434153846451),
+UInt256(6733641632454814732, 12809689424509168112, 3702431903425052868, 8909764987410144352),
+UInt256(8417052040568518415, 16012111780636460140, 4628039879281316085, 11137206234262680440),
+UInt256(5260657525355324009, 16925098890538869443, 12115896961405598361, 9266596905627869227),
+UInt256(6575821906694155012, 7321315557891423092, 10533185183329610047, 16194932150462224438),
+UInt256(8219777383367693765, 9151644447364278865, 13166481479162012559, 15631979169650392643),
+UInt256(5137360864604808603, 8025620788816368243, 1311521896835175993, 16687516008672577258),
+]
+
+private let bid_multipliers1_binary80_3: [UInt256] = [
+UInt256(6421701080756010754, 5420339967593072399, 15474460426326133704, 7024336955558557860),
+UInt256(8027126350945013442, 15998796996346116307, 14731389514480279226, 8780421194448197325),
+UInt256(5016953969340633401, 14610934141143710596, 6901275437336480564, 10099449264957511233),
+UInt256(6271192461675791752, 4428609621147474533, 8626594296670600705, 12624311581196889041),
+UInt256(7838990577094739690, 5535762026434343166, 15394928889265638786, 1945331421213947589),
+UInt256(4899369110684212306, 8071537284948852383, 5010144537363636337, 5827518156686105147),
+UInt256(6124211388355265383, 866049569331289671, 1650994653277157517, 11896083714285019338),
+UInt256(7655264235444081728, 14917620016946275800, 15898801371878610609, 1035046587574110460),
+UInt256(4784540147152551080, 9323512510591422375, 9936750857424131630, 12176119163302288798),
+UInt256(5980675183940688850, 11654390638239277969, 7809252553352776634, 5996776917273085189),
+UInt256(7475843979925861063, 5344616260944321653, 14373251710118358696, 16719343183446132294),
+UInt256(4672402487453663164, 10257914190731282889, 11289125328037668137, 10449589489653832684),
+UInt256(5840503109317078955, 12822392738414103612, 276348604764921459, 17673672880494678759),
+UInt256(7300628886646348694, 11416304904590241611, 345435755956151824, 17480405082190960545),
+UInt256(9125786108307935868, 5047009093883026205, 14266852750227353493, 3403762279029149065),
+UInt256(5703616317692459917, 12377752720531667186, 11222625978105789885, 4433194433606912118),
+UInt256(7129520397115574897, 1637132845382420271, 4804910435777461548, 10153179060436028051),
+UInt256(8911900496394468621, 6658102075155413243, 1394452026294439031, 12691473825545035063),
+UInt256(5569937810246542888, 6467156806185827228, 17012433580929882058, 14849700168606728771),
+UInt256(6962422262808178610, 8083946007732284036, 2818797902452800957, 9338753173903635155),
+UInt256(8703027828510223263, 881560472810579237, 3523497378066001196, 16285127485806931848),
+UInt256(5439392392818889539, 7468504323147693879, 4508028870504944700, 954832641774556597),
+UInt256(6799240491023611924, 4723944385507229445, 1023350069703792971, 1193540802218195746),
+UInt256(8499050613779514905, 5904930481884036806, 5890873605557129117, 15326984058054908395),
+UInt256(5311906633612196815, 15219796597245992763, 17516854058755369410, 11885208045498011699),
+UInt256(6639883292015246019, 14413059728130103050, 17284381555016823859, 5633138020017738816),
+UInt256(8299854115019057524, 13404638641735240909, 12382104906916254016, 2429736506594785615),
+UInt256(5187408821886910952, 17601271187939301376, 10044658576036352712, 1518585316621741010),
+UInt256(6484261027358638691, 3554844911214575104, 12555823220045440890, 1898231645777176262),
+UInt256(8105326284198298363, 18278614194300382592, 15694779025056801112, 11596161594076246136),
+UInt256(5065828927623936477, 9118290862224045168, 9809236890660500695, 7247600996297653835),
+UInt256(6332286159529920596, 16009549596207444364, 12261546113325625869, 4447815226944679390),
+UInt256(7915357699412400746, 1565192921549753839, 15326932641657032336, 10171455052108237141),
+UInt256(4947098562132750466, 5589931594395984053, 16496861928676727066, 6357159407567648213),
+UInt256(6183873202665938082, 16210786529849755875, 6786019355563745120, 17169821296314336074),
+UInt256(7729841503332422603, 11040111125457419036, 3870838176027293497, 3015532546683368477),
+UInt256(4831150939582764127, 4594226444197192945, 11642645896871834243, 13413922887745575058),
+UInt256(6038938674478455159, 1131097036819103278, 718249315807629092, 12155717591254580919),
+UInt256(7548673343098068948, 15248929351306042809, 10121183681614312173, 15194646989068226148),
+UInt256(4717920839436293093, 307208807711500947, 17854954847077414868, 11802497377381335295),
+UInt256(5897401049295366366, 4995697028066764088, 17707007540419380681, 14753121721726669118),
+UInt256(7371751311619207957, 15467993321938230919, 3687015351814674236, 4606344096876172686),
+UInt256(9214689139524009947, 5499933597140624936, 18443827245050506507, 5757930121095215857),
+UInt256(5759180712202506217, 1131615488999196633, 11527392028156566567, 1292863316470815959),
+UInt256(7198975890253132771, 6026205379676383696, 574181979913544496, 15451137200870683660),
+UInt256(8998719862816415964, 2921070706168091716, 717727474891930621, 867177427378802959),
+UInt256(5624199914260259977, 11049041228209833130, 9671951708662232446, 2847828901325445802),
+UInt256(7030249892825324971, 18422987553689679317, 2866567598973014749, 12783158163511583060),
+UInt256(8787812366031656214, 18417048423684711242, 8194895517143656341, 2143889649107315113),
+UInt256(5492382728769785134, 6898969246375556622, 9733495716642173117, 3645774039905765898),
+]
+
+private let bid_multipliers1_binary80_4: [UInt256] = [
+UInt256(6865478410962231417, 17847083594824221586, 2943497608947940588, 9168903568309595276),
+UInt256(8581848013702789272, 8473796438248113270, 12902744048039701543, 11461129460386994095),
+UInt256(5363655008564243295, 5296122773905070794, 3452529011597425560, 14080734940382953166),
+UInt256(6704568760705304119, 2008467448953950588, 13539033301351557758, 17600918675478691457),
+UInt256(8380710950881630148, 16345642366474601947, 16923791626689447198, 12777776307493588513),
+UInt256(5237944344301018843, 992654442191850409, 8271526757467210547, 3374424173756104917),
+UInt256(6547430430376273553, 15075876108021976723, 14951094465261401087, 18053088272477294858),
+UInt256(8184288037970341942, 5009787079745307192, 14077182063149363455, 17954674322169230668),
+UInt256(5115180023731463713, 16966174980122980707, 8798238789468352159, 18139200478996851024),
+UInt256(6393975029664329642, 7372660669871562172, 6386112468408052295, 18062314580318675876),
+UInt256(7992468787080412052, 18439197874194228523, 7982640585510065369, 17966207206970956941),
+UInt256(4995292991925257533, 2301126634516617019, 2683307356730096904, 4311350476715766232),
+UInt256(6244116239906571916, 7488094311573159177, 17189192251194784842, 5389188095894707790),
+UInt256(7805145299883214895, 9360117889466448972, 7651432258711317340, 15959857156723160545),
+UInt256(4878215812427009309, 12767602708557612463, 14005517198549349146, 751538686097199533),
+UInt256(6097769765533761637, 2124445330414851867, 12895210479759298528, 10162795394476275224),
+UInt256(7622212206917202046, 7267242681445952738, 11507327081271735256, 12703494243095344030),
+UInt256(4763882629323251278, 18377084731185884173, 11803765444222222439, 7939683901934590019),
+UInt256(5954853286654064098, 13747983877127579409, 919648749995614337, 5312918858990849620),
+UInt256(7443566608317580123, 7961607809554698453, 5761246955921905825, 11252834592165949928),
+UInt256(4652229130198487577, 2670161871757992581, 5906622356664885093, 115492592462636849),
+UInt256(5815286412748109471, 7949388358124878630, 11994963964258494270, 4756051759005683966),
+UInt256(7269108015935136839, 5325049429228710384, 5770332918468342029, 15168436735611880765),
+UInt256(9086385019918921049, 2044625768108500076, 7212916148085427537, 5125487864232687244),
+UInt256(5678990637449325655, 12807106151136282307, 13731444629408168018, 14732644961213899288),
+UInt256(7098738296811657069, 11397196670492964980, 12552619768332822119, 9192434164662598301),
+UInt256(8873422871014571337, 411437782834042513, 15690774710416027649, 6878856687400859973),
+UInt256(5545889294384107085, 11786363660339746331, 2889205166368935424, 15828500475694007243),
+UInt256(6932361617980133857, 897896520142519201, 17446564513243332993, 1338881520907957438),
+UInt256(8665452022475167321, 5734056668605536906, 7973147586272002529, 6285287919562334701),
+UInt256(5415907514046979575, 15113000463946930326, 9594903259847389484, 15457519995794928948),
+UInt256(6769884392558724469, 14279564561506275004, 2770257037954461048, 875155921034109569),
+UInt256(8462355490698405587, 4014397646600680043, 3462821297443076310, 1093944901292636962),
+UInt256(5288972181686503492, 203155519911731074, 18305164375397780357, 14518773618590061813),
+UInt256(6611215227108129365, 253944399889663843, 13658083432392449639, 4313408967955413554),
+UInt256(8264019033885161706, 4929116518289467708, 12460918272063174145, 780075191516879039),
+UInt256(5165011896178226066, 7692383842358305221, 17011445956894259648, 12016762040766519159),
+UInt256(6456264870222782583, 392107766093105719, 7429249390835660848, 15020952550958148949),
+UInt256(8070331087778478228, 14325192762898545861, 4674875720117188157, 329446614988134570),
+UInt256(5043956929861548892, 18176617513666366971, 5227640334286936550, 2511747143581278059),
+UInt256(6304946162326936116, 4274027818373407098, 1922864399431282783, 12363055966331373381),
+UInt256(7881182702908670145, 5342534772966758872, 11626952536143879287, 10842133939486828822),
+UInt256(4925739189317918840, 14868299279172694055, 7266845335089924554, 13693862739820349870),
+UInt256(6157173986647398551, 138630025256315953, 4471870650435017789, 7893956387920661530),
+UInt256(7696467483309248188, 14008345586852558653, 10201524331471160140, 14479131503328214816),
+UInt256(4810292177068280117, 17978588028637624966, 8681795716383169039, 18272829226434910068),
+UInt256(6012865221335350147, 8638176980514867496, 1628872608624185491, 18229350514616249681),
+UInt256(7516081526669187684, 6186035207216196466, 2036090760780231864, 18175002124842924197),
+UInt256(4697550954168242302, 13089644041364898599, 5884242743915032819, 11359376328026827623),
+UInt256(5871938692710302878, 7138683014851347441, 2743617411466403120, 9587534391606146625),
+]
+
+private let bid_multipliers1_binary80_5: [UInt256] = [
+UInt256(7339923365887878597, 18146725805418960109, 8041207782760391804, 11984417989507683281),
+UInt256(9174904207359848247, 8848349201491536424, 14663195746877877659, 14980522486884604101),
+UInt256(5734315129599905154, 12447747278573292121, 9164497341798673537, 7056983545089183612),
+UInt256(7167893911999881443, 6336312061361839343, 16067307695675729825, 13432915449788867418),
+UInt256(8959867389999851804, 3308704058274911275, 15472448601167274378, 2956086256953920561),
+UInt256(5599917118749907377, 11291312073276595355, 7364437366515852534, 6459239929023588255),
+UInt256(6999896398437384222, 279082036313580482, 4593860689717427763, 17297421948134261126),
+UInt256(8749870498046730277, 9572224582246751410, 14965697899001560512, 17010091416740438504),
+UInt256(5468669061279206423, 8288483373117913583, 13965247205303363224, 10631307135462774065),
+UInt256(6835836326599008029, 5748918197970004075, 12844872988201816126, 13289133919328467581),
+UInt256(8544795408248760036, 11797833765889892998, 11444405216824882254, 7388045362305808668),
+UInt256(5340497130155475022, 16597018140535958932, 2541067242088163505, 5842333013742514),
+UInt256(6675621412694343778, 11522900638815172857, 3176334052610204381, 4618988934694566046),
+UInt256(8344526765867929723, 5180253761664190263, 8582103584190143380, 10385422186795595462),
+UInt256(5215329228667456077, 931815591826424962, 12281343767759921468, 15714260903602022972),
+UInt256(6519161535834320096, 5776455508210419107, 6128307672845126028, 1196082055792977098),
+UInt256(8148951919792900120, 7220569385263023884, 3048698572629019631, 1495102569741221373),
+UInt256(5093094949870562575, 4512855865789389927, 11128808644747913077, 7851968133729345214),
+UInt256(6366368687338203219, 1029383813809349505, 9299324787507503442, 14426646185589069422),
+UInt256(7957960859172754023, 15121787822543850593, 16235842002811767207, 8809935695131560969),
+UInt256(4973725536982971264, 16368646416730988477, 3229872224116272648, 12423738837098307462),
+UInt256(6217156921228714081, 2014063947204183980, 8649026298572728714, 15529673546372884327),
+UInt256(7771446151535892601, 7129265952432617879, 10811282873215910893, 10188719896111329601),
+UInt256(4857153844709932875, 15985006266338855934, 13674580823401026164, 8673792944283274953),
+UInt256(6071442305887416094, 15369571814496182014, 7869853992396506897, 10842241180354093691),
+UInt256(7589302882359270118, 9988592731265451710, 613945453640857813, 18164487493870005017),
+UInt256(4743314301474543824, 1631184438613519414, 14218773963807699845, 13658647692882447088),
+UInt256(5929142876843179780, 2038980548266899268, 8550095417904848999, 3238251560820895148),
+UInt256(7411428596053974725, 2548725685333624085, 10687619272381061248, 17882872506308282647),
+UInt256(4632142872533734203, 3898796562547209005, 8985605054451857232, 11176795316442676654),
+UInt256(5790178590667167754, 261809684756623352, 15843692336492209444, 13970994145553345818),
+UInt256(7237723238333959692, 9550634142800554999, 1357871346905710189, 17463742681941682272),
+UInt256(9047154047917449615, 11938292678500693748, 15532397238914301449, 7994620297144939128),
+UInt256(5654471279948406009, 14378961951704015449, 484376237466662597, 16525852731784056715),
+UInt256(7068089099935507512, 4138644384347855599, 5217156315260716151, 6822257859447907182),
+UInt256(8835111374919384390, 5173305480434819499, 1909759375648507285, 3916136305882496073),
+UInt256(5521944609324615243, 17068373980553925898, 17334500674276174717, 4753428200390253998),
+UInt256(6902430761655769054, 16723781457265019469, 12444753805990442588, 10553471268915205401),
+UInt256(8628038452069711318, 11681354784726498529, 1720884202205889523, 13191839086144006752),
+UInt256(5392524032543569574, 2689160722026673676, 12604767672447150712, 5939056419626310268),
+UInt256(6740655040679461967, 12584822939388117903, 15755959590558938390, 7423820524532887835),
+UInt256(8425818800849327459, 11119342655807759475, 15083263469771285084, 56403618811333985),
+UInt256(5266136750530829662, 4643746150666155720, 7121196659393359225, 9258624298611859549),
+UInt256(6582670938163537077, 15028054725187470458, 8901495824241699031, 16184966391692212340),
+UInt256(8228338672704421347, 4950010351202174361, 1903497743447347981, 15619521971187877521),
+UInt256(5142711670440263342, 787913460287665023, 12718901135723062248, 12068044241206117403),
+UInt256(6428389588050329177, 10208263862214357087, 11286940401226439906, 15085055301507646754),
+UInt256(8035486985062911471, 17372015846195334263, 9496989483105661979, 9632947090029782634),
+UInt256(5022179365664319669, 17775038931513165770, 12853147454582120593, 3714748922054920194),
+UInt256(6277724207080399587, 8383740609109293501, 6843062281372874933, 9255122170996038147),
+]
+
+private let bid_multipliers1_binary80_6: [UInt256] = [
+UInt256(7847155258850499484, 5867989742959228972, 13165513870143481570, 16180588732172435587),
+UInt256(4904472036781562177, 12890865626204293915, 17451818205694451789, 14724553976035160146),
+UInt256(6130590045976952722, 2278523977473203682, 17203086738690676833, 4570634414761786471),
+UInt256(7663237557471190902, 12071527008696280411, 12280486386508570233, 10324979036879620992),
+UInt256(4789523473419494314, 2933018362007787353, 5369460982354162443, 17982326944118232880),
+UInt256(5986904341774367892, 12889644989364509999, 11323512246370090958, 17866222661720403196),
+UInt256(7483630427217959865, 16112056236705637499, 9542704289535225794, 13109406290295728187),
+UInt256(4677269017011224916, 3152506120299941581, 3658347171745822169, 12805064949862218021),
+UInt256(5846586271264031145, 3940632650374926976, 9184619983109665616, 2171273132045608814),
+UInt256(7308232839080038931, 9537476831396046624, 11480774978887082020, 2714091415057011018),
+UInt256(9135291048850048664, 7310160020817670376, 14350968723608852525, 3392614268821263772),
+UInt256(5709556905531280415, 4568850013011043985, 8969355452255532828, 4426226927226983810),
+UInt256(7136946131914100519, 1099376497836417077, 15823380333746803939, 5532783659033729762),
+UInt256(8921182664892625648, 15209278677577685059, 5944167361901341212, 2304293555364774299),
+UInt256(5575739165557891030, 9505799173486053162, 1409261591974644305, 10663555508957759745),
+UInt256(6969673956947363788, 2658876930002790644, 10984949026823081189, 17941130404624587585),
+UInt256(8712092446184204735, 3323596162503488305, 13731186283528851487, 8591354950498570769),
+UInt256(5445057778865127959, 8994776629205762047, 1664462399564450323, 12287125871702688587),
+UInt256(6806322223581409949, 6631784768079814654, 15915636054737726616, 10747221321200972829),
+UInt256(8507902779476762436, 12901416978527156222, 10671173031567382462, 13434026651501216037),
+UInt256(5317439237172976522, 17286757648434248447, 2057797126302226135, 3784580638760872119),
+UInt256(6646799046466220653, 12385075023688034750, 16407304463159946381, 119039780023702245),
+UInt256(8308498808082775817, 1646285724327879726, 11285758542095157168, 4760485743457015710),
+UInt256(5192811755051734885, 12558143623773394589, 2441913070382085326, 2975303589660634819),
+UInt256(6491014693814668607, 1862621474434579524, 7664077356404994561, 12942501523930569331),
+UInt256(8113768367268335758, 16163334898325388117, 9580096695506243202, 2343068849631047952),
+UInt256(5071105229542709849, 5490398293025979669, 8293403443905095953, 6076104049446792874),
+UInt256(6338881536928387311, 11474683884709862490, 14978440323308757845, 12206816080235878997),
+UInt256(7923601921160484139, 9731668837459940209, 9499678367281171499, 1423462045012685034),
+UInt256(4952251200725302587, 3776450014198768678, 17466514025619201946, 17030564842628785810),
+UInt256(6190314000906628234, 108876499321072944, 12609770495169226625, 12064834016431206455),
+UInt256(7737892501133285292, 9359467661006116988, 15762213118961533282, 1245984465256844356),
+UInt256(4836182813208303307, 15073039324983598926, 628011162496182493, 5390426309212915627),
+UInt256(6045228516510379134, 14229613137802110753, 10008385989975003924, 11349718904943532437),
+UInt256(7556535645637973918, 8563644385397862633, 17122168505896142809, 14187148631179415547),
+UInt256(4722834778523733699, 740591722446276242, 3783826288544007400, 1949438866846052861),
+UInt256(5903543473154667123, 14760797708340009014, 13953154897534785058, 2436798583557566076),
+UInt256(7379429341443333904, 13839311116997623364, 8218071585063705514, 12269370266301733403),
+UInt256(4612143338402083690, 8649569448123514602, 14359666777519591754, 12280042434865971281),
+UInt256(5765179173002604613, 1588589773299617445, 8726211435044713885, 6126681006727688293),
+UInt256(7206473966253255766, 6597423235051909710, 15519450312233280260, 12270037276836998270),
+UInt256(9008092457816569707, 17470151080669662946, 10175940853436824517, 15337546596046247838),
+UInt256(5630057786135356067, 8613001416204845389, 10971649051825403227, 11891809631742598851),
+UInt256(7037572232669195084, 6154565751828668832, 18326247333209141938, 10253076021250860659),
+UInt256(8796965290836493855, 7693207189785836041, 4461065092801875807, 3592972989708800016),
+UInt256(5498103306772808659, 11725783521257229381, 14317380729069642139, 9163137146209081866),
+UInt256(6872629133466010824, 10045543383144148823, 4061667856054888962, 6842235414333964429),
+UInt256(8590786416832513530, 12556929228930186029, 465398801641223298, 17776166304772231344),
+UInt256(5369241510520320956, 12459766786508754172, 2596717260239458513, 15721789958910032494),
+UInt256(6711551888150401195, 15574708483135942715, 3245896575299323142, 5817179393355376905),
+]
+
+private let bid_multipliers1_binary80_7: [UInt256] = [
+UInt256(8389439860188001494, 14856699585492540489, 17892428774406317639, 16494846278548996939),
+UInt256(5243399912617500934, 4673751222505449902, 4265238956362866668, 17226807951734204943),
+UInt256(6554249890771876167, 15065561064986588185, 14554920732308359144, 3086765865958204563),
+UInt256(8192812363464845209, 14220265312805847328, 4358592860103285218, 3858457332447755704),
+UInt256(5120507727165528256, 1970136792862572724, 2724120537564553261, 7023221851207235219),
+UInt256(6400634658956910320, 2462670991078215905, 3405150671955691576, 13390713332436431928),
+UInt256(8000793323696137900, 3078338738847769881, 8868124358372002374, 16738391665545539909),
+UInt256(5000495827310086187, 11147333748634631983, 17071792770050971244, 5849808772538574540),
+UInt256(6250619784137607734, 9322481167365902075, 16728054944136326151, 7312260965673218174),
+UInt256(7813274730172009668, 2429729422352601786, 16298382661743019785, 4528640188664134814),
+UInt256(4883296706357506042, 10741952925825151924, 14798175182016775269, 14359615163983554019),
+UInt256(6104120882946882553, 4204069120426664098, 50974903811417471, 4114460899697278811),
+UInt256(7630151103683603191, 9866772418960718026, 9287090666619047647, 531390106194210610),
+UInt256(4768844439802251994, 13084261789491530622, 10416117685064292683, 7249647844012463487),
+UInt256(5961055549752814993, 7131955200009637470, 3796775069475590046, 4450373786588191455),
+UInt256(7451319437191018741, 13526630018439434741, 13969340873699263365, 14786339270090015127),
+UInt256(4657074648244386713, 10759986770738340665, 11036681055275733555, 11547305053019953406),
+UInt256(5821343310305483391, 18061669481850313735, 18407537337522054848, 9822445297847553854),
+UInt256(7276679137881854239, 17965400833885504265, 18397735653475180656, 12278056622309442317),
+UInt256(9095848922352317799, 17845065023929492428, 9162111511561812108, 15347570777886802897),
+UInt256(5684905576470198624, 18070694667597014623, 14949691731580908376, 368859699324476003),
+UInt256(7106131970587748281, 4141624260786716663, 14075428646048747566, 461074624155595003),
+UInt256(8882664963234685351, 9788716344410783733, 12982599789133546553, 9799715317049269562),
+UInt256(5551665602021678344, 13035476742897821689, 10419967877422160547, 17654037119224263236),
+UInt256(6939582002527097930, 16294345928622277111, 17636645865205088588, 17455860380602941141),
+UInt256(8674477503158872413, 11144560373923070581, 17434121313078972832, 3373081402044124810),
+UInt256(5421548439474295258, 9271193242915613065, 13202168829888051972, 2108175876277578007),
+UInt256(6776935549342869073, 2365619516789740524, 2667652982077901253, 2635219845346972508),
+UInt256(8471169436678586341, 7568710414414563559, 3334566227597376566, 7905710825111103539),
+UInt256(5294480897924116463, 7036287018222796176, 9001632919889442210, 329383247267051808),
+UInt256(6618101122405145579, 4183672754351107316, 11252041149861802762, 9635101095938590568),
+UInt256(8272626403006431974, 617904924511496241, 14065051437327253453, 2820504333068462402),
+UInt256(5170391501879019983, 14221248633101848863, 1873128120688451552, 4068658217381482953),
+UInt256(6462989377348774979, 13164874772949923174, 16176468206142728152, 5085822771726853692),
+UInt256(8078736721685968724, 11844407447760016064, 10997213220823634382, 6357278464658567114),
+UInt256(5049210451053730452, 16626126691704785848, 6873258263014771488, 17808357095693768159),
+UInt256(6311513063817163066, 2335914290921430694, 8591572828768464361, 3813702295907658582),
+UInt256(7889391329771453832, 12143264900506564176, 1516093999105804643, 9378813888311961132),
+UInt256(4930869581107158645, 7589540562816602610, 947558749441127902, 3555915670981281755),
+UInt256(6163586976383948306, 14098611721948141166, 10407820473656185685, 13668266625581378002),
+UInt256(7704483720479935383, 8399892615580400650, 3786403555215456299, 3250275226694558791),
+UInt256(4815302325299959614, 12167461912378832262, 6978188240437048090, 18172323081179956908),
+UInt256(6019127906624949518, 5985955353618764519, 17946107337401085921, 13492031814620170327),
+UInt256(7523909883281186897, 16705816228878231457, 17820948153323969498, 3029981712993049197),
+UInt256(4702443677050741811, 3523606115407812805, 4220563568186399080, 6505424589048043652),
+UInt256(5878054596313427263, 18239565699541929718, 9887390478660386754, 8131780736310054565),
+UInt256(7347568245391784079, 18187771106000024244, 3135866061470707635, 941353883532792398),
+UInt256(9184460306739730099, 18123027864072642401, 3919832576838384543, 15011750409698154210),
+UInt256(5740287691712331312, 9021049405831707548, 13979110406592460099, 16299873033702428237),
+UInt256(7175359614640414140, 11276311757289634435, 17473888008240575124, 15763155273700647393),
+]
+
+private let bid_multipliers1_binary80_8: [UInt256] = [
+UInt256(8969199518300517675, 14095389696612043044, 17230673991873331002, 1257200018416257625),
+UInt256(5605749698937823547, 6503775551168832951, 1545799208066056068, 5397436029937548920),
+UInt256(7007187123672279434, 3518033420533653284, 15767307065364733797, 6746795037421936149),
+UInt256(8758983904590349292, 13620913812521842414, 1262389757996365630, 13045179815204808091),
+UInt256(5474364940368968307, 17736443169680927316, 14624051654029892231, 3541551366075617153),
+UInt256(6842956175461210384, 17558867943673771241, 18280064567537365288, 18261997262876685153),
+UInt256(8553695219326512981, 3501840855882662436, 9015022654139542899, 4380752504886304825),
+UInt256(5346059512079070613, 4494493544140357974, 14857761195691990120, 432127306340246564),
+UInt256(6682574390098838266, 10229802948602835372, 9348829457760211842, 540159132925308205),
+UInt256(8353217987623547833, 3563881648898768407, 11686036822200264802, 9898570953011411064),
+UInt256(5220761242264717395, 13756641076630200014, 14221302041516247357, 10798292864059519819),
+UInt256(6525951552830896744, 12584115327360362114, 8553255515040533388, 18109552098501787678),
+UInt256(8157439441038620930, 15730144159200452643, 1468197356945890928, 4190196049417682981),
+UInt256(5098399650649138081, 14443026117927670805, 17058524412587039494, 2618872530886051863),
+UInt256(6372999563311422602, 4218724592127424795, 7488097460451635655, 12496962700462340637),
+UInt256(7966249454139278252, 14496777777014056802, 4748435807137156665, 11009517357150537892),
+UInt256(4978905908837048907, 18283858147488561309, 7579458397888110819, 18410163394287555943),
+UInt256(6223632386046311134, 18243136665933313732, 14086009015787526428, 18401018224432057024),
+UInt256(7779540482557888918, 13580548795561866357, 17607511269734408036, 4554528706830519664),
+UInt256(4862212801598680574, 3876156978798778569, 13310537552797698974, 12069952478623850598),
+UInt256(6077766001998350717, 14068568260353249020, 2803113885714960006, 5864068561425037440),
+UInt256(7597207502497938397, 3750652270159397563, 3503892357143700007, 16553457738636072608),
+UInt256(4748254689061211498, 4650000678063317428, 18330833787710670168, 17263440114288627236),
+UInt256(5935318361326514372, 15035872884433922594, 4466798160928786095, 3132556069151232429),
+UInt256(7419147951658142966, 348097031832851626, 14806869738015758426, 17750753141721204248),
+UInt256(4636967469786339353, 14052618700177695978, 13865979604687236920, 15705906732003140559),
+UInt256(5796209337232924192, 3730715319939956261, 8109102469004270343, 1185639341294374083),
+UInt256(7245261671541155240, 4663394149924945326, 14748064104682725832, 15317107231900131315),
+UInt256(9056577089426444050, 5829242687406181658, 9211708093998631483, 699639966165612528),
+UInt256(5660360680891527531, 8254962698056251440, 10369003577176532580, 16578176043349365494),
+UInt256(7075450851114409414, 5707017354142926396, 12961254471470665726, 2275975980477155252),
+UInt256(8844313563893011767, 16357143729533433803, 16201568089338332157, 12068342012451219872),
+UInt256(5527695977433132354, 17140743858599477983, 7820137046622763646, 9848556766995706372),
+UInt256(6909619971791415443, 12202557786394571671, 5163485289851066654, 3087323921889857157),
+UInt256(8637024964739269304, 10641511214565826685, 1842670593886445413, 13082526939217097255),
+UInt256(5398140602962043315, 6650944509103641678, 3457512130392722335, 10482422346224379736),
+UInt256(6747675753702554144, 3701994617952164193, 13545262199845678727, 8491341914353086766),
+UInt256(8434594692128192680, 4627493272440205242, 3096519694524934697, 6002491374513970554),
+UInt256(5271621682580120425, 2892183295275128276, 6547010827505472089, 15280772155139701356),
+UInt256(6589527103225150531, 8226915137521298249, 8183763534381840112, 5265907138642462983),
+UInt256(8236908879031438164, 5671957903474234907, 14841390436404688044, 6582383923303078729),
+UInt256(5148068049394648852, 12768345726526172625, 6970026013539236075, 13337361988919200014),
+UInt256(6435085061743311065, 15960432158157715781, 13324218535351432998, 12060016467721612113),
+UInt256(8043856327179138832, 6115482142414981015, 2820215113907127536, 5851648547797239333),
+UInt256(5027410204486961770, 3822176339009363134, 8680163473833036566, 3657280342373274583),
+UInt256(6284262755608702212, 14001092460616479726, 1626832305436519899, 13794972464821369037),
+UInt256(7855328444510877765, 17501365575770599657, 11256912418650425682, 12632029562599323392),
+UInt256(4909580277819298603, 13244196494070318738, 118041234015434195, 12506704495051965024),
+UInt256(6136975347274123254, 11943559599160510518, 9370923579374068552, 11021694600387568376),
+UInt256(7671219184092654068, 5706077462095862340, 2490282437362809882, 13777118250484460470),
+]
+
+private let bid_multipliers1_binary80_9: [UInt256] = [
+UInt256(4794511990057908792, 12789670450664689770, 10779798560206531984, 13222384924980175698),
+UInt256(5993139987572385990, 15987088063330862213, 4251376163403389172, 16527981156225219623),
+UInt256(7491424984465482488, 10760488042308801958, 9925906222681624370, 2213232371571972912),
+UInt256(4682140615290926555, 6725305026443001224, 1592005370748627327, 5994956250659870974),
+UInt256(5852675769113658194, 3794945264626363626, 1990006713435784159, 2882009294897450814),
+UInt256(7315844711392072742, 13967053617637730340, 11710880428649506006, 17437569673903977229),
+UInt256(9144805889240090928, 8235444985192387117, 14638600535811882508, 12573590055525195728),
+UInt256(5715503680775056830, 5147153115745241948, 11454968344096120519, 17081865821558023138),
+UInt256(7144379600968821037, 15657313431536328243, 14318710430120150649, 16740646258520141019),
+UInt256(8930474501211026297, 5736583734138246592, 13286702019222800408, 7090749767868012561),
+UInt256(5581546563256891435, 15114579879904873880, 8304188762014250255, 4431718604917507851),
+UInt256(6976933204071114294, 14281538831453704446, 10380235952517812819, 927962237719496910),
+UInt256(8721166505088892868, 8628551502462354750, 3751922903792490215, 14995010852431534849),
+UInt256(5450729065680558042, 14616216725893747526, 16180009870152470096, 16289410810410791137),
+UInt256(6813411332100697553, 9046898870512408600, 11001640300835811813, 1915019439303937305),
+UInt256(8516764165125871941, 15920309606567898654, 13752050376044764766, 7005460317557309535),
+UInt256(5322977603203669963, 12256036513318630611, 3983345466600590074, 18213470753755482171),
+UInt256(6653722004004587454, 10708359623220900360, 367495814823349689, 13543466405339576906),
+UInt256(8317152505005734318, 4162077492171349642, 459369768529187112, 3094274951392307421),
+UInt256(5198220315628583948, 16436356487889257238, 4898792123758129849, 1933921844620192138),
+UInt256(6497775394535729936, 2098701536152019931, 15346862191552438119, 7029088324202628076),
+UInt256(8122219243169662420, 2623376920190024914, 14571891721013159745, 4174674386825897191),
+UInt256(5076387026981039012, 10862982611973541379, 13719118344060612744, 14138386537834655505),
+UInt256(6345483783726298765, 13578728264966926724, 12537211911648378026, 17672983172293319381),
+UInt256(7931854729657873457, 3138352275926494693, 15671514889560472533, 12867856928511873418),
+UInt256(4957409206036170910, 13490685218522528943, 12100539815188989285, 10348253589533614838),
+UInt256(6196761507545213638, 7639984486298385371, 10513988750558848702, 17547003005344406452),
+UInt256(7745951884431517048, 326608571018205906, 8530799919771172974, 12710381719825732257),
+UInt256(4841219927769698155, 204130356886378691, 9943435968284371013, 3332302556463694757),
+UInt256(6051524909712122693, 14090221001390137076, 7817608941928075862, 8777064214007006350),
+UInt256(7564406137140153367, 3777718196455507633, 9772011177410094828, 1747958230653982129),
+UInt256(4727753835712595854, 9278602900425774126, 17636722031949779027, 10315845931013514639),
+UInt256(5909692294640744818, 2374881588677441850, 12822530503082447976, 8283121395339505394),
+UInt256(7387115368300931022, 12191974022701578121, 6804791091998284162, 10353901744174381743),
+UInt256(4616947105188081889, 3008297745761098421, 15782209478567397361, 11082874608536376494),
+UInt256(5771183881485102361, 8372058200628760931, 5892703792927082990, 18535205388306905),
+UInt256(7213979851856377951, 15076758769213339068, 2754193722731465833, 9246541043590159439),
+UInt256(9017474814820472439, 14234262443089285931, 3442742153414332291, 16169862322915087202),
+UInt256(5635921759262795274, 15813943054571885562, 18292614910379815346, 7800320942608235550),
+UInt256(7044902199078494093, 10544056781360081145, 13642396601119993375, 527029141405518629),
+UInt256(8806127748848117616, 17791756995127489336, 3217937696117828006, 14493844482039061998),
+UInt256(5503829843030073510, 11119848121954680835, 2011211060073642504, 4446966782847025845),
+UInt256(6879787303787591888, 4676438115588575235, 16349071880374216842, 5558708478558782306),
+UInt256(8599734129734489860, 5845547644485719044, 15824653832040383148, 16171757635053253691),
+UInt256(5374833831084056162, 12876839314658350211, 667036608170463660, 883976485053507749),
+UInt256(6718542288855070203, 6872677106468161955, 14668853815495243287, 1104970606316884686),
+UInt256(8398177861068837754, 3979160364657814540, 13724381250941666204, 15216271313178269569),
+UInt256(5248861163168023596, 7098661246338521991, 17801110318693317186, 286797533881642673),
+UInt256(6561076453960029495, 8873326557923152489, 17639701879939258578, 9581868954206829149),
+UInt256(8201345567450036869, 6479972178976552708, 8214569294641909511, 2753964155903760628),
+]
+
+private let bid_multipliers1_binary80_10: [UInt256] = [
+UInt256(5125840979656273043, 6355825621074039394, 14357477846005969252, 8638756625080932249),
+UInt256(6407301224570341304, 3333096007915161339, 8723475270652685757, 10798445781351165311),
+UInt256(8009126530712926630, 4166370009893951674, 6292658069888469292, 18109743245116344542),
+UInt256(5005704081695579143, 16439039311465883508, 8544597312107681212, 2095217491342939531),
+UInt256(6257130102119473929, 15937113120904966481, 10680746640134601515, 2619021864178674414),
+UInt256(7821412627649342412, 6086333345849044389, 17962619318595639797, 17108835385505506729),
+UInt256(4888382892280839007, 13027330378010428551, 13532480083335968825, 12998865125154635658),
+UInt256(6110478615351048759, 11672476954085647785, 12303914085742573128, 2413523351161130860),
+UInt256(7638098269188810949, 9978910174179671828, 1544834551896052698, 3016904188951413575),
+UInt256(4773811418243006843, 8542661868075988844, 10188893631789808744, 6497251136522021389),
+UInt256(5967264272803758554, 6066641316667598151, 12736117039737260930, 8121563920652526736),
+UInt256(7459080341004698192, 16806673682689273497, 11308460281244188259, 928582863960882612),
+UInt256(4661925213127936370, 10504171051680795936, 150258648136535805, 16721265354471409296),
+UInt256(5827406516409920463, 3906841777746219112, 187823310170669757, 7066523637807097908),
+UInt256(7284258145512400579, 271866203755385986, 234779137713337196, 13444840565686260289),
+UInt256(9105322681890500723, 14174890809976396194, 9516845958996447303, 16806050707107825362),
+UInt256(5690826676181562952, 6553463747021553669, 10559714742800167468, 17421310719583472707),
+UInt256(7113533345226953690, 8191829683776942086, 17811329446927597240, 3329894325769789268),
+UInt256(8891916681533692113, 1016415067866401800, 13040789771804720742, 4162367907212236585),
+UInt256(5557447925958557570, 12164474463484970885, 8150493607377950463, 16436537997289811578),
+UInt256(6946809907448196963, 5982221042501437798, 14799803027649825983, 15933986478184876568),
+UInt256(8683512384310246204, 2866090284699409344, 9276381747707506671, 15305797079303707806),
+UInt256(5427195240193903877, 11014678464791906648, 5797738592317191669, 16483652202205899235),
+UInt256(6783994050242379846, 18380034099417271214, 7247173240396489587, 6769507197475210331),
+UInt256(8479992562802974808, 13751670587416813209, 18282338587350387792, 3850197978416625010),
+UInt256(5299995351751859255, 8594794117135508256, 4508932589452910514, 2406373736510390632),
+UInt256(6624994189689824069, 6131806627991997416, 5636165736816138142, 12231339207492764097),
+UInt256(8281242737112280086, 12276444303417384674, 7045207171020172678, 6065801972511179314),
+UInt256(5175776710695175054, 3061091671208477517, 9014940500314995827, 17626184288101650783),
+UInt256(6469720888368968817, 13049736625865372704, 15880361643821132688, 17421044341699675575),
+UInt256(8087151110461211022, 2477112727049552169, 1403707981066864245, 3329561353415042852),
+UInt256(5054469444038256888, 15383253509688133817, 12406532534235259913, 4386818855098095735),
+UInt256(6318086805047821111, 782322813400615656, 1673107612511911179, 10095209587300007573),
+UInt256(7897608506309776388, 14812961572032933282, 2091384515639888974, 8007325965697621562),
+UInt256(4936005316443610243, 34728945665807493, 5918801340702318513, 392892710133625572),
+UInt256(6170006645554512803, 13878469237364423078, 12010187694305286045, 5102801906094419869),
+UInt256(7712508306943141004, 12736400528278140944, 5789362581026831748, 10990188401045412740),
+UInt256(4820317691839463127, 17183622367028613898, 3618351613141769842, 16092239787508158771),
+UInt256(6025397114799328909, 16867841940358379468, 13746311553281988111, 10891927697530422655),
+UInt256(7531746393499161137, 7249744370165810623, 17182889441602485139, 9003223603485640415),
+UInt256(4707341495936975710, 16060305277422101399, 17656834928642635068, 3321171742964831308),
+UInt256(5884176869921219638, 10852009559922850941, 17459357642375905931, 4151464678706039134),
+UInt256(7355221087401524548, 4341639913048787869, 7989138997687718702, 577644829955161014),
+UInt256(9194026359251905685, 5427049891310984836, 14598109765537036281, 9945428074298727075),
+UInt256(5746266474532441053, 5697749191283059474, 18347190640315423483, 17745107592505174182),
+UInt256(7182833093165551316, 11733872507531212247, 13710616263539503546, 17569698472204079824),
+UInt256(8978541366456939145, 14667340634414015309, 12526584310996991529, 12738751053400323971),
+UInt256(5611588354035586966, 2249558868867677712, 10134958203586813658, 1044190380734120626),
+UInt256(7014485442544483707, 12035320622939372948, 12668697754483517072, 10528610012772426591),
+UInt256(8768106803180604634, 10432464760246828281, 15835872193104396340, 13160762515965533238),
+]
+
+private let bid_multipliers1_binary80_11: [UInt256] = [
+UInt256(5480066751987877896, 11131976493581655580, 2979891093049165856, 17448848609333234082),
+UInt256(6850083439984847370, 13914970616977069475, 3724863866311457321, 3364316687956990987),
+UInt256(8562604299981059213, 8170341234366561036, 44393814461933747, 8817081878373626637),
+UInt256(5351627687488162008, 7412306280692794599, 9251118170893484400, 3204833164769822696),
+UInt256(6689534609360202510, 9265382850865993249, 6952211695189467596, 4006041455962278370),
+UInt256(8361918261700253138, 2358356526727715753, 13301950637414222399, 5007551819952847963),
+UInt256(5226198913562658211, 6085658847632210250, 1396190120742807143, 10047248915111611833),
+UInt256(6532748641953322764, 2995387541112874908, 10968609687783284737, 7947375125462126887),
+UInt256(8165935802441653455, 3744234426391093635, 13710762109729105921, 14545904925255046513),
+UInt256(5103709876526033409, 9257675544135515378, 6263383309366997249, 2173661550643322215),
+UInt256(6379637345657541761, 16183780448596782126, 17052601173563522369, 7328762956731540672),
+UInt256(7974546682071927202, 6394667505463813946, 12092379430099627153, 13772639714341813744),
+UInt256(4984091676294954501, 8608353209342271620, 12169423162239654875, 1690370793822551734),
+UInt256(6230114595368693126, 15372127530105227429, 15211778952799568593, 15948021547560353380),
+UInt256(7787643244210866408, 9991787375776758479, 5179665635717297030, 6099968879168278012),
+UInt256(4867277027631791505, 6244867109860474049, 10154820049964392499, 17647538604762337470),
+UInt256(6084096284539739381, 12417769905752980465, 17305211080882878528, 17447737237525533933),
+UInt256(7605120355674674227, 1687154326909061870, 7796455795821434449, 3362927473197365801),
+UInt256(4753200222296671391, 17195372518814021333, 261098853961008626, 13631044716816823386),
+UInt256(5941500277870839239, 16882529630090138762, 4938059585878648687, 7815433859166253424),
+UInt256(7426875347338549049, 16491476019185285548, 15395946519203086667, 5157606305530428876),
+UInt256(4641797092086593156, 3389643484349721612, 399094537647153359, 917660931742824095),
+UInt256(5802246365108241445, 4237054355437152015, 498868172058941698, 14982134219960693831),
+UInt256(7252807956385301806, 9908003962723827922, 14458643270355840835, 9504295738096091481),
+UInt256(9066009945481627258, 3161632916550009095, 8849932051090025236, 7268683654192726447),
+UInt256(5666256215926017036, 6587706591271143588, 12448736559572347628, 13766299320725229838),
+UInt256(7082820269907521295, 8234633239088929485, 15560920699465434535, 17207874150906537297),
+UInt256(8853525337384401619, 5681605530433773953, 5616092819049629457, 16898156670205783717),
+UInt256(5533453335865251012, 1245160447307414768, 15039273057974488171, 3643818891237532967),
+UInt256(6916816669831563765, 1556450559134268461, 352347248758558597, 18389831669329079921),
+UInt256(8646020837289454706, 6557249217345223480, 5052120079375586151, 9152231531379186189),
+UInt256(5403763023305909191, 8709966779268152579, 3157575049609741344, 12637673734753073224),
+UInt256(6754703779132386489, 6275772455657802819, 17782026867294340392, 15797092168441341530),
+UInt256(8443379723915483111, 12456401587999641428, 17615847565690537587, 1299621136842125297),
+UInt256(5277112327447176944, 14702780020140857749, 1786532691701810183, 16953164275022185975),
+UInt256(6596390409308971180, 18378475025176072186, 6844851883054650633, 16579769325350344564),
+UInt256(8245488011636213976, 4526349707760538616, 17779436890673089100, 6889653601405766993),
+UInt256(5153430007272633735, 2828968567350336635, 11112148056670680687, 13529405537733380179),
+UInt256(6441787509090792168, 17371268764470084506, 9278499052410962955, 12300070903739337319),
+UInt256(8052234386363490211, 3267341881878054017, 2374751778658927886, 10763402611246783745),
+UInt256(5032646491477181381, 18182989740669641424, 13013434907730299689, 2115440613601851937),
+UInt256(6290808114346476727, 8893679120554888068, 16266793634662874611, 7255986785429702825),
+UInt256(7863510142933095909, 6505412882266222182, 1886747969619041648, 4458297463359740627),
+UInt256(4914693839333184943, 6371726060630082815, 15014275536294064742, 2786435914599837892),
+UInt256(6143367299166481179, 3352971557360215615, 14156158401940193023, 12706416930104573173),
+UInt256(7679209123958101473, 18026272501982433231, 13083511983997853375, 11271335144203328562),
+UInt256(4799505702473813421, 4348891286097938913, 15094724017639740215, 13962113492768162208),
+UInt256(5999382128092266776, 10047800126049811546, 5033346966767511557, 12840955847532814855),
+UInt256(7499227660115333470, 12559750157562264432, 15515055745314165255, 2216136754133854857),
+UInt256(4687017287572083419, 3238157830049027366, 9696909840821353284, 8302614498974741142),
+]
+
+private let bid_multipliers1_binary80_12: [UInt256] = [
+UInt256(5858771609465104273, 17882755342843447920, 2897765264171915797, 10378268123718426427),
+UInt256(7323464511831380342, 8518386123272146188, 3622206580214894746, 17584521173075420938),
+UInt256(9154330639789225428, 1424610617235406927, 4527758225268618433, 12757279429489500364),
+UInt256(5721456649868265892, 10113753672626905137, 9747377918433968377, 1055770615789855872),
+UInt256(7151820812335332365, 12642192090783631421, 16795908416469848375, 5931399288164707744),
+UInt256(8939776015419165457, 1967682058197375565, 7159827465305146757, 2802563091778496775),
+UInt256(5587360009636978410, 12759016332441829488, 6780735175029410675, 4057444941575254437),
+UInt256(6984200012046223013, 6725398378697511052, 8475918968786763344, 460120158541680142),
+UInt256(8730250015057778766, 13018433991799276719, 10594898710983454180, 575150198177100177),
+UInt256(5456406259411111729, 3524835226447160045, 13539340722005740718, 9582840910715463419),
+UInt256(6820507824263889661, 9017730051486337961, 3089117847225012186, 2755179101539553466),
+UInt256(8525634780329862076, 15883848582785310355, 8473083327458653136, 12667345913779217640),
+UInt256(5328521737706163798, 704033327386043164, 2989834070447964258, 7917091196112011025),
+UInt256(6660652172132704747, 10103413696087329763, 3737292588059955323, 672991958285237973),
+UInt256(8325815215165880934, 8017581101681774300, 59929716647556249, 14676298003138711178),
+UInt256(5203634509478675584, 399302170123721033, 9260828109759498464, 2255157224320612631),
+UInt256(6504543136848344480, 499127712654651291, 16187721155626760984, 2818946530400765788),
+UInt256(8130678921060430600, 623909640818314114, 15622965426106063326, 3523683163000957235),
+UInt256(5081674325662769125, 389943525511446321, 14376039409743677482, 16037360032157761984),
+UInt256(6352092907078461406, 5099115425316695806, 4134991206897433141, 10823328003342426672),
+UInt256(7940116133848076757, 15597266318500645565, 14392111045476567234, 18140846022605421244),
+UInt256(4962572583655047973, 12054134458276597430, 11300912412636548473, 15949714782555776182),
+UInt256(6203215729568809967, 1232610017563583076, 4902768478940909784, 6102085422912556515),
+UInt256(7754019661961012458, 15375820577236642557, 6128460598676137230, 7627606778640695644),
+UInt256(4846262288725632786, 14221573879200289502, 6136130883386279721, 155568218223046873),
+UInt256(6057827860907040983, 8553595312145586069, 16893535641087625459, 4806146291206196496),
+UInt256(7572284826133801229, 6080308121754594683, 7281861496077368112, 1395996845580357715),
+UInt256(4732678016333625768, 6106035585310315629, 2245320425834661118, 872498028487723572),
+UInt256(5915847520417032210, 7632544481637894536, 7418336550720714301, 10313994572464430273),
+UInt256(7394809400521290263, 317308565192592362, 9272920688400892876, 17504179234007925746),
+UInt256(4621755875325806414, 7115846880886452082, 10407261448677945952, 1716739984400177783),
+UInt256(5777194844157258017, 18118180637962840911, 3785704773992656632, 2145924980500222229),
+UInt256(7221493555196572522, 8812667742171387427, 120444949063432886, 2682406225625277786),
+UInt256(9026866943995715653, 1792462640859458475, 13985614241611454819, 12576379818886373040),
+UInt256(5641791839997322283, 3426132159750855499, 6435165891793465310, 5554394377590289198),
+UInt256(7052239799996652853, 18117723254970733086, 3432271346314443733, 16166365008842637306),
+UInt256(8815299749995816067, 8812096013431252645, 13513711219747830475, 6372898205771132920),
+UInt256(5509562343747385042, 3201716999180838951, 10751912521556087999, 1677218369393264123),
+UInt256(6886952929684231302, 13225518285830824497, 8828204633517722094, 15931581017023743866),
+UInt256(8608691162105289128, 7308525820433754813, 15646941810324540522, 10691104234424904024),
+UInt256(5380431976315805705, 4567828637771096758, 12085181640666531778, 11293626164942952919),
+UInt256(6725539970394757131, 10321471815641258852, 5883105013978388915, 4893660669323915341),
+UInt256(8406924962993446414, 8290153751124185661, 7353881267472986144, 1505389818227506272),
+UInt256(5254328101870904009, 569660076025228134, 6902018801384310292, 940868636392191420),
+UInt256(6567910127338630011, 5323761113458923071, 17850895538585163673, 1176085795490239275),
+UInt256(8209887659173287514, 2043015373396265935, 17701933404804066687, 6081793262790186998),
+UInt256(5131179786983304696, 5888570626800054113, 17981237405643623535, 10718649816884948730),
+UInt256(6413974733729130870, 7360713283500067642, 8641488701772365707, 8786626252678798008),
+UInt256(8017468417161413587, 18424263641229860361, 1578488840360681326, 6371596797421109606),
+UInt256(5010917760725883492, 9209321766554968773, 12515770571293895588, 17817306053670357216),
+]
+
+private let bid_multipliers1_binary80_13: [UInt256] = [
+UInt256(6263647200907354365, 11511652208193710967, 1809655158835205774, 3824888493378394904),
+UInt256(7829559001134192957, 554507204959974996, 16097127003826170929, 14004482653577769438),
+UInt256(4893474375708870598, 2652410012313678325, 837332340536581023, 1835272630845024043),
+UInt256(6116842969636088247, 12538884552246873714, 5658351444098114182, 16129148843838443765),
+UInt256(7646053712045110309, 11061919671881204238, 16296311341977418536, 10938064017943278899),
+UInt256(4778783570028193943, 9219542804139446601, 5573508570308498681, 6836290011214549312),
+UInt256(5973479462535242429, 6912742486746920347, 11578571731313011255, 13157048532445574544),
+UInt256(7466849328169053036, 13252614126861038338, 9861528645713876165, 11834624647129580276),
+UInt256(4666780830105658147, 17506255866142924769, 10775141421998560507, 9702483413669681624),
+UInt256(5833476037632072684, 17271133814251268057, 18080612795925588538, 7516418248659714126),
+UInt256(7291845047040090856, 3142173194104533456, 8765707939624821961, 172150773969866850),
+UInt256(9114806308800113570, 3927716492630666820, 10957134924531027451, 4826874485889721466),
+UInt256(5696753943000070981, 7066508826321554666, 16071581364686667965, 710953544467381965),
+UInt256(7120942428750088726, 13444822051329331237, 10866104669003559148, 5500377949011615360),
+UInt256(8901178035937610908, 7582655527306888238, 18194316854681836839, 6875472436264519199),
+UInt256(5563236272461006817, 13962531741421580957, 6759762015748760120, 11214699300306406356),
+UInt256(6954045340576258522, 3618106621494812484, 13061388538113338054, 14018374125383007945),
+UInt256(8692556675720323152, 13746005313723291413, 16326735672641672568, 8299595619873984123),
+UInt256(5432847922325201970, 8591253321077057133, 12510052804614739307, 5187247262421240077),
+UInt256(6791059902906502463, 1515694614491545609, 1802507950486260422, 1872373059599162192),
+UInt256(8488824878633128078, 15729676323396595723, 6864820956535213431, 11563838361353728548),
+UInt256(5305515549145705049, 5219361683695484423, 1984670088620814442, 14144928003487162198),
+UInt256(6631894436432131311, 11135888123046743432, 16315895666058181765, 8457787967504176940),
+UInt256(8289868045540164139, 9308174135381041387, 1948125508863175590, 15183920977807609079),
+UInt256(5181167528462602587, 3511765825399456914, 17358479507535342408, 4878264592702367770),
+UInt256(6476459410578253233, 18224765337031484855, 12474727347564402202, 6097830740877959713),
+UInt256(8095574263222816542, 8945898616007192357, 10981723166028114848, 16845660462952225449),
+UInt256(5059733914514260339, 979500616577107319, 9169419987981265732, 10528537789345140906),
+UInt256(6324667393142825423, 15059433826003547861, 6850088966549194261, 13160672236681426132),
+UInt256(7905834241428531779, 14212606264077046922, 13174297226613880731, 2615782240569618953),
+UInt256(4941146400892832362, 6577035905834460374, 12845621785061063360, 17775764964851869510),
+UInt256(6176433001116040452, 17444666919147851276, 6833655194471553393, 3772962132355285271),
+UInt256(7720541251395050566, 3359089575225262479, 8542068993089441741, 9327888683871494493),
+UInt256(4825338282121906603, 15934489039797952761, 12256322148321982944, 8135773436633378010),
+UInt256(6031672852652383254, 15306425281320053048, 1485344630120314968, 10169716795791722513),
+UInt256(7539591065815479068, 9909659564795290502, 1856680787650393710, 12712145994739653141),
+UInt256(4712244416134674417, 15416909264851832371, 14995483547563659781, 3333405228284895309),
+UInt256(5890305520168343022, 5436078525782626752, 14132668416027186822, 8778442553783507040),
+UInt256(7362881900210428777, 16018470194083059248, 17665835520033983528, 1749681155374607992),
+UInt256(9203602375263035972, 6188029687321660349, 3635550326332927794, 2187101444218259990),
+UInt256(5752251484539397482, 13090890591430813526, 4578061963171773823, 5978624421063800398),
+UInt256(7190314355674246853, 7140241202433741099, 14945949490819493087, 2861594507902362593),
+UInt256(8987892944592808566, 13536987521469564278, 14070750845096978454, 17412051190160116954),
+UInt256(5617433090370505354, 3848931182491089770, 4182533259758223630, 6270845975422685192),
+UInt256(7021791362963131692, 14034536014968638020, 14451538611552555345, 17061929506133132298),
+UInt256(8777239203703914615, 17543170018710797525, 18064423264440694182, 7492353827384251661),
+UInt256(5485774502314946634, 17882010289335330309, 13596107549489127816, 71035123687769384),
+UInt256(6857218127893683293, 13129140824814387079, 3160076381579246058, 88793904609711730),
+UInt256(8571522659867104117, 2576367975735820136, 17785153532256221284, 9334364417616915470),
+UInt256(5357201662416940073, 3916072994048581537, 11115720957660138302, 15057349797865347977),
+]
+
+private let bid_multipliers1_binary80_14: [UInt256] = [
+UInt256(6696502078021175091, 9506777260988114826, 59593141793009166, 9598315210476909163),
+UInt256(8370627597526468864, 7271785557807755628, 9297863464096037266, 2774521976241360646),
+UInt256(5231642248454043040, 4544865973629847267, 15034536701914799099, 6345762253578238308),
+UInt256(6539552810567553800, 5681082467037309084, 14181484858966110970, 3320516798545409981),
+UInt256(8174441013209442250, 7101353083796636355, 17726856073707638712, 13374018035036538284),
+UInt256(5109025633255901406, 9050031695800285626, 8773442036853580243, 8358761271897836428),
+UInt256(6386282041569876758, 2089167582895581225, 1743430509212199496, 5836765571444907630),
+UInt256(7982852551962345947, 11834831515474252339, 6790974154942637274, 7295956964306134538),
+UInt256(4989282844976466217, 5090926687957713760, 1938515837625454344, 9171659121118721990),
+UInt256(6236603556220582771, 10975344378374530104, 2423144797031817930, 11464573901398402488),
+UInt256(7795754445275728464, 9107494454540774726, 3028930996289772413, 5107345339893227302),
+UInt256(4872346528297330290, 5692184034087984203, 15728139927963271470, 5497933846646961016),
+UInt256(6090433160371662862, 16338602079464756062, 15048488891526701433, 16095789345163477078),
+UInt256(7613041450464578578, 11199880562476169270, 9587239077553600984, 6284678626172182635),
+UInt256(4758150906540361611, 11611611369974993698, 1380338405043612711, 3927924141357614147),
+UInt256(5947688633175452014, 9902828194041354218, 10948795043159291697, 298219158269629780),
+UInt256(7434610791469315018, 3155163205696916965, 4462621767094338813, 4984459966264425128),
+UInt256(4646631744668321886, 6583663021987961007, 5094981613647655710, 5421130488128959657),
+UInt256(5808289680835402357, 17452950814339727067, 1757040998632181733, 15999785147015975380),
+UInt256(7260362101044252947, 7981130462642495121, 16031359303572390879, 6164673378487805512),
+UInt256(9075452626305316184, 5364727059875730998, 6204141074183324887, 3094155704682368986),
+UInt256(5672157891440822615, 3352954412422331873, 17712646226646741766, 8851376343067562473),
+UInt256(7090197364301028268, 18026251070810078554, 8305749728026263496, 1840848391979677283),
+UInt256(8862746705376285336, 4086069764803046577, 1158815123178053562, 2301060489974596603),
+UInt256(5539216690860178335, 2553793603001904110, 12253474498054753236, 6049848824661510781),
+UInt256(6924020863575222918, 17027300059034543850, 6093471085713665737, 7562311030826888476),
+UInt256(8655026079469028648, 12060753036938404004, 16840210893996857979, 14064574806960998499),
+UInt256(5409391299668142905, 7537970648086502503, 1301759771893260429, 6484516245136930110),
+UInt256(6761739124585178631, 14034149328535516032, 15462257770148739248, 12717331324848550542),
+UInt256(8452173905731473289, 12931000642242007137, 881078138976372444, 15896664156060688177),
+UInt256(5282608691082170806, 1164346373760172604, 12079888882928702538, 712043060683154303),
+UInt256(6603260863852713507, 10678805004054991563, 15099861103660878172, 10113425862708718686),
+UInt256(8254076079815891884, 8736820236641351550, 14263140361148709811, 12641782328385898358),
+UInt256(5158797549884932427, 14683884684755620527, 4302776707290555728, 5595270946027492522),
+UInt256(6448496937356165534, 13743169837517137755, 766784865685806756, 6994088682534365652),
+UInt256(8060621171695206918, 7955590260041646385, 14793539137389422157, 8742610853167957065),
+UInt256(5037888232309504324, 360557894098641087, 2328432933227306992, 7769974792443667118),
+UInt256(6297360290386880405, 450697367623301358, 16745599221816297452, 9712468490554583897),
+UInt256(7871700362983600506, 5175057727956514602, 11708626990415596007, 12140585613193229871),
+UInt256(4919812726864750316, 7846097098400209530, 11929577887437135408, 14505395035886850526),
+UInt256(6149765908580937895, 9807621373000261913, 5688600322441643452, 18131743794858563157),
+UInt256(7687207385726172369, 7647840697822939487, 11722436421479442220, 4217935669863652330),
+UInt256(4804504616078857730, 16309115482207806939, 14244051791065733243, 11859581830519558515),
+UInt256(6005630770098572163, 11163022315904982866, 13193378720404778650, 10212791269722060239),
+UInt256(7507038462623215204, 9342091876453840679, 7268351363651197505, 3542617050297799491),
+UInt256(4691899039139509502, 15062179459638426232, 11460248629923080296, 13743350702504594442),
+UInt256(5864873798924386878, 9604352287693256982, 14325310787403850370, 17179188378130743052),
+UInt256(7331092248655483598, 2782068322761795420, 8683266447400037155, 12250613435808653007),
+UInt256(9163865310819354497, 12700957440307020083, 10854083059250046444, 10701580776333428355),
+UInt256(5727415819262096561, 1020569372550805696, 4477958902817585075, 15911860022063168530),
+]
+
+private let bid_multipliers1_binary80_15: [UInt256] = [
+UInt256(7159269774077620701, 5887397734115895024, 5597448628521981344, 15278139009151572758),
+UInt256(8949087217597025876, 11970933186072256684, 6996810785652476681, 650929687729914332),
+UInt256(5593179510998141172, 16705205278149936235, 13596378777887573733, 11936046100899666218),
+UInt256(6991474388747676466, 2434762523977868678, 12383787453932079263, 1084999570842419060),
+UInt256(8739342985934595582, 12266825191827111656, 6256362280560323270, 15191307518835187537),
+UInt256(5462089366209122239, 3055079726464556881, 3910226425350202044, 4882881180844604307),
+UInt256(6827611707761402798, 17653907713362859813, 9499469050115140459, 6103601476055755383),
+UInt256(8534514634701753498, 12844012604848798958, 16486022331071313478, 3017815826642306325),
+UInt256(5334071646688595936, 12639193896457887253, 5692077938492183019, 15721192946933605165),
+UInt256(6667589558360744920, 15798992370572359066, 11726783441542616678, 15039805165239618552),
+UInt256(8334486947950931151, 1301996389505897217, 5435107265073495040, 9576384419694747382),
+UInt256(5209054342469331969, 7731276771082267616, 14926157086739404160, 5985240262309217114),
+UInt256(6511317928086664961, 14275781982280222425, 210952284714703584, 7481550327886521393),
+UInt256(8139147410108331202, 4009669422568114319, 4875376374320767384, 9351937909858151741),
+UInt256(5086967131317707001, 7117729407532459353, 9964639261591561471, 5844961193661344838),
+UInt256(6358708914147133751, 13508847777842962095, 17067485095416839743, 2694515473649293144),
+UInt256(7948386142683917189, 12274373703876314715, 16722670350843661774, 17203202397343780141),
+UInt256(4967741339177448243, 9977326574136390649, 8145825960063594657, 6140315479912474684),
+UInt256(6209676673971810304, 7859972199243100407, 14793968468506881225, 12287080368317981259),
+UInt256(7762095842464762880, 9824965249053875509, 13880774567206213628, 1523792405115312862),
+UInt256(4851309901540476800, 6140603280658672193, 10981327113717577469, 10175742290051846347),
+UInt256(6064137376925596000, 7675754100823340241, 18338344910574359740, 17331363880992195838),
+UInt256(7580171721156995000, 9594692626029175302, 9087873082935785964, 3217460777530693181),
+UInt256(4737607325723121875, 5996682891268234564, 1068234658407478323, 11234285022811459046),
+UInt256(5922009157153902344, 2884167595657905301, 1335293323009347904, 9431170260086935904),
+UInt256(7402511446442377930, 3605209494572381626, 6280802672189072784, 11788962825108669880),
+UInt256(4626569654026486206, 6864941952535126420, 8537187688545558394, 7368101765692918675),
+UInt256(5783212067533107757, 17804549477523683833, 10671484610681947992, 18433499243970924152),
+UInt256(7229015084416384697, 8420628791622441079, 17951041781779822895, 4595129981254103573),
+UInt256(9036268855520480871, 15137472007955439253, 17827116208797390715, 1132226458140241563),
+UInt256(5647668034700300544, 16378449032613231389, 13447790639712063148, 16848542600833508641),
+UInt256(7059585043375375681, 2026317217056987621, 2974680244357915224, 2613934177332334185),
+UInt256(8824481304219219601, 7144582539748622430, 8330036323874781934, 3267417721665417731),
+UInt256(5515300815137012250, 15994579133411358779, 594586683994350804, 15877194131323049794),
+UInt256(6894126018921265313, 10769851879909422665, 14578291410275102218, 1399748590444260626),
+UInt256(8617657523651581641, 18074000868314166236, 4387806207561714060, 10973057774910101591),
+UInt256(5386035952282238526, 4378721515055272041, 11965750916580847095, 16081533146173589302),
+UInt256(6732544940352798157, 14696773930673865860, 1122130590443895157, 15490230414289598724),
+UInt256(8415681175440997697, 4535909358060168613, 1402663238054868947, 5527729962579834693),
+UInt256(5259800734650623560, 14364158394856075143, 3182507532997987044, 1148988217398702731),
+UInt256(6574750918313279450, 17955197993570093928, 17813192471529647517, 1436235271748378414),
+UInt256(8218438647891599313, 13220625455107841603, 3819746515702507780, 6406980108112860921),
+UInt256(5136524154932249571, 1345361881801319146, 81498563100373410, 13227734604425313884),
+UInt256(6420655193665311963, 15516760407533812644, 9325245240730242571, 7311296218676866547),
+UInt256(8025818992081639954, 14784264490989877901, 11656556550912803214, 4527434254918695279),
+UInt256(5016136870051024971, 13851851325296061592, 9591190853534195960, 16664704464606348262),
+UInt256(6270171087563781214, 12703128138192689086, 11988988566917744951, 2384136507048383711),
+UInt256(7837713859454726518, 6655538135886085550, 5762863671792405380, 16815228689092643351),
+UInt256(4898571162159204073, 17994769390210967180, 17436847850152417075, 1286145893828126286),
+UInt256(6123213952699005092, 8658403682481545264, 3349315738980969727, 15442740422567321570),
+]
+
+private let bid_multipliers1_binary80_16: [UInt256] = [
+UInt256(7654017440873756365, 10823004603101931580, 4186644673726212159, 14691739509781764058),
+UInt256(4783760900546097728, 9070220886152401189, 11840024957933658407, 16099866221254684393),
+UInt256(5979701125682622160, 11337776107690501487, 964973142134909297, 15513146758140967587),
+UInt256(7474626407103277700, 14172220134613126858, 15041274482950800334, 5556375392394045771),
+UInt256(4671641504439548562, 18081009620987980094, 14012482570271638112, 17307792675528442319),
+UInt256(5839551880549435703, 13377889989380199310, 8292231175984771833, 3187996770701001283),
+UInt256(7299439850686794629, 12110676468297861234, 1141916933126188983, 8596681981803639507),
+UInt256(9124299813358493287, 1303287530090162830, 10650768203262512037, 6134166458827161480),
+UInt256(5702687383349058304, 7732083733947433625, 2045044108611682119, 6139697045980669877),
+UInt256(7128359229186322880, 9665104667434292031, 7167991154191990553, 3062935289048449442),
+UInt256(8910449036482903600, 12081380834292865039, 4348302924312600287, 8440355129737949707),
+UInt256(5569030647801814750, 7550863021433040649, 9635218355336457035, 12192750983727300423),
+UInt256(6961288309752268438, 215206739936525003, 16655708962597959198, 10629252711231737625),
+UInt256(8701610387190335547, 9492380461775432062, 16207950184820061094, 4063193852184896223),
+UInt256(5438506491993959717, 3626894779395951087, 5518282847085150279, 16374554212897723851),
+UInt256(6798133114992449646, 9145304492672326763, 2286167540429049945, 15856506747694766910),
+UInt256(8497666393740562058, 2208258578985632645, 16692767480818476144, 5985575379336294926),
+UInt256(5311041496087851286, 5991847630293408307, 12738822684725241542, 3740984612085184329),
+UInt256(6638801870109814107, 16713181574721536192, 11311842337479164023, 13899602801961256219),
+UInt256(8298502337637267634, 16279790949974532336, 14139802921848955029, 12762817484024182369),
+UInt256(5186563961023292271, 14786555362161470614, 8837376826155596893, 10282603936728807933),
+UInt256(6483204951279115339, 13871508184274450364, 1823348995839720308, 17464940939338397820),
+UInt256(8104006189098894174, 12727699211915675051, 2279186244799650386, 3384432100463445659),
+UInt256(5065003868186808859, 3343125989019909002, 17565392467495639155, 6726956081217041441),
+UInt256(6331254835233511073, 18013965541557049965, 12733368547514773136, 3797009083093913897),
+UInt256(7914068544041888842, 8682398871664148745, 2081652629111302708, 4746261353867392371),
+UInt256(4946292840026180526, 10038185313217480869, 12830247939263033952, 12189785383021896040),
+UInt256(6182866050032725658, 3324359604667075279, 2202751868796628728, 15237231728777370050),
+UInt256(7728582562540907072, 13378821542688619906, 16588497891277949623, 599795587262160947),
+UInt256(4830364101588066920, 8361763464180387441, 14979497200476106418, 7292401269679932448),
+UInt256(6037955126985083650, 10452204330225484302, 4889313445312969310, 18338873623954691368),
+UInt256(7547443908731354563, 3841883375927079569, 15335013843495987446, 13700219993088588401),
+UInt256(4717152442957096602, 95334100740730779, 2666854624543910298, 3950951477252979847),
+UInt256(5896440553696370752, 9342539662780689281, 17168626335962051584, 14162061383421000617),
+UInt256(7370550692120463440, 11678174578475861602, 7625724864670400768, 17702576729276250771),
+UInt256(9213188365150579300, 14597718223094827003, 308784043983225153, 3681476837885761847),
+UInt256(5758242728219112062, 18346945926289042684, 16333891091985373384, 13830138069747070915),
+UInt256(7197803410273890078, 13710310371006527548, 1970619791272165114, 17287672587183838643),
+UInt256(8997254262842362598, 7914515926903383627, 2463274739090206393, 12386218697125022496),
+UInt256(5623283914276476624, 334886435887226862, 17680447776427236660, 823857658062057204),
+UInt256(7029104892845595780, 418608044859033578, 12877187683679270017, 1029822072577571505),
+UInt256(8786381116056994725, 523260056073791973, 6873112567744311713, 5898963609149352285),
+UInt256(5491488197535621703, 2632880544259813935, 6601538364053888772, 15216067301786814939),
+UInt256(6864360246919527128, 17126158735606931131, 3640236936639973062, 573340053523967057),
+UInt256(8580450308649408911, 2960954345799112297, 18385354226082130039, 9940047103759734629),
+UInt256(5362781442905880569, 8768125493765527042, 4573317363660249418, 13130058467490915999),
+UInt256(6703476803632350711, 15571842885634296706, 14940018741430087581, 7189201047508869191),
+UInt256(8379346004540438389, 14853117588615482979, 9451651389932833668, 13598187327813474393),
+UInt256(5237091252837773993, 11589041502098370814, 3601439109494327090, 17722239116738197304),
+UInt256(6546364066047217492, 651243822340799805, 13725170923722684671, 12929426859067970822),
+]
+
+private let bid_multipliers1_binary80_17: [UInt256] = [
+UInt256(8182955082559021865, 814054777925999757, 3321405599371192127, 11550097555407575623),
+UInt256(5114346926599388665, 12037999282272219608, 4381721508820689031, 14136339999770816620),
+UInt256(6392933658249235832, 1212441047558110798, 5477151886025861289, 13058738981286132871),
+UInt256(7991167072811544790, 1515551309447638497, 16069811894387102420, 2488365671325502377),
+UInt256(4994479420507215493, 14782277623686937773, 3126103406350857156, 10778600581433214794),
+UInt256(6243099275634019367, 4642788974326508504, 8519315276365959349, 13473250726791518492),
+UInt256(7803874094542524209, 1191800199480747726, 10649144095457449187, 3006505353207234403),
+UInt256(4877421309089077630, 12274090170743937089, 2044029041233517837, 18019966910250379166),
+UInt256(6096776636361347038, 6119240676575145553, 7166722319969285201, 8689900582530810246),
+UInt256(7620970795451683797, 16872422882573707749, 13570088918388994405, 15474061746590900711),
+UInt256(4763106747157302373, 12851107310822261295, 10787148583206815455, 11977131600833006896),
+UInt256(5953883433946627967, 2228826083245662907, 8872249710581131415, 10359728482613870716),
+UInt256(7442354292433284958, 16621090659339242346, 6478626119799026365, 8337974584839950491),
+UInt256(4651471432770803099, 5776495643659638562, 8660827343301779382, 7517077124738663009),
+UInt256(5814339290963503874, 2608933536147160299, 1602662142272448420, 172974369068552954),
+UInt256(7267924113704379842, 12484538957038726181, 15838385733122724237, 216217961335691192),
+UInt256(9084905142130474803, 6382301659443631919, 5962924111121241584, 4881958470097001894),
+UInt256(5678065713831546752, 1683095527938575997, 10644356597091857846, 3051224043810626184),
+UInt256(7097582142289433440, 2103869409923219996, 17917131764792210211, 13037402091618058538),
+UInt256(8871977677861791800, 2629836762404024996, 3949670632280711148, 11685066596095185268),
+UInt256(5544986048663619875, 1643647976502515622, 11691916182030220275, 16526538659414266601),
+UInt256(6931232560829524843, 15889618025910308240, 5391523190682999536, 16046487305840445347),
+UInt256(8664040701036906054, 15250336513960497396, 6739403988353749421, 1611365058591005067),
+UInt256(5415025438148066284, 4919774302797922968, 13435499529575869196, 3312946170833072119),
+UInt256(6768781797685082855, 6149717878497403710, 16794374411969836495, 4141182713541340149),
+UInt256(8460977247106353569, 3075461329694366734, 11769595978107519811, 564792373499287282),
+UInt256(5288110779441470980, 13451378377127448969, 2744311467889811977, 16493896297932912215),
+UInt256(6610138474301838725, 16814222971409311211, 8042075353289652876, 6782312317133976557),
+UInt256(8262673092877298407, 7182720658979475302, 5440908173184678191, 8477890396417470696),
+UInt256(5164170683048311504, 11406729439503253919, 17235625663522587581, 12216210525402001041),
+UInt256(6455213353810389380, 14258411799379067399, 16932846060975846573, 1435205101470337590),
+UInt256(8069016692262986725, 17823014749223834249, 16554371557792420312, 6405692395265309891),
+UInt256(5043135432664366703, 13445227227478590358, 3428953195979180839, 4003557747040818682),
+UInt256(6303919290830458379, 12194848015920850043, 13509563531828751857, 392761165373635448),
+UInt256(7879899113538072974, 10631874001473674650, 12275268396358551917, 5102637475144432214),
+UInt256(4924936945961295609, 2033235232493658752, 12283728766151482852, 5494991431178964086),
+UInt256(6156171182451619511, 7153230059044461344, 15354660957689353565, 6868739288973705107),
+UInt256(7695213978064524389, 4329851555378188777, 746582123402140340, 13197610129644519288),
+UInt256(4809508736290327743, 5012000231325061937, 11995828873194807472, 17471878367882600363),
+UInt256(6011885920362909679, 1653314270728939518, 1159728036211345629, 3393103886143698838),
+UInt256(7514857400453637098, 15901700893693338109, 10673032082118957844, 8853065876107011451),
+UInt256(4696785875283523186, 14550249076985724222, 8976488060538042604, 14756538209421657965),
+UInt256(5870982344104403983, 8964439309377379470, 1997238038817777447, 18445672761777072457),
+UInt256(7338727930130504979, 6593863118294336433, 11719919585376997617, 18445404933793952667),
+UInt256(9173409912663131224, 3630642879440532638, 814841426439083310, 9221698111960277121),
+UInt256(5733381195414457015, 2269151799650332898, 14344333946806590781, 1151875301547785297),
+UInt256(7166726494268071268, 16671497804845079835, 8707045396653462668, 6051530145362119525),
+UInt256(8958408117835089086, 2392628182346798178, 6272120727389440431, 7564412681702649406),
+UInt256(5599005073646930678, 15330450669248912573, 8531761473045788173, 11645286953705237735),
+UInt256(6998756342058663348, 9939691299706364908, 15276387859734623121, 721550636849383457),
+]
+
+private let bid_multipliers1_binary80_18: [UInt256] = [
+UInt256(8748445427573329185, 12424614124632956136, 648740750958727285, 5513624314489117225),
+UInt256(5467778392233330741, 847854800254515729, 405462969349204553, 5751858205769392218),
+UInt256(6834722990291663426, 5671504518745532565, 5118514730113893595, 11801508775639128176),
+UInt256(8543403737864579282, 16312752685286691514, 11009829431069754898, 10140199951121522316),
+UInt256(5339627336165362051, 14807156446731570100, 11492829412845984715, 10949310987878339351),
+UInt256(6674534170206702564, 13897259539987074721, 14366036766057480894, 9074952716420536285),
+UInt256(8343167712758378205, 17371574424983843402, 4122487902289687406, 2120318858670894548),
+UInt256(5214479820473986378, 13163077024828596078, 7188240957358442532, 15160257341951472805),
+UInt256(6518099775592482973, 7230474244180969289, 18208673233552828974, 503577603729789390),
+UInt256(8147624719490603716, 13649778823653599516, 8925783486658872505, 9852844041517012545),
+UInt256(5092265449681627322, 17754483801638275505, 14801986716016571123, 17687242572016602601),
+UInt256(6365331812102034153, 12969732715193068574, 4667425339738550192, 17497367196593365347),
+UInt256(7956664765127542692, 2377107838709172005, 15057653711527963549, 3424964922032155068),
+UInt256(4972915478204714182, 10709064436048008311, 11716876578918671170, 4446446085483790870),
+UInt256(6216144347755892728, 4162958508205234581, 10034409705220951058, 14781429643709514395),
+UInt256(7770180434694865910, 5203698135256543226, 17154698149953576727, 9253415017782117185),
+UInt256(4856362771684291193, 17087369389817503228, 15333372362148373358, 12700913413754905097),
+UInt256(6070453464605363992, 7524153681989715324, 719971378975915082, 6652769730338855563),
+UInt256(7588066830756704990, 9405192102487144155, 899964223719893852, 17539334199778345262),
+UInt256(4742541769222940619, 1266559045627077192, 16703378704320791322, 1738711838006689981),
+UInt256(5928177211528675773, 15418256862316010203, 2432479306691437536, 11396761834363138284),
+UInt256(7410221514410844717, 5437763022612849041, 16875657188646460632, 14245952292953922855),
+UInt256(4631388446506777948, 5704444898346724603, 3629756715262956039, 8903720183096201784),
+UInt256(5789235558133472435, 7130556122933405753, 18372253949360858761, 6517964210442864326),
+UInt256(7236544447666840544, 4301509135239369288, 9130259381418909739, 12759141281480968312),
+UInt256(9045680559583550680, 5376886419049211610, 11412824226773637174, 11337240583423822486),
+UInt256(5653550349739719175, 3360554011905757256, 11744701160160911138, 2474089346212501150),
+UInt256(7066937937174648968, 18035750570164360282, 14680876450201138922, 12315983719620402245),
+UInt256(8833672421468311211, 4097944138995898737, 9127723525896647845, 6171607612670726998),
+UInt256(5521045263417694507, 255372077658742758, 17234042249753874663, 6163097767132898326),
+UInt256(6901306579272118133, 14154273152355592160, 12319180775337567521, 3092186190488735004),
+UInt256(8626633224090147667, 3857783385162326488, 15398975969171959401, 8476918756538306658),
+UInt256(5391645765056342292, 105271606512760103, 9624359980732474625, 16827289268904911422),
+UInt256(6739557206320427865, 131589508140950129, 7418763957488205378, 7199053530848975565),
+UInt256(8424446507900534831, 4776172903603575565, 13885140965287644626, 18222188950415995264),
+UInt256(5265279067437834269, 9902637092393316584, 10984056112518471843, 16000554112437384944),
+UInt256(6581598834297292836, 16989982383919033634, 13730070140648089804, 15389006622119343276),
+UInt256(8226998542871616046, 2790733906189240427, 7939215638955336448, 789514203939627479),
+UInt256(5141874089294760028, 15579266746650438979, 2656166765133391328, 493446377462267175),
+UInt256(6427342611618450036, 1027339359603497107, 17155266511698902872, 616807971827833968),
+UInt256(8034178264523062545, 1284174199504371384, 16832397121196240686, 771009964784792460),
+UInt256(5021361415326914090, 12331823920758701875, 10520248200747650428, 14316939283272659000),
+UInt256(6276701769158642613, 6191407864093601536, 8538624232507175131, 17896174104090823750),
+UInt256(7845877211448303266, 12350945848544389824, 10673280290633968914, 17758531611686141783),
+UInt256(4903673257155189541, 12331027173767631544, 6670800181646230571, 15710768275731226518),
+UInt256(6129591571443986927, 1578725911927375718, 8338500227057788214, 15026774326236645244),
+UInt256(7661989464304983658, 15808465445191383360, 1199753246967459460, 9560095870941030747),
+UInt256(4788743415190614786, 14491976921672002504, 749845779354662162, 15198431956192920025),
+UInt256(5985929268988268483, 8891599115235227322, 937307224193327703, 9774667908386374223),
+UInt256(7482411586235335604, 6502812875616646248, 10395006067096435437, 7606648867055579875),
+]
+
+private let bid_multipliers1_binary80_19: [UInt256] = [
+UInt256(4676507241397084752, 13287630084115179713, 6496878791935272148, 7059998551123431374),
+UInt256(5845634051746355940, 16609537605143974641, 12732784508346478089, 8824998188904289217),
+UInt256(7307042564682944926, 2315177932720416686, 2080922580150933899, 15642933754557749425),
+UInt256(9133803205853681157, 12117344452755296665, 11824525262043443182, 14941981174769798878),
+UInt256(5708627003658550723, 9879183292185754368, 472799261136070133, 4727052215803736395),
+UInt256(7135783754573188404, 7737293096804805056, 590999076420087666, 10520501288182058397),
+UInt256(8919729693216485505, 9671616371006006320, 738748845525109583, 3927254573372797188),
+UInt256(5574831058260303440, 17573975277947223710, 461718028453193489, 9372063135999080099),
+UInt256(6968538822825379301, 3520725023724478021, 9800519572421267669, 16326764938426238028),
+UInt256(8710673528531724126, 9012592298082985430, 16862335483953972491, 6573398117750633822),
+UInt256(5444170955332327579, 1021184167874477990, 5927273659043844903, 1802530814380452187),
+UInt256(6805213694165409473, 15111538265125261199, 16632464110659581936, 16088221573257728946),
+UInt256(8506517117706761842, 5054364776124412787, 16178894119897089517, 1663532892862609566),
+UInt256(5316573198566726151, 7770664003505145896, 7805965815721986996, 3345551067252824931),
+UInt256(6645716498208407689, 5101643985954044466, 9757457269652483745, 4181938834066031164),
+UInt256(8307145622760509611, 10988741000869943487, 2973449550210828873, 9839109561009926858),
+UInt256(5191966014225318507, 4562120116330020727, 8775934996522849901, 17678658521699674047),
+UInt256(6489957517781648134, 1090964126985138005, 6358232727226174473, 8263265096842428846),
+UInt256(8112446897227060167, 10587077195586198314, 12559476927460105995, 14940767389480423962),
+UInt256(5070279310766912604, 13534452274882455802, 12461359098089954151, 7032136609211571024),
+UInt256(6337849138458640755, 16918065343603069753, 6353326835757666881, 4178484743087075876),
+UInt256(7922311423073300944, 16535895661076449287, 12553344563124471505, 9834791947286232749),
+UInt256(4951444639420813090, 10334934788172780804, 14763369379593876546, 17675960013122365228),
+UInt256(6189305799276016363, 3695296448361200198, 7467650782794067, 12871577979548180727),
+UInt256(7736632249095020454, 7434542024112343, 9232706600333268392, 11477786456007838005),
+UInt256(4835395155684387783, 13839704644047233926, 12687970652849374601, 7173616535004898753),
+UInt256(6044243944605484729, 12687944786631654504, 6636591279206942443, 13578706687183511346),
+UInt256(7555304930756855912, 2024872928007404418, 8295739099008678054, 12361697340552001278),
+UInt256(4722065581723034945, 1265545580004627761, 9796522955307811688, 3114374819417612895),
+UInt256(5902581977153793681, 6193617993433172605, 16857339712562152514, 3892968524272016118),
+UInt256(7378227471442242101, 12353708510218853661, 7236616585420526930, 14089582692194795956),
+UInt256(9222784339302802627, 1607077582491403364, 13657456750203046567, 8388606328388719137),
+UInt256(5764240212064251641, 17145324553552984766, 17759282505731679912, 12160407982884031317),
+UInt256(7205300265080314552, 7596597636659067246, 12975731095309824082, 15200509978605039146),
+UInt256(9006625331350393190, 9495747045823834058, 6996291832282504295, 9777265436401523124),
+UInt256(5629140832093995744, 1323155885212508382, 8984368413603953088, 13028319925392033809),
+UInt256(7036426040117494680, 1653944856515635478, 2007088480150165552, 16285399906740042261),
+UInt256(8795532550146868350, 2067431070644544347, 11732232637042482749, 1910005809715501210),
+UInt256(5497207843841792718, 15127202474435003929, 5026802388937857766, 3499596640285882208),
+UInt256(6871509804802240898, 9685631056188979103, 10895189004599710111, 13597867837212128568),
+UInt256(8589387256002801123, 2883666783381448071, 9007300237322249735, 12385648778087772806),
+UInt256(5368367035001750701, 17943192804109262708, 12547091675967487940, 14658559513945939860),
+UInt256(6710458793752188377, 8593932949854414673, 15683864594959359925, 18323199392432424825),
+UInt256(8388073492190235471, 15354102205745406246, 5769772688417036195, 9068941185258367319),
+UInt256(5242545932618897169, 16513842906231960759, 17441165985542811334, 3362245231572785623),
+UInt256(6553182415773621462, 6807245577507787237, 17189771463501126263, 13426178576320757836),
+UInt256(8191478019717026827, 17732429008739509855, 7652156274094244117, 12171037201973559391),
+UInt256(5119673762323141767, 8776925121248499707, 11700126698949984429, 9912741260447168572),
+UInt256(6399592202903927209, 6359470383133236730, 10013472355260092632, 17002612593986348618),
+UInt256(7999490253629909011, 12561023997343933817, 3293468407220339983, 2806521668773384157),
+]
+
+private let bid_multipliers1_binary80_20: [UInt256] = [
+UInt256(4999681408518693132, 5544796989126264683, 13587632800581182249, 8671605070624446954),
+UInt256(6249601760648366415, 6930996236407830854, 12372854982299089907, 15451192356707946597),
+UInt256(7812002200810458019, 4052059277082400664, 6242696691019086576, 14702304427457545342),
+UInt256(4882501375506536262, 226694038962806463, 3901685431886929110, 9188940267160965839),
+UInt256(6103126719383170327, 9506739585558283887, 265420771431273484, 2262803297096431490),
+UInt256(7628908399228962909, 7271738463520466954, 14166834019571255567, 2828504121370539363),
+UInt256(4768067749518101818, 6850679548913985798, 13465957280659422633, 8685344103497668958),
+UInt256(5960084686897627272, 17786721472997258056, 7609074563969502483, 15468366147799474101),
+UInt256(7450105858622034091, 3786657767537020954, 9511343204961878104, 14723771666321954722),
+UInt256(4656316161638771307, 60818095496944144, 10556275521528561719, 9202357291451221702),
+UInt256(5820395202048464133, 13911080674653343892, 13195344401910702149, 6891260595886639223),
+UInt256(7275494002560580167, 3553792788034516153, 16494180502388377686, 13225761763285686933),
+UInt256(9094367503200725208, 18277299040325308904, 6782667572703308396, 7308830167252332858),
+UInt256(5683979689500453255, 11423311900203318065, 4239167232939567747, 13791390891387483844),
+UInt256(7104974611875566569, 9667453856826759677, 9910645059601847588, 12627552595806966901),
+UInt256(8881218264844458211, 16696003339460837500, 16999992342929697389, 15784440744758708626),
+UInt256(5550761415527786382, 8129159077949329486, 1401623177476285060, 12171118474687886844),
+UInt256(6938451769409732978, 938076810581886049, 10975401008700132133, 15213898093359858554),
+UInt256(8673064711762166222, 10395968050082133369, 18330937279302553071, 5182314561417659481),
+UInt256(5420665444851353889, 1885794012873945452, 4539306771923013813, 10156475628527119032),
+UInt256(6775831806064192361, 6968928534519819719, 5674133464903767266, 17307280554086286694),
+UInt256(8469789757580240451, 13322846686577162553, 2480980812702321179, 12410728655753082559),
+UInt256(5293618598487650282, 6020936169897032643, 13079828054007420497, 5450862400631982647),
+UInt256(6617023248109562852, 16749542249226066612, 11738099049081887717, 11425264019217366213),
+UInt256(8271279060136953566, 2490183737823031649, 14672623811352359647, 446521968739544054),
+UInt256(5169549412585595978, 15391422891421558493, 2252860854454142923, 7196605258103296890),
+UInt256(6461936765731994973, 10015906577422172308, 7427762086495066558, 4384070554201733209),
+UInt256(8077420957164993716, 17131569240205103289, 9284702608118833197, 14703460229606942319),
+UInt256(5048388098228121073, 1483858738273413747, 17332154176142740508, 11495505652718032901),
+UInt256(6310485122785151341, 6466509441269155088, 17053506701751037731, 14369382065897541126),
+UInt256(7888106403481439176, 12694822820013831765, 2870139303479245548, 13350041563944538504),
+UInt256(4930066502175899485, 7934264262508644853, 4099680073888222419, 17567148014320112373),
+UInt256(6162583127719874356, 14529516346563193970, 9736286110787665928, 17347248999472752562),
+UInt256(7703228909649842945, 18161895433203992463, 2946985601629806603, 3237317175631389087),
+UInt256(4814518068531151841, 4433655618111413433, 8759395028659710982, 18164224299265475843),
+UInt256(6018147585663939801, 10153755541066654695, 15560929804252026632, 13481908337227068996),
+UInt256(7522684482079924751, 17303880444760706273, 14839476236887645386, 16852385421533836245),
+UInt256(4701677801299952969, 17732454305616523277, 2357143620413696510, 15144426906886035557),
+UInt256(5877097251624941212, 8330509826738490384, 7558115543944508542, 9707161596752768639),
+UInt256(7346371564531176515, 10413137283423112980, 9447644429930635678, 2910579959086184990),
+UInt256(9182964455663970644, 8404735585851503321, 11809555537413294597, 12861596985712507045),
+UInt256(5739352784789981652, 14476331778011965384, 463443183242227267, 10344341125284010856),
+UInt256(7174190980987477065, 18095414722514956730, 579303979052784084, 8318740388177625665),
+UInt256(8967738726234346332, 8784210347861532200, 9947502010670755913, 10398425485222032082),
+UInt256(5604836703896466457, 14713503504268233433, 6217188756669222445, 18028230974332239811),
+UInt256(7006045879870583072, 4556821325053128079, 12383171964263915961, 8700230662633136052),
+UInt256(8757557349838228840, 5696026656316410099, 10867278936902507047, 15486974346718807969),
+UInt256(5473473343648893025, 3560016660197756312, 4486206326350372952, 16596887994340336837),
+UInt256(6841841679561116281, 9061706843674583294, 5607757907937966191, 2299365919215869430),
+UInt256(8552302099451395351, 15938819573020617021, 16233069421777233546, 16709265454302000499),
+]
+
+private let bid_multipliers1_binary80_21: [UInt256] = [
+UInt256(5345188812157122094, 16879291260778967494, 12451511397824464918, 15054976927366138216),
+UInt256(6681486015196402618, 11875742039118933560, 6341017210425805340, 9595349122352896962),
+UInt256(8351857518995503273, 5621305512043891142, 7926271513032256675, 11994186402941121202),
+UInt256(5219910949372189545, 15042530991095901724, 342233677217772518, 5190523492624506800),
+UInt256(6524888686715236932, 4968105683587713443, 427792096522215647, 15711526402635409307),
+UInt256(8156110858394046165, 6210132104484641803, 14369798175934933271, 15027721984866873730),
+UInt256(5097569286496278853, 6187175574516595079, 6675280850745639342, 16309855268182877938),
+UInt256(6371961608120348566, 12345655486573131753, 3732415045004661274, 11163947048373821614),
+UInt256(7964952010150435708, 6208697321361638883, 9277204824683214497, 4731561773612501209),
+UInt256(4978095006344022317, 13103807862705800110, 3492410006213315108, 14486441154576283016),
+UInt256(6222618757930027897, 2544701773100086425, 13588884544621419693, 18108051443220353770),
+UInt256(7778273447412534871, 7792563234802495936, 3151047625494610905, 8800006248743278500),
+UInt256(4861420904632834294, 11787881049392641816, 1969404765934131815, 17029218951533018823),
+UInt256(6076776130791042868, 5511479274886026462, 2461755957417664769, 16674837670988885624),
+UInt256(7595970163488803585, 6889349093607533077, 12300566983626856770, 7008489033453943318),
+UInt256(4747481352180502240, 15835058229573177933, 9993697373980479433, 8991991664336102478),
+UInt256(5934351690225627801, 1347078713256920800, 17103807735902987195, 15851675598847516001),
+UInt256(7417939612782034751, 6295534409998538905, 2933015596169182378, 15202908480132007098),
+UInt256(4636212257988771719, 10852238033890168671, 13362349793674208746, 14113503818509892340),
+UInt256(5795265322485964649, 8953611523935322935, 12091251223665373029, 8418507736282589617),
+UInt256(7244081653107455811, 15803700423346541573, 10502378011154328382, 15134820688780624925),
+UInt256(9055102066384319764, 15142939510755789062, 17739658532370298382, 9695153824121005349),
+UInt256(5659438791490199853, 240965157367592356, 6475600564304048585, 1447785121648240439),
+UInt256(7074298489362749816, 4912892465136878349, 8094500705380060731, 6421417420487688453),
+UInt256(8842873111703437270, 6141115581421097936, 14729811900152463818, 3415085757182222662),
+UInt256(5526795694814648293, 17673255293670349922, 9206132437595289886, 6746114616666277068),
+UInt256(6908494618518310367, 8256511061805773691, 2284293510139336549, 17656015307687622143),
+UInt256(8635618273147887959, 5708952808829829209, 16690424942956334399, 8234961079327363966),
+UInt256(5397261420717429974, 10485624533159725112, 3513986561706627143, 12064379702220684335),
+UInt256(6746576775896787468, 3883658629594880582, 4392483202133283929, 10468788609348467515),
+UInt256(8433220969870984335, 4854573286993600727, 14713976039521380719, 17697671780112972297),
+UInt256(5270763106169365209, 9951637332012082310, 16113764052341944805, 17978573890211689542),
+UInt256(6588453882711706511, 17051232683442490792, 10918833028572655199, 8638159307482448215),
+UInt256(8235567353389633139, 16702354835875725586, 13648541285715818999, 6186013115925672365),
+UInt256(5147229595868520712, 8133128763208634539, 13142024321999774778, 10783787225094627084),
+UInt256(6434036994835650890, 10166410954010793174, 11815844384072330569, 4256361994513508047),
+UInt256(8042546243544563613, 3484641655658715660, 5546433443235637403, 9932138511569272963),
+UInt256(5026591402215352258, 4483744044000391239, 12689892938877049185, 3901743560517101650),
+UInt256(6283239252769190322, 14828052091855264857, 11250680155168923577, 9488865469073764966),
+UInt256(7854049065961487903, 9311693077964305264, 228292138678990759, 16472767854769594112),
+UInt256(4908780666225929939, 12737337201368772646, 142682586674369224, 17213008936872078176),
+UInt256(6135975832782412424, 11309985483283577903, 9401725270197737339, 3069517097380546104),
+UInt256(7669969790978015530, 14137481854104472379, 7140470569319783769, 17671954427007846342),
+UInt256(4793731119361259706, 13447612177242683141, 2156951096611170904, 4127442489238822108),
+UInt256(5992163899201574633, 7586143184698578118, 7307874889191351534, 5159303111548527635),
+UInt256(7490204874001968291, 14094364999300610551, 18358215648343965225, 15672500926290435351),
+UInt256(4681378046251230182, 6503135115349187642, 18391413807856060122, 2877784051290440239),
+UInt256(5851722557814037727, 17352290931041260361, 13765895222965299344, 12820602100967826106),
+UInt256(7314653197267547159, 17078677645374187548, 3372310973424460468, 16025752626209782633),
+UInt256(9143316496584433949, 16736661038290346531, 4215388716780575586, 1585446709052676675),
+]
+
+private let bid_multipliers1_binary80_22: [UInt256] = [
+UInt256(5714572810365271218, 12766256158145160534, 328774938774165789, 5602590211585310826),
+UInt256(7143216012956589023, 6734448160826674859, 9634340710322483044, 11614923782909026436),
+UInt256(8929020016195736279, 3806374182605955670, 7431239869475715901, 14518654728636283045),
+UInt256(5580637510122335174, 9296512891769804150, 32838899994934534, 11380002214611370855),
+UInt256(6975796887652918968, 2397269077857479379, 9264420661848443976, 5001630731409437761),
+UInt256(8719746109566148710, 2996586347321849224, 6968839808883167066, 6252038414261797201),
+UInt256(5449841318478842943, 15707924522358319477, 4355524880551979416, 8519210027341011155),
+UInt256(6812301648098553679, 15023219634520511442, 10056092119117362174, 10649012534176263944),
+UInt256(8515377060123192099, 14167338524723251399, 3346743112041926910, 4087893630865554121),
+UInt256(5322110662576995062, 6548743568738338172, 9009243472667286174, 16389991574573135038),
+UInt256(6652638328221243827, 17409301497777698523, 11261554340834107718, 11264117431361642989),
+UInt256(8315797910276554784, 17149940853794735250, 9465256907615246744, 4856774752347277929),
+UInt256(5197373693922846740, 10718713033621709531, 10527471585686917119, 3035484220217048706),
+UInt256(6496717117403558425, 13398391292027136914, 8547653463681258494, 17629413330553474594),
+UInt256(8120896396754448032, 2912931059751757431, 1461194792746797310, 12813394626337067434),
+UInt256(5075560247971530020, 1820581912344848394, 7830775773107830175, 3396685623033279243),
+UInt256(6344450309964412525, 2275727390431060493, 565097679530011910, 18080915084073762765),
+UInt256(7930562887455515656, 7456345256466213520, 5318058117839902792, 13377771818237427648),
+UInt256(4956601804659697285, 4660215785291383450, 3323786323649939245, 8361107386398392280),
+UInt256(6195752255824621606, 10436955750041617216, 13378104941417199864, 15063070251425378254),
+UInt256(7744690319780777008, 3822822650697245712, 16722631176771499831, 382093740572171202),
+UInt256(4840431449862985630, 2389264156685778570, 10451644485482187394, 7156337615498688857),
+UInt256(6050539312328732037, 12209952232711999021, 3841183569997958434, 18168794056228136880),
+UInt256(7563174140410915047, 1427382235607835064, 9413165480924835947, 13487620533430395291),
+UInt256(4726983837756821904, 7809642924895978771, 5883228425578022467, 6123919824180303105),
+UInt256(5908729797196027380, 9762053656119973464, 2742349513545140180, 3043213761797990977),
+UInt256(7385912246495034225, 12202567070149966830, 3427936891931425225, 3804017202247488722),
+UInt256(4616195154059396391, 709075391202647412, 15977518612739304477, 13906725797473150211),
+UInt256(5770243942574245488, 14721402294285472978, 1525154192214578981, 3548349191559274052),
+UInt256(7212804928217806860, 18401752867856841222, 11129814777122999534, 9047122507876480469),
+UInt256(9016006160272258576, 4555447011111499912, 4688896434548973610, 2085531097990824778),
+UInt256(5635003850170161610, 2847154381944687445, 2930560271593108506, 5915142954671653390),
+UInt256(7043754812712702012, 12782315014285635114, 8274886357918773536, 16617300730194342546),
+UInt256(8804693515890877515, 15977893767857043893, 1120235910543691113, 2324881839033376566),
+UInt256(5502933447431798447, 7680340595696958481, 3005990453303500897, 12982266195464330114),
+UInt256(6878666809289748059, 4988739726193810197, 8369174085056764026, 2392774689048248930),
+UInt256(8598333511612185074, 1624238639314874842, 15073153624748342936, 12214340398165086971),
+UInt256(5373958444757615671, 5626835167999184680, 14032407033895102239, 7633962748853179357),
+UInt256(6717448055947019589, 2421857941571592946, 17540508792368877799, 4930767417639086292),
+UInt256(8396810069933774486, 7639008445391879087, 12702263953606321441, 1551773253621469961),
+UInt256(5248006293708609054, 162694259942536525, 14856443998645032756, 12499073329581888486),
+UInt256(6560007867135761317, 9426739861782946465, 4735496943024127233, 15623841661977360607),
+UInt256(8200009833919701646, 16395110845656070985, 10531057197207546946, 5694744022189537047),
+UInt256(5125006146199813529, 5635258260107656461, 18111125794323186601, 8170901032295848558),
+UInt256(6406257682749766911, 11655758843561958481, 8803849187621819539, 14825312308797198602),
+UInt256(8007822103437208639, 9958012536025060197, 15616497502954662328, 13919954367569110348),
+UInt256(5004888814648255399, 13141286862656744479, 12066153948560357907, 8699971479730693968),
+UInt256(6256111018310319249, 11814922559893542695, 10471006417273059480, 6263278331235979556),
+UInt256(7820138772887899062, 933595144584764657, 8477072003163936446, 7829097914044974444),
+UInt256(4887586733054936913, 14418555020647641622, 16827385048045930039, 281500177850721124),
+]
+
+private let bid_multipliers1_binary80_23: [UInt256] = [
+UInt256(6109483416318671142, 4188135720527388316, 11810859273202636740, 14186933277595565117),
+UInt256(7636854270398338927, 14458541687514011203, 14763574091503295925, 17733666596994456396),
+UInt256(4773033918998961829, 15954117582337338858, 6921390797975866001, 13389384632335229200),
+UInt256(5966292398748702287, 6107588922639509860, 17875110534324608310, 2901672735136872787),
+UInt256(7457865498435877859, 3022800134871999422, 3897144094196208771, 12850462955775866792),
+UInt256(4661165936522423661, 18030151148790857302, 16270773114154794194, 5725696338146222793),
+UInt256(5826457420653029577, 8702630880706407916, 11115094355838716934, 16380492459537554299),
+UInt256(7283071775816286971, 15489974619310397799, 13893867944798396168, 11252243537567167066),
+UInt256(9103839719770358714, 14750782255710609345, 12755648912570607306, 14065304421958958833),
+UInt256(5689899824856474196, 13830924928246518745, 1054751542715547710, 13402501282151737175),
+UInt256(7112374781070592745, 17288656160308148431, 5930125446821822542, 7529754565834895660),
+UInt256(8890468476338240932, 7775762145103021827, 2800970790099890274, 188821170438843767),
+UInt256(5556542797711400582, 14083223377544164449, 17891507808308289085, 4729699249951665259),
+UInt256(6945678497139250728, 8380657185075429754, 8529326705103197644, 10523810080866969477),
+UInt256(8682098121424063410, 10475821481344287193, 1438286344524221247, 13154762601083711846),
+UInt256(5426311325890039631, 11159074444267567399, 12428144011396108039, 15139255653318401760),
+UInt256(6782889157362549539, 9337157036907071345, 10923493995817747145, 14312383548220614296),
+UInt256(8478611446703186924, 7059760277706451277, 18266053513199571836, 4055421379993604158),
+UInt256(5299132154189491827, 13635722210421307856, 13722126454963426349, 11758010399350778407),
+UInt256(6623915192736864784, 12432966744599246916, 17152658068704282937, 862454943906309296),
+UInt256(8279893990921080980, 15541208430749058646, 2994078512170802055, 5689754698310274524),
+UInt256(5174933744325675613, 489883232363385845, 15706357125388914996, 10473625714085003434),
+UInt256(6468667180407094516, 5224040058881620211, 5797888351453980033, 13092032142606254292),
+UInt256(8085833975508868145, 6530050073602025264, 2635674420890087138, 2529982122975654153),
+UInt256(5053646234693042590, 15610496342069735550, 1647296513056304461, 6192924845287171750),
+UInt256(6317057793366303238, 10289748390732393629, 11282492678175156384, 12352842075036352591),
+UInt256(7896322241707879048, 3638813451560716229, 268057792436781768, 15441052593795440739),
+UInt256(4935201401067424405, 2274258407225447643, 2473379129486682557, 9650657871122150462),
+UInt256(6169001751334280506, 7454509027459197457, 16926781967140516908, 16675008357330075982),
+UInt256(7711252189167850633, 94764247469221014, 7323419403643482424, 2397016372953043361),
+UInt256(4819532618229906645, 11588442700736732893, 18412195182559340227, 1498135233095652101),
+UInt256(6024415772787383307, 650495320638752405, 9180185922917011571, 15707727096651728838),
+UInt256(7530519715984229133, 14648177206080604218, 16086918422073652368, 15022972852387273143),
+UInt256(4706574822490143208, 11460953763014071588, 14666010032223420634, 9389358032742045715),
+UInt256(5883218528112679010, 14326192203767589485, 18332512540279275793, 2513325504072781335),
+UInt256(7354023160140848763, 8684368217854711049, 9080582620066931029, 7753342898518364573),
+UInt256(9192528950176060954, 6243774253891000907, 15962414293511051690, 14303364641575343620),
+UInt256(5745330593860038096, 8514044927109263471, 7670665924230713354, 13551288919411977667),
+UInt256(7181663242325047620, 10642556158886579339, 4976646386861003789, 7715739112410196275),
+UInt256(8977079052906309525, 13303195198608224174, 1609121965148866832, 14256359908940133248),
+UInt256(5610674408066443453, 10620340008343834060, 14840759283500205482, 8910224943087583280),
+UInt256(7013343010083054316, 17887111028857180480, 104205030665705237, 1914409142004703292),
+UInt256(8766678762603817896, 3912144712361923984, 130256288332131546, 7004697445933267019),
+UInt256(5479174226627386185, 2445090445226202490, 81410180207582216, 8989621922135679791),
+UInt256(6848967783284232731, 7668049074960141016, 9325134762114253578, 11237027402669599738),
+UInt256(8561209729105290914, 4973375325272788366, 11656418452642816973, 4822912216482223865),
+UInt256(5350756080690806821, 7720045596722880633, 2673575514474372704, 5320163144515083868),
+UInt256(6688445100863508526, 14261743014330988695, 7953655411520353784, 6650203930643854835),
+UInt256(8360556376079385658, 8603806731058960061, 5330383245973054326, 8312754913304818543),
+UInt256(5225347735049616036, 9989065225339237942, 5637332537946852906, 583785802388123686),
+]
+
+private let bid_multipliers1_binary80_24: [UInt256] = [
+UInt256(6531684668812020045, 12486331531674047427, 16270037709288341940, 9953104289839930415),
+UInt256(8164605836015025057, 1772856359310395572, 15725861118183039521, 12441380362299913019),
+UInt256(5102878647509390660, 12637250270637466993, 605291162009623893, 858333698796363781),
+UInt256(6378598309386738325, 15796562838296833741, 5368299970939417770, 5684603141922842630),
+UInt256(7973247886733422907, 5910645492588878464, 11322060982101660116, 16329125964258329095),
+UInt256(4983279929208389317, 1388310423654355088, 7076288113813537573, 982331690806679877),
+UInt256(6229099911510486646, 6347074047995331764, 8845360142266921966, 5839600631935737750),
+UInt256(7786374889388108307, 17157214596848940513, 11056700177833652457, 16522872826774447995),
+UInt256(4866484305867567692, 8417416113816893868, 18439652657214502546, 3409266489092948141),
+UInt256(6083105382334459615, 10521770142271117336, 4602821747808576566, 13484955148220960984),
+UInt256(7603881727918074519, 8540526659411508766, 5753527184760720708, 7632821898421425422),
+UInt256(4752426079948796574, 12255358189773274834, 17431012545757614154, 13993885723368166697),
+UInt256(5940532599935995718, 6095825700361817735, 12565393645342241885, 8268985117355432563),
+UInt256(7425665749919994647, 16843154162307047977, 11095056038250414452, 14947917415121678608),
+UInt256(4641041093699996654, 17444500379082986842, 16880996265427177, 119076347596273322),
+UInt256(5801301367124995818, 12582253436998957744, 9244473282186559779, 4760531452922729557),
+UInt256(7251626708906244773, 6504444759393921372, 11555591602733199724, 1338978297726024042),
+UInt256(9064533386132805966, 12742241967669789619, 14444489503416499655, 1673722872157530052),
+UInt256(5665333366333003729, 3352215211366230608, 6721962930421618332, 7963605822739538139),
+UInt256(7081666707916254661, 8801955032635176164, 8402453663027022915, 9954507278424422673),
+UInt256(8852083384895318326, 15614129809221358109, 10503067078783778644, 7831448079603140437),
+UInt256(5532552115559573954, 5147145112335960914, 8870259933453555604, 14118027086606738581),
+UInt256(6915690144449467442, 15657303427274726951, 1864452879962168697, 17647533858258423227),
+UInt256(8644612680561834303, 10348257247238632880, 16165624155234874584, 8224359267540865321),
+UInt256(5402882925351146439, 13385189807165227406, 10103515097021796615, 5140224542213040826),
+UInt256(6753603656688933049, 12119801240529146354, 3406021834422469961, 1813594659338913128),
+UInt256(8442004570861166312, 1314693495379269230, 13480899329882863259, 6878679342601029314),
+UInt256(5276252856788228945, 821683434612043269, 3813876062749401633, 1993331579911949370),
+UInt256(6595316070985286181, 5638790311692441990, 9379031096864139945, 7103350493317324616),
+UInt256(8244145088731607726, 11660173908042940392, 2500416834225399123, 13490874135074043674),
+UInt256(5152590680457254829, 2675922674099449841, 1562760521390874452, 6125953325207583344),
+UInt256(6440738350571568536, 7956589361051700205, 6565136670165980969, 7657441656509479180),
+UInt256(8050922938214460670, 9945736701314625256, 12818106856134864115, 14183488089064236879),
+UInt256(5031826836384037919, 1604399419894252881, 8011316785084290072, 6558837046451454098),
+UInt256(6289783545480047398, 15840557330149979813, 14625831999782750494, 8198546308064317622),
+UInt256(7862229431850059248, 10577324625832698959, 4447231944446274406, 1024810848225621219),
+UInt256(4913893394906287030, 6610827891145436849, 9697048992920003359, 14475564835423176974),
+UInt256(6142366743632858787, 17486906900786571869, 16732997259577392103, 13482770025851583314),
+UInt256(7677958429541073484, 17246947607555826933, 7081188519189576417, 12241776513887091238),
+UInt256(4798724018463170928, 1555970217867616025, 6731585833707179213, 733581293538350168),
+UInt256(5998405023078963660, 1944962772334520031, 13026168310561361920, 5528662635350325614),
+UInt256(7498006278848704575, 2431203465418150039, 11671024369774314496, 6910828294187907017),
+UInt256(4686253924280440359, 8437031193527425630, 14211919258750028416, 4319267683867441886),
+UInt256(5857817405350550449, 5934602973481894134, 8541527036582759712, 5399084604834302357),
+UInt256(7322271756688188061, 12029939735279755572, 1453536758873673832, 6748855756042877946),
+UInt256(9152839695860235077, 1202366613817530753, 1816920948592092290, 8436069695053597433),
+UInt256(5720524809912646923, 3057322142849650672, 12664790638938527441, 9884229577835886300),
+UInt256(7150656012390808653, 17656710733844227052, 15830988298673159301, 16966972990722245779),
+UInt256(8938320015488510817, 8235830362023120104, 1341991299631897511, 7373658183120643511),
+UInt256(5586450009680319260, 16676609022332919825, 838744562269935944, 11526065392091484051),
+]
+
+private let bid_multipliers1_binary80_25: [UInt256] = [
+UInt256(6983062512100399076, 2399017204206598165, 5660116721264807834, 14407581740114355063),
+UInt256(8728828140125498845, 2998771505258247706, 11686831920008397697, 8786105138288168021),
+UInt256(5455517587578436778, 4180075200000098768, 11915955968432636464, 17020530757498574773),
+UInt256(6819396984473045972, 14448466036854899268, 14894944960540795581, 2828919373163666850),
+UInt256(8524246230591307465, 18060582546068624086, 171937126966442860, 8147835234881971467),
+UInt256(5327653894119567166, 4370335063651808197, 13942518759636190499, 14315769058656007975),
+UInt256(6659567367649458957, 14686290866419536055, 3593090394263074412, 13283025304892622065),
+UInt256(8324459209561823697, 4522805527742256356, 18326421048111006727, 16603781631115777581),
+UInt256(5202787005976139810, 14355968500907379983, 2230641118214603396, 17294892547088442844),
+UInt256(6503483757470174763, 8721588589279449170, 16623359453050417958, 3171871610151001939),
+UInt256(8129354696837718454, 6290299718171923559, 11555827279458246639, 13188211549543528231),
+UInt256(5080846685523574033, 17766495379139615936, 14139921077302486005, 15160161246105787001),
+UInt256(6351058356904467542, 8373061168642356208, 17674901346628107507, 5115143502350070039),
+UInt256(7938822946130584428, 1242954423948169453, 3646882609575582768, 1782243359510199645),
+UInt256(4961764341331615267, 10000218551822381716, 4585144640198433182, 1113902099693874778),
+UInt256(6202205426664519084, 7888587171350589241, 5731430800248041477, 10615749661472119280),
+UInt256(7752756783330648855, 9860733964188236551, 11775974518737439750, 17881373095267537004),
+UInt256(4845472989581655534, 13080487755258729700, 14277513101851981700, 6564172166114822724),
+UInt256(6056841236977069418, 7127237657218636317, 17846891377314977125, 8205215207643528405),
+UInt256(7571051546221336772, 18132419108378071205, 8473556166361557694, 14868205027981798410),
+UInt256(4731907216388335483, 2109389905881518695, 7601815613189667511, 4680942124061236102),
+UInt256(5914884020485419353, 16471795437634062081, 4890583498059696485, 1239491636649157224),
+UInt256(7393605025606774192, 6754686241760413889, 10724915391002008510, 6161050564238834434),
+UInt256(4621003141004233870, 4221678901100258680, 18232287165444725078, 17685714657931435233),
+UInt256(5776253926255292337, 14500470663230099159, 4343614883096354732, 12883771285559518233),
+UInt256(7220317407819115422, 4290530273755460237, 817832585443055511, 16104714106949397792),
+UInt256(9025396759773894277, 14586534879049101104, 5633976750231207293, 15519206615259359335),
+UInt256(5640872974858683923, 11422427308619382142, 3521235468894504558, 12005347143750793537),
+UInt256(7051091218573354904, 9666348117346839773, 13624916372972906506, 5783311892833716113),
+UInt256(8813864023216693630, 12082935146683549717, 3196087410933969420, 16452511902896920949),
+UInt256(5508665014510433519, 2940148448249830669, 4303397641047424840, 1059447902455799785),
+UInt256(6885831268138041898, 17510243615594452048, 9990933069736668954, 1324309878069749732),
+UInt256(8607289085172552373, 12664432482638289252, 12488666337170836192, 10878759384441962972),
+UInt256(5379555678232845233, 10221113310862624734, 17028788497586548428, 6799224615276226858),
+UInt256(6724444597791056541, 17388077657005668822, 12062613585128409727, 8499030769095283572),
+UInt256(8405555747238820677, 7900039015974922316, 5854894944555736351, 6012102442941716561),
+UInt256(5253472342024262923, 7243367394198020399, 12882681377202111027, 10675093054479654707),
+UInt256(6566840427530328654, 4442523224320137595, 11491665703075250880, 8732180299672180479),
+UInt256(8208550534412910817, 14776526067254947802, 9752896110416675696, 10915225374590225599),
+UInt256(5130344084008069261, 2317799764393260520, 10707246087437810214, 6822015859118891000),
+UInt256(6412930105010086576, 7508935723918963554, 13384057609297262767, 17750891860753389558),
+UInt256(8016162631262608220, 9386169654898704443, 7506699974766802651, 17576928807514349043),
+UInt256(5010101644539130137, 15089728071166466085, 2385844475015557705, 8679737495482774200),
+UInt256(6262627055673912672, 5027102033675918894, 7593991612196835035, 15461357887780855654),
+UInt256(7828283819592390840, 6283877542094898618, 269117478391267986, 14715011341298681663),
+UInt256(4892677387245244275, 3927423463809311636, 4779884442421930395, 13808568106739063944),
+UInt256(6115846734056555344, 297593311334251641, 5974855553027412994, 12649024114996442025),
+UInt256(7644808417570694180, 371991639167814551, 12080255459711654147, 6587908106890776724),
+UInt256(4778005260981683862, 9455866811334659902, 14467688689960865698, 1811599557593041500),
+UInt256(5972506576227104828, 2596461477313549070, 8861238825596306314, 11487871483846077683),
+]
+
+private let bid_multipliers1_binary80_26: [UInt256] = [
+UInt256(7465633220283881035, 3245576846641936338, 1853176495140607085, 5136467317952821296),
+UInt256(4666020762677425646, 18169386593647067875, 5769921327890267332, 5516135082934207262),
+UInt256(5832525953346782058, 13488361205204059036, 2600715641435446261, 6895168853667759078),
+UInt256(7290657441683477573, 7637079469650297987, 3250894551794307826, 13230647085512086751),
+UInt256(9113321802104346966, 14158035355490260387, 17898676245025048495, 7314936820035332631),
+UInt256(5695826126315216854, 4237086078754024838, 8880829643926961357, 11489364540163164750),
+UInt256(7119782657894021067, 14519729635297306856, 1877665018053925889, 526647619921792226),
+UInt256(8899728322367526334, 13537976025694245666, 2347081272567407361, 5269995543329628186),
+UInt256(5562330201479703959, 3849548997631515637, 6078611813782017504, 14822962260649487377),
+UInt256(6952912751849629949, 200250228612006642, 12209950785654909785, 81958752102307605),
+UInt256(8691140939812037436, 4861998804192396207, 6039066445213861423, 4714134458555272410),
+UInt256(5431963087382523397, 12262121289475023437, 10691945555899745245, 9863863064238127112),
+UInt256(6789953859228154247, 1492593556561615584, 17976617963302069460, 16941514848725046794),
+UInt256(8487442324035192808, 15700800000984183193, 4024028380418035210, 2730149487196756876),
+UInt256(5304651452521995505, 9813000000615114495, 14044232783829741766, 6318029447925360952),
+UInt256(6630814315652494381, 16877936019196281023, 12943604961359789303, 17120908846761476998),
+UInt256(8288517894565617977, 7262361968713187567, 11567820183272348725, 16789450040024458343),
+UInt256(5180323684103511235, 16068191276514211989, 14147416642186299809, 12799249284228980417),
+UInt256(6475404605129389044, 15473553077215377083, 3849212747450711050, 2164003550004061809),
+UInt256(8094255756411736306, 895197272809669738, 199829915886000908, 11928376474359853069),
+UInt256(5058909847757335191, 5171184313933431490, 4736579715856138471, 16678607333329683976),
+UInt256(6323637309696668989, 1852294373989401458, 15144096681674948897, 16236573148234717066),
+UInt256(7904546637120836236, 6927053985914139727, 9706748815238910314, 6460658380011232621),
+UInt256(4940341648200522647, 13552780778051113137, 12984247037165400802, 8649597505934408292),
+UInt256(6175427060250653309, 12329289954136503518, 2395250741174587291, 1588624845563234557),
+UInt256(7719283825313316637, 1576554387388465685, 12217435463323009921, 15820839112236206908),
+UInt256(4824552390820822898, 3291189501331485005, 9941740173790575153, 2970495417506547462),
+UInt256(6030690488526028622, 13337358913519132064, 17038861235665606845, 8324805290310572231),
+UInt256(7538363110657535778, 7448326605044139273, 2851832470872456940, 15017692631315603193),
+UInt256(4711476944160959861, 9266890146579974949, 13311610340363755348, 162685857717476188),
+UInt256(5889346180201199826, 16195298701652356591, 2804454870172530473, 203357322146845234),
+UInt256(7361682725251499783, 11020751340210669930, 17340626642997826803, 4865882671110944447),
+UInt256(9202103406564374729, 9164253156835949509, 12452411266892507696, 1470667320461292654),
+UInt256(5751314629102734205, 17256873269090938203, 10088600051021511262, 919167075288307909),
+UInt256(7189143286378417757, 7736033531081509042, 7999064045349501173, 10372330880965160694),
+UInt256(8986429107973022196, 14281727932279274207, 775458019832100658, 17577099619633838772),
+UInt256(5616518192483138872, 18149451994529322187, 7402190290036144767, 15597373280698537137),
+UInt256(7020647740603923591, 4240070919452101118, 4641051844117793055, 14885030582445783517),
+UInt256(8775809675754904489, 688402630887738493, 15024686842002017127, 13994602209629841492),
+UInt256(5484881047346815305, 11959466690373306318, 11696272285464954656, 15664155408659732788),
+UInt256(6856101309183519132, 1114275307684469186, 5396968319976417513, 1133450187115114369),
+UInt256(8570126636479398915, 1392844134605586482, 15969582436825297699, 6028498752321280866),
+UInt256(5356329147799624321, 17011428648624349215, 14592675041443198966, 1461968710987106589),
+UInt256(6695411434749530402, 7429227755498272807, 13629157783376610803, 11050832925588659044),
+UInt256(8369264293436913003, 63162657518065201, 12424761210793375600, 9201855138558435901),
+UInt256(5230790183398070626, 16180377725444648415, 847946729104777894, 5751159461599022439),
+UInt256(6538487729247588283, 11002100119951034710, 14894991466663136079, 16412321363853553856),
+UInt256(8173109661559485354, 9140939131511405484, 9395367296474144291, 15903715686389554416),
+UInt256(5108193538474678346, 10324772975622016331, 15095476597151115990, 7633979294779777558),
+UInt256(6385241923093347933, 3682594182672744606, 14257659728011507084, 319102081619946140),
+]
+
+private let bid_multipliers1_binary80_27: [UInt256] = [
+UInt256(7981552403866684916, 9214928746768318662, 8598702623159608047, 398877602024932674),
+UInt256(4988470252416678072, 14982702503584974972, 762503121047367125, 7166827528906664778),
+UInt256(6235587815520847591, 281634055771667099, 953128901309208906, 13570220429560718876),
+UInt256(7794484769401059488, 14187100624996747585, 15026469181918674845, 7739403500096122787),
+UInt256(4871552980875662180, 8866937890622967241, 2474014211058089922, 7142970196773770694),
+UInt256(6089441226094577725, 11083672363278709051, 7704203782250000306, 18152084782821989175),
+UInt256(7611801532618222157, 19532398816222602, 5018568709385112479, 13466733941672710661),
+UInt256(4757375957886388848, 2318050758473833078, 7748291461793083203, 15334237741186526019),
+UInt256(5946719947357986060, 2897563448092291348, 461992290386578196, 14556111158055769620),
+UInt256(7433399934197482575, 3621954310115364185, 577490362983222745, 18195138947569712025),
+UInt256(4645874958873426609, 9181250471463184471, 11890146522932983976, 4454432814589988160),
+UInt256(5807343698591783261, 16088249107756368493, 10250997135238842066, 5568041018237485200),
+UInt256(7259179623239729077, 6275253329413296904, 17425432437475940486, 16183423309651632307),
+UInt256(9073974529049661346, 12455752680194009035, 3335046473135373992, 11005907100209764576),
+UInt256(5671234080656038341, 12396531443548643550, 18225305110205466409, 6878691937631102860),
+UInt256(7089042600820047927, 1660606249153640726, 13558259350902057203, 13210050940466266479),
+UInt256(8861303251025059908, 15910815866724214620, 7724452151772795696, 11900877657155445195),
+UInt256(5538314531890662443, 720887879847858329, 14051154631712773118, 7438048535722153247),
+UInt256(6922893164863328053, 14736167905091986624, 3728885234358802686, 74188632797915751),
+UInt256(8653616456079160067, 4585151826082819568, 4661106542948503357, 9316107827852170496),
+UInt256(5408510285049475042, 559876882088068278, 2913191589342814598, 8128410401621300512),
+UInt256(6760637856311843802, 9923218139464861155, 12864861523533294056, 937140965171849832),
+UInt256(8450797320389804753, 3180650637476300636, 11469390885989229666, 1171426206464812290),
+UInt256(5281748325243627970, 13517121694491157657, 16391741340598044349, 5343827397467895585),
+UInt256(6602185406554534963, 7673030081259171264, 6654618620465391724, 11291470265262257386),
+UInt256(8252731758193168704, 4979601583146576176, 8318273275581739655, 14114337831577821732),
+UInt256(5157957348870730440, 3112250989466610110, 5198920797238587284, 15738990172377220439),
+UInt256(6447446686088413050, 3890313736833262637, 15722023033403009914, 1226993641761973932),
+UInt256(8059308357610516312, 14086264207896354105, 5817470736471598680, 10757114089057243223),
+UInt256(5037067723506572695, 8803915129935221315, 15165134256363218935, 6723196305660777015),
+UInt256(6296334654383215869, 6393207893991638740, 14344731802026635765, 3792309363648583364),
+UInt256(7870418317979019836, 12603195885916936329, 17930914752533294706, 9352072722988117109),
+UInt256(4919011448736887397, 17100369465552861014, 4289292692692227335, 10456731470294961097),
+UInt256(6148764310921109247, 7540403776658912555, 14584987902720059977, 8459228319441313468),
+UInt256(7685955388651386559, 4813818702396252790, 13619548859972687067, 15185721417729029738),
+UInt256(4803722117907116599, 9926165716638739850, 3900532019055541513, 7185232876866949635),
+UInt256(6004652647383895749, 7796021127371036908, 14099037060674202699, 13593227114511074947),
+UInt256(7505815809229869686, 14356712427641184039, 17623796325842753374, 12379847874711455780),
+UInt256(4691134880768668554, 4361259248848352120, 17932401731292802715, 3125718903267271959),
+UInt256(5863918600960835692, 14674946097915215959, 3968758090406451777, 17742206684366253660),
+UInt256(7329898251201044615, 18343682622394019949, 349261594580676818, 8342700300175653363),
+UInt256(9162372814001305769, 18317917259565137032, 5048263011653233927, 1205003338364790896),
+UInt256(5726483008750816106, 4531169259587128789, 3155164382283271204, 7670656114119076166),
+UInt256(7158103760938520132, 14887333611338686794, 8555641496281476909, 9588320142648845207),
+UInt256(8947629701173150166, 162422940463806877, 1471179833497070328, 16597086196738444413),
+UInt256(5592268563233218853, 13936572393072043010, 3225330405149362907, 10373178872961527758),
+UInt256(6990335704041523567, 3585657436057890050, 13255035043291479442, 8354787572774521794),
+UInt256(8737919630051904458, 18317129850354526275, 7345421767259573495, 1220112429113376434),
+UInt256(5461199768782440286, 16059892174898966826, 2285045595323539482, 7680099295836942128),
+UInt256(6826499710978050358, 10851493181768932724, 12079679031009200161, 376752082941401851),
+]
+
+private let bid_multipliers1_binary80_28: [UInt256] = [
+UInt256(8533124638722562948, 4340994440356390097, 15099598788761500201, 5082626122104140218),
+UInt256(5333202899201601842, 11936493562077519619, 2519720215334855769, 14705856372383557396),
+UInt256(6666503624002002303, 5697244915742123715, 16984708324450733424, 4547262410197283033),
+UInt256(8333129530002502879, 2509870126250266740, 16619199387136028876, 5684078012746603792),
+UInt256(5208205956251564299, 8486197856547498569, 1163627580105242239, 12775920794821403178),
+UInt256(6510257445314455374, 5996061302256985307, 6066220493558940703, 11358214975099366068),
+UInt256(8137821806643069217, 16718448664676007442, 2971089598521287975, 9586082700446819681),
+UInt256(5086138629151918261, 3531501387781422795, 6468617017503192888, 12908830715420344157),
+UInt256(6357673286439897826, 9026062753154166398, 3474085253451603206, 16136038394275430196),
+UInt256(7947091608049872283, 2059206404587932189, 13565978603669279816, 10946675955989511937),
+UInt256(4966932255031170176, 17427905067363315282, 10784579636506993837, 6841672472493444961),
+UInt256(6208665318788962721, 3338137260494592487, 4257352508778966488, 13163776609044194105),
+UInt256(7760831648486203401, 8784357594045628513, 710004617546320206, 16454720761305242631),
+UInt256(4850519780303877125, 17019438542346987580, 11972967932034919889, 5672514457388388741),
+UInt256(6063149725379846407, 7439240122651570763, 14966209915043649861, 11702329090162873830),
+UInt256(7578937156724808009, 4687364134887075550, 14096076375377174423, 792853307421428575),
+UInt256(4736835722953005005, 14458817630372891979, 4198361716183346110, 7413062344779474715),
+UInt256(5921044653691256257, 4238463982683951262, 636266126801794734, 42955894119567586),
+UInt256(7401305817114070321, 9909765996782326981, 10018704695357019225, 9277066904504235291),
+UInt256(4625816135696293950, 17722818794057424123, 8567533443811830967, 17327381861383616817),
+UInt256(5782270169620367438, 12930151455717004346, 6097730786337400805, 17047541308302133117),
+UInt256(7227837712025459298, 6939317282791479624, 16845535519776526815, 7474368580095502684),
+UInt256(9034797140031824122, 17897518640344125339, 2610175326011106903, 4731274706691990451),
+UInt256(5646748212519890076, 15797635168642466240, 17772260643252799478, 9874575719323575888),
+UInt256(7058435265649862596, 1300299887093531185, 3768581730356447732, 3119847612299694052),
+UInt256(8823044082062328245, 1625374858866913981, 9322413181372947569, 3899809515374617565),
+UInt256(5514402551288955153, 3321702296005515190, 8132351247571786182, 13966595993177605738),
+UInt256(6893003189111193941, 8763813888434281892, 942067022609956920, 8234872954617231365),
+UInt256(8616253986388992426, 15566453378970240269, 1177583778262446150, 10293591193271539206),
+UInt256(5385158741493120266, 14340719380283788072, 3041832870627722796, 1821808477367324100),
+UInt256(6731448426866400333, 8702527188499959282, 3802291088284653495, 2277260596709155124),
+UInt256(8414310533583000416, 15489845004052337006, 13976235897210592676, 16681633801168607617),
+UInt256(5258944083489375260, 9681153127532710629, 4123461417329232519, 1202649088875603953),
+UInt256(6573680104361719075, 12101441409415888286, 9766012790088928552, 15338369416376668653),
+UInt256(8217100130452148844, 10515115743342472454, 2984143950756384883, 726217696761284200),
+UInt256(5135687581532593027, 15795319376443821091, 15700148024504904263, 16594787124971660289),
+UInt256(6419609476915741284, 15132463202127388460, 15013499012203742425, 16131797887787187458),
+UInt256(8024511846144676606, 468834928949683960, 320129691545126416, 6329689304451820610),
+UInt256(5015319903840422878, 14128079885875716187, 200081057215704010, 3956055815282387881),
+UInt256(6269149879800528598, 8436727820489869425, 14085159376801793724, 14168441805957760660),
+UInt256(7836437349750660748, 1322537738757560974, 3771391165720078443, 17710552257447200824),
+UInt256(4897773343594162967, 10049958123578251416, 16192177533857212739, 8763252151690806563),
+UInt256(6122216679492703709, 7950761636045426367, 1793477843611964308, 6342379171186120300),
+UInt256(7652770849365879636, 14550138063484170862, 16076905359797119097, 7927973963982650375),
+UInt256(4782981780853674772, 18317208326532382597, 5436379831445811531, 16484198773557626245),
+UInt256(5978727226067093466, 4449766334455926630, 11407160807734652318, 15993562448519644902),
+UInt256(7473409032583866832, 14785579954924684096, 5035578972813539590, 10768581023794780319),
+UInt256(4670880645364916770, 9240987471827927560, 3147236858008462244, 2118677121444349796),
+UInt256(5838600806706145963, 2327862302930133642, 3934046072510577805, 2648346401805437244),
+UInt256(7298251008382682453, 16744885933944830764, 14140929627492998064, 7922119020684184459),
+]
+
+private let bid_multipliers1_binary80_29: [UInt256] = [
+UInt256(9122813760478353067, 7096049362148874743, 17676162034366247580, 9902648775855230574),
+UInt256(5701758600298970667, 2129187842129352762, 17965130299119986593, 15412527521764294917),
+UInt256(7127198250373713333, 16496542857943854665, 13233040837045207434, 5430601346923204934),
+UInt256(8908997812967141667, 6785620517147654620, 2706242991024345580, 16011623720508781975),
+UInt256(5568123633104463542, 1935169814003590185, 10914773906244991796, 783892788463212927),
+UInt256(6960154541380579427, 11642334304359263539, 18255153401233627649, 979865985579016158),
+UInt256(8700193176725724284, 9941231862021691520, 18207255733114646657, 5836518500401158102),
+UInt256(5437620735453577677, 15436641950618333008, 11379534833196654160, 15177039108819193574),
+UInt256(6797025919316972097, 5460744382990752548, 14224418541495817701, 524554812314440351),
+UInt256(8496282399146215121, 11437616497165828589, 17780523176869772126, 5267379533820438343),
+UInt256(5310176499466384451, 230981283087561012, 13418669994757301530, 17127170263919937677),
+UInt256(6637720624332980563, 14123784659141614977, 16773337493446626913, 12185590793045146288),
+UInt256(8297150780416225704, 13043044805499630818, 7131613811526119930, 1396930436024269147),
+UInt256(5185719237760141065, 8151903003437269261, 9068944650631212860, 5484767540942556121),
+UInt256(6482149047200176331, 14801564772723974480, 15947866831716403979, 6855959426178195151),
+UInt256(8102686309000220414, 13890269947477580197, 1488089465935953358, 3958263264295356035),
+UInt256(5064178943125137759, 4069732698746099719, 3235898925423664800, 16308972595466761234),
+UInt256(6330223678906422199, 475479855005236744, 17879931712061744713, 1939471670623899927),
+UInt256(7912779598633027748, 14429407874038709643, 3903170566367629275, 7036025606707262812),
+UInt256(4945487249145642342, 18241751958128969335, 133638594766074345, 2091672994978345306),
+UInt256(6181859061432052928, 13578817910806435860, 14002106298739756643, 7226277262150319536),
+UInt256(7727323826790066160, 16973522388508044825, 17502632873424695804, 4421160559260511516),
+UInt256(4829577391743791350, 10608451492817528016, 4021616518249353021, 11986597386392595506),
+UInt256(6036971739679739188, 4037192329167134212, 5027020647811691277, 1148188677708580670),
+UInt256(7546214674599673985, 5046490411458917765, 6283775809764614096, 6046921865563113741),
+UInt256(4716384171624796240, 14683271553230293363, 6233202890316577762, 3779326165976946088),
+UInt256(5895480214530995300, 18354089441537866704, 3179817594468334298, 13947529744325958418),
+UInt256(7369350268163744126, 4495867728212781764, 3974771993085417873, 8211040143552672215),
+UInt256(9211687835204680157, 14843206697120753013, 4968464991356772341, 14875486197868228173),
+UInt256(5757304897002925098, 11582847194914164585, 5411133628811676665, 11603021882881336560),
+UInt256(7196631121253656373, 5255186956787929923, 11375603054441983736, 668719298319506988),
+UInt256(8995788901567070466, 11180669714412300308, 9607817799625091766, 835899122899383735),
+UInt256(5622368063479419041, 11599604589935075596, 15228258161620458161, 14357495007094278546),
+UInt256(7027960079349273802, 664447682136680784, 588578628316021086, 4111810703585684471),
+UInt256(8784950099186592252, 10053931639525626788, 735723285395026357, 14363135416336881397),
+UInt256(5490593811991620157, 15507079311558292550, 9683199090226667281, 11282802644424244825),
+UInt256(6863242264989525197, 5548791084165701976, 2880626825928558294, 268445250248142319),
+UInt256(8579052831236906496, 11547674873634515374, 3600783532410697867, 9558928599664953707),
+UInt256(5361908019523066560, 7217296796021572108, 16085547763038849879, 3668487365576902115),
+UInt256(6702385024403833200, 9021620995026965136, 1660190630089010732, 18420667262253291356),
+UInt256(8377981280504791500, 11277026243783706420, 2075238287611263416, 4579090004107062578),
+UInt256(5236238300315494687, 16271513439219592320, 10520395966611815443, 2861931252566914112),
+UInt256(6545297875394368359, 15727705780597102496, 13150494958264769303, 17412472120990806351),
+UInt256(8181622344242960449, 15047946207318990216, 16438118697830961629, 17153904132811120035),
+UInt256(5113513965151850281, 2487437351933287029, 10273824186144351018, 13027033092220643974),
+UInt256(6391892456439812851, 7720982708343996690, 17453966251107826677, 7060419328421029160),
+UInt256(7989865570549766064, 5039542367002607959, 12594085777030007538, 13437210178953674353),
+UInt256(4993665981593603790, 3149713979376629974, 14788832638284836567, 13009942380273434375),
+UInt256(6242082476992004737, 13160514511075563276, 9262668761001269901, 11650741956914405065),
+UInt256(7802603096240005922, 2615585083562290383, 11578335951251587377, 728369390860842619),
+]
+
+private let bid_multipliers1_binary80_30: [UInt256] = [
+UInt256(4876626935150003701, 6246426695653819393, 14153988997173323966, 11984445915356496397),
+UInt256(6095783668937504626, 12419719387994662146, 3857428191184491246, 5757185357340844688),
+UInt256(7619729586171880783, 6301277198138551874, 14045157275835389865, 16419853733530831668),
+UInt256(4762330991357425489, 10855827276477676777, 13389909315824506570, 3344879555815687937),
+UInt256(5952913739196781861, 18181470114024483876, 2902328589498469500, 13404471481624385729),
+UInt256(7441142173995977327, 8891779587248441133, 3627910736873086875, 16755589352030482161),
+UInt256(4650713858747485829, 12474891269671357564, 4573287219759373249, 8166400335805357399),
+UInt256(5813392323434357287, 1758556031807033243, 5716609024699216561, 14819686438184084652),
+UInt256(7266740404292946608, 16033253095040955266, 2534075262446632798, 4689549992447942103),
+UInt256(9083425505366183261, 1594822295091642466, 12390966114913066805, 15085309527414703437),
+UInt256(5677140940853864538, 3302606943645970493, 12356039840248054657, 11734161463847883600),
+UInt256(7096426176067330672, 13351630716412238925, 1609991745027904610, 832643774527690788),
+UInt256(8870532720084163340, 16689538395515298656, 6624175699712268666, 10264176755014389293),
+UInt256(5544082950052602088, 1207589460342285852, 4140109812320167916, 11026796490311381212),
+UInt256(6930103687565752610, 1509486825427857315, 5175137265400209895, 13783495612889226515),
+UInt256(8662629609457190762, 11110230568639597452, 1857235563322874465, 12617683497684145240),
+UInt256(5414143505910744226, 11555580123827136311, 10384144263931572349, 968523158411508919),
+UInt256(6767679382388430283, 5221103117929144581, 8368494311487077532, 5822339966441774053),
+UInt256(8459599227985537854, 1914692878984042822, 15072303907786234819, 7277924958052217566),
+UInt256(5287249517490961158, 15031741104647190476, 4808503923939008858, 2242860089568942027),
+UInt256(6609061896863701448, 9566304343954212287, 6010629904923761072, 12026947148815953341),
+UInt256(8261327371079626810, 11957880429942765359, 2901601362727313436, 15033683936019941677),
+UInt256(5163329606924766756, 12085361287141616253, 8731029879345652754, 172680423157687740),
+UInt256(6454162008655958445, 15106701608927020316, 15525473367609453846, 9439222565801885483),
+UInt256(8067702510819948057, 5048318955876611684, 960097635802265692, 2575656170397581046),
+UInt256(5042314069262467535, 14684414393491352062, 9823433059231191865, 10833157143353263962),
+UInt256(6302892586578084419, 13743831973436802174, 3055919287184214023, 18153132447618967856),
+UInt256(7878615733222605524, 12568103948368614813, 13043271145835043337, 18079729541096321916),
+UInt256(4924134833264128452, 17078437004585160066, 10457887475360596038, 4382301935544119342),
+UInt256(6155168541580160566, 2901302182021898467, 3848987307345969239, 14701249456284924985),
+UInt256(7693960676975200707, 12849999764382148892, 199548115755073645, 13764875801928768327),
+UInt256(4808725423109500442, 5725406843525149105, 9348089609201696836, 10908890385419174157),
+UInt256(6010906778886875552, 16380130591261212189, 16296798029929508949, 13636112981773967696),
+UInt256(7513633473608594441, 2028419165366963621, 6535939482129722475, 3210083171935295907),
+UInt256(4696020921005371525, 12796977024422822023, 6390805185544770498, 18147203046955417606),
+UInt256(5870026151256714407, 2161163225246363817, 3376820463503575219, 13460631771839496200),
+UInt256(7337532689070893008, 16536512086840118483, 8832711597806856928, 12214103696371982345),
+UInt256(9171915861338616261, 2223896034840596488, 6429203478831183256, 15267629620464977932),
+UInt256(5732447413336635163, 3695778030989066757, 4018252174269489535, 9542268512790611207),
+UInt256(7165559266670793954, 8036520308945542, 9634501236264249823, 7316149622560876105),
+UInt256(8956949083338492442, 9233417687240957736, 2819754508475536471, 4533501009773707227),
+UInt256(5598093177086557776, 10382572072952986489, 1762346567797210294, 9750967158749648873),
+UInt256(6997616471358197220, 12978215091191233111, 6814619228173900772, 2965336911582285284),
+UInt256(8747020589197746525, 16222768863989041389, 3906588016789988061, 3706671139477856604),
+UInt256(5466887868248591578, 12445073549206844820, 4747460519707436490, 4622512471387354330),
+UInt256(6833609835310739473, 6332969899653780217, 5934325649634295612, 15001512626088968720),
+UInt256(8542012294138424341, 12527898392994613175, 12029593080470257420, 305146708901659284),
+UInt256(5338757683836515213, 10135779504835327186, 14436024702934992743, 9414088729918312861),
+UInt256(6673447104795644016, 17281410399471546887, 8821658841813965121, 7155924893970503172),
+UInt256(8341808880994555021, 3155018925629881993, 6415387533840068497, 13556592135890516869),
+]
+
+private let bid_multipliers1_binary80_31: [UInt256] = [
+UInt256(5213630550621596888, 4277729837732370197, 15538832254718512571, 1555341057290491187),
+UInt256(6517038188276996110, 5347162297165462747, 5588482263115977001, 15779234376895277696),
+UInt256(8146297735346245137, 15907324908311604242, 2373916810467583348, 5888984915836933408),
+UInt256(5091436084591403211, 3024549040053670795, 6095384024969627496, 12903987609252859188),
+UInt256(6364295105739254013, 17615744355349252206, 3007544012784646466, 16129984511566073985),
+UInt256(7955368882174067517, 8184622388904401545, 12982802052835583891, 10939108602602816673),
+UInt256(4972105551358792198, 7421232002278944918, 1196722255381158076, 4531099867413066469),
+UInt256(6215131939198490248, 53167965993905339, 10719274856081223403, 5663874834266333086),
+UInt256(7768914923998112810, 66459957492381674, 8787407551674141350, 2468157524405528453),
+UInt256(4855571827498820506, 4653223491860126450, 10103815738223726247, 15377656508035618995),
+UInt256(6069464784373525632, 15039901401679933871, 3406397635924882001, 14610384616617135840),
+UInt256(7586830980466907041, 353132678390365722, 18093055100188266214, 4427922715489256088),
+UInt256(4741769362791816900, 11749922970062448336, 15919845456045054287, 16602509752462948767),
+UInt256(5927211703489771125, 14687403712578060421, 1453062746346766243, 16141451172151298055),
+UInt256(7409014629362213907, 4524196585440411814, 6428014451360845708, 15565127946761734664),
+UInt256(4630634143351383692, 521779856686563431, 17852567087382692280, 504832929871308357),
+UInt256(5788292679189229615, 652224820858204289, 17704022840800977446, 631041162339135447),
+UInt256(7235365848986537018, 14650339081354919074, 8294970495719058095, 10012173489778695116),
+UInt256(9044207311233171273, 9089551814838873035, 1145341082794046811, 7903530843795980991),
+UInt256(5652629569520732045, 17210184930342765406, 16856739241242136921, 2633863768158794168),
+UInt256(7065786961900915057, 7677673107646293046, 11847552014697895343, 7904015728625880613),
+UInt256(8832233702376143821, 14208777402985254212, 5586067981517593371, 5268333642354962863),
+UInt256(5520146063985089888, 11186328886079477834, 12714664525303271665, 986865517258157837),
+UInt256(6900182579981362360, 13982911107599347293, 6669958619774313773, 5845267915000085201),
+UInt256(8625228224976702950, 17478638884499184116, 12949134293145280120, 11918270912177494405),
+UInt256(5390767640610439344, 6312463284384602168, 17316580970070575883, 7448919320110934003),
+UInt256(6738459550763049180, 7890579105480752711, 3198982138878668238, 4699463131711279600),
+UInt256(8423074438453811475, 9863223881850940888, 17833785728880499009, 15097700951493875308),
+UInt256(5264421524033632172, 3858671916943144103, 11146116080550311881, 2518534067042590211),
+UInt256(6580526905042040215, 4823339896178930129, 9320959082260501947, 7759853602230625668),
+UInt256(8225658631302550269, 1417488851796274757, 16262884871253015338, 5088130984360894181),
+UInt256(5141036644564093918, 3191773541586365675, 12470146053746828538, 7791767883652946767),
+UInt256(6426295805705117397, 13213088963837732902, 10975996548756147769, 516337817711407651),
+UInt256(8032869757131396747, 2681303149515002416, 4496623649090408903, 5257108290566647468),
+UInt256(5020543598207122966, 17816715532942734174, 2810389780681505564, 10203221709245236523),
+UInt256(6275679497758903708, 13047522379323641909, 12736359262706657763, 12754027136556545654),
+UInt256(7844599372198629635, 16309402974154552387, 2085391023101158492, 11330847902268294164),
+UInt256(4902874607624143522, 7887533849632901289, 17444270453934081721, 16305151975772459660),
+UInt256(6128593259530179403, 636045275186350804, 7970280012135438440, 6546381914433410863),
+UInt256(7660741574412724253, 14630114649265102217, 9962850015169298050, 8182977393041763579),
+UInt256(4787963484007952658, 11449664665004382837, 17755996305549281041, 9726046889078490141),
+UInt256(5984954355009940823, 5088708794400702739, 8359937326654437589, 16769244629775500580),
+UInt256(7481192943762426029, 1749199974573490520, 5838235639890659083, 7126497731937212013),
+UInt256(4675745589851516268, 3399092993322125527, 3648897274931661927, 2148218073247063557),
+UInt256(5844681987314395335, 4248866241652656908, 18396179648946741120, 16520330646840993158),
+UInt256(7305852484142994169, 699396783638433232, 4548480487473874785, 2203669234841689831),
+UInt256(9132315605178742711, 5485931997975429444, 5685600609342343481, 7366272561979500192),
+UInt256(5707697253236714194, 10346236526375725258, 12776872417693740483, 16133135397305657380),
+UInt256(7134621566545892743, 3709423621114880765, 6747718485262399796, 15554733228204683821),
+UInt256(8918276958182365929, 25093507966213052, 13046334125005387650, 996672461546303161),
+]
+
+private let bid_multipliers1_binary80_32: [UInt256] = [
+UInt256(5573923098863978705, 11544898488547352917, 17377330864983143089, 5234606306893827380),
+UInt256(6967403873579973382, 596065055402027435, 7886605525946765149, 11154943902044672128),
+UInt256(8709254841974966727, 9968453356107310102, 5246570889006068533, 108621822273676448),
+UInt256(5443284276234354204, 13147812375208150669, 17114164860910956545, 2373731648134741732),
+UInt256(6804105345292942755, 16434765469010188337, 7557648020856531969, 7578850578595815069),
+UInt256(8505131681616178444, 15931770817835347517, 14058746044498052865, 14085249241672156741),
+UInt256(5315707301010111528, 733984724292316390, 11092559287024976993, 1885751748404016107),
+UInt256(6644634126262639410, 917480905365395488, 4642327071926445433, 6968875703932408038),
+UInt256(8305792657828299262, 10370223168561520168, 5802908839908056791, 13322780648342897951),
+UInt256(5191120411142687039, 1869703461923562201, 3626818024942535494, 15244266932855393076),
+UInt256(6488900513928358798, 16172187382686616463, 9145208549605557272, 9831961629214465536),
+UInt256(8111125642410448498, 10991862191503494771, 6819824668579558686, 12289952036518081920),
+UInt256(5069453526506530311, 11481599888117072136, 1956547408648530227, 3069534004396413296),
+UInt256(6336816908133162889, 9740313841718952266, 2445684260810662783, 17671975560777680332),
+UInt256(7921021135166453611, 16787078320576078236, 12280477362868104287, 17478283432544712511),
+UInt256(4950638209479033507, 8186080941146354945, 16898670388647340987, 17841456172981527176),
+UInt256(6188297761848791884, 5620915158005555778, 7288279930527012522, 17690134197799521066),
+UInt256(7735372202310989855, 7026143947506944722, 18333721950013541461, 12889295710394625524),
+UInt256(4834607626444368659, 11308868994832922307, 16070262237185851317, 10361652828210334905),
+UInt256(6043259533055460824, 9524400225113764980, 15476141778054926242, 17563752053690306535),
+UInt256(7554074416319326030, 11905500281392206226, 898433148859106187, 12731318030258107360),
+UInt256(4721296510199578769, 2829251657442740987, 5173206736464329271, 5651230759697623148),
+UInt256(5901620637749473461, 8148250590230814138, 1854822402153023685, 2452352431194641031),
+UInt256(7377025797186841826, 14796999256215905576, 11541900039546055414, 7677126557420689193),
+UInt256(9221282246483552283, 9272877033415106162, 14427375049432569268, 373036159921085683),
+UInt256(5763301404052220177, 3489705136670747399, 13628795424322743696, 9456519636805454360),
+UInt256(7204126755065275221, 8973817439265822153, 12424308261976041716, 11820649546006817950),
+UInt256(9005158443831594026, 15828957817509665596, 1695327272187888433, 14775811932508522437),
+UInt256(5628224027394746266, 14504784654370928901, 10282951581972206079, 2317353430176744667),
+UInt256(7035280034243432833, 8907608781108885318, 17465375495892645502, 16731749843003094546),
+UInt256(8794100042804291041, 15746196994813494552, 12608347333011031070, 11691315266899092375),
+UInt256(5496312526752681901, 2923844094117352239, 7880217083131894419, 2695386023384544830),
+UInt256(6870390658440852376, 8266491136074078203, 5238585335487480119, 17204290584512844750),
+UInt256(8587988323051065470, 10333113920092597754, 1936545650931962245, 16893677212213668033),
+UInt256(5367492701906915919, 1846510181630485692, 5822027050259864307, 12864391266847236473),
+UInt256(6709365877383644898, 16143195782320270827, 7277533812824830384, 11468803065131657687),
+UInt256(8386707346729556123, 10955622691045562726, 4485231247603650076, 14336003831414572109),
+UInt256(5241692091705972577, 4541421172689782751, 16638327585034445009, 18183374431488883376),
+UInt256(6552115114632465721, 10288462484289616343, 16186223462865668358, 8894159984078940508),
+UInt256(8190143893290582151, 17472264123789408333, 15621093310154697544, 1894327943243899827),
+UInt256(5118839933306613844, 17837694105009462064, 12069026328060379917, 1183954964527437392),
+UInt256(6398549916633267306, 3850373557552275964, 15086282910075474896, 6091629724086684644),
+UInt256(7998187395791584132, 14036338983795120764, 411109563884792004, 7614537155108355805),
+UInt256(4998867122369740082, 17996083901726726285, 9480315514282770810, 13982457758797498186),
+UInt256(6248583902962175103, 13271732840303632048, 16462080411280851417, 8254700161642096924),
+UInt256(7810729878702718879, 11977980031952152157, 2130856440391512655, 14930061220480009059),
+UInt256(4881706174189199299, 14403766547611176954, 3637628284458389361, 16248817290441087518),
+UInt256(6102132717736499124, 13393022166086583288, 13770407392427762510, 6475963557769195686),
+UInt256(7627665897170623905, 16741277707608229110, 17213009240534703137, 17318326484066270415),
+UInt256(4767291185731639941, 3545769539614061338, 6146444756906801557, 3906425024900337154),
+]
+
+private let bid_multipliers1_binary80_33: [UInt256] = [
+UInt256(5959113982164549926, 9043897942944964576, 16906427982988277754, 9494717299552809346),
+UInt256(7448892477705687408, 2081500391826429913, 2686290905025795577, 2645024587586235874),
+UInt256(4655557798566054630, 1300937744891518695, 13208146861709591995, 13182355413309867182),
+UInt256(5819447248207568287, 10849544217969174177, 11898497558709602090, 11866258248209946073),
+UInt256(7274309060259460359, 8950244254034079818, 1038063893104838901, 5609450773407656783),
+UInt256(9092886325324325449, 6576119299115211868, 10520951903235824434, 11623499485186958883),
+UInt256(5683053953327703405, 15639289608015477177, 15798966976377166079, 11876373196669237206),
+UInt256(7103817441659629257, 5714053954737182760, 5913650665189293887, 10233780477409158603),
+UInt256(8879771802074536571, 11754253461848866354, 7392063331486617359, 8180539578334060350),
+UInt256(5549857376296585357, 5040565404441847519, 9231725600606523753, 12030366264099869575),
+UInt256(6937321720370731696, 10912392773979697303, 6927970982330766788, 1202899774842673256),
+UInt256(8671652150463414620, 13640490967474621629, 4048277709486070581, 1503624718553341570),
+UInt256(5419782594039634137, 17748678891526414326, 4836016577642488065, 3245608458309532434),
+UInt256(6774728242549542672, 8350790559125854195, 15268392758907885889, 8668696591314303446),
+UInt256(8468410303186928340, 10438488198907317744, 14473804930207469457, 15447556757570267211),
+UInt256(5292756439491830212, 15747427161171849398, 9046128081379668411, 2737193945840335151),
+UInt256(6615945549364787766, 1237539877755260132, 2084288064869809705, 17256550487582582651),
+UInt256(8269931936705984707, 10770296884048850973, 2605360081087262132, 7735630054196064602),
+UInt256(5168707460441240442, 4425592543316837906, 3934193059893232784, 14058140820727316184),
+UInt256(6460884325551550552, 14755362716000823190, 14141113361721316788, 17572676025909145230),
+UInt256(8076105406939438190, 18444203395001028988, 8453019665296870178, 3519100958676879922),
+UInt256(5047565879337148869, 6915941103448255213, 14506509327665319669, 6811124117600437855),
+UInt256(6309457349171436086, 13256612397737706921, 4298078604299485874, 13125591165427935223),
+UInt256(7886821686464295108, 7347393460317357843, 9984284273801745247, 7183616919930143220),
+UInt256(4929263554040184442, 13815492949553124460, 3934334661912396827, 11407289602597421369),
+UInt256(6161579442550230553, 8045994150086629767, 4917918327390496034, 9647425984819388807),
+UInt256(7701974303187788191, 14669178706035675113, 1535711890810732139, 2835910444169460201),
+UInt256(4813733939492367619, 16085765718913378801, 12489034977825177346, 17913345092101770290),
+UInt256(6017167424365459524, 15495521130214335598, 1776235666999307971, 13168309328272437054),
+UInt256(7521459280456824406, 922657339058367881, 11443666620603910772, 11848700641913158413),
+UInt256(4700912050285515253, 14411718892193643638, 234762610236362376, 16628809938050499816),
+UInt256(5876140062856894067, 4179590559959890835, 9516825299650228779, 2339268348853573154),
+UInt256(7345175078571117584, 612802181522475640, 7284345606135398069, 16759143491349130155),
+UInt256(9181468848213896980, 766002726903094550, 9105432007669247587, 7113871308904248982),
+UInt256(5738418030133685612, 9702123741169209902, 1079208986365891838, 2140326558851461662),
+UInt256(7173022537667107015, 12127654676461512377, 10572383269812140605, 11898780235419102885),
+UInt256(8966278172083883769, 10547882327149502567, 17827165105692563661, 1038417238991714894),
+UInt256(5603923857552427355, 18121641500536908864, 18059507218698934144, 2954853783583515761),
+UInt256(7004904821940534194, 18040365857243748177, 4127639949664116064, 3693567229479394701),
+UInt256(8756131027425667743, 13327085284699909413, 9771235955507532984, 4616959036849243376),
+UInt256(5472581892141042339, 15246957330578525239, 8412865481405902067, 2885599398030777110),
+UInt256(6840727365176302924, 14447010644795768645, 5904395833329989679, 17442057302820635100),
+UInt256(8550909206470378655, 18058763305994710806, 11992180810089875003, 17190885610098405971),
+UInt256(5344318254043986659, 18204256093887776110, 2883426987878783973, 8438460497097809780),
+UInt256(6680397817554983324, 18143634098932332233, 12827655771703255774, 15159761639799650129),
+UInt256(8350497271943729156, 4232798549955863676, 2199511659346906006, 9726330012894786853),
+UInt256(5219060794964830722, 11868871130577190605, 10598066823946592062, 1467270239631853879),
+UInt256(6523825993706038403, 5612716876366712448, 17859269548360627981, 11057459836394593157),
+UInt256(8154782492132548004, 2404210077031002657, 3877342861741233360, 18433510813920629350),
+UInt256(5096739057582842502, 10726003334999152468, 13952554334656740610, 11520944258700393344),
+]
+
+private let bid_multipliers1_binary80_34: [UInt256] = [
+UInt256(6370923821978553128, 4184132131894164777, 17440692918320925763, 5177808286520715872),
+UInt256(7963654777473191410, 5230165164867705972, 7965808092618993492, 1860574339723506935),
+UInt256(4977284235920744631, 7880539246469704136, 14202002094741646740, 10386230999181967643),
+UInt256(6221605294900930789, 5238988039659742266, 17752502618427058425, 12982788748977459553),
+UInt256(7777006618626163486, 11160421068002065737, 12967256236179047224, 2393427880939660730),
+UInt256(4860629136641352179, 2363577149073903182, 1187006119970822659, 1495892425587287956),
+UInt256(6075786420801690223, 16789529491624542689, 10707129686818304131, 15704923587266273657),
+UInt256(7594733026002112779, 16375225846103290457, 17995598126950268068, 15019468465655454167),
+UInt256(4746708141251320487, 7928673144600862584, 4329719801702835687, 163795754179883047),
+UInt256(5933385176564150609, 5299155412323690326, 5412149752128544608, 14039802748007017520),
+UInt256(7416731470705188261, 11235630283832000811, 15988559227015456568, 17549753435008771900),
+UInt256(4635457169190742663, 9328111936608694459, 7687006507670966403, 10968595896880482438),
+UInt256(5794321461488428329, 7048453902333480170, 4997072116161320100, 9099058852673215143),
+UInt256(7242901826860535411, 13422253396344238116, 15469712182056425933, 11373823565841518929),
+UInt256(9053627283575669264, 12166130727002909742, 890396153860980801, 382221402019734949),
+UInt256(5658517052234793290, 7603831704376818588, 14391555651445276712, 11768103422330804103),
+UInt256(7073146315293491613, 281417593616247427, 17989444564306595890, 14710129277913505129),
+UInt256(8841432894116864516, 4963458010447697188, 17875119686955856959, 9164289560537105603),
+UInt256(5525895558823040322, 12325533293384586551, 1948577767492634791, 12645210002976772858),
+UInt256(6907369448528800403, 6183544579875957380, 16270780264647957201, 11194826485293578169),
+UInt256(8634211810661000504, 3117744706417558822, 1891731257100394886, 158475051334808999),
+UInt256(5396382381663125315, 1948590441510974263, 15017390090969910515, 13934104962366419336),
+UInt256(6745477977078906643, 16270796107170881541, 14160051595285000240, 12805945184530636266),
+UInt256(8431847471348633304, 15726809115536214023, 3865006438824086588, 16007431480663295333),
+UInt256(5269904669592895815, 9829255697210133764, 9333158051906135974, 781272638559783775),
+UInt256(6587380836991119769, 7674883603085279301, 11666447564882669967, 10199962835054505527),
+UInt256(8234226046238899711, 14205290522283987031, 748001400821173747, 8138267525390744004),
+UInt256(5146391278899312319, 15795835604068573750, 7385029903154315448, 2780574194155521051),
+UInt256(6432989098624140399, 15133108486658329284, 7915342088118502, 3475717742694401313),
+UInt256(8041236373280175499, 14304699589895523701, 9894177610148127, 13568019215222777450),
+UInt256(5025772733300109687, 6634594234471008361, 2312026870220036531, 15397541037155317762),
+UInt256(6282215916625137109, 3681556774661372547, 7501719606202433568, 14635240278016759299),
+UInt256(7852769895781421386, 9213631986754103588, 4765463489325654056, 18294050347520949123),
+UInt256(4907981184863388366, 10370206010148702646, 12201786717683309593, 11433781467200593202),
+UInt256(6134976481079235458, 3739385475831102500, 6028861360249361184, 457168778718577791),
+UInt256(7668720601349044322, 13897603881643653933, 7536076700311701480, 571460973398222238),
+UInt256(4792950375843152701, 13297688444454671612, 7015890946908507377, 357163108373888899),
+UInt256(5991187969803940877, 2787052500286175803, 8769863683635634221, 5058139903894749028),
+UInt256(7488984962254926096, 8095501643785107658, 6350643586117154872, 10934360898295824189),
+UInt256(4680615601409328810, 5059688527365692286, 8580838259750609699, 6833975561434890118),
+UInt256(5850769501761661012, 15547982696061891166, 1502675787833486316, 3930783433366224743),
+UInt256(7313461877202076266, 988234296367812341, 11101716771646633703, 4913479291707780929),
+UInt256(9141827346502595332, 10458664907314541235, 42087909276128417, 1530163096207338257),
+UInt256(5713642091564122082, 15760037603926364079, 16167206007793437924, 12485566981198056171),
+UInt256(7142052614455152603, 10476674968053179291, 15597321491314409501, 15606958726497570214),
+UInt256(8927565768068940754, 8484157691639086210, 14884965845715623973, 5673640352839799055),
+UInt256(5579728605043087971, 9914284575701816785, 13914789671999652887, 5851868229738568361),
+UInt256(6974660756303859964, 7781169701199883078, 3558429034717402397, 2703149268745822548),
+UInt256(8718325945379824955, 9726462126499853847, 13671408330251528804, 7990622604359666089),
+UInt256(5448953715862390597, 3773195819848714702, 15462159234048287358, 14217511164579567114),
+]
+
+private let bid_multipliers1_binary80_35: [UInt256] = [
+UInt256(6811192144827988246, 9328180793238281282, 10104327005705583390, 8548516918869683084),
+UInt256(8513990181034985308, 2436853954693075795, 3407036720277203430, 1462274111732328047),
+UInt256(5321243863146865817, 10746405758537948179, 18270299014669109807, 14748979375114868741),
+UInt256(6651554828933582271, 18044693216599823128, 18226187749908999355, 13824538200466198023),
+UInt256(8314443536166977839, 17944180502322391007, 4335990613676697578, 12668986732155359624),
+UInt256(5196527210104361149, 18132641841592576235, 9627523161189017842, 12529802726024487669),
+UInt256(6495659012630451437, 8830744246708556582, 7422717933058884399, 6438881370675833778),
+UInt256(8119573765788064296, 15650116326813083632, 55025379468829691, 3436915694917404319),
+UInt256(5074733603617540185, 9781322704258177270, 34390862168018556, 18288973373819235363),
+UInt256(6343417004521925231, 16838339398750109491, 9266360614564799004, 4414472643564492588),
+UInt256(7929271255652406539, 16436238230010248960, 6971264749778610851, 5518090804455615735),
+UInt256(4955794534782754087, 7966805884542711648, 4357040468611631782, 1142963743571065883),
+UInt256(6194743168478442609, 5346821337251001656, 5446300585764539727, 10652076716318608161),
+UInt256(7743428960598053261, 11295212689991139974, 6807875732205674659, 8703409876970872297),
+UInt256(4839643100373783288, 9365350940458156435, 18089980387910710374, 3133788163893101234),
+UInt256(6049553875467229110, 11706688675572695544, 18000789466461000063, 13140607241721152350),
+UInt256(7561942344334036388, 5409988807611093623, 4054242759366698463, 11814073033724052534),
+UInt256(4726213965208772742, 12604615041611709322, 9451430752245268395, 14301324673718614690),
+UInt256(5907767456510965928, 6532396765159860845, 2590916403451809686, 13264969823720880458),
+UInt256(7384709320638707410, 8165495956449826056, 7850331522742150012, 7357840242796324765),
+UInt256(4615443325399192131, 9715120991208529189, 4906457201713843757, 13822022188602478786),
+UInt256(5769304156748990164, 7532215220583273582, 10744757520569692601, 3442469680470934770),
+UInt256(7211630195936237705, 9415269025729091978, 4207574863857339943, 8914773119016056367),
+UInt256(9014537744920297131, 16380772300588752876, 14482840616676450737, 6531780380342682555),
+UInt256(5634086090575185707, 7932139678654276595, 18275147422277557518, 15611577783782646357),
+UInt256(7042607613218982134, 5303488579890457840, 18232248259419558994, 10291100192873532138),
+UInt256(8803259516523727667, 15852732761717848109, 4343566250564897127, 3640503204237139364),
+UInt256(5502037197827329792, 7602114966859961116, 5020571915816754656, 9192843530289293959),
+UInt256(6877546497284162240, 9502643708574951395, 6275714894770943320, 11491054412861617448),
+UInt256(8596933121605202800, 11878304635718689244, 3232957600036291246, 14363818016077021810),
+UInt256(5373083201003251750, 7423940397324180777, 11243970536877457837, 4365700241620750728),
+UInt256(6716354001254064688, 56553459800450164, 219905115814658584, 10068811320453326313),
+UInt256(8395442501567580860, 70691824750562705, 274881394768323230, 12586014150566657892),
+UInt256(5247151563479738037, 9267554427323877498, 11701015917798671779, 3254572825676773279),
+UInt256(6558939454349672546, 16196129052582234777, 5402897860393563915, 17903274087378130310),
+UInt256(8198674317937090683, 11021789278873017663, 11365308343919342798, 17767406590795274983),
+UInt256(5124171448710681677, 4582775290081942087, 14020846742590671105, 6492943100819658961),
+UInt256(6405214310888352096, 10340155131029815513, 12914372409810950977, 12727864894451961605),
+UInt256(8006517888610440120, 12925193913787269392, 2307907456981525010, 2074773062782788294),
+UInt256(5004073680381525075, 8078246196117043370, 1442442160613453131, 5908419182666630588),
+UInt256(6255092100476906344, 5486121726718916308, 11026424737621592222, 2773837959905900331),
+UInt256(7818865125596132930, 6857652158398645385, 13783030922026990277, 12690669486737151221),
+UInt256(4886790703497583081, 8897718617426541270, 1696865298625787067, 10237511438424413466),
+UInt256(6108488379371978851, 15733834290210564491, 11344453660137009642, 8185203279603128928),
+UInt256(7635610474214973564, 15055606844335817710, 9568881056743874149, 1008132062649135352),
+UInt256(4772256546384358478, 186382240855110261, 1368864642037533439, 2935925548369403547),
+UInt256(5965320682980448097, 9456349837923663634, 6322766820974304702, 17504964990743918146),
+UInt256(7456650853725560121, 16432123315831967446, 17126830563072656686, 12657834201575121874),
+UInt256(4660406783578475076, 3352548044753897798, 6092583083493022525, 3299460357557063267),
+UInt256(5825508479473093845, 4190685055942372247, 16839100891221053964, 8736011465373716988),
+]
+
+private let bid_multipliers1_binary80_36: [UInt256] = [
+UInt256(7281885599341367306, 9850042338355353213, 16437190095598929551, 10920014331717146235),
+UInt256(9102356999176709133, 3089180886089415709, 6711429564216498227, 9038331896219044890),
+UInt256(5688973124485443208, 4236581063019578770, 6500486486849005344, 3343114425923209104),
+UInt256(7111216405606804010, 5295726328774473462, 17348980145416032488, 4178893032404011380),
+UInt256(8889020507008505012, 15843029947822867636, 12462853144915264802, 5223616290505014225),
+UInt256(5555637816880315633, 678521680534516464, 17012655252426816309, 7876446199993021795),
+UInt256(6944547271100394541, 5459838119095533485, 2819074991823968770, 14457243768418665147),
+UInt256(8680684088875493176, 11436483667296804760, 8135529758207348867, 8848182673668555626),
+UInt256(5425427555547183235, 7147802292060502975, 5084706098879593042, 3224271161829153314),
+UInt256(6781784444433979044, 4323066846648240815, 1744196605172103398, 13253710989141217451),
+UInt256(8477230555542473805, 5403833558310301018, 16015303811747292960, 7343766699571746006),
+UInt256(5298269097214046128, 5683238983157632088, 14621250900769446004, 4589854187232341254),
+UInt256(6622836371517557660, 7104048728947040110, 18276563625961807505, 5737317734040426567),
+UInt256(8278545464396947075, 8880060911183800138, 13622332495597483573, 11783333185977921113),
+UInt256(5174090915248091922, 3244195060276181134, 13125643828175815137, 9670426250449894648),
+UInt256(6467613644060114902, 13278615862200002226, 7183682748364993113, 16699718831489756213),
+UInt256(8084517055075143628, 7374897790895226974, 18202975472311017200, 7039590484080031555),
+UInt256(5052823159421964767, 13832683156164292667, 6765173651766997846, 4399744052550019722),
+UInt256(6316028949277455959, 12679167926777977930, 3844781046281359403, 14723052102542300460),
+UInt256(7895036186596819949, 11237273890045084508, 14029348344706475062, 13792129109750487671),
+UInt256(4934397616623012468, 9329139190491871769, 17991714752296322722, 4008394675166666891),
+UInt256(6167997020778765585, 11661423988114839712, 8654585385088239690, 14233865380813109421),
+UInt256(7709996275973456982, 741721929861385928, 10818231731360299613, 8568959689161610968),
+UInt256(4818747672483410613, 14298634261445529917, 6761394832100187258, 7661442814939700807),
+UInt256(6023434590604263267, 4038234771524748684, 13063429558552621977, 353431481819850201),
+UInt256(7529293238255329084, 436107445978547951, 16329286948190777471, 5053475370702200655),
+UInt256(4705808273909580677, 9495939190591368277, 17123333370260317775, 10075951134329957266),
+UInt256(5882260342386975846, 16481610006666598251, 7569108657543233507, 7983252899485058678),
+UInt256(7352825427983719808, 11378640471478472006, 4849699803501653980, 5367380105928935443),
+UInt256(9191031784979649760, 14223300589348090007, 15285496791231843283, 6709225132411169304),
+UInt256(5744394865612281100, 8889562868342556254, 16470964522160983908, 1887422698543286863),
+UInt256(7180493582015351375, 11111953585428195318, 11365333615846454077, 2359278373179108579),
+UInt256(8975616977519189219, 9278255963357856244, 4983294982953291788, 7560783984901273627),
+UInt256(5609760610949493262, 3493066967884966200, 12337931401200583175, 13948862027418071825),
+UInt256(7012200763686866577, 13589705746710983558, 15422414251500728969, 12824391515845201878),
+UInt256(8765250954608583222, 3152074128106565736, 10054645777521135404, 2195431339524338635),
+UInt256(5478281846630364513, 15805104385348767297, 6284153610950709627, 10595516624057487455),
+UInt256(6847852308287955642, 5921322426403795409, 12466878032115774938, 8632709761644471415),
+UInt256(8559815385359944552, 16625025069859520070, 1748539484862554961, 1567515165200813460),
+UInt256(5349884615849965345, 10390640668662200043, 14927895233321260562, 12508912024318978173),
+UInt256(6687355769812456681, 17599986854255137958, 14048183023224187799, 6412767993543946908),
+UInt256(8359194712265570852, 8164925512536758736, 8336856742175458941, 3404273973502545731),
+UInt256(5224496695165981782, 14326450482190250018, 5210535463859661838, 4433514242652785034),
+UInt256(6530620868957477228, 8684691065883036714, 15736541366679353105, 14765264840170757100),
+UInt256(8163276086196846535, 10855863832353795893, 10447304671494415574, 4621522994931282663),
+UInt256(5102047553873029084, 13702443922862204289, 8835408428897703685, 16723509927114215377),
+UInt256(6377559442341286355, 17128054903577755361, 15655946554549517511, 7069329353610605509),
+UInt256(7971949302926607944, 16798382611044806298, 5734875137904733177, 4224975673585868982),
+UInt256(4982468314329129965, 10498989131903003936, 8195982979617846139, 14169824842059637874),
+UInt256(6228085392911412456, 17735422433306142824, 10244978724522307674, 13100595034147159438),
+]
+
+private let bid_multipliers1_binary80_37: [UInt256] = [
+UInt256(7785106741139265571, 3722533967923126914, 12806223405652884593, 7152371755829173489),
+UInt256(4865691713212040982, 20740720738260369, 12615575646960440774, 15999447393461703191),
+UInt256(6082114641515051227, 9249297937777601270, 1934411503418387256, 10775937204972353181),
+UInt256(7602643301893814034, 6949936403794613683, 11641386416127759878, 13469921506215441476),
+UInt256(4751652063683633771, 8955396270799021456, 4970023500866155972, 3807014922957263019),
+UInt256(5939565079604542214, 6582559320071388916, 6212529376082694965, 4758768653696578773),
+UInt256(7424456349505677767, 17451571186944011953, 7765661720103368706, 10560146835548111370),
+UInt256(4640285218441048604, 17824761019481089326, 16382753621133075201, 11211777790644957511),
+UInt256(5800356523051310756, 3834207200641810042, 11255069989561568194, 179664183024033176),
+UInt256(7250445653814138445, 4792759000802262553, 4845465450097184434, 9447952265634817278),
+UInt256(9063057067267673056, 10602634769430216095, 10668517831048868447, 2586568295188745789),
+UInt256(5664410667042295660, 6626646730893885059, 13585352672046624635, 8534134212134047975),
+UInt256(7080513333802869575, 8283308413617356324, 12370004821630892890, 6055981746740172064),
+UInt256(8850641667253586969, 5742449498594307501, 15462506027038616112, 16793349220279990888),
+UInt256(5531651042033491855, 15118245982689911948, 11969909276112829022, 10495843262674994305),
+UInt256(6914563802541864819, 14286121459935002031, 14962386595141036278, 3896432041488967073),
+UInt256(8643204753177331024, 13245965806491364635, 14091297225498907443, 14093912088715984649),
+UInt256(5402002970735831890, 8278728629057102897, 6501217756723123200, 6502852046233796454),
+UInt256(6752503713419789863, 1125038749466602813, 12738208214331291904, 8128565057792245568),
+UInt256(8440629641774737328, 15241356492115417229, 2087702212631951168, 10160706322240306959),
+UInt256(5275393526109210830, 9525847807572135768, 3610656892108663432, 6350441451400191850),
+UInt256(6594241907636513538, 2683937722610393902, 4513321115135829290, 7938051814250239812),
+UInt256(8242802384545641922, 12578294190117768185, 14865023430774562421, 699192730958023957),
+UInt256(5151751490341026201, 12473119887250993020, 2373110616593019657, 2742838466062458925),
+UInt256(6439689362926282752, 1756341803781577563, 2966388270741274571, 8040234101005461560),
+UInt256(8049611703657853440, 2195427254726971953, 17543043393708756926, 5438606607829439046),
+UInt256(5031007314786158400, 1372142034204357471, 4046873093426891222, 17234187185175563116),
+UInt256(6288759143482698000, 1715177542755446839, 446905348356226124, 12319361944614678087),
+UInt256(7860948929353372500, 2143971928444308548, 14393689740727446367, 15399202430768347609),
+UInt256(4913093080845857812, 10563354492132468650, 18219428124809429787, 16542030546871299112),
+UInt256(6141366351057322265, 13204193115165585813, 13550913119157011426, 16065852165161735985),
+UInt256(7676707938821652832, 2670183338674818555, 3103583343664100571, 10858943169597394174),
+UInt256(4797942461763533020, 1668864586671761596, 18080640654285920521, 4480996471784677407),
+UInt256(5997428077204416275, 2086080733339701996, 4154056744147849035, 10212931608158234662),
+UInt256(7496785096505520343, 16442658971956791207, 5192570930184811294, 8154478491770405424),
+UInt256(4685490685315950214, 17194190885114076360, 10162885859006588915, 484863038929115486),
+UInt256(5856863356644937768, 12269366569537819642, 12703607323758236143, 14441136853943558069),
+UInt256(7321079195806172210, 15336708211922274553, 6656137117843019371, 13439735049002059683),
+UInt256(9151348994757715263, 9947513228048067383, 12931857415731162118, 12187982792825186699),
+UInt256(5719593121723572039, 13134724795171123970, 14999939912473058180, 3005803227088353783),
+UInt256(7149491402154465049, 11806719975536517059, 9526552853736546917, 3757254033860442229),
+UInt256(8936864252693081312, 923341914138482612, 7296505048743295742, 9308253560752940690),
+UInt256(5585540157933175820, 577088696336551632, 13783687692319335647, 1205972457043200027),
+UInt256(6981925197416469775, 721360870420689540, 17229609615399169558, 15342523626586163746),
+UInt256(8727406496770587218, 14736759143308025638, 3090267945539410332, 9954782496377928875),
+UInt256(5454629060481617011, 13822160482994903927, 15766475521244295169, 15445111097090981355),
+UInt256(6818286325602021264, 12666014585316242005, 15096408383127981058, 5471330816081562981),
+UInt256(8522857907002526580, 15832518231645302507, 5035452423627812610, 16062535556956729535),
+UInt256(5326786191876579113, 671951857923538259, 841314755553688929, 14650770741525343863),
+UInt256(6658482739845723891, 5451625840831810727, 14886701499724274874, 4478405371624516117),
+]
+
+private let bid_multipliers1_binary80_38: [UInt256] = [
+UInt256(8323103424807154864, 2202846282612375505, 13996690856227955688, 14821378751385420954),
+UInt256(5201939640504471790, 1376778926632734691, 1830402757501390449, 9263361719615888097),
+UInt256(6502424550630589737, 10944345695145694171, 16123061502158901773, 16190888167947248025),
+UInt256(8128030688288237171, 18292118137359505618, 15542140859271239313, 6403552154651896319),
+UInt256(5080019180180148232, 9126730826635997059, 14325524055471912474, 15531435142725904959),
+UInt256(6350023975225185290, 11408413533294996324, 13295219050912502689, 10190921891552605391),
+UInt256(7937529969031481613, 5037144879763969597, 16619023813640628361, 17350338382868144643),
+UInt256(4960956230644676008, 5454058559066174950, 12692732892739086678, 3926432461651508546),
+UInt256(6201195288305845010, 6817573198832718688, 6642544079069082539, 14131412613919161490),
+UInt256(7751494110382306262, 17745338535395674168, 8303180098836353174, 13052579748971563959),
+UInt256(4844683818988941414, 6479150566194908451, 5189487561772720734, 3546176324679839570),
+UInt256(6055854773736176767, 17322310244598411372, 1875173433788513013, 13656092442704575271),
+UInt256(7569818467170220959, 17041201787320626311, 2343966792235641267, 3235057498098555376),
+UInt256(4731136541981388099, 17568280144716473300, 8382508272788357647, 18162812000807454774),
+UInt256(5913920677476735124, 17348664162468203721, 10478135340985447059, 18091828982581930564),
+UInt256(7392400846845918906, 3239086129375703035, 17709355194659196728, 18003100209800025301),
+UInt256(4620250529278699316, 6636114849287202301, 8762503987448304003, 11251937631125015813),
+UInt256(5775313161598374145, 8295143561609002876, 15564816002737767908, 9453236020478881862),
+UInt256(7219141451997967681, 14980615470438641500, 1009275929712658269, 11816545025598602328),
+UInt256(9023926814997459602, 4890711282766138163, 1261594912140822837, 935623226716089197),
+UInt256(5639954259373412251, 7668380570156224255, 16929397884583871937, 2890607525911249701),
+UInt256(7049942824216765314, 4973789694267892415, 16550061337302452017, 8224945425816450030),
+UInt256(8812428530270956642, 15440609154689641327, 16075890653200677117, 14892867800697950441),
+UInt256(5507767831419347901, 14262066740108413733, 16964960685891505054, 11613885384649912978),
+UInt256(6884709789274184877, 3992525369853353455, 7371142802082217606, 5293984693957615414),
+UInt256(8605887236592731096, 9602342730744079723, 4602242484175384103, 15840852904301795075),
+UInt256(5378679522870456935, 6001464206715049827, 570558543395921112, 16818062092829703778),
+UInt256(6723349403588071169, 2890144239966424379, 14548256234527065103, 2575833542327578107),
+UInt256(8404186754485088961, 8224366318385418378, 13573634274731443474, 17054849983191636345),
+UInt256(5252616721553180600, 16669443995059356246, 13095207440134540075, 15270967257922160620),
+UInt256(6565770901941475751, 2390060920114643692, 7145637263313399286, 14477023053975312871),
+UInt256(8207213627426844688, 16822634205425468327, 8932046579141749108, 8872906780614365281),
+UInt256(5129508517141777930, 10514146378390917704, 12500058139604675048, 14768938774738754109),
+UInt256(6411885646427222413, 3919310936133871322, 15625072674505843811, 14429394713891020),
+UInt256(8014857058034028016, 9510824688594727057, 10307968806277528955, 13853094798674527486),
+UInt256(5009285661271267510, 5944265430371704410, 17971695549991925357, 6352341239957885727),
+UInt256(6261607076589084387, 16653703824819406321, 13241247400635130888, 12552112568374745063),
+UInt256(7827008845736355484, 16205443762596869998, 2716501195511749898, 15690140710468431328),
+UInt256(4891880528585222178, 905030314768267940, 15532871302477007398, 14418023962470157484),
+UInt256(6114850660731527722, 10354659930315110734, 969345054386707632, 8799157916232921047),
+UInt256(7643563325914409653, 3719952876039112609, 10435053354838160348, 10998947395291151309),
+UInt256(4777227078696506033, 4630813556738139332, 18051123392842319977, 16097714158911745376),
+UInt256(5971533848370632541, 10400202964350062070, 4117160167343348356, 6287084643357518008),
+UInt256(7464417310463290676, 17611939723864965491, 14369822246033961253, 7858855804196897510),
+UInt256(4665260819039556673, 1784090290560827624, 6675295894557531831, 7217627886836754896),
+UInt256(5831576023799445841, 6841798881628422434, 8344119868196914789, 4410348840118555716),
+UInt256(7289470029749307301, 13163934620462915947, 1206777798391367678, 10124622068575582549),
+UInt256(9111837537186634127, 2619860220296481221, 15343530303271373310, 3432405548864702378),
+UInt256(5694898460741646329, 8554941665326382619, 11895549448758302270, 15980311523322602698),
+UInt256(7118623075927057911, 15305363100085366178, 10257750792520489934, 10752017367298477565),
+]
+
+private let bid_multipliers1_binary80_39: [UInt256] = [
+UInt256(8898278844908822389, 14520017856679319819, 3598816453795836610, 4216649672268321148),
+UInt256(5561424278068013993, 11380854169638268838, 18390161348118255545, 7247092063595088622),
+UInt256(6951780347585017492, 391009656765672336, 13764329648293043623, 13670551097921248681),
+UInt256(8689725434481271865, 488762070957090420, 17205412060366304529, 12476502853974172947),
+UInt256(5431078396550794915, 11834691340416651273, 1530010500874164523, 880285256092776236),
+UInt256(6788847995688493644, 10181678157093426187, 6524199144520093557, 14935414625398134007),
+UInt256(8486059994610617055, 12727097696366782734, 3543562912222729043, 4834210226465503797),
+UInt256(5303787496631635659, 14871965087870321064, 16049784875421369364, 715538382327245921),
+UInt256(6629734370789544574, 13978270341410513427, 1615487020567160089, 894422977909057401),
+UInt256(8287167963486930718, 8249465889908365975, 15854416830991113823, 5729714740813709656),
+UInt256(5179479977179331699, 544230162765340830, 16826539547010527995, 10498600740649650391),
+UInt256(6474349971474164623, 14515345758738839750, 11809802396908384186, 8511564907384675084),
+UInt256(8092937464342705779, 13532496179996161784, 5538880959280704425, 1416084097376068047),
+UInt256(5058085915214191112, 6151967103283907163, 3461800599550440265, 12414267606928512290),
+UInt256(6322607394017738890, 7689958879104883953, 18162308804720214044, 1682776453378476650),
+UInt256(7903259242522173613, 389076562026329134, 8867827950618103843, 2103470566723095813),
+UInt256(4939537026576358508, 2549015860480149661, 930706450708926997, 17455570168697792547),
+UInt256(6174421283220448135, 3186269825600187076, 5775069081813546651, 7984404655590076972),
+UInt256(7718026604025560168, 17817895337282397557, 7218836352266933314, 5368819801060208311),
+UInt256(4823766627515975105, 11136184585801498473, 6817615729380527273, 7967198394090018098),
+UInt256(6029708284394968882, 85172676969709379, 13133705680153046995, 14570684011039910527),
+UInt256(7537135355493711102, 9329837883066912532, 11805446081763920840, 13601668995372500254),
+UInt256(4710709597183569439, 1219462658489432428, 16601775837957226333, 8501043122107812659),
+UInt256(5888386996479461798, 15359386378393954248, 2305475723736981300, 15237989921062153728),
+UInt256(7360483745599327248, 9975860936137667002, 2881844654671226626, 600743327618140544),
+UInt256(9200604681999159060, 12469826170172083752, 12825677855193809090, 9974301196377451487),
+UInt256(5750377926249474412, 17017013393212328153, 8016048659496130681, 10845624266163295084),
+UInt256(7187972407811843016, 2824522667805858575, 14631746842797551255, 18168716351131506759),
+UInt256(8984965509764803770, 3530653334757323219, 13677997535069551165, 18099209420486995544),
+UInt256(5615603443603002356, 6818344352650714916, 6242905450204775526, 13617848897018066167),
+UInt256(7019504304503752945, 8522930440813393645, 7803631812755969408, 7798939084417806901),
+UInt256(8774380380629691181, 15265349069444129960, 14366225784372349664, 9748673855522258626),
+UInt256(5483987737893556988, 11846686177616275177, 8978891115232718540, 6092921159701411641),
+UInt256(6854984672366946235, 14808357722020343971, 15835299912468286079, 7616151449626764552),
+UInt256(8568730840458682794, 13898761134098042060, 15182438872157969695, 4908503293606067786),
+UInt256(5355456775286676746, 13298411727238664192, 265652258243955251, 9985343586144874222),
+UInt256(6694320969108345933, 7399642622193554432, 332065322804944064, 7869993464253704874),
+UInt256(8367901211385432416, 13861239296169330944, 415081653506180080, 9837491830317131092),
+UInt256(5229938257115895260, 8663274560105831840, 259426033441362550, 6148432393948206933),
+UInt256(6537422821394869075, 10829093200132289800, 324282541801703187, 16908912529290034474),
+UInt256(8171778526743586344, 8924680481737974346, 405353177252128984, 16524454643185155188),
+UInt256(5107361579214741465, 5577925301086233966, 4865031754209968519, 10327784151990721993),
+UInt256(6384201974018426831, 11584092644785180361, 15304661729617236457, 8298044171561014587),
+UInt256(7980252467523033539, 9868429787554087548, 5295769106739381859, 14984241232878656137),
+UInt256(4987657792201895962, 3861925608007610765, 12533227728566889470, 7059307761335466134),
+UInt256(6234572240252369952, 14050779046864289265, 1831476605426448125, 18047506738524108475),
+UInt256(7793215300315462440, 17563473808580361581, 6901031775210448061, 8724325367872971882),
+UInt256(4870759562697164025, 10977171130362725988, 6618987868720223990, 7758546364134301378),
+UInt256(6088449453371455031, 18333149931380795389, 8273734835900279988, 474810918313100915),
+UInt256(7610561816714318789, 18304751395798606332, 14953854563302737889, 593513647891376143),
+]
+
+private let bid_multipliers1_binary80_40: [UInt256] = [
+UInt256(4756601135446449243, 13746312631587822910, 122787065209435372, 11900161076000579850),
+UInt256(5945751419308061554, 12571204771057390733, 9376855868366570023, 14875201345000724812),
+UInt256(7432189274135076943, 6490633926966962608, 16332755853885600433, 13982315662823518111),
+UInt256(4645118296334423089, 10974175231995433486, 10207972408678500271, 1821418261623616964),
+UInt256(5806397870418028861, 18329405058421679762, 3536593473993349530, 16111830882311684916),
+UInt256(7257997338022536077, 9076698267744935990, 13644113879346462721, 10916416566034830337),
+UInt256(9072496672528170096, 15957558853108557892, 7831770312328302593, 18257206725970925826),
+UInt256(5670310420330106310, 9973474283192848682, 14118228482059964929, 4493225176090746785),
+UInt256(7087888025412632888, 3243470817136285045, 8424413565720180353, 10228217488540821385),
+UInt256(8859860031765791110, 4054338521420356306, 15142202975577613345, 17396957879103414636),
+UInt256(5537412519853619443, 16369019631169886403, 14075562878163396245, 3955569646798552291),
+UInt256(6921765649817024304, 15849588520534970100, 12982767579276857402, 9556148076925578268),
+UInt256(8652207062271280381, 1365241576959161009, 16228459474096071753, 2721813059302197027),
+UInt256(5407629413919550238, 3159118994813169583, 3225258143668962989, 13230348208132342902),
+UInt256(6759536767399437797, 13172270780371237786, 17866630734868367449, 2702877204883264916),
+UInt256(8449420959249297247, 2630280420181883521, 13109916381730683503, 7990282524531469048),
+UInt256(5280888099530810779, 8561454290254759057, 1276168710940595333, 11911455605473250011),
+UInt256(6601110124413513474, 6090131844391060917, 6206896907103132071, 1054261451559398802),
+UInt256(8251387655516891842, 16836036842343601954, 12370307152306302992, 15152884869731412214),
+UInt256(5157117284698057401, 15134209044892139125, 12343127988618827274, 9470553043582132634),
+UInt256(6446396605872571752, 5082703250833010195, 1593851930491370381, 2614819267622889985),
+UInt256(8057995757340714690, 6353379063541262743, 15827372968396376688, 7880210102956000385),
+UInt256(5036247348337946681, 8582547933140677118, 16809637132888817286, 4925131314347500241),
+UInt256(6295309185422433351, 15339870934853234302, 11788674379256245799, 15379786179789151109),
+UInt256(7869136481778041689, 14563152650139154974, 5512470937215531441, 14613046706309050982),
+UInt256(4918210301111276056, 2184441378695890002, 17280352391041870863, 2215625163802075008),
+UInt256(6147762876389095070, 2730551723369862503, 12377068451947562770, 16604589510034757472),
+UInt256(7684703595486368837, 12636561691067103937, 10859649546507065559, 11532364850688671031),
+UInt256(4802939747178980523, 10203694066130633912, 18316496012635385734, 14125257059321501251),
+UInt256(6003674683973725654, 8142931564235904487, 4448875942084680552, 8433199287297100755),
+UInt256(7504593354967157068, 955292418440104801, 949408909178462786, 10541499109121375944),
+UInt256(4690370846854473167, 9820429798379841308, 12122595614305009001, 11200122961628247869),
+UInt256(5862963558568091459, 7663851229547413731, 15153244517881261252, 165095646753146124),
+UInt256(7328704448210114324, 4968128018506879260, 14329869628924188661, 206369558441432655),
+UInt256(9160880560262642905, 6210160023133599075, 17912337036155235826, 4869647966479178723),
+UInt256(5725550350164151815, 15410565060526969182, 8889367638383328439, 7655215997476874606),
+UInt256(7156937937705189769, 14651520307231323574, 1888337511124384741, 4957333978418705354),
+UInt256(8946172422131487212, 4479342328756990755, 11583793925760256734, 10808353491450769596),
+UInt256(5591357763832179507, 12022960992327895030, 4934028194386466507, 2143534913729343094),
+UInt256(6989197204790224384, 10417015221982480883, 15390907279837858941, 16514476697443842579),
+UInt256(8736496505987780480, 13021269027478101104, 14626948081369935773, 6808037816522639511),
+UInt256(5460310316242362800, 8138293142173813190, 9141842550856209858, 6560866644540343647),
+UInt256(6825387895302953500, 10172866427717266488, 2203931151715486514, 17424455342530205366),
+UInt256(8531734869128691875, 12716083034646583110, 2754913939644358143, 12557197141307980900),
+UInt256(5332334293205432422, 5641708887440420491, 15556879267559887551, 14765777240958569919),
+UInt256(6665417866506790527, 16275508146155301422, 14834413066022471535, 13845535532770824494),
+UInt256(8331772333133488159, 15732699164266738874, 9319644295673313611, 12695233397536142714),
+UInt256(5207357708208430099, 16750466005307793652, 10436463703223208911, 5628677864246395244),
+UInt256(6509197135260537624, 16326396488207354161, 13045579629029011139, 2424161311880606151),
+UInt256(8136496419075672031, 1961251536549641086, 2471916481004100211, 16865259695132921401),
+]
+
+private let bid_multipliers1_binary80_41: [UInt256] = [
+UInt256(5085310261922295019, 8143311237984607534, 15380005855909726344, 8234944300244381924),
+UInt256(6356637827402868774, 5567453029053371514, 10001635283032382122, 10293680375305477404),
+UInt256(7945797284253585967, 16182688323171490201, 3278672066935701845, 3643728432277070947),
+UInt256(4966123302658491229, 17031709229623263231, 13578385087903283413, 4583173279386863294),
+UInt256(6207654128323114037, 7454578481746915327, 12361295341451716362, 10340652617660967022),
+UInt256(7759567660403892546, 13929909120611032063, 10839933158387257549, 3702443735221432969),
+UInt256(4849729787752432841, 13317879218809282943, 13692487251633117824, 4619870343727089558),
+UInt256(6062162234690541052, 2812290968229439967, 12503923046114009376, 5774837929658861947),
+UInt256(7577702793363176315, 3515363710286799959, 11018217789215123816, 7218547412073577434),
+UInt256(4736064245851985196, 18338003383425107638, 13803915145900534241, 4511592132545985896),
+UInt256(5920080307314981496, 4475760155571832932, 8031521895520891993, 10251176184109870274),
+UInt256(7400100384143726870, 5594700194464791165, 10039402369401114991, 17425656248564725747),
+UInt256(4625062740089829293, 17331745676822658190, 8580469490089390821, 17808564182994035448),
+UInt256(5781328425112286617, 7829624040746159026, 1502214825756962719, 8425647173460380598),
+UInt256(7226660531390358271, 14398716069360086686, 11101140569050979207, 5920372948398087843),
+UInt256(9033325664237947839, 13386709068272720454, 4653053674458948201, 2788780167070221900),
+UInt256(5645828540148717399, 15284222195311532139, 16743216601819006337, 13272202650487358448),
+UInt256(7057285675185896749, 14493591725712027270, 16317334733846370018, 2755195257827034347),
+UInt256(8821607093982370937, 4281931601857870376, 11173296380453186714, 12667366109138568742),
+UInt256(5513504433738981835, 14205422297229638745, 6983310237783241696, 12528789836638993368),
+UInt256(6891880542173727294, 13145091853109660527, 13340823815656440024, 15660987295798741710),
+UInt256(8614850677717159118, 7207992779532299851, 12064343751143162127, 1129490046038875521),
+UInt256(5384281673573224448, 18340053542489851119, 5234371835250782377, 7623460306415379057),
+UInt256(6730352091966530561, 4478322854402762283, 1931278775636090067, 14141011401446611725),
+UInt256(8412940114958163201, 10209589586430840757, 16249156524827276296, 13064578233380876752),
+UInt256(5258087571848852000, 17910208537587745233, 12461565837230741637, 8165361395863047970),
+UInt256(6572609464811065001, 3941016598275129926, 1741899241256263334, 14818387763256197867),
+UInt256(8215761831013831251, 9537956766271300311, 11400746088425104976, 9299612667215471525),
+UInt256(5134851144383644532, 3655379969705868742, 14042995332906772466, 5812257917009669703),
+UInt256(6418563930479555665, 4569224962132335928, 8330372129278689774, 16488694433116862937),
+UInt256(8023204913099444581, 10323217221092807814, 10412965161598362218, 11387496004541302863),
+UInt256(5014503070687152863, 8757853772396698836, 1896417207571588482, 11728871021265702194),
+UInt256(6268128838358941079, 6335631197068485641, 2370521509464485603, 5437716739727351934),
+UInt256(7835161047948676349, 3307852977908219147, 7574837905257994908, 2185459906231802013),
+UInt256(4896975654967922718, 4373251120406330919, 2428430681572552865, 10589284478249652067),
+UInt256(6121219568709903397, 14689935937362689456, 16870596407247854793, 17848291616239452987),
+UInt256(7651524460887379247, 4527361866421198109, 2641501435350266876, 8475306465017152522),
+UInt256(4782202788054612029, 9747130194154330674, 3956781406307610749, 14520438577490496134),
+UInt256(5977753485068265036, 16795598761120301246, 14169348794739289245, 4315490166580956456),
+UInt256(7472191856335331296, 2547754377690824942, 8488313956569335748, 10006048726653583474),
+UInt256(4670119910209582060, 1592346486056765589, 693510204428446938, 15477152491013265479),
+UInt256(5837649887761977575, 1990433107570956986, 5478573773962946577, 10123068576911806041),
+UInt256(7297062359702471968, 16323099439745859944, 16071589254308459029, 17265521739567145455),
+UInt256(9121327949628089961, 1957130225972773315, 1642742494176022171, 7746844119176768107),
+UInt256(5700829968517556225, 12752421437301453081, 17167615123355871521, 2535934565271786115),
+UInt256(7126037460646945282, 2105468741344652640, 7624460848912675689, 7781604225017120547),
+UInt256(8907546825808681602, 11855207963535591608, 9530576061140844611, 14338691299698788588),
+UInt256(5567216766130426001, 12021190995637132659, 5956610038213027882, 6655839053098048916),
+UInt256(6959020957663032502, 1191430689264252112, 2834076529338896948, 17543170853227336953),
+UInt256(8698776197078790627, 10712660398435090948, 3542595661673621186, 3482219492824619575),
+]
+
+private let bid_multipliers1_binary80_42: [UInt256] = [
+UInt256(5436735123174244142, 4389569739808237890, 11437494325400789049, 6788073201442775138),
+UInt256(6795918903967805177, 14710334211615073171, 5073495869896210503, 13096777520230856827),
+UInt256(8494898629959756472, 4552859709236677752, 1730183818942875225, 11759285881861183129),
+UInt256(5309311643724847795, 2845537318272923595, 1081364886839297016, 432024648522157600),
+UInt256(6636639554656059743, 17391979703123318205, 15186764163831284982, 540030810652697000),
+UInt256(8295799443320074679, 17128288610476759853, 5148397149506942515, 9898410550170647058),
+UInt256(5184874652075046674, 17622709409189056764, 5523591227655533024, 3880663584642960459),
+UInt256(6481093315093808343, 12805014724631545147, 6904489034569416280, 4850829480803700574),
+UInt256(8101366643867260429, 11394582387362043530, 4018925274784382446, 6063536851004625717),
+UInt256(5063354152417037768, 9427457001314971158, 7123514315167626932, 17624768587160054785),
+UInt256(6329192690521297210, 11784321251643713947, 18127764930814309474, 3584216660240516866),
+UInt256(7911490863151621513, 5507029527699866626, 18048020145090498938, 13703642862155421890),
+UInt256(4944681789469763445, 14971108500880886401, 15891698609108949740, 13176462807274526585),
+UInt256(6180852236837204307, 4878827570818944290, 6029565206104023463, 16470578509093158232),
+UInt256(7726065296046505384, 1486848445096292458, 16760328544484805137, 15976537117939059886),
+UInt256(4828790810029065865, 929280278185182786, 15086891358730391115, 3067806671070830573),
+UInt256(6035988512536332331, 5773286366158866387, 9635242161558213085, 17669816394120701928),
+UInt256(7544985640670415414, 2604921939271195080, 7432366683520378453, 8252212437368713697),
+UInt256(4715616025419009633, 15463134267326660637, 4645229177200236533, 7463475782569140013),
+UInt256(5894520031773762042, 5493859778876162084, 10418222489927683570, 13941030746638812920),
+UInt256(7368150039717202552, 16090696760449978413, 13022778112409604463, 8202916396443740342),
+UInt256(9210187549646503191, 1666626876852921401, 2443414585229841867, 5641959477127287524),
+UInt256(5756367218529064494, 7959170825674157731, 13056349161837120927, 1220381663990860750),
+UInt256(7195459023161330618, 725591495237921356, 11708750433869013254, 15360535135270739650),
+UInt256(8994323778951663272, 10130361405902177503, 14635938042336266568, 9977296882233648754),
+UInt256(5621452361844789545, 6331475878688860939, 16064990304101248461, 6235810551396030472),
+UInt256(7026815452305986931, 12526030866788464078, 15469551861699172672, 12406449207672425993),
+UInt256(8783519315382483664, 11045852565058192194, 10113567790269190032, 15508061509590532492),
+UInt256(5489699572114052290, 6903657853161370121, 10932665887345631674, 9692538443494082807),
+UInt256(6862124465142565362, 17852944353306488459, 18277518377609427497, 2892301017512827701),
+UInt256(8577655581428206703, 13092808404778334766, 18235211953584396467, 8227062290318422530),
+UInt256(5361034738392629189, 15100534280627541085, 6785321452562859888, 2836070922235320130),
+UInt256(6701293422990786487, 5040609795502262644, 13093337834130962764, 3545088652794150162),
+UInt256(8376616778738483109, 1689076225950440401, 16366672292663703455, 4431360815992687702),
+UInt256(5235385486711551943, 3361515650432719203, 3311641155273732803, 9687129537636511670),
+UInt256(6544231858389439928, 18036952618323062715, 17974609499374329716, 7497225903618251684),
+UInt256(8180289822986799911, 4099446699194276778, 17856575855790524241, 9371532379522814604),
+UInt256(5112681139366749944, 9479683214637504842, 15772045928296465554, 17386422783270228888),
+UInt256(6390851424208437430, 11849604018296881053, 10491685373515806135, 12509656442233010302),
+UInt256(7988564280260546788, 5588632986016325508, 17726292735322145573, 11025384534363874973),
+UInt256(4992852675162841742, 12716267653114979251, 1855560922721565175, 9196708343191115810),
+UInt256(6241065843953552178, 6671962529538948255, 16154509208684120181, 6884199410561506859),
+UInt256(7801332304941940222, 17563325198778461127, 15581450492427762322, 13216935281629271477),
+UInt256(4875832690588712639, 6365392230809150300, 16655935585408433307, 12872270569445682578),
+UInt256(6094790863235890799, 3345054270084049972, 2373175408050990018, 11478652193379715318),
+UInt256(7618488579044863498, 18016375892887226177, 2966469260063737523, 5124943204869868339),
+UInt256(4761555361903039686, 15871920951481904264, 13383258333608305712, 897246493829973760),
+UInt256(5951944202378799608, 10616529152497604522, 16729072917010382140, 1121558117287467200),
+UInt256(7439930252973499510, 13270661440622005653, 11687969109408201867, 1401947646609334000),
+UInt256(4649956408108437194, 3682477381961365629, 9610823702593820118, 17017118343626691414),
+]
+
+private let bid_multipliers1_binary80_43: [UInt256] = [
+UInt256(5812445510135546492, 13826468764306482844, 16625215646669663052, 12048025892678588460),
+UInt256(7265556887669433115, 17283085955383103556, 2334775484627527199, 15060032365848235574),
+UInt256(9081946109586791394, 16992171425801491541, 2918469355784408999, 14213354438882906564),
+UInt256(5676216318491744621, 15231793159553320117, 4129886356578949576, 15800875551942898459),
+UInt256(7095270398114680777, 5204683394159486434, 9774043964151074875, 1304350366219071457),
+UInt256(8869087997643350971, 11117540261126745947, 2994182918334067785, 15465496013056003033),
+UInt256(5543179998527094357, 4642619653990522264, 18012265388454650030, 2748405980518920040),
+UInt256(6928974998158867946, 10414960585915540735, 4068587661858760921, 12658879512503425858),
+UInt256(8661218747698584933, 3795328695539650111, 474048558896063248, 1988541335347118610),
+UInt256(5413261717311615583, 4677923443925975271, 7213809376951121386, 1242838334591949132),
+UInt256(6766577146639519479, 1235718286480081185, 4405575702761513828, 10776919955094712222),
+UInt256(8458221433299399348, 15379705913382265193, 10118655646879280189, 13471149943868390278),
+UInt256(5286388395812124593, 388944159009139937, 17853374825368019878, 10725311724131437876),
+UInt256(6607985494765155741, 5097866217188812826, 8481660476427861136, 4183267618309521537),
+UInt256(8259981868456444676, 10984018789913403937, 1378703558680050612, 5229084522886901921),
+UInt256(5162488667785277922, 16088383780550653268, 12390904770243501392, 12491549863659089509),
+UInt256(6453110834731597403, 10887107688833540777, 15488630962804376740, 15614437329573861886),
+UInt256(8066388543414496754, 8997198592614538068, 5525730648223307214, 1071302588257775741),
+UInt256(5041492839634060471, 10234935138811474196, 12676953691994342816, 14504622172943273550),
+UInt256(6301866049542575589, 8181982905086954841, 15846192114992928520, 18130777716179091938),
+UInt256(7877332561928219486, 14839164649786081456, 5972682088458996939, 4216728071514313306),
+UInt256(4923332851205137179, 4662791887688913006, 3732926305286873087, 329612035482751864),
+UInt256(6154166064006421474, 1216803841183753353, 13889529918463367166, 14247073099635603542),
+UInt256(7692707580008026842, 10744376838334467500, 3526854342797045246, 8585469337689728620),
+UInt256(4807942237505016776, 11326921542386430091, 11427656001102929087, 754232317628692484),
+UInt256(6009927796881270970, 14158651927983037614, 9672883982951273454, 14777848452318029316),
+UInt256(7512409746101588713, 8474942873124021210, 2867732941834316010, 9248938528542760837),
+UInt256(4695256091313492945, 16826054341770983016, 6404019107073835410, 10392272598766613428),
+UInt256(5869070114141866182, 7197509871931565058, 8005023883842294263, 3766968711603490976),
+UInt256(7336337642677332727, 18220259376769232131, 782907817948092021, 97024871076975816),
+UInt256(9170422053346665909, 18163638202534152259, 14813692827717278738, 4732967107273607674),
+UInt256(5731513783341666193, 13658116885797539114, 6952715008109605259, 7569790460473392701),
+UInt256(7164392229177082742, 3237588051964760180, 17914265796991782382, 4850552057164352972),
+UInt256(8955490286471353427, 13270357101810726034, 3946088172530176361, 15286562108310217022),
+UInt256(5597181429044595892, 5988130179418009819, 7077991126258748130, 2636572290052803783),
+UInt256(6996476786305744865, 7485162724272512274, 4235802889396047258, 12519087399420780537),
+UInt256(8745595982882181081, 13968139423768028246, 14518125648599834881, 6425487212421199863),
+UInt256(5465997489301363176, 1812558112213935798, 4462142511947508896, 15545144553831719674),
+UInt256(6832496861626703970, 2265697640267419747, 14801050176789161929, 984686618580097977),
+UInt256(8540621077033379962, 12055494087189050492, 13889626702559064507, 5842544291652510375),
+UInt256(5337888173145862476, 12146369822920544461, 17904388725954191125, 1345747173069125033),
+UInt256(6672360216432328095, 15182962278650680577, 8545427852160575194, 6293869984763794195),
+UInt256(8340450270540410119, 14367016829885962817, 15293470833628106896, 17090709517809518551),
+UInt256(5212781419087756324, 15896914546319808617, 2640890243376484954, 10681693448630949095),
+UInt256(6515976773859695406, 1424399109190209155, 7912798822647994097, 4128744773933910560),
+UInt256(8144970967324619257, 11003870923342537252, 5279312509882604717, 9772616985844776104),
+UInt256(5090606854577887035, 18406634373157555542, 12522942355531403756, 8413728625366679017),
+UInt256(6363258568222358794, 18396606948019556524, 6430305907559478887, 10517160781708348771),
+UInt256(7954073210277948493, 13772386648169669847, 8037882384449348609, 8534764958708048060),
+UInt256(4971295756423717808, 10913584664319737606, 11941205517921924736, 16863443145260999798),
+]
+
+private let bid_multipliers1_binary80_44: [UInt256] = [
+UInt256(6214119695529647260, 13641980830399672008, 5703134860547630113, 2632559857866698131),
+UInt256(7767649619412059075, 17052476037999590010, 7128918575684537641, 7902385840760760568),
+UInt256(4854781012132536922, 8351954514536049804, 9067260128230223929, 16468206196543945115),
+UInt256(6068476265165671153, 1216571106315286447, 11334075160287779912, 6750199690397767682),
+UInt256(7585595331457088941, 6132399901321495963, 9555907931932336986, 8437749612997209602),
+UInt256(4740997082160680588, 6138592947539628929, 3666599448244016664, 9885279526550643905),
+UInt256(5926246352700850735, 7673241184424536161, 9194935328732408734, 12356599408188304882),
+UInt256(7407807940876063419, 4979865462103282297, 16105355179342898822, 6222377223380605294),
+UInt256(4629879963047539637, 806572904600857484, 3148317959448229907, 17724043819895042021),
+UInt256(5787349953809424546, 5619902149178459759, 3935397449310287384, 17543368756441414622),
+UInt256(7234187442261780682, 16248249723327850507, 307560793210471327, 3482466871842216661),
+UInt256(9042734302827225853, 11086940117305037325, 14219509046795252870, 18188141645084934539),
+UInt256(5651708939267016158, 9235180582529342280, 11193036163460726996, 6755902509750696183),
+UInt256(7064636174083770198, 2320603691306902042, 13991295204325908745, 8444878137188370228),
+UInt256(8830795217604712747, 12124126650988403361, 8265746968552610123, 15167783689912850689),
+UInt256(5519247011002945467, 5271736147654058148, 16695306901413851087, 7174021796981837729),
+UInt256(6899058763753681834, 1977984166140184782, 2422389553057762243, 4355841227799909257),
+UInt256(8623823454692102292, 11695852244530006785, 12251358978176978612, 833115516322498667),
+UInt256(5389889659182563932, 16533279689686030049, 739570333719529776, 9744069234556337475),
+UInt256(6737362073978204916, 2219855538397985945, 5536148935576800124, 12180086543195421844),
+UInt256(8421702592472756145, 2774819422997482431, 11531872187898388059, 15225108178994277305),
+UInt256(5263564120295472590, 13263477185441896279, 14124949145077574393, 7209849602657729364),
+UInt256(6579455150369340738, 7355974444947594541, 13044500412919580087, 13623998021749549609),
+UInt256(8224318937961675922, 18418340093039268985, 2470567460867311397, 12418311508759549107),
+UInt256(5140199336226047451, 16123148576576931019, 13073319709110539383, 10067287702188412144),
+UInt256(6425249170282559314, 15542249702293775870, 11729963617960786325, 7972423609308127276),
+UInt256(8031561462853199143, 10204440091012444030, 5439082485596207098, 14577215530062546998),
+UInt256(5019725914283249464, 13295304084523859374, 17234484608779793148, 13722445724716479778),
+UInt256(6274657392854061830, 16619130105654824218, 12319733724119965627, 17153057155895599723),
+UInt256(7843321741067577288, 11550540595213754465, 6176295118295181226, 16829635426442111749),
+UInt256(4902076088167235805, 7219087872008596540, 15389399495002958026, 15130208159953707747),
+UInt256(6127595110209044756, 13635545858438133580, 790005295044145917, 9689388163087358876),
+UInt256(7659493887761305945, 17044432323047666975, 987506618805182396, 16723421222286586499),
+UInt256(4787183679850816216, 3735241174263710003, 7534720664394320854, 1228766227074340754),
+UInt256(5983979599813520270, 4669051467829637504, 4806714812065513163, 10759329820697701750),
+UInt256(7479974499766900337, 15059686371641822688, 6008393515081891454, 8837476257444739284),
+UInt256(4674984062354312711, 2494774954635057324, 3755245946926182159, 911736642475574149),
+UInt256(5843730077942890888, 16953526748575985367, 4694057433657727698, 14974728858376631398),
+UInt256(7304662597428613611, 2745164362010430093, 1255885773644771719, 9495039036116013439),
+UInt256(9130828246785767013, 17266513507795201328, 6181543235483352553, 7257112776717628895),
+UInt256(5706767654241104383, 13097413951585694782, 3863464522177095345, 16064910531516987819),
+UInt256(7133459567801380479, 11760081421054730573, 14052702689576144990, 6246080109114071062),
+UInt256(8916824459751725599, 10088415757891025313, 3730820306688017525, 17030972173247364635),
+UInt256(5573015287344828499, 13222788876322972676, 13860977737748480713, 12950200617493296849),
+UInt256(6966269109181035624, 11916800076976327941, 17326222172185600892, 2352692716584457350),
+UInt256(8707836386476294530, 14896000096220409927, 7822719659949837403, 2940865895730571687),
+UInt256(5442397741547684081, 13921686078565144108, 11806728815109730232, 17978942249327464968),
+UInt256(6802997176934605102, 3567049542924266423, 14758411018887162791, 4026933737949779594),
+UInt256(8503746471168256377, 13682183965510108837, 13836327755181565585, 421981154009836589),
+UInt256(5314841544480160236, 1633835950802736167, 10953547856202172442, 11792953267324617628),
+]
+
+private let bid_multipliers1_binary80_45: [UInt256] = [
+UInt256(6643551930600200295, 2042294938503420209, 9080248801825327649, 5517819547300996227),
+UInt256(8304439913250250368, 16387926728411438973, 15961997020709047465, 11508960452553633188),
+UInt256(5190274945781406480, 10242454205257149358, 12282091147156848618, 275571255204938887),
+UInt256(6487843682226758100, 12803067756571436698, 6129241897091284964, 9567836105860949416),
+UInt256(8109804602783447625, 16003834695714295872, 16884924408218882013, 11959795132326186770),
+UInt256(5068627876739654766, 3084867657180353064, 10553077755136801258, 9780714966917560683),
+UInt256(6335784845924568457, 13079456608330217138, 13191347193921001573, 3002521671792175046),
+UInt256(7919731057405710572, 2514262705130607711, 7265811955546476158, 8364838108167606712),
+UInt256(4949831910878569107, 10794786227561405627, 11458661499857629455, 616337799177366291),
+UInt256(6187289888598211384, 8881796766024369130, 9711640856394648914, 14605480304253871576),
+UInt256(7734112360747764230, 11102245957530461413, 2916179033638535335, 9033478343462563661),
+UInt256(4833820225467352644, 2327217705029150479, 4128454905237778536, 12563452992305184145),
+UInt256(6042275281834190805, 2909022131286438099, 548882613119835266, 15704316240381480181),
+UInt256(7552844102292738506, 8247963682535435527, 14521161321681957795, 10407023263622074418),
+UInt256(4720527563932961566, 9766663320012035108, 15993254853692305478, 4198546530550102559),
+UInt256(5900659454916201958, 2984957113160268078, 1544824493405830231, 14471555200042404007),
+UInt256(7375824318645252447, 12954568428305110905, 11154402653612063597, 13477757981625617104),
+UInt256(9219780398306565559, 11581524516954000728, 107945261732915785, 3012139421749857668),
+UInt256(5762362748941603474, 14155981850737332311, 67465788583072365, 13411802184662130803),
+UInt256(7202953436177004343, 8471605276566889580, 13919390291011004169, 2929694675545499791),
+UInt256(9003691795221255429, 5977820577281224071, 17399237863763755211, 8273804362859262643),
+UInt256(5627307372013284643, 6041980870014458996, 17792052692493428863, 2865284717573345200),
+UInt256(7034134215016605804, 2940790069090685842, 3793321791907234462, 17416663952248845212),
+UInt256(8792667768770757255, 3675987586363357302, 13965024276738818886, 12547457903456280707),
+UInt256(5495417355481723284, 9215021269118180170, 4116454154534373900, 3230475171232787538),
+UInt256(6869271694352154105, 11518776586397725212, 14368939730022743183, 4038093964040984422),
+UInt256(8586589617940192632, 563412677714992803, 17961174662528428979, 435931436623842624),
+UInt256(5366618511212620395, 352132923571870502, 8919891154866574159, 16413358212385759304),
+UInt256(6708273139015775493, 14275224209747001840, 1926491906728441891, 15905011747054811226),
+UInt256(8385341423769719367, 4008972206901588588, 2408114883410552364, 15269578665391126128),
+UInt256(5240838389856074604, 9423136656954574723, 10728443838986371036, 320114629014678022),
+UInt256(6551047987320093255, 11778920821193218404, 8798868780305575891, 400143286268347528),
+UInt256(8188809984150116569, 10111965008064135101, 10998585975381969863, 14335237163117598122),
+UInt256(5118006240093822855, 17849193176108554198, 9179959243827425116, 15877052254589580682),
+UInt256(6397507800117278569, 17699805451708304844, 2251577017929505588, 1399571244527424237),
+UInt256(7996884750146598212, 8289698759353217343, 2814471272411881985, 1749464055659280296),
+UInt256(4998052968841623882, 14404433761450536647, 8676573572898508096, 12622630080855519945),
+UInt256(6247566211052029853, 8782170164958395001, 6234030947695747216, 15778287601069399931),
+UInt256(7809457763815037316, 15589398724625381655, 12404224703047071925, 1276115427627198298),
+UInt256(4880911102384398323, 520002166036087726, 14670169467045501809, 3103415151480692888),
+UInt256(6101138877980497903, 14485060762827273370, 9114339796952101453, 8490954957778254014),
+UInt256(7626423597475622379, 13494639935106703809, 2169552709335351008, 15225379715650205422),
+UInt256(4766514748422263987, 6128306950227995928, 12885185489403064140, 9515862322281378389),
+UInt256(5958143435527829984, 3048697669357607006, 16106481861753830175, 11894827902851722986),
+UInt256(7447679294409787480, 3810872086697008758, 10909730290337511911, 10256848860137265828),
+UInt256(4654799559006117175, 2381795054185630474, 2206895413033557040, 13328059565226872999),
+UInt256(5818499448757646468, 16812301873014201804, 11981991303146722108, 16660074456533591248),
+UInt256(7273124310947058086, 2568633267558200639, 14977489128933402636, 2378348996957437444),
+UInt256(9091405388683822607, 12434163621302526607, 14110175392739365391, 2972936246196796805),
+UInt256(5682128367927389129, 14688881290955160985, 15736388648103185225, 8775614181514079860),
+]
+
+private let bid_multipliers1_binary80_46: [UInt256] = [
+UInt256(7102660459909236412, 4526043558411787520, 5835427754846817819, 15581203745319987728),
+UInt256(8878325574886545515, 5657554448014734400, 7294284693558522274, 14864818663222596756),
+UInt256(5548953484304090947, 1230128520795515048, 4558927933474076421, 13902197682941510877),
+UInt256(6936191855380113683, 15372718706276557522, 5698659916842595527, 3542689048394724884),
+UInt256(8670239819225142104, 14604212364418308998, 16346696932908020216, 18263419365775569817),
+UInt256(5418899887015713815, 9127632727761443124, 5604999564640124731, 11414637103609731136),
+UInt256(6773624858769642269, 6797854891274416001, 7006249455800155914, 9656610361084776016),
+UInt256(8467031073462052836, 13109004632520407905, 13369497838177582797, 2847390914501194211),
+UInt256(5291894420913783022, 17416499932180030749, 1438407121219907392, 4085462330776940334),
+UInt256(6614868026142228778, 12547252878370262628, 6409694919952272144, 5106827913471175418),
+UInt256(8268585032677785973, 6460694061108052477, 8012118649940340180, 6383534891838969272),
+UInt256(5167865645423616233, 6343776797406226750, 7313417165426406564, 13213081344254131603),
+UInt256(6459832056779520291, 12541407015185171341, 18365143493637784013, 16516351680317664504),
+UInt256(8074790070974400364, 11065072750554076273, 9121371311765066305, 6810381545114916918),
+UInt256(5046743794359000227, 16139042505951073478, 17230072115921636200, 15785703511765292834),
+UInt256(6308429742948750284, 15562117114011453944, 12314218108047269443, 1285385315997064426),
+UInt256(7885537178685937856, 1005902318804765814, 15392772635059086803, 15441789700278494244),
+UInt256(4928460736678711160, 628688949252978634, 5008796878484541348, 7345275553460364951),
+UInt256(6160575920848388950, 785861186566223292, 15484368134960452493, 9181594441825456189),
+UInt256(7700719901060486187, 10205698520062554924, 908716094991014000, 16088679070709208140),
+UInt256(4812949938162803867, 4072718565825402875, 9791319596224159558, 10055424419193255087),
+UInt256(6016187422703504834, 479212188854365690, 7627463476852811544, 3345908487136793051),
+UInt256(7520234278379381042, 9822387272922732921, 310957309211238622, 4182385608920991314),
+UInt256(4700146423987113151, 10750678064004095979, 11723563364325493898, 16449049060857783283),
+UInt256(5875183029983891439, 8826661561577732070, 10042768186979479469, 11337939289217453296),
+UInt256(7343978787479864299, 6421640933544777184, 3330088196869573529, 337366056239652908),
+UInt256(9179973484349830374, 3415365148503583576, 4162610246086966911, 5033393588726954039),
+UInt256(5737483427718643983, 15969661273096903447, 2601631403804354319, 10063400020595428130),
+UInt256(7171854284648304979, 15350390572943741404, 17087097310037606611, 7967564007316897259),
+UInt256(8964817855810381224, 14576302197752288852, 2912127563837456648, 5347768990718733670),
+UInt256(5603011159881488265, 9110188873595180532, 11043451764253186213, 3342355619199208544),
+UInt256(7003763949851860331, 15999422110421363569, 13804314705316482766, 8789630542426398583),
+UInt256(8754704937314825414, 15387591619599316558, 3420335326363439746, 1763666141178222421),
+UInt256(5471690585821765884, 5005558743822184944, 15972767634259313553, 5713977356663776917),
+UInt256(6839613232277207355, 6256948429777731181, 1519215469114590325, 11754157714257109051),
+UInt256(8549516540346509194, 3209499518794776072, 6510705354820625811, 857639087539222601),
+UInt256(5343447837716568246, 6617623217674122949, 4069190846762891131, 16676925494207871790),
+UInt256(6679309797145710307, 17495401058947429494, 9698174576881001818, 16234470849332451833),
+UInt256(8349137246432137884, 17257565305256898964, 2899346184246476465, 11069716524810788983),
+UInt256(5218210779020086178, 1562606278930786044, 11035463402008823599, 1043800365661259),
+UInt256(6522763473775107722, 11176629885518258363, 13794329252511029498, 13836362805739240285),
+UInt256(8153454342218884653, 4747415320043047146, 12631225547211398969, 8072081470319274549),
+UInt256(5095908963886802908, 5272977584240598418, 12506201985434512259, 16574265965018016353),
+UInt256(6369886204858503635, 6591221980300748023, 6409380444938364516, 16106146437845132537),
+UInt256(7962357756073129544, 3627341456948547125, 3400039537745567742, 1685938973596864055),
+UInt256(4976473597545705965, 2267088410592841953, 4430867720304673790, 14888769913780203747),
+UInt256(6220591996932132456, 7445546531668440345, 10150270668808230142, 9387590355370478875),
+UInt256(7775739996165165570, 9306933164585550431, 17299524354437675582, 2511115907358322786),
+UInt256(4859837497603228481, 10428519246293356923, 17729731749164629094, 15404505497381115454),
+UInt256(6074796872004035601, 17647335076294084058, 17550478668028398464, 10032259834871618509),
+]
+
+private let bid_multipliers1_binary80_47: [UInt256] = [
+UInt256(7593496090005044502, 8224110790085441361, 12714726298180722272, 12540324793589523136),
+UInt256(4745935056253152814, 528383225376012947, 1029174908721869564, 7837702995993451960),
+UInt256(5932418820316441017, 9883851068574791991, 15121526691184500667, 9797128744991814950),
+UInt256(7415523525395551271, 16966499854145877893, 14290222345553237930, 7634724912812380783),
+UInt256(4634702203372219544, 17521591436482255539, 11237231975184467658, 9383389088935125894),
+UInt256(5793377754215274431, 3455245221893267808, 9434853950553196669, 2505864324314131559),
+UInt256(7241722192769093038, 18154114582648748472, 11793567438191495836, 7744016423820052353),
+UInt256(9052152740961366298, 13469271191456159782, 14741959297739369795, 9680020529775065441),
+UInt256(5657595463100853936, 13029980513087487768, 4602038542659718218, 3744169821895721949),
+UInt256(7071994328876067420, 16287475641359359710, 5752548178324647772, 13903584314224428244),
+UInt256(8839992911095084276, 1912600477989648021, 16414057259760585523, 17379480392780535305),
+UInt256(5524995569434427672, 10418747335598305821, 12564628796564059904, 8556332236274140614),
+UInt256(6906244461793034590, 13023434169497882277, 1870727940422911168, 10695415295342675767),
+UInt256(8632805577241293238, 7055920675017577038, 6950095943956026864, 13369269119178344708),
+UInt256(5395503485775808273, 18245008477168149360, 18178868020254680502, 8355793199486465443),
+UInt256(6744379357219760342, 8971202541178022989, 4276840951608799012, 1221369462503305996),
+UInt256(8430474196524700428, 1990631139617752928, 9957737207938386669, 1526711828129132494),
+UInt256(5269046372827937767, 10467516499115871388, 6223585754961491668, 3260037901794401761),
+UInt256(6586307966034922209, 8472709605467451331, 7779482193701864585, 4075047377243002201),
+UInt256(8232884957543652761, 15202573025261702068, 5112666723699942827, 9705495239981140656),
+UInt256(5145553098464782976, 2584079113147481936, 12418788739167240075, 3760091515774518958),
+UInt256(6431941373080978720, 3230098891434352420, 15523485923959050094, 88428376290760793),
+UInt256(8039926716351223400, 4037623614292940526, 957613331239261001, 9333907507218226799),
+UInt256(5024954197719514625, 2523514758933087828, 14433566387306701837, 17362907238079861510),
+UInt256(6281192747149393281, 7766079467093747689, 18041957984133377297, 7868575992317663175),
+UInt256(7851490933936741601, 14319285352294572516, 8717389424884557909, 14447406008824466873),
+UInt256(4907181833710463501, 2032024317543025966, 14671740427407624501, 11335471764728985748),
+UInt256(6133977292138079376, 7151716415356170362, 9116303497404754819, 334281650629068472),
+UInt256(7667471615172599220, 8939645519195212953, 2172007334901167715, 14252910118568499302),
+UInt256(4792169759482874512, 14810650486351783903, 12886719630381699582, 6602225814891618112),
+UInt256(5990212199353593141, 66569034230178263, 11496713519549736573, 17476154305469298448),
+UInt256(7487765249191991426, 4694897311215110733, 9759205881009782813, 8010134826554459348),
+UInt256(4679853280744994641, 7545996837936832112, 8405346684844808210, 7312177275810231045),
+UInt256(5849816600931243301, 14044182065848428044, 10506683356056010262, 18363593631617564614),
+UInt256(7312270751164054127, 3720169527028371343, 13133354195070012828, 13731120002667179959),
+UInt256(9140338438955067659, 38525890358076275, 11805006725410128131, 17163900003333974949),
+UInt256(5712711524346917286, 16164979745969655336, 5072286194167636130, 8421594492870040391),
+UInt256(7140889405433646608, 10982852645607293362, 6340357742709545163, 1303621079232774681),
+UInt256(8926111756792058260, 13728565807009116702, 17148819215241707261, 15464584404323132063),
+UInt256(5578819847995036412, 17803725666235473747, 6106325991098679134, 11971208261915651492),
+UInt256(6973524809993795516, 3807913009084790568, 3021221470445961014, 5740638290539788556),
+UInt256(8716906012492244395, 4759891261355988210, 3776526838057451267, 16399169900029511503),
+UInt256(5448066257807652747, 669089029133798679, 6972015292213294946, 7943638178304750738),
+UInt256(6810082822259565933, 14671419341699412061, 4103333096839230779, 706175686026162614),
+UInt256(8512603527824457417, 4504216121842101364, 9740852389476426377, 14717777662814866979),
+UInt256(5320377204890285885, 14344350122219783112, 15311404780277542294, 2281082011618210006),
+UInt256(6650471506112857357, 4095379597492565179, 692511901637376251, 12074724551377538316),
+UInt256(8313089382641071696, 9730910515293094377, 14700697932328884026, 10481719670794534991),
+UInt256(5195680864150669810, 6081819072058183986, 2270407180064470660, 11162760812673972273),
+UInt256(6494601080188337262, 16825645876927505790, 12061381011935364133, 13953451015842465341),
+]
+
+private let bid_multipliers1_binary80_48: [UInt256] = [
+UInt256(8118251350235421578, 11808685309304606430, 5853354228064429359, 3606755714520917965),
+UInt256(5073907093897138486, 11992114336742766922, 17493404447822432061, 9171751349216655584),
+UInt256(6342383867371423108, 5766770884073682845, 12643383522923264268, 16076375204948207384),
+UInt256(7927979834214278885, 7208463605092103557, 1969171348371916624, 1648724932475707614),
+UInt256(4954987396383924303, 6811132762396258675, 3536575101946141842, 1030453082797317259),
+UInt256(6193734245479905379, 3902229934567935439, 18255776932714841014, 10511438390351422382),
+UInt256(7742167806849881724, 266101399782531395, 18208035147466163364, 3915925951084502169),
+UInt256(4838854879281176077, 9389685411718857930, 9074178957952658150, 11670825756282589664),
+UInt256(6048568599101470096, 16348792783075960317, 2119351660586046880, 5365160158498461271),
+UInt256(7560710748876837621, 1989246905135398780, 7260875594159946504, 6706450198123076589),
+UInt256(4725444218048023513, 3549122324923318189, 13761419283204742373, 4191531373826922868),
+UInt256(5906805272560029391, 9048088924581535641, 3366716048723764254, 9851100235711041489),
+UInt256(7383506590700036739, 6698425137299531647, 8820081079332093222, 3090503257784026054),
+UInt256(4614691619187522962, 1880672701598513327, 12430079702223640119, 15766622591397179996),
+UInt256(5768364523984403702, 11574212913852917467, 10925913609352162245, 15096592220819087091),
+UInt256(7210455654980504628, 5244394105461371026, 9045705993262814903, 5035682220741695151),
+UInt256(9013069568725630785, 6555492631826713783, 2083760454723742821, 1682916757499731035),
+UInt256(5633168480453519240, 15626397940960165874, 8219879311843421119, 3357665982651025849),
+UInt256(7041460600566899051, 1086253352490655727, 1051477102949500590, 18032140533595946023),
+UInt256(8801825750708623813, 15192874745895483370, 15149404433969039450, 13316803630140156721),
+UInt256(5501141094192889883, 11801389725398371058, 14080063789658037560, 12934688287264985855),
+UInt256(6876426367741112354, 10140051138320575919, 8376707700217771142, 16168360359081232318),
+UInt256(8595532959676390443, 3451691886045944091, 5859198606844826024, 10987078411996764589),
+UInt256(5372208099797744026, 18298208493274572721, 1356156120064322313, 6866924007497977869),
+UInt256(6715260124747180033, 13649388579738440093, 6306881168507790795, 13195341027799860240),
+UInt256(8394075155933975042, 3226677669390886404, 12495287479062126398, 11882490266322437395),
+UInt256(5246296972458734401, 6628359561796691906, 17032926711268604807, 2814870398024135468),
+UInt256(6557871215573418001, 12897135470673252787, 12067786352230980200, 17353646052812333047),
+UInt256(8197339019466772502, 2286361283059402272, 10473046921861337347, 3245313492305864693),
+UInt256(5123336887166732813, 15264033857194290132, 6545654326163335841, 18169221997187023097),
+UInt256(6404171108958416017, 5244984266210698953, 8182067907704169802, 8876469441201615159),
+UInt256(8005213886198020021, 11167916351190761595, 14839270903057600157, 1872214764647243141),
+UInt256(5003258678873762513, 9285790728707919949, 6968701305197306146, 3475977237118220915),
+UInt256(6254073348592203141, 16218924429312287840, 13322562649924020586, 13568343583252551952),
+UInt256(7817591685740253927, 6438597481358196088, 16653203312405025733, 7737057442210914132),
+UInt256(4885994803587658704, 10941652453489954411, 10408252070253141083, 7141503910595515285),
+UInt256(6107493504484573380, 13677065566862443014, 8398629069389038450, 4315193869817006202),
+UInt256(7634366880605716725, 17096331958578053768, 1274914299881522254, 14617364374126033560),
+UInt256(4771479300378572953, 12991050483324977557, 796821437425951409, 4524166715401383071),
+UInt256(5964349125473216192, 2403755048874058234, 5607712815209827165, 10266894412679116743),
+UInt256(7455436406841520240, 3004693811092572792, 16233013055867059764, 17445304034276283833),
+UInt256(4659647754275950150, 1877933631932857995, 10145633159916912353, 1679942984567901588),
+UInt256(5824559692844937687, 11570789076770848302, 8070355431468752537, 6711614749137264888),
+UInt256(7280699616056172109, 9851800327536172474, 864572252481164863, 13001204454848969014),
+UInt256(9100874520070215136, 16926436427847603496, 10304087352456231887, 11639819550133823364),
+UInt256(5688046575043884460, 10579022767404752185, 6440054595285144929, 14192416246474721458),
+UInt256(7110058218804855575, 13223778459255940231, 12661754262533819066, 3905462252811238111),
+UInt256(8887572773506069469, 11918037055642537385, 11215506809739885928, 14105199852868823447),
+UInt256(5554732983441293418, 9754616168990279818, 92162728446346849, 8815749908043014654),
+UInt256(6943416229301616773, 2969898174383073964, 9338575447412709369, 15631373403481156222),
+]
+
+private let bid_multipliers1_binary80_49: [UInt256] = [
+UInt256(8679270286627020966, 8324058736406230359, 11673219309265886712, 5704158699069281565),
+UInt256(5424543929141888104, 590850691826506070, 14213291095932261051, 3565099186918300978),
+UInt256(6780679911427360130, 738563364783132588, 8543241833060550505, 18291432038930039935),
+UInt256(8475849889284200162, 10146576242833691543, 10679052291325688132, 9029231993380386206),
+UInt256(5297406180802625101, 10953296170198445118, 13591936709719636938, 14866642032717517187),
+UInt256(6621757726003281376, 18303306231175444302, 7766548850294770365, 9359930504042120676),
+UInt256(8277197157504101721, 4432388715259753762, 484814026013687148, 16311599148480038749),
+UInt256(5173248223440063575, 14299457993105815861, 4914694784685942372, 971377430945248410),
+UInt256(6466560279300079469, 13262636472954881922, 10755054499284815869, 1214221788681560513),
+UInt256(8083200349125099337, 2743237535911438691, 4220446087251244028, 6129463254279338545),
+UInt256(5052000218203187085, 13243738506013118942, 331935795318333565, 13054286570779362399),
+UInt256(6315000272753983857, 2719615077234234965, 9638291781002692765, 2482800158192039286),
+UInt256(7893750340942479821, 8011204864970181610, 16659550744680753860, 7715186216167437011),
+UInt256(4933593963089049888, 7312846049820057458, 15023905233852859066, 14045363421959423940),
+UInt256(6166992453861312360, 9141057562275071823, 9556509505461298025, 8333332240594504117),
+UInt256(7708740567326640450, 11426321952843839779, 7333950863399234627, 15028351319170518051),
+UInt256(4817962854579150281, 11753137238954787766, 2277876280410827690, 7086876565267879830),
+UInt256(6022453568223937852, 856363493411320995, 12070717387368310420, 18081967743439625595),
+UInt256(7528066960279922315, 1070454366764151244, 10476710715783000122, 4155715605589980378),
+UInt256(4705041850174951446, 16809935043723452191, 15771316234219150884, 7209008271921125640),
+UInt256(5881302312718689308, 11789046767799539431, 15102459274346550701, 9011260339901407050),
+UInt256(7351627890898361635, 14736308459749424289, 14266388074505800472, 15875761443304146717),
+UInt256(9189534863622952044, 13808699556259392458, 3997927037850086879, 1397957730420631780),
+UInt256(5743459289764345027, 17853809259516896094, 7110390417083692203, 7791252609153976718),
+UInt256(7179324112205431284, 17705575555968732213, 18111360058209391062, 5127379743015082994),
+UInt256(8974155140256789106, 3685225371251363651, 8804142017479575115, 15632596715623629550),
+UInt256(5608846962660493191, 6914951875459490186, 3196745751711040495, 7464529938051074517),
+UInt256(7011058703325616489, 4032003825896974828, 13219304226493576427, 4718976404136455242),
+UInt256(8763823379157020611, 9651690800798606439, 16524130283116970534, 1287034486743181149),
+UInt256(5477389611973137882, 3726463741285435072, 17245110454589188439, 14639454609496651930),
+UInt256(6846737014966422352, 13881451713461569649, 3109643994526933933, 13687632243443427009),
+UInt256(8558421268708027940, 17351814641826962061, 8498741011586055321, 3274482249022120049),
+UInt256(5349013292942517463, 1621512114287075480, 7617556141454978527, 13575766451707294791),
+UInt256(6686266616178146828, 15861948198141008062, 9521945176818723159, 12358022046206730584),
+UInt256(8357833270222683536, 1380691173966708462, 2679059434168628141, 10835841539331025326),
+UInt256(5223645793889177210, 862931983729192788, 15509470201637556300, 9078243971295584781),
+UInt256(6529557242361471512, 10302037016516266794, 940093678337393759, 11347804964119480976),
+UInt256(8161946552951839390, 12877546270645333492, 10398489134776518007, 9573070186721963316),
+UInt256(5101216595594899619, 3436780400725945528, 15722427746090099562, 12900697894342308929),
+UInt256(6376520744493624523, 18131033556189595623, 1206290608903072837, 6902500331073110353),
+UInt256(7970650930617030654, 18052105926809606624, 15342921316411004758, 13239811432268775845),
+UInt256(4981656831635644159, 6670880185828616236, 9589325822756877974, 3663196126740596999),
+UInt256(6227071039544555199, 3726914213858382391, 11986657278446097467, 13802367195280522057),
+UInt256(7783838799430693999, 46956748895590085, 10371635579630233930, 12641272975673264667),
+UInt256(4864899249644183749, 6946876995700825659, 8788115246482590158, 12512481628223178321),
+UInt256(6081124062055229686, 13295282263053419978, 6373458039675849794, 6417229998424197093),
+UInt256(7601405077569037108, 7395730791961999164, 17190194586449588050, 17244909534885022174),
+UInt256(4750878173480648192, 13845703781831025286, 1520499579676216723, 15389754477730526763),
+UInt256(5938597716850810240, 17307129727288781607, 11123996511450046712, 14625507078735770550),
+UInt256(7423247146063512801, 3187168085401425393, 9293309620885170486, 18281883848419713187),
+]
+
+private let bid_multipliers1_binary80_50: [UInt256] = [
+UInt256(4639529466289695500, 13521195099444360630, 17337533559121701314, 6814491386834932838),
+UInt256(5799411832862119375, 16901493874305450788, 12448544912047350834, 17741486270398441855),
+UInt256(7249264791077649219, 16515181324454425581, 15560681140059188543, 12953485801143276511),
+UInt256(9061580988847061524, 16032290637140644073, 5615793369791821967, 11580171233001707735),
+UInt256(5663488118029413453, 796809611358126737, 15039085902188358489, 14155136048267149190),
+UInt256(7079360147536766816, 5607698032625046326, 4963799322453284400, 3858862005051772776),
+UInt256(8849200184420958520, 7009622540781307907, 15428121189921381308, 4823577506314715970),
+UInt256(5530750115263099075, 4381014087988317442, 7336732734487169365, 12238107978301473289),
+UInt256(6913437644078873844, 864581591558008898, 18394287954963737515, 1462576917594677900),
+UInt256(8641797055098592305, 1080726989447511123, 13769487906849896085, 15663279202275511086),
+UInt256(5401123159436620190, 12204669414473164212, 6300086932567491101, 12095392510635888381),
+UInt256(6751403949295775238, 6032464731236679457, 7875108665709363877, 1284182583012696764),
+UInt256(8439254936619719047, 16763952950900625129, 14455571850564092750, 6216914247193258859),
+UInt256(5274534335387324404, 17394999621953972562, 2117203378961476112, 17720629459777950499),
+UInt256(6593167919234155506, 3297005453732914086, 11869876260556620949, 3704042751012886508),
+UInt256(8241459899042694382, 13344628854020918416, 5613973288841000378, 9241739457193496039),
+UInt256(5150912436901683989, 3728707015335686106, 3508733305525625236, 10387773179173322928),
+UInt256(6438640546127104986, 9272569787596995536, 13609288668761807353, 12984716473966653660),
+UInt256(8048300682658881233, 2367340197641468612, 17011610835952259192, 2395837537176153363),
+UInt256(5030187926661800770, 13008802669594387643, 1408884735615386187, 1497398460735095852),
+UInt256(6287734908327250963, 7037631300138208745, 15596163974801396445, 15706806131201033527),
+UInt256(7859668635409063704, 4185353106745373028, 5660146913219581845, 5798449608719128197),
+UInt256(4912292897130664815, 2615845691715858142, 12760963857617014461, 5929874014663149075),
+UInt256(6140366121413331018, 17104865169926986390, 6727832785166492268, 12024028536756324248),
+UInt256(7675457651766663773, 12157709425553957179, 17633163018312891143, 15030035670945405310),
+UInt256(4797161032354164858, 9904411400184917189, 8714883877231863012, 16311301321981960175),
+UInt256(5996451290442706073, 3157142213376370678, 15505290864967216670, 1942382578767898602),
+UInt256(7495564113053382591, 8558113785147851252, 10158241544354245029, 11651350260314649061),
+UInt256(4684727570658364119, 12266350143358488888, 15572273002076178951, 9587936921910349615),
+UInt256(5855909463322955149, 10721251660770723207, 1018597178885672073, 7373235133960549115),
+UInt256(7319886829153693936, 18013250594390791912, 15108304528889253803, 13828229935878074298),
+UInt256(9149858536442117421, 4069819169278938275, 438636587402015638, 12673601401420204968),
+UInt256(5718661585276323388, 4849479990013030373, 16415048931622117438, 3309314857460240201),
+UInt256(7148326981595404235, 6061849987516287967, 6683753109245483085, 13360015608680076059),
+UInt256(8935408726994255294, 2965626465967972055, 3743005368129465953, 2864961455567931362),
+UInt256(5584630454371409558, 15688574596512146246, 9256907382721998076, 13319815955798426861),
+UInt256(6980788067964261948, 10387346208785407000, 2347762191547721787, 16649769944748033577),
+UInt256(8725985084955327435, 12984182760981758750, 2934702739434652234, 16200526412507654067),
+UInt256(5453740678097079647, 5809271216399905266, 15669247267428821358, 14737015026244671696),
+UInt256(6817175847621349559, 2649903002072493679, 10363187047431250890, 9197896745951063812),
+UInt256(8521469809526686948, 17147436807872780811, 8342297790861675709, 2273998895584053956),
+UInt256(5325918630954179343, 1493775968065712199, 2908093110074853366, 3727092318953727675),
+UInt256(6657398288692724178, 15702278015364303960, 17470174442875730419, 13882237435546935402),
+UInt256(8321747860865905223, 10404475482350604143, 3390973979885111408, 12741110776006281348),
+UInt256(5201092413041190764, 13420326204110209445, 9036887765069276486, 7963194235003925843),
+UInt256(6501365516301488455, 16775407755137761806, 15907795724763983512, 730620756900131495),
+UInt256(8126706895376860569, 16357573675494814354, 10661372619100203582, 913275946125164369),
+UInt256(5079191809610537856, 3305954519543177115, 11275043905365015142, 14405855521610391443),
+UInt256(6348989762013172320, 4132443149428971394, 9482118863278881024, 8783947365158213495),
+UInt256(7936237202516465400, 5165553936786214243, 2629276542243825472, 10979934206447766869),
+]
+
+private let bid_multipliers1_binary80_51: [UInt256] = [
+UInt256(4960148251572790875, 3228471210491383901, 17784198903398248584, 6862458879029854293),
+UInt256(6200185314465988593, 17870647068396393589, 8395190573965647018, 8578073598787317866),
+UInt256(7750231643082485742, 8503250780213328274, 15105674235884446677, 1499219961629371525),
+UInt256(4843894776926553589, 702845719205942267, 14052732415855167077, 3242855485232051155),
+UInt256(6054868471158191986, 5490243167434815738, 12954229501391570942, 8665255374967451848),
+UInt256(7568585588947739982, 16086175996148295481, 6969414839884687870, 1608197181854539002),
+UInt256(4730365993092337489, 5442173979165296771, 15885099320996399678, 14840181293941250588),
+UInt256(5912957491365421861, 11414403492384008868, 15244688132818111694, 9326854580571787427),
+UInt256(7391196864206777327, 432946310197847374, 609116092313088002, 2435196188859958476),
+UInt256(4619498040129235829, 7188120471514736464, 14215755612977843713, 6133683636464861952),
+UInt256(5774372550161544786, 13596836607820808484, 17769694516222304641, 12278790564008465343),
+UInt256(7217965687701930983, 7772673722921234798, 3765374071568329186, 1513430149728417967),
+UInt256(9022457109627413729, 5104156135224155593, 13930089626315187290, 11115159724015298267),
+UInt256(5639035693517133580, 14719312630583567006, 1788776988805910200, 11558660845936949321),
+UInt256(7048794616896416975, 18399140788229458757, 11459343272862163558, 14448326057421186651),
+UInt256(8810993271120521219, 18387239966859435543, 489121035795540736, 8837035534921707506),
+UInt256(5506870794450325762, 9186181970073453262, 7223229675013294816, 5523147209326067191),
+UInt256(6883588493062907203, 2259355425737040769, 18252409130621394328, 6903934011657583989),
+UInt256(8604485616328634003, 16659252337453464674, 8980453357994579198, 8629917514571979986),
+UInt256(5377803510205396252, 8106189701694721469, 10224469367173999903, 782012428180099587),
+UInt256(6722254387756745315, 10132737127118401836, 17392272727394887782, 14812573590507288196),
+UInt256(8402817984695931644, 8054235390470614392, 3293596835534058112, 9292344951279334437),
+UInt256(5251761240434957277, 14257269155898909803, 2058498022208786320, 5807715594549584023),
+UInt256(6564701550543696597, 3986528389591473541, 16408180583043146612, 7259644493186980029),
+UInt256(8205876938179620746, 9594846505416729831, 6675167673521769553, 9074555616483725036),
+UInt256(5128673086362262966, 10608465084312844048, 11089508823592187826, 17200812306370797908),
+UInt256(6410841357952828708, 4037209318536279252, 13861886029490234783, 12277643346108721577),
+UInt256(8013551697441035885, 5046511648170349065, 17327357536862793479, 10735368164208514067),
+UInt256(5008469810900647428, 5459912789320162118, 3912069432898164068, 13627134130271403148),
+UInt256(6260587263625809285, 6824890986650202647, 14113458827977480893, 17033917662839253935),
+UInt256(7825734079532261606, 13142799751740141213, 13030137516544463213, 7457339023266903706),
+UInt256(4891083799707663504, 3602563826410200354, 10449678957053983460, 6966679898755508769),
+UInt256(6113854749634579380, 4503204783012750443, 3838726659462703517, 8708349873444385961),
+UInt256(7642318437043224225, 5629005978765938054, 186722305900991492, 15497123360232870355),
+UInt256(4776449023152015140, 15047343782797181043, 13951759496470283395, 462330063290768164),
+UInt256(5970561278940018926, 362435654786924688, 12828013352160466339, 14412970634395623917),
+UInt256(7463201598675023657, 9676416605338431668, 16035016690200582924, 13404527274567141992),
+UInt256(4664500999171889785, 17576975424404989553, 798513394520588519, 17601201583459239553),
+UInt256(5830626248964862232, 8136161225224073229, 5609827761578123553, 17389815960896661537),
+UInt256(7288282811206077790, 10170201531530091536, 11623970720400042346, 7902211895838663209),
+UInt256(9110353514007597238, 3489379877557838612, 14529963400500052933, 654392832943553204),
+UInt256(5693970946254748273, 16015920478755812844, 18304599162167308891, 2714838529803414704),
+UInt256(7117463682818435342, 6184842543162602344, 4434004878999584497, 17228606217536432092),
+UInt256(8896829603523044177, 16954425215808028738, 5542506098749480622, 7700699716638376403),
+UInt256(5560518502201902611, 3678986732238936105, 8075752330145813293, 201251304471597348),
+UInt256(6950648127752378263, 18433791470580833843, 14706376431109654520, 4863250149016884589),
+UInt256(8688310159690472829, 18430553319798654400, 13771284520459680246, 6079062686271105736),
+UInt256(5430193849806545518, 13824938834087852952, 8607052825287300153, 17634472234201604797),
+UInt256(6787742312258181898, 8057801505755040382, 10758816031609125192, 8208032237469842285),
+UInt256(8484677890322727373, 848879845339024670, 4225148002656630682, 10260040296837302856),
+]
+
+private let bid_multipliers1_binary80_52: [UInt256] = [
+UInt256(5302923681451704608, 2836392912550584370, 16475775556942557888, 11024211203950702189),
+UInt256(6628654601814630760, 3545491140688230463, 11371347409323421552, 13780264004938377736),
+UInt256(8285818252268288450, 4431863925860288079, 9602498243226889036, 17225330006172972170),
+UInt256(5178636407667680281, 7381600972090067953, 12919090429657887504, 1542459217003331799),
+UInt256(6473295509584600351, 13838687233539972846, 2313804981790195668, 1928074021254164748),
+UInt256(8091619386980750439, 12686673023497578153, 12115628264092520393, 2410092526567705935),
+UInt256(5057262116862969024, 14846699667327068202, 654738637416743389, 13035522875173285969),
+UInt256(6321577646078711281, 111630510449283636, 10041795333625705045, 2459345538684443750),
+UInt256(7901972057598389101, 4751224156488992449, 12552244167032131306, 7685867941782942591),
+UInt256(4938732535998993188, 5275358107019314233, 927623576754000210, 9415353482041727024),
+UInt256(6173415669998741485, 6594197633774142791, 5771215489369888167, 2545819815697382971),
+UInt256(7716769587498426856, 12854433060645066393, 2602333343284972304, 17017332824903892426),
+UInt256(4822980992186516785, 8034020662903166495, 13155673385621577450, 10635833015564932766),
+UInt256(6028726240233145981, 14654211847056346023, 11832905713599583909, 4071419232601390150),
+UInt256(7535907800291432477, 4482706753538268817, 10179446123572091982, 9700960059179125591),
+UInt256(4709942375182145298, 5107534730175111962, 17891368873301027249, 1451414018559565591),
+UInt256(5887427968977681622, 15607790449573665761, 13140839054771508253, 6425953541626844892),
+UInt256(7359284961222102028, 10286366025112306394, 2590990763182221604, 12644127945460944019),
+UInt256(9199106201527627535, 12857957531390382992, 12462110490832552813, 15805159931826180024),
+UInt256(5749441375954767209, 14953752484760071226, 7788819056770345508, 12184067966605056467),
+UInt256(7186801719943459012, 4857132550667925321, 512651784108156077, 15230084958256320584),
+UInt256(8983502149929323765, 6071415688334906651, 5252500748562583001, 5202548142538237018),
+UInt256(5614688843705827353, 6100477814423010609, 976969958637920423, 14780807635154867896),
+UInt256(7018361054632284191, 12237283286456151165, 5832898466724788433, 13864323525516196966),
+UInt256(8772951318290355239, 10684918089642801052, 11902809101833373446, 3495346351613082496),
+UInt256(5483094573931472024, 13595602833667832513, 16662627725500634211, 16019649525040340272),
+UInt256(6853868217414340030, 16994503542084790642, 6993226601593629052, 15412875887873037436),
+UInt256(8567335271767925038, 12019757390751212494, 17964905288846812124, 819350786131745179),
+UInt256(5354584544854953149, 2900662350792119905, 6616379787101869673, 9735466278187116545),
+UInt256(6693230681068691436, 8237513956917537785, 12882160752304724995, 16781018866161283585),
+UInt256(8366538351335864295, 10296892446146922232, 2267642885098742532, 16364587564274216577),
+UInt256(5229086469584915184, 13353086806482908251, 1417276803186714083, 1004495190816609553),
+UInt256(6536358086981143980, 16691358508103635313, 15606654059265556315, 15090677043802925653),
+UInt256(8170447608726429976, 2417454061419992526, 5673259518799781682, 14251660286326269162),
+UInt256(5106529755454018735, 1510908788387495328, 17380845254532027263, 13518973697381306130),
+UInt256(6383162194317523418, 15723694040766532873, 3279312494455482463, 12287031103299244759),
+UInt256(7978952742896904273, 10431245514103390283, 8710826636496740983, 10747102860696668045),
+UInt256(4986845464310565170, 18048743492383088687, 3138423638596769162, 13634468315576499384),
+UInt256(6233556830388206463, 13337557328624085050, 17758087603528125165, 7819713357615848422),
+UInt256(7791946037985258079, 12060260642352718409, 12974237467555380648, 14386327715447198431),
+UInt256(4869966273740786299, 14455191929111530862, 1191369389581031049, 8991454822154499020),
+UInt256(6087457842175982874, 13457303892962025673, 10712583773831064619, 15851004546120511679),
+UInt256(7609322302719978593, 7598257829347756283, 18002415735716218678, 15202069664223251694),
+UInt256(4755826439199986620, 16278126189410817437, 8945666825608942722, 4889607521712144405),
+UInt256(5944783048999983276, 1900913663053970180, 15793769550438566306, 15335381438994956314),
+UInt256(7430978811249979095, 2376142078817462726, 1295467864338656267, 9945854761888919584),
+UInt256(4644361757031236934, 8402617826901996059, 14644725470493823879, 3910316216966880788),
+UInt256(5805452196289046168, 1279900246772719266, 13694220819689891945, 276209252781213081),
+UInt256(7256815245361307710, 1599875308465899083, 7894403987757589123, 4956947584403904256),
+UInt256(9071019056701634637, 11223216172437149662, 5256318966269598500, 1584498462077492416),
+]
+
+private let bid_multipliers1_binary80_53: [UInt256] = [
+UInt256(5669386910438521648, 9320353116986912490, 17120257409200662774, 10213683575653208568),
+UInt256(7086733638048152060, 11650441396233640613, 12176949724646052660, 3543732432711734902),
+UInt256(8858417047560190075, 14563051745292050767, 1386129100525402113, 4429665540889668627),
+UInt256(5536510654725118797, 6796064331593837777, 7783859715469458176, 14297756009124512652),
+UInt256(6920638318406398496, 13106766432919685125, 14341510662764210624, 17872195011405640815),
+UInt256(8650797898007998120, 16383458041149606407, 4091830273173099569, 3893499690547499403),
+UInt256(5406748686254998825, 10239661275718504004, 9474922948374269086, 13962652352660656887),
+UInt256(6758435857818748531, 17411262613075517909, 11843653685467836358, 8229943403971045300),
+UInt256(8448044822273435664, 17152392247917009483, 969509051552631736, 1064057218109030817),
+UInt256(5280028013920897290, 10720245154948130926, 16746844221716252499, 665035761318144261),
+UInt256(6600035017401121613, 4176934406830387850, 11710183240290539815, 14666352756929844038),
+UInt256(8250043771751402016, 9832854026965372717, 5414357013508398961, 13721254927734917144),
+UInt256(5156277357344626260, 6145533766853357948, 5689816142656443303, 1658255302193241359),
+UInt256(6445346696680782825, 7681917208566697435, 7112270178320554128, 15907877183023715411),
+UInt256(8056683370850978531, 14214082529135759698, 4278651704473304757, 1438102405070092647),
+UInt256(5035427106781861582, 6577958571496155859, 7285843333723203377, 3204657012382501857),
+UInt256(6294283883477326977, 17445820251224970632, 4495618148726616317, 8617507283905515225),
+UInt256(7867854854346658722, 7972217258749049578, 5619522685908270396, 15383570123309281935),
+UInt256(4917409283966661701, 9594321805145543890, 8123887697120056902, 391359290213525401),
+UInt256(6146761604958327126, 16604588274859317767, 931487584545295319, 9712571149621682560),
+UInt256(7683452006197908908, 11532363306719371400, 14999417535963782861, 7529027918599715295),
+UInt256(4802157503873693067, 16431099103554382933, 9374635959977364288, 7011485458338516012),
+UInt256(6002696879842116334, 15927187861015590762, 16329980968399093264, 8764356822923145015),
+UInt256(7503371099802645418, 10685612789414712645, 11189104173644090772, 10955446028653931268),
+UInt256(4689606937376653386, 11290194011811583307, 9299033117741250684, 16070525804763482851),
+UInt256(5862008671720816733, 4889370477909703326, 7012105378749175452, 1641413182244801947),
+UInt256(7327510839651020916, 10723399115814517061, 17988503760291245123, 2051766477806002434),
+UInt256(9159388549563776145, 13404248894768146327, 8650571645081892691, 16399766152539666754),
+UInt256(5724617843477360091, 1460126531589009598, 12324136305817264788, 7944010836123597770),
+UInt256(7155772304346700113, 15660216219768425710, 6181798345416805177, 9930013545154497212),
+UInt256(8944715380433375142, 5740212219428368425, 16950619968625782279, 17024202949870509419),
+UInt256(5590447112770859463, 17422690692424893978, 3676608452750032068, 17557655871310150243),
+UInt256(6988058890963574329, 17166677347103729568, 13819132602792315894, 3500325765428136188),
+UInt256(8735073613704467912, 7623288628597498248, 17273915753490394867, 13598779243639946042),
+UInt256(5459421008565292445, 4764555392873436405, 10796197345931496792, 6193394018061272325),
+UInt256(6824276260706615556, 10567380259519183410, 18106932700841758894, 7741742522576590406),
+UInt256(8530345325883269445, 13209225324398979263, 13410293839197422810, 453806116365962199),
+UInt256(5331465828677043403, 10561608836963055991, 15298962677139471112, 4895314841156114279),
+UInt256(6664332285846304254, 8590325027776432085, 14512017327996950986, 6119143551445142848),
+UInt256(8330415357307880318, 1514534247865764299, 4304963604714025020, 16872301476161204368),
+UInt256(5206509598317425198, 14781641960198266399, 384759243732571686, 1321816385745976922),
+UInt256(6508136997896781498, 9253680413393057190, 14316007109947878319, 10875642519037246961),
+UInt256(8135171247370976873, 2343728479886545680, 8671636850580072091, 8982867130369170797),
+UInt256(5084482029606860545, 12994045345997560810, 5419773031612545057, 3308448947267037796),
+UInt256(6355602537008575682, 2407498627214787300, 15998088326370457129, 8747247202511185149),
+UInt256(7944503171260719602, 12232745320873259934, 1550866334253519795, 15545745021566369340),
+UInt256(4965314482037949751, 12257151843973175362, 14804349514190613584, 7410247629265286886),
+UInt256(6206643102547437189, 10709753786539081299, 9282064855883491172, 9262809536581608607),
+UInt256(7758303878184296486, 17998878251601239528, 6990895051426976061, 11578511920727010759),
+UInt256(4848939923865185304, 6637612888823386801, 4369309407141860038, 9542412959668075676),
+]
+
+private let bid_multipliers1_binary80_54: [UInt256] = [
+UInt256(6061174904831481630, 8297016111029233501, 10073322777354712952, 2704644162730318787),
+UInt256(7576468631039352038, 1147898101931766068, 17203339490120779094, 3380805203412898484),
+UInt256(4735292894399595023, 14552494368989517505, 1528715144470711125, 15948061307415225265),
+UInt256(5919116117999493779, 13578931942809508977, 6522579949015776811, 6100018578986867869),
+UInt256(7398895147499367224, 12361978910084498317, 12764910954697108918, 3013337205306196932),
+UInt256(4624309467187104515, 7726236818802811448, 10283912355899387025, 15718393808598536795),
+UInt256(5780386833983880644, 5046110005076126406, 12854890444874233782, 5812934205466007281),
+UInt256(7225483542479850805, 6307637506345158008, 6845241019238016419, 16489539793687284909),
+UInt256(9031854428099813506, 12496232901358835414, 8556551274047520524, 16000238723681718232),
+UInt256(5644909017562383441, 12421831581776660038, 736158527852312424, 776777165446298087),
+UInt256(7056136271952979302, 1692231421938661335, 10143570196670166338, 970971456807872609),
+UInt256(8820170339941224127, 11338661314278102477, 8067776727410320018, 10437086357864616569),
+UInt256(5512606462463265079, 14004192349064895904, 7348203463845143963, 11134864992092773260),
+UInt256(6890758078079081349, 12893554417903731976, 9185254329806429954, 9306895221688578671),
+UInt256(8613447597598851687, 2281884967097501258, 11481567912258037443, 2410246990255947531),
+UInt256(5383404748499282304, 8343707132077020142, 11787665963588661305, 17647305433405824871),
+UInt256(6729255935624102880, 10429633915096275178, 5511210417631050824, 8224073736475117376),
+UInt256(8411569919530128600, 13037042393870343972, 16112385058893589338, 10280092170593896720),
+UInt256(5257231199706330375, 8148151496168964983, 846868624953717528, 11036743625048573354),
+UInt256(6571538999632912969, 5573503351783818324, 14893643836474310622, 13795929531310716693),
+UInt256(8214423749541141211, 11578565208157160810, 170310721883336662, 8021539877283620058),
+UInt256(5134014843463213257, 4930760245884531554, 4718130219604473318, 401776404874874632),
+UInt256(6417518554329016571, 10775136325783052346, 15121034811360367455, 9725592542948369098),
+UInt256(8021898192911270714, 8857234388801427529, 9677921477345683511, 7545304660258073469),
+UInt256(5013686370569544196, 10147457511428280109, 17577915969409521954, 11633344440302377774),
+UInt256(6267107963211930245, 12684321889285350137, 8137336906479738731, 5318308513523196410),
+UInt256(7833884954014912807, 2020344306324523959, 14783357151527061318, 2036199623476607608),
+UInt256(4896178096259320504, 8180244219093909330, 16157127247345495179, 15107682819955043467),
+UInt256(6120222620324150630, 10225305273867386663, 10973037022327093166, 14272917506516416430),
+UInt256(7650278275405188288, 3558259555479457521, 9104610259481478554, 8617774846290744729),
+UInt256(4781423922128242680, 2223912222174660950, 17219596458244393856, 9997795297359103360),
+UInt256(5976779902660303350, 2779890277718326188, 12301123535950716512, 12497244121698879200),
+UInt256(7470974878325379187, 12698234884002683543, 15376404419938395640, 15621555152123599000),
+UInt256(4669359298953361992, 5630553793287983262, 16527781790102579131, 9763471970077249375),
+UInt256(5836699123691702490, 7038192241609979078, 11436355200773448106, 7592653944169173815),
+UInt256(7295873904614628112, 18021112338867249656, 5072071964112034325, 267445393356691460),
+UInt256(9119842380768285141, 4079646349874510454, 6340089955140042906, 4945992760123252229),
+UInt256(5699901487980178213, 4855621977885262985, 17797614277244690528, 7702931493504420547),
+UInt256(7124876859975222766, 10681213490783966636, 8411959791273699448, 9628664366880525684),
+UInt256(8906096074969028458, 4128144826625182487, 10514949739092124310, 12035830458600657105),
+UInt256(5566310046855642786, 7191776535068126958, 13489372614573659550, 2910708018198022787),
+UInt256(6957887558569553482, 18213092705689934506, 7638343731362298629, 12861757059602304291),
+UInt256(8697359448211941853, 13542993845257642325, 324557627348097479, 2242138269220716652),
+UInt256(5435849655132463658, 10770214162499720405, 2508691526306254876, 8318865445904029764),
+UInt256(6794812068915579573, 4239395666269874698, 7747550426310206499, 10398581807380037204),
+UInt256(8493515086144474466, 9910930601264731277, 461065996032982316, 8386541240797658601),
+UInt256(5308446928840296541, 10806017644217844952, 2594009256734307899, 14464960312353312434),
+UInt256(6635558661050370676, 18119208073699694094, 3242511570917884874, 13469514372014252638),
+UInt256(8294448326312963346, 4202266018415066001, 13276511500502131901, 7613520928163039990),
+UInt256(5184030203945602091, 7238102279936804155, 1380290660172750582, 7064293589315593946),
+]
+
+private let bid_multipliers1_binary80_55: [UInt256] = [
+UInt256(6480037754932002614, 4435941831493617289, 15560421380498101939, 18053739023499268240),
+UInt256(8100047193665003267, 14768299326221797420, 5615468670340463712, 17955487760946697396),
+UInt256(5062529496040627042, 6924344069674929435, 12733039955817565628, 11222179850591685873),
+UInt256(6328161870050783802, 17878802123948437602, 11304613926344569131, 14027724813239607341),
+UInt256(7910202337563479753, 13125130618080771195, 4907395371075935606, 12922969998122121272),
+UInt256(4943876460977174846, 1285677608659400141, 761279097708765802, 3465170230398937891),
+UInt256(6179845576221468557, 10830469047679025984, 5563284890563345156, 13554834824853448172),
+UInt256(7724806970276835696, 18149772328026170384, 6954106113204181445, 16943543531066810215),
+UInt256(4828004356423022310, 11343607705016356490, 4346316320752613403, 12895557716130450336),
+UInt256(6035005445528777888, 4956137594415669804, 14656267437795542562, 11507761126735675016),
+UInt256(7543756806910972360, 6195171993019587255, 18320334297244428203, 5161329371564817962),
+UInt256(4714848004319357725, 3871982495637242034, 18367737963418849483, 919987848014317275),
+UInt256(5893560005399197156, 9451664137973940447, 13736300417418786045, 14985042865300060305),
+UInt256(7366950006748996445, 11814580172467425559, 12558689503346094653, 4896245526342911669),
+UInt256(9208687508436245557, 933167160302118237, 11086675860755230412, 10731992926356027491),
+UInt256(5755429692772653473, 2889072484402517850, 9235015422185712959, 15930867615827292990),
+UInt256(7194287115965816841, 8223026623930535217, 2320397240877365391, 15301898501356728333),
+UInt256(8992858894957271051, 14890469298340556925, 7512182569524094643, 14515687108268522512),
+UInt256(5620536809348294407, 7000700302249154126, 7000957115166253104, 6766461433454132618),
+UInt256(7025671011685368009, 4139189359384054753, 17974568430812592188, 8458076791817665773),
+UInt256(8782088764606710011, 9785672717657456346, 8633152483233576523, 10572595989772082216),
+UInt256(5488805477879193757, 3810202439322216264, 10007406320448373231, 4302029484393857433),
+UInt256(6861006847348992196, 9374439067580158234, 12509257900560466539, 765850837064933887),
+UInt256(8576258559186240245, 11718048834475197793, 6413200338845807365, 14792371601613331071),
+UInt256(5360161599491400153, 9629623530760692572, 15537465257847099363, 11551075260222025872),
+UInt256(6700201999364250191, 16648715431878253620, 975087498599322588, 9827158056850144435),
+UInt256(8375252499205312739, 16199208271420429121, 1218859373249153235, 12283947571062680544),
+UInt256(5234532812003320462, 7818662160424074248, 12291002154349190532, 5371624222700481388),
+UInt256(6543166015004150578, 549955663675317002, 15363752692936488165, 6714530278375601735),
+UInt256(8178957518755188222, 9910816616448922061, 9981318829315834398, 13004848866396890073),
+UInt256(5111848449221992639, 1582574366853188384, 8544167277536090451, 3516344523070668392),
+UInt256(6389810561527490798, 15813276013848649192, 10680209096920113063, 18230488709120499201),
+UInt256(7987263201909363498, 10543222980456035682, 13350261371150141329, 18176424867973236098),
+UInt256(4992039501193352186, 11201200381212410205, 12955599375396226235, 4442736514842190705),
+UInt256(6240049376491690233, 4778128439660736949, 2359441163963119082, 941734625125350477),
+UInt256(7800061720614612791, 10584346568003309090, 7560987473381286756, 10400540318261463905),
+UInt256(4875038575384132994, 13532745632643150037, 9337303189290692126, 15723709735768190749),
+UInt256(6093798219230166243, 7692560003949161738, 16283315005040753062, 10431265132855462628),
+UInt256(7617247774037707804, 5004013986509064269, 11130771719446165520, 3815709379214552476),
+UInt256(4760779858773567377, 12350880778422940976, 9262575333867547402, 2384818362009095298),
+UInt256(5950974823466959222, 1603542917746512508, 11578219167334434252, 12204394989366144930),
+UInt256(7438718529333699027, 11227800684037916443, 14472773959168042815, 15255493736707681163),
+UInt256(4649199080833561892, 4711532418310003825, 6739640715266332807, 16452212613083382583),
+UInt256(5811498851041952365, 5889415522887504781, 13036236912510303913, 15953579747926840324),
+UInt256(7264373563802440456, 11973455422036768881, 2460238085355716180, 6106916629626386693),
+UInt256(9080466954753050570, 14966819277545961101, 7686983625122033129, 7633645787032983367),
+UInt256(5675291846720656606, 13965948066893613592, 7110207774914964657, 16300243662964084364),
+UInt256(7094114808400820758, 8234063046762241182, 8887759718643705822, 6540246523422941743),
+UInt256(8867643510501025948, 1069206771598025670, 1886327611449856469, 17398680191133452987),
+UInt256(5542277194063141217, 9891626269103541851, 15014012812438324005, 13180018128672102069),
+]
+
+private let bid_multipliers1_binary80_56: [UInt256] = [
+UInt256(6927846492578926521, 16976218854806815218, 14155829997120517103, 2639964605557963874),
+UInt256(8659808115723658152, 7385215513226355311, 8471415459545870570, 17135013812229618555),
+UInt256(5412380072327286345, 4615759695766472069, 12212163689857250962, 15321069651070899501),
+UInt256(6765475090409107931, 10381385638135477991, 1430146557039399991, 9927965026983848568),
+UInt256(8456843863011384914, 8365046029241959584, 15622741251581413701, 7798270265302422806),
+UInt256(5285527414382115571, 9839839786703612644, 9764213282238383563, 7179761925027708206),
+UInt256(6606909267977644464, 7688113714952127901, 12205266602797979454, 4363016387857247353),
+UInt256(8258636584972055580, 9610142143690159877, 1421525198215310605, 14677142521676334999),
+UInt256(5161647865607534737, 15229710876661125731, 3194296258098263080, 11479057085261403327),
+UInt256(6452059832009418422, 5202080540544243451, 17827928377904992562, 14348821356576754158),
+UInt256(8065074790011773027, 15725972712535080122, 17673224453953852799, 8712654658866166890),
+UInt256(5040671743757358142, 7522889936120731124, 15657451302148545903, 12362938189432436162),
+UInt256(6300839679696697678, 180240383296138098, 1125070053976130763, 10841986718363157299),
+UInt256(7876049599620872097, 9448672515974948430, 10629709604324939262, 8940797379526558719),
+UInt256(4922530999763045060, 17434635368552812529, 2031882484275699135, 976312343776711296),
+UInt256(6153163749703806326, 3346550136981464045, 7151539123772011822, 15055448485003052832),
+UInt256(7691454687129757907, 13406559708081605864, 13551109923142402682, 9595938569399040231),
+UInt256(4807159179456098692, 6073256808337309713, 8469443701964001676, 10609147624301788049),
+UInt256(6008948974320123365, 7591571010421637141, 15198490645882389999, 13261434530377235061),
+UInt256(7511186217900154206, 14101149781454434331, 5163055252070823787, 11965107144544155922),
+UInt256(4694491386187596379, 4201532594981633553, 921066523330570915, 5172348956126403499),
+UInt256(5868114232734495474, 640229725299654037, 5763019172590601548, 1853750176730616470),
+UInt256(7335142790918119342, 10023659193479343354, 11815459984165639839, 2317187720913270588),
+UInt256(9168928488647649178, 3306201954994403385, 5545952943352273990, 16731542706423751946),
+UInt256(5730580305404780736, 6678062240298890019, 14995435635663641004, 5845528173087457063),
+UInt256(7163225381755975920, 8347577800373612524, 14132608526152163351, 7306910216359321328),
+UInt256(8954031727194969900, 10434472250467015655, 17665760657690204189, 4521951752021763756),
+UInt256(5596269829496856187, 15744917193396660592, 17958629438697459474, 5132062854227296300),
+UInt256(6995337286871070234, 15069460473318437837, 4001542724662272726, 15638450604638896183),
+UInt256(8744171608588837793, 9613453554793271488, 9613614424255228812, 10324691218943844420),
+UInt256(5465107255368023620, 17537623517814264440, 6008509015159518007, 15676304048694678571),
+UInt256(6831384069210029526, 3475285323558278934, 7510636268949397509, 14983694042440960309),
+UInt256(8539230086512536907, 13567478691302624476, 164923299331971079, 4894559497769036674),
+UInt256(5337018804070335567, 6173831172850446345, 9326449098937257732, 9976628713746729778),
+UInt256(6671273505087919459, 3105602947635670027, 16269747392098960069, 12470785892183412222),
+UInt256(8339091881359899323, 17717061739826751246, 15725498221696312183, 1753424309947101565),
+UInt256(5211932425849937077, 8767320578178025577, 5216750370132807210, 8013419221358020335),
+UInt256(6514915532312421346, 15570836741149919875, 11132623981093396917, 793401989842749610),
+UInt256(8143644415390526683, 10240173889582624036, 9304093957939358242, 5603438505730824917),
+UInt256(5089777759619079177, 4094265671775446070, 15038430760566874709, 8113835084509153477),
+UInt256(6362222199523848971, 9729518108146695492, 9574666413853817578, 14753979874063829750),
+UInt256(7952777749404811214, 7550211616755981461, 11968333017317271973, 9219102805725011380),
+UInt256(4970486093378007009, 107196242045100509, 9786051145036988935, 8067782262791826064),
+UInt256(6213107616722508761, 4745681320983763540, 16844249949723624073, 5473041810062394676),
+UInt256(7766384520903135951, 10543787669657092330, 2608568363444978475, 11452988281005381249),
+UInt256(4853990325564459969, 13507396321176764562, 6242041245580499451, 4852274666414669329),
+UInt256(6067487906955574962, 3049187346188791990, 17025923593830400122, 1453657314590948757),
+UInt256(7584359883694468702, 13034856219590765796, 12059032455433224344, 11040443680093461754),
+UInt256(4740224927309042939, 3535099118816840718, 16760267321500541023, 6900277300058413597),
+UInt256(5925281159136303673, 18253931953803214610, 11726962115020900471, 4013660606645629092),
+]
+
+private let bid_multipliers1_binary80_57: [UInt256] = [
+UInt256(7406601448920379592, 8982356886971854551, 5435330606921349781, 405389739879648460),
+UInt256(4629125905575237245, 5613973054357409094, 10314610656966925469, 2559211596638474240),
+UInt256(5786407381969046556, 11629152336374149272, 3669891284353881028, 7810700514225480704),
+UInt256(7233009227461308195, 14536440420467686590, 4587364105442351285, 9763375642781850880),
+UInt256(9041261534326635244, 13558864507157220333, 14957577168657714914, 16815905571904701503),
+UInt256(5650788458954147027, 17697662353828038516, 11654328739624765773, 15121627000867826344),
+UInt256(7063485573692683784, 17510391923857660241, 14567910924530957217, 5066975695802619218),
+UInt256(8829356967115854731, 3441245831112523686, 4374830600381532809, 10945405638180661926),
+UInt256(5518348104447409206, 18291679708941184967, 16569327180520621717, 18370093569931383464),
+UInt256(6897935130559261508, 13641227599321705401, 16099972957223389243, 9127558907132065618),
+UInt256(8622418913199076885, 17051534499152131752, 6289908141247072842, 6797762615487694118),
+UInt256(5389011820749423053, 12963052071183776297, 3931192588279420526, 8860287653107196728),
+UInt256(6736264775936778817, 2368757033697556659, 9525676753776663562, 1851987529529220102),
+UInt256(8420330969920973521, 7572632310549333728, 7295409923793441548, 11538356448766300935),
+UInt256(5262706856200608450, 16262110240161803340, 4559631202370900967, 16434844817333713893),
+UInt256(6578383570250760563, 11104265763347478367, 5699539002963626209, 15931870003239754462),
+UInt256(8222979462813450704, 9268646185756960055, 2512737735277144858, 6079779448767529365),
+UInt256(5139362164258406690, 5792903866098100034, 8487990112189297392, 8411548173907093757),
+UInt256(6424202705323008362, 16464501869477400851, 1386615603381845932, 10514435217383867197),
+UInt256(8030253381653760453, 11357255299991975255, 15568327559509471127, 13143044021729833996),
+UInt256(5018908363533600283, 9404127571708678486, 16647733752334501310, 15131931541222228103),
+UInt256(6273635454417000354, 7143473446208460204, 11586295153563350830, 9691542389673009321),
+UInt256(7842044318021250442, 18152713844615351063, 14482868941954188538, 2891055950236485843),
+UInt256(4901277698763281526, 15957132171311982318, 15969322116362449692, 6418595987325191556),
+UInt256(6126597123454101908, 10723043177285202090, 10738280608598286307, 8023244984156489445),
+UInt256(7658246404317627385, 13403803971606502613, 4199478723893082076, 5417370211768223902),
+UInt256(4786404002698517116, 1459848454612982277, 4930517211646870249, 12609228419209915747),
+UInt256(5983005003373146395, 1824810568266227846, 10774832532985975716, 1926477468730230972),
+UInt256(7478756254216432993, 16116071265614948520, 4245168629377693837, 2408096835912788715),
+UInt256(4674222658885270621, 3155015513368260969, 2653230393361058648, 3810903531659186899),
+UInt256(5842778323606588276, 8555455410137714115, 7928224010128711214, 4763629414573983623),
+UInt256(7303472904508235345, 10694319262672142644, 5298593994233501113, 15177908805072255337),
+UInt256(9129341130635294181, 17979585096767566209, 6623242492791876392, 5137327951058155459),
+UInt256(5705838206647058863, 13543083694693422832, 15668741604063392505, 3210829969411347162),
+UInt256(7132297758308823579, 12317168599939390637, 1139182931369689015, 8625223480191571857),
+UInt256(8915372197886029474, 10784774731496850392, 6035664682639499173, 6169843331812076917),
+UInt256(5572107623678768421, 11352170225612919399, 3772290426649686983, 6161995091596242025),
+UInt256(6965134529598460527, 355154726733985537, 103677014884720825, 3090807846067914627),
+UInt256(8706418161998075658, 14279001463699645633, 4741282287033288935, 8475195826012281188),
+UInt256(5441511351248797286, 13536061933239666424, 14492516475464275344, 12214526418898757599),
+UInt256(6801889189060996608, 7696705379694807222, 18115645594330344180, 15268158023623446998),
+UInt256(8502361486326245760, 9620881724618509028, 13421184956058154418, 638453455819757132),
+UInt256(5313975928953903600, 6013051077886568142, 17611612634391122319, 5010719428314736112),
+UInt256(6642469911192379500, 7516313847358210178, 12791143756134127091, 1651713266966032235),
+UInt256(8303087388990474375, 9395392309197762723, 6765557658312883055, 15899699638989704006),
+UInt256(5189429618119046484, 12789649220889683558, 1922630527231857957, 16854841302009646860),
+UInt256(6486787022648808105, 15987061526112104447, 11626660195894598255, 7233493572229894863),
+UInt256(8108483778311010132, 6148768852357966847, 9921639226440859915, 4430180946859980674),
+UInt256(5067802361444381332, 13066352569578505087, 13118553544166619303, 463020082573793970),
+UInt256(6334752951805476665, 16332940711973131359, 11786505911780886224, 14413833158499406174),
+]
+
+private let bid_multipliers1_binary80_58: [UInt256] = [
+UInt256(7918441189756845832, 6581117834684250487, 10121446371298719876, 18017291448124257717),
+UInt256(4949025743598028645, 4113198646677656554, 13243433009702781779, 2037435118222885266),
+UInt256(6186282179497535806, 9753184326774458597, 7330919225273701415, 16381851953060770294),
+UInt256(7732852724371919758, 2968108371613297438, 13775335050019514673, 15865628922898574963),
+UInt256(4833032952732449848, 15690125787540474611, 3997898387834808767, 2998489049170527496),
+UInt256(6041291190915562311, 1165913160716041648, 385686966366123054, 17583169366745323082),
+UInt256(7551613988644452888, 15292449506177215772, 482108707957653818, 12755589671576878044),
+UInt256(4719758742902783055, 9557780941360759857, 9524689979328309444, 12583929563162936682),
+UInt256(5899698428628478819, 7335540158273561917, 16517548492587774709, 15729911953953670852),
+UInt256(7374623035785598524, 4557739179414564493, 6811877560452554675, 5827331887159924853),
+UInt256(9218278794731998155, 5697173974268205616, 13126532968993081248, 2672478840522518162),
+UInt256(5761424246707498847, 1254890724703934558, 8204083105620675780, 1670299275326573852),
+UInt256(7201780308384373558, 15403671461162081910, 1031731845171068917, 2087874094158217315),
+UInt256(9002225385480466948, 10031217289597826579, 10513036843318611954, 7221528636125159547),
+UInt256(5626390865925291842, 15492882842853417420, 4264805017860438519, 9125141416005612621),
+UInt256(7032988582406614803, 10142731516711995967, 5331006272325548149, 6794740751579627872),
+UInt256(8791235728008268504, 8066728377462607055, 2052071821979547282, 13105111957901922744),
+UInt256(5494522330005167815, 5041705235914129409, 8200073916378298907, 12802380992116089619),
+UInt256(6868152912506459769, 1690445526465273857, 14861778413900261538, 11391290221717724120),
+UInt256(8585191140633074711, 6724742926508980226, 4742164962093163211, 5015740740292379342),
+UInt256(5365744462895671694, 11120493356709194497, 7575539119735614911, 828994953469043137),
+UInt256(6707180578619589618, 4677244659031717313, 14081109918096906542, 14871301747118467633),
+UInt256(8383975723274487022, 15069927860644422450, 3766329342338969466, 9365755147043308733),
+UInt256(5239984827046554389, 4807018894475376127, 6965641857389243820, 10465282985329455862),
+UInt256(6549981033808192986, 10620459636521608063, 4095366303309166871, 13081603731661819828),
+UInt256(8187476292260241233, 4052202508797234271, 507521860709070685, 11740318646149886881),
+UInt256(5117172682662650770, 14061841614066741179, 7234730190584251034, 9643542163057373253),
+UInt256(6396465853328313463, 8353929980728650666, 4431726719802925889, 2831055666966940758),
+UInt256(7995582316660391829, 5830726457483425428, 14763030436608433169, 8150505602136063851),
+UInt256(4997238947912744893, 5950047045140834845, 3521986025494922, 16623281047403509667),
+UInt256(6246548684890931116, 12049244824853431460, 4616088500959256557, 11555729272399611276),
+UInt256(7808185856113663895, 15061556031066789325, 5770110626199070697, 609603535217350382),
+UInt256(4880116160071039934, 16331001547057825184, 5912162150588113137, 11910217255579313749),
+UInt256(6100145200088799918, 11190379896967505672, 7390202688235141422, 1052713514191978474),
+UInt256(7625181500110999898, 4764602834354606282, 9237753360293926777, 10539263929594748901),
+UInt256(4765738437569374936, 7589562789899016830, 10385281868611092139, 18116255002065187823),
+UInt256(5957173046961718670, 9486953487373771038, 3758230298909089366, 18033632734154096875),
+UInt256(7446466308702148338, 2635319822362437989, 13921159910491137516, 13318668880837845285),
+UInt256(4654041442938842711, 6258760907403911647, 11006567953270654899, 17547540087378429112),
+UInt256(5817551803673553389, 3211765115827501655, 9146523923160930720, 17322739090795648485),
+UInt256(7271939754591941736, 8626392413211764973, 6821468885523775497, 3206679789785008991),
+UInt256(9089924693239927170, 10782990516514706216, 13138522125332107275, 8620035755658649142),
+UInt256(5681202933274954481, 11351055091249079289, 8211576328332567047, 3081679338072961762),
+UInt256(7101503666593693102, 353760808779185399, 14876156428843096712, 17687157227873365914),
+UInt256(8876879583242116377, 9665573047828757557, 13983509517626482987, 3662202461132155777),
+UInt256(5548049739526322735, 17570198200961443233, 11045536457730245818, 18429777602703455025),
+UInt256(6935062174407903419, 17351061732774416137, 18418606590590195177, 13813849966524542973),
+UInt256(8668827718009879274, 17077141147540632268, 9188200182955580260, 3432254402873515004),
+UInt256(5418017323756174546, 15284899235640283071, 14965997151202013470, 11368531038650722686),
+UInt256(6772521654695218183, 9882752007695578031, 14095810420575128934, 4987291761458627549),
+]
+
+private let bid_multipliers1_binary80_59: [UInt256] = [
+UInt256(8465652068369022729, 7741753991192084635, 13008077007291523263, 15457486738678060244),
+UInt256(5291032542730639205, 16367811290563522657, 5824205120343508087, 16578458239314869509),
+UInt256(6613790678413299007, 6624706057922239609, 11891942418856773013, 16111386780716198982),
+UInt256(8267238348016623759, 3669196553975411608, 1029869968288802555, 6304175420613085015),
+UInt256(5167023967510389849, 9210776873875714111, 643668730180501597, 1634266628669484183),
+UInt256(6458779959387987311, 16125157110772030542, 14639643968007790708, 6654519304264243132),
+UInt256(8073474949234984139, 15544760370037650274, 9076182923154962577, 8318149130330303915),
+UInt256(5045921843271865087, 7409632222059837469, 10284300345399239514, 16728058252524909707),
+UInt256(6307402304089831359, 4650354259147408932, 17467061450176437297, 11686700778801361326),
+UInt256(7884252880112289199, 1201256805506873262, 3387082739010995006, 773317918219537945),
+UInt256(4927658050070180749, 7668314531082877644, 15951984767164035590, 14318381754169374928),
+UInt256(6159572562587725936, 14197079182280984960, 1493236885245492872, 8674605155856942852),
+UInt256(7699465703234657420, 17746348977851231200, 1866546106556866090, 10843256444821178564),
+UInt256(4812166064521660888, 1868096074302243692, 1166591316598041306, 11388721296440624507),
+UInt256(6015207580652076110, 2335120092877804615, 1458239145747551633, 5012529583696004826),
+UInt256(7519009475815095137, 12142272152952031576, 15657856987466603253, 10877347998047393936),
+UInt256(4699380922384434461, 671391067953937879, 9786160617166627033, 9104185507993315162),
+UInt256(5874226152980543076, 5450924853369810253, 7621014753030895887, 15991917903419031856),
+UInt256(7342782691225678845, 6813656066712262816, 14137954459716007763, 15378211360846401916),
+UInt256(9178478364032098556, 13128756101817716424, 17672443074645009704, 14611078182630614491),
+UInt256(5736548977520061597, 17428844600490848573, 11045276921653131065, 9131923864144134057),
+UInt256(7170686221900076997, 7950997695331397004, 18418282170493801735, 16026590848607555476),
+UInt256(8963357777375096246, 14550433137591634160, 4576108639407700553, 15421552542332056440),
+UInt256(5602098610859435154, 4482334692567383446, 2860067899629812846, 2720941311316453419),
+UInt256(7002623263574293942, 14826290402564005115, 12798456911392041865, 12624548676000342582),
+UInt256(8753279079467867428, 9309490966350230586, 11386385120812664428, 1945627789718264515),
+UInt256(5470799424667417142, 15041803890823669924, 11728176718935303171, 10439389405428691130),
+UInt256(6838499280834271428, 9578882826674811597, 14660220898669128964, 8437550738358476009),
+UInt256(8548124101042839285, 11973603533343514497, 4490218068054247493, 10546938422948095011),
+UInt256(5342577563151774553, 9789345217553390512, 14335601338602374443, 8897679523556253334),
+UInt256(6678221953939718191, 16848367540369126044, 17919501673252968054, 6510413386017928763),
+UInt256(8347777442424647739, 16448773407034019652, 3952633017856658451, 17361388769377186762),
+UInt256(5217360901515404837, 7974640370182568330, 11693767673015187340, 8545024971647047774),
+UInt256(6521701126894256046, 14579986481155598317, 5393837554414208367, 10681281214558809718),
+UInt256(8152126408617820058, 9001611064589722088, 11353982961445148363, 8739915499771124243),
+UInt256(5095079005386137536, 10237692933795964209, 7096239350903217727, 3156604178143258700),
+UInt256(6368848756732671920, 12797116167244955261, 13481985207056410062, 17780813277961237087),
+UInt256(7961060945915839900, 15996395209056194077, 3017423453538348866, 13002644560596770551),
+UInt256(4975663091197399938, 774374968805345490, 4191732667675161993, 12738338868800369499),
+UInt256(6219578863996749922, 10191340747861457670, 14463037871448728300, 2087865530718298161),
+UInt256(7774473579995937403, 3515803897972046280, 8855425302456134567, 2609831913397872701),
+UInt256(4859045987497460876, 18338278500728386589, 5534640814035084104, 8548673973514752294),
+UInt256(6073807484371826096, 4476104052200931620, 11529987035971243034, 10685842466893440368),
+UInt256(7592259355464782620, 5595130065251164525, 14412483794964053793, 4133931046762024652),
+UInt256(4745162097165489137, 12720328327636753636, 11313645381066227572, 14112921950294735168),
+UInt256(5931452621456861422, 2065352354263778333, 14142056726332784465, 17641152437868418959),
+UInt256(7414315776821076777, 11805062479684498725, 3842512852633816870, 8216382492053359987),
+UInt256(4633947360513172986, 460635022161729847, 4707413542109829496, 523553039105962088),
+UInt256(5792434200641466232, 9799165814556938117, 1272580909209898966, 654441298882452610),
+UInt256(7240542750801832790, 12248957268196172646, 6202412154939761611, 10041423660457841570),
+]
+
+private let bid_multipliers1_binary80_60: [UInt256] = [
+UInt256(9050678438502290988, 6087824548390439999, 16976387230529477822, 7940093557144914059),
+UInt256(5656674024063931867, 13028262379598800807, 17527771046722005495, 350872454788183383),
+UInt256(7070842530079914834, 11673641956071113105, 17298027789975118964, 14273648623767392940),
+UInt256(8838553162599893543, 5368680408234115574, 7787476682186734993, 17842060779709241175),
+UInt256(5524095726624933464, 10272954282787404090, 255486907939321467, 4233758959677193879),
+UInt256(6905119658281166830, 12841192853484255112, 9542730671778927642, 680512681169104444),
+UInt256(8631399572851458538, 6828119030000543082, 11928413339723659552, 10074012888316156363),
+UInt256(5394624733032161586, 8879260412177727330, 12066944355754675124, 6296258055197597727),
+UInt256(6743280916290201983, 1875703478367383355, 5860308407838568097, 7870322568996997159),
+UInt256(8429101145362752478, 16179687403241392906, 2713699491370822217, 14449589229673634353),
+UInt256(5268188215851720299, 5500618608598482662, 6307748200534151790, 2113464240904939615),
+UInt256(6585235269814650374, 2264087242320715423, 17108057287522465545, 11865202337985950326),
+UInt256(8231544087268312967, 12053481089755670087, 16773385590975694028, 996444867200274196),
+UInt256(5144715054542695604, 14450954708738375660, 17400895022000890623, 9846150078854947180),
+UInt256(6430893818178369505, 18063693385922969576, 3304374703791561663, 7696001580141296071),
+UInt256(8038617272722961882, 8744558677121548258, 4130468379739452079, 5008315956749232185),
+UInt256(5024135795451851176, 10077035191628355565, 7193228755764545453, 10047726500609351972),
+UInt256(6280169744314813970, 12596293989535444456, 13603221963133069720, 17171344144189077869),
+UInt256(7850212180393517463, 6521995450064529762, 17004027453916337151, 3017436106526795720),
+UInt256(4906382612745948414, 10993776183931412957, 15239203177125098623, 8803426594220329181),
+UInt256(6132978265932435518, 4518848193059490389, 5213945916124209567, 6392597224348023572),
+UInt256(7666222832415544397, 14871932278179138794, 11129118413582649863, 3379060512007641561),
+UInt256(4791389270259715248, 11600800683075655698, 11567385026916544068, 9029441847645857832),
+UInt256(5989236587824644060, 14501000853844569623, 5235859246790904277, 11286802309557322290),
+UInt256(7486545734780805075, 18126251067305712029, 1933138040061242443, 273444831664489150),
+UInt256(4679091084238003172, 9023063907852376066, 3514054284251970478, 16311804084286163383),
+UInt256(5848863855297503965, 11278829884815470082, 13615939892169738906, 11166383068502928421),
+UInt256(7311079819121879957, 263479300737173891, 7796552828357397825, 4734606798773884718),
+UInt256(9138849773902349946, 4941035144348855268, 5134005017019359377, 10529944516894743801),
+UInt256(5711781108688968716, 7699832983645422446, 12432125172491875418, 18110430369127684636),
+UInt256(7139726385861210895, 9624791229556778058, 6316784428760068465, 13414665924554829987),
+UInt256(8924657982326513619, 7419303018518584668, 17119352572804861390, 2933274350411373771),
+UInt256(5577911238954071012, 2331221377360421466, 1476223321148262560, 15668354524289272319),
+UInt256(6972389048692588765, 2914026721700526832, 11068651188290104009, 1138699081652038783),
+UInt256(8715486310865735956, 8254219420553046444, 13835813985362630011, 6035059870492436382),
+UInt256(5447178944291084972, 14382259174700429835, 17870755777706419565, 1466069409844078787),
+UInt256(6808973680363856215, 17977823968375537294, 17726758703705636552, 6444272780732486388),
+UInt256(8511217100454820269, 17860593942042033714, 12935076342777269882, 8055340975915607985),
+UInt256(5319510687784262668, 13468714222989965023, 12696108732663181580, 9646274128374642895),
+UInt256(6649388359730328335, 16835892778737456279, 11258449897401589071, 12057842660468303618),
+UInt256(8311735449662910419, 16433179954994432445, 9461376353324598435, 10460617307157991618),
+UInt256(5194834656039319012, 7964894462657826326, 8219203230041567974, 4232042807760050810),
+UInt256(6493543320049148765, 9956118078322282908, 1050632000697184159, 14513425546554839320),
+UInt256(8116929150061435956, 17056833616330241539, 1313290000871480199, 13530095914766161246),
+UInt256(5073080718788397473, 1437148973351625153, 16961707315040532788, 15373838974369932635),
+UInt256(6341350898485496841, 6408122235116919346, 7367076088518502274, 770554644252864178),
+UInt256(7926688623106871051, 12621838812323537086, 18432217147502903650, 10186565342170856030),
+UInt256(4954180389441794407, 5582806248488516727, 6908449698761926877, 10978289357284172923),
+UInt256(6192725486802243009, 2366821792183258005, 4023876105025020692, 18334547715032604057),
+UInt256(7740906858502803761, 7570213258656460410, 9641531149708663770, 4471440570081203456),
+]
+
+private let bid_multipliers1_binary80_61: [UInt256] = [
+UInt256(4838066786564252350, 16260598332728757516, 10637642986995302760, 7406336374728140064),
+UInt256(6047583483205315438, 11102375879056171087, 13297053733744128450, 9257920468410175080),
+UInt256(7559479354006644298, 4654597811965438051, 12009631148752772659, 2349028548657943042),
+UInt256(4724674596254152686, 7520809650905786686, 5200176458756788959, 17609043907407072065),
+UInt256(5905843245317690858, 177640026777457549, 15723592610300762007, 17399618865831452177),
+UInt256(7382304056647113572, 9445422070326597745, 5819432707593788797, 17137837563861927318),
+UInt256(4613940035404445982, 15126760830808899398, 15166360488314587758, 13016991486627398526),
+UInt256(5767425044255557478, 9685079001656348440, 9734578573538458890, 7047867321429472349),
+UInt256(7209281305319446848, 2882976715215659742, 12168223216923073612, 18033206188641616244),
+UInt256(9011601631649308560, 3603720894019574678, 5986906984299066208, 4094763662092468689),
+UInt256(5632251019780817850, 2252325558762234173, 17576874920469080092, 2559227288807792931),
+UInt256(7040313774726022312, 12038778985307568525, 8136035595304186403, 3199034111009741163),
+UInt256(8800392218407527890, 15048473731634460656, 14781730512557620907, 17833850694044340166),
+UInt256(5500245136504704931, 14016982100698925814, 9238581570348513067, 8840313674564018652),
+UInt256(6875306420630881164, 12909541607446269364, 2324854926080865526, 6438706074777635411),
+UInt256(8594133025788601455, 16136927009307836705, 2906068657601081907, 17271754630326820071),
+UInt256(5371333141117875909, 17003108408458479796, 13345507957069145952, 8489003634740568593),
+UInt256(6714166426397344887, 7418827455290936033, 16681884946336432440, 10611254543425710741),
+UInt256(8392708032996681109, 4661848300686282138, 7017298127638376838, 13264068179282138426),
+UInt256(5245442520622925693, 5219498197142620288, 8997497348201373428, 3678356593623948612),
+UInt256(6556803150778657116, 11136058764855663264, 11246871685251716785, 4597945742029935765),
+UInt256(8196003938473321395, 13920073456069579080, 14058589606564645981, 10359118195964807611),
+UInt256(5122502461545825872, 6394202900829792973, 8786618504102903738, 8780291881691698709),
+UInt256(6403128076932282340, 7992753626037241216, 15594959148556017577, 1751992815259847578),
+UInt256(8003910096165352925, 9990942032546551521, 1046954861985470355, 6801677037502197376),
+UInt256(5002443810103345578, 8550181779555288652, 12183561834809388732, 1945205139225179408),
+UInt256(6253054762629181973, 1464355187589335007, 15229452293511735915, 2431506424031474260),
+UInt256(7816318453286477466, 6442130002914056663, 14425129348462281989, 16874441085321506537),
+UInt256(4885199033304048416, 8638017270248673318, 15933234870430008099, 12852368687539635538),
+UInt256(6106498791630060520, 10797521587810841648, 10693171551182734316, 11453774840997156518),
+UInt256(7633123489537575650, 13496901984763552060, 13366464438978417895, 14317218551246445648),
+UInt256(4770702180960984781, 13047249758904607941, 17577412311216286992, 15865790622170110386),
+UInt256(5963377726201230977, 2474004143348596215, 8136707333738195029, 1385494204003086367),
+UInt256(7454222157751538721, 7704191197613133173, 5559198148745355882, 6343553773431245862),
+UInt256(4658888848594711700, 16344334544576677993, 5780341852179541378, 8576407126821916568),
+UInt256(5823611060743389626, 1983674107011295875, 11837113333651814627, 1497136871672619902),
+UInt256(7279513825929237032, 11702964670618895652, 10184705648637380379, 15706479144872938589),
+UInt256(9099392282411546290, 14628705838273619565, 12730882060796725474, 15021412912663785332),
+UInt256(5687120176507216431, 13754627167348400132, 10262644297211647373, 14000069088842253737),
+UInt256(7108900220634020539, 12581597940758112261, 12828305371514559217, 3665028305770653459),
+UInt256(8886125275792525674, 11115311407520252423, 2200323659111035309, 9192971400640704728),
+UInt256(5553828297370328546, 11558755648127545668, 8292731314585478924, 8051450134614134407),
+UInt256(6942285371712910683, 5225072523304656277, 10365914143231848655, 10064312668267668009),
+UInt256(8677856714641138354, 1919654635703432442, 17569078697467198723, 7968704816907197107),
+UInt256(5423660446650711471, 5811470165742033180, 15592360204344387106, 2674597501353304240),
+UInt256(6779575558313389339, 2652651688750153572, 1043706181720932266, 12566618913546406108),
+UInt256(8474469447891736673, 17150872666219855677, 1304632727151165333, 6484901605078231826),
+UInt256(5296543404932335421, 3801766388746327942, 3121238463683172285, 6358906512387588844),
+UInt256(6620679256165419276, 9363894004360297831, 13124920116458741164, 12560319158911873958),
+UInt256(8275849070206774095, 11704867505450372289, 11794464127146038551, 15700398948639842448),
+]
+
+private let bid_multipliers1_binary80_62: [UInt256] = [
+UInt256(5172405668879233809, 14233071218547564537, 454011051825192238, 16730278370540983386),
+UInt256(6465507086099042262, 3956280967902291959, 5179199833208878202, 11689475926321453425),
+UInt256(8081883857623802827, 14168723246732640757, 1862313773083709849, 5388472871047040973),
+UInt256(5051177411014876767, 6549609019994206521, 3469789117391012607, 14897010590472870368),
+UInt256(6313971763768595959, 3575325256565370247, 8948922415166153663, 14009577219663700056),
+UInt256(7892464704710744948, 18304214625988876521, 6574467000530304175, 12900285506152237166),
+UInt256(4932790440444215593, 2216762104388272017, 15638256921399909869, 14980207468986230085),
+UInt256(6165988050555269491, 7382638648912727926, 5712763096467723625, 4890201280950623894),
+UInt256(7707485063194086864, 4616612292713522003, 16364325907439430339, 10724437619615667771),
+UInt256(4817178164496304290, 2885382682945951252, 7921860682935950010, 4396930503046098405),
+UInt256(6021472705620380362, 12830100390537214873, 9902325853669937512, 14719535165662398814),
+UInt256(7526840882025475453, 6814253451316742783, 16989593335514809794, 18399418957077998518),
+UInt256(4704275551265922158, 6564751416286658191, 17536024862337837977, 16111322866601136978),
+UInt256(5880344439082402697, 17429311307213098547, 17308345059494909568, 6304095527969257510),
+UInt256(7350430548853003372, 7951581078734209472, 17023745305941249056, 7880119409961571888),
+UInt256(9188038186066254215, 9939476348417761841, 2832937558717009704, 9850149262451964859),
+UInt256(5742523866291408884, 13129701745402183006, 13299801020266600825, 6156343289032478037),
+UInt256(7178154832864261105, 16412127181752728758, 7401379238478475223, 12307115129717985451),
+UInt256(8972693541080326382, 6680100921908747236, 28352011243318221, 10772207893720093909),
+UInt256(5607933463175203988, 18010121131475130734, 9241092043881849696, 9038472942788752645),
+UInt256(7009916828969004986, 4065907340634361802, 2327993017997536312, 11298091178485940807),
+UInt256(8762396036211256232, 14305756212647728060, 12133363309351696198, 14122613973107426008),
+UInt256(5476497522632035145, 8941097632904830037, 16806724105199585932, 4214947714764753351),
+UInt256(6845621903290043931, 15788058059558425451, 7173347076217318703, 5268684643455941689),
+UInt256(8557027379112554914, 15123386556020643910, 4354997826844260475, 1974169785892539207),
+UInt256(5348142111945346821, 14063802615940290347, 16556931697059826508, 17374757180678694669),
+UInt256(6685177639931683527, 3744695214643199222, 16084478602897395232, 3271702402138816720),
+UInt256(8356472049914604409, 69182999876611124, 10882226216766968232, 4089628002673520899),
+UInt256(5222795031196627755, 11572454420991351712, 16024763422334130953, 2556017501670950562),
+UInt256(6528493788995784694, 9853882007811801737, 1584210204208112075, 7806707895516076107),
+UInt256(8160617236244730868, 3093980472909976363, 6591948773687527998, 5146698850967707229),
+UInt256(5100385772652956792, 11157109832423511035, 1814124974341011046, 17051744837136980730),
+UInt256(6375482215816195990, 13946387290529388793, 16102714273208427520, 12091309009566450105),
+UInt256(7969352769770244988, 8209612076306960184, 6293334786228370688, 15114136261958062631),
+UInt256(4980845481106403117, 14354379584546625923, 3933334241392731680, 9446335163723789145),
+UInt256(6226056851383003897, 4107916425401118692, 304981783313526696, 11807918954654736431),
+UInt256(7782571064228754871, 9746581550178786269, 381227229141908370, 14759898693318420538),
+UInt256(4864106915142971794, 13009142496502823274, 2544110027427386683, 13836622701751400741),
+UInt256(6080133643928714743, 7038056083773753284, 12403509571139009162, 12684092358761863022),
+UInt256(7600167054910893429, 4185884086289803701, 15504386963923761453, 6631743411597552969),
+UInt256(4750104409319308393, 4922020563144821265, 11996084861666044860, 6450682641462164558),
+UInt256(5937630511649135491, 10764211722358414486, 1160048021800392363, 8063353301827705697),
+UInt256(7422038139561419364, 8843578634520630203, 10673432064105266262, 5467505608857244217),
+UInt256(4638773837225887102, 14750608683430169685, 4365052030852097461, 17252249060817941348),
+UInt256(5798467296532358878, 9214888817432936298, 10068001056992509731, 7730253270740262973),
+UInt256(7248084120665448598, 2295238984936394565, 3361629284385861356, 5051130569997940812),
+UInt256(9060105150831810747, 12092420768025269014, 8813722623909714599, 6313913212497426015),
+UInt256(5662565719269881717, 5251919970802099182, 896890621516183720, 10863724785451973115),
+UInt256(7078207149087352146, 11176585981930011881, 10344485313750005458, 13579655981814966394),
+UInt256(8847758936359190183, 4747360440557739043, 17542292660614894727, 7751197940413932184),
+]
+
+private let bid_multipliers1_binary80_63: [UInt256] = [
+UInt256(5529849335224493864, 9884629302989668758, 8658089903670615252, 11762027740399789471),
+UInt256(6912311669030617330, 12355786628737085948, 1599240342733493257, 14702534675499736839),
+UInt256(8640389586288271663, 6221361249066581627, 1999050428416866572, 4543110289092507337),
+UInt256(5400243491430169789, 10805879808307695372, 17390307582256399271, 12062815967537592894),
+UInt256(6750304364287712236, 18119035778812007120, 3291140404110947473, 10466833940994603213),
+UInt256(8437880455359640296, 4202050649805457284, 4113925505138684341, 17695228444670641920),
+UInt256(5273675284599775185, 2626281656128410802, 11794575477566453521, 13365360787132845152),
+UInt256(6592094105749718981, 7894538088587901407, 5519847310103291094, 2871642928633892728),
+UInt256(8240117632187148726, 14479858629162264663, 2288123119201725963, 12812925697647141718),
+UInt256(5150073520116967954, 4438225624799027510, 8347605977142160583, 5702235551815769622),
+UInt256(6437591900146209942, 14771154067853560196, 1211135434572924921, 2516108421342324123),
+UInt256(8046989875182762428, 9240570547962174437, 1513919293216156151, 7756821545105293058),
+UInt256(5029368671989226517, 14998728629331134831, 3252042567473791546, 11765542493331890018),
+UInt256(6286710839986533147, 4913352731381754826, 17900111264624403145, 5483556079810086714),
+UInt256(7858388549983166434, 1530004895799805629, 13151767043925728123, 11466131118189996296),
+UInt256(4911492843739479021, 5567939078302266422, 10525697411667274029, 4860488939655053733),
+UInt256(6139366054674348776, 11571609866305220932, 3933749727729316728, 10687297192996205070),
+UInt256(7674207568342935970, 14464512332881526165, 4917187159661645910, 13359121491245256338),
+UInt256(4796379730214334981, 13652006226478341757, 5379084984002222646, 3737764913600897307),
+UInt256(5995474662767918727, 3229949727815763484, 11335542248430166211, 13895578178855897442),
+UInt256(7494343328459898408, 17872495215051868067, 14169427810537707764, 12757786705142483899),
+UInt256(4683964580287436505, 11170309509407417542, 6550049372372373400, 17196988727568828245),
+UInt256(5854955725359295632, 127828831477108215, 17410933752320242559, 3049491835751483690),
+UInt256(7318694656699119540, 159786039346385269, 17151981171972915294, 17646922849971518324),
+UInt256(9148368320873899425, 199732549182981587, 7604918409683980406, 12835281525609622097),
+UInt256(5717730200546187140, 11654047889307833252, 2447230996838793802, 3410364935078625907),
+UInt256(7147162750682733925, 14567559861634791565, 3059038746048492252, 13486328205703058191),
+UInt256(8933953438353417407, 4374391771761325744, 8435484450988003219, 16857910257128822739),
+UInt256(5583720898970885879, 9651523884991910446, 5272177781867502012, 8230350901491820260),
+UInt256(6979651123713607349, 7452718837812500153, 15813594264189153323, 10287938626864775325),
+UInt256(8724563904642009186, 13927584565693013096, 5931934774954277942, 8248237265153581252),
+UInt256(5452852440401255741, 13316426371985521089, 3707459234346423714, 543462272293600379),
+UInt256(6816065550501569677, 2810474909699737649, 9246010061360417546, 9902699877221776281),
+UInt256(8520081938126962096, 8124779655552059965, 16169198595127909837, 3155002809672444544),
+UInt256(5325051211329351310, 5077987284720037478, 12411592131168637600, 4277719765258971792),
+UInt256(6656314014161689137, 15570856142754822656, 6291118127106021192, 5347149706573714740),
+UInt256(8320392517702111422, 5628512123161364608, 7863897658882526490, 6683937133217143425),
+UInt256(5200245323563819638, 17352878132258016592, 4914936036801579056, 8789146726688102545),
+UInt256(6500306654454774548, 12467725628467744932, 6143670046001973820, 10986433408360128181),
+UInt256(8125383318068468185, 15584657035584681165, 7679587557502467275, 13733041760450160226),
+UInt256(5078364573792792616, 2822881619599343872, 7105585232652735999, 6277308091067656189),
+UInt256(6347955717240990770, 3528602024499179840, 8881981540815919999, 3234949095407182332),
+UInt256(7934944646551238462, 13634124567478750608, 11102476926019899998, 17878744424541141627),
+UInt256(4959340404094524039, 3909641836246831226, 6939048078762437499, 6562529246910825613),
+UInt256(6199175505118155049, 275366276881151128, 17897182135307822682, 3591475540211144113),
+UInt256(7748969381397693811, 4955893864528826815, 3924733595425226736, 13712716462118705949),
+UInt256(4843105863373558632, 791590656116822807, 9370487524781848566, 8570447788824191218),
+UInt256(6053882329216948290, 989488320146028509, 7101423387549922804, 1489687699175463214),
+UInt256(7567352911521185362, 10460232437037311444, 13488465252864791409, 1862109623969329018),
+UInt256(4729595569700740851, 11149331291575707556, 17653662819895270438, 12693033561049300396),
+]
+
+private let bid_multipliers1_binary80_64: [UInt256] = [
+UInt256(5911994462125926064, 9324978096042246542, 3620334451159536432, 6642919914456849687),
+UInt256(7389993077657407580, 11656222620052808177, 13748790100804196348, 8303649893071062109),
+UInt256(4618745673535879737, 16508511174387780919, 1675464785361540861, 14413153220024189626),
+UInt256(5773432091919849672, 6800580912702562436, 15929389036984089789, 4181383469748073321),
+UInt256(7216790114899812090, 8500726140878203046, 1464992222520560620, 9838415355612479555),
+UInt256(9020987643624765113, 1402535639242977999, 11054612315005476583, 12298019194515599443),
+UInt256(5638117277265478195, 12405799820595331009, 13826661724519504720, 14603791024213331508),
+UInt256(7047646596581847744, 10895563757316775858, 3448269100367217188, 18254738780266664385),
+UInt256(8809558245727309680, 13619454696645969822, 13533708412313797294, 4371679401623778866),
+UInt256(5505973903579568550, 8512159185403731139, 3846881739268735404, 16567357681297025503),
+UInt256(6882467379474460688, 1416826944899888116, 196916155658531352, 2262453027911730263),
+UInt256(8603084224343075860, 1771033681124860145, 246145194573164190, 2828066284889662828),
+UInt256(5376927640214422412, 10330268087557813398, 11683055792676697378, 15602599483338202980),
+UInt256(6721159550268028015, 12912835109447266748, 5380447703991095915, 10279877317317977917),
+UInt256(8401449437835035019, 11529357868381695531, 6725559629988869894, 8238160628220084492),
+UInt256(5250905898646896887, 4900005658524865755, 1897631759529349732, 537164374210164904),
+UInt256(6563632373308621109, 1513321054728694289, 16207097754693850877, 671455467762706129),
+UInt256(8204540466635776386, 6503337336838255766, 6423814138085149884, 5451005353130770566),
+UInt256(5127837791647360241, 8676271853951297757, 17849941891585382389, 12630250382561507412),
+UInt256(6409797239559200301, 15457025835866510101, 8477369309199564275, 1952754922919720552),
+UInt256(8012246549449000377, 5486224239550973914, 15208397654926843247, 16276001708931814402),
+UInt256(5007654093405625235, 14958105195787828456, 14116934552756664933, 17090030095723465858),
+UInt256(6259567616757031544, 14085945476307397666, 17646168190945831167, 7527479564372168610),
+UInt256(7824459520946289430, 17607431845384247083, 12834338201827513151, 4797663437037822858),
+UInt256(4890287200591430894, 6392958884937766523, 5715618366928501767, 9916068675789721143),
+UInt256(6112859000739288617, 17214570643026983962, 2532836940233239305, 7783399826309763524),
+UInt256(7641073750924110772, 7683155248501566240, 12389418212146324939, 14340935801314592309),
+UInt256(4775671094327569232, 14025344067168254708, 7743386382591453087, 6657241866607926241),
+UInt256(5969588867909461540, 17531680083960318385, 9679232978239316359, 3709866314832519898),
+UInt256(7461986084886826926, 3467856031240846365, 16710727241226533353, 25646875113261968),
+UInt256(4663741303054266828, 16002468074807692690, 12750047534980277297, 11545244343014258490),
+UInt256(5829676628817833536, 1556341019800064247, 6714187381870570814, 596497373485659401),
+UInt256(7287095786022291920, 1945426274750080309, 3781048208910825613, 9968993753711850059),
+UInt256(9108869732527864900, 2431782843437600386, 9337996279565919920, 17072928210567200477),
+UInt256(5693043582829915562, 10743236314003276049, 10447933693156087854, 10670580131604500298),
+UInt256(7116304478537394453, 4205673355649319253, 17671603134872497722, 4114853127650849565),
+UInt256(8895380598171743066, 9868777712989036971, 8254445863308458440, 14366938446418337764),
+UInt256(5559612873857339416, 10779672089045536011, 2853185655354092573, 8979336529011461103),
+UInt256(6949516092321674270, 13474590111306920013, 17401540124474779428, 15835856679691714282),
+UInt256(8686895115402092838, 7619865602278874209, 7916867100311310574, 1348076775905091237),
+UInt256(5429309447126308024, 150729982996908476, 16477256983763038868, 14677606040222845735),
+UInt256(6786636808907885030, 188412478746135596, 2149827155994246969, 18347007550278557169),
+UInt256(8483296011134856287, 9458887635287445303, 2687283944992808712, 9098701382566032749),
+UInt256(5302060006959285179, 12829333799695735170, 8597081493261587301, 5686688364103770468),
+UInt256(6627575008699106474, 11424981231192281059, 1522979829722208318, 11720046473557100989),
+UInt256(8284468760873883093, 5057854502135575515, 15738782842434924110, 5426686055091600428),
+UInt256(5177792975546176933, 5467002073048428649, 7530896267308133616, 17226736839714413980),
+UInt256(6472241219432721166, 11445438609737923715, 14025306352562554925, 3086676975933465859),
+UInt256(8090301524290901458, 5083426225317628836, 12919946922275805752, 8470032238344220227),
+UInt256(5056438452681813411, 7788827409250905926, 17298338863277154403, 5293770148965137642),
+]
+
+private let bid_multipliers1_binary80_65: [UInt256] = [
+UInt256(6320548065852266764, 5124348243136244504, 12399551542241667196, 2005526667779034149),
+UInt256(7900685082315333455, 6405435303920305630, 15499439427802083995, 2506908334723792686),
+UInt256(4937928176447083409, 10920926092591272875, 5075463623948914592, 17707718773698228093),
+UInt256(6172410220558854261, 18262843634166478998, 1732643511508755337, 3687904393413233500),
+UInt256(7715512775698567827, 8993496487425935035, 11389176426240719979, 9221566510193929779),
+UInt256(4822195484811604892, 3315092295427515445, 4812392257186756035, 3457636059657512160),
+UInt256(6027744356014506115, 4143865369284394306, 10627176339910832947, 18157103129854053912),
+UInt256(7534680445018132644, 568145693178104979, 4060598388033765376, 18084692893890179485),
+UInt256(4709175278136332902, 9578463095091091420, 232030983307409408, 11302933058681362179),
+UInt256(5886469097670416128, 2749706832009088467, 290038729134261760, 14128666323351702723),
+UInt256(7358086372088020160, 3437133540011360583, 14197606466699990912, 17660832904189628404),
+UInt256(9197607965110025200, 4296416925014200729, 13135322064947600737, 3629297056527483889),
+UInt256(5748504978193765750, 2685260578133875456, 1292047262951168604, 13797525706398147191),
+UInt256(7185631222742207187, 12579947759522120128, 1615059078688960755, 17246907132997683988),
+UInt256(8982039028427758984, 11113248680975262256, 2018823848361200944, 16946947897819717081),
+UInt256(5613774392767349365, 6945780425609538910, 1261764905225750590, 10591842436137323176),
+UInt256(7017217990959186706, 13293911550439311541, 10800578168386964046, 4016431008316878162),
+UInt256(8771522488698983383, 7394017401194363618, 18112408728911092961, 14243910797250873510),
+UInt256(5482201555436864614, 11538789903387559117, 15931941473996821005, 1984915220640714088),
+UInt256(6852751944296080768, 5200115342379673089, 6079868787213862544, 7092830044228280514),
+UInt256(8565939930370100960, 6500144177974591361, 12211522002444716084, 8866037555285350642),
+UInt256(5353712456481313100, 4062590111234119601, 714672223886865696, 14764645508908119959),
+UInt256(6692140570601641375, 5078237639042649501, 5505026298285970025, 9062812425598333),
+UInt256(8365175713252051719, 1736111030375923972, 11492968891284850435, 4623014533959385820),
+UInt256(5228234820782532324, 8002598421626034338, 16406477593907807330, 583541074510922186),
+UInt256(6535293525978165405, 10003248027032542923, 11284724955529983354, 9952798379993428540),
+UInt256(8169116907472706756, 17115746052218066558, 9494220175985091289, 3217625938137009867),
+UInt256(5105698067170441723, 1473969245781515791, 1322201591563294151, 13540231257404100927),
+UInt256(6382122583963052153, 15677519612509058450, 15487810044736281401, 12313603053327738255),
+UInt256(7977653229953815192, 5761841460354159351, 10136390519065575944, 1556945761377509106),
+UInt256(4986033268721134495, 3601150912721349594, 13252773102057066821, 973091100860943192),
+UInt256(6232541585901418118, 18336496696183850705, 7342594340716557718, 5828049894503566893),
+UInt256(7790676982376772648, 13697248833375037573, 13789928944323085051, 16508434404984234425),
+UInt256(4869173113985482905, 8560780520859398483, 10924548599415622109, 8011928493901452564),
+UInt256(6086466392481853631, 15312661669501636008, 9043999730842139732, 14626596635804203608),
+UInt256(7608082990602317039, 14529141068449657106, 11304999663552674665, 18283245794755254510),
+UInt256(4755051869126448149, 15998242195422117547, 11677310808147809570, 4509499594080952213),
+UInt256(5943814836408060187, 6162744688995483222, 9984952491757374058, 14860246529455966074),
+UInt256(7429768545510075234, 3091744842816966124, 3257818577841941765, 9351936124965181785),
+UInt256(4643605340943797021, 6544026545187991731, 11259508648005989411, 8150803087316932568),
+UInt256(5804506676179746276, 12791719199912377568, 9462699791580098860, 5576817840718777806),
+UInt256(7255633345224682845, 15989648999890471960, 11828374739475123575, 6971022300898472257),
+UInt256(9069541681530853557, 6152003194580926238, 14785468424343904469, 4102091857695702417),
+UInt256(5668463550956783473, 6150845005826772851, 4629231746787552389, 4869650420273507963),
+UInt256(7085579438695979341, 12300242275710853968, 1174853665057052582, 10698749043769272857),
+UInt256(8856974298369974177, 1540244789356403748, 1468567081321315728, 4150064267856815263),
+UInt256(5535608936481233860, 12491868039416222102, 10141226462680598138, 2593790167410509540),
+UInt256(6919511170601542325, 15614835049270277628, 3453161041495971864, 12465609746117912733),
+UInt256(8649388963251927907, 5683485756305683323, 4316451301869964830, 15582012182647390916),
+UInt256(5405868102032454942, 1246335588477358125, 391939054455034067, 5127071595727231419),
+]
+
+private let bid_multipliers1_binary80_66: [UInt256] = [
+UInt256(6757335127540568677, 10781291522451473464, 5101609836496180488, 1797153476231651369),
+UInt256(8446668909425710846, 18088300421491729734, 6377012295620225610, 2246441845289564211),
+UInt256(5279168068391069279, 6693501745004943179, 17820690740044804718, 6015712171733365536),
+UInt256(6598960085488836599, 3755191162828791070, 17664177406628617993, 16743012251521482728),
+UInt256(8248700106861045749, 82302935108600934, 12856849721430996684, 7093707259119689698),
+UInt256(5155437566788153593, 2357282343656569536, 3423845057466985023, 13656939073804581869),
+UInt256(6444296958485191991, 7558288947998099824, 4279806321833731279, 12459487823828339433),
+UInt256(8055371198106489989, 4836175166570236876, 5349757902292164099, 10962673761358036387),
+UInt256(5034606998816556243, 5328452488320091999, 12566970725787378370, 4545828091635078790),
+UInt256(6293258748520695304, 2048879591972727095, 11097027388806835058, 14905657151398624295),
+UInt256(7866573435650869130, 2561099489965908869, 9259598217581155919, 9408699402393504561),
+UInt256(4916608397281793206, 6212373199656080947, 8093091895201916401, 12797966154137022207),
+UInt256(6145760496602241507, 16988838536424876992, 5504678850575007598, 2162399637389114046),
+UInt256(7682200620752801884, 16624362152103708336, 6880848563218759497, 11926371583591168366),
+UInt256(4801375387970501178, 1166854308210041902, 4300530352011724686, 536453212103398373),
+UInt256(6001719234963126472, 10681939922117328185, 14599034976869431665, 9893938551984023774),
+UInt256(7502149043703908090, 13352424902646660232, 4413735665804625869, 16979109208407417621),
+UInt256(4688843152314942556, 12956951582581550549, 2758584791127891168, 12917786264468329965),
+UInt256(5861053940393678195, 16196189478226938186, 8059917007337251864, 16147232830585412457),
+UInt256(7326317425492097744, 15633550829356284829, 851524222316789023, 1737296964522213955),
+UInt256(9157896781865122181, 1095194462985804420, 5676091296323374182, 16006679260934931155),
+UInt256(5723685488665701363, 2990339548579821714, 12770929097056884672, 5392488519656944068),
+UInt256(7154606860832126703, 17572982491006940855, 6740289334466330032, 6740610649571180085),
+UInt256(8943258576040158379, 17354542095331288165, 3813675649655524636, 8425763311963975106),
+UInt256(5589536610025098987, 8540745800368361151, 4689390290248396849, 14489474106832260250),
+UInt256(6986920762531373734, 6064246232033063535, 1250051844383108158, 4276784578258161600),
+UInt256(8733650953164217167, 16803679826896105226, 15397622860761048909, 14569352759677477808),
+UInt256(5458531845727635729, 17419828919451147622, 14235200306403043472, 11411688484012117582),
+UInt256(6823164807159544662, 7939728094031770816, 8570628346149028532, 14264610605015146977),
+UInt256(8528956008949430828, 701288080684937712, 10713285432686285665, 17830763256268933722),
+UInt256(5330597505593394267, 9661677087282861878, 6695803395428928541, 4226698007527001720),
+UInt256(6663246881991742834, 7465410340676189443, 17593126281140936484, 9895058527836140054),
+UInt256(8329058602489678543, 108390888990460996, 17379721832998782701, 12368823159795175068),
+UInt256(5205661626556049089, 6985273333260119979, 1638954108769463380, 10036357484085678369),
+UInt256(6507077033195061361, 13343277685002537877, 15883750691243992937, 12545446855107097962),
+UInt256(8133846291493826702, 2844039050971008635, 6019630308772827460, 1846750513601708740),
+UInt256(5083653932183641688, 15612582462139044109, 1456425933769323210, 10377591107855843771),
+UInt256(6354567415229552111, 1068984003964253520, 6432218435639041917, 3748616847965028905),
+UInt256(7943209269036940138, 15171288060237480612, 8040273044548802396, 9297457078383674035),
+UInt256(4964505793148087586, 14093741056075813286, 14248542689697777305, 15034282710844572080),
+UInt256(6205632241435109483, 8393804283239990800, 8587306325267445824, 4957795333273551388),
+UInt256(7757040301793886854, 5880569335622600596, 10734132906584307280, 6197244166591939235),
+UInt256(4848150188621179283, 17510413890046289084, 15932205103469967858, 3873277604119962022),
+UInt256(6060187735776474104, 17276331344130473452, 1468512305627908206, 14064969042004728336),
+UInt256(7575234669720592631, 3148670106453540199, 1835640382034885258, 8357839265651134611),
+UInt256(4734521668575370394, 8885447844174544480, 8064804266412885142, 9835335559459347036),
+UInt256(5918152085719212993, 1883437768363404792, 10081005333016106428, 3070797412469407987),
+UInt256(7397690107149016241, 6965983228881643894, 12601256666270133035, 3838496765586759984),
+UInt256(4623556316968135150, 15882954564119497194, 3264099397991445243, 93217469278031038),
+UInt256(5779445396210168938, 10630321168294595684, 13303496284344082361, 13951579891879702510),
+]
+
+private let bid_multipliers1_binary80_67: [UInt256] = [
+UInt256(7224306745262711173, 4064529423513468797, 16629370355430102952, 3604416809567464425),
+UInt256(9030383431578388966, 9692347797819223901, 6951654889005464978, 4505521011959330531),
+UInt256(5643989644736493104, 1446031355209627034, 6650627314842109563, 7427636650901969486),
+UInt256(7054987055920616380, 1807539194012033792, 17536656180407412762, 4672859795200073953),
+UInt256(8818733819900770475, 2259423992515042241, 3474076151799714336, 15064446780854868250),
+UInt256(5511708637437981546, 17553041059817759064, 13700512640943291220, 9415279238034292656),
+UInt256(6889635796797476933, 12717929287917423022, 17125640801179114025, 11769099047542865820),
+UInt256(8612044745996846167, 2062353554614615066, 12183678964619116724, 876315754146418563),
+UInt256(5382527966248028854, 8206499999275216272, 12226485371314335856, 9771069383196287410),
+UInt256(6728159957810036068, 1034752962239244532, 15283106714142919820, 12213836728995359262),
+UInt256(8410199947262545085, 1293441202799055666, 657139318969098159, 15267295911244199078),
+UInt256(5256374967039090678, 3114243760963103743, 5022398092783074253, 16459588972168706280),
+UInt256(6570468708798863347, 13116176738058655487, 1666311597551454913, 6739428159928719138),
+UInt256(8213085885998579184, 11783534904145931454, 15917947552221482353, 13035971218338286826),
+UInt256(5133178678749111990, 7364709315091207159, 5337031201711038567, 1229952983820347410),
+UInt256(6416473348436389987, 18429258680718784757, 2059602983711410304, 15372499285057597975),
+UInt256(8020591685545487484, 18424887332471093042, 7186189748066650785, 768880032612445853),
+UInt256(5012869803465929678, 2292182545939657343, 9103054610969044644, 12009765066451248418),
+UInt256(6266087254332412097, 12088600219279347487, 6767132245283917901, 15012206333064060522),
+UInt256(7832609067915515122, 1275692218817020647, 3847229288177509473, 4930199861047911941),
+UInt256(4895380667447196951, 5408993655188025808, 9322047332752025276, 14610589959223414723),
+UInt256(6119225834308996189, 2149556050557644356, 11652559165940031595, 18263237449029268404),
+UInt256(7649032292886245236, 7298631081624443349, 14565698957425039494, 18217360792859197601),
+UInt256(4780645183053903272, 13785016462870052901, 11409404857604343636, 6774164477109610597),
+UInt256(5975806478817379090, 17231270578587566127, 426698016723265833, 8467705596387013246),
+UInt256(7469758098521723863, 12315716186379681850, 14368430576186246003, 15196318013911154461),
+UInt256(4668598811576077414, 14614851644128383012, 13591955128543791656, 7191855749480777586),
+UInt256(5835748514470096768, 9045192518305702957, 16989943910679739570, 8989819686850971983),
+UInt256(7294685643087620960, 11306490647882128697, 7402371833067510751, 2013902571708939170),
+UInt256(9118357053859526200, 14133113309852660871, 13864650809761776342, 16352436269918337675),
+UInt256(5698973158662203875, 8833195818657913044, 15582935783742192070, 5608586650271573143),
+UInt256(7123716448327754844, 6429808754895003402, 1031925655968188471, 16234105349694242237),
+UInt256(8904645560409693555, 8037260943618754252, 10513279106815011397, 15680945668690414892),
+UInt256(5565403475256058472, 2717445080548027455, 15794171478614157931, 12106434052145203259),
+UInt256(6956754344070073090, 3396806350685034319, 15131028329840309510, 10521356546754116170),
+UInt256(8695942930087591362, 13469379975211068707, 14302099393872998984, 3928323646587869405),
+UInt256(5434964331304744601, 13030048502934305846, 6632969111956930413, 2455202279117418378),
+UInt256(6793705414130930752, 2452502573385718595, 17514583426800938824, 7680688867324160876),
+UInt256(8492131767663663440, 3065628216732148244, 17281543265073785626, 9600861084155201095),
+UInt256(5307582354789789650, 1916017635457592653, 1577592503816340208, 10612224196024388589),
+UInt256(6634477943487237062, 11618394081176766624, 6583676648197813164, 13265280245030485736),
+UInt256(8293097429359046328, 5299620564616182472, 8229595810247266455, 16581600306288107170),
+UInt256(5183185893349403955, 3312262852885114045, 5143497381404541534, 17281029219071148837),
+UInt256(6478982366686754943, 17975386621388556268, 11041057745183064822, 12377914486984160238),
+UInt256(8098727958358443679, 17857547258308307431, 13801322181478831028, 6249021071875424490),
+UInt256(5061704973974027299, 18078496064083774000, 15543355391065351248, 13129010206776916114),
+UInt256(6327131217467534124, 17986434061677329597, 982450165122137444, 16411262758471145143),
+UInt256(7908914021834417656, 4036298503387110380, 5839748724830059710, 2067334374379379813),
+UInt256(4943071263646511035, 2522686564616943987, 12873214989873563126, 15127142039269276095),
+UInt256(6178839079558138793, 16988416261053343696, 11479832718914566004, 9685555512231819311),
+]
+
+private let bid_multipliers1_binary80_68: [UInt256] = [
+UInt256(7723548849447673492, 7400462271034515908, 14349790898643207505, 12106944390289774138),
+UInt256(4827218030904795932, 13848660956251348250, 18191991348506780499, 649311216290026981),
+UInt256(6034022538630994915, 17310826195314185313, 13516617148778699815, 14646697075644697438),
+UInt256(7542528173288743644, 17026846725715343738, 3060713380691211057, 13696685326128483893),
+UInt256(4714080108305464778, 1418407166717314028, 6524631881359394815, 1642899301189220577),
+UInt256(5892600135381830972, 10996380995251418343, 8155789851699243518, 15888682181768689433),
+UInt256(7365750169227288715, 13745476244064272929, 5583051296196666494, 10637480690356085984),
+UInt256(9207187711534110894, 12570159286652953257, 11590500138673221022, 4073478826090331671),
+UInt256(5754492319708819309, 3244663535730707882, 326533559029681282, 16380982321588621007),
+UInt256(7193115399636024136, 8667515438090772756, 9631538985641877411, 11252855865131000450),
+UInt256(8991394249545030170, 10834394297613465945, 12039423732052346764, 9454383812986362659),
+UInt256(5619621405965643856, 11383182454435804120, 607110804891634871, 15132361919971252470),
+UInt256(7024526757457054820, 14228978068044755150, 758888506114543589, 14303766381536677683),
+UInt256(8780658446821318525, 17786222585055943937, 10171982669497955295, 4044649921638683392),
+UInt256(5487911529263324078, 13422232124873658912, 17886704214504691819, 9445435228665258976),
+UInt256(6859889411579155098, 7554418119237297833, 3911636194421313158, 7195108017404185816),
+UInt256(8574861764473943873, 219650612191846483, 9501231261454029351, 18217257058610008078),
+UInt256(5359288602796214920, 11666496678688373812, 3632426529195074392, 18303314689272336905),
+UInt256(6699110753495268650, 14583120848360467265, 4540533161493842991, 4432399287880869515),
+UInt256(8373888441869085813, 9005529023595808273, 10287352470294691643, 928813091423698990),
+UInt256(5233680276168178633, 7934298648961074122, 17958810340002652036, 16721409246635669533),
+UInt256(6542100345210223291, 14529559329628730557, 13225140888148539238, 2455017484585035300),
+UInt256(8177625431512779114, 13550263143608525293, 2696368054903510335, 12292143892586069933),
+UInt256(5111015894695486946, 13080600483182716212, 3991073043528387911, 14600118960507375564),
+UInt256(6388769868369358683, 7127378567123619457, 4988841304410484889, 13638462682206831551),
+UInt256(7985962335461698354, 4297537190477136417, 10847737648940494016, 3213020297476375727),
+UInt256(4991226459663561471, 7297646762475598164, 18309051076656278520, 2008137685922734829),
+UInt256(6239033074579451839, 4510372434667109802, 4439569772110796534, 2510172107403418537),
+UInt256(7798791343224314799, 1026279524906499348, 14772834251993271475, 12361087171109048979),
+UInt256(4874244589515196749, 7558953730707643949, 9649370641018864, 5419836472729461660),
+UInt256(6092805736893995936, 14060378181811942840, 4623747731728661484, 6774795590911827075),
+UInt256(7616007171117494920, 17575472727264928550, 5779684664660826855, 8468494488639783843),
+UInt256(4760004481948434325, 10984670454540580343, 17447360970695180496, 12210338083040946758),
+UInt256(5950005602435542906, 18342524086603113333, 17197515194941587716, 15262922603801183448),
+UInt256(7437507003044428633, 13704783071399115859, 7661835938394820934, 631909181041927693),
+UInt256(4648441876902767896, 1647960391983365556, 2482804452283069131, 14230001293433368521),
+UInt256(5810552346128459870, 2059950489979206945, 3103505565353836414, 13175815598364322747),
+UInt256(7263190432660574837, 11798310149328784489, 8491067975119683422, 7246397461100627625),
+UInt256(9078988040825718547, 912829631378816899, 15225520987326992181, 18281368863230560339),
+UInt256(5674367525516074091, 16711419584107618226, 7210107607865676161, 13731698548732794164),
+UInt256(7092959406895092614, 16277588461707134878, 18236006546686871010, 3329565130633828993),
+UInt256(8866199258618865768, 11123613540279142790, 13571636146503812954, 13385328450147062049),
+UInt256(5541374536636791105, 6952258462674464244, 3870586573137495192, 12977516299769301685),
+UInt256(6926718170795988881, 13302009096770468209, 4838233216421868990, 16221895374711627106),
+UInt256(8658397713494986102, 2792453315680921549, 10659477538954724142, 11053997181534758074),
+UInt256(5411498570934366313, 15580341377582739680, 8968016471060396541, 2297062220031835893),
+UInt256(6764373213667957892, 5640368666696260888, 11210020588825495676, 7483013793467182770),
+UInt256(8455466517084947365, 7050460833370326110, 14012525736031869595, 9353767241833978462),
+UInt256(5284666573178092103, 6712381030070147771, 4146142566592530593, 3540261516932542587),
+UInt256(6605833216472615129, 3778790269160296810, 570992189813275337, 9037012914593066138),
+]
+
+private let bid_multipliers1_binary80_69: [UInt256] = [
+UInt256(8257291520590768911, 9335173854877758916, 9937112274121369979, 15907952161668720576),
+UInt256(5160807200369230569, 12752012686939681178, 15434067208180632045, 7636627091829256408),
+UInt256(6451009000461538212, 2104957803392437761, 10069211973371014248, 14157469883213958414),
+UInt256(8063761250576922765, 2631197254240547201, 17198200985141155714, 17696837354017448017),
+UInt256(5039850781610576728, 3950341293114035953, 3831346588072140465, 15672209364688292915),
+UInt256(6299813477013220910, 4937926616392544941, 9400869253517563486, 5755203650578202432),
+UInt256(7874766846266526137, 15395780307345456984, 16362772585324342261, 16417376600077528847),
+UInt256(4921729278916578836, 2704833664449828759, 10226732865827713913, 12566703384262149482),
+UInt256(6152161598645723545, 3381042080562285949, 8171730063857254488, 1873321175045523140),
+UInt256(7690201998307154431, 8837988619130245340, 14826348598248956014, 2341651468806903925),
+UInt256(4806376248941971519, 12441271914597485194, 43095837050821700, 15298590223286478665),
+UInt256(6007970311177464399, 10939903874819468588, 9277241833168302934, 676493705398546716),
+UInt256(7509962888971830499, 9063193825096947831, 11596552291460378667, 10068989168602959202),
+UInt256(4693726805607394062, 3358653131471898442, 14165374209803818523, 3987275221163155550),
+UInt256(5867158507009242577, 13421688451194648861, 8483345725399997346, 372408008026556533),
+UInt256(7333948133761553222, 2942052508711147364, 15215868175177384586, 9688882046887971474),
+UInt256(9167435167201941527, 12900937672743710014, 573091145262179117, 2887730521755188535),
+UInt256(5729646979501213454, 14980615073105900614, 14193240021071025660, 4110674585310686786),
+UInt256(7162058724376516818, 9502396804527599960, 8518177989484006267, 5138343231638358483),
+UInt256(8952573405470646023, 2654623968804724142, 10647722486855007834, 1811243021120560199),
+UInt256(5595358378419153764, 8576669008144034445, 2043140535856991992, 5743712906627738029),
+UInt256(6994197973023942205, 10720836260180043056, 7165611688248627894, 7179641133284672536),
+UInt256(8742747466279927756, 18012731343652441724, 8957014610310784867, 18197923453460616478),
+UInt256(5464217166424954848, 2034585052928000269, 14821506168299016350, 9067859149199191347),
+UInt256(6830271458031193560, 2543231316160000337, 4691824655091606726, 2111451899644213375),
+UInt256(8537839322538991950, 3179039145200000421, 10476466837291896311, 11862686911410042527),
+UInt256(5336149576586869968, 15821957521032163975, 8853634782521129146, 14331708347272358436),
+UInt256(6670186970733587461, 1330702827580653353, 6455357459724023529, 8691263397235672236),
+UInt256(8337733713416984326, 6275064552903204595, 12680882843082417315, 15475765264971978199),
+UInt256(5211083570885615203, 17756973400846666584, 5619708767712816870, 7366510281393792423),
+UInt256(6513854463607019004, 17584530732630945326, 7024635959641021087, 18431509888597016336),
+UInt256(8142318079508773756, 3533919342079130041, 18004166986406052167, 18427701342318882516),
+UInt256(5088948799692983597, 11432071625654232084, 4335075338862700748, 18434842366590383429),
+UInt256(6361185999616229497, 455031476785626393, 5418844173578375936, 4596808884528427670),
+UInt256(7951482499520286871, 5180475364409420895, 11385241235400357824, 5746011105660534587),
+UInt256(4969676562200179294, 10155326130396969915, 14033304799766305496, 3591256941037834117),
+UInt256(6212095702750224118, 3470785626141436586, 12929944981280493966, 4489071176297292646),
+UInt256(7765119628437780147, 13561854069531571541, 6939059189745841649, 14834711007226391616),
+UInt256(4853199767773612592, 6170315784243538261, 6642755002804844983, 2354165351875412904),
+UInt256(6066499709717015740, 7712894730304422826, 12915129771933444132, 16777764745126429842),
+UInt256(7583124637146269675, 9641118412880528533, 6920540178062029358, 2525461857698485686),
+UInt256(4739452898216418547, 3719855998836636381, 6631180620502462300, 15413471716343717266),
+UInt256(5924316122770523184, 38133980118407572, 12900661794055465780, 820095571720094967),
+UInt256(7405395153463153980, 47667475148009465, 16125827242569332225, 1025119464650118708),
+UInt256(4628371970914471237, 9253164208822281724, 3161112998964750784, 12169914711474793953),
+UInt256(5785464963643089046, 16178141279455240059, 3951391248705938480, 15212393389343492441),
+UInt256(7231831204553861308, 10999304562464274266, 327553042455035197, 568747662969813935),
+UInt256(9039789005692326635, 13749130703080342832, 9632813339923569804, 5322620597139655322),
+UInt256(5649868128557704147, 6287363680211520318, 6020508337452231127, 12550009910067060385),
+UInt256(7062335160697130184, 3247518581837012493, 16749007458670064717, 11075826369156437577),
+]
+
+private let bid_multipliers1_binary80_70: [UInt256] = [
+UInt256(8827918950871412730, 4059398227296265617, 7101201268055417185, 9724906163383259),
+UInt256(5517449344294632956, 7148809910487553914, 15967465838603105500, 11535293112420584297),
+UInt256(6896811680368291195, 8936012388109442393, 10735960261399106067, 14419116390525730371),
+UInt256(8621014600460363994, 6558329466709415087, 18031636345176270488, 13412209469729775060),
+UInt256(5388134125287727496, 8710641935120772333, 18187301743376250911, 8382630918581109413),
+UInt256(6735167656609659370, 10888302418900965417, 8899069123938149927, 5866602629798998862),
+UInt256(8418959570762074213, 4387005986771430963, 15735522423350075313, 2721567268821360673),
+UInt256(5261849731726296383, 5047721750945838304, 7528858505380103118, 13230194589081820181),
+UInt256(6577312164657870479, 1697966170254909976, 9411073131725128898, 7314371199497499418),
+UInt256(8221640205822338098, 15957515768100801182, 11763841414656411122, 18366336036226650080),
+UInt256(5138525128638961311, 14585133373490388643, 2740714865732869047, 16090646041069044204),
+UInt256(6423156410798701639, 13619730698435597899, 17260951637448250021, 15501621532908917351),
+UInt256(8028945513498377049, 12412977354617109470, 16964503528382924623, 5541968860853982977),
+UInt256(5018090945936485656, 840581818994611563, 5991128686811939985, 10381259565674821217),
+UInt256(6272613682420607070, 1050727273743264454, 2877224840087537077, 17588260475520914425),
+UInt256(7840767103025758837, 10536781129033856375, 12819903086964197155, 8150267539118979319),
+UInt256(4900479439391099273, 8891331214859854186, 14929968456993705078, 2788074202735668122),
+UInt256(6125599299238874091, 15725850037002205637, 9439088534387355539, 12708464790274360961),
+UInt256(7656999124048592614, 15045626527825369142, 16410546686411582328, 11273894969415563297),
+UInt256(4785624452530370384, 4791830561463467810, 5644905660579851051, 7046184355884727061),
+UInt256(5982030565662962980, 5989788201829334762, 16279504112579589622, 4196044426428520922),
+UInt256(7477538207078703725, 7487235252286668453, 11126008103869711219, 14468427569890426960),
+UInt256(4673461379424189828, 6985365041892861735, 9259598074132263464, 6736924221967822898),
+UInt256(5841826724280237285, 8731706302366077169, 6962811574237941426, 8421155277459778623),
+UInt256(7302283405350296606, 15526318896384984365, 13315200486224814687, 1303072059969947470),
+UInt256(9127854256687870758, 10184526583626454649, 2808942552498854646, 15463898130244598050),
+UInt256(5704908910429919224, 1753643096339146251, 13284804141380253914, 5053250312975485877),
+UInt256(7131136138037399030, 2192053870423932814, 11994319158297929488, 15539934928074133155),
+UInt256(8913920172546748787, 11963439374884691826, 5769526911017636053, 978174586383114827),
+UInt256(5571200107841717992, 5171306600089238439, 8217640337813410437, 2917202125703140719),
+UInt256(6964000134802147490, 6464133250111548049, 5660364403839375142, 8258188675556313803),
+UInt256(8705000168502684362, 17303538599494210869, 11687141523226606832, 1099363807590616445),
+UInt256(5440625105314177726, 15426397643111269697, 9610306461230323222, 687102379744135279),
+UInt256(6800781381642722158, 10059625017034311313, 16624569094965291931, 10082250011534944906),
+UInt256(8500976727053402698, 3351159234438113334, 6945653313424451202, 7991126495991293228),
+UInt256(5313110454408376686, 6706160539951208737, 18176091376172445713, 9606140078421946172),
+UInt256(6641388068010470857, 17606072711793786730, 8885056164933393429, 16619361116454820619),
+UInt256(8301735085013088572, 8172532834460069701, 1882948169311965979, 6939143340286362061),
+UInt256(5188584428133180357, 14331205058392319371, 3482685615033672689, 2031121578465282337),
+UInt256(6485730535166475447, 4078948267708235501, 18188415074074254573, 7150587991508990825),
+UInt256(8107163168958094309, 486999316207906473, 8900460787310654504, 13549921007813626435),
+UInt256(5066976980598808943, 2610217581843635497, 17092003038137628825, 8468700629883516522),
+UInt256(6333721225748511178, 17097830032586708084, 7529945742389872319, 15197561805781783556),
+UInt256(7917151532185638973, 12148915503878609297, 9412432177987340399, 14385266238799841541),
+UInt256(4948219707616024358, 9898915199137824762, 17411985157310557509, 15908320426890982819),
+UInt256(6185274634520030448, 3150271962067505145, 12541609409783421079, 6050342478331564812),
+UInt256(7731593293150038060, 3937839952584381432, 1841953706947112637, 2951242079487068111),
+UInt256(4832245808218773787, 11684522007220014203, 1151221066841945398, 4150369308893111522),
+UInt256(6040307260273467234, 9993966490597629849, 15274084388834595459, 14411333672971165210),
+UInt256(7550384075341834043, 3269086076392261504, 5257547430761080612, 13402481072786568608),
+]
+
+private let bid_multipliers1_binary80_71: [UInt256] = [
+UInt256(4718990047088646276, 18184079862241021104, 3285967144225675382, 17599922707346381188),
+UInt256(5898737558860807846, 4283355754091724764, 4107458930282094228, 12776531347328200677),
+UInt256(7373421948576009807, 14577566729469431763, 5134323662852617785, 15970664184160250846),
+UInt256(9216777435720012259, 13610272393409401800, 1806218560138384328, 6128272174918149846),
+UInt256(5760485897325007662, 6200577236667182173, 1128886600086490205, 3830170109323843654),
+UInt256(7200607371656259577, 16974093582688753524, 6022794268535500660, 9399398655082192471),
+UInt256(9000759214570324472, 7382558923078778193, 7528492835669375825, 11749248318852740589),
+UInt256(5625474509106452795, 4614099326924236370, 16234523068361829651, 425751171641881012),
+UInt256(7031843136383065994, 1155938140227907559, 11069781798597511255, 14367247019834514977),
+UInt256(8789803920478832492, 10668294712139660257, 9225541229819501165, 13347372756365755817),
+UInt256(5493627450299270307, 15891056231942063468, 17295178314705657988, 10647950981942291338),
+UInt256(6867034312874087884, 15252134271500191432, 3172228819672520869, 13309938727427864172),
+UInt256(8583792891092609856, 618423765665687674, 3965286024590651087, 2802365354002666503),
+UInt256(5364870556932881160, 386514853541054796, 7089989783796544833, 8669007373892748421),
+UInt256(6706088196166101450, 483143566926318495, 8862487229745681041, 15447945235793323430),
+UInt256(8382610245207626812, 9827301495512673927, 6466423018754713398, 5474873489459490575),
+UInt256(5239131403254766757, 15365435471550197012, 10959043414362777729, 17256853986194345322),
+UInt256(6548914254068458447, 5371736284155582553, 13698804267953472162, 7736009427460767940),
+UInt256(8186142817585573059, 2102984336767090288, 3288447279659676491, 446639747471184117),
+UInt256(5116339260990983161, 17455266274975289094, 2055279549787297806, 16420050906665347737),
+UInt256(6395424076238728952, 7984024788436947655, 11792471474088898066, 11301691596476908863),
+UInt256(7994280095298411190, 9980030985546184569, 10128903324183734679, 4903742458741360271),
+UInt256(4996425059561506994, 1625833347538977451, 17859779623683303934, 9982368064354432026),
+UInt256(6245531324451883742, 11255663721278497622, 17713038511176742014, 3254588043588264224),
+UInt256(7806914155564854678, 4846207614743346220, 12917926102116151709, 13291607091340106088),
+UInt256(4879321347228034173, 16863937814496755099, 17297075850677370626, 10613097441301260257),
+UInt256(6099151684035042717, 7244864212838780162, 17009658794919325379, 4042999764771799513),
+UInt256(7623939605043803396, 13667766284475863107, 12038701456794380916, 442063687537361487),
+UInt256(4764962253152377122, 17765725964652190250, 5218345401282794120, 9499661841565626738),
+UInt256(5956202816440471403, 12983785418960462004, 15746303788458268458, 11874577301957033422),
+UInt256(7445253520550589254, 11618045755273189602, 1236135661863283957, 5619849590591515969),
+UInt256(4653283450344118284, 2649592578618355597, 5384270807091940377, 5818249003333391433),
+UInt256(5816604312930147855, 3311990723272944496, 11342024527292313375, 11884497272594127195),
+UInt256(7270755391162684818, 17975046459373344332, 14177530659115391719, 10243935572315271090),
+UInt256(9088444238953356023, 13245436037361904607, 17721913323894239649, 8193233446966700958),
+UInt256(5680277649345847514, 15195926550992272235, 17993724855074981636, 16649985950422657859),
+UInt256(7100347061682309393, 9771536151885564486, 17880470050416339142, 2365738364318770708),
+UInt256(8875433827102886741, 16826106208284343512, 13127215526165648119, 12180544992253239193),
+UInt256(5547146141939304213, 12822159389391408647, 8204509703853530074, 14530369647799356352),
+UInt256(6933932677424130267, 2192641181457097097, 5643951111389524689, 8939590022894419631),
+UInt256(8667415846780162833, 16575859532103535083, 11666624907664293765, 15786173547045412443),
+UInt256(5417134904237601771, 3442383179923627571, 4985797558076489651, 12172201476117076729),
+UInt256(6771418630297002213, 18138037030186698176, 1620560929168224160, 10603565826718958007),
+UInt256(8464273287871252767, 8837488232451209008, 2025701161460280200, 13254457283398697509),
+UInt256(5290170804919532979, 12440959172923087486, 1266063225912675125, 8284035802124185943),
+UInt256(6612713506149416224, 10939512947726471453, 10805951069245619714, 14966730771082620333),
+UInt256(8265891882686770280, 13674391184658089316, 18119124854984412547, 9485041426998499608),
+UInt256(5166182426679231425, 8546494490411305823, 2101080997510482034, 3622307882660368303),
+UInt256(6457728033349039281, 15294804131441520182, 16461409302170266254, 13751256890180236187),
+UInt256(8072160041686299102, 5283447109019736516, 11353389590858057010, 7965699075870519426),
+]
+
+private let bid_multipliers1_binary80_72: [UInt256] = [
+UInt256(5045100026053936938, 17137212498419499034, 16319240531141061439, 9590247940846462545),
+UInt256(6306375032567421173, 12198143586169597985, 11175678627071550991, 7376123907630690277),
+UInt256(7882968790709276467, 1412621427429833770, 134540228557275027, 4608468866110974942),
+UInt256(4926855494193297791, 17023789456639503770, 4695773661275684796, 574450032105665387),
+UInt256(6158569367741622239, 16668050802371991808, 15093089113449381803, 718062540132081734),
+UInt256(7698211709677027799, 16223377484537601857, 419617318102175637, 14732636230447265879),
+UInt256(4811382318548142374, 17057139955477083016, 11791475869882329533, 11513740653243235127),
+UInt256(6014227898185177968, 12098052907491577962, 14739344837352911917, 557117761271880196),
+UInt256(7517784872731472460, 15122566134364472453, 9200809009836364088, 5308083220017238149),
+UInt256(4698615545457170288, 228231797123019475, 8056348640361421507, 3317552012510773843),
+UInt256(5873269431821462860, 285289746403774344, 5458749782024388979, 17981998070920631016),
+UInt256(7341586789776828575, 356612183004717930, 6823437227530486224, 17865811570223400866),
+UInt256(9176983487221035718, 14280823284038061124, 17752668571267883589, 3885520389069699467),
+UInt256(5735614679513147324, 4313828534096400299, 1872045820187651435, 4734293252382256119),
+UInt256(7169518349391434155, 5392285667620500373, 16175115330516728006, 1306180547050432244),
+UInt256(8961897936739292694, 2128671066098237563, 6383836107863746295, 10856097720667816113),
+UInt256(5601186210462057933, 15165477471593562189, 1684054558201147482, 13702590103058466927),
+UInt256(7001482763077572417, 5121788784209789024, 6716754216178822257, 7904865591968307851),
+UInt256(8751853453846965521, 11013921998689624184, 8395942770223527821, 14492768008387772717),
+UInt256(5469908408654353450, 18412916295249484875, 5247464231389704888, 11363823014456051900),
+UInt256(6837385510817941813, 13792773332207080286, 1947644270809743206, 14204778768070064875),
+UInt256(8546731888522427267, 3405908609976686645, 11657927375366954816, 8532601423232805286),
+UInt256(5341707430326517041, 18269593945731286817, 9592047618818040712, 5332875889520503304),
+UInt256(6677134287908146302, 9001934376881944809, 16601745541949938794, 6666094861900629130),
+UInt256(8346417859885182878, 2029045934247655204, 6917123872155259780, 17555990614230562220),
+UInt256(5216511162428239298, 15103211764186948214, 13546574456951813171, 1749122097039325580),
+UInt256(6520638953035299123, 9655642668378909460, 7709846034334990655, 16021460676581320687),
+UInt256(8150798691294123904, 7457867317046248921, 9637307542918738319, 15415139827299262954),
+UInt256(5094249182058827440, 4661167073153905575, 17552532260392681209, 16551991419703121203),
+UInt256(6367811477573534300, 5826458841442381969, 17328979307063463608, 6854931219346737791),
+UInt256(7959764346966917875, 7283073551802977462, 7826166078547165798, 8568664024183422239),
+UInt256(4974852716854323672, 2246077960663166962, 279667780664590720, 743728996687250995),
+UInt256(6218565896067904590, 2807597450828958702, 9572956762685514208, 929661245859063744),
+UInt256(7773207370084880737, 12732868850390974186, 2742823916502116952, 1162076557323829680),
+UInt256(4858254606303050461, 1040514003853277010, 6325950966241210999, 726297848327393550),
+UInt256(6072818257878813076, 5912328523243984166, 17130810744656289556, 14742930365691405650),
+UInt256(7591022822348516345, 7390410654054980208, 12190141393965586137, 18428662957114257062),
+UInt256(4744389263967822715, 16148221704852832390, 7618838371228491336, 4600385320555328808),
+UInt256(5930486579959778394, 15573591112638652584, 300175927180838362, 5750481650694161010),
+UInt256(7413108224949722993, 10243616853943539922, 375219908976047952, 16411474100222477070),
+UInt256(4633192640593576870, 17931475579783182211, 4846198461537417874, 10257171312639048169),
+UInt256(5791490800741971088, 13190972437874201956, 1446062058494384439, 3598092103944034403),
+UInt256(7239363500927463860, 16488715547342752445, 1807577573117980548, 18332673185212206716),
+UInt256(9049204376159329826, 2164150360468888940, 6871157984824863590, 4469097407805706779),
+UInt256(5655752735099581141, 5964279993720443491, 13517845777370315551, 16628243935160730449),
+UInt256(7069690918874476426, 12067036010577942268, 12285621203285506535, 16173618900523525157),
+UInt256(8837113648593095533, 5860422976367652027, 15357026504106883169, 15605337607227018542),
+UInt256(5523196030370684708, 5968607369443476469, 7292298555853108029, 2835806976875804733),
+UInt256(6903995037963355885, 7460759211804345586, 13727059213243772940, 8156444739522143820),
+UInt256(8629993797454194856, 13937635033182819887, 7935451979699940367, 10195555924402679775),
+]
+
+private let bid_multipliers1_binary80_73: [UInt256] = [
+UInt256(5393746123408871785, 8711021895739262429, 11877186514953544585, 13289751480392756715),
+UInt256(6742182654261089731, 15500463388101465941, 1011425088409767020, 2777131295208782182),
+UInt256(8427728317826362164, 14763893216699444522, 5875967378939596679, 3471414119010977728),
+UInt256(5267330198641476353, 4061223582377018, 8284165630264635828, 9087162852022942936),
+UInt256(6584162748301845441, 4616762547905359177, 1131835000976018977, 11358953565028678670),
+UInt256(8230203435377306801, 10382639203309086875, 6026479769647411626, 363633901003684625),
+UInt256(5143877147110816750, 18018364548136649057, 1460706846815938314, 4838957206554690795),
+UInt256(6429846433888520938, 13299583648316035513, 6437569576947310796, 15272068545048139302),
+UInt256(8037308042360651173, 7401107523540268583, 12658647989611526400, 643341607600622511),
+UInt256(5023317526475406983, 6931535211426361816, 14829184021148285856, 402088504750389069),
+UInt256(6279146908094258729, 4052732995855564367, 89735952725805704, 502610630937986337),
+UInt256(7848933635117823411, 9677602263246843362, 13947227996189420842, 628263288672482921),
+UInt256(4905583521948639632, 3742658405315583149, 13328703516045775930, 5004350573847689730),
+UInt256(6131979402435799540, 4678323006644478937, 2825821339775056200, 15478810254164387970),
+UInt256(7664974253044749425, 5847903758305598671, 8143962693146208155, 901768743995933346),
+UInt256(4790608908152968390, 15184154895009468929, 12007505710857461952, 16704506529493316006),
+UInt256(5988261135191210488, 9756821581907060354, 1174324083289663729, 2433889088157093391),
+UInt256(7485326418989013110, 12196026977383825442, 10691277140966855469, 7654047378623754642),
+UInt256(4678329011868133194, 3010830842437502997, 11293734231531672572, 7089622620853540604),
+UInt256(5847911264835166492, 12986910589901654555, 282109734132427003, 8862028276066925755),
+UInt256(7309889081043958115, 16233638237377068193, 14187695222947697466, 6465849326656269289),
+UInt256(9137361351304947644, 15680361778293947338, 3899560973402458120, 17305683695175112419),
+UInt256(5710850844565592278, 576854074578941278, 7048911626803924229, 10816052309484445262),
+UInt256(7138563555706990347, 9944439630078452405, 18034511570359681094, 18131751405282944482),
+UInt256(8923204444633737934, 7818863519170677603, 8708081407667437656, 13441317219748904794),
+UInt256(5577002777896086209, 275103681054285598, 3136707870578454583, 8400823262343065496),
+UInt256(6971253472370107761, 4955565619745244901, 13144256875077844037, 5889343059501443966),
+UInt256(8714066840462634701, 10806143043108944031, 2595263038565141334, 11973364842804192862),
+UInt256(5446291775289146688, 9059682411156783971, 8539568426744295190, 2871667008325232635),
+UInt256(6807864719111433360, 11324603013945979964, 6062774515002981083, 12812955797261316601),
+UInt256(8509830898889291700, 14155753767432474955, 7578468143753726354, 11404508728149257848),
+UInt256(5318644311805807312, 18070718141500072655, 2430699580632385019, 11739503973520674059),
+UInt256(6648305389757259141, 4141653603165539202, 16873432531072644986, 10062693948473454670),
+UInt256(8310381737196573926, 9788753022384311907, 11868418626986030425, 3354995398737042529),
+UInt256(5193988585747858704, 1506284620562807038, 5111918632652575063, 13626087170279121341),
+UInt256(6492485732184823380, 1882855775703508797, 15613270327670494637, 12420922944421513772),
+UInt256(8115607165231029225, 2353569719629385997, 5681529854305954585, 1691095625244728503),
+UInt256(5072254478269393265, 13000196120836836008, 5856799168154915567, 12586149811846425074),
+UInt256(6340318097836741582, 2415187095763881298, 7320998960193644459, 11121001246380643439),
+UInt256(7925397622295926977, 12242355906559627430, 18374620737096831382, 9289565539548416394),
+UInt256(4953373513934954361, 733943413958685288, 6872451942258131710, 1194292443790372343),
+UInt256(6191716892418692951, 5529115285875744514, 8590564927822664637, 10716237591592741236),
+UInt256(7739646115523366189, 2299708088917292739, 1514834122923554988, 18006983007918314449),
+UInt256(4837278822202103868, 3743160564787001913, 17087672391323079532, 2030992343094170723),
+UInt256(6046598527752629835, 4678950705983752392, 7524532433871685703, 2538740428867713403),
+UInt256(7558248159690787294, 1237002364052302586, 9405665542339607128, 17008483591366805466),
+UInt256(4723905099806742058, 14608184532814852828, 10490226982389642359, 10630302244604253417),
+UInt256(5904881374758427573, 9036858629163790227, 13112783727987052949, 8676191787327928867),
+UInt256(7381101718448034466, 15907759304882125688, 11779293641556428282, 15456925752587298987),
+UInt256(4613188574030021541, 14554035583978716459, 7362058525972767676, 14272264613794449771),
+]
+
+private let bid_multipliers1_binary80_74: [UInt256] = [
+UInt256(5766485717537526927, 4357486424691231862, 4590887139038571691, 17840330767243062214),
+UInt256(7208107146921908659, 835172012436651923, 14961980960652990422, 17688727440626439863),
+UInt256(9010133933652385823, 14879023070827978616, 14090790182388850124, 12887537263928274021),
+UInt256(5631333708532741139, 16216918446908568491, 8806743863993031327, 17278082826809947071),
+UInt256(7039167135665926424, 15659462040208322710, 6396743811563901255, 16985917515085045935),
+UInt256(8798958919582408031, 1127583476550851771, 17219301801309652377, 16620710875428919514),
+UInt256(5499349324739005019, 7622268700485364213, 8456220616604838784, 3470415269501992841),
+UInt256(6874186655923756274, 4916149857179317362, 15181961789183436384, 4338019086877491051),
+UInt256(8592733319904695342, 15368559358328922511, 9754080199624519672, 5422523858596863813),
+UInt256(5370458324940434589, 4993663580528188665, 13013829152406406651, 3389077411623039883),
+UInt256(6713072906175543236, 10853765494087623736, 2432228385225844601, 18071404819810963566),
+UInt256(8391341132719429045, 13567206867609529670, 3040285481532305752, 8754197969481540746),
+UInt256(5244588207949643153, 10785347301469649995, 15735236481239854807, 5471373730925962966),
+UInt256(6555735259937053941, 18093370145264450398, 15057359583122430605, 2227531145230065804),
+UInt256(8194669074921317427, 8781654626298399286, 9598327442048262448, 7396099949964970158),
+UInt256(5121668171825823392, 3182691132222805602, 1387268632852776126, 4622562468728106349),
+UInt256(6402085214782279240, 3978363915278507002, 10957457827920745965, 15001575122764908744),
+UInt256(8002606518477849050, 4972954894098133753, 4473450248046156649, 4916910848173972218),
+UInt256(5001629074048655656, 7719782827238721499, 14325121451097317665, 14602284326177202397),
+UInt256(6252036342560819570, 9649728534048401874, 13294715795444259178, 4417797352439339284),
+UInt256(7815045428201024463, 2838788630705726535, 7395022707450548164, 14745618727403949912),
+UInt256(4884403392625640289, 8691771921832160940, 11539418219797674458, 18439383741482244503),
+UInt256(6105504240782050361, 15476400920717589079, 14424272774747093073, 13825857639998029821),
+UInt256(7631880300977562952, 5510443095614822637, 13418654950006478438, 3447263994715373564),
+UInt256(4769925188110976845, 3444026934759264148, 10692502352967742975, 15989598051979272190),
+UInt256(5962406485138721056, 8916719686876468089, 13365627941209678719, 15375311546546702333),
+UInt256(7453008106423401320, 11145899608595585112, 2871976871229934687, 14607453414755990013),
+UInt256(4658130066514625825, 6966187255372240695, 1794985544518709179, 16047187411863575614),
+UInt256(5822662583143282281, 13319420087642688772, 16078789985930550186, 15447298246402081613),
+UInt256(7278328228929102852, 2814217054271197254, 1651743408703636117, 10085750771147826209),
+UInt256(9097910286161378565, 3517771317838996567, 11288051297734320954, 17218874482362170665),
+UInt256(5686193928850861603, 4504450082863066806, 13972561088725032452, 15373482569903744570),
+UInt256(7107742411063577004, 1018876585151445604, 8242329324051514758, 770109138670129096),
+UInt256(8884678013829471255, 1273595731439307005, 10302911655064393447, 10186008460192437178),
+UInt256(5552923758643419534, 7713526359790648734, 8745162793628939856, 13283784315261355092),
+UInt256(6941154698304274418, 418535912883535110, 1708081455181399012, 16604730394076693865),
+UInt256(8676443372880343022, 9746541927959194695, 11358473855831524574, 2309168918886315715),
+UInt256(5422777108050214389, 1479902686547108780, 14016575187535784714, 15278288629586111034),
+UInt256(6778471385062767986, 6461564376611273879, 17520718984419730893, 9874488750127862985),
+UInt256(8473089231328459982, 17300327507618868157, 17289212712097275712, 16954796956087216635),
+UInt256(5295680769580287489, 6201018673834404694, 13111600954274491272, 10596748097554510397),
+UInt256(6619600961975359361, 12362959360720393772, 7166129155988338282, 13245935121943137996),
+UInt256(8274501202469199202, 1618641145618328503, 8957661444985422853, 7334046865574146687),
+UInt256(5171563251543249501, 5623336734438843218, 12516067430756971139, 6889622300197535632),
+UInt256(6464454064429061876, 11640856936475941927, 6421712251591438116, 4000341856819531635),
+UInt256(8080567580536327345, 14551071170594927409, 3415454296061909741, 5000427321024414544),
+UInt256(5050354737835204591, 2176890453980747774, 13663873981107163348, 5431110084853953042),
+UInt256(6312943422294005738, 16556171122758098430, 7856470439529178377, 6788887606067441303),
+UInt256(7891179277867507173, 11471841866592847230, 597216012556697163, 13097795526011689532),
+UInt256(4931987048667191983, 9475744175834223470, 14208318063130099439, 5880279194543612006),
+]
+
+private let bid_multipliers1_binary80_75: [UInt256] = [
+UInt256(6164983810833989979, 7232994201365391434, 8537025542057848491, 2738662974752127103),
+UInt256(7706229763542487474, 4429556733279351389, 1447909890717534805, 17258386773722322591),
+UInt256(4816393602214054671, 7380158976726982522, 3210786690912153205, 13092334742790145571),
+UInt256(6020492002767568339, 4613512702481340248, 13236855400494967315, 2530360373205518252),
+UInt256(7525615003459460424, 1155204859674287406, 16546069250618709143, 16998008521789061527),
+UInt256(4703509377162162765, 722003037296429629, 5729607263209305310, 17541284353759245311),
+UInt256(5879386721452703456, 5514189815047924940, 11773695097439019542, 12703233405344280830),
+UInt256(7349233401815879320, 6892737268809906175, 14717118871798774428, 6655669719825575229),
+UInt256(9186541752269849150, 8615921586012382719, 13784712571321080131, 8319587149781969037),
+UInt256(5741588595168655719, 773264972830351295, 15532974384716756938, 2893898959400036696),
+UInt256(7176985743960819648, 14801639271320102831, 14804531962468558268, 12840745736104821678),
+UInt256(8971232179951024561, 55305015440576923, 13893978934658309931, 16050932170131027097),
+UInt256(5607020112469390350, 11563780680718830337, 6377893824947749755, 7725989597118197984),
+UInt256(7008775140586737938, 5231353814043762113, 12584053299612075098, 5045800977970359576),
+UInt256(8760968925733422422, 15762564304409478450, 1895008569232930160, 15530623259317725278),
+UInt256(5475605578583389014, 5239916671828536127, 5796066374197969254, 9706639537073578299),
+UInt256(6844506973229236267, 15773267876640445967, 2633396949320073664, 2909927384487197065),
+UInt256(8555633716536545334, 15104898827373169554, 17126804241932255792, 3637409230608996332),
+UInt256(5347271072835340834, 4828875748680843067, 15315938669635047774, 2273380769130622707),
+UInt256(6684088841044176042, 15259466722705829642, 14533237318616421813, 12065097998268054192),
+UInt256(8355111051305220053, 9850961366527511245, 8943174611415751459, 1246314442552904028),
+UInt256(5221944407065762533, 8462693863293388480, 7895327141348538613, 16919847591091422682),
+UInt256(6527430508832203166, 15190053347544123504, 9869158926685673267, 7314751433582114640),
+UInt256(8159288136040253958, 9764194647575378572, 12336448658357091584, 4531753273550255396),
+UInt256(5099555085025158724, 1490935636307223703, 16933652448327958048, 2832345795968909623),
+UInt256(6374443856281448405, 1863669545384029629, 16555379541982559656, 3540432244961137028),
+UInt256(7968054820351810506, 6941272950157424941, 6859166372196035858, 4425540306201421285),
+UInt256(4980034262719881566, 8949981612275778492, 6592821991836216363, 7377648709803276207),
+UInt256(6225042828399851958, 1964104978489947307, 8241027489795270454, 4610374868826707355),
+UInt256(7781303535499814947, 11678503259967209942, 5689598343816700163, 14986340622888160002),
+UInt256(4863314709687384342, 4993221528265812261, 17391057020167601314, 7060619880091406049),
+UInt256(6079143387109230427, 15464898947187041135, 7903763219927337930, 18049146886969033370),
+UInt256(7598929233886538034, 14719437665556413515, 5268018006481784509, 13338061571856515904),
+UInt256(4749330771179086271, 13811334559400146351, 986668244837421366, 10642131491624016392),
+UInt256(5936663463973857839, 12652482180822795034, 15068393361328940420, 4079292327675244682),
+UInt256(7420829329967322299, 11203916707601105889, 9612119664806399717, 5099115409594055852),
+UInt256(4638018331229576437, 4696604933036997228, 17536789836572469583, 5492790140209978860),
+UInt256(5797522914036970546, 10482442184723634440, 3474243222006035363, 2254301656835085671),
+UInt256(7246903642546213183, 3879680694049767242, 4342804027507544203, 16652935126326020800),
+UInt256(9058629553182766479, 237914849134821148, 14651877071239206062, 16204482889480138096),
+UInt256(5661643470739229049, 7066225808350345073, 18380795206379279597, 5516115787497698406),
+UInt256(7077054338424036311, 13444468278865319246, 9140935952691935784, 11506830752799510912),
+UInt256(8846317923030045389, 12193899330154261154, 2202797904010143922, 14383538440999388640),
+UInt256(5528948701893778368, 9927030090560107173, 5988434708433727855, 13601397544052005804),
+UInt256(6911185877367222960, 12408787613200133966, 12097229403969547723, 12390060911637619351),
+UInt256(8638982346709028700, 15510984516500167458, 5898164718107158846, 10875890121119636284),
+UInt256(5399363966693142938, 470993285957828853, 8298038967244362183, 2185745307272384774),
+UInt256(6749204958366428672, 9812113644302061874, 14984234727482840632, 16567239689372644679),
+UInt256(8436506197958035840, 12265142055377577343, 9506921372498774983, 2262305538006254233),
+UInt256(5272816373723772400, 7665713784610985839, 12859354885452816220, 8331469988894990752),
+]
+
+private let bid_multipliers1_binary80_76: [UInt256] = [
+UInt256(6591020467154715500, 9582142230763732299, 11462507588388632371, 10414337486118738440),
+UInt256(8238775583943394375, 11977677788454665374, 9716448467058402560, 8406235839221035145),
+UInt256(5149234739964621484, 14403577645425247715, 1461094273484113696, 5253897399513146966),
+UInt256(6436543424955776855, 18004472056781559643, 15661425897137305832, 6567371749391433707),
+UInt256(8045679281194721069, 17893904052549561650, 14965096352994244386, 8209214686739292134),
+UInt256(5028549550746700668, 13489533042057169983, 13964871239048790645, 9742445197639445488),
+UInt256(6285686938433375835, 16861916302571462479, 12844403030383600402, 16789742515476694764),
+UInt256(7857108673041719794, 16465709359786940195, 11443817769552112599, 11763806107491092647),
+UInt256(4910692920651074871, 14902754368294225526, 4846543096756376422, 14269907844823014760),
+UInt256(6138366150813843589, 14016756941940394003, 15281550907800246336, 8614012769173992642),
+UInt256(7672957688517304487, 3685888122143328792, 14490252616322920016, 10767515961467490803),
+UInt256(4795598555323315304, 9221209103980662351, 9056407885201825010, 6729697475917181752),
+UInt256(5994498194154144130, 11526511379975827939, 6708823838074893358, 17635493881751252998),
+UInt256(7493122742692680163, 5184767188115009116, 3774343779166228794, 12820995315334290439),
+UInt256(4683201714182925102, 934636483358186745, 11582336898833668804, 12624808090511319429),
+UInt256(5854002142728656377, 10391667641052509240, 642863068259922293, 15781010113139149286),
+UInt256(7317502678410820471, 17601270569743024454, 803578835324902867, 5891204586141772895),
+UInt256(9146878348013525589, 17389902193751392663, 10227845581010904392, 2752319714249828215),
+UInt256(5716798967508453493, 13174531880308314366, 13309932515772897101, 1720199821406142634),
+UInt256(7145998709385566867, 2633106795103229246, 7414043607861345568, 6761935795185066197),
+UInt256(8932498386731958583, 17126441549161200270, 44182472971906152, 8452419743981332746),
+UInt256(5582811491707474114, 17621554995866832024, 13862672100889605057, 5282762339988332966),
+UInt256(6978514364634342643, 12803571707978764222, 17328340126112006321, 11215138943412804112),
+UInt256(8723142955792928304, 11392778616546067374, 12437053120785232094, 183865623983841428),
+UInt256(5451964347370580190, 7120486635341292109, 3161472182063382154, 13949974070272064604),
+UInt256(6814955434213225237, 18123980331031390944, 8563526246006615597, 8214095550985304947),
+UInt256(8518694292766531547, 8819917358507074968, 10704407807508269496, 14879305457159019088),
+UInt256(5324183932979082217, 3206605339853227903, 6690254879692668435, 9299565910724386930),
+UInt256(6655229916223852771, 8619942693243922783, 3751132581188447640, 7012771369978095759),
+UInt256(8319037395279815964, 6163242348127515575, 77229708058171646, 8765964212472619698),
+UInt256(5199398372049884977, 13075398504434473042, 6965797595177439135, 867041614367999408),
+UInt256(6499247965062356222, 2509190075260927590, 17930619030826574726, 14918860073242162971),
+UInt256(8124059956327945277, 12359859630930935296, 13189901751678442600, 9425203054697927906),
+UInt256(5077537472704965798, 10030755278545528512, 8243688594799026625, 5890751909186204942),
+UInt256(6346921840881207248, 3315072061327134832, 10304610743498783281, 11975125904910144081),
+UInt256(7933652301101509060, 4143840076658918540, 12880763429373479102, 1133849325855516389),
+UInt256(4958532688188443162, 11813272084766599895, 17273849180213200246, 14543713883941861455),
+UInt256(6198165860235553953, 5543218069103474061, 16980625456839112404, 8956270318072551011),
+UInt256(7747707325294442441, 11540708604806730481, 7390723765766726793, 11195337897590688764),
+UInt256(4842317078309026526, 295413850363124694, 16148417399672674006, 79557158353098621),
+UInt256(6052896347886283157, 9592639349808681676, 10962149712736066699, 9322818484796149085),
+UInt256(7566120434857853946, 16602485205688239999, 13702687140920083374, 7041837087567798452),
+UInt256(4728825271786158716, 14988239271982537903, 15481708490716133964, 18236206235012037744),
+UInt256(5911031589732698396, 288555016268620763, 14740449594967779552, 4348513720055495564),
+UInt256(7388789487165872995, 360693770335775954, 13813875975282336536, 5435642150069369455),
+UInt256(4617993429478670621, 16366334670955717635, 13245358502978848239, 3397276343793355910),
+UInt256(5772491786848338277, 6622860283412483332, 11945012110296172394, 18081653485023858599),
+UInt256(7215614733560422846, 12890261372692992069, 14931265137870215493, 13378694819425047441),
+UInt256(9019518416950528558, 6889454679011464279, 4829023367055605655, 2888310468999145589),
+UInt256(5637199010594080348, 18140967229664328886, 9935668632050835390, 8722723070765547849),
+]
+
+private let bid_multipliers1_binary80_77: [UInt256] = [
+UInt256(7046498763242600436, 4229464963370859492, 3196213753208768430, 1680031801602159003),
+UInt256(8808123454053250545, 5286831204213574365, 3995267191510960537, 11323411788857474562),
+UInt256(5505077158783281590, 14833484548701953738, 4802885003908044288, 159603340394839746),
+UInt256(6881346448479101988, 9318483649022666364, 15226978291739831168, 199504175493549682),
+UInt256(8601683060598877485, 11648104561278332956, 586978790965237344, 249380219366937102),
+UInt256(5376051912874298428, 9585908360012652049, 9590233781208049148, 155862637104335689),
+UInt256(6720064891092873035, 11982385450015815061, 16599478244937449339, 194828296380419611),
+UInt256(8400081113866091294, 10366295794092380923, 6914289750889647961, 14078593425757688226),
+UInt256(5250050696166307059, 1867248852880350173, 2015588085092336024, 1881591863457473285),
+UInt256(6562563370207883823, 16169119121382601428, 7131171124792807934, 2351989829321841607),
+UInt256(8203204212759854779, 15599712883300863881, 8913963905991009917, 12163359323507077816),
+UInt256(5127002632974909237, 7443977542849345973, 17100442487312850958, 9907942586405617587),
+UInt256(6408753291218636546, 13916657946989070371, 7540495053858899986, 3161556196152246176),
+UInt256(8010941614023295683, 8172450396881562156, 4813932798896237078, 13175317282045083528),
+UInt256(5006838508764559802, 2801938488837282395, 12232080036164923982, 3622887282850789301),
+UInt256(6258548135955699752, 12725795147901378802, 10678414026778767073, 13751981140418262434),
+UInt256(7823185169944624690, 15907243934876723503, 4124645496618683034, 3354918370240664331),
+UInt256(4889490731215390431, 14553713477725340093, 9495432463027758752, 6708509999827803111),
+UInt256(6111863414019238039, 13580455828729287212, 16480976597212086344, 8385637499784753888),
+UInt256(7639829267524047549, 12363883767484221112, 2154476672805556314, 10482046874730942360),
+UInt256(4774893292202529718, 10033270363891332147, 1346547920503472696, 11162965315134226879),
+UInt256(5968616615253162148, 3318215918009389375, 15518242955911504582, 13953706643917783599),
+UInt256(7460770769066452685, 4147769897511736719, 14786117676461992824, 8218761268042453691),
+UInt256(4662981730666532928, 4898199195158529401, 16158852575429827371, 5136725792526533557),
+UInt256(5828727163333166160, 6122748993948161752, 6363507664005120502, 1809221222230779042),
+UInt256(7285908954166457700, 7653436242435202190, 7954384580006400627, 11484898564643249610),
+UInt256(9107386192708072125, 9566795303044002738, 719608688153224976, 9744437187376674109),
+UInt256(5692116370442545078, 8285090073616195663, 5061441448523153514, 6090273242110421318),
+UInt256(7115145463053181348, 1132990555165468771, 1715115792226553988, 16836213589492802456),
+UInt256(8893931828816476685, 1416238193956835963, 15978952795565356198, 2598522913156451454),
+UInt256(5558707393010297928, 3190991880436716429, 7681002488014653671, 15459134876004945871),
+UInt256(6948384241262872410, 3988739850545895536, 14212939128445704993, 14712232576578794434),
+UInt256(8685480301578590512, 14209296850037145228, 17766173910557131242, 4555232665441329331),
+UInt256(5428425188486619070, 8880810531273215768, 1880486657243431218, 7458706434328218736),
+UInt256(6785531485608273838, 1877641127236743902, 2350608321554289023, 100011006055497612),
+UInt256(8481914357010342297, 11570423445900705685, 12161632438797637086, 13960071812851535726),
+UInt256(5301196473131463936, 313985626046859197, 9906863283462217131, 4113358864604821925),
+UInt256(6626495591414329920, 392482032558573996, 16995265122755159318, 530012562328639502),
+UInt256(8283119489267912400, 490602540698217496, 2797337329734397531, 9885887739765575186),
+UInt256(5176949680792445250, 306626587936385935, 1748335831083998457, 3872836828139790539),
+UInt256(6471187100990556562, 9606655271775258226, 16020477844137161783, 9452732053602126078),
+UInt256(8088983876238195703, 2784947052864296975, 10802225268316676421, 7204229048575269693),
+UInt256(5055614922648872314, 8658120935681267465, 13668919820339004619, 6808486164573237511),
+UInt256(6319518653311090393, 1599279132746808524, 3251091720141592062, 3898921687289158984),
+UInt256(7899398316638862991, 6610784934360898559, 4063864650176990077, 14097024145966224538),
+UInt256(4937123947899289369, 11049269611616643455, 9457444434001700654, 11116483100442584288),
+UInt256(6171404934874111711, 18423273032948192223, 7210119524074737914, 4672231838698454552),
+UInt256(7714256168592639639, 18417405272757852375, 4400963386666034488, 15063661835227843998),
+UInt256(4821410105370399774, 18428407323114739590, 9668131144307353411, 9414788647017402499),
+UInt256(6026762631712999718, 13812137117038648680, 2861791893529415956, 7156799790344365220),
+]
+
+private let bid_multipliers1_binary80_78: [UInt256] = [
+UInt256(7533453289641249648, 8041799359443535042, 3577239866911769945, 8945999737930456525),
+UInt256(4708408306025781030, 5026124599652209401, 6847460935247244119, 17120464882275005088),
+UInt256(5885510382532226287, 15506027786420037559, 13171012187486443053, 16788895084416368456),
+UInt256(7356887978165282859, 14770848714597659045, 11852079215930665913, 7151060800238296858),
+UInt256(9196109972706603574, 13851874874819685903, 980040964631168679, 13550512018725258976),
+UInt256(5747568732941627234, 4045735778334915785, 7530054630535562280, 15386599039344368716),
+UInt256(7184460916177034042, 14280541759773420539, 14024254306596840755, 786504725470909279),
+UInt256(8980576145221292553, 8627305162861999866, 12918631864818663039, 14818188962120800311),
+UInt256(5612860090763307845, 16921280772857219676, 12685830933939052303, 16178897128966582051),
+UInt256(7016075113454134807, 7316542910789360883, 15857288667423815379, 15611935392780839659),
+UInt256(8770093891817668509, 4533992620059313200, 15209924815852381320, 14903233222548661670),
+UInt256(5481308682386042818, 5139588396750764702, 9506203009907738325, 9314520764092913544),
+UInt256(6851635852982553522, 15647857532793231686, 2659381725529897098, 16254836973543529834),
+UInt256(8564544816228191903, 10336449879136763799, 12547599193767147181, 11095174180074636484),
+UInt256(5352840510142619939, 13377810202101559230, 14759778523745548844, 9240326871760341755),
+UInt256(6691050637678274924, 12110576734199561134, 9226351117827160247, 11550408589700427193),
+UInt256(8363813297097843655, 15138220917749451418, 2309566860429174501, 9826324718698146087),
+UInt256(5227383310686152284, 16378917101234488992, 6055165306195621967, 8447295958400035257),
+UInt256(6534229138357690356, 2026902302833559624, 7568956632744527459, 5947433929572656167),
+UInt256(8167786422947112945, 2533627878541949530, 9461195790930659324, 2822606393538432304),
+UInt256(5104866514341945590, 13112732470157188216, 10524933387759049981, 10987501032816295998),
+UInt256(6381083142927431988, 7167543550841709462, 13156166734698812476, 18346062309447757902),
+UInt256(7976353928659289985, 8959429438552136828, 7221836381518739788, 4485833813100145761),
+UInt256(4985221205412056240, 17128858445163555277, 13737019775303988175, 12027018170042366909),
+UInt256(6231526506765070301, 2964328982744892481, 3336216663847821507, 10422086694125570732),
+UInt256(7789408133456337876, 8317097246858503505, 8781956848237164788, 8415922349229575511),
+UInt256(4868380083410211172, 14421557816141340498, 17017938076216697752, 14483323505123260503),
+UInt256(6085475104262763965, 18026947270176675623, 12049050558416096382, 18104154381404075628),
+UInt256(7606843880328454957, 8698626032438680817, 10449627179592732574, 13406820939900318727),
+UInt256(4754277425205284348, 7742484279487869462, 18060232033313927619, 3767577069010311301),
+UInt256(5942846781506605435, 9678105349359836828, 13351918004787633716, 97785317835501222),
+UInt256(7428558476883256794, 7485945668272408131, 16689897505984542145, 122231647294376527),
+UInt256(4642849048052035496, 9290402061097642986, 8125342932026644888, 11605609825627455089),
+UInt256(5803561310065044370, 11613002576372053733, 933306628178530302, 14507012282034318862),
+UInt256(7254451637581305463, 5292881183610291358, 5778319303650550782, 8910393315688122769),
+UInt256(9068064546976631829, 2004415461085476293, 16446271166417964286, 1914619607755377653),
+UInt256(5667540341860394893, 3558602672392116635, 12584762488224921630, 15031695310129274745),
+UInt256(7084425427325493616, 9059939358917533698, 11119267091853764134, 9566247100806817624),
+UInt256(8855531784156867020, 11324924198646917123, 4675711827962429360, 2734436839153746221),
+UInt256(5534707365098041887, 16301449661009099010, 616476883262824398, 1709023024471091389),
+UInt256(6918384206372552359, 15765126057833985858, 9993968140933306305, 11359650817443640044),
+UInt256(8647980257965690449, 15094721553865094419, 3269088139311857074, 364505466522386342),
+UInt256(5404987661228556531, 2516671943524602155, 18184081151565768335, 4839501935003879368),
+UInt256(6756234576535695663, 16980897984687916406, 18118415421029822515, 1437691400327461306),
+UInt256(8445293220669619579, 16614436462432507604, 13424647239432502335, 15632172305691490344),
+UInt256(5278308262918512237, 8078179779806623300, 17613776561500089767, 16687636718698263321),
+UInt256(6597885328648140296, 14709410743185667030, 3570476628165560593, 16247859879945441248),
+UInt256(8247356660810175370, 18386763428982083787, 13686467822061726550, 6474766794649637848),
+UInt256(5154597913006359606, 16103413161541190271, 6248199379574885141, 17881787301938187367),
+UInt256(6443247391257949508, 10905894415071712031, 3198563206041218523, 8517176072140570496),
+]
+
+private let bid_multipliers1_binary80_79: [UInt256] = [
+UInt256(8054059239072436885, 13632368018839640038, 17833262062833686866, 6034784071748325216),
+UInt256(5033787024420273053, 10826073020988468976, 6534102770843666387, 8383426063270091164),
+UInt256(6292233780525341316, 18144277294662974124, 8167628463554582984, 5867596560660226051),
+UInt256(7865292225656676646, 4233602544619166039, 10209535579443228730, 7334495700825282564),
+UInt256(4915807641035422903, 16481059645669142486, 13298488764793099812, 9195745831443189507),
+UInt256(6144759551294278629, 15989638538659040204, 7399738919136598957, 11494682289303986883),
+UInt256(7680949439117848287, 6151990118041636543, 9249673648920748697, 533294806347819892),
+UInt256(4800593399448655179, 10762522851417104695, 12698575058216549791, 11862524300035857193),
+UInt256(6000741749310818974, 8841467545843992965, 11261532804343299335, 10216469356617433587),
+UInt256(7500927186638523718, 1828462395450215399, 241857950146960457, 8158900677344404079),
+UInt256(4688079491649077323, 14977847052438548336, 7068690246482932141, 16628527969408722310),
+UInt256(5860099364561346654, 14110622797120797516, 8835862808103665177, 6950601906478739175),
+UInt256(7325124205701683318, 8414906459546221087, 11044828510129581471, 13299938401525811873),
+UInt256(9156405257127104148, 1295261037578000551, 9194349619234588935, 12013236983479876937),
+UInt256(5722753285704440092, 10032910185341026152, 12663997539662699940, 14425802142316004942),
+UInt256(7153441607130550115, 12541137731676282690, 15829996924578374925, 18032252677895006177),
+UInt256(8941802008913187644, 11064736146167965459, 10564124118868192849, 8705257792086594009),
+UInt256(5588626255570742277, 16138832128209754220, 4296734565078926578, 16970001166122591016),
+UInt256(6985782819463427847, 6338482104980029063, 5370918206348658223, 11989129420798462962),
+UInt256(8732228524329284809, 3311416612797648425, 2101961739508434875, 10374725757570690798),
+UInt256(5457642827705803005, 13598850429067000025, 12842941133261241557, 4178360589267987797),
+UInt256(6822053534632253757, 3163504981051586320, 2218618361294388234, 9834636755012372650),
+UInt256(8527566918290317196, 8566067244741870804, 2773272951617985293, 3069923906910690005),
+UInt256(5329729323931448247, 14577164064818445060, 10956667631616016616, 4224545451032875205),
+UInt256(6662161654914310309, 13609769062595668421, 13695834539520020770, 5280681813791094006),
+UInt256(8327702068642887887, 3177153272962421815, 3284735119117862250, 15824224304093643316),
+UInt256(5204813792901804929, 8903249823242595490, 8970488477089745762, 14501826208485914976),
+UInt256(6506017241127256161, 15740748297480632267, 1989738559507406395, 8903910723752617912),
+UInt256(8132521551409070202, 5840877316568626621, 16322231254666421706, 6518202386263384486),
+UInt256(5082825969630668876, 8262234341282779542, 12507237543380207518, 8685562509842003208),
+UInt256(6353532462038336095, 10327792926603474428, 6410674892370483590, 1633581100447728202),
+UInt256(7941915577547920119, 8298055139826955131, 8013343615463104487, 11265348412414436061),
+UInt256(4963697235967450074, 12103813490032928813, 2702496750450746352, 13958371785400104394),
+UInt256(6204621544959312593, 5906394825686385208, 7989806956490820844, 17447964731750130492),
+UInt256(7755776931199140741, 11994679550535369414, 9987258695613526056, 3363211840978111499),
+UInt256(4847360581999462963, 9802517728298299836, 1630350666331065881, 2102007400611319687),
+UInt256(6059200727499328704, 7641461141945486891, 2037938332913832351, 7239195269191537513),
+UInt256(7574000909374160880, 9551826427431858613, 16382480971424454151, 4437308068062033987),
+UInt256(4733750568358850550, 5969891517144911633, 12544893616353977796, 9690846570179853098),
+UInt256(5917188210448563187, 16685736433285915350, 1846058965160308533, 12113558212724816373),
+UInt256(7396485263060703984, 16245484523180006283, 11530945743305161475, 1306889710623856754),
+UInt256(4622803289412939990, 10153427826987503927, 4900998080352031969, 16957707133635768135),
+UInt256(5778504111766174988, 3468412746879604101, 1514561582012652058, 7362075861762546457),
+UInt256(7223130139707718735, 4335515933599505126, 6504887995943202976, 18425966864057958879),
+UInt256(9028912674634648419, 807708898571993503, 17354482031783779529, 4585714506362896982),
+UInt256(5643070421646655261, 16645719126103353603, 17764080297505944061, 14395286612545280374),
+UInt256(7053838027058319077, 6972090852347028292, 17593414353455042173, 4159050210399436756),
+UInt256(8817297533822898846, 13326799583861173270, 3545023868109251100, 9810498781426683848),
+UInt256(5510810958639311779, 3717563721485845389, 16050697972850445649, 15354933775246453213),
+UInt256(6888513698299139724, 35268633429918833, 6228314410780893350, 5358609163775902805),
+]
+
+private let bid_multipliers1_binary80_80: [UInt256] = [
+UInt256(8610642122873924655, 44085791787398541, 12397079031903504591, 15921633491574654314),
+UInt256(5381651326796202909, 6945082647508205944, 10054017404153384321, 16868549959875240802),
+UInt256(6727064158495253636, 13293039327812645334, 12567521755191730402, 7250629394561887291),
+UInt256(8408830198119067045, 16616299159765806668, 6486030157134887194, 18286658780057134921),
+UInt256(5255518873824416903, 12691029984067323119, 13277140885064080304, 16040847755963097230),
+UInt256(6569398592280521129, 11252101461656765995, 11984740087902712477, 1604315621244319921),
+UInt256(8211748240350651412, 230068771788793782, 10369239091451002692, 6617080544982787806),
+UInt256(5132342650219157132, 9367165019222771922, 1869088413729488778, 13359047377469018187),
+UInt256(6415428312773946415, 11708956274028464902, 11559732554016636781, 7475437184981496925),
+UInt256(8019285390967433019, 10024509324108193224, 5226293655666020168, 13955982499654259060),
+UInt256(5012053369354645637, 3959475318353926813, 3266433534791262605, 8722489062283911913),
+UInt256(6265066711693307046, 9561030166369796420, 8694727936916466160, 15514797346282277795),
+UInt256(7831333389616633808, 2727915671107469717, 10868409921145582701, 946752609143295628),
+UInt256(4894583368510396130, 1704947294442168573, 9098599209929683140, 2897563389928253720),
+UInt256(6118229210637995162, 11354556154907486524, 15984935030839491829, 3621954237410317149),
+UInt256(7647786513297493953, 4969823156779582348, 1534424714839813170, 9139128815190284340),
+UInt256(4779866570810933720, 14635354519055708727, 10182387483629659039, 10323641527921315617),
+UInt256(5974833213513667150, 18294193148819635909, 8116298336109685895, 8292865891474256617),
+UInt256(7468541516892083938, 13644369399169769078, 14757058938564495273, 5754396345915432867),
+UInt256(4667838448057552461, 13139416892908493578, 4611475818175421641, 15125712762265615302),
+UInt256(5834798060071940577, 2589213060853453260, 14987716809574052860, 5072082897549855416),
+UInt256(7293497575089925721, 7848202344494204480, 287901938258014459, 6340103621937319269),
+UInt256(9116871968862407151, 14421938949045143504, 359877422822518074, 3313443508994261183),
+UInt256(5698044980539004469, 15931240870794296546, 224923389264073796, 6682588211548801143),
+UInt256(7122556225673755587, 6078993033210706970, 9504526273434868053, 8353235264436001429),
+UInt256(8903195282092194484, 2987055273085995809, 2657285804938809258, 15053230098972389690),
+UInt256(5564497051307621552, 11090281582533523188, 13190018674155225546, 14019954830285131461),
+UInt256(6955621314134526940, 13862851978166903985, 16487523342694031933, 8301571501001638518),
+UInt256(8694526642668158675, 17328564972708629982, 6774346123085376204, 14988650394679436051),
+UInt256(5434079151667599172, 8524510098729199786, 18069024382210523840, 144534459819871724),
+UInt256(6792598939584498965, 10655637623411499733, 13362908440908378992, 180668074774839655),
+UInt256(8490748674480623706, 17931233047691762571, 2868577495853310028, 225835093468549568),
+UInt256(5306717921550389816, 15818706673234739510, 17933761999404176431, 9364518970272619288),
+UInt256(6633397401937987271, 1326639267833872772, 13193830462400444731, 7093962694413386206),
+UInt256(8291746752422484088, 15493357140074504677, 16492288078000555914, 4255767349589344854),
+UInt256(5182341720264052555, 9683348212546565423, 12613523057964041398, 7271540611920728438),
+UInt256(6477927150330065694, 7492499247255818875, 11155217804027663843, 18312797801755686355),
+UInt256(8097408937912582118, 142252022214997786, 9332336236607191900, 18279311233767220040),
+UInt256(5060880586195363823, 13923965569166537328, 10444396166306882842, 2201197484249736717),
+UInt256(6326100732744204779, 12793270943030783756, 13055495207883603552, 11974868892166946704),
+UInt256(7907625915930255974, 11379902660361091791, 16319369009854504440, 14968586115208683380),
+UInt256(4942266197456409984, 2500753144298294465, 17117134658800147131, 9355366322005427113),
+UInt256(6177832746820512480, 3125941430372868082, 7561360268218020202, 7082521884079395987),
+UInt256(7722290933525640600, 3907426787966085103, 228328298417749444, 18076524391954020792),
+UInt256(4826431833453525375, 2442141742478803189, 7060234214152175259, 2074455708116487187),
+UInt256(6033039791816906718, 16887735233380667698, 13436978786117606977, 16428127690427772695),
+UInt256(7541299739771133398, 11886297004871058815, 7572851445792232914, 6700101557752552157),
+UInt256(4713312337356958374, 2817249609617023855, 11650561181261227427, 8799249492022733002),
+UInt256(5891640421696197967, 12744934048876055627, 9951515458149146380, 6387375846601028349),
+UInt256(7364550527120247459, 11319481542667681630, 7827708304259045071, 7984219808251285436),
+]
+
+private let bid_multipliers1_binary80_81: [UInt256] = [
+UInt256(9205688158900309324, 9537665909907214134, 561263343469030531, 5368588741886718891),
+UInt256(5753555099312693327, 15184413230546784641, 14185847644950307794, 1049524954465505355),
+UInt256(7191943874140866659, 14368830519756092898, 3897251500905721030, 10535278229936657502),
+UInt256(8989929842676083324, 13349352131267728218, 14094936412986927096, 3945725750566046069),
+UInt256(5618706151672552077, 17566717118897105944, 13421021276544217339, 2466078594103778793),
+UInt256(7023382689590690097, 8123338343339218718, 16776276595680271673, 16917656297911887203),
+UInt256(8779228361988362621, 14765858947601411302, 11746973707745563784, 7312012317107695292),
+UInt256(5487017726242726638, 11534504851464576016, 2730172548913589461, 4570007698192309558),
+UInt256(6858772157803408298, 5194759027475944212, 3412715686141986826, 10324195641167774851),
+UInt256(8573465197254260372, 15716820821199706073, 4265894607677483533, 3681872514604942756),
+UInt256(5358415748283912733, 599640976395040487, 14195399175866896968, 4607013330841783175),
+UInt256(6698019685354890916, 5361237238921188513, 13132562951406233306, 5758766663552228968),
+UInt256(8372524606693613645, 6701546548651485642, 2580645633975627920, 16421830366295062018),
+UInt256(5232827879183508528, 6494309602120872478, 6224589539662155354, 10263643978934413761),
+UInt256(6541034848979385660, 8117887002651090597, 17004108961432470001, 3606182936813241394),
+UInt256(8176293561224232075, 10147358753313863247, 7420078146508423789, 9119414689443939646),
+UInt256(5110183475765145047, 4036256211607470577, 11555077869208846724, 8005477190116156231),
+UInt256(6387729344706431309, 433634246081950318, 608789281228894693, 10006846487645195289),
+UInt256(7984661680883039136, 5153728826029825801, 9984358638390894174, 17120244127983882015),
+UInt256(4990413550551899460, 3221080516268641125, 17769439195062778619, 6088466561562538355),
+UInt256(6238016938189874325, 4026350645335801407, 8376740938546309562, 2998897183525785040),
+UInt256(7797521172737342906, 9644624325097139663, 5859240154755499048, 12971993516262007108),
+UInt256(4873450732960839316, 10639576221613100193, 10579554124363268761, 8107495947663754443),
+UInt256(6091813416201049145, 13299470277016375241, 17836128673881473855, 14746055953007080957),
+UInt256(7614766770251311432, 2789279790988305340, 8460102787069678607, 13820883922831463292),
+UInt256(4759229231407069645, 1743299869367690837, 14510936278773324937, 15555581479410746414),
+UInt256(5949036539258837056, 6790810855137001451, 4303612293184492460, 5609418793981269305),
+UInt256(7436295674073546320, 8488513568921251814, 767829348053227671, 7011773492476586631),
+UInt256(4647684796295966450, 5305320980575782383, 14314951397815431006, 11299887460438948501),
+UInt256(5809605995369958062, 15855023262574503787, 13282003228841900854, 4901487288693909818),
+UInt256(7262007494212447578, 10595407041363353926, 11990818017624988163, 15350231147722163080),
+UInt256(9077509367765559473, 4020886764849416600, 5765150485176459396, 14576102916225315946),
+UInt256(5673443354853474670, 14042269274099355135, 3603219053235287122, 18333436359495598274),
+UInt256(7091804193566843338, 8329464555769418110, 18339081871826272615, 13693423412514722035),
+UInt256(8864755241958554173, 1188458657856996830, 13700480302928064961, 12505093247216014640),
+UInt256(5540472026224096358, 3048629670374316971, 3951114170902652697, 898154251868927294),
+UInt256(6925590032780120447, 13034159124822672022, 327206695200927967, 5734378833263547021),
+UInt256(8656987540975150559, 11681012887600952123, 9632380405855935767, 2556287523152045873),
+UInt256(5410617213109469099, 14218162082391676933, 3714394744446265902, 8515208729611110527),
+UInt256(6763271516386836374, 13161016584562208262, 9254679448985220282, 1420638875159112350),
+UInt256(8454089395483545468, 7227898693847984520, 2344977274376749544, 10999170630803666245),
+UInt256(5283805872177215917, 13740808720509766133, 1465610796485468465, 6874481644252291404),
+UInt256(6604757340221519897, 3340952845355043954, 6443699514034223485, 13204788073742752158),
+UInt256(8255946675276899871, 8787877075121192846, 17277996429397555165, 2670927036896276486),
+UInt256(5159966672048062419, 12409952199591827385, 6187061749946084074, 3975172407273866756),
+UInt256(6449958340060078024, 10900754231062396327, 12345513205859992996, 14192337545947109253),
+UInt256(8062447925075097530, 13625942788827995409, 10820205488897603341, 17740421932433886566),
+UInt256(5039029953171935956, 13127900261444885034, 18291843476629471848, 13393606716984873056),
+UInt256(6298787441464919945, 16409875326806106293, 13641432308932064002, 16742008396231091320),
+UInt256(7873484301831149932, 6677286103225469155, 3216732330882916291, 11704138458434088341),
+]
+
+private let bid_multipliers1_binary80_82: [UInt256] = [
+UInt256(4920927688644468707, 13396675851370694029, 18151358771297680346, 5009243527307611261),
+UInt256(6151159610805585884, 12134158795785979633, 8854140408839936720, 15484926445989289885),
+UInt256(7688949513506982355, 15167698494732474541, 15679361529477308805, 909413983777060740),
+UInt256(4805593445941863972, 7173968549994102636, 12105443965137011955, 2874226749074356915),
+UInt256(6006991807427329965, 8967460687492628295, 15131804956421264943, 17427841491625109855),
+UInt256(7508739759284162456, 15821011877793173273, 14303070177099193275, 17173115846103999415),
+UInt256(4692962349552601535, 9888132423620733296, 2021889833045913941, 8427354394601305682),
+UInt256(5866202936940751919, 7748479511098528716, 2527362291307392426, 15145879011679020007),
+UInt256(7332753671175939899, 5073913370445772991, 3159202864134240533, 9708976727743999200),
+UInt256(9165942088969924874, 1730705694629828334, 17784061635449964378, 16747906928107386904),
+UInt256(5728713805606203046, 5693377077571030613, 6503352503728839832, 15079127848494504719),
+UInt256(7160892257007753807, 16340093383818564074, 12740876648088437695, 402165736908579283),
+UInt256(8951115321259692259, 15813430711345817189, 6702723773255771310, 14337765226417887816),
+UInt256(5594447075787307662, 7577551185377441791, 6495045367498551021, 4349417248083791981),
+UInt256(6993058844734134578, 248566944867026431, 3507120690945800872, 10048457578532127880),
+UInt256(8741323555917668222, 9534080717938558846, 18218958918964414802, 12560571973165159850),
+UInt256(5463327222448542639, 1347114430284211375, 6775163305925371347, 12462043501655612811),
+UInt256(6829159028060678298, 15518951093137427931, 3857268113979326280, 10965868358642128109),
+UInt256(8536448785075847873, 10175316829567009106, 209899124046769946, 13707335448302660136),
+UInt256(5335280490672404920, 17888788064547850451, 4742872970956619120, 13178770673616550489),
+UInt256(6669100613340506151, 3914241006975261448, 1316905195268385996, 16473463342020688112),
+UInt256(8336375766675632689, 281115240291688906, 1646131494085482496, 2145085103816308523),
+UInt256(5210234854172270430, 11704912071250775326, 5640518202230814464, 1340678189885192827),
+UInt256(6512793567715338038, 5407768052208693349, 16274019789643293888, 1675847737356491034),
+UInt256(8140991959644172547, 15983082102115642495, 6507466681771953648, 2094809671695613792),
+UInt256(5088119974777607842, 7683583304608582607, 10984695703748552886, 1309256044809758620),
+UInt256(6360149968472009803, 381107093905952451, 9119183611258303203, 10859942092866974083),
+UInt256(7950187460590012253, 14311441922664604276, 6787293495645491100, 8963241597656329700),
+UInt256(4968867162868757658, 11250494210879071624, 13465430471633207745, 14825398035389981871),
+UInt256(6211083953585947073, 4839745726744063722, 16831788089541509682, 4696689488955313626),
+UInt256(7763854941982433841, 10661368176857467557, 11816363075072111294, 15094233898048917841),
+UInt256(4852409338739021150, 18192570156604386983, 9691069931133763511, 4822210167853185747),
+UInt256(6065511673423776438, 13517340658900707921, 7502151395489816485, 1416076691389094279),
+UInt256(7581889591779720548, 7673303786771109093, 13989375262789658510, 6381781882663755753),
+UInt256(4738680994862325342, 14019186903586718991, 11049202548457230520, 17823671731947011058),
+UInt256(5923351243577906678, 8300611592628622931, 9199817167144150247, 3832845591224212206),
+UInt256(7404189054472383348, 1152392453931002856, 6888085440502799905, 179370970602877353),
+UInt256(4627618159045239592, 9943617320561652593, 4305053400314249940, 11641321902695268106),
+UInt256(5784522698806549490, 12429521650702065741, 9993002768820200329, 14551652378369085132),
+UInt256(7230653373508186863, 6313530026522806368, 17102939479452638316, 4354507417679192703),
+UInt256(9038316716885233579, 3280226514726120057, 2931930275606246279, 5443134272098990879),
+UInt256(5648947948053270986, 18191042636199682699, 13361671468322373684, 10319487947702951156),
+UInt256(7061184935066588733, 13515431258394827566, 12090403316975579201, 12899359934628688944),
+UInt256(8826481168833235917, 3059231017711370746, 5889632109364698194, 2289141863003697468),
+UInt256(5516550730520772448, 4217862395283300668, 8292706086780324275, 6042399682804698822),
+UInt256(6895688413150965560, 5272327994104125835, 10365882608475405344, 2941313585078485623),
+UInt256(8619610516438706950, 6590409992630157294, 8345667242166868776, 3676641981348107029),
+UInt256(5387256572774191843, 17954064300676012021, 604356007926905081, 2297901238342566893),
+UInt256(6734070715967739804, 17830894357417627122, 5367131028336019255, 7484062566355596521),
+UInt256(8417588394959674756, 3841873873062482286, 15932285822274799877, 4743392189517107747),
+]
+
+private let bid_multipliers1_binary80_83: [UInt256] = [
+UInt256(5260992746849796722, 11624543207518827237, 5345992620494362019, 5270463127661886294),
+UInt256(6576240933562245903, 5307306972543758238, 11294176794045340428, 1976392891149969963),
+UInt256(8220301166952807379, 2022447697252309894, 4894348955701899727, 2470491113937462454),
+UInt256(5137688229345504611, 17404930875278551347, 16894026152595851041, 8461585973851995890),
+UInt256(6422110286681880764, 17144477575670801280, 16505846672317425897, 15188668485742382766),
+UInt256(8027637858352350956, 2983852895878949985, 2185564266687230756, 5150777551895814746),
+UInt256(5017273661470219347, 11088280096779119548, 12895192712747988982, 12442608006789660024),
+UInt256(6271592076837774184, 9248664102546511531, 16118990890934986228, 6329887971632299222),
+UInt256(7839490096047217730, 11560830128183139414, 15537052595241344881, 7912359964540374027),
+UInt256(4899681310029511081, 11837204848541850038, 5098971853598452646, 16474440023906203527),
+UInt256(6124601637536888852, 961448005395148835, 15597086853852841616, 11369677993027978601),
+UInt256(7655752046921111065, 1201810006743936044, 14884672548888664116, 14212097491284973251),
+UInt256(4784845029325694415, 12280346300283429788, 79548306200639264, 18105932968907884090),
+UInt256(5981056286657118019, 10738746856926899331, 99435382750799081, 4185672137425303497),
+UInt256(7476320358321397524, 8811747552731236259, 13959352283720662563, 9843776190209017275),
+UInt256(4672700223950873452, 14730714257311798470, 6418752168111720150, 3846517109666941845),
+UInt256(5840875279938591815, 18413392821639748087, 17246812246994425995, 14031518423938453114),
+UInt256(7301094099923239769, 18405055008622297205, 16946829290315644590, 12927712011495678488),
+UInt256(9126367624904049712, 9171260705495707795, 7348478557612392026, 6936267977514822302),
+UInt256(5703979765565031070, 5732037940934817372, 2286956089294051064, 8946853504374151843),
+UInt256(7129974706956288837, 16388419463023297523, 2858695111617563830, 11183566880467689804),
+UInt256(8912468383695361047, 6650466273496958191, 17408426944804118500, 4756086563729836446),
+UInt256(5570292739809600654, 11074070448576680725, 17797795868143655918, 12195926139185923587),
+UInt256(6962865924762000818, 4619216023866075099, 8412186779897406186, 6021535637127628676),
+UInt256(8703582405952501022, 14997392066687369682, 5903547456444369828, 16750291583264311653),
+UInt256(5439739003720313139, 4761684023252218147, 8301403178705119047, 1245560202685418975),
+UInt256(6799673754650391424, 1340419010637884780, 5765067954954010904, 15392008308638937431),
+UInt256(8499592193312989280, 1675523763297355975, 7206334943692513631, 793266312089120172),
+UInt256(5312245120820618300, 1047202352060847484, 11421488367448902875, 7413320472696781964),
+UInt256(6640306401025772875, 1309002940076059355, 14276860459311128594, 4654964572443589551),
+UInt256(8300383001282216093, 15471311730377237906, 13234389555711522838, 15042077752409262746),
+UInt256(5187739375801385058, 11975412840699467643, 12883179490747089678, 4789612576828401313),
+UInt256(6484674219751731323, 5745894014019558746, 11492288345006474193, 15210387757890277449),
+UInt256(8105842774689664154, 2570681499097060529, 5141988394403316934, 5177926642080683099),
+UInt256(5066151734181040096, 6218361955363050734, 14742957792570542843, 17071262206582590649),
+UInt256(6332689667726300120, 7772952444203813418, 9205325203858402746, 16727391739800850407),
+UInt256(7915862084657875150, 9716190555254766773, 2283284467968227625, 11685867637896287201),
+UInt256(4947413802911171969, 1460933078606841329, 3732895801693836218, 386138246044097645),
+UInt256(6184267253638964961, 6437852366685939565, 9277805770544683176, 9706044844409897864),
+UInt256(7730334067048706201, 12659001476784812360, 16208943231608241874, 12132556055512372329),
+UInt256(4831458791905441376, 994346895349425869, 10130589519755151171, 12194533553122620610),
+UInt256(6039323489881801720, 1242933619186782336, 17274922918121326868, 10631480922975887858),
+UInt256(7549154362352252150, 1553667023983477921, 3146909573942106969, 13289351153719859823),
+UInt256(4718221476470157593, 14806099945271837412, 13496033529782286616, 1388315443433830534),
+UInt256(5897776845587696992, 4672566876307633053, 16870041912227858270, 1735394304292288167),
+UInt256(7372221056984621240, 5840708595384541317, 7252494335002659125, 11392614917220136016),
+UInt256(9215276321230776550, 7300885744230676646, 13677303937180711811, 405710591243006308),
+UInt256(5759547700769235343, 18398111645426336616, 3936628942310556977, 16394470184022736607),
+UInt256(7199434625961544179, 18385953538355532866, 4920786177888196222, 6658029674746257046),
+UInt256(8999293282451930224, 18370755904517028178, 15374354759215021085, 17545909130287597116),
+]
+
+private let bid_multipliers1_binary80_84: [UInt256] = [
+UInt256(5624558301532456390, 11481722440323142611, 14220657742936776082, 13272036215643442150),
+UInt256(7030697876915570488, 5128781013549152456, 13164136160243582199, 7366673232699526879),
+UInt256(8788372346144463110, 6410976266936440570, 16455170200304477749, 4596655522447020695),
+UInt256(5492732716340289443, 17841918222117439068, 14896167393617686497, 5178752710743081886),
+UInt256(6865915895425361804, 17690711759219410932, 173465168312556505, 11085126906856240262),
+UInt256(8582394869281702256, 3666645625314712049, 216831460390695632, 21350578288136615),
+UInt256(5363996793301063910, 2291653515821695030, 11664734708812654530, 13344111430085385),
+UInt256(6704995991626329887, 12087938931631894596, 5357546349161042354, 9240052176142382539),
+UInt256(8381244989532912359, 10498237646112480341, 6696932936451302943, 2326693183323202365),
+UInt256(5238278118458070224, 13478927556461382069, 6491426094495758291, 8371712267218083334),
+UInt256(6547847648072587780, 16848659445576727586, 12725968636547085768, 5852954315595216264),
+UInt256(8184809560090734726, 2614080233261357867, 6684088758829081402, 7316192894494020330),
+UInt256(5115505975056709203, 15468858201070512379, 1871712465054481924, 9184306577486150610),
+UInt256(6394382468820886504, 14724386732910752569, 16174698636600266117, 11480383221857688263),
+UInt256(7992978086026108130, 18405483416138440712, 6383315240468168935, 515420972039946616),
+UInt256(4995611303766317581, 16115113153513913349, 3989572025292605584, 7239667135166048491),
+UInt256(6244514129707896977, 6308833386610227974, 9598651050043144884, 9049583918957560614),
+UInt256(7805642662134871221, 12497727751690172872, 2774941775699155297, 11311979898696950767),
+UInt256(4878526663834294513, 10116922854020051997, 1734338609811972061, 152458409044512374),
+UInt256(6098158329792868141, 17257839585952452900, 6779609280692352980, 4802259029733028371),
+UInt256(7622697912241085177, 7737241427158402413, 8474511600865441225, 6002823787166285464),
+UInt256(4764186195150678235, 16364990938042471268, 7602412759754594717, 15280979913047398175),
+UInt256(5955232743938347794, 15844552654125701181, 9503015949693243397, 5266166836027084007),
+UInt256(7444040929922934743, 10582318780802350668, 16490455955543942150, 11194394563461242912),
+UInt256(4652525581201834214, 13531478265642551024, 1083162935360188036, 2384810583735888916),
+UInt256(5815656976502292768, 7690975795198412972, 1353953669200235045, 2981013229669861145),
+UInt256(7269571220627865960, 9613719743998016215, 1692442086500293806, 8337952555514714336),
+UInt256(9086964025784832450, 12017149679997520268, 15950610663407530970, 1199068657538617111),
+UInt256(5679352516115520281, 12122404568425838072, 745759627774931048, 5361103929389023599),
+UInt256(7099190645144400352, 1317947655250133878, 932199534718663810, 6701379911736279498),
+UInt256(8873988306430500440, 1647434569062667347, 10388621455253105570, 17600096926525125181),
+UInt256(5546242691519062775, 1029646605664167092, 4187045400319497029, 15611746597505591142),
+UInt256(6932803364398828468, 15122116312362372577, 5233806750399371287, 5679625191599825216),
+UInt256(8666004205498535586, 455901316743414105, 11153944456426602013, 2487845471072393615),
+UInt256(5416252628436584741, 4896624341392021720, 53686257625544402, 3860746428633939962),
+UInt256(6770315785545730926, 10732466445167415054, 67107822031930502, 14049305072647200760),
+UInt256(8462894731932163658, 4192211019604493009, 9307256814394688936, 8338259303954225142),
+UInt256(5289309207457602286, 7231817905680196034, 17346250555065150345, 5211412064971390714),
+UInt256(6611636509322002857, 18263144418955020851, 12459441156976662123, 11125951099641626296),
+UInt256(8264545636652503572, 8993872468411612352, 10962615427793439750, 9295752856124644966),
+UInt256(5165341022907814732, 14844542329612033528, 6851634642370899844, 1198159516650515200),
+UInt256(6456676278634768416, 108933838305490294, 8564543302963624805, 1497699395813144000),
+UInt256(8070845348293460520, 136167297881862868, 1482307091849755198, 6483810263193817904),
+UInt256(5044278342683412825, 85104561176164292, 10149813969260872806, 17887439469778299902),
+UInt256(6305347928354266031, 4718066719897593269, 12687267461576091008, 13135927300368099070),
+UInt256(7881684910442832539, 1285897381444603683, 2024026271687950048, 16419909125460123837),
+UInt256(4926053069026770336, 16944586927898734965, 17405917484300826444, 10262443203412577398),
+UInt256(6157566336283462921, 2733989586163867091, 7922338800093869343, 12828054004265721748),
+UInt256(7696957920354328651, 8029173001132221768, 5291237481689948775, 11423381486904764280),
+UInt256(4810598700221455407, 2712390116493944653, 3307023426056217984, 14057142456956559531),
+]
+
+private let bid_multipliers1_binary80_85: [UInt256] = [
+UInt256(6013248375276819258, 17225545700899594528, 8745465300997660384, 17571428071195699414),
+UInt256(7516560469096024073, 12308560089269717352, 10931831626247075481, 3517541015285072652),
+UInt256(4697850293185015046, 775321028152491489, 6832394766404422175, 13727678180621640167),
+UInt256(5872312866481268807, 10192523322045390169, 13152179476432915623, 12547911707349662305),
+UInt256(7340391083101586009, 8128968134129349808, 2605166290258980817, 11073203615759689977),
+UInt256(9175488853876982511, 14772896186089075164, 3256457862823726022, 6446464417448760),
+UInt256(5734680533673114069, 16150589143946753833, 11258658201119604571, 13839087095543069187),
+UInt256(7168350667091392587, 6353178374651278580, 238264696117342002, 12687172851001448579),
+UInt256(8960438333864240734, 3329786949886710321, 297830870146677503, 6635594026897034916),
+UInt256(5600273958665150458, 15916174898961357662, 11715359339910143199, 11064775294451728679),
+UInt256(7000342448331438073, 10671846586846921270, 5420827138032903191, 9219283099637272944),
+UInt256(8750428060414297591, 17951494251986039491, 15999405959395904797, 6912417856119203276),
+UInt256(5469017537758935994, 18137212935132356538, 7693785715408746546, 6626104169288196000),
+UInt256(6836271922198669993, 13448144132060669865, 393860107406157374, 17506002248465020808),
+UInt256(8545339902748337492, 2975122109793673619, 5104011152685084622, 12659130773726500202),
+UInt256(5340837439217710932, 11082823355475821820, 884163961214483937, 3300270715151674722),
+UInt256(6676046799022138665, 13853529194344777275, 1105204951518104921, 8737024412366981307),
+UInt256(8345058498777673332, 3481853437648807881, 15216564244679794863, 15532966533886114537),
+UInt256(5215661561736045832, 11399530435385280734, 2592823625283789933, 16625633111319903442),
+UInt256(6519576952170057290, 14249413044231600917, 12464401568459513225, 6946983333867715590),
+UInt256(8149471190212571613, 8588394268434725339, 1745443905292227819, 13295415185762032392),
+UInt256(5093419493882857258, 7673589426985397288, 17231803505303500051, 6003791481887576293),
+UInt256(6366774367353571573, 368614746876970803, 3093010307919823448, 2893053333932082462),
+UInt256(7958467959191964466, 5072454452023601407, 17701320940181943022, 3616316667415103078),
+UInt256(4974042474494977791, 7781970050942138783, 17980854615254796244, 16095255972416603136),
+UInt256(6217553093118722239, 5115776545250285575, 17864382250641107402, 1672325891811202303),
+UInt256(7771941366398402799, 1783034663135469065, 17718791794873996348, 11313779401618778687),
+UInt256(4857463353999001749, 8031925692100750022, 4156715844155165861, 16294484162866512488),
+UInt256(6071829192498752186, 14651593133553325431, 14419266842048733135, 6533047148300976897),
+UInt256(7589786490623440233, 9091119380086880981, 13412397534133528515, 3554622916948833218),
+UInt256(4743616556639650145, 17211164658622770373, 10688591468047149273, 18362540387588878425),
+UInt256(5929520695799562682, 7678897767996299254, 17972425353486324496, 9118117429203934319),
+UInt256(7411900869749453353, 375250173140598260, 13242159655003129812, 11397646786504917899),
+UInt256(4632438043593408345, 11763746404281343672, 17499721821231731940, 16346901278420349495),
+UInt256(5790547554491760432, 869624950069515879, 3427908202830113310, 1986882524315885253),
+UInt256(7238184443114700540, 1087031187586894848, 18119943308819805349, 11706975192249632374),
+UInt256(9047730553893375675, 1358788984483618561, 4203185062315205071, 798660935029876755),
+UInt256(5654831596183359796, 16990144179798119264, 14156205710015472929, 7416692112034754828),
+UInt256(7068539495229199746, 2790936151038097464, 17695257137519341161, 13882551158470831439),
+UInt256(8835674369036499682, 12712042225652397639, 3672327348189624836, 3518130892806375587),
+UInt256(5522296480647812301, 12556712409460136428, 9212733620259597378, 11422203844858760550),
+UInt256(6902870600809765377, 1860832456543006823, 11515917025324496723, 5054382769218674879),
+UInt256(8628588251012206721, 6937726589106146433, 9783210263228233000, 1706292443095955695),
+UInt256(5392867656882629200, 15865294164259811280, 17643721460586115385, 1066432776934972310),
+UInt256(6741084571103286501, 1384873631615212485, 3607907752023092615, 5944726989596103291),
+UInt256(8426355713879108126, 6342778057946403510, 9121570708456253673, 2819222718567741209),
+UInt256(5266472321174442578, 17799294341498665906, 1089295674357770641, 13291229245173308016),
+UInt256(6583090401468053223, 13025745890018556574, 10584991629801989110, 2778978501184471308),
+UInt256(8228863001835066529, 11670496344095807814, 4007867500397710579, 12697095163335364943),
+UInt256(5143039376146916581, 376531187418798027, 16339975243030732824, 5629841467870909137),
+]
+
+private let bid_multipliers1_binary80_86: [UInt256] = [
+UInt256(6428799220183645726, 5082350002700885438, 15813283035361028126, 7037301834838636422),
+UInt256(8035999025229557157, 15576309540230882606, 10543231757346509349, 18019999330403071335),
+UInt256(5022499390768473223, 12041036471857995581, 1977833829914180439, 13568342590715613537),
+UInt256(6278124238460591529, 10439609571395106572, 7083978305820113453, 12348742219967129017),
+UInt256(7847655298075739411, 17661197982671271119, 8854972882275141817, 1600869719676747559),
+UInt256(4904784561297337132, 8732405729955850497, 12451887079063045491, 12529758620866436984),
+UInt256(6130980701621671415, 10915507162444813122, 1729800793546643152, 11050512257655658326),
+UInt256(7663725877027089269, 9032697934628628498, 11385623028788079748, 13813140322069572908),
+UInt256(4789828673141930793, 7951279218356586763, 11727700411419937746, 17856584738148258876),
+UInt256(5987285841427413491, 14550785041373121358, 10047939495847534279, 13097358885830547786),
+UInt256(7484107301784266864, 13576795283289013794, 3336552332954642041, 11760012588860796829),
+UInt256(4677567063615166790, 8485497052055633621, 6697031226524039180, 432478840396916162),
+UInt256(5846958829518958488, 1383499278214766218, 12982975051582436879, 540598550496145203),
+UInt256(7308698536898698110, 1729374097768457773, 7005346777623270290, 14510806243402345215),
+UInt256(9135873171123372637, 11385089659065348024, 13368369490456475767, 8915135767398155711),
+UInt256(5709920731952107898, 9421524046129536467, 8355230931535297354, 12489488882264929175),
+UInt256(7137400914940134873, 2553533020807144776, 5832352645991733789, 6388489065976385661),
+UInt256(8921751143675168591, 7803602294436318874, 7290440807489667236, 12597297350897869980),
+UInt256(5576094464796980369, 11794780461663781152, 9168211523108429926, 17096682881165944546),
+UInt256(6970118080996225462, 908417521797562728, 11460264403885537408, 12147481564602654874),
+UInt256(8712647601245281827, 10358893939101729218, 14325330504856921760, 15184351955753318593),
+UInt256(5445404750778301142, 4168465702724886809, 13565017583962964004, 9490219972345824121),
+UInt256(6806755938472876427, 14433954165260884320, 3121213924671541293, 11862774965432280151),
+UInt256(8508444923091095534, 13430756688148717496, 3901517405839426617, 993410651508186476),
+UInt256(5317778076931934709, 3782536911665560531, 2438448378649641635, 12150096703261086308),
+UInt256(6647222596164918386, 9339857158009338567, 16883118528594215756, 10575934860648969981),
+UInt256(8309028245206147983, 2451449410656897401, 16492212142315381791, 13219918575811212476),
+UInt256(5193142653253842489, 8449684909301642732, 3390103561306031763, 15179978137523089653),
+UInt256(6491428316567303111, 15173792155054441319, 4237629451632539704, 14363286653476474163),
+UInt256(8114285395709128889, 14355554175390663745, 685350796113286726, 17954108316845592703),
+UInt256(5071428372318205556, 2054692331978082984, 11957559293639273964, 6609631679601107536),
+UInt256(6339285465397756945, 2568365414972603730, 14946949117049092455, 8262039599501384419),
+UInt256(7924106831747196181, 7822142787143142567, 9460314359456589761, 5715863480949342620),
+UInt256(4952566769841997613, 7194682251178158056, 12830225502301450456, 15101629721661808898),
+UInt256(6190708462302497016, 13605038832400085474, 16037781877876813071, 430293078367709506),
+UInt256(7738385577878121270, 17006298540500106843, 10823855310491240530, 14372924403241800595),
+UInt256(4836490986173825794, 6017250569385178873, 4459066559843331379, 13594763770453513276),
+UInt256(6045613732717282242, 16744935248586249399, 10185519218231552128, 12381768694639503691),
+UInt256(7557017165896602803, 11707797023878035941, 8120213004362052256, 15477210868299379613),
+UInt256(4723135728685376752, 5011530130710078511, 7380976136939976612, 9673256792687112258),
+UInt256(5903919660856720940, 6264412663387598139, 4614534152747582861, 12091570990858890323),
+UInt256(7379899576070901175, 7830515829234497674, 1156481672507090673, 1279405683291449191),
+UInt256(4612437235044313234, 11811601420912642902, 5334487063744319574, 12328843598125625505),
+UInt256(5765546543805391543, 5541129739286027819, 15891480866535175276, 6187682460802256073),
+UInt256(7206933179756739429, 2314726155680146870, 15252665064741581191, 7734603076002820091),
+UInt256(9008666474695924286, 7505093713027571492, 9842459294072200681, 5056567826576137210),
+UInt256(5630416546684952679, 78997552214844278, 15374909095649901233, 14689569937678555516),
+UInt256(7038020683356190848, 13933804995550719060, 9995264332707600734, 4526904366816030683),
+UInt256(8797525854195238560, 17417256244438398825, 12494080415884500917, 14882002495374814162),
+UInt256(5498453658872024100, 10885785152773999266, 891271232286731217, 11607094568822952803),
+]
+
+private let bid_multipliers1_binary80_87: [UInt256] = [
+UInt256(6873067073590030125, 13607231440967499082, 10337461077213189830, 673810155746527292),
+UInt256(8591333841987537657, 3173981245927210141, 3698454309661711479, 10065634731537934923),
+UInt256(5369583651242211035, 13512953324772976098, 4617376952752263626, 13208550734852291183),
+UInt256(6711979564052763794, 12279505637538832218, 14995093227795105341, 7287316381710588171),
+UInt256(8389974455065954743, 6126010010068764465, 9520494497889105868, 13720831495565623117),
+UInt256(5243734034416221714, 10746285283934059646, 17479524107249160927, 17798891721583290256),
+UInt256(6554667543020277143, 4209484568062798750, 12626033097206675351, 17636928633551724916),
+UInt256(8193334428775346429, 650169691651110534, 6559169334653568381, 17434474773512268241),
+UInt256(5120834017984591518, 2712199066495638035, 17934538889440643950, 13202389742658861603),
+UInt256(6401042522480739397, 12613620869974323352, 17806487593373417034, 7279615141468801196),
+UInt256(8001303153100924247, 1931968032185740479, 3811365418007219676, 18322890963690777303),
+UInt256(5000814470688077654, 8125009047757169655, 9299632413895594154, 2228434815451960006),
+UInt256(6251018088360097068, 932889272841686261, 7012854498942104788, 12008915556169725816),
+UInt256(7813772610450121335, 1166111591052107826, 13377754142105018889, 15011144445212157269),
+UInt256(4883607881531325834, 7646348772048649247, 12972782357243024710, 2464436250616516438),
+UInt256(6104509851914157293, 334563928206035751, 11604291928126392983, 12303917350125421355),
+UInt256(7630637314892696616, 5029890928684932593, 9893678891730603325, 10768210669229388789),
+UInt256(4769148321807935385, 3143681830428082870, 17712764353400096838, 9035974677482061946),
+UInt256(5961435402259919231, 8541288306462491492, 12917583404895345240, 2071596309997801624),
+UInt256(7451794252824899039, 6064924364650726461, 16146979256119181550, 2589495387497252030),
+UInt256(4657371408015561899, 10708106755547785894, 12397705044288182420, 15453492672467946231),
+UInt256(5821714260019452374, 8773447426007344464, 6273759268505452218, 870121766875381172),
+UInt256(7277142825024315468, 1743437245654404772, 7842199085631815272, 10311024245449002273),
+UInt256(9096428531280394335, 2179296557068005965, 9802748857039769090, 12888780306811252842),
+UInt256(5685267832050246459, 8279589375808585584, 8432561044863549633, 12667173710184420930),
+UInt256(7106584790062808074, 5737800701333344076, 10540701306079437042, 1998909082448362451),
+UInt256(8883230987578510092, 16395622913521455903, 13175876632599296302, 11722008389915228871),
+UInt256(5552019367236568808, 1023892284096134131, 15152451923015642045, 2714569225269630141),
+UInt256(6940024209045711010, 1279865355120167664, 14328878885342164652, 8004897550014425580),
+UInt256(8675030261307138762, 10823203730754985388, 17911098606677705815, 10006121937518031974),
+UInt256(5421893913316961726, 11376188350149253772, 1971064592318790326, 13171355238589851840),
+UInt256(6777367391646202158, 4996863400831791407, 2463830740398487908, 7240822011382538992),
+UInt256(8471709239557752697, 15469451287894515066, 16914846480780273597, 9051027514228173740),
+UInt256(5294818274723595436, 2750878027292990060, 15183465068915058902, 7962735205606302540),
+UInt256(6618522843404494295, 3438597534116237576, 532587262434272012, 730046970153102366),
+UInt256(8273153554255617868, 18133304972927460682, 665734078042840015, 912558712691377958),
+UInt256(5170720971409761168, 2109943571224887118, 5027769817204162913, 7487878223073193080),
+UInt256(6463401214262201460, 2637429464031108897, 15508084308359979449, 13971533797268879254),
+UInt256(8079251517827751825, 3296786830038886122, 5550047330167810600, 3629359191303935355),
+UInt256(5049532198642344890, 13589706814842773586, 8080465599782269529, 2268349494564959597),
+UInt256(6311915248302931113, 7763761481698691175, 877209962873061103, 7447122886633587400),
+UInt256(7889894060378663891, 14316387870550751872, 14931570508873490091, 4697217589864596346),
+UInt256(4931183787736664932, 6641899409880525968, 9332231568045931307, 629917984451678765),
+UInt256(6163979734670831165, 8302374262350657460, 11665289460057414133, 14622455535846762168),
+UInt256(7704974668338538956, 14989653846365709729, 14581611825071767667, 4443011364526288997),
+UInt256(4815609167711586848, 145161617123792773, 2195978363028772936, 471039093615236672),
+UInt256(6019511459639483560, 181452021404740966, 7356658972213354074, 588798867019045839),
+UInt256(7524389324549354450, 226815026755926207, 18419195752121468400, 9959370620628583107),
+UInt256(4702743327843346531, 4753445410149841783, 18429526372716999606, 6224606637892864442),
+UInt256(5878429159804183164, 1330120744259914325, 18425221947468861603, 17004130334220856360),
+]
+
+private let bid_multipliers1_binary80_88: [UInt256] = [
+UInt256(7348036449755228955, 1662650930324892907, 9196469379053913292, 16643476899348682546),
+UInt256(9185045562194036193, 15913371718188279846, 6883900705390003712, 2357602050476301567),
+UInt256(5740653476371272621, 3028328296226593047, 18137495996150916032, 1473501281547688480),
+UInt256(7175816845464090776, 8397096388710629213, 18060183976761257136, 1841876601934610599),
+UInt256(8969771056830113470, 10496370485888286517, 8740171915669407708, 2302345752418263249),
+UInt256(5606106910518820919, 1948545535252791169, 7768450456507073769, 10662338132116190339),
+UInt256(7007633638148526148, 16270739974348152673, 14322249089061230115, 17939608683572625827),
+UInt256(8759542047685657686, 1891680894225639226, 4067753306044373932, 17812824836038394380),
+UInt256(5474713779803536053, 15017358614173188228, 7154031834705121612, 1909643485669220680),
+UInt256(6843392224754420067, 4936640212434321573, 8942539793381402015, 2387054357086525850),
+UInt256(8554240280943025084, 1559114247115514062, 15789860760154140422, 16818876001640321024),
+UInt256(5346400175589390677, 10197818441301972097, 5256976956668949860, 5900111482597812736),
+UInt256(6683000219486738346, 17358959070054853025, 11182907214263575229, 7375139353247265920),
+UInt256(8353750274358422933, 12475326800713790474, 143575962547305324, 13830610209986470304),
+UInt256(5221093921474014333, 10102922259659812998, 4701420995019453731, 17867503418096319748),
+UInt256(6526367401842517916, 17240338843002154151, 15100148280629092972, 17722693254193011781),
+UInt256(8157959252303147396, 3103679480043141073, 14263499332358978312, 3706622494031713110),
+UInt256(5098724532689467122, 11163171711881738979, 1997158055083279589, 2316639058769820694),
+UInt256(6373405665861833903, 4730592602997397915, 16331505624136263198, 7507484841889663771),
+UInt256(7966757082327292379, 1301554735319359490, 15802696011742941094, 160984015507303906),
+UInt256(4979223176454557736, 16954372774070457345, 14488371025766726087, 13935673064974228654),
+UInt256(6224028970568197171, 2746221893878520066, 4275405726926243897, 12807905312790397913),
+UInt256(7780036213210246463, 17267835422630313794, 14567629195512580680, 2174823585705833679),
+UInt256(4862522633256404039, 17709926166785027977, 13716454265622750829, 1359264741066146049),
+UInt256(6078153291570505049, 17525721690053897068, 3310509776746274824, 6310766944760070466),
+UInt256(7597691614463131312, 8072094057285207623, 4138137220932843530, 7888458680950088082),
+UInt256(4748557259039457070, 5045058785803254764, 9503864790724109062, 9541972694021192955),
+UInt256(5935696573799321337, 15529695519108844263, 11879830988405136328, 2704093830671715386),
+UInt256(7419620717249151672, 5577061343603891617, 10238102717079032506, 3380117288339644233),
+UInt256(4637262948280719795, 3485663339752432260, 17928029244242865076, 6724259323639665550),
+UInt256(5796578685350899743, 18192137229972704038, 3963292481594029729, 8405324154549581937),
+UInt256(7245723356688624679, 18128485519038492143, 14177487638847312969, 15118341211614365325),
+UInt256(9057154195860780849, 18048920880370727275, 13110173530131753308, 5062868459235792944),
+UInt256(5660721372412988031, 4363046522590622691, 5888015447118651865, 12387664823877146398),
+UInt256(7075901715516235039, 842122134810890460, 2748333290470926928, 1649522974564269286),
+UInt256(8844877144395293798, 14887710723795776787, 3435416613088658660, 2061903718205336607),
+UInt256(5528048215247058624, 4693133183944972587, 18288036447676269326, 10512061860733111187),
+UInt256(6910060269058823280, 5866416479931215734, 18248359541167948754, 3916705289061613176),
+UInt256(8637575336323529100, 7333020599914019668, 13587077389605160134, 14119253648181792278),
+UInt256(5398484585202205687, 13806509911801038100, 17715295405358000892, 4212847511686232270),
+UInt256(6748105731502757109, 12646451371323909722, 3697375182987949499, 5266059389607790337),
+UInt256(8435132164378446387, 1973006158872723440, 13845091015589712682, 1970888218582350018),
+UInt256(5271957602736528991, 17374029913791309814, 8653181884743570426, 5843491155041356665),
+UInt256(6589947003420661239, 17105851373811749364, 1593105319074687224, 16527735980656471639),
+UInt256(8237433754275826549, 16770628198837298801, 1991381648843359031, 2212925902111037933),
+UInt256(5148396096422391593, 12787485633487005702, 12773828576595569154, 8300607716460480564),
+UInt256(6435495120527989492, 2149298986576593416, 6743913683889685635, 1152387608720824897),
+UInt256(8044368900659986865, 2686623733220741770, 8429892104862107043, 15275542566183194834),
+UInt256(5027730562912491790, 13208354879331433366, 9880368583966204806, 7241371094650802819),
+UInt256(6284663203640614738, 7287071562309515900, 3127088693102980199, 18275085905168279332),
+]
+
+private let bid_multipliers1_binary80_89: [UInt256] = [
+UInt256(7855829004550768422, 18332211489741670683, 3908860866378725249, 18232171363032961261),
+UInt256(4909893127844230264, 6845946162661156273, 137195032273009329, 4477578074254518932),
+UInt256(6137366409805287830, 8557432703326445341, 4783179808768649565, 10208658611245536569),
+UInt256(7671708012256609788, 1473418842303280868, 10590660779388199860, 17372509282484308615),
+UInt256(4794817507660381117, 10144258813294326350, 15842535023972400721, 1634446264697917077),
+UInt256(5993521884575476396, 17292009535045295842, 10579796743110725093, 6654743849299784250),
+UInt256(7491902355719345496, 3168267845097068187, 4001373892033630558, 12930115830052118216),
+UInt256(4682438972324590935, 1980167403185667617, 195015673307325147, 3469636375355185981),
+UInt256(5853048715405738668, 16310267309264248233, 4855455610061544337, 18172103524476146188),
+UInt256(7316310894257173336, 1941090062870758675, 10681005531004318326, 8880071350313019023),
+UInt256(9145388617821466670, 2426362578588448344, 8739570895328010004, 1876717151036497971),
+UInt256(5715867886138416668, 15351534666899943927, 5462231809580006252, 10396320256252587040),
+UInt256(7144834857673020836, 742674259915378293, 2216103743547619911, 12995400320315733800),
+UInt256(8931043572091276045, 928342824894222866, 7381815697861912793, 11632564381967279346),
+UInt256(5581902232557047528, 2886057274772583243, 9225320829591083400, 352823711088467735),
+UInt256(6977377790696309410, 3607571593465729054, 6919965018561466346, 441029638860584669),
+UInt256(8721722238370386762, 13732836528686937125, 17873328310056608740, 9774659085430506644),
+UInt256(5451076398981491726, 13194708848856723607, 13476673202999074414, 15332533965248842461),
+UInt256(6813845498726864658, 7270014024216128701, 12234155485321455114, 9942295419706277268),
+UInt256(8517306873408580822, 18310889567124936685, 1457636301369655181, 3204497237778070777),
+UInt256(5323316795880363014, 6832619961025697524, 3216865697569728440, 4308653782824988188),
+UInt256(6654145994850453767, 17764146988136897713, 4021082121962160550, 5385817228531235234),
+UInt256(8317682493563067209, 17593497716743734237, 9638038670880088591, 15955643572518819851),
+UInt256(5198551558476917006, 4078407045323752042, 8329617178513749321, 16889806260465344263),
+UInt256(6498189448096146257, 14321380843509465861, 1188649436287410844, 7277199770299516617),
+UInt256(8122736810120182822, 4066667999104668614, 6097497813786651459, 9096499712874395771),
+UInt256(5076710506325114263, 16376725554722581595, 17645994188898820874, 3379469311332803405),
+UInt256(6345888132906392829, 15859220924975839090, 17445806717696138188, 13447708676020780064),
+UInt256(7932360166132991037, 5988968100937635151, 12583886360265396927, 16809635845025975080),
+UInt256(4957725103833119398, 6048948072299715921, 14782458002806954935, 17423551430782316281),
+UInt256(6197156379791399247, 16784557127229420710, 4643014448226529957, 17167753270050507447),
+UInt256(7746445474739249059, 16369010390609387983, 15027140097137938255, 7624633532280970597),
+UInt256(4841528421712030662, 7924788484917173537, 16309491588352293265, 11682924985316688479),
+UInt256(6051910527140038328, 682613569291691114, 6551806430158202870, 768598176363696887),
+UInt256(7564888158925047910, 853266961614613892, 17413130074552529395, 10184119757309396917),
+UInt256(4728055099328154943, 14368349906291297395, 1659834259740555064, 4059231839104679121),
+UInt256(5910068874160193679, 13348751364436733839, 15909850879957857542, 5074039798880848901),
+UInt256(7387586092700242099, 12074253187118529395, 15275627581519934023, 15565921785455836934),
+UInt256(4617241307937651312, 5240565232735386920, 7241424229236264812, 16646230143550979940),
+UInt256(5771551634922064140, 6550706540919233650, 9051780286545331016, 2361043605729173309),
+UInt256(7214439543652580175, 8188383176149042063, 2091353321326887962, 2951304507161466636),
+UInt256(9018049429565725219, 5623792951758914674, 16449249706940773664, 12912502670806609103),
+UInt256(5636280893478578262, 1209027585635627719, 14892467085265371444, 8070314169254130690),
+UInt256(7045351116848222827, 10734656518899310457, 14003897838154326401, 10087892711567663362),
+UInt256(8806688896060278534, 8806634630196750168, 3669814242410744289, 17221551907886967106),
+UInt256(5504180560037674084, 892460625445580951, 2293633901506715181, 3845940914788272586),
+UInt256(6880225700047092605, 1115575781806976188, 16702100432165557688, 9419112161912728636),
+UInt256(8600282125058865756, 6006155745686108140, 2430881466497395494, 11773890202390910795),
+UInt256(5375176328161791097, 12977219377908593395, 10742672953415647992, 2746995358066931343),
+UInt256(6718970410202238872, 2386466167103578032, 8816655173342172086, 3433744197583664178),
+]
+
+private let bid_multipliers1_binary80_90: [UInt256] = [
+UInt256(8398713012752798590, 2983082708879472540, 11020818966677715107, 13515552283834356031),
+UInt256(5249195632970499118, 15699484748331834049, 16111383891028347750, 6141377168182778568),
+UInt256(6561494541213123898, 10400983898560016754, 6304171808503270975, 16900093497083249017),
+UInt256(8201868176516404873, 3777857836345245134, 17103586797483864527, 16513430852926673367),
+UInt256(5126167610322753045, 13890376193784247969, 6078055730000027425, 17238423310720252711),
+UInt256(6407709512903441307, 3527912186948146249, 12209255680927422186, 7712971083118152176),
+UInt256(8009636891129301633, 18244948288967346524, 1426511545877114021, 417841817042914412),
+UInt256(5006023056955813521, 4485563652963509721, 10114941753027972071, 2566994144865515460),
+UInt256(6257528821194766901, 10218640584631775055, 17255363209712352992, 17043800736364058037),
+UInt256(7821911026493458626, 17384986749217106723, 16957517993713053337, 2858006846745520930),
+UInt256(4888694391558411641, 15477302736688079606, 8292605736856964383, 13315469325284420341),
+UInt256(6110867989448014552, 5511570365577935796, 1142385134216429671, 12032650638178137523),
+UInt256(7638584986810018190, 6889462956972419745, 1427981417770537089, 10429127279295283999),
+UInt256(4774115616756261368, 18140972403389926052, 12421703432175055440, 18047419595628022260),
+UInt256(5967644520945326711, 4229471430527855949, 15527129290218819301, 4112530420825476208),
+UInt256(7459555651181658389, 675153269732432033, 5573853557491360414, 9752349044459233164),
+UInt256(4662222281988536493, 2727813802796463972, 15012873519500570019, 1483532134359632824),
+UInt256(5827777852485670616, 8021453271922967870, 319347825666160907, 15689473223231704742),
+UInt256(7284722315607088270, 10026816589903709837, 9622556818937476942, 15000155510612243023),
+UInt256(9105902894508860338, 3310148700524861488, 16639882042099234082, 9526822351410527971),
+UInt256(5691189309068037711, 6680528956255426334, 10399926276312021301, 10565949988058967886),
+UInt256(7113986636335047139, 3738975176891895014, 3776535808535250818, 17819123503501097761),
+UInt256(8892483295418808924, 62032952687480863, 13944041797523839331, 13050532342521596393),
+UInt256(5557802059636755577, 9262142632284451347, 15632555151093481438, 5850739704862303794),
+UInt256(6947252574545944471, 16189364308782952088, 14929007920439463893, 16536796667932655551),
+UInt256(8684065718182430589, 15625019367551302207, 214515826839778251, 6835937779633655726),
+UInt256(5427541073864019118, 12071480113933257831, 7051601419415943263, 1966618103057340877),
+UInt256(6784426342330023898, 5865978105561796481, 4202815755842541174, 16293330684103839808),
+UInt256(8480532927912529872, 16555844668807021409, 9865205713230564372, 11143291318275023952),
+UInt256(5300333079945331170, 10347402918004388380, 17694968616837572492, 16187929110776665778),
+UInt256(6625416349931663963, 3710881610650709668, 3671966697337414000, 1788167314761280607),
+UInt256(8281770437414579954, 26915994885999181, 4589958371671767500, 2235209143451600758),
+UInt256(5176106523384112471, 4628508515231137392, 5174566991508548639, 10620377751512026282),
+UInt256(6470133154230140589, 1173949625611533836, 6468208739385685799, 8663786170962644948),
+UInt256(8087666442787675736, 6079123050441805199, 8085260924232107249, 6218046695275918281),
+UInt256(5054791526742297335, 3799451906526128249, 11970817105286148886, 15415494230615918686),
+UInt256(6318489408427871669, 137628864730272408, 1128463326325522396, 10045995751415122549),
+UInt256(7898111760534839586, 4783722099340228414, 1410579157906902995, 12557494689268903187),
+UInt256(4936319850334274741, 7601512330515030662, 14716670028973978084, 5542591171579370540),
+UInt256(6170399812917843426, 14113576431571176232, 9172465499362696797, 6928238964474213175),
+UInt256(7712999766147304283, 8418598502609194482, 11465581874203370996, 13271984724020154372),
+UInt256(4820624853842065177, 2955781054917052599, 11777674689804494776, 17518362489367372291),
+UInt256(6025781067302581471, 8306412337073703653, 10110407343828230567, 3451209037999663747),
+UInt256(7532226334128226839, 5771329402914741662, 17249695198212676112, 18149069352781743396),
+UInt256(4707641458830141774, 10524609904462795395, 6169373480455534666, 11343168345488589623),
+UInt256(5884551823537677218, 3932390343723718436, 3100030832142030429, 4955588395005961220),
+UInt256(7355689779422096522, 14138859966509423853, 3875038540177538036, 10806171512184839429),
+UInt256(9194612224277620653, 8450202921282004008, 9455484193649310449, 13507714390231049286),
+UInt256(5746632640173512908, 7587219835014946457, 5909677621030819031, 1524792466253323948),
+UInt256(7183290800216891135, 9484024793768683071, 11998783044715911692, 15741048638098818647),
+]
+
+private let bid_multipliers1_binary80_91: [UInt256] = [
+UInt256(8979113500271113919, 7243344973783465935, 10386792787467501712, 1229566723913971693),
+UInt256(5611945937669446199, 11444619636255748065, 13409274519808270426, 768479202446232308),
+UInt256(7014932422086807749, 9694088526892297178, 2926535094478174320, 10183971039912566193),
+UInt256(8768665527608509686, 16729296677042759376, 12881540904952493708, 12729963799890707741),
+UInt256(5480415954755318554, 5844124404724336706, 8050963065595308567, 17179599411786468147),
+UInt256(6850519943444148192, 16528527542760196691, 840331795139359901, 16862813246305697279),
+UInt256(8563149929305185241, 2213915354740694247, 14885472799206363589, 7243458502599957887),
+UInt256(5351968705815740775, 12912912142781403664, 16220949527145059099, 6833004573338667631),
+UInt256(6689960882269675969, 11529454160049366677, 1829442835221772258, 3929569698245946635),
+UInt256(8362451102837094962, 576759644779544634, 6898489562454603226, 14135334159662209102),
+UInt256(5226531939273184351, 4972160796414603300, 8923241994961514920, 13446269868216268593),
+UInt256(6533164924091480439, 1603514977090866221, 11154052493701893650, 16807837335270335741),
+UInt256(8166456155114350548, 15839451776645746489, 107507561845203351, 11786424632233143868),
+UInt256(5104035096946469093, 676285323548815747, 11596407272221721854, 14284044422786796774),
+UInt256(6380043871183086366, 5457042672863407588, 9883823071849764414, 8631683491628720159),
+UInt256(7975054838978857957, 16044675377934035293, 12354778839812205518, 1566232327681124390),
+UInt256(4984409274361786223, 12333765120422466010, 10027579784096322400, 14813953260082866456),
+UInt256(6230511592952232779, 10805520382100694609, 3311102693265627193, 70697501394031454),
+UInt256(7788139491190290974, 8895214459198480357, 8750564385009421895, 4700057895169927222),
+UInt256(4867587181993931859, 947823018571662319, 7774945749844582636, 9855065212122286370),
+UInt256(6084483977492414823, 15019836828496741611, 5106996168878340391, 12318831515152857962),
+UInt256(7605604971865518529, 14163110017193539110, 1772059192670537585, 10786853375513684548),
+UInt256(4753503107415949081, 1934414733104880087, 14942595050701249702, 18270998405764522603),
+UInt256(5941878884269936351, 7029704434808488013, 14066557794949174224, 13615375970350877446),
+UInt256(7427348605337420439, 4175444525083222113, 3748139188404304068, 17019219962938596807),
+UInt256(4642092878335887774, 9527181855818095676, 13871802038821159803, 1413640439981847196),
+UInt256(5802616097919859718, 2685605282917843787, 17339752548526449753, 15602108605259472707),
+UInt256(7253270122399824647, 12580378640502080542, 17063004667230674288, 5667577701292177172),
+UInt256(9066587652999780809, 11113787282200212774, 12105383797183567052, 7084472126615221465),
+UInt256(5666617283124863006, 28588023734051128, 2954178854812341503, 13651167115989289224),
+UInt256(7083271603906078757, 9259107066522339718, 3692723568515426879, 12452272876559223626),
+UInt256(8854089504882598446, 16185569851580312551, 13839276497499059407, 10953655077271641628),
+UInt256(5533805940551624029, 5504295138810307440, 15567076838577993985, 13763563450935857874),
+UInt256(6917257425689530036, 11492054941940272205, 1012101974512940866, 3369396258387658630),
+UInt256(8646571782111912545, 14365068677425340256, 5876813486568563986, 13435117359839349095),
+UInt256(5404107363819945341, 2060638895749755804, 3673008429105352491, 13008634368326981089),
+UInt256(6755134204774931676, 7187484638114582659, 4591260536381690614, 11649106941981338457),
+UInt256(8443917755968664595, 8984355797643228324, 1127389652049725364, 5338011640621897263),
+UInt256(5277448597480415372, 3309379364313323750, 9927990569385854160, 12559629312243461597),
+UInt256(6596810746850519215, 4136724205391654688, 3186616174877541892, 15699536640304326997),
+UInt256(8246013433563149019, 559219238312180456, 3983270218596927366, 1177676726670857130),
+UInt256(5153758395976968136, 16490413088440970449, 2489543886623079603, 14571106009451449418),
+UInt256(6442197994971210171, 2166272286841661445, 7723615876706237408, 13602196493386923869),
+UInt256(8052747493714012713, 16542898413834240518, 14266205864310184664, 17002745616733654836),
+UInt256(5032967183571257946, 3421782481005318468, 4304692646766477511, 10626716010458534273),
+UInt256(6291208979464072432, 13500600138111423893, 5380865808458096889, 8671708994645779937),
+UInt256(7864011224330090540, 16875750172639279866, 11337768279000009015, 15451322261734612825),
+UInt256(4915007015206306588, 1323971821044774108, 11697791192802393538, 16574605441225214872),
+UInt256(6143758769007883235, 1654964776305967635, 14622238991002991923, 11494884764676742781),
+UInt256(7679698461259854043, 15903764025664623256, 13666112720326352000, 9756919937418540573),
+]
+
+private let bid_multipliers1_binary80_92: [UInt256] = [
+UInt256(4799811538287408777, 7634009506826695583, 8541320450203970000, 6098074960886587858),
+UInt256(5999764422859260971, 14154197901960757383, 6064964544327574596, 7622593701108234822),
+UInt256(7499705528574076214, 13081061359023558825, 2969519661982080341, 9528242126385293528),
+UInt256(4687315955358797634, 3563977330962336361, 13385164834807269973, 8260994338204502407),
+UInt256(5859144944198497042, 13678343700557696260, 2896397988226923754, 14937928941183015913),
+UInt256(7323931180248121303, 7874557588842344517, 3620497485283654693, 9449039139623994083),
+UInt256(9154913975310151629, 5231510967625542742, 9137307875031956270, 16422984942957380507),
+UInt256(5721821234568844768, 5575537363979658166, 1099131403467584765, 5652679570920974913),
+UInt256(7152276543211055960, 6969421704974572707, 10597286291189256764, 11677535482078606546),
+UInt256(8940345679013819950, 8711777131218215884, 8634921845559183051, 14596919352598258182),
+UInt256(5587716049383637469, 833174688583997023, 14620198190329265215, 6817231586160217412),
+UInt256(6984645061729546836, 5653154379157384183, 13663561719484193615, 3909853464272883861),
+UInt256(8730806327161933545, 7066442973946730229, 12467766130927854115, 275630811913716922),
+UInt256(5456753954476208465, 15945741904785176153, 10098196841043602773, 16313170321941930740),
+UInt256(6820942443095260582, 6097119325699306479, 17234432069731891371, 6556404847145249713),
+UInt256(8526178053869075727, 16844771193978908907, 16931354068737476310, 3583820040504174237),
+UInt256(5328861283668172329, 17445511023877899923, 8276253283747228741, 16074945580597272611),
+UInt256(6661076604585215412, 7971830724565211192, 5733630586256648023, 6258623920464427051),
+UInt256(8326345755731519265, 9964788405706513990, 7167038232820810029, 3211593882153145910),
+UInt256(5203966097332199540, 17757207799635041003, 18314456950795169980, 4313089185559410146),
+UInt256(6504957621665249426, 3749765675834249638, 18281385170066574571, 5391361481949262682),
+UInt256(8131197027081561782, 13910579131647587856, 13628359425728442406, 2127515834009190448),
+UInt256(5081998141925976114, 4082425938852354506, 8517724641080276503, 15164755451537907742),
+UInt256(6352497677407470142, 14326404460420218941, 1423783764495569821, 14344258295994996774),
+UInt256(7940622096759337678, 8684633538670497868, 6391415724046850181, 4095264814711582255),
+UInt256(4962888810474586049, 816209943241673263, 13218006864384057171, 4865383518408432862),
+UInt256(6203611013093232561, 5631948447479479483, 11910822562052683560, 1470043379583153173),
+UInt256(7754513766366540701, 11651621577776737258, 10276842184138466546, 1837554224478941466),
+UInt256(4846571103979087938, 9588106495324154738, 11034712383513929495, 5760157408726726321),
+UInt256(6058213879973859923, 2761761082300417615, 4570018442537636061, 2588510742481019997),
+UInt256(7572767349967324903, 17287259408157685731, 1100837034744657172, 7847324446528662900),
+UInt256(4732979593729578064, 17722066157739635437, 16828924211211268396, 14127949815935190120),
+UInt256(5916224492161972581, 3705838623464992681, 7201097208731921783, 17659937269918987650),
+UInt256(7395280615202465726, 9243984297758628755, 13613057529342290133, 17463235568971346659),
+UInt256(4622050384501541079, 1165804167671755068, 6202317946625237381, 13220365239820785614),
+UInt256(5777562980626926348, 15292313264871857547, 7752897433281546727, 2690398494493818305),
+UInt256(7221953725783657936, 668647507380270318, 5079435773174545504, 17198056173399436594),
+UInt256(9027442157229572420, 835809384225337897, 15572666753322957689, 3050826143039744126),
+UInt256(5642151348268482762, 9745752901995611994, 2815387693185766699, 13435981385468309839),
+UInt256(7052689185335603453, 2958819090639739184, 12742606653336984182, 12183290713407999394),
+UInt256(8815861481669504316, 8310209881727061884, 15928258316671230228, 6005741354905223435),
+UInt256(5509913426043440197, 14417253212934189486, 731789411064743084, 12976960383670540455),
+UInt256(6887391782554300247, 4186508460885573145, 10138108800685704663, 16221200479588175569),
+UInt256(8609239728192875309, 621449557679578527, 17284322019284518733, 15664814581057831557),
+UInt256(5380774830120547068, 2694248982763430531, 17720230289693906064, 12096352122374838675),
+UInt256(6725968537650683835, 3367811228454288164, 17538601843689994676, 15120440152968548344),
+UInt256(8407460672063354793, 18044822090850023918, 3476508230902941730, 453806117501133814),
+UInt256(5254662920039596746, 4360484779140183092, 16007875699596502293, 4895314841865596538),
+UInt256(6568328650049495932, 14673978010780004674, 1563100550786076250, 10730829570759383576),
+UInt256(8210410812561869915, 18342472513475005842, 11177247725337371121, 4190164926594453662),
+]
+
+private let bid_multipliers1_binary80_93: [UInt256] = [
+UInt256(5131506757851168697, 9158202311708184699, 11597465846763244854, 14148068125190003299),
+UInt256(6414383447313960871, 16059438908062618778, 9885146290026668164, 8461713119632728315),
+UInt256(8017979309142451089, 15462612616650885569, 3133060825678559397, 10577141399540910394),
+UInt256(5011237068214031931, 2746603857765721624, 13487378062117569383, 8916556383926762949),
+UInt256(6264046335267539913, 17268312877489315742, 16859222577646961729, 6534009461481065782),
+UInt256(7830057919084424892, 7750333041579480966, 11850656185203926353, 12779197845278720131),
+UInt256(4893786199427765557, 14067330187841951412, 2794974097325066067, 1069469625658118226),
+UInt256(6117232749284706947, 3749104679520275553, 3493717621656332583, 15171895087354811494),
+UInt256(7646540936605883684, 74694830972956537, 8978833045497803633, 14353182840766126464),
+UInt256(4779088085378677302, 9270056306212873643, 17140985699504597031, 2053210247837747184),
+UInt256(5973860106723346628, 2364198345911316246, 16814546105953358384, 16401570865079347692),
+UInt256(7467325133404183285, 2955247932389145308, 11794810595586922173, 2055219507639632999),
+UInt256(4667078208377614553, 4152872966956909769, 16595128659096602166, 3590355201488464576),
+UInt256(5833847760472018191, 9802777227123525116, 6908852768588588995, 13711316038715356528),
+UInt256(7292309700590022739, 7641785515477018491, 8636065960735736244, 12527459029966807756),
+UInt256(9115387125737528424, 4940545875918885210, 6183396432492282401, 15659323787458509695),
+UInt256(5697116953585955265, 3087841172449303256, 8476308788735064405, 2869548339520486704),
+UInt256(7121396191982444081, 8471487483989016974, 10595385985918830506, 8198621442827996284),
+UInt256(8901745239978055101, 15201045373413659122, 4020860445543762325, 1024904766680219546),
+UInt256(5563590774986284438, 11806496367597230903, 7124723796892239357, 2946408488388831169),
+UInt256(6954488468732855548, 5534748422641762821, 4294218727687911292, 8294696628913426865),
+UInt256(8693110585916069435, 6918435528302203526, 9979459428037277019, 10368370786141783581),
+UInt256(5433194116197543397, 2018179195975183252, 1625476124095910233, 4174388732124920786),
+UInt256(6791492645246929246, 7134410013396366969, 2031845155119887791, 9829671933583538887),
+UInt256(8489365806558661557, 18141384553600234519, 7151492462327247643, 7675403898552035704),
+UInt256(5305853629099163473, 13644208355213840526, 11387211816595611633, 2491284427381328363),
+UInt256(6632317036373954342, 3220202388735136946, 5010642733889738733, 7725791552654048358),
+UInt256(8290396295467442927, 13248625022773696990, 15486675454216949224, 14268925459244948351),
+UInt256(5181497684667151829, 15197919666874642475, 5067486140458205361, 8918078412028092720),
+UInt256(6476872105833939787, 5162341528311139382, 1722671657145368797, 15759284033462503804),
+UInt256(8096090132292424734, 1841240891961536323, 11376711608286486805, 5864046986545966042),
+UInt256(5060056332682765458, 14985833612758123914, 4804601745965360301, 5970872375804922729),
+UInt256(6325070415853456823, 9508919979092879084, 15229124219311476184, 12075276488183541315),
+UInt256(7906338019816821029, 7274463955438710952, 589661200429793614, 15094095610229426643),
+UInt256(4941461262385513143, 6852382981362888297, 368538250268621009, 4822123737966003748),
+UInt256(6176826577981891429, 3953792708276222467, 5072358831263164165, 10639340690884892589),
+UInt256(7721033222477364286, 9553926903772665988, 1728762520651567302, 17910861882033503640),
+UInt256(4825645764048352679, 1359518296430528338, 10303848612262005372, 6582602657843551871),
+UInt256(6032057205060440848, 15534455925820324135, 3656438728472730907, 8228253322304439839),
+UInt256(7540071506325551061, 971325833565853552, 18405606465873077346, 5673630634453161895),
+UInt256(4712544691453469413, 2912921655192352422, 11503504041170673341, 8157705164960614088),
+UInt256(5890680864316836766, 8252838087417828432, 5156008014608565868, 14808817474628155514),
+UInt256(7363351080396045958, 1092675572417509732, 6445010018260707336, 64277769575642777),
+UInt256(9204188850495057447, 10589216502376662973, 8056262522825884170, 80347211969553471),
+UInt256(5752618031559410904, 13535789341626496214, 7341007085979871558, 4661903025908358824),
+UInt256(7190772539449263630, 16919736677033120267, 18399630894329615255, 15050750819240224337),
+UInt256(8988465674311579538, 11926298809436624526, 18387852599484631165, 14201752505622892517),
+UInt256(5617791046444737211, 12065622774325278233, 6880721856250506574, 11181938325228001776),
+UInt256(7022238808055921514, 10470342449479209887, 13212588338740521122, 4754050869680226411),
+UInt256(8777798510069901893, 3864556024994236551, 11904049404998263498, 15165935623955058822),
+]
+
+private let bid_multipliers1_binary80_94: [UInt256] = [
+UInt256(5486124068793688683, 4721190524835091796, 14357559905764996542, 14090395783399299668),
+UInt256(6857655085992110854, 1289802137616476841, 17946949882206245678, 8389622692394348777),
+UInt256(8572068857490138567, 10835624708875371860, 8598629297475643386, 1263656328638160163),
+UInt256(5357543035931336604, 13689794470688189268, 14597515347777052924, 5401471223826238006),
+UInt256(6696928794914170755, 17112243088360236585, 18246894184721316155, 6751839029782797507),
+UInt256(8371160993642713444, 16778617842022907828, 8973559675619481482, 3828112768801108980),
+UInt256(5231975621026695903, 1263264114409541584, 14831846834116951734, 7004256498928081017),
+UInt256(6539969526283369878, 15414138198294090693, 93064468936638051, 17978692660514877079),
+UInt256(8174961907854212348, 10044300711012837558, 4728016604598185468, 17861679807216208444),
+UInt256(5109351192408882717, 15501059981237799281, 16790068433156029630, 1940177842655354470),
+UInt256(6386688990511103397, 5541266921265085390, 7152527486162873325, 11648594340173968895),
+UInt256(7983361238138879246, 11538269670008744641, 18164031394558367465, 725684869935297407),
+UInt256(4989600773836799529, 2599732525328077497, 4434990593957897809, 11982768089778030640),
+UInt256(6237000967295999411, 7861351675087484775, 10155424260874760166, 1143402056940374587),
+UInt256(7796251209119999264, 5215003575431968065, 8082594307666062303, 10652624608030244042),
+UInt256(4872657005699999540, 3259377234644980040, 16580836488359758699, 13575419407659984382),
+UInt256(6090821257124999425, 4074221543306225051, 2279301536740146758, 12357588241147592574),
+UInt256(7613526571406249281, 9704462947560169217, 16684184976207347160, 6223613264579714909),
+UInt256(4758454107128905800, 17594504388293575521, 3510086582488510119, 3889758290362321819),
+UInt256(5948067633911132251, 3546386411657417785, 8999294246538025553, 250511844525514369),
+UInt256(7435084542388915313, 18268041069853935943, 15860803826599919845, 4924825824084280865),
+UInt256(4646927838993072071, 4499996641017628108, 16830531419266031759, 5383859149266369493),
+UInt256(5808659798741340089, 1013309782844647232, 2591420200372988083, 2118137918155573962),
+UInt256(7260824748426675111, 5878323246983196944, 3239275250466235103, 16482730452976631164),
+UInt256(9076030935533343889, 2736218040301608276, 4049094063082793879, 15991727047793401051),
+UInt256(5672519334708339930, 13239351321256974932, 11754055826281521982, 16912358432511957513),
+UInt256(7090649168385424913, 7325817114716442857, 14692569782851902478, 11917076003785171083),
+UInt256(8863311460481781141, 13768957411822941476, 4530654173282714386, 5672972967876688046),
+UInt256(5539569662801113213, 10911441391603032374, 12055030895156472299, 8157294123350317933),
+UInt256(6924462078501391516, 18250987757931178372, 5845416582090814566, 5584931635760509512),
+UInt256(8655577598126739396, 4366990623704421349, 7306770727613518207, 16204536581555412698),
+UInt256(5409735998829212122, 11952741176670039151, 6872574713972142831, 17045364391113214793),
+UInt256(6762169998536515153, 5717554433982773131, 3979032374037790635, 16695019470464130587),
+UInt256(8452712498170643941, 11758629060905854318, 362104449119850390, 16257088319652775329),
+UInt256(5282945311356652463, 9654986172279852900, 14061373335982070206, 5548994181355596677),
+UInt256(6603681639195815579, 7457046696922428221, 17576716669977587757, 16159614763549271654),
+UInt256(8254602048994769474, 4709622352725647373, 8135837782189820985, 6364460399154425855),
+UInt256(5159126280621730921, 7555199988880917512, 7390741623082332067, 15507002795539985920),
+UInt256(6448907850777163651, 14055686004528534794, 9238427028852915084, 14772067475997594496),
+UInt256(8061134813471454564, 12957921487233280589, 2324661749211368048, 18340271287441503),
+UInt256(5038209258419659102, 17322072966375576176, 3758756602470798982, 11462669554650940),
+UInt256(6297761573024573878, 12429219171114694412, 4698445753088498727, 9237700373798089483),
+UInt256(7872201966280717348, 6313151927038592207, 5873057191360623409, 6935439448820223949),
+UInt256(4920126228925448342, 13169091991253895937, 10588189772241471486, 15863864701581109728),
+UInt256(6150157786156810428, 7237992952212594113, 17846923233729227262, 10606458840121611352),
+UInt256(7687697232696013035, 9047491190265742642, 8473595986879370366, 4034701513297238382),
+UInt256(4804810770435008147, 3348838984702395199, 9907683510226994382, 16356746501092937701),
+UInt256(6006013463043760183, 18021106786160157711, 7772918369356355074, 11222561089511396318),
+UInt256(7507516828804700229, 17914697464272809235, 5104461943268055939, 4804829325034469590),
+UInt256(4692198018002937643, 13502528924384199724, 884445705328841010, 697175318932849542),
+]
+
+private let bid_multipliers1_binary80_95: [UInt256] = [
+UInt256(5865247522503672054, 12266475137052861751, 1105557131661051262, 10094841185520837735),
+UInt256(7331559403129590068, 6109721884461301380, 15217004469858477790, 3395179445046271361),
+UInt256(9164449253911987585, 7637152355576626726, 574511513613545621, 13467346343162615009),
+UInt256(5727780783694992240, 16302435268303861463, 14194127751290629725, 10722934473690328333),
+UInt256(7159725979618740301, 1931300011670275213, 13130973670685899252, 18015354110540298320),
+UInt256(8949657474523425376, 7025811033015231921, 2578659033075210354, 4072448564465821284),
+UInt256(5593535921577140860, 4391131895634519950, 13140876941740476231, 7156966371218526206),
+UInt256(6991919901971426075, 5488914869543149938, 7202724140320819481, 4334521945595769854),
+UInt256(8739899877464282594, 2249457568501549518, 18226777212255800159, 10029838450422100221),
+UInt256(5462437423415176621, 6017596998740856353, 6780049739232487195, 13186178059154894494),
+UInt256(6828046779268970776, 12133682266853458345, 13086748192467996898, 11871036555516230214),
+UInt256(8535058474086213470, 15167102833566822932, 2523377185302832411, 5615423657540511959),
+UInt256(5334411546303883419, 4867753252551876428, 10800482777669046065, 1203796776749126023),
+UInt256(6668014432879854274, 1473005547262457631, 13500603472086307581, 6116431989363795432),
+UInt256(8335018041099817842, 11064628970932847847, 12264068321680496572, 12257226005132132194),
+UInt256(5209386275687386151, 11527079125260417808, 14582571728691392213, 16884138290062358430),
+UInt256(6511732844609232689, 9797162888148134356, 18228214660864240267, 7270114807295784325),
+UInt256(8139666055761540861, 16858139628612555850, 4338524252370748718, 4475957490692342502),
+UInt256(5087291284850963038, 12842180277096541358, 7323263676159105852, 16632531486964877776),
+UInt256(6359114106063703798, 6829353309515900889, 18377451632053658124, 2343920284996545604),
+UInt256(7948892632579629747, 17760063673749651920, 9136756484784908943, 2929900356245682005),
+UInt256(4968057895362268592, 8794196786879838498, 5710472802990568089, 8748716750294633109),
+UInt256(6210072369202835740, 10992745983599798122, 16361463040592985919, 15547581956295679290),
+UInt256(7762590461503544675, 13740932479499747653, 11228456763886456591, 14822791426942211209),
+UInt256(4851619038439715422, 6282239790473648331, 9323628486642729321, 16181773669479963862),
+UInt256(6064523798049644277, 17076171774946836222, 7042849589876023748, 6392159031567791115),
+UInt256(7580654747562055347, 7510156663401381565, 18026934024199805493, 7990198789459738893),
+UInt256(4737909217226284592, 2388004905412169526, 13572676774338572385, 7299717252626030761),
+UInt256(5922386521532855740, 2985006131765211908, 7742473931068439673, 13736332584209926355),
+UInt256(7402983151916069675, 3731257664706514885, 9678092413835549592, 3335357674980244231),
+UInt256(4626864469947543547, 26193031227877851, 8354650767860912447, 2084598546862652645),
+UInt256(5783580587434429433, 13867799344317011026, 5831627441398752654, 16440806238860479518),
+UInt256(7229475734293036792, 3499691125114100070, 16512906338603216626, 11327635761720823589),
+UInt256(9036844667866295990, 4374613906392625088, 11417760886399244975, 4936172665296253678),
+UInt256(5648027917416434993, 16569191746777554392, 7136100553999528109, 10002636943451240405),
+UInt256(7060034896770543742, 6876431628189779278, 8920125692499410136, 17114982197741438410),
+UInt256(8825043620963179677, 17818911572091999906, 1926785078769486863, 2946983673467246397),
+UInt256(5515652263101987298, 13442662741771193893, 5815926692658317193, 8759393823558110854),
+UInt256(6894565328877484123, 7579956390359216558, 11881594384250284395, 15560928297875026471),
+UInt256(8618206661096855154, 4863259469521632794, 5628620943458079686, 14839474353916395185),
+UInt256(5386379163185534471, 7651223186878408400, 8129574108088687708, 4662985452770359087),
+UInt256(6732973953981918089, 4952342965170622596, 10161967635110859635, 5828731815962948858),
+UInt256(8416217442477397611, 10802114724890666149, 12702459543888574544, 2674228751526298169),
+UInt256(5260135901548373507, 4445478693842972391, 10244880224144053042, 1671392969703936356),
+UInt256(6575169876935466884, 945162348876327585, 8194414261752678398, 11312613248984696253),
+UInt256(8218962346169333605, 1181452936095409481, 14854703845618235902, 4917394524376094508),
+UInt256(5136851466355833503, 3044251094273324878, 2366660875870315582, 16908429633017222779),
+UInt256(6421064332944791878, 17640371923123819809, 12181698131692670286, 11912165004416752666),
+UInt256(8026330416180989848, 12827092867049998954, 1392064609333674146, 5666834218666165025),
+UInt256(5016456510113118655, 8016933041906249346, 5481726399260934245, 8153457405093741045),
+]
+
+private let bid_multipliers1_binary80_96: [UInt256] = [
+UInt256(6270570637641398319, 5409480283955423778, 16075530035930943614, 14803507774794564210),
+UInt256(7838213297051747899, 2150164336516891819, 10871040508058903710, 9281012681638429454),
+UInt256(4898883310657342436, 17484753774818915051, 4488557308323120867, 1188946907596630505),
+UInt256(6123604138321678046, 3409198144814092198, 999010616976513179, 15321241689777951843),
+UInt256(7654505172902097557, 13484869717872391055, 10472135308075417282, 14539866093795051900),
+UInt256(4784065733063810973, 10733886582883938361, 13462613595188217657, 13699102327049295341),
+UInt256(5980082166329763716, 18029044247032310856, 2993208938703108360, 3288819853529455465),
+UInt256(7475102707912204646, 4089561235080836954, 3741511173378885450, 4111024816911819331),
+UInt256(4671939192445127903, 16391033827207686808, 6950130501789191310, 7181076528997274986),
+UInt256(5839923990556409879, 15877106265582220606, 8687663127236489137, 18199717698101369540),
+UInt256(7299904988195512349, 15234696813550387854, 1636206872190835614, 8914589067344548213),
+UInt256(9124881235244390437, 5208312961655821105, 11268630627093320326, 1919864297325909458),
+UInt256(5703050772027744023, 5561038610248582143, 125365114292243347, 15034973241110857124),
+UInt256(7128813465034680029, 2339612244383339774, 13991764448147467896, 14182030532961183500),
+UInt256(8911016831293350036, 7536201323906562622, 8266333523329559062, 17727538166201479375),
+UInt256(5569385519558343772, 13933497864296377447, 554772433653586510, 6468025335448536706),
+UInt256(6961731899447929715, 17416872330370471808, 14528523597349146849, 17308403706165446690),
+UInt256(8702164874309912144, 17159404394535701856, 18160654496686433562, 7800446577424644651),
+UInt256(5438853046443695090, 10724627746584813660, 11350409060429020976, 9486965129317790811),
+UInt256(6798566308054618863, 4182412646376241267, 14188011325536276220, 11858706411647238513),
+UInt256(8498207885068273579, 616329789542913680, 13123328138492957371, 14823383014559048142),
+UInt256(5311379928167670986, 16526107182960178714, 8202080086558098357, 6958771374885711137),
+UInt256(6639224910209588733, 11434261941845447585, 1029228071342847138, 13310150237034526825),
+UInt256(8299031137761985917, 457769372024645769, 5898221107605946827, 7414315759438382723),
+UInt256(5186894461101241198, 2591948866729097557, 15215603238322186527, 2328104340435295250),
+UInt256(6483618076376551497, 12463308120266147755, 5184445992620569446, 16745188480826282774),
+UInt256(8104522595470689372, 1744077095050520982, 1868871472348323904, 11708113564178077660),
+UInt256(5065326622169180857, 10313420221261351421, 15003102725499866152, 7317570977611298537),
+UInt256(6331658277711476071, 17503461295004077181, 4918820351592668978, 9146963722014123172),
+UInt256(7914572847139345089, 17267640600327708572, 10760211457918224127, 2210332615662878157),
+UInt256(4946608029462090681, 3874746347563736001, 15948504198053665887, 8298986912430380704),
+UInt256(6183260036827613351, 9455118952882057906, 6100572192284918647, 5762047622110587976),
+UInt256(7729075046034516689, 7207212672675184478, 16849087277210924117, 2590873509210847066),
+UInt256(4830671903771572930, 16033722966490460059, 5918993529829439669, 3925138952470473368),
+UInt256(6038339879714466163, 10818781671258299266, 2787055893859411682, 9518109709015479614),
+UInt256(7547924849643082704, 8911791070645486178, 12707191904179040411, 2674265099414573710),
+UInt256(4717453031026926690, 5569869419153428861, 12553680958539288160, 17812316751629966233),
+UInt256(5896816288783658362, 16185708810796561885, 1857043142891946489, 3818651865827906175),
+UInt256(7371020360979572953, 11008763976640926548, 6932989947042321015, 9385000850712270622),
+UInt256(9213775451224466191, 18372640989228546089, 8666237433802901269, 7119565044962950374),
+UInt256(5758609657015291369, 18400429645908923161, 16945613442195283053, 6755571162315537936),
+UInt256(7198262071269114212, 9165479002103990240, 7346958747461940104, 13056149971321810324),
+UInt256(8997827589086392765, 11456848752629987800, 9183698434327425130, 16320187464152262904),
+UInt256(5623642243178995478, 9466373479607436327, 5739811521454640706, 14811803183522552219),
+UInt256(7029552803973744348, 2609594812654519601, 2563078383390912979, 9291381942548414466),
+UInt256(8786941004967180435, 3261993515818149501, 7815533997666029128, 7002541409758130179),
+UInt256(5491838128104487771, 18179647011882201102, 7190551757754962157, 4376588381098831362),
+UInt256(6864797660130609714, 18112872746425363473, 18211561734048478504, 10082421494800927106),
+UInt256(8580997075163262143, 13417718896176928534, 8929394112278434418, 12603026868501158883),
+UInt256(5363123171977038839, 15303603337751662190, 969185301746633607, 12488577811240612206),
+]
+
+private let bid_multipliers1_binary80_97: [UInt256] = [
+UInt256(6703903964971298549, 14517818153762189833, 10434853664038067817, 10999036245623377353),
+UInt256(8379879956214123187, 4312214636920573579, 17655253098474972675, 18360481325456609595),
+UInt256(5237424972633826992, 389291138861664535, 8728690177333163970, 9169457819196687045),
+UInt256(6546781215792283740, 486613923577080669, 6299176703239067059, 2238450237141082998),
+UInt256(8183476519740354675, 608267404471350836, 12485656897476221727, 16633120851708517460),
+UInt256(5114672824837721671, 16521068192290451936, 17026907597777414387, 17313229559958905269),
+UInt256(6393341031047152089, 16039649221935677017, 2836890423512216368, 17029850931521243682),
+UInt256(7991676288808940112, 6214503472137432559, 8157799047817658365, 2840569590692002986),
+UInt256(4994797680505587570, 3884064670085895349, 12016153432527118334, 4081199003396195818),
+UInt256(6243497100631984462, 14078452874462144995, 1185133735376734205, 14324870791100020581),
+UInt256(7804371375789980578, 8374694056222905435, 15316475224503081469, 4071030433592862014),
+UInt256(4877732109868737861, 9845869803566703801, 7266954006100731966, 4850237030209232711),
+UInt256(6097165137335922326, 16919023272885767655, 13695378526053302861, 15286168324616316697),
+UInt256(7621456421669902908, 11925407054252433761, 12507537139139240673, 5272652350488232159),
+UInt256(4763410263543689317, 16676751445762546909, 899681684320943564, 14824622765123614859),
+UInt256(5954262829429611647, 7010881251921019924, 5736288123828567360, 84034382694966958),
+UInt256(7442828536787014559, 4151915546473887001, 7170360154785709200, 105042978368708697),
+UInt256(4651767835491884099, 9512476244187261231, 16010690142809538010, 65651861480442936),
+UInt256(5814709794364855124, 7278909286806688635, 15401676660084534608, 9305436863705329478),
+UInt256(7268387242956068905, 9098636608508360794, 14640409806678280356, 11631796079631661847),
+UInt256(9085484053695086131, 15984981779062838897, 9077140221493074637, 14539745099539577309),
+UInt256(5678427533559428832, 7684770602700580358, 17202427684501641408, 11393183696425929770),
+UInt256(7098034416949286040, 9605963253375725448, 12279662568772275952, 14241479620532412213),
+UInt256(8872543021186607550, 12007454066719656810, 15349578210965344940, 17801849525665515266),
+UInt256(5545339388241629719, 2892972773272397602, 14205172400280728492, 1902783916686171233),
+UInt256(6931674235302037148, 17451274021872660715, 8533093463496134807, 2378479895857714042),
+UInt256(8664592794127546436, 3367348453631274278, 6054680810942780604, 16808157925104306264),
+UInt256(5415370496329716522, 11327964820374322231, 17619233562121401590, 1281726666335415607),
+UInt256(6769213120412145653, 4936583988613126981, 17412355934224364083, 10825530369774045317),
+UInt256(8461516400515182066, 10782416004193796631, 7930386862498291392, 8920226943790168742),
+UInt256(5288447750321988791, 11350696021048510798, 11874020816702513976, 5575141839868855464),
+UInt256(6610559687902485989, 9576684007883250594, 5619153984023366662, 6968927299836069330),
+UInt256(8263199609878107486, 16582541028281451146, 16247314516883984135, 17934531161649862470),
+UInt256(5164499756173817179, 5752402124248519062, 14766257591479877988, 18126611003672245900),
+UInt256(6455624695217271474, 2578816636883260924, 9234449952495071678, 4211519680880755759),
+UInt256(8069530869021589342, 12446892832958851963, 11543062440618839597, 14487771637955720506),
+UInt256(5043456793138493339, 3167622002171894573, 4908571016173080796, 11360700282936019269),
+UInt256(6304320991423116673, 17794585557997031928, 10747399788643738899, 14200875353670024086),
+UInt256(7880401239278895842, 8408173892214126198, 13434249735804673624, 13139408173660142203),
+UInt256(4925250774549309901, 9866794701061216778, 3784720066450533111, 8212130108537588877),
+UInt256(6156563468186637376, 16945179394753908876, 13954272119917942197, 5653476617244598192),
+UInt256(7695704335233296721, 2734730169732834479, 17442840149897427746, 11678531789983135644),
+UInt256(4809815209520810450, 13238421402151491309, 17819304121326974197, 11910768387166847682),
+UInt256(6012269011901013063, 7324654715834588329, 8439072096376554035, 1053402428676395890),
+UInt256(7515336264876266329, 4544132376365847507, 15160526138898080447, 15151811091127658574),
+UInt256(4697085165547666455, 14369297781297124452, 7169485827597606327, 16387410959595868465),
+UInt256(5871356456934583069, 13349936208194017661, 8961857284497007909, 15872577681067447677),
+UInt256(7339195571168228837, 2852362204960358364, 15814007624048647791, 6005664046052145885),
+UInt256(9173994463960286046, 8177138774627835860, 1320765456351258123, 2895394039137794452),
+UInt256(5733746539975178779, 499025715715009508, 10048850447074312134, 17950522338956979196),
+]
+
+private let bid_multipliers1_binary80_98: [UInt256] = [
+UInt256(7167183174968973473, 14458840199925925597, 12561063058842890168, 13214780886841448187),
+UInt256(8958978968711216842, 4238492194625243285, 1866270768271448998, 16518476108551810234),
+UInt256(5599361855444510526, 7260743640068164957, 3472262239383349576, 5712361549417493492),
+UInt256(6999202319305638157, 18299301586939982004, 8952013817656574874, 7140451936771866865),
+UInt256(8749002899132047697, 9039068928392813793, 11190017272070718592, 18148936957819609390),
+UInt256(5468126811957529810, 17178633126313978381, 76231767403117264, 11343085598637255869),
+UInt256(6835158514946912263, 12249919371037697168, 4706975727681284484, 14178856998296569836),
+UInt256(8543948143683640329, 10700713195369733556, 5883719659601605605, 17723571247870712295),
+UInt256(5339967589802275205, 18217160793174553232, 12900696824105779311, 13383075039132889136),
+UInt256(6674959487252844007, 8936392936186027828, 16125871030132224139, 12117157780488723516),
+UInt256(8343699359066055009, 6558805151805146882, 1710594713955728558, 10534761207183516491),
+UInt256(5214812099416284380, 15628468265946686561, 5680807714649718253, 1972539736062309903),
+UInt256(6518515124270355476, 1088841258723806585, 11712695661739535720, 7077360688505275283),
+UInt256(8148143905337944345, 1361051573404758232, 805811521892255938, 8846700860631594104),
+UInt256(5092589940836215215, 12379872279446443655, 503632201182659961, 10140874056322134219),
+UInt256(6365737426045269019, 10863154330880666664, 14464598306760488663, 17287778588830055677),
+UInt256(7957171782556586274, 8967256895173445426, 18080747883450610829, 16998037217610181693),
+UInt256(4973232364097866421, 10216221577910791295, 15912153445584019672, 12929616270220057510),
+UInt256(6216540455122333026, 17381962990815877023, 15278505788552636686, 16162020337775071888),
+UInt256(7770675568902916283, 12504081701665070471, 14486446217263407954, 10979153385364064051),
+UInt256(4856672230564322677, 5509208054326975092, 15971557913430711827, 11473656884279927936),
+UInt256(6070840288205403346, 11498196086336106770, 1517703318078838168, 9730385086922522016),
+UInt256(7588550360256754183, 5149373071065357654, 11120501184453323518, 12162981358653152520),
+UInt256(4742843975160471364, 10135887197056930390, 2338627221855939295, 2990177330730832421),
+UInt256(5928554968950589205, 12669858996321162987, 12146656064174699926, 17572779718695704238),
+UInt256(7410693711188236507, 2002265690119290022, 10571634061790987004, 12742602611514854490),
+UInt256(4631683569492647816, 17392317120820413928, 1995585270191978973, 17187498669051559864),
+UInt256(5789604461865809771, 3293652327315965794, 2494481587739973717, 7649315281032286118),
+UInt256(7237005577332262213, 17952123464427120954, 12341474021529742954, 14173330119717745552),
+UInt256(9046256971665327767, 8605096275251737481, 6203470490057402885, 8493290612792406132),
+UInt256(5653910607290829854, 12295714199673417781, 15406384102354346563, 7614149642208947785),
+UInt256(7067388259113537318, 6146270712736996419, 5422922072660769492, 4906001034333796827),
+UInt256(8834235323891921647, 16906210427776021332, 2166966572398573961, 6132501292917246033),
+UInt256(5521397077432451029, 17483910545001095188, 10577726144603884533, 15362028354141748531),
+UInt256(6901746346790563787, 8019830125969205273, 13222157680754855667, 5367477387395021951),
+UInt256(8627182933488204734, 5413101639034118688, 2692639045661405872, 2097660715816389535),
+UInt256(5391989333430127958, 17218246579678487892, 1682899403538378670, 1311037947385243460),
+UInt256(6739986666787659948, 12299436187743334057, 2103624254422973337, 10862169471086330132),
+UInt256(8424983333484574935, 15374295234679167571, 7241216336456104575, 18189397857285300569),
+UInt256(5265614583427859334, 16526463549315561588, 2219917201071371407, 18285902688444394712),
+UInt256(6582018229284824168, 11434707399789676177, 2774896501339214259, 18245692342128105486),
+UInt256(8227522786606030210, 14293384249737095221, 8080306645101405728, 18195429409232743953),
+UInt256(5142201741628768881, 13545051174513072417, 7356034662402072532, 11372143380770464971),
+UInt256(6427752177035961102, 3096255912859176809, 13806729346429978569, 14215179225963081214),
+UInt256(8034690221294951377, 13093691927928746820, 3423353627755309500, 3933915977171687805),
+UInt256(5021681388309344611, 1266028427314384906, 11362968054201844245, 11682069522587080686),
+UInt256(6277101735386680763, 15417593589425144845, 4980338030897529499, 767528847951687146),
+UInt256(7846377169233350954, 14660305968354043152, 10837108557049299777, 14794469115221772644),
+UInt256(4903985730770844346, 13774377248648664874, 6773192848155812361, 2329014169372526047),
+UInt256(6129982163463555433, 7994599523956055284, 17689863097049541259, 7522953730143045462),
+]
+
+private let bid_multipliers1_binary80_99: [UInt256] = [
+UInt256(7662477704329444291, 14604935423372457010, 3665584797602374958, 4792006144251418924),
+UInt256(4789048565205902682, 6822241630394091679, 6902676516928872252, 16830061895439300539),
+UInt256(5986310706507378352, 17751174074847390407, 4016659627733702412, 2590833295589574058),
+UInt256(7482888383134222941, 3742223519849686393, 409138516239740111, 3238541619486967573),
+UInt256(4676805239458889338, 4644732709119747947, 11784926618718307329, 8941617539820436589),
+UInt256(5846006549323611672, 15029287923254460742, 10119472254970496257, 15788707943202933640),
+UInt256(7307508186654514591, 339865830358524312, 3425968281858344514, 5900826873721503338),
+UInt256(9134385233318143238, 14259890343230319102, 4282460352322930642, 16599405629006654981),
+UInt256(5708990770823839524, 4300745446091561534, 16511595775483995363, 14986314536556547267),
+UInt256(7136238463529799405, 5375931807614451918, 11416122682500218396, 14121207152268296180),
+UInt256(8920298079412249256, 11331600777945452802, 5046781316270497187, 17651508940335370225),
+UInt256(5575186299632655785, 7082250486215908001, 7765924341096448646, 8726350078495912439),
+UInt256(6968982874540819731, 13464499126197272905, 14319091444797948712, 1684565561265114740),
+UInt256(8711228593176024664, 12218937889319203228, 4063806250715272178, 2105706951581393425),
+UInt256(5444517870735015415, 7636836180824502017, 11763250943551820919, 5927752863165758795),
+UInt256(6805647338418769269, 4934359207603239618, 869005624157612437, 2798005060529810589),
+UInt256(8507059173023461586, 10779635027931437426, 10309629067051791354, 8109192344089651141),
+UInt256(5316911983139663491, 11348957910884536295, 11055204185334757500, 9679931233483419867),
+UInt256(6646139978924579364, 9574511370178282465, 9207319213241058971, 12099914041854274834),
+UInt256(8307674973655724205, 11968139212722853081, 16120835034978711618, 10513206533890455638),
+UInt256(5192296858534827628, 9785930017165477128, 3157992869220612905, 11182440102108922678),
+UInt256(6490371073168534535, 12232412521456846410, 3947491086525766132, 142992072353989635),
+UInt256(8112963841460668169, 10678829633393670108, 14157735895011983473, 178740090442487044),
+UInt256(5070602400912917605, 18203483566939513577, 18071956971237265478, 11640927602595024163),
+UInt256(6338253001141147007, 8919296403392228260, 8754888158764418136, 5327787466389004395),
+UInt256(7922816251426433759, 6537434485812897421, 10943610198455522670, 6659734332986255494),
+UInt256(4951760157141521099, 11003425581274142744, 9145599383248395620, 17997392013398573396),
+UInt256(6189700196426901374, 9142595958165290526, 11431999229060494526, 4049995943038665129),
+UInt256(7737125245533626718, 2204872910851837350, 5066626999470842349, 14285866965653107219),
+UInt256(4835703278458516698, 15213103624564562055, 17001699929951440180, 11234509862746885964),
+UInt256(6044629098073145873, 9793007493850926761, 16640438894011912321, 14043137328433607455),
+UInt256(7555786372591432341, 16852945385741046356, 6965490562232726690, 3718863605259845606),
+UInt256(4722366482869645213, 12838933875301847924, 13576803638250229989, 6935975771714791408),
+UInt256(5902958103587056517, 2213609288845146193, 16971004547812787486, 13281655733070877164),
+UInt256(7378697629483820646, 7378697629483820646, 7378697629483820646, 7378697629483820647),
+UInt256(9223372036854775808, 0, 0, 0),
+UInt256(5764607523034234880, 0, 0, 0),
+UInt256(7205759403792793600, 0, 0, 0),
+UInt256(9007199254740992000, 0, 0, 0),
+UInt256(5629499534213120000, 0, 0, 0),
+UInt256(7036874417766400000, 0, 0, 0),
+UInt256(8796093022208000000, 0, 0, 0),
+UInt256(5497558138880000000, 0, 0, 0),
+UInt256(6871947673600000000, 0, 0, 0),
+UInt256(8589934592000000000, 0, 0, 0),
+UInt256(5368709120000000000, 0, 0, 0),
+UInt256(6710886400000000000, 0, 0, 0),
+UInt256(8388608000000000000, 0, 0, 0),
+UInt256(5242880000000000000, 0, 0, 0),
+UInt256(6553600000000000000, 0, 0, 0),
+]
+
+private let bid_multipliers1_binary80_100: [UInt256] = [
+UInt256(8192000000000000000, 0, 0, 0),
+UInt256(5120000000000000000, 0, 0, 0),
+UInt256(6400000000000000000, 0, 0, 0),
+UInt256(8000000000000000000, 0, 0, 0),
+UInt256(5000000000000000000, 0, 0, 0),
+UInt256(6250000000000000000, 0, 0, 0),
+UInt256(7812500000000000000, 0, 0, 0),
+UInt256(4882812500000000000, 0, 0, 0),
+UInt256(6103515625000000000, 0, 0, 0),
+UInt256(7629394531250000000, 0, 0, 0),
+UInt256(4768371582031250000, 0, 0, 0),
+UInt256(5960464477539062500, 0, 0, 0),
+UInt256(7450580596923828125, 0, 0, 0),
+UInt256(4656612873077392578, 2305843009213693952, 0, 0),
+UInt256(5820766091346740722, 12105675798371893248, 0, 0),
+UInt256(7275957614183425903, 5908722711110090752, 0, 0),
+UInt256(9094947017729282379, 2774217370460225536, 0, 0),
+UInt256(5684341886080801486, 17874786921033498624, 0, 0),
+UInt256(7105427357601001858, 13120111614437097472, 0, 0),
+UInt256(8881784197001252323, 7176767481191596032, 0, 0),
+UInt256(5551115123125782702, 2179636666531053568, 0, 0),
+UInt256(6938893903907228377, 11947917870018592768, 0, 0),
+UInt256(8673617379884035472, 1099839282241077248, 0, 0),
+UInt256(5421010862427522170, 687399551400673280, 0, 0),
+UInt256(6776263578034402712, 10082621476105617408, 0, 0),
+UInt256(8470329472543003390, 12603276845132021760, 0, 0),
+UInt256(5293955920339377119, 3265362009780125696, 0, 0),
+UInt256(6617444900424221398, 17916760567507320832, 0, 0),
+UInt256(8271806125530276748, 13172578672529375232, 0, 0),
+UInt256(5169878828456422967, 17456233707185635328, 0, 0),
+UInt256(6462348535570528709, 17208606115554656256, 0, 0),
+UInt256(8077935669463160887, 7675699589161156608, 0, 0),
+UInt256(5048709793414475554, 11714841270866804736, 0, 0),
+UInt256(6310887241768094443, 5420179551728730112, 0, 0),
+UInt256(7888609052210118054, 2163538421233524736, 0, 0),
+UInt256(4930380657631323783, 15187269568553116672, 0, 0),
+UInt256(6162975822039154729, 14372400942264007936, 0, 0),
+UInt256(7703719777548943412, 4130443122547846208, 0, 0),
+UInt256(4814824860968089632, 11804898988447179688, 0, 0),
+UInt256(6018531076210112040, 14756123735558974610, 0, 0),
+UInt256(7523163845262640050, 18445154669448718262, 9223372036854775808, 0),
+UInt256(4701977403289150031, 16139907686832836818, 1152921504606846976, 0),
+UInt256(5877471754111437539, 15563198590113658118, 10664523917613334528, 0),
+UInt256(7346839692639296924, 14842312219214684744, 4107282860161892352, 0),
+UInt256(9183549615799121156, 106146200308804314, 5134103575202365440, 0),
+UInt256(5739718509874450722, 9289713412047778504, 7820500752928866304, 0),
+UInt256(7174648137343063403, 2388769728204947322, 9775625941161082880, 0),
+UInt256(8968310171678829253, 16821020215538347865, 2996160389596577792, 0),
+UInt256(5605193857299268283, 12818980643925161367, 13401815289566330880, 0),
+UInt256(7006492321624085354, 11412039786479063805, 12140583093530525696, 0),
+]
+
+private let bid_multipliers1_binary80_101: [UInt256] = [
+UInt256(8758115402030106693, 5041677696244053949, 1340670811630993408, 0),
+UInt256(5473822126268816683, 5456891569366227670, 3143762266483064832, 0),
+UInt256(6842277657836020854, 2209428443280396683, 13153074869958606848, 0),
+UInt256(8552847072295026067, 11985157590955271662, 11829657569020870656, 0),
+UInt256(5345529420184391292, 5184880485133350837, 2781849962210656256, 0),
+UInt256(6681911775230489115, 6481100606416688546, 8088998471190708224, 0),
+UInt256(8352389719038111394, 3489689739593472779, 887876052133609472, 0),
+UInt256(5220243574398819621, 6792742105673308390, 16695823597079363584, 0),
+UInt256(6525304467998524526, 13102613650519023392, 11646407459494428672, 0),
+UInt256(8156630584998155658, 7154895026294003432, 14558009324368035840, 0),
+UInt256(5097894115623847286, 9083495409861140049, 9098755827730022400, 0),
+UInt256(6372367644529809108, 2130997225471649253, 15985130803089915904, 0),
+UInt256(7965459555662261385, 2663746531839561567, 6146355448580231168, 0),
+UInt256(4978412222288913365, 13194056628468195739, 10759001183003726336, 0),
+UInt256(6223015277861141707, 2657512730303080962, 8837065460327270016, 0),
+UInt256(7778769097326427133, 17156948968161014915, 1822959788554311712, 0),
+UInt256(4861730685829016958, 13028936114314328273, 17280250932342302484, 0),
+UInt256(6077163357286271198, 7062798106038134534, 7765255610145714393, 0),
+UInt256(7596454196607838997, 18051869669402443976, 483197475827367183, 4611686018427387904),
+UInt256(4747783872879899373, 13588261552590221437, 301998422392104489, 9799832789158199296),
+UInt256(5934729841099874217, 3150268885455613084, 4989184046417518515, 16861477004875137024),
+UInt256(7418412301374842771, 8549522125246904259, 6236480058021898144, 16465160237666533376),
+UInt256(4636507688359276732, 3037608319065621210, 1591957027049992388, 10290725148541583360),
+UInt256(5795634610449095915, 3797010398832026512, 11213318320667266293, 12863406435676979200),
+UInt256(7244543263061369894, 134576980112645236, 14016647900834082867, 2244199989314060288),
+UInt256(9055679078826712367, 9391593261995582353, 17520809876042603583, 16640308041924739072),
+UInt256(5659799424266695229, 12787274816388320827, 4032977144885545383, 17317721553844043776),
+UInt256(7074749280333369037, 2149035465203237322, 429535412679543825, 17035465923877666816),
+UInt256(8843436600416711296, 7297980349931434556, 9760291302704205590, 7459274349564919808),
+UInt256(5527147875260444560, 4561237718707146597, 15323554101044904302, 50360450050686976),
+UInt256(6908934844075555700, 5701547148383933247, 5319384571023966665, 9286322599418134528),
+UInt256(8636168555094444625, 7126933935479916559, 2037544695352570427, 16219589267700056064),
+UInt256(5397605346934027890, 15983548755743417609, 8190994462236438373, 7831400283098841088),
+UInt256(6747006683667534863, 10756063907824496203, 14850429096222935870, 14400936372300939264),
+UInt256(8433758354584418579, 8833393866353232350, 13951350351851281934, 8777798428521398272),
+UInt256(5271098971615261612, 3215028157257076267, 4107907951479663305, 874437999398486016),
+UInt256(6588873714519077015, 4018785196571345334, 523198920922191227, 5704733517675495424),
+UInt256(8236092143148846269, 411795477286793763, 9877370688007514842, 2519230878666981376),
+UInt256(5147557589468028918, 2563215182517940054, 3867513670791002824, 6186205317594251264),
+UInt256(6434446986835036147, 12427391015002200875, 14057764125343529338, 7732756646992814080),
+UInt256(8043058733543795184, 10922552750325363190, 12960519138252023769, 442573771886241792),
+UInt256(5026911708464871990, 6826595468953351994, 3488638442980126951, 11805823653497370880),
+UInt256(6283639635581089987, 17756616373046465800, 13584170090579934497, 10145593548444325696),
+UInt256(7854549544476362484, 17584084447880694346, 16980212613224918121, 17293677953982795024),
+UInt256(4909093465297726553, 1766680743070658158, 15224318901692961730, 3891019693598165034),
+UInt256(6136366831622158191, 6820036947265710602, 9807026590261426354, 14087146653852482101),
+UInt256(7670458539527697739, 3913360165654750349, 3035411200972007135, 8385561280460826818),
+UInt256(4794036587204811087, 140007094320525016, 4202975009821198411, 12158504827929098618),
+UInt256(5992545734006013858, 14010066923182819982, 5253718762276498014, 10586445016483985368),
+UInt256(7490682167507517323, 8289211617123749169, 15790520489700398326, 4009684233750205902),
+]
+
+private let bid_multipliers1_binary80_102: [UInt256] = [
+UInt256(4681676354692198327, 2874914251488649279, 2951546278421667097, 16341110701376042401),
+UInt256(5852095443365247908, 17428700869642975310, 17524490903309247584, 6591330321437889289),
+UInt256(7315119304206559886, 3339132013344167522, 12682241592281783672, 8239162901797361611),
+UInt256(9143899130258199857, 13397287053534985211, 6629429953497453782, 10298953627246702013),
+UInt256(5714936956411374911, 1455775380818283901, 1837550711722214662, 1825159998601800855),
+UInt256(7143671195514218638, 15654777281305018588, 6908624408080156231, 11504822035107026876),
+UInt256(8929588994392773298, 10345099564776497427, 8635780510100195289, 9769341525456395691),
+UInt256(5580993121495483311, 11077373246412698796, 3091519809598928103, 17635053499478717067),
+UInt256(6976241401869354139, 9235030539588485591, 3864399761998660129, 17432130855921008430),
+UInt256(8720301752336692674, 6932102156058219085, 218813684070937258, 7955105514619096825),
+UInt256(5450188595210432921, 8944249865963774832, 2442601561758029738, 9583626965064323420),
+UInt256(6812735744013041151, 15791998350882106444, 3053251952197537173, 2756161669475628467),
+UInt256(8515919680016301439, 15128311920175245151, 3816564940246921466, 8056888105271923487),
+UInt256(5322449800010188399, 16372723977750610075, 9302882115295407772, 9647241084222340084),
+UInt256(6653062250012735499, 15854218953760874690, 7016916625691871811, 12059051355277925104),
+UInt256(8316327812515919374, 15206087673773705458, 17994517818969615572, 10462128175670018476),
+UInt256(5197704882822449609, 4892118777681178007, 15858259655283397636, 15762202146648537356),
+UInt256(6497131103528062011, 10726834490528860413, 15211138550676859142, 1256008609601120079),
+UInt256(8121413879410077514, 8796857094733687613, 5178865133063910215, 10793382798856175906),
+UInt256(5075883674631298446, 10109721702635942662, 5542633717378637836, 13663393276926191798),
+UInt256(6344854593289123058, 3413780091440152519, 16151664183578073103, 17079241596157739747),
+UInt256(7931068241611403822, 13490597151154966457, 15577894211045203475, 16737365976769786780),
+UInt256(4956917651007127389, 3819937201044466132, 2818654854262170316, 8155010726267422785),
+UInt256(6196147063758909236, 9386607519732970569, 3523318567827712895, 10193763407834278482),
+UInt256(7745183829698636545, 11733259399666213211, 9015834228212029023, 8130518241365460198),
+UInt256(4840739893561647841, 415758097150301401, 3329053383418824187, 11999102928494494480),
+UInt256(6050924866952059801, 5131383639865264655, 8773002747700918138, 10387192642190730196),
+UInt256(7563656083690074751, 11025915568258968723, 6354567416198759769, 3760618765883636937),
+UInt256(4727285052306296719, 13808726257802937308, 1665761625910530903, 13879601774745742846),
+UInt256(5909106315382870899, 12649221803826283731, 2082202032388163629, 12737816200004790653),
+UInt256(7386382894228588624, 11199841236355466759, 16437810595767368249, 2087212194723824604),
+UInt256(4616489308892867890, 6999900772722166724, 17191160649995687011, 12833722667770860138),
+UInt256(5770611636116084862, 17973248002757484214, 3042206738785057148, 11430467316286187268),
+UInt256(7213264545145106078, 13243187966592079459, 13026130460336097243, 14288084145357734085),
+UInt256(9016580681431382598, 7330612921385323516, 11670977056992733650, 13248419163269779702),
+UInt256(5635362925894614123, 18416691131147990909, 16517732697475234339, 12891947995471000218),
+UInt256(7044203657368267654, 18409177895507600733, 6812107816561879212, 11503248975911362368),
+UInt256(8805254571710334568, 13788100332529725108, 13126820789129736919, 14379061219889202960),
+UInt256(5503284107318959105, 8617562707831078192, 17427635030060861382, 15904442290071833706),
+UInt256(6879105134148698881, 15383639403216235645, 3337799713866525112, 10657180825735016325),
+UInt256(8598881417685873602, 5394491198738130844, 8783935660760544294, 13321476032168770406),
+UInt256(5374300886053671001, 7983243017638719681, 14713331824830115992, 3714236501678093600),
+UInt256(6717876107567088751, 14590739790475787506, 4556606725755481278, 4642795627097617000),
+UInt256(8397345134458860939, 13626738719667346478, 14919130444049127405, 15026866570726797057),
+UInt256(5248340709036788087, 6210868690578397597, 4712770509103316724, 11697634615917942113),
+UInt256(6560425886295985109, 3151899844795609092, 10502649154806533809, 14622043269897427641),
+UInt256(8200532357869981386, 8551560824421899269, 13128311443508167262, 4442496032089620839),
+UInt256(5125332723668738366, 9956411533691074947, 10511037661406298490, 16611618075338176737),
+UInt256(6406665904585922958, 3222142380259067876, 8527111058330485209, 11541150557317945113),
+UInt256(8008332380732403697, 13251050012178610653, 10658888822913106512, 591380141365267679),
+]
+
+private let bid_multipliers1_binary80_103: [UInt256] = [
+UInt256(5005207737957752311, 1364377229970549802, 8967648523534385522, 369612588353292299),
+UInt256(6256509672447190388, 15540529592745350965, 1986188617563206094, 9685387772296391182),
+UInt256(7820637090558987986, 978917917222137090, 7094421790381395522, 2883362678515713170),
+UInt256(4887898181599367491, 5223509716691223585, 9045699637415760105, 6413787692499708635),
+UInt256(6109872726999209364, 1917701127436641577, 15918810565197088035, 12628920634052023698),
+UInt256(7637340908749011705, 2397126409295801972, 6063455151214196332, 11174464774137641718),
+UInt256(4773338067968132315, 13027419051878345992, 13013031506363648515, 16207412520690801882),
+UInt256(5966672584960165394, 11672587796420544586, 16266289382954560644, 15647579632436114448),
+UInt256(7458340731200206743, 5367362708670904925, 11109489691838424998, 1112730466835591444),
+UInt256(4661462957000129214, 10272130720560397434, 9249274066612709575, 14530514597054408365),
+UInt256(5826828696250161518, 3616791363845720985, 2338220546411111161, 13551457227890622552),
+UInt256(7283535870312701897, 13744361241661927039, 7534461701441276856, 3104263479581114478),
+UInt256(9104419837890877372, 3345393496795245087, 4806391108374208166, 3880329349476393097),
+UInt256(5690262398681798357, 11314242972351803987, 9921523470374961959, 16260263898704909398),
+UInt256(7112827998352247947, 307745660157591272, 7790218319541314545, 15713643854953748843),
+UInt256(8891034997940309933, 14219740130479152802, 9737772899426643182, 5806996763410022342),
+UInt256(5556896873712693708, 11193180590763164453, 10697794080569039892, 17464431032413427676),
+UInt256(6946121092140867135, 13991475738453955566, 17983928619138687770, 3383794716807232979),
+UInt256(8682651365176083919, 12877658654640056554, 13256538737068583904, 13453115432863817032),
+UInt256(5426657103235052449, 14966065686791117202, 12897022729095252844, 8408197145539885645),
+UInt256(6783321379043815562, 4872524053206732791, 6897906374514290247, 10510246431924857056),
+UInt256(8479151723804769452, 15314027103363191797, 4010696949715474905, 8526122021478683416),
+UInt256(5299469827377980908, 347894902747219065, 4812528602785865767, 16858041309492646895),
+UInt256(6624337284222476135, 434868628434023831, 10627346771909720113, 16460865618438420715),
+UInt256(8280421605278095168, 14378643840824693501, 8672497446459762238, 6741023967765862181),
+UInt256(5175263503298809480, 8986652400515433438, 7726153913251045350, 18048198035135827576),
+UInt256(6469079379123511850, 11233315500644291798, 434320354709030880, 13336875507065008661),
+UInt256(8086349223904389813, 4818272338950588939, 9766272480241064408, 16671094383831260826),
+UInt256(5053968264940243633, 5317263221057812039, 3798077290936971303, 10419433989894538017),
+UInt256(6317460331175304541, 11258265044749652953, 135910595243826225, 8412606468940784617),
+UInt256(7896825413969130677, 237773250654902479, 4781574262482170685, 15127444104603368675),
+UInt256(4935515883730706673, 2454451290873008001, 9906012941692438534, 11760495574590799374),
+UInt256(6169394854663383341, 7679750132018647905, 16994202195542936072, 5477247431383723409),
+UInt256(7711743568329229176, 14211373683450697786, 7407694689146506378, 6846559289229654262),
+UInt256(4819839730205768235, 8882108552156686116, 9241495199143954390, 8890785574195921818),
+UInt256(6024799662757210294, 6490949671768469741, 11551868998929942988, 1890109930890126464),
+UInt256(7530999578446512867, 17337059126565362985, 604778193380265023, 2362637413612658080),
+UInt256(4706874736529070542, 8529818944889657913, 11907201416931135399, 8394177411148993156),
+UInt256(5883593420661338178, 1438901644257296584, 1048943715881755537, 5881035745508853541),
+UInt256(7354491775826672722, 11021999092176396538, 1311179644852194421, 11962980700313454830),
+UInt256(9193114719783340903, 4554126828365719864, 10862346592920018835, 1118667820109654825),
+UInt256(5745696699864588064, 9763858295369656771, 6788966620575011771, 16840068452064391930),
+UInt256(7182120874830735080, 12204822869212070964, 3874522257291376810, 16438399546653102009),
+UInt256(8977651093538418850, 15256028586515088705, 4843152821614221013, 11324627396461601703),
+UInt256(5611031933461511781, 14146703884999318344, 14556185559577357893, 9383735132002195016),
+UInt256(7013789916826889727, 3848321800966984218, 18195231949471697366, 16341354933430131674),
+UInt256(8767237396033612159, 198716232781342369, 13520667899984845900, 11203321629932888785),
+UInt256(5479523372521007599, 7041726673129420837, 1532888409849446831, 16225448055562831299),
+UInt256(6849404215651259499, 4190472322984388142, 6527796530739196443, 15670124051026151219),
+UInt256(8561755269564074374, 626404385303097273, 17383117700278771362, 14975969045355301120),
+]
+
+private let bid_multipliers1_binary80_104: [UInt256] = [
+UInt256(5351097043477546483, 14226560796096599508, 3946919535033150245, 13971666671774451104),
+UInt256(6688871304346933104, 13171514976693361481, 4933649418791437807, 3629525284435900168),
+UInt256(8361089130433666380, 16464393720866701851, 10778747791916685162, 18371964660827038922),
+UInt256(5225680706521041488, 1066874038686912849, 4430874360734234274, 16094163931444287230),
+UInt256(6532100883151301860, 1333592548358641061, 10150278969345180747, 10894332877450583230),
+UInt256(8165126103939127325, 1666990685448301326, 17299534730108863838, 9006230078385841133),
+UInt256(5103203814961954578, 3347712187618882281, 6200523187890651995, 1017207780563762804),
+UInt256(6379004768702443222, 13408012271378378659, 12362340003290702897, 15106567780986867217),
+UInt256(7973755960878054028, 7536643302368197516, 10841238985685990718, 5048151670951420310),
+UInt256(4983597475548783767, 13933774100834899255, 15999146402908520006, 16990152849626801406),
+UInt256(6229496844435979709, 12805531607616236165, 15387246985208262104, 12014319025178725949),
+UInt256(7786871055544974637, 2171856454238131495, 5399000676228163918, 15017898781473407436),
+UInt256(4866794409715609148, 3663253293112526136, 10291904450283684305, 4774500719993491744),
+UInt256(6083493012144511435, 4579066616390657670, 12864880562854605381, 10579811918419252584),
+UInt256(7604366265180639294, 1112147252060934184, 6857728666713480918, 17836450916451453633),
+UInt256(4752728915737899558, 14530150087820247577, 4286080416695925574, 6536095804354770617),
+UInt256(5940911144672374448, 8939315572920533663, 9969286539297294871, 17393491792298239079),
+UInt256(7426138930840468060, 11174144466150667079, 7849922155694230685, 17130178721945410945),
+UInt256(4641336831775292537, 16207212328198942732, 11823730374949976034, 13012204710429575793),
+UInt256(5801671039719115672, 6423957354966514703, 14779662968687470043, 7041883851182193933),
+UInt256(7252088799648894590, 8029946693708143379, 13862892692431949650, 4190668795550354512),
+UInt256(9065110999561118238, 814061330280403416, 12716929847112549158, 14461708031292718948),
+UInt256(5665694374725698898, 14343846386707415847, 7948081154445343224, 4426881501130561438),
+UInt256(7082117968407123623, 8706435946529494001, 5323415424629291126, 5533601876413201798),
+UInt256(8852647460508904529, 6271358914734479597, 11265955299214001811, 16140374382371278055),
+UInt256(5532904662818065330, 15448814367777519508, 9347065071222445084, 7781890979768354833),
+UInt256(6916130828522581663, 10087645922867123577, 11683831339028056355, 9727363724710443541),
+UInt256(8645163535653227079, 7997871385156516568, 769731118502906732, 7547518637460666522),
+UInt256(5403227209783266924, 11916198643363904711, 481081949064316707, 13940571185267692384),
+UInt256(6754034012229083655, 14895248304204880888, 14436410491612559596, 12814027963157227576),
+UInt256(8442542515286354569, 14007374361828713206, 18045513114515699495, 16017534953946534470),
+UInt256(5276589072053971606, 1837079948501863898, 6666759678144924280, 16928488373857665900),
+UInt256(6595736340067464507, 11519721972482105680, 17556821634535931159, 2713866393612530759),
+UInt256(8244670425084330634, 9787966447175244197, 3499282969460362332, 17227391047297827161),
+UInt256(5152919015677706646, 10729165047911915527, 4492894865126420410, 1543747367706366168),
+UInt256(6441148769597133308, 4188084273035118601, 1004432562980637608, 11153056246487733517),
+UInt256(8051435961996416635, 5235105341293898251, 5867226722153184914, 13941320308109666897),
+UInt256(5032147476247760397, 966097829094992455, 1361173692132046619, 13325011210995929715),
+UInt256(6290184345309700496, 5819308304796128472, 15536525170447221986, 12044577995317524239),
+UInt256(7862730431637125620, 7274135380995160591, 973912389349475867, 5832350457292129491),
+UInt256(4914206519773203512, 13769706649976751177, 7526224270984504273, 1339376026593886980),
+UInt256(6142758149716504390, 17212133312470938971, 14019466357158018245, 6285906051669746629),
+UInt256(7678447687145630488, 12291794603733897906, 12912646928020134902, 12469068583014571190),
+UInt256(4799029804466019055, 7682371627333686191, 12682090348439972218, 3181481845956719090),
+UInt256(5998787255582523819, 4991278515739719835, 11240926917122577368, 13200224344300674670),
+UInt256(7498484069478154774, 1627412126247261890, 9439472627975833806, 16500280430375843337),
+UInt256(4686552543423846733, 14852190634186702393, 10511356410912284033, 5700989250557514182),
+UInt256(5858190679279808417, 4730180237451214279, 17750881532067742945, 11737922581624280632),
+UInt256(7322738349099760521, 10524411315241405753, 17576915896657290778, 837345171748187077),
+UInt256(9153422936374700651, 17767200162479145096, 8136086815539449760, 10270053501540009654),
+]
+
+private let bid_multipliers1_binary80_105: [UInt256] = [
+UInt256(5720889335234187907, 8798657092335771733, 5085054259712156100, 6418783438462506034),
+UInt256(7151111669042734884, 6386635346992326762, 10968003843067583029, 8023479298078132543),
+UInt256(8938889586303418605, 7983294183740408453, 4486632766979702978, 14641035141025053582),
+UInt256(5586805991439636628, 7295401874051449235, 5109988488576008313, 13762332981568046393),
+UInt256(6983507489299545785, 9119252342564311544, 1775799592292622488, 3367858171677894279),
+UInt256(8729384361624432231, 16010751446632777334, 2219749490365778110, 4209822714597367849),
+UInt256(5455865226015270144, 16924248681786567689, 15222401486760775030, 16466197251905518618),
+UInt256(6819831532519087681, 2708566778523657996, 5192943803168805076, 11359374528027122464),
+UInt256(8524789415648859601, 7997394491581960399, 6491179753961006345, 14199218160033903080),
+UInt256(5327993384780537250, 16527586603307195009, 10974516373866710822, 1956982322380107569),
+UInt256(6659991730975671563, 11436111217279217953, 18329831485760776431, 11669599939829910269),
+UInt256(8324989663719589454, 9683453003171634538, 9077231301918806827, 9975313906359999932),
+UInt256(5203118539824743409, 1440472108554883682, 10284955582126642171, 3928728182261306006),
+UInt256(6503898174780929261, 6412276154120992507, 3632822440803526906, 299224209399244603),
+UInt256(8129872718476161576, 12627031211078628537, 18376086106286572344, 9597402298603831562),
+UInt256(5081170449047600985, 7891894506924142836, 4567524788788025859, 5998376436627394726),
+UInt256(6351463061309501231, 14476554152082566449, 5709405985985032324, 2886284527356855504),
+UInt256(7939328826636876539, 13484006671675820157, 11748443500908678309, 3607855659196069380),
+UInt256(4962080516648047837, 6121661160583693646, 9648620197281617895, 4560752796211237315),
+UInt256(6202600645810059796, 12263762469157004962, 2837403209747246561, 1089254976836658739),
+UInt256(7753250807262574745, 15329703086446256202, 12770126049038834009, 5973254739473211328),
+UInt256(4845781754539109216, 2663535401387828270, 12593014799076659159, 15262499258239226840),
+UInt256(6057227193173886520, 3329419251734785338, 6517896461991048141, 14466438054371645646),
+UInt256(7571533991467358150, 4161774064668481672, 17370742614343585985, 4247989512682393345),
+UInt256(4732208744667098843, 16436166845699964757, 10856714133964741240, 14184208491494965601),
+UInt256(5915260930833873554, 15933522538697568042, 18182578685883314454, 17730260614368707001),
+UInt256(7394076163542341943, 10693531136517184245, 13504851320499367260, 12939453731106107943),
+UInt256(4621297602213963714, 13600985987964322009, 10746375084525798489, 17310530618796093273),
+UInt256(5776622002767454643, 7777860448100626703, 18044654874084636016, 7803105218212952879),
+UInt256(7220777503459318304, 5110639541698395475, 17944132574178407116, 9753881522766191098),
+UInt256(9025971879324147880, 6388299427122994344, 17818479699295620991, 12192351903457738873),
+UInt256(5641232424577592425, 3992687141951871465, 11136549812059763119, 14537748967302168652),
+UInt256(7051540530721990531, 9602544945867227236, 85629209792540187, 13560500190700322911),
+UInt256(8814425663402488164, 7391495163906646141, 107036512240675234, 12338939219948015734),
+UInt256(5509016039626555102, 13843056514296429646, 2372740829364115973, 12323523030894897738),
+UInt256(6886270049533193878, 8080448606015761249, 12189298073559920775, 1569345733336458460),
+UInt256(8607837561916492348, 877188720664925754, 1401564536667737256, 15796740221952736787),
+UInt256(5379898476197807717, 9771614987270354404, 5487663853844723689, 9872962638720460492),
+UInt256(6724873095247259646, 16826204752515330909, 6859579817305904611, 16952889316827963519),
+UInt256(8406091369059074558, 11809383903789387828, 13186160790059768668, 16579425627607566495),
+UInt256(5253807105661921599, 2769178921440979488, 17464722530642131226, 1138768980399953251),
+UInt256(6567258882077401998, 17296531707083388073, 3384159089593112416, 10646833262354717372),
+UInt256(8209073602596752498, 12397292596999459283, 8841884880418778424, 13308541577943396715),
+UInt256(5130671001622970311, 12359993891552049956, 3220335041048042563, 8317838486214622947),
+UInt256(6413338752028712889, 10838306346012674541, 4025418801310053204, 5785612089340890780),
+UInt256(8016673440035891111, 18159568950943231080, 9643459520064954409, 7232015111676113475),
+UInt256(5010420900022431944, 18267259621980601281, 6027162200040596505, 16049224490866040682),
+UInt256(6263026125028039931, 4387330453766199985, 12145638768478133536, 6226472558300387140),
+UInt256(7828782656285049914, 872477048780362078, 1346990405315503208, 7783090697875483925),
+UInt256(4892989160178156196, 5156984173915114202, 14676927058604353217, 4864431686172177453),
+]
+
+private let bid_multipliers1_binary80_106: [UInt256] = [
+UInt256(6116236450222695245, 6446230217393892753, 9122786786400665713, 10692225626142609721),
+UInt256(7645295562778369056, 12669473790169753845, 16015169501428220045, 17976968051105650055),
+UInt256(4778309726736480660, 7918421118856096153, 12315323947606331480, 13541448041154725236),
+UInt256(5972887158420600825, 9898026398570120192, 1559096879225750638, 16926810051443406545),
+UInt256(7466108948025751031, 16984219016640038144, 1948871099032188298, 11935140527449482373),
+UInt256(4666318092516094394, 17532665913041105696, 1218044436895117686, 12071148848083314388),
+UInt256(5832897615645117993, 12692460354446606312, 1522555546118897108, 5865564023249367176),
+UInt256(7291122019556397492, 2030517387776094178, 1903194432648621385, 7331955029061708970),
+UInt256(9113902524445496865, 2538146734720117722, 11602365077665552539, 13776629804754524117),
+UInt256(5696189077778435540, 13115556755268543336, 11863164191968358241, 6304550618757883621),
+UInt256(7120236347223044425, 16394445944085679170, 14828955239960447801, 12492374291874742430),
+UInt256(8900295434028805532, 6657999374824935251, 9312822013095783944, 1780409809561264326),
+UInt256(5562684646268003457, 13384621646120360340, 3514670748971171013, 1112756130975790204),
+UInt256(6953355807835004322, 2895719002368286713, 4393338436213963766, 6002631182147125659),
+UInt256(8691694759793755402, 12843020789815134199, 10103359063694842611, 16726661014538682881),
+UInt256(5432309224871097126, 12638574012061846778, 13232128442450358488, 8148320124872982849),
+UInt256(6790386531088871408, 6574845478222532665, 7316788516208172302, 10185400156091228561),
+UInt256(8487983163861089260, 8218556847778165831, 13757671663687603282, 3508378158259259893),
+UInt256(5304989477413180787, 14359970066716129452, 15516073817445833907, 6804422367339425337),
+UInt256(6631236846766475984, 13338276564967773912, 948348198097740768, 3893841940746893768),
+UInt256(8289046058458094980, 16672845706209717390, 1185435247622175960, 4867302425933617209),
+UInt256(5180653786536309363, 1197156529526297560, 14575955085046023687, 3042064016208510756),
+UInt256(6475817233170386703, 15331503717190035662, 18219943856307529608, 17637638075542802157),
+UInt256(8094771541462983379, 14552693628060156674, 13551557783529636203, 3600303520718951080),
+UInt256(5059232213414364612, 6789590508323903969, 13081409633133410530, 18391090764945202089),
+UInt256(6324040266767955765, 8486988135404879962, 2516703986134599451, 13765491419326726803),
+UInt256(7905050333459944706, 15220421187683487856, 12369252019523025122, 12595178255731020600),
+UInt256(4940656458412465441, 14124449260729567814, 7730782512201890701, 12483672428259275779),
+UInt256(6175820573015581802, 3820503520629796056, 440106103397587569, 1769532480041931012),
+UInt256(7719775716269477252, 13999001437642020878, 550132629246984461, 6823601618479801669),
+UInt256(4824859822668423282, 17972747935381038856, 14178890948561529000, 6570594020763569995),
+UInt256(6031074778335529103, 13242562882371522762, 17723613685701911250, 8213242525954462494),
+UInt256(7538843472919411379, 11941517584537015549, 12931145070272613255, 1043181120588302309),
+UInt256(4711777170574632112, 5157605481121940766, 10387808678134077236, 7569517228008770799),
+UInt256(5889721463218290140, 6447006851402425958, 3761388810812820737, 9461896535010963499),
+UInt256(7362151829022862675, 8058758564253032447, 13925108050370801729, 16439056687191092278),
+UInt256(9202689786278578344, 5461762186888902655, 12794699044536114258, 6713762803706701635),
+UInt256(5751681116424111465, 3413601366805564159, 14914215930476153267, 8807787770744076426),
+UInt256(7189601395530139331, 8878687726934343103, 14031083894667803680, 6398048695002707629),
+UInt256(8987001744412674164, 6486673640240540975, 12927168849907366696, 7997560868753384536),
+UInt256(5616876090257921352, 13277543062005113917, 14997009558833186041, 4998475542970865335),
+UInt256(7021095112822401690, 16596928827506392397, 4911203893259318839, 10859780447140969573),
+UInt256(8776368891028002113, 11522788997528214688, 10750690885001536453, 8963039540498824062),
+UInt256(5485230556892501321, 284214095814052324, 6719181803125960283, 7907742722025458991),
+UInt256(6856538196115626651, 4966953638194953309, 8398977253907450354, 5272992384104435834),
+UInt256(8570672745144533314, 1597006029316303732, 15110407585811700846, 15814612516985320601),
+UInt256(5356670465715333321, 5609814786750077737, 220632704277537221, 5272446804688437472),
+UInt256(6695838082144166651, 11623954501864985075, 4887476898774309430, 11202244524287934743),
+UInt256(8369797602680208314, 9918257108903843440, 1497660105040498884, 4779433618505142621),
+UInt256(5231123501675130196, 10810596711492290054, 936037565650311802, 12210518048420489946),
+]
+
+private let bid_multipliers1_binary80_107: [UInt256] = [
+UInt256(6538904377093912745, 13513245889365362567, 10393418993917665561, 6039775523670836625),
+UInt256(8173630471367390932, 3056499306424539497, 8380087723969694047, 12161405423015933685),
+UInt256(5108519044604619332, 11133684103370112993, 16766769873549528539, 14518407417026040409),
+UInt256(6385648805755774165, 13917105129212641242, 7123404286654746962, 13536323252855162607),
+UInt256(7982061007194717707, 3561323356233637840, 18127627395173209511, 7697032029214177451),
+UInt256(4988788129496698566, 18366728162141881314, 11329767121983255944, 11728174045899942763),
+UInt256(6235985161870873208, 13735038165822575835, 4938836865624294122, 14660217557374928454),
+UInt256(7794981452338591510, 17168797707278219794, 1561860063602979749, 9101899909863884759),
+UInt256(4871863407711619694, 6118812548621499467, 5587848558179250247, 7994530452878621927),
+UInt256(6089829259639524617, 16871887722631650142, 2373124679296674905, 5381477047670889504),
+UInt256(7612286574549405772, 7254801598007398965, 12189777885975619439, 11338532328015999784),
+UInt256(4757679109093378607, 13757623035609400161, 9924454187948456101, 14004111732651081721),
+UInt256(5947098886366723259, 12585342776084362297, 17017253753362958031, 3670081610531688440),
+UInt256(7433873607958404074, 11119992451678064968, 7436509136421533826, 18422660068446774261),
+UInt256(4646171004974002546, 11561681300726178509, 4647818210263458641, 16125848561206621817),
+UInt256(5807713756217503183, 5228729589052947328, 10421458781256711206, 6322252646226113560),
+UInt256(7259642195271878979, 1924225967888796256, 13026823476570889007, 17126187844637417758),
+UInt256(9074552744089848723, 16240340515143159032, 16283529345713611259, 16796048787369384293),
+UInt256(5671595465056155452, 7844369812750780443, 10177205841071007037, 8191687482892171231),
+UInt256(7089494331320194315, 9805462265938475554, 8109821282911370892, 14851295372042601943),
+UInt256(8861867914150242894, 7645141813995706539, 913904566784437808, 117375141343700812),
+UInt256(5538667446343901809, 166527615319928682, 16712091418736131294, 73359463339813008),
+UInt256(6923334307929877261, 4819845537577298757, 11666742236565388309, 9315071366029542068),
+UInt256(8654167884912346576, 10636492940399011351, 748369740424571674, 16255525225964315489),
+UInt256(5408854928070216610, 6647808087749382094, 7385260115406439152, 14771389284655085085),
+UInt256(6761068660087770762, 17533132146541503426, 8203107403273133, 17492532109304740),
+UInt256(8451335825109713453, 12693043146322103474, 9233625921108867224, 4633551683564018828),
+UInt256(5282084890693570908, 10238994975665008623, 10382702219120429919, 2895969802227511768),
+UInt256(6602606113366963635, 12798743719581260779, 8366691755473149494, 17455020308066553422),
+UInt256(8253257641708704544, 11386743631049188070, 5846678675914048964, 12595403348228415969),
+UInt256(5158286026067940340, 7116714769405742543, 17489232227728444314, 17095499129497535789),
+UInt256(6447857532584925425, 8895893461757178179, 17249854266233167489, 12146001875017143928),
+UInt256(8059821915731156781, 15731552845623860628, 16950631814364071458, 1347444288489266198),
+UInt256(5037388697331972988, 12138063537728606845, 1370772847122768853, 5453838698733179278),
+UInt256(6296735871664966235, 15172579422160758556, 6325152077330848970, 11428984391843862001),
+UInt256(7870919839581207794, 14354038259273560291, 7906440096663561213, 5062858452950051693),
+UInt256(4919324899738254871, 13582959930473363086, 2635682051201031806, 5470129542307476261),
+UInt256(6149156124672818589, 12367013894664315953, 12517974600856065565, 16061033964739121134),
+UInt256(7686445155841023237, 1623709313048231230, 1812410195787918245, 6241234400641737705),
+UInt256(4804028222400639523, 3320661329868838470, 14967814427649612615, 6206614509614780018),
+UInt256(6005035278000799403, 17985884717618211800, 9486395997707239961, 3146582118591087118),
+UInt256(7506294097500999254, 17870669878595376846, 11857994997134049951, 8544913666666246801),
+UInt256(4691433810938124534, 6557482655694722625, 2799560854781393315, 12258100069307486107),
+UInt256(5864292263672655667, 17420225356473179089, 8111137086904129548, 10710939068206969730),
+UInt256(7330365329590819584, 17163595677164085957, 14750607377057549839, 13388673835258712162),
+UInt256(9162956661988524481, 3007750522745555831, 4603201166039773587, 12124156275646002298),
+UInt256(5726847913742827800, 13409059122784442154, 9794529756415940348, 5271754663065057485),
+UInt256(7158559892178534750, 16761323903480552693, 3019790158665149627, 6589693328831321856),
+UInt256(8948199865223168438, 11728282842495915058, 8386423716758824938, 3625430642611764415),
+UInt256(5592624915764480274, 2718490758132559007, 9853200841401653490, 6877580170059740664),
+]
+
+private let bid_multipliers1_binary80_108: [UInt256] = [
+UInt256(6990781144705600342, 12621485484520474567, 7704815033324678958, 17820347249429451638),
+UInt256(8738476430882000428, 6553484818795817401, 5019332773228460794, 13052062024932038739),
+UInt256(5461547769301250267, 13319300048602161683, 14666298029336257756, 12769224784009912116),
+UInt256(6826934711626562834, 12037439042325314200, 13721186518242934291, 15961530980012390145),
+UInt256(8533668389533203543, 5823426766051866942, 17151483147803667864, 15340227706588099777),
+UInt256(5333542743458252214, 10557170756423498695, 6107990948949904511, 9587642316617562361),
+UInt256(6666928429322815268, 3973091408674597561, 3023302667759992735, 7372866877344565047),
+UInt256(8333660536653519085, 4966364260843246951, 8390814353127378823, 4604397578253318405),
+UInt256(5208537835408449428, 5409820672240723296, 12161787998345693620, 9795277514049405859),
+UInt256(6510672294260561785, 6762275840300904120, 15202234997932117025, 12244096892561757324),
+UInt256(8138340367825702231, 13064530818803518055, 556049673705594666, 1470063060420032942),
+UInt256(5086462729891063894, 15082860789393280640, 7265060073707078522, 5530475431189908493),
+UInt256(6358078412363829868, 9630203949886824992, 9081325092133848152, 16136466325842161424),
+UInt256(7947598015454787335, 12037754937358531240, 11351656365167310191, 1723838833593150164),
+UInt256(4967248759659242084, 14441125863490163881, 7094785228229568869, 7994928298636800709),
+UInt256(6209060949574052605, 18051407329362704851, 13480167553714348990, 14605346391723388790),
+UInt256(7761326186967565757, 8729201106421217352, 12238523423715548334, 9033310952799460179),
+UInt256(4850828866854728598, 7761593700726954797, 7649077139822217709, 1034133327072274708),
+UInt256(6063536083568410748, 478620089053917688, 14173032443205160040, 5904352677267731289),
+UInt256(7579420104460513435, 598275111317397110, 17716290554006450050, 7380440846584664111),
+UInt256(4737137565287820896, 16514823009069230858, 6460995577826643377, 9224461547542802974),
+UInt256(5921421956609776121, 2196784687626986956, 17299616509138080029, 16142262952855891621),
+UInt256(7401777445762220151, 7357666877961121600, 3177776562713048421, 6342770635787700814),
+UInt256(4626110903601387594, 11516070826366782856, 1986110351695655263, 6270074656581006961),
+UInt256(5782638629501734493, 5171716496103702762, 2482637939619569079, 3225907302298870797),
+UInt256(7228298286877168116, 11076331638557016356, 12326669461379237156, 17867442183155752209),
+UInt256(9035372858596460145, 13845414548196270445, 15408336826724046446, 3887558655235138645),
+UInt256(5647108036622787591, 1735855064981587172, 11936053525916222980, 16264782214804125365),
+UInt256(7058885045778484488, 16004876886509147677, 14920066907395278726, 1884233694795605090),
+UInt256(8823606307223105611, 1559352034426882981, 4815025578961934695, 11578664155349282171),
+UInt256(5514753942014441006, 17115496086012659527, 5315233996064903136, 14154194124734383213),
+UInt256(6893442427518051258, 12170998070661048601, 2032356476653741016, 17692742655917979016),
+UInt256(8616803034397564073, 5990375551471534943, 7152131614244564175, 3669184246187922154),
+UInt256(5385501896498477545, 15273199765738179099, 11387611286543934465, 9210769181508533202),
+UInt256(6731877370623096932, 5256441651890560162, 9622828089752530177, 16125147495313054407),
+UInt256(8414846713278871165, 6570552064863200203, 2805163075335886914, 6321376313859154296),
+UInt256(5259279195799294478, 6412438049753194078, 17894127986580786985, 8562546214589359339),
+UInt256(6574098994749118097, 17238919599046268406, 13144287946371207923, 15314868786664087078),
+UInt256(8217623743436397622, 7713591443525671796, 7206987896109234096, 14531899964902720943),
+UInt256(5136014839647748514, 209308633776156968, 13727739471923047118, 9082437478064200590),
+UInt256(6420018549559685642, 9485007829074972018, 17159674339903808898, 2129674810725474929),
+UInt256(8025023186949607053, 2632887749488939215, 12226220888024985314, 11885465550261619469),
+UInt256(5015639491843504408, 3951397852644280961, 14558917082656697677, 12040101987340900073),
+UInt256(6269549364804380510, 4939247315805351202, 4363588298038708385, 1215069428893961379),
+UInt256(7836936706005475637, 15397431181611464810, 14677857409403161289, 6130522804544839627),
+UInt256(4898085441253422273, 11929237497720859458, 13785346899304363709, 15360791798908994527),
+UInt256(6122606801566777842, 1076488816868910611, 8008311587275678829, 5365931693354079447),
+UInt256(7653258501958472302, 10568983057940914072, 5398703465667210632, 11319100635119987212),
+UInt256(4783286563724045189, 1993928392785683391, 3374189666042006645, 7074437896949992008),
+UInt256(5979108204655056486, 7104096509409492142, 18052795137834672018, 13454733389614877914),
+]
+
+private let bid_multipliers1_binary80_109: [UInt256] = [
+UInt256(7473885255818820607, 18103492673616640986, 13342621885438564215, 7595044700163821584),
+UInt256(4671178284886762879, 18232211948651482472, 12950824696826490538, 11664431965243470346),
+UInt256(5838972856108453599, 18178578917386965186, 16188530871033113173, 5357167919699562125),
+UInt256(7298716070135566999, 18111537628306318579, 11012291551936615658, 11308145918051840560),
+UInt256(9123395087669458749, 18027736016955510320, 9153678421493381669, 4911810360710024891),
+UInt256(5702121929793411718, 13573178019810887902, 5721049013433363543, 5375724484657459509),
+UInt256(7127652412241764648, 7743100487908834069, 16374683303646480237, 2107969587394436483),
+UInt256(8909565515302205810, 9678875609886042587, 6633296074275936584, 7246648002670433507),
+UInt256(5568478447063878631, 10660983274606164521, 1839967037208766413, 4529155001669020942),
+UInt256(6960598058829848289, 8714543074830317747, 6911644814938345920, 10273129770513664082),
+UInt256(8700747573537310361, 15504864861965285088, 4027870000245544496, 12841412213142080102),
+UInt256(5437967233460818976, 2773011511087221324, 2517418750153465310, 8025882633213800064),
+UInt256(6797459041826023720, 3466264388859026655, 3146773437691831638, 808981254662474272),
+UInt256(8496823802282529650, 4332830486073783318, 17768524852396953259, 10234598605182868647),
+UInt256(5310514876426581031, 7319705072223502478, 6493642014320707883, 4090781119025598953),
+UInt256(6638143595533226289, 4537945321851990193, 17340424554755660662, 501790380354610787),
+UInt256(8297679494416532861, 10284117670742375646, 7840472638162412115, 9850610012298039291),
+UInt256(5186049684010333038, 8733416553427678731, 288609380424119668, 3850788248472580605),
+UInt256(6482562105012916298, 1693398654929822605, 14195819780812313297, 4813485310590725757),
+UInt256(8103202631266145372, 11340120355517054065, 3909716670733227909, 10628542656665795100),
+UInt256(5064501644541340857, 16310947259052934598, 13972787965276737203, 8948682169629815889),
+UInt256(6330627055676676072, 6553626018534004536, 8242612919741145696, 6574166693609881958),
+UInt256(7913283819595845090, 8192032523167505670, 10303266149676432120, 8217708367012352447),
+UInt256(4945802387247403181, 9731706345407078948, 1827855325120382171, 5136067729382720280),
+UInt256(6182252984059253976, 16776318950186236589, 2284819156400477714, 1808398643301012445),
+UInt256(7727816230074067471, 2523654614023244120, 7467709963927985046, 11483870340981041365),
+UInt256(4829885143796292169, 8494813161405609431, 4667318727454990654, 2565732944685762949),
+UInt256(6037356429745365211, 15230202470184399693, 1222462390891350413, 12430538217711979494),
+UInt256(7546695537181706514, 14426067069303111712, 6139764007041575921, 1703114716857810656),
+UInt256(4716684710738566571, 13627977936741832724, 3837352504400984950, 12593661744104601420),
+UInt256(5895855888423208214, 12423286402499903001, 4796690630501231188, 6518705143275975967),
+UInt256(7369819860529010268, 6305735966270102943, 10607549306553926889, 8148381429094969958),
+UInt256(9212274825661262835, 7882169957837628679, 8647750614765020707, 14797162804796100352),
+UInt256(5757671766038289272, 2620513214434823972, 12322373161869219798, 6942383743783868768),
+UInt256(7197089707547861590, 3275641518043529965, 15402966452336524747, 17901351716584611768),
+UInt256(8996362134434826987, 13317923934409188265, 5418650010138492222, 17765003627303376806),
+UInt256(5622726334021766867, 6017859449792048713, 14915871302405027399, 6491441248637222600),
+UInt256(7028407917527208584, 2910638293812672988, 4809781072724120537, 3502615542369140346),
+UInt256(8785509896909010730, 3638297867265841235, 6012226340905150671, 8989955446388813336),
+UInt256(5490943685568131706, 6885622185468538676, 1451798453852025217, 12536251181634090191),
+UInt256(6863679606960164632, 17830399768690449153, 1814748067315031522, 1835255921760449027),
+UInt256(8579599508700205791, 3841255637153509825, 6880121102571177306, 11517441939055337091),
+UInt256(5362249692937628619, 9318313800862025496, 15829290735175455576, 11810087230336973586),
+UInt256(6702812116172035774, 7036206232650143967, 1339869345259767854, 14762609037921216983),
+UInt256(8378515145215044717, 18018629827667455766, 15509894736856873530, 9229889260546745420),
+UInt256(5236571965759402948, 13567486651505853806, 5081998192108158052, 10380366806269103792),
+UInt256(6545714957199253685, 16959358314382317257, 15575869776989973373, 12975458507836379740),
+UInt256(8182143696499067107, 7364139837695732860, 5634779165955303005, 2384265079513310963),
+UInt256(5113839810311916942, 2296744389346139085, 12745109015576840186, 3796008683909513304),
+UInt256(6392299762889896177, 12094302523537449665, 2096328214188886520, 13968382891741667438),
+]
+
+private let bid_multipliers1_binary80_110: [UInt256] = [
+UInt256(7990374703612370222, 1282820099139648369, 7232096286163496054, 17460478614677084297),
+UInt256(4993984189757731388, 14636820617244443942, 16049275224920654794, 6301113115745789782),
+UInt256(6242480237197164235, 18296025771555554928, 10838221994296042684, 17099763431537013035),
+UInt256(7803100296496455294, 18258346196017055756, 13547777492870053356, 2927960215711714678),
+UInt256(4876937685310284559, 6799780354083271943, 17690732969898559155, 11053347171674597482),
+UInt256(6096172106637855699, 3888039424176702025, 17501730193945811040, 9204997946165858948),
+UInt256(7620215133297319624, 248363261793489628, 8042104687150100088, 11506247432707323685),
+UInt256(4762634458310824765, 155227038620931017, 14249687466323588363, 7191404645442077303),
+UInt256(5953293072888530956, 4805719816703551676, 3977051277622321742, 4377569788375208725),
+UInt256(7441616341110663695, 6007149770879439595, 4971314097027902177, 14695334272323786714),
+UInt256(4651010213194164809, 10671997634440731603, 801228301428744909, 2267054892561284840),
+UInt256(5813762766492706011, 17951683061478302407, 14836593432068094848, 7445504634128993954),
+UInt256(7267203458115882514, 17827917808420490105, 13934055771657730656, 9306880792661242443),
+UInt256(9084004322644853143, 13061525223670836824, 3582511659289999608, 11633600990826553054),
+UInt256(5677502701653033214, 15080982292435354871, 2239069787056249755, 7271000619266595659),
+UInt256(7096878377066291518, 9627855828689417780, 16633895289102475906, 4477064755655856669),
+UInt256(8871097971332864398, 2811447749006996418, 2345625037668543266, 14819702981424596644),
+UInt256(5544436232083040248, 15592212898411536473, 6077701666970227445, 13874000381817760807),
+UInt256(6930545290103800311, 1043522049304868975, 12208813102140172211, 3507442421990037297),
+UInt256(8663181612629750388, 15139460616913249931, 10649330359247827359, 18219361082769710333),
+UInt256(5414488507893593993, 238790848716005399, 4349988465316198147, 18304629704372150814),
+UInt256(6768110634866992491, 4910174579322394653, 825799563217859780, 18269101112037800613),
+UInt256(8460138293583740614, 1526032205725605412, 5643935472449712630, 4389632316337699151),
+UInt256(5287586433489837883, 14788828183860667094, 12750831707135846201, 16578578252993225681),
+UInt256(6609483041862297354, 13874349211398445964, 6715167597065031944, 6888164760959368390),
+UInt256(8261853802327871693, 8119564477393281647, 8393959496331289930, 8610205951199210487),
+UInt256(5163658626454919808, 7380570807584494981, 12163753712848138062, 9993064737926894458),
+UInt256(6454573283068649760, 9225713509480618727, 1369634085778008866, 3267958885553842265),
+UInt256(8068216603835812200, 11532141886850773408, 15547100662504674794, 13308320643797078639),
+UInt256(5042635377397382625, 7207588679281733380, 9716937914065421746, 12929386420800562054),
+UInt256(6303294221746728281, 13621171867529554629, 12146172392581777183, 6938360989145926759),
+UInt256(7879117777183410352, 3191406779129779575, 1347657435445057767, 4061265218005020544),
+UInt256(4924448610739631470, 1994629236956112234, 7759814924794242960, 9455819788894219696),
+UInt256(6155560763424539337, 11716658583049916101, 476396619138027892, 11819774736117774620),
+UInt256(7694450954280674172, 810765173530231414, 5207181792349922769, 14774718420147218275),
+UInt256(4809031846425421357, 9730100270311170441, 17089546675500865443, 2316669984950929566),
+UInt256(6011289808031776696, 16774311356316350956, 7526875289093918091, 16730895536470825670),
+UInt256(7514112260039720871, 2521145121685887079, 9408594111367397614, 16301933402161144183),
+UInt256(4696320162524825544, 8493244728694761280, 12797900347245705365, 5577022357923327211),
+UInt256(5870400203156031930, 10616555910868451600, 15997375434057131706, 11582963965831546917),
+UInt256(7338000253945039913, 4047322851730788693, 1549975218861863017, 5255332920434657838),
+UInt256(9172500317431299891, 9670839583090873770, 6549155042004716675, 11180852168970710202),
+UInt256(5732812698394562432, 3738431730218102154, 8704907919680335826, 4682189596392999924),
+UInt256(7166015872993203040, 4673039662772627693, 1657762862745643974, 15076109032346025713),
+UInt256(8957519841241503800, 5841299578465784616, 6683889596859442872, 9621764253577756333),
+UInt256(5598449900775939875, 3650812236541115385, 4177430998037151795, 6013602658486097709),
+UInt256(6998062375969924843, 18398573350958557943, 9833474765973827648, 2905317304680234232),
+UInt256(8747577969962406054, 18386530670270809525, 7680157439039896656, 3631646630850292789),
+UInt256(5467236231226503784, 6879895650491868049, 7105941408613629362, 2269779144281432994),
+UInt256(6834045289033129730, 8599869563114835061, 13494112779194424606, 12060595967206567050),
+]
+
+private let bid_multipliers1_binary80_111: [UInt256] = [
+UInt256(8542556611291412163, 1526464917038768019, 3032582918710867046, 5852372922153433004),
+UInt256(5339097882057132601, 17094941637645087675, 18036265388690149567, 17492791131628059340),
+UInt256(6673872352571415752, 7533618991774195882, 17933645717435299055, 17254302896107686271),
+UInt256(8342340440714269690, 9417023739717744853, 13193685109939348011, 16956192601707219934),
+UInt256(5213962775446418556, 10497325855750978437, 10551896202925786459, 8291777366853318507),
+UInt256(6517453469308023195, 13121657319688723046, 17801556272084620978, 5753035690139260230),
+UInt256(8146816836635028994, 11790385631183515904, 13028573303251000414, 16414666649528851095),
+UInt256(5091760522896893121, 11980677037917085344, 8142858314531875259, 5647480637528144031),
+UInt256(6364700653621116402, 1140788242114192968, 10178572893164844074, 2447664778482792134),
+UInt256(7955875817026395502, 10649357339497517018, 12723216116456055092, 12282953009958265975),
+UInt256(4972422385641497189, 2044162318758560232, 12563696091212422336, 16900217668078692043),
+UInt256(6215527982051871486, 7166888916875588194, 15704620114015527921, 2678528011388813437),
+UInt256(7769409977564839357, 18181983182949261051, 10407403105664634093, 7959846032663404701),
+UInt256(4855881235978024598, 13669582498556982109, 4198783931826702356, 7280746779628321890),
+UInt256(6069851544972530748, 7863606086341451828, 9860165933210765849, 9100933474535402362),
+UInt256(7587314431215663435, 9829507607926814785, 12325207416513457311, 15987852861596640857),
+UInt256(4742071519509789647, 3837599245740565289, 785725607679828963, 16909937066138982392),
+UInt256(5927589399387237059, 185313038748318707, 5593843028027174108, 16525735314246340086),
+UInt256(7409486749234046323, 14066699353717562096, 2380617766606579732, 2210425069098373491),
+UInt256(4630929218271278952, 6485844086859782358, 1487886104129112332, 10604887705041259240),
+UInt256(5788661522839098690, 8107305108574727947, 11083229667016166223, 13256109631301574050),
+UInt256(7235826903548873363, 910759348863634126, 9242351065342819875, 11958451020699579658),
+UInt256(9044783629436091703, 14973507241361706370, 2329566794823749036, 10336377757447086669),
+UInt256(5652989768397557314, 16275971053492148337, 6067665265192231051, 15683608135259204976),
+UInt256(7066237210496946643, 11121591780010409613, 12196267599917676718, 14992824150646618316),
+UInt256(8832796513121183304, 9290303706585624113, 1410276444614932186, 9517658151453497087),
+UInt256(5520497820700739565, 5806439816616015070, 12410637823952802376, 10560222363085823583),
+UInt256(6900622275875924456, 11869735789197406742, 6289925243086227162, 13200277953857279479),
+UInt256(8625777844844905570, 14837169736496758427, 17085778590712559761, 7276975405466823541),
+UInt256(5391111153028065981, 13884917103737861921, 8372768609981655898, 16077324674485234473),
+UInt256(6738888941285082477, 3521088324390163689, 15077646780904457777, 10873283806251767283),
+UInt256(8423611176606353096, 9013046423915092516, 5012000420848408509, 18203290776242097008),
+UInt256(5264756985378970685, 5633154014946932822, 12355872299885031126, 13682899744365004582),
+UInt256(6580946231723713356, 11653128537111053932, 6221468338001513100, 7880252643601479920),
+UInt256(8226182789654641695, 14566410671388817415, 7776835422501891375, 9850315804501849900),
+UInt256(5141364243534151059, 16021535697259092740, 11778051166704763965, 13073976405454738043),
+UInt256(6426705304417688824, 15415233603146478021, 14722563958380954957, 2507412451536258842),
+UInt256(8033381630522111031, 822297930223545911, 4568146892694029984, 7745951582847711457),
+UInt256(5020863519076319394, 7431465234030798050, 9772620835574850596, 4841219739279819661),
+UInt256(6276079398845399243, 65959505683721755, 2992404007613787437, 6051524674099774576),
+UInt256(7845099248556749053, 13917507437386815905, 17575563064799398008, 12176091861052106123),
+UInt256(4903187030347968158, 11004285157580453893, 4067197887858541899, 7610057413157566327),
+UInt256(6128983787934960198, 4531984410120791558, 9695683378250565278, 4900885748019570005),
+UInt256(7661229734918700247, 14888352549505765256, 2896232185958430789, 15349479221879238314),
+UInt256(4788268584324187654, 16222749371082185141, 1810145116224019243, 11899267522888217898),
+UInt256(5985335730405234568, 11055064676997955618, 6874367413707411958, 10262398385182884469),
+UInt256(7481669663006543210, 13818830846247444522, 17816331303989040756, 3604625944623829778),
+UInt256(4676043539379089506, 13248455297332040730, 15746893083420538376, 11476263252244669419),
+UInt256(5845054424223861883, 7337197084810275105, 10460244317420897162, 14345329065305836774),
+UInt256(7306318030279827354, 4559810337585455977, 17686991415203509357, 8708289294777520160),
+]
+
+private let bid_multipliers1_binary80_112: [UInt256] = [
+UInt256(9132897537849784192, 14923134958836595780, 8273681213722222984, 15497047636899288103),
+UInt256(5708060961156115120, 9326959349272872362, 14394422795431165173, 9685654773062055065),
+UInt256(7135076201445143900, 11658699186591090453, 8769656457434180658, 16718754484754956735),
+UInt256(8918845251806429875, 14573373983238863066, 15573756590220113727, 11675071069088920111),
+UInt256(5574278282379018672, 6802515730310595464, 14345283887314958983, 14214448445821656925),
+UInt256(6967847852973773340, 8503144662888244330, 17931604859143698729, 13156374538849683252),
+UInt256(8709809816217216675, 10628930828610305413, 13191134037074847604, 2610410118279940353),
+UInt256(5443631135135760422, 4337238758667746931, 10550301782385473704, 10854878360779738529),
+UInt256(6804538918919700527, 14644920485189459472, 8576191209554454226, 13568597950974673161),
+UInt256(8505673648649625659, 13694464588059436436, 10720239011943067783, 7737375401863565643),
+UInt256(5316046030406016037, 6253197358323453820, 15923521419319193172, 11753388653805810383),
+UInt256(6645057538007520046, 12428182716331705180, 1457657700439439849, 14691735817257262979),
+UInt256(8306321922509400058, 6311856358559855667, 1822072125549299812, 4529611716289415012),
+UInt256(5191451201568375036, 8556596242527297695, 17279696142964170046, 12054379359535660190),
+UInt256(6489314001960468795, 10695745303159122119, 16987934160277824654, 5844602162564799430),
+UInt256(8111642502450585994, 8757995610521514745, 16623231681919892913, 16529124740060775095),
+UInt256(5069776564031616246, 10085433275003334620, 3471990773558851215, 3413173934896902579),
+UInt256(6337220705039520308, 3383419556899392467, 4339988466948564018, 18101525473903291935),
+UInt256(7921525881299400385, 4229274446124240584, 813299565258317119, 13403534805524339111),
+UInt256(4950953675812125240, 14172511574896120125, 508312228286448199, 15294738281093793801),
+UInt256(6188692094765156550, 17715639468620150156, 5247076303785448153, 14506736832939854347),
+UInt256(7735865118456445688, 12921177298920411887, 6558845379731810192, 4298362985892654221),
+UInt256(4834915699035278555, 8075735811825257429, 11016807389973463226, 2686476866182908888),
+UInt256(6043644623794098194, 5482983746354183882, 18382695255894216936, 12581468119583411918),
+UInt256(7554555779742622742, 16077101719797505661, 13754997033012995362, 15726835149479264898),
+UInt256(4721597362339139214, 5436502556446053134, 10902716154846816053, 14440957986851928465),
+UInt256(5901996702923924017, 16019000232412342226, 4405023156703744259, 4216139428282746870),
+UInt256(7377495878654905022, 6188692235233264070, 14729650982734456132, 658488266926045683),
+UInt256(9221869848318631277, 16959237330896355896, 9188691691563294357, 823110333657557103),
+UInt256(5763668655199144548, 12905366341023916387, 5742932307227058973, 2820286967749667142),
+UInt256(7204585818998930685, 16131707926279895484, 2566979365606435812, 8137044728114471831),
+UInt256(9005732273748663357, 6329576852567705643, 3208724207008044765, 10171305910143089789),
+UInt256(5628582671092914598, 6261828542068509978, 18146353693875885642, 8662909203053125070),
+UInt256(7035728338866143247, 17050657714440413281, 13459570080490081245, 1605264466961630530),
+UInt256(8794660423582679059, 16701636124623128698, 2989404545330437844, 6618266602129426066),
+UInt256(5496662764739174412, 8132679568675761484, 6480063859258911556, 13359788663185667099),
+UInt256(6870828455923968015, 10165849460844701855, 8100079824073639445, 16699735828982083874),
+UInt256(8588535569904960019, 8095625807628489415, 5513413761664661403, 7039611730945441131),
+UInt256(5367834731190600012, 2753923120554111932, 10363412628681495233, 2093914322627206755),
+UInt256(6709793413988250015, 3442403900692639915, 12954265785851869041, 7229078921711396347),
+UInt256(8387241767485312518, 18138062931147963606, 11581146213887448397, 13648034670566633338),
+UInt256(5242026104678320324, 6724603313540089350, 2626530365252267344, 10835864678317839788),
+UInt256(6552532630847900405, 8405754141925111687, 12506534993420109988, 13544830847897299735),
+UInt256(8190665788559875506, 15118878695833777513, 11021482723347749581, 16931038559871624669),
+UInt256(5119166117849922191, 14060985203323498849, 18417641748160813248, 12887742109133459370),
+UInt256(6398957647312402739, 12964545485726985658, 9186994129918852848, 16109677636416824213),
+UInt256(7998697059140503424, 11593995838731344169, 2260370625543790253, 1690352971811478650),
+UInt256(4999185661962814640, 7246247399207090105, 12941946687033338668, 3362313616595868108),
+UInt256(6248982077453518300, 9057809249008862632, 2342375303509509623, 4202892020744835135),
+UInt256(7811227596816897875, 11322261561261078290, 2927969129386887029, 641929007503656015),
+]
+
+private let bid_multipliers1_binary80_113: [UInt256] = [
+UInt256(4882017248010561172, 4770570466574479979, 6441666724294192297, 2707048638903478962),
+UInt256(6102521560013201465, 5963213083218099974, 3440397386940352467, 7995496817056736606),
+UInt256(7628151950016501831, 12065702372450012871, 13523868770530216392, 5382685002893532853),
+UInt256(4767594968760313644, 14458593010422339900, 15369947009222467101, 3364178126808458034),
+UInt256(5959493710950392055, 18073241263027924876, 765689687818532260, 8816908676937960446),
+UInt256(7449367138687990069, 17979865560357518191, 957112109773165325, 11021135846172450557),
+UInt256(4655854461679993793, 13543258984437142821, 7515724096249310184, 9194052913071475550),
+UInt256(5819818077099992242, 3094015675264264814, 14006341138739025634, 11492566141339344438),
+UInt256(7274772596374990302, 13090891630935106826, 8284554386569006235, 5142335639819404739),
+UInt256(9093465745468737878, 7140242501814107725, 1132320946356481986, 1816233531346868020),
+UInt256(5683416090917961173, 18297709618915981040, 3013543600686495193, 5746831975519180417),
+UInt256(7104270113647451467, 9037078968362812588, 3766929500858118991, 11795225987826363425),
+UInt256(8880337642059314334, 6684662692026127831, 4708661876072648739, 10132346466355566377),
+UInt256(5550211026287071458, 18012972237798493606, 9860442700186487318, 4026873532258535034),
+UInt256(6937763782858839323, 13292843260393341200, 3102181338378333339, 14256963952177944600),
+UInt256(8672204728573549154, 12004368057064288596, 3877726672972916674, 13209518921795042846),
+UInt256(5420127955358468221, 12114416054092568276, 11646951207462848729, 12867635344549289683),
+UInt256(6775159944198085277, 1307962012333546633, 14558689009328560912, 2249486125404448391),
+UInt256(8468949930247606596, 6246638533844321196, 4363303206378537428, 2811857656755560489),
+UInt256(5293093706404754122, 13127521120507476555, 11950436540841361700, 10980783072327001114),
+UInt256(6616367133005942653, 7186029363779569886, 10326359657624314221, 13725978840408751392),
+UInt256(8270458916257428316, 13594222723151850262, 3684577535175616969, 3322415495228775528),
+UInt256(5169036822660892697, 17719761238824682221, 16137919014766924317, 13605724730586454465),
+UInt256(6461296028326115872, 8314643493248689065, 6337340713176491685, 3172097857950904369),
+UInt256(8076620035407644840, 10393304366560861331, 12533361909898002510, 8576808340866018366),
+UInt256(5047887522129778025, 6495815229100538332, 5527508184472557617, 748819194613873575),
+UInt256(6309859402662222531, 12731455054803060819, 6909385230590697021, 5547710011694729872),
+UInt256(7887324253327778164, 11302632800076438120, 4025045519810983372, 11546323533045800244),
+UInt256(4929577658329861352, 16287517536902549633, 2515653449881864607, 16439824245008400961),
+UInt256(6161972072912326691, 1912652847418635425, 7756252830779718663, 15938094287833113297),
+UInt256(7702465091140408363, 16225874114555457993, 14307002056902036233, 15310931841364003717),
+UInt256(4814040681962755227, 7835328312383467294, 2024347257922690790, 2651803373211420467),
+UInt256(6017550852453444034, 5182474372051946213, 11753806109258139295, 12538126253369051392),
+UInt256(7521938565566805042, 15701465001919708575, 857199581290510407, 11060971798283926336),
+UInt256(4701211603479253151, 14425101644627205763, 7453278765947650860, 13830636401568535816),
+UInt256(5876514504349066439, 13419691037356619300, 4704912439007175671, 17288295501960669770),
+UInt256(7345643130436333049, 12162927778268386221, 5881140548758969589, 16998683359023449308),
+UInt256(9182053913045416312, 1368601667553319064, 11963111704376099891, 7413296143497147923),
+UInt256(5738783695653385195, 855376042220824415, 7476944815235062432, 2327467080472023500),
+UInt256(7173479619566731493, 14904278108058194231, 4734495000616440136, 2909333850590029375),
+UInt256(8966849524458414367, 4795289579790579077, 1306432732343162266, 3636667313237536719),
+UInt256(5604280952786508979, 9914585015010193779, 3122363466928170368, 6884603089200848354),
+UInt256(7005351190983136224, 7781545250335354319, 17738012388942376672, 8605753861501060442),
+UInt256(8756688988728920280, 9726931562919192899, 17560829467750582936, 10757192326876325552),
+UInt256(5472930617955575175, 6079332226824495562, 8669675408130420383, 6723245204297703470),
+UInt256(6841163272444468969, 2987479265103231549, 1613722223308249671, 3792370486944741434),
+UInt256(8551454090555586211, 8346035099806427340, 6628838797562699993, 128777090253538888),
+UInt256(5344658806597241382, 2910428928165323135, 13366396285331463303, 11609700727476931565),
+UInt256(6680823508246551727, 12861408197061429727, 12096309338236941225, 9900439890918776552),
+UInt256(8351029385308189659, 11465074227899399255, 10508700654368788627, 16987235882075858594),
+]
+
+private let bid_multipliers1_binary80_114: [UInt256] = [
+UInt256(5219393365817618537, 4859828383223430582, 13485466936621574748, 8311179417083717670),
+UInt256(6524241707272023171, 10686471497456676132, 7633461633922192627, 10388974271354647087),
+UInt256(8155302134090028964, 8746403353393457261, 9541827042402740784, 8374531820765920954),
+UInt256(5097063833806268102, 14689874132725686596, 8269484910715406942, 5234082387978700597),
+UInt256(6371329792257835128, 9138970629052332437, 10336856138394258677, 15765975021828151554),
+UInt256(7964162240322293910, 11423713286315415546, 17532756191420211251, 5872410722003025730),
+UInt256(4977601400201433694, 2528134785519746812, 15569658638065019936, 1364413692038197130),
+UInt256(6222001750251792117, 12383540518754459324, 1015329223871723304, 1705517115047746412),
+UInt256(7777502187814740147, 1644367593160910443, 1269161529839654130, 2131896393809683015),
+UInt256(4860938867384212591, 17168630810221426690, 16934127020645641495, 5944121264558439788),
+UInt256(6076173584230265739, 16849102494349395459, 11944286738952276061, 2818465562270661831),
+UInt256(7595216980287832174, 16449692099509356420, 10318672405262957172, 8134767971265715193),
+UInt256(4747010612679895109, 5669371543765959858, 15672542290144124040, 14307602018895847804),
+UInt256(5933763265849868886, 11698400448134837727, 10367305825825379242, 17884502523619809755),
+UInt256(7417204082312336108, 5399628523313771351, 8347446263854336149, 13132256117669986385),
+UInt256(4635752551445210067, 12598139863925882902, 12134682942550041949, 10513503082757435443),
+UInt256(5794690689306512584, 11135988811479965724, 5944981641332776628, 17753564871874182207),
+UInt256(7243363361633140730, 13919986014349957155, 7431227051665970786, 3745212016133176143),
+UInt256(9054204202041425913, 8176610481082670636, 4677347796155075578, 13904887057021245987),
+UInt256(5658877626275891195, 16639596596745138907, 12146714409451698044, 13302240429065666646),
+UInt256(7073597032844863994, 16187809727504035730, 10571706993387234651, 16627800536332083307),
+UInt256(8841996291056079993, 11011390122525268855, 3991261704879267506, 16173064651987716230),
+UInt256(5526247681910049995, 18411333872646762794, 9412067593190624047, 14719851425919710548),
+UInt256(6907809602387562494, 18402481322381065589, 2541712454633504251, 13788128263972250281),
+UInt256(8634762002984453118, 13779729616121556178, 7788826586719268218, 12623474311537924947),
+UInt256(5396726251865283199, 4000644991648584707, 9479702635126930540, 12501357463138590996),
+UInt256(6745907814831603999, 389120221133342980, 7237942275481275271, 15626696828923238745),
+UInt256(8432384768539504998, 14321458331698842437, 9047427844351594089, 14921685017726660527),
+UInt256(5270240480337190624, 4339225438884388619, 7960485411933440258, 2408524108438080974),
+UInt256(6587800600421488280, 5424031798605485774, 5338920746489412418, 12234027172402377025),
+UInt256(8234750750526860350, 6780039748256857217, 15897022969966541331, 6069161928648195473),
+UInt256(5146719219079287718, 18072582897942699473, 3018110328588006476, 1487383196191428219),
+UInt256(6433399023849109648, 13367356585573598533, 8384323929162395999, 1859228995239285273),
+UInt256(8041748779811387060, 16709195731966998166, 15092090929880382902, 16159094299331270304),
+UInt256(5026092987382116913, 1219875295624598046, 4820870812747851410, 5487747918654656036),
+UInt256(6282616234227646141, 6136530137958135461, 15249460552789590070, 16083056935173095853),
+UInt256(7853270292784557676, 12282348690875057231, 5226767635704823876, 10880449132111594008),
+UInt256(4908293932990348547, 16899839968651686577, 10184258799956596778, 16023652744424522063),
+UInt256(6135367416237935684, 16513113942387220317, 17342009518373133877, 10806193893675876771),
+UInt256(7669209270297419606, 2194648354274473781, 7842453842684253634, 18119428385522233867),
+UInt256(4793255793935887253, 15206713276703709825, 7207376660891352473, 15936328759378784071),
+UInt256(5991569742419859067, 5173333540597473569, 13620906844541578496, 6085352893941316377),
+UInt256(7489462178024823834, 1854980907319454058, 3191075500394809408, 7606691117426645471),
+UInt256(4680913861265514896, 5771049085502046690, 6606108206174143784, 4754181948391653420),
+UInt256(5851142326581893620, 7213811356877558362, 17481007294572455538, 5942727435489566774),
+UInt256(7313927908227367025, 9017264196096947953, 12627887081360793614, 16651781331216734276),
+UInt256(9142409885284208781, 15883266263548572846, 1949800796418828306, 11591354627166142037),
+UInt256(5714006178302630488, 12232884423931551980, 15053683553043931403, 11856282660406226677),
+UInt256(7142507722878288110, 15291105529914439976, 370360367595362638, 10208667307080395442),
+UInt256(8928134653597860138, 9890509875538274162, 462950459494203298, 3537462096995718495),
+]
+
+private let bid_multipliers1_binary80_115: [UInt256] = [
+UInt256(5580084158498662586, 10793254690638809255, 4901030055611264965, 6822599829049711963),
+UInt256(6975105198123328233, 4268196326443735761, 1514601551086693302, 13139935804739527858),
+UInt256(8718881497654160291, 9946931426482057605, 6504937957285754532, 7201547719069634014),
+UInt256(5449300936033850182, 3910989132337592051, 6371429232517290534, 13724339361273297067),
+UInt256(6811626170042312727, 14112108452276765872, 3352600522219225264, 7932052164736845526),
+UInt256(8514532712552890909, 13028449546918569436, 4190750652774031580, 9915065205921056907),
+UInt256(5321582945345556818, 10448623976037799849, 11842591194838545545, 15420287790555436375),
+UInt256(6651978681681946023, 3837407933192474004, 968180938266018220, 5440301682912131757),
+UInt256(8314973352102432529, 185073898063204601, 1210226172832522775, 6800377103640164696),
+UInt256(5196858345064020330, 11644886232357972635, 12285606404088796494, 11167764717416184791),
+UInt256(6496072931330025413, 5332735753592689986, 10745321986683607714, 4736333859915455181),
+UInt256(8120091164162531766, 11277605710418250387, 4208280446499733834, 15143789361749094784),
+UInt256(5075056977601582354, 2436817550584018588, 324332269848639694, 14076554369520572144),
+UInt256(6343821222001977942, 12269393975084799043, 405415337310799618, 8372320925045939372),
+UInt256(7929776527502472428, 6113370432001222995, 14341827226920663235, 1242029119452648407),
+UInt256(4956110329689045267, 13044228556855540180, 6657799007611720569, 16917169264153762919),
+UInt256(6195137912111306584, 11693599677642037321, 8322248759514650712, 7311403524910039936),
+UInt256(7743922390139133230, 14616999597052546651, 15014496967820701294, 9139254406137549920),
+UInt256(4839951493836958269, 4523938729730453753, 7078217595674244357, 1100347985408580796),
+UInt256(6049939367296197836, 10266609430590455095, 13459458013020193350, 5987121000188113899),
+UInt256(7562424209120247295, 12833261788238068869, 12212636497847853783, 16707273287089918182),
+UInt256(4726515130700154559, 14938317645289874899, 9938740820368602566, 17359574832072280720),
+UInt256(5908143913375193199, 14061211038184955720, 7811740007033365304, 12476096503235575092),
+UInt256(7385179891718991499, 12964827779303806746, 9764675008791706630, 15595120629044468864),
+UInt256(4615737432324369687, 5797174352851185264, 10714607898922204548, 5135264374725405136),
+UInt256(5769671790405462109, 2634781922636593676, 13393259873652755685, 6419080468406756420),
+UInt256(7212089738006827636, 7905163421723129999, 16741574842065944606, 12635536603935833429),
+UInt256(9015112172508534545, 9881454277153912499, 16315282534155042854, 6571048718065015979),
+UInt256(5634445107817834090, 17705123969289665072, 7891208574633207831, 17941963504072798699),
+UInt256(7043056384772292613, 12908032924757305532, 9864010718291509789, 17815768361663610469),
+UInt256(8803820480965365767, 2299983100664468203, 12330013397864387237, 8434652396797349375),
+UInt256(5502387800603353604, 8355018465556374483, 5400415364451548071, 7577500757212037311),
+UInt256(6877984750754192005, 10443773081945468104, 2138833187137047185, 4860189928087658735),
+UInt256(8597480938442740006, 17666402370859223034, 2673541483921308981, 10686923428536961323),
+UInt256(5373425586526712504, 6429815463359626492, 6282649445878206017, 8985170152049294779),
+UInt256(6716781983158390630, 8037269329199533115, 7853311807347757521, 15843148708489006377),
+UInt256(8395977478947988288, 823214624644640586, 5204953740757308998, 5968877830329094260),
+UInt256(5247485924342492680, 514509140402900366, 7864782106400706027, 17565606699237847624),
+UInt256(6559357405428115850, 643136425503625458, 607605596146106726, 17345322355619921626),
+UInt256(8199196756785144812, 10027292568734307630, 9982879032037409216, 12458280907670126225),
+UInt256(5124497972990715507, 15490429892313718077, 1627613376595992856, 7786425567293828891),
+UInt256(6405622466238394384, 14751351346964759692, 6646202739172378974, 9733031959117286113),
+UInt256(8007028082797992980, 18439189183705949615, 8307753423965473718, 2942917912041831834),
+UInt256(5004392551748745613, 2301121202961442701, 12109874917619502929, 15674381750308308608),
+UInt256(6255490689685932016, 7488087522129191281, 1302285591742214950, 5757919132603222048),
+UInt256(7819363362107415020, 9360109402661489101, 6239543008105156591, 16420770952608803368),
+UInt256(4887102101317134387, 15073440413518206496, 6205557389279416821, 17180510873021583961),
+UInt256(6108877626646417984, 14230114498470370216, 7756946736599271027, 7640580535994816239),
+UInt256(7636097033308022480, 17787643123087962770, 9696183420749088784, 4939039651566132395),
+UInt256(4772560645817514050, 11117276951929976731, 10671800656395568394, 3086899782228832747),
+]
+
+private let bid_multipliers1_binary80_116: [UInt256] = [
+UInt256(5965700807271892563, 4673224153057695106, 8728064802067072588, 13081996764640816742),
+UInt256(7457126009089865704, 1229844172894730979, 1686708965729064927, 16352495955801020927),
+UInt256(4660703755681166065, 768652608059206861, 17195094168076523243, 17137839000016719936),
+UInt256(5825879694601457581, 5572501778501396481, 7658809654813490342, 16810612731593512015),
+UInt256(7282349618251821976, 11577313241554133505, 14185198086944250832, 11789893877637114211),
+UInt256(9102937022814777470, 14471641551942666882, 3896439553398149828, 14737367347046392764),
+UInt256(5689335639259235919, 4433089951536778897, 7046960739301231546, 18434226628758771286),
+UInt256(7111669549074044899, 929676420993585717, 13420386942553927337, 13819411249093688299),
+UInt256(8889586936342556123, 14997153581524145859, 2940425622910245460, 3439206006084946661),
+UInt256(5555991835214097577, 7067377979238897209, 17978667078814761076, 11372875790657867472),
+UInt256(6944989794017621971, 13445908492476009416, 8638275793236287633, 14216094738322334339),
+UInt256(8681237242522027464, 12195699597167623866, 10797844741545359542, 3935060367620754212),
+UInt256(5425773276576267165, 7622312248229764916, 11360338981893237617, 16294470785045135095),
+UInt256(6782216595720333956, 14139576328714594049, 14200423727366547022, 6533030426024255156),
+UInt256(8477770744650417445, 17674470410893242562, 3915471603926020065, 17389660069385094753),
+UInt256(5298606715406510903, 13352387016021970553, 7058855770881150445, 3951008515724602365),
+UInt256(6623258394258138629, 12078797751600075287, 13435255732028825960, 9550446663083140860),
+UInt256(8279072992822673287, 1263439134217930397, 12182383646608644546, 11938058328853926075),
+UInt256(5174420620514170804, 7707178486527288354, 9919832788344096793, 12072972473961091701),
+UInt256(6468025775642713505, 9633973108159110443, 3176418948575345184, 1256157537169200914),
+UInt256(8085032219553391881, 16654152403626275957, 17805581741001345192, 1570196921461501143),
+UInt256(5053145137220869926, 3491316224625340617, 13434331597339534697, 981373075913438214),
+UInt256(6316431421526087407, 13587517317636451580, 2957856441392254659, 5838402363319185672),
+UInt256(7895539276907609259, 12372710628618176571, 3697320551740318324, 2686316935721594185),
+UInt256(4934712048067255787, 5427101133672666405, 4982335624005000, 10902320121680772174),
+UInt256(6168390060084069734, 2172190398663445102, 4617913937957394154, 13627900152100965218),
+UInt256(7710487575105087167, 11938610035184082185, 14995764459301518501, 7811503153271430714),
+UInt256(4819054734440679479, 14379160299631133222, 2454823759422367207, 7188032480008338148),
+UInt256(6023818418050849349, 13362264356111528623, 12291901736132734817, 4373354581583034781),
+UInt256(7529773022563561687, 2867772389857247067, 10753191151738530617, 10078379245406181380),
+UInt256(4706108139102226054, 8709886771301861273, 4414901460622887683, 17828202074447333123),
+UInt256(5882635173877782568, 1663986427272550783, 10130312844205997508, 17673566574631778500),
+UInt256(7353293967347228210, 2079983034090688479, 8051205036830108982, 3645214144580171508),
+UInt256(9191617459184035262, 11823350829468136407, 5452320277610248323, 13779889717579990193),
+UInt256(5744760911990022039, 2777908249990197350, 10325229201147487058, 6306588064273799919),
+UInt256(7180951139987527548, 17307443367769910400, 3683164464579583014, 17106607117197025707),
+UInt256(8976188924984409436, 3187560136002836384, 4603955580724478768, 12159886859641506325),
+UInt256(5610118078115255897, 11215597121856548548, 2877472237952799230, 7599929287275941453),
+UInt256(7012647597644069872, 184438347038521973, 3596840297440999038, 276539572240151009),
+UInt256(8765809497055087340, 230547933798152466, 9107736390228636701, 9569046502154964569),
+UInt256(5478630935659429587, 9367464495478621099, 10304021262320285842, 8286497073060546808),
+UInt256(6848288669574286984, 7097644600920888470, 8268340559472969399, 1134749304470907701),
+UInt256(8560360836967858730, 8872055751151110588, 1112053662486435940, 15253494685870798339),
+UInt256(5350225523104911706, 10156720862896832021, 9918405575908798271, 310062141814473154),
+UInt256(6687781903881139633, 3472529041766264218, 17009692988313385742, 14222635732550255154),
+UInt256(8359727379851424541, 8952347320635218177, 12038744198536956370, 8554922628833043135),
+UInt256(5224829612407140338, 7901060084610705313, 606686096444515875, 9958512661448039863),
+UInt256(6531037015508925423, 652953068908605833, 5370043638983032748, 7836454808382661925),
+UInt256(8163796269386156778, 14651249391417921003, 11324240567156178839, 9795568510478327406),
+UInt256(5102372668366347986, 13768716888063588531, 4771807345258917822, 13039759346690036485),
+]
+
+private let bid_multipliers1_binary80_117: [UInt256] = [
+UInt256(6377965835457934983, 7987524073224709856, 1353073163146259374, 7076327146507769798),
+UInt256(7972457294322418729, 5372719073103499416, 1691341453932824217, 18068780969989488056),
+UInt256(4982785808951511705, 14887164466758156895, 1057088408708015136, 4375459078602348179),
+UInt256(6228482261189389632, 4773897528165532406, 15156418566167182632, 5469323848252935223),
+UInt256(7785602826486737040, 5967371910206915508, 9722151170854202482, 6836654810316169029),
+UInt256(4866001766554210650, 3729607443879322192, 15299716518638652359, 8884595274874993547),
+UInt256(6082502208192763312, 13885381341703928549, 677901574588763833, 6494058075166354030),
+UInt256(7603127760240954140, 17356726677129910686, 5459062986663342695, 12729258612385330442),
+UInt256(4751954850150596338, 1624582136351418370, 17246972421946752896, 14873315660381913382),
+UInt256(5939943562688245422, 11254099707294048771, 12335343490578665313, 144900501767840112),
+UInt256(7424929453360306778, 4844252597262785156, 10807493344795943737, 4792811645637188043),
+UInt256(4640580908350191736, 7639343891716628626, 15978055377352240643, 14524722324591712287),
+UInt256(5800726135437739670, 9549179864645785783, 10749197184835524996, 13544216887312252455),
+UInt256(7250907669297174588, 2713102793952456421, 8824810462617018341, 16930271109140315569),
+UInt256(9063634586621468235, 3391378492440570526, 15642699096698660831, 7327780831143230749),
+UInt256(5664771616638417646, 18260512622271214243, 5165000917009275115, 11497392047105601074),
+UInt256(7080964520798022058, 13602268740984241996, 1844565127834205990, 9760054040454613439),
+UInt256(8851205650997527573, 7779463889375526687, 2305706409792757488, 2976695513713490990),
+UInt256(5532003531873454733, 7168007940073398131, 8358595533761555286, 1860434696070931869),
+UInt256(6915004414841818416, 13571695943519135568, 5836558398774556203, 11548915406943440644),
+UInt256(8643755518552273020, 16964619929398919460, 7295697998468195254, 9824458240251912901),
+UInt256(5402347199095170638, 1379515419019548854, 13783183285897397842, 1528600381730057659),
+UInt256(6752933998868963297, 10947766310629211876, 8005607070516971494, 11134122514017347882),
+UInt256(8441167498586204121, 18296393906713902749, 10007008838146214368, 4694281105666909044),
+UInt256(5275729686616377576, 4517717164055107362, 8560223533055077932, 2933925691041818153),
+UInt256(6594662108270471970, 5647146455068884203, 1476907379464071607, 3667407113802272691),
+UInt256(8243327635338089962, 16282305105690881061, 15681192279612253220, 18419316947535004576),
+UInt256(5152079772086306226, 14788126709484188567, 12106588183971352215, 2288701055354602052),
+UInt256(6440099715107882783, 9261786350000459901, 10521549211536802364, 16695934374475416277),
+UInt256(8050124643884853479, 6965546919073186972, 17763622532848390860, 2423173894384718730),
+UInt256(5031327902428033424, 11270995852061823714, 1878892046175468479, 10737855720845225014),
+UInt256(6289159878035041780, 14088744815077279642, 11571987094574111407, 8810633632629143364),
+UInt256(7861449847543802225, 17610931018846599553, 5241611831362863451, 6401606022359041301),
+UInt256(4913406154714876391, 4089302859138042864, 14805222440670259417, 1695160754760706861),
+UInt256(6141757693393595489, 499942555495165677, 59783977128272655, 6730636961878271480),
+UInt256(7677197116741994361, 5236614212796345000, 4686415989837728723, 3801610183920451446),
+UInt256(4798248197963746475, 14802098929066185385, 2929009993648580452, 70163355736588202),
+UInt256(5997810247454683094, 13890937642905343827, 8272948510488113469, 87704194670735252),
+UInt256(7497262809318353868, 8140300016776903976, 5729499619682753932, 4721316261765806969),
+UInt256(4685789255823971167, 14311059547340340793, 3580937262301721207, 12174194700458405164),
+UInt256(5857236569779963959, 13277138415748038087, 9087857596304539413, 10606057357145618551),
+UInt256(7321545712224954949, 11984737001257659705, 6748135976953286362, 17869257714859411093),
+UInt256(9151932140281193687, 1145863196289910919, 13046855989618995857, 13113200106719488058),
+UInt256(5719957587675746054, 7633693525322276180, 15071814021152954267, 1278221039058598180),
+UInt256(7149946984594682568, 318744869798069418, 393023452731641217, 15432834354105411437),
+UInt256(8937433730743353210, 398431087247586772, 9714651352769327330, 5455984887349600584),
+UInt256(5585896081714595756, 4860705447957129636, 15295029132335605389, 8021676573020888269),
+UInt256(6982370102143244695, 6075881809946412046, 672042341709955120, 14638781734703498241),
+UInt256(8727962627679055869, 2983166244005627153, 10063424963992219708, 18298477168379372801),
+UInt256(5454976642299409918, 4170321911717210922, 17818855648563607078, 2213176193382332193),
+]
+
+private let bid_multipliers1_binary80_118: [UInt256] = [
+UInt256(6818720802874262397, 14436274426501289461, 13050197523849733039, 11989842278582691049),
+UInt256(8523401003592827997, 4210284977844448115, 2477688849530002587, 10375616829800975907),
+UInt256(5327125627245517498, 4937271120366474023, 17689456595452109281, 4178917509411915990),
+UInt256(6658907034056896872, 15394960937312868337, 17500134725887748697, 9835332905192282891),
+UInt256(8323633792571121091, 796957097931533806, 8040110352077522159, 16905852149917741518),
+UInt256(5202271120356950681, 16638999250703066293, 413382951621063445, 17483686621339670305),
+UInt256(6502838900446188352, 6963691008096669154, 5128414707953717211, 8019550221392424169),
+UInt256(8128548625557735440, 8704613760120836442, 15633890421796922322, 5412751758313142307),
+UInt256(5080342890973584650, 5440383600075522776, 14382867532050464355, 7994655867373101846),
+UInt256(6350428613716980812, 16023851536949179278, 17978584415063080444, 5381633815788989403),
+UInt256(7938035767146226016, 1583070347476922482, 13249858481974074747, 6727042269736236754),
+UInt256(4961272354466391260, 989418967173076551, 12892847569661184621, 1898558409371454020),
+UInt256(6201590443082989075, 1236773708966345689, 11504373443649092872, 6984884030141705428),
+UInt256(7751988053853736343, 15381025191490095824, 545408749279202378, 8731105037677131785),
+UInt256(4844992533658585214, 16530669772322391746, 340880468299501486, 10068626666975595270),
+UInt256(6056240667073231518, 11439965178548213874, 9649472622229152666, 3362411296864718279),
+UInt256(7570300833841539398, 5076584436330491535, 2838468740931665024, 13426386157935673657),
+UInt256(4731438021150962123, 17007923327988720921, 8691571990723372496, 8391491348709796036),
+UInt256(5914297526438702654, 16648218141558513247, 15476151006831603524, 10489364185887245045),
+UInt256(7392871908048378318, 11586900640093365751, 14733502740112116501, 13111705232359056306),
+UInt256(4620544942530236449, 2630126881630965690, 16125968240211154669, 10500658779438104143),
+UInt256(5775681178162795561, 7899344620466095017, 10934088263409167528, 17737509492725018083),
+UInt256(7219601472703494451, 14485866794010006675, 18279296347688847315, 3725142792196720988),
+UInt256(9024501840879368064, 13495647474085120440, 18237434416183671240, 44742471818513330),
+UInt256(5640313650549605040, 8434779671303200275, 11398396510114794525, 27964044886570832),
+UInt256(7050392063187006300, 10543474589129000344, 9636309619216105252, 4646641074535601443),
+UInt256(8812990078983757875, 13179343236411250430, 12045387024020131565, 5808301343169501804),
+UInt256(5508118799364848672, 5931246513543337567, 2916680871585194324, 5936031348694632580),
+UInt256(6885148499206060840, 7414058141929171958, 17480909144763656617, 7420039185868290725),
+UInt256(8606435624007576050, 9267572677411464948, 12627764394099794963, 13886735000762751310),
+UInt256(5379022265004735031, 10403918941809553496, 17115724783167147660, 6373366366263025617),
+UInt256(6723777831255918789, 8393212658834553967, 2947911905249382959, 7966707957828782021),
+UInt256(8404722289069898486, 15103201841970580362, 17519947936843892411, 5346698928858589622),
+UInt256(5252951430668686554, 4827815132804224822, 15561653478954820661, 1035843821322924562),
+UInt256(6566189288335858192, 15258140952860056836, 10228694811838750018, 5906490795081043606),
+UInt256(8207736610419822741, 625932117365519429, 12785868514798437522, 16606485530706080316),
+UInt256(5129835381512389213, 2697050582567143595, 10297010830962717403, 14990739475118688101),
+UInt256(6412294226890486516, 7982999246636317398, 8259577520276008850, 14126738325470972223),
+UInt256(8015367783613108145, 9978749058295396748, 1101099863490235255, 8435050869983939470),
+UInt256(5009604864758192590, 17765933207503092727, 9911559451536172842, 12189435821381044025),
+UInt256(6262006080947740738, 12984044472524090101, 7777763295992828149, 6013422739871529223),
+UInt256(7827507601184675923, 7006683553800336818, 14333890138418423090, 12128464443266799433),
+UInt256(4892192250740422452, 2073334211911516559, 13570367354938902335, 12191976295469137550),
+UInt256(6115240313425528065, 2591667764889395699, 12351273175246240015, 10628284350909034033),
+UInt256(7644050391781910081, 7851270724539132528, 10827405450630412115, 8673669420208904637),
+UInt256(4777531494863693800, 16436259248905427590, 6767128406644007572, 3115200378416871446),
+UInt256(5971914368579617251, 2098579987422232871, 17682282545159785273, 3894000473021089308),
+UInt256(7464892960724521563, 16458283039559954801, 17491167163022343687, 9479186609703749539),
+UInt256(4665558100452825977, 7980583890511277799, 4014450449247882948, 12842020658705925318),
+UInt256(5831947625566032471, 14587415881566485153, 406377043132465781, 16052525823382406647),
+]
+
+private let bid_multipliers1_binary80_119: [UInt256] = [
+UInt256(7289934531957540589, 13622583833530718537, 5119657322342970131, 6230599223945844597),
+UInt256(9112418164946925737, 3193171736631234459, 11011257671356100568, 3176563011504917842),
+UInt256(5695261353091828585, 13524947381462991297, 4576193035383868903, 1985351882190573652),
+UInt256(7119076691364785732, 3071126171546575409, 10331927312657224032, 16316747908020380776),
+UInt256(8898845864205982165, 3838907714433219261, 17526595159248917945, 1949190811315924354),
+UInt256(5561778665128738853, 4705160330734455990, 13259964983744267667, 12747459303140922482),
+UInt256(6952223331410923566, 10493136431845457892, 7351584192825558776, 11322638110498765198),
+UInt256(8690279164263654458, 3893048502952046557, 9189480241031948470, 14153297638123456497),
+UInt256(5431424477664784036, 7044841332772417002, 8049268159858661746, 4234125005399772407),
+UInt256(6789280597080980045, 8806051665965521253, 838213162968551374, 14516028293604491317),
+UInt256(8486600746351225056, 15619250600884289470, 5659452472138077122, 8921663330150838338),
+UInt256(5304125466469515660, 9762031625552680918, 17372215850368461913, 10187725599771661865),
+UInt256(6630156833086894575, 12202539531940851148, 12491897776105801583, 17346343018141965235),
+UInt256(8287696041358618219, 10641488396498676031, 15614872220132251979, 17071242754250068640),
+UInt256(5179810025849136387, 4345087238597978567, 16676824165223739343, 8363683712192598948),
+UInt256(6474762532311420484, 819673029820085305, 16234344188102286275, 5842918621813360781),
+UInt256(8093453165389275605, 1024591287275106632, 6457872179845694132, 2691962258839313072),
+UInt256(5058408228368297253, 2946212563760635597, 4036170112403558832, 10905848448629346478),
+UInt256(6323010285460371566, 8294451723128182400, 9656898658931836444, 13632310560786683098),
+UInt256(7903762856825464458, 1144692617055452192, 12071123323664795555, 17040388200983353872),
+UInt256(4939851785515915286, 5327118904087045524, 7544452077290497222, 8344399616400902218),
+UInt256(6174814731894894107, 15882270666963582713, 9430565096613121528, 1207127483646351965),
+UInt256(7718518414868617634, 15241152315277090487, 16399892389193789814, 1508909354557939956),
+UInt256(4824074009292886021, 14137406215475569458, 17167461770887200489, 14778126401880876185),
+UInt256(6030092511616107527, 3836699714062298111, 12235955176754224804, 4637599947068931519),
+UInt256(7537615639520134409, 184188624150484735, 10683257952515393101, 5796999933836164398),
+UInt256(4711009774700084005, 11644332936162522719, 13594565247963202544, 5928967967861296701),
+UInt256(5888762218375105007, 720358114920989687, 12381520541526615276, 7411209959826620876),
+UInt256(7360952772968881258, 14735505698933400821, 10865214658480881191, 9264012449783276095),
+UInt256(9201190966211101573, 9196010086811975218, 18193204341528489393, 6968329543801707215),
+UInt256(5750744353881938483, 8053349313471178463, 15982438731882693774, 15884421010944536769),
+UInt256(7188430442352423104, 5455000623411585175, 15366362396425979314, 10632154226825895154),
+UInt256(8985538052940528880, 6818750779264481469, 14596266977105086239, 4066820746677593134),
+UInt256(5615961283087830550, 4261719237040300918, 11428509869904372851, 9459291994314577565),
+UInt256(7019951603859788187, 14550521083155151956, 5062265300525690256, 7212428974465834052),
+UInt256(8774939504824735234, 13576465335516552041, 6327831625657112820, 9015536218082292565),
+UInt256(5484337190515459521, 13096976853125232929, 15484109812104165272, 14858082173156208661),
+UInt256(6855421488144324402, 2536163011124377450, 5520079209848042879, 125858642735709210),
+UInt256(8569276860180405502, 12393575800760247620, 16123471049164829406, 13992381358701800225),
+UInt256(5355798037612753439, 3134298857047766859, 853797368873242571, 4133552330761237237),
+UInt256(6694747547015941798, 17752931626591872285, 14902304766373716926, 555254395024158642),
+UInt256(8368434433769927248, 12967792496385064549, 4792822902684982445, 9917440030634974110),
+UInt256(5230271521106204530, 8104870310240665343, 5301357323391807980, 8504243028360552771),
+UInt256(6537839401382755663, 907715850946055871, 2015010635812372071, 10630303785450690964),
+UInt256(8172299251728444578, 14969702868964733550, 16353821350047628801, 8676193713385975800),
+UInt256(5107687032330277861, 13967750311530346373, 5609452325352380096, 16951836116934704635),
+UInt256(6384608790412847327, 3624629834130769254, 11623501425117863025, 2743051072458829178),
+UInt256(7980760988016059158, 18365845347945625280, 5306004744542552973, 8040499859000924377),
+UInt256(4987975617510036974, 6866967324038627896, 3316252965339095608, 7331155421089271688),
+UInt256(6234969521887546217, 17807081191903060678, 4145316206673869510, 9163944276361589609),
+]
+
+private let bid_multipliers1_binary80_120: [UInt256] = [
+UInt256(7793711902359432772, 8423793434596662135, 14405017295197112696, 2231558308597211203),
+UInt256(4871069938974645482, 14488242933477689642, 15920664837139277291, 1394723942873257002),
+UInt256(6088837423718306853, 8886931629992336245, 10677459009569320805, 15578462983873734965),
+UInt256(7611046779647883566, 15720350555917808210, 17958509780389038911, 5638020674560004994),
+UInt256(4756904237279927229, 5213533079021242227, 15835754631170537223, 10441291949241084977),
+UInt256(5946130296599909036, 11128602367203940688, 15183007270535783625, 8439928918123968318),
+UInt256(7432662870749886295, 13910752959004925861, 532015014460177915, 15161597166082348301),
+UInt256(4645414294218678934, 15611749627019160519, 2638352393251305149, 7170155219587773736),
+UInt256(5806767867773348668, 10291314996919174840, 17132998546846295148, 13574380042912105074),
+UInt256(7258459834716685835, 12864143746148968551, 2969504109848317319, 16967975053640131343),
+UInt256(9073074793395857294, 11468493664258822784, 17546938192592560361, 16598282798622776274),
+UInt256(5670671745872410809, 2556122521734376336, 10966836370370350226, 3456397721498153315),
+UInt256(7088339682340513511, 7806839170595358324, 13708545462962937782, 13543869188727467452),
+UInt256(8860424602925641889, 5146862944816810001, 17135681828703672228, 7706464449054558507),
+UInt256(5537765376828526180, 14746004386578976011, 3792272115298713286, 14039912317513874875),
+UInt256(6922206721035657725, 18432505483223720014, 128654125696003704, 8326518360037567786),
+UInt256(8652758401294572157, 9205573798747486305, 9384189693974780438, 10408147950046959732),
+UInt256(5407974000809107598, 8059326633430872892, 17394333604802707534, 1893406450351961929),
+UInt256(6759967501011384498, 850786254933815308, 3296172932293832801, 11590130099794728219),
+UInt256(8449959376264230622, 10286854855522044943, 4120216165367291002, 652604569461246561),
+UInt256(5281224610165144139, 1817598266273890185, 9492664130995638732, 5019563874340667005),
+UInt256(6601530762706430173, 16107055888124526443, 16477516182171936319, 6274454842925833756),
+UInt256(8251913453383037717, 6298761804873494342, 15985209209287532495, 3231382535229904291),
+UInt256(5157445908364398573, 6242569137259627916, 5379069737377319905, 8937143112159772038),
+UInt256(6446807385455498216, 12414897440001922799, 6723837171721649881, 15783114908627102952),
+UInt256(8058509231819372770, 15518621800002403499, 3793110446224674448, 5893835580501714977),
+UInt256(5036568269887107981, 14310824643428890091, 64851019676727578, 3683647237813571861),
+UInt256(6295710337358884977, 4053472749003948901, 13916121829878073184, 13827931084121740634),
+UInt256(7869637921698606221, 9678526954682324031, 3560094232065427768, 17284913855152175793),
+UInt256(4918523701061628888, 8354922355890146471, 9142587922681974211, 10803071159470109871),
+UInt256(6148154626327036110, 10443652944862683089, 6816548884925079860, 8892152930910249434),
+UInt256(7685193282908795138, 3831194144223578053, 13132372124583737729, 11115191163637811792),
+UInt256(4803245801817996961, 7006182358567124187, 10513575587078530033, 29465449632550514),
+UInt256(6004057252272496201, 13369413966636293138, 8530283465420774637, 4648517830468076047),
+UInt256(7505071565340620252, 2876709403013202711, 1439482294921192488, 10422333306512482963),
+UInt256(4690669728337887657, 11021315413738027502, 7817205461966827161, 6513958316570301852),
+UInt256(5863337160422359571, 18388330285599922282, 548134790603758143, 12754133914140265219),
+UInt256(7329171450527949464, 18373726838572514948, 9908540525109473487, 11330981374247943619),
+UInt256(9161464313159936831, 4520414474506092069, 12385675656386841859, 9552040699382541620),
+UInt256(5725915195724960519, 9742788074207389399, 10046890294455470114, 3664182427900394561),
+UInt256(7157393994656200649, 7566799074331848845, 7946926849641949738, 13803600071730269009),
+UInt256(8946742493320250811, 14070184861342198960, 14545344580479825077, 8031128052808060453),
+UInt256(5591714058325156757, 6488022529125180398, 9090840362799890673, 7325298042218731735),
+UInt256(6989642572906445946, 12721714179833863402, 2140178416645087533, 13768308571200802573),
+UInt256(8737053216133057433, 6678770687937553444, 11898595057661135225, 3375327658718839504),
+UInt256(5460658260083160895, 15703446726029440662, 16659993947892985323, 13638794832767744450),
+UInt256(6825822825103951119, 15017622389109412924, 11601620398011455846, 12436807522532292658),
+UInt256(8532278531379938899, 14160341967959378251, 14502025497514319808, 6322637366310590015),
+UInt256(5332674082112461812, 6544370720760917455, 6757922926732755928, 3951648353944118760),
+UInt256(6665842602640577265, 8180463400951146819, 3835717639988557006, 4939560442430148449),
+]
+
+private let bid_multipliers1_binary80_121: [UInt256] = [
+UInt256(8332303253300721581, 14837265269616321428, 182961031558308353, 15397822589892461369),
+UInt256(5207689533312950988, 11579133802723894844, 9337722681578718529, 2706110091041706500),
+UInt256(6509611916641188735, 14473917253404868555, 11672153351973398161, 7994323632229521029),
+UInt256(8137014895801485919, 13480710548328697790, 9978505671539359797, 14604590558714289190),
+UInt256(5085634309875928699, 15342973120346517975, 1624880026284711969, 11433712108410124696),
+UInt256(6357042887344910874, 14567030382005759564, 15866158088138053674, 457082080230492158),
+UInt256(7946303609181138593, 8985415940652423648, 1385953536463015476, 9794724637142891005),
+UInt256(4966439755738211620, 17145100008976234540, 866220960289384672, 15345074935069082686),
+UInt256(6208049694672764526, 2984630937510741559, 1082776200361730841, 734599595126801742),
+UInt256(7760062118340955657, 12954160708743202756, 15188528305734327263, 5529935512335890081),
+UInt256(4850038823963097286, 1178821415323419867, 269458154229178731, 10373738722851013157),
+UInt256(6062548529953871607, 10696898806009050641, 14171880748068637126, 8355487385136378542),
+UInt256(7578185662442339509, 8759437489083925398, 3879792879803632696, 1220987194565697370),
+UInt256(4736366039026462193, 7780491439891147325, 16259928605159434147, 763116996603560856),
+UInt256(5920457548783077741, 14337300318291322061, 6489852701167128971, 14788954301036614782),
+UInt256(7400571935978847177, 4086567342581988864, 12724001894886299118, 13874506857868380573),
+UInt256(4625357459986779485, 14083319635182212800, 7952501184303936949, 4059880767740349955),
+UInt256(5781696824983474357, 3769091488695602288, 9940626480379921186, 9686536978102825347),
+UInt256(7227121031229342946, 9323050379296890764, 12425783100474901483, 2884799185773755876),
+UInt256(9033901289036678683, 2430440937266337647, 15532228875593626853, 17441057037499358557),
+UInt256(5646188305647924176, 17659926650287318693, 16625172074887098639, 13206503657650793050),
+UInt256(7057735382059905221, 3628164239149596751, 6946407038326709587, 11896443553636103408),
+UInt256(8822169227574881526, 9146891317364383843, 4071322779480999080, 10258868423617741356),
+UInt256(5513855767234300954, 1105121054925351998, 238733727961930473, 6411792764761088348),
+UInt256(6892319709042876192, 10604773355511465805, 9521789196807188899, 12626426974378748339),
+UInt256(8615399636303595240, 13255966694389332256, 16513922514436374028, 11171347699546047519),
+UInt256(5384624772689747025, 8284979183993332660, 10321201571522733767, 16205464349071055508),
+UInt256(6730780965862183781, 14967909998419053729, 12901501964403417209, 15645144417911431481),
+UInt256(8413476207327729727, 4874829442741653450, 2291819400222107800, 5721372467107125639),
+UInt256(5258422629579831079, 9964297429354615262, 6044073143566205279, 3575857791941953524),
+UInt256(6573028286974788849, 7843685768265881173, 16778463466312532406, 18304880295209605617),
+UInt256(8216285358718486061, 14416293228759739371, 7138021277608501796, 13657728332157231214),
+UInt256(5135178349199053788, 11316026277188531059, 2155420289291619670, 17759452244453045317),
+UInt256(6418972936498817235, 14145032846485663823, 16529333416896688300, 12975943268711530838),
+UInt256(8023716170623521544, 13069605039679691875, 16049980752693472471, 16219929085889413547),
+UInt256(5014822606639700965, 8168503149799807422, 7725394961219726342, 17054984706321965323),
+UInt256(6268528258299626206, 14822314955677147182, 433371664669882120, 12095358846047680846),
+UInt256(7835660322874532758, 9304521657741658169, 9765086617692128458, 15119198557559601057),
+UInt256(4897287701796582974, 1203640017661148451, 17632394182126050046, 14061185116902138565),
+UInt256(6121609627245728717, 10727922058931211372, 17428806709230174654, 8353109359272897398),
+UInt256(7652012034057160896, 18021588592091402120, 3339264312828166702, 1218014662236345939),
+UInt256(4782507521285725560, 11263492870057126325, 2087040195517604188, 14596317219179879924),
+UInt256(5978134401607156950, 14079366087571407906, 7220486262824393139, 18245396523974849905),
+UInt256(7472668002008946188, 8375835572609484074, 18248979865385267232, 18195059636541174477),
+UInt256(4670417501255591367, 14458269269735703354, 16017298434293179924, 11371912272838234049),
+UInt256(5838021876569489209, 13461150568742241289, 10798251006011699097, 14214890341047792561),
+UInt256(7297527345711861512, 2991380155645637899, 18109499775942011776, 3933554871027576989),
+UInt256(9121909182139826890, 3739225194557047374, 18025188701500126816, 4916943588784471236),
+UInt256(5701193238837391806, 6948701765025542513, 6654056920010191356, 3073089742990294522),
+UInt256(7126491548546739757, 17909249243136703949, 12929257168440127099, 3841362178737868153),
+]
+
+private let bid_multipliers1_binary80_122: [UInt256] = [
+UInt256(8908114435683424697, 8551503498638716225, 2326513405267995162, 190016704994947287),
+UInt256(5567571522302140435, 16873904732717667400, 12983285924360966736, 4730446459049229959),
+UInt256(6959464402877675544, 16480694897469696346, 16229107405451208420, 5913058073811537448),
+UInt256(8699330503597094431, 2154124548127568817, 11063012219959234717, 7391322592264421810),
+UInt256(5437081564748184019, 8263856870220812366, 18443597683542991458, 6925419629378957583),
+UInt256(6796351955935230024, 5718135069348627554, 13831125067573963514, 17880146573578472787),
+UInt256(8495439944919037530, 7147668836685784443, 8065534297612678585, 13126811180118315176),
+UInt256(5309649965574398456, 9078979041356003181, 2735115926794230164, 1286727959932865129),
+UInt256(6637062456967998070, 11348723801695003976, 8030580926920175609, 1608409949916081411),
+UInt256(8296328071209997588, 4962532715263979162, 10038226158650219511, 6622198455822489668),
+UInt256(5185205044506248492, 12324954983894762784, 10885577367583775098, 11056403062530137899),
+UInt256(6481506305632810615, 15406193729868453480, 13606971709479718873, 4597131791307896565),
+UInt256(8101882882041013269, 14646056143908178946, 17008714636849648591, 10358100757562258610),
+UInt256(5063676801275633293, 11459628099156305793, 15242132666458418273, 13391342001117493488),
+UInt256(6329596001594541617, 489477068663218530, 5217607777790859130, 2904119446114703147),
+UInt256(7911995001993177021, 5223532354256411066, 15745381759093349720, 12853521344498154742),
+UInt256(4944996876245735638, 5570550730623950868, 14452549617860731479, 8033450840311346714),
+UInt256(6181246095307169547, 16186560450134714393, 18065687022325914349, 5430127531961795488),
+UInt256(7726557619133961934, 15621514544241005088, 8747050722625229224, 11399345433379632264),
+UInt256(4829098511958726209, 5151760571723240276, 5466906701640768265, 7124590895862270165),
+UInt256(6036373139948407761, 11051386733081438249, 6833633377050960331, 13517424638255225611),
+UInt256(7545466424935509701, 18425919434779185715, 13153727739741088318, 12285094779391644109),
+UInt256(4715916515584693563, 13822042655950685024, 5915236828124486247, 3066498218692389664),
+UInt256(5894895644480866954, 12665867301510968376, 7394046035155607808, 17668180828647650792),
+UInt256(7368619555601083693, 6608962090033934662, 9242557543944509761, 3638481962100011874),
+UInt256(9210774444501354616, 12872888630969806232, 2329824893075861393, 9159788471052402747),
+UInt256(5756734027813346635, 8045555394356128895, 1456140558172413370, 17254082840476221477),
+UInt256(7195917534766683294, 5445258224517773214, 15655233752997680425, 12344231513740501038),
+UInt256(8994896918458354117, 16029944817501992326, 10345670154392324724, 1595231336893462585),
+UInt256(5621810574036471323, 12324558520152439156, 1854357828067815048, 10220391622413189924),
+UInt256(7027263217545589154, 10794012131763161041, 2317947285084768810, 12775489528016487405),
+UInt256(8784079021931986443, 4269143127849175493, 7509120124783348917, 6745989873165833448),
+UInt256(5490049388707491527, 362371445692040731, 6999043087203287025, 6522086679942339857),
+UInt256(6862561735884364408, 14288022362397214626, 4137117840576720877, 12764294368355312725),
+UInt256(8578202169855455510, 17860027952996518282, 14394769337575676905, 2120309905161977195),
+UInt256(5361376356159659694, 6550831452195436022, 13608416854412185969, 12854408736794705507),
+UInt256(6701720445199574617, 17411911352099070836, 7787149031160456654, 2232952865711218171),
+UInt256(8377150556499468272, 7929831134841674833, 9733936288950570817, 12014563118993798522),
+UInt256(5235719097812167670, 4956144459276046770, 17612925226662576521, 591572921730042221),
+UInt256(6544648872265209587, 15418552610949834271, 12792784496473444843, 5351152170589940680),
+UInt256(8180811090331511984, 14661504745259904935, 11379294602164418150, 2077254194810037945),
+UInt256(5113006931457194990, 9163440465787440584, 14029588153993843199, 15133341927038437428),
+UInt256(6391258664321493738, 2230928545379524922, 17536985192492303999, 14304991390370658881),
+UInt256(7989073330401867172, 12012032718579181961, 12697859453760604191, 13269553219535935697),
+UInt256(4993170831501166982, 16730892485966764534, 1018633130959295763, 15210999789851041667),
+UInt256(6241463539376458728, 11690243570603679859, 10496663450553895512, 14402063718886414179),
+UInt256(7801829424220573410, 14612804463254599824, 8509143294764981486, 18002579648608017724),
+UInt256(4876143390137858381, 13744688807961512794, 5318214559228113429, 6639926261952623174),
+UInt256(6095179237672322977, 3345802954669727280, 15871140235889917594, 12911593845868166871),
+UInt256(7618974047090403721, 8793939711764547005, 1392181221152845377, 6916120270480432781),
+]
+
+private let bid_multipliers1_binary80_123: [UInt256] = [
+UInt256(4761858779431502325, 17025427365921311638, 3175956272434222312, 15851790215118740248),
+UInt256(5952323474289377907, 7446726152119475835, 13193317377397553699, 1367993695188873694),
+UInt256(7440404342861722384, 4696721671721956890, 11879960703319554219, 15545050174268255829),
+UInt256(4650252714288576490, 2935451044826223056, 12036661458002109291, 7409813349703965942),
+UInt256(5812815892860720612, 12892685842887554628, 15045826822502636614, 4650580668702569523),
+UInt256(7266019866075900765, 16115857303609443286, 360539454418744151, 15036597872732987711),
+UInt256(9082524832594875957, 6309763574229640395, 9674046354878205997, 14184061322488846735),
+UInt256(5676578020371797473, 6249445243107219199, 3740435962585184796, 11170881335769223162),
+UInt256(7095722525464746841, 12423492572311411903, 63858934804093091, 13963601669711528952),
+UInt256(8869653156830933552, 1694307660107101166, 13914881723787280076, 12842816068712023286),
+UInt256(5543533223019333470, 1058942287566938229, 4085115058939662143, 17250132079799790362),
+UInt256(6929416528774166837, 10547049896313448594, 9718079842101965583, 16950979081322350048),
+UInt256(8661770660967708546, 17795498388819198647, 2924227765772681171, 16577037833225549656),
+UInt256(5413606663104817841, 15733872511439387058, 8745171381249007588, 8054805636552274583),
+UInt256(6767008328881022302, 5832282584017070111, 1708092189706483677, 10068507045690343229),
+UInt256(8458760411101277877, 16513725266876113446, 15970173292415268308, 17197319825540316940),
+UInt256(5286725256938298673, 12626921301011264856, 5369672289332154789, 1524952854107922280),
+UInt256(6608406571172873342, 1948593570981917358, 6712090361665193486, 6517877086062290754),
+UInt256(8260508213966091677, 11659114000582172505, 17613484988936267665, 17370718394432639250),
+UInt256(5162817633728807298, 9592789259577551768, 4090899090444085435, 3939169968879317675),
+UInt256(6453522042161009123, 2767614537617163902, 5113623863055106794, 312276442671759190),
+UInt256(8066902552701261403, 17294576227303618589, 15615401865673659300, 9613717590194474795),
+UInt256(5041814095438288377, 8503267132851067666, 12065469175259731014, 15231945530726322555),
+UInt256(6302267619297860471, 15240769934491222487, 5858464432219887960, 9816559876553127386),
+UInt256(7877834524122325589, 14439276399686640205, 2711394521847472046, 12270699845691409232),
+UInt256(4923646577576453493, 11330390759017844080, 4000464585368363981, 3057501385129742866),
+UInt256(6154558221970566867, 327930393490141388, 5000580731710454976, 8433562749839566487),
+UInt256(7693197777463208583, 14244971047144840447, 6250725914638068720, 10541953437299458108),
+UInt256(4808248610914505364, 15820635932106607135, 10824232724289874806, 6588720898312161318),
+UInt256(6010310763643131706, 1329050841423707303, 8918604886934955603, 17459273159744977455),
+UInt256(7512888454553914632, 10884685588634409937, 6536570090241306600, 17212405431253833915),
+UInt256(4695555284096196645, 6802928492896506210, 15614571352469286385, 10757753394533646197),
+UInt256(5869444105120245806, 13115346634548020667, 10294842153731832173, 18058877761594445650),
+UInt256(7336805131400307258, 7170811256330250026, 8256866673737402313, 8738539146710893351),
+UInt256(9171006414250384072, 18186886107267588341, 1097711305316977083, 15534859951816004592),
+UInt256(5731879008906490045, 11366803817042242713, 2991912575036804629, 7403444460671308918),
+UInt256(7164848761133112557, 373446716020639679, 8351576737223393690, 13865991594266524052),
+UInt256(8956060951416390696, 5078494413453187503, 5827784903101854209, 8109117455978379257),
+UInt256(5597538094635244185, 3174059008408242189, 10559894592079740736, 16597413456054956796),
+UInt256(6996922618294055231, 8579259778937690640, 17811554258527063825, 2300022746359144378),
+UInt256(8746153272867569039, 6112388705244725397, 3817698749449278165, 7486714451376318377),
+UInt256(5466345795542230649, 10737771968419035229, 4691904727619492805, 6985039541323892938),
+UInt256(6832932244427788311, 18033900978951181940, 10476566927951753910, 13342985445082254076),
+UInt256(8541165305534735389, 17930690205261589521, 13095708659939692388, 7455359769498041787),
+UInt256(5338228315959209618, 13512524387502187403, 1267288884821225886, 13882971892791051925),
+UInt256(6672785394949012023, 7667283447522958445, 15419169161308696070, 8130342829134039098),
+UInt256(8340981743686265029, 4972418290976310153, 5438903396353706376, 939556499562773065),
+UInt256(5213113589803915643, 5413604441073887797, 14928529668789536245, 587222812226733166),
+UInt256(6516391987254894554, 2155319532914971843, 4825604030704756594, 5345714533710804361),
+UInt256(8145489984068618192, 11917521452998490612, 1420319019953557838, 15905515203993281259),
+]
+
+private let bid_multipliers1_binary80_124: [UInt256] = [
+UInt256(5090931240042886370, 7448450908124056632, 10111071424325749457, 5329260984068412883),
+UInt256(6363664050053607963, 87191598300294982, 12638839280407186821, 11273262248512904008),
+UInt256(7954580062567009953, 13944047553157532440, 6575177063654207719, 256519755358966297),
+UInt256(4971612539104381221, 1797500693082375919, 4109485664783879824, 7077853874740435792),
+UInt256(6214515673880476526, 6858561884780357803, 525171062552461876, 8847317343425544740),
+UInt256(7768144592350595657, 17796574392830223061, 14491521883472741057, 11059146679281930925),
+UInt256(4855090370219122286, 4205329967877807557, 11363044186384157112, 18441181720619676588),
+UInt256(6068862962773902857, 14480034496702035255, 368747177698032679, 4604733077065044119),
+UInt256(7586078703467378572, 4264985065595380356, 14295992027404704561, 1144230327903917245),
+UInt256(4741299189667111607, 11888987702851888530, 18158367053982716158, 12244359001008418038),
+UInt256(5926623987083889509, 10249548610137472759, 13474586780623619390, 6082076714405746740),
+UInt256(7408279983854861886, 17423621781099228853, 12231547457352136333, 16825967929861959232),
+UInt256(4630174989909288679, 6278077594759630129, 9950560170058779160, 12822072965377418472),
+UInt256(5787718737386610849, 3235910975022149757, 17049886231000861854, 16027591206721773090),
+UInt256(7234648421733263561, 8656574737205075101, 7477299733468913606, 10811116971547440555),
+UInt256(9043310527166579451, 15432404439933731780, 13958310685263529912, 4290524177579524885),
+UInt256(5652069079479112157, 7339409765744888410, 17947316215144482003, 2681577610987203054),
+UInt256(7065086349348890196, 13785948225608498417, 13210773232075826695, 17187030069016167529),
+UInt256(8831357936686112745, 17232435282010623022, 2678408484812619657, 16872101567842821507),
+UInt256(5519598710428820466, 3852743023615557532, 15509063358290050998, 3627534452260681586),
+UInt256(6899498388036025582, 14039300816374222724, 939585124153012131, 13757790102180627790),
+UInt256(8624372985045031978, 8325753983613002597, 1174481405191265164, 12585551609298396834),
+UInt256(5390233115653144986, 9815282258185514527, 3039893887458234679, 17089341792666273829),
+UInt256(6737791394566431233, 3045730785877117350, 17634925414604957061, 16749991222405454383),
+UInt256(8422239243208039041, 8418849500773784592, 12820284731401420519, 7102430972724654266),
+UInt256(5263899527005024400, 16790995984052085130, 8012677957125887824, 11356548385593990772),
+UInt256(6579874408756280501, 2542000906355554797, 792475409552583972, 14195685481992488465),
+UInt256(8224843010945350626, 7789187151371831400, 5602280280368117869, 17744606852490610582),
+UInt256(5140526881840844141, 9479927988034782529, 3501425175230073668, 13396222292020325566),
+UInt256(6425658602301055176, 16461596003470866065, 8988467487464979989, 16745277865025406957),
+UInt256(8032073252876318971, 2130250930629030965, 15847270377758612891, 7096539275999594984),
+UInt256(5020045783047699356, 17472307896139002017, 12210386995312827009, 2129494038286052913),
+UInt256(6275057228809624196, 3393640796464200906, 1427925688858870049, 7273553566284954046),
+UInt256(7843821536012030245, 4242050995580251132, 11008279147928363369, 13703627976283580461),
+UInt256(4902388460007518903, 4957124881451350909, 16103546504310002914, 1647238457536155932),
+UInt256(6127985575009398629, 1584720083386800733, 6294375075105339930, 11282420108774970723),
+UInt256(7659981968761748286, 6592586122660888820, 12479654862309062817, 4879653099113937596),
+UInt256(4787488730476092678, 17955424381945219224, 17023156325797940068, 14578998233014680758),
+UInt256(5984360913095115848, 13220908440576748223, 2832201333537873469, 18223747791268350947),
+UInt256(7480451141368894810, 16526135550720935278, 17375309722204505549, 8944626683803274971),
+UInt256(4675281963355559256, 14940520737627972453, 6247882557950428064, 7896234686590740809),
+UInt256(5844102454194449071, 228906848325413950, 12421539215865422984, 9870293358238426011),
+UInt256(7305128067743061338, 14121191615688931150, 6303551982977002922, 12337866697798032514),
+UInt256(9131410084678826673, 8428117482756388129, 17102812015576029461, 6198961335392764835),
+UInt256(5707131302924266670, 16796788472791212341, 3771728482093936557, 6180193843834171974),
+UInt256(7133914128655333338, 11772613554134239618, 9326346621044808600, 12336928323220102871),
+UInt256(8917392660819166673, 5492394905813023715, 2434561239451234942, 15421160404025128589),
+UInt256(5573370413011979170, 14961961862201609581, 17662501839152879503, 5026539234088317464),
+UInt256(6966713016264973963, 9479080290897236169, 8243069243658935667, 1671488024183008926),
+UInt256(8708391270331217454, 7237164345194157307, 14915522573001057487, 15924418085510924870),
+]
+
+private let bid_multipliers1_binary80_125: [UInt256] = [
+UInt256(5442744543957010908, 18358285771028512029, 7016358598911966977, 16870290331085409900),
+UInt256(6803430679946263636, 4501113140076088420, 13382134267067346626, 7252804858574598662),
+UInt256(8504288349932829545, 5626391425095110525, 16727667833834183282, 18289378110073024136),
+UInt256(5315180218708018465, 15045709686752913838, 12760635405360058503, 16042547337223027989),
+UInt256(6643975273385023082, 4972079053158978586, 6727422219845297321, 15441498153101397082),
+UInt256(8304969091731278852, 15438470853303499040, 17632649811661397460, 5466814636094582641),
+UInt256(5190605682332049283, 425672246459911092, 11020406132288373412, 12640131184413889959),
+UInt256(6488257102915061603, 14367148363357052577, 13775507665360466765, 15800163980517362448),
+UInt256(8110321378643827004, 13347249435768927818, 3384326526418419745, 5915146920364539348),
+UInt256(5068950861652391877, 17565402934210355694, 6726890097438900244, 15226181871296306853),
+UInt256(6336188577065489847, 8121695612480780905, 17631984658653401114, 585983265410831950),
+UInt256(7920235721331862309, 5540433497173588228, 8204922768034587680, 9955851118618315745),
+UInt256(4950147325832413943, 5768613944947186594, 14351448766876393108, 6222406949136447341),
+UInt256(6187684157290517429, 2599081412756595339, 8715938921740715577, 7778008686420559176),
+UInt256(7734605196613146786, 7860537784373132078, 6283237633748506567, 14334196876453086874),
+UInt256(4834128247883216741, 9524522133660595452, 17762081576374980316, 15876402075424261152),
+UInt256(6042660309854020926, 16517338685503132220, 3755857896759173780, 1398758520570774824),
+UInt256(7553325387317526158, 11423301320024139467, 4694822370948967225, 1748448150713468530),
+UInt256(4720828367073453849, 2527877306587699263, 628420972629410563, 12621995140264387592),
+UInt256(5901035458841817311, 7771532651662011982, 14620584271068926916, 11165807906903096585),
+UInt256(7376294323552271639, 5102729796150127074, 9052358301981382837, 13957259883628870732),
+UInt256(9220367904440339549, 1766726226760270939, 2092075840621952739, 3611516799253924702),
+UInt256(5762729940275212218, 3410046900938863288, 17448448464884578125, 18398099064029560603),
+UInt256(7203412425344015272, 13485930663028354919, 3363816507396171041, 9162565774754787042),
+UInt256(9004265531680019090, 16857413328785443648, 18039828689527377513, 16064893236870871706),
+UInt256(5627665957300011931, 15147569348918290184, 11274892930954610946, 3123029245403212961),
+UInt256(7034582446625014914, 14322775667720474826, 14093616163693263682, 13127158593608792009),
+UInt256(8793228058281268643, 8680097547795817725, 8393648167761803795, 7185576205156214203),
+UInt256(5495767536425792902, 3119217958158692126, 7551873114064821324, 2185142119008939925),
+UInt256(6869709420532241127, 13122394484553140966, 216469355726250847, 2731427648761174906),
+UInt256(8587136775665301409, 11791307087264038303, 9493958731512589366, 17249342616233632344),
+UInt256(5366960484790813381, 452037901898942083, 12851253234836450210, 6169153116718632311),
+UInt256(6708700605988516726, 5176733395801065508, 11452380525118174858, 16934813432753066197),
+UInt256(8385875757485645907, 15694288781606107693, 14315475656397718573, 11945144754086556938),
+UInt256(5241172348428528692, 7503087479290123356, 11253015294462268060, 9771558480517792039),
+UInt256(6551465435535660865, 9378859349112654195, 14066269118077835075, 12214448100647240048),
+UInt256(8189331794419576081, 16335260204818205648, 12971150379169905940, 10656374107381662156),
+UInt256(5118332371512235051, 3292008600370296674, 8106968986981191212, 15883605853968314656),
+UInt256(6397915464390293813, 17950068805745034555, 910339196871713208, 1407763243750841703),
+UInt256(7997394330487867267, 8602527951899129481, 14972982051371805222, 1759704054688552129),
+UInt256(4998371456554917042, 3070736960723261974, 2440584754466296407, 14934873089462508793),
+UInt256(6247964320693646302, 13061793237758853275, 12274102979937646317, 14056905343400748087),
+UInt256(7809955400867057878, 7103869510343790786, 10730942706494669993, 3736073623968771397),
+UInt256(4881222125541911173, 18274976499247032953, 11318525209986556649, 13864261061048951883),
+UInt256(6101527656927388967, 9008662568776627480, 313098457201032100, 3495268271029026142),
+UInt256(7626909571159236209, 6649142192543396446, 391373071501290125, 4369085338786282677),
+UInt256(4766818481974522630, 15684928916408092538, 14079666224970470040, 5036521345955120625),
+UInt256(5958523102468153288, 10382789108655339865, 8376210744358311742, 6295651682443900782),
+UInt256(7448153878085191610, 12978486385819174831, 15081949448875277581, 17092936639909651785),
+UInt256(4655096173803244756, 12723240009564372173, 16343747433188130344, 12988928409157226318),
+]
+
+private let bid_multipliers1_binary80_126: [UInt256] = [
+UInt256(5818870217254055945, 15904050011955465217, 6594626236202999218, 16236160511446532897),
+UInt256(7273587771567569932, 6045004459662167809, 12854968813681136927, 11071828602453390313),
+UInt256(9091984714459462415, 7556255574577709762, 2233652961819257447, 9228099734639349987),
+UInt256(5682490446537164009, 11640188761752150457, 6007719119564423808, 12685091361790675598),
+UInt256(7103113058171455012, 715177896908024359, 12121334917882917664, 15856364202238344498),
+UInt256(8878891322714318765, 893972371135030449, 10539982628926259177, 1373711179088379006),
+UInt256(5549307076696449228, 2864575741173087982, 18116704189147381745, 12387784532998706639),
+UInt256(6936633845870561535, 3580719676466359978, 13422508199579451374, 1649672610966219587),
+UInt256(8670792307338201918, 18310957650865113685, 7554763212619538409, 11285462800562550291),
+UInt256(5419245192086376199, 6832662513363308149, 7027570017100905458, 135885222710512076),
+UInt256(6774056490107970249, 3929142123276747282, 13396148539803519726, 9393228565242915903),
+UInt256(8467570612634962811, 9523113672523322007, 7521813637899623850, 2518163669698869071),
+UInt256(5292231632896851757, 3646103036113382302, 11618662551328346762, 6185538311989181073),
+UInt256(6615289541121064696, 9169314813569115782, 5299956152305657644, 16955294926841252150),
+UInt256(8269111926401330870, 11461643516961394727, 15848317227236847864, 2747374584842013571),
+UInt256(5168194954000831794, 2551841179673483800, 16822727294664111771, 1717109115526258482),
+UInt256(6460243692501039742, 12413173511446630559, 2581665044620588097, 15981444449689986814),
+UInt256(8075304615626299678, 6293094852453512390, 17062139361057898834, 6141747506830319806),
+UInt256(5047065384766437298, 17768242338065608956, 6052151082233798867, 8450278210196337783),
+UInt256(6308831730958046623, 12986930885727235387, 7565188852792248584, 5951161744318034324),
+UInt256(7886039663697558279, 11621977588731656330, 4844800047562922826, 7438952180397542905),
+UInt256(4928774789810973924, 14181265020598367062, 7639686048154214670, 9261031131175852220),
+UInt256(6160968487263717405, 17726581275747958828, 326235523337992530, 2352916877115039467),
+UInt256(7701210609079646757, 8323168539402784823, 407794404172490662, 12164518133248575142),
+UInt256(4813256630674779223, 7507823346340434466, 7172400530248888520, 2991137814852971560),
+UInt256(6016570788343474029, 4773093164498155178, 18188872699665886458, 3738922268566214449),
+UInt256(7520713485429342536, 10578052474050081877, 13512718837727582264, 13897024872562543870),
+UInt256(4700445928393339085, 6611282796281301173, 10751292282793432867, 8685640545351589919),
+UInt256(5875557410491673856, 12875789513779014370, 18050801371919178988, 6245364663262099494),
+UInt256(7344446763114592320, 16094736892223767963, 13340129678044197927, 7806705829077624368),
+UInt256(9180558453893240401, 1671677041570158338, 12063476079127859505, 5146696267919642556),
+UInt256(5737849033683275250, 12574013197049818721, 12151358567882300094, 14745900213518246357),
+UInt256(7172311292104094063, 6494144459457497594, 1354140154570711406, 9209003230043032139),
+UInt256(8965389115130117579, 3505994555894484088, 10916047230068165066, 2287882000699014365),
+UInt256(5603368196956323486, 18332147661929910219, 6822529518792603166, 6041612268864271882),
+UInt256(7004210246195404358, 13691812540557611966, 3916475880063366053, 16775387372935115661),
+UInt256(8755262807744255448, 7891393638842239149, 14118966886933983375, 7134176160886730864),
+UInt256(5472039254840159655, 4932121024276399468, 11130197313547433561, 11376389128195288646),
+UInt256(6840049068550199569, 1553465261918111431, 13912746641934291952, 385428354961947096),
+UInt256(8550061335687749461, 6553517595825027193, 12779247283990477036, 481785443702433869),
+UInt256(5343788334804843413, 6401791506604335948, 1069500524852966291, 9524487939168796977),
+UInt256(6679735418506054266, 12613925401682807839, 1336875656066207864, 7293923905533608317),
+UInt256(8349669273132567833, 6544034715248733990, 15506152625364923542, 9117404881917010396),
+UInt256(5218543295707854895, 15619236743098928504, 5079659372425689310, 1086692032770743593),
+UInt256(6523179119634818619, 14912359910446272726, 6349574215532111637, 10581737077818205300),
+UInt256(8153973899543523274, 14028763869630453003, 17160339806269915354, 17838857365700144528),
+UInt256(5096233687214702046, 13379663436946421031, 8419369369705003144, 15760971871989978234),
+UInt256(6370292109018377558, 7501207259328250481, 5912525693703866027, 1254470766277921177),
+UInt256(7962865136272971948, 153137037305537293, 12002343135557220437, 15403146513129565183),
+UInt256(4976790710170607467, 9319082685170736616, 9807307468936956725, 11932809579919672192),
+]
+
+private let bid_multipliers1_binary80_127: [UInt256] = [
+UInt256(6220988387713259334, 7037167338036032866, 12259134336171195907, 1080953919617426527),
+UInt256(7776235484641574167, 18019831209399816891, 6100545883359219075, 15186250454803946871),
+UInt256(4860147177900983854, 18179923533515967413, 1506998167885817970, 7185563525038772843),
+UInt256(6075183972376229818, 13501532380040183458, 6495433728284660366, 18205326443153241861),
+UInt256(7593979965470287273, 7653543438195453514, 17342664197210601266, 13533286017086776518),
+UInt256(4746237478418929545, 16312679694940628206, 15450851141684013695, 13069989779106623228),
+UInt256(5932796848023661932, 6555791563393621546, 10090191890250241311, 11725801205455891131),
+UInt256(7415996060029577415, 8194739454242026933, 3389367825958025831, 10045565488392476010),
+UInt256(4634997537518485884, 12039241186542348689, 4424197900437460096, 13196007457886379362),
+UInt256(5793746921898107355, 15049051483177935861, 10141933393974213024, 16495009322357974203),
+UInt256(7242183652372634194, 14199628335545031922, 17289102760895154185, 2172017579237916137),
+UInt256(9052729565465792743, 8526163382576514095, 12388006414264166923, 7326707992474783075),
+UInt256(5657955978416120464, 12246381141751403165, 14660033036556186183, 2273349486083045470),
+UInt256(7072444973020150580, 15307976427189253957, 4489983240413069016, 16676744912885970550),
+UInt256(8840556216275188226, 688226460277015830, 10224165068943724175, 2399187067397911571),
+UInt256(5525347635171992641, 5041827556100522798, 1778417149662439705, 8417020944764776588),
+UInt256(6906684543964990801, 10913970463553041401, 11446393473932825439, 15132962199383358639),
+UInt256(8633355679956238501, 18254149097868689656, 472933787133868087, 14304516730801810395),
+UInt256(5395847299972649063, 13714686195381624987, 295583616958667554, 15857851984392213353),
+UInt256(6744809124965811329, 12531671725799643329, 14204537576480498155, 10598942943635490883),
+UInt256(8431011406207264162, 1829531601967390450, 3920613915318458982, 8636992661116975699),
+UInt256(5269382128879540101, 5755143269657006935, 7062069715501424768, 786434394770721908),
+UInt256(6586727661099425126, 11805615105498646573, 4215901125949393056, 983042993463402385),
+UInt256(8233409576374281408, 5533646845018532408, 9881562425864129224, 1228803741829252982),
+UInt256(5145880985233925880, 3458529278136582755, 6175976516165080765, 768002338643283114),
+UInt256(6432351231542407350, 4323161597670728444, 3108284626778963052, 5571688941731491796),
+UInt256(8040439039428009187, 14627324033943186363, 3885355783473703815, 6964611177164364745),
+UInt256(5025274399642505742, 6836234512000797525, 122504355457370932, 11270411013368809822),
+UInt256(6281592999553132177, 17768665176855772714, 4764816462749101569, 14088013766711012277),
+UInt256(7851991249441415222, 8375773415787552180, 15179392615291152770, 3774959153106601634),
+UInt256(4907494530900884514, 623172366439832209, 263748347702194673, 6971035489119013926),
+UInt256(6134368163626105642, 10002337494904566069, 4941371453055131245, 13325480379826155311),
+UInt256(7667960204532632053, 3279549831775931778, 10788400334746301961, 2821792419500530426),
+UInt256(4792475127832895033, 4355561654073651313, 11354436227643826629, 13292835308256301277),
+UInt256(5990593909791118791, 10056138086019452046, 357987229272619575, 2780986080038212884),
+UInt256(7488242387238898489, 7958486589096927153, 9670856073445550276, 17311290655329929816),
+UInt256(4680151492024311555, 16503269164254049230, 17573500091971938683, 1596184622726430327),
+UInt256(5850189365030389444, 16017400436890173634, 12743503078110147545, 15830288833690201621),
+UInt256(7312736706287986806, 1575006472403165427, 6706006810782908624, 5952802986830588314),
+UInt256(9140920882859983507, 11192130127358732592, 3770822495051247876, 7441003733538235393),
+UInt256(5713075551787489692, 4689238320385513918, 2356764059407029922, 13873999370316172929),
+UInt256(7141344439734362115, 5861547900481892397, 12169327111113563211, 8119127176040440353),
+UInt256(8926680549667952644, 2715248857174977593, 1376600833609790302, 5537222951623162537),
+UInt256(5579175343542470402, 10920402572589136803, 12389590567074588698, 17295822400046640298),
+UInt256(6973969179428088003, 4427131178881645196, 10875302190415847969, 12396405963203524564),
+UInt256(8717461474285110004, 922227955174668591, 13594127738019809962, 1660449398722241993),
+UInt256(5448413421428193752, 9799764508838943677, 15413858863903463082, 5649466892628789150),
+UInt256(6810516776785242190, 12249705636048679597, 5432265524597165140, 16285205652640762245),
+UInt256(8513145970981552738, 6088760008206073688, 11402017924173844330, 1909762992091401190),
+UInt256(5320716231863470461, 8417161023556183959, 7126261202608652706, 5805287888484513648),
+]
+
+private let bid_multipliers1_binary80_128: [UInt256] = [
+UInt256(6650895289829338076, 15133137297872617853, 4296140484833427978, 16479981897460417868),
+UInt256(8313619112286672596, 469677548631220700, 9981861624469172877, 11376605334970746527),
+UInt256(5196011945179170372, 9516920504749288745, 15462035552148008856, 9416221343570410531),
+UInt256(6495014931473962965, 11896150630936610932, 5492486384902847358, 11770276679463013164),
+UInt256(8118768664342453707, 1035130233388599953, 6865607981128559198, 5489473812473990647),
+UInt256(5074230415214033566, 16787857460363732634, 15820220034273819258, 17265979188078407867),
+UInt256(6342788019017541958, 11761449788599889985, 10551903005987498265, 12359101948243234025),
+UInt256(7928485023771927448, 5478440198895086673, 17801564775911760736, 1613819380021878819),
+UInt256(4955303139857454655, 3424025124309429171, 4208448957303768604, 1008637112513674262),
+UInt256(6194128924821818318, 18115089460668950176, 648875178202322851, 1260796390642092828),
+UInt256(7742661156027272898, 13420489788981411912, 811093972752903563, 15411053543584779747),
+UInt256(4839163222517045561, 12999492136540770349, 506933732970564727, 7326065455526793390),
+UInt256(6048954028146306952, 2414307115393799224, 5245353184640593813, 4545895800981103833),
+UInt256(7561192535182883690, 3017883894242249030, 6556691480800742266, 10294055769653767695),
+UInt256(4725745334489302306, 6497863452328793547, 17932990230782627628, 11045470874460992714),
+UInt256(5907181668111627882, 17345701352265767742, 17804551770050896631, 13806838593076240892),
+UInt256(7383977085139534853, 12458754653477433870, 13032317675708844981, 12646862222917913211),
+UInt256(4614985678212209283, 10092564667637090121, 3533512528890640209, 10210131898537389709),
+UInt256(5768732097765261604, 8004019816118974747, 9028576679540688165, 17374350891599125040),
+UInt256(7210915122206577005, 10005024770148718434, 6674034830998472303, 7882880559216742588),
+UInt256(9013643902758221256, 17117966981113285946, 17565915575602866187, 5241914680593540331),
+UInt256(5633527439223888285, 10698729363195803716, 15590383253179179271, 970353666157268755),
+UInt256(7041909299029860356, 17985097722422142550, 1041234992764422472, 15048000137978749656),
+UInt256(8802386623787325446, 4034628079318126571, 10524915777810303899, 363256098763885453),
+UInt256(5501491639867078403, 16356700604855992819, 4272229351917745984, 16367936126223286073),
+UInt256(6876864549833848004, 15834189737642603120, 728600671469794577, 2013176084069555975),
+UInt256(8596080687292310006, 1345993098343702284, 910750839337243221, 7128156123514332872),
+UInt256(5372550429557693753, 14676303741746977639, 9792591311440552821, 6760940586410151997),
+UInt256(6715688036947117192, 4510321621901558337, 7629053120873303122, 13062861751440077900),
+UInt256(8394610046183896490, 5637902027376947921, 14148002419519016807, 7105205152445321567),
+UInt256(5246631278864935306, 8135374785537980355, 1924972484558303648, 11358282247919407836),
+UInt256(6558289098581169133, 945846445067699635, 16241273660980043272, 14197852809899259795),
+UInt256(8197861373226461416, 5793994074762012448, 15689906057797666186, 17747316012374074743),
+UInt256(5123663358266538385, 3621246296726257780, 9806191286123541366, 15703758526161184619),
+UInt256(6404579197833172981, 9138243889335210129, 12257739107654426708, 10406326120846704965),
+UInt256(8005723997291466226, 16034490880096400566, 1487115829285869673, 13007907651058381206),
+UInt256(5003577498307166391, 14633242818487638257, 14764505448585832258, 1212413254270406398),
+UInt256(6254471872883957989, 13679867504682159918, 4620573755450126610, 10738888604692783806),
+UInt256(7818089841104947487, 3264776325570536185, 14999089231167434071, 4200238719011203949),
+UInt256(4886306150690592179, 8958014231122666972, 2456901741838564438, 9542678227023084324),
+UInt256(6107882688363240224, 6585831770475945811, 3071127177298205548, 2704975746924079597),
+UInt256(7634853360454050280, 8232289713094932263, 17673967026904920647, 3381219683655099496),
+UInt256(4771783350283781425, 5145181070684332664, 17963758419456657260, 9030791329925519041),
+UInt256(5964729187854726781, 11043162356782803735, 4007953950611269959, 11288489162406898802),
+UInt256(7455911484818408476, 18415638964405892573, 398256419836699545, 9498925434581235598),
+UInt256(4659944678011505298, 2286402315898907050, 2554753271611631167, 17466043442681742009),
+UInt256(5824930847514381622, 12081374931728409620, 12416813626369314767, 17220868284924789607),
+UInt256(7281163559392977028, 5878346627805736217, 15521017032961643459, 16914399337728599105),
+UInt256(9101454449241221285, 7347933284757170272, 5566213235919890612, 16531313153733360977),
+UInt256(5688409030775763303, 6898301312186925372, 3478883272449931633, 1108698684228574803),
+]
+
+private let bid_multipliers1_binary80_129: [UInt256] = [
+UInt256(7110511288469704129, 4011190621806268811, 4348604090562414541, 5997559373713106407),
+UInt256(8888139110587130161, 9625674295685223918, 824069094775630272, 12108635235568770913),
+UInt256(5555086944116956350, 17545261480871734708, 14350101239516932632, 7567897022230481821),
+UInt256(6943858680146195438, 12708204814234892577, 17937626549396165790, 9459871277788102276),
+UInt256(8679823350182744298, 6661883980938839914, 8586975131463043526, 2601467060380352037),
+UInt256(5424889593864215186, 8775363506514162850, 9978545475591790107, 15460974968019883735),
+UInt256(6781111992330268983, 1745832346287927755, 3249809807634961826, 14714532691597466765),
+UInt256(8476389990412836228, 16017348488142073405, 17897320314825865995, 9169793827642057648),
+UInt256(5297743744008022643, 787470768234020070, 13491668205979860199, 3425278133062592078),
+UInt256(6622179680010028303, 14819396515574688800, 7641213220620049440, 18116655721610403809),
+UInt256(8277724600012535379, 13912559626040973096, 9551516525775061801, 4199075578303453146),
+UInt256(5173577875007834612, 6389506757061914233, 5969697828609413625, 14153637282508127976),
+UInt256(6466972343759793265, 7986883446327392791, 12073808304189154936, 3856988547852996258),
+UInt256(8083715429699741581, 14595290326336628893, 10480574361809055766, 4821235684816245322),
+UInt256(5052322143562338488, 11427899463174087010, 8856201985344353805, 16848330358292317039),
+UInt256(6315402679452923110, 14284874328967608763, 1846880444825666449, 7225354892583232586),
+UInt256(7894253349316153888, 8632720874354735145, 16143658611314246773, 13643379634156428637),
+UInt256(4933908343322596180, 5395450546471709466, 3172257604430322377, 10832955280561461850),
+UInt256(6167385429153245225, 6744313183089636832, 13188694042392678779, 18152880119129215217),
+UInt256(7709231786441556531, 13042077497289433944, 16485867552990848474, 18079414130484131117),
+UInt256(4818269866525972832, 5845455426592202263, 10303667220619280296, 15911319849979969852),
+UInt256(6022837333157466040, 7306819283240252829, 8267898007346712467, 1442405738765410699),
+UInt256(7528546666446832550, 9133524104050316036, 14946558527610778487, 15638065228738927086),
+UInt256(4705341666529270344, 1096766546604059619, 118227042901960746, 16691319795602911285),
+UInt256(5881677083161587930, 1370958183255074523, 13982841858909614645, 11640777707648863298),
+UInt256(7352096353951984912, 10937069765923618962, 12866866305209630403, 715914079278915410),
+UInt256(9190120442439981140, 13671337207404523703, 6860210844657262195, 14729950654380807974),
+UInt256(5743825276524988212, 17767957791482603122, 11205160805551870728, 6900376149774311032),
+UInt256(7179781595656235266, 3763203165643702287, 4783078970085062602, 8625470187217888790),
+UInt256(8974726994570294082, 13927375993909403667, 1367162694178940349, 1558465697167585179),
+UInt256(5609204371606433801, 13316296014620765195, 16995377748357695382, 3279884069943434689),
+UInt256(7011505464508042252, 2810311962993792782, 16632536167019731323, 13323227124284069170),
+UInt256(8764381830635052815, 3512889953742240978, 11567298171919888346, 12042347886927698558),
+UInt256(5477738644146908009, 9113085248729982467, 11841247375877318120, 12138153447757199503),
+UInt256(6847173305183635011, 16003042579339865988, 10189873201419259746, 15172691809696499378),
+UInt256(8558966631479543764, 15392117205747444581, 12737341501774074683, 9742492725265848415),
+UInt256(5349354144674714853, 396701216737377055, 10266681447822490629, 3783214944077461308),
+UInt256(6686692680843393566, 5107562539349109223, 8221665791350725382, 9340704698524214538),
+UInt256(8358365851054241957, 15607825211041162337, 5665396220761018824, 2452508836300492365),
+UInt256(5223978656908901223, 12060733766114420412, 15070087684044106525, 1532818022687807728),
+UInt256(6529973321136126529, 10464231189215637612, 390865531345581540, 6527708546787147564),
+UInt256(8162466651420158161, 17691975004946934919, 488581914181976925, 8159635683483934455),
+UInt256(5101541657137598851, 4139955350450752468, 7222892724004817434, 7405615311391152987),
+UInt256(6376927071421998564, 563258169636052681, 9028615905006021793, 33647102384165425),
+UInt256(7971158839277498205, 704072712045065851, 15897455899684915145, 4653744896407594685),
+UInt256(4981974274548436378, 2745888454241860109, 7630066928089378013, 14437805606323216438),
+UInt256(6227467843185545472, 12655732604657100944, 14149269678539110421, 4212198952621856836),
+UInt256(7784334803981931840, 15819665755821376180, 17686587098173888026, 9876934709204708949),
+UInt256(4865209252488707400, 9887291097388360113, 1830744899503904208, 10784770211680330997),
+UInt256(6081511565610884250, 12359113871735450141, 6900117142807268164, 13480962764600413746),
+]
+
+private let bid_multipliers1_binary80_130: [UInt256] = [
+UInt256(7601889457013605313, 6225520302814536868, 13236832446936473109, 16851203455750517183),
+UInt256(4751180910633503320, 15420165235327555302, 17496392316190071501, 12837845169057767191),
+UInt256(5938976138291879151, 828462470449892512, 12647118358382813569, 2212248406040045277),
+UInt256(7423720172864848938, 14870636143344529352, 15808897947978516961, 7376996525977444500),
+UInt256(4639825108040530586, 13905833608017718749, 9880561217486573100, 16139837874804372573),
+UInt256(5799781385050663233, 8158919973167372628, 16962387540285604280, 1728053269795914100),
+UInt256(7249726731313329041, 14810335984886603690, 2756240351647453734, 2160066587244892625),
+UInt256(9062158414141661302, 4677861925826090900, 12668672476414092975, 11923455270910891589),
+UInt256(5663849008838538313, 16758721758923470524, 17141292334613583917, 14369688571960389099),
+UInt256(7079811261048172892, 7113344143372174444, 2979871344557428281, 4127052659668322662),
+UInt256(8849764076310216115, 8891680179215218055, 3724839180696785351, 9770501843012791231),
+UInt256(5531102547693885072, 3251457102795817332, 9245553515576572700, 13024092679524076376),
+UInt256(6913878184617356340, 4064321378494771665, 11556941894470715875, 16280115849405095470),
+UInt256(8642347730771695425, 5080401723118464582, 611119312806231132, 15738458793328981433),
+UInt256(5401467331732309640, 14704466123017510123, 14217007625786058170, 613164708975837588),
+UInt256(6751834164665387050, 18380582653771887654, 13159573513805184808, 9989827923074572793),
+UInt256(8439792705831733813, 13752356280360083760, 7226094855401705202, 12487284903843215991),
+UInt256(5274870441144833633, 10901065684438746302, 4516309284626065751, 12416239083329397898),
+UInt256(6593588051431042041, 18238018123975820781, 14868758642637357997, 10908612835734359469),
+UInt256(8241985064288802552, 8962464599687612265, 4750890248014533784, 18247452063095337240),
+UInt256(5151240665180501595, 5601540374804757665, 14498521451077553375, 11404657539434585775),
+UInt256(6439050831475626994, 2390239450078559178, 4288093758564778007, 9644135905865844315),
+UInt256(8048813539344533742, 12211171349452974780, 14583489235060748317, 7443483863904917489),
+UInt256(5030508462090333589, 3020296074980721333, 18338052808767743506, 6958020424154267383),
+UInt256(6288135577612916986, 8387056112153289571, 9087507955677515670, 17920897567047610037),
+UInt256(7860169472016146233, 1260448103336836156, 6747698926169506684, 13177749921954736738),
+UInt256(4912605920010091395, 12316995110653992357, 13440683865710717485, 17459465738076486269),
+UInt256(6140757400012614244, 10784557869890102543, 2965796776856233145, 7989274117313444124),
+UInt256(7675946750015767805, 13480697337362628178, 17542304026352455143, 14598278665069193059),
+UInt256(4797466718759854878, 10731278845065336563, 15575626034897672368, 16041453193309327518),
+UInt256(5996833398449818598, 4190726519476894896, 14857846525194702557, 1605072417927107782),
+UInt256(7496041748062273247, 14461780186200894429, 125564082783826580, 6618026540836272631),
+UInt256(4685026092538920779, 15956141644016640874, 2384320560953585564, 13359638624877446203),
+UInt256(5856282615673650974, 15333491036593413188, 12203772738046757763, 16699548281096807753),
+UInt256(7320353269592063718, 9943491758886990677, 15254715922558447204, 16262749332943621787),
+UInt256(9150441586990079648, 3205992661753962539, 5233336847915895294, 1881692592469975618),
+UInt256(5719025991868799780, 2003745413596226587, 964992520733740606, 15011115925575898473),
+UInt256(7148782489835999725, 2504681766995283233, 15041298706199339470, 9540522870115097284),
+UInt256(8935978112294999656, 7742538227171491946, 4966565327467010626, 2702281550789095796),
+UInt256(5584986320184374785, 4839086391982182466, 7715789348094269545, 6300611987670572777),
+UInt256(6981232900230468481, 10660544008405115987, 421364648263061123, 12487451003015603875),
+UInt256(8726541125288085601, 17937366028933782887, 14361763865610990116, 10997627735342116940),
+UInt256(5454088203305053501, 4293324740442532448, 15893631443647950678, 16096889371443598895),
+UInt256(6817610254131316876, 9978341943980553465, 1420295230850386732, 10897739677449722811),
+UInt256(8522012817664146095, 12472927429975691831, 6387055056990371319, 13622174596812153514),
+UInt256(5326258011040091309, 14713108671375889250, 10909438438260063930, 15431388150648677802),
+UInt256(6657822513800114137, 4556327783937697851, 4413426010970304105, 10065863151456071445),
+UInt256(8322278142250142671, 10307095748349510218, 905096495285492227, 17194014957747477210),
+UInt256(5201423838906339169, 13359463870359525742, 5177371327980820546, 8440416339378479304),
+UInt256(6501779798632923962, 2864271782667243465, 15695086196830801491, 1327148387368323322),
+]
+
+private let bid_multipliers1_binary80_131: [UInt256] = [
+UInt256(8127224748291154952, 12803711765188830140, 5783799690756338151, 15493993539492567865),
+UInt256(5079515467681971845, 8002319853243018837, 12838246843577487152, 16601274989823936772),
+UInt256(6349394334602464806, 14614585834981161451, 2212750499189695229, 2304849663570369348),
+UInt256(7936742918253081008, 9044860256871676005, 16600996179269282748, 7492748097890349589),
+UInt256(4960464323908175630, 5653037660544797503, 12681465621256995669, 13906339598036244302),
+UInt256(6200580404885219537, 16289669112535772687, 11240146008143856683, 3547866442263141665),
+UInt256(7750725506106524422, 6527028335387552147, 9438496491752432949, 18269891108111090793),
+UInt256(4844203441316577763, 17914450764899383804, 3593217298131576641, 13724524951783125698),
+UInt256(6055254301645722204, 17781377437696841851, 4491521622664470802, 3320598134446743410),
+UInt256(7569067877057152756, 3779977723411500698, 1002716009903200598, 13374119704913205071),
+UInt256(4730667423160720472, 11585858113986963744, 5238383524616888278, 3747138797143365265),
+UInt256(5913334278950900590, 14482322642483704680, 6547979405771110347, 13907295533283982389),
+UInt256(7391667848688625738, 8879531266249855042, 8184974257213887934, 12772433398177590083),
+UInt256(4619792405430391086, 10161393059833547305, 9727294929186067863, 3371084855433605898),
+UInt256(5774740506787988858, 3478369287937158323, 16770804679909972732, 18048914124574171084),
+UInt256(7218425633484986072, 13571333646776223712, 16351819831460078012, 4114398582008162239),
+UInt256(9023032041856232590, 16964167058470279641, 1993030715615545899, 5142998227510202799),
+UInt256(5639395026160145369, 5990918393116536871, 12774859243328185947, 908530882980182797),
+UInt256(7049243782700181711, 12100334009823058993, 11356888035732844529, 14970721659007392209),
+UInt256(8811554728375227139, 10513731493851435838, 361051989383891950, 4878344018477076549),
+UInt256(5507221705234516962, 4265239174443453446, 14060715548647096180, 16884023066830336555),
+UInt256(6884027131543146202, 14554921004909092616, 8352522398954094418, 2658284759828369078),
+UInt256(8605033914428932753, 8970279219281589962, 10440652998692618022, 12546227986640237155),
+UInt256(5378146196518082970, 17135639558119463486, 11137094142610274168, 3229706473222760318),
+UInt256(6722682745647603713, 12196177410794553550, 4697995641408066902, 4037133091528450398),
+UInt256(8403353432059504642, 1410163708211028225, 15095866588614859435, 14269788401265338805),
+UInt256(5252095895037190401, 5493038336059280545, 2517387590243205291, 6612774741577142801),
+UInt256(6565119868796488001, 11477983938501488585, 7758420506231394518, 3654282408544040597),
+UInt256(8206399835995610002, 512421867844697019, 14309711651216631051, 13791225047534826555),
+UInt256(5128999897497256251, 4931949685830323541, 6637726772796700455, 6313672645495572645),
+UInt256(6411249871871570314, 1553251088860516522, 12908844484423263473, 3280404788442077902),
+UInt256(8014062339839462892, 11164935897930421461, 6912683568674303533, 8712192003979985281),
+UInt256(5008788962399664307, 16201456973061289221, 6626270239635133660, 7750963011701184753),
+UInt256(6260986202999580384, 15640135197899223622, 12894523817971304979, 9688703764626480941),
+UInt256(7826232753749475481, 1103424923664477912, 6894782735609355416, 7499193687355713272),
+UInt256(4891395471093422175, 12218855623358768455, 4309239209755847135, 4686996054597320795),
+UInt256(6114244338866777719, 10661883510771072665, 774862993767421015, 1247059049819263090),
+UInt256(7642805423583472149, 8715668370036452927, 5580264760636664172, 15393881867556242574),
+UInt256(4776753389739670093, 7753135740486477031, 10405194503038996964, 397804130367875801),
+UInt256(5970941737174587616, 14303105694035484193, 8394807110371358301, 497255162959844751),
+UInt256(7463677171468234520, 17878882117544355241, 15105194906391585780, 5233254972127193843),
+UInt256(4664798232167646575, 11174301323465222026, 2523217788853659256, 12494156394434271960),
+UInt256(5830997790209558219, 9356190635904139628, 12377394272921849878, 15617695493042839950),
+UInt256(7288747237761947774, 7083552276452786631, 15471742841152312348, 10298747329448774129),
+UInt256(9110934047202434717, 18077812382420759097, 14727992533013002531, 12873434161810967662),
+UInt256(5694333779501521698, 13604475748226668388, 2287466305492044726, 5740053341918160837),
+UInt256(7117917224376902123, 7782222648428559677, 2859332881865055907, 16398438714252476854),
+UInt256(8897396530471127654, 5116092292108311692, 8185852120758707788, 15886362374388208163),
+UInt256(5560872831544454783, 17032615737849858519, 14339529612328968176, 705604447137854294),
+UInt256(6951091039430568479, 16679083653884935245, 13312725996983822316, 882005558922317867),
+]
+
+private let bid_multipliers1_binary80_132: [UInt256] = [
+UInt256(8688863799288210599, 16237168548928781153, 2805849440947614183, 1102506948652897334),
+UInt256(5430539874555131624, 17065759370721570076, 13282870946660728624, 7606595870549142690),
+UInt256(6788174843193914531, 2885455139692410979, 16603588683325910780, 9508244838186428362),
+UInt256(8485218553992393163, 17441876979897677436, 16142799835730000571, 11885306047733035453),
+UInt256(5303261596245245727, 8595330103222354446, 865877860476474549, 5122473270619453206),
+UInt256(6629076995306557159, 6132476610600555153, 10305719362450368994, 11014777606701704412),
+UInt256(8286346244133196449, 3053909744823306037, 17493835221490349147, 4545099971522354707),
+UInt256(5178966402583247780, 13437908636583036033, 13239490022645162169, 534844472987777740),
+UInt256(6473708003229059725, 16797385795728795042, 2714304473024288999, 5280241609662110079),
+UInt256(8092135004036324657, 7161674189378830090, 12616252628135137057, 1988615993650249694),
+UInt256(5057584377522702910, 16005261414430238566, 12496843911011848564, 12772100042099875819),
+UInt256(6321980471903378638, 10783204731183022400, 6397682851910034897, 15965125052624844774),
+UInt256(7902475589879223298, 4255633877124002192, 7997103564887543622, 6121348260498892255),
+UInt256(4939047243674514561, 7271457191629889274, 4998189728054714763, 17660900718093971372),
+UInt256(6173809054593143201, 13701007507964749496, 15471109196923169262, 17464439879190076310),
+UInt256(7717261318241429002, 3291201329673773159, 892142422444409962, 12607177812132819580),
+UInt256(4823288323900893126, 6668686849473496128, 7475118041668838082, 12491172151010400142),
+UInt256(6029110404876116407, 17559230598696645968, 9343897552086047603, 6390593151908224369),
+UInt256(7536388006095145509, 17337352229943419556, 11679871940107559504, 3376555421457892557),
+UInt256(4710242503809465943, 13141688152928331174, 16523291999422000498, 2110347138411182848),
+UInt256(5887803129761832429, 11815424172733026064, 11430742962422724814, 11861305959868754368),
+UInt256(7359753912202290537, 934222160634118868, 14288428703028406018, 5603260412981167152),
+UInt256(9199692390252863171, 5779463719220036489, 17860535878785507522, 16227447553081234748),
+UInt256(5749807743908039482, 1306321815298828854, 4245305896599860345, 14753840739103159622),
+UInt256(7187259679885049352, 10856274305978311875, 14530004407604601240, 4607242868596785815),
+UInt256(8984074599856311690, 13570342882472889844, 13550819491078363646, 5759053585745982269),
+UInt256(5615046624910194806, 13093150319972944056, 17692634218778753086, 17434466546373402630),
+UInt256(7018808281137743508, 7143065863111404263, 3669048699763889742, 12569711146111977479),
+UInt256(8773510351422179385, 8928832328889255328, 18421368929987025890, 6488766895785196041),
+UInt256(5483443969638862115, 17109735251624254340, 11513355581241891181, 8667165328293135430),
+UInt256(6854304962048577644, 16775483046102930021, 14391694476552363976, 15445642678793807191),
+UInt256(8567881202560722056, 2522609733919110911, 4154560040408291259, 860309274782707373),
+UInt256(5354925751600451285, 1576631083699444319, 9514129052896263892, 16678594361235049772),
+UInt256(6693657189500564106, 6582474873051693303, 7280975297692941962, 2401498877834260599),
+UInt256(8367071486875705132, 17451465628169392437, 4489533103688789548, 12225245634147601557),
+UInt256(5229419679297315708, 1683793980751094465, 5111801199019187419, 16864150558197026781),
+UInt256(6536774599121644635, 2104742475938868081, 11001437517201372178, 16468502179318895572),
+UInt256(8170968248902055793, 16465986150205748813, 18363482914929103127, 11362255687293843657),
+UInt256(5106855155563784871, 3373712316237511152, 13783019831044383406, 14018938832199734142),
+UInt256(6383568944454731088, 18052198450579052652, 17228774788805479258, 8300301503394891869),
+UInt256(7979461180568413861, 4118503989514264200, 3089224412297297457, 1152004842388839029),
+UInt256(4987163237855258663, 4879908002660109077, 1930765257685810910, 12249218072561494153),
+UInt256(6233954047319073329, 1488198984897748442, 7025142590534651542, 6088150553847091883),
+UInt256(7792442559148841661, 6471934749549573456, 18004800275023090235, 16833560229163640662),
+UInt256(4870276599468026038, 6350802227682177362, 11253000171889431397, 8215132134013581462),
+UInt256(6087845749335032547, 17161874821457497511, 4842878178007013438, 14880601185944364731),
+UInt256(7609807186668790684, 16840657508394483985, 1441911704081378894, 9377379445575680106),
+UInt256(4756129491667994178, 1302038905891776682, 12430409861119331569, 1249176135057412162),
+UInt256(5945161864584992722, 10850920669219496661, 6314640289544388653, 6173156187249153107),
+UInt256(7431452330731240903, 4340278799669595018, 12504986380357873720, 12328131252488829288),
+]
+
+private let bid_multipliers1_binary80_133: [UInt256] = [
+UInt256(4644657706707025564, 9630203277434578742, 12427302506151058979, 7705082032805518305),
+UInt256(5805822133383781955, 12037754096793223428, 6310756095834047916, 5019666522579509977),
+UInt256(7257277666729727444, 10435506602564141381, 7888445119792559895, 6274583153224387471),
+UInt256(9071597083412159305, 13044383253205176726, 14472242418168087773, 3231542923103096435),
+UInt256(5669748177132599566, 1235210505612153598, 4433465492927666954, 4325557336153129224),
+UInt256(7087185221415749457, 10767385168869967805, 14765203903014359500, 14630318707046187338),
+UInt256(8858981526769686821, 18070917479514847661, 4621446823485785663, 18287898383807734172),
+UInt256(5536863454231054263, 13600166433910473740, 5194247273892309991, 18347465517520915714),
+UInt256(6921079317788817829, 12388522023960704271, 6492809092365387489, 18322645878473756738),
+UInt256(8651349147236022287, 1650594474668716627, 3504325347029346458, 9068249292810032210),
+UInt256(5407093217022513929, 7949150574309029747, 18331104406389199200, 10279341826433658036),
+UInt256(6758866521278142411, 14548124236313675088, 18302194489559111096, 12849177283042072545),
+UInt256(8448583151597678014, 13573469276964705957, 4430999038239337254, 16061471603802590681),
+UInt256(5280364469748548759, 3871732279675553319, 5075217408113279736, 5426733733949231272),
+UInt256(6600455587185685949, 227979331167053745, 1732335741714211766, 6783417167436539089),
+UInt256(8250569483982107436, 4896660182386205085, 6777105695570152611, 17702643496150449669),
+UInt256(5156605927488817147, 12283784650846153986, 6541534068945039334, 8758309175880337092),
+UInt256(6445757409361021434, 10743044795130304578, 17400289623036074976, 1724514432995645556),
+UInt256(8057196761701276793, 4205433957058104915, 12526989991940317912, 2155643041244556945),
+UInt256(5035747976063297995, 14157611269229785332, 5523525735749004743, 1347276900777848091),
+UInt256(6294684970079122494, 13085328068109843761, 6904407169686255928, 15519154181254473826),
+UInt256(7868356212598903118, 7133288048282528893, 13242194980535207815, 952198652858540666),
+UInt256(4917722632874314448, 18293363085458744270, 10582214872048198836, 7512653185677669772),
+UInt256(6147153291092893061, 4419959783113878722, 4004396553205472737, 9390816482097087215),
+UInt256(7683941613866116326, 10136635747319736306, 14228867728361616729, 16350206621048746923),
+UInt256(4802463508666322704, 1723711323647447287, 13504728348653398360, 3301350110514384971),
+UInt256(6003079385832903380, 2154639154559309109, 12269224417389360046, 4126687638142981214),
+UInt256(7503849232291129225, 2693298943199136387, 1501472466454536345, 14381731584533502325),
+UInt256(4689905770181955765, 13212526885567930001, 17079321356029942880, 2071053212692357097),
+UInt256(5862382212727444707, 2680600551677748790, 7514093639755264888, 2588816515865446372),
+UInt256(7327977765909305883, 17185808744879349700, 169245012839305302, 3236020644831807964),
+UInt256(9159972207386632354, 16870574912671799221, 211556266049131627, 13268397842894535763),
+UInt256(5724982629616645221, 15155795338847262417, 2438065675494401219, 5986905642595390900),
+UInt256(7156228287020806527, 5109686118276914309, 7659268112795389428, 2871946034816850721),
+UInt256(8945285358776008159, 1775421629418754982, 14185771159421624689, 3589932543521063401),
+UInt256(5590803349235005099, 8027167546027803720, 4254420956211127526, 13772922885769134386),
+UInt256(6988504186543756374, 5422273414107366746, 5318026195263909408, 7992781570356642174),
+UInt256(8735630233179695467, 16001213804488984240, 15870904780934662568, 9990976962945802718),
+UInt256(5459768895737309667, 7694915618591921198, 9919315488084164105, 6244360601841126699),
+UInt256(6824711119671637084, 5006958504812513594, 3175772323250429323, 12417136770728796277),
+UInt256(8530888899589546355, 6258698131015641992, 13193087440917812462, 10909734944983607443),
+UInt256(5331805562243466472, 1605843322671082293, 8245679650573632789, 2206898322187366748),
+UInt256(6664756952804333090, 2007304153338852866, 14918785581644428890, 7370308921161596339),
+UInt256(8330946191005416362, 11732502228528341891, 9425109940200760304, 18436258188306771231),
+UInt256(5206841369378385226, 11944499911257601586, 3584850703411781238, 11522661367691732020),
+UInt256(6508551711722981533, 5707252852217226174, 13704435416119502356, 5179954672759889217),
+UInt256(8135689639653726916, 11745752083698920622, 7907172233294602137, 6474943340949861521),
+UInt256(5084806024783579322, 16564467089166601197, 330296627381738431, 15576054634162133211),
+UInt256(6356007530979474153, 11482211824603475688, 5024556802654560943, 14858382274275278609),
+UInt256(7945009413724342692, 517706725472180898, 6280696003318201179, 13961291824416710357),
+]
+
+private let bid_multipliers1_binary80_134: [UInt256] = [
+UInt256(4965630883577714182, 9546938740274888869, 8537121020501263641, 6419964381046750021),
+UInt256(6207038604472142728, 2710301388488835278, 15283087294053967455, 12636641494735825431),
+UInt256(7758798255590178410, 3387876735611044098, 9880487080712683511, 11184115849992393884),
+UInt256(4849248909743861506, 6729108978184290465, 10786990443872815098, 13907601433886328034),
+UInt256(6061561137179826882, 17634758259585138889, 18095424073268406777, 8161129755503134234),
+UInt256(7576951421474783603, 12820075787626647804, 8784222036303344759, 14813098212806305697),
+UInt256(4735594638421739752, 5706704358052960925, 14713510809544366282, 16175715410645022917),
+UInt256(5919493298027174690, 7133380447566201157, 4556830456648294141, 10996272226451502838),
+UInt256(7399366622533968362, 18140097596312527254, 10307724089237755580, 18357026301491766451),
+UInt256(4624604139083730226, 15949247016122717438, 1830641537346209334, 2249769401577578224),
+UInt256(5780755173854662783, 10713186733298620989, 11511673958537537475, 12035583788826748588),
+UInt256(7225943967318328479, 8779797398195888333, 554534392889758132, 10432793717606047831),
+UInt256(9032429959147910599, 6363060729317472512, 5304854009539585569, 13040992147007559788),
+UInt256(5645268724467444124, 10894441983464502176, 3315533755962240981, 1233091064238643012),
+UInt256(7056585905584305155, 13618052479330627720, 4144417194952801226, 6153049848725691669),
+UInt256(8820732381980381444, 12410879580735896746, 5180521493691001532, 16914684347761890394),
+UInt256(5512957738737738402, 16980171774814711274, 7849511951984263862, 1348305680496405688),
+UInt256(6891197173422173003, 12001842681663613285, 588517903125554019, 10908754137475282918),
+UInt256(8613996466777716254, 10390617333652128702, 5347333397334330428, 9024256653416715744),
+UInt256(5383747791736072659, 1882449815105192534, 17177141428616120229, 14863532445240223148),
+UInt256(6729684739670090823, 16188120324163654380, 12248054748915374479, 4744357501268115223),
+UInt256(8412105924587613529, 15623464386777180071, 15310068436144218099, 1318760858157756124),
+UInt256(5257566202867258456, 2847136214094655688, 16486321800231218167, 16965126600844455242),
+UInt256(6571957753584073070, 3558920267618319611, 2161158176579471093, 16594722232628181148),
+UInt256(8214947191980091337, 13672022371377675321, 16536505776006502579, 6908344735503062723),
+UInt256(5134341994987557086, 1627484954469965220, 3417787082362982256, 2011872450475720250),
+UInt256(6417927493734446357, 11257728229942232333, 4272233852953727820, 2514840563094650313),
+UInt256(8022409367168057947, 237102232145626704, 9951978334619547679, 3143550703868312891),
+UInt256(5014005854480036216, 16289089959586874354, 6219986459137217299, 8882248217558777413),
+UInt256(6267507318100045271, 1914618375774041326, 16998355110776297432, 6491124253521083862),
+UInt256(7834384147625056588, 16228331024999715370, 12024571851615595982, 8113905316901354827),
+UInt256(4896490092265660368, 919334853770046298, 12127043425687135393, 459504804635958863),
+UInt256(6120612615332075460, 1149168567212557873, 5935432245254143433, 5186067024222336483),
+UInt256(7650765769165094325, 1436460709015697341, 12030976324995067195, 11094269798705308508),
+UInt256(4781728605728183953, 3203630952348504790, 9825203212335610949, 4628075614977123865),
+UInt256(5977160757160229941, 8616224708863018892, 3058131978564737878, 10396780537148792736),
+UInt256(7471450946450287426, 15381966904506161519, 3822664973205922348, 3772603634581215111),
+UInt256(4669656841531429641, 14225415333743738853, 9306694635894783323, 11581249308468035253),
+UInt256(5837071051914287052, 3946711111897509854, 16245054313295867058, 9864875617157656162),
+UInt256(7296338814892858815, 4933388889871887318, 11082945854765058015, 3107722484592294394),
+UInt256(9120423518616073519, 1555050093912471244, 4630310281601546710, 17719711161022531705),
+UInt256(5700264699135045949, 7889435336336376383, 12117315962855742502, 6463133457211694412),
+UInt256(7125330873918807436, 14473480188847858383, 10534958935142290223, 17302288858369393822),
+UInt256(8906663592398509295, 18091850236059822979, 8557012650500474875, 17016175054534354374),
+UInt256(5566664745249068309, 18224935425178471218, 3042289897349102845, 8329266399870277532),
+UInt256(6958330931561335387, 8946111226190925310, 13026234408541154364, 15023269018265234819),
+UInt256(8697913664451669234, 6570953014311268734, 7059420973821667148, 332342199121991907),
+UInt256(5436196040282293271, 8718531652371930862, 18247196163920705679, 9431085911306020750),
+UInt256(6795245050352866589, 6286478547037525674, 13585623168046106291, 7177171370705138034),
+UInt256(8494056312941083236, 12469784202224294997, 7758656923202857056, 4359778194954034638),
+]
+
+private let bid_multipliers1_binary80_135: [UInt256] = [
+UInt256(5308785195588177022, 17016987163244960181, 7155003586215479612, 2724861371846271649),
+UInt256(6635981494485221278, 12047861917201424418, 13555440501196737419, 3406076714807839561),
+UInt256(8294976868106526598, 5836455359647004715, 7720928589641145965, 18092653948791963163),
+UInt256(5184360542566579123, 17482842655061541659, 2519737359312022276, 13613751727208670929),
+UInt256(6480450678208223904, 17241867300399539169, 16984729754422191557, 17017189659010838661),
+UInt256(8100563347760279881, 3105590051789872346, 7395854137745575735, 7436429018481384614),
+UInt256(5062852092350174925, 13470208828437139976, 9234094854518372738, 11565297164191947240),
+UInt256(6328565115437718657, 3002702980264261258, 11542618568147965923, 5233249418385158242),
+UInt256(7910706394297148321, 8365064743757714477, 5204901173330181596, 1929875754554059899),
+UInt256(4944191496435717700, 16757380510917041308, 5558906242545057449, 10429544383451063245),
+UInt256(6180239370544647126, 2499981564936750019, 6948632803181321811, 17648616497741216960),
+UInt256(7725299213180808907, 12348348993025713332, 4074104985549264360, 17449084603749133296),
+UInt256(4828312008238005567, 5411875111427376880, 11769687652823066033, 10905677877343208310),
+UInt256(6035390010297506959, 2153157870856833196, 14712109566028832541, 18243783365106398291),
+UInt256(7544237512871883698, 16526505393853205207, 18390136957536040677, 8969671151100834152),
+UInt256(4715148445544927311, 14940751889585641158, 18411364626101107279, 7911887478651715297),
+UInt256(5893935556931159139, 14064253843554663544, 13790833745771608291, 5278173329887256217),
+UInt256(7367419446163948924, 12968631286015941526, 17238542182214510364, 1986030643931682368),
+UInt256(9209274307704936155, 16210789107519926908, 12324805690913362147, 2482538304914602959),
+UInt256(5755796442315585097, 7825900182986260365, 16926375593675627149, 17692487505067484514),
+UInt256(7194745552894481371, 14394061247160213361, 7322911436812370225, 8280551326052191930),
+UInt256(8993431941118101714, 13380890540522878797, 13765325314442850685, 14962375175992627817),
+UInt256(5620894963198813571, 12974742606254187152, 10909171330740475630, 11657327494209086338),
+UInt256(7026118703998516964, 11606742239390346036, 13636464163425594538, 5348287330906582114),
+UInt256(8782648379998146205, 14508427799237932545, 17045580204281993172, 15908731200488003450),
+UInt256(5489155237498841378, 11373610383737401793, 3735958600035163877, 719584963450226349),
+UInt256(6861444046873551723, 4993640942816976433, 9281634268471342750, 5511167222740170840),
+UInt256(8576805058591939654, 1630365160093832637, 16213728854016566341, 16112331065279989357),
+UInt256(5360503161619962283, 14854036280340809110, 12439423542974047915, 12376049925013687301),
+UInt256(6700628952024952854, 13955859331998623484, 6325907391862784086, 10858376387839721222),
+UInt256(8375786190031191068, 8221452128143503547, 7907384239828480108, 4349598447944875719),
+UInt256(5234866368769494417, 14361779616944465525, 2636272140679106115, 11941871066820323132),
+UInt256(6543582960961868022, 4117166465898418194, 7907026194276270548, 10315652815098016011),
+UInt256(8179478701202335027, 14369830119227798551, 660410705990562377, 12894566018872520014),
+UInt256(5112174188251459392, 6675300815303680142, 7330285718885183342, 1141574734154243153),
+UInt256(6390217735314324240, 8344126019129600177, 18386229185461254985, 10650340454547579749),
+UInt256(7987772169142905300, 10430157523912000222, 9147728426544405019, 17924611586611862590),
+UInt256(4992357605714315812, 15742220489299775947, 1105644248162865233, 8897039232418720167),
+UInt256(6240447007142894766, 1231031537915168317, 15217113365485745253, 15732985058950788113),
+UInt256(7800558758928618457, 10762161459248736205, 5186333651575017855, 5831173268406321429),
+UInt256(4875349224330386535, 18255565958098929888, 5547301541448080111, 10562012320395032749),
+UInt256(6094186530412983169, 18207771429196274456, 6934126926810100139, 8590829382066403032),
+UInt256(7617733163016228962, 8924656231213179358, 8667658658512625174, 6126850709155615886),
+UInt256(4761083226885143101, 10189596162935625003, 805600643143002829, 17664339748504423641),
+UInt256(5951354033606428876, 17348681222096919157, 14842058859210917249, 8245366630348365839),
+UInt256(7439192542008036096, 3239107453911597331, 4717515518731482849, 14918394306362845203),
+UInt256(4649495338755022560, 2024442158694748332, 642604189993482829, 2406467413835696396),
+UInt256(5811869173443778200, 2530552698368435415, 803255237491853536, 7619770285722008399),
+UInt256(7264836466804722750, 3163190872960544268, 14839127102146980632, 9524712857152510499),
+UInt256(9081045583505903437, 13177360628055456144, 102164803974174174, 11905891071440638123),
+]
+
+private let bid_multipliers1_binary80_136: [UInt256] = [
+UInt256(5675653489691189648, 10541693401748354042, 63853002483858859, 2829495901223010923),
+UInt256(7094566862113987060, 13177116752185442552, 9303188289959599381, 17371927931810927366),
+UInt256(8868208577642483825, 16471395940231803190, 11628985362449499227, 7879851859481495495),
+UInt256(5542630361026552391, 3377093435003795138, 2656429833103549113, 2619064402962240733),
+UInt256(6928287951283190488, 18056424849036907634, 12543909328234212199, 7885516522130188820),
+UInt256(8660359939103988111, 4123786987586582927, 6456514623437989441, 5245209634235348120),
+UInt256(5412724961939992569, 9494895894882696185, 10952850667289825256, 14807471067465562335),
+UInt256(6765906202424990711, 16480305887030758135, 18302749352539669475, 62594760622401303),
+UInt256(8457382753031238389, 15988696340361059765, 18266750672247198939, 13913301506060165341),
+UInt256(5285864220644523993, 12298778221939356305, 13722562179368193289, 6389970432073909386),
+UInt256(6607330275805654992, 1538414722142031670, 3318144668928077899, 12599149058519774637),
+UInt256(8259162844757068740, 1923018402677539587, 13371052873014873182, 11137250304722330392),
+UInt256(5161976777973167962, 10425258538528238050, 6051065036420601787, 2349095422024068591),
+UInt256(6452470972466459953, 3808201136305521754, 16787203332380528041, 16771427332812249451),
+UInt256(8065588715583074941, 9371937438809290097, 11760632128620884244, 7129226110733148101),
+UInt256(5040992947239421838, 8163303908469500263, 432866052746970796, 13679138356062993371),
+UInt256(6301241184049277298, 980757848732099520, 14376140621215877207, 17098922945078741714),
+UInt256(7876551480061596622, 10449319347769900208, 17970175776519846509, 16761967662921039239),
+UInt256(4922844675038497889, 1919138573928799726, 11231359860324904068, 12782072798539343476),
+UInt256(6153555843798122361, 7010609235838387562, 4815827788551354277, 15977590998174179345),
+UInt256(7691944804747652951, 13374947563225372356, 15243156772543968655, 6136930692435560469),
+UInt256(4807465502967283094, 15276871254656939579, 303600945985204601, 10753110710413307150),
+UInt256(6009331878709103868, 9872717031466398665, 14214559237763669463, 18053074406444021841),
+UInt256(7511664848386379835, 12340896289332998332, 3933140991922423117, 17954656989627639397),
+UInt256(4694790530241487397, 5407217171619430005, 11681585156806290256, 13527503627730968575),
+UInt256(5868488162801859246, 11370707482951675411, 766923390725699108, 16909379534663710719),
+UInt256(7335610203502324058, 4990012316834818455, 14793712293689287598, 2689980344620086783),
+UInt256(9169512754377905072, 15460887432898298877, 13880454348684221593, 12585847467629884286),
+UInt256(5730945471486190670, 9663054645561436798, 10981126977141332448, 948625639627595823),
+UInt256(7163681839357738338, 2855446270097020190, 4503036684571889752, 1185782049534494779),
+UInt256(8954602299197172922, 12792679874476051045, 14852167892569637998, 1482227561918118473),
+UInt256(5596626436998233076, 12607110939974919807, 11588447942069717700, 14761450281480987758),
+UInt256(6995783046247791345, 15758888674968649759, 9873873909159759222, 5068778141683081),
+UInt256(8744728807809739182, 5863552788428648487, 7730656368022311123, 9229708009531879659),
+UInt256(5465455504881086988, 17499778548050069016, 11749189257655026308, 3462724496743730835),
+UInt256(6831819381101358736, 3427979111353034654, 14686486572068782885, 4328405620929663544),
+UInt256(8539774226376698420, 4284973889191293318, 9134736178231202798, 10022193044589467334),
+UInt256(5337358891485436512, 11901480717599334132, 1097524092967113845, 1652184634441029180),
+UInt256(6671698614356795640, 14876850896999167665, 1371905116208892306, 6676916811478674379),
+UInt256(8339623267945994551, 149319547539407965, 6326567413688503286, 17569518051203118781),
+UInt256(5212264542466246594, 7010853744853211834, 6259947642769008506, 6369262763574561335),
+UInt256(6515330678082808242, 17986939217921290600, 17048306590316036440, 17184950491322977476),
+UInt256(8144163347603510303, 13260301985546837443, 2863639164185493935, 3034444040444170229),
+UInt256(5090102092252193939, 15205217768607855257, 17930675542111791373, 8814056552918688249),
+UInt256(6362627615315242424, 14394836192332431168, 8578286372357575504, 15629256709575748215),
+UInt256(7953284519144053030, 17993545240415538960, 10722857965446969381, 1089826813260133653),
+UInt256(4970802824465033144, 6634279756832323946, 6701786228404355863, 2986984767501277485),
+UInt256(6213503530581291430, 8292849696040404932, 17600604822360220636, 17568789014658760569),
+UInt256(7766879413226614288, 1142690083195730358, 3554011954240724180, 3514242194613899095),
+UInt256(4854299633266633930, 714181301997331473, 16056315526682616324, 11419773408488462742),
+]
+
+private let bid_multipliers1_binary80_137: [UInt256] = [
+UInt256(6067874541583292412, 10116098664351440150, 6235336353071106693, 14274716760610578428),
+UInt256(7584843176979115515, 12645123330439300187, 17017542478193659175, 4008337895481059323),
+UInt256(4740526985611947197, 5597359072310868665, 8330121039657343032, 9422740212316743933),
+UInt256(5925658732014933996, 11608384858815973735, 15024337317999066694, 11778425265395929916),
+UInt256(7407073415018667495, 14510481073519967169, 14168735629071445464, 5499659544890136587),
+UInt256(4629420884386667184, 15986579698591061337, 1937930740528571559, 3437287215556335367),
+UInt256(5786776105483333981, 1536480549529275055, 7034099444088102352, 18131667074727582921),
+UInt256(7233470131854167476, 6532286705338981723, 4180938286682740037, 4217839769699927035),
+UInt256(9041837664817709345, 8165358381673727154, 614486839926037142, 9883985730552296697),
+UInt256(5651148540511068340, 16632564034614549231, 4995740293381161118, 1565805063167797532),
+UInt256(7063935675638835426, 2343960969558634923, 1632989348299063493, 11180628365814522723),
+UInt256(8829919594548544282, 12153323248803069461, 15876294740655993079, 140727401985989691),
+UInt256(5518699746592840176, 12207513048929306317, 12228527222123689626, 7005483653882325413),
+UInt256(6898374683241050220, 15259391311161632897, 1450600972372448320, 17980226604207682574),
+UInt256(8622968354051312776, 627495065242489505, 6424937233892948305, 4028539181550051602),
+UInt256(5389355221282070485, 392184415776555940, 15544800817251562450, 14047052034537252011),
+UInt256(6736694026602588106, 5101916538148082830, 984256947854901447, 8335443006316789206),
+UInt256(8420867533253235132, 15600767709539879345, 10453693221673402617, 5807617739468598603),
+UInt256(5263042208283271958, 527107781607648782, 18062773309614346395, 15158976133236343887),
+UInt256(6578802760354089947, 9882256763864336786, 13355094600163157186, 14337034148118041955),
+UInt256(8223503450442612434, 7741134936403033079, 7470496213349170675, 8697920648292776636),
+UInt256(5139689656526632771, 9449895353679283578, 11586589160984313528, 3130357395969291446),
+UInt256(6424612070658290964, 7200683173671716569, 5259864414375616102, 3912946744961614307),
+UInt256(8030765088322863705, 9000853967089645711, 11186516536396908031, 14114555468056793691),
+UInt256(5019228180201789815, 17154748775499498329, 13909101862889149375, 15739126195176577913),
+UInt256(6274035225252237269, 16831749950946985008, 3551319273329273007, 15062221725543334487),
+UInt256(7842544031565296587, 7204629383401567548, 4439149091661591259, 14216091138501780205),
+UInt256(4901590019728310367, 2197050355412285765, 11997840219143270345, 6579213952349918676),
+UInt256(6126987524660387958, 16581370999547520919, 1162242218646924219, 12835703458864786249),
+UInt256(7658734405825484948, 11503341712579625340, 15287860828590818986, 11432943305153594908),
+UInt256(4786709003640928092, 16412960607217041646, 331540981014486058, 11757275584148384721),
+UInt256(5983386254551160116, 2069456685311750441, 9637798263122883381, 5473222443330705094),
+UInt256(7479232818188950145, 2586820856639688051, 16658933847330992130, 11453214072590769271),
+UInt256(4674520511368093840, 13145978081468274792, 8105990645368176129, 11769944813796618699),
+UInt256(5843150639210117300, 16432472601835343490, 10132488306710220162, 877372961963609661),
+UInt256(7303938299012646626, 2093846678584627747, 3442238346532999394, 10320088239309287884),
+UInt256(9129922873765808282, 11840680385085560491, 18137855988448412955, 3676738262281834047),
+UInt256(5706201796103630176, 12012111259105863211, 9030316983566564144, 18438862478422003944),
+UInt256(7132752245129537720, 15015139073882329014, 6676210211030817277, 4601834024317953313),
+UInt256(8915940306411922151, 322179768643359651, 17568634800643297404, 10363978548824829546),
+UInt256(5572462691507451344, 7118891383043181638, 8674553741188366925, 15700858629870294274),
+UInt256(6965578364384314180, 8898614228803977048, 1619820139630682849, 5791015232055704131),
+UInt256(8706972955480392725, 11123267786004971310, 2024775174538353561, 11850455058497018067),
+UInt256(5441858097175245453, 9257885375466801020, 15100542539368634688, 489005383919554436),
+UInt256(6802322621469056816, 16184042737760889180, 428934100501241744, 611256729899443045),
+UInt256(8502903276836321021, 1783309348491559859, 536167625626552180, 764070912374303806),
+UInt256(5314314548022700638, 3420411352020918863, 16476005830512452776, 9700916357088715687),
+UInt256(6642893185028375797, 13498886226880924387, 15983321269713178066, 12126145446360894609),
+UInt256(8303616481285469747, 3038549728318991772, 15367465568714084679, 5934309771096342453),
+UInt256(5189760300803418591, 18039994644695227522, 381293943591527116, 10626472634576295889),
+]
+
+private let bid_multipliers1_binary80_138: [UInt256] = [
+UInt256(6487200376004273239, 17938307287441646498, 9699989466344184703, 13283090793220369861),
+UInt256(8109000470005341549, 17811198090874670219, 2901614796075455071, 11992177473098074423),
+UInt256(5068125293753338468, 13437841816010362838, 17954410312043017083, 14412639948327378370),
+UInt256(6335156617191673085, 16797302270012953548, 13219640853198995546, 13404113916981835059),
+UInt256(7918945771489591357, 7161569782234028223, 16524551066498744433, 7531770359372518015),
+UInt256(4949341107180994598, 6781824123109961591, 17245373444202797126, 16236571520676293520),
+UInt256(6186676383976243247, 17700652190742227797, 16945030786826108504, 11072342363990591092),
+UInt256(7733345479970304059, 17514129220000396843, 7346230428250471918, 13840427954988238864),
+UInt256(4833340924981440037, 8640487753286554075, 2285551008442850997, 4038581453440261386),
+UInt256(6041676156226800046, 15412295710035580497, 16691996815835727458, 9659912835227714637),
+UInt256(7552095195283500058, 10041997600689699814, 7029937964512495611, 2851519007179867488),
+UInt256(4720059497052187536, 10887934518858450287, 18228769283102473468, 17923100443983274844),
+UInt256(5900074371315234420, 13609918148573062859, 18174275585450703932, 3957131481269541939),
+UInt256(7375092964144043025, 17012397685716328574, 18106158463385992011, 4946414351586927424),
+UInt256(9218866205180053782, 7430439051863247006, 13409326042377714206, 1571331921056271376),
+UInt256(5761791378237533614, 32338388987141475, 3769142758058683474, 14817140505942333322),
+UInt256(7202239222796917017, 9263795023088702652, 99742429145966439, 9298053595573140844),
+UInt256(9002799028496146271, 16191429797288266219, 124678036432458049, 7010880976039038151),
+UInt256(5626749392810091419, 17037172650946248242, 16218824837266143944, 15911015656092868605),
+UInt256(7033436741012614274, 16684779795255422399, 11050159009727904123, 1442025496406534140),
+UInt256(8791795926265767843, 11632602707214502191, 9201012743732492249, 15637589925790331387),
+UInt256(5494872453916104902, 4964533682795369917, 12668161992473889512, 2855964675977875261),
+UInt256(6868590567395131127, 15429039140348988205, 2000144435310198178, 3569955844972344076),
+UInt256(8585738209243913909, 14674612907008847352, 7111866562565135626, 13685816843070205903),
+UInt256(5366086380777446193, 11477476076094223547, 4444916601603209766, 13165321545346266593),
+UInt256(6707607975971807742, 511787039835615722, 944459733576624304, 7233279894828057434),
+UInt256(8384509969964759677, 9863105836649295460, 10403946703825556188, 9041599868535071792),
+UInt256(5240318731227974798, 8470284157119503614, 15725838726745748425, 14874371954689195678),
+UInt256(6550398414034968498, 1364483159544603710, 10433926371577409724, 4757906888079330886),
+UInt256(8187998017543710622, 10928975986285530446, 3819035927616986347, 5947383610099163607),
+UInt256(5117498760964819139, 2218923973001068624, 16221955510042780179, 1411271747098283302),
+UInt256(6396873451206023923, 16608713021533499493, 1830700313843923607, 15599147739155017840),
+UInt256(7996091814007529904, 16149205258489486462, 6900061410732292413, 14887248655516384396),
+UInt256(4997557383754706190, 10093253286555929038, 18147596436989846470, 11610373418911434200),
+UInt256(6246946729693382738, 3393194571340135490, 13461123509382532280, 5289594736784516941),
+UInt256(7808683412116728422, 13464865251029945171, 7603032349873389542, 6611993420980646177),
+UInt256(4880427132572955264, 3803854763466327828, 2446052209457174511, 17967553943395067573),
+UInt256(6100533915716194080, 4754818454332909785, 3057565261821468139, 17847756410816446562),
+UInt256(7625667394645242600, 5943523067916137231, 8433642595704223078, 17698009495093170298),
+UInt256(4766042121653276625, 3714701917447585769, 12188555649956221280, 6449569916005843532),
+UInt256(5957552652066595781, 9255063415236870116, 1400636507163112888, 8061962395007304415),
+UInt256(7446940815083244726, 16180515287473475549, 1750795633953891110, 10077452993759130519),
+UInt256(4654338009427027954, 5501136036243534314, 3400090280434875896, 1686722102672068671),
+UInt256(5817922511783784942, 16099792082159193700, 13473484887398370678, 2108402628340085838),
+UInt256(7272403139729731178, 10901368065844216317, 16841856109247963347, 11858875322279883105),
+UInt256(9090503924662163973, 4403338045450494589, 7217262081277790472, 10211908134422465978),
+UInt256(5681564952913852483, 5057929287620253070, 6816631810012312997, 6382442584014041236),
+UInt256(7101956191142315604, 1710725591097928433, 17744161799370167054, 12589739248444939449),
+UInt256(8877445238927894505, 2138406988872410542, 8345144193930545106, 6513802023701398503),
+UInt256(5548403274329934065, 12865719414113726349, 604029102779202787, 8682812283240761969),
+]
+
+private let bid_multipliers1_binary80_139: [UInt256] = [
+UInt256(6935504092912417582, 2247091212359994224, 5366722396901391388, 6241829335623564557),
+UInt256(8669380116140521977, 12032236052304768588, 6708402996126739235, 7802286669529455696),
+UInt256(5418362572587826236, 602618505049398511, 13416123909433987830, 2570586159242215858),
+UInt256(6772953215734782795, 753273131311748139, 12158468868365096883, 12436604735907545631),
+UInt256(8466191519668478493, 14776649469421848886, 10586400067028983200, 10934069901457044134),
+UInt256(5291369699792799058, 11541248927602349506, 2004814023465726596, 6833793688410652584),
+UInt256(6614212124740998823, 5203189122648161074, 11729389566186934053, 8542242110513315730),
+UInt256(8267765155926248529, 1892300384882813439, 5438364920878891758, 15289488656569032566),
+UInt256(5167353222453905330, 12711902786620228159, 10316507103190389205, 4944244391928257450),
+UInt256(6459191528067381663, 6666506446420509391, 8283947860560598602, 10791991508337709716),
+UInt256(8073989410084227079, 3721447039598248835, 5743248807273360349, 4266617348567361337),
+UInt256(5046243381302641924, 9243433427389987378, 1283687495332156266, 4972478852068294788),
+UInt256(6307804226628302405, 11554291784237484222, 10827981406019971140, 15438970601940144293),
+UInt256(7884755283285378007, 607806675014691566, 4311604720670188118, 851969178715628750),
+UInt256(4927972052053361254, 7297408199525264084, 16529811005701031285, 14367538791979431681),
+UInt256(6159965065066701567, 18345132286261355914, 2215519683416737491, 4124365434692125889),
+UInt256(7699956331333376959, 18319729339399306988, 11992771641125697672, 543770774937769457),
+UInt256(4812472707083360599, 18367359864765648723, 16718854312558336853, 339856734336105911),
+UInt256(6015590883854200749, 18347513812529673000, 16286881872270533162, 5036506936347520293),
+UInt256(7519488604817750937, 9099334210379927539, 1911858266628614836, 15519005707289176174),
+UInt256(4699680378011094335, 17216298927555924471, 17335812481138741937, 476006530200959301),
+UInt256(5874600472513867919, 16908687641017517685, 17058079582996039517, 5206694181178587030),
+UInt256(7343250590642334899, 16524173532844509203, 7487541423462885684, 11120053744900621691),
+UInt256(9179063238302918624, 16043530897628248600, 4747740760901219201, 13900067181125777114),
+UInt256(5736914523939324140, 10027206811017655375, 2967337975563262001, 1770012960562528840),
+UInt256(7171143154924155175, 12534008513772069218, 17544230524736241213, 6824202219130548954),
+UInt256(8963928943655193969, 11055824623787698619, 12706916119065525708, 13141938792340574097),
+UInt256(5602455589784496230, 18439105435935781397, 5635979565202259615, 17437083782067634619),
+UInt256(7003069487230620288, 13825509758064950938, 11656660474930212423, 17184668709157155369),
+UInt256(8753836859038275360, 17281887197581188673, 5347453556807989721, 16869149868019056307),
+UInt256(5471148036898922100, 10801179498488242920, 14871373519073463336, 3625689639870828336),
+UInt256(6838935046123652625, 13501474373110303651, 142472825132277554, 4532112049838535420),
+UInt256(8548668807654565782, 3041784911105715851, 14013149086697510654, 14888512099152945083),
+UInt256(5342918004784103613, 15736173624723236119, 6452375169972250207, 4693634043543202773),
+UInt256(6678647505980129517, 5835158975621881437, 3453782944037924855, 1255356536001615562),
+UInt256(8348309382475161896, 11905634737954739700, 8928914698474793972, 15404253725284183165),
+UInt256(5217693364046976185, 7441021711221712312, 14803943723401522041, 404286541447838670),
+UInt256(6522116705058720231, 13912963157454528295, 58185580542350935, 5117044195237186241),
+UInt256(8152645881323400289, 12779517928390772464, 13907790030960102381, 1784619225619094898),
+UInt256(5095403675827125181, 1069669677603150934, 8692368769350063988, 3421230025225628263),
+UInt256(6369254594783906476, 5948773115431326572, 1642088924832804177, 4276537531532035329),
+UInt256(7961568243479883095, 7435966394289158215, 2052611156041005221, 9957357932842432065),
+UInt256(4975980152174926934, 11565008024071805740, 8200411000166710119, 8529191717240213993),
+UInt256(6219975190218658668, 5232887993234981367, 10250513750208387649, 6049803628122879587),
+UInt256(7774968987773323335, 6541109991543726709, 8201456169333096657, 12173940553580987388),
+UInt256(4859355617358327084, 11005722772355911049, 7431753115046879363, 691183818347035261),
+UInt256(6074194521697908855, 13757153465444888811, 13901377412235987107, 14699037828215957789),
+UInt256(7592743152122386069, 12584755813378723110, 12765035746867595980, 13762111266842559332),
+UInt256(4745464470076491293, 10171315392575395896, 3366461323364859583, 17824691578631375390),
+UInt256(5931830587595614116, 17325830259146632774, 4208076654206074479, 17669178454861831334),
+]
+
+private let bid_multipliers1_binary80_140: [UInt256] = [
+UInt256(7414788234494517646, 3210543750223739351, 14483467854612368907, 17474787050149901263),
+UInt256(4634242646559073528, 15841647899172000806, 15969696436773812423, 8615898897129994338),
+UInt256(5792803308198841911, 1355315800255449392, 10738748509112489721, 6158187602985105018),
+UInt256(7241004135248552388, 15529202805601475452, 13423435636390612151, 12309420522158769176),
+UInt256(9051255169060690486, 964759433292292699, 16779294545488265189, 10775089634271073566),
+UInt256(5657034480662931553, 14438032701089846649, 8181216081716471791, 9040274030633114931),
+UInt256(7071293100828664442, 4212482821080144599, 14838206120572977643, 6688656519864005760),
+UInt256(8839116376035830552, 14488975563204956557, 13936071632288834150, 3749134631402619296),
+UInt256(5524447735022394095, 9055609727003097848, 11015887779394215295, 16178267199908800772),
+UInt256(6905559668777992619, 6707826140326484406, 13769859724242769119, 15611147981458613061),
+UInt256(8631949585972490774, 3773096656980717604, 7988952618448685591, 14902248958395878422),
+UInt256(5394968491232806733, 16193243465895112214, 14216467423385204302, 16231434626638505870),
+UInt256(6743710614041008417, 6406496277086726556, 8547212242376729570, 11065921246443356529),
+UInt256(8429638267551260521, 12619806364785796099, 10684015302970911963, 4609029521199419854),
+UInt256(5268523917219537826, 969849950350040706, 4371666555143126025, 574800441535943457),
+UInt256(6585654896524422282, 10435684474792326690, 14687955230783683339, 5330186570347317225),
+UInt256(8232068620655527853, 3821233556635632555, 9136572001624828366, 2051047194506758627),
+UInt256(5145042887909704908, 4694113982110964299, 3404514491801823776, 15116962551848887854),
+UInt256(6431303609887131135, 5867642477638705373, 18090701170034443433, 449459116101558201),
+UInt256(8039129512358913919, 2722867078620993813, 8778318407260890579, 5173509913554335655),
+UInt256(5024455945224321199, 8619320951779202989, 7792292013751750564, 927600686757765833),
+UInt256(6280569931530401499, 6162465171296615832, 14352051035617076109, 1159500858447207291),
+UInt256(7850712414413001874, 3091395445693381886, 17940063794521345136, 6061062091486397018),
+UInt256(4906695259008126171, 6543808171985751583, 6600853853148452806, 3788163807178998136),
+UInt256(6133369073760157714, 3568074196554801575, 3639381298008178103, 13958576795828523478),
+UInt256(7666711342200197142, 13683464782548277776, 18384284677792386341, 12836534976358266443),
+UInt256(4791694588875123214, 3940479470665285706, 11490177923620241463, 10328677369437610479),
+UInt256(5989618236093904017, 14148971375186382941, 5139350367670526021, 8299160693369625195),
+UInt256(7487022795117380022, 3851156163700814964, 11035873978015545430, 14985636885139419398),
+UInt256(4679389246948362513, 16242030657595173064, 16120793273114491702, 4754337034784749220),
+UInt256(5849236558685453142, 6467480266711802619, 1704247517683563011, 15166293330335712333),
+UInt256(7311545698356816427, 17307722370244529081, 15965367452386617476, 14346180644492252512),
+UInt256(9139432122946020534, 17022966944378273448, 6121651260201108133, 17932725805615315639),
+UInt256(5712145076841262834, 6027668321809033001, 3826032037625692583, 13513796637723266227),
+UInt256(7140181346051578542, 16757957439116067059, 9394226065459503633, 12280559778726694879),
+UInt256(8925226682564473178, 11724074762040308016, 7131096563396991638, 1515641668126204887),
+UInt256(5578266676602795736, 11939232744702580414, 4456935352123119773, 14782334097861041767),
+UInt256(6972833345753494670, 14924040930878225517, 14794541227008675525, 4642859567044138496),
+UInt256(8716041682191868338, 9431679126743006089, 4658118478478680694, 10415260477232561024),
+UInt256(5447526051369917711, 10506485472641766709, 14440539095117645194, 1897851779842962736),
+UInt256(6809407564212397139, 8521420822374820483, 4215615813614892780, 11595686761658479228),
+UInt256(8511759455265496424, 6040090009541137700, 657833748591228071, 14494608452073099035),
+UInt256(5319849659540935265, 3775056255963211062, 9634518129724293352, 15976659310186768753),
+UInt256(6649812074426169081, 9330506338381401732, 2819775625300590883, 1524080064023909325),
+UInt256(8312265093032711351, 16274818941404140069, 3524719531625738603, 15740158135312050368),
+UInt256(5195165683145444594, 17089290866018669399, 4508792716479780579, 7531755825356337528),
+UInt256(6493957103931805743, 12138241545668560941, 1024304877172337820, 4803008763268034006),
+UInt256(8117446379914757179, 10561115913658313272, 5892067114892810179, 6003760954085042508),
+UInt256(5073403987446723237, 4294854436822751843, 3682541946808006362, 1446507587089457616),
+UInt256(6341754984308404046, 9980254064455827707, 18438235488792171664, 11031506520716597827),
+]
+
+private let bid_multipliers1_binary80_141: [UInt256] = [
+UInt256(7927193730385505058, 3251945543715008826, 18436108342562826676, 13789383150895747284),
+UInt256(4954496081490940661, 6644151983249268420, 16134253732529154576, 17841736506164617861),
+UInt256(6193120101863675826, 12916875997488973430, 1721073091951891605, 3855426558996220710),
+UInt256(7741400127329594783, 6922722960006440979, 11374713401794640314, 9430969217172663791),
+UInt256(4838375079580996739, 11244230877645107468, 4803352866907956244, 10506041779160302774),
+UInt256(6047968849476245924, 9443602578628996431, 6004191083634945305, 13132552223950378467),
+UInt256(7559961061845307405, 11804503223286245539, 2893552836116293728, 2580632224655809372),
+UInt256(4724975663653317128, 9683657523767597413, 17949371587068541244, 1612895140409880857),
+UInt256(5906219579566646410, 12104571904709496767, 8601656428553512843, 2016118925512351072),
+UInt256(7382774474458308013, 5907342844032095151, 6140384517264503149, 16355206712172602551),
+UInt256(4614234046536442508, 5997932286733753421, 10755269350931396324, 12527847204321570547),
+UInt256(5767792558170553135, 7497415358417191776, 18055772707091633309, 15659809005401963183),
+UInt256(7209740697713191419, 4760083179594101817, 4122971810154990021, 5739703201470290267),
+UInt256(9012175872141489274, 1338417956065239367, 9765400781121125430, 11786315020265250738),
+UInt256(5632609920088430796, 5448197240968162508, 13020904515841785250, 2754760869238393807),
+UInt256(7040762400110538495, 6810246551210203135, 16276130644802231562, 12666823123402768067),
+UInt256(8800953000138173119, 3901122170585366015, 15733477287575401549, 6610156867398684276),
+UInt256(5500595625086358199, 9355730384256935615, 16750952332375707824, 6437191051337871624),
+UInt256(6875744531357947749, 7082976961893781615, 16327004397042246876, 8046488814172339530),
+UInt256(8594680664197434686, 13465407220794614923, 15797069477875420691, 10058111017715424413),
+UInt256(5371675415123396679, 3804193494569246423, 7567325414458443980, 3980476376858446306),
+UInt256(6714594268904245849, 143555849784170125, 4847470749645667071, 4975595471073057883),
+UInt256(8393242836130307311, 4791130830657600560, 10671024455484471743, 1607808320413934449),
+UInt256(5245776772581442069, 9911985796802082206, 6669390284677794839, 7922409227899790887),
+UInt256(6557220965726802586, 17001668264429990661, 17560109892702019357, 5291325516447350705),
+UInt256(8196526207158503233, 12028713293682712519, 8115079310595360484, 11225842913986576285),
+UInt256(5122828879474064521, 600416780910613468, 11989453596763182158, 16239523858096385986),
+UInt256(6403536099342580651, 5362206994565654739, 14986816995953977698, 11076032785765706675),
+UInt256(8004420124178225814, 2091072724779680520, 14121835226515084219, 4621668945352357535),
+UInt256(5002762577611391133, 15141978508269464037, 8826147016571927637, 582700081631529508),
+UInt256(6253453222014238917, 5092415080054666334, 15644369789142297450, 5340061120466799788),
+UInt256(7816816527517798646, 10977204868495720822, 10332090199573096004, 15898448437438275543),
+UInt256(4885510329698624154, 2249067024382437610, 1845870356305797099, 713158236544146407),
+UInt256(6106887912123280192, 12034705817332822820, 11530709982237022181, 14726505850962346720),
+UInt256(7633609890154100240, 15043382271666028525, 14413387477796277727, 4573074258420769688),
+UInt256(4771006181346312650, 9402113919791267828, 11314210182836367531, 9775700439154062911),
+UInt256(5963757726682890813, 2529270362884308977, 14142762728545459414, 7607939530515190735),
+UInt256(7454697158353613516, 7773273972032774126, 3843395355399660556, 286552376289212611),
+UInt256(4659185723971008447, 14081668269375259636, 16237180152406951559, 9402467272035533690),
+UInt256(5823982154963760559, 12990399318291686642, 1849731116799137833, 7141398071617029208),
+UInt256(7279977693704700699, 11626313129437220398, 11535535932853698099, 13538433607948674414),
+UInt256(9099972117130875874, 9921205393369137594, 5196047879212346816, 12311355991508455114),
+UInt256(5687482573206797421, 10812439389283098900, 7859215942935104664, 7694597494692784446),
+UInt256(7109353216508496776, 18127235255031261529, 9824019928668880830, 9618246868365980558),
+UInt256(8886691520635620971, 4212299995079525295, 16891710929263488942, 2799436548602699889),
+UInt256(5554182200397263107, 326844487711009357, 17474848358430762444, 15584705898158851143),
+UInt256(6942727750496578883, 14243613664920925409, 8008502392756289344, 1034138298989012312),
+UInt256(8678409688120723604, 13192831062723768857, 14622314009372749584, 1292672873736265390),
+UInt256(5424006055075452252, 17468891451057131344, 2221417228216886634, 807920546085165869),
+UInt256(6780007568844315316, 3389370240111862564, 2776771535271108292, 10233272719461233144),
+]
+
+private let bid_multipliers1_binary80_142: [UInt256] = [
+UInt256(8475009461055394145, 4236712800139828205, 3470964419088885365, 12791590899326541430),
+UInt256(5296880913159621340, 14177160546155862388, 4475195771144247305, 10300587321292782346),
+UInt256(6621101141449526675, 17721450682694827985, 5593994713930309131, 17487420170043365836),
+UInt256(8276376426811908344, 17540127334941147077, 11604179410840274318, 17247589194126819391),
+UInt256(5172735266757442715, 10962579584338216923, 9558455140988865401, 6168057227901874216),
+UInt256(6465919083446803394, 9091538461995383250, 7336382907808693847, 12321757553304730674),
+UInt256(8082398854308504243, 2141051040639453254, 18393850671615643117, 10790510923203525438),
+UInt256(5051499283942815151, 17479057964895515948, 6884470651332389044, 9049912336215897351),
+UInt256(6314374104928518939, 17237136437692007031, 8605588314165486305, 11312390420269871688),
+UInt256(7892967631160648674, 16934734528687620885, 6145299374279469978, 305429970055175898),
+UInt256(4933104769475405421, 15195895098857150957, 6146655118138362688, 4802579749711872841),
+UInt256(6166380961844256777, 5159810818289274984, 12295004916100341264, 6003224687139841051),
+UInt256(7707976202305320971, 11061449541288981634, 15368756145125426580, 7504030858924801313),
+UInt256(4817485126440825607, 4607562954091919569, 14217158609130779516, 13913391323682776629),
+UInt256(6021856408051032009, 1147767674187511558, 3936390206131310683, 17391739154603470786),
+UInt256(7527320510063790011, 6046395611161777351, 14143859794518914162, 17127987924826950579),
+UInt256(4704575318789868757, 1473154247762416892, 15757441399215403207, 15316678471444232016),
+UInt256(5880719148487335946, 6453128828130409020, 1250057675309702393, 14534162070877902116),
+UInt256(7350898935609169932, 17289783072017787083, 1562572094137127992, 4332644533315213932),
+UInt256(9188623669511462416, 3165484766312682237, 15788273172953573702, 5415805666644017415),
+UInt256(5742889793444664010, 1978427978945426398, 12173513742309677515, 17219936596934674597),
+UInt256(7178612241805830012, 11696407010536558806, 5993520141032321086, 16913234727740955342),
+UInt256(8973265302257287515, 14620508763170698507, 16715272213145177166, 11918171372821418369),
+UInt256(5608290813910804697, 6831974967767992615, 8141202124002041777, 2837171089585998577),
+UInt256(7010363517388505871, 13151654728137378673, 5564816636575164317, 8158149880409886125),
+UInt256(8762954396735632339, 11827882391744335437, 11567706814146343300, 14809373368939745560),
+UInt256(5476846497959770212, 5086583485626515696, 9535659768055158515, 32486318732565167),
+UInt256(6846058122449712765, 6358229357033144620, 11919574710068948143, 13875665953697870171),
+UInt256(8557572653062140956, 12559472714718818679, 14899468387586185179, 12732896423694949810),
+UInt256(5348482908163838097, 17073042483554037482, 16229696769882447593, 5652217255595649679),
+UInt256(6685603635204797622, 7506245049160383141, 11063748925498283683, 11676957587921950003),
+UInt256(8357004544005997028, 159434274595703118, 18441372175300242508, 9984510966475049600),
+UInt256(5223127840003748142, 9323018458477090257, 6914171591135263663, 15463691390901681808),
+UInt256(6528909800004685178, 2430401036241587013, 13254400507346467483, 14717928220199714356),
+UInt256(8161137250005856472, 12261373332156759575, 2732942578900920642, 13785724256822255041),
+UInt256(5100710781253660295, 7663358332597974734, 8625618139454157257, 13227763678941297305),
+UInt256(6375888476567075369, 4967511897320080514, 1558650637462920764, 2699646543394457919),
+UInt256(7969860595708844211, 10821075890077488546, 11171685333683426763, 3374558179243072398),
+UInt256(4981162872318027632, 4457329422084736389, 11593989351979529630, 18249999926522777913),
+UInt256(6226453590397534540, 5571661777605920487, 657428634692248326, 13589127871298696583),
+UInt256(7783066987996918175, 6964577222007400608, 14656843848647474120, 7763037802268594921),
+UInt256(4864416867498073859, 11270389791395707236, 9160527405404671325, 4851898626417871826),
+UInt256(6080521084372592324, 9476301220817246141, 11450659256755839156, 10676559301449727686),
+UInt256(7600651355465740405, 11845376526021557677, 478266015662635233, 13345699126812159607),
+UInt256(4750407097166087753, 9709203337977167500, 2604759269002840973, 1423532926616517899),
+UInt256(5938008871457609691, 16748190190898847279, 3255949086253551216, 6391102176698035277),
+UInt256(7422511089322012114, 16323551720196171194, 17904994413099102732, 7988877720872544096),
+UInt256(4639069430826257571, 14813905843549994900, 15802307526614327111, 14216420612400115868),
+UInt256(5798836788532821964, 13905696286010105722, 1306140334558357273, 13158839747072756931),
+UInt256(7248545985666027455, 17382120357512632152, 10856047455052722400, 2613491628558782452),
+]
+
+private let bid_multipliers1_binary80_143: [UInt256] = [
+UInt256(9060682482082534319, 17115964428463402286, 13570059318815903000, 3266864535698478065),
+UInt256(5662926551301583949, 17615006795430708285, 3869601055832551471, 2041790334811548791),
+UInt256(7078658189126979937, 8183700439006221644, 9448687338218077242, 16387295973796599701),
+UInt256(8848322736408724921, 14841311567185164959, 11810859172772596553, 11260747930390973818),
+UInt256(5530201710255453076, 2358290701849646243, 14299316010623954702, 120438428853276780),
+UInt256(6912752137819316345, 2947863377312057804, 13262458994852555473, 9373920072921371783),
+UInt256(8640940172274145431, 8296515240067460159, 16578073743565694341, 16329086109579102633),
+UInt256(5400587607671340894, 12102851052683244455, 17278825117369640819, 12511521827700633098),
+UInt256(6750734509589176118, 5905191778999279761, 16986845378284663120, 11027716266198403468),
+UInt256(8438418136986470147, 16604861760603875510, 7398498667573665188, 13784645332748004335),
+UInt256(5274011335616543842, 8072195591163728242, 12375648806152838, 17838775369822278517),
+UInt256(6592514169520679803, 866872452099884494, 9238841597862466856, 13075097175423072339),
+UInt256(8240642711900849753, 14918648620407019330, 2325179960473307762, 16343871469278840423),
+UInt256(5150401694938031096, 2406626360113305225, 6064923493723205255, 14826605686726663169),
+UInt256(6438002118672538870, 3008282950141631531, 12192840385581394473, 13921571089980941057),
+UInt256(8047502648340673587, 12983725724531815222, 10629364463549355188, 3566905807194012609),
+UInt256(5029689155212920992, 5808985568618690562, 2031666771290959088, 11452688166351033689),
+UInt256(6287111444016151240, 7261231960773363202, 11762955500968474668, 14315860207938792111),
+UInt256(7858889305020189050, 9076539950966704003, 5480322339355817527, 17894825259923490138),
+UInt256(4911805815637618156, 10284523487781577906, 1119358452883692002, 18101794815093263193),
+UInt256(6139757269547022695, 12855654359726972382, 10622570102959390811, 13403871482011803183),
+UInt256(7674696586933778369, 11457881931231327574, 4054840591844462706, 12143153334087366074),
+UInt256(4796685366833611481, 243647179378497877, 16369333425184952903, 12201156852231991701),
+UInt256(5995856708542014351, 4916244992650510251, 6626608726199027417, 10639760046862601722),
+UInt256(7494820885677517939, 1533620222385749910, 3671574889321396367, 17911386077005640056),
+UInt256(4684263053548448711, 17099413703486951357, 16129792361108036441, 18112145325769606891),
+UInt256(5855328816935560889, 16762581110931301293, 6327182396102881840, 8805123601929844902),
+UInt256(7319161021169451112, 7118168333381962904, 12520664013555990204, 11006404502412306127),
+UInt256(9148951276461813890, 8897710416727453630, 15650830016944987755, 13758005628015382659),
+UInt256(5718094547788633681, 10172755028882046423, 5170082742163229443, 6292910508295920210),
+UInt256(7147618184735792101, 17327629804529945933, 1850917409276648900, 3254452116942512358),
+UInt256(8934522730919740127, 7824479200380268704, 6925332780023199029, 4068065146178140448),
+UInt256(5584076706824837579, 11807828527878749796, 4328332987514499393, 4848383725575031732),
+UInt256(6980095883531046974, 10148099641421049341, 5410416234393124241, 10672165675396177569),
+UInt256(8725119854413808718, 3461752514921535868, 11374706311418793205, 17951893112672609865),
+UInt256(5453199909008630448, 15998653377108123629, 16332563481491521561, 13525776204634075118),
+UInt256(6816499886260788061, 1551572647675602921, 6580646296582238240, 3072162200510430185),
+UInt256(8520624857825985076, 6551151828021891555, 12837493889155185704, 3840202750638037731),
+UInt256(5325390536141240672, 13317841929368458030, 5717590671508297113, 2400126719148773582),
+UInt256(6656738170176550840, 16647302411710572537, 16370360376240147199, 7611844417363354882),
+UInt256(8320922712720688551, 2362383940928664056, 6627892415018020287, 4903119503276805698),
+UInt256(5200576695450430344, 8394018990721496891, 4142432759386262679, 9981978717189085417),
+UInt256(6500720869313037930, 10492523738401871114, 566354930805440445, 7865787378058968868),
+UInt256(8125901086641297413, 3892282636147563084, 9931315700361576364, 14443920241001098988),
+UInt256(5078688179150810883, 4738519656805920879, 15430444349580761035, 18250822187480462676),
+UInt256(6348360223938513604, 1311463552580013195, 14676369418548563390, 18201841715923190441),
+UInt256(7935450279923142005, 1639329440725016494, 13733775754758316334, 13528930108049212243),
+UInt256(4959656424951963753, 3330423909666829261, 3971923828296559805, 3843895299103369748),
+UInt256(6199570531189954691, 8774715905510924480, 9576590803798087660, 9416555142306600089),
+UInt256(7749463163987443364, 6356708863461267696, 11970738504747609575, 11770693927883250111),
+]
+
+private let bid_multipliers1_binary80_144: [UInt256] = [
+UInt256(4843414477492152102, 13196315076518068118, 7481711565467255984, 14274212732568113175),
+UInt256(6054268096865190128, 7272021808792809340, 128767419979294172, 17842765915710141469),
+UInt256(7567835121081487660, 9090027260991011675, 160959274974117716, 3856713320928125220),
+UInt256(4729896950675929787, 14904639074974158104, 16241500611354681236, 11633817862434854071),
+UInt256(5912371188344912234, 14019112825290309727, 1855131690483799929, 14542272328043567589),
+UInt256(7390463985431140293, 8300518994758111350, 16153972668386913624, 4342782354772295774),
+UInt256(4619039990894462683, 7493667380937513546, 5484546899314433111, 2714238971732684859),
+UInt256(5773799988618078354, 4755398207744504028, 16079055660997817196, 17227856769948019785),
+UInt256(7217249985772597942, 15167619796535405844, 1652075502537719880, 3088076888725473115),
+UInt256(9021562482215747428, 9736152708814481497, 2065094378172149850, 3860096110906841394),
+UInt256(5638476551384842142, 15308467479863826743, 12819899032426063416, 7024246087744163775),
+UInt256(7048095689231052678, 9912212312975007621, 11413187772105191366, 8780307609680204719),
+UInt256(8810119611538815848, 3166893354363983719, 431426659849325496, 1752012475245480091),
+UInt256(5506324757211759905, 1979308346477489824, 7187170690046910291, 1095007797028425057),
+UInt256(6882905946514699881, 7085821451524250184, 8983963362558637863, 15203817801567695033),
+UInt256(8603632433143374851, 13468962832832700634, 11229954203198297329, 14393086233532230887),
+UInt256(5377270270714609282, 6112258761306743944, 11630407395426323735, 2078149868316562449),
+UInt256(6721587838393261602, 16863695488488205738, 14538009244282904668, 16432745390677866773),
+UInt256(8401984797991577003, 11856247323755481365, 8949139518498855028, 2094187664637781850),
+UInt256(5251240498744735627, 5104311568133481901, 7899055208275478344, 10532239327253389464),
+UInt256(6564050623430919534, 1768703441739464472, 14485505028771735834, 13165299159066736830),
+UInt256(8205063279288649417, 11434251339029106398, 18106881285964669793, 7233251911978645230),
+UInt256(5128164549555405886, 228878059252109643, 6705114785300530716, 16049997491055123029),
+UInt256(6410205686944257357, 9509469610919912862, 3769707463198275492, 1615752790109352170),
+UInt256(8012757108680321696, 16498523032077278981, 13935506365852620173, 2019690987636690212),
+UInt256(5007973192925201060, 10311576895048299363, 11015534487871581560, 3568149876486625335),
+UInt256(6259966491156501325, 12889471118810374204, 9157732091412089046, 4460187345608281668),
+UInt256(7824958113945626657, 2276780843230804043, 11447165114265111307, 14798606218865127893),
+UInt256(4890598821216016660, 12952203073087722287, 4848635187202000615, 6943285877577010982),
+UInt256(6113248526520020825, 16190253841359652859, 1449107965575112865, 4067421328543875823),
+UInt256(7641560658150026032, 6402759246417402361, 15646443012251054793, 9695962679107232682),
+UInt256(4775975411343766270, 4001724529010876476, 2861497855015827389, 17589191720510490187),
+UInt256(5969969264179707837, 14225527698118371403, 3576872318769784237, 8151431595355949021),
+UInt256(7462461580224634797, 3946851567365800541, 18306148453744394008, 14800975512622324180),
+UInt256(4664038487640396748, 4772625238817319290, 13747185792803940207, 9250609695388952613),
+UInt256(5830048109550495935, 5965781548521649113, 7960610204150149451, 6951576100808802862),
+UInt256(7287560136938119919, 2845540917224673487, 14562448773615074718, 4077784107583615673),
+UInt256(9109450171172649898, 17391984201813005571, 13591374948591455493, 14320602171334295400),
+UInt256(5693406356982906186, 15481676144560516386, 6188766333655965731, 11256219366297628577),
+UInt256(7116757946228632733, 10128723143845869674, 16959329953924732972, 9458588189444647817),
+UInt256(8895947432785790916, 17272589948234724997, 11975790405551140407, 11823235236805809771),
+UInt256(5559967145491119323, 1571996680791927315, 9790712012683156706, 14307051050644712963),
+UInt256(6949958931863899153, 15800053906272072856, 7626703997426557979, 8660441776451115396),
+UInt256(8687448664829873942, 5915009327557927358, 9533379996783197474, 6213866202136506341),
+UInt256(5429655415518671213, 17531938885005868311, 1346676479562110517, 8495352394762704367),
+UInt256(6787069269398339017, 8079865550975171676, 15518403654734801858, 15230876511880768363),
+UInt256(8483836586747923771, 14711517957146352500, 951260494708950707, 9815223602996184645),
+UInt256(5302397866717452357, 6888855714002776360, 9817909846047870000, 3828671742658921452),
+UInt256(6627997333396815446, 13222755660930858354, 12272387307559837500, 4785839678323651814),
+UInt256(8284996666746019308, 7305072539308797135, 6117112097595021067, 5982299597904564768),
+]
+
+private let bid_multipliers1_binary80_145: [UInt256] = [
+UInt256(5178122916716262067, 13789042373922774017, 10740724088637970023, 1433094239476659028),
+UInt256(6472653645895327584, 12624616948976079617, 18037591129224850432, 15626425854627987497),
+UInt256(8090817057369159480, 15780771186220099522, 8711930856248899329, 1086288244575432755),
+UInt256(5056760660855724675, 9862981991387562201, 10056642803582949984, 12208145198928115232),
+UInt256(6320950826069655844, 7717041470807064847, 17182489522906075384, 15260181498660144040),
+UInt256(7901188532587069805, 9646301838508831059, 16866425885205206327, 628482799615628434),
+UInt256(4938242832866918628, 8334781658281713364, 8235673169039560002, 7310330777400849627),
+UInt256(6172803541083648285, 10418477072852141705, 10294591461299450002, 18361285508605837842),
+UInt256(7716004426354560356, 17634782359492565035, 17479925345051700407, 13728234848902521494),
+UInt256(4822502766471600223, 1798366937828077339, 8619110331443618802, 15497675808205157790),
+UInt256(6028128458089500278, 16083016727567260386, 6162201895877135599, 10148722723401671430),
+UInt256(7535160572611875348, 10880398872604299674, 16926124406701195307, 8074217385824701383),
+UInt256(4709475357882422092, 16023621332232463104, 15190513772615634971, 2740542856926744413),
+UInt256(5886844197353027616, 1582782591581027265, 541398142059992097, 17260736626440594228),
+UInt256(7358555246691284520, 1978478239476284081, 5288433696002378026, 7740862727768579072),
+UInt256(9198194058364105650, 2473097799345355101, 11222228138430360437, 452706372855948032),
+UInt256(5748871286477566031, 6157372143018234842, 9319735595732669225, 2588784492248661472),
+UInt256(7186089108096957539, 3085029160345405649, 2426297457811060723, 7847666633738214744),
+UInt256(8982611385121196923, 17691344505713920773, 7644557840691213808, 5197897273745380526),
+UInt256(5614132115700748077, 8751247306857506531, 7083691659645702582, 3248685796090862829),
+UInt256(7017665144625935096, 15550745151999271068, 4242928556129740323, 13284229281968354344),
+UInt256(8772081430782418871, 991687366289537219, 5303660695162175404, 11993600584033055026),
+UInt256(5482550894239011794, 7537333631572042618, 1008944925262665675, 16719372401875435200),
+UInt256(6853188617798764743, 198295002610277464, 10484553193433107902, 16287529483916906095),
+UInt256(8566485772248455928, 14082926808545010542, 13105691491791384878, 11136039818041356811),
+UInt256(5354053607655284955, 8801829255340631589, 3579371163942227645, 2348338867848460103),
+UInt256(6692567009569106194, 6390600550748401582, 9085899973355172460, 7547109603237963033),
+UInt256(8365708761961382742, 17211622725290277786, 2134002929839189767, 9433887004047453791),
+UInt256(5228567976225864214, 6145578184879035712, 5945437849576881508, 12813708405170740475),
+UInt256(6535709970282330267, 16905344767953570448, 7431797311971101885, 16017135506463425594),
+UInt256(8169637462852912834, 16519994941514575156, 9289746639963877357, 6186361327797118281),
+UInt256(5106023414283070521, 14936682856873997376, 15029463686832199156, 6172318839086892878),
+UInt256(6382529267853838152, 4835795515810333009, 340085534830697329, 7715398548858616097),
+UInt256(7978161584817297690, 6044744394762916261, 5036792936965759565, 14255934204500658025),
+UInt256(4986350990510811056, 8389651265154210567, 5453838594817293680, 11215801887026605218),
+UInt256(6232938738138513820, 10487064081442763209, 2205612225094229196, 14019752358783256522),
+UInt256(7791173422673142275, 13108830101803454011, 7368701299795174399, 17524690448479070652),
+UInt256(4869483389170713922, 5887175804413464805, 2299595303158290047, 17870460557940501014),
+UInt256(6086854236463392402, 16582341792371606814, 7486180147375250463, 17726389678998238363),
+UInt256(7608567795579240503, 11504555203609732710, 134353147364287271, 17546301080320410050),
+UInt256(4755354872237025314, 14107876029897164799, 13919028772384843256, 17883967202841338137),
+UInt256(5944193590296281643, 8411473000516680191, 12787099947053666167, 3908214929842121056),
+UInt256(7430241987870352054, 5902655232218462335, 11372188915389694805, 273582643875263416),
+UInt256(4643901242418970033, 17524217575418702671, 14025147099759641109, 2476832161635733587),
+UInt256(5804876553023712542, 8070213913991214627, 12919747856272163482, 7707726220472054887),
+UInt256(7256095691279640678, 864395355634242476, 11537998801912816449, 411285738735292801),
+UInt256(9070119614099550847, 10303866231397578903, 14422498502391020561, 5125793191846503905),
+UInt256(5668824758812219279, 13357445422264568670, 15931590591635469706, 14732835790972534701),
+UInt256(7086030948515274099, 12085120759403322934, 10691116202689561325, 9192672701860892568),
+UInt256(8857538685644092624, 10494714930826765764, 4140523216507175848, 16102526895753503614),
+]
+
+private let bid_multipliers1_binary80_146: [UInt256] = [
+UInt256(5535961678527557890, 6559196831766728602, 11811199047171760713, 10064079309845939759),
+UInt256(6919952098159447362, 17422368076563186561, 5540626772109925083, 17191785155734812603),
+UInt256(8649940122699309203, 12554588058849207393, 11537469483564794258, 16878045426241127849),
+UInt256(5406212576687068252, 5540774527567060669, 293389399586914555, 15160464409828092810),
+UInt256(6757765720858835315, 6925968159458825836, 4978422767911031098, 14338894493857728108),
+UInt256(8447207151073544144, 4045774180896144391, 6223028459888788873, 8700246080467384327),
+UInt256(5279504469420965090, 2528608863060090244, 10806921815071574901, 16966868846360584965),
+UInt256(6599380586776206362, 12384133115679888613, 13508652268839468627, 7373528002668567494),
+UInt256(8249225733470257953, 6256794357745084959, 3050757280767172072, 4605223984908321463),
+UInt256(5155766083418911220, 15439711519659147859, 8824252328120564401, 2878264990567700915),
+UInt256(6444707604273639026, 852895325864383208, 6418629391723317597, 8209517256637014047),
+UInt256(8055884505342048782, 10289491194185254818, 8023286739654146996, 14873582589223655463),
+UInt256(5034927815838780489, 1819245977938396357, 9626240230711229777, 72617081410008856),
+UInt256(6293659769798475611, 6885743490850383350, 16644486306816425125, 4702457370189898974),
+UInt256(7867074712248094514, 3995493345135591284, 11582235846665755598, 10489757731164761622),
+UInt256(4916921695155059071, 7108869359137132456, 16462269441020873057, 1944412563550588110),
+UInt256(6146152118943823839, 4274400680494027667, 2131092727566539705, 7042201722865623041),
+UInt256(7682690148679779799, 731314832190146679, 16498923964740338343, 13414438172009416705),
+UInt256(4801681342924862374, 7374600797759923530, 17229356505603793320, 15301552885146967297),
+UInt256(6002101678656077967, 18441623034054680221, 12313323595149965843, 680197032724157505),
+UInt256(7502627098320097459, 18440342774140962373, 1556596438655293591, 14685304346187360593),
+UInt256(4689141936450060912, 9219371224624407531, 3278715783373252446, 16095844244008182227),
+UInt256(5861427420562576140, 11524214030780509413, 17933452784498729270, 10896433268155451976),
+UInt256(7326784275703220175, 14405267538475636767, 8581757925341247876, 4397169548339539161),
+UInt256(9158480344629025219, 13394898404667158055, 6115511388249171941, 5496461935424423952),
+UInt256(5724050215393140762, 6065968493703279832, 10739723645296814319, 5741131718853958922),
+UInt256(7155062769241425952, 16805832653983875598, 13424654556621017899, 2564728630140060748),
+UInt256(8943828461551782441, 2560546743770292882, 7557446158921496565, 17040968842957239647),
+UInt256(5589892788469864025, 13129556760924902811, 9335089867753323257, 12956448536061968732),
+UInt256(6987365985587330032, 2576887895873964802, 7057176316264266168, 2360502614795297203),
+UInt256(8734207481984162540, 3221109869842456002, 18044842432185108518, 2950628268494121503),
+UInt256(5458879676240101587, 11236565705506310809, 15889712538543080727, 15679200723090989652),
+UInt256(6823599595300126984, 9434021113455500608, 6027082617896687197, 14987314885436349160),
+UInt256(8529499494125158730, 11792526391819375760, 7533853272370858997, 4899085551513272738),
+UInt256(5330937183828224206, 11982015013314497754, 4708658295231786873, 5367771478909489414),
+UInt256(6663671479785280258, 5754146729788346384, 15109194905894509399, 11321400367064249671),
+UInt256(8329589349731600322, 16416055449090208789, 439749558658585133, 9540064440402924185),
+UInt256(5205993343582250201, 14871720674108768397, 2580686483375309660, 8268383284465521568),
+UInt256(6507491679477812752, 4754592787353796784, 7837544122646524979, 10335479105581901959),
+UInt256(8134364599347265940, 5943240984192245980, 9796930153308156224, 8307662863549989545),
+UInt256(5083977874592041212, 12937897651974929545, 15346453382672373448, 5192289289718743466),
+UInt256(6354972343240051515, 16172372064968661932, 5348008673058303098, 6490361612148429332),
+UInt256(7943715429050064394, 15603779062783439511, 6685010841322878872, 17336324052040312473),
+UInt256(4964822143156290246, 14364047932667037598, 11095660803467881151, 10835202532525195296),
+UInt256(6206027678945362808, 8731687878979021190, 4646203967480075631, 8932317147229106216),
+UInt256(7757534598681703510, 10914609848723776487, 15031126996204870347, 6553710415608994866),
+UInt256(4848459124176064694, 2209945137024972400, 16311983400269125823, 1790226000541927839),
+UInt256(6060573905220080867, 11985803458135991309, 1943235176626855662, 16072840555959573511),
+UInt256(7575717381525101084, 10370568304242601232, 7040729989210957482, 10867678658094691080),
+UInt256(4734823363453188177, 15704977227006401578, 4400456243256848426, 11403985179736569829),
+]
+
+private let bid_multipliers1_binary80_147: [UInt256] = [
+UInt256(5918529204316485222, 5796163478475838260, 14723942340925836341, 5031609437815936479),
+UInt256(7398161505395606527, 16468576384949573633, 18404927926157295426, 10901197815697308502),
+UInt256(4623850940872254079, 17210389268234565377, 4585550926207227785, 11424934653238205718),
+UInt256(5779813676090317599, 16901300566865818817, 10343624676186422636, 446110261265593435),
+UInt256(7224767095112896999, 16514939690154885617, 17541216863660416199, 557637826581991794),
+UInt256(9030958868891121249, 16031988594266219118, 8091463024293356536, 14532105338509653455),
+UInt256(5644349293056950781, 3102463843775305093, 445478371755959931, 9082565836568533409),
+UInt256(7055436616321188476, 8489765823146519270, 5168533983122337818, 6741521277283278858),
+UInt256(8819295770401485595, 10612207278933149087, 15684039515757698080, 17650273633458874380),
+UInt256(5512059856500928497, 4326786540119524227, 16720053724989643156, 11031421020911796488),
+UInt256(6890074820626160621, 10020169193576793188, 16288381137809666041, 13789276276139745609),
+UInt256(8612593525782700776, 17136897510398379390, 1913732348552530936, 3401537289892518300),
+UInt256(5382870953614187985, 10710560943998987118, 15031140773127495547, 2125960806182823937),
+UInt256(6728588692017734981, 17999887198426121802, 9565553929554593625, 16492509063010693634),
+UInt256(8410735865022168727, 8664800942750488541, 2733570375088466224, 6780578273481203330),
+UInt256(5256709915638855454, 12333029616860137194, 4014324493643985342, 4237861420925752081),
+UInt256(6570887394548569318, 6192914984220395684, 14241277653909757485, 14520698813011965910),
+UInt256(8213609243185711647, 16964515767130270413, 17801597067387196857, 4315815460982793675),
+UInt256(5133505776991069779, 17520351382097500864, 13431841176330691987, 14226599709182715807),
+UInt256(6416882221238837224, 17288753209194488176, 16789801470413364984, 13171563618051006855),
+UInt256(8021102776548546531, 3164197437783558605, 2540507764307154614, 16464454522563758568),
+UInt256(5013189235342841581, 18118524463110581792, 3893660361905665586, 5678598058174961201),
+UInt256(6266486544178551977, 8813097523606063528, 4867075452382081982, 16321619609573477309),
+UInt256(7833108180223189971, 15628057922934967314, 6083844315477602478, 11178652475112070829),
+UInt256(4895692612639493732, 7461693192620660619, 8414088715600889453, 2374971778517656364),
+UInt256(6119615765799367165, 9327116490775825774, 5905924876073723912, 7580400741574458359),
+UInt256(7649519707249208956, 16270581631897170121, 16605778131946930698, 9475500926968072949),
+UInt256(4780949817030755598, 945741483080955518, 3461082304825749830, 10533874097782433497),
+UInt256(5976187271288444497, 10405548890705970205, 13549724917886963096, 3943970585373266063),
+UInt256(7470234089110555621, 17618622131809850661, 3102098092076540158, 4929963231716582579),
+UInt256(4668896305694097263, 13317481841594850615, 4244654316761531550, 16916285075105027824),
+UInt256(5836120382117621579, 12035166283566175365, 694131877524526534, 11921984307026508972),
+UInt256(7295150477647026974, 10432271836030331302, 5479350865333046072, 5679108346928360407),
+UInt256(9118938097058783718, 3816967758183138319, 16072560618521083398, 7098885433660450508),
+UInt256(5699336310661739823, 16220662904146625161, 16962879414216758979, 18271861451319945280),
+UInt256(7124170388327174779, 15664142611755893548, 7368541212488785012, 18228140795722543696),
+UInt256(8905212985408968474, 14968492246267479031, 9210676515610981266, 4338431920943628004),
+UInt256(5565758115880605296, 13966993672344562298, 12674201849897945147, 7323205969017155406),
+UInt256(6957197644850756620, 17458742090430702873, 6619380275517655626, 4542321442844056354),
+UInt256(8696497056063445776, 3376683539328826975, 12885911362824457436, 14901273840409846250),
+UInt256(5435310660039653610, 2110427212080516859, 14971223629406367754, 89924113401378099),
+UInt256(6794138325049567012, 11861406051955421882, 14102343518330571788, 9335777178606498431),
+UInt256(8492672906311958765, 14826757564944277353, 8404557361058438927, 11669721473258123039),
+UInt256(5307920566444974228, 11572566487303867297, 16782063396729994089, 14211104948427408755),
+UInt256(6634900708056217785, 14465708109129834122, 7142521190630328900, 3928823130252097232),
+UInt256(8293625885070272232, 4247077081130128940, 18151523525142686933, 4911028912815121540),
+UInt256(5183516178168920145, 2654423175706330588, 2121330166359403525, 5375236079723144915),
+UInt256(6479395222711150181, 7929714988060301139, 2651662707949254406, 11330731118081319047),
+UInt256(8099244028388937726, 14523829753502764327, 17149636440218731720, 4940041860746873001),
+UInt256(5062027517743086079, 4465707577511839800, 17636051802777789181, 3087526162966795626),
+]
+
+private let bid_multipliers1_binary80_148: [UInt256] = [
+UInt256(6327534397178857599, 970448453462411847, 3598320679762684860, 8471093722135882436),
+UInt256(7909417996473571998, 15048118622110178520, 18332958904985519787, 10588867152669853045),
+UInt256(4943386247795982499, 4793388120391473671, 11458099315615949867, 4312198961204964201),
+UInt256(6179232809744978124, 1380049132061954185, 9710938126092549430, 778562683078817348),
+UInt256(7724041012181222655, 1725061415077442731, 16750358676043074691, 10196575390703297492),
+UInt256(4827525632613264159, 7995692412064483563, 8163131163313227730, 4067016609975866981),
+UInt256(6034407040766580199, 5382929496653216550, 5592227935714146758, 14307142799324609534),
+UInt256(7543008800958225249, 2116975852389132783, 16213656956497459256, 8660556462300986109),
+UInt256(4714380500598890780, 12852324953811677749, 17051064625451993891, 5412847788938116319),
+UInt256(5892975625748613475, 16065406192264597187, 7478772726532828652, 2154373717745257494),
+UInt256(7366219532185766844, 15470071721903358580, 4736779889738647911, 2692967147181571867),
+UInt256(9207774415232208556, 890845578669646609, 5920974862173309888, 17201266989259128546),
+UInt256(5754859009520130347, 9780150523523304938, 15229824334926788440, 10750791868286955342),
+UInt256(7193573761900162934, 7613502135976743269, 9813908381803709742, 13438489835358694177),
+UInt256(8991967202375203668, 293505633116153278, 16879071495682025082, 7574740257343591913),
+UInt256(5619979501484502292, 9406813057552371607, 5937733666373877772, 9345898679267132850),
+UInt256(7024974376855627865, 11758516321940464509, 2810481064539959311, 11682373349083916062),
+UInt256(8781217971069534832, 863087347143416924, 8124787349102337043, 9991280667927507173),
+UInt256(5488261231918459270, 539429591964635577, 14301364130043736460, 3938707408240998032),
+UInt256(6860326539898074087, 9897659026810570280, 4041647107272506863, 4923384260301247539),
+UInt256(8575408174872592609, 7760387765085824946, 5052058884090633579, 1542544306949171520),
+UInt256(5359630109295370380, 16379457399247110351, 7769222820984033890, 17104991256339089864),
+UInt256(6699537636619212976, 2027577675349336323, 5099842507802654459, 12157867033569086522),
+UInt256(8374422045774016220, 2534472094186670404, 1763117116325930170, 10585647773533970249),
+UInt256(5234013778608760137, 10807417095721444810, 10325320234558482164, 11227715876886119310),
+UInt256(6542517223260950171, 18120957388079193917, 3683278256343326897, 14034644846107649137),
+UInt256(8178146529076187714, 18039510716671604492, 9215783838856546526, 3708248002352397709),
+UInt256(5111341580672617321, 15886380216347140711, 14983236936140117386, 16152713056752412280),
+UInt256(6389176975840771652, 6022917215151762177, 14117360151747758829, 10967519284085739542),
+UInt256(7986471219800964565, 7528646518939702722, 3811642134402534824, 18321085123534562332),
+UInt256(4991544512375602853, 7011247083551008153, 6993962352428972169, 11450678202209101457),
+UInt256(6239430640469503566, 13375744872866148095, 13354138958963603116, 478289697479213110),
+UInt256(7799288300586879458, 7496309054227909311, 12080987680277115991, 597862121849016387),
+UInt256(4874555187866799661, 9296879177319831223, 14468146327814279350, 7291192853796717098),
+UInt256(6093193984833499576, 16232784990077176933, 13473496891340461283, 18337363104100672180),
+UInt256(7616492481041874471, 1844237163886919551, 3006813058893412892, 18310017861698452321),
+UInt256(4760307800651171544, 8070177255070406575, 8796787189449464914, 2220389126706756893),
+UInt256(5950384750813964430, 10087721568838008219, 6384297968384443238, 11998858445238221924),
+UInt256(7437980938517455538, 3386279924192734466, 3368686442053166144, 5775201019693001597),
+UInt256(4648738086573409711, 6728110971047846945, 6717115044710616744, 3609500637308125998),
+UInt256(5810922608216762139, 3798452695382420777, 13008079824315658834, 4511875796635157498),
+UInt256(7263653260270952674, 136379850800638068, 2425041725112409830, 14863216782648722680),
+UInt256(9079566575338690842, 9393846850355573393, 3031302156390512288, 9355648941456127542),
+UInt256(5674729109586681776, 10482840299899621274, 13423778893812539940, 5847280588410079714),
+UInt256(7093411386983352220, 13103550374874526593, 7556351580410899117, 7309100735512599642),
+UInt256(8866764233729190275, 16379437968593158241, 14057125493941011800, 13748061937818137457),
+UInt256(5541727646080743922, 7931305721157029949, 1868174406072050519, 8592538711136335911),
+UInt256(6927159557600929903, 690760114591511628, 6946904026017451053, 6128987370493031984),
+UInt256(8658949447001162378, 14698508198521553247, 8683630032521813816, 12272920231543677884),
+UInt256(5411843404375726486, 13798253642503358683, 12344797797967215491, 7670575144714798678),
+]
+
+private let bid_multipliers1_binary80_149: [UInt256] = [
+UInt256(6764804255469658108, 8024445016274422546, 10819311229031631460, 4976532912466110443),
+UInt256(8456005319337072635, 10030556270343028183, 4300766999434763517, 6220666140582638054),
+UInt256(5285003324585670397, 3963254659750698662, 9605508402287809054, 6193759347077842736),
+UInt256(6606254155732087996, 9565754343115761232, 2783513466004985509, 16965571220702079228),
+UInt256(8257817694665109995, 11957192928894701540, 3479391832506231887, 7371905970595435322),
+UInt256(5161136059165693747, 5167402571345494510, 11397991932171170737, 11524970259263228933),
+UInt256(6451420073957117184, 1847567195754480234, 5024117878359187614, 571154768796872454),
+UInt256(8064275092446396480, 2309458994693100292, 15503519384803760325, 9937315497850866375),
+UInt256(5040171932778997800, 1443411871683187683, 466327578647574395, 8516665195370485437),
+UInt256(6300214915973747250, 1804264839603984603, 14417967528591631706, 6034145475785718892),
+UInt256(7875268644967184062, 11478703086359756562, 13410773392312151728, 16766053881586924422),
+UInt256(4922042903104490039, 2562503410547459947, 12993419388622482734, 10478783675991827764),
+UInt256(6152553628880612548, 17038187318466488646, 11630088217350715514, 3875107558135008897),
+UInt256(7690692036100765686, 2850990074373559192, 5314238234833618584, 14067256484523536929),
+UInt256(4806682522562978553, 15616926851765638207, 3321398896771011615, 8792035302827210581),
+UInt256(6008353153203723192, 5686100509424884046, 17986806676245928231, 6378358110106625322),
+UInt256(7510441441504653990, 7107625636781105058, 13260136308452634481, 3361261619205893748),
+UInt256(4694025900940408743, 18277324078270354373, 12899271211210284454, 13630003558072153353),
+UInt256(5867532376175510929, 18234969079410555063, 2289030958730691856, 7814132410735415883),
+UInt256(7334415470219388662, 8958653293981030116, 16696346753695528532, 9767665513419269854),
+UInt256(9168019337774235828, 1974944580621511838, 2423689368409859049, 12209581891774087317),
+UInt256(5730012086108897392, 10457712399743220706, 15349863910538325618, 713459654717722717),
+UInt256(7162515107636121740, 13072140499679025883, 9963957851318131214, 10115196605251929205),
+UInt256(8953143884545152175, 16340175624598782354, 7843261295720276114, 3420623719710135698),
+UInt256(5595714927840720109, 17130138793015320827, 9513724328252560475, 6749575843246222715),
+UInt256(6994643659800900137, 7577615435986987322, 7280469391888312690, 3825283785630390490),
+UInt256(8743304574751125171, 14083705313411122056, 18323958776715166670, 14004976768892763920),
+UInt256(5464565359219453232, 6496472811668257333, 11452474235446979169, 4141424462130589546),
+UInt256(6830706699024316540, 8120591014585321667, 480534739026560249, 9788466596090624837),
+UInt256(8538383373780395675, 10150738768231652083, 14435726479065364023, 16847269263540668950),
+UInt256(5336489608612747297, 4038368720931088600, 6716486040202158562, 17447072317353999950),
+UInt256(6670612010765934121, 9659646919591248654, 8395607550252698203, 12585468359837724129),
+UInt256(8338265013457417651, 16686244667916448722, 1271137400961096946, 11120149431369767257),
+UInt256(5211415633410886032, 8123059908234086499, 5406146894028073495, 11561779413033492440),
+UInt256(6514269541763607540, 10153824885292608124, 2145997599107703965, 9840538247864477646),
+UInt256(8142836927204509425, 12692281106615760155, 2682496998884629956, 16912358828257984961),
+UInt256(5089273079502818391, 1015146663993768240, 17817461688798751387, 1346852230806464793),
+UInt256(6361591349378522988, 15103991385274374013, 3825083037288887617, 15518623343790244703),
+UInt256(7951989186723153736, 433245157883415900, 9393039815038497426, 5563221124455642167),
+UInt256(4969993241701971085, 270778223677134937, 15094021921253836699, 8088699221212164258),
+UInt256(6212491552127463856, 4950158798023806576, 5032469346285132162, 5499188008087817419),
+UInt256(7765614440159329820, 6187698497529758220, 6290586682856415202, 16097357046964547581),
+UInt256(4853509025099581137, 13090683597810874695, 13154988713640035309, 14672534172780230143),
+UInt256(6066886281374476422, 2528296441981429657, 11832049873622656233, 4505609660693123966),
+UInt256(7583607851718095527, 12383742589331562880, 955004286746156579, 10243698094293792862),
+UInt256(4739754907323809704, 14657368145973308656, 596877679216347862, 4096468299719926587),
+UInt256(5924693634154762130, 18321710182466635820, 746097099020434827, 14343957411504684041),
+UInt256(7405867042693452663, 13678765691228518967, 932621373775543534, 13318260745953467147),
+UInt256(4628666901683407914, 15466757584658906210, 7500417386250796565, 3712226947793529063),
+UInt256(5785833627104259893, 10110074943968856955, 152149695958719898, 9251969703169299233),
+]
+
+private let bid_multipliers1_binary80_150: [UInt256] = [
+UInt256(7232292033880324866, 17249279698388459097, 14025245175230563585, 2341590092106848233),
+UInt256(9040365042350406083, 12338227586130798064, 3696498413756040769, 7538673633560948195),
+UInt256(5650228151469003802, 5405549232118054838, 2310311508597525480, 16240886067044062382),
+UInt256(7062785189336254752, 15980308577002344355, 12111261422601682659, 1854363510095526362),
+UInt256(8828481486670318441, 1528641647543378828, 10527390759824715419, 16153012442901571664),
+UInt256(5517800929168949025, 12484616075783081527, 15802991261745222945, 7789789767599788338),
+UInt256(6897251161461186282, 1770712039446688197, 15142053058754140777, 14348923227927123327),
+UInt256(8621563951826482852, 11436762086163136055, 5092508268160512260, 4101095979626740446),
+UInt256(5388477469891551782, 16371348340706735842, 10100346695241402018, 11786557024121488587),
+UInt256(6735596837364439728, 11240813389028643995, 3402061332196976715, 5509824243297084926),
+UInt256(8419496046705549660, 14051016736285804993, 18087634720528384606, 2275594285693968253),
+UInt256(5262185029190968537, 18005257497033403929, 4387242672689158522, 15257304483840893870),
+UInt256(6577731286488710672, 8671513816009591199, 10095739359288836057, 9848258567946341530),
+UInt256(8222164108110888340, 10839392270011988999, 8007988180683657167, 16922009228360314816),
+UInt256(5138852567569305212, 15997992205612268932, 11922521640568367585, 17493784795366278616),
+UInt256(6423565709461631516, 1550746183305784549, 14903152050710459482, 8032172938925684558),
+UInt256(8029457136827039395, 1938432729132230687, 4793882008105910641, 816844136802329889),
+UInt256(5018410710516899621, 17352421520203501843, 9913705282707276006, 12039742631569925941),
+UInt256(6273013388146124527, 7855468844972213592, 7780445584956707104, 5826306252607631618),
+UInt256(7841266735182655659, 5207650037787879086, 9725556981195883880, 7282882815759539523),
+UInt256(4900791709489159787, 948938264403730477, 1466787094820039521, 4551801759849712202),
+UInt256(6125989636861449733, 15021230885786826808, 6445169886952437305, 10301438218239528156),
+UInt256(7657487046076812167, 4941480551951369798, 8056462358690546631, 17488483791226798099),
+UInt256(4785929403798007604, 10005954372610687980, 423602955754203740, 17847831397157830668),
+UInt256(5982411754747509505, 12507442965763359975, 529503694692754676, 3863045172737736719),
+UInt256(7478014693434386882, 1799245651922036256, 14496937673648107057, 4828806465922170899),
+UInt256(4673759183396491801, 5736214550878660564, 9060586046030066910, 14547219087269826572),
+UInt256(5842198979245614751, 11781954207025713609, 11325732557537583638, 8960651822232507407),
+UInt256(7302748724057018439, 10115756740354754108, 322107641639815836, 1977442740935858450),
+UInt256(9128435905071273049, 8033009907016054731, 402634552049769795, 2471803426169823063),
+UInt256(5705272440669545655, 16549846237953503966, 16392547659526963785, 17685778205851997078),
+UInt256(7131590550836932069, 16075621779014492054, 11267312537553928924, 8272164702032832636),
+UInt256(8914488188546165087, 6259469168485951356, 4860768635087635347, 10340205877541040795),
+UInt256(5571555117841353179, 10829697257944801453, 12261352433784547900, 4156785664249456545),
+UInt256(6964443897301691474, 8925435554003613913, 1491632486948521163, 5195982080311820681),
+UInt256(8705554871627114343, 1933422405649741583, 6476226627113039358, 1883291581962387947),
+UInt256(5440971794766946464, 8125918031172170345, 10965170669586731454, 15012115294008656179),
+UInt256(6801214743458683080, 10157397538965212931, 18318149355410802222, 9541772080656044416),
+UInt256(8501518429323353850, 12696746923706516164, 18286000675836114874, 2703843063965279712),
+UInt256(5313449018327096156, 12547152845743960507, 2205378385542795988, 6301587933405687724),
+UInt256(6641811272908870195, 15683941057179950633, 16591781037210658697, 7876984916757109655),
+UInt256(8302264091136087744, 14993240303047550388, 6904668241231159659, 14457917164373774972),
+UInt256(5188915056960054840, 9370775189404718992, 13538789687624250595, 6730355218519915406),
+UInt256(6486143821200068550, 11713468986755898740, 16923487109530313244, 3801258004722506353),
+UInt256(8107679776500085688, 5418464196590097618, 2707614813203339939, 4751572505903132941),
+UInt256(5067299860312553555, 3386540122868811011, 6303945276679475366, 663889806975764137),
+UInt256(6334124825390691943, 18068233208868177476, 3268245577421956303, 10053234295574480979),
+UInt256(7917656031738364929, 17973605492657833941, 4085306971777445379, 7954856851040713319),
+UInt256(4948535019836478081, 4315974405270064357, 4859159866574597314, 2665942522686751873),
+UInt256(6185668774795597601, 10006654025014968350, 10685635851645634546, 12555800190213215649),
+]
+
+private let bid_multipliers1_binary80_151: [UInt256] = [
+UInt256(7732085968494497001, 17120003549696098342, 4133672777702267375, 6471378200911743753),
+UInt256(4832553730309060626, 3782473190918979607, 16418603541346080821, 10962140403210921702),
+UInt256(6040692162886325782, 13951463525503500317, 15911568408255213122, 18314361522441040031),
+UInt256(7550865203607907228, 8215957370024599589, 6054402455036852691, 13669579866196524231),
+UInt256(4719290752254942017, 14358345393120150551, 6089844543611726884, 6237644407159133692),
+UInt256(5899113440318677522, 4112873686118024477, 3000619661087270701, 7797055508948917115),
+UInt256(7373891800398346902, 14364464144502306404, 8362460594786476280, 14358005404613534298),
+UInt256(9217364750497933628, 8732208143773107197, 10453075743483095350, 17947506755766917872),
+UInt256(5760852969061208517, 14681002126712967806, 8839015348890628546, 6605505703926935766),
+UInt256(7201066211326510647, 4516194603109046046, 1825397149258509874, 17480254166763445516),
+UInt256(9001332764158138309, 1033557235458919653, 11505118473427913151, 12626945671599531087),
+UInt256(5625832977598836443, 2951816281375518735, 9496542055106139671, 14809370072390788785),
+UInt256(7032291221998545553, 17524828407001562131, 7258991550455286685, 13900026572061098078),
+UInt256(8790364027498181942, 8070977453469788952, 4462053419641720453, 3539975159794208885),
+UInt256(5493977517186363714, 432674889991230191, 2788783387276075283, 4518327484085074505),
+UInt256(6867471896482954642, 9764215649343813546, 17321037289377257816, 1036223336678955227),
+UInt256(8584339870603693303, 2981897524824991125, 12427924574866796462, 1295279170848694034),
+UInt256(5365212419127308314, 8781214980656701309, 10073295868505441740, 14644607537062597484),
+UInt256(6706515523909135393, 1753146688966100828, 17203305854059190079, 18305759421328246854),
+UInt256(8383144404886419241, 6803119379635013940, 3057388243864435983, 18270513258232920664),
+UInt256(5239465253054012025, 15781164658340353472, 11134239689270048297, 18336599814036657271),
+UInt256(6549331566317515032, 5891397767643278128, 13917799611587560372, 9085691712263657877),
+UInt256(8186664457896893790, 7364247209554097660, 17397249514484450465, 11357114640329572346),
+UInt256(5116665286185558618, 18437712561253474750, 1649908909698005733, 180667622564900860),
+UInt256(6395831607731948273, 13823768664712067629, 11285758173977282974, 4837520546633513979),
+UInt256(7994789509664935342, 3444652775607920825, 272139662189440005, 15270272720146668282),
+UInt256(4996743443540584588, 15987966040037114227, 11699302334936869763, 11849763459305361628),
+UInt256(6245929304425730736, 1538213476336841168, 10012441900243699300, 10200518305704314131),
+UInt256(7807411630532163420, 1922766845421051460, 12515552375304624125, 12750647882130392664),
+UInt256(4879632269082602137, 10425101315242932970, 17045592271420165886, 10274997935545189367),
+UInt256(6099540336353252671, 17643062662481054117, 12083618302420431550, 3620375382576710901),
+UInt256(7624425420441565839, 17442142309673929743, 1269464822743375725, 13748841265075664434),
+UInt256(4765265887775978649, 17818867971187287945, 7710944541855691684, 10898868799885984223),
+UInt256(5956582359719973312, 8438526908701946219, 14250366695747002509, 13623585999857480279),
+UInt256(7445727949649966640, 10548158635877432774, 13201272351256365233, 3194424444539686637),
+UInt256(4653579968531229150, 6592599147423395484, 3639109201107840366, 13525730323905773908),
+UInt256(5816974960664036437, 17464120971134020163, 4548886501384800458, 7683790868027441577),
+UInt256(7271218700830045547, 7995093158635361492, 1074422108303612669, 381366548179526163),
+UInt256(9089023376037556934, 5382180429866813961, 1343027635379515836, 5088394203651795608),
+UInt256(5680639610023473083, 17198920823948922437, 12368607318180667157, 12403618414137148063),
+UInt256(7100799512529341354, 16886965011508765143, 1625701092443670235, 1669464962389271367),
+UInt256(8875999390661676693, 11885334227531180620, 15867184420836751505, 15921889258268752920),
+UInt256(5547499619163547933, 9734176901420681840, 693618226168193883, 3033651758776888719),
+UInt256(6934374523954434916, 16779407145203240204, 867022782710242353, 17627122753753274611),
+UInt256(8667968154943043646, 2527514857794498639, 1083778478387802942, 8198845386909429552),
+UInt256(5417480096839402278, 15414754841403725361, 7594890576633458695, 512592348391005566),
+UInt256(6771850121049252848, 10045071514899880893, 14105299239219211272, 14475798490770920669),
+UInt256(8464812651311566060, 12556339393624851117, 3796565993741850378, 18094748113463650837),
+UInt256(5290507907069728787, 17071084157870307756, 4678696755302350438, 15920903589342169677),
+UInt256(6613134883837160984, 16727169178910496791, 5848370944127938048, 10677757449822936288),
+]
+
+private let bid_multipliers1_binary80_152: [UInt256] = [
+UInt256(8266418604796451231, 2462217399928569373, 2698777661732534656, 13347196812278670360),
+UInt256(5166511627997782019, 8456414902596437714, 3992579047796528112, 8341998007674168975),
+UInt256(6458139534997227524, 5958832609818159238, 14214095846600435948, 10427497509592711219),
+UInt256(8072674418746534405, 7448540762272699048, 8544247771395769127, 13034371886990889024),
+UInt256(5045421511716584003, 6961180985634130857, 5340154857122355704, 15064011457010387496),
+UInt256(6306776889645730004, 4089790213615275667, 11286879589830332535, 383270247553432754),
+UInt256(7883471112057162505, 5112237767019094584, 9496913468860527764, 14314145864723954654),
+UInt256(4927169445035726565, 14724363650455403875, 5935570918037829852, 18169713202307247467),
+UInt256(6158961806294658207, 4570396507787091132, 2807777629119899412, 4265397429174507718),
+UInt256(7698702257868322759, 1101309616306476011, 3509722036399874265, 5331746786468134647),
+UInt256(4811688911167701724, 7605847537832629362, 18334477337245779079, 14861556787611053915),
+UInt256(6014611138959627155, 9507309422290786703, 13694724634702448041, 13965259966086429489),
+UInt256(7518263923699533944, 7272450759436095475, 12506719774950672148, 3621516902325873149),
+UInt256(4698914952312208715, 4545281724647559672, 5510856850130476140, 11486820100808446526),
+UInt256(5873643690390260894, 1069916137382061686, 6888571062663095175, 14358525126010558158),
+UInt256(7342054612987826117, 10560767208582352915, 17834085865183644777, 13336470389085809793),
+UInt256(9177568266234782646, 17812645029155329048, 17680921313052168068, 2835529931075098529),
+UInt256(5735980166396739154, 6521217124794692751, 11050575820657605042, 10995578243776712389),
+UInt256(7169975207995923942, 17374893442848141747, 9201533757394618399, 4521100767866114678),
+UInt256(8962469009994904928, 12495244766705401376, 6890231178315885095, 1039689941405255444),
+UInt256(5601543131246815580, 7809527979190875860, 4306394486447428184, 7567335241019366509),
+UInt256(7001928914058519475, 9761909973988594825, 5382993108059285230, 9459169051274208136),
+UInt256(8752411142573149344, 7590701449058355627, 11340427403501494442, 2600589277237984361),
+UInt256(5470256964108218340, 4744188405661472267, 4781924117974740074, 6237054316701128130),
+UInt256(6837821205135272925, 5930235507076840334, 1365719129041037188, 17019689932731185970),
+UInt256(8547276506419091156, 12024480402273438321, 10930520948156072294, 2827868342204430847),
+UInt256(5342047816511931972, 16738672288275674758, 18360790638666014943, 15602475769159932991),
+UInt256(6677559770639914966, 2476596286635041832, 13727616261477742871, 14891408693022528335),
+UInt256(8346949713299893707, 12319117395148578098, 17159520326847178589, 14002574847850772515),
+UInt256(5216843570812433567, 5393605362754167359, 15336386222706874522, 11057452289120426774),
+UInt256(6521054463515541959, 2130320685015321295, 14558796759956205249, 4598443324545757659),
+UInt256(8151318079394427448, 16497958911551315331, 13586809931517868657, 10359740174109584978),
+UInt256(5094573799621517155, 10311224319719572082, 6185913197984973958, 18004052654886960371),
+UInt256(6368217249526896444, 8277344381222077198, 16955763534335993256, 13281693781753924656),
+UInt256(7960271561908620555, 10346680476527596498, 11971332381065215762, 16602117227192405820),
+UInt256(4975169726192887847, 4160832288616053859, 12093768756593147755, 14988009285422641542),
+UInt256(6218962157741109809, 589354342342679420, 10505524927314046790, 14123325588350914023),
+UInt256(7773702697176387261, 5348378946355737179, 13131906159142558488, 8430784948583866721),
+UInt256(4858564185735242038, 5648579850686029689, 5901598340250405103, 5269240592864916701),
+UInt256(6073205232169052547, 16284096850212312919, 11988683943740394283, 1974864722653757972),
+UInt256(7591506540211315684, 15743435044338003245, 10374168911248104949, 16303638958599361176),
+UInt256(4744691587632072303, 616274865856476220, 8789698578743759545, 12495617358338294687),
+UInt256(5930864484540090378, 14605401637602758987, 10987123223429699432, 1784463642640704647),
+UInt256(7413580605675112973, 9033380010148672926, 9122218010859736386, 2230579553300880809),
+UInt256(4633487878546945608, 7951705515556614531, 1089700238359947337, 6005798239240438410),
+UInt256(5791859848183682010, 9939631894445768163, 15197183353232097883, 12118933817477935916),
+UInt256(7239824810229602513, 3201167831202434396, 14384793173112734450, 10536981253420031991),
+UInt256(9049781012787003141, 8613145807430430899, 17980991466390918063, 3947854529920264181),
+UInt256(5656113132991876963, 7689059138857713264, 8932276657280629837, 9384938108841246969),
+UInt256(7070141416239846204, 4999637905144753676, 11165345821600787296, 16342858654478946615),
+]
+
+private let bid_multipliers1_binary80_153: [UInt256] = [
+UInt256(8837676770299807755, 6249547381430942095, 13956682277000984121, 1981829244389131653),
+UInt256(5523547981437379847, 1600124104180644857, 15640455450766696931, 12767858323811677043),
+UInt256(6904434976796724808, 15835213185507969784, 5715511258176207452, 11348136886337208400),
+UInt256(8630543720995906011, 1347272408175410614, 7144389072720259315, 14185171107921510500),
+UInt256(5394089825622441256, 16982946319605489297, 18300301225732325784, 6559888933237250111),
+UInt256(6742612282028051571, 2781938825797310006, 9040318476883243518, 8199861166546562638),
+UInt256(8428265352535064463, 17312481587528801220, 2077026059249278590, 1026454421328427489),
+UInt256(5267665845334415289, 17737830019846582618, 10521513323885574926, 14476592068612430893),
+UInt256(6584582306668019112, 8337229469526064561, 3928519618002192850, 8872368048910762808),
+UInt256(8230727883335023890, 10421536836907580701, 9522335540930128967, 1867088024283677702),
+UInt256(5144204927084389931, 11125146541494625842, 8257302722295024556, 8084459042818380420),
+UInt256(6430256158855487414, 9294747158440894399, 1098256366014004887, 10105573803522975525),
+UInt256(8037820198569359268, 2395061911196342190, 15207878512799669821, 8020281235976331502),
+UInt256(5023637624105849542, 10720285731352489677, 4893238052072405734, 7318518781698901141),
+UInt256(6279547030132311928, 4176985127335836288, 10728233583517895071, 18371520513978402234),
+UInt256(7849433787665389910, 5221231409169795360, 13410291979397368839, 18352714624045614888),
+UInt256(4905896117290868693, 17098327686013285812, 8381432487123355524, 18387975667669591161),
+UInt256(6132370146613585867, 7537851552234443553, 10476790608904194406, 4538225510877437336),
+UInt256(7665462683266982334, 4810628421865666537, 17707674279557630911, 14896153925451572478),
+UInt256(4790914177041863958, 16841700818948205298, 4149767397082437463, 16227625231048314655),
+UInt256(5988642721302329948, 11828753986830480814, 14410581283207822637, 15672845520383005414),
+UInt256(7485803401627912435, 14785942483538101018, 8789854567155002489, 5755998845196593056),
+UInt256(4678627126017445272, 6935371042997619184, 10105345122899264459, 15126714324316340420),
+UInt256(5848283907521806590, 8669213803747023980, 12631681403624080574, 14296706886968037621),
+UInt256(7310354884402258238, 1613145217829004167, 15789601754530100718, 8647511571855271218),
+UInt256(9137943605502822797, 11239803559141031017, 15125316174735237994, 1586017427964313214),
+UInt256(5711214753439264248, 9330720233676838338, 2535793581568441890, 5602946910905083663),
+UInt256(7139018441799080310, 11663400292096047922, 12393114013815328170, 16227055675486130387),
+UInt256(8923773052248850388, 5355878328265284095, 6268020480414384405, 11060447557502887175),
+UInt256(5577358157655531492, 12570795992020578367, 10835041827900072109, 9218622732652998437),
+UInt256(6971697697069414365, 15713494990025722959, 8932116266447702232, 16134964434243635950),
+UInt256(8714622121336767957, 5806810682249989987, 6553459314632239887, 1721961469094993321),
+UInt256(5446638825835479973, 5935099685619937694, 1790069062431455977, 7993754945825452682),
+UInt256(6808298532294349966, 12030560625452310021, 11460958364894095779, 14603879700709203756),
+UInt256(8510373165367937458, 5814828744960611719, 491139900835456012, 13643163607459116791),
+UInt256(5318983228354960911, 8245953984027770228, 7224491465663241863, 17750349291516723803),
+UInt256(6648729035443701139, 5695756461607324881, 9030614332079052329, 17576250595968516849),
+UInt256(8310911294304626424, 2508009558581768197, 15899953933526203316, 8135255189678482349),
+UInt256(5194319558940391515, 1567505974113605123, 12243314217667571024, 14307906530403827277),
+UInt256(6492899448675489393, 15794440522924170116, 10692456753657075876, 17884883163004784096),
+UInt256(8116124310844361742, 5907992598373048933, 13365570942071344846, 3909359880046428503),
+UInt256(5072577694277726088, 17527553429265319295, 10659324848008284480, 16278407980311181527),
+UInt256(6340722117847157611, 3462697712872097503, 8712470041582967697, 1901265901679425292),
+UInt256(7925902647308947013, 18163430196372285591, 6278901533551321717, 6988268395526669519),
+UInt256(4953689154568091883, 13657986881946372446, 10841842486110657929, 6673510756417862402),
+UInt256(6192111443210114854, 12460797584005577654, 4328931070783546603, 12953574463949715906),
+UInt256(7740139304012643568, 6352624943152196259, 14634535875334209062, 11580282061509756978),
+UInt256(4837587065007902230, 3970390589470122662, 6840741912870186712, 2625990270016210208),
+UInt256(6046983831259877787, 14186360273692429135, 17774299427942509198, 3282487837520262760),
+UInt256(7558729789074847234, 13121264323688148515, 17606188266500748593, 13326481833755104257),
+]
+
+private let bid_multipliers1_binary80_154: [UInt256] = [
+UInt256(4724206118171779521, 12812476220732480726, 8698024657349273919, 1411522118455858305),
+UInt256(5905257647714724402, 2180537220633437196, 1649158784831816590, 15599460703351986593),
+UInt256(7381572059643405502, 11949043562646572303, 2061448481039770738, 10275953842335207433),
+UInt256(4613482537277128439, 2856466208226719785, 8205934328290938567, 11034157169886892550),
+UInt256(5766853171596410548, 17405640815565563443, 14869103928791061113, 9181010443931227783),
+UInt256(7208566464495513186, 3310306945747402688, 13974693892561438487, 16087949073341422633),
+UInt256(9010708080619391482, 13361255719039029168, 17468367365701798109, 15498250323249390387),
+UInt256(5631692550387119676, 12962470842826781134, 10917729603563623818, 11992249461244562944),
+UInt256(7039615687983899595, 16203088553533476418, 4423789967599753965, 5766939789700927872),
+UInt256(8799519609979874494, 15642174673489457618, 14753109496354468264, 11820360755553547744),
+UInt256(5499699756237421559, 5164673152503523107, 13832379453648930569, 7387725472220967340),
+UInt256(6874624695296776949, 1844155422202015980, 12678788298633775307, 13846342858703597079),
+UInt256(8593280869120971186, 6916880296179907879, 15848485373292219134, 12696242554952108445),
+UInt256(5370800543200606991, 8934736203539830328, 16822832385948718815, 3323465578417679874),
+UInt256(6713500679000758739, 6556734235997400007, 2581796408726346902, 17989390028304263555),
+UInt256(8391875848750948424, 3584231776569362104, 17062303566190097340, 13263365498525553635),
+UInt256(5244922405469342765, 2240144860355851315, 10663939728868810837, 17512975473433246830),
+UInt256(6556153006836678456, 7411867093872202048, 8718238642658625643, 8056161286509394826),
+UInt256(8195191258545848070, 9264833867340252560, 10897798303323282054, 5458515589709355628),
+UInt256(5121994536591155044, 1178835148660269946, 6811123939577051283, 17246630298850510980),
+UInt256(6402493170738943805, 1473543935825337432, 17737276961326089912, 16946601855135750820),
+UInt256(8003116463423679756, 6453615938209059695, 3724852127948060775, 2736508245210136909),
+UInt256(5001947789639799847, 13256881998235438117, 9245561607608619840, 8627846680897417424),
+UInt256(6252434737049749809, 11959416479366909742, 16168638027938162704, 10784808351121771780),
+UInt256(7815543421312187262, 1114212543926473466, 10987425498067927572, 13481010438902214725),
+UInt256(4884714638320117038, 14531440895236209628, 11478826954719842636, 17649003561168660012),
+UInt256(6105893297900146298, 8940929082190486227, 14348533693399803296, 3614510377751273398),
+UInt256(7632366622375182873, 1952789315883331976, 13323981098322366216, 4518137972189091748),
+UInt256(4770229138984489295, 12749708368495552245, 8327488186451478885, 2823836232618182343),
+UInt256(5962786423730611619, 11325449442192052402, 15021046251491736510, 8141481309200115832),
+UInt256(7453483029663264524, 9545125784312677599, 9552935777509894830, 953479599645368982),
+UInt256(4658426893539540327, 15189075652050199307, 12888113888584766124, 14430982805060519326),
+UInt256(5823033616924425409, 14374658546635361230, 11498456342303569751, 18038728506325649157),
+UInt256(7278792021155531762, 4133265128012037826, 5149698391024686381, 17936724614479673543),
+UInt256(9098490026444414702, 14389953446869823090, 15660495025635633785, 8585847712817428216),
+UInt256(5686556266527759189, 4382034885866251527, 14399495409449659019, 16895369866579362395),
+UInt256(7108195333159698986, 10089229625760202313, 13387683243384685870, 16507526314796815090),
+UInt256(8885244166449623733, 3388164995345477084, 2899545998948693626, 11411035856641243054),
+UInt256(5553277604031014833, 4423446131304617129, 11035588286197709324, 11743583428828164813),
+UInt256(6941597005038768541, 10140993682558159315, 18406171376174524559, 14679479286035206016),
+UInt256(8676996256298460676, 17287928121625087048, 18396028201790767795, 13737663089116619616),
+UInt256(5423122660186537923, 1581583039160903597, 11497517626119229872, 6280196421484193308),
+UInt256(6778903325233172403, 15812036854233293209, 536838977366873628, 7850245526855241635),
+UInt256(8473629156541465504, 15153360049364228607, 5282734740135979939, 9812806908569052044),
+UInt256(5296018222838415940, 9470850030852642879, 10219238240226069318, 3827161308641963576),
+UInt256(6620022778548019925, 11838562538565803599, 8162361781855198743, 14007323672657230277),
+UInt256(8275028473185024907, 963145117925090787, 5591266208891610525, 12897468572394149943),
+UInt256(5171892795740640566, 16742866763199039406, 1188698371343562626, 10366760866960037666),
+UInt256(6464865994675800708, 11705211417144023449, 10709245001034229091, 3735079046845271275),
+UInt256(8081082493344750885, 14631514271430029311, 17998242269720174268, 57162790129201189),
+]
+
+private let bid_multipliers1_binary80_155: [UInt256] = [
+UInt256(5050676558340469303, 11450539428857462271, 18166430446216190773, 9259098780685526552),
+UInt256(6313345697925586629, 9701488267644439935, 18096352039342850562, 16185559494284296093),
+UInt256(7891682122406983286, 16738546352982937823, 18008754030751175299, 11008577331000594309),
+UInt256(4932301326504364554, 5849905452186948235, 18173000296860566418, 4574517822661677491),
+UInt256(6165376658130455692, 16535753852088461102, 18104564352648320118, 14941519315181872672),
+UInt256(7706720822663069616, 2222948241401024762, 13407333403955624340, 9453527107122565031),
+UInt256(4816700514164418510, 1389342650875640476, 12991269395899653116, 15131826478806378953),
+UInt256(6020875642705523137, 10960050350449326403, 16239086744874566396, 468039024798422075),
+UInt256(7526094553381903921, 18311748956489045908, 15687172412665820091, 585048780998027594),
+UInt256(4703809095863689951, 4527314070164571837, 581110721061361748, 16506556552619624910),
+UInt256(5879761369829612439, 1047456569278326892, 5338074419754090090, 2186451617064979522),
+UInt256(7349701712287015548, 15144378766880072327, 6672593024692612612, 11956436558186000210),
+UInt256(9187127140358769436, 483729384890538793, 3729055262438377861, 14945545697732500262),
+UInt256(5741954462724230897, 9525702902411362553, 13859874585092455923, 11646809070296506616),
+UInt256(7177443078405288621, 16518814646441591096, 3489785176083406192, 9946825319443245366),
+UInt256(8971803848006610777, 6813460252769825158, 4362231470104257740, 12433531649304056707),
+UInt256(5607377405004131735, 15787627704049610483, 16561452724097324799, 16994329317669811250),
+UInt256(7009221756255164669, 15122848611634625200, 16090129886694268095, 16631225628659876159),
+UInt256(8761527195318955837, 5068502709261117789, 1665918284658283503, 16177346017397457294),
+UInt256(5475954497074347398, 5473657202501892570, 3347041937125121141, 17028370288514492665),
+UInt256(6844943121342934247, 16065443539982141520, 13407174458261177235, 7450404805360952119),
+UInt256(8556178901678667809, 15470118406550288996, 16758968072826471544, 4701319988273802245),
+UInt256(5347611813549167381, 2751294976452848767, 1250983008661768907, 2938324992671126403),
+UInt256(6684514766936459226, 8050804738993448862, 15398786816109374845, 17507964296121071716),
+UInt256(8355643458670574033, 840133886887035270, 10025111483281942749, 8049897314869175933),
+UInt256(5222277161669108770, 12054298725372866804, 1654008658623826314, 7337028831006928910),
+UInt256(6527846452086385963, 5844501369861307697, 2067510823279782892, 18394658075613436946),
+UInt256(8159808065107982454, 2693940693899246717, 7196074547527116520, 4546578520807244566),
+UInt256(5099880040692489033, 15518770988969192910, 6803389601418141777, 2841611575504527854),
+UInt256(6374850050865611292, 5563405680929327425, 17727609038627453029, 8163700487808047721),
+UInt256(7968562563582014115, 6954257101161659282, 8324453243002152574, 14816311628187447555),
+UInt256(4980351602238758822, 2040567679012343099, 9814469295303733263, 4648508749189766818),
+UInt256(6225439502798448527, 11774081635620204682, 7656400600702278675, 1198949918059820619),
+UInt256(7781799378498060659, 10105916026097867949, 347128714023072535, 15333745452856939485),
+UInt256(4863624611561287912, 4010354507097473516, 2522798455478114286, 16501119935676669034),
+UInt256(6079530764451609890, 5012943133871841895, 3153498069347642858, 11403027882741060485),
+UInt256(7599413455564512362, 15489550954194578176, 17776930641966717285, 5030412816571549798),
+UInt256(4749633409727820226, 14292655364798999264, 11110581651229198303, 5449851019570912576),
+UInt256(5937041762159775283, 8642447169143973272, 13888227064036497879, 2200627756036252816),
+UInt256(7421302202699719104, 6191372943002578686, 17360283830045622348, 16585842750327479732),
+UInt256(4638313876687324440, 3869608089376611679, 6238491375351126064, 1142779682099899025),
+UInt256(5797892345859155550, 4837010111720764599, 3186428200761519676, 1428474602624873781),
+UInt256(7247365432323944437, 15269634676505731556, 17818093306234063307, 1785593253281092226),
+UInt256(9059206790404930547, 5251985290350000734, 3825872559083027517, 16067049621883528994),
+UInt256(5662004244003081592, 976647797255056506, 16226228404709055910, 12347749022890899573),
+UInt256(7077505305003851990, 1220809746568820633, 11059413469031544080, 6211314241758848658),
+UInt256(8846881631254814987, 10749384220065801599, 18435952854716818004, 7764142802198560823),
+UInt256(5529301019534259367, 4412522128327432047, 18439999561839093108, 14075961288228876323),
+UInt256(6911626274417824209, 903966641981902155, 18438313433871478481, 17594951610286095403),
+UInt256(8639532843022280261, 5741644320904765598, 18436205773911960198, 8158631457575455542),
+]
+
+private let bid_multipliers1_binary80_156: [UInt256] = [
+UInt256(5399708026888925163, 5894370709779172451, 6910942590267587220, 487458642557271810),
+UInt256(6749635033611156454, 2756277368796577660, 4026992219407096121, 609323303196589762),
+UInt256(8437043792013945567, 12668718747850497883, 5033740274258870151, 5373340147423125106),
+UInt256(5273152370008715979, 14835478245047643033, 840244662198099892, 10275866619780535048),
+UInt256(6591440462510894974, 13932661787882165887, 5661991846175012769, 12844833274725668810),
+UInt256(8239300578138618718, 8192455197997931551, 2465803789291378058, 2220983538124922300),
+UInt256(5149562861336636699, 508598480321319315, 8458656395948193142, 5999800729755464342),
+UInt256(6436953576670795873, 14470806155683812856, 5961634476507853523, 16723122949049106235),
+UInt256(8046191970838494842, 4253449639322602358, 7452043095634816904, 16292217667883994889),
+UInt256(5028869981774059276, 7270092043004014378, 45840916344372661, 10182636042427496806),
+UInt256(6286087477217574095, 9087615053755017972, 9280673182285241634, 17339981071461758911),
+UInt256(7857609346521967619, 6747832798766384561, 11600841477856552043, 12451604302472422831),
+UInt256(4911005841576229762, 1911552490015296399, 332996896019263171, 5476409679831570318),
+UInt256(6138757301970287202, 11612812649373896306, 14251304175306242676, 2233826081362074993),
+UInt256(7673446627462859003, 5292643774862594575, 8590758182278027537, 2792282601702593741),
+UInt256(4795904142164286877, 1002059350075427657, 12286752891564849066, 13274391672132590848),
+UInt256(5994880177705358596, 5864260206021672476, 1523383059173897621, 7369617553310962752),
+UInt256(7493600222131698245, 7330325257527090595, 1904228823967372026, 13823707960066091344),
+UInt256(4683500138832311403, 6887296295168125573, 17331044079475465180, 13251503493468694994),
+UInt256(5854375173540389254, 3997434350532769063, 7828747044062167763, 16564379366835868743),
+UInt256(7317968966925486567, 14220164975020737137, 5174247786650321800, 16093788190117448024),
+UInt256(9147461208656858209, 13163520200348533517, 11079495751740290155, 1670491163937258414),
+UInt256(5717163255410536381, 1309671097576751592, 9230527854051375298, 17184958041956644173),
+UInt256(7146454069263170476, 6248774890398327394, 11538159817564219123, 12257825515591029408),
+UInt256(8933067586578963095, 7810968612997909243, 5199327735100498096, 10710595876061398856),
+UInt256(5583167241611851934, 11799384410764775133, 943736825224117358, 6694122422538374285),
+UInt256(6978959052014814918, 5525858476601193108, 5791357049957534601, 17591025065027743665),
+UInt256(8723698815018518647, 16130695132606267193, 7239196312446918252, 8153723276002515869),
+UInt256(5452311759386574154, 16999213485519998851, 16053712741347793667, 14319449084356348226),
+UInt256(6815389699233217693, 12025644820045222756, 15455454908257354180, 13287625337018047378),
+UInt256(8519237124041522117, 1196997969774364734, 872574561612141109, 16609531671272559223),
+UInt256(5324523202525951323, 3053966740322671910, 14380417156289751905, 12686800303759043467),
+UInt256(6655654003157439153, 17652516480685503600, 8752149408507414074, 2023442324416640621),
+UInt256(8319567503946798942, 8230587545574715788, 10940186760634267592, 11752674942375576584),
+UInt256(5199729689966749339, 532431197556809463, 16060988762251193053, 7345421838984735365),
+UInt256(6499662112458436673, 14500597052228175541, 15464549934386603412, 13793463317158307111),
+UInt256(8124577640573045842, 4290688260003055715, 5495629362701090553, 17241829146447883888),
+UInt256(5077861025358153651, 7293366180929297726, 1128925342474487644, 3858614188888845574),
+UInt256(6347326281697692064, 4505021707734234253, 10634528714947885363, 4823267736111056968),
+UInt256(7934157852122115080, 5631277134667792816, 17904846912112244608, 1417398651711433305),
+UInt256(4958848657576321925, 3519548209167370510, 11190529320070152880, 885874157319645816),
+UInt256(6198560821970402406, 9011121279886601042, 4764789613232915292, 1107342696649557270),
+UInt256(7748201027463003008, 2040529563003475494, 15179359053395919923, 1384178370811946587),
+UInt256(4842625642164376880, 1275330976877172184, 4875413389945062047, 17006012546253324281),
+UInt256(6053282052705471100, 1594163721096465230, 6094266737431327559, 16645829664389267447),
+UInt256(7566602565881838875, 1992704651370581537, 16841205458643935257, 16195601062059196405),
+UInt256(4729126603676149296, 17386341471602471125, 3608224384011377680, 3204721636145915897),
+UInt256(5911408254595186621, 3286182765793537290, 9121966498441610004, 4005902045182394872),
+UInt256(7389260318243983276, 8719414475669309517, 2179086086197236697, 5007377556477993589),
+UInt256(4618287698902489547, 14673006084148094256, 3667771813086966887, 14658826018867215754),
+]
+
+private let bid_multipliers1_binary80_157: [UInt256] = [
+UInt256(5772859623628111934, 13729571586757729916, 4584714766358708609, 13711846505156631788),
+UInt256(7216074529535139918, 7938592446592386587, 5730893457948385762, 3304750076163626023),
+UInt256(9020093161918924898, 699868521385707426, 2551930804008094298, 13354309632059308336),
+UInt256(5637558226199328061, 5049103844293455045, 6206642770932446840, 12958129538464455614),
+UInt256(7046947782749160076, 10923065823794206710, 12369989482092946454, 16197661923080569518),
+UInt256(8808684728436450095, 13653832279742758388, 6239114815761407260, 11023705366995936089),
+UInt256(5505427955272781309, 15451174202480305848, 13122818796705655345, 16113187891227235864),
+UInt256(6881784944090976637, 5478909697818218598, 16403523495882069182, 6306426808751881118),
+UInt256(8602231180113720796, 11460323140700161152, 11281032332997810669, 17106405547794627205),
+UInt256(5376394487571075497, 16386073999792376528, 7050645208123631668, 12997346476585335955),
+UInt256(6720493109463844372, 6647534444458306948, 8813306510154539585, 16246683095731669944),
+UInt256(8400616386829805465, 8309418055572883685, 11016633137693174482, 6473295814382423718),
+UInt256(5250385241768628415, 16722601330801522063, 9191238720271928003, 8657495902416402728),
+UInt256(6562981552210785519, 16291565645074514675, 6877362381912522100, 6210183859593115506),
+UInt256(8203726940263481899, 15752771037915755440, 3985016958963264721, 7762729824491394382),
+UInt256(5127329337664676187, 7539638889483653198, 2490635599352040450, 16380921186375591249),
+UInt256(6409161672080845234, 4812862593427178593, 12336666536044826371, 11252779446114713253),
+UInt256(8011452090101056542, 15239450278638749050, 1585775114773869252, 9454288289216003662),
+UInt256(5007157556313160339, 4912970405721830252, 5602795465161056186, 15132302217614778097),
+UInt256(6258946945391450424, 1529526988724899911, 7003494331451320233, 9692005735163696813),
+UInt256(7823683681739313030, 1911908735906124889, 4142681895886762387, 16726693187382008920),
+UInt256(4889802301087070643, 15030001015223491767, 14118391230997696252, 8148340232900061623),
+UInt256(6112252876358838304, 14175815250601976805, 13036303020319732411, 10185425291125077029),
+UInt256(7640316095448547880, 17719769063252471007, 2460320720117501802, 8120095595478958382),
+UInt256(4775197559655342425, 11074855664532794379, 8455229477714520482, 9686745765601736893),
+UInt256(5968996949569178032, 8511525383829262, 5957350828715762699, 2885060170147395308),
+UInt256(7461246186961472540, 10639406729786577, 16670060572749479181, 17441383267966407847),
+UInt256(4663278866850920337, 9230021666060892419, 3501258830327342632, 13206707551692698857),
+UInt256(5829098583563650421, 16149213101003503427, 18211631593191342002, 16508384439615873571),
+UInt256(7286373229454563027, 6351458320972215572, 18152853473061789599, 11412108512665066155),
+UInt256(9107966536818203784, 3327636882787881562, 4244322767617685383, 9653449622403944790),
+UInt256(5692479085511377365, 2079773051742425976, 7264387748188441268, 12950935041643547350),
+UInt256(7115598856889221706, 7211402333105420374, 9080484685235551585, 16188668802054434187),
+UInt256(8894498571111527132, 18237624953236551276, 2127233819689663674, 6400777947285879022),
+UInt256(5559061606944704458, 2175143558918068739, 10552893174160815604, 8612172235481062293),
+UInt256(6948827008680880572, 11942301485502361732, 8579430449273631601, 10765215294351327866),
+UInt256(8686033760851100715, 14927876856877952165, 10724288061592039501, 18068205136366547737),
+UInt256(5428771100531937947, 7024080026335026151, 9008523047708718640, 13598471219442786288),
+UInt256(6785963875664922434, 4168414014491394785, 6648967791208510396, 16998089024303482859),
+UInt256(8482454844581153042, 14433889554969019289, 12922895757438025900, 2800867206669801958),
+UInt256(5301534277863220651, 13632866990283024960, 1159280820757684331, 10973914041023402032),
+UInt256(6626917847329025814, 12429397719426393296, 1449101025947105414, 9105706532851864636),
+UInt256(8283647309161282268, 6313375112428215812, 1811376282433881768, 2158761129210054987),
+UInt256(5177279568225801417, 13169231482122410690, 10355482213375951913, 1349225705756284367),
+UInt256(6471599460282251772, 2626481297370849651, 3720980729865164083, 6298218150622743362),
+UInt256(8089499325352814715, 3283101621713562064, 39539893904067200, 3261086669851041299),
+UInt256(5055937078345509196, 18192839578066833954, 24712433690042000, 2038179168656900812),
+UInt256(6319921347931886496, 4294305398873990826, 9254262578967328308, 2547723960821126015),
+UInt256(7899901684914858120, 5367881748592488533, 2344456186854384577, 3184654951026407518),
+UInt256(4937438553071786325, 3354926092870305333, 3771128125997684312, 13519624390459974459),
+]
+
+private let bid_multipliers1_binary80_158: [UInt256] = [
+UInt256(6171798191339732906, 8805343634515269570, 9325596175924493294, 16899530488074968074),
+UInt256(7714747739174666133, 1783307506289311155, 2433623183050840810, 11901041073238934284),
+UInt256(4821717336984166333, 3420410200644513423, 17661915553902633170, 12049836689201721832),
+UInt256(6027146671230207916, 8887198769233029683, 17465708423950903559, 5838923824647376482),
+UInt256(7533933339037759895, 11108998461541287104, 17220449511511241545, 2686968762381832698),
+UInt256(4708708336898599934, 13860653066104386296, 10762780944694525965, 13208570522557115196),
+UInt256(5885885421123249918, 8102444295775707062, 13453476180868157457, 2675655097914230283),
+UInt256(7357356776404062398, 904683332864858020, 7593473189230421013, 7956254890820175758),
+UInt256(9196695970505077997, 10354226202935848333, 9491841486538026266, 14557004631952607602),
+UInt256(5747934981565673748, 8777234386048599160, 8238243938299960368, 13709813913397767655),
+UInt256(7184918726957092185, 10971542982560748950, 10297804922874950460, 17137267391747209569),
+UInt256(8981148408696365231, 18326114746628324092, 3648884116738912268, 2974840165974460345),
+UInt256(5613217755435228269, 18371350744283784413, 11503924609816595975, 11082647140588813524),
+UInt256(7016522194294035337, 9129130375072566805, 544847706988581257, 9241622907308629001),
+UInt256(8770652742867544171, 16023098987268096410, 5292745652163114475, 16163714652563174155),
+UInt256(5481657964292215107, 7708593857828866304, 7919652051029334451, 7796478648638289895),
+UInt256(6852072455365268884, 5024056303858694976, 9899565063786668064, 5133912292370474464),
+UInt256(8565090569206586105, 6280070379823368720, 12374456329733335080, 6417390365463093080),
+UInt256(5353181605754116315, 15454259033458075210, 7734035206083334425, 4010868978414433175),
+UInt256(6691477007192645394, 14706137773395206109, 444171970749392223, 9625272241445429373),
+UInt256(8364346258990806743, 9159300179889231828, 5166900981864128183, 7419904283379398812),
+UInt256(5227716411869254214, 12642091640071851748, 12452685150519855922, 11554969204753206114),
+UInt256(6534645514836567768, 6579242513235038877, 15565856438149819903, 5220339469086731834),
+UInt256(8168306893545709710, 8224053141543798597, 5622262492405111167, 1913738317931026889),
+UInt256(5105191808466068569, 528347195037486219, 5819757066966888431, 8113615476347973662),
+UInt256(6381489760582585711, 5272120012224245678, 2663010315281222635, 5530333327007579173),
+UInt256(7976862200728232139, 1978463996852919193, 12552134930956304102, 2301230640332086062),
+UInt256(4985538875455145086, 17377441062528932160, 927555304206608207, 15273327205489717501),
+UInt256(6231923594318931358, 12498429291306389392, 1159444130258260259, 14479972988434758972),
+UInt256(7789904492898664198, 6399664577278210932, 1449305162822825324, 13488280217116060811),
+UInt256(4868690308061665123, 17834848416081045544, 10129187763619041635, 17653547172552313815),
+UInt256(6085862885077081404, 17681874501673919026, 12661484704523802044, 17455247947263004365),
+UInt256(7607328606346351756, 3655599053382847167, 6603483843799976748, 3372315860369203840),
+UInt256(4754580378966469847, 11508121445219055287, 11044706430016067323, 11331069449585528208),
+UInt256(5943225473708087309, 9773465788096431205, 9194197019092696250, 9552150793554522356),
+UInt256(7429031842135109136, 16828518253547926910, 16104432292293258217, 2716816455088377137),
+UInt256(4643144901334443210, 10517823908467454319, 5453584164255898481, 13227225330498705471),
+UInt256(5803931126668054013, 3923907848729542091, 2205294186892485198, 2698973607841218126),
+UInt256(7254913908335067516, 9516570829339315517, 16591675788897770209, 12597089046656298466),
+UInt256(9068642385418834395, 11895713536674144397, 6904536680840049050, 1911303253038209370),
+UInt256(5667901490886771497, 5128977951207646296, 6621178434738724608, 5806250551576268760),
+UInt256(7084876863608464371, 11022908457436945774, 8276473043423405760, 7257813189470335950),
+UInt256(8856096079510580464, 9166949553368794314, 1122219267424481392, 9072266486837919938),
+UInt256(5535060049694112790, 5729343470855496446, 5313073060567688774, 5670166554273699961),
+UInt256(6918825062117640987, 16385051375424146365, 15864713362564386775, 16311080229696900759),
+UInt256(8648531327647051234, 15869628200852795053, 5995833647923319757, 15777164268693738045),
+UInt256(5405332079779407021, 14530203643960384812, 6053239039165768800, 12166570677147280230),
+UInt256(6756665099724258777, 4327696499668317303, 7566548798957211000, 15208213346434100288),
+UInt256(8445831374655323471, 10021306643012784533, 4846499980269125847, 563522609333073744),
+UInt256(5278644609159577169, 13180845679524072189, 5334905496881897606, 7269730658474252946),
+]
+
+private let bid_multipliers1_binary80_159: [UInt256] = [
+UInt256(6598305761449471462, 2640999044122926524, 11280317889529759911, 18310535359947591990),
+UInt256(8247882201811839327, 12524620842008433963, 14100397361912199889, 18276483181507102084),
+UInt256(5154926376132399579, 14745417053896353083, 6506905341981430979, 4505272960800856947),
+UInt256(6443657970165499474, 13820085298943053450, 3521945659049400820, 1019905182573683279),
+UInt256(8054572462706874343, 8051734586824041004, 13625804110666526833, 1274881478217104099),
+UInt256(5034107789191796464, 11949863144406107483, 17739499606021355078, 12326015969954159822),
+UInt256(6292634736489745580, 14937328930507634354, 17562688489099305944, 6184147925587923969),
+UInt256(7865793420612181976, 224917089424991327, 12729988574519356622, 7730184906984904961),
+UInt256(4916120887882613735, 140573180890619579, 14873771886715679745, 219679548438177697),
+UInt256(6145151109853267168, 14010774531395438186, 13980528839967211777, 4886285453975110025),
+UInt256(7681438887316583960, 17513468164244297733, 8252289013104238913, 10719542835896275435),
+UInt256(4800899304572864975, 10945917602652686083, 7463523642403843272, 18228929318503641907),
+UInt256(6001124130716081219, 9070710984888469700, 4717718534577416187, 4339417574420000768),
+UInt256(7501405163395101524, 6726702712683199221, 5897148168221770234, 812585949597613056),
+UInt256(4688378227121938452, 13427561232281775321, 5991560614352300348, 5119552236925896064),
+UInt256(5860472783902423065, 16784451540352219151, 12101136786367763339, 6399440296157370080),
+UInt256(7325590979878028832, 7145506370158110227, 10514734964532316270, 3387614351769324696),
+UInt256(9156988724847536040, 8931882962697637784, 8531732687238007433, 13457889976566431678),
+UInt256(5723117953029710025, 5582426851686023615, 5332332929523754646, 1493652207712937943),
+UInt256(7153897441287137531, 11589719583034917423, 2053730143477305403, 11090437296495948236),
+UInt256(8942371801608921914, 9875463460366258874, 16402220734628795466, 9251360602192547391),
+UInt256(5588982376005576196, 10783850681156299700, 14863073977570385070, 10393786394797730024),
+UInt256(6986227970006970245, 13479813351445374626, 132098398253429722, 3768860956642386722),
+UInt256(8732784962508712807, 3014708634024554570, 9388495034671562960, 13934448232657759210),
+UInt256(5457990601567945504, 8801721923906428462, 10479495415097114754, 8709030145411099506),
+UInt256(6822488251959931880, 11002152404883035578, 3875997232016617635, 1662915644909098575),
+UInt256(8528110314949914850, 13752690506103794472, 14068368576875547851, 15913702611418536930),
+UInt256(5330068946843696781, 13207117584742259449, 8792730360547217407, 7640221122922891630),
+UInt256(6662586183554620977, 2673838925645660599, 15602598969111409663, 4938590385226226633),
+UInt256(8328232729443276221, 7953984675484463653, 14891562692961874175, 1561551963105395387),
+UInt256(5205145455902047638, 7277083431391483735, 11613069692314865311, 7893499004581953973),
+UInt256(6506431819877559547, 18319726326094130477, 9904651096966193735, 5255187737300054562),
+UInt256(8133039774846949434, 18287971889190275192, 16992499889635130073, 1957298653197680299),
+UInt256(5083149859279343396, 16041668449171309899, 10620312431021956295, 12752526704317019947),
+UInt256(6353937324099179246, 1605341487754585758, 8663704520350057465, 11328972361968887030),
+UInt256(7942421655123974057, 11230048896548008006, 1606258613582796024, 326157397178945075),
+UInt256(4964013534452483786, 101251532701423147, 14838969688771411227, 203848373236840672),
+UInt256(6205016918065604732, 9349936452731554742, 13937026092536876129, 14089868521828214552),
+UInt256(7756271147582005915, 11687420565914443428, 8197910578816319354, 3777277597003104478),
+UInt256(4847669467238753697, 4998794844482833190, 14347066148614975404, 6972484516554328203),
+UInt256(6059586834048442121, 10860179574030929392, 8710460648913943447, 8715605645692910253),
+UInt256(7574483542560552651, 18186910485966049644, 10888075811142429309, 6282821038688749912),
+UInt256(4734052214100345407, 9060976044515087075, 16028419418818794126, 6232606158394162647),
+UInt256(5917565267625431759, 6714534037216470940, 15423838255096104753, 17014129734847479117),
+UInt256(7396956584531789699, 3781481528093200772, 833053745160579326, 7432604113277185184),
+UInt256(4623097865332368562, 57582945844556530, 9744030627580137887, 33691552370852836),
+UInt256(5778872331665460702, 9295350719160471471, 2956666247620396550, 13877172495745729757),
+UInt256(7223590414581825878, 2395816362095813530, 17530890864807659400, 8123093582827386389),
+UInt256(9029488018227282347, 12218142489474542721, 12690241544154798442, 10153866978534232986),
+UInt256(5643430011392051467, 5330496046707895249, 1013871937455667170, 10957852880011283520),
+]
+
+private let bid_multipliers1_binary80_160: [UInt256] = [
+UInt256(7054287514240064334, 2051434039957481157, 5879025940246971867, 4473944063159328592),
+UInt256(8817859392800080417, 11787664586801627254, 11960468443736102738, 980744060521772836),
+UInt256(5511162120500050261, 449761339109935178, 2863606758907676307, 5224651056253495927),
+UInt256(6888952650625062826, 5173887692314806876, 12802880485489371192, 1919127801889482004),
+UInt256(8611190813281328532, 15690731652248284403, 16003600606861713990, 2398909752361852505),
+UInt256(5381994258300830333, 583335245800401944, 7696407370074877291, 15334376650508321528),
+UInt256(6727492822876037916, 5340855075677890334, 9620509212593596614, 14556284794708014006),
+UInt256(8409366028595047395, 6676068844597362918, 2802264478887219960, 8971983956530241699),
+UInt256(5255853767871904622, 1866700018659657871, 15586473354586676187, 5607489972831401062),
+UInt256(6569817209839880777, 11556747060179348147, 14871405674805957330, 2397676447611863424),
+UInt256(8212271512299850972, 610875769942021472, 13977571075080058758, 12220467596369605087),
+UInt256(5132669695187406857, 9605169393068539228, 8735981921925036724, 3026106229303615276),
+UInt256(6415837118984258571, 16618147759763061939, 10919977402406295905, 3782632786629519095),
+UInt256(8019796398730323214, 16160998681276439520, 9038285734580481977, 9339977001714286772),
+UInt256(5012372749206452009, 5488938157370386796, 5648928584112801235, 17366700672139898993),
+UInt256(6265465936508065011, 11472858715140371399, 7061160730141001544, 17096689821747485837),
+UInt256(7831832420635081264, 9729387375498076345, 4214764894248864027, 2924118203474805680),
+UInt256(4894895262896925790, 6080867109686297715, 14163443104974009776, 17968474941667611214),
+UInt256(6118619078621157237, 16824455923962647952, 13092617862790124317, 4013849603374962402),
+UInt256(7648273848276446547, 7195511849671146228, 16365772328487655396, 9628998022646090906),
+UInt256(4780171155172779092, 2191351896830772441, 1005235668450008814, 15241495801008582624),
+UInt256(5975213943965973865, 2739189871038465551, 5868230603989898922, 9828497714405952472),
+UInt256(7469017429957467331, 8035673357225469843, 2723602236559985749, 3062250106152664782),
+UInt256(4668135893723417082, 2716452839052224699, 17843152462345848757, 4219749325559109441),
+UInt256(5835169867154271352, 12618938085670056682, 17692254559504923042, 9886372675376274705),
+UInt256(7293962333942839190, 15773672607087570853, 12891946162526377995, 3134593807365567573),
+UInt256(9117452917428548988, 10493718722004687759, 2279874647875808781, 17753300314489123179),
+UInt256(5698408073392843117, 15781946238107705657, 8342450682563462344, 13401655705769395939),
+UInt256(7123010091741053897, 5892374742352468359, 15039749371631715834, 16752069632211744923),
+UInt256(8903762614676317371, 11977154446367973353, 14188000696112256889, 11716715003409905346),
+UInt256(5564851634172698357, 5179878519766289394, 1949971407429078700, 405417849490108986),
+UInt256(6956064542715872946, 11086534168135249646, 11660836296141124183, 506772311862636232),
+UInt256(8695080678394841183, 4634795673314286250, 5352673333321629420, 14468523445110459002),
+UInt256(5434425423996775739, 9814276323462510762, 7957106851753406291, 18266199190048812684),
+UInt256(6793031779995969674, 7656159385900750549, 723011527836982056, 18221062969133627951),
+UInt256(8491289724994962093, 346827195521162378, 5515450428223615475, 4329584637707483323),
+UInt256(5307056078121851308, 2522610006414420438, 8058842536067147576, 400147389353483125),
+UInt256(6633820097652314135, 3153262508018025548, 850181133229158662, 500184236691853906),
+UInt256(8292275122065392668, 17776636190304695647, 1062726416536448327, 9848602332719593190),
+UInt256(5182671951290870418, 1887025582085658971, 7581733037976362060, 13072905485590827600),
+UInt256(6478339939113588022, 11582154014461849522, 4865480279043064671, 16341131856988534500),
+UInt256(8097924923891985028, 5254320481222536094, 15305222385658606647, 15814728802808280221),
+UInt256(5061203077432490642, 12507322337618860867, 4954077972609241250, 16801734529396256994),
+UInt256(6326503846790613303, 6410780885168800276, 1580911447334163659, 11778796124890545435),
+UInt256(7908129808488266629, 3401790088033612441, 1976139309167704574, 10111809137685793889),
+UInt256(4942581130305166643, 4431961814234701727, 12764302114298285119, 1708194692626233277),
+UInt256(6178226412881458304, 928266249365989255, 11343691624445468494, 15970301421064955308),
+UInt256(7722783016101822880, 1160332811707486569, 9567928512129447714, 10739504739476418327),
+UInt256(4826739385063639300, 725208007317179105, 17509170366149374581, 11323876480600149359),
+UInt256(6033424231329549125, 906510009146473882, 8051404902404554515, 319787545468022986),
+]
+
+private let bid_multipliers1_binary80_161: [UInt256] = [
+UInt256(7541780289161936406, 5744823529860480257, 840884091150917335, 14234792487117192445),
+UInt256(4713612680726210253, 17425572761444963872, 12054767603037793094, 15814274332089327134),
+UInt256(5892015850907762817, 7946907896524041128, 15068459503797241368, 10544470878256883109),
+UInt256(7365019813634703521, 14545320889082439315, 388830306037000094, 13180588597821103887),
+UInt256(9206274767043379402, 4346593056070885431, 14321095937828413830, 7252363710421604050),
+UInt256(5753921729402112126, 7328306678471691298, 15868213988783840499, 18367785374295666244),
+UInt256(7192402161752640157, 18383755384944389931, 10611895449125024816, 18348045699442194900),
+UInt256(8990502702190800197, 9144636175898323702, 8653183292978893117, 4488313050593192009),
+UInt256(5619064188869250123, 8021240619150146266, 796553539684420294, 5111038665834438958),
+UInt256(7023830236086562654, 5414864755510294928, 10219063961460301175, 15612170369147824505),
+UInt256(8779787795108203317, 15991952981242644468, 12773829951825376469, 14903526943007392728),
+UInt256(5487367371942627073, 12300813622490346744, 17207015756745636101, 11620547348593314407),
+UInt256(6859209214928283842, 1540958972830769719, 3062025622222493511, 690626130459479296),
+UInt256(8574011518660354802, 11149570752893237956, 17662590083060280600, 14698340718356512832),
+UInt256(5358757199162721751, 11580167738985661627, 1815746765057899567, 9186462948972820520),
+UInt256(6698446498953402189, 9863523655304689129, 16104741511604538171, 6871392667788637746),
+UInt256(8373058123691752736, 16941090587558249316, 6295868834223509002, 3977554816308409279),
+UInt256(5233161327307345460, 10588181617223905822, 13158290058244468934, 7097657778620143704),
+UInt256(6541451659134181825, 13235227021529882278, 7224490535950810359, 18095444260129955437),
+UInt256(8176814573917727282, 2708975721630189135, 18253985206793288757, 18007619306735056393),
+UInt256(5110509108698579551, 6304795844446256113, 18326269781886887329, 13560605075923104198),
+UInt256(6388136385873224439, 3269308787130432238, 9072779172076445450, 3115698289621716535),
+UInt256(7985170482341530548, 17921694039195204010, 2117601928240781004, 13117994898881921476),
+UInt256(4990731551463456593, 1977686737642226698, 5935187223577876031, 17422118848655976731),
+UInt256(6238414439329320741, 7083794440480171276, 16642356066327120847, 17165962542392583010),
+UInt256(7798018049161650926, 13466429069027602000, 2356201009199349443, 16845767159563340858),
+UInt256(4873761280726031829, 3804832149714863346, 1472625630749593402, 8222761465513394084),
+UInt256(6092201600907539786, 9367726205570967086, 11064154075291767561, 1055079795036966797),
+UInt256(7615252001134424733, 2486285720108933050, 4606820557259933643, 5930535762223596400),
+UInt256(4759532500709015458, 3859771584281777108, 7490948866714846431, 1400741842176053798),
+UInt256(5949415625886269322, 14048086517206997193, 9363686083393558038, 15585985358002230960),
+UInt256(7436769532357836653, 8336736109653970683, 16316293622669335452, 10259109660648012892),
+UInt256(4647980957723647908, 7516303077747425629, 7891840504954640705, 15635315574759783866),
+UInt256(5809976197154559885, 9395378847184282036, 14476486649620688786, 5709086413167566120),
+UInt256(7262470246443199856, 16355909577407740449, 18095608312025860982, 16359730053314233458),
+UInt256(9078087808053999821, 1998142898050123946, 8784452334750162516, 11226290529788016014),
+UInt256(5673804880033749888, 3554682320495021418, 10101968727646239476, 16239803617972285817),
+UInt256(7092256100042187360, 4443352900618776773, 3404088872703023538, 1853010448755805655),
+UInt256(8865320125052734200, 5554191125773470966, 8866797109306167326, 11539635097799532877),
+UInt256(5540825078157958875, 3471369453608419354, 930062174888966675, 2600585917697320144),
+UInt256(6926031347697448593, 18174269872292687904, 10385949755465984151, 17085790452403813892),
+UInt256(8657539184621810742, 8882779285083696168, 12982437194332480189, 16745552047077379461),
+UInt256(5410961990388631714, 940051034749922201, 8114023246457800118, 12771813038637056115),
+UInt256(6763702487985789642, 10398435830292178559, 14754215076499638052, 6741394261441544336),
+UInt256(8454628109982237053, 3774672751010447391, 13831082827197159661, 8426742826801930420),
+UInt256(5284142568738898158, 4665013478595223571, 15561955794639306644, 7572557275964900465),
+UInt256(6605178210923622697, 15054638885098805272, 14840758724871745401, 9465696594956125581),
+UInt256(8256472763654528372, 4983240551091342879, 104204332380130135, 16443806762122544880),
+UInt256(5160295477284080232, 12337897381286865107, 6982656735378663190, 17194908253967672406),
+UInt256(6450369346605100290, 15422371726608581384, 4116634900795941084, 12270263280604814699),
+]
+
+private let bid_multipliers1_binary80_162: [UInt256] = [
+UInt256(8062961683256375363, 10054592621405950922, 5145793625994926355, 15337829100756018374),
+UInt256(5039351052035234602, 3978277379165025374, 7827807034674216876, 7280300178758817532),
+UInt256(6299188815044043252, 14196218760811057526, 561386756487995287, 9100375223448521915),
+UInt256(7873986018805054065, 17745273451013821907, 9925105482464769917, 6763783010883264489),
+UInt256(4921241261753158791, 4173266879242556836, 3897347917326787246, 6533207391015734258),
+UInt256(6151551577191448489, 604897580625808141, 4871684896658484057, 17389881275624443630),
+UInt256(7689439471489310611, 5367807994209648080, 10701292139250492976, 7902293539248390826),
+UInt256(4805899669680819132, 1049036987167336098, 6688307587031558110, 4938933462030244266),
+UInt256(6007374587101023915, 1311296233959170122, 17583756520644223445, 15397038864392581141),
+UInt256(7509218233876279893, 15474178347731126365, 12756323613950503499, 5411240525208562714),
+UInt256(4693261396172674933, 11977204476545647930, 10278545267932758639, 1076182319041657744),
+UInt256(5866576745215843667, 1136447540399896201, 3624809548061172490, 15180285954084235892),
+UInt256(7333220931519804583, 15255617480782033963, 9142697953503853517, 9751985405750519057),
+UInt256(9166526164399755729, 14457835832550154550, 6816686423452428992, 16801667775615536725),
+UInt256(5729078852749847331, 2118618367702764737, 18095487069939931832, 10501042359759710454),
+UInt256(7161348565937309163, 16483331014910619634, 8784300782142751078, 13126302949699638067),
+UInt256(8951685707421636454, 15992477750210886639, 1757003940823663040, 7184506650269771775),
+UInt256(5594803567138522784, 5383612575454416245, 8015656490655871256, 4490316656418607360),
+UInt256(6993504458923153480, 6729515719318020306, 14631256631747226974, 5612895820523259200),
+UInt256(8741880573653941850, 8411894649147525383, 9065698752829257909, 16239491812508849808),
+UInt256(5463675358533713656, 9869120174144591268, 12583590748159368049, 12455525392031725082),
+UInt256(6829594198167142070, 12336400217680739085, 15729488435199210062, 1734348684757492640),
+UInt256(8536992747708927588, 6197128235246148049, 5826802488716848865, 11391307892801641608),
+UInt256(5335620467318079742, 13096577183883618338, 15170966601516500301, 202038405359944149),
+UInt256(6669525584147599678, 7147349442999747115, 9740336215040849568, 4864234025127318090),
+UInt256(8336906980184499597, 18157558840604459702, 7563734250373674056, 6080292531409147613),
+UInt256(5210566862615312248, 13654317284591481266, 115647888056158381, 3800182832130717258),
+UInt256(6513208578269140310, 17067896605739351582, 9367931896924973784, 9361914558590784477),
+UInt256(8141510722836425388, 12111498720319413670, 2486542834301441422, 11702393198238480596),
+UInt256(5088444201772765867, 16793058737054409351, 15389147326720564601, 2702309730471662469),
+UInt256(6360555252215957334, 16379637402890623785, 14624748139973317847, 7989573181516965990),
+UInt256(7950694065269946668, 11251174716758503924, 4445877119684483597, 5375280458468819583),
+UInt256(4969183790793716667, 16255356234828840760, 12002045236657578056, 5665393295756706191),
+UInt256(6211479738492145834, 15707509275108663046, 15002556545821972570, 7081741619695882739),
+UInt256(7764349673115182293, 10411014557031053000, 9529823645422689904, 18075549061474629232),
+UInt256(4852718545696988933, 8812727107358102077, 5956139778389181190, 11297218163421643270),
+UInt256(6065898182121236166, 15627594902625015500, 12056860741413864392, 4898150667422278280),
+UInt256(7582372727651545208, 10311121591426493567, 15071075926767330490, 6122688334277847849),
+UInt256(4738982954782215755, 6444450994641558479, 16336951481870663412, 8438366227351042810),
+UInt256(5923728693477769694, 3443877724874560195, 15809503333910941361, 10547957784188803512),
+UInt256(7404660866847212117, 13528219192947976052, 15150193148961288797, 17796633248663392294),
+UInt256(4627913041779507573, 10760980004806178985, 245498681246029690, 13428738789628314136),
+UInt256(5784891302224384466, 18062911024435111635, 4918559369984925017, 7562551450180616862),
+UInt256(7231114127780480583, 13355266743689113736, 1536513194053768367, 14064875331153158981),
+UInt256(9038892659725600729, 12082397411184004266, 1920641492567210459, 12969408145514060823),
+UInt256(5649307912328500456, 633969354348920810, 5812086951281894441, 5800037081732594062),
+UInt256(7061634890410625570, 792461692936151012, 16488480725957143859, 11861732370593130482),
+UInt256(8827043613013281962, 10213949153024964574, 2163856833736878208, 10215479444814025198),
+UInt256(5516902258133301226, 10995404239067990762, 15187468576367712592, 6384674653008765749),
+UInt256(6896127822666626533, 4520883261980212645, 9760963683604864932, 7980843316260957186),
+]
+
+private let bid_multipliers1_binary80_163: [UInt256] = [
+UInt256(8620159778333283166, 10262790095902653710, 16812890622933469069, 9976054145326196483),
+UInt256(5387599861458301979, 1802557791511770665, 5896370620906030264, 8540876850042566754),
+UInt256(6734499826822877473, 16088255294671877043, 11982149294559925734, 10676096062553208442),
+UInt256(8418124783528596842, 6275261063057682592, 10366000599772519264, 4121748041336734745),
+UInt256(5261327989705373026, 8533724182838439524, 6478750374857824540, 2576092525835459216),
+UInt256(6576659987131716283, 1443783191693273597, 8098437968572280675, 3220115657294324019),
+UInt256(8220824983914645353, 15639787044898755708, 14734733479142738747, 17860202626900068736),
+UInt256(5138015614946653346, 2857337875420640461, 18432580461318987525, 8856783632598849008),
+UInt256(6422519518683316682, 12795044381130576385, 9205667521366570694, 15682665559175949164),
+UInt256(8028149398354145853, 6770433439558444673, 16118770420135601272, 10379959912115160647),
+UInt256(5017593373971341158, 6537363908937721873, 3156702484943668939, 6487474945071975405),
+UInt256(6271991717464176447, 17395076923026928149, 8557564124606974078, 3497657662912581352),
+UInt256(7839989646830220559, 17132160135356272282, 15308641174186105501, 13595444115495502497),
+UInt256(4899993529268887849, 17625129112238752032, 14179586752293703842, 10802995581398383013),
+UInt256(6124991911586109812, 8196353335016276328, 17724483440367129803, 4280372439893202958),
+UInt256(7656239889482637265, 10245441668770345411, 3708860226749360638, 738779531439115794),
+UInt256(4785149930926648290, 17932616089049935642, 12194632504656446, 14296795262431611083),
+UInt256(5981437413658310363, 13192398074457643744, 9238615327485596366, 8647622041184738046),
+UInt256(7476796767072887954, 11878811574644666776, 11548269159356995458, 1586155514626146749),
+UInt256(4672997979420554971, 12035943252580304639, 7217668224598122161, 5603033215068729622),
+UInt256(5841247474275693714, 10433243047297992895, 4410399262320264797, 11615477537263299932),
+UInt256(7301559342844617143, 3818181772267715311, 901313059472943093, 684288866296961203),
+UInt256(9126949178555771429, 161041196907256234, 14961699379623342578, 5467047101298589407),
+UInt256(5704343236597357143, 2406493757280729098, 13962748130691977015, 8028590456739006284),
+UInt256(7130429045746696428, 16843175251883075085, 8230063126510195461, 5424052052496369951),
+UInt256(8913036307183370536, 2607224991144292240, 14899264926565132230, 11391751084047850342),
+UInt256(5570647691989606585, 1629515619465182650, 9312040579103207644, 2508158409102518560),
+UInt256(6963309614987008231, 6648580542758866217, 2416678687024233747, 3135198011378148200),
+UInt256(8704137018733760289, 3699039660021194867, 7632534377207680087, 17754055569504848962),
+UInt256(5440085636708600180, 13841114833581716552, 2464490976541106102, 18013813758581612457),
+UInt256(6800107045885750225, 17301393541977145690, 3080613720676382628, 13293895161372239763),
+UInt256(8500133807357187782, 7791683872189268400, 13074139187700254093, 16617368951715299704),
+UInt256(5312583629598242364, 258116401690904846, 8171336992312658808, 12691698604035756267),
+UInt256(6640729536997802955, 322645502113631058, 990799203536047702, 15864623255044695334),
+UInt256(8300911921247253693, 14238364932924202534, 10461871041274835436, 10607407031951093359),
+UInt256(5188069950779533558, 11204821092291320536, 1926983382369384243, 15853001431824209158),
+UInt256(6485087438474416948, 4782654328509374862, 2408729227961730304, 15204565771352873543),
+UInt256(8106359298093021185, 5978317910636718577, 12234283571806938689, 558963140481540313),
+UInt256(5066474561308138240, 15265663740216418871, 728898204738254824, 11878567008869432456),
+UInt256(6333093201635172801, 635335601560971972, 14746180811204982242, 14848208761086790569),
+UInt256(7916366502043966001, 5405855520378602869, 18432726014006227803, 9336888914503712404),
+UInt256(4947729063777478750, 14907874746305096553, 13826296767967586329, 3529712562351126301),
+UInt256(6184661329721848438, 9411471396026594884, 3447812904677319199, 9023826721366295780),
+UInt256(7730826662152310548, 2540967208178467797, 4309766130846648999, 6668097383280481820),
+UInt256(4831766663845194092, 10811476541966318181, 4999446840992849576, 11085089892191382994),
+UInt256(6039708329806492615, 13514345677457897726, 10860994569668449874, 13856362365239228742),
+UInt256(7549635412258115769, 12281246078394984254, 4352871175230786535, 8097080919694260120),
+UInt256(4718522132661322356, 758249771355783302, 16555602539801405296, 11978204602449994431),
+UInt256(5898152665826652945, 947812214194729128, 11471131137896980812, 14972755753062493039),
+UInt256(7372690832283316181, 5796451286170799314, 14338913922371226016, 269200617618564682),
+]
+
+private let bid_multipliers1_binary80_164: [UInt256] = [
+UInt256(9215863540354145226, 11857250126140887047, 8700270366109256712, 336500772023205852),
+UInt256(5759914712721340766, 12022467347265442308, 12355198006459367301, 210312982514503658),
+UInt256(7199893390901675958, 5804712147227027077, 15443997508074209126, 4874577246570517476),
+UInt256(8999866738627094947, 16479262220888559655, 5469938829810597695, 15316593595067922653),
+UInt256(5624916711641934342, 7993695878841655832, 10336240796272705415, 16490400024558533514),
+UInt256(7031145889552417928, 768747811697293982, 12920300995340881769, 16001314012270778989),
+UInt256(8788932361940522410, 960934764621617478, 6927004207321326404, 6166584460056310024),
+UInt256(5493082726212826506, 5212270246315898827, 18164435684857992714, 13077487324389969573),
+UInt256(6866353407766033132, 15738709844749649342, 18093858587645102989, 7123487118632686158),
+UInt256(8582941759707541416, 1226643232227510062, 13393951197701602928, 13516044916718245602),
+UInt256(5364338599817213385, 766652020142193789, 3759533480136113926, 8447528072948903501),
+UInt256(6705423249771516731, 5570001043605130140, 9311102868597530312, 1336038054331353569),
+UInt256(8381779062214395914, 2350815286079024771, 11638878585746912890, 1670047567914191961),
+UInt256(5238611913883997446, 6080945572226778386, 4968456106878126604, 5655465748373757880),
+UInt256(6548264892354996807, 16824554002138248790, 15433942170452434063, 7069332185467197349),
+UInt256(8185331115443746009, 16419006484245423084, 10069055676210766771, 4224979213406608783),
+UInt256(5115831947152341256, 3344350025012307571, 15516531834486505040, 334768999165436537),
+UInt256(6394789933940426570, 4180437531265384464, 14783978774680743396, 418461248956795672),
+UInt256(7993487417425533212, 14448918950936506389, 33229394641377629, 523076561195994589),
+UInt256(4995929635890958257, 18253946381190092301, 2326611380864554970, 2632765859961190570),
+UInt256(6244912044863697822, 8982374921205451664, 7519950244508081616, 12514329361806264021),
+UInt256(7806140056079622278, 2004596614652038772, 9399937805635102020, 15642911702257830026),
+UInt256(4878837535049763923, 15087930939439687944, 15098333165376714571, 553447777056367958),
+UInt256(6098546918812204904, 14248227655872222027, 426172383011341597, 14526867776602623660),
+UInt256(7623183648515256130, 17810284569840277533, 14367773534046340709, 4323526665471115863),
+UInt256(4764489780322035081, 15743113874577561362, 11285701467992656895, 5008047175133141366),
+UInt256(5955612225402543852, 5843834287939787991, 4883754798136045311, 1648372950489038804),
+UInt256(7444515281753179815, 7304792859924734989, 1493007479242668734, 15895524243393462217),
+UInt256(4652822051095737384, 11483024565094041224, 3238972683740361911, 5323016633693525982),
+UInt256(5816027563869671730, 14353780706367551530, 4048715854675452389, 2042084773689519573),
+UInt256(7270034454837089663, 8718853846104663604, 14284266855199091294, 7164291985539287370),
+UInt256(9087543068546362079, 6286881289203441601, 17855333568998864117, 18178737018778885021),
+UInt256(5679714417841476299, 10846829833393232857, 4242054452983208217, 13667553645950497090),
+UInt256(7099643022301845374, 8946851273314153167, 9914254084656398176, 3249384002155957650),
+UInt256(8874553777877306718, 1960192054787915651, 7781131587393109816, 4061730002694947063),
+UInt256(5546596111173316698, 15060178089524610994, 2557364232906999683, 2538581251684341914),
+UInt256(6933245138966645873, 9601850575050987934, 12420077327988525411, 17008284619887591105),
+UInt256(8666556423708307341, 16613999237241122822, 6301724623130880956, 16648669756432100977),
+UInt256(5416597764817692088, 12689592532489395715, 17773635944738964310, 1182046560915287303),
+UInt256(6770747206022115110, 15861990665611744644, 17605358912496317483, 10700930237998884936),
+UInt256(8463434007527643888, 10604116295159904998, 3559954566910845238, 8764476779071218266),
+UInt256(5289646254704777430, 6627572684474940623, 16060029659601441986, 866111968492123513),
+UInt256(6612057818380971787, 17507837892448451587, 15463351056074414578, 10306011997469930199),
+UInt256(8265072272976214734, 17273111347133176580, 14717502801665630319, 3659142959982636940),
+UInt256(5165670170610134209, 6184008573530847458, 18421811287895794757, 9204493377630229944),
+UInt256(6457087713262667761, 12341696735340947227, 13803892073014967638, 16117302740465175334),
+UInt256(8071359641578334702, 1592062863894020322, 12643179072841321644, 10923256388726693359),
+UInt256(5044599775986459188, 14830097345215926413, 12513672938953213931, 16050407279808959158),
+UInt256(6305749719983073986, 90877607810356401, 1807033118409353702, 15451323081333811043),
+UInt256(7882187149978842482, 9336969046617721309, 6870477416439080032, 10090781814812487996),
+]
+
+private let bid_multipliers1_binary80_165: [UInt256] = [
+UInt256(4926366968736776551, 10447291672563463722, 6599891394488118972, 6306738634257804997),
+UInt256(6157958710920970689, 8447428572276941748, 17473236279964924523, 7883423292822256247),
+UInt256(7697448388651213361, 15170971733773565090, 3394801276246604038, 5242593097600432404),
+UInt256(4810905242907008351, 2564328305967396325, 6733436816081515427, 17111678741282433965),
+UInt256(6013631553633760438, 17040468437741409118, 13028482038529282188, 16777912408175654552),
+UInt256(7517039442042200548, 12077213510321985590, 7062230511306826928, 2525646436510016574),
+UInt256(4698149651276375342, 16771630480806016801, 18248952124848930542, 1578529022818760359),
+UInt256(5872687064095469178, 11741166064152745194, 8976132100778999465, 11196533315378226256),
+UInt256(7340858830119336473, 5453085543336155685, 1996793089118973524, 160608588940619108),
+UInt256(9176073537649170591, 11428042947597582510, 7107677379826104809, 200760736175773885),
+UInt256(5735045961030731619, 14060055869889570924, 18277356417673479217, 11654690506178328438),
+UInt256(7168807451288414524, 12963383818934575752, 4399951448382297406, 733305077440746836),
+UInt256(8961009314110518155, 16204229773668219690, 5499939310477871757, 10140003383655709353),
+UInt256(5600630821319073847, 7821800599328943354, 8049148087476057752, 8643345123998512298),
+UInt256(7000788526648842309, 5165564730733791289, 838063072490296382, 10804181404998140372),
+UInt256(8750985658311052886, 11068641931844627015, 5659264859040258382, 4281854719392899657),
+UInt256(5469366036444408054, 2306215188975503980, 10454569564541243344, 16511217254902725998),
+UInt256(6836707545555510067, 12106141023074155783, 13068211955676554181, 2192277494918855881),
+UInt256(8545884431944387584, 10520990260415306825, 11723578926168304822, 7352032887075957755),
+UInt256(5341177769965242240, 6575618912759566766, 409707801214108657, 18430078609704637309),
+UInt256(6676472212456552800, 8219523640949458457, 9735506788372411630, 9202540206848632924),
+UInt256(8345590265570691000, 10274404551186823071, 16781069503892902442, 2279803221706015347),
+UInt256(5215993915981681875, 6421502844491764419, 17405697467574145882, 6036563031993647496),
+UInt256(6519992394977102344, 3415192537187317620, 17145435816040294448, 16769075826846835178),
+UInt256(8149990493721377930, 4268990671484147026, 2985050696340816445, 2514600709848992357),
+UInt256(5093744058575861206, 7279805188104979795, 6477342703640398182, 3877468452869314175),
+UInt256(6367180073219826507, 18323128521986000552, 3484992361123109823, 14070207602941418527),
+UInt256(7958975091524783134, 18292224634055112786, 4356240451403887279, 12976073485249385254),
+UInt256(4974359432202989459, 6820954377857057587, 7334336300554817453, 15027574955921947640),
+UInt256(6217949290253736824, 3914506953893934080, 4556234357266133913, 4949410639620270838),
+UInt256(7772436612817171030, 4893133692367417600, 5695292946582667391, 10798449317952726451),
+UInt256(4857772883010731893, 16893266613011799712, 3559558091614167119, 13666559851361535888),
+UInt256(6072216103763414867, 7281525210982585928, 4449447614517708899, 12471513795774531956),
+UInt256(7590270129704268584, 4490220495300844506, 5561809518147136124, 10977706226290777041),
+UInt256(4743918831065167865, 2806387809563027816, 8087816967269347981, 16084438428286511459),
+UInt256(5929898538831459831, 8119670780381172674, 10109771209086684977, 6270489980075975611),
+UInt256(7412373173539324789, 5537902457049077939, 3413841974503580413, 12449798493522357418),
+UInt256(4632733233462077993, 5767032044869367663, 18274552298560595422, 10086967067665167339),
+UInt256(5790916541827597491, 11820476074514097483, 18231504354773356374, 3385336797726683365),
+UInt256(7238645677284496864, 10163909074715233950, 18177694425039307563, 13455043034013130014),
+UInt256(9048307096605621080, 12704886343394042438, 13498745994444358646, 12207117774089024614),
+UInt256(5655191935378513175, 7940553964621276524, 3825030228100336250, 3017762590378252480),
+UInt256(7068989919223141469, 5314006437349207751, 4781287785125420312, 12995575274827591408),
+UInt256(8836237399028926836, 11254194065113897593, 1364923712979387486, 16244469093534489259),
+UInt256(5522648374393079272, 16257243327550961803, 12382292366680586939, 5541107165031667883),
+UInt256(6903310467991349091, 1874810085729150638, 10866179439923345770, 2314697937862196950),
+UInt256(8629138084989186363, 16178570662443602010, 4359352263049406404, 12116744459182521995),
+UInt256(5393211303118241477, 7805763654813557304, 7336281182833266906, 16796337323843852055),
+UInt256(6741514128897801846, 14368890586944334534, 9170351478541583633, 11772049617950039261),
+UInt256(8426892661122252308, 8737741196825642360, 2239567311322203734, 880003967155385364),
+]
+
+private let bid_multipliers1_binary80_166: [UInt256] = [
+UInt256(5266807913201407692, 14684460284870802283, 1399729569576377333, 14385060534754279565),
+UInt256(6583509891501759615, 18355575356088502853, 15584720017252635379, 4146267613160685744),
+UInt256(8229387364377199519, 18332783176683240663, 5645841966283630512, 571148498023469276),
+UInt256(5143367102735749699, 18375518513068107270, 10446180256568350926, 356967811264668297),
+UInt256(6429208878419687124, 18357712122907746184, 3834353283855662849, 9669581800935611180),
+UInt256(8036511098024608906, 4500396079925131114, 4792941604819578561, 16698663269596901878),
+UInt256(5022819436265380566, 7424433568380594850, 7607274521439624505, 3519135515856981818),
+UInt256(6278524295331725708, 57169923620967755, 285721114944754823, 9010605413248615177),
+UInt256(7848155369164657135, 71462404526209693, 14192209448963107241, 6651570748133381067),
+UInt256(4905097105727910709, 6962193030469962914, 11175973914815635977, 15686446763651832927),
+UInt256(6131371382159888386, 13314427306514841547, 4746595356664769164, 5773000399282627446),
+UInt256(7664214227699860483, 7419662096288776126, 1321558177403573551, 7216250499103284308),
+UInt256(4790133892312412802, 2331445800966791126, 14661031916159397181, 11427685589580634549),
+UInt256(5987667365390516002, 12137679288063264716, 9102917858344470669, 449548931693629474),
+UInt256(7484584206738145003, 5948727073224305087, 11378647322930588336, 5173622183044424746),
+UInt256(4677865129211340627, 1412111411551496727, 14029183604472699566, 3233513864402765466),
+UInt256(5847331411514175783, 15600197319721534621, 12924793487163486553, 13265264367358232641),
+UInt256(7309164264392719729, 14888560631224530373, 2320933803672194480, 2746522403915627089),
+UInt256(9136455330490899662, 4775642733748499254, 7512853273017631004, 3433153004894533861),
+UInt256(5710284581556812288, 16819834763874975746, 83847277208631473, 11369092664913859471),
+UInt256(7137855726946015361, 2578049381134168066, 9328181133365565150, 376307775860160627),
+UInt256(8922319658682519201, 7834247744845097987, 2436854379852180629, 9693756756679976592),
+UInt256(5576449786676574500, 16425619886596656001, 17663935051903470557, 8364440982138679322),
+UInt256(6970562233345718126, 2085280784536268386, 8244860759597174484, 15067237246100737056),
+UInt256(8713202791682147657, 11829973017525111291, 1082703912641692298, 387302483916369704),
+UInt256(5445751744801342286, 476204108312112700, 16817591009896915350, 4853750070875118969),
+UInt256(6807189681001677857, 9818627172244916684, 2575244688661592571, 15290559625448674520),
+UInt256(8508987101252097321, 16884969983733533759, 3219055860826990714, 14501513513383455246),
+UInt256(5318116938282560826, 3635577212192376743, 8929438940657951052, 13675131964292047433),
+UInt256(6647646172853201032, 13767843552095246737, 6550112657395050911, 17093914955365059291),
+UInt256(8309557716066501290, 17209804440119058421, 12799326840171201543, 16755707675778936209),
+UInt256(5193473572541563306, 15367813793501799417, 10305422284320694916, 17389846325002916987),
+UInt256(6491841965676954133, 9986395205022473463, 17493463873828256550, 3290563832544094618),
+UInt256(8114802457096192666, 17094680024705479733, 17255143823857932783, 13336576827534894080),
+UInt256(5071751535685120416, 15295861033868312737, 13090307899124901941, 15252889544850390656),
+UInt256(6339689419606400521, 673082218625839306, 2527826818623963715, 5231053875780824608),
+UInt256(7924611774508000651, 5453038791709687036, 12383155560134730452, 1927131326298642856),
+UInt256(4952882359067500407, 1102306235604860445, 16962844261938982340, 10427829115791427593),
+UInt256(6191102948834375508, 15212940849788239269, 7368497272141564213, 13034786394739284491),
+UInt256(7738878686042969386, 569431988525747470, 13822307608604343171, 2458424938141941902),
+UInt256(4836799178776855866, 4967581011255980073, 4027256236950326577, 17677416650834571353),
+UInt256(6045998973471069832, 15432848300924750899, 9645756314615296126, 8261712758261050479),
+UInt256(7557498716838837291, 844316302446387008, 7445509374841732254, 1103768910971537291),
+UInt256(4723436698024273306, 16668598753524849544, 4653443359276082658, 14524913624639374519),
+UInt256(5904295872530341633, 11612376405051286122, 5816804199095103323, 8932769993944442340),
+UInt256(7380369840662927042, 680412451031943940, 16494377285723654962, 6554276474003165021),
+UInt256(4612731150414329401, 5036943800322352867, 1085613766722508543, 8708108814679366043),
+UInt256(5765913938017911751, 10907865768830328987, 15192075263685299391, 6273449999921819649),
+UInt256(7207392422522389689, 9023146192610523330, 14378408061179236335, 3230126481474886657),
+UInt256(9009240528152987111, 15890618759190542067, 8749638039619269610, 17872716157125772033),
+]
+
+private let bid_multipliers1_binary80_167: [UInt256] = [
+UInt256(5630775330095616944, 16849165752135170648, 3162680765548349554, 15782133616630995425),
+UInt256(7038469162619521181, 2614713116459411694, 3953350956935436943, 10504294983933968473),
+UInt256(8798086453274401476, 7880077414001652521, 14165060733024071987, 8518682711490072687),
+UInt256(5498804033296500922, 14148420420605808634, 1935633930498963136, 3018333685467601478),
+UInt256(6873505041620626153, 8462153488902484984, 11642914449978479728, 3772917106834501847),
+UInt256(8591881302025782691, 15189377879555494134, 14553643062473099660, 4716146383543127309),
+UInt256(5369925813766114182, 7187518165508489882, 4484340895618299383, 12170963526569230376),
+UInt256(6712407267207642727, 18207769743740388160, 14828798156377650037, 10602018389784150066),
+UInt256(8390509084009553409, 18148026161248097297, 89253621762510930, 17864209005657575486),
+UInt256(5244068177505970881, 4424987323138978954, 11584998559670039091, 15776816646963372583),
+UInt256(6555085221882463601, 10142920172351111597, 5257876162732773056, 15109334790276827825),
+UInt256(8193856527353079501, 17290336233866277400, 11184031221843354225, 439924414136483165),
+UInt256(5121160329595674688, 13112303155380117327, 6990019513652096390, 11804167804903771738),
+UInt256(6401450411994593360, 16390378944225146659, 4125838373637732584, 5531837719274938865),
+UInt256(8001813014993241701, 2041229606571881708, 545611948619777826, 6914797149093673581),
+UInt256(5001133134370776063, 3581611513321120019, 9564379504742136949, 8933434236610933892),
+UInt256(6251416417963470078, 18312072446933563736, 7343788362500283282, 15778478814191055269),
+UInt256(7814270522454337598, 13666718521812178862, 9179735453125354103, 10499726480884043278),
+UInt256(4883919076533960999, 3930013057705223885, 1125648639775958410, 13479858078193608905),
+UInt256(6104898845667451249, 300830303704141952, 6018746818147335917, 7626450560887235323),
+UInt256(7631123557084314061, 4987723898057565344, 7523433522684169896, 14144749219536432058),
+UInt256(4769452223177696288, 5423170445499672292, 4702145951677606185, 8840468262210270036),
+UInt256(5961815278972120360, 6778963056874590365, 5877682439597007731, 15662271346190225449),
+UInt256(7452269098715150450, 8473703821093237956, 11958789067923647568, 14966153164310393908),
+UInt256(4657668186696969031, 9907750906610661626, 16697615204307055538, 9353845727693996192),
+UInt256(5822085233371211289, 7773002614835939129, 11648646968529043615, 2468935122762719432),
+UInt256(7277606541714014111, 14327939286972311816, 725750655379140806, 16921226958735563002),
+UInt256(9097008177142517639, 13298238090288001866, 907188319223926008, 11928161661564677945),
+UInt256(5685630110714073524, 15228927834071083022, 5178678717942341659, 7455101038477923716),
+UInt256(7107037638392591906, 589415718879302161, 15696720434282702882, 4707190279670016741),
+UInt256(8883797047990739882, 9960141685453903510, 5785842487571214890, 15107359886442296734),
+UInt256(5552373154994212426, 10836774571836077597, 17451209610014173018, 14053785947453823363),
+UInt256(6940466443742765533, 4322596177940321189, 7978953957235552561, 8343860397462503395),
+UInt256(8675583054678456916, 10014931240852789390, 14585378464971828605, 15041511515255517148),
+UInt256(5422239409174035572, 15482704062387769177, 4504175522180004974, 11706787706248392170),
+UInt256(6777799261467544466, 906636004275159855, 10241905421152394122, 5410112595955714404),
+UInt256(8472249076834430582, 10356667042198725627, 8190695758013104748, 15986012781799418813),
+UInt256(5295155673021519114, 1861230882946815613, 2813341839544496516, 767885951769860950),
+UInt256(6618944591276898892, 11549910640538295324, 8128363317858008549, 959857439712326188),
+UInt256(8273680739096123615, 14437388300672869155, 10160454147322510686, 5811507818067795638),
+UInt256(5171050461935077259, 15940896715561625078, 4044440832862875226, 17467250441574535986),
+UInt256(6463813077418846574, 15314434876024643443, 14278923077933369841, 12610691015113394175),
+UInt256(8079766346773558218, 9919671558176028496, 13236967828989324398, 1928305713609579006),
+UInt256(5049853966733473886, 10811480742287405714, 8273104893118327748, 15040249126288150591),
+UInt256(6312317458416842358, 4290978891004481335, 1118009079543133878, 353567334150636623),
+UInt256(7890396823021052947, 14587095650610377476, 15232569404711081059, 9665331204543071586),
+UInt256(4931498014388158092, 6811091772417791971, 296983841089649854, 3734988993625725790),
+UInt256(6164372517985197615, 8513864715522239963, 14206287856644226029, 13892108278886933045),
+UInt256(7705465647481497019, 6030644875975412050, 13146173802377894633, 3530077293326502594),
+UInt256(4815916029675935637, 1463310038270938579, 12828044644913572049, 13735513354397533881),
+]
+
+private let bid_multipliers1_binary80_168: [UInt256] = [
+UInt256(6019895037094919546, 6440823566266061128, 11423369787714577158, 3334333637714753640),
+UInt256(7524868796368649432, 17274401494687352218, 14279212234643221447, 13391289083998217857),
+UInt256(4703042997730405895, 10796500934179595136, 13536193665079401308, 15287084705139968017),
+UInt256(5878803747163007369, 8883940149297106016, 16920242081349251636, 662111807715408405),
+UInt256(7348504683953759211, 15716611205048770425, 2703558527977012929, 827639759644260506),
+UInt256(9185630854942199014, 15034077987883575127, 7991134178398654065, 5646235717982713537),
+UInt256(5741019284338874384, 4784612723999846550, 11911987889140240646, 15058112369807665721),
+UInt256(7176274105423592980, 5980765904999808188, 5666612824570525000, 9599268425404806343),
+UInt256(8970342631779491225, 7475957381249760235, 7083266030713156250, 11999085531756007928),
+UInt256(5606464144862182015, 16201688409349569907, 2121198259982028704, 12111114475774892859),
+UInt256(7008080181077727519, 15640424493259574479, 16486555880259699592, 15138893094718616074),
+UInt256(8760100226347159399, 14938844598147080195, 15996508831897236587, 476872294688718476),
+UInt256(5475062641466974624, 16254306901483006978, 7691975010722078914, 16438946248676306712),
+UInt256(6843828301833718281, 1871139553144207107, 391596726547822835, 11325310773990607582),
+UInt256(8554785377292147851, 6950610459857646787, 14324553963466942256, 9544952449060871573),
+UInt256(5346740860807592407, 2038288528197335290, 6647003217953144958, 5965595280663044733),
+UInt256(6683426076009490508, 16382918715528832824, 17532126059296207005, 16680366137683581725),
+UInt256(8354282595011863136, 2031904320701489415, 3468413500410707141, 7015399616822313444),
+UInt256(5221426621882414460, 1269940200438430884, 9085287465397773819, 6690467769727639854),
+UInt256(6526783277353018075, 1587425250548038605, 11356609331747217274, 3751398693732161914),
+UInt256(8158479096691272593, 15819339618467211969, 360703609401857880, 13912620404019978200),
+UInt256(5099049435432045371, 2969558233900925624, 11754654801944630935, 8695387752512486375),
+UInt256(6373811794290056713, 17547005847658320742, 14693318502430788669, 6257548672213220065),
+UInt256(7967264742862570892, 8098699254290737216, 9143276091183710028, 12433621858693912985),
+UInt256(4979540464289106807, 14285059070786486568, 5714547556989818767, 16994385698538471424),
+UInt256(6224425580361383509, 13244637820055720306, 7143184446237273459, 16631296104745701376),
+UInt256(7780531975451729387, 2720739219787486670, 18152352594651367632, 16177434112504738816),
+UInt256(4862832484657330866, 17841363076863036833, 6733534353229716866, 10110896320315461760),
+UInt256(6078540605821663583, 13078331809224020233, 13028603959964533987, 3415248363539551392),
+UInt256(7598175757277079479, 11736228743102637388, 2450696894673503771, 18104118509706602952),
+UInt256(4748859848298174674, 14252671992080230223, 10755057596025715665, 9009231059352932893),
+UInt256(5936074810372718343, 8592467953245511971, 8832135976604756677, 15873224842618554020),
+UInt256(7420093512965897929, 6128898923129502060, 6428483952328557943, 6006472997991028813),
+UInt256(4637558445603686205, 15359776873024408547, 13241174507060124522, 10671574651385474864),
+UInt256(5796948057004607757, 5364663035998346972, 11939782115397767749, 4116096277377067772),
+UInt256(7246185071255759696, 11317514813425321619, 14924727644247209686, 9756806365148722619),
+UInt256(9057731339069699620, 14146893516781652024, 14044223536881624204, 2972635919581127466),
+UInt256(5661082086918562262, 18065180484843308323, 8777639710551015127, 11081269486592980474),
+UInt256(7076352608648202828, 13358103569199359596, 6360363619761381005, 9239900839813837689),
+UInt256(8845440760810253535, 16697629461499199495, 7950454524701726256, 16161562068194685015),
+UInt256(5528400475506408459, 17353547441078081540, 11886563105579660766, 10100976292621678135),
+UInt256(6910500594383010574, 17080248282920214021, 14858203881974575958, 3402848328922321860),
+UInt256(8638125742978763218, 12126938316795491719, 4737696797186056235, 13476932448007678133),
+UInt256(5398828589361727011, 12191022466424570228, 9878589525882367003, 6117239770791104881),
+UInt256(6748535736702158764, 10627092064603324881, 12348236907352958754, 3034863695061493197),
+UInt256(8435669670877698455, 13283865080754156102, 1600238078909034730, 13016951655681642305),
+UInt256(5272293544298561534, 15219944703112429419, 14835206854600310418, 12747280803228414345),
+UInt256(6590366930373201918, 9801558842035760966, 13932322549823000119, 6710728967180742123),
+UInt256(8237958662966502398, 3028576515689925400, 8192031150423974341, 3776725190548539749),
+UInt256(5148724164354063998, 15727918377588367087, 5120019469014983963, 4666296253306531295),
+]
+
+private let bid_multipliers1_binary80_169: [UInt256] = [
+UInt256(6435905205442579998, 10436525935130683051, 1788338317841342050, 1221184298205776215),
+UInt256(8044881506803224998, 3822285382058578005, 16070480952583841274, 10749852409611996077),
+UInt256(5028050941752015623, 16223986419068774965, 12349893604578594748, 11330343774434885452),
+UInt256(6285063677190019529, 15668297005408580803, 1602308950441079723, 14162929718043606815),
+UInt256(7856329596487524412, 5750313201478562291, 15837944243333513366, 13091976129127120615),
+UInt256(4910205997804702757, 12817317787778877240, 7592872142869751902, 3570799062277062480),
+UInt256(6137757497255878447, 2186589179441432838, 9491090178587189877, 13686870864701103908),
+UInt256(7672196871569848058, 16568294529583954760, 2640490686379211539, 3273530525594216173),
+UInt256(4795123044731155036, 14966870099417359629, 1650306678987007211, 18186857642992242773),
+UInt256(5993903805913943796, 261843550562147920, 6674569367161146918, 18121886035312915562),
+UInt256(7492379757392429745, 327304438202684900, 8343211708951433648, 13428985507286368644),
+UInt256(4682737348370268590, 11733780319945147822, 14437879354949421838, 8393115942053980403),
+UInt256(5853421685462835738, 5443853363076658970, 8823977156832001490, 1268022890712699695),
+UInt256(7316777106828544672, 16028188740700599521, 1806599409185226054, 10808400650245650427),
+UInt256(9145971383535680841, 1588491852166197785, 6869935279908920472, 4287128775952287225),
+UInt256(5716232114709800525, 12522022453672343375, 15822924596011545055, 2679455484970179516),
+UInt256(7145290143387250657, 1817470011808265507, 15166969726587043414, 17184377411494888107),
+UInt256(8931612679234063321, 6883523533187719788, 14347026139806416364, 12257099727513834326),
+UInt256(5582257924521289575, 15831417254310794627, 18190263374233786035, 16884059366550922262),
+UInt256(6977822405651611969, 15177585549461105380, 18126143199364844640, 16493388189761264923),
+UInt256(8722278007064514962, 5136923881544218014, 4210934925496504185, 2169991163492029538),
+UInt256(5451423754415321851, 7822263444392524162, 16466892383717478827, 12885459523250988221),
+UInt256(6814279693019152314, 5166143287063267299, 11360243442792072726, 11495138385636347372),
+UInt256(8517849616273940392, 15681051145683859932, 9588618285062703004, 5145550945190658407),
+UInt256(5323656010171212745, 9800656966052412457, 15216258465018965185, 12439341377598937313),
+UInt256(6654570012714015931, 16862507225992903476, 5185265025991542770, 1714118666716507929),
+UInt256(8318212515892519914, 16466448014063741441, 6481581282489428462, 11366020370250410719),
+UInt256(5198882822432824946, 14903216027217226304, 15580203347624362549, 2492076712979118795),
+UInt256(6498603528041031183, 9405647997166757073, 1028510110820901570, 7726781909651286398),
+UInt256(8123254410051288979, 7145373978031058437, 5897323656953514867, 435105350209332190),
+UInt256(5077034006282055612, 2160015727055717571, 5991670294809640743, 16412841908376690283),
+UInt256(6346292507852569515, 2700019658819646964, 2877901850084663025, 15904366367043474949),
+UInt256(7932865634815711893, 17210082628806722417, 3597377312605828782, 6045399903522179974),
+UInt256(4958041021759819933, 13062144652217895462, 13777575866447112748, 17613432994983526196),
+UInt256(6197551277199774917, 2492622759990205616, 7998597796204115128, 3570047170019856129),
+UInt256(7746939096499718646, 7727464468415144924, 9998247245255143910, 4462558962524820161),
+UInt256(4841836935312324154, 217979274332077673, 15472276565139240751, 16624157406860176313),
+UInt256(6052296169140405192, 9495846129769872900, 5505287651141887227, 16168510740147832487),
+UInt256(7565370211425506490, 11869807662212341125, 6881609563927359034, 15598952406757402705),
+UInt256(4728356382140941556, 12030315807310101107, 6606848986668293348, 14361031272650764595),
+UInt256(5910445477676176945, 15037894759137626384, 3646875214907978781, 17951289090813455743),
+UInt256(7388056847095221182, 4962310393639869268, 4558594018634973477, 8604053308234655967),
+UInt256(4617535529434513238, 16936502051307082004, 12072493298501634231, 7683376326860353932),
+UInt256(5771919411793141548, 11947255527279076697, 15090616623127042789, 4992534390148054510),
+UInt256(7214899264741426935, 14934069409098845872, 5028212723626639774, 10852354006112456042),
+UInt256(9018624080926783669, 14055900742946169436, 6285265904533299718, 4342070470785794244),
+UInt256(5636640050579239793, 11090780973555049849, 13151663227188088131, 16548852099523285115),
+UInt256(7045800063224049742, 28418161661648600, 2604520978702946452, 16074379105976718489),
+UInt256(8807250079030062177, 9258894738931836558, 3255651223378683066, 1646229808761346495),
+UInt256(5504531299393788860, 17316024257900867608, 15869840069893840628, 5640579648903229464),
+]
+
+private let bid_multipliers1_binary80_170: [UInt256] = [
+UInt256(6880664124242236076, 3198286248666532895, 1390556013657749169, 7050724561129036830),
+UInt256(8600830155302795095, 3997857810833166118, 15573253072354350173, 13425091719838683941),
+UInt256(5375518847064246934, 9416190159411810680, 5121597151794080954, 10696525334112871415),
+UInt256(6719398558830308668, 2546865662409987542, 6401996439742601193, 4147284630786313461),
+UInt256(8399248198537885835, 3183582078012484427, 17225867586533027299, 9795791806910279730),
+UInt256(5249530124086178646, 18130639863253660431, 8460324232369448110, 3816526870105230879),
+UInt256(6561912655107723308, 13439927792212299731, 5963719272034422233, 13994030624486314407),
+UInt256(8202390818884654135, 16799909740265374664, 2842963071615639888, 3657480225325729297),
+UInt256(5126494261802908834, 17417472615306941021, 1776851919759774930, 2285925140828580811),
+UInt256(6408117827253636043, 12548468732278900468, 6832750918127106566, 12080778462890501821),
+UInt256(8010147284067045054, 11073899896921237681, 8540938647658883208, 5877601041758351469),
+UInt256(5006342052541903159, 2309501417148385646, 16867301700855271765, 3673500651098969668),
+UInt256(6257927565677378948, 16721934826717645770, 11860755089214313898, 9203561832301099989),
+UInt256(7822409457096723686, 2455674459687505597, 5602571824663116565, 2281080253521599178),
+UInt256(4889005910685452303, 15369854592586854710, 5807450399628141805, 3731518167664693438),
+UInt256(6111257388356815379, 14600632222306180483, 16482685036389953064, 9276083728008254702),
+UInt256(7639071735446019224, 13639104259455337700, 15991670277060053426, 11595104660010318377),
+UInt256(4774419834653762015, 8524440162159586063, 771421886307757583, 11858626430933836890),
+UInt256(5968024793317202519, 6043864184272094674, 14799335413166860691, 10211597020239908208),
+UInt256(7460030991646503149, 2943144211912730439, 9275797229603800056, 8152810256872497356),
+UInt256(4662519369779064468, 4145308141659150476, 12714902296143456891, 5095506410545310848),
+UInt256(5828149212223830585, 5181635177073938095, 15893627870179321114, 1757696994754250656),
+UInt256(7285186515279788231, 11088729989769810523, 15255348819296763488, 11420493280297589128),
+UInt256(9106483144099735289, 9249226468784875250, 14457500005693566456, 14275616600371986409),
+UInt256(5691551965062334555, 17309981589059016791, 13647623521985866939, 8922260375232491506),
+UInt256(7114439956327918194, 17025790967896383085, 12447843384054945770, 6541139450613226478),
+UInt256(8893049945409897743, 12058866673015703049, 1724746174786518500, 17399796350121308906),
+UInt256(5558156215881186089, 14454320698275896261, 12607181405310043823, 1651500681971042258),
+UInt256(6947695269851482612, 4232842817562706615, 1923918701355391066, 15899433907745966535),
+UInt256(8684619087314353265, 5291053521953383268, 16239956431976402545, 10650920347827682360),
+UInt256(5427886929571470790, 14836123497289334303, 926600733130475782, 18186040263460771235),
+UInt256(6784858661964338488, 9321782334756892070, 14993308971695258440, 13509178292471188236),
+UInt256(8481073327455423110, 11652227918446115088, 9518264177764297242, 16886472865588985295),
+UInt256(5300670829659639444, 2670956430601434026, 5948915111102685776, 15165731559420503714),
+UInt256(6625838537074549305, 3338695538251792532, 16659515925733133029, 510420375566078026),
+UInt256(8282298171343186631, 8785055441242128570, 2377650833456864670, 5249711487884985436),
+UInt256(5176436357089491644, 12408188678417412212, 6097717789337928322, 17116127735210279610),
+UInt256(6470545446361864555, 15510235848021765265, 7622147236672410403, 12171787632158073704),
+UInt256(8088181807952330694, 14776108791599818677, 14139370064267900908, 10603048521770204226),
+UInt256(5055113629970206684, 4623381976322498769, 11142949299381132019, 15850277362961153449),
+UInt256(6318892037462758355, 5779227470403123462, 93628568944251312, 15201160685274053908),
+UInt256(7898615046828447944, 2612348319576516423, 9340407748035089949, 554706782883015769),
+UInt256(4936634404267779965, 1632717699735322764, 12755283870163013074, 2652534748515578808),
+UInt256(6170793005334724956, 6652583143096541359, 15944104837703766342, 12539040472499249317),
+UInt256(7713491256668406195, 8315728928870676699, 15318445028702320024, 6450428553769285838),
+UInt256(4820932035417753872, 2891487571330478985, 7268185133725256063, 4031517846105803649),
+UInt256(6026165044272192340, 3614359464163098731, 13696917435583957983, 427711289204866657),
+UInt256(7532706305340240425, 4517949330203873414, 12509460776052559574, 14369697166788247034),
+UInt256(4707941440837650265, 14352933377445890644, 3206726966605461830, 4369374710815266492),
+UInt256(5884926801047062832, 4106108666525199593, 4008408708256827287, 14685090425373858923),
+]
+
+private let bid_multipliers1_binary80_171: [UInt256] = [
+UInt256(7356158501308828540, 5132635833156499491, 9622196903748422013, 13744677013289935750),
+UInt256(9195198126636035675, 6415794791445624364, 7416060111258139613, 3345788211330255975),
+UInt256(5746998829147522297, 1704028735439821275, 13858409606391113066, 4396960641295103937),
+UInt256(7183748536434402871, 6741721937727164498, 12711325989561503428, 14719572838473655729),
+UInt256(8979685670543003589, 3815466403731567719, 6665785450097103477, 18399466048092069661),
+UInt256(5612303544089377243, 4690509511545923776, 11083644933951771529, 13805509289271237490),
+UInt256(7015379430111721554, 1251450871005016816, 13854556167439714412, 3421828556306883151),
+UInt256(8769224287639651942, 10787685625611046828, 17318195209299643015, 4277285695383603938),
+UInt256(5480765179774782464, 2130617497579516364, 1600499968957501076, 9590832587255834317),
+UInt256(6850956474718478080, 2663271871974395455, 2000624961196876345, 11988540734069792897),
+UInt256(8563695593398097600, 3329089839967994318, 16335839256778259144, 1150617862305077409),
+UInt256(5352309745873811000, 2080681149979996449, 5598213517059024061, 719136163940673381),
+UInt256(6690387182342263750, 2600851437474995561, 11609452914751167980, 5510606223353229630),
+UInt256(8362983977927829687, 12474436333698520260, 676758088156796263, 6888257779191537037),
+UInt256(5226864986204893554, 14714051736202657018, 9646345841952773472, 11222690139635792504),
+UInt256(6533581232756116943, 9169192633398545465, 2834560265586191032, 14028362674544740630),
+UInt256(8166976540945146179, 6849804773320793927, 8154886350410126694, 17535453343180925788),
+UInt256(5104360338090716362, 1975284974111802252, 12014332996647411040, 6347972321060690714),
+UInt256(6380450422613395452, 11692478254494528623, 15017916245809263800, 7934965401325863392),
+UInt256(7975563028266744315, 14615597818118160779, 14160709288834191846, 9918706751657329240),
+UInt256(4984726892666715197, 6828905627110156535, 6544600296307675952, 1587505701358442871),
+UInt256(6230908615833393996, 13147818052315083573, 3569064351957207036, 1984382126698053589),
+UInt256(7788635769791742495, 16434772565393854466, 9073016458373896699, 2480477658372566986),
+UInt256(4867897356119839059, 17189261881012240897, 10282321304911073340, 17691199600978712030),
+UInt256(6084871695149798824, 16874891332837913217, 17464587649566229580, 3667255427513838422),
+UInt256(7606089618937248531, 2646870092337839906, 7995676506675623263, 4584069284392298027),
+UInt256(4753806011835780331, 17795194872207007605, 9608983835099652443, 9782572330386268123),
+UInt256(5942257514794725414, 17632307571831371602, 16622915812301953458, 7616529394555447250),
+UInt256(7427821893493406768, 12817012427934438695, 11555272728522666015, 297289706339533254),
+UInt256(4642388683433379230, 8010632767459024184, 14139574482967748115, 7103335094103290140),
+UInt256(5802985854291724038, 789918922469004422, 17674468103709685144, 4267482849201724771),
+UInt256(7253732317864655047, 10210770689941031336, 12869713092782330622, 5334353561502155963),
+UInt256(9067165397330818809, 8151777343998901266, 16087141365977913277, 15891313988732470762),
+UInt256(5666978373331761755, 16624075886067783051, 14666149372163583702, 12237914252171488178),
+UInt256(7083722966664702194, 16168408839157340910, 13721000696777091724, 6074020778359584415),
+UInt256(8854653708330877743, 10987139012091900330, 7927878834116588847, 7592525972949480518),
+UInt256(5534158567706798589, 13784490910198519562, 9566610289750255933, 11662857760734507180),
+UInt256(6917698209633498237, 3395555582465985741, 2734890825333044109, 743514145635970263),
+UInt256(8647122762041872796, 8856130496509870080, 8030299550093693040, 5541078700472350733),
+UInt256(5404451726276170497, 14758453597173444608, 5018937218808558150, 3463174187795219208),
+UInt256(6755564657845213122, 4613008941184642048, 6273671523510697687, 13552339771598799818),
+UInt256(8444455822306516402, 14989633213335578368, 7842089404388372109, 12328738696071111869),
+UInt256(5277784888941572751, 13980206776762124384, 4901305877742732568, 10011304694258138870),
+UInt256(6597231111176965939, 12863572452525267576, 6126632347178415710, 12514130867822673587),
+UInt256(8246538888971207424, 11467779547229196566, 7658290433973019638, 6419291547923566176),
+UInt256(5154086805607004640, 7167362217018247854, 174745502805749369, 17847115272734392572),
+UInt256(6442608507008755800, 8959202771272809817, 9441803915361962520, 8473836035635827003),
+UInt256(8053260633760944750, 11199003464091012271, 16413940912629841054, 10592295044544783754),
+UInt256(5033287896100590469, 2387691146629494765, 17176242098034732515, 2008498384413101942),
+UInt256(6291609870125738086, 7596299951714256361, 7635244567261251931, 16345681035798541140),
+]
+
+private let bid_multipliers1_binary80_172: [UInt256] = [
+UInt256(7864512337657172608, 272002902788044643, 14155741727503952818, 15820415276320788521),
+UInt256(4915320211035732880, 170001814242527902, 6541495570476276559, 14499445566127880730),
+UInt256(6144150263794666100, 212502267803159877, 17400241499950121507, 13512620939232463008),
+UInt256(7680187829743332625, 265627834753949847, 7915243819655488172, 12279090155613190856),
+UInt256(4800117393589582890, 11695232442789688414, 11864556414925761963, 16897803384113020093),
+UInt256(6000146741986978613, 5395668516632334710, 5607323481802426646, 16510568211713887212),
+UInt256(7500183427483723266, 11356271664217806291, 16232526389107809116, 11414838227787583207),
+UInt256(4687614642177327041, 11709355808563516836, 7839485983978686745, 16357645929222015313),
+UInt256(5859518302721658802, 801636705422232333, 9799357479973358432, 6611999356245355429),
+UInt256(7324397878402073502, 10225417918632566224, 16860882868394085944, 8264999195306694286),
+UInt256(9155497348002591878, 3558400361435931973, 2629359511783055814, 10331248994133367857),
+UInt256(5722185842501619923, 16059058281179621195, 3949192704078103836, 1845344602905967007),
+UInt256(7152732303127024904, 15462136833047138590, 324804861670241891, 2306680753632458758),
+UInt256(8940915378908781131, 880926967599371621, 9629378113942578171, 16718408997322737160),
+UInt256(5588072111817988206, 16691480419245464927, 8324204330427805309, 8143162614113016773),
+UInt256(6985090139772485258, 11640978487202055351, 5793569394607368732, 14790639286068658870),
+UInt256(8731362674715606573, 5327851072147793381, 2630275724831823012, 41555033876271972),
+UInt256(5457101671697254108, 5635749929306064815, 3949765337233583334, 9249343933027445790),
+UInt256(6821377089621567635, 7044687411632581019, 325520653114591264, 2338307879429531430),
+UInt256(8526721362026959544, 4194173246113338369, 14241958871675402792, 2922884849286914287),
+UInt256(5329200851266849715, 2621358278820836481, 1983695267156044889, 1826803030804321430),
+UInt256(6661501064083562143, 17111755903808209313, 7091305102372444015, 6895189806932789691),
+UInt256(8326876330104452679, 16778008861332873737, 13475817396392942923, 4007301240238599210),
+UInt256(5204297706315282924, 17403784565974127942, 1504856845104507471, 198720265935430554),
+UInt256(6505372132894103656, 3307986633758108311, 11104443093235410146, 14083458387701451905),
+UInt256(8131715166117629570, 4134983292197635389, 9268867848116874779, 8380950947772039073),
+UInt256(5082321978823518481, 7196050576050910022, 8098885414286740689, 2932251333143830469),
+UInt256(6352902473529398101, 13606749238491025432, 900234731003650053, 8277000184857175990),
+UInt256(7941128091911747627, 3173378492831618078, 1125293413754562566, 14957936249498857891),
+UInt256(4963205057444842266, 18124262622515618962, 14538366438878765316, 4737024137509398278),
+UInt256(6204006321806052833, 13431956241289747895, 8949586011743680837, 5921280171886747847),
+UInt256(7755007902257566042, 2954887246330021157, 6575296496252213142, 12013286233285822713),
+UInt256(4846879938910978776, 6458490547383651127, 6415403319371327166, 2896617877376251292),
+UInt256(6058599923638723470, 8073113184229563909, 3407568130786771053, 12844144383575089923),
+UInt256(7573249904548404338, 868019443432179078, 8871146181910851721, 2220122424186698691),
+UInt256(4733281190342752711, 5154198170572499828, 932780345266894421, 12916791561185156442),
+UInt256(5916601487928440889, 1831061694788236881, 1165975431583618027, 2310931396199281841),
+UInt256(7395751859910551111, 6900513136912684005, 6069155307906910437, 16723722300531266013),
+UInt256(4622344912444094444, 11230349738211509359, 6099065076655512975, 12758169447045735210),
+UInt256(5777931140555118055, 14037937172764386699, 3012145327392003315, 11336025790379781109),
+UInt256(7222413925693897569, 12935735447528095469, 17600239714522167856, 9558346219547338482),
+UInt256(9028017407117371962, 2334611254127955625, 8165241587870546108, 11947932774434173102),
+UInt256(5642510879448357476, 6070818052257360169, 16632491038487561077, 16690830020876133997),
+UInt256(7053138599310446845, 7588522565321700212, 6955555742827287635, 7028479470813003784),
+UInt256(8816423249138058556, 14097339225079513169, 8694444678534109544, 4173913320088866826),
+UInt256(5510264530711286597, 18034209052529471538, 16963242970152288225, 2608695825055541766),
+UInt256(6887830663389108247, 8707703260379675711, 11980681675835584473, 7872555799746815112),
+UInt256(8609788329236385309, 6272943057047206735, 10364166076367092687, 14452380768110906794),
+UInt256(5381117705772740818, 6226432419868198161, 13395132825370514785, 15950267007710398602),
+UInt256(6726397132215926022, 17006412561690023510, 2908857976430979770, 6102775704355834541),
+]
+
+private let bid_multipliers1_binary80_173: [UInt256] = [
+UInt256(8407996415269907528, 12034643665257753579, 12859444507393500520, 16851841667299568984),
+UInt256(5254997759543692205, 7521652290786095987, 5731309807907243873, 10532401042062230615),
+UInt256(6568747199429615256, 14013751381910007888, 2552451241456666937, 17777187321005176173),
+UInt256(8210933999287019070, 17517189227387509860, 3190564051820833672, 8386426095974306504),
+UInt256(5131833749554386919, 6336557248689805758, 11217474569242796853, 5241516309983941565),
+UInt256(6414792186942983649, 3309010542434869294, 4798471174698720258, 11163581405907314860),
+UInt256(8018490233678729561, 8747949196470974521, 15221461005228176131, 4731104720529367767),
+UInt256(5011556396049205975, 16996683293862828836, 2595884100626528226, 651097441117160903),
+UInt256(6264445495061507469, 16634168098901148141, 3244855125783160282, 10037243838251226936),
+UInt256(7830556868826884337, 6957652068344271464, 8667754925656338257, 3323182760959257862),
+UInt256(4894098043016802710, 15877747588783639425, 5417346828535211410, 13606204271668005924),
+UInt256(6117622553771003388, 10623812449124773473, 11383369554096402167, 7784383302730231597),
+UInt256(7647028192213754235, 13279765561405966842, 394153887338338997, 5118793109985401592),
+UInt256(4779392620133596397, 5994010466665035324, 4858032198013849777, 5505088702954569947),
+UInt256(5974240775166995496, 12104199101758682059, 6072540247517312221, 11493046897120600338),
+UInt256(7467800968958744370, 15130248877198352574, 2978989290969252373, 531250566118586710),
+UInt256(4667375605599215231, 14068091566676358262, 15696926362137946445, 2637874613037810646),
+UInt256(5834219506999019039, 12973428439918059924, 10397785915817657248, 7909029284724651211),
+UInt256(7292774383748773799, 11605099531470187001, 12997232394772071560, 9886286605905814014),
+UInt256(9115967979685967249, 9894688395910345848, 2411482438182925738, 12357858257382267517),
+UInt256(5697479987303729530, 17713395293512435915, 1507176523864328586, 12335347429291305103),
+UInt256(7121849984129661913, 12918372080035769085, 15719028710112574445, 6195812249759355570),
+UInt256(8902312480162077392, 2312907044762547645, 5813727832358554344, 12356451330626582366),
+UInt256(5563945300101298370, 1445566902976592278, 5939422904437790417, 7722782081641613979),
+UInt256(6954931625126622962, 11030330665575516155, 16647650667402013829, 14265163620479405378),
+UInt256(8693664531408278703, 4564541295114619386, 16197877315825129383, 3996396470317093010),
+UInt256(5433540332130174189, 9770367337087718972, 14735359340818093768, 9415276821589264988),
+UInt256(6791925415162717736, 16824645189787036619, 18419199176022617210, 11769096026986581234),
+UInt256(8489906768953397171, 2584062413524244158, 18412312951600883609, 5487997996878450735),
+UInt256(5306191730595873231, 17755940072948510263, 6896009576323164351, 14959213794117501469),
+UInt256(6632739663244841539, 17583239072758249925, 4008325951976567535, 14087331224219488933),
+UInt256(8290924579056051924, 17367362822520424502, 9622093458398097323, 12997478011846973262),
+UInt256(5181827861910032453, 1631229727220489506, 1402122393071422923, 5817580748190664337),
+UInt256(6477284827387540566, 6650723177452999786, 10976025028194054462, 2660289916810942517),
+UInt256(8096606034234425707, 17536776008671025541, 4496659248387792269, 12548734432868453954),
+UInt256(5060378771396516067, 8654641996205697011, 5116255039456064120, 10148802029756477673),
+UInt256(6325473464245645084, 6206616476829733360, 1783632780892692246, 12686002537195597092),
+UInt256(7906841830307056355, 7758270596037166700, 2229540976115865308, 6634131134639720556),
+UInt256(4941776143941910222, 2543076113309535235, 10616835146927191625, 13369703996004601156),
+UInt256(6177220179927387777, 12402217178491694852, 8659357915231601628, 2877071939723587733),
+UInt256(7721525224909234722, 1667713417832454853, 10824197394039502035, 3596339924654484666),
+UInt256(4825953265568271701, 5654006904572672187, 9070966380488382723, 18388613517404910580),
+UInt256(6032441581960339626, 11679194649143228138, 6727021957183090500, 18374080878328750321),
+UInt256(7540551977450424533, 5375621274574259364, 17632149483333638934, 4520857024201386286),
+UInt256(4712844985906515333, 5665606305822606055, 1796721390228748525, 16660593695408030141),
+UInt256(5891056232383144166, 11693693900705645472, 16080959793068099369, 6990684063977873964),
+UInt256(7363820290478930208, 5393745339027281033, 1654455667625572595, 13350041098399730358),
+UInt256(9204775363098662760, 6742181673784101291, 6679755602959353648, 12075865354572275044),
+UInt256(5752984601936664225, 4213863546115063307, 1869004242635902078, 7547415846607671903),
+UInt256(7191230752420830281, 9879015451071217037, 16171313358577041310, 210897771404814070),
+]
+
+private let bid_multipliers1_binary80_174: [UInt256] = [
+UInt256(8989038440526037851, 16960455332266409201, 6379083642939137925, 9486994251110793396),
+UInt256(5618149025328773657, 8294441573452811798, 15516142322905430963, 8235214416157939824),
+UInt256(7022686281660967071, 14979737985243402652, 10171805866777012896, 5682332001770036876),
+UInt256(8778357852076208839, 14112986463126865411, 12714757333471266120, 7102915002212546095),
+UInt256(5486473657547630524, 15738145567095372738, 5640880324205847373, 4439321876382841310),
+UInt256(6858092071934538156, 1225937885159664306, 16274472442112085024, 10160838363905939541),
+UInt256(8572615089918172695, 1532422356449580383, 11119718515785330472, 12701047954882424426),
+UInt256(5357884431198857934, 7875293000422069595, 13867353100006913401, 7938154971801515267),
+UInt256(6697355538998572418, 620744213672811186, 12722505356581253847, 14534379733179281987),
+UInt256(8371694423748215522, 9999302303945789791, 6679759658871791501, 13556288648046714580),
+UInt256(5232309014842634701, 10861249958393506523, 11092378814435951544, 10778523414242890565),
+UInt256(6540386268553293376, 18188248466419271058, 9253787499617551526, 13473154267803613206),
+UInt256(8175482835691616721, 4288566509314537207, 2343862337667163600, 7618070797899740699),
+UInt256(5109676772307260450, 14209569114390055514, 8382442988683059106, 4761294248687337937),
+UInt256(6387095965384075563, 8538589356132793585, 1254681698999048074, 15174989847713948229),
+UInt256(7983869956730094454, 6061550676738604077, 6180038142176197997, 9745365272787659478),
+UInt256(4989918722956309033, 17623527228243791260, 6168366848073817700, 8396696304705981126),
+UInt256(6237398403695386292, 8194350980022575363, 7710458560092272125, 10495870380882476408),
+UInt256(7796748004619232865, 10242938725028219204, 5026387181687952252, 17731523994530483413),
+UInt256(4872967502887020540, 17931051749211106762, 12364864025409745966, 1858830459726776325),
+UInt256(6091209378608775676, 3967070612804331837, 6232707994907406649, 11546910111513246215),
+UInt256(7614011723260969595, 4958838266005414796, 12402571012061646216, 598579584109394056),
+UInt256(4758757327038105997, 793430907039690295, 16974978919393304693, 374112240068371285),
+UInt256(5948446658797632496, 5603474652227000773, 16607037630814242962, 5079326318512852011),
+UInt256(7435558323497040620, 7004343315283750967, 6923738983235639990, 15572529934995840821),
+UInt256(4647223952185650387, 13601086608907120162, 11244865892163356850, 5121145190945012609),
+UInt256(5809029940232062984, 12389672242706512299, 4832710328349420254, 15624803525536041570),
+UInt256(7261287425290078730, 15487090303383140374, 1429201892009387414, 10307632370065276154),
+UInt256(9076609281612598413, 10135490842374149659, 11009874401866510076, 3661168425726819384),
+UInt256(5672880801007874008, 8640524785697537489, 4575328491952874845, 11511602302934037923),
+UInt256(7091101001259842510, 10800655982121921861, 10330846633368481461, 554444823385383692),
+UInt256(8863876251574803138, 4277447940797626518, 17525244310137989730, 5304742047659117519),
+UInt256(5539922657234251961, 7285090981425904478, 6341591675408855677, 7927149798214336353),
+UInt256(6924903321542814951, 13718049745209768501, 17150361631115845404, 14520623266195308346),
+UInt256(8656129151928518689, 12535876163084822723, 7602893983612643043, 18150779082744135432),
+UInt256(5410080719955324181, 917393574286932346, 2445965730544207950, 9038393917501390693),
+UInt256(6762600899944155226, 5758427986286053336, 12280829200035035746, 2074620360021962558),
+UInt256(8453251124930194032, 16421407019712342478, 15351036500043794682, 11816647486882229006),
+UInt256(5283281953081371270, 10263379387320214049, 4982711794099983772, 11997090697728781033),
+UInt256(6604102441351714088, 3605852197295491753, 10840075761052367619, 14996363372160976291),
+UInt256(8255128051689642610, 4507315246619364691, 18161780719742847428, 14133768196773832460),
+UInt256(5159455032306026631, 7428758047564490836, 9045269940625585690, 18056977159838421095),
+UInt256(6449318790382533289, 4674261541028225641, 11306587425781982113, 13347849412943250561),
+UInt256(8061648487978166611, 10454512944712669956, 298176226945313930, 2849753710896899489),
+UInt256(5038530304986354132, 4228227581231724770, 9409732178695597014, 6392782087737950085),
+UInt256(6298162881232942665, 5285284476539655963, 2538793186514720459, 17214349646527213414),
+UInt256(7872703601541178331, 11218291614101957857, 17008549538425564286, 16906251039731628864),
+UInt256(4920439750963236457, 4705589249600029709, 3712814433874895823, 5954720881404880136),
+UInt256(6150549688704045571, 10493672580427425040, 9252704060771007683, 2831715083328712266),
+UInt256(7688187110880056964, 8505404707106893396, 11565880075963759603, 17374701909443054044),
+]
+
+private let bid_multipliers1_binary80_175: [UInt256] = [
+UInt256(4805116944300035602, 14539249978796584180, 16452047084332125560, 8553345684188214826),
+UInt256(6006396180375044503, 8950690436640954418, 2118314781705605334, 10691682105235268532),
+UInt256(7507995225468805629, 6576677027373805118, 11871265513986782476, 4141230594689309857),
+UInt256(4692497015918003518, 6416266151322322151, 2807854927814351143, 11811641158535594469),
+UInt256(5865621269897504397, 17243704726007678496, 17344876715050102641, 10152865429742105182),
+UInt256(7332026587371880497, 7719572852227434409, 3234351820103076685, 17302767805605019381),
+UInt256(9165033234214850621, 14261152083711680915, 8654625793556233761, 7793401701724110514),
+UInt256(5728145771384281638, 11219063061533494524, 3103298111758952148, 16400091109646038832),
+UInt256(7160182214230352048, 4800456790062092347, 3879122639698690186, 2053369813347996923),
+UInt256(8950227767787940060, 6000570987577615434, 237217281195974828, 11790084303539771962),
+UInt256(5593892354867462537, 12973728904090785454, 4759946819174872171, 16592174726567133285),
+UInt256(6992365443584328172, 2382103074831318105, 15173305560823366022, 16128532389781528702),
+UInt256(8740456804480410215, 2977628843539147632, 5131573895747043816, 10937293450372135069),
+UInt256(5462785502800256384, 8778547054853049126, 3207233684841902385, 6835808406482584418),
+UInt256(6828481878500320480, 10973183818566311407, 13232414142907153789, 13156446526530618427),
+UInt256(8535602348125400600, 13716479773207889259, 11928831660206554333, 2610500102881109321),
+UInt256(5334751467578375375, 8572799858254930787, 5149676778415402506, 3937405573514387278),
+UInt256(6668439334472969219, 6104313804391275580, 1825409954591865228, 14145129003747759905),
+UInt256(8335549168091211524, 3018706237061706571, 2281762443239831535, 17681411254684699881),
+UInt256(5209718230057007202, 11110063435018342414, 17567002591520752373, 17968411061819019282),
+UInt256(6512147787571259003, 4664207256918152210, 12735381202546164659, 8625455771991610390),
+UInt256(8140184734464073754, 1218573052720302359, 6695854466327930016, 6170133696562125084),
+UInt256(5087615459040046096, 5373294176377576878, 11102438069096038116, 3856333560351328178),
+UInt256(6359519323800057620, 6716617720471971098, 4654675549515271837, 4820416950439160222),
+UInt256(7949399154750072025, 8395772150589963872, 15041716473748865604, 10637207206476338181),
+UInt256(4968374471718795015, 16776572640187197180, 9401072796093041002, 15871626540902487172),
+UInt256(6210468089648493769, 16359029781806608571, 11751340995116301253, 10616161139273333156),
+UInt256(7763085112060617212, 6613729171976097002, 10077490225467988662, 17881887442519054349),
+UInt256(4851928195037885757, 13356952769339836434, 10910117409344880818, 6564493633147021064),
+UInt256(6064910243797357197, 2861132906392631831, 4414274724826325214, 17428989078288552138),
+UInt256(7581137804746696496, 8188102151418177693, 906157387605518614, 12562864311005914365),
+UInt256(4738211127966685310, 5117563844636361058, 2872191376467143086, 3240104175951308574),
+UInt256(5922763909958356637, 15620326842650227130, 12813611257438704665, 13273502256793911526),
+UInt256(7403454887447945797, 5690350498030620201, 6793642034943605024, 2756819765710225695),
+UInt256(4627159304654966123, 5862312070482831577, 15775241317908222900, 1723012353568891060),
+UInt256(5783949130818707654, 2716204069676151568, 5883993592103114913, 2153765441961113824),
+UInt256(7229936413523384567, 12618627123949965268, 7354991990128893641, 7303892820878780184),
+UInt256(9037420516904230709, 11161597886510068681, 9193739987661117051, 13741552044525863134),
+UInt256(5648387823065144193, 9281841688282486877, 17275302538356667917, 6282627018614970507),
+UInt256(7060484778831430241, 16213988128780496501, 7759070117663671184, 12464969791696101038),
+UInt256(8825605973539287802, 6432427105693456914, 14310523665506976884, 15581212239620126297),
+UInt256(5516003733462054876, 8631952959485798475, 13555763309369248457, 514885612907803128),
+UInt256(6895004666827568595, 10789941199357248094, 12333018118284172667, 5255293034562141814),
+UInt256(8618755833534460744, 8875740480769172214, 6192900611000440026, 1957430274775289363),
+UInt256(5386722395959037965, 5547337800480732633, 17705620937157438728, 5835079940161943756),
+UInt256(6733402994948797456, 11545858269028303696, 8296968116164634698, 7293849925202429695),
+UInt256(8416753743685996820, 14432322836285379620, 10371210145205793372, 18340684443357812927),
+UInt256(5260471089803748012, 18243573809533138070, 15705378377608396666, 2239555740243857271),
+UInt256(6575588862254685016, 4357723188206870972, 10408350935155720024, 12022816712159597397),
+UInt256(8219486077818356270, 5447153985258588715, 13010438668944650030, 15028520890199496746),
+]
+
+private let bid_multipliers1_binary80_176: [UInt256] = [
+UInt256(5137178798636472668, 17239529296068781659, 5825681158876712317, 4781139537947297562),
+UInt256(6421473498295590836, 3102667546376425458, 2670415430168502492, 10588110440861509857),
+UInt256(8026841872869488545, 3878334432970531822, 12561391324565403923, 13235138051076887321),
+UInt256(5016776170543430340, 13953174066675052149, 3239183559425989548, 5966118272709360624),
+UInt256(6270970213179287925, 17441467583343815186, 8660665467709874839, 7457647840886700780),
+UInt256(7838712766474109907, 7966776423897605271, 1602459797782567741, 4710373782680988071),
+UInt256(4899195479046318692, 2673392255722309342, 7919066401255186694, 5249826623389311496),
+UInt256(6123994348807898365, 3341740319652886678, 675460964714207559, 15785655316091415178),
+UInt256(7654992936009872956, 8788861417993496251, 10067698242747535257, 15120383126686881069),
+UInt256(4784370585006170597, 14716410423100710965, 3986468392503515584, 2532710426538218812),
+UInt256(5980463231257713247, 4560454973593724994, 9594771509056782384, 3165888033172773515),
+UInt256(7475579039072141559, 1088882698564768339, 2770092349466202172, 3957360041465966894),
+UInt256(4672236899420088474, 7598080714244062067, 17872208782912234021, 11696722062771005117),
+UInt256(5840296124275110593, 274228855950301776, 17728574960212904623, 785844523181592684),
+UInt256(7300370155343888241, 4954472088365265125, 3713974626556579162, 14817363709259154567),
+UInt256(9125462694179860301, 10804776128883969310, 9254154301623111857, 9298332599719167400),
+UInt256(5703414183862412688, 9058828089766174771, 1172160420087057006, 17340672920892949385),
+UInt256(7129267729828015860, 11323535112207718463, 15300258580390984970, 12452469114261410923),
+UInt256(8911584662285019825, 14154418890259648079, 14513637207061343309, 6342214355971987846),
+UInt256(5569740413928137391, 1928982778771198193, 15988552282054421424, 6269726981696186356),
+UInt256(6962175517410171738, 16246286528746161454, 6150632297285863068, 7837158727120232945),
+UInt256(8702719396762714673, 11084486124077926009, 16911662408462104643, 9796448408900291181),
+UInt256(5439199622976696671, 10274799907621900, 3652259977647733546, 3816937246348988036),
+UInt256(6798999528720870838, 13847901555166691087, 4565324972059666932, 13994543594791010853),
+UInt256(8498749410901088548, 8086504907103588051, 1094970196647195761, 17493179493488763566),
+UInt256(5311718381813180342, 14277437603794518339, 16825257437400355015, 4015708155789395373),
+UInt256(6639647977266475428, 8623424967888372116, 16419885778323055865, 407949176309356312),
+UInt256(8299559971583094285, 10779281209860465146, 2078113149194268215, 5121622488814083294),
+UInt256(5187224982239433928, 9042893765376484668, 5910506736673805538, 10118543083149883915),
+UInt256(6484031227799292410, 11303617206720605835, 7388133420842256923, 3424806817082579086),
+UInt256(8105039034749115513, 4906149471545981486, 4623480757625433249, 18116066576635387569),
+UInt256(5065649396718197195, 14595558465784708188, 16724733528798059493, 4405012582756035375),
+UInt256(6332061745897746494, 13632762063803497332, 2459172837288022750, 10117951746872432123),
+UInt256(7915077182372183118, 7817580542899595857, 3073966046610028438, 3424067646735764345),
+UInt256(4946923238982614449, 274301820884859506, 13450443825199737533, 15975100334492016428),
+UInt256(6183654048728268061, 4954563294533462287, 7589682744644896109, 6133817362832856823),
+UInt256(7729567560910335076, 10804890136594215763, 4875417412378732232, 12278957721968458932),
+UInt256(4830979725568959422, 15976428372226160660, 741292873523013693, 7674348576230286833),
+UInt256(6038724656961199278, 10747163428427925017, 926616091903767116, 14204621738715246445),
+UInt256(7548405821201499098, 4210582248680130463, 5769956133307096799, 17755777173394058056),
+UInt256(4717753638250936936, 7243299923852469443, 10523751610958017355, 18014889761012368141),
+UInt256(5897192047813671170, 9054124904815586804, 8543003495270133790, 17906926182838072272),
+UInt256(7371490059767088963, 2094284094164707697, 10678754369087667238, 13160285691692814532),
+UInt256(9214362574708861203, 16452913172988048333, 17960128979786971952, 7226985077761242357),
+UInt256(5758976609193038252, 7977227723903836256, 13530923621580551422, 4516865673600776473),
+UInt256(7198720761491297815, 9971534654879795320, 16913654526975689277, 14869454128855746400),
+UInt256(8998400951864122269, 7852732300172356247, 2695324085010059981, 4751759605787519288),
+UInt256(5624000594915076418, 7213800696821416606, 8602106580772369344, 5275692762830893507),
+UInt256(7030000743643845522, 18240622907881546566, 1529261189110685872, 6594615953538616883),
+UInt256(8787500929554806903, 13577406597997157399, 11134948523243133148, 8243269941923271104),
+]
+
+private let bid_multipliers1_binary80_177: [UInt256] = [
+UInt256(5492188080971754314, 15403408151389305230, 13876871854668040073, 14375415750556820248),
+UInt256(6865235101214692893, 10030888152381855730, 8122717781480274284, 4134211632913861598),
+UInt256(8581543876518366116, 17150296208904707567, 930025189995567047, 5167764541142326998),
+UInt256(5363464922823978823, 1495563093710666421, 7498794771388311260, 10147381865855036230),
+UInt256(6704331153529973528, 15704511922420496738, 13985179482662776979, 12684227332318795287),
+UInt256(8380413941912466911, 1183895829316069307, 8258102316473695416, 11243598146971106205),
+UInt256(5237758713695291819, 7657463920963625173, 2855470938582365683, 7027248841856941378),
+UInt256(6547198392119114774, 4960143882777143562, 8181024691655345008, 4172375033893788819),
+UInt256(8183997990148893467, 15423551890326205261, 1002908827714405452, 5215468792367236023),
+UInt256(5114998743843058417, 7333876922240184336, 2932661026535197359, 12483040032084298323),
+UInt256(6393748429803823021, 13779032171227618324, 3665826283168996699, 10992114021677984999),
+UInt256(7992185537254778777, 3388732158752359193, 4582282853961245874, 9128456508670093345),
+UInt256(4995115960784236735, 13647172645288694255, 14393141829794248431, 10316971336346196245),
+UInt256(6243894950980295919, 12447279788183479915, 13379741268815422635, 8284528152005357402),
+UInt256(7804868688725369899, 10947413716801961990, 12112990567591890390, 5743974171579308848),
+UInt256(4878042930453356187, 4536290563787532292, 2958933086317543589, 17425041912519231742),
+UInt256(6097553663066695234, 1058677186307027461, 3698666357896929487, 7946244335366875966),
+UInt256(7621942078833369042, 10546718519738560134, 9235018965798549763, 5321119400781207053),
+UInt256(4763713799270855651, 11203385093263987988, 1160200835196705698, 1019856616274560456),
+UInt256(5954642249088569564, 9392545348152597081, 1450251043995882122, 10498192807197976378),
+UInt256(7443302811360711955, 11740681685190746351, 6424499823422240557, 3899368972142694665),
+UInt256(4652064257100444972, 5032083044030522517, 10932841417279982204, 4742948616802878118),
+UInt256(5815080321375556215, 6290103805038153146, 18277737790027365659, 5928685771003597647),
+UInt256(7268850401719445269, 3250943737870303529, 13623800200679431266, 2799171195327109154),
+UInt256(9086063002149306586, 8675365690765267316, 3194692195567125370, 12722336031013662251),
+UInt256(5678789376343316616, 10033789575155679976, 11220054659084229164, 12563146037810926811),
+UInt256(7098486720429145770, 12542236968944599970, 14025068323855286455, 15703932547263658514),
+UInt256(8873108400536432213, 6454424174325974155, 8307963367964332261, 15018229665652185238),
+UInt256(5545692750335270133, 6339858118167427799, 2886634095764013711, 11692236550246309726),
+UInt256(6932115937919087666, 12536508666136672652, 17443350674987180851, 10003609669380499253),
+UInt256(8665144922398859583, 6447263795816065008, 3357444270024424448, 7892826068298236162),
+UInt256(5415715576499287239, 10947068900026122486, 2098402668765265280, 4933016292686397602),
+UInt256(6769644470624109049, 9072150106605265203, 11846375372811357408, 6166270365857997002),
+UInt256(8462055588280136311, 15951873651683969408, 10196283197586808856, 7707837957322496252),
+UInt256(5288784742675085194, 16887450059943562736, 6372676998491755535, 4817398723326560158),
+UInt256(6610980928343856493, 11885940538074677612, 7965846248114694419, 1410062385730812293),
+UInt256(8263726160429820617, 1022367617311183303, 9957307810143368023, 15597636037445679079),
+UInt256(5164828850268637885, 12168194806887959324, 13140846408980686870, 16666051551044631280),
+UInt256(6456036062835797357, 1375185453327785443, 16426058011225858588, 11609192401951013292),
+UInt256(8070045078544746696, 6330667835087119708, 15920886495604935331, 14511490502438766615),
+UInt256(5043778174090466685, 3956667396929449818, 727182022898308774, 6763838554810535183),
+UInt256(6304722717613083356, 9557520264589200176, 10132349565477661775, 17678170230367944786),
+UInt256(7880903397016354195, 11946900330736500220, 12665436956847077219, 17486026769532543079),
+UInt256(4925564623135221372, 5160969697496618685, 17139270134884199070, 8622923721744145472),
+UInt256(6156955778919026715, 6451212121870773357, 7589029613323085126, 1555282615325406032),
+UInt256(7696194723648783394, 3452329133911078792, 14097973035081244311, 11167475306011533348),
+UInt256(4810121702280489621, 6769391727121812149, 8811233146925777694, 13897201093898290199),
+UInt256(6012652127850612026, 13073425677329653090, 15625727452084610022, 8148129330518086940),
+UInt256(7515815159813265033, 7118410059807290555, 10308787278250986720, 961789626292832867),
+UInt256(4697384474883290645, 15978221333448026357, 4137149039693172748, 601118516433020542),
+]
+
+private let bid_multipliers1_binary80_178: [UInt256] = [
+UInt256(5871730593604113307, 6137718611527869234, 9783122318043853839, 751398145541275678),
+UInt256(7339663242005141634, 3060462245982448639, 3005530860700041490, 14774305737208758309),
+UInt256(9174579052506427042, 13048949844332836606, 17591971631157215575, 9244510134656172078),
+UInt256(5734111907816516901, 12767279671135410783, 6383296251045871830, 12695347861801189405),
+UInt256(7167639884770646127, 2124041533637099767, 3367434295379951884, 6645812790396710948),
+UInt256(8959549855963307658, 16490109972328538420, 18044350924507103567, 8307265987995888685),
+UInt256(5599718659977067286, 14918004751132724417, 2054347290962163921, 12109570270138512284),
+UInt256(6999648324971334108, 9424133902061129713, 7179620132130092806, 1301904782390976643),
+UInt256(8749560406214167635, 11780167377576412141, 13586211183590003911, 10850753014843496612),
+UInt256(5468475253883854772, 5056761601771563636, 10797224998957446396, 13699249661918267239),
+UInt256(6835594067354818465, 6320952002214454545, 13496531248696807995, 17124062077397834048),
+UInt256(8544492584193523081, 12512876021195456086, 3035606005588846282, 16793391578319904656),
+UInt256(5340307865120951926, 903018485606078197, 15732311808775192638, 15107555754877328314),
+UInt256(6675384831401189907, 10352145143862373555, 5830331705686827086, 9661072656741884585),
+UInt256(8344231039251487384, 8328495411400579040, 2676228613681145954, 2852968784072579923),
+UInt256(5215144399532179615, 5205309632125361900, 1672642883550716221, 6394791508472750356),
+UInt256(6518930499415224519, 1894951021729314471, 2090803604438395276, 12605175404018325849),
+UInt256(8148663124269030648, 16203746832443806800, 16448562560830157807, 15756469255022907311),
+UInt256(5092914452668144155, 10127341770277379250, 10280351600518848629, 16765322312030398926),
+UInt256(6366143065835180194, 8047491194419336159, 3627067463793784979, 7121594834755834945),
+UInt256(7957678832293975243, 835991956169394390, 18368892385024394936, 4290307525017405777),
+UInt256(4973549270183734526, 16663396037101729158, 6868871722212858931, 2681442203135878611),
+UInt256(6216936587729668158, 11605873009522385639, 17809461689620849471, 17186860809202011975),
+UInt256(7771170734662085198, 5283969225048206241, 17650141093598673935, 16871889993075127065),
+UInt256(4856981709163803248, 17137538820937292613, 4113809155858089353, 17462460273313036272),
+UInt256(6071227136454754061, 2975179452462064150, 9753947463249999596, 7993017286359131628),
+UInt256(7589033920568442576, 8330660334004968092, 2969062292207723687, 9991271607948914534),
+UInt256(4743146200355276610, 5206662708753105057, 11079035969484603112, 13162073782609153440),
+UInt256(5928932750444095762, 15731700422796157130, 13736906573590178, 16452592228261441800),
+UInt256(7411165938055119703, 10441253491640420604, 9240543170071763531, 11342368248472026442),
+UInt256(4631978711284449814, 13443312459916344733, 14998711518149628015, 4783137146081322574),
+UInt256(5789973389105562268, 7580768538040655109, 4913331342404871307, 1367235414174265314),
+UInt256(7237466736381952835, 9475960672550818886, 10753350196433477037, 15544102322999995354),
+UInt256(9046833420477441044, 7233264822261135704, 4218315708687070489, 5595069848467830481),
+UInt256(5654270887798400652, 13744162550767985623, 2636447317929419055, 15026133701360863811),
+UInt256(7067838609748000815, 17180203188459982028, 17130617202693937531, 14170981108273691859),
+UInt256(8834798262185001019, 16863567967147589632, 2966527429657870298, 13102040366914726920),
+UInt256(5521748913865625637, 8233886970253549568, 1854079643536168936, 12800461247749092229),
+UInt256(6902186142332032046, 14904044731244324864, 2317599554420211170, 16000576559686365286),
+UInt256(8627732677915040058, 9406683877200630272, 2896999443025263963, 10777348662753180800),
+UInt256(5392332923696900036, 10490863441677781824, 1810624651890789977, 4429999905007044048),
+UInt256(6740416154621125045, 13113579302097227280, 2263280814863487471, 10149185899686192964),
+UInt256(8425520193276406307, 2556916072339370388, 2829101018579359339, 8074796356180353301),
+UInt256(5265950120797753941, 17738973609707964156, 10991560173466875395, 2740904713399026861),
+UInt256(6582437650997192427, 8338658956852791483, 13739450216833594243, 17261188947030947288),
+UInt256(8228047063746490534, 5811637677638601450, 12562626752614604900, 16964800165361296206),
+UInt256(5142529414841556583, 17467331603806289618, 12463327738811515967, 1379628066496034321),
+UInt256(6428161768551945729, 17222478486330474119, 6355787636659619150, 15559593138402206613),
+UInt256(8035202210689932162, 7693040052630928937, 3333048527397136034, 10226119386147982458),
+UInt256(5022001381681207601, 9419836051321718489, 13612370375691679781, 11003010634769876941),
+]
+
+private let bid_multipliers1_binary80_179: [UInt256] = [
+UInt256(6277501727101509501, 16386481082579536016, 3180404914332436014, 18365449311889734080),
+UInt256(7846877158876886877, 6648043297942256308, 3975506142915545018, 13733439603007391792),
+UInt256(4904298224298054298, 6460870070427604144, 11708063376176991444, 13195085770307007774),
+UInt256(6130372780372567872, 17299459624889280988, 14635079220221239305, 16493857212883759717),
+UInt256(7662965975465709841, 3177580457402049619, 18293849025276549132, 6782263460822535934),
+UInt256(4789353734666068650, 13515202831944750772, 9127812631584149255, 13462286699868860767),
+UInt256(5986692168332585813, 7670631503076162657, 11409765789480186569, 12216172356408688055),
+UInt256(7483365210415732266, 14199975397272591226, 427149181568069500, 1435157390228696356),
+UInt256(4677103256509832666, 13486670641722757420, 4878654256907431341, 10120345405747711031),
+UInt256(5846379070637290833, 7634966265298670967, 6098317821134289176, 17262117775612026693),
+UInt256(7307973838296613541, 14155393850050726613, 3011211257990473567, 3130903145805481750),
+UInt256(9134967297870766927, 3859184257281244554, 8375700090915479862, 17748686987539015899),
+UInt256(5709354561169229329, 9329519188441859702, 9846498575249562818, 6481243348784497033),
+UInt256(7136693201461536661, 16273585003979712532, 3084751182207177714, 17324926222835397099),
+UInt256(8920866501826920827, 6506923199692476953, 3855938977758972143, 12432785741689470566),
+UInt256(5575541563641825517, 1760983990594104143, 13939176907167827349, 14688020116197000960),
+UInt256(6969426954552281896, 6812916006670018083, 12812285115532396283, 4524967089964087488),
+UInt256(8711783693190352370, 8516145008337522604, 11403670375988107450, 1044522844027721455),
+UInt256(5444864808243970231, 9934276648638339531, 16350666021847342964, 5264512795944713814),
+UInt256(6806081010304962789, 7806159792370536510, 15826646508881790801, 6580640994930892267),
+UInt256(8507601262881203486, 14369385758890558542, 10559936099247462693, 12837487262091003238),
+UInt256(5317250789300752179, 4369180080879211185, 1988274043602276279, 10329272548020570976),
+UInt256(6646563486625940224, 849789082671626077, 7097028572930233253, 8299904666598325816),
+UInt256(8308204358282425280, 1062236353339532596, 13482971734590179470, 14986566851675295173),
+UInt256(5192627723926515800, 663897720837207872, 17650229370973637977, 4754918263869671580),
+UInt256(6490784654908144750, 829872151046509841, 3616042640007495855, 10555333848264477378),
+UInt256(8113480818635180937, 10260712225662913109, 9131739318436757723, 8582481291903208819),
+UInt256(5070925511646988085, 17942160187107790453, 8013180083236667529, 3058207798225811560),
+UInt256(6338656889558735107, 8592642178602574354, 14628161122473222315, 8434445766209652354),
+UInt256(7923321111948418884, 6129116704825830039, 9061829366236752086, 5931371189334677538),
+UInt256(4952075694967761802, 13054069977370919582, 12581172381539051909, 17542165048616337174),
+UInt256(6190094618709702253, 7094215434858873670, 6503093440069039079, 8092648255488257755),
+UInt256(7737618273387127816, 13479455312000979991, 17352238836941074657, 5504124300932934289),
+UInt256(4836011420866954885, 8424659570000612494, 17762678300729253516, 14969292734151553691),
+UInt256(6045014276083693606, 15142510480928153522, 12979975839056791088, 264871843979890498),
+UInt256(7556267845104617008, 9704766064305416095, 7001597761966213052, 331089804974863122),
+UInt256(4722667403190385630, 6065478790190885059, 11293527628869965013, 9430303164964065259),
+UInt256(5903334253987982037, 16805220524593382132, 9505223517660068362, 16399564974632469478),
+UInt256(7379167817484977547, 7171467600459563953, 11881529397075085453, 11276084181435811040),
+UInt256(4611979885928110967, 2176324241073533519, 508426845530846552, 9353395622611075852),
+UInt256(5764974857410138708, 16555463356624080610, 14470591612195721902, 11691744528263844815),
+UInt256(7206218571762673386, 2247585122070549147, 8864867478389876570, 5391308623475030210),
+UInt256(9007773214703341732, 12032853439442962242, 6469398329559957808, 15962507816198563571),
+UInt256(5629858259189588582, 16743905436506627209, 8655059974402361534, 9976567385124102232),
+UInt256(7037322823986985728, 11706509758778508203, 15430510986430339822, 3247337194550351982),
+UInt256(8796653529983732160, 14633137198473135254, 14676452714610536873, 13282543530042715785),
+UInt256(5497908456239832600, 9145710749045709534, 4561096928204197642, 1384060678635615510),
+UInt256(6872385570299790750, 11432138436307136917, 14924743197110022860, 10953447885149295195),
+UInt256(8590481962874738438, 5066801008529145339, 4820870941105364863, 13691809856436618994),
+UInt256(5369051226796711523, 17001808685612879549, 707201328977159087, 15474910187913968727),
+]
+
+private let bid_multipliers1_binary80_180: [UInt256] = [
+UInt256(6711314033495889404, 16640574838588711532, 5495687679648836763, 14731951716465073005),
+UInt256(8389142541869861756, 2353974474526337799, 6869609599561045954, 13803253627153953352),
+UInt256(5243214088668663597, 10694606083433736932, 11211035027366735577, 13238719535398608749),
+UInt256(6554017610835829496, 17979943622719559069, 14013793784208419472, 2713341363966097225),
+UInt256(8192522013544786871, 4028185454689897221, 3682184174978360628, 3391676704957621531),
+UInt256(5120326258465491794, 9435144936822267619, 4607208118575169344, 11343169977453289265),
+UInt256(6400407823081864743, 2570559134173058716, 1147324129791573776, 14178962471816611581),
+UInt256(8000509778852330928, 17048256972998487107, 1434155162239467220, 17723703089770764476),
+UInt256(5000318611782706830, 10655160608124054441, 17037248040895524677, 1853942394251951990),
+UInt256(6250398264728383538, 4095578723300292244, 7461501995837242134, 6929114011242327891),
+UInt256(7812997830910479422, 14342845440980141113, 9326877494796552667, 17884764550907685672),
+UInt256(4883123644319049639, 4352592382185200291, 17358513480316315177, 8872134835103609593),
+UInt256(6103904555398812049, 829054459304112460, 17086455831968006067, 15701854562306899895),
+UInt256(7629880694248515061, 5648004092557528480, 2911325716250455968, 15015632184456236965),
+UInt256(4768675433905321913, 5835845567062149252, 1819578572656534980, 9384770115285148103),
+UInt256(5960844292381652391, 11906492977255074469, 2274473215820668725, 11730962644106435129),
+UInt256(7451055365477065489, 10271430203141455182, 7454777538203223811, 828645249850880199),
+UInt256(4656909603423165930, 17948858923031879249, 47549942949626977, 16658804345652657788),
+UInt256(5821137004278957413, 13212701616935073253, 4671123447114421626, 6988447376783658523),
+UInt256(7276421255348696767, 2680818965886677854, 10450590327320414936, 17958931257834348962),
+UInt256(9095526569185870958, 17186081762640511030, 3839865872295742863, 4001919998583384587),
+UInt256(5684704105741169349, 6129615083222931489, 16234974225467003001, 9418729026755697223),
+UInt256(7105880132176461686, 12273704872456052266, 6458659726551590039, 16385097301872009432),
+UInt256(8882350165220577108, 6118759053715289524, 17296696695044263357, 15869685608912623886),
+UInt256(5551468853262860692, 13047596445426831761, 1587063397547888790, 12224396514784083881),
+UInt256(6939336066578575865, 16309495556783539701, 6595515265362248892, 6057123606625329043),
+UInt256(8674170083223219832, 6551811390697260914, 12856080100130199019, 7571404508281661304),
+UInt256(5421356302014512395, 4094882119185788071, 12646736081008762291, 2426284808462344363),
+UInt256(6776695377518140494, 506916630554847185, 11196734082833564959, 16867914065860094166),
+UInt256(8470869221897675617, 9857017825048334790, 160859548259792487, 16473206563897729803),
+UInt256(5294293263686047260, 17689851186723679003, 13935595272944534016, 17213283130077162983),
+UInt256(6617866579607559076, 3665569909695047138, 12807808072753279617, 3069859838886902113),
+UInt256(8272333224509448845, 4581962387118808923, 6786388054086823713, 8449010817036015545),
+UInt256(5170208265318405528, 5169569501162949529, 1935649524590570868, 16809846806715979476),
+UInt256(6462760331648006910, 6461961876453686911, 7031247924165601490, 2565564434685422729),
+UInt256(8078450414560008637, 17300824382421884447, 4177373886779613958, 12430327580211554219),
+UInt256(5049031509100005398, 13118858248227371731, 9528387706878340580, 3157268719204833483),
+UInt256(6311289386375006748, 7175200773429438856, 7298798615170537821, 3946585899006041853),
+UInt256(7889111732968758435, 8969000966786798570, 9123498268963172276, 9544918392184940221),
+UInt256(4930694833105474022, 3299782595028055154, 10313872436529370576, 15188946031970363446),
+UInt256(6163368541381842527, 13348100280639844751, 3668968508806937413, 539438466253402691),
+UInt256(7704210676727303159, 12073439332372418034, 18421268691290835478, 5285984101244141268),
+UInt256(4815131672954564474, 14463428610373843127, 16124978950484160077, 17138798118559752005),
+UInt256(6018914591193205593, 8855913726112528101, 15544537669677812193, 7588439592917526294),
+UInt256(7523643238991506991, 15681578176068048031, 5595614031815101529, 14097235509574295771),
+UInt256(4702277024369691869, 16718515387683611875, 10414787797525520312, 1893243165842853001),
+UInt256(5877846280462114837, 7063086179322351132, 8406798728479512486, 2366553957303566251),
+UInt256(7347307850577643546, 13440543742580326819, 10508498410599390607, 12181564483484233622),
+UInt256(9184134813222054433, 7577307641370632716, 8523936994821850355, 10615269585927904124),
+UInt256(5740084258263784020, 16265032321925115207, 14550832658618432280, 4328700481991246125),
+]
+
+private let bid_multipliers1_binary80_181: [UInt256] = [
+UInt256(7175105322829730026, 1884546328696842393, 13576854804845652446, 5410875602489057657),
+UInt256(8968881653537162532, 11579054947725828800, 3136010450774901845, 15986966539966097879),
+UInt256(5605551033460726582, 16460281379183418808, 1960006531734313653, 12297697096692505126),
+UInt256(7006938791825908228, 11351979687124497702, 2450008164667892067, 1537063315583467696),
+UInt256(8758673489782385285, 14189974608905622127, 12285882242689640891, 15756387199761498332),
+UInt256(5474170931113990803, 11174577139779707781, 14596205429322107413, 7541898990637242505),
+UInt256(6842713663892488504, 9356535406297246823, 4410198731370470554, 14039059756723941036),
+UInt256(8553392079865610630, 11695669257871558529, 901062395785700289, 8325452659050150487),
+UInt256(5345870049916006644, 2698107267742336176, 12092379043434532440, 16732622957974813814),
+UInt256(6682337562395008305, 3372634084677920220, 15115473804293165551, 2469034623758965652),
+UInt256(8352921952993760381, 8827478624274788180, 447598181656905322, 16921351334980870776),
+UInt256(5220576220621100238, 7823017149385436564, 9503120900390341634, 15187530602790432139),
+UInt256(6525720275776375298, 555399399877019897, 11878901125487927043, 9761041216633264366),
+UInt256(8157150344720469122, 9917621286701050680, 1013568351577745092, 7589615502364192554),
+UInt256(5098218965450293201, 10810199322615544579, 633480219736090682, 13966881725832396154),
+UInt256(6372773706812866501, 18124435171696818627, 14626908329952277065, 8235230120435719385),
+UInt256(7965967133516083127, 8820485909338859572, 13671949394012958427, 14905723668972037135),
+UInt256(4978729458447551954, 12430332720977869088, 17768340408112874825, 7010234283893829257),
+UInt256(6223411823059439943, 6314543864367560553, 3763681436431541915, 13374478873294674476),
+UInt256(7779264778824299929, 3281493812032062787, 9316287813966815298, 12106412573190955190),
+UInt256(4862040486765187455, 13580148678588509002, 3516836874515565609, 12178193876671734898),
+UInt256(6077550608456484319, 12363499829808248348, 13619418129999232820, 1387684290557504911),
+UInt256(7596938260570605399, 10842688768832922531, 17024272662499041025, 1734605363196881138),
+UInt256(4748086412856628374, 13694209508161658438, 8334327404848206688, 12613343398066520472),
+UInt256(5935108016070785468, 7894389848347297240, 1194537219205482552, 15766679247583150589),
+UInt256(7418885020088481835, 9867987310434121550, 1493171524006853191, 1261604985769386620),
+UInt256(4636803137555301147, 3861649059807632016, 14768290257786446956, 7706032143746948494),
+UInt256(5796003921944126434, 215375306332152117, 13618748523507079, 9632540179683685617),
+UInt256(7245004902430158042, 9492591169769965954, 4628709454081771753, 7428989206177219118),
+UInt256(9056256128037697553, 2642366925357681634, 15009258854456990499, 13897922526148911801),
+UInt256(5660160080023560970, 13180694374417020781, 13992472802463006966, 6380358569629375924),
+UInt256(7075200100029451213, 7252495931166500169, 3655532947796594995, 17198820248891495712),
+UInt256(8844000125036814016, 13677305932385513115, 9181102203173131648, 16886839292686981736),
+UInt256(5527500078148008760, 8548316207740945697, 3432345867769513328, 10554274557929363585),
+UInt256(6909375097685010950, 10685395259676182121, 8902118353139279564, 13192843197411704482),
+UInt256(8636718872106263688, 4133372037740451843, 15739333959851487359, 16491053996764630602),
+UInt256(5397949295066414805, 2583357523587782402, 7531240715693485647, 17224437775618975982),
+UInt256(6747436618833018506, 7840882922912115907, 190678857762081251, 16918861201096332074),
+UInt256(8434295773541273133, 577731616785369075, 14073406627484765276, 16536890482943027188),
+UInt256(5271434858463295708, 2666925269704549624, 6490036132964284346, 1112184514984616185),
+UInt256(6589293573079119635, 3333656587130687030, 8112545166205355432, 10613602680585546039),
+UInt256(8236616966348899543, 18002128789195522500, 917309420901918482, 13267003350731932549),
+UInt256(5147885603968062214, 18168859520888283418, 9796690424918474859, 12903563112634845747),
+UInt256(6434857004960077768, 13487702364255578465, 3022490994293317766, 11517767872366169280),
+UInt256(8043571256200097210, 16859627955319473081, 8389799761294035112, 5173837803602935792),
+UInt256(5027232035125060756, 15148953490502058579, 16772839896877241705, 3233648627251834870),
+UInt256(6284040043906325946, 489447789418021608, 16354363852669164227, 8653746802492181491),
+UInt256(7855050054882907432, 9835181773627302819, 1996210742126903668, 6205497484687838960),
+UInt256(4909406284301817145, 6146988608517064261, 17388532778325172456, 13101807964784675158),
+UInt256(6136757855377271431, 12295421779073718231, 7900607917624301858, 16377259955980843948),
+]
+
+private let bid_multipliers1_binary80_182: [UInt256] = [
+UInt256(7670947319221589289, 10757591205414759885, 5264073878602989419, 11248202908121279126),
+UInt256(4794342074513493305, 18252709549452694688, 5595889183340562339, 4724283808362105502),
+UInt256(5992927593141866632, 8980828881533704648, 6994861479175702924, 1293668742025243974),
+UInt256(7491159491427333290, 11226036101917130810, 8743576848969628655, 1617085927531554967),
+UInt256(4681974682142083306, 11627958582125594660, 10076421549033405813, 7928207732348303710),
+UInt256(5852468352677604133, 5311576190802217517, 12595526936291757266, 14521945683862767542),
+UInt256(7315585440847005166, 11251156256930159801, 1909350615082532871, 8929060067973683619),
+UInt256(9144481801058756458, 4840573284307923943, 6998374287280553993, 6549639066539716620),
+UInt256(5715301125661722786, 7637044321119840368, 11291512957191428101, 15622739462655792648),
+UInt256(7144126407077153483, 322933364545024652, 14114391196489285127, 5693366273037577097),
+UInt256(8930158008846441853, 14238724760963444527, 17642988995611606409, 2505021822869583468),
+UInt256(5581348755529026158, 11205045984815846781, 17944397149898335861, 13094853685361959428),
+UInt256(6976685944411282698, 4782935444165032669, 8595438382090756115, 2533509051420285572),
+UInt256(8720857430514103372, 15202041342061066644, 15355983996040833047, 17001944369557520677),
+UInt256(5450535894071314608, 277903801933390845, 374117960670744846, 17543744258614532279),
+UInt256(6813169867589143260, 347379752416738556, 5079333469265818962, 12706308286413389541),
+UInt256(8516462334486429075, 434224690520923195, 6349166836582273703, 6659513321161961118),
+UInt256(5322788959054018171, 16412291496071434661, 1662386263650227112, 11079724853367307555),
+UInt256(6653486198817522714, 15903678351661905422, 6689668847990171794, 13849656066709134444),
+UInt256(8316857748521903393, 10656225902722605969, 17585458096842490551, 8088698046531642247),
+UInt256(5198036092826189620, 18189356235270098491, 4073382282885474738, 11972965306723358260),
+UInt256(6497545116032737026, 4289951220378071498, 480041835179455519, 5742834596549422017),
+UInt256(8121931395040921282, 14585811062327365180, 9823424330829095207, 2566857227259389617),
+UInt256(5076207121900575801, 13727817932381991141, 15363012243622960312, 8521814794678200367),
+UInt256(6345258902375719752, 3324714360195325215, 5368707249246536678, 10652268493347750459),
+UInt256(7931573627969649690, 4155892950244156519, 2099198043130782944, 4091963579829912265),
+UInt256(4957233517481031056, 7209119112329985728, 8229527804597821196, 2557477237393695166),
+UInt256(6196541896851288820, 9011398890412482160, 10286909755747276495, 3196846546742118957),
+UInt256(7745677371064111025, 11264248613015602700, 12858637194684095618, 17831116238709812409),
+UInt256(4841048356915069391, 122626355493669831, 17260020283532335569, 15756133667621020660),
+UInt256(6051310446143836738, 13988340999649251001, 16963339335988031558, 5860109029244112112),
+UInt256(7564138057679795923, 8262054212706787944, 7369116114702875735, 16548508323409915948),
+UInt256(4727586286049872452, 2857940873728048513, 4605697571689297334, 17260346729772279324),
+UInt256(5909482857562340565, 3572426092160060641, 10368807983039009572, 12352061375360573347),
+UInt256(7386853571952925706, 9077218633627463705, 17572695997226149869, 15440076719200716683),
+UInt256(4616783482470578566, 10284947664444552720, 4065405970625261812, 11955890958714141879),
+UInt256(5770979353088223208, 3632812543700915092, 5081757463281577265, 14944863698392677349),
+UInt256(7213724191360279010, 4541015679626143865, 6352196829101971582, 4846021567708682974),
+UInt256(9017155239200348762, 14899641636387455639, 12551932054804852381, 15280898996490629525),
+UInt256(5635722024500217976, 13923962041169547678, 14762486561894114594, 11856404882020337406),
+UInt256(7044652530625272470, 17404952551461934598, 9229736165512867435, 5597134065670645949),
+UInt256(8805815663281590588, 12532818652472642440, 2313798170036308486, 2384731563660919532),
+UInt256(5503634789550994117, 17056383694650177333, 1446123856272692803, 15325515282570238420),
+UInt256(6879543486938742647, 7485421563030557954, 6419340838768253908, 14545208084785410120),
+UInt256(8599429358673428309, 4745090935360809538, 17247548085315093193, 18181510105981762650),
+UInt256(5374643349170892693, 5271524843814199913, 15391403571749321150, 4445914788597519801),
+UInt256(6718304186463615866, 11201092073195137796, 5404196409404487725, 14780765522601675559),
+UInt256(8397880233079519833, 4777993054639146437, 6755245511755609657, 4640898847969930736),
+UInt256(5248675145674699895, 14515460705217936283, 6527871454060949987, 14429776826049676470),
+UInt256(6560843932093374869, 13532639863095032450, 3548153299148799580, 13425535014134707684),
+]
+
+private let bid_multipliers1_binary80_183: [UInt256] = [
+UInt256(8201054915116718587, 3080741773586626850, 13658563660790775283, 16781918767668384605),
+UInt256(5125659321947949116, 18066364672987499445, 13148288306421622456, 8182856220579046426),
+UInt256(6407074152434936396, 4136211767524822691, 2600302327744864358, 10228570275723808033),
+UInt256(8008842690543670495, 5170264709406028363, 17085435964963244160, 3562340807799984233),
+UInt256(5005526681589794059, 10148944471019849583, 8372554468888333648, 2226463004874990146),
+UInt256(6256908351987242574, 8074494570347424075, 5854007067683029156, 2783078756093737682),
+UInt256(7821135439984053218, 869746176079504286, 2705822816176398541, 3478848445117172102),
+UInt256(4888209649990033261, 5155277378477078082, 15526197315392412800, 4480123287411926516),
+UInt256(6110262062487541576, 11055782741523735507, 10184374607385740192, 5600154109264908145),
+UInt256(7637827578109426970, 13819728426904669384, 8118782240804787336, 7000192636581135181),
+UInt256(4773642236318391856, 13249016285242806269, 5074238900502992085, 4375120397863209488),
+UInt256(5967052795397989820, 16561270356553507836, 10954484644056128010, 10080586515756399764),
+UInt256(7458815994247487276, 2254843871982333179, 13693105805070160013, 3377361107840723897),
+UInt256(4661759996404679547, 10632649456843734045, 6252348118955156056, 4416693701614146388),
+UInt256(5827199995505849434, 8679125802627279652, 12427121167121332974, 5520867127017682985),
+UInt256(7283999994382311793, 1625535216429323757, 15533901458901666217, 16124455945626879539),
+UInt256(9104999992977889741, 6643605038964042601, 5582318768344919060, 6320511876751435711),
+UInt256(5690624995611181088, 6458096158566220577, 15018164276284044172, 13173691959824423128),
+UInt256(7113281244513976360, 8072620198207775722, 4937647290072891503, 16467114949780528910),
+UInt256(8891601555642470450, 10090775247759719652, 15395431149445890187, 15972207668798273233),
+UInt256(5557250972276544031, 10918420548277212687, 398772431548905559, 7676786783785226819),
+UInt256(6946563715345680039, 9036339666919127954, 14333523594718295661, 4984297461304145619),
+UInt256(8683204644182100049, 6683738565221522039, 8693532456543093768, 10842057845057569928),
+UInt256(5427002902613812530, 15706551649331921034, 12350986812980515461, 6776286153160981205),
+UInt256(6783753628267265663, 10409817524810125485, 6215361479370868518, 13082043709878614410),
+UInt256(8479692035334082079, 8400585887585268952, 12380887867640973552, 7129182600493492205),
+UInt256(5299807522083801299, 12167895207381874951, 7738054917275608470, 4455739125308432628),
+UInt256(6624759402604751624, 10598182990799955785, 5060882628167122683, 14793045943490316593),
+UInt256(8280949253255939530, 13247728738499944731, 10937789303636291258, 13879621410935507837),
+UInt256(5175593283284962206, 12891516479989853361, 4530275305558988084, 13286449400262080303),
+UInt256(6469491604106202758, 6891023563132540893, 10274530150376123009, 16608061750327600378),
+UInt256(8086864505132753447, 17837151490770451924, 17454848706397541666, 6925019132627336760),
+UInt256(5054290315707970904, 18065748709372614309, 1685908404643687733, 8939822976319473379),
+UInt256(6317862894634963631, 4135441813006216270, 6719071524231997570, 15786464738826729628),
+UInt256(7897328618293704539, 557616247830382433, 17622211442144772771, 10509708886678636227),
+UInt256(4935830386433565336, 16489411219389846685, 4096353123699401126, 4262725044960453690),
+UInt256(6169787983041956671, 2165019950527756740, 9732127423051639311, 14551778343055342921),
+UInt256(7712234978802445838, 16541332993441859637, 12165159278814549139, 13578036910391790747),
+UInt256(4820146861751528649, 5726647102473774369, 9909067558472787164, 6180430059781175265),
+UInt256(6025183577189410811, 11769994896519605865, 16998020466518371859, 7725537574726469081),
+UInt256(7531479471486763514, 10100807602222119428, 7412467527865801112, 5045235949980698447),
+UInt256(4707174669679227196, 10924690769816212546, 13856164241770901503, 3153272468737936530),
+UInt256(5883968337099033995, 13655863462270265683, 8096833265358851070, 17776648641204584374),
+UInt256(7354960421373792494, 12458143309410444200, 5509355563271175934, 12997438764650954659),
+UInt256(9193700526717240618, 6349307099908279442, 6886694454088969918, 7023426418958917516),
+UInt256(5746062829198275386, 8580002955870062555, 8915870052232994102, 18224699567131487160),
+UInt256(7182578536497844233, 1501631657982802386, 6533151546863854724, 13557502422059583141),
+UInt256(8978223170622305291, 6488725590905890886, 17389811470434594213, 16946878027574478926),
+UInt256(5611389481638940807, 1749610485102487852, 6256946150594233479, 12897641776447743281),
+UInt256(7014236852048676008, 16022071161660273527, 7821182688242791849, 11510366202132291197),
+]
+
+private let bid_multipliers1_binary80_184: [UInt256] = [
+UInt256(8767796065060845011, 1580844878365790293, 5164792341876101908, 552899697383200285),
+UInt256(5479872540663028131, 17128929113474476597, 5533838222886257644, 9568934347719275986),
+UInt256(6849840675828785164, 16799475373415707842, 11528983797035209959, 11961167934649094982),
+UInt256(8562300844785981456, 2552600143060083187, 5187857709439236641, 10339773899883980824),
+UInt256(5351438027991238410, 1595375089412551992, 936568059185828948, 17991573733495957775),
+UInt256(6689297534989048012, 11217590898620465798, 1170710073982286186, 4042723093160395603),
+UInt256(8361621918736310015, 14021988623275582247, 10686759629332633540, 14276775903305270311),
+UInt256(5226013699210193759, 15681271917188320760, 13596753795973977818, 18146356976420569753),
+UInt256(6532517124012742199, 14989903878058013046, 16995942244967472273, 13459574183670936383),
+UInt256(8165646405015927749, 14125693829145128404, 12021555769354564534, 2989409674306506767),
+UInt256(5103529003134954843, 11134401652429399204, 16736844392701378641, 15703439101723730441),
+UInt256(6379411253918693554, 9306316047109361102, 2474311417167171686, 5794240821872499339),
+UInt256(7974264067398366943, 2409523022031925569, 12316261308313740415, 16466173064195399982),
+UInt256(4983915042123979339, 8423480916411035337, 780134290055005903, 17208887192763206845),
+UInt256(6229893802654974174, 5917665127086406267, 5586853880996145283, 16899422972526620652),
+UInt256(7787367253318717717, 16620453445712783642, 2371881332817793700, 16512592697230887911),
+UInt256(4867104533324198573, 12693626412784183728, 6094111851438508967, 1096998398914529137),
+UInt256(6083880666655248217, 2031974960698065948, 7617639814298136208, 15206306053925325133),
+UInt256(7604850833319060271, 7151654719299970339, 9522049767872670261, 561138493697104800),
+UInt256(4753031770824412669, 11387313227203563318, 3645438095706724961, 2656554567774384452),
+UInt256(5941289713530515837, 399083478722290435, 13780169656488182009, 7932379228145368469),
+UInt256(7426612141913144796, 5110540366830250948, 12613526052182839607, 14527160053609098490),
+UInt256(4641632588695715497, 12417459766123682650, 17106825819469050562, 15997004061146768412),
+UInt256(5802040735869644372, 1686766652372439601, 12160160237481537395, 10772883039578684707),
+UInt256(7252550919837055465, 2108458315465549502, 1365142241569758032, 8854417781045967980),
+UInt256(9065688649796319331, 7247258912759324781, 10929799838816973348, 11068022226307459975),
+UInt256(5666055406122699582, 2223693811260884036, 9136967908474302294, 16140885928296938293),
+UInt256(7082569257653374477, 12002989300930880853, 11421209885592877868, 10952735373516397058),
+UInt256(8853211572066718097, 1168678570881437355, 441454301708933623, 13690919216895496322),
+UInt256(5533257232541698810, 12259639152869368106, 16416810003063941178, 15474353538200767057),
+UInt256(6916571540677123513, 6101176904231934325, 11297640466975150665, 10119569885896183014),
+UInt256(8645714425846404391, 12238157148717305811, 286992528436774619, 17261148375797616671),
+UInt256(5403571516154002744, 14566377245589397987, 16320271394768841801, 8482374725659816467),
+UInt256(6754464395192503430, 18207971556986747484, 15788653225033664347, 15214654425502158488),
+UInt256(8443080493990629288, 13536592409378658548, 1289072457582528818, 14406632013450310206),
+UInt256(5276925308744143305, 8460370255861661592, 10029042322843856319, 13615831026833831783),
+UInt256(6596156635930179131, 15187148838254464894, 12536302903554820399, 12408102765114901825),
+UInt256(8245195794912723914, 14372250029390693214, 6447006592588749691, 10898442437966239377),
+UInt256(5153247371820452446, 13594342286796571162, 17864437175650132269, 4505683514515205659),
+UInt256(6441559214775565558, 7769555821640938145, 13107174432707889528, 10243790411571394977),
+UInt256(8051949018469456948, 488572740196396874, 2548909985602698198, 12804738014464243721),
+UInt256(5032468136543410592, 9528729999477523854, 6204754759429074278, 3391275240612764422),
+UInt256(6290585170679263240, 11910912499346904817, 16979315486141118655, 13462466087620731335),
+UInt256(7863231463349079050, 14888640624183631022, 7389086302394234607, 12216396591098526265),
+UInt256(4914519664593174406, 13917086408542157293, 6492920569008725, 14552776897077660772),
+UInt256(6143149580741468008, 8172985973822920808, 4619802169138648811, 4355913066064912253),
+UInt256(7678936975926835010, 10216232467278651010, 5774752711423311014, 833205314153752412),
+UInt256(4799335609954271881, 10996831310476544785, 8220906463066957287, 14355811376628258970),
+UInt256(5999169512442839851, 18357725156523068885, 14887819097261084513, 13333078202357935808),
+UInt256(7498961890553549814, 18335470427226448203, 4774715816294191930, 2831289697665256048),
+]
+
+private let bid_multipliers1_binary80_185: [UInt256] = [
+UInt256(4686851181595968634, 6847982998589142223, 678354375970176004, 6381242079468172934),
+UInt256(5858563976994960792, 17783350785091203586, 14683001025244883717, 7976552599335216167),
+UInt256(7323204971243700991, 3782444407654452867, 9130379244701328838, 14582376767596408113),
+UInt256(9154006214054626239, 116369491140678180, 6801288037449273144, 9004598922640734333),
+UInt256(5721253883784141399, 6990259959604005718, 13474177060260571523, 5627874326650458958),
+UInt256(7151567354730176749, 4126138931077619244, 7619349288470938596, 2423156889885685794),
+UInt256(8939459193412720936, 9769359682274411959, 9524186610588673245, 3028946112357107242),
+UInt256(5587161995882950585, 6105849801421507474, 12870145659259002634, 4198934329436885979),
+UInt256(6983952494853688231, 12243998270204272247, 6864310037218977484, 14472039948650883281),
+UInt256(8729940618567110289, 10693311819327952405, 3968701528096333951, 18090049935813604101),
+UInt256(5456212886604443930, 18212534933148440013, 4786281464273902671, 18223810237524584419),
+UInt256(6820266108255554913, 13542296629580774208, 10594537848769766243, 18168076778478342620),
+UInt256(8525332635319443642, 3092812731693804048, 13243172310962207804, 18098409954670540371),
+UInt256(5328332897074652276, 6544693975736015434, 8276982694351379878, 2088134184814311924),
+UInt256(6660416121343315345, 8180867469670019293, 1122856331084449039, 11833539767872665713),
+UInt256(8325520151679144181, 14837770355514912020, 6015256432282949203, 10180238691413444237),
+UInt256(5203450094799465113, 11579449481410513964, 12982907307031619060, 4056806172919708696),
+UInt256(6504312618499331392, 639253796480978743, 16228634133789523825, 5071007716149635870),
+UInt256(8130390773124164240, 799067245601223429, 15674106648809516877, 10950445663614432742),
+UInt256(5081494233202602650, 499417028500764643, 12102159664719642000, 9149871548972714416),
+UInt256(6351867791503253312, 9847643322480731612, 10516013562472164596, 11437339436215893020),
+UInt256(7939834739379066640, 12309554153100914515, 13145016953090205745, 14296674295269866275),
+UInt256(4962396712111916650, 7693471345688071572, 5909792586467684639, 2017892406902584566),
+UInt256(6202995890139895813, 393467145255313657, 7387240733084605798, 16357423563910394419),
+UInt256(7753744862674869766, 5103519949996529975, 13845736934783145152, 11223407418033217216),
+UInt256(4846090539171793603, 17024758024029994946, 15571114611880547576, 7014629636270760760),
+UInt256(6057613173964742004, 16669261511610105779, 10240521227995908662, 8768287045338450950),
+UInt256(7572016467455927506, 2389832815803080608, 8188965516567497924, 1736986769818287879),
+UInt256(4732510292159954691, 6105331528304313284, 5118103447854686202, 10308988767991205733),
+UInt256(5915637865199943364, 3019978391953003701, 6397629309818357753, 3662863923134231358),
+UInt256(7394547331499929205, 3774972989941254626, 12608722655700335095, 9190265922345177101),
+UInt256(4621592082187455753, 4665201127926978093, 12492137678240097338, 12661445229106817544),
+UInt256(5776990102734319691, 10443187428336110521, 1780114042517957961, 6603434499528746122),
+UInt256(7221237628417899614, 8442298266992750247, 6836828571574835355, 12865979142838320557),
+UInt256(9026547035522374518, 1329500796886162001, 3934349696041156290, 11470787910120512792),
+UInt256(5641591897201484073, 14665996053336014962, 13988183606094192441, 11780928462252708399),
+UInt256(7051989871501855092, 4497437011387854991, 8261857470762964744, 891102522533721787),
+UInt256(8814987339377318865, 5621796264234818739, 5715635820026318026, 1113878153167152233),
+UInt256(5509367087110824290, 15042837711215231472, 1266429378302754814, 5307859864156858050),
+UInt256(6886708858888530363, 9580175102164263532, 1583036722878443517, 15858196867050848370),
+UInt256(8608386073610662954, 7363532859277941511, 1978795903598054397, 5987688028531396751),
+UInt256(5380241296006664346, 9213894055476101348, 8154276467389865854, 6048148027045816922),
+UInt256(6725301620008330433, 2293995532490350877, 10192845584237332317, 16783557070662046960),
+UInt256(8406627025010413041, 7479180434040326500, 17352742998724053301, 7144388283045394988),
+UInt256(5254141890631508150, 16203702817343673823, 1622092337347757505, 6771085686117065819),
+UInt256(6567677363289385188, 11031256484824816470, 15862673476966860593, 13075543126073720178),
+UInt256(8209596704111731485, 13789070606031020588, 10604969809353799934, 2509370852309986511),
+UInt256(5130997940069832178, 10924012137983081819, 15851478167700900766, 15403414837975905281),
+UInt256(6413747425087290223, 4431643135624076466, 15202661691198738054, 10030896510615105793),
+UInt256(8017184281359112779, 927867901102707679, 9779955077143646760, 3315248601414106434),
+]
+
+private let bid_multipliers1_binary80_186: [UInt256] = [
+UInt256(5010740175849445486, 16720818502685049963, 13030000950855861081, 2072030375883816521),
+UInt256(6263425219811806858, 11677651091501536646, 11675815170142438447, 7201723988282158555),
+UInt256(7829281524764758573, 5373691827522145000, 5371396925823272251, 4390468966925310290),
+UInt256(4893300952977974108, 5664400401415034577, 3357123078639545157, 438200095114624980),
+UInt256(6116626191222467635, 7080500501768793221, 8808089866726819350, 5159436137320669128),
+UInt256(7645782739028084544, 4238939608783603622, 15621798351835912091, 15672667208505612218),
+UInt256(4778614211892552840, 2649337255489752264, 5151937951470057153, 7489573996102313685),
+UInt256(5973267764865691050, 3311671569362190330, 6439922439337571441, 13973653513555280010),
+UInt256(7466584706082113812, 13362961498557513720, 17273275086026740110, 3632008836661936300),
+UInt256(4666615441301321132, 17575222973453221883, 10795796928766712568, 16105063578195873900),
+UInt256(5833269301626651416, 3522284643106975738, 8883060142531002807, 1684585399035290758),
+UInt256(7291586627033314270, 4402855803883719673, 1880453141308977700, 15940789804076277160),
+UInt256(9114483283791642837, 14726941791709425399, 6962252445063610030, 1479243181385794834),
+UInt256(5696552052369776773, 11510181629032084826, 11268936805805838124, 14759585043648285483),
+UInt256(7120690065462220967, 552668981007942321, 4862798970402521848, 2737230850805238),
+UInt256(8900862581827776208, 14525894281542091613, 10690184731430540214, 3421538563506547),
+UInt256(5563039113642360130, 9078683925963807258, 8987208466357781585, 13837196516884355304),
+UInt256(6953798892052950163, 2124982870599983265, 2010638546092451174, 3461437590823280418),
+UInt256(8692248615066187703, 16491286643532142793, 7124984201042951871, 13550169025383876331),
+UInt256(5432655384416367314, 17224583179848671101, 15982330171720314679, 15386384668506004563),
+UInt256(6790819230520459143, 12307356937956063069, 6142854659368229637, 14621294817205117799),
+UInt256(8488524038150573929, 10772510154017690932, 12290254342637674951, 4441560466224233537),
+UInt256(5305327523844108705, 18262033892329526592, 16904781001003322652, 9693504319031227817),
+UInt256(6631659404805135882, 8992484310129744529, 2684232177544601699, 12116880398789034771),
+UInt256(8289574256006419853, 2017233350807404853, 7966976240358140028, 10534414480058905560),
+UInt256(5180983910004012408, 3566613853468321985, 7285203159437531469, 15807381086891591783),
+UInt256(6476229887505015510, 4458267316835402481, 13718189967724302241, 5924168303332326017),
+UInt256(8095287359381269387, 14796206182899028910, 3312679404373214089, 12016896397592795425),
+UInt256(5059554599613293367, 6941785855098199116, 15905482683015422518, 593031220854415285),
+UInt256(6324443249516616709, 4065546300445360992, 1435109280059726531, 9964661062922794914),
+UInt256(7905554061895770886, 9693618893984089144, 1793886600074658164, 7844140310226105738),
+UInt256(4940971288684856804, 1446825790312667811, 1121179125046661352, 14125959730746091894),
+UInt256(6176214110856071005, 1808532237890834763, 15236531961590490402, 17657449663432614868),
+UInt256(7720267638570088756, 6872351315790931358, 14433978933560725099, 12848440042435992777),
+UInt256(4825167274106305472, 13518591609224107907, 4409550815048065283, 5724432017308801534),
+UInt256(6031459092632881840, 16898239511530134884, 900252500382693700, 2543854003208614013),
+UInt256(7539323865791102301, 2676055315703116989, 1125315625478367125, 3179817504010767516),
+UInt256(4712077416119438938, 3978377581528142070, 3009165275137673405, 4293228949220423650),
+UInt256(5890096770149298672, 14196344013764953395, 12984828630776867564, 9978222204952917466),
+UInt256(7362620962686623340, 17745430017206191744, 11619349770043696551, 12472777756191146832),
+UInt256(9203276203358279176, 3735043447798188064, 14524187212554620689, 10979286176811545636),
+UInt256(5752047627098924485, 2334402154873867540, 9077617007846637930, 18391268906575685783),
+UInt256(7190059533873655606, 7529688712019722329, 11347021259808297413, 13765714096364831420),
+UInt256(8987574417342069508, 188738853169877104, 348718519478208055, 3372084565173875563),
+UInt256(5617234010838793442, 9341333820085948998, 217949074673880034, 9025081880874754083),
+UInt256(7021542513548491803, 2453295238252660439, 9495808380197125851, 2057980314238666796),
+UInt256(8776928141935614753, 16901677103097989261, 7258074456819019409, 16407533448080497207),
+UInt256(5485580088709759221, 3646019161795161432, 6842139544725581083, 3337179377409228899),
+UInt256(6856975110887199026, 9169209970671339694, 8552674430906976353, 18006532277043699835),
+UInt256(8571218888608998783, 2238140426484398810, 1467471001778944634, 8673107291022461082),
+]
+
+private let bid_multipliers1_binary80_187: [UInt256] = [
+UInt256(5357011805380624239, 8316366794193831112, 5528855394539228300, 10032378075316426080),
+UInt256(6696264756725780299, 5783772474314900986, 6911069243174035375, 12540472594145532600),
+UInt256(8370330945907225374, 2618029574466238328, 17862208590822320027, 11063904724254527846),
+UInt256(5231456841192015858, 15471326539323562667, 11163880369263950017, 4609097443445385952),
+UInt256(6539321051490019823, 10115786137299677526, 9343164443152549617, 10373057822734120344),
+UInt256(8174151314362524779, 8033046653197209004, 2455583517085911213, 17578008296845038334),
+UInt256(5108844571476577987, 2714811149034561675, 10758111735033470316, 13292098194741842911),
+UInt256(6386055714345722483, 17228571991575365806, 8835953650364449991, 16615122743427303638),
+UInt256(7982569642932153104, 16924028971041819354, 1821570026100786681, 16157217410856741644),
+UInt256(4989106026832595690, 10577518106901137096, 5750167284740379580, 3180731854144381672),
+UInt256(6236382533540744613, 3998525596771645562, 7187709105925474475, 3975914817680477089),
+UInt256(7795478166925930766, 9609843014391944856, 18208008419261618902, 358207503673208457),
+UInt256(4872173854328706729, 1394465865567577631, 11380005262038511813, 14058937745077918998),
+UInt256(6090217317910883411, 6354768350386859943, 9613320559120751863, 3738614126065235036),
+UInt256(7612771647388604264, 3331774419556187025, 7404964680473551925, 61581639154155890),
+UInt256(4757982279617877665, 2082359012222616890, 16157317971364439713, 2344331533685041384),
+UInt256(5947477849522347081, 7214634783705659017, 10973275427350773833, 7542100435533689633),
+UInt256(7434347311902933851, 13629979498059461675, 18328280302615855195, 14039311562844499946),
+UInt256(4646467069939333657, 6212894177073469595, 9149332179921215545, 6468726717564118514),
+UInt256(5808083837424167071, 12377803739769224898, 6824979206474131527, 12697594415382536047),
+UInt256(7260104796780208839, 10860568656284143218, 17754596044947440217, 11260307000800782154),
+UInt256(9075130995975261049, 8964024801927791119, 12969873019329524464, 240325695718813981),
+UInt256(5671956872484538155, 17131730547273339209, 15023699664722034646, 150203559824258738),
+UInt256(7089946090605672694, 16802977165664286108, 4944566525620379595, 9411126486635099230),
+UInt256(8862432613257090868, 11780349420225581827, 6180708157025474494, 7152222089866486134),
+UInt256(5539020383285681792, 16586090424495764450, 1557099588927227606, 18305196861448717546),
+UInt256(6923775479107102241, 2285868956910153946, 11169746523013810316, 13658124039956121124),
+UInt256(8654719348883877801, 7469022214565080337, 4738811116912487087, 17072655049945151405),
+UInt256(5409199593052423625, 16197353930171644970, 14490971994138774189, 17587938433856801484),
+UInt256(6761499491315529532, 6411634357432392501, 8890342955818691929, 8149864987038838143),
+UInt256(8451874364144411915, 8014542946790490626, 15724614713200752815, 14799017252225935583),
+UInt256(5282421477590257447, 2703246332530362689, 14439570214177858413, 16166914810282291596),
+UInt256(6603026846987821808, 17214115970945117074, 4214404712440159305, 6373585457570700782),
+UInt256(8253783558734777261, 3070900889971844726, 14491377927404974939, 12578667840390763882),
+UInt256(5158614724209235788, 4225156065446096906, 4445425186200721433, 5555824391030533474),
+UInt256(6448268405261544735, 5281445081807621132, 14780153519605677599, 11556466507215554747),
+UInt256(8060335506576930919, 1990120333832138512, 28447825797545383, 9833897115592055529),
+UInt256(5037709691610581824, 8161354236286168426, 17779891123465864, 13063714724886116562),
+UInt256(6297137114513227280, 10201692795357710532, 9245596900759108138, 16329643406107645702),
+UInt256(7871421393141534100, 12752115994197138165, 11556996125948885173, 11188682220779781320),
+UInt256(4919638370713458812, 17193444533227987161, 9528965587931747185, 9298769397201057277),
+UInt256(6149547963391823516, 3045061592825432335, 16522893003342071885, 16235147764928709500),
+UInt256(7686934954239779395, 3806326991031790419, 16041930235750201953, 6458876650878723163),
+UInt256(4804334346399862122, 73111360181175060, 7720363388130182268, 15566012952867671737),
+UInt256(6005417932999827652, 9314761237081244633, 9650454235162727836, 1010772117375038055),
+UInt256(7506772416249784565, 11643451546351555791, 16674753812380797699, 1263465146718797569),
+UInt256(4691732760156115353, 9583000225683416321, 17339250160379080417, 16930566781195106145),
+UInt256(5864665950195144191, 16590436300531658306, 7839004645191686810, 7328150421211718969),
+UInt256(7330832437743930239, 16126359357237184979, 575383769634832704, 18383560063369424519),
+UInt256(9163540547179912799, 15546263178119093319, 14554287767325704593, 4532706005502229033),
+]
+
+private let bid_multipliers1_binary80_188: [UInt256] = [
+UInt256(5727212841987445499, 16633943513965515180, 16013958882219647226, 14362156299507362906),
+UInt256(7159016052484306874, 16180743374029506072, 1570704529065007417, 8729323337529427824),
+UInt256(8948770065605383593, 11002557180682106782, 1963380661331259271, 15523340190339172684),
+UInt256(5592981291003364745, 18405813283994786498, 15062170968614200756, 16619616646603064784),
+UInt256(6991226613754205932, 9172208549711319411, 9604341673912975138, 2327776734544279363),
+UInt256(8739033267192757415, 11465260687139149264, 7393741073963831018, 12133092955035125012),
+UInt256(5461895791995473384, 14083316957103050146, 4621088171227394386, 12194869115324341037),
+UInt256(6827369739994341730, 17604146196378812682, 14999732250889018791, 6020214357300650488),
+UInt256(8534212174992927163, 12781810708618740045, 9526293276756497681, 2913581928198425206),
+UInt256(5333882609370579477, 5682788683673018576, 8259776307186505002, 13350203751192485514),
+UInt256(6667353261713224346, 11715171873018661124, 10324720383983131253, 7464382652135831084),
+UInt256(8334191577141530433, 5420592804418550597, 12905900479978914066, 13942164333597176759),
+UInt256(5208869735713456520, 14917085548830063883, 10372030809200515243, 13325538726925623378),
+UInt256(6511087169641820651, 199612862328028238, 8353352493073256150, 12045237390229641319),
+UInt256(8138858962052275813, 14084574133192199010, 1218318579486794380, 5833174700932275841),
+UInt256(5086786851282672383, 11108701842458818333, 5373135130606634391, 12869106224937448209),
+UInt256(6358483564103340479, 9274191284646135012, 11328104931685680893, 11474696762744422357),
+UInt256(7948104455129175599, 6981053087380280861, 14160131164607101117, 508312898148364234),
+UInt256(4967565284455734749, 11280687207253757394, 11155924987093132150, 2623538570556421598),
+UInt256(6209456605569668437, 265800953785033031, 4721534197011639379, 12502795250050302806),
+UInt256(7761820756962085546, 4943937210658679193, 1290231727837161320, 11016808044135490603),
+UInt256(4851137973101303466, 7701646775089062399, 12335609875966695585, 6885505027584681627),
+UInt256(6063922466376629333, 403686432006552191, 10807826326530981577, 13218567302908239938),
+UInt256(7579903082970786666, 5116294058435578143, 8898096889736339068, 2688151073353136210),
+UInt256(4737439426856741666, 7809369804949624243, 12478839583726293773, 10903466457700485939),
+UInt256(5921799283570927083, 538340219332254496, 10986863461230479312, 18241019090552995328),
+UInt256(7402249104463658853, 14507983329447481832, 13733579326538099141, 4354529789481692544),
+UInt256(4626405690289786783, 11373332590118370097, 8583487079086311963, 5027424127639751792),
+UInt256(5783007112862233479, 9604979719220574717, 15341044867285277858, 1672594141122301836),
+UInt256(7228758891077791849, 7394538630598330493, 5341248028824433610, 11314114713257653103),
+UInt256(9035948613847239811, 13854859306675301020, 11288246054457929917, 4919271354717290571),
+UInt256(5647467883654524882, 6353444057458369185, 16278525820890982006, 5380387605912000559),
+UInt256(7059334854568156102, 17165177108677737290, 6513099220831563795, 15948856544244776506),
+UInt256(8824168568210195128, 12233099348992395804, 17364746062894230552, 15324384661878582729),
+UInt256(5515105355131371955, 7645687093120247378, 1629594252454118287, 9577740413674114206),
+UInt256(6893881693914214944, 4945422847972921318, 11260364852422423667, 7360489498665254853),
+UInt256(8617352117392768680, 6181778559966151648, 4852084028673253776, 4588925854904180662),
+UInt256(5385845073370480425, 3863611599978844780, 3032552517920783610, 2868078659315112914),
+UInt256(6732306341713100531, 9441200518400943879, 3790690647400979512, 12808470360998666950),
+UInt256(8415382927141375664, 7189814629573791945, 126677290823836486, 16010587951248333688),
+UInt256(5259614329463359790, 4493634143483619965, 11608388352833367564, 5394931451102820651),
+UInt256(6574517911829199737, 14840414716209300765, 675427385759545743, 6743664313878525814),
+UInt256(8218147389786499672, 4715460339979462244, 5455970250626820083, 3817894373920769363),
+UInt256(5136342118616562295, 2947162712487163902, 12633353443496538360, 80340974486786900),
+UInt256(6420427648270702868, 17519011445891118590, 6568319767515897142, 100426218108483625),
+UInt256(8025534560338378586, 3452020233654346621, 17433771746249647235, 9348904809490380339),
+UInt256(5015959100211486616, 6769198664461354542, 13201950350619723474, 3537222496717793760),
+UInt256(6269948875264358270, 8461498330576693178, 7279065901419878534, 13644900157752018008),
+UInt256(7837436094080447838, 1353500876366090664, 18322204413629623976, 7832753160335246702),
+UInt256(4898397558800279898, 14680996103010970377, 11451377758518514985, 4895470725209529189),
+]
+
+private let bid_multipliers1_binary80_189: [UInt256] = [
+UInt256(6122996948500349873, 9127873091908937164, 479164142865980019, 10731024424939299390),
+UInt256(7653746185625437341, 16021527383313559359, 598955178582475024, 8802094512746736333),
+UInt256(4783591366015898338, 12319297623784668551, 7291876014255128746, 5501309070466710209),
+UInt256(5979489207519872923, 6175749992876059881, 4503158999391523028, 16100008374938163569),
+UInt256(7474361509399841154, 3108001472667686947, 10240634767666791690, 1678266394963152845),
+UInt256(4671475943374900721, 6554186938844692246, 4094553720578050854, 5660602515279358432),
+UInt256(5839344929218625901, 12804419691983253211, 14341564187577339375, 16299125180953973848),
+UInt256(7299181161523282377, 2170466559696902802, 13315269216044286315, 15762220457765079406),
+UInt256(9123976451904102971, 7324769218048516407, 7420714483200582086, 15091089553778961353),
+UInt256(5702485282440064357, 2272137752066628802, 11555475579641445660, 4820244952684462942),
+UInt256(7128106603050080446, 7451858208510673907, 5220972437697031267, 6025306190855578677),
+UInt256(8910133253812600558, 91450723783566576, 1914529528693901180, 2919946720142085442),
+UInt256(5568833283632875348, 13892214757646892822, 1196580955433688237, 11048338736943579210),
+UInt256(6961041604541094185, 17365268447058616027, 10719098231146886104, 18422109439606861916),
+UInt256(8701302005676367732, 7871527503541106322, 8787186770506219727, 4580892725799025779),
+UInt256(5438313753547729832, 14143076726567967259, 10103677749993775233, 9780586981265472968),
+UInt256(6797892191934662290, 17678845908209959074, 8017911169064831137, 16837419745009229114),
+UInt256(8497365239918327863, 12875185348407673035, 799016924476263114, 7211716625979372680),
+UInt256(5310853274948954914, 14964519870395877502, 16640286642293522110, 9119008909664495829),
+UInt256(6638566593686193643, 9482277801140071070, 11576986266012126830, 2175389100225843979),
+UInt256(8298208242107742054, 7241161232997700934, 5247860795660382729, 11942608412137080781),
+UInt256(5186380151317338783, 18360783825905726795, 17114971052569902918, 546601229944593632),
+UInt256(6482975189146673479, 18339293763954770590, 16782027797284990743, 9906623574285517848),
+UInt256(8103718986433341849, 18312431186516075334, 11754162709751462621, 7771593449429509406),
+UInt256(5064824366520838656, 4527740463931465228, 2734665675167276234, 7163088915107137331),
+UInt256(6331030458151048320, 5659675579914331535, 3418332093959095292, 18177233180738697472),
+UInt256(7913788072688810400, 7074594474892914418, 18107973172731032828, 4274797402213820224),
+UInt256(4946117545430506500, 4421621546808071511, 15929169251384283421, 11895120413238413448),
+UInt256(6182646931788133125, 5527026933510089389, 15299775545802966373, 1033842461265853098),
+UInt256(7728308664735166406, 11520469685314999641, 5289661376971544254, 5903989095009704276),
+UInt256(4830192915459479004, 2588607534894486871, 14835253406675684918, 17525051239663228885),
+UInt256(6037741144324348755, 3235759418618108589, 13932380739917218244, 12682942012724260298),
+UInt256(7547176430405435943, 17879757328554799449, 3580417869614359093, 15853677515905325372),
+UInt256(4716985269003397464, 18092377357987831511, 13766976214577444193, 12214391456654522310),
+UInt256(5896231586254246831, 4168727623775237773, 12597034249794417338, 1432931265535989175),
+UInt256(7370289482817808539, 599223511291659313, 1911234756960857960, 11014536118774762277),
+UInt256(9212861853522260673, 14584087444396737853, 7000729464628460354, 13768170148468452846),
+UInt256(5758038658451412921, 2197525625106879302, 6681298924606481673, 13216792361220170933),
+UInt256(7197548323064266151, 7358593049810987031, 17574995692612877900, 2685932396243049954),
+UInt256(8996935403830332689, 4586555293836345885, 17357058597338709471, 3357415495303812442),
+UInt256(5623084627393957930, 14395812104716185938, 13154004632550387371, 9015913712205964633),
+UInt256(7028855784242447413, 8771393094040456615, 7219133753833208406, 6658206121830067887),
+UInt256(8786069730303059266, 15575927385977958673, 4412231173864122603, 17546129689142360666),
+UInt256(5491293581439412041, 14346640634663612074, 14286859529733546387, 8660488046500281465),
+UInt256(6864116976799265052, 4098242738047351381, 8635202375312157176, 6213924039697963927),
+UInt256(8580146220999081315, 5122803422559189226, 15405688987567584374, 7767405049622454908),
+UInt256(5362591388124425822, 895909129885799314, 14240241635657128138, 242942137586646414),
+UInt256(6703239235155532277, 10343258449212024951, 8576930007716634364, 9527049708838083825),
+UInt256(8379049043944415346, 17540759079942419093, 6109476491218405051, 11908812136047604781),
+UInt256(5236905652465259591, 15574660443391399837, 6124265816225197109, 5137164575816059036),
+]
+
+private let bid_multipliers1_binary80_190: [UInt256] = [
+UInt256(6546132065581574489, 14856639535811861892, 12267018288708884290, 11033141738197461699),
+UInt256(8182665081976968112, 4735741364482663653, 15333772860886105363, 4568055135892051316),
+UInt256(5114165676235605070, 2959838352801664783, 11889451047267509804, 549191450718838121),
+UInt256(6392707095294506337, 12923169977856856787, 10250127790656999351, 686489313398547651),
+UInt256(7990883869118132922, 2318904417038907272, 8200973719893861284, 14693169697030348275),
+UInt256(4994302418198833076, 6061001279076704949, 5125608574933663302, 18406603097498743480),
+UInt256(6242878022748541345, 7576251598845881186, 11018696737094467032, 13784881835018653542),
+UInt256(7803597528435676681, 14082000516984739387, 4549998884513307982, 17231102293773316928),
+UInt256(4877248455272297926, 1883721295474380261, 537906293607123537, 6157752915180935176),
+UInt256(6096560569090372407, 11578023656197751134, 5284068885436292325, 12308877162403556874),
+UInt256(7620700711362965509, 9860843551819801013, 15828458143650141215, 1551038397722282380),
+UInt256(4762937944601853443, 8468870229101069585, 12198629348995032211, 7886928026217508344),
+UInt256(5953672430752316804, 5974401767948949078, 1413228630961626552, 5246974014344497526),
+UInt256(7442090538440396005, 7468002209936186347, 10989907825556808998, 6558717517930621907),
+UInt256(4651306586525247503, 6973344390423810419, 4562849381759311671, 17934256503988802404),
+UInt256(5814133233156559379, 4104994469602375120, 1091875708771751685, 17806134611558615101),
+UInt256(7267666541445699224, 519557068575580996, 1364844635964689607, 8422610209166105164),
+UInt256(9084583176807124030, 649446335719476245, 1706055794955862009, 5916576743030243551),
+UInt256(5677864485504452518, 14240962015106836365, 3372127881061107707, 15227075510462371979),
+UInt256(7097330606880565648, 8577830482028769648, 8826845869753772538, 14422158369650577070),
+UInt256(8871663258600707060, 10722288102535962060, 11033557337192215673, 8804325925208445530),
+UInt256(5544789536625441912, 15924802100939752095, 16119345372599910603, 17031918749323748216),
+UInt256(6930986920781802391, 1459258552465138503, 15537495697322500350, 16678212418227297366),
+UInt256(8663733650977252988, 15659131245863586841, 14810183603225737534, 11624393485929345900),
+UInt256(5414833531860783118, 563584991809965968, 2338835724375004103, 2653559910278453283),
+UInt256(6768541914825978897, 9927853276617233268, 2923544655468755128, 17152007943130230316),
+UInt256(8460677393532473621, 17021502614198929489, 3654430819335943911, 2993265855203236279),
+UInt256(5287923370957796013, 12944282143088024882, 13813234308153434704, 8788320187143104531),
+UInt256(6609904213697245017, 2345294623577867391, 8043170848337017572, 10985400233928880663),
+UInt256(8262380267121556271, 7543304297899722143, 5442277541993884061, 13731750292411100829),
+UInt256(5163987666950972669, 11632094213828408195, 10318952491387259394, 10888186941970631970),
+UInt256(6454984583688715837, 705059712003346532, 8287004595806686339, 4386861640608514155),
+UInt256(8068730729610894796, 5493010658431571069, 10358755744758357924, 871891032333254789),
+UInt256(5042956706006809247, 12656503698374507726, 8780065349687667654, 9768303932063060051),
+UInt256(6303695882508511559, 11208943604540746754, 1751709650254808760, 2987007878224049256),
+UInt256(7879619853135639449, 9399493487248545538, 11413009099673286758, 3733759847780061570),
+UInt256(4924762408209774655, 17403898475598810721, 11744816705723192127, 16168657960144702193),
+UInt256(6155953010262218319, 17143187076071125498, 845962826871826447, 15599136431753489838),
+UInt256(7694941262827772899, 16817297826661518968, 10280825570444558867, 14887234521264474393),
+UInt256(4809338289267358062, 8204968132449755403, 6425515981527849292, 6998678566576602544),
+UInt256(6011672861584197578, 1032838128707418446, 3420208958482423711, 8748348208220753180),
+UInt256(7514591076980246972, 10514419697739048865, 13498633234957805447, 6323749241848553570),
+UInt256(4696619423112654357, 15794884347941681349, 1519116744207546548, 10869872303796427838),
+UInt256(5870774278890817947, 5908547379644937974, 6510581948686821089, 13587340379745534797),
+UInt256(7338467848613522434, 2773998206128784563, 17361599472713302170, 3149117419399754784),
+UInt256(9173084810766903042, 12690869794515756512, 17090313322464239808, 13159768811104469288),
+UInt256(5733178006729314401, 12543479639999735724, 10681445826540149880, 8224855506940293305),
+UInt256(7166472508411643002, 1844291494717505943, 13351807283175187350, 10281069383675366631),
+UInt256(8958090635514553752, 11528736405251658237, 12078073085541596284, 3627964692739432481),
+UInt256(5598806647196596095, 7205460253282286398, 9854638687677191629, 11490849969816921109),
+]
+
+private let bid_multipliers1_binary80_191: [UInt256] = [
+UInt256(6998508308995745119, 4395139298175470094, 3094926322741713729, 528504406988987674),
+UInt256(8748135386244681399, 882238104291949713, 13092029940281917969, 5272316527163622496),
+UInt256(5467584616402925874, 7468927842823550427, 1264989685035116874, 14824412875545733820),
+UInt256(6834480770503657343, 112787766674662225, 15416295161576059805, 9307144057577391467),
+UInt256(8543100963129571678, 13976042763625491494, 5435310896687911044, 16245616090399127238),
+UInt256(5339438101955982299, 4123340708838544279, 17232127365712108115, 930138019644678716),
+UInt256(6674297627444977874, 542489867620792445, 16928473188712747239, 14997730579838012107),
+UInt256(8342872034306222342, 9901484371380766365, 7325533430608770337, 14135477206370127229),
+UInt256(5214295021441388964, 1576741713685591074, 6884301403344175413, 1917144226340247663),
+UInt256(6517868776801736205, 1970927142106988842, 17828748791034995074, 7008116301352697482),
+UInt256(8147335971002170256, 7075344946061123957, 13062563951938968034, 17983517413545647661),
+UInt256(5092084981876356410, 4422090591288202473, 10469945479175548973, 15851384401893417692),
+UInt256(6365106227345445512, 14750985275965028899, 17699117867396824121, 5979172447084608403),
+UInt256(7956382784181806890, 18438731594956286124, 17512211315818642247, 12085651577283148407),
+UInt256(4972739240113629306, 16135893265275066732, 1721760035531875596, 14471061263443049611),
+UInt256(6215924050142036633, 10946494544739057607, 2152200044414844495, 18088826579303812013),
+UInt256(7769905062677545791, 18294804199351209912, 16525308110800719331, 17999347205702377113),
+UInt256(4856190664173466119, 18351781652235588051, 10328317569250449582, 8943748994350291744),
+UInt256(6070238330216832649, 18328041046867097160, 8298710943135674074, 1956314206083088871),
+UInt256(7587797912771040812, 9074993253301707738, 10373388678919592592, 11668764794458636897),
+UInt256(4742373695481900507, 14895242820168343144, 11095053942752133274, 7292977996536648061),
+UInt256(5927967119352375634, 14007367506783041026, 13868817428440166592, 18339594532525585884),
+UInt256(7409958899190469543, 8285837346624025475, 8112649748695432433, 4477749091947430739),
+UInt256(4631224311994043464, 12096177369281097778, 2764563083720951318, 14327808228535613972),
+UInt256(5789030389992554330, 15120221711601372222, 12679075891505964956, 8686388248814741657),
+UInt256(7236287987490692913, 9676905102646939470, 6625472827527680387, 10857985311018427071),
+UInt256(9045359984363366141, 16707817396736062241, 17505213071264376292, 8960795620345645935),
+UInt256(5653349990227103838, 12748228882173732853, 4023229141899153326, 14823869299570804517),
+UInt256(7066687487783879798, 6711914065862390258, 9640722445801329562, 9306464587608729838),
+UInt256(8833359359729849747, 17613264619182763631, 2827531020396886145, 2409708697656136490),
+UInt256(5520849599831156092, 8702447377775533317, 8684735915389135696, 13035282982103555066),
+UInt256(6901061999788945115, 10878059222219416646, 15467605912663807524, 16294103727629443833),
+UInt256(8626327499736181394, 8985888009346882904, 10111135353974983598, 1920885585827253175),
+UInt256(5391454687335113371, 10227866024269189719, 6319459596234364748, 15035611546424196947),
+UInt256(6739318359168891714, 8173146511909099245, 3287638476865568032, 347770359320694567),
+UInt256(8424147948961114643, 993061103031598248, 8721234114509347944, 434712949150868209),
+UInt256(5265092468100696651, 16761564253890606569, 5450771321568342465, 271695593219292631),
+UInt256(6581365585125870814, 16340269298935870307, 11425150170387815985, 4951305509951503692),
+UInt256(8226706981407338518, 11201964586815062076, 9669751694557382077, 10800817905866767519),
+UInt256(5141691863379586574, 2389541848332025893, 15266966845953139606, 9056354200380423652),
+UInt256(6427114829224483217, 12210299347269808175, 5248650502159260796, 2097070713620753756),
+UInt256(8033893536530604022, 1427816128805096507, 1949127109271688091, 2621338392025942195),
+UInt256(5021183460331627513, 14727443135785349028, 17359105507790662720, 17779237559512071536),
+UInt256(6276479325414534392, 4574245864449522574, 3252137811028776785, 3777302875680537804),
+UInt256(7845599156768167990, 5717807330561903217, 13288544300640746789, 9333314613028060159),
+UInt256(4903499472980104993, 17408687636883353223, 1387811160259384887, 8139164642356231552),
+UInt256(6129374341225131242, 7925801490822027816, 15569822005606394821, 5562269784517901535),
+UInt256(7661717926531414053, 683879826672758963, 1015533433298441910, 11564523249074764823),
+UInt256(4788573704082133783, 2733267900884168303, 16775609460307383858, 2616141012244340111),
+UInt256(5985717130102667228, 17251642931387374091, 16357825806956841918, 12493548302160200946),
+]
+
+private let bid_multipliers1_binary80_192: [UInt256] = [
+UInt256(7482146412628334036, 3117809590524665998, 15835596240268664494, 6393563340845475375),
+UInt256(4676341507892708772, 11172003030932692057, 5285561631740527404, 17831035143310585821),
+UInt256(5845426884865885965, 13965003788665865071, 11218638058103047160, 3842049855428680661),
+UInt256(7306783606082357457, 3621196680550167627, 9411611554201421046, 4802562319285850826),
+UInt256(9133479507602946821, 9138181869115097438, 7152828424324388403, 15226574935962089340),
+UInt256(5708424692251841763, 8017206677410629850, 18305575820484906464, 7210766325762611886),
+UInt256(7135530865314802204, 5409822328335899409, 13658597738751357272, 9013457907203264857),
+UInt256(8919413581643502755, 6762277910419874262, 3238189118157032878, 11266822384004081071),
+UInt256(5574633488527189222, 1920580684798727461, 15858926254130309261, 2430077971575162766),
+UInt256(6968291860658986527, 11624097892853185135, 5988599762380722864, 7649283482896341361),
+UInt256(8710364825823733159, 9918436347639093515, 2874063684548515676, 9561604353620426701),
+UInt256(5443978016139833224, 13116551744915515302, 17937190867338679961, 15199374757867542496),
+UInt256(6804972520174791530, 16395689681144394128, 13198116547318574144, 5164160392052264408),
+UInt256(8506215650218489413, 11271240064575716852, 16497645684148217680, 6455200490065330510),
+UInt256(5316384781386555883, 9350368049573516985, 1087656515737860242, 4034500306290831569),
+UInt256(6645480976733194854, 7076274043539508327, 5971256663099713206, 14266497419718315269),
+UInt256(8306851220916493567, 18068714591279161217, 2852384810447253604, 8609749737793118278),
+UInt256(5191782013072808479, 18210475647190557616, 13311955552598003262, 14604465622975474732),
+UInt256(6489727516341010599, 18151408540560809116, 16639944440747504078, 9032209991864567607),
+UInt256(8112159395426263249, 18077574657273623492, 2353186477224828482, 2066890452975933701),
+UInt256(5070099622141414531, 4380955133154932826, 10694113585120293609, 5903492551537346467),
+UInt256(6337624527676768164, 864507898016278129, 4144269944545591203, 11991051707849070988),
+UInt256(7922030659595960205, 1080634872520347661, 9792023449109376908, 10377128616383950831),
+UInt256(4951269162247475128, 2981239804538911240, 8425857664907054519, 15709077422094745077),
+UInt256(6189086452809343910, 3726549755673639050, 10532322081133818149, 15024660759191043442),
+UInt256(7736358066011679887, 13881559231446824621, 3942030564562496879, 4945767893706640591),
+UInt256(4835223791257299929, 15593503547295347244, 4769612112065254501, 10008633961207732226),
+UInt256(6044029739071624912, 5656821378837020343, 5962015140081568126, 17122478469937053186),
+UInt256(7555037173839531140, 7071026723546275429, 2840832906674572254, 12179726050566540674),
+UInt256(4721898233649706962, 13642763739071197951, 4081363575885301611, 3000642763176700018),
+UInt256(5902372792062133703, 7830082636984221631, 490018451429239109, 17585861509253038734),
+UInt256(7377965990077667129, 5175917277802889134, 14447581119568712599, 8147268831284134705),
+UInt256(9222457487597083911, 11081582615680999322, 8836104362606114941, 5572400020677780477),
+UInt256(5764035929748177444, 13843518162441706432, 10134251245056209742, 5788593022137306750),
+UInt256(7205044912185221805, 17304397703052133040, 12667814056320262177, 16459113314526409246),
+UInt256(9006306140231527257, 7795439073533002588, 15834767570400327722, 6738833587875847845),
+UInt256(5628941337644704535, 16401364467026596378, 673357694645429018, 8823457010849792808),
+UInt256(7036176672055880669, 15890019565355857568, 10065069155161562081, 1805949226707465201),
+UInt256(8795220840069850837, 6027466401412658248, 12581336443951952601, 6869122551811719405),
+UInt256(5497013025043656773, 6073009510096605357, 7863335277469970375, 15822416640950794389),
+UInt256(6871266281304570966, 12202947906048144600, 14440855115264850873, 15166334782761105082),
+UInt256(8589082851630713708, 6030312845705404942, 18051068894081063592, 5122860423169217640),
+UInt256(5368176782269196067, 12992317565420653897, 6670232040373276841, 3201787764480761025),
+UInt256(6710220977836495084, 11628710938348429467, 12949476068893983955, 8613920724028339185),
+UInt256(8387776222295618855, 14535888672935536834, 11575159067690092040, 6155714886608036077),
+UInt256(5242360138934761784, 16002459448225792377, 11846160435733695429, 3847321804130022549),
+UInt256(6552950173668452231, 1556330236572688856, 972642489384955574, 9420838273589916090),
+UInt256(8191187717085565288, 15780470850998024782, 1215803111731194468, 2552675805132619304),
+UInt256(5119492323178478305, 9862794281873765488, 14594935000114160254, 10818794415062662873),
+UInt256(6399365403973097881, 16940178870769594764, 18243668750142700318, 4300120981973552783),
+]
+
+private let bid_multipliers1_binary80_193: [UInt256] = [
+UInt256(7999206754966372352, 7340165533179829744, 4357841863968823781, 14598523264321716787),
+UInt256(4999504221853982720, 4587603458237393590, 2723651164980514863, 11429920049414766944),
+UInt256(6249380277317478400, 5734504322796741987, 12627935993080419387, 9675714043341070776),
+UInt256(7811725346646848000, 7168130403495927484, 11173233972923136330, 7482956535748950566),
+UInt256(4882328341654280000, 4480081502184954677, 16206643269931736014, 9288533853270482008),
+UInt256(6102910427067850000, 5600101877731193347, 6423246032132506306, 2387295279733326702),
+UInt256(7628638033834812500, 7000127347163991684, 3417371521738244978, 12207491136521434185),
+UInt256(4767898771146757812, 13598451628832270610, 11359229237941178919, 12241367978753284270),
+UInt256(5959873463933447265, 16998064536040338263, 4975664510571697841, 10690023955014217433),
+UInt256(7449841829916809082, 7412522614768259117, 1607894619787234397, 17974215962195159695),
+UInt256(4656151143698005676, 9244512652657549852, 3310777146580715450, 13539727985585668762),
+UInt256(5820188929622507095, 11555640815821937315, 4138471433225894313, 7701287945127310144),
+UInt256(7275236162028133869, 9832865001350033740, 561403273104979987, 14238295949836525584),
+UInt256(9094045202535167336, 16902767270114930079, 701754091381224984, 13186183918868269076),
+UInt256(5683778251584479585, 10564229543821831299, 7356125334754347471, 8241364949292668173),
+UInt256(7104722814480599481, 17816972948204677028, 4583470650015546435, 5690020168188447312),
+UInt256(8880903518100749352, 8436158129973682573, 5729338312519433044, 2500839191808171235),
+UInt256(5550564698812968345, 5272598831233551608, 5886679454538339604, 10786396531734882830),
+UInt256(6938205873516210431, 11202434557469327414, 7358349318172924505, 13482995664668603538),
+UInt256(8672757341895263039, 9391357178409271363, 18421308684570931440, 3018686525553590710),
+UInt256(5420473338684539399, 12787127264146876458, 9207474918643138198, 1886679078470994194),
+UInt256(6775591673355674249, 11372223061756207669, 2285971611449146939, 11581720884943518550),
+UInt256(8469489591694592812, 380220771913095874, 7469150532738821578, 9865465087752010284),
+UInt256(5293430994809120507, 9461010019300460729, 9279905101389151390, 10777601698272394332),
+UInt256(6616788743511400634, 7214576505698188007, 16211567395163827142, 4248630085985717106),
+UInt256(8270985929389250792, 18241592668977510817, 15652773225527396023, 14534159644336922191),
+UInt256(5169366205868281745, 11400995418110944261, 2865454238313540658, 16001378805351658225),
+UInt256(6461707757335352182, 416186217356516614, 8193503816319313727, 10778351469834796974),
+UInt256(8077134696669190227, 9743604808550421576, 1018507733544366351, 8861253318866108313),
+UInt256(5048209185418243892, 3783909996130319533, 636567333465228969, 12455812351932399552),
+UInt256(6310261481772804865, 4729887495162899416, 5407395185258924116, 1734707384633335728),
+UInt256(7887826852216006081, 10524045387381012174, 6759243981573655145, 2168384230791669659),
+UInt256(4929891782635003800, 18106743413181602368, 18059585543765698177, 12884455190313263297),
+UInt256(6162364728293754751, 4186685192767451345, 4127737855997571106, 2270510932609415409),
+UInt256(7702955910367193439, 621670472531926277, 9771358338424351786, 12061510702616545070),
+UInt256(4814347443979495899, 7306073072973535779, 8412941970728913818, 12150130207562728573),
+UInt256(6017934304974369874, 4520905322789531820, 5904491444983754369, 5964290722598634908),
+UInt256(7522417881217962342, 14874503690341690583, 7380614306229692961, 12067049421675681539),
+UInt256(4701511175761226464, 4684878788036168710, 11530412969034639957, 624376860906219106),
+UInt256(5876888969701533080, 5856098485045210888, 5189644174438524138, 5392157094560161786),
+UInt256(7346111212126916350, 7320123106306513610, 6487055218048155172, 15963568405054978041),
+UInt256(9182639015158645437, 18373525919737917820, 17332191059414969774, 1507716432609170935),
+UInt256(5739149384474153398, 13789296709049892590, 1609247375279580300, 14777380825662895546),
+UInt256(7173936730592691748, 8013248849457589929, 11234931255954251184, 24981958369067817),
+UInt256(8967420913240864685, 10016561061821987412, 208606014660650268, 31227447961334771),
+UInt256(5604638070775540428, 8566193672852436084, 9353750796017682225, 9242889191830610040),
+UInt256(7005797588469425535, 10707742091065545105, 11692188495022102781, 16165297508215650454),
+UInt256(8757246985586781919, 8772991595404543478, 780177563495464765, 6371563829987399355),
+UInt256(5473279365991738699, 12400648774768921529, 14322669032466829190, 6288070402955818549),
+UInt256(6841599207489673374, 10889124950033764008, 4068278235301372775, 17083460040549548994),
+]
+
+private let bid_multipliers1_binary80_194: [UInt256] = [
+UInt256(8551999009362091718, 4388034150687429202, 5085347794126715969, 16742639032259548339),
+UInt256(5344999380851307323, 16577579399461806963, 7790028389756585385, 3546620367521135856),
+UInt256(6681249226064134154, 16110288230899870800, 5125849468768343827, 9044961477828807724),
+UInt256(8351561532580167693, 10914488251770062692, 6407311835960429784, 6694515828858621751),
+UInt256(5219725957862604808, 9127398166569983134, 13227941934330044423, 4184072393036638594),
+UInt256(6524657447328256010, 11409247708212478918, 7311555381057779721, 618404472868410339),
+UInt256(8155821809160320013, 5038187598410822839, 18362816263177000459, 5384691609512900827),
+UInt256(5097388630725200008, 5454710258220458226, 18394289192126707143, 1059589246731869065),
+UInt256(6371735788406500010, 6818387822775572783, 13769489453303608120, 15159544613697000043),
+UInt256(7964669735508125012, 17746356815324241787, 12600175798202122247, 502686693411698438),
+UInt256(4977918584692578133, 1868100972722875309, 5569266864662632452, 7231708211023393380),
+UInt256(6222398230865722666, 6946812234330982040, 11573269599255678469, 9039635263779241725),
+UInt256(7777997788582153332, 17906887329768503358, 14466586999069598086, 15911230098151440060),
+UInt256(4861248617863845833, 1968432544250538791, 4429930855991110900, 5332832792917262134),
+UInt256(6076560772329807291, 7072226698740561393, 925727551561500721, 6666040991146577667),
+UInt256(7595700965412259114, 4228597354998313837, 5768845457879263805, 12944237257360609988),
+UInt256(4747313103382661946, 7254559365301334052, 5911371420388233830, 10395991295064075194),
+UInt256(5934141379228327432, 18291571243481443373, 7389214275485292288, 3771617081975318185),
+UInt256(7417676724035409291, 4417719980642252600, 13848203862784003264, 4714521352469147731),
+UInt256(4636047952522130807, 455231978687713923, 8655127414240002040, 2946575845293217332),
+UInt256(5795059940652663508, 14404098028641806116, 6207223249372614646, 3683219806616521665),
+UInt256(7243824925815829385, 18005122535802257645, 7759029061715768307, 13827396795125427889),
+UInt256(9054781157269786732, 8671345114470658344, 14310472345572098288, 12672559975479396957),
+UInt256(5659238223293616707, 14642962733398937273, 8944045215982561430, 7920349984674623099),
+UInt256(7074047779117020884, 13692017398321283687, 15791742538405589692, 677065443988503065),
+UInt256(8842559723896276105, 17115021747901604609, 15127992154579599211, 846331804985628831),
+UInt256(5526599827435172566, 3779359564797421025, 2537466068971167650, 16669858442611875684),
+UInt256(6908249784293965707, 13947571492851552089, 7783518604641347467, 11613951016410068796),
+UInt256(8635312230367457134, 12822778347637052207, 14341084274229072238, 9905752752085198091),
+UInt256(5397070143979660709, 3402550448845769725, 15880706699034252005, 1579409451625860903),
+UInt256(6746337679974575886, 8864874079484600061, 6015825318510651294, 6585947832959714033),
+UInt256(8432922099968219858, 1857720562500974268, 12131467666565702021, 17455806828054418349),
+UInt256(5270576312480137411, 5772761369990496821, 16805539328458339571, 13215722276747705420),
+UInt256(6588220390600171764, 2604265694060733123, 7171866105290760752, 11907966827507243871),
+UInt256(8235275488250214705, 3255332117575916404, 4353146613186063036, 14884958534384054839),
+UInt256(5147047180156384190, 13563797619553417512, 11944088670096065206, 79727047135258467),
+UInt256(6433808975195480238, 7731374987586996082, 14930110837620081507, 9323030845773848891),
+UInt256(8042261218994350298, 440846697628969295, 9439266510170326076, 7042102538789923210),
+UInt256(5026413261871468936, 4887215204445493713, 12817070596497535653, 13624686123598477814),
+UInt256(6283016577339336170, 6109019005556867142, 2186280190339755855, 3195799599215933556),
+UInt256(7853770721674170212, 16859645793800859735, 11956222274779470626, 17829807554302080657),
+UInt256(4908606701046356383, 1313906584270761526, 14390167949378250997, 15755315739866188315),
+UInt256(6135758376307945478, 15477441285620615620, 8764337899868037939, 5859086619550571681),
+UInt256(7669697970384931848, 10123429570170993717, 10955422374835047424, 2712172256010826697),
+UInt256(4793561231490582405, 6327143481356871073, 9152981993485598592, 1695107660006766686),
+UInt256(5991951539363228006, 12520615370123476745, 16052913510284386144, 2118884575008458357),
+UInt256(7489939424204035008, 6427397175799570124, 6231083832573318968, 2648605718760572947),
+UInt256(4681212140127521880, 4017123234874731327, 13117799432213100163, 1655378574225358092),
+UInt256(5851515175159402350, 5021404043593414159, 11785563271838987299, 15904281273063861327),
+UInt256(7314393968949252937, 15500127091346543507, 10120268071371346220, 15268665572902438754),
+]
+
+private let bid_multipliers1_binary80_195: [UInt256] = [
+UInt256(9142992461186566172, 5540100808901015672, 8038649070786794872, 639087892418496827),
+UInt256(5714370288241603857, 12685935042417910603, 5024155669241746795, 399429932761560517),
+UInt256(7142962860302004822, 2022360747740224542, 1668508568124795589, 14334345471234114358),
+UInt256(8928703575377506027, 11751322971530056485, 11309007747010770295, 4082873783760479235),
+UInt256(5580439734610941267, 5038733847992591351, 9373972851095425386, 9469325142491381378),
+UInt256(6975549668263676584, 1686731291563351285, 7105780045441893829, 2613284391259450915),
+UInt256(8719437085329595730, 2108414114454189106, 13493911075229755190, 7878291507501701547),
+UInt256(5449648178330997331, 5929444839961256095, 13045380440445984898, 312246173761175563),
+UInt256(6812060222913746664, 2800120031524182215, 11695039532130093218, 9613679754056245262),
+UInt256(8515075278642183330, 3500150039405227769, 10007113396735228619, 2793727655715530769),
+UInt256(5321922049151364581, 6799279793055655259, 17783660919027987646, 17886980849318064395),
+UInt256(6652402561439205726, 13110785759746956978, 17617890130357596654, 13135354024792804685),
+UInt256(8315503201799007158, 7165110162828920415, 12798990626092220010, 7195820494136230049),
+UInt256(5197189501124379473, 18313251907050238971, 14916898168948719362, 9109073827262531685),
+UInt256(6496486876405474342, 9056506828530635002, 14034436692758511299, 2162970247223388798),
+UInt256(8120608595506842928, 2097261498808517945, 8319673829093363315, 16538770864311399709),
+UInt256(5075380372191776830, 1310788436755323715, 16729011189251821832, 8030888780980930866),
+UInt256(6344225465239721037, 10861857582798930452, 16299577968137389386, 10038610976226163583),
+UInt256(7930281831549651296, 18189007996926050970, 1927728386462185117, 3324891683427928670),
+UInt256(4956426144718532060, 11368129998078781856, 5816516259966253602, 4383900311356149371),
+UInt256(6195532680898165075, 14210162497598477320, 7270645324957817002, 14703247426049962522),
+UInt256(7744415851122706344, 13151017103570708746, 9088306656197271253, 9155687245707677344),
+UInt256(4840259906951691465, 8219385689731692966, 10291877678550682437, 8028147537780992292),
+UInt256(6050324883689614331, 14885918130592004112, 3641475061333577238, 14646870440653628269),
+UInt256(7562906104612017914, 13995711644812617236, 4551843826666971548, 9085216013962259528),
+UInt256(4726816315382511196, 13359005796435273676, 12068274428521633025, 14901632045581188013),
+UInt256(5908520394228138995, 16698757245544092095, 15085343035652041282, 4791982001694321305),
+UInt256(7385650492785173744, 16261760538502727215, 14244992776137663698, 15213349538972677439),
+UInt256(4616031557990733590, 10163600336564204509, 15820649512727121667, 14120029480285311303),
+UInt256(5770039447488416988, 3481128383850479829, 5940753835626738372, 13038350831929251225),
+UInt256(7212549309360521235, 4351410479813099786, 12037628312960810869, 16297938539911564031),
+UInt256(9015686636700651544, 827577081338986829, 5823663354346237779, 6537365119607291327),
+UInt256(5634804147937907215, 517235675836866768, 5945632605680092564, 1780010190540863127),
+UInt256(7043505184922384018, 14481602650078247172, 7432040757100115705, 2225012738176078909),
+UInt256(8804381481152980023, 8878631275743033157, 9290050946375144631, 7392951941147486540),
+UInt256(5502738425720612514, 12466673574980477579, 8112124850698159346, 11538123990858260944),
+UInt256(6878423032150765643, 6359969931870821166, 5528470044945311279, 5199282951718050372),
+UInt256(8598028790188457054, 3338276396411138553, 16133959593036414907, 1887417671220175061),
+UInt256(5373767993867785658, 15921480803039125308, 3166195718006677460, 17320537109008467077),
+UInt256(6717209992334732073, 10678478966944130827, 3957744647508346826, 3203927312551032230),
+UInt256(8396512490418415091, 17959784727107551438, 335494790958045628, 13228281177543566096),
+UInt256(5247820306511509432, 8919022445228525696, 14044742299630942229, 17491047772819504618),
+UInt256(6559775383139386790, 11148778056535657120, 17555927874538677787, 8028751660742217060),
+UInt256(8199719228924233488, 4712600533814795593, 3498165769463795618, 5424253557500383421),
+UInt256(5124824518077645930, 2945375333634247245, 13715568651983342021, 8001844491865127543),
+UInt256(6406030647597057412, 12905091203897584865, 3309402759697013814, 14613991633258797332),
+UInt256(8007538309496321765, 16131364004871981081, 8748439468048655172, 9044117504718720857),
+UInt256(5004711443435201103, 12387945512258682127, 16996989713598879242, 14875945477303976344),
+UInt256(6255889304294001379, 10873245871895964755, 16634551123571211149, 9371559809775194622),
+UInt256(7819861630367501724, 8979871321442568040, 16181502886036626032, 16326135780646381181),
+]
+
+private let bid_multipliers1_binary80_196: [UInt256] = [
+UInt256(4887413518979688577, 14835791612756380833, 10113439303772891270, 10203834862903988238),
+UInt256(6109266898724610722, 4709681460663312329, 17253485148143501992, 3531421541775209490),
+UInt256(7636583623405763402, 15110473862683916220, 7731798379897213778, 4414276927219011862),
+UInt256(4772864764628602126, 14055732182604835541, 14055746024290534419, 7370609097939270318),
+UInt256(5966080955785752658, 8346293191401268619, 3734624475081004312, 4601575353996699993),
+UInt256(7457601194732190823, 1209494452396809966, 56594575423867486, 5751969192495874991),
+UInt256(4661000746707619264, 7673463060389088084, 13870429664922080890, 17430038800592085582),
+UInt256(5826250933384524080, 9591828825486360105, 17338037081152601113, 12564176463885331169),
+UInt256(7282813666730655100, 11989786031857950132, 7837488296158587680, 1870162524574500249),
+UInt256(9103517083413318875, 14987232539822437665, 9796860370198234600, 2337703155718125312),
+UInt256(5689698177133324297, 7061177328175329588, 17652252777442366385, 1461064472323828320),
+UInt256(7112122721416655371, 13438157678646549890, 3618571898093406365, 6438016608832173304),
+UInt256(8890153401770819214, 12186011079880799458, 13746586909471533764, 12659206779467604534),
+UInt256(5556345876106762009, 3004570906498111757, 13203302836847096506, 17135376274022028642),
+UInt256(6945432345133452511, 8367399651550027601, 2669070490776706921, 12195848305672759994),
+UInt256(8681790431416815639, 5847563546010146597, 7948024131898271556, 1409752326808786280),
+UInt256(5426119019635509774, 10572256243897423479, 7273358091650113674, 10104467241110267233),
+UInt256(6782648774544387218, 3991948268017003541, 4480011596135254189, 3407212014533058234),
+UInt256(8478310968180484022, 14213307371876030234, 10211700513596455640, 8870701036593710696),
+UInt256(5298944355112802514, 4271631088995130992, 10993998839425172679, 5544188147871069185),
+UInt256(6623680443891003142, 14562910898098689548, 13742498549281465849, 2318549166411448577),
+UInt256(8279600554863753928, 8980266585768586127, 17178123186601832311, 7509872476441698625),
+UInt256(5174750346789846205, 5612666616105366329, 17653856019267227050, 11611199325417143497),
+UInt256(6468437933487307756, 11627519288559095816, 8232261968801870101, 5290627119916653563),
+UInt256(8085547416859134695, 14534399110698869770, 10290327461002337626, 11224969918323204858),
+UInt256(5053467135536959184, 16001528471827875462, 11043140681553848920, 11627292217379390940),
+UInt256(6316833919421198981, 1555166516075292712, 4580553815087535342, 14534115271724238675),
+UInt256(7896042399276498726, 6555644163521503794, 5725692268859419178, 8944272052800522536),
+UInt256(4935026499547811703, 17932335657483103583, 8190243686464524890, 10201856051427714489),
+UInt256(6168783124434764629, 17803733553426491575, 5626118589653268209, 3528948027429867303),
+UInt256(7710978905543455787, 8419608886500950757, 2420962218639197357, 9022871052714722033),
+UInt256(4819361815964659867, 2956412544849400271, 3818944395863192300, 7945137417160395223),
+UInt256(6024202269955824833, 17530573736343914051, 161994476401602471, 9931421771450494029),
+UInt256(7530252837444781042, 8078159115147728851, 14037551150784166801, 7802591195885729632),
+UInt256(4706408023402988151, 9660535465394718436, 6467626460026410298, 16405834543497050780),
+UInt256(5883010029253735189, 7463983313316010141, 8084533075033012873, 11283921142516537667),
+UInt256(7353762536567168986, 13941665160072400580, 14717352362218653996, 269843372863508371),
+UInt256(9192203170708961233, 8203709413235724917, 18396690452773317495, 337304216079385464),
+UInt256(5745126981693100770, 16656533429340797833, 13803774542197017386, 7128344162690697771),
+UInt256(7181408727116375963, 11597294749821221484, 3419660122464108020, 18133802240218148022),
+UInt256(8976760908895469954, 9884932418849138951, 4274575153080135026, 4220508726563133411),
+UInt256(5610475568059668721, 10789768780208099748, 9589138498316166247, 7249503972529346286),
+UInt256(7013094460074585901, 18098896993687512589, 11986423122895207809, 4450193947234294954),
+UInt256(8766368075093232377, 8788563186827227025, 1147970848336846049, 10174428452470256596),
+UInt256(5478980046933270235, 17022067037835486650, 12246696826278998540, 17888232828862380133),
+UInt256(6848725058666587794, 16665897778866970409, 6084998995993972368, 3913546962368423550),
+UInt256(8560906323333234743, 11609000186728937203, 12217934763419853364, 4891933702960529437),
+UInt256(5350566452083271714, 14173154144346667608, 5330366217923714400, 12280830601205106706),
+UInt256(6688208065104089643, 8493070643578558702, 6662957772404643000, 15351038251506383383),
+UInt256(8360260081380112054, 6004652286045810473, 17552069252360579559, 742053740673427612),
+]
+
+private let bid_multipliers1_binary80_197: [UInt256] = [
+UInt256(5225162550862570033, 17587965734060795258, 4052514255084280368, 7381312615561974114),
+UInt256(6531453188578212542, 8149899112293830360, 14289014855710126268, 9226640769452467642),
+UInt256(8164316485722765678, 964001853512512142, 17861268569637657835, 11533300961815584553),
+UInt256(5102697803576728548, 14437559213727483801, 6551606837596148243, 4902470091921046394),
+UInt256(6378372254470910685, 18046949017159354751, 12801194565422573208, 1516401596473920088),
+UInt256(7972965318088638357, 8723628216167029727, 11389807188350828606, 1895501995592400110),
+UInt256(4983103323805398973, 7758110644318087531, 14036158520360349734, 15019746802527413781),
+UInt256(6228879154756748716, 14309324323824997318, 12933512132023049264, 9551311466304491418),
+UInt256(7786098943445935895, 17886655404781246648, 6943518128174035772, 11939139332880614272),
+UInt256(4866311839653709934, 18096688655629361011, 4339698830108772357, 16685334119905159728),
+UInt256(6082889799567137418, 13397488782681925456, 812937519208577543, 7021609594599285948),
+UInt256(7603612249458921773, 7523488941497631012, 1016171899010721929, 4165325974821719531),
+UInt256(4752257655911826108, 7008023597649713334, 9858479473736477013, 14132543780332044467),
+UInt256(5940322069889782635, 8760029497062141668, 3099727305315820459, 3830621670132891872),
+UInt256(7425402587362228294, 6338350852900289181, 3874659131644775574, 176591069238726936),
+UInt256(4640876617101392683, 17796527338344844450, 4727504966491678685, 13945427473556368047),
+UInt256(5801095771376740854, 17633973154503667658, 15132753244969374165, 3596726286663296347),
+UInt256(7251369714220926068, 12819094406274808765, 9692569519356941898, 9107593876756508337),
+UInt256(9064212142776157585, 16023868007843510956, 16727397917623565277, 2161120309090859613),
+UInt256(5665132589235098491, 3097388477261112492, 1231251661659952490, 3656543202395481210),
+UInt256(7081415736543873113, 17706793651858554327, 1539064577074940612, 13794051039849127321),
+UInt256(8851769670679841392, 8298434009541029196, 15758888776625839477, 17242563799811409151),
+UInt256(5532356044174900870, 5186521255963143248, 625933448536373865, 13082445384095824672),
+UInt256(6915445055218626087, 15706523606808704868, 782416810670467332, 2517998674837617127),
+UInt256(8644306319023282609, 15021468490083493181, 978021013338084165, 3147498343547021409),
+UInt256(5402691449389551631, 2470888778661101382, 2917106142549996555, 4273029473930582333),
+UInt256(6753364311736939538, 16923669028608540439, 12869754715042271502, 729600823985840012),
+UInt256(8441705389671174423, 11931214248905899741, 11475507375375451473, 10135373066837075823),
+UInt256(5276065868544484014, 14374537933207269194, 9478035118823351122, 17863823212841642149),
+UInt256(6595082335680605018, 8744800379654310685, 2624171861674413095, 13106406979197276879),
+UInt256(8243852919600756273, 1707628437713112548, 7891900845520404273, 11771322705569208194),
+UInt256(5152408074750472670, 12596482819639165102, 14155810065305028479, 439547663339673266),
+UInt256(6440510093438090838, 6522231487694180570, 8471390544776509790, 14384492634456755294),
+UInt256(8050637616797613547, 17376161396472501521, 1365866144115861430, 8757243756216168309),
+UInt256(5031648510498508467, 8554257863581619498, 12382881386140883154, 861591329207717289),
+UInt256(6289560638123135584, 6081136311049636469, 6255229695821328134, 10300361198364422420),
+UInt256(7861950797653919480, 7601420388812045586, 12430723138204048072, 3652079461100752216),
+UInt256(4913719248533699675, 4750887743007528491, 12380887979804917949, 2282549663187970135),
+UInt256(6142149060667124594, 1326923660332022710, 10864423956328759532, 7464873097412350573),
+UInt256(7677686325833905742, 10882026612269804196, 4357157908556173607, 9331091371765438216),
+UInt256(4798553953646191089, 2189580614241239718, 11946595729702384312, 12749461134994480741),
+UInt256(5998192442057738861, 7348661786228937552, 5709872625273204582, 15936826418743100927),
+UInt256(7497740552572173576, 13797513251213559844, 7137340781591505728, 10697660986574100350),
+UInt256(4686087845357608485, 8623445782008474902, 13684210025349466888, 6686038116608812719),
+UInt256(5857609806697010606, 15390993245937981532, 7881890494832057802, 8357547645761015899),
+UInt256(7322012258371263258, 10015369520567701107, 9852363118540072253, 1223562520346494065),
+UInt256(9152515322964079073, 3295839863854850576, 7703767879747702412, 6141139168860505485),
+UInt256(5720322076852549420, 13589114960977751370, 4814854924842314007, 13061584017392591737),
+UInt256(7150402596065686775, 16986393701222189212, 15241940692907668317, 11715294003313351767),
+UInt256(8938003245082108469, 16621306108100348612, 605681792425033781, 809059448859525996),
+]
+
+private let bid_multipliers1_binary80_198: [UInt256] = [
+UInt256(5586252028176317793, 12694159326776411834, 9601923157120421921, 2811505164750897700),
+UInt256(6982815035220397242, 2032641103188351081, 2779031909545751593, 8126067474366010029),
+UInt256(8728518794025496552, 11764173415840214659, 8085475905359577395, 14769270361384900440),
+UInt256(5455324246265935345, 7352608384900134162, 2747579431636041920, 6924950966651868823),
+UInt256(6819155307832419181, 13802446499552555606, 12657846326399828208, 8656188708314836029),
+UInt256(8523944134790523977, 3418000069158530796, 6598935871145009452, 10820235885393545036),
+UInt256(5327465084244077485, 13665465089292551507, 13347706956320406715, 15986019465225741455),
+UInt256(6659331355305096857, 3246773306333525672, 12072947676973120490, 15370838313104788915),
+UInt256(8324164194131371071, 8670152651344294994, 15091184596216400613, 9990175854526210336),
+UInt256(5202602621332106919, 12336374434731266227, 14043676391062638287, 8549702918292575412),
+UInt256(6503253276665133649, 10808782024986694880, 12942909470400909955, 6075442629438331361),
+UInt256(8129066595831417061, 18122663549660756504, 16178636838001137444, 2982617268370526297),
+UInt256(5080666622394635663, 13632507727751666767, 10111648023750710902, 11087507829586354744),
+UInt256(6350833277993294579, 12428948641262195555, 8027874011261000724, 4636012750128167622),
+UInt256(7938541597491618224, 10924499783150356540, 5423156495648863001, 5795015937660209527),
+UInt256(4961588498432261390, 6827812364468972837, 12612844846635315183, 15151100007106100715),
+UInt256(6201985623040326737, 17758137492440991855, 1930998003011980267, 14327188990455237989),
+UInt256(7752482028800408422, 8362613810269076106, 16248805559047139046, 13297300219641659582),
+UInt256(4845301268000255264, 614947612990784662, 14767189492831849808, 3699126618848649335),
+]
+
+// MARK: - bid_multipliers2_binary80
+
+extension BinaryFloatingPointTables {
+ internal static func bid_multipliers2_binary80(_ index: Int) -> UInt256 {
+ // We have to split this table into a multiple smaller ones.
+ // Otherwise the compilation would take at least 15min and 20GB of ram.
+ // 'At least' because I never managed to compile it.
+ let (q, r) = index.quotientAndRemainder(dividingBy: 50)
+
+ switch q {
+ case 0: return bid_multipliers2_binary80_0[r]
+ case 1: return bid_multipliers2_binary80_1[r]
+ case 2: return bid_multipliers2_binary80_2[r]
+ case 3: return bid_multipliers2_binary80_3[r]
+ case 4: return bid_multipliers2_binary80_4[r]
+ case 5: return bid_multipliers2_binary80_5[r]
+ case 6: return bid_multipliers2_binary80_6[r]
+ case 7: return bid_multipliers2_binary80_7[r]
+ case 8: return bid_multipliers2_binary80_8[r]
+ case 9: return bid_multipliers2_binary80_9[r]
+ case 10: return bid_multipliers2_binary80_10[r]
+ case 11: return bid_multipliers2_binary80_11[r]
+ case 12: return bid_multipliers2_binary80_12[r]
+ case 13: return bid_multipliers2_binary80_13[r]
+ case 14: return bid_multipliers2_binary80_14[r]
+ case 15: return bid_multipliers2_binary80_15[r]
+ case 16: return bid_multipliers2_binary80_16[r]
+ case 17: return bid_multipliers2_binary80_17[r]
+ case 18: return bid_multipliers2_binary80_18[r]
+ case 19: return bid_multipliers2_binary80_19[r]
+ case 20: return bid_multipliers2_binary80_20[r]
+ case 21: return bid_multipliers2_binary80_21[r]
+ case 22: return bid_multipliers2_binary80_22[r]
+ case 23: return bid_multipliers2_binary80_23[r]
+ case 24: return bid_multipliers2_binary80_24[r]
+ case 25: return bid_multipliers2_binary80_25[r]
+ case 26: return bid_multipliers2_binary80_26[r]
+ case 27: return bid_multipliers2_binary80_27[r]
+ case 28: return bid_multipliers2_binary80_28[r]
+ case 29: return bid_multipliers2_binary80_29[r]
+ case 30: return bid_multipliers2_binary80_30[r]
+ case 31: return bid_multipliers2_binary80_31[r]
+ case 32: return bid_multipliers2_binary80_32[r]
+ case 33: return bid_multipliers2_binary80_33[r]
+ case 34: return bid_multipliers2_binary80_34[r]
+ case 35: return bid_multipliers2_binary80_35[r]
+ case 36: return bid_multipliers2_binary80_36[r]
+ case 37: return bid_multipliers2_binary80_37[r]
+ case 38: return bid_multipliers2_binary80_38[r]
+ case 39: return bid_multipliers2_binary80_39[r]
+ case 40: return bid_multipliers2_binary80_40[r]
+ case 41: return bid_multipliers2_binary80_41[r]
+ case 42: return bid_multipliers2_binary80_42[r]
+ case 43: return bid_multipliers2_binary80_43[r]
+ case 44: return bid_multipliers2_binary80_44[r]
+ case 45: return bid_multipliers2_binary80_45[r]
+ case 46: return bid_multipliers2_binary80_46[r]
+ case 47: return bid_multipliers2_binary80_47[r]
+ case 48: return bid_multipliers2_binary80_48[r]
+ case 49: return bid_multipliers2_binary80_49[r]
+ case 50: return bid_multipliers2_binary80_50[r]
+ case 51: return bid_multipliers2_binary80_51[r]
+ case 52: return bid_multipliers2_binary80_52[r]
+ case 53: return bid_multipliers2_binary80_53[r]
+ case 54: return bid_multipliers2_binary80_54[r]
+ case 55: return bid_multipliers2_binary80_55[r]
+ case 56: return bid_multipliers2_binary80_56[r]
+ case 57: return bid_multipliers2_binary80_57[r]
+ case 58: return bid_multipliers2_binary80_58[r]
+ case 59: return bid_multipliers2_binary80_59[r]
+ case 60: return bid_multipliers2_binary80_60[r]
+ case 61: return bid_multipliers2_binary80_61[r]
+ case 62: return bid_multipliers2_binary80_62[r]
+ case 63: return bid_multipliers2_binary80_63[r]
+ case 64: return bid_multipliers2_binary80_64[r]
+ case 65: return bid_multipliers2_binary80_65[r]
+ case 66: return bid_multipliers2_binary80_66[r]
+ case 67: return bid_multipliers2_binary80_67[r]
+ case 68: return bid_multipliers2_binary80_68[r]
+ case 69: return bid_multipliers2_binary80_69[r]
+ case 70: return bid_multipliers2_binary80_70[r]
+ case 71: return bid_multipliers2_binary80_71[r]
+ case 72: return bid_multipliers2_binary80_72[r]
+ case 73: return bid_multipliers2_binary80_73[r]
+ case 74: return bid_multipliers2_binary80_74[r]
+ case 75: return bid_multipliers2_binary80_75[r]
+ case 76: return bid_multipliers2_binary80_76[r]
+ case 77: return bid_multipliers2_binary80_77[r]
+ case 78: return bid_multipliers2_binary80_78[r]
+ case 79: return bid_multipliers2_binary80_79[r]
+ case 80: return bid_multipliers2_binary80_80[r]
+ case 81: return bid_multipliers2_binary80_81[r]
+ case 82: return bid_multipliers2_binary80_82[r]
+ case 83: return bid_multipliers2_binary80_83[r]
+ case 84: return bid_multipliers2_binary80_84[r]
+ case 85: return bid_multipliers2_binary80_85[r]
+ case 86: return bid_multipliers2_binary80_86[r]
+ case 87: return bid_multipliers2_binary80_87[r]
+ case 88: return bid_multipliers2_binary80_88[r]
+ case 89: return bid_multipliers2_binary80_89[r]
+ case 90: return bid_multipliers2_binary80_90[r]
+ case 91: return bid_multipliers2_binary80_91[r]
+ case 92: return bid_multipliers2_binary80_92[r]
+ case 93: return bid_multipliers2_binary80_93[r]
+ case 94: return bid_multipliers2_binary80_94[r]
+ case 95: return bid_multipliers2_binary80_95[r]
+ case 96: return bid_multipliers2_binary80_96[r]
+ case 97: return bid_multipliers2_binary80_97[r]
+ case 98: return bid_multipliers2_binary80_98[r]
+ case 99: return bid_multipliers2_binary80_99[r]
+ case 100: return bid_multipliers2_binary80_100[r]
+ case 101: return bid_multipliers2_binary80_101[r]
+ case 102: return bid_multipliers2_binary80_102[r]
+ case 103: return bid_multipliers2_binary80_103[r]
+ case 104: return bid_multipliers2_binary80_104[r]
+ case 105: return bid_multipliers2_binary80_105[r]
+ case 106: return bid_multipliers2_binary80_106[r]
+ case 107: return bid_multipliers2_binary80_107[r]
+ case 108: return bid_multipliers2_binary80_108[r]
+ case 109: return bid_multipliers2_binary80_109[r]
+ case 110: return bid_multipliers2_binary80_110[r]
+ case 111: return bid_multipliers2_binary80_111[r]
+ case 112: return bid_multipliers2_binary80_112[r]
+ case 113: return bid_multipliers2_binary80_113[r]
+ case 114: return bid_multipliers2_binary80_114[r]
+ case 115: return bid_multipliers2_binary80_115[r]
+ case 116: return bid_multipliers2_binary80_116[r]
+ case 117: return bid_multipliers2_binary80_117[r]
+ case 118: return bid_multipliers2_binary80_118[r]
+ case 119: return bid_multipliers2_binary80_119[r]
+ case 120: return bid_multipliers2_binary80_120[r]
+ case 121: return bid_multipliers2_binary80_121[r]
+ case 122: return bid_multipliers2_binary80_122[r]
+ case 123: return bid_multipliers2_binary80_123[r]
+ case 124: return bid_multipliers2_binary80_124[r]
+ case 125: return bid_multipliers2_binary80_125[r]
+ case 126: return bid_multipliers2_binary80_126[r]
+ case 127: return bid_multipliers2_binary80_127[r]
+ case 128: return bid_multipliers2_binary80_128[r]
+ case 129: return bid_multipliers2_binary80_129[r]
+ case 130: return bid_multipliers2_binary80_130[r]
+ case 131: return bid_multipliers2_binary80_131[r]
+ case 132: return bid_multipliers2_binary80_132[r]
+ case 133: return bid_multipliers2_binary80_133[r]
+ case 134: return bid_multipliers2_binary80_134[r]
+ case 135: return bid_multipliers2_binary80_135[r]
+ case 136: return bid_multipliers2_binary80_136[r]
+ case 137: return bid_multipliers2_binary80_137[r]
+ case 138: return bid_multipliers2_binary80_138[r]
+ case 139: return bid_multipliers2_binary80_139[r]
+ case 140: return bid_multipliers2_binary80_140[r]
+ case 141: return bid_multipliers2_binary80_141[r]
+ case 142: return bid_multipliers2_binary80_142[r]
+ case 143: return bid_multipliers2_binary80_143[r]
+ case 144: return bid_multipliers2_binary80_144[r]
+ case 145: return bid_multipliers2_binary80_145[r]
+ case 146: return bid_multipliers2_binary80_146[r]
+ case 147: return bid_multipliers2_binary80_147[r]
+ case 148: return bid_multipliers2_binary80_148[r]
+ case 149: return bid_multipliers2_binary80_149[r]
+ case 150: return bid_multipliers2_binary80_150[r]
+ case 151: return bid_multipliers2_binary80_151[r]
+ case 152: return bid_multipliers2_binary80_152[r]
+ case 153: return bid_multipliers2_binary80_153[r]
+ case 154: return bid_multipliers2_binary80_154[r]
+ case 155: return bid_multipliers2_binary80_155[r]
+ case 156: return bid_multipliers2_binary80_156[r]
+ case 157: return bid_multipliers2_binary80_157[r]
+ case 158: return bid_multipliers2_binary80_158[r]
+ case 159: return bid_multipliers2_binary80_159[r]
+ case 160: return bid_multipliers2_binary80_160[r]
+ case 161: return bid_multipliers2_binary80_161[r]
+ case 162: return bid_multipliers2_binary80_162[r]
+ case 163: return bid_multipliers2_binary80_163[r]
+ case 164: return bid_multipliers2_binary80_164[r]
+ case 165: return bid_multipliers2_binary80_165[r]
+ case 166: return bid_multipliers2_binary80_166[r]
+ case 167: return bid_multipliers2_binary80_167[r]
+ case 168: return bid_multipliers2_binary80_168[r]
+ case 169: return bid_multipliers2_binary80_169[r]
+ case 170: return bid_multipliers2_binary80_170[r]
+ case 171: return bid_multipliers2_binary80_171[r]
+ case 172: return bid_multipliers2_binary80_172[r]
+ case 173: return bid_multipliers2_binary80_173[r]
+ case 174: return bid_multipliers2_binary80_174[r]
+ case 175: return bid_multipliers2_binary80_175[r]
+ case 176: return bid_multipliers2_binary80_176[r]
+ case 177: return bid_multipliers2_binary80_177[r]
+ case 178: return bid_multipliers2_binary80_178[r]
+ case 179: return bid_multipliers2_binary80_179[r]
+ case 180: return bid_multipliers2_binary80_180[r]
+ case 181: return bid_multipliers2_binary80_181[r]
+ case 182: return bid_multipliers2_binary80_182[r]
+ case 183: return bid_multipliers2_binary80_183[r]
+ case 184: return bid_multipliers2_binary80_184[r]
+ case 185: return bid_multipliers2_binary80_185[r]
+ case 186: return bid_multipliers2_binary80_186[r]
+ case 187: return bid_multipliers2_binary80_187[r]
+ case 188: return bid_multipliers2_binary80_188[r]
+ case 189: return bid_multipliers2_binary80_189[r]
+ case 190: return bid_multipliers2_binary80_190[r]
+ case 191: return bid_multipliers2_binary80_191[r]
+ case 192: return bid_multipliers2_binary80_192[r]
+ case 193: return bid_multipliers2_binary80_193[r]
+ case 194: return bid_multipliers2_binary80_194[r]
+ case 195: return bid_multipliers2_binary80_195[r]
+ case 196: return bid_multipliers2_binary80_196[r]
+ case 197: return bid_multipliers2_binary80_197[r]
+ case 198: return bid_multipliers2_binary80_198[r]
+ default: preconditionFailure("Index out of range")
+ }
+ }
+}
+
+private let bid_multipliers2_binary80_0: [UInt256] = [
+UInt256(2627592000557903659, 11692571226397904350, 7278732838564269635, 6207925045053820451),
+UInt256(3284490000697379574, 10004028014569992533, 18321788085060112852, 3148220287889887660),
+UInt256(4105612500871724468, 3281662981357714859, 9067177051042977353, 3935275359862359575),
+UInt256(2566007813044827792, 11274411400203347595, 3361142647688166893, 13988762145982444495),
+UInt256(3207509766306034740, 14093014250254184493, 18036486364892372329, 3650894627195891906),
+UInt256(4009387207882543425, 17616267812817730617, 8710549900833301699, 9175304302422252786),
+UInt256(2505867004926589641, 4092638355369999779, 16973308734089283322, 3428722179800214040),
+UInt256(3132333756158237051, 9727483962639887628, 16604949899184216248, 13509274761605043357),
+UInt256(3915417195197796314, 7547668934872471632, 2309443300270718694, 16886593452006304197),
+UInt256(2447135746998622696, 9328979102722682674, 1443402062669199184, 5942434889076552219),
+UInt256(3058919683748278370, 11661223878403353342, 11027624615191274788, 7428043611345690274),
+UInt256(3823649604685347963, 5353157811149415870, 4561158732134317677, 9285054514182112842),
+UInt256(2389781002928342477, 1039880622754690966, 16685782262866112260, 8109002080577514479),
+UInt256(2987226253660428096, 5911536796870751612, 11633855791727864517, 10136252600721893098),
+UInt256(3734032817075535120, 7389420996088439515, 14542319739659830646, 17282001769329754276),
+UInt256(2333770510672209450, 4618388122555274697, 6783106828073700202, 6189565087403708519),
+UInt256(2917213138340261812, 14996357190048869179, 13090569553519513156, 16960328396109411457),
+UInt256(3646516422925327266, 298702413851534858, 11751525923472003542, 2753666421427212705),
+UInt256(4558145528656659082, 9596750054169194381, 5466035367485228619, 12665455063638791689),
+UInt256(2848840955410411926, 10609654802283134392, 5722115113891961839, 5610066405560550854),
+UInt256(3561051194263014908, 4038696465999142182, 7152643892364952299, 2400896988523300663),
+UInt256(4451313992828768635, 5048370582498927727, 18164176902310966181, 16836179290936289540),
+UInt256(2782071245517980397, 849388604848135877, 18270139591585435719, 12828455066048874915),
+UInt256(3477589056897475496, 5673421774487557751, 9002616434199630937, 11423882814133705740),
+UInt256(4346986321121844370, 7091777218109447189, 6641584524322150768, 444795462384968462),
+UInt256(2716866450701152731, 9044046779745792397, 6456833336915038182, 277997163990605289),
+UInt256(3396083063376440914, 6693372456254852592, 12682727689571185631, 9570868491843032419),
+UInt256(4245103829220551142, 17590087607173341548, 15853409611963982039, 7351899596376402620),
+UInt256(2653189893262844464, 6382118736055950564, 685008970622712966, 11512466275376333494),
+UInt256(3316487366578555580, 7977648420069938205, 856261213278391208, 5167210807365641059),
+UInt256(4145609208223194475, 9972060525087422756, 5682012535025376914, 6459013509207051324),
+UInt256(2591005755139496547, 3926694818965945270, 12774629871245636379, 8648569461681794981),
+UInt256(3238757193924370684, 296682505280043684, 6744915302202269666, 6199025808674855823),
+UInt256(4048446492405463355, 370853131600054605, 8431144127752837082, 16972154297698345586),
+UInt256(2530279057753414596, 16372684271745891792, 7575308089059217128, 15219282454488853896),
+UInt256(3162848822191768246, 2019111265972813124, 9469135111324021411, 577358994401515753),
+UInt256(3953561027739710307, 11747261119320792213, 11836418889155026763, 14556756798284058404),
+UInt256(2470975642337318942, 5036195190361801181, 9703604814935585679, 6792129989713842550),
+UInt256(3088719552921648677, 15518616024807027284, 16741192037096870003, 3878476468714915284),
+UInt256(3860899441152060847, 5563211975726620394, 2479745972661535888, 236409567466256201),
+UInt256(2413062150720038029, 10394536512470219602, 6161527251340847834, 147755979666410126),
+UInt256(3016327688400047536, 17604856659015162406, 16925281101030835600, 9408067011437788465),
+UInt256(3770409610500059421, 3559326750059401392, 11933229339433768692, 11760083764297235581),
+UInt256(2356506006562537138, 4530422228000819822, 7458268337146105432, 16573424389540548046),
+UInt256(2945632508203171422, 14886399821855800586, 99463384577855983, 2270036413216133442),
+UInt256(3682040635253964278, 9384627740464974924, 9347701267577095786, 16672603571802330514),
+UInt256(4602550794067455348, 2507412638726442847, 11684626584471369733, 11617382427898137335),
+UInt256(2876594246292159592, 10790504936058802587, 14220420642935687939, 9566707026650029786),
+UInt256(3595742807865199490, 13488131170073503234, 13163839785242222020, 7346697764885149329),
+UInt256(4494678509831499363, 7636791925737103235, 7231427694698001717, 9183372206106436661),
+]
+
+private let bid_multipliers2_binary80_1: [UInt256] = [
+UInt256(2809174068644687102, 2467151944371995570, 2213799299972557121, 8045450638030216865),
+UInt256(3511467585805858877, 12307311967319770270, 11990621161820472209, 14668499315965158985),
+UInt256(4389334482257323597, 1549081903867549126, 5764904415420814454, 4500566089674285020),
+UInt256(2743334051410827248, 3274019199130912155, 17438123314920172745, 16647911861328591849),
+UInt256(3429167564263534060, 4092523998913640194, 17185968125222828028, 6974831771378576100),
+UInt256(4286459455329417575, 5115654998642050243, 12259088119673759227, 8718539714223220124),
+UInt256(2679037159580885984, 10114813401792363258, 5356087065582405565, 3143244312175818626),
+UInt256(3348796449476107480, 12643516752240454072, 15918480868832782764, 8540741408647161186),
+UInt256(4185995561845134350, 15804395940300567591, 1451357012331426839, 10675926760808951483),
+UInt256(2616247226153208969, 5266061444260466840, 7824627160348223630, 13589983253146676533),
+UInt256(3270309032691511211, 11194262823752971454, 9780783950435279538, 7764107029578569858),
+UInt256(4087886290864389014, 9381142511263826414, 3002607901189323615, 481761750118436514),
+UInt256(2554928931790243134, 1251528051112503604, 15711687993525490971, 7218630121465104678),
+UInt256(3193661164737803917, 10787782100745405314, 1192865918197312098, 4411601633403992943),
+UInt256(3992076455922254896, 18096413644359144546, 10714454434601415930, 14737874078609766987),
+UInt256(2495047784951409310, 11310258527724465341, 11308220040053272860, 13822857317558492271),
+UInt256(3118809731189261638, 4914451122800805869, 300216994784427363, 17278571646948115338),
+UInt256(3898512163986577047, 15366435940355783144, 4986957261907922108, 16986528540257756269),
+UInt256(2436570102491610654, 16521551490363446321, 3116848288692451318, 1393208300806321860),
+UInt256(3045712628114513318, 11428567326099532093, 8507746379292952051, 10964882412862678133),
+UInt256(3807140785143141648, 5062337120769639308, 15246368992543577968, 9094416997650959762),
+UInt256(2379462990714463530, 3163960700481024568, 305608583484960422, 5684010623531849852),
+UInt256(2974328738393079412, 13178322912456056518, 382010729356200527, 16328385316269588122),
+UInt256(3717910922991349265, 16472903640570070647, 9700885448550026467, 15798795626909597249),
+UInt256(2323694326869593291, 3378035747715212298, 12980582432984848398, 7568404257604804329),
+UInt256(2904617908586991613, 18057602739926179085, 7002356004376284690, 237133285151229603),
+UInt256(3630772385733739517, 8736945369625560144, 13364631023897743766, 9519788643293812811),
+UInt256(4538465482167174396, 15532867730459338084, 16705788779872179708, 2676363767262490206),
+UInt256(2836540926354483998, 484670294682310495, 1217745950565336509, 10896099391393832187),
+UInt256(3545676157943104997, 9829209905207663926, 15357240493488834348, 18231810257669678138),
+UInt256(4432095197428881246, 16898198399936967812, 9973178580006267128, 4343018748377546056),
+UInt256(2770059498393050779, 5949687981533216978, 15456608649358692763, 2714386717735966285),
+UInt256(3462574372991313474, 2825423958489133319, 10097388774843590145, 17228041452452121568),
+UInt256(4328217966239141842, 12755151984966192457, 8010049950127099778, 7699993760282988248),
+UInt256(2705136228899463651, 12583656009031258189, 16535496264897907121, 9424182118604255559),
+UInt256(3381420286124329564, 11117883992861684833, 6834312275840220189, 16391913666682707353),
+UInt256(4226775357655411955, 13897354991077106041, 13154576363227663141, 6654834028071220479),
+UInt256(2641734598534632472, 6380003860209497324, 1304081199376207607, 6465114276758206752),
+UInt256(3302168248168290590, 7975004825261871655, 1630101499220259509, 3469706827520370535),
+UInt256(4127710310210363238, 745383994722563760, 15872684929307488098, 8948819552827851073),
+UInt256(2579818943881477023, 14300923051983766062, 9920428080817180061, 10204698238944794825),
+UInt256(3224773679851846279, 13264467796552319674, 3177163064166699268, 17367558817108381435),
+UInt256(4030967099814807849, 11968898727263011688, 13194825867063149894, 3262704447675925178),
+UInt256(2519354437384254906, 563032676898300449, 8246766166914468683, 15874248335079616948),
+UInt256(3149193046730318632, 9927162882977651369, 14920143727070473758, 15231124400422133281),
+UInt256(3936491308412898290, 12408953603722064212, 4815121603555928486, 9815533463672890793),
+UInt256(2460307067758061431, 12367282020753678036, 12232823039077231112, 1523022396368168842),
+UInt256(3075383834697576789, 10847416507514709641, 15291028798846538890, 1903777995460211052),
+UInt256(3844229793371970986, 18170956652820774956, 5278727943276009900, 11603094531180039623),
+UInt256(2402643620857481866, 15968533926440372251, 12522577001402281995, 16475306118842300573),
+]
+
+private let bid_multipliers2_binary80_2: [UInt256] = [
+UInt256(3003304526071852333, 10737295371195689506, 11041535233325464590, 15982446630125487812),
+UInt256(3754130657589815416, 18033305232421999787, 4578547004802054930, 10754686250802083957),
+UInt256(2346331660993634635, 11270815770263749867, 555748868787590379, 11333364925178690377),
+UInt256(2932914576242043294, 9476833694402299429, 14529744141266651686, 9555020138045975067),
+UInt256(3666143220302554118, 2622670081148098479, 4327122121301150896, 2720403135702693026),
+UInt256(4582679025378192647, 12501709638289898907, 797216633199050716, 3400503919628366282),
+UInt256(2864174390861370404, 14731097551572268672, 16639161460245264361, 11348686986622504735),
+UInt256(3580217988576713005, 18413871939465335841, 2352207751597028836, 350800677995967206),
+UInt256(4475272485720891257, 9182281869049506089, 7551945707923673949, 438500847494959008),
+UInt256(2797045303575557035, 17268141214224411065, 16249181113520765978, 2579906038898043332),
+UInt256(3496306629469446294, 16973490499353125928, 6476418336618793760, 12448254585477329973),
+UInt256(4370383286836807868, 11993491087336631602, 8095522920773492200, 15560318231846662466),
+UInt256(2731489554273004917, 16719303966440170559, 9671387843910820529, 9725198894904164041),
+UInt256(3414361942841256147, 7064071902768049487, 7477548786461137757, 16768184637057592956),
+UInt256(4267952428551570184, 4218403860032673955, 4735249964649034293, 7125172741039827482),
+UInt256(2667470267844731365, 2636502412520421222, 653688218691952481, 6759075972363586129),
+UInt256(3334337834805914206, 7907314034077914431, 10040482310219716409, 13060530983881870565),
+UInt256(4167922293507392758, 660770505742617231, 7938916869347257608, 2490605674570174494),
+UInt256(2604951433442120473, 14248039621371299481, 11879352070983117861, 1556628546606359059),
+UInt256(3256189291802650592, 3974991471431960640, 1014132033446733614, 6557471701685336727),
+UInt256(4070236614753313240, 4968739339289950800, 1267665041808417017, 17420211663961446717),
+UInt256(2543897884220820775, 3105462087056219250, 792290651130260636, 3970103262334822342),
+UInt256(3179872355276025968, 17716885664102437774, 10213735350767601603, 4962629077918527928),
+UInt256(3974840444095032461, 3699363006418495602, 3543797151604726196, 1591600328970772006),
+UInt256(2484275277559395288, 4617944888225253703, 6826559238180341776, 10218122242461508312),
+UInt256(3105344096949244110, 5772431110281567129, 3921513029298039316, 12772652803076885390),
+UInt256(3881680121186555137, 16438910924706734719, 9513577305049937049, 15965816003846106737),
+UInt256(2426050075741596961, 3356790300300627343, 12863514843297292512, 3061105974762734855),
+UInt256(3032562594676996201, 8807673893803172083, 11467707535694227736, 3826382468453418568),
+UInt256(3790703243346245251, 15621278385681353008, 9722948401190396766, 4782978085566773210),
+UInt256(2369189527091403282, 7457455981837151678, 6076842750743997978, 16824419358761396969),
+UInt256(2961486908864254103, 98447940441663789, 16819425475284773281, 11807152161596970403),
+UInt256(3701858636080317628, 13958117980834243449, 7189223788823802890, 923882146714049291),
+UInt256(2313661647550198517, 17947195774876177963, 16022479914083346566, 5189112360123668711),
+UInt256(2892077059437748147, 8598936663313058742, 15416413874176795303, 15709762487009361697),
+UInt256(3615096324297185184, 6136984810713935524, 10047145305866218321, 15025517090334314217),
+UInt256(4518870405371481480, 7671231013392419405, 12558931632332772902, 4946838307635729059),
+UInt256(2824294003357175925, 4794519383370262128, 10155175279421677015, 16926831997554494374),
+UInt256(3530367504196469906, 10604835247640215564, 12693969099277096269, 16546853978515730063),
+UInt256(4412959380245587383, 4032672022695493647, 15867461374096370337, 6848509417862498867),
+UInt256(2758099612653492114, 9437949041825765385, 16834692386451313316, 15809533432232531552),
+UInt256(3447624515816865143, 2574064265427430924, 7208307427781977934, 1315172716581112824),
+UInt256(4309530644771081428, 17052638387066452367, 9010384284727472417, 10867337932581166838),
+UInt256(2693456652981925893, 1434526955061756921, 12549019205595752116, 18321301253931699034),
+UInt256(3366820816227407366, 6404844712254584056, 1851215951712526434, 4454882493705072176),
+UInt256(4208526020284259207, 17229427927173005878, 2314019939640658042, 14791975153986116028),
+UInt256(2630328762677662004, 17685921482124210529, 15281320517557574988, 13856670489668710422),
+UInt256(3287910953347077506, 3660657778945711546, 5266592591664805023, 17320838112085888027),
+UInt256(4109888691683846882, 13799194260536915240, 15806612776435782087, 17039361621679972130),
+UInt256(2568680432302404301, 13236182431262959929, 9879132985272363804, 17567130041191064437),
+]
+
+private let bid_multipliers2_binary80_3: [UInt256] = [
+UInt256(3210850540378005377, 2710169983796536199, 16960602250017842660, 3512168477779278930),
+UInt256(4013563175472506721, 7999398498173058153, 16589066794094915421, 4390210597224098663),
+UInt256(2508476984670316700, 16528839107426631106, 3450637718668240282, 5049724632478755617),
+UInt256(3135596230837895876, 2214304810573737266, 13536669185190076160, 15535527827453220329),
+UInt256(3919495288547369845, 2767881013217171583, 7697464444632819393, 972665710606973795),
+UInt256(2449684555342106153, 4035768642474426191, 11728444305536593976, 12137131115197828382),
+UInt256(3062105694177632691, 9656396821520420643, 10048869363493354566, 15171413893997285477),
+UInt256(3827632117722040864, 7458810008473137900, 7949400685939305304, 9740895330641831038),
+UInt256(2392270073576275540, 4661756255295711187, 14191747465566841623, 6088059581651144399),
+UInt256(2990337591970344425, 5827195319119638984, 13127998313531164125, 2998388458636542595),
+UInt256(3737921989962930531, 11895680167326936634, 16409997891913955156, 8359671591723066147),
+UInt256(2336201243726831582, 5128957095365641444, 14867934700873609876, 14448166781681692150),
+UInt256(2920251554658539477, 15634568406061827614, 138174302382460729, 18060208477102115188),
+UInt256(3650314443323174347, 5708152452295120805, 9396089914832851720, 8740202541095480273),
+UInt256(4562893054153967934, 2523504546941513102, 16356798411968452554, 10925253176369350341),
+UInt256(2851808158846229958, 15412248397120609401, 5611312989052894942, 11439969253658231867),
+UInt256(3564760198557787448, 10041938459545985943, 11625827254743506582, 5076589530218014026),
+UInt256(4455950248197234310, 12552423074432482429, 9920598050001995323, 15569108949627293340),
+UInt256(2784968905123271444, 3233578403092913614, 8506216790464941029, 7424850084303364386),
+UInt256(3481211131404089305, 4041973003866142018, 1409398951226400478, 13892748623806593386),
+UInt256(4351513914255111631, 9664152273260065426, 10985120725887776406, 8142563742903465924),
+UInt256(2719696196409444769, 12957624198428622747, 11477386472107248158, 477416320887278299),
+UInt256(3399620245511805962, 2361972192753614722, 9735047071706672293, 9820142437963873681),
+UInt256(4249525306889757452, 12175837277796794211, 2945436802778564558, 16886864065882230006),
+UInt256(2655953316806098407, 16833270335477772189, 17981799066232460513, 5942604022749005850),
+UInt256(3319941646007623009, 16429901900919827333, 8642190777508411929, 12039941046863645216),
+UInt256(4149927057509528762, 6702319320867620454, 15414424490312902816, 1214868253297392808),
+UInt256(2593704410943455476, 8800635593969650688, 5022329288018176356, 759292658310870505),
+UInt256(3242130513679319345, 11000794492462063360, 6277911610022720445, 949115822888588131),
+UInt256(4052663142099149181, 18362679134004967104, 7847389512528400556, 5798080797038123068),
+UInt256(2532914463811968238, 13782517467966798392, 4904618445330250347, 12847172535003602726),
+UInt256(3166143079764960298, 8004774798103722182, 6130773056662812934, 11447279650327115503),
+UInt256(3957678849706200373, 782596460774876919, 16886838357683291976, 5085727526054118571),
+UInt256(2473549281066375233, 2794965797197992026, 17471803001193139341, 3178579703783824107),
+UInt256(3091936601332969041, 8105393264924877937, 12616381714636648368, 8584910648157168037),
+UInt256(3864920751666211301, 14743427599583485326, 1935419088013646748, 10731138310196460047),
+UInt256(2415575469791382063, 11520485258953372280, 15044694985290692929, 15930333480727563337),
+UInt256(3019469337239227579, 9788920555264327447, 359124657903814546, 6077858795627290460),
+UInt256(3774336671549034474, 7624464675653021404, 14283963877661931894, 16820695531388888882),
+UInt256(2358960419718146546, 9376976440710526281, 18150849460393483242, 5901248688690667648),
+UInt256(2948700524647683183, 2497848514033382044, 8853503770209690340, 16599932897718110367),
+UInt256(3685875655809603978, 16957368697823891267, 11066879712762112926, 2303172048438086343),
+UInt256(4607344569762004973, 11973338835425088276, 9221913622525253253, 12102337097402383737),
+UInt256(2879590356101253108, 9789179781354374124, 14987068050933059091, 9869803695090183788),
+UInt256(3599487945126566385, 12236474726692967656, 287090989956772248, 7725568600435341830),
+UInt256(4499359931408207982, 1460535353084045858, 358863737445965310, 9656960750544177288),
+UInt256(2812099957130129988, 14747892650959692373, 4835975854331116223, 1423914450662722901),
+UInt256(3515124946412662485, 18434865813699615466, 10656655836341283182, 15614951118610567338),
+UInt256(4393906183015828107, 9208524211842355621, 4097447758571828170, 10295316861408433365),
+UInt256(2746191364384892567, 3449484623187778311, 4866747858321086558, 11046259056807658757),
+]
+
+private let bid_multipliers2_binary80_4: [UInt256] = [
+UInt256(3432739205481115708, 18146913834266886601, 1471748804473970294, 4584451784154797638),
+UInt256(4290924006851394636, 4236898219124056635, 6451372024019850771, 14953936767048272856),
+UInt256(2681827504282121647, 11871433423807311205, 1726264505798712780, 7040367470191476583),
+UInt256(3352284380352652059, 10227605761331751102, 6769516650675778879, 8800459337739345729),
+UInt256(4190355475440815074, 8172821183237300973, 17685267850199499407, 6388888153746794257),
+UInt256(2618972172150509421, 9719699257950701012, 13359135415588381081, 10910584123732828267),
+UInt256(3273715215188136776, 16761310090865764169, 16698919269485476351, 18249916173093423237),
+UInt256(4092144018985170971, 2504893539872653596, 7038591031574681727, 18200709197939391142),
+UInt256(2557590011865731856, 17706459526916266161, 13622491431588951887, 18292972276353201320),
+UInt256(3196987514832164821, 3686330334935781086, 3193056234204026147, 18254529327014113746),
+UInt256(3996234393540206026, 9219598937097114261, 13214692329609808492, 18206475640340254279),
+UInt256(2497646495962628766, 10373935354113084317, 10565025715219824260, 2155675238357883116),
+UInt256(3122058119953285958, 3744047155786579588, 17817968162452168229, 2694594047947353895),
+UInt256(3902572649941607447, 13903430981588000294, 3825716129355658670, 7979928578361580273),
+UInt256(2439107906213504654, 15607173391133582039, 16226130636129450381, 375769343048599767),
+UInt256(3048884882766880818, 10285594702062201741, 15670977276734425072, 5081397697238137612),
+UInt256(3811106103458601023, 3633621340722976369, 5753663540635867628, 6351747121547672015),
+UInt256(2381941314661625639, 9188542365592942086, 15125254758965887027, 13193213987822070818),
+UInt256(2977426643327032049, 6873991938563789704, 9683196411852582976, 11879831466350200618),
+UInt256(3721783304158790061, 13204175941632125034, 12103995514815728720, 14849789332937750772),
+UInt256(2326114565099243788, 10558452972733772098, 12176683215187218354, 9281118333086094233),
+UInt256(2907643206374054735, 13198066215917215123, 5997481982129247135, 2378025879502841983),
+UInt256(3634554007967568419, 11885896751469131000, 2885166459234171014, 16807590404660716191),
+UInt256(4543192509959460524, 10245684920909025846, 3606458074042713768, 11786115968971119430),
+UInt256(2839495318724662827, 15626925112422916961, 16089094351558859817, 7366322480606949644),
+UInt256(3549369148405828534, 14921970372101258298, 6276309884166411059, 13819589119186074959),
+UInt256(4436711435507285668, 9429090928271797064, 17068759392062789632, 12662800380555205795),
+UInt256(2772944647192053542, 15116553867024648973, 10667974620039243520, 7914250237847003622),
+UInt256(3466180808990066928, 9672320296926035408, 17946654293476442304, 9892812797308754527),
+UInt256(4332726011237583660, 12090400371157544261, 3986573793136001264, 12366015996635943159),
+UInt256(2707953757023489787, 16779872268828240971, 4797451629923694742, 7728759997897464474),
+UInt256(3384942196279362234, 16363154317607913310, 1385128518977230524, 437577960517054785),
+UInt256(4231177745349202793, 11230570860155115829, 10954782685576313963, 546972450646318481),
+UInt256(2644486090843251746, 101577759955865537, 9152582187698890178, 16482758846149806715),
+UInt256(3305607613554064682, 9350344236799607729, 16052413753051000627, 11380076520832482585),
+UInt256(4132009516942580853, 2464558259144733854, 6230459136031587072, 9613409632613215328),
+UInt256(2582505948089113033, 3846191921179152610, 17729095015301905632, 6008381020383259580),
+UInt256(3228132435111391291, 9419425919901328667, 12937996732272606232, 7510476275479074475),
+UInt256(4035165543889239114, 7162596381449272930, 11560809896913369886, 9388095344348843093),
+UInt256(2521978464930774446, 9088308756833183485, 11837192203998244083, 1255873571790639030),
+UInt256(3152473081163468058, 2137013909186703549, 961432199715641391, 15404900020020462499),
+UInt256(3940591351454335072, 11894639423338155244, 5813476268071939643, 14644439006598190219),
+UInt256(2462869594658959420, 7434149639586347027, 12856794704399738085, 6846931369910174935),
+UInt256(3078586993323699275, 9292687049482933784, 11459307362072284702, 13170350230815106573),
+UInt256(3848233741654624094, 7004172793426279326, 14324134202590355878, 7239565751664107408),
+UInt256(2405146088534140058, 18212666051173588291, 4340897858191584519, 18359786650072230842),
+UInt256(3006432610667675073, 13542460527112209556, 814436304312092745, 18338047294162900649),
+UInt256(3758040763334593842, 3093017603608098233, 1018045380390115932, 9087501062421462099),
+UInt256(2348775477084121151, 6544822020682449299, 12165493408812292217, 14903060200868189620),
+UInt256(2935969346355151439, 3569341507425673720, 10595180742587977368, 4793767195803073313),
+]
+
+private let bid_multipliers2_binary80_5: [UInt256] = [
+UInt256(3669961682943939298, 18296734939564255862, 13243975928234971710, 5992208994753841641),
+UInt256(4587452103679924123, 13647546637600544020, 7331597873438938829, 16713633280297077859),
+UInt256(2867157564799952577, 6223873639286646060, 13805620707754112576, 12751863809399367614),
+UInt256(3583946955999940721, 12391528067535695479, 17257025884692640720, 15939829761749209517),
+UInt256(4479933694999925902, 1654352029137455637, 16959596337438412997, 1478043128476960281),
+UInt256(2799958559374953688, 14869028073493073485, 12905590720112702075, 3229619964511794128),
+UInt256(3499948199218692111, 139541018156790241, 2296930344858713881, 17872083010921906371),
+UInt256(4374935249023365138, 14009484327978151513, 7482848949500780256, 8505045708370219252),
+UInt256(2734334530639603211, 13367613723413732599, 16205995639506457420, 5315653567731387033),
+UInt256(3417918163299504014, 12097831135839777845, 15645808530955683871, 6644566959664233791),
+UInt256(4272397704124380018, 5898916882944946499, 5722202608412441127, 3694022681152904334),
+UInt256(2670248565077737511, 8298509070267979466, 1270533621044081752, 9226293203361647065),
+UInt256(3337810706347171889, 5761450319407586428, 10811539063159877998, 11532866504202058831),
+UInt256(4172263382933964861, 11813498917686870939, 13514423828949847498, 5192711093397797731),
+UInt256(2607664614333728038, 9689279832767988289, 6140671883879960734, 7857130451801011486),
+UInt256(3259580767917160048, 2888227754105209553, 12287525873277338822, 598041027896488549),
+UInt256(4074475959896450060, 3610284692631511942, 1524349286314509815, 9970923321725386495),
+UInt256(2546547474935281287, 11479799969749470771, 14787776359228732346, 13149356103719448415),
+UInt256(3183184343669101609, 9738063943759450560, 13873034430608527529, 7213323092794534711),
+UInt256(3978980429586377011, 16784265948126701104, 17341293038260659411, 13628339884420556293),
+UInt256(2486862768491485632, 8184323208365494238, 10838308148912912132, 6211869418549153731),
+UInt256(3108578460614357040, 10230404010456867798, 4324513149286364357, 7764836773186442164),
+UInt256(3885723075767946300, 12788005013071084747, 14629013473462731254, 14317731984910440609),
+UInt256(2428576922354966437, 17215875170024203775, 6837290411700513082, 4336896472141637477),
+UInt256(3035721152943708047, 7684785907248091007, 3934926996198253448, 14644492627031822654),
+UInt256(3794651441179635059, 4994296365632725855, 306972726820428906, 18305615783789778317),
+UInt256(2371657150737271912, 815592219306759707, 7109386981903849922, 16052695883295999352),
+UInt256(2964571438421589890, 1019490274133449634, 4275047708952424499, 10842497817265223382),
+UInt256(3705714298026987362, 10497734879521587850, 14567181673045306432, 8941436253154141324),
+UInt256(2316071436266867101, 11172770318128380310, 13716174564080704424, 5588397658221338327),
+UInt256(2895089295333583877, 130904842378311676, 7921846168246104722, 6985497072776672909),
+UInt256(3618861619166979846, 4775317071400277499, 9902307710307630902, 17955243377825616944),
+UInt256(4523577023958724807, 15192518376105122682, 7766198619457150724, 13220682185427245372),
+UInt256(2827235639974203004, 16412853012706783532, 9465560155588107106, 17486298402746804166),
+UInt256(3534044549967753756, 2069322192173927799, 11831950194485133883, 12634500966578729399),
+UInt256(4417555687459692195, 2586652740217409749, 10178251724679029450, 11181440189796023845),
+UInt256(2760972304662307621, 17757559027131738757, 8667250337138087358, 11600086137049902807),
+UInt256(3451215380827884527, 8361890728632509734, 15445748939849997102, 5276735634457602701),
+UInt256(4314019226034855659, 5840677392363249264, 10083814137957720569, 15819291579926779184),
+UInt256(2696262016271784787, 1344580361013336838, 6302383836223575356, 2969528209813155134),
+UInt256(3370327520339730983, 15515783506548834759, 17101351832134245003, 3711910262266443918),
+UInt256(4212909400424663729, 14783043364758655545, 16765003771740418350, 28201809405666993),
+UInt256(2633068375265414831, 2321873075333077860, 3560598329696679612, 13852684186160705583),
+UInt256(3291335469081768538, 16737399399448511037, 4450747912120849515, 17315855232700881978),
+UInt256(4114169336352210673, 11698377212455862988, 10175120908578449798, 17033133022448714569),
+UInt256(2571355835220131671, 393956730143832511, 15582822604716306932, 6034022120603058702),
+UInt256(3214194794025164588, 14327503967961954351, 14866842237467995761, 7542527650753823377),
+UInt256(4017743492531455735, 17909379959952442939, 13971866778407606797, 14039845581869667125),
+UInt256(2511089682832159834, 18110891502611358693, 6426573727291060296, 11080746497882235905),
+UInt256(3138862103540199793, 13415242341409422558, 12644903177541213274, 13850933122352794882),
+]
+
+private let bid_multipliers2_binary80_6: [UInt256] = [
+UInt256(3923577629425249742, 2933994871479614486, 6582756935071740785, 8090294366086217794),
+UInt256(2452236018390781088, 15668804849956922765, 17949281139702001702, 16585649024872355881),
+UInt256(3065295022988476361, 1139261988736601841, 8601543369345338416, 11508689244235669044),
+UInt256(3831618778735595451, 6035763504348140205, 15363615230109060924, 14385861555294586304),
+UInt256(2394761736709747157, 1466509181003893676, 11908102528031857029, 18214535508913892248),
+UInt256(2993452170887183946, 6444822494682254999, 14885128160039821287, 8933111330860201598),
+UInt256(3741815213608979932, 17279400155207594557, 13994724181622388705, 6554703145147864094),
+UInt256(2338634508505612458, 1576253060149970790, 11052545622727686892, 15625904511785884819),
+UInt256(2923293135632015572, 11193688362042239296, 4592309991554832808, 1085636566022804407),
+UInt256(3654116419540019465, 13992110452552799120, 5740387489443541010, 1357045707528505509),
+UInt256(4567645524425024332, 3655080010408835188, 7175484361804426262, 10919679171265407694),
+UInt256(2854778452765640207, 11507797043360297800, 13708049762982542222, 2213113463613491905),
+UInt256(3568473065957050259, 9773060285772984346, 17135062203728177777, 11989763866371640689),
+UInt256(4460591332446312824, 7604639338788842529, 12195455717805446414, 1152146777682387150),
+UInt256(2787869582778945515, 4752899586743026581, 704630795987322152, 14555149791333655681),
+UInt256(3484836978473681894, 1329438465001395322, 5492474513411540594, 18193937239167069601),
+UInt256(4356046223092102367, 10885170118106519960, 16088965178619201551, 13519049512104061193),
+UInt256(2722528889432563979, 13720760351457656831, 10055603236637000969, 15366934972706120102),
+UInt256(3403161111790704974, 12539264420894683135, 7957818027368863308, 5373610660600486415),
+UInt256(4253951389738381218, 6450708489263578111, 5335586515783691231, 6717013325750608019),
+UInt256(2658719618586488261, 8643378824217124223, 10252270600005888875, 11115662356235211868),
+UInt256(3323399523233110326, 15415909548698793183, 8203652231579973190, 9282891926866626931),
+UInt256(4154249404041387908, 10046514899018715671, 5642879271047578584, 2380242871728507855),
+UInt256(2596405877525867442, 15502443848741473102, 10444328572045818471, 1487651794830317410),
+UInt256(3245507346907334303, 10154682774072065570, 3832038678202497280, 15694622798820060474),
+UInt256(4056884183634167879, 8081667449162694058, 14013420384607897409, 1171534424815523976),
+UInt256(2535552614771354924, 11968571183367765642, 13370073758807323784, 12261424061578172245),
+UInt256(3169440768464193655, 14960713979209707053, 7489220161654378922, 15326780076972715307),
+UInt256(3961800960580242069, 14089206455584745912, 13973211220495361557, 9935103059361118325),
+UInt256(2476125600362651293, 11111597043954160147, 8733257012809600973, 8515282421314392905),
+UInt256(3095157000453314117, 54438249660536472, 6304885247584613312, 15255789045070379036),
+UInt256(3868946250566642646, 4679733830503058494, 7881106559480766641, 622992232628422178),
+UInt256(2418091406604151653, 16759891699346575271, 314005581248091246, 11918585191461233622),
+UInt256(3022614258255189567, 7114806568901055376, 14227565031842277770, 5674859452471766219),
+UInt256(3778267822818986959, 4281822192698931316, 17784456289802847212, 16316946352444483582),
+UInt256(2361417389261866849, 9593667898077913929, 1891913144272003700, 974719433423026431),
+UInt256(2951771736577333561, 16603770891024780315, 6976577448767392529, 1218399291778783038),
+UInt256(3689714670721666952, 6919655558498811682, 4109035792531852757, 6134685133150866702),
+UInt256(2306071669201041845, 4324784724061757301, 7179833388759795877, 6140021217432985641),
+UInt256(2882589586501302306, 10017666923504584530, 13586477754377132750, 12286712540218619955),
+UInt256(3603236983126627883, 3298711617525954855, 7759725156116640130, 6135018638418499135),
+UInt256(4504046228908284853, 17958447577189607281, 5087970426718412258, 16892145334877899727),
+UInt256(2815028893067678033, 13529872744957198502, 14709196562767477421, 15169276852726075234),
+UInt256(3518786116334597542, 3077282875914334416, 9163123666604570969, 5126538010625430330),
+UInt256(4398482645418246927, 13069975631747693828, 11453904583255713711, 11019858531709175816),
+UInt256(2749051653386404329, 15086263797483390498, 16382062401389596877, 13804940609959316741),
+UInt256(3436314566733005412, 5022771691572074411, 11254205964882220289, 3421117707166982215),
+UInt256(4295393208416256765, 6278464614465093014, 9456071437675387457, 8888083152386115672),
+UInt256(2684620755260160478, 6229883393254377086, 1298358630119729256, 17084267016309792055),
+UInt256(3355775944075200597, 17010726278422747165, 10846320324504437379, 2908589696677688453),
+]
+
+private let bid_multipliers2_binary80_7: [UInt256] = [
+UInt256(4194719930094000747, 7428349792746270244, 18169586424057934627, 17470795176129274278),
+UInt256(2621699956308750467, 2336875611252724951, 2132619478181433334, 8613403975867102472),
+UInt256(3277124945385938083, 16756152569348069900, 16500832403008955380, 1543382932979102282),
+UInt256(4096406181732422604, 16333504693257699472, 2179296430051642609, 1929228666223877852),
+UInt256(2560253863582764128, 985068396431286362, 1362060268782276630, 12734982962458393418),
+UInt256(3200317329478455160, 1231335495539107952, 10925947372832621596, 6695356666218215964),
+UInt256(4000396661848068950, 1539169369423884940, 13657434216040776995, 8369195832772769955),
+UInt256(2500247913655043093, 14797038911172091799, 17759268421880261430, 2924904386269287270),
+UInt256(3125309892068803867, 4661240583682951037, 17587399508922938883, 12879502519691384895),
+UInt256(3906637365086004834, 1214864711176300893, 8149191330871509892, 11487692131186843215),
+UInt256(2441648353178753021, 5370976462912575962, 7399087591008387634, 16403179618846552818),
+UInt256(3052060441473441276, 11325406597068107857, 25487451905708735, 11280602486703415214),
+UInt256(3815075551841801595, 14156758246335134821, 4643545333309523823, 9489067089951881113),
+UInt256(2384422219901125997, 6542130894745765311, 5208058842532146341, 12848195958861007552),
+UInt256(2980527774876407496, 12789349636859594543, 1898387534737795023, 2225186893294095728),
+UInt256(3725659718595509370, 15986687046074493178, 16208042473704407490, 16616541671899783372),
+UInt256(2328537324122193356, 14603365422223946140, 14741712564492642585, 14997024563364752511),
+UInt256(2910671655152741695, 18254206777779932675, 18427140705615803232, 4911222648923776927),
+UInt256(3638339568940927119, 18206072453797527940, 18422239863592366136, 6139028311154721159),
+UInt256(4547924461176158899, 18145904548819522022, 4581055755780906054, 7673785388943401449),
+UInt256(2842452788235099312, 9035347333798507311, 16698217902645229996, 184429849662238002),
+UInt256(3553065985293874140, 11294184167248134139, 16261086359879149591, 230537312077797502),
+UInt256(4441332481617342675, 14117730209060167674, 15714671931421549084, 14123229695379410589),
+UInt256(2775832801010839172, 6517738371448910844, 14433355975565856081, 18050390596466907426),
+UInt256(3469791001263548965, 8147172964311138555, 18041694969457320102, 8727930190301470571),
+UInt256(4337238751579436206, 14795652223816311098, 17940432693394262224, 1686540701022062405),
+UInt256(2710774219737147629, 4635596621457806532, 15824456451798801794, 1054087938138789004),
+UInt256(3388467774671434536, 10406181795249646070, 1333826491038950626, 10540981959528262062),
+UInt256(4235584718339293170, 13007727244062057587, 10890655150653464091, 3952855412555551770),
+UInt256(2647240448962058231, 12741515545966173896, 4500816459944721105, 164691623633525904),
+UInt256(3309050561202572789, 11315208414030329466, 5626020574930901381, 4817550547969295284),
+UInt256(4136313201503215987, 308952462255748120, 16255897755518402534, 10633624203389007009),
+UInt256(2585195750939509991, 16333996353405700239, 10159936097199001584, 2034329108690741477),
+UInt256(3231494688674387489, 15805809423329737395, 8088234103071364076, 2542911385863426846),
+UInt256(4039368360842984362, 5922203723880008032, 5498606610411817191, 3178639232329283557),
+UInt256(2524605225526865226, 8313063345852392924, 3436629131507385744, 8904178547846884080),
+UInt256(3155756531908581533, 1167957145460715347, 4295786414384232180, 11130223184808605099),
+UInt256(3944695664885726916, 6071632450253282088, 758046999552902321, 13912778981010756374),
+UInt256(2465434790553579322, 13018142318263077113, 473779374720563951, 1777957835490640878),
+UInt256(3081793488191974153, 7049305860974070583, 5203910236828092842, 16057505349645464809),
+UInt256(3852241860239967691, 13423318344644976133, 1893201777607728149, 10848509650202055204),
+UInt256(2407651162649979807, 6083730956189416131, 3489094120218524045, 9086161540589978454),
+UInt256(3009563953312474759, 2992977676809382259, 18196425705555318768, 15969387944164860972),
+UInt256(3761954941640593448, 17576280151293891536, 18133846113516760557, 1514990856496524599),
+UInt256(2351221838525370905, 10985175094558682210, 11333653820947975348, 3252712294524021826),
+UInt256(2939027298156713631, 18343154886625740667, 4943695239330193377, 4065890368155027283),
+UInt256(3673784122695892039, 18317257589854787930, 1567933030735353817, 9694048978621172007),
+UInt256(4592230153369865049, 18284885968891097008, 11183288325273968079, 16729247241703852913),
+UInt256(2870143845856165656, 4510524702915853774, 6989555203296230049, 17373308553705989927),
+UInt256(3587679807320207070, 5638155878644817217, 17960316040975063370, 7881577636850323697),
+]
+
+private let bid_multipliers2_binary80_8: [UInt256] = [
+UInt256(4484599759150258837, 16271066885160797330, 8615336995936665501, 628600009208128813),
+UInt256(2802874849468911773, 12475259812439192283, 9996271640887803842, 2698718014968774460),
+UInt256(3503593561836139717, 1759016710266826642, 7883653532682366898, 12596769555565743883),
+UInt256(4379491952295174646, 6810456906260921207, 631194878998182815, 6522589907602404046),
+UInt256(2737182470184484153, 18091593621695239466, 7312025827014946115, 10994147719892584385),
+UInt256(3421478087730605192, 8779433971836885620, 18363404320623458452, 9130998631438342577),
+UInt256(4276847609663256490, 10974292464796107026, 4507511327069771449, 11413748289297928221),
+UInt256(2673029756039535306, 11470618808924954795, 7428880597845995060, 216063653170123282),
+UInt256(3341287195049419133, 5114901474301417686, 4674414728880105921, 270079566462654103),
+UInt256(4176608993811773916, 11005312861304160011, 15066390447954908209, 4949285476505705532),
+UInt256(2610380621132358697, 16101692575169875815, 7110651020758123678, 14622518468884535718),
+UInt256(3262975776415448372, 6292057663680181057, 4276627757520266694, 9054776049250893839),
+UInt256(4078719720519310465, 7865072079600226321, 9957470715327721272, 2095098024708841491),
+UInt256(2549199825324569040, 16444885095818611210, 17752634243148295555, 1309436265443025932),
+UInt256(3186499781655711301, 2109362296063712397, 12967420767080593635, 15471853387085946127),
+UInt256(3983124727069639126, 7248388888507028401, 2374217903568578332, 14728130715430044754),
+UInt256(2489452954418524453, 18365301110599056462, 13013101235798831217, 18428453733998553780),
+UInt256(3111816193023155567, 9121568332966656866, 7043004507893763214, 9200509112216028512),
+UInt256(3889770241278944459, 6790274397780933178, 18027127671721979826, 2277264353415259832),
+UInt256(2431106400799340287, 1938078489399389284, 15878640813253625295, 6034976239311925299),
+UInt256(3038883000999175358, 16257656167031400318, 1401556942857480003, 2932034280712518720),
+UInt256(3798603751248969198, 11098698171934474589, 10975318215426625811, 17500100906172812112),
+UInt256(2374127344530605749, 2325000339031658714, 9165416893855335084, 8631720057144313618),
+UInt256(2967659180663257186, 7517936442216961297, 2233399080464393047, 10789650071430392023),
+UInt256(3709573975829071483, 174048515916425813, 7403434869007879213, 8875376570860602124),
+UInt256(2318483734893169676, 16249681386943623797, 6932989802343618460, 7852953366001570280),
+UInt256(2898104668616462096, 1865357659969978130, 13277923271356910979, 9816191707501962850),
+UInt256(3622630835770577620, 2331697074962472663, 7374032052341362916, 7658553615950065658),
+UInt256(4528288544713222025, 2914621343703090829, 4605854046999315741, 9573192019937582072),
+UInt256(2830180340445763765, 13350853385882901528, 5184501788588266290, 8289088021674682747),
+UInt256(3537725425557204707, 2853508677071463198, 6480627235735332863, 1137987990238577626),
+UInt256(4422156781946505883, 17401943901621492709, 17324156081523941886, 15257543043080385744),
+UInt256(2763847988716566177, 8570371929299738991, 13133440560166157631, 4924278383497853186),
+UInt256(3454809985895707721, 15324650930052061643, 11805114681780309135, 1543661960944928579),
+UInt256(4318512482369634652, 5320755607282913342, 10144707333797998514, 15764635506463324436),
+UInt256(2699070301481021657, 12548844291406596647, 1728756065196361167, 14464583209966965676),
+UInt256(3373837876851277072, 1850997308976082096, 15996003136777615171, 13469042994031319191),
+UInt256(4217297346064096340, 2313746636220102621, 1548259847262467348, 12224617724111761085),
+UInt256(2635810841290060212, 10669463684492339946, 3273505413752736044, 16863758114424626486),
+UInt256(3294763551612575265, 13336829605615424932, 13315253804045695864, 2632953569321231492),
+UInt256(4118454439515719082, 2835978951737117453, 16644067255057119830, 3291191961651539365),
+UInt256(2574034024697324426, 6384172863263086312, 12708385043624393845, 15892053031314375815),
+UInt256(3217542530871655532, 17203588115933633698, 15885481304530492307, 6030008233860806057),
+UInt256(4021928163589569416, 3057741071207490507, 10633479593808339576, 2925824273898619667),
+UInt256(2513705102243480885, 1911088169504681567, 4340081736916518283, 1828640171186637292),
+UInt256(3142131377804351106, 7000546230308239863, 813416152718259949, 16120858269265460327),
+UInt256(3927664222255438882, 17974054824740075636, 14851828246179988649, 6316014781299661696),
+UInt256(2454790138909649301, 15845470283889935177, 59020617007717097, 15476724284380758320),
+UInt256(3068487673637061627, 5971779799580255259, 4685461789687034276, 5510847300193784188),
+UInt256(3835609592046327034, 2853038731047931170, 1245141218681404941, 6888559125242230235),
+]
+
+private let bid_multipliers2_binary80_9: [UInt256] = [
+UInt256(2397255995028954396, 6394835225332344885, 5389899280103265992, 6611192462490087849),
+UInt256(2996569993786192995, 7993544031665431106, 11349060118556470394, 8263990578112609812),
+UInt256(3745712492232741244, 5380244021154400979, 4962953111340812185, 1106616185785986456),
+UInt256(2341070307645463277, 12586024550076276420, 796002685374313663, 12220850162184711295),
+UInt256(2926337884556829097, 1897472632313181813, 995003356717892079, 10664376684303501215),
+UInt256(3657922355696036371, 6983526808818865170, 5855440214324753003, 8718784836951988615),
+UInt256(4572402944620045464, 4117722492596193558, 16542672304760717062, 6286795027762597864),
+UInt256(2857751840387528415, 2573576557872620974, 5727484172048060259, 17764304947633787377),
+UInt256(3572189800484410518, 17052028752622939929, 16382727251914851132, 17593695166114846318),
+UInt256(4465237250605513148, 12091663903923899104, 6643351009611400204, 3545374883934006281),
+UInt256(2790773281628445717, 16780661976807212748, 4152094381007125127, 11439231339313529734),
+UInt256(3488466602035557147, 7140769415726852223, 5190117976258906409, 9687353155714524263),
+UInt256(4360583252544446434, 4314275751231177375, 1875961451896245107, 16720877463070543233),
+UInt256(2725364532840279021, 7308108362946873763, 8090004935076235048, 8144705405205395569),
+UInt256(3406705666050348776, 13746821472110980108, 5500820150417905906, 10180881756506744461),
+UInt256(4258382082562935970, 17183526840138725135, 6876025188022382383, 3502730158778654768),
+UInt256(2661488801601834981, 15351390293514091113, 11215044770155070845, 9106735376877741086),
+UInt256(3326861002002293727, 5354179811610450180, 183747907411674844, 15995105239524564261),
+UInt256(4158576252502867159, 2081038746085674821, 229684884264593556, 1547137475696153711),
+UInt256(2599110157814291974, 8218178243944628619, 2449396061879064924, 10190332959164871877),
+UInt256(3248887697267864968, 1049350768076009965, 16896803132630994867, 12737916198956089846),
+UInt256(4061109621584831210, 1311688460095012457, 7285945860506579872, 11310709230267724404),
+UInt256(2538193513490519506, 5431491305986770689, 16082931208885082180, 7069193268917327753),
+UInt256(3172741891863149382, 16012736169338239170, 6268605955824189013, 8836491586146659691),
+UInt256(3965927364828936728, 10792548174818023154, 17059129481635012074, 15657300501110712517),
+UInt256(2478704603018085455, 6745342609261264471, 15273641944449270450, 14397498831621583227),
+UInt256(3098380753772606819, 3819992243149192685, 14480366412134200159, 8773501502672203226),
+UInt256(3872975942215758524, 163304285509102953, 4265399959885586487, 6355190859912866129),
+UInt256(2420609963884849077, 9325437215297965153, 14195090020996961314, 10889523315086623187),
+UInt256(3025762454856061346, 16268482537549844346, 3908804470964037931, 4388532107003503175),
+UInt256(3782203068570076683, 11112231135082529624, 14109377625559823222, 873979115326991065),
+UInt256(2363876917856297927, 4639301450212887063, 8818361015974889513, 14381295002361533128),
+UInt256(2954846147320372409, 1187440794338720925, 6411265251541223988, 4141560697669752697),
+UInt256(3693557684150465511, 6095987011350789060, 12625767582853917889, 5176950872087190872),
+UInt256(2308473552594040944, 10727520909735325018, 17114476776138474488, 14764809341122964055),
+UInt256(2885591940742551180, 13409401137169156273, 12169723933318317303, 9267602694153453),
+UInt256(3606989925928188975, 16761751421461445342, 1377096861365732916, 13846642558649855528),
+UInt256(4508737407410236219, 16340503258399418773, 10944743113561941953, 17308303198312319409),
+UInt256(2817960879631397637, 7906971527285942781, 9146307455189907673, 3900160471304117775),
+UInt256(3522451099539247046, 14495400427534816380, 16044570337414772495, 9486886607557535123),
+UInt256(4403063874424058808, 8895878497563744668, 1608968848058914003, 7246922241019530999),
+UInt256(2751914921515036755, 5559924060977340417, 10228977566891597060, 2223483391423512923),
+UInt256(3439893651893795944, 2338219057794287617, 17397907977041884229, 2779354239279391153),
+UInt256(4299867064867244930, 2922773822242859522, 7912326916020191574, 8085878817526626846),
+UInt256(2687416915542028081, 6438419657329175105, 9556890340940007638, 441988242526753875),
+UInt256(3359271144427535101, 12659710590088856785, 16557798944602397451, 9775857340013218151),
+UInt256(4199088930534418877, 1989580182328907270, 6862190625470833102, 7608135656589134785),
+UInt256(2624430581584011798, 3549330623169260995, 18123927196201434401, 143398766940821337),
+UInt256(3280538226980014747, 13660035315816352052, 18043222976824405097, 4790934477103414575),
+UInt256(4100672783725018434, 12463358126343052162, 4107284647320954755, 10600354114806656122),
+]
+
+private let bid_multipliers2_binary80_10: [UInt256] = [
+UInt256(2562920489828136521, 12401284847391795505, 7178738923002984626, 4319378312540466125),
+UInt256(3203650612285170652, 1666548003957580669, 13585109672181118686, 14622594927530358464),
+UInt256(4004563265356463315, 2083185004946975837, 3146329034944234646, 9054871622558172271),
+UInt256(2502852040847789571, 17442891692587717562, 4272298656053840606, 1047608745671469766),
+UInt256(3128565051059736964, 17191928597307259048, 14563745356922076565, 10532882968944113015),
+UInt256(3910706313824671206, 3043166672924522194, 18204681696152595706, 17777789729607529173),
+UInt256(2444191446140419503, 15737037225859990083, 15989612078522760220, 15722804599432093637),
+UInt256(3055239307675524379, 15059610513897599700, 15375329079726062372, 1206761675580565430),
+UInt256(3819049134594405474, 14212827123944611722, 772417275948026349, 1508452094475706788),
+UInt256(2386905709121503421, 13494702970892770230, 5094446815894904372, 3248625568261010695),
+UInt256(2983632136401879277, 3033320658333799075, 15591430556723406273, 4060781960326263368),
+UInt256(3729540170502349096, 8403336841344636748, 14877602177476869937, 9687663468835217114),
+UInt256(2330962606563968185, 5252085525840397968, 75129324068267902, 17584004714090480456),
+UInt256(2913703258204960231, 11176792925727885364, 93911655085334878, 12756633855758324762),
+UInt256(3642129072756200289, 9359305138732468801, 117389568856668598, 6722420282843130145),
+UInt256(4552661340945250361, 16310817441842973905, 4758422979498223651, 17626397390408688489),
+UInt256(2845413338090781476, 3276731873510776834, 14503229408254859542, 8710655359791736354),
+UInt256(3556766672613476845, 4095914841888471043, 8905664723463798620, 1664947162884894634),
+UInt256(4445958340766846056, 9731579570787976708, 6520394885902360371, 2081183953606118293),
+UInt256(2778723962979278785, 6082237231742485442, 13298618840543751039, 17441641035499681597),
+UInt256(3473404953724098481, 12214482558105494707, 7399901513824912991, 17190365275947214092),
+UInt256(4341756192155123102, 1433045142349704672, 4638190873853753335, 16876270576506629711),
+UInt256(2713597620096951938, 14730711269250729132, 2898869296158595834, 17465198137957725426),
+UInt256(3391997025121189923, 9190017049708635607, 3623586620198244793, 12608125635592380974),
+UInt256(4239996281401487404, 6875835293708406604, 18364541330529969704, 1925098989208312505),
+UInt256(2649997675875929627, 13520769095422529936, 2254466294726455257, 1203186868255195316),
+UInt256(3312497094844912034, 12289275350850774516, 2818082868408069071, 6115669603746382049),
+UInt256(4140621368556140043, 6138222151708692337, 3522603585510086339, 3032900986255589657),
+UInt256(2587888355347587527, 1530545835604238758, 13730842287012273721, 18036464180905601200),
+UInt256(3234860444184484408, 15748240349787462160, 7940180821910566344, 8710522170849837788),
+UInt256(4043575555230605511, 1238556363524776084, 9925226027388207930, 10888152713562297234),
+UInt256(2527234722019128444, 7691626754844066908, 15426638303972405764, 11416781464403823676),
+UInt256(3159043402523910555, 9614533443555083636, 836553806255955589, 14270976830504779595),
+UInt256(3948804253154888194, 7406480786016466641, 1045692257819944487, 4003662982848810781),
+UInt256(2468002658221805121, 9240736509687679554, 12182772707205935064, 9419818391921588594),
+UInt256(3085003322777256401, 16162606655536987347, 6005093847152643022, 11774772989901985743),
+UInt256(3856254153471570502, 6368200264139070472, 2894681290513415874, 5495094200522706370),
+UInt256(2410158845919731563, 17815183220369082757, 1809175806570884921, 8046119893754079386),
+UInt256(3012698557399664454, 17657293007033965542, 6873155776640994055, 14669335885619987136),
+UInt256(3765873196749580568, 12848244221937681119, 17814816757656018377, 13724983838597596016),
+UInt256(2353670747968487855, 8030152638711050699, 18051789501176093342, 1660585871482415654),
+UInt256(2942088434960609819, 5426004779961425470, 17953050858042728773, 11299104376207795375),
+UInt256(3677610543700762274, 2170819956524393934, 13217941535698635159, 288822414977580507),
+UInt256(4597013179625952842, 11936896982510268226, 7299054882768518140, 14196086074004139346),
+UInt256(2873133237266220526, 12072246632496305545, 9173595320157711741, 18095925833107362899),
+UInt256(3591416546582775658, 5866936253765606123, 16078680168624527581, 8784849236102039912),
+UInt256(4489270683228469572, 16557042354061783462, 15486664192353271572, 15592747563554937794),
+UInt256(2805794177017793483, 1124779434433838856, 5067479101793406829, 522095190367060313),
+UInt256(3507242721272241853, 15241032348324462282, 6334348877241758536, 5264305006386213296),
+UInt256(4384053401590302317, 5216232380123414140, 17141308133406973978, 6580381257982766619),
+]
+
+private let bid_multipliers2_binary80_11: [UInt256] = [
+UInt256(2740033375993938948, 5565988246790827790, 1489945546524582928, 8724424304666617041),
+UInt256(3425041719992423685, 6957485308488534737, 11085803970010504468, 10905530380833271302),
+UInt256(4281302149990529606, 13308542654038056326, 22196907230966873, 13631912976041589127),
+UInt256(2675813843744081004, 3706153140346397299, 13848931122301518008, 1602416582384911348),
+UInt256(3344767304680101255, 4632691425432996624, 12699477884449509606, 2003020727981139185),
+UInt256(4180959130850126569, 1179178263363857876, 15874347355561887007, 11727147946831199790),
+UInt256(2613099456781329105, 12266201460670880933, 698095060371403571, 14246996494410581725),
+UInt256(3266374320976661382, 1497693770556437454, 5484304843891642368, 13197059599585839252),
+UInt256(4082967901220826727, 11095489250050322625, 16078753091719328768, 16496324499482299065),
+UInt256(2551854938263016704, 13852209808922533497, 3131691654683498624, 10310202812176436916),
+UInt256(3189818672828770880, 17315262261153166871, 8526300586781761184, 12887753515220546144),
+UInt256(3987273341035963601, 3197333752731906973, 6046189715049813576, 16109691894025682680),
+UInt256(2492045838147477250, 13527548641525911618, 6084711581119827437, 10068557433766051675),
+UInt256(3115057297684346563, 7686063765052613714, 16829261513254560104, 17197382810634952498),
+UInt256(3893821622105433204, 4995893687888379239, 11813204854713424323, 3049984439584139006),
+UInt256(2433638513815895752, 12345805591785012832, 14300782061836972057, 18047141339235944543),
+UInt256(3042048142269869690, 15432256989731266040, 17875977577296215072, 8723868618762766967),
+UInt256(3802560177837337113, 10066949200309306743, 3898227897910717224, 10904835773453458709),
+UInt256(2376600111148335695, 17821058296261786474, 9353921463835280121, 6815522358408411693),
+UInt256(2970750138935419619, 17664636851899845189, 2469029792939324343, 13131088966437902520),
+UInt256(3713437673669274524, 17469110046447418582, 7697973259601543333, 11802175189619990246),
+UInt256(2320898546043296578, 1694821742174860806, 199547268823576679, 9682202502726187856),
+UInt256(2901123182554120722, 11341899214573351815, 9472806122884246657, 7491067109980346916),
+UInt256(3626403978192650903, 4954001981361913961, 7229321635177920417, 13975519905902821549),
+UInt256(4533004972740813629, 1580816458275004547, 13648338062399788426, 3634341827096363224),
+UInt256(2833128107963008518, 3293853295635571794, 6224368279786173814, 6883149660362614919),
+UInt256(3541410134953760647, 13340688656399240550, 17003832386587493075, 17827309112308044457),
+UInt256(4426762668692200809, 12064174802071662784, 12031418446379590536, 17672450371957667667),
+UInt256(2766726667932625506, 622580223653707384, 7519636528987244085, 11045281482473542292),
+UInt256(3458408334915781882, 10001597316421910038, 9399545661234055106, 18418287871519315769),
+UInt256(4323010418644727353, 3278624608672611740, 2526060039687793075, 13799487802544368903),
+UInt256(2701881511652954595, 13578355426488852097, 10802159561659646480, 6318836867376536612),
+UInt256(3377351889566193244, 12361258264683677217, 18114385470501946004, 7898546084220670765),
+UInt256(4221689861957741555, 15451572830854596522, 8807923782845268793, 9873182605275838457),
+UInt256(2638556163723588472, 7351390010070428874, 10116638382705680899, 17699954174365868796),
+UInt256(3298195204654485590, 9189237512588036093, 3422425941527325316, 17513256699529948090),
+UInt256(4122744005818106988, 2263174853880269308, 8889718445336544550, 3444826800702883497),
+UInt256(2576715003636316867, 10637856320529944125, 14779446065190116151, 15988074805721465898),
+UInt256(3220893754545396084, 8685634382235042253, 4639249526205481477, 15373407488724444468),
+UInt256(4026117193181745105, 10857042977793802816, 10410747926184239751, 5381701305623391873),
+UInt256(2516323245738590690, 18314866907189596520, 6506717453865149844, 10281092343655701777),
+UInt256(3145404057173238363, 13670211597132219842, 8133396817331437305, 12851365429569627221),
+UInt256(3931755071466547954, 12476078477987886899, 943373984809520824, 2229148731679870314),
+UInt256(2457346919666592471, 12409235067169817215, 16730509805001808179, 1393217957299918946),
+UInt256(3071683649583240589, 10899857815534883615, 16301451237824872319, 15576580501907062395),
+UInt256(3839604561979050736, 18236508287845992423, 15765128028853702495, 14859039608956440089),
+UInt256(2399752851236906710, 11397817679903745264, 16770734045674645915, 16204428783238856912),
+UInt256(2999691064046133388, 5023900063024905773, 2516673483383755778, 15643849960621183236),
+UInt256(3749613830057666735, 6279875078781132216, 7757527872657082627, 10331440413921703237),
+UInt256(2343508643786041709, 10842450951879289491, 4848454920410676642, 4151307249487370571),
+]
+
+private let bid_multipliers2_binary80_12: [UInt256] = [
+UInt256(2929385804732552136, 18164749708276499768, 1448882632085957898, 14412506098713989022),
+UInt256(3661732255915690171, 4259193061636073094, 1811103290107447373, 8792260586537710469),
+UInt256(4577165319894612714, 712305308617703463, 11487251149489085024, 15602011751599525990),
+UInt256(2860728324934132946, 5056876836313452568, 14097060996071759996, 9751257344749703744),
+UInt256(3575910406167666182, 15544468082246591518, 17621326245089699995, 12189071680937129680),
+UInt256(4469888007709582728, 10207213065953463590, 12803285769507349186, 10624653582744024196),
+UInt256(2793680004818489205, 6379508166220914744, 3390367587514705337, 11252094507642403027),
+UInt256(3492100006023111506, 12586071226203531334, 4237959484393381672, 230060079270840071),
+UInt256(4365125007528889383, 6509216995899638359, 14520821392346502898, 287575099088550089),
+UInt256(2728203129705555864, 10985789650078355830, 15993042397857646167, 4791420455357731710),
+UInt256(3410253912131944830, 13732237062597944788, 10767930960467281901, 1377589550769776733),
+UInt256(4262817390164931038, 7941924291392655177, 13459913700584102376, 6333672956889608820),
+UInt256(2664260868853081899, 352016663693021582, 1494917035223982129, 3958545598056005513),
+UInt256(3330326086066352373, 14275078884898440689, 11092018330884753469, 9559868015997394795),
+UInt256(4162907607582940467, 4008790550840887150, 29964858323778124, 16561521038424131397),
+UInt256(2601817254739337792, 199651085061860516, 13853786091734525040, 1127578612160306316),
+UInt256(3252271568424172240, 249563856327325645, 17317232614668156300, 1409473265200382894),
+UInt256(4065339460530215300, 311954820409157057, 7811482713053031663, 1761841581500478618),
+UInt256(2540837162831384562, 9418343799610498968, 16411391741726614549, 8018680016078880992),
+UInt256(3176046453539230703, 2549557712658347903, 2067495603448716570, 14635036038525989144),
+UInt256(3970058066924038378, 17022005196105098590, 16419427559593059425, 9070423011302710622),
+UInt256(2481286291827523986, 15250439265993074523, 5650456206318274236, 17198229428132663899),
+UInt256(3101607864784404983, 9839677045636567346, 2451384239470454892, 3051042711456278258),
+UInt256(3877009830980506229, 7687910288618321278, 12287602336192844423, 3813803389320347822),
+UInt256(2423131144362816393, 7110786939600144751, 3068065441693139860, 9301156145966299245),
+UInt256(3028913930453520491, 13500169692927568842, 17670139857398588537, 11626445182457874056),
+UInt256(3786142413066900614, 12263526097732073149, 12864302784893459864, 697998422790178858),
+UInt256(2366339008166812884, 3053017792655157814, 10346032249772106367, 436249014243861786),
+UInt256(2957923760208516105, 3816272240818947268, 3709168275360357150, 14380369323086990945),
+UInt256(3697404700260645131, 9382026319451071989, 4636460344200446438, 8752089617003962873),
+UInt256(2310877937662903207, 3557923440443226041, 5203630724338972976, 858369992200088892),
+UInt256(2888597422078629008, 18282462355836196263, 11116224423851104124, 1072962490250111115),
+UInt256(3610746777598286261, 4406333871085693713, 9283594511386492251, 1341203112812638893),
+UInt256(4513433471997857826, 10119603357284505045, 16216179157660503217, 15511561946297962328),
+UInt256(2820895919998661141, 10936438116730203557, 12440954982751508463, 2777197188795144599),
+UInt256(3526119899998326426, 18282233664340142351, 1716135673157221866, 17306554541276094461),
+UInt256(4407649874997908033, 13629420043570402130, 15980227646728691045, 12409821139740342268),
+UInt256(2754781171873692521, 1600858499590419475, 14599328297632819807, 10061981221551407870),
+UInt256(3443476464842115651, 6612759142915412248, 13637474353613636855, 7965790508511871933),
+UInt256(4304345581052644564, 3654262910216877406, 17046842942017046069, 5345552117212452012),
+UInt256(2690215988157902852, 11507286355740324187, 6042590820333265889, 5646813082471476460),
+UInt256(3362769985197378565, 14384107944675405234, 2941552506989194457, 11670202371516733479),
+UInt256(4203462481496723207, 4145076875562092830, 12900312670591268880, 752694909113753136),
+UInt256(2627164050935452004, 9508202074867389875, 3451009400692155146, 470434318196095710),
+UInt256(3283955063669315005, 11885252593584237343, 18148819806147357644, 9811414934599895446),
+UInt256(4104943829586643757, 1021507686698132967, 18074338739256809151, 12264268668249869307),
+UInt256(2565589893491652348, 2944285313400027056, 18213990739676587575, 14582696945297250173),
+UInt256(3206987366864565435, 3680356641750033821, 4320744350886182853, 13616685163194174812),
+UInt256(4008734208580706793, 18435503857469705988, 10012616457035116471, 3185798398710554803),
+UInt256(2505458880362941746, 4604660883277484386, 15481257322501723602, 8908653026835178608),
+]
+
+private let bid_multipliers2_binary80_13: [UInt256] = [
+UInt256(3131823600453677182, 14979198140951631291, 10128199616272378695, 1912444246689197452),
+UInt256(3914779500567096478, 9500625639334763306, 8048563501913085464, 16225613363643660527),
+UInt256(2446737187854435299, 1326205006156839162, 9642038207123066319, 10141008352277287830),
+UInt256(3058421484818044123, 15492814312978212665, 2829175722049057091, 8064574421919221883),
+UInt256(3823026856022555154, 14754331872795377927, 8148155670988709268, 5469032008971639450),
+UInt256(2389391785014096971, 13833143438924499108, 12010126322009025148, 12641517042462050464),
+UInt256(2986739731267621214, 12679743280228235981, 15012657902511281435, 15801896303077563080),
+UInt256(3733424664084526518, 6626307063430519169, 4930764322856938082, 15140684360419565946),
+UInt256(2333390415052829073, 17976499969926238192, 14610942747854056061, 14074613743689616620),
+UInt256(2916738018816036342, 8635566907125634028, 18263678434817570077, 3758209124329857063),
+UInt256(3645922523520045428, 1571086597052266728, 4382853969812410980, 9309447423839709233),
+UInt256(4557403154400056785, 1963858246315333410, 5478567462265513725, 11636809279799636541),
+UInt256(2848376971500035490, 12756626450015553141, 8035790682343333982, 9578848809088466791),
+UInt256(3560471214375044363, 6722411025664665618, 14656424371356555382, 2750188974505807680),
+UInt256(4450589017968805454, 3791327763653444119, 9097158427340918419, 12661108254987035408),
+UInt256(2781618136230503408, 16204637907565566286, 12603253044729155868, 5607349650153203178),
+UInt256(3477022670288129261, 1809053310747406242, 6530694269056669027, 7009187062691503973),
+UInt256(4346278337860161576, 6873002656861645706, 17386739873175612092, 4149797809936992062),
+UInt256(2716423961162600985, 4295626660538528566, 15478398439162145461, 11816995668065395847),
+UInt256(3395529951453251231, 9981219344100548612, 10124626012097906019, 936186529799581096),
+UInt256(4244412439316564039, 7864838161698297861, 12655782515122382523, 15005291217531640082),
+UInt256(2652757774572852524, 11833052878702518019, 10215707081165183029, 7072464001743581099),
+UInt256(3315947218216065655, 14791316098378147524, 8157947833029090882, 13452266020606864278),
+UInt256(4144934022770082069, 13877459104545296501, 10197434791286363603, 7591960488903804540),
+UInt256(2590583764231301293, 10979254949554504265, 8679239753767671204, 2439132296351183885),
+UInt256(3238229705289126616, 18335754705370518235, 15460735710636976909, 3048915370438979857),
+UInt256(4047787131611408271, 4472949308003596178, 14714233619868833232, 8422830231476112725),
+UInt256(2529866957257130169, 9713122345143329467, 13808082030845408674, 5264268894672570453),
+UInt256(3162333696571412711, 16753088949856549738, 12648416520129372938, 15803708155195488874),
+UInt256(3952917120714265889, 16329675168893299269, 6587148613306940365, 10531263157139585285),
+UInt256(2470573200446416181, 3288517952917230187, 6422810892530531680, 8887882482425934755),
+UInt256(3088216500558020226, 8722333459573925638, 3416827597235776696, 11109853103032418444),
+UInt256(3860270625697525283, 1679544787612631239, 13494406533399496678, 13887316378790523055),
+UInt256(2412669141060953301, 17190616556753752188, 15351533111015767280, 4067886718316689005),
+UInt256(3015836426326191627, 7653212640660026524, 742672315060157484, 5084858397895861257),
+UInt256(3769795532907739534, 4954829782397645251, 928340393825196855, 6356072997369826571),
+UInt256(2356122208067337208, 16931826669280691993, 16721113810636605698, 10890074650997223463),
+UInt256(2945152760084171511, 2718039262891313376, 7066334208013593411, 4389221276891753520),
+UInt256(3681440950105214388, 17232607133896305432, 8832917760016991764, 874840577687303996),
+UInt256(4601801187631517986, 3094014843660830174, 11041147200021239705, 1093550722109129995),
+UInt256(2876125742269698741, 6545445295715406763, 2289030981585886911, 12212684247386676007),
+UInt256(3595157177837123426, 12793492638071646357, 16696346782264522351, 10654169290805957105),
+UInt256(4493946472296404283, 6768493760734782139, 7035375422548489227, 8706025595080058477),
+UInt256(2808716545185252677, 1924465591245544885, 2091266629879111815, 3135422987711342596),
+UInt256(3510895681481565846, 7017268007484319010, 7225769305776277672, 17754336789921341957),
+UInt256(4388619601851957307, 17994957046210174570, 18255583669075122899, 3746176913692125831),
+UInt256(2742887251157473317, 8941005144667665154, 16021425811599339716, 35517561843884692),
+UInt256(3428609063946841646, 15787942449261969347, 10803410227644398837, 44396952304855865),
+UInt256(4285761329933552058, 10511556024722685876, 8892576766128110642, 4667182208808457735),
+UInt256(2678600831208470036, 11181408533879066576, 14781232515684844959, 7528674898932673989),
+]
+
+private let bid_multipliers2_binary80_14: [UInt256] = [
+UInt256(3348251039010587545, 13976760667348833221, 29796570896504583, 4799157605238454582),
+UInt256(4185313798763234432, 3635892778903877814, 4648931732048018633, 1387260988120680323),
+UInt256(2615821124227021520, 2272432986814923633, 16740640387812175357, 12396253163643894962),
+UInt256(3269776405283776900, 2840541233518654542, 7090742429483055485, 1660258399272704991),
+UInt256(4087220506604721125, 3550676541898318177, 18086800073708595164, 6687009017518269142),
+UInt256(2554512816627950703, 4525015847900142813, 4386721018426790121, 13402752672803694022),
+UInt256(3193141020784938379, 1044583791447790612, 10095087291460875556, 2918382785722453815),
+UInt256(3991426275981172973, 15140787794591901977, 12618859114326094445, 3647978482153067269),
+UInt256(2494641422488233108, 11768835380833632688, 969257918812727172, 4585829560559360995),
+UInt256(3118301778110291385, 14711044226042040860, 1211572398515908965, 5732286950699201244),
+UInt256(3897877222637864232, 4553747227270387363, 1514465498144886206, 11777044706801389459),
+UInt256(2436173264148665145, 2846092017043992101, 17087442000836411543, 2748966923323480508),
+UInt256(3045216580185831431, 8169301039732378031, 7524244445763350716, 17271266709436514347),
+UInt256(3806520725232289289, 5599940281238084635, 4793619538776800492, 3142339313086091318),
+UInt256(2379075453270180805, 15029177721842272657, 690169202521806355, 11187334107533582882),
+UInt256(2973844316587726007, 4951414097020677109, 5474397521579645848, 9372481615989590698),
+UInt256(3717305395734657509, 1577581602848458482, 11454682920401945214, 11715602019986988372),
+UInt256(2323315872334160943, 3291831510993980503, 11770862843678603663, 2710565244064479829),
+UInt256(2904144840417701178, 17949847444024639341, 10101892536170866674, 17223264610362763498),
+UInt256(3630181050522126473, 13213937268176023368, 17239051688640971247, 12305708726098678564),
+UInt256(4537726313152658092, 2682363529937865499, 3102070537091662443, 10770449889195960301),
+UInt256(2836078945720411307, 10899849243065941744, 18079695150178146691, 4425688171533781237),
+UInt256(3545098682150514134, 9013125535405039277, 4152874864013131748, 920424195989838642),
+UInt256(4431373352688142668, 2043034882401523288, 9802779598443802589, 1150530244987298302),
+UInt256(2769608345430089167, 10500268838355727863, 6126737249027376618, 3024924412330755391),
+UInt256(3462010431787611459, 8513650029517271925, 3046735542856832868, 13004527552268220046),
+UInt256(4327513039734514324, 6030376518469202002, 8420105446998428989, 16255659440335275058),
+UInt256(2704695649834071452, 12992357360898027059, 9874251922801406022, 12465630159423240863),
+UInt256(3380869562292589315, 16240446701122533824, 7731128885074369624, 6358665662424275271),
+UInt256(4226086952865736644, 15688872357975779376, 9663911106342962030, 7948332078030344089),
+UInt256(2641304345541085403, 582173186880086302, 6039944441464351269, 356021530341577152),
+UInt256(3301630431926356753, 14562774538882271589, 16773302588685214894, 5056712931354359343),
+UInt256(4127038039907945942, 4368410118320675775, 7131570180574354905, 15544263201047724987),
+UInt256(2579398774942466213, 16565314379232586071, 11374760390500053672, 2797635473013746261),
+UInt256(3224248468678082767, 6871584918758568877, 9606764469697679186, 3497044341267182826),
+UInt256(4030310585847603459, 3977795130020823192, 16620141605549486886, 13594677463438754341),
+UInt256(2518944116154752162, 180278947049320543, 10387588503468429304, 3884987396221833559),
+UInt256(3148680145193440202, 9448720720666426487, 8372799610908148726, 4856234245277291949),
+UInt256(3935850181491800253, 2587528863978257301, 5854313495207798003, 15293664843451390744),
+UInt256(2459906363432375158, 3923048549200104765, 5964788943718567704, 7252697517943425263),
+UInt256(3074882954290468947, 14127182723354906764, 12067672198075597534, 9065871897429281579),
+UInt256(3843603692863086184, 13047292385766245551, 15084590247594496918, 2108967834931826165),
+UInt256(2402252308039428865, 8154557741103903469, 16345397932387642429, 15153162952114555066),
+UInt256(3002815385049286081, 14804883194807267241, 6596689360202389325, 5106395634861030120),
+UInt256(3753519231311607602, 4671045938226920339, 12857547718680374560, 10994680562003675554),
+UInt256(2345949519569754751, 7531089729819213116, 5730124314961540148, 6871675351252297221),
+UInt256(2932436899462193439, 4802176143846628491, 7162655393701925185, 8589594189065371526),
+UInt256(3665546124327741799, 1391034161380897710, 4341633223700018577, 15348678754759102312),
+UInt256(4581932655409677248, 15573850757008285849, 14650413566479799030, 5350790388166714178),
+UInt256(2863707909631048280, 9733656723130178656, 2238979451408792537, 17179302047886360073),
+]
+
+private let bid_multipliers2_binary80_15: [UInt256] = [
+UInt256(3579634887038810350, 12167070903912723320, 2798724314260990672, 7639069504575786379),
+UInt256(4474543608798512938, 5985466593036128342, 3498405392826238340, 9548836880719732974),
+UInt256(2796589755499070586, 8352602639074968117, 16021561425798562674, 15191395087304608917),
+UInt256(3495737194373838233, 1217381261988934339, 6191893726966039631, 9765871822275985338),
+UInt256(4369671492967297791, 6133412595913555828, 3128181140280161635, 7595653759417593769),
+UInt256(2731044683104561119, 10750911900087054248, 11178485249529876830, 2441440590422302154),
+UInt256(3413805853880701399, 8826953856681429906, 13973106561912346037, 12275172774882653500),
+UInt256(4267257317350876749, 6422006302424399479, 8243011165535656739, 1508907913321153163),
+UInt256(2667035823344297968, 6319596948228943626, 12069411006100867317, 17083968510321578391),
+UInt256(3333794779180372460, 7899496185286179533, 5863391720771308339, 7519902582619809276),
+UInt256(4167243473975465575, 9874370231607724416, 11940925669391523328, 4788192209847373691),
+UInt256(2604527171234665984, 13089010422395909616, 7463078543369702080, 2992620131154608557),
+UInt256(3255658964043332480, 16361263027994887020, 9328848179212127600, 3740775163943260697),
+UInt256(4069573705054165601, 2004834711284057159, 11661060224015159500, 4675968954929075871),
+UInt256(2543483565658853500, 12782236740621005484, 14205691667650556543, 12145852633685448227),
+UInt256(3179354457073566875, 15977795925776256855, 17757114584563195679, 10570629773679422380),
+UInt256(3974193071341958594, 15360558888792933165, 17584707212276606695, 8601601198671890071),
+UInt256(2483870669588724121, 14212035323922971132, 13296285016886573136, 12293529776811013150),
+UInt256(3104838336985905152, 3929986099621550203, 16620356271108216420, 15366912221013766438),
+UInt256(3881047921232381440, 4912482624526937754, 16163759320457882622, 761896202557656431),
+UInt256(2425654950770238400, 3070301640329336096, 14714035593713564542, 14311243181880698982),
+UInt256(3032068688462798000, 3837877050411670120, 18392544492141955678, 8665681940496097919),
+UInt256(3790085860578497500, 4797346313014587651, 4543936541467892982, 1608730388765346591),
+UInt256(2368803662861560937, 12221713482488893090, 534117329203739161, 14840514548260505331),
+UInt256(2961004578576951172, 1442083797828952650, 9891018698359449760, 4715585130043467952),
+UInt256(3701255723221188965, 1802604747286190813, 3140401336094536392, 5894481412554334940),
+UInt256(2313284827013243103, 3432470976267563210, 4268593844272779197, 3684050882846459338),
+UInt256(2891606033766553878, 18125646775616617724, 14559114342195749804, 9216749621985462076),
+UInt256(3614507542208192348, 13433686432665996347, 18198892927744687255, 11520937027481827595),
+UInt256(4518134427760240435, 16792108040832495434, 18136930141253471165, 9789485265924896590),
+UInt256(2823834017350150272, 8189224516306615694, 15947267356710807382, 8424271300416754321),
+UInt256(3529792521687687840, 10236530645383269618, 10710712159033733420, 1306967088666167093),
+UInt256(4412240652109609800, 12795663306729087023, 4165018161937390967, 1633708860832708866),
+UInt256(2757650407568506125, 7997289566705679389, 9520665378851951210, 7938597065661524897),
+UInt256(3447063009460632656, 14608297976809487140, 16512517741992326917, 699874295222130313),
+UInt256(4308828761825790820, 18260372471011858926, 2193903103780857030, 5486528887455050796),
+UInt256(2693017976141119263, 2189360757527636020, 15206247495145199355, 17264138609941570459),
+UInt256(3366272470176399078, 16571759002191708738, 561065295221947578, 16968487243999575170),
+UInt256(4207840587720498848, 11491326715884860114, 9924703655882210281, 11987237018144693155),
+UInt256(2629900367325311780, 7182079197428037571, 10814625803353769330, 574494108699351366),
+UInt256(3287375459156639725, 8977598996785046964, 8906596235764823758, 9941489672728965015),
+UInt256(4109219323945799656, 15833684764408696609, 11133245294706029698, 3203490054056430461),
+UInt256(2568262077466124785, 9896052977755435381, 40749281550186705, 6613867302212656942),
+UInt256(3210327596832655981, 16981752240621682130, 4662622620365121285, 12879020146193209082),
+UInt256(4012909496040819977, 7392132245494938950, 15051650312311177415, 2263717127459347640),
+UInt256(2508068435025512485, 16149297699502806604, 4795595426767097980, 8332352232303174131),
+UInt256(3135085543781890607, 6351564069096344543, 5994494283458872475, 10415440290378967664),
+UInt256(3918856929727363259, 3327769067943042775, 2881431835896202690, 8407614344546321676),
+UInt256(2449285581079602036, 18220756731960259398, 8718423925076208537, 9866444983768838951),
+UInt256(3061606976349502546, 4329201841240772632, 1674657869490484863, 16944742248138436593),
+]
+
+private let bid_multipliers2_binary80_16: [UInt256] = [
+UInt256(3827008720436878182, 14634874338405741598, 2093322336863106079, 16569241791745657837),
+UInt256(2391880450273048864, 4535110443076200594, 15143384515821605011, 17273305147482118005),
+UInt256(2989850562841311080, 5668888053845250743, 9705858607922230456, 16979945415925259602),
+UInt256(3737313203551638850, 7086110067306563429, 7520637241475400167, 2778187696197022886),
+UInt256(2335820752219774281, 9040504810493990047, 7006241285135819056, 8653896337764221160),
+UInt256(2919775940274717851, 15912317031544875463, 4146115587992385916, 10817370422205276450),
+UInt256(3649719925343397314, 15278710271003706425, 570958466563094491, 13521713027756595562),
+UInt256(4562149906679246643, 9875015801899857223, 5325384101631256018, 12290455266268356548),
+UInt256(2851343691674529152, 3866041866973716812, 10245894091160616867, 12293220559845110747),
+UInt256(3564179614593161440, 4832552333717146015, 12807367613950771084, 10754839681379000529),
+UInt256(4455224518241451800, 6040690417146432519, 11397523499011075951, 13443549601723750662),
+UInt256(2784515323900907375, 3775431510716520324, 14040981214523004325, 15319747528718426020),
+UInt256(3480644154876134219, 107603369968262501, 17551226518153755407, 5314626355615868813),
+UInt256(4350805193595167773, 13969562267742491839, 8103975092410030547, 2031596926092448112),
+UInt256(2719253245996979858, 11036819426552751351, 11982513460397350947, 17410649143303637734),
+UInt256(3399066557496224823, 4572652246336163381, 10366455807069300780, 17151625410702159263),
+UInt256(4248833196870281029, 1104129289492816322, 17569755777264013880, 2992787689668147463),
+UInt256(2655520748043925643, 2995923815146704153, 15592783379217396579, 1870492306042592165),
+UInt256(3319400935054907053, 17579962824215543904, 5655921168739582011, 16173173437835403918),
+UInt256(4149251168818633817, 8139895474987266168, 7069901460924477514, 15604780778866866993),
+UInt256(2593281980511646135, 16616649717935511115, 4418688413077798446, 14364674005219179775),
+UInt256(3241602475639557669, 16159126128992000990, 911674497919860154, 8732470469669198910),
+UInt256(4052003094549447087, 6363849605957837525, 10362965159254601001, 1692216050231722830),
+UInt256(2532501934093404429, 10894935031364730309, 8782696233747819577, 12586850077463296529),
+UInt256(3165627417616755536, 18230354807633300790, 15590056310612162376, 1898504541546956949),
+UInt256(3957034272020944421, 4341199435832074372, 10264198351410427162, 2373130676933696186),
+UInt256(2473146420013090263, 5019092656608740434, 15638496006486292784, 6094892691510948020),
+UInt256(3091433025016362829, 1662179802333537639, 10324747971253090172, 7618615864388685025),
+UInt256(3864291281270453536, 6689410771344309953, 8294248945638974811, 9523269830485856282),
+UInt256(2415182050794033460, 4180881732090193720, 16713120637092829017, 3646200634839966224),
+UInt256(3018977563492541825, 5226102165112742151, 2444656722656484655, 9169436811977345684),
+UInt256(3773721954365677281, 11144313724818315592, 16890878958602769531, 6850109996544294201),
+UInt256(2358576221478548301, 47667050370365389, 10556799349126730957, 1975475738626489924),
+UInt256(2948220276848185376, 4671269831390344640, 17807685204835801600, 7081030691710500309),
+UInt256(3685275346060231720, 5839087289237930801, 3812862432335200384, 8851288364638125386),
+UInt256(4606594182575289650, 7298859111547413501, 9377764058846388384, 11064110455797656732),
+UInt256(2879121364109556031, 9173472963144521342, 8166945545992686692, 6915069034873535458),
+UInt256(3598901705136945039, 6855155185503263774, 985309895636082557, 8643836293591919322),
+UInt256(4498627131421181299, 3957257963451691813, 10455009406399879004, 15416481385417287056),
+UInt256(2811641957138238312, 167443217943613431, 8840223888213618330, 411928829031028602),
+UInt256(3514552446422797890, 209304022429516789, 6438593841839635008, 9738283073143561561),
+UInt256(4393190558028497362, 9485002064891671794, 12659928320726931664, 12172853841429451951),
+UInt256(2745744098767810851, 10539812308984682775, 12524141218881720194, 7608033650893407470),
+UInt256(3432180123459763564, 8563079367803465565, 11043490505174762339, 286670026761983529),
+UInt256(4290225154324704455, 10703849209754331956, 18416049149895840827, 14193395588734643123),
+UInt256(2681390721452940284, 13607434783737539329, 2286658681830124709, 6565029233745458000),
+UInt256(3351738401816175355, 17009293479671924161, 7470009370715043790, 12817972560609210404),
+UInt256(4189673002270219194, 16649930831162517297, 13949197731821192642, 6799093663906737197),
+UInt256(2618545626418886996, 15017892787903961215, 1800719554747163545, 8861119558369098652),
+UInt256(3273182033023608746, 325621911170399902, 16085957498716118143, 15688085466388761219),
+]
+
+private let bid_multipliers2_binary80_17: [UInt256] = [
+UInt256(4091477541279510932, 9630399425817775686, 10884074836540371871, 14998420814558563620),
+UInt256(2557173463299694332, 15242371677990885612, 2190860754410344515, 16291542036740184118),
+UInt256(3196466829124617916, 606220523779055399, 2738575943012930644, 15752741527497842244),
+UInt256(3995583536405772395, 757775654723819248, 17258277984048327018, 1244182835662751189),
+UInt256(2497239710253607746, 16614510848698244694, 10786423740030204386, 5389300290716607397),
+UInt256(3121549637817009683, 11544766524018030060, 4259657638182979674, 15959997400250535054),
+UInt256(3901937047271262104, 9819272136595149671, 5324572047728724593, 10726624713458393010),
+UInt256(2438710654544538815, 6137045085371968544, 10245386557471534726, 18233355491979965391),
+UInt256(3048388318180673519, 3059620338287572776, 12806733196839418408, 13568322328120180931),
+UInt256(3810485397725841898, 17659583478141629682, 16008416496049273010, 16960402910150226164),
+UInt256(2381553373578651186, 15648925692265906455, 14616946328458183535, 15211937837271279256),
+UInt256(2976941716973313983, 10337785078477607261, 13659496892145341515, 14403236278161711166),
+UInt256(3721177146216642479, 8310545329669621173, 3239313059899513182, 13392359329274751054),
+UInt256(2325735716385401549, 12111619858684595089, 4330413671650889691, 3758538562369331505),
+UInt256(2907169645481751937, 1304466768073580149, 10024703107991000018, 86487184534276477),
+UInt256(3633962056852189921, 6242269478519363090, 17142564903416137926, 9331481017522621404),
+UInt256(4542452571065237401, 12414522866576591767, 12204834092415396600, 2440979235048500947),
+UInt256(2839032856915773376, 841547763969287998, 14545550335400704731, 1525612021905313092),
+UInt256(3548791071144716720, 1051934704961609998, 8958565882396105105, 15742073082663805077),
+UInt256(4435988838930895900, 1314918381202012498, 1974835316140355574, 5842533298047592634),
+UInt256(2772493024331809937, 10045196025106033619, 5845958091015110137, 17486641366561909109),
+UInt256(3465616280414762421, 17168181049809929928, 2695761595341499768, 8023243652920222674),
+UInt256(4332020350518453027, 7625168256980248698, 3369701994176874710, 10029054566150278342),
+UInt256(2707512719074033142, 2459887151398961484, 6717749764787934598, 1656473085416536060),
+UInt256(3384390898842541427, 12298230976103477663, 8397187205984918247, 11293963393625445883),
+UInt256(4230488623553176784, 10761102701701959175, 5884797989053759905, 9505768223604419449),
+UInt256(2644055389720735490, 6725689188563724484, 10595527770799681796, 17470320185821231916),
+UInt256(3305069237150919362, 17630483522559431413, 13244409713499602246, 3391156158566988279),
+UInt256(4131336546438649203, 12814732366344513459, 2720454086592339095, 13462317235063511156),
+UInt256(2582085341524155752, 5703364719751626959, 17841184868616069598, 15331477299555776329),
+UInt256(3227606676905194690, 7129205899689533699, 17689795067342699094, 9940974587589944603),
+UInt256(4034508346131493362, 18134879411466692932, 17500557815750985964, 3202846197632654946),
+UInt256(2521567716332183351, 15945985650594070987, 1714476597989590419, 11225150910375185149),
+UInt256(3151959645415229189, 15320796044815200829, 15978153802769151736, 9419752619541593532),
+UInt256(3939949556769036487, 5315937000736837325, 6137634198179275958, 11774690774426991915),
+UInt256(2462468472980647804, 10239989653101605184, 6141864383075741426, 2747495715589482043),
+UInt256(3078085591225809755, 12799987066377006480, 7677330478844676782, 12657741681341628362),
+UInt256(3847606989032262194, 11388297814543870196, 9596663098555845978, 6598805064822259644),
+UInt256(2404754368145163871, 11729372152517306776, 15221286473452179544, 8735939183941300182),
+UInt256(3005942960181454839, 10050029172219245567, 579864018105672814, 10919923979926625227),
+UInt256(3757428700226818549, 7950850446846669054, 14559888077914254730, 4426532938053505726),
+UInt256(2348392937641761593, 7275124538492862111, 4488244030269021302, 7378269104710828983),
+UInt256(2935491172052201991, 13705591691543465543, 998619019408888723, 18446208417743312037),
+UInt256(3669363965065252489, 12520303596001944024, 15083331829543274616, 18446074503751752142),
+UInt256(4586704956331565612, 1815321439720266319, 407420713219541655, 4610849055980138561),
+UInt256(2866690597707228507, 10357947936679942257, 7172166973403295390, 9799309687628668457),
+UInt256(3583363247134035634, 8335748902422539917, 13576894735181507142, 3025765072681059763),
+UInt256(4479204058917544543, 1196314091173399089, 3136060363694720215, 13005578377706100511),
+UInt256(2799502536823465339, 7665225334624456286, 13489252773377669894, 15046015513707394676),
+UInt256(3499378171029331674, 4969845649853182454, 7638193929867311560, 9584147355279467537),
+]
+
+private let bid_multipliers2_binary80_18: [UInt256] = [
+UInt256(4374222713786664592, 15435679099171253876, 324370375479363642, 11980184194099334421),
+UInt256(2733889196116665370, 9647299436982033672, 9426103521529378084, 12099301139739471917),
+UInt256(3417361495145831713, 2835752259372766282, 11782629401911722605, 15124126424674339896),
+UInt256(4271701868932289641, 8156376342643345757, 5504914715534877449, 5070099975560761158),
+UInt256(2669813668082681025, 16626950260220560858, 5746414706422992357, 14698027530793945484),
+UInt256(3337267085103351282, 6948629769993537360, 16406390419883516255, 4537476358210268143),
+UInt256(4171583856379189102, 17909159249346697509, 2061243951144843703, 1060159429335447274),
+UInt256(2607239910236993189, 6581538512414298039, 3594120478679221266, 7580128670975736403),
+UInt256(3259049887796241486, 12838609158945260452, 18327708653631190295, 251788801864894695),
+UInt256(4073812359745301858, 6824889411826799758, 4462891743329436252, 14149794057613282081),
+UInt256(2546132724840813661, 8877241900819137752, 16624365394863061369, 18066993322863077109),
+UInt256(3182665906051017076, 15708238394451310095, 2333712669869275096, 8748683598296682674),
+UInt256(3978332382563771346, 1188553919354586002, 16752198892618757582, 10935854497870853342),
+UInt256(2486457739102357091, 5354532218024004155, 15081810326314111393, 2223223042741895435),
+UInt256(3108072173877946364, 2081479254102617290, 14240576889465251337, 7390714821854757198),
+UInt256(3885090217347432955, 2601849067628271613, 8577349074976788363, 13850079545745834401),
+UInt256(2428181385842145596, 17767056731763527422, 7666686181074186679, 6350456706877452549),
+UInt256(3035226732302681996, 3762076840994857662, 359985689487957541, 3326384865169427782),
+UInt256(3794033415378352495, 4702596051243572077, 9673354148714722734, 8769667099889172631),
+UInt256(2371270884611470309, 9856651559668314404, 8351689352160395661, 869355919003344991),
+UInt256(2964088605764337886, 16932500468012780909, 10439611690200494576, 5698380917181569142),
+UInt256(3705110757205422358, 11942253548161200328, 17661200631178006124, 7122976146476961428),
+UInt256(2315694223253388974, 2852222449173362301, 11038250394486253827, 13675232128402876700),
+UInt256(2894617779066736217, 12788650098321478684, 18409499011535205188, 12482354142076207971),
+UInt256(3618272223833420272, 2150754567619684644, 4565129690709454869, 15602942677595259964),
+UInt256(4522840279791775340, 2688443209524605805, 5706412113386818587, 5668620291711911243),
+UInt256(2826775174869859587, 10903649042807654436, 5872350580080455569, 1237044673106250575),
+UInt256(3533468968587324484, 9017875285082180141, 7340438225100569461, 6157991859810201123),
+UInt256(4416836210734155605, 11272344106352725176, 13787233799803099730, 12309175843190139307),
+UInt256(2760522631708847253, 9351058075684147187, 8617021124876937331, 12304920920421224971),
+UInt256(3450653289636059066, 16300508613032571888, 6159590387668783760, 10769465132099143310),
+UInt256(4313316612045073833, 11152263729435939052, 7699487984585979700, 13461831415123929137),
+UInt256(2695822882528171146, 52635803256380051, 14035552027221013120, 17637016671307231519),
+UInt256(3369778603160213932, 9289166790925250872, 12932754015598878497, 3599526765424487783),
+UInt256(4212223253950267415, 11611458488656563590, 16165942519498598121, 9111094475207997632),
+UInt256(2632639533718917134, 14174690583051434100, 5492028056259235921, 17223649093073468280),
+UInt256(3290799417148646418, 8494991191959516817, 6865035070324044902, 7694503311059671638),
+UInt256(4113499271435808023, 1395366953094620213, 13192979856332444032, 394757101969813740),
+UInt256(2570937044647380014, 7789633373325219489, 10551455419421471472, 246723188731133588),
+UInt256(3213671305809225018, 513669679801748553, 17801005292704227244, 308403985913916984),
+UInt256(4017089132261531272, 9865459136606961500, 8416198560598120343, 385504982392396230),
+UInt256(2510680707663457045, 6165911960379350937, 14483496137228601022, 7158469641636329500),
+UInt256(3138350884579321306, 12319075968901576576, 4269312116253587565, 18171459088900187683),
+UInt256(3922938605724151633, 6175472924272194912, 5336640145316984457, 8879265805843070892),
+UInt256(2451836628577594770, 15388885623738591580, 3335400090823115285, 17078756174720389067),
+UInt256(3064795785721993463, 10012734992818463667, 4169250113528894107, 7513387163118322622),
+UInt256(3830994732152491829, 7904232722595691680, 599876623483729730, 4780047935470515374),
+UInt256(2394371707595307393, 7245988460836001252, 374922889677331081, 7599215978096460013),
+UInt256(2992964634494134241, 13669171594472389469, 468653612096663851, 14110705991047962920),
+UInt256(3741205793117667802, 3251406437808323124, 5197503033548217718, 13026696470382565746),
+]
+
+private let bid_multipliers2_binary80_19: [UInt256] = [
+UInt256(2338253620698542376, 6643815042057589856, 12471811432822411882, 3529999275561715687),
+UInt256(2922817025873177970, 8304768802571987320, 15589764291028014852, 13635871131306920417),
+UInt256(3653521282341472463, 1157588966360208343, 1040461290075466949, 17044838914133650521),
+UInt256(4566901602926840578, 15282044263232424140, 15135634667876497399, 7470990587384899439),
+UInt256(2854313501829275361, 14162963682947652992, 236399630568035066, 11586898144756644006),
+UInt256(3567891877286594202, 3868646548402402528, 295499538210043833, 5260250644091029199),
+UInt256(4459864846608242752, 14059180222357778968, 369374422762554791, 11186999323541174402),
+UInt256(2787415529130151720, 8786987638973611855, 230859014226596744, 13909403604854315858),
+UInt256(3484269411412689650, 10983734548717014818, 14123631823065409642, 17386754506067894822),
+UInt256(4355336764265862063, 4506296149041492715, 8431167741976986245, 12510071095730092719),
+UInt256(2722085477666163789, 9733964120792014803, 2963636829521922451, 10124637444045001902),
+UInt256(3402606847082704736, 16779141169417406407, 17539604092184566776, 8044110786628864473),
+UInt256(4253258558853380921, 2527182388062206393, 17312819096803320566, 10055138483286080591),
+UInt256(2658286599283363075, 13108704038607348756, 3902982907860993498, 1672775533626412466),
+UInt256(3322858249104203844, 11774194029831798041, 4878728634826241872, 11314341453887791390),
+UInt256(4153572811380254805, 14717742537289747551, 10710096811960190244, 14142926817359739237),
+UInt256(2595983007112659253, 11504432095019786171, 13611339535116200758, 18062701297704612832),
+UInt256(3244978758890824067, 545482063492569002, 12402488400467863044, 13355004585275990231),
+UInt256(4056223448613530083, 14516910634647874965, 6279738463730052997, 16693755731594987789),
+UInt256(2535139655383456302, 6767226137441227901, 6230679549044977075, 12739440341460561320),
+UInt256(3168924569229320377, 17682404708656310684, 12400035454733609248, 11312614408398313746),
+UInt256(3961155711536650472, 8267947830538224643, 15500044318417011560, 14140768010497892183),
+UInt256(2475722319710406545, 5167467394086390402, 7381684689796938273, 8837980006561182614),
+UInt256(3094652899638008181, 11071020261035375907, 3733825391397033, 15659161026628866172),
+UInt256(3868316124547510227, 3717271012056171, 13839725337021410004, 5738893228003919003),
+UInt256(2417697577842193891, 16143224358878392771, 6343985326424687300, 12810180304357225185),
+UInt256(3022121972302742364, 15567344430170603060, 3318295639603471221, 16012725380446531481),
+UInt256(3777652465378427956, 1012436464003702209, 4147869549504339027, 6180848670276000639),
+UInt256(2361032790861517472, 9856144826857089688, 14121633514508681652, 1557187409708806448),
+UInt256(2951290988576896840, 12320181033571362110, 17652041893135852065, 1946484262136008059),
+UInt256(3689113735721121050, 15400226291964202638, 12841680329565039273, 7044791346097397978),
+UInt256(4611392169651401313, 10026910828100477490, 6828728375101523283, 13417675201049135377),
+UInt256(2882120106032125820, 17796034313631268191, 8879641252865839956, 6080203991442015659),
+UInt256(3602650132540157276, 3798298818329533623, 6487865547654912041, 7600254989302519573),
+UInt256(4503312665675196595, 4747873522911917029, 3498145916141252147, 14112004755055537370),
+UInt256(2814570416046997872, 661577942606254191, 4492184206801976544, 6514159962696016905),
+UInt256(3518213020058747340, 826972428257817739, 1003544240075082776, 8142699953370021131),
+UInt256(4397766275073434175, 1033715535322272173, 15089488355376017182, 10178374941712526413),
+UInt256(2748603921920896359, 7563601237217501964, 11736773231323704691, 1749798320142941104),
+UInt256(3435754902401120449, 4842815528094489551, 14670966539154630863, 16022305955460840092),
+UInt256(4294693628001400561, 10665205428545499843, 13727022155515900675, 15416196425898662211),
+UInt256(2684183517500875350, 18194968438909407162, 6273545837983743970, 7329279756972969930),
+UInt256(3355229396876094188, 13520338511781983144, 17065304334334455770, 18384971733070988221),
+UInt256(4194036746095117735, 16900423139727478931, 2884886344208518097, 13757842629483959468),
+UInt256(2621272966309448584, 17480293489970756187, 17943955029626181475, 1681122615786392812),
+UInt256(3276591207886810731, 3403622788753893618, 17818257768605338939, 15936461325015154726),
+UInt256(4095739009858513413, 18089586541224530735, 13049450173901897866, 15308890637841555504),
+UInt256(2559836881161570883, 13611834597479025661, 15073435386329768022, 14179742667078360094),
+UInt256(3199796101451963604, 12403107228421394173, 5006736177630046316, 8501306296993174309),
+UInt256(3999745126814954505, 15503884035526742716, 10870106240464945799, 10626632871241467887),
+]
+
+private let bid_multipliers2_binary80_20: [UInt256] = [
+UInt256(2499840704259346566, 2772398494563132341, 16017188437145366932, 13559174572166999285),
+UInt256(3124800880324183207, 12688870155058691235, 6186427491149544953, 16948968215208749107),
+UInt256(3906001100405229009, 11249401675395976140, 3121348345509543288, 7351152213728772671),
+UInt256(2441250687753268131, 113347019481403231, 11174214752798240363, 4594470133580482920),
+UInt256(3051563359691585163, 13976741829633917751, 9356082422570412550, 1131401648548215745),
+UInt256(3814454199614481454, 12859241268615009285, 7083417009785627783, 10637624097540045490),
+UInt256(2384033874759050909, 3425339774456992899, 6732978640329711316, 13566044088603610287),
+UInt256(2980042343448813636, 8893360736498629028, 3804537281984751241, 16957555110754512859),
+UInt256(3725052929311017045, 11116700920623286285, 4755671602480939052, 7361885833160977361),
+UInt256(2328158080819385653, 9253781084603247880, 5278137760764280859, 13824550682580386659),
+UInt256(2910197601024232066, 16178912374181447754, 6597672200955351074, 12669002334798095420),
+UInt256(3637747001280290083, 11000268430872033884, 17470462288048964651, 6612880881642843467),
+UInt256(4547183751600362604, 9138649520162654452, 3391333786351654198, 3654415083626166429),
+UInt256(2841989844750226627, 14935027986956434840, 11342955653324559681, 16119067482548517730),
+UInt256(3552487305937783284, 14057098965268155646, 14178694566655699602, 6313776297903483451),
+UInt256(4440609132422229105, 17571373706585194558, 8499996171464848694, 17115592409234130121),
+UInt256(2775380707763893191, 4064579538974664743, 700811588738142530, 6085559237343943422),
+UInt256(3469225884704866489, 469038405290943024, 14711072541204841874, 16830321083534705085),
+UInt256(4336532355881083111, 5197984025041066684, 18388840676506052343, 11814529317563605549),
+UInt256(2710332722425676944, 10166269043291748534, 2269653385961506906, 14301609851118335324),
+UInt256(3387915903032096180, 12707836304114685667, 12060438769306659441, 8653640277043143347),
+UInt256(4234894878790120225, 15884795380143357084, 10463862443205936397, 15428736364731317088),
+UInt256(2646809299243825141, 3010468084948516321, 15763286063858486056, 11948803237170767132),
+UInt256(3308511624054781426, 8374771124613033306, 5869049524540943858, 14936004046463458915),
+UInt256(4135639530068476783, 1245091868911515824, 16559683942530955631, 9446633021224547835),
+UInt256(2584774706292797989, 7695711445710779246, 10349802464081847269, 12821674665906424253),
+UInt256(3230968382865997486, 14231325325565861962, 3713881043247533279, 2192035277100866605),
+UInt256(4038710478582496858, 8565784620102551644, 13865723340914192406, 16575102151658246968),
+UInt256(2524194049114060536, 9965301405991482681, 17889449124926146062, 5747752826359016451),
+UInt256(3155242561392575670, 12456626757489353352, 8526753350875518865, 16408063069803546371),
+UInt256(3944053201740719588, 6347411410006915882, 10658441688594398582, 6675020781972269252),
+UInt256(2465033251087949742, 13190504168109098234, 11273212073798887017, 18006946044014831995),
+UInt256(3081291563859937178, 7264758173281596985, 4868143055393832964, 8673624499736376281),
+UInt256(3851614454824921472, 18304319753456772039, 10696864837669679109, 10842030624670470352),
+UInt256(2407259034265575920, 11440199845910482524, 13603069551184631299, 9082112149632737922),
+UInt256(3009073792831969900, 14300249807388103155, 17003836938980789124, 6740954168613534498),
+UInt256(3761342241039962375, 17875312259235128944, 16643110155298598501, 8426192710766918123),
+UInt256(2350838900649976484, 18089599189663037446, 10401943847061624063, 7572213453443017779),
+UInt256(2938548625812470606, 4165254913369245192, 3779057771972254271, 4853580798376384320),
+UInt256(3673185782265588257, 14429940678566332298, 4723822214965317839, 1455289979543092495),
+UInt256(4591482227831985322, 4202367792925751660, 15128149805561423106, 15654170529711029331),
+UInt256(2869676392394990826, 7238165889005982692, 231721591621113633, 14395542599496781236),
+UInt256(3587095490493738532, 18271079398112254173, 289651989526392042, 4159370194088812833),
+UInt256(4483869363117173166, 4392105173930766100, 4973751005335377956, 14422584779465791849),
+UInt256(2802418351948233228, 16580123788988892524, 12331966415189387030, 18237487524020895714),
+UInt256(3503022939935291536, 2278410662526564039, 15414958018986733788, 13573487368171343834),
+UInt256(4378778674919114420, 2848013328158205049, 14657011505306029331, 16966859210214179793),
+UInt256(2736736671824446512, 11003380366953653964, 2243103163175186476, 8298443997170168419),
+UInt256(3420920839780558140, 13754225458692067455, 2803878953968983095, 10373054996462710523),
+UInt256(4276151049725697675, 17192781823365084318, 17339906747743392581, 8354632727151000250),
+]
+
+private let bid_multipliers2_binary80_21: [UInt256] = [
+UInt256(2672594406078561047, 8439645630389483747, 6225755698912232459, 7527488463683069108),
+UInt256(3340743007598201309, 5937871019559466780, 3170508605212902670, 4797674561176448481),
+UInt256(4175928759497751636, 12034024792876721379, 3963135756516128337, 15220465238325336409),
+UInt256(2609955474686094772, 16744637532402726670, 171116838608886259, 2595261746312253400),
+UInt256(3262444343357618466, 2484052841793856721, 9437268085115883631, 17079135238172480462),
+UInt256(4078055429197023082, 12328438089097096709, 16408271124822242443, 16737233029288212673),
+UInt256(2548784643248139426, 12316959824113073347, 12561012462227595479, 8154927634091438969),
+UInt256(3185980804060174283, 6172827743286565876, 11089579559357106445, 5581973524186910807),
+UInt256(3982476005075217854, 3104348660680819441, 13861974449196383056, 11589152923661026413),
+UInt256(2489047503172011158, 15775275968207675863, 1746205003106657554, 7243220577288141508),
+UInt256(3111309378965013948, 10495722923404819020, 16017814309165485654, 18277397758464952693),
+UInt256(3889136723706267435, 13119653654256023776, 1575523812747305452, 13623375161226415058),
+UInt256(2430710452316417147, 5893940524696320908, 984702382967065907, 17737981512621285220),
+UInt256(3038388065395521434, 2755739637443013231, 1230877978708832384, 17560790872349218620),
+UInt256(3797985081744401792, 12668046583658542346, 15373655528668204193, 3504244516726971659),
+UInt256(2373740676090251120, 7917529114786588966, 14220220723845015524, 13719367869022827047),
+UInt256(2967175845112813900, 9896911393483236208, 8551903867951493597, 17149209836278533809),
+UInt256(3708969806391017375, 12371139241854045260, 10689879834939366997, 7601454240066003549),
+UInt256(2318106128994385859, 14649491053799860143, 15904546933691880181, 7056751909254946170),
+UInt256(2897632661242982324, 13700177798822437275, 15268997648687462322, 13432625904996070617),
+UInt256(3622040826553727905, 17125222248528046594, 14474561042431939999, 7567410344390312463),
+UInt256(4527551033192159882, 7571469755377894531, 8869829266185149191, 4847576912060502675),
+UInt256(2829719395745099926, 9343854615538571986, 3237800282152024292, 9947264597678896028),
+UInt256(3537149244681374908, 2456446232568439174, 13270622389544806173, 12434080747098620035),
+UInt256(4421436555851718635, 3070557790710548968, 7364905950076231909, 1707542878591111331),
+UInt256(2763397847407324146, 18059999683689950769, 4603066218797644943, 3373057308333138534),
+UInt256(3454247309259155183, 13351627567757662653, 10365518791924444082, 18051379690698586880),
+UInt256(4317809136573943979, 12077848441269690412, 17568584508332943007, 13340852576518457791),
+UInt256(2698630710358714987, 5242812266579862556, 1756993280853313571, 15255561887965117976),
+UInt256(3373288387948393734, 1941829314797440291, 2196241601066641964, 14457766341529009566),
+UInt256(4216610484935492167, 11650658680351576171, 16580360056615466167, 18072207926911261957),
+UInt256(2635381553084682604, 14199190702860816963, 8056882026170972402, 18212658981960620579),
+UInt256(3294226941355853255, 17748988378576021204, 5459416514286327599, 13542451690595999916),
+UInt256(4117783676694816569, 17574549454792638601, 6824270642857909499, 12316378594817611991),
+UInt256(2573614797934260356, 4066564381604317269, 15794384197854663197, 5391893612547313542),
+UInt256(3217018497417825445, 5083205477005396587, 5907922192036165284, 11351553034111529832),
+UInt256(4021273121772281806, 10965692864684133638, 2773216721617818701, 14189441292639412290),
+UInt256(2513295701107676129, 2241872022000195619, 15568318506293300400, 11174243817113326633),
+UInt256(3141619626384595161, 7414026045927632428, 14848712114439237596, 13967804771391658291),
+UInt256(3927024532980743951, 13879218575836928440, 114146069339495379, 17459755964239572864),
+UInt256(2454390333112964969, 15592040637539162131, 71341293337184612, 8606504468436039088),
+UInt256(3067987916391206212, 5654992741641788951, 13924234671953644477, 10758130585545048860),
+UInt256(3834984895489007765, 7068740927052236189, 12793607321514667692, 18059349250358698979),
+UInt256(2396865559680629853, 6723806088621341570, 10301847585160361260, 2063721244619411054),
+UInt256(2996081949600787316, 13016443629204064867, 3653937444595675767, 2579651555774263818),
+UInt256(3745102437000984145, 16270554536505081083, 18402479861026758420, 17059622499999993484),
+UInt256(2340689023125615091, 3251567557674593821, 9195706903928030061, 1438892025645220120),
+UInt256(2925861278907018863, 17899517502375405988, 16106319648337425480, 6410301050483913053),
+UInt256(3657326598633773579, 17762710859541869582, 1686155486712230234, 8012876313104891317),
+UInt256(4571658248292216974, 17591702555999949073, 11331066395245063601, 792723354526338338),
+]
+
+private let bid_multipliers2_binary80_22: [UInt256] = [
+UInt256(2857286405182635609, 6383128079072580267, 164387469387082894, 12024667142647431221),
+UInt256(3571608006478294511, 12590596117268113237, 14040542392016017330, 5807461891454513218),
+UInt256(4464510008097868139, 11126559128157753643, 3715619934737857950, 16482699401172917331),
+UInt256(2790318755061167587, 4648256445884902075, 16419449997467267, 5690001107305685428),
+UInt256(3487898443826459484, 1198634538928739689, 13855582367778997796, 2500815365704718881),
+UInt256(4359873054783074355, 1498293173660924612, 3484419904441583533, 3126019207130898601),
+UInt256(2724920659239421471, 17077334298033935546, 11401134477130765516, 4259605013670505578),
+UInt256(3406150824049276839, 16734981854115031529, 5028046059558681087, 5324506267088131972),
+UInt256(4257688530061596049, 16307041299216401507, 10896743592875739263, 2043946815432777061),
+UInt256(2661055331288497531, 3274371784369169086, 4504621736333643087, 8194995787286567519),
+UInt256(3326319164110621913, 17928022785743625069, 14854149207271829667, 5632058715680821495),
+UInt256(4157898955138277392, 8574970426897367625, 4732628453807623372, 2428387376173638965),
+UInt256(2598686846961423370, 5359356516810854765, 14487107829698234367, 10741114146963300161),
+UInt256(3248358558701779212, 15922567682868344265, 4273826731840629247, 8814706665276737297),
+UInt256(4060448198377224016, 1456465529875878715, 9953969433228174463, 6406697313168533717),
+UInt256(2537780123985765010, 910290956172424197, 3915387886553915087, 10921714848371415430),
+UInt256(3172225154982206262, 10361235732070306054, 9505920876619781763, 9040457542036881383),
+UInt256(3965281443727757828, 3728172628233106760, 2659029058919951396, 6688885909118713824),
+UInt256(2478300902329848642, 11553479929500467533, 1661893161824969622, 13403925730053971948),
+UInt256(3097876127912310803, 5218477875020808608, 6689052470708599932, 7531535125712689127),
+UInt256(3872345159890388504, 1911411325348622856, 8361315588385749915, 9414418907140861409),
+UInt256(2420215724931492815, 1194632078342889285, 5225822242741093697, 3578168807749344429),
+UInt256(3025269656164366018, 15328348153210775318, 11143963821853755025, 9084397028114068440),
+UInt256(3781587070205457523, 9937063154658693340, 4706582740462417973, 15967182303569973454),
+UInt256(2363491918878410952, 3904821462447989385, 12164986249643787041, 12285331948944927361),
+UInt256(2954364898598013690, 4881026828059986732, 1371174756772570090, 1521606880898995489),
+UInt256(3692956123247517112, 15324655571929759223, 1713968445965712612, 11125380637978520169),
+UInt256(2308097577029698195, 9577909732456099514, 7988759306369652238, 16176734935591350914),
+UInt256(2885121971287122744, 7360701147142736489, 762577096107289490, 10997546632634412834),
+UInt256(3606402464108903430, 9200876433928420611, 5564907388561499767, 4523561253938240235),
+UInt256(4508003080136129288, 2277723505555749956, 2344448217274486805, 1042765548995412389),
+UInt256(2817501925085080805, 1423577190972343722, 10688652172651330061, 2957571477335826695),
+UInt256(3521877406356351006, 6391157507142817557, 4137443178959386768, 8308650365097171273),
+UInt256(4402346757945438757, 17212318920783297754, 9783489992126621364, 10385812956371464091),
+UInt256(2751466723715899223, 13063542334703255048, 10726367263506526256, 15714505134586940865),
+UInt256(3439333404644874029, 11717741899951680906, 13407959079383157821, 1196387344524124465),
+UInt256(4299166755806092537, 812119319657437421, 7536576812374171468, 6107170199082543486),
+UInt256(2686979222378807835, 12036789620854368148, 7016203516947551119, 13040353411281365487),
+UInt256(3358724027973509794, 10434301007640572281, 8770254396184438899, 11688755745674318954),
+UInt256(4198405034966887243, 3819504222695939543, 15574504013657936528, 9999258663665510789),
+UInt256(2624003146854304527, 81347129971268262, 16651594036177292186, 6249536664790944243),
+UInt256(3280003933567880658, 13936741967746249040, 11591120508366839424, 17035292867843456112),
+UInt256(4100004916959850823, 8197555422828035492, 14488900635458549281, 2847372011094768524),
+UInt256(2562503073099906764, 12041001166908604038, 18278934934016369108, 13308822553002700087),
+UInt256(3203128841374883455, 15051251458635755048, 13625296630665685577, 16636028191253375109),
+UInt256(4003911051718604319, 14202378304867305906, 17031620788332106972, 6959977183784555174),
+UInt256(2502444407324127699, 15794015468183148047, 15256449011134954761, 13573357776720122792),
+UInt256(3128055509155159624, 15130833316801547155, 14458875245491305548, 3131639165617989778),
+UInt256(3910069386443949531, 466797572292382328, 13461908038436744031, 3914548957022487222),
+UInt256(2443793366527468456, 16432649547178596619, 8413692524022965019, 9364122125780136370),
+]
+
+private let bid_multipliers2_binary80_23: [UInt256] = [
+UInt256(3054741708159335571, 2094067860263694158, 5905429636601318370, 7093466638797782559),
+UInt256(3818427135199169463, 16452642880611781409, 16605159082606423770, 18090205335352004006),
+UInt256(2386516959499480914, 17200430828023445237, 3460695398987933000, 15918064353022390408),
+UInt256(2983146199374351143, 12277166498174530738, 8937555267162304155, 1450836367568436394),
+UInt256(3728932749217938929, 10734772104290775519, 1948572047098104385, 15648603514742709204),
+UInt256(2330582968261211830, 18238447611250204459, 8135386557077397097, 2862848169073111397),
+UInt256(2913228710326514788, 13574687477207979766, 5557547177919358467, 8190246229768777150),
+UInt256(3641535887908143485, 16968359346509974707, 16170306009253973892, 5626121768783583533),
+UInt256(4551919859885179357, 7375391127855304672, 15601196493140079461, 7032652210979479417),
+UInt256(2844949912428237098, 6915462464123259372, 9750747808212549663, 6701250641075868588),
+UInt256(3556187390535296372, 17867700117008850023, 12188434760265687079, 3764877282917447830),
+UInt256(4445234238169120466, 3887881072551510913, 10623857431904720945, 94410585219421884),
+UInt256(2778271398855700291, 7041611688772082224, 18169125941008920350, 11588221661830608438),
+UInt256(3472839248569625364, 4190328592537714877, 4264663352551598822, 5261905040433484739),
+UInt256(4341049060712031705, 5237910740672143596, 9942515209116886431, 15800753337396631731),
+UInt256(2713155662945019815, 14802909258988559507, 15437444042552829827, 16792999863513976688),
+UInt256(3391444578681274769, 13891950555308311480, 14685119034763649380, 16379563810965082956),
+UInt256(4239305723351593462, 3529880138853225638, 18356398793454561726, 2027710689996802079),
+UInt256(2649566077094745913, 16041233142065429736, 6861063227481713174, 15102377236530165012),
+UInt256(3311957596368432392, 6216483372299623458, 8576329034352141468, 9654599508807930456),
+UInt256(4139946995460540490, 7770604215374529323, 1497039256085401027, 12068249386009913070),
+UInt256(2587466872162837806, 9468313653036468730, 17076550599549233306, 5236812857042501717),
+UInt256(3234333590203547258, 2612020029440810105, 12122316212581765824, 15769388108157902954),
+UInt256(4042916987754434072, 12488397073655788440, 1317837210445043569, 1264991061487827077),
+UInt256(2526823117346521295, 7805248171034867775, 823648256528152230, 12319834459498361683),
+UInt256(3158528896683151619, 5144874195366196814, 14864618375942354000, 6176421037518176296),
+UInt256(3948161120853939524, 1819406725780358114, 9357400933073166692, 7720526296897720370),
+UInt256(2467600700533712202, 10360501240467499629, 10460061601598117086, 14048700972415851039),
+UInt256(3084500875667140253, 3727254513729598728, 17686763020425034262, 8337504178665037991),
+UInt256(3855626094583925316, 9270754160589386315, 3661709701821741212, 1198508186476521681),
+UInt256(2409766309114953322, 15017593387223142254, 18429469628134445921, 9972439653402601859),
+UInt256(3012207886393691653, 9548619697174152010, 13813464998313281593, 17077235585180640227),
+UInt256(3765259857992114566, 16547460639895077917, 8043459211036826184, 7511486426193636572),
+UInt256(2353287411245071604, 5730476881507035794, 7333005016111710317, 4694679016371022858),
+UInt256(2941609264056339505, 7163096101883794742, 18389628306994413704, 10480034788891166476),
+UInt256(3677011580070424381, 13565556145782131332, 13763663346888241322, 13100043486113958095),
+UInt256(4596264475088030477, 3121887126945500453, 17204579183610301653, 7151682320787671810),
+UInt256(2872665296930019048, 4257022463554631735, 13058704998970132485, 6775644459705988834),
+UInt256(3590831621162523810, 5321278079443289669, 11711695230285277702, 13081241593059873946),
+UInt256(4488539526453154762, 15874969636158887895, 804560982574433416, 7128179954470066624),
+UInt256(2805337204033221726, 14533542041026692838, 7420379641750102741, 4455112471543791640),
+UInt256(3506671505041527158, 8943555514428590240, 52102515332852618, 10180576607857127454),
+UInt256(4383339381301908948, 1956072356180961992, 65128144166065773, 3502348722966633510),
+UInt256(2739587113313693092, 10445917259467877053, 40705090103791108, 4494810961067839896),
+UInt256(3424483891642116365, 13057396574334846316, 4662567381057126789, 5618513701334799869),
+UInt256(4280604864552645457, 2486687662636394183, 5828209226321408486, 11634828145095887741),
+UInt256(2675378040345403410, 13083394835216216124, 10560159794091962160, 2660081572257541934),
+UInt256(3344222550431754263, 7130871507165494347, 13200199742614952700, 3325101965321927418),
+UInt256(4180278188039692829, 4301903365529480030, 11888563659841302971, 4156377456652409272),
+UInt256(2612673867524808018, 4994532612669618971, 2818666268973426453, 291892901194061843),
+]
+
+private let bid_multipliers2_binary80_24: [UInt256] = [
+UInt256(3265842334406010022, 15466537802691799521, 17358390891498946778, 4976552144919965208),
+UInt256(4082302918007512528, 10109800216509973594, 7862930559091519760, 15444062218004732318),
+UInt256(2551439323754695330, 6318625135318733496, 9526017617859587754, 9652538886252957699),
+UInt256(3189299154693369162, 17121653456003192678, 11907522022324484693, 2842301570961421315),
+UInt256(3986623943366711453, 12178694783149215040, 5661030491050830058, 8164562982129164548),
+UInt256(2491639964604194658, 9917527248681953352, 3538144056906768786, 9714537882258115747),
+UInt256(3114549955755243323, 3173537023997665882, 4422680071133460983, 2919800315967868875),
+UInt256(3893187444694054153, 17801979335279246064, 14751722125771602036, 17484808450241999806),
+UInt256(2433242152933783846, 4208708056908446934, 9219826328607251273, 1704633244546474071),
+UInt256(3041552691167229807, 14484257107990334476, 2301410873904288283, 6742477574110480492),
+UInt256(3801940863959037259, 13493635366560530191, 2876763592380360354, 3816410949210712711),
+UInt256(2376213039974398287, 6127679094886637417, 8715506272878807077, 6996942861684083349),
+UInt256(2970266299967997859, 3047912850180908867, 15506068859525896750, 13357864595532492090),
+UInt256(3712832874959997323, 17644949118008299796, 14770900055979983034, 7473958707560839304),
+UInt256(2320520546849998327, 8722250189541493421, 8440498132713588, 9282910210652912469),
+UInt256(2900650683562497909, 6291126718499478872, 4622236641093279889, 11603637763316140587),
+UInt256(3625813354453122386, 12475594416551736494, 5777795801366599862, 669489148863012021),
+UInt256(4532266693066402983, 6371120983834894809, 16445616788563025635, 10060233472933540834),
+UInt256(2832666683166501864, 10899479642537891112, 3360981465210809166, 3981802911369769070),
+UInt256(3540833353958127330, 13624349553172363890, 4201226831513511457, 14200625676066987145),
+UInt256(4426041692447659163, 7807064904610679054, 14474905576246665130, 3915724039801570219),
+UInt256(2766276057779786977, 2573572556167980457, 4435129966726777802, 7059013543303369291),
+UInt256(3457845072224733721, 7828651713637363475, 10155598476835860156, 18047138965983987422),
+UInt256(4322306340280917151, 14397500660474092248, 8082812077617437292, 4112179633770432661),
+UInt256(2701441462675573219, 15915966940437389511, 5051757548510898307, 11793484307961296221),
+UInt256(3376801828344466524, 15283272657119348985, 1703010917211234980, 10130169366524232372),
+UInt256(4221002285430583156, 657346747689634615, 6740449664941431629, 12662711708155290465),
+UInt256(2638126428394114472, 9634213754160797442, 11130310068229476624, 10220037826810750493),
+UInt256(3297658035492643090, 12042767192700996803, 4689515548432069972, 12775047283513438116),
+UInt256(4122072544365803863, 5830086954021470196, 1250208417112699561, 15968809104391797645),
+UInt256(2576295340228627414, 10561333373904500728, 10004752297550213034, 3062976662603791672),
+UInt256(3220369175285784268, 3978294680525850102, 12505940371937766292, 13052092865109515398),
+UInt256(4025461469107230335, 4972868350657312628, 6409053428067432057, 16315116081386894248),
+UInt256(2515913418192018959, 10025571746801902248, 13229030429396920844, 3279418523225727049),
+UInt256(3144891772740023699, 7920278665074989906, 16536288036746151055, 4099273154032158811),
+UInt256(3931114715925029624, 5288662312916349479, 11446988009077913011, 512405424112810610),
+UInt256(2456946697453143515, 3305413945572718424, 14071896533314777487, 16461154454566364295),
+UInt256(3071183371816429393, 17966825487248061742, 17589870666643471859, 15964757049780567465),
+UInt256(3838979214770536742, 8623473803777913466, 12763966296449564016, 15344260293798321427),
+UInt256(2399362009231585464, 777985108933808012, 12589164953708365414, 9590162683623950892),
+UInt256(2999202511539481830, 972481386167260015, 15736456192135456768, 2764331317675162807),
+UInt256(3749003139424352287, 10438973769563850827, 15058884221741933056, 3455414147093953509),
+UInt256(2343126962140220179, 13441887633618488623, 7105959629375014208, 2159633841933720943),
+UInt256(2928908702675275224, 12190673523595722875, 4270763518291379856, 2699542302417151179),
+UInt256(3661135878344094030, 15238341904494653594, 726768379436836916, 3374427878021438973),
+UInt256(4576419847930117538, 9824555343763541184, 10131832511150821953, 4218034847526798717),
+UInt256(2860262404956323461, 10752033108279601144, 6332395319469263720, 14165486825772718958),
+UInt256(3575328006195404326, 18051727403776889334, 7915494149336579650, 17706858532215898698),
+UInt256(4469160007744255408, 13341287217866335860, 670995649815948755, 12910201128415097564),
+UInt256(2793225004840159630, 8338304511166459912, 9642744317989743780, 5763032696045742026),
+]
+
+private let bid_multipliers2_binary80_25: [UInt256] = [
+UInt256(3491531256050199538, 1199508602103299082, 12053430397487179725, 7203790870057177532),
+UInt256(4364414070062749422, 10722757789483899661, 5843415960004198848, 13616424605998859819),
+UInt256(2727758793789218389, 2090037600000049384, 5957977984216318232, 8510265378749287387),
+UInt256(3409698492236522986, 7224233018427449634, 7447472480270397790, 10637831723436609233),
+UInt256(4262123115295653732, 18253663309889087851, 85968563483221430, 4073917617440985734),
+UInt256(2663826947059783583, 2185167531825904098, 16194631416672871057, 16381256566182779796),
+UInt256(3329783683824729478, 16566517470064543835, 11019917233986313014, 6641512652446311033),
+UInt256(4162229604780911848, 11484774800725903986, 9163210524055503363, 17525262852412664599),
+UInt256(2601393502988069905, 7177984250453689991, 10338692595962077506, 8647446273544221422),
+UInt256(3251741878735087381, 13584166331494500393, 8311679726525208979, 1585935805075500970),
+UInt256(4064677348418859227, 3145149859085961779, 15001285676583899127, 15817477811626539924),
+UInt256(2540423342761787016, 18106619726424583776, 7069960538651243002, 16803452659907669309),
+UInt256(3175529178452233771, 4186530584321178104, 8837450673314053753, 11780943788029810828),
+UInt256(3969411473065292214, 621477211974084726, 11046813341642567192, 891121679755099823),
+UInt256(2480882170665807633, 14223481312765966666, 2292572320099216591, 556951049846937389),
+UInt256(3101102713332259542, 3944293585675294620, 12089087436978796546, 14531246867590835448),
+UInt256(3876378391665324427, 14153739018948894083, 15111359296223495683, 8940686547633768502),
+UInt256(2422736494790827767, 6540243877629364850, 7138756550925990850, 3282086083057411362),
+UInt256(3028420618488534709, 3563618828609318158, 18146817725512264370, 13325979640676540011),
+UInt256(3785525773110668386, 9066209554189035602, 13460150120035554655, 7434102513990899205),
+UInt256(2365953608194167741, 10278066989795535155, 13024279843449609563, 11563843098885393859),
+UInt256(2957442010242709676, 17459269755671806848, 11668663785884624050, 9843117855179354420),
+UInt256(3696802512803387096, 3377343120880206944, 14585829732355780063, 3080525282119417217),
+UInt256(2310501570502116935, 2110839450550129340, 9116143582722362539, 8842857328965717617),
+UInt256(2888126963127646168, 16473607368469825387, 11395179478402953174, 6441885642779759117),
+UInt256(3610158703909557711, 2145265136877730118, 9632288329576303563, 17275729090329474704),
+UInt256(4512698379886947138, 16516639476379326360, 2816988375115603646, 16982975344484455476),
+UInt256(2820436487429341961, 14934585691164466879, 1760617734447252279, 6002673571875396769),
+UInt256(3525545609286677452, 4833174058673419886, 16035830223341229061, 2891655946416858057),
+UInt256(4406932011608346815, 6041467573341774858, 10821415742321760518, 8226255951448460475),
+UInt256(2754332507255216759, 10693446260979691142, 11375070857378488228, 529723951227899893),
+UInt256(3442915634069020949, 8755121807797226024, 4995466534868334477, 662154939034874866),
+UInt256(4303644542586276186, 15555588278173920434, 6244333168585418096, 5439379692220981486),
+UInt256(2689777839116422616, 14333928692286088175, 8514394248793274214, 3399612307638113429),
+UInt256(3362222298895528270, 17917410865357610219, 6031306792564204863, 13472887421402417594),
+UInt256(4202777873619410338, 13173391544842236966, 2927447472277868175, 12229423258325634089),
+UInt256(2626736171012131461, 12845055733953786007, 15664712725455831321, 14560918564094603162),
+UInt256(3283420213765164327, 2221261612160068797, 14969204888392401248, 4366090149836090240),
+UInt256(4104275267206455408, 16611635070482249709, 4876448055208337848, 5457612687295112800),
+UInt256(2565172042004034630, 10382271919051406068, 5353623043718905107, 3411007929559445500),
+UInt256(3206465052505043288, 3754467861959481777, 6692028804648631383, 18098817967231470587),
+UInt256(4008081315631304110, 4693084827449352221, 12976722024238177133, 18011836440611950330),
+UInt256(2505050822269565068, 16768236072438008850, 10416294274362554660, 13563240784596162908),
+UInt256(3131313527836956336, 2513551016837959447, 3796995806098417517, 16954050980745203635),
+UInt256(3914141909796195420, 3141938771047449309, 134558739195633993, 7357505670649340832),
+UInt256(2446338693622622137, 11187083768759431626, 2389942221210965197, 16127656090224307780),
+UInt256(3057923367028277672, 148796655667125820, 12210799813368482305, 6324512057498221013),
+UInt256(3822404208785347090, 185995819583907275, 15263499766710602881, 12517326090300164170),
+UInt256(2389002630490841931, 4727933405667329951, 7233844344980432849, 905799778796520750),
+UInt256(2986253288113552414, 1298230738656774535, 4430619412798153157, 5743935741923038842),
+]
+
+private let bid_multipliers2_binary80_26: [UInt256] = [
+UInt256(3732816610141940517, 10846160460175743977, 926588247570303542, 11791605695831186456),
+UInt256(2333010381338712823, 9084693296823533937, 12108332700799909474, 2758067541467103631),
+UInt256(2916262976673391029, 6744180602602029518, 1300357820717723130, 12670956463688655347),
+UInt256(3645328720841738786, 13041911771679924801, 10848819312751929721, 6615323542756043376),
+UInt256(4556660901052173483, 7079017677745130193, 18172710159367300055, 12880840446872442124),
+UInt256(2847913063157608427, 2118543039377012419, 4440414821963480678, 14968054306936358183),
+UInt256(3559891328947010533, 16483236854503429236, 938832509026962944, 9486695846815671921),
+UInt256(4449864161183763167, 6768988012847122833, 1173540636283703680, 11858369808519589901),
+UInt256(2781165100739851979, 11148146535670533626, 12262677943745784560, 7411481130324743689),
+UInt256(3476456375924814974, 9323497151160779129, 6104975392827454892, 9264351412905929611),
+UInt256(4345570469906018718, 2430999402096198103, 12242905259461706519, 11580439266132412013),
+UInt256(2715981543691261698, 15354432681592287526, 14569344814804648430, 14155303568973839364),
+UInt256(3394976929614077123, 9969668815135583600, 8988308981651034730, 8470757424362523397),
+UInt256(4243721162017596404, 7850400000492091596, 11235386227063793413, 1365074743598378438),
+UInt256(2652325726260997752, 14129872037162333055, 16245488428769646691, 3159014723962680476),
+UInt256(3315407157826247190, 17662340046452916319, 15695174517534670459, 17783826460235514307),
+UInt256(4144258947282808988, 12854553021211369591, 15007282128490950170, 17618097056867004980),
+UInt256(2590161842051755617, 17257467675111881802, 16297080357947925712, 15622996678969266017),
+UInt256(3237702302564694522, 7736776538607688541, 11147978410580131333, 1082001775002030905),
+UInt256(4047127878205868153, 447598636404834869, 99914957943000454, 5964188237179926535),
+UInt256(2529454923878667595, 11808964193821491553, 2368289857928069235, 17562675703519617796),
+UInt256(3161818654848334494, 10149519223849476537, 7572048340837474448, 17341658610972134341),
+UInt256(3952273318560418118, 3463526992957069863, 14076746444474230965, 3230329190005616311),
+UInt256(2470170824100261323, 15999762425880332376, 15715495555437476209, 4324798752967204146),
+UInt256(3087713530125326654, 15388017013923027567, 1197625370587293645, 10017684459636393087),
+UInt256(3859641912656658318, 10011649230549008650, 15332089768516280768, 17133791592972879262),
+UInt256(2412276195410411449, 1645594750665742502, 14194242123750063384, 10708619745608049539),
+UInt256(3015345244263014311, 6668679456759566032, 8519430617832803422, 13385774682010061924),
+UInt256(3769181555328767889, 3724163302522069636, 10649288272291004278, 7508846315657801597),
+UInt256(2355738472080479930, 13856817110144763282, 15879177207036653482, 81342928858738094),
+UInt256(2944673090100599913, 8097649350826178295, 10625599471941041044, 9325050697928198425),
+UInt256(3680841362625749891, 14733747706960110773, 8670313321498913401, 11656313372410248032),
+UInt256(4601051703282187364, 13805498615272750562, 15449577670301029656, 735333660230646327),
+UInt256(2875657314551367102, 17851808671400244909, 14267672062365531439, 459583537644153955),
+UInt256(3594571643189208878, 13091388802395530329, 3999532022674750586, 14409537477337356155),
+UInt256(4493214553986511098, 7140863966139637103, 9611101046770826137, 8788549809816919386),
+UInt256(2808259096241569436, 9074725997264661093, 12924467181872848191, 17022058677204044377),
+UInt256(3510323870301961795, 11343407496580826367, 2320525922058896527, 16665887328077667567),
+UInt256(4387904837877452244, 9567573352298645054, 16735715457855784371, 16220673141669696554),
+UInt256(2742440523673407652, 15203105382041428967, 5848136142732477328, 7832077704329866394),
+UInt256(3428050654591759566, 557137653842234593, 2698484159988208756, 9790097130412332993),
+UInt256(4285063318239699457, 9919794104157569049, 7984791218412648849, 12237621413015416241),
+UInt256(2678164573899812160, 17729086361166950415, 16519709557576375291, 730984355493553295),
+UInt256(3347705717374765201, 3714613877749136403, 16037950928543081209, 14748788499649105330),
+UInt256(4184632146718456501, 9254953365613808408, 15435752642251463608, 4600927569279217951),
+UInt256(2615395091699035313, 8090188862722324207, 9647345401407164755, 2875579730799511220),
+UInt256(3269243864623794141, 14724422096830293163, 7447495733331568039, 17429532718781552736),
+UInt256(4086554830779742677, 4570469565755702742, 4697683648237072145, 17175229880049553016),
+UInt256(2554096769237339173, 5162386487811008165, 16771110335430333803, 3816989647389888779),
+UInt256(3192620961546673966, 11064669128191148111, 7128829864005753542, 159551040809973070),
+]
+
+private let bid_multipliers2_binary80_27: [UInt256] = [
+UInt256(3990776201933342458, 4607464373384159331, 4299351311579804023, 9422810837867242145),
+UInt256(2494235126208339036, 7491351251792487486, 381251560523683562, 12806785801308108197),
+UInt256(3117793907760423795, 9364189064740609357, 9699936487509380261, 6785110214780359438),
+UInt256(3897242384700529744, 7093550312498373792, 16736606627814113230, 13093073786902837202),
+UInt256(2435776490437831090, 4433468945311483620, 10460379142383820769, 3571485098386885347),
+UInt256(3044720613047288862, 14765208218494130333, 13075473927979775961, 9076042391410994588),
+UInt256(3805900766309111078, 9233138236262887109, 2509284354692556239, 15956739007691131139),
+UInt256(2378687978943194424, 1159025379236916539, 3874145730896541601, 16890490907448038818),
+UInt256(2973359973678993030, 1448781724046145674, 230996145193289098, 7278055579027884810),
+UInt256(3716699967098741287, 11034349191912457900, 9512117218346387180, 18320941510639631821),
+UInt256(2322937479436713304, 13813997272586368043, 15168445298321267796, 2227216407294994080),
+UInt256(2903671849295891630, 17267496590732960054, 14348870604474196841, 2784020509118742600),
+UInt256(3629589811619864538, 12360998701561424260, 8712716218737970243, 8091711654825816154),
+UInt256(4536987264524830673, 6227876340097004517, 10890895273422462804, 5502953550104882288),
+UInt256(2835617040328019170, 15421637758629097583, 9112652555102733204, 12662718005670327238),
+UInt256(3544521300410023963, 10053675161431596171, 6779129675451028601, 15828397507087909048),
+UInt256(4430651625512529954, 7955407933362107310, 3862226075886397848, 5950438828577722598),
+UInt256(2769157265945331221, 9583815976778704972, 16248949352711162367, 3719024267861076624),
+UInt256(3461446582431664026, 16591455989400769120, 1864442617179401343, 37094316398957876),
+UInt256(4326808228039580033, 11515947949896185592, 2330553271474251678, 13881425950780861056),
+UInt256(2704255142524737521, 279938441044034139, 1456595794671407299, 4064205200810650256),
+UInt256(3380318928155921901, 4961609069732430577, 15655802798621422836, 468570482585924916),
+UInt256(4225398660194902376, 10813697355592926126, 5734695442994614833, 585713103232406145),
+UInt256(2640874162621813985, 6758560847245578828, 17419242707153797982, 11895285735588723601),
+UInt256(3301092703277267481, 13059887077484361440, 3327309310232695862, 5645735132631128693),
+UInt256(4126365879096584352, 2489800791573288088, 4159136637790869827, 16280540952643686674),
+UInt256(2578978674435365220, 1556125494733305055, 2599460398619293642, 7869495086188610220),
+UInt256(3223723343044206525, 1945156868416631318, 17084383553556280765, 613496820880986966),
+UInt256(4029654178805258156, 7043132103948177052, 12132107405090575148, 5378557044528621612),
+UInt256(2518533861753286347, 13625329601822386465, 16805939165036385275, 12584970189685164316),
+UInt256(3148167327191607934, 12419975983850595178, 7172365901013317882, 11119526718679067490),
+UInt256(3935209158989509918, 6301597942958468164, 18188829413121423161, 4676036361494058555),
+UInt256(2459505724368443698, 17773556769631206315, 2144646346346113667, 14451737772002256357),
+UInt256(3074382155460554623, 12993573925184232085, 16515865988214805796, 13452986196575432542),
+UInt256(3842977694325693279, 11630281388052902203, 6809774429986343533, 16816232745719290677),
+UInt256(2401861058953558299, 14186454895174145733, 1950266009527770756, 12815988475288250626),
+UInt256(3002326323691947874, 13121382600540294262, 7049518530337101349, 16019985594110313282),
+UInt256(3752907904614934843, 7178356213820592019, 18035270199776152495, 6189923937355727890),
+UInt256(2345567440384334277, 2180629624424176060, 8966200865646401357, 10786231488488411788),
+UInt256(2931959300480417846, 7337473048957607979, 11207751082058001696, 18094475379037902638),
+UInt256(3664949125600522307, 18395213348051785782, 9398002834145114217, 4171350150087826682),
+UInt256(4581186407000652884, 18382330666637344324, 2524131505826616963, 9825873706037171256),
+UInt256(2863241504375408053, 2265584629793564394, 10800954227996411410, 3835328057059538083),
+UInt256(3579051880469260066, 7443666805669343397, 4277820748140738454, 14017532108179198412),
+UInt256(4473814850586575083, 81211470231903438, 9958961953603310972, 8298543098369222207),
+UInt256(2796134281616609426, 16191658233390797313, 1612665202574681453, 14409961473335539687),
+UInt256(3495167852020761783, 11016200754883720833, 6627517521645739721, 4177393786387260897),
+UInt256(4368959815025952229, 9158564925177263137, 12896082920484562555, 9833428251411464025),
+UInt256(2730599884391220143, 8029946087449483413, 1142522797661769741, 3840049647918471064),
+UInt256(3413249855489025179, 5425746590884466362, 6039839515504600080, 9411748078325476734),
+]
+
+private let bid_multipliers2_binary80_28: [UInt256] = [
+UInt256(4266562319361281474, 2170497220178195048, 16773171431235525908, 11764685097906845917),
+UInt256(2666601449600800921, 5968246781038759809, 10483232144522203692, 16576300223046554506),
+UInt256(3333251812001001151, 12071994494725837665, 17715726199080142520, 2273631205098641517),
+UInt256(4166564765001251439, 10478307099979909178, 8309599693568014438, 2842039006373301896),
+UInt256(2604102978125782149, 13466470965128525092, 9805185826907396927, 15611332434265477397),
+UInt256(3255128722657227687, 2998030651128492653, 12256482283634246159, 14902479524404458842),
+UInt256(4068910903321534608, 17582596369192779529, 1485544799260643987, 14016413387078185649),
+UInt256(2543069314575959130, 10989122730745487205, 12457680545606372252, 6454415357710172079),
+UInt256(3178836643219948913, 4513031376577083199, 1737042626725801603, 8068019197137715098),
+UInt256(3973545804024936141, 10252975239148741902, 16006361338689415716, 5473337977994755969),
+UInt256(2483466127515585088, 8713952533681657641, 5392289818253496918, 12644208273101498289),
+UInt256(3104332659394481360, 10892440667102072051, 11352048291244259052, 6581888304522097053),
+UInt256(3880415824243101700, 13615550833877590064, 9578374345627935911, 8227360380652621316),
+UInt256(2425259890151938562, 17733091308028269598, 5986483966017459944, 12059629265548970179),
+UInt256(3031574862689923203, 12942992098180561189, 16706476994376600738, 15074536581936212723),
+UInt256(3789468578362404004, 11567054104298313583, 7048038187688587211, 9619798690565490096),
+UInt256(2368417861476502502, 16452780852041221797, 11322552894946448863, 3706531172389737358),
+UInt256(2960522326845628128, 11342604028196751439, 318133063400897367, 21477947059783793),
+UInt256(3700652908557035160, 14178255035245939298, 14232724384533285420, 13861905489106893454),
+UInt256(2312908067848146975, 8861409397028712061, 13507138758760691291, 17887062967546584217),
+UInt256(2891135084810183719, 6465075727858502173, 3048865393168700402, 17747142691005842367),
+UInt256(3613918856012729649, 3469658641395739812, 8422767759888263407, 12960556326902527150),
+UInt256(4517398570015912061, 8948759320172062669, 10528459699860329259, 11589009390200771034),
+UInt256(2823374106259945038, 7898817584321233120, 8886130321626399739, 4937287859661787944),
+UInt256(3529217632824931298, 650149943546765592, 11107662902032999674, 1559923806149847026),
+UInt256(4411522041031164122, 10036059466288232798, 13884578627541249592, 11173276794542084591),
+UInt256(2757201275644477576, 10884223184857533403, 4066175623785893091, 6983297996588802869),
+UInt256(3446501594555596970, 13605278981071916754, 471033511304978460, 4117436477308615683),
+UInt256(4308126993194496213, 7783226689485120134, 9812163925985998883, 5146795596635769603),
+UInt256(2692579370746560133, 7170359690141894036, 1520916435313861398, 910904238683662050),
+UInt256(3365724213433200166, 13574635631104755449, 1901145544142326747, 10362002335209353370),
+UInt256(4207155266791500208, 7744922502026168503, 6988117948605296338, 8340816900584303809),
+UInt256(2629472041744687630, 4840576563766355314, 11285102745519392067, 9824696581292577785),
+UInt256(3286840052180859537, 15274092741562719951, 4883006395044464276, 7669184708188334327),
+UInt256(4108550065226074422, 5257557871671236227, 1492071975378192441, 9586480885235417908),
+UInt256(2567843790766296513, 17121031725076686353, 17073446049107227939, 17520765599340605953),
+UInt256(3209804738457870642, 7566231601063694230, 7506749506101871212, 17289270980748369537),
+UInt256(4012255923072338303, 234417464474841980, 160064845772563208, 3164844652225910305),
+UInt256(2507659951920211439, 7064039942937858093, 9323412565462627813, 1978027907641193941),
+UInt256(3134574939900264299, 4218363910244934712, 16265951725255672670, 7084220902978880330),
+UInt256(3918218674875330374, 661268869378780487, 1885695582860039221, 18078648165578376220),
+UInt256(2448886671797081483, 14248351098643901516, 8096088766928606369, 13604998112700179090),
+UInt256(3061108339746351854, 13198752854877488991, 10120110958660757962, 3171189585593060150),
+UInt256(3826385424682939818, 7275069031742085431, 8038452679898559548, 13187359018846100996),
+UInt256(2391490890426837386, 9158604163266191298, 11941561952577681573, 17465471423633588931),
+UInt256(2989363613033546733, 2224883167227963315, 5703580403867326159, 7996781224259822451),
+UInt256(3736704516291933416, 7392789977462342048, 2517789486406769795, 5384290511897390160),
+UInt256(2335440322682458385, 4620493735913963780, 1573618429004231122, 1059338560722174898),
+UInt256(2919300403353072981, 10387303188319842629, 1967023036255288902, 10547545237757494430),
+UInt256(3649125504191341226, 17595815003827191190, 7070464813746499032, 3961059510342092230),
+]
+
+private let bid_multipliers2_binary80_29: [UInt256] = [
+UInt256(4561406880239176533, 12771396717929213179, 18061453054037899598, 4951324387927615287),
+UInt256(2850879300149485333, 10287965957919452189, 8982565149559993296, 16929635797736923267),
+UInt256(3563599125186856666, 17471643465826703140, 15839892455377379525, 2715300673461602467),
+UInt256(4454498906483570833, 12616182295428603118, 1353121495512172790, 8005811860254390988),
+UInt256(2784061816552231771, 967584907001795092, 14680758989977271706, 391946394231606464),
+UInt256(3480077270690289713, 15044539189034407577, 18350948737471589632, 9713305029644283887),
+UInt256(4350096588362862142, 4970615931010845760, 9103627866557323328, 12141631287055354859),
+UInt256(2718810367726788838, 16941693012163942312, 5689767416598327080, 7588519554409596787),
+UInt256(3398512959658486048, 11953744228350152082, 7112209270747908850, 9485649443011995984),
+UInt256(4248141199573107560, 14942180285437690102, 18113633625289661871, 2633689766910219172),
+UInt256(2655088249733192225, 9338862678398556314, 6709334997378650765, 8563585131959968839),
+UInt256(3318860312166490281, 16285264366425583296, 17610040783578089264, 15316167433377348952),
+UInt256(4148575390208112852, 6521522402749815409, 3565806905763059965, 698465218012134574),
+UInt256(2592859618880070532, 13299323538573410438, 13757844362170382238, 2742383770471278061),
+UInt256(3241074523600088165, 16624154423216763048, 7973933415858201989, 12651351749943873384),
+UInt256(4051343154500110207, 6945134973738790098, 9967416769822752487, 1979131632147678018),
+UInt256(2532089471562568879, 11258238386227825667, 10841321499566608208, 8154486297733380617),
+UInt256(3165111839453211099, 9461111964357394180, 8939965856030872356, 10193107872166725772),
+UInt256(3956389799316513874, 7214703937019354821, 11174957320038590445, 12741384840208407214),
+UInt256(2472743624572821171, 9120875979064484667, 9290191334237812980, 10269208534343948461),
+UInt256(3090929530716026464, 6789408955403217930, 7001053149369878321, 12836510667929935576),
+UInt256(3863661913395033080, 8486761194254022412, 17974688473567123710, 2210580279630255758),
+UInt256(2414788695871895675, 5304225746408764008, 2010808259124676510, 15216670730051073561),
+UInt256(3018485869839869594, 2018596164583567106, 2513510323905845638, 9797466375709066143),
+UInt256(3773107337299836992, 11746617242584234690, 12365259941737082856, 3023460932781556871),
+UInt256(2358192085812398120, 7341635776615146681, 12339973482013064689, 1889663082988473044),
+UInt256(2947740107265497650, 9177044720768933352, 1589908797234167149, 6973764872162979209),
+UInt256(3684675134081872063, 2247933864106390882, 1987385996542708936, 13328892108631111916),
+UInt256(4605843917602340078, 16644975385415152314, 11707604532533161978, 16661115135788889895),
+UInt256(2878652448501462549, 5791423597457082292, 11928938851260614140, 15024882978295444088),
+UInt256(3598315560626828186, 11850965515248740769, 14911173564075767676, 334359649159753494),
+UInt256(4497894450783535233, 5590334857206150154, 4803908899812545883, 417949561449691868),
+UInt256(2811184031739709520, 15023174331822313606, 7614129080810229080, 16402119540401915081),
+UInt256(3513980039674636901, 332223841068340392, 294289314158010543, 2055905351792842236),
+UInt256(4392475049593296126, 5026965819762813394, 367861642697513178, 16404939745023216507),
+UInt256(2745296905995810078, 16976911692633922083, 4841599545113333640, 14864773359066898221),
+UInt256(3431621132494762598, 11997767578937626796, 1440313412964279147, 134222625124071160),
+UInt256(4289526415618453248, 5773837436817257687, 1800391766205348933, 14002836336687252662),
+UInt256(2680954009761533280, 3608648398010786054, 8042773881519424939, 11057615719643226866),
+UInt256(3351192512201916600, 4510810497513482568, 830095315044505366, 9210333631126645678),
+UInt256(4188990640252395750, 5638513121891853210, 1037619143805631708, 2289545002053531289),
+UInt256(2618119150157747343, 17359128756464571968, 5260197983305907721, 10654337663138232864),
+UInt256(3272648937697184179, 17087224927153327056, 6575247479132384651, 17929608097350178984),
+UInt256(4090811172121480224, 16747345140514270916, 8219059348915480814, 17800324103260335826),
+UInt256(2556756982575925140, 10467090712821419322, 14360284129926951317, 6513516546110321987),
+UInt256(3195946228219906425, 13083863391026774153, 8726983125553913338, 12753581701065290388),
+UInt256(3994932785274883032, 2519771183501303979, 15520414925369779577, 6718605089476837177),
+UInt256(2496832990796801895, 1574856989688314987, 7394416319142418283, 15728343226991492996),
+UInt256(3121041238496002368, 15803629292392557446, 4631334380500634950, 15048743015311978341),
+UInt256(3901301548120002961, 1307792541781145191, 15012540012480569496, 9587556732285197118),
+]
+
+private let bid_multipliers2_binary80_30: [UInt256] = [
+UInt256(2438313467575001850, 12346585384681685504, 16300366535441437791, 5992222957678248199),
+UInt256(3047891834468752313, 6209859693997331073, 1928714095592245623, 2878592678670422344),
+UInt256(3809864793085940391, 12374010635924051745, 7022578637917694932, 17433298903620191642),
+UInt256(2381165495678712744, 14651285675093614196, 15918326694767029093, 1672439777907843969),
+UInt256(2976456869598390930, 18314107093867017746, 1451164294749234750, 6702235740812192865),
+UInt256(3720571086997988663, 13669261830478996374, 11037327405291319245, 17601166712870016889),
+UInt256(2325356929373742914, 15460817671690454590, 2286643609879686624, 13306572204757454508),
+UInt256(2906696161717178643, 10102650052758292429, 12081676549204384088, 16633215255946818134),
+UInt256(3633370202146473304, 8016626547520477633, 1267037631223316399, 2344774996223971052),
+UInt256(4541712752683091630, 10020783184400597041, 6195483057456533402, 16766026800562127527),
+UInt256(2838570470426932269, 1651303471822985246, 15401391956978803136, 15090452768778717608),
+UInt256(3548213088033665336, 6675815358206119462, 10028367909368728113, 416321887263845394),
+UInt256(4435266360042081670, 8344769197757649328, 3312087849856134333, 5132088377507194647),
+UInt256(2772041475026301044, 603794730171142926, 2070054906160083958, 5513398245155690606),
+UInt256(3465051843782876305, 754743412713928657, 11810940669554880755, 16115119843299389066),
+UInt256(4331314804728595381, 5555115284319798726, 928617781661437232, 15532213785696848428),
+UInt256(2707071752955372113, 5777790061913568155, 14415444168820561982, 9707633616060530268),
+UInt256(3383839691194215141, 11833923595819348098, 13407619192598314574, 2911169983220887027),
+UInt256(4229799613992768927, 957346439492021411, 7536151953893117409, 12862334515880884591),
+UInt256(2643624758745480579, 7515870552323595238, 2404251961969504429, 1121430044784471014),
+UInt256(3304530948431850724, 4783152171977106143, 12228686989316656344, 6013473574407976671),
+UInt256(4130663685539813405, 5978940214971382679, 10674172718218432526, 7516841968009970839),
+UInt256(2581664803462383378, 6042680643570808126, 13588886976527602185, 86340211578843870),
+UInt256(3227081004327979222, 16776722841318285966, 7762736683804726923, 4719611282900942742),
+UInt256(4033851255409974028, 11747531514793081650, 480048817901132846, 1287828085198790523),
+UInt256(2521157034631233767, 16565579233600451839, 4911716529615595932, 14639950608531407789),
+UInt256(3151446293289042209, 16095288023573176895, 1527959643592107011, 18299938260664259736),
+UInt256(3939307866611302762, 6284051974184307406, 15745007609772297476, 18263236807402936766),
+UInt256(2462067416632064226, 8539218502292580033, 5228943737680298019, 2191150967772059671),
+UInt256(3077584270790080283, 1450651091010949233, 11147865690527760427, 16573996764997238301),
+UInt256(3846980338487600353, 15648371919045850254, 99774057877536822, 16105809937819159972),
+UInt256(2404362711554750221, 2862703421762574552, 13897416841455624226, 5454445192709587079),
+UInt256(3005453389443437776, 8190065295630606094, 17371771051819530282, 16041428527741759656),
+UInt256(3756816736804297220, 10237581619538257618, 12491341777919637045, 10828413622822423762),
+UInt256(2348010460502685762, 15621860549066186819, 12418774629627161057, 9073601523477708803),
+UInt256(2935013075628357203, 10303953649477957716, 10911782268606563417, 15953687922774523908),
+UInt256(3668766344535446504, 8268256043420059241, 13639727835758204272, 6107051848185991173),
+UInt256(4585957930669308130, 10335320054275074052, 3214601739415591628, 7633814810232488966),
+UInt256(2866223706668317581, 11071261052349309186, 11232498123989520575, 13994506293250081412),
+UInt256(3582779633335396977, 4018260154472771, 4817250618132124911, 12881446848135213861),
+UInt256(4478474541669246221, 4616708843620478868, 1409877254237768235, 11490122541741629422),
+UInt256(2799046588543278888, 5191286036476493244, 10104545320753380955, 4875483579374824437),
+UInt256(3498808235679098610, 6489107545595616555, 12630681650941726194, 1482668455791142642),
+UInt256(4373510294598873262, 17334756468849296502, 11176666045249769838, 11076707606593704110),
+UInt256(2733443934124295789, 6222536774603422410, 2373730259853718245, 2311256235693677165),
+UInt256(3416804917655369736, 12389856986681665916, 12190534861671923614, 7500756313044484360),
+UInt256(4271006147069212170, 15487321233352082395, 15238168577089904518, 152573354450829642),
+UInt256(2669378841918257606, 14291261789272439401, 7218012351467496371, 13930416401813932239),
+UInt256(3336723552397822008, 8640705199735773443, 13634201457761758368, 12801334483840027394),
+UInt256(4170904440497277510, 10800881499669716804, 12431065803774810056, 16001668104800034243),
+]
+
+private let bid_multipliers2_binary80_31: [UInt256] = [
+UInt256(2606815275310798444, 2138864918866185098, 16992788164214032093, 10001042565500021402),
+UInt256(3258519094138498055, 2673581148582731373, 12017613168412764308, 17112989225302414656),
+UInt256(4073148867673122568, 17177034491010577929, 1186958405233791674, 2944492457918466704),
+UInt256(2545718042295701605, 10735646556881611205, 12271064049339589556, 6451993804626429594),
+UInt256(3182147552869627006, 18031244214529401911, 1503772006392323233, 8064992255783036993),
+UInt256(3977684441087033758, 13315683231306976580, 15714773063272567753, 14692926338156184145),
+UInt256(2486052775679396099, 3710616001139472459, 598361127690579038, 2265549933706533235),
+UInt256(3107565969599245124, 26583982996952669, 14583009464895387509, 12055309453987942351),
+UInt256(3884457461999056405, 33229978746190837, 4393703775837070675, 1234078762202764227),
+UInt256(2427785913749410253, 2326611745930063225, 5051907869111863123, 16912200290872585306),
+UInt256(3034732392186762816, 7519950700839966935, 10926570854817216808, 16528564345163343728),
+UInt256(3793415490233453520, 9399938376049958669, 9046527550094133107, 2213961357744628044),
+UInt256(2370884681395908450, 5874961485031224168, 7959922728022527143, 17524626913086250192),
+UInt256(2963605851744885562, 16567073893143806018, 9949903410028158929, 17294097622930424836),
+UInt256(3704507314681106953, 11485470329574981715, 3214007225680422854, 7782563973380867332),
+UInt256(2315317071675691846, 260889928343281715, 18149655580546121948, 252416464935654179),
+UInt256(2894146339594614807, 9549484447283877952, 18075383457255264531, 315520581169567724),
+UInt256(3617682924493268509, 7325169540677459537, 4147485247859529047, 14229458781744123366),
+UInt256(4522103655616585636, 13768147944274212325, 9796042578251799213, 13175137458752766304),
+UInt256(2826314784760366022, 17828464502026158511, 8428369620621068460, 10540303920934172892),
+UInt256(3532893480950457528, 13062208590677922331, 5923776007348947671, 13175379901167716115),
+UInt256(4416116851188071910, 16327760738347402914, 2793033990758796685, 11857538858032257240),
+UInt256(2760073031992544944, 5593164443039738917, 6357332262651635832, 9716804795483854727),
+UInt256(3450091289990681180, 6991455553799673646, 12558351346741932694, 12146005994354818409),
+UInt256(4312614112488351475, 8739319442249592058, 6474567146572640060, 5959135456088747203),
+UInt256(2695383820305219672, 3156231642192301084, 8658290485035287941, 12947831696910242810),
+UInt256(3369229775381524590, 3945289552740376355, 10822863106294109927, 2349731565855639800),
+UInt256(4211537219226905737, 14154983977780246252, 8916892864440249504, 16772222512601713462),
+UInt256(2632210762016816086, 1929335958471572051, 14796430077129931748, 10482639070376070914),
+UInt256(3290263452521020107, 11635041984944240872, 13883851577985026781, 13103298837970088642),
+UInt256(4112829315651275134, 9932116462752913186, 17354814472481283477, 2544065492180447091),
+UInt256(2570518322282046959, 1595886770793182837, 15458445063728190077, 3895883941826473384),
+UInt256(3213147902852558698, 15829916518773642259, 5487998274378073884, 9481540945710479634),
+UInt256(4016434878565698373, 10564023611612277016, 2248311824545204451, 11851926182138099542),
+UInt256(2510271799103561483, 8908357766471367087, 1405194890340752782, 5101610854622618262),
+UInt256(3137839748879451854, 6523761189661820954, 15591551668208104689, 15600385605133048635),
+UInt256(3922299686099314817, 17378073523932052001, 10266067548405355054, 5665423951134147082),
+UInt256(2451437303812071761, 3943766924816450644, 17945507263821816668, 17375948024741005638),
+UInt256(3064296629765089701, 9541394674447951210, 3985140006067719220, 3273190957216705432),
+UInt256(3830370787206362126, 16538429361487326916, 14204797044439424833, 4091488696520881790),
+UInt256(2393981742003976329, 5724832332502191418, 18101370189629416328, 14086395481394020879),
+UInt256(2992477177504970411, 11767726434055127177, 13403340700181994602, 17607994351742526098),
+UInt256(3740596471881213014, 10097972024141521068, 2919117819945329541, 12786620902823381815),
+UInt256(2337872794925758134, 1699546496661062763, 11047820674320606771, 10297481073478307587),
+UInt256(2922340993657197667, 11347805157681104262, 9198089824473370560, 8260165323420496579),
+UInt256(3652926242071497084, 9573070428673992424, 2274240243736937392, 10325206654275620724),
+UInt256(4566157802589371355, 11966338035842490530, 2842800304671171740, 12906508317844525904),
+UInt256(2853848626618357097, 5173118263187862629, 6388436208846870241, 17289939735507604498),
+UInt256(3567310783272946371, 11078083847412216190, 12597231279485975706, 7777366614102341911),
+UInt256(4459138479091182964, 9235918790837882334, 6523167062502693825, 498336230773151581),
+]
+
+private let bid_multipliers2_binary80_32: [UInt256] = [
+UInt256(2786961549431989352, 14995821281128452266, 17912037469346347352, 11840675190301689498),
+UInt256(3483701936789986691, 298032527701013717, 13166674799828158382, 14800843987877111872),
+UInt256(4354627420987483363, 14207598714908430859, 2623285444503034266, 9277682947991614032),
+UInt256(2721642138117177102, 6573906187604075334, 17780454467310254080, 10410237860922146674),
+UInt256(3402052672646471377, 17440754771359869976, 13002196047283041792, 13012797326152683343),
+UInt256(4252565840808089222, 7965885408917673758, 16252745059103802240, 16265996657690854179),
+UInt256(2657853650505055764, 366992362146158195, 5546279643512488496, 10166247911056783862),
+UInt256(3322317063131319705, 458740452682697744, 2321163535963222716, 12707809888820979827),
+UInt256(4152896328914149631, 5185111584280760084, 2901454419954028395, 15884762361026224784),
+UInt256(2595560205571343519, 10158223767816556908, 11036781049326043555, 7622133466427696538),
+UInt256(3244450256964179399, 8086093691343308231, 13795976311657554444, 4915980814607232768),
+UInt256(4055562821205224249, 5495931095751747385, 12633284371144555151, 6144976018259040960),
+UInt256(2534726763253265155, 14964171980913311876, 978273704324265113, 10758139039052982456),
+UInt256(3168408454066581444, 14093528957714251941, 1222842130405331391, 18059359817243615974),
+UInt256(3960510567583226805, 17616911197142814926, 6140238681434052143, 17962513753127132064),
+UInt256(2475319104739516753, 13316412507427953280, 17672707231178446301, 18144100123345539396),
+UInt256(3094148880924395942, 2810457579002777889, 3644139965263506261, 8845067098899760533),
+UInt256(3867686101155494927, 12736444010608248169, 9166860975006770730, 15668019892052088570),
+UInt256(2417303813222184329, 14877806534271236961, 17258503155447701466, 14404198450959943261),
+UInt256(3021629766527730412, 4762200112556882490, 7738070889027463121, 8781876026845153268),
+UInt256(3777037208159663015, 5952750140696103113, 449216574429553093, 15589031051983829488),
+UInt256(2360648255099789384, 10637997865576146301, 11809975405086940443, 12048987416703587382),
+UInt256(2950810318874736730, 13297497331970182877, 927411201076511842, 10449548252452096324),
+UInt256(3688512898593420913, 7398499628107952788, 5770950019773027707, 3838563278710344597),
+UInt256(4610641123241776141, 13859810553562328889, 7213687524716284634, 186518079960542842),
+UInt256(2881650702026110088, 10968224605190149507, 16037769749016147656, 4728259818402727180),
+UInt256(3602063377532637610, 13710280756487686884, 15435526167842796666, 5910324773003408975),
+UInt256(4502579221915797013, 7914478908754832798, 847663636093944216, 16611278003109037027),
+UInt256(2814112013697373133, 7252392327185464450, 14364847827840878847, 10382048751943148142),
+UInt256(3517640017121716416, 13677176427409218467, 8732687747946322751, 8365874921501547273),
+UInt256(4397050021402145520, 17096470534261523084, 6304173666505515535, 5845657633449546188),
+UInt256(2748156263376340950, 10685294083913451927, 13163480578420723017, 10571065048547048223),
+UInt256(3435195329220426188, 4133245568037039101, 11842664704598515867, 17825517329111198183),
+UInt256(4293994161525532735, 5166556960046298877, 968272825465981122, 17670210642961609825),
+UInt256(2683746350953457959, 10146627127670018654, 2911013525129932153, 15655567670278394045),
+UInt256(3354682938691822449, 8071597891160135413, 12862138943267191000, 5734401532565828844),
+UInt256(4193353673364778061, 14701183382377557171, 2242615623801825038, 7168001915707286055),
+UInt256(2620846045852986288, 11494082623199667183, 17542535829371998312, 18315059252599217496),
+UInt256(3276057557316232860, 14367603278999583979, 17316483768287609987, 4447079992039470254),
+UInt256(4095071946645291075, 17959504098749479974, 17033918691932124580, 947163971621949914),
+UInt256(2559419966653306922, 8918847052504731032, 6034513164030189958, 9815349519118494504),
+UInt256(3199274958316633653, 1925186778776137982, 7543141455037737448, 3045814862043342322),
+UInt256(3999093697895792066, 7018169491897560382, 205554781942396002, 3807268577554177903),
+UInt256(2499433561184870041, 8998041950863363142, 13963529793996161213, 6991228879398749093),
+UInt256(3124291951481087551, 15859238457006591832, 8231040205640425708, 13350722117675824270),
+UInt256(3905364939351359439, 15212362052830851886, 10288800257050532135, 16688402647094780338),
+UInt256(2440853087094599649, 16425255310660364285, 1818814142229194680, 17347780682075319567),
+UInt256(3051066358868249562, 6696511083043291644, 6885203696213881255, 3237981778884597843),
+UInt256(3813832948585311952, 17594010890658890363, 8606504620267351568, 17882535278887911016),
+UInt256(2383645592865819970, 10996256806661806477, 3073222378453400778, 11176584549304944385),
+]
+
+private let bid_multipliers2_binary80_33: [UInt256] = [
+UInt256(2979556991082274963, 4521948971472482288, 8453213991494138877, 4747358649776404673),
+UInt256(3724446238852843704, 1040750195913214956, 10566517489367673596, 10545884330647893745),
+UInt256(2327778899283027315, 650468872445759347, 15827445467709571805, 15814549743509709399),
+UInt256(2909723624103784143, 14648144145839362896, 15172620816209576853, 5933129124104973037),
+UInt256(3637154530129730179, 13698494163871815717, 519031946552419450, 12028097423558604200),
+UInt256(4546443162662162724, 12511431686412381742, 5260475951617912217, 5811749742593479442),
+UInt256(2841526976663851702, 17043016840862514396, 17122855525043358847, 15161558635189394411),
+UInt256(3551908720829814628, 12080399014223367188, 2956825332594646943, 14340262275559355110),
+UInt256(4439885901037268285, 15100498767779208985, 3696031665743308679, 13313641826021805983),
+UInt256(2774928688148292678, 11743654739075699567, 13839234837158037684, 15238555168904710596),
+UInt256(3468660860185365848, 5456196386989848651, 12687357528020159202, 601449887421336628),
+UInt256(4335826075231707310, 6820245483737310814, 11247510891597811098, 9975184396131446593),
+UInt256(2709891297019817068, 18097711482617982971, 2418008288821244032, 10846176266009542025),
+UInt256(3387364121274771336, 4175395279562927097, 16857568416308718752, 13557720332511927531),
+UInt256(4234205151593464170, 5219244099453658872, 7236902465103734728, 16947150415639909414),
+UInt256(2646378219745915106, 7873713580585924699, 4523064040689834205, 10591969009774943384),
+UInt256(3307972774682393883, 618769938877630066, 1042144032434904852, 17851647280646067134),
+UInt256(4134965968352992353, 14608520478879201294, 10526052077398406874, 3867815027098032301),
+UInt256(2584353730220620221, 2212796271658418953, 1967096529946616392, 7029070410363658092),
+UInt256(3230442162775775276, 7377681358000411595, 7070556680860658394, 8786338012954572615),
+UInt256(4038052703469719095, 9222101697500514494, 4226509832648435089, 1759550479338439961),
+UInt256(2523782939668574434, 12681342588578903414, 16476626700687435642, 12628934095654994736),
+UInt256(3154728674585718043, 6628306198868853460, 11372411339004518745, 6562795582713967612),
+UInt256(3943410843232147554, 3673696730158678921, 14215514173755648431, 12815180496819847418),
+UInt256(2464631777020092221, 6907746474776562230, 1967167330956198413, 14927016838153486493),
+UInt256(3080789721275115276, 13246369111898090691, 11682331200550023825, 4823712992409694404),
+UInt256(3850987151593894095, 16557961389872613364, 9991227982260141877, 10641327258939505909),
+UInt256(2406866969746183809, 17266254896311465208, 15467889525767364481, 8956672546050885145),
+UInt256(3008583712182729762, 7747760565107167799, 888117833499653985, 15807526700990994335),
+UInt256(3760729640228412203, 461328669529183940, 14945205347156731194, 5924350320956579207),
+UInt256(2350456025142757626, 16429231482951597627, 117381305118181188, 8314404969025249908),
+UInt256(2938070031428447033, 11313167316834721225, 13981784686679890197, 10393006211281562385),
+UInt256(3672587539285558792, 306401090761237820, 3642172803067699034, 17602943782529340886),
+UInt256(4590734424106948490, 383001363451547275, 4552716003834623793, 12780307691306900299),
+UInt256(2869209015066842806, 4851061870584604951, 539604493182945919, 1070163279425730831),
+UInt256(3586511268833553507, 15287199375085531996, 14509563671760846110, 15172762154564327251),
+UInt256(4483139086041941884, 14497313200429527091, 18136954589701057638, 9742580656350633255),
+UInt256(2801961928776213677, 18284192787123230240, 9029753609349467072, 1477426891791757881),
+UInt256(3502452410970267097, 9020182928621874088, 11287192011686833840, 1846783614739697351),
+UInt256(4378065513712833871, 15886914679204730514, 14108990014608542300, 2308479518424621688),
+UInt256(2736290946070521169, 16846850702144038427, 13429804777557726841, 10666171735870164363),
+UInt256(3420363682588151462, 7223505322397884322, 12175569953519770647, 17944400688265093358),
+UInt256(4275454603235189327, 18252753689852131211, 5996090405044937501, 17818814841903978794),
+UInt256(2672159127021993329, 18325500083798663863, 1441713493939391986, 13442602285403680698),
+UInt256(3340198908777491662, 9071817049466166116, 15637199922706403695, 7579880819899825065),
+UInt256(4175248635971864578, 2116399274977931838, 1099755829673453003, 4863165006447393427),
+UInt256(2609530397482415361, 5934435565288595302, 14522405448828071839, 733635119815926940),
+UInt256(3261912996853019201, 12029730475038132032, 8929634774180313990, 14752101955052072387),
+UInt256(4077391246066274002, 1202105038515501328, 11162043467725392488, 9216755406960314675),
+UInt256(2548369528791421251, 5363001667499576234, 6976277167328370305, 5760472129350196672),
+]
+
+private let bid_multipliers2_binary80_34: [UInt256] = [
+UInt256(3185461910989276564, 2092066065947082388, 17943718496015238689, 11812276180115133744),
+UInt256(3981827388736595705, 2615082582433852986, 3982904046309496746, 930287169861753468),
+UInt256(2488642117960372315, 13163641660089627876, 7101001047370823370, 5193115499590983822),
+UInt256(3110802647450465394, 11842866056684646941, 8876251309213529212, 15714766411343505585),
+UInt256(3888503309313081743, 5580210534001032868, 15707000154944299420, 1196713940469830365),
+UInt256(2430314568320676089, 10405160611391727399, 593503059985411329, 9971318249648419786),
+UInt256(3037893210400845111, 17618136782667047152, 14576936880263927873, 17075833830487912637),
+UInt256(3797366513001056389, 17410984959906421036, 18221171100329909842, 7509734232827727084),
+UInt256(2373354070625660243, 13187708609155207100, 2164859900851417843, 9305269913944717332),
+UInt256(2966692588282075304, 11872949743016620971, 2706074876064272304, 7019901374003508760),
+UInt256(3708365735352594130, 14841187178770776213, 17217651650362504092, 8774876717504385950),
+UInt256(2317728584595371331, 13887428005159123037, 13066875290690259009, 14707669985295017027),
+UInt256(2897160730744214164, 12747598988021515893, 2498536058080660050, 4549529426336607572),
+UInt256(3621450913430267705, 15934498735026894866, 7734856091028212966, 14910283819775535273),
+UInt256(4526813641787834632, 6083065363501454871, 445198076930490400, 9414482737864643283),
+UInt256(2829258526117396645, 3801915852188409294, 7195777825722638356, 5884051711165402052),
+UInt256(3536573157646745806, 9364080833662899521, 18218094319008073753, 7355064638956752565),
+UInt256(4420716447058432258, 2481729005223848594, 8937559843477928479, 13805516817123328610),
+UInt256(2762947779411520161, 6162766646692293275, 10197660920601093203, 15545977038343162237),
+UInt256(3453684724264400201, 12315144326792754498, 8135390132323978600, 14820785279501564893),
+UInt256(4317105905330500252, 1558872353208779411, 945865628550197443, 79237525667404500),
+UInt256(2698191190831562657, 10197667257610262939, 16732067082339731065, 16190424518037985476),
+UInt256(3372738988539453321, 17358770090440216578, 16303397834497275928, 6402972592265318133),
+UInt256(4215923735674316652, 7863404557768107011, 11155875256266819102, 8003715740331647667),
+UInt256(2634952334796447907, 14137999885459842690, 4666579025953067987, 390636319279891888),
+UInt256(3293690418495559884, 13060813838397415458, 15056595819296110791, 14323353454382028572),
+UInt256(4117113023119449855, 16326017297996769323, 9597372737265362681, 13292505799550147810),
+UInt256(2573195639449656159, 17121289838889062683, 3692514951577157724, 1390287097077760526),
+UInt256(3216494549312070199, 16789926280183940450, 3957671044059251, 1737858871347200657),
+UInt256(4020618186640087749, 16375721831802537658, 9228319125659849871, 16007381644466164533),
+UInt256(2512886366650054843, 12540669154090279988, 10379385471964794073, 16922142555432434689),
+UInt256(3141107958312568554, 11064150424185462081, 12974231839955992592, 7317620139008379650),
+UInt256(3926384947890710693, 4606815993377051794, 2382731744662827028, 9147025173760474562),
+UInt256(2453990592431694183, 5185103005074351323, 6100893358841654796, 14940262770455072409),
+UInt256(3067488240539617729, 1869692737915551250, 3014430680124680592, 228584389359288896),
+UInt256(3834360300674522161, 6948801940821826966, 12991410387010626548, 285730486699111119),
+UInt256(2396475187921576350, 15872216259082111614, 3507945473454253688, 9401953591041720258),
+UInt256(2995593984901970438, 10616898286997863709, 13608303878672592918, 11752441988802150322),
+UInt256(3744492481127463048, 4047750821892553829, 3175321793058577436, 5467180449147912095),
+UInt256(2340307800704664405, 2529844263682846143, 4290419129875304849, 12640359817572220867),
+UInt256(2925384750880830506, 7773991348030945583, 751337893916743158, 1965391716683112372),
+UInt256(3656730938601038133, 494117148183906170, 14774230422678092659, 11680111682708666273),
+UInt256(4570913673251297666, 5229332453657270617, 9244415991492840016, 9988453584958444937),
+UInt256(2856821045782061041, 7880018801963182039, 17306975040751494770, 6242783490599028086),
+UInt256(3571026307227576301, 14461709520881365453, 17022032782511980558, 17026851400103560915),
+UInt256(4463782884034470377, 4242078845819543105, 7442482922857811986, 12060192213274675336),
+UInt256(2789864302521543985, 14180514324705684200, 16180766872854602251, 12149306151724059989),
+UInt256(3487330378151929982, 3890584850599941539, 1779214517358701198, 10574946671227687082),
+UInt256(4359162972689912477, 14086603100104702731, 16059076201980540210, 3995311302179833045),
+UInt256(2724476857931195298, 11109969946779133159, 7731079617024143679, 7108755582289783557),
+]
+
+private let bid_multipliers2_binary80_35: [UInt256] = [
+UInt256(3405596072413994123, 4664090396619140641, 5052163502852791695, 4274258459434841542),
+UInt256(4256995090517492654, 1218426977346537897, 10926890396993377523, 731137055866164024),
+UInt256(2660621931573432908, 14596574916123749897, 18358521544189330711, 16597861724412210179),
+UInt256(3325777414466791135, 18245718645154687372, 9113093874954499677, 16135641137087874820),
+UInt256(4157221768083488919, 18195462288015971311, 11391367343693124597, 6334493366077679812),
+UInt256(2598263605052180574, 18289692957651063925, 14037133617449284729, 6264901363012243835),
+UInt256(3247829506315225718, 13638744160209054099, 3711358966529442199, 12442812722192692697),
+UInt256(4059786882894032148, 7825058163406541816, 27512689734414845, 10941829884313477968),
+UInt256(2537366801808770092, 14114033388983864443, 17195431084009278, 9144486686909617682),
+UInt256(3171708502260962615, 17642541736229830553, 13856552344137175310, 2207236321782246294),
+UInt256(3964635627826203269, 17441491151859900288, 3485632374889305425, 11982417439082583676),
+UInt256(2477897267391377043, 13206774979126131632, 2178520234305815891, 571481871785532942),
+UInt256(3097371584239221304, 11896782705480276636, 2723150292882269863, 14549410395014079889),
+UInt256(3871714480299026630, 14870978381850345795, 3403937866102837329, 13575076975340211957),
+UInt256(2419821550186891644, 4682675470229078217, 18268362230810130995, 1566894081946550617),
+UInt256(3024776937733614555, 5853344337786347772, 9000394733230500031, 15793675657715351983),
+UInt256(3780971172167018194, 2704994403805546811, 11250493416538125039, 15130408553716802075),
+UInt256(2363106982604386371, 6302307520805854661, 4725715376122634197, 16374034373714083153),
+UInt256(2953883728255482964, 3266198382579930422, 10518830238580680651, 6632484911860440229),
+UInt256(3692354660319353705, 4082747978224913028, 3925165761371075006, 3678920121398162383),
+UInt256(2307721662699596065, 14080932532459040402, 11676600637711697686, 16134383131156015201),
+UInt256(2884652078374495082, 3766107610291636791, 5372378760284846300, 10944606877090243193),
+UInt256(3605815097968118852, 13931006549719321797, 2103787431928669971, 13680758596362803992),
+UInt256(4507268872460148565, 17413758187149152246, 7241420308338225368, 12489262227026117086),
+UInt256(2817043045287592853, 13189441876181914105, 18360945747993554567, 7805788891891323179),
+UInt256(3521303806609491067, 2651744289945228920, 9116124129709779497, 5145550096436766069),
+UInt256(4401629758261863833, 17149738417713699862, 11395155162137224371, 11043623638973345490),
+UInt256(2751018598913664896, 3801057483429980558, 2510285957908377328, 4596421765144646980),
+UInt256(3438773248642081120, 4751321854287475697, 12361229484240247468, 5745527206430808724),
+UInt256(4298466560802601400, 5939152317859344622, 1616478800018145623, 7181909008038510905),
+UInt256(2686541600501625875, 3711970198662090388, 14845357305293504726, 11406222157665151172),
+UInt256(3358177000627032344, 28276729900225082, 109952557907329292, 5034405660226663157),
+UInt256(4197721250783790430, 35345912375281352, 9360812734238937423, 6293007075283328946),
+UInt256(2623575781739869018, 13857149250516714557, 5850507958899335889, 10850658449693162448),
+UInt256(3279469727174836273, 8098064526291117388, 11924820967051557765, 18175009080543840963),
+UInt256(4099337158968545341, 14734266676291284639, 14906026208814447207, 8883703295397637492),
+UInt256(2562085724355340838, 11514759681895746851, 16233795408150111360, 12469843587264605289),
+UInt256(3202607155444176048, 5170077565514907756, 15680558241760251296, 15587304484080756611),
+UInt256(4003258944305220060, 6462596956893634696, 1153953728490762505, 1037386531391394147),
+UInt256(2502036840190762537, 13262495134913297493, 721221080306726565, 12177581628188091102),
+UInt256(3127546050238453172, 2743060863359458154, 5513212368810796111, 1386918979952950166),
+UInt256(3909432562798066465, 3428826079199322692, 16114887497868270946, 15568706780223351419),
+UInt256(2443395351748791540, 13672231345568046443, 848432649312893533, 14342127756066982541),
+UInt256(3054244189685989425, 17090289181960058053, 14895598866923280629, 4092601639801564464),
+UInt256(3817805237107486782, 7527803422167908855, 4784440528371937074, 9727438068179343484),
+UInt256(2386128273192179239, 93191120427555130, 9907804357873542527, 10691334811039477582),
+UInt256(2982660341490224048, 13951546955816607625, 3161383410487152351, 8752482495371959073),
+UInt256(3728325426862780060, 17439433694770759531, 8563415281536328343, 6328917100787560937),
+UInt256(2330203391789237538, 1676274022376948899, 3046291541746511262, 10873102215633307442),
+UInt256(2912754239736546922, 11318714564825961931, 17642922482465302790, 4368005732686858494),
+]
+
+private let bid_multipliers2_binary80_36: [UInt256] = [
+UInt256(3640942799670683653, 4925021169177676606, 17441967084654240583, 14683379202713348926),
+UInt256(4551178499588354566, 10767962479899483662, 12579086818963024921, 13742537984964298253),
+UInt256(2844486562242721604, 2118290531509789385, 3250243243424502672, 1671557212961604552),
+UInt256(3555608202803402005, 2647863164387236731, 8674490072708016244, 2089446516202005690),
+UInt256(4444510253504252506, 7921514973911433818, 6231426572457632401, 2611808145252507113),
+UInt256(2777818908440157816, 9562632877122034040, 8506327626213408154, 13161595136851286706),
+UInt256(3472273635550197270, 11953291096402542550, 10632909532766760193, 7228621884209332574),
+UInt256(4340342044437746588, 5718241833648402380, 4067764879103674433, 13647463373689053621),
+UInt256(2712713777773591617, 12797273182885027295, 11765725086294572329, 1612135580914576657),
+UInt256(3390892222216989522, 2161533423324120407, 10095470339440827507, 6626855494570608726),
+UInt256(4238615277771236902, 11925288816009926317, 8007651905873646480, 3671883349785873003),
+UInt256(2649134548607023064, 2841619491578816044, 7310625450384723002, 2294927093616170627),
+UInt256(3311418185758778830, 3552024364473520055, 9138281812980903752, 12092030903874989092),
+UInt256(4139272732198473537, 13663402492446675877, 6811166247798741786, 15115038629843736365),
+UInt256(2587045457624045961, 1622097530138090567, 6562821914087907568, 14058585162079723132),
+UInt256(3233806822030057451, 6639307931100001113, 3591841374182496556, 17573231452599653915),
+UInt256(4042258527537571814, 3687448895447613487, 9101487736155508600, 3519795242040015778),
+UInt256(2526411579710982383, 16139713614936922141, 12605958862738274731, 2199872026275009861),
+UInt256(3158014474638727979, 15562956000243764773, 1922390523140679701, 16584898088125926038),
+UInt256(3947518093298409974, 14842008981877318062, 7014674172353237531, 6896064554875243836),
+UInt256(2467198808311506234, 4664569595245935884, 18219229413002937169, 2004197337583333446),
+UInt256(3083998510389382792, 15054084030912195664, 4327292692544119845, 7116932690406554711),
+UInt256(3854998137986728491, 370860964930692964, 5409115865680149806, 13507851881435581292),
+UInt256(2409373836241705306, 16372689167577540766, 12604069452904869437, 3830721407469850404),
+UInt256(3011717295302131633, 11242489422617150150, 6531714779276310988, 9400087777764700909),
+UInt256(3764646619127664542, 218053722989273975, 17388015510950164543, 11750109722205876136),
+UInt256(2352904136954790338, 13971341632150459946, 17785038721984934695, 14261347604019754441),
+UInt256(2941130171193487923, 8240805003333299125, 13007926365626392561, 13214998486597305147),
+UInt256(3676412713991859904, 5689320235739236003, 2424849901750826990, 2683690052964467722),
+UInt256(4595515892489824880, 7111650294674045003, 16866120432470697449, 12577984603060360460),
+UInt256(2872197432806140550, 4444781434171278127, 8235482261080491954, 943711349271643432),
+UInt256(3590246791007675687, 14779348829568873467, 5682666807923227038, 10403011223444330098),
+UInt256(4487808488759594609, 13862500018533703930, 2491647491476645894, 3780391992450636814),
+UInt256(2804880305474746631, 1746533483942483100, 6168965700600291587, 16197803050563811721),
+UInt256(3506100381843433288, 16018224910210267587, 7711207125750364484, 15635567794777376747),
+UInt256(4382625477304291611, 1576037064053282868, 5027322888760567702, 1097715669762169318),
+UInt256(2739140923315182256, 17125924229529159456, 12365448842330130621, 14521130348883519536),
+UInt256(3423926154143977821, 2960661213201897704, 15456811052912663277, 4316354880822235708),
+UInt256(4279907692679972276, 8312512534929760035, 874269742431277480, 10007129619455182538),
+UInt256(2674942307924982672, 14418692371185875829, 16687319653515406089, 6254456012159489087),
+UInt256(3343677884906228340, 18023365463982344787, 7024091511612093899, 12429756033626749262),
+UInt256(4179597356132785426, 4082462756268379368, 4168428371087729470, 10925509023606048674),
+UInt256(2612248347582990891, 7163225241095125009, 2605267731929830919, 2216757121326392517),
+UInt256(3265310434478738614, 4342345532941518357, 7868270683339676552, 16606004456940154358),
+UInt256(4081638043098423267, 14651303953031673754, 14447024372601983595, 2310761497465641332),
+UInt256(2551023776936514542, 6851221961431102144, 13641076251303627650, 17585127000411883497),
+UInt256(3188779721170643177, 17787399488643653488, 17051345314129534563, 12758036713660078563),
+UInt256(3985974651463303972, 8399191305522403149, 2867437568952366588, 11335859873647710299),
+UInt256(2491234157164564982, 14472866602806277776, 4097991489808923069, 16308284457884594745),
+UInt256(3114042696455706228, 8867711216653071412, 5122489362261153837, 6550297517073579719),
+]
+
+private let bid_multipliers2_binary80_37: [UInt256] = [
+UInt256(3892553370569632785, 11084639020816339265, 6403111702826442296, 12799557914769362553),
+UInt256(2432845856606020491, 10370360369130184, 15531159860334996195, 7999723696730851596),
+UInt256(3041057320757525613, 13848021005743576443, 967205751709193628, 5387968602486176591),
+UInt256(3801321650946907017, 3474968201897306841, 15044065244918655747, 6734960753107720738),
+UInt256(2375826031841816885, 13701070172254286536, 2485011750433077986, 1903507461478631510),
+UInt256(2969782539802271107, 3291279660035694458, 3106264688041347482, 11602756363703065195),
+UInt256(3712228174752838883, 17949157630326781784, 13106202896906460161, 5280073417774055685),
+UInt256(2320142609220524302, 8912380509740544663, 8191376810566537600, 14829260932177254564),
+UInt256(2900178261525655378, 1917103600320905021, 5627534994780784097, 89832091512016588),
+UInt256(3625222826907069222, 11619751537255907084, 11646104761903368025, 4723976132817408639),
+UInt256(4531528533633836528, 5301317384715108047, 14557630952379210031, 10516656184449148703),
+UInt256(2832205333521147830, 3313323365446942529, 16016048372878088125, 13490439142921799796),
+UInt256(3540256666901434787, 13365026243663453970, 6185002410815446445, 3027990873370086032),
+UInt256(4425320833626793484, 12094596786151929558, 16954625050374083864, 8396674610139995444),
+UInt256(2765825521016745927, 16782495028199731782, 5984954638056414511, 5247921631337497153),
+UInt256(3457281901270932409, 16366432766822276823, 16704565334425293947, 1948216020744483537),
+UInt256(4321602376588665512, 6622982903245682317, 16269020649604229529, 16270328081212768133),
+UInt256(2701001485367915945, 4139364314528551448, 12473980915216337408, 3251426023116898227),
+UInt256(3376251856709894931, 9785891411588077214, 15592476144020421760, 4064282528896122784),
+UInt256(4220314820887368664, 7620678246057708614, 10267223143170751392, 5080353161120153480),
+UInt256(2637696763054605415, 4762923903786067884, 1805328446054331716, 3175220725700095925),
+UInt256(3297120953818256769, 1341968861305196951, 2256660557567914645, 3969025907125119906),
+UInt256(4121401192272820961, 6289147095058884092, 16655883752242057018, 9572968402333787787),
+UInt256(2575875745170513100, 15459931980480272318, 1186555308296509828, 10594791269886005271),
+UInt256(3219844681463141376, 878170901890788781, 10706566172225413093, 13243489087357506588),
+UInt256(4024805851828926720, 1097713627363485976, 17994893733709154271, 2719303303914719523),
+UInt256(2515503657393079200, 686071017102178735, 11246808583568221419, 8617093592587781558),
+UInt256(3144379571741349000, 857588771377723419, 9446824711032888870, 6159680972307339044),
+UInt256(3930474464676686250, 1071985964222154274, 7196844870363723183, 16922973252238949613),
+UInt256(2456546540422928906, 5281677246066234325, 9109714062404714893, 17494387310290425364),
+UInt256(3070683175528661132, 15825468594437568714, 15998828596433281521, 8032926082580867993),
+UInt256(3838353969410826416, 1335091669337409277, 10775163708686826093, 14652843621653472895),
+UInt256(2398971230881766510, 834432293335880798, 9040320327142960260, 11463870272747114512),
+UInt256(2998714038602208137, 10266412403524626806, 2077028372073924517, 14329837840933893139),
+UInt256(3748392548252760171, 17444701522833171411, 11819657501947181455, 4077239245885202712),
+UInt256(2342745342657975107, 8597095442557038180, 5081442929503294457, 9465803556319333551),
+UInt256(2928431678322468884, 6134683284768909821, 6351803661879118071, 16443940463826554843),
+UInt256(3660539597903086105, 7668354105961137276, 12551440595776285493, 15943239561355805650),
+UInt256(4575674497378857631, 14197128650878809499, 15689300744720356867, 6093991396412593350),
+UInt256(2859796560861786019, 15790734434440337793, 7499969956236529090, 1502901613544176892),
+UInt256(3574745701077232524, 15126732024623034337, 13986648463723049266, 11101999053784996923),
+UInt256(4468432126346540656, 461670957069241306, 3648252524371647871, 4654126780376470345),
+UInt256(2792770078966587910, 288544348168275816, 6891843846159667823, 9826358265376375822),
+UInt256(3490962598708234887, 9584052472065120578, 8614804807699584779, 7671261813293081873),
+UInt256(4363703248385293609, 7368379571654012819, 1545133972769705166, 4977391248188964438),
+UInt256(2727314530240808505, 16134452278352227771, 17106609797476923392, 16945927585400266486),
+UInt256(3409143162801010632, 6333007292658121002, 16771576228418766337, 2735665408040781491),
+UInt256(4261428953501263290, 7916259115822651253, 11741098248668682113, 8031267778478364768),
+UInt256(2663393095938289556, 9559347965816544937, 9644029414631620272, 16548757407617447740),
+UInt256(3329241369922861945, 11949184957270681171, 16666722786716913245, 2239202685812258059),
+]
+
+private let bid_multipliers2_binary80_38: [UInt256] = [
+UInt256(4161551712403577432, 1101423141306187752, 16221717464968753652, 7410689375692710477),
+UInt256(2600969820252235895, 688389463316367345, 10138573415605471032, 13855052896662719857),
+UInt256(3251212275315294868, 14695544884427622893, 17284902787934226694, 17318816120828399821),
+UInt256(4064015344144118585, 18369431105534528617, 7771070429635619656, 12425148114180723968),
+UInt256(2540009590090074116, 4563365413317998529, 16386134064590732045, 7765717571362952480),
+UInt256(3175011987612592645, 5704206766647498162, 6647609525456251344, 14318832982631078504),
+UInt256(3968764984515740806, 11741944476736760606, 17532883943675089988, 17898541228288848130),
+UInt256(2480478115322338004, 2727029279533087475, 6346366446369543339, 1963216230825754273),
+UInt256(3100597644152922505, 3408786599416359344, 3321272039534541269, 16289078343814356553),
+UInt256(3875747055191153131, 8872669267697837084, 4151590049418176587, 6526289874485781980),
+UInt256(2422341909494470707, 3239575283097454225, 11818115817741136175, 1773088162339919785),
+UInt256(3027927386868088383, 17884527159153981494, 937586716894256506, 16051418258207063444),
+UInt256(3784909233585110479, 17743972930515088963, 10395355432972596441, 10840900785904053496),
+UInt256(2365568270990694049, 18007512109213012458, 4191254136394178823, 18304778037258503195),
+UInt256(2956960338738367562, 8674332081234101860, 14462439707347499337, 18269286528145741090),
+UInt256(3696200423422959453, 1619543064687851517, 18078049634184374172, 9001550104900012651),
+UInt256(2310125264639349658, 3318057424643601150, 13604624030578927809, 14849340852417283715),
+UInt256(2887656580799187072, 13370943817659277246, 7782408001368883954, 4726618010239440931),
+UInt256(3609570725998983840, 16713679772074096558, 504637964856329134, 15131644549654076972),
+UInt256(4511963407498729801, 2445355641383069081, 9854169492925187226, 9691183650212820407),
+UInt256(2819977129686706125, 13057562321932887935, 17688070979146711776, 10668675799810400659),
+UInt256(3524971412108382657, 2486894847133946207, 17498402705506001816, 13335844749763000823),
+UInt256(4406214265135478321, 7720304577344820663, 17261317363455114366, 16669805937203751029),
+UInt256(2753883915709673950, 16354405406908982674, 17705852379800528335, 5806942692324956489),
+UInt256(3442354894637092438, 11219634721781452535, 12908943437895884611, 2646992346978807707),
+UInt256(4302943618296365548, 4801171365372039861, 11524493278942467859, 17143798489005673346),
+UInt256(2689339761435228467, 12224104140212300721, 9508651308552736364, 8409031046414851889),
+UInt256(3361674701794035584, 10668444156837987997, 16497500154118308359, 10511288808018564862),
+UInt256(4202093377242544480, 13335555196047484997, 6786817137365721737, 8527424991595818173),
+UInt256(2626308360776590300, 8334721997529678123, 6547603720067270037, 16858855665815856118),
+UInt256(3282885450970737875, 10418402496912097654, 3572818631656699643, 7238511526987656436),
+UInt256(4103606813713422344, 8411317102712734163, 13689395326425650362, 4436453390307182641),
+UInt256(2564754258570888965, 5257073189195458852, 6250029069802337524, 7384469387369377055),
+UInt256(3205942823213611206, 11183027504921711469, 7812536337252921905, 9230586734211721318),
+UInt256(4007428529017014008, 4755412344297363528, 14377356439993540285, 16149919436192039551),
+UInt256(2504642830635633755, 2972132715185852205, 8985847774995962678, 12399542656833718672),
+UInt256(3130803538294542193, 17550223949264478968, 15843995737172341252, 6276056284187372532),
+UInt256(3913504422868177742, 8102721881298434999, 1358250597755874949, 7845070355234215664),
+UInt256(2445940264292611089, 452515157384133970, 7766435651238503699, 7209011981235078742),
+UInt256(3057425330365763861, 5177329965157555367, 484672527193353816, 4399578958116460524),
+UInt256(3821781662957204826, 11083348474874332112, 14440898714273855982, 5499473697645575655),
+UInt256(2388613539348253016, 11538778815223845474, 9025561696421159988, 17272229116310648496),
+UInt256(2985766924185316270, 14423473519029806843, 2058580083671674178, 3143542321678759004),
+UInt256(3732208655231645338, 8805969861932482745, 16408283159871756434, 13152799938953224563),
+UInt256(2332630409519778336, 10115417182135189620, 3337647947278765915, 12832185980273153256),
+UInt256(2915788011899722920, 12644271477668987025, 4172059934098457394, 11428546456914053666),
+UInt256(3644735014874653650, 15805339347086233781, 9826760936050459647, 5062311034287791275),
+UInt256(4555918768593317063, 10533302147003016418, 16895137188490462463, 1716202774432351189),
+UInt256(2847449230370823164, 13500842869517967117, 15171146761233926943, 7990155761661301349),
+UInt256(3559311537963528955, 16876053586897458897, 5128875396260244967, 5376008683649238783),
+]
+
+private let bid_multipliers2_binary80_39: [UInt256] = [
+UInt256(4449139422454411194, 16483380965194435717, 11022780263752694113, 2108324836134160574),
+UInt256(2780712139034006996, 14913799121673910227, 9195080674059127772, 12846918068652320119),
+UInt256(3475890173792508746, 195504828382836168, 6882164824146521811, 16058647585815400149),
+UInt256(4344862717240635932, 9467753072333321018, 8602706030183152264, 15461623463841862282),
+UInt256(2715539198275397457, 15140717707063101444, 9988377287291858069, 9663514664901163926),
+UInt256(3394423997844246822, 5090839078546713093, 12485471609114822586, 16691079349553842812),
+UInt256(4243029997305308527, 15586920885038167175, 1771781456111364521, 11640477150087527707),
+UInt256(2651893748315817829, 16659354580789936340, 8024892437710684682, 357769191163622961),
+UInt256(3314867185394772287, 6989135170705256713, 10031115547138355852, 9670583525809304509),
+UInt256(4143583981743465359, 4124732944954182987, 17150580452350332719, 12088229407261630636),
+UInt256(2589739988589665849, 9495487118237446223, 8413269773505263997, 14472672407179601004),
+UInt256(3237174985737082311, 16481044916224195683, 5904901198454192093, 4255782453692337542),
+UInt256(4046468732171352889, 15989620126852856700, 2769440479640352212, 9931414085542809832),
+UInt256(2529042957607095556, 3075983551641953581, 10954272336629995940, 15430505840319031953),
+UInt256(3161303697008869445, 3844979439552441976, 18304526439214882830, 841388226689238325),
+UInt256(3951629621261086806, 9417910317867940375, 4433913975309051921, 10275107320216323715),
+UInt256(2469768513288179254, 1274507930240074830, 9688725262209239306, 17951157121203672082),
+UInt256(3087210641610224067, 10816506949654869346, 2887534540906773325, 13215574364649814294),
+UInt256(3859013302012780084, 8908947668641198778, 12832790212988242465, 2684409900530104156),
+UInt256(2411883313757987552, 14791464329755525044, 12632179901545039444, 13206971233899784857),
+UInt256(3014854142197484441, 42586338484854689, 15790224876931299305, 16508714042374731072),
+UInt256(3768567677746855551, 4664918941533456266, 5902723040881960420, 6800834497686250127),
+UInt256(2355354798591784719, 9833103366099492022, 8300887918978613166, 13473893597908682138),
+UInt256(2944193498239730899, 7679693189196977124, 1152737861868490650, 7618994960531076864),
+UInt256(3680241872799663624, 4987930468068833501, 1440922327335613313, 300371663809070272),
+UInt256(4600302340999579530, 6234913085086041876, 6412838927596904545, 4987150598188725744),
+UInt256(2875188963124737206, 8508506696606164076, 13231396366602841148, 14646184169936423350),
+UInt256(3593986203905921508, 1412261333902929287, 16539245458253551435, 18307730212420529188),
+UInt256(4492482754882401885, 1765326667378661609, 16062370804389551390, 18272976747098273580),
+UInt256(2807801721801501178, 3409172176325357458, 3121452725102387763, 6808924448509033084),
+UInt256(3509752152251876472, 13484837257261472630, 13125187943232760512, 3899469542208903451),
+UInt256(4387190190314845590, 16856046571576840788, 7183112892186174832, 4874336927761129313),
+UInt256(2741993868946778494, 5923343088808137588, 13712817594471135078, 3046460579850705821),
+UInt256(3427492336183473117, 16627550897864947793, 17141021993088918847, 13031447761668158084),
+UInt256(4284365420229341397, 6949380567049021030, 7591219436078984847, 11677623683657809701),
+UInt256(2677728387643338373, 6649205863619332096, 132826129121977625, 14216043829927212919),
+UInt256(3347160484554172966, 12923193347951553024, 166032661402472032, 3934996732126852437),
+UInt256(4183950605692716208, 6930619648084665472, 207540826753090040, 4918745915158565546),
+UInt256(2614969128557947630, 4331637280052915920, 129713016720681275, 3074216196974103467),
+UInt256(3268711410697434537, 14637918636920920708, 162141270900851593, 17677828301499793045),
+UInt256(4085889263371793172, 4462340240868987173, 202676588626064492, 8262227321592577594),
+UInt256(2553680789607370732, 12012334687397892791, 2432515877104984259, 14387264112850136805),
+UInt256(3192100987009213415, 15015418359247365988, 16875702901663394036, 13372394122635283102),
+UInt256(3990126233761516769, 14157586930631819582, 2647884553369690929, 16715492653294103877),
+UInt256(2493828896100947981, 1930962804003805382, 15489985901138220543, 3529653880667733067),
+UInt256(3117286120126184976, 7025389523432144632, 10139110339567999870, 18247125406116830046),
+UInt256(3896607650157731220, 8781736904290180790, 12673887924459999838, 13585534720791261749),
+UInt256(2435379781348582012, 14711957602036138802, 3309493934360111995, 3879273182067150689),
+UInt256(3044224726685727515, 18389947002545173502, 13360239454804915802, 237405459156550458),
+UInt256(3805280908357159394, 18375747734754078974, 7476927281651368944, 9520128860800463880),
+]
+
+private let bid_multipliers2_binary80_40: [UInt256] = [
+UInt256(2378300567723224621, 16096528352648687263, 61393532604717686, 5950080538000289925),
+UInt256(2972875709654030777, 6285602385528695366, 13911799971038060819, 16660972709355138214),
+UInt256(3716094637067538471, 12468689000338257112, 8166377926942800216, 16214529868266534864),
+UInt256(2322559148167211544, 14710459652852492551, 5103986204339250135, 10134081167666584290),
+UInt256(2903198935209014430, 18388074566065615689, 1768296736996674765, 8055915441155842458),
+UInt256(3628998669011268038, 13761721170727243803, 6822056939673231360, 14681580319872190977),
+UInt256(4536248336264085048, 7978779426554278946, 3915885156164151296, 18351975399840238721),
+UInt256(2835155210165053155, 4986737141596424341, 7059114241029982464, 11469984624900149201),
+UInt256(3543944012706316444, 1621735408568142522, 13435578819714865984, 14337480781125186501),
+UInt256(4429930015882895555, 2027169260710178153, 7571101487788806672, 17921850976406483126),
+UInt256(2768706259926809721, 17407881852439719009, 16261153475936473930, 11201156860254051954),
+UInt256(3460882824908512152, 7924794260267485050, 6491383789638428701, 4778074038462789134),
+UInt256(4326103531135640190, 9905992825334356312, 17337601773902811684, 10584278566505874322),
+UInt256(2703814706959775119, 1579559497406584791, 10836001108689257302, 15838546140920947259),
+UInt256(3379768383699718898, 15809507427040394701, 8933315367434183724, 10574810639296408266),
+UInt256(4224710479624648623, 10538512246945717568, 15778330227720117559, 13218513299120510332),
+UInt256(2640444049765405389, 13504099181982155336, 9861456392325073474, 15179099839591400814),
+UInt256(3300555062206756737, 3045065922195530458, 12326820490406341843, 9750502762634475209),
+UInt256(4125693827758445921, 8418018421171800977, 6185153576153151496, 7576442434865706107),
+UInt256(2578558642349028700, 16790476559300845370, 15394936031164189445, 4735276521791066317),
+UInt256(3223198302936285876, 2541351625416505097, 10020298002100460998, 10530781670666220801),
+UInt256(4028997878670357345, 3176689531770631371, 17137058521052964152, 3940105051478000193),
+UInt256(2518123674168973340, 13514646003425114367, 8404818566444408643, 2462565657173750121),
+UInt256(3147654592711216675, 16893307504281392959, 5894337189628122899, 16913265126749351363),
+UInt256(3934568240889020844, 16504948361924353295, 2756235468607765720, 16529895390009301299),
+UInt256(2459105150555638028, 1092220689347945001, 8640176195520935431, 10331184618755813312),
+UInt256(3073881438194547535, 1365275861684931251, 15411906262828557193, 8302294755017378736),
+UInt256(3842351797743184418, 15541652882388327776, 14653196810108308587, 14989554462199111324),
+UInt256(2401469873589490261, 14325219069920092764, 9158248006317692867, 7062628529660750626),
+UInt256(3001837341986862827, 4071465782117952243, 11447810007897116084, 4216599643648550378),
+UInt256(3752296677483578534, 477646209220052400, 9698076491444007201, 5270749554560687972),
+UInt256(2345185423427236583, 14133586936044696462, 6061297807152504500, 14823433517668899743),
+UInt256(2931481779284045729, 13055297651628482673, 16799994295795406434, 82547823376573062),
+UInt256(3664352224105057162, 2484064009253439630, 7164934814462094330, 9326556816075492136),
+UInt256(4580440280131321452, 12328452048421575345, 18179540554932393721, 2434823983239589362),
+UInt256(2862775175082075907, 16928654567118260399, 4444683819191664219, 13050980035593213111),
+UInt256(3578468968852594884, 16549132190470437595, 944168755562192370, 11702039026064128485),
+UInt256(4473086211065743606, 2239671164378495377, 15015268999734904175, 5404176745725384798),
+UInt256(2795678881916089753, 15234852533018723323, 2467014097193233253, 10295139493719447355),
+UInt256(3494598602395112192, 5208507610991240441, 16918825676773705278, 17480610385576697098),
+UInt256(4368248252993890240, 6510634513739050552, 7313474040684967886, 12627390945116095564),
+UInt256(2730155158121181400, 4069146571086906595, 4570921275428104929, 3280433322270171824),
+UInt256(3412693947651476750, 5086433213858633244, 1101965575857743257, 8712227671265102683),
+UInt256(4265867434564345937, 15581413554178067363, 1377456969822179071, 15501970607508766258),
+UInt256(2666167146602716211, 2820854443720210245, 17001811670634719583, 16606260657334060768),
+UInt256(3332708933253395263, 17361126109932426519, 7417206533011235767, 16146139803240188055),
+UInt256(4165886166566744079, 17089721618988145245, 4659822147836656805, 15570988735622847165),
+UInt256(2603678854104215049, 17598605039508672634, 5218231851611604455, 12037710968977973430),
+UInt256(3254598567630268812, 8163198244103677080, 15746161851369281377, 10435452692795078884),
+UInt256(4068248209537836015, 10203997805129596351, 1235958240502050105, 17656001884421236509),
+]
+
+private let bid_multipliers2_binary80_41: [UInt256] = [
+UInt256(2542655130961147509, 13295027655847079575, 7690002927954863172, 4117472150122190962),
+UInt256(3178318913701434387, 2783726514526685757, 5000817641516191061, 5146840187652738702),
+UInt256(3972898642126792983, 17314716198440520908, 10862708070322626730, 11045236252993311282),
+UInt256(2483061651329245614, 17739226651666407423, 16012564580806417514, 11514958676548207455),
+UInt256(3103827064161557018, 12950661277728233471, 15404019707580633989, 5170326308830483511),
+UInt256(3879783830201946273, 6964954560305516031, 14643338616048404582, 11074593904465492293),
+UInt256(2424864893876216420, 15882311646259417279, 16069615662671334720, 2309935171863544779),
+UInt256(3031081117345270526, 1406145484114719983, 15475333559911780496, 2887418964829430974),
+UInt256(3788851396681588157, 10981053891998175787, 14732480931462337716, 3609273706036788717),
+UInt256(2368032122925992598, 9169001691712553819, 6901957572950267120, 11479168103127768756),
+UInt256(2960040153657490748, 2237880077785916466, 4015760947760445996, 14348960128909710945),
+UInt256(3700050192071863435, 2797350097232395582, 14243073221555333303, 17936200161137138682),
+UInt256(2312531370044914646, 17889244875266104903, 4290234745044695410, 18127654128351793532),
+UInt256(2890664212556143308, 13138184057227855321, 751107412878481359, 13436195623584966107),
+UInt256(3613330265695179135, 16422730071534819151, 5550570284525489603, 12183558511053819730),
+UInt256(4516662832118973919, 15916726570991136035, 2326526837229474100, 10617762120389886758),
+UInt256(2822914270074358699, 16865483134510541877, 17594980337764278976, 15859473362098455032),
+UInt256(3528642837592948374, 16470167899710789443, 8158667366923185009, 1377597628913517174),
+UInt256(4410803546991185468, 11364337837783710996, 5586648190226593357, 6333683054569284371),
+UInt256(2756752216869490917, 16326083185469595180, 12715027155746396656, 6264394918319496684),
+UInt256(3445940271086863647, 6572545926554830263, 15893783944682995820, 7830493647899370855),
+UInt256(4307425338858579559, 3603996389766149925, 15255543912426356871, 9788117059874213569),
+UInt256(2692140836786612224, 9170026771244925559, 11840557954480166996, 13035102190062465337),
+UInt256(3365176045983265280, 11462533464056156949, 10189011424672820841, 16293877737578081671),
+UInt256(4206470057479081600, 14328166830070196186, 17347950299268413956, 6532289116690438376),
+UInt256(2629043785924426000, 8955104268793872616, 15454154955470146626, 13306052734786299793),
+UInt256(3286304732405532500, 11193880335992340771, 870949620628131667, 7409193881628098934),
+UInt256(4107880915506915625, 13992350419990425963, 14923745081067328296, 4649806333607735763),
+UInt256(2567425572191822266, 1827689984852934371, 7021497666453386233, 2906128958504834852),
+UInt256(3209281965239777832, 11507984517920943772, 4165186064639344887, 8244347216558431469),
+UInt256(4011602456549722290, 14384980647401179715, 5206482580799181109, 5693748002270651432),
+UInt256(2507251535343576431, 13602298923053125226, 948208603785794241, 5864435510632851097),
+UInt256(3134064419179470539, 12391187635389018628, 10408632791587018609, 11942230406718451775),
+UInt256(3917580523974338174, 10877298525808885381, 13010790989483773262, 1092729953115901007),
+UInt256(2448487827483961359, 2186625560203165459, 10437587377641052240, 14518014275979601842),
+UInt256(3060609784354951698, 16568340005536120536, 8435298203623927396, 18147517844974502302),
+UInt256(3825762230443689623, 11487052970065374862, 10544122754529909246, 4237653232508576261),
+UInt256(2391101394027306014, 14096937133931941145, 1978390703153805374, 16483591325600023875),
+UInt256(2988876742534132518, 8397799380560150623, 7084674397369644622, 11381117120145254036),
+UInt256(3736095928167665648, 1273877188845412471, 4244156978284667874, 5003024363326791737),
+UInt256(2335059955104791030, 796173243028382794, 9570127139068999277, 7738576245506632740),
+UInt256(2918824943880988787, 10218588590640254301, 2739286886981473288, 14284906325310678829),
+UInt256(3648531179851235984, 8161549719872929972, 8035794627154229514, 17856132906638348536),
+UInt256(4560663974814044980, 10201937149841162465, 10044743283942786893, 13096794096443159862),
+UInt256(2850414984258778112, 15599582755505502348, 17807179598532711568, 10491339319490668866),
+UInt256(3563018730323472641, 1052734370672326320, 3812230424456337844, 13114174149363336082),
+UInt256(4453773412904340801, 5927603981767795804, 4765288030570422305, 16392717686704170102),
+UInt256(2783608383065213000, 15233967534673342137, 12201677055961289749, 3327919526549024458),
+UInt256(3479510478831516251, 595715344632126056, 1417038264669448474, 8771585426613668477),
+UInt256(4349388098539395313, 14579702236072321282, 1771297830836810593, 1741109746412309788),
+]
+
+private let bid_multipliers2_binary80_42: [UInt256] = [
+UInt256(2718367561587122071, 2194784869904118945, 5718747162700394524, 12617408637576163377),
+UInt256(3397959451983902588, 16578539142662312393, 11760119971802881059, 15771760796970204222),
+UInt256(4247449314979878236, 2276429854618338876, 865091909471437612, 15103014977785367373),
+UInt256(2654655821862423897, 10646140695991237605, 9764054480274424316, 216012324261078800),
+UInt256(3318319777328029871, 17919361888416434910, 16816754118770418299, 270015405326348500),
+UInt256(4147899721660037339, 17787516342093155734, 11797570611608247065, 14172577311940099337),
+UInt256(2592437326037523337, 8811354704594528382, 2761795613827766512, 1940331792321480230),
+UInt256(3240546657546904171, 15625879399170548381, 12675616554139483948, 2425414740401850287),
+UInt256(4050683321933630214, 14920663230535797573, 2009462637392191223, 3031768425502312859),
+UInt256(2531677076208518884, 4713728500657485579, 3561757157583813466, 8812384293580027393),
+UInt256(3164596345260648605, 5892160625821856973, 18287254502261930545, 1792108330120258433),
+UInt256(3955745431575810756, 11976886800704709121, 9024010072545249469, 6851821431077710945),
+UInt256(2472340894734881722, 16708926287295219008, 17169221341409250678, 6588231403637263293),
+UInt256(3090426118418602153, 11662785822264247953, 3014782603052011731, 17458661291401354924),
+UInt256(3863032648023252692, 743424222548146229, 8380164272242402568, 17211640595824305751),
+UInt256(2414395405014532932, 9688012175947367201, 7543445679365195557, 10757275372390191095),
+UInt256(3017994256268166165, 12110015219934209001, 14040993117633882350, 18058280233915126772),
+UInt256(3772492820335207707, 1302460969635597540, 3716183341760189226, 13349478255539132657),
+UInt256(2357808012709504816, 16954939170518106126, 11545986625454894074, 12955109928139345815),
+UInt256(2947260015886881021, 2746929889438081042, 5209111244963841785, 6970515373319406460),
+UInt256(3684075019858601276, 8045348380224989206, 15734761093059578039, 13324830235076645979),
+UInt256(4605093774823251595, 10056685475281236508, 10445079329469696741, 12044351775418419570),
+UInt256(2878183609264532247, 3979585412837078865, 15751546617773336271, 9833562868850206183),
+UInt256(3597729511580665309, 362795747618960678, 5854375216934506627, 7680267567635369825),
+UInt256(4497161889475831636, 5065180702951088751, 16541341058022909092, 4988648441116824377),
+UInt256(2810726180922394772, 12389109976199206277, 17255867188905400038, 12341277312552791044),
+UInt256(3513407726152993465, 15486387470249007847, 7734775930849586336, 6203224603836212997),
+UInt256(4391759657691241832, 5522926282529096097, 5056783895134595016, 7754030754795266246),
+UInt256(2744849786057026145, 3451828926580685060, 14689704980527591645, 4846269221747041404),
+UInt256(3431062232571282681, 8926472176653244229, 18362131225659489556, 10669522545611189659),
+UInt256(4288827790714103351, 15769776239243943191, 9117605976792198233, 13336903182013987073),
+UInt256(2680517369196314594, 16773639177168546350, 12616032763136205752, 1418035461117660065),
+UInt256(3350646711495393243, 11743676934605907130, 6546668917065481382, 1772544326397075081),
+UInt256(4188308389369241554, 10067910149829996008, 17406708183186627535, 11439052444851119659),
+UInt256(2617692743355775971, 10904129862071135409, 10879192614491642209, 14066936805673031643),
+UInt256(3272115929194719964, 9018476309161531357, 18210676786541940666, 3748612951809125842),
+UInt256(4090144911493399955, 11273095386451914197, 8928287927895262120, 13909138226616183110),
+UInt256(2556340569683374972, 4739841607318752421, 7886022964148232777, 8693211391635114444),
+UInt256(3195425712104218715, 5924802009148440526, 14469214723612678875, 15478200257971280959),
+UInt256(3994282140130273394, 2794316493008162754, 8863146367661072786, 14736064304036713295),
+UInt256(2496426337581420871, 6358133826557489625, 10151152498215558395, 13821726208450333713),
+UInt256(3120532921976776089, 3335981264769474127, 17300626641196835898, 12665471742135529238),
+UInt256(3900666152470970111, 8781662599389230563, 17014097283068656969, 6608467640814635739),
+UInt256(2437916345294356319, 12406068152259350958, 8327967792704216653, 15659507321577617097),
+UInt256(3047395431617945399, 10895899171896800794, 1186587704025495009, 5739326096689857659),
+UInt256(3809244289522431749, 9008187946443613088, 10706606666886644569, 11785843639289709978),
+UInt256(2380777680951519843, 7935960475740952132, 6691629166804152856, 448623246914986880),
+UInt256(2975972101189399804, 5308264576248802261, 8364536458505191070, 560779058643733600),
+UInt256(3719965126486749755, 6635330720311002826, 15067356591558876741, 9924345860159442808),
+UInt256(2324978204054218597, 1841238690980682814, 14028783888151685867, 8508559171813345707),
+]
+
+private let bid_multipliers2_binary80_43: [UInt256] = [
+UInt256(2906222755067773246, 6913234382153241422, 8312607823334831526, 6024012946339294230),
+UInt256(3632778443834716557, 17864915014546327586, 1167387742313763599, 16753388219778893595),
+UInt256(4540973054793395697, 8496085712900745770, 10682606714746980307, 16330049256296229090),
+UInt256(2838108159245872310, 16839268616631435866, 11288315215144250596, 7900437775971449230),
+UInt256(3547635199057340388, 11825713733934519025, 4887021982075537437, 9875547219964311537),
+UInt256(4434543998821675485, 14782142167418148781, 10720463496021809700, 16956120043382777325),
+UInt256(2771589999263547178, 11544681863850036940, 9006132694227325015, 1374202990259460020),
+UInt256(3464487499079433973, 5207480292957770367, 11257665867784156268, 15552811793106488737),
+UInt256(4330609373849292466, 11121036384624600863, 9460396316302807432, 994270667673559305),
+UInt256(2706630858655807791, 11562333758817763443, 12830276725330336501, 621419167295974566),
+UInt256(3383288573319759739, 9841231180094816400, 11426159888235532722, 5388459977547356111),
+UInt256(4229110716649699674, 7689852956691132596, 14282699860294415902, 15958947008788970947),
+UInt256(2643194197906062296, 9417844116359345776, 18150059449538785747, 5362655862065718938),
+UInt256(3303992747382577870, 11772305145449182221, 4240830238213930568, 2091633809154760769),
+UInt256(4129990934228222338, 5492009394956701968, 9912723816194801114, 2614542261443450961),
+UInt256(2581244333892638961, 8044191890275326634, 6195452385121750696, 6245774931829544755),
+UInt256(3226555417365798701, 14666925881271546196, 16967687518256964178, 7807218664786930943),
+UInt256(4033194271707248377, 4498599296307269034, 2762865324111653607, 535651294128887871),
+UInt256(2520746419817030235, 14340839606260512906, 6338476845997171408, 7252311086471636775),
+UInt256(3150933024771287794, 13314363489398253228, 17146468094351240068, 9065388858089545969),
+UInt256(3938666280964109743, 7419582324893040728, 2986341044229498469, 11331736072611932461),
+UInt256(2461666425602568589, 11554767980699232311, 1866463152643436543, 9388178054596151740),
+UInt256(3077083032003210737, 608401920591876676, 16168136996086459391, 7123536549817801771),
+UInt256(3846353790004013421, 5372188419167233750, 1763427171398522623, 4292734668844864310),
+UInt256(2403971118752508388, 5663460771193215045, 14937200037406240351, 9600488195669122050),
+UInt256(3004963898440635485, 7079325963991518807, 4836441991475636727, 7388924226159014658),
+UInt256(3756204873050794356, 13460843473416786413, 1433866470917158005, 4624469264271380419),
+UInt256(2347628045656746472, 17636399207740267316, 3202009553536917705, 5196136299383306714),
+UInt256(2934535057070933091, 3598754935965782529, 4002511941921147131, 11106856392656521296),
+UInt256(3668168821338666363, 18333501725239391873, 9614825945828821818, 9271884472393263716),
+UInt256(4585211026673332954, 18305191138121851937, 16630218450713415177, 2366483553636803837),
+UInt256(2865756891670833096, 16052430479753545365, 3476357504054802629, 13008267267091472159),
+UInt256(3582196114588541371, 1618794025982380090, 8957132898495891191, 2425276028582176486),
+UInt256(4477745143235676713, 15858550587760138825, 1973044086265088180, 16866653091009884319),
+UInt256(2798590714522297946, 2994065089709004909, 12762367599984149873, 1318286145026401892),
+UInt256(3498238393152872432, 12965953398991031945, 2117901444698023629, 6259543699710390269),
+UInt256(4372797991441090540, 16207441748738789931, 7259062824299917440, 12436115643065375740),
+UInt256(2732998744650681588, 906279056106967899, 2231071255973754448, 7772572276915859837),
+UInt256(3416248430813351985, 1132848820133709873, 16623897125249356772, 9715715346144824797),
+UInt256(4270310538516689981, 6027747043594525246, 6944813351279532253, 12144644182681030996),
+UInt256(2668944086572931238, 6073184911460272230, 18175566399831871370, 9896245623389338325),
+UInt256(3336180108216164047, 16814853176180116096, 13496085962935063405, 3146934992381897098),
+UInt256(4170225135270205059, 16406880451797757216, 16870107453668829256, 8545354758904759276),
+UInt256(2606390709543878162, 7948457273159904308, 10543817158543018285, 5340846724315474548),
+UInt256(3257988386929847703, 712199554595104577, 13179771448178772856, 11287744423821731088),
+UInt256(4072485483662309628, 14725307498526044434, 2639656254941302358, 14109680529777163860),
+UInt256(2545303427288943517, 18426689223433553579, 6261471177765701878, 4206864312683339509),
+UInt256(3181629284111179397, 9198303474009778262, 3215152953779739443, 14481952427708950194),
+UInt256(3977036605138974246, 16109565360939610731, 13242313229079450112, 13490754516208799838),
+UInt256(2485647878211858904, 5456792332159868803, 5970602758960962368, 8431721572630499899),
+]
+
+private let bid_multipliers2_binary80_44: [UInt256] = [
+UInt256(3107059847764823630, 6820990415199836004, 2851567430273815056, 10539651965788124874),
+UInt256(3883824809706029537, 17749610055854570813, 3564459287842268820, 13174564957235156092),
+UInt256(2427390506066268461, 4175977257268024902, 4533630064115111964, 17457475135126748366),
+UInt256(3034238132582835576, 9831657590012419031, 14890409616998665764, 3375099845198883841),
+UInt256(3792797665728544470, 12289571987515523789, 14001326002820944301, 4218874806498604801),
+UInt256(2370498541080340294, 3069296473769814464, 11056671760976784140, 4942639763275321953),
+UInt256(2963123176350425367, 13059992629067043888, 13820839701220980175, 6178299704094152441),
+UInt256(3703903970438031709, 11713304767906416956, 17276049626526225219, 3111188611690302647),
+UInt256(2314939981523769818, 9626658489155204550, 1574158979724114953, 18085393946802296819),
+UInt256(2893674976904712273, 2809951074589229879, 11191070761509919500, 8771684378220707311),
+UInt256(3617093721130890341, 8124124861663925253, 9377152433460011471, 10964605472775884139),
+UInt256(4521367151413612926, 14766842095507294470, 16333126560252402243, 9094070822542467270),
+UInt256(2825854469633508079, 4617590291264671140, 5596518081730363498, 3377951254875348092),
+UInt256(3532318087041885099, 1160301845653451021, 6995647602162954372, 13445811105448960922),
+UInt256(4415397608802356373, 15285435362348977488, 13356245521131080869, 16807263881811201153),
+UInt256(2759623505501472733, 11859240110681804882, 8347653450706925543, 12810382935345694673),
+UInt256(3449529381876840917, 988992083070092391, 1211194776528881121, 11401292650754730437),
+UInt256(4311911727346051146, 5847926122265003392, 15349051525943265114, 416557758161249334),
+UInt256(2694944829591281966, 8266639844843015024, 9593157203714540696, 4872034617278168738),
+UInt256(3368681036989102458, 1109927769198992972, 11991446504643175870, 6090043271597710922),
+UInt256(4210851296236378072, 10610781748353517023, 14989308130803969837, 16835926126351914461),
+UInt256(2631782060147736295, 6631738592720948139, 16285846609393563004, 12828296838183640490),
+UInt256(3289727575184670369, 3677987222473797270, 15745622243314565851, 16035371047729550613),
+UInt256(4112159468980837961, 9209170046519634492, 10458655767288431506, 15432527791234550362),
+UInt256(2570099668113023725, 17284946325143241317, 15760031891410045499, 14257015887948981880),
+UInt256(3212624585141279657, 7771124851146887935, 5864981808980393162, 13209583841508839446),
+UInt256(4015780731426599571, 14325592082360997823, 2719541242798103549, 7288607765031273499),
+UInt256(2509862957141624732, 6647652042261929687, 8617242304389896574, 6861222862358239889),
+UInt256(3137328696427030915, 8309565052827412109, 6159866862059982813, 17799900614802575670),
+UInt256(3921660870533788644, 5775270297606877232, 12311519596002366421, 8414817713221055875),
+UInt256(2451038044083617902, 12832915972859074078, 7694699747501479013, 7565104079976853874),
+UInt256(3063797555104522378, 6817772929219066790, 395002647522072958, 14068066118398455246),
+UInt256(3829746943880652972, 17745588198378609295, 9717125346257367006, 8361710611143293250),
+UInt256(2393591839925408108, 1867620587131855001, 12990732369051936235, 614383113537170377),
+UInt256(2991989799906760135, 2334525733914818752, 2403357406032756581, 14603036947203626683),
+UInt256(3739987249883450168, 16753215222675687152, 3004196757540945727, 4418738128722369642),
+UInt256(2337492031177156355, 10470759514172304470, 1877622973463091079, 9679240358092562883),
+UInt256(2921865038971445444, 8476763374287992683, 11570400753683639657, 7487364429188315699),
+UInt256(3652331298714306805, 10595954217859990854, 9851314923677161667, 13970891554912782528),
+UInt256(4565414123392883506, 17856628790752376472, 3090771617741676276, 12851928425213590256),
+UInt256(2853383827120552191, 15772079012647623199, 1931732261088547672, 17255827302613269718),
+UInt256(3566729783900690239, 15103412747382141094, 16249723381642848303, 3123040054557035531),
+UInt256(4458412229875862799, 14267579915800288464, 11088782190198784570, 17738858123478458126),
+UInt256(2786507643672414249, 15834766475016262146, 6930488868874240356, 15698472345601424233),
+UInt256(3483134554590517812, 5958400038488163970, 17886483122947576254, 1176346358292228675),
+UInt256(4353918193238147265, 7448000048110204963, 13134731866829694509, 10693804984720061652),
+UInt256(2721198870773842040, 16184215076137347862, 5903364407554865116, 8989471124663732484),
+UInt256(3401498588467302551, 1783524771462133211, 16602577546298357203, 11236838905829665605),
+UInt256(4251873235584128188, 16064464019609830226, 16141535914445558600, 9434362613859694103),
+UInt256(2657420772240080118, 816917975401368083, 14700145964955862029, 5896476633662308814),
+]
+
+private let bid_multipliers2_binary80_45: [UInt256] = [
+UInt256(3321775965300100147, 10244519506106485912, 13763496437767439632, 11982281810505273922),
+UInt256(4152219956625125184, 8193963364205719486, 17204370547209299540, 14977852263131592402),
+UInt256(2595137472890703240, 5121227102628574679, 6141045573578424309, 137785627602469444),
+UInt256(3243921841113379050, 6401533878285718349, 3064620948545642482, 4783918052930474708),
+UInt256(4054902301391723812, 17225289384711923744, 8442462204109441006, 15203269603017869193),
+UInt256(2534313938369827383, 1542433828590176532, 5276538877568400629, 4890357483458780342),
+UInt256(3167892422962284228, 15763100341019884377, 6595673596960500786, 10724632872750863331),
+UInt256(3959865528702855286, 1257131352565303855, 12856278014628013887, 4182419054083803356),
+UInt256(2474915955439284553, 14620765150635478621, 14952702786783590535, 9531540936443458954),
+UInt256(3093644944299105692, 4440898383012184565, 4855820428197324457, 7302740152126935788),
+UInt256(3867056180373882115, 5551122978765230706, 10681461553674043475, 13740111208586057639),
+UInt256(2416910112733676322, 1163608852514575239, 11287599489473665076, 6281726496152592073),
+UInt256(3021137640917095402, 10677883102497994857, 9497813343414693441, 7852158120190740091),
+UInt256(3776422051146369253, 4123981841267717763, 16483952697695754705, 14426883668665813017),
+UInt256(2360263781966480783, 4883331660006017554, 7996627426846152739, 2099273265275051280),
+UInt256(2950329727458100979, 1492478556580134039, 772412246702915115, 16459149636875977812),
+UInt256(3687912159322626223, 15700656251007331260, 14800573363660807606, 15962251027667584360),
+UInt256(4609890199153282779, 15014134295331776172, 53972630866457892, 10729441747729704642),
+UInt256(2881181374470801737, 7077990925368666155, 9257104931146311990, 15929273129185841210),
+UInt256(3601476718088502171, 13459174675138220598, 6959695145505502084, 10688219374627525704),
+UInt256(4501845897610627714, 12212282325495387843, 17922990968736653413, 13360274218284407130),
+UInt256(2813653686006642321, 12244362471862005306, 8896026346246714431, 10656014395641448408),
+UInt256(3517067107508302902, 1470395034545342921, 1896660895953617231, 8708331976124422606),
+UInt256(4396333884385378627, 11061365830036454459, 6982512138369409443, 6273728951728140354),
+UInt256(2747708677740861642, 4607510634559090085, 2058227077267186950, 1615237585616393769),
+UInt256(3434635847176077052, 14982760330053638414, 7184469865011371591, 11242419018875268019),
+UInt256(4293294808970096316, 281706338857496401, 18203959368118990297, 9441337755166697120),
+UInt256(2683309255606310197, 9399438498640711059, 4459945577433287079, 17430051143047655460),
+UInt256(3354136569507887746, 16360984141728276728, 963245953364220945, 17175877910382181421),
+UInt256(4192670711884859683, 11227858140305570102, 1204057441705276182, 7634789332695563064),
+UInt256(2620419194928037302, 4711568328477287361, 14587593956347961326, 160057314507339011),
+UInt256(3275523993660046627, 15112832447451385010, 4399434390152787945, 9423443679988949572),
+UInt256(4094404992075058284, 14279354540886843358, 14722665024545760739, 16390990618413574869),
+UInt256(2559003120046911427, 18147968624909052907, 4589979621913712558, 7938526127294790341),
+UInt256(3198753900058639284, 18073274762708928230, 1125788508964752794, 699785622263712119),
+UInt256(3998442375073299106, 4144849379676608671, 10630607673060716800, 10098104064684415956),
+UInt256(2499026484420811941, 7202216880725268323, 13561658823304029856, 6311315040427759973),
+UInt256(3123783105526014926, 13614457119333973308, 12340387510702649416, 7889143800534699966),
+UInt256(3904728881907518658, 7794699362312690827, 15425484388378311770, 9861429750668374957),
+UInt256(2440455551192199161, 9483373119872819671, 7335084733522750904, 10775079612595122252),
+UInt256(3050569438990248951, 16465902418268412493, 4557169898476050726, 13468849515743902815),
+UInt256(3813211798737811189, 15970692004408127712, 10308148391522451312, 7612689857825102711),
+UInt256(2383257374211131993, 12287525511968773772, 6442592744701532070, 4757931161140689195),
+UInt256(2979071717763914992, 1524348834678803503, 8053240930876915087, 15170785988280637301),
+UInt256(3723839647204893740, 1905436043348504379, 5454865145168755955, 14351796466923408722),
+UInt256(2327399779503058587, 10414269563947591045, 1103447706516778520, 6664029782613436500),
+UInt256(2909249724378823234, 8406150936507100902, 5990995651573361054, 8330037228266795624),
+UInt256(3636562155473529043, 1284316633779100319, 16712116601321477126, 1189174498478718722),
+UInt256(4545702694341911303, 15440453847506039111, 16278459733224458503, 10709840159953174211),
+UInt256(2841064183963694564, 16567812682332356300, 17091566360906368420, 13611179127611815738),
+]
+
+private let bid_multipliers2_binary80_46: [UInt256] = [
+UInt256(3551330229954618206, 2263021779205893760, 2917713877423408909, 17013973909514769672),
+UInt256(4439162787443272757, 12052149260862143008, 3647142346779261137, 7432409331611298378),
+UInt256(2774476742152045473, 9838436297252533332, 2279463966737038210, 16174470878325531247),
+UInt256(3468095927690056841, 16909731389993054569, 2849329958421297763, 10994716561052138250),
+UInt256(4335119909612571052, 7302106182209154499, 8173348466454010108, 9131709682887784909),
+UInt256(2709449943507856907, 13787188400735497370, 2802499782320062365, 14930690588659641376),
+UInt256(3386812429384821134, 12622299482491983808, 12726496764754853765, 4828305180542388008),
+UInt256(4233515536731026418, 6554502316260203952, 15908120955943567206, 10647067494105372914),
+UInt256(2645947210456891511, 8708249966090015374, 9942575597464729504, 2042731165388470167),
+UInt256(3307434013071114389, 6273626439185131314, 3204847459976136072, 2553413956735587709),
+UInt256(4134292516338892986, 12453719067408802046, 13229431361824945898, 3191767445919484636),
+UInt256(2583932822711808116, 12395260435557889183, 3656708582713203282, 6606540672127065802),
+UInt256(3229916028389760145, 15494075544447361478, 18405943783673667814, 17481547877013608060),
+UInt256(4037395035487200182, 5532536375277038136, 13784057692737308960, 12628562809412234267),
+UInt256(2523371897179500113, 17292893289830312547, 8615036057960818100, 7892851755882646417),
+UInt256(3154214871474375142, 7781058557005726972, 6157109054023634721, 9866064694853308021),
+UInt256(3942768589342968928, 502951159402382907, 7696386317529543401, 16944266886994022930),
+UInt256(2464230368339355580, 314344474626489317, 2504398439242270674, 3672637776730182476),
+UInt256(3080287960424194475, 392930593283111646, 7742184067480226246, 13814169257767503903),
+UInt256(3850359950530243093, 14326221296886053270, 454358047495507000, 8044339535354604070),
+UInt256(2406474969081401933, 11259731319767477245, 14119031834966855587, 5027712209596627544),
+UInt256(3008093711351752417, 239606094427182845, 3813731738426405772, 1672954243568396526),
+UInt256(3760117139189690521, 4911193636461366460, 9378850691460395119, 2091192804460495657),
+UInt256(2350073211993556575, 14598711068856823797, 15085153719017522757, 8224524530428891642),
+UInt256(2937591514991945719, 13636702817643641843, 5021384093489739734, 14892341681463502456),
+UInt256(3671989393739932149, 12434192503627164400, 1665044098434786764, 9392055064974602262),
+UInt256(4589986742174915187, 1707682574251791788, 2081305123043483455, 11740068831218252828),
+UInt256(2868741713859321991, 17208202673403227531, 10524187738756952967, 14255072047152489873),
+UInt256(3585927142324152489, 16898567323326646510, 8543548655018803305, 13207154040513224438),
+UInt256(4482408927905190612, 7288151098876144426, 1456063781918728324, 2673884495359366835),
+UInt256(2801505579940744132, 13778466473652366074, 5521725882126593106, 10894549846454380080),
+UInt256(3501881974925930165, 17223083092065457592, 16125529389513017191, 4394815271213199292),
+UInt256(4377352468657412707, 7693795809799658279, 1710167663181719873, 881833070589111211),
+UInt256(2735845292910882942, 2502779371911092472, 7986383817129656776, 12080360715186664267),
+UInt256(3419806616138603677, 12351846251743641398, 9982979771412070970, 15100450893983330334),
+UInt256(4274758270173254597, 1604749759397388036, 3255352677410312905, 9652191580624387109),
+UInt256(2671723918858284123, 3308811608837061474, 11257967460236221373, 17561834783958711703),
+UInt256(3339654898572855153, 17971072566328490555, 4849087288440500909, 8117235424666225917),
+UInt256(4174568623216068942, 8628782652628449482, 1449673092123238232, 14758230299260170300),
+UInt256(2609105389510043089, 781303139465393022, 5517731701004411799, 9223893937037606438),
+UInt256(3261381736887553861, 5588314942759129181, 16120536663110290557, 6918181402869620143),
+UInt256(4076727171109442326, 11597079696876299381, 6315612773605699484, 13259412772014413083),
+UInt256(2547954481943401454, 2636488792120299209, 6253100992717256129, 17510505019363783985),
+UInt256(3184943102429251817, 12518983027005149819, 12428062259323958066, 8053073218922566269),
+UInt256(3981178878036564772, 1813670728474273562, 10923391805727559679, 842969486798432028),
+UInt256(2488236798772852982, 10356916242151196784, 11438805897007112703, 7444384956890101874),
+UInt256(3110295998466066228, 3722773265834220172, 14298507371258890879, 4693795177685239438),
+UInt256(3887869998082582785, 4653466582292775215, 17873134214073613599, 1255557953679161393),
+UInt256(2429918748801614240, 14437631660001454269, 18088237911437090355, 7702252748690557727),
+UInt256(3037398436002017800, 18047039575001817837, 8775239334014199232, 5016129917435809255),
+]
+
+private let bid_multipliers2_binary80_47: [UInt256] = [
+UInt256(3796748045002522251, 4112055395042720680, 15580735185945136944, 6270162396794761568),
+UInt256(2372967528126576407, 264191612688006473, 9737959491215710590, 3918851497996725980),
+UInt256(2966209410158220508, 14165297571142171803, 16784135382447026141, 14121936409350683283),
+UInt256(3707761762697775635, 17706621963927714754, 16368483209631394773, 3817362456406190392),
+UInt256(2317351101686109772, 8760795718241127769, 14841988024447009637, 4691694544467562947),
+UInt256(2896688877107637215, 10950994647801409712, 4717426975276598334, 10476304199011841588),
+UInt256(3620861096384546519, 9077057291324374236, 5896783719095747918, 3872008211910026177),
+UInt256(4526076370480683149, 6734635595728079891, 7370979648869684897, 14063382301742308529),
+UInt256(2828797731550426968, 6514990256543743884, 2301019271329859109, 1872084910947860975),
+UInt256(3535997164438033710, 8143737820679679855, 2876274089162323886, 6951792157112214122),
+UInt256(4419996455547542138, 956300238994824010, 17430400666735068569, 17913112233245043461),
+UInt256(2762497784717213836, 5209373667799152910, 15505686435136805760, 4278166118137070307),
+UInt256(3453122230896517295, 6511717084748941138, 10158736007066231392, 5347707647671337884),
+UInt256(4316402788620646619, 3527960337508788519, 3475047971978013432, 6684634559589172354),
+UInt256(2697751742887904136, 18345876275438850488, 9089434010127340251, 4177896599743232722),
+UInt256(3372189678609880171, 4485601270589011494, 11361792512659175314, 610684731251652998),
+UInt256(4215237098262350214, 995315569808876464, 4978868603969193334, 9986727950919342055),
+UInt256(2634523186413968883, 14457130286412711502, 3111792877480745834, 1630018950897200881),
+UInt256(3293153983017461104, 13459726839588501473, 13113113133705708100, 11260895725476276909),
+UInt256(4116442478771826380, 16824658549485626842, 2556333361849971413, 14076119656845346136),
+UInt256(2572776549232391488, 1292039556573740968, 6209394369583620037, 11103417794742035287),
+UInt256(3215970686540489360, 1615049445717176210, 7761742961979525047, 44214188145380397),
+UInt256(4019963358175611700, 2018811807146470263, 478806665619630500, 13890325790463889208),
+UInt256(2512477098859757312, 10485129416321319722, 7216783193653350918, 17904825655894706563),
+UInt256(3140596373574696640, 13106411770401649652, 18244351028921464456, 13157660033013607396),
+UInt256(3925745466968370800, 16383014713002062066, 4358694712442278954, 16447075041267009245),
+UInt256(2453590916855231750, 10239384195626288791, 7335870213703812250, 14891107919219268682),
+UInt256(3066988646069039688, 3575858207678085181, 4558151748702377409, 9390512862169310044),
+UInt256(3833735807586299610, 4469822759597606476, 10309375704305359665, 16349827096139025459),
+UInt256(2396084879741437256, 7405325243175891951, 15666731852045625599, 3301112907445809056),
+UInt256(2995106099676796570, 9256656553969864939, 14971728796629644094, 17961449189589425032),
+UInt256(3743882624595995713, 2347448655607555366, 14102974977359667214, 13228439450132005482),
+UInt256(2339926640372497320, 12996370455823191864, 4202673342422404105, 3656088637905115523),
+UInt256(2924908300465621650, 16245463069778989830, 5253341678028005131, 9181796815808782307),
+UInt256(3656135375582027063, 11083456800368961479, 15790049134389782222, 6865560001333589980),
+UInt256(4570169219477533829, 9242634982033813945, 15125875399559839873, 17805322038521763283),
+UInt256(2856355762173458643, 8082489872984827668, 2536143097083818065, 4210797246435020196),
+UInt256(3570444702716823304, 5491426322803646681, 3170178871354772581, 9875182576471163149),
+UInt256(4463055878396029130, 6864282903504558351, 8574409607620853630, 16955664239016341840),
+UInt256(2789409923997518206, 8901862833117736873, 12276535032404115375, 5985604130957825746),
+UInt256(3486762404996897758, 1903956504542395284, 1510610735222980507, 2870319145269894278),
+UInt256(4358453006246122197, 11603317667532769913, 1888263419028725633, 17422956986869531560),
+UInt256(2724033128903826373, 9557916551421675147, 12709379682961423281, 3971819089152375369),
+UInt256(3405041411129782966, 16559081707704481838, 11275038585274391197, 9576459879867857115),
+UInt256(4256301763912228708, 11475480097775826490, 4870426194738213188, 16582260868262209298),
+UInt256(2660188602445142942, 16395547097964667364, 7655702390138771147, 1140541005809105003),
+UInt256(3325235753056428678, 11271061835601058397, 9569627987673463933, 15260734312543544966),
+UInt256(4156544691320535848, 4865455257646547188, 16573721003019217821, 5240859835397267496),
+UInt256(2597840432075334905, 3040909536029091993, 1135203590032235330, 5581380406336986137),
+UInt256(3247300540094168631, 8412822938463752895, 6030690505967682066, 16200097544776008479),
+]
+
+private let bid_multipliers2_binary80_48: [UInt256] = [
+UInt256(4059125675117710789, 5904342654652303215, 2926677114032214679, 11026749894115234791),
+UInt256(2536953546948569243, 5996057168371383461, 8746702223911216030, 13809247711463103600),
+UInt256(3171191933685711554, 2883385442036841422, 15545063798316407942, 8038187602474103692),
+UInt256(3963989917107139442, 12827603839400827586, 10207957711040734120, 824362466237853807),
+UInt256(2477493698191962151, 12628938418052905145, 10991659587827846729, 515226541398658630),
+UInt256(3096867122739952689, 11174487004138743527, 18351260503212196315, 5255719195175711191),
+UInt256(3871083903424940862, 133050699891265697, 18327389610587857490, 1957962975542251085),
+UInt256(2419427439640588038, 13918214742714204773, 4537089478976329075, 5835412878141294832),
+UInt256(3024284299550735048, 8174396391537980158, 10283047867147799248, 2682580079249230636),
+UInt256(3780355374438418810, 10217995489422475198, 3630437797079973252, 3353225099061538295),
+UInt256(2362722109024011756, 10997933199316434902, 16104081678457146994, 11319137723768237242),
+UInt256(2953402636280014695, 13747416499145543628, 10906730061216657935, 4925550117855520745),
+UInt256(3691753295350018369, 12572584605504541631, 13633412576520822419, 1545251628892013027),
+UInt256(2307345809593761481, 940336350799256663, 15438411887966595867, 17106683332553365806),
+UInt256(2884182261992201851, 5787106456926458733, 14686328841530856930, 16771668147264319354),
+UInt256(3605227827490252314, 2622197052730685513, 4522852996631407451, 11741213147225623384),
+UInt256(4506534784362815392, 12501118352768132699, 10265252264216647218, 10064830415604641326),
+UInt256(2816584240226759620, 7813198970480082937, 4109939655921710559, 10902205028180288733),
+UInt256(3520730300283449525, 9766498713100103671, 9749110588329526103, 9016070266797973012),
+UInt256(4400912875354311906, 16819809409802517493, 7574702216984519725, 6658401815070078361),
+UInt256(2750570547096444941, 15124066899553961337, 7040031894829018780, 6467344143632492928),
+UInt256(3438213183870556177, 5070025569160287959, 13411725886963661379, 8084180179540616159),
+UInt256(4297766479838195221, 10949217979877747853, 12152971340277188820, 5493539205998382295),
+UInt256(2686104049898872013, 9149104246637286360, 9901450096886936964, 12656834040603764743),
+UInt256(3357630062373590016, 16048066326723995854, 12376812621108671205, 15821042550754705928),
+UInt256(4197037577966987521, 1613338834695443202, 6247643739531063199, 5941245133161218698),
+UInt256(2623148486229367200, 12537551817753121761, 8516463355634302403, 10630807235866843542),
+UInt256(3278935607786709000, 15671939772191402201, 15257265212970265908, 8676823026406166524),
+UInt256(4098669509733386251, 1143180641529701136, 5236523460930668673, 10846028783007708155),
+UInt256(2561668443583366406, 16855388965451920874, 3272827163081667920, 18307983035448287357),
+UInt256(3202085554479208008, 11845864169960125284, 13314405990706860709, 4438234720600807580),
+UInt256(4002606943099010010, 14807330212450156605, 16643007488383575886, 10159479419178397379),
+UInt256(2501629339436881256, 13866267401208735782, 12707722689453428881, 1737988618559110458),
+UInt256(3127036674296101570, 17332834251510919728, 6661281324962010293, 6784171791626275976),
+UInt256(3908795842870126963, 12442670777533873852, 8326601656202512866, 13091900757960232874),
+UInt256(2442997401793829352, 5470826226744977205, 14427498071981346349, 12794123992152533451),
+UInt256(3053746752242286690, 6838532783431221507, 4199314534694519225, 2157596934908503101),
+UInt256(3817183440302858362, 17771538016143802692, 637457149940761127, 7308682187063016780),
+UInt256(2385739650189286476, 15718897278517264586, 9621782755567751512, 11485455394555467344),
+UInt256(2982174562736608096, 1201877524437029117, 2803856407604913582, 14356819243194334180),
+UInt256(3727718203420760120, 1502346905546286396, 8116506527933529882, 8722652017138141917),
+UInt256(2329823877137975075, 938966815966428997, 14296188616813231984, 10063343529138726602),
+UInt256(2912279846422468843, 15008766575240199959, 4035177715734376268, 12579179411423408252),
+UInt256(3640349808028086054, 14149272200622862045, 432286126240582431, 15723974264279260315),
+UInt256(4550437260035107568, 8463218213923801748, 5152043676228115943, 15043281811921687490),
+UInt256(2844023287521942230, 5289511383702376092, 12443399334497348272, 16319580160092136537),
+UInt256(3555029109402427787, 15835261266482745923, 15554249168121685341, 1952731126405619056),
+UInt256(4443786386753034734, 15182390564676044500, 14831125441724718772, 7052599926434411724),
+UInt256(2777366491720646709, 4877308084495139909, 46081364223173424, 13631246990876283135),
+UInt256(3471708114650808386, 10708321124046312790, 4669287723706354684, 17039058738595353919),
+]
+
+private let bid_multipliers2_binary80_49: [UInt256] = [
+UInt256(4339635143313510483, 4162029368203115179, 15059981691487719164, 2852079349534640783),
+UInt256(2712271964570944052, 295425345913253035, 7106645547966130525, 11005921630313926297),
+UInt256(3390339955713680065, 369281682391566294, 4271620916530275252, 18369088056319795776),
+UInt256(4237924944642100081, 5073288121416845771, 14562898182517619874, 4514615996690193103),
+UInt256(2648703090401312550, 14700020121953998367, 6795968354859818469, 7433321016358758594),
+UInt256(3310878863001640688, 9151653115587722151, 3883274425147385182, 13903337288875836146),
+UInt256(4138598578752050860, 11439566394484652689, 242407013006843574, 8155799574240019375),
+UInt256(2586624111720031787, 16373101033407683738, 11680719429197746994, 485688715472624205),
+UInt256(3233280139650039734, 15854690273332216769, 5377527249642407934, 9830482931195556065),
+UInt256(4041600174562549668, 10594990804810495153, 11333595080480397822, 3064731627139669273),
+UInt256(2526000109101593542, 15845241289861335279, 165967897659166782, 15750515322244457008),
+UInt256(3157500136376991928, 10583179575471893290, 14042517927356122190, 10464772115950795451),
+UInt256(3946875170471239910, 13228974469339866613, 8329775372340376930, 3857593108083718506),
+UInt256(2466796981544524944, 3656423024910028729, 7511952616926429533, 7022681710979711970),
+UInt256(3083496226930656180, 4570528781137535911, 14001626789585424820, 13390038157152027867),
+UInt256(3854370283663320225, 5713160976421919889, 12890347468554393121, 16737547696440034834),
+UInt256(2408981427289575140, 15099940656332169691, 1138938140205413845, 3543438282633939915),
+UInt256(3011226784111968926, 428181746705660497, 15258730730538931018, 9040983871719812798),
+UInt256(3764033480139961157, 9758599220236851430, 5238355357891500061, 2077857802794990189),
+UInt256(2352520925087475723, 8404967521861726095, 17109030153964351250, 3604504135960562820),
+UInt256(2940651156359344654, 5894523383899769715, 16774601674028051158, 13729002206805479333),
+UInt256(3675813945449180817, 16591526266729487952, 16356566074107676044, 7937880721652073359),
+UInt256(4594767431811476022, 6904349778129696229, 1998963518925043439, 9922350902065091698),
+UInt256(2871729644882172513, 18150276666613223855, 3555195208541846101, 13118998341431764167),
+UInt256(3589662056102715642, 8852787777984366106, 18279052065959471339, 2563689871507541497),
+UInt256(4487077570128394553, 1842612685625681825, 13625443045594563365, 17039670394666590583),
+UInt256(2804423481330246595, 12680847974584520901, 1598372875855520247, 12955637005880313067),
+UInt256(3505529351662808244, 11239373949803263222, 6609652113246788213, 11582860238923003429),
+UInt256(4381911689578510305, 14049217437254079027, 17485437178413261075, 643517243371590575),
+UInt256(2738694805986568941, 1863231870642717536, 8622555227294594219, 16543099341603101773),
+UInt256(3423368507483211176, 6940725856730784824, 10778194034118242774, 16067188158576489313),
+UInt256(4279210634354013970, 8675907320913481030, 13472742542647803468, 10860613161365835833),
+UInt256(2674506646471258731, 10034128093998313548, 3808778070727489263, 16011255262708423204),
+UInt256(3343133308089073414, 7930974099070504031, 4760972588409361579, 15402383059958141100),
+UInt256(4178916635111341768, 690345586983354231, 1339529717084314070, 14641292806520288471),
+UInt256(2611822896944588605, 431465991864596394, 7754735100818778150, 4539121985647792391),
+UInt256(3264778621180735756, 5151018508258133397, 470046839168696879, 14897274518914516296),
+UInt256(4080973276475919695, 6438773135322666746, 5199244567388259003, 14009907130215757466),
+UInt256(2550608297797449809, 10941762237217748572, 7861213873045049781, 6450348947171154465),
+UInt256(3188260372246812261, 18288888814949573619, 9826517341306312226, 12674622202391330985),
+UInt256(3985325465308515327, 9026052963404803312, 7671460658205502379, 6619905716134387923),
+UInt256(2490828415817822079, 12558812129769083926, 4794662911378438987, 1831598063370298500),
+UInt256(3113535519772277599, 11086829143783967003, 15216700676077824541, 16124555634495036837),
+UInt256(3891919399715346999, 9246850411302570850, 14409189826669892773, 6320636487836632334),
+UInt256(2432449624822091874, 12696810534705188637, 13617429660096070887, 6256240814111589161),
+UInt256(3040562031027614843, 6647641131526709989, 3186729019837924897, 3208614999212098547),
+UInt256(3800702538784518554, 3697865395980999582, 8595097293224794025, 8622454767442511087),
+UInt256(2375439086740324096, 6922851890915512643, 760249789838108361, 16918249275720039190),
+UInt256(2969298858425405120, 8653564863644390803, 14785370292579799164, 7312753539367885275),
+UInt256(3711623573031756400, 10816956079555488504, 13870026847297361051, 9140941924209856594),
+]
+
+private let bid_multipliers2_binary80_50: [UInt256] = [
+UInt256(2319764733144847750, 6760597549722180315, 8668766779560850657, 3407245693417466419),
+UInt256(2899705916431059687, 17674118974007501202, 6224272456023675417, 8870743135199220928),
+UInt256(3624632395538824609, 17480962699081988598, 17003712606884370079, 15700114937426414064),
+UInt256(4530790494423530762, 8016145318570322036, 12031268721750686791, 15013457653355629676),
+UInt256(2831744059014706726, 9621776842533839176, 16742914987948955052, 16300940060988350403),
+UInt256(3539680073768383408, 2803849016312523163, 2481899661226642200, 1929431002525886388),
+UInt256(4424600092210479260, 3504811270390653953, 16937432631815466462, 2411788753157357985),
+UInt256(2765375057631549537, 11413879080848934529, 3668366367243584682, 15342426026005512453),
+UInt256(3456718822039436922, 432290795779004449, 9197143977481868757, 9954660495652114758),
+UInt256(4320898527549296152, 9763735531578531369, 16108115990279723850, 17055011637992531351),
+UInt256(2700561579718310095, 6102334707236582106, 3150043466283745550, 15271068292172719999),
+UInt256(3375701974647887619, 3016232365618339728, 13160926369709457746, 9865463328361124190),
+UInt256(4219627468309859523, 17605348512305088372, 16451157962136822183, 3108457123596629430),
+UInt256(2637267167693662202, 8697499810976986281, 1058601689480738056, 8860314729888975250),
+UInt256(3296583959617077753, 1648502726866457043, 5934938130278310474, 11075393412361219062),
+UInt256(4120729949521347191, 6672314427010459208, 2806986644420500189, 4620869728596748020),
+UInt256(2575456218450841994, 11087725544522618861, 1754366652762812618, 5193886589586661464),
+UInt256(3219320273063552493, 4636284893798497768, 6804644334380903676, 15715730273838102638),
+UInt256(4024150341329440616, 10407042135675510114, 8505805417976129596, 1197918768588076682),
+UInt256(2515093963330900385, 6504401334797193821, 9927814404662468901, 9972071267222323734),
+UInt256(3143867454163625481, 12742187686923880180, 17021454024255474030, 17076775102455292572),
+UInt256(3929834317704531852, 2092676553372686514, 2830073456609790922, 12122596841214339907),
+UInt256(2456146448565332407, 10531294882712704879, 6380481928808507230, 12188309044186350346),
+UInt256(3070183060706665509, 8552432584963493195, 3363916392583246134, 6012014268378162124),
+UInt256(3837728825883331886, 15302226749631754397, 18039953546011221379, 16738389872327478463),
+UInt256(2398580516177082429, 4952205700092458594, 13580813975470707314, 8155650660990980088),
+UInt256(2998225645221353036, 10801943143542961147, 7752645432483608335, 971191289383949301),
+UInt256(3747782056526691295, 13502428929428701434, 5079120772177122514, 15049047167012100339),
+UInt256(2342363785329182059, 15356547108534020252, 7786136501038089475, 14017340497809950616),
+UInt256(2927954731661477574, 14583997867240137411, 9732670626297611844, 12909989603835050366),
+UInt256(3659943414576846968, 9006625297195395956, 7554152264444626901, 16137487004793812957),
+UInt256(4574929268221058710, 11258281621494244945, 9442690330555783627, 6336800700710102484),
+UInt256(2859330792638161694, 2424739995006515186, 17430896502665834527, 1654657428730120101),
+UInt256(3574163490797702117, 12254297030612919791, 12565248591477517350, 15903379841194813838),
+UInt256(4467704363497127647, 1482813232983986027, 11094874720919508784, 10655852764638741489),
+UInt256(2792315227185704779, 7844287298256073123, 4628453691360999038, 6659907977899213431),
+UInt256(3490394033982130974, 5193673104392703500, 1173881095773860893, 17548257009228792597),
+UInt256(4362992542477663717, 15715463417345655183, 1467351369717326117, 8100263206253827034),
+UInt256(2726870339048539823, 12128007645054728441, 7834623633714410679, 7368507513122335848),
+UInt256(3408587923810674779, 10548323537891022647, 14404965560570401253, 4598948372975531906),
+UInt256(4260734904763343474, 8573718403936390405, 13394520932285613662, 10360371484646802786),
+UInt256(2662959315477089671, 9970260020887631907, 10677418591892202491, 1863546159476863838),
+UInt256(3328699144346362089, 7851139007682151980, 8735087221437865209, 16164490754628243509),
+UInt256(4160873930432952611, 14425609778030077879, 10918859026797331512, 6370555388003140674),
+UInt256(2600546206520595382, 6710163102055104722, 13741815919389414051, 3981597117501962922),
+UInt256(3250682758150744227, 17611075914423656711, 7953897862381991756, 365310378450065748),
+UInt256(4063353447688430284, 17402158874602182985, 5330686309550101791, 456637973062582185),
+UInt256(2539595904805268928, 1652977259771588557, 14860893989537283379, 7202927760805195722),
+UInt256(3174494881006586160, 2066221574714485697, 4741059431639440512, 4391973682579106748),
+UInt256(3968118601258232700, 2582776968393107121, 10538010307976688544, 5489967103223883435),
+]
+
+private let bid_multipliers2_binary80_51: [UInt256] = [
+UInt256(2480074125786395437, 10837607642100467758, 18115471488553900100, 3431229439514927147),
+UInt256(3100092657232994296, 18158695571052972602, 13420967323837599317, 4289036799393658933),
+UInt256(3875115821541242871, 4251625390106664137, 7552837117942223338, 9972982017669461571),
+UInt256(2421947388463276794, 9574794896457746941, 16249738244782359346, 10844799779470801386),
+UInt256(3027434235579095993, 2745121583717407869, 6477114750695785471, 4332627687483725924),
+UInt256(3784292794473869991, 8043087998074147740, 12708079456797119743, 804098590927269501),
+UInt256(2365182996546168744, 11944459026437424193, 17165921697352975647, 7420090646970625294),
+UInt256(2956478745682710930, 14930573783046780242, 7622344066409055847, 4663427290285893714),
+UInt256(3695598432103388663, 9439845191953699495, 304558046156544001, 1217598094429979238),
+UInt256(2309749020064617914, 12817432272612144040, 7107877806488921856, 12290213855087206784),
+UInt256(2887186275080772393, 6798418303910404242, 8884847258111152320, 15362767318859008480),
+UInt256(3608982843850965491, 13109708898315393207, 1882687035784164593, 756715074864208984),
+UInt256(4511228554813706864, 11775450104466853604, 16188416850012369453, 5557579862007649134),
+UInt256(2819517846758566790, 7359656315291783503, 894388494402955100, 5779330422968474661),
+UInt256(3524397308448208487, 18422942430969505186, 14953043673285857587, 7224163028710593326),
+UInt256(4405496635560260609, 18416992020284493579, 9467932554752546176, 4418517767460853753),
+UInt256(2753435397225162881, 4593090985036726631, 3611614837506647408, 2761573604663033596),
+UInt256(3441794246531453601, 10353049749723296192, 18349576602165472972, 3451967005828791995),
+UInt256(4302242808164317001, 17552998205581508145, 4490226678997289599, 4314958757285989993),
+UInt256(2688901755102698126, 4053094850847360734, 14335606720441775759, 9614378250944825602),
+UInt256(3361127193878372657, 14289740600413976726, 8696136363697443891, 7406286795253644098),
+UInt256(4201408992347965822, 4027117695235307196, 1646798417767029056, 4646172475639667219),
+UInt256(2625880620217478638, 16352006614804230709, 10252621047959168968, 2903857797274792012),
+UInt256(3282350775271848298, 11216636231650512578, 17427462328376349114, 3629822246593490015),
+UInt256(4102938469089810373, 4797423252708364915, 12560955873615660584, 13760649845096638326),
+UInt256(2564336543181131483, 5304232542156422024, 5544754411796093913, 8600406153185398954),
+UInt256(3205420678976414354, 2018604659268139626, 6930943014745117391, 15362193709909136597),
+UInt256(4006775848720517942, 11746627860939950340, 17887050805286172547, 14591056118959032842),
+UInt256(2504234905450323714, 2729956394660081059, 1956034716449082034, 6813567065135701574),
+UInt256(3130293631812904642, 12635817530179877131, 16280101450843516254, 17740330868274402776),
+UInt256(3912867039766130803, 6571399875870070606, 15738440795127007414, 12952041548488227661),
+UInt256(2445541899853831752, 1801281913205100177, 5224839478526991730, 3483339949377754385),
+UInt256(3056927374817289690, 2251602391506375221, 11142735366586127566, 13577546973576968789),
+UInt256(3821159218521612112, 12037875026237744835, 93361152950495746, 7748561680116435178),
+UInt256(2388224511576007570, 7523671891398590521, 16199251785089917505, 9454537068500159890),
+UInt256(2985280639470009463, 181217827393462344, 6414006676080233169, 16429857354052587767),
+UInt256(3731600799337511828, 14061580339523991642, 8017508345100291462, 6702263637283570996),
+UInt256(2332250499585944892, 18011859749057270584, 9622628734115070067, 18023972828584395585),
+UInt256(2915313124482431116, 4068080612612036614, 12028285917643837584, 17918280017303106577),
+UInt256(3644141405603038895, 5085100765765045768, 5811985360200021173, 3951105947919331605),
+UInt256(4555176757003798619, 1744689938778919306, 7264981700250026466, 9550568453326552410),
+UInt256(2846985473127374136, 17231332276232682230, 9152299581083654445, 10580791301756483160),
+UInt256(3558731841409217671, 3092421271581301172, 2217002439499792248, 17837675145622991854),
+UInt256(4448414801761522088, 17700584644758790177, 2771253049374740311, 3850349858319188202),
+UInt256(2780259251100951305, 11062865402974243860, 13261248201927682454, 9323997689090574482),
+UInt256(3475324063876189131, 18440267772145192729, 16576560252409603068, 2431625074508442295),
+UInt256(4344155079845236414, 18438648696754103008, 6885642260229840123, 3039531343135552868),
+UInt256(2715096924903272759, 6912469417043926476, 4303526412643650076, 18040608153955578207),
+UInt256(3393871156129090949, 4028900752877520191, 5379408015804562596, 4104016118734921143),
+UInt256(4242338945161363686, 9647811959524288143, 2112574001328315341, 5130020148418651428),
+]
+
+private let bid_multipliers2_binary80_52: [UInt256] = [
+UInt256(2651461840725852304, 1418196456275292185, 8237887778471278944, 5512105601975351095),
+UInt256(3314327300907315380, 1772745570344115231, 14909045741516486584, 6890132002469188868),
+UInt256(4142909126134144225, 2215931962930144039, 14024621158468220326, 8612665003086486085),
+UInt256(2589318203833840140, 12914172522899809784, 15682917251683719560, 771229608501665900),
+UInt256(3236647754792300175, 16142715653624762231, 1156902490895097834, 964037010627082374),
+UInt256(4045809693490375219, 15566708548603564884, 15281186168901036004, 10428418300138628776),
+UInt256(2528631058431484512, 7423349833663534101, 327369318708371694, 15741133474441418793),
+UInt256(3160788823039355640, 9279187292079417626, 5020897666812852522, 10453044806196997683),
+UInt256(3950986028799194550, 11598984115099272032, 15499494120370841461, 3842933970891471296),
+UInt256(2469366267999496594, 2637679053509657116, 9687183825231775913, 4707676741020863512),
+UInt256(3086707834999370742, 12520470853741847203, 12108979781539719891, 10496281944703467294),
+UInt256(3858384793749213428, 6427216530322533196, 10524538708497261960, 8508666412451946213),
+UInt256(2411490496093258392, 13240382368306359055, 15801208729665564533, 5317916507782466383),
+UInt256(3014363120116572990, 16550477960382948819, 15139824893654567762, 11259081653155470883),
+UInt256(3767953900145716238, 11464725413623910216, 14313095098640821799, 4850480029589562796),
+UInt256(2354971187591072649, 2553767365087555981, 8945684436650513624, 9949079046134558604),
+UInt256(2943713984488840811, 7803895224786832880, 15793791564240529934, 12436348807668198254),
+UInt256(3679642480611051014, 5143183012556153197, 1295495381591110802, 6322063972730472010),
+UInt256(4599553100763813767, 15652350802549967304, 6231055245416276406, 17125952002767865820),
+UInt256(2874720687977383604, 16700248279234811421, 3894409528385172754, 6092033983302528234),
+UInt256(3593400859971729506, 2428566275333962660, 9479697928908853846, 16838414515982936100),
+UInt256(4491751074964661882, 12259079881022229133, 11849622411136067308, 11824646108123894317),
+UInt256(2807344421852913676, 12273610944066281112, 9711857016173736019, 16613775854432209756),
+UInt256(3509180527316142095, 15342013680082851390, 12139821270217170024, 16155533799612874291),
+UInt256(4386475659145177619, 14565831081676176334, 5951404550916686723, 1747673175806541248),
+UInt256(2741547286965736012, 6797801416833916256, 17554685899605092913, 17233196799374945944),
+UInt256(3426934108707170015, 8497251771042395321, 3496613300796814526, 7706437943936518718),
+UInt256(4283667635883962519, 6009878695375606247, 8982452644423406062, 409675393065872590),
+UInt256(2677292272427476574, 10673703212250835760, 12531561930405710644, 14091105175948334081),
+UInt256(3346615340534345718, 4118756978458768892, 15664452413007138305, 17613881469935417601),
+UInt256(4183269175667932147, 14371818259928236924, 1133821442549371266, 8182293782137108289),
+UInt256(2614543234792457592, 6676543403241454125, 9932010438448132849, 9725619632263080585),
+UInt256(3268179043490571990, 8345679254051817656, 17026699066487553965, 16768710558756238635),
+UInt256(4085223804363214988, 1208727030709996263, 2836629759399890841, 7125830143163134581),
+UInt256(2553264877727009367, 9978826431048523472, 8690422627266013631, 15982858885545428873),
+UInt256(3191581097158761709, 7861847020383266436, 10863028284082517039, 15366887588504398188),
+UInt256(3989476371448452136, 14438994793906470949, 13578785355103146299, 14596923467203109831),
+UInt256(2493422732155282585, 9024371746191544343, 10792583856153160389, 6817234157788249692),
+UInt256(3116778415194103231, 15892150701166818333, 8879043801764062582, 13133228715662700019),
+UInt256(3895973018992629039, 15253502358031135012, 15710490770632466132, 7193163857723599216),
+UInt256(2434983136870393149, 16450968001410541239, 595684694790515524, 13719099447932025318),
+UInt256(3043728921087991437, 6728651946481012836, 14579663923770308117, 17148874309915031648),
+UInt256(3804661151359989296, 13022500951528653949, 18224579904712885147, 7601034832111625847),
+UInt256(2377913219599993310, 8139063094705408718, 13696205449659247169, 2444803760856072203),
+UInt256(2972391524499991638, 950456831526985090, 7896884775219283153, 7667690719497478157),
+UInt256(3715489405624989547, 10411443076263507171, 647733932169328133, 14196299417799235600),
+UInt256(2322180878515618467, 4201308913450998029, 16545734772101687747, 11178530145338216202),
+UInt256(2902726098144523084, 639950123386359633, 6847110409844945972, 9361476663245382349),
+UInt256(3628407622680653855, 799937654232949541, 13170574030733570369, 11701845829056727936),
+UInt256(4535509528350817318, 14834980123073350639, 2628159483134799250, 792249231038746208),
+]
+
+private let bid_multipliers2_binary80_53: [UInt256] = [
+UInt256(2834693455219260824, 4660176558493456245, 8560128704600331387, 5106841787826604284),
+UInt256(3543366819024076030, 5825220698116820306, 15311846899177802138, 1771866216355867451),
+UInt256(4429208523780095037, 16504897909500801191, 9916436587117476864, 11438204807299610122),
+UInt256(2768255327362559398, 12621404202651694696, 13115301894589504896, 7148878004562256326),
+UInt256(3460319159203199248, 6553383216459842562, 16394127368236881120, 8936097505702820408),
+UInt256(4325398949003999060, 8191729020574803203, 11269287173441325592, 11170121882128525510),
+UInt256(2703374343127499412, 14343202674714027810, 4737461474187134543, 6981326176330328444),
+UInt256(3379217928909374265, 17929003343392534762, 15145198879588693987, 4114971701985522650),
+UInt256(4224022411136717832, 8576196123958504741, 9708126562631091676, 532028609054515409),
+UInt256(2640014006960448645, 5360122577474065463, 8373422110858126249, 9555889917513847939),
+UInt256(3300017508700560806, 11311839240269969733, 5855091620145269907, 16556548415319697827),
+UInt256(4125021885875701008, 4916427013482686358, 11930550543608975288, 16083999500722234380),
+UInt256(2578138678672313130, 3072766883426678974, 2844908071328221651, 10052499687951396488),
+UInt256(3222673348340391412, 13064330641138124525, 12779507126015052872, 7953938591511857706),
+UInt256(4028341685425489265, 16330413301422655657, 2139325852236652378, 9942423239389822132),
+UInt256(2517713553390930791, 3288979285748077929, 12866293703716377496, 10825700543046026737),
+UInt256(3147141941738663488, 17946282162467261124, 2247809074363308158, 13532125678807533421),
+UInt256(3933927427173329361, 3986108629374524789, 2809761342954135198, 7691785061654640968),
+UInt256(2458704641983330850, 14020532939427547753, 4061943848560028451, 195679645106762701),
+UInt256(3073380802479163563, 8302294137429658883, 9689115829127423467, 14079657611665617088),
+UInt256(3841726003098954454, 5766181653359685700, 7499708767981891430, 12987885996154633456),
+UInt256(2401078751936846533, 17438921588631967274, 13910690016843457952, 3505742729169258006),
+UInt256(3001348439921058167, 7963593930507795381, 8164990484199546632, 4382178411461572508),
+UInt256(3751685549901322709, 5342806394707356322, 14817924123676821194, 5477723014326965634),
+UInt256(2344803468688326693, 5645097005905791653, 13872888595725401150, 8035262902381741426),
+UInt256(2931004335860408366, 11668057275809627471, 3506052689374587726, 820706591122400974),
+UInt256(3663755419825510458, 5361699557907258530, 18217623917000398369, 10249255275757777025),
+UInt256(4579694274781888072, 15925496484238848971, 13548657859395722153, 17423255113124609185),
+UInt256(2862308921738680045, 9953435302649280607, 6162068152908632394, 3972005418061798885),
+UInt256(3577886152173350056, 17053480146738988663, 3090899172708402588, 14188378809432024414),
+UInt256(4472357690216687571, 2870106109714184212, 17698682021167666947, 17735473511790030518),
+UInt256(2795223556385429731, 17934717383067222797, 1838304226375016034, 8778827935655075122),
+UInt256(3494029445481787164, 17806710710406640592, 6909566301396157947, 1750162882714068094),
+UInt256(4367536806852233956, 3811644314298749124, 8636957876745197433, 16022761658674748829),
+UInt256(2729710504282646222, 11605649733291494010, 14621470709820524204, 3096697009030636163),
+UInt256(3412138130353307778, 5283690129759591705, 9053466350420879447, 3870871261288295203),
+UInt256(4265172662941634722, 15827984699054265439, 15928518956453487213, 226903058182981100),
+UInt256(2665732914338521701, 14504176455336303803, 16872853375424511364, 2447657420578057140),
+UInt256(3332166142923152127, 4295162513888216042, 16479380700853251301, 3059571775722571424),
+UInt256(4165207678653940159, 757267123932882149, 11375853839211788318, 8436150738080602184),
+UInt256(2603254799158712599, 7390820980099133199, 9415751658721061651, 660908192872988461),
+UInt256(3254068498948390749, 4626840206696528595, 7158003554973939159, 14661193296373399289),
+UInt256(4067585623685488436, 10395236276798048648, 4335818425290036045, 13714805602039361207),
+UInt256(2542241014803430272, 15720394709853556213, 2709886515806272528, 10877596510488294706),
+UInt256(3177801268504287841, 1203749313607393650, 7999044163185228564, 13596995638110368383),
+UInt256(3972251585630359801, 6116372660436629967, 775433167126759897, 16996244547637960478),
+UInt256(2482657241018974875, 15351947958841363489, 7402174757095306792, 3705123814632643443),
+UInt256(3103321551273718594, 14578248930124316457, 13864404464796521394, 4631404768290804304),
+UInt256(3879151939092148243, 8999439125800619764, 3495447525713488030, 15012627997218281188),
+UInt256(2424469961932592652, 3318806444411693400, 11408026740425705827, 4771206479834037838),
+]
+
+private let bid_multipliers2_binary80_54: [UInt256] = [
+UInt256(3030587452415740815, 4148508055514616750, 14260033425532132284, 1352322081365159394),
+UInt256(3788234315519676019, 573949050965883034, 8601669745060389547, 1690402601706449242),
+UInt256(2367646447199797511, 16499619221349534560, 9987729609090131370, 17197402690562388441),
+UInt256(2959558058999746889, 16012838008259530296, 12484662011362664213, 12273381326348209743),
+UInt256(3699447573749683612, 6180989455042249158, 15605827514203330267, 1506668602653098466),
+UInt256(2312154733593552257, 13086490446256181532, 5141956177949693512, 17082568941154044206),
+UInt256(2890193416991940322, 2523055002538063203, 6427445222437116891, 2906467102733003641),
+UInt256(3612741771239925402, 12377190790027354812, 3422620509619008209, 17468141933698418263),
+UInt256(4515927214049906753, 6248116450679417707, 4278275637023760262, 8000119361840859116),
+UInt256(2822454508781191720, 15434287827743105827, 368079263926156212, 388388582723149044),
+UInt256(3528068135976489651, 846115710969330667, 14295157135189858977, 485485728403936305),
+UInt256(4410085169970612063, 14892702693993827046, 13257260400559935817, 5218543178932308285),
+UInt256(2756303231231632539, 16225468211387223760, 3674101731922571981, 14790804532901162438),
+UInt256(3445379039039540674, 15670149245806641796, 4592627164903214977, 4653447610844289336),
+UInt256(4306723798799425843, 10364314520403526437, 5740783956129018721, 10428495531982749574),
+UInt256(2691702374249641152, 4171853566038510071, 5893832981794330652, 18047024753557688244),
+UInt256(3364627967812051440, 5214816957548137589, 2755605208815525412, 4112036868237558688),
+UInt256(4205784959765064300, 6518521196935171986, 8056192529446794669, 5140046085296948360),
+UInt256(2628615599853165187, 13297447784939258299, 9646806349331634572, 5518371812524286677),
+UInt256(3285769499816456484, 12010123712746684970, 7446821918237155311, 6897964765655358347),
+UInt256(4107211874770570605, 15012654640933356213, 85155360941668331, 4010769938641810029),
+UInt256(2567007421731606628, 11688752159797041585, 2359065109802236659, 200888202437437316),
+UInt256(3208759277164508285, 14610940199746301981, 7560517405680183727, 14086168308328960357),
+UInt256(4010949096455635357, 4428617194400713764, 14062332775527617563, 12996024366983812543),
+UInt256(2506843185284772098, 5073728755714140054, 18012330021559536785, 5816672220151188887),
+UInt256(3133553981605965122, 15565532981497450876, 13292040490094645173, 11882526293616374013),
+UInt256(3916942477007456403, 10233544190017037787, 16615050612618306467, 1018099811738303804),
+UInt256(2448089048129660252, 4090122109546954665, 8078563623672747589, 16777213446832297542),
+UInt256(3060111310162075315, 5112652636933693331, 14709890548018322391, 7136458753258208215),
+UInt256(3825139137702594144, 1779129777739728760, 13775677166595515085, 4308887423145372365),
+UInt256(2390711961064121340, 1111956111087330475, 8609798229122196928, 4998897648679551680),
+UInt256(2988389951330151675, 1389945138859163094, 6150561767975358256, 6248622060849439600),
+UInt256(3735487439162689593, 15572489478856117579, 16911574246823973628, 7810777576061799500),
+UInt256(2334679649476680996, 2815276896643991631, 8263890895051289565, 14105108021893400496),
+UInt256(2918349561845851245, 3519096120804989539, 5718177600386724053, 3796326972084586908),
+UInt256(3647936952307314056, 9010556169433624828, 2536035982056017162, 9357094733533121538),
+UInt256(4559921190384142570, 11263195211792031035, 3170044977570021453, 2472996380061626115),
+UInt256(2849950743990089106, 11651183025797407300, 18122179175477121072, 3851465746752210274),
+UInt256(3562438429987611383, 5340606745391983318, 4205979895636849724, 4814332183440262842),
+UInt256(4453048037484514229, 2064072413312591243, 14480846906400837963, 6017915229300328553),
+UInt256(2783155023427821393, 3595888267534063479, 6744686307286829775, 1455354009099011394),
+UInt256(3478943779284776741, 9106546352844967253, 3819171865681149314, 15654250566655927954),
+UInt256(4348679724105970926, 15994868959483596970, 9385650850528824547, 10344441171465134134),
+UInt256(2717924827566231829, 5385107081249860202, 10477717800007903246, 4159432722952014882),
+UInt256(3397406034457789786, 11343069869989713157, 3873775213155103249, 14422662940544794410),
+UInt256(4246757543072237233, 4955465300632365638, 9453905034871266966, 4193270620398829301),
+UInt256(2654223464420148270, 14626380858963698284, 1297004628367153949, 16455852193031432025),
+UInt256(3317779330525185338, 9059604036849847047, 1621255785458942437, 6734757186007126319),
+UInt256(4147224163156481673, 2101133009207533000, 15861627787105841758, 13030132500936295803),
+UInt256(2592015101972801045, 12842423176823177885, 9913517366941151099, 3532146794657796973),
+]
+
+private let bid_multipliers2_binary80_55: [UInt256] = [
+UInt256(3240018877466001307, 2217970915746808644, 17003582727103826777, 18250241548604409928),
+UInt256(4050023596832501633, 16607521699965674518, 2807734335170231856, 8977743880473348698),
+UInt256(2531264748020313521, 3462172034837464717, 15589892014763558622, 5611089925295842937),
+UInt256(3164080935025391901, 8939401061974218801, 5652306963172284565, 16237234443474579479),
+UInt256(3955101168781739876, 15785937345895161405, 11677069722392743611, 6461484999061060636),
+UInt256(2471938230488587423, 642838804329700070, 9604011585709158709, 1732585115199468946),
+UInt256(3089922788110734278, 14638606560694288800, 2781642445281672578, 6777417412426724086),
+UInt256(3862403485138417848, 9074886164013085192, 3477053056602090722, 17695143802388180916),
+UInt256(2414002178211511155, 5671803852508178245, 2173158160376306701, 15671150894920000976),
+UInt256(3017502722764388944, 2478068797207834902, 7328133718897771281, 5753880563367837508),
+UInt256(3771878403455486180, 3097585996509793627, 18383539185476989909, 11804036722637184789),
+UInt256(2357424002159678862, 11159363284673396825, 9183868981709424741, 9683365960861934446),
+UInt256(2946780002699598578, 4725832068986970223, 16091522245564168830, 16715893469504805961),
+UInt256(3683475003374498222, 15130662123088488587, 15502716788527823134, 11671494800026231643),
+UInt256(4604343754218122778, 9689955617005834926, 14766709967232391014, 5365996463178013746),
+UInt256(2877714846386326736, 10667908279056034733, 4617507711092856479, 17188805844768422303),
+UInt256(3597143557982908420, 13334885348820043416, 10383570657293458503, 16874321287533139975),
+UInt256(4496429447478635525, 16668606686025054270, 12979463321616823129, 16481215590989037064),
+UInt256(2810268404674147203, 12723722187979352871, 3500478557583126552, 3383230716727066309),
+UInt256(3512835505842684004, 11292966716546803184, 18210656252261071902, 4229038395908832887),
+UInt256(4391044382303355005, 14116208395683503981, 4316576241616788261, 14509670031740816916),
+UInt256(2744402738939596878, 11128473256515883940, 5003703160224186615, 11374386779051704525),
+UInt256(3430503423674496098, 4687219533790079117, 6254628950280233269, 9606297455387242752),
+UInt256(4288129279593120122, 15082396454092374704, 12429972206277679490, 16619557837661441344),
+UInt256(2680080799745700076, 14038183802235122094, 7768732628923549681, 14998909666965788744),
+UInt256(3350100999682125095, 17547729752793902618, 487543749299661294, 4913579028425072218),
+UInt256(4187626249602656369, 17322976172564990368, 9832801723479352425, 15365345822386116080),
+UInt256(2617266406001660231, 3909331080212037124, 6145501077174595266, 2685812111350240694),
+UInt256(3271583007502075289, 274977831837658501, 7681876346468244082, 12580637176042576676),
+UInt256(4089478759377594111, 4955408308224461030, 14214031451512693007, 6502424433198445037),
+UInt256(2555924224610996319, 10014659220281370000, 4272083638768045225, 10981544298390110004),
+UInt256(3194905280763745399, 7906638006924324596, 5340104548460056531, 18338616391415025409),
+UInt256(3993631600954681749, 5271611490228017841, 6675130685575070664, 18311584470841393857),
+UInt256(2496019750596676093, 5600600190606205102, 15701171724552888925, 11444740294275871161),
+UInt256(3120024688245845116, 11612436256685144282, 10403092618836335349, 470867312562675239),
+UInt256(3900030860307306395, 14515545320856430353, 3780493736690643378, 5200270159130731953),
+UInt256(2437519287692066497, 6766372816321575018, 13892023631500121871, 7861854867884095375),
+UInt256(3046899109615083121, 13069652038829356677, 8141657502520376531, 5215632566427731314),
+UInt256(3808623887018853902, 2502006993254532134, 14788757896577858568, 1907854689607276238),
+UInt256(2380389929386783688, 15398812426066246296, 4631287666933773701, 1192409181004547649),
+UInt256(2975487411733479611, 801771458873256254, 5789109583667217126, 6102197494683072465),
+UInt256(3719359264666849513, 14837272378873734029, 16459759016438797215, 16851118905208616390),
+UInt256(2324599540416780946, 2355766209155001912, 12593192394487942211, 17449478343396467100),
+UInt256(2905749425520976182, 12168079798298528198, 15741490493109927764, 17200161910818195970),
+UInt256(3632186781901220228, 5986727711018384440, 10453491079532633898, 3053458314813193347),
+UInt256(4540233477376525285, 7483409638772980550, 13066863849415792372, 13040194930371267492),
+UInt256(2837645923360328303, 6982974033446806796, 3555103887457482328, 17373493868336817990),
+UInt256(3547057404200410379, 4117031523381120591, 4443879859321852911, 3270123261711470872),
+UInt256(4433821755250512974, 534603385799012835, 943163805724928234, 17922712132421502302),
+UInt256(2771138597031570608, 14169185171406546733, 16730378443073937810, 15813381101190826843),
+]
+
+private let bid_multipliers2_binary80_56: [UInt256] = [
+UInt256(3463923246289463260, 17711481464258183417, 7077914998560258551, 10543354339633757745),
+UInt256(4329904057861829076, 3692607756613177655, 13459079766627711093, 8567506906114809278),
+UInt256(2706190036163643172, 11531251884738011842, 15329453881783401289, 7660534825535449751),
+UInt256(3382737545204553965, 14414064855922514803, 9938445315374475803, 14187354550346700092),
+UInt256(4228421931505692457, 4182523014620979792, 7811370625790706850, 13122507169505987211),
+UInt256(2642763707191057785, 14143291930206582130, 4882106641119191781, 12813252999368629911),
+UInt256(3303454633988822232, 3844056857476063950, 15326005338253765535, 2181508193928623677),
+UInt256(4129318292486027790, 4805071071845079938, 9934134635962431110, 16561943297692943308),
+UInt256(2580823932803767368, 16838227475185338673, 10820520165903907348, 5739528542630701664),
+UInt256(3226029916004709211, 2601040270272121725, 18137336225807272089, 7174410678288377079),
+UInt256(4032537395005886513, 17086358393122315869, 8836612226976926399, 13579699366287859253),
+UInt256(2520335871878679071, 3761444968060365562, 7828725651074272951, 15404841131570993889),
+UInt256(3150419839848348839, 90120191648069049, 562535026988065381, 14644365396036354458),
+UInt256(3938024799810436048, 13947708294842250023, 5314854802162469631, 4470398689763279360),
+UInt256(2461265499881522530, 8717317684276406264, 10239313278992625375, 9711528208743131456),
+UInt256(3076581874851903163, 1673275068490732022, 12799141598740781719, 7527724242501526416),
+UInt256(3845727343564878953, 15926651890895578740, 6775554961571201341, 4797969284699520116),
+UInt256(2403579589728049346, 3036628404168654856, 13458093887836776646, 5304573812150894025),
+UInt256(3004474487160061682, 13019157542065594378, 16822617359795970807, 15854089302043393339),
+UInt256(3755593108950077103, 7050574890727217165, 11804899662890187701, 15205925609126853769),
+UInt256(2347245693093798189, 11324138334345592584, 9683905298520061265, 11809546514917977558),
+UInt256(2934057116367247737, 320114862649827018, 12104881623150076582, 926875088365308235),
+UInt256(3667571395459059671, 5011829596739671677, 5907729992082819919, 10381965897311411102),
+UInt256(4584464244323824589, 1653100977497201692, 11996348508530912803, 8365771353211875973),
+UInt256(2865290152702390368, 3339031120149445009, 16721089854686596310, 2922764086543728532),
+UInt256(3581612690877987960, 4173788900186806262, 7066304263076081675, 12876827145034436472),
+UInt256(4477015863597484950, 5217236125233507827, 18056252365699877902, 11484347912865657686),
+UInt256(2798134914748428093, 17095830633553106104, 8979314719348729737, 2566031427113648150),
+UInt256(3497668643435535117, 7534730236659218918, 11224143399185912171, 7819225302319448092),
+UInt256(4372085804294418896, 14030098814251411552, 4806807212127614406, 5162345609471922210),
+UInt256(2732553627684011810, 8768811758907132220, 3004254507579759003, 17061524061202115094),
+UInt256(3415692034605014763, 1737642661779139467, 3755318134474698754, 16715219058075255963),
+UInt256(4269615043256268453, 16007111382506088046, 82461649665985539, 11670651785739294145),
+UInt256(2668509402035167783, 12310287623279998980, 13886596586323404674, 4988314356873364889),
+UInt256(3335636752543959729, 10776173510672610821, 17358245732904255842, 15458764982946481919),
+UInt256(4169545940679949661, 18081902906768151431, 7862749110848156091, 10100084191828326591),
+UInt256(2605966212924968538, 13607032325943788596, 11831747221921179413, 4006709610679010168),
+UInt256(3257457766156210673, 7785418370574959937, 14789684027401474266, 9620073031776150613),
+UInt256(4071822207695263341, 14343458981646087826, 4652046978969679121, 2801719252865412459),
+UInt256(2544888879809539588, 11270504872742498843, 7519215380283437354, 13280289579109352547),
+UInt256(3181111099761924485, 14088131090928123554, 4787333206926908789, 7376989937031914875),
+UInt256(3976388874702405607, 3775105808377990730, 15207538545513411794, 13832923439717281498),
+UInt256(2485243046689003504, 9276970157877326062, 14116397609373270275, 13257263168250688840),
+UInt256(3106553808361254380, 11596212697346657578, 8422124974861812036, 11959892941885973146),
+UInt256(3883192260451567975, 14495265871683321973, 1304284181722489237, 14949866177357466433),
+UInt256(2426995162782229984, 15977070197443158089, 3121020622790249725, 11649509370062110473),
+UInt256(3033743953477787481, 1524593673094395995, 8512961796915200061, 726828657295474379),
+UInt256(3792179941847234351, 6517428109795382898, 6029516227716612172, 5520221840046730877),
+UInt256(2370112463654521469, 10990921596263196167, 8380133660750270511, 12673510686883982607),
+UInt256(2962640579568151836, 18350338013756383113, 5863481057510450235, 11230202340177590354),
+]
+
+private let bid_multipliers2_binary80_57: [UInt256] = [
+UInt256(3703300724460189796, 4491178443485927275, 11941037340315450698, 9426066906794600038),
+UInt256(2314562952787618622, 12030358564033480355, 5157305328483462734, 10502977835174012928),
+UInt256(2893203690984523278, 5814576168187074636, 1834945642176940514, 3905350257112740352),
+UInt256(3616504613730654097, 16491592247088619103, 2293682052721175642, 14105059858245701248),
+UInt256(4520630767163317622, 6779432253578610166, 16702160621183633265, 8407952785952350752),
+UInt256(2825394229477073513, 18072203213768795066, 5827164369812382886, 16784185537288688980),
+UInt256(3531742786846341892, 8755195961928830120, 16507327499120254416, 11756859884756085417),
+UInt256(4414678483557927365, 10943994952411037651, 2187415300190766404, 14696074855945106771),
+UInt256(2759174052223704603, 9145839854470592483, 17508035627115086666, 18408418821820467540),
+UInt256(3448967565279630754, 6820613799660852700, 17273358515466470429, 13787151490420808617),
+UInt256(4311209456599538442, 17749139286430841684, 3144954070623536421, 3398881307743847059),
+UInt256(2694505910374711526, 15704898072446663956, 11188968330994486071, 4430143826553598364),
+UInt256(3368132387968389408, 10407750553703554137, 13986210413743107589, 925993764764610051),
+UInt256(4210165484960486760, 13009688192129442672, 3647704961896720774, 5769178224383150468),
+UInt256(2631353428100304225, 8131055120080901670, 2279815601185450483, 17440794445521632755),
+UInt256(3289191785125380281, 14775504918528514991, 12073141538336588912, 17189307038474653039),
+UInt256(4111489731406725352, 4634323092878480027, 10479740904493348237, 3039889724383764683),
+UInt256(2569681082129203345, 2896451933049050017, 4243995056094648696, 4205774086953546879),
+UInt256(3212101352661504181, 8232250934738700425, 9916679838545698774, 5257217608691933599),
+UInt256(4015126690826880226, 14901999686850763435, 17007535816609511371, 15794894047719692806),
+UInt256(2509454181766800141, 13925435822709115051, 8323866876167250655, 7565965770611114052),
+UInt256(3136817727208500177, 3571736723104230102, 5793147576781675415, 4845771194836504661),
+UInt256(3921022159010625221, 9076356922307675531, 16464806507831870077, 1445527975118242922),
+UInt256(2450638849381640763, 7978566085655991159, 7984661058181224846, 3209297993662595778),
+UInt256(3063298561727050954, 5361521588642601045, 5369140304299143153, 13234994528933020531),
+UInt256(3829123202158813692, 15925274022658027114, 11323111398801316846, 2708685105884111951),
+UInt256(2393202001349258558, 729924227306491138, 11688630642678210932, 15527986246459733682),
+UInt256(2991502501686573197, 10135777320987889731, 5387416266492987858, 963238734365115486),
+UInt256(3739378127108216496, 17281407669662250068, 2122584314688846918, 10427420454811170166),
+UInt256(2337111329442635310, 10800879793538906292, 10549987233535305132, 1905451765829593450),
+UInt256(2921389161803294138, 4277727705068857057, 13187484041919131415, 2381814707286991812),
+UInt256(3651736452254117672, 14570531668190847130, 2649296997116750556, 16812326439390903477),
+UInt256(4564670565317647090, 18213164585238558912, 12534993283250714004, 2568663975529077730),
+UInt256(2852919103323529431, 15994913884201487224, 7834370802031696252, 10828787021560449389),
+UInt256(3566148879154411789, 15381956336824471126, 9792963502539620315, 13535983776950561737),
+UInt256(4457686098943014737, 5392387365748425196, 3017832341319749586, 12308293702760814267),
+UInt256(2786053811839384210, 14899457149661235507, 11109517250179619299, 12304369582652896821),
+UInt256(3482567264799230263, 9400949400221768576, 9275210544297136220, 10768775959888733122),
+UInt256(4353209080999037829, 7139500731849822816, 11594013180371420275, 13460969949860916402),
+UInt256(2720755675624398643, 6768030966619833212, 7246258237732137672, 6107263209449378800),
+UInt256(3400944594530498304, 3848352689847403611, 9057822797165172090, 7634079011811723499),
+UInt256(4251180743163122880, 4810440862309254514, 6710592478029077209, 319226727909878566),
+UInt256(2656987964476951800, 3006525538943284071, 8805806317195561159, 11728731751012143864),
+UInt256(3321234955596189750, 3758156923679105089, 6395571878067063545, 10049228670337791926),
+UInt256(4151543694495237187, 13921068191453657169, 12606150866011217335, 17173221856349627811),
+UInt256(2594714809059523242, 6394824610444841779, 961315263615928978, 17650792687859599238),
+UInt256(3243393511324404052, 17216902799910828031, 15036702134802074935, 12840118822969723240),
+UInt256(4054241889155505066, 3074384426178983423, 14184191650075205765, 11438462510284766145),
+UInt256(2533901180722190666, 6533176284789252543, 15782648808938085459, 9454882078141672793),
+UInt256(3167376475902738332, 17389842392841341487, 15116624992745218920, 7206916579249703087),
+]
+
+private let bid_multipliers2_binary80_58: [UInt256] = [
+UInt256(3959220594878422916, 3290558917342125243, 14284095222504135746, 9008645724062128859),
+UInt256(2474512871799014322, 11279971360193604085, 6621716504851390889, 10242089595966218441),
+UInt256(3093141089748767903, 4876592163387229298, 12888831649491626515, 17414298013385160955),
+UInt256(3866426362185959879, 1484054185806648719, 6887667525009757336, 17156186498304063290),
+UInt256(2416516476366224924, 7845062893770237305, 11222321230772180191, 10722616561440039556),
+UInt256(3020645595457781155, 9806328617212796632, 192843483183061527, 8791584683372661541),
+UInt256(3775806994322226444, 7646224753088607886, 241054353978826909, 6377794835788439022),
+UInt256(2359879371451391527, 14002262507535155736, 13985717026518930530, 6291964781581468341),
+UInt256(2949849214314239409, 12891142115991556766, 17482146283148663162, 17088328013831611234),
+UInt256(3687311517892799262, 2278869589707282246, 12629310817081053145, 12137037980434738235),
+UInt256(4609139397365999077, 12071959023988878616, 6563266484496540624, 1336239420261259081),
+UInt256(2880712123353749423, 9850817399206743087, 4102041552810337890, 835149637663286926),
+UInt256(3600890154192186779, 7701835730581040955, 515865922585534458, 10267309083933884466),
+UInt256(4501112692740233474, 5015608644798913289, 14479890458514081785, 3610764318062579774),
+UInt256(2813195432962645921, 7746441421426708710, 2132402508930219259, 13785942744857582119),
+UInt256(3516494291203307401, 14294737795210773791, 11888875173017549882, 12620742412644589744),
+UInt256(4395617864004134252, 4033364188731303527, 10249407947844549449, 6552555978950961372),
+UInt256(2747261165002583907, 11744224654811840512, 13323408995043925261, 15624562532912820618),
+UInt256(3434076456253229884, 10068594800087412736, 16654261243804906577, 5695645110858862060),
+UInt256(4292595570316537355, 12585743500109265921, 2371082481046581605, 11731242407000965479),
+UInt256(2682872231447835847, 5560246678354597248, 13011141596722583263, 9637869513589297377),
+UInt256(3353590289309794809, 2338622329515858656, 16263926995903229079, 7435650873559233817),
+UInt256(4191987861637243511, 7534963930322211225, 1883164671169484733, 4682877573521654367),
+UInt256(2619992413523277194, 11626881484092463871, 12706192965549397718, 5232641492664727931),
+UInt256(3274990516904096493, 5310229818260804031, 11271055188509359243, 15764173902685685722),
+UInt256(4093738146130120616, 11249473291253392943, 9477132967209311150, 15093531359929719249),
+UInt256(2558586341331325385, 7030920807033370589, 12840737132146901325, 4821771081528686627),
+UInt256(3198232926664156731, 13400337027219101141, 2215863359901462944, 10638899870338246187),
+UInt256(3997791158330195914, 12138735265596488522, 7381515218304216584, 13298624837922807734),
+UInt256(2498619473956372446, 12198395559425193230, 9225133029867523269, 8311640523701754834),
+UInt256(3123274342445465558, 6024622412426715730, 2308044250479628278, 15001236673054581446),
+UInt256(3904092928056831947, 16754150052388170470, 12108427349954311156, 9528173804463450999),
+UInt256(2440058080035519967, 8165500773528912592, 2956081075294056568, 15178480664644432683),
+UInt256(3050072600044399959, 5595189948483752836, 3695101344117570711, 526356757095989237),
+UInt256(3812590750055499949, 2382301417177303141, 4618876680146963388, 14493004001652150259),
+UInt256(2382869218784687468, 3794781394949508415, 5192640934305546069, 18281499537887369720),
+UInt256(2978586523480859335, 4743476743686885519, 1879115149454544683, 9016816367077048438),
+UInt256(3723233154351074169, 1317659911181218994, 16183951992100344566, 6659334440418922643),
+UInt256(2327020721469421355, 12352752490556731631, 14726656013490103257, 17997142080543990364),
+UInt256(2908775901836776694, 10829254594768526635, 13796633998435241168, 8661369545397824243),
+UInt256(3635969877295970868, 4313196206605882486, 12634106479616663556, 10826711931747280304),
+UInt256(4544962346619963585, 5391495258257353108, 6569261062666053637, 13533389914684100379),
+UInt256(2840601466637477240, 14898899582479315452, 13329160201021059331, 10764211705891256689),
+UInt256(3550751833296846551, 176880404389592699, 16661450251276324164, 8843578613936682957),
+UInt256(4438439791621058188, 14056158560769154586, 16215126795668017301, 11054473267420853697),
+UInt256(2774024869763161367, 18008471137335497424, 14746140265719898717, 9214888801351727513),
+UInt256(3467531087203951709, 17898902903241983876, 18432675332149873396, 16130297020117047295),
+UInt256(4334413859004939637, 8538570573770316134, 4594100091477790130, 1716127201436757502),
+UInt256(2709008661878087273, 7642449617820141535, 16706370612455782543, 5684265519325361343),
+UInt256(3386260827347609091, 14164748040702564823, 16271277247142340275, 2493645880729313775),
+]
+
+private let bid_multipliers2_binary80_59: [UInt256] = [
+UInt256(4232826034184511364, 13094249032450818125, 15727410540500537439, 16952115406193805930),
+UInt256(2645516271365319602, 17407277682136537136, 12135474597026529851, 17512601156512210563),
+UInt256(3306895339206649503, 12535725065815895612, 15169343246283162314, 17279065427212875299),
+UInt256(4133619174008311879, 11057970313842481612, 514934984144401277, 12375459747161318316),
+UInt256(2583511983755194924, 13828760473792632863, 9545206401945026606, 10040505351189517900),
+UInt256(3229389979693993655, 17285950592240791079, 7319821984003895354, 3327259652132121566),
+UInt256(4036737474617492069, 16995752221873600945, 4538091461577481288, 13382446602019927766),
+UInt256(2522960921635932543, 12928188147884694542, 14365522209554395565, 8364029126262454854),
+UInt256(3153701152044915679, 11548549166428480274, 8733530725088218648, 15066722426255456471),
+UInt256(3942126440056144599, 9824000439608212439, 1693541369505497503, 386658959109768973),
+UInt256(2463829025035090374, 13057529302396214630, 7975992383582017795, 7159190877084687464),
+UInt256(3079786281293862968, 7098539591140492480, 746618442622746436, 4337302577928471426),
+UInt256(3849732851617328710, 8873174488925615600, 933273053278433045, 5421628222410589282),
+UInt256(2406083032260830444, 934048037151121846, 583295658299020653, 5694360648220312254),
+UInt256(3007603790326038055, 1167560046438902307, 9952491609728551624, 11729636828702778221),
+UInt256(3759504737907547568, 15294508113330791596, 7828928493733301626, 14662046035878472776),
+UInt256(2349690461192217230, 9559067570831744747, 14116452345438089324, 13775464790851433389),
+UInt256(2937113076490271538, 2725462426684905126, 13033879413370223751, 17219330988564291736),
+UInt256(3671391345612839422, 12630200070210907216, 7068977229858003881, 16912477717277976766),
+UInt256(4589239182016049278, 6564378050908858212, 8836221537322504852, 7305539091315307246),
+UInt256(2868274488760030798, 17937794337100200094, 14746010497681341340, 13789333968926842837),
+UInt256(3585343110950038498, 13198870884520474310, 9209141085246900867, 17236667461158553546),
+UInt256(4481678888687548123, 7275216568795817080, 2288054319703850276, 16934148308020804028),
+UInt256(2801049305429717577, 2241167346283691723, 1430033949814906423, 1360470655658226710),
+UInt256(3501311631787146971, 7413145201282002557, 15622600492550796740, 15535646374854947099),
+UInt256(4376639539733933714, 4654745483175115293, 5693192560406332214, 972813894859132258),
+UInt256(2735399712333708571, 7520901945411834962, 5864088359467651585, 14443066739569121373),
+UInt256(3419249640417135714, 4789441413337405798, 16553482486189340290, 4218775369179238005),
+UInt256(4274062050521419642, 15210173803526533056, 11468481070881899554, 14496841248328823314),
+UInt256(2671288781575887276, 14118044645631471064, 7167800669301187221, 13672211798632902475),
+UInt256(3339110976969859095, 17647555807039338830, 8959750836626484027, 3255206693008964382),
+UInt256(4173888721212323869, 17447758740371785634, 1976316508928329225, 17904066421543369189),
+UInt256(2608680450757702418, 13210692221946059973, 5846883836507593670, 4272512485823523887),
+UInt256(3260850563447128023, 7289993240577799158, 11920290814061879991, 14564012644134180667),
+UInt256(4076063204308910029, 4500805532294861044, 5676991480722574181, 13593329786740337930),
+UInt256(2547539502693068768, 5118846466897982104, 12771491712306384671, 10801674125926405158),
+UInt256(3184424378366335960, 6398558083622477630, 15964364640382980839, 8890406638980618544),
+UInt256(3980530472957919950, 7998197604528097038, 10732083763623950241, 6501322280298385276),
+UInt256(2487831545598699969, 387187484402672745, 2095866333837580996, 15592541471254960558),
+UInt256(3109789431998374961, 5095670373930728835, 7231518935724364150, 1043932765359149081),
+UInt256(3887236789997968701, 10981273985840798948, 4427712651228067283, 10528287993553712159),
+UInt256(2429522993748730438, 9169139250364193294, 11990692443872317860, 4274336986757376147),
+UInt256(3036903742185913048, 2238052026100465810, 5764993517985621517, 5342921233446720184),
+UInt256(3796129677732391310, 2797565032625582262, 16429613934336802704, 11290337560235788134),
+UInt256(2372581048582744568, 15583536200673152626, 5656822690533113786, 7056460975147367584),
+UInt256(2965726310728430711, 1032676177131889166, 16294400400021168040, 18043948255788985288),
+UInt256(3707157888410538388, 15125903276697025170, 11144628463171684243, 4108191246026679994),
+UInt256(2316973680256586493, 230317511080864923, 11577078807909690556, 261776519552981044),
+UInt256(2896217100320733116, 4899582907278469058, 9859662491459725291, 327220649441226305),
+UInt256(3620271375400916395, 6124478634098086323, 3101206077469880805, 14244083867083696593),
+]
+
+private let bid_multipliers2_binary80_60: [UInt256] = [
+UInt256(4525339219251145494, 3043912274195219999, 17711565652119514719, 3970046778572457030),
+UInt256(2828337012031965933, 15737503226654176211, 17987257560215778555, 9398808264248867500),
+UInt256(3535421265039957417, 5836820978035556552, 17872385931842335290, 7136824311883696470),
+UInt256(4419276581299946771, 11907712240971833595, 3893738341093367496, 18144402426709396396),
+UInt256(2762047863312466732, 5136477141393702045, 127743453969660733, 11340251516693372748),
+UInt256(3452559829140583415, 6420596426742127556, 4771365335889463821, 340256340584552222),
+UInt256(4315699786425729269, 3414059515000271541, 5964206669861829776, 5037006444158078182),
+UInt256(2697312366516080793, 4439630206088863665, 6033472177877337562, 3148129027598798864),
+UInt256(3371640458145100991, 10161223776038467485, 12153526240774059856, 13158533321353274388),
+UInt256(4214550572681376239, 8089843701620696453, 1356849745685411108, 16448166651691592985),
+UInt256(2634094107925860149, 11973681341154017139, 3153874100267075895, 1056732120452469808),
+UInt256(3292617634907325187, 1132043621160357711, 17777400680616008580, 15155973205847750971),
+UInt256(4115772043634156483, 15250112581732610851, 17610064832342622822, 498222433600137098),
+UInt256(2572357527271347802, 7225477354369187830, 8700447511000445311, 14146447076282249398),
+UInt256(3215446909089184752, 18255218729816260596, 1652187351895780831, 13071372826925423844),
+UInt256(4019308636361480941, 4372279338560774129, 2065234189869726039, 11727530015229391901),
+UInt256(2512067897725925588, 5038517595814177782, 12819986414737048534, 14247235287159451794),
+UInt256(3140084872157406985, 6298146994767722228, 6801610981566534860, 8585672072094538935),
+UInt256(3925106090196758731, 12484369761887040689, 8502013726958168575, 10732090090118173668),
+UInt256(2453191306372974207, 5496888091965706478, 16842973625417325119, 13625085333964940399),
+UInt256(3066489132966217759, 2259424096529745194, 11830344994916880591, 12419670649028787594),
+UInt256(3833111416207772198, 16659338175944345205, 5564559206791324931, 10912902292858596589),
+UInt256(2395694635129857624, 5800400341537827849, 5783692513458272034, 4514720923822928916),
+UInt256(2994618293912322030, 7250500426922284811, 11841301660250227946, 14866773191633436953),
+UInt256(3743272867390402537, 18286497570507631822, 10189941056885397029, 9360094452687020383),
+UInt256(2339545542119001586, 4511531953926188033, 1757027142125985239, 8155902042143081692),
+UInt256(2924431927648751982, 14862786979262510849, 6807969946084869453, 5583191534251464211),
+UInt256(3655539909560939978, 9355111687223362753, 13121648451033474720, 11590675436241718167),
+UInt256(4569424886951174973, 2470517572174427634, 2567002508509679688, 14488344295302147709),
+UInt256(2855890554344484358, 3849916491822711223, 6216062586245937709, 9055215184563842318),
+UInt256(3569863192930605447, 14035767651633164837, 3158392214380034232, 15930704999132190802),
+UInt256(4462328991163256809, 12933023546114068142, 8559676286402430695, 1466637175205686886),
+UInt256(2788955619477035506, 1165610688680210733, 738111660574131280, 7834177262144636160),
+UInt256(3486194524346294382, 10680385397705039224, 5534325594145052004, 9792721577680795200),
+UInt256(4357743155432867978, 4127109710276523222, 6917906992681315005, 12240901972100993999),
+UInt256(2723589472145542486, 7191129587350214917, 18158749925707985590, 9956406741776815202),
+UInt256(3404486840181928107, 18212284021042544455, 8863379351852818276, 3222136390366243194),
+UInt256(4255608550227410134, 18153669007875792665, 6467538171388634941, 4027670487957803993),
+UInt256(2659755343892131334, 6734357111494982511, 15571426403186366598, 4823137064187321448),
+UInt256(3324694179865164167, 17641318426223503947, 14852596985555570343, 15252293367088927617),
+UInt256(4155867724831455209, 17439962014351992030, 13954060213517075025, 14453680690433771617),
+UInt256(2597417328019659506, 3982447231328913163, 4109601615020783987, 2116021403880025405),
+UInt256(3246771660024574382, 14201431076015917262, 525316000348592079, 16480084810132195468),
+UInt256(4058464575030717978, 8528416808165120769, 9880017037290515907, 15988419994237856431),
+UInt256(2536540359394198736, 9941946523530588384, 17704225694375042202, 7686919487184966318),
+UInt256(3170675449242748420, 12427433154413235481, 3683538044259251137, 385277322126432089),
+UInt256(3963344311553435525, 15534291443016544351, 9216108573751451825, 5093282671085428015),
+UInt256(2477090194720897203, 12014775161099034171, 12677596886235739246, 14712516715496862270),
+UInt256(3096362743401121504, 10406782932946404810, 11235310089367286154, 9167273857516302029),
+UInt256(3870453429251401880, 13008478666183006013, 4820765574854331885, 2235720285040601728),
+]
+
+private let bid_multipliers2_binary80_61: [UInt256] = [
+UInt256(2419033393282126175, 8130299166364378758, 5318821493497651380, 3703168187364070032),
+UInt256(3023791741602657719, 5551187939528085543, 15871898903726840033, 4628960234205087540),
+UInt256(3779739677003322149, 2327298905982719025, 15228187611231162137, 10397886311183747329),
+UInt256(2362337298127076343, 3760404825452893343, 2600088229378394479, 18027893990558311841),
+UInt256(2952921622658845429, 88820013388728774, 17085168342005156811, 17923181469770501897),
+UInt256(3691152028323556786, 4722711035163298872, 12133088390651670206, 17792290818785739467),
+UInt256(2306970017702222991, 7563380415404449699, 7583180244157293879, 6508495743313699263),
+UInt256(2883712522127778739, 4842539500828174220, 4867289286769229445, 3523933660714736175),
+UInt256(3604640652659723424, 1441488357607829871, 6084111608461536806, 9016603094320808122),
+UInt256(4505800815824654280, 1801860447009787339, 2993453492149533104, 2047381831046234345),
+UInt256(2816125509890408925, 1126162779381117086, 18011809497089315854, 1279613644403896466),
+UInt256(3520156887363011156, 6019389492653784262, 13291389834506869009, 10822889092359646390),
+UInt256(4400196109203763945, 7524236865817230328, 7390865256278810453, 18140297383876945891),
+UInt256(2750122568252352465, 16231863087204238715, 4619290785174256533, 13643528874136785134),
+UInt256(3437653210315440582, 6454770803723134682, 1162427463040432763, 3219353037388817706),
+UInt256(4297066512894300727, 17291835541508694160, 10676406365655316761, 17859249352018185844),
+UInt256(2685666570558937954, 17724926241084015706, 6672753978534572976, 4244501817370284297),
+UInt256(3357083213198672443, 12932785764500243824, 17564314510022992028, 5305627271712855371),
+UInt256(4196354016498340554, 11554296187197916877, 3508649063819188419, 6632034089641069213),
+UInt256(2622721260311462846, 11833121135426085952, 4498748674100686714, 1839178296811974306),
+UInt256(3278401575389328558, 5568029382427831632, 5623435842625858392, 11522344907869743691),
+UInt256(4098001969236660697, 16183408764889565348, 7029294803282322990, 14402931134837179614),
+UInt256(2561251230772912936, 3197101450414896486, 13616681288906227677, 4390145940845849355),
+UInt256(3201564038466141170, 3996376813018620608, 7797479574278008788, 10099368444484699597),
+UInt256(4001955048082676462, 14218843053128051568, 9746849467847510985, 12624210555605874496),
+UInt256(2501221905051672789, 4275090889777644326, 6091780917404694366, 972602569612589704),
+UInt256(3126527381314590986, 9955549630649443311, 16838098183610643765, 10439125248870512938),
+UInt256(3908159226643238733, 3221065001457028331, 16435936711085916802, 17660592579515529077),
+UInt256(2442599516652024208, 4319008635124336659, 7966617435215004049, 15649556380624593577),
+UInt256(3053249395815030260, 5398760793905420824, 5346585775591367158, 5726887420498578259),
+UInt256(3816561744768787825, 6748450992381776030, 6683232219489208947, 16381981312477998632),
+UInt256(2385351090480492390, 15746996916307079778, 18012078192462919304, 7932895311085055193),
+UInt256(2981688863100615488, 10460374108529073915, 13291725703723873322, 9916119138856318992),
+UInt256(3727111078875769360, 13075467635661342394, 12002971111227453749, 3171776886715622931),
+UInt256(2329444424297355850, 8172167272288338996, 12113542962944546497, 4288203563410958284),
+UInt256(2911805530371694813, 991837053505647937, 15141928703680683121, 9971940472691085759),
+UInt256(3639756912964618516, 5851482335309447826, 5092352824318690189, 17076611609291245103),
+UInt256(4549696141205773145, 7314352919136809782, 15588813067253138545, 7510706456331892666),
+UInt256(2843560088253608215, 16100685620528975874, 5131322148605823686, 16223406581275902677),
+UInt256(3554450110317010269, 15514171007233831938, 15637524722612055416, 11055886189740102538),
+UInt256(4443062637896262837, 5557655703760126211, 10323533866410293462, 13819857737175128172),
+UInt256(2776914148685164273, 5779377824063772834, 4146365657292739462, 4025725067307067204),
+UInt256(3471142685856455341, 11835908298507103946, 14406329108470700135, 14255528370988609813),
+UInt256(4338928357320569177, 959827317851716221, 8784539348733599361, 13207724445308374362),
+UInt256(2711830223325355735, 12129107119725792398, 7796180102172193553, 1337298750676652120),
+UInt256(3389787779156694669, 10549697881229852594, 521853090860466133, 6283309456773203054),
+UInt256(4237234723945868336, 17798808369964703646, 9875688400430358474, 12465822839393891721),
+UInt256(2648271702466167710, 11124255231227939779, 1560619231841586142, 12402825293048570230),
+UInt256(3310339628082709638, 4681947002180148915, 15785832095084146390, 6280159579455936979),
+UInt256(4137924535103387047, 15075805789579961952, 15120604100427795083, 17073571511174697032),
+]
+
+private let bid_multipliers2_binary80_62: [UInt256] = [
+UInt256(2586202834439616904, 16339907646128558076, 9450377562767371927, 8365139185270491693),
+UInt256(3232753543049521131, 1978140483951145979, 11812971953459214909, 5844737963160726713),
+UInt256(4040941928811901413, 16307733660221096186, 10154528923396630732, 11917608472378296295),
+UInt256(2525588705507438383, 12498176546851879068, 10958266595550282111, 16671877332091210992),
+UInt256(3156985881884297979, 11011034665137460931, 13697833244437852639, 16228160646686625836),
+UInt256(3946232352355372474, 9152107312994438260, 12510605537119927895, 15673514789930894391),
+UInt256(2466395220222107796, 10331753089048911816, 17042500497554730742, 16713475771347890851),
+UInt256(3082994025277634745, 12914691361311139771, 2856381548233861812, 11668472677330087755),
+UInt256(3853742531597043432, 2308306146356761001, 17405534990574490977, 14585590846662609694),
+UInt256(2408589082248152145, 1442691341472975626, 3960930341467975005, 2198465251523049203),
+UInt256(3010736352810190181, 6415050195268607436, 14174534963689744564, 7359767582831199407),
+UInt256(3763420441012737726, 12630498762513147199, 17718168704612180705, 9199709478538999259),
+UInt256(2352137775632961079, 3282375708143329095, 17991384468023694796, 17279033470155344297),
+UInt256(2940172219541201348, 17938027690461325081, 17877544566602230592, 3152047763984628755),
+UInt256(3675215274426501686, 3975790539367104736, 8511872652970624528, 3940059704980785944),
+UInt256(4594019093033127107, 14193110211063656728, 10639840816213280660, 4925074631225982430),
+UInt256(2871261933145704442, 6564850872701091503, 6649900510133300412, 12301543681371014827),
+UInt256(3589077416432130552, 17429435627731140187, 3700689619239237611, 15376929601713768534),
+UInt256(4486346770540163191, 3340050460954373618, 14176005621659110, 14609475983714822763),
+UInt256(2803966731587601994, 9005060565737565367, 4620546021940924848, 4519236471394376323),
+UInt256(3504958414484502493, 2032953670317180901, 1163996508998768156, 5649045589242970404),
+UInt256(4381198018105628116, 7152878106323864030, 6066681654675848099, 7061306986553713004),
+UInt256(2738248761316017572, 13693920853307190826, 17626734089454568774, 2107473857382376676),
+UInt256(3422810951645021965, 17117401066633988533, 12810045574963435159, 11857714358582746653),
+UInt256(4278513689556277457, 7561693278010321955, 2177498913422130237, 10210456929801045412),
+UInt256(2674071055972673410, 16255273344824920981, 17501837885384689062, 8687378590339347335),
+UInt256(3342588819965841763, 11095719644176375419, 8042239301448697616, 1635851201069408360),
+UInt256(4178236024957302204, 9257963536793081370, 5441113108383484116, 2044814001336760450),
+UInt256(2611397515598313877, 15009599247350451664, 8012381711167065476, 10501380787690251089),
+UInt256(3264246894497892347, 4926941003905900868, 10015477138958831845, 13126725984612813862),
+UInt256(4080308618122365434, 1546990236454988181, 12519346423698539807, 2573349425483853615),
+UInt256(2550192886326478396, 5578554916211755517, 10130434524025281331, 8525872418568490365),
+UInt256(3187741107908097995, 6973193645264694396, 17274729173458989568, 6045654504783225053),
+UInt256(3984676384885122494, 4104806038153480092, 3146667393114185344, 7557068130979031316),
+UInt256(2490422740553201558, 16400561829128088769, 11190039157551141648, 4723167581861894573),
+UInt256(3113028425691501948, 11277330249555335154, 152490891656763348, 5903959477327368216),
+UInt256(3891285532114377435, 14096662811944168942, 9413985651425729993, 7379949346659210269),
+UInt256(2432053457571485897, 6504571248251411637, 1272055013713693341, 16141683387730476179),
+UInt256(3040066821964357371, 12742400078741652450, 6201754785569504581, 6342046179380931511),
+UInt256(3800083527455446714, 11316314079999677658, 16975565518816656534, 12539243742653552293),
+UInt256(2375052204659654196, 11684382318427186440, 15221414467687798238, 3225341320731082279),
+UInt256(2968815255824567745, 14605477898033983051, 580024010900196181, 13255048687768628657),
+UInt256(3711019069780709682, 4421789317260315101, 14560088068907408939, 2733752804428622109),
+UInt256(2319386918612943551, 7375304341715084842, 11405898052280824538, 17849496567263746482),
+UInt256(2899233648266179439, 4607444408716468149, 5034000528496254865, 13088498672224907295),
+UInt256(3624042060332724299, 1147619492468197282, 10904186679047706486, 2525565284998970406),
+UInt256(4530052575415905373, 15269582420867410315, 4406861311954857299, 12380328643103488816),
+UInt256(2831282859634940858, 11849332022255825399, 448445310758091860, 5431862392725986558),
+UInt256(3539103574543676073, 5588292990965005940, 14395614693729778537, 6789827990907483197),
+UInt256(4423879468179595091, 11597052257133645329, 17994518367162223171, 13098971007061741900),
+]
+
+private let bid_multipliers2_binary80_63: [UInt256] = [
+UInt256(2764924667612246932, 4942314651494834379, 4329044951835307626, 5881013870199894736),
+UInt256(3456155834515308665, 6177893314368542974, 799620171366746628, 16574639374604644228),
+UInt256(4320194793144135831, 12334052661388066621, 10222897251063209094, 2271555144546253669),
+UInt256(2700121745715084894, 14626311941008623494, 8695153791128199635, 15254780020623572255),
+UInt256(3375152182143856118, 9059517889406003560, 1645570202055473736, 14456789007352077415),
+UInt256(4218940227679820148, 2101025324902728642, 2056962752569342170, 18070986259190096768),
+UInt256(2636837642299887592, 10536512864918981209, 5897287738783226760, 15906052430421198384),
+UInt256(3296047052874859490, 13170641081148726511, 11983295691906421355, 1435821464316946364),
+UInt256(4120058816093574363, 7239929314581132331, 10367433596455638789, 15629834885678346667),
+UInt256(2575036760058483977, 2219112812399513755, 4173802988571080291, 12074489812762660619),
+UInt256(3218795950073104971, 7385577033926780098, 605567717286462460, 10481426247525937870),
+UInt256(4023494937591381214, 4620285273981087218, 9980331683462853883, 13101782809407422337),
+UInt256(2514684335994613258, 16722736351520343223, 10849393320591671581, 5882771246665945009),
+UInt256(3143355419993266573, 11680048402545653221, 8950055632312201572, 11965150076759819165),
+UInt256(3929194274991583217, 765002447899902814, 15799255558817639869, 14956437595949773956),
+UInt256(2455746421869739510, 12007341576005909019, 5262848705833637014, 11653616506682302675),
+UInt256(3069683027337174388, 5785804933152610466, 1966874863864658364, 5343648596498102535),
+UInt256(3837103784171467985, 7232256166440763082, 11681965616685598763, 6679560745622628169),
+UInt256(2398189865107167490, 16049375150093946686, 11912914528855887131, 1868882456800448654),
+UInt256(2997737331383959363, 10838346900762657550, 5667771124215083105, 16171161126282724529),
+UInt256(3747171664229949204, 8936247607525934033, 16308085942123629690, 6378893352571241950),
+UInt256(2341982290143718252, 14808526791558484579, 3275024686186186700, 8598494363784414123),
+UInt256(2927477862679647816, 63914415738554107, 17928838913014897087, 10748117954730517653),
+UInt256(3659347328349559770, 79893019673192634, 17799362622841233455, 8823461424985759162),
+UInt256(4574184160436949712, 9323238311446266601, 13025831241696766011, 6417640762804811049),
+UInt256(2858865100273093570, 5827023944653916626, 1223615498419396901, 1705182467539312954),
+UInt256(3573581375341366962, 16507151967672171590, 10752891409879021934, 6743164102851529096),
+UInt256(4466976719176708703, 11410567922735438680, 4217742225494001609, 17652327165419187178),
+UInt256(2791860449485442939, 14049133979350731031, 2636088890933751006, 4115175450745910130),
+UInt256(3489825561856803674, 12949731455761025884, 17130169168949352469, 14367341350287163471),
+UInt256(4362281952321004593, 6963792282846506548, 2965967387477138971, 4124118632576790626),
+UInt256(2726426220200627870, 15881585222847536352, 11077101654027987665, 271731136146800190),
+UInt256(3408032775250784838, 10628609491704644632, 13846377067534984581, 4951349938610888141),
+UInt256(4260040969063481048, 4062389827776029982, 17307971334418730726, 10800873441690998080),
+UInt256(2662525605664675655, 2538993642360018739, 6205796065584318800, 2138859882629485896),
+UInt256(3328157007080844568, 17008800108232187136, 3145559063553010596, 2673574853286857370),
+UInt256(4160196258851055711, 2814256061580682304, 3931948829441263245, 3341968566608571713),
+UInt256(2600122661781909819, 8676439066129008296, 2457468018400789528, 4394573363344051273),
+UInt256(3250153327227387274, 6233862814233872466, 3071835023000986910, 5493216704180064091),
+UInt256(4062691659034234092, 17015700554647116390, 13063165815606009445, 16089892917079855921),
+UInt256(2539182286896396308, 1411440809799671936, 3552792616326367999, 12362026082388603903),
+UInt256(3173977858620495385, 1764301012249589920, 4440990770407959999, 10840846584558366974),
+UInt256(3967472323275619231, 6817062283739375304, 5551238463009949999, 8939372212270570814),
+UInt256(2479670202047262019, 11178192954978191421, 3469524039381218749, 12504636660310188615),
+UInt256(3099587752559077524, 9361055175295351372, 8948591067653911341, 1795737770105572057),
+UInt256(3874484690698846905, 11701318969119189215, 11185738834567389176, 6856358231059352975),
+UInt256(2421552931686779316, 395795328058411403, 13908615799245700091, 4285223894412095609),
+UInt256(3026941164608474145, 494744160073014254, 12774083730629737210, 744843849587731607),
+UInt256(3783676455760592681, 5230116218518655722, 6744232626432395704, 10154426848839440317),
+UInt256(2364797784850370425, 14798037682642629586, 8826831409947635219, 6346516780524650198),
+]
+
+private let bid_multipliers2_binary80_64: [UInt256] = [
+UInt256(2955997231062963032, 4662489048021123271, 1810167225579768216, 3321459957228424844),
+UInt256(3694996538828703790, 5828111310026404088, 16097767087256873982, 4151824946535531055),
+UInt256(2309372836767939868, 17477627624048666267, 10061104429535546238, 16429948646866870621),
+UInt256(2886716045959924836, 3400290456351281218, 7964694518492044894, 11314063771728812469),
+UInt256(3608395057449906045, 4250363070439101523, 732496111260280310, 4919207677806239778),
+UInt256(4510493821812382556, 9924639856476264807, 14750678194357514099, 15372381634112575530),
+UInt256(2819058638632739097, 15426271947152441312, 16136702899114528168, 7301895512106665754),
+UInt256(3523823298290923872, 5447781878658387929, 1724134550183608594, 9127369390133332193),
+UInt256(4404779122863654840, 6809727348322984911, 6766854206156898647, 2185839700811889433),
+UInt256(2752986951789784275, 4256079592701865569, 11146812906489143510, 8283678840648512752),
+UInt256(3441233689737230344, 708413472449944058, 98458077829265676, 1131226513955865132),
+UInt256(4301542112171537930, 885516840562430072, 9346444634141357903, 1414033142444831414),
+UInt256(2688463820107211206, 5165134043778906699, 5841527896338348689, 7801299741669101490),
+UInt256(3360579775134014007, 15679789591578409182, 2690223851995547957, 14363310695513764767),
+UInt256(4200724718917517509, 14988050971045623573, 12586151851849210755, 4119080314110042246),
+UInt256(2625452949323448443, 11673374866117208685, 10172187916619450674, 268582187105082452),
+UInt256(3281816186654310554, 9980032564219122952, 17326920914201701246, 9559099770736128873),
+UInt256(4102270233317888193, 3251668668419127883, 3211907069042574942, 2725502676565385283),
+UInt256(2563918895823680120, 13561507963830424686, 18148342982647467002, 15538497228135529514),
+UInt256(3204898619779600150, 16951884954788030858, 13462056691454557945, 10199749498314636084),
+UInt256(4006123274724500188, 11966484156630262765, 7604198827463421623, 17361372891320683009),
+UInt256(2503827046702812617, 16702424634748690036, 7058467276378332466, 17768387084716508737),
+UInt256(3129783808378515772, 7042972738153698833, 8823084095472915583, 12987111819040860113),
+UInt256(3912229760473144715, 8803715922692123541, 15640541137768532383, 11622203755373687237),
+UInt256(2445143600295715447, 3196479442468883261, 12081181220319026691, 14181406374749636380),
+UInt256(3056429500369644308, 17830657358368267789, 1266418470116619652, 13115071950009657570),
+UInt256(3820536875462055386, 3841577624250783120, 6194709106073162469, 16393839937512071963),
+UInt256(2387835547163784616, 7012672033584127354, 3871693191295726543, 12551992970158738929),
+UInt256(2984794433954730770, 8765840041980159192, 14062988525974433987, 11078305194271035757),
+UInt256(3730993042443413463, 1733928015620423182, 17578735657468042484, 9236195474411406792),
+UInt256(2331870651527133414, 8001234037403846345, 6375023767490138648, 14995994208361905053),
+UInt256(2914838314408916768, 778170509900032123, 12580465727790061215, 298248686742829701),
+UInt256(3643547893011145960, 972713137375040154, 11113896141310188614, 14207868913710700838),
+UInt256(4554434866263932450, 1215891421718800193, 4668998139782959960, 8536464105283600239),
+UInt256(2846521791414957781, 5371618157001638024, 14447338883432819735, 5335290065802250149),
+UInt256(3558152239268697226, 11326208714679435434, 18059173604291024669, 2057426563825424783),
+UInt256(4447690299085871533, 4934388856494518485, 13350594968509005028, 7183469223209168882),
+UInt256(2779806436928669708, 5389836044522768005, 10649964864531822094, 13713040301360506360),
+UInt256(3474758046160837135, 6737295055653460006, 17924142099092165522, 7917928339845857141),
+UInt256(4343447557701046419, 3809932801139437104, 13181805587010431095, 674038387952545619),
+UInt256(2714654723563154012, 75364991498454238, 8238628491881519434, 7338803020111422868),
+UInt256(3393318404453942515, 94206239373067798, 1074913577997123484, 18396875811994054393),
+UInt256(4241648005567428143, 13952815854498498459, 10567014009351180164, 4549350691283016375),
+UInt256(2651030003479642589, 15638038936702643393, 4298540746630793650, 12066716218906661042),
+UInt256(3313787504349553237, 5712490615596140529, 9984861951715879967, 5860023236778550495),
+UInt256(4142234380436941546, 11752299287922563565, 17092763458072237863, 2713343027545800214),
+UInt256(2588896487773088466, 11956873073378990132, 12988820170508842616, 8613368419857206990),
+UInt256(3236120609716360583, 5722719304868961857, 16236025213136053270, 10766710524821508738),
+UInt256(4045150762145450729, 2541713112658814418, 6459973461137902876, 4235016119172110114),
+UInt256(2528219226340906705, 13117785741480228771, 8649169431638577201, 11870257111337344629),
+]
+
+private let bid_multipliers2_binary80_65: [UInt256] = [
+UInt256(3160274032926133382, 2562174121568122252, 6199775771120833598, 1002763333889517075),
+UInt256(3950342541157666727, 12426089688814928623, 7749719713901041997, 10476826204216672151),
+UInt256(2468964088223541704, 14683835083150412245, 11761103848829233104, 8853859386849114047),
+UInt256(3086205110279427130, 18354793853938015307, 866321755754377668, 11067324233561392558),
+UInt256(3857756387849283913, 13720120280567743325, 14917960249975135797, 13834155291951740698),
+UInt256(2411097742405802446, 1657546147713757722, 11629568165448153825, 10952190066683531888),
+UInt256(3013872178007253057, 11295304721496972961, 5313588169955416473, 18301923601781802764),
+UInt256(3767340222509066322, 284072846589052489, 11253671230871658496, 9042346446945089743),
+UInt256(2354587639068166451, 4789231547545545710, 116015491653704704, 5651466529340681090),
+UInt256(2943234548835208064, 1374853416004544233, 9368391401421906688, 7064333161675851362),
+UInt256(3679043186044010080, 1718566770005680291, 16322175270204771264, 8830416452094814202),
+UInt256(4598803982555012600, 2148208462507100364, 15791033069328576176, 11038020565118517753),
+UInt256(2874252489096882875, 1342630289066937728, 646023631475584302, 6898762853199073596),
+UInt256(3592815611371103593, 15513345916615835872, 807529539344480377, 17846825603353617802),
+UInt256(4491019514213879492, 5556624340487631128, 1009411924180600472, 8473473948909858541),
+UInt256(2806887196383674682, 12696262249659545263, 630882452612875295, 5295921218068661588),
+UInt256(3508608995479593353, 6646955775219655770, 14623661121048257831, 2008215504158439081),
+UInt256(4385761244349491691, 12920380737451957617, 9056204364455546480, 16345327435480212563),
+UInt256(2741100777718432307, 5769394951693779558, 17189342773853186310, 10215829647175132852),
+UInt256(3426375972148040384, 2600057671189836544, 12263306430461707080, 3546415022114140257),
+UInt256(4282969965185050480, 3250072088987295680, 15329133038077133850, 4433018777642675321),
+UInt256(2676856228240656550, 2031295055617059800, 9580708148798208656, 7382322754454059980),
+UInt256(3346070285300820687, 11762490856376100558, 11975885185997760820, 9227903443067574975),
+UInt256(4182587856626025859, 10091427552042737794, 5746484445642425217, 11534879303834468718),
+UInt256(2614117410391266162, 4001299210813017169, 8203238796953903665, 291770537255461093),
+UInt256(3267646762989082702, 14224996050371047269, 14865734514619767485, 4976399189996714270),
+UInt256(4084558453736353378, 8557873026109033279, 4747110087992545644, 10832185005923280742),
+UInt256(2552849033585220861, 9960356659745533703, 9884472832636422883, 15993487665556826272),
+UInt256(3191061291981526076, 17062131843109305033, 7743905022368140700, 15380173563518644936),
+UInt256(3988826614976907596, 2880920730177079675, 14291567296387563780, 778472880688754553),
+UInt256(2493016634360567247, 11023947493215450605, 6626386551028533410, 9709917587285247404),
+UInt256(3116270792950709059, 9168248348091925352, 12894669207213054667, 2914024947251783447),
+UInt256(3895338491188386324, 6848624416687518786, 16118336509016318333, 17477589239346893021),
+UInt256(2434586556992741452, 13503762297284475049, 14685646336562586862, 13229336283805502090),
+UInt256(3043233196240926815, 16879702871605593812, 4521999865421069866, 7313298317902101804),
+UInt256(3804041495301158519, 16487942571079604361, 5652499831776337332, 18364994934232403063),
+UInt256(2377525934563224074, 17222493134565834581, 15062027440928680593, 2254749797040476107),
+UInt256(2971907418204030093, 12304744381352517419, 4992476245878687029, 7430123264727983037),
+UInt256(3714884272755037617, 1545872421408483062, 1628909288920970882, 13899340099337366701),
+UInt256(2321802670471898510, 12495385309448771673, 14853126360857770513, 13298773580513242092),
+UInt256(2902253338089873138, 6395859599956188784, 4731349895790049430, 2788408920359388903),
+UInt256(3627816672612341422, 17218196536800011788, 5914187369737561787, 12708883187304011937),
+UInt256(4534770840765426778, 12299373634145238927, 7392734212171952234, 11274417965702627017),
+UInt256(2834231775478391736, 12298794539768162233, 11537987910248552002, 11658197246991529790),
+UInt256(3542789719347989670, 15373493174710202792, 587426832528526291, 5349374521884636429),
+UInt256(4428487149184987088, 9993494431532977682, 734283540660657864, 2075032133928407632),
+UInt256(2767804468240616930, 6245934019708111051, 5070613231340299069, 1296895083705254770),
+UInt256(3459755585300771162, 17030789561489914622, 1726580520747985932, 6232804873058956367),
+UInt256(4324694481625963953, 12065114915007617469, 11381597687789758223, 7791006091323695458),
+UInt256(2702934051016227471, 623167794238679062, 9419341564082292841, 11786907834718391518),
+]
+
+private let bid_multipliers2_binary80_66: [UInt256] = [
+UInt256(3378667563770284338, 14614017798080512540, 2550804918248090244, 898576738115825685),
+UInt256(4223334454712855423, 9044150210745864867, 3188506147810112805, 1123220922644782106),
+UInt256(2639584034195534639, 12570122909357247397, 18133717406877178167, 3007856085866682768),
+UInt256(3299480042744418299, 11100967618269171343, 8832088703314308996, 17594878162615517172),
+UInt256(4124350053430522874, 9264523504409076275, 6428424860715498342, 3546853629559844849),
+UInt256(2577718783394076796, 10402013208683060576, 1711922528733492511, 16051841573757066743),
+UInt256(3222148479242595995, 13002516510853825720, 2139903160916865639, 15453115948768945525),
+UInt256(4027685599053244994, 11641459620139894246, 2674878951146082049, 14704708917533794002),
+UInt256(2517303499408278121, 11887598281014821807, 15506857399748464993, 2272914045817539395),
+UInt256(3146629374260347652, 1024439795986363547, 14771885731258193337, 7452828575699312148),
+UInt256(3933286717825434565, 1280549744982954434, 13853171145645353767, 13927721738051528089),
+UInt256(2458304198640896603, 3106186599828040473, 13269917984455734008, 15622355113923286912),
+UInt256(3072880248301120753, 17717791305067214304, 2752339425287503799, 1081199818694557023),
+UInt256(3841100310376400942, 8312181076051854168, 3440424281609379748, 15186557828650359991),
+UInt256(2400687693985250589, 583427154105020951, 2150265176005862343, 268226606051699187),
+UInt256(3000859617481563236, 5340969961058664092, 16522889525289491640, 14170341312846787695),
+UInt256(3751074521851954045, 6676212451323330116, 2206867832902312934, 17712926641058484619),
+UInt256(2344421576157471278, 6478475791290775274, 10602664432418721392, 6458893132234164983),
+UInt256(2930526970196839097, 17321466775968244901, 4029958503668625932, 8073616415292706229),
+UInt256(3663158712746048872, 7816775414678142414, 9649134148013170319, 10092020519115882786),
+UInt256(4578948390932561090, 9770969268347678018, 2838045648161687091, 8003339630467465578),
+UInt256(2861842744332850681, 10718541811144686665, 6385464548528442336, 2696244259828472034),
+UInt256(3577303430416063351, 18009863282358246235, 12593516704087940824, 3370305324785590043),
+UInt256(4471629288020079189, 17900643084520419890, 11130209861682538126, 4212881655981987553),
+UInt256(2794768305012549493, 13493744937038956383, 11568067181978974232, 16468109090270905933),
+UInt256(3493460381265686867, 3032123116016531767, 9848397959046329887, 2138392289129080800),
+UInt256(4366825476582108583, 17625211950302828421, 7698811430380524454, 16508048416693514712),
+UInt256(2729265922863817864, 17933286496580349619, 7117600153201521736, 5705844242006058791),
+UInt256(3411582403579772331, 3969864047015885408, 4285314173074514266, 7132305302507573489),
+UInt256(4264478004474715414, 350644040342468856, 5356642716343142832, 18138753664989242669),
+UInt256(2665298752796697133, 14054210580496206747, 3347901697714464270, 11336721040618276668),
+UInt256(3331623440995871417, 3732705170338094721, 18019935177425244050, 4947529263918070027),
+UInt256(4164529301244839271, 9277567481350006306, 8689860916499391350, 15407783616752363342),
+UInt256(2602830813278024544, 12716008703484835797, 10042849091239507498, 5018178742042839185),
+UInt256(3253538516597530680, 15895010879356044746, 17165247382476772276, 15496095464408324789),
+UInt256(4066923145746913351, 1422019525485504317, 12233187191241189538, 923375256800854370),
+UInt256(2541826966091820844, 7806291231069522054, 9951585003739437413, 5188795553927921886),
+UInt256(3177283707614776055, 9757864038836902568, 3216109217819520958, 11097680460837290261),
+UInt256(3971604634518470069, 7585644030118740306, 4020136522274401198, 4648728539191837018),
+UInt256(2482252896574043793, 7046870528037906643, 7124271344848888652, 16740513392277061848),
+UInt256(3102816120717554741, 13420274178474771208, 4293653162633722912, 2478897666636775694),
+UInt256(3878520150896943427, 2940284667811300298, 5367066453292153640, 3098622083295969618),
+UInt256(2424075094310589641, 17978578981877920350, 7966102551734983929, 1936638802059981011),
+UInt256(3030093867888237052, 8638165672065236726, 734256152813954103, 7032484521002364168),
+UInt256(3787617334860296315, 10797707090081545907, 10141192227872218437, 4178919632825567306),
+UInt256(2367260834287685197, 4442723922087272240, 4032402133206442571, 4917667779729673518),
+UInt256(2959076042859606496, 10165090921036478204, 5040502666508053214, 1535398706234703994),
+UInt256(3698845053574508120, 12706363651295597755, 6300628333135066517, 11142620419648155800),
+UInt256(2311778158484067575, 7941477282059748597, 1632049698995722621, 9269980771493791327),
+UInt256(2889722698105084469, 5315160584147297842, 6651748142172041180, 16199161982794627063),
+]
+
+private let bid_multipliers2_binary80_67: [UInt256] = [
+UInt256(3612153372631355586, 11255636748611510206, 17538057214569827284, 1802208404783732213),
+UInt256(4515191715789194483, 4846173898909611950, 12699199481357508297, 2252760505979665266),
+UInt256(2821994822368246552, 723015677604813517, 3325313657421054781, 12937190362305760551),
+UInt256(3527493527960308190, 903769597006016896, 8768328090203706381, 2336429897600036977),
+UInt256(4409366909950385237, 10353084033112296928, 10960410112754632976, 7532223390427434125),
+UInt256(2755854318718990773, 8776520529908879532, 6850256320471645610, 4707639619017146328),
+UInt256(3444817898398738466, 15582336680813487319, 8562820400589557012, 15107921560626208718),
+UInt256(4306022372998423083, 10254548814162083341, 6091839482309558362, 438157877073209282),
+UInt256(2691263983124014427, 4103249999637608136, 6113242685657167928, 4885534691598143705),
+UInt256(3364079978905018034, 517376481119622266, 7641553357071459910, 6106918364497679631),
+UInt256(4205099973631272542, 9870092638254303641, 328569659484549079, 16857019992476875347),
+UInt256(2628187483519545339, 1557121880481551871, 11734571083246312934, 17453166522939128948),
+UInt256(3285234354399431673, 15781460405884103551, 10056527835630503264, 12593086116819135377),
+UInt256(4106542942999289592, 5891767452072965727, 7958973776110741176, 15741357646023919221),
+UInt256(2566589339374555995, 3682354657545603579, 11891887637710295091, 9838348528764949513),
+UInt256(3208236674218194993, 18438001377214168186, 10253173528710480960, 7686249642528798988),
+UInt256(4010295842772743742, 9212443666235546521, 3593094874033325392, 9607812053160998735),
+UInt256(2506434901732964839, 1146091272969828671, 13774899342339298130, 6004882533225624209),
+UInt256(3133043627166206048, 15267672146494449551, 12606938159496734758, 16729475203386806069),
+UInt256(3916304533957757561, 637846109408510323, 11146986680943530544, 11688471967378731779),
+UInt256(2447690333723598475, 11927868864448788712, 4661023666376012638, 7305294979611707362),
+UInt256(3059612917154498094, 10298150062133597986, 5826279582970015797, 18354990761369410010),
+UInt256(3824516146443122618, 3649315540812221674, 16506221515567295555, 9108680396429598801),
+UInt256(2390322591526951636, 6892508231435026450, 14928074465656947626, 3387082238554805299),
+UInt256(2987903239408689545, 8615635289293783063, 9436721045216408724, 13457224835048282431),
+UInt256(3734879049260861931, 15381230130044616733, 7184215288093123001, 16821531043810353039),
+UInt256(2334299405788038707, 7307425822064191506, 6795977564271895828, 3595927874740388793),
+UInt256(2917874257235048384, 4522596259152851478, 17718343992194645593, 4494909843425485992),
+UInt256(3647342821543810480, 5653245323941064348, 12924557953388531183, 10230323322709245393),
+UInt256(4559178526929763100, 7066556654926330435, 16155697441735663979, 8176218134959168838),
+UInt256(2849486579331101937, 13639969946183732330, 7791467891871096035, 2804293325135786572),
+UInt256(3561858224163877422, 3214904377447501701, 515962827984094235, 17340424711701896927),
+UInt256(4452322780204846777, 13242002508664152934, 5256639553407505698, 17063844871199983254),
+UInt256(2782701737628029236, 1358722540274013727, 17120457776161854773, 15276589062927377438),
+UInt256(3478377172035036545, 1698403175342517159, 16788886201774930563, 5260678273377058085),
+UInt256(4347971465043795681, 6734689987605534353, 16374421733791275300, 1964161823293934703),
+UInt256(2717482165652372300, 15738396288321928731, 3316484555978465206, 10450973176413484997),
+UInt256(3396852707065465376, 1226251286692859297, 17980663750255245220, 3840344433662080438),
+UInt256(4246065883831831720, 1532814108366074122, 8640771632536892813, 4800430542077600548),
+UInt256(2653791177394894825, 958008817728796326, 10012168288762945912, 5306112098012194295),
+UInt256(3317238971743618531, 5809197040588383312, 3291838324098906582, 6632640122515242868),
+UInt256(4146548714679523164, 2649810282308091236, 4114797905123633227, 17514172189998829393),
+UInt256(2591592946674701977, 10879503463297332830, 11795120727557046575, 8640514609535574419),
+UInt256(3239491183343377471, 18211065347549053942, 5520528872591532411, 6188957243492080119),
+UInt256(4049363979179221839, 18152145666008929523, 16124033127594191322, 3124510535937712245),
+UInt256(2530852486987013649, 18262620068896662808, 7771677695532675624, 6564505103388458057),
+UInt256(3163565608733767062, 8993217030838664798, 9714597119415844530, 8205631379235572572),
+UInt256(3954457010917208828, 2018149251693555190, 2919874362415029855, 1033667187189689907),
+UInt256(2471535631823255517, 10484715319163247801, 15659979531791557371, 7563571019634638048),
+UInt256(3089419539779069396, 17717580167381447656, 5739916359457283002, 4842777756115909656),
+]
+
+private let bid_multipliers2_binary80_68: [UInt256] = [
+UInt256(3861774424723836746, 3700231135517257954, 7174895449321603752, 15276844231999662877),
+UInt256(2413609015452397966, 6924330478125674125, 9095995674253390249, 9548027644999789299),
+UInt256(3017011269315497457, 17878785134511868464, 15981680611244125715, 16546720574677124527),
+UInt256(3771264086644371822, 8513423362857671869, 1530356690345605528, 16071714699919017755),
+UInt256(2357040054152732389, 709203583358657014, 3262315940679697407, 10044821687449386097),
+UInt256(2946300067690915486, 5498190497625709171, 13301266962704397567, 7944341090884344717),
+UInt256(3682875084613644357, 16096110158886912272, 12014897684953109055, 5318740345178042992),
+UInt256(4603593855767055447, 6285079643326476628, 15018622106191386319, 2036739413045165836),
+UInt256(2877246159854409654, 10845703804720129749, 163266779514840641, 8190491160794310504),
+UInt256(3596557699818012068, 4333757719045386378, 4815769492820938705, 14849799969420276033),
+UInt256(4495697124772515085, 5417197148806732972, 15243083902880949190, 4727191906493181330),
+UInt256(2809810702982821928, 5691591227217902060, 303555402445817435, 16789552996840402043),
+UInt256(3512263378728527410, 7114489034022377575, 379444253057271794, 16375255227623114650),
+UInt256(4390329223410659262, 18116483329382747776, 14309363371603753455, 11245696997674117504),
+UInt256(2743955764631662039, 6711116062436829456, 8943352107252345909, 13946089651187405296),
+UInt256(3429944705789577549, 3777209059618648916, 11179190134065432387, 3597554008702092908),
+UInt256(4287430882236971936, 9333197342950699049, 13973987667581790483, 18332000566159779847),
+UInt256(2679644301398107460, 5833248339344186906, 1816213264597537196, 9151657344636168453),
+UInt256(3349555376747634325, 7291560424180233632, 11493638617601697303, 11439571680795210566),
+UInt256(4186944220934542906, 13726136548652679944, 14367048272002121629, 9687778582566625303),
+UInt256(2616840138084089316, 13190521361335312869, 8979405170001326018, 8360704623317834767),
+UInt256(3271050172605111645, 16488151701669141086, 15835942480929045427, 1227508742292517650),
+UInt256(4088812715756389557, 6775131571804262646, 10571556064306530975, 15369443983147810775),
+UInt256(2555507947347743473, 6540300241591358106, 1995536521764193955, 16523431517108463590),
+UInt256(3194384934184679341, 12787061320416585536, 11717792689060018252, 16042603377958191584),
+UInt256(3992981167730849177, 2148768595238568208, 14647240861325022816, 1606510148738187864),
+UInt256(2495613229831780735, 12872195418092574890, 9154525538328139260, 1004068842961367415),
+UInt256(3119516537289725919, 11478558254188330709, 2219784886055398267, 1255086053701709269),
+UInt256(3899395671612157399, 9736511799308025482, 7386417125996635737, 15403915622409300298),
+UInt256(2437122294757598374, 13002848902208597782, 9228196722175285240, 2709918236364730830),
+UInt256(3046402868446997968, 7030189090905971420, 2311873865864330742, 3387397795455913538),
+UInt256(3808003585558747460, 8787736363632464275, 2889842332330413427, 13457619281174667730),
+UInt256(2380002240974217162, 14715707264125065979, 17947052522202366056, 6105169041520473379),
+UInt256(2975002801217771453, 9171262043301556666, 17822129634325569666, 7631461301900591724),
+UInt256(3718753501522214316, 16075763572554333737, 13054290006052186275, 315954590520963847),
+UInt256(2324220938451383948, 823980195991682778, 1241402226141534565, 16338372683571460069),
+UInt256(2905276173064229935, 1029975244989603472, 10775124819531694015, 6587907799182161374),
+UInt256(3631595216330287418, 15122527111519168052, 13468906024414617519, 3623198730550313813),
+UInt256(4539494020412859273, 9679786852544184257, 16836132530518271898, 18364056468470055978),
+UInt256(2837183762758037045, 17579081828908584921, 3605053803932838080, 16089221311221172890),
+UInt256(3546479703447546307, 8138794230853567439, 9118003273343435505, 1664782565316914497),
+UInt256(4433099629309432884, 5561806770139571395, 6785818073251906477, 6692664225073531025),
+UInt256(2770687268318395552, 12699501268192007930, 1935293286568747596, 6488758149884650843),
+UInt256(3463359085397994440, 15874376585240009912, 11642488645065710303, 8110947687355813553),
+UInt256(4329198856747493051, 1396226657840460774, 14553110806332137879, 5526998590767379037),
+UInt256(2705749285467183156, 17013542725646145648, 4484008235530198270, 10371903146870693755),
+UInt256(3382186606833978946, 2820184333348130444, 5605010294412747838, 3741506896733591385),
+UInt256(4227733258542473682, 12748602453539938863, 7006262868015934797, 13900255657771765039),
+UInt256(2642333286589046051, 12579562551889849693, 11296443320151041104, 10993502795321047102),
+UInt256(3302916608236307564, 11112767171434924213, 285496094906637668, 13741878494151308877),
+]
+
+private let bid_multipliers2_binary80_69: [UInt256] = [
+UInt256(4128645760295384455, 13890958964293655266, 4968556137060684989, 17177348117689136096),
+UInt256(2580403600184615284, 15599378380324616397, 7717033604090316022, 13041685582769404012),
+UInt256(3225504500230769106, 1052478901696218880, 14257978023540282932, 7078734941606979207),
+UInt256(4031880625288461382, 10538970663975049408, 17822472529425353665, 8848418677008724009),
+UInt256(2519925390805288364, 1975170646557017976, 11139045330890846040, 17059476719198922266),
+UInt256(3149906738506610455, 2468963308196272470, 13923806663613557551, 2877601825289101216),
+UInt256(3937383423133263068, 16921262190527504300, 8181386292662171130, 17432060336893540232),
+UInt256(2460864639458289418, 1352416832224914379, 14336738469768632764, 15506723728985850549),
+UInt256(3076080799322861772, 10913893077135918782, 13309237068783403052, 936660587522761570),
+UInt256(3845100999153577215, 13642366346419898478, 7413174299124478007, 1170825734403451963),
+UInt256(2403188124470985759, 15444007994153518405, 21547918525410850, 7649295111643239333),
+UInt256(3003985155588732199, 14693323974264510102, 4638620916584151467, 338246852699273358),
+UInt256(3754981444485915249, 13754968949403249723, 15021648182584965141, 14257866621156255409),
+UInt256(2346863402803697031, 1679326565735949221, 7082687104901909261, 11217009647436353583),
+UInt256(2933579253504621288, 15934216262452100238, 13465044899554774481, 186204004013278267),
+UInt256(3666974066880776611, 1471026254355573682, 7607934087588692293, 4844441023443985737),
+UInt256(4583717583600970763, 15673840873226630815, 286545572631089558, 10667237297732370076),
+UInt256(2864823489750606727, 7490307536552950307, 7096620010535512830, 2055337292655343393),
+UInt256(3581029362188258409, 4751198402263799980, 4259088994742003133, 11792543652673955050),
+UInt256(4476286702735323011, 10550684021257137879, 5323861243427503917, 905621510560280100),
+UInt256(2797679189209576882, 4288334504072017222, 10244942304783271804, 2871856453313869015),
+UInt256(3497098986511971102, 14583790166944797336, 3582805844124313947, 3589820566642336268),
+UInt256(4371373733139963878, 9006365671826220862, 4478507305155392433, 18322333763585084047),
+UInt256(2732108583212477424, 1017292526464000134, 16634125121004283983, 4533929574599595674),
+UInt256(3415135729015596780, 1271615658080000168, 11569284364400579171, 1055725949822106688),
+UInt256(4268919661269495975, 1589519572600000210, 14461605455500723963, 15154715492559797072),
+UInt256(2668074788293434984, 7910978760516081987, 13650189428115340381, 7165854173636179218),
+UInt256(3335093485366793730, 9888723450645102484, 12451050766716787572, 13569003735472611926),
+UInt256(4168866856708492163, 3137532276451602297, 15563813458395984465, 16961254669340764908),
+UInt256(2605541785442807601, 18101858737278109100, 2809854383856408435, 3683255140696896212),
+UInt256(3256927231803509502, 8792265366315472663, 3512317979820510543, 18439126981153283976),
+UInt256(4071159039754386878, 1766959671039565020, 18225455530057801891, 18437222708014217066),
+UInt256(2544474399846491798, 14939407849681891850, 2167537669431350374, 9217421183295191715),
+UInt256(3180592999808114748, 9450887775247589004, 11932794123643963776, 2298404442264213835),
+UInt256(3975741249760143435, 11813609719059486255, 14915992654554954720, 2873005552830267294),
+UInt256(2484838281100089647, 5077663065198484957, 16240024436737928556, 1795628470518917059),
+UInt256(3106047851375112059, 1735392813070718293, 6464972490640246983, 2244535588148646323),
+UInt256(3882559814218890073, 16004299071620561578, 12692901631727696632, 16640727540467971616),
+UInt256(2426599883886806296, 3085157892121769130, 12544749538257198299, 10400454712792482260),
+UInt256(3033249854858507870, 3856447365152211413, 6457564885966722066, 8388882372563214921),
+UInt256(3791562318573134837, 14043931243295040074, 12683642125885790487, 1262730928849242843),
+UInt256(2369726449108209273, 11083300036273093998, 12538962347106006958, 7706735858171858633),
+UInt256(2962158061385261592, 19066990059203786, 6450330897027732890, 410047785860047484),
+UInt256(3702697576731576990, 23833737574004732, 17286285658139441920, 9735931769179835162),
+UInt256(2314185985457235618, 13849954141265916670, 1580556499482375392, 6084957355737396977),
+UInt256(2892732481821544523, 8089070639727620029, 11199067661207745048, 7606196694671746221),
+UInt256(3615915602276930654, 5499652281232137133, 163776521227517598, 9507745868339682776),
+UInt256(4519894502846163317, 16097937388394947224, 4816406669961784902, 2661310298569827661),
+UInt256(2824934064278852073, 12367053876960535967, 3010254168726115563, 15498376991888306001),
+UInt256(3531167580348565092, 1623759290918506246, 17597875766189808166, 14761285221432994597),
+]
+
+private let bid_multipliers2_binary80_70: [UInt256] = [
+UInt256(4413959475435706365, 2029699113648132808, 12773972670882484400, 9228234489936467438),
+UInt256(2758724672147316478, 3574404955243776957, 7983732919301552750, 5767646556210292149),
+UInt256(3448405840184145597, 13691378230909497004, 14591352167554328841, 16432930232117640994),
+UInt256(4310507300230181997, 3279164733354707543, 18239190209442911052, 6706104734864887530),
+UInt256(2694067062643863748, 4355320967560386166, 18317022908542901263, 13414687496145330515),
+UInt256(3367583828304829685, 5444151209450482708, 13672906598823850771, 12156673351754275239),
+UInt256(4209479785381037106, 11416875030240491289, 17091133248529813464, 10584155671265456145),
+UInt256(2630924865863148191, 11747232912327694960, 3764429252690051559, 6615097294540910091),
+UInt256(3288656082328935239, 10072355121982230796, 4705536565862564449, 3657185599748749709),
+UInt256(4110820102911169049, 7978757884050400591, 5881920707328205561, 9183168018113325040),
+UInt256(2569262564319480655, 16515938723599970129, 10593729469721210331, 17268695057389297910),
+UInt256(3211578205399350819, 16033237386072574757, 17853847855578900818, 16974182803309234484),
+UInt256(4014472756749188524, 15429860714163330543, 8482251764191462311, 11994356467281767297),
+UInt256(2509045472968242828, 420290909497305781, 12218936380260745800, 14414001819692186417),
+UInt256(3136306841210303535, 525363636871632227, 1438612420043768538, 18017502274615233021),
+UInt256(3920383551512879418, 14491762601371703995, 15633323580336874385, 13298505806414265468),
+UInt256(2450239719695549636, 13669037644284702901, 7464984228496852539, 1394037101367834061),
+UInt256(3062799649619437045, 17086297055355878626, 13942916304048453577, 15577604431991956289),
+UInt256(3828499562024296307, 7522813263912684571, 8205273343205791164, 5636947484707781649),
+UInt256(2392812226265185192, 2395915280731733905, 2822452830289925525, 12746464214797139339),
+UInt256(2991015282831481490, 2994894100914667381, 8139752056289794811, 2098022213214260461),
+UInt256(3738769103539351862, 12966989662998110034, 14786376088789631417, 16457585821799989288),
+UInt256(2336730689712094914, 3492682520946430867, 13853171073920907540, 3368462110983911449),
+UInt256(2920913362140118642, 13589225188037814392, 12704777823973746521, 4210577638729889312),
+UInt256(3651141702675148303, 7763159448192492182, 15880972279967183151, 9874908066839749543),
+UInt256(4563927128343935379, 5092263291813227324, 10627843313104203131, 7731949065122299025),
+UInt256(2852454455214959612, 876821548169573125, 15865774107544902765, 2526625156487742939),
+UInt256(3565568069018699515, 1096026935211966407, 5997159579148964744, 7769967464037066578),
+UInt256(4456960086273374393, 15205091724297121721, 2884763455508818026, 9712459330046333222),
+UInt256(2785600053920858996, 2585653300044619219, 13332192205761481026, 10681973099706346168),
+UInt256(3482000067401073745, 3232066625055774024, 12053554238774463379, 4129094337778156902),
+UInt256(4352500084251342181, 8651769299747105434, 15066942798468079224, 549681903795308223),
+UInt256(2720312552657088863, 7713198821555634848, 14028525267469937419, 343551189872067640),
+UInt256(3400390690821361079, 5029812508517155656, 17535656584337421773, 14264497042622248261),
+UInt256(4250488363526701349, 1675579617219056667, 3472826656712225601, 3995563247995646614),
+UInt256(2656555227204188343, 3353080269975604368, 18311417724940998664, 14026442076065748894),
+UInt256(3320694034005235428, 18026408392751669173, 4442528082466696714, 17533052595082186118),
+UInt256(4150867542506544286, 4086266417230034850, 10164846121510758797, 12692943706997956839),
+UInt256(2594292214066590178, 16388974566050935493, 10964714844371612152, 10238932826087416977),
+UInt256(3242865267583237723, 11262846170708893558, 18317579573891903094, 12798666032609271221),
+UInt256(4053581584479047154, 9466871694958729044, 13673602430510103060, 6774960503906813218),
+UInt256(2533488490299404471, 10528480827776593556, 17769373555923590220, 13457722351796534069),
+UInt256(3166860612874255589, 8548915016293354042, 3764972871194936159, 16822152939745667586),
+UInt256(3958575766092819486, 15297829788794080456, 13929588125848446007, 16416005156254696579),
+UInt256(2474109853808012179, 4949457599568912381, 8705992578655278754, 17177532250300267218),
+UInt256(3092637317260015224, 1575135981033752572, 15494176741746486347, 12248543276020558214),
+UInt256(3865796646575019030, 1968919976292190716, 920976853473556318, 10698993076598309864),
+UInt256(2416122904109386893, 15065633040464782909, 9798982570275748507, 2075184654446555761),
+UInt256(3020153630136733617, 4996983245298814924, 16860414231272073537, 16429038873340358413),
+UInt256(3775192037670917021, 10857915075050906560, 2628773715380540306, 6701240536393284304),
+]
+
+private let bid_multipliers2_binary80_71: [UInt256] = [
+UInt256(2359495023544323138, 9092039931120510552, 1642983572112837691, 8799961353673190594),
+UInt256(2949368779430403923, 2141677877045862382, 2053729465141047114, 6388265673664100339),
+UInt256(3686710974288004903, 16512155401589491689, 11790533868281084700, 17208704128934901231),
+UInt256(4608388717860006129, 16028508233559476708, 903109280069192164, 3064136087459074923),
+UInt256(2880242948662503831, 3100288618333591086, 9787815336898020910, 11138457091516697635),
+UInt256(3600303685828129788, 17710418828199152570, 3011397134267750330, 4699699327541096236),
+UInt256(4500379607285162236, 3691279461539389096, 12987618454689463720, 15097996196281146103),
+UInt256(2812737254553226397, 11530421700316893993, 8117261534180914825, 9436247622675716314),
+UInt256(3515921568191532997, 577969070113953779, 14758262936153531435, 16406995546772033297),
+UInt256(4394901960239416246, 5334147356069830128, 13836142651764526390, 15897058415037653717),
+UInt256(2746813725149635153, 17168900152825807542, 8647589157352828994, 5323975490971145669),
+UInt256(3433517156437043942, 7626067135750095716, 1586114409836260434, 15878341400568707894),
+UInt256(4291896445546304928, 309211882832843837, 1982643012295325543, 10624554713856109060),
+UInt256(2682435278466440580, 193257426770527398, 3544994891898272416, 13557875723801150019),
+UInt256(3353044098083050725, 241571783463159247, 13654615651727616328, 16947344654751437523),
+UInt256(4191305122603813406, 4913650747756336963, 12456583546232132507, 2737436744729745288),
+UInt256(2619565701627383378, 16906089772629874314, 5479521707181388864, 17851799029951948469),
+UInt256(3274457127034229223, 11909240178932567084, 16072774170831511889, 3868004713730383970),
+UInt256(4093071408792786529, 10274864205238320952, 1644223639829838245, 9446691910590367867),
+UInt256(2558169630495491580, 17951005174342420355, 1027639774893648903, 8210025453332673869),
+UInt256(3197712038119364476, 3992012394218473827, 15119607773899224841, 5650845798238454432),
+UInt256(3997140047649205595, 4990015492773092284, 14287823698946643147, 11675243266225455944),
+UInt256(2498212529780753497, 812916673769488725, 18153261848696427775, 4991184032177216013),
+UInt256(3122765662225941871, 5627831860639248811, 8856519255588371007, 1627294021794132112),
+UInt256(3903457077782427339, 2423103807371673110, 6458963051058075854, 15869175582524828852),
+UInt256(2439660673614017086, 17655340944103153357, 17871909962193461121, 5306548720650630129),
+UInt256(3049575842017521358, 12845804143274165889, 8504829397459662689, 11244871919240675565),
+UInt256(3811969802521901698, 6833883142237931553, 15242722765251966266, 221031843768680744),
+UInt256(2382481126576188561, 8882862982326095125, 2609172700641397060, 4749830920782813369),
+UInt256(2978101408220235701, 15715264746335006810, 7873151894229134229, 5937288650978516711),
+UInt256(3722626760275294627, 5809022877636594801, 618067830931641978, 12033296832150533793),
+UInt256(2326641725172059142, 1324796289309177798, 11915507440400745996, 12132496538521471525),
+UInt256(2908302156465073927, 10879367398491248056, 5671012263646156687, 15165620673151839406),
+UInt256(3635377695581342409, 8987523229686672166, 7088765329557695859, 14345339823012411353),
+UInt256(4544222119476678011, 15846090055535728111, 18084328698801895632, 13319988760338126287),
+UInt256(2840138824672923757, 7597963275496136117, 18220234464392266626, 8324992975211328930),
+UInt256(3550173530841154696, 14109140112797558051, 8940235025208169571, 1182869182159385354),
+UInt256(4437716913551443370, 17636425140996947564, 6563607763082824059, 15313644532981395405),
+UInt256(2773573070969652106, 15634451731550480131, 13325626888781540845, 7265184823899678176),
+UInt256(3466966338712065133, 10319692627583324356, 12045347592549538152, 13693167048301985624),
+UInt256(4333707923390081416, 17511301802906543349, 15056684490686922690, 17116458810377482030),
+UInt256(2708567452118800885, 10944563626816589593, 11716270815893020633, 15309472774913314173),
+UInt256(3385709315148501106, 18292390551948124896, 810280464584112080, 5301782913359479004),
+UInt256(4232136643935626383, 13642116153080380312, 1012850580730140100, 6627228641699348755),
+UInt256(2645085402459766489, 15443851623316319551, 633031612956337562, 13365389937916868780),
+UInt256(3306356753074708112, 5469756473863235726, 14626347571477585665, 7483365385541310167),
+UInt256(4132945941343385140, 6837195592329044658, 9059562427492206273, 13965892750354025612),
+UInt256(2583091213339615712, 13496619282060428719, 10273912535610016825, 1811153941330184152),
+UInt256(3228864016674519640, 16870774102575535899, 8230704651085133127, 6875628445090118094),
+UInt256(4036080020843149551, 2641723554509868258, 5676694795429028505, 3982849537935259713),
+]
+
+private let bid_multipliers2_binary80_72: [UInt256] = [
+UInt256(2522550013026968469, 8568606249209749517, 8159620265570530719, 14018496007278007081),
+UInt256(3153187516283710586, 15322443829939574800, 14811211350390551303, 12911433990670120947),
+UInt256(3941484395354638233, 9929682750569692693, 67270114278637513, 11527606469910263279),
+UInt256(2463427747096648895, 17735266765174527693, 2347886830637842398, 287225016052832694),
+UInt256(3079284683870811119, 17557397438040771712, 7546544556724690901, 9582403306920816675),
+UInt256(3849105854838513899, 17335060779123576736, 9433180695905863626, 16589690152078408748),
+UInt256(2405691159274071187, 8528569977738541508, 5895737934941164766, 14980242363476393372),
+UInt256(3007113949092588984, 6049026453745788981, 7369672418676455958, 9501930917490715906),
+UInt256(3758892436365736230, 7561283067182236226, 13823776541772957852, 2654041610008619075),
+UInt256(2349307772728585144, 114115898561509737, 13251546357035486561, 10882148043110162730),
+UInt256(2936634715910731430, 142644873201887172, 2729374891012194489, 18214371072315091316),
+UInt256(3670793394888414287, 9401678128357134773, 3411718613765243112, 8932905785111700433),
+UInt256(4588491743610517859, 7140411642019030562, 8876334285633941794, 11166132231389625542),
+UInt256(2867807339756573662, 2156914267048200149, 10159394946948601525, 11590518663045903868),
+UInt256(3584759174695717077, 11919514870665025994, 17310929702113139811, 653090273525216122),
+UInt256(4480948968369646347, 1064335533049118781, 12415290090786648955, 14651420897188683865),
+UInt256(2800593105231028966, 16806110772651556902, 10065399315955349549, 6851295051529233464),
+UInt256(3500741381538786208, 11784266428959670320, 3358377108089411128, 13175804832838929734),
+UInt256(4375926726923482760, 14730333036199587900, 4197971385111763910, 16469756041048662167),
+UInt256(2734954204327176725, 9206458147624742437, 11847104152549628252, 5681911507228025950),
+UInt256(3418692755408970906, 16119758702958315951, 973822135404871603, 7102389384035032438),
+UInt256(4273365944261213633, 10926326341843119130, 15052335724538253216, 4266300711616402643),
+UInt256(2670853715163258520, 18358169009720419216, 14019395846263796164, 2666437944760251652),
+UInt256(3338567143954073151, 4500967188440972404, 17524244807829745205, 3333047430950314565),
+UInt256(4173208929942591439, 1014522967123827602, 3458561936077629890, 8777995307115281110),
+UInt256(2608255581214119649, 7551605882093474107, 6773287228475906585, 10097933085374438598),
+UInt256(3260319476517649561, 14051193371044230538, 3854923017167495327, 17234102375145436152),
+UInt256(4075399345647061952, 3728933658523124460, 14042025808314144967, 16930941950504407285),
+UInt256(2547124591029413720, 2330583536576952787, 17999638167051116412, 17499367746706336410),
+UInt256(3183905738786767150, 2913229420721190984, 17887861690386507612, 3427465609673368896),
+UInt256(3979882173483458937, 12864908812756264539, 3913083039273582899, 4284332012091711120),
+UInt256(2487426358427161836, 1123038980331583481, 139833890332295360, 371864498343625498),
+UInt256(3109282948033952295, 1403798725414479351, 4786478381342757104, 464830622929531872),
+UInt256(3886603685042440368, 15589806462050262901, 1371411958251058476, 581038278661914840),
+UInt256(2429127303151525230, 9743629038781414313, 3162975483120605499, 9586520961018472583),
+UInt256(3036409128939406538, 2956164261621992083, 8565405372328144778, 7371465182845702825),
+UInt256(3795511411174258172, 12918577363882265912, 6095070696982793068, 18437703515411904339),
+UInt256(2372194631983911357, 17297482889281192003, 3809419185614245668, 2300192660277664404),
+UInt256(2965243289979889197, 7786795556319326292, 150087963590419181, 2875240825347080505),
+UInt256(3706554112474861496, 14345180463826545769, 187609954488023976, 8205737050111238535),
+UInt256(2316596320296788435, 8965737789891591105, 11646471267623484745, 5128585656319524085),
+UInt256(2895745400370985544, 6595486218937100978, 723031029247192219, 11022418088826793010),
+UInt256(3619681750463731930, 8244357773671376222, 10127160823413766082, 9166336592606103358),
+UInt256(4524602188079664913, 1082075180234444470, 3435578992412431795, 2234548703902853390),
+UInt256(2827876367549790570, 12205512033714997553, 15982294925539933583, 17537494004435141033),
+UInt256(3534845459437238213, 6033518005288971134, 6142810601642753267, 17310181487116538387),
+UInt256(4418556824296547766, 12153583525038601821, 16901885288908217392, 17026040840468285079),
+UInt256(2761598015185342354, 2984303684721738234, 12869521314781329822, 10641275525292678175),
+UInt256(3451997518981677942, 12953751642756948601, 6863529606621886470, 4078222369761071910),
+UInt256(4314996898727097428, 6968817516591409943, 13191098026704745991, 14321149999056115696),
+]
+
+private let bid_multipliers2_binary80_73: [UInt256] = [
+UInt256(2696873061704435892, 13578882984724407022, 15161965294331548100, 15868247777051154166),
+UInt256(3371091327130544865, 16973603730905508778, 9729084581059659318, 1388565647604391091),
+UInt256(4213864158913181082, 7381946608349722261, 2937983689469798339, 10959079096360264672),
+UInt256(2633665099320738176, 9225402648645964317, 4142082815132317914, 4543581426011471468),
+UInt256(3292081374150922720, 11531753310807455396, 9789289537342785296, 14902848819369115143),
+UInt256(4115101717688653400, 14414691638509319245, 12236611921678481621, 181816950501842313),
+UInt256(2571938573555408375, 9009182274068324528, 9953725460262744965, 2419478603277345398),
+UInt256(3214923216944260469, 6649791824158017756, 12442156825328431206, 7636034272524069651),
+UInt256(4018654021180325586, 12923925798624910099, 15552696031660539008, 321670803800311256),
+UInt256(2511658763237703491, 12689139642567956716, 7414592010574142928, 201044252375194535),
+UInt256(3139573454047129364, 11249738534782557991, 9268240013217678660, 251305315468993169),
+UInt256(3924466817558911705, 14062173168478197489, 6973613998094710421, 314131644336241461),
+UInt256(2452791760974319816, 1871329202657791574, 15887723794877663773, 2502175286923844865),
+UInt256(3065989701217899770, 2339161503322239468, 10636282706742303908, 7739405127082193985),
+UInt256(3832487126522374712, 12147323916007575143, 13295353383427879885, 9674256408852742481),
+UInt256(2395304454076484195, 7592077447504734464, 15227124892283506784, 8352253264746658003),
+UInt256(2994130567595605244, 4878410790953530177, 587162041644831864, 10440316580933322504),
+UInt256(3742663209494506555, 6098013488691912721, 5345638570483427734, 13050395726166653129),
+UInt256(2339164505934066597, 1505415421218751498, 14870239152620612094, 3544811310426770302),
+UInt256(2923955632417583246, 6493455294950827277, 9364426903920989309, 13654386174888238686),
+UInt256(3654944540521979057, 17340191155543309904, 16317219648328624541, 3232924663328134645),
+UInt256(4568680675652473822, 7840180889146973669, 1949780486701229060, 8652841847587556210),
+UInt256(2855425422282796139, 288427037289470639, 3524455813401962114, 14631398191596998439),
+UInt256(3569281777853495173, 14195591851894002010, 18240627822034616355, 9065875702641472241),
+UInt256(4461602222316868967, 3909431759585338801, 13577412740688494636, 6720658609874452397),
+UInt256(2788501388948043104, 9360923877381918607, 1568353935289227291, 13423783668026308556),
+UInt256(3485626736185053880, 11701154846727398258, 15795500474393697826, 12168043566605497791),
+UInt256(4357033420231317350, 14626443558409247823, 10521003556137346475, 5986682421402096431),
+UInt256(2723145887644573344, 4529841205578391985, 13493156250226923403, 1435833504162616318),
+UInt256(3403932359555716680, 5662301506972989982, 3031387257501490541, 15629849935485434109),
+UInt256(4254915449444645850, 7077876883716237477, 13012606108731638985, 5702254364074628924),
+UInt256(2659322155902903656, 9035359070750036327, 10438721827170968317, 15093124023615112838),
+UInt256(3324152694878629570, 11294198838437545409, 8436716265536322493, 5031346974236727335),
+UInt256(4155190868598286963, 4894376511192155953, 15157581350347791020, 10900869736223297073),
+UInt256(2596994292873929352, 753142310281403519, 2555959316326287531, 16036415621994336479),
+UInt256(3246242866092411690, 941427887851754398, 17030007200690023126, 15433833509065532694),
+UInt256(4057803582615514612, 10400156896669468806, 12064136964007753100, 10068919849477140060),
+UInt256(2536127239134696632, 15723470097273193812, 2928399584077457783, 15516446942777988345),
+UInt256(3170159048918370791, 1207593547881940649, 3660499480096822229, 14783872660045097528),
+UInt256(3962698811147963488, 15344549990134589523, 9187310368548415691, 4644782769774208197),
+UInt256(2476686756967477180, 9590343743834118452, 3436225971129065855, 597146221895186172),
+UInt256(3095858446209346475, 11987929679792648065, 4295282463911332318, 14581490832651146426),
+UInt256(3869823057761683094, 10373226081313422177, 9980789098316553302, 9003491503959157225),
+UInt256(2418639411101051934, 1871580282393500956, 17767208232516315574, 1015496171547085362),
+UInt256(3023299263876314917, 11562847389846652004, 3762266216935842851, 10492742251288632510),
+UInt256(3779124079845393647, 618501182026151293, 4702832771169803564, 8504241795683402733),
+UInt256(2361952549903371029, 7304092266407426414, 5245113491194821179, 14538523159156902517),
+UInt256(2952440687379213786, 13741801351436670921, 15779763900848302282, 13561467930518740242),
+UInt256(3690550859224017233, 7953879652441062844, 5889646820778214141, 7728462876293649494),
+UInt256(2306594287015010770, 16500389828844134037, 12904401299841159646, 7136132306897224886),
+]
+
+private let bid_multipliers2_binary80_74: [UInt256] = [
+UInt256(2883242858768763463, 11402115249200391739, 2295443569519285845, 18143537420476306915),
+UInt256(3604053573460954329, 9640958043073101769, 16704362517181271019, 8844363720313219932),
+UInt256(4505066966826192911, 16662883572268765116, 7045395091194425062, 6443768631964137011),
+UInt256(2815666854266370569, 17331831260309060053, 13626743968851291471, 17862413450259749344),
+UInt256(3519583567832963212, 7829731020104161355, 3198371905781950627, 17716330794397298776),
+UInt256(4399479459791204015, 9787163775130201693, 17833022937509601996, 17533727474569235565),
+UInt256(2749674662369502509, 13034506387097457914, 13451482345157195200, 1735207634750996421),
+UInt256(3437093327961878137, 2458074928589658681, 7590980894591718192, 2169009543438745526),
+UInt256(4296366659952347671, 7684279679164461255, 14100412136667035644, 2711261929298431907),
+UInt256(2685229162470217294, 11720203827118870140, 15730286613057979133, 10917910742666295750),
+UInt256(3356536453087771618, 5426882747043811868, 1216114192612922300, 18259074446760257591),
+UInt256(4195670566359714522, 16006975470659540643, 1520142740766152876, 4377098984740770373),
+UInt256(2622294103974821576, 14616045687589600805, 17090990277474703211, 11959058902317757291),
+UInt256(3277867629968526970, 18270057109487001007, 7528679791561215302, 10337137609469808710),
+UInt256(4097334537460658713, 13614199350003975451, 4799163721024131224, 3698049974982485079),
+UInt256(2560834085912911696, 1591345566111402801, 693634316426388063, 2311281234364053175),
+UInt256(3201042607391139620, 1989181957639253501, 5478728913960372982, 16724159598237230180),
+UInt256(4001303259238924525, 2486477447049066876, 11460097160877854132, 11681827460941761917),
+UInt256(2500814537024327828, 3859891413619360749, 16385932762403434640, 16524514199943377007),
+UInt256(3126018171280409785, 4824864267024200937, 6647357897722129589, 2208898676219669642),
+UInt256(3907522714100512231, 10642766352207639075, 12920883390580049890, 7372809363701974956),
+UInt256(2442201696312820144, 13569257997770856278, 5769709109898837229, 9219691870741122252),
+UInt256(3052752120391025180, 16961572497213570347, 16435508424228322344, 16136300856853790719),
+UInt256(3815940150488781476, 2755221547807411318, 15932699511858015027, 1723631997357686782),
+UInt256(2384962594055488422, 10945385504234407882, 5346251176483871487, 17218171062844411903),
+UInt256(2981203242569360528, 4458359843438234044, 15906186007459615167, 16911027810128126975),
+UInt256(3726504053211700660, 5572949804297792556, 1435988435614967343, 16527098744232770815),
+UInt256(2329065033257312912, 12706465664540896155, 10120864809114130397, 17246965742786563615),
+UInt256(2911331291571641140, 15883082080676120194, 8039394992965275093, 7723649123201040807),
+UInt256(3639164114464551426, 1407108527135598627, 825871704351818058, 14266247422428688913),
+UInt256(4548955143080689282, 10982257695774274091, 14867397685721936285, 8609437241181085333),
+UInt256(2843096964425430801, 11475597078286309211, 6986280544362516226, 7686741284951872285),
+UInt256(3553871205531788502, 509438292575722802, 4121164662025757379, 385054569335064548),
+UInt256(4442339006914735627, 9860169902574429310, 14374827864386972531, 14316376266950994397),
+UInt256(2776461879321709767, 3856763179895324367, 4372581396814469928, 6641892157630677546),
+UInt256(3470577349152137209, 209267956441767555, 854040727590699506, 8302365197038346933),
+UInt256(4338221686440171511, 4873270963979597347, 14902608964770538095, 1154584459443157858),
+UInt256(2711388554025107194, 9963323380128330198, 7008287593767892357, 7639144314793055517),
+UInt256(3389235692531383993, 3230782188305636939, 17983731529064641254, 14160616411918707301),
+UInt256(4236544615664229991, 8650163753809434078, 17867978392903413664, 8477398478043608318),
+UInt256(2647840384790143744, 12323881373771978155, 6555800477137245636, 5298374048777255199),
+UInt256(3309800480987679680, 15404851717214972694, 3583064577994169141, 6622967560971568998),
+UInt256(4137250601234599601, 809320572809164251, 13702202759347487234, 12890395469641849152),
+UInt256(2585781625771624750, 12035040404074197417, 6258033715378485569, 12668183186953543624),
+UInt256(3232227032214530938, 5820428468237970963, 12434228162650494866, 2000170928409765818),
+UInt256(4040283790268163672, 16498907622152239512, 10931099184885730678, 11723585697366983080),
+UInt256(2525177368917602295, 10311817263845149695, 6831936990553581674, 2715555042426976521),
+UInt256(3156471711147002869, 8278085561379049215, 3928235219764589188, 12617815839888496460),
+UInt256(3945589638933753586, 14959292970151199423, 298608006278348581, 15772269799860620574),
+UInt256(2465993524333595991, 13961244124771887543, 7104159031565049719, 12163511634126581811),
+]
+
+private let bid_multipliers2_binary80_75: [UInt256] = [
+UInt256(3082491905416994989, 12839869137537471525, 4268512771028924245, 10592703524230839360),
+UInt256(3853114881771243737, 2214778366639675694, 9947326982213543210, 17852565423715937104),
+UInt256(2408196801107027335, 12913451525218267069, 1605393345456076602, 15769539408249848594),
+UInt256(3010246001383784169, 11530128388095445932, 6618427700247483657, 10488552223457534934),
+UInt256(3762807501729730212, 577602429837143703, 8273034625309354571, 17722376297749306572),
+UInt256(2351754688581081382, 9584373555502990622, 12088175668459428463, 8770642176879622656),
+UInt256(2939693360726351728, 2757094907523962470, 5886847548719509771, 6351616702672140415),
+UInt256(3674616700907939660, 3446368634404953087, 16581931472754163022, 3327834859912787615),
+UInt256(4593270876134924575, 4307960793006191359, 16115728322515315873, 13383165611745760327),
+UInt256(2870794297584327859, 9610004523269951455, 16989859229213154277, 1446949479700018348),
+UInt256(3588492871980409824, 7400819635660051415, 16625638018089054942, 6420372868052410839),
+UInt256(4485616089975512280, 9251024544575064269, 16170361504183930773, 17248838121920289357),
+UInt256(2803510056234695175, 5781890340359415168, 12412318949328650685, 13086366835413874800),
+UInt256(3504387570293368969, 2615676907021881056, 15515398686660813357, 2522900488985179788),
+UInt256(4380484462866711211, 7881282152204739225, 947504284616465080, 7765311629658862639),
+UInt256(2737802789291694507, 2619958335914268063, 12121405223953760435, 4853319768536789150),
+UInt256(3422253486614618133, 17110005975174998791, 10540070511514812640, 1454963692243598533),
+UInt256(4277816858268272667, 7552449413686584777, 8563402120966127896, 1818704615304498166),
+UInt256(2673635536417670417, 2414437874340421533, 16881341371672299695, 1136690384565311354),
+UInt256(3342044420522088021, 7629733361352914821, 7266618659308210906, 15255921035988802904),
+UInt256(4177555525652610026, 14148852720118531430, 13694959342562651537, 9846529258131227822),
+UInt256(2610972203532881266, 13454718968501470048, 3947663570674269306, 17683295832400487149),
+UInt256(3263715254416101583, 7595026673772061752, 4934579463342836633, 12880747753645833128),
+UInt256(4079644068020126979, 4882097323787689286, 6168224329178545792, 2265876636775127698),
+UInt256(2549777542512579362, 745467818153611851, 17690198261018754832, 1416172897984454812),
+UInt256(3187221928140724202, 10155206809546790622, 17501061807846055636, 1770216122480568514),
+UInt256(3984027410175905253, 3470636475078712470, 12652955222952793737, 2212770153100710643),
+UInt256(2490017131359940783, 4474990806137889246, 3296410995918108181, 12912196391756413912),
+UInt256(3112521414199925979, 982052489244973653, 13343885781752411035, 2305187434413353678),
+UInt256(3890651767749907473, 15062623666838380779, 2844799171908350081, 16716542348298855809),
+UInt256(2431657354843692171, 2496610764132906130, 17918900546938576465, 3530309940045703025),
+UInt256(3039571693554615213, 16955821510448296375, 13175253646818444773, 9024573443484516685),
+UInt256(3799464616943269017, 7359718832778206757, 11857381040095668062, 15892402822783033760),
+UInt256(2374665385589543135, 16129039316554848983, 9716706159273486491, 5321065745812008196),
+UInt256(2968331731986928919, 15549613127266173325, 7534196680664470210, 2039646163837622341),
+UInt256(3710414664983661149, 14825330390655328752, 14029431869257975666, 11772929741651803734),
+UInt256(2319009165614788218, 11571674503373274422, 8768394918286234791, 11969767106959765238),
+UInt256(2898761457018485273, 5241221092361817220, 1737121611003017681, 10350522865272318644),
+UInt256(3623451821273106591, 11163212383879659429, 2171402013753772101, 17549839600017786208),
+UInt256(4529314776591383239, 9342329461422186382, 7325938535619603031, 8102241444740069048),
+UInt256(2830821735369614524, 12756484941029948344, 18413769640044415606, 11981429930603625011),
+UInt256(3538527169212018155, 15945606176287435431, 4570467976345967892, 5753415376399755456),
+UInt256(4423158961515022694, 15320321701931906385, 1101398952005071961, 7191769220499694320),
+UInt256(2764474350946889184, 4963515045280053586, 12217589391071639735, 16024070808880778710),
+UInt256(3455592938683611480, 6204393806600066983, 6048614701984773861, 15418402492673585484),
+UInt256(4319491173354514350, 7755492258250083729, 2949082359053579423, 5437945060559818142),
+UInt256(2699681983346571469, 235496642978914426, 13372391520476956899, 10316244690490968195),
+UInt256(3374602479183214336, 4906056822151030937, 7492117363741420316, 8283619844686322340),
+UInt256(4218253098979017920, 6132571027688788671, 13976832723104163299, 10354524805857902925),
+UInt256(2636408186861886200, 3832856892305492919, 15653049479581183918, 4165734994447495376),
+]
+
+private let bid_multipliers2_binary80_76: [UInt256] = [
+UInt256(3295510233577357750, 4791071115381866149, 14954625831049091993, 14430540779914145028),
+UInt256(4119387791971697187, 15212210931082108495, 4858224233529201280, 4203117919610517573),
+UInt256(2574617369982310742, 7201788822712623857, 9953919173596832656, 2626948699756573483),
+UInt256(3218271712477888427, 18225608065245555629, 17054084985423428724, 3283685874695716854),
+UInt256(4022839640597360534, 18170324063129556633, 7482548176497122193, 4104607343369646067),
+UInt256(2514274775373350334, 6744766521028584991, 16205807656379171130, 14094594635674498552),
+UInt256(3142843469216687917, 17654330188140507047, 15645573552046576009, 8394871257738347382),
+UInt256(3928554336520859897, 8232854679893470097, 14945280921630832107, 15105275090600322132),
+UInt256(2455346460325537435, 16674749221001888571, 2423271548378188211, 7134953922411507380),
+UInt256(3069183075406921794, 16231750507824972809, 16864147490754898976, 4307006384586996321),
+UInt256(3836478844258652243, 11066316097926440204, 7245126308161460008, 5383757980733745402),
+UInt256(2397799277661657652, 4610604551990331175, 13751575979455688313, 3364848737958590876),
+UInt256(2997249097077072065, 5763255689987913969, 12577783955892222487, 8817746940875626499),
+UInt256(3746561371346340081, 11815755630912280366, 1887171889583114397, 6410497657667145220),
+UInt256(2341600857091462551, 467318241679093372, 15014540486271610210, 6312404045255659715),
+UInt256(2927001071364328188, 14419205857381030428, 321431534129961146, 17113877093424350451),
+UInt256(3658751339205410235, 18024007321726288035, 401789417662451433, 12168974329925662256),
+UInt256(4573439174006762794, 17918323133730472139, 14337294827360228004, 1376159857124914108),
+UInt256(2858399483754226746, 15810637977008932991, 6654966257886448550, 10083471947557847125),
+UInt256(3572999354692783433, 10539925434406390431, 3707021803930672784, 3380967897592533099),
+UInt256(4466249193365979291, 17786592811435375943, 22091236485953076, 4226209871990666373),
+UInt256(2791405745853737057, 8810777497933416012, 6931336050444802528, 11864753206848942291),
+UInt256(3489257182317171321, 15625157890844157919, 8664170063056003160, 14830941508561177864),
+UInt256(4361571477896464152, 5696389308273033687, 6218526560392616047, 91932811991920714),
+UInt256(2725982173685290095, 3560243317670646054, 10804108127886466885, 6974987035136032302),
+UInt256(3407477717106612618, 18285362202370471280, 4281763123003307798, 13330419812347428282),
+UInt256(4259347146383265773, 13633330716108313292, 5352203903754134748, 7439652728579509544),
+UInt256(2662091966489541108, 10826674706781389759, 12568499476701110025, 13873154992216969273),
+UInt256(3327614958111926385, 13533343383476737199, 11098938327448999628, 3506385684989047880),
+UInt256(4159518697639907982, 3081621174063757787, 9261986890883861631, 4382982106236309849),
+UInt256(2599699186024942488, 15761071289072012329, 3482898797588719567, 9656892844038775512),
+UInt256(3249623982531178111, 1254595037630463795, 8965309515413287363, 7459430036621081486),
+UInt256(4062029978163972638, 15403301852320243456, 6594950875839221300, 4712601527348963953),
+UInt256(2538768736352482899, 5015377639272764256, 4121844297399513312, 12168747991447878279),
+UInt256(3173460920440603624, 1657536030663567416, 5152305371749391640, 15210934989309847849),
+UInt256(3966826150550754530, 2071920038329459270, 6440381714686739551, 566924662927758195),
+UInt256(2479266344094221581, 5906636042383299947, 17860296626961375931, 7271856941970930728),
+UInt256(3099082930117776976, 11994981071406512838, 17713684765274332010, 4478135159036275506),
+UInt256(3873853662647221220, 14993726339258141048, 12918733919738139204, 14821040985650120190),
+UInt256(2421158539154513263, 147706925181562347, 8074208699836337003, 39778579176549311),
+UInt256(3026448173943141578, 14019691711759116646, 5481074856368033349, 13884781279252850351),
+UInt256(3783060217428926973, 8301242602844119999, 16074715607314817495, 3520918543783899226),
+UInt256(2364412635893079358, 7494119635991268951, 16964226282212842790, 9118103117506018872),
+UInt256(2955515794866349198, 144277508134310381, 16593596834338665584, 2174256860027747782),
+UInt256(3694394743582936497, 9403718922022663785, 6906937987641168268, 2717821075034684728),
+UInt256(2308996714739335310, 17406539372332634625, 15846051288344199927, 10922010208751453763),
+UInt256(2886245893424169138, 12534802178561017474, 5972506055148086197, 9040826742511929300),
+UInt256(3607807366780211423, 6445130686346496034, 16689004605789883554, 15912719446567299529),
+UInt256(4509759208475264279, 3444727339505732139, 11637883720382578635, 10667527271354348603),
+UInt256(2818599505297040174, 9070483614832164443, 4967834316025417695, 4361361535382773925),
+]
+
+private let bid_multipliers2_binary80_77: [UInt256] = [
+UInt256(3523249381621300218, 2114732481685429746, 1598106876604384215, 840015900801079502),
+UInt256(4404061727026625272, 11866787638961562990, 11221005632610256076, 14885077931283513089),
+UInt256(2752538579391640795, 7416742274350976869, 2401442501954022144, 79801670197419873),
+UInt256(3440673224239550994, 4659241824511333182, 7613489145869915584, 99752087746774841),
+UInt256(4300841530299438742, 15047424317493942286, 293489395482618672, 124690109683468551),
+UInt256(2688025956437149214, 4792954180006326024, 14018488927458800382, 77931318552167845),
+UInt256(3360032445546436517, 15214564761862683338, 17523111159323500477, 9320786185044985614),
+UInt256(4200040556933045647, 5183147897046190461, 12680516912299599788, 16262668749733619921),
+UInt256(2625025348083153529, 10156996463294950894, 10231166079400943820, 940795931728736643),
+UInt256(3281281685103941911, 17307931597546076522, 3565585562396403967, 1175994914660920804),
+UInt256(4101602106379927389, 17023228478505207748, 13680353989850280766, 15305051698608314716),
+UInt256(2563501316487454618, 12945360808279448794, 17773593280511201287, 4953971293202808794),
+UInt256(3204376645609318273, 6958328973494535185, 12993619563784225801, 1580778098076123088),
+UInt256(4005470807011647841, 13309597235295556886, 2406966399448118539, 6587658641022541764),
+UInt256(2503419254382279901, 1400969244418641197, 15339412054937237799, 1811443641425394651),
+UInt256(3129274067977849876, 6362897573950689401, 5339207013389383536, 16099362607063907025),
+UInt256(3911592584972312345, 7953621967438361751, 11285694785164117325, 1677459185120332166),
+UInt256(2444745365607695215, 16500228775717445854, 13971088268368655184, 3354254999913901556),
+UInt256(3055931707009619019, 16013599951219419414, 8240488298606043172, 4192818749892376944),
+UInt256(3819914633762023774, 15405313920596886364, 1077238336402778157, 5241023437365471180),
+UInt256(2387446646101264859, 5016635181945666073, 9896645997106512156, 5581482657567113440),
+UInt256(2984308307626581074, 1659107959004694687, 16982493514810528099, 6976853321958891800),
+UInt256(3730385384533226342, 11297256985610644167, 16616430875085772220, 4109380634021226846),
+UInt256(2331490865333266464, 2449099597579264700, 17302798324569689493, 11791734933118042587),
+UInt256(2914363581666583080, 3061374496974080876, 3181753832002560251, 904610611115389521),
+UInt256(3642954477083228850, 3826718121217601095, 3977192290003200313, 14965821319176400613),
+UInt256(4553693096354036062, 14006769688376777177, 359804344076612488, 4872218593688337055),
+UInt256(2846058185221272539, 4142545036808097831, 11754092761116352565, 3045136621055210659),
+UInt256(3557572731526590674, 566495277582734385, 10080929932968052802, 8418106794746401228),
+UInt256(4446965914408238342, 9931491133833193789, 17212848434637453907, 1299261456578225727),
+UInt256(2779353696505148964, 1595495940218358214, 13063873280862102643, 16952939474857248744),
+UInt256(3474192120631436205, 1994369925272947768, 7106469564222852496, 16579488325144173025),
+UInt256(4342740150789295256, 7104648425018572614, 8883086955278565621, 2277616332720664666),
+UInt256(2714212594243309535, 4440405265636607884, 940243328621715609, 3729353217164109368),
+UInt256(3392765742804136919, 938820563618371951, 1175304160777144511, 9273377539882524614),
+UInt256(4240957178505171148, 15008583759805128650, 15304188256253594351, 6980035906425767863),
+UInt256(2650598236565731968, 156992813023429598, 14176803678585884373, 11280051469157186771),
+UInt256(3313247795707164960, 196241016279286998, 8497632561377579659, 265006281164319751),
+UInt256(4141559744633956200, 245301270349108748, 1398668664867198765, 14166315906737563401),
+UInt256(2588474840396222625, 153313293968192967, 10097539952396775036, 11159790450924671078),
+UInt256(3235593550495278281, 4803327635887629113, 8010238922068580891, 13949738063655838847),
+UInt256(4044491938119097851, 10615845563286924295, 14624484671013114018, 12825486561142410655),
+UInt256(2527807461324436157, 4329060467840633732, 16057831947024278117, 12627615119141394564),
+UInt256(3159759326655545196, 10023011603228180070, 1625545860070796031, 1949460843644579492),
+UInt256(3949699158319431495, 12528764504035225087, 11255304361943270846, 16271884109837888077),
+UInt256(2468561973949644684, 14748006842663097535, 13952094253855626135, 5558241550221292144),
+UInt256(3085702467437055855, 18435008553328871919, 12828431798892144765, 2336115919349227276),
+UInt256(3857128084296319819, 18432074673233701995, 11423853730187793052, 7531830917613921999),
+UInt256(2410705052685199887, 9214203661557369795, 4834065572153676705, 13930766360363477058),
+UInt256(3013381315856499859, 6906068558519324340, 1430895946764707978, 3578399895172182610),
+]
+
+private let bid_multipliers2_binary80_78: [UInt256] = [
+UInt256(3766726644820624824, 4020899679721767521, 1788619933455884972, 13696371905820004071),
+UInt256(2354204153012890515, 2513062299826104700, 12647102504478397867, 17783604477992278352),
+UInt256(2942755191266113143, 16976385930064794587, 15808878130597997334, 17617819579062960036),
+UInt256(3678443989082641429, 16608796394153605330, 15149411644820108764, 12798902436973924237),
+UInt256(4598054986353301787, 6925937437409842951, 9713392519170360147, 15998628046217405296),
+UInt256(2873784366470813617, 2022867889167457892, 12988399352122556948, 7693299519672184358),
+UInt256(3592230458088517021, 7140270879886710269, 16235499190153196185, 9616624399590230448),
+UInt256(4490288072610646276, 13537024618285775741, 6459315932409331519, 16632466517915175964),
+UInt256(2806430045381653922, 17684012423283385646, 6342915466969526151, 17312820601338066834),
+UInt256(3508037556727067403, 12881643492249456249, 17152016370566683497, 17029339733245195638),
+UInt256(4385046945908834254, 11490368346884432408, 7604962407926190660, 7451616611274330835),
+UInt256(2740654341193021409, 2569794198375382351, 4753101504953869162, 13880632418901232580),
+UInt256(3425817926491276761, 7823928766396615843, 1329690862764948549, 8127418486771764917),
+UInt256(4282272408114095951, 14391596976423157707, 15497171633738349398, 14770959126892094050),
+UInt256(2676420255071309969, 15912277137905555423, 7379889261872774422, 4620163435880170878),
+UInt256(3345525318839137462, 6055288367099780567, 4613175558913580123, 14998576331704989405),
+UInt256(4181906648548921827, 16792482495729501517, 1154783430214587250, 14136534396203848852),
+UInt256(2613691655343076142, 8189458550617244496, 3027582653097810983, 13447020016054793437),
+UInt256(3267114569178845178, 1013451151416779812, 3784478316372263729, 12197089001641103892),
+UInt256(4083893211473556472, 10490185976125750573, 4730597895465329662, 1411303196769216152),
+UInt256(2552433257170972795, 6556366235078594108, 5262466693879524990, 14717122553262923807),
+UInt256(3190541571463715994, 3583771775420854731, 6578083367349406238, 9173031154723878951),
+UInt256(3988176964329644992, 13703086756130844222, 3610918190759369894, 2242916906550072881),
+UInt256(2492610602706028120, 8564429222581777638, 16091881924506769895, 15236881121875959263),
+UInt256(3115763253382535150, 10705536528227222048, 10891480368778686561, 14434415383917561174),
+UInt256(3894704066728168938, 4158548623429251752, 13614350460973358202, 4207961174614787756),
+UInt256(2434190041705105586, 7210778908070670249, 8508969038108348876, 7241661752561630252),
+UInt256(3042737552131381982, 18236845671943113619, 15247897316062823999, 9052077190702037814),
+UInt256(3803421940164227478, 13572685053074116216, 14448185626651142095, 6703410469950159364),
+UInt256(2377138712602642174, 3871242139743934731, 9030116016656963809, 11107160571359931459),
+UInt256(2971423390753302717, 14062424711534694222, 6675959002393816858, 48892658917750611),
+UInt256(3714279238441628397, 3742972834136204065, 17568320789847046880, 9284487860501964072),
+UInt256(2321424524026017748, 4645201030548821493, 4062671466013322444, 5802804912813727545),
+UInt256(2901780655032522185, 5806501288186026866, 9690025350944040959, 7253506141017159431),
+UInt256(3627225818790652731, 11869812628659921487, 2889159651825275391, 4455196657844061385),
+UInt256(4534032273488315914, 10225579767397513954, 17446507620063757951, 957309803877688827),
+UInt256(2833770170930197446, 11002673373050834125, 15515753280967236623, 7515847655064637373),
+UInt256(3542212713662746808, 4529969679458766849, 5559633545926882067, 4783123550403408812),
+UInt256(4427765892078433510, 5662462099323458561, 11561227950835990488, 1367218419576873111),
+UInt256(2767353682549020943, 17374096867359325313, 308238441631412199, 854511512235545695),
+UInt256(3459192103186276179, 17105935065771768737, 4996984070466653152, 14903197445576595830),
+UInt256(4323990128982845224, 16770732813787323017, 10857916106510704345, 182252733261193171),
+UInt256(2702493830614278265, 10481708008617076885, 18315412612637659975, 11643123004356715492),
+UInt256(3378117288267847831, 17713821029198734011, 9059207710514911257, 9942217737018506461),
+UInt256(4222646610334809789, 17530590268071029610, 6712323619716251167, 17039458189700520980),
+UInt256(2639154131459256118, 13262461926758087458, 8806888280750044883, 17567190396203907469),
+UInt256(3298942664324070148, 7354705371592833515, 1785238314082780296, 17347301976827496432),
+UInt256(4123678330405087685, 9193381714491041893, 16066605947885639083, 3237383397324818924),
+UInt256(2577298956503179803, 8051706580770595135, 12347471726642218378, 18164265687823869492),
+UInt256(3221623695628974754, 5452947207535856015, 10822653639875385069, 13481960072925061056),
+]
+
+private let bid_multipliers2_binary80_79: [UInt256] = [
+UInt256(4027029619536218442, 16039556046274595827, 8916631031416843433, 3017392035874162608),
+UInt256(2516893512210136526, 14636408547349010296, 3267051385421833193, 13415085068489821390),
+UInt256(3146116890262670658, 9072138647331487062, 4083814231777291492, 2933798280330113026),
+UInt256(3932646112828338323, 2116801272309583019, 14328139826576390173, 3667247850412641282),
+UInt256(2457903820517711451, 17463901859689347051, 6649244382396549906, 4597872915721594754),
+UInt256(3072379775647139314, 17218191306184295910, 3699869459568299478, 14970713181506769250),
+UInt256(3840474719558924143, 12299367095875594079, 13848208861315150156, 9490019440028685754),
+UInt256(2400296699724327589, 14604633462563328155, 15572659565963050703, 15154634186872704405),
+UInt256(3000370874655409487, 4420733772921996482, 14854138439026425475, 14331606715163492602),
+UInt256(3750463593319261859, 914231197725107699, 9344301011928256036, 13302822375526977848),
+UInt256(2344039745824538661, 16712295563074049976, 3534345123241466070, 17537636021559136963),
+UInt256(2930049682280673327, 7055311398560398758, 4417931404051832588, 12698672990094145396),
+UInt256(3662562102850841659, 4207453229773110543, 14745786291919566543, 15873341237617681745),
+UInt256(4578202628563552074, 647630518789000275, 13820546846472070275, 15229990528594714277),
+UInt256(2861376642852220046, 5016455092670513076, 6331998769831349970, 7212901071158002471),
+UInt256(3576720803565275057, 15493940902692917153, 7914998462289187462, 18239498375802278897),
+UInt256(4470901004456593822, 5532368073083982729, 14505434096288872232, 13576000932898072813),
+UInt256(2794313127785371138, 17292788100959652918, 2148367282539463289, 8485000583061295508),
+UInt256(3492891409731713923, 12392613089344790339, 11908831140029104919, 15217936747254007289),
+UInt256(4366114262164642404, 10879080343253600020, 10274352906608993245, 14410734915640121207),
+UInt256(2728821413852901502, 16022797251388275820, 15644842603485396586, 11312552331488769707),
+UInt256(3411026767316126878, 10805124527380568968, 1109309180647194117, 4917318377506186325),
+UInt256(4263783459145158598, 4283033622370935402, 1386636475808992646, 10758333990310120811),
+UInt256(2664864661965724123, 16511954069263998338, 5478333815808008308, 2112272725516437603),
+UInt256(3331080827457155154, 16028256568152610018, 16071289306614786193, 2640340906895547003),
+UInt256(4163851034321443943, 10811948673335986715, 10865739596413706933, 7912112152046821658),
+UInt256(2602406896450902464, 13674996948476073553, 4485244238544872881, 7250913104242957488),
+UInt256(3253008620563628080, 17093746185595091941, 10218241316608479005, 13675327398731084764),
+UInt256(4066260775704535101, 2920438658284313310, 17384487664187986661, 3259101193131692243),
+UInt256(2541412984815334438, 4131117170641389771, 6253618771690103759, 4342781254921001604),
+UInt256(3176766231019168047, 14387268500156513022, 3205337446185241795, 816790550223864101),
+UInt256(3970957788773960059, 13372399606768253373, 13230043844586328051, 14856046243061993839),
+UInt256(2481848617983725037, 6051906745016464406, 10574620412080148984, 6979185892700052197),
+UInt256(3102310772479656296, 12176569449697968412, 3994903478245410422, 8723982365875065246),
+UInt256(3877888465599570370, 15220711812122460515, 4993629347806763028, 1681605920489055750),
+UInt256(2423680290999731481, 14124630901003925726, 815175333165532940, 10274375737160435652),
+UInt256(3029600363749664352, 3820730570972743445, 10242341203311691983, 12842969671450544565),
+UInt256(3787000454687080440, 4775913213715929306, 17414612522567002883, 11442026070885792802),
+UInt256(2366875284179425275, 2984945758572455816, 15495818845031764706, 4845423285089926549),
+UInt256(2958594105224281593, 17566240253497733483, 923029482580154266, 15280151143217183995),
+UInt256(3698242631530351992, 8122742261590003141, 14988844908507356545, 9876816892166704185),
+UInt256(2311401644706469995, 5076713913493751963, 11673871077030791792, 17702225603672659876),
+UInt256(2889252055883087494, 1734206373439802050, 9980652827861101837, 3681037930881273229),
+UInt256(3611565069853859367, 11391130003654528371, 3252443997971601488, 9212983432028979440),
+UInt256(4514456337317324209, 9627226486140772559, 17900613052746665572, 11516229290036224299),
+UInt256(2821535210823327630, 17546231599906452609, 18105412185607747838, 16421015343127415995),
+UInt256(3526919013529159538, 12709417463028289954, 8796707176727521086, 11302897142054494186),
+UInt256(4408648766911449423, 6663399791930586635, 1772511934054625550, 4905249390713341924),
+UInt256(2755405479319655889, 11082153897597698502, 17248721023279998632, 16900838924478002415),
+UInt256(3444256849149569862, 17634316714959416, 12337529242245222483, 2679304581887951403),
+]
+
+private let bid_multipliers2_binary80_80: [UInt256] = [
+UInt256(4305321061436962327, 9245414932748475078, 15421911552806528103, 17184188782642102965),
+UInt256(2690825663398101454, 12695913360608878780, 5027008702076692160, 17657647016792396209),
+UInt256(3363532079247626818, 6646519663906322667, 6283760877595865201, 3625314697280943646),
+UInt256(4204415099059533522, 17531521616737679142, 3243015078567443597, 9143329390028567461),
+UInt256(2627759436912208451, 15568887028888437367, 15861942479386815960, 8020423877981548615),
+UInt256(3284699296140260564, 14849422767683158805, 15215742080806132046, 10025529847476935769),
+UInt256(4105874120175325706, 115034385894396891, 5184619545725501346, 3308540272491393903),
+UInt256(2566171325109578566, 4683582509611385961, 934544206864744389, 6679523688734509094),
+UInt256(3207714156386973207, 15077850173869008259, 5779866277008318390, 12961090629345524271),
+UInt256(4009642695483716509, 14235626698908872420, 2613146827833010084, 6977991249827129530),
+UInt256(2506026684677322818, 11203109696031739214, 10856588804250407110, 13584616567996731765),
+UInt256(3132533355846653523, 4780515083184898210, 4347363968458233080, 7757398673141138898),
+UInt256(3915666694808316904, 1363957835553734858, 14657576997427567158, 9696748341426423622),
+UInt256(2447291684255198065, 852473647221084286, 13772671641819617378, 1448781694964126860),
+UInt256(3059114605318997581, 5677278077453743262, 7992467515419745914, 11034349155559934383),
+UInt256(3823893256648746976, 11708283615244566982, 767212357419906585, 4569564407595142170),
+UInt256(2389933285405466860, 7317677259527854363, 14314565778669605327, 14385192800815433617),
+UInt256(2987416606756833575, 9147096574409817954, 13281521204909618755, 13369804982591904117),
+UInt256(3734270758446041969, 6822184699584884539, 7378529469282247636, 12100570209812492242),
+UInt256(2333919224028776230, 15793080483309022597, 2305737909087710820, 16786228417987583459),
+UInt256(2917399030035970288, 10517978567281502438, 7493858404787026430, 2536041448774927708),
+UInt256(3646748787544962860, 13147473209101878048, 143950969129007229, 12393423847823435443),
+UInt256(4558435984431203575, 16434341511377347560, 179938711411259037, 1656721754497130592),
+UInt256(2849022490269502234, 17188992472251924081, 112461694632036898, 3341294105774400572),
+UInt256(3561278112836877793, 12262868553460129293, 4752263136717434026, 13399989669072776523),
+UInt256(4451597641046097242, 1493527636542997904, 10552014939324180437, 7526615049486194845),
+UInt256(2782248525653810776, 5545140791266761594, 6595009337077612773, 7009977415142565731),
+UInt256(3477810657067263470, 6931425989083451992, 17467133708201791774, 13374157787355595067),
+UInt256(4347263321334079337, 17887654523209090799, 3387173061542688102, 7494325197339718026),
+UInt256(2717039575833799586, 4262255049364599893, 9034512191105261920, 72267229909935862),
+UInt256(3396299469792249482, 14551190848560525674, 15904826257308965304, 90334037387419828),
+UInt256(4245374337240311853, 8965616523845881285, 10657660784781430822, 112917546734274784),
+UInt256(2653358960775194908, 7909353336617369755, 8966880999702088215, 13905631521991085452),
+UInt256(3316698700968993635, 9886691670771712194, 6596915231200222365, 12770353384061468911),
+UInt256(4145873376211242044, 7746678570037252338, 17469516075855053765, 2127883674794672427),
+UInt256(2591170860132026277, 14065046143128058519, 15530133565836796507, 3635770305960364219),
+UInt256(3238963575165032847, 3746249623627909437, 14800980938868607729, 18379770937732618986),
+UInt256(4048704468956291059, 71126011107498893, 4666168118303595950, 9139655616883610020),
+UInt256(2530440293097681911, 16185354821438044472, 5222198083153441421, 1100598742124868359),
+UInt256(3163050366372102389, 15620007508370167686, 6527747603941801776, 5987434446083473352),
+UInt256(3953812957965127987, 5689951330180545895, 17383056541782028028, 7484293057604341690),
+UInt256(2471133098728204992, 1250376572149147232, 17781939366254849373, 13901055197857489365),
+UInt256(3088916373410256240, 1562970715186434041, 3780680134109010101, 3541260942039697994),
+UInt256(3861145466762820300, 1953713393983042551, 9337536186063650530, 9038262195977010396),
+UInt256(2413215916726762687, 10444442908094177402, 12753489143930863437, 10260599890913019402),
+UInt256(3016519895908453359, 8443867616690333849, 6718489393058803488, 17437435882068662156),
+UInt256(3770649869885566699, 5943148502435529407, 13009797759750892265, 3350050778876276079),
+UInt256(2356656168678479187, 1408624804808511927, 15048652627485389521, 13622996782866142309),
+UInt256(2945820210848098983, 15595839061292803621, 14199129765929348998, 3193687923300514175),
+UInt256(3682275263560123729, 14883112808188616623, 3913854152129522535, 13215481940980418526),
+]
+
+private let bid_multipliers2_binary80_81: [UInt256] = [
+UInt256(4602844079450154662, 4768832954953607067, 280631671734515265, 11907666407798135254),
+UInt256(2876777549656346663, 16815578652128168128, 16316295859329929705, 524762477232752678),
+UInt256(3595971937070433329, 16407787296732822257, 1948625750452860515, 5267639114968328751),
+UInt256(4494964921338041662, 6674676065633864109, 7047468206493463548, 1972862875283023035),
+UInt256(2809353075836276038, 18006730596303328780, 6710510638272108669, 10456411333906665205),
+UInt256(3511691344795345048, 13285041208524385167, 8388138297840135836, 17682200185810719410),
+UInt256(4389614180994181310, 16606301510655481459, 5873486853872781892, 3656006158553847646),
+UInt256(2743508863121363319, 5767252425732288008, 1365086274456794730, 11508375885950930587),
+UInt256(3429386078901704149, 2597379513737972106, 1706357843070993413, 5162097820583887426),
+UInt256(4286732598627130186, 7858410410599853036, 11356319340693517574, 11064308294157247186),
+UInt256(2679207874141956366, 9523192525052296051, 16321071624788224292, 2303506665420891588),
+UInt256(3349009842677445458, 2680618619460594256, 15789653512557892461, 2879383331776114484),
+UInt256(4186262303346806822, 12574145311180518629, 1290322816987813960, 8210915183147531009),
+UInt256(2616413939591754264, 3247154801060436239, 3112294769831077677, 5131821989467206881),
+UInt256(3270517424489692830, 4058943501325545298, 17725426517571010808, 11026463505261396505),
+UInt256(4088146780612116037, 14297051413511707431, 12933411110108987702, 13783079381576745631),
+UInt256(2555091737882572523, 11241500142658511096, 15000910971459199170, 4002738595058078116),
+UInt256(3193864672353215654, 9440189159895750967, 304394640614447346, 14226795280677373453),
+UInt256(3992330840441519568, 2576864413014912900, 14215551356050222895, 8560122063991941008),
+UInt256(2495206775275949730, 1610540258134320562, 18108091634386165117, 12267605317636044986),
+UInt256(3119008469094937162, 11236547359522676511, 13411742506127930589, 1499448591762892520),
+UInt256(3898760586368671453, 4822312162548569831, 12152992114232525332, 6485996758131003554),
+UInt256(2436725366480419658, 5319788110806550096, 14513149099036410188, 13277120010686653030),
+UInt256(3045906708100524572, 15873107175362963428, 18141436373795512735, 16596400013358316287),
+UInt256(3807383385125655716, 1394639895494152670, 4230051393534839303, 16133813998270507454),
+UInt256(2379614615703534822, 10095021971538621226, 16478840176241438276, 17001162776560149015),
+UInt256(2974518269629418528, 3395405427568500725, 11375178183447022038, 2804709396990634653),
+UInt256(3718147837036773160, 4244256784460625907, 383914674026613835, 12729258783093069124),
+UInt256(2323842398147983225, 2652660490287891191, 16380847735762491311, 5649943730219474251),
+UInt256(2904802997684979031, 7927511631287251893, 15864373651275726235, 2450743644346954909),
+UInt256(3631003747106223789, 5297703520681676963, 5995409008812494081, 16898487610715857348),
+UInt256(4538754683882779736, 11233815419279484108, 2882575242588229698, 7288051458112657973),
+UInt256(2836721677426737335, 7021134637049677567, 11024981563472419369, 9166718179747799137),
+UInt256(3545902096783421669, 4164732277884709055, 9169540935913136307, 16070083743112136826),
+UInt256(4432377620979277086, 9817601365783274223, 6850240151464032480, 15475918660462783128),
+UInt256(2770236013112048179, 1524314835187158485, 11198929122306102156, 9672449162789239455),
+UInt256(3462795016390060223, 15740451599266111819, 163603347600463983, 12090561453486549319),
+UInt256(4328493770487575279, 15063878480655251869, 14039562239782743691, 10501515798430798745),
+UInt256(2705308606554734549, 16332453078050614274, 11080569409077908759, 4257604364805555264),
+UInt256(3381635758193418187, 6580508292281104131, 4627339724492610141, 710319437579556175),
+UInt256(4227044697741772734, 3613949346923992260, 1172488637188374772, 5499585315401833123),
+UInt256(2641902936088607958, 16093776397109658874, 9956177435097510040, 12660612858980921510),
+UInt256(3302378670110759948, 10893848459532297785, 3221849757017111742, 15825766073726151887),
+UInt256(4127973337638449935, 13617310574415372231, 8638998214698777582, 10558835555302914051),
+UInt256(2579983336024031209, 15428348136650689500, 12316902911827817845, 1987586203636933378),
+UInt256(3224979170030039012, 5450377115531198163, 15396128639784772306, 7096168772973554627),
+UInt256(4031223962537548765, 6812971394413997704, 14633474781303577478, 18093583003071719091),
+UInt256(2519514976585967978, 6563950130722442517, 9145921738314735924, 6696803358492436528),
+UInt256(3149393720732459972, 17428309700257828954, 16044088191320807809, 8371004198115545660),
+UInt256(3936742150915574966, 3338643051612734577, 10831738202296233953, 15075441266071819979),
+]
+
+private let bid_multipliers2_binary80_82: [UInt256] = [
+UInt256(2460463844322234353, 15921709962540122822, 18299051422503615981, 2504621763653805631),
+UInt256(3075579805402792942, 6067079397892989816, 13650442241274744168, 7742463222994644943),
+UInt256(3844474756753491177, 16807221284221013078, 17063052801593430210, 9678079028743306178),
+UInt256(2402796722970931986, 3586984274997051318, 6052721982568505977, 10660485411391954266),
+UInt256(3003495903713664982, 13707102380601089955, 16789274515065408279, 17937292782667330736),
+UInt256(3754369879642081228, 7910505938896586636, 16374907125404372445, 17809929959906775516),
+UInt256(2346481174776300767, 14167438248665142456, 1010944916522956970, 13437049234155428649),
+UInt256(2933101468470375959, 13097611792404040166, 1263681145653696213, 7572939505839510004),
+UInt256(3666376835587969949, 11760328722077662303, 10802973468921896074, 14077860400726775408),
+UInt256(4582971044484962437, 865352847314914167, 8892030817724982189, 8373953464053693452),
+UInt256(2864356902803101523, 2846688538785515306, 12475048288719195724, 7539563924247252360),
+UInt256(3580446128503876903, 17393418728764057845, 6370438324044218847, 9424454905309065450),
+UInt256(4475557660629846129, 17130087392527684402, 12574733923482661463, 7168882613208943908),
+UInt256(2797223537893653831, 3788775592688720895, 12470894720604051318, 11398080660896671799),
+UInt256(3496529422367067289, 124283472433513215, 10976932382327676244, 5024228789266063940),
+UInt256(4370661777958834111, 4767040358969279423, 9109479459482207401, 6280285986582579925),
+UInt256(2731663611224271319, 9896929251996881495, 12610953689817461481, 15454393787682582214),
+UInt256(3414579514030339149, 7759475546568713965, 11152006093844438948, 5482934179321064055),
+UInt256(4268224392537923936, 14311030451638280361, 104949562023384973, 6853667724151330068),
+UInt256(2667640245336202460, 8944394032273925225, 11594808522333085368, 6589385336808275245),
+UInt256(3334550306670253075, 11180492540342406532, 658452597634192998, 8236731671010344056),
+UInt256(4168187883337816344, 9363929657000620261, 823065747042741248, 1072542551908154262),
+UInt256(2605117427086135215, 5852456035625387663, 2820259101115407232, 670339094942596414),
+UInt256(3256396783857669019, 2703884026104346674, 17360381931676422752, 837923868678245517),
+UInt256(4070495979822086273, 17214913087912597055, 12477105377740752632, 1047404835847806896),
+UInt256(2544059987388803921, 3841791652304291303, 14715719888729052251, 654628022404879310),
+UInt256(3180074984236004901, 9413925583807752033, 13782963842483927409, 14653343083288262850),
+UInt256(3975093730295006126, 16379092998187077946, 3393646747822745550, 4481620798828164850),
+UInt256(2484433581434378829, 5625247105439535812, 6732715235816603872, 16636071054549766744),
+UInt256(3105541976792973536, 11643244900226807669, 8415894044770754841, 2348344744477656813),
+UInt256(3881927470991216920, 14554056125283509586, 15131553574390831455, 7547116949024458921),
+UInt256(2426204669369510575, 9096285078302193491, 14068907002421657563, 11634477120781368682),
+UInt256(3032755836711888219, 6758670329450353960, 12974447734599684050, 9931410382549322948),
+UInt256(3790944795889860274, 3836651893385554546, 16218059668249605063, 3190890941331877877),
+UInt256(2369340497431162671, 7009593451793359495, 14747973311083391068, 8911835865973505529),
+UInt256(2961675621788953339, 4150305796314311465, 13823280620426850931, 11139794832466881911),
+UInt256(3702094527236191674, 576196226965501428, 3444042720251399952, 9313057522156214485),
+UInt256(2313809079522619796, 4971808660280826296, 11375898737011900778, 5820660951347634053),
+UInt256(2892261349403274745, 6214760825351032870, 14219873421264875972, 16499198226039318374),
+UInt256(3615326686754093431, 12380137050116178992, 8551469739726319158, 2177253708839596352),
+UInt256(4519158358442616789, 10863485294217835836, 10689337174657898947, 11944939172904271248),
+UInt256(2824473974026635493, 9095521318099841349, 15904207771015962650, 5159743973851475578),
+UInt256(3530592467533294366, 15981087666052189591, 6045201658487789600, 15673052004169120280),
+UInt256(4413240584416617958, 10752987545710461181, 2944816054682349097, 1144570931501848734),
+UInt256(2758275365260386224, 2108931197641650334, 4146353043390162137, 12244571878257125219),
+UInt256(3447844206575482780, 2636163997052062917, 14406313341092478480, 1470656792539242812),
+UInt256(4309805258219353475, 3295204996315078647, 4172833621083434388, 1838320990674053515),
+UInt256(2693628286387095921, 18200404187192781818, 9525550040818228348, 10372322656026059255),
+UInt256(3367035357983869902, 8915447178708813561, 2683565514168009627, 12965403320032574069),
+UInt256(4208794197479837378, 1920936936531241143, 7966142911137399938, 11595068131613329682),
+]
+
+private let bid_multipliers2_binary80_83: [UInt256] = [
+UInt256(2630496373424898361, 5812271603759413618, 11896368347101956817, 11858603600685718955),
+UInt256(3288120466781122951, 11877025523126654927, 5647088397022670214, 988196445574984982),
+UInt256(4110150583476403689, 10234595885480930755, 2447174477850949863, 10458617593823507035),
+UInt256(2568844114672752305, 17925837474494051481, 17670385113152701328, 13454165023780773753),
+UInt256(3211055143340940382, 8572238787835400640, 8252923336158712948, 16817706279725967191),
+UInt256(4013818929176175478, 1491926447939474992, 10316154170198391186, 2575388775947907373),
+UInt256(2508636830735109673, 14767512085244335582, 6447596356373994491, 6221304003394830012),
+UInt256(3135796038418887092, 4624332051273255765, 17282867482322268922, 3164943985816149611),
+UInt256(3919745048023608865, 5780415064091569707, 7768526297620672440, 13179552019124962822),
+UInt256(2449840655014755540, 15141974461125700827, 2549485926799226323, 8237220011953101764),
+UInt256(3062300818768444426, 480724002697574417, 17021915463781196616, 5684838996513989301),
+UInt256(3827876023460555532, 9824277040226743830, 7442336274444332058, 7106048745642486626),
+UInt256(2392422514662847207, 15363545186996490702, 39774153100319632, 9052966484453942045),
+UInt256(2990528143328559009, 14592745465318225473, 9273089728230175348, 11316208105567427557),
+UInt256(3738160179160698762, 4405873776365618129, 16203048178715107089, 14145260131959284446),
+UInt256(2336350111975436726, 7365357128655899235, 3209376084055860075, 1923258554833470923),
+UInt256(2920437639969295907, 18430068447674649851, 17846778160351988805, 16239131248824002365),
+UInt256(3650547049961619884, 18425899541165924410, 17696786682012598103, 6463856005747839244),
+UInt256(4563183812452024856, 4585630352747853897, 12897611315660971821, 3468133988757411151),
+UInt256(2851989882782515535, 2866018970467408686, 1143478044647025532, 4473426752187075922),
+UInt256(3564987353478144418, 17417581768366424569, 10652719592663557723, 5591783440233844902),
+UInt256(4456234191847680523, 12548605173603254903, 17927585509256835058, 2378043281864918223),
+UInt256(2785146369904800327, 5537035224288340362, 18122269970926603767, 6097963069592961794),
+UInt256(3481432962381000409, 2309608011933037549, 13429465426803478901, 3010767818563814338),
+UInt256(4351791202976250511, 7498696033343684841, 2951773728222184914, 8375145791632155827),
+UInt256(2719869501860156569, 11604214048480884881, 13374073626207335331, 9846152138197485296),
+UInt256(3399836877325195712, 670209505318942390, 2882533977477005452, 7696004154319468716),
+UInt256(4249796096656494640, 837761881648677987, 12826539508701032623, 9620005192899335894),
+UInt256(2656122560410309150, 523601176030423742, 5710744183724451437, 12930032273203166790),
+UInt256(3320153200512886437, 9877873506892805485, 16361802266510340105, 2327482286221794776),
+UInt256(4150191500641108046, 16959027902043394761, 6617194777855761419, 7521038876204631373),
+UInt256(2593869687900692529, 5987706420349733821, 15664961782228320647, 2394806288414200657),
+UInt256(3242337109875865661, 12096319043864555181, 5746144172503237096, 16828565915799914533),
+UInt256(4052921387344832077, 1285340749548530264, 11794366234056434275, 2588963321040341550),
+UInt256(2533075867090520048, 3109180977681525367, 7371478896285271421, 17759003140146071133),
+UInt256(3166344833863150060, 3886476222101906709, 4602662601929201373, 8363695869900425204),
+UInt256(3957931042328937575, 4858095277627383386, 10365014270838889620, 15066305855802919409),
+UInt256(2473706901455585984, 9953838576158196472, 11089819937701693917, 193069123022048823),
+UInt256(3092133626819482480, 12442298220197745590, 13862274922127117396, 4853022422204948932),
+UInt256(3865167033524353100, 15552872775247181988, 8104471615804120937, 6066278027756186165),
+UInt256(2415729395952720688, 497173447674712934, 14288666796732351393, 15320638813416086113),
+UInt256(3019661744940900860, 621466809593391168, 8637461459060663434, 5315740461487943929),
+UInt256(3774577181176126075, 776833511991738960, 10796826823825829292, 15868047613714705720),
+UInt256(2359110738235078796, 16626422009490694514, 6748016764891143308, 694157721716915267),
+UInt256(2948888422793848496, 2336283438153816526, 17658392992968704943, 867697152146144084),
+UInt256(3686110528492310620, 2920354297692270658, 12849619204356105370, 14919679495464843816),
+UInt256(4607638160615388275, 3650442872115338323, 6838651968590355905, 9426227332476278962),
+UInt256(2879773850384617671, 18422427859567944116, 1968314471155278488, 17420607128866144112),
+UInt256(3599717312980772089, 18416348806032542241, 2460393088944098111, 3329014837373128523),
+UInt256(4499646641225965112, 9185377952258514089, 7687177379607510542, 17996326601998574366),
+]
+
+private let bid_multipliers2_binary80_84: [UInt256] = [
+UInt256(2812279150766228195, 5740861220161571305, 16333700908323163849, 6636018107821721075),
+UInt256(3515348938457785244, 2564390506774576228, 6582068080121791099, 12906708653204539248),
+UInt256(4394186173072231555, 3205488133468220285, 8227585100152238874, 11521699798078286156),
+UInt256(2746366358170144721, 18144331147913495342, 7448083696808843248, 11812748392226316751),
+UInt256(3432957947712680902, 8845355879609705466, 86732584156278252, 14765935490282895939),
+UInt256(4291197434640851128, 1833322812657356024, 9331787767050123624, 10675289144068308),
+UInt256(2681998396650531955, 1145826757910847515, 5832367354406327265, 6672055715042693),
+UInt256(3352497995813164943, 15267341502670723106, 2678773174580521177, 4620026088071191270),
+UInt256(4190622494766456179, 14472490859911015978, 12571838505080427279, 10386718628516376991),
+UInt256(2619139059229035112, 6739463778230691034, 12469085084102654953, 13409228170463817475),
+UInt256(3273923824036293890, 8424329722788363793, 6362984318273542884, 2926477157797608132),
+UInt256(4092404780045367363, 1307040116630678933, 12565416416269316509, 3658096447247010165),
+UInt256(2557752987528354601, 16957801137390031997, 10159228269382016770, 4592153288743075305),
+UInt256(3197191234410443252, 7362193366455376284, 17310721355154908866, 14963563647783619940),
+UInt256(3996489043013054065, 9202741708069220356, 3191657620234084467, 9481082522874749116),
+UInt256(2497805651883158790, 17280928613611732482, 11218158049501078600, 3619833567583024246),
+UInt256(3122257064853948488, 12377788730159889795, 4799325525021572442, 4524791959478780307),
+UInt256(3902821331067435610, 15472235912699862244, 1387470887849577648, 14879361986203251192),
+UInt256(2439263331917147256, 14281833463864801806, 10090541341760761838, 9299601241377031995),
+UInt256(3049079164896434070, 17852291829831002258, 3389804640346176490, 2401129514866514186),
+UInt256(3811348956120542588, 13091992750433977014, 13460627837287496420, 12224783930437918540),
+UInt256(2382093097575339117, 17405867505876011442, 3801206379877297358, 16863861993378474896),
+UInt256(2977616371969173897, 7922276327062850590, 13974880011701397506, 11856455454868317812),
+UInt256(3722020464961467371, 14514531427255951142, 8245227977771971075, 5597197281730621456),
+UInt256(2326262790600917107, 6765739132821275512, 541581467680094018, 1192405291867944458),
+UInt256(2907828488251146384, 3845487897599206486, 676976834600117522, 10713878651689706381),
+UInt256(3634785610313932980, 4806859871999008107, 10069593080104922711, 4168976277757357168),
+UInt256(4543482012892416225, 6008574839998760134, 7975305331703765485, 599534328769308556),
+UInt256(2839676258057760140, 15284574321067694844, 372879813887465524, 2680551964694511800),
+UInt256(3549595322572200176, 658973827625066939, 466099767359331905, 3350689955868139749),
+UInt256(4436994153215250220, 823717284531333673, 14417682764481328593, 8800048463262562591),
+UInt256(2773121345759531387, 9738195339686859354, 2093522700159748514, 17029245335607571379),
+UInt256(3466401682199414234, 7561058156181186288, 11840275412054461451, 12063184632654688416),
+UInt256(4333002102749267793, 227950658371707052, 14800344265068076814, 10467294772390972616),
+UInt256(2708126314218292370, 11671684207550786668, 26843128812772201, 1930373214316969981),
+UInt256(3385157892772865463, 5366233222583707527, 33553911015965251, 7024652536323600380),
+UInt256(4231447365966081829, 2096105509802246504, 13877000444052120276, 4169129651977112571),
+UInt256(2644654603728801143, 3615908952840098017, 8673125277532575172, 11829078069340471165),
+UInt256(3305818254661001428, 18354944246332286233, 15453092615343106869, 14786347586675588956),
+UInt256(4132272818326251786, 4496936234205806176, 5481307713896719875, 4647876428062322483),
+UInt256(2582670511453907366, 7422271164806016764, 3425817321185449922, 599079758325257600),
+UInt256(3228338139317384208, 54466919152745147, 4282271651481812402, 9972221734761347808),
+UInt256(4035422674146730260, 68083648940931434, 741153545924877599, 3241905131596908952),
+UInt256(2522139171341706412, 9265924317442857954, 5074906984630436403, 8943719734889149951),
+UInt256(3152673964177133015, 11582405396803572442, 15567005767642821312, 6567963650184049535),
+UInt256(3940842455221416269, 9866320727577077649, 10235385172698750832, 8209954562730061919),
+UInt256(2463026534513385168, 8472293463949367482, 17926330779005189030, 5131221601706288699),
+UInt256(3078783168141731460, 10590366829936709353, 13184541436901710479, 15637399038987636682),
+UInt256(3848478960177164325, 13237958537420886692, 2645618740844974387, 14935062780307157948),
+UInt256(2405299350110727703, 10579567095101748134, 10876883749882884800, 7028571228478279766),
+]
+
+private let bid_multipliers2_binary80_85: [UInt256] = [
+UInt256(3006624187638409629, 8612772850449797264, 4372732650498830192, 8785714035597849707),
+UInt256(3758280234548012036, 15377652081489634484, 5465915813123537740, 10982142544497312134),
+UInt256(2348925146592507523, 387660514076245744, 12639569420056986895, 16087211127165595892),
+UInt256(2936156433240634403, 14319633697877470892, 15799461775071233619, 15497327890529606961),
+UInt256(3670195541550793004, 13287856103919450712, 1302583145129490408, 14759973844734620797),
+UInt256(4587744426938491255, 16609820129899313390, 1628228931411863011, 3223232208724380),
+UInt256(2867340266836557034, 17298666608828152724, 14852701137414578093, 16142915584626310402),
+UInt256(3584175333545696293, 12399961224180415098, 119132348058671001, 6343586425500724290),
+UInt256(4480219166932120367, 1664893474943355160, 9372287471928114559, 12541169050303293266),
+UInt256(2800136979332575229, 7958087449480678831, 5857679669955071599, 14755759684080640148),
+UInt256(3500171224165719036, 14559295330278236443, 2710413569016451595, 13833013586673412280),
+UInt256(4375214030207148795, 18199119162847795553, 17223075016552728206, 12679580964914377446),
+UInt256(2734508768879467997, 9068606467566178269, 3846892857704373273, 3313052084644098000),
+UInt256(3418135961099334996, 15947444102885110740, 9420302090557854495, 8753001124232510404),
+UInt256(4272669951374168746, 1487561054896836809, 11775377613197318119, 6329565386863250101),
+UInt256(2670418719608855466, 5541411677737910910, 442081980607241968, 10873507394430613169),
+UInt256(3338023399511069332, 16150136634027164445, 9775974512613828268, 13591884243038266462),
+UInt256(4172529249388836666, 1740926718824403940, 16831654159194673239, 16989855303797833077),
+UInt256(2607830780868022916, 5699765217692640367, 1296411812641894966, 17536188592514727529),
+UInt256(3259788476085028645, 7124706522115800458, 15455572821084532420, 12696863703788633603),
+UInt256(4074735595106285806, 13517569171072138477, 10096093989500889717, 15871079629735792004),
+UInt256(2546709746941428629, 3836794713492698644, 8615901752651750025, 12225267777798563955),
+UInt256(3183387183676785786, 9407679410293261209, 10769877190814687532, 1446526666966041231),
+UInt256(3979233979595982233, 2536227226011800703, 18074032506945747319, 1808158333707551539),
+UInt256(2487021237247488895, 13114357062325845199, 18213799344482173930, 8047627986208301568),
+UInt256(3108776546559361119, 11781260309479918595, 18155563162175329509, 836162945905601152),
+UInt256(3885970683199201399, 10114889368422510340, 18082767934291773982, 5656889700809389344),
+UInt256(2428731676999500874, 13239334882905150819, 2078357922077582930, 17370614118288032052),
+UInt256(3035914596249376093, 7325796566776662715, 16433005457879142375, 12489895611005264257),
+UInt256(3794893245311720116, 13768931726898216298, 15929570803921540065, 11000683495329192417),
+UInt256(2371808278319825072, 17828954366166160994, 14567667770878350444, 18404642230649215021),
+UInt256(2964760347899781341, 3839448883998149627, 8986212676743162248, 4559058714601967160),
+UInt256(3705950434874726676, 9410997123425074938, 6621079827501564906, 5698823393252458950),
+UInt256(2316219021796704172, 15105245238995447644, 8749860910615865970, 8173450639210174748),
+UInt256(2895273777245880216, 434812475034757939, 10937326138269832463, 993441262157942627),
+UInt256(3619092221557350270, 543515593793447424, 9059971654409902674, 15076859632979591995),
+UInt256(4523865276946687837, 9902766529096585088, 11324964568012378343, 9622702504369714186),
+UInt256(2827415798091679898, 8495072089899059632, 7078102855007736464, 12931718092872153222),
+UInt256(3534269747614599873, 1395468075519048732, 8847628568759670580, 16164647616090191528),
+UInt256(4417837184518249841, 6356021112826198819, 11059535710949588226, 1759065446403187794),
+UInt256(2761148240323906150, 15501728241584844022, 4606366810129798689, 5711101922429380275),
+UInt256(3451435300404882688, 10153788265126279219, 14981330549517024169, 11750563421464113248),
+UInt256(4314294125506103360, 12692235331407849024, 14114977168468892308, 853146221547977848),
+UInt256(2696433828441314600, 7932647082129905640, 8821860730293057692, 9756588425322261963),
+UInt256(3370542285551643250, 9915808852662382050, 11027325912866322115, 12195735531652827454),
+UInt256(4213177856939554063, 3171389028973201755, 4560785354228126836, 10632983396138646413),
+UInt256(2633236160587221289, 8899647170749332953, 544647837178885320, 15868986659441429816),
+UInt256(3291545200734026611, 15736244981864054095, 5292495814900994555, 1389489250592235654),
+UInt256(4114431500917533264, 15058620208902679715, 2003933750198855289, 15571919618522458280),
+UInt256(2571519688073458290, 9411637630564174821, 17393359658370142220, 2814920733935454569),
+]
+
+private let bid_multipliers2_binary80_86: [UInt256] = [
+UInt256(3214399610091822863, 2541175001350442719, 7906641517680514063, 3518650917419318211),
+UInt256(4017999512614778578, 17011526806970217111, 5271615878673254674, 18233371702056311476),
+UInt256(2511249695384236611, 15243890272783773598, 10212288951811866027, 16007543332212582577),
+UInt256(3139062119230295764, 14443176822552329094, 3541989152910056726, 15397743146838340317),
+UInt256(3923827649037869705, 18053971028190411367, 13650858477992346716, 10023806896693149588),
+UInt256(2452392280648668566, 4366202864977925248, 15449315576386298553, 15488251347287994300),
+UInt256(3065490350810835707, 14681125618077182369, 864900396773321576, 5525256128827829163),
+UInt256(3831862938513544634, 13739721004169090057, 5692811514394039874, 6906570161034786454),
+UInt256(2394914336570965396, 13199011646033069189, 15087222242564744681, 8928292369074129438),
+UInt256(2993642920713706745, 16498764557541336487, 5023969747923767139, 15772051479770049701),
+UInt256(3742053650892133432, 6788397641644506897, 1668276166477321020, 15103378331285174223),
+UInt256(2338783531807583395, 4242748526027816810, 12571887650116795398, 216239420198458081),
+UInt256(2923479414759479244, 691749639107383109, 6491487525791218439, 9493671312102848410),
+UInt256(3654349268449349055, 864687048884228886, 12726045425666410953, 7255403121701172608),
+UInt256(4567936585561686318, 14915916866387449820, 6684184745228237883, 13680939920553853664),
+UInt256(2854960365976053949, 4710762023064768233, 13400987502622424485, 6244744441132464588),
+UInt256(3568700457470067436, 10500138547258348196, 2916176322995866894, 12417616569842968639),
+UInt256(4460875571837584295, 13125173184072935245, 3645220403744833618, 6298648675448934990),
+UInt256(2788047232398490184, 15120762267686666384, 4584105761554214963, 8548341440582972273),
+UInt256(3485059040498112731, 454208760898781364, 5730132201942768704, 6073740782301327437),
+UInt256(4356323800622640913, 14402819006405640417, 7162665252428460880, 7592175977876659297),
+UInt256(2722702375389150571, 2084232851362443404, 16005880828836257810, 4745109986172912061),
+UInt256(3403377969236438213, 16440349119485217968, 1560606962335770646, 15154759519570915884),
+UInt256(4254222461545547767, 6715378344074358748, 1950758702919713308, 9720077362608869046),
+UInt256(2658889038465967354, 11114640492687556073, 10442596226179596625, 15298420388485318962),
+UInt256(3323611298082459193, 4669928579004669283, 17664931301151883686, 5287967430324484991),
+UInt256(4154514122603073991, 10449096742183224508, 17469478108012466703, 15833331324760382046),
+UInt256(2596571326626921244, 13448214491505597174, 1695051780653015881, 16813361105616320635),
+UInt256(3245714158283651555, 16810268114381996467, 11342186762671045660, 7181643326738237082),
+UInt256(4057142697854564444, 16401149124550107680, 9566047434911419171, 8977054158422796352),
+UInt256(2535714186159102778, 1027346165989041492, 5978779646819636982, 3304815839800553768),
+UInt256(3169642732698878472, 10507554744341077673, 7473474558524546227, 13354391836605468018),
+UInt256(3962053415873598090, 13134443430426347091, 13953529216583070688, 12081303777329447118),
+UInt256(2476283384920998806, 12820713162443854836, 6415112751150725228, 7550814860830904449),
+UInt256(3095354231151248508, 6802519416200042737, 8018890938938406535, 9438518576038630561),
+UInt256(3869192788939060635, 8503149270250053421, 14635299692100396073, 7186462201620900298),
+UInt256(2418245493086912897, 3008625284692589436, 11452905316776441497, 16020753922081532446),
+UInt256(3022806866358641121, 8372467624293124699, 14316131645970551872, 6190884347319751846),
+UInt256(3778508582948301401, 15077270548793793778, 13283478539035801936, 7738605434149689807),
+UInt256(2361567864342688376, 2505765065355039255, 12913860105324764114, 4836628396343556129),
+UInt256(2951959830428360470, 3132206331693799069, 11530639113228567238, 15269157532284220970),
+UInt256(3689949788035450587, 13138629951472024645, 578240836253545336, 9863074878500500404),
+UInt256(2306218617522156617, 5905800710456321451, 2667243531872159787, 6164421799062812753),
+UInt256(2882773271902695771, 11993936906497789717, 17169112470122363446, 3093841230401128037),
+UInt256(3603466589878369714, 10380735114694849243, 7626332532370790595, 13090673574856185854),
+UInt256(4504333237347962143, 3752546856513785746, 4921229647036100340, 11751655950142844413),
+UInt256(2815208273342476339, 9262870812962197947, 7687454547824950616, 16568157005694053566),
+UInt256(3519010341678095424, 6966902497775359530, 4997632166353800367, 2263452183408015342),
+UInt256(4398762927097619280, 8708628122219199412, 15470412244797026266, 16664373284542182889),
+UInt256(2749226829436012050, 5442892576386999633, 445635616143365608, 15026919321266252210),
+]
+
+private let bid_multipliers2_binary80_87: [UInt256] = [
+UInt256(3436533536795015062, 16026987757338525349, 5168730538606594915, 336905077873263646),
+UInt256(4295666920993768828, 10810362659818380878, 11072599191685631547, 14256189402623743270),
+UInt256(2684791825621105517, 15979848699241263857, 2308688476376131813, 6604275367426145592),
+UInt256(3355989782026381897, 6139752818769416109, 7497546613897552670, 12867030227710069894),
+UInt256(4194987227532977371, 12286377041889158040, 13983619285799328742, 6860415747782811559),
+UInt256(2621867017208110857, 5373142641967029823, 8739762053624580463, 18122817897646420936),
+UInt256(3277333771510138571, 11328114320886175183, 6313016548603337675, 18041836353630638266),
+UInt256(4096667214387673214, 9548456882680331075, 3279584667326784190, 17940609423610909929),
+UInt256(2560417008992295759, 1356099533247819017, 18190641481575097783, 6601194871329430802),
+UInt256(3200521261240369698, 15530182471841937484, 8903243796686708517, 3639807570734400598),
+UInt256(4000651576550462123, 10189356052947646047, 11129054745858385646, 9161445481845388652),
+UInt256(2500407235344038827, 4062504523878584827, 13873188243802572885, 1114217407725980003),
+UInt256(3125509044180048534, 466444636420843130, 12729799286325828202, 6004457778084862908),
+UInt256(3906886305225060667, 9806427832380829721, 6688877071052509444, 16728944259460854443),
+UInt256(2441803940765662917, 3823174386024324623, 15709763215476288163, 1232218125308258219),
+UInt256(3052254925957078646, 9390654000957793683, 15025518000917972299, 15375330711917486486),
+UInt256(3815318657446348308, 2514945464342466296, 14170211482720077470, 14607477371469470203),
+UInt256(2384574160903967692, 10795212952068817243, 8856382176700048419, 4517987338741030973),
+UInt256(2980717701129959615, 13494016190086021554, 6458791702447672620, 1035798154998900812),
+UInt256(3725897126412449519, 12255834219180139038, 17296861664914366583, 1294747693748626015),
+UInt256(2328685704007780949, 14577425414628668755, 6198852522144091210, 7726746336233973116),
+UInt256(2910857130009726187, 4386723713003672232, 3136879634252726109, 435060883437690586),
+UInt256(3638571412512157734, 871718622827202386, 3921099542815907636, 5155512122724501137),
+UInt256(4548214265640197167, 10313020315388778790, 14124746465374660353, 6444390153405626421),
+UInt256(2842633916025123229, 13363166724759068600, 4216280522431774816, 15556958891946986273),
+UInt256(3553292395031404037, 2868900350666672038, 5270350653039718521, 999454541224181226),
+UInt256(4441615493789255046, 8197811456760727951, 15811310353154423959, 5861004194957614436),
+UInt256(2776009683618284404, 511946142048067065, 16799597998362596830, 10580656649489590879),
+UInt256(3470012104522855505, 639932677560083832, 7164439442671082326, 4002448775007212790),
+UInt256(4337515130653569381, 5411601865377492694, 8955549303338852907, 14226433005613791795),
+UInt256(2710946956658480863, 5688094175074626886, 985532296159395163, 6585677619294925920),
+UInt256(3388683695823101079, 2498431700415895703, 10455287407054019762, 3620411005691269496),
+UInt256(4235854619778876348, 16958097680802033341, 8457423240390136798, 13748885793968862678),
+UInt256(2647409137361797718, 1375439013646495030, 7591732534457529451, 3981367602803151270),
+UInt256(3309261421702247147, 10942670803912894596, 266293631217136006, 365023485076551183),
+UInt256(4136576777127808934, 9066652486463730341, 332867039021420007, 9679651393200464787),
+UInt256(2585360485704880584, 1054971785612443559, 2513884908602081456, 12967311148391372348),
+UInt256(3231700607131100730, 1318714732015554448, 16977414191034765532, 16209138935489215435),
+UInt256(4039625758913875912, 10871765451874218869, 2775023665083905300, 1814679595651967678),
+UInt256(2524766099321172445, 6794853407421386793, 4040232799891134764, 10357546784137255607),
+UInt256(3155957624151465556, 13105252777704121395, 9661977018291306359, 12946933480171569508),
+UInt256(3944947030189331945, 16381565972130151744, 7465785254436745045, 11571980831787073981),
+UInt256(2465591893868332466, 3320949704940262984, 4666115784022965653, 9538331029080615191),
+UInt256(3081989867335415582, 13374559168030104538, 5832644730028707066, 16534599804778156892),
+UInt256(3852487334169269478, 7494826923182854864, 16514177949390659641, 11444877719117920307),
+UInt256(2407804583855793424, 72580808561896386, 10321361218369162276, 235519546807618336),
+UInt256(3009755729819741780, 90726010702370483, 3678329486106677037, 294399433509522920),
+UInt256(3762194662274677225, 113407513377963103, 18432969912915510008, 4979685310314291554),
+UInt256(2351371663921673265, 11600094741929696699, 18438135223213275611, 3112303318946432221),
+UInt256(2939214579902091582, 665060372129957162, 18435983010589206609, 17725437203965203988),
+]
+
+private let bid_multipliers2_binary80_88: [UInt256] = [
+UInt256(3674018224877614477, 10054697502017222261, 13821606726381732454, 8321738449674341273),
+UInt256(4592522781097018096, 17180057895948915731, 3441950352695001856, 1178801025238150784),
+UInt256(2870326738185636310, 10737536184968072331, 18292120034930233824, 736750640773844240),
+UInt256(3587908422732045388, 4198548194355314606, 18253464025235404376, 920938300967305300),
+UInt256(4484885528415056735, 5248185242944143258, 13593457994689479662, 1151172876209131625),
+UInt256(2803053455259410459, 10197644804481171392, 13107597265108312692, 14554541102912870978),
+UInt256(3503816819074263074, 8135369987174076336, 16384496581385390865, 18193176378641088722),
+UInt256(4379771023842828843, 945840447112819613, 2033876653022186966, 8906412418019197190),
+UInt256(2737356889901768026, 16732051343941369922, 3577015917352560806, 954821742834610340),
+UInt256(3421696112377210033, 11691692143071936594, 13694641933545476815, 10416899215398038733),
+UInt256(4277120140471512542, 779557123557757031, 7894930380077070211, 8409438000820160512),
+UInt256(2673200087794695338, 14322281257505761856, 11851860515189250738, 2950055741298906368),
+UInt256(3341500109743369173, 8679479535027426512, 14814825643986563422, 12910941713478408768),
+UInt256(4176875137179211466, 15461035437211671045, 71787981273652662, 6915305104993235152),
+UInt256(2610546960737007166, 14274833166684682307, 2350710497509726865, 18157123745902935682),
+UInt256(3263183700921258958, 8620169421501077075, 16773446177169322294, 8861346627096505891),
+UInt256(4078979626151573698, 1551839740021570536, 16355121703034264964, 1853311247015856555),
+UInt256(2549362266344733561, 5581585855940869489, 10221951064396415602, 10381691566239686155),
+UInt256(3186702832930916951, 11588668338353474765, 17389124848922907407, 3753742420944831886),
+UInt256(3983378541163646189, 9874149404514455553, 7901348005871470547, 80492007753651953),
+UInt256(2489611588227278868, 8477186387035228672, 16467557549738138851, 16191208569341890135),
+UInt256(3112014485284098585, 10596482983794035841, 2137702863463121948, 15627324693249974765),
+UInt256(3890018106605123231, 17857289748169932705, 7283814597756290340, 1087411792852916840),
+UInt256(2431261316628202019, 18078335120247289796, 16081599169666151222, 9903004407387848833),
+UInt256(3039076645785252524, 17986232881881724342, 1655254888373137412, 3155383472380035233),
+UInt256(3798845807231565656, 4036047028642603811, 11292440647321197573, 3944229340475044041),
+UInt256(2374278629519728535, 2522529392901627382, 4751932395362054531, 4770986347010596478),
+UInt256(2967848286899660668, 16988219796409197939, 15163287531057343972, 1352046915335857693),
+UInt256(3709810358624575836, 2788530671801945808, 14342423395394292061, 1690058644169822117),
+UInt256(2318631474140359897, 10966203706730991938, 8964014622121432538, 3362129661819832775),
+UInt256(2898289342675449871, 18319440651841127827, 1981646240797014864, 13426034114129566777),
+UInt256(3622861678344312339, 18287614796374021879, 16312115856278432292, 16782542642661958471),
+UInt256(4528577097930390424, 18247832477040139445, 15778458801920652462, 2531434229617896472),
+UInt256(2830360686206494015, 11404895298150087153, 12167379760414101740, 15417204448793349007),
+UInt256(3537950857758117519, 9644433104260221038, 1374166645235463464, 824761487282134643),
+UInt256(4422438572197646899, 7443855361897888393, 10941080343399105138, 1030951859102668304),
+UInt256(2764024107623529312, 2346566591972486293, 18367390260692910471, 5256030930366555594),
+UInt256(3455030134529411640, 2933208239965607867, 9124179770583974377, 1958352644530806588),
+UInt256(4318787668161764550, 3666510299957009834, 6793538694802580067, 7059626824090896139),
+UInt256(2699242292601102843, 16126626992755294858, 8857647702679000446, 2106423755843116135),
+UInt256(3374052865751378554, 15546597722516730669, 1848687591493974749, 11856401731658670977),
+UInt256(4217566082189223193, 10209875116291137528, 6922545507794856341, 985444109291175009),
+UInt256(2635978801368264495, 17910386993750430715, 4326590942371785213, 2921745577520678333),
+UInt256(3294973501710330619, 17776297723760650490, 796552659537343612, 8263867990328235820),
+UInt256(4118716877137913274, 17608686136273425208, 10219062861276455323, 10329834987910294775),
+UInt256(2574198048211195796, 15617114853598278659, 6386914288297784577, 4150303858230240282),
+UInt256(3217747560263994746, 1074649493288296708, 3371956841944842817, 9799565841215188257),
+UInt256(4022184450329993432, 10566683903465146693, 4214946052431053521, 16861143319946373225),
+UInt256(2513865281456245895, 6604177439665716683, 4940184291983102403, 3620685547325401410),
+UInt256(3142331601820307369, 3643535781154757950, 1563544346551490099, 18360914989438915474),
+]
+
+private let bid_multipliers2_binary80_89: [UInt256] = [
+UInt256(3927914502275384211, 9166105744870835341, 11177802470044138432, 18339457718371256439),
+UInt256(2454946563922115132, 3422973081330578136, 9291969552991280472, 11462161073982035274),
+UInt256(3068683204902643915, 4278716351663222670, 11614961941239100590, 14327701342477544093),
+UInt256(3835854006128304894, 736709421151640434, 5295330389694099930, 8686254641242154308),
+UInt256(2397408753830190558, 14295501443501938983, 7921267511986200360, 10040595169203734347),
+UInt256(2996760942287738198, 8646004767522647921, 5289898371555362546, 12550743961504667933),
+UInt256(3745951177859672748, 1584133922548534093, 11224058982871591087, 6465057915026059108),
+UInt256(2341219486162295467, 10213455738447609616, 9320879873508438381, 10958190224532368799),
+UInt256(2926524357702869334, 8155133654632124116, 11651099841885547976, 18309423799092848902),
+UInt256(3658155447128586668, 970545031435379337, 14563874802356934971, 4440035675156509512),
+UInt256(4572694308910733335, 1213181289294224172, 4369785447664005002, 938358575518248986),
+UInt256(2857933943069208334, 7675767333449971963, 11954487941644778934, 5198160128126293520),
+UInt256(3572417428836510418, 371337129957689146, 10331423908628585763, 15721072197012642708),
+UInt256(4465521786045638022, 9687543449301887241, 3690907848930956396, 15039654227838415481),
+UInt256(2790951116278523764, 1443028637386291621, 13836032451650317508, 176411855544233868),
+UInt256(3488688895348154705, 1803785796732864527, 3459982509280733173, 220514819430292335),
+UInt256(4360861119185193381, 6866418264343468562, 18160036191883080178, 4887329542715253322),
+UInt256(2725538199490745863, 6597354424428361803, 15961708638354313015, 7666266982624421231),
+UInt256(3406922749363432329, 3635007012108064350, 15340449779515503365, 4971147709853138634),
+UInt256(4258653436704290411, 9155444783562468342, 9952190187539603398, 10825620655743811197),
+UInt256(2661658397940181507, 3416309980512848762, 1608432848784864220, 2154326891412494094),
+UInt256(3327072997425226883, 18105445530923224664, 11233913097835856083, 2692908614265617617),
+UInt256(4158841246781533604, 18020120895226642926, 14042391372294820103, 17201193823114185734),
+UInt256(2599275779238458503, 2039203522661876021, 4164808589256874660, 17668275167087447940),
+UInt256(3249094724048073128, 16384062458609508738, 9817696754998481230, 3638599885149758309),
+UInt256(4061368405060091411, 2033333999552334307, 3048748906893325729, 13771621893291973694),
+UInt256(2538355253162557131, 17411734814216066605, 18046369131304186245, 1689734655666401703),
+UInt256(3172944066453196414, 17152982499342695353, 8722903358848069094, 6723854338010390032),
+UInt256(3966180083066495518, 12217856087323593383, 15515315216987474271, 17628189959367763348),
+UInt256(2478862551916559699, 3024474036149857960, 16614601038258253275, 17935147752245933949),
+UInt256(3098578189895699623, 17615650600469486163, 2321507224113264978, 17807248671880029532),
+UInt256(3873222737369624529, 17407877232159469799, 16736942085423744935, 13035688802995261107),
+UInt256(2420764210856015331, 3962394242458586768, 17378117831030922440, 15064834529513120048),
+UInt256(3025955263570019164, 341306784645845557, 3275903215079101435, 384299088181848444),
+UInt256(3782444079462523955, 426633480807306946, 8706565037276264697, 14315431915509474267),
+UInt256(2364027549664077471, 16407546990000424505, 10053289166725053340, 2029615919552339561),
+UInt256(2955034437080096839, 15897747719073142727, 17178297476833704579, 2537019899440424451),
+UInt256(3693793046350121049, 15260498630414040505, 16861185827614742819, 17006332929582694275),
+UInt256(2308620653968825656, 2620282616367693460, 3620712114618132406, 8323115071775489970),
+UInt256(2885775817461032070, 3275353270459616825, 4525890143272665508, 1180521802864586655),
+UInt256(3607219771826290087, 13317563624929296839, 10269048697518219789, 1475652253580733318),
+UInt256(4509024714782862609, 12035268512734233145, 8224624853470386832, 6456251335403304552),
+UInt256(2818140446739289131, 604513792817813859, 16669605579487461530, 4035157084627065345),
+UInt256(3522675558424111413, 14590700296304431036, 16225320955931939008, 14267318392638607489),
+UInt256(4403344448030139267, 4403317315098375084, 1834907121205372144, 17834147990798259361),
+UInt256(2752090280018837042, 446230312722790475, 10370188987608133398, 11146342494248912101),
+UInt256(3440112850023546302, 9781159927758263902, 8351050216082778844, 4709556080956364318),
+UInt256(4300141062529432878, 3003077872843054070, 1215440733248697747, 5886945101195455398),
+UInt256(2687588164080895548, 15711981725809072505, 14594708513562599804, 1373497679033465672),
+UInt256(3359485205101119436, 1193233083551789016, 4408327586671086043, 1716872098791832089),
+]
+
+private let bid_multipliers2_binary80_90: [UInt256] = [
+UInt256(4199356506376399295, 1491541354439736270, 5510409483338857553, 15981148178771953824),
+UInt256(2624597816485249559, 7849742374165917024, 17279063982368949683, 3070688584091389284),
+UInt256(3280747270606561949, 5200491949280008377, 3152085904251635487, 17673418785396400317),
+UInt256(4100934088258202436, 11112300955027398375, 8551793398741932263, 17480087463318112492),
+UInt256(2563083805161376522, 16168560133746899792, 12262399901854789520, 17842583692214902164),
+UInt256(3203854756451720653, 10987328130328848932, 15327999877318486901, 3856485541559076088),
+UInt256(4004818445564650816, 18345846181338449070, 713255772938557010, 9432292945376233014),
+UInt256(2503011528477906760, 11466153863336530668, 14280842913368761843, 10506869109287533538),
+UInt256(3128764410597383450, 14332692329170663335, 17851053641710952304, 8521900368182029019),
+UInt256(3910955513246729313, 8692493374608553361, 17702131033711302476, 10652375460227536273),
+UInt256(2444347195779205820, 16962023405198815611, 4146302868428482191, 15881106699496985979),
+UInt256(3055433994724007276, 2755785182788967898, 571192567108214835, 15239697355943844570),
+UInt256(3819292493405009095, 3444731478486209872, 9937362745740044352, 14437935676502417808),
+UInt256(2387057808378130684, 9070486201694963026, 6210851716087527720, 9023709797814011130),
+UInt256(2983822260472663355, 11338107752118703782, 16986936681964185458, 11279637247267513912),
+UInt256(3729777825590829194, 9560948671720991824, 12010298815600456015, 4876174522229616582),
+UInt256(2331111140994268246, 10587278938253007794, 7506436759750285009, 9965138104034592220),
+UInt256(2913888926242835308, 4010726635961483935, 159673912833080453, 17068108648470628179),
+UInt256(3642361157803544135, 5013408294951854918, 14034650446323514279, 7500077755306121512),
+UInt256(4552951447254430169, 1655074350262430744, 8319941021049617041, 4763411175705263986),
+UInt256(2845594654534018855, 12563636514982488975, 5199963138156010650, 14506347030884259751),
+UInt256(3556993318167523569, 11092859625300723315, 1888267904267625409, 8909561751750548881),
+UInt256(4446241647709404462, 31016476343740431, 16195392935616695473, 15748638208115574005),
+UInt256(2778901029818377788, 13854443352997001481, 17039649612401516527, 2925369852431151897),
+UInt256(3473626287272972235, 17318054191246251852, 7464503960219731946, 17491770370821103584),
+UInt256(4342032859091215294, 17035881720630426911, 9330629950274664933, 12641340926671603671),
+UInt256(2713770536932009559, 6035740056966628915, 12749172746562747439, 10206681088383446247),
+UInt256(3392213171165011949, 2932989052780898240, 11324779914776046395, 8146665342051919904),
+UInt256(4240266463956264936, 8277922334403510704, 14155974893470057994, 5571645659137511976),
+UInt256(2650166539972665585, 5173701459002194190, 8847484308418786246, 8093964555388332889),
+UInt256(3312708174965831981, 11078812842180130642, 1835983348668707000, 894083657380640304),
+UInt256(4140885218707289977, 13457997442999590, 11518351222690659558, 1117604571725800379),
+UInt256(2588053261692056235, 11537626294470344504, 2587283495754274319, 14533560912610788949),
+UInt256(3235066577115070294, 9810346849660542726, 3234104369692842899, 13555265122336098282),
+UInt256(4043833221393837868, 3039561525220902599, 13266002498970829432, 12332395384492734949),
+UInt256(2527395763371148667, 11123097990117839932, 15208780589497850251, 7707747115307959343),
+UInt256(3159244704213935834, 9292186469219912012, 564231663162761198, 5022997875707561275),
+UInt256(3949055880267419793, 2391861049670114207, 705289578953451497, 15502119381489227402),
+UInt256(2468159925167137370, 13024128202112291139, 7358335014486989042, 2771295585789685270),
+UInt256(3085199906458921713, 7056788215785588116, 4586232749681348398, 12687491519091882396),
+UInt256(3856499883073652141, 13432671288159373049, 5732790937101685498, 6635992362010077186),
+UInt256(2410312426921032588, 10701262564313302107, 15112209381757023196, 8759181244683686146),
+UInt256(3012890533651290735, 13376578205391627634, 14278575708768891091, 10948976555854607682),
+UInt256(3766113167064113419, 12109036738312146639, 8624847599106338056, 9074534676390871698),
+UInt256(2353820729415070887, 5262304952231397697, 12308058777082543141, 5671584172744294812),
+UInt256(2942275911768838609, 1966195171861859218, 1550015416071015214, 11701166234357756418),
+UInt256(3677844889711048261, 7069429983254711926, 11160891306943544826, 5403085756092419715),
+UInt256(4597306112138810326, 13448473497495777812, 4727742096824655224, 15977229231970300451),
+UInt256(2873316320086756454, 3793609917507473228, 12178210847370185323, 9985768269981437782),
+UInt256(3591645400108445567, 13965384433739117343, 15222763559212731654, 7870524319049409324),
+]
+
+private let bid_multipliers2_binary80_91: [UInt256] = [
+UInt256(4489556750135556959, 12845044523746508775, 14416768430588526664, 614783361956985847),
+UInt256(2805972968834723099, 14945681854982649840, 15928009296758911021, 384239601223116154),
+UInt256(3507466211043403874, 14070416300300924397, 1463267547239087160, 5091985519956283097),
+UInt256(4384332763804254843, 8364648338521379688, 6440770452476246854, 6364981899945353871),
+UInt256(2740207977377659277, 2922062202362168353, 4025481532797654283, 17813171742748009882),
+UInt256(3425259971722074096, 8264263771380098345, 9643537934424455758, 17654778660007624448),
+UInt256(4281574964652592620, 10330329714225122931, 16666108436457957602, 12845101288154754752),
+UInt256(2675984352907870387, 15679828108245477640, 8110474763572529549, 12639874323524109624),
+UInt256(3344980441134837984, 14988099116879459146, 10138093454465661937, 1964784849122973318),
+UInt256(4181225551418547481, 288379822389772317, 3449244781227301613, 7067667079831104551),
+UInt256(2613265969636592175, 11709452435062077458, 4461620997480757460, 6723134934108134297),
+UInt256(3266582462045740219, 10025129525400208918, 14800398283705722633, 8403918667635167871),
+UInt256(4083228077557175274, 7919725888322873244, 9277125817777377483, 15116584352971347742),
+UInt256(2552017548473234546, 9561514698629183681, 15021575672965636735, 7142022211393398387),
+UInt256(3190021935591543183, 2728521336431703794, 4941911535924882207, 4315841745814360080),
+UInt256(3987527419489428978, 17245709725821793454, 15400761456760878567, 783116163840562195),
+UInt256(2492204637180893111, 15390254597066008813, 5013789892048161200, 7406976630041433228),
+UInt256(3115255796476116389, 14626132227905123112, 10878923383487589404, 9258720787551791535),
+UInt256(3894069745595145487, 4447607229599240178, 13598654229359486755, 11573400984439739419),
+UInt256(2433793590996965929, 9697283546140606967, 13110844911777067126, 4927532606061143185),
+UInt256(3042241988746207411, 16733290451103146613, 11776870121293946003, 15382787794431204789),
+UInt256(3802802485932759264, 16304927045451545363, 886029596335268792, 14616798724611618082),
+UInt256(2376751553707974540, 10190579403407215851, 16694669562205400659, 9135499202882261302),
+UInt256(2970939442134968175, 12738224254259019814, 16256650934329362920, 6807687985175438723),
+UInt256(3713674302668710219, 11311094299396386864, 11097441631056927842, 8509609981469298404),
+UInt256(2321046439167943887, 4763590927909047838, 6935901019410579901, 9930192256845699406),
+UInt256(2901308048959929859, 1342802641458921893, 17893248311118000684, 17024426339484512162),
+UInt256(3626635061199912323, 15513561357105816079, 8531502333615337144, 2833788850646088586),
+UInt256(4533293826499890404, 14780265677954882195, 6052691898591783526, 3542236063307610733),
+UInt256(2833308641562431503, 14294011867025564, 1477089427406170751, 16048955594849420420),
+UInt256(3541635801953039378, 13852925570115945667, 1846361784257713439, 15449508475134387621),
+UInt256(4427044752441299223, 8092784925790156275, 16143010285604305511, 14700199575490596622),
+UInt256(2766902970275812014, 11975519606259929528, 7783538419288996992, 16105153762322704745),
+UInt256(3458628712844765018, 5746027470970136102, 9729423024111246241, 1684698129193829315),
+UInt256(4323285891055956272, 16405906375567445936, 2938406743284281993, 6717558679919674548),
+UInt256(2702053681909972670, 10253691484729653710, 1836504214552676245, 15727689221018266353),
+UInt256(3377567102387465838, 3593742319057291329, 11519002305045621115, 5824553470990669229),
+UInt256(4221958877984332297, 13715549935676389970, 563694826024862682, 2669005820310948632),
+UInt256(2638724298740207686, 1654689682156661875, 4963995284692927080, 6279814656121730799),
+UInt256(3298405373425259607, 11291734139550603152, 1593308087438770946, 7849768320152163499),
+UInt256(4123006716781574509, 9502981656010866036, 1991635109298463683, 588838363335428565),
+UInt256(2576879197988484068, 8245206544220485224, 10468143980166315609, 16508925041580500517),
+UInt256(3221098997485605085, 10306508180275606530, 13085179975207894512, 6801098246693461935),
+UInt256(4026373746857006356, 17494821243771896067, 7133102932155092332, 8501372808366827418),
+UInt256(2516483591785628973, 1710891240502659234, 2152346323383238755, 14536730042084042945),
+UInt256(3145604489732036216, 6750300069055711946, 11913804941083824252, 13559226534177665777),
+UInt256(3932005612165045270, 8437875086319639933, 5668884139500004507, 16949033167722082221),
+UInt256(2457503507603153294, 661985910522387054, 5848895596401196769, 8287302720612607436),
+UInt256(3071879384503941617, 10050854425007759625, 16534491532356271769, 14970814419193147199),
+UInt256(3839849230629927021, 17175254049687087436, 6833056360163176000, 4878459968709270287),
+]
+
+private let bid_multipliers2_binary80_92: [UInt256] = [
+UInt256(2399905769143704388, 13040376790268123599, 13494032261956760808, 3049037480443293929),
+UInt256(2999882211429630485, 16300470987835154499, 12255854309018563106, 3811296850554117411),
+UInt256(3749852764287038107, 6540530679511779412, 10708131867845815978, 13987493100047422572),
+UInt256(2343657977679398817, 1781988665481168180, 15915954454258410794, 13353869205957027012),
+UInt256(2929572472099248521, 6839171850278848130, 1448198994113461877, 7468964470591507957),
+UInt256(3661965590124060651, 13160650831275948066, 11033620779496603154, 13947891606666772850),
+UInt256(4577456987655075814, 11839127520667547179, 4568653937515978135, 8211492471478690254),
+UInt256(2860910617284422384, 2787768681989829083, 549565701733792382, 12049711822315263265),
+UInt256(3576138271605527980, 3484710852487286353, 14522015182449404190, 5838767741039303273),
+UInt256(4470172839506909975, 4355888565609107942, 4317460922779591525, 16521831713153904899),
+UInt256(2793858024691818734, 9639959381146774319, 16533471132019408415, 12631987829934884514),
+UInt256(3492322530864773418, 2826577189578692091, 16055152896596872615, 11178298768991217739),
+UInt256(4365403163580966772, 12756593523828140922, 15457255102318702865, 9361187442811634269),
+UInt256(2728376977238104232, 17196242989247363884, 14272470457376577194, 17379957197825741178),
+UInt256(3410471221547630291, 3048559662849653239, 17840588071720721493, 12501574460427400665),
+UInt256(4263089026934537863, 17645757633844230261, 17689049071223513963, 1791910020252087119),
+UInt256(2664430641834086164, 17946127548793725769, 13361498678728390178, 17260844827153412114),
+UInt256(3330538302292607706, 3985915362282605596, 2866815293128324011, 12352683997086989334),
+UInt256(4163172877865759632, 14205766239708032803, 3583519116410405014, 10829168977931348763),
+UInt256(2601983048666099770, 8878603899817520501, 18380600512252360798, 2156544592779705073),
+UInt256(3252478810832624713, 1874882837917124819, 9140692585033287285, 11919052777829407149),
+UInt256(4065598513540780891, 6955289565823793928, 6814179712864221203, 1063757917004595224),
+UInt256(2540999070962988057, 2041212969426177253, 4258862320540138251, 16805749762623729679),
+UInt256(3176248838703735071, 7163202230210109470, 9935263919102560718, 16395501184852274195),
+UInt256(3970311048379668839, 4342316769335248934, 3195707862023425090, 11271004444210566936),
+UInt256(2481444405237293024, 9631477008475612439, 15832375469046804393, 11656063796058992239),
+UInt256(3101805506546616280, 12039346260594515549, 15178783317881117588, 735021689791576587),
+UInt256(3877256883183270350, 15049182825743144437, 5138421092069233273, 918777112239470733),
+UInt256(2423285551989543969, 4794053247662077369, 5517356191756964747, 12103450741218138969),
+UInt256(3029106939986929961, 10604252578004984615, 11508381258123593838, 10517627408095285807),
+UInt256(3786383674983662451, 17867001740933618673, 9773790554227104394, 3923662223264331450),
+UInt256(2366489796864789032, 8861033078869817718, 17637834142460410006, 7063974907967595060),
+UInt256(2958112246080986290, 11076291348587272148, 12823920641220736699, 18053340671814269633),
+UInt256(3697640307601232863, 4621992148879314377, 16029900801525920874, 17954989821340449138),
+UInt256(2311025192250770539, 9806274120690653342, 3101158973312618690, 15833554656765168615),
+UInt256(2888781490313463174, 7646156632435928773, 13099820753495549171, 10568571284101684961),
+UInt256(3610976862891828968, 334323753690135159, 2539717886587272752, 8599028086699718297),
+UInt256(4513721078614786210, 417904692112668948, 17009705413516254652, 10748785108374647871),
+UInt256(2821075674134241381, 4872876450997805997, 1407693846592883349, 15941362729588930728),
+UInt256(3526344592667801726, 10702781582174645400, 6371303326668492091, 6091645356703999697),
+UInt256(4407930740834752158, 4155104940863530942, 7964129158335615114, 3002870677452611718),
+UInt256(2754956713021720098, 16431998643321870551, 365894705532371542, 6488480191835270228),
+UInt256(3443695891277150123, 11316626267297562380, 14292426437197628139, 17333972276648863593),
+UInt256(4304619864096437654, 9534096815694565071, 17865533046497035174, 17055779327383691587),
+UInt256(2690387415060273534, 1347124491381715265, 18083487181701728840, 6048176061187419338),
+UInt256(3362984268825341917, 10907277651081919890, 8769300921844997338, 7560220076484274172),
+UInt256(4203730336031677396, 18245783082279787767, 1738254115451470865, 226903058750566907),
+UInt256(2627331460019798373, 2180242389570091546, 8003937849798251146, 11671029457787574077),
+UInt256(3284164325024747966, 7336989005390002337, 781550275393038125, 5365414785379691788),
+UInt256(4105205406280934957, 18394608293592278729, 5588623862668685560, 11318454500152002639),
+]
+
+private let bid_multipliers2_binary80_93: [UInt256] = [
+UInt256(2565753378925584348, 13802473192708868157, 15022104960236398235, 7074034062595001650),
+UInt256(3207191723656980435, 17253091490886085197, 4942573145013334082, 4230856559816364158),
+UInt256(4008989654571225544, 16954678345180218592, 10789902449694055506, 14511942736625231005),
+UInt256(2505618534107015965, 10596673965737636620, 6743689031058784691, 13681650228818157283),
+UInt256(3132023167633769956, 17857528475599433679, 8429611288823480864, 12490376767595308699),
+UInt256(3915028959542212446, 3875166520789740483, 5925328092601963176, 15612970959494135874),
+UInt256(2446893099713882778, 16257037130775751514, 1397487048662533033, 9758106849683834921),
+UInt256(3058616374642353473, 11097924376614913584, 10970230847682942099, 16809319580532181555),
+UInt256(3823270468302941842, 37347415486478268, 13712788559603677624, 16399963457237839040),
+UInt256(2389544042689338651, 4635028153106436821, 17793864886607074323, 10249977160773649400),
+UInt256(2986930053361673314, 1182099172955658123, 8407273052976679192, 8200785432539673846),
+UInt256(3733662566702091642, 10700996003049348462, 5897405297793461086, 10250981790674592308),
+UInt256(2333539104188807276, 11299808520333230692, 17520936366403076891, 1795177600744232288),
+UInt256(2916923880236009095, 14124760650416538366, 3454426384294294497, 16079030056212454072),
+UInt256(3646154850295011369, 13044264794593285053, 13541405017222643930, 6263729514983403878),
+UInt256(4557693562868764212, 2470272937959442605, 3091698216246141200, 17053033930584030656),
+UInt256(2848558476792977632, 10767292623079427436, 4238154394367532202, 10658146206615019160),
+UInt256(3560698095991222040, 13459115778849284295, 5297692992959415253, 4099310721413998142),
+UInt256(4450872619989027550, 16823894723561605369, 2010430222771881162, 9735824420194885581),
+UInt256(2781795387493142219, 5903248183798615451, 12785733935300895486, 10696576281049191393),
+UInt256(3477244234366427774, 2767374211320881410, 11370481400698731454, 4147348314456713433),
+UInt256(4346555292958034717, 12682589801005877571, 4989729714018638509, 14407557429925667599),
+UInt256(2716597058098771698, 10232461634842367434, 812738062047955116, 11310566402917236201),
+UInt256(3395746322623464623, 3567205006698183484, 10239294614414719703, 14138208003646545252),
+UInt256(4244682903279330778, 18294064313654893067, 12799118268018399629, 13061073986130793660),
+UInt256(2652926814549581736, 16045476214461696071, 5693605908297805816, 10469014250545439990),
+UInt256(3316158518186977171, 1610101194367568473, 2505321366944869366, 13086267813181799987),
+UInt256(4145198147733721463, 15847684548241624303, 7743337727108474612, 7134462729622474176),
+UInt256(2590748842333575914, 16822331870292097045, 11757115107083878488, 13682411242868822168),
+UInt256(3238436052916969893, 11804542801010345499, 861335828572684398, 17103014053586027710),
+UInt256(4048045066146212367, 920620445980768161, 14911727840998019210, 12155395530127758829),
+UInt256(2530028166341382729, 7492916806379061957, 2402300872982680150, 12208808224757237173),
+UInt256(3162535207926728411, 13977832026401215350, 7614562109655738092, 6037638244091770658),
+UInt256(3953169009908410514, 12860604014574131284, 294830600214896807, 7547047805114713322),
+UInt256(2470730631192756571, 12649563527536219956, 9407641161989086312, 11634433905837777682),
+UInt256(3088413288990945714, 11200268390992887041, 11759551452486357890, 14543042382297222103),
+UInt256(3860516611238682143, 4776963451886332994, 864381260325783651, 8955430941016751820),
+UInt256(2412822882024176339, 9903131185070039977, 5151924306131002686, 3291301328921775936),
+UInt256(3016028602530220424, 7767227962910162067, 11051591401091141261, 13337498698006995728),
+UInt256(3770035753162775530, 9709034953637702584, 9202803232936538673, 2836815317226580948),
+UInt256(2356272345726734706, 10679832864450952019, 5751752020585336670, 13302224619335082852),
+UInt256(2945340432158418383, 4126419043708914216, 2578004007304282934, 7404408737314077757),
+UInt256(3681675540198022979, 546337786208754866, 3222505009130353668, 32138884787821389),
+UInt256(4602094425247528723, 14517980288043107294, 13251503298267717893, 40173605984776736),
+UInt256(2876309015779705452, 6767894670813248107, 3670503542989935779, 2330951512954179412),
+UInt256(3595386269724631815, 8459868338516560133, 18423187484019583435, 16748747446474887977),
+UInt256(4494232837155789769, 5963149404718312263, 9193926299742315582, 16324248289666222067),
+UInt256(2808895523222368605, 15256183424017414924, 12663732964980029095, 5590969162614000888),
+UInt256(3511119404027960757, 5235171224739604943, 15829666206225036369, 2377025434840113206),
+UInt256(4388899255034950946, 11155650049351894083, 15175396739353907557, 7582967811977529411),
+]
+
+private let bid_multipliers2_binary80_94: [UInt256] = [
+UInt256(2743062034396844341, 11583967299272321706, 7178779952882498271, 7045197891699649834),
+UInt256(3428827542996055427, 644901068808238420, 18196846977957898647, 4194811346197174389),
+UInt256(4286034428745069283, 14641184391292461738, 4299314648737821693, 631828164319080082),
+UInt256(2678771517965668302, 6844897235344094634, 7298757673888526462, 2700735611913119003),
+UInt256(3348464397457085377, 17779493581034894100, 18346819129215433885, 12599291551746174562),
+UInt256(4185580496821356722, 8389308921011453914, 4486779837809740741, 1914056384400554490),
+UInt256(2615987810513347951, 9855004094059546600, 7415923417058475867, 3502128249464040509),
+UInt256(3269984763141684939, 7707069099147045346, 9269904271323094833, 18212718367112214348),
+UInt256(4087480953927106174, 5022150355506418779, 2364008302299092734, 8930839903608104222),
+UInt256(2554675596204441358, 16973902027473675448, 17618406253432790623, 970088921327677235),
+UInt256(3193344495255551698, 11994005497487318503, 3576263743081436662, 15047669206941760256),
+UInt256(3991680619069439623, 5769134835004372320, 18305387734133959540, 9586214471822424512),
+UInt256(2494800386918399764, 10523238299518814556, 11440867333833724712, 15214756081743791128),
+UInt256(3118500483647999705, 13154047874398518195, 14301084167292155891, 571701028470187294),
+UInt256(3898125604559999632, 2607501787715984032, 13264669190687806959, 14549684340869897829),
+UInt256(2436328502849999770, 1629688617322490020, 8290418244179879349, 16011081740684767999),
+UInt256(3045410628562499712, 11260482808507888333, 10363022805224849187, 6178794120573796287),
+UInt256(3806763285703124640, 14075603510634860416, 17565464524958449388, 3111806632289857455),
+UInt256(2379227053564452900, 8797252194146787760, 10978415328099030867, 11168251182035936718),
+UInt256(2974033816955566125, 10996565242683484700, 13723019160123788584, 9348627959117532993),
+UInt256(3717542271194457656, 18357392571781743779, 17153773950154735730, 11685784948896916241),
+UInt256(2323463919496536035, 11473370357363589862, 8415265709633015879, 11915301611487960555),
+UInt256(2904329899370670044, 9730026928277099424, 1295710100186494041, 10282440995932562789),
+UInt256(3630412374213337555, 12162533660346374280, 1619637625233117551, 17464737263343091390),
+UInt256(4538015467766671944, 10591481057005579946, 2024547031541396939, 17219235560751476334),
+UInt256(2836259667354169965, 6619675660628487466, 5877027913140760991, 8456179216255978757),
+UInt256(3545324584192712456, 12886280594212997236, 16569656928280727047, 5958538001892585542),
+UInt256(4431655730240890570, 16107850742766246546, 2265327086641357193, 2836486483938344023),
+UInt256(2769784831400556606, 14679092732656291995, 6027515447578236149, 13302019098529934775),
+UInt256(3462231039250695758, 9125493878965589186, 2922708291045407283, 2792465817880254756),
+UInt256(4327788799063369698, 2183495311852210674, 12876757400661534911, 17325640327632482157),
+UInt256(2704867999414606061, 5976370588335019575, 12659659393840847223, 17746054232411383205),
+UInt256(3381084999268257576, 12082149253846162373, 11212888223873671125, 17570881772086841102),
+UInt256(4226356249085321970, 15102686567307702967, 181052224559925195, 8128544159826387665),
+UInt256(2641472655678326231, 14050865122994702258, 7030686667991035103, 2774497090677798339),
+UInt256(3301840819597907789, 12951895385315989918, 18011730371843569686, 17303179418629411635),
+UInt256(4127301024497384737, 2354811176362823686, 13291290927949686300, 12405602236431988736),
+UInt256(2579563140310865460, 13000972031295234564, 3695370811541166033, 16976873434624768768),
+UInt256(3224453925388581825, 16251215039119043205, 4619213514426457542, 7386033737998797248),
+UInt256(4030567406735727282, 6478960743616640294, 10385702911460459832, 9170135643720752),
+UInt256(2519104629209829551, 8661036483187788088, 1879378301235399491, 5731334777325470),
+UInt256(3148880786512286939, 6214609585557347206, 2349222876544249363, 13842222223753820550),
+UInt256(3936100983140358674, 3156575963519296103, 12159900632535087512, 12691091761264887783),
+UInt256(2460063114462724171, 6584545995626947968, 14517466922975511551, 7931932350790554864),
+UInt256(3075078893078405214, 3618996476106297056, 18146833653719389439, 5303229420060805676),
+UInt256(3843848616348006517, 13747117631987647129, 4236797993439685183, 2017350756648619191),
+UInt256(2402405385217504073, 10897791529205973407, 14177213791968272999, 8178373250546468851),
+UInt256(3003006731521880091, 18233925429934854663, 13109831221532953345, 5611280544755698159),
+UInt256(3753758414402350114, 18180720768991180425, 11775603008488803777, 11625786699372010603),
+UInt256(2346099009001468821, 15974636499046875670, 442222852664420505, 348587659466424771),
+]
+
+private let bid_multipliers2_binary80_95: [UInt256] = [
+UInt256(2932623761251836027, 6133237568526430875, 9776150602685301439, 5047420592760418868),
+UInt256(3665779701564795034, 3054860942230650690, 7608502234929238895, 1697589722523135681),
+UInt256(4582224626955993792, 13041948214643089171, 287255756806772810, 15957045208436083313),
+UInt256(2863890391847496120, 8151217634151930731, 16320435912500090670, 14584839273699939975),
+UInt256(3579862989809370150, 10189022042689913414, 15788858872197725434, 9007677055270149160),
+UInt256(4474828737261712688, 3512905516507615960, 10512701553392380985, 2036224282232910642),
+UInt256(2796767960788570430, 2195565947817259975, 6570438470870238115, 12801855222464038911),
+UInt256(3495959950985713037, 11967829471626350777, 3601362070160409740, 11390633009652660735),
+UInt256(4369949938732141297, 1124728784250774759, 9113388606127900079, 14238291262065825919),
+UInt256(2731218711707588310, 12232170536225203984, 12613396906471019405, 15816461066432223055),
+UInt256(3414023389634485388, 6066841133426729172, 15766746133088774257, 5935518277758115107),
+UInt256(4267529237043106735, 7583551416783411466, 1261688592651416205, 12031083865625031788),
+UInt256(2667205773151941709, 11657248663130714022, 5400241388834523032, 9825270425229338820),
+UInt256(3334007216439927137, 736502773631228815, 15973673772897929598, 12281588031536673524),
+UInt256(4167509020549908921, 5532314485466423923, 15355406197695024094, 6128613002566066097),
+UInt256(2604693137843693075, 14986911599484984712, 7291285864345696106, 17665441181885955023),
+UInt256(3255866422304616344, 14121953480928842986, 9114107330432120133, 12858429440502667971),
+UInt256(4069833027880770430, 17652441851161053733, 2169262126185374359, 2237978745346171251),
+UInt256(2543645642425481519, 6421090138548270679, 3661631838079552926, 8316265743482438888),
+UInt256(3179557053031851899, 3414676654757950444, 18412097852881604870, 1171960142498272802),
+UInt256(3974446316289814873, 18103403873729601768, 4568378242392454471, 10688322214977616811),
+UInt256(2484028947681134296, 4397098393439919249, 2855236401495284044, 13597730412002092363),
+UInt256(3105036184601417870, 5496372991799899061, 8180731520296492959, 16997163015002615453),
+UInt256(3881295230751772337, 16093838276604649634, 14837600418798004103, 16634767750325881413),
+UInt256(2425809519219857711, 3141119895236824165, 13885186280176140468, 17314258871594757739),
+UInt256(3032261899024822138, 17761457924328193919, 3521424794938011874, 3196079515783895558),
+UInt256(3790327373781027673, 12978450368555466590, 18236839048954678554, 13218471431584645255),
+UInt256(2368954608613142296, 1194002452706084763, 6786338387169286192, 12873230663167791189),
+UInt256(2961193260766427870, 1492503065882605954, 3871236965534219836, 16091538328959738986),
+UInt256(3701491575958034837, 11089000869208033250, 14062418243772550604, 1667678837490122116),
+UInt256(2313432234973771773, 9236468552468714733, 13400697420785232031, 10265671310286102131),
+UInt256(2891790293717214716, 16157271709013281321, 2915813720699376327, 8220403119430239759),
+UInt256(3614737867146518396, 1749845562557050035, 8256453169301608313, 5663817880860411795),
+UInt256(4518422333933147995, 2187306953196312544, 5708880443199622487, 11691458369502902647),
+UInt256(2824013958708217496, 17507967910243553004, 3568050276999764054, 14224690508580396011),
+UInt256(3530017448385271871, 3438215814094889639, 4460062846249705068, 8557491098870719205),
+UInt256(4412521810481589838, 18132827822900775761, 963392539384743431, 10696863873588399007),
+UInt256(2757826131550993649, 6721331370885596946, 12131335383183934404, 13603068948633831235),
+UInt256(3447282664438742061, 13013350232034384087, 5940797192125142197, 17003836185792289044),
+UInt256(4309103330548427577, 2431629734760816397, 2814310471729039843, 7419737176958197593),
+UInt256(2693189581592767235, 13048983630293980008, 4064787054044343854, 2331492726385179544),
+UInt256(3366486976990959044, 11699543519440087106, 5080983817555429817, 12137737944836250237),
+UInt256(4208108721238698805, 14624429399300108882, 15574601808799063080, 1337114375763149085),
+UInt256(2630067950774186753, 11446111383776262003, 14345812148926802329, 835696484851968178),
+UInt256(3287584938467733442, 472581174438163792, 13320579167731115007, 5656306624492348127),
+UInt256(4109481173084666802, 9814098504902480548, 16650723959663893759, 2458697262188047254),
+UInt256(2568425733177916751, 10745497583991438247, 1183330437935157791, 8454214816508611390),
+UInt256(3210532166472395939, 8820185961561909904, 15314221102701110951, 5956082502208376333),
+UInt256(4013165208090494924, 6413546433524999477, 696032304666837073, 2833417109333082513),
+UInt256(2508228255056559327, 13231838557807900481, 2740863199630467122, 13300100739401646331),
+]
+
+private let bid_multipliers2_binary80_96: [UInt256] = [
+UInt256(3135285318820699159, 11928112178832487697, 8037765017965471807, 7401753887397282105),
+UInt256(3919106648525873949, 10298454205113221717, 14658892290884227663, 4640506340819214727),
+UInt256(2449441655328671218, 8742376887409457525, 11467650691016336241, 9817845490653091061),
+UInt256(3061802069160839023, 1704599072407046099, 499505308488256589, 16883992881743751730),
+UInt256(3827252586451048778, 15965806895790971335, 14459439690892484449, 7269933046897525950),
+UInt256(2392032866531905486, 14590315328296744988, 15954678834448884636, 16072923200379423479),
+UInt256(2990041083164881858, 9014522123516155428, 1496604469351554180, 1644409926764727733),
+UInt256(3737551353956102323, 2044780617540418477, 1870755586689442725, 2055512408455909666),
+UInt256(2335969596222563951, 17418888950458619212, 3475065250894595655, 3590538264498637493),
+UInt256(2919961995278204939, 17161925169645886111, 4343831563618244568, 18323230885905460578),
+UInt256(3649952494097756174, 16840720443629969735, 818103436095417807, 4457294533672274107),
+UInt256(4562440617622195218, 11827528517682686360, 14857687350401435971, 959932148662954729),
+UInt256(2851525386013872011, 12003891341979066879, 9286054594000897481, 16740858657410204370),
+UInt256(3564406732517340014, 10393178159046445695, 6995882224073733948, 7091015266480591750),
+UInt256(4455508415646675018, 3768100661953281311, 4133166761664779531, 8863769083100739688),
+UInt256(2784692759779171886, 6966748932148188723, 9500758253681569063, 3234012667724268353),
+UInt256(3480865949723964857, 17931808202040011712, 7264261798674573424, 17877573889937499153),
+UInt256(4351082437154956072, 8579702197267850928, 9080327248343216781, 3900223288712322326),
+UInt256(2719426523221847545, 5362313873292406830, 5675204530214510488, 4743482564658895406),
+UInt256(3399283154027309431, 11314578360042896441, 16317377699622913918, 5929353205823619257),
+UInt256(4249103942534136789, 9531536931626232648, 6561664069246478685, 16635063544134299879),
+UInt256(2655689964083835493, 8263053591480089357, 4101040043279049178, 12702757724297631377),
+UInt256(3319612455104794366, 14940503007777499600, 9737986072526199377, 6655075118517263413),
+UInt256(4149515568880992958, 9452256722867098692, 12172482590657749221, 12930529916573967170),
+UInt256(2593447230550620599, 1295974433364548778, 16831173656015869071, 10387424207072423433),
+UInt256(3241809038188275748, 15455026096987849685, 11815595033165060531, 8372594240413141387),
+UInt256(4052261297735344686, 872038547525260491, 934435736174161952, 5854056782089038830),
+UInt256(2532663311084590428, 14380082147485451518, 16724923399604708884, 3658785488805649269),
+UInt256(3165829138855738035, 17975102684356814398, 11682782212651110297, 4573481861007061586),
+UInt256(3957286423569672544, 17857192337018630094, 5380105728959112063, 10328538344686214887),
+UInt256(2473304014731045340, 11160745210636643808, 17197624135881608751, 13372865493069966160),
+UInt256(3091630018413806675, 13950931513295804761, 3050286096142459323, 12104395847910069796),
+UInt256(3864537523017258344, 12826978373192368047, 8424543638605462058, 10518808791460199341),
+UInt256(2415335951885786465, 8016861483245230029, 12182868801769495642, 11185941513090012492),
+UInt256(3019169939857233081, 14632762872483925441, 1393527946929705841, 4759054854507739807),
+UInt256(3773962424821541352, 4455895535322743089, 6353595952089520205, 10560504586562062663),
+UInt256(2358726515513463345, 2784934709576714430, 15500212516124419888, 8906158375814983117),
+UInt256(2948408144391829181, 8092854405398280942, 10151893608300749052, 11132697969768728896),
+UInt256(3685510180489786476, 14727754025175239082, 3466494973521160507, 13915872462210911119),
+UInt256(4606887725612233095, 18409692531469048852, 13556490753756226442, 12783154559336250995),
+UInt256(2879304828507645684, 18423586859809237388, 17696178757952417334, 12601157618012544776),
+UInt256(3599131035634557106, 4582739501051995120, 3673479373730970052, 6528074985660905162),
+UInt256(4498913794543196382, 14951796413169769708, 4591849217163712565, 8160093732076131452),
+UInt256(2811821121589497739, 4733186739803718163, 12093277797582096161, 7405901591761276110),
+UInt256(3514776401986872174, 1304797406327259800, 10504911228550232297, 13869063008128983041),
+UInt256(4393470502483590217, 10854368794763850558, 13131139035687790372, 3501270704879065090),
+UInt256(2745919064052243885, 18313195542795876359, 3595275878877481078, 11411666227404191489),
+UInt256(3432398830065304857, 9056436373212681736, 18329152903879015060, 5041210747400463553),
+UInt256(4290498537581631071, 15932231484943240075, 4464697056139217209, 6301513434250579442),
+UInt256(2681561585988519419, 16875173705730606903, 484592650873316803, 15467660942475081911),
+]
+
+private let bid_multipliers2_binary80_97: [UInt256] = [
+UInt256(3351951982485649274, 16482281113735870724, 14440798868873809716, 14722890159666464485),
+UInt256(4189939978107061593, 11379479355315062597, 18050998586092262145, 18403612699583080606),
+UInt256(2618712486316913496, 194645569430832267, 13587717125521357793, 4584728909598343523),
+UInt256(3273390607896141870, 243306961788540334, 12372960388474309337, 10342597155425317307),
+UInt256(4091738259870177337, 9527505739090451226, 6242828448738110863, 17539932462709034538),
+UInt256(2557336412418860835, 17483906133000001776, 8513453798888707193, 17879986816834228443),
+UInt256(3196670515523576044, 17243196647822614316, 10641817248610883992, 8514925465760621841),
+UInt256(3995838144404470056, 3107251736068716279, 13302271560763604990, 10643656832200777301),
+UInt256(2497398840252793785, 1942032335042947674, 15231448753118334975, 2040599501698097909),
+UInt256(3121748550315992231, 7039226437231072497, 9815938904543142910, 16385807432404786099),
+UInt256(3902185687894990289, 4187347028111452717, 16881609649106316542, 11258887253651206815),
+UInt256(2438866054934368930, 14146306938638127708, 12856849039905141791, 2425118515104616356),
+UInt256(3048582568667961163, 8459511636442883827, 16071061299881427238, 16866456199162934157),
+UInt256(3810728210834951454, 5962703527126216880, 15477140606424396144, 11859698212098891888),
+UInt256(2381705131771844658, 17561747759736049262, 9673212879015247590, 7412311382561807430),
+UInt256(2977131414714805823, 12728812662815285770, 2868144061914283680, 42017191347483479),
+UInt256(3721414268393507279, 11299329810091719308, 12808552114247630408, 52521489184354349),
+UInt256(2325883917745942049, 13979610158948406423, 17228717108259544813, 32825930740221468),
+UInt256(2907354897182427562, 3639454643403344317, 16924210366897043112, 4652718431852664739),
+UInt256(3634193621478034452, 13772690341108956205, 7320204903339140178, 5815898039815830924),
+UInt256(4542742026847543065, 17215862926386195256, 13761942147601313126, 16493244586624564463),
+UInt256(2839213766779714416, 3842385301350290179, 8601213842250820704, 5696591848212964885),
+UInt256(3549017208474643020, 4802981626687862724, 6139831284386137976, 7120739810266206107),
+UInt256(4436271510593303775, 6003727033359828405, 7674789105482672470, 8900924762832757633),
+UInt256(2772669694120814859, 10669858423490974609, 7102586200140364246, 951391958343085617),
+UInt256(3465837117651018574, 8725637010936330357, 13489918768602843211, 10412611984783632829),
+UInt256(4332296397063773218, 1683674226815637139, 3027340405471390302, 8404078962552153132),
+UInt256(2707685248164858261, 5663982410187161115, 18032988817915476603, 640863333167707804),
+UInt256(3384606560206072826, 11691664031161339298, 17929550003966957849, 14636137221741798467),
+UInt256(4230758200257591033, 5391208002096898315, 13188565468103921504, 4460113471895084371),
+UInt256(2644223875160994395, 14898720047379031207, 5937010408351256988, 2787570919934427732),
+UInt256(3305279843951242994, 14011714040796401105, 2809576992011683331, 3484463649918034665),
+UInt256(4131599804939053743, 8291270514140725573, 8123657258441992067, 18190637617679707043),
+UInt256(2582249878086908589, 12099573098979035339, 7383128795739938994, 9063305501836122950),
+UInt256(3227812347608635737, 1289408318441630462, 4617224976247535839, 2105759840440377880),
+UInt256(4034765434510794671, 6223446416479425981, 14994903257164195606, 16467257855832636061),
+UInt256(2521728396569246669, 10807183037940723094, 11677657544941316206, 5680350141468009635),
+UInt256(3152160495711558336, 18120664815853291772, 5373699894321869449, 16323809713689787851),
+UInt256(3940200619639447921, 4204086946107063099, 6717124867902336812, 6569704086830071102),
+UInt256(2462625387274654950, 14156769387385384197, 1892360033225266555, 13329437091123570247),
+UInt256(3078281734093318688, 8472589697376954438, 6977136059958971098, 12050110345477074904),
+UInt256(3847852167616648360, 10590737121721193047, 17944792111803489681, 5839265894991567822),
+UInt256(2404907604760405225, 6619210701075745654, 18133024097518262906, 15178756230438199649),
+UInt256(3006134505950506531, 12885699394772069972, 13442908085043052825, 9750073251192973753),
+UInt256(3757668132438133164, 11495438225037699561, 16803635106303816031, 16799277582418605095),
+UInt256(2348542582773833227, 16408020927503338034, 3584742913798803163, 17417077516652710041),
+UInt256(2935678228467291534, 15898340140951784638, 13704300679103279762, 17159660877388499647),
+UInt256(3669597785584114418, 10649553139334954990, 7907003812024323895, 12226204059880848751),
+UInt256(4586997231980143023, 4088569387313917930, 660382728175629061, 10671069056423673034),
+UInt256(2866873269987589389, 9472884894712280562, 5024425223537156067, 8975261169478489598),
+]
+
+private let bid_multipliers2_binary80_98: [UInt256] = [
+UInt256(3583591587484486736, 16452792136817738606, 15503903566276220892, 6607390443420724094),
+UInt256(4479489484355608421, 2119246097312621642, 10156507420990500307, 8259238054275905117),
+UInt256(2799680927722255263, 3630371820034082478, 10959503156546450596, 2856180774708746746),
+UInt256(3499601159652819078, 18373022830324766810, 4476006908828287437, 3570225968385933433),
+UInt256(4374501449566023848, 13742906501051182704, 14818380672890135104, 9074468478909804695),
+UInt256(2734063405978764905, 8589316563156989190, 9261487920556334440, 5671542799318627935),
+UInt256(3417579257473456131, 15348331722373624392, 2353487863840642242, 7089428499148284918),
+UInt256(4271974071841820164, 14573728634539642586, 2941859829800802802, 18085157660790131956),
+UInt256(2669983794901137602, 18331952433442052424, 6450348412052889655, 15914909556421220376),
+UInt256(3337479743626422003, 13691568504947789722, 8062935515066112069, 15281950927099137566),
+UInt256(4171849679533027504, 12502774612757349249, 855297356977864279, 5267380603591758246),
+UInt256(2607406049708142190, 7814234132973343280, 12063775894179634934, 10209641904885930760),
+UInt256(3259257562135177738, 544420629361903292, 15079719867724543668, 3538680344252637642),
+UInt256(4074071952668972172, 9903897823557154924, 402905760946127969, 4423350430315797052),
+UInt256(2546294970418107607, 15413308176577997635, 9475188137446105788, 14293809065015842918),
+UInt256(3182868713022634509, 14654949202295109140, 7232299153380244331, 17867261331269803647),
+UInt256(3978585891278293137, 4483628447586722713, 9040373941725305414, 17722390645659866655),
+UInt256(2486616182048933210, 14331482825810171455, 17179448759646785644, 6464808135110028755),
+UInt256(3108270227561166513, 8690981495407938511, 16862624931131094151, 8081010168887535944),
+UInt256(3885337784451458141, 15475412887687311043, 16466595145486479785, 5489576692682032026),
+UInt256(2428336115282161338, 11977976064018263354, 7985778956715355913, 14960200478994739776),
+UInt256(3035420144102701673, 5749098043168053385, 758851659039419084, 4865192543461261008),
+UInt256(3794275180128377091, 11798058572387454635, 5560250592226661759, 6081490679326576260),
+UInt256(2371421987580235682, 5067943598528465195, 1169313610927969647, 10718460702220192019),
+UInt256(2964277484475294602, 15558301535015357301, 15296700068942125771, 8786389859347852119),
+UInt256(3705346855594118253, 10224504881914420819, 5285817030895493502, 6371301305757427245),
+UInt256(2315841784746323908, 8696158560410206964, 997792635095989486, 17817121371380555740),
+UInt256(2894802230932904885, 10870198200512758705, 1247240793869986858, 13048029677370918867),
+UInt256(3618502788666131106, 18199433769068336285, 6170737010764871477, 7086665059858872776),
+UInt256(4523128485832663883, 13525920174480644548, 12325107281883477250, 13470017343250978874),
+UInt256(2826955303645414927, 6147857099836708890, 16926564088031949089, 13030446857959249701),
+UInt256(3533694129556768659, 3073135356368498209, 11934833073185160554, 2453000517166898414),
+UInt256(4417117661945960823, 17676477250742786474, 1083483286199286980, 12289622683313398825),
+UInt256(2760698538716225514, 17965327309355323402, 5288863072301942266, 16904386213925650074),
+UInt256(3450873173395281893, 13233287099839378444, 15834450877232203641, 11907110730552286784),
+UInt256(4313591466744102367, 2706550819517059344, 1346319522830702936, 1048830357908194768),
+UInt256(2695994666715063979, 8609123289839243946, 841449701769189335, 655518973692621730),
+UInt256(3369993333393829974, 6149718093871667028, 10275184164066262476, 14654456772397940874),
+UInt256(4212491666742287467, 16910519654194359593, 12843980205082828095, 18318070965497426093),
+UInt256(2632807291713929667, 8263231774657780794, 1109958600535685703, 18366323381076973164),
+UInt256(3291009114642412084, 5717353699894838088, 10610820287524382937, 18346218207918828551),
+UInt256(4113761393303015105, 7146692124868547610, 13263525359405478672, 9097714704616371977),
+UInt256(2571100870814384440, 15995897624111312016, 12901389368055812074, 5686071690385232486),
+UInt256(3213876088517980551, 1548127956429588404, 16126736710069765092, 16330961649836316415),
+UInt256(4017345110647475688, 15770218000819149218, 1711676813877654750, 1966957988585843903),
+UInt256(2510840694154672305, 9856386250511968261, 5681484027100922122, 15064406798148316151),
+UInt256(3138550867693340381, 16932168831567348230, 11713541052303540557, 9607136460830619381),
+UInt256(3923188584616675477, 7330152984177021576, 5418554278524649888, 16620606594465662130),
+UInt256(2451992865385422173, 6887188624324332437, 3386596424077906180, 10387879121541038832),
+UInt256(3064991081731777716, 13220671798832803450, 8844931548524770629, 12984848901926298539),
+]
+
+private let bid_multipliers2_binary80_99: [UInt256] = [
+UInt256(3831238852164722145, 16525839748541004313, 1832792398801187479, 2396003072125709462),
+UInt256(2394524282602951341, 3411120815197045839, 12674710295319211934, 8415030947719650270),
+UInt256(2993155353253689176, 8875587037423695203, 11231701850721627014, 1295416647794787029),
+UInt256(3741444191567111470, 11094483796779619004, 9427941294974645863, 10842642846598259595),
+UInt256(2338402619729444669, 2322366354559873973, 15115835346213929472, 13694180806764994103),
+UInt256(2923003274661805836, 7514643961627230371, 5059736127485248128, 17117726008456242628),
+UInt256(3653754093327257295, 9393304952034037964, 1712984140929172257, 2950413436860751669),
+UInt256(4567192616659071619, 7129945171615159551, 2141230176161465321, 8299702814503327491),
+UInt256(2854495385411919762, 2150372723045780767, 8255797887741997681, 16716529305133049442),
+UInt256(3568119231764899702, 11911337940662001767, 5708061341250109198, 7060603576134148090),
+UInt256(4460149039706124628, 5665800388972726401, 2523390658135248593, 18049126507022460921),
+UInt256(2787593149816327892, 12764497279962729808, 13106334207403000131, 4363175039247956220),
+UInt256(3484491437270409865, 15955621599953412260, 16382917759253750164, 842282780632557370),
+UInt256(4355614296588012332, 6109468944659601614, 2031903125357636089, 1052853475790696713),
+UInt256(2722258935367507707, 13041790127267026816, 15104997508630686267, 12187248468437655206),
+UInt256(3402823669209384634, 11690551640656395617, 434502812078806218, 10622374567119681103),
+UInt256(4253529586511730793, 5389817513965718713, 5154814533525895677, 4054596172044825571),
+UInt256(2658455991569831745, 14897850992297043955, 14750974129522154558, 4839965616741709934),
+UInt256(3323069989462289682, 4787255685089141232, 13827031643475305293, 15273329057781913225),
+UInt256(4153837486827862102, 15207441643216202348, 17283789554344131617, 5256603266945227819),
+UInt256(2596148429267413814, 4892965008582738564, 1578996434610306452, 14814592087909237147),
+UInt256(3245185536584267267, 15339578297583199013, 1973745543262883066, 71496036176994818),
+UInt256(4056481920730334084, 14562786853551610862, 7078867947505991736, 9312742082076019330),
+UInt256(2535301200456458802, 18325113820324532596, 18259350522473408547, 5820463801297512082),
+UInt256(3169126500570573503, 13683020238550889938, 4377444079382209068, 2663893733194502198),
+UInt256(3961408125713216879, 12492089279761224518, 14695177136082537143, 3329867166493127747),
+UInt256(2475880078570760549, 14725084827491847180, 4572799691624197810, 8998696006699286698),
+UInt256(3094850098213450687, 4571297979082645263, 5715999614530247263, 2024997971519332565),
+UInt256(3868562622766813359, 1102436455425918675, 2533313499735421174, 16366305519681329418),
+UInt256(2417851639229258349, 7606551812282281027, 17724222001830495898, 5617254931373442982),
+UInt256(3022314549036572936, 14119875783780239188, 17543591483860731968, 16244940701071579536),
+UInt256(3777893186295716170, 17649844729725298986, 3482745281116363345, 1859431802629922803),
+UInt256(2361183241434822606, 15642838974505699770, 6788401819125114994, 12691359922712171512),
+UInt256(2951479051793528258, 10330176681277348904, 17708874310761169551, 6640827866535438582),
+UInt256(3689348814741910323, 3689348814741910323, 3689348814741910323, 3689348814741910324),
+UInt256(4611686018427387904, 0, 0, 0),
+UInt256(2882303761517117440, 0, 0, 0),
+UInt256(3602879701896396800, 0, 0, 0),
+UInt256(4503599627370496000, 0, 0, 0),
+UInt256(2814749767106560000, 0, 0, 0),
+UInt256(3518437208883200000, 0, 0, 0),
+UInt256(4398046511104000000, 0, 0, 0),
+UInt256(2748779069440000000, 0, 0, 0),
+UInt256(3435973836800000000, 0, 0, 0),
+UInt256(4294967296000000000, 0, 0, 0),
+UInt256(2684354560000000000, 0, 0, 0),
+UInt256(3355443200000000000, 0, 0, 0),
+UInt256(4194304000000000000, 0, 0, 0),
+UInt256(2621440000000000000, 0, 0, 0),
+UInt256(3276800000000000000, 0, 0, 0),
+]
+
+private let bid_multipliers2_binary80_100: [UInt256] = [
+UInt256(4096000000000000000, 0, 0, 0),
+UInt256(2560000000000000000, 0, 0, 0),
+UInt256(3200000000000000000, 0, 0, 0),
+UInt256(4000000000000000000, 0, 0, 0),
+UInt256(2500000000000000000, 0, 0, 0),
+UInt256(3125000000000000000, 0, 0, 0),
+UInt256(3906250000000000000, 0, 0, 0),
+UInt256(2441406250000000000, 0, 0, 0),
+UInt256(3051757812500000000, 0, 0, 0),
+UInt256(3814697265625000000, 0, 0, 0),
+UInt256(2384185791015625000, 0, 0, 0),
+UInt256(2980232238769531250, 0, 0, 0),
+UInt256(3725290298461914062, 9223372036854775808, 0, 0),
+UInt256(2328306436538696289, 1152921504606846976, 0, 0),
+UInt256(2910383045673370361, 6052837899185946624, 0, 0),
+UInt256(3637978807091712951, 12177733392409821184, 0, 0),
+UInt256(4547473508864641189, 10610480722084888576, 0, 0),
+UInt256(2842170943040400743, 8937393460516749312, 0, 0),
+UInt256(3552713678800500929, 6560055807218548736, 0, 0),
+UInt256(4440892098500626161, 12811755777450573824, 0, 0),
+UInt256(2775557561562891351, 1089818333265526784, 0, 0),
+UInt256(3469446951953614188, 15197330971864072192, 0, 0),
+UInt256(4336808689942017736, 549919641120538624, 0, 0),
+UInt256(2710505431213761085, 343699775700336640, 0, 0),
+UInt256(3388131789017201356, 5041310738052808704, 0, 0),
+UInt256(4235164736271501695, 6301638422566010880, 0, 0),
+UInt256(2646977960169688559, 10856053041744838656, 0, 0),
+UInt256(3308722450212110699, 8958380283753660416, 0, 0),
+UInt256(4135903062765138374, 6586289336264687616, 0, 0),
+UInt256(2584939414228211483, 17951488890447593472, 0, 0),
+UInt256(3231174267785264354, 17827675094632103936, 0, 0),
+UInt256(4038967834731580443, 13061221831435354112, 0, 0),
+UInt256(2524354896707237777, 5857420635433402368, 0, 0),
+UInt256(3155443620884047221, 11933461812719140864, 0, 0),
+UInt256(3944304526105059027, 1081769210616762368, 0, 0),
+UInt256(2465190328815661891, 16817006821131334144, 0, 0),
+UInt256(3081487911019577364, 16409572507986779776, 0, 0),
+UInt256(3851859888774471706, 2065221561273923104, 0, 0),
+UInt256(2407412430484044816, 5902449494223589844, 0, 0),
+UInt256(3009265538105056020, 7378061867779487305, 0, 0),
+UInt256(3761581922631320025, 9222577334724359131, 4611686018427387904, 0),
+UInt256(2350988701644575015, 17293325880271194217, 576460752303423488, 0),
+UInt256(2938735877055718769, 17004971331911604867, 5332261958806667264, 0),
+UInt256(3673419846319648462, 7421156109607342372, 2053641430080946176, 0),
+UInt256(4591774807899560578, 53073100154402157, 2567051787601182720, 0),
+UInt256(2869859254937225361, 4644856706023889252, 3910250376464433152, 0),
+UInt256(3587324068671531701, 10417756900957249469, 4887812970580541440, 0),
+UInt256(4484155085839414626, 17633882144623949740, 10721452231653064704, 0),
+UInt256(2802596928649634141, 15632862358817356491, 15924279681637941248, 0),
+UInt256(3503246160812042677, 5706019893239531902, 15293663583620038656, 0),
+]
+
+private let bid_multipliers2_binary80_101: [UInt256] = [
+UInt256(4379057701015053346, 11744210884976802782, 9893707442670272512, 0),
+UInt256(2736911063134408341, 11951817821537889643, 1571881133241532416, 0),
+UInt256(3421138828918010427, 1104714221640198341, 15799909471834079232, 0),
+UInt256(4276423536147513033, 15215950832332411639, 5914828784510435328, 0),
+UInt256(2672764710092195646, 2592440242566675418, 10614297017960103936, 0),
+UInt256(3340955887615244557, 12463922340063120081, 4044499235595354112, 0),
+UInt256(4176194859519055697, 1744844869796736389, 9667310062921580544, 0),
+UInt256(2610121787199409810, 12619743089691430003, 8347911798539681792, 0),
+UInt256(3262652233999262263, 6551306825259511696, 5823203729747214336, 0),
+UInt256(4078315292499077829, 3577447513147001716, 7279004662184017920, 0),
+UInt256(2548947057811923643, 4541747704930570024, 13772749950719787008, 0),
+UInt256(3186183822264904554, 1065498612735824626, 17215937438399733760, 0),
+UInt256(3982729777831130692, 10555245302774556591, 12296549761144891392, 0),
+UInt256(2489206111144456682, 15820400351088873677, 14602872628356638976, 0),
+UInt256(3111507638930570853, 10552128402006316289, 4418532730163635008, 0),
+UInt256(3889384548663213566, 17801846520935283265, 10134851931131931664, 0),
+UInt256(2430865342914508479, 6514468057157164136, 17863497503025927050, 0),
+UInt256(3038581678643135599, 3531399053019067267, 3882627805072857196, 9223372036854775808),
+UInt256(3798227098303919498, 18249306871555997796, 241598737913683591, 11529215046068469760),
+UInt256(2373891936439949686, 16017502813149886526, 9374371248050828052, 14123288431433875456),
+UInt256(2967364920549937108, 10798506479582582350, 2494592023208759257, 17654110539292344320),
+UInt256(3709206150687421385, 13498133099478227937, 12341612065865724880, 8232580118833266688),
+UInt256(2318253844179638366, 1518804159532810605, 795978513524996194, 5145362574270791680),
+UInt256(2897817305224547957, 11121877236270789064, 5606659160333633146, 15655075254693265408),
+UInt256(3622271631530684947, 67288490056322618, 7008323950417041433, 10345472031511805952),
+UInt256(4527839539413356183, 13919168667852566984, 17983776974876077599, 17543526057817145344),
+UInt256(2829899712133347614, 15617009445048936221, 11239860609297548499, 17882232813776797696),
+UInt256(3537374640166684518, 10297889769456394469, 214767706339771912, 17741104998793609216),
+UInt256(4421718300208355648, 3648990174965717278, 4880145651352102795, 3729637174782459904),
+UInt256(2763573937630222280, 2280618859353573298, 16885149087377227959, 25180225025343488),
+UInt256(3454467422037777850, 2850773574191966623, 11883064322366759140, 13866533336563843072),
+UInt256(4318084277547222312, 12786839004594734087, 10242144384531061021, 17333166670704803840),
+UInt256(2698802673467013945, 7991774377871708804, 13318869267972994994, 13139072178404196352),
+UInt256(3373503341833767431, 14601403990767023909, 16648586584966243743, 7200468186150469632),
+UInt256(4216879177292209289, 13640068970031391983, 6975675175925640967, 4388899214260699136),
+UInt256(2635549485807630806, 1607514078628538133, 11277326012594607460, 9660591036554018816),
+UInt256(3294436857259538507, 11232764635140448475, 261599460461095613, 12075738795692523520),
+UInt256(4118046071574423134, 9429269775498172689, 14162057380858533229, 1259615439333490688),
+UInt256(2573778794734014459, 1281607591258970027, 1933756835395501412, 3093102658797125632),
+UInt256(3217223493417518073, 15437067544355876245, 16252254099526540477, 3866378323496407040),
+UInt256(4021529366771897592, 5461276375162681595, 6480259569126011884, 9444658922797896704),
+UInt256(2513455854232435995, 3413297734476675997, 1744319221490063475, 15126283863603461248),
+UInt256(3141819817790544993, 18101680223378008708, 6792085045289967248, 14296168811076938656),
+UInt256(3927274772238181242, 8792042223940347173, 8490106306612459060, 17870211013846173320),
+UInt256(2454546732648863276, 10106712408390104887, 7612159450846480865, 1945509846799082517),
+UInt256(3068183415811079095, 12633390510487631109, 4903513295130713177, 7043573326926241051),
+UInt256(3835229269763848869, 11180052119682150982, 10741077637340779375, 13416152677085189217),
+UInt256(2397018293602405543, 9293375584015038316, 2101487504910599205, 15302624450819325117),
+UInt256(2996272867003006929, 7005033461591409991, 2626859381138249007, 5293222508241992684),
+UInt256(3745341083753758661, 13367977845416650392, 17118632281704974971, 2004842116875102951),
+]
+
+private let bid_multipliers2_binary80_102: [UInt256] = [
+UInt256(2340838177346099163, 10660829162599100447, 10699145176065609356, 17393927387542797009),
+UInt256(2926047721682623954, 8714350434821487655, 8762245451654623792, 3295665160718944645),
+UInt256(3657559652103279943, 1669566006672083761, 6341120796140891836, 4119581450898680806),
+UInt256(4571949565129099928, 15922015563622268413, 12538087013603502699, 5149476813623351007),
+UInt256(2857468478205687455, 9951259727263917758, 10142147392715883139, 912579999300900428),
+UInt256(3571835597757109319, 7827388640652509294, 3454312204040078115, 14975783054408289246),
+UInt256(4464794497196386649, 5172549782388248713, 13541262291904873452, 14108042799582973654),
+UInt256(2790496560747741655, 14762058660061125206, 1545759904799464051, 18040898786594134342),
+UInt256(3488120700934677069, 13840887306649018603, 11155571917854105872, 17939437464815280023),
+UInt256(4360150876168346337, 3466051078029109542, 9332778878890244437, 3977552757309548413),
+UInt256(2725094297605216460, 13695496969836663224, 1221300780879014869, 4791813482532161710),
+UInt256(3406367872006520575, 17119371212295829030, 1526625976098768586, 10601452871592590042),
+UInt256(4257959840008150719, 16787527996942398383, 11131654506978236541, 4028444052635961744),
+UInt256(2661224900005094199, 17409734025730080845, 13874813094502479694, 4823620542111170042),
+UInt256(3326531125006367749, 17150481513735213153, 3508458312845935905, 15252897714493738360),
+UInt256(4158163906257959687, 7603043836886852729, 8997258909484807786, 5231064087835009238),
+UInt256(2598852441411224804, 11669431425695364811, 17152501864496474626, 7881101073324268678),
+UInt256(3248565551764031005, 14586789282119206014, 16828941312193205379, 628004304800560040),
+UInt256(4060706939705038757, 4398428547366843806, 11812804603386730915, 14620063436282863761),
+UInt256(2537941837315649223, 5054860851317971331, 2771316858689318918, 6831696638463095899),
+UInt256(3172427296644561529, 1706890045720076259, 17299204128643812359, 17762992834933645682),
+UInt256(3965534120805701911, 6745298575577483228, 17012319142377377545, 17592055025239669198),
+UInt256(2478458825503563694, 11133340637377008874, 1409327427131085158, 4077505363133711393),
+UInt256(3098073531879454618, 4693303759866485284, 10985031320768632255, 14320253740771915049),
+UInt256(3872591914849318272, 15090001736687882413, 13731289150960790319, 13288631157537505907),
+UInt256(2420369946780823920, 9431251085429926508, 10887898728564187901, 15222923501102023048),
+UInt256(3025462433476029900, 11789063856787408135, 13609873410705234877, 5193596321095365098),
+UInt256(3781828041845037375, 14736329820984260169, 12400655744954155692, 11103681419796594277),
+UInt256(2363642526153148359, 16127735165756244462, 832880812955265451, 16163172924227647231),
+UInt256(2954553157691435449, 15547982938767917673, 10264473053048857622, 15592280136857171135),
+UInt256(3693191447114294312, 5599920618177733379, 17442277334738459932, 10266978134216688110),
+UInt256(2308244654446433945, 3499950386361083362, 8595580324997843505, 15640233370740205877),
+UInt256(2885305818058042431, 8986624001378742107, 1521103369392528574, 5715233658143093634),
+UInt256(3606632272572553039, 6621593983296039729, 15736437267022824429, 16367414109533642851),
+UInt256(4508290340715691299, 3665306460692661758, 5835488528496366825, 6624209581634889851),
+UInt256(2817681462947307061, 18431717602428771262, 17482238385592392977, 15669346034590275917),
+UInt256(3522101828684133827, 9204588947753800366, 12629425945135715414, 5751624487955681184),
+UInt256(4402627285855167284, 6894050166264862554, 6563410394564868459, 16412902646799377288),
+UInt256(2751642053659479552, 13532153390770314904, 8713817515030430691, 7952221145035916853),
+UInt256(3439552567074349440, 16915191738462893630, 10892271893788038364, 5328590412867508163),
+UInt256(4299440708842936801, 2697245599369065422, 4391967830380272147, 6660738016084385203),
+UInt256(2687150443026835500, 13214993545674135648, 16580037949269833804, 1857118250839046800),
+UInt256(3358938053783544375, 16518741932092669561, 2278303362877740639, 2321397813548808500),
+UInt256(4198672567229430469, 16036741396688449047, 7459565222024563702, 16736805322218174337),
+UInt256(2624170354518394043, 12328806382143974606, 11579757291406434170, 5848817307958971057),
+UInt256(3280212943147992554, 10799321959252580354, 5251324577403266904, 16534393671803489629),
+UInt256(4100266178934990693, 4275780412210949634, 15787527758608859439, 2221248016044810420),
+UInt256(2562666361834369183, 4978205766845537473, 14478890867557925053, 8305809037669088369),
+UInt256(3203332952292961479, 1611071190129533938, 4263555529165242604, 14993947315513748365),
+UInt256(4004166190366201848, 15848897042944081134, 14552816448311329064, 295690070682633840),
+]
+
+private let bid_multipliers2_binary80_103: [UInt256] = [
+UInt256(2502603868978876155, 9905560651840050709, 4483824261767192761, 184806294176646150),
+UInt256(3128254836223595194, 7770264796372675482, 10216466345636378855, 4842693886148195591),
+UInt256(3910318545279493993, 489458958611068545, 3547210895190697761, 1441681339257856585),
+UInt256(2443949090799683745, 11835126895200387600, 13746221855562655860, 12430265883104630126),
+UInt256(3054936363499604682, 958850563718320788, 17182777319453319825, 15537832353880787657),
+UInt256(3818670454374505852, 10421935241502676794, 3031727575607098166, 5587232387068820859),
+UInt256(2386669033984066157, 15737081562793948804, 6506515753181824257, 17327078297200176749),
+UInt256(2983336292480082697, 5836293898210272293, 8133144691477280322, 7823789816218057224),
+UInt256(3729170365600103371, 11907053391190228270, 14778116882773988307, 556365233417795722),
+UInt256(2330731478500064607, 5136065360280198717, 4624637033306354787, 16488629335381979991),
+UInt256(2913414348125080759, 1808395681922860492, 10392482310060331388, 15999100650800087084),
+UInt256(3641767935156350948, 16095552657685739327, 12990602887575414236, 1552131739790557239),
+UInt256(4552209918945438686, 1672696748397622543, 11626567591041879891, 1940164674738196549),
+UInt256(2845131199340899178, 14880493523030677801, 14184133772042256787, 17353503986207230507),
+UInt256(3556413999176123973, 9377244866933571444, 3895109159770657272, 17080193964331650230),
+UInt256(4445517498970154966, 16333242102094352209, 4868886449713321591, 2903498381705011171),
+UInt256(2778448436856346854, 5596590295381582226, 14572269077139295754, 8732215516206713838),
+UInt256(3473060546070433567, 16219109906081753591, 8991964309569343885, 1691897358403616490),
+UInt256(4341325682588041959, 15662201364174804085, 6628269368534291952, 6726557716431908516),
+UInt256(2713328551617526224, 16706404880250334409, 6448511364547626422, 4204098572769942823),
+UInt256(3391660689521907781, 2436262026603366395, 12672325224111920931, 14478495252817204336),
+UInt256(4239575861902384726, 7657013551681595898, 11228720511712513260, 13486433047594117516),
+UInt256(2649734913688990454, 173947451373609532, 11629636338247708691, 17652392691601099256),
+UInt256(3312168642111238067, 9440806351071787723, 14537045422809635864, 17453804846073986166),
+UInt256(4140210802639047584, 7189321920412346750, 13559620760084656927, 3370511983882931091),
+UInt256(2587631751649404740, 4493326200257716719, 3863076956625522675, 9024099017567913788),
+UInt256(3234539689561755925, 5616657750322145899, 217160177354515440, 6668437753532504331),
+UInt256(4043174611952194906, 11632508206330070277, 14106508276975308012, 8335547191915630413),
+UInt256(2526984132470121816, 11882003647383681827, 11122410682323261459, 14433089031802044817),
+UInt256(3158730165587652270, 14852504559229602284, 9291327334476688920, 13429675271325168117),
+UInt256(3948412706984565338, 9342258662182227047, 11614159168095861150, 16787094089156460146),
+UInt256(2467757941865353336, 10450597682291279808, 14176378507700995075, 5880247787295399687),
+UInt256(3084697427331691670, 13063247102864099760, 17720473134626243844, 2738623715691861705),
+UInt256(3855871784164614588, 7105686841725348893, 3703847344573253189, 3423279644614827131),
+UInt256(2409919865102884117, 13664426312933118866, 4620747599571977195, 4445392787097960909),
+UInt256(3012399831378605147, 3245474835884234870, 14999306536319747302, 945054965445063232),
+UInt256(3765499789223256433, 17891901600137457300, 9525761133544908319, 10404690743661104848),
+UInt256(2353437368264535271, 4264909472444828956, 15176972745320343507, 13420460742429272386),
+UInt256(2941796710330669089, 719450822128648292, 524471857940877768, 12163889909609202579),
+UInt256(3677245887913336361, 5510999546088198269, 655589822426097210, 15204862387011503223),
+UInt256(4596557359891670451, 11500435451037635740, 5431173296460009417, 9782705946909603221),
+UInt256(2872848349932294032, 4881929147684828385, 12617855347142281693, 17643406262886971773),
+UInt256(3591060437415367540, 6102411434606035482, 1937261128645688405, 8219199773326551005),
+UInt256(4488825546769209425, 7628014293257544352, 11644948447661886314, 14885685735085576660),
+UInt256(2805515966730755890, 16296723979354434980, 7278092779788678946, 13915239602855873316),
+UInt256(3506894958413444863, 11147532937338267917, 9097615974735848683, 8170677466715065837),
+UInt256(4383618698016806079, 9322730153245446992, 15983705986847198758, 5601660814966444393),
+UInt256(2739761686260503799, 12744235373419486226, 9989816241779499223, 17336096064636191458),
+UInt256(3424702107825629749, 11318608198346969879, 3263898265369598221, 17058434062367851418),
+UInt256(4280877634782037187, 313202192651548636, 17914930886994161489, 7487984522677650560),
+]
+
+private let bid_multipliers2_binary80_104: [UInt256] = [
+UInt256(2675548521738773241, 16336652434903075562, 1973459767516575122, 16209205372742001360),
+UInt256(3344435652173466552, 6585757488346680740, 11690196746250494711, 11038134679072725892),
+UInt256(4180544565216833190, 8232196860433350925, 14612745932813118389, 9185982330413519461),
+UInt256(2612840353260520744, 533437019343456424, 11438809217221892945, 8047081965722143615),
+UInt256(3266050441575650930, 666796274179320530, 14298511521527366181, 14670538475580067423),
+UInt256(4082563051969563662, 10056867379578926471, 8649767365054431919, 4503115039192920567),
+UInt256(2551601907480977289, 1673856093809441140, 12323633630800101805, 9731975927136657210),
+UInt256(3189502384351221611, 6704006135689189329, 15404542038500127256, 16776655927348209417),
+UInt256(3986877980439027014, 3768321651184098758, 5420619492842995359, 2524075835475710155),
+UInt256(2491798737774391883, 16190259087272225435, 17222945238309035811, 8495076424813400703),
+UInt256(3114748422217989854, 15626137840662893890, 16916995529458906860, 6007159512589362975),
+UInt256(3893435527772487318, 10309300263973841555, 11922872374968857767, 7508949390736703718),
+UInt256(2433397204857804574, 1831626646556263068, 5145952225141842152, 11610622396851521680),
+UInt256(3041746506072255717, 11512905345050104643, 6432440281427302690, 14513277996064402100),
+UInt256(3802183132590319647, 556073626030467092, 3428864333356740459, 8918225458225726817),
+UInt256(2376364457868949779, 7265075043910123788, 11366412245202738595, 3268047902177385309),
+UInt256(2970455572336187224, 4469657786460266831, 14208015306503423243, 17920117933003895348),
+UInt256(3713069465420234030, 5587072233075333539, 13148333114701891150, 17788461397827481281),
+UInt256(2320668415887646268, 17326978200954247174, 5911865187474988017, 6506102355214787897),
+UInt256(2900835519859557836, 3211978677483257351, 16613203521198510829, 12744313962445872775),
+UInt256(3626044399824447295, 4014973346854071689, 16154818383070750633, 2095334397775177256),
+UInt256(4532555499780559119, 407030665140201708, 6358464923556274579, 7230854015646359474),
+UInt256(2832847187362849449, 7171923193353707923, 13197412614077447420, 2213440750565280719),
+UInt256(3541058984203561811, 13576590010119522808, 11885079749169421371, 2766800938206600899),
+UInt256(4426323730254452264, 12359051494222015606, 14856349686461776713, 17293559228040414836),
+UInt256(2766452331409032665, 7724407183888759754, 4673532535611222542, 3890945489884177417),
+UInt256(3458065414261290831, 14267194998288337596, 15065287706368803985, 14087053899209997579),
+UInt256(4322581767826613539, 13222307729433034092, 384865559251453366, 3773759318730333261),
+UInt256(2701613604891633462, 5958099321681952355, 9463913011386934161, 16193657629488622000),
+UInt256(3377017006114541827, 16670996188957216252, 7218205245806279798, 6407013981578613788),
+UInt256(4221271257643177284, 16227059217769132411, 9022756557257849747, 17232139513828043043),
+UInt256(2638294536026985803, 918539974250931949, 3333379839072462140, 8464244186928832950),
+UInt256(3297868170033732253, 14983233023095828648, 8778410817267965579, 10580305233661041188),
+UInt256(4122335212542165317, 4893983223587622098, 10973013521584956974, 8613695523648913581),
+UInt256(2576459507838853323, 5364582523955957763, 11469819469417986013, 771873683853183084),
+UInt256(3220574384798566654, 2094042136517559300, 9725588318345094612, 5576528123243866759),
+UInt256(4025717980998208317, 11840924707501724933, 12156985397931368265, 6970660154054833449),
+UInt256(2516073738123880198, 9706420951402272035, 9903958882920799117, 15885877642352740666),
+UInt256(3145092172654850248, 2909654152398064236, 7768262585223610993, 6022288997658762120),
+UInt256(3931365215818562810, 3637067690497580295, 9710328231529513741, 12139547265500840554),
+UInt256(2457103259886601756, 6884853324988375588, 12986484172347027944, 9893060050151719298),
+UInt256(3071379074858252195, 8606066656235469485, 16233105215433784930, 12366325062689649123),
+UInt256(3839223843572815244, 6145897301866948953, 6456323464010067451, 6234534291507285595),
+UInt256(2399514902233009527, 13064557850521618903, 15564417211074761917, 1590740922978359545),
+UInt256(2999393627791261909, 11719011294724635725, 14843835495416064492, 6600112172150337335),
+UInt256(3749242034739077387, 813706063123630945, 4719736313987916903, 8250140215187921669),
+UInt256(2343276271711923366, 16649467353948127004, 14479050242310917824, 12073866662133532899),
+UInt256(2929095339639904208, 11588462155580382947, 18098812802888647280, 15092333327666916124),
+UInt256(3661369174549880260, 14485577694475478684, 18011829985183421197, 418672585874093539),
+UInt256(4576711468187350325, 18106972118094348356, 4068043407769724880, 5135026750770004827),
+]
+
+private let bid_multipliers2_binary80_105: [UInt256] = [
+UInt256(2860444667617093953, 13622700583022661674, 11765899166710853858, 3209391719231253017),
+UInt256(3575555834521367442, 3193317673496163381, 5484001921533791514, 13235111685893842080),
+UInt256(4469444793151709302, 13215019128724980034, 11466688420344627297, 7320517570512526791),
+UInt256(2793402995719818314, 3647700937025724617, 11778366281142779964, 16104538527638799005),
+UInt256(3491753744649772892, 13782998208136931580, 887899796146311244, 1683929085838947140),
+UInt256(4364692180812216115, 17228747760171164475, 1109874745182889055, 2104911357298683925),
+UInt256(2727932613007635072, 8462124340893283844, 16834572780235163323, 8233098625952759309),
+UInt256(3409915766259543840, 10577655426116604806, 2596471901584402538, 5679687264013561232),
+UInt256(4262394707824429800, 13222069282645756007, 12468961913835278980, 16322981116871727348),
+UInt256(2663996692390268625, 8263793301653597504, 14710630223788131219, 978491161190053785),
+UInt256(3329995865487835781, 14941427645494384784, 18388287779735164023, 15058172006769730943),
+UInt256(4162494831859794727, 4841726501585817269, 4538615650959403413, 14211028990034775774),
+UInt256(2601559269912371704, 9943608091132217649, 5142477791063321085, 11187736127985428811),
+UInt256(3251949087390464630, 12429510113915272061, 11039783257256539261, 149612104699622302),
+UInt256(4064936359238080788, 6313515605539314268, 18411415089998061980, 4798701149301915781),
+UInt256(2540585224523800492, 13169319290316847226, 2283762394394012929, 12222560255168473171),
+UInt256(3175731530654750615, 16461649112896059032, 12078075029847291970, 1443142263678427752),
+UInt256(3969664413318438269, 15965375372692685886, 15097593787309114962, 11027299866452810498),
+UInt256(2481040258324023918, 12284202617146622631, 4824310098640808947, 11503748434960394466),
+UInt256(3101300322905029898, 6131881234578502481, 1418701604873623280, 9767999525273105178),
+UInt256(3876625403631287372, 16888223580077903909, 6385063024519417004, 12209999406591381472),
+UInt256(2422890877269554608, 1331767700693914135, 6296507399538329579, 16854621665974389228),
+UInt256(3028613596586943260, 1664709625867392669, 3258948230995524070, 16456591064040598631),
+UInt256(3785766995733679075, 2080887032334240836, 8685371307171792992, 11347366793195972481),
+UInt256(2366104372333549421, 17441455459704758186, 14651729103837146428, 7092104245747482801),
+UInt256(2957630465416936777, 7966761269348784021, 9091289342941657227, 8865130307184353501),
+UInt256(3697038081771170971, 14570137605113367930, 15975797697104459438, 6469726865553053972),
+UInt256(2310648801106981857, 6800492993982161004, 14596559579117675052, 17878637346252822445),
+UInt256(2888311001383727321, 13112302260905089159, 18245699473897093816, 3901552609106476440),
+UInt256(3610388751729659152, 2555319770849197737, 18195438323943979366, 4876940761383095549),
+UInt256(4512985939662073940, 3194149713561497172, 8909239849647810495, 15319547988583645245),
+UInt256(2820616212288796212, 11219715607830711540, 14791646942884657367, 16492246520505860134),
+UInt256(3525770265360995265, 14024644509788389426, 42814604896270093, 16003622132204937264),
+UInt256(4407212831701244082, 3695747581953323070, 9276890292975113425, 6169469609974007867),
+UInt256(2754508019813277551, 6921528257148214823, 1186370414682057986, 15385133552302224677),
+UInt256(3443135024766596939, 4040224303007880624, 15318021073634736195, 10008044903523005038),
+UInt256(4303918780958246174, 438594360332462877, 700782268333868628, 7898370110976368394),
+UInt256(2689949238098903858, 14109179530489953010, 2743831926922361844, 14159853356215006054),
+UInt256(3362436547623629823, 8413102376257665454, 12653161945507728113, 17699816695268757568),
+UInt256(4203045684529537279, 5904691951894693914, 6593080395029884334, 8289712813803783248),
+UInt256(2626903552830960799, 10607961497575265552, 8732361265321065613, 569384490199976626),
+UInt256(3283629441038700999, 8648265853541694036, 10915451581651332016, 5323416631177358686),
+UInt256(4104536801298376249, 6198646298499729641, 13644314477064165020, 6654270788971698358),
+UInt256(2565335500811485155, 15403368982630800786, 1610167520524021281, 13382291279962087282),
+UInt256(3206669376014356444, 14642525209861113078, 11236081437509802410, 2892806044670445390),
+UInt256(4008336720017945555, 18303156512326391348, 4821729760032477204, 12839379592692832546),
+UInt256(2505210450011215972, 9133629810990300640, 12236953136875074060, 17247984282287796149),
+UInt256(3131513062514019965, 11417037263737875800, 15296191421093842576, 3113236279150193570),
+UInt256(3914391328142524957, 436238524390181039, 673495202657751604, 3891545348937741963),
+UInt256(2446494580089078098, 2578492086957557101, 7338463529302176608, 11655587879940864535),
+]
+
+private let bid_multipliers2_binary80_106: [UInt256] = [
+UInt256(3058118225111347622, 12446487145551722184, 13784765430055108664, 14569484849926080669),
+UInt256(3822647781389184528, 6334736895084876922, 17230956787568885830, 18211856062407600836),
+UInt256(2389154863368240330, 3959210559428048076, 15381034010657941548, 6770724020577362618),
+UInt256(2986443579210300412, 14172385236139835904, 779548439612875319, 8463405025721703273),
+UInt256(3733054474012875515, 17715481545174794880, 974435549516094149, 5967570263724741187),
+UInt256(2333159046258047197, 8766332956520552848, 609022218447558843, 6035574424041657194),
+UInt256(2916448807822558996, 15569602214078078964, 761277773059448554, 2932782011624683588),
+UInt256(3645561009778198746, 1015258693888047089, 951597216324310692, 12889349551385630293),
+UInt256(4556951262222748432, 10492445404214834669, 5801182538832776269, 16111686939232037867),
+UInt256(2848094538889217770, 6557778377634271668, 5931582095984179120, 12375647346233717619),
+UInt256(3560118173611522212, 17420595008897615393, 7414477619980223900, 15469559182792147023),
+UInt256(4450147717014402766, 3328999687412467625, 13879783043402667780, 890204904780632163),
+UInt256(2781342323134001728, 15915682859914955978, 1757335374485585506, 9779750102342670910),
+UInt256(3476677903917502161, 1447859501184143356, 11420041254961757691, 3001315591073562830),
+UInt256(4345847379896877701, 6421510394907567099, 14275051568702197113, 17586702544124117249),
+UInt256(2716154612435548563, 6319287006030923389, 6616064221225179244, 4074160062436491425),
+UInt256(3395193265544435704, 3287422739111266332, 12881766294958861959, 5092700078045614281),
+UInt256(4243991581930544630, 4109278423889082915, 16102207868698577449, 1754189079129629947),
+UInt256(2652494738706590393, 16403357070212840534, 7758036908722916953, 12625583220524488477),
+UInt256(3315618423383237992, 6669138282483886956, 474174099048870384, 1946920970373446884),
+UInt256(4144523029229047490, 8336422853104858695, 592717623811087980, 2433651212966808605),
+UInt256(2590326893268154681, 9821950301617924588, 7287977542523011843, 10744404044959031186),
+UInt256(3237908616585193351, 16889123895449793639, 9109971928153764804, 8818819037771401079),
+UInt256(4047385770731491689, 16499718850884854145, 6775778891764818101, 11023523797214251348),
+UInt256(2529616106707182306, 3394795254161951984, 15764076853421481073, 9195545382472601045),
+UInt256(3162020133383977882, 13466866104557215789, 1258351993067299725, 16106117746518139210),
+UInt256(3952525166729972353, 7610210593841743928, 6184626009761512561, 6297589127865510300),
+UInt256(2470328229206232720, 16285596667219559715, 3865391256100945350, 15465208250984413698),
+UInt256(3087910286507790901, 1910251760314898028, 220053051698793784, 10108138276875741314),
+UInt256(3859887858134738626, 6999500718821010439, 275066314623492230, 12635172846094676643),
+UInt256(2412429911334211641, 8986373967690519428, 7089445474280764500, 3285297010381784998),
+UInt256(3015537389167764551, 15844653478040537189, 8861806842850955625, 4106621262977231247),
+UInt256(3769421736459705689, 15194130829123283582, 15688944571991082435, 9744962597148926963),
+UInt256(2355888585287316056, 2578802740560970383, 5193904339067038618, 3784758614004385400),
+UInt256(2944860731609145070, 3223503425701212979, 1880694405406410368, 13954320304360257558),
+UInt256(3681075914511431337, 13252751318981292031, 16185926062040176672, 17442900380450321947),
+UInt256(4601344893139289172, 2730881093444451327, 15620721559122832937, 3356881401853350818),
+UInt256(2875840558212055732, 10930172720257557887, 16680480002092852441, 13627265922226814021),
+UInt256(3594800697765069665, 13662715900321947359, 16238913984188677648, 3199024347501353815),
+UInt256(4493500872206337082, 3243336820120270487, 15686956461808459156, 3998780434376692268),
+UInt256(2808438045128960676, 6638771531002556958, 16721876816271368828, 11722609808340208476),
+UInt256(3510547556411200845, 8298464413753196198, 11678973983484435227, 14653262260425260595),
+UInt256(4388184445514001056, 14984766535618883152, 5375345442500768226, 13704891807104187839),
+UInt256(2742615278446250660, 9365479084761801970, 3359590901562980141, 13177243397867505304),
+UInt256(3428269098057813325, 11706848855952252462, 13422860663808500985, 2636496192052217917),
+UInt256(4285336372572266657, 798503014658151866, 7555203792905850423, 7907306258492660301),
+UInt256(2678335232857666660, 12028279430229814676, 9333688388993544418, 11859595439198994544),
+UInt256(3347919041072083325, 15035349287787268345, 11667110486241930523, 5601122262143967372),
+UInt256(4184898801340104157, 4959128554451921720, 748830052520249442, 2389716809252571311),
+UInt256(2615561750837565098, 5405298355746145027, 468018782825155901, 6105259024210244973),
+]
+
+private let bid_multipliers2_binary80_107: [UInt256] = [
+UInt256(3269452188546956372, 15979994981537457091, 14420081533813608588, 12243259798690194121),
+UInt256(4086815235683695466, 1528249653212269748, 13413415898839622831, 15304074748362742651),
+UInt256(2554259522302309666, 5566842051685056496, 17606756973629540077, 16482575745367796013),
+UInt256(3192824402877887082, 16181924601461096429, 3561702143327373481, 6768161626427581304),
+UInt256(3991030503597358853, 11004033714971594728, 9063813697586604755, 13071888051461864534),
+UInt256(2494394064748349283, 9183364081070940657, 5664883560991627972, 5864087022949971382),
+UInt256(3117992580935436604, 6867519082911287917, 11692790469666922869, 7330108778687464227),
+UInt256(3897490726169295755, 8584398853639109897, 780930031801489874, 13774321991786718188),
+UInt256(2435931703855809847, 3059406274310749733, 12017296315944400931, 13220637263294086772),
+UInt256(3044914629819762308, 17659315898170600879, 1186562339648337452, 11914110560690220560),
+UInt256(3806143287274702886, 3627400799003699482, 15318260979842585527, 14892638200862775700),
+UInt256(2378839554546689303, 16102183554659475888, 14185599130829003858, 16225427903180316669),
+UInt256(2973549443183361629, 15516043424896956956, 17731998913536254823, 11058412842120620028),
+UInt256(3716936803979202037, 5559996225839032484, 3718254568210766913, 9211330034223387131),
+UInt256(2323085502487001273, 5780840650363089254, 11547281141986505128, 17286296317458086717),
+UInt256(2903856878108751591, 11837736831381249472, 5210729390628355603, 3161126323113056780),
+UInt256(3629821097635939489, 10185485020799173936, 6513411738285444503, 17786465959173484687),
+UInt256(4537276372044924361, 17343542294426355324, 8141764672856805629, 17621396430539467955),
+UInt256(2835797732528077726, 3922184906375390221, 14311974957390279326, 13319215778300861424),
+UInt256(3544747165660097157, 14126103169824013585, 4054910641455685446, 7425647686021300972),
+UInt256(4430933957075121447, 3822570906997853269, 9680324320246994712, 58687570671850406),
+UInt256(2769333723171950904, 9306635844514740149, 8356045709368065647, 36679731669906504),
+UInt256(3461667153964938630, 11633294805643425186, 15056743155137469962, 13880907719869546842),
+UInt256(4327083942456173288, 5318246470199505675, 9597556907067061645, 8127762612982157745),
+UInt256(2704427464035108305, 3323904043874691047, 3692630057703219576, 7385694642327542543),
+UInt256(3380534330043885381, 8766566073270751713, 4101553701636566, 9232118302909428178),
+UInt256(4225667912554856726, 15569893610015827545, 4616812960554433612, 2316775841782009414),
+UInt256(2641042445346785454, 5119497487832504311, 14414723146414990767, 10671356937968531692),
+UInt256(3301303056683481817, 15622743896645406197, 13406717914591350555, 8727510154033276711),
+UInt256(4126628820854352272, 5693371815524594035, 2923339337957024482, 6297701674114207985),
+UInt256(2579143013033970170, 3558357384702871271, 17967988150718997965, 8547749564748767895),
+UInt256(3223928766292462712, 13671318767733364897, 17848299169971359552, 15296372974363347772),
+UInt256(4029910957865578390, 17089148459666706122, 8475315907182035729, 673722144244633099),
+UInt256(2518694348665986494, 6069031768864303422, 9908758460416160234, 11950291386221365447),
+UInt256(3148367935832483117, 16809661747935155086, 3162576038665424485, 5714492195921931001),
+UInt256(3935459919790603897, 7177019129636780145, 13176592085186556414, 11754801263329801655),
+UInt256(2459662449869127435, 16014852002091457351, 1317841025600515903, 2735064771153738131),
+UInt256(3074578062336409294, 15406878984186933784, 15482359337282808590, 17253889019224336375),
+UInt256(3843222577920511618, 10035226693378891423, 906205097893959122, 12343989237175644661),
+UInt256(2402014111200319761, 10883702701789195043, 7483907213824806307, 12326679291662165817),
+UInt256(3002517639000399701, 18216314395663881708, 4743197998853619980, 10796663096150319367),
+UInt256(3753147048750499627, 8935334939297688423, 5928997498567024975, 13495828870187899209),
+UInt256(2345716905469062267, 3278741327847361312, 10623152464245472465, 15352422071508518862),
+UInt256(2932146131836327833, 17933484715091365352, 13278940580306840582, 5355469534103484865),
+UInt256(3665182664795409792, 8581797838582042978, 16598675725383550727, 15917708954484131889),
+UInt256(4581478330994262240, 10727247298227553723, 11524972619874662601, 15285450174677776957),
+UInt256(2863423956871413900, 6704529561392221077, 4897264878207970174, 2635877331532528743),
+UInt256(3579279946089267375, 8380661951740276346, 10733267116187350621, 12518218701270436736),
+UInt256(4474099932611584219, 5864141421247957529, 4193211858379412469, 1812715321305882208),
+UInt256(2796312457882240137, 1359245379066279503, 14149972457555602553, 3438790085029870332),
+]
+
+private let bid_multipliers2_binary80_108: [UInt256] = [
+UInt256(3495390572352800171, 6310742742260237283, 13075779553517115287, 8910173624714725819),
+UInt256(4369238215441000214, 3276742409397908700, 11733038423469006205, 6526031012466019370),
+UInt256(2730773884650625133, 15883022061155856649, 16556521051522904686, 6384612392004956058),
+UInt256(3413467355813281417, 6018719521162657100, 6860593259121467145, 17204137526860970881),
+UInt256(4266834194766601771, 12135085419880709279, 8575741573901833932, 7670113853294049889),
+UInt256(2666771371729126107, 5278585378211749347, 12277367511329728063, 14017193195163556989),
+UInt256(3333464214661407634, 1986545704337298780, 10735023370734772175, 12909805475527058332),
+UInt256(4166830268326759542, 11706554167276399283, 13418779213418465219, 11525570825981435011),
+UInt256(2604268917704224714, 2704910336120361648, 6080893999172846810, 4897638757024702930),
+UInt256(3255336147130280892, 12604509957005227868, 7601117498966058512, 15345420483135654470),
+UInt256(4069170183912851115, 15755637446256534835, 9501396873707573141, 735031530210016471),
+UInt256(2543231364945531947, 7541430394696640320, 3632530036853539261, 2765237715594954247),
+UInt256(3179039206181914934, 4815101974943412496, 4540662546066924076, 8068233162921080712),
+UInt256(3973799007727393667, 15242249505534041428, 5675828182583655095, 10085291453651350890),
+UInt256(2483624379829621042, 7220562931745081940, 12770764650969560242, 13220836186173176163),
+UInt256(3104530474787026302, 18249075701536128233, 15963455813711950303, 7302673195861694395),
+UInt256(3880663093483782878, 13587972590065384484, 6119261711857774167, 4516655476399730090),
+UInt256(2425414433427364299, 3880796850363477398, 13047910606765884662, 9740438700390913162),
+UInt256(3031768041784205374, 239310044526958844, 7086516221602580020, 2952176338633865645),
+UInt256(3789710052230256717, 9522509592513474363, 8858145277003225025, 3690220423292332056),
+UInt256(2368568782643910448, 8257411504534615429, 3230497788913321688, 13835602810626177295),
+UInt256(2960710978304888060, 10321764380668269286, 8649808254569040014, 17294503513282721619),
+UInt256(3700888722881110075, 12902205475835336608, 1588888281356524210, 12394757354748626215),
+UInt256(2313055451800693797, 5758035413183391428, 993055175847827631, 12358409365145279289),
+UInt256(2891319314750867246, 11809230284906627189, 1241318969809784539, 10836325688004211207),
+UInt256(3614149143438584058, 5538165819278508178, 6163334730689618578, 8933721091577876105),
+UInt256(4517686429298230072, 16146079310952911030, 16927540450216799031, 1943779327617569323),
+UInt256(2823554018311393795, 10091299569345569394, 5968026762958111490, 8132391107402062683),
+UInt256(3529442522889242244, 8002438443254573838, 16683405490552415171, 942116847397802545),
+UInt256(4411803153611552805, 10003048054068217298, 11630884826335743155, 15012704114529416894),
+UInt256(2757376971007220503, 8557748043006329763, 11880989034887227376, 7077097062367191607),
+UInt256(3446721213759025629, 6085499035330524300, 10239550275181646316, 8846371327958989508),
+UInt256(4308401517198782036, 12218559812590543279, 12799437843977057895, 11057964159948736885),
+UInt256(2692750948249238772, 16859971919723865357, 14917177680126743040, 13828756627609042409),
+UInt256(3365938685311548466, 2628220825945280081, 4811414044876265088, 17285945784511303012),
+UInt256(4207423356639435582, 12508648069286375909, 10625953574522719265, 3160688156929577148),
+UInt256(2629639597899647239, 3206219024876597039, 8947063993290393492, 13504645144149455478),
+UInt256(3287049497374559048, 17842831836377910011, 6572143973185603961, 16880806430186819347),
+UInt256(4108811871718198811, 3856795721762835898, 3603493948054617048, 7265949982451360472),
+UInt256(2568007419823874257, 104654316888078484, 6863869735961523559, 4541218739032100295),
+UInt256(3210009274779842821, 4742503914537486009, 8579837169951904449, 1064837405362737465),
+UInt256(4012511593474803526, 10539815911599245415, 15336482480867268465, 5942732775130809735),
+UInt256(2507819745921752204, 1975698926322140480, 16502830578183124646, 15243423030525225845),
+UInt256(3134774682402190255, 2469623657902675601, 2181794149019354192, 9830906751301756498),
+UInt256(3918468353002737818, 16922087627660508213, 7338928704701580644, 12288633439127195622),
+UInt256(2449042720626711136, 15187990785715205537, 6892673449652181854, 16903767936309273072),
+UInt256(3061303400783388921, 538244408434455305, 13227527830492615222, 11906337883531815532),
+UInt256(3826629250979236151, 5284491528970457036, 2699351732833605316, 5659550317559993606),
+UInt256(2391643281862022594, 10220336233247617503, 10910466869875779130, 12760590985329771812),
+UInt256(2989554102327528243, 3552048254704746071, 9026397568917336009, 6727366694807438957),
+]
+
+private let bid_multipliers2_binary80_109: [UInt256] = [
+UInt256(3736942627909410303, 18275118373663096301, 6671310942719282107, 13020894386936686600),
+UInt256(2335589142443381439, 18339478011180517044, 6475412348413245269, 5832215982621735173),
+UInt256(2919486428054226799, 18312661495548258401, 8094265435516556586, 11901955996704556871),
+UInt256(3649358035067783499, 18279140851007935097, 14729517812823083637, 5654072959025920280),
+UInt256(4561697543834729374, 18237240045332530968, 4576839210746690834, 11679277217209788254),
+UInt256(2851060964896705859, 6786589009905443951, 2860524506716681771, 11911234279183505563),
+UInt256(3563826206120882324, 3871550243954417034, 17410713688678015926, 10277356830551994050),
+UInt256(4454782757651102905, 4839437804943021293, 12540020073992744100, 3623324001335216754),
+UInt256(2784239223531939315, 14553863674157858068, 10143355555459159014, 11487949537689286279),
+UInt256(3480299029414924144, 13580643574269934681, 12679194444323948768, 5136564885256832041),
+UInt256(4350373786768655180, 16975804467837418352, 2013935000122772248, 6420706106571040051),
+UInt256(2718983616730409488, 1386505755543610662, 1258709375076732655, 4012941316606900032),
+UInt256(3398729520913011860, 1733132194429513327, 10796758755700691627, 404490627331237136),
+UInt256(4248411901141264825, 2166415243036891659, 8884262426198476629, 14340671339446210132),
+UInt256(2655257438213290515, 12883224572966527047, 3246821007160353941, 11268762596367575285),
+UInt256(3319071797766613144, 11492344697780770904, 17893584314232606139, 250895190177305394),
+UInt256(4148839747208266430, 14365430872225963631, 3920236319081206057, 14148677043003795454),
+UInt256(2593024842005166519, 4366708276713839365, 9367676727066835642, 1925394124236290303),
+UInt256(3241281052506458149, 846699327464911302, 16321281927260932456, 11630114692150138687),
+UInt256(4051601315633072686, 5670060177758527032, 11178230372221389762, 14537643365187673358),
+UInt256(2532250822270670428, 17378845666381243107, 6986393982638368601, 13697713121669683753),
+UInt256(3165313527838338036, 3276813009267002268, 4121306459870572848, 3287083346804940979),
+UInt256(3956641909797922545, 4096016261583752835, 5151633074838216060, 4108854183506176224),
+UInt256(2472901193623701590, 14089225209558315282, 913927662560191085, 11791405901546135948),
+UInt256(3091126492029626988, 8388159475093118294, 10365781615055014665, 904199321650506223),
+UInt256(3863908115037033735, 10485199343866397868, 3733854981963992523, 5741935170490520683),
+UInt256(2414942571898146084, 13470778617557580523, 11557031400582271135, 1282866472342881475),
+UInt256(3018678214872682605, 16838473271946975654, 9834603232300451014, 15438641145710765555),
+UInt256(3773347768590853257, 7213033534651555856, 3069882003520787960, 10074929395283681136),
+UInt256(2358342355369283285, 16037361005225692170, 1918676252200492475, 6296830872052300710),
+UInt256(2947927944211604107, 6211643201249951500, 11621717352105391402, 3259352571637987984),
+UInt256(3684909930264505134, 3152867983135051471, 14527146690131739252, 13297562751402260787),
+UInt256(4606137412830631417, 13164457015773590147, 13547247344237286161, 16621953439252825984),
+UInt256(2878835883019144636, 1310256607217411986, 6161186580934609899, 3471191871891934384),
+UInt256(3598544853773930795, 1637820759021764982, 16924855263023038181, 18174047895147081692),
+UInt256(4498181067217413493, 15882334004059369940, 11932697041924021919, 8882501813651688403),
+UInt256(2811363167010883433, 12232301761750800164, 16681307688057289507, 12469092661173387108),
+UInt256(3514203958763604292, 1455319146906336494, 2404890536362060268, 10974679808039345981),
+UInt256(4392754948454505365, 1819148933632920617, 12229485207307351143, 13718349760049182476),
+UInt256(2745471842784065853, 3442811092734269338, 725899226926012608, 15491497627671820904),
+UInt256(3431839803480082316, 8915199884345224576, 10130746070512291569, 917627960880224514),
+UInt256(4289799754350102895, 11143999855431530720, 12663432588140364461, 5758720969527668546),
+UInt256(2681124846468814309, 13882528937285788556, 7914645367587727788, 5905043615168486793),
+UInt256(3351406058086017887, 3518103116325071983, 9893306709484659735, 7381304518960608492),
+UInt256(4189257572607522358, 18232686950688503691, 7754947368428436765, 4614944630273372710),
+UInt256(2618285982879701474, 6783743325752926903, 2540999096054079026, 5190183403134551896),
+UInt256(3272857478599626842, 17703051194045934436, 17011306925349762494, 15711101290772965678),
+UInt256(4091071848249533553, 12905441955702642238, 2817389582977651502, 10415504576611431290),
+UInt256(2556919905155958471, 1148372194673069542, 15595926544643195901, 1898004341954756652),
+UInt256(3196149881444948088, 15270523298623500640, 10271536143949219068, 6984191445870833719),
+]
+
+private let bid_multipliers2_binary80_110: [UInt256] = [
+UInt256(3995187351806185111, 641410049569824184, 12839420179936523835, 8730239307338542149),
+UInt256(2496992094878865694, 7318410308622221971, 8024637612460327397, 3150556557872894891),
+UInt256(3121240118598582117, 18371384922632553272, 5419110997148021342, 8549881715768506518),
+UInt256(3901550148248227647, 9129173098008527878, 6773888746435026678, 1463980107855857339),
+UInt256(2438468842655142279, 12623262213896411779, 18068738521804055385, 14750045622692074549),
+UInt256(3048086053318927849, 11167391748943126820, 17974237133827681328, 4602498973082929474),
+UInt256(3810107566648659812, 124181630896744814, 4021052343575050044, 5753123716353661843),
+UInt256(2381317229155412382, 9300985556165241316, 16348215770016569989, 12819074359575814460),
+UInt256(2976646536444265478, 2402859908351775838, 1988525638811160871, 2188784894187604363),
+UInt256(3720808170555331847, 12226946922294495605, 11709029085368726896, 16571039173016669165),
+UInt256(2325505106597082404, 14559370854075141609, 9623986187569148262, 10356899483135418228),
+UInt256(2906881383246353005, 18199213567593927011, 16641668752888823232, 3722752317064496977),
+UInt256(3633601729057941257, 8913958904210245052, 16190399922683641136, 4653440396330621222),
+UInt256(4542002161322426571, 15754134648690194220, 1791255829644999804, 5816800495413276527),
+UInt256(2838751350826516607, 7540491146217677435, 10342906930382900685, 12858872346488073638),
+UInt256(3548439188533145759, 4813927914344708890, 8316947644551237953, 2238532377827928335),
+UInt256(4435548985666432199, 1405723874503498209, 1172812518834271633, 7409851490712298322),
+UInt256(2772218116041520124, 7796106449205768236, 12262222870339889530, 16160372227763656212),
+UInt256(3465272645051900155, 9745133061507210295, 15327778587924861913, 10977093247849794457),
+UInt256(4331590806314875194, 7569730308456624965, 14548037216478689487, 18333052578239630975),
+UInt256(2707244253946796996, 9342767461212778507, 11398366269512874881, 18375686889040851215),
+UInt256(3384055317433496245, 11678459326515973134, 9636271818463705698, 9134550556018900307),
+UInt256(4230069146791870307, 763016102862802706, 2821967736224856315, 2194816158168849576),
+UInt256(2643793216744918941, 16617786128785109355, 6375415853567923100, 17512661163351388649),
+UInt256(3304741520931148677, 6937174605699222982, 3357583798532515972, 3444082380479684195),
+UInt256(4130926901163935846, 13283154275551416631, 13420351785020420773, 4305102975599605244),
+UInt256(2581829313227459904, 3690285403792247490, 15305248893278844839, 4996532368963447229),
+UInt256(3227286641534324880, 4612856754740309363, 9908189079743780241, 1633979442776921133),
+UInt256(4034108301917906100, 5766070943425386704, 7773550331252337397, 6654160321898539320),
+UInt256(2521317688698691312, 12827166376495642498, 4858468957032710873, 6464693210400281027),
+UInt256(3151647110873364140, 16033957970619553122, 15296458233145664399, 12692552531427739188),
+UInt256(3939558888591705176, 1595703389564889787, 9897200754577304691, 11254004645857286080),
+UInt256(2462224305369815735, 997314618478056117, 3879907462397121480, 4727909894447109848),
+UInt256(3077780381712269668, 15081701328379733858, 9461570346423789754, 5909887368058887310),
+UInt256(3847225477140337086, 405382586765115707, 2603590896174961384, 16610731246928384946),
+UInt256(2404515923212710678, 14088422172010361028, 17768145374605208529, 10381707029330240591),
+UInt256(3005644904015888348, 8387155678158175478, 3763437644546959045, 17588819805090188643),
+UInt256(3757056130019860435, 10483944597697719347, 13927669092538474615, 8150966701080572092),
+UInt256(2348160081262412772, 4246622364347380640, 6398950173622852682, 12011883215816439414),
+UInt256(2935200101578015965, 5308277955434225800, 7998687717028565853, 5791481982915773459),
+UInt256(3669000126972519956, 11247033462720170154, 9998359646285707316, 11851038497072104727),
+UInt256(4586250158715649945, 14058791828400212693, 3274577521002358337, 14813798121340130909),
+UInt256(2866406349197281216, 1869215865109051077, 4352453959840167913, 2341094798196499962),
+UInt256(3583007936496601520, 2336519831386313846, 10052253468227597795, 7538054516173012857),
+UInt256(4478759920620751900, 2920649789232892308, 3341944798429721436, 4810882126788878167),
+UInt256(2799224950387969937, 11048778155125333500, 11312087535873351705, 12230173366097824663),
+UInt256(3499031187984962421, 18422658712334054779, 14140109419841689632, 1452658652340117116),
+UInt256(4373788984981203027, 9193265335135404762, 13063450756374724136, 1815823315425146395),
+UInt256(2733618115613251892, 3439947825245934024, 12776342741161590489, 1134889572140716497),
+UInt256(3417022644516564865, 4299934781557417530, 15970428426451988111, 6030297983603283525),
+]
+
+private let bid_multipliers2_binary80_111: [UInt256] = [
+UInt256(4271278305645706081, 9986604495374159817, 10739663496210209331, 2926186461076716502),
+UInt256(2669548941028566300, 17770842855677319645, 18241504731199850591, 17969767602668805478),
+UInt256(3336936176285707876, 3766809495887097941, 8966822858717649527, 17850523484908618944),
+UInt256(4171170220357134845, 4708511869858872426, 15820214591824449813, 17701468337708385775),
+UInt256(2606981387723209278, 5248662927875489218, 14499320138317669037, 13369260720281435062),
+UInt256(3258726734654011597, 15784200696699137331, 8900778136042310489, 2876517845069630115),
+UInt256(4073408418317514497, 5895192815591757952, 6514286651625500207, 8207333324764425548),
+UInt256(2545880261448446560, 15213710555813318480, 4071429157265937629, 12047112355618847824),
+UInt256(3182350326810558201, 570394121057096484, 5089286446582422037, 1223832389241396067),
+UInt256(3977937908513197751, 5324678669748758509, 6361608058228027546, 6141476504979132988),
+UInt256(2486211192820748594, 10245453196234055924, 6281848045606211168, 8450108834039346022),
+UInt256(3107763991025935743, 3583444458437794097, 7852310057007763960, 10562636042549182527),
+UInt256(3884704988782419678, 18314363628329406333, 14427073589687092854, 13203295053186478159),
+UInt256(2427940617989012299, 6834791249278491054, 11322764002768126986, 3640373389814160945),
+UInt256(3034925772486265374, 3931803043170725914, 4930082966605382924, 13773838774122476989),
+UInt256(3793657215607831717, 14138125840818183200, 15385975745111504463, 17217298467653096237),
+UInt256(2371035759754894823, 11142171659725058452, 9616234840694690289, 17678340569924267004),
+UInt256(2963794699693618529, 9316028556228935161, 12020293550868362862, 8262867657123170043),
+UInt256(3704743374617023161, 16256721713713556856, 1190308883303289866, 1105212534549186746),
+UInt256(2315464609135639476, 3242922043429891179, 743943052064556166, 5302443852520629620),
+UInt256(2894330761419549345, 4053652554287363973, 14764986870362858919, 15851426852505562833),
+UInt256(3617913451774436681, 9678751711286592871, 4621175532671409937, 15202597547204565637),
+UInt256(4522391814718045851, 16710125657535628993, 1164783397411874518, 5168188878723543335),
+UInt256(2826494884198778657, 8137985526746074168, 12257204669450891333, 17065176104484378296),
+UInt256(3533118605248473321, 14784167926859980614, 15321505836813614167, 7496412075323309158),
+UInt256(4416398256560591652, 4645151853292812056, 9928510259162241901, 4758829075726748544),
+UInt256(2760248910350369782, 12126591945162783343, 6205318911976401188, 5280111181542911792),
+UInt256(3450311137937962228, 5934867894598703371, 3144962621543113581, 6600138976928639740),
+UInt256(4312888922422452785, 7418584868248379213, 17766261332211055688, 12861859739588187579),
+UInt256(2695555576514032990, 16165830588723706768, 13409756341845603757, 8038662337242617237),
+UInt256(3369444470642541238, 10983916199049857652, 16762195427307004696, 14660013939980659450),
+UInt256(4211805588303176548, 4506523211957546258, 2506000210424204254, 18325017424975824312),
+UInt256(2632378492689485342, 12039949044328242219, 6177936149942515563, 6841449872182502291),
+UInt256(3290473115861856678, 5826564268555526966, 3110734169000756550, 3940126321800739960),
+UInt256(4113091394827320847, 16506577372549184515, 13111789748105721495, 14148529939105700758),
+UInt256(2570682121767075529, 17234139885484322178, 5889025583352381982, 15760360239582144830),
+UInt256(3213352652208844412, 7707616801573239010, 16584654016045253286, 10477078262622905229),
+UInt256(4016690815261055515, 9634521001966548763, 11507445483201790800, 3872975791423855729),
+UInt256(2510431759538159697, 3715732617015399025, 4886310417787425298, 2420609869639909831),
+UInt256(3138039699422699621, 9256351789696636685, 10719574040661669526, 12249134373904663096),
+UInt256(3922549624278374526, 16182125755548183760, 18011153569254474812, 6088045930526053062),
+UInt256(2451593515173984079, 5502142578790226946, 11256970980784046757, 13028400743433558972),
+UInt256(3064491893967480099, 2265992205060395779, 4847841689125282639, 2450442874009785003),
+UInt256(3830614867459350123, 16667548311607658436, 1448116092979215394, 16898111647794394965),
+UInt256(2394134292162093827, 8111374685541092570, 10128444594966785429, 15173005798298884757),
+UInt256(2992667865202617284, 5527532338498977809, 3437183706853705979, 5131199192591442235),
+UInt256(3740834831503271605, 6909415423123722261, 8908165651994520378, 1802312972311914889),
+UInt256(2338021769689544753, 6624227648666020365, 7873446541710269188, 5738131626122334710),
+UInt256(2922527212111930941, 12891970579259913360, 14453494195565224389, 7172664532652918387),
+UInt256(3653159015139913677, 2279905168792727988, 18066867744456530486, 13577516684243535888),
+]
+
+private let bid_multipliers2_binary80_112: [UInt256] = [
+UInt256(4566448768924892096, 7461567479418297890, 4136840606861111492, 7748523818449644052),
+UInt256(2854030480578057560, 4663479674636436181, 7197211397715582586, 14066199423385803341),
+UInt256(3567538100722571950, 5829349593295545226, 13608200265571866137, 8359377242377478368),
+UInt256(4459422625903214937, 16510059028474207341, 7786878295110056863, 15060907571399235864),
+UInt256(2787139141189509336, 3401257865155297732, 7172641943657479491, 16330596259765604271),
+UInt256(3483923926486886670, 4251572331444122165, 8965802429571849364, 15801559306279617434),
+UInt256(4354904908108608337, 14537837451159928514, 15818939055392199610, 1305205059139970177),
+UInt256(2721815567567880211, 2168619379333873465, 14498522928047512660, 5427439180389869265),
+UInt256(3402269459459850263, 16545832279449505544, 4288095604777227113, 6784298975487336581),
+UInt256(4252836824324812829, 16070604330884494026, 5360119505971533891, 13092059737786558630),
+UInt256(2658023015203008018, 12349970716016502718, 7961760709659596586, 5876694326902905192),
+UInt256(3322528769003760023, 6214091358165852590, 728828850219719924, 16569239945483407298),
+UInt256(4153160961254700029, 3155928179279927833, 10134408099629425714, 2264805858144707506),
+UInt256(2595725600784187518, 4278298121263648847, 17863220108336860831, 6027189679767830095),
+UInt256(3244657000980234397, 14571244688434336867, 17717339116993688135, 2922301081282399715),
+UInt256(4055821251225292997, 4378997805260757372, 17534987877814722264, 17487934406885163356),
+UInt256(2534888282015808123, 5042716637501667310, 1735995386779425607, 10929959004303227098),
+UInt256(3168610352519760154, 1691709778449696233, 11393366270329057817, 9050762736951645968),
+UInt256(3960762940649700192, 11338009259916896100, 406649782629158559, 15925139439616945364),
+UInt256(2475476837906062620, 7086255787448060062, 9477528150997999907, 16870741177401672709),
+UInt256(3094346047382578275, 8857819734310075078, 2623538151892724076, 16476740453324702982),
+UInt256(3867932559228222844, 6460588649460205943, 12502794726720680904, 2149181492946327111),
+UInt256(2417457849517639277, 13261239942767404522, 14731775731841507421, 1343238433091454444),
+UInt256(3021822311897049097, 2741491873177091941, 9191347627947108468, 6290734059791705959),
+UInt256(3777277889871311371, 8038550859898752830, 16100870553361273489, 7863417574739632449),
+UInt256(2360798681169569607, 2718251278223026567, 5451358077423408026, 16443851030280740041),
+UInt256(2950998351461962008, 17232872153060946921, 2202511578351872129, 11331441750996149243),
+UInt256(3688747939327452511, 3094346117616632035, 7364825491367228066, 329244133463022842),
+UInt256(4610934924159315638, 17702990702302953756, 4594345845781647178, 9634927203683554360),
+UInt256(2881834327599572274, 6452683170511958193, 12094838190468305294, 10633515520729609379),
+UInt256(3602292909499465342, 17289225999994723550, 1283489682803217906, 4068522364057235916),
+UInt256(4502866136874331678, 12388160463138628629, 10827734140358798190, 14309024991926320703),
+UInt256(2814291335546457299, 3130914271034254989, 9073176846937942821, 4331454601526562535),
+UInt256(3517864169433071623, 17748700894074982448, 15953157077099816430, 10026004270335591073),
+UInt256(4397330211791339529, 17574190099166340157, 1494702272665218922, 3309133301064713033),
+UInt256(2748331382369587206, 4066339784337880742, 3240031929629455778, 6679894331592833550),
+UInt256(3435414227961984007, 14306296767277126735, 13273411948891595530, 17573239951345817745),
+UInt256(4294267784952480009, 13271184940669020515, 11980078917687106509, 12743177902327496374),
+UInt256(2683917365595300006, 1376961560277055966, 5181706314340747616, 10270329198168379186),
+UInt256(3354896706994125007, 10944573987201095765, 15700504929780710328, 12837911497710473982),
+UInt256(4193620883742656259, 9069031465573981803, 5790573106943724198, 16047389372138092477),
+UInt256(2621013052339160162, 3362301656770044675, 1313265182626133672, 5417932339158919894),
+UInt256(3276266315423950202, 13426249107817331651, 15476639533564830802, 6772415423948649868),
+UInt256(4095332894279937753, 7559439347916888756, 14734113398528650598, 17688891316790588143),
+UInt256(2559583058924961095, 16253864638516525232, 18432192910935182432, 6443871054566729685),
+UInt256(3199478823656201369, 15705644779718268637, 4593497064959426424, 8054838818208412107),
+UInt256(3999348529570251712, 5796997919365672084, 10353557349626670934, 10068548522760515133),
+UInt256(2499592830981407320, 3623123699603545052, 15694345380371445142, 1681156808297934054),
+UInt256(3124491038726759150, 4528904624504431316, 1171187651754754811, 11324818047227193376),
+UInt256(3905613798408448937, 14884502817485314953, 1463984564693443514, 9544336540606603816),
+]
+
+private let bid_multipliers2_binary80_113: [UInt256] = [
+UInt256(2441008624005280586, 2385285233287239989, 12444205399001871956, 10576896356306515289),
+UInt256(3051260780006600732, 12204978578463825795, 1720198693470176233, 13221120445383144111),
+UInt256(3814075975008250915, 15256223223079782243, 15985306422119884004, 2691342501446766427),
+UInt256(2383797484380156822, 7229296505211169950, 7684973504611233550, 10905461100259004825),
+UInt256(2979746855475196027, 18259992668368738246, 382844843909266130, 4408454338468980223),
+UInt256(3724683569343995034, 18213304817033534903, 9701928091741358470, 14733939959941001087),
+UInt256(2327927230839996896, 15995001529073347218, 12981234084979430900, 4597026456535737775),
+UInt256(2909909038549996121, 1547007837632132407, 7003170569369512817, 5746283070669672219),
+UInt256(3637386298187495151, 6545445815467553413, 4142277193284503117, 11794539856764478178),
+UInt256(4546732872734368939, 3570121250907053862, 9789532510033016801, 908116765673434010),
+UInt256(2841708045458980586, 18372226846312766328, 1506771800343247596, 12096788024614366017),
+UInt256(3552135056823725733, 13741911521036182102, 1883464750429059495, 15120985030767957521),
+UInt256(4440168821029657167, 3342331346013063915, 11577702974891100177, 14289545270032558997),
+UInt256(2775105513143535729, 9006486118899246803, 4930221350093243659, 2013436766129267517),
+UInt256(3468881891429419661, 15869793667051446408, 1551090669189166669, 16351854012943748108),
+UInt256(4336102364286774577, 6002184028532144298, 1938863336486458337, 6604759460897521423),
+UInt256(2710063977679234110, 15280580063901059946, 5823475603731424364, 15657189709129420650),
+UInt256(3387579972099042638, 9877353043021549124, 16502716541519056264, 1124743062702224196),
+UInt256(4234474965123803298, 3123319266922160598, 2181651603189268714, 1405928828377780245),
+UInt256(2646546853202377061, 6563760560253738277, 15198590307275456658, 5490391536163500557),
+UInt256(3308183566502971326, 12816386718744560751, 5163179828812157110, 16086361457059151504),
+UInt256(4135229458128714158, 6797111361575925131, 1842288767587808484, 10884579784469163572),
+UInt256(2584518411330446348, 18083252656267116918, 17292331544238237966, 16026234402148003041),
+UInt256(3230648014163057936, 4157321746624344532, 12392042393443021650, 10809420965830227993),
+UInt256(4038310017703822420, 5196652183280430665, 15490052991803777063, 4288404170433009183),
+UInt256(2523943761064889012, 12471279651405044974, 2763754092236278808, 9597781634161712596),
+UInt256(3154929701331111265, 15589099564256306217, 12678064652150124318, 11997227042702140744),
+UInt256(3943662126663889082, 5651316400038219060, 2012522759905491686, 5773161766522900122),
+UInt256(2464788829164930676, 8143758768451274816, 10481198761795708111, 17443284159358976289),
+UInt256(3080986036456163345, 10179698460564093520, 13101498452244635139, 17192419180771332457),
+UInt256(3851232545570204181, 17336309094132504804, 16376873065305793924, 16878837957536777667),
+UInt256(2407020340981377613, 13141036193046509455, 1012173628961345395, 1325901686605710234),
+UInt256(3008775426226722017, 2591237186025973106, 15100275091483845455, 15492435163539301504),
+UInt256(3760969282783402521, 7850732500959854287, 9651971827500031011, 14753857935996738976),
+UInt256(2350605801739626575, 16435922859168378689, 12950011419828601238, 6915318200784267908),
+UInt256(2938257252174533219, 15933217555533085458, 2352456219503587835, 17867519787835110693),
+UInt256(3672821565218166524, 15304835925988968918, 12163942311234260602, 17722713716366500462),
+UInt256(4591026956522708156, 684300833776659532, 5981555852188049945, 12930020108603349770),
+UInt256(2869391847826692597, 9651060057965188015, 12961844444472307024, 1163733540236011750),
+UInt256(3586739809783365746, 16675511090883872923, 11590619537162995876, 1454666925295014688),
+UInt256(4483424762229207183, 11621016826750065346, 9876588403026356941, 1818333656618768360),
+UInt256(2802140476393254489, 14180664544359872697, 10784553770318860992, 3442301544600424177),
+UInt256(3502675595491568112, 3890772625167677159, 18092378231325964144, 4302876930750530221),
+UInt256(4378344494364460140, 4863465781459596449, 18003786770730067276, 5378596163438162776),
+UInt256(2736465308977787587, 12263038150267023589, 4334837704065210191, 12584994639003627543),
+UInt256(3420581636222234484, 10717111669406391582, 10030233148508900643, 11119557280327146525),
+UInt256(4275727045277793105, 13396389586757989478, 3314419398781349996, 9287760581981545252),
+UInt256(2672329403298620691, 1455214464082661567, 15906570179520507459, 15028222400593241591),
+UInt256(3340411754123275863, 15654076135385490671, 15271526705973246420, 14173591982314164084),
+UInt256(4175514692654094829, 14955909150804475435, 14477722364039170121, 17716989977892705105),
+]
+
+private let bid_multipliers2_binary80_114: [UInt256] = [
+UInt256(2609696682908809268, 11653286228466491099, 6742733468310787374, 4155589708541858835),
+UInt256(3262120853636011585, 14566607785583113874, 3816730816961096313, 14417859172532099352),
+UInt256(4077651067045014482, 4373201676696728630, 13994285558056146200, 4187265910382960477),
+UInt256(2548531916903134051, 7344937066362843298, 4134742455357703471, 2617041193989350299),
+UInt256(3185664896128917564, 4569485314526166218, 14391800106051905146, 17106359547768851585),
+UInt256(3982081120161146955, 5711856643157707773, 8766378095710105625, 12159577397856288673),
+UInt256(2488800700100716847, 1264067392759873406, 7784829319032509968, 682206846019098565),
+UInt256(3111000875125896058, 15415142296232005470, 507664611935861652, 852758557523873206),
+UInt256(3888751093907370073, 10045555833435231029, 9857952801774602873, 1065948196904841508),
+UInt256(2430469433692106295, 17807687441965489153, 8467063510322820747, 12195432669133995702),
+UInt256(3038086792115132869, 17647923284029473537, 15195515406330913838, 10632604817990106724),
+UInt256(3797608490143916087, 8224846049754678210, 5159336202631478586, 4067383985632857597),
+UInt256(2373505306339947554, 12058057808737755737, 7836271145072062020, 7153801009447923902),
+UInt256(2966881632924934443, 5849200224067418863, 14407024949767465429, 8942251261809904878),
+UInt256(3708602041156168054, 2699814261656885675, 13397095168781943882, 15789500095689769001),
+UInt256(2317876275722605033, 15522441968817717259, 6067341471275020974, 14480123578233493530),
+UInt256(2897345344653256292, 5567994405739982862, 2972490820666388314, 8876782435937091104),
+UInt256(3621681680816570365, 6959993007174978577, 12938985562687761201, 1872606008066588072),
+UInt256(4527102101020712956, 13311677277396111126, 2338673898077537789, 6952443528510622994),
+UInt256(2829438813137945597, 17543170335227345261, 15296729241580624830, 6651120214532833323),
+UInt256(3536798516422431997, 8093904863752017865, 5285853496693617325, 17537272305020817462),
+UInt256(4420998145528039996, 14729067098117410235, 11219002889294409561, 8086532325993858115),
+UInt256(2763123840955024997, 18429038973178157205, 4706033796595312023, 16583297749814631082),
+UInt256(3453904801193781247, 9201240661190532794, 10494228264171527933, 16117436168840900949),
+UInt256(4317381001492226559, 6889864808060778089, 3894413293359634109, 6311737155768962474),
+UInt256(2698363125932641599, 11223694532679068161, 13963223354418241078, 6250678731569295498),
+UInt256(3372953907415801999, 9417932147421447298, 3618971137740637635, 17036720451316395181),
+UInt256(4216192384269752499, 7160729165849421218, 13747085959030572852, 16684214545718106072),
+UInt256(2635120240168595312, 2169612719442194309, 13203614742821495937, 1204262054219040487),
+UInt256(3293900300210744140, 2712015899302742887, 2669460373244706209, 6117013586201188513),
+UInt256(4117375375263430175, 3390019874128428608, 17171883521838046473, 12257953001178873545),
+UInt256(2573359609539643859, 9036291448971349736, 10732427201148779046, 743691598095714110),
+UInt256(3216699511924554824, 6683678292786799266, 13415534001435973807, 10152986534474418445),
+UInt256(4020874389905693530, 8354597865983499083, 7546045464940191451, 8079547149665635152),
+UInt256(2513046493691058456, 9833309684667074831, 2410435406373925705, 2743873959327328018),
+UInt256(3141308117113823070, 12291637105833843538, 16848102313249570843, 8041528467586547927),
+UInt256(3926635146392278838, 6141174345437528615, 11836755854707187746, 5440224566055797004),
+UInt256(2454146966495174273, 17673292021180619096, 14315501436833074197, 8011826372212261032),
+UInt256(3067683708118967842, 8256556971193610158, 17894376796041342746, 14626468983692714194),
+UInt256(3834604635148709803, 1097324177137236890, 13144598958196902625, 9059714192761116934),
+UInt256(2396627896967943626, 16826728675206630720, 12827060367300452044, 17191536416544167844),
+UInt256(2995784871209929533, 11810038807153512592, 16033825459125565056, 3042676446970658189),
+UInt256(3744731089012411917, 927490453659727029, 1595537750197404704, 3803345558713322736),
+UInt256(2340456930632757448, 2885524542751023345, 3303054103087071892, 2377090974195826710),
+UInt256(2925571163290946810, 3606905678438779181, 8740503647286227769, 2971363717744783387),
+UInt256(3656963954113683512, 13732004134903249784, 15537315577535172615, 8325890665608367138),
+UInt256(4571204942642104390, 17165005168629062231, 974900398209414153, 5795677313583071019),
+UInt256(2857003089151315244, 6116442211965775990, 7526841776521965701, 15151513367057889147),
+UInt256(3571253861439144055, 7645552764957219988, 185180183797681319, 5104333653540197721),
+UInt256(4464067326798930069, 4945254937769137081, 231475229747101649, 1768731048497859248),
+]
+
+private let bid_multipliers2_binary80_115: [UInt256] = [
+UInt256(2790042079249331293, 5396627345319404627, 11673887064660408290, 12634671951379631790),
+UInt256(3487552599061664116, 11357470200076643688, 9980672812398122459, 6569967902369763929),
+UInt256(4359440748827080145, 14196837750095804610, 12475841015497653074, 3600773859534817007),
+UInt256(2724650468016925091, 1955494566168796025, 12409086653113421075, 6862169680636648534),
+UInt256(3405813085021156363, 16279426262993158744, 1676300261109612632, 3966026082368422763),
+UInt256(4257266356276445454, 15737596810314060526, 2095375326387015790, 4957532602960528454),
+UInt256(2660791472672778409, 5224311988018899924, 15144667634274048580, 16933515932132493996),
+UInt256(3325989340840973011, 11142076003451012810, 484090469133009110, 2720150841456065879),
+UInt256(4157486676051216264, 9315908985886378108, 9828485123271037195, 12623560588674858156),
+UInt256(2598429172532010165, 5822443116178986317, 15366175238899174055, 5583882358708092396),
+UInt256(3248036465665012706, 11889739913651120801, 5372660993341803857, 2368166929957727591),
+UInt256(4060045582081265883, 5638802855209125193, 11327512260104642725, 7571894680874547392),
+UInt256(2537528488800791177, 1218408775292009294, 162166134924319847, 7038277184760286072),
+UInt256(3171910611000988971, 6134696987542399521, 9426079705510175617, 4186160462522969686),
+UInt256(3964888263751236214, 3056685216000611497, 16394285650315107425, 9844386596581100012),
+UInt256(2478055164844522633, 15745486315282545898, 3328899503805860284, 17681956668931657268),
+UInt256(3097568956055653292, 5846799838821018660, 13384496416612101164, 3655701762455019968),
+UInt256(3871961195069566615, 7308499798526273325, 16730620520765126455, 4569627203068774960),
+UInt256(2419975746918479134, 11485341401720002684, 12762480834691897986, 9773546029559066206),
+UInt256(3024969683648098918, 5133304715295227547, 15953101043364872483, 2993560500094056950),
+UInt256(3781212104560123647, 15640002930973810242, 15329690285778702699, 17577008680399734899),
+UInt256(2363257565350077279, 16692530859499713257, 14192742447039077091, 8679787416036140360),
+UInt256(2954071956687596599, 16253977555947253668, 3905870003516682652, 6238048251617787546),
+UInt256(3692589945859495749, 15705785926506679181, 4882337504395853315, 7797560314522234432),
+UInt256(2307868716162184843, 12121959213280368440, 5357303949461102274, 2567632187362702568),
+UInt256(2884835895202731054, 10540762998173072646, 6696629936826377842, 12432912271058154018),
+UInt256(3606044869003413818, 3952581710861564999, 17594159457887748111, 6317768301967916715),
+UInt256(4507556086254267272, 14164099175431732057, 17381013303932297235, 3285524359032507990),
+UInt256(2817222553908917045, 8852561984644832536, 3945604287316603915, 18194353788891175158),
+UInt256(3521528192386146306, 15677388499233428574, 4932005359145754894, 18131256217686581043),
+UInt256(4401910240482682883, 10373363587187009909, 15388378735786969426, 13440698235253450496),
+UInt256(2751193900301676802, 4177509232778187241, 11923579719080549843, 13012122415460794464),
+UInt256(3438992375377096002, 14445258577827509860, 1069416593568523592, 11653467000898605176),
+UInt256(4298740469221370003, 8833201185429611517, 1336770741960654490, 14566833751123256470),
+UInt256(2686712793263356252, 3214907731679813246, 3141324722939103008, 13715957112879423198),
+UInt256(3358390991579195315, 4018634664599766557, 13150027940528654568, 17144946391099278997),
+UInt256(4197988739473994144, 411607312322320293, 2602476870378654499, 2984438915164547130),
+UInt256(2623742962171246340, 257254570201450183, 3932391053200353013, 18006175386473699620),
+UInt256(3279678702714057925, 321568212751812729, 303802798073053363, 8672661177809960813),
+UInt256(4099598378392572406, 5013646284367153815, 4991439516018704608, 6229140453835063113),
+UInt256(2562248986495357753, 16968586983011634846, 10037178725152772236, 3893212783646914446),
+UInt256(3202811233119197192, 7375675673482379846, 3323101369586189487, 4866515979558643057),
+UInt256(4003514041398996490, 9219594591852974807, 13377248748837512667, 1471458956020915917),
+UInt256(2502196275874372806, 10373932638335497158, 15278309495664527272, 17060562912008930112),
+UInt256(3127745344842966008, 3744043761064595640, 9874514832725883283, 2878959566301611024),
+UInt256(3909681681053707510, 4680054701330744550, 12343143540907354103, 17433757513159177492),
+UInt256(2443551050658567193, 16760092243613879056, 3102778694639708410, 17813627473365567789),
+UInt256(3054438813323208992, 7115057249235185108, 3878473368299635513, 13043662304852183928),
+UInt256(3818048516654011240, 8893821561543981385, 4848091710374544392, 2469519825783066198),
+UInt256(2386280322908757025, 5558638475964988365, 14559272365052560005, 1543449891114416374),
+]
+
+private let bid_multipliers2_binary80_116: [UInt256] = [
+UInt256(2982850403635946281, 11559984113383623361, 4364032401033536294, 6540998382320408371),
+UInt256(3728563004544932852, 614922086447365489, 10066726519719308271, 17399620014755286272),
+UInt256(2330351877840583032, 9607698340884379238, 17820919120893037429, 17792291536863135776),
+UInt256(2912939847300728790, 12009622926105474048, 13052776864261520979, 8405306365796756008),
+UInt256(3641174809125910988, 5788656620777066752, 16315971080326901224, 5894946938818557106),
+UInt256(4551468511407388735, 7235820775971333441, 1948219776699074914, 7368683673523196382),
+UInt256(2844667819629617959, 11439917012623165256, 12746852406505391581, 9217113314379385643),
+UInt256(3555834774537022449, 9688210247351568666, 15933565508131739476, 16133077661401619958),
+UInt256(4444793468171278061, 16721948827616848737, 10693584848309898538, 1719603003042473331),
+UInt256(2777995917607048788, 12757061026474224412, 18212705576262156346, 5686437895328933736),
+UInt256(3472494897008810985, 15946326283092780516, 4319137896618143816, 16331419406015942978),
+UInt256(4340618621261013732, 6097849798583811933, 5398922370772679771, 1967530183810377106),
+UInt256(2712886638288133582, 13034528160969658266, 5680169490946618808, 17370607429377343356),
+UInt256(3391108297860166978, 7069788164357297024, 16323583900538049319, 3266515213012127578),
+UInt256(4238885372325208722, 18060607242301397089, 1957735801963010032, 17918202071547323185),
+UInt256(2649303357703255451, 15899565544865761084, 12752799922295351030, 11198876294717076991),
+UInt256(3311629197129069314, 15262770912654813451, 15940999902869188788, 4775223331541570430),
+UInt256(4139536496411336643, 9855091603963741006, 15314563860159098081, 5969029164426963038),
+UInt256(2587210310257085402, 3853589243263644177, 4959916394172048396, 15259858273835321659),
+UInt256(3234012887821356752, 14040358590934331029, 10811581511142448400, 628078768584600457),
+UInt256(4042516109776695940, 17550448238667913786, 18126162907355448404, 785098460730750572),
+UInt256(2526572568610434963, 1745658112312670308, 15940537835524543156, 9714058574811494915),
+UInt256(3158215710763043703, 16017130695673001598, 1478928220696127329, 12142573218514368644),
+UInt256(3947769638453804629, 15409727351163864093, 11072032312724934970, 1343158467860797093),
+UInt256(2467356024033627893, 11936922603691109010, 9225863204666778308, 5451160060840386087),
+UInt256(3084195030042034867, 1086095199331722551, 2308956968978697077, 6813950076050482609),
+UInt256(3855243787552543583, 15192677054446816900, 16721254266505535058, 13129123613490491165),
+UInt256(2409527367220339739, 16412952186670342419, 1227411879711183603, 12817388276858944882),
+UInt256(3011909209025424674, 15904504214910540119, 15369322904921143216, 11410049327646293199),
+UInt256(3764886511281780843, 10657258231783399341, 14599967612724041116, 14262561659557866498),
+UInt256(2353054069551113027, 4354943385650930636, 11430822767166219649, 18137473074078442370),
+UInt256(2941317586938891284, 831993213636275391, 14288528458957774562, 8836783287315889250),
+UInt256(3676646983673614105, 1039991517045344239, 13248974555269830299, 1822607072290085754),
+UInt256(4595808729592017631, 5911675414734068203, 11949532175659899969, 16113316895644770905),
+UInt256(2872380455995011019, 10612326161849874483, 5162614600573743529, 3153294032136899960),
+UInt256(3590475569993763774, 8653721683884955200, 1841582232289791507, 8553303558598512854),
+UInt256(4488094462492204718, 1593780068001418192, 2301977790362239384, 6079943429820753163),
+UInt256(2805059039057627948, 14831170597783050082, 1438736118976399615, 3799964643637970727),
+UInt256(3506323798822034936, 92219173519260986, 11021792185575275327, 138269786120075505),
+UInt256(4382904748527543670, 115273966899076233, 4553868195114318350, 14007895287932258093),
+UInt256(2739315467829714793, 13907104284594086357, 14375382668014918729, 4143248536530273404),
+UInt256(3424144334787143492, 3548822300460444235, 4134170279736484699, 9790746689090229659),
+UInt256(4280180418483929365, 4436027875575555294, 556026831243217970, 7626747342935399170),
+UInt256(2675112761552455853, 5078360431448416010, 14182574824809174943, 9378403107762012385),
+UInt256(3343890951940569816, 10959636557737907917, 8504846494156692871, 7111317866275127577),
+UInt256(4179863689925712270, 13699545697172384896, 15242744136123253993, 4277461314416521568),
+UInt256(2612414806203570169, 3950530042305352656, 9526715085077033745, 14202628367578795740),
+UInt256(3265518507754462711, 9549848571309078724, 11908393856346292182, 3918227404191330963),
+UInt256(4081898134693078389, 7325624695708960501, 14885492320432865227, 14121156292093939511),
+UInt256(2551186334183173993, 6884358444031794265, 11609275709484234719, 6519879673345018243),
+]
+
+private let bid_multipliers2_binary80_117: [UInt256] = [
+UInt256(3188982917728967491, 13217134073467130736, 676536581573129687, 3538163573253884899),
+UInt256(3986228647161209364, 11909731573406525516, 845670726966412108, 18257762521849519836),
+UInt256(2491392904475755852, 16666954270233854255, 9751916241208783376, 2187729539301174090),
+UInt256(3114241130594694816, 2386948764082766203, 7578209283083591316, 2734661924126467612),
+UInt256(3892801413243368520, 2983685955103457754, 4861075585427101241, 3418327405158084515),
+UInt256(2433000883277105325, 1864803721939661096, 7649858259319326179, 13665669674292272582),
+UInt256(3041251104096381656, 6942690670851964274, 9562322824149157724, 12470401074437952823),
+UInt256(3801563880120477070, 8678363338564955343, 2729531493331671347, 15588001343047441029),
+UInt256(2375977425075298169, 812291068175709185, 8623486210973376448, 7436657830190956691),
+UInt256(2969971781344122711, 5627049853647024385, 15391043782144108464, 9295822287738695864),
+UInt256(3712464726680153389, 2422126298631392578, 5403746672397971868, 11619777859673369830),
+UInt256(2320290454175095868, 3819671945858314313, 7989027688676120321, 16485733199150631952),
+UInt256(2900363067718869835, 4774589932322892891, 14597970629272538306, 6772108443656126228),
+UInt256(3625453834648587294, 1356551396976228210, 13635777268163284978, 17688507591424933593),
+UInt256(4531817293310734117, 10919061283075061071, 7821349548349330415, 12887262452426391183),
+UInt256(2832385808319208823, 9130256311135607121, 11805872495359413365, 14972068060407576345),
+UInt256(3540482260399011029, 6801134370492120998, 922282563917102995, 4880027020227306720),
+UInt256(4425602825498763786, 13113103981542539151, 10376225241751154552, 1488347756856745495),
+UInt256(2766001765936727366, 12807376006891474873, 13402669803735553451, 930217348035465935),
+UInt256(3457502207420909208, 6785847971759567784, 2918279199387278101, 14997829740326496130),
+UInt256(4321877759276136510, 8482309964699459730, 3647848999234097627, 4912229120125956451),
+UInt256(2701173599547585319, 689757709509774427, 6891591642948698921, 764300190865028830),
+UInt256(3376466999434481648, 14697255192169381746, 4002803535258485747, 5567061257008673941),
+UInt256(4220583749293102060, 18371568990211727182, 14226876455927882992, 2347140552833454522),
+UInt256(2637864843308188788, 2258858582027553681, 4280111766527538966, 1466962845520909077),
+UInt256(3297331054135235985, 2823573227534442101, 9961825726586811611, 11057075593755912154),
+UInt256(4121663817669044981, 8141152552845440530, 17063968176660902418, 9209658473767502288),
+UInt256(2576039886043153113, 7394063354742094283, 15276666128840451915, 10367722564532076834),
+UInt256(3220049857553941391, 13854265211855005758, 14484146642623176990, 8347967187237708139),
+UInt256(4025062321942426739, 12706145496391369294, 8881811266424195430, 1211586947192359365),
+UInt256(2515663951214016712, 5635497926030911857, 939446023087734239, 14592299897277388315),
+UInt256(3144579939017520890, 7044372407538639821, 5785993547287055703, 13628688853169347490),
+UInt256(3930724923771901112, 18028837546278075584, 11844177952536207533, 12424175048034296459),
+UInt256(2456703077357438195, 11268023466423797240, 7402611220335129708, 10070952414235129239),
+UInt256(3070878846696797744, 9473343314602358646, 9253264025418912135, 12588690517793911548),
+UInt256(3838598558370997180, 11841679143252948308, 2343207994918864361, 11124177128815001531),
+UInt256(2399124098981873237, 16624421501387868500, 10687877033679066034, 35081677868294101),
+UInt256(2998905123727341547, 6945468821452671913, 13359846292098832542, 9267224134190143434),
+UInt256(3748631404659176934, 4070150008388451988, 2864749809841376966, 2360658130882903485),
+UInt256(2342894627911985583, 16378901810524946204, 11013840668005636411, 15310469387083978390),
+UInt256(2928618284889981979, 15861941244728794851, 13767300835007045514, 14526400715427585084),
+UInt256(3660772856112477474, 15215740537483605660, 12597440025331418989, 8934628857429705547),
+UInt256(4575966070140596843, 9796303634999731267, 15746800031664273736, 15779972090214519837),
+UInt256(2859978793837873027, 3816846762661138090, 7535907010576477133, 9862482556384074898),
+UInt256(3574973492297341284, 159372434899034709, 196511726365820608, 16939789213907481527),
+UInt256(4468716865371676605, 199215543623793386, 4857325676384663665, 2727992443674800292),
+UInt256(2792948040857297878, 2430352723978564818, 7647514566167802694, 13234210323365219943),
+UInt256(3491185051071622347, 12261312941827981831, 336021170854977560, 7319390867351749121),
+UInt256(4363981313839527934, 10714955158857589384, 14255084518850885662, 9149238584189686401),
+UInt256(2727488321149704959, 2085160955858605461, 8909427824281803539, 1106588096691166097),
+]
+
+private let bid_multipliers2_binary80_118: [UInt256] = [
+UInt256(3409360401437131198, 16441509250105420538, 15748470798779642327, 15218293176146121333),
+UInt256(4261700501796413998, 11328514525776999865, 10462216461619777101, 14411180451755263762),
+UInt256(2663562813622758749, 2468635560183237011, 18068100334580830448, 11312830791560733803),
+UInt256(3329453517028448436, 7697480468656434168, 17973439399798650156, 14141038489450917254),
+UInt256(4161816896285560545, 9621850585820542711, 4020055176038761079, 17676298111813646567),
+UInt256(2601135560178475340, 17542871662206308954, 9430063512665307530, 17965215347524610961),
+UInt256(3251419450223094176, 3481845504048334577, 2564207353976858605, 13233147147550987893),
+UInt256(4064274312778867720, 4352306880060418221, 7816945210898461161, 2706375879156571154),
+UInt256(2540171445486792325, 2720191800037761388, 7191433766025232177, 13220699970541326731),
+UInt256(3175214306858490406, 8011925768474589639, 8989292207531540222, 2690816907894494702),
+UInt256(3969017883573113008, 791535173738461241, 6624929240987037373, 12586893171722894185),
+UInt256(2480636177233195630, 494709483586538275, 15669795821685368118, 10172651241540502818),
+UInt256(3100795221541494537, 9841758891337948652, 14975558758679322244, 3492442015070852714),
+UInt256(3875994026926868171, 16913884632599823720, 272704374639601189, 4365552518838565893),
+UInt256(2422496266829292607, 8265334886161195873, 170440234149750743, 5034313333487797635),
+UInt256(3028120333536615759, 5719982589274106937, 4824736311114576333, 1681205648432359140),
+UInt256(3785150416920769699, 2538292218165245767, 10642606407320608320, 6713193078967836829),
+UInt256(2365719010575481061, 17727333700849136268, 13569158032216462056, 4195745674354898018),
+UInt256(2957148763219351327, 8324109070779256623, 16961447540270577570, 5244682092943622523),
+UInt256(3696435954024189159, 5793450320046682875, 16590123406910834058, 15779224653034303961),
+UInt256(2310272471265118224, 10538435477670258653, 8062984120105577334, 14473701426573827880),
+UInt256(2887840589081397780, 13173044347087823316, 14690416168559359572, 8868754746362509042),
+UInt256(3609800736351747225, 16466305433859779145, 18363020210699199465, 11085943432953136302),
+UInt256(4512250920439684032, 6747823737042560220, 9118717208091835620, 22371235909256665),
+UInt256(2820156825274802520, 4217389835651600137, 14922570291912173070, 9237354059298061224),
+UInt256(3525196031593503150, 5271737294564500172, 4818154809608052626, 2323320537267800722),
+UInt256(4406495039491878937, 15813043655060401023, 6022693512010065782, 12127522708439526710),
+UInt256(2754059399682424336, 2965623256771668783, 10681712472647372970, 2968015674347316290),
+UInt256(3442574249603030420, 3707029070964585979, 8740454572381828308, 12933391629788921171),
+UInt256(4303217812003788025, 4633786338705732474, 6313882197049897481, 16166739537236151463),
+UInt256(2689511132502367515, 14425331507759552556, 8557862391583573830, 3186683183131512809),
+UInt256(3361888915627959394, 13419978366272052791, 10697327989479467287, 13206726015769166819),
+UInt256(4202361144534949243, 7551600920985290181, 8759973968421946205, 11896721501284070619),
+UInt256(2626475715334343277, 2413907566402112411, 7780826739477410330, 9741293947516238089),
+UInt256(3283094644167929096, 7629070476430028418, 5114347405919375009, 2953245397540521803),
+UInt256(4103868305209911370, 9536338095537535522, 15616306294253994569, 8303242765353040158),
+UInt256(2564917690756194606, 10571897328138347605, 14371877452336134509, 16718741774414119859),
+UInt256(3206147113445243258, 3991499623318158699, 4129788760138004425, 7063369162735486112),
+UInt256(4007683891806554072, 14212746566002474182, 550549931745117627, 13440897471846745543),
+UInt256(2504802432379096295, 8882966603751546363, 14179151762622862229, 6094717910690522013),
+UInt256(3131003040473870369, 6492022236262045050, 13112253684851189882, 12230083406790540420),
+UInt256(3913753800592337961, 12726713813754944217, 7166945069209211545, 6064232221633399717),
+UInt256(2446096125370211226, 1036667105955758279, 16008555714324226975, 15319360184589344583),
+UInt256(3057620156712764032, 10519205919299473657, 15399008624477895815, 14537514212309292825),
+UInt256(3822025195890955040, 13149007399124342072, 5413702725315206057, 13560206746959228127),
+UInt256(2388765747431846900, 8218129624452713795, 3383564203322003786, 1557600189208435723),
+UInt256(2985957184289808625, 10272662030565892243, 18064513309434668444, 11170372273365320462),
+UInt256(3732446480362260781, 17452513556634753208, 17968955618365947651, 13962965341706650578),
+UInt256(2332779050226412988, 13213663982110414707, 11230597261478717282, 6421010329352962659),
+UInt256(2915973812783016235, 16517079977638018384, 9426560558421008698, 17249634948545979132),
+]
+
+private let bid_multipliers2_binary80_119: [UInt256] = [
+UInt256(3644967265978770294, 16034663953620135076, 11783200698026260873, 12338671648827698107),
+UInt256(4556209082473462868, 10819957905170393037, 14729000872532826092, 1588281505752458921),
+UInt256(2847630676545914292, 15985845727586271456, 11511468554546710259, 10216047977950062634),
+UInt256(3559538345682392866, 1535563085773287704, 14389335693183387824, 8158373954010190388),
+UInt256(4449422932102991082, 11142825894071385438, 17986669616479234780, 10197967442512737985),
+UInt256(2780889332564369426, 11575952202222003803, 6629982491872133833, 15597101688425237049),
+UInt256(3476111665705461783, 5246568215922728946, 3675792096412779388, 5661319055249382599),
+UInt256(4345139582131827229, 1946524251476023278, 13818112157370750043, 7076648819061728249),
+UInt256(2715712238832392018, 3522420666386208501, 4024634079929330873, 2117062502699886204),
+UInt256(3394640298540490022, 13626397869837536434, 9642478618339051495, 7258014146802245659),
+UInt256(4243300373175612528, 7809625300442144735, 2829726236069038561, 4460831665075419169),
+UInt256(2652062733234757830, 4881015812776340459, 8686107925184230956, 14317234836740606741),
+UInt256(3315078416543447287, 15324641802825201382, 6245948888052900791, 17896543545925758426),
+UInt256(4143848020679309109, 14544116235104113823, 17030808146920901797, 17758993413979810128),
+UInt256(2589905012924568193, 11395915656153765091, 17561784119466645479, 13405213892951075282),
+UInt256(3237381266155710242, 409836514910042652, 17340544130905918945, 12144831347761456199),
+UInt256(4046726582694637802, 9735667680492329124, 3228936089922847066, 1345981129419656536),
+UInt256(2529204114184148626, 10696478318735093606, 11241457093056555224, 5452924224314673239),
+UInt256(3161505142730185783, 4147225861564091200, 4828449329465918222, 6816155280393341549),
+UInt256(3951881428412732229, 572346308527726096, 6035561661832397777, 17743566137346452744),
+UInt256(2469925892757957643, 2663559452043522762, 3772226038645248611, 4172199808200451109),
+UInt256(3087407365947447053, 17164507370336567164, 13938654585161336572, 603563741823175983),
+UInt256(3859259207434308817, 7620576157638545243, 17423318231451670715, 754454677278969978),
+UInt256(2412037004646443010, 16292075144592560537, 8583730885443600244, 16612435237795213901),
+UInt256(3015046255808053763, 11141721893885924863, 15341349625231888210, 2318799973534465760),
+UInt256(3768807819760067204, 9315466348930018175, 14565001013112472358, 12121872003772858007),
+UInt256(2355504887350042002, 15045538504936037167, 16020654660836377080, 2964483983930648351),
+UInt256(2944381109187552503, 9583551094315270651, 15414132307618083446, 3705604979913310438),
+UInt256(3680476386484440629, 7367752849466700410, 14655979366095216403, 13855378261746413856),
+UInt256(4600595483105550786, 13821377080260763417, 9096602170764244696, 12707536808755629416),
+UInt256(2875372176940969241, 13250046693590365039, 17214591402796122695, 7942210505472268385),
+UInt256(3594215221176211552, 2727500311705792587, 16906553235067765465, 5316077113412947577),
+UInt256(4492769026470264440, 3409375389632240734, 16521505525407318927, 11256782410193572375),
+UInt256(2807980641543915275, 2130859618520150459, 5714254934952186425, 13953018034012064591),
+UInt256(3509975801929894093, 16498632578432351786, 2531132650262845128, 3606214487232917026),
+UInt256(4387469752412367617, 6788232667758276020, 12387287849683332218, 4507768109041146283),
+UInt256(2742168595257729760, 15771860463417392272, 16965426942906858444, 7429041086578104331),
+UInt256(3427710744072162201, 1268081505562188725, 2760039604924021439, 9286301358222630413),
+UInt256(4284638430090202751, 6196787900380123810, 8061735524582414703, 6996190679350900113),
+UInt256(2677899018806376719, 10790521465378659237, 9650270721291397093, 11290148202235394427),
+UInt256(3347373773507970899, 8876465813295936142, 16674524420041634271, 277627197512079321),
+UInt256(4184217216884963624, 6483896248192532274, 11619783488197267030, 14182092052172262863),
+UInt256(2615135760553102265, 4052435155120332671, 11874050698550679798, 4252121514180276386),
+UInt256(3268919700691377831, 9677229962327803743, 10230877354760961843, 14538523929580121290),
+UInt256(4086149625864222289, 7484851434482366775, 8176910675023814400, 13561468893547763708),
+UInt256(2553843516165138930, 16207247192619948994, 12028098199530965856, 8475918058467352318),
+UInt256(3192304395206423663, 11035686953920160435, 5811750712558931512, 10594897573084190397),
+UInt256(3990380494008029579, 9182922673972812640, 2653002372271276486, 13243621966355237997),
+UInt256(2493987808755018487, 3433483662019313948, 1658126482669547804, 3665577710544635844),
+UInt256(3117484760943773108, 18126912632806306147, 2072658103336934755, 4581972138180794805),
+]
+
+private let bid_multipliers2_binary80_120: [UInt256] = [
+UInt256(3896855951179716386, 4211896717298331067, 16425880684453332156, 1115779154298605602),
+UInt256(2435534969487322741, 7244121466738844821, 7960332418569638645, 9920734008291404309),
+UInt256(3044418711859153426, 13666837851850943930, 14562101541639436210, 17012603528791643291),
+UInt256(3805523389823941783, 7860175277958904105, 8979254890194519455, 12042382374134778305),
+UInt256(2378452118639963614, 11830138576365396921, 17141249352440044419, 14444018011475318297),
+UInt256(2973065148299954518, 5564301183601970344, 7591503635267891812, 13443336495916759967),
+UInt256(3716331435374943147, 16178748516357238738, 9489379544084864765, 16804170619895949959),
+UInt256(2322707147109339467, 7805874813509580259, 10542548233480428382, 12808449646648662676),
+UInt256(2903383933886674334, 5145657498459587420, 8566499273423147574, 6787190021456052537),
+UInt256(3629229917358342917, 15655443909929260083, 10708124091778934467, 17707359563674841480),
+UInt256(4536537396697928647, 5734246832129411392, 8773469096296280180, 17522513436166163945),
+UInt256(2835335872936205404, 10501433297721963976, 5483418185185175113, 1728198860749076658),
+UInt256(3544169841170256755, 13126791622152454970, 6854272731481468891, 6771934594363733726),
+UInt256(4430212301462820944, 11796803509263180808, 17791212951206611922, 3853232224527279254),
+UInt256(2768882688414263090, 7373002193289488005, 11119508094504132451, 7019956158756937438),
+UInt256(3461103360517828862, 18439624778466635815, 64327062848001852, 4163259180018783893),
+UInt256(4326379200647286078, 13826158936228518960, 13915466883842166027, 5204073975023479866),
+UInt256(2703987000404553799, 4029663316715436446, 8697166802401353767, 946703225175980965),
+UInt256(3379983750505692249, 425393127466907654, 1648086466146916400, 15018437086752139918),
+UInt256(4224979688132115311, 5143427427761022471, 11283480119538421309, 326302284730623281),
+UInt256(2640612305082572069, 10132171169991720900, 13969704102352595174, 2509781937170333503),
+UInt256(3300765381353215086, 17276899980917039029, 17462130127940743967, 12360599458317692686),
+UInt256(4125956726691518858, 12372752939291522979, 7992604604643766247, 10839063304469727954),
+UInt256(2578722954182199286, 12344656605484589766, 2689534868688659952, 13691943592934661827),
+UInt256(3223403692727749108, 6207448720000961399, 12585290622715600748, 17114929491168327284),
+UInt256(4029254615909686385, 7759310900001201749, 11119927259967113032, 2946917790250857489),
+UInt256(2518284134943553990, 16378784358569220853, 9255797546693139597, 1841823618906785931),
+UInt256(3147855168679442488, 11250108411356750258, 16181432951793812400, 6913965542060870317),
+UInt256(3934818960849303110, 14062635514195937823, 11003419152887489692, 8642456927576087897),
+UInt256(2459261850530814444, 4177461177945073235, 13794665998195762913, 14624907616589830744),
+UInt256(3074077313163518055, 5221826472431341544, 12631646479317315738, 4446076465455124717),
+UInt256(3842596641454397569, 1915597072111789026, 15789558099146644672, 14780967618673681704),
+UInt256(2401622900908998480, 12726463216138337901, 14480159830394040824, 9238104761671051065),
+UInt256(3002028626136248100, 15908079020172922377, 4265141732710387318, 11547630952088813832),
+UInt256(3752535782670310126, 1438354701506601355, 9943113184315372052, 5211166653256241482),
+UInt256(2345334864168943828, 14734029743723789559, 3908602730983413580, 12480351195139926734),
+UInt256(2931668580211179785, 18417537179654736949, 274067395301879071, 15600438993924908418),
+UInt256(3664585725263974732, 9186863419286257474, 4954270262554736743, 14888862723978747618),
+UInt256(4580732156579968415, 11483579274107821842, 15416209865048196737, 13999392386546046618),
+UInt256(2862957597862480259, 14094766073958470507, 14246817184082510865, 1832091213950197281),
+UInt256(3578696997328100324, 13006771574020700230, 13196835461675750677, 6901800035865134505),
+UInt256(4473371246660125405, 16258464467525875288, 7272672290239912538, 13238936063258806035),
+UInt256(2795857029162578378, 12467383301417366007, 4545420181399945336, 12886021057964141676),
+UInt256(3494821286453222973, 6360857089916931701, 1070089208322543766, 16107526322455177095),
+UInt256(4368526608066528716, 12562757380823552530, 5949297528830567612, 10911035866214195560),
+UInt256(2730329130041580447, 17075095399869496139, 8329996973946492661, 16042769453238648033),
+UInt256(3412911412551975559, 16732183231409482270, 5800810199005727923, 6218403761266146329),
+UInt256(4266139265689969449, 16303543020834464933, 16474384785611935712, 3161318683155295008),
+UInt256(2666337041056230906, 3272185360380458727, 12602333500221153772, 1975824176972059380),
+UInt256(3332921301320288632, 13313603737330349217, 11141230856849054311, 2469780221215074225),
+]
+
+private let bid_multipliers2_binary80_121: [UInt256] = [
+UInt256(4166151626650360790, 16642004671662936522, 91480515779154176, 16922283331801006493),
+UInt256(2603844766656475494, 5789566901361947422, 4668861340789359264, 10576427082375629058),
+UInt256(3254805958320594367, 16460330663557210085, 15059448712841474888, 13220533852969536323),
+UInt256(4068507447900742959, 15963727311019124703, 4989252835769679898, 16525667316211920403),
+UInt256(2542817154937964349, 16894858597028034795, 10035812049997131792, 14940228091059838156),
+UInt256(3178521443672455437, 7283515191002879782, 7933079044069026837, 228541040115246079),
+UInt256(3973151804590569296, 13716080007180987632, 692976768231507738, 4897362318571445503),
+UInt256(2483219877869105810, 8572550004488117270, 433110480144692336, 7672537467534541343),
+UInt256(3104024847336382263, 1492315468755370779, 9764760137035641228, 9590671834418176679),
+UInt256(3880031059170477828, 15700452391226377186, 7594264152867163631, 11988339793022720849),
+UInt256(2425019411981548643, 589410707661709933, 9358101113969365173, 14410241398280282387),
+UInt256(3031274264976935803, 14571821439859301128, 16309312410889094371, 4177743692568189271),
+UInt256(3789092831221169754, 13603090781396738507, 1939896439901816348, 610493597282848685),
+UInt256(2368183019513231096, 13113617756800349470, 17353336339434492881, 9604930535156556236),
+UInt256(2960228774391538870, 16392022196000436838, 12468298387438340293, 16617849187373083199),
+UInt256(3700285967989423588, 11266655708145770240, 6362000947443149559, 6937253428934190287),
+UInt256(2312678729993389742, 16265031854445882208, 3976250592151968474, 11253312420724950786),
+UInt256(2890848412491737178, 11107917781202576952, 4970313240189960593, 4843268489051412674),
+UInt256(3613560515614671473, 4661525189648445382, 6212891550237450741, 10665771629741653746),
+UInt256(4516950644518339341, 10438592505487944631, 16989486474651589234, 17943900555604455087),
+UInt256(2823094152823962088, 8829963325143659346, 17535958074298325127, 15826623865680172333),
+UInt256(3528867691029952610, 11037454156429574183, 12696575556018130601, 15171593813672827512),
+UInt256(4411084613787440763, 4573445658682191921, 11259033426595275348, 5129434211808870678),
+UInt256(2756927883617150477, 552560527462675999, 119366863980965236, 12429268419235319982),
+UInt256(3446159854521438096, 5302386677755732902, 13984266635258370257, 15536585524044149978),
+UInt256(4307699818151797620, 6627983347194666128, 8256961257218187014, 5585673849773023760),
+UInt256(2692312386344873512, 13365861628851442138, 5160600785761366883, 17326104211390303562),
+UInt256(3365390482931091890, 16707327036064302672, 15674123019056484412, 17045944245810491549),
+UInt256(4206738103663864863, 11660786758225602533, 1145909700111053900, 2860686233553562820),
+UInt256(2629211314789915539, 14205520751532083439, 3022036571783102639, 11011300932825752570),
+UInt256(3286514143487394424, 13145214920987716394, 17612603770011042011, 9152440147604802809),
+UInt256(4108142679359243030, 16431518651234645493, 12792382675659026706, 6828864166078615607),
+UInt256(2567589174599526894, 5658013138594265529, 10301082181500585643, 8879726122226522659),
+UInt256(3209486468249408617, 16295888460097607719, 17488038745303119958, 6487971634355765419),
+UInt256(4011858085311760772, 6534802519839845937, 17248362413201512043, 17333336579799482582),
+UInt256(2507411303319850482, 13307623611754679519, 3862697480609863171, 8527492353160982662),
+UInt256(3134264129149813103, 7411157477838573591, 216685832334941060, 6047679423023840423),
+UInt256(3917830161437266379, 4652260828870829084, 14105915345700840037, 7559599278779800529),
+UInt256(2448643850898291487, 601820008830574225, 18039569127917800831, 7030592558451069283),
+UInt256(3060804813622864358, 14587333066320381494, 8714403354615087327, 4176554679636448699),
+UInt256(3826006017028580448, 9010794296045701060, 1669632156414083351, 609007331118172970),
+UInt256(2391253760642862780, 5631746435028563162, 10266892134613577902, 7298158609589939962),
+UInt256(2989067200803578475, 7039683043785703953, 3610243131412196569, 18346070298842200761),
+UInt256(3736334001004473094, 4187917786304742037, 9124489932692633616, 9097529818270587239),
+UInt256(2335208750627795683, 16452506671722627485, 8008649217146589962, 5685956136419117025),
+UInt256(2919010938284744604, 15953947321225896452, 14622497539860625356, 16330817207378672089),
+UInt256(3648763672855930756, 1495690077822818949, 18278121924825781696, 1966777435513788495),
+UInt256(4560954591069913445, 1869612597278523687, 9012594350750063408, 2458471794392235618),
+UInt256(2850596619418695903, 3474350882512771256, 12550400496859871486, 1536544871495147261),
+UInt256(3563245774273369878, 18177996658423127782, 15688000621074839357, 11144053126223709885),
+]
+
+private let bid_multipliers2_binary80_122: [UInt256] = [
+UInt256(4454057217841712348, 13499123786174133920, 10386628739488773389, 95008352497473644),
+UInt256(2783785761151070217, 17660324403213609508, 6491642962180483368, 2365223229524614980),
+UInt256(3479732201438837772, 8240347448734848173, 8114553702725604210, 2956529036905768724),
+UInt256(4349665251798547215, 10300434310918560216, 14754878146834393166, 12919033332986986713),
+UInt256(2718540782374092009, 13355300471965181991, 9221798841771495729, 3462709814689478792),
+UInt256(3398175977967615012, 2859067534674313777, 6915562533786981757, 8940073286789236394),
+UInt256(4247719972459518765, 3573834418342892221, 13256139185661115100, 15786777626913933396),
+UInt256(2654824982787199228, 4539489520678001590, 10590930000251890890, 643363979966432565),
+UInt256(3318531228483999035, 5674361900847501988, 4015290463460087804, 10027577011812816514),
+UInt256(4148164035604998794, 2481266357631989581, 5019113079325109755, 12534471264766020642),
+UInt256(2592602522253124246, 6162477491947381392, 5442788683791887549, 5528201531265068950),
+UInt256(3240753152816405307, 16926468901789002548, 6803485854739859436, 11521937932508724091),
+UInt256(4050941441020506634, 16546400108808865281, 8504357318424824295, 14402422415635905113),
+UInt256(2531838400637816646, 14953186086432928704, 16844438370083984944, 15919043037413522552),
+UInt256(3164798000797270808, 9468110571186385073, 2608803888895429565, 1452059723057351574),
+UInt256(3955997500996588510, 11835138213982981341, 7872690879546674860, 6426760672249077371),
+UInt256(2472498438122867819, 2785275365311975434, 7226274808930365739, 13240097457010449165),
+UInt256(3090623047653584773, 17316652261922133004, 18256215548017732982, 11938435802835673552),
+UInt256(3863278809566980967, 7810757272120502544, 4373525361312614612, 5699672716689816132),
+UInt256(2414549255979363104, 11799252322716395946, 2733453350820384132, 12785667484785910891),
+UInt256(3018186569974203880, 14749065403395494932, 12640188725380255973, 15982084355982388614),
+UInt256(3772733212467754850, 18436331754244368665, 15800235906725319967, 6142547389695822055),
+UInt256(2357958257792346781, 16134393364830118320, 2957618414062243123, 10756621146200970640),
+UInt256(2947447822240433477, 6332933650755484188, 3697023017577803904, 8834090414323825396),
+UInt256(3684309777800541846, 12527853081871743139, 4621278771972254880, 11042613017904781745),
+UInt256(4605387222250677308, 6436444315484903116, 1164912446537930696, 13803266272380977182),
+UInt256(2878367013906673317, 13246149734032840255, 9951442315940982493, 8627041420238110739),
+UInt256(3597958767383341647, 2722629112258886607, 7827616876498840212, 15395487793725026327),
+UInt256(4497448459229177058, 17238344445605771971, 5172835077196162362, 797615668446731293),
+UInt256(2810905287018235661, 15385651296930995386, 927178914033907524, 5110195811206594962),
+UInt256(3513631608772794577, 5397006065881580520, 10382345679397160213, 6387744764008243703),
+UInt256(4392039510965993221, 11357943600779363554, 12977932099246450266, 12596366973437692532),
+UInt256(2745024694353745763, 9404557759700796173, 12722893580456419320, 12484415376825945737),
+UInt256(3431280867942182204, 7144011181198607313, 2068558920288360438, 15605519221032432171),
+UInt256(4289101084927727755, 8930013976498259141, 7197384668787838452, 10283526989435764406),
+UInt256(2680688178079829847, 3275415726097718011, 6804208427206092984, 15650576405252128562),
+UInt256(3350860222599787308, 17929327712904311226, 3893574515580228327, 1116476432855609086),
+UInt256(4188575278249734136, 3964915567420837416, 14090340181330061216, 15230653596351675069),
+UInt256(2617859548906083835, 2478072229638023385, 8806462613331288260, 9519158497719796919),
+UInt256(3272324436132604793, 16932648342329692943, 15619764285091498229, 11898948122149746148),
+UInt256(4090405545165755992, 7330752372629952467, 14913019337936984883, 1038627097405018973),
+UInt256(2556503465728597495, 4581720232893720292, 7014794076996921599, 16790043000373994522),
+UInt256(3195629332160746869, 1115464272689762461, 8768492596246151999, 16375867732040105249),
+UInt256(3994536665200933586, 6006016359289590980, 15572301763735077903, 15858148646622743657),
+UInt256(2496585415750583491, 8365446242983382267, 509316565479647881, 16828871931780296642),
+UInt256(3120731769688229364, 5845121785301839929, 14471703762131723564, 7201031859443207090),
+UInt256(3900914712110286705, 7306402231627299912, 4254571647382490743, 9001289824304008862),
+UInt256(2438071695068929190, 16095716440835532205, 2659107279614056714, 12543335167831087395),
+UInt256(3047589618836161488, 10896273514189639448, 7935570117944958797, 6455796922934083436),
+UInt256(3809487023545201860, 13620341892737049310, 9919462647431198496, 12681432172094992199),
+]
+
+private let bid_multipliers2_binary80_123: [UInt256] = [
+UInt256(2380929389715751162, 17736085719815431627, 1587978136217111156, 7925895107559370124),
+UInt256(2976161737144688953, 12946735112914513725, 15820030725553552657, 9907368884449212655),
+UInt256(3720202171430861192, 2348360835860978445, 5939980351659777109, 16995897123988903723),
+UInt256(2325126357144288245, 1467725522413111528, 6018330729001054645, 12928278711706758779),
+UInt256(2906407946430360306, 6446342921443777314, 7522913411251318307, 2325290334351284762),
+UInt256(3633009933037950382, 17281300688659497451, 180269727209372075, 16741670973221269664),
+UInt256(4541262416297437978, 12378253823969596005, 14060395214293878806, 16315402698099199176),
+UInt256(2838289010185898736, 12348094658408385407, 11093590018147368206, 5585440667884611581),
+UInt256(3547861262732373420, 15435118323010481759, 9255301504256822353, 16205172871710540284),
+UInt256(4434826578415466776, 847153830053550583, 6957440861893640038, 6421408034356011643),
+UInt256(2771766611509666735, 529471143783469114, 11265929566324606879, 17848438076754670989),
+UInt256(3464708264387083418, 14496896985011500105, 4859039921050982791, 17698861577515950832),
+UInt256(4330885330483854273, 8897749194409599323, 10685485919741116393, 17511890953467550636),
+UInt256(2706803331552408920, 17090308292574469337, 4372585690624503794, 4027402818276137292),
+UInt256(3383504164440511151, 2916141292008535055, 10077418131708017646, 14257625559699947423),
+UInt256(4229380205550638938, 17480234670292832531, 7985086646207634154, 8598659912770158470),
+UInt256(2643362628469149336, 15536832687360408236, 2684836144666077394, 9985848463908736948),
+UInt256(3304203285586436671, 974296785490958679, 3356045180832596743, 3258938543031145377),
+UInt256(4130254106983045838, 15052929037145862060, 18030114531322909640, 17908731234071095433),
+UInt256(2581408816864403649, 4796394629788775884, 2045449545222042717, 11192957021294434646),
+UInt256(3226761021080504561, 10607179305663357759, 2556811931527553397, 156138221335879595),
+UInt256(4033451276350630701, 17870660150506585102, 17031072969691605458, 4806858795097237398),
+UInt256(2520907047719144188, 13475005603280309641, 6032734587629865507, 7615972765363161278),
+UInt256(3151133809648930235, 16843757004100387051, 12152604252964719788, 4908279938276563693),
+UInt256(3938917262061162794, 16443010236698095910, 10579069297778511831, 6135349922845704616),
+UInt256(2461823288788226746, 14888567416363697848, 2000232292684181990, 10752122729419647241),
+UInt256(3077279110985283433, 9387337233599846502, 2500290365855227488, 4216781374919783244),
+UInt256(3846598888731604291, 16345857560427196031, 12348734994173810168, 5270976718649729054),
+UInt256(2404124305457252682, 7910317966053303567, 14635488398999713211, 3294360449156080659),
+UInt256(3005155381821565853, 664525420711853651, 13682674480322253609, 17953008616727264536),
+UInt256(3756444227276957316, 5442342794317204968, 12491657081975429108, 8606202715626916958),
+UInt256(2347777642048098322, 12624836283303028913, 7807285676234643192, 14602248734121598907),
+UInt256(2934722052560122903, 6557673317274010333, 14370793113720691894, 18252810917651998633),
+UInt256(3668402565700153629, 3585405628165125013, 4128433336868701156, 13592641610210222484),
+UInt256(4585503207125192036, 9093443053633794170, 9772227689513264349, 16990802012762778104),
+UInt256(2865939504453245022, 14906773945375897164, 10719328324373178122, 12925094267190430267),
+UInt256(3582424380566556278, 9410095394865095647, 13399160405466472653, 6932995797133262026),
+UInt256(4478030475708195348, 2539247206726593751, 12137264488405702912, 13277930764843965437),
+UInt256(2798769047317622092, 10810401541058896902, 14503319332894646176, 8298706728027478398),
+UInt256(3498461309147027615, 13513001926323621128, 8905777129263531912, 10373383410034347997),
+UInt256(4373076636433784519, 12279566389477138506, 11132221411579414890, 12966729262542934997),
+UInt256(2733172897771115324, 14592258021064293422, 11569324400664522210, 12715891807516722277),
+UInt256(3416466122213894155, 18240322526330366778, 5238283463975876955, 6671492722541127038),
+UInt256(4270582652767367694, 18188717139485570568, 15771226366824622002, 3727679884749020894),
+UInt256(2669114157979604809, 6756262193751093701, 9857016479265388751, 6941485946395525963),
+UInt256(3336392697474506011, 13057013760616255030, 16932956617509123843, 4065171414567019549),
+UInt256(4170490871843132514, 11709581182342930884, 11942823735031628996, 469778249781386533),
+UInt256(2606556794901957821, 11930174257391719706, 16687636871249543930, 9516983442968142391),
+UInt256(3258195993627447277, 1077659766457485921, 11636174052207154105, 2672857266855402181),
+UInt256(4072744992034309096, 5958760726499245306, 710159509976778919, 7952757601996640630),
+]
+
+private let bid_multipliers2_binary80_124: [UInt256] = [
+UInt256(2545465620021443185, 3724225454062028316, 5055535712162874728, 11888002528888982250),
+UInt256(3181832025026803981, 9266967836004923299, 6319419640203593410, 14860003161111227812),
+UInt256(3977290031283504976, 16195395813433542028, 3287588531827103859, 9351631914534258957),
+UInt256(2485806269552190610, 10122122383395963767, 11278114869246715720, 3538926937370217896),
+UInt256(3107257836940238263, 3429280942390178901, 9485957568131006746, 4423658671712772370),
+UInt256(3884072296175297828, 18121659233269887338, 16469132978591146336, 14752945376495741271),
+UInt256(2427545185109561143, 2102664983938903778, 14904894130046854364, 9220590860309838294),
+UInt256(3034431481386951428, 16463389285205793435, 9407745625703792147, 11525738575387297868),
+UInt256(3793039351733689286, 2132492532797690178, 7147996013702352280, 9795487200806734431),
+UInt256(2370649594833555803, 15167865888280720073, 9079183526991358079, 6122179500504209019),
+UInt256(2963311993541944754, 14348146341923512187, 15960665427166585503, 3041038357202873370),
+UInt256(3704139991927430943, 8711810890549614426, 15339145765530843974, 17636356001785755424),
+UInt256(2315087494954644339, 12362410834234590872, 14198652121884165388, 6411036482688709236),
+UInt256(2893859368693305424, 10841327524365850686, 17748315152355206735, 8013795603360886545),
+UInt256(3617324210866631780, 13551659405457313358, 12962021903589232611, 5405558485773720278),
+UInt256(4521655263583289725, 16939574256821641698, 6979155342631764956, 2145262088789762443),
+UInt256(2826034539739556078, 12893076919727220013, 8973658107572241001, 10564160842348377335),
+UInt256(3532543174674445098, 6892974112804249208, 15828758652892689155, 17816887071362859573),
+UInt256(4415678968343056372, 17839589677860087319, 1339204242406309828, 17659422820776186562),
+UInt256(2759799355214410233, 1926371511807778766, 7754531679145025499, 1813767226130340793),
+UInt256(3449749194018012791, 7019650408187111362, 469792562076506065, 16102267087945089703),
+UInt256(4312186492522515989, 4162876991806501298, 9810612739450408390, 6292775804649198417),
+UInt256(2695116557826572493, 4907641129092757263, 10743318980583893147, 17768042933187912723),
+UInt256(3368895697283215616, 10746237429793334483, 8817462707302478530, 17598367648057503000),
+UInt256(4211119621604019520, 13432796787241668104, 6410142365700710259, 12774587523217102941),
+UInt256(2631949763502512200, 8395497992026042565, 4006338978562943912, 5678274192796995386),
+UInt256(3289937204378140250, 10494372490032553206, 9619609741631067794, 7097842740996244233),
+UInt256(4112421505472675313, 3894593575685915700, 2801140140184058934, 18095675463100081099),
+UInt256(2570263440920422070, 13963336030872167072, 10974084624469812642, 6698111146010162783),
+UInt256(3212829301150527588, 8230798001735433032, 13717605780587265802, 17596010969367479287),
+UInt256(4016036626438159485, 10288497502169291290, 17147007225734082253, 12771641674854573300),
+UInt256(2510022891523849678, 8736153948069501008, 15328565534511189312, 10288119055997802265),
+UInt256(3137528614404812098, 1696820398232100453, 713962844429435024, 12860148819997252831),
+UInt256(3921910768006015122, 11344397534644901374, 5504139573964181684, 16075186024996566039),
+UInt256(2451194230003759451, 11701934477580451262, 17275145289009777265, 823619228768077966),
+UInt256(3063992787504699314, 10015732078548176174, 12370559574407445773, 5641210054387485362),
+UInt256(3829990984380874143, 3296293061330444410, 6239827431154531408, 11663198586411744606),
+UInt256(2393744365238046339, 8977712190972609612, 8511578162898970034, 7289499116507340379),
+UInt256(2992180456547557924, 6610454220288374111, 10639472703623712542, 18335245932488951282),
+UInt256(3740225570684447405, 8263067775360467639, 8687654861102252774, 13695685378756413294),
+UInt256(2337640981677779628, 7470260368813986226, 12347313315829989840, 3948117343295370405),
+UInt256(2922051227097224535, 9337825461017482783, 6210769607932711492, 4935146679119213006),
+UInt256(3652564033871530669, 7060595807844465575, 3151775991488501461, 6168933348899016257),
+UInt256(4565705042339413336, 13437430778232969872, 17774778044642790538, 12322852704551158226),
+UInt256(2853565651462133335, 8398394236395606170, 11109236277901744086, 12313468958771861795),
+UInt256(3566957064327666669, 5886306777067119809, 4663173310522404300, 6168464161610051436),
+UInt256(4458696330409583336, 11969569489761287665, 10440652656580393279, 7710580202012564295),
+UInt256(2786685206505989585, 7480980931100804790, 18054622956431215559, 11736641653898934540),
+UInt256(3483356508132486981, 13962912182303393892, 13344906658684243641, 10059116048946280271),
+UInt256(4354195635165608727, 3618582172597078653, 16681133323355304551, 17185581079610238243),
+]
+
+private let bid_multipliers2_binary80_125: [UInt256] = [
+UInt256(2721372271978505454, 9179142885514256014, 12731551336310759296, 17658517202397480758),
+UInt256(3401715339973131818, 2250556570038044210, 6691067133533673313, 3626402429287299331),
+UInt256(4252144174966414772, 12036567749402331070, 17587205953771867449, 9144689055036512068),
+UInt256(2657590109354009232, 16746226880231232727, 6380317702680029251, 17244645705466289803),
+UInt256(3321987636692511541, 2486039526579489293, 3363711109922648660, 16944121113405474349),
+UInt256(4152484545865639426, 7719235426651749520, 8816324905830698730, 2733407318047291321),
+UInt256(2595302841166024641, 9436208160084731354, 5510203066144186706, 6320065592206944980),
+UInt256(3244128551457530801, 16406946218533302096, 16111125869535009190, 17123454027113457032),
+UInt256(4055160689321913502, 6673624717884463909, 1692163263209209872, 12180945497037045482),
+UInt256(2534475430826195938, 18006073503959953655, 3363445048719450122, 7613090935648153427),
+UInt256(3168094288532744923, 13284219843095166260, 18039364366181476365, 292991632705415975),
+UInt256(3960117860665931154, 11993588785441569922, 4102461384017293840, 4977925559309157873),
+UInt256(2475073662916206971, 12107679009328369105, 7175724383438196554, 3111203474568223671),
+UInt256(3093842078645258714, 10522912743233073477, 13581341497725133596, 13112376380065055396),
+UInt256(3867302598306573393, 3930268892186566039, 3141618816874253283, 16390470475081319245),
+UInt256(2417064123941608370, 13985633103685073534, 8881040788187490158, 7938201037712130576),
+UInt256(3021330154927010463, 8258669342751566110, 1877928948379586890, 699379260285387412),
+UInt256(3776662693658763079, 5711650660012069733, 11570783222329259420, 10097596112211510073),
+UInt256(2360414183536726924, 10487310690148625439, 9537582523169481089, 15534369606986969604),
+UInt256(2950517729420908655, 13109138362685781799, 7310292135534463458, 5582903953451548293),
+UInt256(3688147161776135819, 11774736934929839345, 4526179150990691418, 16202001978669211174),
+UInt256(4610183952220169774, 10106735150234911277, 10269409957165752177, 11029130436481738159),
+UInt256(2881364970137606109, 1705023450469431644, 8724224232442289062, 18422421568869556110),
+UInt256(3601706212672007636, 6742965331514177459, 10905280290552861328, 13804654924232169329),
+UInt256(4502132765840009545, 8428706664392721824, 9019914344763688756, 17255818655290211661),
+UInt256(2813832978650005965, 16797156711313920900, 5637446465477305473, 1561514622701606481),
+UInt256(3517291223312507457, 7161387833860237413, 7046808081846631841, 6563579296804396005),
+UInt256(4396614029140634321, 13563420810752684670, 13420196120735677705, 12816160139432882910),
+UInt256(2747883768212896451, 1559608979079346063, 3775936557032410662, 1092571059504469963),
+UInt256(3434854710266120563, 15784569279131346291, 108234677863125423, 10589085861235363261),
+UInt256(4293568387832650704, 15119025580486794959, 13970351402611070491, 8624671308116816172),
+UInt256(2683480242395406690, 9449390987804246849, 15648998654273000913, 3084576558359316156),
+UInt256(3354350302994258363, 2588366697900532754, 5726190262559087429, 8467406716376533099),
+UInt256(4192937878742822953, 17070516427657829654, 16381109865053635094, 15195944413898054277),
+UInt256(2620586174214264346, 3751543739645061678, 5626507647231134030, 4885779240258896020),
+UInt256(3275732717767830432, 13912801711411102905, 16256506595893693345, 15330596087178395832),
+UInt256(4094665897209788040, 17391002139263878632, 6485575189584952970, 5328187053690831078),
+UInt256(2559166185756117525, 10869376337039924145, 4053484493490595606, 7941802926984157328),
+UInt256(3198957732195146906, 18198406439727293085, 9678541635290632412, 703881621875420852),
+UInt256(3998697165243933633, 13524636012804340548, 16709863062540678419, 879852027344276065),
+UInt256(2499185728277458521, 1535368480361630987, 1220292377233148203, 16690808581586030205),
+UInt256(3123982160346823151, 6530896618879426637, 15360423526823598966, 16251824708555149852),
+UInt256(3904977700433528939, 3551934755171895393, 5365471353247334996, 11091408848839161507),
+UInt256(2440611062770955586, 18360860286478292284, 14882634641848054132, 16155502567379251750),
+UInt256(3050763828463694483, 13727703321243089548, 156549228600516050, 1747634135514513071),
+UInt256(3813454785579618104, 12547943133126474031, 195686535750645062, 11407914706247917147),
+UInt256(2383409240987261315, 7842464458204046269, 7039833112485235020, 2518260672977560313),
+UInt256(2979261551234076644, 5191394554327669932, 13411477409033931679, 3147825841221950391),
+UInt256(3724076939042595805, 6489243192909587415, 16764346761292414598, 17769840356809601701),
+UInt256(2327548086901622378, 6361620004782186086, 17395245753448840980, 6494464204578613159),
+]
+
+private let bid_multipliers2_binary80_126: [UInt256] = [
+UInt256(2909435108627027972, 17175397042832508416, 12520685154956275417, 8118080255723266449),
+UInt256(3636793885783784966, 3022502229831083904, 15650856443695344271, 14759286338081470965),
+UInt256(4545992357229731207, 13001499824143630689, 1116826480909628723, 13837421904174450802),
+UInt256(2841245223268582004, 15043466417730851036, 12227231596636987712, 6342545680895337799),
+UInt256(3551556529085727506, 357588948454012179, 15284039495796234640, 7928182101119172249),
+UInt256(4439445661357159382, 9670358222422291032, 14493363351317905396, 9910227626398965311),
+UInt256(2774653538348224614, 1432287870586543991, 9058352094573690872, 15417264303354129128),
+UInt256(3468316922935280767, 11013731875087955797, 6711254099789725687, 824836305483109794),
+UInt256(4335396153669100959, 9155478825432556842, 13000753643164545012, 14866103437136050954),
+UInt256(2709622596043188099, 12639703293536429882, 12737157045405228537, 67942611355256038),
+UInt256(3387028245053985124, 11187943098493149449, 6698074269901759863, 4696614282621457952),
+UInt256(4233785306317481405, 13984928873116436811, 12984278855804587733, 1259081834849434536),
+UInt256(2646115816448425878, 11046423554911466959, 5809331275664173381, 3092769155994590537),
+UInt256(3307644770560532348, 4584657406784557891, 2649978076152828822, 8477647463420626075),
+UInt256(4134555963200665435, 5730821758480697363, 17147530650473199740, 1373687292421006786),
+UInt256(2584097477000415897, 1275920589836741900, 8411363647332055885, 10081926594617905049),
+UInt256(3230121846250519871, 6206586755723315279, 10514204559165069856, 17214094261699769215),
+UInt256(4037652307813149839, 3146547426226756195, 8531069680528949417, 3070873753415159903),
+UInt256(2523532692383218649, 8884121169032804478, 3026075541116899433, 13448511141952944700),
+UInt256(3154415865479023311, 15716837479718393501, 13005966463250900100, 2975580872159017162),
+UInt256(3943019831848779139, 15034360831220603973, 2422400023781461413, 3719476090198771453),
+UInt256(2464387394905486962, 7090632510299183531, 3819843024077107335, 4630515565587926110),
+UInt256(3080484243631858702, 18086662674728755222, 163117761668996265, 1176458438557519734),
+UInt256(3850605304539823378, 13384956306556168219, 9427269238941021139, 6082259066624287571),
+UInt256(2406628315337389611, 12977283710024993041, 3586200265124444260, 1495568907426485780),
+UInt256(3008285394171737014, 11609918619103853397, 9094436349832943229, 1869461134283107225),
+UInt256(3760356742714671268, 5289026237025040938, 15979731455718566940, 6948512436281271935),
+UInt256(2350222964196669542, 12529013434995426394, 14599018178251492241, 13566192309530570768),
+UInt256(2937778705245836928, 6437894756889507185, 9025400685959589494, 3122682331631049747),
+UInt256(3672223381557296160, 8047368446111883981, 15893436875876874771, 13126724951393587992),
+UInt256(4590279226946620200, 10059210557639854977, 6031738039563929752, 11796720170814597086),
+UInt256(2868924516841637625, 6287006598524909360, 15299051320795925855, 7372950106759123179),
+UInt256(3586155646052047031, 12470444266583524605, 677070077285355703, 4604501615021516070),
+UInt256(4482694557565058789, 10976369314802017852, 5458023615034082533, 1143941000349507183),
+UInt256(2801684098478161743, 9166073830964955109, 12634636796251077391, 3020806134432135941),
+UInt256(3502105123097702179, 6845906270278805983, 1958237940031683026, 17611065723322333639),
+UInt256(4377631403872127724, 3945696819421119574, 16282855480321767495, 12790460117298141240),
+UInt256(2736019627420079827, 11689432548992975542, 5565098656773716780, 14911566600952420131),
+UInt256(3420024534275099784, 10000104667813831523, 16179745357821921784, 192714177480973548),
+UInt256(4275030667843874730, 12500130834767289404, 15612995678850014326, 240892721851216935),
+UInt256(2671894167402421706, 12424267790156943782, 534750262426483145, 13985616006439174297),
+UInt256(3339867709253027133, 6306962700841403919, 9891809864887879740, 3646961952766804159),
+UInt256(4174834636566283916, 12495389394479142803, 7753076312682461771, 4558702440958505198),
+UInt256(2609271647853927447, 17032990408404240060, 2539829686212844655, 543346016385371797),
+UInt256(3261589559817409309, 16679551992077912171, 3174787107766055818, 14514240575763878458),
+UInt256(4076986949771761637, 7014381934815226501, 17803541939989733485, 8919428682850072264),
+UInt256(2548116843607351023, 6689831718473210515, 13433056721707277380, 7880485935994989117),
+UInt256(3185146054509188779, 3750603629664125240, 12179634883706708821, 9850607419993736397),
+UInt256(3981432568136485974, 76568518652768646, 15224543604633386026, 16924945293419558400),
+UInt256(2488395355085303733, 13882913379440144116, 4903653734468478362, 15189776826814611904),
+]
+
+private let bid_multipliers2_binary80_127: [UInt256] = [
+UInt256(3110494193856629667, 3518583669018016433, 6129567168085597953, 9763848996663489072),
+UInt256(3888117742320787083, 18233287641554684253, 12273644978534385345, 16816497264256749244),
+UInt256(2430073588950491927, 9089961766757983706, 9976871120797684793, 3592781762519386422),
+UInt256(3037591986188114909, 6750766190020091729, 3247716864142330183, 9102663221576620931),
+UInt256(3796989982735143636, 13050143755952502565, 8671332098605300633, 6766643008543388259),
+UInt256(2373118739209464772, 17379711884325089911, 7725425570842006847, 15758366926408087422),
+UInt256(2966398424011830966, 3277895781696810773, 5045095945125120655, 15086272639582721374),
+UInt256(3707998030014788707, 13320741763975789274, 10918055949833788723, 14246154781051013813),
+UInt256(2317498768759242942, 6019620593271174344, 11435470987073505856, 6598003728943189681),
+UInt256(2896873460949053677, 16747897778443743738, 14294338733841882320, 8247504661178987102),
+UInt256(3621091826186317097, 7099814167772515961, 8644551380447577092, 10309380826473733877),
+UInt256(4526364782732896371, 13486453728143032855, 15417375243986859269, 12886726033092167346),
+UInt256(2828977989208060232, 6123190570875701582, 16553388555132868899, 10360046779896298543),
+UInt256(3536222486510075290, 7653988213594626978, 11468363657061310316, 8338372456442985275),
+UInt256(4420278108137594113, 344113230138507915, 5112082534471862087, 10422965570553731594),
+UInt256(2762673817585996320, 11744285814905037207, 889208574831219852, 13431882509237164102),
+UInt256(3453342271982495400, 14680357268631296508, 14946568773821188527, 16789853136546455128),
+UInt256(4316677839978119250, 18350446585789120636, 236466893566934043, 16375630402255681006),
+UInt256(2697923649986324531, 16080715134545588301, 9371163845334109585, 7928925992196106677),
+UInt256(3372404562482905664, 15489207899754597472, 16325640825095024885, 14522843508672521250),
+UInt256(4215505703103632081, 914765800983695225, 1960306957659229491, 4318496330558487850),
+UInt256(2634691064439770050, 12100943671683279275, 12754406894605488192, 393217197385360954),
+UInt256(3293363830549712563, 5902807552749323286, 11331322599829472336, 491521496731701193),
+UInt256(4116704788187140704, 2766823422509266204, 4940781212932064612, 614401870914626491),
+UInt256(2572940492616962940, 1729264639068291377, 12311360294937316190, 9607373206176417365),
+UInt256(3216175615771203675, 2161580798835364222, 1554142313389481526, 2785844470865745898),
+UInt256(4020219519714004593, 16537034053826368989, 11166049928591627715, 12705677625436958181),
+UInt256(2512637199821252871, 3418117256000398762, 9284624214583461274, 5635205506684404911),
+UInt256(3140796499776566088, 18107704625282662165, 2382408231374550784, 16267378920210281947),
+UInt256(3925995624720707611, 4187886707893776090, 7589696307645576385, 1887479576553300817),
+UInt256(2453747265450442257, 311586183219916104, 9355246210705873144, 12708889781414282771),
+UInt256(3067184081813052821, 5001168747452283034, 11694057763382341430, 15886112226767853464),
+UInt256(3833980102266316026, 10863146952742741697, 5394200167373150980, 10634268246605041021),
+UInt256(2396237563916447516, 11401152863891601464, 14900590150676689122, 15869789690982926447),
+UInt256(2995296954895559395, 14251441079864501831, 178993614636309787, 10613865076873882250),
+UInt256(3744121193619449244, 13202615331403239384, 14058800073577550946, 8655645327664964908),
+UInt256(2340075746012155777, 17475006618981800423, 8786750045985969341, 10021464348217990972),
+UInt256(2925094682515194722, 8008700218445086817, 6371751539055073772, 17138516453699876619),
+UInt256(3656368353143993403, 787503236201582713, 12576375442246230120, 2976401493415294157),
+UInt256(4570460441429991753, 14819437100534142104, 1885411247525623938, 3720501866769117697),
+UInt256(2856537775893744846, 2344619160192756959, 1178382029703514961, 6936999685158086465),
+UInt256(3570672219867181057, 12154145987095722006, 15308035592411557413, 13282935624874995985),
+UInt256(4463340274833976322, 1357624428587488796, 9911672453659670959, 2768611475811581269),
+UInt256(2789587671771235201, 5460201286294568401, 15418167320392070157, 8647911200023320149),
+UInt256(3486984589714044001, 11436937626295598406, 5437651095207923984, 15421575018456538090),
+UInt256(4358730737142555002, 461113977587334295, 16020435905864680789, 830224699361120997),
+UInt256(2724206710714096876, 4899882254419471838, 16930301468806507349, 2824733446314394575),
+UInt256(3405258388392621095, 6124852818024339798, 11939504799153358378, 8142602826320381123),
+UInt256(4256572985490776369, 3044380004103036844, 5701008962086922165, 954881496045700595),
+UInt256(2660358115931735230, 13431952548632867787, 12786502638159102161, 2902643944242256824),
+]
+
+private let bid_multipliers2_binary80_128: [UInt256] = [
+UInt256(3325447644914669038, 7566568648936308926, 11371442279271489797, 8239990948730208934),
+UInt256(4156809556143336298, 234838774315610350, 4990930812234586438, 14911674704340149072),
+UInt256(2598005972589585186, 4758460252374644372, 16954389812928780236, 4708110671785205266),
+UInt256(3247507465736981482, 15171447352323081274, 2746243192451423679, 5885138339731506582),
+UInt256(4059384332171226853, 9740937153549075784, 12656176027419055407, 2744736906236995324),
+UInt256(2537115207607016783, 8393928730181866317, 7910110017136909629, 8632989594039203934),
+UInt256(3171394009508770979, 5880724894299944992, 14499323539848524940, 15402923010976392821),
+UInt256(3964242511885963724, 2739220099447543336, 18124154424810656176, 806909690010939410),
+UInt256(2477651569928727327, 10935384599009490393, 11327596515506660110, 504318556256837131),
+UInt256(3097064462410909159, 9057544730334475088, 324437589101161425, 9853770232175822222),
+UInt256(3871330578013636449, 6710244894490705956, 405546986376451781, 16928898808647165682),
+UInt256(2419581611258522780, 15723118105125160982, 9476838903340058171, 12886404764618172503),
+UInt256(3024477014073153476, 1207153557696899612, 2622676592320296906, 11496319937345327725),
+UInt256(3780596267591441845, 1508941947121124515, 3278345740400371133, 5147027884826883848),
+UInt256(2362872667244651153, 3248931726164396773, 18189867152246089622, 5522735437230496357),
+UInt256(2953590834055813941, 8672850676132883871, 8902275885025448315, 16126791333392896254),
+UInt256(3691988542569767426, 15452749363593492743, 6516158837854422490, 15546803148313732414),
+UInt256(2307492839106104641, 14269654370673320868, 10990128301300095912, 14328437986123470663),
+UInt256(2884366048882630802, 4002009908059487373, 13737660376625119890, 17910547482654338328),
+UInt256(3605457561103288502, 14225884421929135025, 3337017415499236151, 13164812316463147102),
+UInt256(4506821951379110628, 8558983490556642973, 8782957787801433093, 11844329377151545974),
+UInt256(2816763719611944142, 14572736718452677666, 7795191626589589635, 9708548869933410186),
+UInt256(3520954649514930178, 8992548861211071275, 520617496382211236, 7524000068989374828),
+UInt256(4401193311893662723, 2017314039659063285, 14485829925759927757, 9405000086236718535),
+UInt256(2750745819933539201, 17401722339282772217, 11359486712813648800, 8183968063111643037),
+UInt256(3438432274916924002, 7917094868821301560, 364300335734897288, 10229960078889553796),
+UInt256(4298040343646155003, 672996549171851142, 455375419668621610, 12787450098611942244),
+UInt256(2686275214778846876, 16561523907728264627, 14119667692575052218, 12603842330059851807),
+UInt256(3357844018473558596, 2255160810950779168, 13037898597291427369, 6531430875720038950),
+UInt256(4197305023091948245, 2818951013688473960, 16297373246614284211, 12775974613077436592),
+UInt256(2623315639432467653, 4067687392768990177, 10185858279133927632, 5679141123959703918),
+UInt256(3279144549290584566, 9696295259388625625, 17344008867344797444, 7098926404949629898),
+UInt256(4098930686613230708, 2896997037381006224, 7844953028898833093, 8873658006187037372),
+UInt256(2561831679133269192, 11033995185217904698, 4903095643061770683, 7851879263080592310),
+UInt256(3202289598916586490, 13792493981522380872, 15352241590681989162, 5203163060423352483),
+UInt256(4002861998645733113, 8017245440048200283, 743557914642934836, 15727325862383966411),
+UInt256(2501788749153583195, 16539993446098594936, 16605624761147691937, 606206627135203199),
+UInt256(3127235936441978994, 16063305789195855767, 2310286877725063305, 5369444302346391903),
+UInt256(3909044920552473743, 10855760199640043900, 16722916652438492843, 11323491396360377783),
+UInt256(2443153075345296089, 13702379152416109294, 1228450870919282219, 4771339113511542162),
+UInt256(3053941344181620112, 3292915885237972905, 10758935625503878582, 1352487873462039799),
+UInt256(3817426680227025140, 4116144856547466131, 18060355550307236131, 10913981878682325556),
+UInt256(2385891675141890712, 11795962572196942140, 8981879209728328630, 4515395664962759521),
+UInt256(2982364593927363390, 14744953215246177675, 11227349012160410787, 14867616618058225209),
+UInt256(3727955742409204238, 9207819482202946286, 9422500246773125580, 13972834754145393607),
+UInt256(2329972339005752649, 1143201157949453525, 1277376635805815583, 17956393758195646813),
+UInt256(2912465423757190811, 6040687465864204810, 6208406813184657383, 17833806179317170612),
+UInt256(3640581779696488514, 2939173313902868108, 16983880553335597537, 17680571705719075361),
+UInt256(4550727224620610642, 12897338679233360944, 2783106617959945306, 8265656576866680489),
+UInt256(2844204515387881651, 12672522692948238494, 1739441636224965816, 9777721378969063210),
+]
+
+private let bid_multipliers2_binary80_129: [UInt256] = [
+UInt256(3555255644234852064, 11228967347757910213, 11397674082135983078, 12222151723711329012),
+UInt256(4444069555293565080, 14036209184697387767, 412034547387815136, 6054317617784385457),
+UInt256(2777543472058478175, 8772630740435867354, 7175050619758466316, 3783948511115240911),
+UInt256(3471929340073097719, 6354102407117446288, 18192185311552858703, 4729935638894051138),
+UInt256(4339911675091372149, 3330941990469419957, 4293487565731521763, 1300733530190176019),
+UInt256(2712444796932107593, 4387681753257081425, 4989272737795895053, 16953859520864717676),
+UInt256(3390555996165134491, 10096288209998739685, 10848276940672256721, 7357266345798733383),
+UInt256(4238194995206418114, 8008674244071036702, 18172032194267708805, 13808268950675804632),
+UInt256(2648871872004011321, 9617107420971785843, 6745834102989930099, 10936011103386071847),
+UInt256(3311089840005014151, 16633070294642120208, 3820606610310024720, 9058327860805201905),
+UInt256(4138862300006267689, 16179651849875262356, 4775758262887530900, 11322909826006502381),
+UInt256(2586788937503917306, 3194753378530957116, 12208220951159482620, 16300190678108839796),
+UInt256(3233486171879896632, 13216813760018472203, 15260276188949353276, 1928494273926498129),
+UInt256(4041857714849870790, 16521017200023090254, 14463659217759303691, 2410617842408122661),
+UInt256(2526161071781169244, 5713949731587043505, 4428100992672176902, 17647537216000934328),
+UInt256(3157701339726461555, 7142437164483804381, 10146812259267609032, 12836049483146392101),
+UInt256(3947126674658076944, 4316360437177367572, 17295201342511899194, 16045061853932990127),
+UInt256(2466954171661298090, 2697725273235854733, 1586128802215161188, 14639849677135506733),
+UInt256(3083692714576622612, 12595528628399594224, 6594347021196339389, 18299812096419383417),
+UInt256(3854615893220778265, 15744410785499492780, 8242933776495424237, 9039707065242065559),
+UInt256(2409134933262986416, 2922727713296101131, 14375205647164415956, 7955659924989984926),
+UInt256(3011418666578733020, 3653409641620126414, 13357321040528132041, 9944574906237481158),
+UInt256(3764273333223416275, 4566762052025158018, 7473279263805389243, 17042404651224239351),
+UInt256(2352670833264635172, 548383273302029809, 9282485558305756181, 8345659897801455643),
+UInt256(2940838541580793965, 685479091627537261, 16214792966309583130, 15043760890679207457),
+UInt256(3676048176975992456, 5468534882961809481, 6433433152604815201, 9581329076494233513),
+UInt256(4595060221219990570, 6835668603702261851, 12653477459183406905, 16588347364045179795),
+UInt256(2871912638262494106, 8883978895741301561, 5602580402775935364, 3450188074887155516),
+UInt256(3589890797828117633, 1881601582821851143, 11614911521897307109, 4312735093608944395),
+UInt256(4487363497285147041, 6963687996954701833, 9906953383944245982, 10002604885438568398),
+UInt256(2804602185803216900, 15881520044165158405, 17721060911033623499, 1639942034971717345),
+UInt256(3505752732254021126, 1405155981496896391, 8316268083509865661, 15884985598996810393),
+UInt256(4382190915317526407, 10979817013725896297, 5783649085959944173, 6021173943463849279),
+UInt256(2738869322073454004, 13779914661219767041, 15143995724793434868, 6069076723878599752),
+UInt256(3423586652591817505, 17224893326524708802, 5094936600709629873, 7586345904848249689),
+UInt256(4279483315739771882, 7696058602873722290, 15592042787741813149, 14094618399487700016),
+UInt256(2674677072337357426, 9421722645223464335, 14356712760766021122, 11114979508893506462),
+UInt256(3343346340421696783, 2553781269674554611, 13334204932530138499, 4670352349262107269),
+UInt256(4179182925527120978, 17027284642375356976, 12056070147235285220, 1226254418150246183),
+UInt256(2611989328454450611, 15253738919911986014, 7535043842022053262, 9989781048198679672),
+UInt256(3264986660568063264, 14455487631462594614, 195432765672790770, 3263854273393573782),
+UInt256(4081233325710079080, 18069359539328243267, 9467662993945764270, 13303189878596743036),
+UInt256(2550770828568799425, 11293349712080152042, 3611446362002408717, 3702807655695576494),
+UInt256(3188463535710999282, 281629084818026340, 13737679989357786704, 9240195588046858521),
+UInt256(3985579419638749102, 9575408392877308733, 17172099986697233380, 11550244485058573151),
+UInt256(2490987137274218189, 1372944227120930054, 13038405500899464814, 16442274840016384027),
+UInt256(3113733921592772736, 6327866302328550472, 7074634839269555210, 11329471513165704226),
+UInt256(3892167401990965920, 7909832877910688090, 8843293549086944013, 4938467354602354475),
+UInt256(2432604626244353700, 4943645548694180056, 10138744486606727912, 5392385105840165499),
+UInt256(3040755782805442125, 6179556935867725070, 12673430608258409890, 6740481382300206873),
+]
+
+private let bid_multipliers2_binary80_130: [UInt256] = [
+UInt256(3800944728506802656, 12336132188262044242, 6618416223468236554, 17648973764730034400),
+UInt256(2375590455316751660, 7710082617663777651, 8748196158095035750, 15642294621383659404),
+UInt256(2969488069145939575, 9637603272079722064, 6323559179191406784, 10329496239874798447),
+UInt256(3711860086432424469, 7435318071672264676, 7904448973989258480, 12911870299843498058),
+UInt256(2319912554020265293, 6952916804008859374, 14163652645598062358, 8069918937402186287),
+UInt256(2899890692525331616, 13302832023438462122, 8481193770142802140, 864026634897957050),
+UInt256(3624863365656664520, 16628540029298077653, 1378120175823726867, 1080033293622446313),
+UInt256(4531079207070830651, 2338930962913045450, 6334336238207046487, 15185099672310221603),
+UInt256(2831924504419269156, 17602732916316511070, 8570646167306791958, 16408216322834970358),
+UInt256(3539905630524086446, 3556672071686087222, 1489935672278714140, 11286898366688937139),
+UInt256(4424882038155108057, 13669212126462384835, 11085791627203168483, 14108622958361171424),
+UInt256(2765551273846942536, 1625728551397908666, 4622776757788286350, 6512046339762038188),
+UInt256(3456939092308678170, 2032160689247385832, 15001842984090133745, 17363429961557323543),
+UInt256(4321173865385847712, 11763572898414008099, 305559656403115566, 7869229396664490717),
+UInt256(2700733665866154820, 7352233061508755061, 16331875849747804893, 306582354487918794),
+UInt256(3375917082332693525, 9190291326885943827, 6579786756902592404, 4994913961537286397),
+UInt256(4219896352915866906, 16099550177034817688, 3613047427700852601, 6243642451921607996),
+UInt256(2637435220572416816, 14673904879074148959, 2258154642313032875, 15431491578519474757),
+UInt256(3296794025715521020, 18342381098842686198, 16657751358173454806, 14677678454721955543),
+UInt256(4120992532144401276, 4481232299843806132, 11598817160862042700, 9123726031547668620),
+UInt256(2575620332590250797, 12024142224257154640, 16472632762393552495, 14925700806572068696),
+UInt256(3219525415737813497, 1195119725039279589, 2144046879282389003, 14045439989787697966),
+UInt256(4024406769672266871, 6105585674726487390, 7291744617530374158, 12945113968807234553),
+UInt256(2515254231045166794, 10733520074345136474, 18392398441238647561, 3479010212077133692),
+UInt256(3144067788806458493, 4193528056076644785, 13767126014693533643, 8960448783523805019),
+UInt256(3930084736008073116, 9853596088523193886, 3373849463084753342, 6588874960977368369),
+UInt256(2456302960005045697, 15381869592181771986, 15943713969710134550, 17953104905893018943),
+UInt256(3070378700006307122, 5392278934945051271, 10706270425282892380, 13218009095511497870),
+UInt256(3837973375007883902, 15963720705536089897, 8771152013176227571, 16522511369389372338),
+UInt256(2398733359379927439, 5365639422532668281, 17011185054303611992, 8020726596654663759),
+UInt256(2998416699224909299, 2095363259738447448, 7428923262597351278, 10025908245818329699),
+UInt256(3748020874031136623, 16454262129955223022, 9286154078246689098, 3309013270418136316),
+UInt256(2342513046269460389, 17201442858863096245, 1192160280476792782, 6679819312438723102),
+UInt256(2928141307836825487, 7666745518296706594, 6101886369023378881, 17573146177403179685),
+UInt256(3660176634796031859, 4971745879443495338, 16850729998133999410, 8131374666471810894),
+UInt256(4575220793495039824, 1602996330876981269, 11840040460812723455, 940846296234987809),
+UInt256(2859512995934399890, 1001872706798113293, 9705868297221646111, 7505557962787949237),
+UInt256(3574391244917999862, 10475712920352417424, 16744021389954445543, 4770261435057548642),
+UInt256(4467989056147499828, 3871269113585745973, 2483282663733505313, 1351140775394547898),
+UInt256(2792493160092187392, 11642915232845867041, 3857894674047134772, 12373678030690062197),
+UInt256(3490616450115234240, 14553644041057333801, 9434054360986306369, 15467097538362577746),
+UInt256(4363270562644042800, 18192055051321667251, 16404253969660270866, 5498813867671058470),
+UInt256(2727044101652526750, 11370034407076042032, 7946815721823975339, 8048444685721799448),
+UInt256(3408805127065658438, 4989170971990276732, 9933519652279969174, 5448869838724861406),
+UInt256(4261006408832073047, 15459835751842621723, 12416899565349961467, 16034459335260852565),
+UInt256(2663129005520045654, 16579926372542720433, 5454719219130031965, 7715694075324338901),
+UInt256(3328911256900057068, 11501535928823624733, 11430085042339927860, 14256303612582811531),
+UInt256(4161139071125071335, 14376919911029530917, 452548247642746113, 17820379515728514413),
+UInt256(2600711919453169584, 15903103972034538679, 2588685663990410273, 4220208169689239652),
+UInt256(3250889899316461981, 1432135891333621732, 17070915135270176553, 9886946230538937469),
+]
+
+private let bid_multipliers2_binary80_131: [UInt256] = [
+UInt256(4063612374145577476, 6401855882594415070, 2891899845378169075, 16970368806601059741),
+UInt256(2539757733840985922, 13224531963476285226, 15642495458643519384, 8300637494911968386),
+UInt256(3174697167301232403, 7307292917490580725, 10329747286449623422, 10375796868639960482),
+UInt256(3968371459126540504, 4522430128435838002, 17523870126489417182, 3746374048945174795),
+UInt256(2480232161954087815, 2826518830272398751, 15564104847483273642, 16176541835872897959),
+UInt256(3100290202442609768, 17368206593122662151, 14843445040926704149, 10997305257986346641),
+UInt256(3875362753053262211, 3263514167693776073, 13942620282730992282, 18358317590910321205),
+UInt256(2422101720658288881, 18180597419304467710, 1796608649065788320, 16085634512746338657),
+UInt256(3027627150822861102, 8890688718848420925, 11469132848187011209, 1660299067223371705),
+UInt256(3784533938528576378, 1889988861705750349, 501358004951600299, 6687059852456602536),
+UInt256(2365333711580360236, 5792929056993481872, 2619191762308444139, 1873569398571682633),
+UInt256(2956667139475450295, 7241161321241852340, 3273989702885555173, 16177019803496767003),
+UInt256(3695833924344312869, 4439765633124927521, 4092487128606943967, 6386216699088795042),
+UInt256(2309896202715195543, 5080696529916773652, 14087019501447809739, 10908914464571578757),
+UInt256(2887370253393994429, 1739184643968579161, 17608774376809762174, 9024457062287085542),
+UInt256(3609212816742493036, 6785666823388111856, 8175909915730039006, 2057199291004081120),
+UInt256(4511516020928116295, 8482083529235139820, 10219887394662548757, 11794871150609877208),
+UInt256(2819697513080072684, 12218831233413044243, 15610801658518868781, 9677637478344867207),
+UInt256(3524621891350090855, 15273539041766305304, 14901816054721198072, 16708732866358471913),
+UInt256(4405777364187613569, 14480237783780493727, 180525994691945975, 2439172009238538275),
+UInt256(2753610852617258481, 2132619587221726723, 7030357774323548090, 8442011533415168278),
+UInt256(3442013565771573101, 7277460502454546308, 4176261199477047209, 1329142379914184539),
+UInt256(4302516957214466376, 13708511646495570789, 5220326499346309011, 6273113993320118578),
+UInt256(2689073098259041485, 8567819779059731743, 5568547071305137084, 1614853236611380159),
+UInt256(3361341372823801856, 15321460742252052583, 2348997820704033451, 2018566545764225199),
+UInt256(4201676716029752321, 705081854105514112, 16771305331162205525, 16358266237487445211),
+UInt256(2626047947518595200, 11969891204884416080, 10482065831976378453, 12529759407643347209),
+UInt256(3282559934398244000, 14962364006105520100, 13102582289970473067, 1827141204272020299),
+UInt256(4103199917997805001, 256210933922348509, 16378227862463091333, 16118984560622189086),
+UInt256(2564499948748628125, 11689346879769937578, 12542235423253126035, 12380208359602562131),
+UInt256(3205624935935785157, 776625544430258261, 6454422242211631736, 10863574431075814759),
+UInt256(4007031169919731446, 5582467948965210730, 12679713821191927574, 13579468038844768449),
+UInt256(2504394481199832153, 17324100523385420418, 12536507156672342638, 3875481505850592377),
+UInt256(3130493101499790192, 7820067598949611811, 6447261908985652489, 14067723919168016279),
+UInt256(3913116376874737740, 9775084498687014764, 3447391367804677708, 3749596843677856636),
+UInt256(2445697735546711087, 15332799848534160035, 11377991641732699375, 11566870064153436206),
+UInt256(3057122169433388859, 14554313792240312140, 9610803533738486315, 9846901561764407353),
+UInt256(3821402711791736074, 13581206221873002271, 12013504417173107894, 7696940933778121287),
+UInt256(2388376694869835046, 13099939907098014323, 14425969288374274290, 198902065183937901),
+UInt256(2985470868587293808, 7151552847017742096, 13420775592040454958, 9471999618334698184),
+UInt256(3731838585734117260, 8939441058772177620, 16775969490050568698, 2616627486063596922),
+UInt256(2332399116083823287, 14810522698587386821, 1261608894426829628, 6247078197217135980),
+UInt256(2915498895104779109, 13901467354806845622, 6188697136460924939, 7808847746521419975),
+UInt256(3644373618880973887, 3541776138226393315, 16959243457430931982, 5149373664724387065),
+UInt256(4555467023601217358, 18262278228065155356, 16587368303361277073, 15660089117760259639),
+UInt256(2847166889750760849, 6802237874113334194, 1143733152746022363, 2870026670959080419),
+UInt256(3558958612188451061, 13114483361069055646, 10653038477787303761, 17422591393981014235),
+UInt256(4448698265235563827, 2558046146054155846, 4092926060379353894, 7943181187194104082),
+UInt256(2780436415772227391, 17739679905779705067, 16393136843019259896, 352802223568927147),
+UInt256(3475545519715284239, 17562913863797243430, 15879735035346686966, 441002779461158934),
+]
+
+private let bid_multipliers2_binary80_132: [UInt256] = [
+UInt256(4344431899644105299, 17341956311319166384, 10626296757328582899, 9774625511181224475),
+UInt256(2715269937277565812, 8532879685360785038, 6641435473330364312, 3803297935274571345),
+UInt256(3394087421596957265, 10666099606700981297, 17525166378517731198, 4754122419093214181),
+UInt256(4242609276996196581, 17944310526803614526, 8071399917865000285, 15166025060721293535),
+UInt256(2651630798122622863, 13521037088465953031, 432938930238237274, 11784608672164502411),
+UInt256(3314538497653278579, 12289610342155053384, 14376231718079960305, 5507388803350852206),
+UInt256(4143173122066598224, 10750326909266428826, 17970289647599950381, 11495922022615953162),
+UInt256(2589483201291623890, 6718954318291518016, 15843117048177356892, 9490794273348664678),
+UInt256(3236854001614529862, 17622064934719173329, 1357152236512144499, 11863492841685830848),
+UInt256(4046067502018162328, 12804209131544190853, 6308126314067568528, 10217680033679900655),
+UInt256(2528792188761351455, 8002630707215119283, 6248421955505924282, 6386050021049937910),
+UInt256(3160990235951689319, 5391602365591511200, 3198841425955017448, 17205934563167198195),
+UInt256(3951237794939611649, 2127816938562001096, 3998551782443771811, 3060674130249446128),
+UInt256(2469523621837257280, 12859100632669720445, 2499094864027357381, 18053822395901761494),
+UInt256(3086904527296571600, 16073875790837150556, 7735554598461584631, 8732219939595038155),
+UInt256(3858630659120714501, 1645600664836886579, 9669443248076980789, 6303588906066409790),
+UInt256(2411644161950446563, 3334343424736748064, 3737559020834419041, 6245586075505200071),
+UInt256(3014555202438058203, 18002987336203098792, 4671948776043023801, 12418668612808887993),
+UInt256(3768194003047572754, 17892048151826485586, 5839935970053779752, 1688277710728946279),
+UInt256(2355121251904732971, 15794216113318941395, 8261645999711000249, 1055173569205591424),
+UInt256(2943901564880916214, 15131084123221288840, 5715371481211362407, 5930652979934377184),
+UInt256(3679876956101145268, 9690483117171835242, 7144214351514203009, 2801630206490583576),
+UInt256(4599846195126431585, 12113103896464794052, 18153639976247529569, 8113723776540617374),
+UInt256(2874903871954019741, 653160907649414427, 2122652948299930172, 16600292406406355619),
+UInt256(3593629839942524676, 5428137152989155937, 16488374240657076428, 2303621434298392908),
+UInt256(4492037299928155845, 6785171441236444922, 6775409745539181823, 2879526792872991135),
+UInt256(2807523312455097403, 6546575159986472028, 8846317109389376543, 8717233273186701315),
+UInt256(3509404140568871754, 3571532931555702131, 11057896386736720679, 6284855573055988740),
+UInt256(4386755175711089692, 13687788201299403472, 9210684464993512945, 3244383447892598021),
+UInt256(2741721984819431057, 17778239662666902978, 5756677790620945590, 13556954701001343523),
+UInt256(3427152481024288822, 8387741523051465010, 16419219275130957796, 7722821339396903596),
+UInt256(4283940601280361028, 1261304866959555455, 11300652057058921437, 9653526674246129495),
+UInt256(2677462875800225642, 10011687578704497967, 13980436563302907754, 8339297180617524886),
+UInt256(3346828594750282053, 3291237436525846651, 12863859685701246789, 1200749438917130300),
+UInt256(4183535743437852566, 8725732814084696218, 11468138588699170582, 6112622817073800779),
+UInt256(2614709839648657854, 841896990375547232, 11779272636364369517, 17655447315953289199),
+UInt256(3268387299560822317, 10275743274824209848, 14724090795455461897, 8234251089659447786),
+UInt256(4085484124451027896, 17456365111957650214, 18405113494319327371, 14904499880501697637),
+UInt256(2553427577781892435, 10910228194973531384, 6891509915522191703, 7009469416099867071),
+UInt256(3191784472227365544, 9026099225289526326, 8614387394402739629, 4150150751697445935),
+UInt256(3989730590284206930, 11282624031611907908, 1544612206148648728, 9799374458049195323),
+UInt256(2493581618927629331, 11663326038184830346, 10188754665697681263, 6124609036280747077),
+UInt256(3116977023659536664, 9967471529303650029, 3512571295267325771, 3044075276923545942),
+UInt256(3896221279574420830, 12459339411629562536, 9002400137511545117, 17640152151436596139),
+UInt256(2435138299734013019, 3175401113841088681, 5626500085944715698, 13330938103861566539),
+UInt256(3043922874667516273, 17804309447583524563, 11644811125858282527, 7440300592972182366),
+UInt256(3804903593334395342, 8420328754197241992, 9944327888895465255, 4688689722787840053),
+UInt256(2378064745833997089, 651019452945888341, 6215204930559665784, 9847960104383481889),
+UInt256(2972580932292496361, 5425460334609748330, 12380692181626970134, 12309950130479352362),
+UInt256(3715726165365620451, 11393511436689573317, 6252493190178936860, 6164065626244414644),
+]
+
+private let bid_multipliers2_binary80_133: [UInt256] = [
+UInt256(2322328853353512782, 4815101638717289371, 6213651253075529489, 13075913053257534961),
+UInt256(2902911066691890977, 15242249085251387522, 3155378047917023958, 2509833261289754989),
+UInt256(3628638833364863722, 5217753301282070690, 13167594596751055755, 12360663613466969544),
+UInt256(4535798541706079652, 15745563663457364171, 7236121209084043886, 10839143498406324026),
+UInt256(2834874088566299783, 617605252806076799, 2216732746463833477, 2162778668076564612),
+UInt256(3543592610707874728, 14607064621289759710, 16605973988361955558, 7315159353523093669),
+UInt256(4429490763384843410, 18258830776612199638, 11534095448597668639, 18367321228758642894),
+UInt256(2768431727115527131, 16023455253810012678, 2597123636946154995, 18397104795615233665),
+UInt256(3460539658894408914, 15417633048835127943, 12469776583037469552, 18384694976091654177),
+UInt256(4325674573618011143, 10048669274189134121, 10975534710369449037, 4534124646405016105),
+UInt256(2703546608511256964, 13197947324009290681, 18388924240049375408, 5139670913216829018),
+UInt256(3379433260639071205, 16497434155011613352, 9151097244779555548, 6424588641521036273),
+UInt256(4224291575798839007, 6786734638482352978, 11438871555974444435, 8030735801901295341),
+UInt256(2640182234874274379, 11159238176692552467, 11760980740911415676, 2713366866974615636),
+UInt256(3300227793592842974, 9337361702438302680, 10089539907711881691, 3391708583718269545),
+UInt256(4125284741991053718, 2448330091193102542, 12611924884639852113, 18074693784930000643),
+UInt256(2578302963744408573, 15365264362277852801, 3270767034472519667, 4379154587940168546),
+UInt256(3222878704680510717, 5371522397565152289, 8700144811518037488, 862257216497822778),
+UInt256(4028598380850638396, 11326089015383828265, 15486867032824934764, 1077821520622278473),
+UInt256(2517873988031648997, 16302177671469668474, 2761762867874502371, 9897010487243699854),
+UInt256(3147342485039561247, 6542664034054921880, 12675575621697903772, 7759577090627236913),
+UInt256(3934178106299451559, 3566644024141264446, 15844469527122379715, 9699471363284046141),
+UInt256(2458861316437157224, 9146681542729372135, 5291107436024099418, 3756326592838834886),
+UInt256(3073576645546446530, 11433351928411715169, 2002198276602736368, 13918780277903319416),
+UInt256(3841970806933058163, 5068317873659868153, 7114433864180808364, 17398475347379149270),
+UInt256(2401231754333161352, 861855661823723643, 15975736211181474988, 1650675055257192486),
+UInt256(3001539692916451690, 1077319577279654554, 15357984245549455831, 2063343819071490607),
+UInt256(3751924616145564612, 10570021508454344001, 9974108270082043980, 16414237829121526971),
+UInt256(2344952885090977882, 15829635479638740808, 17763032714869747248, 1035526606346178549),
+UInt256(2931191106363722353, 10563672312693650203, 3757046819877632444, 1294408257932723186),
+UInt256(3663988882954652941, 17816276409294450658, 84622506419652651, 1618010322415903982),
+UInt256(4579986103693316177, 8435287456335899610, 9329150169879341621, 15857570958302043690),
+UInt256(2862491314808322610, 16801269706278407016, 10442404874601976417, 12216824858152471258),
+UInt256(3578114143510403263, 11778215095993232962, 13053006093252470522, 1435973017408425361),
+UInt256(4472642679388004079, 10111082851564153299, 7092885579710812344, 11018338308615307509),
+UInt256(2795401674617502549, 13236955809868677668, 2127210478105563763, 6886461442884567193),
+UInt256(3494252093271878187, 2711136707053683373, 2659013097631954704, 3996390785178321087),
+UInt256(4367815116589847733, 17223978939099267928, 7935452390467331284, 4995488481472901359),
+UInt256(2729884447868654833, 13070829846150736407, 4959657744042082052, 12345552337775339158),
+UInt256(3412355559835818542, 2503479252406256797, 1587886161625214661, 15431940422219173947),
+UInt256(4265444449794773177, 12352721102362596804, 6596543720458906231, 5454867472491803722),
+UInt256(2665902781121733236, 802921661335541146, 13346211862141592202, 10326821197948459182),
+UInt256(3332378476402166545, 1003652076669426433, 7459392790822214445, 3685154460580798170),
+UInt256(4165473095502708181, 5866251114264170945, 13935927006955155960, 9218129094153385616),
+UInt256(2603420684689192613, 5972249955628800793, 1792425351705890619, 5761330683845866010),
+UInt256(3254275855861490766, 12076998462963388895, 6852217708059751178, 2589977336379944609),
+UInt256(4067844819826863458, 5872876041849460311, 3953586116647301068, 12460843707329706569),
+UInt256(2542403012391789661, 8282233544583300598, 9388520350545645023, 17011399353935842414),
+UInt256(3178003765489737076, 14964477949156513652, 2512278401327280471, 16652563173992415113),
+UInt256(3972504706862171346, 258853362736090449, 3140348001659100589, 16204017949063130987),
+]
+
+private let bid_multipliers2_binary80_134: [UInt256] = [
+UInt256(2482815441788857091, 4773469370137444434, 13491932547105407628, 12433354227378150819),
+UInt256(3103519302236071364, 1355150694244417639, 7641543647026983727, 15541692784222688524),
+UInt256(3879399127795089205, 1693938367805522049, 4940243540356341755, 14815429961850972750),
+UInt256(2424624454871930753, 3364554489092145232, 14616867258791183357, 6953800716943164017),
+UInt256(3030780568589913441, 8817379129792569444, 18271084073488979196, 13303936914606342925),
+UInt256(3788475710737391801, 15633409930668099710, 4392111018151672379, 16629921143257928657),
+UInt256(2367797319210869876, 2853352179026480462, 16580127441626958949, 8087857705322511459),
+UInt256(2959746649013587345, 3566690223783100578, 11501787265178922878, 14721508150080527227),
+UInt256(3699683311266984181, 9070048798156263627, 5153862044618877790, 9178513150745883226),
+UInt256(2312302069541865113, 7974623508061358719, 915320768673104667, 1124884700788789112),
+UInt256(2890377586927331391, 14579965403504086302, 14979209016123544545, 15241163931268150102),
+UInt256(3612971983659164239, 13613270735952719974, 9500639233299654874, 5216396858803023916),
+UInt256(4516214979573955299, 12404902401513512064, 2652427004769792784, 15743868110358555702),
+UInt256(2822634362233722062, 5447220991732251088, 1657766877981120490, 9839917568974097314),
+UInt256(3528292952792152577, 16032398276520089668, 2072208597476400613, 3076524924362845835),
+UInt256(4410366190990190722, 6205439790367948373, 2590260746845500766, 8457342173880945197),
+UInt256(2756478869368869201, 8490085887407355637, 3924755975992131931, 674152840248202844),
+UInt256(3445598586711086501, 15224293377686582450, 9517630988417552817, 14677749105592417267),
+UInt256(4306998233388858127, 5195308666826064351, 2673666698667165214, 4512128326708357872),
+UInt256(2691873895868036329, 10164596944407372075, 8588570714308060114, 16655138259474887382),
+UInt256(3364842369835045411, 17317432198936602998, 6124027374457687239, 11595550787488833420),
+UInt256(4206052962293806764, 17035104230243365843, 16878406254926884857, 9882752465933653870),
+UInt256(2628783101433629228, 1423568107047327844, 8243160900115609083, 17705935337277003429),
+UInt256(3285978876792036535, 1779460133809159805, 10303951125144511354, 17520733153168866382),
+UInt256(4107473595990045668, 16059383222543613468, 17491624924858027097, 12677544404606307170),
+UInt256(2567170997493778543, 813742477234982610, 1708893541181491128, 1005936225237860125),
+UInt256(3208963746867223178, 14852236151825891974, 11359488963331639718, 1257420281547325157),
+UInt256(4011204683584028973, 9341923152927589160, 4975989167309773839, 10795147388788932254),
+UInt256(2507002927240018108, 8144544979793437177, 3109993229568608649, 13664496145634164515),
+UInt256(3133753659050022635, 10180681224741796471, 8499177555388148716, 3245562126760541931),
+UInt256(3917192073812528294, 8114165512499857685, 6012285925807797991, 4056952658450677414),
+UInt256(2448245046132830184, 459667426885023149, 6063521712843567696, 9453124439172755240),
+UInt256(3060306307666037730, 574584283606278936, 12191088159481847524, 11816405548965944050),
+UInt256(3825382884582547162, 9941602391362624478, 15238860199352309405, 14770506936207430062),
+UInt256(2390864302864091976, 10825187513029028203, 4912601606167805474, 11537409844343337741),
+UInt256(2988580378580114970, 13531484391286285254, 1529065989282368939, 5198390268574396368),
+UInt256(3735725473225143713, 7690983452253080759, 11134704523457736982, 1886301817290607556),
+UInt256(2334828420765714820, 16336079703726645234, 13876719354802167469, 15013996691088793435),
+UInt256(2918535525957143526, 1973355555948754927, 8122527156647933529, 4932437808578828081),
+UInt256(3648169407446429407, 11690066481790719467, 5541472927382529007, 10777233279150923005),
+UInt256(4560211759308036759, 10000897083811011430, 2315155140800773355, 8859855580511265853),
+UInt256(2850132349567522974, 13168089705022963999, 15282030018282647059, 3231566728605847206),
+UInt256(3562665436959403718, 7236740094423929191, 14490851504425920919, 17874516466039472719),
+UInt256(4453331796199254647, 18269297154884687297, 13501878362105013245, 17731459564121952995),
+UInt256(2783332372624534154, 18335839749444011417, 1521144948674551422, 13388005236789914574),
+UInt256(3479165465780667693, 13696427649950238463, 6513117204270577182, 7511634509132617410),
+UInt256(4348956832225834617, 3285476507155634367, 3529710486910833574, 166171099560995954),
+UInt256(2718098020141146635, 13582637863040741239, 9123598081960352839, 13938914992507786183),
+UInt256(3397622525176433294, 12366611310373538645, 6792811584023053145, 12811957722207344825),
+UInt256(4247028156470541618, 6234892101112147498, 13102700498456204336, 2179889097477017319),
+]
+
+private let bid_multipliers2_binary80_135: [UInt256] = [
+UInt256(2654392597794088511, 8508493581622480090, 12800873829962515614, 1362430685923135825),
+UInt256(3317990747242610639, 6023930958600712209, 6777720250598368709, 10926410394258695589),
+UInt256(4147488434053263299, 2918227679823502357, 13083836331675348790, 18269699011250757390),
+UInt256(2592180271283289561, 17964793364385546637, 10483240716510786946, 6806875863604335465),
+UInt256(3240225339104111952, 8620933650199769584, 17715736914065871586, 17731966866360195139),
+UInt256(4050281673880139940, 10776167062749711981, 3697927068872787867, 12941586546095468115),
+UInt256(2531426046175087462, 15958476451073345796, 4617047427259186369, 5782648582095973620),
+UInt256(3164282557718859328, 10724723526986906437, 5771309284073982961, 11839996746047354929),
+UInt256(3955353197148574160, 13405904408733633046, 11825822623519866606, 964937877277029950),
+UInt256(2472095748217858850, 8378690255458520654, 2779453121272528724, 14438144228580307431),
+UInt256(3090119685272323563, 1249990782468375009, 12697688438445436713, 18047680285725384288),
+UInt256(3862649606590404453, 15397546533367632474, 2037052492774632180, 8724542301874566648),
+UInt256(2414156004119002783, 11929309592568464248, 5884843826411533016, 14676210975526379963),
+UInt256(3017695005148753479, 10299950972283192406, 7356054783014416270, 18345263719407974954),
+UInt256(3772118756435941849, 8263252696926602603, 18418440515622796146, 13708207612405192884),
+UInt256(2357574222772463655, 16693747981647596387, 9205682313050553639, 13179315776180633457),
+UInt256(2946967778465579569, 16255498958632107580, 6895416872885804145, 11862458701798403917),
+UInt256(3683709723081974462, 6484315643007970763, 8619271091107255182, 993015321965841184),
+UInt256(4604637153852468077, 17328766590614739262, 6162402845456681073, 10464641189312077288),
+UInt256(2877898221157792548, 13136322128347905990, 17686559833692589382, 18069615789388518065),
+UInt256(3597372776447240685, 16420402660434882488, 12884827755260960920, 13363647699880871773),
+UInt256(4496715970559050857, 6690445270261439398, 16106034694076201150, 16704559624851089717),
+UInt256(2810447481599406785, 15710743339981869384, 5454585665370237815, 5828663747104543169),
+UInt256(3513059351999258482, 5803371119695173018, 6818232081712797269, 2674143665453291057),
+UInt256(4391324189999073102, 16477585936473742080, 17746162138995772394, 7954365600244001725),
+UInt256(2744577618749420689, 5686805191868700896, 11091351336872357746, 9583164518579888983),
+UInt256(3430722023436775861, 11720192508263264024, 13864189171090447183, 2755583611370085420),
+UInt256(4288402529295969827, 815182580046916318, 17330236463863058978, 17279537569494770487),
+UInt256(2680251580809981141, 16650390177025180363, 6219711771487023957, 15411396999361619459),
+UInt256(3350314476012476427, 6977929665999311742, 3162953695931392043, 5429188193919860611),
+UInt256(4187893095015595534, 4110726064071751773, 13177064156769015862, 2174799223972437860),
+UInt256(2617433184384747208, 16404261845327008570, 10541508107194328865, 15194307570264937374),
+UInt256(3271791480480934011, 2058583232949209097, 3953513097138135274, 5157826407549008006),
+UInt256(4089739350601167513, 16408287096468675083, 9553577389850056996, 15670655046291035815),
+UInt256(2556087094125729696, 3337650407651840071, 3665142859442591671, 570787367077121577),
+UInt256(3195108867657162120, 4172063009564800088, 18416486629585403300, 14548542264128565683),
+UInt256(3993886084571452650, 5215078761956000111, 4573864213272202509, 18185677830160707103),
+UInt256(2496178802857157906, 7871110244649887973, 9776194160936208424, 13671891653064135892),
+UInt256(3120223503571447383, 615515768957584158, 16831928719597648434, 17089864566330169865),
+UInt256(3900279379464309228, 14604452766479143910, 11816538862642284735, 12138958671057936523),
+UInt256(2437674612165193267, 18351155015904240752, 2773650770724040055, 14504378197052292183),
+UInt256(3047093265206491584, 18327257751452913036, 3467063463405050069, 13518786727887977324),
+UInt256(3808866581508114481, 4462328115606589679, 4333829329256312587, 3063425354577807943),
+UInt256(2380541613442571550, 14318170118322588309, 9626172358426277222, 18055541911106987629),
+UInt256(2975677016803214438, 8674340611048459578, 16644401466460234432, 13346055352028958728),
+UInt256(3719596271004018048, 1619553726955798665, 11582129796220517232, 16682569190036198410),
+UInt256(2324747669377511280, 1012221079347374166, 321302094996741414, 10426605743772624006),
+UInt256(2905934586721889100, 1265276349184217707, 9624999655600702576, 3809885142861004200),
+UInt256(3632418233402361375, 1581595436480272134, 7419563551073490316, 4762356428576255250),
+UInt256(4540522791752951718, 15812052350882503880, 51082401987087087, 5952945535720319062),
+]
+
+private let bid_multipliers2_binary80_136: [UInt256] = [
+UInt256(2837826744845594824, 5270846700874177021, 31926501241929429, 10638119987466281270),
+UInt256(3547283431056993530, 6588558376092721276, 4651594144979799690, 17909336002760239491),
+UInt256(4434104288821241912, 17459070006970677403, 5814492681224749613, 13163297966595523556),
+UInt256(2771315180513276195, 10911918754356673377, 1328214916551774556, 10532904238335896175),
+UInt256(3464143975641595244, 9028212424518453817, 6271954664117106099, 13166130297919870218),
+UInt256(4330179969551994055, 11285265530648067271, 12451629348573770528, 11845976853972449868),
+UInt256(2706362480969996284, 13970819984296123900, 14699797370499688436, 7403735533732781168),
+UInt256(3382953101212495355, 17463524980370154875, 18374746713124610545, 9254669417165976460),
+UInt256(4228691376515619194, 17217720207035305690, 18356747372978375277, 16180022789884858479),
+UInt256(2642932110322261996, 15372761147824453960, 16084653126538872452, 12418357252891730501),
+UInt256(3303665137902827496, 769207361071015835, 1659072334464038949, 15522946566114663127),
+UInt256(4129581422378534370, 961509201338769793, 15908898473362212399, 5568625152361165196),
+UInt256(2580988388986583981, 5212629269264119025, 3025532518210300893, 10397919747866810104),
+UInt256(3226235486233229976, 11127472605007536685, 8393601666190264020, 17609085703260900534),
+UInt256(4032794357791537470, 13909340756259420856, 15103688101165217930, 3564613055366574051),
+UInt256(2520496473619710919, 4081651954234750131, 9439805063228261206, 6839569178031496686),
+UInt256(3150620592024638649, 490378924366049760, 7188070310607938603, 17772833509394146665),
+UInt256(3938275740030798311, 5224659673884950104, 8985087888259923254, 17604355868315295428),
+UInt256(2461422337519248944, 10182941323819175671, 5615679930162452034, 6391036399269671738),
+UInt256(3076777921899061180, 12728676654773969589, 2407913894275677138, 17212167535941865481),
+UInt256(3845972402373826475, 15910845818467461986, 7621578386271984327, 12291837383072556043),
+UInt256(2403732751483641547, 7638435627328469789, 9375172509847378108, 14599927392061429383),
+UInt256(3004665939354551934, 4936358515733199332, 16330651655736610539, 18249909240076786729),
+UInt256(3755832424193189917, 15393820181521274974, 1966570495961211558, 18200700531668595507),
+UInt256(2347395265120743698, 11926980622664490810, 15064164615257920936, 6763751813865484288),
+UInt256(2934244081400929623, 5685353741475837705, 9606833732217625362, 8454689767331855360),
+UInt256(3667805101751162029, 2495006158417409227, 16620228183699419607, 1344990172310043392),
+UInt256(4584756377188952536, 7730443716449149438, 16163599211196886604, 15516295770669717951),
+UInt256(2865472735743095335, 4831527322780718399, 5490563488570666224, 474312819813797912),
+UInt256(3581840919678869169, 1427723135048510095, 2251518342285944876, 592891024767247390),
+UInt256(4477301149598586461, 6396339937238025522, 16649455983139594807, 741113780959059237),
+UInt256(2798313218499116538, 6303555469987459903, 15017596007889634658, 7380725140740493879),
+UInt256(3497891523123895672, 17102816374339100687, 14160308991434655419, 2534389070841541),
+UInt256(4372364403904869591, 2931776394214324243, 13088700220865931369, 13838226041620715638),
+UInt256(2732727752440543494, 8749889274025034508, 5874594628827513154, 1731362248371865418),
+UInt256(3415909690550679368, 1713989555676517327, 7343243286034391442, 11387574847319607580),
+UInt256(4269887113188349210, 2142486944595646659, 4567368089115601399, 5011096522294733667),
+UInt256(2668679445742718256, 5950740358799667066, 548762046483556922, 10049464354075290398),
+UInt256(3335849307178397820, 7438425448499583832, 9909324594959221961, 3338458405739337190),
+UInt256(4169811633972997275, 9298031810624479790, 12386655743699027451, 8784759025601559391),
+UInt256(2606132271233123297, 3505426872426605917, 3129973821384504253, 3184631381787280668),
+UInt256(3257665339041404121, 8993469608960645300, 8524153295158018220, 8592475245661488738),
+UInt256(4072081673801755151, 15853523029628194529, 10655191618947522775, 10740594057076860923),
+UInt256(2545051046126096969, 16825980921158703436, 18188709807910671494, 13630400313314119933),
+UInt256(3181313807657621212, 7197418096166215584, 4289143186178787752, 7814628354787874108),
+UInt256(3976642259572026515, 8996772620207769480, 5361428982723484690, 9768285443484842635),
+UInt256(2485401412232516572, 3317139878416161973, 3350893114202177931, 10716864420605414551),
+UInt256(3106751765290645715, 4146424848020202466, 8800302411180110318, 8784394507329380285),
+UInt256(3883439706613307144, 571345041597865179, 1777005977120362090, 1757121097306949548),
+UInt256(2427149816633316965, 357090650998665736, 17251529800196083970, 5709886704244231371),
+]
+
+private let bid_multipliers2_binary80_137: [UInt256] = [
+UInt256(3033937270791646206, 5058049332175720075, 3117668176535553346, 16360730417160065022),
+UInt256(3792421588489557757, 15545933702074425901, 17732143275951605395, 11227540984595305470),
+UInt256(2370263492805973598, 12022051573010210140, 13388432556683447324, 4711370106158371967),
+UInt256(2962829366007466998, 5804192429407986867, 16735540695854309155, 5889212632697964958),
+UInt256(3703536707509333747, 16478612573614759392, 16307739851390498540, 2749829772445068294),
+UInt256(2314710442193333592, 7993289849295530668, 10192337407119061587, 10942015644632943492),
+UInt256(2893388052741666990, 9991612311619413335, 12740421758898826984, 9065833537363791461),
+UInt256(3616735065927083738, 3266143352669490861, 11313841180196145826, 11332291921704739326),
+UInt256(4520918832408854672, 13306051227691639385, 307243419963018571, 4941992865276148349),
+UInt256(2825574270255534170, 8316282017307274615, 11721242183545356367, 782902531583898766),
+UInt256(3531967837819417713, 1171980484779317461, 10039866711004307554, 14813686219762037170),
+UInt256(4414959797274272141, 6076661624401534730, 17161519407182772347, 9293735737847770654),
+UInt256(2759349873296420088, 6103756524464653158, 15337635647916620621, 3502741826941162707),
+UInt256(3449187341620525110, 7629695655580816448, 9948672523040999968, 8990113302103841287),
+UInt256(4311484177025656388, 313747532621244752, 12435840653801249960, 11237641627629801609),
+UInt256(2694677610641035242, 9419464244743053778, 7772400408625781225, 7023526017268626006),
+UInt256(3368347013301294053, 2550958269074041415, 492128473927450723, 13391093540013170411),
+UInt256(4210433766626617566, 7800383854769939672, 14450218647691477116, 12127180906589075110),
+UInt256(2631521104141635979, 263553890803824391, 9031386654807173197, 16802860103472947752),
+UInt256(3289401380177044973, 14164500418786944201, 6677547300081578593, 7168517074059020978),
+UInt256(4111751725221306217, 3870567468201516539, 12958620143529361145, 13572332361001164126),
+UInt256(2569844828263316385, 13948319713694417597, 5793294580492156764, 1565178697984645723),
+UInt256(3212306035329145482, 3600341586835858284, 11853304244042583859, 1956473372480807154),
+UInt256(4015382544161431852, 13723799020399598663, 14816630305053229823, 16280649770883172654),
+UInt256(2509614090100894907, 17800746424604524972, 16177922968299350495, 17092935134443064765),
+UInt256(3137017612626118634, 17639247012328268312, 1775659636664636503, 16754482899626443052),
+UInt256(3921272015782648293, 12825686728555559582, 2219574545830795629, 16331417606105665911),
+UInt256(2450795009864155183, 10321897214560918690, 15222292146426410980, 12512979013029735146),
+UInt256(3063493762330193979, 8290685499773760459, 9804493146178237917, 15641223766287168933),
+UInt256(3829367202912742474, 5751670856289812670, 7643930414295409493, 5716471652576797454),
+UInt256(2393354501820464046, 8206480303608520823, 165770490507243029, 5878637792074192361),
+UInt256(2991693127275580058, 1034728342655875220, 14042271168416217498, 11959983258520128355),
+UInt256(3739616409094475072, 10516782465174619833, 17552838960520271873, 5726607036295384636),
+UInt256(2337260255684046920, 6572989040734137396, 4052995322684088064, 15108344443753085158),
+UInt256(2921575319605058650, 8216236300917671745, 5066244153355110081, 438686480981804831),
+UInt256(3651969149506323313, 1046923339292313873, 10944491210121275505, 5160044119654643942),
+UInt256(4564961436882904141, 5920340192542780245, 18292300031078982285, 11061741167995692832),
+UInt256(2853100898051815088, 6006055629552931605, 13738530528638057880, 9219431239211001972),
+UInt256(3566376122564768860, 7507569536941164507, 3338105105515408638, 11524289049013752465),
+UInt256(4457970153205961075, 9384461921176455633, 18007689437176424510, 5181989274412414773),
+UInt256(2786231345753725672, 3559445691521590819, 4337276870594183462, 17073801351789922945),
+UInt256(3482789182192157090, 4449307114401988524, 809910069815341424, 12118879652882627874),
+UInt256(4353486477740196362, 14785005929857261463, 1012387587269176780, 15148599566103284842),
+UInt256(2720929048587622726, 13852314724588176318, 7550271269684317344, 244502691959777218),
+UInt256(3401161310734528408, 8092021368880444590, 214467050250620872, 305628364949721523),
+UInt256(4251451638418160510, 10115026711100555737, 9491455849668051898, 382035456187151903),
+UInt256(2657157274011350319, 1710205676010459431, 17461374952111002196, 4850458178544357844),
+UInt256(3321446592514187898, 15972815150295238001, 17215032671711364841, 6063072723180447305),
+UInt256(4151808240642734873, 10742646901014271694, 7683732784357042339, 12190526922402947035),
+UInt256(2594880150401709295, 18243369359202389569, 190646971795763558, 5313236317288147945),
+]
+
+private let bid_multipliers2_binary80_138: [UInt256] = [
+UInt256(3243600188002136619, 18192525680575599057, 4849994733172092351, 15864917433464960739),
+UInt256(4054500235002670774, 18128971082292110917, 10674179434892503343, 15219460773403813020),
+UInt256(2534062646876669234, 6718920908005181419, 8977205156021508541, 16429692011018464993),
+UInt256(3167578308595836542, 17622023171861252582, 6609820426599497773, 6702056958490917530),
+UInt256(3959472885744795678, 12804156927971789919, 17485647570104148024, 12989257216541034816),
+UInt256(2474670553590497299, 3390912061554980795, 17846058758956174371, 8118285760338146760),
+UInt256(3093338191988121623, 18073698132225889706, 17695887430267830060, 5536171181995295546),
+UInt256(3866672739985152029, 17980436646854974229, 12896487250980011767, 6920213977494119432),
+UInt256(2416670462490720018, 13543615913498052845, 10366147541076201306, 11242662763574906501),
+UInt256(3020838078113400023, 7706147855017790248, 17569370444772639537, 4829956417613857319),
+UInt256(3776047597641750029, 5020998800344849907, 3514968982256247805, 10649131540444709552),
+UInt256(2360029748526093768, 5443967259429225143, 18337756678406012542, 8961550221991637422),
+UInt256(2950037185657617210, 6804959074286531429, 18310509829580127774, 1978565740634770970),
+UInt256(3687546482072021512, 17729570879712940095, 9053079231692996005, 11696579212648239520),
+UInt256(4609433102590026891, 3715219525931623503, 6704663021188857103, 785665960528135688),
+UInt256(2880895689118766807, 16169194493570737, 11107943415884117545, 7408570252971166661),
+UInt256(3601119611398458508, 13855269548399127134, 49871214572983219, 13872398834641346230),
+UInt256(4501399514248073135, 17319086935498908917, 9285711055071004832, 12728812524874294884),
+UInt256(2813374696405045709, 17741958362327899929, 8109412418633071972, 7955507828046434303),
+UInt256(3516718370506307137, 8342389897627711199, 14748451541718727869, 9944384785058042878),
+UInt256(4395897963132883921, 15039673390462026903, 13823878408721021932, 17042166999749941502),
+UInt256(2747436226958052451, 2482266841397684958, 15557453033091720564, 1427982337988937631),
+UInt256(3434295283697565563, 16937891607029269910, 10223444254509874897, 1784977922486172038),
+UInt256(4292869104621956954, 16560678490359199484, 3555933281282567813, 6842908421535102952),
+UInt256(2683043190388723096, 14962110074901887581, 11445830337656380691, 6582660772673133297),
+UInt256(3353803987985903871, 255893519917807861, 472229866788312152, 3616639947414028717),
+UInt256(4192254984982379838, 14154924955179423538, 5201973351912778094, 4520799934267535896),
+UInt256(2620159365613987399, 4235142078559751807, 7862919363372874212, 16660558014199373647),
+UInt256(3275199207017484249, 682241579772301855, 5216963185788704862, 2378953444039665443),
+UInt256(4093999008771855311, 5464487993142765223, 1909517963808493173, 12197063841904357612),
+UInt256(2558749380482409569, 10332834023355310120, 8110977755021390089, 9929007910403917459),
+UInt256(3198436725603011961, 17527728547621525554, 10138722193776737611, 17022945906432284728),
+UInt256(3998045907003764952, 8074602629244743231, 3450030705366146206, 16666996364612968006),
+UInt256(2498778691877353095, 5046626643277964519, 9073798218494923235, 5805186709455717100),
+UInt256(3123473364846691369, 1696597285670067745, 6730561754691266140, 2644797368392258471),
+UInt256(3904341706058364211, 6732432625514972585, 13024888211791470579, 3305996710490323089),
+UInt256(2440213566286477632, 1901927381733163914, 1223026104728587255, 18207149008552309595),
+UInt256(3050266957858097040, 2377409227166454892, 10752154667765509877, 18147250242262999089),
+UInt256(3812833697322621300, 2971761533958068615, 13440193334706887347, 8849004747546585149),
+UInt256(2383021060826638312, 11080722995578568692, 15317649861832886448, 3224784958002921766),
+UInt256(2978776326033297890, 13850903744473210866, 700318253581556444, 4030981197503652208),
+UInt256(3723470407541622363, 8090257643736737774, 10098769853831721363, 5038726496879565260),
+UInt256(2327169004713513977, 2750568018121767157, 1700045140217437948, 843361051336034336),
+UInt256(2908961255891892471, 8049896041079596850, 6736742443699185339, 1054201314170042919),
+UInt256(3636201569864865589, 5450684032922108158, 17644300091478757481, 15152809697994717361),
+UInt256(4545251962331081986, 11425041059580023102, 12832003077493671044, 5105954067211232989),
+UInt256(2840782476456926241, 11752336680664902343, 3408315905006156498, 12414593328861796426),
+UInt256(3550978095571157802, 855362795548964216, 18095452936539859335, 6294869624222469725),
+UInt256(4438722619463947252, 10292575531290981079, 4172572096965272553, 3256901011850699252),
+UInt256(2774201637164967032, 15656231743911638982, 9525386588244377201, 13564778178475156793),
+]
+
+private let bid_multipliers2_binary80_139: [UInt256] = [
+UInt256(3467752046456208791, 1123545606179997112, 2683361198450695694, 3120914667811782279),
+UInt256(4334690058070260988, 15239490063007160102, 3354201498063369617, 13124515371619503656),
+UInt256(2709181286293913118, 301309252524699255, 15931433991571769723, 1285293079621107929),
+UInt256(3386476607867391397, 9600008602510649877, 15302606471037324249, 15441674404808548624),
+UInt256(4233095759834239246, 16611696771565700251, 5293200033514491600, 5467034950728522067),
+UInt256(2645684849896399529, 5770624463801174753, 1002407011732863298, 3416896844205326292),
+UInt256(3307106062370499411, 11824966598178856345, 5864694783093467026, 13494493092111433673),
+UInt256(4133882577963124264, 10169522229296182527, 11942554497294221687, 7644744328284516283),
+UInt256(2583676611226952665, 6355951393310114079, 14381625588449970410, 11695494232818904533),
+UInt256(3229595764033690831, 12556625260065030503, 13365345967135075109, 5395995754168854858),
+UInt256(4036994705042113539, 11084095556653900225, 12094996440491455982, 11356680711138456477),
+UInt256(2523121690651320962, 4621716713694993689, 641843747666078133, 2486239426034147394),
+UInt256(3153902113314151202, 15000517928973517919, 5413990703009985570, 7719485300970072147),
+UInt256(3942377641642689003, 9527275374362121591, 2155802360335094059, 425984589357814375),
+UInt256(2463986026026680627, 3648704099762632042, 8264905502850515642, 16407141432844491649),
+UInt256(3079982532533350783, 18395938179985453765, 1107759841708368745, 11285554754200838753),
+UInt256(3849978165666688479, 18383236706554429302, 5996385820562848836, 271885387468884729),
+UInt256(2406236353541680299, 18407051969237600169, 17582799193133944234, 9393300404022828764),
+UInt256(3007795441927100374, 18397128943119612308, 8143440936135266581, 2518253468173760147),
+UInt256(3759744302408875468, 13773039142044739577, 10179301170169083226, 7759502853644588087),
+UInt256(2349840189005547167, 17831521500632738043, 17891278277424146776, 9461375301955255459),
+UInt256(2937300236256933959, 17677715857363534650, 17752411828352795566, 11826719127444069323),
+UInt256(3671625295321167449, 17485458803277030409, 12967142748586218650, 5560026872450310846),
+UInt256(4589531619151459312, 8021765448814124300, 2373870380450609600, 16173405627417664365),
+UInt256(2868457261969662070, 5013603405508827687, 10707041024636406808, 10108378517136040228),
+UInt256(3585571577462077587, 15490376293740810417, 8772115262368120606, 12635473146420050285),
+UInt256(4481964471827596984, 14751284348748625117, 15576830096387538662, 6570969396170287049),
+UInt256(2801227794892248115, 9219552717967890698, 12041361819455905615, 17941913927888593118),
+UInt256(3501534743615310144, 6912754879032475469, 5828330237465106211, 17815706391433353493),
+UInt256(4376918429519137680, 8640943598790594336, 11897098815258770668, 17657946970864303962),
+UInt256(2735574018449461050, 5400589749244121460, 7435686759536731668, 1812844819935414168),
+UInt256(3419467523061826312, 15974109223409927633, 9294608449420914585, 2266056024919267710),
+UInt256(4274334403827282891, 1520892455552857925, 16229946580203531135, 7444256049576472542),
+UInt256(2671459002392051806, 17091458849216393867, 12449559621840900911, 11570189058626377195),
+UInt256(3339323752990064758, 12140951524665716526, 10950263508873738235, 9851050304855583589),
+UInt256(4174154691237580948, 5952817368977369850, 4464457349237396986, 7702126862642091583),
+UInt256(2608846682023488092, 12943882892465631964, 7401971861700761020, 9425515307578695143),
+UInt256(3261058352529360115, 16179853615582039955, 9252464827125951275, 11781894134473368929),
+UInt256(4076322940661700144, 15613131001050162040, 6953895015480051190, 10115681649664323257),
+UInt256(2547701837913562590, 9758206875656351275, 4346184384675031994, 1710615012612814132),
+UInt256(3184627297391953238, 2974386557715663286, 821044462416402088, 11361640802620793473),
+UInt256(3980784121739941547, 12941355233999354915, 10249677614875278418, 14202051003275991841),
+UInt256(2487990076087463467, 5782504012035902870, 4100205500083355059, 13487967895474882805),
+UInt256(3109987595109329334, 2616443996617490683, 14348628911958969632, 12248273850916215602),
+UInt256(3887484493886661667, 12493927032626639162, 13324100121521324136, 15310342313645269502),
+UInt256(2429677808679163542, 5502861386177955524, 12939248594378215489, 9568963946028293439),
+UInt256(3037097260848954427, 16101948769577220213, 16174060742972769361, 16572890950962754703),
+UInt256(3796371576061193034, 15515749943544137363, 6382517873433797990, 6881055633421279666),
+UInt256(2372732235038245646, 14309029733142473756, 1683230661682429791, 18135717826170463503),
+UInt256(2965915293797807058, 8662915129573316387, 2104038327103037239, 18057961264285691475),
+]
+
+private let bid_multipliers2_binary80_140: [UInt256] = [
+UInt256(3707394117247258823, 1605271875111869675, 16465105964160960261, 17960765561929726440),
+UInt256(2317121323279536764, 7920823949586000403, 7984848218386906211, 13531321485419772977),
+UInt256(2896401654099420955, 9901029936982500504, 5369374254556244860, 12302465838347328317),
+UInt256(3620502067624276194, 7764601402800737726, 6711717818195306075, 15378082297934160396),
+UInt256(4525627584530345243, 482379716646146349, 17613019309598908402, 14610916853990312591),
+UInt256(2828517240331465776, 16442388387399699132, 13313980077713011703, 13743509052171333274),
+UInt256(3535646550414332221, 2106241410540072299, 16642475097141264629, 12567700296786778688),
+UInt256(4419558188017915276, 7244487781602478278, 16191407852999192883, 1874567315701309648),
+UInt256(2762223867511197047, 13751176900356324732, 5507943889697107647, 17312505636809176194),
+UInt256(3452779834388996309, 12577285107018018011, 6884929862121384559, 17028946027584082339),
+UInt256(4315974792986245387, 1886548328490358802, 3994476309224342795, 16674496516052715019),
+UInt256(2697484245616403366, 17319993769802331915, 7108233711692602151, 8115717313319252935),
+UInt256(3371855307020504208, 12426620175398139086, 4273606121188364785, 5532960623221678265),
+UInt256(4214819133775630260, 15533275219247673857, 14565379688340231789, 11527886797454485735),
+UInt256(2634261958609768913, 484924975175020353, 2185833277571563012, 9510772257622747537),
+UInt256(3292827448262211141, 5217842237396163345, 7343977615391841669, 11888465322028434421),
+UInt256(4116034310327763926, 11133988815172592085, 13791658037667189991, 1025523597253379314),
+UInt256(2572521443954852454, 2347056991055482149, 10925629282755687696, 7558481275924443927),
+UInt256(3215651804943565567, 12157193275674128494, 18268722621871997524, 9448101594905554909),
+UInt256(4019564756179456959, 10584805576165272714, 13612531240485221097, 11810126993631943636),
+UInt256(2512227972612160599, 13533032512744377302, 13119518043730651090, 463800343378882917),
+UInt256(3140284965765200749, 12304604622503083724, 7176025517808538054, 9803122466078379454),
+UInt256(3925356207206500937, 1545697722846690943, 8970031897260672568, 3030531045743198509),
+UInt256(2453347629504063085, 12495276122847651599, 12523798963429002211, 1894081903589499068),
+UInt256(3066684536880078857, 1784037098277400787, 11043062685858864859, 16202660434769037547),
+UInt256(3833355671100098571, 6841732391274138888, 9192142338896193170, 15641639525033909030),
+UInt256(2395847294437561607, 1970239735332642853, 5745088961810120731, 14387710721573581048),
+UInt256(2994809118046952008, 16297857724447967278, 11793047220690038818, 13372952383539588406),
+UInt256(3743511397558690011, 1925578081850407482, 5517936989007772715, 7492818442569709699),
+UInt256(2339694623474181256, 17344387365652362340, 8060396636557245851, 2377168517392374610),
+UInt256(2924618279342726571, 3233740133355901309, 10075495795696557313, 16806518702022631975),
+UInt256(3655772849178408213, 17877233221977040348, 17206055763048084546, 7173090322246126256),
+UInt256(4569716061473010267, 8511483472189136724, 3060825630100554066, 18189734939662433628),
+UInt256(2856072538420631417, 3013834160904516500, 11136388055667622099, 15980270355716408922),
+UInt256(3570090673025789271, 8378978719558033529, 13920485069584527624, 15363651926218123248),
+UInt256(4462613341282236589, 5862037381020154008, 3565548281698495819, 757820834063102444),
+UInt256(2789133338301397868, 5969616372351290207, 2228467676061559886, 16614539085785296692),
+UInt256(3486416672876747335, 7462020465439112758, 16620642650359113570, 11544801820376845056),
+UInt256(4358020841095934169, 4715839563371503044, 11552431276094116155, 5207630238616280512),
+UInt256(2723763025684958855, 14476614773175659162, 16443641584413598405, 948925889921481368),
+UInt256(3404703782106198569, 13484082448042186049, 11331179943662222198, 5797843380829239614),
+UInt256(4255879727632748212, 3020045004770568850, 328916874295614035, 16470676262891325326),
+UInt256(2659924829770467632, 11110900164836381339, 4817259064862146676, 7988329655093384377),
+UInt256(3324906037213084540, 13888625206045476674, 1409887812650295441, 9985412068866730471),
+UInt256(4156132546516355675, 17360781507556845842, 10985731802667645109, 17093451104510800992),
+UInt256(2597582841572722297, 8544645433009334699, 11477768395094666097, 12989249949532944572),
+UInt256(3246978551965902871, 15292492809689056278, 9735524475440944718, 2401504381634017003),
+UInt256(4058723189957378589, 14503929993683932444, 2946033557446405089, 12225252513897297062),
+UInt256(2536701993723361618, 11370799255266151729, 11064643010258778989, 723253793544728808),
+UInt256(3170877492154202023, 4990127032227913853, 18442489781250861640, 5515753260358298914),
+]
+
+private let bid_multipliers2_binary80_141: [UInt256] = [
+UInt256(3963596865192752529, 1625972771857504413, 9218054171281413338, 6894691575447873642),
+UInt256(2477248040745470330, 12545448028479410018, 8067126866264577288, 8920868253082308931),
+UInt256(3096560050931837913, 6458437998744486715, 860536545975945802, 11151085316352886163),
+UInt256(3870700063664797391, 12684733516857996297, 14910728737752095965, 4715484608586331896),
+UInt256(2419187539790498369, 14845487475677329542, 2401676433453978122, 5253020889580151387),
+UInt256(3023984424738122962, 4721801289314498215, 12225467578672248460, 15789648148829965042),
+UInt256(3779980530922653702, 15125623648497898577, 10670148454912922672, 1290316112327904686),
+UInt256(2362487831826658564, 4841828761883798706, 18198057830389046430, 806447570204940429),
+UInt256(2953109789783323205, 6052285952354748383, 13524200251131532229, 10231431499610951344),
+UInt256(3691387237229154006, 12177043458870823383, 12293564295487027382, 17400975392941077084),
+UInt256(2307117023268221254, 2998966143366876710, 14601006712320473970, 6263923602160785274),
+UInt256(2883896279085276567, 12972079716063371696, 9027886353545816654, 17053276539555757400),
+UInt256(3604870348856595709, 11603413626651826716, 11284857941932270818, 12093223637589920942),
+UInt256(4506087936070744637, 669208978032619683, 14106072427415338523, 5893157510132625369),
+UInt256(2816304960044215398, 2724098620484081254, 6510452257920892625, 1377380434619196904),
+UInt256(3520381200055269247, 12628495312459877375, 17361437359255891589, 6333411561701384034),
+UInt256(4400476500069086559, 11173933122147458815, 17090110680642476582, 12528450470554117946),
+UInt256(2750297812543179099, 13901237228983243615, 17598848203042629720, 3218595525668935812),
+UInt256(3437872265678973874, 12764860517801666615, 17386874235375899246, 4023244407086169765),
+UInt256(4297340332098717343, 6732703610397307461, 17121906775792486153, 14252427545712488015),
+UInt256(2685837707561698339, 11125468784139399019, 13007034744083997798, 1990238188429223153),
+UInt256(3357297134452122924, 9295149961746860870, 11647107411677609343, 11711169772391304750),
+UInt256(4196621418065153655, 11618937452183576088, 5335512227742235871, 10027276197061743033),
+UInt256(2622888386290721034, 14179364935255816911, 3334695142338897419, 13184576650804671252),
+UInt256(3278610482863401293, 8500834132214995330, 18003426983205785486, 11869034795078451161),
+UInt256(4098263103579251616, 15237728683696132067, 13280911692152456050, 5612921456993288143),
+UInt256(2561414439737032260, 9523580427310082542, 5994726798381591079, 8119761929048192993),
+UInt256(3201768049671290325, 11904475534137603177, 16716780534831764657, 5538016392882853338),
+UInt256(4002210062089112907, 1045536362389840260, 7060917613257542109, 11534206509530954576),
+UInt256(2501381288805695566, 16794361290989507826, 13636445545140739626, 9514722077670540562),
+UInt256(3126726611007119458, 11769579576882108975, 7822184894571148725, 2670030560233399894),
+UInt256(3908408263758899323, 5488602434247860411, 5166045099786548002, 7949224218719137772),
+UInt256(2442755164849312077, 1124533512191218805, 922935178152898549, 9579951155126849012),
+UInt256(3053443956061640096, 6017352908666411410, 5765354991118511090, 16586624962335949168),
+UInt256(3816804945077050120, 7521691135833014262, 16430065775752914671, 11509909166065160652),
+UInt256(2385503090673156325, 4701056959895633914, 5657105091418183765, 14111222256431807264),
+UInt256(2981878863341445406, 10488007218296930296, 16294753401127505515, 3803969765257595368),
+UInt256(3727348579176806758, 3886636986016387063, 1921697677699830278, 143276188144606306),
+UInt256(2329592861985504223, 16264206171542405626, 8118590076203475779, 13924605672872542653),
+UInt256(2911991077481880279, 15718571696000619129, 924865558399568916, 12794071072663290412),
+UInt256(3639988846852350349, 15036528601573386007, 5767767966426849049, 15992588840829113015),
+UInt256(4549986058565437937, 4960602696684568797, 2598023939606173408, 6155677995754227557),
+UInt256(2843741286603398710, 14629591731496325258, 3929607971467552332, 3847298747346392223),
+UInt256(3554676608254248388, 9063617627515630764, 14135382001189216223, 4809123434182990279),
+UInt256(4443345760317810485, 11329522034394538455, 17669227501486520279, 1399718274301349945),
+UInt256(2777091100198631553, 9386794280710280486, 17960796216070157030, 7792352949079425572),
+UInt256(3471363875248289441, 16345178869315238512, 13227623233232920480, 517069149494506156),
+UInt256(4339204844060361802, 6596415531361884428, 16534529041541150600, 646336436868132695),
+UInt256(2712003027537726126, 8734445725528565672, 1110708614108443317, 403960273042582935),
+UInt256(3390003784422157658, 1694685120055931282, 1388385767635554146, 5116636359730616572),
+]
+
+private let bid_multipliers2_binary80_142: [UInt256] = [
+UInt256(4237504730527697072, 11341728436924689910, 10958854246399218490, 15619167486518046523),
+UInt256(2648440456579810670, 7088580273077931194, 2237597885572123652, 14373665697501166981),
+UInt256(3310550570724763337, 18084097378202189800, 12020369393819930373, 17967082121876458726),
+UInt256(4138188213405954172, 8770063667470573538, 15025461742274912967, 8623794597063409696),
+UInt256(2586367633378721357, 14704661829023884269, 14002599607349208508, 12307400650805712916),
+UInt256(3232959541723401697, 4545769230997691625, 3668191453904346923, 15384250813507141145),
+UInt256(4041199427154252121, 10293897557174502435, 9196925335807821558, 14618627498456538527),
+UInt256(2525749641971407575, 17962901019302533782, 3442235325666194522, 4524956168107948676),
+UInt256(3157187052464259469, 17841940255700779323, 13526166193937518960, 14879567246989711652),
+UInt256(3946483815580324337, 8467367264343810442, 12296021723994510797, 152714985027587949),
+UInt256(2466552384737702710, 16821319586283351286, 12296699595923957152, 2401289874855936421),
+UInt256(3083190480922128388, 11803277445999413300, 6147502458050170632, 3001612343569920526),
+UInt256(3853988101152660485, 14754096807499266625, 7684378072562713290, 3752015429462400657),
+UInt256(2408742563220412803, 11527153513900735592, 16331951341420165566, 6956695661841388315),
+UInt256(3010928204025516004, 9797255873948531587, 1968195103065655341, 17919241614156511201),
+UInt256(3763660255031895005, 12246569842435664483, 16295301934114232889, 8563993962413475290),
+UInt256(2352287659394934378, 9959949160735984254, 7878720699607701603, 16881711272576891816),
+UInt256(2940359574243667973, 3226564414065204510, 625028837654851196, 16490453072293726866),
+UInt256(3675449467804584966, 8644891536008893541, 10004658083923339804, 2166322266657606966),
+UInt256(4594311834755731208, 1582742383156341118, 17117508623331562659, 2707902833322008708),
+UInt256(2871444896722332005, 989213989472713199, 6086756871154838757, 17833340335322113107),
+UInt256(3589306120902915006, 5848203505268279403, 2996760070516160543, 8456617363870477671),
+UInt256(4486632651128643757, 16533626418440125061, 17581008143427364391, 5959085686410709185),
+UInt256(2804145406955402348, 12639359520738772115, 13293973098855796696, 10641957581647775097),
+UInt256(3505181758694252935, 15799199400923465144, 12005780355142357966, 13302446977059718871),
+UInt256(4381477198367816169, 15137313232726943526, 15007225443927947458, 7404686684469872780),
+UInt256(2738423248979885106, 2543291742813257848, 4767829884027579257, 9239615196221058392),
+UInt256(3423029061224856382, 12402486715371348118, 5959787355034474071, 16161205013703710894),
+UInt256(4278786326531070478, 6279736357359409339, 16673106230647868397, 15589820248702250713),
+UInt256(2674241454081919048, 17759893278631794549, 8114848384941223796, 12049480664652600648),
+UInt256(3342801817602398811, 3753122524580191570, 14755246499603917649, 15061850830815750810),
+UInt256(4178502272002998514, 79717137297851559, 9220686087650121254, 4992255483237524800),
+UInt256(2611563920001874071, 4661509229238545128, 12680457832422407639, 16955217732305616712),
+UInt256(3264454900002342589, 1215200518120793506, 15850572290528009549, 16582336146954632986),
+UInt256(4080568625002928236, 6130686666078379787, 10589843326305236129, 6892862128411127521),
+UInt256(2550355390626830147, 13055051203153763175, 4312809069727078628, 15837253876325424461),
+UInt256(3187944238283537684, 11707127985514816065, 779325318731460382, 1349823271697228960),
+UInt256(3984930297854422105, 14633909981893520081, 5585842666841713381, 10910651126476312007),
+UInt256(2490581436159013816, 2228664711042368194, 15020366712844540623, 9124999963261388957),
+UInt256(3113226795198767270, 2785830888802960243, 9552086354200899971, 6794563935649348292),
+UInt256(3891533493998459087, 12705660647858476112, 7328421924323737060, 3881518901134297461),
+UInt256(2432208433749036929, 14858566932552629426, 4580263702702335662, 11649321350063711721),
+UInt256(3040260542186296162, 4738150610408623070, 14948701665232695386, 5338279650724863843),
+UInt256(3800325677732870202, 15146060299865554646, 9462505044686093424, 15896221600260855612),
+UInt256(2375203548583043876, 14077973705843359558, 1302379634501420486, 9935138500163034758),
+UInt256(2969004435728804845, 17597467132304199447, 10851346579981551416, 3195551088349017639),
+UInt256(3711255544661006057, 8161775860098085597, 8952497206549551366, 3994438860436272048),
+UInt256(2319534715413128785, 16630324958629773258, 7901153763307163555, 16331582343054833742),
+UInt256(2899418394266410982, 6952848143005052861, 653070167279178636, 15802791910391154274),
+UInt256(3624272992833013727, 17914432215611091884, 5428023727526361200, 1306745814279391226),
+]
+
+private let bid_multipliers2_binary80_143: [UInt256] = [
+UInt256(4530341241041267159, 17781354251086476951, 6785029659407951500, 1633432267849239033),
+UInt256(2831463275650791974, 18030875434570129950, 11158172564771051543, 10244267204260550204),
+UInt256(3539329094563489968, 13315222256357886630, 4724343669109038621, 8193647986898299851),
+UInt256(4424161368204362460, 16644027820447358287, 15128801623241074084, 14853746002050262717),
+UInt256(2765100855127726538, 1179145350924823121, 16373030042166753159, 60219214426638390),
+UInt256(3456376068909658172, 10697303725510804710, 6631229497426277736, 13910332073315461700),
+UInt256(4320470086137072715, 13371629656888505887, 17512408908637622978, 17387915091644327125),
+UInt256(2700293803835670447, 6051425526341622227, 17862784595539596217, 15479132950705092357),
+UInt256(3375367254794588059, 2952595889499639880, 17716794725997107368, 5513858133099201734),
+UInt256(4219209068493235073, 17525802917156713563, 3699249333786832594, 6892322666374002168),
+UInt256(2637005667808271921, 4036097795581864121, 6187824403076419, 8919387684911139259),
+UInt256(3296257084760339901, 9656808262904718055, 4619420798931233428, 6537548587711536170),
+UInt256(4120321355950424876, 16682696347058285473, 1162589980236653881, 8171935734639420212),
+UInt256(2575200847469015548, 1203313180056652612, 12255833783716378435, 16636674880218107393),
+UInt256(3219001059336269435, 1504141475070815765, 15319792229645473044, 16184157581845246337),
+UInt256(4023751324170336793, 15715234899120683419, 5314682231774677594, 1783452903597006305),
+UInt256(2514844577606460496, 2904492784309345281, 1015833385645479544, 5726344083175516845),
+UInt256(3143555722008075620, 3630615980386681601, 5881477750484237334, 7157930103969396056),
+UInt256(3929444652510094525, 4538269975483352001, 11963533206532684571, 18170784666816520877),
+UInt256(2455902907818809078, 5142261743890788953, 559679226441846001, 9050897407546631597),
+UInt256(3069878634773511347, 15651199216718261999, 5311285051479695405, 15925307777860677400),
+UInt256(3837348293466889184, 14952313002470439595, 2027420295922231353, 6071576667043683037),
+UInt256(2398342683416805740, 9345195626544024746, 17408038749447252259, 15323950462970771659),
+UInt256(2997928354271007175, 11681494533180030933, 12536676399954289516, 14543252060286076669),
+UInt256(3747410442838758969, 9990182148047650763, 1835787444660698183, 18179065075357595836),
+UInt256(2342131526774224355, 17773078888598251486, 17288268217408794028, 18279444699739579254),
+UInt256(2927664408467780444, 17604662592320426454, 12386963234906216728, 4402561800964922451),
+UInt256(3659580510584725556, 3559084166690981452, 6260332006777995102, 5503202251206153064),
+UInt256(4574475638230906945, 4448855208363726815, 7825415008472493877, 16102374850862467138),
+UInt256(2859047273894316840, 14309749551295799019, 11808413407936390529, 12369827291002735913),
+UInt256(3573809092367896050, 17887186939119748774, 10148830741493100258, 1627226058471256179),
+UInt256(4467261365459870063, 13135611637044910160, 3462666390011599514, 11257404609943846032),
+UInt256(2792038353412418789, 15127286300794150706, 2164166493757249696, 11647563899642291674),
+UInt256(3490047941765523487, 5074049820710524670, 11928580154051337928, 14559454874552864593),
+UInt256(4362559927206904359, 1730876257460767934, 5687353155709396602, 18199318593191080741),
+UInt256(2726599954504315224, 7999326688554061814, 17389653777600536588, 15986260139171813367),
+UInt256(3408249943130394030, 9999158360692577268, 12513695185145894928, 1536081100255215093),
+UInt256(4260312428912992538, 3275575914010945777, 15642118981432368660, 1920101375319018866),
+UInt256(2662695268070620336, 6658920964684229015, 2858795335754148556, 10423435396429162599),
+UInt256(3328369085088275420, 8323651205855286268, 17408552224974849407, 13029294245536453249),
+UInt256(4160461356360344275, 10404564007319107836, 3313946207509010143, 11674931788493178657),
+UInt256(2600288347725215172, 4197009495360748445, 11294588416547907147, 14214361395449318517),
+UInt256(3250360434656518965, 5246261869200935557, 283177465402720222, 13156265725884260242),
+UInt256(4062950543320648706, 11169513354928557350, 4965657850180788182, 7221960120500549494),
+UInt256(2539344089575405441, 11592631865257736247, 16938594211645156325, 18348783130595007146),
+UInt256(3174180111969256802, 655731776290006597, 16561556746129057503, 9100920857961595221),
+UInt256(3967725139961571002, 10043036757217284055, 6866887877379158167, 6764465054024606122),
+UInt256(2479828212475981876, 10888583991688190438, 11209333951003055710, 11145319686406460682),
+UInt256(3099785265594977345, 13610729989610238048, 4788295401899043830, 4708277571153300045),
+UInt256(3874731581993721682, 3178354431730633848, 5985369252373804787, 15108719000796400864),
+]
+
+private let bid_multipliers2_binary80_144: [UInt256] = [
+UInt256(2421707238746076051, 6598157538259034059, 3740855782733627992, 7137106366284056588),
+UInt256(3027134048432595064, 3636010904396404670, 64383709989647086, 8921382957855070735),
+UInt256(3783917560540743830, 4545013630495505837, 9303851674341834666, 1928356660464062610),
+UInt256(2364948475337964893, 16675691574341854860, 8120750305677340618, 5816908931217427036),
+UInt256(2956185594172456117, 7009556412645154863, 10150937882096675772, 16494508200876559603),
+UInt256(3695231992715570146, 13373631534233831483, 8076986334193456812, 2171391177386147887),
+UInt256(2309519995447231341, 12970205727323532581, 2742273449657216555, 10580491522721118238),
+UInt256(2886899994309039177, 2377699103872252014, 8039527830498908598, 8613928384974009893),
+UInt256(3608624992886298971, 7583809898267702922, 826037751268859940, 1544038444362736558),
+UInt256(4510781241107873714, 4868076354407240748, 10255919225940850733, 1930048055453420697),
+UInt256(2819238275692421071, 7654233739931913371, 15633321553067807516, 3512123043872081888),
+UInt256(3524047844615526339, 4956106156487503810, 14929965922907371491, 4390153804840102360),
+UInt256(4405059805769407924, 1583446677181991859, 9439085366779438556, 876006237622740046),
+UInt256(2753162378605879952, 10213026210093520720, 3593585345023455145, 9770875935368988337),
+UInt256(3441452973257349940, 12766282762616900900, 4491981681279318931, 16825280937638623325),
+UInt256(4301816216571687425, 15957853453271126125, 5614977101599148664, 16419915153620891252),
+UInt256(2688635135357304641, 3056129380653371972, 5815203697713161867, 10262446971013057033),
+UInt256(3360793919196630801, 8431847744244102869, 7269004622141452334, 8216372695338933387),
+UInt256(4200992398995788501, 15151495698732516490, 13697941796104203322, 1047093832318890925),
+UInt256(2625620249372367813, 11775527820921516758, 13172899640992514980, 5266119663626694732),
+UInt256(3282025311715459767, 884351720869732236, 7242752514385867917, 6582649579533368415),
+UInt256(4102531639644324708, 14940497706369329007, 9053440642982334896, 12839997992844098423),
+UInt256(2564082274777702943, 114439029626054821, 12575929429505041166, 8024998745527561515),
+UInt256(3205102843472128678, 13978106842314732239, 1884853731599137746, 807876395054676085),
+UInt256(4006378554340160848, 8249261516038639490, 16191125219781085894, 10233217530673120914),
+UInt256(2503986596462600530, 5155788447524149681, 14731139280790566588, 1784074938243312668),
+UInt256(3129983245578250662, 15668107596259962910, 4578866045706044523, 2230093672804140834),
+UInt256(3912479056972813328, 10361762458470177829, 14946954593987331461, 16622675146287339755),
+UInt256(2445299410608008330, 6476101536543861143, 11647689630455776115, 12695014975643281299),
+UInt256(3056624263260010412, 17318498957534602237, 9947926019642332240, 11257082701126713720),
+UInt256(3820780329075013016, 3201379623208701180, 17046593542980303204, 14071353376408392149),
+UInt256(2387987705671883135, 2000862264505438238, 1430748927507913694, 18017967897110020902),
+UInt256(2984984632089853918, 16336135885913961509, 11011808196239667926, 13299087834532750319),
+UInt256(3731230790112317398, 11196797820537676078, 18376446263726972812, 7400487756311162090),
+UInt256(2332019243820198374, 2386312619408659645, 6873592896401970103, 13848676884549252115),
+UInt256(2915024054775247967, 12206262811115600364, 13203677138929850533, 12699160087259177239),
+UInt256(3643780068469059959, 10646142495467112551, 16504596423662313167, 2038892053791807837),
+UInt256(4554725085586324949, 8695992100906502785, 16019059511150503554, 16383673122521923508),
+UInt256(2846703178491453093, 7740838072280258193, 3094383166827982865, 14851481720003590097),
+UInt256(3558378973114316366, 14287733608777710645, 8479664976962366486, 4729294094722323909),
+UInt256(4447973716392895458, 8636294974117362498, 15211267239630346011, 15134989655257680694),
+UInt256(2779983572745559661, 10009370377250739465, 14118728043196354161, 7153525525322356482),
+UInt256(3474979465931949576, 17123398989990812236, 3813351998713278989, 13553592925080333506),
+UInt256(4343724332414936971, 2957504663778963679, 4766689998391598737, 3106933101068253171),
+UInt256(2714827707759335606, 17989341479357709963, 9896710276635831066, 13471048234236127992),
+UInt256(3393534634699169508, 13263304812342361646, 7759201827367400929, 7615438255940384182),
+UInt256(4241918293373961885, 16579131015427952058, 475630247354475353, 14130983838352868131),
+UInt256(2651198933358726178, 12667799893856163988, 4908954923023935000, 1914335871329460726),
+UInt256(3313998666698407723, 6611377830465429177, 6136193653779918750, 2392919839161825907),
+UInt256(4142498333373009654, 3652536269654398567, 12281928085652286341, 12214521835807058192),
+]
+
+private let bid_multipliers2_binary80_145: [UInt256] = [
+UInt256(2589061458358131033, 16117893223816162816, 14593734081173760819, 9939919156593105322),
+UInt256(3236326822947663792, 6312308474488039808, 18242167601467201024, 7813212927313993749),
+UInt256(4045408528684579740, 7890385593110049761, 4355965428124449664, 9766516159142492186),
+UInt256(2528380330427862337, 14154863032548556908, 14251693438646250800, 6104072599464057616),
+UInt256(3160475413034827922, 3858520735403532423, 17814616798307813500, 7630090749330072020),
+UInt256(3950594266293534902, 14046522956109191337, 17656584979457378971, 9537613436662590025),
+UInt256(2469121416433459314, 4167390829140856682, 4117836584519780001, 3655165388700424814),
+UInt256(3086401770541824142, 14432610573280846660, 14370667767504500809, 9180642754302918921),
+UInt256(3858002213177280178, 8817391179746282517, 17963334709380626011, 16087489461306036555),
+UInt256(2411251383235800111, 10122555505768814477, 13532927202576585209, 7748837904102578895),
+UInt256(3014064229044750139, 8041508363783630193, 3081100947938567799, 14297733398555611523),
+UInt256(3767580286305937674, 5440199436302149837, 8463062203350597653, 13260480729767126500),
+UInt256(2354737678941211046, 8011810666116231552, 7595256886307817485, 10593643465318148015),
+UInt256(2943422098676513808, 791391295790513632, 9494071107884771856, 17853740350075072922),
+UInt256(3679277623345642260, 989239119738142040, 11867588884855964821, 3870431363884289536),
+UInt256(4599097029182052825, 1236548899672677550, 14834486106069956026, 9449725223282749824),
+UInt256(2874435643238783015, 12302058108363893229, 4659867797866334612, 10517764282979106544),
+UInt256(3593044554048478769, 10765886617027478632, 10436520765760306169, 13147205353723883180),
+UInt256(4491305692560598461, 18069044289711736194, 13045650957200382712, 2598948636872690263),
+UInt256(2807066057850374038, 13598995690283529073, 12765217866677627099, 1624342898045431415),
+UInt256(3508832572312967548, 7775372575999635534, 2121464278064870161, 15865486677838952980),
+UInt256(4386040715391209435, 9719215719999544417, 11875202384435863510, 5996800292016527513),
+UInt256(2741275447119505897, 3768666815786021309, 504472462631332837, 17583058237792493408),
+UInt256(3426594308899382371, 9322519538159914540, 5242276596716553951, 8143764741958453048),
+UInt256(4283242886124227964, 7041463404272505271, 6552845745895692439, 5568019909020678406),
+UInt256(2677026803827642477, 13624286664525091602, 11013057618825889630, 10397541470779005860),
+UInt256(3346283504784553097, 3195300275374200791, 4542949986677586230, 3773554801618981517),
+UInt256(4182854380980691371, 8605811362645138893, 1067001464919594883, 13940315538878502704),
+UInt256(2614283988112932107, 3072789092439517856, 2972718924788440754, 6406854202585370238),
+UInt256(3267854985141165133, 17676044420831561032, 3715898655985550942, 17231939790086488605),
+UInt256(4084818731426456417, 8259997470757287578, 4644873319981938678, 12316552700753334949),
+UInt256(2553011707141535260, 16691713465291774496, 7514731843416099578, 3086159419543446439),
+UInt256(3191264633926919076, 2417897757905166504, 9393414804270124472, 13081071311284083857),
+UInt256(3989080792408648845, 3022372197381458130, 11741768505337655590, 16351339139105104821),
+UInt256(2493175495255405528, 4194825632577105283, 11950291334263422648, 5607900943513302609),
+UInt256(3116469369069256910, 5243532040721381604, 10326178149401890406, 7009876179391628261),
+UInt256(3895586711336571137, 15777787087756502813, 12907722686752363007, 17985717261094311134),
+UInt256(2434741694585356961, 2943587902206732402, 10373169688433920831, 18158602315825026315),
+UInt256(3043427118231696201, 8291170896185803407, 3743090073687625231, 18086566876353894990),
+UInt256(3804283897789620251, 14975649638659642163, 67176573682143635, 17996522577014980833),
+UInt256(2377677436118512657, 7053938014948582399, 16182886423047197436, 8941983601420669069),
+UInt256(2972096795148140821, 13429108537113115903, 15616922010381608891, 11177479501775836336),
+UInt256(3715120993935176027, 2951327616109231167, 14909466494549623210, 9360163358792407516),
+UInt256(2321950621209485016, 17985480824564127143, 16235945586734596362, 10461788117672642602),
+UInt256(2902438276511856271, 4035106956995607313, 15683245964990857549, 3853863110236027444),
+UInt256(3628047845639820339, 432197677817121238, 5768999400956408224, 9429014906222422209),
+UInt256(4535059807049775423, 14375305152553565259, 16434621288050286088, 11786268632778027761),
+UInt256(2834412379406109639, 15902094747987060143, 7965795295817734853, 7366417895486267351),
+UInt256(3543015474257637049, 15265932416556437275, 5345558101344780662, 13819708387785222092),
+UInt256(4428769342822046312, 5247357465413382882, 2070261608253587924, 8051263447876751807),
+]
+
+private let bid_multipliers2_binary80_146: [UInt256] = [
+UInt256(2767980839263778945, 3279598415883364301, 5905599523585880356, 14255411691777745688),
+UInt256(3459976049079723681, 8711184038281593280, 11993685422909738349, 17819264614722182110),
+UInt256(4324970061349654601, 15500666066279379504, 14992106778637172937, 8439022713120563925),
+UInt256(2703106288343534126, 2770387263783530334, 9370066736648233085, 16803604241768822213),
+UInt256(3378882860429417657, 12686356116584188726, 2489211383955515549, 7169447246928864054),
+UInt256(4223603575536772072, 2022887090448072195, 12334886266799170244, 13573495077088467972),
+UInt256(2639752234710482545, 1264304431530045122, 5403460907535787450, 17706806460035068291),
+UInt256(3299690293388103181, 6192066557839944306, 15977698171274510121, 12910136038189059555),
+UInt256(4124612866735128976, 12351769215727318287, 10748750677238361844, 2302611992454160732),
+UInt256(2577883041709455610, 7719855759829573929, 13635498200915058008, 10662504532138626266),
+UInt256(3222353802136819513, 426447662932191604, 3209314695861658798, 13328130665173282832),
+UInt256(4027942252671024391, 5144745597092627409, 4011643369827073498, 7436791294611827732),
+UInt256(2517463907919390244, 10132995025823973986, 14036492152210390696, 9259680577559780236),
+UInt256(3146829884899237805, 12666243782279967483, 8322243153408212562, 11574600721949725295),
+UInt256(3933537356124047257, 1997746672567795642, 5791117923332877799, 5244878865582380811),
+UInt256(2458460847577529535, 12777806716423342036, 8231134720510436528, 10195578318630069863),
+UInt256(3073076059471911919, 11360572377101789641, 10288918400638045660, 12744472898287587329),
+UInt256(3841345074339889899, 9589029452949849147, 17472834019224944979, 15930591122859484161),
+UInt256(2400840671462431187, 3687300398879961765, 8614678252801896660, 7650776442573483649),
+UInt256(3001050839328038983, 18444183553882115918, 15380033834429758729, 9563470553216854561),
+UInt256(3751313549160048729, 18443543423925256994, 10001670256182422603, 16566024209948456105),
+UInt256(2344570968225030456, 4609685612312203765, 10862729928541402031, 8047922122004091114),
+UInt256(2930713710281288070, 5762107015390254706, 18190098429104140443, 5448216634077725988),
+UInt256(3663392137851610087, 16426005806092594191, 13514250999525399746, 2198584774169769581),
+UInt256(4579240172314512609, 15920821239188354835, 12281127730979361778, 11971603004566987784),
+UInt256(2862025107696570381, 3032984246851639916, 5369861822648407159, 12093937896281755269),
+UInt256(3577531384620712976, 8402916326991937799, 6712327278310508949, 10505736351924806182),
+UInt256(4471914230775891220, 10503645408739922249, 3778723079460748282, 17743856458333395632),
+UInt256(2794946394234932012, 15788150417317227213, 13890916970731437436, 15701596304885760174),
+UInt256(3493682992793665016, 1288443947936982401, 3528588158132133084, 1180251307397648602),
+UInt256(4367103740992081270, 1610554934921228001, 9022421216092554259, 1475314134247060752),
+UInt256(2729439838120050793, 14841654889607931212, 17168228306126316171, 17062972398400270634),
+UInt256(3411799797650063492, 4717010556727750304, 3013541308948343598, 16717029479572950388),
+UInt256(4264749747062579365, 5896263195909687880, 3766926636185429498, 11672914812611412177),
+UInt256(2665468591914112103, 5991007506657248877, 2354329147615893436, 11907257776309520515),
+UInt256(3331835739892640129, 2877073364894173192, 7554597452947254699, 14884072220386900644),
+UInt256(4164794674865800161, 8208027724545104394, 9443246816184068374, 13993404257056237901),
+UInt256(2602996671791125100, 16659232373909160006, 10513715278542430638, 4134191642232760784),
+UInt256(3253745839738906376, 2377296393676898392, 3918772061323262489, 14391111589645726788),
+UInt256(4067182299673632970, 2971620492096122990, 4898465076654078112, 4153831431774994773),
+UInt256(2541988937296020606, 6468948825987464772, 16896598728190962532, 2596144644859371733),
+UInt256(3177486171620025757, 17309558069339106774, 2674004336529151549, 3245180806074214666),
+UInt256(3971857714525032197, 7801889531391719755, 12565877457516215244, 8668162026020156237),
+UInt256(2482411071578145123, 7182023966333518799, 5547830401733940575, 14640973303117373456),
+UInt256(3103013839472681404, 4365843939489510595, 2323101983740037815, 13689530610469328916),
+UInt256(3878767299340851755, 5457304924361888243, 16738935534957210981, 12500227244659273241),
+UInt256(2424229562088032347, 1104972568512486200, 8155991700134562911, 10118485037125739728),
+UInt256(3030286952610040433, 15216273765922771462, 10194989625168203639, 8036420277979786756),
+UInt256(3787858690762550542, 5185284152121300616, 3520364994605478741, 5433839329047345540),
+UInt256(2367411681726594088, 17075860650357976597, 2200228121628424213, 5701992589868284915),
+]
+
+private let bid_multipliers2_binary80_147: [UInt256] = [
+UInt256(2959264602158242611, 2898081739237919130, 7361971170462918170, 11739176755762744048),
+UInt256(3699080752697803263, 17457660229329562624, 18425835999933423521, 5450598907848654251),
+UInt256(2311925470436127039, 17828566670972058496, 11516147499958389700, 14935839363473878667),
+UInt256(2889906838045158799, 17674022320287685216, 14395184374947987126, 223055130632796718),
+UInt256(3612383547556448499, 17480841881932218616, 17993980468684983907, 9502190950145771705),
+UInt256(4515479434445560624, 17239366333987885367, 4045731512146678268, 7266052669254826728),
+UInt256(2822174646528475390, 10774603958742428354, 9446111222732755773, 13764654955139042513),
+UInt256(3527718308160594238, 4244882911573259635, 2584266991561168909, 3370760638641639429),
+UInt256(4409647885200742797, 14529475676321350351, 17065391794733624848, 8825136816729437190),
+UInt256(2756029928250464248, 11386765306914537921, 17583398899349597386, 5515710510455898244),
+UInt256(3445037410313080310, 14233456633643172402, 8144190568904833020, 16118010174924648613),
+UInt256(4306296762891350388, 8568448755199189695, 956866174276265468, 1700768644946259150),
+UInt256(2691435476807093992, 14578652508854269367, 7515570386563747773, 10286352439946187777),
+UInt256(3364294346008867490, 18223315636067836709, 4782776964777296812, 17469626568360122625),
+UInt256(4205367932511084363, 13555772508230020078, 10590157224399008920, 3390289136740601665),
+UInt256(2628354957819427727, 6166514808430068597, 2007162246821992671, 2118930710462876041),
+UInt256(3285443697274284659, 3096457492110197842, 7120638826954878742, 16483721443360758763),
+UInt256(4106804621592855823, 17705629920419911014, 18124170570548374236, 11381279767346172646),
+UInt256(2566752888495534889, 17983547727903526240, 6715920588165345993, 16336671891446133712),
+UInt256(3208441110619418612, 8644376604597244088, 8394900735206682492, 6585781809025503428),
+UInt256(4010551388274273265, 10805470755746555110, 10493625919008353115, 8232227261281879284),
+UInt256(2506594617671420790, 18282634268410066704, 1946830180952832793, 2839299029087480601),
+UInt256(3133243272089275988, 13629920798657807572, 2433537726191040991, 8160809804786738655),
+UInt256(3916554090111594985, 17037400998322259465, 3041922157738801239, 5589326237556035415),
+UInt256(2447846306319746866, 3730846596310330309, 13430416394655220534, 10410857926113603990),
+UInt256(3059807882899683582, 13886930282242688695, 2952962438036861956, 3790200370787229180),
+UInt256(3824759853624604478, 8135290815948585060, 17526261102828241157, 4737750463484036475),
+UInt256(2390474908515377799, 472870741540477759, 1730541152412874915, 5266937048891216749),
+UInt256(2988093635644222248, 14426146482207760910, 15998234495798257356, 1971985292686633032),
+UInt256(3735117044555277810, 18032683102759701138, 10774421082893045887, 2464981615858291290),
+UInt256(2334448152847048631, 15882112957652201115, 11345699195235541583, 8458142537552513912),
+UInt256(2918060191058810789, 15240955178637863490, 9570437975617039075, 5960992153513254486),
+UInt256(3647575238823513487, 5216135918015165651, 2739675432666523036, 2839554173464180204),
+UInt256(4559469048529391859, 1908483879091569159, 17259652346115317507, 3549442716830225254),
+UInt256(2849668155330869911, 17333703488928088388, 17704811743963155297, 18359302762514748448),
+UInt256(3562085194163587389, 17055443342732722582, 3684270606244392506, 9114070397861271848),
+UInt256(4452606492704484237, 7484246123133739515, 13828710294660266441, 2169215960471814002),
+UInt256(2782879057940302648, 6983496836172281149, 6337100924948972573, 12884975021363353511),
+UInt256(3478598822425378310, 8729371045215351436, 12533062174613603621, 2271160721422028177),
+UInt256(4348248528031722888, 1688341769664413487, 15666327718267004526, 7450636920204923125),
+UInt256(2717655330019826805, 1055213606040258429, 16708983851557959685, 44962056700689050),
+UInt256(3397069162524783506, 5930703025977710941, 7051171759165285894, 4667888589303249216),
+UInt256(4246336453155979382, 16636750819326914484, 13425650717383995271, 15058232773483837328),
+UInt256(2653960283222487114, 5786283243651933648, 17614403735219772852, 16328924511068480186),
+UInt256(3317450354028108892, 16456226091419692869, 3571260595315164450, 1964411565126048616),
+UInt256(4146812942535136116, 2123538540565064470, 9075761762571343466, 11678886493262336578),
+UInt256(2591758089084460072, 10550583624707941102, 1060665083179701762, 11910990076716348266),
+UInt256(3239697611355575090, 13188229530884926377, 10549203390829403011, 5665365559040659524),
+UInt256(4049622014194468863, 7261914876751382163, 17798190256964141668, 2470020930373436501),
+UInt256(2531013758871543039, 11456225825610695708, 8818025901388894590, 10767135118338173621),
+]
+
+private let bid_multipliers2_binary80_148: [UInt256] = [
+UInt256(3163767198589428799, 9708596263585981731, 11022532376736118238, 4235546861067941218),
+UInt256(3954708998236785999, 7524059311055089260, 9166479452492759893, 14517805613189702331),
+UInt256(2471693123897991249, 11620066097050512643, 14952421694662750741, 11379471517457257909),
+UInt256(3089616404872489062, 690024566030977092, 14078841099901050523, 389281341539408674),
+UInt256(3862020506090611327, 10085902744393497173, 17598551374876313153, 14321659732206424554),
+UInt256(2413762816306632079, 13221218242887017589, 13304937618511389673, 2033508304987933491),
+UInt256(3017203520383290099, 11914836785181384083, 2796113967857073379, 7153571399662304767),
+UInt256(3771504400479112624, 10281859963049342199, 17330200515103505436, 4330278231150493055),
+UInt256(2357190250299445390, 6426162476905838874, 17748904349580772753, 11929795931323833968),
+UInt256(2946487812874306737, 17256075132987074401, 12962758400121190134, 1077186858872628747),
+UInt256(3683109766092883422, 7735035860951679290, 2368389944869323955, 10569855610445561742),
+UInt256(4603887207616104278, 445422789334823304, 12183859467941430752, 8600633494629564273),
+UInt256(2877429504760065173, 14113447298616428277, 7614912167463394220, 5375395934143477671),
+UInt256(3596786880950081467, 3806751067988371634, 14130326227756630679, 6719244917679347089),
+UInt256(4495983601187601834, 146752816558076639, 8439535747841012541, 3787370128671795957),
+UInt256(2809989750742251146, 4703406528776185803, 12192238870041714694, 4672949339633566425),
+UInt256(3512487188427813932, 15102630197825008062, 10628612569124755463, 15064558711396733839),
+UInt256(4390608985534767416, 431543673571708462, 4062393674551168521, 14219012370818529395),
+UInt256(2744130615959229635, 269714795982317788, 16374054101876644038, 1969353704120499016),
+UInt256(3430163269949037043, 14172201550260060948, 2020823553636253431, 11685064167005399578),
+UInt256(4287704087436296304, 13103565919397688281, 2526029442045316789, 9994644190329361568),
+UInt256(2679815054647685190, 8189728699623555175, 13107983447346792753, 8552495628169544932),
+UInt256(3349768818309606488, 1013788837674668161, 11773293290756103037, 15302305553639319069),
+UInt256(4187211022887008110, 1267236047093335202, 881558558162965085, 5292823886766985125),
+UInt256(2617006889304380068, 14627080584715498213, 5162660117279241082, 5613857938443059655),
+UInt256(3271258611630475085, 18283850730894372766, 11065011165026439256, 16240694459908600377),
+UInt256(4089073264538093857, 9019755358335802246, 4607891919428273263, 1854124001176198855),
+UInt256(2555670790336308660, 17166562145028346163, 16714990504924834501, 8076356528376206140),
+UInt256(3194588487920385826, 3011458607575881088, 16282052112728655222, 14707131678897645579),
+UInt256(3993235609900482282, 12987695296324627169, 1905821067201267412, 9160542561767281166),
+UInt256(2495772256187801426, 12728995578630279884, 12720353213069261892, 14948711137959326537),
+UInt256(3119715320234751783, 6687872436433074047, 15900441516336577366, 239144848739606555),
+UInt256(3899644150293439729, 3748154527113954655, 15263865876993333803, 9522303097779284002),
+UInt256(2437277593933399830, 13871811625514691419, 16457445200761915483, 3645596426898358549),
+UInt256(3046596992416749788, 8116392495038588466, 15960120482525006449, 18392053588905111898),
+UInt256(3808246240520937235, 10145490618798235583, 10726778566301482254, 9155008930849226161),
+UInt256(2380153900325585772, 4035088627535203287, 13621765631579508265, 1110194563353378447),
+UInt256(2975192375406982215, 5043860784419004109, 12415521021046997427, 5999429222619110962),
+UInt256(3718990469258727769, 1693139962096367233, 1684343221026583072, 2887600509846500799),
+UInt256(2324369043286704855, 12587427522378699280, 12581929559210084180, 1804750318654062999),
+UInt256(2905461304108381069, 11122598384545986196, 15727411949012605225, 2255937898317578749),
+UInt256(3631826630135476337, 68189925400319034, 1212520862556204915, 7431608391324361340),
+UInt256(4539783287669345421, 4696923425177786696, 10739023115050031952, 4677824470728063771),
+UInt256(2837364554793340888, 5241420149949810637, 6711889446906269970, 2923640294205039857),
+UInt256(3546705693491676110, 6551775187437263296, 13001547827060225366, 12877922404611075629),
+UInt256(4433382116864595137, 17413091021151354928, 16251934783825281708, 6874030968909068729),
+UInt256(2770863823040371961, 3965652860578514974, 10157459239890801067, 13519641392422943764),
+UInt256(3463579778800464951, 9568752094150531622, 3473452013008725526, 12287865722101291800),
+UInt256(4329474723500581189, 7349254099260776623, 13565187053115682716, 6136460115771838942),
+UInt256(2705921702187863243, 6899126821251679341, 15395770935838383553, 13058659609212175147),
+]
+
+private let bid_multipliers2_binary80_149: [UInt256] = [
+UInt256(3382402127734829054, 4012222508137211273, 5409655614515815730, 2488266456233055222),
+UInt256(4228002659668536317, 14238650172026289899, 11373755536572157566, 12333705107146094835),
+UInt256(2642501662292835198, 11204999366730125139, 4802754201143904527, 3096879673538921368),
+UInt256(3303127077866043998, 4782877171557880616, 1391756733002492754, 17706157647205815422),
+UInt256(4128908847332554997, 15201968501302126578, 1739695916253115943, 12909325022152493469),
+UInt256(2580568029582846873, 11807073322527523063, 5698995966085585368, 14985857166486390275),
+UInt256(3225710036978558592, 923783597877240117, 2512058939179593807, 285577384398436227),
+UInt256(4032137546223198240, 1154729497346550146, 7751759692401880162, 14192029785780208996),
+UInt256(2520085966389498900, 721705935841593841, 9456535826178563005, 13481704634540018527),
+UInt256(3150107457986873625, 902132419801992301, 16432355801150591661, 3017072737892859446),
+UInt256(3937634322483592031, 5739351543179878281, 6705386696156075864, 8383026940793462211),
+UInt256(2461021451552245019, 10504623742128505781, 15720081731166017175, 5239391837995913882),
+UInt256(3076276814440306274, 8519093659233244323, 5815044108675357757, 1937553779067504449),
+UInt256(3845346018050382843, 1425495037186779596, 2657119117416809292, 7033628242261768465),
+UInt256(2403341261281489276, 17031835462737594911, 10884071485240281615, 13619389688268381099),
+UInt256(3004176576601861596, 2843050254712442023, 8993403338122964115, 12412551091908088469),
+UInt256(3755220720752326995, 3553812818390552529, 6630068154226317240, 10904002846457722682),
+UInt256(2347012950470204371, 18362034075989952994, 15673007642459918035, 6815001779036076677),
+UInt256(2933766188087755464, 18340856576560053339, 10367887516220121736, 3907066205367707942),
+UInt256(3667207735109694331, 4479326646990515058, 8348173376847764266, 4883832756709634927),
+UInt256(4584009668887117914, 987472290310755919, 1211844684204929524, 15328162982741819467),
+UInt256(2865006043054448696, 5228856199871610353, 7674931955269162809, 356729827358861359),
+UInt256(3581257553818060870, 6536070249839512941, 14205350962513841415, 5057598302625964603),
+UInt256(4476571942272576087, 17393459849154166985, 3921630647860138057, 1710311859855067849),
+UInt256(2797857463920360054, 17788441433362436221, 13980234200981056045, 12598159958477887166),
+UInt256(3497321829900450068, 13012179754848269469, 3640234695944156345, 1912641892815195245),
+UInt256(4371652287375562585, 16265224693560336836, 9161979388357583335, 7002488384446381960),
+UInt256(2732282679609726616, 3248236405834128666, 14949609154578265392, 11294084267920070581),
+UInt256(3415353349512158270, 4060295507292660833, 9463639406368055932, 14117605334900088227),
+UInt256(4269191686890197837, 14298741420970601849, 16441235276387457819, 17647006668625110283),
+UInt256(2668244804306373648, 11242556397320320108, 3358243020101079281, 8723536158676999975),
+UInt256(3335306005382967060, 14053195496650400135, 4197803775126349101, 15516106216773637873),
+UInt256(4169132506728708825, 17566494370813000169, 635568700480548473, 5560074715684883629),
+UInt256(2605707816705443016, 4061529954117043249, 11926445483868812555, 15004261743371522028),
+UInt256(3257134770881803770, 5076912442646304062, 1072998799553851982, 14143641160787014631),
+UInt256(4071418463602254712, 15569512590162655885, 10564620536297090786, 8456179414128992481),
+UInt256(2544636539751409195, 9730945368851659928, 8908730844399375693, 9896798152258008205),
+UInt256(3180795674689261494, 7551995692637187006, 11135913555499219616, 16982683708749898160),
+UInt256(3975994593361576868, 216622578941707950, 4696519907519248713, 2781610562227821084),
+UInt256(2484996620850985542, 9358761148693343276, 16770382997481694157, 13267721647460857937),
+UInt256(3106245776063731928, 2475079399011903288, 2516234673142566081, 2749594004043908710),
+UInt256(3882807220079664910, 3093849248764879110, 3145293341428207601, 8048678523482273791),
+UInt256(2426754512549790568, 15768713835760213155, 15800866393674793462, 16559639123244890880),
+UInt256(3033443140687238211, 1264148220990714828, 15139396973666103924, 11476176867201337791),
+UInt256(3791803925859047763, 15415243331520557248, 477502143373078289, 14345221084001672239),
+UInt256(2369877453661904852, 7328684072986654328, 298438839608173931, 2048234149859963294),
+UInt256(2962346817077381065, 9160855091233317910, 373048549510217413, 16395350742607117829),
+UInt256(3702933521346726331, 16062754882469035291, 9689682723742547575, 6659130372976733574),
+UInt256(2314333450841703957, 7733378792329453105, 3750208693125398282, 11079485510751540340),
+UInt256(2892916813552129946, 14278409508839204285, 9299446884834135757, 4625984851584649617),
+]
+
+private let bid_multipliers2_binary80_150: [UInt256] = [
+UInt256(3616146016940162433, 8624639849194229548, 16235994624470057600, 10394167082908199925),
+UInt256(4520182521175203041, 15392485829920174840, 1848249206878020384, 12992708853635249906),
+UInt256(2825114075734501901, 2702774616059027419, 1155155754298762740, 8120443033522031191),
+UInt256(3531392594668127376, 7990154288501172177, 15279002748155617137, 10150553791902538989),
+UInt256(4414240743335159220, 9987692860626465222, 5263695379912357709, 17299878258305561640),
+UInt256(2758900464584474512, 15465680074746316571, 17124867667727387280, 13118266920654669977),
+UInt256(3448625580730593141, 885356019723344098, 16794398566231846196, 16397833650818337472),
+UInt256(4310781975913241426, 5718381043081568027, 11769626170935031938, 2050547989813370223),
+UInt256(2694238734945775891, 8185674170353367921, 5050173347620701009, 5893278512060744294),
+UInt256(3367798418682219864, 5620406694514321997, 10924402702953264165, 11978284158503318271),
+UInt256(4209748023352774830, 7025508368142902496, 18267189397118968111, 1137797142846984127),
+UInt256(2631092514595484268, 18226000785371477772, 11416993373199355069, 7628652241920446935),
+UInt256(3288865643244355336, 4335756908004795599, 14271241716499193836, 14147501320827946573),
+UInt256(4111082054055444170, 5419696135005994499, 13227366127196604391, 17684376651034933216),
+UInt256(2569426283784652606, 7998996102806134466, 5961260820284183792, 17970264434537915116),
+UInt256(3211782854730815758, 775373091652892274, 16674948062210005549, 4016086469462842279),
+UInt256(4014728568413519697, 10192588401420891151, 11620313040907731128, 9631794105255940753),
+UInt256(2509205355258449810, 17899582796956526729, 14180224678208413811, 6019871315784962971),
+UInt256(3136506694073062263, 13151106459340882604, 3890222792478353552, 2913153126303815809),
+UInt256(3920633367591327829, 11827197055748715351, 4862778490597941940, 3641441407879769762),
+UInt256(2450395854744579893, 9697841169056641046, 9956765584264795568, 11499272916779631909),
+UInt256(3062994818430724866, 16733987479748189212, 3222584943476218652, 14374091145974539886),
+UInt256(3828743523038406083, 11694112312830460707, 4028231179345273315, 17967613932468174858),
+UInt256(2392964701899003802, 5002977186305343990, 211801477877101870, 8923915698578915334),
+UInt256(2991205877373754752, 15477093519736455795, 9488123884201153146, 1931522586368868360),
+UInt256(3739007346717193441, 899622825961018128, 7248468836824053528, 11637775269815861258),
+UInt256(2336879591698245900, 12091479312294106090, 4530293023015033455, 7273609543634913286),
+UInt256(2921099489622807375, 15114349140367632612, 14886238315623567627, 4480325911116253704),
+UInt256(3651374362028509219, 14281250407032152862, 161053820819907918, 988721370467929225),
+UInt256(4564217952535636524, 13239876990362803173, 9424689312879660705, 10459273749939687340),
+UInt256(2852636220334772827, 17498295155831527791, 8196273829763481892, 18066261139780774347),
+UInt256(3565795275418466034, 17261182926362021835, 5633656268776964462, 4136082351016416318),
+UInt256(4457244094273082543, 12353106621097751486, 2430384317543817673, 14393474975625296206),
+UInt256(2785777558920676589, 14638220665827176534, 15354048253747049758, 2078392832124728273),
+UInt256(3482221948650845737, 4462717777001806956, 9969188280329036389, 11821363077010686149),
+UInt256(4352777435813557171, 10190083239679646599, 12461485350411295487, 941645790981193974),
+UInt256(2720485897383473232, 4062959015586085172, 14705957371648141535, 7506057647004328090),
+UInt256(3400607371729341540, 5078698769482606465, 18382446714560176919, 4770886040328022208),
+UInt256(4250759214661676925, 6348373461853258082, 9143000337918057437, 1351921531982639856),
+UInt256(2656724509163548078, 6273576422871980253, 10326061229626173802, 3150793966702843862),
+UInt256(3320905636454435097, 17065342565444751124, 17519262555460105156, 13161864495233330636),
+UInt256(4151132045568043872, 7496620151523775194, 3452334120615579829, 16452330619041663294),
+UInt256(2594457528480027420, 4685387594702359496, 6769394843812125297, 12588549646114733511),
+UInt256(3243071910600034275, 5856734493377949370, 8461743554765156622, 1900629002361253177),
+UInt256(4053839888250042844, 2709232098295048809, 1353807406601669969, 11599158289806342279),
+UInt256(2533649930156276777, 10916642098289181313, 12375344675194513491, 331944903487882069),
+UInt256(3167062412695345971, 18257488641288864546, 1634122788710978151, 14249989184642016298),
+UInt256(3958828015869182464, 18210174783183692778, 11266025522743498497, 13200800462375132468),
+UInt256(2474267509918239040, 11381359239489807986, 11652951970142074465, 1332971261343375937),
+UInt256(3092834387397798800, 14226699049362259983, 5342817925822817273, 6277900095106607825),
+]
+
+private let bid_multipliers2_binary80_151: [UInt256] = [
+UInt256(3866042984247248500, 17783373811702824979, 2066836388851133687, 12459061137310647685),
+UInt256(2416276865154530313, 1891236595459489803, 17432673807527816218, 14704442238460236659),
+UInt256(3020346081443162891, 6975731762751750158, 17179156240982382369, 9157180761220520016),
+UInt256(3775432601803953614, 4107978685012299794, 12250573264373202153, 16058161969953037924),
+UInt256(2359645376127471008, 16402544733414851083, 12268294308660639250, 3118822203579566846),
+UInt256(2949556720159338761, 2056436843059012238, 10723681867398411158, 13121899791329234366),
+UInt256(3686945900199173451, 7182232072251153202, 4181230297393238140, 7179002702306767149),
+UInt256(4608682375248966814, 4366104071886553598, 14449909908596323483, 8973753377883458936),
+UInt256(2880426484530604258, 16563873100211259711, 4419507674445314273, 3302752851963467883),
+UInt256(3600533105663255323, 11481469338409298831, 912698574629254937, 8740127083381722758),
+UInt256(4500666382079069154, 9740150654584235634, 14975931273568732383, 15536844872654541352),
+UInt256(2812916488799418221, 10699280177542535175, 13971643064407845643, 16628057073050170201),
+UInt256(3516145610999272776, 17985786240355556873, 12852867812082419150, 16173385322885324847),
+UInt256(4395182013749090971, 4035488726734894476, 2231026709820860226, 10993359616751880251),
+UInt256(2746988758593181857, 216337444995615095, 10617763730492813449, 11482535778897313061),
+UInt256(3433735948241477321, 4882107824671906773, 8660518644688628908, 518111668339477614),
+UInt256(4292169935301846651, 10714320799267271370, 15437334324288174039, 647639585424347017),
+UInt256(2682606209563654157, 4390607490328350654, 14260019971107496678, 7322303768531298742),
+UInt256(3353257761954567696, 10099945381337826222, 8601652927029595039, 18376251747518899235),
+UInt256(4191572202443209620, 12624931726672282778, 1528694121932217991, 18358628665971236140),
+UInt256(2619732626527006012, 17113954366024952544, 5567119844635024148, 18391671943873104444),
+UInt256(3274665783158757516, 2945698883821639064, 6958899805793780186, 4542845856131828939),
+UInt256(4093332228948446895, 3682123604777048830, 8698624757242225232, 14901929357019561981),
+UInt256(2558332643092779309, 9218856280626737375, 824954454849002866, 9313705848137226238),
+UInt256(3197915803865974136, 16135256369210809622, 14866251123843417295, 2418760273316756990),
+UInt256(3997394754832467671, 1722326387803960412, 9359441867949495810, 16858508396928109949),
+UInt256(2498371721770292294, 7993983020018557113, 15073023204323210689, 15148253766507456622),
+UInt256(3122964652212865368, 769106738168420584, 5006220950121849650, 5100259152852157066),
+UInt256(3903705815266081710, 961383422710525730, 6257776187652312062, 15598695977919972140),
+UInt256(2439816134541301068, 14435922694476242293, 8522796135710082943, 5137498967772594684),
+UInt256(3049770168176626335, 18044903368095302866, 15265181188064991583, 1810187691288355451),
+UInt256(3812212710220782919, 17944443191691740679, 9858104448226463670, 16097792669392608025),
+UInt256(2382632943887989324, 18132806022448419780, 13078844307782621650, 5449434399942992112),
+UInt256(2978291179859986656, 4219263454350973109, 16348555384728277062, 16035165036783515948),
+UInt256(3722863974824983320, 5274079317938716387, 6600636175628182616, 10820584259124619127),
+UInt256(2326789984265614575, 3296299573711697742, 1819554600553920183, 6762865161952886954),
+UInt256(2908487480332018218, 17955432522421785889, 11497815287547176037, 3841895434013720789),
+UInt256(3635609350415022773, 13220918616172456554, 537211054151806334, 9414055310944538890),
+UInt256(4544511688018778467, 2691090214933406980, 9894885854544533726, 2544197101825897804),
+UInt256(2840319805011736541, 17822832448829237026, 15407675695945109386, 15425181243923349840),
+UInt256(3550399756264670677, 8443482505754382571, 10036222583076610925, 10058104518049411492),
+UInt256(4437999695330838346, 15166039150620366118, 7933592210418375752, 17184316665989152268),
+UInt256(2773749809581773966, 14090460487565116728, 346809113084096941, 10740197916243220168),
+UInt256(3467187261977217458, 8389703572601620102, 433511391355121176, 18036933413731413114),
+UInt256(4333984077471521823, 1263757428897249319, 9765261276048677279, 4099422693454714776),
+UInt256(2708740048419701139, 7707377420701862680, 13020817325171505155, 9479668211050278591),
+UInt256(3385925060524626424, 5022535757449940446, 16276021656464381444, 7237899245385460335),
+UInt256(4232406325655783030, 6278169696812425558, 11121655033725700997, 9047374056731825419),
+UInt256(2645253953534864393, 17758914115789929686, 2339348377651175219, 7960451794671084839),
+UInt256(3306567441918580492, 8363584589455248395, 12147557508918744832, 5338878724911468144),
+]
+
+private let bid_multipliers2_binary80_152: [UInt256] = [
+UInt256(4133209302398225615, 10454480736819060494, 10572760867721043136, 6673598406139335180),
+UInt256(2583255813998891009, 13451579488152994665, 1996289523898264056, 4170999003837084488),
+UInt256(3229069767498613762, 2979416304909079619, 7107047923300217974, 5213748754796355610),
+UInt256(4036337209373267202, 12947642417991125332, 4272123885697884563, 15740557980350220320),
+UInt256(2522710755858292001, 12703962529671841236, 11893449465415953660, 7532005728505193748),
+UInt256(3153388444822865002, 2044895106807637833, 14866811831769942075, 9415007160631492185),
+UInt256(3941735556028581252, 11779490920364323100, 4748456734430263882, 7157072932361977327),
+UInt256(2463584722517863282, 16585553862082477745, 12191157495873690734, 9084856601153623734),
+UInt256(3079480903147329103, 11508570290748321374, 1403888814559949706, 2132698714587253859),
+UInt256(3849351128934161379, 9774026845008013813, 10978233055054712940, 11889245430088843132),
+UInt256(2405844455583850862, 3802923768916314681, 9167238668622889539, 16654150430660302766),
+UInt256(3007305569479813577, 13977026748000169159, 16070734354205999828, 16206002019897990553),
+UInt256(3759131961849766972, 3636225379718047737, 15476731924330111882, 1810758451162936575),
+UInt256(2349457476156104357, 11496012899178555644, 2755428425065238070, 5743410050404223263),
+UInt256(2936821845195130447, 534958068691030843, 3444285531331547587, 16402634599860054887),
+UInt256(3671027306493913058, 14503755641145952265, 18140414969446598196, 15891607231397680705),
+UInt256(4588784133117391323, 8906322514577664524, 8840460656526084034, 1417764965537549265),
+UInt256(2867990083198369577, 3260608562397346375, 14748659947183578329, 5497789121888356195),
+UInt256(3584987603997961971, 8687446721424070873, 13824138915552085007, 11483922420787833147),
+UInt256(4481234504997452464, 6247622383352700688, 3445115589157942547, 9743217007557403530),
+UInt256(2800771565623407790, 3904763989595437930, 2153197243223714092, 3783667620509683255),
+UInt256(3500964457029259737, 14104327023849073220, 11914868590884418423, 4729584525637104068),
+UInt256(4376205571286574672, 3795350724529177813, 14893585738605523029, 1300294638618992181),
+UInt256(2735128482054109170, 2372094202830736133, 11614334095842145845, 3118527158350564065),
+UInt256(3418910602567636462, 12188489790393195975, 682859564520518594, 8509844966365592985),
+UInt256(4273638253209545578, 6012240201136719160, 14688632510932811955, 1413934171102215424),
+UInt256(2671023908255965986, 8369336144137837379, 9180395319333007471, 17024609921434742304),
+UInt256(3338779885319957483, 1238298143317520916, 6863808130738871435, 16669076383366039976),
+UInt256(4173474856649946853, 15382930734429064857, 8579760163423589294, 16224659460780162066),
+UInt256(2608421785406216783, 11920174718231859487, 16891565148208213069, 5528726144560213387),
+UInt256(3260527231757770979, 10288532379362436455, 16502770416832878432, 11522593699127654638),
+UInt256(4075659039697213724, 8248979455775657665, 16016777002613710136, 14403242123909568297),
+UInt256(2547286899810758577, 14378984196714561849, 3092956598992486979, 9002026327443480186),
+UInt256(3184108624763448222, 4138672190611038599, 8477881767167996628, 6640846890876962328),
+UInt256(3980135780954310277, 14396712275118574057, 5985666190532607881, 8301058613596202910),
+UInt256(2487584863096443923, 11303788181162802737, 15270256415151349685, 16717376679566096579),
+UInt256(3109481078870554904, 9518049208026115518, 5252762463657023395, 7061662794175457012),
+UInt256(3886851348588193630, 11897561510032644397, 15789325116426055052, 4215392474291933361),
+UInt256(2429282092867621019, 2824289925343014844, 12174171206979978359, 11857992333287234159),
+UInt256(3036602616084526273, 17365420461960932267, 15217714008724972949, 10210804398181654794),
+UInt256(3795753270105657842, 7871717522169001622, 14410456492478828282, 17375191516154456396),
+UInt256(2372345793816036151, 9531509469783013918, 4394849289371879772, 15471180716023923152),
+UInt256(2965432242270045189, 7302700818801379493, 14716933648569625524, 892231821320352324),
+UInt256(3706790302837556486, 13740062041929112271, 4561109005429868193, 1115289776650440405),
+UInt256(2316743939273472804, 3975852757778307265, 9768222156034749476, 12226271156474995013),
+UInt256(2895929924091841005, 4969815947222884081, 16821963713470824749, 15282838945593743766),
+UInt256(3619912405114801256, 10823955952455993006, 7192396586556367225, 5268490626710015996),
+UInt256(4524890506393501570, 13529944940569991257, 18213867770050234839, 11197299301814907899),
+UInt256(2828056566495938481, 13067901606283632440, 4466138328640314918, 13915841091275399293),
+UInt256(3535070708119923102, 2499818952572376838, 5582672910800393648, 8171429327239473308),
+]
+
+private let bid_multipliers2_binary80_153: [UInt256] = [
+UInt256(4418838385149903877, 12348145727570246855, 16201713175355267868, 10214286659049341635),
+UInt256(2761773990718689923, 10023434088945098236, 17043599762238124273, 15607301198760614330),
+UInt256(3452217488398362404, 7917606592753984892, 2857755629088103726, 5674068443168604200),
+UInt256(4315271860497953005, 9897008240942481115, 3572194536360129657, 16315957590815531058),
+UInt256(2697044912811220628, 8491473159802744648, 18373522649720938700, 3279944466618625056),
+UInt256(3371306141014025785, 10614341449753430811, 4520159238441621759, 4099930583273281319),
+UInt256(4214132676267532231, 17879612830619176418, 1038513029624639295, 513227210664213745),
+UInt256(2633832922667207644, 18092287046778067117, 5260756661942787463, 7238296034306215447),
+UInt256(3292291153334009556, 4168614734763032280, 11187631845855872233, 4436184024455381404),
+UInt256(4115363941667511945, 5210768418453790350, 13984539807319840291, 10156916048996614659),
+UInt256(2572102463542194965, 14785945307602088729, 4128651361147512278, 4042229521409190210),
+UInt256(3215128079427743707, 4647373579220447199, 9772500219861778251, 14276158938616263571),
+UInt256(4018910099284679634, 1197530955598171095, 7603939256399834910, 13233512654842941559),
+UInt256(2511818812052924771, 5360142865676244838, 11669991062890978675, 3659259390849450571),
+UInt256(3139773515066155964, 2088492563667918144, 5364116791758947535, 18409132293843976925),
+UInt256(3924716893832694955, 2610615704584897680, 6705145989698684419, 18399729348877583252),
+UInt256(2452948058645434346, 17772535879861418714, 4190716243561677762, 9193987833834795581),
+UInt256(3066185073306792933, 12992297812971997584, 14461767341306873011, 2269112755438718668),
+UInt256(3832731341633491167, 2405314210932833268, 18077209176633591263, 16671448999580562047),
+UInt256(2395457088520931979, 8420850409474102649, 2074883698541218731, 17337184652378933136),
+UInt256(2994321360651164974, 5914376993415240407, 7205290641603911318, 17059794797046278515),
+UInt256(3742901700813956217, 16616343278623826317, 4394927283577501244, 12101371459453072336),
+UInt256(2339313563008722636, 3467685521498809592, 5052672561449632229, 16786729199012946018),
+UInt256(2924141953760903295, 4334606901873511990, 6315840701812040287, 7148353443484018811),
+UInt256(3655177442201129119, 806572608914502083, 17118172914119826167, 4323755785927635609),
+UInt256(4568971802751411398, 14843273816425291316, 16786030124222394805, 793008713982156607),
+UInt256(2855607376719632124, 4665360116838419169, 1267896790784220945, 2801473455452541832),
+UInt256(3569509220899540155, 5831700146048023961, 6196557006907664085, 8113527837743065194),
+UInt256(4461886526124425194, 2677939164132642047, 12357382277061968010, 14753595815606219396),
+UInt256(2788679078827765746, 6285397996010289183, 14640892950804811862, 13832683403181275027),
+UInt256(3485848848534707182, 17080119531867637287, 13689430170078626924, 8067482217121817975),
+UInt256(4357311060668383978, 12126777377979770801, 12500101694170895751, 10084352771402272469),
+UInt256(2723319412917739986, 12190921879664744655, 895034531215727988, 13220249509767502149),
+UInt256(3404149266147174983, 6015280312726155010, 14953851219301823697, 16525311887209377686),
+UInt256(4255186582683968729, 2907414372480305859, 9468941987272503814, 6821581803729558396),
+UInt256(2659491614177480455, 13346349028868660922, 3612245732831620931, 18098546682613137710),
+UInt256(3324364517721850569, 12071250267658438248, 13738679202894301972, 18011497334839034233),
+UInt256(4155455647152313212, 1254004779290884098, 17173349003617877466, 4067627594839241175),
+UInt256(2597159779470195757, 10007125023911578369, 15345029145688561320, 7153953265201913639),
+UInt256(3246449724337744696, 17120592298316860866, 5346228376828537938, 8942441581502392048),
+UInt256(4058062155422180871, 2953996299186524466, 15906157507890448231, 1954679940023214252),
+UInt256(2536288847138863044, 8763776714632659647, 14553034460858918048, 8139203990155590764),
+UInt256(3170361058923578805, 10954720893290824559, 13579607057646259656, 10174004987694488454),
+UInt256(3962951323654473506, 18305087135040918603, 12362822803630436666, 12717506234618110568),
+UInt256(2476844577284045941, 16052365477827962031, 5420921243055328964, 12560127415063707009),
+UInt256(3096055721605057427, 6230398792002788827, 2164465535391773301, 15700159268829633761),
+UInt256(3870069652006321784, 3176312471576098129, 16540639974521880339, 5790141030754878489),
+UInt256(2418793532503951115, 1985195294735061331, 3420370956435093356, 1312995135008105104),
+UInt256(3023491915629938893, 16316552173700990375, 18110521750826030407, 1641243918760131380),
+UInt256(3779364894537423617, 6560632161844074257, 18026466170105150104, 15886612953732327937),
+]
+
+private let bid_multipliers2_binary80_154: [UInt256] = [
+UInt256(2362103059085889760, 15629610147221016171, 4349012328674636959, 9929133096082704961),
+UInt256(2952628823857362201, 1090268610316718598, 824579392415908295, 7799730351675993297),
+UInt256(3690786029821702751, 5974521781323286151, 10254096277374661177, 5137976921167603717),
+UInt256(2306741268638564219, 10651605140968135700, 13326339201000245091, 14740450621798222083),
+UInt256(2883426585798205274, 8702820407782781721, 16657924001250306364, 13813877258820389700),
+UInt256(3604283232247756593, 1655153472873701344, 6987346946280719243, 17267346573525487125),
+UInt256(4505354040309695741, 6680627859519514584, 8734183682850899054, 16972497198479471002),
+UInt256(2815846275193559838, 6481235421413390567, 5458864801781811909, 5996124730622281472),
+UInt256(3519807843991949797, 17324916313621514017, 2211894983799876982, 12106841931705239744),
+UInt256(4399759804989937247, 7821087336744728809, 7376554748177234132, 5910180377776773872),
+UInt256(2749849878118710779, 11805708613106537361, 16139561763679241092, 12917234772965259478),
+UInt256(3437312347648388474, 10145449747955783798, 6339394149316887653, 16146543466206574348),
+UInt256(4296640434560485593, 3458440148089953939, 17147614723500885375, 6348121277476054223),
+UInt256(2685400271600303495, 13690740138624690972, 8411416192974359407, 10885104826063615745),
+UInt256(3356750339500379369, 12501739154853475811, 10514270241217949259, 8994695014152131778),
+UInt256(4195937924375474212, 1792115888284681052, 8531151783095048670, 6631682749262776818),
+UInt256(2622461202734671382, 10343444467032701465, 14555341901289181226, 17979859773571399223),
+UInt256(3278076503418339228, 3705933546936101024, 4359119321329312821, 13251452680109473221),
+UInt256(4097595629272924035, 4632416933670126280, 5448899151661641027, 2729257794854677814),
+UInt256(2560997268295577522, 589417574330134973, 3405561969788525641, 17846687186280031298),
+UInt256(3201246585369471902, 9960144004767444524, 8868638480663044956, 8473300927567875410),
+UInt256(4001558231711839878, 3226807969104529847, 11085798100828806195, 10591626159459844263),
+UInt256(2500973894819899923, 15851813035972494866, 13846152840659085728, 4313923340448708712),
+UInt256(3126217368524874904, 15203080276538230679, 8084319013969081352, 5392404175560885890),
+UInt256(3907771710656093631, 557106271963236733, 5493712749033963786, 6740505219451107363),
+UInt256(2442357319160058519, 7265720447618104814, 5739413477359921318, 8824501780584330006),
+UInt256(3052946648950073149, 4470464541095243113, 16397638883554677456, 1807255188875636699),
+UInt256(3816183311187591436, 10199766694796441796, 6661990549161183108, 2259068986094545874),
+UInt256(2385114569492244647, 15598226221102551930, 13387116130080515250, 10635290153163866980),
+UInt256(2981393211865305809, 14886096757950802009, 7510523125745868255, 4070740654600057916),
+UInt256(3726741514831632262, 4772562892156338799, 13999839925609723223, 476739799822684491),
+UInt256(2329213446769770163, 16817909862879875461, 15667428981147158870, 7215491402530259663),
+UInt256(2911516808462212704, 16410701310172456423, 5749228171151784875, 18242736290017600387),
+UInt256(3639396010577765881, 2066632564006018913, 2574849195512343190, 18191734344094612580),
+UInt256(4549245013222207351, 7194976723434911545, 7830247512817816892, 13516295893263489916),
+UInt256(2843278133263879594, 11414389479787901571, 16423119741579605317, 17671056970144457006),
+UInt256(3554097666579849493, 5044614812880101156, 15917213658547118743, 8253763157398407545),
+UInt256(4442622083224811866, 10917454534527514350, 1449772999474346813, 5705517928320621527),
+UInt256(2776638802015507416, 11435095102507084372, 14741166179953630470, 5871791714414082407),
+UInt256(3470798502519384270, 14293868878133855465, 18426457724942038087, 16563111679872378816),
+UInt256(4338498128149230338, 8643964060812543524, 9198014100895383897, 16092203581413085616),
+UInt256(2711561330093268961, 10014163556435227606, 14972130849914390744, 3140098210742096654),
+UInt256(3389451662616586201, 17129390463971422412, 9491791525538212622, 3925122763427620818),
+UInt256(4236814578270732752, 7576680024682114303, 11864739406922765777, 14129775491139301830),
+UInt256(2648009111419207970, 4735425015426321439, 14332991156967810467, 1913580654320981788),
+UInt256(3310011389274009962, 15142653306137677607, 13304552927782375179, 16227033873183390947),
+UInt256(4137514236592512453, 9704944595817321201, 12019005141300581070, 15672106323051850780),
+UInt256(2585946397870320283, 8371433381599519703, 594349185671781313, 5183380433480018833),
+UInt256(3232432997337900354, 5852605708572011724, 14577994537371890353, 11090911560277411446),
+UInt256(4040541246672375442, 16539129172569790463, 18222493171714862942, 28581395064600595),
+]
+
+private let bid_multipliers2_binary80_155: [UInt256] = [
+UInt256(2525338279170234651, 14948641751283506943, 18306587259962871194, 13852921427197539084),
+UInt256(3156672848962793314, 14074116170676995775, 18271548056526201089, 8092779747142148047),
+UInt256(3945841061203491643, 8369273176491468911, 18227749052230363457, 14727660702355072963),
+UInt256(2466150663252182277, 2924952726093474117, 18309872185285059017, 2287258911330838746),
+UInt256(3082688329065227846, 8267876926044230551, 9052282176324160059, 7470759657590936336),
+UInt256(3853360411331534808, 1111474120700512381, 6703666701977812170, 4726763553561282516),
+UInt256(2408350257082209255, 694671325437820238, 6495634697949826558, 7565913239403189477),
+UInt256(3010437821352761568, 14703397212079439009, 17342915409292059006, 234019512399211038),
+UInt256(3763047276690951960, 18379246515099298762, 7843586206332910045, 9515896427353789605),
+UInt256(2351904547931844975, 11487029071937061726, 9513927397385456682, 8253278276309812455),
+UInt256(2939880684914806219, 9747100321493939254, 2669037209877045045, 1093225808532489761),
+UInt256(3674850856143507774, 7572189383440036163, 12559668549201082114, 5978218279093000105),
+UInt256(4593563570179384718, 241864692445269396, 11087899668073964738, 16696144885721025939),
+UInt256(2870977231362115448, 13986223488060457084, 16153309329401003769, 15046776572003029116),
+UInt256(3588721539202644310, 17482779360075571356, 1744892588041703096, 4973412659721622683),
+UInt256(4485901924003305388, 12630102163239688387, 2181115735052128870, 6216765824652028354),
+UInt256(2803688702502065867, 17117185888879581049, 17504098398903438207, 17720536695689681433),
+UInt256(3504610878127582334, 16784796342672088408, 8045064943347134047, 17538984851184713888),
+UInt256(4380763597659477918, 11757623391485334702, 10056331179183917559, 17312045045553504455),
+UInt256(2737977248537173699, 2736828601250946285, 1673520968562560570, 17737557181112022141),
+UInt256(3422471560671467123, 17256093806845846568, 6703587229130588617, 12948574439535251868),
+UInt256(4278089450839333904, 16958431240129920306, 8379484036413235772, 2350659994136901123),
+UInt256(2673805906774583690, 10599019525081200191, 9848863541185660261, 10692534533190339010),
+UInt256(3342257383468229613, 4025402369496724431, 7699393408054687422, 17977354184915311666),
+UInt256(4177821729335287016, 9643438980298293443, 5012555741640971374, 13248320694289363775),
+UInt256(2611138580834554385, 6027149362686433402, 827004329311913157, 3668514415503464455),
+UInt256(3263923226043192981, 12145622721785429656, 10257127448494667254, 9197329037806718473),
+UInt256(4079904032553991227, 1346970346949623358, 12821409310618334068, 2273289260403622283),
+UInt256(2549940020346244516, 16982757531339372263, 3401694800709070888, 10644177824607039735),
+UInt256(3187425025432805646, 2781702840464663712, 18087176556168502322, 13305222280758799669),
+UInt256(3984281281791007057, 12700500587435605449, 4162226621501076287, 7408155814093723778),
+UInt256(2490175801119379411, 1020283839506171549, 14130606684506642439, 11547626411449659217),
+UInt256(3112719751399224263, 15110412854664878149, 3828200300351139337, 9822846995884686118),
+UInt256(3890899689249030329, 14276330049903709782, 9396936393866312075, 16890244763283245551),
+UInt256(2431812305780643956, 2005177253548736758, 1261399227739057143, 8250559967838334517),
+UInt256(3039765382225804945, 2506471566935920947, 10800121071528597237, 5701513941370530243),
+UInt256(3799706727782256181, 7744775477097289088, 8888465320983358642, 11738578445140550707),
+UInt256(2374816704863910113, 7146327682399499632, 5555290825614599151, 11948297546640232096),
+UInt256(2968520881079887641, 13544595621426762444, 6944113532018248939, 10323685914872902216),
+UInt256(3710651101349859552, 3095686471501289343, 8680141915022811174, 8292921375163739866),
+UInt256(2319156938343662220, 1934804044688305839, 12342617724530338840, 571389841049949513),
+UInt256(2898946172929577775, 2418505055860382299, 10816586137235535646, 714237301312436891),
+UInt256(3623682716161972218, 16858189375107641586, 8909046653117031653, 10116168663495321921),
+UInt256(4529603395202465273, 11849364682029776175, 1912936279541513758, 17256896847796540305),
+UInt256(2831002122001540796, 488323898627528253, 8113114202354527955, 6173874511445449787),
+UInt256(3538752652501925995, 610404873284410316, 14753078771370547848, 3105657120879424329),
+UInt256(4423440815627407493, 14598064146887676607, 18441348464213184810, 3882071401099280412),
+UInt256(2764650509767129683, 11429633101018491831, 18443371817774322362, 7037980644114438162),
+UInt256(3455813137208912104, 9675355357845726885, 18442528753790515048, 18020847841997823510),
+UInt256(4319766421511140130, 12094194197307158607, 9218102886955980099, 4079315728787727771),
+]
+
+private let bid_multipliers2_binary80_156: [UInt256] = [
+UInt256(2699854013444462581, 12170557391744362033, 12678843331988569418, 243729321278635905),
+UInt256(3374817516805578227, 1378138684398288830, 2013496109703548060, 9528033688453070689),
+UInt256(4218521896006972783, 15557731410780024749, 11740242173984210883, 11910042110566338361),
+UInt256(2636576185004357989, 16641111159378597324, 9643494367953825754, 5137933309890267524),
+UInt256(3295720231255447487, 6966330893941082943, 12054367959942282192, 15645788674217610213),
+UInt256(4119650289069309359, 4096227598998965775, 10456273931500464837, 1110491769062461150),
+UInt256(2574781430668318349, 9477671277015435465, 13452700234828872379, 2999900364877732171),
+UInt256(3218476788335397936, 16458775114696682236, 2980817238253926761, 17584933511379328926),
+UInt256(4023095985419247421, 2126724819661301179, 3726021547817408452, 8146108833941997445),
+UInt256(2514434990887029638, 3635046021502007189, 22920458172186330, 14314690058068524211),
+UInt256(3143043738608787047, 13767179563732284794, 4640336591142620817, 8669990535730879456),
+UInt256(3928804673260983809, 12597288436237968088, 15023792775783051829, 15449174188090987224),
+UInt256(2455502920788114881, 955776245007648199, 9389870484864407393, 11961576876770560967),
+UInt256(3069378650985143601, 5806406324686948153, 7125652087653121338, 1116913040681037497),
+UInt256(3836723313731429501, 11869693924286073095, 13518751127993789576, 10619513337706072679),
+UInt256(2397952071082143438, 9724401711892489636, 15366748482637200341, 6637195836066295424),
+UInt256(2997440088852679298, 2932130103010836238, 761691529586948810, 12908180813510257184),
+UInt256(3746800111065849122, 12888534665618321105, 10175486448838461821, 6911853980033045672),
+UInt256(2341750069416155701, 12667020184438838594, 17888894076592508398, 6625751746734347497),
+UInt256(2927187586770194627, 1998717175266384531, 13137745558885859689, 17505561720272710180),
+UInt256(3658984483462743283, 16333454524365144376, 11810495930179936708, 8046894095058724012),
+UInt256(4573730604328429104, 15805132137029042566, 14763119912724920885, 10058617618823405015),
+UInt256(2858581627705268190, 9878207585643151604, 4615263927025687649, 8592479020978322087),
+UInt256(3573227034631585238, 3124387445199163697, 5769079908782109561, 15352284794650290512),
+UInt256(4466533793289481547, 13128856343353730429, 11823035904405024856, 5355297938030699428),
+UInt256(2791583620805925967, 5899692205382387566, 9695240449466834487, 3347061211269187143),
+UInt256(3489479526007407459, 2762929238300596554, 2895678524978767300, 18018884569368647641),
+UInt256(4361849407509259323, 17288719603157909404, 12842970193078234934, 4076861638001257935),
+UInt256(2726155879693287077, 8499606742759999425, 17250228407528672641, 16383096579032949921),
+UInt256(3407694849616608846, 15236194446877387186, 7727727454128677090, 6643812668509023689),
+UInt256(4259618562020761058, 9821871021741958175, 436287280806070554, 17528137872491055420),
+UInt256(2662261601262975661, 10750355407016111763, 7190208578144875952, 15566772188734297542),
+UInt256(3327827001578719576, 18049630277197527608, 4376074704253707037, 1011721162208320311),
+UInt256(4159783751973399471, 4115293772787357894, 5470093380317133796, 5876337471187788292),
+UInt256(2599864844983374669, 9489587635633180539, 17253866417980372334, 12896082956347143491),
+UInt256(3249831056229218336, 16473670562968863578, 16955647004048077514, 6896731658579153556),
+UInt256(4062288820286522921, 2145344130001527857, 11971186718205321084, 17844286610078717752),
+UInt256(2538930512679076825, 12870055127319424671, 564462671237243822, 1929307094444422787),
+UInt256(3173663140848846032, 2252510853867117126, 14540636394328718489, 11635005904910304292),
+UInt256(3967078926061057540, 2815638567333896408, 8952423456056122304, 708699325855716653),
+UInt256(2479424328788160962, 10983146141438461063, 5595264660035076440, 442937078659822908),
+UInt256(3099280410985201203, 4505560639943300521, 2382394806616457646, 553671348324778635),
+UInt256(3874100513731501504, 1020264781501737747, 7589679526697959961, 9915461222260749102),
+UInt256(2421312821082188440, 637665488438586092, 2437706694972531023, 17726378309981437949),
+UInt256(3026641026352735550, 797081860548232615, 3047133368715663779, 17546286869049409532),
+UInt256(3783301282940919437, 10219724362540066576, 17643974766176743436, 17321172567884374011),
+UInt256(2364563301838074648, 8693170735801235562, 11027484228860464648, 1602360818072957949),
+UInt256(2955704127297593310, 10866463419751544453, 4560983249220805002, 2002951022591197436),
+UInt256(3694630159121991638, 4359707237834654758, 10312915079953394156, 11727060815093772603),
+UInt256(2309143849451244773, 16559875078928822936, 1833885906543483443, 16552785046288383685),
+]
+
+private let bid_multipliers2_binary80_157: [UInt256] = [
+UInt256(2886429811814055967, 6864785793378864958, 2292357383179354304, 16079295289433091702),
+UInt256(3608037264767569959, 3969296223296193293, 12088818765828968689, 1652375038081813012),
+UInt256(4510046580959462449, 349934260692853713, 1275965402004047149, 6677154816029654168),
+UInt256(2818779113099664030, 11747923959001503330, 12326693422320999228, 6479064769232227807),
+UInt256(3523473891374580038, 5461532911897103355, 6184994741046473227, 8098830961540284759),
+UInt256(4404342364218225047, 16050288176726155002, 3119557407880703630, 5511852683497968045),
+UInt256(2752713977636390654, 16948959138094928732, 6561409398352827672, 17279965982468393740),
+UInt256(3440892472045488318, 11962826885763885107, 8201761747941034591, 3153213404375940559),
+UInt256(4301115590056860398, 5730161570350080576, 5640516166498905334, 17776574810752089411),
+UInt256(2688197243785537748, 17416409036750964072, 3525322604061815834, 6498673238292667978),
+UInt256(3360246554731922186, 3323767222229153474, 4406653255077269792, 17346713584720610780),
+UInt256(4200308193414902732, 13378081064641217650, 14731688605701363049, 3236647907191211859),
+UInt256(2625192620884314207, 17584672702255536839, 13818991396990739809, 13552119988062977172),
+UInt256(3281490776105392759, 17369154859392033145, 12662053227811036858, 3105091929796557753),
+UInt256(4101863470131740949, 17099757555812653528, 1992508479481632360, 13104736949100472999),
+UInt256(2563664668832338093, 12993191481596602407, 1245317799676020225, 8190460593187795625),
+UInt256(3204580836040422617, 2406431296713589296, 15391705304877188993, 14849761759912132435),
+UInt256(4005726045050528271, 7619725139319374525, 792887557386934626, 4727144144608001831),
+UInt256(2503578778156580169, 11679857239715690934, 2801397732580528093, 7566151108807389049),
+UInt256(3129473472695725212, 764763494362449955, 12725119202580435924, 14069374904436624215),
+UInt256(3911841840869656515, 955954367953062444, 11294712984798157001, 17586718630545780268),
+UInt256(2444901150543535321, 16738372544466521691, 16282567652353623934, 4074170116450030812),
+UInt256(3056126438179419152, 7087907625300988402, 15741523547014642013, 14316084682417314323),
+UInt256(3820158047724273940, 8859884531626235503, 10453532396913526709, 4060047797739479191),
+UInt256(2387598779827671212, 14760799869121172997, 13450986775712036049, 4843372882800868447),
+UInt256(2984498474784589016, 4255762691914631, 2978675414357881349, 10665902121928473462),
+UInt256(3730623093480736270, 5319703364893288, 17558402323229515398, 17944063670837979732),
+UInt256(2331639433425460168, 13838382869885222017, 10974001452018447124, 6603353775846349429),
+UInt256(2914549291781825210, 17297978587356527521, 18329187833450446809, 8254192219807936786),
+UInt256(3643186614727281513, 12399101197340883594, 9076426736530894799, 14929426293187308886),
+UInt256(4553983268409101892, 1663818441393940781, 2122161383808842691, 14050096848056748203),
+UInt256(2846239542755688682, 10263258562725988796, 3632193874094220634, 6475467520821773675),
+UInt256(3557799428444610853, 3605701166552710187, 4540242342617775792, 17317706437881992902),
+UInt256(4447249285555763566, 9118812476618275638, 1063616909844831837, 3200388973642939511),
+UInt256(2779530803472352229, 1087571779459034369, 14499818623935183610, 4306086117740531147),
+UInt256(3474413504340440286, 5971150742751180866, 4289715224636815800, 14605979684030439741),
+UInt256(4343016880425550357, 16687310465293751890, 14585516067650795558, 18257474605038049677),
+UInt256(2714385550265968973, 12735412050022288883, 13727633560709135128, 6799235609721393144),
+UInt256(3392981937832461217, 2084207007245697392, 12547855932459031006, 8499044512151741430),
+UInt256(4241227422290576521, 7216944777484509644, 15684819915573788758, 1400433603334900979),
+UInt256(2650767138931610325, 16039805531996288288, 579640410378842165, 14710329057366476824),
+UInt256(3313458923664512907, 6214698859713196648, 724550512973552707, 4552853266425932318),
+UInt256(4141823654580641134, 3156687556214107906, 905688141216940884, 1079380564605027494),
+UInt256(2588639784112900708, 15807987777915981153, 5177741106687975956, 9897984889732917992),
+UInt256(3235799730141125886, 1313240648685424825, 11083862401787357849, 12372481112166147489),
+UInt256(4044749662676407357, 10864922847711556840, 19769946952033600, 1630543334925520650),
+UInt256(2527968539172754598, 9096419789033416977, 12356216845021000, 1019089584328450406),
+UInt256(3159960673965943248, 2147152699436995413, 4627131289483664154, 1273861980410563008),
+UInt256(3949950842457429060, 2683940874296244266, 10395600130281968096, 10815699512367979567),
+UInt256(2468719276535893162, 10900835083289928474, 11108936099853617964, 6759812195229987230),
+]
+
+private let bid_multipliers2_binary80_158: [UInt256] = [
+UInt256(3085899095669866453, 4402671817257634785, 4662798087962246647, 8449765244037484037),
+UInt256(3857373869587333066, 10115025789999431385, 10440183628380196213, 5950520536619467142),
+UInt256(2410858668492083166, 10933577137177032519, 18054329813806092393, 6024918344600860916),
+UInt256(3013573335615103958, 4443599384616514841, 17956226248830227587, 12142833949178464049),
+UInt256(3766966669518879947, 14777871267625419360, 8610224755755620772, 10566856418045692157),
+UInt256(2354354168449299967, 6930326533052193148, 5381390472347262982, 15827657298133333406),
+UInt256(2942942710561624959, 4051222147887853531, 6726738090434078728, 10561199585811890950),
+UInt256(3678678388202031199, 452341666432429010, 3796736594615210506, 13201499482264863687),
+UInt256(4598347985252538998, 14400485138322699974, 13969292780123788941, 7278502315976303801),
+UInt256(2873967490782836874, 4388617193024299580, 4119121969149980184, 6854906956698883828),
+UInt256(3592459363478546092, 14709143528135150283, 5148902461437475230, 8568633695873604785),
+UInt256(4490574204348182615, 18386429410168937854, 1824442058369456134, 1487420082987230173),
+UInt256(2806608877717614134, 18409047408996668014, 14975334341763073795, 14764695607149182570),
+UInt256(3508261097147017668, 13787937224391059210, 9495795890349066436, 13844183490509090309),
+UInt256(4385326371433772085, 17234921530488824013, 2646372826081557237, 17305229363136362886),
+UInt256(2740828982146107553, 13077668965769208960, 3959826025514667225, 13121611361173920756),
+UInt256(3426036227682634442, 2512028151929347488, 4949782531893334032, 2566956146185237232),
+UInt256(4282545284603293052, 12363407226766460168, 6187228164866667540, 3208695182731546540),
+UInt256(2676590802877058157, 16950501553583813413, 3867017603041667212, 11228806526061992396),
+UInt256(3345738503596322697, 7353068886697603054, 9445458022229471919, 14036008157577490495),
+UInt256(4182173129495403371, 13803022126799391722, 2583450490932064091, 12933324178544475214),
+UInt256(2613858205934627107, 6321045820035925874, 6226342575259927961, 5777484602376603057),
+UInt256(3267322757418283884, 3289621256617519438, 17006300255929685759, 11833541771398141725),
+UInt256(4084153446772854855, 4112026570771899298, 12034503283057331391, 10180241195820289253),
+UInt256(2552595904233034284, 9487545634373518917, 12133250570338220023, 13280179775028762639),
+UInt256(3190744880291292855, 11859432042966898647, 1331505157640611317, 11988538700358565395),
+UInt256(3988431100364116069, 10212604035281235404, 15499439502332927859, 1150615320166043031),
+UInt256(2492769437727572543, 8688720531264466080, 463777652103304103, 16860035639599634559),
+UInt256(3115961797159465679, 6249214645653194696, 579722065129130129, 16463358531072155294),
+UInt256(3894952246449332099, 3199832288639105466, 724652581411412662, 6744140108558030406),
+UInt256(2434345154030832561, 18140796244895298580, 5064593881809520817, 18050145623130932716),
+UInt256(3042931442538540702, 8840937250836959513, 6330742352261901022, 8727623973631502183),
+UInt256(3803664303173175878, 1827799526691423583, 12525113958754764182, 1686157930184601920),
+UInt256(2377290189483234923, 14977432759464303451, 14745725251862809469, 14888906761647539912),
+UInt256(2971612736854043654, 14110104930902991410, 13820470546401123933, 4776075396777261178),
+UInt256(3714515921067554568, 8414259126773963455, 8052216146146629108, 10581780264398964377),
+UInt256(2321572450667221605, 5258911954233727159, 11950164118982725048, 15836984702104128544),
+UInt256(2901965563334027006, 11185325961219546853, 10326019130301018407, 1349486803920609063),
+UInt256(3627456954167533758, 4758285414669657758, 17519209931303660912, 15521916560182925041),
+UInt256(4534321192709417197, 15171228805191848006, 12675640377274800333, 955651626519104685),
+UInt256(2833950745443385748, 11787861012458598956, 3310589217369362304, 2903125275788134380),
+UInt256(3542438431804232185, 14734826265573248695, 4138236521711702880, 3628906594735167975),
+UInt256(4428048039755290232, 4583474776684397157, 561109633712240696, 4536133243418959969),
+UInt256(2767530024847056395, 2864671735427748223, 2656536530283844387, 2835083277136849981),
+UInt256(3459412531058820493, 17415897724566848990, 17155728718136969195, 17378912151703226188),
+UInt256(4324265663823525617, 7934814100426397526, 12221288860816435686, 17111954171201644831),
+UInt256(2702666039889703510, 16488473858834968214, 3026619519582884400, 6083285338573640115),
+UInt256(3378332549862129388, 11387220286688934459, 13006646436333381308, 7604106673217050144),
+UInt256(4222915687327661735, 14234025358361168074, 11646622026989338731, 9505133341521312680),
+UInt256(2639322304579788584, 15813794876616811902, 11890824785295724611, 3634865329237126473),
+]
+
+private let bid_multipliers2_binary80_159: [UInt256] = [
+UInt256(3299152880724735731, 1320499522061463262, 5640158944764879955, 18378639716828571803),
+UInt256(4123941100905919663, 15485682457858992789, 16273570717810875752, 18361613627608326850),
+UInt256(2577463188066199789, 16596080563802952349, 12476824707845491297, 11476008517255204282),
+UInt256(3221828985082749737, 6910042649471526725, 1760972829524700410, 509952591286841640),
+UInt256(4027286231353437171, 13249239330266796310, 6812902055333263416, 9860812775963327858),
+UInt256(2517053894595898232, 5974931572203053741, 18093121839865453347, 6163007984977079911),
+UInt256(3146317368244872790, 7468664465253817177, 8781344244549652972, 3092073962793961985),
+UInt256(3932896710306090988, 112458544712495663, 15588366324114454119, 3865092453492452481),
+UInt256(2458060443941306867, 9293658627300085597, 16660257980212615680, 9333211811073864657),
+UInt256(3072575554926633584, 7005387265697719093, 6990264419983605888, 11666514763842330821),
+UInt256(3840719443658291980, 8756734082122148866, 13349516543406895264, 14583143454802913526),
+UInt256(2400449652286432487, 14696330838181118849, 12955133858056697444, 9114464659251820954),
+UInt256(3000562065358040609, 13758727529299010658, 2358859267288708093, 11393080824064776192),
+UInt256(3750702581697550762, 3363351356341599610, 12171946120965660925, 406292974798806528),
+UInt256(2344189113560969226, 6713780616140887660, 12219152344030925982, 2559776118462948032),
+UInt256(2930236391951211532, 17615597807030885383, 15273940430038657477, 12423092184933460848),
+UInt256(3662795489939014416, 3572753185079055113, 14480739519120933943, 1693807175884662348),
+UInt256(4578494362423768020, 4465941481348818892, 4265866343619003716, 15952317025137991647),
+UInt256(2861558976514855012, 12014585462697787615, 11889538501616653131, 746826103856468972),
+UInt256(3576948720643568765, 15018231828372234519, 10250237108593428509, 14768590685102749926),
+UInt256(4471185900804460957, 4937731730183129437, 8201110367314397733, 4625680301096273696),
+UInt256(2794491188002788098, 5391925340578149850, 7431536988785192535, 5196893197398865012),
+UInt256(3493113985003485122, 15963278712577463121, 66049199126714861, 1884430478321193361),
+UInt256(4366392481254356403, 10730726353867053093, 4694247517335781480, 6967224116328879605),
+UInt256(2728995300783972752, 4400860961953214231, 5239747707548557377, 4354515072705549753),
+UInt256(3411244125979965940, 5501076202441517789, 1937998616008308817, 10054829859309325096),
+UInt256(4264055157474957425, 6876345253051897236, 7034184288437773925, 17180223342564044273),
+UInt256(2665034473421848390, 15826930829225905532, 13619737217128384511, 13043482598316221623),
+UInt256(3331293091777310488, 10560291499677606107, 17024671521410480639, 11692667229467889125),
+UInt256(4164116364721638110, 13200364374597007634, 16669153383335712895, 10004148018407473502),
+UInt256(2602572727951023819, 3638541715695741867, 15029906883012208463, 13170121539145752795),
+UInt256(3253215909938779773, 18383235199901841046, 14175697585337872675, 11850965905504803089),
+UInt256(4066519887423474717, 9143985944595137596, 8496249944817565036, 10202021363453615958),
+UInt256(2541574929639671698, 8020834224585654949, 14533528252365753955, 15599635389013285782),
+UInt256(3176968662049589623, 802670743877292879, 4331852260175028732, 14887858217839219323),
+UInt256(3971210827561987028, 14838396485128779811, 803129306791398012, 163078698589472538),
+UInt256(2482006767226241893, 50625766350711573, 16642856881240481421, 9325296223473196144),
+UInt256(3102508459032802366, 4674968226365777371, 6968513046268438064, 16268306297768883084),
+UInt256(3878135573791002957, 15067082319811997522, 4098955289408159677, 1888638798501552239),
+UInt256(2423834733619376848, 11722769459096192403, 7173533074307487702, 3486242258277164102),
+UInt256(3029793417024221060, 14653461823870240504, 4355230324456971723, 13581174859701230935),
+UInt256(3787241771280276325, 18316827279837800630, 5444037905571214654, 12364782556199150764),
+UInt256(2367026107050172703, 13753860059112319345, 17237581746264172871, 3116303079197081324),
+UInt256(2958782633812715879, 12580639055463011278, 7711919127548052376, 17730436904278515367),
+UInt256(3698478292265894849, 11114112800901376194, 416526872580289663, 3716302056638592592),
+UInt256(2311548932666184281, 28791472922278265, 4872015313790068943, 9240217813040202226),
+UInt256(2889436165832730351, 4647675359580235735, 10701705160664974083, 6938586247872864879),
+UInt256(3611795207290912939, 1197908181047906765, 8765445432403829700, 4061546791413693195),
+UInt256(4514744009113641173, 15332443281592047168, 15568492808932175029, 5076933489267116493),
+UInt256(2821715005696025733, 11888620060208723432, 9730308005582609393, 5478926440005641760),
+]
+
+private let bid_multipliers2_binary80_160: [UInt256] = [
+UInt256(3527143757120032167, 1025717019978740578, 12162885006978261741, 11460344068434440104),
+UInt256(4408929696400040208, 15117204330255589435, 5980234221868051369, 490372030260886418),
+UInt256(2755581060250025130, 9448252706409743397, 1431803379453838153, 11835697564981523772),
+UInt256(3444476325312531413, 2586943846157403438, 6401440242744685596, 959563900944741002),
+UInt256(4305595406640664266, 7845365826124142201, 17225172340285632803, 1199454876180926253),
+UInt256(2690997129150415166, 9515039659754976780, 3848203685037438645, 16890560362108936572),
+UInt256(3363746411438018958, 2670427537838945167, 4810254606296798307, 7278142397354007003),
+UInt256(4204683014297523697, 12561406459153457267, 1401132239443609980, 4485991978265120850),
+UInt256(2627926883935952311, 933350009329828935, 17016608714148113901, 12027117023270476339),
+UInt256(3284908604919940388, 15001745566944449881, 16659074874257754473, 1198838223805931712),
+UInt256(4106135756149925486, 305437884971010736, 6988785537540029379, 6110233798184802544),
+UInt256(2566334847593703428, 14025956733389045422, 4367990960962518362, 1513053114651807638),
+UInt256(3207918559492129285, 17532445916736306777, 14683360738057923760, 11114688430169535356),
+UInt256(4009898199365161607, 8080499340638219760, 4519142867290240988, 13893360537711919194),
+UInt256(2506186374603226004, 11967841115539969206, 2824464292056400617, 17906722372924725305),
+UInt256(3132732968254032505, 14959801394424961507, 12753952401925276580, 8548344910873742919),
+UInt256(3915916210317540632, 4864693687749038172, 11330754483979207821, 10685431138592178648),
+UInt256(2447447631448462895, 3040433554843148857, 16305093589341780696, 8984237470833805607),
+UInt256(3059309539310578618, 17635599998836099784, 6546308931395062158, 11230296838542257009),
+UInt256(3824136924138223273, 12821127961690348922, 8182886164243827698, 4814499011323045453),
+UInt256(2390085577586389546, 1095675948415386220, 9725989871079780215, 7620747900504291312),
+UInt256(2987606971982986932, 10592966972374008583, 12157487338849725269, 4914248857202976236),
+UInt256(3734508714978733665, 13241208715467510729, 10585173155134768682, 10754497089931108199),
+UInt256(2334067946861708541, 1358226419526112349, 18144948268027700186, 11333246699634330529),
+UInt256(2917584933577135676, 6309469042835028341, 8846127279752461521, 4943186337688137353),
+UInt256(3646981166971419595, 7886836303543785426, 15669345118117964805, 10790668940537559595),
+UInt256(4558726458714274494, 5246859361002343879, 10363309360792680198, 18100022194099337398),
+UInt256(2849204036696421558, 17114345155908628636, 13394597378136506980, 6700827852884697970),
+UInt256(3561505045870526948, 12169559408031009987, 16743246722670633725, 8376034816105872462),
+UInt256(4451881307338158685, 15211949260038762484, 16317372384910904252, 15081729538559728481),
+UInt256(2782425817086349178, 11813311296737920505, 974985703714539350, 202708924745054493),
+UInt256(3478032271357936473, 5543267084067624823, 5830418148070562091, 9476758192786093924),
+UInt256(4347540339197420591, 11540769873511918933, 2676336666660814710, 7234261722555229501),
+UInt256(2717212711998387869, 14130510198586031189, 3978553425876703145, 18356471631879182150),
+UInt256(3396515889997984837, 3828079692950375274, 9584877800773266836, 9110531484566813976),
+UInt256(4245644862497481046, 9396785634615356997, 2757725214111807737, 11388164355708517470),
+UInt256(2653528039060925654, 1261305003207210219, 4029421268033573788, 200073694676741563),
+UInt256(3316910048826157067, 10800003290863788582, 425090566614579331, 250092118345926953),
+UInt256(4146137561032696334, 8888318095152347823, 9754735245122999971, 14147673203214572403),
+UInt256(2591335975645435209, 943512791042829485, 13014238555842956838, 6536452742795413800),
+UInt256(3239169969556794011, 5791077007230924761, 2432740139521532335, 17393937965349043058),
+UInt256(4048962461945992514, 2627160240611268047, 7652611192829303323, 17130736438258915919),
+UInt256(2530601538716245321, 6253661168809430433, 11700411023159396433, 8400867264698128497),
+UInt256(3163251923395306651, 12428762479439175946, 790455723667081829, 15112770099300048526),
+UInt256(3954064904244133314, 10924267080871582028, 10211441691438628095, 5055904568842896945),
+UInt256(2471290565152583321, 11439352943972126671, 15605523094003918367, 10077469383167892447),
+UInt256(3089113206440729152, 464133124682994627, 14895217849077510055, 7985150710532477654),
+UInt256(3861391508050911440, 580166405853743284, 14007336292919499665, 5369752369738209164),
+UInt256(2413369692531819650, 362604003658589552, 17977957219929463098, 14885310277154850488),
+UInt256(3016712115664774562, 9676627041428012749, 4025702451202277257, 9383265809588787301),
+]
+
+private let bid_multipliers2_binary80_161: [UInt256] = [
+UInt256(3770890144580968203, 2872411764930240128, 9643814082430234475, 16340768280413372031),
+UInt256(2356806340363105126, 17936158417577257744, 6027383801518896547, 7907137166044663567),
+UInt256(2946007925453881408, 13196825985116796372, 7534229751898620684, 5272235439128441555),
+UInt256(3682509906817351760, 16496032481395995465, 9417787189873275855, 6590294298910551944),
+UInt256(4603137383521689701, 2173296528035442715, 16383920005768982723, 3626181855210802025),
+UInt256(2876960864701056063, 3664153339235845649, 7934106994391920249, 18407264724002608930),
+UInt256(3596201080876320078, 18415249729326970773, 14529319761417288216, 9174022849721097450),
+UInt256(4495251351095400098, 13795690124803937659, 4326591646489446558, 11467528562151371813),
+UInt256(2809532094434625061, 13233992346429848941, 398276769842210147, 2555519332917219479),
+UInt256(3511915118043281327, 2707432377755147464, 5109531980730150587, 17029457221428688061),
+UInt256(4389893897554101658, 17219348527476098042, 6386914975912688234, 16675135508358472172),
+UInt256(2743683685971313536, 15373778848099949180, 8603507878372818050, 15033645711151433012),
+UInt256(3429604607464141921, 770479486415384859, 10754384847966022563, 9568685102084515456),
+UInt256(4287005759330177401, 5574785376446618978, 8831295041530140300, 7349170359178256416),
+UInt256(2679378599581360875, 15013455906347606621, 10131245419383725591, 13816603511341186068),
+UInt256(3349223249476701094, 14155133864507120372, 17275742792657044893, 12659068370749094681),
+UInt256(4186529061845876368, 8470545293779124658, 3147934417111754501, 1988777408154204640),
+UInt256(2616580663653672730, 5294090808611952911, 6579145029122234467, 3548828889310071852),
+UInt256(3270725829567090912, 15840985547619716947, 3612245267975405179, 18271094166919753527),
+UInt256(4088407286958863641, 1354487860815094567, 18350364640251420186, 18227181690222304005),
+UInt256(2555254554349289775, 12375769959077903864, 18386506927798219472, 16003674574816327907),
+UInt256(3194068192936612219, 10858026430419991927, 4536389586038222725, 1557849144810858268),
+UInt256(3992585241170765274, 8960847019597602005, 1058800964120390502, 6558997449440960738),
+UInt256(2495365775731728296, 10212215405675889157, 2967593611788938015, 17934431461182764174),
+UInt256(3119207219664660370, 12765269257094861446, 8321178033163560423, 17806353308051067313),
+UInt256(3899009024580825463, 6733214534513801000, 1178100504599674721, 17646255616636446237),
+UInt256(2436880640363015914, 11125788111712207481, 736312815374796701, 4111380732756697042),
+UInt256(3046100800453769893, 4683863102785483543, 5532077037645883780, 9750911934373259207),
+UInt256(3807626000567212366, 10466514896909242333, 2303410278629966821, 12188639917966574008),
+UInt256(2379766250354507729, 1929885792140888554, 3745474433357423215, 9923742957942802707),
+UInt256(2974707812943134661, 7024043258603498596, 13905215078551554827, 7792992679001115480),
+UInt256(3718384766178918326, 13391740091681761149, 17381518848189443534, 5129554830324006446),
+UInt256(2323990478861823954, 3758151538873712814, 13169292289332096160, 17041029824234667741),
+UInt256(2904988098577279942, 13921061460446916826, 7238243324810344393, 2854543206583783060),
+UInt256(3631235123221599928, 8177954788703870224, 18271176192867706299, 8179865026657116729),
+UInt256(4539043904026999910, 10222443485879837781, 4392226167375081258, 5613145264894008007),
+UInt256(2836902440016874944, 1777341160247510709, 5050984363823119738, 8119901808986142909),
+UInt256(3546128050021093680, 2221676450309388386, 10925416473206287577, 926505224377902828),
+UInt256(4432660062526367100, 2777095562886735483, 4433398554653083663, 5769817548899766439),
+UInt256(2770412539078979437, 10959056763658985485, 465031087444483337, 10523664995703435880),
+UInt256(3463015673848724296, 18310506973001119760, 5192974877732992075, 17766267263056682754),
+UInt256(4328769592310905371, 4441389642541848084, 6491218597166240094, 17596148060393465539),
+UInt256(2705480995194315857, 470025517374961100, 13280383660083675867, 6385906519318528058),
+UInt256(3381851243992894821, 5199217915146089279, 16600479575104594834, 3370697130720772168),
+UInt256(4227314054991118526, 11110708412359999503, 16138913450453355638, 13436743450255741018),
+UInt256(2642071284369449079, 2332506739297611785, 17004349934174429130, 3786278637982450233),
+UInt256(3302589105461811348, 16750691479404178444, 7420379362435872700, 13956220334332838599),
+UInt256(4128236381827264186, 2491620275545671439, 9275474203044840875, 17445275417916048248),
+UInt256(2580147738642040116, 6168948690643432553, 12714700404544107403, 8597454126983836203),
+UInt256(3225184673302550145, 7711185863304290692, 2058317450397970542, 6135131640302407350),
+]
+
+private let bid_multipliers2_binary80_162: [UInt256] = [
+UInt256(4031480841628187681, 14250668347557751269, 2572896812997463177, 16892286587232784995),
+UInt256(2519675526017617301, 1989138689582512687, 3913903517337108438, 3640150089379408766),
+UInt256(3149594407522021626, 7098109380405528763, 280693378243997643, 13773559648579036766),
+UInt256(3936993009402527032, 18096008762361686761, 14185924778087160766, 12605263542296408053),
+UInt256(2460620630876579395, 11310005476476054226, 1948673958663393623, 3266603695507867129),
+UInt256(3075775788595724244, 9525820827167679878, 11659214485184017836, 17918312674666997623),
+UInt256(3844719735744655305, 11907276033959599848, 5350646069625246488, 3951146769624195413),
+UInt256(2402949834840409566, 524518493583668049, 3344153793515779055, 2469466731015122133),
+UInt256(3003687293550511957, 9879020153834360869, 8791878260322111722, 16921891469051066379),
+UInt256(3754609116938139946, 16960461210720338990, 15601533843830027557, 11928992299459057165),
+UInt256(2346630698086337466, 15211974275127599773, 5139272633966379319, 9761463196375604680),
+UInt256(2933288372607921833, 9791595807054723908, 11035776810885362053, 7590142977042117946),
+UInt256(3666610465759902291, 16851180777245792789, 13794721013606702566, 14099364739730035337),
+UInt256(4583263082199877864, 16452289953129853083, 3408343211726214496, 8400833887807768363),
+UInt256(2864539426374923665, 10282681220706158176, 18271115571824741724, 5250521179879855227),
+UInt256(3580674282968654581, 17465037544310085625, 4392150391071375539, 6563151474849819034),
+UInt256(4475842853710818227, 7996238875105443319, 10101874007266607328, 3592253325134885888),
+UInt256(2797401783569261392, 2691806287727208122, 13231200282182711436, 2245158328209303680),
+UInt256(3496752229461576740, 3364757859659010153, 7315628315873613487, 2806447910261629600),
+UInt256(4370940286826970925, 4205947324573762691, 13756221413269404762, 17343117943109200712),
+UInt256(2731837679266856828, 4934560087072295634, 6291795374079684024, 15451134732870638349),
+UInt256(3414797099083571035, 6168200108840369542, 17088116254454380839, 867174342378746320),
+UInt256(4268496373854463794, 3098564117623074024, 12136773281213200240, 14919025983255596612),
+UInt256(2667810233659039871, 6548288591941809169, 7585483300758250150, 9324391239534747883),
+UInt256(3334762792073799839, 3573674721499873557, 14093540144375200592, 2432117012563659045),
+UInt256(4168453490092249798, 18302151457157005659, 3781867125186837028, 3040146265704573807),
+UInt256(2605283431307656124, 6827158642295740633, 57823944028079190, 11123463452920134437),
+UInt256(3256604289134570155, 8533948302869675791, 4683965948462486892, 4680957279295392239),
+UInt256(4070755361418212694, 6055749360159706835, 1243271417150720711, 5851196599119240298),
+UInt256(2544222100886382933, 17619901405381980483, 16917945700215058108, 10574526902090607043),
+UInt256(3180277626107978667, 8189818701445311892, 16535746106841434731, 13218158627613258803),
+UInt256(3975347032634973334, 5625587358379251962, 2222938559842241798, 11911012266089185600),
+UInt256(2484591895396858333, 17351050154269196188, 6001022618328789028, 2832696647878353096),
+UInt256(3105739869246072917, 7853754637554331523, 7501278272910986285, 3540870809847941370),
+UInt256(3882174836557591146, 14428879315370302308, 4764911822711344952, 9037774530737314616),
+UInt256(2426359272848494466, 13629735590533826846, 12201441926049366403, 5648609081710821635),
+UInt256(3032949091060618083, 7813797451312507750, 6028430370706932196, 2449075333711139140),
+UInt256(3791186363825772604, 5155560795713246783, 16758910000238441053, 3061344167138923925),
+UInt256(2369491477391107877, 12445597534175555047, 17391847777790107514, 4219183113675521405),
+UInt256(2961864346738884847, 1721938862437280097, 17128123703810246488, 14497350928949177564),
+UInt256(3702330433423606058, 15987481633328763834, 7575096574480644398, 18121688661186471955),
+UInt256(2313956520889753786, 14603862039257865300, 9346121377477790653, 6714369394814157068),
+UInt256(2892445651112192233, 9031455512217555817, 11682651721847238316, 13004647761945084239),
+UInt256(3615557063890240291, 15901005408699332676, 768256597026884183, 16255809702431355299),
+UInt256(4519446329862800364, 15264570742446777941, 960320746283605229, 15708076109611806220),
+UInt256(2824653956164250228, 316984677174460405, 2906043475640947220, 12123390577721072839),
+UInt256(3530817445205312785, 396230846468075506, 8244240362978571929, 15154238222151341049),
+UInt256(4413521806506640981, 5106974576512482287, 1081928416868439104, 5107739722407012599),
+UInt256(2758451129066650613, 5497702119533995381, 7593734288183856296, 3192337326504382875),
+UInt256(3448063911333313266, 11483813667844882130, 14103853878657208274, 3990421658130478593),
+]
+
+private let bid_multipliers2_binary80_163: [UInt256] = [
+UInt256(4310079889166641583, 5131395047951326855, 8406445311466734534, 14211399109517874050),
+UInt256(2693799930729150989, 10124650932610661140, 12171557347307790940, 4270438425021283377),
+UInt256(3367249913411438736, 17267499684190714329, 15214446684134738675, 5338048031276604221),
+UInt256(4209062391764298421, 3137630531528841296, 5183000299886259632, 2060874020668367373),
+UInt256(2630663994852686513, 4266862091419219762, 3239375187428912270, 1288046262917729608),
+UInt256(3288329993565858141, 9945263632701412606, 13272591021140916145, 10833429865501937818),
+UInt256(4110412491957322676, 17043265559304153662, 7367366739571369373, 18153473350304810176),
+UInt256(2569007807473326673, 1428668937710320230, 18439662267514269570, 13651763853154200312),
+UInt256(3211259759341658341, 6397522190565288192, 13826205797538061155, 7841332779587974582),
+UInt256(4014074699177072926, 12608588756633998144, 17282757246922576444, 5189979956057580324),
+UInt256(2508796686985670579, 3268681954468860936, 10801723279326610277, 12467109509390763511),
+UInt256(3135995858732088223, 17920910498368239882, 13502154099158262847, 1748828831456290676),
+UInt256(3919994823415110279, 17789452104532911949, 7654320587093052750, 16021094094602527057),
+UInt256(2449996764634443924, 18035936592974151824, 7089793376146851921, 5401497790699191507),
+UInt256(3062495955793054906, 4098176667508138164, 8862241720183564901, 11363558256801377287),
+UInt256(3828119944741318632, 14346092871239948513, 11077802150229456127, 369389765719557897),
+UInt256(2392574965463324145, 8966308044524967821, 6097316252328223, 7148397631215805542),
+UInt256(2990718706829155181, 15819571074083597680, 4619307663742798183, 4323811020592369023),
+UInt256(3738398383536443977, 5939405787322333388, 5774134579678497729, 793077757313073375),
+UInt256(2336498989710277485, 15241343663144928127, 12832206149153836888, 12024888644389140619),
+UInt256(2920623737137846857, 5216621523648996447, 11428571668014908206, 15031110805486425774),
+UInt256(3650779671422308571, 11132462922988633463, 9674028566591247354, 9565516470003256410),
+UInt256(4563474589277885714, 9303892635308403925, 7480849689811671289, 2733523550649294704),
+UInt256(2852171618298678571, 10426618915495140357, 6981374065345988507, 13237667265224278950),
+UInt256(3565214522873348214, 8421587625941537542, 13338403600109873538, 11935398063102960784),
+UInt256(4456518153591685268, 1303612495572146120, 7449632463282566115, 5695875542023925171),
+UInt256(2785323845994803292, 10038129846587367133, 4656020289551603822, 1254079204551259280),
+UInt256(3481654807493504115, 12547662308234208916, 10431711380366892681, 10790971042543849908),
+UInt256(4352068509366880144, 11072891866865373241, 13039639225458615851, 18100399821607200289),
+UInt256(2720042818354300090, 6920557416790858276, 1232245488270553051, 9006906879290806229),
+UInt256(3400053522942875112, 17874068807843348653, 1540306860338191314, 6646947580686119882),
+UInt256(4250066903678593891, 3895841936094634200, 6537069593850127046, 17532056512712425660),
+UInt256(2656291814799121182, 129058200845452423, 4085668496156329404, 6345849302017878134),
+UInt256(3320364768498901477, 9384694787911591337, 495399601768023851, 7932311627522347667),
+UInt256(4150455960623626846, 16342554503316877075, 5230935520637417718, 5303703515975546680),
+UInt256(2594034975389766779, 5602410546145660268, 963491691184692121, 17149872752766880387),
+UInt256(3242543719237208474, 2391327164254687431, 1204364613980865152, 7602282885676436772),
+UInt256(4053179649046510592, 12212530992173135096, 15340513822758245152, 9502853607095545965),
+UInt256(2533237280654069120, 7632831870108209435, 9587821139223903220, 5939283504434716228),
+UInt256(3166546600817586400, 9541039837635261794, 7373090405602491121, 7424104380543395285),
+UInt256(3958183251021983000, 11926299797044077242, 18439735043857889709, 13891816494106632010),
+UInt256(2473864531888739375, 7453937373152548276, 16136520420838568972, 10988228318030338959),
+UInt256(3092330664860924219, 4705735698013297442, 1723906452338659599, 13735285397537923698),
+UInt256(3865413331076155274, 1270483604089233898, 11378255102278100307, 12557420728495016718),
+UInt256(2415883331922597046, 5405738270983159090, 11723095457351200596, 5542544946095691497),
+UInt256(3019854164903246307, 15980544875583724671, 5430497284834224937, 6928181182619614371),
+UInt256(3774817706129057884, 15363995076052267935, 2176435587615393267, 13271912496701905868),
+UInt256(2359261066330661178, 379124885677891651, 8277801269900702648, 5989102301224997216),
+UInt256(2949076332913326472, 9697278143952140372, 5735565568948490406, 7486377876531246520),
+UInt256(3686345416141658090, 12121597679940175465, 7169456961185613008, 134600308809282341),
+]
+
+private let bid_multipliers2_binary80_164: [UInt256] = [
+UInt256(4607931770177072613, 5928625063070443523, 13573507219909404164, 168250386011602926),
+UInt256(2879957356360670383, 6011233673632721154, 6177599003229683650, 9328528528112027637),
+UInt256(3599946695450837979, 2902356073613513538, 16945370790891880371, 2437288623285258738),
+UInt256(4499933369313547473, 17463003147299055635, 11958341451760074655, 16881668834388737135),
+UInt256(2812458355820967171, 3996847939420827916, 5168120398136352707, 17468572049134042565),
+UInt256(3515572944776208964, 384373905848646991, 6460150497670440884, 17224029042990165303),
+UInt256(4394466180970261205, 480467382310808739, 3463502103660663202, 3083292230028155012),
+UInt256(2746541363106413253, 2606135123157949413, 18305589879283772165, 6538743662194984787),
+UInt256(3433176703883016566, 7869354922374824671, 9046929293822551494, 12785115596171118887),
+UInt256(4291470879853770708, 613321616113755031, 6696975598850801464, 6758022458359122801),
+UInt256(2682169299908606692, 9606698046925872702, 11103138776922832771, 4223764036474451751),
+UInt256(3352711624885758365, 12008372558657340878, 4655551434298765156, 668019027165676785),
+UInt256(4190889531107197957, 1175407643039512385, 15042811329728232253, 835023783957095981),
+UInt256(2619305956941998723, 3040472786113389193, 2484228053439063302, 2827732874186878940),
+UInt256(3274132446177498403, 17635649037923900203, 7716971085226217031, 12758038129588374483),
+UInt256(4092665557721873004, 17432875278977487350, 5034527838105383385, 11335861643558080200),
+UInt256(2557915973576170628, 1672175012506153785, 16981637954098028328, 167384499582718269),
+UInt256(3197394966970213285, 2090218765632692232, 7391989387340371698, 209230624478397836),
+UInt256(3996743708712766606, 7224459475468253194, 9239986734175464622, 9484910317452773103),
+UInt256(2497964817945479128, 18350345227449821958, 10386677727287053293, 1316382929980595285),
+UInt256(3122456022431848911, 4491187460602725832, 3759975122254040808, 6257164680903132011),
+UInt256(3903070028039811139, 1002298307326019386, 4699968902817551010, 7821455851128915013),
+UInt256(2439418767524881961, 16767337506574619780, 7549166582688357285, 9500095925382959787),
+UInt256(3049273459406102452, 7124113827936111013, 9436458228360446606, 16486805925156087638),
+UInt256(3811591824257628065, 8905142284920138766, 16407258803877946162, 11385135369590333740),
+UInt256(2382244890161017540, 17094928974143556489, 5642850733996328447, 11727395624421346491),
+UInt256(2977806112701271926, 2921917143969893995, 11665249435922798463, 10047558512099295210),
+UInt256(3722257640876589907, 12875768466817143302, 9969875776476110175, 7947762121696731109),
+UInt256(2326411025547868692, 5741512282547020612, 1619486341870180955, 11884880353701538799),
+UInt256(2908013781934835865, 7176890353183775765, 2024357927337726194, 10244414423699535595),
+UInt256(3635017227418544831, 13582798959907107610, 7142133427599545647, 3582145992769643685),
+UInt256(4543771534273181039, 12366812681456496608, 18151038821354207866, 18312740546244218319),
+UInt256(2839857208920738149, 14646786953551392236, 11344399263346379916, 16057148859830024353),
+UInt256(3549821511150922687, 4473425636657076583, 14180499079182974896, 1624692001077978825),
+UInt256(4437276888938653359, 980096027393957825, 13113937830551330716, 2030865001347473532),
+UInt256(2773298055586658349, 7530089044762305497, 1278682116453499841, 10492662662696946765),
+UInt256(3466622569483322936, 14024297324380269775, 6210038663994262705, 17727514346798571361),
+UInt256(4333278211854153670, 17530371655475337219, 3150862311565440478, 8324334878216050489),
+UInt256(2708298882408846044, 6344796266244697857, 18110190009224257963, 591023280457643652),
+UInt256(3385373603011057555, 7930995332805872322, 8802679456248158741, 14573837155854218276),
+UInt256(4231717003763821944, 5302058147579952499, 1779977283455422619, 4382238389535609133),
+UInt256(2644823127352388715, 3313786342237470311, 17253386866655496801, 433055984246061757),
+UInt256(3306028909190485893, 17977290983079001601, 16955047564891983097, 5153005998734965100),
+UInt256(4132536136488107367, 8636555673566588290, 7358751400832815159, 11052943516846094278),
+UInt256(2582835085305067104, 12315376323620199537, 9210905643947897378, 13825618725669890780),
+UInt256(3228543856631333880, 15394220404525249421, 16125318073362259627, 8058651370232587667),
+UInt256(4035679820789167351, 796031431947010161, 6321589536420660822, 5461628194363346680),
+UInt256(2522299887993229594, 7415048672607963206, 15480208506331382773, 17248575676759255387),
+UInt256(3152874859991536993, 45438803905178200, 10126888596059452659, 7725661540666905522),
+UInt256(3941093574989421241, 4668484523308860654, 12658610745074315824, 5045390907406243998),
+]
+
+private let bid_multipliers2_binary80_165: [UInt256] = [
+UInt256(2463183484368388275, 14447017873136507669, 3299945697244059486, 3153369317128902499),
+UInt256(3078979355460485344, 13447086322993246682, 8736618139982462261, 13165083683265903932),
+UInt256(3848724194325606680, 16808857903741558353, 1697400638123302019, 2621296548800216202),
+UInt256(2405452621453504175, 10505536189838473970, 12590090444895533521, 17779211407495992791),
+UInt256(3006815776816880219, 8520234218870704559, 6514241019264641094, 8388956204087827276),
+UInt256(3758519721021100274, 6038606755160992795, 3531115255653413464, 1262823218255008287),
+UInt256(2349074825638187671, 8385815240403008400, 18347848099279241079, 789264511409380180),
+UInt256(2936343532047734589, 5870583032076372597, 4488066050389499732, 14821638694543888936),
+UInt256(3670429415059668236, 11949914808522853650, 10221768581414262570, 80304294470309554),
+UInt256(4588036768824585295, 14937393510653567063, 3553838689913052404, 9323752404942662751),
+UInt256(2867522980515365809, 16253399971799561270, 9138678208836739608, 15050717289943940027),
+UInt256(3584403725644207262, 6481691909467287876, 2199975724191148703, 366652538720373418),
+UInt256(4480504657055259077, 17325486923688885653, 2749969655238935878, 14293373728682630485),
+UInt256(2800315410659536923, 13134272336519247485, 4024574043738028876, 4321672561999256149),
+UInt256(3500394263324421154, 11806154402221671452, 9642403573099923999, 5402090702499070186),
+UInt256(4375492829155526443, 5534320965922313507, 12053004466374904999, 2140927359696449829),
+UInt256(2734683018222204027, 1153107594487751990, 5227284782270621672, 8255608627451362999),
+UInt256(3418353772777755033, 15276442548391853699, 15757478014693052898, 10319510784314203749),
+UInt256(4272942215972193792, 5260495130207653412, 15085161499938928219, 3676016443537978878),
+UInt256(2670588884982621120, 3287809456379783383, 204853900607054328, 18438411341707094463),
+UInt256(3338236106228276400, 4109761820474729228, 14091125431040981623, 4601270103424316462),
+UInt256(4172795132785345500, 5137202275593411535, 17613906788801227029, 1139901610853007674),
+UInt256(2607996957990840937, 12434123459100658017, 17926220770641848749, 3018281515996823748),
+UInt256(3259996197488551172, 1707596268593658810, 8572717908020147224, 8384537913423417589),
+UInt256(4074995246860688965, 2134495335742073513, 1492525348170408222, 10480672391779271987),
+UInt256(2546872029287930603, 3639902594052489897, 12462043388674974899, 1938734226434657088),
+UInt256(3183590036609913253, 18384936297847776084, 1742496180561554911, 16258475838325485072),
+UInt256(3979487545762391567, 9146112317027556393, 2178120225701943639, 15711408779479468435),
+UInt256(2487179716101494729, 12633849225783304601, 12890540187132184534, 16737159514815749628),
+UInt256(3108974645126868412, 1957253476946967040, 2278117178633066956, 11698077356664911227),
+UInt256(3886218306408585515, 2446566846183708800, 2847646473291333695, 14622596695831139034),
+UInt256(2428886441505365946, 17670005343360675664, 1779779045807083559, 16056651962535543752),
+UInt256(3036108051881707433, 12864134642346068772, 2224723807258854449, 15459128934742041786),
+UInt256(3795135064852134292, 2245110247650422253, 2780904759073568062, 5488853113145388521),
+UInt256(2371959415532583932, 10626565941636289716, 4043908483634673990, 17265591250998031538),
+UInt256(2964949269415729915, 13283207427045362145, 5054885604543342488, 12358617026892763614),
+UInt256(3706186586769662394, 11992323265379314777, 10930293024106566014, 15448271283615954517),
+UInt256(2316366616731038996, 12106888059289459639, 18360648186135073519, 5043483533832583670),
+UInt256(2895458270913798745, 15133610074111824549, 18339124214241453995, 1692668398863341683),
+UInt256(3619322838642248432, 5081954537357616975, 9088847212519653781, 15950893553861340815),
+UInt256(4524153548302810540, 6352443171697021219, 6749372997222179323, 6103558887044512307),
+UInt256(2827595967689256587, 13193649019165414070, 1912515114050168125, 1508881295189126240),
+UInt256(3534494959611570734, 11880375255529379683, 11614015929417485964, 6497787637413795704),
+UInt256(4418118699514463418, 5627097032556948796, 9905833893344469551, 8122234546767244630),
+UInt256(2761324187196539636, 8128621663775480901, 15414518220195069277, 11993925619370609750),
+UInt256(3451655233995674545, 10160777079719351127, 5433089719961672885, 1157348968931098475),
+UInt256(4314569042494593181, 17312657368076576813, 2179676131524703202, 6058372229591260998),
+UInt256(2696605651559120738, 13126253864261554460, 3668140591416633453, 8398168661921926028),
+UInt256(3370757064448900923, 7184445293472167267, 4585175739270791816, 15109396845829795439),
+UInt256(4213446330561126154, 4368870598412821180, 1119783655661101867, 440001983577692682),
+]
+
+private let bid_multipliers2_binary80_166: [UInt256] = [
+UInt256(2633403956600703846, 7342230142435401141, 9923236821642964474, 16415902304231915591),
+UInt256(3291754945750879807, 18401159714899027234, 17015732045481093497, 11296505843435118680),
+UInt256(4114693682188599759, 18389763625196396139, 12046293019996591064, 285574249011734638),
+UInt256(2571683551367874849, 18411131293388829443, 5223090128284175463, 178483905632334149),
+UInt256(3214604439209843562, 9178856061453873092, 1917176641927831424, 14058162937322581398),
+UInt256(4018255549012304453, 2250198039962565557, 2396470802409789280, 17572703671653226747),
+UInt256(2511409718132690283, 3712216784190297425, 3803637260719812252, 10982939794783266717),
+UInt256(3139262147665862854, 28584961810483877, 9366232594327153219, 13728674743479083397),
+UInt256(3924077684582328567, 9259103239117880654, 16319476761336329428, 12549157410921466342),
+UInt256(2452548552863955354, 12704468552089757265, 5587986957407817988, 17066595418680692272),
+UInt256(3065685691079944193, 6657213653257420773, 11596669715187160390, 2886500199641313723),
+UInt256(3832107113849930241, 12933203084999163871, 660779088701786775, 12831497286406417962),
+UInt256(2395066946156206401, 1165722900483395563, 7330515958079698590, 14937214831645093083),
+UInt256(2993833682695258001, 6068839644031632358, 4551458929172235334, 9448146502701590545),
+UInt256(3742292103369072501, 12197735573466928351, 14912695698320069976, 2586811091522212373),
+UInt256(2338932564605670313, 9929427742630524171, 16237963839091125591, 1616756932201382733),
+UInt256(2923665705757087891, 17023470696715543118, 15685768780436519084, 15856004220533892129),
+UInt256(3654582132196359864, 16667652352467040994, 10383838938690873048, 1373261201957813545),
+UInt256(4568227665245449831, 2387821366874249627, 3756426636508815502, 1716576502447266931),
+UInt256(2855142290778406144, 8409917381937487873, 41923638604315736, 14907918369311705544),
+UInt256(3568927863473007680, 10512396727421859841, 4664090566682782575, 188153887930080314),
+UInt256(4461159829341259600, 13140495909277324801, 10441799226780866122, 14070250415194764104),
+UInt256(2788224893338287250, 8212809943298328000, 18055339562806511086, 13405592527924115469),
+UInt256(3485281116672859063, 1042640392268134193, 4122430379798587242, 7533618623050368528),
+UInt256(4356601395841073828, 15138358545617331453, 9764723993175621957, 193651241958184852),
+UInt256(2722875872400671143, 238102054156056350, 8408795504948457675, 2426875035437559485),
+UInt256(3403594840500838928, 14132685622977234150, 1287622344330796285, 16868651849579113068),
+UInt256(4254493550626048660, 17665857028721542687, 10832899967268271165, 7250756756691727623),
+UInt256(2659058469141280413, 1817788606096188371, 13688091507183751334, 6837565982146023717),
+UInt256(3323823086426600516, 6883921776047623368, 12498428365552301263, 17770329514537305454),
+UInt256(4154778858033250645, 8604902220059529210, 15623035456940376579, 17601225874744243913),
+UInt256(2596736786270781653, 7683906896750899708, 14376083179015123266, 8694923162501458494),
+UInt256(3245920982838477066, 14216569639366012539, 17970103973768904083, 1645281916272047309),
+UInt256(4057401228548096333, 8547340012352739866, 17850943948783742199, 15891660450622222848),
+UInt256(2535875767842560208, 7647930516934156368, 15768525986417226778, 16849816809279971136),
+UInt256(3169844709803200260, 9559913146167695461, 1263913409311981857, 11838898974745188112),
+UInt256(3962305887254000325, 11949891432709619326, 6191577780067365226, 963565663149321428),
+UInt256(2476441179533750203, 9774525154657206030, 17704794167824266978, 5213914557895713797),
+UInt256(3095551474417187754, 7606470424894119634, 12907620672925557914, 15740765234224418054),
+UInt256(3869439343021484693, 284715994262873735, 6911153804302171585, 10452584505925746759),
+UInt256(2418399589388427933, 2483790505627990036, 11237000155329939096, 18062080362272061485),
+UInt256(3022999486735534916, 7716424150462375449, 14046250194162423871, 4130856379130525240),
+UInt256(3778749358419418645, 9645530188077969312, 3722754687420866127, 551884455485768646),
+UInt256(2361718349012136653, 8334299376762424772, 2326721679638041329, 7262456812319687260),
+UInt256(2952147936265170816, 15029560239380418869, 2908402099547551661, 13689757033826996978),
+UInt256(3690184920331463521, 340206225515971970, 8247188642861827481, 3277138237001582511),
+UInt256(2306365575207164700, 11741843937015952241, 9766178920216030079, 13577426444194458830),
+UInt256(2882956969008955875, 14677304921269940301, 16819409668697425503, 12360097036815685633),
+UInt256(3603696211261194844, 13734945133160037473, 7189204030589618167, 10838435277592219137),
+UInt256(4504620264076493555, 17168681416450046841, 13598191056664410613, 8936358078562886017),
+]
+
+private let bid_multipliers2_binary80_167: [UInt256] = [
+UInt256(2815387665047808472, 8424582876067585324, 1581340382774174777, 7891066808315497713),
+UInt256(3519234581309760590, 10530728595084481655, 1976675478467718471, 14475519528821760045),
+UInt256(4399043226637200738, 3940038707000826260, 16305902403366811801, 13482713392599812152),
+UInt256(2749402016648250461, 7074210210302904317, 967816965249481568, 1509166842733800739),
+UInt256(3436752520810313076, 13454448781306018300, 5821457224989239864, 1886458553417250924),
+UInt256(4295940651012891345, 16818060976632522875, 7276821531236549830, 2358073191771563655),
+UInt256(2684962906883057091, 3593759082754244941, 2242170447809149691, 15308853800139390996),
+UInt256(3356203633603821363, 18327256908724969888, 7414399078188825018, 14524381231746850841),
+UInt256(4195254542004776704, 18297385117478824456, 9267998847736031273, 8932104502828787743),
+UInt256(2622034088752985440, 11435865698424265285, 5792499279835019545, 17111780360336462100),
+UInt256(3277542610941231800, 14294832123030331606, 11852310118221162336, 7554667395138413913),
+UInt256(4096928263676539750, 17868540153787914508, 5592015610921677112, 9443334243923017391),
+UInt256(2560580164797837344, 6556151577690058663, 12718381793680824003, 5902083902451885869),
+UInt256(3200725205997296680, 8195189472112573329, 11286291223673642100, 2765918859637469433),
+UInt256(4000906507496620850, 10243986840140716662, 272805974309888913, 3457398574546836791),
+UInt256(2500566567185388031, 11014177793515335817, 14005561789225844282, 13690089155160242754),
+UInt256(3125708208981735039, 9156036223466781868, 3671894181250141641, 7889239407095527635),
+UInt256(3907135261227168799, 6833359260906089431, 4589867726562677051, 14473235277296797447),
+UInt256(2441959538266980499, 11188378565707387750, 9786196356742755013, 6739929039096804453),
+UInt256(3052449422833725624, 9373787188706846784, 3009373409073667958, 13036597317298393470),
+UInt256(3815561778542157030, 11717233985883558480, 3761716761342084948, 7072374609768216029),
+UInt256(2384726111588848144, 2711585222749836146, 2351072975838803092, 13643606167959910826),
+UInt256(2980907639486060180, 3389481528437295182, 12162213256653279673, 17054507709949888533),
+UInt256(3726134549357575225, 4236851910546618978, 5979394533961823784, 7483076582155196954),
+UInt256(2328834093348484515, 14177247490160106621, 8348807602153527769, 4676922863846998096),
+UInt256(2911042616685605644, 13109873344272745372, 15047695521119297615, 10457839598236135524),
+UInt256(3638803270857007055, 16387341680340931716, 362875327689570403, 8460613479367781501),
+UInt256(4548504088571258819, 15872491081998776741, 453594159611963004, 5964080830782338973),
+UInt256(2842815055357036762, 7614463917035541511, 2589339358971170829, 12950922556093737666),
+UInt256(3553518819196295953, 294707859439651080, 17071732253996127249, 2353595139835008371),
+UInt256(4441898523995369941, 4980070842726951755, 2892921243785607445, 7553679943221148367),
+UInt256(2776186577497106213, 5418387285918038798, 17948976841861862317, 7026892973726911682),
+UInt256(3470233221871382766, 11384670125824936402, 13212849015472552088, 13395302235586027506),
+UInt256(4337791527339228458, 5007465620426394695, 7292689232485914302, 16744127794482534382),
+UInt256(2711119704587017786, 7741352031193884588, 11475459797944778295, 5853393853124196085),
+UInt256(3388899630733772233, 453318002137579927, 14344324747430972869, 2705056297977857202),
+UInt256(4236124538417215291, 5178333521099362813, 13318719915861328182, 7993006390899709407),
+UInt256(2647577836510759557, 930615441473407806, 10630042956627024066, 383942975884930475),
+UInt256(3309472295638449446, 5774955320269147662, 4064181658929004274, 9703300756710938902),
+UInt256(4136840369548061807, 16442066187191210385, 14303599110516031151, 2905753909033897819),
+UInt256(2585525230967538629, 17193820394635588347, 2022220416431437613, 8733625220787267993),
+UInt256(3231906538709423287, 7657217438012321721, 16362833575821460728, 15528717544411472896),
+UInt256(4039883173386779109, 4959835779088014248, 6618483914494662199, 964152856804789503),
+UInt256(2524926983366736943, 5405740371143702857, 4136552446559163874, 7520124563144075296),
+UInt256(3156158729208421179, 2145489445502240667, 9782376576626342747, 176783667075318312),
+UInt256(3945198411510526473, 16516919862159964546, 7616284702355540529, 14056037639126311601),
+UInt256(2465749007194079046, 3405545886208895985, 9371863957399600735, 1867494496812862895),
+UInt256(3082186258992598807, 13480304394615895789, 16326515965176888822, 16169426176298242331),
+UInt256(3852732823740748509, 12238694474842481833, 6573086901188947316, 10988410683518027105),
+UInt256(2407958014837967818, 9955027055990245097, 15637394359311561832, 16091128714053542749),
+]
+
+private let bid_multipliers2_binary80_168: [UInt256] = [
+UInt256(3009947518547459773, 3220411783133030564, 5711684893857288579, 1667166818857376820),
+UInt256(3762434398184324716, 8637200747343676109, 7139606117321610723, 15919016578853884737),
+UInt256(2351521498865202947, 14621622503944573376, 6768096832539700654, 7643542352569984009),
+UInt256(2939401873581503684, 13665342111503328816, 8460121040674625818, 331055903857704203),
+UInt256(3674252341976879605, 17081677639379161020, 10575151300843282272, 9637191916676906061),
+UInt256(4592815427471099507, 7517038993941787563, 13218939126054102840, 12046489895846132577),
+UInt256(2870509642169437192, 2392306361999923275, 5955993944570120323, 7529056184903832861),
+UInt256(3588137052711796490, 2990382952499904094, 2833306412285262500, 4799634212702403172),
+UInt256(4485171315889745612, 12961350727479655925, 12765005052211353933, 5999542765878003964),
+UInt256(2803232072431091007, 17324216241529560761, 10283971166845790160, 6055557237887446430),
+UInt256(3504040090538863759, 17043584283484563047, 17466649976984625604, 7569446547359308037),
+UInt256(4380050113173579699, 16692794335928315905, 17221626452803394101, 9461808184199135046),
+UInt256(2737531320733487312, 8127153450741503489, 3845987505361039457, 8219473124338153356),
+UInt256(3421914150916859140, 10158941813426879361, 9419170400128687225, 14886027423850079599),
+UInt256(4277392688646073925, 12698677266783599201, 16385649018588246936, 4772476224530435787),
+UInt256(2673370430403796203, 10242516300953443453, 3323501608976572479, 2982797640331522367),
+UInt256(3341713038004745254, 8191459357764416412, 8766063029648103502, 17563555105696566671),
+UInt256(4177141297505931568, 1015952160350744707, 10957578787060129378, 12731071845265932530),
+UInt256(2610713310941207230, 634970100219215442, 4542643732698886909, 12568605921718595735),
+UInt256(3263391638676509037, 10017084662128795110, 14901676702728384445, 1875699346866080957),
+UInt256(4079239548345636296, 17133041846088381792, 9403723841555704748, 6956310202009989100),
+UInt256(2549524717716022685, 10708151153805238620, 5877327400972315467, 13571065913111018996),
+UInt256(3186905897145028356, 17996874960683936179, 7346659251215394334, 12352146372961385841),
+UInt256(3983632371431285446, 4049349627145368608, 4571638045591855014, 6216810929346956493),
+UInt256(2489770232144553403, 16365901572248019092, 2857273778494909383, 17720564886124011520),
+UInt256(3112212790180691754, 15845690946882635961, 3571592223118636729, 17539020089227626496),
+UInt256(3890265987725864693, 10583741646748519143, 9076176297325683816, 8088717056252369408),
+UInt256(2431416242328665433, 8920681538431518416, 12590139213469634241, 5055448160157730880),
+UInt256(3039270302910831791, 15762537941466785924, 15737674016837042801, 10930996218624551504),
+UInt256(3799087878638539739, 15091486408406094502, 1225348447336751885, 18275431291708077284),
+UInt256(2374429924149087337, 7126335996040115111, 14600900834867633640, 13727987566531242255),
+UInt256(2968037405186359171, 13519606013477531793, 13639440025157154146, 17159984458164052818),
+UInt256(3710046756482948964, 12287821498419526838, 3214241976164278971, 12226608535850290215),
+UInt256(2318779222801843102, 16903260473366980081, 15843959290384838069, 5335787325692737432),
+UInt256(2898474028502303878, 11905703554853949294, 5969891057698883874, 11281420175543309694),
+UInt256(3623092535627879848, 5658757406712660809, 16685735858978380651, 4878403182574361310),
+UInt256(4528865669534849810, 7073446758390826012, 7022111768440812102, 1486317959790563733),
+UInt256(2830541043459281131, 9032590242421654161, 13612191892130283371, 14764006780151266045),
+UInt256(3538176304324101414, 6679051784599679798, 3180181809880690502, 13843322456761694653),
+UInt256(4422720380405126767, 17572186767604375555, 13198599299205638936, 8080781034097342508),
+UInt256(2764200237753204229, 17900145757393816578, 5943281552789830383, 5050488146310839068),
+UInt256(3455250297191505287, 8540124141460107010, 16652473977842063787, 1701424164461160930),
+UInt256(4319062871489381609, 6063469158397745859, 11592220435447803925, 15961838260858614875),
+UInt256(2699414294680863505, 15318883270067060922, 4939294762941183501, 12281991922250328249),
+UInt256(3374267868351079382, 5313546032301662440, 15397490490531255185, 1517431847530746599),
+UInt256(4217834835438849227, 15865304577231853859, 800119039454517365, 6508475827840821153),
+UInt256(2636146772149280767, 7609972351556214709, 16640975464154931017, 6373640401614207173),
+UInt256(3295183465186600959, 4900779421017880483, 6966161274911500059, 12578736520445146870),
+UInt256(4118979331483251199, 1514288257844962700, 4096015575211987170, 11111734632129045683),
+UInt256(2574362082177031999, 7863959188794183543, 11783381771362267789, 11556520163508041456),
+]
+
+private let bid_multipliers2_binary80_169: [UInt256] = [
+UInt256(3217952602721289999, 5218262967565341525, 10117541195775446833, 610592149102888108),
+UInt256(4022440753401612499, 1911142691029289002, 17258612513146696445, 5374926204805998039),
+UInt256(2514025470876007811, 17335365246389163290, 15398318839144073182, 5665171887217442726),
+UInt256(3142531838595009764, 17057520539559066209, 10024526512075315669, 16304836895876579216),
+UInt256(3928164798243762206, 2875156600739281145, 17142344158521532491, 6545988064563560308),
+UInt256(2455102998902351378, 15632030930744214428, 3796436071434875951, 1785399531138531240),
+UInt256(3068878748627939223, 10316666626575492227, 4745545089293594938, 16066807469205327762),
+UInt256(3836098435784924029, 8284147264791977380, 1320245343189605769, 10860137299651883895),
+UInt256(2397561522365577518, 7483435049708679814, 10048525376348279413, 18316800858350897195),
+UInt256(2996951902956971898, 130921775281073960, 3337284683580573459, 9060943017656457781),
+UInt256(3746189878696214872, 9387024255956118258, 4171605854475716824, 6714492753643184322),
+UInt256(2341368674185134295, 5866890159972573911, 7218939677474710919, 4196557971026990202),
+UInt256(2926710842731417869, 2721926681538329485, 4411988578416000745, 634011445356349848),
+UInt256(3658388553414272336, 8014094370350299760, 10126671741447388835, 5404200325122825214),
+UInt256(4572985691767840420, 10017617962937874700, 12658339676809236044, 2143564387976143613),
+UInt256(2858116057354900262, 15484383263690947495, 17134834334860548335, 10563099779339865566),
+UInt256(3572645071693625328, 10132107042758908561, 16806856900148297515, 8592188705747444054),
+UInt256(4465806339617031660, 12665133803448635702, 7173513069903208182, 6128549863756917163),
+UInt256(2791128962260644787, 17139080664010173121, 18318503723971668825, 17665401720130236939),
+UInt256(3488911202825805984, 16812164811585328498, 9063071599682422320, 8246694094880632462),
+UInt256(4361139003532257481, 2568461940772109007, 2105467462748252092, 10308367618600790577),
+UInt256(2725711877207660925, 13134503759051037889, 8233446191858739413, 15666101798480269919),
+UInt256(3407139846509576157, 2583071643531633649, 14903493758250812171, 5747569192818173686),
+UInt256(4258924808136970196, 7840525572841929966, 4794309142531351502, 2572775472595329204),
+UInt256(2661828005085606372, 14123700519880982036, 16831501269364258400, 15443042725654244465),
+UInt256(3327285006357007965, 17654625649851227546, 2592632512995771385, 857059333358253965),
+UInt256(4159106257946259957, 8233224007031870720, 12464162678099490039, 5683010185125205360),
+UInt256(2599441411216412473, 7451608013608613152, 7790101673812181274, 10469410393344335206),
+UInt256(3249301764020515591, 13926196035438154344, 9737627092265226593, 3863390954825643199),
+UInt256(4061627205025644489, 12796059025870305026, 12172033865331533241, 9440924711959441903),
+UInt256(2538517003141027806, 1080007863527858785, 12219207184259596179, 17429792991043120950),
+UInt256(3173146253926284757, 10573381866264599290, 1438950925042331512, 17175555220376513283),
+UInt256(3966432817407855946, 17828413351258137016, 11022060693157690199, 3022699951761089987),
+UInt256(2479020510879909966, 15754444362963723539, 6888787933223556374, 8806716497491763098),
+UInt256(3098775638599887458, 10469683416849878616, 3999298898102057564, 1785023585009928065),
+UInt256(3873469548249859323, 3863732234207572462, 4999123622627571955, 2231279481262410081),
+UInt256(2420918467656162077, 108989637166038836, 16959510319424396183, 17535450740284863965),
+UInt256(3026148084570202596, 4747923064884936450, 2752643825570943613, 17307627406928692052),
+UInt256(3782685105712753245, 5934903831106170562, 12664176818818455325, 7799476203378701353),
+UInt256(2364178191070470778, 6015157903655050553, 12526796530188922482, 7180515636325382298),
+UInt256(2955222738838088472, 16742319416423589000, 1823437607453989390, 18199016582261503680),
+UInt256(3694028423547610591, 2481155196819934634, 2279297009317486738, 13525398690972103792),
+UInt256(2308767764717256619, 8468251025653541002, 6036246649250817115, 13065060200284952774),
+UInt256(2885959705896570774, 5973627763639538348, 16768680348418297202, 11719639231928803063),
+UInt256(3607449632370713467, 16690406741404198744, 2514106361813319887, 5426177003056228021),
+UInt256(4509312040463391834, 16251322408327860526, 3142632952266649859, 2171035235392897122),
+UInt256(2818320025289619896, 14768762523632300732, 15799203650448819873, 17497798086616418366),
+UInt256(3522900031612024871, 14209080830824300, 1302260489351473226, 8037189552988359245),
+UInt256(4403625039515031088, 13852819406320694087, 1627825611689341533, 823114904380673248),
+UInt256(2752265649696894430, 8658012128950433804, 7934920034946920314, 2820289824451614732),
+]
+
+private let bid_multipliers2_binary80_170: [UInt256] = [
+UInt256(3440332062121118038, 1599143124333266447, 9918650043683650392, 12748734317419294223),
+UInt256(4300415077651397547, 11222300942271358867, 7786626536177175086, 15935917896774117779),
+UInt256(2687759423532123467, 4708095079705905340, 2560798575897040477, 5348262667056435708),
+UInt256(3359699279415154334, 1273432831204993771, 3200998219871300596, 11297014352247932539),
+UInt256(4199624099268942917, 10815163075861018021, 17836305830121289457, 14121267940309915673),
+UInt256(2624765062043089323, 9065319931626830215, 13453534153039499863, 1908263435052615440),
+UInt256(3280956327553861654, 6719963896106149865, 12205231672871986924, 16220387349097933012),
+UInt256(4101195409442327067, 17623326906987463140, 1421481535807819944, 1828740112662864649),
+UInt256(2563247130901454417, 8708736307653470510, 10111797996734663273, 1142962570414290406),
+UInt256(3204058913626818021, 15497606402994226042, 3416375459063553283, 6040389231445250911),
+UInt256(4005073642033522527, 5536949948460618840, 13493841360684217412, 2938800520879175735),
+UInt256(2503171026270951579, 10378122745428968631, 8433650850427635882, 11060122362404260642),
+UInt256(3128963782838689474, 8360967413358822885, 5930377544607156949, 4601780916150549995),
+UInt256(3911204728548361843, 1227837229843752798, 12024657949186334090, 10363912163615575397),
+UInt256(2444502955342726151, 16908299333148203163, 2903725199814070902, 11089131120687122527),
+UInt256(3055628694178407689, 16523688148007866049, 17464714555049752340, 4638041864004127351),
+UInt256(3819535867723009612, 6819552129727668850, 7995835138530026713, 5797552330005159189),
+UInt256(2387209917326881007, 13485592117934568839, 9609082980008654599, 15152685252321694253),
+UInt256(2984012396658601259, 12245304128990823145, 7399667706583430345, 14329170546974729912),
+UInt256(3730015495823251574, 10694944142811141027, 13861270651656675836, 4076405128436248678),
+UInt256(2331259684889532234, 2072654070829575238, 6357451148071728445, 11771125242127431232),
+UInt256(2914074606111915292, 11814189625391744855, 17170185971944436365, 878848497377125328),
+UInt256(3642593257639894115, 14767737031739681069, 16851046446503157552, 5710246640148794564),
+UInt256(4553241572049867644, 13847985271247213433, 7228750002846783228, 7137808300185993205),
+UInt256(2845775982531167277, 17878362831384284203, 16047183797847709277, 13684502224471021561),
+UInt256(3557219978163959097, 8512895483948191542, 15447293728882248693, 3270569725306613239),
+UInt256(4446524972704948871, 15252805373362627332, 10085745124248035058, 8699898175060654453),
+UInt256(2779078107940593044, 16450532385992723938, 15526962739509797719, 10049122377840296937),
+UInt256(3473847634925741306, 2116421408781353307, 10185331387532471341, 7949716953872983268),
+UInt256(4342309543657176632, 11868898797831467442, 8119978215988201272, 14548832210768616988),
+UInt256(2713943464785735395, 7418061748644667151, 9686672403420013699, 9093020131730385618),
+UInt256(3392429330982169244, 4660891167378446035, 7496654485847629220, 6754589146235594118),
+UInt256(4240536663727711555, 5826113959223057544, 4759132088882148621, 8443236432794492648),
+UInt256(2650335414829819722, 1335478215300717013, 2974457555551342888, 7582865779710251857),
+UInt256(3312919268537274652, 10892719805980672074, 8329757962866566514, 9478582224637814821),
+UInt256(4141149085671593315, 13615899757475840093, 1188825416728432335, 2624855743942492718),
+UInt256(2588218178544745822, 6204094339208706106, 3048858894668964161, 8558063867605139805),
+UInt256(3235272723180932277, 16978489960865658440, 13034445655190981009, 15309265852933812660),
+UInt256(4044090903976165347, 7388054395799909338, 16293057068988726262, 5301524260885102113),
+UInt256(2527556814985103342, 2311690988161249384, 14794846686545341817, 17148510718335352533),
+UInt256(3159446018731379177, 12112985772056337539, 46814284472125656, 7600580342637026954),
+UInt256(3949307523414223972, 1306174159788258211, 13893575910872320782, 9500725428296283693),
+UInt256(2468317202133889982, 10039730886722437190, 6377641935081506537, 1326267374257789404),
+UInt256(3085396502667362478, 3326291571548270679, 17195424455706658979, 6269520236249624659),
+UInt256(3856745628334203097, 13381236501290114157, 16882594551205935820, 3225214276884642919),
+UInt256(2410466017708876936, 1445743785665239492, 12857464603717403839, 11239130959907677633),
+UInt256(3013082522136096170, 1807179732081549365, 16071830754646754799, 9437227681457209137),
+UInt256(3766353152670120212, 11482346701956712515, 6254730388026279787, 7184848583394123517),
+UInt256(2353970720418825132, 16399838725577721130, 1603363483302730915, 2184687355407633246),
+UInt256(2942463400523531416, 2053054333262599796, 11227576390983189451, 16565917249541705270),
+]
+
+private let bid_multipliers2_binary80_171: [UInt256] = [
+UInt256(3678079250654414270, 2566317916578249745, 14034470488728986814, 16095710543499743683),
+UInt256(4597599063318017837, 12431269432577587990, 3708030055629069806, 10896266142519903796),
+UInt256(2873499414573761148, 10075386404574686445, 16152576840050332341, 2198480320647551969),
+UInt256(3591874268217201435, 12594233005718358057, 6355662994780751714, 7359786419236827865),
+UInt256(4489842835271501794, 11131105238720559667, 12556264761903327546, 18423105060900810639),
+UInt256(2806151772044688621, 11568626792627737696, 5541822466975885764, 16126126681490394553),
+UInt256(3507689715055860777, 625725435502508408, 6927278083719857206, 1710914278153441576),
+UInt256(4384612143819825971, 5393842812805523414, 8659097604649821507, 11362014884546577777),
+UInt256(2740382589887391232, 1065308748789758182, 800249984478750538, 4795416293627917159),
+UInt256(3425478237359239040, 1331635935987197727, 10223684517453213980, 15217642403889672257),
+UInt256(4281847796699048800, 1664544919983997159, 8167919628389129572, 575308931152538705),
+UInt256(2676154872936905500, 1040340574989998224, 12022478795384287838, 9582940118825112499),
+UInt256(3345193591171131875, 1300425718737497780, 15028098494230359798, 2755303111676614815),
+UInt256(4181491988963914843, 15460590203704035938, 338379044078398131, 12667500926450544327),
+UInt256(2613432493102446777, 7357025868101328509, 4823172920976386736, 5611345069817896252),
+UInt256(3266790616378058471, 13807968353554048540, 10640652169647871324, 7014181337272370315),
+UInt256(4083488270472573089, 12648274423515172771, 13300815212059839155, 8767726671590462894),
+UInt256(2552180169045358181, 987642487055901126, 6007166498323705520, 3173986160530345357),
+UInt256(3190225211306697726, 5846239127247264311, 16732330159759407708, 3967482700662931696),
+UInt256(3987781514133372157, 16531170945913856197, 16303726681271871731, 4959353375828664620),
+UInt256(2492363446333357598, 12637824850409854075, 12495672185008613784, 793752850679221436),
+UInt256(3115454307916696998, 6573909026157541786, 11007904212833379326, 992191063349026795),
+UInt256(3894317884895871247, 17440758319551703041, 4536508229186948349, 10463610866041059301),
+UInt256(2433948678059919529, 17818002977360896256, 14364532689310312478, 8845599800489356015),
+UInt256(3042435847574899412, 8437445666418956608, 17955665861637890598, 1833627713756919211),
+UInt256(3803044809468624265, 10546807083023695761, 3997838253337811631, 11515406679050924822),
+UInt256(2376903005917890165, 18120969472958279610, 14027863954404602029, 14114658202047909870),
+UInt256(2971128757397362707, 8816153785915685801, 8311457906150976729, 3808264697277723625),
+UInt256(3713910946746703384, 6408506213967219347, 15001008401116108815, 9372016890024542435),
+UInt256(2321194341716689615, 4005316383729512092, 7069787241483874057, 12775039583906420878),
+UInt256(2901492927145862019, 394959461234502211, 8837234051854842572, 2133741424600862386),
+UInt256(3626866158932327523, 14328757381825291476, 6434856546391165311, 2667176780751077982),
+UInt256(4533582698665409404, 13299260708854226441, 8043570682988956638, 17169029031221011189),
+UInt256(2833489186665880877, 17535409979888667333, 16556446722936567659, 6118957126085744089),
+UInt256(3541861483332351097, 8084204419578670455, 6860500348388545862, 3037010389179792208),
+UInt256(4427326854165438871, 14716941542900725973, 3963939417058294423, 13019635023329516067),
+UInt256(2767079283853399294, 16115617491954035589, 4783305144875127966, 15054800917222029398),
+UInt256(3458849104816749118, 10921149828087768678, 10590817449521297862, 9595129109672760940),
+UInt256(4323561381020936398, 4428065248254935040, 4015149775046846520, 2770539350236175367),
+UInt256(2702225863138085248, 16602598835441498112, 2509468609404279075, 1731587093897609604),
+UInt256(3377782328922606561, 2306504470592321024, 3136835761755348843, 15999541922654175717),
+UInt256(4222227911153258201, 7494816606667789184, 3921044702194186054, 15387741384890331743),
+UInt256(2638892444470786375, 16213475425235838000, 2450652938871366284, 5005652347129069435),
+UInt256(3298615555588482969, 15655158263117409596, 3063316173589207855, 6257065433911336794),
+UInt256(4123269444485603712, 5733889773614598283, 3829145216986509819, 3209645773961783088),
+UInt256(2577043402803502320, 3583681108509123927, 87372751402874684, 18146929673221972094),
+UInt256(3221304253504377900, 4479601385636404908, 13944273994535757068, 4236918017817913502),
+UInt256(4026630316880472375, 5599501732045506135, 17430342493169696335, 5296147522272391877),
+UInt256(2516643948050295234, 10417217610169523190, 17811493085872142065, 10227621229061326779),
+UInt256(3145804935062869043, 3798149975857128180, 13040994320485401773, 17396212554754046378),
+]
+
+private let bid_multipliers2_binary80_172: [UInt256] = [
+UInt256(3932256168828586304, 136001451394022321, 16301242900606752217, 7910207638160394261),
+UInt256(2457660105517866440, 85000907121263951, 3270747785238138279, 16473094819918716173),
+UInt256(3072075131897333050, 106251133901579938, 17923492786829836561, 15979682506471007312),
+UInt256(3840093914871666312, 9356185954231750731, 13180993946682519894, 6139545077806595428),
+UInt256(2400058696794791445, 5847616221394844207, 5932278207462880981, 17672273728911285855),
+UInt256(3000073370993489306, 11921206295170943163, 2803661740901213323, 8255284105856943606),
+UInt256(3750091713741861633, 5678135832108903145, 17339635231408680366, 5707419113893791604),
+UInt256(2343807321088663520, 15078049941136534226, 3919742991989343372, 17402195001465783465),
+UInt256(2929759151360829401, 400818352711116166, 14123050776841455024, 3305999678122677715),
+UInt256(3662198939201036751, 5112708959316283112, 8430441434197042972, 4132499597653347143),
+UInt256(4577748674001295939, 1779200180717965986, 10538051792746303715, 5165624497066683929),
+UInt256(2861092921250809961, 17252901177444586405, 11197968388893827726, 922672301452983504),
+UInt256(3576366151563512452, 7731068416523569295, 162402430835120945, 10376712413671005187),
+UInt256(4470457689454390565, 9663835520654461618, 14038061093826064893, 17582576535516144388),
+UInt256(2794036055908994103, 8345740209622732463, 13385474202068678462, 13294953343911284195),
+UInt256(3492545069886242629, 5820489243601027675, 12120156734158460174, 7395319643034329435),
+UInt256(4365681337357803286, 11887297572928672498, 10538509899270687314, 20777516938135986),
+UInt256(2728550835848627054, 2817874964653032407, 11198254705471567475, 4624671966513722895),
+UInt256(3410688544810783817, 12745715742671066317, 9386132363412071440, 1169153939714765715),
+UInt256(4263360681013479772, 2097086623056669184, 16344351472692477204, 1461442424643457144),
+UInt256(2664600425633424857, 10534051176265194048, 10215219670432798252, 10136773552256936523),
+UInt256(3330750532041781071, 17779249988758880464, 12769024588040997815, 12670966940321170654),
+UInt256(4163438165052226339, 17612376467521212676, 15961280735051247269, 11227022656974075413),
+UInt256(2602148853157641462, 8701892282987063971, 752428422552253735, 9322732169822491085),
+UInt256(3252686066447051828, 1653993316879054155, 14775593583472480881, 7041729193850725953),
+UInt256(4065857583058814785, 2067491646098817694, 13857805960913213197, 13413847510740795345),
+UInt256(2541160989411759240, 12821397324880230819, 4049442707143370344, 10689497703426691043),
+UInt256(3176451236764699050, 16026746656100288524, 450117365501825026, 13361872129283363803),
+UInt256(3970564045955873813, 10810061283270584847, 562646706877281283, 7478968124749428946),
+UInt256(2481602528722421133, 9062131311257809481, 7269183219439382658, 2368512068754699139),
+UInt256(3102003160903026416, 15939350157499649755, 13698165042726616226, 12184012122798149732),
+UInt256(3877503951128783021, 1477443623165010578, 12511020284980882379, 6006643116642911357),
+UInt256(2423439969455489388, 3229245273691825563, 12431073696540439391, 1448308938688125646),
+UInt256(3029299961819361735, 4036556592114781954, 10927156102248161334, 15645444228642320770),
+UInt256(3786624952274202169, 434009721716089539, 4435573090955425860, 10333433248948125154),
+UInt256(2366640595171376355, 11800471122141025722, 466390172633447210, 15681767817447354029),
+UInt256(2958300743964220444, 10138902884248894248, 9806359752646584821, 10378837734954416729),
+UInt256(3697875929955275555, 12673628605311117810, 12257949690808231026, 17585233187120408815),
+UInt256(2311172456222047222, 5615174869105754679, 12272904575182532295, 15602456760377643413),
+UInt256(2888965570277559027, 16242340623236969157, 10729444700550777465, 14891384932044666363),
+UInt256(3611206962846948784, 15691239760618823542, 18023491894115859736, 4779173109773669241),
+UInt256(4514008703558685981, 1167305627063977812, 13305992830790048862, 5973966387217086551),
+UInt256(2821255439724178738, 3035409026128680084, 17539617556098556346, 17568787047292842807),
+UInt256(3526569299655223422, 13017633319515625914, 3477777871413643817, 12737611772261277700),
+UInt256(4408211624569029278, 7048669612539756584, 13570594376121830580, 2086956660044433413),
+UInt256(2755132265355643298, 18240476563119511577, 8481621485076144112, 10527719949382546691),
+UInt256(3443915331694554123, 13577223667044613663, 15213712874772568044, 13159649936728183364),
+UInt256(4304894164618192654, 12359843565378379175, 14405455075038322151, 16449562420910229205),
+UInt256(2690558852886370409, 3113216209934099080, 15920938449540033200, 17198505540709975109),
+UInt256(3363198566107963011, 8503206280845011755, 1454428988215489885, 3051387852177917271),
+]
+
+private let bid_multipliers2_binary80_173: [UInt256] = [
+UInt256(4203998207634953764, 6017321832628876789, 15653094290551526068, 8425920833649784492),
+UInt256(2627498879771846102, 12984198182247823801, 12089026940808397744, 14489572557885891116),
+UInt256(3284373599714807628, 7006875690955003944, 1276225620728333468, 18111965697357363895),
+UInt256(4105466999643509535, 8758594613693754930, 1595282025910416836, 4193213047987153252),
+UInt256(2565916874777193459, 12391650661199678687, 5608737284621398426, 11844130191846746591),
+UInt256(3207396093471491824, 10877877308072210455, 2399235587349360129, 5581790702953657430),
+UInt256(4009245116839364780, 13597346635090263068, 16834102539468863873, 11588924397119459692),
+UInt256(2505778198024602987, 17721713683786190226, 1297942050313264113, 325548720558580452),
+UInt256(3132222747530753734, 17540456086305349878, 10845799599746355949, 5018621919125613468),
+UInt256(3915278434413442168, 12702198071026911540, 4333877462828169128, 10884963417334404739),
+UInt256(2447049021508401355, 7938873794391819712, 11932045451122381513, 6803102135834002962),
+UInt256(3058811276885501694, 5311906224562386736, 14915056813902976891, 13115563688219891607),
+UInt256(3823514096106877117, 15863254817557759229, 197076943669169498, 11782768591847476604),
+UInt256(2389696310066798198, 12220377270187293470, 2429016099006924888, 11975916388332060782),
+UInt256(2987120387583497748, 6052099550879341029, 12259642160613431918, 14969895485415075977),
+UInt256(3733900484479372185, 7565124438599176287, 1489494645484626186, 9488997319914069163),
+UInt256(2333687802799607615, 16257417820192954939, 7848463181068973222, 10542309343373681131),
+UInt256(2917109753499509519, 15710086256813805770, 5198892957908828624, 3954514642362325606),
+UInt256(3646387191874386899, 15025921802589869308, 15721988234240811588, 4943143302952907007),
+UInt256(4557983989842983624, 14170716234809948732, 1205741219091462869, 6178929128691133759),
+UInt256(2848739993651864765, 8856697646756217957, 9976960298786940101, 6167673714645652552),
+UInt256(3560924992064830956, 15682558076872660350, 17082886391911063030, 12321278161734453593),
+UInt256(4451156240081038696, 1156453522381273822, 12130235953034052980, 6178225665313291183),
+UInt256(2781972650050649185, 722783451488296139, 2969711452218895208, 13084763077675582798),
+UInt256(3477465812563311481, 5515165332787758077, 17547197370555782722, 16355953847094478497),
+UInt256(4346832265704139351, 11505642684412085501, 8098938657912564691, 11221570272013322313),
+UInt256(2716770166065087094, 14108555705398635294, 7367679670409046884, 4707638410794632494),
+UInt256(3395962707581358868, 8412322594893518309, 18432971624866084413, 5884548013493290617),
+UInt256(4244953384476698585, 10515403243616897887, 9206156475800441804, 11967371035294001176),
+UInt256(2653095865297936615, 18101342073329030939, 12671376825016357983, 16702978933913526543),
+UInt256(3316369831622420769, 18014991573233900770, 11227535012843059575, 16267037648964520275),
+UInt256(4145462289528025962, 8683681411260212251, 4811046729199048661, 15722111042778262439),
+UInt256(2590913930955016226, 10038986900465020561, 701061196535711461, 12132162410950107977),
+UInt256(3238642413693770283, 3325361588726499893, 5488012514097027231, 1330144958405471259),
+UInt256(4048303017117212853, 17991760041190288578, 11471701661048671942, 15497739253289002785),
+UInt256(2530189385698258033, 13550693034957624313, 11781499556582807868, 5074401014878238837),
+UInt256(3162736732122822542, 3103308238414866680, 891816390446346123, 6343001268597798546),
+UInt256(3953420915153528177, 13102507334873359158, 1114770488057932654, 3317065567319860278),
+UInt256(2470888071970955111, 1271538056654767617, 14531789610318371620, 15908224034857076386),
+UInt256(3088610089963693888, 15424480626100623234, 4329678957615800814, 1438535969861793867),
+UInt256(3860762612454617361, 833856708916227426, 14635470733874526825, 11021541999182018141),
+UInt256(2412976632784135850, 12050375489141111901, 13758855227098967169, 18417678795557231098),
+UInt256(3016220790980169813, 5839597324571614069, 3363510978591545250, 9187040439164375161),
+UInt256(3770275988725212266, 11911182674141905490, 8816074741666819467, 2260428512100693143),
+UInt256(2356422492953257666, 12056175189766078835, 10121732731969150070, 17553668884558790879),
+UInt256(2945528116191572083, 5846846950352822736, 8040479896534049684, 12718714068843712790),
+UInt256(3681910145239465104, 2696872669513640516, 10050599870667562105, 15898392586054640987),
+UInt256(4602387681549331380, 3371090836892050645, 12563249838334452632, 6037932677286137522),
+UInt256(2876492300968332112, 11330303809912307461, 10157874158172726847, 3773707923303835952),
+UInt256(3595615376210415140, 14162879762390384326, 17309028716143296463, 105448885702407035),
+]
+
+private let bid_multipliers2_binary80_174: [UInt256] = [
+UInt256(4494519220263018925, 17703599702987980408, 12412913858324344770, 13966869162410172506),
+UInt256(2809074512664386828, 13370592823581181707, 7758071161452715481, 13340979244933745720),
+UInt256(3511343140830483535, 16713241029476477134, 5085902933388506448, 2841166000885018438),
+UInt256(4389178926038104419, 16279865268418208513, 15580750703590408868, 3551457501106273048),
+UInt256(2743236828773815262, 7869072783547686369, 2820440162102923686, 11443032975046196463),
+UInt256(3429046035967269078, 612968942579832153, 8137236221056042512, 5080419181952969771),
+UInt256(4286307544959086347, 9989583215079565999, 14783231294747441044, 6350523977441212213),
+UInt256(2678942215599428967, 3937646500211034797, 16157048586858232508, 13192449522755533442),
+UInt256(3348677769499286209, 310372106836405593, 6361252678290626923, 16490561903444416802),
+UInt256(4185847211874107761, 4999651151972894895, 12563251866290671558, 16001516360878133098),
+UInt256(2616154507421317350, 14653997016051529069, 14769561444072751580, 5389261707121445283),
+UInt256(3270193134276646688, 9094124233209635529, 4626893749808775763, 6736577133901806603),
+UInt256(4087741417845808360, 11367655291512044411, 10395303205688357608, 3809035398949870350),
+UInt256(2554838386153630225, 7104784557195027757, 4191221494341529553, 2380647124343668969),
+UInt256(3193547982692037781, 13492666714921172600, 9850712886354299845, 7587494923856974115),
+UInt256(3991934978365047227, 3030775338369302038, 12313391107942874806, 14096054673248605547),
+UInt256(2494959361478154516, 18035135650976671438, 3084183424036908850, 4198348152352990563),
+UInt256(3118699201847693146, 4097175490011287681, 13078601316900911870, 14471307227296014012),
+UInt256(3898374002309616432, 14344841399368885410, 2513193590843976126, 8865761997265241707),
+UInt256(2436483751443510270, 8965525874605553381, 6182432012704872983, 929415229863388163),
+UInt256(3045604689304387838, 1983535306402165918, 12339726034308479132, 14996827092611398916),
+UInt256(3807005861630484797, 11702791169857483206, 6201285506030823108, 299289792054697028),
+UInt256(2379378663519052998, 9620087490374620955, 17710861496551428154, 9410428156888961451),
+UInt256(2974223329398816248, 2801737326113500386, 17526890852261897289, 2539663159256426006),
+UInt256(3717779161748520310, 3502171657641875483, 12685241528472595803, 7786264967497920411),
+UInt256(2323611976092825193, 16023915341308335889, 5622432946081678425, 2560572595472506305),
+UInt256(2904514970116031492, 6194836121353256149, 11639727201029485935, 7812401762768020785),
+UInt256(3630643712645039365, 7743545151691570187, 714600946004693707, 5153816185032638077),
+UInt256(4538304640806299206, 14291117458041850637, 14728309237788030846, 1830584212863409692),
+UInt256(2836440400503937004, 4320262392848768744, 11511036282831213230, 14979173188321794770),
+UInt256(3545550500629921255, 5400327991060960930, 14388795353539016538, 9500594448547467654),
+UInt256(4431938125787401569, 2138723970398813259, 8762622155068994865, 2652371023829558760),
+UInt256(2769961328617125980, 12865917527567728047, 3170795837704427838, 13186946935961943985),
+UInt256(3462451660771407475, 16082396909459660058, 17798552852412698510, 7260311633097654173),
+UInt256(4328064575964259344, 15491310118397187169, 13024819028661097329, 18298761578226843524),
+UInt256(2705040359977662090, 9682068823998241981, 1222982865272103975, 4519196958750695347),
+UInt256(3381300449972077613, 2879213993143026668, 6140414600017517873, 1037310180010981279),
+UInt256(4226625562465097016, 8210703509856171239, 7675518250021897341, 5908323743441114503),
+UInt256(2641640976540685635, 5131689693660107024, 11714727933904767694, 5998545348864390517),
+UInt256(3302051220675857044, 1802926098647745876, 14643409917380959617, 16721553722935263954),
+UInt256(4127564025844821305, 2253657623309682345, 18304262396726199522, 7066884098386916230),
+UInt256(2579727516153013315, 12937751060637021226, 4522634970312792845, 9028488579919210548),
+UInt256(3224659395191266644, 11560502807368888628, 14876665749745766864, 15897296743326401089),
+UInt256(4030824243989083305, 14450628509211110786, 149088113472656965, 1424876855448449745),
+UInt256(2519265152493177066, 2114113790615862385, 4704866089347798507, 3196391043868975043),
+UInt256(3149081440616471332, 11866014275124603789, 10492768630112136037, 17830546860118382515),
+UInt256(3936351800770589165, 14832517843905754736, 17727646806067557951, 8453125519865814432),
+UInt256(2460219875481618228, 11576166661654790662, 11079779253792223719, 12200732477557215876),
+UInt256(3075274844352022785, 14470208327068488328, 4626352030385503841, 10639229578519131941),
+UInt256(3844093555440028482, 4252702353553446698, 5782940037981879801, 17910722991576302830),
+]
+
+private let bid_multipliers2_binary80_175: [UInt256] = [
+UInt256(2402558472150017801, 7269624989398292090, 8226023542166062780, 4276672842094107413),
+UInt256(3003198090187522251, 13698717255175253017, 1059157390852802667, 5345841052617634266),
+UInt256(3753997612734402814, 12511710550541678367, 5935632756993391238, 2070615297344654929),
+UInt256(2346248507959001759, 3208133075661161075, 10627299500761951379, 15129192616122573043),
+UInt256(2932810634948752198, 17845224399858615056, 8672438357525051320, 14299804751725828399),
+UInt256(3666013293685940248, 13083158462968493012, 10840547946906314150, 17874755939657285499),
+UInt256(4582516617107425310, 16353948078710616265, 13550684933632892688, 13120072887716831065),
+UInt256(2864072885692140819, 5609531530766747262, 1551649055879476074, 8200045554823019416),
+UInt256(3580091107115176024, 2400228395031046173, 11162933356704120901, 1026684906673998462),
+UInt256(4475113883893970030, 3000285493788807717, 118608640597987414, 5895042151769885981),
+UInt256(2796946177433731268, 15710236488900168535, 2379973409587436085, 17519459400138342451),
+UInt256(3496182721792164086, 1191051537415659052, 16810024817266458819, 8064266194890764351),
+UInt256(4370228402240205107, 10712186458624349624, 2565786947873521908, 5468646725186067535),
+UInt256(2731392751400128192, 4389273527426524563, 1603616842420951192, 12641276240096068017),
+UInt256(3414240939250160240, 5486591909283155703, 15839579108308352702, 15801595300120085022),
+UInt256(4267801174062700300, 6858239886603944629, 15187787866958052974, 10528622088295330469),
+UInt256(2667375733789187687, 13509771965982241201, 11798210426062477061, 1968702786757193639),
+UInt256(3334219667236484609, 12275528939050413598, 912704977295932614, 7072564501873879953),
+UInt256(4167774584045605762, 1509353118530853285, 10364253258474691575, 18064077664197125749),
+UInt256(2604859115028503601, 5555031717509171207, 8783501295760376186, 18207577567764285449),
+UInt256(3256073893785629501, 11555475665313851913, 6367690601273082329, 13536099922850581003),
+UInt256(4070092367232036877, 609286526360151179, 12571299270018740816, 3085066848281062542),
+UInt256(2543807729520023048, 2686647088188788439, 5551219034548019058, 1928166780175664089),
+UInt256(3179759661900028810, 3358308860235985549, 2327337774757635918, 11633580512074355919),
+UInt256(3974699577375036012, 13421258112149757744, 7520858236874432802, 5318603603238169091),
+UInt256(2484187235859397507, 17611658356948374398, 4700536398046520501, 7935813270451243586),
+UInt256(3105234044824246884, 17402886927758080093, 15099042534412926434, 14531452606491442386),
+UInt256(3881542556030308606, 3306864585988048501, 5038745112733994331, 8940943721259527175),
+UInt256(2425964097518942878, 15901848421524694025, 5455058704672440409, 3282246816573510532),
+UInt256(3032455121898678598, 10653938490051091723, 11430509399267938415, 8714494539144276069),
+UInt256(3790568902373348248, 4094051075709088846, 9676450730657535115, 6281432155502957183),
+UInt256(2369105563983342655, 2558781922318180529, 1436095688233571543, 1620052087975654287),
+UInt256(2961381954979178318, 17033535458179889373, 6406805628719352332, 15860123165251731571),
+UInt256(3701727443723972898, 12068547285870085908, 12620193054326578320, 1378409882855112848),
+UInt256(2313579652327483061, 12154528072096191596, 17110992695808887258, 861506176784445530),
+UInt256(2891974565409353827, 1358102034838075784, 2941996796051557456, 10300254757835332720),
+UInt256(3614968206761692283, 15532685598829758442, 3677495995064446820, 12875318447294165900),
+UInt256(4518710258452115354, 14804170980109810148, 13820242030685334333, 16094148059117707375),
+UInt256(2824193911532572096, 13864292880996019246, 17861023306033109766, 12364685546162261062),
+UInt256(3530242389415715120, 17330366101245024058, 13102907095686611400, 6232484895848050519),
+UInt256(4412802986769643901, 3216213552846728457, 7155261832753488442, 7790606119810063149),
+UInt256(2758001866731027438, 4315976479742899237, 16001253691539400036, 9480814843308677372),
+UInt256(3447502333413784297, 14618342636533399855, 6166509059142086333, 11851018554135846715),
+UInt256(4309377916767230372, 4437870240384586107, 3096450305500220013, 978715137387644682),
+UInt256(2693361197979518982, 11997040937095142124, 18076182505433495172, 2917539970080971878),
+UInt256(3366701497474398728, 5772929134514151848, 4148484058082317349, 3646924962601214848),
+UInt256(4208376871842998410, 7216161418142689810, 5185605072602896686, 9170342221678906464),
+UInt256(2630235544901874006, 9121786904766569035, 7852689188804198333, 1119777870121928636),
+UInt256(3287794431127342508, 2178861594103435486, 5204175467577860012, 6011408356079798699),
+UInt256(4109743038909178135, 2723576992629294357, 15728591371327100823, 7514260445099748373),
+]
+
+private let bid_multipliers2_binary80_176: [UInt256] = [
+UInt256(2568589399318236334, 8619764648034390829, 12136212616293131966, 11613941805828424589),
+UInt256(3210736749147795418, 1551333773188212729, 1335207715084251246, 5294055220430754929),
+UInt256(4013420936434744272, 11162539253340041719, 6280695662282701961, 15840941062393219469),
+UInt256(2508388085271715170, 6976587033337526074, 10842963816567770582, 2983059136354680312),
+UInt256(3135485106589643962, 17944105828526683401, 4330332733854937419, 12952195957298126198),
+UInt256(3919356383237054953, 13206760248803578443, 10024601935746059678, 11578558928195269844),
+UInt256(2449597739523159346, 1336696127861154671, 3959533200627593347, 2624913311694655748),
+UInt256(3061997174403949182, 10894242196681219147, 337730482357103779, 17116199694900483397),
+UInt256(3827496468004936478, 4394430708996748125, 14257221158228543436, 16783563600198216343),
+UInt256(2392185292503085298, 16581577248405131290, 11216606233106533600, 1266355213269109406),
+UInt256(2990231615628856623, 11503599523651638305, 4797385754528391192, 1582944016586386758),
+UInt256(3737789519536070779, 9767813386137159977, 10608418211587876894, 1978680020732983447),
+UInt256(2336118449710044237, 3799040357122031033, 18159476428310892818, 15071733068240278367),
+UInt256(2920148062137555296, 9360486464829926696, 8864287480106452311, 9616294298445572150),
+UInt256(3650185077671944120, 11700608081037408370, 11080359350133065389, 7408681854629577284),
+UInt256(4562731347089930150, 14625760101296760463, 4627077150811555928, 13872538336714359508),
+UInt256(2851707091931206344, 4529414044883087385, 9809452246898304311, 8670336460446474693),
+UInt256(3564633864914007930, 5661767556103859231, 16873501327050268293, 6226234557130705462),
+UInt256(4455792331142509912, 16300581481984599847, 16480190640385447462, 12394479214840769731),
+UInt256(2784870206964068695, 10187863426240374904, 17217648177881986520, 3134863490848093178),
+UInt256(3481087758705085869, 8123143264373080727, 3075316148642931534, 3918579363560116473),
+UInt256(4351359698381357336, 14765615098893738812, 17679203241085828129, 14121596241304921399),
+UInt256(2719599811488348335, 9228509436808586758, 1826129988823866773, 1908468623174494018),
+UInt256(3399499764360435419, 6923950777583345543, 11506034522884609274, 6997271797395505427),
+UInt256(4249374705450544274, 4043252453551794025, 9770857135178373688, 17969961783599157591),
+UInt256(2655859190906590171, 7138718801897259169, 17636000755554953315, 11231226114749473495),
+UInt256(3319823988633237714, 4311712483944186058, 8209942889161527932, 9427346625009453964),
+UInt256(4149779985791547142, 14613012641785008381, 1039056574597134107, 11784183281261817455),
+UInt256(2593612491119716964, 4521446882688242334, 2955253368336902769, 5059271541574941958),
+UInt256(3242015613899646205, 5651808603360302917, 12917438747275904269, 10935775445396065351),
+UInt256(4052519517374557756, 11676446772627766551, 2311740378812716624, 18281405325172469593),
+UInt256(2532824698359098597, 16521151269747129902, 8362366764399029746, 11425878328232793496),
+UInt256(3166030872948873247, 6816381031901748666, 1229586418644011375, 5058975873436216062),
+UInt256(3957538591186091559, 3908790271449797928, 10760355060159790027, 1712033823367882173),
+UInt256(2473461619491307224, 9360522947297205561, 6725221912599868766, 17210922204100784022),
+UInt256(3091827024364134030, 11700653684121506951, 13018213409177223862, 12290280718271204220),
+UInt256(3864783780455167538, 5402445068297107881, 11661080743044141924, 6139478860984229466),
+UInt256(2415489862784479711, 7988214186113080330, 370646436761506846, 13060546324969919225),
+UInt256(3019362328480599639, 5373581714213962508, 9686680082806659366, 7102310869357623223),
+UInt256(3774202910600749549, 2105291124340065231, 12108350103508324207, 18101260623551804836),
+UInt256(2358876819125468468, 3621649961926234721, 14485247842333784485, 18230816917360959879),
+UInt256(2948596023906835585, 4527062452407793402, 4271501747635066895, 8953463091419036136),
+UInt256(3685745029883544481, 10270514083937129656, 14562749221398609427, 6580142845846407266),
+UInt256(4607181287354430601, 17449828623348799974, 18203436526748261784, 3613492538880621179),
+UInt256(2879488304596519126, 3988613861951918128, 6765461810790275711, 2258432836800388237),
+UInt256(3599360380745648907, 14209139364294673468, 8456827263487844638, 16658099101282649008),
+UInt256(4499200475932061134, 13149738186940953931, 10571034079359805798, 11599251839748535452),
+UInt256(2812000297457538209, 3606900348410708303, 4301053290386184672, 2637846381415446754),
+UInt256(3515000371821922761, 9120311453940773283, 764630594555342936, 3297307976769308442),
+UInt256(4393750464777403451, 16012075335853354507, 14790846298476342382, 4121634970961635552),
+]
+
+private let bid_multipliers2_binary80_177: [UInt256] = [
+UInt256(2746094040485877157, 7701704075694652615, 6938435927334020036, 16411079912133185932),
+UInt256(3432617550607346446, 14238816113045703673, 4061358890740137142, 2067105816456930799),
+UInt256(4290771938259183058, 8575148104452353783, 9688384631852559331, 11807254307425939307),
+UInt256(2681732461411989411, 9971153583710109018, 12972769422548931438, 5073690932927518115),
+UInt256(3352165576764986764, 7852255961210248369, 6992589741331388489, 15565485703014173452),
+UInt256(4190206970956233455, 9815319951512810461, 13352423195091623516, 5621799073485553103),
+UInt256(2618879356847645909, 13052103997336588394, 10651107506145958649, 12736996457783246497),
+UInt256(3273599196059557387, 2480071941388571781, 4090512345827672504, 2086187516946894410),
+UInt256(4091998995074446733, 16935147982017878438, 9724826450711978534, 2607734396183618012),
+UInt256(2557499371921529208, 12890310497974867976, 1466330513267598679, 15464892052896924970),
+UInt256(3196874214901911510, 16112888122468584970, 1832913141584498349, 14719429047693768308),
+UInt256(3996092768627389388, 10917738116230955404, 11514513463835398745, 4564228254335046673),
+UInt256(2497557980392118367, 16046958359499122935, 16419942951751900023, 14381857705027873931),
+UInt256(3121947475490147959, 15447011930946515765, 15913242671262487125, 13365636112857454509),
+UInt256(3902434344362684949, 14697078895255756803, 6056495283795945195, 2871987085789654424),
+UInt256(2439021465226678093, 11491517318748541954, 1479466543158771794, 17935892993114391679),
+UInt256(3048776831533347617, 529338593153513730, 11072705215803240551, 13196494204538213791),
+UInt256(3810971039416684521, 5273359259869280067, 4617509482899274881, 11883931737245379335),
+UInt256(2381856899635427825, 14825064583486769802, 580100417598352849, 509928308137280228),
+UInt256(2977321124544284782, 4696272674076298540, 9948497558852716869, 5249096403598988189),
+UInt256(3721651405680355977, 15093712879450148983, 12435621948565896086, 11173056522926123141),
+UInt256(2326032128550222486, 2516041522015261258, 14689792745494766910, 2371474308401439059),
+UInt256(2907540160687778107, 12368423939373852381, 9138868895013682829, 12187714922356574632),
+UInt256(3634425200859722634, 10848843905789927572, 16035272137194491441, 1399585597663554577),
+UInt256(4543031501074653293, 4337682845382633658, 1597346097783562685, 6361168015506831126),
+UInt256(2839394688171658308, 5016894787577839988, 5610027329542114582, 6281573018905463406),
+UInt256(3549243360214572885, 6271118484472299985, 7012534161927643227, 17075338310486605065),
+UInt256(4436554200268216106, 12450584124017762885, 13377353720836941938, 16732486869680868427),
+UInt256(2772846375167635066, 12393301095938489707, 10666689084736782663, 15069490311977930671),
+UInt256(3466057968959543833, 6268254333068336326, 8721675337493590425, 14225176871545025435),
+UInt256(4332572461199429791, 12447003934762808312, 1678722135012212224, 3946413034149118081),
+UInt256(2707857788249643619, 14696906486867837051, 1049201334382632640, 2466508146343198801),
+UInt256(3384822235312054524, 13759447090157408409, 15146559723260454512, 3083135182928998501),
+UInt256(4231027794140068155, 17199308862696760512, 5098141598793404428, 3853918978661248126),
+UInt256(2644392371337542597, 8443725029971781368, 3186338499245877767, 11632071398518055887),
+UInt256(3305490464171928246, 15166342305892114614, 3982923124057347209, 9928403229720181955),
+UInt256(4131863080214910308, 9734555845510367459, 14202025941926459819, 17022190055577615348),
+UInt256(2582414425134318942, 15307469440298755470, 6570423204490343435, 8333025775522315640),
+UInt256(3228018031417898678, 9910964763518668529, 17436401042467705102, 5804596200975506646),
+UInt256(4035022539272373348, 3165333917543559854, 7960443247802467665, 16479117288074159116),
+UInt256(2521889087045233342, 11201705735319500717, 363591011449154387, 3381919277405267592),
+UInt256(3152361358806541678, 4778760132294600088, 5066174782738830887, 18062457152038748201),
+UInt256(3940451698508177097, 15196822202223025918, 6332718478423538609, 17966385421621047348),
+UInt256(2462782311567610686, 2580484848748309342, 17793007104296875343, 4311461860872072736),
+UInt256(3078477889459513357, 12448978097790162486, 13017886843516318371, 777641307662703016),
+UInt256(3848097361824391697, 1726164566955539396, 7048986517540622155, 14807109689860542482),
+UInt256(2405060851140244810, 12608067900415681882, 13628988610317664655, 6948600546949145100),
+UInt256(3006326063925306013, 6536712838664826545, 7812863726042305011, 4074064665259043470),
+UInt256(3757907579906632516, 12782577066758421085, 14377765675980269168, 480894813146416434),
+UInt256(2348692237441645322, 17212482703578788986, 11291946556701362182, 300559258216510271),
+]
+
+private let bid_multipliers2_binary80_178: [UInt256] = [
+UInt256(2935865296802056653, 12292231342618710425, 4891561159021926919, 9599071109625413647),
+UInt256(3669831621002570817, 1530231122991224319, 10726137467204796553, 7387152868604379155),
+UInt256(4587289526253213521, 6524474922166418303, 8795985815578607787, 13845627104182861847),
+UInt256(2867055953908258450, 15607011872422481199, 12415020162377711723, 6347673930900594703),
+UInt256(3583819942385323063, 10285392803673325691, 10907089184544751750, 3322906395198355474),
+UInt256(4479774927981653829, 8245054986164269210, 9022175462253551783, 13377005030852720151),
+UInt256(2799859329988533643, 7459002375566362208, 10250545682335857768, 15278157171924031950),
+UInt256(3499824162485667054, 4712066951030564856, 12813182102919822211, 650952391195488322),
+UInt256(4374780203107083817, 15113455725642981878, 16016477628649777763, 14648748544276524114),
+UInt256(2734237626941927386, 2528380800885781818, 5398612499478723198, 6849624830959133620),
+UInt256(3417797033677409232, 12383848037962003080, 15971637661203179805, 17785403075553692832),
+UInt256(4272246292096761540, 15479810047452503851, 1517803002794423141, 8396695789159952328),
+UInt256(2670153932560475963, 451509242803039098, 17089527941242372127, 7553777877438664157),
+UInt256(3337692415700594953, 14399444608785962585, 12138537889698189351, 4830536328370942293),
+UInt256(4172115519625743692, 4164247705700289520, 1338114306840572977, 1426484392036289962),
+UInt256(2607572199766089807, 11826026852917456758, 836321441775358110, 12420767791091150986),
+UInt256(3259465249707612259, 10170847547719433043, 10268773839073973446, 6302587702009162925),
+UInt256(4074331562134515324, 8101873416221903400, 8224281280415078903, 17101606664366229464),
+UInt256(2546457226334072077, 14287042921993465433, 5140175800259424314, 17606033192869975271),
+UInt256(3183071532917590097, 4023745597209668079, 11036905768751668297, 12784169454232693281),
+UInt256(3978839416146987621, 9641368014939473003, 9184446192512197468, 2145153762508702889),
+UInt256(2486774635091867263, 8331698018550864579, 3434435861106429465, 10564093138422715114),
+UInt256(3108468293864834079, 5802936504761192819, 18128102881665200543, 17816802441455781796),
+UInt256(3885585367331042599, 2641984612524103120, 18048442583654112775, 17659317033392339341),
+UInt256(2428490854581901624, 8568769410468646306, 11280276614783820484, 17954602173511293944),
+UInt256(3035613568227377030, 10710961763085807883, 4876973731624999798, 3996508643179565814),
+UInt256(3794516960284221288, 4165330167002484046, 1484531146103861843, 14219007840829233075),
+UInt256(2371573100177638305, 2603331354376552528, 14762890021597077364, 6581036891304576720),
+UInt256(2964466375222047881, 7865850211398078565, 6868453286795089, 8226296114130720900),
+UInt256(3705582969027559851, 14443998782674986110, 4620271585035881765, 14894556161090789029),
+UInt256(2315989355642224907, 6721656229958172366, 16722727795929589815, 11614940609895437095),
+UInt256(2894986694552781134, 3790384269020327554, 11680037708057211461, 9906989743941908465),
+UInt256(3618733368190976417, 13961352373130185251, 5376675098216738518, 16995423198354773485),
+UInt256(4523416710238720522, 3616632411130567852, 2109157854343535244, 12020906961088691049),
+UInt256(2827135443899200326, 6872081275383992811, 10541595695819485335, 16736438887535207714),
+UInt256(3533919304874000407, 17813473631084766822, 8565308601346968765, 16308862590991621738),
+UInt256(4417399131092500509, 17655156020428570624, 1483263714828935149, 6551020183457363460),
+UInt256(2760874456932812818, 13340315521981550592, 927039821768084468, 6400230623874546115),
+UInt256(3451093071166016023, 7452022365622162432, 1158799777210105585, 8000288279843182643),
+UInt256(4313866338957520029, 4703341938600315136, 1448499721512631981, 14612046368231366208),
+UInt256(2696166461848450018, 5245431720838890912, 905312325945394988, 11438371989358297832),
+UInt256(3370208077310562522, 15780161687903389448, 1131640407431743735, 14297964986697872290),
+UInt256(4212760096638203153, 10501830073024461002, 1414550509289679669, 13260770214944952459),
+UInt256(2632975060398876970, 18092858841708757886, 5495780086733437697, 10593824393554289239),
+UInt256(3291218825498596213, 13392701515281171549, 16093097145271572929, 17853966510370249452),
+UInt256(4114023531873245267, 2905818838819300725, 6281313376307302450, 8482400082680648103),
+UInt256(2571264707420778291, 17957037838757920617, 6231663869405757983, 9913186070102792969),
+UInt256(3214080884275972864, 17834611280020012867, 12401265855184585383, 7779796569201103307),
+UInt256(4017601105344966081, 3846520026315464468, 10889896300553343825, 5113059693073991229),
+UInt256(2511000690840603800, 13933290062515635052, 16029557224700615698, 14724877354239714279),
+]
+
+private let bid_multipliers2_binary80_179: [UInt256] = [
+UInt256(3138750863550754750, 17416612578144543816, 1590202457166218007, 9182724655944867040),
+UInt256(3923438579438443438, 12547393685825903962, 1987753071457772509, 6866719801503695896),
+UInt256(2452149112149027149, 3230435035213802072, 5854031688088495722, 6597542885153503887),
+UInt256(3065186390186283936, 8649729812444640494, 7317539610110619652, 17470300643296655667),
+UInt256(3831482987732854920, 10812162265555800617, 18370296549493050374, 3391131730411267967),
+UInt256(2394676867333034325, 6757601415972375386, 4563906315792074627, 15954515386789206192),
+UInt256(2993346084166292906, 13058687788392857136, 14928254931594869092, 15331458215059119836),
+UInt256(3741682605207866133, 7099987698636295613, 213574590784034750, 717578695114348178),
+UInt256(2338551628254916333, 6743335320861378710, 2439327128453715670, 14283544739728631324),
+UInt256(2923189535318645416, 13040855169504111291, 12272530947421920396, 8631058887806013347),
+UInt256(3653986919148306770, 16301068961880139114, 10728977665850012591, 10788823609757516683),
+UInt256(4567483648935383463, 11152964165495398085, 4187850045457739931, 8874343493769507950),
+UInt256(2854677280584614664, 13888131631075705659, 4923249287624781409, 3240621674392248517),
+UInt256(3568346600730768330, 17360164538844632074, 1542375591103588857, 8662463111417698550),
+UInt256(4460433250913460413, 12476833636701014284, 11151341525734261879, 15439764907699511091),
+UInt256(2787770781820912758, 10103864032151827879, 16192960490438689482, 16567382094953276288),
+UInt256(3484713477276140948, 3406458003335009041, 15629514594620973949, 11485855581836819552),
+UInt256(4355891846595176185, 4258072504168761302, 5701835187994053725, 522261422013860728),
+UInt256(2722432404121985115, 14190510361173945573, 17398705047778447290, 2632256397972356907),
+UInt256(3403040505152481394, 13126451933040044063, 7913323254440895400, 12513692534320221942),
+UInt256(4253800631440601743, 7184692879445279271, 5279968049623731346, 15642115667900277427),
+UInt256(2658625394650376089, 11407962077294381400, 10217509058655913947, 14388008310865061296),
+UInt256(3323281743312970112, 424894541335813038, 12771886323319892434, 13373324370153938716),
+UInt256(4154102179141212640, 531118176669766298, 6741485867295089735, 7493283425837647587),
+UInt256(2596313861963257900, 331948860418603936, 8825114685486818988, 11600831168789611598),
+UInt256(3245392327454072375, 414936075523254920, 11031393356858523735, 14501038960987014497),
+UInt256(4056740409317590468, 14353728149686232362, 13789241696073154669, 13514612682806380218),
+UInt256(2535462755823494042, 18194452130408671034, 13229962078473109572, 10752475935967681588),
+UInt256(3169328444779367553, 13519693126156062985, 7314080561236611157, 13440594919959601985),
+UInt256(3961660555974209442, 3064558352412915019, 13754286719973151851, 2965685594667338769),
+UInt256(2476037847483880901, 6527034988685459791, 6290586190769525954, 17994454561162944395),
+UInt256(3095047309354851126, 12770479754284212643, 3251546720034519539, 13269696164598904686),
+UInt256(3868809136693563908, 6739727656000489995, 17899491455325313136, 11975434187321242953),
+UInt256(2418005710433477442, 13435701821855082055, 8881339150364626758, 7484646367075776846),
+UInt256(3022507138041846803, 7571255240464076761, 6489987919528395544, 132435921989945249),
+UInt256(3778133922552308504, 4852383032152708047, 12724170917837882334, 165544902487431561),
+UInt256(2361333701595192815, 3032739395095442529, 14870135851289758314, 13938523619336808438),
+UInt256(2951667126993991018, 17625982299151466874, 4752611758830034181, 8199782487316234739),
+UInt256(3689583908742488773, 12809105837084557784, 15164136735392318534, 14861414127572681328),
+UInt256(2305989942964055483, 10311534157391542567, 9477585459620199084, 4676697811305537926),
+UInt256(2882487428705069354, 8277731678312040305, 7235295806097860951, 5845872264131922408),
+UInt256(3603109285881336693, 1123792561035274573, 13655805776049714093, 2695654311737515105),
+UInt256(4503886607351670866, 6016426719721481121, 3234699164779978904, 7981253908099281786),
+UInt256(2814929129594794291, 8371952718253313604, 13550902024055956575, 4988283692562051116),
+UInt256(3518661411993492864, 5853254879389254101, 16938627530069945719, 1623668597275175991),
+UInt256(4398326764991866080, 7316568599236567627, 7338226357305268436, 15864643801876133701),
+UInt256(2748954228119916300, 4572855374522854767, 2280548464102098821, 692030339317807755),
+UInt256(3436192785149895375, 5716069218153568458, 16685743635409787238, 5476723942574647598),
+UInt256(4295240981437369219, 2533400504264572669, 11633807507407458239, 16069276965073085305),
+UInt256(2684525613398355761, 17724276379661215582, 9576972701343355351, 16960827130811760172),
+]
+
+private let bid_multipliers2_binary80_180: [UInt256] = [
+UInt256(3355657016747944702, 8320287419294355766, 2747843839824418381, 16589347895087312311),
+UInt256(4194571270934930878, 1176987237263168899, 12658176836635298785, 6901626813576976676),
+UInt256(2621607044334331798, 14570675078571644274, 5605517513683367788, 15842731804554080183),
+UInt256(3277008805417914748, 8989971811359779534, 16230268928958985544, 1356670681983048613),
+UInt256(4096261006772393435, 11237464764199724418, 11064464124343956122, 1695838352478810766),
+UInt256(2560163129232745897, 4717572468411133809, 11526976096142360480, 5671584988726644633),
+UInt256(3200203911540932371, 10508651603941305166, 573662064895786888, 7089481235908305791),
+UInt256(4000254889426165464, 8524128486499243553, 9940449617974509418, 8861851544885382238),
+UInt256(2500159305891353415, 5327580304062027220, 17741996057302538146, 10150343233980751803),
+UInt256(3125199132364191769, 2047789361650146122, 3730750997918621067, 3464557005621163946),
+UInt256(3906498915455239711, 7171422720490070556, 13886810784253052141, 18165754312308618644),
+UInt256(2441561822159524819, 11399668227947375953, 17902628777012933396, 13659439454406580605),
+UInt256(3051952277699406024, 9637899266506832038, 8543227915984003033, 17074299318008225756),
+UInt256(3814940347124257530, 12047374083133540048, 1455662858125227984, 7507816092228118483),
+UInt256(2384337716952660956, 12141294820385850434, 909789286328267490, 4692385057642574052),
+UInt256(2980422146190826195, 15176618525482313042, 10360608644765110170, 15088853358907993373),
+UInt256(3725527682738532744, 14359087138425503399, 3727388769101611905, 9637694661780215908),
+UInt256(2328454801711582965, 8974429461515939624, 9247147008329589296, 17552774209681104702),
+UInt256(2910568502139478706, 15829722845322312434, 11558933760411986621, 3494223688391829262),
+UInt256(3638210627674348383, 10563781519798114735, 5225295163660207468, 8979465628917174481),
+UInt256(4547763284592935479, 8593040881320255515, 1919932936147871431, 11224332036146468102),
+UInt256(2842352052870584674, 12288179578466241552, 17340859149588277308, 13932736550232624420),
+UInt256(3552940066088230843, 6136852436228026133, 3229329863275795019, 17415920687790780524),
+UInt256(4441175082610288554, 3059379526857644762, 8648348347522131678, 17158214841311087751),
+UInt256(2775734426631430346, 6523798222713415880, 10016903735628720203, 6112198257392041941),
+UInt256(3469668033289287932, 17378119815246545658, 12521129669535900254, 3028561803312664522),
+UInt256(4337085041611609916, 3275905695348630457, 6428040050065099509, 13009074290995606460),
+UInt256(2710678151007256197, 11270813096447669843, 15546740077359156953, 10436514441085947990),
+UInt256(3388347688759070247, 253458315277423592, 14821739078271558287, 17657329069784822891),
+UInt256(4235434610948837808, 14151880949378943203, 80429774129896243, 17459975318803640710),
+UInt256(2647146631843023630, 8844925593361839501, 16191169673327042816, 8606641565038581492),
+UInt256(3308933289803779538, 1832784954847523569, 6403904036376639808, 10758301956298226865),
+UInt256(4136166612254724422, 11514353230414180269, 12616566063898187664, 13447877445372783581),
+UInt256(2585104132659202764, 2584784750581474764, 10191196799150061242, 8404923403357989738),
+UInt256(3231380165824003455, 3230980938226843455, 12738995998937576553, 1282782217342711365),
+UInt256(4039225207280004318, 17873784228065718031, 11312058980244582787, 6215163790105777110),
+UInt256(2524515754550002699, 6559429124113685865, 13987565890293946098, 1578634359602416742),
+UInt256(3155644693187503374, 3587600386714719428, 3649399307585268910, 11196664986357796735),
+UInt256(3944555866484379217, 13707872520248175093, 4561749134481586138, 4772459196092470111),
+UInt256(2465347416552737011, 1649891297514027577, 5156936218264685288, 7594473015985181723),
+UInt256(3081684270690921263, 15897422177174698183, 11057856291258244514, 9493091269981477154),
+UInt256(3852105338363651579, 15260091703040984825, 9210634345645417739, 2642992050622070634),
+UInt256(2407565836477282237, 7231714305186921563, 17285861512096855846, 17792771096134651811),
+UInt256(3009457295596602796, 13651328899911039858, 16995640871693681904, 13017591833313538955),
+UInt256(3761821619495753495, 17064161124888799823, 12021179052762326572, 16271989791641923694),
+UInt256(2351138512184845934, 17582629730696581745, 14430765935617535964, 946621582921426501),
+UInt256(2938923140231057418, 12754915126515951374, 4203399364239756243, 1183276978651783126),
+UInt256(3673653925288821773, 6720271871290163409, 14477621242154471111, 15314154278596892619),
+UInt256(4592067406611027216, 13012025857540092166, 4261968497410925177, 14531006829818727870),
+UInt256(2870042129131892010, 8132516160962557603, 16498788366163991948, 2164350240995623063),
+]
+
+private let bid_multipliers2_binary80_181: [UInt256] = [
+UInt256(3587552661414865013, 942273164348421196, 16011799439277602031, 2705437801244528829),
+UInt256(4484440826768581266, 5789527473862914400, 1568005225387450922, 17216855306837824748),
+UInt256(2802775516730363291, 8230140689591709404, 980003265867156826, 15372220585201028371),
+UInt256(3503469395912954114, 5675989843562248851, 1225004082333946033, 9991903694646509656),
+UInt256(4379336744891192642, 16318359341307586871, 15366313158199596253, 17101565636735524974),
+UInt256(2737085465556995401, 14810660606744629698, 16521474751515829514, 12994321532173397061),
+UInt256(3421356831946244252, 4678267703148623411, 11428471402540011085, 7019529878361970518),
+UInt256(4276696039932805315, 5847834628935779264, 9673903234747625952, 13386098366379851052),
+UInt256(2672935024958003322, 1349053633871168088, 6046189521717266220, 8366311478987406907),
+UInt256(3341168781197504152, 10909689079193735918, 7557736902146582775, 10457889348734258634),
+UInt256(4176460976496880190, 13637111348992169898, 223799090828452661, 8460675667490435388),
+UInt256(2610288110310550119, 3911508574692718282, 4751560450195170817, 7593765301395216070),
+UInt256(3262860137888187649, 277699699938509948, 15162822599598739329, 14103892645171407991),
+UInt256(4078575172360234561, 4958810643350525340, 506784175788872546, 3794807751182096277),
+UInt256(2549109482725146600, 14628471698162548097, 9540112146722821149, 6983440862916198077),
+UInt256(3186386853406433250, 18285589622703185121, 16536826201830914340, 13340987097072635501),
+UInt256(3982983566758041563, 13633614991524205594, 6835974697006479213, 16676233871340794376),
+UInt256(2489364729223775977, 6215166360488934544, 8884170204056437412, 12728489178801690437),
+UInt256(3111705911529719971, 12380643969038556084, 11105212755070546765, 15910611473502113046),
+UInt256(3889632389412149964, 10864118942870807201, 13881515943838183457, 6053206286595477595),
+UInt256(2431020243382593727, 16013446376149030309, 1758418437257782804, 15312468975190643257),
+UInt256(3038775304228242159, 15405121951758899982, 6809709064999616410, 693842145278752456),
+UInt256(3798469130285302699, 14644716421271237073, 17735508368104296320, 10090674718453216377),
+UInt256(2374043206428314187, 6847104754080829219, 4167163702424103344, 6306671699033260236),
+UInt256(2967554008035392734, 3947194924173648620, 597268609602741276, 7883339623791575295),
+UInt256(3709442510044240917, 14157365692071836583, 746585762003426595, 9854174529739469118),
+UInt256(2318401568777650573, 11154196566758591816, 7384145128893223478, 3853016071873474247),
+UInt256(2898001960972063217, 107687653166076058, 9230181411116529347, 14039642126696618617),
+UInt256(3622502451215079021, 4746295584884982977, 2314354727040885876, 12937866639943385367),
+UInt256(4528128064018848776, 10544555499533616625, 7504629427228495249, 16172333299929231709),
+UInt256(2830080040011780485, 6590347187208510390, 16219608438086279291, 3190179284814687962),
+UInt256(3537600050014725606, 12849620002438025892, 11051138510753073305, 17822782161300523664),
+UInt256(4422000062518407008, 6838652966192756557, 13813923138441341632, 8443419646343490868),
+UInt256(2763750039074004380, 4274158103870472848, 10939544970739532472, 5277137278964681793),
+UInt256(3454687548842505475, 5342697629838091060, 13674431213424415590, 6596421598705852241),
+UInt256(4318359436053131844, 2066686018870225921, 17093039016780519487, 17468899035237091109),
+UInt256(2698974647533207402, 10515050798648667009, 3765620357846742823, 17835590924664263799),
+UInt256(3373718309416509253, 3920441461456057953, 9318711465735816433, 17682802637402941845),
+UInt256(4217147886770636566, 9512237845247460345, 16260075350597158446, 8268445241471513594),
+UInt256(2635717429231647854, 1333462634852274812, 3245018066482142173, 556092257492308093),
+UInt256(3294646786539559817, 10890200330420119323, 4056272583102677716, 5306801340292773020),
+UInt256(4118308483174449771, 18224436431452537058, 458654710450959241, 6633501675365966275),
+UInt256(2573942801984031107, 9084429760444141709, 4898345212459237429, 15675153593172198682),
+UInt256(3217428502480038884, 6743851182127789232, 10734617534001434691, 5758883936183084640),
+UInt256(4021785628100048605, 8429813977659736540, 13418271917501793364, 2586918901801467896),
+UInt256(2513616017562530378, 7574476745251029289, 17609791985293396660, 10840196350480693243),
+UInt256(3142020021953162973, 244723894709010804, 8177181926334582113, 13550245438100866554),
+UInt256(3927525027441453716, 4917590886813651409, 10221477407918227642, 3102748742343919480),
+UInt256(2454703142150908572, 12296866341113307938, 17917638426017362036, 6550903982392337579),
+UInt256(3068378927688635715, 15371082926391634923, 13173675995666926737, 8188629977990421974),
+]
+
+private let bid_multipliers2_binary80_182: [UInt256] = [
+UInt256(3835473659610794644, 14602167639562155750, 11855408976156270517, 14847473490915415371),
+UInt256(2397171037256746652, 18349726811581123152, 2797944591670281169, 11585513941035828559),
+UInt256(2996463796570933316, 4490414440766852324, 3497430739587851462, 646834371012621987),
+UInt256(3745579745713666645, 5613018050958565405, 4371788424484814327, 10031915000620553292),
+UInt256(2340987341071041653, 5813979291062797330, 5038210774516702906, 13187475903028927663),
+UInt256(2926234176338802066, 11879160132255884566, 15521135505000654441, 7260972841931383771),
+UInt256(3657792720423502583, 5625578128465079900, 10178047344396042243, 13687902070841617618),
+UInt256(4572240900529378229, 2420286642153961971, 12722559180495052804, 12498191570124634118),
+UInt256(2857650562830861393, 3818522160559920184, 5645756478595714050, 17034741768182672132),
+UInt256(3572063203538576741, 9384838719127288134, 7057195598244642563, 12070055173373564357),
+UInt256(4465079004423220926, 16342734417336498071, 18044866534660579012, 10475882948289567542),
+UInt256(2790674377764513079, 5602522992407923390, 18195570611803943738, 15770798879535755522),
+UInt256(3488342972205641349, 2391467722082516334, 13521091227900153865, 10490126562564918594),
+UInt256(4360428715257051686, 7601020671030533322, 7677991998020416523, 17724344221633536147),
+UInt256(2725267947035657304, 138951900966695422, 9410431017190148231, 8771872129307266140),
+UInt256(3406584933794571630, 173689876208369278, 2539666734632909481, 6353154143206694771),
+UInt256(4258231167243214537, 9440484382115237405, 12397955455145912659, 12553128697435756367),
+UInt256(2661394479527009085, 17429517784890493138, 10054565168679889364, 5539862426683653778),
+UInt256(3326743099408761357, 7951839175830952711, 3344834423995085897, 6924828033354567222),
+UInt256(4158428874260951696, 14551484988216078792, 18016101085276021083, 13267721060120596932),
+UInt256(2599018046413094810, 9094678117635049245, 11260063178297513177, 5986482653361679130),
+UInt256(3248772558016368513, 2144975610189035749, 240020917589727759, 12094789335129486817),
+UInt256(4060965697520460641, 7292905531163682590, 4911712165414547603, 10506800650484470617),
+UInt256(2538103560950287900, 16087281003045771378, 16904878158666255964, 4260907397339100184),
+UInt256(3172629451187859876, 1662357180097662607, 11907725661478044147, 5326134246673875230),
+UInt256(3965786813984824845, 2077946475122078259, 10272971058420167280, 2045981789914956133),
+UInt256(2478616758740515528, 3604559556164992864, 4114763902298910598, 1278738618696847583),
+UInt256(3098270948425644410, 4505699445206241080, 5143454877873638247, 10821795310225835287),
+UInt256(3872838685532055512, 14855496343362577158, 6429318597342047809, 8915558119354906205),
+UInt256(2420524178457534695, 9284685214601610723, 17853382178620943592, 17101438870665286138),
+UInt256(3025655223071918369, 6994170499824625500, 17705041704848791587, 2930054514622056056),
+UInt256(3782069028839897961, 13354399143208169780, 3684558057351437867, 17497626198559733782),
+UInt256(2363793143024936226, 1428970436864024256, 11526220822699424475, 8630173364886139662),
+UInt256(2954741428781170282, 11009585082934806128, 14407776028374280594, 6176030687680286674),
+UInt256(3693426785976462853, 4538609316813731852, 18009720035467850742, 16943410396455134150),
+UInt256(2308391741235289283, 5142473832222276360, 2032702985312630906, 5977945479357070940),
+UInt256(2885489676544111604, 1816406271850457546, 2540878731640788632, 16695803886051114483),
+UInt256(3606862095680139505, 2270507839813071932, 12399470451405761599, 2423010783854341487),
+UInt256(4508577619600174381, 7449820818193727819, 15499338064257201998, 16863821535100090571),
+UInt256(2817861012250108988, 6961981020584773839, 7381243280947057297, 5928202441010168703),
+UInt256(3522326265312636235, 8702476275730967299, 4614868082756433717, 12021939069690098783),
+UInt256(4402907831640795294, 6266409326236321220, 1156899085018154243, 1192365781830459766),
+UInt256(2751817394775497058, 17751563884179864474, 9946433964991122209, 16886129678139895018),
+UInt256(3439771743469371323, 12966082818370054785, 3209670419384126954, 7272604042392705060),
+UInt256(4299714679336714154, 11595917504535180577, 8623774042657546596, 18314127089845657133),
+UInt256(2687321674585446346, 11859134458761875764, 16919073822729436383, 2222957394298759901),
+UInt256(3359152093231807933, 5600546036597568898, 2702098204702243862, 16613754798155613588),
+UInt256(4198940116539759916, 11612368564174349026, 12600994792732580636, 11543821460839741176),
+UInt256(2624337572837349947, 16481102389463743949, 12487307763885250801, 16438260449879614043),
+UInt256(3280421966046687434, 15989691968402292033, 1774076649574399790, 6712767507067353842),
+]
+
+private let bid_multipliers2_binary80_183: [UInt256] = [
+UInt256(4100527457558359293, 10763742923648089233, 6829281830395387641, 17614331420688968111),
+UInt256(2562829660973974558, 9033182336493749722, 15797516190065587036, 4091428110289523213),
+UInt256(3203537076217468198, 2068105883762411345, 10523523200727207987, 5114285137861904017),
+UInt256(4004421345271835247, 11808504391557789989, 17766090019336397888, 1781170403899992117),
+UInt256(2502763340794897029, 14297844272364700599, 13409649271298942632, 1113231502437495073),
+UInt256(3128454175993621287, 4037247285173712037, 12150375570696290386, 1391539378046868841),
+UInt256(3910567719992026609, 434873088039752143, 1352911408088199270, 10962796259413361859),
+UInt256(2444104824995016630, 11801010726093314849, 7763098657696206400, 2240061643705963258),
+UInt256(3055131031243770788, 5527891370761867753, 14315559340547645904, 2800077054632454073),
+UInt256(3818913789054713485, 6909864213452334692, 4059391120402393668, 3500096318290567591),
+UInt256(2386821118159195928, 6624508142621403134, 11760491487106271850, 11410932235786380552),
+UInt256(2983526397698994910, 8280635178276753918, 5477242322028064005, 5040293257878199882),
+UInt256(3729407997123743638, 1127421935991166589, 16069924939389855814, 10912052590775137757),
+UInt256(2330879998202339773, 14539696765276642830, 12349546096332353836, 2208346850807073194),
+UInt256(2913599997752924717, 4339562901313639826, 6213560583560666487, 2760433563508841493),
+UInt256(3641999997191155896, 10036139645069437686, 16990322766305608916, 17285600009668215578),
+UInt256(4552499996488944870, 12545174556336797108, 12014531421027235338, 3160255938375717856),
+UInt256(2845312497805590544, 3229048079283110288, 16732454174996797894, 6586845979912211564),
+UInt256(3556640622256988180, 4036310099103887861, 2468823645036445751, 17456929511745040263),
+UInt256(4445800777821235225, 5045387623879859826, 7697715574722945093, 17209475871253912425),
+UInt256(2778625486138272015, 14682582310993382151, 9422758252629228587, 13061765428747389218),
+UInt256(3473281857672840019, 13741541870314339785, 7166761797359147830, 11715520767506848618),
+UInt256(4341602322091050024, 12565241319465536827, 13570138265126322692, 5421028922528784964),
+UInt256(2713501451306906265, 7853275824665960517, 6175493406490257730, 12611515113435266411),
+UInt256(3391876814133632831, 14428280799259838550, 12331052776540210067, 6541021854939307205),
+UInt256(4239846017667041039, 13423664980647410284, 6190443933820486776, 3564591300246746103),
+UInt256(2649903761041900649, 15307319640545713283, 13092399495492580043, 2227869562654216314),
+UInt256(3312379701302375812, 5299091495399977892, 11753813350938337149, 16619895008599934105),
+UInt256(4140474626627969765, 6623864369249972365, 14692266688672921437, 6939810705467753919),
+UInt256(2587796641642481103, 6445758239994926680, 11488509689634269850, 6643224700131040152),
+UInt256(3234745802053101379, 3445511781566270446, 14360637112042837312, 17527402912018575997),
+UInt256(4043432252566376723, 18141947782240001770, 8727424353198770833, 3462509566313668380),
+UInt256(2527145157853985452, 9032874354686307154, 10066326239176619674, 13693283525014512498),
+UInt256(3158931447317481815, 11291092943357883943, 3359535762115998785, 7893232369413364814),
+UInt256(3948664309146852269, 9502180160769967024, 18034477757927162193, 14478226480194093922),
+UInt256(2467915193216782668, 8244705609694923342, 11271548598704476371, 2131362522480226845),
+UInt256(3084893991520978335, 10305882012118654178, 4866063711525819655, 16499261208382447269),
+UInt256(3856117489401222919, 8270666496720929818, 15305951676262050377, 16012390492050671182),
+UInt256(2410073430875764324, 12086695588091662992, 14177905816091169390, 3090215029890587633),
+UInt256(3012591788594705405, 15108369485114578740, 17722382270113961737, 13086140824218010349),
+UInt256(3765739735743381757, 5050403801111059714, 3706233763932900556, 2522617974990349224),
+UInt256(2353587334839613598, 5462345384908106273, 6928082120885450751, 10800008271223744073),
+UInt256(2941984168549516997, 16051303767989908649, 13271788669534201343, 8888324320602292187),
+UInt256(3677480210686896247, 6229071654705222100, 2754677781635587967, 6498719382325477330),
+UInt256(4596850263358620309, 3174653549954139721, 3443347227044484959, 3511713209479458758),
+UInt256(2873031414599137693, 4290001477935031277, 13681307062971272859, 9112349783565743580),
+UInt256(3591289268248922116, 9974187865846177001, 3266575773431927362, 6778751211029791571),
+UInt256(4489111585311152645, 12467734832307721251, 8694905735217297106, 17696811050642015271),
+UInt256(2805694740819470403, 10098177279406019734, 3128473075297116739, 15672192925078647449),
+UInt256(3507118426024338004, 8011035580830136763, 13133963380976171732, 14978555137920921407),
+]
+
+private let bid_multipliers2_binary80_184: [UInt256] = [
+UInt256(4383898032530422505, 10013794476037670954, 11805768207792826762, 276449848691600143),
+UInt256(2739936270331514065, 17787836593592014106, 11990291148297904630, 4784467173859637993),
+UInt256(3424920337914392582, 8399737686707853921, 5764491898517604979, 15203956004179323299),
+UInt256(4281150422392990728, 1276300071530041593, 11817300891574394128, 14393258986796766220),
+UInt256(2675719013995619205, 797687544706275996, 468284029592914474, 8995786866747978888),
+UInt256(3344648767494524006, 5608795449310232899, 585355036991143093, 2021361546580197802),
+UInt256(4180810959368155007, 16234366348492566931, 14566751851521092578, 7138387951652635156),
+UInt256(2613006849605096879, 17064007995448936188, 6798376897986988909, 9073178488210284877),
+UInt256(3266258562006371099, 16718323975883782331, 8497971122483736136, 15953159128690244000),
+UInt256(4082823202507963874, 16286218951427340010, 6010777884677282267, 1494704837153253384),
+UInt256(2551764501567477421, 14790572863069475410, 8368422196350689320, 17075091587716641029),
+UInt256(3189705626959346777, 4653158023554680551, 1237155708583585843, 2897120410936249670),
+UInt256(3987132033699183471, 10428133547870738592, 15381502691011646015, 17456458568952475799),
+UInt256(2491957521061989669, 13435112495060293476, 9613439181882278759, 17827815633236379231),
+UInt256(3114946901327487087, 2958832563543203133, 12016798977352848449, 17673083523118086134),
+UInt256(3893683626659358858, 17533598759711167629, 1185940666408896850, 8256296348615443956),
+UInt256(2433552266662099286, 15570185243246867672, 3047055925719254483, 9771871236312040377),
+UInt256(3041940333327624108, 10239359517203808782, 3808819907149068104, 7603153026962662567),
+UInt256(3802425416659530135, 12799199396504760977, 13984396920791110938, 9503941283703328208),
+UInt256(2376515885412206334, 14917028650456557467, 1822719047853362480, 10551649320741968034),
+UInt256(2970644856765257918, 9422913776215921025, 16113456865098866812, 13189561650927460043),
+UInt256(3713306070956572398, 2555270183415125474, 6306763026091419803, 16486952063659325053),
+UInt256(2320816294347857748, 15432101919916617133, 8553412909734525281, 7998502030573384206),
+UInt256(2901020367934822186, 843383326186219800, 15303452155595544505, 14609813556644118162),
+UInt256(3626275459918527732, 10277601194587550559, 682571120784879016, 4427208890522983990),
+UInt256(4532844324898159665, 12847001493234438198, 14688271956263262482, 5534011113153729988),
+UInt256(2833027703061349791, 1111846905630442018, 4568483954237151147, 8070442964148469147),
+UInt256(3541284628826687238, 15224866687320216234, 14933976979651214742, 5476367686758198529),
+UInt256(4426605786033359048, 9807711322295494485, 9444099187709242619, 16068831645302523969),
+UInt256(2766628616270849405, 6129819576434684053, 8208405001531970589, 7737176769100383529),
+UInt256(3458285770338561756, 12273960488970742970, 14872192270342351140, 14283156979802867315),
+UInt256(4322857212923202195, 15342450611213428713, 9366868301073163117, 17853946224753584144),
+UInt256(2701785758077001372, 7283188622794698993, 17383507734239196708, 13464559399684684042),
+UInt256(3377232197596251715, 9103985778493373742, 7894326612516832173, 16830699249605855052),
+UInt256(4221540246995314644, 6768296204689329274, 644536228791264409, 7203316006725155103),
+UInt256(2638462654372071652, 13453557164785606604, 5014521161421928159, 16031287550271691700),
+UInt256(3298078317965089565, 16816946455982008255, 6268151451777410199, 15427423419412226721),
+UInt256(4122597897456361957, 7186125014695346607, 3223503296294374845, 14672593255837895497),
+UInt256(2576623685910226223, 6797171143398285581, 8932218587825066134, 11476213794112378638),
+UInt256(3220779607387782779, 3884777910820469072, 15776959253208720572, 5121895205785697489),
+UInt256(4025974509234728474, 244286370098198437, 1274454992801349099, 6402369007232121861),
+UInt256(2516234068271705296, 4764364999738761927, 3102377379714537139, 1695637620306382211),
+UInt256(3145292585339631620, 5955456249673452408, 17713029779925335135, 15954605080665141476),
+UInt256(3931615731674539525, 7444320312091815511, 3694543151197117303, 15331570332404038941),
+UInt256(2457259832296587203, 6958543204271078646, 9226618497139280170, 16499760485393606194),
+UInt256(3071574790370734004, 4086492986911460404, 2309901084569324405, 11401328569887231935),
+UInt256(3839468487963417505, 5108116233639325505, 2887376355711655507, 416602657076876206),
+UInt256(2399667804977135940, 14721787692093048200, 13333825268388254451, 16401277725168905293),
+UInt256(2999584756221419925, 18402234615116310250, 16667281585485318064, 15889911138033743712),
+UInt256(3749480945276774907, 9167735213613224101, 11610729945001871773, 1415644848832628024),
+]
+
+private let bid_multipliers2_binary80_185: [UInt256] = [
+UInt256(2343425590797984317, 3423991499294571111, 9562549224839863810, 3190621039734086467),
+UInt256(2929281988497480396, 8891675392545601793, 7341500512622441858, 13211648336522383892),
+UInt256(3661602485621850495, 11114594240682002241, 13788561659205440227, 7291188383798204057),
+UInt256(4577003107027313119, 9281556782425114898, 3400644018724636572, 4502299461320367167),
+UInt256(2860626941892070699, 12718502016656778667, 6737088530130285761, 12037309200180005287),
+UInt256(3575783677365088374, 11286441502393585430, 3809674644235469298, 1211578444942842897),
+UInt256(4469729596706360468, 4884679841137205979, 13985465342149112430, 10737845093033329429),
+UInt256(2793580997941475292, 12276296937565529545, 6435072829629501317, 2099467164718442990),
+UInt256(3491976247426844115, 15345371171956911931, 12655527055464264550, 7236019974325441641),
+UInt256(4364970309283555144, 14570027946518752010, 11207722800902942783, 18268397004761577859),
+UInt256(2728106443302221965, 9106267466574220006, 11616512768991727143, 18335277155617068018),
+UInt256(3410133054127777456, 15994520351645162912, 5297268924384883121, 18307410426093947118),
+UInt256(4262666317659721821, 1546406365846902024, 6621586155481103902, 9049204977335270186),
+UInt256(2664166448537326138, 3272346987868007717, 4138491347175689939, 1044067092407155962),
+UInt256(3330208060671657672, 13313805771689785454, 9784800202397000327, 15140141920791108665),
+UInt256(4162760075839572090, 16642257214612231818, 3007628216141474601, 14313491382561497927),
+UInt256(2601725047399732556, 15013096777560032790, 6491453653515809530, 2028403086459854348),
+UInt256(3252156309249665696, 319626898240489371, 17337689103749537720, 11758875894929593743),
+UInt256(4065195386562082120, 399533622800611714, 17060425361259534246, 14698594868661992179),
+UInt256(2540747116601301325, 249708514250382321, 15274451869214596808, 4574935774486357208),
+UInt256(3175933895751626656, 4923821661240365806, 5258006781236082298, 5718669718107946510),
+UInt256(3969917369689533320, 6154777076550457257, 15795880513399878680, 16371709184489708946),
+UInt256(2481198356055958325, 3846735672844035786, 2954896293233842319, 10232318240306068091),
+UInt256(3101497945069947906, 9420105609482432636, 12916992403397078707, 8178711781955197210),
+UInt256(3876872431337434883, 2551759974998264987, 16146240504246348384, 5611703709016608608),
+UInt256(2423045269585896801, 17735751048869773281, 7785557305940273788, 3507314818135380380),
+UInt256(3028806586982371002, 8334630755805052889, 14343632650852730139, 4384143522669225475),
+UInt256(3786008233727963753, 1194916407901540304, 4094482758283748962, 868493384909143940),
+UInt256(2366255146079977345, 12276037801006932450, 2559051723927343101, 5154494383995602867),
+UInt256(2957818932599971682, 1509989195976501850, 12422186691763954684, 11054803998421891487),
+UInt256(3697273665749964602, 11110858531825403121, 6304361327850167547, 13818504998027364359),
+UInt256(2310796041093727876, 11555972600818264854, 15469440875974824477, 6330722614553408772),
+UInt256(2888495051367159845, 14444965751022831068, 10113429058113754788, 12525089286619148869),
+UInt256(3610618814208949807, 4221149133496375123, 12641786322642193485, 15656361608273936087),
+UInt256(4513273517761187259, 664750398443081000, 11190546884875353953, 5735393955060256396),
+UInt256(2820795948600742036, 16556370063522783289, 6994091803047096220, 15113836267981130008),
+UInt256(3525994935750927546, 2248718505693927495, 13354300772236258180, 445551261266860894),
+UInt256(4407493669688659432, 12034270168972185177, 12081189946867934821, 556939076583576117),
+UInt256(2754683543555412145, 7521418855607615736, 633214689151377407, 2653929932078429025),
+UInt256(3443354429444265181, 14013459587936907574, 791518361439221758, 17152470470380199993),
+UInt256(4304193036805331477, 3681766429638970755, 10212769988653803006, 12217216051120474184),
+UInt256(2690120648003332173, 4606947027738050674, 4077138233694932927, 3024074013522908461),
+UInt256(3362650810004165216, 10370369803099951246, 14319794828973441966, 17615150572185799288),
+UInt256(4203313512505206520, 12962962253874939058, 8676371499362026650, 12795566178377473302),
+UInt256(2627070945315754075, 8101851408671836911, 10034418205528654560, 12608914879913308718),
+UInt256(3283838681644692594, 5515628242412408235, 7931336738483430296, 15761143599891635897),
+UInt256(4104798352055865742, 16117907339870286102, 5302484904676899967, 1254685426154993256),
+UInt256(2565498970034916089, 5462006068991540909, 17149111120705226191, 7701707418987952641),
+UInt256(3206873712543645111, 11439193604666814041, 7601330845599369027, 5015448255307552897),
+UInt256(4008592140679556389, 9687305987406129647, 14113349575426599188, 1657624300707053217),
+]
+
+private let bid_multipliers2_binary80_186: [UInt256] = [
+UInt256(2505370087924722743, 8360409251342524981, 15738372512282706348, 10259387224796684069),
+UInt256(3131712609905903429, 5838825545750768323, 5837907585071219223, 12824234030995855086),
+UInt256(3914640762382379286, 11910217950615848308, 2685698462911636125, 11418606520317430953),
+UInt256(2446650476488987054, 2832200200707517288, 10901933576174548386, 9442472084412088298),
+UInt256(3058313095611233817, 12763622287739172418, 13627416970218185483, 2579718068660334564),
+UInt256(3822891369514042272, 2119469804391801811, 7810899175917956045, 17059705641107581917),
+UInt256(2389307105946276420, 1324668627744876132, 2575968975735028576, 12968159034905932651),
+UInt256(2986633882432845525, 1655835784681095165, 3219961219668785720, 16210198793632415813),
+UInt256(3733292353041056906, 6681480749278756860, 8636637543013370055, 1816004418330968150),
+UInt256(2333307720650660566, 8787611486726610941, 14621270501238132092, 8052531789097936950),
+UInt256(2916634650813325708, 1761142321553487869, 4441530071265501403, 10065664736372421187),
+UInt256(3645793313516657135, 2201427901941859836, 10163598607509264658, 7970394902038138580),
+UInt256(4557241641895821418, 16586842932709488507, 12704498259386580823, 739621590692897417),
+UInt256(2848276026184888386, 14978462851370818221, 5634468402902919062, 7379792521824142742),
+UInt256(3560345032731110483, 9499706527358746968, 11654771522056036732, 1368615425402619),
+UInt256(4450431290913888104, 7262947140771045806, 14568464402570045915, 1710769281753274),
+UInt256(2781519556821180065, 4539341962981903629, 4493604233178890792, 16141970295296953460),
+UInt256(3476899446026475081, 10285863472154767440, 10228691309901001395, 1730718795411640209),
+UInt256(4346124307533093851, 17469015358620847204, 12785864137376251743, 15998456549546713974),
+UInt256(2716327692208183657, 8612291589924335550, 17214537122714933147, 16916564371107778090),
+UInt256(3395409615260229571, 15377050505832807342, 12294799366538890626, 16534019445457334708),
+UInt256(4244262019075286964, 14609627113863621274, 6145127171318837475, 11444152269966892577),
+UInt256(2652663761922054352, 18354388983019539104, 8452390500501661326, 4846752159515613909),
+UInt256(3315829702402567941, 4496242155064872264, 10565488125627076657, 15281812236249293194),
+UInt256(4144787128003209926, 10231988712258478234, 13206860157033845822, 5267207240029452780),
+UInt256(2590491955002006204, 1783306926734160992, 12865973616573541542, 17127062580300571700),
+UInt256(3238114943752507755, 2229133658417701240, 16082467020716926928, 12185456188520938817),
+UInt256(4047643679690634693, 16621475128304290263, 1656339702186607044, 15231820235651173521),
+UInt256(2529777299806646683, 12694264964403875366, 7952741341507711259, 296515610427207643),
+UInt256(3162221624758308354, 11256145187077456304, 717554640029863265, 14205702568316173265),
+UInt256(3952777030947885443, 4846809446992044572, 896943300037329082, 3922070155113052869),
+UInt256(2470485644342428402, 723412895156333905, 9783961599378106484, 7062979865373045947),
+UInt256(3088107055428035502, 10127638155800193189, 16841638017650021009, 8828724831716307434),
+UInt256(3860133819285044378, 3436175657895465679, 7216989466780362549, 15647592058072772197),
+UInt256(2412583637053152736, 6759295804612053953, 11428147444378808449, 12085588045509176575),
+UInt256(3015729546316440920, 8449119755765067442, 450126250191346850, 1271927001604307007),
+UInt256(3769661932895551150, 10561399694706334302, 9786029849593959370, 10813280788860159566),
+UInt256(2356038708059719469, 1989188790764071035, 1504582637568836702, 11369986511464987633),
+UInt256(2945048385074649336, 7098172006882476697, 15715786352243209590, 4989111102476458733),
+UInt256(3681310481343311670, 8872715008603095872, 5809674885021848275, 15459760914950349224),
+UInt256(4601638101679139588, 1867521723899094032, 7262093606277310344, 14713015125260548626),
+UInt256(2876023813549462242, 10390573114291709578, 4538808503923318965, 9195634453287842892),
+UInt256(3595029766936827803, 3764844356009861164, 14896882666758924514, 16106229085037191518),
+UInt256(4493787208671034754, 94369426584938552, 174359259739104027, 10909414319441713590),
+UInt256(2808617005419396721, 4670666910042974499, 108974537336940017, 4512540940437377042),
+UInt256(3510771256774245901, 10450019655981106027, 13971276226953338733, 10252362193974109206),
+UInt256(4388464070967807376, 17674210588403770438, 12852409265264285512, 17427138760895024412),
+UInt256(2742790044354879610, 11046381617752356524, 3421069772362790541, 10891961725559390258),
+UInt256(3428487555443599513, 4584604985335669847, 4276337215453488176, 18226638175376625726),
+UInt256(4285609444304499391, 10342442250096975213, 733735500889472317, 4336553645511230541),
+]
+
+private let bid_multipliers2_binary80_187: [UInt256] = [
+UInt256(2678505902690312119, 13381555433951691364, 2764427697269614150, 5016189037658213040),
+UInt256(3348132378362890149, 12115258274012226301, 3455534621587017687, 15493608333927542108),
+UInt256(4185165472953612687, 1309014787233119164, 8931104295411160013, 14755324398982039731),
+UInt256(2615728420596007929, 7735663269661781333, 14805312221486750816, 11527920758577468784),
+UInt256(3269660525745009911, 14281265105504614571, 4671582221576274808, 14409900948221835980),
+UInt256(4087075657181262389, 13239895363453380310, 1227791758542955606, 18012376185277294975),
+UInt256(2554422285738288993, 10580777611372056645, 14602427904371510966, 6646049097370921456),
+UInt256(3193027857172861241, 17837658032642458711, 4417976825182224995, 17530933408568427627),
+UInt256(3991284821466076552, 8462014485520909677, 910785013050393340, 17301980742283146630),
+UInt256(2494553013416297845, 5288759053450568548, 2875083642370189790, 1590365927072190836),
+UInt256(3118191266770372306, 11222634835240598589, 3593854552962737237, 11211329445695014353),
+UInt256(3897739083462965383, 4804921507195972428, 9104004209630809451, 179103751836604229),
+UInt256(2436086927164353364, 9920604969638564623, 14913374667874031714, 16252840909393735307),
+UInt256(3045108658955441705, 12400756212048205779, 14030032316415151739, 11092679099887393326),
+UInt256(3806385823694302132, 1665887209778093512, 12925854377091551770, 9254162856431853753),
+UInt256(2378991139808938832, 10264551542966084253, 8078658985682219856, 10395537803697296500),
+UInt256(2973738924761173540, 12830689428707605316, 14710009750530162724, 12994422254621620625),
+UInt256(3717173655951466925, 16038361785884506645, 18387512188162703405, 16243027818277025781),
+UInt256(2323233534969666828, 12329819125391510605, 13798038126815383580, 12457735395636835065),
+UInt256(2904041918712083535, 15412273906739388257, 3412489603237065763, 15572169244546043832),
+UInt256(3630052398390104419, 14653656364996847417, 8877298022473720108, 14853525537255166885),
+UInt256(4537565497987630524, 13705384437818671367, 15708308546519538040, 120162847859406991),
+UInt256(2835978436242269077, 17789237310491445412, 16735221869215793131, 75101779912129369),
+UInt256(3544973045302836347, 8401488582832143054, 2472283262810189797, 13928935280172325423),
+UInt256(4431216306628545434, 5890174710112790913, 12313726115367513055, 3576111044933243067),
+UInt256(2769510191642840896, 8293045212247882225, 778549794463613803, 9152598430724358773),
+UInt256(3461887739553551120, 10366306515309852781, 5584873261506905158, 6829062019978060562),
+UInt256(4327359674441938900, 12957883144137315976, 11592777595311019351, 17759699561827351511),
+UInt256(2704599796526211812, 17322049001940598293, 7245485997069387094, 18017341253783176550),
+UInt256(3380749745657764766, 3205817178716196250, 13668543514764121772, 13298304530374194880),
+UInt256(4225937182072205957, 13230643510250021121, 7862307356600376407, 16622880662967743600),
+UInt256(2641210738795128723, 10574995203119957152, 16443157143943705014, 17306829441995921606),
+UInt256(3301513423493910904, 8607057985472558537, 2107202356220079652, 12410164765640126199),
+UInt256(4126891779367388630, 10758822481840698171, 7245688963702487469, 15512705957050157749),
+UInt256(2579307362104617894, 2112578032723048453, 2222712593100360716, 12001284232370042545),
+UInt256(3224134202630772367, 11864094577758586374, 7390076759802838799, 15001605290462553182),
+UInt256(4030167753288465459, 10218432203770845064, 14223912898772691, 14140320594650803573),
+UInt256(2518854845805290912, 4080677118143084213, 8889945561732932, 6531857362443058281),
+UInt256(3148568557256613640, 5100846397678855266, 4622798450379554069, 8164821703053822851),
+UInt256(3935710696570767050, 6376057997098569082, 15001870099829218394, 14817713147244666468),
+UInt256(2459819185356729406, 8596722266613993580, 13987854830820649400, 13872756735455304447),
+UInt256(3074773981695911758, 1522530796412716167, 17484818538525811750, 17340945919319130558),
+UInt256(3843467477119889697, 11126535532370671017, 17244337154729876784, 12452810362294137390),
+UInt256(2402167173199931061, 36555680090587530, 3860181694065091134, 7783006476433835869),
+UInt256(3002708966499913826, 4657380618540622316, 14048599154436139726, 505386058687519028),
+UInt256(3753386208124892282, 15045097810030553703, 17560748943045174657, 9855104610214174593),
+UInt256(2345866380078057676, 14014872149696483968, 17892997117044316016, 17688655427452328881),
+UInt256(2932332975097572095, 17518590187120604961, 3919502322595843405, 3664075210605859485),
+UInt256(3665416218871965119, 17286551715473368297, 9511063921672192160, 9191780031684712260),
+UInt256(4581770273589956399, 16996503625914322467, 16500515920517628104, 11489725039605890325),
+]
+
+private let bid_multipliers2_binary80_188: [UInt256] = [
+UInt256(2863606420993722749, 17540343793837533398, 8006979441109823613, 7181078149753681453),
+UInt256(3579508026242153437, 8090371687014753036, 785352264532503708, 13588033705619489720),
+UInt256(4474385032802691796, 14724650627195829199, 981690330665629635, 16985042132024362150),
+UInt256(2796490645501682372, 18426278678852169057, 7531085484307100378, 8309808323301532392),
+UInt256(3495613306877102966, 4586104274855659705, 14025542873811263377, 1163888367272139682),
+UInt256(4369516633596378707, 14956002380424350440, 3696870536981915509, 6066546477517562506),
+UInt256(2730947895997736692, 7041658478551525073, 2310544085613697193, 6097434557662170519),
+UInt256(3413684869997170865, 8802073098189406341, 7499866125444509395, 12233479215505101052),
+UInt256(4267106087496463581, 15614277391164145830, 13986518675233024648, 10680163000953988411),
+UInt256(2666941304685289738, 12064766378691285096, 4129888153593252501, 6675101875596242757),
+UInt256(3333676630856612173, 5857585936509330562, 5162360191991565626, 12955563362922691350),
+UInt256(4167095788570765216, 11933668439064051106, 15676322276844232841, 6971082166798588380),
+UInt256(2604434867856728260, 7458542774415031941, 14409387441455033429, 15886141400317587497),
+UInt256(3255543584820910325, 9323178468018789927, 4176676246536628075, 6022618695114820660),
+UInt256(4069429481026137906, 16265659103450875313, 609159289743397190, 2916587350466137921),
+UInt256(2543393425641336191, 14777722958084184974, 11909939602158093003, 15657925149323499913),
+UInt256(3179241782051670239, 13860467679177843314, 5664052465842840446, 14960720418226986987),
+UInt256(3974052227564587799, 12713898580544916238, 16303437619158326366, 9477528485928957925),
+UInt256(2483782642227867374, 14863715640481654505, 5577962493546566075, 1311769285278210799),
+UInt256(3104728302784834218, 9356272513747292323, 11584139135360595497, 15474769661879927211),
+UInt256(3880910378481042773, 2471968605329339596, 9868487900773356468, 5508404022067745302),
+UInt256(2425568986550651733, 3850823387544531199, 15391176974838123600, 12666124550647116622),
+UInt256(3031961233188314666, 9425215252858051903, 14627285200120266596, 15832655688308895777),
+UInt256(3789951541485393333, 2558147029217789071, 13672420481722945342, 1344075536676568105),
+UInt256(2368719713428370833, 3904684902474812121, 15462791828717922694, 14675105265705018778),
+UInt256(2960899641785463541, 9492542146520903056, 5493431730615239656, 9120509545276497664),
+UInt256(3701124552231829426, 16477363701578516724, 6866789663269049570, 11400636931595622080),
+UInt256(2313202845144893391, 14910038331913960856, 13515115576397931789, 11737084100674651704),
+UInt256(2891503556431116739, 14025861896465063166, 16893894470497414737, 836297070561150918),
+UInt256(3614379445538895924, 12920641352153941054, 11893996051266992613, 5657057356628826552),
+UInt256(4517974306923619905, 16150801690192426318, 5644123027228964958, 11683007714213421094),
+UInt256(2823733941827262441, 3176722028729184592, 17362634947300266811, 2690193802956000280),
+UInt256(3529667427284078051, 8582588554338868645, 3256549610415781897, 17197800308977164061),
+UInt256(4412084284105097564, 6116549674496197902, 8682373031447115276, 7662192330939291365),
+UInt256(2757552677565685977, 13046215583414899497, 814797126227059143, 14012242243691832911),
+UInt256(3446940846957107472, 2472711423986460659, 5630182426211211833, 12903616786187403235),
+UInt256(4308676058696384340, 3090889279983075824, 2426042014336626888, 2294462927452090331),
+UInt256(2692922536685240212, 11155177836844198198, 1516276258960391805, 1434039329657556457),
+UInt256(3366153170856550265, 13943972296055247747, 11118717360555265564, 6404235180499333475),
+UInt256(4207691463570687832, 3594907314786895972, 9286710682266694051, 8005293975624166844),
+UInt256(2629807164731679895, 2246817071741809982, 15027566213271459590, 2697465725551410326),
+UInt256(3287258955914599868, 16643579394959426190, 9561085729734548679, 12595204193794038715),
+UInt256(4109073694893249836, 2357730169989731122, 2727985125313410041, 11132319223815160490),
+UInt256(2568171059308281147, 10696953393098357759, 6316676721748269180, 40170487243393450),
+UInt256(3210213824135351434, 8759505722945559295, 3284159883757948571, 50213109054241813),
+UInt256(4012767280169189293, 1726010116827173310, 17940257909979599425, 13897824441599965978),
+UInt256(2507979550105743308, 3384599332230677271, 6600975175309861737, 1768611248358896880),
+UInt256(3134974437632179135, 4230749165288346589, 3639532950709939267, 6822450078876009004),
+UInt256(3918718047040223919, 676750438183045332, 9161102206814811988, 3916376580167623351),
+UInt256(2449198779400139949, 7340498051505485188, 14949060916114033300, 11671107399459540403),
+]
+
+private let bid_multipliers2_binary80_189: [UInt256] = [
+UInt256(3061498474250174936, 13787308582809244390, 239582071432990009, 14588884249324425503),
+UInt256(3826873092812718670, 17234135728511555487, 9522849626146013320, 4401047256373368167),
+UInt256(2391795683007949169, 6159648811892334275, 12869310043982340181, 2750654535233355105),
+UInt256(2989744603759936461, 12311247033292805748, 11474951536550537322, 8050004187469081785),
+UInt256(3737180754699920577, 1554000736333843473, 14343689420688171653, 839133197481576423),
+UInt256(2335737971687450360, 12500465506277121931, 2047276860289025427, 2830301257639679216),
+UInt256(2919672464609312950, 15625581882846402413, 16394154130643445495, 17372934627331762732),
+UInt256(3649590580761641188, 10308605316703227209, 6657634608022143157, 17104482265737315511),
+UInt256(4561988225952051485, 12885756645879034011, 12933729278455066851, 7545544776889480677),
+UInt256(2851242641220032178, 10359440912888090209, 5777737789820722830, 2410122476342231471),
+UInt256(3564053301525040223, 3725929104255336953, 11833858255703291441, 12236025132282565147),
+UInt256(4455066626906300279, 45725361891783288, 957264764346950590, 1459973360071042721),
+UInt256(2784416641816437674, 6946107378823446411, 598290477716844118, 14747541405326565413),
+UInt256(3480520802270547092, 17906006260384083821, 14582921152428218860, 9211054719803430958),
+UInt256(4350651002838183866, 3935763751770553161, 4393593385253109863, 11513818399754288698),
+UInt256(2719156876773864916, 7071538363283983629, 14275210911851663424, 14113665527487512292),
+UInt256(3398946095967331145, 8839422954104979537, 4008955584532415568, 17642081909359390365),
+UInt256(4248682619959163931, 15660964711058612325, 9622880499092907365, 3605858312989686340),
+UInt256(2655426637474477457, 7482259935197938751, 8320143321146761055, 4559504454832247915),
+UInt256(3319283296843096821, 13964510937424811343, 5788493133006063415, 1087694550112921990),
+UInt256(4149104121053871027, 3620580616498850467, 2623930397830191364, 15194676242923316199),
+UInt256(2593190075658669391, 18403763949807639205, 17780857563139727267, 273300614972296816),
+UInt256(3241487594573336739, 18393018918832161103, 8391013898642495371, 14176683823997534732),
+UInt256(4051859493216670924, 18379587630112813475, 5877081354875731310, 13109168761569530511),
+UInt256(2532412183260419328, 2263870231965732614, 1367332837583638117, 3581544457553568666),
+UInt256(3165515229075524160, 2829837789957165767, 10932538083834323454, 9088616590369348736),
+UInt256(3956894036344405200, 3537297237446457209, 9053986586365516414, 2137398701106910112),
+UInt256(2473058772715253250, 2210810773404035755, 17187956662546917518, 15170932243473982532),
+UInt256(3091323465894066562, 11986885503609820502, 16873259809756258994, 9740293267487702357),
+UInt256(3864154332367583203, 5760234842657499820, 11868202725340547935, 2951994547504852138),
+UInt256(2415096457729739502, 1294303767447243435, 16640998740192618267, 8762525619831614443),
+UInt256(3018870572162174377, 10841251746163830102, 16189562406813384930, 6341471006362130149),
+UInt256(3773588215202717971, 18163250701132175532, 11013580971661955354, 17150210794807438494),
+UInt256(2358492634501698732, 9046188678993915755, 16106860144143497904, 15330567765182036963),
+UInt256(2948115793127123415, 11307735848742394694, 15521889161751984477, 716465632767994588),
+UInt256(3685144741408904269, 9522983792500605464, 10178989415335204788, 5507268059387381139),
+UInt256(4606430926761130336, 16515415759053144734, 12723736769169005985, 6884085074234226423),
+UInt256(2879019329225706460, 10322134849408215459, 3340649462303240836, 15831768217464861275),
+UInt256(3598774161532133075, 12902668561760269323, 18010869883161214758, 1342966198121524977),
+UInt256(4498467701915166344, 11516649683772948750, 17901901335524130543, 10902079784506682029),
+UInt256(2811542313696978965, 7197906052358092969, 6577002316275193685, 13731328892957758125),
+UInt256(3514427892121223706, 13609068583875004115, 12832938913771380011, 3329103060915033944),
+UInt256(4393034865151529633, 7787963692988979336, 11429487623786837109, 17996436881425956141),
+UInt256(2745646790719706020, 16396692354186581845, 7143429764866773193, 13553616060104916541),
+UInt256(3432058488399632526, 2049121369023675690, 13540973224510854396, 3106962019848981964),
+UInt256(4290073110499540657, 11784773748134370421, 7702844493783792187, 3883702524811227454),
+UInt256(2681295694062212911, 447954564942899657, 7120120817828564069, 121471068793323207),
+UInt256(3351619617577766138, 14395001261460788283, 13511837040713092990, 4763524854419041913),
+UInt256(4189524521972207673, 8770379539971209546, 12278110282463978333, 15177778104878578199),
+UInt256(2618452826232629795, 17010702258550475726, 12285504944967374362, 11791954324762805326),
+]
+
+private let bid_multipliers2_binary80_190: [UInt256] = [
+UInt256(3273066032790787244, 16651691804760706754, 6133509144354442145, 5516570869098730850),
+UInt256(4091332540988484056, 2367870682241331826, 16890258467297828489, 11507399604800801466),
+UInt256(2557082838117802535, 1479919176400832391, 15168097560488530710, 274595725359419061),
+UInt256(3196353547647253168, 15684957025783204201, 14348435932183275483, 9566616693554049634),
+UInt256(3995441934559066461, 1159452208519453636, 4100486859946930642, 7346584848515174138),
+UInt256(2497151209099416538, 3030500639538352474, 11786176324321607459, 9203301548749371740),
+UInt256(3121439011374270672, 13011497836277716401, 5509348368547233516, 6892440917509326771),
+UInt256(3901798764217838340, 16264372295347145501, 11498371479111429799, 8615551146886658464),
+UInt256(2438624227636148963, 941860647737190130, 9492325183658337576, 12302248494445243396),
+UInt256(3048280284545186203, 15012383864953651375, 2642034442718146162, 15377810618056554245),
+UInt256(3810350355681482754, 14153793812764676314, 17137601108679846415, 9998891235715916998),
+UInt256(2381468972300926721, 13457807151405310600, 15322686711352291913, 13166836049963529980),
+UInt256(2976836215376158402, 2987200883974474539, 706614315480813276, 2623487007172248763),
+UInt256(3721045269220198002, 12957373141822868981, 14718325949633180307, 3279358758965310954),
+UInt256(2325653293262623751, 12710044232066681017, 11504796727734431643, 18190500288849177010),
+UInt256(2907066616578279689, 11275869271655963368, 545937854385875842, 18126439342634083359),
+UInt256(3633833270722849612, 259778534287790498, 682422317982344803, 13434677141437828390),
+UInt256(4542291588403562015, 324723167859738122, 10076399934332706812, 12181660408369897584),
+UInt256(2838932242752226259, 7120481007553418182, 10909435977385329661, 16836909792085961798),
+UInt256(3548665303440282824, 4288915241014384824, 4413422934876886269, 7211079184825288535),
+UInt256(4435831629300353530, 5361144051267981030, 5516778668596107836, 13625534999458998573),
+UInt256(2772394768312720956, 7962401050469876047, 17283044723154731109, 17739331411516649916),
+UInt256(3465493460390901195, 9953001313087345059, 16992119885516025983, 8339106209113648683),
+UInt256(4331866825488626494, 7829565622931793420, 16628463838467644575, 5812196742964672950),
+UInt256(2707416765930391559, 281792495904982984, 1169417862187502051, 10550151991994002450),
+UInt256(3384270957412989448, 14187298675163392442, 1461772327734377564, 8576003971565115158),
+UInt256(4230338696766236810, 17734123343954240552, 11050587446522747763, 10720004964456393948),
+UInt256(2643961685478898006, 15695513108398788249, 6906617154076717352, 4394160093571552266),
+UInt256(3304952106848622508, 10396019348643709503, 13244957461023284594, 5492700116964440332),
+UInt256(4131190133560778135, 12995024185804636879, 11944510807851717838, 16089247183060326223),
+UInt256(2581993833475486334, 15039419143768979905, 14382848282548405505, 5444093470985315985),
+UInt256(3227492291844357918, 9575901892856449074, 4143502297903343169, 11416802857159032886),
+UInt256(4034365364805447398, 2746505329215785534, 14402749909233954770, 435945516166627395),
+UInt256(2521478353003404623, 15551623886042029671, 4390032674843833827, 4884151966031530026),
+UInt256(3151847941254255779, 14827843839125149185, 875854825127404380, 1493503939112024628),
+UInt256(3939809926567819724, 13923118780479048577, 5706504549836643379, 1866879923890030785),
+UInt256(2462381204104887327, 17925321274654181168, 15095780389716371871, 17307701016927126905),
+UInt256(3077976505131109159, 17794965574890338557, 422981413435913223, 17022940252731520727),
+UInt256(3847470631413886449, 17632020950185535292, 5140412785222279433, 16666989297487013005),
+UInt256(2404669144633679031, 4102484066224877701, 12436130027618700454, 3499339283288301272),
+UInt256(3005836430792098789, 516419064353709223, 1710104479241211855, 13597546140965152398),
+UInt256(3757295538490123486, 5257209848869524432, 15972688654333678531, 12385246657779052593),
+UInt256(2348309711556327178, 17120814210825616482, 9982930408958549082, 5434936151898213919),
+UInt256(2935387139445408973, 12177645726677244795, 3255290974343410544, 16017042226727543207),
+UInt256(3669233924306761217, 1386999103064392281, 17904171773211426893, 1574558709699877392),
+UInt256(4586542405383451521, 6345434897257878256, 8545156661232119904, 6579884405552234644),
+UInt256(2866589003364657200, 15495111856854643670, 5340722913270074940, 4112427753470146653),
+UInt256(3583236254205821501, 922145747358752971, 15899275678442369483, 5140534691837683316),
+UInt256(4479045317757276876, 5764368202625829118, 15262408579625573950, 1813982346369716241),
+UInt256(2799403323598298047, 12826102163495919007, 4927319343838595814, 14968797021763236363),
+]
+
+private let bid_multipliers2_binary80_191: [UInt256] = [
+UInt256(3499254154497872559, 11420941685942510855, 1547463161370856864, 9487624240349269645),
+UInt256(4374067693122340699, 9664491089000750664, 15769387006995734792, 11859530300436587056),
+UInt256(2733792308201462937, 3734463921411775213, 9855866879372334245, 7412206437772866910),
+UInt256(3417240385251828671, 9279765920192106920, 16931519617642805710, 13876944065643471542),
+UInt256(4271550481564785839, 6988021381812745747, 2717655448343955522, 8122808045199563619),
+UInt256(2669719050977991149, 11285042391274047947, 17839435719710829865, 9688441046677115166),
+UInt256(3337148813722488937, 271244933810396222, 17687608631211149427, 16722237326773781862),
+UInt256(4171436017153111171, 4950742185690383182, 12886138752159160976, 16291110640039839423),
+UInt256(2607147510720694482, 788370856842795537, 3442150701672087706, 10181944150024899640),
+UInt256(3258934388400868102, 10208835607908270229, 8914374395517497537, 3504058150676348741),
+UInt256(4073667985501085128, 3537672473030561978, 15754654012824259825, 8991758706772823831),
+UInt256(2546042490938178205, 2211045295644101236, 14458344776442550294, 17149064237801484654),
+UInt256(3182553113672722756, 7375492637982514449, 18072930970553187868, 12212958260397080010),
+UInt256(3978191392090903445, 9219365797478143062, 8756105657909321123, 15266197825496350012),
+UInt256(2486369620056814653, 8067946632637533366, 860880017765937798, 7235530631721524806),
+UInt256(3107962025071018316, 14696619309224304611, 10299472059062198055, 18267785326506681815),
+UInt256(3884952531338772895, 18370774136530380764, 8262654055400359665, 18223045639705964365),
+UInt256(2428095332086733059, 18399262862972569833, 14387530821480000599, 4471874497175145872),
+UInt256(3035119165108416324, 18387392560288324388, 4149355471567837037, 978157103041544436),
+UInt256(3793898956385520406, 4537496626650853869, 5186694339459796296, 5834382397229318449),
+UInt256(2371186847740950253, 16670993446938947380, 5547526971376066637, 3646488998268324031),
+UInt256(2963983559676187817, 7003683753391520513, 6934408714220083296, 9169797266262792942),
+UInt256(3704979449595234771, 13366290710166788545, 13279696911202492024, 11462246582828491178),
+UInt256(2315612155997021732, 6048088684640548889, 1382281541860475659, 7163904114267806986),
+UInt256(2894515194996277165, 7560110855800686111, 6339537945752982478, 4343194124407370829),
+UInt256(3618143993745346456, 14061824588178245543, 3312736413763840193, 14652364692363989344),
+UInt256(4522679992181683070, 17577280735222806928, 17975978572486963954, 4480397810172822968),
+UInt256(2826674995113551919, 6374114441086866426, 11234986607804352471, 7411934649785402259),
+UInt256(3533343743891939899, 3355957032931195129, 4820361222900664781, 4653232293804364919),
+UInt256(4416679679864924873, 18030004346446157623, 10637137547053218880, 10428226385682844053),
+UInt256(2760424799915578046, 4351223688887766658, 13565739994549343656, 6517641491051777533),
+UInt256(3450530999894472557, 14662401647964484131, 7733802956331903762, 8147051863814721917),
+UInt256(4313163749868090697, 4492944004673441452, 5055567676987491799, 960442792913626588),
+UInt256(2695727343667556685, 14337305048989370667, 12383101834971958182, 7517805773212098474),
+UInt256(3369659179584445857, 4086573255954549622, 10867191275287559824, 173885179660347284),
+UInt256(4212073974480557321, 9719902588370574932, 4360617057254673972, 217356474575434105),
+UInt256(2632546234050348325, 17604154163800079092, 11948757697638947040, 9359219833464422124),
+UInt256(3290682792562935407, 8170134649467935153, 14935947122048683800, 11699024791830527654),
+UInt256(4113353490703669259, 5600982293407531038, 4834875847278691038, 14623780989788159568),
+UInt256(2570845931689793287, 1194770924166012946, 16856855459831345611, 4528177100190211826),
+UInt256(3213557414612241608, 15328521710489679895, 11847697287934406206, 1048535356810376878),
+UInt256(4016946768265302011, 713908064402548253, 10197935591490619853, 10534041232867746906),
+UInt256(2510591730165813756, 16587093604747450322, 8679552753895331360, 8889618779756035768),
+UInt256(3138239662707267196, 2287122932224761287, 1626068905514388392, 11112023474695044710),
+UInt256(3922799578384083995, 2858903665280951608, 15867644187175149202, 13890029343368805888),
+UInt256(2451749736490052496, 17927715855296452419, 9917277616984468251, 13292954358032891584),
+UInt256(3064687170612565621, 3962900745411013908, 7784911002803197410, 12004506929113726576),
+UInt256(3830858963265707026, 9565311950191155289, 9731138753503996763, 5782261624537382412),
+UInt256(2394286852041066891, 10590005987296859959, 17611176767008467737, 1308070506122170056),
+UInt256(2992858565051333614, 8625821465693687045, 17402284940333196767, 6246774151080100473),
+]
+
+private let bid_multipliers2_binary80_192: [UInt256] = [
+UInt256(3741073206314167018, 1558904795262332999, 7917798120134332247, 3196781670422737688),
+UInt256(2338170753946354386, 5586001515466346028, 11866152852725039510, 8915517571655292911),
+UInt256(2922713442432942982, 16205873931187708343, 14832691065906299388, 1921024927714340331),
+UInt256(3653391803041178728, 11033970377129859621, 13929177813955486331, 2401281159642925413),
+UInt256(4566739753801473410, 13792462971412324527, 3576414212162194201, 16836659504835820478),
+UInt256(2854212346125920881, 13231975375560090733, 9152787910242453232, 3605383162881305943),
+UInt256(3567765432657401102, 2704911164167949704, 16052670906230454444, 4506728953601632429),
+UInt256(4459706790821751377, 12604510992064712939, 1619094559078516439, 5633411192002040536),
+UInt256(2787316744263594611, 960290342399363730, 17152835163919930438, 10438411022642357191),
+UInt256(3484145930329493263, 15035420983281368375, 12217671918045137240, 3824641741448170681),
+UInt256(4355182412911866579, 14182590210674322565, 10660403879129033646, 4780802176810213351),
+UInt256(2721989008069916612, 6558275872457757651, 8968595433669339980, 16823059415788547056),
+UInt256(3402486260087395765, 8197844840572197064, 6599058273659287072, 2582080196026132204),
+UInt256(4253107825109244706, 14858992069142634234, 8248822842074108840, 3227600245032665255),
+UInt256(2658192390693277941, 13898556061641534300, 9767200294723705929, 2017250153145415785),
+UInt256(3322740488366597427, 3538137021769754163, 12209000368404632411, 7133248709859157635),
+UInt256(4153425610458246783, 18257729332494356416, 10649564442078402610, 4304874868896559139),
+UInt256(2595891006536404239, 18328609860450054616, 6655977776299001631, 7302232811487737366),
+UInt256(3244863758170505299, 18299076307135180366, 8319972220373752039, 4516104995932283804),
+UInt256(4056079697713131624, 18262159365491587554, 1176593238612414241, 1033445226487966851),
+UInt256(2535049811070707265, 11413849603432242221, 5347056792560146804, 12175118312623449042),
+UInt256(3168812263838384082, 432253949008139064, 11295507009127571409, 15218897890779311302),
+UInt256(3961015329797980102, 9763689473114949638, 14119383761409464262, 5188564308191975416),
+UInt256(2475634581123737564, 1490619902269455620, 4212928832453527259, 17077910747902148347),
+UInt256(3094543226404671955, 1863274877836819525, 5266161040566909074, 16735702416450297529),
+UInt256(3868179033005839943, 16164151652578188118, 11194387319136024247, 11696255983708096104),
+UInt256(2417611895628649964, 17020123810502449430, 2384806056032627250, 14227689017458641921),
+UInt256(3022014869535812456, 2828410689418510171, 12204379606895559871, 8561239234968526593),
+UInt256(3777518586919765570, 3535513361773137714, 10643788490192061935, 6089863025283270337),
+UInt256(2360949116824853481, 6821381869535598975, 11264053824797426613, 10723693418443125817),
+UInt256(2951186396031066851, 13138413355346886623, 9468381262569395362, 18016302791481295175),
+UInt256(3688982995038833564, 11811330675756220375, 7223790559784356299, 13297006452496843161),
+UInt256(4611228743798541955, 14764163344695275469, 4418052181303057470, 12009572047193666047),
+UInt256(2882017964874088722, 6921759081220853216, 5067125622528104871, 2894296511068653375),
+UInt256(3602522456092610902, 17875570888380842328, 6333907028160131088, 17452928694117980431),
+UInt256(4503153070115763628, 13121091573621277102, 7917383785200163861, 3369416793937923923),
+UInt256(2814470668822352267, 17424054270368073997, 336678847322714509, 4411728505424896404),
+UInt256(3518088336027940334, 17168381819532704592, 5032534577580781040, 10126346650208508409),
+UInt256(4397610420034925418, 12237105237561104932, 6290668221975976300, 12657933312760635511),
+UInt256(2748506512521828386, 12259876791903078486, 13155039675589760995, 17134580357330173003),
+UInt256(3435633140652285483, 6101473953024072300, 7220427557632425436, 16806539428235328349),
+UInt256(4294541425815356854, 3015156422852702471, 9025534447040531796, 2561430211584608820),
+UInt256(2684088391134598033, 15719530819565102756, 12558488057041414228, 10824265919095156321),
+UInt256(3355110488918247542, 5814355469174214733, 15698110071301767785, 13530332398868945401),
+UInt256(4193888111147809427, 16491316373322544225, 5787579533845046020, 3077857443304018039),
+UInt256(2621180069467380892, 8001229724112896188, 15146452254721623522, 11147032938919787083),
+UInt256(3276475086834226115, 10001537155141120236, 486321244692477787, 4710419136794958045),
+UInt256(4095593858542782644, 7890235425499012391, 607901555865597234, 1276337902566309652),
+UInt256(2559746161589239152, 14154769177791658552, 7297467500057080127, 5409397207531331437),
+UInt256(3199682701986548940, 17693461472239573190, 9121834375071350159, 2150060490986776392),
+]
+
+private let bid_multipliers2_binary80_193: [UInt256] = [
+UInt256(3999603377483186176, 3670082766589914872, 2178920931984411890, 16522633669015634202),
+UInt256(2499752110926991360, 2293801729118696795, 1361825582490257431, 14938332061562159280),
+UInt256(3124690138658739200, 2867252161398370993, 15537340033394985501, 14061229058525311196),
+UInt256(3905862673323424000, 3584065201747963742, 5586616986461568165, 3741478267874475283),
+UInt256(2441164170827140000, 2240040751092477338, 17326693671820643815, 4644266926635241004),
+UInt256(3051455213533925000, 2800050938865596673, 12434995052921028961, 1193647639866663351),
+UInt256(3814319016917406250, 3500063673581995842, 1708685760869122489, 6103745568260717093),
+UInt256(2383949385573378906, 6799225814416135305, 5679614618970589459, 15344056026231417943),
+UInt256(2979936731966723632, 17722404304874944939, 11711204292140624728, 14568384014361884525),
+UInt256(3724920914958404541, 3706261307384129558, 10027319346748393006, 18210480017952355656),
+UInt256(2328075571849002838, 4622256326328774926, 1655388573290357725, 6769863992792834381),
+UInt256(2910094464811253547, 15001192444765744465, 11292607753467722964, 13074016009418430880),
+UInt256(3637618081014066934, 14139804537529792678, 280701636552489993, 16342520011773038600),
+UInt256(4547022601267583668, 8451383635057465039, 9574249082545388300, 6593091959434134538),
+UInt256(2841889125792239792, 14505486808765691457, 12901434704231949543, 13344054511501109895),
+UInt256(3552361407240299740, 18131858510957114322, 2291735325007773217, 12068382120948999464),
+UInt256(4440451759050374676, 4218079064986841286, 12088041193114492330, 1250419595904085618),
+UInt256(2775282349406484172, 11859671452471551612, 2943339727269169802, 5393198265867441415),
+UInt256(3469102936758105215, 14824589315589439515, 3679174659086462252, 15964869869189077577),
+UInt256(4336378670947631519, 13919050626059411489, 18434026379140241528, 1509343262776795355),
+UInt256(2710236669342269699, 15616935668928214037, 4603737459321569099, 943339539235497097),
+UInt256(3387795836677837124, 14909483567732879642, 10366357842579349277, 15014232479326535083),
+UInt256(4234744795847296406, 190110385956547937, 3734575266369410789, 4932732543876005142),
+UInt256(2646715497404560253, 13953877046505006172, 13863324587549351503, 5388800849136197166),
+UInt256(3308394371755700317, 3607288252849094003, 17329155734436689379, 2124315042992858553),
+UInt256(4135492964694625396, 9120796334488755408, 17049758649618473819, 16490451859023236904),
+UInt256(2584683102934140872, 14923869745910247938, 10656099156011546137, 8000689402675829113),
+UInt256(3230853878667676091, 208093108678258307, 4096751908159656863, 14612547771772174295),
+UInt256(4038567348334595113, 14095174441129986596, 509253866772183175, 13653998696287829965),
+UInt256(2524104592709121946, 1891954998065159766, 9541655703587390292, 15451278212820975584),
+UInt256(3155130740886402432, 11588315784436225516, 2703697592629462058, 867353692316667864),
+UInt256(3943913426108003040, 14485394730545281895, 3379621990786827572, 10307564152250610638),
+UInt256(2464945891317501900, 9053371706590801184, 9029792771882849088, 15665599632011407457),
+UInt256(3081182364146877375, 11316714633238501480, 11287240964853561361, 1135255466304707705),
+UInt256(3851477955183596719, 9534207273120738946, 14109051206066951701, 6030755351308272535),
+UInt256(2407173721989747949, 12876408573341543697, 13429843022219232717, 6075065103781364287),
+UInt256(3008967152487184937, 2260452661394765910, 2952245722491877184, 12205517398154093262),
+UInt256(3761208940608981171, 7437251845170845291, 12913679189969622288, 15256896747692616578),
+UInt256(2350755587880613232, 2342439394018084355, 5765206484517319978, 9535560467307885361),
+UInt256(2938444484850766540, 2928049242522605444, 2594822087219262069, 2696078547280080893),
+UInt256(3673055606063458175, 3660061553153256805, 3243527609024077586, 7981784202527489021),
+UInt256(4591319507579322718, 18410134996723734718, 8666095529707484887, 753858216304585468),
+UInt256(2869574692237076699, 6894648354524946295, 804623687639790150, 7388690412831447773),
+UInt256(3586968365296345874, 4006624424728794964, 14840837664831901400, 12490979184533909),
+UInt256(4483710456620432342, 14231652567765769514, 104303007330325134, 15613723980667386),
+UInt256(2802319035387770214, 4283096836426218042, 4676875398008841112, 13844816632770080828),
+UInt256(3502898794234712767, 14577243082387548360, 15069466284365827198, 17306020790962601035),
+UInt256(4378623492793390959, 13609867834557047547, 390088781747732382, 12409153951848475486),
+UInt256(2736639682995869349, 15423696424239236572, 16384706553088190403, 3144035201477909275),
+UInt256(3420799603744836687, 5444562475016882004, 2034139117650686387, 17765102057129550305),
+]
+
+private let bid_multipliers2_binary80_194: [UInt256] = [
+UInt256(4275999504681045859, 2194017075343714601, 2542673897063357984, 17594691552984549978),
+UInt256(2672499690425653661, 17512161736585679289, 13118386231733068500, 10996682220615343736),
+UInt256(3340624613032067077, 8055144115449935400, 2562924734384171913, 13745852775769179670),
+UInt256(4175780766290083846, 14680616162739807154, 3203655917980214892, 3347257914429310876),
+UInt256(2609862978931302404, 4563699083284991567, 6613970967165022211, 11315408233373095105),
+UInt256(3262328723664128005, 5704623854106239459, 3655777690528889860, 9532574273288980978),
+UInt256(4077910904580160006, 11742465836060187227, 18404780168443276037, 11915717841611226222),
+UInt256(2548694315362600004, 2727355129110229113, 9197144596063353571, 9753166660220710341),
+UInt256(3185867894203250005, 3409193911387786391, 16108116763506579868, 7579772306848500022),
+UInt256(3982334867754062506, 8873178407662120893, 15523459935955836931, 9474715383560625027),
+UInt256(2488959292346289066, 10157422523216213462, 12008005469186092034, 3615854105511696690),
+UInt256(3111199115432861333, 3473406117165491020, 5786634799627839234, 13743189668744396671),
+UInt256(3888998894291076666, 8953443664884251679, 7233293499534799043, 7955615049075720030),
+UInt256(2430624308931922916, 10207588308980045203, 11438337464850331258, 2666416396458631067),
+UInt256(3038280386164903645, 12759485386225056504, 9686235812635526168, 12556392532428064642),
+UInt256(3797850482706129557, 2114298677499156918, 12107794765794407710, 15695490665535080802),
+UInt256(2373656551691330973, 3627279682650667026, 2955685710194116915, 5197995647532037597),
+UInt256(2967070689614163716, 9145785621740721686, 12917979174597421952, 1885808540987659093),
+UInt256(3708838362017704645, 11432232027175902108, 6924101931392001632, 2357260676234573866),
+UInt256(2318023976261065403, 9450988026198632769, 13550935743974776828, 1473287922646608666),
+UInt256(2897529970326331754, 7202049014320903058, 3103611624686307323, 1841609903308260833),
+UInt256(3621912462907914692, 18225933304755904630, 13102886567712659961, 16137070434417489753),
+UInt256(4527390578634893366, 4335672557235329172, 7155236172786049144, 6336279987739698479),
+UInt256(2829619111646808353, 16544853403554244444, 13695394644846056523, 3960174992337311550),
+UInt256(3537023889558510442, 6846008699160641843, 17119243306057570654, 338532721994251533),
+UInt256(4421279861948138052, 17780882910805578112, 16787368114144575413, 9646537939347590224),
+UInt256(2763299913717586283, 1889679782398710512, 10492105071340359633, 8334929221305937842),
+UInt256(3454124892146982853, 16197157783280551852, 13115131339175449541, 15030347545059810206),
+UInt256(4317656115183728567, 6411389173818526103, 16393914173969311927, 4952876376042599046),
+UInt256(2698535071989830354, 10924647261277660670, 17163725386371901810, 10013076762667706260),
+UInt256(3373168839987287943, 4432437039742300030, 12231284696110101455, 3292973916479857017),
+UInt256(4216461049984109929, 928860281250487134, 6065733833282851010, 17951275450881984983),
+UInt256(2635288156240068705, 12109752721850024218, 17626141701083945593, 15831233175228628518),
+UInt256(3294110195300085882, 1302132847030366561, 12809305089500156184, 5953983413753621936),
+UInt256(4117637744125107352, 10851038095642734010, 2176573306593031518, 7442479267192027420),
+UInt256(2573523590078192095, 6781898809776708756, 5972044335048032603, 39863523567629234),
+UInt256(3216904487597740119, 3865687493793498041, 7465055418810040753, 13884887459741700254),
+UInt256(4021130609497175149, 220423348814484647, 13943005291939938846, 3521051269394961605),
+UInt256(2513206630935734468, 2443607602222746856, 15631907335103543634, 16035715098654014715),
+UInt256(3141508288669668085, 3054509502778433571, 1093140095169877927, 10821271836462742586),
+UInt256(3926885360837085106, 8429822896900429867, 15201483174244511121, 8914903777151040329),
+UInt256(2454303350523178191, 9880325328990156571, 7195083974689125498, 17101029906787869966),
+UInt256(3067879188153972739, 7738720642810307810, 4382168949934018969, 12152915346630061649),
+UInt256(3834848985192465924, 5061714785085496858, 14701083224272299520, 1356086128005413349),
+UInt256(2396780615745291202, 12386943777533211344, 13799863033597575104, 847553830003383343),
+UInt256(2995975769681614003, 6260307685061738372, 17249828791996968880, 1059442287504229179),
+UInt256(3744969712102017504, 3213698587899785062, 3115541916286659484, 1324302859380286474),
+UInt256(2340606070063760940, 2008561617437365663, 15782271752961325889, 10051061323967454854),
+UInt256(2925757587579701175, 2510702021796707079, 15116153672774269457, 17175512673386706472),
+UInt256(3657196984474626468, 16973435582528047561, 14283506072540448918, 7634332786451219377),
+]
+
+private let bid_multipliers2_binary80_195: [UInt256] = [
+UInt256(4571496230593283086, 2770050404450507836, 4019324535393397436, 319543946209248414),
+UInt256(2857185144120801928, 15566339558063731109, 11735449871475649205, 9423087003235556067),
+UInt256(3571481430151002411, 1011180373870112271, 834254284062397794, 16390544772471832987),
+UInt256(4464351787688753013, 15099033522619804050, 14877875910360160955, 11264808928735015426),
+UInt256(2790219867305470633, 11742738960851071483, 13910358462402488501, 4734662571245690689),
+UInt256(3487774834131838292, 843365645781675642, 12776262059575722722, 10530014232484501266),
+UInt256(4359718542664797865, 1054207057227094553, 6746955537614877595, 3939145753750850774),
+UInt256(2724824089165498665, 12188094456835403855, 15746062257077768257, 156123086880587782),
+UInt256(3406030111456873332, 1400060015762091107, 15070891802919822417, 4806839877028122631),
+UInt256(4257537639321091665, 1750075019702613884, 14226928735222390117, 10620235864712541193),
+UInt256(2660961024575682290, 12623011933382603437, 18115202496368769631, 8943490424659032198),
+UInt256(3326201280719602863, 6555392879873478489, 8808945065178798327, 6567677012396402343),
+UInt256(4157751600899503579, 3582555081414460207, 15622867349900885813, 3597910247068115025),
+UInt256(2598594750562189736, 18379997990379895293, 16681821121329135489, 4554536913631265843),
+UInt256(3248243438202737171, 4528253414265317501, 7017218346379255649, 10304857160466470207),
+UInt256(4060304297753421464, 1048630749404258972, 13383208951401457465, 17492757469010475663),
+UInt256(2537690186095888415, 655394218377661857, 17587877631480686724, 4015444390490465433),
+UInt256(3172112732619860518, 14654300828254241034, 8149788984068694693, 5019305488113081792),
+UInt256(3965140915774825648, 9094503998463025485, 963864193231092558, 10885817878568740143),
+UInt256(2478213072359266030, 5684064999039390928, 2908258129983126801, 2191950155678074686),
+UInt256(3097766340449082537, 16328453285654014468, 3635322662478908501, 7351623713024981261),
+UInt256(3872207925561353172, 6575508551785354373, 4544153328098635626, 13801215659708614480),
+UInt256(2420129953475845732, 13333064881720622291, 5145938839275341218, 13237445805745271954),
+UInt256(3025162441844807165, 16666331102150777864, 1820737530666788619, 7323435220326814135),
+UInt256(3781453052306008957, 6997855822406308618, 2275921913333485774, 4542608006981129764),
+UInt256(2363408157691255598, 6679502898217636838, 6034137214260816512, 16674188059645369815),
+UInt256(2954260197114069497, 17572750659626821855, 16766043554680796449, 2395991000847160653),
+UInt256(3692825246392586872, 8130880269251363607, 16345868424923607657, 7606674769486338720),
+UInt256(2308015778995366795, 5081800168282102254, 17133696793218336641, 16283386776997431460),
+UInt256(2885019723744208494, 1740564191925239914, 12193748954668144994, 6519175415964625613),
+UInt256(3606274654680260617, 11399077276761325701, 6018814156480405434, 17372341306810557824),
+UInt256(4507843318350325772, 413788540669493414, 12135203714027894697, 12492054596658421472),
+UInt256(2817402073968953607, 9481989874773209192, 2972816302840046282, 890005095270431564),
+UInt256(3521752592461192009, 7240801325039123586, 3716020378550057852, 10335878405942815263),
+UInt256(4402190740576490011, 13662687674726292386, 13868397510042348123, 12919848007428519078),
+UInt256(2751369212860306257, 6233336787490238789, 13279434462203855481, 5769061995429130472),
+UInt256(3439211516075382821, 12403357002790186391, 2764235022472655639, 11823013512713800994),
+UInt256(4299014395094228527, 1669138198205569276, 17290351833372983261, 10167080872464863339),
+UInt256(2686883996933892829, 7960740401519562654, 1583097859003338730, 8660268554504233539),
+UInt256(3358604996167366036, 14562611520326841221, 11202244360608949221, 1601963656275516115),
+UInt256(4198256245209207545, 18203264400408551527, 167747395479022814, 6614140588771783048),
+UInt256(2623910153255754716, 4459511222614262848, 7022371149815471114, 17968895923264528117),
+UInt256(3279887691569693395, 5574389028267828560, 8777963937269338893, 13237747867225884338),
+UInt256(4099859614462116744, 2356300266907397796, 10972454921586673617, 2712126778750191711),
+UInt256(2562412259038822965, 1472687666817123622, 16081156362846446818, 13224294282787339580),
+UInt256(3203015323798528706, 6452545601948792432, 10878073416703282715, 7306995816629398666),
+UInt256(4003769154748160882, 17289054039290766348, 13597591770879103394, 4522058752359360429),
+UInt256(2502355721717600551, 15417344792984116871, 17721866893654215429, 7437972738651988172),
+UInt256(3127944652147000689, 14659994972802758185, 17540647598640381382, 13909151941742373119),
+UInt256(3909930815183750862, 4489935660721284020, 8090751443018313016, 8163067890323190591),
+]
+
+private let bid_multipliers2_binary80_196: [UInt256] = [
+UInt256(2443706759489844288, 16641267843232966224, 14280091688741221443, 5101917431451994119),
+UInt256(3054633449362305361, 2354840730331656164, 17850114610926526804, 1765710770887604745),
+UInt256(3818291811702881701, 7555236931341958110, 3865899189948606889, 2207138463609505931),
+UInt256(2386432382314301063, 7027866091302417770, 16251245049000043017, 12908676585824410967),
+UInt256(2983040477892876329, 4173146595700634309, 11090684274395277964, 2300787676998349997),
+UInt256(3728800597366095411, 9828119263053180791, 28297287711933743, 2875984596247937496),
+UInt256(2330500373353809632, 3836731530194544042, 6935214832461040445, 8715019400296042791),
+UInt256(2913125466692262040, 4795914412743180052, 17892390577431076364, 15505460268797441393),
+UInt256(3641406833365327550, 5994893015928975066, 3918744148079293840, 935081262287250125),
+UInt256(4551758541706659437, 16716988306765994640, 14121802221953893108, 1168851577859062656),
+UInt256(2844849088566662148, 12753960700942440602, 8826126388721183192, 9953904273016689968),
+UInt256(3556061360708327685, 15942450876178050753, 1809285949046703182, 12442380341270862460),
+UInt256(4445076700885409607, 6093005539940399729, 6873293454735766882, 6329603389733802267),
+UInt256(2778172938053381004, 10725657490103831686, 15825023455278324061, 8567688137011014321),
+UInt256(3472716172566726255, 13407071862629789608, 10557907282243129268, 15321296189691155805),
+UInt256(4340895215708407819, 12147153809859849106, 13197384102803911586, 704876163404393140),
+UInt256(2713059509817754887, 5286128121948711739, 12860051082679832645, 5052233620555133617),
+UInt256(3391324387272193609, 1995974134008501770, 11463377834922402902, 10926978044121304925),
+UInt256(4239155484090242011, 7106653685938015117, 5105850256798227820, 4435350518296855348),
+UInt256(2649472177556401257, 2135815544497565496, 5496999419712586339, 11995466110790310401),
+UInt256(3311840221945501571, 7281455449049344774, 6871249274640732924, 10382646620060500097),
+UInt256(4139800277431876964, 4490133292884293063, 17812433630155691963, 12978308275075625121),
+UInt256(2587375173394923102, 12029705344907458972, 18050300046488389333, 5805599662708571749),
+UInt256(3234218966743653878, 5813759644279547908, 4116130984400935050, 11868685596813102590),
+UInt256(4042773708429567347, 16490571592204210693, 5145163730501168813, 5612484959161602429),
+UInt256(2526733567768479592, 8000764235913937731, 5521570340776924460, 5813646108689695470),
+UInt256(3158416959710599490, 10000955294892422164, 2290276907543767671, 7267057635862119338),
+UInt256(3948021199638249363, 3277822081760751897, 2862846134429709589, 4472136026400261268),
+UInt256(2467513249773905851, 18189539865596327599, 13318493880087038253, 5100928025713857245),
+UInt256(3084391562217382314, 18125238813568021595, 12036431331681409912, 10987846050569709460),
+UInt256(3855489452771727893, 13433176480105251186, 10433853146174374486, 13734807563212136825),
+UInt256(2409680907982329933, 10701578309279475943, 11132844234786371958, 3972568708580197612),
+UInt256(3012101134977912416, 17988658905026732833, 9304369275055577043, 14189082922580022823),
+UInt256(3765126418722390521, 4039079557573864425, 16242147612246859208, 13124667634797640624),
+UInt256(2353204011701494075, 14053639769552135026, 3233813230013205149, 8202917271748525390),
+UInt256(2941505014626867594, 12955363693512780878, 13265638574371282244, 14865332608113044642),
+UInt256(3676881268283584493, 6970832580036200290, 7358676181109326998, 134921686431754186),
+UInt256(4596101585354480616, 13325226743472638266, 18421717263241434555, 9392024144894468540),
+UInt256(2872563490846550385, 8328266714670398916, 16125259307953284501, 3564172081345348886),
+UInt256(3590704363558187981, 15022019411765386550, 1709830061232054010, 9066901120109074011),
+UInt256(4488380454447734977, 4942466209424569475, 11360659613394843321, 2110254363281566706),
+UInt256(2805237784029834360, 14618256426958825682, 4794569249158083123, 12848124023119448951),
+UInt256(3506547230037292950, 18272820533698532102, 15216583598302379712, 11448469010471923285),
+UInt256(4383184037546616188, 13617653630268389320, 9797357461023198832, 14310586263089904106),
+UInt256(2739490023466635117, 17734405555772519133, 6123348413139499270, 8944116414431190067),
+UInt256(3424362529333293897, 8332948889433485204, 12265871534851761992, 1956773481184211775),
+UInt256(4280453161666617371, 15027872130219244409, 15332339418564702490, 2445966851480264719),
+UInt256(2675283226041635857, 7086577072173333804, 2665183108961857200, 6140415300602553353),
+UInt256(3344104032552044821, 13469907358644055159, 3331478886202321500, 7675519125753191692),
+UInt256(4180130040690056027, 3002326143022905236, 17999406663035065587, 9594398907191489614),
+]
+
+private let bid_multipliers2_binary80_197: [UInt256] = [
+UInt256(2612581275431285016, 18017354903885173437, 2026257127542140184, 3690656307780987057),
+UInt256(3265726594289106271, 4074949556146915180, 7144507427855063134, 4613320384726233821),
+UInt256(4082158242861382839, 482000926756256071, 8930634284818828917, 14990022517762568085),
+UInt256(2551348901788364274, 7218779606863741900, 12499175455652849929, 11674607082815299005),
+UInt256(3189186127235455342, 18246846545434453183, 15623969319566062412, 758200798236960044),
+UInt256(3986482659044319178, 13585186144938290671, 14918275631030190111, 947750997796200055),
+UInt256(2491551661902699486, 13102427359013819573, 16241451297034950675, 7509873401263706891),
+UInt256(3114439577378374358, 7154662161912498659, 6466756066011524632, 4775655733152245709),
+UInt256(3893049471722967947, 18166699739245399132, 3471759064087017886, 5969569666440307136),
+UInt256(2433155919826854967, 9048344327814680505, 11393221451909161986, 17566039096807355672),
+UInt256(3041444899783568709, 6698744391340962728, 406468759604288771, 12734176834154418782),
+UInt256(3801806124729460886, 12985116507603591314, 508085949505360964, 11306035024265635574),
+UInt256(2376128827955913054, 3504011798824856667, 4929239736868238506, 16289643927020798042),
+UInt256(2970161034944891317, 13603386785385846642, 1549863652657910229, 11138682871921221744),
+UInt256(3712701293681114147, 3169175426450144590, 11160701602677163595, 88295534619363468),
+UInt256(2320438308550696341, 18121635706027198033, 2363752483245839342, 16196085773632959832),
+UInt256(2900547885688370427, 8816986577251833829, 7566376622484687082, 11021735180186423982),
+UInt256(3625684857110463034, 6409547203137404382, 14069656796533246757, 4553796938378254169),
+UInt256(4532106071388078792, 17235306040776531286, 8363698958811782638, 10303932191400205615),
+UInt256(2832566294617549245, 10772066275485332054, 615625830829976245, 1828271601197740605),
+UInt256(3540707868271936556, 18076768862784052971, 9992904325392246114, 6897025519924563661),
+UInt256(4425884835339920696, 4149217004770514598, 7879444388312919738, 17844653936760480384),
+UInt256(2766178022087450435, 2593260627981571624, 312966724268186932, 15764594728902688144),
+UInt256(3457722527609313043, 17076633840259128242, 391208405335233666, 1258999337418808564),
+UInt256(4322153159511641304, 16734106281896522398, 9712382543523817890, 10797121208628286513),
+UInt256(2701345724694775815, 10458816426185326499, 1458553071274998277, 11359886773820066975),
+UInt256(3376682155868469769, 8461834514304270219, 15658249394375911559, 364800411992920006),
+UInt256(4220852694835587211, 15188979161307725678, 14961125724542501544, 14291058570273313720),
+UInt256(2638032934272242007, 7187268966603634597, 4739017559411675561, 8931911606420821075),
+UInt256(3297541167840302509, 4372400189827155342, 10535457967691982355, 15776575526453414248),
+UInt256(4121926459800378136, 10077186255711332082, 3945950422760202136, 15109033389639379905),
+UInt256(2576204037375236335, 6298241409819582551, 7077905032652514239, 9443145868524612441),
+UInt256(3220255046719045419, 3261115743847090285, 4235695272388254895, 7192246317228377647),
+UInt256(4025318808398806773, 17911452735091026568, 9906305108912706523, 4378621878108084155),
+UInt256(2515824255249254233, 13500500968645585557, 6191440693070441577, 430795664603858645),
+UInt256(3144780319061567792, 3040568155524818234, 12350986884765439875, 5150180599182211210),
+UInt256(3930975398826959740, 3800710194406022793, 6215361569102024036, 1826039730550376108),
+UInt256(2456859624266849837, 11598815908358540053, 15413816026757234782, 10364646868448760876),
+UInt256(3071074530333562297, 663461830166011355, 5432211978164379766, 3732436548706175287),
+UInt256(3838843162916952871, 5441013306134902098, 2178578954278086803, 13888917722737494916),
+UInt256(2399276976823095544, 10318162343975395667, 5973297864851192156, 6374730567497240371),
+UInt256(2999096221028869430, 12897702929969244584, 2854936312636602291, 7968413209371550464),
+UInt256(3748870276286086788, 6898756625606779922, 3568670390795752864, 5348830493287050175),
+UInt256(2343043922678804242, 13535094927859013259, 6842105012674733444, 3343019058304406360),
+UInt256(2928804903348505303, 7695496622968990766, 3940945247416028901, 4178773822880507950),
+UInt256(3661006129185631629, 5007684760283850553, 14149553596124811934, 9835153297028022841),
+UInt256(4576257661482039536, 10871291968782201096, 3851883939873851206, 3070569584430252743),
+UInt256(2860161038426274710, 6794557480488875685, 2407427462421157003, 15754164045551071677),
+UInt256(3575201298032843387, 17716568887465870414, 7620970346453834158, 15081019038511451692),
+UInt256(4469001622541054234, 17534025090904950114, 302840896212516890, 9627901761284538806),
+]
+
+private let bid_multipliers2_binary80_198: [UInt256] = [
+UInt256(2793126014088158896, 15570451700242981725, 4800961578560210960, 10629124619230224658),
+UInt256(3491407517610198621, 1016320551594175540, 10612887991627651604, 13286405774037780823),
+UInt256(4364259397012748276, 5882086707920107329, 13266109989534564505, 16608007217547226028),
+UInt256(2727662123132967672, 12899676229304842889, 1373789715818020960, 3462475483325934412),
+UInt256(3409577653916209590, 16124595286631053611, 6328923163199914104, 4328094354157418015),
+UInt256(4261972067395261988, 10932372071434041206, 3299467935572504726, 5410117942696772518),
+UInt256(2663732542122038742, 16056104581501051561, 15897225515014979165, 17216381769467646536),
+UInt256(3329665677652548428, 10846758690021538644, 6036473838486560245, 7685419156552394458),
+UInt256(4162082097065685535, 13558448362526923305, 7545592298108200306, 14218459964117880976),
+UInt256(2601301310666053459, 15391559254220408921, 16245210232386094951, 13498223496001063514),
+UInt256(3251626638332566824, 14627763049348123248, 6471454735200454977, 12261093351573941489),
+UInt256(4064533297915708530, 18284703811685154060, 8089318419000568722, 1491308634185263149),
+UInt256(2540333311197317831, 16039625900730609191, 14279196048730131259, 5543753914793177372),
+UInt256(3175416638996647289, 15437846357485873585, 13237309042485276170, 2318006375064083811),
+UInt256(3969270798745809112, 5462249891575178270, 2711578247824431500, 12120880005684880572),
+UInt256(2480794249216130695, 3413906182234486418, 15529794460172433399, 16798922040407826166),
+UInt256(3100992811520163368, 18102440783075271735, 10188871038360765941, 16386966532082394803),
+UInt256(3876241014400204211, 4181306905134538053, 8124402779523569523, 6648650109820829791),
+UInt256(2422650634000127632, 307473806495392331, 7383594746415924904, 1849563309424324668),
+]
diff --git a/Sources/Decimal/Generated/Decimal128.swift b/Sources/Decimal/Generated/Decimal128.swift
new file mode 100644
index 0000000..35872bd
--- /dev/null
+++ b/Sources/Decimal/Generated/Decimal128.swift
@@ -0,0 +1,1313 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+// swiftlint:disable superfluous_disable_command
+// swiftlint:disable force_unwrapping
+// swiftlint:disable redundant_type_annotation
+
+public struct Decimal128: DecimalFloatingPoint, DecimalMixin {
+
+ internal typealias BID = _UInt128
+ internal typealias DoubleBID = UInt256
+ /// A type that can represent any written exponent.
+ public typealias Exponent = Int
+ /// A type that stores dem bits..
+ public typealias BitPattern = _UInt128
+
+ // MARK: - DecimalMixin
+
+ // See 'DecimalMixin' for the meaning of those fields.
+
+ internal static let combinationWidth = 17
+ internal static let exponentBias = 6176
+ internal static let emax = 6144
+
+ internal static let trailingSignificandWidth = 110
+ internal static let precisionInDigits = 34
+ internal static let maxDecimalDigits: BID = BID("9999999999999999999999999999999999")!
+ internal static let piDecimalDigits: BID = BID("3141592653589793238462643383279502")!
+
+ // MARK: - Static properties
+
+ /// A quiet NaN ("not a number").
+ ///
+ /// A NaN compares not equal, not greater than, and not less than every
+ /// value, including itself. Passing a NaN to an operation generally results
+ /// in NaN.
+ ///
+ /// let x = 1.21
+ /// // x > Decimal128.nan == false
+ /// // x < Decimal128.nan == false
+ /// // x == Decimal128.nan == false
+ ///
+ /// Because a NaN always compares not equal to itself, to test whether a
+ /// floating-point value is NaN, use its `isNaN` property instead of the
+ /// equal-to operator (`==`). In the following example, `y` is NaN.
+ ///
+ /// let y = x + Decimal128.nan
+ /// print(y == Decimal128.nan)
+ /// // Prints "false"
+ /// print(y.isNaN)
+ /// // Prints "true"
+ public static let nan = Self._nan
+
+ /// A signaling NaN ("not a number").
+ ///
+ /// The default IEEE 754 behavior of operations involving a signaling NaN is
+ /// to raise the Invalid flag in the floating-point environment and return a
+ /// quiet NaN.
+ ///
+ /// Other than these signaling operations, a signaling NaN behaves in the
+ /// same manner as a quiet NaN.
+ public static let signalingNaN = Self._signalingNaN
+
+ /// Positive infinity.
+ ///
+ /// Infinity compares greater than all finite numbers and equal to other
+ /// infinite values.
+ ///
+ /// let x = Decimal128.greatestFiniteMagnitude
+ /// let y = x * 2
+ /// // y == Decimal128.infinity
+ /// // y > x
+ public static let infinity = Self._infinity
+
+ /// The mathematical constant pi (π), approximately equal to 3.14159.
+ ///
+ /// When measuring an angle in radians, π is equivalent to a half-turn.
+ ///
+ /// This value is rounded toward zero to keep user computations with angles
+ /// from inadvertently ending up in the wrong quadrant.
+ ///
+ /// print(Decimal128.pi)
+ /// // Prints "+3141592653589793E-15"
+ public static let pi = Self._pi
+
+ /// The zero value.
+ ///
+ /// Zero is the identity element for addition. For any value,
+ /// `x + .zero == x` and `.zero + x == x`.
+ public static let zero = Self._zero
+
+ /// The greatest finite number representable by this type.
+ ///
+ /// This value compares greater than or equal to all finite numbers, but less
+ /// than `infinity`.
+ ///
+ /// This value corresponds to type-specific C macros such as `FLT_MAX` and
+ /// `DBL_MAX`. The naming of those macros is slightly misleading, because
+ /// `infinity` is greater than this value.
+ public static let greatestFiniteMagnitude = Self._greatestFiniteMagnitude
+
+ /// The least positive normal number.
+ ///
+ /// This value compares less than or equal to all positive normal numbers.
+ /// There may be smaller positive numbers, but they are *subnormal*, meaning
+ /// that they are represented with less precision than normal numbers.
+ ///
+ /// This value corresponds to type-specific C macros such as `FLT_MIN` and
+ /// `DBL_MIN`. The naming of those macros is slightly misleading, because
+ /// subnormals, zeros, and negative numbers are smaller than this value.
+ public static let leastNormalMagnitude = Self._leastNormalMagnitude
+
+ /// The least positive number.
+ ///
+ /// This value compares less than or equal to all positive numbers, but
+ /// greater than zero. If the type supports subnormal values,
+ /// `leastNonzeroMagnitude` is smaller than `leastNormalMagnitude`;
+ /// otherwise they are equal.
+ public static let leastNonzeroMagnitude = Self._leastNonzeroMagnitude
+
+ // MARK: - Properties
+
+ internal var bid: BID
+
+ /// A Boolean value indicating whether the instance is equal to zero.
+ ///
+ /// The `isZero` property of a value `x` is `true` when `x` represents either
+ /// `-0.0` or `+0.0`. `x.isZero` is equivalent to the following comparison:
+ /// `x == 0.0`.
+ ///
+ /// let x = -0.0
+ /// x.isZero // true
+ /// x == 0.0 // true
+ public var isZero: Bool { self._isZero }
+
+ /// A Boolean value indicating whether this instance is finite.
+ ///
+ /// All values other than NaN and infinity are considered finite, whether
+ /// normal or subnormal. For NaN, both `isFinite` and `isInfinite` are false.
+ public var isFinite: Bool { self._isFinite }
+
+ /// A Boolean value indicating whether the instance is infinite.
+ ///
+ /// For NaN, both `isFinite` and `isInfinite` are false.
+ public var isInfinite: Bool { self._isInfinite }
+
+ /// A Boolean value indicating whether the instance's representation is in
+ /// its canonical form.
+ ///
+ /// The [IEEE 754 specification][spec] defines a *canonical*, or preferred,
+ /// encoding of a floating-point value.
+ ///
+ /// Decimal floating-point types admit a large number of non-canonical
+ /// encodings. Consult the IEEE 754 standard for additional details.
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public var isCanonical: Bool { self._isCanonical }
+
+ /// A Boolean value indicating whether this instance is normal.
+ ///
+ /// A *normal* value is a finite number that uses the full precision
+ /// available to values of a type. Zero is neither a normal nor a subnormal
+ /// number.
+ public var isNormal: Bool { self._isNormal }
+
+ /// A Boolean value indicating whether the instance is subnormal.
+ ///
+ /// A *subnormal* value is a nonzero number that has a lesser magnitude than
+ /// the smallest normal number. Subnormal values don't use the full
+ /// precision available to values of a type.
+ ///
+ /// Zero is neither a normal nor a subnormal number. Subnormal numbers are
+ /// often called *denormal* or *denormalized*---these are different names
+ /// for the same concept.
+ public var isSubnormal: Bool { self._isSubnormal }
+
+ /// A Boolean value indicating whether the instance is NaN ("not a number").
+ ///
+ /// Because NaN is not equal to any value, including NaN, use this property
+ /// instead of the equal-to operator (`==`) or not-equal-to operator (`!=`)
+ /// to test whether a value is or is not NaN. For example:
+ ///
+ /// let x = Decimal128()
+ /// let y = x * .infinity
+ /// // y is a NaN
+ ///
+ /// // Comparing with the equal-to operator never returns 'true'
+ /// print(x == Decimal128.nan)
+ /// // Prints "false"
+ /// print(y == Decimal128.nan)
+ /// // Prints "false"
+ ///
+ /// // Test with the 'isNaN' property instead
+ /// print(x.isNaN)
+ /// // Prints "false"
+ /// print(y.isNaN)
+ /// // Prints "true"
+ ///
+ /// This property is `true` for both quiet and signaling NaNs.
+ public var isNaN: Bool { self._isNaN }
+
+ /// A Boolean value indicating whether the instance is a signaling NaN.
+ ///
+ /// Signaling NaNs typically raise the Invalid flag when used in general
+ /// computing operations.
+ public var isSignalingNaN: Bool { self._isSignalingNaN }
+
+ /// The sign of the floating-point value.
+ ///
+ /// The `sign` property is `.minus` if the value's signbit is set, and
+ /// `.plus` otherwise. For example:
+ ///
+ /// let x = Decimal128(-33)
+ /// // x.sign == .minus
+ ///
+ /// Don't use this property to check whether a floating point value is
+ /// negative. For a value `x`, the comparison `x.sign == .minus` is not
+ /// necessarily the same as `x < 0`. In particular, `x.sign == .minus` if
+ /// `x` is -0, and while `x < 0` is always `false` if `x` is NaN, `x.sign`
+ /// could be either `.plus` or `.minus`.
+ public var sign: FloatingPointSign { self._floatingPointSign }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Binary integer decimal.
+ public var binaryEncoding: BitPattern { self.bid }
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Densely packed decimal.
+ public var decimalEncoding: BitPattern { self._toDenselyPackedDecimal() }
+
+ /// The exponent of the floating-point value.
+ ///
+ /// The *exponent* of a floating-point value is the integer part of the
+ /// logarithm of the value's magnitude. For a value `x` of a floating-point
+ /// type `F`, the magnitude can be calculated as the following, where `**`
+ /// is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ ///
+ /// In the next example, `y` has a value of `33.33333333333333`.
+ /// Exponent is equal to `floor(log10(y)) = floor(1.5228787) = 1`
+ /// and significand is `3.333333333333333` (always between [1, 10)).
+ ///
+ /// let y: Decimal128 = 100 / 3 // +3333333333333333E-14 = 33.33333333333333
+ /// // y.significand == +3333333333333333E-15 // 3.333333333333333
+ /// // y.exponent == 1
+ /// // Decimal128.radix == 10
+ ///
+ /// The `exponent` property has the following edge cases:
+ ///
+ /// - If `x` is zero, then `x.exponent` is `Int.min`.
+ /// - If `x` is +/-infinity or NaN, then `x.exponent` is `Int.max`
+ ///
+ /// This property implements the `logB` operation defined by the [IEEE 754
+ /// specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public func exponent(status: inout DecimalStatus) -> Exponent {
+ // This method should be 'getExponent', but Swift has 'Double.exponent'
+ // property, so we will use the same name.
+ return self._getExponent(status: &status)
+ }
+
+ /// The significand of the floating-point value.
+ ///
+ /// The magnitude of a floating-point value `x` of type `F` can be calculated
+ /// by using the following formula, where `**` is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ ///
+ /// In the next example, `y` has a value of `33.33333333333333`.
+ /// Exponent is equal to `floor(log10(y)) = floor(1.5228787) = 1`
+ /// and significand is `3.333333333333333`.
+ ///
+ /// let y: Decimal128 = 100 / 3 // +3333333333333333E-14 = 33.33333333333333
+ /// // y.significand == +3333333333333333E-15 // 3.333333333333333
+ /// // y.exponent == 1
+ /// // Decimal128.radix == 10
+ ///
+ /// If a type's radix is 10, then for finite nonzero numbers, the significand
+ /// is in the range `1.0 ..< 10.0`. For other values of `x`, `x.significand`
+ /// is defined as follows:
+ ///
+ /// - If `x` is zero, then `x.significand` is 0.0.
+ /// - If `x` is infinite, then `x.significand` is infinity.
+ /// - If `x` is NaN, then `x.significand` is NaN.
+ /// - Note: The significand is frequently also called the *mantissa*, but
+ /// significand is the preferred terminology in the [IEEE 754
+ /// specification][spec], to allay confusion with the use of mantissa for
+ /// the fractional part of a logarithm.
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public var significand: Self { self._getSignificand() }
+
+ /// The magnitude of this value.
+ ///
+ /// For any numeric value `x`, `x.magnitude` is the absolute value of `x`.
+ /// You can use the `magnitude` property in operations that are simpler to
+ /// implement in terms of unsigned values, such as printing the value of an
+ /// integer, which is just printing a '-' character in front of an absolute
+ /// value.
+ ///
+ /// let x = -200
+ /// // x.magnitude == 200
+ ///
+ /// The global `abs(_:)` function provides more familiar syntax when you need
+ /// to find an absolute value. In addition, because `abs(_:)` always returns
+ /// a value of the same type, even in a generic context, using the function
+ /// instead of the `magnitude` property is encouraged.
+ public var magnitude: Self { self._magnitude }
+
+ /// A textual representation of this instance.
+ ///
+ /// Calling this property directly is discouraged. Instead, convert an
+ /// instance of any type to a string by using the `String(describing:)`
+ /// initializer. This initializer works with any type, and uses the custom
+ /// `description` property for types that conform to
+ /// `CustomStringConvertible`:
+ ///
+ /// struct Point: CustomStringConvertible {
+ /// let x: Int, y: Int
+ ///
+ /// var description: String {
+ /// return "(\(x), \(y))"
+ /// }
+ /// }
+ ///
+ /// let p = Point(x: 21, y: 30)
+ /// let s = String(describing: p)
+ /// print(s)
+ /// // Prints "(21, 30)"
+ ///
+ /// The conversion of `p` to a string in the assignment to `s` uses the
+ /// `Point` type's `description` property.
+ public var description: String { self._toString() }
+
+ // MARK: - Init
+
+ /// Use `init(canonical)` instead.
+ internal init(unchecked bid: BID) {
+ self.bid = bid
+ }
+
+ /// Creates a NaN ("not a number") value with the specified payload.
+ ///
+ /// NaN values compare not equal to every value, including themselves. Most
+ /// operations with a NaN operand produce a NaN result. Don't use the
+ /// equal-to operator (`==`) to test whether a value is NaN. Instead, use
+ /// the value's `isNaN` property.
+ ///
+ /// let x = Decimal128(nan: 0, signaling: false)
+ /// print(x == .nan)
+ /// // Prints "false"
+ /// print(x.isNaN)
+ /// // Prints "true"
+ ///
+ /// - Parameters:
+ /// - payload: The payload to use for the new NaN value.
+ /// - signaling: Pass `true` to create a signaling NaN or `false` to create
+ /// a quiet NaN.
+ public init(nan payload: BitPattern, signaling: Bool) {
+ self = Self._init(payload: payload, signaling: signaling)
+ }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Binary integer decimal.
+ public init(binaryEncoding: BitPattern) {
+ self = Self(unchecked: binaryEncoding)
+ }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Densely packed decimal.
+ public init(decimalEncoding: BitPattern) {
+ self = Self._init(decimalEncoding: decimalEncoding)
+ }
+
+ /// Creates a new floating-point value using the sign of one value and the
+ /// magnitude of another.
+ ///
+ /// The following example uses this initializer to create a new `Decimal128`
+ /// instance with the sign of `a` and the magnitude of `b`:
+ ///
+ /// let a = Decimal64(-21)
+ /// let b = Decimal64(305)
+ /// let c = Decimal64(signOf: a, magnitudeOf: b)
+ /// print(c)
+ /// // Prints "-305E+0"
+ ///
+ /// This initializer implements the IEEE 754 `copysign` operation.
+ ///
+ /// - Parameters:
+ /// - signOf: A value from which to use the sign. The result of the
+ /// initializer has the same sign as `signOf`.
+ /// - magnitudeOf: A value from which to use the magnitude. The result of
+ /// the initializer has the same magnitude as `magnitudeOf`.
+ public init(signOf s: Self, magnitudeOf m: Self) {
+ self = Self._init(signOf: s, magnitudeOf: m)
+ }
+
+ /// Creates a new value from the given sign, exponent, and significand.
+ ///
+ /// This initializer is equivalent to the following calculation, where `**`
+ /// is exponentiation, computed as if by a single, correctly rounded,
+ /// floating-point operation:
+ ///
+ /// let sign: FloatingPointSign = .plus
+ /// let exponent = -2
+ /// let significand = Decimal128(5)
+ /// let y = (sign == .minus ? -1 : 1) * significand * 10 ** exponent
+ /// // y == +5E-2
+ ///
+ /// As with any basic operation, if this value is outside the representable
+ /// range of the type, overflow or underflow occurs, and zero, a subnormal
+ /// value, or infinity may result. In addition, there are two other edge
+ /// cases:
+ ///
+ /// - If the value you pass to `significand` is zero or infinite, the result
+ /// is zero or infinite, regardless of the value of `exponent`.
+ /// - If the value you pass to `significand` is NaN, the result is NaN.
+ ///
+ /// For any floating-point value `x` of type `F`, the result of the following
+ /// is equal to `x`, with the distinction that the result is canonicalized
+ /// if `x` is in a noncanonical encoding:
+ ///
+ /// let x0 = F(sign: x.sign, exponent: x.exponent, significand: x.significand)
+ ///
+ /// Please note that the returned `0` may be of a different cohort (different
+ /// exponent) than `x0` (for `0.exponent` returns `Int.min`).
+ ///
+ /// This initializer implements the `scaleB` operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - sign: The sign to use for the new value.
+ /// - exponent: The new value's exponent.
+ /// - significand: The new value's significand.
+ public init(
+ sign: FloatingPointSign,
+ exponent: Exponent,
+ significand: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(
+ sign: sign,
+ exponent: exponent,
+ significand: significand,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Init from String
+
+ /// Creates a new value from the given `String`, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - description: String to convert to a floating-point value.
+ public init?(
+ _ description: S,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ // Avoid polluting 'status' if we fail.
+ var s = DecimalStatus()
+ guard let result = Self._parse(description, rounding: rounding, status: &s) else {
+ return nil
+ }
+
+ self = result
+ status = status | s
+ }
+
+ // MARK: - Init from Int
+
+ /// Creates a new value, rounded using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: The integer to convert to a floating-point value.
+ public init(
+ _ value: Source,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Init from Float
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Float,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Double,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Float80,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+#endif
+
+ // MARK: - Init from Decimal
+
+ /// Creates a new instance from the given value.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(_ value: Decimal32) {
+ self = Self._init(smaller: value)
+ }
+
+ /// Creates a new instance from the given value.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(_ value: Decimal64) {
+ self = Self._init(smaller: value)
+ }
+
+ // MARK: - Unary
+
+ /// Replaces this value with its additive inverse.
+ ///
+ /// The result is always exact. This example uses the `negate()` method to
+ /// negate the value of the variable `x`:
+ ///
+ /// var x = 21.5
+ /// x.negate()
+ /// // x == -21.5
+ public mutating func negate() {
+ self._negate()
+ }
+
+ // MARK: - Binary
+
+ /// Adds two values and produces their sum, rounding using the specified
+ /// rounding rule.
+ ///
+ /// The addition operator (`+`) calculates the sum of its two arguments. For
+ /// example:
+ ///
+ /// let x = 1.5
+ /// let y = x + 2.25
+ /// // y == 3.75
+ ///
+ /// The `+` operator implements the addition operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to add.
+ /// - rhs: The second value to add.
+ public func adding(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._adding(other: other, rounding: rounding, status: &status)
+ }
+
+ /// Subtracts one value from another and produces their difference, rounding
+ /// using the specified rounding rule.
+ ///
+ /// The subtraction operator (`-`) calculates the difference of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x - 2.25
+ /// // y == 5.25
+ ///
+ /// The `-` operator implements the subtraction operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: A numeric value.
+ /// - rhs: The value to subtract from `lhs`.
+ public func subtracting(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._subtracting(other: other, rounding: rounding, status: &status)
+ }
+
+ /// Multiplies two values and produces their product, rounding using the
+ /// specified rounding rule.
+ ///
+ /// The multiplication operator (`*`) calculates the product of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x * 2.25
+ /// // y == 16.875
+ ///
+ /// The `*` operator implements the multiplication operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to multiply.
+ /// - rhs: The second value to multiply.
+ public func multiplied(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._multiplied(by: other, rounding: rounding, status: &status)
+ }
+
+ /// Returns the quotient of dividing the first value by the second, rounding
+ /// using the specified rounding rule.
+ ///
+ /// The division operator (`/`) calculates the quotient of the division if
+ /// `rhs` is nonzero. If `rhs` is zero, the result of the division is
+ /// infinity, with the sign of the result matching the sign of `lhs`.
+ ///
+ /// let x = 16.875
+ /// let y = x / 2.25
+ /// // y == 7.5
+ ///
+ /// let z = x / 0
+ /// // z.isInfinite == true
+ ///
+ /// The `/` operator implements the division operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The value to divide.
+ /// - rhs: The value to divide `lhs` by.
+ public func divided(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._divided(by: other, rounding: rounding, status: &status)
+ }
+
+ /// Returns the remainder of this value divided by the given value.
+ ///
+ /// For two finite values `x` and `y`, the remainder `r` of dividing `x` by
+ /// `y` satisfies `x == y * q + r`, where `q` is the integer nearest to
+ /// `x / y`. If `x / y` is exactly halfway between two integers, `q` is
+ /// chosen to be even. Note that `q` is *not* `x / y` computed in
+ /// floating-point arithmetic, and that `q` may not be representable in any
+ /// available integer type.
+ ///
+ /// The following example calculates the remainder of dividing 8.625 by 0.75:
+ ///
+ /// let x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.toNearestOrEven)
+ /// // q == 12.0
+ /// let r = x.remainder(dividingBy: 0.75)
+ /// // r == -0.375
+ ///
+ /// let x1 = 0.75 * q + r
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are finite numbers, the remainder is in the
+ /// closed range `-abs(other / 2)...abs(other / 2)`. The
+ /// `remainder(dividingBy:)` method is always exact. This method implements
+ /// the remainder operation defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ /// - Returns: The remainder of this value divided by `other`.
+ public func remainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._remainder(dividingBy: other, status: &status)
+ }
+
+ /// Returns the remainder of this value divided by the given value using
+ /// truncating division.
+ ///
+ /// Performing truncating division with floating-point values results in a
+ /// truncated integer quotient and a remainder. For values `x` and `y` and
+ /// their truncated integer quotient `q`, the remainder `r` satisfies
+ /// `x == y * q + r`.
+ ///
+ /// The following example calculates the truncating remainder of dividing
+ /// 8.625 by 0.75:
+ ///
+ /// let x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.towardZero)
+ /// // q == 11.0
+ /// let r = x.truncatingRemainder(dividingBy: 0.75)
+ /// // r == 0.375
+ ///
+ /// let x1 = 0.75 * q + r
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are both finite numbers, the truncating
+ /// remainder has the same sign as this value and is strictly smaller in
+ /// magnitude than `other`. The `truncatingRemainder(dividingBy:)` method
+ /// is always exact.
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ /// - Returns: The remainder of this value divided by `other` using
+ /// truncating division.
+ public func truncatingRemainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._truncatingRemainder(dividingBy: other, status: &status)
+ }
+
+ /// Returns the square root of the value, rounding using the specified rounding
+ /// rule.
+ ///
+ /// The following example declares a function that calculates the length of
+ /// the hypotenuse of a right triangle given its two perpendicular sides.
+ ///
+ /// func hypotenuse(_ a: Decimal128, _ b: Decimal128) -> Decimal128 {
+ /// return (a * a + b * b).squareRoot()
+ /// }
+ ///
+ /// let (dx, dy) = (3.0, 4.0)
+ /// let distance = hypotenuse(dx, dy)
+ /// // distance == 5.0
+ ///
+ /// - Returns: The square root of the value.
+ public func squareRoot(
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._squareRoot(rounding: rounding, status: &status)
+ }
+
+ // MARK: - Ternary
+
+ /// Returns the result of adding the product of the two given values to this
+ /// value, computed without intermediate rounding.
+ ///
+ /// This method is equivalent to the C `fma` function and implements the
+ /// `fusedMultiplyAdd` operation defined by the [IEEE 754
+ /// specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: One of the values to multiply before adding to this value.
+ /// - rhs: The other value to multiply.
+ /// - Returns: The product of `lhs` and `rhs`, added to this value.
+ public func addingProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._fusedMultiplyAdd(
+ mulLhs: lhs,
+ mulRhs: rhs,
+ add: self,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Equal, compare
+
+ /// Returns a Boolean value indicating whether this instance is equal to the
+ /// given value.
+ ///
+ /// This method serves as the basis for the equal-to operator (`==`) for
+ /// floating-point values. When comparing two values with this method, `-0`
+ /// is equal to `+0`. NaN is not equal to any value, including itself. For
+ /// example:
+ ///
+ /// let x = 15.0
+ /// x.isEqual(to: 15.0)
+ /// // true
+ /// x.isEqual(to: .nan)
+ /// // false
+ /// Decimal128.nan.isEqual(to: .nan)
+ /// // false
+ ///
+ /// The `isEqual(to:)` method implements the equality predicate defined by
+ /// the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if `other` has the same value as this instance;
+ /// otherwise, `false`. If either this value or `other` is NaN, the result
+ /// of this method is `false`.
+ public func isEqual(
+ to other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isEqual(to: other, status: &status)
+ }
+
+ /// Returns a Boolean value indicating whether this instance is less than the
+ /// given value.
+ ///
+ /// This method serves as the basis for the less-than operator (`<`) for
+ /// floating-point values. Some special cases apply:
+ ///
+ /// - Because NaN compares not less than nor greater than any value, this
+ /// method returns `false` when called on NaN or when NaN is passed as
+ /// `other`.
+ /// - `-infinity` compares less than all values except for itself and NaN.
+ /// - Every value except for NaN and `+infinity` compares less than
+ /// `+infinity`.
+ ///
+ /// let x = 15.0
+ /// x.isLess(than: 20.0)
+ /// // true
+ /// x.isLess(than: .nan)
+ /// // false
+ /// Decimal128.nan.isLess(than: x)
+ /// // false
+ ///
+ /// The `isLess(than:)` method implements the less-than predicate defined by
+ /// the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if this value is less than `other`; otherwise, `false`.
+ /// If either this value or `other` is NaN, the result of this method is
+ /// `false`.
+ public func isLess(
+ than other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isLess(than: other, status: &status)
+ }
+
+ /// Returns a Boolean value indicating whether this instance is less than or
+ /// equal to the given value.
+ ///
+ /// This method serves as the basis for the less-than-or-equal-to operator
+ /// (`<=`) for floating-point values. Some special cases apply:
+ ///
+ /// - Because NaN is incomparable with any value, this method returns `false`
+ /// when called on NaN or when NaN is passed as `other`.
+ /// - `-infinity` compares less than or equal to all values except NaN.
+ /// - Every value except NaN compares less than or equal to `+infinity`.
+ ///
+ /// let x = 15.0
+ /// x.isLessThanOrEqualTo(20.0)
+ /// // true
+ /// x.isLessThanOrEqualTo(.nan)
+ /// // false
+ /// Decimal128.nan.isLessThanOrEqualTo(x)
+ /// // false
+ ///
+ /// The `isLessThanOrEqualTo(_:)` method implements the less-than-or-equal
+ /// predicate defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if `other` is greater than this value; otherwise,
+ /// `false`. If either this value or `other` is NaN, the result of this
+ /// method is `false`.
+ public func isLessThanOrEqualTo(
+ _ other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isLessThanOrEqualTo(other, status: &status)
+ }
+
+ // MARK: - Total order
+
+ /// Returns a Boolean value indicating whether this instance should precede
+ /// or tie positions with the given value in an ascending sort.
+ ///
+ /// This relation is a refinement of the less-than-or-equal-to operator
+ /// (`<=`) that provides a total order on all values of the type, including
+ /// signed zeros and NaNs.
+ ///
+ /// The following example uses `isTotallyOrdered(belowOrEqualTo:)` to sort an
+ /// array of floating-point values, including some that are NaN:
+ ///
+ /// var numbers = [2.5, 21.25, 3.0, .nan, -9.5]
+ /// numbers.sort { !$1.isTotallyOrdered(belowOrEqualTo: $0) }
+ /// print(numbers)
+ /// // Prints "[-9.5, 2.5, 3.0, 21.25, nan]"
+ ///
+ /// The `isTotallyOrdered(belowOrEqualTo:)` method implements the total order
+ /// relation as defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: A floating-point value to compare to this value.
+ /// - Returns: `true` if this value is ordered below or the same as `other`
+ /// in a total ordering of the floating-point type; otherwise, `false`.
+ public func isTotallyOrdered(belowOrEqualTo other: Self) -> Bool {
+ return self._isTotallyOrdered(belowOrEqualTo: other)
+ }
+
+ // MARK: - Minimum/maximum
+
+ /// Returns the lesser of the two given values.
+ ///
+ /// This method returns the minimum of two values, preserving order and
+ /// eliminating NaN when possible. For two values `x` and `y`, the result of
+ /// `minimum(x, y)` is `x` if `x <= y`, `y` if `y < x`, or whichever of `x`
+ /// or `y` is a number if the other is a quiet NaN. If both `x` and `y` are
+ /// NaN, or either `x` or `y` is a signaling NaN, the result is NaN.
+ ///
+ /// Decimal128.minimum(10, -25)
+ /// // -25
+ /// Decimal128.minimum(10, .nan)
+ /// // 10
+ /// Decimal128.minimum(.nan, -25)
+ /// // -25
+ /// Decimal128.minimum(.nan, .nan)
+ /// // nan
+ ///
+ /// The `minimum` method implements the `minNum` operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: The minimum of `x` and `y`, or whichever is a number if the
+ /// other is NaN.
+ public static func minimum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._minimum(x, y, status: &status)
+ }
+
+ /// Returns the greater of the two given values.
+ ///
+ /// This method returns the maximum of two values, preserving order and
+ /// eliminating NaN when possible. For two values `x` and `y`, the result of
+ /// `maximum(x, y)` is `x` if `x > y`, `y` if `x <= y`, or whichever of `x`
+ /// or `y` is a number if the other is a quiet NaN. If both `x` and `y` are
+ /// NaN, or either `x` or `y` is a signaling NaN, the result is NaN.
+ ///
+ /// Decimal128.maximum(10, -25)
+ /// // 10
+ /// Decimal128.maximum(10, .nan)
+ /// // 10
+ /// Decimal128.maximum(.nan, -25)
+ /// // -25
+ /// Decimal128.maximum(.nan, .nan)
+ /// // nan
+ ///
+ /// The `maximum` method implements the `maxNum` operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: The greater of `x` and `y`, or whichever is a number if the
+ /// other is NaN.
+ public static func maximum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._maximum(x, y, status: &status)
+ }
+
+ /// Returns the value with lesser magnitude.
+ ///
+ /// This method returns the value with lesser magnitude of the two given
+ /// values, preserving order and eliminating NaN when possible. For two
+ /// values `x` and `y`, the result of `minimumMagnitude(x, y)` is `x` if
+ /// `x.magnitude <= y.magnitude`, `y` if `y.magnitude < x.magnitude`, or
+ /// whichever of `x` or `y` is a number if the other is a quiet NaN. If both
+ /// `x` and `y` are NaN, or either `x` or `y` is a signaling NaN, the result
+ /// is NaN.
+ ///
+ /// Decimal128.minimumMagnitude(10, -25)
+ /// // 10
+ /// Decimal128.minimumMagnitude(10, .nan)
+ /// // 10
+ /// Decimal128.minimumMagnitude(.nan, -25)
+ /// // -25
+ /// Decimal128.minimumMagnitude(.nan, .nan)
+ /// // nan
+ ///
+ /// The `minimumMagnitude` method implements the `minNumMag` operation
+ /// defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: Whichever of `x` or `y` has lesser magnitude, or whichever is
+ /// a number if the other is NaN.
+ public static func minimumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._minimumMagnitude(x, y, status: &status)
+ }
+
+ /// Returns the value with greater magnitude.
+ ///
+ /// This method returns the value with greater magnitude of the two given
+ /// values, preserving order and eliminating NaN when possible. For two
+ /// values `x` and `y`, the result of `maximumMagnitude(x, y)` is `x` if
+ /// `x.magnitude > y.magnitude`, `y` if `x.magnitude <= y.magnitude`, or
+ /// whichever of `x` or `y` is a number if the other is a quiet NaN. If both
+ /// `x` and `y` are NaN, or either `x` or `y` is a signaling NaN, the result
+ /// is NaN.
+ ///
+ /// Decimal128.maximumMagnitude(10, -25)
+ /// // -25
+ /// Decimal128.maximumMagnitude(10, .nan)
+ /// // 10
+ /// Decimal128.maximumMagnitude(.nan, -25)
+ /// // -25
+ /// Decimal128.maximumMagnitude(.nan, .nan)
+ /// // nan
+ ///
+ /// The `maximumMagnitude` method implements the `maxNumMag` operation
+ /// defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: Whichever of `x` or `y` has greater magnitude, or whichever is
+ /// a number if the other is NaN.
+ public static func maximumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._maximumMagnitude(x, y, status: &status)
+ }
+
+ // MARK: - Unit in last place
+
+ /// The unit in the last place of this value.
+ ///
+ /// This is the unit of the least significant digit in this value's
+ /// significand. For most numbers `x`, this is the difference between `x`
+ /// and the next greater (in magnitude) representable number. There are some
+ /// edge cases to be aware of:
+ ///
+ /// - If `x` is not a finite number, then `x.ulp` is NaN.
+ /// - If `x` is very small in magnitude, then `x.ulp` may be a subnormal
+ /// number. If a type does not support subnormals, `x.ulp` may be rounded
+ /// to zero.
+ /// - `greatestFiniteMagnitude.ulp` is a finite number, even though the next
+ /// greater representable value is `infinity`.
+ ///
+ /// See also the `ulpOfOne` static property.
+ public var ulp: Self { self._ulp }
+
+ /// The unit in the last place of 1.0.
+ ///
+ /// The positive difference between 1.0 and the next greater representable
+ /// number. `ulpOfOne` corresponds to the value represented by the C macros
+ /// `FLT_EPSILON`, `DBL_EPSILON`, etc, and is sometimes called *epsilon* or
+ /// *machine epsilon*. Swift deliberately avoids using the term "epsilon"
+ /// because:
+ ///
+ /// - Historically "epsilon" has been used to refer to several different
+ /// concepts in different languages, leading to confusion and bugs.
+ ///
+ /// - The name "epsilon" suggests that this quantity is a good tolerance to
+ /// choose for approximate comparisons, but it is almost always unsuitable
+ /// for that purpose.
+ ///
+ /// See also the `ulp` member property.
+ public static var ulpOfOne: Self { Self._ulpOfOne }
+
+ // MARK: - Next
+
+ /// The least representable value that compares greater than this value.
+ ///
+ /// For any finite value `x`, `x.nextUp` is greater than `x`. For `nan` or
+ /// `infinity`, `x.nextUp` is `x` itself. The following special cases also
+ /// apply:
+ ///
+ /// - If `x` is `-infinity`, then `x.nextUp` is `-greatestFiniteMagnitude`.
+ /// - If `x` is `-leastNonzeroMagnitude`, then `x.nextUp` is `-0.0`.
+ /// - If `x` is zero, then `x.nextUp` is `leastNonzeroMagnitude`.
+ /// - If `x` is `greatestFiniteMagnitude`, then `x.nextUp` is `infinity`.
+ public func nextUp(status: inout DecimalStatus) -> Self {
+ // This method should be 'getNextUp', but Swift has 'Double.nextUp'
+ // property, so we will use the same name.
+ return self._nextUp(status: &status)
+ }
+
+ /// The greatest representable value that compares less than this value.
+ ///
+ /// For any finite value `x`, `x.nextDown` is less than `x`. For `nan` or
+ /// `-infinity`, `x.nextDown` is `x` itself. The following special cases
+ /// also apply:
+ ///
+ /// - If `x` is `infinity`, then `x.nextDown` is `greatestFiniteMagnitude`.
+ /// - If `x` is `leastNonzeroMagnitude`, then `x.nextDown` is `0.0`.
+ /// - If `x` is zero, then `x.nextDown` is `-leastNonzeroMagnitude`.
+ /// - If `x` is `-greatestFiniteMagnitude`, then `x.nextDown` is `-infinity`.
+ public func nextDown(status: inout DecimalStatus) -> Self {
+ // This method should be 'getNextDown', but Swift has 'Double.nextDown'
+ // property, so we will use the same name.
+ return self._nextDown(status: &status)
+ }
+
+ // MARK: - Quantum
+
+ /// The floating-point value with the same sign and exponent as this value,
+ /// but with a significand of 1.0.
+ ///
+ /// A *quantum* is a set of decimal floating-point values that all have the
+ /// same sign and exponent. The `quantum` property is a member of the same
+ /// decade as this value, but with a unit significand.
+ ///
+ /// In this example, `x` has a value of `33.33333333333333` which is stored as
+ /// `3333333333333333E-14 = 3333333333333333 * 10 ** -14`.
+ /// Therefore, `x.quantum` is equal to `+1E-14`.
+ ///
+ /// let x = 100 / 3 // +3333333333333333E-14
+ /// let y = x.quantum // +1E-14
+ ///
+ /// IEEE-754: Definition 2.1.44 quantum
+ ///
+ /// The quantum of a finite floating-point representation is the value of a unit
+ /// in the last position of its significand. This is equal to the radix raised
+ /// to the exponent q, which is used when the significand is regarded as an integer.
+ public var quantum: Self { self._quantum }
+
+ /// IEEE-754: `sourceFormat quantize(source, source)`.
+ ///
+ /// For finite decimal operands x and y of the same format, `quantize(x, y)`
+ /// is a floating-point number in the same format that has, if possible,
+ /// the same numerical value as x and the same quantum as y.
+ ///
+ /// If the exponent is being increased, rounding according to the applicable
+ /// rounding-direction attribute might occur: the result is a different
+ /// floating-point representation and the inexact exception is signaled
+ /// if the result does not have the same numerical value as x.
+ ///
+ /// If the exponent is being decreased and the significand of the result would
+ /// have more than p digits, the invalid operation exception is signaled
+ /// and the result is NaN.
+ ///
+ /// If one or both operands are NaN, the rules in 6.2 are followed.
+ ///
+ /// Otherwise if only one operand is infinite then the invalid operation
+ /// exception is signaled and the result is NaN.
+ ///
+ /// If both operands are infinite then the result is canonical ∞ with the
+ /// sign of x.
+ ///
+ /// `quantize` does not signal underflow or overflow.
+ /// The preferred exponent is Q(y).
+ public func quantized(
+ to other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._quantize(other: other, rounding: rounding, status: &status)
+ }
+
+ /// IEEE-754: `boolean sameQuantum(source, source)`
+ ///
+ /// For numerical decimal operands x and y of the same format, sameQuantum(x, y)
+ /// is true if the exponents of x and y are the same, that is, Q(x) = Q(y),
+ /// and false otherwise.
+ ///
+ /// `sameQuantum(NaN, NaN)` and `sameQuantum(inf, inf)` are true; if exactly one
+ /// operand is infinite or exactly one operand is NaN, sameQuantum is false.
+ ///
+ /// `sameQuantum` signals no exception.
+ public func sameQuantum(as other: Self) -> Bool {
+ return self._sameQuantum(other: other)
+ }
+
+ // MARK: - Round
+
+ /// Returns this value rounded to an integral value using the specified
+ /// rounding rule.
+ ///
+ /// The following example rounds a value using four different rounding rules:
+ ///
+ /// let x = 6.5
+ ///
+ /// // Equivalent to the C 'round' function:
+ /// print(x.rounded(.toNearestOrAwayFromZero))
+ /// // Prints "7.0"
+ ///
+ /// // Equivalent to the C 'trunc' function:
+ /// print(x.rounded(.towardZero))
+ /// // Prints "6.0"
+ ///
+ /// // Equivalent to the C 'ceil' function:
+ /// print(x.rounded(.up))
+ /// // Prints "7.0"
+ ///
+ /// // Equivalent to the C 'floor' function:
+ /// print(x.rounded(.down))
+ /// // Prints "6.0"
+ ///
+ /// For more information about the available rounding rules, see the
+ /// `DecimalFloatingPointRoundingRule` enumeration. To round a value using the
+ /// default "schoolbook rounding", you can use the shorter `rounded()`
+ /// method instead.
+ ///
+ /// print(x.rounded())
+ /// // Prints "7.0"
+ ///
+ /// - Parameter rule: The rounding rule to use.
+ /// - Returns: The integral value found by rounding using `rule`.
+ public func rounded(
+ _ rule: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._round(rule, status: &status)
+ }
+
+ // MARK: - Hash
+
+ /// Hashes the essential components of this value by feeding them into the
+ /// given hasher.
+ ///
+ /// Implement this method to conform to the `Hashable` protocol. The
+ /// components used for hashing must be the same as the components compared
+ /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
+ /// with each of these components.
+ ///
+ /// - Important: In your implementation of `hash(into:)`,
+ /// don't call `finalize()` on the `hasher` instance provided,
+ /// or replace it with a different instance.
+ /// Doing so may become a compile-time error in the future.
+ ///
+ /// - Parameter hasher: The hasher to use when combining the components
+ /// of this instance.
+ public func hash(into hasher: inout Hasher) {
+ self._hash(into: &hasher)
+ }
+
+ // MARK: - Codable
+
+ public init(from decoder: Decoder) throws {
+ let container = try decoder.singleValueContainer()
+ let bidString = try container.decode(String.self)
+
+ guard let bid = BID(bidString) else {
+ throw DecodingError.dataCorruptedError(
+ in: container,
+ debugDescription: "Unable to parse Decimal128 from \"\(bidString)\""
+ )
+ }
+
+ self.bid = bid
+ }
+
+ public func encode(to encoder: Encoder) throws {
+ var container = encoder.singleValueContainer()
+ try container.encode(self.bid.description)
+ }
+}
diff --git a/Sources/Decimal/Generated/Decimal32.swift b/Sources/Decimal/Generated/Decimal32.swift
new file mode 100644
index 0000000..15ff970
--- /dev/null
+++ b/Sources/Decimal/Generated/Decimal32.swift
@@ -0,0 +1,1397 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+// swiftlint:disable superfluous_disable_command
+// swiftlint:disable force_unwrapping
+// swiftlint:disable redundant_type_annotation
+
+public struct Decimal32: DecimalFloatingPoint, DecimalMixin {
+
+ internal typealias BID = UInt32
+ internal typealias DoubleBID = UInt64
+ /// A type that can represent any written exponent.
+ public typealias Exponent = Int
+ /// A type that stores dem bits..
+ public typealias BitPattern = UInt32
+
+ // MARK: - DecimalMixin
+
+ // See 'DecimalMixin' for the meaning of those fields.
+
+ internal static let combinationWidth = 11
+ internal static let exponentBias = 101
+ internal static let emax = 96
+
+ internal static let trailingSignificandWidth = 20
+ internal static let precisionInDigits = 7
+ internal static let maxDecimalDigits: BID = 9_999_999
+ internal static let piDecimalDigits: BID = 3_141_592
+
+ // MARK: - Static properties
+
+ /// A quiet NaN ("not a number").
+ ///
+ /// A NaN compares not equal, not greater than, and not less than every
+ /// value, including itself. Passing a NaN to an operation generally results
+ /// in NaN.
+ ///
+ /// let x = 1.21
+ /// // x > Decimal32.nan == false
+ /// // x < Decimal32.nan == false
+ /// // x == Decimal32.nan == false
+ ///
+ /// Because a NaN always compares not equal to itself, to test whether a
+ /// floating-point value is NaN, use its `isNaN` property instead of the
+ /// equal-to operator (`==`). In the following example, `y` is NaN.
+ ///
+ /// let y = x + Decimal32.nan
+ /// print(y == Decimal32.nan)
+ /// // Prints "false"
+ /// print(y.isNaN)
+ /// // Prints "true"
+ public static let nan = Self._nan
+
+ /// A signaling NaN ("not a number").
+ ///
+ /// The default IEEE 754 behavior of operations involving a signaling NaN is
+ /// to raise the Invalid flag in the floating-point environment and return a
+ /// quiet NaN.
+ ///
+ /// Other than these signaling operations, a signaling NaN behaves in the
+ /// same manner as a quiet NaN.
+ public static let signalingNaN = Self._signalingNaN
+
+ /// Positive infinity.
+ ///
+ /// Infinity compares greater than all finite numbers and equal to other
+ /// infinite values.
+ ///
+ /// let x = Decimal32.greatestFiniteMagnitude
+ /// let y = x * 2
+ /// // y == Decimal32.infinity
+ /// // y > x
+ public static let infinity = Self._infinity
+
+ /// The mathematical constant pi (π), approximately equal to 3.14159.
+ ///
+ /// When measuring an angle in radians, π is equivalent to a half-turn.
+ ///
+ /// This value is rounded toward zero to keep user computations with angles
+ /// from inadvertently ending up in the wrong quadrant.
+ ///
+ /// print(Decimal32.pi)
+ /// // Prints "+3141592653589793E-15"
+ public static let pi = Self._pi
+
+ /// The zero value.
+ ///
+ /// Zero is the identity element for addition. For any value,
+ /// `x + .zero == x` and `.zero + x == x`.
+ public static let zero = Self._zero
+
+ /// The greatest finite number representable by this type.
+ ///
+ /// This value compares greater than or equal to all finite numbers, but less
+ /// than `infinity`.
+ ///
+ /// This value corresponds to type-specific C macros such as `FLT_MAX` and
+ /// `DBL_MAX`. The naming of those macros is slightly misleading, because
+ /// `infinity` is greater than this value.
+ public static let greatestFiniteMagnitude = Self._greatestFiniteMagnitude
+
+ /// The least positive normal number.
+ ///
+ /// This value compares less than or equal to all positive normal numbers.
+ /// There may be smaller positive numbers, but they are *subnormal*, meaning
+ /// that they are represented with less precision than normal numbers.
+ ///
+ /// This value corresponds to type-specific C macros such as `FLT_MIN` and
+ /// `DBL_MIN`. The naming of those macros is slightly misleading, because
+ /// subnormals, zeros, and negative numbers are smaller than this value.
+ public static let leastNormalMagnitude = Self._leastNormalMagnitude
+
+ /// The least positive number.
+ ///
+ /// This value compares less than or equal to all positive numbers, but
+ /// greater than zero. If the type supports subnormal values,
+ /// `leastNonzeroMagnitude` is smaller than `leastNormalMagnitude`;
+ /// otherwise they are equal.
+ public static let leastNonzeroMagnitude = Self._leastNonzeroMagnitude
+
+ // MARK: - Properties
+
+ internal var bid: BID
+
+ /// A Boolean value indicating whether the instance is equal to zero.
+ ///
+ /// The `isZero` property of a value `x` is `true` when `x` represents either
+ /// `-0.0` or `+0.0`. `x.isZero` is equivalent to the following comparison:
+ /// `x == 0.0`.
+ ///
+ /// let x = -0.0
+ /// x.isZero // true
+ /// x == 0.0 // true
+ public var isZero: Bool { self._isZero }
+
+ /// A Boolean value indicating whether this instance is finite.
+ ///
+ /// All values other than NaN and infinity are considered finite, whether
+ /// normal or subnormal. For NaN, both `isFinite` and `isInfinite` are false.
+ public var isFinite: Bool { self._isFinite }
+
+ /// A Boolean value indicating whether the instance is infinite.
+ ///
+ /// For NaN, both `isFinite` and `isInfinite` are false.
+ public var isInfinite: Bool { self._isInfinite }
+
+ /// A Boolean value indicating whether the instance's representation is in
+ /// its canonical form.
+ ///
+ /// The [IEEE 754 specification][spec] defines a *canonical*, or preferred,
+ /// encoding of a floating-point value.
+ ///
+ /// Decimal floating-point types admit a large number of non-canonical
+ /// encodings. Consult the IEEE 754 standard for additional details.
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public var isCanonical: Bool { self._isCanonical }
+
+ /// A Boolean value indicating whether this instance is normal.
+ ///
+ /// A *normal* value is a finite number that uses the full precision
+ /// available to values of a type. Zero is neither a normal nor a subnormal
+ /// number.
+ public var isNormal: Bool { self._isNormal }
+
+ /// A Boolean value indicating whether the instance is subnormal.
+ ///
+ /// A *subnormal* value is a nonzero number that has a lesser magnitude than
+ /// the smallest normal number. Subnormal values don't use the full
+ /// precision available to values of a type.
+ ///
+ /// Zero is neither a normal nor a subnormal number. Subnormal numbers are
+ /// often called *denormal* or *denormalized*---these are different names
+ /// for the same concept.
+ public var isSubnormal: Bool { self._isSubnormal }
+
+ /// A Boolean value indicating whether the instance is NaN ("not a number").
+ ///
+ /// Because NaN is not equal to any value, including NaN, use this property
+ /// instead of the equal-to operator (`==`) or not-equal-to operator (`!=`)
+ /// to test whether a value is or is not NaN. For example:
+ ///
+ /// let x = Decimal32()
+ /// let y = x * .infinity
+ /// // y is a NaN
+ ///
+ /// // Comparing with the equal-to operator never returns 'true'
+ /// print(x == Decimal32.nan)
+ /// // Prints "false"
+ /// print(y == Decimal32.nan)
+ /// // Prints "false"
+ ///
+ /// // Test with the 'isNaN' property instead
+ /// print(x.isNaN)
+ /// // Prints "false"
+ /// print(y.isNaN)
+ /// // Prints "true"
+ ///
+ /// This property is `true` for both quiet and signaling NaNs.
+ public var isNaN: Bool { self._isNaN }
+
+ /// A Boolean value indicating whether the instance is a signaling NaN.
+ ///
+ /// Signaling NaNs typically raise the Invalid flag when used in general
+ /// computing operations.
+ public var isSignalingNaN: Bool { self._isSignalingNaN }
+
+ /// The sign of the floating-point value.
+ ///
+ /// The `sign` property is `.minus` if the value's signbit is set, and
+ /// `.plus` otherwise. For example:
+ ///
+ /// let x = Decimal32(-33)
+ /// // x.sign == .minus
+ ///
+ /// Don't use this property to check whether a floating point value is
+ /// negative. For a value `x`, the comparison `x.sign == .minus` is not
+ /// necessarily the same as `x < 0`. In particular, `x.sign == .minus` if
+ /// `x` is -0, and while `x < 0` is always `false` if `x` is NaN, `x.sign`
+ /// could be either `.plus` or `.minus`.
+ public var sign: FloatingPointSign { self._floatingPointSign }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Binary integer decimal.
+ public var binaryEncoding: BitPattern { self.bid }
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Densely packed decimal.
+ public var decimalEncoding: BitPattern { self._toDenselyPackedDecimal() }
+
+ /// The exponent of the floating-point value.
+ ///
+ /// The *exponent* of a floating-point value is the integer part of the
+ /// logarithm of the value's magnitude. For a value `x` of a floating-point
+ /// type `F`, the magnitude can be calculated as the following, where `**`
+ /// is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ ///
+ /// In the next example, `y` has a value of `33.33333333333333`.
+ /// Exponent is equal to `floor(log10(y)) = floor(1.5228787) = 1`
+ /// and significand is `3.333333333333333` (always between [1, 10)).
+ ///
+ /// let y: Decimal32 = 100 / 3 // +3333333333333333E-14 = 33.33333333333333
+ /// // y.significand == +3333333333333333E-15 // 3.333333333333333
+ /// // y.exponent == 1
+ /// // Decimal32.radix == 10
+ ///
+ /// The `exponent` property has the following edge cases:
+ ///
+ /// - If `x` is zero, then `x.exponent` is `Int.min`.
+ /// - If `x` is +/-infinity or NaN, then `x.exponent` is `Int.max`
+ ///
+ /// This property implements the `logB` operation defined by the [IEEE 754
+ /// specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public func exponent(status: inout DecimalStatus) -> Exponent {
+ // This method should be 'getExponent', but Swift has 'Double.exponent'
+ // property, so we will use the same name.
+ return self._getExponent(status: &status)
+ }
+
+ /// The significand of the floating-point value.
+ ///
+ /// The magnitude of a floating-point value `x` of type `F` can be calculated
+ /// by using the following formula, where `**` is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ ///
+ /// In the next example, `y` has a value of `33.33333333333333`.
+ /// Exponent is equal to `floor(log10(y)) = floor(1.5228787) = 1`
+ /// and significand is `3.333333333333333`.
+ ///
+ /// let y: Decimal32 = 100 / 3 // +3333333333333333E-14 = 33.33333333333333
+ /// // y.significand == +3333333333333333E-15 // 3.333333333333333
+ /// // y.exponent == 1
+ /// // Decimal32.radix == 10
+ ///
+ /// If a type's radix is 10, then for finite nonzero numbers, the significand
+ /// is in the range `1.0 ..< 10.0`. For other values of `x`, `x.significand`
+ /// is defined as follows:
+ ///
+ /// - If `x` is zero, then `x.significand` is 0.0.
+ /// - If `x` is infinite, then `x.significand` is infinity.
+ /// - If `x` is NaN, then `x.significand` is NaN.
+ /// - Note: The significand is frequently also called the *mantissa*, but
+ /// significand is the preferred terminology in the [IEEE 754
+ /// specification][spec], to allay confusion with the use of mantissa for
+ /// the fractional part of a logarithm.
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public var significand: Self { self._getSignificand() }
+
+ /// The magnitude of this value.
+ ///
+ /// For any numeric value `x`, `x.magnitude` is the absolute value of `x`.
+ /// You can use the `magnitude` property in operations that are simpler to
+ /// implement in terms of unsigned values, such as printing the value of an
+ /// integer, which is just printing a '-' character in front of an absolute
+ /// value.
+ ///
+ /// let x = -200
+ /// // x.magnitude == 200
+ ///
+ /// The global `abs(_:)` function provides more familiar syntax when you need
+ /// to find an absolute value. In addition, because `abs(_:)` always returns
+ /// a value of the same type, even in a generic context, using the function
+ /// instead of the `magnitude` property is encouraged.
+ public var magnitude: Self { self._magnitude }
+
+ /// A textual representation of this instance.
+ ///
+ /// Calling this property directly is discouraged. Instead, convert an
+ /// instance of any type to a string by using the `String(describing:)`
+ /// initializer. This initializer works with any type, and uses the custom
+ /// `description` property for types that conform to
+ /// `CustomStringConvertible`:
+ ///
+ /// struct Point: CustomStringConvertible {
+ /// let x: Int, y: Int
+ ///
+ /// var description: String {
+ /// return "(\(x), \(y))"
+ /// }
+ /// }
+ ///
+ /// let p = Point(x: 21, y: 30)
+ /// let s = String(describing: p)
+ /// print(s)
+ /// // Prints "(21, 30)"
+ ///
+ /// The conversion of `p` to a string in the assignment to `s` uses the
+ /// `Point` type's `description` property.
+ public var description: String { self._toString() }
+
+ // MARK: - Init
+
+ /// Use `init(canonical)` instead.
+ internal init(unchecked bid: BID) {
+ self.bid = bid
+ }
+
+ /// Creates a NaN ("not a number") value with the specified payload.
+ ///
+ /// NaN values compare not equal to every value, including themselves. Most
+ /// operations with a NaN operand produce a NaN result. Don't use the
+ /// equal-to operator (`==`) to test whether a value is NaN. Instead, use
+ /// the value's `isNaN` property.
+ ///
+ /// let x = Decimal32(nan: 0, signaling: false)
+ /// print(x == .nan)
+ /// // Prints "false"
+ /// print(x.isNaN)
+ /// // Prints "true"
+ ///
+ /// - Parameters:
+ /// - payload: The payload to use for the new NaN value.
+ /// - signaling: Pass `true` to create a signaling NaN or `false` to create
+ /// a quiet NaN.
+ public init(nan payload: BitPattern, signaling: Bool) {
+ self = Self._init(payload: payload, signaling: signaling)
+ }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Binary integer decimal.
+ public init(binaryEncoding: BitPattern) {
+ self = Self(unchecked: binaryEncoding)
+ }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Densely packed decimal.
+ public init(decimalEncoding: BitPattern) {
+ self = Self._init(decimalEncoding: decimalEncoding)
+ }
+
+ /// Creates a new floating-point value using the sign of one value and the
+ /// magnitude of another.
+ ///
+ /// The following example uses this initializer to create a new `Decimal32`
+ /// instance with the sign of `a` and the magnitude of `b`:
+ ///
+ /// let a = Decimal64(-21)
+ /// let b = Decimal64(305)
+ /// let c = Decimal64(signOf: a, magnitudeOf: b)
+ /// print(c)
+ /// // Prints "-305E+0"
+ ///
+ /// This initializer implements the IEEE 754 `copysign` operation.
+ ///
+ /// - Parameters:
+ /// - signOf: A value from which to use the sign. The result of the
+ /// initializer has the same sign as `signOf`.
+ /// - magnitudeOf: A value from which to use the magnitude. The result of
+ /// the initializer has the same magnitude as `magnitudeOf`.
+ public init(signOf s: Self, magnitudeOf m: Self) {
+ self = Self._init(signOf: s, magnitudeOf: m)
+ }
+
+ /// Creates a new value from the given sign, exponent, and significand.
+ ///
+ /// This initializer is equivalent to the following calculation, where `**`
+ /// is exponentiation, computed as if by a single, correctly rounded,
+ /// floating-point operation:
+ ///
+ /// let sign: FloatingPointSign = .plus
+ /// let exponent = -2
+ /// let significand = Decimal32(5)
+ /// let y = (sign == .minus ? -1 : 1) * significand * 10 ** exponent
+ /// // y == +5E-2
+ ///
+ /// As with any basic operation, if this value is outside the representable
+ /// range of the type, overflow or underflow occurs, and zero, a subnormal
+ /// value, or infinity may result. In addition, there are two other edge
+ /// cases:
+ ///
+ /// - If the value you pass to `significand` is zero or infinite, the result
+ /// is zero or infinite, regardless of the value of `exponent`.
+ /// - If the value you pass to `significand` is NaN, the result is NaN.
+ ///
+ /// For any floating-point value `x` of type `F`, the result of the following
+ /// is equal to `x`, with the distinction that the result is canonicalized
+ /// if `x` is in a noncanonical encoding:
+ ///
+ /// let x0 = F(sign: x.sign, exponent: x.exponent, significand: x.significand)
+ ///
+ /// Please note that the returned `0` may be of a different cohort (different
+ /// exponent) than `x0` (for `0.exponent` returns `Int.min`).
+ ///
+ /// This initializer implements the `scaleB` operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - sign: The sign to use for the new value.
+ /// - exponent: The new value's exponent.
+ /// - significand: The new value's significand.
+ public init(
+ sign: FloatingPointSign,
+ exponent: Exponent,
+ significand: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(
+ sign: sign,
+ exponent: exponent,
+ significand: significand,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Init from String
+
+ /// Creates a new value from the given `String`, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - description: String to convert to a floating-point value.
+ public init?(
+ _ description: S,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ // Avoid polluting 'status' if we fail.
+ var s = DecimalStatus()
+ guard let result = Self._parse(description, rounding: rounding, status: &s) else {
+ return nil
+ }
+
+ self = result
+ status = status | s
+ }
+
+ // MARK: - Init from Int
+
+ /// Creates a new value, rounded using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: The integer to convert to a floating-point value.
+ public init(
+ _ value: Source,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Init from Float
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Float,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Double,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Float80,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+#endif
+
+ // MARK: - Init from Decimal
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Decimal64,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(bigger: value, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ value: Decimal64,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ value: Decimal64,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter value: A floating-point value to be converted.
+ public init?(exactly value: Decimal64) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._init(bigger: value, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(bigger: value, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ value: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ value: Decimal128,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter value: A floating-point value to be converted.
+ public init?(exactly value: Decimal128) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._init(bigger: value, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+ // MARK: - Unary
+
+ /// Replaces this value with its additive inverse.
+ ///
+ /// The result is always exact. This example uses the `negate()` method to
+ /// negate the value of the variable `x`:
+ ///
+ /// var x = 21.5
+ /// x.negate()
+ /// // x == -21.5
+ public mutating func negate() {
+ self._negate()
+ }
+
+ // MARK: - Binary
+
+ /// Adds two values and produces their sum, rounding using the specified
+ /// rounding rule.
+ ///
+ /// The addition operator (`+`) calculates the sum of its two arguments. For
+ /// example:
+ ///
+ /// let x = 1.5
+ /// let y = x + 2.25
+ /// // y == 3.75
+ ///
+ /// The `+` operator implements the addition operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to add.
+ /// - rhs: The second value to add.
+ public func adding(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._adding(other: other, rounding: rounding, status: &status)
+ }
+
+ /// Subtracts one value from another and produces their difference, rounding
+ /// using the specified rounding rule.
+ ///
+ /// The subtraction operator (`-`) calculates the difference of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x - 2.25
+ /// // y == 5.25
+ ///
+ /// The `-` operator implements the subtraction operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: A numeric value.
+ /// - rhs: The value to subtract from `lhs`.
+ public func subtracting(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._subtracting(other: other, rounding: rounding, status: &status)
+ }
+
+ /// Multiplies two values and produces their product, rounding using the
+ /// specified rounding rule.
+ ///
+ /// The multiplication operator (`*`) calculates the product of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x * 2.25
+ /// // y == 16.875
+ ///
+ /// The `*` operator implements the multiplication operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to multiply.
+ /// - rhs: The second value to multiply.
+ public func multiplied(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._multiplied(by: other, rounding: rounding, status: &status)
+ }
+
+ /// Returns the quotient of dividing the first value by the second, rounding
+ /// using the specified rounding rule.
+ ///
+ /// The division operator (`/`) calculates the quotient of the division if
+ /// `rhs` is nonzero. If `rhs` is zero, the result of the division is
+ /// infinity, with the sign of the result matching the sign of `lhs`.
+ ///
+ /// let x = 16.875
+ /// let y = x / 2.25
+ /// // y == 7.5
+ ///
+ /// let z = x / 0
+ /// // z.isInfinite == true
+ ///
+ /// The `/` operator implements the division operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The value to divide.
+ /// - rhs: The value to divide `lhs` by.
+ public func divided(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._divided(by: other, rounding: rounding, status: &status)
+ }
+
+ /// Returns the remainder of this value divided by the given value.
+ ///
+ /// For two finite values `x` and `y`, the remainder `r` of dividing `x` by
+ /// `y` satisfies `x == y * q + r`, where `q` is the integer nearest to
+ /// `x / y`. If `x / y` is exactly halfway between two integers, `q` is
+ /// chosen to be even. Note that `q` is *not* `x / y` computed in
+ /// floating-point arithmetic, and that `q` may not be representable in any
+ /// available integer type.
+ ///
+ /// The following example calculates the remainder of dividing 8.625 by 0.75:
+ ///
+ /// let x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.toNearestOrEven)
+ /// // q == 12.0
+ /// let r = x.remainder(dividingBy: 0.75)
+ /// // r == -0.375
+ ///
+ /// let x1 = 0.75 * q + r
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are finite numbers, the remainder is in the
+ /// closed range `-abs(other / 2)...abs(other / 2)`. The
+ /// `remainder(dividingBy:)` method is always exact. This method implements
+ /// the remainder operation defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ /// - Returns: The remainder of this value divided by `other`.
+ public func remainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._remainder(dividingBy: other, status: &status)
+ }
+
+ /// Returns the remainder of this value divided by the given value using
+ /// truncating division.
+ ///
+ /// Performing truncating division with floating-point values results in a
+ /// truncated integer quotient and a remainder. For values `x` and `y` and
+ /// their truncated integer quotient `q`, the remainder `r` satisfies
+ /// `x == y * q + r`.
+ ///
+ /// The following example calculates the truncating remainder of dividing
+ /// 8.625 by 0.75:
+ ///
+ /// let x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.towardZero)
+ /// // q == 11.0
+ /// let r = x.truncatingRemainder(dividingBy: 0.75)
+ /// // r == 0.375
+ ///
+ /// let x1 = 0.75 * q + r
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are both finite numbers, the truncating
+ /// remainder has the same sign as this value and is strictly smaller in
+ /// magnitude than `other`. The `truncatingRemainder(dividingBy:)` method
+ /// is always exact.
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ /// - Returns: The remainder of this value divided by `other` using
+ /// truncating division.
+ public func truncatingRemainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._truncatingRemainder(dividingBy: other, status: &status)
+ }
+
+ /// Returns the square root of the value, rounding using the specified rounding
+ /// rule.
+ ///
+ /// The following example declares a function that calculates the length of
+ /// the hypotenuse of a right triangle given its two perpendicular sides.
+ ///
+ /// func hypotenuse(_ a: Decimal32, _ b: Decimal32) -> Decimal32 {
+ /// return (a * a + b * b).squareRoot()
+ /// }
+ ///
+ /// let (dx, dy) = (3.0, 4.0)
+ /// let distance = hypotenuse(dx, dy)
+ /// // distance == 5.0
+ ///
+ /// - Returns: The square root of the value.
+ public func squareRoot(
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._squareRoot(rounding: rounding, status: &status)
+ }
+
+ // MARK: - Ternary
+
+ /// Returns the result of adding the product of the two given values to this
+ /// value, computed without intermediate rounding.
+ ///
+ /// This method is equivalent to the C `fma` function and implements the
+ /// `fusedMultiplyAdd` operation defined by the [IEEE 754
+ /// specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: One of the values to multiply before adding to this value.
+ /// - rhs: The other value to multiply.
+ /// - Returns: The product of `lhs` and `rhs`, added to this value.
+ public func addingProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._fusedMultiplyAdd(
+ mulLhs: lhs,
+ mulRhs: rhs,
+ add: self,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Equal, compare
+
+ /// Returns a Boolean value indicating whether this instance is equal to the
+ /// given value.
+ ///
+ /// This method serves as the basis for the equal-to operator (`==`) for
+ /// floating-point values. When comparing two values with this method, `-0`
+ /// is equal to `+0`. NaN is not equal to any value, including itself. For
+ /// example:
+ ///
+ /// let x = 15.0
+ /// x.isEqual(to: 15.0)
+ /// // true
+ /// x.isEqual(to: .nan)
+ /// // false
+ /// Decimal32.nan.isEqual(to: .nan)
+ /// // false
+ ///
+ /// The `isEqual(to:)` method implements the equality predicate defined by
+ /// the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if `other` has the same value as this instance;
+ /// otherwise, `false`. If either this value or `other` is NaN, the result
+ /// of this method is `false`.
+ public func isEqual(
+ to other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isEqual(to: other, status: &status)
+ }
+
+ /// Returns a Boolean value indicating whether this instance is less than the
+ /// given value.
+ ///
+ /// This method serves as the basis for the less-than operator (`<`) for
+ /// floating-point values. Some special cases apply:
+ ///
+ /// - Because NaN compares not less than nor greater than any value, this
+ /// method returns `false` when called on NaN or when NaN is passed as
+ /// `other`.
+ /// - `-infinity` compares less than all values except for itself and NaN.
+ /// - Every value except for NaN and `+infinity` compares less than
+ /// `+infinity`.
+ ///
+ /// let x = 15.0
+ /// x.isLess(than: 20.0)
+ /// // true
+ /// x.isLess(than: .nan)
+ /// // false
+ /// Decimal32.nan.isLess(than: x)
+ /// // false
+ ///
+ /// The `isLess(than:)` method implements the less-than predicate defined by
+ /// the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if this value is less than `other`; otherwise, `false`.
+ /// If either this value or `other` is NaN, the result of this method is
+ /// `false`.
+ public func isLess(
+ than other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isLess(than: other, status: &status)
+ }
+
+ /// Returns a Boolean value indicating whether this instance is less than or
+ /// equal to the given value.
+ ///
+ /// This method serves as the basis for the less-than-or-equal-to operator
+ /// (`<=`) for floating-point values. Some special cases apply:
+ ///
+ /// - Because NaN is incomparable with any value, this method returns `false`
+ /// when called on NaN or when NaN is passed as `other`.
+ /// - `-infinity` compares less than or equal to all values except NaN.
+ /// - Every value except NaN compares less than or equal to `+infinity`.
+ ///
+ /// let x = 15.0
+ /// x.isLessThanOrEqualTo(20.0)
+ /// // true
+ /// x.isLessThanOrEqualTo(.nan)
+ /// // false
+ /// Decimal32.nan.isLessThanOrEqualTo(x)
+ /// // false
+ ///
+ /// The `isLessThanOrEqualTo(_:)` method implements the less-than-or-equal
+ /// predicate defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if `other` is greater than this value; otherwise,
+ /// `false`. If either this value or `other` is NaN, the result of this
+ /// method is `false`.
+ public func isLessThanOrEqualTo(
+ _ other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isLessThanOrEqualTo(other, status: &status)
+ }
+
+ // MARK: - Total order
+
+ /// Returns a Boolean value indicating whether this instance should precede
+ /// or tie positions with the given value in an ascending sort.
+ ///
+ /// This relation is a refinement of the less-than-or-equal-to operator
+ /// (`<=`) that provides a total order on all values of the type, including
+ /// signed zeros and NaNs.
+ ///
+ /// The following example uses `isTotallyOrdered(belowOrEqualTo:)` to sort an
+ /// array of floating-point values, including some that are NaN:
+ ///
+ /// var numbers = [2.5, 21.25, 3.0, .nan, -9.5]
+ /// numbers.sort { !$1.isTotallyOrdered(belowOrEqualTo: $0) }
+ /// print(numbers)
+ /// // Prints "[-9.5, 2.5, 3.0, 21.25, nan]"
+ ///
+ /// The `isTotallyOrdered(belowOrEqualTo:)` method implements the total order
+ /// relation as defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: A floating-point value to compare to this value.
+ /// - Returns: `true` if this value is ordered below or the same as `other`
+ /// in a total ordering of the floating-point type; otherwise, `false`.
+ public func isTotallyOrdered(belowOrEqualTo other: Self) -> Bool {
+ return self._isTotallyOrdered(belowOrEqualTo: other)
+ }
+
+ // MARK: - Minimum/maximum
+
+ /// Returns the lesser of the two given values.
+ ///
+ /// This method returns the minimum of two values, preserving order and
+ /// eliminating NaN when possible. For two values `x` and `y`, the result of
+ /// `minimum(x, y)` is `x` if `x <= y`, `y` if `y < x`, or whichever of `x`
+ /// or `y` is a number if the other is a quiet NaN. If both `x` and `y` are
+ /// NaN, or either `x` or `y` is a signaling NaN, the result is NaN.
+ ///
+ /// Decimal32.minimum(10, -25)
+ /// // -25
+ /// Decimal32.minimum(10, .nan)
+ /// // 10
+ /// Decimal32.minimum(.nan, -25)
+ /// // -25
+ /// Decimal32.minimum(.nan, .nan)
+ /// // nan
+ ///
+ /// The `minimum` method implements the `minNum` operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: The minimum of `x` and `y`, or whichever is a number if the
+ /// other is NaN.
+ public static func minimum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._minimum(x, y, status: &status)
+ }
+
+ /// Returns the greater of the two given values.
+ ///
+ /// This method returns the maximum of two values, preserving order and
+ /// eliminating NaN when possible. For two values `x` and `y`, the result of
+ /// `maximum(x, y)` is `x` if `x > y`, `y` if `x <= y`, or whichever of `x`
+ /// or `y` is a number if the other is a quiet NaN. If both `x` and `y` are
+ /// NaN, or either `x` or `y` is a signaling NaN, the result is NaN.
+ ///
+ /// Decimal32.maximum(10, -25)
+ /// // 10
+ /// Decimal32.maximum(10, .nan)
+ /// // 10
+ /// Decimal32.maximum(.nan, -25)
+ /// // -25
+ /// Decimal32.maximum(.nan, .nan)
+ /// // nan
+ ///
+ /// The `maximum` method implements the `maxNum` operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: The greater of `x` and `y`, or whichever is a number if the
+ /// other is NaN.
+ public static func maximum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._maximum(x, y, status: &status)
+ }
+
+ /// Returns the value with lesser magnitude.
+ ///
+ /// This method returns the value with lesser magnitude of the two given
+ /// values, preserving order and eliminating NaN when possible. For two
+ /// values `x` and `y`, the result of `minimumMagnitude(x, y)` is `x` if
+ /// `x.magnitude <= y.magnitude`, `y` if `y.magnitude < x.magnitude`, or
+ /// whichever of `x` or `y` is a number if the other is a quiet NaN. If both
+ /// `x` and `y` are NaN, or either `x` or `y` is a signaling NaN, the result
+ /// is NaN.
+ ///
+ /// Decimal32.minimumMagnitude(10, -25)
+ /// // 10
+ /// Decimal32.minimumMagnitude(10, .nan)
+ /// // 10
+ /// Decimal32.minimumMagnitude(.nan, -25)
+ /// // -25
+ /// Decimal32.minimumMagnitude(.nan, .nan)
+ /// // nan
+ ///
+ /// The `minimumMagnitude` method implements the `minNumMag` operation
+ /// defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: Whichever of `x` or `y` has lesser magnitude, or whichever is
+ /// a number if the other is NaN.
+ public static func minimumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._minimumMagnitude(x, y, status: &status)
+ }
+
+ /// Returns the value with greater magnitude.
+ ///
+ /// This method returns the value with greater magnitude of the two given
+ /// values, preserving order and eliminating NaN when possible. For two
+ /// values `x` and `y`, the result of `maximumMagnitude(x, y)` is `x` if
+ /// `x.magnitude > y.magnitude`, `y` if `x.magnitude <= y.magnitude`, or
+ /// whichever of `x` or `y` is a number if the other is a quiet NaN. If both
+ /// `x` and `y` are NaN, or either `x` or `y` is a signaling NaN, the result
+ /// is NaN.
+ ///
+ /// Decimal32.maximumMagnitude(10, -25)
+ /// // -25
+ /// Decimal32.maximumMagnitude(10, .nan)
+ /// // 10
+ /// Decimal32.maximumMagnitude(.nan, -25)
+ /// // -25
+ /// Decimal32.maximumMagnitude(.nan, .nan)
+ /// // nan
+ ///
+ /// The `maximumMagnitude` method implements the `maxNumMag` operation
+ /// defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: Whichever of `x` or `y` has greater magnitude, or whichever is
+ /// a number if the other is NaN.
+ public static func maximumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._maximumMagnitude(x, y, status: &status)
+ }
+
+ // MARK: - Unit in last place
+
+ /// The unit in the last place of this value.
+ ///
+ /// This is the unit of the least significant digit in this value's
+ /// significand. For most numbers `x`, this is the difference between `x`
+ /// and the next greater (in magnitude) representable number. There are some
+ /// edge cases to be aware of:
+ ///
+ /// - If `x` is not a finite number, then `x.ulp` is NaN.
+ /// - If `x` is very small in magnitude, then `x.ulp` may be a subnormal
+ /// number. If a type does not support subnormals, `x.ulp` may be rounded
+ /// to zero.
+ /// - `greatestFiniteMagnitude.ulp` is a finite number, even though the next
+ /// greater representable value is `infinity`.
+ ///
+ /// See also the `ulpOfOne` static property.
+ public var ulp: Self { self._ulp }
+
+ /// The unit in the last place of 1.0.
+ ///
+ /// The positive difference between 1.0 and the next greater representable
+ /// number. `ulpOfOne` corresponds to the value represented by the C macros
+ /// `FLT_EPSILON`, `DBL_EPSILON`, etc, and is sometimes called *epsilon* or
+ /// *machine epsilon*. Swift deliberately avoids using the term "epsilon"
+ /// because:
+ ///
+ /// - Historically "epsilon" has been used to refer to several different
+ /// concepts in different languages, leading to confusion and bugs.
+ ///
+ /// - The name "epsilon" suggests that this quantity is a good tolerance to
+ /// choose for approximate comparisons, but it is almost always unsuitable
+ /// for that purpose.
+ ///
+ /// See also the `ulp` member property.
+ public static var ulpOfOne: Self { Self._ulpOfOne }
+
+ // MARK: - Next
+
+ /// The least representable value that compares greater than this value.
+ ///
+ /// For any finite value `x`, `x.nextUp` is greater than `x`. For `nan` or
+ /// `infinity`, `x.nextUp` is `x` itself. The following special cases also
+ /// apply:
+ ///
+ /// - If `x` is `-infinity`, then `x.nextUp` is `-greatestFiniteMagnitude`.
+ /// - If `x` is `-leastNonzeroMagnitude`, then `x.nextUp` is `-0.0`.
+ /// - If `x` is zero, then `x.nextUp` is `leastNonzeroMagnitude`.
+ /// - If `x` is `greatestFiniteMagnitude`, then `x.nextUp` is `infinity`.
+ public func nextUp(status: inout DecimalStatus) -> Self {
+ // This method should be 'getNextUp', but Swift has 'Double.nextUp'
+ // property, so we will use the same name.
+ return self._nextUp(status: &status)
+ }
+
+ /// The greatest representable value that compares less than this value.
+ ///
+ /// For any finite value `x`, `x.nextDown` is less than `x`. For `nan` or
+ /// `-infinity`, `x.nextDown` is `x` itself. The following special cases
+ /// also apply:
+ ///
+ /// - If `x` is `infinity`, then `x.nextDown` is `greatestFiniteMagnitude`.
+ /// - If `x` is `leastNonzeroMagnitude`, then `x.nextDown` is `0.0`.
+ /// - If `x` is zero, then `x.nextDown` is `-leastNonzeroMagnitude`.
+ /// - If `x` is `-greatestFiniteMagnitude`, then `x.nextDown` is `-infinity`.
+ public func nextDown(status: inout DecimalStatus) -> Self {
+ // This method should be 'getNextDown', but Swift has 'Double.nextDown'
+ // property, so we will use the same name.
+ return self._nextDown(status: &status)
+ }
+
+ // MARK: - Quantum
+
+ /// The floating-point value with the same sign and exponent as this value,
+ /// but with a significand of 1.0.
+ ///
+ /// A *quantum* is a set of decimal floating-point values that all have the
+ /// same sign and exponent. The `quantum` property is a member of the same
+ /// decade as this value, but with a unit significand.
+ ///
+ /// In this example, `x` has a value of `33.33333333333333` which is stored as
+ /// `3333333333333333E-14 = 3333333333333333 * 10 ** -14`.
+ /// Therefore, `x.quantum` is equal to `+1E-14`.
+ ///
+ /// let x = 100 / 3 // +3333333333333333E-14
+ /// let y = x.quantum // +1E-14
+ ///
+ /// IEEE-754: Definition 2.1.44 quantum
+ ///
+ /// The quantum of a finite floating-point representation is the value of a unit
+ /// in the last position of its significand. This is equal to the radix raised
+ /// to the exponent q, which is used when the significand is regarded as an integer.
+ public var quantum: Self { self._quantum }
+
+ /// IEEE-754: `sourceFormat quantize(source, source)`.
+ ///
+ /// For finite decimal operands x and y of the same format, `quantize(x, y)`
+ /// is a floating-point number in the same format that has, if possible,
+ /// the same numerical value as x and the same quantum as y.
+ ///
+ /// If the exponent is being increased, rounding according to the applicable
+ /// rounding-direction attribute might occur: the result is a different
+ /// floating-point representation and the inexact exception is signaled
+ /// if the result does not have the same numerical value as x.
+ ///
+ /// If the exponent is being decreased and the significand of the result would
+ /// have more than p digits, the invalid operation exception is signaled
+ /// and the result is NaN.
+ ///
+ /// If one or both operands are NaN, the rules in 6.2 are followed.
+ ///
+ /// Otherwise if only one operand is infinite then the invalid operation
+ /// exception is signaled and the result is NaN.
+ ///
+ /// If both operands are infinite then the result is canonical ∞ with the
+ /// sign of x.
+ ///
+ /// `quantize` does not signal underflow or overflow.
+ /// The preferred exponent is Q(y).
+ public func quantized(
+ to other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._quantize(other: other, rounding: rounding, status: &status)
+ }
+
+ /// IEEE-754: `boolean sameQuantum(source, source)`
+ ///
+ /// For numerical decimal operands x and y of the same format, sameQuantum(x, y)
+ /// is true if the exponents of x and y are the same, that is, Q(x) = Q(y),
+ /// and false otherwise.
+ ///
+ /// `sameQuantum(NaN, NaN)` and `sameQuantum(inf, inf)` are true; if exactly one
+ /// operand is infinite or exactly one operand is NaN, sameQuantum is false.
+ ///
+ /// `sameQuantum` signals no exception.
+ public func sameQuantum(as other: Self) -> Bool {
+ return self._sameQuantum(other: other)
+ }
+
+ // MARK: - Round
+
+ /// Returns this value rounded to an integral value using the specified
+ /// rounding rule.
+ ///
+ /// The following example rounds a value using four different rounding rules:
+ ///
+ /// let x = 6.5
+ ///
+ /// // Equivalent to the C 'round' function:
+ /// print(x.rounded(.toNearestOrAwayFromZero))
+ /// // Prints "7.0"
+ ///
+ /// // Equivalent to the C 'trunc' function:
+ /// print(x.rounded(.towardZero))
+ /// // Prints "6.0"
+ ///
+ /// // Equivalent to the C 'ceil' function:
+ /// print(x.rounded(.up))
+ /// // Prints "7.0"
+ ///
+ /// // Equivalent to the C 'floor' function:
+ /// print(x.rounded(.down))
+ /// // Prints "6.0"
+ ///
+ /// For more information about the available rounding rules, see the
+ /// `DecimalFloatingPointRoundingRule` enumeration. To round a value using the
+ /// default "schoolbook rounding", you can use the shorter `rounded()`
+ /// method instead.
+ ///
+ /// print(x.rounded())
+ /// // Prints "7.0"
+ ///
+ /// - Parameter rule: The rounding rule to use.
+ /// - Returns: The integral value found by rounding using `rule`.
+ public func rounded(
+ _ rule: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._round(rule, status: &status)
+ }
+
+ // MARK: - Hash
+
+ /// Hashes the essential components of this value by feeding them into the
+ /// given hasher.
+ ///
+ /// Implement this method to conform to the `Hashable` protocol. The
+ /// components used for hashing must be the same as the components compared
+ /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
+ /// with each of these components.
+ ///
+ /// - Important: In your implementation of `hash(into:)`,
+ /// don't call `finalize()` on the `hasher` instance provided,
+ /// or replace it with a different instance.
+ /// Doing so may become a compile-time error in the future.
+ ///
+ /// - Parameter hasher: The hasher to use when combining the components
+ /// of this instance.
+ public func hash(into hasher: inout Hasher) {
+ self._hash(into: &hasher)
+ }
+
+ // MARK: - Codable
+
+ public init(from decoder: Decoder) throws {
+ let container = try decoder.singleValueContainer()
+ let bidString = try container.decode(String.self)
+
+ guard let bid = BID(bidString) else {
+ throw DecodingError.dataCorruptedError(
+ in: container,
+ debugDescription: "Unable to parse Decimal32 from \"\(bidString)\""
+ )
+ }
+
+ self.bid = bid
+ }
+
+ public func encode(to encoder: Encoder) throws {
+ var container = encoder.singleValueContainer()
+ try container.encode(self.bid.description)
+ }
+}
diff --git a/Sources/Decimal/Generated/Decimal64.swift b/Sources/Decimal/Generated/Decimal64.swift
new file mode 100644
index 0000000..554e5f2
--- /dev/null
+++ b/Sources/Decimal/Generated/Decimal64.swift
@@ -0,0 +1,1355 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+// swiftlint:disable superfluous_disable_command
+// swiftlint:disable force_unwrapping
+// swiftlint:disable redundant_type_annotation
+
+public struct Decimal64: DecimalFloatingPoint, DecimalMixin {
+
+ internal typealias BID = UInt64
+ internal typealias DoubleBID = UInt128
+ /// A type that can represent any written exponent.
+ public typealias Exponent = Int
+ /// A type that stores dem bits..
+ public typealias BitPattern = UInt64
+
+ // MARK: - DecimalMixin
+
+ // See 'DecimalMixin' for the meaning of those fields.
+
+ internal static let combinationWidth = 13
+ internal static let exponentBias = 398
+ internal static let emax = 384
+
+ internal static let trailingSignificandWidth = 50
+ internal static let precisionInDigits = 16
+ internal static let maxDecimalDigits: BID = 9_999_999_999_999_999
+ internal static let piDecimalDigits: BID = 3_141_592_653_589_793
+
+ // MARK: - Static properties
+
+ /// A quiet NaN ("not a number").
+ ///
+ /// A NaN compares not equal, not greater than, and not less than every
+ /// value, including itself. Passing a NaN to an operation generally results
+ /// in NaN.
+ ///
+ /// let x = 1.21
+ /// // x > Decimal64.nan == false
+ /// // x < Decimal64.nan == false
+ /// // x == Decimal64.nan == false
+ ///
+ /// Because a NaN always compares not equal to itself, to test whether a
+ /// floating-point value is NaN, use its `isNaN` property instead of the
+ /// equal-to operator (`==`). In the following example, `y` is NaN.
+ ///
+ /// let y = x + Decimal64.nan
+ /// print(y == Decimal64.nan)
+ /// // Prints "false"
+ /// print(y.isNaN)
+ /// // Prints "true"
+ public static let nan = Self._nan
+
+ /// A signaling NaN ("not a number").
+ ///
+ /// The default IEEE 754 behavior of operations involving a signaling NaN is
+ /// to raise the Invalid flag in the floating-point environment and return a
+ /// quiet NaN.
+ ///
+ /// Other than these signaling operations, a signaling NaN behaves in the
+ /// same manner as a quiet NaN.
+ public static let signalingNaN = Self._signalingNaN
+
+ /// Positive infinity.
+ ///
+ /// Infinity compares greater than all finite numbers and equal to other
+ /// infinite values.
+ ///
+ /// let x = Decimal64.greatestFiniteMagnitude
+ /// let y = x * 2
+ /// // y == Decimal64.infinity
+ /// // y > x
+ public static let infinity = Self._infinity
+
+ /// The mathematical constant pi (π), approximately equal to 3.14159.
+ ///
+ /// When measuring an angle in radians, π is equivalent to a half-turn.
+ ///
+ /// This value is rounded toward zero to keep user computations with angles
+ /// from inadvertently ending up in the wrong quadrant.
+ ///
+ /// print(Decimal64.pi)
+ /// // Prints "+3141592653589793E-15"
+ public static let pi = Self._pi
+
+ /// The zero value.
+ ///
+ /// Zero is the identity element for addition. For any value,
+ /// `x + .zero == x` and `.zero + x == x`.
+ public static let zero = Self._zero
+
+ /// The greatest finite number representable by this type.
+ ///
+ /// This value compares greater than or equal to all finite numbers, but less
+ /// than `infinity`.
+ ///
+ /// This value corresponds to type-specific C macros such as `FLT_MAX` and
+ /// `DBL_MAX`. The naming of those macros is slightly misleading, because
+ /// `infinity` is greater than this value.
+ public static let greatestFiniteMagnitude = Self._greatestFiniteMagnitude
+
+ /// The least positive normal number.
+ ///
+ /// This value compares less than or equal to all positive normal numbers.
+ /// There may be smaller positive numbers, but they are *subnormal*, meaning
+ /// that they are represented with less precision than normal numbers.
+ ///
+ /// This value corresponds to type-specific C macros such as `FLT_MIN` and
+ /// `DBL_MIN`. The naming of those macros is slightly misleading, because
+ /// subnormals, zeros, and negative numbers are smaller than this value.
+ public static let leastNormalMagnitude = Self._leastNormalMagnitude
+
+ /// The least positive number.
+ ///
+ /// This value compares less than or equal to all positive numbers, but
+ /// greater than zero. If the type supports subnormal values,
+ /// `leastNonzeroMagnitude` is smaller than `leastNormalMagnitude`;
+ /// otherwise they are equal.
+ public static let leastNonzeroMagnitude = Self._leastNonzeroMagnitude
+
+ // MARK: - Properties
+
+ internal var bid: BID
+
+ /// A Boolean value indicating whether the instance is equal to zero.
+ ///
+ /// The `isZero` property of a value `x` is `true` when `x` represents either
+ /// `-0.0` or `+0.0`. `x.isZero` is equivalent to the following comparison:
+ /// `x == 0.0`.
+ ///
+ /// let x = -0.0
+ /// x.isZero // true
+ /// x == 0.0 // true
+ public var isZero: Bool { self._isZero }
+
+ /// A Boolean value indicating whether this instance is finite.
+ ///
+ /// All values other than NaN and infinity are considered finite, whether
+ /// normal or subnormal. For NaN, both `isFinite` and `isInfinite` are false.
+ public var isFinite: Bool { self._isFinite }
+
+ /// A Boolean value indicating whether the instance is infinite.
+ ///
+ /// For NaN, both `isFinite` and `isInfinite` are false.
+ public var isInfinite: Bool { self._isInfinite }
+
+ /// A Boolean value indicating whether the instance's representation is in
+ /// its canonical form.
+ ///
+ /// The [IEEE 754 specification][spec] defines a *canonical*, or preferred,
+ /// encoding of a floating-point value.
+ ///
+ /// Decimal floating-point types admit a large number of non-canonical
+ /// encodings. Consult the IEEE 754 standard for additional details.
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public var isCanonical: Bool { self._isCanonical }
+
+ /// A Boolean value indicating whether this instance is normal.
+ ///
+ /// A *normal* value is a finite number that uses the full precision
+ /// available to values of a type. Zero is neither a normal nor a subnormal
+ /// number.
+ public var isNormal: Bool { self._isNormal }
+
+ /// A Boolean value indicating whether the instance is subnormal.
+ ///
+ /// A *subnormal* value is a nonzero number that has a lesser magnitude than
+ /// the smallest normal number. Subnormal values don't use the full
+ /// precision available to values of a type.
+ ///
+ /// Zero is neither a normal nor a subnormal number. Subnormal numbers are
+ /// often called *denormal* or *denormalized*---these are different names
+ /// for the same concept.
+ public var isSubnormal: Bool { self._isSubnormal }
+
+ /// A Boolean value indicating whether the instance is NaN ("not a number").
+ ///
+ /// Because NaN is not equal to any value, including NaN, use this property
+ /// instead of the equal-to operator (`==`) or not-equal-to operator (`!=`)
+ /// to test whether a value is or is not NaN. For example:
+ ///
+ /// let x = Decimal64()
+ /// let y = x * .infinity
+ /// // y is a NaN
+ ///
+ /// // Comparing with the equal-to operator never returns 'true'
+ /// print(x == Decimal64.nan)
+ /// // Prints "false"
+ /// print(y == Decimal64.nan)
+ /// // Prints "false"
+ ///
+ /// // Test with the 'isNaN' property instead
+ /// print(x.isNaN)
+ /// // Prints "false"
+ /// print(y.isNaN)
+ /// // Prints "true"
+ ///
+ /// This property is `true` for both quiet and signaling NaNs.
+ public var isNaN: Bool { self._isNaN }
+
+ /// A Boolean value indicating whether the instance is a signaling NaN.
+ ///
+ /// Signaling NaNs typically raise the Invalid flag when used in general
+ /// computing operations.
+ public var isSignalingNaN: Bool { self._isSignalingNaN }
+
+ /// The sign of the floating-point value.
+ ///
+ /// The `sign` property is `.minus` if the value's signbit is set, and
+ /// `.plus` otherwise. For example:
+ ///
+ /// let x = Decimal64(-33)
+ /// // x.sign == .minus
+ ///
+ /// Don't use this property to check whether a floating point value is
+ /// negative. For a value `x`, the comparison `x.sign == .minus` is not
+ /// necessarily the same as `x < 0`. In particular, `x.sign == .minus` if
+ /// `x` is -0, and while `x < 0` is always `false` if `x` is NaN, `x.sign`
+ /// could be either `.plus` or `.minus`.
+ public var sign: FloatingPointSign { self._floatingPointSign }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Binary integer decimal.
+ public var binaryEncoding: BitPattern { self.bid }
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Densely packed decimal.
+ public var decimalEncoding: BitPattern { self._toDenselyPackedDecimal() }
+
+ /// The exponent of the floating-point value.
+ ///
+ /// The *exponent* of a floating-point value is the integer part of the
+ /// logarithm of the value's magnitude. For a value `x` of a floating-point
+ /// type `F`, the magnitude can be calculated as the following, where `**`
+ /// is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ ///
+ /// In the next example, `y` has a value of `33.33333333333333`.
+ /// Exponent is equal to `floor(log10(y)) = floor(1.5228787) = 1`
+ /// and significand is `3.333333333333333` (always between [1, 10)).
+ ///
+ /// let y: Decimal64 = 100 / 3 // +3333333333333333E-14 = 33.33333333333333
+ /// // y.significand == +3333333333333333E-15 // 3.333333333333333
+ /// // y.exponent == 1
+ /// // Decimal64.radix == 10
+ ///
+ /// The `exponent` property has the following edge cases:
+ ///
+ /// - If `x` is zero, then `x.exponent` is `Int.min`.
+ /// - If `x` is +/-infinity or NaN, then `x.exponent` is `Int.max`
+ ///
+ /// This property implements the `logB` operation defined by the [IEEE 754
+ /// specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public func exponent(status: inout DecimalStatus) -> Exponent {
+ // This method should be 'getExponent', but Swift has 'Double.exponent'
+ // property, so we will use the same name.
+ return self._getExponent(status: &status)
+ }
+
+ /// The significand of the floating-point value.
+ ///
+ /// The magnitude of a floating-point value `x` of type `F` can be calculated
+ /// by using the following formula, where `**` is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ ///
+ /// In the next example, `y` has a value of `33.33333333333333`.
+ /// Exponent is equal to `floor(log10(y)) = floor(1.5228787) = 1`
+ /// and significand is `3.333333333333333`.
+ ///
+ /// let y: Decimal64 = 100 / 3 // +3333333333333333E-14 = 33.33333333333333
+ /// // y.significand == +3333333333333333E-15 // 3.333333333333333
+ /// // y.exponent == 1
+ /// // Decimal64.radix == 10
+ ///
+ /// If a type's radix is 10, then for finite nonzero numbers, the significand
+ /// is in the range `1.0 ..< 10.0`. For other values of `x`, `x.significand`
+ /// is defined as follows:
+ ///
+ /// - If `x` is zero, then `x.significand` is 0.0.
+ /// - If `x` is infinite, then `x.significand` is infinity.
+ /// - If `x` is NaN, then `x.significand` is NaN.
+ /// - Note: The significand is frequently also called the *mantissa*, but
+ /// significand is the preferred terminology in the [IEEE 754
+ /// specification][spec], to allay confusion with the use of mantissa for
+ /// the fractional part of a logarithm.
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public var significand: Self { self._getSignificand() }
+
+ /// The magnitude of this value.
+ ///
+ /// For any numeric value `x`, `x.magnitude` is the absolute value of `x`.
+ /// You can use the `magnitude` property in operations that are simpler to
+ /// implement in terms of unsigned values, such as printing the value of an
+ /// integer, which is just printing a '-' character in front of an absolute
+ /// value.
+ ///
+ /// let x = -200
+ /// // x.magnitude == 200
+ ///
+ /// The global `abs(_:)` function provides more familiar syntax when you need
+ /// to find an absolute value. In addition, because `abs(_:)` always returns
+ /// a value of the same type, even in a generic context, using the function
+ /// instead of the `magnitude` property is encouraged.
+ public var magnitude: Self { self._magnitude }
+
+ /// A textual representation of this instance.
+ ///
+ /// Calling this property directly is discouraged. Instead, convert an
+ /// instance of any type to a string by using the `String(describing:)`
+ /// initializer. This initializer works with any type, and uses the custom
+ /// `description` property for types that conform to
+ /// `CustomStringConvertible`:
+ ///
+ /// struct Point: CustomStringConvertible {
+ /// let x: Int, y: Int
+ ///
+ /// var description: String {
+ /// return "(\(x), \(y))"
+ /// }
+ /// }
+ ///
+ /// let p = Point(x: 21, y: 30)
+ /// let s = String(describing: p)
+ /// print(s)
+ /// // Prints "(21, 30)"
+ ///
+ /// The conversion of `p` to a string in the assignment to `s` uses the
+ /// `Point` type's `description` property.
+ public var description: String { self._toString() }
+
+ // MARK: - Init
+
+ /// Use `init(canonical)` instead.
+ internal init(unchecked bid: BID) {
+ self.bid = bid
+ }
+
+ /// Creates a NaN ("not a number") value with the specified payload.
+ ///
+ /// NaN values compare not equal to every value, including themselves. Most
+ /// operations with a NaN operand produce a NaN result. Don't use the
+ /// equal-to operator (`==`) to test whether a value is NaN. Instead, use
+ /// the value's `isNaN` property.
+ ///
+ /// let x = Decimal64(nan: 0, signaling: false)
+ /// print(x == .nan)
+ /// // Prints "false"
+ /// print(x.isNaN)
+ /// // Prints "true"
+ ///
+ /// - Parameters:
+ /// - payload: The payload to use for the new NaN value.
+ /// - signaling: Pass `true` to create a signaling NaN or `false` to create
+ /// a quiet NaN.
+ public init(nan payload: BitPattern, signaling: Bool) {
+ self = Self._init(payload: payload, signaling: signaling)
+ }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Binary integer decimal.
+ public init(binaryEncoding: BitPattern) {
+ self = Self(unchecked: binaryEncoding)
+ }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Densely packed decimal.
+ public init(decimalEncoding: BitPattern) {
+ self = Self._init(decimalEncoding: decimalEncoding)
+ }
+
+ /// Creates a new floating-point value using the sign of one value and the
+ /// magnitude of another.
+ ///
+ /// The following example uses this initializer to create a new `Decimal64`
+ /// instance with the sign of `a` and the magnitude of `b`:
+ ///
+ /// let a = Decimal64(-21)
+ /// let b = Decimal64(305)
+ /// let c = Decimal64(signOf: a, magnitudeOf: b)
+ /// print(c)
+ /// // Prints "-305E+0"
+ ///
+ /// This initializer implements the IEEE 754 `copysign` operation.
+ ///
+ /// - Parameters:
+ /// - signOf: A value from which to use the sign. The result of the
+ /// initializer has the same sign as `signOf`.
+ /// - magnitudeOf: A value from which to use the magnitude. The result of
+ /// the initializer has the same magnitude as `magnitudeOf`.
+ public init(signOf s: Self, magnitudeOf m: Self) {
+ self = Self._init(signOf: s, magnitudeOf: m)
+ }
+
+ /// Creates a new value from the given sign, exponent, and significand.
+ ///
+ /// This initializer is equivalent to the following calculation, where `**`
+ /// is exponentiation, computed as if by a single, correctly rounded,
+ /// floating-point operation:
+ ///
+ /// let sign: FloatingPointSign = .plus
+ /// let exponent = -2
+ /// let significand = Decimal64(5)
+ /// let y = (sign == .minus ? -1 : 1) * significand * 10 ** exponent
+ /// // y == +5E-2
+ ///
+ /// As with any basic operation, if this value is outside the representable
+ /// range of the type, overflow or underflow occurs, and zero, a subnormal
+ /// value, or infinity may result. In addition, there are two other edge
+ /// cases:
+ ///
+ /// - If the value you pass to `significand` is zero or infinite, the result
+ /// is zero or infinite, regardless of the value of `exponent`.
+ /// - If the value you pass to `significand` is NaN, the result is NaN.
+ ///
+ /// For any floating-point value `x` of type `F`, the result of the following
+ /// is equal to `x`, with the distinction that the result is canonicalized
+ /// if `x` is in a noncanonical encoding:
+ ///
+ /// let x0 = F(sign: x.sign, exponent: x.exponent, significand: x.significand)
+ ///
+ /// Please note that the returned `0` may be of a different cohort (different
+ /// exponent) than `x0` (for `0.exponent` returns `Int.min`).
+ ///
+ /// This initializer implements the `scaleB` operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - sign: The sign to use for the new value.
+ /// - exponent: The new value's exponent.
+ /// - significand: The new value's significand.
+ public init(
+ sign: FloatingPointSign,
+ exponent: Exponent,
+ significand: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(
+ sign: sign,
+ exponent: exponent,
+ significand: significand,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Init from String
+
+ /// Creates a new value from the given `String`, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - description: String to convert to a floating-point value.
+ public init?(
+ _ description: S,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ // Avoid polluting 'status' if we fail.
+ var s = DecimalStatus()
+ guard let result = Self._parse(description, rounding: rounding, status: &s) else {
+ return nil
+ }
+
+ self = result
+ status = status | s
+ }
+
+ // MARK: - Init from Int
+
+ /// Creates a new value, rounded using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: The integer to convert to a floating-point value.
+ public init(
+ _ value: Source,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Init from Float
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Float,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Double,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Float80,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(value, rounding: rounding, status: &status)
+ }
+
+#endif
+
+ // MARK: - Init from Decimal
+
+ /// Creates a new instance from the given value.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(_ value: Decimal32) {
+ self = Self._init(smaller: value)
+ }
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ public init(
+ _ value: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = Self._init(bigger: value, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ value: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ value: Decimal128,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter value: A floating-point value to be converted.
+ public init?(exactly value: Decimal128) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self._init(bigger: value, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+ // MARK: - Unary
+
+ /// Replaces this value with its additive inverse.
+ ///
+ /// The result is always exact. This example uses the `negate()` method to
+ /// negate the value of the variable `x`:
+ ///
+ /// var x = 21.5
+ /// x.negate()
+ /// // x == -21.5
+ public mutating func negate() {
+ self._negate()
+ }
+
+ // MARK: - Binary
+
+ /// Adds two values and produces their sum, rounding using the specified
+ /// rounding rule.
+ ///
+ /// The addition operator (`+`) calculates the sum of its two arguments. For
+ /// example:
+ ///
+ /// let x = 1.5
+ /// let y = x + 2.25
+ /// // y == 3.75
+ ///
+ /// The `+` operator implements the addition operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to add.
+ /// - rhs: The second value to add.
+ public func adding(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._adding(other: other, rounding: rounding, status: &status)
+ }
+
+ /// Subtracts one value from another and produces their difference, rounding
+ /// using the specified rounding rule.
+ ///
+ /// The subtraction operator (`-`) calculates the difference of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x - 2.25
+ /// // y == 5.25
+ ///
+ /// The `-` operator implements the subtraction operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: A numeric value.
+ /// - rhs: The value to subtract from `lhs`.
+ public func subtracting(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._subtracting(other: other, rounding: rounding, status: &status)
+ }
+
+ /// Multiplies two values and produces their product, rounding using the
+ /// specified rounding rule.
+ ///
+ /// The multiplication operator (`*`) calculates the product of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x * 2.25
+ /// // y == 16.875
+ ///
+ /// The `*` operator implements the multiplication operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to multiply.
+ /// - rhs: The second value to multiply.
+ public func multiplied(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._multiplied(by: other, rounding: rounding, status: &status)
+ }
+
+ /// Returns the quotient of dividing the first value by the second, rounding
+ /// using the specified rounding rule.
+ ///
+ /// The division operator (`/`) calculates the quotient of the division if
+ /// `rhs` is nonzero. If `rhs` is zero, the result of the division is
+ /// infinity, with the sign of the result matching the sign of `lhs`.
+ ///
+ /// let x = 16.875
+ /// let y = x / 2.25
+ /// // y == 7.5
+ ///
+ /// let z = x / 0
+ /// // z.isInfinite == true
+ ///
+ /// The `/` operator implements the division operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The value to divide.
+ /// - rhs: The value to divide `lhs` by.
+ public func divided(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._divided(by: other, rounding: rounding, status: &status)
+ }
+
+ /// Returns the remainder of this value divided by the given value.
+ ///
+ /// For two finite values `x` and `y`, the remainder `r` of dividing `x` by
+ /// `y` satisfies `x == y * q + r`, where `q` is the integer nearest to
+ /// `x / y`. If `x / y` is exactly halfway between two integers, `q` is
+ /// chosen to be even. Note that `q` is *not* `x / y` computed in
+ /// floating-point arithmetic, and that `q` may not be representable in any
+ /// available integer type.
+ ///
+ /// The following example calculates the remainder of dividing 8.625 by 0.75:
+ ///
+ /// let x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.toNearestOrEven)
+ /// // q == 12.0
+ /// let r = x.remainder(dividingBy: 0.75)
+ /// // r == -0.375
+ ///
+ /// let x1 = 0.75 * q + r
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are finite numbers, the remainder is in the
+ /// closed range `-abs(other / 2)...abs(other / 2)`. The
+ /// `remainder(dividingBy:)` method is always exact. This method implements
+ /// the remainder operation defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ /// - Returns: The remainder of this value divided by `other`.
+ public func remainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._remainder(dividingBy: other, status: &status)
+ }
+
+ /// Returns the remainder of this value divided by the given value using
+ /// truncating division.
+ ///
+ /// Performing truncating division with floating-point values results in a
+ /// truncated integer quotient and a remainder. For values `x` and `y` and
+ /// their truncated integer quotient `q`, the remainder `r` satisfies
+ /// `x == y * q + r`.
+ ///
+ /// The following example calculates the truncating remainder of dividing
+ /// 8.625 by 0.75:
+ ///
+ /// let x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.towardZero)
+ /// // q == 11.0
+ /// let r = x.truncatingRemainder(dividingBy: 0.75)
+ /// // r == 0.375
+ ///
+ /// let x1 = 0.75 * q + r
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are both finite numbers, the truncating
+ /// remainder has the same sign as this value and is strictly smaller in
+ /// magnitude than `other`. The `truncatingRemainder(dividingBy:)` method
+ /// is always exact.
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ /// - Returns: The remainder of this value divided by `other` using
+ /// truncating division.
+ public func truncatingRemainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._truncatingRemainder(dividingBy: other, status: &status)
+ }
+
+ /// Returns the square root of the value, rounding using the specified rounding
+ /// rule.
+ ///
+ /// The following example declares a function that calculates the length of
+ /// the hypotenuse of a right triangle given its two perpendicular sides.
+ ///
+ /// func hypotenuse(_ a: Decimal64, _ b: Decimal64) -> Decimal64 {
+ /// return (a * a + b * b).squareRoot()
+ /// }
+ ///
+ /// let (dx, dy) = (3.0, 4.0)
+ /// let distance = hypotenuse(dx, dy)
+ /// // distance == 5.0
+ ///
+ /// - Returns: The square root of the value.
+ public func squareRoot(
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._squareRoot(rounding: rounding, status: &status)
+ }
+
+ // MARK: - Ternary
+
+ /// Returns the result of adding the product of the two given values to this
+ /// value, computed without intermediate rounding.
+ ///
+ /// This method is equivalent to the C `fma` function and implements the
+ /// `fusedMultiplyAdd` operation defined by the [IEEE 754
+ /// specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: One of the values to multiply before adding to this value.
+ /// - rhs: The other value to multiply.
+ /// - Returns: The product of `lhs` and `rhs`, added to this value.
+ public func addingProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._fusedMultiplyAdd(
+ mulLhs: lhs,
+ mulRhs: rhs,
+ add: self,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // MARK: - Equal, compare
+
+ /// Returns a Boolean value indicating whether this instance is equal to the
+ /// given value.
+ ///
+ /// This method serves as the basis for the equal-to operator (`==`) for
+ /// floating-point values. When comparing two values with this method, `-0`
+ /// is equal to `+0`. NaN is not equal to any value, including itself. For
+ /// example:
+ ///
+ /// let x = 15.0
+ /// x.isEqual(to: 15.0)
+ /// // true
+ /// x.isEqual(to: .nan)
+ /// // false
+ /// Decimal64.nan.isEqual(to: .nan)
+ /// // false
+ ///
+ /// The `isEqual(to:)` method implements the equality predicate defined by
+ /// the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if `other` has the same value as this instance;
+ /// otherwise, `false`. If either this value or `other` is NaN, the result
+ /// of this method is `false`.
+ public func isEqual(
+ to other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isEqual(to: other, status: &status)
+ }
+
+ /// Returns a Boolean value indicating whether this instance is less than the
+ /// given value.
+ ///
+ /// This method serves as the basis for the less-than operator (`<`) for
+ /// floating-point values. Some special cases apply:
+ ///
+ /// - Because NaN compares not less than nor greater than any value, this
+ /// method returns `false` when called on NaN or when NaN is passed as
+ /// `other`.
+ /// - `-infinity` compares less than all values except for itself and NaN.
+ /// - Every value except for NaN and `+infinity` compares less than
+ /// `+infinity`.
+ ///
+ /// let x = 15.0
+ /// x.isLess(than: 20.0)
+ /// // true
+ /// x.isLess(than: .nan)
+ /// // false
+ /// Decimal64.nan.isLess(than: x)
+ /// // false
+ ///
+ /// The `isLess(than:)` method implements the less-than predicate defined by
+ /// the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if this value is less than `other`; otherwise, `false`.
+ /// If either this value or `other` is NaN, the result of this method is
+ /// `false`.
+ public func isLess(
+ than other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isLess(than: other, status: &status)
+ }
+
+ /// Returns a Boolean value indicating whether this instance is less than or
+ /// equal to the given value.
+ ///
+ /// This method serves as the basis for the less-than-or-equal-to operator
+ /// (`<=`) for floating-point values. Some special cases apply:
+ ///
+ /// - Because NaN is incomparable with any value, this method returns `false`
+ /// when called on NaN or when NaN is passed as `other`.
+ /// - `-infinity` compares less than or equal to all values except NaN.
+ /// - Every value except NaN compares less than or equal to `+infinity`.
+ ///
+ /// let x = 15.0
+ /// x.isLessThanOrEqualTo(20.0)
+ /// // true
+ /// x.isLessThanOrEqualTo(.nan)
+ /// // false
+ /// Decimal64.nan.isLessThanOrEqualTo(x)
+ /// // false
+ ///
+ /// The `isLessThanOrEqualTo(_:)` method implements the less-than-or-equal
+ /// predicate defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if `other` is greater than this value; otherwise,
+ /// `false`. If either this value or `other` is NaN, the result of this
+ /// method is `false`.
+ public func isLessThanOrEqualTo(
+ _ other: Self,
+ status: inout DecimalStatus
+ ) -> Bool {
+ return self._isLessThanOrEqualTo(other, status: &status)
+ }
+
+ // MARK: - Total order
+
+ /// Returns a Boolean value indicating whether this instance should precede
+ /// or tie positions with the given value in an ascending sort.
+ ///
+ /// This relation is a refinement of the less-than-or-equal-to operator
+ /// (`<=`) that provides a total order on all values of the type, including
+ /// signed zeros and NaNs.
+ ///
+ /// The following example uses `isTotallyOrdered(belowOrEqualTo:)` to sort an
+ /// array of floating-point values, including some that are NaN:
+ ///
+ /// var numbers = [2.5, 21.25, 3.0, .nan, -9.5]
+ /// numbers.sort { !$1.isTotallyOrdered(belowOrEqualTo: $0) }
+ /// print(numbers)
+ /// // Prints "[-9.5, 2.5, 3.0, 21.25, nan]"
+ ///
+ /// The `isTotallyOrdered(belowOrEqualTo:)` method implements the total order
+ /// relation as defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: A floating-point value to compare to this value.
+ /// - Returns: `true` if this value is ordered below or the same as `other`
+ /// in a total ordering of the floating-point type; otherwise, `false`.
+ public func isTotallyOrdered(belowOrEqualTo other: Self) -> Bool {
+ return self._isTotallyOrdered(belowOrEqualTo: other)
+ }
+
+ // MARK: - Minimum/maximum
+
+ /// Returns the lesser of the two given values.
+ ///
+ /// This method returns the minimum of two values, preserving order and
+ /// eliminating NaN when possible. For two values `x` and `y`, the result of
+ /// `minimum(x, y)` is `x` if `x <= y`, `y` if `y < x`, or whichever of `x`
+ /// or `y` is a number if the other is a quiet NaN. If both `x` and `y` are
+ /// NaN, or either `x` or `y` is a signaling NaN, the result is NaN.
+ ///
+ /// Decimal64.minimum(10, -25)
+ /// // -25
+ /// Decimal64.minimum(10, .nan)
+ /// // 10
+ /// Decimal64.minimum(.nan, -25)
+ /// // -25
+ /// Decimal64.minimum(.nan, .nan)
+ /// // nan
+ ///
+ /// The `minimum` method implements the `minNum` operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: The minimum of `x` and `y`, or whichever is a number if the
+ /// other is NaN.
+ public static func minimum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._minimum(x, y, status: &status)
+ }
+
+ /// Returns the greater of the two given values.
+ ///
+ /// This method returns the maximum of two values, preserving order and
+ /// eliminating NaN when possible. For two values `x` and `y`, the result of
+ /// `maximum(x, y)` is `x` if `x > y`, `y` if `x <= y`, or whichever of `x`
+ /// or `y` is a number if the other is a quiet NaN. If both `x` and `y` are
+ /// NaN, or either `x` or `y` is a signaling NaN, the result is NaN.
+ ///
+ /// Decimal64.maximum(10, -25)
+ /// // 10
+ /// Decimal64.maximum(10, .nan)
+ /// // 10
+ /// Decimal64.maximum(.nan, -25)
+ /// // -25
+ /// Decimal64.maximum(.nan, .nan)
+ /// // nan
+ ///
+ /// The `maximum` method implements the `maxNum` operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: The greater of `x` and `y`, or whichever is a number if the
+ /// other is NaN.
+ public static func maximum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._maximum(x, y, status: &status)
+ }
+
+ /// Returns the value with lesser magnitude.
+ ///
+ /// This method returns the value with lesser magnitude of the two given
+ /// values, preserving order and eliminating NaN when possible. For two
+ /// values `x` and `y`, the result of `minimumMagnitude(x, y)` is `x` if
+ /// `x.magnitude <= y.magnitude`, `y` if `y.magnitude < x.magnitude`, or
+ /// whichever of `x` or `y` is a number if the other is a quiet NaN. If both
+ /// `x` and `y` are NaN, or either `x` or `y` is a signaling NaN, the result
+ /// is NaN.
+ ///
+ /// Decimal64.minimumMagnitude(10, -25)
+ /// // 10
+ /// Decimal64.minimumMagnitude(10, .nan)
+ /// // 10
+ /// Decimal64.minimumMagnitude(.nan, -25)
+ /// // -25
+ /// Decimal64.minimumMagnitude(.nan, .nan)
+ /// // nan
+ ///
+ /// The `minimumMagnitude` method implements the `minNumMag` operation
+ /// defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: Whichever of `x` or `y` has lesser magnitude, or whichever is
+ /// a number if the other is NaN.
+ public static func minimumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._minimumMagnitude(x, y, status: &status)
+ }
+
+ /// Returns the value with greater magnitude.
+ ///
+ /// This method returns the value with greater magnitude of the two given
+ /// values, preserving order and eliminating NaN when possible. For two
+ /// values `x` and `y`, the result of `maximumMagnitude(x, y)` is `x` if
+ /// `x.magnitude > y.magnitude`, `y` if `x.magnitude <= y.magnitude`, or
+ /// whichever of `x` or `y` is a number if the other is a quiet NaN. If both
+ /// `x` and `y` are NaN, or either `x` or `y` is a signaling NaN, the result
+ /// is NaN.
+ ///
+ /// Decimal64.maximumMagnitude(10, -25)
+ /// // -25
+ /// Decimal64.maximumMagnitude(10, .nan)
+ /// // 10
+ /// Decimal64.maximumMagnitude(.nan, -25)
+ /// // -25
+ /// Decimal64.maximumMagnitude(.nan, .nan)
+ /// // nan
+ ///
+ /// The `maximumMagnitude` method implements the `maxNumMag` operation
+ /// defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: Whichever of `x` or `y` has greater magnitude, or whichever is
+ /// a number if the other is NaN.
+ public static func maximumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ return Self._maximumMagnitude(x, y, status: &status)
+ }
+
+ // MARK: - Unit in last place
+
+ /// The unit in the last place of this value.
+ ///
+ /// This is the unit of the least significant digit in this value's
+ /// significand. For most numbers `x`, this is the difference between `x`
+ /// and the next greater (in magnitude) representable number. There are some
+ /// edge cases to be aware of:
+ ///
+ /// - If `x` is not a finite number, then `x.ulp` is NaN.
+ /// - If `x` is very small in magnitude, then `x.ulp` may be a subnormal
+ /// number. If a type does not support subnormals, `x.ulp` may be rounded
+ /// to zero.
+ /// - `greatestFiniteMagnitude.ulp` is a finite number, even though the next
+ /// greater representable value is `infinity`.
+ ///
+ /// See also the `ulpOfOne` static property.
+ public var ulp: Self { self._ulp }
+
+ /// The unit in the last place of 1.0.
+ ///
+ /// The positive difference between 1.0 and the next greater representable
+ /// number. `ulpOfOne` corresponds to the value represented by the C macros
+ /// `FLT_EPSILON`, `DBL_EPSILON`, etc, and is sometimes called *epsilon* or
+ /// *machine epsilon*. Swift deliberately avoids using the term "epsilon"
+ /// because:
+ ///
+ /// - Historically "epsilon" has been used to refer to several different
+ /// concepts in different languages, leading to confusion and bugs.
+ ///
+ /// - The name "epsilon" suggests that this quantity is a good tolerance to
+ /// choose for approximate comparisons, but it is almost always unsuitable
+ /// for that purpose.
+ ///
+ /// See also the `ulp` member property.
+ public static var ulpOfOne: Self { Self._ulpOfOne }
+
+ // MARK: - Next
+
+ /// The least representable value that compares greater than this value.
+ ///
+ /// For any finite value `x`, `x.nextUp` is greater than `x`. For `nan` or
+ /// `infinity`, `x.nextUp` is `x` itself. The following special cases also
+ /// apply:
+ ///
+ /// - If `x` is `-infinity`, then `x.nextUp` is `-greatestFiniteMagnitude`.
+ /// - If `x` is `-leastNonzeroMagnitude`, then `x.nextUp` is `-0.0`.
+ /// - If `x` is zero, then `x.nextUp` is `leastNonzeroMagnitude`.
+ /// - If `x` is `greatestFiniteMagnitude`, then `x.nextUp` is `infinity`.
+ public func nextUp(status: inout DecimalStatus) -> Self {
+ // This method should be 'getNextUp', but Swift has 'Double.nextUp'
+ // property, so we will use the same name.
+ return self._nextUp(status: &status)
+ }
+
+ /// The greatest representable value that compares less than this value.
+ ///
+ /// For any finite value `x`, `x.nextDown` is less than `x`. For `nan` or
+ /// `-infinity`, `x.nextDown` is `x` itself. The following special cases
+ /// also apply:
+ ///
+ /// - If `x` is `infinity`, then `x.nextDown` is `greatestFiniteMagnitude`.
+ /// - If `x` is `leastNonzeroMagnitude`, then `x.nextDown` is `0.0`.
+ /// - If `x` is zero, then `x.nextDown` is `-leastNonzeroMagnitude`.
+ /// - If `x` is `-greatestFiniteMagnitude`, then `x.nextDown` is `-infinity`.
+ public func nextDown(status: inout DecimalStatus) -> Self {
+ // This method should be 'getNextDown', but Swift has 'Double.nextDown'
+ // property, so we will use the same name.
+ return self._nextDown(status: &status)
+ }
+
+ // MARK: - Quantum
+
+ /// The floating-point value with the same sign and exponent as this value,
+ /// but with a significand of 1.0.
+ ///
+ /// A *quantum* is a set of decimal floating-point values that all have the
+ /// same sign and exponent. The `quantum` property is a member of the same
+ /// decade as this value, but with a unit significand.
+ ///
+ /// In this example, `x` has a value of `33.33333333333333` which is stored as
+ /// `3333333333333333E-14 = 3333333333333333 * 10 ** -14`.
+ /// Therefore, `x.quantum` is equal to `+1E-14`.
+ ///
+ /// let x = 100 / 3 // +3333333333333333E-14
+ /// let y = x.quantum // +1E-14
+ ///
+ /// IEEE-754: Definition 2.1.44 quantum
+ ///
+ /// The quantum of a finite floating-point representation is the value of a unit
+ /// in the last position of its significand. This is equal to the radix raised
+ /// to the exponent q, which is used when the significand is regarded as an integer.
+ public var quantum: Self { self._quantum }
+
+ /// IEEE-754: `sourceFormat quantize(source, source)`.
+ ///
+ /// For finite decimal operands x and y of the same format, `quantize(x, y)`
+ /// is a floating-point number in the same format that has, if possible,
+ /// the same numerical value as x and the same quantum as y.
+ ///
+ /// If the exponent is being increased, rounding according to the applicable
+ /// rounding-direction attribute might occur: the result is a different
+ /// floating-point representation and the inexact exception is signaled
+ /// if the result does not have the same numerical value as x.
+ ///
+ /// If the exponent is being decreased and the significand of the result would
+ /// have more than p digits, the invalid operation exception is signaled
+ /// and the result is NaN.
+ ///
+ /// If one or both operands are NaN, the rules in 6.2 are followed.
+ ///
+ /// Otherwise if only one operand is infinite then the invalid operation
+ /// exception is signaled and the result is NaN.
+ ///
+ /// If both operands are infinite then the result is canonical ∞ with the
+ /// sign of x.
+ ///
+ /// `quantize` does not signal underflow or overflow.
+ /// The preferred exponent is Q(y).
+ public func quantized(
+ to other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._quantize(other: other, rounding: rounding, status: &status)
+ }
+
+ /// IEEE-754: `boolean sameQuantum(source, source)`
+ ///
+ /// For numerical decimal operands x and y of the same format, sameQuantum(x, y)
+ /// is true if the exponents of x and y are the same, that is, Q(x) = Q(y),
+ /// and false otherwise.
+ ///
+ /// `sameQuantum(NaN, NaN)` and `sameQuantum(inf, inf)` are true; if exactly one
+ /// operand is infinite or exactly one operand is NaN, sameQuantum is false.
+ ///
+ /// `sameQuantum` signals no exception.
+ public func sameQuantum(as other: Self) -> Bool {
+ return self._sameQuantum(other: other)
+ }
+
+ // MARK: - Round
+
+ /// Returns this value rounded to an integral value using the specified
+ /// rounding rule.
+ ///
+ /// The following example rounds a value using four different rounding rules:
+ ///
+ /// let x = 6.5
+ ///
+ /// // Equivalent to the C 'round' function:
+ /// print(x.rounded(.toNearestOrAwayFromZero))
+ /// // Prints "7.0"
+ ///
+ /// // Equivalent to the C 'trunc' function:
+ /// print(x.rounded(.towardZero))
+ /// // Prints "6.0"
+ ///
+ /// // Equivalent to the C 'ceil' function:
+ /// print(x.rounded(.up))
+ /// // Prints "7.0"
+ ///
+ /// // Equivalent to the C 'floor' function:
+ /// print(x.rounded(.down))
+ /// // Prints "6.0"
+ ///
+ /// For more information about the available rounding rules, see the
+ /// `DecimalFloatingPointRoundingRule` enumeration. To round a value using the
+ /// default "schoolbook rounding", you can use the shorter `rounded()`
+ /// method instead.
+ ///
+ /// print(x.rounded())
+ /// // Prints "7.0"
+ ///
+ /// - Parameter rule: The rounding rule to use.
+ /// - Returns: The integral value found by rounding using `rule`.
+ public func rounded(
+ _ rule: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self {
+ return self._round(rule, status: &status)
+ }
+
+ // MARK: - Hash
+
+ /// Hashes the essential components of this value by feeding them into the
+ /// given hasher.
+ ///
+ /// Implement this method to conform to the `Hashable` protocol. The
+ /// components used for hashing must be the same as the components compared
+ /// in your type's `==` operator implementation. Call `hasher.combine(_:)`
+ /// with each of these components.
+ ///
+ /// - Important: In your implementation of `hash(into:)`,
+ /// don't call `finalize()` on the `hasher` instance provided,
+ /// or replace it with a different instance.
+ /// Doing so may become a compile-time error in the future.
+ ///
+ /// - Parameter hasher: The hasher to use when combining the components
+ /// of this instance.
+ public func hash(into hasher: inout Hasher) {
+ self._hash(into: &hasher)
+ }
+
+ // MARK: - Codable
+
+ public init(from decoder: Decoder) throws {
+ let container = try decoder.singleValueContainer()
+ let bidString = try container.decode(String.self)
+
+ guard let bid = BID(bidString) else {
+ throw DecodingError.dataCorruptedError(
+ in: container,
+ debugDescription: "Unable to parse Decimal64 from \"\(bidString)\""
+ )
+ }
+
+ self.bid = bid
+ }
+
+ public func encode(to encoder: Encoder) throws {
+ var container = encoder.singleValueContainer()
+ try container.encode(self.bid.description)
+ }
+}
diff --git a/Sources/Decimal/Generated/DecimalFloatingPoint.swift b/Sources/Decimal/Generated/DecimalFloatingPoint.swift
new file mode 100644
index 0000000..3da116e
--- /dev/null
+++ b/Sources/Decimal/Generated/DecimalFloatingPoint.swift
@@ -0,0 +1,2246 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+// This code was generated based on the 'public' operations from 'Decimal64'.
+// =============================================================================
+
+/// It is a truth universally acknowledged, that `0.1 + 0.2` must be
+/// `0.30000000000000004`.
+///
+/// …
+///
+/// This is a radix 10 (decimal) floating-point type from IEEE 754.
+public protocol DecimalFloatingPoint: Comparable, Hashable,
+ Sendable, Codable,
+ ExpressibleByIntegerLiteral,
+ CustomStringConvertible {
+
+ /// A type that can represent any written exponent.
+ associatedtype Exponent: SignedInteger & FixedWidthInteger
+
+ /// A type that stores dem bits..
+ associatedtype BitPattern: UnsignedInteger & FixedWidthInteger
+
+ /// A quiet NaN ("not a number").
+ ///
+ /// A NaN compares not equal, not greater than, and not less than every
+ /// value, including itself. Passing a NaN to an operation generally results
+ /// in NaN.
+ ///
+ /// let x = 1.21
+ /// // x > Decimal64.nan == false
+ /// // x < Decimal64.nan == false
+ /// // x == Decimal64.nan == false
+ ///
+ /// Because a NaN always compares not equal to itself, to test whether a
+ /// floating-point value is NaN, use its `isNaN` property instead of the
+ /// equal-to operator (`==`). In the following example, `y` is NaN.
+ ///
+ /// let y = x + Decimal64.nan
+ /// print(y == Decimal64.nan)
+ /// // Prints "false"
+ /// print(y.isNaN)
+ /// // Prints "true"
+ static var nan: Self { get }
+
+ /// A signaling NaN ("not a number").
+ ///
+ /// The default IEEE 754 behavior of operations involving a signaling NaN is
+ /// to raise the Invalid flag in the floating-point environment and return a
+ /// quiet NaN.
+ ///
+ /// Other than these signaling operations, a signaling NaN behaves in the
+ /// same manner as a quiet NaN.
+ static var signalingNaN: Self { get }
+
+ /// Positive infinity.
+ ///
+ /// Infinity compares greater than all finite numbers and equal to other
+ /// infinite values.
+ ///
+ /// let x = Decimal64.greatestFiniteMagnitude
+ /// let y = x * 2
+ /// // y == Decimal64.infinity
+ /// // y > x
+ static var infinity: Self { get }
+
+ /// The mathematical constant pi (π), approximately equal to 3.14159.
+ ///
+ /// When measuring an angle in radians, π is equivalent to a half-turn.
+ ///
+ /// This value is rounded toward zero to keep user computations with angles
+ /// from inadvertently ending up in the wrong quadrant.
+ ///
+ /// print(Decimal64.pi)
+ /// // Prints "+3141592653589793E-15"
+ static var pi: Self { get }
+
+ /// The zero value.
+ ///
+ /// Zero is the identity element for addition. For any value,
+ /// `x + .zero == x` and `.zero + x == x`.
+ static var zero: Self { get }
+
+ /// The greatest finite number representable by this type.
+ ///
+ /// This value compares greater than or equal to all finite numbers, but less
+ /// than `infinity`.
+ ///
+ /// This value corresponds to type-specific C macros such as `FLT_MAX` and
+ /// `DBL_MAX`. The naming of those macros is slightly misleading, because
+ /// `infinity` is greater than this value.
+ static var greatestFiniteMagnitude: Self { get }
+
+ /// The least positive normal number.
+ ///
+ /// This value compares less than or equal to all positive normal numbers.
+ /// There may be smaller positive numbers, but they are *subnormal*, meaning
+ /// that they are represented with less precision than normal numbers.
+ ///
+ /// This value corresponds to type-specific C macros such as `FLT_MIN` and
+ /// `DBL_MIN`. The naming of those macros is slightly misleading, because
+ /// subnormals, zeros, and negative numbers are smaller than this value.
+ static var leastNormalMagnitude: Self { get }
+
+ /// The least positive number.
+ ///
+ /// This value compares less than or equal to all positive numbers, but
+ /// greater than zero. If the type supports subnormal values,
+ /// `leastNonzeroMagnitude` is smaller than `leastNormalMagnitude`;
+ /// otherwise they are equal.
+ static var leastNonzeroMagnitude: Self { get }
+
+ /// A Boolean value indicating whether the instance is equal to zero.
+ ///
+ /// The `isZero` property of a value `x` is `true` when `x` represents either
+ /// `-0.0` or `+0.0`. `x.isZero` is equivalent to the following comparison:
+ /// `x == 0.0`.
+ ///
+ /// let x = -0.0
+ /// x.isZero // true
+ /// x == 0.0 // true
+ var isZero: Bool { get }
+
+ /// A Boolean value indicating whether this instance is finite.
+ ///
+ /// All values other than NaN and infinity are considered finite, whether
+ /// normal or subnormal. For NaN, both `isFinite` and `isInfinite` are false.
+ var isFinite: Bool { get }
+
+ /// A Boolean value indicating whether the instance is infinite.
+ ///
+ /// For NaN, both `isFinite` and `isInfinite` are false.
+ var isInfinite: Bool { get }
+
+ /// A Boolean value indicating whether the instance's representation is in
+ /// its canonical form.
+ ///
+ /// The [IEEE 754 specification][spec] defines a *canonical*, or preferred,
+ /// encoding of a floating-point value.
+ ///
+ /// Decimal floating-point types admit a large number of non-canonical
+ /// encodings. Consult the IEEE 754 standard for additional details.
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ var isCanonical: Bool { get }
+
+ /// A Boolean value indicating whether this instance is normal.
+ ///
+ /// A *normal* value is a finite number that uses the full precision
+ /// available to values of a type. Zero is neither a normal nor a subnormal
+ /// number.
+ var isNormal: Bool { get }
+
+ /// A Boolean value indicating whether the instance is subnormal.
+ ///
+ /// A *subnormal* value is a nonzero number that has a lesser magnitude than
+ /// the smallest normal number. Subnormal values don't use the full
+ /// precision available to values of a type.
+ ///
+ /// Zero is neither a normal nor a subnormal number. Subnormal numbers are
+ /// often called *denormal* or *denormalized*---these are different names
+ /// for the same concept.
+ var isSubnormal: Bool { get }
+
+ /// A Boolean value indicating whether the instance is NaN ("not a number").
+ ///
+ /// Because NaN is not equal to any value, including NaN, use this property
+ /// instead of the equal-to operator (`==`) or not-equal-to operator (`!=`)
+ /// to test whether a value is or is not NaN. For example:
+ ///
+ /// let x = Decimal64()
+ /// let y = x * .infinity
+ /// // y is a NaN
+ ///
+ /// // Comparing with the equal-to operator never returns 'true'
+ /// print(x == Decimal64.nan)
+ /// // Prints "false"
+ /// print(y == Decimal64.nan)
+ /// // Prints "false"
+ ///
+ /// // Test with the 'isNaN' property instead
+ /// print(x.isNaN)
+ /// // Prints "false"
+ /// print(y.isNaN)
+ /// // Prints "true"
+ ///
+ /// This property is `true` for both quiet and signaling NaNs.
+ var isNaN: Bool { get }
+
+ /// A Boolean value indicating whether the instance is a signaling NaN.
+ ///
+ /// Signaling NaNs typically raise the Invalid flag when used in general
+ /// computing operations.
+ var isSignalingNaN: Bool { get }
+
+ /// The sign of the floating-point value.
+ ///
+ /// The `sign` property is `.minus` if the value's signbit is set, and
+ /// `.plus` otherwise. For example:
+ ///
+ /// let x = Decimal64(-33)
+ /// // x.sign == .minus
+ ///
+ /// Don't use this property to check whether a floating point value is
+ /// negative. For a value `x`, the comparison `x.sign == .minus` is not
+ /// necessarily the same as `x < 0`. In particular, `x.sign == .minus` if
+ /// `x` is -0, and while `x < 0` is always `false` if `x` is NaN, `x.sign`
+ /// could be either `.plus` or `.minus`.
+ var sign: FloatingPointSign { get }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Binary integer decimal.
+ var binaryEncoding: BitPattern { get }
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Densely packed decimal.
+ var decimalEncoding: BitPattern { get }
+
+ /// The exponent of the floating-point value.
+ ///
+ /// The *exponent* of a floating-point value is the integer part of the
+ /// logarithm of the value's magnitude. For a value `x` of a floating-point
+ /// type `F`, the magnitude can be calculated as the following, where `**`
+ /// is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ ///
+ /// In the next example, `y` has a value of `33.33333333333333`.
+ /// Exponent is equal to `floor(log10(y)) = floor(1.5228787) = 1`
+ /// and significand is `3.333333333333333` (always between [1, 10)).
+ ///
+ /// let y: Decimal64 = 100 / 3 // +3333333333333333E-14 = 33.33333333333333
+ /// // y.significand == +3333333333333333E-15 // 3.333333333333333
+ /// // y.exponent == 1
+ /// // Decimal64.radix == 10
+ ///
+ /// The `exponent` property has the following edge cases:
+ ///
+ /// - If `x` is zero, then `x.exponent` is `Int.min`.
+ /// - If `x` is +/-infinity or NaN, then `x.exponent` is `Int.max`
+ ///
+ /// This property implements the `logB` operation defined by the [IEEE 754
+ /// specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ func exponent(status: inout DecimalStatus) -> Exponent
+
+ /// The significand of the floating-point value.
+ ///
+ /// The magnitude of a floating-point value `x` of type `F` can be calculated
+ /// by using the following formula, where `**` is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ ///
+ /// In the next example, `y` has a value of `33.33333333333333`.
+ /// Exponent is equal to `floor(log10(y)) = floor(1.5228787) = 1`
+ /// and significand is `3.333333333333333`.
+ ///
+ /// let y: Decimal64 = 100 / 3 // +3333333333333333E-14 = 33.33333333333333
+ /// // y.significand == +3333333333333333E-15 // 3.333333333333333
+ /// // y.exponent == 1
+ /// // Decimal64.radix == 10
+ ///
+ /// If a type's radix is 10, then for finite nonzero numbers, the significand
+ /// is in the range `1.0 ..< 10.0`. For other values of `x`, `x.significand`
+ /// is defined as follows:
+ ///
+ /// - If `x` is zero, then `x.significand` is 0.0.
+ /// - If `x` is infinite, then `x.significand` is infinity.
+ /// - If `x` is NaN, then `x.significand` is NaN.
+ /// - Note: The significand is frequently also called the *mantissa*, but
+ /// significand is the preferred terminology in the [IEEE 754
+ /// specification][spec], to allay confusion with the use of mantissa for
+ /// the fractional part of a logarithm.
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ var significand: Self { get }
+
+ /// The magnitude of this value.
+ ///
+ /// For any numeric value `x`, `x.magnitude` is the absolute value of `x`.
+ /// You can use the `magnitude` property in operations that are simpler to
+ /// implement in terms of unsigned values, such as printing the value of an
+ /// integer, which is just printing a '-' character in front of an absolute
+ /// value.
+ ///
+ /// let x = -200
+ /// // x.magnitude == 200
+ ///
+ /// The global `abs(_:)` function provides more familiar syntax when you need
+ /// to find an absolute value. In addition, because `abs(_:)` always returns
+ /// a value of the same type, even in a generic context, using the function
+ /// instead of the `magnitude` property is encouraged.
+ var magnitude: Self { get }
+
+ /// A textual representation of this instance.
+ ///
+ /// Calling this property directly is discouraged. Instead, convert an
+ /// instance of any type to a string by using the `String(describing:)`
+ /// initializer. This initializer works with any type, and uses the custom
+ /// `description` property for types that conform to
+ /// `CustomStringConvertible`:
+ ///
+ /// struct Point: CustomStringConvertible {
+ /// let x: Int, y: Int
+ ///
+ /// var description: String {
+ /// return "(\(x), \(y))"
+ /// }
+ /// }
+ ///
+ /// let p = Point(x: 21, y: 30)
+ /// let s = String(describing: p)
+ /// print(s)
+ /// // Prints "(21, 30)"
+ ///
+ /// The conversion of `p` to a string in the assignment to `s` uses the
+ /// `Point` type's `description` property.
+ var description: String { get }
+
+ /// Creates a NaN ("not a number") value with the specified payload.
+ ///
+ /// NaN values compare not equal to every value, including themselves. Most
+ /// operations with a NaN operand produce a NaN result. Don't use the
+ /// equal-to operator (`==`) to test whether a value is NaN. Instead, use
+ /// the value's `isNaN` property.
+ ///
+ /// let x = Decimal64(nan: 0, signaling: false)
+ /// print(x == .nan)
+ /// // Prints "false"
+ /// print(x.isNaN)
+ /// // Prints "true"
+ ///
+ /// - Parameters:
+ /// - payload: The payload to use for the new NaN value.
+ /// - signaling: Pass `true` to create a signaling NaN or `false` to create
+ /// a quiet NaN.
+ init(
+ nan payload: BitPattern,
+ signaling: Bool
+ )
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Binary integer decimal.
+ init(binaryEncoding: BitPattern)
+
+ /// IEEE-754: 5.5.2 Decimal re-encoding operations.
+ /// Densely packed decimal.
+ init(decimalEncoding: BitPattern)
+
+ /// Creates a new floating-point value using the sign of one value and the
+ /// magnitude of another.
+ ///
+ /// The following example uses this initializer to create a new `Decimal64`
+ /// instance with the sign of `a` and the magnitude of `b`:
+ ///
+ /// let a = Decimal64(-21)
+ /// let b = Decimal64(305)
+ /// let c = Decimal64(signOf: a, magnitudeOf: b)
+ /// print(c)
+ /// // Prints "-305E+0"
+ ///
+ /// This initializer implements the IEEE 754 `copysign` operation.
+ ///
+ /// - Parameters:
+ /// - signOf: A value from which to use the sign. The result of the
+ /// initializer has the same sign as `signOf`.
+ /// - magnitudeOf: A value from which to use the magnitude. The result of
+ /// the initializer has the same magnitude as `magnitudeOf`.
+ init(
+ signOf s: Self,
+ magnitudeOf m: Self
+ )
+
+ /// Creates a new value from the given sign, exponent, and significand.
+ ///
+ /// This initializer is equivalent to the following calculation, where `**`
+ /// is exponentiation, computed as if by a single, correctly rounded,
+ /// floating-point operation:
+ ///
+ /// let sign: FloatingPointSign = .plus
+ /// let exponent = -2
+ /// let significand = Decimal64(5)
+ /// let y = (sign == .minus ? -1 : 1) * significand * 10 ** exponent
+ /// // y == +5E-2
+ ///
+ /// As with any basic operation, if this value is outside the representable
+ /// range of the type, overflow or underflow occurs, and zero, a subnormal
+ /// value, or infinity may result. In addition, there are two other edge
+ /// cases:
+ ///
+ /// - If the value you pass to `significand` is zero or infinite, the result
+ /// is zero or infinite, regardless of the value of `exponent`.
+ /// - If the value you pass to `significand` is NaN, the result is NaN.
+ ///
+ /// For any floating-point value `x` of type `F`, the result of the following
+ /// is equal to `x`, with the distinction that the result is canonicalized
+ /// if `x` is in a noncanonical encoding:
+ ///
+ /// let x0 = F(sign: x.sign, exponent: x.exponent, significand: x.significand)
+ ///
+ /// Please note that the returned `0` may be of a different cohort (different
+ /// exponent) than `x0` (for `0.exponent` returns `Int.min`).
+ ///
+ /// This initializer implements the `scaleB` operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - sign: The sign to use for the new value.
+ /// - exponent: The new value's exponent.
+ /// - significand: The new value's significand.
+ init(
+ sign: FloatingPointSign,
+ exponent: Exponent,
+ significand: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ )
+
+ /// Creates a new value from the given `String`, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - description: String to convert to a floating-point value.
+ init?(
+ _ description: S,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ )
+
+ /// Creates a new value, rounded using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: The integer to convert to a floating-point value.
+ init(
+ _ value: Source,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ )
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ init(
+ _ value: Float,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ )
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ init(
+ _ value: Double,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ )
+
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ /// Creates a new instance from the given value, rounded using the specified
+ /// rounding rule.
+ ///
+ /// - Parameters:
+ /// - value: A floating-point value to be converted.
+ init(
+ _ value: Float80,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ )
+
+#endif
+
+ /// Replaces this value with its additive inverse.
+ ///
+ /// The result is always exact. This example uses the `negate()` method to
+ /// negate the value of the variable `x`:
+ ///
+ /// var x = 21.5
+ /// x.negate()
+ /// // x == -21.5
+ mutating func negate()
+
+ /// Adds two values and produces their sum, rounding using the specified
+ /// rounding rule.
+ ///
+ /// The addition operator (`+`) calculates the sum of its two arguments. For
+ /// example:
+ ///
+ /// let x = 1.5
+ /// let y = x + 2.25
+ /// // y == 3.75
+ ///
+ /// The `+` operator implements the addition operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to add.
+ /// - rhs: The second value to add.
+ func adding(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// Subtracts one value from another and produces their difference, rounding
+ /// using the specified rounding rule.
+ ///
+ /// The subtraction operator (`-`) calculates the difference of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x - 2.25
+ /// // y == 5.25
+ ///
+ /// The `-` operator implements the subtraction operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: A numeric value.
+ /// - rhs: The value to subtract from `lhs`.
+ func subtracting(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// Multiplies two values and produces their product, rounding using the
+ /// specified rounding rule.
+ ///
+ /// The multiplication operator (`*`) calculates the product of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x * 2.25
+ /// // y == 16.875
+ ///
+ /// The `*` operator implements the multiplication operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to multiply.
+ /// - rhs: The second value to multiply.
+ func multiplied(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// Returns the quotient of dividing the first value by the second, rounding
+ /// using the specified rounding rule.
+ ///
+ /// The division operator (`/`) calculates the quotient of the division if
+ /// `rhs` is nonzero. If `rhs` is zero, the result of the division is
+ /// infinity, with the sign of the result matching the sign of `lhs`.
+ ///
+ /// let x = 16.875
+ /// let y = x / 2.25
+ /// // y == 7.5
+ ///
+ /// let z = x / 0
+ /// // z.isInfinite == true
+ ///
+ /// The `/` operator implements the division operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The value to divide.
+ /// - rhs: The value to divide `lhs` by.
+ func divided(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// Returns the remainder of this value divided by the given value.
+ ///
+ /// For two finite values `x` and `y`, the remainder `r` of dividing `x` by
+ /// `y` satisfies `x == y * q + r`, where `q` is the integer nearest to
+ /// `x / y`. If `x / y` is exactly halfway between two integers, `q` is
+ /// chosen to be even. Note that `q` is *not* `x / y` computed in
+ /// floating-point arithmetic, and that `q` may not be representable in any
+ /// available integer type.
+ ///
+ /// The following example calculates the remainder of dividing 8.625 by 0.75:
+ ///
+ /// let x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.toNearestOrEven)
+ /// // q == 12.0
+ /// let r = x.remainder(dividingBy: 0.75)
+ /// // r == -0.375
+ ///
+ /// let x1 = 0.75 * q + r
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are finite numbers, the remainder is in the
+ /// closed range `-abs(other / 2)...abs(other / 2)`. The
+ /// `remainder(dividingBy:)` method is always exact. This method implements
+ /// the remainder operation defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ /// - Returns: The remainder of this value divided by `other`.
+ func remainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// Returns the remainder of this value divided by the given value using
+ /// truncating division.
+ ///
+ /// Performing truncating division with floating-point values results in a
+ /// truncated integer quotient and a remainder. For values `x` and `y` and
+ /// their truncated integer quotient `q`, the remainder `r` satisfies
+ /// `x == y * q + r`.
+ ///
+ /// The following example calculates the truncating remainder of dividing
+ /// 8.625 by 0.75:
+ ///
+ /// let x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.towardZero)
+ /// // q == 11.0
+ /// let r = x.truncatingRemainder(dividingBy: 0.75)
+ /// // r == 0.375
+ ///
+ /// let x1 = 0.75 * q + r
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are both finite numbers, the truncating
+ /// remainder has the same sign as this value and is strictly smaller in
+ /// magnitude than `other`. The `truncatingRemainder(dividingBy:)` method
+ /// is always exact.
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ /// - Returns: The remainder of this value divided by `other` using
+ /// truncating division.
+ func truncatingRemainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// Returns the square root of the value, rounding using the specified rounding
+ /// rule.
+ ///
+ /// The following example declares a function that calculates the length of
+ /// the hypotenuse of a right triangle given its two perpendicular sides.
+ ///
+ /// func hypotenuse(_ a: Decimal64, _ b: Decimal64) -> Decimal64 {
+ /// return (a * a + b * b).squareRoot()
+ /// }
+ ///
+ /// let (dx, dy) = (3.0, 4.0)
+ /// let distance = hypotenuse(dx, dy)
+ /// // distance == 5.0
+ ///
+ /// - Returns: The square root of the value.
+ func squareRoot(
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// Returns the result of adding the product of the two given values to this
+ /// value, computed without intermediate rounding.
+ ///
+ /// This method is equivalent to the C `fma` function and implements the
+ /// `fusedMultiplyAdd` operation defined by the [IEEE 754
+ /// specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: One of the values to multiply before adding to this value.
+ /// - rhs: The other value to multiply.
+ /// - Returns: The product of `lhs` and `rhs`, added to this value.
+ func addingProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// Returns a Boolean value indicating whether this instance is equal to the
+ /// given value.
+ ///
+ /// This method serves as the basis for the equal-to operator (`==`) for
+ /// floating-point values. When comparing two values with this method, `-0`
+ /// is equal to `+0`. NaN is not equal to any value, including itself. For
+ /// example:
+ ///
+ /// let x = 15.0
+ /// x.isEqual(to: 15.0)
+ /// // true
+ /// x.isEqual(to: .nan)
+ /// // false
+ /// Decimal64.nan.isEqual(to: .nan)
+ /// // false
+ ///
+ /// The `isEqual(to:)` method implements the equality predicate defined by
+ /// the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if `other` has the same value as this instance;
+ /// otherwise, `false`. If either this value or `other` is NaN, the result
+ /// of this method is `false`.
+ func isEqual(
+ to other: Self,
+ status: inout DecimalStatus
+ ) -> Bool
+
+ /// Returns a Boolean value indicating whether this instance is less than the
+ /// given value.
+ ///
+ /// This method serves as the basis for the less-than operator (`<`) for
+ /// floating-point values. Some special cases apply:
+ ///
+ /// - Because NaN compares not less than nor greater than any value, this
+ /// method returns `false` when called on NaN or when NaN is passed as
+ /// `other`.
+ /// - `-infinity` compares less than all values except for itself and NaN.
+ /// - Every value except for NaN and `+infinity` compares less than
+ /// `+infinity`.
+ ///
+ /// let x = 15.0
+ /// x.isLess(than: 20.0)
+ /// // true
+ /// x.isLess(than: .nan)
+ /// // false
+ /// Decimal64.nan.isLess(than: x)
+ /// // false
+ ///
+ /// The `isLess(than:)` method implements the less-than predicate defined by
+ /// the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if this value is less than `other`; otherwise, `false`.
+ /// If either this value or `other` is NaN, the result of this method is
+ /// `false`.
+ func isLess(
+ than other: Self,
+ status: inout DecimalStatus
+ ) -> Bool
+
+ /// Returns a Boolean value indicating whether this instance is less than or
+ /// equal to the given value.
+ ///
+ /// This method serves as the basis for the less-than-or-equal-to operator
+ /// (`<=`) for floating-point values. Some special cases apply:
+ ///
+ /// - Because NaN is incomparable with any value, this method returns `false`
+ /// when called on NaN or when NaN is passed as `other`.
+ /// - `-infinity` compares less than or equal to all values except NaN.
+ /// - Every value except NaN compares less than or equal to `+infinity`.
+ ///
+ /// let x = 15.0
+ /// x.isLessThanOrEqualTo(20.0)
+ /// // true
+ /// x.isLessThanOrEqualTo(.nan)
+ /// // false
+ /// Decimal64.nan.isLessThanOrEqualTo(x)
+ /// // false
+ ///
+ /// The `isLessThanOrEqualTo(_:)` method implements the less-than-or-equal
+ /// predicate defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: The value to compare with this value.
+ /// - Returns: `true` if `other` is greater than this value; otherwise,
+ /// `false`. If either this value or `other` is NaN, the result of this
+ /// method is `false`.
+ func isLessThanOrEqualTo(
+ _ other: Self,
+ status: inout DecimalStatus
+ ) -> Bool
+
+ /// Returns a Boolean value indicating whether this instance should precede
+ /// or tie positions with the given value in an ascending sort.
+ ///
+ /// This relation is a refinement of the less-than-or-equal-to operator
+ /// (`<=`) that provides a total order on all values of the type, including
+ /// signed zeros and NaNs.
+ ///
+ /// The following example uses `isTotallyOrdered(belowOrEqualTo:)` to sort an
+ /// array of floating-point values, including some that are NaN:
+ ///
+ /// var numbers = [2.5, 21.25, 3.0, .nan, -9.5]
+ /// numbers.sort { !$1.isTotallyOrdered(belowOrEqualTo: $0) }
+ /// print(numbers)
+ /// // Prints "[-9.5, 2.5, 3.0, 21.25, nan]"
+ ///
+ /// The `isTotallyOrdered(belowOrEqualTo:)` method implements the total order
+ /// relation as defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameter other: A floating-point value to compare to this value.
+ /// - Returns: `true` if this value is ordered below or the same as `other`
+ /// in a total ordering of the floating-point type; otherwise, `false`.
+ func isTotallyOrdered(belowOrEqualTo other: Self) -> Bool
+
+ /// Returns the lesser of the two given values.
+ ///
+ /// This method returns the minimum of two values, preserving order and
+ /// eliminating NaN when possible. For two values `x` and `y`, the result of
+ /// `minimum(x, y)` is `x` if `x <= y`, `y` if `y < x`, or whichever of `x`
+ /// or `y` is a number if the other is a quiet NaN. If both `x` and `y` are
+ /// NaN, or either `x` or `y` is a signaling NaN, the result is NaN.
+ ///
+ /// Decimal64.minimum(10, -25)
+ /// // -25
+ /// Decimal64.minimum(10, .nan)
+ /// // 10
+ /// Decimal64.minimum(.nan, -25)
+ /// // -25
+ /// Decimal64.minimum(.nan, .nan)
+ /// // nan
+ ///
+ /// The `minimum` method implements the `minNum` operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: The minimum of `x` and `y`, or whichever is a number if the
+ /// other is NaN.
+ static func minimum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// Returns the greater of the two given values.
+ ///
+ /// This method returns the maximum of two values, preserving order and
+ /// eliminating NaN when possible. For two values `x` and `y`, the result of
+ /// `maximum(x, y)` is `x` if `x > y`, `y` if `x <= y`, or whichever of `x`
+ /// or `y` is a number if the other is a quiet NaN. If both `x` and `y` are
+ /// NaN, or either `x` or `y` is a signaling NaN, the result is NaN.
+ ///
+ /// Decimal64.maximum(10, -25)
+ /// // 10
+ /// Decimal64.maximum(10, .nan)
+ /// // 10
+ /// Decimal64.maximum(.nan, -25)
+ /// // -25
+ /// Decimal64.maximum(.nan, .nan)
+ /// // nan
+ ///
+ /// The `maximum` method implements the `maxNum` operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: The greater of `x` and `y`, or whichever is a number if the
+ /// other is NaN.
+ static func maximum(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// Returns the value with lesser magnitude.
+ ///
+ /// This method returns the value with lesser magnitude of the two given
+ /// values, preserving order and eliminating NaN when possible. For two
+ /// values `x` and `y`, the result of `minimumMagnitude(x, y)` is `x` if
+ /// `x.magnitude <= y.magnitude`, `y` if `y.magnitude < x.magnitude`, or
+ /// whichever of `x` or `y` is a number if the other is a quiet NaN. If both
+ /// `x` and `y` are NaN, or either `x` or `y` is a signaling NaN, the result
+ /// is NaN.
+ ///
+ /// Decimal64.minimumMagnitude(10, -25)
+ /// // 10
+ /// Decimal64.minimumMagnitude(10, .nan)
+ /// // 10
+ /// Decimal64.minimumMagnitude(.nan, -25)
+ /// // -25
+ /// Decimal64.minimumMagnitude(.nan, .nan)
+ /// // nan
+ ///
+ /// The `minimumMagnitude` method implements the `minNumMag` operation
+ /// defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: Whichever of `x` or `y` has lesser magnitude, or whichever is
+ /// a number if the other is NaN.
+ static func minimumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// Returns the value with greater magnitude.
+ ///
+ /// This method returns the value with greater magnitude of the two given
+ /// values, preserving order and eliminating NaN when possible. For two
+ /// values `x` and `y`, the result of `maximumMagnitude(x, y)` is `x` if
+ /// `x.magnitude > y.magnitude`, `y` if `x.magnitude <= y.magnitude`, or
+ /// whichever of `x` or `y` is a number if the other is a quiet NaN. If both
+ /// `x` and `y` are NaN, or either `x` or `y` is a signaling NaN, the result
+ /// is NaN.
+ ///
+ /// Decimal64.maximumMagnitude(10, -25)
+ /// // -25
+ /// Decimal64.maximumMagnitude(10, .nan)
+ /// // 10
+ /// Decimal64.maximumMagnitude(.nan, -25)
+ /// // -25
+ /// Decimal64.maximumMagnitude(.nan, .nan)
+ /// // nan
+ ///
+ /// The `maximumMagnitude` method implements the `maxNumMag` operation
+ /// defined by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - x: A floating-point value.
+ /// - y: Another floating-point value.
+ /// - Returns: Whichever of `x` or `y` has greater magnitude, or whichever is
+ /// a number if the other is NaN.
+ static func maximumMagnitude(
+ _ x: Self,
+ _ y: Self,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// The unit in the last place of this value.
+ ///
+ /// This is the unit of the least significant digit in this value's
+ /// significand. For most numbers `x`, this is the difference between `x`
+ /// and the next greater (in magnitude) representable number. There are some
+ /// edge cases to be aware of:
+ ///
+ /// - If `x` is not a finite number, then `x.ulp` is NaN.
+ /// - If `x` is very small in magnitude, then `x.ulp` may be a subnormal
+ /// number. If a type does not support subnormals, `x.ulp` may be rounded
+ /// to zero.
+ /// - `greatestFiniteMagnitude.ulp` is a finite number, even though the next
+ /// greater representable value is `infinity`.
+ ///
+ /// See also the `ulpOfOne` static property.
+ var ulp: Self { get }
+
+ /// The unit in the last place of 1.0.
+ ///
+ /// The positive difference between 1.0 and the next greater representable
+ /// number. `ulpOfOne` corresponds to the value represented by the C macros
+ /// `FLT_EPSILON`, `DBL_EPSILON`, etc, and is sometimes called *epsilon* or
+ /// *machine epsilon*. Swift deliberately avoids using the term "epsilon"
+ /// because:
+ ///
+ /// - Historically "epsilon" has been used to refer to several different
+ /// concepts in different languages, leading to confusion and bugs.
+ ///
+ /// - The name "epsilon" suggests that this quantity is a good tolerance to
+ /// choose for approximate comparisons, but it is almost always unsuitable
+ /// for that purpose.
+ ///
+ /// See also the `ulp` member property.
+ static var ulpOfOne: Self { get }
+
+ /// The least representable value that compares greater than this value.
+ ///
+ /// For any finite value `x`, `x.nextUp` is greater than `x`. For `nan` or
+ /// `infinity`, `x.nextUp` is `x` itself. The following special cases also
+ /// apply:
+ ///
+ /// - If `x` is `-infinity`, then `x.nextUp` is `-greatestFiniteMagnitude`.
+ /// - If `x` is `-leastNonzeroMagnitude`, then `x.nextUp` is `-0.0`.
+ /// - If `x` is zero, then `x.nextUp` is `leastNonzeroMagnitude`.
+ /// - If `x` is `greatestFiniteMagnitude`, then `x.nextUp` is `infinity`.
+ func nextUp(status: inout DecimalStatus) -> Self
+
+ /// The greatest representable value that compares less than this value.
+ ///
+ /// For any finite value `x`, `x.nextDown` is less than `x`. For `nan` or
+ /// `-infinity`, `x.nextDown` is `x` itself. The following special cases
+ /// also apply:
+ ///
+ /// - If `x` is `infinity`, then `x.nextDown` is `greatestFiniteMagnitude`.
+ /// - If `x` is `leastNonzeroMagnitude`, then `x.nextDown` is `0.0`.
+ /// - If `x` is zero, then `x.nextDown` is `-leastNonzeroMagnitude`.
+ /// - If `x` is `-greatestFiniteMagnitude`, then `x.nextDown` is `-infinity`.
+ func nextDown(status: inout DecimalStatus) -> Self
+
+ /// The floating-point value with the same sign and exponent as this value,
+ /// but with a significand of 1.0.
+ ///
+ /// A *quantum* is a set of decimal floating-point values that all have the
+ /// same sign and exponent. The `quantum` property is a member of the same
+ /// decade as this value, but with a unit significand.
+ ///
+ /// In this example, `x` has a value of `33.33333333333333` which is stored as
+ /// `3333333333333333E-14 = 3333333333333333 * 10 ** -14`.
+ /// Therefore, `x.quantum` is equal to `+1E-14`.
+ ///
+ /// let x = 100 / 3 // +3333333333333333E-14
+ /// let y = x.quantum // +1E-14
+ ///
+ /// IEEE-754: Definition 2.1.44 quantum
+ ///
+ /// The quantum of a finite floating-point representation is the value of a unit
+ /// in the last position of its significand. This is equal to the radix raised
+ /// to the exponent q, which is used when the significand is regarded as an integer.
+ var quantum: Self { get }
+
+ /// IEEE-754: `sourceFormat quantize(source, source)`.
+ ///
+ /// For finite decimal operands x and y of the same format, `quantize(x, y)`
+ /// is a floating-point number in the same format that has, if possible,
+ /// the same numerical value as x and the same quantum as y.
+ ///
+ /// If the exponent is being increased, rounding according to the applicable
+ /// rounding-direction attribute might occur: the result is a different
+ /// floating-point representation and the inexact exception is signaled
+ /// if the result does not have the same numerical value as x.
+ ///
+ /// If the exponent is being decreased and the significand of the result would
+ /// have more than p digits, the invalid operation exception is signaled
+ /// and the result is NaN.
+ ///
+ /// If one or both operands are NaN, the rules in 6.2 are followed.
+ ///
+ /// Otherwise if only one operand is infinite then the invalid operation
+ /// exception is signaled and the result is NaN.
+ ///
+ /// If both operands are infinite then the result is canonical ∞ with the
+ /// sign of x.
+ ///
+ /// `quantize` does not signal underflow or overflow.
+ /// The preferred exponent is Q(y).
+ func quantized(
+ to other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self
+
+ /// IEEE-754: `boolean sameQuantum(source, source)`
+ ///
+ /// For numerical decimal operands x and y of the same format, sameQuantum(x, y)
+ /// is true if the exponents of x and y are the same, that is, Q(x) = Q(y),
+ /// and false otherwise.
+ ///
+ /// `sameQuantum(NaN, NaN)` and `sameQuantum(inf, inf)` are true; if exactly one
+ /// operand is infinite or exactly one operand is NaN, sameQuantum is false.
+ ///
+ /// `sameQuantum` signals no exception.
+ func sameQuantum(as other: Self) -> Bool
+
+ /// Returns this value rounded to an integral value using the specified
+ /// rounding rule.
+ ///
+ /// The following example rounds a value using four different rounding rules:
+ ///
+ /// let x = 6.5
+ ///
+ /// // Equivalent to the C 'round' function:
+ /// print(x.rounded(.toNearestOrAwayFromZero))
+ /// // Prints "7.0"
+ ///
+ /// // Equivalent to the C 'trunc' function:
+ /// print(x.rounded(.towardZero))
+ /// // Prints "6.0"
+ ///
+ /// // Equivalent to the C 'ceil' function:
+ /// print(x.rounded(.up))
+ /// // Prints "7.0"
+ ///
+ /// // Equivalent to the C 'floor' function:
+ /// print(x.rounded(.down))
+ /// // Prints "6.0"
+ ///
+ /// For more information about the available rounding rules, see the
+ /// `DecimalFloatingPointRoundingRule` enumeration. To round a value using the
+ /// default "schoolbook rounding", you can use the shorter `rounded()`
+ /// method instead.
+ ///
+ /// print(x.rounded())
+ /// // Prints "7.0"
+ ///
+ /// - Parameter rule: The rounding rule to use.
+ /// - Returns: The integral value found by rounding using `rule`.
+ func rounded(
+ _ rule: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) -> Self
+}
+
+extension DecimalFloatingPoint {
+
+ /// Nerd! 🤓
+ public static var is754version1985: Bool { return false }
+
+ /// Nerd! 🤓
+ public static var is754version2008: Bool { return true }
+
+ /// The radix, or base of exponentiation, for a floating-point type.
+ ///
+ /// The magnitude of a floating-point value `x` of type `F` can be calculated
+ /// by using the following formula, where `**` is exponentiation:
+ ///
+ /// x.significand * (F.radix ** x.exponent)
+ public static var radix: Int { 10 }
+
+ /// The classification of this value.
+ ///
+ /// A value's `floatingPointClass` property describes its "class" as
+ /// described by the [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ public var floatingPointClass: FloatingPointClassification {
+ // Taken from Swift sources.
+ if isSignalingNaN { return .signalingNaN }
+ if isNaN { return .quietNaN }
+ if isInfinite { return sign == .minus ? .negativeInfinity : .positiveInfinity }
+ if isNormal { return sign == .minus ? .negativeNormal : .positiveNormal }
+ if isSubnormal { return sign == .minus ? .negativeSubnormal : .positiveSubnormal }
+ return sign == .minus ? .negativeZero : .positiveZero
+ }
+
+ public var exponent: Exponent {
+ var status = DecimalStatus()
+ return self.exponent(status: &status)
+ }
+
+ /// Creates a decimal with a canonical value of 0.
+ public init() {
+ self = Self.zero
+ }
+
+ // overload: only rounding or no args
+ public init(
+ sign: FloatingPointSign,
+ exponent: Exponent,
+ significand: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self(
+ sign: sign,
+ exponent: exponent,
+ significand: significand,
+ rounding: rounding,
+ status: &status
+ )
+ }
+
+ // overload: only status
+ public init(
+ sign: FloatingPointSign,
+ exponent: Exponent,
+ significand: Self,
+ status: inout DecimalStatus
+ ) {
+ self = Self(
+ sign: sign,
+ exponent: exponent,
+ significand: significand,
+ rounding: .toNearestOrEven,
+ status: &status
+ )
+ }
+
+ // MARK: - Init from String
+
+ // overload: only rounding or no args
+ public init?(
+ _ description: S,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+
+ guard let result = Self(description, rounding: rounding, status: &status) else {
+ return nil
+ }
+
+ self = result
+ }
+
+ // overload: only status
+ public init?(
+ _ description: S,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+
+ guard let result = Self(description, rounding: rounding, status: &status) else {
+ return nil
+ }
+
+ self = result
+ }
+
+ public init?(exactly description: S) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+
+ guard let result = Self(description, rounding: rounding, status: &status) else {
+ return nil
+ }
+
+ if status.isInexact {
+ return nil
+ }
+
+ self = result
+ }
+
+ // MARK: - Init from Int
+
+ /// Creates a new value, rounded to the closest possible representation.
+ ///
+ /// - Parameter value: The integer to convert to a floating-point value.
+ public init(_ value: Int) {
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ public init(integerLiteral value: Int) {
+ self = Self(value)
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ value: Source,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ value: Source,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new value, if the given integer can be represented exactly.
+ ///
+ /// If the given integer cannot be represented exactly, the result is `nil`.
+ ///
+ /// - Parameter value: The integer to convert to a floating-point value.
+ public init?(exactly source: Source) {
+ // This method raises:
+ // - isInexact -> fail
+ // - isOverflowInexact -> fail
+ // - isUnderflowInexact -> fail
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.towardZero
+ self = Self(source, rounding: rounding, status: &status)
+
+ if status.isInexact {
+ return nil
+ }
+
+ // Any unexpected flags?
+ status.clear(.isOverflowInexact | .isUnderflowInexact)
+ assert(status.isEmpty)
+ }
+
+ // MARK: - Init from Float
+
+ // overload: only rounding or no args
+ public init(
+ _ value: Float,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ value: Float,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter value: A floating-point value to be converted.
+ public init?(
+ exactly value: Float,
+ status: inout DecimalStatus
+ ) {
+ // Separate status to avoid polluting 'status' argument with 'isInexact'.
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var s = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &s)
+
+ if s.isSet(.isInexact) {
+ return nil
+ }
+
+ if s.isBinaryFloatingPointSubnormal {
+ status.set(.isBinaryFloatingPointSubnormal)
+ }
+ }
+
+ // overload: no status
+ public init?(exactly value: Float) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+ // overload: only rounding or no args
+ public init(
+ _ value: Double,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ value: Double,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter value: A floating-point value to be converted.
+ public init?(
+ exactly value: Double,
+ status: inout DecimalStatus
+ ) {
+ // Separate status to avoid polluting 'status' argument with 'isInexact'.
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var s = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &s)
+
+ if s.isSet(.isInexact) {
+ return nil
+ }
+
+ if s.isBinaryFloatingPointSubnormal {
+ status.set(.isBinaryFloatingPointSubnormal)
+ }
+ }
+
+ // overload: no status
+ public init?(exactly value: Double) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ // overload: only rounding or no args
+ public init(
+ _ value: Float80,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public init(
+ _ value: Float80,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &status)
+ }
+
+ /// Creates a new instance from the given value, if it can be represented
+ /// exactly.
+ ///
+ /// If the given floating-point value cannot be represented exactly, the
+ /// result is `nil`. A value that is NaN ("not a number") cannot be
+ /// represented exactly if its payload cannot be encoded exactly.
+ ///
+ /// - Parameter value: A floating-point value to be converted.
+ public init?(
+ exactly value: Float80,
+ status: inout DecimalStatus
+ ) {
+ // Separate status to avoid polluting 'status' argument with 'isInexact'.
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var s = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &s)
+
+ if s.isSet(.isInexact) {
+ return nil
+ }
+
+ if s.isBinaryFloatingPointSubnormal {
+ status.set(.isBinaryFloatingPointSubnormal)
+ }
+ }
+
+ // overload: no status
+ public init?(exactly value: Float80) {
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = Self(value, rounding: rounding, status: &status)
+
+ if status.isSet(.isInexact) {
+ return nil
+ }
+ }
+
+#endif
+
+ // MARK: - Unary
+
+ /// Returns the given number unchanged.
+ ///
+ /// You can use the unary plus operator (`+`) to provide symmetry in your
+ /// code for positive numbers when also using the unary minus operator.
+ ///
+ /// let x = -21
+ /// let y = +21
+ /// // x == -21
+ /// // y == 21
+ ///
+ /// - Returns: The given argument without any changes.
+ public static prefix func + (n: Self) -> Self {
+ return n
+ }
+
+ /// Calculates the additive inverse of a value.
+ ///
+ /// The unary minus operator (prefix `-`) calculates the negation of its
+ /// operand. The result is always exact.
+ ///
+ /// let x = 21.5
+ /// let y = -x
+ /// // y == -21.5
+ ///
+ /// - Parameter operand: The value to negate.
+ public static prefix func - (n: Self) -> Self {
+ var copy = n
+ copy.negate()
+ return copy
+ }
+
+ // MARK: - Add
+
+ /// Adds two values and produces their sum, rounding to a representable
+ /// value.
+ ///
+ /// The addition operator (`+`) calculates the sum of its two arguments. For
+ /// example:
+ ///
+ /// let x = 1.5
+ /// let y = x + 2.25
+ /// // y == 3.75
+ ///
+ /// The `+` operator implements the addition operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to add.
+ /// - rhs: The second value to add.
+ public static func + (lhs: Self, rhs: Self) -> Self {
+ return lhs.adding(rhs, rounding: .toNearestOrEven)
+ }
+
+ /// Adds two values and stores the result in the left-hand-side variable,
+ /// rounding to a representable value.
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to add.
+ /// - rhs: The second value to add.
+ public static func += (lhs: inout Self, rhs: Self) {
+ lhs = lhs.adding(rhs, rounding: .toNearestOrEven)
+ }
+
+ /// Adds two values and stores the result in the left-hand-side variable,
+ /// rounding using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to add.
+ /// - rhs: The second value to add.
+ public mutating func add(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = self.adding(other, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public mutating func add(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = self.adding(other, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public mutating func add(
+ _ other: Self,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = self.adding(other, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public func adding(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) -> Self {
+ var status = DecimalStatus()
+ return self.adding(other, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public func adding(
+ _ other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ return self.adding(other, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Sub
+
+ /// Subtracts one value from another and produces their difference, rounded
+ /// to a representable value.
+ ///
+ /// The subtraction operator (`-`) calculates the difference of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x - 2.25
+ /// // y == 5.25
+ ///
+ /// The `-` operator implements the subtraction operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: A numeric value.
+ /// - rhs: The value to subtract from `lhs`.
+ public static func - (lhs: Self, rhs: Self) -> Self {
+ return lhs.subtracting(rhs, rounding: .toNearestOrEven)
+ }
+
+ /// Subtracts the second value from the first and stores the difference in
+ /// the left-hand-side variable, rounding to a representable value.
+ ///
+ /// - Parameters:
+ /// - lhs: A numeric value.
+ /// - rhs: The value to subtract from `lhs`.
+ public static func -= (lhs: inout Self, rhs: Self) {
+ lhs = lhs.subtracting(rhs, rounding: .toNearestOrEven)
+ }
+
+ /// Subtracts the second value from the first and stores the difference in
+ /// the left-hand-side variable, rounding using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - lhs: A numeric value.
+ /// - rhs: The value to subtract from `lhs`.
+ public mutating func subtract(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = self.subtracting(other, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public mutating func subtract(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = self.subtracting(other, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public mutating func subtract(
+ _ other: Self,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = self.subtracting(other, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public func subtracting(
+ _ other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) -> Self {
+ var status = DecimalStatus()
+ return self.subtracting(other, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public func subtracting(
+ _ other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ return self.subtracting(other, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Mul
+
+ /// Multiplies two values and produces their product, rounding to a
+ /// representable value.
+ ///
+ /// The multiplication operator (`*`) calculates the product of its two
+ /// arguments. For example:
+ ///
+ /// let x = 7.5
+ /// let y = x * 2.25
+ /// // y == 16.875
+ ///
+ /// The `*` operator implements the multiplication operation defined by the
+ /// [IEEE 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to multiply.
+ /// - rhs: The second value to multiply.
+ public static func * (lhs: Self, rhs: Self) -> Self {
+ return lhs.multiplied(by: rhs, rounding: .toNearestOrEven)
+ }
+
+ /// Multiplies two values and stores the result in the left-hand-side
+ /// variable, rounding to a representable value.
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to multiply.
+ /// - rhs: The second value to multiply.
+ public static func *= (lhs: inout Self, rhs: Self) {
+ lhs = lhs.multiplied(by: rhs, rounding: .toNearestOrEven)
+ }
+
+ /// Multiplies two values and stores the result in the left-hand-side
+ /// variable, rounding using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - lhs: The first value to multiply.
+ /// - rhs: The second value to multiply.
+ public mutating func multiply(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = self.multiplied(by: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public mutating func multiply(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = self.multiplied(by: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public mutating func multiply(
+ by other: Self,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = self.multiplied(by: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public func multiplied(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) -> Self {
+ var status = DecimalStatus()
+ return self.multiplied(by: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public func multiplied(
+ by other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ return self.multiplied(by: other, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Div
+
+ /// Returns the quotient of dividing the first value by the second, rounding
+ /// to a representable value.
+ ///
+ /// The division operator (`/`) calculates the quotient of the division if
+ /// `rhs` is nonzero. If `rhs` is zero, the result of the division is
+ /// infinity, with the sign of the result matching the sign of `lhs`.
+ ///
+ /// let x = 16.875
+ /// let y = x / 2.25
+ /// // y == 7.5
+ ///
+ /// let z = x / 0
+ /// // z.isInfinite == true
+ ///
+ /// The `/` operator implements the division operation defined by the [IEEE
+ /// 754 specification][spec].
+ ///
+ /// [spec]: http://ieeexplore.ieee.org/servlet/opac?punumber=4610933
+ ///
+ /// - Parameters:
+ /// - lhs: The value to divide.
+ /// - rhs: The value to divide `lhs` by.
+ public static func / (lhs: Self, rhs: Self) -> Self {
+ return lhs.divided(by: rhs, rounding: .toNearestOrEven)
+ }
+
+ /// Divides the first value by the second and stores the quotient in the
+ /// left-hand-side variable, rounding to a representable value.
+ ///
+ /// - Parameters:
+ /// - lhs: The value to divide.
+ /// - rhs: The value to divide `lhs` by.
+ public static func /= (lhs: inout Self, rhs: Self) {
+ lhs = lhs.divided(by: rhs, rounding: .toNearestOrEven)
+ }
+
+ /// Divides the first value by the second and stores the quotient in the
+ /// left-hand-side variable, rounding using the specified rounding rule.
+ ///
+ /// - Parameters:
+ /// - lhs: The value to divide.
+ /// - rhs: The value to divide `lhs` by.
+ public mutating func divide(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = self.divided(by: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public mutating func divide(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = self.divided(by: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public mutating func divide(
+ by other: Self,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = self.divided(by: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public func divided(
+ by other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) -> Self {
+ var status = DecimalStatus()
+ return self.divided(by: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public func divided(
+ by other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ return self.divided(by: other, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Remainder
+
+ /// Replaces this value with the remainder of itself divided by the given
+ /// value.
+ ///
+ /// For two finite values `x` and `y`, the remainder `r` of dividing `x` by
+ /// `y` satisfies `x == y * q + r`, where `q` is the integer nearest to
+ /// `x / y`. If `x / y` is exactly halfway between two integers, `q` is
+ /// chosen to be even. Note that `q` is *not* `x / y` computed in
+ /// floating-point arithmetic, and that `q` may not be representable in any
+ /// available integer type.
+ ///
+ /// The following example calculates the remainder of dividing 8.625 by 0.75:
+ ///
+ /// var x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.toNearestOrEven)
+ /// // q == 12.0
+ /// x.formRemainder(dividingBy: 0.75)
+ /// // x == -0.375
+ ///
+ /// let x1 = 0.75 * q + x
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are finite numbers, the remainder is in the
+ /// closed range `-abs(other / 2)...abs(other / 2)`. The
+ /// `formRemainder(dividingBy:)` method is always exact.
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ public mutating func formRemainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) {
+ self = self.remainder(dividingBy: other, status: &status)
+ }
+
+ public mutating func formRemainder(dividingBy other: Self) {
+ var status = DecimalStatus()
+ self = self.remainder(dividingBy: other, status: &status)
+ }
+
+ public func remainder(dividingBy other: Self) -> Self {
+ var status = DecimalStatus()
+ return self.remainder(dividingBy: other, status: &status)
+ }
+
+ /// Replaces this value with the remainder of itself divided by the given
+ /// value using truncating division.
+ ///
+ /// Performing truncating division with floating-point values results in a
+ /// truncated integer quotient and a remainder. For values `x` and `y` and
+ /// their truncated integer quotient `q`, the remainder `r` satisfies
+ /// `x == y * q + r`.
+ ///
+ /// The following example calculates the truncating remainder of dividing
+ /// 8.625 by 0.75:
+ ///
+ /// var x = 8.625
+ /// print(x / 0.75)
+ /// // Prints "11.5"
+ ///
+ /// let q = (x / 0.75).rounded(.towardZero)
+ /// // q == 11.0
+ /// x.formTruncatingRemainder(dividingBy: 0.75)
+ /// // x == 0.375
+ ///
+ /// let x1 = 0.75 * q + x
+ /// // x1 == 8.625
+ ///
+ /// If this value and `other` are both finite numbers, the truncating
+ /// remainder has the same sign as this value and is strictly smaller in
+ /// magnitude than `other`. The `formTruncatingRemainder(dividingBy:)`
+ /// method is always exact.
+ ///
+ /// - Parameter other: The value to use when dividing this value.
+ public mutating func formTruncatingRemainder(
+ dividingBy other: Self,
+ status: inout DecimalStatus
+ ) {
+ self = self.truncatingRemainder(dividingBy: other, status: &status)
+ }
+
+ public mutating func formTruncatingRemainder(dividingBy other: Self) {
+ var status = DecimalStatus()
+ self = self.truncatingRemainder(dividingBy: other, status: &status)
+ }
+
+ public func truncatingRemainder(dividingBy other: Self) -> Self {
+ var status = DecimalStatus()
+ return self.truncatingRemainder(dividingBy: other, status: &status)
+ }
+
+ // MARK: - Square root
+
+ /// Replaces this value with its square root, rounding using the specified
+ /// rounding rule.
+ public mutating func formSquareRoot(
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = self.squareRoot(rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public mutating func formSquareRoot(
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = self.squareRoot(rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public mutating func formSquareRoot(
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = self.squareRoot(rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public func squareRoot(
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) -> Self {
+ var status = DecimalStatus()
+ return self.squareRoot(rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public func squareRoot(
+ status: inout DecimalStatus
+ ) -> Self {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ return self.squareRoot(rounding: rounding, status: &status)
+ }
+
+ // MARK: - Adding product
+
+ /// Adds the product of the two given values to this value in place, computed
+ /// without intermediate rounding.
+ ///
+ /// - Parameters:
+ /// - lhs: One of the values to multiply before adding to this value.
+ /// - rhs: The other value to multiply.
+ public mutating func addProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = self.addingProduct(lhs, rhs, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public mutating func addProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = self.addingProduct(lhs, rhs, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public mutating func addProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = self.addingProduct(lhs, rhs, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public func addingProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) -> Self {
+ var status = DecimalStatus()
+ return self.addingProduct(lhs, rhs, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public func addingProduct(
+ _ lhs: Self,
+ _ rhs: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ return self.addingProduct(lhs, rhs, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Equal, compare
+
+ public func isEqual(to other: Self) -> Bool {
+ var status = DecimalStatus()
+ return self.isEqual(to: other, status: &status)
+ }
+
+ public func isLess(than other: Self) -> Bool {
+ var status = DecimalStatus()
+ return self.isLess(than: other, status: &status)
+ }
+
+ public func isLessThanOrEqualTo(_ other: Self) -> Bool {
+ var status = DecimalStatus()
+ return self.isLessThanOrEqualTo(other, status: &status)
+ }
+
+ public static func == (lhs: Self, rhs: Self) -> Bool {
+ return lhs.isEqual(to: rhs)
+ }
+
+ public static func < (lhs: Self, rhs: Self) -> Bool {
+ return lhs.isLess(than: rhs)
+ }
+
+ public static func <= (lhs: Self, rhs: Self) -> Bool {
+ return lhs.isLessThanOrEqualTo(rhs)
+ }
+
+ public static func > (lhs: Self, rhs: Self) -> Bool {
+ return rhs.isLess(than: lhs)
+ }
+
+ public static func >= (lhs: Self, rhs: Self) -> Bool {
+ return rhs.isLessThanOrEqualTo(lhs)
+ }
+
+ // MARK: - Total order
+
+ public func isMagnitudeTotallyOrdered(belowOrEqualTo other: Self) -> Bool {
+ let s = self.magnitude
+ let o = other.magnitude
+ return s.isTotallyOrdered(belowOrEqualTo: o)
+ }
+
+ // MARK: - Minimum/maximum
+
+ public static func minimum(_ x: Self, _ y: Self) -> Self {
+ var status = DecimalStatus()
+ return Self.minimum(x, y, status: &status)
+ }
+
+ public static func maximum(_ x: Self, _ y: Self) -> Self {
+ var status = DecimalStatus()
+ return Self.maximum(x, y, status: &status)
+ }
+
+ public static func minimumMagnitude(_ x: Self, _ y: Self) -> Self {
+ var status = DecimalStatus()
+ return Self.minimumMagnitude(x, y, status: &status)
+ }
+
+ public static func maximumMagnitude(_ x: Self, _ y: Self) -> Self {
+ var status = DecimalStatus()
+ return Self.maximumMagnitude(x, y, status: &status)
+ }
+
+ // MARK: - Next
+
+ public var nextUp: Self {
+ var status = DecimalStatus()
+ return self.nextUp(status: &status)
+ }
+
+ public var nextDown: Self {
+ var status = DecimalStatus()
+ return self.nextDown(status: &status)
+ }
+
+ // MARK: - Quantize
+
+ public mutating func quantize(
+ to other: Self,
+ rounding: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = self.quantized(to: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public mutating func quantize(
+ to other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) {
+ var status = DecimalStatus()
+ self = self.quantized(to: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public mutating func quantize(
+ to other: Self,
+ status: inout DecimalStatus
+ ) {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ self = self.quantized(to: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public func quantized(
+ to other: Self,
+ rounding: DecimalFloatingPointRoundingRule = .toNearestOrEven
+ ) -> Self {
+ var status = DecimalStatus()
+ return self.quantized(to: other, rounding: rounding, status: &status)
+ }
+
+ // overload: only status
+ public func quantized(
+ to other: Self,
+ status: inout DecimalStatus
+ ) -> Self {
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ return self.quantized(to: other, rounding: rounding, status: &status)
+ }
+
+ // MARK: - Round
+
+ /// Rounds the value to an integral value using the specified rounding rule.
+ ///
+ /// The following example rounds a value using four different rounding rules:
+ ///
+ /// // Equivalent to the C 'round' function:
+ /// var w = 6.5
+ /// w.round(.toNearestOrAwayFromZero)
+ /// // w == 7.0
+ ///
+ /// // Equivalent to the C 'trunc' function:
+ /// var x = 6.5
+ /// x.round(.towardZero)
+ /// // x == 6.0
+ ///
+ /// // Equivalent to the C 'ceil' function:
+ /// var y = 6.5
+ /// y.round(.up)
+ /// // y == 7.0
+ ///
+ /// // Equivalent to the C 'floor' function:
+ /// var z = 6.5
+ /// z.round(.down)
+ /// // z == 6.0
+ ///
+ /// For more information about the available rounding rules, see the
+ /// `DecimalFloatingPointRoundingRule` enumeration. To round a value using the
+ /// default "schoolbook rounding", you can use the shorter `round()` method
+ /// instead.
+ ///
+ /// var w1 = 6.5
+ /// w1.round()
+ /// // w1 == 7.0
+ ///
+ /// - Parameter rule: The rounding rule to use.
+ public mutating func round(
+ _ rule: DecimalFloatingPointRoundingRule,
+ status: inout DecimalStatus
+ ) {
+ self = self.rounded(rule, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public mutating func round(
+ _ rule: DecimalFloatingPointRoundingRule = .toNearestOrAwayFromZero
+ ) {
+ var status = DecimalStatus()
+ self = self.rounded(rule, status: &status)
+ }
+
+ // overload: only status
+ public mutating func round(
+ status: inout DecimalStatus
+ ) {
+ let rule = DecimalFloatingPointRoundingRule.toNearestOrAwayFromZero
+ self = self.rounded(rule, status: &status)
+ }
+
+ // overload: only rounding or no args
+ public func rounded(
+ _ rule: DecimalFloatingPointRoundingRule = .toNearestOrAwayFromZero
+ ) -> Self {
+ var status = DecimalStatus()
+ return self.rounded(rule, status: &status)
+ }
+
+ // overload: only status
+ public func rounded(
+ status: inout DecimalStatus
+ ) -> Self {
+ let rule = DecimalFloatingPointRoundingRule.toNearestOrAwayFromZero
+ return self.rounded(rule, status: &status)
+ }
+}
diff --git a/Sources/Decimal/Generated/Int+Decimal.swift b/Sources/Decimal/Generated/Int+Decimal.swift
new file mode 100644
index 0000000..dff0d82
--- /dev/null
+++ b/Sources/Decimal/Generated/Int+Decimal.swift
@@ -0,0 +1,240 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+// swiftlint:disable line_length
+
+extension FixedWidthInteger {
+
+ // MARK: - Decimal32
+
+ /// Creates an integer from the given floating-point value, rounding using the
+ /// specified rounding mode.
+ ///
+ /// If `source` is outside the bounds of this type after rounding, a runtime
+ /// error may occur.
+ ///
+ /// let z = UInt(-21.5)
+ /// // Error: ...the result would be less than UInt.min
+ ///
+ /// - Parameter source: A floating-point value to convert to an integer.
+ /// `source` must be representable in this type after rounding.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal32,
+ rounding: DecimalFloatingPointRoundingRule = .towardZero
+ ) {
+ precondition(
+ source._isFinite,
+ "Decimal32 value cannot be converted to \(Self.self) because it is either infinite or NaN"
+ )
+
+ // This method raises:
+ // - isInexact - we don't care
+ // - isInvalidOperation - unrepresentable value -> fail
+ var status = DecimalStatus()
+ self = source._toExactlyInt(rounding: rounding, status: &status)
+
+ if status.isInvalidOperation {
+ // We will make a tiny assumption, but:
+ // - this assumption is valid for every Swift.stdlib type
+ // - it makes our code trivial
+ if source._isNegative {
+ preconditionFailure("Decimal32 value cannot be converted to \(Self.self) because the result would be less than \(Self.self).min")
+ }
+
+ preconditionFailure("Decimal32 value cannot be converted to \(Self.self) because the result would be greater than \(Self.self).max")
+ }
+ }
+
+ /// Creates an integer from the given floating-point value, if it can be
+ /// represented exactly.
+ ///
+ /// If the value passed as `source` is not representable exactly, the result
+ /// is `nil`. In the following example, the constant `x` is successfully
+ /// created from a value of `21.0`, while the attempt to initialize the
+ /// constant `y` from `21.5` fails:
+ ///
+ /// let x = Int(exactly: 21.0)
+ /// // x == Optional(21)
+ /// let y = Int(exactly: 21.5)
+ /// // y == nil
+ ///
+ /// - Parameter source: A floating-point value to convert to an integer.
+ public init?(exactly source: Decimal32) {
+ guard source.isFinite else {
+ return nil
+ }
+
+ // This method raises:
+ // - isInexact - fail
+ // - isInvalidOperation - unrepresentable value -> fail
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.towardZero
+ self = source._toExactlyInt(rounding: rounding, status: &status)
+
+ if status.isInvalidOperation {
+ return nil
+ }
+
+ if status.isInexact {
+ return nil
+ }
+ }
+
+ // MARK: - Decimal64
+
+ /// Creates an integer from the given floating-point value, rounding using the
+ /// specified rounding mode.
+ ///
+ /// If `source` is outside the bounds of this type after rounding, a runtime
+ /// error may occur.
+ ///
+ /// let z = UInt(-21.5)
+ /// // Error: ...the result would be less than UInt.min
+ ///
+ /// - Parameter source: A floating-point value to convert to an integer.
+ /// `source` must be representable in this type after rounding.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal64,
+ rounding: DecimalFloatingPointRoundingRule = .towardZero
+ ) {
+ precondition(
+ source._isFinite,
+ "Decimal64 value cannot be converted to \(Self.self) because it is either infinite or NaN"
+ )
+
+ // This method raises:
+ // - isInexact - we don't care
+ // - isInvalidOperation - unrepresentable value -> fail
+ var status = DecimalStatus()
+ self = source._toExactlyInt(rounding: rounding, status: &status)
+
+ if status.isInvalidOperation {
+ // We will make a tiny assumption, but:
+ // - this assumption is valid for every Swift.stdlib type
+ // - it makes our code trivial
+ if source._isNegative {
+ preconditionFailure("Decimal64 value cannot be converted to \(Self.self) because the result would be less than \(Self.self).min")
+ }
+
+ preconditionFailure("Decimal64 value cannot be converted to \(Self.self) because the result would be greater than \(Self.self).max")
+ }
+ }
+
+ /// Creates an integer from the given floating-point value, if it can be
+ /// represented exactly.
+ ///
+ /// If the value passed as `source` is not representable exactly, the result
+ /// is `nil`. In the following example, the constant `x` is successfully
+ /// created from a value of `21.0`, while the attempt to initialize the
+ /// constant `y` from `21.5` fails:
+ ///
+ /// let x = Int(exactly: 21.0)
+ /// // x == Optional(21)
+ /// let y = Int(exactly: 21.5)
+ /// // y == nil
+ ///
+ /// - Parameter source: A floating-point value to convert to an integer.
+ public init?(exactly source: Decimal64) {
+ guard source.isFinite else {
+ return nil
+ }
+
+ // This method raises:
+ // - isInexact - fail
+ // - isInvalidOperation - unrepresentable value -> fail
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.towardZero
+ self = source._toExactlyInt(rounding: rounding, status: &status)
+
+ if status.isInvalidOperation {
+ return nil
+ }
+
+ if status.isInexact {
+ return nil
+ }
+ }
+
+ // MARK: - Decimal128
+
+ /// Creates an integer from the given floating-point value, rounding using the
+ /// specified rounding mode.
+ ///
+ /// If `source` is outside the bounds of this type after rounding, a runtime
+ /// error may occur.
+ ///
+ /// let z = UInt(-21.5)
+ /// // Error: ...the result would be less than UInt.min
+ ///
+ /// - Parameter source: A floating-point value to convert to an integer.
+ /// `source` must be representable in this type after rounding.
+ /// - Parameter rounding: A rounding rule to be used.
+ public init(
+ _ source: Decimal128,
+ rounding: DecimalFloatingPointRoundingRule = .towardZero
+ ) {
+ precondition(
+ source._isFinite,
+ "Decimal128 value cannot be converted to \(Self.self) because it is either infinite or NaN"
+ )
+
+ // This method raises:
+ // - isInexact - we don't care
+ // - isInvalidOperation - unrepresentable value -> fail
+ var status = DecimalStatus()
+ self = source._toExactlyInt(rounding: rounding, status: &status)
+
+ if status.isInvalidOperation {
+ // We will make a tiny assumption, but:
+ // - this assumption is valid for every Swift.stdlib type
+ // - it makes our code trivial
+ if source._isNegative {
+ preconditionFailure("Decimal128 value cannot be converted to \(Self.self) because the result would be less than \(Self.self).min")
+ }
+
+ preconditionFailure("Decimal128 value cannot be converted to \(Self.self) because the result would be greater than \(Self.self).max")
+ }
+ }
+
+ /// Creates an integer from the given floating-point value, if it can be
+ /// represented exactly.
+ ///
+ /// If the value passed as `source` is not representable exactly, the result
+ /// is `nil`. In the following example, the constant `x` is successfully
+ /// created from a value of `21.0`, while the attempt to initialize the
+ /// constant `y` from `21.5` fails:
+ ///
+ /// let x = Int(exactly: 21.0)
+ /// // x == Optional(21)
+ /// let y = Int(exactly: 21.5)
+ /// // y == nil
+ ///
+ /// - Parameter source: A floating-point value to convert to an integer.
+ public init?(exactly source: Decimal128) {
+ guard source.isFinite else {
+ return nil
+ }
+
+ // This method raises:
+ // - isInexact - fail
+ // - isInvalidOperation - unrepresentable value -> fail
+ // 'rounding' should not matter because any rounding means 'inexact'.
+ var status = DecimalStatus()
+ let rounding = DecimalFloatingPointRoundingRule.towardZero
+ self = source._toExactlyInt(rounding: rounding, status: &status)
+
+ if status.isInvalidOperation {
+ return nil
+ }
+
+ if status.isInexact {
+ return nil
+ }
+ }
+}
diff --git a/Sources/Decimal/Generated/README.md b/Sources/Decimal/Generated/README.md
new file mode 100644
index 0000000..b0d46be
--- /dev/null
+++ b/Sources/Decimal/Generated/README.md
@@ -0,0 +1,2 @@
+All of the files in this directory were automatically generated.
+See README in the repository root for details.
diff --git a/Sources/Decimal/Generated/UInt128.swift b/Sources/Decimal/Generated/UInt128.swift
new file mode 100644
index 0000000..5b621e6
--- /dev/null
+++ b/Sources/Decimal/Generated/UInt128.swift
@@ -0,0 +1,795 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+// swiftlint:disable all
+
+// 'Decimal128.BitPattern = UInt128' is 'public'.
+// But we do not want to export `UInt128` as a global name.
+// Instead we will define 'UInt128' inside 'Decimal128' as 'Decimal128._UInt128'.
+
+extension Decimal128 {
+ /// Internal storage.
+ /// DO NOT use as a general purpose `UInt128`!
+ /// This is only for `Decimal128`.
+ public struct _UInt128: Sendable {
+ // Words from high bits (w0) to low bits (w1).
+ // It is slower than `LLVM.UInt128`, but that would require `Builtins`.
+ internal var w0: Word
+ internal var w1: Word
+ }
+}
+
+// Inside the module we want to use the normal name.
+internal typealias UInt128 = Decimal128._UInt128
+
+extension Decimal128._UInt128: Codable, FixedWidthInteger, UnsignedInteger, CustomStringConvertible {
+
+ internal typealias Word = UInt64
+
+ // MARK: - Static properties
+
+ public static let bitWidth = 128
+
+ // MARK: - Properties
+
+ public var words: Words { Words(self) }
+
+ internal var isZero: Bool {
+ return self.w0 == 0 && self.w1 == 0
+ }
+
+ public var leadingZeroBitCount: Int {
+ if self.w0 != 0 { return 0 * Word.bitWidth + self.w0.leadingZeroBitCount }
+ return 1 * Word.bitWidth + self.w1.leadingZeroBitCount
+ }
+
+ public var trailingZeroBitCount: Int {
+ if self.w1 != 0 { return 0 * Word.bitWidth + self.w1.trailingZeroBitCount }
+ return 1 * Word.bitWidth + self.w0.trailingZeroBitCount
+ }
+
+ public var nonzeroBitCount: Int {
+ return self.w0.nonzeroBitCount + self.w1.nonzeroBitCount
+ }
+
+ public var byteSwapped: Self {
+ let w0 = self.w0.byteSwapped
+ let w1 = self.w1.byteSwapped
+ return Self(w0, w1)
+ }
+
+ public var description: String {
+ let _0: UInt8 = 48
+ var n = self
+ var result = ""
+
+ while !n.isZero {
+ let (q, r) = n.quotientAndRemainder(dividingBy: 10 as Word)
+ n = q
+
+ let ascii = _0 + UInt8(r)
+ let scalar = UnicodeScalar(ascii)
+ let char = Character(scalar)
+ result.append(char)
+ }
+
+ return result.isEmpty ? "0" : String(result.reversed())
+ }
+
+ // MARK: - Init
+
+ public init() {
+ self.w0 = 0
+ self.w1 = 0
+ }
+
+ internal init(_ w0: Word, _ w1: Word) {
+ self.w0 = w0
+ self.w1 = w1
+ }
+
+ // MARK: - Init - Int
+
+ public init(_ source: T) {
+ guard let result = Self(exactly: source) else {
+ preconditionFailure("Value is outside the representable range")
+ }
+
+ self = result
+ }
+
+ public init?(exactly source: T) {
+ if source < (0 as T) {
+ return nil
+ }
+
+ if let low = Word(exactly: source.magnitude) {
+ self.w0 = 0
+ self.w1 = low
+ } else {
+ var s = source
+ let mask = T(Word.max)
+
+ self.w1 = Word(s & mask)
+ s >>= Word.bitWidth
+
+ self.w0 = Word(s & mask)
+ s >>= Word.bitWidth
+
+ if s != (0 as T) {
+ return nil
+ }
+ }
+ }
+
+ public init(integerLiteral value: IntegerLiteralType) {
+ self = Self(value)
+ }
+
+ public init(_truncatingBits bits: UInt) {
+ self.w0 = Word(_truncatingBits: bits >> (1 * Word.bitWidth))
+ self.w1 = Word(_truncatingBits: bits >> (0 * Word.bitWidth))
+ }
+
+ // MARK: - Init - Float
+
+ public init(_ source: T) {
+ preconditionFailure("UInt128(BinaryFloatingPoint) not implemented.")
+ }
+
+ public init?(exactly source: T) {
+ preconditionFailure("UInt128(exactly: BinaryFloatingPoint) not implemented.")
+ }
+
+ // MARK: - Add
+
+ public static func + (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.addingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ public static func += (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.addingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ public func addingReportingOverflow(_ rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ let w1 = self.w1.addingReportingOverflow(rhs.w1)
+ let carry1: Word = w1.overflow ? 1 : 0
+
+ let partial0 = self.w0.addingReportingOverflow(rhs.w0)
+ let w0 = partial0.partialValue.addingReportingOverflow(carry1)
+ let carry0: Word = (partial0.overflow ? 1 : 0) + (w0.overflow ? 1 : 0)
+
+ let result = Self(w0.partialValue, w1.partialValue)
+ let overflow = carry0 != 0
+ return (result, overflow)
+ }
+
+ // MARK: - Sub
+
+ public static func - (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.subtractingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ public static func -= (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.subtractingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ public func subtractingReportingOverflow(_ rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ let w1 = self.w1.subtractingReportingOverflow(rhs.w1)
+ let borrow1: Word = w1.overflow ? 1 : 0
+
+ let partial0 = self.w0.subtractingReportingOverflow(rhs.w0)
+ let w0 = partial0.partialValue.subtractingReportingOverflow(borrow1)
+ let borrow0: Word = (partial0.overflow ? 1 : 0) + (w0.overflow ? 1 : 0)
+
+ let result = Self(w0.partialValue, w1.partialValue)
+ let overflow = borrow0 != 0
+ return (result, overflow)
+ }
+
+ // MARK: - Mul
+
+ internal static func * (lhs: Self, rhs: UInt64) -> Self {
+ let (result, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ internal static func *= (_ lhs: inout Self, _ rhs: UInt64) {
+ let (result, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ internal func multipliedReportingOverflow(by rhs: UInt64) -> (partialValue: Self, overflow: Bool) {
+ let mul01 = self.w0.multipliedFullWidth(by: rhs)
+ let mul11 = self.w1.multipliedFullWidth(by: rhs)
+
+ // Column 3
+ let w3 = mul11.low
+ let carry3: Word = 0
+
+ // Column 2
+ let (carry2, w2) = sum(
+ carry3,
+ mul11.high, // previous column (sum=2)
+ mul01.low // this column (sum=1)
+ )
+
+ let overflow: Bool = carry2 != 0
+ // Check 'high' in column 1
+ || (mul01.high != 0)
+ // Check not preformed multiplications
+
+ let result = Self(w2, w3)
+ return (result, overflow)
+ }
+
+ internal func multipliedFullWidth(by rhs: UInt64) -> (high: UInt64, low: Self) {
+ let mul01 = self.w0.multipliedFullWidth(by: rhs)
+ let mul11 = self.w1.multipliedFullWidth(by: rhs)
+
+ // Column 3
+ let w3 = mul11.low
+ let carry3: Word = 0
+
+ // Column 2
+ let (carry2, w2) = sum(
+ carry3,
+ mul11.high, // previous column (sum=2)
+ mul01.low // this column (sum=1)
+ )
+
+ // Column 1
+ let (carry1, w1) = sum(
+ carry2,
+ mul01.high // previous column (sum=1)
+ )
+
+ assert(carry1 == 0)
+ let high = UInt64(w1)
+ let low = Self(w2, w3)
+ return (high, low)
+ }
+
+ public static func * (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ public static func *= (_ lhs: inout Self, _ rhs: Self) {
+ let (result, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ public func multipliedReportingOverflow(by rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ let mul01 = self.w0.multipliedFullWidth(by: rhs.w1)
+ let mul10 = self.w1.multipliedFullWidth(by: rhs.w0)
+ let mul11 = self.w1.multipliedFullWidth(by: rhs.w1)
+
+ // Column 3
+ let w3 = mul11.low
+ let carry3: Word = 0
+
+ // Column 2
+ let (carry2, w2) = sum(
+ carry3,
+ mul11.high, // previous column (sum=2)
+ mul01.low, mul10.low // this column (sum=1)
+ )
+
+ let overflow: Bool = carry2 != 0
+ // Check 'high' in column 1
+ || (mul01.high != 0)
+ || (mul10.high != 0)
+ // Check not preformed multiplications
+ || (self.w0 != 0 && rhs.w0 != 0)
+
+ let result = Self(w2, w3)
+ return (result, overflow)
+ }
+
+ public func multipliedFullWidth(by rhs: Self) -> (high: Self, low: Self) {
+ let mul00 = self.w0.multipliedFullWidth(by: rhs.w0)
+ let mul01 = self.w0.multipliedFullWidth(by: rhs.w1)
+ let mul10 = self.w1.multipliedFullWidth(by: rhs.w0)
+ let mul11 = self.w1.multipliedFullWidth(by: rhs.w1)
+
+ // Column 3
+ let w3 = mul11.low
+ let carry3: Word = 0
+
+ // Column 2
+ let (carry2, w2) = sum(
+ carry3,
+ mul11.high, // previous column (sum=2)
+ mul01.low, mul10.low // this column (sum=1)
+ )
+
+ // Column 1
+ let (carry1, w1) = sum(
+ carry2,
+ mul01.high, mul10.high, // previous column (sum=1)
+ mul00.low // this column (sum=0)
+ )
+
+ // Column 0
+ let (carry0, w0) = sum(
+ carry1,
+ mul00.high // previous column (sum=0)
+ )
+
+ assert(carry0 == 0)
+ let high = Self(w0, w1)
+ let low = Self(w2, w3)
+ return (high, low)
+ }
+
+ // MARK: - Div
+
+ public static func / (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.dividedReportingOverflow(by: rhs)
+ precondition(!overflow, "Division by zero")
+ return result
+ }
+
+ public static func /= (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.dividedReportingOverflow(by: rhs)
+ precondition(!overflow, "Division by zero")
+ lhs = result
+ }
+
+ public func dividedReportingOverflow(by rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ if rhs == Self.zero {
+ return (self, true)
+ }
+
+ let qr = self.quotientAndRemainder(dividingBy: rhs)
+ return (qr.quotient, false)
+ }
+
+ public static func % (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.remainderReportingOverflow(dividingBy: rhs)
+ precondition(!overflow, "Division by zero in remainder operation")
+ return result
+ }
+
+ public static func %= (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.remainderReportingOverflow(dividingBy: rhs)
+ precondition(!overflow, "Division by zero in remainder operation")
+ lhs = result
+ }
+
+ public func remainderReportingOverflow(dividingBy rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ if rhs == Self.zero {
+ return (self, true)
+ }
+
+ let qr = self.quotientAndRemainder(dividingBy: rhs)
+ return (qr.remainder, false)
+ }
+
+ internal func quotientAndRemainder(dividingBy rhs: Word) -> (quotient: Self, remainder: Word) {
+ let div0 = self.w0.quotientAndRemainder(dividingBy: rhs)
+
+ let div1 = div0.remainder == 0 ?
+ self.w1.quotientAndRemainder(dividingBy: rhs) :
+ rhs.dividingFullWidth((div0.remainder, self.w1))
+
+ let quotient = Self(div0.quotient, div1.quotient)
+ return (quotient, div1.remainder)
+ }
+
+ public func quotientAndRemainder(dividingBy rhs: Self) -> (quotient: Self, remainder: Self) {
+ precondition(rhs != 0, "Division by zero")
+
+ if self == rhs {
+ return (1, 0)
+ }
+
+ if self < rhs {
+ return (0, self)
+ }
+
+ // Rhs 1 word?
+ if rhs.w0 == 0 {
+ let rhsShort = UInt64(rhs.w1)
+ let (q, r) = self.quotientAndRemainder(dividingBy: rhsShort)
+ let remainder = Self(0, r)
+ return (q, remainder)
+ }
+
+ // Edge case for the bit shifting below.
+ if self.leadingZeroBitCount == rhs.leadingZeroBitCount {
+ // Quotient is 1 and remainder is the difference:
+ // - lhs > rhs
+ // - both operands have non-0 high bits
+ // - both have the same high power of 2, so quotient has to be 1
+ let quotient = Self(0, 1)
+ let remainder = self - rhs
+ return (quotient, remainder)
+ }
+
+ // At this point we know that:
+ // - lhs > rhs
+ // - lhs it has 'more' bits
+ // - both lhs and rhs have upper half filled -> full width division
+ //
+ // What follows is:
+ // - "Fast Recursive Division" by Christoph Burnikel and Joachim Ziegler
+ // - "The Art of Computer Programming vol 2" by Knuth -> 4.3.1 - Algorithm D
+ let shift = rhs.leadingZeroBitCount
+ let rhsShifted = rhs &<< shift
+
+ let lhsHigh = (self &>> (Self.bitWidth &- shift))
+ let lhsLow = self &<< shift
+
+ let (q, r) = Self.divide3by2(
+ lhsHigh.low, lhsLow.high, lhsLow.low,
+ by: rhsShifted
+ )
+
+ let quotient = Self(high: 0, low: q)
+ let remainder = r &>> shift
+ return (quotient, remainder)
+ }
+
+ /// "Algorithm 2. (D3n/2n)" by Christoph Burnikel and Joachim Ziegler
+ private static func divide3by2(
+ _ a1: UInt64, _ a2: UInt64, _ a3: UInt64,
+ by b: Self
+ ) -> (quotient: UInt64, remainder: Self) {
+ // Let A and B be nonnegative integers, and let A<βn*B and β2n/2 <= B < β2n.
+ // Algorithm D3n/2n computes the quotient Q = [A/B] with remainder R = A-Q*B.
+ // 1. Split A into three parts A = [A1;A2;A3] with Ai < βn.
+ // 2. Split B into two parts B = [B1;B2] with Bi < βn.
+ // 3. Distinguish the cases A1 < B1 or A1 >= B1 .
+ // (a) If A1=B1, set Q̂ = βn-1
+ // set R1 = [A1;A2] - [B1;0] + [0;B1] (=[A1,A2] - Q̂B1).
+ // 4. Compute D = Q̂*B2 using Karatsuba multiplication.
+ // 5. Compute R̂ = R1*βn + A4 - D.
+ // 6. As long as R̂ < 0, repeat // Same as R1*βn + A4 < D.
+ // (a) R̂ = R̂ + B
+ // (b) Q̂ = Q̂ - 1
+ // 7. Return Q̂, R̂
+ //
+ // (…)
+ //
+ // We conclude that the body of the loop in step 6 of algorithm D3n/2n is
+ // processed at most twice.
+
+ assert(b.leadingZeroBitCount == 0)
+ let b1 = b.high
+
+ // We do not need R1.
+ // We will calculate 'R̂' differently, see details below.
+ var qHat = a1 < b1 ?
+ b1.dividingFullWidth((a1, a2)).quotient :
+ UInt64.max
+
+ // The method in the paper gives incorrect reminder?
+ // They want 'D = Q̂*B2'.
+ // We will use 'D = Q̂*B' and compare with original value 'A'.
+ let d = b.multipliedFullWidth(by: qHat)
+ let D = UInt192(d.high, d.low)
+ // This is basically the original value of 'A'
+ // We will do the '-D' part later.
+ var rHat = UInt192(a1, a2, a3)
+ let bWide = UInt192(0, b)
+
+ // Statement about the double iteration holds true even if 'D = Q̂*B'
+ // (and not 'D = Q̂*B1'), because the iteration count depends on the quotient
+ // approximation and not on the exact value of 'D'.
+ while rHat < D {
+ rHat += bWide
+ qHat &-= 1
+ }
+
+ rHat -= D
+ assert(rHat.w0 == 0)
+ let r = Self(high: rHat.w1, low: rHat.w2)
+ return (qHat, r)
+ }
+
+ public func dividingFullWidth(
+ _ lhs: (high: Self, low: Self)
+ ) -> (quotient: Self, remainder: Self) {
+ let rhs = self
+ precondition(rhs != 0, "Division by zero")
+ precondition(rhs >= lhs.high, "Division results in an overflow")
+
+ // lhs = UInt128?
+ if lhs.high == 0 {
+ return lhs.low.quotientAndRemainder(dividingBy: rhs)
+ }
+
+ let lhs = UInt256(high: lhs.high, low: lhs.low)
+
+ // rhs = Word?
+ if rhs.high == 0 {
+ // School method: abcd / r
+ let r = rhs.low
+ let a = lhs.w0 % r
+
+ let b = a == 0 ?
+ lhs.w1 % r :
+ r.dividingFullWidth((a, lhs.w1)).remainder
+
+ let (x, c) = b == 0 ?
+ lhs.w2.quotientAndRemainder(dividingBy: r) :
+ r.dividingFullWidth((b, lhs.w2))
+
+ let (y, d) = c == 0 ?
+ lhs.w3.quotientAndRemainder(dividingBy: r) :
+ r.dividingFullWidth((c, lhs.w3))
+
+ let quotient = Self(high: x, low: y)
+ let remainder = Self(high: 0, low: d)
+ return (quotient, remainder)
+ }
+
+ // Left shift both rhs and lhs, then divide and right shift the remainder.
+ // Similar to Knuth Algorithm D.
+ let shift = rhs.leadingZeroBitCount
+ let lhsShifted = lhs &<< shift
+ let rhsShifted = rhs &<< shift
+
+ if lhsShifted.w0 == 0 && Self(high: lhsShifted.w1, low: lhsShifted.w2) < rhsShifted {
+ let (q, r) = Self.divide3by2(
+ lhsShifted.w1, lhsShifted.w2, lhsShifted.w3,
+ by: rhsShifted
+ )
+
+ let quotient = Self(high: 0, low: q)
+ let remainder = r &>> shift
+ return (quotient, remainder)
+ }
+
+ let (q1, r1) = Self.divide3by2(
+ lhsShifted.w0, lhsShifted.w1, lhsShifted.w2,
+ by: rhsShifted
+ )
+
+ let (q2, r2) = Self.divide3by2(
+ r1.high, r1.low, lhsShifted.w3,
+ by: rhsShifted
+ )
+
+ let quotient = Self(q1, q2)
+ let remainder = r2 &>> shift
+ return (quotient, remainder)
+ }
+
+ // MARK: - Bit operations
+
+ public static prefix func ~ (n: Self) -> Self {
+ let w0 = ~n.w0
+ let w1 = ~n.w1
+ return Self(w0, w1)
+ }
+
+ public static func &= (lhs: inout Self, rhs: Self) {
+ lhs.w0 &= rhs.w0
+ lhs.w1 &= rhs.w1
+ }
+
+ public static func |= (lhs: inout Self, rhs: Self) {
+ lhs.w0 |= rhs.w0
+ lhs.w1 |= rhs.w1
+ }
+
+ public static func ^= (lhs: inout Self, rhs: Self) {
+ lhs.w0 ^= rhs.w0
+ lhs.w1 ^= rhs.w1
+ }
+
+ // MARK: - Shifts
+
+ public static func &<<= (lhs: inout Self, rhs: Self) {
+ let rhs = Self.applyShiftMask(rhs)
+ let word = Word(Word.bitWidth)
+
+ if rhs == 0 {
+ // Nothing to do here.
+ } else if rhs < 1 &* word {
+ let left = rhs &- (0 &* word)
+ let right = word &- left
+ lhs.w0 = lhs.w0 &<< left
+ lhs.w0 |= lhs.w1 &>> right
+ lhs.w1 = lhs.w1 &<< left
+ } else if rhs == 1 &* word {
+ lhs.w0 = lhs.w1
+ lhs.w1 = 0
+ } else if rhs < 2 &* word {
+ let left = rhs &- (1 &* word)
+ lhs.w0 = lhs.w1 &<< left
+ lhs.w1 = 0
+ } else if rhs == 2 &* word {
+ lhs.w0 = 0
+ lhs.w1 = 0
+ }
+ }
+
+ public static func &>>= (lhs: inout Self, rhs: Self) {
+ let rhs = Self.applyShiftMask(rhs)
+ let word = Word(Word.bitWidth)
+
+ if rhs == 0 {
+ // Nothing to do here.
+ } else if rhs < 1 &* word {
+ let right = rhs &- (0 &* word)
+ let left = word &- right
+ lhs.w1 = lhs.w1 &>> right
+ lhs.w1 |= lhs.w0 &<< left
+ lhs.w0 = lhs.w0 &>> right
+ } else if rhs == 1 &* word {
+ lhs.w1 = lhs.w0
+ lhs.w0 = 0
+ } else if rhs < 2 &* word {
+ let right = rhs &- (1 &* word)
+ lhs.w1 = lhs.w0 &>> right
+ lhs.w0 = 0
+ } else if rhs == 2 &* word {
+ lhs.w1 = 0
+ lhs.w0 = 0
+ }
+ }
+
+ /// Calculates the result of shifting a value’s binary representation the
+ /// specified number of digits in direction, MASKING THE SHIFT AMOUNT TO
+ /// THE TYPE’S BIT WIDTH, and stores the result in the left-hand-side variable.
+ private static func applyShiftMask(_ n: Self) -> Word {
+ let mask = Word(truncatingIfNeeded: Self.bitWidth &- 1)
+ return n.w1 & mask
+ }
+
+ // MARK: - Equal, compare
+
+ public static func == (lhs: Self, rhs: Self) -> Bool {
+ return lhs.w0 == rhs.w0 && lhs.w1 == rhs.w1
+ }
+
+ public static func < (lhs: Self, rhs: Self) -> Bool {
+ if lhs.w0 < rhs.w0 { return true }
+
+ if lhs.w0 != rhs.w0 { return false }
+ return lhs.w1 < rhs.w1
+ }
+
+ // MARK: - Words
+
+ public struct Words: RandomAccessCollection {
+ public typealias Element = UInt
+ public typealias Index = Int
+
+ public var count: Int { UInt128.bitWidth / UInt.bitWidth }
+ public var startIndex: Index { 0 }
+ public var endIndex: Index { count }
+
+ internal var value: UInt128
+
+ fileprivate init(_ value: UInt128) {
+ self.value = value
+ }
+
+ public subscript(position: Index) -> UInt {
+ precondition(
+ 0 <= position && position < self.endIndex,
+ "Word index out of range"
+ )
+
+ let shift = position * UInt.bitWidth
+ let shifted = self.value &>> shift
+ return UInt(truncatingIfNeeded: shifted.w1)
+ }
+
+ public func index(after i: Index) -> Index { i + 1 }
+ public func index(before i: Index) -> Index { i - 1 }
+ }
+}
+
+// MARK: - Div helper - UInt192
+
+/// Unsigned Int that is used during division.
+private struct UInt192 {
+
+ fileprivate typealias Word = UInt64
+
+ fileprivate let w0: Word
+ fileprivate let w1: Word
+ fileprivate let w2: Word
+
+ fileprivate init(_ w0: Word, _ wide: UInt128) {
+ self.w0 = w0
+ self.w1 = Word(wide.w0)
+ self.w2 = Word(wide.w1)
+ }
+
+ fileprivate init(_ w0: Word, _ w1: Word, _ w2: Word) {
+ self.w0 = w0
+ self.w1 = w1
+ self.w2 = w2
+ }
+
+ fileprivate static func + (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.addingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ fileprivate static func += (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.addingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ fileprivate func addingReportingOverflow(_ rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ let w2 = self.w2.addingReportingOverflow(rhs.w2)
+ let carry2: Word = w2.overflow ? 1 : 0
+
+ let partial1 = self.w1.addingReportingOverflow(rhs.w1)
+ let w1 = partial1.partialValue.addingReportingOverflow(carry2)
+ let carry1: Word = (partial1.overflow ? 1 : 0) + (w1.overflow ? 1 : 0)
+
+ let partial0 = self.w0.addingReportingOverflow(rhs.w0)
+ let w0 = partial0.partialValue.addingReportingOverflow(carry1)
+ let carry0: Word = (partial0.overflow ? 1 : 0) + (w0.overflow ? 1 : 0)
+
+ let result = Self(w0.partialValue, w1.partialValue, w2.partialValue)
+ let overflow = carry0 != 0
+ return (result, overflow)
+ }
+
+ fileprivate static func - (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.subtractingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ fileprivate static func -= (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.subtractingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ fileprivate func subtractingReportingOverflow(_ rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ let w2 = self.w2.subtractingReportingOverflow(rhs.w2)
+ let borrow2: Word = w2.overflow ? 1 : 0
+
+ let partial1 = self.w1.subtractingReportingOverflow(rhs.w1)
+ let w1 = partial1.partialValue.subtractingReportingOverflow(borrow2)
+ let borrow1: Word = (partial1.overflow ? 1 : 0) + (w1.overflow ? 1 : 0)
+
+ let partial0 = self.w0.subtractingReportingOverflow(rhs.w0)
+ let w0 = partial0.partialValue.subtractingReportingOverflow(borrow1)
+ let borrow0: Word = (partial0.overflow ? 1 : 0) + (w0.overflow ? 1 : 0)
+
+ let result = Self(w0.partialValue, w1.partialValue, w2.partialValue)
+ let overflow = borrow0 != 0
+ return (result, overflow)
+ }
+
+ fileprivate static func < (lhs: Self, rhs: Self) -> Bool {
+ if lhs.w0 < rhs.w0 { return true }
+
+ if lhs.w0 != rhs.w0 { return false }
+ if lhs.w1 < rhs.w1 { return true }
+
+ if lhs.w1 != rhs.w1 { return false }
+ return lhs.w2 < rhs.w2
+ }
+}
diff --git a/Sources/Decimal/Generated/UInt256.swift b/Sources/Decimal/Generated/UInt256.swift
new file mode 100644
index 0000000..d047f2b
--- /dev/null
+++ b/Sources/Decimal/Generated/UInt256.swift
@@ -0,0 +1,995 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+// swiftlint:disable all
+
+/// You know what this is, don't make me say it…
+internal struct UInt256: Codable, FixedWidthInteger, UnsignedInteger, CustomStringConvertible {
+
+ internal typealias Word = UInt64
+
+ // MARK: - Static properties
+
+ internal static let bitWidth = 256
+
+ // MARK: - Properties
+
+ // Words from high bits (w0) to low bits (w3).
+ internal var w0: Word
+ internal var w1: Word
+ internal var w2: Word
+ internal var w3: Word
+
+ internal var words: Words { Words(self) }
+
+ internal var isZero: Bool {
+ return self.w0 == 0 && self.w1 == 0 && self.w2 == 0 && self.w3 == 0
+ }
+
+ internal var leadingZeroBitCount: Int {
+ if self.w0 != 0 { return 0 * Word.bitWidth + self.w0.leadingZeroBitCount }
+ if self.w1 != 0 { return 1 * Word.bitWidth + self.w1.leadingZeroBitCount }
+ if self.w2 != 0 { return 2 * Word.bitWidth + self.w2.leadingZeroBitCount }
+ return 3 * Word.bitWidth + self.w3.leadingZeroBitCount
+ }
+
+ internal var trailingZeroBitCount: Int {
+ if self.w3 != 0 { return 0 * Word.bitWidth + self.w3.trailingZeroBitCount }
+ if self.w2 != 0 { return 1 * Word.bitWidth + self.w2.trailingZeroBitCount }
+ if self.w1 != 0 { return 2 * Word.bitWidth + self.w1.trailingZeroBitCount }
+ return 3 * Word.bitWidth + self.w0.trailingZeroBitCount
+ }
+
+ internal var nonzeroBitCount: Int {
+ return self.w0.nonzeroBitCount + self.w1.nonzeroBitCount + self.w2.nonzeroBitCount + self.w3.nonzeroBitCount
+ }
+
+ internal var byteSwapped: Self {
+ let w0 = self.w0.byteSwapped
+ let w1 = self.w1.byteSwapped
+ let w2 = self.w2.byteSwapped
+ let w3 = self.w3.byteSwapped
+ return Self(w0, w1, w2, w3)
+ }
+
+ internal var description: String {
+ let _0: UInt8 = 48
+ var n = self
+ var result = ""
+
+ while !n.isZero {
+ let (q, r) = n.quotientAndRemainder(dividingBy: 10 as Word)
+ n = q
+
+ let ascii = _0 + UInt8(r)
+ let scalar = UnicodeScalar(ascii)
+ let char = Character(scalar)
+ result.append(char)
+ }
+
+ return result.isEmpty ? "0" : String(result.reversed())
+ }
+
+ // MARK: - Init
+
+ internal init() {
+ self.w0 = 0
+ self.w1 = 0
+ self.w2 = 0
+ self.w3 = 0
+ }
+
+ internal init(_ w0: Word, _ w1: Word, _ w2: Word, _ w3: Word) {
+ self.w0 = w0
+ self.w1 = w1
+ self.w2 = w2
+ self.w3 = w3
+ }
+
+ // MARK: - Init - Int
+
+ internal init(_ source: T) {
+ guard let result = Self(exactly: source) else {
+ preconditionFailure("Value is outside the representable range")
+ }
+
+ self = result
+ }
+
+ internal init?(exactly source: T) {
+ if source < (0 as T) {
+ return nil
+ }
+
+ if let low = Word(exactly: source.magnitude) {
+ self.w0 = 0
+ self.w1 = 0
+ self.w2 = 0
+ self.w3 = low
+ } else {
+ var s = source
+ let mask = T(Word.max)
+
+ self.w3 = Word(s & mask)
+ s >>= Word.bitWidth
+
+ self.w2 = Word(s & mask)
+ s >>= Word.bitWidth
+
+ self.w1 = Word(s & mask)
+ s >>= Word.bitWidth
+
+ self.w0 = Word(s & mask)
+ s >>= Word.bitWidth
+
+ if s != (0 as T) {
+ return nil
+ }
+ }
+ }
+
+ internal init(integerLiteral value: IntegerLiteralType) {
+ self = Self(value)
+ }
+
+ internal init(_truncatingBits bits: UInt) {
+ self.w0 = Word(_truncatingBits: bits >> (3 * Word.bitWidth))
+ self.w1 = Word(_truncatingBits: bits >> (2 * Word.bitWidth))
+ self.w2 = Word(_truncatingBits: bits >> (1 * Word.bitWidth))
+ self.w3 = Word(_truncatingBits: bits >> (0 * Word.bitWidth))
+ }
+
+ // MARK: - Init - Float
+
+ internal init(_ source: T) {
+ preconditionFailure("UInt256(BinaryFloatingPoint) not implemented.")
+ }
+
+ internal init?(exactly source: T) {
+ preconditionFailure("UInt256(exactly: BinaryFloatingPoint) not implemented.")
+ }
+
+ // MARK: - Add
+
+ internal static func + (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.addingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ internal static func += (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.addingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ internal func addingReportingOverflow(_ rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ let w3 = self.w3.addingReportingOverflow(rhs.w3)
+ let carry3: Word = w3.overflow ? 1 : 0
+
+ let partial2 = self.w2.addingReportingOverflow(rhs.w2)
+ let w2 = partial2.partialValue.addingReportingOverflow(carry3)
+ let carry2: Word = (partial2.overflow ? 1 : 0) + (w2.overflow ? 1 : 0)
+
+ let partial1 = self.w1.addingReportingOverflow(rhs.w1)
+ let w1 = partial1.partialValue.addingReportingOverflow(carry2)
+ let carry1: Word = (partial1.overflow ? 1 : 0) + (w1.overflow ? 1 : 0)
+
+ let partial0 = self.w0.addingReportingOverflow(rhs.w0)
+ let w0 = partial0.partialValue.addingReportingOverflow(carry1)
+ let carry0: Word = (partial0.overflow ? 1 : 0) + (w0.overflow ? 1 : 0)
+
+ let result = Self(w0.partialValue, w1.partialValue, w2.partialValue, w3.partialValue)
+ let overflow = carry0 != 0
+ return (result, overflow)
+ }
+
+ // MARK: - Sub
+
+ internal static func - (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.subtractingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ internal static func -= (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.subtractingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ internal func subtractingReportingOverflow(_ rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ let w3 = self.w3.subtractingReportingOverflow(rhs.w3)
+ let borrow3: Word = w3.overflow ? 1 : 0
+
+ let partial2 = self.w2.subtractingReportingOverflow(rhs.w2)
+ let w2 = partial2.partialValue.subtractingReportingOverflow(borrow3)
+ let borrow2: Word = (partial2.overflow ? 1 : 0) + (w2.overflow ? 1 : 0)
+
+ let partial1 = self.w1.subtractingReportingOverflow(rhs.w1)
+ let w1 = partial1.partialValue.subtractingReportingOverflow(borrow2)
+ let borrow1: Word = (partial1.overflow ? 1 : 0) + (w1.overflow ? 1 : 0)
+
+ let partial0 = self.w0.subtractingReportingOverflow(rhs.w0)
+ let w0 = partial0.partialValue.subtractingReportingOverflow(borrow1)
+ let borrow0: Word = (partial0.overflow ? 1 : 0) + (w0.overflow ? 1 : 0)
+
+ let result = Self(w0.partialValue, w1.partialValue, w2.partialValue, w3.partialValue)
+ let overflow = borrow0 != 0
+ return (result, overflow)
+ }
+
+ // MARK: - Mul
+
+ internal static func * (lhs: Self, rhs: UInt128) -> Self {
+ let (result, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ internal static func *= (_ lhs: inout Self, _ rhs: UInt128) {
+ let (result, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ internal func multipliedReportingOverflow(by rhs: UInt128) -> (partialValue: Self, overflow: Bool) {
+ let mul03 = self.w0.multipliedFullWidth(by: rhs.w1)
+ let mul12 = self.w1.multipliedFullWidth(by: rhs.w0)
+ let mul13 = self.w1.multipliedFullWidth(by: rhs.w1)
+ let mul22 = self.w2.multipliedFullWidth(by: rhs.w0)
+ let mul23 = self.w2.multipliedFullWidth(by: rhs.w1)
+ let mul32 = self.w3.multipliedFullWidth(by: rhs.w0)
+ let mul33 = self.w3.multipliedFullWidth(by: rhs.w1)
+
+ // Column 7
+ let w7 = mul33.low
+ let carry7: Word = 0
+
+ // Column 6
+ let (carry6, w6) = sum(
+ carry7,
+ mul33.high, // previous column (sum=6)
+ mul23.low, mul32.low // this column (sum=5)
+ )
+
+ // Column 5
+ let (carry5, w5) = sum(
+ carry6,
+ mul23.high, mul32.high, // previous column (sum=5)
+ mul13.low, mul22.low // this column (sum=4)
+ )
+
+ // Column 4
+ let (carry4, w4) = sum(
+ carry5,
+ mul13.high, mul22.high, // previous column (sum=4)
+ mul03.low, mul12.low // this column (sum=3)
+ )
+
+ let overflow: Bool = carry4 != 0
+ // Check 'high' in column 3
+ || (mul03.high != 0)
+ || (mul12.high != 0)
+ // Check not preformed multiplications
+ || (self.w0 != 0 && rhs.w0 != 0)
+
+ let result = Self(w4, w5, w6, w7)
+ return (result, overflow)
+ }
+
+ internal func multipliedFullWidth(by rhs: UInt128) -> (high: UInt128, low: Self) {
+ let mul02 = self.w0.multipliedFullWidth(by: rhs.w0)
+ let mul03 = self.w0.multipliedFullWidth(by: rhs.w1)
+ let mul12 = self.w1.multipliedFullWidth(by: rhs.w0)
+ let mul13 = self.w1.multipliedFullWidth(by: rhs.w1)
+ let mul22 = self.w2.multipliedFullWidth(by: rhs.w0)
+ let mul23 = self.w2.multipliedFullWidth(by: rhs.w1)
+ let mul32 = self.w3.multipliedFullWidth(by: rhs.w0)
+ let mul33 = self.w3.multipliedFullWidth(by: rhs.w1)
+
+ // Column 7
+ let w7 = mul33.low
+ let carry7: Word = 0
+
+ // Column 6
+ let (carry6, w6) = sum(
+ carry7,
+ mul33.high, // previous column (sum=6)
+ mul23.low, mul32.low // this column (sum=5)
+ )
+
+ // Column 5
+ let (carry5, w5) = sum(
+ carry6,
+ mul23.high, mul32.high, // previous column (sum=5)
+ mul13.low, mul22.low // this column (sum=4)
+ )
+
+ // Column 4
+ let (carry4, w4) = sum(
+ carry5,
+ mul13.high, mul22.high, // previous column (sum=4)
+ mul03.low, mul12.low // this column (sum=3)
+ )
+
+ // Column 3
+ let (carry3, w3) = sum(
+ carry4,
+ mul03.high, mul12.high, // previous column (sum=3)
+ mul02.low // this column (sum=2)
+ )
+
+ // Column 2
+ let (carry2, w2) = sum(
+ carry3,
+ mul02.high // previous column (sum=2)
+ )
+
+ assert(carry2 == 0)
+ let high = UInt128(w2, w3)
+ let low = Self(w4, w5, w6, w7)
+ return (high, low)
+ }
+
+ internal static func * (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ internal static func *= (_ lhs: inout Self, _ rhs: Self) {
+ let (result, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ internal func multipliedReportingOverflow(by rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ let mul03 = self.w0.multipliedFullWidth(by: rhs.w3)
+ let mul12 = self.w1.multipliedFullWidth(by: rhs.w2)
+ let mul13 = self.w1.multipliedFullWidth(by: rhs.w3)
+ let mul21 = self.w2.multipliedFullWidth(by: rhs.w1)
+ let mul22 = self.w2.multipliedFullWidth(by: rhs.w2)
+ let mul23 = self.w2.multipliedFullWidth(by: rhs.w3)
+ let mul30 = self.w3.multipliedFullWidth(by: rhs.w0)
+ let mul31 = self.w3.multipliedFullWidth(by: rhs.w1)
+ let mul32 = self.w3.multipliedFullWidth(by: rhs.w2)
+ let mul33 = self.w3.multipliedFullWidth(by: rhs.w3)
+
+ // Column 7
+ let w7 = mul33.low
+ let carry7: Word = 0
+
+ // Column 6
+ let (carry6, w6) = sum(
+ carry7,
+ mul33.high, // previous column (sum=6)
+ mul23.low, mul32.low // this column (sum=5)
+ )
+
+ // Column 5
+ let (carry5, w5) = sum(
+ carry6,
+ mul23.high, mul32.high, // previous column (sum=5)
+ mul13.low, mul22.low, mul31.low // this column (sum=4)
+ )
+
+ // Column 4
+ let (carry4, w4) = sum(
+ carry5,
+ mul13.high, mul22.high, mul31.high, // previous column (sum=4)
+ mul03.low, mul12.low, mul21.low, mul30.low // this column (sum=3)
+ )
+
+ let overflow: Bool = carry4 != 0
+ // Check 'high' in column 3
+ || (mul03.high != 0)
+ || (mul12.high != 0)
+ || (mul21.high != 0)
+ || (mul30.high != 0)
+ // Check not preformed multiplications
+ || (self.w0 != 0 && rhs.w2 != 0)
+ || (self.w1 != 0 && rhs.w1 != 0)
+ || (self.w2 != 0 && rhs.w0 != 0)
+ || (self.w0 != 0 && rhs.w1 != 0)
+ || (self.w1 != 0 && rhs.w0 != 0)
+ || (self.w0 != 0 && rhs.w0 != 0)
+
+ let result = Self(w4, w5, w6, w7)
+ return (result, overflow)
+ }
+
+ internal func multipliedFullWidth(by rhs: Self) -> (high: Self, low: Self) {
+ let mul00 = self.w0.multipliedFullWidth(by: rhs.w0)
+ let mul01 = self.w0.multipliedFullWidth(by: rhs.w1)
+ let mul02 = self.w0.multipliedFullWidth(by: rhs.w2)
+ let mul03 = self.w0.multipliedFullWidth(by: rhs.w3)
+ let mul10 = self.w1.multipliedFullWidth(by: rhs.w0)
+ let mul11 = self.w1.multipliedFullWidth(by: rhs.w1)
+ let mul12 = self.w1.multipliedFullWidth(by: rhs.w2)
+ let mul13 = self.w1.multipliedFullWidth(by: rhs.w3)
+ let mul20 = self.w2.multipliedFullWidth(by: rhs.w0)
+ let mul21 = self.w2.multipliedFullWidth(by: rhs.w1)
+ let mul22 = self.w2.multipliedFullWidth(by: rhs.w2)
+ let mul23 = self.w2.multipliedFullWidth(by: rhs.w3)
+ let mul30 = self.w3.multipliedFullWidth(by: rhs.w0)
+ let mul31 = self.w3.multipliedFullWidth(by: rhs.w1)
+ let mul32 = self.w3.multipliedFullWidth(by: rhs.w2)
+ let mul33 = self.w3.multipliedFullWidth(by: rhs.w3)
+
+ // Column 7
+ let w7 = mul33.low
+ let carry7: Word = 0
+
+ // Column 6
+ let (carry6, w6) = sum(
+ carry7,
+ mul33.high, // previous column (sum=6)
+ mul23.low, mul32.low // this column (sum=5)
+ )
+
+ // Column 5
+ let (carry5, w5) = sum(
+ carry6,
+ mul23.high, mul32.high, // previous column (sum=5)
+ mul13.low, mul22.low, mul31.low // this column (sum=4)
+ )
+
+ // Column 4
+ let (carry4, w4) = sum(
+ carry5,
+ mul13.high, mul22.high, mul31.high, // previous column (sum=4)
+ mul03.low, mul12.low, mul21.low, mul30.low // this column (sum=3)
+ )
+
+ // Column 3
+ let (carry3, w3) = sum(
+ carry4,
+ mul03.high, mul12.high, mul21.high, mul30.high, // previous column (sum=3)
+ mul02.low, mul11.low, mul20.low // this column (sum=2)
+ )
+
+ // Column 2
+ let (carry2, w2) = sum(
+ carry3,
+ mul02.high, mul11.high, mul20.high, // previous column (sum=2)
+ mul01.low, mul10.low // this column (sum=1)
+ )
+
+ // Column 1
+ let (carry1, w1) = sum(
+ carry2,
+ mul01.high, mul10.high, // previous column (sum=1)
+ mul00.low // this column (sum=0)
+ )
+
+ // Column 0
+ let (carry0, w0) = sum(
+ carry1,
+ mul00.high // previous column (sum=0)
+ )
+
+ assert(carry0 == 0)
+ let high = Self(w0, w1, w2, w3)
+ let low = Self(w4, w5, w6, w7)
+ return (high, low)
+ }
+
+ // MARK: - Div
+
+ internal static func / (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.dividedReportingOverflow(by: rhs)
+ precondition(!overflow, "Division by zero")
+ return result
+ }
+
+ internal static func /= (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.dividedReportingOverflow(by: rhs)
+ precondition(!overflow, "Division by zero")
+ lhs = result
+ }
+
+ internal func dividedReportingOverflow(by rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ if rhs == Self.zero {
+ return (self, true)
+ }
+
+ let qr = self.quotientAndRemainder(dividingBy: rhs)
+ return (qr.quotient, false)
+ }
+
+ internal static func % (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.remainderReportingOverflow(dividingBy: rhs)
+ precondition(!overflow, "Division by zero in remainder operation")
+ return result
+ }
+
+ internal static func %= (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.remainderReportingOverflow(dividingBy: rhs)
+ precondition(!overflow, "Division by zero in remainder operation")
+ lhs = result
+ }
+
+ internal func remainderReportingOverflow(dividingBy rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ if rhs == Self.zero {
+ return (self, true)
+ }
+
+ let qr = self.quotientAndRemainder(dividingBy: rhs)
+ return (qr.remainder, false)
+ }
+
+ internal func quotientAndRemainder(dividingBy rhs: Word) -> (quotient: Self, remainder: Word) {
+ let div0 = self.w0.quotientAndRemainder(dividingBy: rhs)
+
+ let div1 = div0.remainder == 0 ?
+ self.w1.quotientAndRemainder(dividingBy: rhs) :
+ rhs.dividingFullWidth((div0.remainder, self.w1))
+
+ let div2 = div1.remainder == 0 ?
+ self.w2.quotientAndRemainder(dividingBy: rhs) :
+ rhs.dividingFullWidth((div1.remainder, self.w2))
+
+ let div3 = div2.remainder == 0 ?
+ self.w3.quotientAndRemainder(dividingBy: rhs) :
+ rhs.dividingFullWidth((div2.remainder, self.w3))
+
+ let quotient = Self(div0.quotient, div1.quotient, div2.quotient, div3.quotient)
+ return (quotient, div3.remainder)
+ }
+
+ internal func quotientAndRemainder(dividingBy rhs: UInt128) -> (quotient: Self, remainder: UInt128) {
+ // rhs == Word?
+ if rhs.w0 == 0 {
+ let (q, r) = self.quotientAndRemainder(dividingBy: rhs.w1)
+ let remainder = UInt128(0, r)
+ return (q, remainder)
+ }
+
+ // self == UInt128?
+ if self.w0 == 0 && self.w1 == 0 {
+ let w2w3 = UInt128(self.w2, self.w3)
+ let (q, r) = w2w3.quotientAndRemainder(dividingBy: rhs)
+ let quotient = Self(0, 0, q.w0, q.w1)
+ return (quotient, r)
+ }
+
+ let w0w1 = UInt128(self.w0, self.w1)
+ let div0 = w0w1.quotientAndRemainder(dividingBy: rhs)
+
+ let w2w3 = UInt128(self.w2, self.w3)
+ let div1 = div0.remainder == 0 ?
+ w2w3.quotientAndRemainder(dividingBy: rhs) :
+ rhs.dividingFullWidth((div0.remainder, w2w3))
+
+ let quotient = Self(div0.quotient.w0, div0.quotient.w1, div1.quotient.w0, div1.quotient.w1)
+ let remainder = UInt128(div1.remainder.w0, div1.remainder.w1)
+ return (quotient, remainder)
+ }
+
+ internal func quotientAndRemainder(dividingBy rhs: Self) -> (quotient: Self, remainder: Self) {
+ precondition(rhs != 0, "Division by zero")
+
+ if self == rhs {
+ return (1, 0)
+ }
+
+ if self < rhs {
+ return (0, self)
+ }
+
+ // Rhs 2 words?
+ if rhs.w0 == 0 && rhs.w1 == 0 {
+ let rhsShort = UInt128(rhs.w2, rhs.w3)
+ let (q, r) = self.quotientAndRemainder(dividingBy: rhsShort)
+ let remainder = Self(0, 0, r.w0, r.w1)
+ return (q, remainder)
+ }
+
+ // Edge case for the bit shifting below.
+ if self.leadingZeroBitCount == rhs.leadingZeroBitCount {
+ // Quotient is 1 and remainder is the difference:
+ // - lhs > rhs
+ // - both operands have non-0 high bits
+ // - both have the same high power of 2, so quotient has to be 1
+ let quotient = Self(0, 0, 0, 1)
+ let remainder = self - rhs
+ return (quotient, remainder)
+ }
+
+ // At this point we know that:
+ // - lhs > rhs
+ // - lhs it has 'more' bits
+ // - both lhs and rhs have upper half filled -> full width division
+ //
+ // What follows is:
+ // - "Fast Recursive Division" by Christoph Burnikel and Joachim Ziegler
+ // - "The Art of Computer Programming vol 2" by Knuth -> 4.3.1 - Algorithm D
+ let shift = rhs.leadingZeroBitCount
+ let rhsShifted = rhs &<< shift
+
+ let lhsHigh = (self &>> (Self.bitWidth &- shift))
+ let lhsLow = self &<< shift
+
+ let (q, r) = Self.divide3by2(
+ lhsHigh.low, lhsLow.high, lhsLow.low,
+ by: rhsShifted
+ )
+
+ let quotient = Self(high: 0, low: q)
+ let remainder = r &>> shift
+ return (quotient, remainder)
+ }
+
+ /// "Algorithm 2. (D3n/2n)" by Christoph Burnikel and Joachim Ziegler
+ private static func divide3by2(
+ _ a1: UInt128, _ a2: UInt128, _ a3: UInt128,
+ by b: Self
+ ) -> (quotient: UInt128, remainder: Self) {
+ // Let A and B be nonnegative integers, and let A<βn*B and β2n/2 <= B < β2n.
+ // Algorithm D3n/2n computes the quotient Q = [A/B] with remainder R = A-Q*B.
+ // 1. Split A into three parts A = [A1;A2;A3] with Ai < βn.
+ // 2. Split B into two parts B = [B1;B2] with Bi < βn.
+ // 3. Distinguish the cases A1 < B1 or A1 >= B1 .
+ // (a) If A1=B1, set Q̂ = βn-1
+ // set R1 = [A1;A2] - [B1;0] + [0;B1] (=[A1,A2] - Q̂B1).
+ // 4. Compute D = Q̂*B2 using Karatsuba multiplication.
+ // 5. Compute R̂ = R1*βn + A4 - D.
+ // 6. As long as R̂ < 0, repeat // Same as R1*βn + A4 < D.
+ // (a) R̂ = R̂ + B
+ // (b) Q̂ = Q̂ - 1
+ // 7. Return Q̂, R̂
+ //
+ // (…)
+ //
+ // We conclude that the body of the loop in step 6 of algorithm D3n/2n is
+ // processed at most twice.
+
+ assert(b.leadingZeroBitCount == 0)
+ let b1 = b.high
+
+ // We do not need R1.
+ // We will calculate 'R̂' differently, see details below.
+ var qHat = a1 < b1 ?
+ b1.dividingFullWidth((a1, a2)).quotient :
+ UInt128.max
+
+ // The method in the paper gives incorrect reminder?
+ // They want 'D = Q̂*B2'.
+ // We will use 'D = Q̂*B' and compare with original value 'A'.
+ let d = b.multipliedFullWidth(by: qHat)
+ let D = UInt384(d.high, d.low)
+ // This is basically the original value of 'A'
+ // We will do the '-D' part later.
+ var rHat = UInt384(a1, a2, a3)
+ let bWide = UInt384(0, b)
+
+ // Statement about the double iteration holds true even if 'D = Q̂*B'
+ // (and not 'D = Q̂*B1'), because the iteration count depends on the quotient
+ // approximation and not on the exact value of 'D'.
+ while rHat < D {
+ rHat += bWide
+ qHat &-= 1
+ }
+
+ rHat -= D
+ assert(rHat.w0 == 0)
+ let r = Self(high: rHat.w1, low: rHat.w2)
+ return (qHat, r)
+ }
+
+ internal func dividingFullWidth(_ dividend: (high: Self, low: Self)) -> (quotient: Self, remainder: Self) {
+ fatalError("UInt256 dividingFullWidth is not implemented.")
+ }
+
+ // MARK: - Bit operations
+
+ internal static prefix func ~ (n: Self) -> Self {
+ let w0 = ~n.w0
+ let w1 = ~n.w1
+ let w2 = ~n.w2
+ let w3 = ~n.w3
+ return Self(w0, w1, w2, w3)
+ }
+
+ internal static func &= (lhs: inout Self, rhs: Self) {
+ lhs.w0 &= rhs.w0
+ lhs.w1 &= rhs.w1
+ lhs.w2 &= rhs.w2
+ lhs.w3 &= rhs.w3
+ }
+
+ internal static func |= (lhs: inout Self, rhs: Self) {
+ lhs.w0 |= rhs.w0
+ lhs.w1 |= rhs.w1
+ lhs.w2 |= rhs.w2
+ lhs.w3 |= rhs.w3
+ }
+
+ internal static func ^= (lhs: inout Self, rhs: Self) {
+ lhs.w0 ^= rhs.w0
+ lhs.w1 ^= rhs.w1
+ lhs.w2 ^= rhs.w2
+ lhs.w3 ^= rhs.w3
+ }
+
+ // MARK: - Shifts
+
+ internal static func &<<= (lhs: inout Self, rhs: Self) {
+ let rhs = Self.applyShiftMask(rhs)
+ let word = Word(Word.bitWidth)
+
+ if rhs == 0 {
+ // Nothing to do here.
+ } else if rhs < 1 &* word {
+ let left = rhs &- (0 &* word)
+ let right = word &- left
+ lhs.w0 = lhs.w0 &<< left
+ lhs.w0 |= lhs.w1 &>> right
+ lhs.w1 = lhs.w1 &<< left
+ lhs.w1 |= lhs.w2 &>> right
+ lhs.w2 = lhs.w2 &<< left
+ lhs.w2 |= lhs.w3 &>> right
+ lhs.w3 = lhs.w3 &<< left
+ } else if rhs == 1 &* word {
+ lhs.w0 = lhs.w1
+ lhs.w1 = lhs.w2
+ lhs.w2 = lhs.w3
+ lhs.w3 = 0
+ } else if rhs < 2 &* word {
+ let left = rhs &- (1 &* word)
+ let right = word &- left
+ lhs.w0 = lhs.w1 &<< left
+ lhs.w0 |= lhs.w2 &>> right
+ lhs.w1 = lhs.w2 &<< left
+ lhs.w1 |= lhs.w3 &>> right
+ lhs.w2 = lhs.w3 &<< left
+ lhs.w3 = 0
+ } else if rhs == 2 &* word {
+ lhs.w0 = lhs.w2
+ lhs.w1 = lhs.w3
+ lhs.w2 = 0
+ lhs.w3 = 0
+ } else if rhs < 3 &* word {
+ let left = rhs &- (2 &* word)
+ let right = word &- left
+ lhs.w0 = lhs.w2 &<< left
+ lhs.w0 |= lhs.w3 &>> right
+ lhs.w1 = lhs.w3 &<< left
+ lhs.w2 = 0
+ lhs.w3 = 0
+ } else if rhs == 3 &* word {
+ lhs.w0 = lhs.w3
+ lhs.w1 = 0
+ lhs.w2 = 0
+ lhs.w3 = 0
+ } else if rhs < 4 &* word {
+ let left = rhs &- (3 &* word)
+ lhs.w0 = lhs.w3 &<< left
+ lhs.w1 = 0
+ lhs.w2 = 0
+ lhs.w3 = 0
+ } else if rhs == 4 &* word {
+ lhs.w0 = 0
+ lhs.w1 = 0
+ lhs.w2 = 0
+ lhs.w3 = 0
+ }
+ }
+
+ internal static func &>>= (lhs: inout Self, rhs: Self) {
+ let rhs = Self.applyShiftMask(rhs)
+ let word = Word(Word.bitWidth)
+
+ if rhs == 0 {
+ // Nothing to do here.
+ } else if rhs < 1 &* word {
+ let right = rhs &- (0 &* word)
+ let left = word &- right
+ lhs.w3 = lhs.w3 &>> right
+ lhs.w3 |= lhs.w2 &<< left
+ lhs.w2 = lhs.w2 &>> right
+ lhs.w2 |= lhs.w1 &<< left
+ lhs.w1 = lhs.w1 &>> right
+ lhs.w1 |= lhs.w0 &<< left
+ lhs.w0 = lhs.w0 &>> right
+ } else if rhs == 1 &* word {
+ lhs.w3 = lhs.w2
+ lhs.w2 = lhs.w1
+ lhs.w1 = lhs.w0
+ lhs.w0 = 0
+ } else if rhs < 2 &* word {
+ let right = rhs &- (1 &* word)
+ let left = word &- right
+ lhs.w3 = lhs.w2 &>> right
+ lhs.w3 |= lhs.w1 &<< left
+ lhs.w2 = lhs.w1 &>> right
+ lhs.w2 |= lhs.w0 &<< left
+ lhs.w1 = lhs.w0 &>> right
+ lhs.w0 = 0
+ } else if rhs == 2 &* word {
+ lhs.w3 = lhs.w1
+ lhs.w2 = lhs.w0
+ lhs.w1 = 0
+ lhs.w0 = 0
+ } else if rhs < 3 &* word {
+ let right = rhs &- (2 &* word)
+ let left = word &- right
+ lhs.w3 = lhs.w1 &>> right
+ lhs.w3 |= lhs.w0 &<< left
+ lhs.w2 = lhs.w0 &>> right
+ lhs.w1 = 0
+ lhs.w0 = 0
+ } else if rhs == 3 &* word {
+ lhs.w3 = lhs.w0
+ lhs.w2 = 0
+ lhs.w1 = 0
+ lhs.w0 = 0
+ } else if rhs < 4 &* word {
+ let right = rhs &- (3 &* word)
+ lhs.w3 = lhs.w0 &>> right
+ lhs.w2 = 0
+ lhs.w1 = 0
+ lhs.w0 = 0
+ } else if rhs == 4 &* word {
+ lhs.w3 = 0
+ lhs.w2 = 0
+ lhs.w1 = 0
+ lhs.w0 = 0
+ }
+ }
+
+ /// Calculates the result of shifting a value’s binary representation the
+ /// specified number of digits in direction, MASKING THE SHIFT AMOUNT TO
+ /// THE TYPE’S BIT WIDTH, and stores the result in the left-hand-side variable.
+ private static func applyShiftMask(_ n: Self) -> Word {
+ let mask = Word(truncatingIfNeeded: Self.bitWidth &- 1)
+ return n.w3 & mask
+ }
+
+ // MARK: - Equal, compare
+
+ internal static func == (lhs: Self, rhs: Self) -> Bool {
+ return lhs.w0 == rhs.w0 && lhs.w1 == rhs.w1 && lhs.w2 == rhs.w2 && lhs.w3 == rhs.w3
+ }
+
+ internal static func < (lhs: Self, rhs: Self) -> Bool {
+ if lhs.w0 < rhs.w0 { return true }
+
+ if lhs.w0 != rhs.w0 { return false }
+ if lhs.w1 < rhs.w1 { return true }
+
+ if lhs.w1 != rhs.w1 { return false }
+ if lhs.w2 < rhs.w2 { return true }
+
+ if lhs.w2 != rhs.w2 { return false }
+ return lhs.w3 < rhs.w3
+ }
+
+ // MARK: - Words
+
+ internal struct Words: RandomAccessCollection {
+ internal typealias Element = UInt
+ internal typealias Index = Int
+
+ internal var count: Int { UInt256.bitWidth / UInt.bitWidth }
+ internal var startIndex: Index { 0 }
+ internal var endIndex: Index { count }
+
+ internal var value: UInt256
+
+ fileprivate init(_ value: UInt256) {
+ self.value = value
+ }
+
+ internal subscript(position: Index) -> UInt {
+ precondition(
+ 0 <= position && position < self.endIndex,
+ "Word index out of range"
+ )
+
+ let shift = position * UInt.bitWidth
+ let shifted = self.value &>> shift
+ return UInt(truncatingIfNeeded: shifted.w3)
+ }
+
+ internal func index(after i: Index) -> Index { i + 1 }
+ internal func index(before i: Index) -> Index { i - 1 }
+ }
+}
+
+// MARK: - Div helper - UInt384
+
+/// Unsigned Int that is used during division.
+private struct UInt384 {
+
+ fileprivate typealias Word = UInt128
+
+ fileprivate let w0: Word
+ fileprivate let w1: Word
+ fileprivate let w2: Word
+
+ fileprivate init(_ w0: Word, _ wide: UInt256) {
+ self.w0 = w0
+ self.w1 = Word(wide.w0, wide.w1)
+ self.w2 = Word(wide.w2, wide.w3)
+ }
+
+ fileprivate init(_ w0: Word, _ w1: Word, _ w2: Word) {
+ self.w0 = w0
+ self.w1 = w1
+ self.w2 = w2
+ }
+
+ fileprivate static func + (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.addingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ fileprivate static func += (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.addingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ fileprivate func addingReportingOverflow(_ rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ let w2 = self.w2.addingReportingOverflow(rhs.w2)
+ let carry2: Word = w2.overflow ? 1 : 0
+
+ let partial1 = self.w1.addingReportingOverflow(rhs.w1)
+ let w1 = partial1.partialValue.addingReportingOverflow(carry2)
+ let carry1: Word = (partial1.overflow ? 1 : 0) + (w1.overflow ? 1 : 0)
+
+ let partial0 = self.w0.addingReportingOverflow(rhs.w0)
+ let w0 = partial0.partialValue.addingReportingOverflow(carry1)
+ let carry0: Word = (partial0.overflow ? 1 : 0) + (w0.overflow ? 1 : 0)
+
+ let result = Self(w0.partialValue, w1.partialValue, w2.partialValue)
+ let overflow = carry0 != 0
+ return (result, overflow)
+ }
+
+ fileprivate static func - (lhs: Self, rhs: Self) -> Self {
+ let (result, overflow) = lhs.subtractingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ return result
+ }
+
+ fileprivate static func -= (lhs: inout Self, rhs: Self) {
+ let (result, overflow) = lhs.subtractingReportingOverflow(rhs)
+ precondition(!overflow, "arithmetic overflow")
+ lhs = result
+ }
+
+ fileprivate func subtractingReportingOverflow(_ rhs: Self) -> (partialValue: Self, overflow: Bool) {
+ let w2 = self.w2.subtractingReportingOverflow(rhs.w2)
+ let borrow2: Word = w2.overflow ? 1 : 0
+
+ let partial1 = self.w1.subtractingReportingOverflow(rhs.w1)
+ let w1 = partial1.partialValue.subtractingReportingOverflow(borrow2)
+ let borrow1: Word = (partial1.overflow ? 1 : 0) + (w1.overflow ? 1 : 0)
+
+ let partial0 = self.w0.subtractingReportingOverflow(rhs.w0)
+ let w0 = partial0.partialValue.subtractingReportingOverflow(borrow1)
+ let borrow0: Word = (partial0.overflow ? 1 : 0) + (w0.overflow ? 1 : 0)
+
+ let result = Self(w0.partialValue, w1.partialValue, w2.partialValue)
+ let overflow = borrow0 != 0
+ return (result, overflow)
+ }
+
+ fileprivate static func < (lhs: Self, rhs: Self) -> Bool {
+ if lhs.w0 < rhs.w0 { return true }
+
+ if lhs.w0 != rhs.w0 { return false }
+ if lhs.w1 < rhs.w1 { return true }
+
+ if lhs.w1 != rhs.w1 { return false }
+ return lhs.w2 < rhs.w2
+ }
+}
diff --git a/Sources/Decimal/Helpers/BinaryIntegerDecimal.swift b/Sources/Decimal/Helpers/BinaryIntegerDecimal.swift
new file mode 100644
index 0000000..61a31ea
--- /dev/null
+++ b/Sources/Decimal/Helpers/BinaryIntegerDecimal.swift
@@ -0,0 +1,98 @@
+// Swift compiler complains about the 'Magnitude' requirement,
+// but it will fail to compile if we remove it…
+internal protocol BinaryIntegerDecimal: FixedWidthInteger, UnsignedInteger where Magnitude == Self {
+ /// `⌊√self⌋`
+ func squareRoot() -> Self
+}
+
+extension BinaryIntegerDecimal {
+ internal var isOdd: Bool {
+ return (self & 1) == 1
+ }
+}
+
+extension UInt32: BinaryIntegerDecimal {
+ internal func squareRoot() -> Self {
+ // All 'UInt32' all representable in 'Double'.
+ // Though we may pollute the flags with out 'inexactness'. Oh well…
+ var d = Double(self)
+ d.formSquareRoot()
+ let result = Self(d)
+ validateSquareRoot(self, root: result)
+ return result
+ }
+}
+
+extension UInt64: BinaryIntegerDecimal {
+ internal func squareRoot() -> Self {
+ // We may pollute the flags with out 'inexactness'. Oh well…
+ var d = Double(self)
+ d.formSquareRoot()
+ var result = Self(d)
+
+ // Apply correction as we can be off by 1 in either direction.
+ let (square, overflow) = result.multipliedReportingOverflow(by: result)
+
+ if overflow || square > self {
+ result -= 1
+ } else {
+ let plus1 = result + 1
+ let (square, overflow) = plus1.multipliedReportingOverflow(by: plus1)
+
+ if !overflow && square <= self {
+ result = plus1
+ }
+ }
+
+ validateSquareRoot(self, root: result)
+ return result
+ }
+}
+
+extension UInt128: BinaryIntegerDecimal {
+ internal func squareRoot() -> Self {
+ return newtonSquareRoot(self)
+ }
+}
+
+extension UInt256: BinaryIntegerDecimal {
+ internal func squareRoot() -> Self {
+ return newtonSquareRoot(self)
+ }
+}
+
+/// https://en.wikipedia.org/wiki/Integer_square_root#Algorithm_using_Newton's_method
+/// https://stackoverflow.com/a/63457507
+/// https://codereview.stackexchange.com/a/199805
+/// https://www.codeproject.com/Articles/5321399/NewtonPlus-A-Fast-Big-Number-Square-Root-Function
+private func newtonSquareRoot(_ n: T) -> T {
+ if n <= (1 as T) {
+ return n
+ }
+
+ // Closer estimate from the Wikipedia 'Numerical example' section.
+ let l2 = log2(nonZero: n)
+ let exponent = (l2 / 2) + 1
+ var x0: T = 1 << exponent
+ var x1: T = (x0 + n / x0) >> 1 // Divide by 2
+
+ while x1 < x0 {
+ x0 = x1
+ x1 = (x0 + n / x0) >> 1 // Divide by 2
+ }
+
+ validateSquareRoot(n, root: x0)
+ return x0
+}
+
+/// Check if `root` is really the square root of `n`.
+private func validateSquareRoot(_ n: T, root: T) {
+#if DEBUG
+ let square = root * root
+ assert(square <= n, "√\(n) = \(root), square: \(square)")
+
+ let root1 = root + 1
+ let (square1, overflow1) = root1.multipliedReportingOverflow(by: root1)
+ assert(overflow1 || square1 > n, "√\(n) =? \(root1), square1: \(square1)")
+#endif
+}
diff --git a/Sources/Decimal/Helpers/DoubleWidthBinaryIntegerDecimal.swift b/Sources/Decimal/Helpers/DoubleWidthBinaryIntegerDecimal.swift
new file mode 100644
index 0000000..6dad929
--- /dev/null
+++ b/Sources/Decimal/Helpers/DoubleWidthBinaryIntegerDecimal.swift
@@ -0,0 +1,86 @@
+// MARK: - DoubleWidth
+
+/// Two times wider than a normal BID. Much wow!
+internal protocol DoubleWidthBinaryIntegerDecimal: BinaryIntegerDecimal {
+
+ /// We are double width of this BID.
+ ///
+ /// It should be marked with `BinaryIntegerDecimal` requirement, but then the
+ /// compiler would complain about the duplicate annotation in `DecimalMixin.BID`.
+ associatedtype Half
+
+ var high: Half { get }
+ var low: Half { get }
+
+ init(high: Half, low: Half)
+
+ static func * (lhs: Self, rhs: Half) -> Self
+ func multipliedReportingOverflow(by rhs: Half) -> (partialValue: Self, overflow: Bool)
+ func quotientAndRemainder(dividingBy rhs: Half) -> (quotient: Self, remainder: Half)
+}
+
+// MARK: - Decimal32
+
+extension UInt64: DoubleWidthBinaryIntegerDecimal {
+
+ internal typealias Half = UInt32
+
+ internal var high: Half { Half(truncatingIfNeeded: self >> Half.bitWidth) }
+ internal var low: Half { Half(truncatingIfNeeded: self) }
+
+ internal init(high: Half, low: Half) {
+ let h = Self(truncatingIfNeeded: high) << Half.bitWidth
+ let l = Self(truncatingIfNeeded: low)
+ self = h | l
+ }
+
+ internal static func * (lhs: Self, rhs: Half) -> Self {
+ let r = Self(truncatingIfNeeded: rhs)
+ return lhs * r
+ }
+
+ internal func multipliedReportingOverflow(
+ by rhs: Half
+ ) -> (partialValue: Self, overflow: Bool) {
+ let r = Self(truncatingIfNeeded: rhs)
+ return self.multipliedReportingOverflow(by: r)
+ }
+
+ internal func quotientAndRemainder(
+ dividingBy rhs: Half
+ ) -> (quotient: Self, remainder: Half) {
+ // We divide by 'rhs', so 'remainder < rhs', which is always representable.
+ let r = Self(truncatingIfNeeded: rhs)
+ let qr = self.quotientAndRemainder(dividingBy: r)
+ let remainder = Half(truncatingIfNeeded: qr.remainder)
+ return (qr.quotient, remainder)
+ }
+}
+
+// MARK: - Decimal64
+
+extension UInt128: DoubleWidthBinaryIntegerDecimal {
+
+ internal typealias Half = UInt64
+
+ internal var high: Word { self.w0 }
+ internal var low: Word { self.w1 }
+
+ internal init(high: Word, low: Word) {
+ self = Self(high, low)
+ }
+}
+
+// MARK: - Decimal128
+
+extension UInt256: DoubleWidthBinaryIntegerDecimal {
+
+ internal typealias Half = UInt128
+
+ internal var high: Half { Half(high: self.w0, low: self.w1) }
+ internal var low: Half { Half(high: self.w2, low: self.w3) }
+
+ internal init(high: Half, low: Half) {
+ self = Self(high.w0, high.w1, low.w0, low.w1)
+ }
+}
diff --git a/Sources/Decimal/Helpers/Globals.swift b/Sources/Decimal/Helpers/Globals.swift
new file mode 100644
index 0000000..f700e65
--- /dev/null
+++ b/Sources/Decimal/Helpers/Globals.swift
@@ -0,0 +1,158 @@
+// swiftlint:disable function_parameter_count
+
+internal func sum(
+ _ n0: T,
+ _ n1: T
+) -> (high: T, low: T) {
+ let (sum, overflow) = n0.addingReportingOverflow(n1)
+ return (overflow ? 1 : 0, sum)
+}
+
+internal func sum(
+ _ n0: T,
+ _ n1: T,
+ _ n2: T
+) -> (high: T, low: T) {
+ let s1 = sum(n0, n1)
+ let s2 = sum(s1.low, n2)
+ return (s1.high &+ s2.high, s2.low)
+}
+
+internal func sum(
+ _ n0: T,
+ _ n1: T,
+ _ n2: T,
+ _ n3: T
+) -> (high: T, low: T) {
+ let s1 = sum(n0, n1)
+ let s2 = sum(n2, n3)
+ let s = sum(s1.low, s2.low)
+ return (s1.high &+ s2.high &+ s.high, s.low)
+}
+
+internal func sum(
+ _ n0: T,
+ _ n1: T,
+ _ n2: T,
+ _ n3: T,
+ _ n4: T
+) -> (high: T, low: T) {
+ let s1 = sum(n0, n1)
+ let s2 = sum(n2, n3, n4)
+ let s = sum(s1.low, s2.low)
+ return (s1.high &+ s2.high &+ s.high, s.low)
+}
+
+internal func sum(
+ _ n0: T,
+ _ n1: T,
+ _ n2: T,
+ _ n3: T,
+ _ n4: T,
+ _ n5: T
+) -> (high: T, low: T) {
+ let s1 = sum(n0, n1, n2)
+ let s2 = sum(n3, n4, n5)
+ let s = sum(s1.low, s2.low)
+ return (s1.high &+ s2.high &+ s.high, s.low)
+}
+
+internal func sum(
+ _ n0: T,
+ _ n1: T,
+ _ n2: T,
+ _ n3: T,
+ _ n4: T,
+ _ n5: T,
+ _ n6: T,
+ _ n7: T
+) -> (high: T, low: T) {
+ let s1 = sum(n0, n1, n2, n3)
+ let s2 = sum(n4, n5, n6, n7)
+ let s = sum(s1.low, s2.low)
+ return (s1.high &+ s2.high &+ s.high, s.low)
+}
+
+/// 1 -> 0; 7 -> 2; 8 -> 3 etc.
+internal func log2(nonZero n: T) -> Int {
+ precondition(n != 0, "Log2(0)")
+ return T.bitWidth - n.leadingZeroBitCount - 1
+}
+
+/// return Swift.max(Swift.min(n, max), min)
+internal func clamp(_ n: Int, min: Int, max: Int) -> Int {
+ if n < min { return min }
+ if n > max { return max }
+ return n
+}
+
+internal func countTrailingZeros(_ n: UInt64) -> Int {
+ // Intel does quite complicated things.
+ // We could do the same (and it will work, I tested it), but…
+ //
+ // 'UInt64' can have at max 20 trailing zeros.
+ // We will do unrolled binary search with divisions.
+ // Yes, divisions are VERY expensive, but we always divide by a constant and
+ // according to 'godbolt' ('-O -gnone') no division will actually be performed.
+ // All of them will be changed to the standard 'shr & mul'.
+
+ if n == 0 {
+ return 0
+ }
+
+ var n = n
+ var result = 0
+
+ let pow10: UInt64 = 10_000_000_000
+ var (q, r) = n.quotientAndRemainder(dividingBy: pow10)
+
+ if r == 0 {
+ result += 10
+ n = q
+ } else {
+ n = r
+ }
+
+ assert(n <= pow10)
+ let pow5: UInt64 = 100_000
+ (q, r) = n.quotientAndRemainder(dividingBy: pow5)
+
+ if r == 0 {
+ result += 5
+ n = q
+ } else {
+ n = r
+ }
+
+ assert(n <= pow5)
+ let pow2: UInt64 = 100
+ (q, r) = n.quotientAndRemainder(dividingBy: pow2)
+
+ if r == 0 {
+ // 100 / 100 = 1 rem 0
+ // 1000 / 100 = 10 rem 0
+ // 12300 / 100 = 123 rem 0
+ result += 2
+ n = q
+
+ // If we have 3 digits then bring it down to 2 digits.
+ if n >= 100 {
+ assert(n < 1000)
+ (q, r) = n.quotientAndRemainder(dividingBy: 10)
+
+ if r != 0 {
+ return result
+ }
+
+ result += 1
+ n = q
+ }
+ } else {
+ n = r
+ }
+
+ assert(n < pow2)
+ result += (n != 0 && n.isMultiple(of: 10)) ? 1 : 0
+
+ return result
+}
diff --git a/Sources/Decimal/RoundingRule.swift b/Sources/Decimal/RoundingRule.swift
new file mode 100644
index 0000000..2c9701f
--- /dev/null
+++ b/Sources/Decimal/RoundingRule.swift
@@ -0,0 +1,35 @@
+/// IEEE-754: 4.3 Rounding-direction attributes
+public enum DecimalFloatingPointRoundingRule: Equatable, CustomStringConvertible {
+
+ /// The floating-point number nearest to the infinitely precise result shall
+ /// be delivered; if the two nearest floating-point numbers bracketing an
+ /// unrepresentable infinitely precise result are equally near, the one with
+ /// an even least significant digit shall be delivered
+ case toNearestOrEven
+ /// The floating-point number nearest to the infinitely precise result shall
+ /// be delivered; if the two nearest floating-point numbers bracketing an
+ /// unrepresentable infinitely precise result are equally near, the one with
+ /// larger magnitude shall be delivered.
+ case toNearestOrAwayFromZero
+ /// The result shall be the format’s floating-point number (possibly +∞)
+ /// closest to and no less than the infinitely precise result
+ case up
+ /// The result shall be the format’s floating-point number (possibly −∞) closest
+ /// to and no greater than the infinitely precise result
+ case down
+ /// The result shall be the format’s floating-point number closest to
+ /// and no greater in magnitude than the infinitely precise result.
+ case towardZero
+
+ // Swift has 'FloatingPointRoundingRule.awayFromZero'; IEEE-754 2008 does not.
+
+ public var description: String {
+ switch self {
+ case .toNearestOrEven: return "toNearestOrEven"
+ case .toNearestOrAwayFromZero: return "toNearestOrAwayFromZero"
+ case .up: return "up"
+ case .down: return "down"
+ case .towardZero: return "towardZero"
+ }
+ }
+}
diff --git a/Sources/Decimal/Status.swift b/Sources/Decimal/Status.swift
new file mode 100644
index 0000000..6b2b49d
--- /dev/null
+++ b/Sources/Decimal/Status.swift
@@ -0,0 +1,107 @@
+/// Flags that describe the result of a decimal floating point operation in
+/// more detail.
+public struct DecimalStatus: Equatable, CustomStringConvertible {
+
+ private typealias Storage = UInt8
+
+ /// IEEE 754 - 7.2 Invalid operation
+ public static let isInvalidOperation = Self(1 << 0)
+ /// IEEE 754 - 7.3 Division by zero
+ public static let isDivisionByZero = Self(1 << 1)
+ /// IEEE 754 - 7.4 Overflow
+ public static let isOverflow = Self(1 << 2)
+ /// IEEE 754 - 7.5 Underflow
+ public static let isUnderflow = Self(1 << 3)
+ /// IEEE 754 - 7.6 Inexact
+ public static let isInexact = Self(1 << 4)
+ /// Binary floating point value is subnormal.
+ ///
+ /// This is only relevant during binary ⇄ decimal floating point conversions.
+ /// It should NOT be used in most of the situations.
+ public static let isBinaryFloatingPointSubnormal = Self(1 << 5)
+
+ /// `isUnderflow | isInexact`
+ internal static let isUnderflowInexact = Self.isUnderflow | Self.isInexact
+ /// `isOverflow | isInexact`
+ internal static let isOverflowInexact = Self.isOverflow | Self.isInexact
+
+ public var isInvalidOperation: Bool { self.isSet(.isInvalidOperation) }
+ public var isDivisionByZero: Bool { self.isSet(.isDivisionByZero) }
+ public var isOverflow: Bool { self.isSet(.isOverflow) }
+ public var isUnderflow: Bool { self.isSet(.isUnderflow) }
+ public var isInexact: Bool { self.isSet(.isInexact) }
+ public var isBinaryFloatingPointSubnormal: Bool { self.isSet(.isBinaryFloatingPointSubnormal) }
+
+ /// No flags raised?
+ public var isEmpty: Bool { self.value == 0 }
+
+ public var description: String {
+ var result = "DecimalStatus("
+
+ func append(_ flag: Self, _ s: String) {
+ if self.isSet(flag) {
+ if !result.hasSuffix("(") {
+ result.append(", ")
+ }
+
+ result.append(s)
+ }
+ }
+
+ append(.isInvalidOperation, "isInvalidOperation")
+ append(.isDivisionByZero, "isDivisionByZero")
+ append(.isOverflow, "isOverflow")
+ append(.isUnderflow, "isUnderflow")
+ append(.isInexact, "isInexact")
+ append(.isBinaryFloatingPointSubnormal, "isBinaryFloatingPointSubnormal")
+
+ result.append(")")
+ return result
+ }
+
+ private var value: Storage
+
+ public init() {
+ self.value = 0
+ }
+
+ private init(_ value: Storage) {
+ self.value = value
+ }
+
+ /// Are all of the given flags raised?
+ public func isSet(_ status: Self) -> Bool {
+ let mask = status.value
+ return (self.value & mask) == mask
+ }
+
+ /// Raise the given flags.
+ public mutating func set(_ status: Self) {
+ let mask = status.value
+ self.value = self.value | mask
+ }
+
+ /// Remove the given flags.
+ public mutating func clear(_ status: Self) {
+ // Be VERY careful with this one! If a method was called with flag raised
+ // then you are not allowed to clear it.
+ let mask = ~status.value
+ self.value = self.value & mask
+ }
+
+ /// Remove all flags.
+ public mutating func clearAll() {
+ self.value = 0
+ }
+
+ /// Returns a new status with the elements of both this and the given status.
+ public static func | (lhs: Self, rhs: Self) -> Self {
+ return Self(lhs.value | rhs.value)
+ }
+
+ /// Returns a new status with flags that are common to both this and the given
+ /// status.
+ public static func & (lhs: Self, rhs: Self) -> Self {
+ return Self(lhs.value & rhs.value)
+ }
+}
diff --git a/Sources/Decimal/Tables/Tables+DecimalDigitCount.swift b/Sources/Decimal/Tables/Tables+DecimalDigitCount.swift
new file mode 100644
index 0000000..8504a05
--- /dev/null
+++ b/Sources/Decimal/Tables/Tables+DecimalDigitCount.swift
@@ -0,0 +1,382 @@
+// swiftlint:disable line_length
+
+extension Tables {
+
+ internal static let zeroDecimalDigitCount = 1
+
+ /// Number of decimal digits in the provided value.
+ ///
+ /// - 0 -> 1
+ /// - 1 -> 1
+ /// - 2 -> 1
+ /// - 10 -> 2
+ internal static func getDecimalDigitCount(_ n: T) -> Int {
+ if n == 0 {
+ return Self.zeroDecimalDigitCount
+ }
+
+ let index = log2(nonZero: n)
+
+ if index < data64.count {
+ let d = data64[index]
+ return d.digitCount + (n < d.threshold ? 0 : 1)
+ }
+
+ let index128 = index - data64.count
+
+ if index128 < data128.count {
+ let d = data128[index128]
+ return d.digitCount + (n < d.threshold ? 0 : 1)
+ }
+
+ let index256 = index128 - data128.count
+ let d = data256[index256]
+ return d.digitCount + (n < d.threshold ? 0 : 1)
+ }
+}
+
+// Use the following code to re-generate:
+//
+// var pow2 = UInt256(0, 0, 0, 1)
+// var pow10 = UInt256(0, 0, 0, 10)
+//
+// while true {
+// let digitCount = pow10.description.count - 1
+//
+// // 'pow2.isZero' is a check for overflow.
+// while pow2 < pow10 && !pow2.isZero {
+// let nextPow2 = pow2 &<< 1
+// defer { pow2 = nextPow2 }
+//
+// let width: Int
+// let pow10String: String
+//
+// if pow10.w0 == 0 && pow10.w1 == 0 && pow10.w2 == 0 {
+// width = 64
+// pow10String = hex(pow10.w3)
+// } else if pow10.w0 == 0 && pow10.w1 == 0 {
+// width = 128
+// pow10String = "UInt128(\(hex(pow10.w2)), \(hex(pow10.w3)))"
+// } else {
+// width = 256
+// pow10String = "UInt256(\(hex(pow10.w0)), \(hex(pow10.w1)), \(hex(pow10.w2)), \(hex(pow10.w3)))"
+// }
+//
+// let log2 = UInt256.bitWidth - pow2.leadingZeroBitCount - 1
+//
+// if nextPow2 < pow10 {
+// print(" Count\(width)(\(digitCount), \(pow10String)), // \(log2)")
+// } else {
+// // Somewhere in our exponent the digit count changes
+// print(" Count\(width)(\(digitCount), \(pow10String)), // \(log2), \(pow2)..<\(nextPow2), \(digitCount) or \(digitCount+1) digits")
+// }
+// }
+//
+// let mul = pow10.multipliedReportingOverflow(by: 10 as UInt64)
+// if mul.overflow { print("UInt256 overflow"); break }
+// pow10 = mul.partialValue
+// }
+//
+// func hex(_ n: UInt64) -> String {
+// let s = String(n, radix: 16)
+// let pad = String(repeating: "0", count: 16 - s.count)
+// return "0x" + pad + s
+// }
+
+// Add 1 digit if value is above `threshold`.
+private struct Count64 {
+ fileprivate let digitCount: Int
+ fileprivate let threshold: UInt64
+
+ fileprivate init(_ digitCount: Int, _ threshold: UInt64) {
+ self.digitCount = digitCount
+ self.threshold = threshold
+ }
+}
+
+// Add 1 digit if value is above `threshold`.
+private struct Count128 {
+ fileprivate let digitCount: Int
+ fileprivate let threshold: UInt128
+
+ fileprivate init(_ digitCount: Int, _ threshold: UInt128) {
+ self.digitCount = digitCount
+ self.threshold = threshold
+ }
+}
+
+// Add 1 digit if value is above `threshold`.
+private struct Count256 {
+ fileprivate let digitCount: Int
+ fileprivate let threshold: UInt256
+
+ fileprivate init(_ digitCount: Int, _ threshold: UInt256) {
+ self.digitCount = digitCount
+ self.threshold = threshold
+ }
+}
+
+private let data64: [Count64] = [
+ Count64(1, 0x000000000000000a), // 0
+ Count64(1, 0x000000000000000a), // 1
+ Count64(1, 0x000000000000000a), // 2
+ Count64(1, 0x000000000000000a), // 3, 8..<16, 1 or 2 digits
+ Count64(2, 0x0000000000000064), // 4
+ Count64(2, 0x0000000000000064), // 5
+ Count64(2, 0x0000000000000064), // 6, 64..<128, 2 or 3 digits
+ Count64(3, 0x00000000000003e8), // 7
+ Count64(3, 0x00000000000003e8), // 8
+ Count64(3, 0x00000000000003e8), // 9, 512..<1024, 3 or 4 digits
+ Count64(4, 0x0000000000002710), // 10
+ Count64(4, 0x0000000000002710), // 11
+ Count64(4, 0x0000000000002710), // 12
+ Count64(4, 0x0000000000002710), // 13, 8192..<16384, 4 or 5 digits
+ Count64(5, 0x00000000000186a0), // 14
+ Count64(5, 0x00000000000186a0), // 15
+ Count64(5, 0x00000000000186a0), // 16, 65536..<131072, 5 or 6 digits
+ Count64(6, 0x00000000000f4240), // 17
+ Count64(6, 0x00000000000f4240), // 18
+ Count64(6, 0x00000000000f4240), // 19, 524288..<1048576, 6 or 7 digits
+ Count64(7, 0x0000000000989680), // 20
+ Count64(7, 0x0000000000989680), // 21
+ Count64(7, 0x0000000000989680), // 22
+ Count64(7, 0x0000000000989680), // 23, 8388608..<16777216, 7 or 8 digits
+ Count64(8, 0x0000000005f5e100), // 24
+ Count64(8, 0x0000000005f5e100), // 25
+ Count64(8, 0x0000000005f5e100), // 26, 67108864..<134217728, 8 or 9 digits
+ Count64(9, 0x000000003b9aca00), // 27
+ Count64(9, 0x000000003b9aca00), // 28
+ Count64(9, 0x000000003b9aca00), // 29, 536870912..<1073741824, 9 or 10 digits
+ Count64(10, 0x00000002540be400), // 30
+ Count64(10, 0x00000002540be400), // 31
+ Count64(10, 0x00000002540be400), // 32
+ Count64(10, 0x00000002540be400), // 33, 8589934592..<17179869184, 10 or 11 digits
+ Count64(11, 0x000000174876e800), // 34
+ Count64(11, 0x000000174876e800), // 35
+ Count64(11, 0x000000174876e800), // 36, 68719476736..<137438953472, 11 or 12 digits
+ Count64(12, 0x000000e8d4a51000), // 37
+ Count64(12, 0x000000e8d4a51000), // 38
+ Count64(12, 0x000000e8d4a51000), // 39, 549755813888..<1099511627776, 12 or 13 digits
+ Count64(13, 0x000009184e72a000), // 40
+ Count64(13, 0x000009184e72a000), // 41
+ Count64(13, 0x000009184e72a000), // 42
+ Count64(13, 0x000009184e72a000), // 43, 8796093022208..<17592186044416, 13 or 14 digits
+ Count64(14, 0x00005af3107a4000), // 44
+ Count64(14, 0x00005af3107a4000), // 45
+ Count64(14, 0x00005af3107a4000), // 46, 70368744177664..<140737488355328, 14 or 15 digits
+ Count64(15, 0x00038d7ea4c68000), // 47
+ Count64(15, 0x00038d7ea4c68000), // 48
+ Count64(15, 0x00038d7ea4c68000), // 49, 562949953421312..<1125899906842624, 15 or 16 digits
+ Count64(16, 0x002386f26fc10000), // 50
+ Count64(16, 0x002386f26fc10000), // 51
+ Count64(16, 0x002386f26fc10000), // 52
+ Count64(16, 0x002386f26fc10000), // 53, 9007199254740992..<18014398509481984, 16 or 17 digits
+ Count64(17, 0x016345785d8a0000), // 54
+ Count64(17, 0x016345785d8a0000), // 55
+ Count64(17, 0x016345785d8a0000), // 56, 72057594037927936..<144115188075855872, 17 or 18 digits
+ Count64(18, 0x0de0b6b3a7640000), // 57
+ Count64(18, 0x0de0b6b3a7640000), // 58
+ Count64(18, 0x0de0b6b3a7640000), // 59, 576460752303423488..<1152921504606846976, 18 or 19 digits
+ Count64(19, 0x8ac7230489e80000), // 60
+ Count64(19, 0x8ac7230489e80000), // 61
+ Count64(19, 0x8ac7230489e80000), // 62
+ Count64(19, 0x8ac7230489e80000), // 63, 9223372036854775808..<18446744073709551616, 19 or 20 digits
+]
+
+private let data128: [Count128] = [
+ Count128(20, UInt128(0x0000000000000005, 0x6bc75e2d63100000)), // 64
+ Count128(20, UInt128(0x0000000000000005, 0x6bc75e2d63100000)), // 65
+ Count128(20, UInt128(0x0000000000000005, 0x6bc75e2d63100000)), // 66, 73786976294838206464..<147573952589676412928, 20 or 21 digits
+ Count128(21, UInt128(0x0000000000000036, 0x35c9adc5dea00000)), // 67
+ Count128(21, UInt128(0x0000000000000036, 0x35c9adc5dea00000)), // 68
+ Count128(21, UInt128(0x0000000000000036, 0x35c9adc5dea00000)), // 69, 590295810358705651712..<1180591620717411303424, 21 or 22 digits
+ Count128(22, UInt128(0x000000000000021e, 0x19e0c9bab2400000)), // 70
+ Count128(22, UInt128(0x000000000000021e, 0x19e0c9bab2400000)), // 71
+ Count128(22, UInt128(0x000000000000021e, 0x19e0c9bab2400000)), // 72
+ Count128(22, UInt128(0x000000000000021e, 0x19e0c9bab2400000)), // 73, 9444732965739290427392..<18889465931478580854784, 22 or 23 digits
+ Count128(23, UInt128(0x000000000000152d, 0x02c7e14af6800000)), // 74
+ Count128(23, UInt128(0x000000000000152d, 0x02c7e14af6800000)), // 75
+ Count128(23, UInt128(0x000000000000152d, 0x02c7e14af6800000)), // 76, 75557863725914323419136..<151115727451828646838272, 23 or 24 digits
+ Count128(24, UInt128(0x000000000000d3c2, 0x1bcecceda1000000)), // 77
+ Count128(24, UInt128(0x000000000000d3c2, 0x1bcecceda1000000)), // 78
+ Count128(24, UInt128(0x000000000000d3c2, 0x1bcecceda1000000)), // 79, 604462909807314587353088..<1208925819614629174706176, 24 or 25 digits
+ Count128(25, UInt128(0x0000000000084595, 0x161401484a000000)), // 80
+ Count128(25, UInt128(0x0000000000084595, 0x161401484a000000)), // 81
+ Count128(25, UInt128(0x0000000000084595, 0x161401484a000000)), // 82
+ Count128(25, UInt128(0x0000000000084595, 0x161401484a000000)), // 83, 9671406556917033397649408..<19342813113834066795298816, 25 or 26 digits
+ Count128(26, UInt128(0x000000000052b7d2, 0xdcc80cd2e4000000)), // 84
+ Count128(26, UInt128(0x000000000052b7d2, 0xdcc80cd2e4000000)), // 85
+ Count128(26, UInt128(0x000000000052b7d2, 0xdcc80cd2e4000000)), // 86, 77371252455336267181195264..<154742504910672534362390528, 26 or 27 digits
+ Count128(27, UInt128(0x00000000033b2e3c, 0x9fd0803ce8000000)), // 87
+ Count128(27, UInt128(0x00000000033b2e3c, 0x9fd0803ce8000000)), // 88
+ Count128(27, UInt128(0x00000000033b2e3c, 0x9fd0803ce8000000)), // 89, 618970019642690137449562112..<1237940039285380274899124224, 27 or 28 digits
+ Count128(28, UInt128(0x00000000204fce5e, 0x3e25026110000000)), // 90
+ Count128(28, UInt128(0x00000000204fce5e, 0x3e25026110000000)), // 91
+ Count128(28, UInt128(0x00000000204fce5e, 0x3e25026110000000)), // 92
+ Count128(28, UInt128(0x00000000204fce5e, 0x3e25026110000000)), // 93, 9903520314283042199192993792..<19807040628566084398385987584, 28 or 29 digits
+ Count128(29, UInt128(0x00000001431e0fae, 0x6d7217caa0000000)), // 94
+ Count128(29, UInt128(0x00000001431e0fae, 0x6d7217caa0000000)), // 95
+ Count128(29, UInt128(0x00000001431e0fae, 0x6d7217caa0000000)), // 96, 79228162514264337593543950336..<158456325028528675187087900672, 29 or 30 digits
+ Count128(30, UInt128(0x0000000c9f2c9cd0, 0x4674edea40000000)), // 97
+ Count128(30, UInt128(0x0000000c9f2c9cd0, 0x4674edea40000000)), // 98
+ Count128(30, UInt128(0x0000000c9f2c9cd0, 0x4674edea40000000)), // 99, 633825300114114700748351602688..<1267650600228229401496703205376, 30 or 31 digits
+ Count128(31, UInt128(0x0000007e37be2022, 0xc0914b2680000000)), // 100
+ Count128(31, UInt128(0x0000007e37be2022, 0xc0914b2680000000)), // 101
+ Count128(31, UInt128(0x0000007e37be2022, 0xc0914b2680000000)), // 102, 5070602400912917605986812821504..<10141204801825835211973625643008, 31 or 32 digits
+ Count128(32, UInt128(0x000004ee2d6d415b, 0x85acef8100000000)), // 103
+ Count128(32, UInt128(0x000004ee2d6d415b, 0x85acef8100000000)), // 104
+ Count128(32, UInt128(0x000004ee2d6d415b, 0x85acef8100000000)), // 105
+ Count128(32, UInt128(0x000004ee2d6d415b, 0x85acef8100000000)), // 106, 81129638414606681695789005144064..<162259276829213363391578010288128, 32 or 33 digits
+ Count128(33, UInt128(0x0000314dc6448d93, 0x38c15b0a00000000)), // 107
+ Count128(33, UInt128(0x0000314dc6448d93, 0x38c15b0a00000000)), // 108
+ Count128(33, UInt128(0x0000314dc6448d93, 0x38c15b0a00000000)), // 109, 649037107316853453566312041152512..<1298074214633706907132624082305024, 33 or 34 digits
+ Count128(34, UInt128(0x0001ed09bead87c0, 0x378d8e6400000000)), // 110
+ Count128(34, UInt128(0x0001ed09bead87c0, 0x378d8e6400000000)), // 111
+ Count128(34, UInt128(0x0001ed09bead87c0, 0x378d8e6400000000)), // 112, 5192296858534827628530496329220096..<10384593717069655257060992658440192, 34 or 35 digits
+ Count128(35, UInt128(0x0013426172c74d82, 0x2b878fe800000000)), // 113
+ Count128(35, UInt128(0x0013426172c74d82, 0x2b878fe800000000)), // 114
+ Count128(35, UInt128(0x0013426172c74d82, 0x2b878fe800000000)), // 115
+ Count128(35, UInt128(0x0013426172c74d82, 0x2b878fe800000000)), // 116, 83076749736557242056487941267521536..<166153499473114484112975882535043072, 35 or 36 digits
+ Count128(36, UInt128(0x00c097ce7bc90715, 0xb34b9f1000000000)), // 117
+ Count128(36, UInt128(0x00c097ce7bc90715, 0xb34b9f1000000000)), // 118
+ Count128(36, UInt128(0x00c097ce7bc90715, 0xb34b9f1000000000)), // 119, 664613997892457936451903530140172288..<1329227995784915872903807060280344576, 36 or 37 digits
+ Count128(37, UInt128(0x0785ee10d5da46d9, 0x00f436a000000000)), // 120
+ Count128(37, UInt128(0x0785ee10d5da46d9, 0x00f436a000000000)), // 121
+ Count128(37, UInt128(0x0785ee10d5da46d9, 0x00f436a000000000)), // 122, 5316911983139663491615228241121378304..<10633823966279326983230456482242756608, 37 or 38 digits
+ Count128(38, UInt128(0x4b3b4ca85a86c47a, 0x098a224000000000)), // 123
+ Count128(38, UInt128(0x4b3b4ca85a86c47a, 0x098a224000000000)), // 124
+ Count128(38, UInt128(0x4b3b4ca85a86c47a, 0x098a224000000000)), // 125
+ Count128(38, UInt128(0x4b3b4ca85a86c47a, 0x098a224000000000)), // 126, 85070591730234615865843651857942052864..<170141183460469231731687303715884105728, 38 or 39 digits
+]
+
+private let data256: [Count256] = [
+ Count256(39, UInt256(0x0000000000000000, 0x0000000000000002, 0xf050fe938943acc4, 0x5f65568000000000)), // 127
+ Count256(39, UInt256(0x0000000000000000, 0x0000000000000002, 0xf050fe938943acc4, 0x5f65568000000000)), // 128
+ Count256(39, UInt256(0x0000000000000000, 0x0000000000000002, 0xf050fe938943acc4, 0x5f65568000000000)), // 129, 680564733841876926926749214863536422912..<1361129467683753853853498429727072845824, 39 or 40 digits
+ Count256(40, UInt256(0x0000000000000000, 0x000000000000001d, 0x6329f1c35ca4bfab, 0xb9f5610000000000)), // 130
+ Count256(40, UInt256(0x0000000000000000, 0x000000000000001d, 0x6329f1c35ca4bfab, 0xb9f5610000000000)), // 131
+ Count256(40, UInt256(0x0000000000000000, 0x000000000000001d, 0x6329f1c35ca4bfab, 0xb9f5610000000000)), // 132, 5444517870735015415413993718908291383296..<10889035741470030830827987437816582766592, 40 or 41 digits
+ Count256(41, UInt256(0x0000000000000000, 0x0000000000000125, 0xdfa371a19e6f7cb5, 0x4395ca0000000000)), // 133
+ Count256(41, UInt256(0x0000000000000000, 0x0000000000000125, 0xdfa371a19e6f7cb5, 0x4395ca0000000000)), // 134
+ Count256(41, UInt256(0x0000000000000000, 0x0000000000000125, 0xdfa371a19e6f7cb5, 0x4395ca0000000000)), // 135
+ Count256(41, UInt256(0x0000000000000000, 0x0000000000000125, 0xdfa371a19e6f7cb5, 0x4395ca0000000000)), // 136, 87112285931760246646623899502532662132736..<174224571863520493293247799005065324265472, 41 or 42 digits
+ Count256(42, UInt256(0x0000000000000000, 0x0000000000000b7a, 0xbc627050305adf14, 0xa3d9e40000000000)), // 137
+ Count256(42, UInt256(0x0000000000000000, 0x0000000000000b7a, 0xbc627050305adf14, 0xa3d9e40000000000)), // 138
+ Count256(42, UInt256(0x0000000000000000, 0x0000000000000b7a, 0xbc627050305adf14, 0xa3d9e40000000000)), // 139, 696898287454081973172991196020261297061888..<1393796574908163946345982392040522594123776, 42 or 43 digits
+ Count256(43, UInt256(0x0000000000000000, 0x00000000000072cb, 0x5bd86321e38cb6ce, 0x6682e80000000000)), // 140
+ Count256(43, UInt256(0x0000000000000000, 0x00000000000072cb, 0x5bd86321e38cb6ce, 0x6682e80000000000)), // 141
+ Count256(43, UInt256(0x0000000000000000, 0x00000000000072cb, 0x5bd86321e38cb6ce, 0x6682e80000000000)), // 142, 5575186299632655785383929568162090376495104..<11150372599265311570767859136324180752990208, 43 or 44 digits
+ Count256(44, UInt256(0x0000000000000000, 0x0000000000047bf1, 0x9673df52e37f2410, 0x011d100000000000)), // 143
+ Count256(44, UInt256(0x0000000000000000, 0x0000000000047bf1, 0x9673df52e37f2410, 0x011d100000000000)), // 144
+ Count256(44, UInt256(0x0000000000000000, 0x0000000000047bf1, 0x9673df52e37f2410, 0x011d100000000000)), // 145
+ Count256(44, UInt256(0x0000000000000000, 0x0000000000047bf1, 0x9673df52e37f2410, 0x011d100000000000)), // 146, 89202980794122492566142873090593446023921664..<178405961588244985132285746181186892047843328, 44 or 45 digits
+ Count256(45, UInt256(0x0000000000000000, 0x00000000002cd76f, 0xe086b93ce2f768a0, 0x0b22a00000000000)), // 147
+ Count256(45, UInt256(0x0000000000000000, 0x00000000002cd76f, 0xe086b93ce2f768a0, 0x0b22a00000000000)), // 148
+ Count256(45, UInt256(0x0000000000000000, 0x00000000002cd76f, 0xe086b93ce2f768a0, 0x0b22a00000000000)), // 149, 713623846352979940529142984724747568191373312..<1427247692705959881058285969449495136382746624, 45 or 46 digits
+ Count256(46, UInt256(0x0000000000000000, 0x0000000001c06a5e, 0xc5433c60ddaa1640, 0x6f5a400000000000)), // 150
+ Count256(46, UInt256(0x0000000000000000, 0x0000000001c06a5e, 0xc5433c60ddaa1640, 0x6f5a400000000000)), // 151
+ Count256(46, UInt256(0x0000000000000000, 0x0000000001c06a5e, 0xc5433c60ddaa1640, 0x6f5a400000000000)), // 152, 5708990770823839524233143877797980545530986496..<11417981541647679048466287755595961091061972992, 46 or 47 digits
+ Count256(47, UInt256(0x0000000000000000, 0x00000000118427b3, 0xb4a05bc8a8a4de84, 0x5986800000000000)), // 153
+ Count256(47, UInt256(0x0000000000000000, 0x00000000118427b3, 0xb4a05bc8a8a4de84, 0x5986800000000000)), // 154
+ Count256(47, UInt256(0x0000000000000000, 0x00000000118427b3, 0xb4a05bc8a8a4de84, 0x5986800000000000)), // 155
+ Count256(47, UInt256(0x0000000000000000, 0x00000000118427b3, 0xb4a05bc8a8a4de84, 0x5986800000000000)), // 156, 91343852333181432387730302044767688728495783936..<182687704666362864775460604089535377456991567872, 47 or 48 digits
+ Count256(48, UInt256(0x0000000000000000, 0x00000000af298d05, 0x0e4395d69670b12b, 0x7f41000000000000)), // 157
+ Count256(48, UInt256(0x0000000000000000, 0x00000000af298d05, 0x0e4395d69670b12b, 0x7f41000000000000)), // 158
+ Count256(48, UInt256(0x0000000000000000, 0x00000000af298d05, 0x0e4395d69670b12b, 0x7f41000000000000)), // 159, 730750818665451459101842416358141509827966271488..<1461501637330902918203684832716283019655932542976, 48 or 49 digits
+ Count256(49, UInt256(0x0000000000000000, 0x00000006d79f8232, 0x8ea3da61e066ebb2, 0xf88a000000000000)), // 160
+ Count256(49, UInt256(0x0000000000000000, 0x00000006d79f8232, 0x8ea3da61e066ebb2, 0xf88a000000000000)), // 161
+ Count256(49, UInt256(0x0000000000000000, 0x00000006d79f8232, 0x8ea3da61e066ebb2, 0xf88a000000000000)), // 162, 5846006549323611672814739330865132078623730171904..<11692013098647223345629478661730264157247460343808, 49 or 50 digits
+ Count256(50, UInt256(0x0000000000000000, 0x000000446c3b15f9, 0x926687d2c40534fd, 0xb564000000000000)), // 163
+ Count256(50, UInt256(0x0000000000000000, 0x000000446c3b15f9, 0x926687d2c40534fd, 0xb564000000000000)), // 164
+ Count256(50, UInt256(0x0000000000000000, 0x000000446c3b15f9, 0x926687d2c40534fd, 0xb564000000000000)), // 165
+ Count256(50, UInt256(0x0000000000000000, 0x000000446c3b15f9, 0x926687d2c40534fd, 0xb564000000000000)), // 166, 93536104789177786765035829293842113257979682750464..<187072209578355573530071658587684226515959365500928, 50 or 51 digits
+ Count256(51, UInt256(0x0000000000000000, 0x000002ac3a4edbbf, 0xb8014e3ba83411e9, 0x15e8000000000000)), // 167
+ Count256(51, UInt256(0x0000000000000000, 0x000002ac3a4edbbf, 0xb8014e3ba83411e9, 0x15e8000000000000)), // 168
+ Count256(51, UInt256(0x0000000000000000, 0x000002ac3a4edbbf, 0xb8014e3ba83411e9, 0x15e8000000000000)), // 169, 748288838313422294120286634350736906063837462003712..<1496577676626844588240573268701473812127674924007424, 51 or 52 digits
+ Count256(52, UInt256(0x0000000000000000, 0x00001aba4714957d, 0x300d0e549208b31a, 0xdb10000000000000)), // 170
+ Count256(52, UInt256(0x0000000000000000, 0x00001aba4714957d, 0x300d0e549208b31a, 0xdb10000000000000)), // 171
+ Count256(52, UInt256(0x0000000000000000, 0x00001aba4714957d, 0x300d0e549208b31a, 0xdb10000000000000)), // 172, 5986310706507378352962293074805895248510699696029696..<11972621413014756705924586149611790497021399392059392, 52 or 53 digits
+ Count256(53, UInt256(0x0000000000000000, 0x00010b46c6cdd6e3, 0xe0828f4db456ff0c, 0x8ea0000000000000)), // 173
+ Count256(53, UInt256(0x0000000000000000, 0x00010b46c6cdd6e3, 0xe0828f4db456ff0c, 0x8ea0000000000000)), // 174
+ Count256(53, UInt256(0x0000000000000000, 0x00010b46c6cdd6e3, 0xe0828f4db456ff0c, 0x8ea0000000000000)), // 175
+ Count256(53, UInt256(0x0000000000000000, 0x00010b46c6cdd6e3, 0xe0828f4db456ff0c, 0x8ea0000000000000)), // 176, 95780971304118053647396689196894323976171195136475136..<191561942608236107294793378393788647952342390272950272, 53 or 54 digits
+ Count256(54, UInt256(0x0000000000000000, 0x000a70c3c40a64e6, 0xc51999090b65f67d, 0x9240000000000000)), // 177
+ Count256(54, UInt256(0x0000000000000000, 0x000a70c3c40a64e6, 0xc51999090b65f67d, 0x9240000000000000)), // 178
+ Count256(54, UInt256(0x0000000000000000, 0x000a70c3c40a64e6, 0xc51999090b65f67d, 0x9240000000000000)), // 179, 766247770432944429179173513575154591809369561091801088..<1532495540865888858358347027150309183618739122183602176, 54 or 55 digits
+ Count256(55, UInt256(0x0000000000000000, 0x006867a5a867f103, 0xb2fffa5a71fba0e7, 0xb680000000000000)), // 180
+ Count256(55, UInt256(0x0000000000000000, 0x006867a5a867f103, 0xb2fffa5a71fba0e7, 0xb680000000000000)), // 181
+ Count256(55, UInt256(0x0000000000000000, 0x006867a5a867f103, 0xb2fffa5a71fba0e7, 0xb680000000000000)), // 182, 6129982163463555433433388108601236734474956488734408704..<12259964326927110866866776217202473468949912977468817408, 55 or 56 digits
+ Count256(56, UInt256(0x0000000000000000, 0x04140c78940f6a24, 0xfdffc78873d4490d, 0x2100000000000000)), // 183
+ Count256(56, UInt256(0x0000000000000000, 0x04140c78940f6a24, 0xfdffc78873d4490d, 0x2100000000000000)), // 184
+ Count256(56, UInt256(0x0000000000000000, 0x04140c78940f6a24, 0xfdffc78873d4490d, 0x2100000000000000)), // 185
+ Count256(56, UInt256(0x0000000000000000, 0x04140c78940f6a24, 0xfdffc78873d4490d, 0x2100000000000000)), // 186, 98079714615416886934934209737619787751599303819750539264..<196159429230833773869868419475239575503198607639501078528, 56 or 57 digits
+ Count256(57, UInt256(0x0000000000000000, 0x28c87cb5c89a2571, 0xebfdcb54864ada83, 0x4a00000000000000)), // 187
+ Count256(57, UInt256(0x0000000000000000, 0x28c87cb5c89a2571, 0xebfdcb54864ada83, 0x4a00000000000000)), // 188
+ Count256(57, UInt256(0x0000000000000000, 0x28c87cb5c89a2571, 0xebfdcb54864ada83, 0x4a00000000000000)), // 189, 784637716923335095479473677900958302012794430558004314112..<1569275433846670190958947355801916604025588861116008628224, 57 or 58 digits
+ Count256(58, UInt256(0x0000000000000001, 0x97d4df19d6057673, 0x37e9f14d3eec8920, 0xe400000000000000)), // 190
+ Count256(58, UInt256(0x0000000000000001, 0x97d4df19d6057673, 0x37e9f14d3eec8920, 0xe400000000000000)), // 191
+ Count256(58, UInt256(0x0000000000000001, 0x97d4df19d6057673, 0x37e9f14d3eec8920, 0xe400000000000000)), // 192, 6277101735386680763835789423207666416102355444464034512896..<12554203470773361527671578846415332832204710888928069025792, 58 or 59 digits
+ Count256(59, UInt256(0x000000000000000f, 0xee50b7025c36a080, 0x2f236d04753d5b48, 0xe800000000000000)), // 193
+ Count256(59, UInt256(0x000000000000000f, 0xee50b7025c36a080, 0x2f236d04753d5b48, 0xe800000000000000)), // 194
+ Count256(59, UInt256(0x000000000000000f, 0xee50b7025c36a080, 0x2f236d04753d5b48, 0xe800000000000000)), // 195, 50216813883093446110686315385661331328818843555712276103168..<100433627766186892221372630771322662657637687111424552206336, 59 or 60 digits
+ Count256(60, UInt256(0x000000000000009f, 0x4f2726179a224501, 0xd762422c946590d9, 0x1000000000000000)), // 196
+ Count256(60, UInt256(0x000000000000009f, 0x4f2726179a224501, 0xd762422c946590d9, 0x1000000000000000)), // 197
+ Count256(60, UInt256(0x000000000000009f, 0x4f2726179a224501, 0xd762422c946590d9, 0x1000000000000000)), // 198
+ Count256(60, UInt256(0x000000000000009f, 0x4f2726179a224501, 0xd762422c946590d9, 0x1000000000000000)), // 199, 803469022129495137770981046170581301261101496891396417650688..<1606938044258990275541962092341162602522202993782792835301376, 60 or 61 digits
+ Count256(61, UInt256(0x0000000000000639, 0x17877cec0556b212, 0x69d695bdcbf7a87a, 0xa000000000000000)), // 200
+ Count256(61, UInt256(0x0000000000000639, 0x17877cec0556b212, 0x69d695bdcbf7a87a, 0xa000000000000000)), // 201
+ Count256(61, UInt256(0x0000000000000639, 0x17877cec0556b212, 0x69d695bdcbf7a87a, 0xa000000000000000)), // 202, 6427752177035961102167848369364650410088811975131171341205504..<12855504354071922204335696738729300820177623950262342682411008, 61 or 62 digits
+ Count256(62, UInt256(0x0000000000003e3a, 0xeb4ae1383562f4b8, 0x2261d969f7ac94ca, 0x4000000000000000)), // 203
+ Count256(62, UInt256(0x0000000000003e3a, 0xeb4ae1383562f4b8, 0x2261d969f7ac94ca, 0x4000000000000000)), // 204
+ Count256(62, UInt256(0x0000000000003e3a, 0xeb4ae1383562f4b8, 0x2261d969f7ac94ca, 0x4000000000000000)), // 205, 51422017416287688817342786954917203280710495801049370729644032..<102844034832575377634685573909834406561420991602098741459288064, 62 or 63 digits
+ Count256(63, UInt256(0x0000000000026e4d, 0x30eccc3215dd8f31, 0x57d27e23acbdcfe6, 0x8000000000000000)), // 206
+ Count256(63, UInt256(0x0000000000026e4d, 0x30eccc3215dd8f31, 0x57d27e23acbdcfe6, 0x8000000000000000)), // 207
+ Count256(63, UInt256(0x0000000000026e4d, 0x30eccc3215dd8f31, 0x57d27e23acbdcfe6, 0x8000000000000000)), // 208
+ Count256(63, UInt256(0x0000000000026e4d, 0x30eccc3215dd8f31, 0x57d27e23acbdcfe6, 0x8000000000000000)), // 209, 822752278660603021077484591278675252491367932816789931674304512..<1645504557321206042154969182557350504982735865633579863348609024, 63 or 64 digits
+ Count256(64, UInt256(0x0000000000184f03, 0xe93ff9f4daa797ed, 0x6e38ed64bf6a1f01, 0x0000000000000000)), // 210
+ Count256(64, UInt256(0x0000000000184f03, 0xe93ff9f4daa797ed, 0x6e38ed64bf6a1f01, 0x0000000000000000)), // 211
+ Count256(64, UInt256(0x0000000000184f03, 0xe93ff9f4daa797ed, 0x6e38ed64bf6a1f01, 0x0000000000000000)), // 212, 6582018229284824168619876730229402019930943462534319453394436096..<13164036458569648337239753460458804039861886925068638906788872192, 64 or 65 digits
+ Count256(65, UInt256(0x0000000000f31627, 0x1c7fc3908a8bef46, 0x4e3945ef7a25360a, 0x0000000000000000)), // 213
+ Count256(65, UInt256(0x0000000000f31627, 0x1c7fc3908a8bef46, 0x4e3945ef7a25360a, 0x0000000000000000)), // 214
+ Count256(65, UInt256(0x0000000000f31627, 0x1c7fc3908a8bef46, 0x4e3945ef7a25360a, 0x0000000000000000)), // 215, 52656145834278593348959013841835216159447547700274555627155488768..<105312291668557186697918027683670432318895095400549111254310977536, 65 or 66 digits
+ Count256(66, UInt256(0x00000000097edd87, 0x1cfda3a5697758bf, 0x0e3cbb5ac5741c64, 0x0000000000000000)), // 216
+ Count256(66, UInt256(0x00000000097edd87, 0x1cfda3a5697758bf, 0x0e3cbb5ac5741c64, 0x0000000000000000)), // 217
+ Count256(66, UInt256(0x00000000097edd87, 0x1cfda3a5697758bf, 0x0e3cbb5ac5741c64, 0x0000000000000000)), // 218
+ Count256(66, UInt256(0x00000000097edd87, 0x1cfda3a5697758bf, 0x0e3cbb5ac5741c64, 0x0000000000000000)), // 219, 842498333348457493583344221469363458551160763204392890034487820288..<1684996666696914987166688442938726917102321526408785780068975640576, 66 or 67 digits
+ Count256(67, UInt256(0x000000005ef4a747, 0x21e864761ea97776, 0x8e5f518bb6891be8, 0x0000000000000000)), // 220
+ Count256(67, UInt256(0x000000005ef4a747, 0x21e864761ea97776, 0x8e5f518bb6891be8, 0x0000000000000000)), // 221
+ Count256(67, UInt256(0x000000005ef4a747, 0x21e864761ea97776, 0x8e5f518bb6891be8, 0x0000000000000000)), // 222, 6739986666787659948666753771754907668409286105635143120275902562304..<13479973333575319897333507543509815336818572211270286240551805124608, 67 or 68 digits
+ Count256(68, UInt256(0x00000003b58e88c7, 0x5313ec9d329eaaa1, 0x8fb92f75215b1710, 0x0000000000000000)), // 223
+ Count256(68, UInt256(0x00000003b58e88c7, 0x5313ec9d329eaaa1, 0x8fb92f75215b1710, 0x0000000000000000)), // 224
+ Count256(68, UInt256(0x00000003b58e88c7, 0x5313ec9d329eaaa1, 0x8fb92f75215b1710, 0x0000000000000000)), // 225, 53919893334301279589334030174039261347274288845081144962207220498432..<107839786668602559178668060348078522694548577690162289924414440996864, 68 or 69 digits
+ Count256(69, UInt256(0x00000025179157c9, 0x3ec73e23fa32aa4f, 0x9d3bda934d8ee6a0, 0x0000000000000000)), // 226
+ Count256(69, UInt256(0x00000025179157c9, 0x3ec73e23fa32aa4f, 0x9d3bda934d8ee6a0, 0x0000000000000000)), // 227
+ Count256(69, UInt256(0x00000025179157c9, 0x3ec73e23fa32aa4f, 0x9d3bda934d8ee6a0, 0x0000000000000000)), // 228
+ Count256(69, UInt256(0x00000025179157c9, 0x3ec73e23fa32aa4f, 0x9d3bda934d8ee6a0, 0x0000000000000000)), // 229, 862718293348820473429344482784628181556388621521298319395315527974912..<1725436586697640946858688965569256363112777243042596638790631055949824, 69 or 70 digits
+ Count256(70, UInt256(0x00000172ebad6ddc, 0x73c86d67c5faa71c, 0x245689c107950240, 0x0000000000000000)), // 230
+ Count256(70, UInt256(0x00000172ebad6ddc, 0x73c86d67c5faa71c, 0x245689c107950240, 0x0000000000000000)), // 231
+ Count256(70, UInt256(0x00000172ebad6ddc, 0x73c86d67c5faa71c, 0x245689c107950240, 0x0000000000000000)), // 232, 6901746346790563787434755862277025452451108972170386555162524223799296..<13803492693581127574869511724554050904902217944340773110325048447598592, 70 or 71 digits
+ Count256(71, UInt256(0x00000e7d34c64a9c, 0x85d4460dbbca8719, 0x6b61618a4bd21680, 0x0000000000000000)), // 233
+ Count256(71, UInt256(0x00000e7d34c64a9c, 0x85d4460dbbca8719, 0x6b61618a4bd21680, 0x0000000000000000)), // 234
+ Count256(71, UInt256(0x00000e7d34c64a9c, 0x85d4460dbbca8719, 0x6b61618a4bd21680, 0x0000000000000000)), // 235, 55213970774324510299478046898216203619608871777363092441300193790394368..<110427941548649020598956093796432407239217743554726184882600387580788736, 71 or 72 digits
+ Count256(72, UInt256(0x000090e40fbeea1d, 0x3a4abc8955e946fe, 0x31cdcf66f634e100, 0x0000000000000000)), // 236
+ Count256(72, UInt256(0x000090e40fbeea1d, 0x3a4abc8955e946fe, 0x31cdcf66f634e100, 0x0000000000000000)), // 237
+ Count256(72, UInt256(0x000090e40fbeea1d, 0x3a4abc8955e946fe, 0x31cdcf66f634e100, 0x0000000000000000)), // 238
+ Count256(72, UInt256(0x000090e40fbeea1d, 0x3a4abc8955e946fe, 0x31cdcf66f634e100, 0x0000000000000000)), // 239, 883423532389192164791648750371459257913741948437809479060803100646309888..<1766847064778384329583297500742918515827483896875618958121606201292619776, 72 or 73 digits
+ Count256(73, UInt256(0x0005a8e89d752524, 0x46eb5d5d5b1cc5ed, 0xf20a1a059e10ca00, 0x0000000000000000)), // 240
+ Count256(73, UInt256(0x0005a8e89d752524, 0x46eb5d5d5b1cc5ed, 0xf20a1a059e10ca00, 0x0000000000000000)), // 241
+ Count256(73, UInt256(0x0005a8e89d752524, 0x46eb5d5d5b1cc5ed, 0xf20a1a059e10ca00, 0x0000000000000000)), // 242, 7067388259113537318333190002971674063309935587502475832486424805170479104..<14134776518227074636666380005943348126619871175004951664972849610340958208, 73 or 74 digits
+ Count256(74, UInt256(0x003899162693736a, 0xc531a5a58f1fbb4b, 0x746504382ca7e400, 0x0000000000000000)), // 243
+ Count256(74, UInt256(0x003899162693736a, 0xc531a5a58f1fbb4b, 0x746504382ca7e400, 0x0000000000000000)), // 244
+ Count256(74, UInt256(0x003899162693736a, 0xc531a5a58f1fbb4b, 0x746504382ca7e400, 0x0000000000000000)), // 245, 56539106072908298546665520023773392506479484700019806659891398441363832832..<113078212145816597093331040047546785012958969400039613319782796882727665664, 74 or 75 digits
+ Count256(75, UInt256(0x0235fadd81c2822b, 0xb3f07877973d50f2, 0x8bf22a31be8ee800, 0x0000000000000000)), // 246
+ Count256(75, UInt256(0x0235fadd81c2822b, 0xb3f07877973d50f2, 0x8bf22a31be8ee800, 0x0000000000000000)), // 247
+ Count256(75, UInt256(0x0235fadd81c2822b, 0xb3f07877973d50f2, 0x8bf22a31be8ee800, 0x0000000000000000)), // 248
+ Count256(75, UInt256(0x0235fadd81c2822b, 0xb3f07877973d50f2, 0x8bf22a31be8ee800, 0x0000000000000000)), // 249, 904625697166532776746648320380374280103671755200316906558262375061821325312..<1809251394333065553493296640760748560207343510400633813116524750123642650624, 75 or 76 digits
+ Count256(76, UInt256(0x161bcca7119915b5, 0x0764b4abe8652979, 0x7775a5f171951000, 0x0000000000000000)), // 250
+ Count256(76, UInt256(0x161bcca7119915b5, 0x0764b4abe8652979, 0x7775a5f171951000, 0x0000000000000000)), // 251
+ Count256(76, UInt256(0x161bcca7119915b5, 0x0764b4abe8652979, 0x7775a5f171951000, 0x0000000000000000)), // 252, 7237005577332262213973186563042994240829374041602535252466099000494570602496..<14474011154664524427946373126085988481658748083205070504932198000989141204992, 76 or 77 digits
+ Count256(77, UInt256(0xdd15fe86affad912, 0x49ef0eb713f39ebe, 0xaa987b6e6fd2a000, 0x0000000000000000)), // 253
+ Count256(77, UInt256(0xdd15fe86affad912, 0x49ef0eb713f39ebe, 0xaa987b6e6fd2a000, 0x0000000000000000)), // 254
+ Count256(77, UInt256(0xdd15fe86affad912, 0x49ef0eb713f39ebe, 0xaa987b6e6fd2a000, 0x0000000000000000)), // 255
+]
diff --git a/Sources/Decimal/Tables/Tables+DenselyPackedDecimal.swift b/Sources/Decimal/Tables/Tables+DenselyPackedDecimal.swift
new file mode 100644
index 0000000..b69ca36
--- /dev/null
+++ b/Sources/Decimal/Tables/Tables+DenselyPackedDecimal.swift
@@ -0,0 +1,185 @@
+// swiftlint:disable comma
+// swiftlint:disable collection_alignment
+
+extension Tables {
+
+ internal static func dpd(decode bits: T) -> UInt16 {
+ let index = Int(bits)
+ return bid_d2b[index]
+ }
+
+ internal static func dpd(encode bits: T) -> UInt16 {
+ let index = Int(bits)
+ return bid_b2d[index]
+ }
+}
+
+private let bid_d2b: [UInt16] = [
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 80, 81, 800, 801, 880, 881,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 90, 91, 810, 811, 890, 891,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 82, 83, 820, 821, 808, 809,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 92, 93, 830, 831, 818, 819,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 84, 85, 840, 841, 88, 89,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 94, 95, 850, 851, 98, 99,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 86, 87, 860, 861, 888, 889,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 96, 97, 870, 871, 898, 899,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 180, 181, 900, 901, 980, 981,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 190, 191, 910, 911, 990, 991,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 182, 183, 920, 921, 908, 909,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 192, 193, 930, 931, 918, 919,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 184, 185, 940, 941, 188, 189,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 194, 195, 950, 951, 198, 199,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 186, 187, 960, 961, 988, 989,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 196, 197, 970, 971, 998, 999,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 280, 281, 802, 803, 882, 883,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 290, 291, 812, 813, 892, 893,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 282, 283, 822, 823, 828, 829,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 292, 293, 832, 833, 838, 839,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 284, 285, 842, 843, 288, 289,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 294, 295, 852, 853, 298, 299,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 286, 287, 862, 863, 888, 889,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 296, 297, 872, 873, 898, 899,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 380, 381, 902, 903, 982, 983,
+ 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 390, 391, 912, 913, 992, 993,
+ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 382, 383, 922, 923, 928, 929,
+ 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 392, 393, 932, 933, 938, 939,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 384, 385, 942, 943, 388, 389,
+ 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 394, 395, 952, 953, 398, 399,
+ 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 386, 387, 962, 963, 988, 989,
+ 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 396, 397, 972, 973, 998, 999,
+ 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 480, 481, 804, 805, 884, 885,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 490, 491, 814, 815, 894, 895,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 482, 483, 824, 825, 848, 849,
+ 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 492, 493, 834, 835, 858, 859,
+ 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 484, 485, 844, 845, 488, 489,
+ 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 494, 495, 854, 855, 498, 499,
+ 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 486, 487, 864, 865, 888, 889,
+ 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 496, 497, 874, 875, 898, 899,
+ 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 580, 581, 904, 905, 984, 985,
+ 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 590, 591, 914, 915, 994, 995,
+ 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 582, 583, 924, 925, 948, 949,
+ 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 592, 593, 934, 935, 958, 959,
+ 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 584, 585, 944, 945, 588, 589,
+ 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 594, 595, 954, 955, 598, 599,
+ 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 586, 587, 964, 965, 988, 989,
+ 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 596, 597, 974, 975, 998, 999,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 680, 681, 806, 807, 886, 887,
+ 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 690, 691, 816, 817, 896, 897,
+ 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 682, 683, 826, 827, 868, 869,
+ 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 692, 693, 836, 837, 878, 879,
+ 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 684, 685, 846, 847, 688, 689,
+ 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 694, 695, 856, 857, 698, 699,
+ 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 686, 687, 866, 867, 888, 889,
+ 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 696, 697, 876, 877, 898, 899,
+ 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 780, 781, 906, 907, 986, 987,
+ 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 790, 791, 916, 917, 996, 997,
+ 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 782, 783, 926, 927, 968, 969,
+ 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 792, 793, 936, 937, 978, 979,
+ 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 784, 785, 946, 947, 788, 789,
+ 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 794, 795, 956, 957, 798, 799,
+ 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 786, 787, 966, 967, 988, 989,
+ 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 796, 797, 976, 977, 998, 999,
+]
+
+private let bid_b2d: [UInt16] = [
+ 0x000, 0x001, 0x002, 0x003, 0x004, 0x005, 0x006, 0x007, 0x008, 0x009,
+ 0x010, 0x011, 0x012, 0x013, 0x014, 0x015, 0x016, 0x017, 0x018, 0x019,
+ 0x020, 0x021, 0x022, 0x023, 0x024, 0x025, 0x026, 0x027, 0x028, 0x029,
+ 0x030, 0x031, 0x032, 0x033, 0x034, 0x035, 0x036, 0x037, 0x038, 0x039,
+ 0x040, 0x041, 0x042, 0x043, 0x044, 0x045, 0x046, 0x047, 0x048, 0x049,
+ 0x050, 0x051, 0x052, 0x053, 0x054, 0x055, 0x056, 0x057, 0x058, 0x059,
+ 0x060, 0x061, 0x062, 0x063, 0x064, 0x065, 0x066, 0x067, 0x068, 0x069,
+ 0x070, 0x071, 0x072, 0x073, 0x074, 0x075, 0x076, 0x077, 0x078, 0x079,
+ 0x00a, 0x00b, 0x02a, 0x02b, 0x04a, 0x04b, 0x06a, 0x06b, 0x04e, 0x04f,
+ 0x01a, 0x01b, 0x03a, 0x03b, 0x05a, 0x05b, 0x07a, 0x07b, 0x05e, 0x05f,
+ 0x080, 0x081, 0x082, 0x083, 0x084, 0x085, 0x086, 0x087, 0x088, 0x089,
+ 0x090, 0x091, 0x092, 0x093, 0x094, 0x095, 0x096, 0x097, 0x098, 0x099,
+ 0x0a0, 0x0a1, 0x0a2, 0x0a3, 0x0a4, 0x0a5, 0x0a6, 0x0a7, 0x0a8, 0x0a9,
+ 0x0b0, 0x0b1, 0x0b2, 0x0b3, 0x0b4, 0x0b5, 0x0b6, 0x0b7, 0x0b8, 0x0b9,
+ 0x0c0, 0x0c1, 0x0c2, 0x0c3, 0x0c4, 0x0c5, 0x0c6, 0x0c7, 0x0c8, 0x0c9,
+ 0x0d0, 0x0d1, 0x0d2, 0x0d3, 0x0d4, 0x0d5, 0x0d6, 0x0d7, 0x0d8, 0x0d9,
+ 0x0e0, 0x0e1, 0x0e2, 0x0e3, 0x0e4, 0x0e5, 0x0e6, 0x0e7, 0x0e8, 0x0e9,
+ 0x0f0, 0x0f1, 0x0f2, 0x0f3, 0x0f4, 0x0f5, 0x0f6, 0x0f7, 0x0f8, 0x0f9,
+ 0x08a, 0x08b, 0x0aa, 0x0ab, 0x0ca, 0x0cb, 0x0ea, 0x0eb, 0x0ce, 0x0cf,
+ 0x09a, 0x09b, 0x0ba, 0x0bb, 0x0da, 0x0db, 0x0fa, 0x0fb, 0x0de, 0x0df,
+ 0x100, 0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 0x108, 0x109,
+ 0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x116, 0x117, 0x118, 0x119,
+ 0x120, 0x121, 0x122, 0x123, 0x124, 0x125, 0x126, 0x127, 0x128, 0x129,
+ 0x130, 0x131, 0x132, 0x133, 0x134, 0x135, 0x136, 0x137, 0x138, 0x139,
+ 0x140, 0x141, 0x142, 0x143, 0x144, 0x145, 0x146, 0x147, 0x148, 0x149,
+ 0x150, 0x151, 0x152, 0x153, 0x154, 0x155, 0x156, 0x157, 0x158, 0x159,
+ 0x160, 0x161, 0x162, 0x163, 0x164, 0x165, 0x166, 0x167, 0x168, 0x169,
+ 0x170, 0x171, 0x172, 0x173, 0x174, 0x175, 0x176, 0x177, 0x178, 0x179,
+ 0x10a, 0x10b, 0x12a, 0x12b, 0x14a, 0x14b, 0x16a, 0x16b, 0x14e, 0x14f,
+ 0x11a, 0x11b, 0x13a, 0x13b, 0x15a, 0x15b, 0x17a, 0x17b, 0x15e, 0x15f,
+ 0x180, 0x181, 0x182, 0x183, 0x184, 0x185, 0x186, 0x187, 0x188, 0x189,
+ 0x190, 0x191, 0x192, 0x193, 0x194, 0x195, 0x196, 0x197, 0x198, 0x199,
+ 0x1a0, 0x1a1, 0x1a2, 0x1a3, 0x1a4, 0x1a5, 0x1a6, 0x1a7, 0x1a8, 0x1a9,
+ 0x1b0, 0x1b1, 0x1b2, 0x1b3, 0x1b4, 0x1b5, 0x1b6, 0x1b7, 0x1b8, 0x1b9,
+ 0x1c0, 0x1c1, 0x1c2, 0x1c3, 0x1c4, 0x1c5, 0x1c6, 0x1c7, 0x1c8, 0x1c9,
+ 0x1d0, 0x1d1, 0x1d2, 0x1d3, 0x1d4, 0x1d5, 0x1d6, 0x1d7, 0x1d8, 0x1d9,
+ 0x1e0, 0x1e1, 0x1e2, 0x1e3, 0x1e4, 0x1e5, 0x1e6, 0x1e7, 0x1e8, 0x1e9,
+ 0x1f0, 0x1f1, 0x1f2, 0x1f3, 0x1f4, 0x1f5, 0x1f6, 0x1f7, 0x1f8, 0x1f9,
+ 0x18a, 0x18b, 0x1aa, 0x1ab, 0x1ca, 0x1cb, 0x1ea, 0x1eb, 0x1ce, 0x1cf,
+ 0x19a, 0x19b, 0x1ba, 0x1bb, 0x1da, 0x1db, 0x1fa, 0x1fb, 0x1de, 0x1df,
+ 0x200, 0x201, 0x202, 0x203, 0x204, 0x205, 0x206, 0x207, 0x208, 0x209,
+ 0x210, 0x211, 0x212, 0x213, 0x214, 0x215, 0x216, 0x217, 0x218, 0x219,
+ 0x220, 0x221, 0x222, 0x223, 0x224, 0x225, 0x226, 0x227, 0x228, 0x229,
+ 0x230, 0x231, 0x232, 0x233, 0x234, 0x235, 0x236, 0x237, 0x238, 0x239,
+ 0x240, 0x241, 0x242, 0x243, 0x244, 0x245, 0x246, 0x247, 0x248, 0x249,
+ 0x250, 0x251, 0x252, 0x253, 0x254, 0x255, 0x256, 0x257, 0x258, 0x259,
+ 0x260, 0x261, 0x262, 0x263, 0x264, 0x265, 0x266, 0x267, 0x268, 0x269,
+ 0x270, 0x271, 0x272, 0x273, 0x274, 0x275, 0x276, 0x277, 0x278, 0x279,
+ 0x20a, 0x20b, 0x22a, 0x22b, 0x24a, 0x24b, 0x26a, 0x26b, 0x24e, 0x24f,
+ 0x21a, 0x21b, 0x23a, 0x23b, 0x25a, 0x25b, 0x27a, 0x27b, 0x25e, 0x25f,
+ 0x280, 0x281, 0x282, 0x283, 0x284, 0x285, 0x286, 0x287, 0x288, 0x289,
+ 0x290, 0x291, 0x292, 0x293, 0x294, 0x295, 0x296, 0x297, 0x298, 0x299,
+ 0x2a0, 0x2a1, 0x2a2, 0x2a3, 0x2a4, 0x2a5, 0x2a6, 0x2a7, 0x2a8, 0x2a9,
+ 0x2b0, 0x2b1, 0x2b2, 0x2b3, 0x2b4, 0x2b5, 0x2b6, 0x2b7, 0x2b8, 0x2b9,
+ 0x2c0, 0x2c1, 0x2c2, 0x2c3, 0x2c4, 0x2c5, 0x2c6, 0x2c7, 0x2c8, 0x2c9,
+ 0x2d0, 0x2d1, 0x2d2, 0x2d3, 0x2d4, 0x2d5, 0x2d6, 0x2d7, 0x2d8, 0x2d9,
+ 0x2e0, 0x2e1, 0x2e2, 0x2e3, 0x2e4, 0x2e5, 0x2e6, 0x2e7, 0x2e8, 0x2e9,
+ 0x2f0, 0x2f1, 0x2f2, 0x2f3, 0x2f4, 0x2f5, 0x2f6, 0x2f7, 0x2f8, 0x2f9,
+ 0x28a, 0x28b, 0x2aa, 0x2ab, 0x2ca, 0x2cb, 0x2ea, 0x2eb, 0x2ce, 0x2cf,
+ 0x29a, 0x29b, 0x2ba, 0x2bb, 0x2da, 0x2db, 0x2fa, 0x2fb, 0x2de, 0x2df,
+ 0x300, 0x301, 0x302, 0x303, 0x304, 0x305, 0x306, 0x307, 0x308, 0x309,
+ 0x310, 0x311, 0x312, 0x313, 0x314, 0x315, 0x316, 0x317, 0x318, 0x319,
+ 0x320, 0x321, 0x322, 0x323, 0x324, 0x325, 0x326, 0x327, 0x328, 0x329,
+ 0x330, 0x331, 0x332, 0x333, 0x334, 0x335, 0x336, 0x337, 0x338, 0x339,
+ 0x340, 0x341, 0x342, 0x343, 0x344, 0x345, 0x346, 0x347, 0x348, 0x349,
+ 0x350, 0x351, 0x352, 0x353, 0x354, 0x355, 0x356, 0x357, 0x358, 0x359,
+ 0x360, 0x361, 0x362, 0x363, 0x364, 0x365, 0x366, 0x367, 0x368, 0x369,
+ 0x370, 0x371, 0x372, 0x373, 0x374, 0x375, 0x376, 0x377, 0x378, 0x379,
+ 0x30a, 0x30b, 0x32a, 0x32b, 0x34a, 0x34b, 0x36a, 0x36b, 0x34e, 0x34f,
+ 0x31a, 0x31b, 0x33a, 0x33b, 0x35a, 0x35b, 0x37a, 0x37b, 0x35e, 0x35f,
+ 0x380, 0x381, 0x382, 0x383, 0x384, 0x385, 0x386, 0x387, 0x388, 0x389,
+ 0x390, 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397, 0x398, 0x399,
+ 0x3a0, 0x3a1, 0x3a2, 0x3a3, 0x3a4, 0x3a5, 0x3a6, 0x3a7, 0x3a8, 0x3a9,
+ 0x3b0, 0x3b1, 0x3b2, 0x3b3, 0x3b4, 0x3b5, 0x3b6, 0x3b7, 0x3b8, 0x3b9,
+ 0x3c0, 0x3c1, 0x3c2, 0x3c3, 0x3c4, 0x3c5, 0x3c6, 0x3c7, 0x3c8, 0x3c9,
+ 0x3d0, 0x3d1, 0x3d2, 0x3d3, 0x3d4, 0x3d5, 0x3d6, 0x3d7, 0x3d8, 0x3d9,
+ 0x3e0, 0x3e1, 0x3e2, 0x3e3, 0x3e4, 0x3e5, 0x3e6, 0x3e7, 0x3e8, 0x3e9,
+ 0x3f0, 0x3f1, 0x3f2, 0x3f3, 0x3f4, 0x3f5, 0x3f6, 0x3f7, 0x3f8, 0x3f9,
+ 0x38a, 0x38b, 0x3aa, 0x3ab, 0x3ca, 0x3cb, 0x3ea, 0x3eb, 0x3ce, 0x3cf,
+ 0x39a, 0x39b, 0x3ba, 0x3bb, 0x3da, 0x3db, 0x3fa, 0x3fb, 0x3de, 0x3df,
+ 0x00c, 0x00d, 0x10c, 0x10d, 0x20c, 0x20d, 0x30c, 0x30d, 0x02e, 0x02f,
+ 0x01c, 0x01d, 0x11c, 0x11d, 0x21c, 0x21d, 0x31c, 0x31d, 0x03e, 0x03f,
+ 0x02c, 0x02d, 0x12c, 0x12d, 0x22c, 0x22d, 0x32c, 0x32d, 0x12e, 0x12f,
+ 0x03c, 0x03d, 0x13c, 0x13d, 0x23c, 0x23d, 0x33c, 0x33d, 0x13e, 0x13f,
+ 0x04c, 0x04d, 0x14c, 0x14d, 0x24c, 0x24d, 0x34c, 0x34d, 0x22e, 0x22f,
+ 0x05c, 0x05d, 0x15c, 0x15d, 0x25c, 0x25d, 0x35c, 0x35d, 0x23e, 0x23f,
+ 0x06c, 0x06d, 0x16c, 0x16d, 0x26c, 0x26d, 0x36c, 0x36d, 0x32e, 0x32f,
+ 0x07c, 0x07d, 0x17c, 0x17d, 0x27c, 0x27d, 0x37c, 0x37d, 0x33e, 0x33f,
+ 0x00e, 0x00f, 0x10e, 0x10f, 0x20e, 0x20f, 0x30e, 0x30f, 0x06e, 0x06f,
+ 0x01e, 0x01f, 0x11e, 0x11f, 0x21e, 0x21f, 0x31e, 0x31f, 0x07e, 0x07f,
+ 0x08c, 0x08d, 0x18c, 0x18d, 0x28c, 0x28d, 0x38c, 0x38d, 0x0ae, 0x0af,
+ 0x09c, 0x09d, 0x19c, 0x19d, 0x29c, 0x29d, 0x39c, 0x39d, 0x0be, 0x0bf,
+ 0x0ac, 0x0ad, 0x1ac, 0x1ad, 0x2ac, 0x2ad, 0x3ac, 0x3ad, 0x1ae, 0x1af,
+ 0x0bc, 0x0bd, 0x1bc, 0x1bd, 0x2bc, 0x2bd, 0x3bc, 0x3bd, 0x1be, 0x1bf,
+ 0x0cc, 0x0cd, 0x1cc, 0x1cd, 0x2cc, 0x2cd, 0x3cc, 0x3cd, 0x2ae, 0x2af,
+ 0x0dc, 0x0dd, 0x1dc, 0x1dd, 0x2dc, 0x2dd, 0x3dc, 0x3dd, 0x2be, 0x2bf,
+ 0x0ec, 0x0ed, 0x1ec, 0x1ed, 0x2ec, 0x2ed, 0x3ec, 0x3ed, 0x3ae, 0x3af,
+ 0x0fc, 0x0fd, 0x1fc, 0x1fd, 0x2fc, 0x2fd, 0x3fc, 0x3fd, 0x3be, 0x3bf,
+ 0x08e, 0x08f, 0x18e, 0x18f, 0x28e, 0x28f, 0x38e, 0x38f, 0x0ee, 0x0ef,
+ 0x09e, 0x09f, 0x19e, 0x19f, 0x29e, 0x29f, 0x39e, 0x39f, 0x0fe, 0x0ff,
+]
diff --git a/Sources/Decimal/Tables/Tables+FactorCount.swift b/Sources/Decimal/Tables/Tables+FactorCount.swift
new file mode 100644
index 0000000..b0f2e61
--- /dev/null
+++ b/Sources/Decimal/Tables/Tables+FactorCount.swift
@@ -0,0 +1,164 @@
+// swiftlint:disable collection_alignment
+
+internal struct FactorCount {
+ /// Upper 4 bits = count 5.
+ /// Lower 4 bits = count 2.
+ fileprivate let count25: UInt8
+
+ internal var count2: Int {
+ let u8 = self.count25 & 0b1111
+ return Int(truncatingIfNeeded: u8)
+ }
+
+ internal var count5: Int {
+ let u8 = (self.count25 >> 4) & 0b1111
+ return Int(truncatingIfNeeded: u8)
+ }
+}
+
+extension Tables {
+
+ /// Prime factorization.
+ /// Returns the count for each factor.
+ /// `bid_factors` in Intel.
+ internal static func getFactorCount(
+ lessEqual1024: T
+ ) -> FactorCount {
+ let index = Int(lessEqual1024)
+ let d = data[index]
+ return FactorCount(count25: d)
+ }
+}
+
+// Use following code to generate:
+//
+// func countFactor(_ n: UInt32, factor: UInt32) -> Int {
+// var n = n
+// var result = 0
+//
+// while n != 0 && n.isMultiple(of: factor) {
+// n /= factor
+// result += 1
+// }
+//
+// return result
+// }
+//
+// for n: UInt32 in 0...1024 {
+// let count2 = countFactor(n, factor: 2)
+// let count5 = countFactor(n, factor: 5)
+//
+// assert(count2 < 16 && count5 < 16, "How? We are up to 1024.")
+// let u8 = (UInt8(count5) << 4) | UInt8(count2)
+//
+// print("\(u8), ", terminator: "")
+// if (n+1) % 10 == 0 {
+// print("// \(n-9)-\(n)")
+// }
+// }
+
+private let data: [UInt8] = [
+ 0, 0, 1, 0, 2, 16, 1, 0, 3, 0, // 0-9
+ 17, 0, 2, 0, 1, 16, 4, 0, 1, 0, // 10-19
+ 18, 0, 1, 0, 3, 32, 1, 0, 2, 0, // 20-29
+ 17, 0, 5, 0, 1, 16, 2, 0, 1, 0, // 30-39
+ 19, 0, 1, 0, 2, 16, 1, 0, 4, 0, // 40-49
+ 33, 0, 2, 0, 1, 16, 3, 0, 1, 0, // 50-59
+ 18, 0, 1, 0, 6, 16, 1, 0, 2, 0, // 60-69
+ 17, 0, 3, 0, 1, 32, 2, 0, 1, 0, // 70-79
+ 20, 0, 1, 0, 2, 16, 1, 0, 3, 0, // 80-89
+ 17, 0, 2, 0, 1, 16, 5, 0, 1, 0, // 90-99
+ 34, 0, 1, 0, 3, 16, 1, 0, 2, 0, // 100-109
+ 17, 0, 4, 0, 1, 16, 2, 0, 1, 0, // 110-119
+ 19, 0, 1, 0, 2, 48, 1, 0, 7, 0, // 120-129
+ 17, 0, 2, 0, 1, 16, 3, 0, 1, 0, // 130-139
+ 18, 0, 1, 0, 4, 16, 1, 0, 2, 0, // 140-149
+ 33, 0, 3, 0, 1, 16, 2, 0, 1, 0, // 150-159
+ 21, 0, 1, 0, 2, 16, 1, 0, 3, 0, // 160-169
+ 17, 0, 2, 0, 1, 32, 4, 0, 1, 0, // 170-179
+ 18, 0, 1, 0, 3, 16, 1, 0, 2, 0, // 180-189
+ 17, 0, 6, 0, 1, 16, 2, 0, 1, 0, // 190-199
+ 35, 0, 1, 0, 2, 16, 1, 0, 4, 0, // 200-209
+ 17, 0, 2, 0, 1, 16, 3, 0, 1, 0, // 210-219
+ 18, 0, 1, 0, 5, 32, 1, 0, 2, 0, // 220-229
+ 17, 0, 3, 0, 1, 16, 2, 0, 1, 0, // 230-239
+ 20, 0, 1, 0, 2, 16, 1, 0, 3, 0, // 240-249
+ 49, 0, 2, 0, 1, 16, 8, 0, 1, 0, // 250-259
+ 18, 0, 1, 0, 3, 16, 1, 0, 2, 0, // 260-269
+ 17, 0, 4, 0, 1, 32, 2, 0, 1, 0, // 270-279
+ 19, 0, 1, 0, 2, 16, 1, 0, 5, 0, // 280-289
+ 17, 0, 2, 0, 1, 16, 3, 0, 1, 0, // 290-299
+ 34, 0, 1, 0, 4, 16, 1, 0, 2, 0, // 300-309
+ 17, 0, 3, 0, 1, 16, 2, 0, 1, 0, // 310-319
+ 22, 0, 1, 0, 2, 32, 1, 0, 3, 0, // 320-329
+ 17, 0, 2, 0, 1, 16, 4, 0, 1, 0, // 330-339
+ 18, 0, 1, 0, 3, 16, 1, 0, 2, 0, // 340-349
+ 33, 0, 5, 0, 1, 16, 2, 0, 1, 0, // 350-359
+ 19, 0, 1, 0, 2, 16, 1, 0, 4, 0, // 360-369
+ 17, 0, 2, 0, 1, 48, 3, 0, 1, 0, // 370-379
+ 18, 0, 1, 0, 7, 16, 1, 0, 2, 0, // 380-389
+ 17, 0, 3, 0, 1, 16, 2, 0, 1, 0, // 390-399
+ 36, 0, 1, 0, 2, 16, 1, 0, 3, 0, // 400-409
+ 17, 0, 2, 0, 1, 16, 5, 0, 1, 0, // 410-419
+ 18, 0, 1, 0, 3, 32, 1, 0, 2, 0, // 420-429
+ 17, 0, 4, 0, 1, 16, 2, 0, 1, 0, // 430-439
+ 19, 0, 1, 0, 2, 16, 1, 0, 6, 0, // 440-449
+ 33, 0, 2, 0, 1, 16, 3, 0, 1, 0, // 450-459
+ 18, 0, 1, 0, 4, 16, 1, 0, 2, 0, // 460-469
+ 17, 0, 3, 0, 1, 32, 2, 0, 1, 0, // 470-479
+ 21, 0, 1, 0, 2, 16, 1, 0, 3, 0, // 480-489
+ 17, 0, 2, 0, 1, 16, 4, 0, 1, 0, // 490-499
+ 50, 0, 1, 0, 3, 16, 1, 0, 2, 0, // 500-509
+ 17, 0, 9, 0, 1, 16, 2, 0, 1, 0, // 510-519
+ 19, 0, 1, 0, 2, 32, 1, 0, 4, 0, // 520-529
+ 17, 0, 2, 0, 1, 16, 3, 0, 1, 0, // 530-539
+ 18, 0, 1, 0, 5, 16, 1, 0, 2, 0, // 540-549
+ 33, 0, 3, 0, 1, 16, 2, 0, 1, 0, // 550-559
+ 20, 0, 1, 0, 2, 16, 1, 0, 3, 0, // 560-569
+ 17, 0, 2, 0, 1, 32, 6, 0, 1, 0, // 570-579
+ 18, 0, 1, 0, 3, 16, 1, 0, 2, 0, // 580-589
+ 17, 0, 4, 0, 1, 16, 2, 0, 1, 0, // 590-599
+ 35, 0, 1, 0, 2, 16, 1, 0, 5, 0, // 600-609
+ 17, 0, 2, 0, 1, 16, 3, 0, 1, 0, // 610-619
+ 18, 0, 1, 0, 4, 64, 1, 0, 2, 0, // 620-629
+ 17, 0, 3, 0, 1, 16, 2, 0, 1, 0, // 630-639
+ 23, 0, 1, 0, 2, 16, 1, 0, 3, 0, // 640-649
+ 33, 0, 2, 0, 1, 16, 4, 0, 1, 0, // 650-659
+ 18, 0, 1, 0, 3, 16, 1, 0, 2, 0, // 660-669
+ 17, 0, 5, 0, 1, 32, 2, 0, 1, 0, // 670-679
+ 19, 0, 1, 0, 2, 16, 1, 0, 4, 0, // 680-689
+ 17, 0, 2, 0, 1, 16, 3, 0, 1, 0, // 690-699
+ 34, 0, 1, 0, 6, 16, 1, 0, 2, 0, // 700-709
+ 17, 0, 3, 0, 1, 16, 2, 0, 1, 0, // 710-719
+ 20, 0, 1, 0, 2, 32, 1, 0, 3, 0, // 720-729
+ 17, 0, 2, 0, 1, 16, 5, 0, 1, 0, // 730-739
+ 18, 0, 1, 0, 3, 16, 1, 0, 2, 0, // 740-749
+ 49, 0, 4, 0, 1, 16, 2, 0, 1, 0, // 750-759
+ 19, 0, 1, 0, 2, 16, 1, 0, 8, 0, // 760-769
+ 17, 0, 2, 0, 1, 32, 3, 0, 1, 0, // 770-779
+ 18, 0, 1, 0, 4, 16, 1, 0, 2, 0, // 780-789
+ 17, 0, 3, 0, 1, 16, 2, 0, 1, 0, // 790-799
+ 37, 0, 1, 0, 2, 16, 1, 0, 3, 0, // 800-809
+ 17, 0, 2, 0, 1, 16, 4, 0, 1, 0, // 810-819
+ 18, 0, 1, 0, 3, 32, 1, 0, 2, 0, // 820-829
+ 17, 0, 6, 0, 1, 16, 2, 0, 1, 0, // 830-839
+ 19, 0, 1, 0, 2, 16, 1, 0, 4, 0, // 840-849
+ 33, 0, 2, 0, 1, 16, 3, 0, 1, 0, // 850-859
+ 18, 0, 1, 0, 5, 16, 1, 0, 2, 0, // 860-869
+ 17, 0, 3, 0, 1, 48, 2, 0, 1, 0, // 870-879
+ 20, 0, 1, 0, 2, 16, 1, 0, 3, 0, // 880-889
+ 17, 0, 2, 0, 1, 16, 7, 0, 1, 0, // 890-899
+ 34, 0, 1, 0, 3, 16, 1, 0, 2, 0, // 900-909
+ 17, 0, 4, 0, 1, 16, 2, 0, 1, 0, // 910-919
+ 19, 0, 1, 0, 2, 32, 1, 0, 5, 0, // 920-929
+ 17, 0, 2, 0, 1, 16, 3, 0, 1, 0, // 930-939
+ 18, 0, 1, 0, 4, 16, 1, 0, 2, 0, // 940-949
+ 33, 0, 3, 0, 1, 16, 2, 0, 1, 0, // 950-959
+ 22, 0, 1, 0, 2, 16, 1, 0, 3, 0, // 960-969
+ 17, 0, 2, 0, 1, 32, 4, 0, 1, 0, // 970-979
+ 18, 0, 1, 0, 3, 16, 1, 0, 2, 0, // 980-989
+ 17, 0, 5, 0, 1, 16, 2, 0, 1, 0, // 990-999
+ 51, 0, 1, 0, 2, 16, 1, 0, 4, 0, // 1000-1009
+ 17, 0, 2, 0, 1, 16, 3, 0, 1, 0, // 1010-1019
+ 18, 0, 1, 0, 10,
+]
diff --git a/Sources/Decimal/Tables/Tables+PowersOf10.swift b/Sources/Decimal/Tables/Tables+PowersOf10.swift
new file mode 100644
index 0000000..ca2c0bb
--- /dev/null
+++ b/Sources/Decimal/Tables/Tables+PowersOf10.swift
@@ -0,0 +1,130 @@
+extension Tables {
+
+ /// 10 to the `exponent`.
+ ///
+ /// - 0 -> 1
+ /// - 1 -> 10
+ /// - 2 -> 100
+ ///
+ /// Usage: `let pow10: UInt64 = Tables.getPowerOf10(exponent: 3)`.
+ internal static func getPowerOf10(exponent index: Int) -> T {
+ assert(index >= 0, "Negative exponent in pow10?")
+
+ if index < data128.count {
+ let r = data128[index]
+ assert(r <= T.max)
+ return T(truncatingIfNeeded: r)
+ }
+
+ let index256 = index - data128.count
+ let r = data256[index256]
+ assert(r <= T.max)
+ return T(truncatingIfNeeded: r)
+ }
+}
+
+// Use following code to generate:
+//
+// var n = UInt256(0, 0, 0, 1)
+//
+// for exponent in 0..<1000 {
+// if n.w0 == 0 && n.w1 == 0 {
+// print(" UInt128(\(hex(n.w2)), \(hex(n.w3))), // 10^\(exponent)")
+// } else {
+// print(" UInt256(\(hex(n.w0)), \(hex(n.w1)), \(hex(n.w2)), \(hex(n.w3))), // 10^\(exponent)")
+// }
+//
+// let mul = n.multipliedReportingOverflow(by: 10 as UInt128)
+// if mul.overflow { print("UInt256 overflow"); break }
+// n = mul.partialValue
+// }
+//
+// func hex(_ n: UInt64) -> String {
+// let s = String(n, radix: 16)
+// let pad = String(repeating: "0", count: 16 - s.count)
+// return "0x" + pad + s
+// }
+
+private let data128: [UInt128] = [
+ UInt128(0x0000000000000000, 0x0000000000000001), // 10^0
+ UInt128(0x0000000000000000, 0x000000000000000a), // 10^1
+ UInt128(0x0000000000000000, 0x0000000000000064), // 10^2
+ UInt128(0x0000000000000000, 0x00000000000003e8), // 10^3
+ UInt128(0x0000000000000000, 0x0000000000002710), // 10^4
+ UInt128(0x0000000000000000, 0x00000000000186a0), // 10^5
+ UInt128(0x0000000000000000, 0x00000000000f4240), // 10^6
+ UInt128(0x0000000000000000, 0x0000000000989680), // 10^7
+ UInt128(0x0000000000000000, 0x0000000005f5e100), // 10^8
+ UInt128(0x0000000000000000, 0x000000003b9aca00), // 10^9
+ UInt128(0x0000000000000000, 0x00000002540be400), // 10^10
+ UInt128(0x0000000000000000, 0x000000174876e800), // 10^11
+ UInt128(0x0000000000000000, 0x000000e8d4a51000), // 10^12
+ UInt128(0x0000000000000000, 0x000009184e72a000), // 10^13
+ UInt128(0x0000000000000000, 0x00005af3107a4000), // 10^14
+ UInt128(0x0000000000000000, 0x00038d7ea4c68000), // 10^15
+ UInt128(0x0000000000000000, 0x002386f26fc10000), // 10^16
+ UInt128(0x0000000000000000, 0x016345785d8a0000), // 10^17
+ UInt128(0x0000000000000000, 0x0de0b6b3a7640000), // 10^18
+ UInt128(0x0000000000000000, 0x8ac7230489e80000), // 10^19
+ UInt128(0x0000000000000005, 0x6bc75e2d63100000), // 10^20
+ UInt128(0x0000000000000036, 0x35c9adc5dea00000), // 10^21
+ UInt128(0x000000000000021e, 0x19e0c9bab2400000), // 10^22
+ UInt128(0x000000000000152d, 0x02c7e14af6800000), // 10^23
+ UInt128(0x000000000000d3c2, 0x1bcecceda1000000), // 10^24
+ UInt128(0x0000000000084595, 0x161401484a000000), // 10^25
+ UInt128(0x000000000052b7d2, 0xdcc80cd2e4000000), // 10^26
+ UInt128(0x00000000033b2e3c, 0x9fd0803ce8000000), // 10^27
+ UInt128(0x00000000204fce5e, 0x3e25026110000000), // 10^28
+ UInt128(0x00000001431e0fae, 0x6d7217caa0000000), // 10^29
+ UInt128(0x0000000c9f2c9cd0, 0x4674edea40000000), // 10^30
+ UInt128(0x0000007e37be2022, 0xc0914b2680000000), // 10^31
+ UInt128(0x000004ee2d6d415b, 0x85acef8100000000), // 10^32
+ UInt128(0x0000314dc6448d93, 0x38c15b0a00000000), // 10^33
+ UInt128(0x0001ed09bead87c0, 0x378d8e6400000000), // 10^34
+ UInt128(0x0013426172c74d82, 0x2b878fe800000000), // 10^35
+ UInt128(0x00c097ce7bc90715, 0xb34b9f1000000000), // 10^36
+ UInt128(0x0785ee10d5da46d9, 0x00f436a000000000), // 10^37
+ UInt128(0x4b3b4ca85a86c47a, 0x098a224000000000), // 10^38
+]
+
+private let data256: [UInt256] = [
+ UInt256(0x0000000000000000, 0x0000000000000002, 0xf050fe938943acc4, 0x5f65568000000000), // 10^39
+ UInt256(0x0000000000000000, 0x000000000000001d, 0x6329f1c35ca4bfab, 0xb9f5610000000000), // 10^40
+ UInt256(0x0000000000000000, 0x0000000000000125, 0xdfa371a19e6f7cb5, 0x4395ca0000000000), // 10^41
+ UInt256(0x0000000000000000, 0x0000000000000b7a, 0xbc627050305adf14, 0xa3d9e40000000000), // 10^42
+ UInt256(0x0000000000000000, 0x00000000000072cb, 0x5bd86321e38cb6ce, 0x6682e80000000000), // 10^43
+ UInt256(0x0000000000000000, 0x0000000000047bf1, 0x9673df52e37f2410, 0x011d100000000000), // 10^44
+ UInt256(0x0000000000000000, 0x00000000002cd76f, 0xe086b93ce2f768a0, 0x0b22a00000000000), // 10^45
+ UInt256(0x0000000000000000, 0x0000000001c06a5e, 0xc5433c60ddaa1640, 0x6f5a400000000000), // 10^46
+ UInt256(0x0000000000000000, 0x00000000118427b3, 0xb4a05bc8a8a4de84, 0x5986800000000000), // 10^47
+ UInt256(0x0000000000000000, 0x00000000af298d05, 0x0e4395d69670b12b, 0x7f41000000000000), // 10^48
+ UInt256(0x0000000000000000, 0x00000006d79f8232, 0x8ea3da61e066ebb2, 0xf88a000000000000), // 10^49
+ UInt256(0x0000000000000000, 0x000000446c3b15f9, 0x926687d2c40534fd, 0xb564000000000000), // 10^50
+ UInt256(0x0000000000000000, 0x000002ac3a4edbbf, 0xb8014e3ba83411e9, 0x15e8000000000000), // 10^51
+ UInt256(0x0000000000000000, 0x00001aba4714957d, 0x300d0e549208b31a, 0xdb10000000000000), // 10^52
+ UInt256(0x0000000000000000, 0x00010b46c6cdd6e3, 0xe0828f4db456ff0c, 0x8ea0000000000000), // 10^53
+ UInt256(0x0000000000000000, 0x000a70c3c40a64e6, 0xc51999090b65f67d, 0x9240000000000000), // 10^54
+ UInt256(0x0000000000000000, 0x006867a5a867f103, 0xb2fffa5a71fba0e7, 0xb680000000000000), // 10^55
+ UInt256(0x0000000000000000, 0x04140c78940f6a24, 0xfdffc78873d4490d, 0x2100000000000000), // 10^56
+ UInt256(0x0000000000000000, 0x28c87cb5c89a2571, 0xebfdcb54864ada83, 0x4a00000000000000), // 10^57
+ UInt256(0x0000000000000001, 0x97d4df19d6057673, 0x37e9f14d3eec8920, 0xe400000000000000), // 10^58
+ UInt256(0x000000000000000f, 0xee50b7025c36a080, 0x2f236d04753d5b48, 0xe800000000000000), // 10^59
+ UInt256(0x000000000000009f, 0x4f2726179a224501, 0xd762422c946590d9, 0x1000000000000000), // 10^60
+ UInt256(0x0000000000000639, 0x17877cec0556b212, 0x69d695bdcbf7a87a, 0xa000000000000000), // 10^61
+ UInt256(0x0000000000003e3a, 0xeb4ae1383562f4b8, 0x2261d969f7ac94ca, 0x4000000000000000), // 10^62
+ UInt256(0x0000000000026e4d, 0x30eccc3215dd8f31, 0x57d27e23acbdcfe6, 0x8000000000000000), // 10^63
+ UInt256(0x0000000000184f03, 0xe93ff9f4daa797ed, 0x6e38ed64bf6a1f01, 0x0000000000000000), // 10^64
+ UInt256(0x0000000000f31627, 0x1c7fc3908a8bef46, 0x4e3945ef7a25360a, 0x0000000000000000), // 10^65
+ UInt256(0x00000000097edd87, 0x1cfda3a5697758bf, 0x0e3cbb5ac5741c64, 0x0000000000000000), // 10^66
+ UInt256(0x000000005ef4a747, 0x21e864761ea97776, 0x8e5f518bb6891be8, 0x0000000000000000), // 10^67
+ UInt256(0x00000003b58e88c7, 0x5313ec9d329eaaa1, 0x8fb92f75215b1710, 0x0000000000000000), // 10^68
+ UInt256(0x00000025179157c9, 0x3ec73e23fa32aa4f, 0x9d3bda934d8ee6a0, 0x0000000000000000), // 10^69
+ UInt256(0x00000172ebad6ddc, 0x73c86d67c5faa71c, 0x245689c107950240, 0x0000000000000000), // 10^70
+ UInt256(0x00000e7d34c64a9c, 0x85d4460dbbca8719, 0x6b61618a4bd21680, 0x0000000000000000), // 10^71
+ UInt256(0x000090e40fbeea1d, 0x3a4abc8955e946fe, 0x31cdcf66f634e100, 0x0000000000000000), // 10^72
+ UInt256(0x0005a8e89d752524, 0x46eb5d5d5b1cc5ed, 0xf20a1a059e10ca00, 0x0000000000000000), // 10^73
+ UInt256(0x003899162693736a, 0xc531a5a58f1fbb4b, 0x746504382ca7e400, 0x0000000000000000), // 10^74
+ UInt256(0x0235fadd81c2822b, 0xb3f07877973d50f2, 0x8bf22a31be8ee800, 0x0000000000000000), // 10^75
+ UInt256(0x161bcca7119915b5, 0x0764b4abe8652979, 0x7775a5f171951000, 0x0000000000000000), // 10^76
+ UInt256(0xdd15fe86affad912, 0x49ef0eb713f39ebe, 0xaa987b6e6fd2a000, 0x0000000000000000), // 10^77
+]
diff --git a/Sources/Decimal/Tables/Tables.swift b/Sources/Decimal/Tables/Tables.swift
new file mode 100644
index 0000000..51f600d
--- /dev/null
+++ b/Sources/Decimal/Tables/Tables.swift
@@ -0,0 +1 @@
+internal enum Tables {}
diff --git a/Sources/test-hossam-fahmy/AllDecimals32.swift b/Sources/test-hossam-fahmy/AllDecimals32.swift
new file mode 100644
index 0000000..ea7332b
--- /dev/null
+++ b/Sources/test-hossam-fahmy/AllDecimals32.swift
@@ -0,0 +1,64 @@
+import Decimal
+import Foundation
+
+// Base
+private typealias BID = Decimal32.BitPattern
+private let bitWidth = BID.bitWidth
+private let signWidth = 1
+private let combinationWidth = 11
+private let emax = 96
+private let exponentBias = 101
+private let precisionInDigits = 7
+private let maxDecimalDigits: BID = 9_999_999
+// Derived
+private let maxSignedExponent = emax - precisionInDigits + 1
+private let maxBiasedExponent = BID(maxSignedExponent + exponentBias)
+private let combinationHighBitsWidth = 2
+private let combinationHighBits11Mask: BID = 0b11 << (bitWidth - signWidth - 2)
+private let combinationExponentWidth = combinationWidth - 5
+private let exponentWidth = combinationExponentWidth + 2
+private let exponentShift_00_01_10 = bitWidth - signWidth - exponentWidth
+private let maxSignificand_00_01_10: BID = 1 << exponentShift_00_01_10
+private let exponentShift_11 = bitWidth - signWidth - combinationHighBitsWidth - exponentWidth
+private let significandMask_11: BID = (1 << exponentShift_11) - 1
+
+/// Produce all positive `Decimals32`.
+///
+/// This will iterate all 1 910 000 000 possible values in ~2min.
+func forEveryDecimal32(f: (Decimal32) -> Void) {
+ let start = Date()
+
+ for exponent in 0...maxBiasedExponent {
+ if exponent.isMultiple(of: 10) {
+ print("\(exponent)/\(maxBiasedExponent) <- current exponent")
+ }
+
+ for significand in 0...maxDecimalDigits {
+ let decimal = pack(
+ biasedExponent: exponent,
+ significand: significand
+ )
+
+ f(decimal)
+ }
+ }
+
+ let end = Date()
+ let duration = end.timeIntervalSince1970 - start.timeIntervalSince1970
+ print("Total: \(duration)s")
+}
+
+private func pack(
+ biasedExponent: Decimal32.BitPattern,
+ significand: Decimal32.BitPattern
+) -> Decimal32 {
+ if significand < maxSignificand_00_01_10 {
+ let e = biasedExponent << exponentShift_00_01_10
+ return Decimal32(binaryEncoding: e | significand)
+ }
+
+ // Add significand, without leading bits
+ let e = biasedExponent << exponentShift_11
+ let s = significand & significandMask_11
+ return Decimal32(binaryEncoding: combinationHighBits11Mask | e | s)
+}
diff --git a/Sources/test-hossam-fahmy/Extensions.swift b/Sources/test-hossam-fahmy/Extensions.swift
new file mode 100644
index 0000000..1c0761f
--- /dev/null
+++ b/Sources/test-hossam-fahmy/Extensions.swift
@@ -0,0 +1,9 @@
+import Decimal
+
+extension Array {
+ var any: Bool { !self.isEmpty }
+}
+
+extension DecimalFloatingPoint {
+ var isQuietNaN: Bool { self.isNaN && !self.isSignalingNaN }
+}
diff --git a/Sources/test-hossam-fahmy/FileSystem.swift b/Sources/test-hossam-fahmy/FileSystem.swift
new file mode 100644
index 0000000..28178aa
--- /dev/null
+++ b/Sources/test-hossam-fahmy/FileSystem.swift
@@ -0,0 +1,69 @@
+import Foundation
+
+struct File: CustomStringConvertible {
+ fileprivate let url: URL
+
+ var name: String { self.url.lastPathComponent }
+ var path: String { self.url.path }
+ var `extension`: String { self.url.pathExtension }
+ var description: String { self.path }
+
+ init(path: String) {
+ self.url = URL(fileURLWithPath: path)
+ }
+
+ fileprivate init(url: URL) {
+ self.url = url
+ }
+}
+
+@available(macOS 10.15.4, *)
+struct FileDescriptor {
+ fileprivate let raw: FileHandle
+
+ func read(count: Int) throws -> Data {
+ let result = try self.raw.read(upToCount: count)
+ return result ?? Data()
+ }
+
+ func close() throws {
+ try self.raw.close()
+ }
+}
+
+private let fm = FileManager.default
+
+@available(macOS 10.15.4, *)
+enum FileSystem {
+
+ static func openForReading(file: File) throws -> FileDescriptor {
+ let raw = try FileHandle(forReadingFrom: file.url)
+ return FileDescriptor(raw: raw)
+ }
+
+ static func readdir(
+ path: String,
+ recursive: Bool = false
+ ) throws -> [File] {
+ var result = [File]()
+ let url = URL(fileURLWithPath: path, isDirectory: true)
+ try Self.readdir(url: url, recursive: recursive, into: &result)
+ return result
+ }
+
+ private static func readdir(
+ url: URL,
+ recursive: Bool,
+ into result: inout [File]
+ ) throws {
+ let entries = try fm.contentsOfDirectory(at: url, includingPropertiesForKeys: nil)
+
+ for e in entries {
+ if e.hasDirectoryPath && recursive {
+ try Self.readdir(url: e, recursive: recursive, into: &result)
+ } else {
+ result.append(File(url: e))
+ }
+ }
+ }
+}
diff --git a/Sources/test-hossam-fahmy/LineParser.swift b/Sources/test-hossam-fahmy/LineParser.swift
new file mode 100644
index 0000000..b5c9fd1
--- /dev/null
+++ b/Sources/test-hossam-fahmy/LineParser.swift
@@ -0,0 +1,35 @@
+struct LineParser {
+
+ private let line: String
+ private var index: String.Index
+
+ var isEnd: Bool { self.index == self.line.endIndex }
+
+ init(line: String) {
+ self.line = line
+ self.index = line.startIndex
+ }
+
+ mutating func consumeSpaces() {
+ var index = self.index
+ self.advanceWhile(&index) { $0.isWhitespace }
+ self.index = index
+ }
+
+ mutating func consumeUntilSpace() -> Substring {
+ let start = self.index
+ var end = start
+ self.advanceWhile(&end) { !$0.isWhitespace }
+ self.index = end
+ return self.line[start.. Bool
+ ) {
+ while index != self.line.endIndex, fn(self.line[index]) {
+ self.line.formIndex(after: &index)
+ }
+ }
+}
diff --git a/Sources/test-hossam-fahmy/LineReader.swift b/Sources/test-hossam-fahmy/LineReader.swift
new file mode 100644
index 0000000..ce1cb49
--- /dev/null
+++ b/Sources/test-hossam-fahmy/LineReader.swift
@@ -0,0 +1,137 @@
+import Foundation
+
+private let LF: UInt8 = 10
+private let CR: UInt8 = 13
+private let bufferSize = 8192
+private let encoding = String.Encoding.ascii
+
+@available(macOS 10.15.4, *)
+class LineReader {
+
+ private enum State {
+ case new
+ case open(FileDescriptor)
+ case finished
+ }
+
+ private let file: File
+ private var state = State.new
+ private var data = Data()
+ private var dataOffset = 0
+
+ init(file: File) {
+ self.file = file
+ }
+
+ enum Result {
+ case line(String)
+ case openError(Error)
+ case readingError(Error)
+ case decodingError(Data)
+ case lineTooLong(maxLength: Int)
+ case end
+ }
+
+ func readLine() -> Result {
+ let fd: FileDescriptor
+
+ switch self.state {
+ case .new:
+ do {
+ fd = try FileSystem.openForReading(file: self.file)
+ self.state = .open(fd)
+ } catch {
+ self.state = .finished
+ return self.error(.openError(error))
+ }
+ case .open(let f):
+ fd = f
+ case .finished:
+ return .end
+ }
+
+ if let endIndex = self.findLineEndIndex(data: self.data, offset: self.dataOffset) {
+ let data = self.data[self.dataOffset.. Int? {
+ for i in offset.. Result {
+ if let s = String(data: data, encoding: encoding) {
+ return .line(s)
+ }
+
+ return self.error(.decodingError(data))
+ }
+
+ private func error(_ error: Result) -> Result {
+ self.state = .finished
+ return error
+ }
+
+ func close() -> Error? {
+ switch self.state {
+ case .open(let fd):
+ do {
+ try fd.close()
+ } catch {
+ return error
+ }
+
+ case .new,
+ .finished:
+ break
+ }
+
+ self.state = .finished
+ return nil
+ }
+}
diff --git a/Sources/test-hossam-fahmy/TestResult.swift b/Sources/test-hossam-fahmy/TestResult.swift
new file mode 100644
index 0000000..646afe1
--- /dev/null
+++ b/Sources/test-hossam-fahmy/TestResult.swift
@@ -0,0 +1,31 @@
+struct TestResult {
+
+ let file: File
+ let lineCount: Int
+ let duration: Timer.Duration
+
+ let failures: [Failure]
+ let invalidLines: [InvalidLine]
+ let fileErrors: [FileError]
+
+ /// Test failed
+ struct Failure {
+ let message: String
+ let lineNo: Int
+ let line: String
+ }
+
+ /// Line is not valid.
+ struct InvalidLine {
+ let message: String
+ let lineNo: Int
+ let line: String
+ }
+
+ /// Error when reading the file.
+ struct FileError {
+ let message: String
+ let lineNo: Int?
+ let error: Error?
+ }
+}
diff --git a/Sources/test-hossam-fahmy/TestRunner.swift b/Sources/test-hossam-fahmy/TestRunner.swift
new file mode 100644
index 0000000..4d40008
--- /dev/null
+++ b/Sources/test-hossam-fahmy/TestRunner.swift
@@ -0,0 +1,924 @@
+import Decimal
+import Foundation
+
+@available(macOS 10.15.4, *)
+actor TestRunner {
+
+ private let file: File
+ /// Current line.
+ private var line = ""
+ /// Current line number.
+ private var lineNo = 0
+
+ private var failures = [TestResult.Failure]()
+ private var invalidLines = [TestResult.InvalidLine]()
+ private var fileErrors = [TestResult.FileError]()
+
+ private var name: String { self.file.name }
+ private var path: String { self.file.path }
+
+ init(file: File) {
+ self.file = file
+ }
+
+ // MARK: - Run
+
+ func run() -> TestResult {
+ var timer = Timer()
+ timer.start()
+
+ let reader = LineReader(file: self.file)
+ var isReading = true
+
+ while isReading {
+ switch reader.readLine() {
+ case let .line(l):
+ self.line = l
+ self.lineNo += 1
+ self.runLine()
+ case let .openError(e):
+ self.addFileError("Error when opening file", error: e)
+ isReading = false
+ case let .readingError(e):
+ self.addFileError("Error when reading file", error: e)
+ isReading = false
+ case .decodingError:
+ self.addFileError("Error when decoding line")
+ isReading = false
+ case let .lineTooLong(maxLength):
+ self.addFileError("Lines longer than \(maxLength) bytes are not supported")
+ isReading = false
+ case .end:
+ isReading = false
+ }
+ }
+
+ if let error = reader.close() {
+ self.addFileError("Error when closing file", error: error)
+ }
+
+ timer.end()
+
+ return TestResult(
+ file: self.file,
+ lineCount: self.lineNo,
+ duration: timer.duration,
+ failures: self.failures,
+ invalidLines: self.invalidLines,
+ fileErrors: self.fileErrors
+ )
+ }
+
+ private func runLine() {
+ var parser = LineParser(line: self.line)
+ parser.consumeSpaces()
+
+ if parser.isEnd {
+ return
+ }
+
+ func dispatch(
+ _ t: T.Type,
+ _ operation: Substring
+ ) where T.Exponent == Int {
+ switch operation {
+ // Operations from http://eece.cu.edu.eg/~hfahmy/arith_debug
+ case "+": self.runAdd(T.self, &parser)
+ case "-": self.runSub(T.self, &parser)
+ case "*": self.runMul(T.self, &parser)
+ case "/": self.runDiv(T.self, &parser)
+ case "*+": self.runMulAdd(T.self, &parser)
+ case "*-": self.runMulSub(T.self, &parser)
+ case "V": self.runSqrt(T.self, &parser)
+ // Operations from oh-my-decimal-tests:
+ case "is_canonical": self.runPropertyTest(T.self, &parser) { $0.isCanonical }
+ case "is_finite": self.runPropertyTest(T.self, &parser) { $0.isFinite }
+ case "is_infinite": self.runPropertyTest(T.self, &parser) { $0.isInfinite }
+ case "is_nan": self.runPropertyTest(T.self, &parser) { $0.isNaN }
+ case "is_negative": self.runPropertyTest(T.self, &parser) { $0.sign == .minus }
+ case "is_normal": self.runPropertyTest(T.self, &parser) { $0.isNormal }
+ case "is_qnan": self.runPropertyTest(T.self, &parser) { $0.isQuietNaN }
+ case "is_snan": self.runPropertyTest(T.self, &parser) { $0.isSignalingNaN }
+ case "is_subnormal": self.runPropertyTest(T.self, &parser) { $0.isSubnormal }
+ case "is_zero": self.runPropertyTest(T.self, &parser) { $0.isZero }
+ case "plus": self.runUnary(T.self, &parser) { +$0 }
+ case "minus": self.runUnary(T.self, &parser) { -$0 }
+ case "abs": self.runUnary(T.self, &parser) { $0.magnitude }
+ case "rem_near": self.runRemainderNear(T.self, &parser)
+ case "rem_trunc": self.runRemainderTrunc(T.self, &parser)
+ case "compare": self.runCompare(T.self, &parser)
+ case "compare_total": self.runCompareTotal(T.self, &parser, T.isTotallyOrdered)
+ case "compare_total_mag": self.runCompareTotal(T.self, &parser, T.isMagnitudeTotallyOrdered)
+ case "min": self.runMinMax(T.self, &parser) { T.minimum($0, $1, status: &$2) }
+ case "min_mag": self.runMinMax(T.self, &parser) { T.minimumMagnitude($0, $1, status: &$2) }
+ case "max": self.runMinMax(T.self, &parser) { T.maximum($0, $1, status: &$2) }
+ case "max_mag": self.runMinMax(T.self, &parser) { T.maximumMagnitude($0, $1, status: &$2) }
+ case "next_up": self.runNext(T.self, &parser) { $0.nextUp(status: &$1) }
+ case "next_down": self.runNext(T.self, &parser) { $0.nextDown(status: &$1) }
+ case "quantize": self.runQuantize(T.self, &parser)
+ case "same_quantum": self.runSameQuantum(T.self, &parser)
+ case "logb": self.runLogB(T.self, &parser)
+ case "scaleb": self.runScaleB(T.self, &parser)
+ case "copy_sign": self.runCopySign(T.self, &parser)
+ case "round": self.runRound(T.self, &parser)
+ case "round_exact": self.runRoundExact(T.self, &parser)
+ // ?
+ default: self.addInvalidLine("Invalid line header: '\(header)'")
+ }
+ }
+
+ let header = parser.consumeUntilSpace()
+
+ if header.starts(with: "d64") {
+ let operation = header.dropFirst(3)
+ dispatch(Decimal64.self, operation)
+ return
+ }
+
+ if header.starts(with: "d128") {
+ let operation = header.dropFirst(4)
+ dispatch(Decimal128.self, operation)
+ return
+ }
+
+ self.addInvalidLine("Invalid line header: '\(header)'")
+ }
+
+ private func runAdd(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ guard let rounding = self.consumeRounding(&parser) else { return }
+ guard let lhs: T = self.consumeDecimal(&parser) else { return }
+ guard let rhs: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = lhs.adding(rhs, rounding: rounding, status: &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runSub(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ guard let rounding = self.consumeRounding(&parser) else { return }
+ guard let lhs: T = self.consumeDecimal(&parser) else { return }
+ guard let rhs: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = lhs.subtracting(rhs, rounding: rounding, status: &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runMul(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ guard let rounding = self.consumeRounding(&parser) else { return }
+ guard let lhs: T = self.consumeDecimal(&parser) else { return }
+ guard let rhs: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = lhs.multiplied(by: rhs, rounding: rounding, status: &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runDiv(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ guard let rounding = self.consumeRounding(&parser) else { return }
+ guard let lhs: T = self.consumeDecimal(&parser) else { return }
+ guard let rhs: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = lhs.divided(by: rhs, rounding: rounding, status: &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runRemainderNear(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ self.consumeWhatever(&parser) // Rounding
+ guard let lhs: T = self.consumeDecimal(&parser) else { return }
+ guard let rhs: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = lhs.remainder(dividingBy: rhs, status: &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runRemainderTrunc(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ self.consumeWhatever(&parser) // Rounding
+ guard let lhs: T = self.consumeDecimal(&parser) else { return }
+ guard let rhs: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = lhs.truncatingRemainder(dividingBy: rhs, status: &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runMulAdd(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ guard let rounding = self.consumeRounding(&parser) else { return }
+ guard let mulLhs: T = self.consumeDecimal(&parser) else { return }
+ guard let mulRhs: T = self.consumeDecimal(&parser) else { return }
+ guard let add: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard var expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ self.fixMulAddTest(mulLhs: mulLhs, mulRhs: mulRhs, add: add, expected: &expected)
+
+ var status = DecimalStatus()
+ let result = add.addingProduct(mulLhs, mulRhs, rounding: rounding, status: &status)
+
+ self.fixMulAdd_zeroInfNaN_raisesInvalidOperation(
+ mulLhs: mulLhs,
+ mulRhs: mulRhs,
+ add: add,
+ status: &status
+ )
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func fixMulAddTest(
+ mulLhs: T,
+ mulRhs: T,
+ add: T,
+ expected: inout T
+ ) {
+ // Incorrect line:
+ // d64*+ > -5064047626626594E276 +9999999999990028E64 +1E-398 -> -4131706727960463E341 x
+ //
+ // The correct result:
+ // -5064047626621544E+356
+ //
+ // In Python:
+ // context = decimal.Context(
+ // prec=16,
+ // rounding=decimal.ROUND_CEILING,
+ // Emin=-383,
+ // Emax=384,
+ // clamp=1,
+ // )
+ //
+ // mulLhs = Decimal("-5064047626626594E276")
+ // mulRhs = Decimal("+9999999999990028E64")
+ // add = Decimal("+1E-398")
+ //
+ // result = context.fma(mulLhs, mulRhs, add)
+ // print(result) # -5.064047626621544e371
+ //
+ // In Intel:
+ // _IDEC_flags status = 0;
+ // BID_UINT64 mulLhs = __bid64_from_string("-5064047626626594E276", BID_ROUNDING_TO_ZERO, &status);
+ // BID_UINT64 mulRhs = __bid64_from_string("+9999999999990028E64", BID_ROUNDING_TO_ZERO, &status);
+ // BID_UINT64 add = __bid64_from_string("+1E-398", BID_ROUNDING_TO_ZERO, &status);
+ //
+ // status = 0;
+ // BID_UINT64 result = __bid64_fma(mulLhs, mulRhs, add, BID_ROUNDING_UP, &status);
+ //
+ // __bid64_to_string(str, result, &status);
+ // printf("result: %s\n", str); // result: -5064047626621544E+356
+
+ if mulLhs.binaryEncoding == (15299288382176831010 as T.BitPattern)
+ && mulRhs.binaryEncoding == (7958853342308915468 as T.BitPattern)
+ && add.binaryEncoding == (1 as T.BitPattern) {
+ expected = T(binaryEncoding: 16019864322556105320)
+ }
+ }
+
+ private func runMulSub(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ guard let rounding = self.consumeRounding(&parser) else { return }
+ guard let mulLhs: T = self.consumeDecimal(&parser) else { return }
+ guard let mulRhs: T = self.consumeDecimal(&parser) else { return }
+ guard var add: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ // 'fusedMultiplySub', not 'add'
+ if !add.isNaN {
+ add.negate()
+ }
+
+ var status = DecimalStatus()
+ let result = add.addingProduct(mulLhs, mulRhs, rounding: rounding, status: &status)
+
+ self.fixMulAdd_zeroInfNaN_raisesInvalidOperation(
+ mulLhs: mulLhs,
+ mulRhs: mulRhs,
+ add: add,
+ status: &status
+ )
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func fixMulAdd_zeroInfNaN_raisesInvalidOperation(
+ mulLhs: T,
+ mulRhs: T,
+ add: T,
+ status: inout DecimalStatus
+ ) {
+ // IEEE-754 -> 7.2 Invalid operation
+ // These operations are:
+ // ― fusedMultiplyAdd(0, ∞, c) or fusedMultiplyAdd(∞, 0, c) unless c is a
+ // quiet NaN; if c is a quiet NaN then it is implementation defined whether
+ // the invalid operation exception is signaled
+ //
+ // Our decision was to not raise 'invalid operation', tests expect raise.
+ let zeroInf = mulLhs.isZero && mulRhs.isInfinite
+ let infZero = mulLhs.isInfinite && mulRhs.isZero
+
+ if (zeroInf || infZero) && add.isQuietNaN {
+ status.set(.isInvalidOperation)
+ }
+ }
+
+ private func runSqrt(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ guard let rounding = self.consumeRounding(&parser) else { return }
+ guard let d: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = d.squareRoot(rounding: rounding, status: &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runPropertyTest(
+ _ t: T.Type,
+ _ parser: inout LineParser,
+ apply: (T) -> Bool
+ ) {
+ self.consumeWhatever(&parser) // Rounding
+ guard let d: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected = self.consumeBool(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfStatusIsNotEmpty("Property", expectedStatus)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ let result = apply(d)
+ self.assertEqual(result, expected)
+ }
+
+ private func runUnary(
+ _ t: T.Type,
+ _ parser: inout LineParser,
+ apply: (T) -> T
+ ) {
+ self.consumeWhatever(&parser) // Rounding
+ guard let d: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+
+ if !expectedStatus.isEmpty {
+ self.addInvalidLine("Unary operations do not have status")
+ }
+
+ self.addInvalidLineIfNotEnd(&parser)
+
+ let result = apply(d)
+ self.assertEqual(result, expected)
+ }
+
+ private func runCompare(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ self.consumeWhatever(&parser) // Rounding
+ guard let lhs: T = self.consumeDecimal(&parser) else { return }
+ guard let rhs: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expectedResult = self.consumeCompareResult(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ let expectedEqual = expectedResult == .equal
+ let expectedLess = expectedResult == .less
+ let expectedGreater = expectedResult == .greater
+ var status = DecimalStatus()
+
+ let isEqual = lhs.isEqual(to: rhs, status: &status)
+ self.assertEqual(isEqual, expectedEqual, "isEqual")
+ self.assertEqual(status, expectedStatus, "isEqual")
+ status.clearAll()
+
+ let isLess = lhs.isLess(than: rhs, status: &status)
+ self.assertEqual(isLess, expectedLess, "isLess")
+ self.assertEqual(status, expectedStatus, "isLess")
+ status.clearAll()
+
+ let isLessEqual = lhs.isLessThanOrEqualTo(rhs, status: &status)
+ let expectedLessEqual = expectedEqual || expectedLess
+ self.assertEqual(isLessEqual, expectedLessEqual, "isLessEqual")
+ self.assertEqual(status, expectedStatus, "isLessEqual")
+ status.clearAll()
+
+ let isGreater = rhs.isLess(than: lhs, status: &status)
+ self.assertEqual(isGreater, expectedGreater, "isGreater")
+ self.assertEqual(status, expectedStatus, "isGreater")
+ status.clearAll()
+
+ let isGreaterEqual = rhs.isLessThanOrEqualTo(lhs, status: &status)
+ let expectedGreaterEqual = expectedEqual || expectedGreater
+ self.assertEqual(isGreaterEqual, expectedGreaterEqual, "isGreaterEqual")
+ self.assertEqual(status, expectedStatus, "isGreaterEqual")
+ status.clearAll()
+ }
+
+ private func runCompareTotal(
+ _ t: T.Type,
+ _ parser: inout LineParser,
+ _ apply: (T) -> (T) -> Bool
+ ) {
+ self.consumeWhatever(&parser) // Rounding
+ guard let lhs: T = self.consumeDecimal(&parser) else { return }
+ guard let rhs: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expectedResult = self.consumeCompareTotalResult(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfStatusIsNotEmpty("Compare total", expectedStatus)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ let expectedBool: Bool
+ switch expectedResult {
+ case .equal, .less: expectedBool = true
+ case .greater: expectedBool = false
+ }
+
+ let isBelowOrEqualTo = apply(lhs)(rhs)
+ self.assertEqual(isBelowOrEqualTo, expectedBool)
+ }
+
+ private func runMinMax(
+ _ t: T.Type,
+ _ parser: inout LineParser,
+ apply: (T, T, inout DecimalStatus) -> T
+ ) {
+ self.consumeWhatever(&parser) // Rounding
+ guard let lhs: T = self.consumeDecimal(&parser) else { return }
+ guard let rhs: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = apply(lhs, rhs, &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runNext(
+ _ t: T.Type,
+ _ parser: inout LineParser,
+ apply: (T, inout DecimalStatus) -> T
+ ) {
+ self.consumeWhatever(&parser) // Rounding
+ guard let d: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = apply(d, &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runQuantize(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ guard let rounding = self.consumeRounding(&parser) else { return }
+ guard let lhs: T = self.consumeDecimal(&parser) else { return }
+ guard let rhs: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = lhs.quantized(to: rhs, rounding: rounding, status: &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runSameQuantum(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ self.consumeWhatever(&parser) // Rounding
+ guard let lhs: T = self.consumeDecimal(&parser) else { return }
+ guard let rhs: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected = self.consumeBool(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfStatusIsNotEmpty("Same quantum", expectedStatus)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ let result = lhs.sameQuantum(as: rhs)
+ self.assertEqual(result, expected)
+ }
+
+ private func runLogB(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) where T.Exponent == Int {
+ self.consumeWhatever(&parser) // Rounding
+ guard let d: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected = self.consumeInt(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = d.exponent(status: &status)
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runScaleB(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) where T.Exponent == Int {
+ guard let rounding = self.consumeRounding(&parser) else { return }
+ guard let significand: T = self.consumeDecimal(&parser) else { return }
+ guard let exponent = self.consumeInt(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = T(
+ sign: .plus,
+ exponent: exponent,
+ significand: significand,
+ rounding: rounding,
+ status: &status
+ )
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runCopySign(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ self.consumeWhatever(&parser) // Rounding
+ guard let magnitude: T = self.consumeDecimal(&parser) else { return }
+ guard let sign: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfStatusIsNotEmpty("Copy sign", expectedStatus)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ let result = T(signOf: sign, magnitudeOf: magnitude)
+ self.assertEqual(result, expected)
+ }
+
+ private func runRound(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ guard let rounding = self.consumeRounding(&parser) else { return }
+ guard let d: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = d.rounded(rounding, status: &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ private func runRoundExact(
+ _ t: T.Type,
+ _ parser: inout LineParser
+ ) {
+ guard let rounding = self.consumeRounding(&parser) else { return }
+ guard let d: T = self.consumeDecimal(&parser) else { return }
+ self.consumeArrow(&parser)
+ guard let expected: T = self.consumeDecimal(&parser) else { return }
+ let expectedStatus = self.consumeStatus(&parser)
+ self.addInvalidLineIfNotEnd(&parser)
+
+ var status = DecimalStatus()
+ let result = d.rounded(rounding, status: &status)
+
+ self.assertEqual(result, expected)
+ self.assertEqual(status, expectedStatus)
+ }
+
+ // MARK: - Assert
+
+ /// Bid equality.
+ private func assertEqual(_ lhs: T, _ rhs: T) {
+ let lhsBid = lhs.binaryEncoding
+ let rhsBid = rhs.binaryEncoding
+
+ if lhsBid != rhsBid {
+ let exp = lhs == rhs ? ", invalid exponent?" : ""
+ self.addFailure("Assert equal \(lhsBid) != \(rhsBid) (BID), \(lhs) != \(rhs)\(exp)")
+ }
+ }
+
+ /// Equal via `==`.
+ private func assertEqualViaEqualEqual(_ lhs: T, _ rhs: T) {
+ if lhs.isNaN || rhs.isNaN {
+ // NaN uses bid equality
+ self.assertEqual(lhs, rhs)
+ } else {
+ self.addFailure("Assert equal \(lhs) != \(rhs)")
+ }
+ }
+
+ private func assertEqual(_ lhs: Bool, _ rhs: Bool, _ message: String = "") {
+ if lhs != rhs {
+ let m = message.isEmpty ? "" : ": " + message
+ self.addFailure("Assert equal \(lhs) != \(rhs)\(m)")
+ }
+ }
+
+ private func assertEqual(_ lhs: Int, _ rhs: Int) {
+ if lhs != rhs {
+ self.addFailure("Assert equal \(lhs) != \(rhs)")
+ }
+ }
+
+ private func assertEqual(
+ _ lhs: DecimalStatus,
+ _ rhs: DecimalStatus,
+ _ message: String = ""
+ ) {
+ if lhs != rhs {
+ let m = message.isEmpty ? "" : ": " + message
+ self.addFailure("Assert equal \(lhs) == \(rhs)\(m)")
+ }
+ }
+
+ // MARK: - Parse
+
+ private func consumeWhatever(_ parser: inout LineParser) {
+ parser.consumeSpaces()
+ _ = parser.consumeUntilSpace()
+ }
+
+ private func consumeRounding(_ parser: inout LineParser) -> DecimalFloatingPointRoundingRule? {
+ parser.consumeSpaces()
+ let s = parser.consumeUntilSpace()
+
+ switch s {
+ case ">": return .up
+ case "<": return .down
+ case "0": return .towardZero
+ case "=0": return .toNearestOrEven
+ case "h>": return .toNearestOrAwayFromZero
+ default:
+ self.addInvalidLine("Invalid rounding: \(s)")
+ return nil
+ }
+ }
+
+ private func consumeDecimal(_ parser: inout LineParser) -> T? {
+ parser.consumeSpaces()
+ let s = parser.consumeUntilSpace()
+ var status = DecimalStatus()
+
+ if s == "S" {
+ return T.signalingNaN
+ }
+
+ if s == "Q" {
+ return T.nan
+ }
+
+ if s == "->" {
+ self.addInvalidLine("Expected decimal, got '->'")
+ return nil
+ }
+
+ guard let result = T(s, status: &status) else {
+ if s.contains("#") {
+ self.addInvalidLine("Decimal should not contain: #.")
+ } else {
+ self.addFailure("Invalid decimal: \(s).")
+ }
+
+ return nil
+ }
+
+ guard status.isEmpty else {
+ self.addFailure("Parsed '\(s)' as \(result) with invalid status: \(status)")
+ return nil
+ }
+
+ return result
+ }
+
+ private func consumeArrow(_ parser: inout LineParser) {
+ parser.consumeSpaces()
+ _ = parser.consumeUntilSpace()
+ }
+
+ private func consumeInt(_ parser: inout LineParser) -> Int? {
+ parser.consumeSpaces()
+ let s = parser.consumeUntilSpace()
+
+ switch s {
+ case "max": return Int.max
+ case "min": return Int.min
+ default:
+ if let result = Int(s) {
+ return result
+ }
+
+ self.addInvalidLine("Invalid Int: \(s).")
+ return nil
+ }
+ }
+
+ private func consumeBool(_ parser: inout LineParser) -> Bool? {
+ parser.consumeSpaces()
+ let s = parser.consumeUntilSpace()
+
+ switch s {
+ case "0": return false
+ case "1": return true
+ default:
+ self.addInvalidLine("Invalid Bool: \(s).")
+ return nil
+ }
+ }
+
+ private enum CompareResult {
+ case nan
+ case equal
+ case less
+ case greater
+ }
+
+ private func consumeCompareResult(_ parser: inout LineParser) -> CompareResult? {
+ parser.consumeSpaces()
+ let s = parser.consumeUntilSpace()
+
+ switch s {
+ case "nan": return .nan
+ case "eq": return .equal
+ case "lt": return .less
+ case "gt": return .greater
+ default:
+ self.addInvalidLine("Invalid compare result: \(s).")
+ return nil
+ }
+ }
+
+ private enum CompareTotalResult {
+ case equal
+ case less
+ case greater
+ }
+
+ private func consumeCompareTotalResult(_ parser: inout LineParser) -> CompareTotalResult? {
+ parser.consumeSpaces()
+ let s = parser.consumeUntilSpace()
+
+ switch s {
+ case "eq": return .equal
+ case "lt": return .less
+ case "gt": return .greater
+ default:
+ self.addInvalidLine("Invalid compare total result: \(s).")
+ return nil
+ }
+ }
+
+ private func consumeStatus(_ parser: inout LineParser) -> DecimalStatus {
+ parser.consumeSpaces()
+ let s = parser.consumeUntilSpace()
+
+ // Mark as invalid, but only once.
+ var isInvalidLine = false
+ var result = DecimalStatus()
+
+ for c in s {
+ switch c {
+ case "x": result.set(.isInexact)
+ case "u": result.set(.isUnderflow)
+ case "o": result.set(.isOverflow)
+ case "z": result.set(.isDivisionByZero)
+ case "i": result.set(.isInvalidOperation)
+ default:
+ if !isInvalidLine {
+ isInvalidLine = true
+ self.addInvalidLine("Invalid status: \(s).")
+ }
+ }
+ }
+
+ return result
+ }
+
+ // MARK: - Result
+
+ func addFailure(_ message: String) {
+ let f = TestResult.Failure(message: message, lineNo: lineNo, line: line)
+ self.failures.append(f)
+ }
+
+ func addInvalidLine(_ message: String) {
+ let i = TestResult.InvalidLine(message: message, lineNo: self.lineNo, line: self.line)
+ self.invalidLines.append(i)
+ }
+
+ private func addInvalidLineIfNotEnd(_ parser: inout LineParser) {
+ parser.consumeSpaces()
+
+ if !parser.isEnd {
+ self.addInvalidLine("Expected end")
+ }
+ }
+
+ private func addInvalidLineIfStatusIsNotEmpty(_ operation: String, _ status: DecimalStatus) {
+ if !status.isEmpty {
+ self.addInvalidLine("\(operation) does not have status")
+ }
+ }
+
+ func addFileError(_ message: String, error: Error? = nil) {
+ let e = TestResult.FileError(message: message, lineNo: self.lineNo, error: error)
+ self.fileErrors.append(e)
+ }
+}
diff --git a/Sources/test-hossam-fahmy/Timer.swift b/Sources/test-hossam-fahmy/Timer.swift
new file mode 100644
index 0000000..d95eeb7
--- /dev/null
+++ b/Sources/test-hossam-fahmy/Timer.swift
@@ -0,0 +1,28 @@
+import Foundation
+
+struct Timer {
+
+ struct Duration {
+ let seconds: Double
+ let secondsString: String
+ }
+
+ private var _start = DispatchTime.distantFuture
+ private var _end = DispatchTime.distantFuture
+
+ /// Duration in seconds
+ var duration: Duration {
+ let nano = self._end.uptimeNanoseconds - self._start.uptimeNanoseconds
+ let seconds = Double(nano) / 1_000_000_000
+ let secondsString = String(format: "%.2f", seconds)
+ return Duration(seconds: seconds, secondsString: secondsString)
+ }
+
+ mutating func start() {
+ self._start = DispatchTime.now()
+ }
+
+ mutating func end() {
+ self._end = DispatchTime.now()
+ }
+}
diff --git a/Sources/test-hossam-fahmy/main.swift b/Sources/test-hossam-fahmy/main.swift
new file mode 100644
index 0000000..495f2bc
--- /dev/null
+++ b/Sources/test-hossam-fahmy/main.swift
@@ -0,0 +1,131 @@
+import Decimal
+import Foundation
+
+@MainActor
+private func print(result: TestResult) {
+ let name = result.file.name
+ let path = result.file.path
+ let duration = result.duration.secondsString
+
+ if result.fileErrors.any {
+ print("\(name) FILE ERROR (!!1)")
+ } else if result.failures.any {
+ print("\(name) failed (\(duration)s)")
+ } else {
+ print("\(name) passed (\(duration)s)")
+ }
+
+ for i in result.invalidLines {
+ print("🟡 \(path):\(i.lineNo) \(i.message)")
+ }
+
+ for i in result.failures {
+ print("🔴 \(path):\(i.lineNo) \(i.message)")
+ print(i.line)
+ }
+
+ for i in result.fileErrors {
+ let lineNo = i.lineNo.map { ": \($0)" } ?? ""
+ let error = i.error.map { " \($0)" } ?? ""
+ print("💀 \(path)\(lineNo) \(i.message)\(error)")
+ }
+}
+
+@MainActor
+@available(macOS 10.15.4, *)
+func main() async throws -> Int32 {
+#if DEBUG
+ print(String(repeating: "=", count: 80))
+ print("Hossam Fahmy tests should be run in RELEASE mode!")
+ print("(unless you have a lot of time)")
+ print(String(repeating: "=", count: 80))
+ print()
+#endif
+
+ if CommandLine.arguments.count < 2 {
+ print("USAGE: test-hossam-fahmy DIRECTORIES_WITH_TESTS…")
+ return EXIT_FAILURE
+ }
+
+ var files = [File]()
+
+ for dir in CommandLine.arguments.dropFirst() {
+ let dirFiles = try FileSystem.readdir(path: dir, recursive: true)
+
+ for file in dirFiles where file.extension == "txt" {
+ files.append(file)
+ }
+ }
+
+ var timer = Timer()
+ timer.start()
+
+ // Execute tests in parallel.
+ let results = await withTaskGroup(of: TestResult.self) { group -> [TestResult] in
+ for file in files {
+ group.addTask {
+ let runner = TestRunner(file: file)
+ let result = await runner.run()
+ await print(result: result)
+ return result
+ }
+ }
+
+ var acc = [TestResult]()
+
+ for await result in group {
+ acc.append(result)
+ }
+
+ return acc
+ }
+
+ timer.end()
+ let duration = timer.duration.secondsString
+
+ var lineCount = 0
+ var invalidLineCount = 0
+ var failureCount = 0
+ var fileErrorCount = 0
+
+ for r in results {
+ lineCount += r.lineCount
+ failureCount += r.failures.count
+ fileErrorCount += r.fileErrors.count
+ invalidLineCount += r.invalidLines.count
+ }
+
+ let fileCount = files.count
+ let fileCountS = fileCount == 1 ? "" : "s"
+
+ if fileErrorCount != 0 {
+ let s = fileErrorCount == 1 ? "" : "s"
+ print("💀 Executed \(fileCount) test\(fileCountS), with \(fileErrorCount) file error\(s). CRITICAL!!1")
+ return EXIT_FAILURE
+ }
+
+ if failureCount != 0 {
+ let s = failureCount == 1 ? "" : "s"
+ let emoji = ["💩", "🙈", "😵", "😟"].randomElement() ?? "FAIL"
+ print("\(emoji) Executed \(fileCount) test\(fileCountS), with \(failureCount) failure\(s) in \(duration)s")
+ return EXIT_FAILURE
+ }
+
+ if lineCount == 0 {
+ print("🦄 No tests? ")
+ }
+
+ // There are more emoji for success than failure, because we are optimists.
+ let emoji = ["🩷", "🎉", "⭐", "😊", "😘", "😍"].randomElement() ?? "OK"
+ let invalid = invalidLineCount == 0 ? "" : ", \(invalidLineCount) invalid"
+ print("\(emoji) Executed \(fileCount) test\(fileCountS) (\(lineCount) lines\(invalid)) in \(duration)s")
+ return EXIT_SUCCESS
+}
+
+if #available(macOS 10.15.4, *) {
+ let status = try await main()
+ exit(status)
+} else {
+ print("Unsupported macOS version")
+ exit(EXIT_FAILURE)
+}
diff --git a/Test-suites/.gitignore b/Test-suites/.gitignore
new file mode 100644
index 0000000..bdcb39f
--- /dev/null
+++ b/Test-suites/.gitignore
@@ -0,0 +1,11 @@
+/IntelRDFPMathLib20U2/*
+!/IntelRDFPMathLib20U2/.gitkeep
+
+/speleotrove-dectest/*
+!/speleotrove-dectest/.gitkeep
+
+/Hossam-Fahmy-tests/*
+!/Hossam-Fahmy-tests/.gitkeep
+
+/Oh-my-decimal-tests/*
+!/Oh-my-decimal-tests/.gitkeep
diff --git a/Test-suites/Hossam-Fahmy-tests/.gitkeep b/Test-suites/Hossam-Fahmy-tests/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/Test-suites/IntelRDFPMathLib20U2/.gitkeep b/Test-suites/IntelRDFPMathLib20U2/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/Test-suites/Oh-my-decimal-tests/.gitkeep b/Test-suites/Oh-my-decimal-tests/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/Test-suites/speleotrove-dectest/.gitkeep b/Test-suites/speleotrove-dectest/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/Tests/DecimalTests/CodableTests.swift b/Tests/DecimalTests/CodableTests.swift
new file mode 100644
index 0000000..be4f810
--- /dev/null
+++ b/Tests/DecimalTests/CodableTests.swift
@@ -0,0 +1,209 @@
+import XCTest
+@testable import Decimal
+
+class CodableTests: XCTestCase, DecimalTests {
+
+ // MARK: - Encode
+
+ func test_encode() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) where T.BitPattern == T.BID, T.Exponent == Int {
+ let decimals: [T] = [
+ T(nan: 0x123, signaling: false),
+ T(nan: 0x123, signaling: true),
+ T.infinity,
+ T(sign: .plus, exponent: T.minSignedExponent, significand: T.zero),
+ T(sign: .plus, exponent: 0, significand: T.zero),
+ T(sign: .plus, exponent: T.maxSignedExponent, significand: T.zero),
+ T.leastNonzeroMagnitude,
+ T.leastNormalMagnitude,
+ T.greatestFiniteMagnitude,
+ ]
+
+ // Encode: bid as Int
+ for d in decimals {
+ self.assertEncode(+d, file, line)
+ self.assertEncode(-d, file, line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ private func assertEncode(
+ _ d: T,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ do {
+ let encoder = JSONEncoder()
+ let data = try encoder.encode(d)
+
+ guard let result = String(data: data, encoding: .utf8) else {
+ XCTFail("\(d): Unable to parse encoded JSON.")
+ return
+ }
+
+ let expected = "\"" + String(d.bid) + "\""
+ print(d, result)
+
+ XCTAssertEqual(result, expected, "\(d)", file: file, line: line)
+ } catch {
+ XCTFail("\(d): \(error)")
+ }
+ }
+
+ // MARK: - Encode -> decode
+
+ func test_encodeDecode_nan() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) where T.BitPattern == T.BID {
+ let payloads: [T.BitPattern] = [
+ 0,
+ 0x123,
+ T.nanPayloadMask
+ ]
+
+ for p in payloads {
+ let nan = T(nan: p, signaling: false)
+ self.assertEncodeDecode(+nan, file, line)
+ self.assertEncodeDecode(-nan, file, line)
+
+ let snan = T(nan: p, signaling: true)
+ self.assertEncodeDecode(+snan, file, line)
+ self.assertEncodeDecode(-snan, file, line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_encodeDecode_infinity() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let significand: [T.BID] = [
+ 0,
+ 0x123,
+ T.maxDecimalDigits,
+ T.trailingSignificandMask
+ ]
+
+ for s in significand {
+ let d = T(unchecked: T.infinityMask | s)
+ self.assertEncodeDecode(+d, file, line)
+ self.assertEncodeDecode(-d, file, line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_encodeDecode_zero() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) where T.Exponent == Int {
+ let exponents: [T.Exponent] = [
+ T.minSignedExponent,
+ -42,
+ 0,
+ 42,
+ T.maxSignedExponent
+ ]
+
+ for e in exponents {
+ let d = T(sign: .plus, exponent: e, significand: 0)
+ self.assertEncodeDecode(+d, file, line)
+ self.assertEncodeDecode(-d, file, line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_encodeDecode_finite() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) where T.BitPattern == T.BID, T.Exponent == Int {
+ let significands: [T.BitPattern] = [
+ 0,
+ 0x123,
+ T.maxDecimalDigits,
+ T.trailingSignificandMask
+ ]
+
+ let exponents: [T.Exponent] = [
+ T.minSignedExponent,
+ -42,
+ 0,
+ 42,
+ T.maxSignedExponent
+ ]
+
+ for (s, e) in CartesianProduct(significands, exponents) {
+ let d = T._packWithoutChecks(sign: .plus, significand: s, signedExponent: e)
+ self.assertEncodeDecode(+d, file, line)
+ self.assertEncodeDecode(-d, file, line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_encodeDecode_finite_random() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) where T.Exponent == Int {
+ for d: T in self.generateDecimals(approximateCount: 100) {
+ self.assertEncodeDecode(+d, file, line)
+ self.assertEncodeDecode(-d, file, line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ private func assertEncodeDecode(
+ _ d: T,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ do {
+ let encoder = JSONEncoder()
+ let data = try encoder.encode(d)
+
+ let decoder = JSONDecoder()
+ let result = try decoder.decode(T.self, from: data)
+
+ self.assertEqual(result, d, file, line)
+ } catch {
+ XCTFail("\(d): \(error)")
+ }
+ }
+}
diff --git a/Tests/DecimalTests/Experiments.swift b/Tests/DecimalTests/Experiments.swift
new file mode 100644
index 0000000..93a561b
--- /dev/null
+++ b/Tests/DecimalTests/Experiments.swift
@@ -0,0 +1,91 @@
+import XCTest
+@testable import Decimal
+
+// swiftlint:disable empty_xctest_method
+
+private func pad(_ t: T, _ count: Int = 10) -> String {
+ let s = String(describing: t)
+ let c = max(0, count - s.count)
+ return String(repeating: " ", count: c) + s
+}
+
+class Experiments: XCTestCase {
+
+ func test_main() {
+ let separator = String(repeating: "-", count: 80)
+ print(separator)
+ defer { print(separator) }
+
+ func forType(_ t: T.Type) {
+ // print(String(describing: T.self))
+ // defer { print() }
+
+ }
+
+ forType(Decimal32.self)
+ forType(Decimal64.self)
+ forType(Decimal128.self)
+
+ typealias T = Decimal64
+ }
+
+ func test_mostImportant_exponentTable() {
+ // typealias T = Decimal64
+
+ // let gfmPlus = +T.greatestFiniteMagnitude
+ // let gfmMinus = -T.greatestFiniteMagnitude
+ // let lnmPlus = +T.leastNonzeroMagnitude
+ // let lnmMinus = -T.leastNonzeroMagnitude
+
+ // // Exponent has nothing to do with +-greatestFiniteMagnitude!
+ // // It is all about the sign!
+ // // Exponent is for close to 0 / far from 0.
+ // let testPlus = T(sign: .plus, exponent: 384, significand: 1) // 385 crashes
+ // let testMinus = -testPlus
+
+ // let xPlus = T(sign: .plus, exponent: -398, significand: 1)
+ // let xMinus = -xPlus
+
+ // print("+gfm", gfmPlus._finiteExponent)
+ // print("-gfm", gfmMinus._finiteExponent)
+ // print("+test", testPlus._finiteExponent, testPlus)
+ // print("-test", testMinus._finiteExponent, testMinus)
+ // print()
+ // print("+lnm", lnmPlus._finiteExponent)
+ // print("-lnm", lnmMinus._finiteExponent)
+ // print("+x", xPlus._finiteExponent, xPlus.isZero)
+ // print("-x", xMinus._finiteExponent, xMinus.isZero)
+ // print()
+ // print("exponentBias", T.exponentBias)
+ // print("emax", T.emax, T.emax + T.exponentBias)
+ // print("emin", T.emin, T.emin + T.exponentBias)
+ // print()
+ // print("", T._moveDecimalSeparatorRight(exponent: T.emax), "<< Solved max")
+ // print(-T.exponentBias, "<< Solved min")
+ }
+
+ func test_greatestFiniteMagnitude_round() {
+ // print("xx")
+ // let gfm = Double.greatestFiniteMagnitude
+ // let gfmUlpHalf = gfm.ulp / 2
+ // print(gfm)
+ // print(gfm + gfmUlpHalf.nextDown)
+ // print(gfm + gfmUlpHalf)
+
+ // print("xx")
+
+ // let dfm = Decimal64.greatestFiniteMagnitude
+ // let dfmUlpHalf = dfm.ulp / 2
+ // print(dfm)
+ // print(dfm + dfmUlpHalf.nextDown)
+ // print(dfm.adding(other: dfmUlpHalf, rounding: .toNearestOrEven), "toNearestOrEven")
+ // print(dfm.adding(other: dfmUlpHalf, rounding: .toNearestOrAwayFromZero), "toNearestOrAway")
+ // print(dfm.adding(other: dfmUlpHalf, rounding: .up), "up")
+ // print(dfm.adding(other: dfmUlpHalf, rounding: .down), "down")
+ // print(dfm.adding(other: dfmUlpHalf, rounding: .towardZero), "towardZero")
+ // print()
+ // print(Decimal64.leastNonzeroMagnitude)
+ // print(Decimal64.leastNonzeroMagnitude.ulp)
+ // print(Decimal64.leastNonzeroMagnitude.nextUp / 2 == Decimal64.leastNonzeroMagnitude)
+ }
+}
diff --git a/Tests/DecimalTests/Generated/GeneratedInitFromIntTests.swift b/Tests/DecimalTests/Generated/GeneratedInitFromIntTests.swift
new file mode 100644
index 0000000..f38cbbb
--- /dev/null
+++ b/Tests/DecimalTests/Generated/GeneratedInitFromIntTests.swift
@@ -0,0 +1,1109 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class GeneratedInitFromIntTests: XCTestCase, DecimalTests {
+
+ func test_double() {
+ var i = Int64.zero
+ var expected = Float.zero
+ XCTAssertEqual(Float(i), expected)
+ XCTAssertEqual(Float(exactly: i), expected)
+
+ i = 5
+ expected = Float("5")!
+ XCTAssertEqual(Float( i), expected)
+ XCTAssertEqual(Float(-i), -expected)
+ XCTAssertEqual(Float(exactly: i), expected)
+ XCTAssertEqual(Float(exactly: -i), -expected)
+
+ i = 42
+ expected = Float("42")!
+ XCTAssertEqual(Float( i), expected)
+ XCTAssertEqual(Float(-i), -expected)
+ XCTAssertEqual(Float(exactly: i), expected)
+ XCTAssertEqual(Float(exactly: -i), -expected)
+
+ i = .max
+ // Float( i) - no easy algorithm to find the exact result
+ XCTAssertNil(Float(exactly: i))
+ XCTAssertNil(Float(exactly: -i))
+
+ // i = .min
+ // We can't test '-i', as it overflows.
+ // Float( i) - no easy algorithm to find the exact result
+ XCTAssertNil(Float(exactly: i))
+ }
+
+ // MARK: - Decimal32 from Int32
+
+ func test_Decimal32_from_Int32() {
+ var i = Int32.zero
+ var expected = Decimal32.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal32 = self.parseExact("2147483E3", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: -e, .isInexact)
+ }
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal32 = self.parseExact("2147483E3", #file, #line) {
+ i = .min
+ self.run(i, rounding: .towardZero, expected: -e, .isInexact)
+ }
+ }
+
+ func test_Decimal32_from_Int32_rounding() {
+ var i = Int32.zero
+ var expected = Decimal32.zero
+
+ for r in Self.roundingRules {
+ // More digits than precision, but all = 0
+ i = 1234567_00
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 1234567, signedExponent: 2)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+ }
+
+ // More digits than precision, with rounding
+ let noRounding = Decimal32._packWithoutChecks(sign: .plus, significand: 1234567, signedExponent: 2)
+ let rounded = Decimal32._packWithoutChecks(sign: .plus, significand: 1234568, signedExponent: 2)
+ let _noRounding = Decimal32._packWithoutChecks(sign: .minus, significand: 1234567, signedExponent: 2)
+ let _rounded = Decimal32._packWithoutChecks(sign: .minus, significand: 1234568, signedExponent: 2)
+
+ // Below half
+ i = 1234567_42
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: noRounding, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _noRounding, .isInexact)
+
+ // Half - odd
+ i = 1234567_50
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _rounded, .isInexact)
+ // Half - even, we will reuse 'rounded' as it is even
+ i = 1234568_50
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+
+ // Above half
+ i = 1234567_51
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _rounded, .isInexact)
+ }
+
+ func test_Decimal32_from_Int32_exactly() {
+ var i = Int32.zero
+ var expected = Decimal32.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ i = 42
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ // If we have a lot of trailing '0' then we are always representable.
+ i = 1111111000
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 1111111, signedExponent: 3)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ i = .max
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 2147483, signedExponent: 3)
+ self.runExactNil( i, Decimal32.self)
+ self.runExactNil(-i, Decimal32.self)
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ i = .min
+ self.runExactNil( i, Decimal32.self)
+ }
+
+ // MARK: - Decimal32 from Int64
+
+ func test_Decimal32_from_Int64() {
+ var i = Int64.zero
+ var expected = Decimal32.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal32 = self.parseExact("9223372E12", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: -e, .isInexact)
+ }
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal32 = self.parseExact("9223372E12", #file, #line) {
+ i = .min
+ self.run(i, rounding: .towardZero, expected: -e, .isInexact)
+ }
+ }
+
+ func test_Decimal32_from_Int64_rounding() {
+ var i = Int64.zero
+ var expected = Decimal32.zero
+
+ for r in Self.roundingRules {
+ // More digits than precision, but all = 0
+ i = 1234567_00
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 1234567, signedExponent: 2)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+ }
+
+ // More digits than precision, with rounding
+ let noRounding = Decimal32._packWithoutChecks(sign: .plus, significand: 1234567, signedExponent: 2)
+ let rounded = Decimal32._packWithoutChecks(sign: .plus, significand: 1234568, signedExponent: 2)
+ let _noRounding = Decimal32._packWithoutChecks(sign: .minus, significand: 1234567, signedExponent: 2)
+ let _rounded = Decimal32._packWithoutChecks(sign: .minus, significand: 1234568, signedExponent: 2)
+
+ // Below half
+ i = 1234567_42
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: noRounding, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _noRounding, .isInexact)
+
+ // Half - odd
+ i = 1234567_50
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _rounded, .isInexact)
+ // Half - even, we will reuse 'rounded' as it is even
+ i = 1234568_50
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+
+ // Above half
+ i = 1234567_51
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _rounded, .isInexact)
+ }
+
+ func test_Decimal32_from_Int64_exactly() {
+ var i = Int64.zero
+ var expected = Decimal32.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ i = 42
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ // If we have a lot of trailing '0' then we are always representable.
+ i = 1111111000000000000
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 1111111, signedExponent: 12)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ i = .max
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 9223372, signedExponent: 12)
+ self.runExactNil( i, Decimal32.self)
+ self.runExactNil(-i, Decimal32.self)
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ i = .min
+ self.runExactNil( i, Decimal32.self)
+ }
+
+ // MARK: - Decimal32 from UInt32
+
+ func test_Decimal32_from_UInt32() {
+ var i = UInt32.zero
+ var expected = Decimal32.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal32 = self.parseExact("4294967E3", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, .isInexact)
+ }
+ }
+
+ func test_Decimal32_from_UInt32_rounding() {
+ var i = UInt32.zero
+ var expected = Decimal32.zero
+
+ for r in Self.roundingRules {
+ // More digits than precision, but all = 0
+ i = 1234567_00
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 1234567, signedExponent: 2)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ }
+
+ // More digits than precision, with rounding
+ let noRounding = Decimal32._packWithoutChecks(sign: .plus, significand: 1234567, signedExponent: 2)
+ let rounded = Decimal32._packWithoutChecks(sign: .plus, significand: 1234568, signedExponent: 2)
+
+ // Below half
+ i = 1234567_42
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: noRounding, .isInexact)
+
+ // Half - odd
+ i = 1234567_50
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ // Half - even, we will reuse 'rounded' as it is even
+ i = 1234568_50
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+
+ // Above half
+ i = 1234567_51
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ }
+
+ func test_Decimal32_from_UInt32_exactly() {
+ var i = UInt32.zero
+ var expected = Decimal32.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ i = 42
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ // If we have a lot of trailing '0' then we are always representable.
+ i = 1111111000
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 1111111, signedExponent: 3)
+ self.runExact( i, expected: expected)
+
+ i = .max
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 4294967, signedExponent: 3)
+ self.runExactNil( i, Decimal32.self)
+ }
+
+ // MARK: - Decimal32 from UInt64
+
+ func test_Decimal32_from_UInt64() {
+ var i = UInt64.zero
+ var expected = Decimal32.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal32 = self.parseExact("1844674E13", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, .isInexact)
+ }
+ }
+
+ func test_Decimal32_from_UInt64_rounding() {
+ var i = UInt64.zero
+ var expected = Decimal32.zero
+
+ for r in Self.roundingRules {
+ // More digits than precision, but all = 0
+ i = 1234567_00
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 1234567, signedExponent: 2)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ }
+
+ // More digits than precision, with rounding
+ let noRounding = Decimal32._packWithoutChecks(sign: .plus, significand: 1234567, signedExponent: 2)
+ let rounded = Decimal32._packWithoutChecks(sign: .plus, significand: 1234568, signedExponent: 2)
+
+ // Below half
+ i = 1234567_42
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: noRounding, .isInexact)
+
+ // Half - odd
+ i = 1234567_50
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ // Half - even, we will reuse 'rounded' as it is even
+ i = 1234568_50
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+
+ // Above half
+ i = 1234567_51
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ }
+
+ func test_Decimal32_from_UInt64_exactly() {
+ var i = UInt64.zero
+ var expected = Decimal32.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ i = 42
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ // If we have a lot of trailing '0' then we are always representable.
+ i = 11111110000000000000
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 1111111, signedExponent: 13)
+ self.runExact( i, expected: expected)
+
+ i = .max
+ expected = Decimal32._packWithoutChecks(sign: .plus, significand: 1844674, signedExponent: 13)
+ self.runExactNil( i, Decimal32.self)
+ }
+
+ // MARK: - Decimal64 from Int32
+
+ func test_Decimal64_from_Int32() {
+ var i = Int32.zero
+ var expected = Decimal64.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal64 = self.parseExact("2147483647E0", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, DecimalStatus())
+ self.run(-i, rounding: .towardZero, expected: -e, DecimalStatus())
+ }
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal64 = self.parseExact("2147483648E0", #file, #line) {
+ i = .min
+ self.run(i, rounding: .towardZero, expected: -e, DecimalStatus())
+ }
+ }
+
+ func test_Decimal64_from_Int32_exactly() {
+ var i = Int32.zero
+ var expected = Decimal64.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ i = 42
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal64 = self.parseExact("2147483647E0", #file, #line) {
+ i = .max
+ self.runExact( i, expected: e)
+ self.runExact(-i, expected: -e)
+ }
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal64 = self.parseExact("2147483648E0", #file, #line) {
+ i = .min
+ self.runExact(i, expected: -e)
+ }
+ }
+
+ // MARK: - Decimal64 from Int64
+
+ func test_Decimal64_from_Int64() {
+ var i = Int64.zero
+ var expected = Decimal64.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal64 = self.parseExact("9223372036854775E3", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: -e, .isInexact)
+ }
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal64 = self.parseExact("9223372036854775E3", #file, #line) {
+ i = .min
+ self.run(i, rounding: .towardZero, expected: -e, .isInexact)
+ }
+ }
+
+ func test_Decimal64_from_Int64_rounding() {
+ var i = Int64.zero
+ var expected = Decimal64.zero
+
+ for r in Self.roundingRules {
+ // More digits than precision, but all = 0
+ i = 1234567890123455_00
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 1234567890123455, signedExponent: 2)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+ }
+
+ // More digits than precision, with rounding
+ let noRounding = Decimal64._packWithoutChecks(sign: .plus, significand: 1234567890123455, signedExponent: 2)
+ let rounded = Decimal64._packWithoutChecks(sign: .plus, significand: 1234567890123456, signedExponent: 2)
+ let _noRounding = Decimal64._packWithoutChecks(sign: .minus, significand: 1234567890123455, signedExponent: 2)
+ let _rounded = Decimal64._packWithoutChecks(sign: .minus, significand: 1234567890123456, signedExponent: 2)
+
+ // Below half
+ i = 1234567890123455_42
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: noRounding, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _noRounding, .isInexact)
+
+ // Half - odd
+ i = 1234567890123455_50
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _rounded, .isInexact)
+ // Half - even, we will reuse 'rounded' as it is even
+ i = 1234567890123456_50
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+
+ // Above half
+ i = 1234567890123455_51
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ self.run(-i, rounding: .up, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .down, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .towardZero, expected: _noRounding, .isInexact)
+ self.run(-i, rounding: .toNearestOrEven, expected: _rounded, .isInexact)
+ self.run(-i, rounding: .toNearestOrAwayFromZero, expected: _rounded, .isInexact)
+ }
+
+ func test_Decimal64_from_Int64_exactly() {
+ var i = Int64.zero
+ var expected = Decimal64.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ i = 42
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ // If we have a lot of trailing '0' then we are always representable.
+ i = 1111111111111111000
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 1111111111111111, signedExponent: 3)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ i = .max
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 9223372036854775, signedExponent: 3)
+ self.runExactNil( i, Decimal64.self)
+ self.runExactNil(-i, Decimal64.self)
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ i = .min
+ self.runExactNil( i, Decimal64.self)
+ }
+
+ // MARK: - Decimal64 from UInt32
+
+ func test_Decimal64_from_UInt32() {
+ var i = UInt32.zero
+ var expected = Decimal64.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal64 = self.parseExact("4294967295E0", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, DecimalStatus())
+ }
+ }
+
+ func test_Decimal64_from_UInt32_exactly() {
+ var i = UInt32.zero
+ var expected = Decimal64.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ i = 42
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal64 = self.parseExact("4294967295E0", #file, #line) {
+ i = .max
+ self.runExact( i, expected: e)
+ }
+ }
+
+ // MARK: - Decimal64 from UInt64
+
+ func test_Decimal64_from_UInt64() {
+ var i = UInt64.zero
+ var expected = Decimal64.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal64 = self.parseExact("1844674407370955E4", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, .isInexact)
+ }
+ }
+
+ func test_Decimal64_from_UInt64_rounding() {
+ var i = UInt64.zero
+ var expected = Decimal64.zero
+
+ for r in Self.roundingRules {
+ // More digits than precision, but all = 0
+ i = 1234567890123455_00
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 1234567890123455, signedExponent: 2)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ }
+
+ // More digits than precision, with rounding
+ let noRounding = Decimal64._packWithoutChecks(sign: .plus, significand: 1234567890123455, signedExponent: 2)
+ let rounded = Decimal64._packWithoutChecks(sign: .plus, significand: 1234567890123456, signedExponent: 2)
+
+ // Below half
+ i = 1234567890123455_42
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: noRounding, .isInexact)
+
+ // Half - odd
+ i = 1234567890123455_50
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ // Half - even, we will reuse 'rounded' as it is even
+ i = 1234567890123456_50
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+
+ // Above half
+ i = 1234567890123455_51
+ self.run( i, rounding: .up, expected: rounded, .isInexact)
+ self.run( i, rounding: .down, expected: noRounding, .isInexact)
+ self.run( i, rounding: .towardZero, expected: noRounding, .isInexact)
+ self.run( i, rounding: .toNearestOrEven, expected: rounded, .isInexact)
+ self.run( i, rounding: .toNearestOrAwayFromZero, expected: rounded, .isInexact)
+ }
+
+ func test_Decimal64_from_UInt64_exactly() {
+ var i = UInt64.zero
+ var expected = Decimal64.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ i = 42
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ // If we have a lot of trailing '0' then we are always representable.
+ i = 11111111111111110000
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 1111111111111111, signedExponent: 4)
+ self.runExact( i, expected: expected)
+
+ i = .max
+ expected = Decimal64._packWithoutChecks(sign: .plus, significand: 1844674407370955, signedExponent: 4)
+ self.runExactNil( i, Decimal64.self)
+ }
+
+ // MARK: - Decimal128 from Int32
+
+ func test_Decimal128_from_Int32() {
+ var i = Int32.zero
+ var expected = Decimal128.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("2147483647E0", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, DecimalStatus())
+ self.run(-i, rounding: .towardZero, expected: -e, DecimalStatus())
+ }
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("2147483648E0", #file, #line) {
+ i = .min
+ self.run(i, rounding: .towardZero, expected: -e, DecimalStatus())
+ }
+ }
+
+ func test_Decimal128_from_Int32_exactly() {
+ var i = Int32.zero
+ var expected = Decimal128.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ i = 42
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("2147483647E0", #file, #line) {
+ i = .max
+ self.runExact( i, expected: e)
+ self.runExact(-i, expected: -e)
+ }
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("2147483648E0", #file, #line) {
+ i = .min
+ self.runExact(i, expected: -e)
+ }
+ }
+
+ // MARK: - Decimal128 from Int64
+
+ func test_Decimal128_from_Int64() {
+ var i = Int64.zero
+ var expected = Decimal128.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ self.run(-i, rounding: r, expected: -expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("9223372036854775807E0", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, DecimalStatus())
+ self.run(-i, rounding: .towardZero, expected: -e, DecimalStatus())
+ }
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("9223372036854775808E0", #file, #line) {
+ i = .min
+ self.run(i, rounding: .towardZero, expected: -e, DecimalStatus())
+ }
+ }
+
+ func test_Decimal128_from_Int64_exactly() {
+ var i = Int64.zero
+ var expected = Decimal128.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ i = 42
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+ self.runExact(-i, expected: -expected)
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("9223372036854775807E0", #file, #line) {
+ i = .max
+ self.runExact( i, expected: e)
+ self.runExact(-i, expected: -e)
+ }
+
+ // For min we can't test '-i', as it overflows.
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("9223372036854775808E0", #file, #line) {
+ i = .min
+ self.runExact(i, expected: -e)
+ }
+ }
+
+ // MARK: - Decimal128 from UInt32
+
+ func test_Decimal128_from_UInt32() {
+ var i = UInt32.zero
+ var expected = Decimal128.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("4294967295E0", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, DecimalStatus())
+ }
+ }
+
+ func test_Decimal128_from_UInt32_exactly() {
+ var i = UInt32.zero
+ var expected = Decimal128.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ i = 42
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("4294967295E0", #file, #line) {
+ i = .max
+ self.runExact( i, expected: e)
+ }
+ }
+
+ // MARK: - Decimal128 from UInt64
+
+ func test_Decimal128_from_UInt64() {
+ var i = UInt64.zero
+ var expected = Decimal128.zero
+
+ for r in Self.roundingRules {
+ i = .zero
+ expected = .zero
+ self.run(i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 5
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+
+ i = 42
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.run( i, rounding: r, expected: expected, DecimalStatus(), r.description)
+ }
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("18446744073709551615E0", #file, #line) {
+ i = .max
+ self.run( i, rounding: .towardZero, expected: e, DecimalStatus())
+ }
+ }
+
+ func test_Decimal128_from_UInt64_exactly() {
+ var i = UInt64.zero
+ var expected = Decimal128.zero
+ self.runExact(i, expected: expected)
+
+ i = 5
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 5, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ i = 42
+ expected = Decimal128._packWithoutChecks(sign: .plus, significand: 42, signedExponent: 0)
+ self.runExact( i, expected: expected)
+
+ // We have to parse because the value may not be representable by int literal.
+ if let e: Decimal128 = self.parseExact("18446744073709551615E0", #file, #line) {
+ i = .max
+ self.runExact( i, expected: e)
+ }
+ }
+
+ // MARK: - Helpers
+
+ private func run(
+ _ i: I,
+ rounding: DecimalFloatingPointRoundingRule,
+ expected: D,
+ _ expectedStatus: DecimalStatus,
+ _ message: String = "",
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ var status = DecimalStatus()
+ let result = D(i, rounding: rounding, status: &status)
+
+ self.assertEqual(result, expected, message, file, line)
+ self.assertStatus(status, expectedStatus, message, file, line)
+ }
+
+ private func runExact(
+ _ i: I,
+ expected: D?,
+ _ message: String = "",
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ let result = D(exactly: i)
+
+ switch (result, expected) {
+ case let (.some(l), .some(r)):
+ self.assertEqual(l, r, message, file, line)
+
+ case let (.some(l), .none):
+ XCTFail("Got: \(l) " + message, file: file, line: line)
+
+ case (.none, .some):
+ XCTFail("Got nil. " + message, file: file, line: line)
+
+ case (.none, .none):
+ // Both 'nil' -> equal
+ break
+ }
+ }
+
+ private func runExactNil(
+ _ i: I,
+ _ d: D.Type,
+ _ message: String = "",
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ let result = D(exactly: i)
+ XCTAssertNil(result, message, file: file, line: line)
+ }
+}
diff --git a/Tests/DecimalTests/Generated/GeneratedToIntTests.swift b/Tests/DecimalTests/Generated/GeneratedToIntTests.swift
new file mode 100644
index 0000000..28fe850
--- /dev/null
+++ b/Tests/DecimalTests/Generated/GeneratedToIntTests.swift
@@ -0,0 +1,1506 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class GeneratedToIntTests: XCTestCase, DecimalTests {
+
+ func test_double() {
+ var d = Double.nan
+ // _ = Int32(d) // crash
+ // _ = Int32(-d) // crash
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Double.signalingNaN
+ // _ = Int32(d) // crash
+ // _ = Int32(-d) // crash
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Double.infinity
+ // _ = Int32(d) // crash
+ // _ = Int32(-d) // crash
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Double.zero
+ XCTAssertEqual(Int32( d), 0)
+ XCTAssertEqual(Int32(-d), 0)
+ XCTAssertEqual(Int32(exactly: d), 0)
+ XCTAssertEqual(Int32(exactly: -d), 0)
+
+ d = 5.0
+ XCTAssertEqual(Int32( d), 5)
+ XCTAssertEqual(Int32(-d), -5)
+ XCTAssertEqual(Int32(exactly: d), 5)
+ XCTAssertEqual(Int32(exactly: -d), -5)
+
+ d = 11.00
+ XCTAssertEqual(Int32( d), 11)
+ XCTAssertEqual(Int32(-d), -11)
+ XCTAssertEqual(Int32(exactly: d), 11)
+ XCTAssertEqual(Int32(exactly: -d), -11)
+
+ d = 11.13
+ XCTAssertEqual(Int32( d), 11)
+ XCTAssertEqual(Int32(-d), -11)
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+ }
+
+ // MARK: - Decimal32 -> Int32
+
+ func test_Decimal32_to_Int32() {
+ // Decimal32.nan will crash
+ // Decimal32.signalingNaN will crash
+ // Decimal32.infinity will crash
+ var d = Decimal32.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal32.zero
+ XCTAssertEqual(Int32( d, rounding: r), 0, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int32( d, rounding: r), 5, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), -5, r.description)
+
+ // Positive exponent
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int32( d, rounding: r), 171900, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), -171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: r), 11, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), -11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .up), 12)
+ XCTAssertEqual(Int32( d, rounding: .down), 11)
+ XCTAssertEqual(Int32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrAwayFromZero), 11)
+ XCTAssertEqual(Int32(-d, rounding: .up), -11)
+ XCTAssertEqual(Int32(-d, rounding: .down), -12)
+ XCTAssertEqual(Int32(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrAwayFromZero), -11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .up), 12)
+ XCTAssertEqual(Int32( d, rounding: .down), 11)
+ XCTAssertEqual(Int32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int32(-d, rounding: .up), -11)
+ XCTAssertEqual(Int32(-d, rounding: .down), -12)
+ XCTAssertEqual(Int32(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrAwayFromZero), -12)
+ // Negative exponent, decimal digits half even
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 10)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .up), 12)
+ XCTAssertEqual(Int32( d, rounding: .down), 11)
+ XCTAssertEqual(Int32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int32(-d, rounding: .up), -11)
+ XCTAssertEqual(Int32(-d, rounding: .down), -12)
+ XCTAssertEqual(Int32(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrAwayFromZero), -12)
+
+ // Int32.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal32 = self.parseExact("2147483E3", #file, #line) {
+ XCTAssertEqual(Int32( d), 2147483000)
+ XCTAssertEqual(Int32(-d), -2147483000)
+ }
+
+ // Int32.min
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal32 = self.parseExact("2147483E3", #file, #line) {
+ XCTAssertEqual(Int32(-d), -2147483000)
+ }
+ }
+
+ func test_Decimal32_to_Int32_exactly() {
+ var d = Decimal32.nan
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Decimal32.signalingNaN
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Decimal32.infinity
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Decimal32.zero
+ XCTAssertEqual(Int32(exactly: d), 0)
+ XCTAssertEqual(Int32(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int32(exactly: d), 5)
+ XCTAssertEqual(Int32(exactly: -d), -5)
+
+ // Positive exponent
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int32(exactly: d), 171900)
+ XCTAssertEqual(Int32(exactly: -d), -171900)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int32(exactly: d), 11)
+ XCTAssertEqual(Int32(exactly: -d), -11)
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ // Int32.max
+ if let d: Decimal32 = self.parseExact("2147483E3", #file, #line) {
+ XCTAssertEqual(Int32(exactly: d), 2147483000)
+ XCTAssertEqual(Int32(exactly: -d), -2147483000)
+ }
+
+ // Int32.min
+ // We have to parse because '-Int32.min' may not be representable.
+ if let d: Decimal32 = self.parseExact("2147483E3", #file, #line) {
+ XCTAssertEqual(Int32(exactly: -d), -2147483000)
+ }
+ }
+
+ // MARK: - Decimal32 -> Int64
+
+ func test_Decimal32_to_Int64() {
+ // Decimal32.nan will crash
+ // Decimal32.signalingNaN will crash
+ // Decimal32.infinity will crash
+ var d = Decimal32.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal32.zero
+ XCTAssertEqual(Int64( d, rounding: r), 0, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int64( d, rounding: r), 5, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), -5, r.description)
+
+ // Positive exponent
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int64( d, rounding: r), 171900, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), -171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: r), 11, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), -11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .up), 12)
+ XCTAssertEqual(Int64( d, rounding: .down), 11)
+ XCTAssertEqual(Int64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrAwayFromZero), 11)
+ XCTAssertEqual(Int64(-d, rounding: .up), -11)
+ XCTAssertEqual(Int64(-d, rounding: .down), -12)
+ XCTAssertEqual(Int64(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrAwayFromZero), -11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .up), 12)
+ XCTAssertEqual(Int64( d, rounding: .down), 11)
+ XCTAssertEqual(Int64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int64(-d, rounding: .up), -11)
+ XCTAssertEqual(Int64(-d, rounding: .down), -12)
+ XCTAssertEqual(Int64(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrAwayFromZero), -12)
+ // Negative exponent, decimal digits half even
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 10)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .up), 12)
+ XCTAssertEqual(Int64( d, rounding: .down), 11)
+ XCTAssertEqual(Int64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int64(-d, rounding: .up), -11)
+ XCTAssertEqual(Int64(-d, rounding: .down), -12)
+ XCTAssertEqual(Int64(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrAwayFromZero), -12)
+
+ // Int64.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal32 = self.parseExact("9223372E12", #file, #line) {
+ XCTAssertEqual(Int64( d), 9223372000000000000)
+ XCTAssertEqual(Int64(-d), -9223372000000000000)
+ }
+
+ // Int64.min
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal32 = self.parseExact("9223372E12", #file, #line) {
+ XCTAssertEqual(Int64(-d), -9223372000000000000)
+ }
+ }
+
+ func test_Decimal32_to_Int64_exactly() {
+ var d = Decimal32.nan
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ d = Decimal32.signalingNaN
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ d = Decimal32.infinity
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ d = Decimal32.zero
+ XCTAssertEqual(Int64(exactly: d), 0)
+ XCTAssertEqual(Int64(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int64(exactly: d), 5)
+ XCTAssertEqual(Int64(exactly: -d), -5)
+
+ // Positive exponent
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int64(exactly: d), 171900)
+ XCTAssertEqual(Int64(exactly: -d), -171900)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int64(exactly: d), 11)
+ XCTAssertEqual(Int64(exactly: -d), -11)
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ // Int64.max
+ if let d: Decimal32 = self.parseExact("9223372E12", #file, #line) {
+ XCTAssertEqual(Int64(exactly: d), 9223372000000000000)
+ XCTAssertEqual(Int64(exactly: -d), -9223372000000000000)
+ }
+
+ // Int64.min
+ // We have to parse because '-Int64.min' may not be representable.
+ if let d: Decimal32 = self.parseExact("9223372E12", #file, #line) {
+ XCTAssertEqual(Int64(exactly: -d), -9223372000000000000)
+ }
+ }
+
+ // MARK: - Decimal32 -> UInt32
+
+ func test_Decimal32_to_UInt32() {
+ // Decimal32.nan will crash
+ // Decimal32.signalingNaN will crash
+ // Decimal32.infinity will crash
+ var d = Decimal32.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal32.zero
+ XCTAssertEqual(UInt32( d, rounding: r), 0, r.description)
+ XCTAssertEqual(UInt32(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt32( d, rounding: r), 5, r.description)
+
+ // Positive exponent
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt32( d, rounding: r), 171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: r), 11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .up), 12)
+ XCTAssertEqual(UInt32( d, rounding: .down), 11)
+ XCTAssertEqual(UInt32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrAwayFromZero), 11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .up), 12)
+ XCTAssertEqual(UInt32( d, rounding: .down), 11)
+ XCTAssertEqual(UInt32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrAwayFromZero), 12)
+ // Negative exponent, decimal digits half even
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .up), 12)
+ XCTAssertEqual(UInt32( d, rounding: .down), 11)
+ XCTAssertEqual(UInt32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrAwayFromZero), 12)
+
+ // UInt32.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal32 = self.parseExact("4294967E3", #file, #line) {
+ XCTAssertEqual(UInt32( d), 4294967000)
+ }
+ }
+
+ func test_Decimal32_to_UInt32_exactly() {
+ var d = Decimal32.nan
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ d = Decimal32.signalingNaN
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ d = Decimal32.infinity
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ d = Decimal32.zero
+ XCTAssertEqual(UInt32(exactly: d), 0)
+ XCTAssertEqual(UInt32(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt32(exactly: d), 5)
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // Positive exponent
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt32(exactly: d), 171900)
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt32(exactly: d), 11)
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // UInt32.max
+ if let d: Decimal32 = self.parseExact("4294967E3", #file, #line) {
+ XCTAssertEqual(UInt32(exactly: d), 4294967000)
+ XCTAssertNil(UInt32(exactly: -d))
+ }
+ }
+
+ // MARK: - Decimal32 -> UInt64
+
+ func test_Decimal32_to_UInt64() {
+ // Decimal32.nan will crash
+ // Decimal32.signalingNaN will crash
+ // Decimal32.infinity will crash
+ var d = Decimal32.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal32.zero
+ XCTAssertEqual(UInt64( d, rounding: r), 0, r.description)
+ XCTAssertEqual(UInt64(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt64( d, rounding: r), 5, r.description)
+
+ // Positive exponent
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt64( d, rounding: r), 171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: r), 11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .up), 12)
+ XCTAssertEqual(UInt64( d, rounding: .down), 11)
+ XCTAssertEqual(UInt64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrAwayFromZero), 11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .up), 12)
+ XCTAssertEqual(UInt64( d, rounding: .down), 11)
+ XCTAssertEqual(UInt64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrAwayFromZero), 12)
+ // Negative exponent, decimal digits half even
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .up), 12)
+ XCTAssertEqual(UInt64( d, rounding: .down), 11)
+ XCTAssertEqual(UInt64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrAwayFromZero), 12)
+
+ // UInt64.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal32 = self.parseExact("1844674E13", #file, #line) {
+ XCTAssertEqual(UInt64( d), 18446740000000000000)
+ }
+ }
+
+ func test_Decimal32_to_UInt64_exactly() {
+ var d = Decimal32.nan
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ d = Decimal32.signalingNaN
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ d = Decimal32.infinity
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ d = Decimal32.zero
+ XCTAssertEqual(UInt64(exactly: d), 0)
+ XCTAssertEqual(UInt64(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt64(exactly: d), 5)
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // Positive exponent
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt64(exactly: d), 171900)
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt64(exactly: d), 11)
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal32._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // UInt64.max
+ if let d: Decimal32 = self.parseExact("1844674E13", #file, #line) {
+ XCTAssertEqual(UInt64(exactly: d), 18446740000000000000)
+ XCTAssertNil(UInt64(exactly: -d))
+ }
+ }
+
+ // MARK: - Decimal64 -> Int32
+
+ func test_Decimal64_to_Int32() {
+ // Decimal64.nan will crash
+ // Decimal64.signalingNaN will crash
+ // Decimal64.infinity will crash
+ var d = Decimal64.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal64.zero
+ XCTAssertEqual(Int32( d, rounding: r), 0, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int32( d, rounding: r), 5, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), -5, r.description)
+
+ // Positive exponent
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int32( d, rounding: r), 171900, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), -171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: r), 11, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), -11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .up), 12)
+ XCTAssertEqual(Int32( d, rounding: .down), 11)
+ XCTAssertEqual(Int32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrAwayFromZero), 11)
+ XCTAssertEqual(Int32(-d, rounding: .up), -11)
+ XCTAssertEqual(Int32(-d, rounding: .down), -12)
+ XCTAssertEqual(Int32(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrAwayFromZero), -11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .up), 12)
+ XCTAssertEqual(Int32( d, rounding: .down), 11)
+ XCTAssertEqual(Int32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int32(-d, rounding: .up), -11)
+ XCTAssertEqual(Int32(-d, rounding: .down), -12)
+ XCTAssertEqual(Int32(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrAwayFromZero), -12)
+ // Negative exponent, decimal digits half even
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 10)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .up), 12)
+ XCTAssertEqual(Int32( d, rounding: .down), 11)
+ XCTAssertEqual(Int32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int32(-d, rounding: .up), -11)
+ XCTAssertEqual(Int32(-d, rounding: .down), -12)
+ XCTAssertEqual(Int32(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrAwayFromZero), -12)
+
+ // Int32.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal64 = self.parseExact("2147483647E0", #file, #line) {
+ XCTAssertEqual(Int32( d), 2147483647)
+ XCTAssertEqual(Int32(-d), -2147483647)
+ }
+
+ // Int32.min
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal64 = self.parseExact("2147483648E0", #file, #line) {
+ XCTAssertEqual(Int32(-d), -2147483648)
+ }
+ }
+
+ func test_Decimal64_to_Int32_exactly() {
+ var d = Decimal64.nan
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Decimal64.signalingNaN
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Decimal64.infinity
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Decimal64.zero
+ XCTAssertEqual(Int32(exactly: d), 0)
+ XCTAssertEqual(Int32(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int32(exactly: d), 5)
+ XCTAssertEqual(Int32(exactly: -d), -5)
+
+ // Positive exponent
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int32(exactly: d), 171900)
+ XCTAssertEqual(Int32(exactly: -d), -171900)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int32(exactly: d), 11)
+ XCTAssertEqual(Int32(exactly: -d), -11)
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ // Int32.max
+ if let d: Decimal64 = self.parseExact("2147483647E0", #file, #line) {
+ XCTAssertEqual(Int32(exactly: d), 2147483647)
+ XCTAssertEqual(Int32(exactly: -d), -2147483647)
+ }
+
+ // Int32.min
+ // We have to parse because '-Int32.min' may not be representable.
+ if let d: Decimal64 = self.parseExact("2147483648E0", #file, #line) {
+ XCTAssertEqual(Int32(exactly: -d), -2147483648)
+ }
+ }
+
+ // MARK: - Decimal64 -> Int64
+
+ func test_Decimal64_to_Int64() {
+ // Decimal64.nan will crash
+ // Decimal64.signalingNaN will crash
+ // Decimal64.infinity will crash
+ var d = Decimal64.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal64.zero
+ XCTAssertEqual(Int64( d, rounding: r), 0, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int64( d, rounding: r), 5, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), -5, r.description)
+
+ // Positive exponent
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int64( d, rounding: r), 171900, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), -171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: r), 11, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), -11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .up), 12)
+ XCTAssertEqual(Int64( d, rounding: .down), 11)
+ XCTAssertEqual(Int64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrAwayFromZero), 11)
+ XCTAssertEqual(Int64(-d, rounding: .up), -11)
+ XCTAssertEqual(Int64(-d, rounding: .down), -12)
+ XCTAssertEqual(Int64(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrAwayFromZero), -11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .up), 12)
+ XCTAssertEqual(Int64( d, rounding: .down), 11)
+ XCTAssertEqual(Int64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int64(-d, rounding: .up), -11)
+ XCTAssertEqual(Int64(-d, rounding: .down), -12)
+ XCTAssertEqual(Int64(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrAwayFromZero), -12)
+ // Negative exponent, decimal digits half even
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 10)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .up), 12)
+ XCTAssertEqual(Int64( d, rounding: .down), 11)
+ XCTAssertEqual(Int64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int64(-d, rounding: .up), -11)
+ XCTAssertEqual(Int64(-d, rounding: .down), -12)
+ XCTAssertEqual(Int64(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrAwayFromZero), -12)
+
+ // Int64.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal64 = self.parseExact("9223372036854775E3", #file, #line) {
+ XCTAssertEqual(Int64( d), 9223372036854775000)
+ XCTAssertEqual(Int64(-d), -9223372036854775000)
+ }
+
+ // Int64.min
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal64 = self.parseExact("9223372036854775E3", #file, #line) {
+ XCTAssertEqual(Int64(-d), -9223372036854775000)
+ }
+ }
+
+ func test_Decimal64_to_Int64_exactly() {
+ var d = Decimal64.nan
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ d = Decimal64.signalingNaN
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ d = Decimal64.infinity
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ d = Decimal64.zero
+ XCTAssertEqual(Int64(exactly: d), 0)
+ XCTAssertEqual(Int64(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int64(exactly: d), 5)
+ XCTAssertEqual(Int64(exactly: -d), -5)
+
+ // Positive exponent
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int64(exactly: d), 171900)
+ XCTAssertEqual(Int64(exactly: -d), -171900)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int64(exactly: d), 11)
+ XCTAssertEqual(Int64(exactly: -d), -11)
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ // Int64.max
+ if let d: Decimal64 = self.parseExact("9223372036854775E3", #file, #line) {
+ XCTAssertEqual(Int64(exactly: d), 9223372036854775000)
+ XCTAssertEqual(Int64(exactly: -d), -9223372036854775000)
+ }
+
+ // Int64.min
+ // We have to parse because '-Int64.min' may not be representable.
+ if let d: Decimal64 = self.parseExact("9223372036854775E3", #file, #line) {
+ XCTAssertEqual(Int64(exactly: -d), -9223372036854775000)
+ }
+ }
+
+ // MARK: - Decimal64 -> UInt32
+
+ func test_Decimal64_to_UInt32() {
+ // Decimal64.nan will crash
+ // Decimal64.signalingNaN will crash
+ // Decimal64.infinity will crash
+ var d = Decimal64.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal64.zero
+ XCTAssertEqual(UInt32( d, rounding: r), 0, r.description)
+ XCTAssertEqual(UInt32(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt32( d, rounding: r), 5, r.description)
+
+ // Positive exponent
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt32( d, rounding: r), 171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: r), 11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .up), 12)
+ XCTAssertEqual(UInt32( d, rounding: .down), 11)
+ XCTAssertEqual(UInt32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrAwayFromZero), 11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .up), 12)
+ XCTAssertEqual(UInt32( d, rounding: .down), 11)
+ XCTAssertEqual(UInt32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrAwayFromZero), 12)
+ // Negative exponent, decimal digits half even
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .up), 12)
+ XCTAssertEqual(UInt32( d, rounding: .down), 11)
+ XCTAssertEqual(UInt32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrAwayFromZero), 12)
+
+ // UInt32.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal64 = self.parseExact("4294967295E0", #file, #line) {
+ XCTAssertEqual(UInt32( d), 4294967295)
+ }
+ }
+
+ func test_Decimal64_to_UInt32_exactly() {
+ var d = Decimal64.nan
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ d = Decimal64.signalingNaN
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ d = Decimal64.infinity
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ d = Decimal64.zero
+ XCTAssertEqual(UInt32(exactly: d), 0)
+ XCTAssertEqual(UInt32(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt32(exactly: d), 5)
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // Positive exponent
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt32(exactly: d), 171900)
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt32(exactly: d), 11)
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // UInt32.max
+ if let d: Decimal64 = self.parseExact("4294967295E0", #file, #line) {
+ XCTAssertEqual(UInt32(exactly: d), 4294967295)
+ XCTAssertNil(UInt32(exactly: -d))
+ }
+ }
+
+ // MARK: - Decimal64 -> UInt64
+
+ func test_Decimal64_to_UInt64() {
+ // Decimal64.nan will crash
+ // Decimal64.signalingNaN will crash
+ // Decimal64.infinity will crash
+ var d = Decimal64.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal64.zero
+ XCTAssertEqual(UInt64( d, rounding: r), 0, r.description)
+ XCTAssertEqual(UInt64(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt64( d, rounding: r), 5, r.description)
+
+ // Positive exponent
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt64( d, rounding: r), 171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: r), 11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .up), 12)
+ XCTAssertEqual(UInt64( d, rounding: .down), 11)
+ XCTAssertEqual(UInt64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrAwayFromZero), 11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .up), 12)
+ XCTAssertEqual(UInt64( d, rounding: .down), 11)
+ XCTAssertEqual(UInt64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrAwayFromZero), 12)
+ // Negative exponent, decimal digits half even
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .up), 12)
+ XCTAssertEqual(UInt64( d, rounding: .down), 11)
+ XCTAssertEqual(UInt64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrAwayFromZero), 12)
+
+ // UInt64.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal64 = self.parseExact("1844674407370955E4", #file, #line) {
+ XCTAssertEqual(UInt64( d), 18446744073709550000)
+ }
+ }
+
+ func test_Decimal64_to_UInt64_exactly() {
+ var d = Decimal64.nan
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ d = Decimal64.signalingNaN
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ d = Decimal64.infinity
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ d = Decimal64.zero
+ XCTAssertEqual(UInt64(exactly: d), 0)
+ XCTAssertEqual(UInt64(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt64(exactly: d), 5)
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // Positive exponent
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt64(exactly: d), 171900)
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt64(exactly: d), 11)
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal64._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // UInt64.max
+ if let d: Decimal64 = self.parseExact("1844674407370955E4", #file, #line) {
+ XCTAssertEqual(UInt64(exactly: d), 18446744073709550000)
+ XCTAssertNil(UInt64(exactly: -d))
+ }
+ }
+
+ // MARK: - Decimal128 -> Int32
+
+ func test_Decimal128_to_Int32() {
+ // Decimal128.nan will crash
+ // Decimal128.signalingNaN will crash
+ // Decimal128.infinity will crash
+ var d = Decimal128.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal128.zero
+ XCTAssertEqual(Int32( d, rounding: r), 0, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int32( d, rounding: r), 5, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), -5, r.description)
+
+ // Positive exponent
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int32( d, rounding: r), 171900, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), -171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: r), 11, r.description)
+ XCTAssertEqual(Int32(-d, rounding: r), -11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .up), 12)
+ XCTAssertEqual(Int32( d, rounding: .down), 11)
+ XCTAssertEqual(Int32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrAwayFromZero), 11)
+ XCTAssertEqual(Int32(-d, rounding: .up), -11)
+ XCTAssertEqual(Int32(-d, rounding: .down), -12)
+ XCTAssertEqual(Int32(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrAwayFromZero), -11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .up), 12)
+ XCTAssertEqual(Int32( d, rounding: .down), 11)
+ XCTAssertEqual(Int32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int32(-d, rounding: .up), -11)
+ XCTAssertEqual(Int32(-d, rounding: .down), -12)
+ XCTAssertEqual(Int32(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrAwayFromZero), -12)
+ // Negative exponent, decimal digits half even
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 10)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(Int32( d, rounding: .up), 12)
+ XCTAssertEqual(Int32( d, rounding: .down), 11)
+ XCTAssertEqual(Int32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int32( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int32(-d, rounding: .up), -11)
+ XCTAssertEqual(Int32(-d, rounding: .down), -12)
+ XCTAssertEqual(Int32(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int32(-d, rounding: .toNearestOrAwayFromZero), -12)
+
+ // Int32.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal128 = self.parseExact("2147483647E0", #file, #line) {
+ XCTAssertEqual(Int32( d), 2147483647)
+ XCTAssertEqual(Int32(-d), -2147483647)
+ }
+
+ // Int32.min
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal128 = self.parseExact("2147483648E0", #file, #line) {
+ XCTAssertEqual(Int32(-d), -2147483648)
+ }
+ }
+
+ func test_Decimal128_to_Int32_exactly() {
+ var d = Decimal128.nan
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Decimal128.signalingNaN
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Decimal128.infinity
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ d = Decimal128.zero
+ XCTAssertEqual(Int32(exactly: d), 0)
+ XCTAssertEqual(Int32(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int32(exactly: d), 5)
+ XCTAssertEqual(Int32(exactly: -d), -5)
+
+ // Positive exponent
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int32(exactly: d), 171900)
+ XCTAssertEqual(Int32(exactly: -d), -171900)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int32(exactly: d), 11)
+ XCTAssertEqual(Int32(exactly: -d), -11)
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(Int32(exactly: d))
+ XCTAssertNil(Int32(exactly: -d))
+
+ // Int32.max
+ if let d: Decimal128 = self.parseExact("2147483647E0", #file, #line) {
+ XCTAssertEqual(Int32(exactly: d), 2147483647)
+ XCTAssertEqual(Int32(exactly: -d), -2147483647)
+ }
+
+ // Int32.min
+ // We have to parse because '-Int32.min' may not be representable.
+ if let d: Decimal128 = self.parseExact("2147483648E0", #file, #line) {
+ XCTAssertEqual(Int32(exactly: -d), -2147483648)
+ }
+ }
+
+ // MARK: - Decimal128 -> Int64
+
+ func test_Decimal128_to_Int64() {
+ // Decimal128.nan will crash
+ // Decimal128.signalingNaN will crash
+ // Decimal128.infinity will crash
+ var d = Decimal128.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal128.zero
+ XCTAssertEqual(Int64( d, rounding: r), 0, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int64( d, rounding: r), 5, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), -5, r.description)
+
+ // Positive exponent
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int64( d, rounding: r), 171900, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), -171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: r), 11, r.description)
+ XCTAssertEqual(Int64(-d, rounding: r), -11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .up), 12)
+ XCTAssertEqual(Int64( d, rounding: .down), 11)
+ XCTAssertEqual(Int64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrAwayFromZero), 11)
+ XCTAssertEqual(Int64(-d, rounding: .up), -11)
+ XCTAssertEqual(Int64(-d, rounding: .down), -12)
+ XCTAssertEqual(Int64(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrAwayFromZero), -11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .up), 12)
+ XCTAssertEqual(Int64( d, rounding: .down), 11)
+ XCTAssertEqual(Int64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int64(-d, rounding: .up), -11)
+ XCTAssertEqual(Int64(-d, rounding: .down), -12)
+ XCTAssertEqual(Int64(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrAwayFromZero), -12)
+ // Negative exponent, decimal digits half even
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 10)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(Int64( d, rounding: .up), 12)
+ XCTAssertEqual(Int64( d, rounding: .down), 11)
+ XCTAssertEqual(Int64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(Int64( d, rounding: .toNearestOrAwayFromZero), 12)
+ XCTAssertEqual(Int64(-d, rounding: .up), -11)
+ XCTAssertEqual(Int64(-d, rounding: .down), -12)
+ XCTAssertEqual(Int64(-d, rounding: .towardZero), -11)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrEven), -12)
+ XCTAssertEqual(Int64(-d, rounding: .toNearestOrAwayFromZero), -12)
+
+ // Int64.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal128 = self.parseExact("9223372036854775807E0", #file, #line) {
+ XCTAssertEqual(Int64( d), 9223372036854775807)
+ XCTAssertEqual(Int64(-d), -9223372036854775807)
+ }
+
+ // Int64.min
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal128 = self.parseExact("9223372036854775808E0", #file, #line) {
+ XCTAssertEqual(Int64(-d), -9223372036854775808)
+ }
+ }
+
+ func test_Decimal128_to_Int64_exactly() {
+ var d = Decimal128.nan
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ d = Decimal128.signalingNaN
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ d = Decimal128.infinity
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ d = Decimal128.zero
+ XCTAssertEqual(Int64(exactly: d), 0)
+ XCTAssertEqual(Int64(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(Int64(exactly: d), 5)
+ XCTAssertEqual(Int64(exactly: -d), -5)
+
+ // Positive exponent
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(Int64(exactly: d), 171900)
+ XCTAssertEqual(Int64(exactly: -d), -171900)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(Int64(exactly: d), 11)
+ XCTAssertEqual(Int64(exactly: -d), -11)
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(Int64(exactly: d))
+ XCTAssertNil(Int64(exactly: -d))
+
+ // Int64.max
+ if let d: Decimal128 = self.parseExact("9223372036854775807E0", #file, #line) {
+ XCTAssertEqual(Int64(exactly: d), 9223372036854775807)
+ XCTAssertEqual(Int64(exactly: -d), -9223372036854775807)
+ }
+
+ // Int64.min
+ // We have to parse because '-Int64.min' may not be representable.
+ if let d: Decimal128 = self.parseExact("9223372036854775808E0", #file, #line) {
+ XCTAssertEqual(Int64(exactly: -d), -9223372036854775808)
+ }
+ }
+
+ // MARK: - Decimal128 -> UInt32
+
+ func test_Decimal128_to_UInt32() {
+ // Decimal128.nan will crash
+ // Decimal128.signalingNaN will crash
+ // Decimal128.infinity will crash
+ var d = Decimal128.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal128.zero
+ XCTAssertEqual(UInt32( d, rounding: r), 0, r.description)
+ XCTAssertEqual(UInt32(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt32( d, rounding: r), 5, r.description)
+
+ // Positive exponent
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt32( d, rounding: r), 171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: r), 11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .up), 12)
+ XCTAssertEqual(UInt32( d, rounding: .down), 11)
+ XCTAssertEqual(UInt32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrAwayFromZero), 11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .up), 12)
+ XCTAssertEqual(UInt32( d, rounding: .down), 11)
+ XCTAssertEqual(UInt32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrAwayFromZero), 12)
+ // Negative exponent, decimal digits half even
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(UInt32( d, rounding: .up), 12)
+ XCTAssertEqual(UInt32( d, rounding: .down), 11)
+ XCTAssertEqual(UInt32( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt32( d, rounding: .toNearestOrAwayFromZero), 12)
+
+ // UInt32.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal128 = self.parseExact("4294967295E0", #file, #line) {
+ XCTAssertEqual(UInt32( d), 4294967295)
+ }
+ }
+
+ func test_Decimal128_to_UInt32_exactly() {
+ var d = Decimal128.nan
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ d = Decimal128.signalingNaN
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ d = Decimal128.infinity
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ d = Decimal128.zero
+ XCTAssertEqual(UInt32(exactly: d), 0)
+ XCTAssertEqual(UInt32(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt32(exactly: d), 5)
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // Positive exponent
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt32(exactly: d), 171900)
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt32(exactly: d), 11)
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(UInt32(exactly: d))
+ XCTAssertNil(UInt32(exactly: -d))
+
+ // UInt32.max
+ if let d: Decimal128 = self.parseExact("4294967295E0", #file, #line) {
+ XCTAssertEqual(UInt32(exactly: d), 4294967295)
+ XCTAssertNil(UInt32(exactly: -d))
+ }
+ }
+
+ // MARK: - Decimal128 -> UInt64
+
+ func test_Decimal128_to_UInt64() {
+ // Decimal128.nan will crash
+ // Decimal128.signalingNaN will crash
+ // Decimal128.infinity will crash
+ var d = Decimal128.zero
+
+ // Exact checks - independent of rounding
+ for r in Self.roundingRules {
+ d = Decimal128.zero
+ XCTAssertEqual(UInt64( d, rounding: r), 0, r.description)
+ XCTAssertEqual(UInt64(-d, rounding: r), 0, r.description)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt64( d, rounding: r), 5, r.description)
+
+ // Positive exponent
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt64( d, rounding: r), 171900, r.description)
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: r), 11, r.description)
+ }
+
+ // Negative exponent, decimal digits below half
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1142, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .up), 12)
+ XCTAssertEqual(UInt64( d, rounding: .down), 11)
+ XCTAssertEqual(UInt64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrAwayFromZero), 11)
+
+ // Negative exponent, decimal digits half odd
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1150, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .up), 12)
+ XCTAssertEqual(UInt64( d, rounding: .down), 11)
+ XCTAssertEqual(UInt64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrAwayFromZero), 12)
+ // Negative exponent, decimal digits half even
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1050, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 10)
+
+ // Negative exponent, decimal digits above half
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1151, signedExponent: -2)
+ XCTAssertEqual(UInt64( d, rounding: .up), 12)
+ XCTAssertEqual(UInt64( d, rounding: .down), 11)
+ XCTAssertEqual(UInt64( d, rounding: .towardZero), 11)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrEven), 12)
+ XCTAssertEqual(UInt64( d, rounding: .toNearestOrAwayFromZero), 12)
+
+ // UInt64.max
+ // We have to parse because the value may not be representable by int literal.
+ if let d: Decimal128 = self.parseExact("18446744073709551615E0", #file, #line) {
+ XCTAssertEqual(UInt64( d), 18446744073709551615)
+ }
+ }
+
+ func test_Decimal128_to_UInt64_exactly() {
+ var d = Decimal128.nan
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ d = Decimal128.signalingNaN
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ d = Decimal128.infinity
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ d = Decimal128.zero
+ XCTAssertEqual(UInt64(exactly: d), 0)
+ XCTAssertEqual(UInt64(exactly: -d), 0)
+
+ // Exponent = 0
+ d = 5
+ XCTAssertEqual(UInt64(exactly: d), 5)
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // Positive exponent
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1719, signedExponent: 2)
+ XCTAssertEqual(UInt64(exactly: d), 171900)
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // Negative exponent, decimal digits = 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1100, signedExponent: -2)
+ XCTAssertEqual(UInt64(exactly: d), 11)
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // Negative exponent, decimal digits != 0
+ d = Decimal128._packWithoutChecks(sign: .plus, significand: 1317, signedExponent: -2)
+ XCTAssertNil(UInt64(exactly: d))
+ XCTAssertNil(UInt64(exactly: -d))
+
+ // UInt64.max
+ if let d: Decimal128 = self.parseExact("18446744073709551615E0", #file, #line) {
+ XCTAssertEqual(UInt64(exactly: d), 18446744073709551615)
+ XCTAssertNil(UInt64(exactly: -d))
+ }
+ }
+}
diff --git a/Tests/DecimalTests/Generated/GeneratedUInt128Tests.swift b/Tests/DecimalTests/Generated/GeneratedUInt128Tests.swift
new file mode 100644
index 0000000..80316d2
--- /dev/null
+++ b/Tests/DecimalTests/Generated/GeneratedUInt128Tests.swift
@@ -0,0 +1,1391 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class GeneratedUInt128Tests: XCTestCase {
+
+ typealias Word = UInt128.Word
+
+ // MARK: - Add
+
+ func test_add_1_by_1() {
+ self.add([0xf456188c2cb647da], [ 0xd0f1ece13b980dd], false, [ 0x1, 0x165375a406fc8b7])
+ self.add([0xa39301133aa1651b], [0xc8f0dbe1a5921cf1], false, [ 0x1, 0x6c83dcf4e033820c])
+ self.add([0xda9f862f0aef1c20], [ 0xf9286d0c44c18d7], false, [0xea320cffcf3b34f7])
+ self.add([0x71ff48e580de6788], [0xfcc9142fcd0c12a0], false, [ 0x1, 0x6ec85d154dea7a28])
+ self.add([0xc94e7e911b613f0e], [0x16a56cb2ab65b79f], false, [0xdff3eb43c6c6f6ad])
+ self.add([0x93e5a2aa56b158f1], [0x4001ad585e8b97c4], false, [0xd3e75002b53cf0b5])
+ self.add([0xed35de9dddb11a67], [0x44399883e75d6d1f], false, [ 0x1, 0x316f7721c50e8786])
+ self.add([0xfee5012e7b8f902e], [0x6c13d9e3dc12a58b], false, [ 0x1, 0x6af8db1257a235b9])
+ self.add([0x67ed4d702a713039], [0xcc79c141f437d754], false, [ 0x1, 0x34670eb21ea9078d])
+ self.add([0xe34225d9856ba566], [0x6cc9eea85a7cfb41], false, [ 0x1, 0x500c1481dfe8a0a7])
+ self.add([0xbeb17e55b63c4524], [0xa9eca85dbab01c0e], false, [ 0x1, 0x689e26b370ec6132])
+ self.add([0x5dc9015bac6375f7], [0x86f59c03afc5a3c2], false, [0xe4be9d5f5c2919b9])
+ self.add([0xb7767bcb66407b6c], [0xa0c2db9da5a39646], false, [ 0x1, 0x583957690be411b2])
+ self.add([0xb14f0c3e22a9e26d], [0x4af385ac1e2087f4], false, [0xfc4291ea40ca6a61])
+ self.add([0x3f308f0a5552f977], [0x28aa84e220e4c98e], false, [0x67db13ec7637c305])
+ self.add([0xdc9f97c4a84fa213], [0x80777ab15136c667], false, [ 0x1, 0x5d171275f986687a])
+ self.add([ 0x84182b00dd17bd4], [0x11e4c0adb5462907], false, [0x1a26435dc317a4db])
+ self.add([0xf715551f0c5b24c9], [0x21e69a2c603823c0], false, [ 0x1, 0x18fbef4b6c934889])
+ self.add([0x2b1ef9f3e94a512e], [0xa0b3385e7e4681c5], false, [0xcbd232526790d2f3])
+ self.add([0xb97f9779280d014a], [0xe1ddc9e3cf790d1f], false, [ 0x1, 0x9b5d615cf7860e69])
+ self.add([0x5149db34ef71870d], [ 0x9f9745a497639e3], false, [0x5b434f8f38e7c0f0])
+ self.add([0xe2fa02672ef59114], [0xc03157367ce7794c], false, [ 0x1, 0xa32b599dabdd0a60])
+ self.add([0x9deb384a9b3aaf3e], [0xa5be65a6b6bdfced], false, [ 0x1, 0x43a99df151f8ac2b])
+ self.add([ 0x8fd3218725cb136], [0x802cbaa4b696b51d], false, [0x8929ecbd28f36653])
+ self.add([0xce48fc639301ff80], [0x2387dafbfff804c7], false, [0xf1d0d75f92fa0447])
+ self.add([0x393e8aaaef907f7c], [0x60fc3a062dcda978], false, [0x9a3ac4b11d5e28f4])
+ self.add([0x175cd9ddc05be0ca], [0x5c8935a449864684], false, [0x73e60f8209e2274e])
+ self.add([0x75e3a4f971c5480b], [0x7aaaa4b3d5176cf1], false, [0xf08e49ad46dcb4fc])
+ self.add([0x5c41c5bad28437a3], [0x8e981c552177fd60], false, [0xead9e20ff3fc3503])
+ self.add([0xea7cae2333eef071], [0x96e0ab5373baf929], false, [ 0x1, 0x815d5976a7a9e99a])
+ self.add([0xd9e5d4a39b13484d], [ 0xaa6ef1f34488421], false, [0xe48cc3c2cf5bcc6e])
+ self.add([ 0x338df221edb22da], [0xc8c256f1a0154388], false, [0xcbfb3613bef06662])
+ self.add([0xdc034959ca5f5d15], [0xa4fb425b69a0079f], false, [ 0x1, 0x80fe8bb533ff64b4])
+ self.add([0xc2516481b5adfa15], [0x592d03638e487bae], false, [ 0x1, 0x1b7e67e543f675c3])
+ self.add([0x613d4eba97300860], [0x206d04b162c80359], false, [0x81aa536bf9f80bb9])
+ self.add([0xa2fe67a643666c53], [0x701b62090754560a], false, [ 0x1, 0x1319c9af4abac25d])
+ self.add([0x5ae1238cd1bcc45d], [0xc278bd2950d11044], false, [ 0x1, 0x1d59e0b6228dd4a1])
+ self.add([0x920c38daec1ab06c], [0x9b606ae15b0a6862], false, [ 0x1, 0x2d6ca3bc472518ce])
+ self.add([0xd41aa52c62f46280], [0x4fdc08d148336185], false, [ 0x1, 0x23f6adfdab27c405])
+ self.add([0x7324661914c03589], [0xec9b3c4d06a5c429], false, [ 0x1, 0x5fbfa2661b65f9b2])
+ self.add([0xa9f25946a9de6750], [0x1d5d96bf87fce6d1], false, [0xc74ff00631db4e21])
+ self.add([0x205f556dd03bc552], [0x6dc349d0dcfe6234], false, [0x8e229f3ead3a2786])
+ self.add([0xe16ec2f195e4cfaa], [0xc5d5da88660c581b], false, [ 0x1, 0xa7449d79fbf127c5])
+ self.add([0xb58d85636e8315a8], [0xcff6a79b69fe63d7], false, [ 0x1, 0x85842cfed881797f])
+ self.add([0x64c0ffeb2c3ca8b8], [0x182a0e808370076c], false, [0x7ceb0e6bafacb024])
+ self.add([0xf5742adc6b1cb462], [0xe82471c2c02ce558], false, [ 0x1, 0xdd989c9f2b4999ba])
+ self.add([0xd2f9f6c3373a3719], [0x7eb311f7e29ae0c6], false, [ 0x1, 0x51ad08bb19d517df])
+ self.add([0xc0ad86b658ac5e39], [0x6cbcf1028f7b5d9e], false, [ 0x1, 0x2d6a77b8e827bbd7])
+ self.add([0xb261197cfc5b6435], [0xceb0459d547031af], false, [ 0x1, 0x81115f1a50cb95e4])
+ self.add([0xf821aaca7b9986da], [0x4552ba1330519fdf], false, [ 0x1, 0x3d7464ddabeb26b9])
+ }
+
+ func test_add_1_by_2() {
+ self.add([0x17fe72a757d56a3d], [0x873b4471d4ced0bf, 0x8def9047d2a15c2c], false, [0x873b4471d4ced0bf, 0xa5ee02ef2a76c669])
+ self.add([0xa2f30b5a00d9a9ae], [ 0x4d742ae543660b6, 0xbc9ddd86926d1cbe], false, [ 0x4d742ae543660b7, 0x5f90e8e09346c66c])
+ self.add([0xd0a872cebbc324af], [0x522e01f34c1b3775, 0xcec89929a0bfe72d], false, [0x522e01f34c1b3776, 0x9f710bf85c830bdc])
+ self.add([0xc03cfdd4c2dae7b2], [0x479c14ca809b0522, 0xbb27e5601f5d433f], false, [0x479c14ca809b0523, 0x7b64e334e2382af1])
+ self.add([0x1d0455c83b8ec122], [0xbd6b7eadd872b8c8, 0x56eb83be70eb10cc], false, [0xbd6b7eadd872b8c8, 0x73efd986ac79d1ee])
+ self.add([0xebbfc5a5f80c6304], [0x551f6bd3bf45c482, 0x23c74e829a32beb9], false, [0x551f6bd3bf45c483, 0xf871428923f21bd])
+ self.add([0x2238500e05ca528e], [0x148c2897d0a4264e, 0xbdcf12bb0777d4c0], false, [0x148c2897d0a4264e, 0xe00762c90d42274e])
+ self.add([ 0xfafe9adac393807], [0x4bf965dc51d0fceb, 0xf36031ea6199eb3b], false, [0x4bf965dc51d0fcec, 0x3101b980dd32342])
+ self.add([ 0x77c0d97459294d0], [0x1d522628da3f50c3, 0x43a9893f1f4fb6a], false, [0x1d522628da3f50c3, 0xbb6a62b3787903a])
+ self.add([0x19a8081003aefe5f], [0x7252fbb18da19434, 0xa705ba2e4c9ef231], false, [0x7252fbb18da19434, 0xc0adc23e504df090])
+ self.add([0x9fb79935a4123853], [0xe12336786615f901, 0xe922e443ff61c928], false, [0xe12336786615f902, 0x88da7d79a374017b])
+ self.add([0xc5f0c68e34b48462], [0xf1d636c6af108fe9, 0x1ef0c29efdcefa4a], false, [0xf1d636c6af108fe9, 0xe4e1892d32837eac])
+ self.add([0x27ece83b40b2e57b], [0x60510bbbfee7c074, 0x9e2e62a229e42cbf], false, [0x60510bbbfee7c074, 0xc61b4add6a97123a])
+ self.add([0xdf2b0457964d26f0], [0xdbf3a8a94f2b2d57, 0x2bb6a7e4c6bf971e], false, [0xdbf3a8a94f2b2d58, 0xae1ac3c5d0cbe0e])
+ self.add([0x4cac64c04fa655a7], [0x8617e6286042eee2, 0xa2bd4a1c97df8844], false, [0x8617e6286042eee2, 0xef69aedce785ddeb])
+ self.add([0x21eb3d0018504639], [0x802c600ca9a497d1, 0x60c70b2ad0cc08e1], false, [0x802c600ca9a497d1, 0x82b2482ae91c4f1a])
+ self.add([0x9bed642a23077c79], [0x3089675af309b37c, 0x16d4f61ea6d134f5], false, [0x3089675af309b37c, 0xb2c25a48c9d8b16e])
+ self.add([0x3678a422cb5bed63], [0x8a2ca81a58df593d, 0x6793a9052c95692d], false, [0x8a2ca81a58df593d, 0x9e0c4d27f7f15690])
+ self.add([0x53fa3bcf2cec3d3e], [0xa5e724f75e265fb7, 0x6ce387481764502f], false, [0xa5e724f75e265fb7, 0xc0ddc31744508d6d])
+ self.add([ 0xc4d6413d0614298], [0x2c23c50627e4ed68, 0x3ef6e66fff482d61], false, [0x2c23c50627e4ed68, 0x4b444a83cfa96ff9])
+ self.add([0x222c634f5a59af11], [0xe4f7bd214d0b862e, 0x1ee68896d37f5cb0], false, [0xe4f7bd214d0b862e, 0x4112ebe62dd90bc1])
+ self.add([0x78baf9dad8808e2a], [0xfa0e9df982f1852b, 0x80e241454e39bfd7], false, [0xfa0e9df982f1852b, 0xf99d3b2026ba4e01])
+ self.add([0x75ccacc9e59fd3bc], [0xe7e115be10cc33fb, 0x74541715c5697043], false, [0xe7e115be10cc33fb, 0xea20c3dfab0943ff])
+ self.add([0xd4ff467546ef9a0e], [0x29679052dd40838f, 0xc627542f5531268d], false, [0x29679052dd408390, 0x9b269aa49c20c09b])
+ self.add([ 0x961a16962b970e], [0x979d2fc3cc6c05b8, 0x262020071e55ad03], false, [0x979d2fc3cc6c05b8, 0x26b63a1db4814411])
+ self.add([0x58b42b701bb5dacf], [0x8459f06d5a8a7e99, 0x493eac36429a51f1], false, [0x8459f06d5a8a7e99, 0xa1f2d7a65e502cc0])
+ self.add([0x7bb40c754392fecf], [ 0x2faa51449cf0ddd, 0x6126e7ec0b2027b6], false, [ 0x2faa51449cf0ddd, 0xdcdaf4614eb32685])
+ self.add([0x2748bdaf05342ba1], [0x31f7fbf8daac7163, 0x12391a07d6962689], false, [0x31f7fbf8daac7163, 0x3981d7b6dbca522a])
+ self.add([0x758d737d5ad26cb2], [0x7b40a0d76c401fe1, 0xd76c8d96dff400d3], false, [0x7b40a0d76c401fe2, 0x4cfa01143ac66d85])
+ self.add([0xf0ad0fb5cf797990], [0x120251673b4c919a, 0xd7a11060edb73bdd], false, [0x120251673b4c919b, 0xc84e2016bd30b56d])
+ self.add([0x5163f50e1cbb3563], [0x52900499ce8f440b, 0x4abe1943669960e8], false, [0x52900499ce8f440b, 0x9c220e518354964b])
+ self.add([ 0x251b8b253bec5f6], [0xa02b24e4c1e60f5d, 0xc6a7ec16792051eb], false, [0xa02b24e4c1e60f5d, 0xc8f9a4c8ccdf17e1])
+ self.add([0x1e66d64629025977], [0x4775a3a95dced8cf, 0xe18f8e6950eeab50], false, [0x4775a3a95dced8cf, 0xfff664af79f104c7])
+ self.add([0x14697cfc03005d90], [0x7068a06e841dbf9f, 0x69e9d54ac5f47a48], false, [0x7068a06e841dbf9f, 0x7e535246c8f4d7d8])
+ self.add([0x9b37349c4ef67d61], [0x97f3186903ce416c, 0xed0bdb230c25bf71], false, [0x97f3186903ce416d, 0x88430fbf5b1c3cd2])
+ self.add([0x4a2b819e9e4d82c8], [0xdfb791d6df3496af, 0xb7f42760d2e2e3c4], false, [0xdfb791d6df3496b0, 0x21fa8ff7130668c])
+ self.add([0x829399490a48fe32], [0x6cf067ca6ccb4c97, 0x8ddcb2419a5bca6e], false, [0x6cf067ca6ccb4c98, 0x10704b8aa4a4c8a0])
+ self.add([0xa61c2630e1d0cfcc], [0x6b4543c9a9275a01, 0x3f72c3f5d5c0571c], false, [0x6b4543c9a9275a01, 0xe58eea26b79126e8])
+ self.add([0x2e9a64940ab9600b], [0xdd26e24601c2ac0e, 0xdb89d7e79227355a], false, [0xdd26e24601c2ac0f, 0xa243c7b9ce09565])
+ self.add([0x76428bb05f101f5e], [0xd8b5f50c4fb3c700, 0xa1bbd9fab1f3969a], false, [0xd8b5f50c4fb3c701, 0x17fe65ab1103b5f8])
+ self.add([0x54df5ba9da43b07b], [0xffaee83a0a9dcce8, 0x8c9bab67b2165b02], false, [0xffaee83a0a9dcce8, 0xe17b07118c5a0b7d])
+ self.add([0xe2985ab1e0ec4f92], [0x6ddb5f12208113fb, 0x46e16095ceed7bf2], false, [0x6ddb5f12208113fc, 0x2979bb47afd9cb84])
+ self.add([0xa374d2eb209abf25], [0xe4788553696a2612, 0x436015e6e078092], false, [0xe4788553696a2612, 0xa7aad4498ea23fb7])
+ self.add([0x4334255de8872399], [0x938d3485330231c1, 0xd18509c8683c40a5], false, [0x938d3485330231c2, 0x14b92f2650c3643e])
+ self.add([0x2c765d5e9e0a2b17], [0xb09858d6e3871683, 0x7ef4d4ff6251c5cb], false, [0xb09858d6e3871683, 0xab6b325e005bf0e2])
+ self.add([0x95a499942dac602f], [0x7a658ca180ee7711, 0xb64376472ab45980], false, [0x7a658ca180ee7712, 0x4be80fdb5860b9af])
+ self.add([0x706a48349c75e7d5], [0xaa1a2c97d2504ee4, 0x9efec1841b6f4da5], false, [0xaa1a2c97d2504ee5, 0xf6909b8b7e5357a])
+ self.add([0xb4590ba047390033], [0xe2b1c0ea138c87cc, 0x8ee113baff63660e], false, [0xe2b1c0ea138c87cd, 0x433a1f5b469c6641])
+ self.add([0x2aa4164aaeb57387], [0xf2e3c3a01f7912ce, 0xed4e6eb5498a174c], false, [0xf2e3c3a01f7912cf, 0x17f284fff83f8ad3])
+ self.add([0x6b527bc2e3012bbb], [0x949516cdb6daecd9, 0xdff60a6d11f43ec], false, [0x949516cdb6daecd9, 0x7951dc69b4206fa7])
+ }
+
+ func test_add_2_by_1() {
+ self.add([0xd59367674108f088, 0x46a3d0aa9d1af322], [0x89223a4e39f59c6f], false, [0xd59367674108f088, 0xcfc60af8d7108f91])
+ self.add([0x5b885ee9ed9ea0a5, 0xa115df2f512fb803], [0x46dd4ed57df00e7d], false, [0x5b885ee9ed9ea0a5, 0xe7f32e04cf1fc680])
+ self.add([0xdd8e89d243149336, 0xa7801546dcdeb307], [0x8dfc7378674a4e57], false, [0xdd8e89d243149337, 0x357c88bf4429015e])
+ self.add([0xcf5dedb75c414f41, 0x6089051d35757e86], [0xa7ad95ceb5396990], false, [0xcf5dedb75c414f42, 0x8369aebeaaee816])
+ self.add([0xd5c3c40e21208219, 0xd74a9c7677abb91d], [0xb4551afd9737d494], false, [0xd5c3c40e2120821a, 0x8b9fb7740ee38db1])
+ self.add([0x1726a0587837217e, 0xdeaaddf58a87540], [0x584f1d7ad98234aa], false, [0x1726a0587837217e, 0x6639cb5a322aa9ea])
+ self.add([0x52558858aa937eed, 0xedbcfb9fa2076b39], [0x983d64bce5283982], false, [0x52558858aa937eee, 0x85fa605c872fa4bb])
+ self.add([0x1f4a9d369f234ad7, 0xe9407942d5640c57], [0xb8b7b8983317379b], false, [0x1f4a9d369f234ad8, 0xa1f831db087b43f2])
+ self.add([0x8ae70d6ad67f250d, 0x9f5aef217e45979c], [0x7d9d472c041acd2f], false, [0x8ae70d6ad67f250e, 0x1cf8364d826064cb])
+ self.add([0xfb91dd4b645fa936, 0xa7315c3408525b69], [0xa3aa9613688f3deb], false, [0xfb91dd4b645fa937, 0x4adbf24770e19954])
+ self.add([0xfba2bdc72bacb58b, 0x989a60b7c5e86917], [0x439121dda4b6ccc8], false, [0xfba2bdc72bacb58b, 0xdc2b82956a9f35df])
+ self.add([0x5aef3e5b098ad1cc, 0x9e025e2169699c44], [0x3bae8bdf4e7b11f4], false, [0x5aef3e5b098ad1cc, 0xd9b0ea00b7e4ae38])
+ self.add([0xd6231da95990839b, 0xd89bc4225652fabc], [0xd635cd6e4017b701], false, [0xd6231da95990839c, 0xaed19190966ab1bd])
+ self.add([0xdb20eb5d3936661b, 0xffaaea447a7d9235], [0x387a485e8321d8f6], false, [0xdb20eb5d3936661c, 0x382532a2fd9f6b2b])
+ self.add([0x8b8ce6b0982edf1f, 0xcec07d20310e3398], [0x90e091211cfbfe22], false, [0x8b8ce6b0982edf20, 0x5fa10e414e0a31ba])
+ self.add([0xb690d4d8fbc4a9dd, 0xbee3ce6e4a946094], [0xcbd451569fea3092], false, [0xb690d4d8fbc4a9de, 0x8ab81fc4ea7e9126])
+ self.add([0xf615a7de91e1e4ed, 0xdd6f6fd51b9f2890], [0xeda603839fb98fde], false, [0xf615a7de91e1e4ee, 0xcb157358bb58b86e])
+ self.add([0xbbf666ecfc6d5ed2, 0xd53b3d9fbee574d], [0xa8c7e48a5fa401ba], false, [0xbbf666ecfc6d5ed2, 0xb61b98645b925907])
+ self.add([0x6f2d92d1d02ccac0, 0xa212d6f7fd24e0c7], [ 0x91ce36b4f9f52d6], false, [0x6f2d92d1d02ccac0, 0xab2fba634cc4339d])
+ self.add([0x3afe3d9ca216d504, 0x40a5078b0d91a2c9], [0x17b45f42f5263cc0], false, [0x3afe3d9ca216d504, 0x585966ce02b7df89])
+ self.add([0x3b9ff3d2f010b219, 0xf6d7d3cc630d54d0], [0x5d1b0d2b3e87c4f4], false, [0x3b9ff3d2f010b21a, 0x53f2e0f7a19519c4])
+ self.add([0xd493aecfd8fa2050, 0xef59298e59aa403e], [0xe473ed02f0f855b8], false, [0xd493aecfd8fa2051, 0xd3cd16914aa295f6])
+ self.add([0x42c5614bf794573a, 0xe36de47adf5c2f3f], [0xc2029e503e7cae46], false, [0x42c5614bf794573b, 0xa57082cb1dd8dd85])
+ self.add([0x5ab0f705ba6f2b27, 0x3e936900a23d555d], [0x976680b64ff1ad45], false, [0x5ab0f705ba6f2b27, 0xd5f9e9b6f22f02a2])
+ self.add([0x333c01f31ecd3691, 0xf533141a003da9c9], [0x29cb000991d8e094], false, [0x333c01f31ecd3692, 0x1efe142392168a5d])
+ self.add([0xfb477f1d9e74eb16, 0xca7e33660d49baac], [0xe3dac627f7dfa05c], false, [0xfb477f1d9e74eb17, 0xae58f98e05295b08])
+ self.add([0xb4eabcac427b20ad, 0x5b0300315c72ea1c], [ 0xeba1626063c5432], false, [0xb4eabcac427b20ad, 0x69bd165762af3e4e])
+ self.add([0x7141d785f09a0c26, 0x5865fc79faef7751], [0x80f14676de3c34a0], false, [0x7141d785f09a0c26, 0xd95742f0d92babf1])
+ self.add([0x6f7477c6b7382f17, 0x4d5231d27f4d7b38], [0xd6c848843c2de29b], false, [0x6f7477c6b7382f18, 0x241a7a56bb7b5dd3])
+ self.add([0x142f40eaa2ec60ac, 0x89d91467e2056b71], [0xea2adbb7a2f46a8d], false, [0x142f40eaa2ec60ad, 0x7403f01f84f9d5fe])
+ self.add([0x4995939defc222f7, 0x8f3115861cbe0680], [0x93db9289b0f80dcd], false, [0x4995939defc222f8, 0x230ca80fcdb6144d])
+ self.add([0x8f4157d6a2f74ae4, 0x21d2394e6283b604], [0xbbf0cce9dc8d0646], false, [0x8f4157d6a2f74ae4, 0xddc306383f10bc4a])
+ self.add([ 0x3fb0cb183d4b923, 0xecc557122e70e802], [0x7571b5c1cf0366b1], false, [ 0x3fb0cb183d4b924, 0x62370cd3fd744eb3])
+ self.add([0x99693ba529da3b1a, 0xdfc7eb8bc6275927], [0x2c8d6b3c19b3ce66], false, [0x99693ba529da3b1b, 0xc5556c7dfdb278d])
+ self.add([0x9a127b9b7fcf69e9, 0x1f7e05e46a62dc73], [0xd58a9cffe13edd23], false, [0x9a127b9b7fcf69e9, 0xf508a2e44ba1b996])
+ self.add([0x6b6d326b3c234db8, 0xbfaee6057dc3a080], [0xd339b573f319b507], false, [0x6b6d326b3c234db9, 0x92e89b7970dd5587])
+ self.add([0x4960dcf93990de6e, 0x4ae50ae702e90e31], [0xa891a472e7fc8770], false, [0x4960dcf93990de6e, 0xf376af59eae595a1])
+ self.add([0xa3474d92c7c7add4, 0xa5eaaec06db2e71f], [0x662e926b22310548], false, [0xa3474d92c7c7add5, 0xc19412b8fe3ec67])
+ self.add([0x7596f141a119dd43, 0xc56b9b8cbe37ba4a], [0x66d64497fe440ad7], false, [0x7596f141a119dd44, 0x2c41e024bc7bc521])
+ self.add([0x47f2928d5bfdc30d, 0x67292fcafb2fa94d], [ 0x8f01feaf0ec4478], false, [0x47f2928d5bfdc30d, 0x70194fb5ec1bedc5])
+ self.add([0x75f1692d482725d0, 0x8ffb0bbf678455ac], [0x9f845984e6ef1012], false, [0x75f1692d482725d1, 0x2f7f65444e7365be])
+ self.add([0x23334ef9528d1ab2, 0x742162709ec25ab1], [0x42c7bdcc39dd6def], false, [0x23334ef9528d1ab2, 0xb6e9203cd89fc8a0])
+ self.add([0x8f829af4e6f55b50, 0x221f9ccda1154577], [ 0x46adc96658a41ce], false, [0x8f829af4e6f55b50, 0x268a7964069f8745])
+ self.add([ 0x450985b0395cfcb, 0x960d3971b9e10435], [0x2e2cff23bdf5fb58], false, [ 0x450985b0395cfcb, 0xc43a389577d6ff8d])
+ self.add([0xb61d01858e98cbbc, 0xfc0a627111b78655], [0x941602449ae208ce], false, [0xb61d01858e98cbbd, 0x902064b5ac998f23])
+ self.add([0x7d6c28a3223e824d, 0x66d8f8b47769fb32], [ 0x7b0fa011e8b00ca], false, [0x7d6c28a3223e824d, 0x6e89f2b595f4fbfc])
+ self.add([0x380501dd52e918bc, 0x431dfdb76284256c], [0x6667f9545a7a9839], false, [0x380501dd52e918bc, 0xa985f70bbcfebda5])
+ self.add([0xdfbb957efe591da5, 0x7dc1f6ce94514e8a], [0x91c475e2f7799203], false, [0xdfbb957efe591da6, 0xf866cb18bcae08d])
+ self.add([0xa4f887dee526ffb6, 0xc95ba23636db6e69], [0x914c7b389ab504f2], false, [0xa4f887dee526ffb7, 0x5aa81d6ed190735b])
+ self.add([0x1f6de070a35bc33e, 0x2309c6c655a49c3d], [0x7beb36b48c53a853], false, [0x1f6de070a35bc33e, 0x9ef4fd7ae1f84490])
+ }
+
+ func test_add_2_by_2() {
+ self.add([0x37b0b03ca7e741c4, 0xa140c8cb8dbb156e], [0xa5f0c3e794921712, 0x8be23751255fa8b5], false, [0xdda174243c7958d7, 0x2d23001cb31abe23])
+ self.add([0x20acbfe1096f7cfb, 0x5ce40cf29dfa7a57], [0x10bfe519575f63bf, 0x26e74743f4707dec], false, [0x316ca4fa60cee0ba, 0x83cb5436926af843])
+ self.add([0xea84ed2f4e03534c, 0x277db020d7e90ae7], [0x4be69eca8d68f80b, 0xb83a261c320eab09], true, [0x366b8bf9db6c4b57, 0xdfb7d63d09f7b5f0])
+ self.add([0xb2c261f1002ce244, 0x2491cb7e15a0696b], [0x414b83fc6a9a5fd8, 0x18f85601e300bd07], false, [0xf40de5ed6ac7421c, 0x3d8a217ff8a12672])
+ self.add([0xa6d8a78b8c5fbc97, 0x9a318a1bd2744b55], [0x80b24c9beb8d83e1, 0xa27c307b233bb8b7], true, [0x278af42777ed4079, 0x3cadba96f5b0040c])
+ self.add([0xeb98d3250f8a7e6f, 0x2285c5bc79286592], [0xf1c2b7229aa4755a, 0xeb5c266f3b958164], true, [0xdd5b8a47aa2ef3ca, 0xde1ec2bb4bde6f6])
+ self.add([0x20d49e3a20b0a1a3, 0x156f252264db159c], [0xcefc956bf885bd86, 0x6d604b16c68c9650], false, [0xefd133a619365f29, 0x82cf70392b67abec])
+ self.add([0x7fb2231cddc815f3, 0xbf714f1e2a63c418], [0xcc304fb8b71ccfe5, 0x40082744524d18d3], true, [0x4be272d594e4e5d8, 0xff7976627cb0dceb])
+ self.add([0x9b8caf17894607f5, 0x3120f09d6590fb4d], [0x10c799375b15cbdf, 0x1e1ac36a89421398], false, [0xac54484ee45bd3d4, 0x4f3bb407eed30ee5])
+ self.add([0xb4c9234328367609, 0xabae3ddbe8ccff5c], [0xe1f7626795887f8c, 0x8d5fe2037f5ddb70], true, [0x96c085aabdbef596, 0x390e1fdf682adacc])
+ self.add([0x6c56259f9a19fdad, 0x5ac9a0e252c7f829], [0x2c9b1da752731ae0, 0x7309111a666acd74], false, [0x98f14346ec8d188d, 0xcdd2b1fcb932c59d])
+ self.add([0x56e0389805ac9496, 0x2ed4b7aef8f416fb], [0x4ed567a05daeedb5, 0x545d9dc8439749e], false, [0xa5b5a038635b824b, 0x341a918b7d2d8b99])
+ self.add([0x5f0cfab9aa28a707, 0xa4a08eea853eacb], [0xbc08346fbe4c3972, 0x21ef4026f0500cd9], true, [0x1b152f296874e079, 0x2c39491598a3f7a4])
+ self.add([0x1affe338a7639893, 0x9efca0c2544726c6], [0x4503b225a22fea6b, 0x727332be9803d7fd], false, [0x6003955e499382ff, 0x116fd380ec4afec3])
+ self.add([0x36291ab62f181048, 0xd3dfbc59d387c915], [0xff2b928447b7e140, 0x235e4f810a24d998], true, [0x3554ad3a76cff188, 0xf73e0bdaddaca2ad])
+ self.add([0x97f721207e7b9e9c, 0x305e71600f20d6ed], [0x94a7fe02e626d4c9, 0x82900cfb25dfc873], true, [0x2c9f1f2364a27365, 0xb2ee7e5b35009f60])
+ self.add([0x3441748739c0fe95, 0x9efc78ea3b51d7bd], [0x703838f7c3b8c144, 0x49a87b7da8fe4812], false, [0xa479ad7efd79bfd9, 0xe8a4f467e4501fcf])
+ self.add([0xe2174b7c9f9babff, 0x5948b40a7d104ef3], [0x6df5077c9999dd58, 0x1937201cdfe481c3], true, [0x500c52f939358957, 0x727fd4275cf4d0b6])
+ self.add([0x753a0c46e1b2fb16, 0x55c76ce1b8279915], [0x6c5ddb2b69696cce, 0x2ba8f27ed5ac4f11], false, [0xe197e7724b1c67e4, 0x81705f608dd3e826])
+ self.add([0xc8713d203a7f5f0c, 0x5ceef632403e41ca], [0x9e60eccceef794b3, 0xb48c0e868084c846], true, [0x66d229ed2976f3c0, 0x117b04b8c0c30a10])
+ self.add([0x768b84adeee84d79, 0x416a0d28aa6c9f16], [0xd5077cb3081bfac3, 0xb6ab24d6a7f5949], true, [0x4b930160f704483c, 0x4cd4bf7614ebf85f])
+ self.add([0xe821b6aa7a9833cb, 0x7ace7994763ae020], [ 0xfbf0f1ac01f7fa7, 0xa4158a45c50fce90], false, [0xf7e0c5c53ab7b373, 0x1ee403da3b4aaeb0])
+ self.add([0x70d11b658b79cbfc, 0xe1e76f480264ad8c], [0x64fe502383ab3492, 0xf1d3ac267bf4d2f8], false, [0xd5cf6b890f25008f, 0xd3bb1b6e7e598084])
+ self.add([0xb6fc299d263e5804, 0x959b38e5205e14a4], [0x13e0bcd993c35407, 0xd3ccd179ac2fe04e], false, [0xcadce676ba01ac0c, 0x69680a5ecc8df4f2])
+ self.add([0xaa13f957d1193d82, 0xd69cae5d852a6136], [0x1fd2beb58b973115, 0x560898e2dae0f055], false, [0xc9e6b80d5cb06e98, 0x2ca54740600b518b])
+ self.add([ 0x8fc6db981214ac4, 0x750358ac37ba3e48], [0x3e073c55dc651544, 0xa3ae09ce8e6a6628], false, [0x4703aa0f5d866009, 0x18b1627ac624a470])
+ self.add([0xf54c0c6f7588473e, 0xcc7cefe54921e416], [0x1cfb9f2a338e8453, 0x40afefe64f8dbe36], true, [0x1247ab99a916cb92, 0xd2cdfcb98afa24c])
+ self.add([0xb75ccc3d07f1b070, 0xce1adbd54d177e4a], [0x964802590d631875, 0x137ab39044dedddb], true, [0x4da4ce961554c8e5, 0xe1958f6591f65c25])
+ self.add([0x6f4486e73fedad52, 0x7fbed8829acc7fb1], [0x26bca242d7c0c395, 0x2113c2cc69b17ce], false, [0x9601292a17ae70e7, 0x81d014af6167977f])
+ self.add([ 0x578ee79abb51359, 0xbf99321217ffbbcc], [0x62ee27e14a61359b, 0x21ffde8f306e0705], false, [0x6867165af61648f4, 0xe19910a1486dc2d1])
+ self.add([0x597f95b5050ad972, 0xe99c4e5e3f38bdce], [0x12728c306566fb15, 0x80d66fd3cfc4d4db], false, [0x6bf221e56a71d488, 0x6a72be320efd92a9])
+ self.add([0xe438b31535fb1875, 0x9668e7d435f43e0f], [0xd68f5bd681ead43d, 0x4f6c844df39386ea], true, [0xbac80eebb7e5ecb2, 0xe5d56c222987c4f9])
+ self.add([ 0xb6c230c6023f037, 0xf72ee50b829c8d8], [0x88852a1b59cb04ed, 0x5adc7c49498a5644], false, [0x93f14d27b9eef524, 0x6a4f6a9a01b41f1c])
+ self.add([0x768c751d72306323, 0x3919432b35cb256d], [ 0x387dc0820f712f0, 0x4bbebee4f65b8f45], false, [0x7a14512593277613, 0x84d802102c26b4b2])
+ self.add([0xa3387af1d9d83bf7, 0x7df865952102ac6a], [0xd4389f8d42da6ca0, 0x4ffa22c8d91fbbf0], true, [0x77711a7f1cb2a897, 0xcdf2885dfa22685a])
+ self.add([0xadccd4995d26b96f, 0x1c6d0e9f960dfd14], [0x3780422dcd6fe140, 0x8bc8aadb3ef0ed8], false, [0xe54d16c72a969aaf, 0x2529994d49fd0bec])
+ self.add([0xb1617cbecf479d43, 0xfc81c482b58a7b22], [0xea9e32a166d198bd, 0xa3809d0a3ab78d31], true, [0x9bffaf6036193601, 0xa002618cf0420853])
+ self.add([0xac37756b4ec593a0, 0x90e40844e89f0ea8], [0xa7b2fdb3c72c0678, 0x3284ca2077756e4e], true, [0x53ea731f15f19a18, 0xc368d26560147cf6])
+ self.add([0xe8a3ab839d2d94a1, 0xdc03949da29f83a7], [0x8dbb2a3d9c9da7e8, 0xc7494196b4dc1cad], true, [0x765ed5c139cb3c8a, 0xa34cd634577ba054])
+ self.add([0xabc53b5e8dd65b0f, 0xef7798f2a5fe7965], [0x9121cf069464cc34, 0x633ba7d4ab28d36d], true, [0x3ce70a65223b2744, 0x52b340c751274cd2])
+ self.add([0x2070f2bc97361fe5, 0x6f01436326aa9006], [0x808e4e1303c16cf9, 0xb19c682b0200ad46], false, [0xa0ff40cf9af78cdf, 0x209dab8e28ab3d4c])
+ self.add([0x8116cd3d433ff976, 0xb851edd65cdbd35d], [0x8fd1f6b2cc6d4ef2, 0x243f17cf31fb406], true, [0x10e8c3f00fad4868, 0xba95df534ffb8763])
+ self.add([0x391c8c6b45328510, 0x683236ae7a3883c3], [0x68681bc594de32de, 0xba5cfd134c9e8313], false, [0xa184a830da10b7ef, 0x228f33c1c6d706d6])
+ self.add([0x1feb0ee9f5b094ca, 0x5edf85aa4bae06c9], [0x5a32f962ac1229db, 0xe6d62906e30329e9], false, [0x7a1e084ca1c2bea6, 0x45b5aeb12eb130b2])
+ self.add([0x8ac0ae18d66708b1, 0xf7517050b7db268], [0xb53b9edd763e8024, 0xf383062299813aa9], true, [0x3ffc4cf64ca588d6, 0x2f81d27a4feed11])
+ self.add([0x45903ecd206b139c, 0x304c59f82d1b222e], [0x323c7382ac9f9ff0, 0x2fd0478d938422af], false, [0x77ccb24fcd0ab38c, 0x601ca185c09f44dd])
+ self.add([0x8d1c9465535ed313, 0x409b519a4c0b0119], [0xa8c149fbed14ea18, 0xeb82824c4983a7b9], true, [0x35ddde614073bd2c, 0x2c1dd3e6958ea8d2])
+ self.add([0x93b5fc91f791ce14, 0xe64e58dc18ccd10f], [0x9f0fb690ba39e9ff, 0xb30763e75ffd21d7], true, [0x32c5b322b1cbb814, 0x9955bcc378c9f2e6])
+ self.add([0xe7de6325a328bde5, 0xe00e1e1ad3b8a7b4], [0x198091e65b947f53, 0xd642f0f3081b3b3a], true, [ 0x15ef50bfebd3d39, 0xb6510f0ddbd3e2ee])
+ self.add([0xbfa065437e2c0f2b, 0xe3da23e93fbd192c], [0x79add4a30ffddd1f, 0x60bd733bd811d2a9], true, [0x394e39e68e29ec4b, 0x4497972517ceebd5])
+ }
+
+ private func add(
+ _ lhsWords: [Word],
+ _ rhsWords: [Word],
+ _ expectedOverflow: Bool,
+ _ expectedWords: [Word],
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let lhs = self.create(lhsWords)
+ let rhs = self.create(rhsWords)
+ let expected = self.create(expectedWords)
+
+ let (result, overflow) = lhs.addingReportingOverflow(rhs)
+ XCTAssertEqual(result, expected, "reportingOverflow.result", file: file, line: line)
+ XCTAssertEqual(overflow, expectedOverflow, "reportingOverflow.overflow", file: file, line: line)
+
+ if !overflow {
+ let result2 = lhs + rhs
+ XCTAssertEqual(result2, expected, "+", file: file, line: line)
+ }
+ }
+
+ // MARK: - Sub
+
+ func test_sub_1_by_1() {
+ self.sub([0xa8876f4838a22039], [0xeaa682d54f702108], true, [0xffffffffffffffff, 0xbde0ec72e931ff31])
+ self.sub([0x60c90043ba23a37e], [0x8a8e136aefcbc315], true, [0xffffffffffffffff, 0xd63aecd8ca57e069])
+ self.sub([0x469f332ffabba91d], [0x60c6c385fdac3a15], true, [0xffffffffffffffff, 0xe5d86fa9fd0f6f08])
+ self.sub([0xb2a0b79f7f91cf7b], [0x39ba127b861d6a65], false, [0x78e6a523f9746516])
+ self.sub([0x7e2eaa57ae51fb4a], [0xcb3981776d358155], true, [0xffffffffffffffff, 0xb2f528e0411c79f5])
+ self.sub([0xd52f53ff683b655c], [0xb174ed07dcba324e], false, [0x23ba66f78b81330e])
+ self.sub([0x1b63f39e3905e35f], [0xce761251cfa8b751], true, [0xffffffffffffffff, 0x4cede14c695d2c0e])
+ self.sub([0x91c88f24946938e8], [0xd7a54b6c814a4d3a], true, [0xffffffffffffffff, 0xba2343b8131eebae])
+ self.sub([0x431b0defd0918cac], [0x391ecb443f0065cb], false, [ 0x9fc42ab919126e1])
+ self.sub([0x172390a4680638d2], [0x8a580a48ee34ddfd], true, [0xffffffffffffffff, 0x8ccb865b79d15ad5])
+ self.sub([0xffb17e4b363e89dd], [0x75d3d8c416def1db], false, [0x89dda5871f5f9802])
+ self.sub([0x15d624d6521bd2a3], [0xf9a7712841c4a922], true, [0xffffffffffffffff, 0x1c2eb3ae10572981])
+ self.sub([0x9c4c86cf4abdf788], [0xd601d69ad25f8b7f], true, [0xffffffffffffffff, 0xc64ab034785e6c09])
+ self.sub([0x4f851974d66f4d0b], [0xa524885ed780a530], true, [0xffffffffffffffff, 0xaa609115feeea7db])
+ self.sub([0x256ec1770944de20], [0xdad0cbc133cada6f], true, [0xffffffffffffffff, 0x4a9df5b5d57a03b1])
+ self.sub([ 0x73b646f1651adf9], [0x5c0c03821a40f11f], true, [0xffffffffffffffff, 0xab2f60ecfc10bcda])
+ self.sub([0x698986f11d2969e6], [0x7f89b54b5a12b99c], true, [0xffffffffffffffff, 0xe9ffd1a5c316b04a])
+ self.sub([0xb1322dc2db265045], [0x91cb5cc8fec7c46f], false, [0x1f66d0f9dc5e8bd6])
+ self.sub([0x55abbad161361b93], [0x18e95086eac1f165], false, [0x3cc26a4a76742a2e])
+ self.sub([ 0x89352b5a3a2151c], [ 0x53ca2f9fe0eff36], false, [ 0x356afbba59315e6])
+ self.sub([0xdf423c140780f927], [0xa5800379389b7557], false, [0x39c2389acee583d0])
+ self.sub([0xc9d1184f87543085], [0x7374c2dd7782d369], false, [0x565c55720fd15d1c])
+ self.sub([0x5f0e2685a55f72f6], [0x8f729f6e04d7c14f], true, [0xffffffffffffffff, 0xcf9b8717a087b1a7])
+ self.sub([ 0xf8b799afb663070], [0xd3d3b37c12d8d27d], true, [0xffffffffffffffff, 0x3bb7c61ee88d5df3])
+ self.sub([0x89e7276a98ea8439], [ 0x5426c34b1940974], false, [0x84a4bb35e7567ac5])
+ self.sub([0x22af14789008d886], [ 0xeb75e218966bb88], false, [0x13f7b65706a21cfe])
+ self.sub([0x33df10e80a3ae5a1], [0xb07e23d49d0d847d], true, [0xffffffffffffffff, 0x8360ed136d2d6124])
+ self.sub([0xfd522f2af36547e4], [0x45ee6db3c88729d9], false, [0xb763c1772ade1e0b])
+ self.sub([0x8b31f1e009ac51e8], [0x8e6693c3f0056fe7], true, [0xffffffffffffffff, 0xfccb5e1c19a6e201])
+ self.sub([0xd76e2483892e6063], [0x890ee4dcdf3b5fce], false, [0x4e5f3fa6a9f30095])
+ self.sub([0x40404dbf25a6eca7], [0x1f37e19ff2005117], false, [0x21086c1f33a69b90])
+ self.sub([0xa62e5ec7f819f055], [0xaa8c84ec37ef27ab], true, [0xffffffffffffffff, 0xfba1d9dbc02ac8aa])
+ self.sub([0xefc7adec41d01b39], [0xff04fd1b552cb711], true, [0xffffffffffffffff, 0xf0c2b0d0eca36428])
+ self.sub([0x29a3dd8ebb6e8785], [0x43477bd7718628ef], true, [0xffffffffffffffff, 0xe65c61b749e85e96])
+ self.sub([0x4b38a180759ef618], [0x5fddce919fb35987], true, [0xffffffffffffffff, 0xeb5ad2eed5eb9c91])
+ self.sub([ 0x6748d88b432c0b4], [0x834876a9b576c6d1], true, [0xffffffffffffffff, 0x832c16defebbf9e3])
+ self.sub([0xe92ec21293a655fe], [0x66ce2ac4708da16a], false, [0x8260974e2318b494])
+ self.sub([0x1e43ac7b53ed0f01], [0x5b40c47ca7b4d52f], true, [0xffffffffffffffff, 0xc302e7feac3839d2])
+ self.sub([0x73f48a6b867aafb2], [0x184cbb8eb240de7a], false, [0x5ba7cedcd439d138])
+ self.sub([0x4aa579f6d20d9f14], [0x31616cd947c280b9], false, [0x19440d1d8a4b1e5b])
+ self.sub([0x5f60631e3e3a7861], [ 0x6b0491d1616f473], false, [0x58b01a01282383ee])
+ self.sub([0x9771885c45134d2f], [0x4be8becec28bcf99], false, [0x4b88c98d82877d96])
+ self.sub([0xb55d683c591195ac], [0xc8987e8f298bcfb4], true, [0xffffffffffffffff, 0xecc4e9ad2f85c5f8])
+ self.sub([0xa37a466af0ceb8d8], [0xbadb62f4abdfd4ac], true, [0xffffffffffffffff, 0xe89ee37644eee42c])
+ self.sub([ 0x455461407c73711], [0xc3f8c0c1b4c5bc62], true, [0xffffffffffffffff, 0x405c855253017aaf])
+ self.sub([0x92b2887b21e30af4], [0xfce2503d7a75d6e1], true, [0xffffffffffffffff, 0x95d0383da76d3413])
+ self.sub([0xb20428baed334e73], [0x85fe7768395ce123], false, [0x2c05b152b3d66d50])
+ self.sub([0xc9c60bddaebf96ab], [0x900f365cbcadef55], false, [0x39b6d580f211a756])
+ self.sub([0x7e629f9838e6db7d], [0x7cb753f020345304], false, [ 0x1ab4ba818b28879])
+ self.sub([0x9e6b6338619218c6], [0x364d872029dd7287], false, [0x681ddc1837b4a63f])
+ }
+
+ func test_sub_1_by_2() {
+ self.sub([0x4d2cedd591fa8656], [0x4b61ef8e5a64d9dd, 0xb8e0d616259f2bfc], true, [0xb49e1071a59b2622, 0x944c17bf6c5b5a5a])
+ self.sub([0x36f9c36f14eb99a5], [ 0xf129b2f88b81d79, 0xc73bb6aee3ac3a81], true, [0xf0ed64d07747e286, 0x6fbe0cc0313f5f24])
+ self.sub([0x116560188ee3a9c6], [0x2a391f5165cf6895, 0x36f337c83f05f187], true, [0xd5c6e0ae9a30976a, 0xda7228504fddb83f])
+ self.sub([0x14ef360689fc8b10], [0xf4cdfdae34e9fefd, 0xa9f2adcd7d244ac4], true, [ 0xb320251cb160102, 0x6afc88390cd8404c])
+ self.sub([0xdd8e44276706e9b3], [0x566b6bfbfc2d76e2, 0xd185f43620aa5c05], true, [0xa994940403d2891e, 0xc084ff1465c8dae])
+ self.sub([0x2f7f4c675ef73017], [0x1242db6514fd4665, 0xf092f571dced2a53], true, [0xedbd249aeb02b99a, 0x3eec56f5820a05c4])
+ self.sub([0xf0834f2c78924c97], [0xfec48528aadd97f2, 0xbe7523b7eef40ca8], true, [ 0x13b7ad75522680e, 0x320e2b74899e3fef])
+ self.sub([0x7450832014b255f5], [0x41cc02af2deb4aca, 0x961f5c284488ea01], true, [0xbe33fd50d214b535, 0xde3126f7d0296bf4])
+ self.sub([0x2e8c676656f4c4f7], [0x25cc84af2c63687a, 0x55044ac18cedac35], true, [0xda337b50d39c9785, 0xd9881ca4ca0718c2])
+ self.sub([0xf73434241d08cf8f], [0x71ccd92f2dd834f4, 0x44dd7a54e99a26b], true, [0x8e3326d0d227cb0c, 0xf2e65c7ece6f2d24])
+ self.sub([0xb52db34704abdb9b], [0xa282b2d33bbdb08f, 0xe8b99948bedba811], true, [0x5d7d4d2cc4424f70, 0xcc7419fe45d0338a])
+ self.sub([0xc3272e2d5fc1dda9], [0x6e0282baf0178286, 0xab4a6e6049710a89], true, [0x91fd7d450fe87d7a, 0x17dcbfcd1650d320])
+ self.sub([0x21b188c3a5bf42f2], [ 0x786e54cfc3b36d6, 0x6497878dc76ac9a4], true, [0xf8791ab303c4c929, 0xbd1a0135de54794e])
+ self.sub([0x4b58da84d0d31258], [0xf3ea331c31ecf0d8, 0x1d5e2e4f53edfc69], true, [ 0xc15cce3ce130f28, 0x2dfaac357ce515ef])
+ self.sub([0xb197d5e420f42611], [0xb177ba380122d9f4, 0xc4b54cb1001882a1], true, [0x4e8845c7fedd260b, 0xece2893320dba370])
+ self.sub([0xf45d43979da725ee], [0x3da8a92b9e505cca, 0x663383ea1f3235f5], true, [0xc25756d461afa336, 0x8e29bfad7e74eff9])
+ self.sub([0x6b2ca2ccad23fb74], [0x86c77b17121c2afc, 0x8277229348350649], true, [0x793884e8ede3d503, 0xe8b5803964eef52b])
+ self.sub([0xab056074d87f1403], [0x38a78b03e82e2215, 0x748e1ce5ca268085], true, [0xc75874fc17d1ddeb, 0x3677438f0e58937e])
+ self.sub([ 0x5474078e47765e1], [0x93fc4c5f66178d28, 0x47df9ae57ea87ed2], true, [0x6c03b3a099e872d7, 0xbd67a59365cee70f])
+ self.sub([0xfcc6e14e81584310], [0x6f53a851fba734fd, 0x2ffc606551a0b28f], true, [0x90ac57ae0458cb03, 0xccca80e92fb79081])
+ self.sub([0x92b7185f3df5ddeb], [ 0x33ab434112c8a50, 0xdf84b548baae7f4c], true, [0xfcc54bcbeed375af, 0xb332631683475e9f])
+ self.sub([0x2f8348ee621ff999], [0x7bf7d696689da85e, 0x355ebd52c9873ffa], true, [0x84082969976257a1, 0xfa248b9b9898b99f])
+ self.sub([0x49e0614dc18c0ef9], [0x508d60394bca1165, 0x47afb88781c68530], true, [0xaf729fc6b435ee9b, 0x230a8c63fc589c9])
+ self.sub([0x8a34ae1b04f28bdc], [0xc3cc229d2c744165, 0x43aca6faa2b86b76], true, [0x3c33dd62d38bbe9b, 0x46880720623a2066])
+ self.sub([0x76de242d18d1bf60], [0x99262df36000960b, 0xf85721acf6a2c5e7], true, [0x66d9d20c9fff69f4, 0x7e870280222ef979])
+ self.sub([0x1d7d21f72e3359c7], [0x8df20ed87d2595ca, 0xc3de77bae43d5acb], true, [0x720df12782da6a35, 0x599eaa3c49f5fefc])
+ self.sub([0x44c0b1656ab11798], [0xb84261dfc48a6a56, 0xc23889a599c1726a], true, [0x47bd9e203b7595a9, 0x828827bfd0efa52e])
+ self.sub([0x48bbe4566a55b8a7], [0xd5d9230421464233, 0xd9613bf9a4e62508], true, [0x2a26dcfbdeb9bdcc, 0x6f5aa85cc56f939f])
+ self.sub([0xf4550904fe1dded6], [0xacd061897162a922, 0xdf8332767448f03b], true, [0x532f9e768e9d56de, 0x14d1d68e89d4ee9b])
+ self.sub([0x7016696f51c63edf], [0x3fd0de8e64fe89a3, 0x26adba1e42d9ab80], true, [0xc02f21719b01765d, 0x4968af510eec935f])
+ self.sub([0x5091edf440202460], [0xa5fd281262a72d91, 0x2ad67f3940242e02], true, [0x5a02d7ed9d58d26f, 0x25bb6ebafffbf65e])
+ self.sub([ 0xe6243d10fd65355], [0xf2659358bf6e1f17, 0xf3d26ddd04088b51], true, [ 0xd9a6ca74091e0e8, 0x1a8fd5f40bcdc804])
+ self.sub([0xc19c5ba1e2d84216], [0x4ee6fd90b4f29cc7, 0xf0ca1fc2b4cc2758], true, [0xb119026f4b0d6338, 0xd0d23bdf2e0c1abe])
+ self.sub([0x266748ce5270a35a], [0x1a010597d83605f2, 0xde4f9888f99d55ee], true, [0xe5fefa6827c9fa0d, 0x4817b04558d34d6c])
+ self.sub([0xd048251990d64267], [ 0xcebed2ac291203e, 0x7bc37accacc8368e], true, [0xf31412d53d6edfc2, 0x5484aa4ce40e0bd9])
+ self.sub([0xe9bf5edc0e403498], [0x5826046f4a1765b4, 0xacde33cf01ae70f6], true, [0xa7d9fb90b5e89a4c, 0x3ce12b0d0c91c3a2])
+ self.sub([0x1db0834ef92a294c], [0xfa323fe2dc6ed80b, 0xca61f5df0bc14e56], true, [ 0x5cdc01d239127f4, 0x534e8d6fed68daf6])
+ self.sub([0x9c128380abbedaec], [0x706e8d31b0f77d48, 0xada52b5759838825], true, [0x8f9172ce4f0882b7, 0xee6d5829523b52c7])
+ self.sub([0xcdd5e12df942e390], [0x6a23d83231856f7c, 0xfe7ad3ed33c96519], true, [0x95dc27cdce7a9083, 0xcf5b0d40c5797e77])
+ self.sub([0x4fa8a81898299f25], [0x6cd20f509ce0cbe1, 0xaf4796ec1068e486], true, [0x932df0af631f341e, 0xa061112c87c0ba9f])
+ self.sub([0xef50a4105f3c110f], [0x3f5bb3394318e7b3, 0x289ebc262da7ff71], true, [0xc0a44cc6bce7184d, 0xc6b1e7ea3194119e])
+ self.sub([0x73549f3ba1635406], [0x1ac158a8fd23995d, 0xdb16a7dc49f0b28b], true, [0xe53ea75702dc66a2, 0x983df75f5772a17b])
+ self.sub([0xbc2ecea21d518747], [0xe3f574f22b055e6c, 0x6ac65ffa0dcabd06], true, [0x1c0a8b0dd4faa194, 0x51686ea80f86ca41])
+ self.sub([0xc9f7bd810ec439f5], [0x32a9818bb6846a2d, 0x8f58d66dfd9a96ab], true, [0xcd567e74497b95d3, 0x3a9ee7131129a34a])
+ self.sub([0xac77965ff538e8db], [ 0x2e4abda416788c0, 0xb9c6e6c90d027f8c], true, [0xfd1b5425be98773f, 0xf2b0af96e836694f])
+ self.sub([0x84730910d831801c], [0xca02e9fbdfd2bf64, 0xf916e793c492a64f], true, [0x35fd1604202d409b, 0x8b5c217d139ed9cd])
+ self.sub([0xe8c66fec50d52585], [0xb32c18a266583e64, 0xc8ddbfe47ce46add], true, [0x4cd3e75d99a7c19c, 0x1fe8b007d3f0baa8])
+ self.sub([0x3a61fffe7307f6d4], [0xf1923b8c3cabd9f1, 0xece4a3c78da7c399], true, [ 0xe6dc473c354260e, 0x4d7d5c36e560333b])
+ self.sub([0x4b0bcdc2e82b0c2f], [0x894bfd55462cf20c, 0xf590a9e0349dbd31], true, [0x76b402aab9d30df3, 0x557b23e2b38d4efe])
+ self.sub([0xb50561f9e031a6b5], [0x995b6a8ecce20788, 0xee00347ae5793424], true, [0x66a49571331df877, 0xc7052d7efab87291])
+ }
+
+ func test_sub_2_by_1() {
+ self.sub([0x307b122ec25fae3c, 0x2f79abe43bc33cfb], [0xeba4478b207ede78], false, [0x307b122ec25fae3b, 0x43d564591b445e83])
+ self.sub([0xc78c54d0b3849665, 0x45dbd200ee974a6d], [0xb6665c5074d1c060], false, [0xc78c54d0b3849664, 0x8f7575b079c58a0d])
+ self.sub([0x771600620901a07e, 0x5d3ad1f5aa292e9b], [0x6f37a9df8ec5504f], false, [0x771600620901a07d, 0xee0328161b63de4c])
+ self.sub([0x651d8fb3af8358c6, 0x9a3b5fdf28aec426], [0xf3deee53bc5931db], false, [0x651d8fb3af8358c5, 0xa65c718b6c55924b])
+ self.sub([0x90ae78311bbf8b76, 0x834c95d1cda0877f], [0xfe66d962827d3965], false, [0x90ae78311bbf8b75, 0x84e5bc6f4b234e1a])
+ self.sub([ 0xaa6de3fe16ae68d, 0x398b3a8e98d103e7], [0x2385567c372ff45b], false, [ 0xaa6de3fe16ae68d, 0x1605e41261a10f8c])
+ self.sub([0xabf45c10587f288a, 0xa825e80f9e9a6eed], [0x4e961b4620fe1139], false, [0xabf45c10587f288a, 0x598fccc97d9c5db4])
+ self.sub([0x3fd3419f14b44dfd, 0x277c9d5c36feb9f5], [0xb0fbe7cae4376932], false, [0x3fd3419f14b44dfc, 0x7680b59152c750c3])
+ self.sub([0x37bfcd921ed4ece5, 0xb817a095cfcf5f65], [0x7001250ba5ecb493], false, [0x37bfcd921ed4ece5, 0x48167b8a29e2aad2])
+ self.sub([0xde8ffd8b517f52c4, 0xad79520e7205125e], [0xdd6d784874aadf3c], false, [0xde8ffd8b517f52c3, 0xd00bd9c5fd5a3322])
+ self.sub([0xa6418cff40123828, 0xcbb473fffafd62dd], [0xa863664ec95287b4], false, [0xa6418cff40123828, 0x23510db131aadb29])
+ self.sub([0xdf718992529c7caf, 0x31fd964eb52f48be], [0xa2d3317eea390615], false, [0xdf718992529c7cae, 0x8f2a64cfcaf642a9])
+ self.sub([0x1d490700c062a4a6, 0xe026f554700311b4], [ 0xc216e073d91caf], false, [0x1d490700c062a4a6, 0xdf64de73fc29f505])
+ self.sub([0x5803e3fffa510dad, 0xa02b1fb330c37058], [0xfa8f76823d21a645], false, [0x5803e3fffa510dac, 0xa59ba930f3a1ca13])
+ self.sub([0xf642a3b90c1b22e9, 0xa67345a92e03fdc], [0x1a2382ab87a5ecf4], false, [0xf642a3b90c1b22e8, 0xf043b1af0b3a52e8])
+ self.sub([ 0x814b8cb629d4e1f, 0x8add1a7f9468391c], [0x29fe8d2c05f5bc4a], false, [ 0x814b8cb629d4e1f, 0x60de8d538e727cd2])
+ self.sub([0x50c94d50466229ad, 0x93c3244aa0505388], [ 0xcd0c61e64bbaa62], false, [0x50c94d50466229ad, 0x86f25e2c3b94a926])
+ self.sub([0x1a17c4f3d2652b0f, 0xb3f08f16a12032b6], [0x87ae6e8fd9401954], false, [0x1a17c4f3d2652b0f, 0x2c422086c7e01962])
+ self.sub([0xa278e5053594b3b0, 0xbc412d4432f4a343], [0x38514f151e43ea73], false, [0xa278e5053594b3b0, 0x83efde2f14b0b8d0])
+ self.sub([0x1cae236fbbbb543b, 0x61ac36dd553a9330], [ 0x9e88c63b954847f], false, [0x1cae236fbbbb543b, 0x57c3aa799be60eb1])
+ self.sub([0xc9ac8f9c927ef848, 0x8e76d9a115d500f7], [0x79fd27b713dc8992], false, [0xc9ac8f9c927ef848, 0x1479b1ea01f87765])
+ self.sub([0x831a4a972400a2a3, 0xde84f33503b31af7], [0x8a8c63fbfb0bce7d], false, [0x831a4a972400a2a3, 0x53f88f3908a74c7a])
+ self.sub([0x16de88f9fbed1983, 0x28cd26aa0b3094e7], [0x5113d8618f0cc06f], false, [0x16de88f9fbed1982, 0xd7b94e487c23d478])
+ self.sub([ 0x503a5696247a3d9, 0x54b67853218a5428], [0xf0579d1773b365fc], false, [ 0x503a5696247a3d8, 0x645edb3badd6ee2c])
+ self.sub([0xaec277e7ab2a19eb, 0x31a707b1446a5d01], [0xa359fcdb39806bbc], false, [0xaec277e7ab2a19ea, 0x8e4d0ad60ae9f145])
+ self.sub([0xe46f67a6dbaa025a, 0x9e5476d33790c5c7], [0xe7c11eaf735bf85b], false, [0xe46f67a6dbaa0259, 0xb6935823c434cd6c])
+ self.sub([0xf0bd4f2e21885343, 0x86e4d63cd9d91d4c], [ 0x54fe8f0e9015b97], false, [0xf0bd4f2e21885343, 0x8194ed4bf0d7c1b5])
+ self.sub([0x7df511b4893171c2, 0xe629e3e0eecb092a], [0x35f32a8ab9f95526], false, [0x7df511b4893171c2, 0xb036b95634d1b404])
+ self.sub([0x271527b5bd2f8a96, 0x1b286e9d58e235a9], [0x48d4e28a0970cf1f], false, [0x271527b5bd2f8a95, 0xd2538c134f71668a])
+ self.sub([0x1a010d37a182823d, 0x518df26d923774d2], [0xcfc8f9da7026cb99], false, [0x1a010d37a182823c, 0x81c4f8932210a939])
+ self.sub([0x93cfd71da727eb94, 0x8c2e72519ec99f05], [0x8201af18e5ca505f], false, [0x93cfd71da727eb94, 0xa2cc338b8ff4ea6])
+ self.sub([0xbd6dd0824a5ac7d7, 0x3e4d30b9852d9a44], [0xf81ec9b010d171dd], false, [0xbd6dd0824a5ac7d6, 0x462e6709745c2867])
+ self.sub([0x1930e051a374e1e1, 0xd56fce046013f4dc], [0xacd3d7d79a3684e7], false, [0x1930e051a374e1e1, 0x289bf62cc5dd6ff5])
+ self.sub([0x4d5c5d0966c737bd, 0x724d961b4e2b42cc], [0x100d083966b0dd4f], false, [0x4d5c5d0966c737bd, 0x62408de1e77a657d])
+ self.sub([ 0xb92b32ed5efbb28, 0x5fadf87df3152ade], [0xf449b84846ec2b61], false, [ 0xb92b32ed5efbb27, 0x6b644035ac28ff7d])
+ self.sub([0x14269f815fb151ee, 0x2d0513d16a25bf1f], [0xe7f52610045ae627], false, [0x14269f815fb151ed, 0x450fedc165cad8f8])
+ self.sub([0xa5ac0eddb2a6ca66, 0x3328dea4abe15e12], [0x35339dbc3a71aaa4], false, [0xa5ac0eddb2a6ca65, 0xfdf540e8716fb36e])
+ self.sub([0x7d519c53ffb2d94f, 0x3c2198518a921b5c], [0x242286690dedf9c9], false, [0x7d519c53ffb2d94f, 0x17ff11e87ca42193])
+ self.sub([0x4bb7980cd1841ce3, 0xa52fd61b8541623e], [ 0xee499cdf2eea0a4], false, [0x4bb7980cd1841ce3, 0x964b3c4d9252c19a])
+ self.sub([0x5af6f55fbec3e881, 0xc49966c571acb267], [0x6831b130807fb966], false, [0x5af6f55fbec3e881, 0x5c67b594f12cf901])
+ self.sub([0xf273df21df09d7b1, 0xfca2251465e41af9], [0x89a3a06bc181cfde], false, [0xf273df21df09d7b1, 0x72fe84a8a4624b1b])
+ self.sub([0xe22f2758c0e74125, 0xe99b003a65cfec4], [0x20de4d6c270f2ac3], false, [0xe22f2758c0e74124, 0xedbb62977f4dd401])
+ self.sub([0x73c2388a5a066619, 0x6698c2158d87ade4], [0xd07c1f828c497937], false, [0x73c2388a5a066618, 0x961ca293013e34ad])
+ self.sub([0x786b7e49e3ea869f, 0xc0b8083401c53961], [0x4d76d8a391c0c4da], false, [0x786b7e49e3ea869f, 0x73412f9070047487])
+ self.sub([0xabd88813ee2f43f8, 0xe03b349a2730c682], [0x3b01062c70c9d93b], false, [0xabd88813ee2f43f8, 0xa53a2e6db666ed47])
+ self.sub([0xf9ac968fbd9fb653, 0x4f79e30d4e9f5aa8], [0x3326ff8e3b48c43c], false, [0xf9ac968fbd9fb653, 0x1c52e37f1356966c])
+ self.sub([0x3407333f804e36e6, 0xa28bef4a019c4bc9], [0x6e43d68ab40d887f], false, [0x3407333f804e36e6, 0x344818bf4d8ec34a])
+ self.sub([0x6580c7cb03b447b3, 0x6b93b4c7e1ef0877], [0x12f22c23c17436c0], false, [0x6580c7cb03b447b3, 0x58a188a4207ad1b7])
+ self.sub([ 0x88bccad230fdeff, 0x2482c42583c42b71], [0x40a633115549532a], false, [ 0x88bccad230fdefe, 0xe3dc91142e7ad847])
+ self.sub([0xc0a3714a7cfc6075, 0x5731d1b9dedab369], [0x30109c1518b2b46e], false, [0xc0a3714a7cfc6075, 0x272135a4c627fefb])
+ }
+
+ func test_sub_2_by_2() {
+ self.sub([0x5d0c9516d6766de0, 0x8f13a7196e3f3df2], [0xd9064b9f143870b3, 0x2a258f7ecb3f0340], true, [0x84064977c23dfd2d, 0x64ee179aa3003ab2])
+ self.sub([0xf1815677bec126e3, 0x2561147d8a534dc9], [0xa54c026544ed89c9, 0xc80435b1aff9dbc4], false, [0x4c35541279d39d19, 0x5d5cdecbda597205])
+ self.sub([0x700e826e61221e87, 0xf8ed8993ee3856b6], [0x74323c9323c76c76, 0x82eb4a1d6a453774], true, [0xfbdc45db3d5ab211, 0x76023f7683f31f42])
+ self.sub([0xb61378d375f1bc84, 0x4ddc9be0fc1aedf2], [0x6fcea48b2d94f3ed, 0x6e3273b39fa1e33c], false, [0x4644d448485cc896, 0xdfaa282d5c790ab6])
+ self.sub([0xe1257de9a39f82b4, 0x2ee12607e93704bd], [0xc1af9c43838d5c15, 0x990c1413126f37c3], false, [0x1f75e1a62012269e, 0x95d511f4d6c7ccfa])
+ self.sub([0x6710ea414daa86fd, 0x5b58ca73ef8d07c], [0xc6fe88a5c8c5b607, 0xeda0312087e071b8], true, [0xa012619b84e4d0f5, 0x18155b86b7185ec4])
+ self.sub([0xa0640808f8ca626a, 0x3c647b46a083e3f8], [0x92b12942e23466f7, 0x57f0bb4487afa458], false, [ 0xdb2dec61695fb72, 0xe473c00218d43fa0])
+ self.sub([0x724d7066dce87b18, 0x728fbe04944b27b9], [0xd529b75a361a1ab2, 0xa043e083b50d38ae], true, [0x9d23b90ca6ce6065, 0xd24bdd80df3def0b])
+ self.sub([0x30ce7a84102d5fe6, 0xdd7f2a7ef5773f14], [0xfeb3ab76d647fb61, 0x3fdb522e2d5a7eaa], true, [0x321acf0d39e56485, 0x9da3d850c81cc06a])
+ self.sub([0x480cd032af7d37ed, 0x5ab134aee0e96b6b], [0x39d78dda27e9b917, 0x254b9d25d9dae789], false, [ 0xe35425887937ed6, 0x35659789070e83e2])
+ self.sub([0x9186a53c371e053f, 0xc4012d6ef6b45ce7], [0x9a4295d406e505af, 0xb175053593c8a1c4], true, [0xf7440f683038ff90, 0x128c283962ebbb23])
+ self.sub([0xff63f7b57145625e, 0x29bb8cba2f05dcd5], [0xb5c88ffaa1328811, 0x5497e02d50b30c2], false, [0x499b67bad012da4d, 0x24720eb759faac13])
+ self.sub([0xa3d44085fe365d20, 0x4004efe47278e91e], [0x6ad113414f1c6743, 0x52574b3061a4b475], false, [0x39032d44af19f5dc, 0xedada4b410d434a9])
+ self.sub([0xeac6efb86319e8d2, 0xd5439a9833030e10], [0x806e18509b265b05, 0xb2f4da8438d68bf5], false, [0x6a58d767c7f38dcd, 0x224ec013fa2c821b])
+ self.sub([0x135285624e6f7dbd, 0x8f202739443f9cd8], [0x30cd13822e995394, 0x8f8fe013e79fae59], true, [0xe28571e01fd62a28, 0xff9047255c9fee7f])
+ self.sub([0xdaee9b285c7057cd, 0x8be677a5fce00f9b], [0x77d7ce37a6457225, 0xab9c61241986be23], false, [0x6316ccf0b62ae5a7, 0xe04a1681e3595178])
+ self.sub([0x944b70f86ab18576, 0xad0e0262e54b99ce], [0x4704b445ad3cc369, 0x71319c1370a06730], false, [0x4d46bcb2bd74c20d, 0x3bdc664f74ab329e])
+ self.sub([0x7c7b7b9def58e49b, 0x1ee399b5c007fc4f], [0xf954029b92bd059a, 0xbb29205705c335e9], true, [0x832779025c9bdf00, 0x63ba795eba44c666])
+ self.sub([0x7fe792259ea7b489, 0xbb177cf76147f47d], [0x1e57d34e03c16330, 0x7998136362861543], false, [0x618fbed79ae65159, 0x417f6993fec1df3a])
+ self.sub([0x8b7486e8bc8c608c, 0x38ceccadffae3154], [0xc230c74340023b73, 0x1c3b4ecad34f1381], true, [0xc943bfa57c8a2519, 0x1c937de32c5f1dd3])
+ self.sub([0xd8821f184eedca7f, 0x6cbd47d71954cefa], [0xf4ed53b04a6c17cf, 0x3e150a6a167e45ea], true, [0xe394cb680481b2b0, 0x2ea83d6d02d68910])
+ self.sub([0x812868b785913c87, 0xc575827399c3a3ca], [0x178ec0875388fbe1, 0x8d88005723fc6b9f], false, [0x6999a830320840a6, 0x37ed821c75c7382b])
+ self.sub([0x6f9478097352fc8c, 0x4f857c4980ae8cc3], [0x53ece6c69d577378, 0xb7a113c552605cc0], false, [0x1ba79142d5fb8913, 0x97e468842e4e3003])
+ self.sub([0xb77962a273d2c507, 0xb643fab044e59568], [0x9ff3ec59251c44af, 0xae327c625f356dcd], false, [0x178576494eb68058, 0x8117e4de5b0279b])
+ self.sub([0xc5eee9e4579dab94, 0x44b8ff0fcc3c0c91], [0x10899e26d2bec37d, 0x45aaabcf79637f33], false, [0xb5654bbd84dee816, 0xff0e534052d88d5e])
+ self.sub([0x5650c4cb97297632, 0xeba99fcd3223cc69], [0xdaccf79a0b684a58, 0x3f4a42bedc63e0f], true, [0x7b83cd318bc12bda, 0xe7b4fba1445d8e5a])
+ self.sub([0x663330780594f682, 0x4dd9b345a103b3bd], [0x7ddae56a352f7462, 0x715ec4e9370e180e], true, [0xe8584b0dd065821f, 0xdc7aee5c69f59baf])
+ self.sub([ 0xdda0d54c492852f, 0x5613fb99f307ec82], [0xc50a481980624624, 0x49f85d5399da3369], true, [0x48cfc53b44303f0b, 0xc1b9e46592db919])
+ self.sub([0xe6ffaccafe2e5e24, 0x1fa750b4406ef3a5], [0x38940dc0e32de178, 0xd59df2c0281198c6], false, [0xae6b9f0a1b007cab, 0x4a095df4185d5adf])
+ self.sub([0xbb1c1bef7b7e5215, 0x523dea8536afd397], [0xaaaed30f6c751857, 0x17b92f70d02fae8e], false, [0x106d48e00f0939be, 0x3a84bb1466802509])
+ self.sub([0xa95fffa83e967037, 0xdd23ab029645656c], [0xd856ec07167a95f5, 0x5c66acbcd2de513d], true, [0xd10913a1281bda42, 0x80bcfe45c367142f])
+ self.sub([0x43c8e676f7585f4a, 0x4a4200164457665b], [0xaaedc22db5a81451, 0xdb7ee9bfb664038], true, [0x98db244941b04af9, 0x3c8a117a48f12623])
+ self.sub([0xfbea80ca0cd5c24d, 0x3fed82ba61f2fcb], [ 0x2b76477a34aba33, 0x654ac60d1f156c4], false, [0xf9331c52698b0819, 0xfdaa2bcad42dd907])
+ self.sub([0x7c931ba36d56e0f3, 0x686284aface46ee], [0xf04fde78fce81bbc, 0x463a17fff88da88c], true, [0x8c433d2a706ec536, 0xc04c104b02409e62])
+ self.sub([0x8dfcb0cdf5edd01d, 0x700c4d481adc2d17], [0x90e1079cd70ebfe0, 0xf343546ea5f2f48a], true, [0xfd1ba9311edf103c, 0x7cc8f8d974e9388d])
+ self.sub([0x9ed81be6ac5054b4, 0x20f92a218a266233], [0x825b3781b17581cc, 0x50ca6ae962d1e15], false, [0x1c7ce464fadad2e8, 0x1bec8372f3f9441e])
+ self.sub([0xa74bd6bbd8588aa8, 0xb3768b2b5ac29ec4], [0x2fd9ccfa0048986a, 0x51a8329e8d453122], false, [0x777209c1d80ff23e, 0x61ce588ccd7d6da2])
+ self.sub([0xf88f5b010027c0ec, 0xc59c009f4ace54ea], [0xa78d6518eaed846b, 0x9e8d554d82caabff], false, [0x5101f5e8153a3c81, 0x270eab51c803a8eb])
+ self.sub([0x3bd62874db398219, 0x496868850b58ddf3], [0x3389250b84dc0e7b, 0xa4cdbb1cf274c674], false, [ 0x84d0369565d739d, 0xa49aad6818e4177f])
+ self.sub([ 0x350540a6c201c5a, 0x4c2f8e3fff66b92e], [0x5f4b4af212ed5425, 0x834a5e37583d3840], true, [0xa40509185932c834, 0xc8e53008a72980ee])
+ self.sub([ 0xf62c6d01779a863, 0x622e2fde898381ba], [0x7ef5b2ef48945fbb, 0x9d4da3a26766916b], true, [0x906d13e0cee548a7, 0xc4e08c3c221cf04f])
+ self.sub([0xc253ff42db1a9ec4, 0x59afd5c6c5f33bc8], [0x7f82a8d0482c2bde, 0x789c362dc77fc0f2], false, [0x42d1567292ee72e5, 0xe1139f98fe737ad6])
+ self.sub([0xc866aec2a7e5fc07, 0x704b80440cba6a32], [0xaabe32d003e372a8, 0xa4454d52bf426790], false, [0x1da87bf2a402895e, 0xcc0632f14d7802a2])
+ self.sub([ 0xdf1287207837af3, 0x54fe6340edfc5068], [0x84308bdfd7536635, 0xf9534d5d6eae9c2d], true, [0x89c09c92303014bd, 0x5bab15e37f4db43b])
+ self.sub([0x2f7a552cf9372251, 0x689b0d4a7c0f1809], [0x603ac9abf6db674e, 0xb58cb1975edbd799], true, [0xcf3f8b81025bbb02, 0xb30e5bb31d334070])
+ self.sub([0xb54278a52706463b, 0x9bb09c2261327c45], [0x548a438aa89240e3, 0x6ea13ad644403a70], false, [0x60b8351a7e740558, 0x2d0f614c1cf241d5])
+ self.sub([0xc59f88bdaec1e701, 0x39908f4d1e3ad919], [0xae48a8d560c4b6f2, 0xfb92b5184d687fdb], false, [0x1756dfe84dfd300e, 0x3dfdda34d0d2593e])
+ self.sub([0xd7d19f121eab05b5, 0x2d21fddfa4fdce4b], [0x7aa6672d6832fbeb, 0xe017f6833d1f9a48], false, [0x5d2b37e4b67809c9, 0x4d0a075c67de3403])
+ self.sub([0xa67bb634bbea11cf, 0xc80a4e0aa80233f3], [0x1fb86912fccd65a8, 0xa53423360619e02b], false, [0x86c34d21bf1cac27, 0x22d62ad4a1e853c8])
+ self.sub([0xef80aa6d495bf13d, 0x30392dd515f3a7cc], [0x379293d0390c1cb0, 0x875b7f46bfe82d37], false, [0xb7ee169d104fd48c, 0xa8ddae8e560b7a95])
+ }
+
+ private func sub(
+ _ lhsWords: [Word],
+ _ rhsWords: [Word],
+ _ expectedOverflow: Bool,
+ _ expectedWords: [Word],
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let lhs = self.create(lhsWords)
+ let rhs = self.create(rhsWords)
+ let expected = self.create(expectedWords)
+
+ let (result, overflow) = lhs.subtractingReportingOverflow(rhs)
+ XCTAssertEqual(result, expected, "reportingOverflow.result", file: file, line: line)
+ XCTAssertEqual(overflow, expectedOverflow, "reportingOverflow.overflow", file: file, line: line)
+
+ if !overflow {
+ let result2 = lhs - rhs
+ XCTAssertEqual(result2, expected, "-", file: file, line: line)
+ }
+ }
+
+ // MARK: - Mul
+
+ func test_mul_1_by_1() {
+ self.mul([0x374389ae78712d26], [0x811963247bdf116c], [ 0x0], [0x1bde83605b363aa8, 0xd2920239e9d89208])
+ self.mul([0xd5ffd875b0fd88c1], [0x1b824732ee7f1857], [ 0x0], [0x16fee344ddcda2c1, 0x32a0583330ba9197])
+ self.mul([0x6457be5d1160d69f], [0xca591280405baabf], [ 0x0], [0x4f5025f70e8d0b7a, 0xa417b58e504ab6a1])
+ self.mul([0x50b7cbcf0eb213cb], [0x8da772e3822e2166], [ 0x0], [0x2caa076093f27944, 0xac50ea7273fb0de2])
+ self.mul([0x9d0922d3c1f51ce2], [0x4d75690937c0190a], [ 0x0], [0x2f83c51502ec3f67, 0x2bffe132bae532d4])
+ self.mul([0xa27887e8441261b2], [0xbca207e37a89350e], [ 0x0], [0x77b759163d54f522, 0xaa143406a37d31bc])
+ self.mul([0x126d942a6d847485], [0x178b2dcfb39d022a], [ 0x0], [ 0x1b1dd1b79748ce7, 0x77880410753527d2])
+ self.mul([0x6a65256a07a904a3], [0x3448b58dcfa73329], [ 0x0], [0x15bac38082d755ca, 0x773a944ab953371b])
+ self.mul([ 0x6b1136453a03ed3], [ 0xa428bda07f42676], [ 0x0], [ 0x44a810c3a907eb, 0x4160fbc9fb4c4742])
+ self.mul([0xbd684dd05b1d533f], [0x1668274ac4c570d0], [ 0x0], [0x10940621ba10b57b, 0xf7a39baa27ba3330])
+ self.mul([0x12736222210bd4af], [0x60ffaa17852523ab], [ 0x0], [ 0x6fdb1fddd8474c8, 0x5134753e5945fde5])
+ self.mul([0xfda9fb33cae5bf52], [0x57ee4b7918697bfd], [ 0x0], [0x5720e32eee3b12a9, 0x31d35a99109c7a0a])
+ self.mul([0x86bb9e72d1c2a38f], [0x3fd73c99e5017287], [ 0x0], [0x219973754bd8443f, 0x7757e27dd908ee69])
+ self.mul([0x1dcc8bf9e949f407], [0xc69d606a0203457d], [ 0x0], [0x171e85ee2e1eeca2, 0xacc7af93c1f70a6b])
+ self.mul([0x4a20ce4c593c4631], [0x2f36d2af24415cc3], [ 0x0], [ 0xdabe5cd28a41531, 0x9e2de3e558941353])
+ self.mul([0x3d4e9fcf6c2ec1e3], [0x5575c7ba6ce392fd], [ 0x0], [0x14774fd3ac25fce2, 0x92d836e045121357])
+ self.mul([0x6564e23fc370774b], [0x8d83f642ccf6db13], [ 0x0], [0x380cd4c64bdfb880, 0xdd0e97651d780391])
+ self.mul([0xe04a0803d44581b0], [0x2dca73d80f41f73d], [ 0x0], [0x281e63518cc4541b, 0xba900f77e260b6f0])
+ self.mul([0xb71a403b436a6350], [0x4ff08b12cd95d447], [ 0x0], [0x392d25e73520e9b3, 0xa95abe56aa4fcb30])
+ self.mul([0xcb89296ba97e39d8], [0xe4360a73d82b4ba9], [ 0x0], [0xb571202215c42344, 0xfe4d47c4d68e7798])
+ self.mul([0x6cde29a7b9a79891], [0xab09c8c3a832f2b5], [ 0x0], [0x48bc8f034534b38b, 0xc2ffbe64a609f085])
+ self.mul([0xdad9b2edfcc6c48d], [ 0x472375fe9996ce6], [ 0x0], [ 0x3cd0b1429db8044, 0x3f275f77c2c512ae])
+ self.mul([0xfe7c07af0c212938], [0x7df36d78ee3c6ab0], [ 0x0], [0x7d348c4eca513517, 0x210199b5cafd8680])
+ self.mul([0x90d6242d072ee912], [0x31fc9c89a2e7feed], [ 0x0], [0x1c47e84897829d9c, 0xff2b0843e4eba1aa])
+ self.mul([0xf80e9fc3b70e1d61], [0xb622b623ac877900], [ 0x0], [0xb07c080352e46cf5, 0x95697ff75609d900])
+ self.mul([ 0x6ae71aafc6c87da], [0x33b23c1cf6b8c481], [ 0x0], [ 0x1596781bd561820, 0xddaddcd16b635cda])
+ self.mul([0x35e6a79742a75949], [0xfcdb5cf4b551cfbe], [ 0x0], [0x353d3cdcae422763, 0x64ba6fd0a67f4b2e])
+ self.mul([ 0x4bd42c2972adae7], [0xa61c0d6a32e3394d], [ 0x0], [ 0x3133e3d0f0104cd, 0x44fd30973b76467b])
+ self.mul([0x6e60f5bb4bf69f91], [ 0x8c3022378ea636], [ 0x0], [ 0x3c71c75155a23b, 0x4af9c91a9aebae96])
+ self.mul([0xa15504f6801fa7b6], [0x4a72ce0e8b2b63a7], [ 0x0], [0x2eeaed270b2756ee, 0x9215e5aed013c9ba])
+ self.mul([ 0x33a4e11e132eab5], [0x79303d1258852123], [ 0x0], [ 0x1872a9a369cc2f2, 0x302e1c5582406bbf])
+ self.mul([0xd757633867888d84], [0x42a25a96139d7e80], [ 0x0], [0x380d19144af8a7b5, 0xf91953c08fe1ba00])
+ self.mul([0xdad6974e6533cb50], [0xc833eb1bcb89e106], [ 0x0], [0xab2407f023339381, 0x18408f2922b813e0])
+ self.mul([0xe18d74df393a3b13], [0x141f7aca7100244a], [ 0x0], [0x11bac9725e60a4a3, 0x2afc8ba41e23bf7e])
+ self.mul([0xb9823082ca4f796c], [0x1a55cc14136012e1], [ 0x0], [0x13156509aed78a41, 0x84b9256df2e34fec])
+ self.mul([0xefc37f5e152a097d], [0xe161971cb14a6507], [ 0x0], [0xd316398c22ce3c3c, 0x1efb8d4e5506936b])
+ self.mul([0x525e29dae54aa743], [0x6b042744bd234ebe], [ 0x0], [0x226eb1999b802143, 0xc34dbd041878dba])
+ self.mul([0xe5c11d6a5ca8d567], [ 0xa520a03a416e6b5], [ 0x0], [ 0x9432bfe635e0ac6, 0xabc600e085f36bd3])
+ self.mul([ 0x6d69047df993a3e], [0xd2fcb62a1cd69444], [ 0x0], [ 0x5a2c26ea6b7c478, 0x24852efd72335078])
+ self.mul([0xb625f66477016fe9], [0x44ab85edd3edfe17], [ 0x0], [0x30dc201935a9cc89, 0x8114d460c3df3bef])
+ self.mul([0x17e7267c614cb9ca], [0x3be863f938f1fa13], [ 0x0], [ 0x597f8af342c8d55, 0x2ea787993d4b0dfe])
+ self.mul([0x9c8e201a81686088], [0xe0f2d527f809e9e3], [ 0x0], [0x8990dccc3c5659f8, 0xcb521e2fe4316098])
+ self.mul([0xc79a07b3a3dea458], [0xb545da4c3ba7d5b5], [ 0x0], [0x8d565e2ab11433f6, 0x7707d998988f6a38])
+ self.mul([0xd90bc5335c6c06f1], [0x5092fc236be6a5c2], [ 0x0], [0x44504c1c2262754f, 0xf3d7ea65a1dc97a2])
+ self.mul([0x6a57606841c7b804], [0x85fbe2d0b61b0920], [ 0x0], [0x37a806f98624f9be, 0xe9b7af7b7edb2480])
+ self.mul([0x9867232621a7751e], [0x1494d83ffd1043d6], [ 0x0], [ 0xc40ab1c6a5df94e, 0xe66e1846ed82c114])
+ self.mul([0x222ebdeec7f07903], [0xaa2e4d2f63ae5544], [ 0x0], [0x16b938d514b2a926, 0xcf2ebe9b5d1823cc])
+ self.mul([0x2ef7a705f29b43d8], [0xa3cfea219bf86ba0], [ 0x0], [0x1e0dd48d607d850d, 0xdaee177407a5af00])
+ self.mul([0x5442e15c11274426], [0x9900b9da31e47556], [ 0x0], [0x325c35dc2c7be7d8, 0xe66e1224ad2e42c4])
+ self.mul([0xd94c3abc5fa0eb5a], [0xd81c701ac231ce57], [ 0x0], [0xb770750d6d90a864, 0xf9d912433d4c6796])
+ self.mul([0xfb742de383a044dc], [0xa17f9fe81448e261], [ 0x0], [0x9ea16c8ff75ca75e, 0xdef4d33cea644f5c])
+ self.mul([0xfa73064c980d997c], [0x4bab5ae5dfdb2008], [ 0x0], [0x4a07569af9d1af3e, 0xf64f95a7c4b04be0])
+ self.mul([0xf8ba06c0c4f33478], [0x2078a2f6383fc393], [ 0x0], [0x1f8c766034a9d7b5, 0x1ba4bd5a822688e8])
+ self.mul([0x784fd83e71617a55], [0x9a5b15772d52cdd3], [ 0x0], [0x488ad68dfd8e88e2, 0xa977867fa287e50f])
+ self.mul([0x4912b833ba2856c4], [0x154a16a4400f09a7], [ 0x0], [ 0x613aefbfb548ad0, 0xef3666e7f0d97ddc])
+ self.mul([0xd4afc92153e57475], [0x448479643214aee8], [ 0x0], [0x38ecc0eae3cf0b3f, 0xcd011699f03d1008])
+ self.mul([0x6c9c49ea1088133a], [0xf194fb7d9daa44e8], [ 0x0], [0x667e56a29c8e549d, 0xc7aad7fc76f0d490])
+ self.mul([0xdcb61eed2b28db72], [0xbe21719f5fc6fb62], [ 0x0], [0xa3ec0063cdf1eb8e, 0xb96d88f29cf8c7a4])
+ self.mul([0x885d43fbcaca768b], [0x74b0ad2896c59822], [ 0x0], [0x3e285f297ad2d6ef, 0x53a4abd3d03d4676])
+ self.mul([0xee234fcf23cc18a2], [0x97e18462a8547be9], [ 0x0], [0x8d489c424e6cf7e3, 0xfa28cee109c04172])
+ self.mul([0x2ac8641d9fb50eba], [0x175c2e3728b2ca7a], [ 0x0], [ 0x3e768bbddd6af44, 0x9970024a473bc8a4])
+ self.mul([0x3c12295cb4265ecd], [0x314965c17b9f6925], [ 0x0], [ 0xb90b2f91aef9ae0, 0x9682ad3826c0c8a1])
+ self.mul([0xa17c37dc342a83fe], [0xdf1b472261f57103], [ 0x0], [0x8cbc69a1d972eb82, 0x84a9dd0af0d8a9fa])
+ self.mul([0xa9a609a2c4005c42], [0x932e532a53915b7a], [ 0x0], [0x61890a7b1389f014, 0xd91f1e2f30596d74])
+ self.mul([0xabf80bb2e1b39258], [0x4a792d2846cf9387], [ 0x0], [0x320719f4e52c1fab, 0xee41d2e687e2b468])
+ self.mul([0x1048bdb8d78af3ed], [0x4d200e301ebfc2ed], [ 0x0], [ 0x4e7eb0f59e82416, 0x334d83289c506c69])
+ self.mul([0x6a1b1b0c77dbbd6c], [0xc252b10502747b7f], [ 0x0], [0x508ad08cee128db9, 0xcde1ceeeb6f5dc94])
+ self.mul([0xcb78f094e685eb5a], [0xc8efbc8f827f5213], [ 0x0], [0x9fb507bbd0102fc2, 0xf4a27a1d76f94bae])
+ self.mul([0xe02a6f4014e01273], [0x9e6b09a8d7bcd231], [ 0x0], [0x8ab7eadb6356427a, 0x7fbc86e7ef79de03])
+ self.mul([0x7b4638547767dd36], [0x17e1acad3247d342], [ 0x0], [ 0xb7ffaedad7a65ac, 0x878e50b24a1489ec])
+ self.mul([0x6a601cb24ae005c2], [0x33ebf2d945545567], [ 0x0], [0x159330dafffd2d76, 0x5b4df719afb3bb0e])
+ self.mul([0x5fd5c1c86e5863c5], [0x4ab1c11a9f291a90], [ 0x0], [0x1bf6551909dcc808, 0xe8f49514616720d0])
+ self.mul([0xae75f32d669c92e1], [0x5dfd006f5a6321e2], [ 0x0], [0x400d4434b4e2c0fa, 0x9c5bf20dac2baba2])
+ self.mul([0xffe2dbb8df7a0884], [0x19684505d447b147], [ 0x0], [0x1965609c49c45a53, 0x767a8b430757a09c])
+ self.mul([0x81cf8d25459446ac], [0x9abfd5d0709cb61c], [ 0x0], [0x4e78212e1cd711e3, 0x2bcdbc91574602d0])
+ self.mul([ 0xcbe2a065458e710], [0x195bbf1f0ca1f5e7], [ 0x0], [ 0x1432336fb7f73ab, 0x75981c1d426acf70])
+ self.mul([0x47b334474d4375e6], [0x445dc0584ef2fba2], [ 0x0], [0x1325dbdc11591717, 0x4cc59ca190b51d8c])
+ self.mul([0xf1b8e296858c1096], [0x3f373561ab63c820], [ 0x0], [0x3bb0a0e338ffe4ab, 0xe747763aba7942c0])
+ self.mul([0xb9f3a1a2fa9db605], [0x55ed0dace380d757], [ 0x0], [0x3e6a1526b53ee03a, 0xb418827b10f70eb3])
+ self.mul([0x9a00019de51249a6], [0xca16bbbca2fe8eb4], [ 0x0], [0x7991ae36358ec6d7, 0xb403eabd5469dcb8])
+ self.mul([0x21e04bdba513ecbb], [0xe1b6fbed33a96079], [ 0x0], [0x1dde5978481a8d5f, 0xf9d8ad2807a40463])
+ self.mul([0x9e33cf478b2d4a6c], [0xbb2639d6258ab2ce], [ 0x0], [0x73a777d7e6f22543, 0xc4f55ecb3668fae8])
+ self.mul([0x1bea13c2f2665e3c], [0x32f3faed2c9a9518], [ 0x0], [ 0x58e52694941d83c, 0xcc2190af4e89c1a0])
+ self.mul([0x896bec952f6ba289], [ 0x5e3c1d95c31db49], [ 0x0], [ 0x3295e60bd8bb637, 0x8d03e73ff1f58c11])
+ self.mul([0x72e49a9890b1850b], [0x3eb921119a432208], [ 0x0], [0x1c26737c09a32364, 0x7d89013589189e58])
+ self.mul([0xbefce8190c5fbe14], [0xf473d3f7e7b567a1], [ 0x0], [0xb65f76f78939f119, 0xdf57113cbdd49694])
+ self.mul([0x4a1f9430eba4c4a7], [0x1c8a60be884a9953], [ 0x0], [ 0x843853e3e9dc140, 0xaf3082bd70399125])
+ self.mul([0x5649315de768527a], [0xe87735dcca86f949], [ 0x0], [0x4e5a82ea9ebf3922, 0x1912fe62e4d42eca])
+ self.mul([0xd9f2d36da179101b], [0xecc1c2a77bd74935], [ 0x0], [0xc990d0b311924cd8, 0xb7c0c7c473550897])
+ self.mul([0xbd00c8c3aed1bcad], [0x318e415d1735436c], [ 0x0], [0x24962d1ebe6620e7, 0x9e276a873faddffc])
+ self.mul([0x1e06fbb5476bae57], [ 0xdce154a2319c5d3], [ 0x0], [ 0x19e86e605488c0f, 0xac5b30dfa668a4b5])
+ self.mul([0xeea259126c9cc554], [0x76ae33bbf81035c2], [ 0x0], [0x6ea137a098283427, 0x46c2d9c478e7eda8])
+ self.mul([0xcacf526c52da8a12], [0xb03b91efbc11720a], [ 0x0], [0x8b9dba0fd228b7fd, 0x99388bd6f13768b4])
+ self.mul([0xd9ef17640f2256dc], [0xe1d542d0298465a6], [ 0x0], [0xc040b05e413093ac, 0x829f3d3861f91ea8])
+ self.mul([0xb8a40db27fd250ec], [0xea242f762ff1ae4f], [ 0x0], [0xa8e00dd272a6bbf6, 0xc76e1f97e71360d4])
+ self.mul([0x686979bc6418f335], [0x1e5cc437877ce8d3], [ 0x0], [ 0xc6232333a8edad3, 0x2de889b6dda47caf])
+ self.mul([0x331dd1cf809fbd82], [0x15545d319f5fd2fb], [ 0x0], [ 0x4424a9a9b6380e8, 0xd0505fd337517276])
+ self.mul([0xc8a229d038bc1e1a], [0x3986c80a2c6abb64], [ 0x0], [0x2d15bcf7e96f68d2, 0xa854bedc823cc028])
+ self.mul([0x2d652ffbcb8ce0ff], [0x25e262953b5b7823], [ 0x0], [ 0x6b7c4bef37eeab1, 0x9cfcfc309d5f4add])
+ self.mul([0xd8be91f586454762], [0xe53091eb66d91418], [ 0x0], [0xc20b97d73dd4ebfc, 0x4d4a51a28e245930])
+ }
+
+ func test_mul_1_by_2() {
+ self.mul([0x37ff3b467e8b2a35], [0x9e3f1c936fe684d0, 0xf893b6051d816d7d], [0x229d54a542f7deae], [0x1e1624166019997a, 0xdbe0fe3e50a12ce1])
+ self.mul([0xe9bb0355efaa4934], [0xece59ac1f9f9220c, 0xec05a276bcb3566d], [0xd84a08a8cf09f101], [ 0x25453f3ab7ffea4, 0x61ab91e59f74a324])
+ self.mul([0xdb137c38b1e661f0], [0x493d7d116d872e5a, 0x7c7f98735532d247], [0x3ead2d1831eaff49], [0xa9aa165320ded433, 0x5f26b1fc241c0990])
+ self.mul([0x9763e0cba2782b07], [0x8cba79c776e5145d, 0x9a0c2a411d8e8e65], [0x5338e584db0142ee], [0x49d354560e472f7e, 0x155a72c46a28dbc3])
+ self.mul([0xab3027120bf71f35], [0x16db474d685b81f4, 0xeb52a0407ea83e9b], [ 0xf48c53b1791fbb9], [0xa68b8524dc056300, 0xec9c6f9ba8f6bb17])
+ self.mul([0xaf621ce9d9aed53e], [0xfcd340704466e7d6, 0x78b5b7dc97401e6f], [0xad354e79780a3157], [0xd5b3a2387b40e067, 0x964f0facc14bb9e2])
+ self.mul([0x814c1c6f14d727a0], [0xae1918c911a463f4, 0x2815a9060b461937], [0x57ee6846f759183e], [0x7e99a4141082a478, 0x88b9742f32d82360])
+ self.mul([0xf89705a45f2d8bdc], [0xc2819c711167b0d4, 0x851d6f6ac5cb9697], [0xbce04e4a3af4d957], [0x57d9d682368108aa, 0x6164768f074466c4])
+ self.mul([0x532e1931cb58b7c8], [0xe69865ff9b3fd3cc, 0x3a91654be6800fc2], [0x4aecef25ef8fd609], [0x10888856e3019fe2, 0xdc823b7dffffd90])
+ self.mul([0x1500e3821d30e3a9], [0x2b538b6028d650bb, 0x8709d4d7ed116ea], [ 0x38e00effd4d5ca5], [0xd3814a62d22a3a92, 0xb338273ced399e7a])
+ self.mul([0x79335c40e9a31a3f], [0xd38a2dd6f50933ee, 0x676aee98765ce526], [0x6426c06d07b86a91], [0x84e34fc12a4217e2, 0x947f0ec00d54405a])
+ self.mul([0xf5db43983be9f88a], [0x62bb7e5fac75dc20, 0x5e85fa364a4c9754], [0x5ed200687466da10], [0x761030ae259c8fa6, 0xff1795b45756f348])
+ self.mul([0xb83fe20957191355], [0x769377e476f3b4ec, 0x8a9e4edc11ed8700], [0x555795293a171328], [0x88bb484cd9c82722, 0xcf87bc79c3e2d300])
+ self.mul([0xe8cd783461c903ee], [0x53925af004ce3370, 0xddddda0b7cdb5dcc], [0x4bffb5da0ad5c665], [0xddd955c61d9cdddd, 0x9805ad5b973697a8])
+ self.mul([0xfd2b20824ccca0b8], [0xf7ff39957bff4652, 0x7c65236a4455dd53], [0xf541034588db09f5], [0x3c9447a9fa42dacd, 0x701955dca2ef3a8])
+ self.mul([0x257898f624ee9008], [0x198ece9578f09bf1, 0x7d416d3806ed7b9d], [ 0x3bdae11ce1ea0f6], [0x48bd363390582653, 0x6ebcc4aeccea2ce8])
+ self.mul([0x1183a4c2e3ba9a17], [0xc817b518f6160dfc, 0x8540b221e0e91e44], [ 0xdb077efd8177e06], [0x7e287e5e48709cdd, 0x23dd0115ba8ea01c])
+ self.mul([0x8dea3c036219f76d], [0xcdccc29c22b5411f, 0x3df816841b432f04], [0x7216149897b5b0e9], [0x958fa7a831bc0b2e, 0xc427eb288d5be0b4])
+ self.mul([0x9d59c9a86c243889], [0x95b101a42c903d77, 0x10ae232bc628e931], [0x5c020e75b716c936], [0x3483532a050e2e3d, 0xb79d070f75cb8339])
+ self.mul([0x718390016072177c], [ 0x75a4a505f1e2e19, 0xd998c5443ba90fe7], [ 0x342a2245509a15c], [0x413264f3daae256e, 0xfd4aa58fcb2f74e4])
+ self.mul([0xca7c8b61cef86192], [0x6c98673b364eb59c, 0xd494520c9bebc86c], [0x55e51666f720ad73], [0x5d3b3a2bb494cb7d, 0x77d5eee254093998])
+ self.mul([0x2444ccf3edcc05d7], [0x90dbcd7bbd9a781a, 0x3ab5eb08966129b2], [0x1485d7412a79ad28], [0xe94e2af693bb2163, 0x612bc42335427e7e])
+ self.mul([0x170db4e93f0bf201], [0x2827e7d489a8633d, 0x1ee126109705abaf], [ 0x39dbc3b8360416d], [0x5d3b44cfdbca6378, 0x8e81059964d619af])
+ self.mul([0x78151d7247ec6434], [ 0xa038f6e641b1c07, 0x8eb640ac8aaaf771], [ 0x4b27ead62a087d7], [0xc20b89173da49dca, 0xa3cc6c5668e66f4])
+ self.mul([0x87f12fbde04ff4d8], [0x83affd4194af6d29, 0x7ff41e64c8a7b9bf], [0x45eddfc9fbf59e49], [ 0x44ff9acb35409fe, 0xb85b95959c7fc528])
+ self.mul([0x4108b147b75b2a95], [ 0xd2880ee5158ef7, 0x6ad7f24b8a439b7b], [ 0x357bb1d3ae74ba], [0xc2995ce03f3610a2, 0xec390ef0c294ac97])
+ self.mul([0x938b2185b184afb4], [0x41cf2b0741c24154, 0x512ac81acd5f6345], [0x25edb9cf9a82e2f9], [0x3004e0c9bc57b460, 0x8a8155e78081f784])
+ self.mul([0x71adaa3522eb8715], [0xaac8a71e4b73c42d, 0x73003b4c70884d38], [0x4bd66cea009794b5], [0x6322efb522b2e835, 0xdabec0956e4edd98])
+ self.mul([0x4a10b400af4de9fb], [0xbba8d303a327236e, 0x231e18411ff06f94], [0x364b0b7f724396f3], [0x2d275da3091c6751, 0x72b51583e1cf1a1c])
+ self.mul([ 0x249bbb9af34c6dd], [0x2a9d4f355bb8d8ae, 0x54c457956cf00e4c], [ 0x6180b9d2a3232a], [0x7ad6463f27d8b5ef, 0xb8a741b591bb1f9c])
+ self.mul([0xac2c844dadab57ae], [0xc7cd71ba969decf8, 0x96c6b9f2b2984b0f], [0x8660c6fb783ef9a9], [0x2a6cee3e2a2ca54c, 0x7528639d6b0a1d32])
+ self.mul([0x94f6f81d9a7aac57], [0x7b968fdaaf0a8eca, 0x3f9713d3d0f0fd6b], [0x47ea45a0cf543f87], [0x75f823015cd224df, 0x7deaf5c80f28035d])
+ self.mul([0x7b0534299717c560], [0x9a14857f5db22cda, 0x80c7cd8fc33a4f71], [0x4a0afdf000d919d7], [0xbfecab267549573a, 0x44dd5356df26bf60])
+ self.mul([0x2ed8b49f168b1440], [0xa3d28bdaecfa4e9a, 0xe5fe3a0848296167], [0x1dfa825d2fd4d137], [0x7e8db8c2d83eab04, 0x2fe1cf8502e165c0])
+ self.mul([0xbcfb0e0dd50c518f], [0xaf0d71085baa609a, 0xf3f2f944531b69af], [0x81398acc280ecce0], [0xc5f1d687d0f79908, 0x88b27f90a7f467c1])
+ self.mul([0x94da56bba7ad5e54], [0x65f5676115cfb4e7, 0xfd0419be032744ac], [0x3b48d549570deb8d], [0xa3a4b712fbae3996, 0x497be87b1055b070])
+ self.mul([0x542ebee584f678f2], [0x4d1d54e269d669e3, 0xb480301588ca7857], [0x195bb4a073b3b6be], [0x8330d9bf0750647d, 0xd5019ce9b7688a3e])
+ self.mul([ 0x612d05c19970308], [0x58c04d69577ccc0f, 0xc3ee9849d15cdd36], [ 0x21b079216559e89], [0x87f1f50fcf4d08be, 0x77218e8b62588bb0])
+ self.mul([0xb5a0bc9d6756651c], [0x9685613bd4e36048, 0xb7a61da92cc4e861], [0x6acad00292e0d998], [0xf426ebea5d386124, 0x88c1004caccdaf9c])
+ self.mul([0x22c96de4e9f62607], [0xa3eb992b79f83551, 0x28794c7d5ad59348], [0x164644b0ed30b3c5], [0x29d3af3ead9cfaf9, 0xbe4233513ee3b6f8])
+ self.mul([0xa515c9d27c258b02], [0x922301bbf381c411, 0x62e24d6b2435fac7], [0x5e3d0032ec4ffea3], [0x5de192c6536f456a, 0xa7551f033a59028e])
+ self.mul([0xa4eeef998a66bf1a], [0x99ca6c73e9d83d53, 0xf06c4c6ccea46d97], [0x6315379b4df1ced5], [0xc54426ba5260bc45, 0xf3bb620fbaa0ca56])
+ self.mul([0x9765b9f4a345081c], [0xa766f282c9d82fe2, 0x545a87e180df4101], [0x63003e4230cb7f85], [0x2b508aea4a51b0cb, 0xaa2479353ab8241c])
+ self.mul([0x9c12600e553d9885], [0x6ce0a1075f835ebb, 0x361274703a334bf1], [0x4260b2c625a51f0a], [0xfc9ad910cf173045, 0xad048e7acf2a8c35])
+ self.mul([0x6b928deedd7e136f], [0x6642d867cef78a5b, 0x359ac22cb9e11b04], [0x2af87b450a85eefd], [0x3692386374cafef4, 0xc86ea6060d9402bc])
+ self.mul([ 0xda6c81c1ee7f50e], [0xba6f0a6c25f4f018, 0xd7617f73f927403], [ 0x9f119437ad99e61], [0xf5b9cd55c8a59422, 0x1a8b7e6fabbe372a])
+ self.mul([0x1733cb35182fcc4a], [ 0x5ed353f2813156d, 0x4e888f74612bfe8c], [ 0x8982be9c1325d9], [0xf41fe4b38df6d07b, 0x101ce30001432478])
+ self.mul([0x338a003c51894f97], [0xa236a7915e505425, 0xea7118dcee4b0ec0], [0x20a854fe82a06ad6], [0x3c8e3844cfe4d148, 0x721a92af5c92f340])
+ self.mul([0xff1ca2b135f34d18], [0xa6b71c446733c579, 0x95f69aba1a771ec3], [0xa6230b2281e80ad6], [0x86666c89e7d7c8b5, 0xe9f1eeabe1848948])
+ self.mul([ 0xf3aef1389773668], [0x21211942e0dc038d, 0xbf7176829b946bbd], [ 0x1f890eb122849e4], [0x2d2d41ace83dbb03, 0x497be38dbce0a2c8])
+ self.mul([0xf2502850c2db162d], [0xb2175f7ebc7a5aa4, 0x115e66fb14dcc769], [0xa891db9f7b8e54c3], [0x7ca743ab3a97115a, 0x20028eb9ccc51375])
+ self.mul([0xb737770bb3b62cd0], [0xa581d0e30ee0f0ca, 0x31ca9786000a8ee], [0x7673a82d19481072], [0x656d03c11a70f33d, 0xf6cefd1ea0c62960])
+ self.mul([0x8f9960a0dd2fb470], [0x39f62ec95c9a0930, 0x95167d28fefc70af], [0x20833e252e8f7736], [0x258ba80bc366f851, 0x8a1d6038d0cd5890])
+ self.mul([0x93a8e84a088df743], [0x51516fead9a8b5d1, 0xe1ca3b9fcc2db583], [0x2ee76a7e9ec98a27], [0x7c611a51dfd70f7b, 0xd586db899b3ee649])
+ self.mul([0xf721441d71cfecee], [0xb1c4043fa0cd4186, 0x750fc0f33f33bd94], [0xab9b39aa73b70e7f], [0x6783a8cf0fff04c0, 0xe1675bb1138aaf98])
+ self.mul([0xc499f65f66d2893a], [0xc41d1b379ff295ba, 0xe1b5e139897aba56], [0x969c3af8e86dc1ce], [0x87ec173c89e38d8a, 0x4fb64870f2123d7c])
+ self.mul([0xbf67b122f0beeb7e], [0x5af00ae5611e625b, 0x13b89110d0ba9e44], [0x43fdeda1e6aea53e], [0xabd62a0837a2caa0, 0xb9bdbdcb419a5178])
+ self.mul([0xcef7d1d5d976cb2b], [0x3361ff565ba82307, 0xb5843ef0ff3590f5], [0x298a9922c7b8987b], [0xc46e213b0dbe39bd, 0xbbd65843d5dfa027])
+ self.mul([0x49d74e0e2c43a234], [0x60779254b6d57359, 0x852bbc77526846b6], [0x1bd33a8fd3164510], [0x8e75c48ab4320eab, 0x1fa399c8838f88f8])
+ self.mul([0xd6d1575178dadee9], [0xd060bf428e537ea1, 0xc88f253eb19ed370], [0xaedb45f0fa4ba1ee], [0xa77e93ce89334f24, 0x32c6eee3f24990f0])
+ self.mul([0xe0e1e8061e19d17d], [0xc38445a40ac6bcbb, 0x8631837889f68453], [0xabc0456549cee17e], [0xcca7e7fbf5206faa, 0x7a18490445815f87])
+ self.mul([0x13742f313b50172b], [0x6db3ef5388194e5d, 0x425744261701c818], [ 0x8562484c6bf7b92], [0xc29bb9db8ae7fac6, 0x3cf02cbb15c6c408])
+ self.mul([0xb1cd0061e73bfee6], [0x29f5c2eeb22bda72, 0xcf36b9f585468df4], [0x1d2485a42e5a73e9], [0xabd1245ab61247d4, 0xbea4d79fa177a138])
+ self.mul([0x7b5d09bd1c9bad83], [0x47ddd5009f93eb4a, 0x966bf72557f46136], [0x22a1b3a99131492d], [ 0xc2311c6d088d65e, 0x71f35b02eb713ca2])
+ self.mul([0xd815f023c9e1b069], [0x2d83a0845e218428, 0xadf7411d11fae081], [0x266af5ed9da783af], [0xa030fc1b335a838f, 0x4f331ab0749fc4e9])
+ self.mul([0x284b040e095ae95d], [0xdbcca319bfc463d9, 0x95dc4ecad3b07498], [0x229861eb0e477095], [0x270b328a93c3cefa, 0x77f9accd6a8b338])
+ self.mul([0xc9b3741befa979d1], [0xa0ba4333383f4ea7, 0x5cc32a1ff443db2], [0x7ea2e9e6248aa117], [0x30ceaa666eb56f14, 0xa7834b5490618052])
+ self.mul([0xed73bd8bc8bbf61d], [0x8d233746193fb3af, 0xd87ff32986bf077f], [0x82e9697dca763843], [0x38b4ee0666de822d, 0xae11f38a869ce363])
+ self.mul([0xba152a38a44a7339], [0x6226046828c1ad51, 0xb8dd884f3a27aaf5], [0x4757bc81fe2f0346], [0x377c11ef0f9c10f0, 0x1889c15823731f8d])
+ self.mul([0x3b5b88abdec2b456], [ 0x69811212e1e667b, 0x46e330377c20bd17], [ 0x1876785f2d65ad3], [0xb02ce65b67dd3175, 0x8693110f561b1ba])
+ self.mul([0x1b9f788266114292], [0x2eeb86201ad08d8d, 0x2f7f2061f739dd0c], [ 0x5101183fdf2d09d], [0x5cac9dcdde63f3ff, 0x4550129e5fc928d8])
+ self.mul([0x65816fcd6ea59ced], [0xfd9088e9f8a658e6, 0xa2a5b3aa5e92fe21], [0x648a3a9672b3277d], [0xa2069822ce784566, 0x19dc13b81a36608d])
+ self.mul([0x77d3a29b6e5605a4], [0x5e16ff63ff1cc295, 0xac3a85f63ccfb16d], [0x2c0a796fa9190bad], [0x1ae74f6edcf02eb3, 0x70d3b3f07422cad4])
+ self.mul([0x6ecb86b63232eaf9], [0x7996a0914a989650, 0x26bbcb895c93b686], [0x349f636b223d864e], [0x3895944b4cc83178, 0x5c6d5cfde2af0456])
+ self.mul([0x972680a793df453f], [0xceaa35d5fa98be3d, 0x3218b9bff5d849b1], [0x7a057ae197e761da], [0xaf15a4b289725e7a, 0xe2bf5fb0a045d78f])
+ self.mul([0xbd6d064c30f315a7], [0x89213c27f6717392, 0x22d9ff55385ddfa9], [0x6577efefb574edb1], [0xb2193d2c435770b4, 0xe5af056e7600c43f])
+ self.mul([0x99bb34bda9858d28], [0x51d7c0dcb80577ae, 0x54931b2f7c33c9d4], [0x3125cbba40de0964], [0x1c536247963829ef, 0xeb62f7cbd654d20])
+ self.mul([0x73d185b7ee4c0c46], [0xaf45ba1f06d0d26d, 0x3c69544969fec96e], [0x4f4bc6160b156dde], [0x854151c16030e65f, 0xbbacf794fdc43c14])
+ self.mul([0xb45fbfd3da0207fc], [0xb45c5b6c32fa84c7, 0x5641ac23e8ff7c90], [0x7f1465b42aec38bd], [0x47d707fd09f58782, 0xc2feeb79f1068dc0])
+ self.mul([0x39233eee48ed2cc4], [0xb6c31aeec24d3bde, 0x820920982c5a9fa3], [0x28ca9a9935e0d213], [0x9e5e9e657c0c6e79, 0x67248c772ab93ccc])
+ self.mul([0xb875b101788e4f4a], [0x2f6456c6b5ca74d0, 0x76ad132d1a545f38], [0x2225e7ff212fb4f7], [0xda595e58d94dfd40, 0xb310b4d0b6d5ce30])
+ self.mul([0xb5297b35175c9393], [0x7e85e44a15ddc25a, 0xcfba2fdb540e5ef0], [0x59892abe8346ef56], [0xa4443084195609db, 0x4bcae397330453d0])
+ self.mul([0xa2c53b82fc40c36c], [0xf6d3c80221ba080e, 0x88585c8303743500], [0x9cf02eeb5cd6a65b], [0xf237d65ef3a9e76f, 0x3e1ffe2039655c00])
+ self.mul([0xee304bc45852120f], [0xcde26d3d1c90fbae, 0xba4f9bdc048fc6be], [0xbf8f58f28a6885ed], [0xf60d83bb494f62ed, 0x9698500d59420122])
+ self.mul([0x495532b45b6676c4], [0xe100d8043d03152d, 0x76f16571d29e46d4], [0x40741f719dec3577], [0xbae8d866a6e9fecb, 0x304f8587ca4bf250])
+ self.mul([0x1abdb73cbaf074d8], [0x365de70382f96180, 0x247f09cbc0033893], [ 0x5add3b3eebdf828], [0x82d1c9da4ff2e102, 0x94e0487f502a5808])
+ self.mul([0x93a95a21c852d948], [0xdf87be29e0c96473, 0xf9f7f17f3a5eef3c], [0x80eed181cdfda9d3], [0x3fc66f7d96993d8f, 0x82bf904e64b524e0])
+ self.mul([0x2d80d0ddc7ae9d61], [0xdb0640de26125853, 0xc30b3cef032defdd], [0x26ee4f3a4fb602bb], [0x4281c2c3cff19b68, 0xda992bfa33b86bbd])
+ self.mul([0x9868eeb45b46f214], [0xc79cf99781309649, 0x5f8375db1c9cd9ba], [0x76d70617ebd7cc01], [0xb6f50e708ce24685, 0xad07ed3b28eed688])
+ self.mul([0x96979ccb93e578cd], [0x564aa101d3dfec0f, 0x2b6578b6ca6621f1], [0x32c2d536235e2ae2], [0xbf5161b10de390fd, 0x3965d234b34725fd])
+ self.mul([0x5b3d79178af5ef38], [0x4a7b87ba54ad2973, 0x170379d47acec0f4], [0x1a8bcbe9d02e23bf], [0x3375df3b2a4e8ba6, 0xe1f7aaf014e20160])
+ self.mul([0x486318dc2b9ad02e], [0x4e32b52e92de387d, 0x310c8319b82bc1f5], [0x161c88292c332c25], [0x2b7bd7c3362a14bc, 0x73b53eb579d5ea06])
+ self.mul([0x869ab3d2fe75e870], [0xbfc68fa9251b8074, 0x160f90ba3e98b7fb], [0x64d5d35adb212be4], [ 0x8f1586b93277835, 0xe21ba972e942f5d0])
+ self.mul([0x7dd939c9ad332cbc], [0x5ad05fc0f216fcec, 0xa445f2778e2d7081], [0x2ca4cde251208b78], [0x1bafebdd802e1bc8, 0xdc03b299cf67cabc])
+ self.mul([0xf96673ad565af7da], [ 0xf77d8e40b654676, 0x720721cafea1fd9a], [ 0xf11c2b38995d116], [0x2484f27126b9cf84, 0xbc5621c205c58b24])
+ self.mul([0xdb41ef4f7bed8946], [0x8230e51f7f5b4e90, 0x6a6531555a455730], [0x6f815c2030f7da2d], [ 0xd8beed6a802089e, 0xb871c58b920e8720])
+ self.mul([0xc060b3843921a009], [0x888a5e8031dbef33, 0xf1ef385565d40f62], [0x669b5a82db5cc113], [0x2824a42fccee50b5, 0x582626efebb3ca72])
+ self.mul([0xf8c992320778e68f], [0x1eb472cc8a1836f2, 0xbad7604d03542e22], [0x1dd6fc6d31fc6453], [0xbf3dcb89d47622c4, 0xef773f5f0b6850fe])
+ self.mul([0x384bfb64d1856058], [0x97027c2e496cc51a, 0xce8c4d8f0ca7c040], [0x21355d2f69f0e68f], [0x153178ed93629d5e, 0x6fbcae0663021600])
+ self.mul([0x31adc9e948d2657b], [0xa2d7892b3444bab2, 0xb36a0e063645bd7f], [0x1f99cd589664b27a], [0xdb0fef22dedae040, 0xd0ee827dc1732705])
+ }
+
+ func test_mul_2_by_1() {
+ self.mul([0x17be6098e340917a, 0x2a2025b335c48e15], [0xb0e3d296d73429e6], [0x106803c0ec8da3f3], [0xf3e1919c5a23bac7, 0x53d20c2d489d03de])
+ self.mul([ 0x3fe61f2d0748e91, 0x4cf7fba6e936bde2], [0xbc19c249c0926e19], [ 0x2ef36cdce90f68c], [0x10bd9877bf38768c, 0x4606c49616d3a712])
+ self.mul([0xe0599ea5a5792a8a, 0x6cf789fb44f24c48], [0xec0a48273af4fe5a], [0xcedba0fc7cf4edfe], [0x17922a258d52fe6f, 0x5c384befa97e4150])
+ self.mul([0xefdbb438a1de953a, 0xce39e3f97918fd56], [0xf43ba8460c6740ec], [0xe4d54d12534cf0ea], [0xfbdff6455e2ebda6, 0xdf5122b3d7f90b48])
+ self.mul([0xf74f675c23be03c7, 0xc24896930223ff55], [0x50bd3e4208e5898d], [0x4dffa211204af504], [0x7eae9f2ac5d34c6b, 0x7b010f3580811ed1])
+ self.mul([0x786c711b1b1caec7, 0x190679f3e088b184], [0x75ba4e6c34cd98ef], [0x3761335f8222862b], [ 0xd0ec3ef56c51b70, 0x15045534bfb81a3c])
+ self.mul([0xeb69519b06b5909a, 0x2665599aa822667c], [0x5cfdad1981e676c2], [0x55831f96fd819d07], [ 0x9ae7aedbdcdfe46, 0xc2f1635bd4b6d1f8])
+ self.mul([0xc0151ab6f09bd811, 0x5c72189e0b45b881], [0xa77f8fa9b48c062d], [0x7dad7ab0b709c164], [0xe80dc5b563c8c680, 0x95131410382074ad])
+ self.mul([0x8aec39ae3b25e4b3, 0xfae7c63635fd70bf], [0x42db31200970466a], [0x2447d99cdcfd2911], [0x2c0e2ad580fe827c, 0xd77013edb254e916])
+ self.mul([0x7f39c1f640dce2f9, 0x16db6c62e135a8a3], [0xa0912caaf08f29a9], [0x4fcc3f23a6433773], [0xb99f6b7d95d74670, 0xa4857ea8477b6e9b])
+ self.mul([0x6a72f2ce039e0bd9, 0x7cafaa13274fc5d5], [0xf88cfef0d5ade742], [0x6759fc168db11280], [ 0x89cb2794224f309, 0xff6df9c080533ea])
+ self.mul([0xfc2779b41d2d0efe, 0x94c93f71fcc395f], [0x204e87d3da442b4e], [0x1fd24907153a9338], [0x4bc42ea0ca0f6927, 0xb36e550a21186ff2])
+ self.mul([0x25688b011308505d, 0x6e81a7c1fbec219b], [0xa91ed72bced57fd6], [0x18b6857533374ab5], [0xee59c45e41304ecf, 0x43c6e8ae6c06fc92])
+ self.mul([0x966c5520b2102956, 0xad5e601e8c095d0a], [0x91b3dafc59a178a0], [0x559d0aa39283d722], [0xbdfe50d388b128c6, 0x345fd1cfe6c0d640])
+ self.mul([0x46e5c85783625877, 0x1c7b8190a5fd1897], [0xc6a428a477ecb537], [0x37032f697b669e29], [0x65ecce911b229592, 0x8c5d1fec77f70b71])
+ self.mul([0x3ac09c1b080a5903, 0x63b783a9b8366ae8], [0x9f22f5ee920ccac6], [0x2485a6fa9b914714], [0x7631913bb8d6f3b4, 0x868ed7d4bd51bf70])
+ self.mul([ 0x2c38e58ca95317c, 0x3f2219b517f63e50], [0x5b5f2bc5ef0330e7], [ 0xfc8aa45ef04506], [0x34fd410f92942643, 0x17bab68635d13a30])
+ self.mul([0xc9df73cf35f7274a, 0xd1ba70227e7589fc], [0x2fcd06a8421b58ce], [0x25b1b372b3529ed4], [0x4ceb8b62f32ac3ee, 0x13fa3092af97a8c8])
+ self.mul([0xdb128c8b6931f83e, 0x503a97c84bbca203], [ 0xa05bc2fdbd363f4], [ 0x893a1e4c490f493], [0x5ec1838a0cb6c2f6, 0x4a16ddd13bea93dc])
+ self.mul([0x165422a010b17300, 0x6b172df93390ba80], [0x9780ff21c20319c7], [ 0xd36e0be7a22f24a], [0xef1cacb7d7208fc0, 0x74eee54767377980])
+ self.mul([0xfd359d8ecd22a15f, 0x14ed91a1d4afbc76], [0x22b1be9d291d4f64], [0x2250ed8824769f08], [0xe21ef44baa5e9c78, 0xbe5f394e8f2c0818])
+ self.mul([0x9ec3c4b0f035c1a1, 0xa008849944c2fbf7], [0xce893849e9027aa0], [0x8016a1f34d57512e], [ 0xa0f2012289515e1, 0x7932ccd8acdf3060])
+ self.mul([0x68320261b2de2454, 0x2a680d7ff53e3b4b], [0xda8ef19a523a0eea], [0x58f4c41a684d707a], [0x5be66ad0c0cf5b02, 0x5e401b95071e4c8e])
+ self.mul([0x8112d1f429d84bc1, 0x24f25a6d4524516a], [0x5b482beb13e01f37], [0x2e061411871bcbb6], [0x8bf2dd37b35bb2d0, 0xaa9664f95b6953c6])
+ self.mul([0xf68891e3dc45ea3b, 0x3e9293cfe523ed06], [0xe1d963344d9a0cec], [0xd97f61861da35914], [0x5f1011497971aacc, 0xa1151f844fd6c988])
+ self.mul([0xbad6f4a27c4af8c7, 0xc939b28e2d38d619], [0xb2d1e087b528ebdb], [0x8282a375d4b4a151], [0x6df64464822d75b3, 0x482c4a93fd101a63])
+ self.mul([0xb42c3bb1f3fc1402, 0xd24beaf4a589a63], [0xd06950c6b1954a06], [0x92ae0f7ebc1351a5], [0x254c7ef1ee48dcaa, 0xfca047ba9533c52])
+ self.mul([0x23dd70b419c3c69a, 0xe21265bd80db761c], [0x9a3b437645c3455a], [0x159b8348d758d61e], [0xbe44ceeb5190f085, 0xe87deb42f75111d8])
+ self.mul([0xbf9f7b8ff5fffb5d, 0xf875ba2ab49740f8], [0x60ab174b1f654b96], [0x485bdf4d14bc94fd], [0x65c0d3286c41d2f9, 0x960b7920ca80b950])
+ self.mul([0xfd626e89baa49cc0, 0x7327ef4ddd265ae4], [0x54c6024ca348fc35], [0x53e848ad4f782ccb], [0x377df9c97057fe22, 0x18fb932946894134])
+ self.mul([0x89871f48aa336c56, 0xd26f06ecd27c798], [0xae5f5f06de14569f], [0x5dad1374d4bae9cd], [ 0x7fc8d0a5d27e98f, 0x11ed297e30a20768])
+ self.mul([0x7e1ea476a9f55123, 0xf84e1ca1b3c916cf], [0x6b82d92c4fa2c4d4], [0x34f7454aeb34570f], [0xfdd37af7079e4dff, 0xe86db96d27fb5f6c])
+ self.mul([0x7b9b6bb9d1667af5, 0xf6ff191e9c05fb4f], [0xc436e82eac73fd2a], [0x5ebd815e6056d059], [0xdef6a5296d4a597e, 0x6ebe3af27ad54df6])
+ self.mul([0x8a7bdb95beb1bdf3, 0xcce77675469ab1a3], [0x49f72e08f7e39a3d], [0x28030805ac4811bb], [0x63b96fd1c14ef327, 0x218c7a12aa4161d7])
+ self.mul([0xc7c0e8ef7bd2d43f, 0xbb5c4a0b7a2a4ab7], [0x94d15b1d82ee7a2f], [0x741ee24138eb88f1], [0xdfa116bd03060bd6, 0xb6b0a150f980ed99])
+ self.mul([0x7deb50b7a6e6a535, 0xd9f6aa8d312caea1], [0xba0161b663076658], [0x5b7da6a09f91d7bb], [0x17c39b944924011f, 0x52fa957be572d58])
+ self.mul([ 0xfbf59b93c8362c0, 0xf7355a4c783983b], [0x70826846a8996b91], [ 0x6ebbcd6afaf0204], [0x2da2f65ee8e960e9, 0x69529367b56ce26b])
+ self.mul([0xf289632919b23328, 0x4785678419158421], [0xa1da484a7b04ba7e], [0x995734d87e4faa80], [0xeed59bb9b1cfa044, 0xc9782199e61b023e])
+ self.mul([0x914aa66692ffee01, 0x43feae96c3c9c00b], [0x6adb6bbf4b931314], [0x3ca570e997c116e7], [0x44cfba237a56a5f6, 0xe0fd3da0c454d1dc])
+ self.mul([ 0xf054a34b32fa5a5, 0xf4f29fbcb87021f2], [0xcbef708f1d1631a3], [ 0xbf73e62c76a7a71], [0x1ba857c1ffe8ac36, 0x2e9638203ab0ef16])
+ self.mul([0xc31d7c44606aae02, 0xb90182a25e97535a], [0x55b3b44f5bce8d19], [0x4151c14dcf452bb3], [0xef38c6d59278c3ea, 0x7d9d1920a61bb5ca])
+ self.mul([0x9854449467e44ab1, 0xf48b6b5d4afb71a], [0xb8019cbeded051e0], [0x6d7d86e3dc2adbb0], [0x24bc00516d636322, 0xd8b4543f03cf70c0])
+ self.mul([0xb9636d67d048c246, 0x8ff86c7c5b9b4947], [ 0x6fde62d44bce7d0], [ 0x5103283ab0742c9], [0xe6838122edaa34d7, 0x8ab18caf396e9ab0])
+ self.mul([0x20c693ae5937bfa2, 0x148136b1030267f], [0xc775016cd10d1f0d], [0x198957bcbb26e4f8], [0xebf6bf53324eb20e, 0x852bd1d94a8e5573])
+ self.mul([0x1bf52ae32f031e91, 0x550b76b12c1e5ca], [0xad6598cc7cbb8c64], [0x12efc66558daf507], [0xbe62f40d8696659b, 0x4dc7dffe0ff63ae8])
+ self.mul([0x3b90d2772c5a292d, 0x3b82789b14f9dfb1], [ 0x5cae4aafe1e2f43], [ 0x15909972aa55f60], [0x35e9c018c75625ea, 0xf8189a3432350a53])
+ self.mul([0xfa5568461ec1646d, 0x28e2c09c428913a4], [0x5dddc59be2ca5e5b], [0x5bc9e3d8a66e3045], [0x529749c0d86d530f, 0x70d73c64358334c])
+ self.mul([0x6fe75f7fe56f0abc, 0xae96accfbfb9b818], [0x5b7587bdc485f3f0], [0x27fa9f071317faee], [0xfd9aed41b7760300, 0xb12d93e80c535e80])
+ self.mul([0x42e2f1ebba5bdbe9, 0x4fcd6731e3aac3], [0x1ecbf81ccb55f734], [ 0x80be322d612c8b4], [0xdc71abb593d68a2a, 0x5c2bf86d1fbfd49c])
+ self.mul([0x6c718c9be1dd9ca8, 0x96a62d8c7950c29a], [0xb2767df6ba400c60], [0x4b99257728910ff2], [0x15275c1951147bad, 0x8552ddedd1e831c0])
+ self.mul([0x4a8e7a006a500929, 0x514484fb5f32dc61], [0xfae7630c14ef72fb], [0x4912868d1c26d655], [ 0x7a7f63e70e79ec3, 0xb2a7041a4f90451b])
+ self.mul([0x5dbbf0c8d58e6ad7, 0x22947bca0552cadf], [0x6a0e066c7cf873d4], [0x26d4f4547418f0dd], [0xf178f8ea05e41260, 0xbabc563d25ba2dac])
+ self.mul([0x39b79a64dbaae5b3, 0x4b6f50f0f63121b0], [0x8c000a396b9abd21], [0x1f906abd464d6746], [0xa96af61f8695304a, 0x4c3757a4d61447b0])
+ self.mul([0xf57115824ea81f71, 0xf8ae748663e137f0], [0x893cff613fbedb32], [0x8393ffdca8062b55], [0x57608365cda51849, 0x1962898cc0f73ce0])
+ self.mul([0x9fd3e05b53923eaf, 0x68f86ea0cd188975], [0xe7cd0cd4a6f50c22], [0x90b8341fc3c1570c], [0xa27b4099f30da12b, 0x5f84bd79ceacbd8a])
+ self.mul([0x2e08f7b64eb56410, 0xb5aeb849502385c0], [0x179ba0fcf5b5da86], [ 0x43ecaa27449052c], [0x4865cccf9d9b3723, 0xa9ba35bc833d8280])
+ self.mul([0x533575d65b11902e, 0x58b0f8ed0a1973d5], [0x3099a0fa4a8fd999], [ 0xfcbf55e6246fa6e], [0x9a7e07edb034346a, 0x85a6f0efe260c74d])
+ self.mul([0x3a4e202a3a1b011e, 0x1eff0b1adfb71a6], [0x743108ba38bce8cc], [0x1a769184251a2999], [0xfe67523ca5b0a9ae, 0xdae35b6249450048])
+ self.mul([0x23ba85f81a3352f4, 0x9dd2c308625e4d7a], [0xce2a871fa8927aa0], [0x1cc60743678c8171], [0x21341fa0ac97cdfe, 0x564c9884ab709040])
+ self.mul([0x707712300d4d5804, 0xa8b3064fbbda056a], [0xa0acff7c3d40dffe], [0x46966b9b704cd301], [0xd6df2b18ccc12d70, 0xf408d6e2e988b52c])
+ self.mul([0xfa3c787c69d00f6d, 0x77ad93a84253120b], [0x2df8077bd9a870c2], [0x2cef13134e3b46f9], [0x5559652afecca7b0, 0xb5d76b9ec5107c56])
+ self.mul([0x7b3cdb8a478eec51, 0x1b3554740d92922e], [0x29e17169af624139], [0x1429463ed74ac489], [0x96b844e3a4cc59f0, 0x5f17ec30a45c3a3e])
+ self.mul([0x53171db31197b39f, 0x23df163c1c63cd12], [0x375d4d0698adc893], [0x11f83fc75adcab8b], [0xa608f3136d2286a0, 0xa68264528aaed156])
+ self.mul([0x84d4cd74366579db, 0xec67e86a3dd2ea51], [0x603dab26691abd27], [0x31efcc8e9c734b7d], [0x3dbb879f80e4d91c, 0x2db0846127597f57])
+ self.mul([0x48b245bfdbdbdc1f, 0x5e0cbb4e4aeaf239], [0xd9d74282ca4566fc], [0x3ddc3dbb4f7245ad], [0x90ef7e0cd1cef34a, 0x4701da519f26261c])
+ self.mul([ 0x7331cd83df029b2, 0xb8ca2532870010ab], [0x26ab6a767df9e7e7], [ 0x116686adcaed740], [0xa27f5369a5c4967f, 0xc52ffc6e956c574d])
+ self.mul([0xc3f64eb1e47b0beb, 0xc5f1870427d3b729], [0x91031eea9558645c], [0x6f00e6201d2e2bde], [0x2d23936dac554959, 0xe59d48e8d6b9d6bc])
+ self.mul([0x5d1fda25099c7d93, 0x15ac00347072503c], [0xc7cdae71ea886da7], [0x48ae948990c68d04], [0x8e2daeb874f6ea39, 0xa2f8e2a37e9be324])
+ self.mul([0x6bf12c65c7aacf89, 0xf3565fb31d120322], [0x106867f3720e7d63], [ 0x6eb189514b56423], [0x71509b89345f3abb, 0x830abb1d595ad026])
+ self.mul([0x71695c7340fc6c02, 0x9c9e717c18bfdd7c], [0x15f897001cd8f0b1], [ 0x9bbc58c364b465d], [0x89f5ac96924e845f, 0xf1ed01d6cec62bc])
+ self.mul([0xbc46176a284b79f5, 0x49fccdde01f2dd26], [0xde4ba626147a6c60], [0xa37c6b085fb114b1], [0xfd35ba47fb2debe7, 0x5d303abb8c7af640])
+ self.mul([ 0x20d615a7a45ac3f, 0xef9d9b4ba0667168], [0x3f9dba6147152119], [ 0x828ea878f3a39a], [0x53eafb47f01ccd0f, 0xc818045304277b28])
+ self.mul([0xec039245246cad04, 0x23f9ba110559175b], [0x7ccdf9adb226f58e], [0x730f9fe53af04e99], [0xfe05fe893973a487, 0x74a18884f8470b7a])
+ self.mul([0xaf343dd9c749f7a8, 0x3f29a03ad6ba9d28], [0x85e55592b116e24e], [0x5ba3186e35e01056], [0x8dc19a485f6f25d1, 0x3b0c270055093230])
+ self.mul([0x839d75271f86260a, 0x618fb4f4f5063c22], [0xc1df5a131c23a0fc], [0x63ac89caba2f95a0], [0xbaf08e64474eadb8, 0xc711d339085e7178])
+ self.mul([0x9184aa7ceade9d46, 0x39a240fb5c4729f1], [0x8b6477bc0d4b168e], [0x4f3c2473fc8e4e9c], [0xf0142bb4aa26a5cc, 0xcccf1f51d3aef9ae])
+ self.mul([0xea912ab8d5d67749, 0xb57f30ada3613137], [0x25499b6fc47fef78], [0x222a6cfe3378c728], [0x6dd05c28c12c0666, 0x94eb07aad8ca6ac8])
+ self.mul([0x5de9c8e44b7a6460, 0x1bbfa3857ef1233e], [0x4b12ba39a389f42f], [0x1b8a5c9c032c3a48], [0xe1b21234724be000, 0x5df69fca7a0a9062])
+ self.mul([0xb237598c8525f57a, 0xb851896d870c79f8], [0xf2b2804ce569c66f], [0xa8f496744e7c74af], [0xb6938d4422462628, 0xe6800fca1376b288])
+ self.mul([ 0xba966c3e0bb6758, 0x19cd19a67f746077], [0xed027903642e8324], [ 0xacbf0f95db45435], [0xe302342a11f819df, 0xa68f8b9f4b1c75bc])
+ self.mul([0x6ae6c2d5cbaa6c07, 0x9a98fe554879619e], [0x82815dbc86e5f7f8], [0x367f345d4dbbbdaf], [0x2e201b9bed944835, 0x460c1f40591c0310])
+ self.mul([0xa08a1af4b57acfd2, 0x55414b78e72269e0], [0x4e87cade5f6bf3f7], [0x313f3c4333368936], [ 0x6d7c1ebaeab40cb, 0x527485f90d53c720])
+ self.mul([0xae0d70031c672db7, 0xba5eb0efd7fd78dc], [0x87983cdbe3bb4a83], [0x5c30976ccc68147d], [ 0xb103817d54317fc, 0x9e1c5bb128587094])
+ self.mul([0x48c95a72183851f4, 0x8aece86eb7f99371], [0x6104d023bd34738a], [0x1b95a99867c55abc], [0x4dfa57699c185556, 0x521ea153a9b93dea])
+ self.mul([ 0x51057a5b947d16b, 0x897ec6b9ee63634e], [0xf9eeea6113965dd6], [ 0x4f19f1488fafc8c], [0xf7b4260c3dbda637, 0x98c0a6305bdc5934])
+ self.mul([0xb510498a2e893a07, 0x3f5ebbb95346677], [0x73405ad393db0482], [0x5183d558d44dbaf9], [0xb763de295d5b428e, 0xb3aca8559302e46e])
+ self.mul([ 0xd2649936106a735, 0xd34593e0d187464f], [0xead3a435eab6bf59], [ 0xc0fde3ea747154b], [0x86a56e3477691383, 0x3108ec47f7a66277])
+ self.mul([0xadc2c8ffc7578d12, 0x55bec130739f209c], [ 0xea3ea83f78a4df3], [ 0x9efe931962e2d66], [0x85ada1d62f862900, 0x916a17d6b4f2e014])
+ self.mul([0x71c9c85681224e80, 0xa9dac6f6089f8492], [0x45d908b921ec1095], [0x1f0bdaeaba4a2000], [0x4a722c86ce934ad9, 0x9bdf0e6405b948fa])
+ self.mul([ 0x87aaa0b90c5cdd, 0xc9ffe7916f16e6d7], [0xa737c3bd5323e58b], [ 0x589ddc3c8c4731], [0xc08d903fd2a1f4ae, 0xb6eda30b1252a9bd])
+ self.mul([0xa9a8b0567ee10df1, 0x402d04fbb1159185], [0xfcec6907e920803d], [0xa79ebab32312e02b], [0xa61ac532a6c8cb61, 0x43bd544b38862cb1])
+ self.mul([0x7e723321f39bcc80, 0x624ba0ad81d39bd5], [0xd200d2c7cdf3f0ba], [0x67ba160e3847573b], [0x24b64cefc296a017, 0x290f4003205e8c2])
+ self.mul([0x3738227295b1ea75, 0xbd09e9a2280afdb], [0xc865389fa6485744], [0x2b39b045d36c8539], [0x921c6de0078d070f, 0xa4d5c9e95d8a232c])
+ self.mul([0x11a4b9e1ad3b15be, 0xfa6a49f84410cd98], [0xad0aae9eda03cc94], [ 0xbed0e15adea5859], [0xce737aef938a9d46, 0xee4fe8da9653fbe0])
+ self.mul([0x758e1eb807789f9a, 0xbda960b64dc6deed], [0xee92f5d33685ed75], [0x6d8d9c7e9c79525c], [0x8f5202ebb5b9e411, 0x177ce30177664b51])
+ self.mul([0xf67282a5ef5b5952, 0x9053d0ab46c2e169], [0x796d4d6c8dfb1e35], [0x74e5590b0112ef6c], [0x715212b93651a12c, 0xb46eaa4653b5f8bd])
+ self.mul([0x60e3a45bbe988d33, 0xbda89ea96c1cd97a], [0x3154a47b4b0164b3], [0x12ab9b67fca3b36a], [0xba9ab19f3488d928, 0xdf6da4237499b84e])
+ self.mul([0x1b66f282dba19a89, 0xf3609a4d22d4a88c], [0x4046f7f649e42ffe], [ 0x6e15551b7828875], [0x1bcda2871c7b599b, 0x5f0ff5eba2a0eee8])
+ self.mul([0x1da15d05399d8872, 0xa77053be215184c1], [ 0x88086232ce14c6e], [ 0xfbeb1d355bfe8f], [0x6ef7225ba80b506f, 0x3517e5705e1156ee])
+ self.mul([0x6364a2216780f82f, 0xa85a4f0cc685f9ee], [0xf5338e84dba68879], [0x5f33538babcfebca], [0x1bae325203aea9bb, 0xfaec60e7ac6d917e])
+ }
+
+ func test_mul_2_by_2() {
+ self.mul([0xbcb59cadefcbe391, 0x6f2f3b204663f754], [0x46b31972dbfb6948, 0xa5813de5d58e6e8f], [0x341dae968485de5f, 0xa2176cca76e0de9], [0xd020581541be1375, 0x9bf15fa65ab53fec])
+ self.mul([0x2c4ba09fe895878d, 0xb0e4108faa8641e9], [0xf4d1c90e9b60e4ef, 0x407d4649d7262c28], [0x2a5c61a0745e4bdc, 0xa57e2a70fdcca669], [0xf7b6ab4488043675, 0xb918da7b2fe45868])
+ self.mul([0x600b028a8d9bf54d, 0xfea6b9ade8808ddc], [0x71da9f0eb979f02f, 0x66f9245b53c68ec0], [0x2ab6e12baf4253c4, 0x5c9127e85d8c3b89], [0xef627482d4ab5f5d, 0xd38e9805bb426d00])
+ self.mul([0xbd2d683db44f304a, 0x160434e78f6c2a39], [0x87757a51fc28c533, 0xd56e8744358fd072], [0x6419c21d67ab618b, 0x33a7b2e91357296a], [0x4cacaa52ed3bee49, 0x6b637bf323501d62])
+ self.mul([0x52da164f481cd3c0, 0x9c77cd83f1e2d73e], [0x55eb78aea25dcede, 0xe290f767cfce049e], [0x1bce9ea98cf576c1, 0xc373a72a135cacee], [0xbcb25594734d56c1, 0x80bb63bd2b41d044])
+ self.mul([0xb771fc8ad4c99139, 0xef97787842153e11], [0x863c84a017b47e8a, 0xdaa43035e50aeae2], [0x603107f15a5d6242, 0xef00fe47432dd94b], [0x540aeee06d7dc1be, 0x2692e57063265502])
+ self.mul([0x4eb79ef376606835, 0x302a501c8980f408], [0x67a90fa70ad51b40, 0xb8cde53f8615171f], [0x1fdfdcfc02c797b2, 0x182ce118df5590fa], [0x6672a4e4150062db, 0x80124117713244f8])
+ self.mul([0xba005b75e17c3b14, 0xfc9b4e51563be2f8], [0x9ffc2ca8b2551fae, 0xde7f2d8da8d385a1], [0x743d719ae09c7fd4, 0xf321e60e2d299fd3], [0xd7994a8c4cdda0e4, 0x29e77ddb2afc95f8])
+ self.mul([0x8c6df9f5792cdac5, 0xdc97ff37f65513f4], [0x2a876154f76d9794, 0x66080b2bdb9fcba1], [0x17544e655dda8427, 0x21906c42b6338027], [0x2f91b7d24987d9c0, 0x863b7f6c82e00874])
+ self.mul([0x9726be1dd9524234, 0x2198ac9a5988f658], [0xc062f41c7e8015a6, 0x7ca8ce503fe16bca], [0x71977b8cea8cd344, 0xd7759ad83c7ba8fd], [0xec13f4e20af25363, 0x7d15e6b710612970])
+ self.mul([0xba975fc59d39d077, 0x5088e8c0c5071434], [0xffdaefa1e0f2efa6, 0xda298820ec9424d8], [0xba7c5bf6b576b885, 0x9bc46fa91cf491a1], [0xe256504b80582d8a, 0x61461392dae05be0])
+ self.mul([0x57534393fb2e6b0d, 0xdaddbf270025f985], [0xe771286ef28125c1, 0x742b4465c480fcdd], [0x4ef2bb863707aea3, 0xe77623e99d591f3f], [0x84900339c28a9bc4, 0xfbcf545018e753d1])
+ self.mul([0x4e18693f78a6c606, 0xaee3b056b731241], [0x69cb2968f85a91e2, 0x723ebc8cbca7a4de], [0x2045fd286c5a469e, 0x9ff3a575adffd6ff], [0x8983d40d2404213f, 0x35ebf88d89e2785e])
+ self.mul([0x94208f825fdc3da1, 0xd483c1f27a352244], [ 0x9126f671c95a4db, 0xf14ba16283f34689], [ 0x53fcfcb7466e6b5, 0xfef6203ab948e7de], [0x577e461e1b8ed1b4, 0x300e2b2e4059ee64])
+ self.mul([0xfea4194a24a6317b, 0x7f6eb79b857fb57f], [0xa18d9c6970c0ad62, 0xaac643c6ca128ae1], [0xa0b20fde6fc1b500, 0xabe68955a191f05a], [0x6f0fcd1ba464760a, 0xb30ffb122602fa9f])
+ self.mul([0x6ba39dd6ce35a759, 0x8b293d4819b5933d], [0x29be34032716716b, 0x8f181a55c74409c1], [0x118d2d951bdd7bd2, 0x9877403a67378f2d], [0x47e732baa9754f4e, 0x8b57cb334b4525fd])
+ self.mul([0x9b0cc3675c39aa82, 0x7a1af70067426a51], [0xf61f8cff1aeaaff0, 0xf6e3cf354dc24ca7], [0x95115fb679042f4c, 0x34be23ebdb83b86e], [ 0x2568bf4d8b67faa, 0x26d2fbff024566d7])
+ self.mul([0xa438dc93ec534fc0, 0xd91a4c6208e3b8cd], [0x3cc405e30e53ed8d, 0xf74153f26e83133d], [0x26fb1302508fe425, 0xc1fc4005dbce7d73], [0x6e2ab7b1c0cf3eee, 0xd82808beabe13fd9])
+ self.mul([0x3c8b42958175a156, 0xa0bec55aaaef5e00], [0x2420a80ea04322ac, 0xbbbe71b6b7c89a5], [ 0x88b4e84321b64c9, 0xacf8025594e0bc61], [0x7fd1b8162363e071, 0xdf007b25cd959600])
+ self.mul([0x54d8e944d134620d, 0x85ffc054086c85e5], [0xf73babd8e1646ff2, 0xa5fd4fb1932fc459], [0x51f11003ee3f7a57, 0x3b0f47f6a56f2882], [0x4c255dd10076f26a, 0x32194ece1848e09d])
+ self.mul([0xf6c8d24b3f5e4907, 0xf18161571b3c0d71], [0x7490179cc7fb7fdd, 0x7e4911d1fc3850a6], [0x705de7039117d44e, 0x976243fb09c626bd], [0x29a738550f1143f4, 0xbe51e39d99dc0746])
+ self.mul([0x7211513de988b2ae, 0x624fd87dcaa7a590], [0x6cd74cc5e5ac5ffd, 0xbc30a68692bc83c8], [0x307f3d06ab4cff3d, 0x60c95e68b49a5d31], [0xae363438d1d1a03b, 0xf839f9e3d2720880])
+ self.mul([0x499685fbabcd4eab, 0x813742804b348bff], [0xc75b8059174aac97, 0xeff0912ac04513df], [0x394e4f8d220711b0, 0xd014e5ca75dacfec], [0xfb70822862cd92c6, 0x3808885564e4e021])
+ self.mul([0x803e5900bc61316b, 0x9a9e7543636f724], [0x999b42f3f8be6184, 0x66d2b703483eb194], [0x4cf30a7b9ec496fe, 0x7c00704637278a21], [0x4bd42f2a24bd0ea2, 0xc5a72e69535ec4d0])
+ self.mul([0x13d30fc0d1dbdefa, 0x4168376ec2cafeeb], [ 0x99cbe74e0375ae1, 0x698e0c592034fa5a], [ 0xbe8eeb1391d31d, 0xb62ff87ae6faf2c7], [0x753947dad5be8849, 0xe57e3bf6e00b1c9e])
+ self.mul([0x4aea51e875167c0c, 0x2dcd590b4deed36e], [0x3fcdceee230588c9, 0x7a177d01306666c1], [0x12abe45a09f727ab, 0x1a840b50c69adb95], [0xcc1bd188023d40a0, 0x487600cdc71f39ee])
+ self.mul([0xa59cb2400d5ab656, 0xb166b858c0992670], [0x4981adc06cfebd7a, 0x5570ad8dc071e66e], [0x2f8d933176937904, 0xa042b38f56aed748], [0xdb6b65c13a89366a, 0x7b6af4a51c72420])
+ self.mul([0xe8259d09511e362c, 0xe82a9923a25476d8], [0x6f4ada6aa63c52e2, 0x41e6a9f1e6664e33], [0x64ec30072ce998f6, 0x84573234dfcda66f], [0xc95134bae4b155b3, 0x753867547d197d08])
+ self.mul([0xb301039198d25bf9, 0x5f51ce1205ca3c26], [0x1aea4446c20195a1, 0x6989892f588e23a3], [0x12d1e907cb7c945c, 0xdd76682d24d1b0be], [0x70ac117522441e3a, 0x70e6c818c3117e32])
+ self.mul([0x5952ecb88b329569, 0xa03050c3c4479bb0], [0x479a6b5e23348cd6, 0xf4a4e7e4ba599143], [0x18fbe100174b7e29, 0x18a558f4e26d7637], [0xb4b1a4474a20b1b5, 0x8511c22bee1c6f10])
+ self.mul([0x16a56460cf19fcc0, 0x4908dcf6d1b245e8], [0x77b87bc7025b31e0, 0xb7848532bfcd3d56], [ 0xa97337c37dad5ea, 0x7efd9c067e5ac0b1], [0x2e9a9ba522f55900, 0x347e281bff53c3f0])
+ self.mul([0x9215b8986a7bf10f, 0x41f1301696a71e7a], [0x2329c18eaf9a1499, 0xe73f1b4ea9788d5e], [0x1410cc2b336412a3, 0xf4c960a21acdfaad], [0x1986a38201acb409, 0x9f3f31e6305662cc])
+ self.mul([0xd7c9d5a01ddbebc6, 0x47a959e3d234ce43], [0xb5aff71090e1d09d, 0xfad5f96eebe4316c], [0x99260744f16b9e42, 0x65c04b08136c2bcf], [0x9c50a449452d5183, 0x91930381fe6dd744])
+ self.mul([ 0x72aba6b22cfc56, 0xb127f7cf464f07a1], [0x1d4aba98b383dce5, 0xab80747fea5bf37b], [ 0xd1eeb157c0b1b, 0x9473cdb47b6da3f2], [0x786f71dce43e05d9, 0xa789c843ac717d5b])
+ self.mul([0x58ae6dac251e0163, 0xc2f44625fd0050cd], [0xcb6e5868a1c21903, 0x6052fdd49dcd3691], [0x46788a8ad5ff6882, 0xad0b9550508ccb43], [ 0x66f19895fa4838f, 0x1840c74cb62021d])
+ self.mul([0x4fe33ae416eee362, 0x21fa568eb630c387], [0x6c09b8c072a852f7, 0xd7bdbe93d661802a], [0x21b6e57cac39691c, 0xa3b53c790c711b3b], [0x4e2500f04d1b7def, 0x6182d2f435ea9426])
+ self.mul([0x3b20eea3d66fef70, 0x16d0f3826cbeb768], [0x67295ecd08ff1c86, 0x238f02e44a902a97], [0x17d3ce2f9697970c, 0xad231575a6c69bd1], [0x900f1e297627f1d6, 0x6c617cb0a9153e58])
+ self.mul([0x6ef5c0698bc16f61, 0x7ebcca8dbf6a1920], [0xc09d4f54aa501b44, 0x3c4bf78f4e8fdc0], [0x537c7f68b2616850, 0x98ae7a62c90e7080], [0x4656fb17fd863bce, 0xcba73f94af677800])
+ self.mul([0x87802d341874b3ef, 0xd7123596886e4ade], [0x5e0e27a405e52733, 0x9afd5044c55c8df2], [0x31c88e96f1f2e0d7, 0xa5cc8a738565a2a9], [0x678edb633f82b0d8, 0xade7bba975470bdc])
+ self.mul([0x6e7f3c29434e679b, 0x8386ea5d7d49d646], [0xfe1b95d12165acbb, 0x7bcae0d83517c26e], [0x6dae25c69b704f70, 0x45f6dd4818b9eb34], [0x440c21f667cb8dfe, 0x31f0232c88651e14])
+ self.mul([0xd36dc824ba873bae, 0xc3ac31cfe07f38a8], [0x5225cc9eb2d47812, 0xf869dbffdad4d61a], [0x43d861f83dfee136, 0xe6c51ac01c410a95], [0xbc5cd71c6a7c5654, 0x878c3bb921683110])
+ self.mul([0x56def68835f13abe, 0x3f9f04abda89ccf9], [0x9a415abe4858e784, 0x38c4a8032189c318], [0x34584db57dbc8c30, 0x50f237c0ce4fa7fd], [0xb5cbe3e88e49a329, 0x235fdda93e4de258])
+ self.mul([ 0x5e6962af6a3158b, 0x1ade20053080180b], [0x5e1b52e11401559f, 0xcca81bcf6f8d26e4], [ 0x22b4c5ea951af7a, 0x8c00bf933784fc13], [0xa3f1de02f555df78, 0xecd24b138b60bcc])
+ self.mul([0x51f9c0c7e66809d1, 0x8a16c10065ac46fb], [0xd7b9d7a047350ac1, 0xffcd6578ce84592c], [0x4514437046c4817d, 0xafb044f4da545483], [0x330f2eacca7b033f, 0xf7c8aa04f1b57624])
+ self.mul([0x8f9e0ec6a1b4f14f, 0xe6b4550d3583fb02], [0x6b0de5c26e2fb990, 0xf5347aa824cd6e14], [0x3c0edc193c7c68b2, 0xa8906e2f17435154], [0x503c40f189063711, 0x646069532cc47828])
+ self.mul([0xb0f12a01727a6c70, 0xa60ddf523a8d2a2b], [0x46251c07cefa3dd4, 0x2d31560b871b23e5], [0x307b97b73dc259f4, 0x4c63029e9dceca1a], [ 0x43d4a96e260a3f1, 0xebf3e288cc939977])
+ self.mul([0xbf6cf8e2b161436d, 0x6c4541c738e42e4f], [0x517ea495ba057b9a, 0x1566a2f9c9081117], [0x3cf02d73feaa702a, 0x805d01228ce675f9], [0xa446b95343bc55d8, 0x77351c01bd0b6819])
+ self.mul([0x5f422356154c0e9c, 0xfadf01d7f3737c46], [0xf88d44aafd3ef7d6, 0x3192fc0bea0faa3f], [0x5c7ca3360c958907, 0x9d9ae32314e29f89], [0xa1cda80efe7b6911, 0xbe80ee2dde0c113a])
+ self.mul([0x1ac345caf4b75553, 0x3673e0d2d28d7282], [0x6388dd1ed8d55d82, 0x5e0ee9ef067d6352], [ 0xa67d2d85d425b92, 0x561a4e8583d3cdfa], [ 0xccf7c632cde6ad1, 0x4751e4121a10f3a4])
+ self.mul([0xf6e65505e9e65940, 0x527211493f9803d3], [0x8311bb908b220dd7, 0xda214ddcb3216a5f], [0x7e68f7b353f07542, 0xd2623e95fb6c84f], [0xcd898757a01599ee, 0xd161fc1c9231c94d])
+ self.mul([0xd2b778cb2b97c2bf, 0xaf5532d4266aada9], [0xa6e0d01b72e603b3, 0x480bd8613e24f42f], [0x895c04291a1c6598, 0x529be2c9861901e8], [0x986b67ac067410fd, 0x7b6f2ba914def607])
+ self.mul([0x37f1c0caa0ffb6ff, 0xb14332707921b7b2], [0xf9c6471288810619, 0x73c9519bd2251d9f], [0x369579084c9da03f, 0x80fa64103784a835], [0x483998669f94dbc7, 0x765dc6e99e7a418e])
+ self.mul([0xc0f46eadb4802d4d, 0xfef95663da256b8c], [0x65a77f276b063749, 0xa6c3b0fd8d51b802], [0x4c9eaef5b4573428, 0xa32afab90f434403], [0xb3f7656b120e9f2a, 0x8d589d01bce37718])
+ self.mul([0x4251b3dba295e0ac, 0x7f626d8fbb24fdf0], [0xaa65bada7c55826c, 0x3dc6311886acd104], [0x2c249c13c6152386, 0x2c00139cf34a6127], [0xdfd4c096378bcad6, 0x6935e64e5d24e7c0])
+ self.mul([ 0x460436f857cdbd4, 0x7f8f6e18b34d9067], [0xf3c26ed7ce8a0a23, 0xc3afc44100b2cf86], [ 0x42ab2db03930da2, 0x851c14aa1f890962], [ 0x6a5df8d3acddec0, 0x60efcbfef9fadeea])
+ self.mul([0xd192947701427fa7, 0x77cb4400e5623e72], [0x3a7049ae250294da, 0x27131dd88d59c496], [0x2fd72215469cc2b8, 0x4cc2cf4a17321f08], [ 0x5e51317a6c62b96, 0xa03efde21f01decc])
+ self.mul([0xd1ebed1ddaabb090, 0x5807200481a93b7c], [ 0xdff88350d03befa, 0xccade8d57775b85b], [ 0xb7a84bc8b5389be, 0xbd44e41c61ffda5d], [0x78a64ad6120160d5, 0x666369f68d954514])
+ self.mul([ 0x90426fe7177ead, 0x4fc5a538c9c7ccfb], [0x31ccaf6ade299012, 0x8a787b4f8d8d4969], [ 0x1c100f360ad84f, 0xbbd75b98ab46dbf7], [ 0x32a47356b7855f8, 0x364ff3be1a5a5f3])
+ self.mul([0xf3fd794e0cb21e37, 0xdda9bd0210e70561], [ 0x3aca675ae90d8c9, 0xa1ffcd30ab80df9c], [ 0x380855ff0780093, 0x956e7895e401c121], [0xc5ec369b863793d6, 0x58a56d4605f6c61c])
+ self.mul([0x4c69c6513c705509, 0x91cf6bd6978ccb97], [0xdc08cd7c303132b1, 0xe3bfed2c2a81c951], [0x41ad8711c7e80de6, 0xed75b8869e25bbc], [0x496803f5220a4be2, 0xb9a2dc30dc7cf9c7])
+ self.mul([0xbbd7cef3d6d7a80f, 0x5c04b1f6e41ea5fb], [0x7798ef998c0a5ec6, 0xbf1d81ceb0ad2de6], [0x57c189255e97c5a0, 0x2bd63183e8826b25], [0x490da6da4703f78f, 0x94e98fb711553e82])
+ self.mul([0x1eb9b11b2bda885b, 0x7786fe537f5ed640], [0xfe88e4b271df21f9, 0xd5da8e60c15e09ae], [0x1e8cabd1d8763658, 0x81b6df504f62069c], [0x37341488426941e9, 0x6348e893d37ddf80])
+ self.mul([0x30251ab7e68e78f2, 0x2d4a832148e3dfbf], [0xf23990933e1f0f9e, 0xe6ccd16924b9075c], [0x2d8de6b55ae9a13e, 0x398ebd991accde11], [0xfdd37320b5655a35, 0x9700756efa09a1a4])
+ self.mul([ 0xbb3aadcc485bee6, 0xe4d2a12c145725c6], [0xb7fa248531d52873, 0x839e4cfd267dfc12], [ 0x868de4406b97873, 0x291c3694f35d30d0], [0x458fb9cbbe7220ea, 0x468cb3f60cfd8fec])
+ self.mul([0xb0900ecdc0dc1e50, 0x61969da3bdf2cdff], [0xa24c094edbfac15d, 0x125f8af49d41e065], [0x6fef9a8e0d4279b5, 0xa2d582c426b47107], [0xfd06845345cf99b5, 0xa8567d615c9659b])
+ self.mul([0x1a6a77204a4b5136, 0x11e386a6a19cd620], [0x9bd3ba483ba4deda, 0x9f97e85767f855b0], [0x10144f198b3f59f6, 0xeed3d3ea1b65daa0], [0x5db1adcbe214418b, 0x8fce552e7debd600])
+ self.mul([0xefc8ea5b9ed1d54a, 0xa7322b975ab6985a], [0x657f3829e2bbca26, 0xdc34233e9ade9f8a], [0x5f116dbd97ed6aaa, 0x9c66105564e26062], [0x7363943b5fc6bd40, 0x5d4636b8911a0684])
+ self.mul([0xa5f491c7af3ebdd3, 0xb459a4f728122a5a], [0x8a07bb2d9026866f, 0x4d20b57ed0aeddec], [0x597ad99cd0daa59c, 0x144411cf6d748701], [0x1742bc43a7400fd5, 0x84bbea7e887abcf8])
+ self.mul([ 0x537a2fead6f5acc, 0x7f253a82ec1a936a], [0x782d3d7765b89165, 0xaf8c5b24d20af2a7], [ 0x273006fb8d6d91b, 0x3044c69ad4525caf], [0x5778d92649f64d82, 0x8b7f5d77dad45e26])
+ self.mul([0x95356214145e21de, 0xc4447134699523bd], [0x38bcf6337aebaa69, 0xa6bab0da803b8fcc], [0x2111d027b8ba2e2d, 0xbf2b76c7eb8e4155], [0x443b13f9a575e6cc, 0xe489c2ee2e5e0d9c])
+ self.mul([0x9aa98571aa0fce51, 0x340d45481e243bc6], [0x5886bb695e98a800, 0x3e08300b4c49e0f3], [0x357babd4691caf30, 0x91921e7a19048bad], [0xd399eb59860ad456, 0x18aee96a2427fcf2])
+ self.mul([0xfb50bdce7a0ec093, 0xf5d85e0fae489758], [0xf44d5be83c5f9fa0, 0x8c12d1873662ee54], [0xefd4e66b9359faa6, 0x64bd8ad974e7178d], [0x5ef6b116f9b51a34, 0x133c204b2c3578e0])
+ self.mul([0xf57e8b210cb3f568, 0xc7f14c685a5ed26f], [0x1ab155f7c7efe2f1, 0x4cecf6c36eeb8849], [0x1998e9102e29ae60, 0x55207c7ef845d38], [0x3e09d21da5b5e725, 0x15cae1c802b9f9a7])
+ self.mul([0x398e06f882a4f1b8, 0x1b77f8ed1267bf23], [0xd475018f60f2f666, 0xf4a3b7c4fe67bfd1], [0x2fc3ec08c5ed0d27, 0xf72bc2701d961af6], [0x1df4093cbab73be5, 0x9fa9cd760f632893])
+ self.mul([0xd93de31ee3c89e5f, 0x19fd6b071139255a], [0x725f4252e952dbd9, 0x9a92518632319d6d], [0x610e65635a4638b2, 0x4517a36b1634f5b2], [0xebad26f259f35656, 0xe35063ea1b771952])
+ self.mul([0xefe623798c0786ff, 0xfec98fc97e2c392a], [0x3557a8d0ef543755, 0xa9948d0a017f76ed], [0x31fccac10ad782a5, 0x6d05010d27bd4b97], [0xc28bb9208dc8e69a, 0xf6d31f7fb72047e2])
+ self.mul([0x866b5ad342ea69fd, 0x4c5ed26bdcf4df19], [0x454fe6a93a5b9cd1, 0x19d03d306ae076c5], [0x2464e3b947580592, 0x1f87469f95de7667], [0xf25bb47f28635f3f, 0xbe37292d7725343d])
+ self.mul([0x69d1a8be31f1a4d1, 0x423e7cc32c54ad73], [0x2ed028d8eb3f5c74, 0xc4c051c148e19c76], [0x1359b78db403bef2, 0x2530c13aa142a21e], [0xd78729687847196a, 0x81ce5ee1d2cd0702])
+ self.mul([0x1af3a4ebec9bbc5f, 0xe89bd3f33157f930], [0x154b53e1b697379b, 0xfe45c2f5aff27372], [ 0x23deabd6d5cabf6, 0x47397f0a0eb471c8], [0x155f9ec6f7044a8b, 0xde3244e7dd7d8760])
+ self.mul([ 0x1811e7a516e178f, 0x6a6856eddc7250f9], [0xda11204f617b69ef, 0x885453734e0eab47], [ 0x1480db7cab18081, 0xf086aafa90fe0173], [0x8f29a4c99252e65c, 0x607cfbffcb68c80f])
+ self.mul([0x3a74c3a2553454d3, 0xd562bfca3c4df958], [0x613a8fb490599d59, 0xe259287aa84cecfa], [0x16339d654967824d, 0x15a5cd54376cc5aa], [0x97ee3abff46bbb63, 0x5e9161ce8c229ff0])
+ self.mul([0x892f419ea0cd8aff, 0x37f0414948d171ff], [0x16ca21a3a77210ac, 0x20eccc02701e4ff6], [ 0xc3660f43343baa5, 0x6303aed2f57b38fe], [0x4b24cbf442c0bd7d, 0xb049c4d87533c0a])
+ self.mul([0x31366107c3f5457a, 0x639ea6b0653bb831], [0x140364ce33418239, 0x4d8fd084611ba4d0], [ 0x3d8e6989fe9ff44, 0xaf0672483e63e736], [0xee2ab1d0e0f12707, 0x5778878780b00bd0])
+ self.mul([0x9479eabe5f14f652, 0xfdf74a35b4af2133], [0xfaedc9aabdefcfe6, 0xd34418fdc79f55bd], [0x9188f912fb86f2bc, 0xd8f968a073d9633a], [0xbc92888666912897, 0x48c1919fcefe71a7])
+ self.mul([0xbdc21c7f1c4778e7, 0xb1b077adc85d147a], [0xc78e5b85128e9ae3, 0xb350cf331fbb24bf], [0x93eb69a941389634, 0x906dfb7d94377f3c], [0xfe0526681ef28f77, 0xbcec169c4f716f06])
+ self.mul([0xc4370aa9d58827c9, 0xc3bc41123fad7e60], [0xc43bd6eca0332e94, 0xf0036e3b2b0b77fd], [0x96680194dd11e33d, 0xa121228211bb46b2], [0x8986f27df4feaffb, 0x84300b71225484e0])
+ self.mul([0x36fb54a6a41f3d38, 0xafa67e31b16c20f4], [0x7a04c3fe04c8a45a, 0xd5606dae79c298e9], [0x1a34cc5cbcb164fd, 0xdc640f1b0ef1a474], [0x21bd53b142a982c4, 0xd90135eefbe2de14])
+ self.mul([0xae539f935297051b, 0xc50c446ee2b97d15], [0xfc99fc0689ed9135, 0xac94f4553a888d06], [0xac032cae29504ebc, 0x78f0ad14f3ce2c17], [ 0xa9a09f5572cc6bd, 0x5933b253af657f7e])
+ self.mul([0x7bdb0d091450546a, 0x9592c7328ac51150], [0x92ded9caed34ff47, 0xdc4fc7b7455595b9], [0x470ebec3571dd842, 0x20a65f6c3fa6b95a], [0x8243492d7aa89d62, 0xc3361f944b0d12d0])
+ self.mul([0x163a2c4c7fa674ee, 0x814ca9238a54be48], [0x5bc89672dd7a8a5b, 0x99f54c1daf47cebe], [ 0x7f81841dc3b4e72, 0xf983ab04f621a6df], [0x4baa865e5dc42b74, 0xd26a5b6cd9fb2970])
+ self.mul([ 0xfbca2ea01e895aa, 0x33478b37e1fb2d0], [0xc7b85e89020715cf, 0xf04ca77d3abc7298], [ 0xc46f808af923036, 0xb130f7a1ceb9649c], [0x6bda3f672232a667, 0xec2b66177132cb80])
+ self.mul([0x38ede0f9b8ba8b3a, 0x8df79ef29ecf7d2a], [0xc2b2e03a80d7d71d, 0xf62fe879febdcc08], [0x2b4c0bc0d3063989, 0x821e0262fdc7000a], [0xa352609f82ff8134, 0x454da45b623b6150])
+ self.mul([0xdf14a9807c985aa7, 0xb2629c7d6c9ff9f0], [0x90e421906ac9e28b, 0xa1fcb3a0574fffd9], [0x7e426afebf0c0dd6, 0xff91878f93170fb7], [0xcb532bf7879912c5, 0x12157ed31ea0ec70])
+ self.mul([0x63de1e92fa760828, 0x1cf9f9050aa335a0], [0x9c59ce1b2bea4df2, 0x92a79cb3081e4158], [0x3cfe634187e2359f, 0xbf697a3246601cfb], [0xcbf2f10738cd3987, 0xe540391c61780f00])
+ self.mul([0xba4593df7bfeb8d7, 0x99d1ce77c6b6d0e], [0x1a1845c8d3eefccf, 0x253ae5baba83965], [0x12fcba5170f77f2f, 0x7c7170c2d833a7b5], [ 0x5b840e53cf0d03f, 0x144aa259ecda2486])
+ self.mul([0x3945dbbab3155797, 0x44f22f53584e17e0], [0xc3fe6638c39f9ba3, 0x8341e70ac15b7030], [0x2bd9208dc23f50ab, 0x5f6d3d0c5d2fe254], [0x38e66207f2e3f5e7, 0x24c8a8c515b67a00])
+ self.mul([0xde37cac25f17ae56, 0x43d1558696bc8821], [0xd0e62e4709b7d44f, 0xbfb5213be6270fb8], [0xb5552309c83c5e39, 0x8d531008cab34f03], [ 0xce13b0669b36633, 0xdebb5532c682c6b8])
+ self.mul([0xacc1694c624a4da5, 0xb02a2e0dbc74e54a], [0xc2e4c2f8ba31023c, 0x619bd6a82f9b5b22], [0x8384f1a015535689, 0x26f22aa4c91b475e], [0xbcdb80a89763092c, 0xe13e53ffed5c1d4])
+ self.mul([0x67bc784fa7f04818, 0x74885ad3243e9c9d], [0xe28707184ed8b4da, 0x5dd66ab94471b078], [0x5bcb1979c52c6161, 0xb5c2faafcf66de5b], [0xd836b97666aa2069, 0x9d858c95de525998])
+ self.mul([0x3f3b357ac51adafd, 0xdd0dd7f2ef97a0d2], [0x46ee57cfbe880fc5, 0x172943d70e0246e2], [0x11850f5bb9251b25, 0x3186262edaee504d], [0xbbb36fd82ee83a8b, 0x6f564253b7796564])
+ }
+
+ private func mul(
+ _ lhsWords: [Word],
+ _ rhsWords: [Word],
+ _ expectedHighWords: [Word],
+ _ expectedLowWords: [Word],
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let lhs = self.create(lhsWords)
+ let rhs = self.create(rhsWords)
+ let expectedHigh = self.create(expectedHighWords)
+ let expectedLow = self.create(expectedLowWords)
+
+ let (high, low) = lhs.multipliedFullWidth(by: rhs)
+ XCTAssertEqual(high, expectedHigh, "fullWidth.high", file: file, line: line)
+ XCTAssertEqual(low, expectedLow, "fullWidth.low", file: file, line: line)
+
+ let expectedOverflow = expectedHigh != 0
+ let (low1, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ XCTAssertEqual(low1, expectedLow, "reportingOverflow.low", file: file, line: line)
+ XCTAssertEqual(overflow, expectedOverflow, "reportingOverflow.overflow", file: file, line: line)
+
+ if !expectedOverflow {
+ let low2 = lhs * rhs
+ XCTAssertEqual(low2, expectedLow, "*", file: file, line: line)
+ }
+
+ if rhsWords.count == 1 {
+ let rhsSmall = rhs.low
+
+ let (highSmall, lowSmall) = lhs.multipliedFullWidth(by: rhsSmall)
+ XCTAssertEqual(highSmall, expectedHigh.low, "fullWidth(UInt64).high", file: file, line: line)
+ XCTAssertEqual(lowSmall, expectedLow, "fullWidth(UInt64).low", file: file, line: line)
+
+ let (lowOvSmall, overflowSmall) = lhs.multipliedReportingOverflow(by: rhsSmall)
+ XCTAssertEqual(lowOvSmall, expectedLow, "reportingOverflow(UInt64).low", file: file, line: line)
+ XCTAssertEqual(overflowSmall, expectedOverflow, "reportingOverflow(UInt64).overflow", file: file, line: line)
+
+ if !expectedOverflow {
+ let lowStarSmall = lhs * rhsSmall
+ XCTAssertEqual(lowStarSmall, expectedLow, "UInt64.*", file: file, line: line)
+ }
+ }
+ }
+
+ // MARK: - Div
+
+ func test_div_1_by_1() {
+ self.div([0xec7644e3a376f59a], [0x99179d172c9b832e], [ 0x1], [0x535ea7cc76db726c])
+ self.div([0xf8f5c9f93ef4eee9], [0x9d28440c8a3d9786], [ 0x1], [0x5bcd85ecb4b75763])
+ self.div([0x8bca6849ca325cfc], [0xd4243221a51778ba], [ 0x0], [0x8bca6849ca325cfc])
+ self.div([0x95964960c58edd8c], [0x396b8b585c4e0438], [ 0x2], [0x22bf32b00cf2d51c])
+ self.div([0xce96da31e415fbb0], [0xdce0abcabc215fdd], [ 0x0], [0xce96da31e415fbb0])
+ self.div([0xbf86c188ba0ed15e], [0x2f9d23131a3b80eb], [ 0x4], [ 0x112353c5120cdb2])
+ self.div([0xb867b5f26d56605f], [0x258e3014fd77ef9d], [ 0x4], [0x222ef59e7776a1eb])
+ self.div([0xf3fc5432c2699161], [0xfd57f39f677878ab], [ 0x0], [0xf3fc5432c2699161])
+ self.div([0x2a624f42a69862a1], [0xb417ec0e3371cfcf], [ 0x0], [0x2a624f42a69862a1])
+ self.div([0xf34ecc592a4946b0], [0x609047ce5c51953c], [ 0x2], [0x322e3cbc71a61c38])
+ self.div([0xc892a829101b565a], [0xa0ced51004b12b48], [ 0x1], [0x27c3d3190b6a2b12])
+ self.div([0x603cc4770e9437f2], [0xe67934e08a25b8e6], [ 0x0], [0x603cc4770e9437f2])
+ self.div([0x5cdf82822f8235bf], [0x38509032f841c0e2], [ 0x1], [0x248ef24f374074dd])
+ self.div([0x883c4d0eab774e9b], [0x6131cd1a27c2c11f], [ 0x1], [0x270a7ff483b48d7c])
+ self.div([0x4acf4f6414de91a7], [0x23a21cf179eee833], [ 0x2], [ 0x38b15812100c141])
+ self.div([0x81713296539c04f7], [0x1ebea4535807d9ba], [ 0x4], [ 0x676a148f37c9e0f])
+ self.div([0xdb2d71e13fd42e3c], [0x18f6dea6cb574dac], [ 0x8], [0x13767caae519c0dc])
+ self.div([0x171c1e8f7269cb8b], [0x6589440d8f9bcd7b], [ 0x0], [0x171c1e8f7269cb8b])
+ self.div([0xc6a95aaa5aaaa94d], [0xb05b7a840a4d60a3], [ 0x1], [0x164de026505d48aa])
+ self.div([0xb6fdc9f467411ae4], [0x273bc9ea470aec1b], [ 0x4], [0x1a0ea24b4b156a78])
+ self.div([0xd19a472e02a36d66], [0x50ead1d59f7d6f30], [ 0x2], [0x2fc4a382c3a88f06])
+ self.div([0x28ab636a52bac7fe], [ 0xdd90eccd3e236b0], [ 0x2], [ 0xcf945d0aaf65a9e])
+ self.div([0x87413f35743aa3e4], [0xb3c7a163c9e52e1c], [ 0x0], [0x87413f35743aa3e4])
+ self.div([0xf75e8e92198c0281], [0x33e3f6f91eb9962e], [ 0x4], [0x27ceb2ad9ea5a9c9])
+ self.div([ 0xc03a27503b5b775], [0x9861754c68fa83db], [ 0x0], [ 0xc03a27503b5b775])
+ self.div([0x233f2453babe809c], [0x2f5ecb38e3f7e13a], [ 0x0], [0x233f2453babe809c])
+ self.div([0x97b840cd143d6a12], [0x4a3a5bf947d38b75], [ 0x2], [ 0x34388da84965328])
+ self.div([0xbd3e494755119495], [0x895c14a182e2788a], [ 0x1], [0x33e234a5d22f1c0b])
+ self.div([0x81208f5f67e21798], [0xd7544e2e5eca5ed9], [ 0x0], [0x81208f5f67e21798])
+ self.div([0xd78e3f2d512d3f94], [0xd0bcec46db85729d], [ 0x1], [ 0x6d152e675a7ccf7])
+ self.div([ 0x7570655a0a72cff], [0x27d4df4ab6527052], [ 0x0], [ 0x7570655a0a72cff])
+ self.div([0x9ccbabe6dd023176], [0xc8cdc260b60b3808], [ 0x0], [0x9ccbabe6dd023176])
+ self.div([0x92d31ae7da5ee556], [0x610987c98c829d33], [ 0x1], [0x31c9931e4ddc4823])
+ self.div([0x44c445b034c16485], [0xc15e3fcd7759b3b2], [ 0x0], [0x44c445b034c16485])
+ self.div([0x9a2f12303bf5708c], [0xb34084b4f33b029e], [ 0x0], [0x9a2f12303bf5708c])
+ self.div([0x2cad420f250743af], [0xabab4f8797615b0b], [ 0x0], [0x2cad420f250743af])
+ self.div([0xd88809fe6655822b], [0xf6ac45f8a69fbcff], [ 0x0], [0xd88809fe6655822b])
+ self.div([0x611be7c387430e8c], [0x6a4261569465bf5a], [ 0x0], [0x611be7c387430e8c])
+ self.div([ 0xb8b165bcc28686d], [0xa57d28bbf123281b], [ 0x0], [ 0xb8b165bcc28686d])
+ self.div([0xc5c2646348df2a52], [0xfaff00ea4fbf13e2], [ 0x0], [0xc5c2646348df2a52])
+ self.div([ 0x671a83a469eeaec], [0xf480f60b04327c5f], [ 0x0], [ 0x671a83a469eeaec])
+ self.div([0xce083860130b9860], [0x9e114eee022f0c3b], [ 0x1], [0x2ff6e97210dc8c25])
+ self.div([0x6b142aeeab61c9de], [0xc1ea6f234812588c], [ 0x0], [0x6b142aeeab61c9de])
+ self.div([0x820293023a6d139e], [0x76f2857c9625c16c], [ 0x1], [ 0xb100d85a4475232])
+ self.div([0xe8986d80bd49bafa], [0x8ea9ddeb4e5a7ed7], [ 0x1], [0x59ee8f956eef3c23])
+ self.div([0x746e94c64f00899f], [0xe8ae64c301265e55], [ 0x0], [0x746e94c64f00899f])
+ self.div([0xd244f646c0abce49], [0x1abb97feaf223213], [ 0x7], [0x1723ce4ff6bc6fc4])
+ self.div([0x411f4f8566679c2a], [0x1ad2b46cdb470b24], [ 0x2], [ 0xb79e6abafd985e2])
+ self.div([0xe7fd1d47a93d9120], [0xb63fd2760324048a], [ 0x1], [0x31bd4ad1a6198c96])
+ self.div([0x29462b01c0da6024], [0x99bb92daeab7015d], [ 0x0], [0x29462b01c0da6024])
+ self.div([0x66d720005ae12a36], [0x653594c01dcd247b], [ 0x1], [ 0x1a18b403d1405bb])
+ self.div([0x7396cb1557849f18], [0xa643e3ab8bcc7f52], [ 0x0], [0x7396cb1557849f18])
+ self.div([0x1e7411827ab23b23], [0x6292ef1be45bb8ef], [ 0x0], [0x1e7411827ab23b23])
+ self.div([0x87a0415031fb3e44], [0x11528e9629d48446], [ 0x7], [ 0xe5e5b350d2ba05a])
+ self.div([0x4b42fd4ce4b73b9d], [0x7d9879344946d59b], [ 0x0], [0x4b42fd4ce4b73b9d])
+ self.div([0x9187ef01f0535c32], [0xb08975f1899839f0], [ 0x0], [0x9187ef01f0535c32])
+ self.div([0x7f2bc288b09d98b9], [0x925c10be3f3c8980], [ 0x0], [0x7f2bc288b09d98b9])
+ self.div([0x6fd53d87f5d195b9], [0xbb63effbe9b668b7], [ 0x0], [0x6fd53d87f5d195b9])
+ self.div([0x53af1d06ffc24c75], [ 0x53d4e55ee9c3324], [ 0xf], [ 0x51785fe049b4d59])
+ self.div([0x185d91ef68168a35], [0xba02de9a76b72cc0], [ 0x0], [0x185d91ef68168a35])
+ self.div([0x1760c133bce42d93], [0xcba2ac62b6e1a756], [ 0x0], [0x1760c133bce42d93])
+ self.div([0xbcda72d0f4be93be], [0x1ea7a2b68ec0b2c8], [ 0x6], [ 0x4eca2899c3a630e])
+ self.div([ 0xeaae3d3c50dad99], [0xf2bd665e990319c8], [ 0x0], [ 0xeaae3d3c50dad99])
+ self.div([0xd2fa0bb78d5f1392], [0xd26171c9c9991422], [ 0x1], [ 0x9899edc3c5ff70])
+ self.div([0x345564a31de17400], [0x3c731d8a75a4e865], [ 0x0], [0x345564a31de17400])
+ self.div([0x9ac9adc7c704e4e1], [0xe1b9c41dcd6a8e35], [ 0x0], [0x9ac9adc7c704e4e1])
+ self.div([0x780f83f873b22b0f], [0x2b2145a0befc6813], [ 0x2], [0x21ccf8b6f5b95ae9])
+ self.div([0xca8656a426448fd4], [0x67e2a610a1e3cb96], [ 0x1], [0x62a3b0938460c43e])
+ self.div([0x31f8ed2f96b99a25], [0x26e4b74961f0653c], [ 0x1], [ 0xb1435e634c934e9])
+ self.div([0x6994a6f367e1be5e], [0x566cb39f58a341fc], [ 0x1], [0x1327f3540f3e7c62])
+ self.div([0x5f6b46ae3dcb2d0d], [0xa2f13fff06ee652b], [ 0x0], [0x5f6b46ae3dcb2d0d])
+ self.div([0x1ef2cc97c9ae786b], [0x2a56697b993d3baf], [ 0x0], [0x1ef2cc97c9ae786b])
+ self.div([0xb4d8e6a832b50a8f], [0x944365135afd1fa3], [ 0x1], [0x20958194d7b7eaec])
+ self.div([0x9d79df0e209de297], [ 0x7e72608a55e9917], [ 0x13], [ 0x7520c69da9885e2])
+ self.div([0x8959bc0e3a87a6e0], [0x6a3b4bf0343ff8c9], [ 0x1], [0x1f1e701e0647ae17])
+ self.div([0xc270c18430a7f441], [0x85ca7ce75ea178dd], [ 0x1], [0x3ca6449cd2067b64])
+ self.div([0xd28a41dd005024aa], [0x83c1141322928db4], [ 0x1], [0x4ec92dc9ddbd96f6])
+ self.div([0x2be446f48ed1f62a], [0x6f6032ab6723bc93], [ 0x0], [0x2be446f48ed1f62a])
+ self.div([0x89fadcf3859b51c3], [0x1930f658fe067048], [ 0x5], [ 0xc060d368f7b205b])
+ self.div([0xa8df4cf280df9396], [0x6381d8c84d02983b], [ 0x1], [0x455d742a33dcfb5b])
+ self.div([0xffe8f8b11d284457], [0x79e60752802350c6], [ 0x2], [ 0xc1cea0c1ce1a2cb])
+ self.div([0x98b718f8bdcf2407], [0xdd4b388bf08a117e], [ 0x0], [0x98b718f8bdcf2407])
+ self.div([0xeea6d1159fd8b6f9], [0x67a09a6d70fba60b], [ 0x2], [0x1f659c3abde16ae3])
+ self.div([0xdd044b56d6e13011], [0x8497a6a46a330721], [ 0x1], [0x586ca4b26cae28f0])
+ self.div([0x9f6dae6f07968ccb], [0xa0901fe85f5b4077], [ 0x0], [0x9f6dae6f07968ccb])
+ self.div([0x6c4860c246f452e9], [0x9952e3ef8eeb384d], [ 0x0], [0x6c4860c246f452e9])
+ self.div([0xb31953940cffccdc], [0x8ab5fef42da34191], [ 0x1], [0x2863549fdf5c8b4b])
+ self.div([0xdb6c576250456eab], [0x18c82bec6036c48e], [ 0x8], [0x152af7ff4e8f4a3b])
+ self.div([0x68d68821a86593e9], [0xc2df7e3136f974cb], [ 0x0], [0x68d68821a86593e9])
+ self.div([0x5417d385d8e0df80], [ 0x8bdd737056dd460], [ 0x9], [ 0x56b4296a8046820])
+ self.div([0x5eccea4aabd39089], [0x6705ccdcc60d119b], [ 0x0], [0x5eccea4aabd39089])
+ self.div([0x167d22b2bf7d85f9], [0x528c66a87826cc6e], [ 0x0], [0x167d22b2bf7d85f9])
+ self.div([0xd103468e5e664f4e], [0xc8b795a3b8a225dc], [ 0x1], [ 0x84bb0eaa5c42972])
+ self.div([0x7ee84b4aeae80577], [0x3e8fb367cdf2435b], [ 0x2], [ 0x1c8e47b4f037ec1])
+ self.div([0xc92424cf6e1832dd], [0x964e4d5f61a4b2f9], [ 0x1], [0x32d5d7700c737fe4])
+ self.div([0x2b8eb972c681f7c4], [ 0xcf9ae6fd40e0b7b], [ 0x3], [ 0x4a1ae234a57d553])
+ self.div([0x9c51006c627def07], [0x31c1bcd58532459d], [ 0x3], [ 0x70bc9ebd2e71e30])
+ self.div([0x772bad6f96f3057a], [0xfa7dda83270dffd1], [ 0x0], [0x772bad6f96f3057a])
+ self.div([0xe7c8fd8305b8104e], [0x59f83eaf51cd890b], [ 0x2], [0x33d88024621cfe38])
+ self.div([0x8492c525bbf69f43], [0x9742d72e8f4dd07d], [ 0x0], [0x8492c525bbf69f43])
+ }
+
+ func test_div_1_by_2() {
+ self.div([0xc8700d7c519750bb], [0xeadd79d9515338ef, 0xa192579d383cf5b8], [ 0x0], [0xc8700d7c519750bb])
+ self.div([0x955b4cefd5959eae], [0x480b3c72bd935e7e, 0x3ad590fa74f74c9e], [ 0x0], [0x955b4cefd5959eae])
+ self.div([0xe460bd568c47a927], [0x98a603943d28fa43, 0x8e21524fc8fdedc5], [ 0x0], [0xe460bd568c47a927])
+ self.div([0x6b63d1156b0c011d], [0x134992ffe422892d, 0x18aaf56ff25036e3], [ 0x0], [0x6b63d1156b0c011d])
+ self.div([0x138ca6aa6e3c9aca], [ 0xb3c3d70a4e413f1, 0xde0d184f6d2cb437], [ 0x0], [0x138ca6aa6e3c9aca])
+ self.div([0x94798a5dd0bb7d17], [0xf2274f580c5a4fde, 0x287eeca24c3e02fc], [ 0x0], [0x94798a5dd0bb7d17])
+ self.div([0xe0beb35e9c2c222a], [0x1209f7bc7a362fd2, 0x718b9fb8b1671011], [ 0x0], [0xe0beb35e9c2c222a])
+ self.div([0x60ec772a5069b745], [0x96e2b4815127b0dc, 0x6e8aceb32b524269], [ 0x0], [0x60ec772a5069b745])
+ self.div([0xdd2593ea66f9054d], [0xf7e56ab98dd653d9, 0x3f70d0625413682d], [ 0x0], [0xdd2593ea66f9054d])
+ self.div([0x40c4e2c1c8b85cd2], [0x6a1f0e7e98b50b97, 0x5eff3a9669d3f1a0], [ 0x0], [0x40c4e2c1c8b85cd2])
+ self.div([0xe3899f1caa0dd32c], [0x5641ca250389c661, 0x7c39883bb0eddece], [ 0x0], [0xe3899f1caa0dd32c])
+ self.div([0x1694248a2727afc0], [0x3f2335c1f52e359d, 0x4de4c48974874825], [ 0x0], [0x1694248a2727afc0])
+ self.div([0xd07be9bbb2c268b4], [0x30e9048fd0642f8d, 0xe45f2ecc7dfea708], [ 0x0], [0xd07be9bbb2c268b4])
+ self.div([0xaf6a81d2dfe66444], [0x3b1a756a110f2c9f, 0x33722d675640f043], [ 0x0], [0xaf6a81d2dfe66444])
+ self.div([0x2a0de65a31b402ee], [0x8fd296ab336c5089, 0xa8a4c25cc3b50974], [ 0x0], [0x2a0de65a31b402ee])
+ self.div([0xfc8843ca16deab6b], [ 0x9702a0f8ad16661, 0x1420118c630941bf], [ 0x0], [0xfc8843ca16deab6b])
+ self.div([0xcbac680373f3d6e0], [0x91369683388b03dc, 0xc42096a8a90e1997], [ 0x0], [0xcbac680373f3d6e0])
+ self.div([0x616883d73d53bb14], [ 0x239a6ddcd554403, 0x3bfd657e6123dc81], [ 0x0], [0x616883d73d53bb14])
+ self.div([0x9f697d2bd361859d], [0xc6614351ced06aca, 0xe9a241f23df78eae], [ 0x0], [0x9f697d2bd361859d])
+ self.div([0x799791bef501379f], [0x658c6f24c214b780, 0xc4b06f0cc276b2c1], [ 0x0], [0x799791bef501379f])
+ self.div([0x407c9fca4714ad88], [0x9c3d1d0250969f5d, 0x396a95e176b0029e], [ 0x0], [0x407c9fca4714ad88])
+ self.div([0xf57207fa174c0811], [0xb2db25237201f5bb, 0xb95c7c008dc172ca], [ 0x0], [0xf57207fa174c0811])
+ self.div([0x690ce6f9fa63fdab], [0xf663f0e63faa67af, 0xad59d05fafd4736b], [ 0x0], [0x690ce6f9fa63fdab])
+ self.div([0x28b34f28401bca0c], [0x3bef221fef10e768, 0xbc4e83de112215e], [ 0x0], [0x28b34f28401bca0c])
+ self.div([0x8f28a31be9d19e62], [0xac8388aa8c0724c8, 0xd061e3266c703f18], [ 0x0], [0x8f28a31be9d19e62])
+ self.div([0x29ec3e508c2b0857], [0xec947b1d6d4c5f02, 0x95282fe7c978e77e], [ 0x0], [0x29ec3e508c2b0857])
+ self.div([0xf2f2018e9655bf30], [0x8d2ce760a574d9c5, 0xd2a7ed9343d33334], [ 0x0], [0xf2f2018e9655bf30])
+ self.div([0x517ac65427a57e14], [0x186909a12d88fc65, 0xb6ec7f5cde3d6cf9], [ 0x0], [0x517ac65427a57e14])
+ self.div([0xae8517b99dc55d9c], [ 0x9f167971e3b3969, 0x7032894022a3c9f8], [ 0x0], [0xae8517b99dc55d9c])
+ self.div([0xd20a0b486a14340b], [ 0xf8679b5de7f37f8, 0x16c3f1d227acb49f], [ 0x0], [0xd20a0b486a14340b])
+ self.div([0x11dba6414becc309], [0xce5edae83a467fe5, 0x2c109494115c8ac6], [ 0x0], [0x11dba6414becc309])
+ self.div([0xae47fb0b272e83f2], [0x57866bc2a2367150, 0x5e802436482f569f], [ 0x0], [0xae47fb0b272e83f2])
+ self.div([0x2763e0938b9b9afb], [0xf0e0dc7ded63a732, 0x54012a417a3c74b3], [ 0x0], [0x2763e0938b9b9afb])
+ self.div([0x6f2d363c20c6d118], [0xbff1fe185b16a9e7, 0x742d4833d14efc36], [ 0x0], [0x6f2d363c20c6d118])
+ self.div([0x74038d91417afa0a], [ 0xff671911a5280cf, 0xc9e0f94ad7e67a4a], [ 0x0], [0x74038d91417afa0a])
+ self.div([0xf4b1ebce52570113], [0x4790b545fa990f80, 0xa167f8d00270357e], [ 0x0], [0xf4b1ebce52570113])
+ self.div([0x68807ef31a990403], [0x1c012929b76dd19f, 0xf495990085b98208], [ 0x0], [0x68807ef31a990403])
+ self.div([0xc6ccdad54afc27d7], [0x33e2cbf9ff0ce912, 0x9247c212188d8625], [ 0x0], [0xc6ccdad54afc27d7])
+ self.div([0x430f79295b26047b], [0xb4187b807e5719eb, 0xfeb629863af3f03e], [ 0x0], [0x430f79295b26047b])
+ self.div([0x11eb47ab16128fcb], [0x587c607947891858, 0x7857dac9426f7c58], [ 0x0], [0x11eb47ab16128fcb])
+ self.div([0xf658d225654f600e], [0x3a5f0d9ad6b4c442, 0x5a3761452020efde], [ 0x0], [0xf658d225654f600e])
+ self.div([0x2b492a4131335758], [0x91f2569c76410ad6, 0xbf87d31953dfea83], [ 0x0], [0x2b492a4131335758])
+ self.div([ 0xb6f5a11210b8396], [0x990fd0d50713f1be, 0x482f99b5e7f11567], [ 0x0], [ 0xb6f5a11210b8396])
+ self.div([0xa0fa2c15f5280fb4], [0x8b2cd3529dca6273, 0xb947044f821eb4f7], [ 0x0], [0xa0fa2c15f5280fb4])
+ self.div([0xa0759fc504e6a80c], [0x925ebcfaa568522d, 0xf7d4054eff6c304b], [ 0x0], [0xa0759fc504e6a80c])
+ self.div([0x16429e1cd49b138d], [0xdbe85d83a47b41bd, 0xac0f0c68a5780fe3], [ 0x0], [0x16429e1cd49b138d])
+ self.div([0x1a9f09077d990fd8], [0x4a1b1779a086c440, 0x5fc3edd1461b6b57], [ 0x0], [0x1a9f09077d990fd8])
+ self.div([0xaf1f95b1e1c84f36], [0x6bbab8d836cf2b6d, 0xee150a5ebda6ac8f], [ 0x0], [0xaf1f95b1e1c84f36])
+ self.div([ 0xb758a1bf13a7d60], [0x6175bd09add0af1d, 0x6394de8d88a95725], [ 0x0], [ 0xb758a1bf13a7d60])
+ self.div([0x82b1f528ac1e6972], [0x49d55ce8d874514e, 0x210ac5995621f8c0], [ 0x0], [0x82b1f528ac1e6972])
+ self.div([0x7eb3ce902163f928], [0x1cd38a78955feefd, 0x6543fb028071c749], [ 0x0], [0x7eb3ce902163f928])
+ self.div([0x4ffe27acbf5b07a9], [0xf9da0c35e7daedb2, 0xfa663b2d704f59e1], [ 0x0], [0x4ffe27acbf5b07a9])
+ self.div([0xa8e3ea4ddf9306b8], [0x186bd2a363478768, 0x9c5d9e5a7a6a567], [ 0x0], [0xa8e3ea4ddf9306b8])
+ self.div([0x33615d2b0c328852], [0xad891dfae2e7641b, 0x16f3c10a5642309b], [ 0x0], [0x33615d2b0c328852])
+ self.div([0x29713db8050f89db], [0xfeaedf7c6785fac6, 0xb30968a461d0e602], [ 0x0], [0x29713db8050f89db])
+ self.div([0x124d1548144db2df], [0x972cd0a46e0dd1a5, 0x8a4fb761b8b7f15], [ 0x0], [0x124d1548144db2df])
+ self.div([0xae680f28e009cc48], [0x796b6e1577496a8f, 0x954ef3a9a1bd7bfb], [ 0x0], [0xae680f28e009cc48])
+ self.div([0x7ad6869d0d9edf19], [0x15f63c42eb44f2be, 0xeb2070574d579f75], [ 0x0], [0x7ad6869d0d9edf19])
+ self.div([ 0x5f9af427f209733], [0xee328dc8850f7acb, 0x52ce198a28b41526], [ 0x0], [ 0x5f9af427f209733])
+ self.div([0x7b14b62dbfc15959], [0x7ac40626c8d69f31, 0x9e2ce1f66b554b4c], [ 0x0], [0x7b14b62dbfc15959])
+ self.div([ 0xe9d9fad268ba972], [0x2aba12698d6e144d, 0xceb2ab28fa44576e], [ 0x0], [ 0xe9d9fad268ba972])
+ self.div([0xdc3741df1a07f4d0], [0xa615e0525fdcceae, 0x2122d5f6371e1322], [ 0x0], [0xdc3741df1a07f4d0])
+ self.div([ 0xb0152d4b533efe7], [0x1720da6fbe8531cf, 0x5dd968324bb8d069], [ 0x0], [ 0xb0152d4b533efe7])
+ self.div([0x2283d14d1d8a8f41], [0xb6fdfa9f1691d90c, 0x7d6c20abfa45358b], [ 0x0], [0x2283d14d1d8a8f41])
+ self.div([0xffd589ba1ff1cd45], [0xb6e21e68dbed7234, 0x164bfdb1852c7f77], [ 0x0], [0xffd589ba1ff1cd45])
+ self.div([0xb532ded4bb7dd1ae], [0x625917de5f483e44, 0x24677a2015d0728e], [ 0x0], [0xb532ded4bb7dd1ae])
+ self.div([0x14dd06a80a0a8f3e], [0x3eaffd7c3c4fa368, 0x73b9b10e3bf8ee07], [ 0x0], [0x14dd06a80a0a8f3e])
+ self.div([0xf852fcd0ad9ed3b8], [0xb455c980142b29d5, 0x504645f5c71ad882], [ 0x0], [0xf852fcd0ad9ed3b8])
+ self.div([0x8ec688e3254b8aa3], [0xfc165815b4f007c8, 0x994d2a0e098d97ea], [ 0x0], [0x8ec688e3254b8aa3])
+ self.div([ 0xc8a230129fa5f87], [0xa29f853891aca9ad, 0x5ca4791e7aa96366], [ 0x0], [ 0xc8a230129fa5f87])
+ self.div([0x93a1ce2a13543805], [0xfca12b69ddc1e732, 0xe257a7663cc1d95e], [ 0x0], [0x93a1ce2a13543805])
+ self.div([0x2e196381390bbf67], [0x75b3416e95f6c7b8, 0x690079316fac5933], [ 0x0], [0x2e196381390bbf67])
+ self.div([0x1981a30e3f882ac9], [0x71f2dd08dfa572cd, 0x32fec35adc632e1b], [ 0x0], [0x1981a30e3f882ac9])
+ self.div([0x7e131fc083953bb2], [0xc22a60385aebcf9d, 0xd22c9ccae48f6221], [ 0x0], [0x7e131fc083953bb2])
+ self.div([0x61bc5d4d7b19ede5], [0x7d5e394ac81cfdae, 0x5e78b413d8457bda], [ 0x0], [0x61bc5d4d7b19ede5])
+ self.div([ 0x1d8309a49ab3b7b], [0xce2c7ffee14a55c1, 0xd790c8082f9a5f46], [ 0x0], [ 0x1d8309a49ab3b7b])
+ self.div([ 0xb17805ef508a547], [0xa57513ba2a6d5611, 0x4a1aa764e129c5c6], [ 0x0], [ 0xb17805ef508a547])
+ self.div([0xc1c823933a72f1ff], [0x2f561f19bbe0bcc3, 0xc3173c3358115ed9], [ 0x0], [0xc1c823933a72f1ff])
+ self.div([0x4b5197423b2539c7], [0x3a8e2c13028e95cd, 0x3d0f11e845eb99ba], [ 0x0], [0x4b5197423b2539c7])
+ self.div([0xcb1a4b312d855781], [0xd84162dd3e56f2a5, 0x6c8f10d5c423c703], [ 0x0], [0xcb1a4b312d855781])
+ self.div([0x3c3d2e2241898adc], [0x8057a01889a5c6ae, 0xfd7346c637df3b7b], [ 0x0], [0x3c3d2e2241898adc])
+ self.div([ 0x1be5f360e24ab69], [0x2ea46e2880fb6cf3, 0x50e214dcaccf4d64], [ 0x0], [ 0x1be5f360e24ab69])
+ self.div([0x46612fe22cdddbe7], [0x9951071f3c34f008, 0x2fe887d8e380d23], [ 0x0], [0x46612fe22cdddbe7])
+ self.div([0xca5ebcc251d5cbd9], [0xbdfd633602067650, 0x2b79ef3fde92e433], [ 0x0], [0xca5ebcc251d5cbd9])
+ self.div([ 0x9dfc5737d3235b4], [0x4cf3a927c45e20e1, 0xc69b2b45914d6e42], [ 0x0], [ 0x9dfc5737d3235b4])
+ self.div([0xecf78b221ee58253], [0xb07264945f206b54, 0x2675762851449b70], [ 0x0], [0xecf78b221ee58253])
+ self.div([0x433f4da96ce7f955], [0xca54b0c05e76e3d3, 0x7567c3953265760d], [ 0x0], [0x433f4da96ce7f955])
+ self.div([0xe2d4878b5017c7c4], [0x55b8e118e520625e, 0xecedc22bbe9621aa], [ 0x0], [0xe2d4878b5017c7c4])
+ self.div([0x3fd09d00b1bdee4a], [0x79e36ee8a12eb5ba, 0xe0103d25dce173c9], [ 0x0], [0x3fd09d00b1bdee4a])
+ self.div([0xd5ceb17f522a89a1], [0xa4cea56e086d1e8c, 0xab7a281a657b1ec7], [ 0x0], [0xd5ceb17f522a89a1])
+ self.div([0xc185d3d953d0501a], [0x65f89c179205db4b, 0x5e8206cbfbb9a845], [ 0x0], [0xc185d3d953d0501a])
+ self.div([0x445f64cd21800149], [0x1aaf01c874241b5b, 0x13f0e9114cb747a4], [ 0x0], [0x445f64cd21800149])
+ self.div([0x8c048343ba8d43b9], [0xd83e51c20bea5379, 0x9b85ff476aec4f94], [ 0x0], [0x8c048343ba8d43b9])
+ self.div([0x18f4e3bb78b04fdc], [0xb8921225e847c65b, 0x68285eb61e9b7c13], [ 0x0], [0x18f4e3bb78b04fdc])
+ self.div([0x73b6668c41c07226], [0xed613abd7225b3bd, 0x1ddcfc0b17c1e44], [ 0x0], [0x73b6668c41c07226])
+ self.div([0xcd32dd9df43f002a], [0x5bdda19f2dda1bb3, 0x53e111a03b9f6b4c], [ 0x0], [0xcd32dd9df43f002a])
+ self.div([0xdd45cddd106ea2b5], [ 0x633eb41e4e97ad2, 0x2773f02ec72d9f36], [ 0x0], [0xdd45cddd106ea2b5])
+ self.div([0x9a482d82b7666a8f], [0x735050b3b664d733, 0xe4907913144060d3], [ 0x0], [0x9a482d82b7666a8f])
+ self.div([0xf7bc49016d3bb69e], [0x9136f26a0b3cfedc, 0x96cb7a34668d66d3], [ 0x0], [0xf7bc49016d3bb69e])
+ self.div([0xa7f4ca43c2ee5244], [0x15dcf1bebc9f5002, 0xb3bb727fdfd6e452], [ 0x0], [0xa7f4ca43c2ee5244])
+ }
+
+ func test_div_2_by_1() {
+ self.div([0x83615f5644e2cedd, 0xe3361235c4da8429], [0x1a25c09c3e447e10], [ 0x5, 0x64ba39be9314bec], [ 0x7f9f6659bb79d69])
+ self.div([0xdc86484a58aa3879, 0x9e44204eb1d95932], [0xd7257bd70cca29a0], [ 0x1, 0x6663c39447162c4], [0x3251dfd8a3823ab2])
+ self.div([0x29d348057e8e06c6, 0x6072db69a96ba356], [0xbb2f36494bb23ed1], [0x3933a7931ac597c2], [0xaa97b8a99875c1f4])
+ self.div([0x8e08848bc6152738, 0xf78d1843385968cc], [0xf10080abe232d56b], [0x96df4e4d5ac7c862], [0xbd2d0e0465fb1dd6])
+ self.div([0x4f099ac007bc75ca, 0x3083d97e37731681], [0x4e8b92d1b2e6c686], [ 0x1, 0x19ac4d830498a4b], [0x2bd16986aa9cb13f])
+ self.div([0x38d0e71ecb661348, 0x60320a3181e6d10e], [ 0x964d25984877c94], [ 0x6, 0xc587ac27d19f127], [ 0x470af9356878282])
+ self.div([0xfce46f17b6383dfe, 0x3b5810c12c2380b1], [0xfd0c710678d4b882], [0xffd7869ca28e610e], [0x766650a55a7c2795])
+ self.div([0xd5a1547e7ff38a88, 0x9c4f6d29356b6601], [0x4b52496af3e6bb28], [ 0x2, 0xd6144a49a3e362ab], [0x4b16542f8a2f1249])
+ self.div([0xf5e0bde1f482a229, 0xb583da8c6f24dc5a], [0x70f8f202c891f270], [ 0x2, 0x2d2b42dbf5625676], [0x1447a32ef58d7cba])
+ self.div([0x7a13438c6a911732, 0xae00f4d5dd0ce7], [0x6edcadbfa63e869f], [ 0x1, 0x19e4b02aed40453b], [0x6cc075a1d06b2b42])
+ self.div([0xda04afc0f99b0707, 0x20e61a9358d1bf3d], [0x6c4ae45e08851bfb], [ 0x2, 0x363585df6c83b9d], [0x11a55de163a4bd4e])
+ self.div([0x55540e0154d4f530, 0xb36872d511d1348], [0xc5381c877f0392e6], [0x6ec2a28c2a9f29fe], [0x8ec42a4bc0307d14])
+ self.div([0x84afa5ae92118f93, 0xa04593051b05dc43], [0xe303d58acfe8475e], [0x95a0995c7ea353a6], [ 0x8f591cc466a1b4f])
+ self.div([0xdf59415dcf8d8f00, 0xbd0945bd8bf3f836], [0x1ec19424e976aeb4], [ 0x7, 0x430cd457853cb39a], [ 0xf9c888aa83703ee])
+ self.div([0xb9d7576864c06b57, 0x9dd3ba9efc5e8851], [0x2be11606ad8d9e4a], [ 0x4, 0x3c3bc2143a9d655d], [0x25e1203a3916d56f])
+ self.div([0x4a2ac516f24941ee, 0x8a49b5b278da6522], [0x5be5616a158db11b], [0xce9c88496fcf92b1], [0x591124fed90c8b77])
+ self.div([0x4903b5a601df8bd3, 0xe0c3ded4ebc835c5], [0xdd3fa8e303740a46], [0x547b997b071c0f06], [0x5ded49b400cdde21])
+ self.div([0xc84e02226eba698d, 0xc2ecc16a4a61b81f], [0xcf1c6acb77097245], [0xf7964ab61bea9ecb], [ 0x6c481dd574b8568])
+ self.div([0x50fea76016920427, 0xd81aacd21b6108a6], [0xb8139e08fb2f2178], [0x70a43462a5ee87f6], [0x3af3fd676be09756])
+ self.div([0x3bd193fd17b3afeb, 0x4b9e8331209d5ba6], [0x521070e796578a6c], [0xba9ad455260c43e1], [ 0xbc83aca8f626eba])
+ self.div([0x1cd7721fa52d0eae, 0x72e05f24d1187752], [0x3ab73247e29354ea], [0x7dbfd0cdb8ad375e], [0x20d15517659f0366])
+ self.div([0x55464a57c927ba6e, 0x40491bc31e35a318], [0xf3d59a9cb90b2a78], [0x598777a22e564a97], [0x2d9cc882ea08e650])
+ self.div([0x749e08f6a08c8047, 0x36963c8d7c0b4142], [0xcdbedfc15c8e1255], [0x911a08832a14deba], [0x30ab6832a8483980])
+ self.div([0xafefe174a840b658, 0x610794c072244dac], [0xb794620a29fbfa74], [0xf557ad32ac0ec162], [0x6ea97c7fc584f944])
+ self.div([0xa8da1ee03f21cdba, 0x6baa7c1e7e591a9f], [0x202d4704759a60c1], [ 0x5, 0x3f642cc18ff1bebe], [0x1a0e67a4bd450d61])
+ self.div([0x36982464578d98f8, 0x36a29bca0e48686f], [0x8471bef6b2a06af4], [0x69865044ea658041], [0x3bea01f943cf407b])
+ self.div([0xc9ba267290a210db, 0x5dc79d9a241ed09], [0xf17cc55d519d7190], [0xd5d9ad4b97455643], [0x48ae0666d616d459])
+ self.div([0xed633fd276402d57, 0xaed2520ee7b4188f], [0xe5b1fbeb67a34b27], [ 0x1, 0x892c93277e1079c], [0x794213b41add3bcb])
+ self.div([0x552c9aa5f3328708, 0xbd14bba866e79cc6], [0xc880525a410c7b33], [0x6cc01e36fe865479], [0x1c4dcc2078e2a5ab])
+ self.div([0xb42e94178f07b527, 0x9383c7829a0ede45], [0xfa79ef7f7bf340ed], [0xb827cbc6066f3329], [0x575c6e1995674150])
+ self.div([0x83e8abb527bdaec3, 0xd7b832e5c9daa3d8], [0xbb0aea668d877052], [0xb48a3ade05fc70db], [0xb203dd9f4b21adb2])
+ self.div([0x980c37ed8fa8c9be, 0x5559e96392ff0328], [0xeca7ac5113c69073], [0xa47a061755ba2c1f], [0xcbed239bea91c13b])
+ self.div([0x78fd3e993a69323b, 0xc6c9c055b9da4655], [0xb93e52bfd93818f2], [0xa733f21f56acc39a], [0xa6cf43174482eec1])
+ self.div([0x22221a345805d809, 0x712ffa0e82f02edc], [ 0x711177061b27945], [ 0x4, 0xd481c48ba20c2980], [ 0x44610a5bb0b7f5c])
+ self.div([0x8168f26a2c04c642, 0xbb36024ce5a8034c], [0xc8b912c6519203f9], [0xa50c5270795f2d29], [0x374b5c33002b9b6b])
+ self.div([0x9d33946cb68f0781, 0x9012c2556e008ef], [0x4b075466d7b9537d], [ 0x2, 0x18605529f97f4fc1], [0x324fa6e0836184b2])
+ self.div([0xf0c74ad292c8ab31, 0x743aff3dbb92eac9], [0xeaa6b4a33fac0791], [ 0x1, 0x6af4c5c37149a51], [0x3731f01c5b434be8])
+ self.div([0x8facca106940b0f4, 0x9bc3e61134f8ec9a], [0xff5c17cf6a297613], [0x900902707710d537], [0x9c207e62b0a2bf85])
+ self.div([0x5be6ee1f5c1c1595, 0x43a0715c32077cf7], [0xe045fa386079a6a4], [0x68e7260a9926677b], [0xb2d4a8662530702b])
+ self.div([0x690f04d577fa271f, 0xed3e6b72f059678f], [0x263066a0d91e8fed], [ 0x2, 0xc0427984bb7788e9], [ 0x6a142a10e780da])
+ self.div([0x21368ba798192f55, 0xd9dd778fb9bd7958], [0x857a2147e7295334], [0x3fb34ec46de062ac], [0x22612c5ca69faa68])
+ self.div([0xcb369f7a31f9fe51, 0xca01d858905f70b9], [0x156a39ca92559dcb], [ 0x9, 0x7d446aa503b81a6f], [ 0x53466ca05167b4])
+ self.div([0x4c109819c8ad686d, 0x739971f38adf43b1], [0xb7790cba359dd054], [0x6a22255468e89064], [0xa89287d6e7eaa2e1])
+ self.div([0x261ebf44b49260e6, 0xd459f7e9defcf03c], [0x839fcb801bfbc373], [0x4a24174952e372e7], [0x1774c5365ccd5d77])
+ self.div([0xb12d6f8c330015f4, 0xa472517b1b678672], [0x2e3c1c7e447e6562], [ 0x3, 0xd506054530cb430f], [0x162759813ec0efb4])
+ self.div([0xcfc8f450b895482b, 0x4bbfb33f23874301], [ 0x5df5b05afed2312], [ 0x23, 0x620049d141dcc081], [ 0x3c6680bed4316ef])
+ self.div([0xb3e57f3459436f26, 0xdda6864b665497d9], [0x8d2ecabc7f2cc3fc], [ 0x1, 0x46329bbf1576845d], [0x5d8496841bdb754d])
+ self.div([0xf3a616a741278f85, 0x5d20856e8350e168], [0xc458a1634b659fc1], [ 0x1, 0x3dac8bd9676bcfbf], [0x631c3608a9a6a169])
+ self.div([0xe386497c9862be25, 0x1b78a003b3f3b00d], [0x8575b7f5d79a0287], [ 0x1, 0xb46eddbc6a10c0b8], [0x4ef660cd2cec9f05])
+ self.div([0x5a78750a85694352, 0x10e15cf1c5f40cf4], [0xe3dc629ad5178a29], [0x65a499ddf2a24fcf], [0x55abfa180456aecd])
+ self.div([ 0x32c5244d03e9ba6, 0x4efe8fd29d7cb92a], [0x759abd07da8f7404], [ 0x6e8407293ac5c08], [0x15eff33ffc9fa90a])
+ self.div([0x6ad2a2c1cb65be67, 0xf45e7f7044f57771], [0xd285abec2184dc2d], [0x81e62a9881da47a8], [0x258e946041627ee9])
+ self.div([0xb1d296969c61d3a5, 0xe213c6317f3c65ab], [0x9a44c1bd112a80cf], [ 0x1, 0x27162a317827e573], [0x12fa766e1c625dae])
+ self.div([0xfaa01678081909a7, 0xe91e445396cc2138], [0x1702442169dcc6d5], [ 0xa, 0xe47eedc2c7bf812a], [ 0x1f9c7ce0c772d46])
+ self.div([0xaf38883ddf1a3804, 0xdc499470b1c68f86], [0xdc017d908e3314e1], [0xcbe34f88a8488698], [ 0x89c5193ff3c63ee])
+ self.div([0xf633e800bdf91da3, 0x98a564eef3e5c794], [0xaf7bd4ccf5208551], [ 0x1, 0x672aac87f9ec3810], [0x6ef9ed22d507ba84])
+ self.div([0xb8f3f42ac065df15, 0xc38196eacea42ff1], [0xb1ada3c933d3a470], [ 0x1, 0xa7b3bdf4abc7e05], [0x15b111f57e52d9c1])
+ self.div([0x66750b1e04606845, 0x55265a197dd836e1], [0x23896a7605e8faea], [ 0x2, 0xe214e2bc5f393087], [0x205d76ebfcd6057b])
+ self.div([0x637841f5f692e23d, 0x63056eed33830b70], [0x8550ddde339bd974], [0xbf01c5ff8defc8f1], [0x73a8149bf49cb53c])
+ self.div([0xdea104e129c0f68f, 0x91d3f007df381de5], [0x340165e62392de4f], [ 0x4, 0x47e78d93fb0edaa4], [ 0x4a191f166806d49])
+ self.div([0x1473a666acae01e9, 0xea0559e518f10a26], [0x44cb2cc44afbd2d5], [0x4c1b493e4d31e888], [0x30d0c875a05300fe])
+ self.div([0x388a3e7183b6a182, 0x441d3d182e1e8f39], [0xa9785b524533dbd8], [0x5568a804b4855195], [0x1cef746b67284281])
+ self.div([0xd721f5f33fe9b4b1, 0x62caa79187502aac], [0x37a64e92e2efe82f], [ 0x3, 0xdda7c56322ec2041], [0x1c1550baa20c56bd])
+ self.div([0x5afc19008fb9acc4, 0xaa9cf002a9cb993], [ 0x2928aaeff4ebb69], [ 0x23, 0x5e843b0bab83c88a], [ 0x184d838fe06aaf9])
+ self.div([0x68c48843e893630c, 0x3442f302eb36818a], [0x794e7cbe060ca27c], [0xdd18d9d462c54bde], [0x4749f1d7773b4602])
+ self.div([ 0xa7ef9aa336bd0dc, 0xd61b2ee6d6942c9], [0xbdf44abb2db0a6a8], [ 0xe25379e9857d2e3], [0x429b85cd9df7abd1])
+ self.div([0xeb8e408a04e73d16, 0x8508555af2d559aa], [0x29c4cd143e6064e0], [ 0x5, 0xa3b77fff74d5548f], [0x1e83f38b0b83808a])
+ self.div([ 0x5bceeb6c6938604, 0x978f31dc4107e1df], [0x1fad5b60886f9a16], [0x2e5f38457d74c100], [ 0x95bc2438de54bdf])
+ self.div([0xa71d9b734ae07ea2, 0x1f249e4cc98de490], [0xfc4b7797369e4210], [0xa991e616402bb765], [0xe2cf8d2003346440])
+ self.div([ 0x21fd84d0b7717ab, 0xf5b90b5ca647283d], [0xdb82b6b3fe7048b8], [ 0x27a3fa73d3033ea], [0x6ba300bc3aa8080d])
+ self.div([0x2f9395116786d90f, 0x59af3c42cc8b3f75], [0xdb11277e140336c2], [0x3798f709b83dd4e2], [0xb946c770fc224031])
+ self.div([0x6b1bb2af88d20f65, 0xfc1f68af8dc6e124], [0x44d60aba39807288], [ 0x1, 0x8e55466f49d2bc1b], [0x1d57dfd26d8eeccc])
+ self.div([0xb47c7e217d8b4ca6, 0x210cdfa0d1dc1da4], [0x522c032e1f330ea0], [ 0x2, 0x324a5ecafee9e8c9], [0x39c53be8fde4a204])
+ self.div([0xc02e981ee30d60bb, 0x90f6afb543588352], [0xd0e8be153d956e4c], [0xeb80997e85413f4d], [0x9f534e8379f5a276])
+ self.div([0x3cb1c4fc22678e15, 0xf12fbc12913c667b], [0xec47bbb9a0f74680], [0x41c28aa3ae6de787], [0xcd12be3b89b8b8fb])
+ self.div([0xc8ed88bb5a230518, 0x41f39d118b24b093], [0x3c6ca77dd50e6634], [ 0x3, 0x53453e246eb63b22], [0x311ebec9ecb521ab])
+ self.div([0x11134e750432fc66, 0xace34827e1cb8a88], [0x29544c14c7ec11ae], [0x69c48cae52eb7d1f], [0x20139c6370d97076])
+ self.div([0x4ab075326f7402f5, 0xb2be371c44d8c3f2], [0x17fdb7613e9c94be], [ 0x3, 0x1cfb6296e616ba0a], [ 0xc0273669254e886])
+ self.div([0xa9f3b6251fcde1b6, 0x5912a4cdfc84857a], [0xb375181c949ed605], [0xf270b99faef8eb46], [0x8db7571dcfc7691c])
+ self.div([0x4a7010ecdd47e182, 0xf85675ed5cac482b], [0x3357bb27f333a7c6], [ 0x1, 0x732783489c0c1c31], [0x1774e255a4278345])
+ self.div([0xd888cb98dce23776, 0xde2141c62c2d8479], [0xd610aa585b65514a], [ 0x1, 0x2f3f67a1bd4488d], [0x3c975ca9373aeeb7])
+ self.div([0x7293063d51b32586, 0x71e3eabb05ceecbb], [0x2f44bf3255929ab7], [ 0x2, 0x6c84d736aa2f2c30], [0x15da0653da21766b])
+ self.div([0xce849c1df8ed07c1, 0x9f3124d3883ded86], [0x4feba55a663e8c45], [ 0x2, 0x9583dbb150fff74a], [ 0xffcb9335817ce94])
+ self.div([0xac22fa9fab6b7767, 0x40512e5ac69bea19], [0xb25830f4f59b46df], [0xf716ce6d4e29361e], [0x7f48816df1bf91f7])
+ self.div([0x632b9f21852f0562, 0xc5c0350ae7574c09], [0xacef0b1d8347e6f8], [0x92ce32fa428b56de], [0x50f5d7928ebdb0f9])
+ self.div([0x2672fa7984478344, 0x4c810856f4fa51ce], [0xc8c9de0608017477], [0x31058877926bc94f], [ 0xded3fd8cc58f215])
+ self.div([0xa02eda5659947ed1, 0xfb0e139420cafdef], [0xa11052fc31486d5b], [0xfe99a0ebc214ae24], [0x7c15ff8d772bc323])
+ self.div([0xb8b56d673de45b7e, 0x98233aee72c0990d], [0x87c4484c5da2b593], [ 0x1, 0x5c48cb7d4d3a58e8], [0x182a14484e9383d5])
+ self.div([0x2198d60acb9be5db, 0x6de17b63ded26938], [0x321db2775d1a54f8], [0xab9e596930a66f61], [ 0x4fcba119430af40])
+ self.div([ 0xbe99f35539d3d6b, 0x2fd3f7446fa578e1], [0x1d0b9db73f0613c7], [0x68febe796f8129ad], [ 0x10e99a49f183c66])
+ self.div([0x9744f8b4e336f85c, 0x78b4a83fba6ef37a], [0x8f869cd2ee5ffa80], [ 0x1, 0xdcfd62aa5dff15e], [0x179ce55422de787a])
+ self.div([0x70e0e4af4742ea6d, 0xe0f6426d9752e27c], [0x358d8ed0458c3252], [ 0x2, 0x1b983de1d5cb3bf2], [ 0x950b168682c6af8])
+ self.div([0x11bcb9cf0df10147, 0xc9a078df638bf2cd], [0xf789fc1ef4608dc8], [0x1257ee0e63973cba], [0x8974dc633b320f7d])
+ self.div([0xd5f779dab3a4f25d, 0xc10bc176ec41f313], [0x39c251579b0c8bbc], [ 0x3, 0xb4582b99bca91fd5], [0x2339ce8a16c9eba7])
+ self.div([0x4419ff23151874d8, 0xd7f869089dd9910c], [0xac8a3632d746a7e6], [0x650b147f7282740a], [ 0xa4735c08236ca10])
+ self.div([0x717fe7d3e3499799, 0x60c573165f7218e5], [0x401e244107b89522], [ 0x1, 0xc52a32d387e07b0f], [0x13c56d63d03a05e7])
+ self.div([0xa46db88053db0851, 0x9b33c8ab8bb593d3], [0x2219e5941730104e], [ 0x4, 0xd260c44f50fa3dab], [0x20c4bb1f4e8c19b9])
+ self.div([0x47f16c7a269e1afc, 0x3967b323b26241c8], [0x9c2f528ed54911d8], [0x75ebb1855e031c36], [0x42d2b80e317cde38])
+ self.div([0xe8c412aca43c4c8c, 0x163db538a1f1eba7], [0x70aadbce620ef6af], [ 0x2, 0x10e27bce658dd6ce], [0x4c97cfca4e4e20d5])
+ self.div([0x5b5bda1d2dae651b, 0x1d01fd1cf5448492], [0x2924d486f0537466], [ 0x2, 0x3870d663a5023e22], [0x287e22de2d325b06])
+ }
+
+ func test_div_2_by_2() {
+ self.div([0xea8a9116b7af33b7, 0x3d9d6779ddd22ca3], [0xc3673efc7f1f37cc, 0x312f661057d0ba94], [ 0x1], [0x2723521a388ffbeb, 0xc6e01698601720f])
+ self.div([0xfcd6750d8cfba682, 0xdf3707b55685d5dd], [0x6ac9d1d0de8d4e57, 0xa2b85358486ef39d], [ 0x2], [0x2742d16bcfe109d3, 0x99c66104c5a7eea3])
+ self.div([0x2e6618d5951f5aa4, 0x61a257f18c8cfe6], [0xef9a7aff3a4b6c3c, 0xe468f1b6e00936c2], [ 0x0], [0x2e6618d5951f5aa4, 0x61a257f18c8cfe6])
+ self.div([0x437d49c4e8557fbe, 0x915e12f2c2dee160], [0xc99013e2a4ccda2f, 0xcc6b64464f4c1eba], [ 0x0], [0x437d49c4e8557fbe, 0x915e12f2c2dee160])
+ self.div([0xf45bca4ee852d426, 0x36cd83e58b55dfc1], [0x363f08847914d2af, 0x95a246dc5065682b], [ 0x4], [0x1b5fa83d03ff8967, 0xe044687449c03f15])
+ self.div([0x5dba490e8cbc49ed, 0xca5f5f9c71b8050e], [0xaadbe6a220cc8ca9, 0x9574953c1da5162c], [ 0x0], [0x5dba490e8cbc49ed, 0xca5f5f9c71b8050e])
+ self.div([0x63101a374d7822e0, 0xb4aace05906a1387], [ 0x5f72df945d569ff, 0xbe575655c65b2c4d], [ 0x10], [ 0x39d3aa2f02182e4, 0xcf3568a92ab74eb7])
+ self.div([0xff5a4a17015a2efb, 0x6dc4b8cd19923270], [0x80c83d4c0ecc47eb, 0x9285bb342ef7511d], [ 0x1], [0x7e920ccaf28de70f, 0xdb3efd98ea9ae153])
+ self.div([0xa0c7d7165cf01386, 0xbf3f66a93056143f], [0x9ac3a19b1e7d6b83, 0x513929792d588736], [ 0x1], [ 0x604357b3e72a803, 0x6e063d3002fd8d09])
+ self.div([0x15dc04ac4f36e4c1, 0x46b9aabc3606489f], [0x3ee46f82ce142ada, 0x6f7549fbbe7ddc1f], [ 0x0], [0x15dc04ac4f36e4c1, 0x46b9aabc3606489f])
+ self.div([0x54e2bd14cdf3009c, 0x122d5621bc7c449c], [0x91c3f726a6ebcfc2, 0xa42260b542ffa2f6], [ 0x0], [0x54e2bd14cdf3009c, 0x122d5621bc7c449c])
+ self.div([0xef668b0696ec4a06, 0xd7234081193fa25e], [0x44489da58192bf39, 0xc89ea7dd73015d8], [ 0x3], [0x228cb21612340c5b, 0xb185810793af60d6])
+ self.div([0x89fa63cd68bc984f, 0x64466a75380a9636], [0xd0783578c7ecf377, 0xd9887c0a2f08fb32], [ 0x0], [0x89fa63cd68bc984f, 0x64466a75380a9636])
+ self.div([0x9d4c2e18eedd254e, 0xc942b7ddd2e568cc], [0xbd272a163a7e5fc9, 0x77dca431a1fde0ec], [ 0x0], [0x9d4c2e18eedd254e, 0xc942b7ddd2e568cc])
+ self.div([0x43861ea6fd264953, 0x7602149b99e8ea5d], [0x6958224e61d1bd42, 0x47a055c0dc0d96b2], [ 0x0], [0x43861ea6fd264953, 0x7602149b99e8ea5d])
+ self.div([0x2a9d15b433c211ad, 0x3037ddccb49eb3f0], [0xe7e69229fd235b54, 0x3bb77db7022d742a], [ 0x0], [0x2a9d15b433c211ad, 0x3037ddccb49eb3f0])
+ self.div([0x6b6b97d8f197b39e, 0x92df51dc3ebddf7], [0xa0dacd628b97f093, 0x8bb774bce6e9ce95], [ 0x0], [0x6b6b97d8f197b39e, 0x92df51dc3ebddf7])
+ self.div([0xe511aa74d659fca9, 0xf4bc23b11b34a260], [0x83a744a6080e457e, 0x4854750c6d5d035a], [ 0x1], [0x616a65cece4bb72b, 0xac67aea4add79f06])
+ self.div([0x99feb6848b937fca, 0xf235ee16acc61a84], [0xa0ec77f8baf5eff9, 0xb3ec0aab02151d4a], [ 0x0], [0x99feb6848b937fca, 0xf235ee16acc61a84])
+ self.div([0xe31cef59d1297760, 0x5279ad7210a6721d], [0xdc07ad11e5e368ad, 0xaf32b81e4b1f794c], [ 0x1], [ 0x7154247eb460eb2, 0xa346f553c586f8d1])
+ self.div([0x6137373a084313f1, 0x3786dd4c343f25df], [0x495afb68babcce34, 0xf2d3152d01989496], [ 0x1], [0x17dc3bd14d8645bc, 0x44b3c81f32a69149])
+ self.div([0xd3e11d058d108727, 0x32b99a2b341794c2], [0x522110fdecdb18f3, 0x9f855704084c4816], [ 0x2], [0x2f9efb09b35a553f, 0xf3aeec23237f0496])
+ self.div([0x9f1b58dc4cfd2cf8, 0x2ec65a8383d5566b], [0xa8d8bfb8eda58f99, 0xd7781c8ee0d5a20c], [ 0x0], [0x9f1b58dc4cfd2cf8, 0x2ec65a8383d5566b])
+ self.div([0x4b56436b6884940f, 0xad8fcd629c616e47], [0xe921f1fc57160fb3, 0x7dbff15a060dbba6], [ 0x0], [0x4b56436b6884940f, 0xad8fcd629c616e47])
+ self.div([0x9dfcf4847a1bfd70, 0x88eb55272786c1e8], [0x9bf1f07150994953, 0x7a5ff07c1d56b3a6], [ 0x1], [ 0x20b04132982b41d, 0xe8b64ab0a300e42])
+ self.div([0xda06e8b2702b8f9a, 0xf34868a769837ed9], [0xa378893ac449f38e, 0xfb35422977445c52], [ 0x1], [0x368e5f77abe19c0b, 0xf813267df23f2287])
+ self.div([0x3f508ff63c524247, 0x10acf945bcd3d69], [0xe33dd0499aaf21c8, 0x359f6d4741813737], [ 0x0], [0x3f508ff63c524247, 0x10acf945bcd3d69])
+ self.div([0x4a9df4418047e1ab, 0xfc0f6a136ab5f464], [0x5638d08d4b5c7cb4, 0x636eee2113a3244a], [ 0x0], [0x4a9df4418047e1ab, 0xfc0f6a136ab5f464])
+ self.div([0x8b5d9300fa1d3b89, 0x8a156883986eeb8c], [0x9c46a544dc058f34, 0x90177ba8a63ed453], [ 0x0], [0x8b5d9300fa1d3b89, 0x8a156883986eeb8c])
+ self.div([0xb1c5f0ee043fec5e, 0x567825906c61fa2e], [0x9f7786616a38ba84, 0x224cae6742cb853b], [ 0x1], [0x124e6a8c9a0731da, 0x342b7729299674f3])
+ self.div([0xce7ff018f5f69e08, 0x5e8bd1afcd20bef1], [ 0xb1825f549c7ac5d, 0xb4db890a129c088b], [ 0x12], [ 0x6cd44d9c5ec7f71, 0xa71c2efa7e28252b])
+ self.div([ 0x49e68e401c4dd59, 0x9a694ba8a81eccfb], [0x3d26e0c5c3f328df, 0xc33b9a28a78deccc], [ 0x0], [ 0x49e68e401c4dd59, 0x9a694ba8a81eccfb])
+ self.div([0x33bf7db739e2a675, 0xe5df7cff92c125cc], [0xd8d4ed533df0befa, 0x1038129848272c53], [ 0x0], [0x33bf7db739e2a675, 0xe5df7cff92c125cc])
+ self.div([0x9db744fa509dfe4f, 0xe909b70b419cad6d], [0x5b1163648d1f4eae, 0xa6496b029de6b2ee], [ 0x1], [0x42a5e195c37eafa1, 0x42c04c08a3b5fa7f])
+ self.div([0xfde3633e1ce31040, 0x676e9b9787ddd7be], [0x93cdabadfaef3ccc, 0x5904dc4870360d28], [ 0x1], [0x6a15b79021f3d374, 0xe69bf4f17a7ca96])
+ self.div([0x8298e72755f4bb02, 0x94d13aa1fef6b002], [0x320b4311da699f61, 0x9dbd627acea5e3], [ 0x2], [0x1e826103a1217c40, 0x9395bfdd0959643c])
+ self.div([0xbfd1d621c43d39b2, 0xe951ad48355376da], [0x84b737f3c3d318f7, 0xae152b75f805ecab], [ 0x1], [0x3b1a9e2e006a20bb, 0x3b3c81d23d4d8a2f])
+ self.div([0xf118b5e551a28983, 0x1614e314047e35a3], [0x980020b17ad9cace, 0x6f36eb13060dbce2], [ 0x1], [0x59189533d6c8beb4, 0xa6ddf800fe7078c1])
+ self.div([0x50e130c23836c564, 0x37378d7315fe545b], [0x852cdf0aa35893f5, 0x8a50c1724d707405], [ 0x0], [0x50e130c23836c564, 0x37378d7315fe545b])
+ self.div([0xea3b9ee40af24bee, 0xcf460a4da0c85f41], [0x5bfa2d079381dab0, 0xc4204d4698bf5b6f], [ 0x2], [0x324744d4e3ee968d, 0x47056fc06f49a863])
+ self.div([0xcb9df1fafe19ae67, 0x1651fde60b5c92c0], [0xdc2d0d9d7e5083dc, 0xa299db4a53cc7c86], [ 0x0], [0xcb9df1fafe19ae67, 0x1651fde60b5c92c0])
+ self.div([0x67d3b80f1ba71b58, 0xc71d74fcf1eeba31], [0x6d7519b8c493a37f, 0x21036ce670c570b1], [ 0x0], [0x67d3b80f1ba71b58, 0xc71d74fcf1eeba31])
+ self.div([0x2e0155a6545fea78, 0x225acaaa471d09d7], [ 0xa0b724732123906, 0x6dce1ac87e9656db], [ 0x4], [ 0x5d38c898c17065e, 0x6b225f884cc3ae6b])
+ self.div([0x96bf97265800d6de, 0x7990c48272fd34e], [0x34f72af26fb37022, 0x43f5c02100045ada], [ 0x2], [0x2cd141417899f699, 0x7fad8c0627271d9a])
+ self.div([0xb7fb87e6e0ed77eb, 0x7c12739104f7f9a6], [0xc7ab5dd34a452f20, 0x41315550f868dc6], [ 0x0], [0xb7fb87e6e0ed77eb, 0x7c12739104f7f9a6])
+ self.div([0xce1e68596f2dd3a4, 0x8f4a6304578855fb], [0x24661d7e5bf88755, 0xb4a2dc125e99e4d1], [ 0x5], [0x181fd4e1a3532ef8, 0x81c16a87e86dde6])
+ self.div([ 0x8b8dc959a0f40e, 0xb5279d4c153d619f], [0x93788d9d0d90fa2f, 0xbe217dd954a7b42d], [ 0x0], [ 0x8b8dc959a0f40e, 0xb5279d4c153d619f])
+ self.div([0xbb0adf2c334418cb, 0x615e55da605dd872], [0xc21e35da354f6cb5, 0xfcef6d53bb4a9e6e], [ 0x0], [0xbb0adf2c334418cb, 0x615e55da605dd872])
+ self.div([0xb4a3bee9da3f7488, 0x9ab552a2d5dffa78], [0xb40406e1940f984e, 0xc00e71927dd0e37e], [ 0x1], [ 0x9fb808462fdc39, 0xdaa6e110580f16fa])
+ self.div([0xcbd8b4eb25cd589f, 0x2f241c6bdec1a21a], [0x55edfc24163f6d3a, 0x98a513a675fb1457], [ 0x2], [0x1ffcbca2f94e7e29, 0xfdd9f51ef2cb796c])
+ self.div([0x27c87a52cd5a2a7b, 0x11a6101d78242229], [0x5a7d1d0be2a39e4d, 0x89f4723635f78f17], [ 0x0], [0x27c87a52cd5a2a7b, 0x11a6101d78242229])
+ self.div([0x181203e641ffd70d, 0x2f6f575386803d56], [0x42bb33e902e9290c, 0xad4c5b9e8685fd8a], [ 0x0], [0x181203e641ffd70d, 0x2f6f575386803d56])
+ self.div([0x8406c23b81848c31, 0x24b2c739cdfeb86c], [0x7423292423bdcf9f, 0x6028235cf5e114b5], [ 0x1], [ 0xfe399175dc6bc91, 0xc48aa3dcd81da3b7])
+ self.div([0xbbe144a2f9931042, 0x642d2939ce669480], [0xc530903dfe531745, 0xcfb3cd91e6f5977a], [ 0x0], [0xbbe144a2f9931042, 0x642d2939ce669480])
+ self.div([0xff382a46bbe96863, 0x71dea2a2d0f1f443], [0x561fee38594898f9, 0x54054771b7642d02], [ 0x2], [0x52f84dd609583670, 0xc9d413bf62299a3f])
+ self.div([0x50ce4fef921973b4, 0x886391a26dfde190], [0x41241af887756571, 0xe2a54faf9011dfd], [ 0x1], [ 0xfaa34f70aa40e43, 0x7a393ca774fcc393])
+ self.div([0xf447b832c13acb39, 0xbaf546b15196f7ec], [0x4affd4a628ebac38, 0x9c4816d20af4cb2e], [ 0x3], [0x13483a404677c68f, 0xe61d023b30b89662])
+ self.div([0x6e7f4aebc340d5ee, 0x56a38f2ba1cf9a81], [0x83ebae3246091876, 0x3662eca69bd2ed0d], [ 0x0], [0x6e7f4aebc340d5ee, 0x56a38f2ba1cf9a81])
+ self.div([0xf916c6cdde7d6935, 0x20c5abc5427d4601], [0x4275019e51e39619, 0xb2a701ea9f69b3b9], [ 0x3], [0x31b7c1f2e8d2a6e8, 0x8d0a60564402ad6])
+ self.div([0xea6a8e9fc364354e, 0x9435e7da4851ee0a], [0xc0b0d11590d04152, 0x45786fbbaf266429], [ 0x1], [0x29b9bd8a3293f3fc, 0x4ebd781e992b89e1])
+ self.div([0xb5a95b2cbe02f7a3, 0x4c7fae653ae5f661], [0x955e4bfe5e3adede, 0xe0ec9ab90de56701], [ 0x1], [0x204b0f2e5fc818c4, 0x6b9313ac2d008f60])
+ self.div([0xdab4dede6f21e5c2, 0x881fc280ad90020f], [0xc7f33097dc0da2a0, 0xb671097eef68408d], [ 0x1], [0x12c1ae4693144321, 0xd1aeb901be27c182])
+ self.div([0xdb5559b39fbc04ac, 0xad5001fee4e016cb], [ 0xe165e86addb187f, 0x7416e32b930c0901], [ 0xf], [ 0x805cfcf6fe59534, 0xdff8b271472b8fbc])
+ self.div([0x6adc20395d886970, 0x4bd715e6dcb57ef7], [ 0xf6483ce492f37ec, 0x12e2dd9b6560cf96], [ 0x6], [ 0xe810963a66d19e7, 0xda85e4427c70a173])
+ self.div([0x38c313a79996749d, 0x90bf09a0762e8d92], [0xfe0d7b1439031ec1, 0x68afaf014bf22c65], [ 0x0], [0x38c313a79996749d, 0x90bf09a0762e8d92])
+ self.div([0xc59bb8c4544fa9b1, 0x374af3dbb832256], [0x9220283a9e939b2a, 0xa5cc38f784ca0745], [ 0x1], [0x337b9089b5bc0e86, 0x5da8764636b91b11])
+ self.div([0x87fd325f065823b3, 0xdd29a690c523efd3], [0xd8f146ccb2774676, 0x75f42854544569e], [ 0x0], [0x87fd325f065823b3, 0xdd29a690c523efd3])
+ self.div([0x92388a3c403baaf7, 0x9ea3bbed3264285], [0xce9c45e91ef4fa4e, 0xae590f8c093f7669], [ 0x0], [0x92388a3c403baaf7, 0x9ea3bbed3264285])
+ self.div([0x6a51ffff991696fc, 0xe5b4ad98ff9b5df3], [0x2f244b6e1e2240ca, 0x9714bfc8b891444b], [ 0x2], [ 0xc0969235cd21567, 0xb78b2e078e78d55d])
+ self.div([0xa12c963f88f9e5d3, 0x88747bfef0210cad], [0xec02cd647b8c68d3, 0x29219068e5ba4500], [ 0x0], [0xa12c963f88f9e5d3, 0x88747bfef0210cad])
+ self.div([0x2e444315704cf22f, 0x7a57ba3ab965a370], [0x91b00de1d806886b, 0x4a0d412f0084a896], [ 0x0], [0x2e444315704cf22f, 0x7a57ba3ab965a370])
+ self.div([0x8bd60e0dd55e7dbf, 0xbe4fc9b7b3a85dd7], [0xae8839e4a1362130, 0xcb79fed229f957f2], [ 0x0], [0x8bd60e0dd55e7dbf, 0xbe4fc9b7b3a85dd7])
+ self.div([0x10e2b9acb957db7d, 0x2adaeb7d235e17fb], [ 0x3a3ae5dbcb6b9e6, 0x6c420335594a6454], [ 0x4], [ 0x2540035c67cf3e3, 0x79d2dea7be3486ab])
+ self.div([0x8583cdc23810c7ad, 0x67cb8588389eca60], [0xe51eb85ae817fd29, 0xe12b7b9a5714dd63], [ 0x0], [0x8583cdc23810c7ad, 0x67cb8588389eca60])
+ self.div([0x7597951cbe184ec4, 0x3c3328ba252ed055], [0x1121d72f7ed30f03, 0xa5b1788baa933826], [ 0x6], [ 0xecc89ffc525f4ae, 0x5a0a557425bb7f71])
+ self.div([0xd28e10914944ac2d, 0xbc8c59fa811365d2], [0xd844eb40fa7432da, 0xdf00f872a1688dd], [ 0x0], [0xd28e10914944ac2d, 0xbc8c59fa811365d2])
+ self.div([0xfa782bbdf152f546, 0x95cc2848c4d2e15], [0xe8ecfce82dd230b9, 0x84014dc8a50bc743], [ 0x1], [0x118b2ed5c380c48c, 0x855b74bbe74166d2])
+ self.div([0x293f159b71a16c13, 0xdac735a0332e0ea7], [0x5ace6cab4ef426ea, 0xf65ae73a30772593], [ 0x0], [0x293f159b71a16c13, 0xdac735a0332e0ea7])
+ self.div([0x7da70c373f368c4a, 0xd0b3f92b2e20c38b], [0xeb619b33f4d3e06d, 0x5c22a188ba50078], [ 0x0], [0x7da70c373f368c4a, 0xd0b3f92b2e20c38b])
+ self.div([0x5197e7b9b254673f, 0x16f1b0be42334511], [0x86d39f5cf76be496, 0x4d8e5505ca8351bb], [ 0x0], [0x5197e7b9b254673f, 0x16f1b0be42334511])
+ self.div([0x156e5b9ec3cfd9e9, 0x8c5b28f32681a8ff], [0xcc7aed7a5e6a7db4, 0xbc3dea6b6f853df4], [ 0x0], [0x156e5b9ec3cfd9e9, 0x8c5b28f32681a8ff])
+ self.div([0xa8ee30dc1292d1ac, 0x24a09e80c94b1e59], [0xcd2e65c6d747f507, 0x2c72d13e86cc2221], [ 0x0], [0xa8ee30dc1292d1ac, 0x24a09e80c94b1e59])
+ self.div([0x426011199c5df4cf, 0x7947d0555e3dade2], [0xbd970e365962b320, 0x7b939071aa729326], [ 0x0], [0x426011199c5df4cf, 0x7947d0555e3dade2])
+ self.div([0x60c417d7be4ee1f8, 0xb23722357b57049b], [0x996ae48898baa9d5, 0x18fd178a786376c8], [ 0x0], [0x60c417d7be4ee1f8, 0xb23722357b57049b])
+ self.div([0x3aafc724ae4974dd, 0x9a015490ad45421a], [0x865162aeb3a5ad28, 0x44bbdac7ea51f563], [ 0x0], [0x3aafc724ae4974dd, 0x9a015490ad45421a])
+ self.div([0x4c8b75dba8a81f2c, 0x4c6cecf628eaf02d], [0x220ac23236bfaa88, 0x74a5d3637dd24c31], [ 0x2], [ 0x875f1773b28ca1b, 0x6321462f2d4657cb])
+ self.div([0x5fb4781ab4b0fed5, 0xf3161996cbd7afbe], [0x252d390d72bd9e53, 0x5ad50db587878801], [ 0x2], [0x155a05ffcf35c22f, 0x3d6bfe2bbcc89fbc])
+ self.div([ 0xdbb5a3a03939409, 0x91d786ca20c8b8b2], [0xd30afcec12312005, 0x92bdb52e932b9ba1], [ 0x0], [ 0xdbb5a3a03939409, 0x91d786ca20c8b8b2])
+ self.div([0x5781431f74445c9a, 0x509044d282248792], [0x98f906ce3626fc42, 0x6d0dcce275334da1], [ 0x0], [0x5781431f74445c9a, 0x509044d282248792])
+ self.div([0xb447a3bf53d75561, 0xe806aaf37ce2398f], [0xeb8844eaeb4cb416, 0xecfe88fc920e70dd], [ 0x0], [0xb447a3bf53d75561, 0xe806aaf37ce2398f])
+ self.div([0x4c97e3fda188863a, 0x928da9f6f4473e88], [0x628afa772102379d, 0x94f59a87b0801c1e], [ 0x0], [0x4c97e3fda188863a, 0x928da9f6f4473e88])
+ self.div([0x9ad20a6c9177f978, 0x9302e129be3dfe89], [ 0xc998e09418f87b2, 0x4c077379718c9bb3], [ 0xc], [ 0x39f61fd7ebd9d1d, 0x2a977786ba6b225])
+ self.div([0x6c70c4666d731a6f, 0xd85ba4dacbb4c4a4], [0x212ef6ed02b37ad5, 0x7303d92eabe211ea], [ 0x3], [ 0x8e3df9f6558a9ef, 0x7f50194ec80e8ee6])
+ self.div([0x23127ef9327ed451, 0x5ffe91a808951c8b], [0x97e46b77f9594e9d, 0x8530bd3fe72287e1], [ 0x0], [0x23127ef9327ed451, 0x5ffe91a808951c8b])
+ self.div([0x524a2e171e44352e, 0x7de5b3ea2ab3ac5a], [0x44ab6e9244c9e943, 0xd41fbb88cfb43266], [ 0x1], [ 0xd9ebf84d97a4bea, 0xa9c5f8615aff79f4])
+ self.div([0x6a392364f06b8e5a, 0x62dae2ef7ea1d12a], [0xa82f29eb5e0d07ed, 0xea326976482e5f6], [ 0x0], [0x6a392364f06b8e5a, 0x62dae2ef7ea1d12a])
+ self.div([0x8b3fa51d2430fd95, 0x15b59430d1426232], [0x9a4ed852d8b3d661, 0xa32e848497a03036], [ 0x0], [0x8b3fa51d2430fd95, 0x15b59430d1426232])
+ self.div([0xd25e59cd75cc39af, 0x374243fdbf9168ce], [0xfca910b2bfdba957, 0x55f5b531219613d2], [ 0x0], [0xd25e59cd75cc39af, 0x374243fdbf9168ce])
+ self.div([0xcb88454f7dde9293, 0xc06fafff57e076de], [0x5fe7b1ad55dff729, 0xb352b5a0f558758e], [ 0x2], [ 0xbb8e1f4d21ea440, 0x59ca44bd6d2f8bc2])
+ self.div([0x25032e7704b898bf, 0x7bf76b2ecf2c9677], [0x2aa05922703fe0e5, 0x4959bc7d2abd18a6], [ 0x0], [0x25032e7704b898bf, 0x7bf76b2ecf2c9677])
+ }
+
+ private func div(
+ _ lhsWords: [Word],
+ _ rhsWords: [Word],
+ _ quotientWords: [Word],
+ _ remainderWords: [Word],
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let lhs = self.create(lhsWords)
+ let rhs = self.create(rhsWords)
+ let quotient = self.create(quotientWords)
+ let remainder = self.create(remainderWords)
+
+ let qr = lhs.quotientAndRemainder(dividingBy: rhs)
+ XCTAssertEqual(qr.quotient, quotient, "quotientAndRemainder.quotient", file: file, line: line)
+ XCTAssertEqual(qr.remainder, remainder, "quotientAndRemainder.remainder", file: file, line: line)
+
+ let q = lhs / rhs
+ XCTAssertEqual(q, quotient, "/", file: file, line: line)
+
+ let r = lhs % rhs
+ XCTAssertEqual(r, remainder, "%", file: file, line: line)
+ }
+
+ // MARK: - Create
+
+ private func create(_ words: [Word]) -> UInt128 {
+ switch words.count {
+ case 1: return UInt128(0, words[0])
+ case 2: return UInt128(words[0], words[1])
+ default: fatalError("Unknown UInt128 input: \(words)")
+ }
+ }
+}
diff --git a/Tests/DecimalTests/Generated/GeneratedUInt256Tests.swift b/Tests/DecimalTests/Generated/GeneratedUInt256Tests.swift
new file mode 100644
index 0000000..86e442a
--- /dev/null
+++ b/Tests/DecimalTests/Generated/GeneratedUInt256Tests.swift
@@ -0,0 +1,5137 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class GeneratedUInt256Tests: XCTestCase {
+
+ typealias Word = UInt256.Word
+
+ // MARK: - Add
+
+ func test_add_1_by_1() {
+ self.add([0x74e411f93fabf99d], [0xcf2e93a0b557eac7], false, [ 0x1, 0x4412a599f503e464])
+ self.add([0xab7165c0becb1888], [0x1465ecd73a287358], false, [0xbfd75297f8f38be0])
+ self.add([0xb313d7bf4024f27d], [0xdaed63161c03acf5], false, [ 0x1, 0x8e013ad55c289f72])
+ self.add([0x1b76b46c0a1ad05c], [0x780e0bfd193bbc56], false, [0x9384c06923568cb2])
+ self.add([0x73730007489fd680], [0x8fe221fe92d90aff], false, [ 0x1, 0x3552205db78e17f])
+ self.add([0x682cfc691f317f2e], [0x4c3c773efd95e036], false, [0xb46973a81cc75f64])
+ self.add([0x32d124f865cd2ac7], [0xd4c63d0611c6cc9b], false, [ 0x1, 0x79761fe7793f762])
+ self.add([0x78270e6ca7d75dcb], [0xa5e7096ed5a682f9], false, [ 0x1, 0x1e0e17db7d7de0c4])
+ self.add([0x97baf4e36160dbb9], [0x8ef65bbd265a4f22], false, [ 0x1, 0x26b150a087bb2adb])
+ self.add([0x1a90c84903a3d58d], [0x2f10a8bbc4406f8c], false, [0x49a17104c7e44519])
+ self.add([0x5ef07b94413cbe6b], [0x8a5a687ea76ce121], false, [0xe94ae412e8a99f8c])
+ self.add([0xf6cffd95c2e70a18], [0x1833a88faf3274ab], false, [ 0x1, 0xf03a62572197ec3])
+ self.add([0xd001a5939dc7cdde], [0x71402ed9215cb21f], false, [ 0x1, 0x4141d46cbf247ffd])
+ self.add([0x2bb6d1ff260e081c], [0x247837b219ce988b], false, [0x502f09b13fdca0a7])
+ self.add([0x571162f5a7480d84], [0x7d58378702385047], false, [0xd4699a7ca9805dcb])
+ self.add([0x13d0d70388dd2e8a], [0xd4c4478c4f9fb4eb], false, [0xe8951e8fd87ce375])
+ self.add([0xd19be9cd5667c6b0], [0xa45142dcdd888e0a], false, [ 0x1, 0x75ed2caa33f054ba])
+ self.add([0x87d43b0af6636f8e], [0x296577c4859a702d], false, [0xb139b2cf7bfddfbb])
+ self.add([0x73749cf548a3094c], [0x4274385925e5134b], false, [0xb5e8d54e6e881c97])
+ self.add([0x28091cf265f04cff], [0xcf2c1640298c858d], false, [0xf73533328f7cd28c])
+ self.add([0xfd86881c68d10ea1], [0x30e4786f408ce843], false, [ 0x1, 0x2e6b008ba95df6e4])
+ self.add([0x97b9752719165f55], [0xdc6852e78715de92], false, [ 0x1, 0x7421c80ea02c3de7])
+ self.add([0x8ee9b11734458e3c], [0x549b6e9730bd9cf7], false, [0xe3851fae65032b33])
+ self.add([0x7831c56db40e9614], [0x191832e8716b4e4b], false, [0x9149f8562579e45f])
+ self.add([0xaf492ad80acebc45], [0xd3b97cb9dc9f0676], false, [ 0x1, 0x8302a791e76dc2bb])
+ self.add([0x6657dc67f37b116b], [0xfff5a182df1ecbde], false, [ 0x1, 0x664d7dead299dd49])
+ self.add([0x358ca2700b1147ae], [0x4a4a26125fc4fe89], false, [0x7fd6c8826ad64637])
+ self.add([0x3e641776c12789d9], [0x8d954ae3f823ebb9], false, [0xcbf9625ab94b7592])
+ self.add([0xe1e1def2e8a3505d], [0xae1dc5aa60f353b2], false, [ 0x1, 0x8fffa49d4996a40f])
+ self.add([0xe9a790a560088b3b], [0x64bece1e6503cb43], false, [ 0x1, 0x4e665ec3c50c567e])
+ self.add([0x46bfbcc0579058f2], [0xc8829761c7980cbe], false, [ 0x1, 0xf4254221f2865b0])
+ self.add([0x9d834bf950acd72d], [0xb416be5c7c676c63], false, [ 0x1, 0x519a0a55cd144390])
+ self.add([0x3235de2b887b1179], [0xdbadb602f5c1d433], false, [ 0x1, 0xde3942e7e3ce5ac])
+ self.add([0x64bf07f6dd4c397a], [0x7a19a25c1e5476e0], false, [0xded8aa52fba0b05a])
+ self.add([0x1859fd33fb2b4f2d], [0xf1b6220f5d805b4c], false, [ 0x1, 0xa101f4358abaa79])
+ self.add([0x467d4200dcd22a78], [0x8ea3a42f4b31f296], false, [0xd520e63028041d0e])
+ self.add([0xd251cfc7d61f6ba1], [0x40e986d4d43264e3], false, [ 0x1, 0x133b569caa51d084])
+ self.add([ 0x3edf670cc7f055a], [0x486ed951f4978b30], false, [0x4c5ccfc2c116908a])
+ self.add([0x2908eb69c9209de2], [0xe7a51d5ed23fc9b8], false, [ 0x1, 0x10ae08c89b60679a])
+ self.add([0x915b06541cb7916c], [0x3205ca2b524f0d02], false, [0xc360d07f6f069e6e])
+ self.add([0x389717dd6041abd6], [0xf11ececdd2ec810d], false, [ 0x1, 0x29b5e6ab332e2ce3])
+ self.add([0xe8f25145f47b14ad], [0xc246870ef05a5a51], false, [ 0x1, 0xab38d854e4d56efe])
+ self.add([0x49a480624cfcc92a], [0xbc7944e71175f9d0], false, [ 0x1, 0x61dc5495e72c2fa])
+ self.add([ 0x2b1b618f7bd7171], [0xf67f7fdd0216e977], false, [0xf93135f5f9d45ae8])
+ self.add([0x53d425d5dd1f4bd0], [0xaea09abdd130a35e], false, [ 0x1, 0x274c093ae4fef2e])
+ self.add([0x6873b8bf09f7a23a], [0x6b215df02657ecf6], false, [0xd39516af304f8f30])
+ self.add([ 0xa9112c4a25151b6], [0xae03c2a3ec441e2b], false, [0xb894d5688e956fe1])
+ self.add([0xab074e62fe7621f0], [0x570edda99371f936], false, [ 0x1, 0x2162c0c91e81b26])
+ self.add([0x2ac5f612e2b24a8d], [0xa89f573bebeebaab], false, [0xd3654d4ecea10538])
+ self.add([0x5f2f0350b5a6e17d], [0xdc0661affa2541a5], false, [ 0x1, 0x3b356500afcc2322])
+ }
+
+ func test_add_1_by_2() {
+ self.add([0xa85ea3a84e605dde], [0x68decc483b48e9be, 0xfee5ca45cd4488cd], false, [0x68decc483b48e9bf, 0xa7446dee1ba4e6ab])
+ self.add([0x423f1f716a330ea6], [0xcfe0220f0f23b96e, 0x2d4a51e56fb8c097], false, [0xcfe0220f0f23b96e, 0x6f897156d9ebcf3d])
+ self.add([0xf9aedbcbdd2c3e20], [0x83fbefc491a48aad, 0x255a892e3a252d01], false, [0x83fbefc491a48aae, 0x1f0964fa17516b21])
+ self.add([0xa5b238b3db227ce1], [0xf8bdd4c4d69032d5, 0x9a5dee10d6e69363], false, [0xf8bdd4c4d69032d6, 0x401026c4b2091044])
+ self.add([0xbea70737b8479340], [0x6937f3402921f698, 0xe1922d0c54c45f65], false, [0x6937f3402921f699, 0xa03934440d0bf2a5])
+ self.add([0x3352e16b19965f73], [0x15fd4a6ae58d3e19, 0xafc259e9360d6f4d], false, [0x15fd4a6ae58d3e19, 0xe3153b544fa3cec0])
+ self.add([0x1ef2655edb87e724], [0x3e7a4bc8c2a00b48, 0xc83e5b9d2902bf17], false, [0x3e7a4bc8c2a00b48, 0xe730c0fc048aa63b])
+ self.add([0xcc093008c1a1a7c9], [0xab313792e64c2cba, 0x333951a379e3dce0], false, [0xab313792e64c2cba, 0xff4281ac3b8584a9])
+ self.add([0x3750769f13d77fbf], [0x3dbae10be147d1f2, 0xe862b59e407040c0], false, [0x3dbae10be147d1f3, 0x1fb32c3d5447c07f])
+ self.add([0x27696919069f470e], [0xf61e4c7d5c6baf74, 0x967f40166d0bdc4b], false, [0xf61e4c7d5c6baf74, 0xbde8a92f73ab2359])
+ self.add([0xe3a14598b5beda22], [0x5783cf6f68e2ab6b, 0xaf8f7cbfccb8d6aa], false, [0x5783cf6f68e2ab6c, 0x9330c2588277b0cc])
+ self.add([0xa13978a386078297], [0x2da892f3b97a4723, 0x1f3d5021557c73f9], false, [0x2da892f3b97a4723, 0xc076c8c4db83f690])
+ self.add([0xc633cfaaabe04259], [ 0xff6ebdb1f7dd24c, 0xbbf22d5c0ea7e91e], false, [ 0xff6ebdb1f7dd24d, 0x8225fd06ba882b77])
+ self.add([0xc80a4d7ef0be29f2], [0x37e892e7a0589fb3, 0xaec2353204c2a387], false, [0x37e892e7a0589fb4, 0x76cc82b0f580cd79])
+ self.add([0xc7267aa286cc1b3c], [0x3506d10325c4bac2, 0x450e88185f581356], false, [0x3506d10325c4bac3, 0xc3502bae6242e92])
+ self.add([0xe274d178948c8eb3], [0xd2bc6a6cdb676bae, 0x89cc6e50cf3281e7], false, [0xd2bc6a6cdb676baf, 0x6c413fc963bf109a])
+ self.add([ 0x29353835a956005], [ 0x7d5154a832b0cac, 0xa0556f522f58061f], false, [ 0x7d5154a832b0cac, 0xa2e8c2d589ed6624])
+ self.add([0xcd263219540f77a6], [0x2b0dea386d48d15b, 0x13b4a230905dcfd3], false, [0x2b0dea386d48d15b, 0xe0dad449e46d4779])
+ self.add([0xad8aafb8134c84b1], [0x66e96d089879d54a, 0x2a2f4df1729e468b], false, [0x66e96d089879d54a, 0xd7b9fda985eacb3c])
+ self.add([0x7fb2a100485fa146], [0x722e56f893cc555a, 0xf79f020a951d394a], false, [0x722e56f893cc555b, 0x7751a30add7cda90])
+ self.add([ 0xde44b9742da3c15], [0x95ae17ca94774bba, 0x648a0686b98da27b], false, [0x95ae17ca94774bba, 0x726e521dfc67de90])
+ self.add([0xc6f56115f8dce097], [0x2dfec1b01e6150b6, 0x809bf591f00712a7], false, [0x2dfec1b01e6150b7, 0x479156a7e8e3f33e])
+ self.add([0x3ebcf0a4640517ca], [0xa9fda8fd9d0d3f34, 0x42dd1db961deea6e], false, [0xa9fda8fd9d0d3f34, 0x819a0e5dc5e40238])
+ self.add([0x7e5460c41e432109], [0x7f64794399e46c74, 0xd304fd6072db2ea6], false, [0x7f64794399e46c75, 0x51595e24911e4faf])
+ self.add([ 0x9c6a87b93b09b7f], [0xc220429c5687b574, 0x90ea09f1e72fb440], false, [0xc220429c5687b574, 0x9ab0b26d7ae04fbf])
+ self.add([0xdeebeada9ff36823], [0x58db6580d0d185e5, 0xe6aeeebb71077b7f], false, [0x58db6580d0d185e6, 0xc59ad99610fae3a2])
+ self.add([0x3d45da7a375c1cf8], [0x139fa73939333028, 0x7b6597b505d9260], false, [0x139fa73939333028, 0x44fc33f587b9af58])
+ self.add([0x16df1fccdbb97537], [0x312f2dc0e9c50e47, 0x2f19e2605ff90eae], false, [0x312f2dc0e9c50e47, 0x45f9022d3bb283e5])
+ self.add([ 0xc0d2d9a8b03a5bb], [0x2e74a9b2e8e5e348, 0x27420fc07eb598c8], false, [0x2e74a9b2e8e5e348, 0x334f3d5b09b93e83])
+ self.add([0x9852108158356c25], [0xe62527912fd7f6f6, 0xd39b5676aa0773a5], false, [0xe62527912fd7f6f7, 0x6bed66f8023cdfca])
+ self.add([0x7d0003da76e0d5fa], [0x322e91bb0756646d, 0x95a95b3daeff23c7], false, [0x322e91bb0756646e, 0x12a95f1825dff9c1])
+ self.add([0x2bfba971f3fdfeef], [0x25f24863dc6a56fc, 0xc9478da58db026e4], false, [0x25f24863dc6a56fc, 0xf543371781ae25d3])
+ self.add([0xc6ddec192317b92e], [0x6a113e31c333833a, 0xdedb08a7654209f1], false, [0x6a113e31c333833b, 0xa5b8f4c08859c31f])
+ self.add([0xfe0befff240e7507], [0xa42a8e0e5b4376ab, 0x40f0065a66fa8336], false, [0xa42a8e0e5b4376ac, 0x3efbf6598b08f83d])
+ self.add([ 0x294855ea26f8b5c], [0xa008d78a85beef15, 0xd13b9dff276f7418], false, [0xa008d78a85beef15, 0xd3d0235dc9deff74])
+ self.add([0xd39089efbeee2719], [0xa7c124133a62eb43, 0x86d85d8ae969ebb1], false, [0xa7c124133a62eb44, 0x5a68e77aa85812ca])
+ self.add([0x40dcc047a95f9657], [0xa5e1446f3143882b, 0x729c7e6c9e991b34], false, [0xa5e1446f3143882b, 0xb3793eb447f8b18b])
+ self.add([0xf693287e15794e89], [0x470d6a2f2ee85497, 0x3434427598555610], false, [0x470d6a2f2ee85498, 0x2ac76af3adcea499])
+ self.add([0x66ca20b1db3d867a], [0x6e057827fbd1cb8e, 0xdd4ecbbd76c286c3], false, [0x6e057827fbd1cb8f, 0x4418ec6f52000d3d])
+ self.add([0xa9b9ffacb81ffd7d], [0xb00fe8504513f876, 0xab636915bacccab9], false, [0xb00fe8504513f877, 0x551d68c272ecc836])
+ self.add([0x7b6ce0eda79722a9], [0xb52e8fd5c08e0da0, 0x53fed2431ef70d9f], false, [0xb52e8fd5c08e0da0, 0xcf6bb330c68e3048])
+ self.add([0x6e7b115d73a93d8e], [0xf07968c6b94527bf, 0x56dfb065e949aeb6], false, [0xf07968c6b94527bf, 0xc55ac1c35cf2ec44])
+ self.add([0xba189913efbb6db7], [0xe03d77ded91ec1d7, 0xd0e87b088729c4c9], false, [0xe03d77ded91ec1d8, 0x8b01141c76e53280])
+ self.add([0xcb0d8048530e7296], [0x724d006c68ad133e, 0x3317e97fda893f6b], false, [0x724d006c68ad133e, 0xfe2569c82d97b201])
+ self.add([0x4e542a484419d91b], [ 0x64bcb3db6faa1a1, 0xeab4999ee220a949], false, [ 0x64bcb3db6faa1a2, 0x3908c3e7263a8264])
+ self.add([0xe6a0e105ebc22e20], [0xd7c646bb39ac0260, 0x27932f02e731da53], false, [0xd7c646bb39ac0261, 0xe341008d2f40873])
+ self.add([0x1bc6ebb232d34c2d], [0x71fb9be563a15472, 0x134d885d5c32dac], false, [0x71fb9be563a15472, 0x1cfbc438089679d9])
+ self.add([0xa6931bee9ca5cd86], [0xa8a8a41a1d423d98, 0x97d87548fde4a22e], false, [0xa8a8a41a1d423d99, 0x3e6b91379a8a6fb4])
+ self.add([0x98eaa2779c884311], [0xd65d4c5a71d8f2cf, 0x48a054a27b213359], false, [0xd65d4c5a71d8f2cf, 0xe18af71a17a9766a])
+ self.add([0x3dc5d5d4f8d8f60d], [0x7511d7bdfdb80f0c, 0x48bde37a8c7aea3d], false, [0x7511d7bdfdb80f0c, 0x8683b94f8553e04a])
+ }
+
+ func test_add_1_by_3() {
+ self.add([0x73a1bae21e1f3ddd], [ 0x9fc11194b8cfa34, 0xdc6b282da9bad02b, 0x4306addd0ef4e505], false, [ 0x9fc11194b8cfa34, 0xdc6b282da9bad02b, 0xb6a868bf2d1422e2])
+ self.add([0xdbb66fad0d6f3730], [ 0xe7318d34d65f822, 0x767ecc7e59ea0a6f, 0x1c931f46901f2fde], false, [ 0xe7318d34d65f822, 0x767ecc7e59ea0a6f, 0xf8498ef39d8e670e])
+ self.add([0x1e0f9cd0cd4350a8], [0x734679ef7356e98c, 0x6027e3c9cd53d088, 0xf37889e3c18294e1], false, [0x734679ef7356e98c, 0x6027e3c9cd53d089, 0x118826b48ec5e589])
+ self.add([0xc5837348878f4429], [0x6a9b73b60852ce60, 0xf61f5698223507f2, 0x8073a73e1c622444], false, [0x6a9b73b60852ce60, 0xf61f5698223507f3, 0x45f71a86a3f1686d])
+ self.add([0xf2ec0ed661a2a028], [0x7985186fa883bc32, 0x9d6335ddf287548b, 0xb0687d7ebfa206ac], false, [0x7985186fa883bc32, 0x9d6335ddf287548c, 0xa3548c552144a6d4])
+ self.add([0xe54967a2ecdc9045], [0x6fca87bce86883a7, 0xd853ec4ed3e158a6, 0x4a5f00f4c3c76c95], false, [0x6fca87bce86883a7, 0xd853ec4ed3e158a7, 0x2fa86897b0a3fcda])
+ self.add([ 0x47c2c006e1e3b50], [0x6784468828829150, 0xc17f8a80bb56648d, 0x5e5aed6dad7f492], false, [0x6784468828829150, 0xc17f8a80bb56648d, 0xa61dad748f62fe2])
+ self.add([0xf7f81a7ef5074ced], [0xbf904f56fa3473a7, 0x5578533e403ceb4, 0x281cf00fe22b06ca], false, [0xbf904f56fa3473a7, 0x5578533e403ceb5, 0x20150a8ed73253b7])
+ self.add([0x590a229558e559ce], [0xd42a5ba0939cef74, 0x801ef59da4e1b59b, 0x951691e2d1a58653], false, [0xd42a5ba0939cef74, 0x801ef59da4e1b59b, 0xee20b4782a8ae021])
+ self.add([0x55189d008d6f8b60], [0x4c1ce2e4e105bda0, 0x8d1522bab62deeb9, 0x90df9107f73c0d6f], false, [0x4c1ce2e4e105bda0, 0x8d1522bab62deeb9, 0xe5f82e0884ab98cf])
+ self.add([0xf9ecb776773393f9], [0x2087c77fecdef087, 0x621e9ef14502ce84, 0x81e24d2fa1a5ba6a], false, [0x2087c77fecdef087, 0x621e9ef14502ce85, 0x7bcf04a618d94e63])
+ self.add([0x6537bfc7420a20fc], [0xc4183642f5829cac, 0xe29f9503876d79b8, 0xc393b3e0b426399], false, [0xc4183642f5829cac, 0xe29f9503876d79b8, 0x7170fb054d4c8495])
+ self.add([0xe3d89db45a4a3855], [0xf553bb9f8244d0e3, 0x3a1a97c209e40737, 0x70b4e2c139520c2b], false, [0xf553bb9f8244d0e3, 0x3a1a97c209e40738, 0x548d8075939c4480])
+ self.add([0x328b632c882c2590], [0x5beff182e82dd2e7, 0x4b40ddb0eac9ef8e, 0xffcf3d161bc9ab85], false, [0x5beff182e82dd2e7, 0x4b40ddb0eac9ef8f, 0x325aa042a3f5d115])
+ self.add([0x82638343f2ddc31c], [0x3b35261df6525860, 0x534ec18d6cb22706, 0x148226cca155ec32], false, [0x3b35261df6525860, 0x534ec18d6cb22706, 0x96e5aa109433af4e])
+ self.add([0x7dfe3eb37161eac3], [0xf8dffdf3f90cba7f, 0x46be21d2bc541bdc, 0x7ed7851ce25f72b8], false, [0xf8dffdf3f90cba7f, 0x46be21d2bc541bdc, 0xfcd5c3d053c15d7b])
+ self.add([0x58360529c6506c49], [ 0x3dba91ffb91a5eb, 0xcb1f8081ba698b59, 0x97254a2e103ed523], false, [ 0x3dba91ffb91a5eb, 0xcb1f8081ba698b59, 0xef5b4f57d68f416c])
+ self.add([0x8233c5061da7f748], [0xa9764688a4be077e, 0xdbb465d56ad03e3f, 0xe5c806fcd2ed12a2], false, [0xa9764688a4be077e, 0xdbb465d56ad03e40, 0x67fbcc02f09509ea])
+ self.add([0x3326e178c177deb4], [0x2e6e3f7f13869e01, 0x6795d6b895bf5d5d, 0x5d97e189430065d0], false, [0x2e6e3f7f13869e01, 0x6795d6b895bf5d5d, 0x90bec30204784484])
+ self.add([0xa4fc501e4aadda63], [0x4c186777a11424f5, 0x611f09e47bd48e62, 0x716b9199dd788cc1], false, [0x4c186777a11424f5, 0x611f09e47bd48e63, 0x1667e1b828266724])
+ self.add([0x5e477f87f4051387], [0x2fc1e473c6d714bf, 0x770fdf629b5ccd0, 0xafc1a62bd53301f4], false, [0x2fc1e473c6d714bf, 0x770fdf629b5ccd1, 0xe0925b3c938157b])
+ self.add([ 0x9f53df97f85d773], [0xa460aceb0e347213, 0xdf26fb9d5ce04c97, 0x6316b925af9f6285], false, [0xa460aceb0e347213, 0xdf26fb9d5ce04c97, 0x6d0bf71f2f2539f8])
+ self.add([ 0x1c9f9396fe5ca6f], [0xc1f3302cc92c227f, 0x8fa34d49eceea61f, 0x418e821059bacfb4], false, [0xc1f3302cc92c227f, 0x8fa34d49eceea61f, 0x43587b49c9a09a23])
+ self.add([0xd2a804af7b04eca8], [0xe4f039b1ff134bc3, 0x452e676a7b7988ed, 0xd4c6f0fc4e2ad658], false, [0xe4f039b1ff134bc3, 0x452e676a7b7988ee, 0xa76ef5abc92fc300])
+ self.add([0xd0f10ee3df1b07e2], [0xfeeb6039901c9a5b, 0x67eab01be36e5d1, 0x9fc868f2b7987b86], false, [0xfeeb6039901c9a5b, 0x67eab01be36e5d2, 0x70b977d696b38368])
+ self.add([0x47f968e7a656ef8e], [0xed32a157b63b5610, 0x87bee0b0eed22daa, 0x9722e1f7df39753c], false, [0xed32a157b63b5610, 0x87bee0b0eed22daa, 0xdf1c4adf859064ca])
+ self.add([0xbd828d32a1d935ea], [0xe2bafba2fab2e0b5, 0xfc8f371fcb190fc3, 0xd1c223904d845275], false, [0xe2bafba2fab2e0b5, 0xfc8f371fcb190fc4, 0x8f44b0c2ef5d885f])
+ self.add([0xf7e9029ae2fbd25b], [0x87a6452c79865ddd, 0x593b3dc95b1efcb9, 0xa5ee60598886bbbc], false, [0x87a6452c79865ddd, 0x593b3dc95b1efcba, 0x9dd762f46b828e17])
+ self.add([0x41d28b9e80bd28b3], [0x38f2f1d3859d0211, 0xb8cd2b9c87b0bce1, 0x426c188b20e0ee4b], false, [0x38f2f1d3859d0211, 0xb8cd2b9c87b0bce1, 0x843ea429a19e16fe])
+ self.add([0xbde6093a1adbcca6], [ 0x84ab7e4c67dbe47, 0x5839bfe03ba564f9, 0xf496d3052f9c97b9], false, [ 0x84ab7e4c67dbe47, 0x5839bfe03ba564fa, 0xb27cdc3f4a78645f])
+ self.add([0x192710dfb803dd7a], [0x2f32c4e21fdfe7d0, 0x97c2491322c4e220, 0x3e36f91ad94e849b], false, [0x2f32c4e21fdfe7d0, 0x97c2491322c4e220, 0x575e09fa91526215])
+ self.add([0x3f771daacad44dda], [0xc238400840bf6c71, 0x75d40091e5d944d3, 0x181c87ebf09d2992], false, [0xc238400840bf6c71, 0x75d40091e5d944d3, 0x5793a596bb71776c])
+ self.add([0x5774ed407928867d], [0x7ce0af35299013fb, 0xc801aefd020e50d4, 0xd81b9543a44c5a55], false, [0x7ce0af35299013fb, 0xc801aefd020e50d5, 0x2f9082841d74e0d2])
+ self.add([0x9014cf382a3f1b2e], [0x2f973ee4a612d932, 0xdd05c567fcfca1cf, 0xe04403e8115ea6b5], false, [0x2f973ee4a612d932, 0xdd05c567fcfca1d0, 0x7058d3203b9dc1e3])
+ self.add([0xb7e01895135bac16], [0xd1c6aeec5e96c37e, 0x6f8645d23d16100, 0xb0d480c4f708ca12], false, [0xd1c6aeec5e96c37e, 0x6f8645d23d16101, 0x68b4995a0a647628])
+ self.add([0xd5cce1818ee8cce9], [0x18a2c999c85a76c3, 0x8497884875c9fe34, 0x6f622c1394766259], false, [0x18a2c999c85a76c3, 0x8497884875c9fe35, 0x452f0d95235f2f42])
+ self.add([0xc88de10aa7e4cac4], [0xc85d239b53abb96a, 0xc093f2f6cfd5275b, 0x6f0366e797465e47], false, [0xc85d239b53abb96a, 0xc093f2f6cfd5275c, 0x379147f23f2b290b])
+ self.add([0x7857d4d2a994ef39], [0x1e825861f5293964, 0xea1092de3e1da49e, 0xb9f69562f70f4ece], false, [0x1e825861f5293964, 0xea1092de3e1da49f, 0x324e6a35a0a43e07])
+ self.add([0xc4ad793347a9fedf], [0xee7e9c118843ce6a, 0x47a33e3a5311ee39, 0xd4f0badcc2882bd3], false, [0xee7e9c118843ce6a, 0x47a33e3a5311ee3a, 0x999e34100a322ab2])
+ self.add([0xb7cc5d103968e696], [0x2e8d0f68200a4129, 0x3b24c0079f617df, 0x6c0e5239dbf6c0fa], false, [0x2e8d0f68200a4129, 0x3b24c0079f617e0, 0x23daaf4a155fa790])
+ self.add([0x3a6cc69e5c9c0e4e], [0x1b0c76f9a1861fce, 0x7ab6726e6549f66, 0x8e02cc06daa98c98], false, [0x1b0c76f9a1861fce, 0x7ab6726e6549f66, 0xc86f92a537459ae6])
+ self.add([0xc7d811ffb4db9f29], [0x1dcb519070ebb233, 0x5fac263e055fcc6e, 0xd1eefd21f975cddd], false, [0x1dcb519070ebb233, 0x5fac263e055fcc6f, 0x99c70f21ae516d06])
+ self.add([0xd0c8fc3d509a7c59], [0x1ae97c84c5466223, 0xe8474d4aafd0496, 0x667d11ce22057d12], false, [0x1ae97c84c5466223, 0xe8474d4aafd0497, 0x37460e0b729ff96b])
+ self.add([0x20bb3adfab9e718f], [0x38a22489ab0108ab, 0xcd1697973b4471e0, 0x9fb45e21a0962632], false, [0x38a22489ab0108ab, 0xcd1697973b4471e0, 0xc06f99014c3497c1])
+ self.add([0x496ccf698780fc71], [0xd2aeaa82c6d39445, 0x9aae084d17c0f228, 0xb2a804d22a95d369], false, [0xd2aeaa82c6d39445, 0x9aae084d17c0f228, 0xfc14d43bb216cfda])
+ self.add([0x4b926321c166526d], [0x45d1084216fffbf3, 0x4782b788d04f694c, 0x83dffe770564ac7], false, [0x45d1084216fffbf3, 0x4782b788d04f694c, 0x53d0630931bc9d34])
+ self.add([0x97a8b1a1ebdb9a7c], [0x6c7d495708045053, 0x20ccbfc60a741864, 0xf0f91167f8a6a8c], false, [0x6c7d495708045053, 0x20ccbfc60a741864, 0xa6b842b86b660508])
+ self.add([0x3b966b399ff09b04], [0x1f535065e74f1c21, 0x2e97a600c3546b94, 0xdf5b2b843f8e15ad], false, [0x1f535065e74f1c21, 0x2e97a600c3546b95, 0x1af196bddf7eb0b1])
+ self.add([ 0x5ff2c3bbb30241a], [0x9ace6fc83415fa15, 0x812cf8bbff76d197, 0x7eeb79551ec0b344], false, [0x9ace6fc83415fa15, 0x812cf8bbff76d197, 0x84eaa590d9f0d75e])
+ self.add([0x41c9c2089b8cdfeb], [0xa05b9b1f8c10aab5, 0x62e4e9e1feeb3818, 0x3d8de71ecb7bb158], false, [0xa05b9b1f8c10aab5, 0x62e4e9e1feeb3818, 0x7f57a92767089143])
+ }
+
+ func test_add_1_by_4() {
+ self.add([0x680f05de5890c6ee], [0x454f4645910b24fd, 0xb117039b4ca0c3a2, 0x8ea2b6f9c07f7917, 0x40555c7376658a4d], false, [0x454f4645910b24fd, 0xb117039b4ca0c3a2, 0x8ea2b6f9c07f7917, 0xa8646251cef6513b])
+ self.add([0x75b9da4104ff5ebb], [0x376e4558ad5b6a1c, 0x225f96359e43b76b, 0xeb620f2cfe7eb45c, 0xd29819c5435283e6], false, [0x376e4558ad5b6a1c, 0x225f96359e43b76b, 0xeb620f2cfe7eb45d, 0x4851f4064851e2a1])
+ self.add([0xd729e034fa50736c], [0xceb4e9c1985bce0e, 0x862747b7a7ec475d, 0x57e038d68c08f94, 0xac022f3f171d8039], false, [0xceb4e9c1985bce0e, 0x862747b7a7ec475d, 0x57e038d68c08f95, 0x832c0f74116df3a5])
+ self.add([0x3894efa8c5e0521a], [0xd3c47499752790b9, 0x7df5ccfab6e243cf, 0x2d710669aa00d072, 0x4e7231b035e5921], false, [0xd3c47499752790b9, 0x7df5ccfab6e243cf, 0x2d710669aa00d072, 0x3d7c12c3c93eab3b])
+ self.add([0x26b16ffd083e07c1], [0x7c647972df3a7048, 0x1764e216f0492235, 0xc0757dd1e55dd5a5, 0xfddac779a0a09faf], false, [0x7c647972df3a7048, 0x1764e216f0492235, 0xc0757dd1e55dd5a6, 0x248c3776a8dea770])
+ self.add([0x193241139b470acb], [0x82ea14f1888d5710, 0x39828bcdcda3d077, 0x297a62b9a235ea34, 0x9dd15e3d400527a1], false, [0x82ea14f1888d5710, 0x39828bcdcda3d077, 0x297a62b9a235ea34, 0xb7039f50db4c326c])
+ self.add([0x45984bca68bf3682], [0x52c840ddbfd34610, 0xb5a4f52c025914ce, 0xc0fe46dc921bb5d6, 0x53b1fe1b5d37e10c], false, [0x52c840ddbfd34610, 0xb5a4f52c025914ce, 0xc0fe46dc921bb5d6, 0x994a49e5c5f7178e])
+ self.add([ 0xb69e23861afc2ba], [0x52071fbc2a8bc9c5, 0x437045c9db76daec, 0x1959da7caf6611e6, 0x5bfc529b2c57ba26], false, [0x52071fbc2a8bc9c5, 0x437045c9db76daec, 0x1959da7caf6611e6, 0x676634d38e077ce0])
+ self.add([0x997d8a1d1968f636], [0x653438d178099c52, 0xee2bf9fe8d543ec2, 0x169d61335fb8d271, 0x95acc023078b797d], false, [0x653438d178099c52, 0xee2bf9fe8d543ec2, 0x169d61335fb8d272, 0x2f2a4a4020f46fb3])
+ self.add([0xf1934ab346e4cef4], [0x97651745894d6c65, 0xf968a4ea5405bcc2, 0x4dd9b41d586b3b35, 0x693b8d5a7c7d7390], false, [0x97651745894d6c65, 0xf968a4ea5405bcc2, 0x4dd9b41d586b3b36, 0x5aced80dc3624284])
+ self.add([0xaedc6f9e5e0a170f], [0x9c6163e335a39636, 0xc8bbee20f5f719cd, 0xbf32950cc8949b57, 0x16d91ddd137bce73], false, [0x9c6163e335a39636, 0xc8bbee20f5f719cd, 0xbf32950cc8949b57, 0xc5b58d7b7185e582])
+ self.add([0x81fe13b8664d9762], [0xe57c59a26078df20, 0xf355bbf7e05e9fee, 0x1c3a9d672f2c95b2, 0x16a914bfc7de713f], false, [0xe57c59a26078df20, 0xf355bbf7e05e9fee, 0x1c3a9d672f2c95b2, 0x98a728782e2c08a1])
+ self.add([0x9e61ba4873b71839], [0x77eef3c68357f2a1, 0x5367b0681eac939a, 0x7fd5d8fcf46028c9, 0xc1e275d9a11c1a1], false, [0x77eef3c68357f2a1, 0x5367b0681eac939a, 0x7fd5d8fcf46028c9, 0xaa7fe1a60dc8d9da])
+ self.add([0x7c43851eb02341e3], [0x91b93d59bafa355d, 0xe301987adb0430cd, 0x7f2c269e86ce169a, 0xf3e45ed9663b0b0f], false, [0x91b93d59bafa355d, 0xe301987adb0430cd, 0x7f2c269e86ce169b, 0x7027e3f8165e4cf2])
+ self.add([0xad7fb874e9ad5caf], [0x7377cf37528796ff, 0x5c198599b9ea631d, 0x6aace376719940fd, 0x87e455c5a012e2a3], false, [0x7377cf37528796ff, 0x5c198599b9ea631d, 0x6aace376719940fe, 0x35640e3a89c03f52])
+ self.add([ 0xaab61e3c0f89ee5], [0xfece61d329799bf4, 0x3210c929dccfc634, 0x644dee1277ce9956, 0xa77dcce67dd6e8ac], false, [0xfece61d329799bf4, 0x3210c929dccfc634, 0x644dee1277ce9956, 0xb2292eca3ecf8791])
+ self.add([0x1787ec61b5e4ebfc], [0x1158c8d3b6110942, 0x48b630abe03d29be, 0x42cae52beb51f72c, 0xf6e3222a80329f53], false, [0x1158c8d3b6110942, 0x48b630abe03d29be, 0x42cae52beb51f72d, 0xe6b0e8c36178b4f])
+ self.add([0x55d1d9b853bec0e4], [0x3767d9316f0e3755, 0xb92d79fa1b03b1d8, 0xc55b643403992bf8, 0xd25809cec25a65b], false, [0x3767d9316f0e3755, 0xb92d79fa1b03b1d8, 0xc55b643403992bf8, 0x62f75a553fe4673f])
+ self.add([0xaa9ce7e3a926ab74], [0xfe85a89f595c1f56, 0x177676d4e4fd70b2, 0x51ac93165318cbe8, 0x443adb81a53370c], false, [0xfe85a89f595c1f56, 0x177676d4e4fd70b2, 0x51ac93165318cbe8, 0xaee0959bc379e280])
+ self.add([0xa76ce10666e2ac8b], [0xb60322c454bbc316, 0xab339fee1a075d99, 0x83ac38f2afc60f5f, 0x985a9718c4310fb6], false, [0xb60322c454bbc316, 0xab339fee1a075d99, 0x83ac38f2afc60f60, 0x3fc7781f2b13bc41])
+ self.add([0xb1f1fdd74c8d55e2], [0x277432ba22c05711, 0x6a2a4ea4fb6dfd69, 0x4abae0b4afb5904c, 0xb637b1da559bee2a], false, [0x277432ba22c05711, 0x6a2a4ea4fb6dfd69, 0x4abae0b4afb5904d, 0x6829afb1a229440c])
+ self.add([0x6c7a769cd29cfe15], [0x10615fb1e82323a9, 0x20f0a9a10a773310, 0x90ed7b7700e22ad7, 0x250cff6a90fd3a08], false, [0x10615fb1e82323a9, 0x20f0a9a10a773310, 0x90ed7b7700e22ad7, 0x91877607639a381d])
+ self.add([0x8ec7777863f1ddb3], [0xd65c1060920ed850, 0x8aed3277ab7f39fc, 0x9a352c3348001caf, 0x59f70bc6ec83e56e], false, [0xd65c1060920ed850, 0x8aed3277ab7f39fc, 0x9a352c3348001caf, 0xe8be833f5075c321])
+ self.add([0x9a17a8d340839e5a], [0xfd703dddaeb1612c, 0x20e5d077436ce7a3, 0xcc82b2d4d577c847, 0x49c6746de047c7b3], false, [0xfd703dddaeb1612c, 0x20e5d077436ce7a3, 0xcc82b2d4d577c847, 0xe3de1d4120cb660d])
+ self.add([0x88fbebd83dd3f9ba], [ 0x2ee570d85c51e35, 0x3db7b8e7b7f10dc5, 0x3466b8bccdb9d91a, 0x304f428f89bf1f82], false, [ 0x2ee570d85c51e35, 0x3db7b8e7b7f10dc5, 0x3466b8bccdb9d91a, 0xb94b2e67c793193c])
+ self.add([0x59b068ed89b7c911], [0x555c152780a58ee9, 0x5c4b44822ddbc111, 0x56db217d03be2032, 0x57b80805be60d595], false, [0x555c152780a58ee9, 0x5c4b44822ddbc111, 0x56db217d03be2032, 0xb16870f348189ea6])
+ self.add([0x310d105a28f892f5], [0x8de25a290e27ab2a, 0x74970b37551ec0ba, 0xecdb26c121a3e95e, 0x9c57a8e24b7ac92e], false, [0x8de25a290e27ab2a, 0x74970b37551ec0ba, 0xecdb26c121a3e95e, 0xcd64b93c74735c23])
+ self.add([0xd29a3aeb66dd2f9a], [0x3c901c45a0eead67, 0x9d1385d0ffd00f7c, 0x4603076eac849582, 0xe15d129fd08c85b9], false, [0x3c901c45a0eead67, 0x9d1385d0ffd00f7c, 0x4603076eac849583, 0xb3f74d8b3769b553])
+ self.add([0x6ac9d5f1a49fef4b], [0x5dbd04ef77299e40, 0xaa1e36a99952a96b, 0x2720972cfb81047e, 0x9dfd7eb97cc80a03], false, [0x5dbd04ef77299e40, 0xaa1e36a99952a96b, 0x2720972cfb81047f, 0x8c754ab2167f94e])
+ self.add([0x5aad18faf749059d], [0x62a73900acbd20e7, 0x17454cf5384a7ae7, 0xfdcef7c04b6c2ced, 0x9188fddca129c1ba], false, [0x62a73900acbd20e7, 0x17454cf5384a7ae7, 0xfdcef7c04b6c2ced, 0xec3616d79872c757])
+ self.add([ 0xb2cab5753724050], [0xd3aeaa71ac360cc0, 0xe15a0a05b47e7890, 0x285b85166d484fec, 0x39a0c73bf87c72f3], false, [0xd3aeaa71ac360cc0, 0xe15a0a05b47e7890, 0x285b85166d484fec, 0x44cd72934beeb343])
+ self.add([0x5342f09d47106414], [0x8223836b5dcbc2ea, 0xa3301e6476c4a270, 0xccc1fe0754102762, 0xf0d29b49083f57de], false, [0x8223836b5dcbc2ea, 0xa3301e6476c4a270, 0xccc1fe0754102763, 0x44158be64f4fbbf2])
+ self.add([ 0x373e32959194131], [ 0x44bf9d73b6e57e4, 0x2b059a3f274e3c5e, 0x1f11511a0cea2388, 0xd544c1cb3ba7def2], false, [ 0x44bf9d73b6e57e4, 0x2b059a3f274e3c5e, 0x1f11511a0cea2388, 0xd8b8a4f494c12023])
+ self.add([0xc53aa38aa32ca509], [0x3bf1e17acf6d9c95, 0xfc862cde07d647ce, 0x8316056cd78101f9, 0x69acff82063b3e01], false, [0x3bf1e17acf6d9c95, 0xfc862cde07d647ce, 0x8316056cd78101fa, 0x2ee7a30ca967e30a])
+ self.add([ 0xc80c603f36cdf1e], [0x79a48dd67a0a7b95, 0x9881b038a63bf4c3, 0x2b82b588016e5e1e, 0x54b431130fabee5c], false, [0x79a48dd67a0a7b95, 0x9881b038a63bf4c3, 0x2b82b588016e5e1e, 0x6134f7170318cd7a])
+ self.add([0xff5d97f8676720a4], [0x6a906af8d9451441, 0x1d162ea2bf5e87e8, 0xf0dc7f961fbcddfa, 0x9562d0d627dd948c], false, [0x6a906af8d9451441, 0x1d162ea2bf5e87e8, 0xf0dc7f961fbcddfb, 0x94c068ce8f44b530])
+ self.add([0x9a2f437d987127fd], [0xffb9d40b626de5b0, 0xca277e83beaadbdc, 0xa03d8880edfa2649, 0xfe646aadbcae6754], false, [0xffb9d40b626de5b0, 0xca277e83beaadbdc, 0xa03d8880edfa264a, 0x9893ae2b551f8f51])
+ self.add([0xafef1d8c57899d66], [0xf32233c256a4306f, 0x4b80bd16e7c19e45, 0xe85582008efa16c0, 0xa05500afb04e5e5f], false, [0xf32233c256a4306f, 0x4b80bd16e7c19e45, 0xe85582008efa16c1, 0x50441e3c07d7fbc5])
+ self.add([0xbfd658e42bf6043f], [0x3611aa2cb0316609, 0xe29e3a78418dc8d1, 0xe4c580382e0b1ae3, 0x84ce5be955cd18ac], false, [0x3611aa2cb0316609, 0xe29e3a78418dc8d1, 0xe4c580382e0b1ae4, 0x44a4b4cd81c31ceb])
+ self.add([0xbeafa49dbb6ffed0], [0x8ee1490ca4332ff1, 0xd83112bc4df5eae0, 0xb80f95a0a0e7a84d, 0xad014baae07b6c29], false, [0x8ee1490ca4332ff1, 0xd83112bc4df5eae0, 0xb80f95a0a0e7a84e, 0x6bb0f0489beb6af9])
+ self.add([0x583819089d916c41], [0xb969e39e92594d8f, 0xee56a42c13af07c5, 0x4359d92cd3757796, 0x1c1967b1271bba8c], false, [0xb969e39e92594d8f, 0xee56a42c13af07c5, 0x4359d92cd3757796, 0x745180b9c4ad26cd])
+ self.add([0x7f6e90b00ae8883e], [0x8c54c12c7e5440c4, 0xe22214c25a31c96d, 0x2cce4f0bf376dfef, 0x7f32c237deef368a], false, [0x8c54c12c7e5440c4, 0xe22214c25a31c96d, 0x2cce4f0bf376dfef, 0xfea152e7e9d7bec8])
+ self.add([0xe108a1e145664456], [0xc163c81526d2e9dd, 0xebc01ebc996b8efe, 0x933c28a4f50eade, 0xee68233b3cecfe31], false, [0xc163c81526d2e9dd, 0xebc01ebc996b8efe, 0x933c28a4f50eadf, 0xcf70c51c82534287])
+ self.add([0xcac0fbbffbc1bf4c], [0x66a719c4bd6a9c3d, 0x2ee9a25823ba32dd, 0xae02f3e38b80a133, 0x19135261412e881a], false, [0x66a719c4bd6a9c3d, 0x2ee9a25823ba32dd, 0xae02f3e38b80a133, 0xe3d44e213cf04766])
+ self.add([0x34caa8bd2a6cae22], [0xf33aae9a060b5412, 0x1f7bab31636e4c93, 0x62e3ec526dbda48c, 0x982baef69690f9fd], false, [0xf33aae9a060b5412, 0x1f7bab31636e4c93, 0x62e3ec526dbda48c, 0xccf657b3c0fda81f])
+ self.add([0x96a7920d69b4bb20], [0xbda30283c1b12b8c, 0xed423f73e56c1a5f, 0x9825bb219355701d, 0x58c54cbe0374e3c3], false, [0xbda30283c1b12b8c, 0xed423f73e56c1a5f, 0x9825bb219355701d, 0xef6cdecb6d299ee3])
+ self.add([0xbfd10c6bb33bc586], [0xa796503accc91324, 0xfb8845c96f645638, 0x7ef87cc55b2a1291, 0x117f406e3214fb93], false, [0xa796503accc91324, 0xfb8845c96f645638, 0x7ef87cc55b2a1291, 0xd1504cd9e550c119])
+ self.add([0x14c8c272572cadb4], [0xcc72d404884e8eb8, 0x7376a85172809937, 0xd6d46eae6c867266, 0x8a9c0ff344344864], false, [0xcc72d404884e8eb8, 0x7376a85172809937, 0xd6d46eae6c867266, 0x9f64d2659b60f618])
+ self.add([0xdcb214750954aaf9], [0x9de5f846d4b586c9, 0x6d6872b3760ab757, 0xb58ef6838b46d94a, 0x18f1364a9925e83b], false, [0x9de5f846d4b586c9, 0x6d6872b3760ab757, 0xb58ef6838b46d94a, 0xf5a34abfa27a9334])
+ self.add([0x704c593d5e1899de], [0xf267498c1b85511e, 0xb10c8e455691848b, 0x631f5015c5c7e88, 0xb8f9759ba1be3ac], false, [0xf267498c1b85511e, 0xb10c8e455691848b, 0x631f5015c5c7e88, 0x7bdbf09718347d8a])
+ }
+
+ func test_add_2_by_1() {
+ self.add([0x7561ce13c7735e55, 0xa7bfcb1b68cdba22], [0x695aa5784c5bfeab], false, [0x7561ce13c7735e56, 0x111a7093b529b8cd])
+ self.add([0x250b15c272431f96, 0x923a961175970dd6], [0x40a9468e8ca8cca4], false, [0x250b15c272431f96, 0xd2e3dca0023fda7a])
+ self.add([0x84419611c2caf197, 0x28a90490bf1fa80f], [0x6294c8b1cb4259db], false, [0x84419611c2caf197, 0x8b3dcd428a6201ea])
+ self.add([0x58198cdc12e08809, 0xf6516f20a608ba08], [ 0x3a694571b0bfc0f], false, [0x58198cdc12e08809, 0xf9f80377c114b617])
+ self.add([0xa9ca01f9d86a3564, 0x7298391737100133], [0x5c054ca66988a27a], false, [0xa9ca01f9d86a3564, 0xce9d85bda098a3ad])
+ self.add([0x73133133f586ff6d, 0xbc4bea63c154de02], [0xcd6ed5af8db1ecdb], false, [0x73133133f586ff6e, 0x89bac0134f06cadd])
+ self.add([0xf64357330b3b2b04, 0x7a70fd524bfbc8dd], [0xb18d16380179e833], false, [0xf64357330b3b2b05, 0x2bfe138a4d75b110])
+ self.add([0x70c1574cdb798f89, 0xbcefd6c8960e6cc5], [0x9a9a377993801cad], false, [0x70c1574cdb798f8a, 0x578a0e42298e8972])
+ self.add([0x7a21c60e05f88861, 0x8fa1fa664d29f900], [ 0x4767d9fed541842], false, [0x7a21c60e05f88861, 0x941878063a7e1142])
+ self.add([0xb378a8dd38a202b4, 0x499c609ddec5662c], [0x2a103aab8590cb25], false, [0xb378a8dd38a202b4, 0x73ac9b4964563151])
+ self.add([0xa7e6f765924b17ef, 0x90ceefcc2148f906], [0xce35103ef86ea882], false, [0xa7e6f765924b17f0, 0x5f04000b19b7a188])
+ self.add([0xd4f7c1725b24d106, 0x2ed4e9db1ae72a7c], [0xd66d74c1d0785e94], false, [0xd4f7c1725b24d107, 0x5425e9ceb5f8910])
+ self.add([0xd1e05997f9fdc18e, 0xdcd044343a4654f4], [0xe8a4bc1e0e773db8], false, [0xd1e05997f9fdc18f, 0xc575005248bd92ac])
+ self.add([0x796ae279d7a17afd, 0x8d91fbd23430c60b], [0xe360dd8d41d9f600], false, [0x796ae279d7a17afe, 0x70f2d95f760abc0b])
+ self.add([0x1617c6b8588f0708, 0xf9359a7269e0290b], [0x22e447e361b9eaf6], false, [0x1617c6b8588f0709, 0x1c19e255cb9a1401])
+ self.add([0x2f6b68c74be21f05, 0xb72913bc289afd6a], [0x48edb64054c290fb], false, [0x2f6b68c74be21f06, 0x16c9fc7d5d8e65])
+ self.add([0xd73c267a494e925d, 0xbc4258dfbf5525b0], [0x1323b5c9903658d2], false, [0xd73c267a494e925d, 0xcf660ea94f8b7e82])
+ self.add([0x50ff3fdcd6c3aeb2, 0x31539289edba2679], [0x5b9ae9435923b437], false, [0x50ff3fdcd6c3aeb2, 0x8cee7bcd46dddab0])
+ self.add([0x704572518a800db0, 0x3cf87fbb1441485c], [0x776e8da3ebca08d8], false, [0x704572518a800db0, 0xb4670d5f000b5134])
+ self.add([0xc2814edcee71cef7, 0x7ceddfe7fd19f276], [0x5cfc3f3993fbbd28], false, [0xc2814edcee71cef7, 0xd9ea1f219115af9e])
+ self.add([0xcbe5f8f8220e2bbf, 0xaac5825bb7c27c33], [0x86bf963ac6701a28], false, [0xcbe5f8f8220e2bc0, 0x318518967e32965b])
+ self.add([0x1e1bdfade8141bc6, 0x7ed558c6720335d], [0xb5529e193699f864], false, [0x1e1bdfade8141bc6, 0xbd3ff3a59dba2bc1])
+ self.add([0xd0aa035b20a74baa, 0x66ad5f1cfe8a4fe2], [0xcdaeb5552459d1f0], false, [0xd0aa035b20a74bab, 0x345c147222e421d2])
+ self.add([0x2e8301102cc590ac, 0xfde0f458b8d96413], [0x848b42e3cb9e8967], false, [0x2e8301102cc590ad, 0x826c373c8477ed7a])
+ self.add([0x298ace5bb2a4f4f7, 0x887771f89f8538de], [0x7eb8d4d6a41dd608], false, [0x298ace5bb2a4f4f8, 0x73046cf43a30ee6])
+ self.add([0xa59e9e21ab0ea46e, 0xa41a52a8ac5b080d], [0x243d7df1ec0653c9], false, [0xa59e9e21ab0ea46e, 0xc857d09a98615bd6])
+ self.add([0xcff163a85d611bd2, 0xddc89d80ef3890d4], [0x2ea27d9b10c28b31], false, [0xcff163a85d611bd3, 0xc6b1b1bfffb1c05])
+ self.add([0x11c38af6346ebb3f, 0x53e58f8dad03e778], [0x83d627673b7c5732], false, [0x11c38af6346ebb3f, 0xd7bbb6f4e8803eaa])
+ self.add([0x663213a73eca6a22, 0x74468a5ede418897], [0x7af9ba1e9fd7a9e0], false, [0x663213a73eca6a22, 0xef40447d7e193277])
+ self.add([0x903cc4d850335159, 0x1ae1501c8e4211ca], [0xf4835053aa790fdf], false, [0x903cc4d85033515a, 0xf64a07038bb21a9])
+ self.add([0x729b91b1d0fac0d0, 0x22130f0d3bd3a268], [0x73b33ab477cbe32f], false, [0x729b91b1d0fac0d0, 0x95c649c1b39f8597])
+ self.add([0x673dd0b940c185db, 0xe73fde842da57df8], [0xf36720d5eac49439], false, [0x673dd0b940c185dc, 0xdaa6ff5a186a1231])
+ self.add([0x7d1d57dce08f0d4b, 0x60a66336fb372cc1], [0x44a6dd3adca9db2b], false, [0x7d1d57dce08f0d4b, 0xa54d4071d7e107ec])
+ self.add([0xd041e417fb8e468f, 0x10a753f269056e1e], [0x816335264a114f60], false, [0xd041e417fb8e468f, 0x920a8918b316bd7e])
+ self.add([0xaf114c31acd5ecf4, 0x4aacdba84e878184], [0x9b7a29eb1603ed9c], false, [0xaf114c31acd5ecf4, 0xe6270593648b6f20])
+ self.add([0x317b761ac571e8f6, 0xb88fb2471974f7e6], [0x8a0f31db972e65ed], false, [0x317b761ac571e8f7, 0x429ee422b0a35dd3])
+ self.add([0x59337ff88c68c693, 0x193c6cbabe6701db], [0x643d8ded751ef7dd], false, [0x59337ff88c68c693, 0x7d79faa83385f9b8])
+ self.add([0x974fdaf7e0cd2494, 0x2674151c05441123], [0x440f98b68669f31b], false, [0x974fdaf7e0cd2494, 0x6a83add28bae043e])
+ self.add([0xaa5aa1ff6b92c0bb, 0x89386b53dd9d5aa9], [0xb49e1291268c7636], false, [0xaa5aa1ff6b92c0bc, 0x3dd67de50429d0df])
+ self.add([0x7bfebdb791925b9d, 0x96188165d3c47a5a], [0x68fac517daa8c2c0], false, [0x7bfebdb791925b9d, 0xff13467dae6d3d1a])
+ self.add([0xcd6940a85c5fd77a, 0x2e1713dda00b83ae], [0x803192cb2703a3ee], false, [0xcd6940a85c5fd77a, 0xae48a6a8c70f279c])
+ self.add([0x8ef17b8e12bb907d, 0x2261550c857cf86a], [0x13f960f104f7aab1], false, [0x8ef17b8e12bb907d, 0x365ab5fd8a74a31b])
+ self.add([0xa6c7ed687688b965, 0xf2d5a4d188d49f17], [ 0x8a069be8fac6ad1], false, [0xa6c7ed687688b965, 0xfb760e90188109e8])
+ self.add([0x33428886ca9e9cbd, 0xd40cdf990cc843e6], [0x7d9a0bfa46ec5302], false, [0x33428886ca9e9cbe, 0x51a6eb9353b496e8])
+ self.add([0xd4b8fb69fe5330cb, 0x7cb291af118c882], [0x38f4faabcfa53899], false, [0xd4b8fb69fe5330cb, 0x40c023c6c0be011b])
+ self.add([0x11411e6b2faa8448, 0xe043c3e95286c6fc], [0x17667a648c2c67ca], false, [0x11411e6b2faa8448, 0xf7aa3e4ddeb32ec6])
+ self.add([0xc46219b2fbeb165a, 0x37bdf51aabc7eaf0], [ 0x8c2738efa370ee2], false, [0xc46219b2fbeb165a, 0x408068a9a5fef9d2])
+ self.add([0xc001274dc113df2f, 0x42da576ed0735e61], [0xbedf9fcbbc961b3f], false, [0xc001274dc113df30, 0x1b9f73a8d0979a0])
+ self.add([0x81ce32bb4ffa8d71, 0xc7c628bdb59225a6], [0xfeacf05f502d87ca], false, [0x81ce32bb4ffa8d72, 0xc673191d05bfad70])
+ self.add([0x59ceecf92595aa99, 0x417f7957314f13af], [0x10bdad737f34859c], false, [0x59ceecf92595aa99, 0x523d26cab083994b])
+ }
+
+ func test_add_2_by_2() {
+ self.add([0xfd944b6e297721b7, 0x6cff9c7b533f018e], [0x20e71189a7439225, 0xecf6df00bd1d1b40], false, [ 0x1, 0x1e7b5cf7d0bab3dd, 0x59f67b7c105c1cce])
+ self.add([0xa5a1bac0ed99b9d6, 0xe56765553ad76b8f], [0xd1e4e7494037ecb2, 0x943fd6861420366a], false, [ 0x1, 0x7786a20a2dd1a689, 0x79a73bdb4ef7a1f9])
+ self.add([0x628d216659b525df, 0xd0f004b2a8878235], [0x3b0c96e74ad9e718, 0xe3f9213ded3e704e], false, [0x9d99b84da48f0cf8, 0xb4e925f095c5f283])
+ self.add([ 0x774832a65e6c161, 0xb18d90cf91397576], [0x30604f3d6a4cb691, 0xffb1d9f269f2fc99], false, [0x37d4d267d03377f3, 0xb13f6ac1fb2c720f])
+ self.add([0xe113f27bc074940e, 0xfe3a69e78bf7fcb3], [0xa19ce3d370d23808, 0x65eb0aecfc53bf46], false, [ 0x1, 0x82b0d64f3146cc17, 0x642574d4884bbbf9])
+ self.add([0x99c2566357975b93, 0x29ffd134e0b01d64], [ 0x5a54f0cbaeb6951, 0xa12be73f41a89666], false, [0x9f67a5701282c4e4, 0xcb2bb8742258b3ca])
+ self.add([0xdfa1e3ac01530181, 0x71bcd6f6bdc34d81], [0x938c1ca3b90e414d, 0x404e722661d2412c], false, [ 0x1, 0x732e004fba6142ce, 0xb20b491d1f958ead])
+ self.add([0x2f7ec349302ab5dc, 0x4e222ef8eb62daf9], [0xc96d5121402dfe8b, 0x746cf8428b46cd65], false, [0xf8ec146a7058b467, 0xc28f273b76a9a85e])
+ self.add([0xeb7a210ba9067a84, 0xd19b61bd00179a87], [0x799ff518b33c4e0f, 0x6f5912567b77221], false, [ 0x1, 0x651a16245c42c893, 0xd890f2e267cf0ca8])
+ self.add([0xbfb097b8aa41ce21, 0x2d945fd6a43d0ad8], [0xe164d4ec00661f23, 0xd91d56bd0cd5dcb], false, [ 0x1, 0xa1156ca4aaa7ed44, 0x3b263542750a68a3])
+ self.add([0x1d18d8370957cbc7, 0x177304cfb833d426], [0xd0852cbd6b10b635, 0x782a43f9e663e798], false, [0xed9e04f4746881fc, 0x8f9d48c99e97bbbe])
+ self.add([0x25200d0c2530ccdc, 0x8c75780acc22d743], [ 0xbd29c12280874dc, 0x9b990abf2a627e3d], false, [0x30f2a91e4d3941b9, 0x280e82c9f6855580])
+ self.add([0x23eebb111d6d68b2, 0x5274f66bbec8903a], [0x8156679b87c3ea47, 0xa1680cee3698cdcd], false, [0xa54522aca53152f9, 0xf3dd0359f5615e07])
+ self.add([0x9fadcd850b4f7ee3, 0x9177ed7f710688ba], [0x70d95bd65cf5cbff, 0xbfaafa9b11f82ba3], false, [ 0x1, 0x1087295b68454ae3, 0x5122e81a82feb45d])
+ self.add([0xba76b89e064a1cbd, 0x12b202ef63b43fc], [0x9557319283d928a9, 0xec1f6f2c62d7839], false, [ 0x1, 0x4fcdea308a234566, 0xfed1721bc68bc35])
+ self.add([0xcccdaeb5ad424f88, 0x93b310e1c83e567], [0x97e1abaacea82173, 0x7650921e895bda7f], false, [ 0x1, 0x64af5a607bea70fb, 0x7f8bc32ca5dfbfe6])
+ self.add([0xc1efb343c63b332a, 0x6a673a154570aab3], [0xe4f56b0fc1ffbe0e, 0xa407a2b2758ddc40], false, [ 0x1, 0xa6e51e53883af139, 0xe6edcc7bafe86f3])
+ self.add([0x4df6b82c95756cc6, 0x7c3b95d669865706], [0xcd9ed7736254df98, 0x1656ac8d8665c37a], false, [ 0x1, 0x1b958f9ff7ca4c5e, 0x92924263efec1a80])
+ self.add([0x3c31f0f499c7ab4a, 0x5889b424102551e8], [0x7b5c7d6e29e97a8d, 0x4927599771c57f7], false, [0xb78e6e62c3b125d7, 0x5d1c29bd8741a9df])
+ self.add([0x4e7e682a27d97684, 0xc90af1f97af1ebd6], [0xe83075aa87bdbbbc, 0x5b4c91ef0050578c], false, [ 0x1, 0x36aeddd4af973241, 0x245783e87b424362])
+ self.add([0xc2f9c405a6788d5c, 0xa805919565b1c8ff], [0x2b982c33eaa64013, 0x26dbdb0ad181eeaf], false, [0xee91f039911ecd6f, 0xcee16ca03733b7ae])
+ self.add([0xd223cda22459e273, 0x7b34f35e22d1e495], [0xf862293503e1e68a, 0x132b5e9d48f8fd30], false, [ 0x1, 0xca85f6d7283bc8fd, 0x8e6051fb6bcae1c5])
+ self.add([0xe6255f17cdf1308e, 0xaa0339bcb9a689e4], [0x21493c954b55006a, 0xcde6d07d024b83a5], false, [ 0x1, 0x76e9bad194630f9, 0x77ea0a39bbf20d89])
+ self.add([0x4f7a98024bf8ab52, 0xbe4c3b532065a3aa], [0xc7ec31edddea40f2, 0x8ba08fe606c7da8d], false, [ 0x1, 0x1766c9f029e2ec45, 0x49eccb39272d7e37])
+ self.add([0x277f2223b47fb5c7, 0x76834f4985a09f45], [0xaec11f5d9bf585f4, 0x5cf2f920a08bb75], false, [0xd640418150753bbb, 0x7c527edb8fa95aba])
+ self.add([0x76d31b6226d95a7c, 0xa455c6c8e94c9f4f], [0xb339e871287f9b4a, 0x6762b969872ad2de], false, [ 0x1, 0x2a0d03d34f58f5c7, 0xbb880327077722d])
+ self.add([0xce69ffde76e146c0, 0x8b36e44960d7c568], [0xb59f59b0216f6c9a, 0x7890ec24f3fe57c0], false, [ 0x1, 0x8409598e9850b35b, 0x3c7d06e54d61d28])
+ self.add([0xeff5dbf89abe60d3, 0x1694e293bca2ec2a], [0x4ab83c6abac72166, 0x3c6fdc0ffee113ac], false, [ 0x1, 0x3aae186355858239, 0x5304bea3bb83ffd6])
+ self.add([0x9022674363dee264, 0x4037a3073d6a4513], [0x1c4eb2fba0afcc76, 0xb69d4c47dbfa7dbf], false, [0xac711a3f048eaeda, 0xf6d4ef4f1964c2d2])
+ self.add([0xba50054f9012fe62, 0xd14a8d2cfe12dcca], [0x883246798fd6a894, 0xa251627d38a3e84e], false, [ 0x1, 0x42824bc91fe9a6f7, 0x739befaa36b6c518])
+ self.add([ 0x492f77d8507191c, 0xb0d05e8032bb6d6], [0xe7c826234e90b44d, 0xde94ec6abe20f4a0], false, [0xec5b1da0d397cd69, 0xe9a1f252c14cab76])
+ self.add([ 0xdef98565b9874a0, 0x4b1e78930aeb2a27], [0xa9a2ab57d6f418ad, 0x78d575a8329d13f9], false, [0xb79243ae328c8d4d, 0xc3f3ee3b3d883e20])
+ self.add([0x524d5a6f8044a320, 0xe24c450795f60969], [0x5fe979cda4ed8f4c, 0xacf0be67dce30cb1], false, [0xb236d43d2532326d, 0x8f3d036f72d9161a])
+ self.add([0x19a8d7f5fc250e9d, 0x16f2e28a291d142c], [0xca61fb6103058eb8, 0x75e284ee3aeaa00a], false, [0xe40ad356ff2a9d55, 0x8cd567786407b436])
+ self.add([0xd77756f47df391d5, 0x5b8e5580395cd58a], [0x97369acf721a99e7, 0xce792a1bb6bc0070], false, [ 0x1, 0x6eadf1c3f00e2bbd, 0x2a077f9bf018d5fa])
+ self.add([0x842a790a268feb85, 0xce072db10a39da82], [0xa8cafad7f35e4f7c, 0xbb74fb7f45cd76ac], false, [ 0x1, 0x2cf573e219ee3b02, 0x897c29305007512e])
+ self.add([0x5b2d27972855a4bc, 0x42ab3be1a477c271], [0x8acc72932bfe9d33, 0xe58dc8cfe50b98de], false, [0xe5f99a2a545441f0, 0x283904b189835b4f])
+ self.add([0xbfb0409fd0e28f82, 0x96755ec68aa87912], [0x70a2beef76cf7f8c, 0x986bf902b0507fb3], false, [ 0x1, 0x3052ff8f47b20f0f, 0x2ee157c93af8f8c5])
+ self.add([0x310d187542bd9017, 0x3642d89d8a673bec], [0xa74d9571b145448b, 0xde9b0212da1f4a62], false, [0xd85aade6f402d4a3, 0x14dddab06486864e])
+ self.add([0x56ba523251bc41f0, 0x89f04341258a772b], [0xfb210674227fd913, 0xaec017cedb7b0860], false, [ 0x1, 0x51db58a6743c1b04, 0x38b05b1001057f8b])
+ self.add([0x2be7e4a93a799a85, 0xd048dc0db3e70666], [0x958b3d5d2aafff7d, 0xbbf3e94175d6b17], false, [0xc173220665299a02, 0xdc081aa1cb44717d])
+ self.add([0x94e696e0c0d351f1, 0x8504a7f5500f3bdc], [0xf36f4fca3a811ccf, 0x5c6931e5c82116ea], false, [ 0x1, 0x8855e6aafb546ec0, 0xe16dd9db183052c6])
+ self.add([ 0x990a179d4dd27c8, 0x969d780e72591651], [0xb3f6b9be652e1f9f, 0x1830d0dd40744832], false, [0xbd875b383a0b4767, 0xaece48ebb2cd5e83])
+ self.add([0xe3f3e2391462ea1b, 0x4b75065c40d6fd92], [0x294389975560b628, 0xd87f7769adffb1f1], false, [ 0x1, 0xd376bd069c3a044, 0x23f47dc5eed6af83])
+ self.add([0x99a27f8120278cb5, 0xb5f03f8324747746], [0xa5350a1dca90dc38, 0x81f9458fa398e879], false, [ 0x1, 0x3ed7899eeab868ee, 0x37e98512c80d5fbf])
+ self.add([0x897dccb3adb517bb, 0x4b5a93ec4453afbf], [0x23a4f7351bdbeeed, 0x280386c0e01134cf], false, [0xad22c3e8c99106a8, 0x735e1aad2464e48e])
+ self.add([0xa3adfb396f93e61c, 0x66046556430ffe61], [0x8a6d12da2dd4abb5, 0xd8f5ee8d80b13e51], false, [ 0x1, 0x2e1b0e139d6891d2, 0x3efa53e3c3c13cb2])
+ self.add([0x8761e0758414299a, 0xa2b47f1f62b738c5], [0x2c3eec7e0591f198, 0xf3a5dd8354cc1b1c], false, [0xb3a0ccf389a61b33, 0x965a5ca2b78353e1])
+ self.add([0x495efe683f2693d2, 0x10b950206de45c83], [0xd2796fc78d797879, 0x6ca3432d1e134fcf], false, [ 0x1, 0x1bd86e2fcca00c4b, 0x7d5c934d8bf7ac52])
+ self.add([0x6a3342102adb3253, 0x34dbcbac0da2ad3d], [0xf8a9589c8a9cffbc, 0x4739e02d1b7fa70d], false, [ 0x1, 0x62dc9aacb578320f, 0x7c15abd92922544a])
+ }
+
+ func test_add_2_by_3() {
+ self.add([0x166184b1d5ee03b9, 0x8b9e46b1a6d3fa46], [0xf28dbf9abe1738ba, 0xe8a90c3fb953b6a3, 0x43b6acb05eb3d054], false, [0xf28dbf9abe1738ba, 0xff0a90f18f41ba5c, 0xcf54f3620587ca9a])
+ self.add([0xb9e4dec474bf6daf, 0xbabe5add2827e32d], [0x45320185f799dcc5, 0xeabbb8b38528ca83, 0x7f4cc334f62accfd], false, [0x45320185f799dcc6, 0xa4a09777f9e83833, 0x3a0b1e121e52b02a])
+ self.add([0x39698d6801db8b1b, 0x1142c4b9314d713e], [0x56d0e937ff2a8b79, 0x180b85de7b42ce27, 0xf859a128453a7a6d], false, [0x56d0e937ff2a8b79, 0x517513467d1e5943, 0x99c65e17687ebab])
+ self.add([0x3cb8550ce4b9bf31, 0x957995a9fef8449f], [0xa3e7ee547251fd51, 0xec5e6f6b295e4080, 0x6c80e84847da1f84], false, [0xa3e7ee547251fd52, 0x2916c4780e17ffb2, 0x1fa7df246d26423])
+ self.add([0x9fbf72ebda799d16, 0x9dc8bee47b9022f1], [0xfec2c4e85a22b5ae, 0x27699482c3658679, 0x52d897563c8bdce2], false, [0xfec2c4e85a22b5ae, 0xc729076e9ddf238f, 0xf0a1563ab81bffd3])
+ self.add([0xd3b31784dbabdfd0, 0x95c10e2729e2c382], [0xb83ca6e5221c8316, 0xee3514bf0bd48a43, 0x5417bed67ffc89c7], false, [0xb83ca6e5221c8317, 0xc1e82c43e7806a13, 0xe9d8ccfda9df4d49])
+ self.add([0x91f71205fc39e507, 0xd9ddfc9a6017515c], [0x7ca5dff3ecdcde6b, 0x2f0387e992e0a51a, 0xa55a8881a48bc5e9], false, [0x7ca5dff3ecdcde6b, 0xc0fa99ef8f1a8a22, 0x7f38851c04a31745])
+ self.add([0x476736f11c7de09a, 0x9305271d8a5e000c], [0x58c6b9c105f67fe9, 0x685c186b0e8cb4ac, 0xa3f6e2731f03e6e8], false, [0x58c6b9c105f67fe9, 0xafc34f5c2b0a9547, 0x36fc0990a961e6f4])
+ self.add([0x833d496a1b861774, 0xcb9d59cd207032aa], [0x4fadcf33c9021509, 0x284deb706b36c9d9, 0x64152e412a81cb53], false, [0x4fadcf33c9021509, 0xab8b34da86bce14e, 0x2fb2880e4af1fdfd])
+ self.add([0xd806fed558e7265e, 0xa90d6d5f5f4112b2], [ 0x1d851052cf1f5dc, 0xef06d6a6262d0d86, 0x9260f6a38a2cf111], false, [ 0x1d851052cf1f5dd, 0xc70dd57b7f1433e5, 0x3b6e6402e96e03c3])
+ self.add([0x52af40e3d605bc24, 0xfb6a1918e8b2b936], [0x6f36831b45f72e78, 0x2e58376e7a36ca53, 0xe6ed0eafde4a2d30], false, [0x6f36831b45f72e78, 0x81077852503c8678, 0xe25727c8c6fce666])
+ self.add([0x3a3118489defa320, 0xf669f34ebe246ebf], [0x3a970463d4de6a8d, 0xb87359d28febf30a, 0x2cb3b90d32d87b21], false, [0x3a970463d4de6a8d, 0xf2a4721b2ddb962b, 0x231dac5bf0fce9e0])
+ self.add([0xfc4c7ebc70392160, 0x9164967e0dfa289f], [0x400c2ced10ba24e1, 0xa3cc8d6037b57971, 0x8cb88d8ec56f5d30], false, [0x400c2ced10ba24e2, 0xa0190c1ca7ee9ad2, 0x1e1d240cd36985cf])
+ self.add([0x9e617ed7eaa32feb, 0x36aa90dd3817ba40], [0xda4bdeef7bd04c25, 0x9b196905901bf0fd, 0x404acac34caca6d3], false, [0xda4bdeef7bd04c26, 0x397ae7dd7abf20e8, 0x76f55ba084c46113])
+ self.add([ 0xd9e31cddeec8aa9, 0x71c11bebfb1f361f], [ 0x4c9bd55687d2338, 0x8aafa1714856bb7, 0x9d1a5a2d1762c04e], false, [ 0x4c9bd55687d2338, 0x16492be4f371f661, 0xedb76191281f66d])
+ self.add([0x7669a7c7819f6a0e, 0x7b7e9a56aec59d46], [0xb2565d5290c4404e, 0xd04791fd2fd2288f, 0x36a14eb4db520ef9], false, [0xb2565d5290c4404f, 0x46b139c4b171929d, 0xb21fe90b8a17ac3f])
+ self.add([0xf1a9702bf3ec8834, 0x6b2a877a6fbfe01], [0xb38a83c8cfa47cfa, 0xb967db93dc9e374f, 0x76e5d319b30523f8], false, [0xb38a83c8cfa47cfb, 0xab114bbfd08abf83, 0x7d987b915a0121f9])
+ self.add([0x240964d17420b27c, 0x27f4faab0fa09710], [0x5c42dde861af07ea, 0x7b6ff569019596c7, 0xa3ac1b5489cd295d], false, [0x5c42dde861af07ea, 0x9f795a3a75b64943, 0xcba115ff996dc06d])
+ self.add([0x86248624233b330d, 0x5b03a1b0c971f13f], [0xb851470913d3bbdc, 0xc6378c0dd545d33c, 0xdcdd6891ec6be6a7], false, [0xb851470913d3bbdd, 0x4c5c1231f881064a, 0x37e10a42b5ddd7e6])
+ self.add([0xcc8a1445363b3edf, 0x61f3a543f39272ce], [0x579ccb85dddc27c0, 0x37ace620399d3610, 0xcb8e5687796720ae], false, [0x579ccb85dddc27c1, 0x436fa656fd874f0, 0x2d81fbcb6cf9937c])
+ self.add([0xd8b4ad849f47178b, 0x123e233710a8163c], [0x9df76228a0f60730, 0x5cf0b851b804ba3b, 0xf92c940d9848d219], false, [0x9df76228a0f60731, 0x35a565d6574bd1c7, 0xb6ab744a8f0e855])
+ self.add([0xf9c199d0cfb700b0, 0x80afb6c3b7deafcf], [0x92dd96af7d77f843, 0x6e14eb8bd191c9c0, 0x12edfeee4324badb], false, [0x92dd96af7d77f844, 0x67d6855ca148ca70, 0x939db5b1fb036aaa])
+ self.add([0x6afd81b15894c901, 0x5f0018860f4d26f1], [0x8d41d12e635059bf, 0x6620487a90ac4a06, 0xe9da96eac4e686d5], false, [0x8d41d12e635059bf, 0xd11dca2be9411308, 0x48daaf70d433adc6])
+ self.add([0x2f4cc706c2e1abf0, 0xbebd79cef606ddfc], [ 0xe3a633d47e11255, 0xe4fd4ea3a60a9ad1, 0xd8e6c6bb0755ba47], false, [ 0xe3a633d47e11256, 0x144a15aa68ec46c2, 0x97a44089fd5c9843])
+ self.add([0x2ca2104dbefa2782, 0x5a46046025045c01], [0x8b2e664b8c10c412, 0x3ebdd516a362444b, 0x7ef346af48c186c9], false, [0x8b2e664b8c10c412, 0x6b5fe564625c6bcd, 0xd9394b0f6dc5e2ca])
+ self.add([0xf0ec9a5fd516ac4f, 0xdb7c06dbcd6e9917], [0x25c956503ea6224f, 0x90ba0058d93ad487, 0x21411b2b9f367125], false, [0x25c956503ea62250, 0x81a69ab8ae5180d6, 0xfcbd22076ca50a3c])
+ self.add([0x75e4a62f9dfc75f3, 0xa8f8d21c67d108d5], [0x997b3b55ca3e9b9c, 0x4dd0b01d43588e8b, 0x92fb7c4686dd0771], false, [0x997b3b55ca3e9b9c, 0xc3b5564ce155047f, 0x3bf44e62eeae1046])
+ self.add([ 0xcaa1f1e7d422d20, 0x4b1687d965aa6846], [0xb5b28c00fa577414, 0xce6b0a52317c0983, 0x7e19ad1279e08fdb], false, [0xb5b28c00fa577414, 0xdb152970aebe36a3, 0xc93034ebdf8af821])
+ self.add([ 0x133dca3af6fadee, 0xbc22e83df6b038ed], [0xb10f878a6573cf5f, 0x60c7513cfaeef172, 0x149930b855f3180], false, [0xb10f878a6573cf5f, 0x61fb2de0aa5e9f60, 0xbd6c7b497c0f6a6d])
+ self.add([0xca9887f22167c20b, 0x51ba2d761c54b4a9], [0xf6a866be7520ae5a, 0x639e890844b33e55, 0xf9d68b1d83967ae5], false, [0xf6a866be7520ae5b, 0x2e3710fa661b0061, 0x4b90b8939feb2f8e])
+ self.add([0xe7268c1005be2373, 0x2f84198b01845f4e], [0x3673ea9abed62aa7, 0x2d3c5062456e2516, 0x3ef04803fb73197a], false, [0x3673ea9abed62aa8, 0x1462dc724b2c4889, 0x6e74618efcf778c8])
+ self.add([0x47864bbd7d7b219c, 0xa225ad2c99a8c6d6], [0x87a39442ba237b67, 0x321799407e951f4c, 0xa6d2890180787ace], false, [0x87a39442ba237b67, 0x799de4fdfc1040e9, 0x48f8362e1a2141a4])
+ self.add([0x80b43ad0be7ed12d, 0xc7ba740495773388], [0x33089711c8860613, 0xbd8ef46fccc4d77f, 0xdc625c91d19cf53d], false, [0x33089711c8860614, 0x3e432f408b43a8ad, 0xa41cd096671428c5])
+ self.add([0xcda7ef3a8b52e056, 0x97f9ea6eedade1fd], [0xf46de88770e5a4df, 0x51674f03dd695bbd, 0x18571d91416f9e24], false, [0xf46de88770e5a4e0, 0x1f0f3e3e68bc3c13, 0xb05108002f1d8021])
+ self.add([0x410e05301cfd549f, 0xb3fecc2c4145171e], [0xbef06c35935f7442, 0xc0a11093cf461eb4, 0x794f40ad2ef4d581], false, [0xbef06c35935f7443, 0x1af15c3ec437354, 0x2d4e0cd97039ec9f])
+ self.add([0x592dd34003c4cf28, 0x189a10042e59293d], [ 0x76a63eed9a9b167, 0xba8bef2ef32aa323, 0xc89337ba49ad47a5], false, [ 0x76a63eed9a9b168, 0x13b9c26ef6ef724b, 0xe12d47be780670e2])
+ self.add([0x1ea9fe5eeb47ba8f, 0xd28e7d77bca6444c], [0x76ff86ff227e8c21, 0xbe4ea0d14dab122e, 0xe616e52d32b068e3], false, [0x76ff86ff227e8c21, 0xdcf89f3038f2ccbe, 0xb8a562a4ef56ad2f])
+ self.add([0x890084b3efa324fc, 0xb9bf2e8c70a13774], [0xa4d5915441dfff09, 0xa5be3dbe8365828c, 0x3645f2841e38b1c1], false, [0xa4d5915441dfff0a, 0x2ebec2727308a788, 0xf00521108ed9e935])
+ self.add([0xc3a64b9cdb3b7fda, 0xa549bf57c77b646b], [0x52ac22921e89a51d, 0x40b13ca9df9013eb, 0x441c2c4eb76b2469], false, [0x52ac22921e89a51e, 0x4578846bacb93c5, 0xe965eba67ee688d4])
+ self.add([ 0x337555aa53690d1, 0xe3df7c1c32120a45], [0xce63c75803226009, 0x5cb09a1d60399772, 0x12df8adf9196c80f], false, [0xce63c75803226009, 0x5fe7ef7805702843, 0xf6bf06fbc3a8d254])
+ self.add([0x758da845fa60c8c0, 0xf548438fd0202a5e], [0x64ae448b7e21923d, 0xeda9eba093ded74c, 0x8cbc855437157d1a], false, [0x64ae448b7e21923e, 0x633793e68e3fa00d, 0x8204c8e40735a778])
+ self.add([0xa3e49b2d5d007d49, 0xebc718ebe5a7f8], [0x92fe8c8621f162ed, 0xfea51ba18b04ad92, 0xd52ccfcd730f6bc9], false, [0x92fe8c8621f162ee, 0xa289b6cee8052adb, 0xd61896e65ef513c1])
+ self.add([0x85cca860262e006c, 0x2d78c37a3f9a795e], [0xc657c947ef858fbc, 0x46bfe249d94eb9c5, 0xd3d62655885d8857], false, [0xc657c947ef858fbc, 0xcc8c8aa9ff7cba32, 0x14ee9cfc7f801b5])
+ self.add([0x1ccfdf3700cb5b38, 0xbafbbfa61853f7db], [0xdbc75ffe393e243e, 0x444c6f4761064342, 0xd81df3f8ad7403a3], false, [0xdbc75ffe393e243e, 0x611c4e7e61d19e7b, 0x9319b39ec5c7fb7e])
+ self.add([0x920a281c50343374, 0xaf5a3b634bc94a52], [0xa5d6f29fe8ebe212, 0xeda2a01dd200bb1d, 0x6c0c58b0146cffae], false, [0xa5d6f29fe8ebe213, 0x7facc83a2234ee92, 0x1b66941360364a00])
+ self.add([0x49d9326e0cb05dfd, 0x3cc92243c5c1c10a], [0x2a3c567f0e13698f, 0xdb8c122d669cc235, 0x4364bd70c60b2028], false, [0x2a3c567f0e136990, 0x2565449b734d2032, 0x802ddfb48bcce132])
+ self.add([0x531f3683e2f5de4b, 0x11258ad44087d95a], [0x2e334181c27d448e, 0xd074cfa73e9fd4f8, 0x62dd443e7737f752], false, [0x2e334181c27d448f, 0x2394062b2195b343, 0x7402cf12b7bfd0ac])
+ self.add([0x4b14f0d9327b0ef2, 0x646a0db4b07b911e], [0xf7e91cdc90ffeed3, 0x9483c4bbe5fc3584, 0xfcc00280b65b54cc], false, [0xf7e91cdc90ffeed3, 0xdf98b59518774477, 0x612a103566d6e5ea])
+ self.add([0x14052898e0889b44, 0x1076ed290d8ec442], [0x64fdf7ffdbb9c45e, 0xa45a144c67b7e52, 0x923835409002d108], false, [0x64fdf7ffdbb9c45e, 0x1e4ac9dda7041996, 0xa2af22699d91954a])
+ self.add([0x92a2641a975410c5, 0xd85178f26f8a6555], [0x780b96ca389a4634, 0xf858297f7ff155fc, 0x516bec76f9a46b66], false, [0x780b96ca389a4635, 0x8afa8d9a174566c2, 0x29bd6569692ed0bb])
+ }
+
+ func test_add_2_by_4() {
+ self.add([0x3da8918dcb996da6, 0x30e6920457db71f3], [0x94e2bda7ba227e36, 0x768e0378a4d9610c, 0x15df76d60d6a968, 0x386fd454a703ad10], false, [0x94e2bda7ba227e36, 0x768e0378a4d9610c, 0x3f0688fb2c70170e, 0x69566658fedf1f03])
+ self.add([0x82b1b7fb76041a51, 0xdc7f1f0e711ebb1f], [0xfb9a2482e4ac331b, 0x35be3402f2c2eb99, 0x3d3dc5c187c1bcd5, 0x1fd977e216132962], false, [0xfb9a2482e4ac331b, 0x35be3402f2c2eb99, 0xbfef7dbcfdc5d726, 0xfc5896f08731e481])
+ self.add([0x6699a4ce7aa9eff1, 0x88d5ce982f131442], [ 0x7d5817fa537f6b8, 0x488f296b0a348456, 0xc766f06736b5ed92, 0x11a1fbdbc5760a65], false, [ 0x7d5817fa537f6b8, 0x488f296b0a348457, 0x2e009535b15fdd83, 0x9a77ca73f4891ea7])
+ self.add([0xbf8d830c4ec1494e, 0x972053da91b33377], [0x2e442c5d60e83138, 0xca22168bee82b055, 0xbdea669e82f5c7e4, 0x5d2547b70ab81cc], false, [0x2e442c5d60e83138, 0xca22168bee82b056, 0x7d77e9aad1b71132, 0x9cf2a856025eb543])
+ self.add([0xa6012e45de2dd63c, 0xab8039cd4407271d], [ 0xb832051c38e39b3, 0xb2c271ee04d1d24e, 0xd6005314d839766b, 0x74037f28d1e7ed6f], false, [ 0xb832051c38e39b3, 0xb2c271ee04d1d24f, 0x7c01815ab6674ca8, 0x1f83b8f615ef148c])
+ self.add([0x1a7fb36921c18fa8, 0x9b8a0b4b1e438653], [0x4db38370475d416f, 0x1f1cb592f585cc55, 0xb2e71f74031ba1cf, 0xa0571fe8908236de], false, [0x4db38370475d416f, 0x1f1cb592f585cc55, 0xcd66d2dd24dd3178, 0x3be12b33aec5bd31])
+ self.add([0xec415d5efd92f967, 0x8a5674ad31fd99b3], [0x6dbb698a4a94f1f5, 0x5326d4179bf4d392, 0x7fc078adc40fc20e, 0x25ab29361a6521a3], false, [0x6dbb698a4a94f1f5, 0x5326d4179bf4d393, 0x6c01d60cc1a2bb75, 0xb0019de34c62bb56])
+ self.add([0x2fad8897f08b640a, 0x83fade220f24350d], [0xa560bb3913b2dadc, 0xb10f4bc65c2410d5, 0xb9cb9eb4b83aee49, 0x66ecee00ddc7c9a3], false, [0xa560bb3913b2dadc, 0xb10f4bc65c2410d5, 0xe979274ca8c65253, 0xeae7cc22ecebfeb0])
+ self.add([0x415c567ee4d1af69, 0xcae63e86a0b196a4], [0xa75e41bed74ac259, 0xdaca48799f3efcb6, 0x53b6b3e6bd439ff7, 0xb52a72b77a9d229d], false, [0xa75e41bed74ac259, 0xdaca48799f3efcb6, 0x95130a65a2154f61, 0x8010b13e1b4eb941])
+ self.add([0xc85723e97e8d1a12, 0xf63b5e02c5335204], [0x9e7fa4cedfda0d7d, 0xf0d6d7482df88147, 0x8099796bd27e500d, 0x332f83e043582975], false, [0x9e7fa4cedfda0d7d, 0xf0d6d7482df88148, 0x48f09d55510b6a20, 0x296ae1e3088b7b79])
+ self.add([0x6d0aebb8c7b5742c, 0xd843af55c9f06696], [0x871a443f016935de, 0xb96df0fd15728eb3, 0x7d9eb14d50428847, 0xa06251476d816f3f], false, [0x871a443f016935de, 0xb96df0fd15728eb3, 0xeaa99d0617f7fc74, 0x78a6009d3771d5d5])
+ self.add([0x8677b570a8d5c0f2, 0xe2548f6b375ec62a], [0x6366a452af945224, 0xa93cb8e806cd30a, 0x4c95bec172cb91aa, 0xf87b27eb527115e2], false, [0x6366a452af945224, 0xa93cb8e806cd30a, 0xd30d74321ba1529d, 0xdacfb75689cfdc0c])
+ self.add([0x5fd4af95df5dbada, 0x8a502020a893511b], [ 0x3ec63a12a806c11, 0xbe3caa515ce9a4d5, 0x958f8c4c96a635db, 0x8a20276663eada27], false, [ 0x3ec63a12a806c11, 0xbe3caa515ce9a4d5, 0xf5643be27603f0b6, 0x147047870c7e2b42])
+ self.add([0xdd01d1fed15abae5, 0x37fdaa03ac57a4b8], [0x9985809305a2a332, 0x65920c3bea471eb4, 0xef632958aa0ad2be, 0xfbcdf84243e497f5], false, [0x9985809305a2a332, 0x65920c3bea471eb5, 0xcc64fb577b658da4, 0x33cba245f03c3cad])
+ self.add([0x7ab753b669fd3a70, 0x1cc52b5accbf604], [0x36e43a2fcd5d7ca0, 0x456bb35c20737b52, 0x189a4446e5309898, 0xce4b044b44b21d13], false, [0x36e43a2fcd5d7ca0, 0x456bb35c20737b52, 0x935197fd4f2dd308, 0xd0175700f17e1317])
+ self.add([0xdae46173058eec35, 0x34d301a90f112de5], [0xbce774d7f57eda3c, 0x4abd354349254263, 0xd162158f390f0980, 0x9301b5ea855d2aad], false, [0xbce774d7f57eda3c, 0x4abd354349254264, 0xac4677023e9df5b5, 0xc7d4b793946e5892])
+ self.add([0x21613edf2ca40eb7, 0xb09abf7aa121102b], [0x4674cf379f3d334a, 0x4e1fafba9eaf2a35, 0xc17b236ad3472b21, 0x93bd7561d6b43678], false, [0x4674cf379f3d334a, 0x4e1fafba9eaf2a35, 0xe2dc6249ffeb39d9, 0x445834dc77d546a3])
+ self.add([0xa62bb91cc393b656, 0x410a69c566949b3b], [0xd2adbd9b8f7a0d7d, 0x41538873b8a017d6, 0xcbd67b6d4d54f655, 0x779d35a10db36c54], false, [0xd2adbd9b8f7a0d7d, 0x41538873b8a017d7, 0x7202348a10e8acab, 0xb8a79f667448078f])
+ self.add([ 0x7e1bf8b4c6953de, 0x36c87119ec4564c], [0x3ac9c65f7fc861cf, 0x1f24b28646e3ebc0, 0xaf79d7780a3b7cfc, 0x575b3807b8911d8], false, [0x3ac9c65f7fc861cf, 0x1f24b28646e3ebc0, 0xb75b970356a4d0da, 0x8e23a921a4d6824])
+ self.add([0xbc94de811cedf46d, 0x2480a156f30c5172], [0xdbdd969635e6f0e8, 0x2e9e0620dc0cc302, 0x616df46f94392f63, 0x9a7b501c762f4cdb], false, [0xdbdd969635e6f0e8, 0x2e9e0620dc0cc303, 0x1e02d2f0b12723d0, 0xbefbf173693b9e4d])
+ self.add([0x37952f85992c3365, 0x8c61eb5b65281155], [0x6b0587ebbeee41e3, 0x7debe531bb6975be, 0x8bfdf46e854ce867, 0x100feb9579504b6b], false, [0x6b0587ebbeee41e3, 0x7debe531bb6975be, 0xc39323f41e791bcc, 0x9c71d6f0de785cc0])
+ self.add([0x7677cd46c4fad248, 0xdfb8b464d646a5c3], [0x1279d7c9efb98788, 0x53d4cfce2c5371b6, 0x6858ada7d3749b8a, 0x44eaeed7b7b711e5], false, [0x1279d7c9efb98788, 0x53d4cfce2c5371b6, 0xded07aee986f6dd3, 0x24a3a33c8dfdb7a8])
+ self.add([0x485f01502491da16, 0x1c0e3deec1565152], [0xcf8cb711a30deacd, 0xfc8fe6a90ddf6e4, 0x225de781b68ff01a, 0x7176def340da697d], false, [0xcf8cb711a30deacd, 0xfc8fe6a90ddf6e4, 0x6abce8d1db21ca30, 0x8d851ce20230bacf])
+ self.add([ 0xb543c8a686d3f12, 0x8277a83a1e97f1ff], [0x43d2a9fd69e8c486, 0xd6df1013708e1684, 0x304e191ecacfbf09, 0x485cbbc5609d6b5a], false, [0x43d2a9fd69e8c486, 0xd6df1013708e1684, 0x3ba255a9333cfe1b, 0xcad463ff7f355d59])
+ self.add([0xeb50172af54003b9, 0x94ed5b9338997d58], [0xbbc7ae3e7cc2b23b, 0x5d866ec0d9f95996, 0x22e66f01a540d073, 0xd43db239dac02c9], false, [0xbbc7ae3e7cc2b23b, 0x5d866ec0d9f95997, 0xe36862c9a80d42c, 0xa23136b6d6458021])
+ self.add([0xf4ba6a4bcf67438d, 0x8a7725804749a510], [0x8761928ef8fbb112, 0x89d32a9119471324, 0xdcff576cda5af5c2, 0xa5661765d59a8c28], false, [0x8761928ef8fbb112, 0x89d32a9119471325, 0xd1b9c1b8a9c23950, 0x2fdd3ce61ce43138])
+ self.add([0x8a6f32218f6c4861, 0x1662fc60dda0c86d], [0x6d56c2f40e251513, 0xb77b19f7543f3b39, 0x53a3fcb75cc0c258, 0x12934eca3c7fce87], false, [0x6d56c2f40e251513, 0xb77b19f7543f3b39, 0xde132ed8ec2d0ab9, 0x28f64b2b1a2096f4])
+ self.add([0xd1e8e461f927040a, 0x301c1d6b52ba00df], [0xa3b25779668443df, 0xa48ae12095242825, 0xd00632f88535063e, 0xafe0ba7daa145687], false, [0xa3b25779668443df, 0xa48ae12095242826, 0xa1ef175a7e5c0a48, 0xdffcd7e8fcce5766])
+ self.add([0x3e684e975a025c0f, 0xb368e094a0dbb967], [0xafc698eeac64026e, 0x830b1ed706360fa3, 0x765f87cb0a7a6a53, 0x68acdd1021276515], false, [0xafc698eeac64026e, 0x830b1ed706360fa3, 0xb4c7d662647cc663, 0x1c15bda4c2031e7c])
+ self.add([0xb024f48d1f3fff2e, 0xe1d69de1f395973c], [0x26a984f1bdadf9b2, 0x3f789623bbfdbe47, 0x5f3285e2730f9799, 0x7658b75539abb8fa], false, [0x26a984f1bdadf9b2, 0x3f789623bbfdbe48, 0xf577a6f924f96c8, 0x582f55372d415036])
+ self.add([0x9dc21f3c33332743, 0xd24c1540cdeaa6ba], [0xdbdd121995db7702, 0xbe29a0c9eade2bd1, 0xcc64932f7d9fe09, 0xcf6a469697289172], false, [0xdbdd121995db7702, 0xbe29a0c9eade2bd1, 0xaa88686f2b0d254d, 0xa1b65bd76513382c])
+ self.add([0x5ea992fd4cbaaf72, 0x721512d3e46dee44], [0xc92ddff341e74d71, 0xd9c782399663b82e, 0x72c08287da7a4303, 0xdc3973f2e06d3bf4], false, [0xc92ddff341e74d71, 0xd9c782399663b82e, 0xd16a15852734f276, 0x4e4e86c6c4db2a38])
+ self.add([ 0xcd2e00705a2b7f4, 0x25fb0005573d6e2c], [0xff53e528b86ceb12, 0xc6d5fba58e9080a1, 0xc66890bdb4bc95df, 0x1eec1c367335e253], false, [0xff53e528b86ceb12, 0xc6d5fba58e9080a1, 0xd33b70c4ba5f4dd3, 0x44e71c3bca73507f])
+ self.add([ 0xfc650704e7efec9, 0x7e324f5acc1b0e5a], [ 0xbb2b1e6cd89da25, 0xe838283e23f9e250, 0xd5e85794f83ab0f9, 0x41db4f918c88ee24], false, [ 0xbb2b1e6cd89da25, 0xe838283e23f9e250, 0xe5aea80546b9afc2, 0xc00d9eec58a3fc7e])
+ self.add([ 0x35d1a29ac78e27e, 0x225ef34a0a272de8], [0xd6ba9c3763e3e245, 0x4a9dfa657fd826e3, 0x7cd2593ec24cea8d, 0xdfd5aa1299fe9a8c], false, [0xd6ba9c3763e3e245, 0x4a9dfa657fd826e3, 0x802f73686ec5cd0c, 0x2349d5ca425c874])
+ self.add([0x6673c3a3166de711, 0x6da7ae367da4075e], [0x2d7802a810482860, 0x693b0e117f8471b9, 0x6bc6171de5eac08f, 0x9a50bd2e324b1416], false, [0x2d7802a810482860, 0x693b0e117f8471b9, 0xd239dac0fc58a7a1, 0x7f86b64afef1b74])
+ self.add([0xf65d452d66d80ccc, 0x7c82b2a190d8860f], [0x2f84f5d564273e2e, 0xbe106a51b40f4347, 0x3b69ce0ea08e1310, 0xf6258ee262ac70ab], false, [0x2f84f5d564273e2e, 0xbe106a51b40f4348, 0x31c7133c07661fdd, 0x72a84183f384f6ba])
+ self.add([0x2e046e09c305af5e, 0x25cc9867b0e53f5f], [0x9f347c3191516548, 0x8eeab561ffb0276b, 0xff9c722c0eecdf7b, 0x74d0ee3f2bfc8d1], false, [0x9f347c3191516548, 0x8eeab561ffb0276c, 0x2da0e035d1f28ed9, 0x2d19a74ba3a50830])
+ self.add([0xb9c433821efa2e2f, 0x93ce94826fcefd54], [0x1c1c74a2fd4dbb67, 0xdf0014107d5e6e1b, 0x3b369ac5a16fa60a, 0x7292df2c3e3eb329], false, [0x1c1c74a2fd4dbb67, 0xdf0014107d5e6e1b, 0xf4face47c069d43a, 0x66173aeae0db07d])
+ self.add([0x9cdf7669a7bd8069, 0xfbd4fc603a3742ad], [0x9ca3d47e21cd383b, 0x30be2181a538b466, 0xe3e15081f3e55fdc, 0x165084cfaa7e7018], false, [0x9ca3d47e21cd383b, 0x30be2181a538b467, 0x80c0c6eb9ba2e046, 0x1225812fe4b5b2c5])
+ self.add([0xf85a34459fbb9ee8, 0x3f76336df18ec01b], [0x7d8e83735ab71c0d, 0xcd0d484333b26374, 0x935a96476b078d0f, 0x52dd0caa4995aba5], false, [0x7d8e83735ab71c0d, 0xcd0d484333b26375, 0x8bb4ca8d0ac32bf7, 0x925340183b246bc0])
+ self.add([0xdb1efbefb582b03c, 0xfefb75bbcaec726a], [0x52ed2f69ae3f2038, 0xf6dbf29070e2167, 0xaae8ddd0511befb7, 0x1c0ab0dfad249577], false, [0x52ed2f69ae3f2038, 0xf6dbf29070e2168, 0x8607d9c0069e9ff4, 0x1b06269b781107e1])
+ self.add([0xdfebff3a3c296e4f, 0xae9bbc2252fd1533], [0x4208f11022ca6048, 0x28037c3ec385ff08, 0x3e678b045397a58, 0x6c418efaba9d8611], false, [0x4208f11022ca6048, 0x28037c3ec385ff08, 0xe3d277ea8162e8a8, 0x1add4b1d0d9a9b44])
+ self.add([0xe8c5a1b81310e397, 0x44b657ba30b80c93], [0x218c9659d6c804fb, 0x687212d7a5c4b2bb, 0x90f6d7624698bed2, 0x1c6138952f0073a4], false, [0x218c9659d6c804fb, 0x687212d7a5c4b2bc, 0x79bc791a59a9a269, 0x6117904f5fb88037])
+ self.add([0x298afcec0e7d599f, 0x78a751878c2bf0f1], [0x5c593665aa20bbb5, 0x71be1269f935b282, 0x3ecc8140e010e09a, 0x396dad2d88438bf], false, [0x5c593665aa20bbb5, 0x71be1269f935b282, 0x68577e2cee8e3a39, 0x7c3e2c5a64b029b0])
+ self.add([0xdedf0b0f3f5b90b5, 0x4f021ed0ed7e6b55], [0x7d8d1e2aa42c7ca0, 0xd616b93468d76c89, 0xdaf4ff6d60a2ed77, 0x463db0a7af85b105], false, [0x7d8d1e2aa42c7ca0, 0xd616b93468d76c8a, 0xb9d40a7c9ffe7e2c, 0x953fcf789d041c5a])
+ self.add([0x2d55910e4f948c26, 0x38d8976a102d0f03], [0x229f165394525cd3, 0x53c9a80ebc28eec6, 0xdc3c7c4099720f86, 0xcaeafda123bc6b3e], false, [0x229f165394525cd3, 0x53c9a80ebc28eec7, 0x9920d4ee9069bad, 0x3c3950b33e97a41])
+ self.add([0x8fee25644b531fa4, 0xf2086d54836d68a0], [0x58ce286f7acd07d5, 0xae7095c38deaba63, 0xff616c166ee3d32d, 0x55945413562caa4a], false, [0x58ce286f7acd07d5, 0xae7095c38deaba64, 0x8f4f917aba36f2d2, 0x479cc167d99a12ea])
+ self.add([0xab1e5f5c01d716e0, 0xb4ffb440621f2e44], [0xb681c0703ab64272, 0x97ff3caaa98ba0a8, 0x15ab00efa42eaecd, 0x30e7296d5a250f6f], false, [0xb681c0703ab64272, 0x97ff3caaa98ba0a8, 0xc0c9604ba605c5ad, 0xe5e6ddadbc443db3])
+ self.add([ 0xbf3530d67adbaf0, 0x4088a08f8da3fc71], [0xb295964642f9ddc8, 0xaaaf12514b8e223f, 0x44bf2f89839e4a9e, 0x13af4e5a96936bcd], false, [0xb295964642f9ddc8, 0xaaaf12514b8e223f, 0x50b28296eb4c058e, 0x5437eeea2437683e])
+ }
+
+ func test_add_3_by_1() {
+ self.add([0xb484215f30219a43, 0x689d8f52cd1d47a5, 0x3398c939b44857f4], [0x100639581ff37838], false, [0xb484215f30219a43, 0x689d8f52cd1d47a5, 0x439f0291d43bd02c])
+ self.add([0xa6875f0b962d2de9, 0xc0dc9c263d188921, 0xf3f8f965a2513f11], [0x3a5a753616533d6b], false, [0xa6875f0b962d2de9, 0xc0dc9c263d188922, 0x2e536e9bb8a47c7c])
+ self.add([ 0xfe103d5329bb202, 0x3c197c60fcd2a1d5, 0x3b2aedf0b893b7d3], [0x5f9d85dddb62acf5], false, [ 0xfe103d5329bb202, 0x3c197c60fcd2a1d5, 0x9ac873ce93f664c8])
+ self.add([0xa24b9950d8801a24, 0x7d7286423c6f1b0d, 0xa3715b5de64ef146], [0xf75807fb9e81e208], false, [0xa24b9950d8801a24, 0x7d7286423c6f1b0e, 0x9ac9635984d0d34e])
+ self.add([0x9a2125cb53306eb1, 0x85d655115d5549b6, 0x19d0de807d8a4690], [0xd92ccc6848609276], false, [0x9a2125cb53306eb1, 0x85d655115d5549b6, 0xf2fdaae8c5ead906])
+ self.add([0xe938033708142a6f, 0x3b2be46d6286bfe3, 0xc90f76cfe7b62fb7], [0x73383444c58b2a32], false, [0xe938033708142a6f, 0x3b2be46d6286bfe4, 0x3c47ab14ad4159e9])
+ self.add([0x323582a126f6ef98, 0x25d1928e8460bc79, 0x721c00b05029bd5a], [0x92850c5788c6596d], false, [0x323582a126f6ef98, 0x25d1928e8460bc7a, 0x4a10d07d8f016c7])
+ self.add([0xfe76125400ebeb06, 0x931e807d1f6056b2, 0x4519258cda888fcb], [0x3368fc554744ce31], false, [0xfe76125400ebeb06, 0x931e807d1f6056b2, 0x788221e221cd5dfc])
+ self.add([0x36cb72c9008d4f9c, 0x1bf76923516583e, 0x18a435ce9db55f4f], [0x2653558cf759f6ba], false, [0x36cb72c9008d4f9c, 0x1bf76923516583e, 0x3ef78b5b950f5609])
+ self.add([0x62d2f850e1d8caeb, 0x74a37821fd0f195b, 0x467f9ae0b72c57f6], [0xdaa1d942e5887756], false, [0x62d2f850e1d8caeb, 0x74a37821fd0f195c, 0x212174239cb4cf4c])
+ self.add([0x3e9f0a3b87664482, 0xf9e498a16fb75d97, 0x75f4565e67d9cb10], [0xad12d3f1e479aa39], false, [0x3e9f0a3b87664482, 0xf9e498a16fb75d98, 0x23072a504c537549])
+ self.add([0x3c1192e6eeb296d1, 0xd3a21ee7732379e1, 0x10e10646dc23ed89], [0x90aa15f56578ca18], false, [0x3c1192e6eeb296d1, 0xd3a21ee7732379e1, 0xa18b1c3c419cb7a1])
+ self.add([0x1bb27482b891b68a, 0xcbf7157a5e130ec6, 0xda42ea878f9258f7], [0x5648e641a56e313e], false, [0x1bb27482b891b68a, 0xcbf7157a5e130ec7, 0x308bd0c935008a35])
+ self.add([0xad011d19bae7c29e, 0x1544ece8782d8cd6, 0xec25aefca8e371eb], [0x574df160f99cdb7e], false, [0xad011d19bae7c29e, 0x1544ece8782d8cd7, 0x4373a05da2804d69])
+ self.add([0x1580ee41e6524858, 0x1408717a138f2b3a, 0x240044cd7c5e2253], [0x8f40dee6511b9e46], false, [0x1580ee41e6524858, 0x1408717a138f2b3a, 0xb34123b3cd79c099])
+ self.add([0xdcdfad370cbff728, 0xbb04b62b3267ca4e, 0x4891fa34470b49fe], [0x6c91222ba2c2a7ec], false, [0xdcdfad370cbff728, 0xbb04b62b3267ca4e, 0xb5231c5fe9cdf1ea])
+ self.add([0x7417cd9e25a3c66d, 0x68e61dc84428d0e0, 0xf6cb625e4594a94f], [0x4b2b086b53cfbe83], false, [0x7417cd9e25a3c66d, 0x68e61dc84428d0e1, 0x41f66ac9996467d2])
+ self.add([0x50974bbbcb9c207e, 0xeeca2e4d7a47c707, 0x89a38e88950f8d2], [0xdfc337a2329d4a72], false, [0x50974bbbcb9c207e, 0xeeca2e4d7a47c707, 0xe85d708abbee4344])
+ self.add([0x46b11e53eebb2dc9, 0x676e3773f9b35e21, 0x784a167b8ec5a1e4], [0x48e721dfdcf4f9a3], false, [0x46b11e53eebb2dc9, 0x676e3773f9b35e21, 0xc131385b6bba9b87])
+ self.add([0x64038e56a2df8bfb, 0x15ae800ea0d87a5c, 0x2b652a10398b079e], [0xfa09708302c13ed2], false, [0x64038e56a2df8bfb, 0x15ae800ea0d87a5d, 0x256e9a933c4c4670])
+ self.add([0x971f06b48c40f214, 0xe3b114154cdf66d9, 0x8263237982365afe], [0xcd85581d9a78175e], false, [0x971f06b48c40f214, 0xe3b114154cdf66da, 0x4fe87b971cae725c])
+ self.add([0x8309b6948255f257, 0xd05f8669ad104819, 0xf69128de5ccef549], [0xe3a6eb93c2258245], false, [0x8309b6948255f257, 0xd05f8669ad10481a, 0xda3814721ef4778e])
+ self.add([0xe34d83ab05475a64, 0xb59bf3caa6d0224c, 0x5760b59809f0742b], [0xaa7cee5833842fad], false, [0xe34d83ab05475a64, 0xb59bf3caa6d0224d, 0x1dda3f03d74a3d8])
+ self.add([0x6eaf30877d0b1df1, 0xb75804f125e91401, 0x6c87f22b1242c484], [0xa545c789587bbef2], false, [0x6eaf30877d0b1df1, 0xb75804f125e91402, 0x11cdb9b46abe8376])
+ self.add([0x1eb17ab3998b765e, 0x4d38bb2a7aef77f9, 0x5f63973ef54430bc], [0x58ee4ffc5d7f2c5e], false, [0x1eb17ab3998b765e, 0x4d38bb2a7aef77f9, 0xb851e73b52c35d1a])
+ self.add([ 0xf54b460bf608577, 0x6785ff8b6570ac25, 0xf8b28e44a49131cc], [0xf72c8079619fb6d4], false, [ 0xf54b460bf608577, 0x6785ff8b6570ac26, 0xefdf0ebe0630e8a0])
+ self.add([0xd10ff20b27192294, 0xa130a33d925b45a1, 0x81b5f713a6a047c], [0x31ae0ebff717ce91], false, [0xd10ff20b27192294, 0xa130a33d925b45a1, 0x39c96e313181d30d])
+ self.add([0xfd586edb5d67d04c, 0x7cf947f226a8b534, 0x5c4332d2addca54], [0x7db6df6207bef62a], false, [0xfd586edb5d67d04c, 0x7cf947f226a8b534, 0x837b128f329cc07e])
+ self.add([0x19f644a656a730ac, 0x2ea80a10722213e6, 0xb22385541be0cdfd], [0xf1e8d429a82e14a5], false, [0x19f644a656a730ac, 0x2ea80a10722213e7, 0xa40c597dc40ee2a2])
+ self.add([ 0xf1bbd7aa949ba8, 0xed9c710e13d20213, 0x90a7f6c6d0f01c5b], [0x11d02c3e1937974e], false, [ 0xf1bbd7aa949ba8, 0xed9c710e13d20213, 0xa2782304ea27b3a9])
+ self.add([0xf57d861c48e76cdc, 0xe3ed2001715c398f, 0x120fccb63578025a], [0xb0130232b98880a2], false, [0xf57d861c48e76cdc, 0xe3ed2001715c398f, 0xc222cee8ef0082fc])
+ self.add([0x5e9eb88829ab920d, 0x95b83da8a943c54b, 0xbf3ea47d0a1e4e0b], [0xefc5c31a6a0c650d], false, [0x5e9eb88829ab920d, 0x95b83da8a943c54c, 0xaf046797742ab318])
+ self.add([0x65a5de7fd03beb43, 0xbd1a3dbbbc859b02, 0x2d7c8470d5392c27], [0xc1d10b91f20da8ed], false, [0x65a5de7fd03beb43, 0xbd1a3dbbbc859b02, 0xef4d9002c746d514])
+ self.add([0xa6c4ba14243bd71f, 0x879cf72f9595fbfc, 0xaa95d6b43eb0403d], [0xdd2a2c466623ef44], false, [0xa6c4ba14243bd71f, 0x879cf72f9595fbfd, 0x87c002faa4d42f81])
+ self.add([0xba30dff3be47ed8f, 0xd2d6a6132046165e, 0x6bc06cd40ba87aa], [0x709430a361691a1a], false, [0xba30dff3be47ed8f, 0xd2d6a6132046165e, 0x77503770a223a1c4])
+ self.add([0xa44553ea060fc0f5, 0x2a4e329d17b26b78, 0x33f727cf22cba4d], [0xad2e35d527e81197], false, [0xa44553ea060fc0f5, 0x2a4e329d17b26b78, 0xb06da8521a14cbe4])
+ self.add([0xb2bc0c28a952f276, 0x75a844c6731e4307, 0x762316cbe1fbb752], [0x6533bfb271f837a7], false, [0xb2bc0c28a952f276, 0x75a844c6731e4307, 0xdb56d67e53f3eef9])
+ self.add([0x3aa850f1f20f9a44, 0x56f6b09f666c094d, 0xe1e057a613954e57], [0x26778ede5952f47a], false, [0x3aa850f1f20f9a44, 0x56f6b09f666c094e, 0x857e6846ce842d1])
+ self.add([0x70ca6577504cc38f, 0x7106a7f3627c3325, 0xa3afbd6080b1e6ec], [0x8c512f4dadd9b6a0], false, [0x70ca6577504cc38f, 0x7106a7f3627c3326, 0x3000ecae2e8b9d8c])
+ self.add([0x47d4341d9ceefc82, 0x4209853be45b5b39, 0xe3595125aff9a584], [0xd97c3f4505cf27b3], false, [0x47d4341d9ceefc82, 0x4209853be45b5b3a, 0xbcd5906ab5c8cd37])
+ self.add([0x741c3b0c7672d1b8, 0xa008b4c64613dd26, 0x42a3cc0cd5473bf0], [0xd3c0852abc823b5a], false, [0x741c3b0c7672d1b8, 0xa008b4c64613dd27, 0x1664513791c9774a])
+ self.add([0x6caa74e2e0182044, 0x8513b1aa3841e264, 0xc5f33174c3a1f83], [0x78d13c8dfa633c37], false, [0x6caa74e2e0182044, 0x8513b1aa3841e264, 0x85306fa5469d5bba])
+ self.add([0x2ca37a9775c5ddd6, 0x5a43e2bc3d44cc3d, 0xe85a75712db15963], [0x958b5a3543c60655], false, [0x2ca37a9775c5ddd6, 0x5a43e2bc3d44cc3e, 0x7de5cfa671775fb8])
+ self.add([0x94975ba5e6582d20, 0xf3d9447a7f243a47, 0xb5cad724bccff1b], [0xa699ae4c8562421d], false, [0x94975ba5e6582d20, 0xf3d9447a7f243a47, 0xb1f65bbed12f4138])
+ self.add([0xce64b286f922f6eb, 0x312e15ec6544574e, 0x50b2212dae8d7fc], [ 0x238985ff1f261c0], false, [0xce64b286f922f6eb, 0x312e15ec6544574e, 0x743ba72ccdb39bc])
+ self.add([0xa41d984424a70552, 0x975e70721543a3cf, 0x57fc9386f7bd6429], [0x51c67901d579377d], false, [0xa41d984424a70552, 0x975e70721543a3cf, 0xa9c30c88cd369ba6])
+ self.add([0x6aa22cc79d07303b, 0x36e571fa24efe6aa, 0xe6fb0f4a0e0fe66e], [ 0x9a4fd564bfcfc09], false, [0x6aa22cc79d07303b, 0x36e571fa24efe6aa, 0xf0a00ca05a0ce277])
+ self.add([0x339809438fc307fc, 0xa2fbbcf932f3f6dc, 0xa07f33b9cb4d0078], [0x8bb19286a0ca8dd2], false, [0x339809438fc307fc, 0xa2fbbcf932f3f6dd, 0x2c30c6406c178e4a])
+ self.add([0x76acc270226b7095, 0xce338ba6b8e3a1dc, 0x360109c42a1000c1], [0xa58c6c44ad6aa046], false, [0x76acc270226b7095, 0xce338ba6b8e3a1dc, 0xdb8d7608d77aa107])
+ self.add([0x4fc47cbdf920bec6, 0xc19bee65a84b1af7, 0xd9f9548034884bc], [0x4e3aa5f378485a6c], false, [0x4fc47cbdf920bec6, 0xc19bee65a84b1af7, 0x5bda3b3b7b90df28])
+ }
+
+ func test_add_3_by_2() {
+ self.add([0xab8acf3d48337806, 0xd0953e6dcaaa529, 0x7172f8072a953ba5], [0x849dfdb63336f708, 0xad7e3ad41e98d933], false, [0xab8acf3d48337806, 0x91a7519d0fe19c32, 0x1ef132db492e14d8])
+ self.add([0x19d25ae84ba3a428, 0x95d291639e086295, 0xa63e1e49508c2785], [0x585f9d318d07fecb, 0x81b8e3f3192cd6b7], false, [0x19d25ae84ba3a428, 0xee322e952b106161, 0x27f7023c69b8fe3c])
+ self.add([ 0x1a34194d82aef40, 0xfd8ab58142257c16, 0xe45866421db82c84], [0xee0124e503fafd2e, 0x3467fac1039258d3], false, [ 0x1a34194d82aef41, 0xeb8bda6646207945, 0x18c06103214a8557])
+ self.add([0x54dd347e5d4bb64b, 0x303620423f05fd8a, 0xc9b6144d423ed9cf], [0x6d5b6df39f67e3f4, 0x872e78a695926686], false, [0x54dd347e5d4bb64b, 0x9d918e35de6de17f, 0x50e48cf3d7d14055])
+ self.add([0x9ae1fd3f34b81cb5, 0xef905ed08eee87ac, 0xfcdf6a7f87fd7009], [0xc37afe7708192ac2, 0xaadb7781d7a7d3a3], false, [0x9ae1fd3f34b81cb6, 0xb30b5d479707b26f, 0xa7bae2015fa543ac])
+ self.add([0xb5e6a75a392ed918, 0x888811c6d6510c73, 0x6cfa236186ec83bc], [0xcce8a337e05e0f1b, 0x3552952163f351c8], false, [0xb5e6a75a392ed919, 0x5570b4feb6af1b8e, 0xa24cb882eadfd584])
+ self.add([0x16d57e994fd46faf, 0x7eac447127cc6282, 0xbb2749494d77d0d9], [0xe07d787f34a60380, 0x659758f81997dd72], false, [0x16d57e994fd46fb0, 0x5f29bcf05c726603, 0x20bea241670fae4b])
+ self.add([0x5cbe095d95ef98d3, 0x5165b5ba8c615973, 0x2be6b41d0c369064], [0x4f5142354db012bd, 0x832d5ea00ca96c7a], false, [0x5cbe095d95ef98d3, 0xa0b6f7efda116c30, 0xaf1412bd18dffcde])
+ self.add([0x15153dd46de9c2d8, 0x90e3dc61657012d6, 0x71c6d57fb0a50614], [0x6538e858b57953cc, 0x60fa3f5a4b7edc6e], false, [0x15153dd46de9c2d8, 0xf61cc4ba1ae966a2, 0xd2c114d9fc23e282])
+ self.add([0x17d98d118c3adb90, 0xfa53dd27cedd7c0e, 0x674231a77317cfee], [0xec97b1016f7b6b22, 0xba64d575a979ff08], false, [0x17d98d118c3adb91, 0xe6eb8e293e58e731, 0x21a7071d1c91cef6])
+ self.add([0x3de5bfc6bfe060bb, 0x2961abaa14943299, 0x4fe7c4feabd29d35], [0xf72d58e1af81b57c, 0xc1d5a78fa41b9f16], false, [0x3de5bfc6bfe060bc, 0x208f048bc415e816, 0x11bd6c8e4fee3c4b])
+ self.add([0x14edadcc74a30eaf, 0xcd18b245b486ecd5, 0xe7693cafa2f87b2e], [0x43cd6f77a0fdb8c4, 0xb3bc19abfe6df534], false, [0x14edadcc74a30eb0, 0x10e621bd5584a59a, 0x9b25565ba1667062])
+ self.add([0x33084796a72159c2, 0xe7f05ddf1dc8b43, 0x12154d39838b2a00], [0xb1161555a875520e, 0x46afcc0709d85c84], false, [0x33084796a72159c2, 0xbf951b339a51dd51, 0x58c519408d638684])
+ self.add([0x84e6e54a002a84a6, 0xd670086d6078808a, 0x3cfc2bcaa16ef9a3], [0xd439a757414e5b1e, 0x5495a41c4f6b205f], false, [0x84e6e54a002a84a7, 0xaaa9afc4a1c6dba8, 0x9191cfe6f0da1a02])
+ self.add([0xea5f7d2ac2b01c65, 0x14d0142210d9507f, 0xf3466c06e023eef], [0x98b57ed6440ca771, 0x7b13f2fdf7792e5c], false, [0xea5f7d2ac2b01c65, 0xad8592f854e5f7f0, 0x8a4859be657b6d4b])
+ self.add([0x3310ba4d9ec83cc7, 0xbb4fda1b6e23140c, 0x2033ae8c02f5bab4], [0xe946d405d5d6f194, 0x817cf6241b4733ea], false, [0x3310ba4d9ec83cc8, 0xa496ae2143fa05a0, 0xa1b0a4b01e3cee9e])
+ self.add([0x1aaff0352f193d12, 0xe3bc2cb0ca27aac1, 0xcc283155520b05c2], [0x2b481b63f87891c9, 0x8353dd4f3637c77b], false, [0x1aaff0352f193d13, 0xf044814c2a03c8b, 0x4f7c0ea48842cd3d])
+ self.add([0x2766c47336d125f0, 0xce65b871d4c9e240, 0xb37c0dedb149bee], [0x259d4d4afb9cd0cc, 0x873b27aa91417164], false, [0x2766c47336d125f0, 0xf40305bcd066b30c, 0x9272e8896c560d52])
+ self.add([0x846b2fec242cff03, 0x4d7530a98b6ce04b, 0xc3c4e927c309b294], [0xd6fa83f8ea80e4cb, 0x44984e04d4737b15], false, [0x846b2fec242cff04, 0x246fb4a275edc517, 0x85d372c977d2da9])
+ self.add([0x26f72ccbd214fad4, 0x8678e6d03dff24e0, 0x1e72ad8b702ee26c], [0x56256697fbc179f7, 0x1c3c6d9d3a337ae], false, [0x26f72ccbd214fad4, 0xdc9e4d6839c09ed7, 0x2036746543d21a1a])
+ self.add([0x3f0f2867d298048c, 0x14eecc81185714c6, 0xe347c4c51c4587ac], [0xc3f11a4a90a96470, 0x6768439b044fb1d5], false, [0x3f0f2867d298048c, 0xd8dfe6cba9007937, 0x4ab0086020953981])
+ self.add([0x204d482093851d82, 0x73f462ff162502d6, 0x7f7a406cf85d7c0a], [0x634dbf9a2170b7bd, 0x2f411e1d4bc7fd80], false, [0x204d482093851d82, 0xd74222993795ba93, 0xaebb5e8a4425798a])
+ self.add([0x1990b3179cd74a8f, 0x74310b2612a9fbb8, 0xb26f356b38454875], [0x2ef95eca600279b0, 0x81c6a9d8b53f5e4b], false, [0x1990b3179cd74a8f, 0xa32a69f072ac7569, 0x3435df43ed84a6c0])
+ self.add([0xeb4f7833c7a58c83, 0x84f40267556ba8e8, 0x6539ab4a7273184b], [0xbcd45c21fcf5ee90, 0xd2a1b88d1436f052], false, [0xeb4f7833c7a58c84, 0x41c85e8952619779, 0x37db63d786aa089d])
+ self.add([0x2b1f18861f1df477, 0x3795497b1303f875, 0xe4ac3ebda8b95a4], [0x504929af5e3b85d2, 0x122bdbac97fc8846], false, [0x2b1f18861f1df477, 0x87de732a713f7e47, 0x20769f9872881dea])
+ self.add([0x975ffaaf931285e7, 0x8ab7d63ed4a03367, 0xb3803b5242ad3631], [0x837b25452636c905, 0xc3577ada338da2b2], false, [0x975ffaaf931285e8, 0xe32fb83fad6fc6d, 0x76d7b62c763ad8e3])
+ self.add([ 0x21693f437955cbd, 0xd9837e24ea849a02, 0x3a6880e7b8b9ad89], [0x56e2ad99c0a77ca8, 0xdb133198689aa413], false, [ 0x21693f437955cbe, 0x30662bbeab2c16ab, 0x157bb2802154519c])
+ self.add([ 0x9f0afc63383d76c, 0x972fdbf905def1af, 0x1dc3a1a07d8d5a59], [0xd7fcd7d52ad5f6fe, 0x464645749c0fd3b2], false, [ 0x9f0afc63383d76d, 0x6f2cb3ce30b4e8ad, 0x6409e715199d2e0b])
+ self.add([0xce29a2cf0f5f1890, 0xbea69f7c05912796, 0x38b3508d5d0bd2f8], [0xc6e0a7cba149742c, 0x687d94c0a4ad6749], false, [0xce29a2cf0f5f1891, 0x85874747a6da9bc2, 0xa130e54e01b93a41])
+ self.add([0xae28ddea2f158975, 0x8288e2095c8e9292, 0xf8c0bf239a76ce95], [0xa5f9a7458536ef63, 0x627afad39e0e839d], false, [0xae28ddea2f158976, 0x2882894ee1c581f6, 0x5b3bb9f738855232])
+ self.add([0x6b9c317a3e178e53, 0x7426e453341d0932, 0x1e929bd863b25da0], [0x31ea34080071f415, 0xeef3ff3c000af061], false, [0x6b9c317a3e178e53, 0xa611185b348efd48, 0xd869b1463bd4e01])
+ self.add([0x50e679a623ce1459, 0xd42dc9df8608523e, 0x799b53df3a3ea39e], [0xcfa5caf2244fb7d7, 0x39c837acb69de058], false, [0x50e679a623ce145a, 0xa3d394d1aa580a15, 0xb3638b8bf0dc83f6])
+ self.add([0x6416f9b8a278dca9, 0xea419b2d70eda694, 0xa143c90395cff131], [0xb6a532e852a11937, 0xa5f702485e2d656b], false, [0x6416f9b8a278dcaa, 0xa0e6ce15c38ebfcc, 0x473acb4bf3fd569c])
+ self.add([0x8692a988bf557afc, 0x4f8c216bbd4e5fcc, 0x2f800f00e6a76864], [0xa185432e792b7cab, 0x710efc2e8ab0f571], false, [0x8692a988bf557afc, 0xf111649a3679dc77, 0xa08f0b2f71585dd5])
+ self.add([0x50dca082c79dfd59, 0x9d7f75e9b13fb5df, 0x6ed7d7ba90bc4e70], [0xc1f86f63bd5f2911, 0xa09cfe1d0cca9ea3], false, [0x50dca082c79dfd5a, 0x5f77e54d6e9edef1, 0xf74d5d79d86ed13])
+ self.add([0x557cb7b21b70f1cb, 0x56c6f696ca0be94f, 0x2ac5bdd56a36831f], [0x61e046925b4beb06, 0xc43f9a189cbd5b77], false, [0x557cb7b21b70f1cb, 0xb8a73d292557d455, 0xef0557ee06f3de96])
+ self.add([0xabdf969e956a2583, 0x853aee9103065be0, 0x1fbd7fee0cb895f2], [0x9c8a5649f4693446, 0xdd4009faddf71053], false, [0xabdf969e956a2584, 0x21c544daf76f9026, 0xfcfd89e8eaafa645])
+ self.add([0x12fd2c3034e08f54, 0xba920762300db760, 0x3eca7d6d317afcdf], [0xf9a264bd53bd6f21, 0x5f0eb8d0215ea381], false, [0x12fd2c3034e08f55, 0xb4346c1f83cb2681, 0x9dd9363d52d9a060])
+ self.add([0x86c0a580c035701c, 0x6caf3d657ef6bdfd, 0x78503d196cfcadb5], [0xddfec6ca21707ab9, 0x3572a863fe149ec6], false, [0x86c0a580c035701d, 0x4aae042fa06738b6, 0xadc2e57d6b114c7b])
+ self.add([0xfb8f94891724ea3f, 0xc1683be9afd577e5, 0x768ff8d8265f2aef], [0x4531e575a95bb35d, 0xd2a5313490484b50], false, [0xfb8f94891724ea40, 0x69a215f59312b43, 0x49352a0cb6a7763f])
+ self.add([0xcc35ab828dfea671, 0x7b9e2ced9b819ba, 0x28638ad39ec57832], [0x9724a4de379e9846, 0x2dae69f24393585e], false, [0xcc35ab828dfea671, 0x9ede87ad1156b200, 0x5611f4c5e258d090])
+ self.add([0x4b39990a0f1ef5cb, 0x707dc12499028932, 0x74a236ac5e3a2a81], [0x7fafbffc3a994591, 0x3e113d1dbcec8b2c], false, [0x4b39990a0f1ef5cb, 0xf02d8120d39bcec3, 0xb2b373ca1b26b5ad])
+ self.add([0x994cc5fd9bb5e4f0, 0x705f1b4b3684b609, 0x41d10f1a278eae12], [ 0xa3064fe41a47f97, 0xa46262f5ee341ccf], false, [0x994cc5fd9bb5e4f0, 0x7a8f8049782935a0, 0xe633721015c2cae1])
+ self.add([0xeee5fec01a6c4cbf, 0x4447e50204fda08e, 0x3b999d654d516c9d], [0xcb13ebab40b3c058, 0xf99e5fffa30b9ee8], false, [0xeee5fec01a6c4cc0, 0xf5bd0ad45b160e7, 0x3537fd64f05d0b85])
+ self.add([0x6e6bc8bb8c4dca62, 0xbe2a79d7d4ab689a, 0x1b7f1b3a3cf1359a], [0x9ce9c874dfba0944, 0x16f51ef8a981bffd], false, [0x6e6bc8bb8c4dca63, 0x5b14424cb46571de, 0x32743a32e672f597])
+ self.add([ 0x8234509d806ae8e, 0x581a9168e027da4f, 0x3b26e566b98eed59], [0xa818f2d6a5f0ffca, 0xffbd8e399f50456], false, [ 0x8234509d806ae8f, 0x33843f8618da19, 0x4b22be4a5383f1af])
+ self.add([0x562a911477084921, 0x1444d1906512aa4c, 0x67c1608acc1c66d0], [0x639b30811ff7e080, 0x28f447fce62fa647], false, [0x562a911477084921, 0x77e00211850a8acc, 0x90b5a887b24c0d17])
+ self.add([0x3502dd37db459866, 0x14a1409345926cc7, 0x78ad3d33e890c867], [0x350c2a8d5c4c077b, 0x21b79eb07f0f918], false, [0x3502dd37db459866, 0x49ad6b20a1de7442, 0x7ac8b71ef081c17f])
+ self.add([0x1aaf78b27a2d529c, 0x4eedf43b79527f7, 0xf4e56baabfbc16c5], [0x9ac8bc75e7c11946, 0x84244719493d4f25], false, [0x1aaf78b27a2d529c, 0x9fb79bb99f56413e, 0x7909b2c408f965ea])
+ self.add([0xddaecfcb0785cfcc, 0xcc6dfe5e5792bb60, 0x67fb3e07a883be6], [0x24e6652afe4a2f26, 0x724b93987ca8d2eb], false, [0xddaecfcb0785cfcc, 0xf154638955dcea86, 0x78cb4778f7310ed1])
+ }
+
+ func test_add_3_by_3() {
+ self.add([0xd5291e33e146108c, 0x3f966bab2ef9a752, 0x4d3d83d84e5bc3cc], [0x3dc14fb08571ecc3, 0x8d6349b1458cbc74, 0x52b53dbc39879768], false, [ 0x1, 0x12ea6de466b7fd4f, 0xccf9b55c748663c6, 0x9ff2c19487e35b34])
+ self.add([0xfb86a720b9bde2f1, 0xcc688d6998deb49c, 0x5a6b3a8f6b6a9e76], [0xc93988b7f757e50f, 0x2bba648fc25bb034, 0xe7cf6351bf7b5bad], false, [ 0x1, 0xc4c02fd8b115c800, 0xf822f1f95b3a64d1, 0x423a9de12ae5fa23])
+ self.add([0x732bb03823e7bfd7, 0x529244963366da56, 0x7718489a465d6694], [0xcd5fba7a46f43aa7, 0x4caf7838f2d9bc62, 0x613be7ec0bccdee1], false, [ 0x1, 0x408b6ab26adbfa7e, 0x9f41bccf264096b8, 0xd8543086522a4575])
+ self.add([ 0x801838321caea3, 0xaa3f72d2636707e8, 0xfbd33f28063cbc13], [0x4e1bdde235b523e7, 0x3995e88a6b3a8b56, 0xbd550283e4a5b509], false, [0x4e9bf61a67d1d28a, 0xe3d55b5ccea1933f, 0xb92841abeae2711c])
+ self.add([0x58c44434988509c7, 0xb122944f7970d214, 0x6c24b34f1175e1cc], [0xcc460a781ec42aae, 0x82ae90654be743ad, 0xbb8a5590481d9e4], false, [ 0x1, 0x250a4eacb7493476, 0x33d124b4c55815c1, 0x77dd58a815f7bbb0])
+ self.add([ 0x46c84a5f398012e, 0xe4ea3523f18603fc, 0xb516e230c685439a], [0x2fe5736fc414fc39, 0x61de3ce42b525b92, 0xc3902543b7541dcc], false, [0x3451f815b7acfd68, 0x46c872081cd85f8f, 0x78a707747dd96166])
+ self.add([0xfb77b86489e91464, 0xc19988fd0377662e, 0xc7ca2a5cd3789812], [0xc37135ab056d2618, 0x99982e022d02ccdc, 0x9b3339ea0a8577d0], false, [ 0x1, 0xbee8ee0f8f563a7d, 0x5b31b6ff307a330b, 0x62fd6446ddfe0fe2])
+ self.add([0xbfe74bc488da0392, 0xe900bc86450f33af, 0xffbcfba5aa5278bb], [0xe2bd2efd4a5b2325, 0x4c5f67668f68ad8d, 0x3259fec5c2f37544], false, [ 0x1, 0xa2a47ac1d33526b8, 0x356023ecd477e13d, 0x3216fa6b6d45edff])
+ self.add([0x69afa77ad8225c69, 0x1ec898dfb212f0b0, 0xc046a0f96c443d1c], [0x34f0fc8da781cebe, 0x4a4bd243459d5636, 0xca932dfd509ab221], false, [0x9ea0a4087fa42b27, 0x69146b22f7b046e7, 0x8ad9cef6bcdeef3d])
+ self.add([0xdd7d931fd2187d5b, 0x6f13320e75408283, 0xa350ab16b2841b83], [0x6703a74e0bc9cde8, 0x376d58a12975c1d5, 0xa27cbea04f8c409c], false, [ 0x1, 0x44813a6ddde24b43, 0xa6808aaf9eb64459, 0x45cd69b702105c1f])
+ self.add([0x9f1c78eba4ac2319, 0x733177dee3daa1c2, 0x25a0967e96e5caaa], [0xe494f48b2cbf2388, 0xa35c6b0a579a9712, 0xaac4d71012e949e7], false, [ 0x1, 0x83b16d76d16b46a2, 0x168de2e93b7538d4, 0xd0656d8ea9cf1491])
+ self.add([0x14bb54bc9303b2aa, 0x52bc4a822547e028, 0xebc7228b7c02028d], [0x72a4d600cc529e86, 0x7fea3a7f88067562, 0x20cc06a756452046], false, [0x87602abd5f565130, 0xd2a68501ad4e558b, 0xc932932d24722d3])
+ self.add([0x70b27240056b7680, 0x2b957a4de4c53b, 0x724fda3b9257beeb], [0xf002d9f9bc27c17c, 0x6b60abbc40dc9e0d, 0x9feba3faad3524df], false, [ 0x1, 0x60b54c39c19337fc, 0x6b8c41368ec16349, 0x123b7e363f8ce3ca])
+ self.add([0xc7eec283445ae076, 0x21267ad2f5979326, 0x7b3c4aa193259323], [0x28fcecf99c0c291e, 0xeb1b592962f6b7d0, 0x9b649182232ccead], false, [0xf0ebaf7ce0670995, 0xc41d3fc588e4af7, 0x16a0dc23b65261d0])
+ self.add([0xa0e4558ec8357acb, 0x3777151fe83ad8e6, 0x97d81f548db34d2a], [0xd1d09e0e7e8604ac, 0xb343de73c2b46e75, 0xfa4546738c771404], false, [ 0x1, 0x72b4f39d46bb7f77, 0xeabaf393aaef475c, 0x921d65c81a2a612e])
+ self.add([0xfa746e96de33e248, 0xb262a41cd58c796f, 0xc6ccbe89b4af6e1c], [ 0xf7e7b1d4142716f, 0x3006324f25f0a7dd, 0xffe35f009ff50711], false, [ 0x1, 0x9f2e9b41f7653b7, 0xe268d66bfb7d214d, 0xc6b01d8a54a4752d])
+ self.add([0xc1d47b73353ddfaf, 0x6b91308de4a8d304, 0x218bb814c0ae5c60], [0xd77fcb9db5d208b6, 0x4285c8dd38ac286d, 0x366880d6ea3f6695], false, [ 0x1, 0x99544710eb0fe865, 0xae16f96b1d54fb71, 0x57f438ebaaedc2f5])
+ self.add([0x1b834a20c2f11668, 0xf7d3675381f5eb3b, 0x414a22895cef306c], [0x23cc6306aea1a234, 0x3d760d5cd7664095, 0x8ad351b01c4eb819], false, [0x3f4fad277192b89d, 0x354974b0595c2bd0, 0xcc1d7439793de885])
+ self.add([0x4f7fa76b4dedcc81, 0x809dd5b2edf43721, 0xb9362680b90f1f6e], [0x5d5885d7ada0439e, 0xc2f2a940a6a74e34, 0x8cb37eedfcaeea66], false, [0xacd82d42fb8e1020, 0x43907ef3949b8556, 0x45e9a56eb5be09d4])
+ self.add([ 0x6692e4d6f9b4c72, 0x8cc4b0869c36e301, 0x7dbb0b43e5659c48], [0x814dae7b57e85a4d, 0xcf6a3c1f0071d484, 0x5d529fe050ed09c8], false, [0x87b6dcc8c783a6c0, 0x5c2eeca59ca8b785, 0xdb0dab243652a610])
+ self.add([0x3a17bb4dda51ce6e, 0xa10bfa62a1bf255a, 0x61d9c620b6b9e7cf], [0x62858fd4b6651a16, 0x66ccba4af044c8af, 0xc2f2825c65b57373], false, [0x9c9d4b2290b6e885, 0x7d8b4ad9203ee0a, 0x24cc487d1c6f5b42])
+ self.add([0x29f90a36efe34630, 0xfa7ab383a9e4e5cc, 0x7387b69af4d86486], [0xfbf6ab297e412a5d, 0x42eec09efcc8fc6f, 0x1b865ccc6b718358], false, [ 0x1, 0x25efb5606e24708e, 0x3d697422a6ade23b, 0x8f0e13676049e7de])
+ self.add([0x3d70433fdcea049d, 0xe02eee18a2a3d5a, 0xc688f3f36a442068], [0x2667fce60f366913, 0xca3a12e19d7a0c79, 0xee1b45be9b1c1dd1], false, [0x63d84025ec206db0, 0xd83d01c327a449d4, 0xb4a439b205603e39])
+ self.add([ 0xbc379eff9b3953e, 0xaead773345742d52, 0x7150eb9c8a222d5b], [0x3275a79cb07b6cec, 0x6400437fbaff07c2, 0x6b001090fb2dfac6], false, [0x3e39218caa2f022b, 0x12adbab300733514, 0xdc50fc2d85502821])
+ self.add([0x79a99f3fa24782b2, 0x7b00a3a707044b5a, 0x2f045ca9cbaa7616], [0xbba7a3ca19a38d25, 0x25ca6a16051dcf76, 0x7a1a30584e261e56], false, [ 0x1, 0x35514309bbeb0fd7, 0xa0cb0dbd0c221ad0, 0xa91e8d0219d0946c])
+ self.add([0xc6dc908b5ede7d0f, 0xab8b1c0479cb5b78, 0x4ddfd533f14ff678], [0xc83bbb2397e36897, 0xcc87a092f8fa1ab9, 0x35262f1d2b3cce5b], false, [ 0x1, 0x8f184baef6c1e5a7, 0x7812bc9772c57631, 0x830604511c8cc4d3])
+ self.add([0x10d5c7ec036f1767, 0x1fac0f44034f9999, 0xe1eaacff14188c2], [0x912ae8f6d6fb4ce7, 0xda36e57852667747, 0x22ed251635bfad3], false, [0xa200b0e2da6a644e, 0xf9e2f4bc55b610e0, 0x104d7d21549d8395])
+ self.add([0xfcfc66b0caacd05b, 0xf5d886d5310a88ec, 0x6c877c1e306f2a22], [0x2fb1d734f1bd3bcd, 0xa59d4b6545003331, 0xd790db430566db0a], false, [ 0x1, 0x2cae3de5bc6a0c29, 0x9b75d23a760abc1e, 0x4418576135d6052c])
+ self.add([ 0x45370e107b19d04, 0x20c4722375aa6b08, 0xc65535bff1aac182], [ 0x43b6b683cf785c6, 0x442d7f062526ffee, 0x2c7a1eaa6d6b621a], false, [ 0x88edc4944a922ca, 0x64f1f1299ad16af6, 0xf2cf546a5f16239c])
+ self.add([0xfbd4cfde203e5e07, 0x3b3abee78a622a08, 0x888011868f98331a], [0xe4544568d9d52b1c, 0xf002b2bfd42e844, 0x85f50052b6324439], false, [ 0x1, 0xe0291546fa138923, 0x4a3aea1387a5124d, 0xe7511d945ca7753])
+ self.add([0xf03f3f7a82e9597e, 0x2021edd0edbc5266, 0x2760520ccc6a4216], [0x172c87968b40f8ef, 0xa648b46c7a672709, 0x5f09232d51e7ca6f], false, [ 0x1, 0x76bc7110e2a526d, 0xc66aa23d6823796f, 0x8669753a1e520c85])
+ self.add([0x2c8288eacaebc1c4, 0x43b754e5a31b91fa, 0x5cf1be7a5e80da82], [0x67b2bf8c010e5179, 0x805557bd36b7af87, 0xe3366ec62f1e60b], false, [0x94354876cbfa133d, 0xc40caca2d9d34181, 0x6b252566c172c08d])
+ self.add([0x65d91ed645b771ac, 0x7673d345567f70a1, 0x673485a9e2bb025a], [0x652f5b07430e8f62, 0xedf2a846cdca76c, 0x3b4e29b696f547e], false, [0xcb0879dd88c6010e, 0x8552fdc9c35c180d, 0x6ae968454c2a56d8])
+ self.add([0xb2ec59e216644ea7, 0xf236c578e2d4f73e, 0x76300f6846919ce], [ 0x7ad20e0d9cfeb05, 0xa51047e3e8b9b581, 0x1e1c8caf44b351f5], false, [0xba997ac2f03439ad, 0x97470d5ccb8eacbf, 0x257f8da5c91c6bc3])
+ self.add([0x2148067672d7474c, 0x819532e21364e992, 0x21e8a2c907fe19ed], [0x8403b2cb606c5b0d, 0xa1e3fa5a15f68f03, 0x2c9c34f5ae93279e], false, [0xa54bb941d343a25a, 0x23792d3c295b7895, 0x4e84d7beb691418b])
+ self.add([0x229626063690ec32, 0xd41f339f0ddf6cbc, 0x21ddd66c2f697cfa], [0x7f00e4ccdf9129ae, 0xe76ddfd4c2a98725, 0x4ccb107ef716ddab], false, [0xa1970ad3162215e1, 0xbb8d1373d088f3e1, 0x6ea8e6eb26805aa5])
+ self.add([0x214cf8cdbe2bf564, 0xf3926e835f7e130c, 0x528ddc43332bf6d1], [0x2928d19e75804c00, 0xcee45985467297b7, 0xde661761f630efdd], false, [0x4a75ca6c33ac4165, 0xc276c808a5f0aac4, 0x30f3f3a5295ce6ae])
+ self.add([0x6b1498425b29cde3, 0xc6a26ba9898e566c, 0xfe939c2c1e0fc117], [0xf65672826ab99382, 0xb6b451782d7d08b4, 0x34cda0abc9e6ee9d], false, [ 0x1, 0x616b0ac4c5e36166, 0x7d56bd21b70b5f21, 0x33613cd7e7f6afb4])
+ self.add([0x2f1eb96c9e06ac97, 0xf98a51cb9d3f63ad, 0x9293e6e8f4392157], [0x85fa0b7334f7a500, 0x946a83e119434f17, 0xa044df54a89cbda7], false, [0xb518c4dfd2fe5198, 0x8df4d5acb682b2c5, 0x32d8c63d9cd5defe])
+ self.add([0xef5022e3f5f26aec, 0x3e214813253e8f62, 0x2dcd3e40a95fdd3], [ 0x2f246c281259c41, 0x8a12a0c842c23dad, 0xc9381d879b4fe3d6], false, [0xf24269a67718072d, 0xc833e8db6800cd0f, 0xcc14f16ba5e5e1a9])
+ self.add([0x1ba904047d9c2f4c, 0x3cf915d124f0376a, 0x183004e094c89f38], [0xb90d334a3cb58d08, 0x2ed8cd0f8554197f, 0xb10da18f46d097a4], false, [0xd4b6374eba51bc54, 0x6bd1e2e0aa4450e9, 0xc93da66fdb9936dc])
+ self.add([0x367aa71a56e99ef2, 0x93fa27cb00aa5b8c, 0xc96c9a318843de], [0xb815034b998baf2b, 0x2ac9d1979b4b4a43, 0xc0b1a90548e636c8], false, [0xee8faa65f0754e1d, 0xbec3f9629bf5a5cf, 0xc17b159f7a6e7aa6])
+ self.add([0xd89072f1d0ba51bd, 0xfb16d7ce60ee8eef, 0x96cc9b81e93c84b1], [0x36dc94b35be74d1e, 0xb818ad721e7d3ccb, 0xb6d0e0c41960b5b2], false, [ 0x1, 0xf6d07a52ca19edc, 0xb32f85407f6bcbbb, 0x4d9d7c46029d3a63])
+ self.add([0x1a53628604fe205d, 0xce3d4a9b063a46c3, 0x88be5f39a357ab78], [0x7a1c7d147c965d31, 0x16dbadfd8eb52417, 0xdf0297f2ddeb6ecf], false, [0x946fdf9a81947d8e, 0xe518f89894ef6adb, 0x67c0f72c81431a47])
+ self.add([0x249279ebe6704446, 0xd89f5a43cc6ca897, 0xe3fdd6cef28050bc], [0xcf2c6ab6a53f003d, 0xdf62c8b3ac347dec, 0xd1d4452c16111766], false, [0xf3bee4a28baf4484, 0xb80222f778a12684, 0xb5d21bfb08916822])
+ self.add([0x6d33720226c9d8d0, 0x7d9e6fb283ad4452, 0x277efdb6b02a5b62], [0x5e4c21849a4b549c, 0x1adc5e39d23ad23d, 0xb417d097f71b9a35], false, [0xcb7f9386c1152d6c, 0x987acdec55e8168f, 0xdb96ce4ea745f597])
+ self.add([0x4c79e7c31290b751, 0xf913856a1dc5b27, 0xe44b7fe61cb840f7], [0x2272c8e20d7535c3, 0x152beeac63658632, 0xb8695acd7af58ca0], false, [0x6eecb0a52005ed14, 0x24bd27030541e15a, 0x9cb4dab397adcd97])
+ self.add([0x244e2cb2fc559e3a, 0x72569280896c54a8, 0x3aa132af3f46cab0], [0x2fb0cef8fad3e0d4, 0xba126e3609a676f2, 0x98784df0f06232c2], false, [0x53fefbabf7297f0f, 0x2c6900b69312cb9a, 0xd31980a02fa8fd72])
+ self.add([0x2044864ff9e7cdea, 0x82669e1938ff3552, 0x3cd46b38b9e7780a], [ 0x19279c1398d366d, 0xc6264433997484be, 0x9743b15256fa3cae], false, [0x21d7001133750458, 0x488ce24cd273ba10, 0xd4181c8b10e1b4b8])
+ self.add([ 0xcf3935025c81028, 0x89cafe7523d275dc, 0x14a7a742053248d2], [0x7a749cf4ea601a92, 0x5228b5715630f739, 0x5fcd0db71db2fdc7], false, [0x8768304510282aba, 0xdbf3b3e67a036d15, 0x7474b4f922e54699])
+ }
+
+ func test_add_3_by_4() {
+ self.add([0x1c1d08bd55190fcc, 0xafaecb1c6f9291dc, 0x7eacfea78d98dc0b], [ 0xe171415873f5a44, 0x9452fd303edd17da, 0x9085763e706b7713, 0x5f3e481f0a72c566], false, [ 0xe171415873f5a44, 0xb07005ed93f627a7, 0x4034415adffe08ef, 0xddeb46c6980ba171])
+ self.add([0x1a3dec77abcd7b57, 0x923df14044fb6ec4, 0xd1e258c9b0ece706], [0x92714e74cf665550, 0xe2795d79c8db77cd, 0x472268f155037e0, 0xbb8dd495a7de02df], false, [0x92714e74cf665550, 0xfcb749f174a8f324, 0x96b017cf5a4ba6a5, 0x8d702d5f58cae9e5])
+ self.add([0x74196e8bb4d551df, 0xbcc563b31c0cfa6, 0xa0c6bce7e31df96c], [0x47e74f9dc6dfe985, 0x2ccf93c1db6afab4, 0x77f9bcd051e7526a, 0xeeaf91070271ca7], false, [0x47e74f9dc6dfe985, 0xa0e9024d90404c93, 0x83c6130b83a82210, 0xafb1b5f853451613])
+ self.add([0xd0ecffdf5b5e8a15, 0xe2c8624d64a5c44, 0x5e707719ba997156], [ 0xdaaf9d6175b4da7, 0x1a35aa8cf2fd4445, 0x50e7d455a8300868, 0xe527e5b41d40c2be], false, [ 0xdaaf9d6175b4da7, 0xeb22aa6c4e5bce5a, 0x5f145a7a7e7a64ad, 0x43985ccdd7da3414])
+ self.add([0x488510301a3983d0, 0x29668ba963bc7bd4, 0xb0280a7872c03943], [0xd43b3a0ebd27b640, 0x22d9ce756f82a60a, 0xdc19500b49aff985, 0x5fefefcfbf0f686c], false, [0xd43b3a0ebd27b640, 0x6b5edea589bc29db, 0x57fdbb4ad6c755a, 0x1017fa4831cfa1af])
+ self.add([0x90eddc32e8360524, 0xd26188287a8f51d5, 0x878bf3051dd26808], [0xda679a89ed058f67, 0x8c61502b879e7589, 0x30dde2558a579877, 0xc673436a510bbf4c], false, [0xda679a89ed058f68, 0x1d4f2c5e6fd47aae, 0x33f6a7e04e6ea4d, 0x4dff366f6ede2754])
+ self.add([0x4849fc375c346dc3, 0x8a9ac9e645e66fb, 0x2fbd4a7f49d6736c], [0xa1457015c1f2808f, 0x8ed9f851be73bc0b, 0x78f1f6a506191534, 0x78f12714082ff2d0], false, [0xa1457015c1f2808f, 0xd723f4891aa829ce, 0x819ba3436a777c2f, 0xa8ae71935206663c])
+ self.add([0x23357224a63f1bb4, 0x811124651ebb785b, 0x4de749d4615236b3], [0x24f418dd6f3be61d, 0x2cba0663650818df, 0x1c80d1fe63f4c362, 0x2d1e7e46391a6be], false, [0x24f418dd6f3be61d, 0x4fef78880b473493, 0x9d91f66382b03bbd, 0x50b931b8c4e3dd71])
+ self.add([0x999dc6807d124bbe, 0x3fea4b129d8546c8, 0xbb398f3248fcd1f1], [0x5b02117bfda65a53, 0x21db8f631bed251, 0xa4f4ff24aa120fe0, 0xcaacdaa8be8b520b], false, [0x5b02117bfda65a53, 0x9bbb7f76aed11e0f, 0xe4df4a37479756a9, 0x85e669db078823fc])
+ self.add([0x937e1ad56772e5f7, 0x3bbfcd0473643ff6, 0xfcc572b50a5af958], [0xa810ccf263cceadb, 0x614394b617744087, 0xcf73d570f9a3beaa, 0xb7927969d49e5657], false, [0xa810ccf263cceadb, 0xf4c1af8b7ee7267f, 0xb33a2756d07fea1, 0xb457ec1edef94faf])
+ self.add([0xa3c419ceb3efdd3b, 0x34b2dc1f52711773, 0xb04b4da720b5aa27], [0x252c5797c391a644, 0x554cec6adc2c77b7, 0x88fe131e5715013a, 0x3941b8c141f2aa01], false, [0x252c5797c391a644, 0xf9110639901c54f2, 0xbdb0ef3da98618ad, 0xe98d066862a85428])
+ self.add([0x46e51e9b29dae15d, 0x358e5efa437319a, 0x4fbf205237382318], [0xece3546637472d33, 0x2e9b6b355c7f0098, 0x5d0856ea519b36c0, 0x85d71ce646d5eb9c], false, [0xece3546637472d33, 0x758089d08659e1f5, 0x60613cd9f5d2685a, 0xd5963d387e0e0eb4])
+ self.add([0xca482384ec67e78f, 0x5485ddedfef3ceac, 0xe6842fe8b32685d7], [0x6cd68be8e9a4323b, 0xafd87c659f8bc75a, 0x47b5d97e359bc56b, 0x4613d4ba87b57961], false, [0x6cd68be8e9a4323c, 0x7a209fea8bf3aee9, 0x9c3bb76c348f9418, 0x2c9804a33adbff38])
+ self.add([0x14fb76489dc32e53, 0x80254733ce15f7, 0xff7c64861b844f0a], [0x2dabc23ac6275fc7, 0xbdc6b3ea13949611, 0xdff36252a1c3cffc, 0xd6c10ff76e4f3428], false, [0x2dabc23ac6275fc7, 0xd2c22a32b157c464, 0xe0738799d591e5f4, 0xd63d747d89d38332])
+ self.add([0x1b380951a837e6ea, 0xaddedc68dce00aa4, 0x12ca4c9f2561a499], [0x8187b78111ec2030, 0xee83dba1275584c3, 0xabc0c3ac9432fdd1, 0x3bc03e3276fd4932], false, [0x8187b78111ec2031, 0x9bbe4f2cf8d6bae, 0x599fa01571130875, 0x4e8a8ad19c5eedcb])
+ self.add([0xcd48ebc420ccf585, 0xcd8da7388d24e589, 0x5cdb9ea0a0938a0c], [0x5ef18ffa86cf0905, 0xb904d6109c8e3517, 0x69f439151b718dcb, 0xbf9297a8e53648ce], false, [0x5ef18ffa86cf0906, 0x864dc1d4bd5b2a9d, 0x3781e04da8967355, 0x1c6e364985c9d2da])
+ self.add([0x756d421313273193, 0x128909a7a8567e38, 0x8e93839d08374e90], [0x57b0ae59d9808f0f, 0x6372bf41b7225a66, 0x9743237746cd200e, 0xb36678536b5aa8ce], false, [0x57b0ae59d9808f0f, 0xd8e00154ca498bf9, 0xa9cc2d1eef239e47, 0x41f9fbf07391f75e])
+ self.add([0xf8a52509d25442c9, 0x8327e52ef4037f1e, 0x296f950df1b8ada3], [0x842cee9ea1a84cca, 0x5e4d6c66e3a624a0, 0xbb37643b3c3891e2, 0x2e02a327ee7c7588], false, [0x842cee9ea1a84ccb, 0x56f29170b5fa676a, 0x3e5f496a303c1100, 0x57723835e035232b])
+ self.add([0x60380238d41e50de, 0x5629462a20eb2080, 0x67bf1ccc86f7c11c], [0x6593394015a90399, 0xbb661eaee58fd944, 0xb65a69f915d61317, 0xe73e1ed7d2a7b071], false, [0x6593394015a9039a, 0x1b9e20e7b9ae2a23, 0xc83b02336c13398, 0x4efd3ba4599f718d])
+ self.add([0xd94b153c7268eb00, 0x16067ad5a1f1305f, 0x63a58c150865b1f5], [0xec9536f72164b021, 0x704fecd3ea4ae80b, 0xe15c5c64e7ac418a, 0x3a31107eb12e274c], false, [0xec9536f72164b022, 0x499b02105cb3d30b, 0xf762d73a899d71e9, 0x9dd69c93b993d941])
+ self.add([0xb7f2e339ead467e2, 0xfc30041840910e6a, 0xabbc0f34fcee55e0], [0xe231df1bdab1dc06, 0x2e128c71056cbed8, 0x7ba110a6c9d22c5d, 0xda299ccf8b0b1aee], false, [0xe231df1bdab1dc06, 0xe6056faaf04126bb, 0x77d114bf0a633ac8, 0x85e5ac0487f970ce])
+ self.add([0x8dcc362a80c47c15, 0x93c46efd0cb427e1, 0xd79c2f1439c9a66b], [0x617b46e8cf8678a1, 0x1aacbd840ce8e801, 0x2089e9d095caa8a7, 0x97daea6cb3dcbfbc], false, [0x617b46e8cf8678a1, 0xa878f3ae8dad6416, 0xb44e58cda27ed089, 0x6f771980eda66627])
+ self.add([0xce74dc935008abc1, 0x540574dcc1c19485, 0xd8b9bd194b57fbc3], [0xcf5db15b144bb9bc, 0x1dbf1d3a30e3ffd0, 0x688a5d049d519dae, 0x789c2f4f46b12725], false, [0xcf5db15b144bb9bc, 0xec33f9cd80ecab91, 0xbc8fd1e15f133234, 0x5155ec68920922e8])
+ self.add([0x6d052004125383a0, 0xaa12205515453bae, 0xc062f315f82570e2], [0x12886a4d63061193, 0x81581064cd1807d9, 0xeaa7a13008051af, 0xd1da25fbf7b3d1a7], false, [0x12886a4d63061193, 0xee5d3068df6b8b79, 0xb8bc9a6815c58d5e, 0x923d1911efd94289])
+ self.add([0x72029661712967fc, 0x14f1ccd6d38ccb6e, 0x152a21a94770d9ab], [0x959fa63a6122d430, 0x2ea620fa39914169, 0x4f807c9681eebb67, 0xb97199fcb793e982], false, [0x959fa63a6122d430, 0xa0a8b75baabaa965, 0x6472496d557b86d5, 0xce9bbba5ff04c32d])
+ self.add([0x199861089a782593, 0x112a110107fae2e9, 0x6c2735d16d5082b4], [0xeb1090ee61f980ce, 0xe7d6ccb0356db05, 0x2e2e5635bd3ba187, 0xe065429f5cb55d25], false, [0xeb1090ee61f980ce, 0x2815cdd39dcf0098, 0x3f586736c5368471, 0x4c8c7870ca05dfd9])
+ self.add([0xa225c11714f9b6cd, 0xb0ee0ffc658f23ac, 0xca00812c506431a0], [0x369492d10c7305a2, 0x79b44371c66cbda3, 0x2917ba518b5b48bf, 0xf11c632d0e61685a], false, [0x369492d10c7305a3, 0x1bda0488db667470, 0xda05ca4df0ea6c6c, 0xbb1ce4595ec599fa])
+ self.add([0x6bd23f8a90ec123e, 0x1a29c53ef5af8839, 0xcb16727377baddb2], [0x9e9e7c3313e7ab85, 0x29cbf51dae6fb2d5, 0xded68d46b202ad85, 0x37b2dd9296c5a159], false, [0x9e9e7c3313e7ab85, 0x959e34a83f5bc513, 0xf9005285a7b235bf, 0x2c950060e807f0b])
+ self.add([0x7948952b5ec9d3dd, 0xcda91e63b4451803, 0xf3f9f36279951429], [0x7ee52eeed44af338, 0x36b6ff61dd11ecd7, 0x16222490f3d9bbf3, 0xdb7921aa42e23098], false, [0x7ee52eeed44af338, 0xafff948d3bdbc0b4, 0xe3cb42f4a81ed3f7, 0xcf73150cbc7744c1])
+ self.add([0xbc2ef32324a133b4, 0xa1144d3c70a72030, 0x90c19d2168ee972d], [0xb90bff8e750d983d, 0x62de045517fc06ad, 0xa664562ce35bda4, 0xa51e7313fad6864e], false, [0xb90bff8e750d983e, 0x1f0cf7783c9d3a61, 0xab7a929f3edcddd5, 0x35e0103563c51d7b])
+ self.add([0x7fb6db156df44bf6, 0x2b8a0cd71eef077f, 0x9f73884942d67dfd], [0x176239a8fc570fb9, 0xb98abadf56af17fe, 0x83184e17991e7e6c, 0x379dac200ce4dd8f], false, [0x176239a8fc570fba, 0x394195f4c4a363f4, 0xaea25aeeb80d85eb, 0xd71134694fbb5b8c])
+ self.add([0xbe9f0d973133fc1c, 0x29b31ff3ff52fa91, 0x5e009ab9d230c6d0], [0x6a5de4a0e9e90636, 0x775694c600bab629, 0x939b08a07f174a5a, 0x67921076500fd], false, [0x6a5de4a0e9e90637, 0x35f5a25d31eeb245, 0xbd4e28947e6a44eb, 0x5e0713dad995c7cd])
+ self.add([0xf7df60ab327dc360, 0xfb279bc9a7f06d61, 0x9a1768c8848d8423], [0xe9a355c1004db818, 0xae91d7e150268e7d, 0x6b3bebb920bbca01, 0xe37ae66727d592f5], false, [0xe9a355c1004db819, 0xa671388c82a451de, 0x66638782c8ac3763, 0x7d924f2fac631718])
+ self.add([ 0xb0badb4f59f4102, 0x411861f955a2015, 0x1d6921565765a94d], [0x4a07f92a6149ea6d, 0xda85e7f51932ea3a, 0xcb12d77f6ce1debf, 0x13a265aa5f13838f], false, [0x4a07f92a6149ea6d, 0xe59195aa0ed22b3c, 0xcf245d9f023bfed4, 0x310b8700b6792cdc])
+ self.add([ 0xf52cdcffc496a77, 0xa7389eceeded7a04, 0xff21188ba6ceafed], [0xb753fcd9443cc914, 0xd81fa2ca14121b26, 0x6e81c46f86f13f77, 0x56afa7be51fd5abf], false, [0xb753fcd9443cc914, 0xe772709a105b859e, 0x15ba633e74deb97c, 0x55d0c049f8cc0aac])
+ self.add([0x5ee10a96224bcfad, 0xbda806d02975528, 0xab920862624669eb], [0x564953dc8901d565, 0xd0e19b784e361e3b, 0xfd1a56cdc49a339, 0xce4c68466a5d6add], false, [0x564953dc8901d566, 0x2fc2a60e7081ede8, 0x1bac25d9dee0f862, 0x79de70a8cca3d4c8])
+ self.add([0xb607dd583f01bb84, 0x44d6e3a942f8e8e7, 0xab02cfd62a31030d], [0x8c9247b5bad7b4ef, 0x32605f99d4b56938, 0x5e79d24761043dd0, 0x119fd5681a965e18], false, [0x8c9247b5bad7b4ef, 0xe8683cf213b724bc, 0xa350b5f0a3fd26b7, 0xbca2a53e44c76125])
+ self.add([0x39d6ae7b2a25c1c5, 0xbc96573c77693f93, 0x6648b6ea857144f2], [0x5c488a9f5262ef3f, 0xb0c01e3d93898e0, 0xf3345bcd0bc326d6, 0x1841e0191073bf18], false, [0x5c488a9f5262ef3f, 0x44e2b05f035e5aa6, 0xafcab309832c6669, 0x7e8a970395e5040a])
+ self.add([0x583ca91a6b73d7ff, 0xccca00a980f8b642, 0x82cb753a893396aa], [0x7927c669845e2358, 0x66c29c4fd5e6ddc9, 0xda766e296c54a1f0, 0x64935d19b5a3b037], false, [0x7927c669845e2358, 0xbeff456a415ab5c9, 0xa7406ed2ed4d5832, 0xe75ed2543ed746e1])
+ self.add([0xe3b5308c8b302abe, 0xe8d2f267396981c9, 0x581c57a8561e2d70], [0x8ab97eb11714b03d, 0x2da056ad8f9ba3be, 0x4d55108837a178ea, 0xe2efad037b4ca091], false, [0x8ab97eb11714b03e, 0x1155873a1acbce7d, 0x362802ef710afab4, 0x3b0c04abd16ace01])
+ self.add([0x13b5ccaac933702c, 0x1d1d3b0e1a8acee, 0x1d9c9723568dbe90], [0x22dbbc81fa78824d, 0x22fd7278ac6f36ef, 0x9f07fa09789b0fe0, 0xae2ac39f39955e85], false, [0x22dbbc81fa78824d, 0x36b33f2375a2a71b, 0xa0d9cdba5a43bcce, 0xcbc75ac290231d15])
+ self.add([0x2bcd5fed41d1e988, 0xfca06126db802d2b, 0xc42be5bc8b63b76d], [0x5df76488b12583d2, 0x9222a75554336926, 0x71eb4c17a190cd85, 0xf3c348bafc96ea49], false, [0x5df76488b12583d2, 0xbdf00742960552af, 0x6e8bad3e7d10fab1, 0xb7ef2e7787faa1b6])
+ self.add([0xa9a452ad113ee556, 0xa769aa1d3ff90828, 0xbb3ba7c2b2579e02], [0x2de2a3f46841841f, 0x61539bb5def6abc9, 0xb605a60aa998050b, 0xb7a2de6b89ac02e7], false, [0x2de2a3f468418420, 0xaf7ee62f0359120, 0x5d6f5027e9910d34, 0x72de862e3c03a0e9])
+ self.add([0x6f49789347005f69, 0x4e92eef7171f798f, 0x2f5d7e5074b54ec4], [0x7e94edc8ac91abfc, 0x1233217449580b71, 0x7b47af2718176ccb, 0x7d08b5584474a707], false, [0x7e94edc8ac91abfc, 0x817c9a0790586ada, 0xc9da9e1e2f36e65a, 0xac6633a8b929f5cb])
+ self.add([0x637ec6476b7546b1, 0xa48ea4a96d0d7262, 0x9ac93cdfab0fe831], [0x77a704107f8a15bb, 0x4242dfe35b2b2dd5, 0xe636cab1b05ec404, 0x55b0e9aae6398e40], false, [0x77a704107f8a15bb, 0xa5c1a62ac6a07487, 0x8ac56f5b1d6c3666, 0xf07a268a91497671])
+ self.add([0xb22eb467178dd709, 0xdfb7da43fce38db, 0xf7fd37a121da8a88], [0x51d9575cf6243529, 0x86791cc4e69144ae, 0xb78d3546e4ed25f0, 0xd2fc2e2dba31b0d3], false, [0x51d9575cf624352a, 0x38a7d12bfe1f1bb7, 0xc588b2eb24bb5ecc, 0xcaf965cedc0c3b5b])
+ self.add([0x3a632c28b84a98bb, 0x15b645edbb75b217, 0xf19c838d120b8f17], [0x897a89f19242c24d, 0xea6f25e6a8f7fab9, 0x2b972c22963f2d1, 0xf3f6af225f5edef0], false, [0x897a89f19242c24e, 0x24d2520f61429374, 0x186fb8afe4d9a4e9, 0xe59332af716a6e07])
+ self.add([0xfc98cfbaf0857197, 0x35744a63ac20e360, 0x9be6324e76deb4b7], [0x103631d2a82908a9, 0x71a00454de42676a, 0xf212731d2f6497d7, 0xd0e3217c9d92dc46], false, [0x103631d2a82908aa, 0x6e38d40fcec7d902, 0x2786bd80db857b38, 0x6cc953cb147190fd])
+ self.add([0x22c71c960b7de38f, 0x469c69cf39951b43, 0x7b02b81b77a15ca7], [0x5298ade2754a7685, 0xa732aaf73fbb8136, 0xb0a96d40b36c3f0b, 0xd77444fe9c44f44b], false, [0x5298ade2754a7685, 0xc9f9c78d4b3964c5, 0xf745d70fed015a4f, 0x5276fd1a13e650f2])
+ self.add([0x1cdfbd83c6e72231, 0xe99d26b06745468f, 0xe883cf7d1faa03a], [0xb075d304bf3044f8, 0x1a49be01f647efbc, 0x9ced3eb31e301ac2, 0xba06653c97f5af20], false, [0xb075d304bf3044f8, 0x37297b85bd2f11ee, 0x868a656385756151, 0xc88ea23469f04f5a])
+ }
+
+ func test_add_4_by_1() {
+ self.add([0xa0d13bfa975a349b, 0x94b2b152a9b15eac, 0xcee8a56c0532751, 0xffda0b6133152e51], [0x77122fe949cde5b7], false, [0xa0d13bfa975a349b, 0x94b2b152a9b15eac, 0xcee8a56c0532752, 0x76ec3b4a7ce31408])
+ self.add([0x2467da089fef2357, 0x10a927f4b8ae9b68, 0x9b97d743d9339825, 0x87e934878b63a428], [0xfe7fa413d2dc75e2], false, [0x2467da089fef2357, 0x10a927f4b8ae9b68, 0x9b97d743d9339826, 0x8668d89b5e401a0a])
+ self.add([0x87425c56c430207c, 0x9e25128171eb934f, 0x831731687725fe2d, 0x22e8b1d201060e05], [0x17f4c9802af3820e], false, [0x87425c56c430207c, 0x9e25128171eb934f, 0x831731687725fe2d, 0x3add7b522bf99013])
+ self.add([0xb44f3290f3414774, 0xb7893176f77cdd80, 0x5b6ebe77767053fe, 0xa4e62b3b4db36189], [0xee1772aa5d8ea154], false, [0xb44f3290f3414774, 0xb7893176f77cdd80, 0x5b6ebe77767053ff, 0x92fd9de5ab4202dd])
+ self.add([0xb560b1fb85737c54, 0xeaac5c9636676b6c, 0xf2071f707d470006, 0xc6f3aa3700ac5769], [0x1f3d77b40bc3e1a3], false, [0xb560b1fb85737c54, 0xeaac5c9636676b6c, 0xf2071f707d470006, 0xe63121eb0c70390c])
+ self.add([0xd7f5969afc0820e7, 0x35aa9079a2222e13, 0x2297cd709fdea2ec, 0x6b3ed58c5f96042], [0x199469f7dfab27b5], false, [0xd7f5969afc0820e7, 0x35aa9079a2222e13, 0x2297cd709fdea2ec, 0x20485750a5a487f7])
+ self.add([0x5ad25e661b6c51d7, 0x37a1eaddcf867b27, 0x53033055a1cc0289, 0xd1006dfe384159b8], [0xba0ee4cf95c4dded], false, [0x5ad25e661b6c51d7, 0x37a1eaddcf867b27, 0x53033055a1cc028a, 0x8b0f52cdce0637a5])
+ self.add([0x49abdc321341058e, 0x6436dbf73b01d4d1, 0x9950b4b4d1bf0cb2, 0xaa5a0a9875687887], [0xb6da8348ea85035f], false, [0x49abdc321341058e, 0x6436dbf73b01d4d1, 0x9950b4b4d1bf0cb3, 0x61348de15fed7be6])
+ self.add([0xb967c088823df89f, 0x613f126824302d82, 0x76367bc24ceb9c18, 0x4592d2cc9c08351a], [0xe3b40b90624ede17], false, [0xb967c088823df89f, 0x613f126824302d82, 0x76367bc24ceb9c19, 0x2946de5cfe571331])
+ self.add([ 0x7db0047d33f64a2, 0x58f813f110f73820, 0x9f1342e25846c934, 0x55a283c73be3d2e8], [0x946c2e559e6b8244], false, [ 0x7db0047d33f64a2, 0x58f813f110f73820, 0x9f1342e25846c934, 0xea0eb21cda4f552c])
+ self.add([ 0xdff1951c466bc49, 0xca8782ccfe7a6d0d, 0x21592a2ada5d3319, 0xcd4d507f5e11e424], [0x740f23f52968d6b6], false, [ 0xdff1951c466bc49, 0xca8782ccfe7a6d0d, 0x21592a2ada5d331a, 0x415c7474877abada])
+ self.add([0xa3b0329003f253df, 0x4e593520c037a98f, 0x3ab5872aa5f0232f, 0x22081b6bdf168b89], [0xe33d31585c27361d], false, [0xa3b0329003f253df, 0x4e593520c037a98f, 0x3ab5872aa5f02330, 0x5454cc43b3dc1a6])
+ self.add([0x6175a544a9f95ef0, 0xd8aca5768f51024d, 0x87dcbd5924375b15, 0xf8688f62577eef11], [0x25e841e2a7d5cd1b], false, [0x6175a544a9f95ef0, 0xd8aca5768f51024d, 0x87dcbd5924375b16, 0x1e50d144ff54bc2c])
+ self.add([ 0x75ac8b3dcc6d366, 0xdcccd530a83d65de, 0xa7b7b08bf19bb7a, 0x7b2587eb6ac7e1cc], [0x6de293af997341c4], false, [ 0x75ac8b3dcc6d366, 0xdcccd530a83d65de, 0xa7b7b08bf19bb7a, 0xe9081b9b043b2390])
+ self.add([0x3a7f4d2320d8d05f, 0x4981ce633cd83ec8, 0xb5154c9fd9eaa4cd, 0xff83e43b5dd6dd3f], [0x34425caf39b504e3], false, [0x3a7f4d2320d8d05f, 0x4981ce633cd83ec8, 0xb5154c9fd9eaa4ce, 0x33c640ea978be222])
+ self.add([0x2d2de4ee0f608cf3, 0xb9ffe58593141706, 0x6bf4781b5c90e582, 0xe65717b7468d331c], [0x4296fd149d5849ed], false, [0x2d2de4ee0f608cf3, 0xb9ffe58593141706, 0x6bf4781b5c90e583, 0x28ee14cbe3e57d09])
+ self.add([0x3a53582f5d61cc1b, 0x74c926abac9bc510, 0x3794c56f37c4023f, 0x563a4e905b5e3bd7], [0xe096fb81aa3d4d61], false, [0x3a53582f5d61cc1b, 0x74c926abac9bc510, 0x3794c56f37c40240, 0x36d14a12059b8938])
+ self.add([0xeb55a4dd5ab9e821, 0x34e6d0208df443b, 0x51976c582ad2664d, 0x849f24d08eeabfd6], [0x8c20a7568e45a483], false, [0xeb55a4dd5ab9e821, 0x34e6d0208df443b, 0x51976c582ad2664e, 0x10bfcc271d306459])
+ self.add([0x47a822182def5d8c, 0x14253284dd58edd7, 0x545443db80071327, 0xbb3e9851464e93a7], [0xf073d5038be553f0], false, [0x47a822182def5d8c, 0x14253284dd58edd7, 0x545443db80071328, 0xabb26d54d233e797])
+ self.add([0xbaae96b6bbee4fc3, 0x6ad9d24de99fe34c, 0xb7f2be5dd14087b6, 0xaa27f9bc1e40ee], [0xb57517166a7b2f29], false, [0xbaae96b6bbee4fc3, 0x6ad9d24de99fe34c, 0xb7f2be5dd14087b6, 0xb61f3f1026997017])
+ self.add([0xaf9822adbb3991d4, 0x523cd1977104e0a8, 0x73f7d29d4b3fb5ae, 0x7f0835b9050917e6], [0xdce35f5184a728d5], false, [0xaf9822adbb3991d4, 0x523cd1977104e0a8, 0x73f7d29d4b3fb5af, 0x5beb950a89b040bb])
+ self.add([0x62bd72d882b66c81, 0x1207ea1c908dbcf, 0x9d82416de1191bdb, 0xab0580e87768531e], [0x9fee50788831971e], false, [0x62bd72d882b66c81, 0x1207ea1c908dbcf, 0x9d82416de1191bdc, 0x4af3d160ff99ea3c])
+ self.add([0xf4875e29f43caf8b, 0x274791d43353de02, 0x4193b5a16336c484, 0x380bd2bef641aad4], [0x3402f39a23ba4898], false, [0xf4875e29f43caf8b, 0x274791d43353de02, 0x4193b5a16336c484, 0x6c0ec65919fbf36c])
+ self.add([0xbdd608fb7cfdc39d, 0xcab408c463b56dc9, 0x446ab92d2347c850, 0x9bf77946070a0a18], [0xb8279851c3124f52], false, [0xbdd608fb7cfdc39d, 0xcab408c463b56dc9, 0x446ab92d2347c851, 0x541f1197ca1c596a])
+ self.add([0x94aad8febadde27b, 0x7bde76a34632c44c, 0x1015a84a3617fd66, 0x2d468a788d2a821], [0x7fca48d966b3f69b], false, [0x94aad8febadde27b, 0x7bde76a34632c44c, 0x1015a84a3617fd66, 0x829eb180ef869ebc])
+ self.add([0xb1f56c960e704734, 0x71f842f3ecc58bed, 0x29cafe72dc56115b, 0x786a3cf3d2d9255e], [0x8baa5e10bf7e11f5], false, [0xb1f56c960e704734, 0x71f842f3ecc58bed, 0x29cafe72dc56115c, 0x4149b0492573753])
+ self.add([0x9bd820eda2d5dc42, 0xcabc7320b0cbb45d, 0x8aa05038ba2bcfa4, 0x57fba9a51ea20b9d], [0xed0edab764433ee0], false, [0x9bd820eda2d5dc42, 0xcabc7320b0cbb45d, 0x8aa05038ba2bcfa5, 0x450a845c82e54a7d])
+ self.add([0x198c3599be60a5da, 0x1fbb1131153a896a, 0x903813cca3359c39, 0x69049cfacfe5e839], [0x17a80f0665e67490], false, [0x198c3599be60a5da, 0x1fbb1131153a896a, 0x903813cca3359c39, 0x80acac0135cc5cc9])
+ self.add([0x492e904bd99dc567, 0xc493fcc777b96212, 0x478973db9efbd4e2, 0x61ae8582128f28e4], [0xa1ecb460dc5fed85], false, [0x492e904bd99dc567, 0xc493fcc777b96212, 0x478973db9efbd4e3, 0x39b39e2eeef1669])
+ self.add([0xc08266bdecf462a4, 0x92fe52d0587a2dac, 0x872184108e85363b, 0xb343ec44208ed53e], [0x75b349b6ce938af1], false, [0xc08266bdecf462a4, 0x92fe52d0587a2dac, 0x872184108e85363c, 0x28f735faef22602f])
+ self.add([0xaa4af53c9d6b74c3, 0xbc5afc8acbf1511, 0xe081ce357a5241bb, 0xefd6c276e27120fd], [0xeae118b55c7286f1], false, [0xaa4af53c9d6b74c3, 0xbc5afc8acbf1511, 0xe081ce357a5241bc, 0xdab7db2c3ee3a7ee])
+ self.add([0x5f2c0edcb9443cc5, 0xeced4f28f5f6bc7, 0xfd419b57f9b2423c, 0x20bf71a41b1207ce], [0x6956b4d8cd353b37], false, [0x5f2c0edcb9443cc5, 0xeced4f28f5f6bc7, 0xfd419b57f9b2423c, 0x8a16267ce8474305])
+ self.add([0x473626902bee4c58, 0x2591a5b2fb558b21, 0x4a785482806511e1, 0x661ad48272a263cd], [0xbd9b70ea9b33928d], false, [0x473626902bee4c58, 0x2591a5b2fb558b21, 0x4a785482806511e2, 0x23b6456d0dd5f65a])
+ self.add([0x3bd34587abba3aa0, 0xac87b46ba71406e7, 0x3f69528a53b6a4b4, 0xfd9b70e806942c8f], [0x855c37b3960d6c60], false, [0x3bd34587abba3aa0, 0xac87b46ba71406e7, 0x3f69528a53b6a4b5, 0x82f7a89b9ca198ef])
+ self.add([0x3697dc64c167d18b, 0xfac7b5850b1d7a49, 0x690c9ae035148da7, 0x588010be79b845c8], [0xd709265443da78a0], false, [0x3697dc64c167d18b, 0xfac7b5850b1d7a49, 0x690c9ae035148da8, 0x2f893712bd92be68])
+ self.add([0xef27532b557946f1, 0xcf5ad89f1852266b, 0x28450af1471434, 0x77112a0545ee3e39], [0x9f381a816d850f37], false, [0xef27532b557946f1, 0xcf5ad89f1852266b, 0x28450af1471435, 0x16494486b3734d70])
+ self.add([0x3acb0934241d9788, 0x2958a5fff1e1c1b0, 0x29dcad5e91b44565, 0xd09eea092ae5761], [0xb3bee56f29bb512f], false, [0x3acb0934241d9788, 0x2958a5fff1e1c1b0, 0x29dcad5e91b44565, 0xc0c8d40fbc69a890])
+ self.add([0x2a51de65cd017a4a, 0x90b695a9a3d7c32e, 0xe3c75226a25bf5b8, 0x2cec5efd1b6d8ac5], [0xbf99be793638cafe], false, [0x2a51de65cd017a4a, 0x90b695a9a3d7c32e, 0xe3c75226a25bf5b8, 0xec861d7651a655c3])
+ self.add([0xe28890d5f8e375cf, 0x53c688c7ef966d66, 0x7b9a21e26fb13cf4, 0x98a5462126f214b5], [0xc1ec855eecfd3ccd], false, [0xe28890d5f8e375cf, 0x53c688c7ef966d66, 0x7b9a21e26fb13cf5, 0x5a91cb8013ef5182])
+ self.add([0x9d39c5300fdada65, 0x5e07ac0bb76570c8, 0xed277962d1d4e35c, 0xf46c9fb68a2ffe2b], [0x52879f0be1252b48], false, [0x9d39c5300fdada65, 0x5e07ac0bb76570c8, 0xed277962d1d4e35d, 0x46f43ec26b552973])
+ self.add([0xe9601c313ffe20b0, 0xf696a365feec211b, 0x41b9507fd321088b, 0xbbd90e583b4a6109], [0xeeba252c6d69d5bd], false, [0xe9601c313ffe20b0, 0xf696a365feec211b, 0x41b9507fd321088c, 0xaa933384a8b436c6])
+ self.add([0x9dd30c776b9c07bf, 0xbfbb08001e7a2c49, 0x5284625c92b2499b, 0xf439b8f9a42132f6], [0xe292bca903148a96], false, [0x9dd30c776b9c07bf, 0xbfbb08001e7a2c49, 0x5284625c92b2499c, 0xd6cc75a2a735bd8c])
+ self.add([0x7f04a9da74a1eb85, 0x37d0799c35a5ca68, 0x651bbfce4111d0d3, 0x89a321facf4d76f5], [0x5608b89ce0759b74], false, [0x7f04a9da74a1eb85, 0x37d0799c35a5ca68, 0x651bbfce4111d0d3, 0xdfabda97afc31269])
+ self.add([0x7255690cb94c2d52, 0x4e98310d840ae4c2, 0x347b009cb01bf62c, 0x373cb360420f543f], [0xbe2a039b545adcdc], false, [0x7255690cb94c2d52, 0x4e98310d840ae4c2, 0x347b009cb01bf62c, 0xf566b6fb966a311b])
+ self.add([0x6b71a3e1a53468a0, 0xd89556f1c5e7357e, 0x1c8101f7186d97c6, 0xc397fdb8c0069cc2], [0x1ab0118080ae214a], false, [0x6b71a3e1a53468a0, 0xd89556f1c5e7357e, 0x1c8101f7186d97c6, 0xde480f3940b4be0c])
+ self.add([0xca75a70bfacf10d4, 0x5960b2cd8ac603f2, 0xf71d8dec192b8755, 0xaa831d3d19f6eaca], [0x857166f7d8b11083], false, [0xca75a70bfacf10d4, 0x5960b2cd8ac603f2, 0xf71d8dec192b8756, 0x2ff48434f2a7fb4d])
+ self.add([0x2490159a7ea5f48b, 0xdaf068ad135515d7, 0x6970ea99ad6f4637, 0xae8321789bf2b262], [0xb835bdd87a6fd1da], false, [0x2490159a7ea5f48b, 0xdaf068ad135515d7, 0x6970ea99ad6f4638, 0x66b8df511662843c])
+ self.add([0xeac5fc20bae5f4a2, 0x139acd1e7a05b17b, 0xc9e76257c181f5d3, 0x24697d805928ccc7], [ 0x3e816a792ed3e87], false, [0xeac5fc20bae5f4a2, 0x139acd1e7a05b17b, 0xc9e76257c181f5d3, 0x28519427ec160b4e])
+ self.add([0xc19e9d2f8bc371b5, 0xb5c2bc8186d8e0dd, 0x48f4b4a1d6bdb354, 0xc16bed24b94726f8], [0x2648a2207539cfd3], false, [0xc19e9d2f8bc371b5, 0xb5c2bc8186d8e0dd, 0x48f4b4a1d6bdb354, 0xe7b48f452e80f6cb])
+ self.add([0xa1907822e2ae38c4, 0xccea336353692427, 0x654101fd4e7c4280, 0xb0ee55c924aba805], [0x6a2a2ac0d1e0a687], false, [0xa1907822e2ae38c4, 0xccea336353692427, 0x654101fd4e7c4281, 0x1b188089f68c4e8c])
+ }
+
+ func test_add_4_by_2() {
+ self.add([0xf615444f5596fa10, 0x1b5ed9e93e22a375, 0x32e406d02bb1fbb9, 0x8ca412956041b5f6], [0x123ebaae6ef5eb0b, 0x802eafd80a3cd138], false, [0xf615444f5596fa10, 0x1b5ed9e93e22a375, 0x4522c17e9aa7e6c5, 0xcd2c26d6a7e872e])
+ self.add([0x763d6af1f0e7e50d, 0xb7198753fd868717, 0x6bcd39664f6e4ac, 0xf2bb9e17f445ede1], [0x95bd45e74d00307c, 0xd2cffe35ece62ce3], false, [0x763d6af1f0e7e50d, 0xb7198753fd868717, 0x9c7a197db1f71529, 0xc58b9c4de12c1ac4])
+ self.add([0x5e4d4dc8d45e19db, 0xc2b62b36a38c685a, 0xb9b2e3a4b7a3a488, 0x83fdc3826c7605db], [0xbc42704c37490e96, 0xb042f48eca573e77], false, [0x5e4d4dc8d45e19db, 0xc2b62b36a38c685b, 0x75f553f0eeecb31f, 0x3440b81136cd4452])
+ self.add([0x62a96ac11165c207, 0x68859464f000030, 0xb411e05c8c6741c9, 0x8d724b34e8411a25], [0x400e5610c7b4cd30, 0x637307f09e85edc7], false, [0x62a96ac11165c207, 0x68859464f000030, 0xf420366d541c0ef9, 0xf0e5532586c707ec])
+ self.add([0x37bc7f8359dabdbd, 0x48e66549ade271d0, 0x2c4604270f41b74a, 0xe44264e6d3a89746], [0x42306ca9d0e97f58, 0x2bd86138eb1cd3f4], false, [0x37bc7f8359dabdbd, 0x48e66549ade271d0, 0x6e7670d0e02b36a3, 0x101ac61fbec56b3a])
+ self.add([0x1fdda3f8432f254e, 0xef190391edf43c43, 0x445de3c7aad1521e, 0x6eb5ddd305234387], [0xf664d36b774af127, 0xea456cefb32d58c0], false, [0x1fdda3f8432f254e, 0xef190391edf43c44, 0x3ac2b733221c4346, 0x58fb4ac2b8509c47])
+ self.add([0x380061e5b1b049b2, 0x200177ba7cb38f07, 0xc1654606d985201d, 0xb4e158e2d784fc49], [ 0x1876ce7bec6e0c5, 0x5e31049a4e14f094], false, [0x380061e5b1b049b2, 0x200177ba7cb38f07, 0xc2ecb2ee984c00e3, 0x13125d7d2599ecdd])
+ self.add([0x211bcbedd43515cb, 0xb0c143040d85aa06, 0x5601703356def16c, 0xe2cdc84b3b44cf18], [0xfd88648229a2560a, 0xb687cd9b7c808f67], false, [0x211bcbedd43515cb, 0xb0c143040d85aa07, 0x5389d4b580814777, 0x995595e6b7c55e7f])
+ self.add([0x8c1bad23c0123177, 0xc00333f1060cc345, 0x67f0b6e910df20d3, 0x73aa26aebe34101c], [0x2995048cd5c168bd, 0x6cc23a336a6bd002], false, [0x8c1bad23c0123177, 0xc00333f1060cc345, 0x9185bb75e6a08990, 0xe06c60e2289fe01e])
+ self.add([0xbba1336796efd55a, 0x3fe717ab315a0d6e, 0xb525a5bb71841ade, 0xb665c8c1e3fc1f52], [0xee2a9dc6509b90f1, 0x6c373be454d7ee63], false, [0xbba1336796efd55a, 0x3fe717ab315a0d6f, 0xa3504381c21fabd0, 0x229d04a638d40db5])
+ self.add([ 0xdde4339d030b0ac, 0x75c42908404eea3c, 0xc857dddeafc45be, 0xa1ed1b938be606bb], [0x720441815536c038, 0x9f21c0a0e7e75eff], false, [ 0xdde4339d030b0ac, 0x75c42908404eea3c, 0x7e89bf5f403305f7, 0x410edc3473cd65ba])
+ self.add([0x8c453866b0e6cbfa, 0xd8e883139602758d, 0xd6ffbe636e206bd7, 0x199ebeb98934662], [0x668d8e69b6355c44, 0x7bd6c110435ce6fd], false, [0x8c453866b0e6cbfa, 0xd8e883139602758e, 0x3d8d4ccd2455c81b, 0x7d70acfbdbf02d5f])
+ self.add([0xbbfbaaec5cc862de, 0x94427ff7caa682d2, 0x1c7eec9d3ca327bf, 0xea26b3834ba52cb], [0x5bf94b3a8dfff477, 0xb6149a2c95f79090], false, [0xbbfbaaec5cc862de, 0x94427ff7caa682d2, 0x787837d7caa31c36, 0xc4b70564cab1e35b])
+ self.add([0x355f18e71c74a0a3, 0x1349756e09ba860, 0x37c9028a2e16d279, 0xcf3741f166c10f10], [0xef904a2bca8b8118, 0xe3982aadf8ff82b3], false, [0x355f18e71c74a0a3, 0x1349756e09ba861, 0x27594cb5f8a25392, 0xb2cf6c9f5fc091c3])
+ self.add([0xcc1723699e67b786, 0xf44351441ec9ddb1, 0xd53ca7dee3baddad, 0x6f648f7f3500815d], [0x318220c5610d6b60, 0x423251f254fab443], false, [0xcc1723699e67b786, 0xf44351441ec9ddb2, 0x6bec8a444c8490d, 0xb196e17189fb35a0])
+ self.add([0xa3f87f7434334ca9, 0xc2963f7907db095, 0xea3f584b93f13a7c, 0xa63bfdad67cc4f00], [0x99ad6834aa5b73a5, 0x634e9bf73ac79d11], false, [0xa3f87f7434334ca9, 0xc2963f7907db096, 0x83ecc0803e4cae22, 0x98a99a4a293ec11])
+ self.add([0x9176212417a92076, 0xac9f8ae9e32a99e, 0xb85eba5c309fdeb5, 0xe458e0b32a25dbe9], [ 0x70d3ea560bfbf91, 0x9813865c895660b3], false, [0x9176212417a92076, 0xac9f8ae9e32a99e, 0xbf6bf901915f9e47, 0x7c6c670fb37c3c9c])
+ self.add([0x69e084dee88ab9b8, 0xd74e282b28da8515, 0x7f3ed8a88bf9d991, 0xea96739620e80d5d], [0xfd39b5b188db60f0, 0xeafa16f68d87be64], false, [0x69e084dee88ab9b8, 0xd74e282b28da8516, 0x7c788e5a14d53a82, 0xd5908a8cae6fcbc1])
+ self.add([0x3fdda4b192ec933c, 0xafbebd8a538ee919, 0x2211a07eb46edee4, 0xa79742a45a865db4], [0x715ecbd45b29acc7, 0x62dcfcf1ccec9dcb], false, [0x3fdda4b192ec933c, 0xafbebd8a538ee919, 0x93706c530f988bac, 0xa743f962772fb7f])
+ self.add([0x9b25347541d95ea5, 0x2c7e53c69ff90042, 0x34c5f6f2b4021ca2, 0xa80a091cf7674214], [0x7ccdbf9f851c1992, 0xf91f11105b2ece7], false, [0x9b25347541d95ea5, 0x2c7e53c69ff90042, 0xb193b692391e3634, 0xb79bfa2dfd1a2efb])
+ self.add([0x91ca618712facfd0, 0xeed9b3b0388199c5, 0xbd4cb4d3f38c705b, 0xe76c3b3d100bb78], [0x608e4e26eaea310b, 0x62bbba52151fbbe2], false, [0x91ca618712facfd0, 0xeed9b3b0388199c6, 0x1ddb02fade76a166, 0x71327e05e620775a])
+ self.add([0x30cec5e0e4387f28, 0xa0bed74fff366d3a, 0x2291386eda535ca8, 0x7c32dbfec033c6a3], [0xa1be52ee96ba95ea, 0x519112aa65be4062], false, [0x30cec5e0e4387f28, 0xa0bed74fff366d3a, 0xc44f8b5d710df292, 0xcdc3eea925f20705])
+ self.add([0x97a04f5c282df20b, 0xb25edd965b7dd3af, 0xd630b843e274b249, 0x230a91e26c256267], [ 0x7be9373df31dcc0, 0x8112e337561cf7a8], false, [0x97a04f5c282df20b, 0xb25edd965b7dd3af, 0xddef4bb7c1a68f09, 0xa41d7519c2425a0f])
+ self.add([ 0xb995c5c886bd90f, 0x25836794e59eafbb, 0x492896c929de9a4e, 0x8bd6dad02aa49690], [0x3b03d9c9e2b404cd, 0x7cc9976457aee010], false, [ 0xb995c5c886bd90f, 0x25836794e59eafbb, 0x842c70930c929f1c, 0x8a07234825376a0])
+ self.add([0x7dee4434fbbd3c6f, 0x52437fd3cc71ba21, 0x6622c5f109df4d40, 0xad87a16465630183], [0x9edb62e14780dee4, 0x7c11aab9911f0352], false, [0x7dee4434fbbd3c6f, 0x52437fd3cc71ba22, 0x4fe28d251602c25, 0x29994c1df68204d5])
+ self.add([0xc7dbc689e720d369, 0xe16662fd331e017, 0xfc1299c845206fc7, 0x5f0631d36f5a70c9], [0xe7df85b263cb937e, 0xaf5b842829edd642], false, [0xc7dbc689e720d369, 0xe16662fd331e018, 0xe3f21f7aa8ec0346, 0xe61b5fb9948470b])
+ self.add([0x44253a2502957c55, 0xd998fca3467eee11, 0x1bf782f612171f0b, 0x4d3ac4db8c482736], [0x2308022a67f4ab49, 0xdd889d73cb5d74c2], false, [0x44253a2502957c55, 0xd998fca3467eee11, 0x3eff85207a0bca55, 0x2ac3624f57a59bf8])
+ self.add([0xc416b57ae416fe70, 0xaa28f61a75f9ab04, 0x111379cfbe12f01b, 0x7d817f04e47e34c5], [0x64329f0caa4fc2fb, 0x7a359a5eeb110397], false, [0xc416b57ae416fe70, 0xaa28f61a75f9ab04, 0x754618dc6862b316, 0xf7b71963cf8f385c])
+ self.add([0xa2acac255feff3a1, 0x4cdf218aa18f671c, 0x30df94498c871621, 0xc80ca2cd1681875d], [0x96be9d5b421193f8, 0x8fafffef7cfe899f], false, [0xa2acac255feff3a1, 0x4cdf218aa18f671c, 0xc79e31a4ce98aa1a, 0x57bca2bc938010fc])
+ self.add([0x1e764cc57a191ea2, 0xbbcc5ac6c5d38c59, 0x9d37d593bc4b4466, 0x6630ba634a3284eb], [0x354421447c5f1860, 0xbe193a3d8a42ba16], false, [0x1e764cc57a191ea2, 0xbbcc5ac6c5d38c59, 0xd27bf6d838aa5cc7, 0x2449f4a0d4753f01])
+ self.add([0x9bf80c2bd356eeb1, 0x31b32971672d10ee, 0x575c30c09c8ecaaa, 0xfe12f1133cc16c2f], [0x1b2122821fa33485, 0x1ee4552374f79650], false, [0x9bf80c2bd356eeb1, 0x31b32971672d10ee, 0x727d5342bc31ff30, 0x1cf74636b1b9027f])
+ self.add([0xd3f61487a155e4b1, 0xad6d7f65d6c3077b, 0xe360cede2965fcdd, 0xd863fbf19648c8de], [0xeb475190ba77c2ac, 0xe9ce18f28bbc7f77], false, [0xd3f61487a155e4b1, 0xad6d7f65d6c3077c, 0xcea8206ee3ddbf8a, 0xc23214e422054855])
+ self.add([0xb8f46c0cf6d02187, 0xa98c9e4b21f737f9, 0xf9433ccc6d288df, 0xb23b6b1d09414004], [0xb4facf11febfe49f, 0xdc729195e52401ed], false, [0xb8f46c0cf6d02187, 0xa98c9e4b21f737f9, 0xc48f02dec5926d7f, 0x8eadfcb2ee6541f1])
+ self.add([0x7dfd1fd802bdeae8, 0xe879b8cc926dad2a, 0x8b89349f2c83bd55, 0xaf4560d2efadaf22], [0x41512680cc69a7b9, 0xa4a1c53a65a68547], false, [0x7dfd1fd802bdeae8, 0xe879b8cc926dad2a, 0xccda5b1ff8ed650f, 0x53e7260d55543469])
+ self.add([0xaeb01ee7c2950fb2, 0x4056a955c45b4fde, 0x5e34f1cc80e08f9, 0x54c3564d7e6e3ead], [0x72bccae4c7dff494, 0xd15729a3a83d427b], false, [0xaeb01ee7c2950fb2, 0x4056a955c45b4fde, 0x78a01a018fedfd8e, 0x261a7ff126ab8128])
+ self.add([0xe0c902327933d557, 0x61dd0e522787c316, 0x5342014461e5d0e2, 0xe2caf2dd92a7894b], [0x951a67a8114bedc4, 0x54917fab8b0ad736], false, [0xe0c902327933d557, 0x61dd0e522787c316, 0xe85c68ec7331bea7, 0x375c72891db26081])
+ self.add([0x1f6e8fcbfd6eff14, 0xdcf04f4d09790f65, 0x866d7880cf22ea00, 0x6092230607901339], [0x6f0fa1f115bc0198, 0x87eabe2f4d144bf4], false, [0x1f6e8fcbfd6eff14, 0xdcf04f4d09790f65, 0xf57d1a71e4deeb98, 0xe87ce13554a45f2d])
+ self.add([0x83c0ad9edb169862, 0xe29b14d3f48ab744, 0x7579f4655d2e699c, 0x56c35d40d00777e5], [0xb445f9d25c135dc4, 0x83e7054be3710066], false, [0x83c0ad9edb169862, 0xe29b14d3f48ab745, 0x29bfee37b941c760, 0xdaaa628cb378784b])
+ self.add([0x73094da216db4f38, 0xdb1e7284c21bab00, 0x4faba576eb7646c5, 0x23b0ac9c7967d7e2], [0x6f492be80cb99a19, 0x30071a752c66d479], false, [0x73094da216db4f38, 0xdb1e7284c21bab00, 0xbef4d15ef82fe0de, 0x53b7c711a5ceac5b])
+ self.add([0xad0852eb331a3d5d, 0x390bdae10a2a8236, 0x88faf556c8adcf4, 0xe97ca59819eec32e], [0x71fcd6d96d85f6ef, 0x8e099c08c76a9ce8], false, [0xad0852eb331a3d5d, 0x390bdae10a2a8236, 0x7a8c862eda10d3e4, 0x778641a0e1596016])
+ self.add([0x3c379c2702c40738, 0x5110968834acacbe, 0xea08171ad9ee7a4d, 0xa484a2e5511c1567], [0x890e3dd06bbcfc55, 0x57bb01cca02b3505], false, [0x3c379c2702c40738, 0x5110968834acacbf, 0x731654eb45ab76a2, 0xfc3fa4b1f1474a6c])
+ self.add([0x5f789a39d40fa8c9, 0x87bc34b79144e7e1, 0x67494aa5244b377, 0xcf8d8a1c5e274e70], [0x1aa859efab0f8b6f, 0x1289306c6a28c7c7], false, [0x5f789a39d40fa8c9, 0x87bc34b79144e7e1, 0x211cee99fd543ee6, 0xe216ba88c8501637])
+ self.add([0x682c28a72e1eca1c, 0xba9ff5076eb47fd6, 0xdf08dfbbd9b7c455, 0x565ed9b6d1599fa4], [0xb037d1234e54b134, 0xfd089ae0e43ac528], false, [0x682c28a72e1eca1c, 0xba9ff5076eb47fd7, 0x8f40b0df280c758a, 0x53677497b59464cc])
+ self.add([0x6fb35050969f56fc, 0x50ef96bf175e6af, 0x91a32ed4cdf834c3, 0x8f59dc479ee7d6b2], [0xee5ccc7184a6f1f7, 0x4869280bece89495], false, [0x6fb35050969f56fc, 0x50ef96bf175e6b0, 0x7ffffb46529f26ba, 0xd7c304538bd06b47])
+ self.add([0xd6988894f1eda0f2, 0xda070846a9392ac0, 0x32e96e6c33f03309, 0x320dfa365cb343f7], [0xb9902aa790f95439, 0x73d4806da6912cbd], false, [0xd6988894f1eda0f2, 0xda070846a9392ac0, 0xec799913c4e98742, 0xa5e27aa4034470b4])
+ self.add([0xcd998352510d3ac5, 0x296802cf395d36a9, 0x50d48c66960816b9, 0x517216f7aef7c28f], [0x361ae6839b436755, 0xaa23bf13df7c6945], false, [0xcd998352510d3ac5, 0x296802cf395d36a9, 0x86ef72ea314b7e0e, 0xfb95d60b8e742bd4])
+ self.add([0xb448aa8e884bba3d, 0x6b32c57ea117f5b9, 0x60fdb457205141d0, 0xb7fe8fb04111e5cf], [ 0xd0c31a430707ee3, 0x910e2f3b5e33cfa6], false, [0xb448aa8e884bba3d, 0x6b32c57ea117f5b9, 0x6e09e5fb50c1c0b4, 0x490cbeeb9f45b575])
+ self.add([0x955aa37eda82c41c, 0x9f2ec97e101056e0, 0x94a56ffe1bb1cb30, 0xfac4a22acec2a573], [0xd4bfbd7caf95a951, 0x3d2616fffd90a7c0], false, [0x955aa37eda82c41c, 0x9f2ec97e101056e1, 0x69652d7acb477482, 0x37eab92acc534d33])
+ self.add([0xfa4f89399506cc3d, 0x317a52cda5afa33f, 0x536b49e18606f8c, 0x9be254afcddad838], [0x76a03eee0867b579, 0x372b46f511753159], false, [0xfa4f89399506cc3d, 0x317a52cda5afa33f, 0x7bd6f38c20c82505, 0xd30d9ba4df500991])
+ self.add([0x193626e72fb3ee57, 0x7eef348ae8cce2d0, 0xe3d8b313b239e70a, 0x323479818c4563ae], [0xbe4032015bc36eb6, 0xac78aebd78270d62], false, [0x193626e72fb3ee57, 0x7eef348ae8cce2d1, 0xa218e5150dfd55c0, 0xdead283f046c7110])
+ }
+
+ func test_add_4_by_3() {
+ self.add([0xdfa311cb1eecb863, 0xf54bf4911114997c, 0x6e0e1e95d2b267ca, 0x698d7254bbed6f25], [0xe4d975b7e0d34de1, 0xada555cf87ba93ea, 0xab3bb6583984956], false, [0xdfa311cb1eecb864, 0xda256a48f1e7e75e, 0x1bb374655a6cfbb4, 0x74412dba3f85b87b])
+ self.add([0xadca0717cc392ffb, 0xd5a885216476bc57, 0x10d9e1bc8a7d4e55, 0x3f86c22a77f7eb39], [0x99c63e132d8ab856, 0xec00cf8cbc712d11, 0xa1a13e951eaa27b9], false, [0xadca0717cc392ffc, 0x6f6ec334920174ad, 0xfcdab14946ee7b66, 0xe12800bf96a212f2])
+ self.add([0x77c809b113bd1747, 0x2a1cd98a524ebdf, 0x4d6dba925d117ab6, 0x954a713c92432b06], [0x19a6603bc10a8f6d, 0xe47e1968fd40c068, 0x3eca8742637054e3], false, [0x77c809b113bd1747, 0x1c482dd4662f7b4d, 0x31ebd3fb5a523b1e, 0xd414f87ef5b37fe9])
+ self.add([0xc60edc3f8782ae9b, 0xe6bdd41b8d83350, 0xaa9e960b738a8cda, 0x59da8f2aac731e62], [0xe104302cfea2b612, 0xd312675aae8feaed, 0x597f9a05265f23e8], false, [0xc60edc3f8782ae9b, 0xef700d6eb77ae963, 0x7db0fd66221a77c7, 0xb35a292fd2d2424a])
+ self.add([0x9fbaa43d373d2226, 0xb0c8697a0af0f138, 0xbeac012808f2edce, 0xb95b1efa701ff240], [0x4c4d9e45a9a38d0c, 0x853eb9f5e76654a9, 0x5089d79f06379243], false, [0x9fbaa43d373d2226, 0xfd1607bfb4947e45, 0x43eabb1df0594278, 0x9e4f69976578483])
+ self.add([0xedb03a50aa3f76ca, 0xc1269842951bb7f7, 0xd00ada1f0825b210, 0x3855c2f0b101e0a], [0x41cd86d6eddac295, 0x9dca66bd080d8403, 0xad91b76047d3b771], false, [0xedb03a50aa3f76cb, 0x2f41f1982f67a8d, 0x6dd540dc10333613, 0xb117138f52e3d57b])
+ self.add([0xbb1b94df37a46b34, 0xc1019b0001b49b28, 0x8df540b26e7ec170, 0x760d14b6a2c4a1fb], [0xf51425b51d30fa49, 0x965c7d3593f01388, 0x843d4a963dcb8ed], false, [0xbb1b94df37a46b35, 0xb615c0b51ee59572, 0x2451bde8026ed4f8, 0x7e50e96006a15ae8])
+ self.add([0x3e29494a3789c5fb, 0xe33ad6f750d87578, 0xc2bfa845d2865a18, 0x436e4e6a618dc6a9], [0x580120e071abe5ad, 0xff4596a0f89834e4, 0xc024414fa9e16b71], false, [0x3e29494a3789c5fc, 0x3b3bf7d7c2845b26, 0xc2053ee6cb1e8efd, 0x3928fba0b6f321a])
+ self.add([0x593d10e548606619, 0xf30edfa510a7ebe7, 0xb27e37ba91bd6613, 0x5fe0915a1709d684], [0xf11b0896242a1d79, 0xccb309f506a5faab, 0xdf1076a6d8e20032], false, [0x593d10e54860661a, 0xe429e83b34d20961, 0x7f3141af986360bf, 0x3ef10800efebd6b6])
+ self.add([0x4bd35be205192542, 0xd4fe7626493e9ff2, 0x20e4f2e60cefe383, 0xa5909a516840d755], [0x545609f142b06371, 0xdcb8475b3ca095e6, 0xb02037474e56fd08], false, [0x4bd35be205192543, 0x295480178bef0363, 0xfd9d3a414990796a, 0x55b0d198b697d45d])
+ self.add([0x5ed94b1d4a43e2b3, 0xbb9e6f39552d7beb, 0x9bbf2e33477ec8c5, 0x8cd7dd8089923371], [0x1f880d812bc777e0, 0x1047735ffca22941, 0xb8df2ccf4d273a3a], false, [0x5ed94b1d4a43e2b3, 0xdb267cba80f4f3cb, 0xac06a1934420f207, 0x45b70a4fd6b96dab])
+ self.add([0xa73ba5e1381ae731, 0x81f390c5e32370c4, 0x3eb06a3a1d80a8d2, 0xd7509a31927fee7c], [0xb73efe0d127237df, 0x447f7187e6dc6eb6, 0x42141efa5a4762bc], false, [0xa73ba5e1381ae732, 0x39328ed2f595a8a3, 0x832fdbc2045d1789, 0x1964b92becc75138])
+ self.add([0x73c4adb6cffd3d5f, 0x118b350f6194c0dd, 0x1c229dc277c6db0e, 0x430863861d0cca22], [0x484971d58e2ad9b6, 0x28722b3fb19812ac, 0x54c08cc3d5b79a0e], false, [0x73c4adb6cffd3d5f, 0x59d4a6e4efbf9a93, 0x4494c902295eedba, 0x97c8f049f2c46430])
+ self.add([ 0x92a9af05655f83, 0xceccb042a9d533c7, 0xf2343fdbd7884fe2, 0x6276f7dd4c2d6633], [0x1c4f833d29e94811, 0xb91f933e3279a904, 0xc32ea8c62e549f3c], false, [ 0x92a9af05655f83, 0xeb1c337fd3be7bd9, 0xab53d31a0a01f8e7, 0x25a5a0a37a82056f])
+ self.add([0x6f0039f7aede3486, 0x3ecc6903e908c850, 0x5a47e00e17d2291f, 0x65174ea2b69f2434], [0xb4bdaee843156fa7, 0xb39f355b49e1ea6d, 0xcee827382dcfbd0d], false, [0x6f0039f7aede3486, 0xf38a17ec2c1e37f8, 0xde7156961b4138d, 0x33ff75dae46ee141])
+ self.add([0x7d17256ae51e32ad, 0x2082a7015e090844, 0x7347f887162d6789, 0x4973adcb1ea173bc], [0xd0216b07e4e9a55c, 0x3cd0d5843dddd916, 0x8e6fe5cf3626b05d], false, [0x7d17256ae51e32ad, 0xf0a4120942f2ada0, 0xb018ce0b540b409f, 0xd7e3939a54c82419])
+ self.add([0x8e56d2e04b11382a, 0x91d8128b50897a6, 0x9ec486effa24464f, 0xf438aa961fe23968], [0x66823a638d552913, 0x7b5331710b3ab585, 0x4f7aa2c8d5467099], false, [0x8e56d2e04b11382a, 0x6f9fbb8c425dc0ba, 0x1a17b861055efbd5, 0x43b34d5ef528aa01])
+ self.add([0xb84752389b1d5d2e, 0xa4763e1d3f10d686, 0x60889cdbaa995b81, 0xabb8b98144bdda14], [0xb02a3b740d5a02b2, 0x828319892f90f127, 0x387fe45c7c313875], false, [0xb84752389b1d5d2f, 0x54a079914c6ad938, 0xe30bb664da2a4ca8, 0xe4389dddc0ef1289])
+ self.add([0xf127ab69723f1703, 0x5d71c3ff0be4673f, 0x896bae7ca225e67f, 0x49c757f26f0a397f], [0xccb0d1bc28090efd, 0x6a10f30ec38eace7, 0x693e3f61fb5710d8], false, [0xf127ab69723f1704, 0x2a2295bb33ed763c, 0xf37ca18b65b49366, 0xb30597546a614a57])
+ self.add([0xb18d2eade07622e5, 0x87e337631b95de26, 0xbfe1c1d885b68be2, 0x69655be3e159b449], [0xfb265c546d1e4dc4, 0xfdb667970be95643, 0x65b61cc36a6682f5], false, [0xb18d2eade07622e6, 0x830993b788b42beb, 0xbd98296f919fe225, 0xcf1b78a74bc0373e])
+ self.add([0x77e85958ecc729fc, 0xf3666b1359ca47cb, 0x6b86cf0c8caa1695, 0xf0d47e094abc5d5], [0xce19e050e93db602, 0xa62ef9bf4d10944e, 0x244d4f7963f4fbe7], false, [0x77e85958ecc729fd, 0xc1804b644307fdce, 0x11b5c8cbd9baaae3, 0x335a9759f8a0c1bc])
+ self.add([0xff986284042a3097, 0x8b97c2587e597e1, 0xefbc61f24fc8e01a, 0x9c2a0fbb2b59888b], [0x1a3093303c5eba0b, 0xebaeba6545d5446e, 0x7a832ca6ddee6d31], false, [0xff986284042a3097, 0x22ea0f55c44451ed, 0xdb6b1c57959e2489, 0x16ad3c620947f5bc])
+ self.add([0x53618bd1627da9b8, 0x2e516a5b017c0a61, 0x71d663a60f0dc4b2, 0x79cbe5222e961d08], [0xacd2f8bbee149be0, 0xb8f92a06a08698bc, 0xeb2dbfe964386516], false, [0x53618bd1627da9b8, 0xdb246316ef90a642, 0x2acf8dacaf945d6f, 0x64f9a50b92ce821e])
+ self.add([0x3dd1c022717666e2, 0x1ecb11933d5a8a1a, 0x17d13d9c55655b25, 0xfbcf55af001bd540], [0xa1964c5f8facb4d2, 0x717c721c950fb401, 0xd8e5c5b2cd4c8d5f], false, [0x3dd1c022717666e2, 0xc0615df2cd073eec, 0x894dafb8ea750f27, 0xd4b51b61cd68629f])
+ self.add([0xeb661b03f5b0c2d5, 0x36abb9b95fe8b39b, 0x4bf4da44f78fce7a, 0x5c5d72ea48d72d93], [0xb127fefdfcf5d84d, 0xe15b0f04b990706b, 0xaebb06682114d16b], false, [0xeb661b03f5b0c2d5, 0xe7d3b8b75cde8be9, 0x2d4fe949b1203ee6, 0xb18795269ebfefe])
+ self.add([0x69b6e88a6a318c9d, 0x22a0d3c884fe0532, 0xdc8d6d635f4af4a5, 0xbe59ce861a12d071], [0x4a7090cb4cb1496b, 0x61cba584f4fe0e11, 0xc52ee55d399d1c61], false, [0x69b6e88a6a318c9d, 0x6d116493d1af4e9e, 0x3e5912e8544902b7, 0x8388b3e353afecd2])
+ self.add([0x8c954237eaab87e8, 0x17c717a53c5aa0a7, 0x914fde21db38406f, 0x86a65c3425cb4923], [0xea55cf6121b6a4aa, 0xad42c9a5f620013c, 0xfd2814049fa974cb], false, [0x8c954237eaab87e9, 0x21ce7065e114552, 0x3e92a7c7d15841ac, 0x83ce7038c574bdee])
+ self.add([0xb78e5d67f9e3df8c, 0x29b30fa4964fce15, 0x3475368ca4156269, 0xfd79f69168036144], [0xb27411f00a651d3f, 0x889e23e06c4cbce7, 0xea399a730d847df4], false, [0xb78e5d67f9e3df8c, 0xdc272194a0b4eb54, 0xbd135a6d10621f51, 0xe7b391047587df38])
+ self.add([0x5409d933232332a0, 0x8d1839f498205918, 0x1480978eab9a7dfe, 0x295463d6182be67a], [0x23e75c004ebc9dc5, 0x296ecc48163c793e, 0x6fffae2108df194], false, [0x5409d933232332a0, 0xb0ff95f4e6dcf6dd, 0x3def63d6c1d6f73c, 0x30545eb828b9d80e])
+ self.add([0x801cc3c4c038f82d, 0x942c7dc9444cb662, 0xd83a0b5e3f946657, 0x22090ce3033be127], [0x338478311eee418b, 0xb7f850b53ad01d3d, 0x9cadcd1a351480ad], false, [0x801cc3c4c038f82d, 0xc7b0f5fa633af7ee, 0x90325c137a648394, 0xbeb6d9fd385061d4])
+ self.add([0x36d626f4ee6a42cf, 0x8510878538884c53, 0xe70001c7154794bb, 0xa3abfe7663859f0], [0x291e834711834450, 0x5cbb8c14a1172408, 0x8f0e63ef6aba7bb5], false, [0x36d626f4ee6a42cf, 0xae2f0acc4a0b90a4, 0x43bb8ddbb65eb8c3, 0x994923d6d0f2d5a5])
+ self.add([0xf56ac1e2bb50b8fa, 0x562c8cf704e1bc65, 0x694201de43c7c68, 0xb44d37e3ea7c58ac], [0xb2f90f7b0cf07e4d, 0xfa0fb3b50df9161e, 0xa439d75bf906c056], false, [0xf56ac1e2bb50b8fb, 0x9259c7211d23ab3, 0xa3d3d2f2359287, 0x58870f3fe3831902])
+ self.add([0x34d65fc62de0aa9f, 0xbd17fc7d644861c6, 0x21e8102fa92c1e3d, 0xf28373c2d0952370], [0xbee4ff0922f7dfd0, 0x540d0ea09daf2624, 0x7e4a2342ed4527fd], false, [0x34d65fc62de0aaa0, 0x7bfcfb8687404196, 0x75f51ed046db4462, 0x70cd9705bdda4b6d])
+ self.add([0x364138b81fc9e593, 0x2b437b2a1b5aa3e, 0xbd3649bb703ce9aa, 0x952379ca5fae95fc], [0x9c0c7ce362cff543, 0x7d2cd818cf4c66c7, 0x76ffec43b4cd1b0d], false, [0x364138b81fc9e593, 0x9ec0b49604859f82, 0x3a6321d43f895072, 0xc23660e147bb109])
+ self.add([0x1718a47a2f6f488b, 0xd5876082dc009019, 0x580242690ba70929, 0x22bd01d953204ca6], [0x793bc81d9098237e, 0x73d4602bbe91a32d, 0x1cafe024fdb21a86], false, [0x1718a47a2f6f488c, 0x4ec328a06c98b397, 0xcbd6a294ca38ac56, 0x3f6ce1fe50d2672c])
+ self.add([0xfbc1e7d72fe9dafc, 0x69343f651382db3c, 0xc72b0f1ca0e2c56f, 0xc726140417c83244], [0xadc9c77202d213d9, 0x4812f020566968ec, 0x399e8bc5681e38e2], false, [0xfbc1e7d72fe9dafd, 0x16fe06d71654ef16, 0xf3dff3cf74c2e5c, 0xc49fc97fe66b26])
+ self.add([ 0xe81d59a7201915c, 0x8e7de8e4a92cbc7e, 0x4bee642cfeee22e3, 0xf001b027c8d98167], [0x1f1eb052a5c47240, 0xbc8294fd2200d86c, 0x1bf33bcbfc66d843], false, [ 0xe81d59a7201915c, 0xad9c99374ef12ebf, 0x870f92a20eefb50, 0xbf4ebf3c54059aa])
+ self.add([0xec01006d854bb407, 0x624a5f2b7f4888a4, 0x7c1bde80d2695ca9, 0x75a9a0d1e604c238], [0xbfc321d8a3b5bc6c, 0xa9463419ebc11deb, 0x6415a1b76ba09d92], false, [0xec01006d854bb408, 0x220d810422fe4511, 0x2562129abe2a7a94, 0xd9bf428951a55fca])
+ self.add([0x5057be66dcfddeda, 0x8c70e061d86c4fd0, 0xfb0c7f00650f6253, 0xe1dc729b6cbfc706], [0x8dac6eb90a5ece76, 0xf5e9ca7ff649640f, 0xf0f6bba25066c0b3], false, [0x5057be66dcfddedb, 0x1a1d4f1ae2cb1e47, 0xf0f649805b58c663, 0xd2d32e3dbd2687b9])
+ self.add([0x7c70723d6c14f638, 0x2f49c5e807dae44c, 0x1748bb7dbdda3a97, 0x8c9bd7460c811c09], [0x891cf9c132b8b73d, 0xcb76aea04eb2854b, 0x92fd40df7104b048], false, [0x7c70723d6c14f638, 0xb866bfa93a939b89, 0xe2bf6a1e0c8cbfe3, 0x1f9918257d85cc51])
+ self.add([0x66e96b9be5f4438f, 0xf4d8cfd0adcf4e76, 0x595ce707e40c677f, 0x9889e6bb99896e2b], [0x4f0ff131c54e2fc6, 0x244bc54c0bb89c47, 0xf109c2a9a16605], false, [0x66e96b9be5f44390, 0x43e8c102731d7e3c, 0x7da8ac53efc503c6, 0x997af07e432ad430])
+ self.add([0xc05c14735d1982fc, 0x4a64b0e026f688e8, 0x712ef5b1ad0ace8, 0x8087f196f079fa7f], [0x3e84ff72cdc977d2, 0xa99c00525ed6582e, 0x542f0bb969682574], false, [0xc05c14735d1982fc, 0x88e9b052f4c000ba, 0xb0aeefad79a70516, 0xd4b6fd5059e21ff3])
+ self.add([0x70852856092b4435, 0x85a6c45ef0d3db84, 0x38efe403b473134a, 0xb54c17b704f02a5d], [0xbb66618ae769d61a, 0x42e5db388d87ad92, 0x74ea6c63241d129b], false, [0x70852856092b4436, 0x410d25e9d83db19e, 0x7bd5bf3c41fac0dd, 0x2a36841a290d3cf8])
+ self.add([0x3a380b390dcba181, 0x87cddde169910e97, 0x3f15c332b73dc232, 0x5fcc5a49499d7746], [0x90c3ac6ad1a0b7a7, 0xe29e1c42e2ada67b, 0xa08d3fdf48e76126], false, [0x3a380b390dcba182, 0x18918a4c3b31c63f, 0x21b3df7599eb68ae, 0x599a289284d86c])
+ self.add([0xb80f2017197d9cbd, 0x90d7f271ccb7a79, 0xeed62eb4972da9c2, 0x1c386942ee5ba456], [0x3c95aa9953fc437c, 0x9488bdf2245a8817, 0xd9d80c945660ec48], false, [0xb80f2017197d9cbd, 0x45a329c070c7bdf6, 0x835eeca6bb8831d9, 0xf61075d744bc909e])
+ self.add([0xcd43047628f49ca2, 0x629441d1cceedbf5, 0xa21fc088b3871125, 0x26bac8f7cc2213a3], [0x4d9cc260e44dccbe, 0x8cba4175b0384c62, 0xff45f15508a01e2], false, [0xcd43047628f49ca2, 0xb0310432b13ca8b4, 0x2eda01fe63bf5d87, 0x36af280d1cac1585])
+ self.add([0x19d55b471bd7e88a, 0xaa73a4fe138679ac, 0x694b3a1ac27a6a, 0x371fa5c327a3c208], [0xa1ff2944f34714ca, 0xd0e1f91f3eee3f4b, 0x97bca3432fe79a74], false, [0x19d55b471bd7e88b, 0x4c72ce4306cd8e76, 0xd14b445959b0b9b5, 0xcedc4906578b5c7c])
+ self.add([0x1cce78c19c41875b, 0xd485bb3a5f433b7e, 0x2ed658d7cf57351f, 0x7918d2f569720bc], [0x47665daf5689fcb0, 0xefe19b025e1f9776, 0xa934a3906ddf5ba2], false, [0x1cce78c19c41875c, 0x1bec18e9b5cd382f, 0x1eb7f3da2d76cc95, 0xb0c630bfc4767c5e])
+ self.add([0x3d41775ecc4b6167, 0xc62d212c67213477, 0x8c621a5ad8516cfe, 0x48f1a5f9ab479a4e], [ 0x61cde1fc4395d55, 0xfa450c2e7eeb0aa3, 0xc97f0085548108c9], false, [0x3d41775ecc4b6167, 0xcc49ff4c2b5a91cd, 0x86a72689573c77a2, 0x1270a67effc8a317])
+ self.add([0x57e14c4763d95078, 0xb8406cda157565da, 0x6c10fa8a40a2ef07, 0xa2974aa8f49f2af8], [0xb60e4d3c9f7dee1d, 0xbfad02c6e5f3bce4, 0xc703148908e5ac00], false, [0x57e14c4763d95079, 0x6e4eba16b4f353f8, 0x2bbdfd512696abec, 0x699a5f31fd84d6f8])
+ }
+
+ func test_add_4_by_4() {
+ self.add([0xc8c8861210448111, 0xb3b034d9d8bb3f9c, 0x696eece9a21ba00b, 0x9e0f4b10d653d974], [0xf38ddf4972685ce0, 0x824b3a9fe7885e94, 0x978518990c669169, 0xd5e6fad38fcac7b6], true, [0xbc56655b82acddf2, 0x35fb6f79c0439e31, 0xf40582ae823175, 0x73f645e4661ea12a])
+ self.add([0x36f0eadd2dd69e88, 0xaf0d924b2cb51557, 0x39176414ab28bc19, 0xac1ea6e32868934a], [0xf8e3f3d200f4083f, 0x972ea574238a968b, 0x3c979f759c2b59ed, 0x8b0c8200bcd23860], true, [0x2fd4deaf2ecaa6c8, 0x463c37bf503fabe2, 0x75af038a47541607, 0x372b28e3e53acbaa])
+ self.add([0x7a8d137a8a5580bf, 0x9615641385a6ba78, 0xa478e912c7d46bc0, 0xe3f858b1633c15e4], [0xfa57e6af9a03b54d, 0xac463d9b4715a74b, 0x6fcfe3875f05b77f, 0x39fcb0608addb9b3], true, [0x74e4fa2a2459360d, 0x425ba1aeccbc61c4, 0x1448cc9a26da2340, 0x1df50911ee19cf97])
+ self.add([0x1a257626e88b0eec, 0x978bef8b138ba50e, 0x27b4f6d8a1c2f0b1, 0xe15f53b53ac2fcbe], [0x697a0c5ef12bfa7b, 0xb159853756e8e17, 0x5ffabad0c075cde2, 0x97e4750ce40c11ca], false, [0x839f8285d9b70967, 0xa2a187de88fa3325, 0x87afb1a96238be94, 0x7943c8c21ecf0e88])
+ self.add([0xe10e67153faacf90, 0x3152af6890ea8b83, 0xad2b29c223c76842, 0x6ade1472a9b4ba21], [0xbbba1b32fe1fb27e, 0xf034389c72f085bd, 0x2d72d51b6cffc48f, 0xb1aa9327670af68f], true, [0x9cc882483dca820f, 0x2186e80503db1140, 0xda9dfedd90c72cd2, 0x1c88a79a10bfb0b0])
+ self.add([0xaacce3a1c93d7a5f, 0xec44e8ee89abd89b, 0x443720ca330af427, 0x8fca5ae87568791d], [0xd44c652934dce9cc, 0xd8f1f92874b27858, 0x1f15a87d9d08421f, 0x9fd81067cd8b1b54], true, [0x7f1948cafe1a642c, 0xc536e216fe5e50f3, 0x634cc947d0133647, 0x2fa26b5042f39471])
+ self.add([0x4c3ffee776ca88e6, 0xcfa3c1ad3fe8d26, 0x17cd09a7e78ce584, 0xf5c6fa99da1a8315], [0xe1ee7b688d4c894c, 0xdbceaeb58bc9ef, 0xf7d5759c1ef5ce6, 0xa5a0092c3ea9f7fc], true, [0x2e2e7a5004171232, 0xdd60ac9898a5715, 0x274a6101a97c426b, 0x9b6703c618c47b11])
+ self.add([0x8d929f89c4b64ace, 0xd295dde4a6b4a5d6, 0xbd8992ebbdcc1690, 0xefdd9833262d77df], [0x8ffbf1aeaccfba58, 0x6bafc58afdf46af7, 0x22f35933fc2d1ada, 0xf24eb0bc5fb558e5], true, [0x1d8e913871860527, 0x3e45a36fa4a910cd, 0xe07cec1fb9f9316b, 0xe22c48ef85e2d0c4])
+ self.add([0x85b2d116db6f0c57, 0x5503a285345e0ae, 0xea35ad2525293939, 0x285663676439370c], [ 0x35ddd826d539117, 0x2c4be7fc592ad0f9, 0xf1f03f3dd7c75a5d, 0x49516fa91ccbf34c], false, [0x8910ae9948c29d6e, 0x319c2224ac70b1a8, 0xdc25ec62fcf09396, 0x71a7d31081052a58])
+ self.add([0x52ae698d4ece766a, 0x21eb07dc2ec64dec, 0xd1c694e8ed995a06, 0xcd49048f7aaa161d], [0x4da86f1a1970b439, 0xf4f65c2a9be39337, 0xeb48e0a126a53478, 0xe43c493747d8231a], false, [0xa056d8a7683f2aa4, 0x16e16406caa9e124, 0xbd0f758a143e8e7f, 0xb1854dc6c2823937])
+ self.add([0xa0062dcd7cbe1306, 0x2980df25aabf941f, 0xc90aa6a710d760, 0xfc73884cd3fdbc34], [0xfc67a37ece03f29f, 0x21bf4383094c928a, 0x38252e3b53e80a86, 0x4d66072396f1bf7], true, [0x9c6dd14c4ac205a5, 0x4b4022a8b40c26a9, 0x38ee38e1faf8e1e7, 0x149e8bf0d6cd82b])
+ self.add([0x2ddfa960d2a737f7, 0xdfb475d25cef357c, 0x4507fe1472e3fe05, 0xf6edcd229aa2dafb], [0xc0d918438c80954c, 0x3941eeb4b4ecaacf, 0x7601936e63634edb, 0x83005e830d218692], false, [0xeeb8c1a45f27cd44, 0x18f6648711dbe04b, 0xbb099182d6474ce1, 0x79ee2ba5a7c4618d])
+ self.add([ 0x557920b2b592ada, 0xf0a391f55e3f12e3, 0xa83bcd38b85bfec4, 0x854d36e7df7388a9], [0xf83e704435008528, 0x4cd6be5449adbcdf, 0xb8ffd07b1e7d61bd, 0x170a22e4220589b0], false, [0xfd96024f6059b003, 0x3d7a5049a7eccfc3, 0x613b9db3d6d96081, 0x9c5759cc01791259])
+ self.add([0xd0e3a5f4f893e891, 0x8fd15f297fc9dee8, 0xecea0b421b916e7b, 0x52c96fc7814659d3], [0x9f096648ef0b8082, 0x294ef3df935bd4be, 0xc318d3ae46796c96, 0x91aed5446bc4b53d], true, [0x6fed0c3de79f6913, 0xb92053091325b3a7, 0xb002def0620adb11, 0xe478450bed0b0f10])
+ self.add([0xac42b49fdd794935, 0xda676d55aaf78d5c, 0x183a0f0d2ffe7d29, 0xe0c136c3437cf5e4], [0xf77265a8ed40acc6, 0x1dc1acf1e478d451, 0xb4363f61304c5672, 0x2923cb8d77366b0a], true, [0xa3b51a48cab9f5fb, 0xf8291a478f7061ad, 0xcc704e6e604ad39c, 0x9e50250bab360ee])
+ self.add([0x33e315c4578dc942, 0xe6d9328436c848df, 0x79470b67f1de410, 0xd975bb00145157b8], [ 0x4e8b682f432a753, 0x1c9800e5140d4f81, 0x243f8a5435ce318a, 0x42c91b680efcd98a], false, [0x38cbcc474bc07096, 0x37133694ad59860, 0x2bd3fb0ab4ec159b, 0x1c3ed668234e3142])
+ self.add([0x5996a43d7f4576fe, 0xfd229618c3fcbae, 0x85050614a98bb7d0, 0x5e7ef2fb75e06da7], [0xb83c35a8cde69113, 0xb8f468f7be8febdb, 0xef933961281aac65, 0xeca2e99012ae5c56], true, [0x11d2d9e64d2c0811, 0xc8c692594acfb78a, 0x74983f75d1a66436, 0x4b21dc8b888ec9fd])
+ self.add([0xc48314496cc1efdc, 0x5298e4ae4d343e8b, 0xce8db0b7054e627a, 0xdb2d6de4e3e09391], [0xaa2ab535b9bc8175, 0xb8b403d26c85a40b, 0x5862b176cdb5496a, 0x87fe6d86d38b7b65], true, [0x6eadc97f267e7152, 0xb4ce880b9b9e297, 0x26f0622dd303abe5, 0x632bdb6bb76c0ef6])
+ self.add([0xcb801738e967627d, 0xf3ab0bd88c5762f7, 0xa2d55408f3534e7e, 0x6131225987c22e20], [0x892abf274b77616f, 0x8db55fd591e3f596, 0x1389f7ceb148ef60, 0xac01a4ad3a985624], true, [0x54aad66034dec3ed, 0x81606bae1e3b588d, 0xb65f4bd7a49c3ddf, 0xd32c706c25a8444])
+ self.add([0x642ad733a162df2b, 0x721046c596a711b3, 0x4058bf9a4a799c53, 0xdb6d9c8cc33721cc], [0x5e00fbfa49bee0cb, 0x84e2b539ee962039, 0x9eea6f600caf4b2, 0x90c2d8190d647149], false, [0xc22bd32deb21bff6, 0xf6f2fbff853d31ec, 0x4a4766904b449106, 0x6c3074a5d09b9315])
+ self.add([0xbc2c8e171f215c38, 0xbbf095b3edd60c32, 0x5afb5c4efc0c3df7, 0x90139bafefecc369], [0x4dc9e61474eaa71f, 0x76b88d12e6ddb4bf, 0x7194a71ec79a9dfb, 0xbfd3315feb98c11a], true, [ 0x9f6742b940c0358, 0x32a922c6d4b3c0f1, 0xcc90036dc3a6dbf3, 0x4fe6cd0fdb858483])
+ self.add([0x6679579ca0d7f0cf, 0x4019c0815b6e7c67, 0x321f8334bf4af0a6, 0xf3b55cd8ca5bc3ed], [0x16a2571407393c2b, 0xf0673fec58f6e16, 0x2f0e3bec449a370d, 0xd97b9ad881b2210f], false, [0x7d1baeb0a8112cfa, 0x4f20348020fdea7d, 0x612dbf2103e527b4, 0xcd30f7b14c0de4fc])
+ self.add([0xdfa829a93f4a5523, 0x9be8b00d25ed0924, 0x5a243e2bd6482ca0, 0xfc25b8cda58238a4], [0x8df81611d15ed82a, 0xf42311d37d20d8c4, 0x5610484edbeb2a2a, 0xe3df9e9ac8d8d473], true, [0x6da03fbb10a92d4e, 0x900bc1e0a30de1e8, 0xb034867ab23356cb, 0xe00557686e5b0d17])
+ self.add([0x497c7b07968ad606, 0xdcc37df39b2af6f0, 0x1b2a307df6a65f46, 0x76dd75eb713dce71], [0xb72949b367f19f7a, 0x89eb0fd99ad983aa, 0x5426effc50bfc744, 0xb5fe29d35be08407], true, [ 0xa5c4bafe7c7581, 0x66ae8dcd36047a9a, 0x6f51207a4766268b, 0x2cdb9fbecd1e5278])
+ self.add([0x4807beae79459759, 0x9bb74f24f249b0d3, 0x8c32fbdcfaf0c1ee, 0x415692d865940074], [0x64202c55c7c5face, 0xaa05cc22b4af2459, 0xe8ee266a6011ab4e, 0x5f67bf3f97fb23b3], false, [0xac27eb04410b9228, 0x45bd1b47a6f8d52d, 0x752122475b026d3c, 0xa0be5217fd8f2427])
+ self.add([0x909d4621c63e7846, 0x828895dcb75540df, 0x696f978ceda030cf, 0x1ac3ee1f27014041], [0x6867d4b921cb0337, 0x6061d2004b414c28, 0xf15964b9401748db, 0x7a0698692b024218], false, [0xf9051adae8097b7d, 0xe2ea67dd02968d08, 0x5ac8fc462db779aa, 0x94ca868852038259])
+ self.add([0x837eca9ebd6519a4, 0x978270b52d563ffd, 0x5a9901174cecb694, 0xa6f3c65243ad0a2e], [0x13e1034fa3a8870b, 0xbcb54f896c78fb5b, 0x1bde6d204af5fd7c, 0x46f311644943d4b0], false, [0x975fcdee610da0b0, 0x5437c03e99cf3b58, 0x76776e3797e2b410, 0xede6d7b68cf0dede])
+ self.add([ 0xda8dfb934b8ae2c, 0x70110889d1b1e6d2, 0x1cbc4a47d9f36134, 0xe6cb3474157f5ba2], [0x1ab2d90b404f2cf2, 0x65b60d7ce63dd234, 0x7e16a8f034a3feee, 0x771b9333e030852e], false, [0x285bb8c47507db1e, 0xd5c71606b7efb906, 0x9ad2f3380e976023, 0x5de6c7a7f5afe0d0])
+ self.add([0xc600632ce3abfea3, 0x867b69ffaa21d68d, 0x304382f6eaaba86a, 0xe6955c0bf5de4ebd], [ 0x15f7038400a7848, 0xf45098bbce80b552, 0x406e5f836ce2790a, 0xac409844fc446717], false, [0xc75fd36523b676ec, 0x7acc02bb78a28bdf, 0x70b1e27a578e2175, 0x92d5f450f222b5d4])
+ self.add([0xa73ab114aee6bb16, 0xc045d71bac32c9c5, 0xd5c7a30968d907bc, 0x13094c1d507c5712], [0x18c5ba345a4c3e16, 0x4d34464204c46a9e, 0x63b0cc5ee1e5621d, 0x7c0bc7960e12360], false, [0xc0006b490932f92d, 0xd7a1d5db0f73464, 0x39786f684abe69d9, 0x1aca0896b15d7a72])
+ self.add([0x43eeab79c275b172, 0xfbbe67a95ba56cc5, 0xaeda753b29698f18, 0x4393a99f6b5a4204], [0x68d2b91783aa6a05, 0x96356ba3eb90de07, 0x6ac762d2a6f584c5, 0x3c118ebf7ef5eeb7], false, [0xacc1649146201b78, 0x91f3d34d47364acd, 0x19a1d80dd05f13dd, 0x7fa5385eea5030bb])
+ self.add([0x4e533022a1d46081, 0x60cf358188c514a1, 0x207f025fd9f47839, 0x2e539ed888ebc520], [0x259862ec29ca79fd, 0xfbf476a2f46e4750, 0xb0eb4afe6a1a53f3, 0x7b0341e68fda1c40], false, [0x73eb930ecb9eda7f, 0x5cc3ac247d335bf1, 0xd16a4d5e440ecc2c, 0xa956e0bf18c5e160])
+ self.add([0x2e0a6f094e1f283d, 0x38a7266ce2452a3f, 0x1c05c449f3f22848, 0xafbca5da4bb4d6c6], [0x1e33a0ccd30d58f1, 0xfeeedf0f697384f, 0x917a160aed34c234, 0x1e141aef22c0260c], false, [0x4c3e0fd6212c812e, 0x4896145dd8dc628e, 0xad7fda54e126ea7c, 0xcdd0c0c96e74fcd2])
+ self.add([0x51de0b1663a66c96, 0x52ac29cc54a24af9, 0xea123bb3feb66fa5, 0xcc0e2febdf5b5785], [0xf10918316ed7c680, 0x5afb7726eb5e9aa, 0xc6d5091782d1ca85, 0x722b8bc1cbcc100b], true, [0x42e72347d27e3316, 0x585be13ec35834a4, 0xb0e744cb81883a2b, 0x3e39bbadab276790])
+ self.add([0x9d05cfebf30d4162, 0x7686fed9b6b95a6, 0x98b15106614c44d2, 0xd2ae7ad18c2220a1], [0x29293eccef4b1f12, 0x91251fe2cf7c1c34, 0x208c285985e94b8, 0x5a0ea692ed0305e5], false, [0xc62f0eb8e2586074, 0x988d8fd06ae7b1da, 0x9aba138bf9aad98b, 0x2cbd216479252686])
+ self.add([0x56dd9a23cc133f16, 0x3dce20317c04eace, 0xad9b9df2ed61423f, 0xc50a093624bdd7fc], [0x243867389abcdfa3, 0x5f765374facf3477, 0x2a4886acbaf3f765, 0x39bd716da10b8d97], false, [0x7b16015c66d01eb9, 0x9d4473a676d41f45, 0xd7e4249fa85539a4, 0xfec77aa3c5c96593])
+ self.add([0x9993faed404ee3ff, 0xe036664cc6f4b9f6, 0xa63e9f95c19cc1ce, 0xf9eded22e9ce8799], [0xde4239641eb6efd5, 0xecf7e72a0c9477ab, 0x867d09eedcb27950, 0xd00e121e66bc0cc5], true, [0x77d634515f05d3d5, 0xcd2e4d76d38931a2, 0x2cbba9849e4f3b1f, 0xc9fbff41508a945e])
+ self.add([0x68a879b3e6146da3, 0xd41a7f31dc3b62b1, 0x86554ae5a2a57f89, 0x6054323b2634e98a], [0x8cbe715b6f927e66, 0xa2537af7babd9ec2, 0xf35c0423bc7574b7, 0xa45f2ab9800204cf], false, [0xf566eb0f55a6ec0a, 0x766dfa2996f90174, 0x79b14f095f1af441, 0x4b35cf4a636ee59])
+ self.add([ 0x91dc15da8136c5b, 0x68c3b15c48195c2c, 0x1f232634f320f1bc, 0x345651be08f74478], [0x44d862101e9a06b1, 0x82ad2f34fa23e9e8, 0x4b7c2867c7cf85c4, 0x6ac3d3cd7a1c2ac2], false, [0x4df6236dc6ad730c, 0xeb70e091423d4614, 0x6a9f4e9cbaf07780, 0x9f1a258b83136f3a])
+ self.add([0x7827cfbd1d8de832, 0x5a695b0eb58c6801, 0x16a9ac821c574b61, 0x5d78659a2ce136ce], [0xfc23f9828b7fe2e5, 0xc7548e9bd27e19b9, 0xf4dca926f803392, 0xa6ae94ae85ca1e65], true, [0x744bc93fa90dcb18, 0x21bde9aa880a81ba, 0x25f777148bd77ef4, 0x426fa48b2ab5533])
+ self.add([0xbb50b5854dbaa2c5, 0x96edefd66a9d68b0, 0x80849a80bac1c459, 0x629aab948ece2fea], [0xf78475c783507e64, 0x49d752dfa95c12f7, 0xd334cfc4c4974391, 0x572aafc759bcd807], true, [0xb2d52b4cd10b2129, 0xe0c542b613f97ba8, 0x53b96a457f5907ea, 0xb9c55b5be88b07f1])
+ self.add([0x1116bda2a862cbbb, 0xfb74e1e73c2726d9, 0x30319da0b1a66e86, 0xc2c15e53fae8c457], [0x357a0b62156abb0e, 0xb3737c303bb5539, 0x21af6f385dcaa644, 0xec5e14bddd988e36], false, [0x4690c904bdcd86ca, 0x6ac19aa3fe27c12, 0x51e10cd90f7114cb, 0xaf1f7311d881528d])
+ self.add([0xe53cd8d3927e9657, 0xe16eead5b2205776, 0xf105965fbbe32d92, 0x238d51d514088269], [0x6c3d9581527b0fc4, 0x874684425e53e5a1, 0xa027ff39d4e003d2, 0x39c3b0e031a9a10], true, [0x517a6e54e4f9a61c, 0x68b56f1810743d18, 0x912d959990c33164, 0x27298ce317231c79])
+ self.add([0x8fa5e8b1c23035ad, 0x7abe798364f8f31, 0x9f86344446eaef5, 0x53be997168bb6d39], [0x5692693d97710a08, 0x3f7f4450accd8039, 0x8fd391aea45ad93a, 0x3a3dd4815af9bcd4], false, [0xe63851ef59a13fb5, 0x472b2be8e31d0f6a, 0x99cbf4f2e8c9882f, 0x8dfc6df2c3b52a0d])
+ self.add([0x2c709cece5d7cc5e, 0x5192ce2762f09e48, 0x3c6e21fb875d566e, 0xd13e3627351b3e15], [0x75dd7d7d03567c0f, 0x49d226d9681b3223, 0xe2b1f3200c6504bb, 0x517b0ce3273f78fc], false, [0xa24e1a69e92e486d, 0x9b64f500cb0bd06c, 0x1f20151b93c25b2a, 0x22b9430a5c5ab711])
+ self.add([0xf47d8d5d2caa66d2, 0x23a10be499300fd3, 0xb7a371c4622af003, 0x5ef83c32fd7f0312], [0x19078ee4ee5bb647, 0x23e87679a64e388c, 0x36dfe69fc4f7e280, 0x60c04c178c9213ad], true, [ 0xd851c421b061d19, 0x4789825e3f7e485f, 0xee8358642722d283, 0xbfb8884a8a1116bf])
+ self.add([0xef8e95ebb481540b, 0x8ce4ab11e228059b, 0x4b10a2b35b74c222, 0xb9889fe2d8eafca5], [0x1fc1e29f05ec73a2, 0x3353d53835f169ad, 0xa18a27ff036430a, 0x46d0e60932f892cb], true, [ 0xf50788aba6dc7ad, 0xc038804a18196f48, 0x552945334bab052d, 0x5985ec0be38f70])
+ self.add([0x3b4e400a82e3fb10, 0xe582807c71a03e15, 0x2d862f061783c585, 0xd25af01703f180e7], [0x5f57694d53ef9bdb, 0xb835b412e934f1f2, 0xc47582c31ca8acc6, 0xaa7ac2df6e9aa567], false, [0x9aa5a957d6d396ec, 0x9db8348f5ad53007, 0xf1fbb1c9342c724c, 0x7cd5b2f6728c264e])
+ self.add([0xc8e54aa0b8a67194, 0xffad69983ea537e4, 0xe9abe9d371129d44, 0xd60cc0f1fb7adcd], [ 0xa7ebca0b26c13c4, 0xf084e38377e7d0e0, 0xadd45080e40acdb2, 0x96b5ed3c2650f389], false, [0xd36407416b128559, 0xf0324d1bb68d08c5, 0x97803a54551d6af6, 0xa416b94b4608a156])
+ self.add([0x251ab2bb4828e050, 0x8bef3af0cb0af7ad, 0x1137b0fd1a5c35bb, 0xe676ed4c7d47353c], [0x40d80019ae070427, 0x5be9f7142fe46354, 0x9d82cfd92d1b568, 0xf6413e84667d1d37], false, [0x65f2b2d4f62fe477, 0xe7d93204faef5b01, 0x1b0fddfaad2deb24, 0xdcb82bd0e3c45273])
+ }
+
+ private func add(
+ _ lhsWords: [Word],
+ _ rhsWords: [Word],
+ _ expectedOverflow: Bool,
+ _ expectedWords: [Word],
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let lhs = self.create(lhsWords)
+ let rhs = self.create(rhsWords)
+ let expected = self.create(expectedWords)
+
+ let (result, overflow) = lhs.addingReportingOverflow(rhs)
+ XCTAssertEqual(result, expected, "reportingOverflow.result", file: file, line: line)
+ XCTAssertEqual(overflow, expectedOverflow, "reportingOverflow.overflow", file: file, line: line)
+
+ if !overflow {
+ let result2 = lhs + rhs
+ XCTAssertEqual(result2, expected, "+", file: file, line: line)
+ }
+ }
+
+ // MARK: - Sub
+
+ func test_sub_1_by_1() {
+ self.sub([0xf9e1e2f7669e26a3], [0x1507d0c6079ee763], false, [0xe4da12315eff3f40])
+ self.sub([0x8a13f2ad47d8d18d], [0xdbccef56e826058e], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xae4703565fb2cbff])
+ self.sub([0x6c6393b8c7344722], [0x111fc7e34f76ef20], false, [0x5b43cbd577bd5802])
+ self.sub([0xee20970a2a816213], [0x1115a2177b7cc61d], false, [0xdd0af4f2af049bf6])
+ self.sub([0xc62c6cb291c21b66], [0xd676ba74e9ae8540], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xefb5b23da8139626])
+ self.sub([0x5c0dd93ace41c32e], [0xaa0040db69f64a45], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xb20d985f644b78e9])
+ self.sub([ 0x7a75d6bc59e5f33], [0x99d81bfc7093aec0], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x6dcf416f550ab073])
+ self.sub([0xd7fa65c27b0a7edf], [0x96ba715ff66f0262], false, [0x413ff462849b7c7d])
+ self.sub([0x509914a8b81e0322], [0x9bae03988d4559e0], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xb4eb11102ad8a942])
+ self.sub([0x8b76093b768b390a], [0x3e55c8f0504d46ab], false, [0x4d20404b263df25f])
+ self.sub([0x3e739c5081e63e0c], [0xc9bc05a851f17da2], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x74b796a82ff4c06a])
+ self.sub([0x75795660aa2a5480], [ 0x3c14b0b83a5b0a3], false, [0x71b80b552684a3dd])
+ self.sub([0xaf49334b4f7bab0c], [0x3b2a5bd3b7fdeaca], false, [0x741ed777977dc042])
+ self.sub([ 0xa08960171c2d55e], [0x1ab362be791d6b95], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xef553342f8a569c9])
+ self.sub([0x862b5f2bedda4274], [0x85c92dbfed59cc05], false, [ 0x62316c0080766f])
+ self.sub([0x33ddaa28f8536409], [0x7d8c89704f364bdc], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xb65120b8a91d182d])
+ self.sub([0x81a68eb040c6582f], [0xa43848ea6cf661a4], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xdd6e45c5d3cff68b])
+ self.sub([0xdf59ef23c66894f4], [0x6c0c61fd6b55b093], false, [0x734d8d265b12e461])
+ self.sub([ 0xe35dc600ae078db], [0x9f81a97e72a7b714], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x6eb432e19838c1c7])
+ self.sub([ 0xdfc96b65ac6d637], [0xffe00d6b3699ccde], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xe1c894b242d0959])
+ self.sub([0x45f6d53e9d8f50b6], [0x7cad8b3d066b0cc2], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xc9494a01972443f4])
+ self.sub([0x10bc3c4526b28bb9], [0x8b280989335f19e9], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x859432bbf35371d0])
+ self.sub([0x26b7a7d7a4a6aaf6], [0x6f4d879554876b0a], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xb76a2042501f3fec])
+ self.sub([0xa1a29b30bddcd27a], [0x6fb4063a9550d215], false, [0x31ee94f6288c0065])
+ self.sub([0x7172068353bc5401], [0xaea2cfe562e2891f], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xc2cf369df0d9cae2])
+ self.sub([0x80270daea20949db], [0x138fbd5793aaba01], false, [0x6c9750570e5e8fda])
+ self.sub([0x81a96e1dfac50c20], [0xc1e3b6ede7efa53e], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xbfc5b73012d566e2])
+ self.sub([0xf124abf31e418522], [0xf8742ead0e4be52d], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xf8b07d460ff59ff5])
+ self.sub([0xd02525a0af6d81fd], [0x706ba5aced7f85c6], false, [0x5fb97ff3c1edfc37])
+ self.sub([0x2908c9f7f102bc68], [0x453333dfaf8d841f], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xe3d5961841753849])
+ self.sub([0xf60fb8d9386a88a3], [0x7544fcf45efaa6bf], false, [0x80cabbe4d96fe1e4])
+ self.sub([0x45f589b2837894aa], [0x75447cebf0a072ef], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xd0b10cc692d821bb])
+ self.sub([ 0xb2c9b6baa6f310b], [0xf31d845c446d4f5a], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x180f170f6601e1b1])
+ self.sub([0xbb7e937c949224fa], [0x858dc4bb921eee15], false, [0x35f0cec1027336e5])
+ self.sub([0x6d97f0ed39c412c8], [0xd4f1960f3387acdc], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x98a65ade063c65ec])
+ self.sub([0x61fab3c27bbae82c], [0x29da3eb420af788f], false, [0x3820750e5b0b6f9d])
+ self.sub([0x9a883a905b3fb977], [0x92eb505a56f96f2f], false, [ 0x79cea3604464a48])
+ self.sub([0x44daa36102c8e31c], [0xb4f53561188d196c], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x8fe56dffea3bc9b0])
+ self.sub([0x2476d9bba47c0994], [0xd4040662097017b4], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x5072d3599b0bf1e0])
+ self.sub([0x2a6c44e876d53369], [0xb97828aaa1cf0cd7], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x70f41c3dd5062692])
+ self.sub([0x4874623bcaf7e75e], [0x48f888a382f37de6], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xff7bd99848046978])
+ self.sub([0x638a8317c075b2a5], [0x77b834ed6cf0b32c], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xebd24e2a5384ff79])
+ self.sub([0x64b5e5d1c370f89b], [ 0xac7a9c251f1e37c], false, [0x59ee3c0f717f151f])
+ self.sub([0xf84c6c8f849e0b11], [0x4febed4d012f8577], false, [0xa8607f42836e859a])
+ self.sub([0x86864e11b5953b27], [0xd656116fbf55a6a1], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xb0303ca1f63f9486])
+ self.sub([0xed94836f8efceeac], [0x8addd46a73c8959a], false, [0x62b6af051b345912])
+ self.sub([0xc01ee23a49a79b91], [0x66f30ee055039cb2], false, [0x592bd359f4a3fedf])
+ self.sub([0xc8129d30d3c247b7], [0x6108ae0ded8f7429], false, [0x6709ef22e632d38e])
+ self.sub([0x5c938ea7aaba2683], [0xe5e5f2e5b64fa49f], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x76ad9bc1f46a81e4])
+ self.sub([0xc75c2ee45fef99c6], [0x4be26e9990740570], false, [0x7b79c04acf7b9456])
+ }
+
+ func test_sub_1_by_2() {
+ self.sub([0x4898a3b0121f73a1], [0x99440cbecad59a55, 0x972f3b1d57b735ed], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x66bbf341352a65aa, 0xb1696892ba683db4])
+ self.sub([0x98a65504142af00f], [0xaabd840487a73eb2, 0xd2269d62ea1c5692], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x55427bfb7858c14d, 0xc67fb7a12a0e997d])
+ self.sub([ 0xd76cb7a7fca69ec], [0xb88404d0040cf953, 0xf004f7934b093db7], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x477bfb2ffbf306ac, 0x1d71d3e734c12c35])
+ self.sub([ 0xf26ddc515a57064], [0x42bbce10ae77ca59, 0xc5a902d335c49bec], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xbd4431ef518835a6, 0x497ddaf1dfe0d478])
+ self.sub([0x57b96d8cefcc9290], [0x94fb29f08ee8b1a0, 0x310bfd0d15fda76a], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x6b04d60f71174e60, 0x26ad707fd9ceeb26])
+ self.sub([0xadb704a342c47b96], [0xf63cf030cb09ad6d, 0x5785ba1863c86e7a], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x9c30fcf34f65293, 0x56314a8adefc0d1c])
+ self.sub([0x6a6f4e6eaab0c41e], [0x223a6ce25f88ee78, 0xdd61f8cdff239841], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xddc5931da0771187, 0x8d0d55a0ab8d2bdd])
+ self.sub([0xb211e041630ef7f0], [0x55044efb7c744f71, 0xeb773641f1f8a925], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xaafbb104838bb08e, 0xc69aa9ff71164ecb])
+ self.sub([0x68af6f0f59cf819b], [0x10f35ca9c57d2af9, 0xf883b012c5855e90], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xef0ca3563a82d506, 0x702bbefc944a230b])
+ self.sub([0x4a6e0e299b56ebe8], [0x3ed026f9dd422aaa, 0x6c6931a4fb36a082], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xc12fd90622bdd555, 0xde04dc84a0204b66])
+ self.sub([0x23887c37b56a1a46], [0xac22c11bbe3c9c2f, 0x705f9eccc9f87e23], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x53dd3ee441c363d0, 0xb328dd6aeb719c23])
+ self.sub([0x56588fad88bc6ca9], [0x1cd667e81448e374, 0x82291b0f1f9c2834], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xe3299817ebb71c8b, 0xd42f749e69204475])
+ self.sub([0x3e11f280723db23f], [0x4a2043382a947e1a, 0x879a2ea4d2b05a8b], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xb5dfbcc7d56b81e5, 0xb677c3db9f8d57b4])
+ self.sub([0x52a688779817c3db], [0x15ecf0ecd6bc43ae, 0xc54ca9caf728312a], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xea130f132943bc51, 0x8d59deaca0ef92b1])
+ self.sub([0xa21c7ca531b53db5], [0x66dbfa17cb74b7c5, 0x51bc81e163cc0971], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x992405e8348b483b, 0x505ffac3cde93444])
+ self.sub([0xbca14f6c81a6dc23], [0x3b0b01d28f75f0bd, 0x505df0091a424900], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xc4f4fe2d708a0f43, 0x6c435f6367649323])
+ self.sub([0x856ce9263e17b036], [0x1c40e7026e91dbee, 0x22f5d91a6a6cf681], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xe3bf18fd916e2412, 0x6277100bd3aab9b5])
+ self.sub([0x8ba7787ca2cc5d7d], [0xbbce38a6e5e0afbc, 0x2fe67caa568aa534], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x4431c7591a1f5044, 0x5bc0fbd24c41b849])
+ self.sub([0xa1367a90b6d7d81a], [0x2cce5515edadc0f2, 0xc54e25e6813f6a99], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xd331aaea12523f0d, 0xdbe854aa35986d81])
+ self.sub([0x76ab2cf7cd6c543b], [0xd351d177db723918, 0x3c116565ff8ca4bb], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x2cae2e88248dc6e8, 0x3a99c791cddfaf80])
+ self.sub([ 0xb9e995eea9b3d2f], [0xdf028127d0bb5cb9, 0x4a25d66432844b17], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x20fd7ed82f44a346, 0xc178c2fab816f218])
+ self.sub([0x2c6b7e73b6268f70], [0xb038de11594fb46d, 0xed0a84606e86a7cd], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x4fc721eea6b04b92, 0x3f60fa13479fe7a3])
+ self.sub([0x870cd32bc947322f], [ 0x734ff4a13321352, 0xbe38090d8ed2ad8d], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xf8cb00b5eccdecad, 0xc8d4ca1e3a7484a2])
+ self.sub([0x35ef41daf3fa318e], [0x759532faafeec51f, 0xa01fb2b1e979f46d], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x8a6acd0550113ae0, 0x95cf8f290a803d21])
+ self.sub([0x9d8e747e2ea48a7d], [0x7c9474dfbf44ccd8, 0xee97eee33060ff82], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x836b8b2040bb3327, 0xaef6859afe438afb])
+ self.sub([0x30d2644d4f0fb921], [0xcd8817f9523105fa, 0x3248270ca1d395f7], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x3277e806adcefa05, 0xfe8a3d40ad3c232a])
+ self.sub([0x9c05e5e2d78e3011], [0x882dbebefe2e68c1, 0x7104e9ecf58b127d], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x77d2414101d1973f, 0x2b00fbf5e2031d94])
+ self.sub([0xb79419516556cda9], [0xcfd05103cc8c19f7, 0xd504fa5eb8b3271a], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x302faefc3373e608, 0xe28f1ef2aca3a68f])
+ self.sub([0xf498d18d1c463369], [0x6a5d770b5d73b15b, 0xebf3e5fa0c74be0b], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x95a288f4a28c4ea5, 0x8a4eb930fd1755e])
+ self.sub([0x207def31c989a5fa], [0xd151909c7e143ab9, 0xa51096e1b21aef50], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x2eae6f6381ebc546, 0x7b6d5850176eb6aa])
+ self.sub([0x26d6be770af3320a], [0xfad8506cfdf2e65c, 0x99154b3499d2500f], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x527af93020d19a3, 0x8dc173427120e1fb])
+ self.sub([0xbcc3cbab385cc704], [0xfb9b28761a139d51, 0x2da479381f7bc322], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x464d789e5ec62af, 0x8f1f527318e103e2])
+ self.sub([0x35422531370b5934], [0x172d645400e9595f, 0x3a0e955213177120], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xe8d29babff16a6a0, 0xfb338fdf23f3e814])
+ self.sub([0xdc8ffe603da9039c], [0xf76caa4007b89fe2, 0x4254e46edd1f6e1b], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x89355bff847601e, 0x9a3b19f160899581])
+ self.sub([0x8658b5f55324305a], [0xda121671a8e3fa42, 0xea0165c3907a10e], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x25ede98e571c05be, 0x77b89f991a1c8f4c])
+ self.sub([0x19d38259580361c6], [0xb8e31ba6a7eb97ba, 0xea6cbba809a41e4d], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x471ce45958146845, 0x2f66c6b14e5f4379])
+ self.sub([0x80c6aef475b52b53], [0xc59970a31097f2c4, 0x5e979f7a495e63c9], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x3a668f5cef680d3c, 0x222f0f7a2c56c78a])
+ self.sub([0x8c1bd3628f305f93], [0xbdd30991a25dcded, 0xb84f170edbeeb655], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x422cf66e5da23212, 0xd3ccbc53b341a93e])
+ self.sub([0xe68a52995e2ee73c], [0x7f0828d97151d91a, 0x52bff058b5eaa5be], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x80f7d7268eae26e6, 0x93ca6240a844417e])
+ self.sub([0x4225859a4f5f73cf], [0xd66c2b424ed2b9f0, 0x72d3aa76eedcd655], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x2993d4bdb12d460f, 0xcf51db2360829d7a])
+ self.sub([0x63815a7b39374402], [ 0x7fd759ab5daf2f5, 0xc53399f1684c0677], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xf8028a654a250d0a, 0x9e4dc089d0eb3d8b])
+ self.sub([0x330909bbeb0a4700], [0xfc1ee3a23b563758, 0xb7d87793460e6741], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x3e11c5dc4a9c8a7, 0x7b309228a4fbdfbf])
+ self.sub([0x4b31ebd0351d8eac], [0x92a74821370dd015, 0xf0f5fb52c4a85d8c], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x6d58b7dec8f22fea, 0x5a3bf07d70753120])
+ self.sub([0xfa55d402d9997021], [0xe092ce18327d77bb, 0x140bdefb951711be], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x1f6d31e7cd828845, 0xe649f50744825e63])
+ self.sub([0xb3b1fbd7d78aaf1e], [0x44a1bd75b9d17012, 0xd229621dfc8d46fc], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xbb5e428a462e8fed, 0xe18899b9dafd6822])
+ self.sub([0x63ccbdb0f5c85531], [ 0x8f2bab199154dbd, 0x7a663c545350c76f], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xf70d454e66eab242, 0xe966815ca2778dc2])
+ self.sub([0x1d8d1d99889678f3], [0x6cc45d785bbfc17c, 0xd69652cc9b6bad12], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x933ba287a4403e83, 0x46f6cacced2acbe1])
+ self.sub([0xf4fa6c22f79db3b2], [0xe975fa1e4b7078cc, 0x2335e7aa0de30ca7], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x168a05e1b48f8734, 0xd1c48478e9baa70b])
+ self.sub([0xeba53522f38b8b03], [0x78926ca47abce533, 0x3bc4801ec5d39d57], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x876d935b85431acd, 0xafe0b5042db7edac])
+ self.sub([0xc074d7592a057177], [0x588f4ef10d5da106, 0xc11e36c4f51d076d], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xa770b10ef2a25ef9, 0xff56a09434e86a0a])
+ }
+
+ func test_sub_1_by_3() {
+ self.sub([0xbb749592b08aed2a], [0x434825727f37df1e, 0x925f5eea53e0131a, 0x1e9af6fb2d74891b], true, [0xffffffffffffffff, 0xbcb7da8d80c820e1, 0x6da0a115ac1fece6, 0x9cd99e978316640f])
+ self.sub([0xa5ffc34e0c2b26d7], [0x69cfdcedf141aa69, 0x2e1f673a775e0e56, 0x4c69f8a0b533b2d], true, [0xffffffffffffffff, 0x963023120ebe5596, 0xd1e098c588a1f1aa, 0xa13923c400d7ebaa])
+ self.sub([0x30934cf083259473], [0xd68a68505de745be, 0x706c127fec0ea4e, 0x231f2a42990fcb2], true, [0xffffffffffffffff, 0x297597afa218ba41, 0xf8f93ed8013f15b2, 0x2e615a4c599497c1])
+ self.sub([0xbb1e6d35a7b343d7], [0x112ab2f24188f0c3, 0xb42b0c3544fba0fd, 0xa2f84b33cebd3d49], true, [0xffffffffffffffff, 0xeed54d0dbe770f3c, 0x4bd4f3cabb045f03, 0x18262201d8f6068e])
+ self.sub([0xacacf8d5b0b16d12], [0xf5e8abe2aa14f372, 0x415ddb21bad2f9a1, 0xefdedf30c03a4598], true, [0xffffffffffffffff, 0xa17541d55eb0c8d, 0xbea224de452d065e, 0xbcce19a4f077277a])
+ self.sub([0xaa4a193ba2df76d5], [0xefe2344c170d00f4, 0x9013dabeb9dbf600, 0xc03dc83e9dbd3f49], true, [0xffffffffffffffff, 0x101dcbb3e8f2ff0b, 0x6fec2541462409ff, 0xea0c50fd0522378c])
+ self.sub([0x73d7e5bfd1074923], [0x9aa3ab02be8ca4e5, 0x49371fc2c782cc7a, 0x69843b8f38e8e204], true, [0xffffffffffffffff, 0x655c54fd41735b1a, 0xb6c8e03d387d3386, 0xa53aa30981e671f])
+ self.sub([0x9d1fe0f8153fa496], [0xff21489e0abc99d3, 0x2c15dbcf693e6bab, 0x18507aa5a5faafb6], true, [0xffffffffffffffff, 0xdeb761f543662c, 0xd3ea243096c19455, 0x84cf66526f44f4e0])
+ self.sub([0xb250d940e82703fb], [0xd530234b378d016d, 0xeb3ff1021b4220a5, 0x4bd57d2533675697], true, [0xffffffffffffffff, 0x2acfdcb4c872fe92, 0x14c00efde4bddf5b, 0x667b5c1bb4bfad64])
+ self.sub([0x33fb79a26c095a14], [0x269393f897fa9e7b, 0xf2b2e096ca32e0a5, 0x50247914bc8260d1], true, [0xffffffffffffffff, 0xd96c6c0768056184, 0xd4d1f6935cd1f5a, 0xe3d7008daf86f943])
+ self.sub([0x6eba050f37d0c439], [0x6bb3ad8108344ec8, 0x1816bf0e826dac7e, 0xdb64cf4b2f985057], true, [0xffffffffffffffff, 0x944c527ef7cbb137, 0xe7e940f17d925381, 0x935535c4083873e2])
+ self.sub([0x3705324b43df3306], [0xe43a9297b72a3ef3, 0xcc4e98329748174f, 0x9eb3c1f7f272b9], true, [0xffffffffffffffff, 0x1bc56d6848d5c10c, 0x33b167cd68b7e8b1, 0x36667e894becc04d])
+ self.sub([0x2f5c7491ac4a4929], [0xca396f1b7966866d, 0x313d20d8ce607b1a, 0x2847e6ac70b85d9d], true, [0xffffffffffffffff, 0x35c690e486997992, 0xcec2df27319f84e6, 0x7148de53b91eb8c])
+ self.sub([0x729c46b95d50acd0], [0xb2bb711d043c6139, 0x15f2c1bc5bb1ad40, 0xa45a641c46487465], true, [0xffffffffffffffff, 0x4d448ee2fbc39ec6, 0xea0d3e43a44e52bf, 0xce41e29d1708386b])
+ self.sub([0x99c7145248bb2cad], [0xa0c102618a7151bc, 0x62c3250e4af0336d, 0x6b06ca6569b7e9ed], true, [0xffffffffffffffff, 0x5f3efd9e758eae43, 0x9d3cdaf1b50fcc93, 0x2ec049ecdf0342c0])
+ self.sub([0xafc40ef51b6515be], [0xe2a096631a62a7a5, 0x22c17959a04b4b12, 0x9ec281355352673], true, [0xffffffffffffffff, 0x1d5f699ce59d585a, 0xdd3e86a65fb4b4ee, 0xa5d7e6e1c62fef4b])
+ self.sub([0x5f481b46ff5d0804], [0x809ba1d929dc0692, 0x1036a4a447df0548, 0xcaff4f35e50c820e], true, [0xffffffffffffffff, 0x7f645e26d623f96d, 0xefc95b5bb820fab7, 0x9448cc111a5085f6])
+ self.sub([0x38955c88817f7069], [0xb3a61ffebb86332c, 0x9661c91a52b4c5d9, 0x82eac8daafb3ac17], true, [0xffffffffffffffff, 0x4c59e0014479ccd3, 0x699e36e5ad4b3a26, 0xb5aa93add1cbc452])
+ self.sub([0xdf88240a0c55971e], [0x8d9ddcf283bb7e99, 0x4b3862b2d862d744, 0x16facf4b79ef7309], true, [0xffffffffffffffff, 0x7262230d7c448166, 0xb4c79d4d279d28bc, 0xc88d54be92662415])
+ self.sub([0xeafa9dc1e9852f97], [0x88834047ca452beb, 0xcf9ef83c9a22b78, 0x3870535529093b10], true, [0xffffffffffffffff, 0x777cbfb835bad414, 0xf306107c365dd488, 0xb28a4a6cc07bf487])
+ self.sub([0xc6432c4cddec857c], [0x16e476c28e386397, 0x586eef1318ba750a, 0x7b905b955128f110], true, [0xffffffffffffffff, 0xe91b893d71c79c68, 0xa79110ece7458af6, 0x4ab2d0b78cc3946c])
+ self.sub([0x5104ceb54aa0515c], [0xb717109c6c2de16c, 0xa41aa25bbf97367c, 0xbbb9adabc7646a50], true, [0xffffffffffffffff, 0x48e8ef6393d21e93, 0x5be55da44068c983, 0x954b2109833be70c])
+ self.sub([0xa484266e993b2eb9], [0x1cb6a83f5c112988, 0x4159555015746c9, 0x7c746cf2099871c8], true, [0xffffffffffffffff, 0xe34957c0a3eed677, 0xfbea6aaafea8b937, 0x280fb97c8fa2bcf1])
+ self.sub([0xe7a9856e255dfff6], [0xeb33aeff7a0c0909, 0xafa983963fb99cfb, 0xfc170325fc8bc7c5], true, [0xffffffffffffffff, 0x14cc510085f3f6f6, 0x50567c69c0466304, 0xeb92824828d23831])
+ self.sub([0x7a0c27ded945bb07], [0x3c8de09b22839375, 0xa979c49d148fa984, 0xcb4bd438697594c3], true, [0xffffffffffffffff, 0xc3721f64dd7c6c8a, 0x56863b62eb70567b, 0xaec053a66fd02644])
+ self.sub([0x3c3af90bb4680244], [0x65c509aab678f01d, 0x535cbed4742585f9, 0xe6f048ad1130fe3], true, [0xffffffffffffffff, 0x9a3af65549870fe2, 0xaca3412b8bda7a07, 0x2dcbf480e354f261])
+ self.sub([0x9f06267f50419339], [0x2270af09c060699f, 0xb6c97c83eaddf757, 0xee30d7ecadb0c3a4], true, [0xffffffffffffffff, 0xdd8f50f63f9f9660, 0x4936837c152208a8, 0xb0d54e92a290cf95])
+ self.sub([0x6803453554226a75], [0x81a6cda2783e9fdc, 0x40186416cc308f04, 0x2594af983f02735d], true, [0xffffffffffffffff, 0x7e59325d87c16023, 0xbfe79be933cf70fc, 0x426e959d151ff718])
+ self.sub([0x2a860e50a0f7d1ba], [0xcbbb7d39c6bb4a05, 0xcc16f7dba9bfa643, 0x753d2098813f5e06], true, [0xffffffffffffffff, 0x344482c63944b5fa, 0x33e90824564059bc, 0xb548edb81fb873b4])
+ self.sub([0xc90cca6304b5d753], [0xc52269e7e0e95fb3, 0x76c9b2c273707939, 0x7d149a1bee70f4cf], true, [0xffffffffffffffff, 0x3add96181f16a04c, 0x89364d3d8c8f86c7, 0x4bf830471644e284])
+ self.sub([ 0x6cd97769897ed2a], [0xd4345c7bd7f207db, 0xea74ac423a200c38, 0x7da9955690407c09], true, [0xffffffffffffffff, 0x2bcba384280df824, 0x158b53bdc5dff3c7, 0x8924022008577121])
+ self.sub([0x1e0118aa9227f701], [0xae44322be045debb, 0x348a55069ed2ce5c, 0x2aa3b7ee91167a6c], true, [0xffffffffffffffff, 0x51bbcdd41fba2144, 0xcb75aaf9612d31a3, 0xf35d60bc01117c95])
+ self.sub([0xb730e2f9b9767ec5], [0x12fa8324d8b4e93a, 0xf6a7bab6c8e5fb24, 0xe5a8925613936545], true, [0xffffffffffffffff, 0xed057cdb274b16c5, 0x9584549371a04db, 0xd18850a3a5e31980])
+ self.sub([ 0x1a1299bdf8d3759], [0xb172e30446f9a907, 0xf86479ab6ad1123, 0x9b927d0f2edea02b], true, [0xffffffffffffffff, 0x4e8d1cfbb90656f8, 0xf079b8654952eedc, 0x660eac8cb0ae972e])
+ self.sub([0x517c6a52d1a0d43a], [0xe3c7e2b5c12d4215, 0x5805940eb8b96a7a, 0xba9168f13496025e], true, [0xffffffffffffffff, 0x1c381d4a3ed2bdea, 0xa7fa6bf147469585, 0x96eb01619d0ad1dc])
+ self.sub([0x45814ce871022539], [0xdeb00df0466c0c4c, 0xec2074ee07c81e6c, 0xa6259efd0aed8b18], true, [0xffffffffffffffff, 0x214ff20fb993f3b3, 0x13df8b11f837e193, 0x9f5badeb66149a21])
+ self.sub([ 0xd9de6e773db3af7], [0x2a0af0573eb5bd23, 0xf7e7beb85db8eec2, 0xc7a6b7f2855b0036], true, [0xffffffffffffffff, 0xd5f50fa8c14a42dc, 0x8184147a247113d, 0x45f72ef4ee803ac1])
+ self.sub([0x11440c20f1aa1564], [0xef57793c41bbfdf2, 0xcbf41fbfa45b3cb2, 0x87a023b738a444fa], true, [0xffffffffffffffff, 0x10a886c3be44020d, 0x340be0405ba4c34d, 0x89a3e869b905d06a])
+ self.sub([0x95196b0b5bbd26c1], [0x5ce440dd0ea6d8d0, 0x48b0d00c8f8befca, 0xe551a37c11e23beb], true, [0xffffffffffffffff, 0xa31bbf22f159272f, 0xb74f2ff370741035, 0xafc7c78f49daead6])
+ self.sub([0x2515e6f319ae4613], [0x28aeca59e64f6b25, 0x2dff14c76aba047d, 0x88b743e3fcd084a], true, [0xffffffffffffffff, 0xd75135a619b094da, 0xd200eb389545fb83, 0x1c8a72b4d9e13dc9])
+ self.sub([ 0x379f25e7cbe5c1d], [0x4b5a8675f80dfabc, 0x89b6f825555c2dce, 0xe2bc2cc26af66392], true, [0xffffffffffffffff, 0xb4a5798a07f20543, 0x764907daaaa3d231, 0x20bdc59c11c7f88b])
+ self.sub([0x242aeeeea9bf601f], [0x92818f21b2f6a69f, 0x319532ad21262289, 0x8a2f870f26a48bdb], true, [0xffffffffffffffff, 0x6d7e70de4d095960, 0xce6acd52ded9dd76, 0x99fb67df831ad444])
+ self.sub([0x7ddd20ecf4005fdc], [0x9cd3e0e066753838, 0xb98cbf7f468e10f2, 0x769006d5056f54b5], true, [0xffffffffffffffff, 0x632c1f1f998ac7c7, 0x46734080b971ef0e, 0x74d1a17ee910b27])
+ self.sub([0x88d4b00fa049c2e3], [0xfd835220e4d31aa0, 0x1dff7d7f4549b1d, 0xc687728051a5cb99], true, [0xffffffffffffffff, 0x27caddf1b2ce55f, 0xfe2008280bab64e2, 0xc24d3d8f4ea3f74a])
+ self.sub([0x482e32ba15f76ae6], [0xf3002ae1700ec547, 0x27fa7b37090901bd, 0xa4d91f7394aa2c9d], true, [0xffffffffffffffff, 0xcffd51e8ff13ab8, 0xd80584c8f6f6fe42, 0xa3551346814d3e49])
+ self.sub([0x11be3d5b7b762f95], [0x3579851a7306e168, 0xff2e9551014b77e0, 0xd988c89ff7f81600], true, [0xffffffffffffffff, 0xca867ae58cf91e97, 0xd16aaefeb4881f, 0x383574bb837e1995])
+ self.sub([0xb9627d01d86296d0], [0x61b5cc8e52745140, 0xf7b740c460e6a9bb, 0x530f73ebbb3361dd], true, [0xffffffffffffffff, 0x9e4a3371ad8baebf, 0x848bf3b9f195645, 0x665309161d2f34f3])
+ self.sub([0xd682d13842e51f37], [ 0x44f17a85662e8dc, 0x74756c48dac61c60, 0xd0cca60095766425], true, [0xffffffffffffffff, 0xfbb0e857a99d1723, 0x8b8a93b72539e3a0, 0x5b62b37ad6ebb12])
+ self.sub([0x42bf901b869e4bf4], [0x7d5997f8edd757e3, 0xede0ebe244465306, 0xb57365c767d09d8b], true, [0xffffffffffffffff, 0x82a668071228a81c, 0x121f141dbbb9acf9, 0x8d4c2a541ecdae69])
+ self.sub([0xee7fcb06cf0dba31], [0x4047666aa9872e8c, 0x7cba04b9d340c7fa, 0x19e663ee509466ec], true, [0xffffffffffffffff, 0xbfb899955678d173, 0x8345fb462cbf3806, 0xd49967187e795345])
+ }
+
+ func test_sub_1_by_4() {
+ self.sub([0x175bddc8fe693804], [0x249492501fafd8b3, 0x631c55fe1d49dac, 0x8cb6f37556ee7c64, 0x24adc9f588570ebd], true, [0xdb6b6dafe050274c, 0xf9ce3aa01e2b6253, 0x73490c8aa911839b, 0xf2ae13d376122947])
+ self.sub([0xad7a4508be78202d], [0x1857666ff1b52f5b, 0x5580071402ca990b, 0x1d52c0b6a0c6cdcc, 0x684cdbbb67cc4f86], true, [0xe7a899900e4ad0a4, 0xaa7ff8ebfd3566f4, 0xe2ad3f495f393234, 0x452d694d56abd0a7])
+ self.sub([0xa6df92546d9b476e], [0x650fdc4574ccf787, 0x3f31e5805c153994, 0x472520ba61e38679, 0xb62b4dfff57ec18f], true, [0x9af023ba8b330878, 0xc0ce1a7fa3eac66b, 0xb8dadf459e1c7986, 0xf0b44454781c85df])
+ self.sub([0x1325a57aef491e98], [0xbe4fdd1f09e6a4cc, 0x4b9b3f5c1c68e35, 0x2ad81c8a6d745f8d, 0xe0ea2eeb6258a99c], true, [0x41b022e0f6195b33, 0xfb464c0a3e3971ca, 0xd527e375928ba072, 0x323b768f8cf074fc])
+ self.sub([0xbae2eca918fcb6e7], [0x51d75c5e78a07668, 0xbcbbb46446161c14, 0xc274af75ef01bc57, 0xf569148f49f607b3], true, [0xae28a3a1875f8997, 0x43444b9bb9e9e3eb, 0x3d8b508a10fe43a8, 0xc579d819cf06af34])
+ self.sub([0xbd418713da7b873b], [0x7b6549b968878a88, 0x5e48e7ce0b2075e8, 0x9af5cfa015c82c64, 0x3c3f1cab5a6dec3b], true, [0x849ab64697787577, 0xa1b71831f4df8a17, 0x650a305fea37d39c, 0x81026a68800d9b00])
+ self.sub([0x2a82ee6bb6f21c65], [0x1963d06b82134fb3, 0xb4081ca3f1f7a704, 0xed6ce1c16423ab53, 0x8696ca3d42e009f5], true, [0xe69c2f947decb04c, 0x4bf7e35c0e0858fb, 0x12931e3e9bdc54ac, 0xa3ec242e74121270])
+ self.sub([0x8fbaa5057eb11ce4], [0x99dc7d8088659220, 0xfc8b589b80e81d9c, 0x8b644cdabf5955d5, 0x1ac37511ac13c6ca], true, [0x6623827f779a6ddf, 0x374a7647f17e263, 0x749bb32540a6aa2b, 0x74f72ff3d29d561a])
+ self.sub([0x77b5d538cdb3a1c0], [0x7ff497b74e84d0ce, 0xcc936cc7eaa7af65, 0x431e766c9009383d, 0x80c4f74648bf6780], true, [0x800b6848b17b2f31, 0x336c93381558509a, 0xbce189936ff6c7c2, 0xf6f0ddf284f43a40])
+ self.sub([0xc62ccd01e3e1d3b0], [0x483507d28b1e8146, 0x7b1faa6829e25e75, 0x5ea4a63ed9f7f4b5, 0xa0b2c471829b5024], true, [0xb7caf82d74e17eb9, 0x84e05597d61da18a, 0xa15b59c126080b4b, 0x257a08906146838c])
+ self.sub([0xb892967888be0fff], [0x8534766af441dce4, 0xe527d490ec8d1994, 0xfec647127df56f91, 0xece6bee3028e838a], true, [0x7acb89950bbe231b, 0x1ad82b6f1372e66b, 0x139b8ed820a906e, 0xcbabd795862f8c75])
+ self.sub([0x5e44511747a67965], [0x9353c9e981cfe0e9, 0xae984e51ffaf91e7, 0xb194a11e5719cc76, 0xe0af10f473ab54a5], true, [0x6cac36167e301f16, 0x5167b1ae00506e18, 0x4e6b5ee1a8e63389, 0x7d954022d3fb24c0])
+ self.sub([0x526f7f1b63d8cdec], [0x11014358c1765fdd, 0x779caccc43a1b67a, 0x85c9094c9f2bad08, 0xb2d19e50529062df], true, [0xeefebca73e89a022, 0x88635333bc5e4985, 0x7a36f6b360d452f7, 0x9f9de0cb11486b0d])
+ self.sub([0xc6bf8299e0d957c2], [ 0x6316ba0b13487fe, 0x74879a6bf5859657, 0xbb0c787984d82313, 0x1b149dba3a0d7c2e], true, [0xf9ce945f4ecb7801, 0x8b7865940a7a69a8, 0x44f387867b27dced, 0xabaae4dfa6cbdb94])
+ self.sub([0xe96697ff8268782b], [0x1378d6f06e670aa7, 0x4812166169d706bb, 0xf7f06e210b48dfdf, 0x34c68ee6b2661864], true, [0xec87290f9198f558, 0xb7ede99e9628f944, 0x80f91def4b72021, 0xb4a00918d0025fc7])
+ self.sub([0x41e393054f4031fc], [0x79957ee8964834a1, 0xe3d6616366d2371, 0xc68af9abd7117928, 0x5d9ad7ed0e98efca], true, [0x866a811769b7cb5e, 0xf1c299e9c992dc8e, 0x3975065428ee86d7, 0xe448bb1840a74232])
+ self.sub([0xdc535a21fefe8c95], [0x22822caaf1461c81, 0x4d69f853641b3e8c, 0xf990e55724fb2de2, 0xb62dcd896ebd77f1], true, [0xdd7dd3550eb9e37e, 0xb29607ac9be4c173, 0x66f1aa8db04d21e, 0x26258c98904114a4])
+ self.sub([0x33b4a424ac5bee50], [0xaf5da68e95438d66, 0x64d5e761ca27883a, 0xb08925b85868062a, 0x74d8107163a65070], true, [0x50a259716abc7299, 0x9b2a189e35d877c5, 0x4f76da47a797f9d5, 0xbedc93b348b59de0])
+ self.sub([0xb2f24d92beef3d85], [0x37e03a3a20b030d7, 0x85cdc1f59a543284, 0x445711318808d3f3, 0x425b5220b726a426], true, [0xc81fc5c5df4fcf28, 0x7a323e0a65abcd7b, 0xbba8eece77f72c0d, 0x7096fb7207c8995f])
+ self.sub([0x3f748849a9c4ba57], [0x745cdf805cbef895, 0x3a027218110a3fab, 0xff9660120d1be71b, 0x5d704503f8f9180], true, [0x8ba3207fa341076a, 0xc5fd8de7eef5c054, 0x699fedf2e418e5, 0x399d83f96a3528d7])
+ self.sub([0x66ebc488ec1f9ca1], [ 0x281e35c6952c698, 0xfb9430bd196bbee8, 0x9169f972611e4aee, 0xcc2dbd55e439440a], true, [0xfd7e1ca396ad3967, 0x46bcf42e6944117, 0x6e96068d9ee1b511, 0x9abe073307e65897])
+ self.sub([0x657bec6c681b38c7], [0x99d9bc78e77e9015, 0x9485c281658d3f82, 0xaefdc782bcdad9fd, 0xf46a6de41eb10def], true, [0x6626438718816fea, 0x6b7a3d7e9a72c07d, 0x5102387d43252602, 0x71117e88496a2ad8])
+ self.sub([0xc514976e9520de7a], [0xaed04e349de3f63f, 0x36f820aef3cbbddc, 0xb5da74f0128d3d9e, 0xae3e27b49f2377a0], true, [0x512fb1cb621c09c0, 0xc907df510c344223, 0x4a258b0fed72c262, 0x16d66fb9f5fd66da])
+ self.sub([0x4b964e2b10b8bfcb], [0xd203813f216f8b80, 0xc5edbf28dcaf888b, 0xa04f2d9ae06f82bc, 0x20ff47bc1b546a01], true, [0x2dfc7ec0de90747f, 0x3a1240d723507774, 0x5fb0d2651f907d44, 0x2a97066ef56455ca])
+ self.sub([0xd45cdaa607a7559b], [0x27cc8dc48986e386, 0xfbfa2192d5f18e6b, 0xc878090666ac3575, 0xb31b6213e1721882], true, [0xd833723b76791c79, 0x405de6d2a0e7194, 0x3787f6f99953ca8b, 0x2141789226353d19])
+ self.sub([0xad14caaef0124c8b], [0x38900d9f78d5ac8e, 0x5b1c17f5a85c813a, 0x322448f2104719f0, 0xd86f459146ac5710], true, [0xc76ff260872a5371, 0xa4e3e80a57a37ec5, 0xcddbb70defb8e60f, 0xd4a5851da965f57b])
+ self.sub([0x96622c0a70c7dfca], [0x52e719d755c15627, 0x53ead836f287a375, 0x7b20aa8679ada622, 0xb8bf64b017757a25], true, [0xad18e628aa3ea9d8, 0xac1527c90d785c8a, 0x84df5579865259dd, 0xdda2c75a595265a5])
+ self.sub([0x2495a08608774a55], [0x9ac60635f4ec9d30, 0x87dd67c6de61d3f6, 0x24c2ce4ea1809dcf, 0x8ae33425f1d2d4dd], true, [0x6539f9ca0b1362cf, 0x78229839219e2c09, 0xdb3d31b15e7f6230, 0x99b26c6016a47578])
+ self.sub([0x9f032a2ad8d01076], [0xbd7a39f28496c647, 0xe061b547fe2e01a9, 0xaa09173f76b4fdb0, 0x2a35c632299ca46f], true, [0x4285c60d7b6939b8, 0x1f9e4ab801d1fe56, 0x55f6e8c0894b0250, 0x74cd63f8af336c07])
+ self.sub([0x677d463bbcf42418], [0x26af58d27f2c6bec, 0x87e38904e4691d9, 0x28b958454c284a14, 0x467d66f7fb253d44], true, [0xd950a72d80d39413, 0xf781c76fb1b96e26, 0xd746a7bab3d7b5ec, 0x20ffdf43c1cee6d4])
+ self.sub([0xd8b12221d21cf1c3], [0x7d7c4c0ea6e14ee3, 0x4e007b687be05e7e, 0x86cfce4afc57d46f, 0xdcc1cb1967fb653a], true, [0x8283b3f1591eb11c, 0xb1ff8497841fa181, 0x793031b503a82b90, 0xfbef57086a218c89])
+ self.sub([0x153fc5ffaee821f6], [0x91cf93d73dc963a1, 0xdfc198cb86c55c74, 0x3a64812741fd923d, 0x75bde572afbc5357], true, [0x6e306c28c2369c5e, 0x203e6734793aa38b, 0xc59b7ed8be026dc2, 0x9f81e08cff2bce9f])
+ self.sub([0xa92f71584ec5c1d3], [0x7d597d97ae7466c5, 0x9cfd0b4704f4cd17, 0x197e353a90aad50f, 0x94bdac4c328da3df], true, [0x82a68268518b993a, 0x6302f4b8fb0b32e8, 0xe681cac56f552af1, 0x1471c50c1c381df4])
+ self.sub([0xb9816c0087072e89], [0x4f32abe69ced7831, 0x179fedbaf4417173, 0x562921d9ad0b3bdf, 0xf3b9c739ad7bc1bc], true, [0xb0cd5419631287ce, 0xe86012450bbe8e8c, 0xa9d6de2652f4c420, 0xc5c7a4c6d98b6ccd])
+ self.sub([0xe8eee73450014552], [0x73f52969ffc30d61, 0x8d9b2cedc6d663c5, 0x1eb027ef65dc97a3, 0x938eae6afdfe02ea], true, [0x8c0ad696003cf29e, 0x7264d31239299c3a, 0xe14fd8109a23685d, 0x556038c952034268])
+ self.sub([0x984de6b0a84caf6d], [0x26275a8640f47852, 0x1fb1b633f825060d, 0x62c8458db18b64d9, 0xb71434c83838231b], true, [0xd9d8a579bf0b87ad, 0xe04e49cc07daf9f2, 0x9d37ba724e749b26, 0xe139b1e870148c52])
+ self.sub([0xbb3155ca1251bf24], [0x5a1c29bd2acf9d90, 0x6dd1e5da46337a5b, 0x7b9910906354d4d6, 0x4ba6a40623683e35], true, [0xa5e3d642d530626f, 0x922e1a25b9cc85a4, 0x8466ef6f9cab2b2a, 0x6f8ab1c3eee980ef])
+ self.sub([0xd691c6291b4f11a4], [0xac8ae326f789e9e4, 0x5f7a535ec1ac0285, 0x8f0636be9d7590cd, 0x6f988c6a9ef44250], true, [0x53751cd90876161b, 0xa085aca13e53fd7a, 0x70f9c941628a6f33, 0x66f939be7c5acf54])
+ self.sub([0xe07451b5d77b7221], [0x82b893023d3e0953, 0xa6aacb8294d4d2ce, 0x65947be1adacb768, 0x428de5e646a10ed0], true, [0x7d476cfdc2c1f6ac, 0x5955347d6b2b2d31, 0x9a6b841e52534898, 0x9de66bcf90da6351])
+ self.sub([0xa7b46216bc6847dd], [0x42d040a1a044b709, 0xeb5e58fb76ea0fd6, 0xad2faaf5367beca, 0x9376626f539fa07d], true, [0xbd2fbf5e5fbb48f6, 0x14a1a7048915f029, 0xf52d0550ac984136, 0x143dffa768c8a760])
+ self.sub([0x17f3f4e7a9918405], [0x707aa32ca7c3778d, 0x96b56b21cc229eb2, 0x21004b71f17d1d99, 0x2cc20fd1debd0421], true, [0x8f855cd3583c8872, 0x694a94de33dd614d, 0xdeffb48e0e82e266, 0xeb31e515cad47fe4])
+ self.sub([0xbc59f3f94c929183], [0x1c5d3e2d5222f19a, 0x7bdd45913a712ea3, 0x700183a4ed842ee7, 0xf03b5f77d120785f], true, [0xe3a2c1d2addd0e65, 0x8422ba6ec58ed15c, 0x8ffe7c5b127bd118, 0xcc1e94817b721924])
+ self.sub([0xc7b4607c004c0b30], [ 0x70ce9710cd58dea, 0x5179cc48f21ce1c7, 0x17cd854745cc89d4, 0x7e8dfde57e83403b], true, [0xf8f3168ef32a7215, 0xae8633b70de31e38, 0xe8327ab8ba33762c, 0x4926629681c8caf5])
+ self.sub([0xcea9f5219b51420a], [0xd29cdad1b686faea, 0x3a4b1d481bee2992, 0x22624361a6027ff0, 0x89593d850b541b7a], true, [0x2d63252e49790515, 0xc5b4e2b7e411d66d, 0xdd9dbc9e59fd8010, 0x4550b79c8ffd2690])
+ self.sub([ 0xe68d2f30169fe7e], [0x6b4c557dd4ea301f, 0x342fdc95ff0a5e6f, 0x9424c8b632c1b581, 0xe62a05d47f5c572f], true, [0x94b3aa822b15cfe0, 0xcbd0236a00f5a190, 0x6bdb3749cd3e4a7e, 0x283ecd1e820da74f])
+ self.sub([0x30cdf933b401fe54], [0xa10f693acc7870d7, 0x8c09740e4ed91d7d, 0x7ca219875b67c565, 0x578b4ec23452a563], true, [0x5ef096c533878f28, 0x73f68bf1b126e282, 0x835de678a4983a9a, 0xd942aa717faf58f1])
+ self.sub([0x2078e49b27338936], [0x14709fdd6d1b4b39, 0x60f2a701c11bee30, 0xaffe1667f52d0b90, 0x4f05f6656ff406f5], true, [0xeb8f602292e4b4c6, 0x9f0d58fe3ee411cf, 0x5001e9980ad2f46f, 0xd172ee35b73f8241])
+ self.sub([0x2aeaccee21942650], [0x85e01180f1130feb, 0x664cdb53386c8f02, 0x9183543fd16e3b74, 0x1318a3861c0ba1dd], true, [0x7a1fee7f0eecf014, 0x99b324acc79370fd, 0x6e7cabc02e91c48c, 0x17d2296805888473])
+ self.sub([ 0xdb3cd32a90a90fe], [0x207af0529345ee25, 0x78e5df5fa5226e98, 0x575544e9bcbb7c99, 0x4f7894178c73db43], true, [0xdf850fad6cba11da, 0x871a20a05add9167, 0xa8aabb1643448366, 0xbe3b391b1c96b5bb])
+ self.sub([ 0xa6f409d58b9d7ea], [0xad9316023a4e3697, 0xa3f22d0ac5243554, 0xa51f6908a2d15184, 0x3d2523f30d550eb], true, [0x526ce9fdc5b1c968, 0x5c0dd2f53adbcaab, 0x5ae096f75d2eae7c, 0x69cee5e27e486ff])
+ }
+
+ func test_sub_2_by_1() {
+ self.sub([0x62df019537d34c43, 0xcc16c696225bb714], [0xb74ca5e6cbec398f], false, [0x62df019537d34c43, 0x14ca20af566f7d85])
+ self.sub([0x25ed739863171e9a, 0x71a026370ed0f781], [0xb78f9556217b3fe9], false, [0x25ed739863171e99, 0xba1090e0ed55b798])
+ self.sub([0xe5b1feafdb56d80c, 0x2af81363d4ae850b], [0x1c17ec832623a862], false, [0xe5b1feafdb56d80c, 0xee026e0ae8adca9])
+ self.sub([0xf73a6c6bdfa7d9db, 0xddbc9790abd92319], [0x901f725951ee4693], false, [0xf73a6c6bdfa7d9db, 0x4d9d253759eadc86])
+ self.sub([0x7269828aafefefee, 0x20a57e315c9cdb08], [0x5331ac80c46fb053], false, [0x7269828aafefefed, 0xcd73d1b0982d2ab5])
+ self.sub([0xacf090a6d7b3723e, 0x623c62a6376a6f17], [0x7f18e7fa5ed0e9df], false, [0xacf090a6d7b3723d, 0xe3237aabd8998538])
+ self.sub([0x4ed49bc369f0943e, 0x22c287169efbe858], [0x46314515f780ebc2], false, [0x4ed49bc369f0943d, 0xdc914200a77afc96])
+ self.sub([ 0xb069ca320c87024, 0x7ab7f900662a1f87], [ 0x50094b43e12b3c0], false, [ 0xb069ca320c87024, 0x75b7644c28176bc7])
+ self.sub([0xb6ac9ee295650193, 0xb24440f4043829a1], [0x9431676d838f061f], false, [0xb6ac9ee295650193, 0x1e12d98680a92382])
+ self.sub([0xd3963102c3d2c987, 0x435719a8e79d57f], [0x251ca7efd40355e9], false, [0xd3963102c3d2c986, 0xdf18c9aaba767f96])
+ self.sub([0x30998b04ab784138, 0xffa3fb6af14696be], [0x754ec248f20eead0], false, [0x30998b04ab784138, 0x8a553921ff37abee])
+ self.sub([0x7ead71cb504ac8cb, 0xee1584351831b31b], [0x23f3c85627f0ec57], false, [0x7ead71cb504ac8cb, 0xca21bbdef040c6c4])
+ self.sub([0x2779e590964a7f9d, 0x286c419939b47bc0], [0xdb26d433c29dcaa5], false, [0x2779e590964a7f9c, 0x4d456d657716b11b])
+ self.sub([0xc571ded5496d2d1c, 0xdb4f8d73fddf17c6], [0x8540c7509cc042c4], false, [0xc571ded5496d2d1c, 0x560ec623611ed502])
+ self.sub([0x3be57166c00f2a75, 0x869acde3d42ccf21], [0xb9ce0b4299f2fbec], false, [0x3be57166c00f2a74, 0xccccc2a13a39d335])
+ self.sub([0x58d4996c15285887, 0xff303e9501ea43d4], [0xd19bb5dc0ae0213a], false, [0x58d4996c15285887, 0x2d9488b8f70a229a])
+ self.sub([0x32ed8ede19056230, 0x5cbdbc2507032e28], [0x6ecc231a84ad2f1b], false, [0x32ed8ede1905622f, 0xedf1990a8255ff0d])
+ self.sub([0xf55f1fc35b402570, 0x30b65f379c22eb00], [0xdd54c578565cd7e8], false, [0xf55f1fc35b40256f, 0x536199bf45c61318])
+ self.sub([0xf92e08a264fbbd46, 0x8089b4b64a3ecf7b], [0x630fbed3e51c78e0], false, [0xf92e08a264fbbd46, 0x1d79f5e26522569b])
+ self.sub([0xe87914519922c2fb, 0xa2ee833b1b78a617], [0x2684509335f1c264], false, [0xe87914519922c2fb, 0x7c6a32a7e586e3b3])
+ self.sub([0xd61c819e851c4e0d, 0xeecf2a4dd83f49f5], [0x99ea7c55af0faa0d], false, [0xd61c819e851c4e0d, 0x54e4adf8292f9fe8])
+ self.sub([0x893ce13b76cb0a85, 0x7a05c60a93a8b6de], [0x2441806292993f25], false, [0x893ce13b76cb0a85, 0x55c445a8010f77b9])
+ self.sub([0xf7e5dfd2f271b7a9, 0xb795d4dcbb8bef8c], [0x87f00d643175b587], false, [0xf7e5dfd2f271b7a9, 0x2fa5c7788a163a05])
+ self.sub([0xb6f48d7e65eb4666, 0xda330c008388b73b], [0x17b9a3c2bd3f7d01], false, [0xb6f48d7e65eb4666, 0xc279683dc6493a3a])
+ self.sub([ 0xc3738f4154239ce, 0xd30f2b7f0bce50], [0x66ca74b19046d9ec], false, [ 0xc3738f4154239cd, 0x9a089a79eec4f464])
+ self.sub([0x10870b1a31fc92e9, 0xcebafe14e7c13ecf], [0x9243ee6472337926], false, [0x10870b1a31fc92e9, 0x3c770fb0758dc5a9])
+ self.sub([0xdb2310263011f492, 0xa1cfc877c26cf7b], [0xf11cf337421a3695], false, [0xdb2310263011f491, 0x190009503a0c98e6])
+ self.sub([0x4c726ffe069871f0, 0x2396b1862780df39], [0x340540c5185fb7b9], false, [0x4c726ffe069871ef, 0xef9170c10f212780])
+ self.sub([ 0xbfd8ee6f2c33762, 0x7a6eb297ddeae81d], [0xb707701a1a9980f4], false, [ 0xbfd8ee6f2c33761, 0xc367427dc3516729])
+ self.sub([0x206a63a50aa7cb3a, 0x8d5da0b5a109f9cc], [0x1c7b96d0dcffbee9], false, [0x206a63a50aa7cb3a, 0x70e209e4c40a3ae3])
+ self.sub([0xa6bbf7c13600d49c, 0x2015995c7d7f63ac], [0x2284e5de0833c420], false, [0xa6bbf7c13600d49b, 0xfd90b37e754b9f8c])
+ self.sub([0xa232d78c07958e6a, 0x90cbab92f0c0a267], [0x82bbc7a3b8a14329], false, [0xa232d78c07958e6a, 0xe0fe3ef381f5f3e])
+ self.sub([ 0x7ac772302dae41f, 0x410e823b73e49259], [0xdc3124c4f98dd58c], false, [ 0x7ac772302dae41e, 0x64dd5d767a56bccd])
+ self.sub([0x99a655f9b6b7ceb0, 0xcc8188c12b20c767], [0xaee83bd42ec9cd63], false, [0x99a655f9b6b7ceb0, 0x1d994cecfc56fa04])
+ self.sub([ 0xf3443599dc3ad60, 0xeec8d55ee3cbd869], [ 0x274322119c1ab9d], false, [ 0xf3443599dc3ad60, 0xec54a33dca0a2ccc])
+ self.sub([0xefee5ea0a37e41d7, 0x3da91cba41f81785], [ 0x82064f9adcd8952], false, [0xefee5ea0a37e41d7, 0x3588b7c0942a8e33])
+ self.sub([0x42c9c01bd23d627a, 0xe8cd93b4065cd0c4], [0x1ba800c908114a25], false, [0x42c9c01bd23d627a, 0xcd2592eafe4b869f])
+ self.sub([0x46befe40ce9df419, 0xe5d86133d10a11d6], [0x7a852be789b2a369], false, [0x46befe40ce9df419, 0x6b53354c47576e6d])
+ self.sub([0x1ff7c57d09736475, 0x721869d94a03333e], [0x5829d0e0106bc411], false, [0x1ff7c57d09736475, 0x19ee98f939976f2d])
+ self.sub([0xdc284226ce19a54d, 0x1140f334d1d15d8a], [0xa0c6ca2de5ab8630], false, [0xdc284226ce19a54c, 0x707a2906ec25d75a])
+ self.sub([0x5fcccbe91c373182, 0x66bc4bcc81359e16], [0x449b2d2a083c9059], false, [0x5fcccbe91c373182, 0x22211ea278f90dbd])
+ self.sub([0x79501039034399b9, 0x269aeecaf7a984ce], [0x8d267861e6f8f062], false, [0x79501039034399b8, 0x9974766910b0946c])
+ self.sub([0xc774edfeabbc17b4, 0x6819ed3ff71b48a4], [0xd432434bbfb019cb], false, [0xc774edfeabbc17b3, 0x93e7a9f4376b2ed9])
+ self.sub([0xab70896e35bdf0a2, 0x3d7c804efee4dc4f], [0x312b266321fe0d63], false, [0xab70896e35bdf0a2, 0xc5159ebdce6ceec])
+ self.sub([0xce86293f8647cd9b, 0x2abf0fc415cfda3], [0x6b05f1e2890f8e2a], false, [0xce86293f8647cd9a, 0x97a5ff19b84d6f79])
+ self.sub([0x320bdfb69fe07f1f, 0x7d0b697f96294c95], [0x2a50d11adee70d54], false, [0x320bdfb69fe07f1f, 0x52ba9864b7423f41])
+ self.sub([0x15ff6fb1a3d475c1, 0x23e7a6c43a218c74], [0x4dd8cf4b9ea4ca37], false, [0x15ff6fb1a3d475c0, 0xd60ed7789b7cc23d])
+ self.sub([0x8d4c7f2dd1097c5f, 0x7fcaf178c10a81e5], [0xb1dcd712537438c9], false, [0x8d4c7f2dd1097c5e, 0xcdee1a666d96491c])
+ self.sub([0x642046eac833835f, 0x7629217561ad3e23], [0xaa569ce1d92795eb], false, [0x642046eac833835e, 0xcbd284938885a838])
+ self.sub([0xdb10804a52fe3730, 0x1d24370f13254519], [0xfe066504d3f9bb74], false, [0xdb10804a52fe372f, 0x1f1dd20a3f2b89a5])
+ }
+
+ func test_sub_2_by_2() {
+ self.sub([0x30d06b7228916793, 0xf6f0cf9edf5f1f7d], [0xc67e92b263ea898a, 0x81e1e931206c6923], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x6a51d8bfc4a6de09, 0x750ee66dbef2b65a])
+ self.sub([0xc18864f57ae7d35f, 0x9bf26292c1a4ecec], [0xa329985c3510c3ae, 0x193e17951ea3362d], false, [0x1e5ecc9945d70fb1, 0x82b44afda301b6bf])
+ self.sub([0xb498f9b6c63f6f54, 0xc0706abd03763323], [0x9e6f744b84bb77a0, 0xf6dc2d22986369ba], false, [0x1629856b4183f7b3, 0xc9943d9a6b12c969])
+ self.sub([0xac80d047fc2ad1ee, 0x9fc4861e39115c78], [0x51e40a59c4afe64a, 0x65d55e04feafdfbe], false, [0x5a9cc5ee377aeba4, 0x39ef28193a617cba])
+ self.sub([0xd79fa9466093bffd, 0xfe60b60be7b588c], [0x56a4573fcab7c3d5, 0x48006f3539b3b8b1], false, [0x80fb520695dbfc27, 0xc7e59c2b84c79fdb])
+ self.sub([0x227e67f0e7ade42a, 0x480bfcb712e207bd], [0x9dfd7c6f3b1ccd8c, 0x18427836f5fa2a2d], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x8480eb81ac91169e, 0x2fc984801ce7dd90])
+ self.sub([0xa3c5354bd2960bca, 0x8a30855c1ca1041b], [0xbbfd1fb0085acfa1, 0xf5c4786e6271f414], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xe7c8159bca3b3c28, 0x946c0cedba2f1007])
+ self.sub([0xe90791f933c7e537, 0xf103463139562bcf], [0xcd430b8514c69f6d, 0xd9cfce010e7246fc], false, [0x1bc486741f0145ca, 0x173378302ae3e4d3])
+ self.sub([0xc5f79852757ffd99, 0x35befbb235238993], [0xb5f0f8d4705d8e56, 0xe4d085c9fb3b7c15], false, [0x10069f7e05226f42, 0x50ee75e839e80d7e])
+ self.sub([0xdf61df717196c399, 0x194c89c0b77b2a9d], [0x304573c45acd705e, 0x84e456c172c08edf], false, [0xaf1c6bad16c9533a, 0x946832ff44ba9bbe])
+ self.sub([0xb0db9f835eb9fcd0, 0xecd43e74e25468de], [0xc5714c93e455c326, 0x86a0e481caf15c5], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xeb6a52ef7a6439aa, 0xe46a302cc5a55319])
+ self.sub([0xd917e352e2a0100b, 0x990c5ce3e22b768d], [0x9d506bec4c9a2dd1, 0xc46be4ed853da2b2], false, [0x3bc777669605e239, 0xd4a077f65cedd3db])
+ self.sub([0x1ce20ef02ed070c7, 0x15fd4f2a74d89cdd], [0x853a09672bcf7cff, 0x82cbd027e687ad74], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x97a805890300f3c7, 0x93317f028e50ef69])
+ self.sub([0x4f07991f3763d3ac, 0xd1fec75aa746f30f], [0xd89feacd638d43e8, 0xb971ffed3c25d347], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x7667ae51d3d68fc4, 0x188cc76d6b211fc8])
+ self.sub([0x86fe834940f166aa, 0x139ee3a441be0f4], [0xe5ca3c0efc9bb8ad, 0xb7d12879922e5f3d], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xa134473a4455adfc, 0x4968c5c0b1ed81b7])
+ self.sub([0x445304766384129f, 0xc2ffe597778fec37], [0x9c8fa003cbf5ae5f, 0x92953e249a36cbbd], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xa7c36472978e6440, 0x306aa772dd59207a])
+ self.sub([0x44026230ee637026, 0xc0c2b7cc762b4124], [0xfe7181c503ec1c6d, 0x6f7ddb7ea877498e], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x4590e06bea7753b9, 0x5144dc4dcdb3f796])
+ self.sub([0x7a7ce4059baa2c2a, 0xe4fb89083ab88c5], [0xe0bcb11b36d73e46, 0x81435a7ae47be3ff], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x99c032ea64d2ede3, 0x8d0c5e159f2fa4c6])
+ self.sub([0x15d840aefde9db19, 0x17f69a0bcbcbd4b7], [0x40b4f2decb2afee0, 0x3fbaa3a601ee2f5c], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xd5234dd032bedc38, 0xd83bf665c9dda55b])
+ self.sub([0xcecd0f308aa3cde1, 0xd1523a8acdfc5329], [0x6a337c09751f5ecc, 0xcb575cf3b09f8966], false, [0x6499932715846f15, 0x5fadd971d5cc9c3])
+ self.sub([0x6bc767ed201c3d9d, 0xec225ebed353f0a8], [0x3435b2deb4849aea, 0x1ccaa1d01f46cefb], false, [0x3791b50e6b97a2b3, 0xcf57bceeb40d21ad])
+ self.sub([0xb9fbd22adb17a5d7, 0x2eeaceae3cd781b2], [ 0xaeb2dbf79f9c14c, 0x3ee318473d8fe7cd], false, [0xaf10a46b611de48a, 0xf007b666ff4799e5])
+ self.sub([0x89826a2c08f5fd74, 0x47eb2b019d7a4918], [0x3b091b724a248620, 0xd88f6412fd37311b], false, [0x4e794eb9bed17753, 0x6f5bc6eea04317fd])
+ self.sub([0xb377bfd629d8f3b2, 0x74a8791393c36ac0], [0x54ca0bee2b735ed3, 0x663bb2fe26602a26], false, [0x5eadb3e7fe6594df, 0xe6cc6156d63409a])
+ self.sub([0xcd4d25105ef297a3, 0x1c53721fb818a6a9], [0xc8171d19dbbc91b5, 0x5d8d5f169bec00a2], false, [ 0x53607f6833605ed, 0xbec613091c2ca607])
+ self.sub([0x592f7cdd20702076, 0xa75ca7499f41e4ca], [0x6a899bcfee058669, 0x34e79b6703ccc92f], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xeea5e10d326a9a0d, 0x72750be29b751b9b])
+ self.sub([0xcd202b080401c5d9, 0xeb96756f43fdc0ae], [0x30afc714fc1bdf45, 0xd085f7a2405cb819], false, [0x9c7063f307e5e694, 0x1b107dcd03a10895])
+ self.sub([0xb2b61e5cd753f8a3, 0x40cf27d2efc338a4], [0x90a25b1ae6c1898d, 0x101c271bcde9ef0b], false, [0x2213c341f0926f16, 0x30b300b721d94999])
+ self.sub([0x128e922fdd72cddd, 0xe42eee1457c1b99f], [0x3c37d1da1af9e198, 0x36d510c7fb53a807], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xd656c055c278ec45, 0xad59dd4c5c6e1198])
+ self.sub([0x4abcc37d1ec5454d, 0x5f670e4762d19ddb], [0xad4f33e87ee2b11b, 0x6178847113f7a1bf], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x9d6d8f949fe29431, 0xfdee89d64ed9fc1c])
+ self.sub([0xf3c6635685bbff35, 0x2541e9b0795e317a], [0xfbcc52b0f25a3610, 0x54d27920767acfe3], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xf7fa10a59361c924, 0xd06f709002e36197])
+ self.sub([0xaaea57488b99cd41, 0x650893b640c3f5f], [0xadc2c33175ab0a35, 0xfd39802306a3f685], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xfd27941715eec30b, 0x91709185d6848da])
+ self.sub([0x1a2704c5f1c804d3, 0x36a2a497512cec], [0xba488b808b0f2a4f, 0x5a033945efd35bdf], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x5fde794566b8da83, 0xa633695ea77dd10d])
+ self.sub([0x6ffec9066ee8d20f, 0x8a3b9359fe29d087], [0xc96557e42abfcfb7, 0xaefc191a9843d897], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xa699712244290257, 0xdb3f7a3f65e5f7f0])
+ self.sub([0x36b9f00ed28d2f35, 0xbc742facb16aa2d4], [0xc6c77b75b46796a0, 0xf56cfcb9f15a6efc], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x6ff274991e259894, 0xc70732f2c01033d8])
+ self.sub([0xc54b16185b3a34d0, 0x17e4025a64072283], [0xe93c49bbafa8723b, 0xc311459cc2afa270], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xdc0ecc5cab91c294, 0x54d2bcbda1578013])
+ self.sub([0x47c6a15d934ed812, 0xd2402373cf231f85], [0xad5ecc51cff2bb1e, 0xd4f98365902c7c01], true, [0xffffffffffffffff, 0xffffffffffffffff, 0x9a67d50bc35c1cf3, 0xfd46a00e3ef6a384])
+ self.sub([0x77cdfc0b61113849, 0x8c119f74446e5c45], [0xb052929ec6d45ff8, 0x50d99ceec2d94179], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xc77b696c9a3cd851, 0x3b38028581951acc])
+ self.sub([0xf05eb10b29cf24c0, 0x9b0466dd30b6e907], [0x17a1199c6120e0cf, 0xeb42f5701ec8f06a], false, [0xd8bd976ec8ae43f0, 0xafc1716d11edf89d])
+ self.sub([0xab0054a1b2b12071, 0x3cbcc263ae02c54f], [0xc0bf67bf3cbafd67, 0xbe31ff94b960574b], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xea40ece275f62309, 0x7e8ac2cef4a26e04])
+ self.sub([0x2bf3e77074c3ae31, 0xaccd398a89a83aac], [0x879a8a8fc157ca1b, 0xee7d75e1089eaaeb], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xa4595ce0b36be415, 0xbe4fc3a981098fc1])
+ self.sub([0xf6699eb1c44ea453, 0x7226b691061c547a], [0xd6f136dcc2d68a0c, 0x8da0d0e7ca306c98], false, [0x1f7867d501781a46, 0xe485e5a93bebe7e2])
+ self.sub([0xf77f8be7af5495d7, 0x5c152214f9885138], [0xf546ef106aaa7f79, 0x3adeceb1d8f10055], false, [ 0x2389cd744aa165e, 0x21365363209750e3])
+ self.sub([0x605cd9cbfa0047d2, 0x8383a9d7efda5bb9], [0x58422e35eaa49673, 0xc8be2eff3613526e], false, [ 0x81aab960f5bb15e, 0xbac57ad8b9c7094b])
+ self.sub([0xd66ad77e20c0453a, 0x36655c0756885edf], [0x4bfc1da2323ae88d, 0x50db8ce77f915b9e], false, [0x8a6eb9dbee855cac, 0xe589cf1fd6f70341])
+ self.sub([0xb91a6acd53ad39df, 0x2226206703cfd25a], [0x33342e04b544ff38, 0xcd3a6b1930c138df], false, [0x85e63cc89e683aa6, 0x54ebb54dd30e997b])
+ self.sub([0xfad0043a33ed41b6, 0x97c96d0ed0f0f678], [0x951f7601fad4ca13, 0xc457a1e7ec97519f], false, [0x65b08e38391877a2, 0xd371cb26e459a4d9])
+ self.sub([0x218ad45b02fcf2d7, 0x1473adcc1f480be8], [0x2b4ce861ec70e311, 0x2a1c3ac17f87a92b], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xf63debf9168c0fc5, 0xea57730a9fc062bd])
+ self.sub([0x3ddc6f83b522b6a8, 0x90a23451b48c96ca], [0x689c392fb4b12b8a, 0x412a47c30e82ca55], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xd540365400718b1e, 0x4f77ec8ea609cc75])
+ self.sub([0x192d443f10bd9cd7, 0xcd75513c1986d6d5], [0x61258265d80ea023, 0x40fccf1e14948a07], true, [0xffffffffffffffff, 0xffffffffffffffff, 0xb807c1d938aefcb4, 0x8c78821e04f24cce])
+ }
+
+ func test_sub_2_by_3() {
+ self.sub([0x5b47873ab28c7047, 0x88cd0525fb80f4ef], [0x22dfa71e88f15b93, 0x6849af748767f83a, 0x7003180f725654fb], true, [0xffffffffffffffff, 0xdd2058e1770ea46c, 0xf2fdd7c62b24780d, 0x18c9ed16892a9ff4])
+ self.sub([0xd82d8a482164cf12, 0xfc985501c2a38667], [0xc0a651cf76bcdb7d, 0x96b4602177691300, 0xe584a5ddbdce4c7], true, [0xffffffffffffffff, 0x3f59ae3089432483, 0x41792a26a9fbbc12, 0xee400aa3e6c6a1a0])
+ self.sub([ 0x815d5f5bf82ad31, 0x1b01ad7f0ab93470], [0x2b9d5c69fc102558, 0x5252f2cdcc6b4c7a, 0x203fed4bdf78743b], true, [0xffffffffffffffff, 0xd462a39603efdaa7, 0xb5c2e327f31760b6, 0xfac1c0332b40c035])
+ self.sub([0x5f5be1532e9f049a, 0x3f5ab620f6ac240f], [0x23693c6bd9c308f1, 0x8fc963b5308fd03b, 0x1615154f8310496a], true, [0xffffffffffffffff, 0xdc96c394263cf70e, 0xcf927d9dfe0f345f, 0x2945a0d1739bdaa5])
+ self.sub([0xdc160b0166d6f6fa, 0x457ab994a28a9798], [0xbe41821a0959fb99, 0xb8d124e4a1695fef, 0xac8b349dffcdf48], true, [0xffffffffffffffff, 0x41be7de5f6a60467, 0x2344e61cc56d970b, 0x3ab2064ac28db850])
+ self.sub([ 0x95328c1a860e7a2, 0xb344e2c1c14d550f], [0x75d85c579665822e, 0xa81210aa1618dffd, 0x35de6f4bd361b454], true, [0xffffffffffffffff, 0x8a27a3a8699a7dd1, 0x61411817924807a5, 0x7d667375edeba0bb])
+ self.sub([0xdfe5aa70b1d884f4, 0x4cbd483bc534ec28], [0x81931c46f5832ea1, 0x537e219bb4d90e33, 0x1242f3e88a48f416], true, [0xffffffffffffffff, 0x7e6ce3b90a7cd15f, 0x8c6788d4fcff76c1, 0x3a7a54533aebf812])
+ self.sub([0xeb3a1e3bfec82e86, 0x975a7097b50b3300], [0xdd2b9477740dce3a, 0x2df3efe4e3fb998c, 0x3ee9908bdf0a7190], true, [0xffffffffffffffff, 0x22d46b888bf231c6, 0xbd462e571acc94fa, 0x5870e00bd600c170])
+ self.sub([0x19370dc28fb22027, 0x93303d1b1463c07c], [0x3468c7843a8575e7, 0xb0d58e2443a5985a, 0xd06f2da4fd55b330], true, [0xffffffffffffffff, 0xcb97387bc57a8a18, 0x68617f9e4c0c87cc, 0xc2c10f76170e0d4c])
+ self.sub([ 0x14c17a916f4de2a, 0x600eb02ebca4b40c], [0x1354afca365bd475, 0x44ad4b7a72562d1c, 0xfa4ae209eb0ef38e], true, [0xffffffffffffffff, 0xecab5035c9a42b8a, 0xbc9ecc2ea49eb10d, 0x65c3ce24d195c07e])
+ self.sub([0x6a7d7693f6292c7a, 0xf73bc34f3cd554ff], [0x42ace8ed3aa64a57, 0xfda17ce7176e8a16, 0x711979c013e21f89], true, [0xffffffffffffffff, 0xbd531712c559b5a8, 0x6cdbf9acdebaa264, 0x8622498f28f33576])
+ self.sub([0x6c8f0f0f2fb308fb, 0xf1a31ab138e5ef1e], [0xc1f32c980e0be0d4, 0xb20271a3a27ff2ed, 0xf7ba36ba2135f476], true, [0xffffffffffffffff, 0x3e0cd367f1f41f2b, 0xba8c9d6b8d33160d, 0xf9e8e3f717affaa8])
+ self.sub([0x4e0c9757a0221d99, 0x3a6a8885f3b87b4], [0x715f63d54faf3732, 0x1a8cf908498227a4, 0x6c8a00e67b32f075], true, [0xffffffffffffffff, 0x8ea09c2ab050c8ce, 0x337f9e4f569ff5f4, 0x971ca7a1e408973f])
+ self.sub([0x515c3d0c49d93f93, 0x7501801dff035c08], [0x10b09665fab208df, 0xb02b3c4e8da956c1, 0x89a6b635c7b0bdfe], true, [0xffffffffffffffff, 0xef4f699a054df720, 0xa13100bdbc2fe8d1, 0xeb5ac9e837529e0a])
+ self.sub([0x8c6e32aca068235b, 0x639b8bda4cb86cd5], [0xc8aa51b15f6977bf, 0x5b9d6cad13539a9e, 0x5036c37a1a06b378], true, [0xffffffffffffffff, 0x3755ae4ea0968841, 0x30d0c5ff8d1488bd, 0x1364c86032b1b95d])
+ self.sub([0x7a846edd3110e403, 0xe1e5c221e0a5ed1b], [0xad369b0c5509323a, 0x561eed1bbf1ff127, 0xb1a42651eabd9c37], true, [0xffffffffffffffff, 0x52c964f3aaf6cdc6, 0x246581c171f0f2dc, 0x30419bcff5e850e4])
+ self.sub([0x4ac8eb50eab108fa, 0xd4b462c8e247c2ac], [0xd39dc44510697a4e, 0x57a4a709bdbf8232, 0xf7990c3d5a795245], true, [0xffffffffffffffff, 0x2c623bbaef9685b1, 0xf32444472cf186c7, 0xdd1b568b87ce7067])
+ self.sub([0xb5e0bfcbc967304d, 0x2e7550c5f36a3e9e], [0x1144cf9e4740a253, 0xa8188003716f20db, 0x1b49d7c7975c48a3], true, [0xffffffffffffffff, 0xeebb3061b8bf5dad, 0xdc83fc857f80f72, 0x132b78fe5c0df5fb])
+ self.sub([0xd322b2eab4a1aae8, 0x77463f9ff48caee0], [0x25e4492984cf1666, 0xdc747fb0a2dc49bd, 0x1e07e9242ac0c127], true, [0xffffffffffffffff, 0xda1bb6d67b30e999, 0xf6ae333a11c5612b, 0x593e567bc9cbedb9])
+ self.sub([0x76071b87ccf90c0c, 0x9568994049fda856], [0x65b7286511347c4e, 0xb9b6a59334084a59, 0x2a8ea19a61b5b55c], true, [0xffffffffffffffff, 0x9a48d79aeecb83b1, 0xbc5075f498f0c1b3, 0x6ad9f7a5e847f2fa])
+ self.sub([0xa2fa9405c595dff5, 0x27f564525cd8ff17], [0x16834ee481c6e35b, 0x577874e7c09f5788, 0x3d6d79407be2d58], true, [0xffffffffffffffff, 0xe97cb11b7e391ca5, 0x4b821f1e04f6886d, 0x241e8cbe551ad1bf])
+ self.sub([0x6da1675d1a9ed57f, 0x2ec5e271bfef5e70], [0x5745eda825fbfbf4, 0xc2f3dce2a32aac4e, 0x5a8dbc33caf155bc], true, [0xffffffffffffffff, 0xa8ba1257da04040b, 0xaaad8a7a77742930, 0xd438263df4fe08b4])
+ self.sub([ 0xcce66669e26904, 0x88c5df9225e437c9], [0xe458cb980e4592c8, 0x6864f99e62edc4cd, 0x1f7d10a5758c4364], true, [0xffffffffffffffff, 0x1ba73467f1ba6d37, 0x9867ecc806f4a437, 0x6948ceecb057f465])
+ self.sub([0xceea1a06d92e1e8a, 0x756bb29c7c9b8cdb], [0xa29c88d7587c559a, 0xba58c365eafb5db6, 0xf7855d0d283dac3b], true, [0xffffffffffffffff, 0x5d637728a783aa66, 0x149156a0ee32c0d3, 0x7de6558f545de0a0])
+ self.sub([0x1033802f72cb20ff, 0x849f309bceca42a1], [0x6976a0910995508a, 0x453b92e7309ae057, 0x887ad210ee891578], true, [0xffffffffffffffff, 0x96895f6ef66aaf75, 0xcaf7ed48423040a7, 0xfc245e8ae0412d29])
+ self.sub([0xf434cb120759b780, 0xf5221d5ea4042d3d], [0xe809f7cc3bec1712, 0x14d9ba4fb014d42c, 0x1aa4758d1a2d745d], true, [0xffffffffffffffff, 0x17f60833c413e8ee, 0xdf5b10c25744e354, 0xda7da7d189d6b8e0])
+ self.sub([0x661ac20a83628e84, 0xc06aba66fce74d8e], [0xbf36d17737abdb96, 0x85148a63e934fd26, 0x8b55d5944a093f7e], true, [0xffffffffffffffff, 0x40c92e88c8542469, 0xe10637a69a2d915e, 0x3514e4d2b2de0e10])
+ self.sub([0x8c7e13a7c663b37e, 0x1691698c54602f8c], [0x174236182e06ee39, 0x1b65519a3a620ef7, 0x1c4737f80d39012e], true, [0xffffffffffffffff, 0xe8bdc9e7d1f911c7, 0x7118c20d8c01a486, 0xfa4a319447272e5e])
+ self.sub([0x630bfc717a2b4c8a, 0xc94e9ddae8e56d2c], [0x54c3a9ac31cc4374, 0x9b83a9efbf5bcae6, 0x76303bc4c1cdf3d], true, [0xffffffffffffffff, 0xab3c5653ce33bc8b, 0xc7885281bacf81a4, 0xc1eb9a1e9cc88def])
+ self.sub([0xff07f2d7c824b371, 0xdfa92efbac30edb0], [0x24cd6039bc1cd752, 0xd34d435af42ae8a5, 0xa88da031437a8312], true, [0xffffffffffffffff, 0xdb329fc643e328ae, 0x2bbaaf7cd3f9cacc, 0x371b8eca68b66a9e])
+ self.sub([0x9e8941dec764dadb, 0xbd673321e0f35556], [0xd7895949bcd80c72, 0x754da9363a93efb0, 0xb33658133633e896], true, [0xffffffffffffffff, 0x2876a6b64327f38e, 0x293b98a88cd0eb2b, 0xa30db0eaabf6cc0])
+ self.sub([0x1422f4a0d4105cb2, 0xa874701c8ea4499e], [0x1ed879e2a0a4bbea, 0xe13cfa84b829462f, 0xe82836350ec12f72], true, [0xffffffffffffffff, 0xe127861d5f5b4415, 0x32e5fa1c1be71682, 0xc04c39e77fe31a2c])
+ self.sub([0xc81c50cc488a97d1, 0xf51b26140343f9de], [0x2f7f0023503f6b46, 0xf5e4b35561195b77, 0x282a89f7ad9c797], true, [0xffffffffffffffff, 0xd080ffdcafc094b9, 0xd2379d76e7713c5a, 0xf2987d74886a3247])
+ self.sub([0xccc55ccd7b285618, 0x4d88433d743a3b34], [0x9752be9bff1d7562, 0xa13b2a9db0f92493, 0x38c7eda04f2dba9d], true, [0xffffffffffffffff, 0x68ad416400e28a9e, 0x2b8a322fca2f3185, 0x14c0559d250c8097])
+ self.sub([0x15e985f8b3390f35, 0x1d697141a949aff1], [0x373de79545e4b279, 0x1dde6ba0b81ad72e, 0x7db44a53830bc6ce], true, [0xffffffffffffffff, 0xc8c2186aba1b4d86, 0xf80b1a57fb1e3806, 0x9fb526ee263de923])
+ self.sub([0xf270f97b1466dc35, 0x3743c3f0aa00ef7a], [0x8159a6b7f1207753, 0x5e05989ef15bcffc, 0x3ef06d2517de10ea], true, [0xffffffffffffffff, 0x7ea659480edf88ad, 0x946b60dc230b0c38, 0xf85356cb9222de90])
+ self.sub([0x971dd5fe075a20b9, 0xd9b74959ed883cec], [0x483ce77021abaac3, 0x9ef0906d0e3e9db3, 0xd7c94f0ef0cbe905], true, [0xffffffffffffffff, 0xb7c3188fde54553c, 0xf82d4590f91b8306, 0x1edfa4afcbc53e7])
+ self.sub([0x413feda71a57e413, 0xee3f2769321cba57], [0xce5c88abd4c23404, 0x1508c288ca9e1921, 0x1b08745f3bf984d2], true, [0xffffffffffffffff, 0x31a377542b3dcbfc, 0x2c372b1e4fb9caf2, 0xd336b309f6233585])
+ self.sub([0xa57fb438ad71f10d, 0x2adeb6f48e4a9315], [ 0xc0da1da41235878, 0x1b2b0e4a057ca77b, 0xf3f798d7d8cdf1da], true, [0xffffffffffffffff, 0xf3f25e25bedca788, 0x8a54a5eea7f54991, 0x36e71e1cb57ca13b])
+ self.sub([0x118551096125e5f5, 0xccd6664797a3991c], [0xe026e7ae6209c517, 0xa2e8ca380487661e, 0xe41172be7f7d8a7d], true, [0xffffffffffffffff, 0x1fd918519df63ae8, 0x6e9c86d15c9e7fd6, 0xe8c4f38918260e9f])
+ self.sub([0xef6c3a6f04e83b71, 0x25c47e3bc5a1c70a], [0x84afe51c5decaf60, 0x48afdbbde3595927, 0x7f7691f7d7b581bb], true, [0xffffffffffffffff, 0x7b501ae3a21350a0, 0xa6bc5eb1218ee249, 0xa64dec43edec454f])
+ self.sub([0x1cf983170818f1ac, 0xc04c95e6207e7d20], [0xef4a1087d28159be, 0x377a86520dbaf492, 0x540d5feb1cead346], true, [0xffffffffffffffff, 0x10b5ef782d7ea641, 0xe57efcc4fa5dfd1a, 0x6c3f35fb0393a9da])
+ self.sub([0xa452dff7d679a810, 0x1e06454f9b58f704], [0x8a8ca2401d0724a9, 0xd3b573fd9c08185, 0x42a785676d31cd32], true, [0xffffffffffffffff, 0x75735dbfe2f8db57, 0x971788b7fcb9268a, 0xdb5ebfe82e2729d2])
+ self.sub([0xef9e0f4d8ceb81de, 0x8ff4ec3918e3f360], [0x4fb24991377b438f, 0xef069f4581552033, 0x68d890c1c4edc9c], true, [0xffffffffffffffff, 0xb04db66ec884bc71, 0x9770080b9661ab, 0x8967632cfc9516c4])
+ self.sub([0x1c0143ebb37f335c, 0x1f33556812472791], [0xd4fed65b6662c2c6, 0xb52312038f90f89, 0x77bb0eac04a49753], true, [0xffffffffffffffff, 0x2b0129a4999d3d3a, 0x10af12cb7a8623d2, 0xa77846bc0da2903e])
+ self.sub([0xb68644f7ef5d0ccf, 0x4874648c24ac5991], [0x15051ae0d8e7aa56, 0xdf5122b2ef82a502, 0xdc07065d3f9a0036], true, [0xffffffffffffffff, 0xeafae51f271855a9, 0xd7352244ffda67cc, 0x6c6d5e2ee512595b])
+ self.sub([0x1f99dda7593af0c1, 0xf0d13594eed44df7], [0xc74a3bd630f35c23, 0xecb2f9dbb8950bc5, 0x36f28a91b772ba92], true, [0xffffffffffffffff, 0x38b5c429cf0ca3dc, 0x32e6e3cba0a5e4fc, 0xb9deab0337619365])
+ self.sub([0x3d9e1d9a326a045c, 0x5790383de1de5968], [0x9025ded51b56cc73, 0xb7671df8d7cd812, 0x6b3341d640a17ac1], true, [0xffffffffffffffff, 0x6fda212ae4a9338d, 0x3227abbaa4ed2c49, 0xec5cf667a13cdea7])
+ self.sub([0xcb1353cdcdc18e42, 0x7ff7d6e71dc11f12], [0x977faef178dc4446, 0xfd3cb74ee38257d8, 0xe6bfe123f7d91474], true, [0xffffffffffffffff, 0x6880510e8723bbb9, 0xcdd69c7eea3f3669, 0x9937f5c325e80a9e])
+ self.sub([0x5eeae15dc8e55417, 0x7c9b760d40702d44], [0x7afebc8ca7ee1551, 0x5a485c443c0c90d3, 0x2020e186d96634bf], true, [0xffffffffffffffff, 0x850143735811eaaf, 0x4a285198cd8c344, 0x5c7a94866709f885])
+ }
+
+ func test_sub_2_by_4() {
+ self.sub([0x807c192ad2a5d19e, 0xdd5c01d561bf02da], [0x4dc07703db1e0eeb, 0x870a1b9eaa653a97, 0x5dd307fb7256def7, 0x701e41d1ecba3bf4], true, [0xb23f88fc24e1f114, 0x78f5e461559ac569, 0x22a9112f604ef2a7, 0x6d3dc0037504c6e6])
+ self.sub([0x175fba94320e43fd, 0x31d428400387e50f], [0x73dcd0cf873df1d2, 0xcdb116b653cbbb54, 0x6d540b6c700e1e1d, 0xf741d51837d5457e], true, [0x8c232f3078c20e2d, 0x324ee949ac3444ab, 0xaa0baf27c20025df, 0x3a925327cbb29f91])
+ self.sub([0x7a0f080441cb39fd, 0x621285fc224b535e], [0x63418679bd27823b, 0x6f9ee6f3c2e47a92, 0xb6d78e958ee36ebc, 0x37f81d91b328d516], true, [0x9cbe798642d87dc4, 0x9061190c3d1b856d, 0xc337796eb2e7cb41, 0x2a1a686a6f227e48])
+ self.sub([0xa005cfbb930f0d77, 0xf61a7e64d7c373bb], [0x55a6323d9d3ca4bf, 0x233222d66135dc1c, 0xedabf3adb42a251a, 0x1af20075eb473784], true, [0xaa59cdc262c35b40, 0xdccddd299eca23e3, 0xb259dc0ddee4e85d, 0xdb287deeec7c3c37])
+ self.sub([0x5062e9b7597c6c14, 0x5b2cc123aee94387], [0x1a567eea4bad0e6f, 0xed2d8d3ddbe5b96f, 0xef92d746aaf63024, 0xba96631c47e06d31], true, [0xe5a98115b452f190, 0x12d272c2241a4690, 0x60d01270ae863bef, 0xa0965e076708d656])
+ self.sub([0x43242490f569a964, 0xd24ddf08a1901639], [0x836cb8bc651a3409, 0xb66741463eb9541, 0x8288568baf404541, 0xe7e5dde426c51b59], true, [0x7c9347439ae5cbf6, 0xf4998beb9c146abe, 0xc09bce0546296422, 0xea6801247acafae0])
+ self.sub([0xd356e42b1cd24fcf, 0x260a7d823e645b84], [0xe166dbd088e29865, 0xe6e035b30a8d8844, 0x182f0ae4bc08aef6, 0x5ea8da2b4fd1c657], true, [0x1e99242f771d679a, 0x191fca4cf57277bc, 0xbb27d94660c9a0d8, 0xc761a356ee92952d])
+ self.sub([0x54b7ce789720f1e0, 0xe45ec11c4ba6ea37], [0x48bdc49d86f9e75e, 0xb9ed424765a4170a, 0xc52baff278310bb, 0x97d173dc2d1bf339], true, [0xb7423b62790618a1, 0x4612bdb89a5be8f6, 0x486513796f9de125, 0x4c8d4d401e8af6fe])
+ self.sub([0x9980d6f8d2c85b7e, 0x5fa99970c9dc8c71], [0x9c22b34bdcbe694b, 0x1483020007c0eff9, 0x5db7ee8ea6d2a0e5, 0x3144d6f1e5bf4a36], true, [0x63dd4cb4234196b4, 0xeb7cfdfff83f1007, 0x3bc8e86a2bf5ba99, 0x2e64c27ee41d423b])
+ self.sub([0xb938f91b8b44cbaa, 0xaeb227e48286f2f4], [0x24065ac0689d5a68, 0xf72a708ede4b308e, 0x4fb2a9bc3cec5e43, 0xd75c0a3696ff3ef], true, [0xdbf9a53f9762a597, 0x8d58f7121b4cf72, 0x69864f5f4e586d67, 0xa13c67411916ff05])
+ self.sub([0x96a7c1821c952142, 0x1b5c6b87d72fa57], [0x1a1d34a51f9ffd58, 0xae0db2bb26981cae, 0x8642e703cd82307b, 0xac553bf8e3a24f80], true, [0xe5e2cb5ae06002a7, 0x51f24d44d967e352, 0x1064da7e4f12f0c6, 0x55608abf99d0aad7])
+ self.sub([0xa98607c255fc5859, 0x698109ceacfa7af1], [0xe9aa05769f0c6554, 0x1c7b001094cc5ac8, 0x8cfbc029fa53b9bb, 0x841d75e0e14f62ad], true, [0x1655fa8960f39aab, 0xe384ffef6b33a538, 0x1c8a47985ba89e9d, 0xe56393edcbab1844])
+ self.sub([0x5a67fd7bb060300e, 0xd4cc67ed5300e05c], [0xfe332b3c3fccc7d3, 0xbb1f25b283e030a6, 0xe17da13eaee8a2ec, 0x8cffbb8c3a241f0a], true, [ 0x1ccd4c3c033382c, 0x44e0da4d7c1fcf59, 0x78ea5c3d01778d22, 0x47ccac6118dcc152])
+ self.sub([0x3baa958bea758e98, 0x85dbb658ec37fd39], [0xa566ee38086ccdb2, 0x51aee8cd0f3ad600, 0x3d1b82928705a88d, 0x9b97f6ce07b46eda], true, [0x5a9911c7f793324d, 0xae511732f0c529ff, 0xfe8f12f9636fe60a, 0xea43bf8ae4838e5f])
+ self.sub([0xecd8ea2cfbb0ce87, 0xe949e4b42da2d1ea], [0x9ba1236ef649e8f8, 0x91d38364e35d4e01, 0x825135cc05395e44, 0xef841534b36b8d48], true, [0x645edc9109b61707, 0x6e2c7c9b1ca2b1ff, 0x6a87b460f6777042, 0xf9c5cf7f7a3744a2])
+ self.sub([0xb3ea68ef45379a05, 0x68b40791855eed52], [0x55951724fe64889a, 0xcb8e2f8fcd23166d, 0xc51df56ca5fb11e8, 0x2d5cfb26e7708830], true, [0xaa6ae8db019b7765, 0x3471d07032dce992, 0xeecc73829f3c881d, 0x3b570c6a9dee6522])
+ self.sub([0x316b548900b98692, 0xad3d4bf6694160fd], [0x159843d49e52f842, 0xb281a950c768ccdf, 0xe797d49e38ec952f, 0x6f478307ae32ce5e], true, [0xea67bc2b61ad07bd, 0x4d7e56af38973320, 0x49d37feac7ccf163, 0x3df5c8eebb0e929f])
+ self.sub([0x298740adf966494f, 0xf26a8170a1310a9f], [0x9c0d18d954202d76, 0xc2730ec33cb7673, 0x93f022a0f6cd6dde, 0x7ec4750b016c6399], true, [0x63f2e726abdfd289, 0xf3d8cf13cc34898c, 0x95971e0d0298db71, 0x73a60c659fc4a706])
+ self.sub([0x4f3073bbdb811ca2, 0x745c8a0080e6f575], [0xfc3e3b17a087aea7, 0x285e45e7f008fa14, 0xffec460c41aff4a4, 0x1b64492ccb2b0caf], true, [ 0x3c1c4e85f785158, 0xd7a1ba180ff705eb, 0x4f442daf99d127fe, 0x58f840d3b5bbe8c6])
+ self.sub([0x2e0f17764ff26e57, 0x2eba54a2a67c94fa], [0x95a9722ccd31aa73, 0xe40f07b381ea4bc7, 0x55d6548481c39d4d, 0xcf7a80bdce8d882], true, [0x6a568dd332ce558c, 0x1bf0f84c7e15b438, 0xd838c2f1ce2ed10a, 0x21c2ac96c993bc78])
+ self.sub([0x8871484ce0192a36, 0x1b649141b76d588a], [0xbf8eb22d110bc913, 0x6ec49902f7c27513, 0x18138b866d26f41c, 0x962f35b93b9a447a], true, [0x40714dd2eef436ec, 0x913b66fd083d8aed, 0x705dbcc672f23619, 0x85355b887bd31410])
+ self.sub([0x19d7533d156e89a9, 0xee50fac8642644a5], [0x9b1b39f0681d1438, 0x265b762d3614a188, 0x96fdb245dc3bfe09, 0xcb3f1a1094b5d621], true, [0x64e4c60f97e2ebc7, 0xd9a489d2c9eb5e77, 0x82d9a0f739328ba0, 0x2311e0b7cf706e84])
+ self.sub([0x165ebd6a139a31b4, 0x9d8df3f3d74e2fad], [0x7568dfd973cb761a, 0x921895e5179b1021, 0x37ea8b4b8ca6e7f8, 0x91ca34d888925f2], true, [0x8a9720268c3489e5, 0x6de76a1ae864efde, 0xde74321e86f349bc, 0x947150a64ec509bb])
+ self.sub([0xff4e87b13309ebc4, 0xbb085e5250a384a2], [0x466c939a66f12d41, 0x59b9f995a7e6dacb, 0x347b38dce150be9, 0x26ee721056b96e59], true, [0xb9936c65990ed2be, 0xa646066a58192535, 0xfc06d42364f4dfdb, 0x9419ec41f9ea1649])
+ self.sub([0xbf31145491f09d61, 0xd6371b503f50dd72], [0x5e96c573ff4159ca, 0x1e51a855c7648f5f, 0xf3f1ae7202e07362, 0xfa4f81b096305e87], true, [0xa1693a8c00bea635, 0xe1ae57aa389b70a0, 0xcb3f65e28f1029fe, 0xdbe7999fa9207eeb])
+ self.sub([0x2d8dfb19618beff6, 0xba297d9e6d2c744d], [ 0xa9aee61102f5023, 0x3c3c5358c25e7585, 0xa6d8cae4d9df150b, 0x926792647cf39b23], true, [0xf565119eefd0afdc, 0xc3c3aca73da18a7a, 0x86b5303487acdaeb, 0x27c1eb39f038d92a])
+ self.sub([0xf78fb16dde8b57c9, 0x6b2a4cdae5558e69], [ 0x73189090be3a18d, 0x4906b7a69c94a266, 0xc7a2e6bb6a9274c1, 0x1ff7ab9d24887e42], true, [0xf8ce76f6f41c5e72, 0xb6f94859636b5d9a, 0x2feccab273f8e308, 0x4b32a13dc0cd1027])
+ self.sub([0xb3a5a28265312d27, 0x66cb2cf392b74530], [0x27fcf907441151ba, 0xb0d1e1064ea7fe70, 0xda40dc978f87b006, 0x4e2ed48fdece8797], true, [0xd80306f8bbeeae45, 0x4f2e1ef9b158018f, 0xd964c5ead5a97d21, 0x189c5863b3e8bd99])
+ self.sub([0xaf5a48c241845f91, 0x8c7f354f877ade3b], [0xf4dab2b8fa57e2ce, 0x318d92da9fe821e1, 0x469503a491d80c90, 0xb676e0c264e7888d], true, [ 0xb254d4705a81d31, 0xce726d256017de1f, 0x68c5451dafac5300, 0xd608548d229355ae])
+ self.sub([0xd165eee6741c0bdd, 0x8be72b95f9292763], [0x12476268b47da195, 0x3c777b066c1d3b53, 0xec22661f1e44ca8e, 0xe61210a7e4613f2a], true, [0xedb89d974b825e6a, 0xc38884f993e2c4ac, 0xe54388c755d7414e, 0xa5d51aee14c7e839])
+ self.sub([0x205748fe8f52134f, 0xcc8b0f0e4d3846db], [ 0xdbf2bd46ac088e8, 0x318a9314b5031d3, 0xa90622f2a4da3c4c, 0x293a87253d7c6f63], true, [0xf240d42b953f7717, 0xfce756ceb4afce2c, 0x7751260bea77d703, 0xa35087e90fbbd778])
+ self.sub([0x41eabdc7f90a775d, 0x7ba8e6c9f8a784bf], [0x69e1fc1f3bd036c8, 0x4af98ab5d36492c6, 0xe0486654a791b640, 0xc606491008596272], true, [0x961e03e0c42fc937, 0xb506754a2c9b6d39, 0x61a257735178c11c, 0xb5a29db9f04e224d])
+ self.sub([0xb9dcdbc46973ca10, 0x58679a73a5e11e0f], [0xce2c55939852cd20, 0x20c41bc74509aadb, 0x8d51607cdd8e5e2, 0xee9ebf13888cb43], true, [0x31d3aa6c67ad32df, 0xdf3be438baf65525, 0xb107c5bc9b9ae42e, 0x497dae826d5852cc])
+ self.sub([0xccf97ce422ff878b, 0x1240332d05e51af2], [0xfec040a71f9790ee, 0xdc751951204fa6e7, 0xd1cfcfc74411eb67, 0xb514500d0687aa8b], true, [ 0x13fbf58e0686f11, 0x238ae6aedfb05918, 0xfb29ad1cdeed9c23, 0x5d2be31fff5d7067])
+ self.sub([0xc7c711b44eae7bcc, 0x7dae677b2ae0e0fa], [0x6999bc587d7f073e, 0x2a751d0ad610823a, 0xd8d4d3a539d3f5a1, 0xb15ada8261348641], true, [0x966643a78280f8c1, 0xd58ae2f529ef7dc5, 0xeef23e0f14da862a, 0xcc538cf8c9ac5ab9])
+ self.sub([0x4d5c053587e3da6a, 0x66948bf4f3431015], [0x8d5f99955ca7e567, 0xdf4130f91ed70f1d, 0xb6cf4fe65e83d56c, 0xffb6bd0a57358feb], true, [0x72a0666aa3581a98, 0x20becf06e128f0e2, 0x968cb54f296004fd, 0x66ddceea9c0d802a])
+ self.sub([0x187f60a1166d35d7, 0x3b74eb9d515aa22c], [ 0xf3a0a777d42c4ba, 0x4d8a8ba8f05649aa, 0x19a55048f991f75b, 0xe01f0f359418d5be], true, [0xf0c5f58882bd3b45, 0xb27574570fa9b655, 0xfeda10581cdb3e7b, 0x5b55dc67bd41cc6e])
+ self.sub([0x4887592cc0fdc036, 0x700aecd44e4b942e], [0xe042d284d3953a5a, 0xd9d8b9c2aed33942, 0xaf5a777aaddb10da, 0xa798717b9cbb315c], true, [0x1fbd2d7b2c6ac5a5, 0x2627463d512cc6bd, 0x992ce1b21322af5b, 0xc8727b58b19062d2])
+ self.sub([0x10a172b20d250149, 0xb1321272ebbd76ca], [0xf9dab91b9fd57848, 0xc48d7b824127fc0d, 0xec47dca442cef94e, 0xf3a5b86ac120e9f1], true, [ 0x62546e4602a87b7, 0x3b72847dbed803f2, 0x2459960dca5607fa, 0xbd8c5a082a9c8cd9])
+ self.sub([0x24f4af759a0291db, 0xff9a788f420813b9], [0x849e336fca505941, 0x8f35875d32013d24, 0x57429b39aa3612, 0x46814dc97e1c172e], true, [0x7b61cc9035afa6be, 0x70ca78a2cdfec2dc, 0x249d6cda60585bc9, 0xb9192ac5c3ebfc8b])
+ self.sub([0xedce61b3d636ffb8, 0x224e9d91feb90e91], [0x76ee4bda337f6bb6, 0xac7a673ceab11a3f, 0x9980590f0c6ecbdb, 0x66a3b5cdb5f373f9], true, [0x8911b425cc809449, 0x538598c3154ee5c1, 0x544e08a4c9c833dc, 0xbbaae7c448c59a98])
+ self.sub([ 0x35c5e273028b1d6, 0x90bf0300b25ff014], [0xbff67354cfabcf79, 0x8a54de712b94bf17, 0x4c1c55b7a12d65cb, 0x9f86d526a702d6c], true, [0x40098cab30543086, 0x75ab218ed46b40e8, 0xb740086f8efb4c0b, 0x86c695ae47efc2a8])
+ self.sub([0x2780b3b6326ef13f, 0xee1679e0b8136a06], [0x5ebaf864e6f87474, 0x211d2def702ff39d, 0x8904fcccfd5b16f9, 0xd92e3f89134aedfb], true, [0xa145079b19078b8b, 0xdee2d2108fd00c62, 0x9e7bb6e93513da46, 0x14e83a57a4c87c0b])
+ self.sub([0xc313ae3e952a1ebf, 0xee04df2fe2dd947b], [0xd465a020fb47c8bd, 0x8bd9bb4ff96569d0, 0x5f8de823162fd6d9, 0xf48f9b17c74463], true, [0x2b9a5fdf04b83742, 0x742644b0069a9630, 0x6385c61b7efa47e6, 0xed104f94cb165018])
+ self.sub([ 0xb003afad20f7a20, 0xcad7d09c78c9bb86], [0x9af1b7402267ea4f, 0xf7b7966d1b8e596f, 0x743daa824763e970, 0xbad817014d98d676], true, [0x650e48bfdd9815b0, 0x8486992e471a690, 0x96c290788aab90b0, 0xfffb99b2b30e510])
+ self.sub([0x29fca44a52ad28c0, 0xaa6445ebf975015b], [0xf0d840d6d3782a52, 0x4ade65f242ac9c7d, 0xb8cc3bf5eb03af20, 0xd7af11162a820c5a], true, [ 0xf27bf292c87d5ad, 0xb5219a0dbd536382, 0x7130685467a9799f, 0xd2b534d5cef2f501])
+ self.sub([0x78963f1ab70b0b0b, 0xc6accf9b8a9f3e94], [0x4ce8a680776d26a1, 0xd1eb81eebdb66e01, 0xb9e9a26f40e6d608, 0xd65a7666e598e72f], true, [0xb317597f8892d95e, 0x2e147e11424991fe, 0xbeac9cab76243502, 0xf0525934a5065765])
+ self.sub([0x70bba0ae00bc7c2b, 0xc2dae4c4e582b7ba], [0xa8285566b48254a1, 0x94505d1aeba6b875, 0xd94f4e36c66e6cb5, 0x2a63f58f08062e7d], true, [0x57d7aa994b7dab5e, 0x6bafa2e51459478a, 0x976c52773a4e0f76, 0x9876ef35dd7c893d])
+ self.sub([0x35b95460229224ae, 0xf654e60ce1874388], [0x72b498c8f455d94b, 0x5c3036bd3b1c57c5, 0xa190046d60b5ba60, 0x88e65525e3777e7a], true, [0x8d4b67370baa26b4, 0xa3cfc942c4e3a83a, 0x94294ff2c1dc6a4e, 0x6d6e90e6fe0fc50e])
+ self.sub([0x671926a890e77e32, 0xf0aae27940409806], [0xc9353056eaa2f782, 0x38acb278accb34b5, 0xb0890dcbf4274e49, 0x250e30c3fb0ef908], true, [0x36cacfa9155d087d, 0xc7534d875334cb4a, 0xb69018dc9cc02fe9, 0xcb9cb1b545319efe])
+ }
+
+ func test_sub_3_by_1() {
+ self.sub([0x8f01da326e42418c, 0xaaa00506e10feb81, 0xab4229497fc51671], [0xb6620089b8678f06], false, [0x8f01da326e42418c, 0xaaa00506e10feb80, 0xf4e028bfc75d876b])
+ self.sub([0x954a20a83ef5a372, 0x70ccfe0174e0be7d, 0xf1b8bdd1eac309b9], [ 0x6ae14da29c36e37], false, [0x954a20a83ef5a372, 0x70ccfe0174e0be7d, 0xeb0aa8f7c0ff9b82])
+ self.sub([0x24fd1c1346e53bb7, 0x1bf4642e44fd1e45, 0xa306cf323b7553b5], [0x7fc89c46456e1d56], false, [0x24fd1c1346e53bb7, 0x1bf4642e44fd1e45, 0x233e32ebf607365f])
+ self.sub([0xc4d61113e07cc60d, 0xdf56906d094da2c4, 0xd3957d236beeb465], [0xe500962025e07d2c], false, [0xc4d61113e07cc60d, 0xdf56906d094da2c3, 0xee94e703460e3739])
+ self.sub([0x78cb5430ba3a62a9, 0xbaa35654bb0169f3, 0x3f4008ac7f1a1a81], [0x2b986c22b0fcd5e6], false, [0x78cb5430ba3a62a9, 0xbaa35654bb0169f3, 0x13a79c89ce1d449b])
+ self.sub([0xfe2e57f1b0620c78, 0x21e550ece5b48634, 0x8a657c72d4baa1c0], [0x800fdef26bc9b0e3], false, [0xfe2e57f1b0620c78, 0x21e550ece5b48634, 0xa559d8068f0f0dd])
+ self.sub([0x6edeb1ae322b88a8, 0xe7216f8859708884, 0x93be616a60cca4dc], [0x269facd73a777656], false, [0x6edeb1ae322b88a8, 0xe7216f8859708884, 0x6d1eb49326552e86])
+ self.sub([0x1a81a3d22321efb8, 0xec64d7024b9bb3d7, 0x9144ba57cc6f7b25], [0x479da7ba74d1810b], false, [0x1a81a3d22321efb8, 0xec64d7024b9bb3d7, 0x49a7129d579dfa1a])
+ self.sub([0xeab4256520f2a1e0, 0x49514f68e423cadb, 0xc6022b89eb5b8ff], [0x26ff2515fc8ca19e], false, [0xeab4256520f2a1e0, 0x49514f68e423cada, 0xe560fda2a2291761])
+ self.sub([0xbeddd50ccec5771a, 0x864bf539050daacf, 0x809497a171546505], [ 0x9ca95a7ae1e9ca8], false, [0xbeddd50ccec5771a, 0x864bf539050daacf, 0x76ca01f9c335c85d])
+ self.sub([0x7ce9f912ab0def70, 0xe796f3a76c722122, 0x16317ba535e37e34], [0xaa011aba99b68ccf], false, [0x7ce9f912ab0def70, 0xe796f3a76c722121, 0x6c3060ea9c2cf165])
+ self.sub([0x2c9be87818fecc06, 0x388015fdf22f04e5, 0x35c9bdea8547a9f7], [0x31c131e228cfd17e], false, [0x2c9be87818fecc06, 0x388015fdf22f04e5, 0x4088c085c77d879])
+ self.sub([0xf18baff1e34a2c20, 0x2482d5a5e065fb8f, 0xdc15a1378de0096b], [ 0x6ac06fed7b4a075], false, [0xf18baff1e34a2c20, 0x2482d5a5e065fb8f, 0xd5699a38b62b68f6])
+ self.sub([0xda9d87155375cce4, 0x6f32d6ff98eb41be, 0x2cbae7f66ef9f8fa], [0xa089fba637ea2358], false, [0xda9d87155375cce4, 0x6f32d6ff98eb41bd, 0x8c30ec50370fd5a2])
+ self.sub([0x87a23a9fdfc09a01, 0xb71093f188a5f8fb, 0xef85724174fb292e], [0x57bb4649353aa058], false, [0x87a23a9fdfc09a01, 0xb71093f188a5f8fb, 0x97ca2bf83fc088d6])
+ self.sub([0x6ff5259883db5099, 0x8e8296a5aee6e44a, 0x8aa44d0b73336bea], [0x281cdbf301daa3a1], false, [0x6ff5259883db5099, 0x8e8296a5aee6e44a, 0x628771187158c849])
+ self.sub([0xd6c671ec2bdbf68b, 0xce01ffb7765cd88e, 0x6e1ec78f46a75a76], [0x8ef796468312ca4d], false, [0xd6c671ec2bdbf68b, 0xce01ffb7765cd88d, 0xdf273148c3949029])
+ self.sub([0x29bff5faa3be6709, 0x4eed9f6e7ce40fb5, 0x9f8c4978e55a78a1], [0xcbb81373539b5375], false, [0x29bff5faa3be6709, 0x4eed9f6e7ce40fb4, 0xd3d4360591bf252c])
+ self.sub([0xcf93a2afb8a25260, 0x62c44fc6998d5eae, 0xa6bdcabfc66de621], [0x671bec1cb583e187], false, [0xcf93a2afb8a25260, 0x62c44fc6998d5eae, 0x3fa1dea310ea049a])
+ self.sub([0x4a1e1b9eafe5ad7f, 0x1acc3aae0a061804, 0xa88103706fe3aa54], [0xa101a9987912a0e2], false, [0x4a1e1b9eafe5ad7f, 0x1acc3aae0a061804, 0x77f59d7f6d10972])
+ self.sub([0x95e72ebaa099f6e6, 0x7367035c47718392, 0x492f367d8572d3ca], [0xacc85dc1037d2e13], false, [0x95e72ebaa099f6e6, 0x7367035c47718391, 0x9c66d8bc81f5a5b7])
+ self.sub([0x42e574be526dd8e6, 0x8ccdd44085992b55, 0x3ab0abd7ca79e0b4], [0x41dca9bc0adc0751], false, [0x42e574be526dd8e6, 0x8ccdd44085992b54, 0xf8d4021bbf9dd963])
+ self.sub([0xee7eb18658a295e8, 0xbf5dce4863cf1b18, 0xae216ddf518cf30], [0x183384f226decd28], false, [0xee7eb18658a295e8, 0xbf5dce4863cf1b17, 0xf2ae91ebce3a0208])
+ self.sub([0xe61e5973779d9e39, 0x62e7868642596fa0, 0xd91fd5f861d74d29], [0xe2fb5dbd3f4b802c], false, [0xe61e5973779d9e39, 0x62e7868642596f9f, 0xf624783b228bccfd])
+ self.sub([0xf5f17d6e45c303c7, 0x8a82c502b27461ac, 0x60903b6fa3146872], [0x30f5e44bcfe210db], false, [0xf5f17d6e45c303c7, 0x8a82c502b27461ac, 0x2f9a5723d3325797])
+ self.sub([0xa3106620b5d579f9, 0x3ce90e2de7c89ee4, 0x37a7285e6ecf57fd], [0xb29a23c3af900a79], false, [0xa3106620b5d579f9, 0x3ce90e2de7c89ee3, 0x850d049abf3f4d84])
+ self.sub([0x506488b5314997aa, 0xf792f41fd1fc49a8, 0xe978bca2ccb08d45], [0xf35d5123f109281b], false, [0x506488b5314997aa, 0xf792f41fd1fc49a7, 0xf61b6b7edba7652a])
+ self.sub([0x1b67f30eff4cf019, 0xdcbde766a0261109, 0x3bcecdc8c5df9952], [0x26619a49070fe806], false, [0x1b67f30eff4cf019, 0xdcbde766a0261109, 0x156d337fbecfb14c])
+ self.sub([0x675240b3dde5ecb6, 0x7fb150f61736891c, 0x53c7584bbd22be1d], [0xf68483e2b5be21c9], false, [0x675240b3dde5ecb6, 0x7fb150f61736891b, 0x5d42d46907649c54])
+ self.sub([0x8de31545fe530a76, 0xdeda9ddbefd94b2e, 0x76016582130165de], [0x3033d29d3a8a20a2], false, [0x8de31545fe530a76, 0xdeda9ddbefd94b2e, 0x45cd92e4d877453c])
+ self.sub([0x51c69089f1289bcc, 0x90544bbf22da336, 0xcd25d7e3e2a70553], [0x7bc84cbdba7522ec], false, [0x51c69089f1289bcc, 0x90544bbf22da336, 0x515d8b262831e267])
+ self.sub([0x828389abaf815677, 0xf3b8819e3e264ca1, 0xd15211259b6e09c1], [0xd9d9d1d506df1919], false, [0x828389abaf815677, 0xf3b8819e3e264ca0, 0xf7783f50948ef0a8])
+ self.sub([0xa53775f2f3563d8b, 0x135a7b5571b325b2, 0x5cc8a4790e690882], [0x5efa2fc00c81fe9d], false, [0xa53775f2f3563d8b, 0x135a7b5571b325b1, 0xfdce74b901e709e5])
+ self.sub([0xf838998717961606, 0x5d4b93856d9f6dbd, 0x77dd8ab92577593c], [0x493314fb95e6f9fc], false, [0xf838998717961606, 0x5d4b93856d9f6dbd, 0x2eaa75bd8f905f40])
+ self.sub([0xb9b704236ef84711, 0x12e8625876421678, 0x19dd7a218015464a], [0x3b69ba8f58f37cb7], false, [0xb9b704236ef84711, 0x12e8625876421677, 0xde73bf922721c993])
+ self.sub([0xd278ea34c6e18052, 0xbc237c999ea74f2e, 0xdb22476f6ffef91a], [0xea23fa535c2c8603], false, [0xd278ea34c6e18052, 0xbc237c999ea74f2d, 0xf0fe4d1c13d27317])
+ self.sub([0x514f8d930093576b, 0x8718bc98d7c173ad, 0xd9f10464f148ceb6], [0xcaae4b42b0cbe129], false, [0x514f8d930093576b, 0x8718bc98d7c173ad, 0xf42b922407ced8d])
+ self.sub([0x3f379ee40b99354e, 0xeaae67f794edece0, 0x3c7f5e0c2f0369bd], [0x30f5ca43998cf8c5], false, [0x3f379ee40b99354e, 0xeaae67f794edece0, 0xb8993c8957670f8])
+ self.sub([0x86c60efd9d015a91, 0x5479358e87f95fb7, 0x8edcff0981df2f01], [0x44538dbfc6b1a548], false, [0x86c60efd9d015a91, 0x5479358e87f95fb7, 0x4a897149bb2d89b9])
+ self.sub([0x517669380766907c, 0x5792e7428f0f778b, 0x1bd702c13386f625], [0xdb3eba8bbf4a3016], false, [0x517669380766907c, 0x5792e7428f0f778a, 0x40984835743cc60f])
+ self.sub([0xf457663eb38be648, 0x5669fe3191b5adde, 0x8dcde0a8f7ef3fbe], [0x4bfb443420d2325a], false, [0xf457663eb38be648, 0x5669fe3191b5adde, 0x41d29c74d71d0d64])
+ self.sub([0x9f8541f126507834, 0xb97f245ac80a47cf, 0xc8b1336d749be6af], [0x170fa933423ddb75], false, [0x9f8541f126507834, 0xb97f245ac80a47cf, 0xb1a18a3a325e0b3a])
+ self.sub([0x7fc02188b6e99548, 0xc818f346afd0257a, 0x8e0b3fe1b596d585], [0xd3e310a17926ba6c], false, [0x7fc02188b6e99548, 0xc818f346afd02579, 0xba282f403c701b19])
+ self.sub([0x6a6529c5a895d980, 0x231c246de94fce4c, 0x1e9a4e829f40bca2], [0xc326a5dd1d9cec73], false, [0x6a6529c5a895d980, 0x231c246de94fce4b, 0x5b73a8a581a3d02f])
+ self.sub([0xfebe277433aac92a, 0xc828cfbc2ca0da49, 0xefa62b8e4590ddee], [0x1255692240e47619], false, [0xfebe277433aac92a, 0xc828cfbc2ca0da49, 0xdd50c26c04ac67d5])
+ self.sub([0x11e9d47752441741, 0xd8b37cb17b374167, 0x35ff3e2eb2daf42c], [0x9807b14215d6fc79], false, [0x11e9d47752441741, 0xd8b37cb17b374166, 0x9df78cec9d03f7b3])
+ self.sub([0xc53a8957492c98ac, 0xea49b7123c2c22cb, 0x5be52c82341dbc65], [0xd98bcbf1e40e8c14], false, [0xc53a8957492c98ac, 0xea49b7123c2c22ca, 0x82596090500f3051])
+ self.sub([0xcae9505184cb554f, 0xbd08283b7ba52210, 0x435086dc4dada3ce], [0xdbf26375e14b2e01], false, [0xcae9505184cb554f, 0xbd08283b7ba5220f, 0x675e23666c6275cd])
+ self.sub([0xe5f3833a10d27574, 0x6ae800044c0d3ca3, 0xa5a222a96279b464], [0xb41dea19e74abcb2], false, [0xe5f3833a10d27574, 0x6ae800044c0d3ca2, 0xf184388f7b2ef7b2])
+ self.sub([0x35cde42fe14658dd, 0x5c8315ed041ba75, 0x9e114cb4fc8831de], [0x6e06f63ba3901b91], false, [0x35cde42fe14658dd, 0x5c8315ed041ba75, 0x300a567958f8164d])
+ }
+
+ func test_sub_3_by_2() {
+ self.sub([0x2a0bde53f4afc120, 0x55631deec7c86f79, 0x5f838adbdef48ea2], [0x45b398d2657afae0, 0x5115f8f4561a0ab5], false, [0x2a0bde53f4afc120, 0xfaf851c624d7499, 0xe6d91e788da83ed])
+ self.sub([ 0x1258fae4ee0d499, 0x3b2c0a318cf61c50, 0xb14b0c9c5fcae04a], [ 0x6ed7abd78812249, 0x8e8120b74e924a6d], false, [ 0x1258fae4ee0d499, 0x343e8f741474fa07, 0x22c9ebe5113895dd])
+ self.sub([0x382e0fe20c5fa03a, 0x829fb171df3591dc, 0xc58c7cef65462046], [0xaf392c23afae0d74, 0x5a7ffd9518549a7c], false, [0x382e0fe20c5fa039, 0xd366854e2f878468, 0x6b0c7f5a4cf185ca])
+ self.sub([ 0xe80909e51361977, 0xa468b7357b18a487, 0x20c833e2848c7b6b], [0x56635045206cb93c, 0xff41deda4de5140f], false, [ 0xe80909e51361977, 0x4e0566f05aabeb4a, 0x2186550836a7675c])
+ self.sub([0x79f32dfa853f1d0e, 0xa2b68a1fde628aa0, 0x7b6a628a131ee2f2], [0xb287e3f37c9dd536, 0x829f91d088402c13], false, [0x79f32dfa853f1d0d, 0xf02ea62c61c4b569, 0xf8cad0b98adeb6df])
+ self.sub([0x65b451e90bad8a41, 0x587e6c0409913435, 0xe3a2c624ac2082ee], [0x8327bfebe87b7fb7, 0xe43d9b4854bc93b4], false, [0x65b451e90bad8a40, 0xd556ac182115b47d, 0xff652adc5763ef3a])
+ self.sub([0x94ef2cb063880bc0, 0x4d5674fd1edc1efe, 0x5b70120d73cfe9a9], [0xcf0d0eda32fcda8c, 0x6f549b11c99c6e50], false, [0x94ef2cb063880bbf, 0x7e496622ebdf4471, 0xec1b76fbaa337b59])
+ self.sub([0xf6dbe58461f78f09, 0xff94ba3bd6100903, 0x5f9627362c1b6090], [0x6c8dce38fef496f3, 0x21fb8ee7c1211f9d], false, [0xf6dbe58461f78f09, 0x9306ec02d71b7210, 0x3d9a984e6afa40f3])
+ self.sub([0xf8db5df353280ad4, 0x6128affda48eaf2c, 0xad2b11fc7ec3d66e], [0x3f8fd258bfa846e6, 0xfcc53ccd53330a17], false, [0xf8db5df353280ad4, 0x2198dda4e4e66845, 0xb065d52f2b90cc57])
+ self.sub([ 0xfca8ba006311751, 0xcceb3ee86decc34c, 0x57517180213be566], [0xb241755136f3bf56, 0xf9a92803a24c3391], false, [ 0xfca8ba006311751, 0x1aa9c99736f903f5, 0x5da8497c7eefb1d5])
+ self.sub([0x9de446d878fb84b4, 0xa98069e7e2b3e556, 0xf3046b0d2c0fb123], [0x6c24695f91697a06, 0x3848cbd9b91c77ae], false, [0x9de446d878fb84b4, 0x3d5c0088514a6b50, 0xbabb9f3372f33975])
+ self.sub([0xba7e496f4471ee99, 0xd92f1c828b91e001, 0x53f097aea4a89235], [0x30d066639a2fb3f5, 0x5bb6d37ec1e6981a], false, [0xba7e496f4471ee99, 0xa85eb61ef1622c0b, 0xf839c42fe2c1fa1b])
+ self.sub([0x9d43f8e749c7980c, 0xe559a9eb26bece65, 0xb1278340cfa3d8dc], [0x3822bfc991071dce, 0x598a62deaea97418], false, [0x9d43f8e749c7980c, 0xad36ea2195b7b097, 0x579d206220fa64c4])
+ self.sub([0xb415a61c6cea0f8c, 0x34f2258297f811e9, 0x9e40dfd6378abc13], [0x127feb6d5b31aac6, 0x5fd198e48b33105f], false, [0xb415a61c6cea0f8c, 0x22723a153cc66723, 0x3e6f46f1ac57abb4])
+ self.sub([0x624d612f25ba4154, 0x5b830c6548f78757, 0xff5bd0ec4258ea7c], [0x79c19bac6e1a716d, 0x69ba2697395a41a7], false, [0x624d612f25ba4153, 0xe1c170b8dadd15ea, 0x95a1aa5508fea8d5])
+ self.sub([0x9b393ca3baf4f3f8, 0x8797524189ed0bf1, 0x6b2369f837e3fefc], [0x9cd32d1f24c87cac, 0xdfeff5942a0470af], false, [0x9b393ca3baf4f3f7, 0xeac4252265248f44, 0x8b3374640ddf8e4d])
+ self.sub([0xb695746897773880, 0x1349a8a2555bcbc7, 0x425de334786bdad2], [0xfdea27406ad4f63d, 0xe3b45a65fe62d96b], false, [0xb69574689777387f, 0x155f8161ea86d589, 0x5ea988ce7a090167])
+ self.sub([0xb5841e66e7d7ae4c, 0x6b036785e9bdba53, 0x201eaa606946f808], [0x53f5631b16bbdaf1, 0x87d0b5cbb3fee615], false, [0xb5841e66e7d7ae4c, 0x170e046ad301df61, 0x984df494b54811f3])
+ self.sub([ 0x34a660ce4ac28ec, 0x713490c0f8406f23, 0xae3a55eb2b662b16], [0x5b3fe17e90e4cd85, 0x9bd4b6a4610ca331], false, [ 0x34a660ce4ac28ec, 0x15f4af42675ba19e, 0x12659f46ca5987e5])
+ self.sub([0x98b33a02458b1b68, 0x43ea3f37d11d9579, 0xa7a3ead9f5b758d8], [0xc48461e362fff337, 0xcb1c2d857c181252], false, [0x98b33a02458b1b67, 0x7f65dd546e1da241, 0xdc87bd54799f4686])
+ self.sub([0x7613bff66e2c0315, 0x4d0867ca90caa9dc, 0x22c9f3b92f887ee5], [0x3c6f316904085869, 0xc7255786d8da48d], false, [0x7613bff66e2c0315, 0x109936618cc25173, 0x16579e40c1fada58])
+ self.sub([0xc60016daf2ef659d, 0x3691c52cea38d96a, 0x76dad3a993e7c754], [0xd72765ee20d1d60c, 0xacb2e75bd44e8240], false, [0xc60016daf2ef659c, 0x5f6a5f3ec967035d, 0xca27ec4dbf994514])
+ self.sub([0x8d5d9a9c3479c814, 0x33f4058a9592e2ef, 0x7ae9246fa5ef1b36], [ 0x15fb7c33934409b, 0xad0c960c3184ccba], false, [0x8d5d9a9c3479c814, 0x32944dc75c5ea253, 0xcddc8e63746a4e7c])
+ self.sub([0x5425ca3f3730e05c, 0x79536e6360920e7f, 0x9039358cb45e0ab8], [0x665b339dfd5ab1c1, 0xceb6b09c11e8d1fe], false, [0x5425ca3f3730e05c, 0x12f83ac563375cbd, 0xc18284f0a27538ba])
+ self.sub([0x6807bd5ce27fa7d8, 0x426b80f726852e42, 0xce613ca0afe2cb81], [0x6f6ddccc8bdcd037, 0x6922ac9e15accf73], false, [0x6807bd5ce27fa7d7, 0xd2fda42a9aa85e0b, 0x653e90029a35fc0e])
+ self.sub([0x8fe877d9efe98dd0, 0x67c44faa762106ad, 0x90f337133a3bdcdb], [0xc76e47de6ae9f27a, 0x82a23802bcea3a0], false, [0x8fe877d9efe98dcf, 0xa05607cc0b371433, 0x88c913930e6d393b])
+ self.sub([0xecd7c8ac7bbe7fde, 0xbbf0c0aecfcbfbdd, 0x1c54cb53a96730d2], [0x89129feb9c7caad6, 0x38de86798245fb14], false, [0xecd7c8ac7bbe7fde, 0x32de20c3334f5106, 0xe37644da272135be])
+ self.sub([0xeaeaad5d02bb383f, 0x70edddc60a9028d5, 0x3c50b2c4b895aeeb], [0xb03616c13ceac2d1, 0x18b1390c389f393], false, [0xeaeaad5d02bb383e, 0xc0b7c704cda56604, 0x3ac59f33f50bbb58])
+ self.sub([0x6ac98687faa362c3, 0x92703a41359d6518, 0x1e23d7b736241b03], [0xbdb4798ea092b0c6, 0xe09041ea6ee4f76], false, [0x6ac98687faa362c2, 0xd4bbc0b2950ab452, 0x101ad3988f35cb8d])
+ self.sub([0xd16d7778f0de8542, 0x2093eca2a957d9cf, 0x687909d4330d826a], [0x12f19eb51457deb1, 0x7bf86a929bea226b], false, [0xd16d7778f0de8542, 0xda24ded94fffb1d, 0xec809f4197235fff])
+ self.sub([0x9333b3ce1e4716ce, 0x89b4d6ee2bb88dc7, 0x375a23eb69c9d315], [0x9243b4f876e3dbfe, 0x7d1936ea713db0c8], false, [0x9333b3ce1e4716cd, 0xf77121f5b4d4b1c8, 0xba40ed00f88c224d])
+ self.sub([0x28adec08a1e18232, 0x1ad4ceb72784240, 0x49cb8047f5f162ec], [0x5423749ec34d59a7, 0xd8783cb55e5876c6], false, [0x28adec08a1e18231, 0xad89d84caf2ae898, 0x715343929798ec26])
+ self.sub([0x23745c614e4b8276, 0x695da9b20acf4124, 0x17b77e9874642aa1], [0x139c2ab695f54176, 0xfcea729b906371ce], false, [0x23745c614e4b8276, 0x55c17efb74d9ffad, 0x1acd0bfce400b8d3])
+ self.sub([0xddfec054225938d3, 0x355a50498444dfd5, 0xadf050c22e9ae738], [0x462553e903ebff53, 0x5c639967c4a4fe32], false, [0xddfec054225938d2, 0xef34fc608058e082, 0x518cb75a69f5e906])
+ self.sub([0xb3ed4e9b04662828, 0x4cead922ae731710, 0x17b2e590766e0815], [0xbe8eb9cc3296fa9d, 0x6ed27ed13f4732e0], false, [0xb3ed4e9b04662827, 0x8e5c1f567bdc1c72, 0xa8e066bf3726d535])
+ self.sub([0xdeeca1166efa5db2, 0xc00fd978e94614a0, 0x82fcfc768a35e8bd], [0xa132cd3aef84f236, 0x97adc3c85967aab6], false, [0xdeeca1166efa5db2, 0x1edd0c3df9c12269, 0xeb4f38ae30ce3e07])
+ self.sub([0x1af7595ea5e41a8c, 0xb0de0ea002a83ef1, 0xa28bb8ff2c7faef5], [0xd31ee302968d6235, 0x5cb1db7c4dde74a6], false, [0x1af7595ea5e41a8b, 0xddbf2b9d6c1adcbc, 0x45d9dd82dea13a4f])
+ self.sub([0x224493891f2af640, 0x13aefbc9a3294526, 0x4011df85be16e634], [0xf118fb25f295f81a, 0x944b9bf874fd9ccb], false, [0x224493891f2af63f, 0x229600a3b0934d0b, 0xabc6438d49194969])
+ self.sub([0xa1117ecf6a1fcee2, 0xbd1e76398bbd2cd5, 0x12a940705b9b132f], [0x9dae670e17415ddd, 0xf8caa52dc92276f8], false, [0xa1117ecf6a1fcee2, 0x1f700f2b747bcef7, 0x19de9b4292789c37])
+ self.sub([0x36ae8e471fea4959, 0x807b83de61f2b426, 0xad6755a4409e809d], [0xdbe717e240aee62c, 0xca29f2de39ca3a73], false, [0x36ae8e471fea4958, 0xa4946bfc2143cdf9, 0xe33d62c606d4462a])
+ self.sub([0x5210eb34cb248bcf, 0xb397ce1ae61296fc, 0x3668b7171485c5b], [ 0xf9faa2166c0d502, 0xe08527d99c601eff], false, [0x5210eb34cb248bcf, 0xa3f823f97f51c1f9, 0x22e16397d4e83d5c])
+ self.sub([0xa8b987752cb29457, 0xd9a6093d24bf2dcc, 0x291e7ad849594953], [ 0x6a0b20227ef68d2, 0xd2a22a69a990c4bb], false, [0xa8b987752cb29457, 0xd305573afccfc4f9, 0x567c506e9fc88498])
+ self.sub([0xf65837f7a7a656df, 0x3dfef7085c42fbfb, 0x20210a5193d56429], [0x9251d10581bdbbc8, 0xd3926ce671cba963], false, [0xf65837f7a7a656de, 0xabad2602da854032, 0x4c8e9d6b2209bac6])
+ self.sub([0x51eac2a6bb74c5d9, 0x3815225959ae4c4a, 0x4f721cfa2f583377], [0xd150aee905a01655, 0x12965c8d3dc1bda1], false, [0x51eac2a6bb74c5d8, 0x66c47370540e35f5, 0x3cdbc06cf19675d6])
+ self.sub([0x4dbac4ca14f5ba76, 0x79aa66a2e62f12ba, 0x85b440a48ea3be22], [0x200b5468aafa41d2, 0xf7f8da4731b0c9af], false, [0x4dbac4ca14f5ba76, 0x599f123a3b34d0e7, 0x8dbb665d5cf2f473])
+ self.sub([0x420cf5874ace325a, 0x3e5c438b5dc4451d, 0xfda2e4ae94ebcd82], [0xe7e342d1e7e93407, 0xf3054420c1c472bd], false, [0x420cf5874ace3259, 0x567900b975db1116, 0xa9da08dd3275ac5])
+ self.sub([ 0xc74b99913347123, 0x640c2f71a44917e4, 0x66837c6a40cd329], [0x959c7ba01136f6d7, 0x434999bde258e530], false, [ 0xc74b99913347122, 0xce6fb3d19312210c, 0xc31e9e08c1b3edf9])
+ self.sub([0x7346dc72ed0a4e8b, 0x69773a5e73d25a78, 0x38c609d13675c8fc], [ 0xa4305a464b7257d, 0x5658228fc65ad748], false, [0x7346dc72ed0a4e8b, 0x5f3434ba0f1b34fa, 0xe26de741701af1b4])
+ self.sub([0x21b275ac70a694b4, 0x2447080b680841ea, 0x863d7744847ff6b8], [0xfda638800d62da39, 0xf0233b6773cbe5fe], false, [0x21b275ac70a694b3, 0x26a0cf8b5aa567b0, 0x961a3bdd10b410ba])
+ self.sub([0xd4e89ec78b58ab8e, 0x8c42299f1dd38864, 0xd0820ba03d27fc49], [0xf3761480591cfc7a, 0x4f23666f5423bb89], false, [0xd4e89ec78b58ab8d, 0x98cc151ec4b68bea, 0x815ea530e90440c0])
+ }
+
+ func test_sub_3_by_3() {
+ self.sub([0x26fa12f78d86aa07, 0x15e48949a50857a5, 0x7e948a07bba1ba64], [ 0x3b27ed904a7ba69, 0x37507824f1600bb5, 0xe0b3e47feab19438], false, [0x2347941e88deef9d, 0xde941124b3a84bef, 0x9de0a587d0f0262c])
+ self.sub([0x8289045e8e83ad39, 0xe7b32f002f3cea96, 0x2e6bc43dc86c70ba], [0xbef368812bcc3809, 0xd462a8dd289746e6, 0xbe207089be0e73b7], true, [0xffffffffffffffff, 0xc3959bdd62b77530, 0x1350862306a5a3af, 0x704b53b40a5dfd03])
+ self.sub([0x34410b8d525941bb, 0x971f0da92aa2a05a, 0x80339ea403f7dadc], [0xdcc7b9ea1f2d54d8, 0xd217a894599ce711, 0x9ac8f09a73ecbdd6], true, [0xffffffffffffffff, 0x577951a3332bece2, 0xc5076514d105b948, 0xe56aae09900b1d06])
+ self.sub([0x5e34785042a2534a, 0xe13de58fe954130b, 0x28e081a718bd275d], [ 0x6925fda56dc3c46, 0x9f25e3af735e60a3, 0x1f5942aab9e3ee99], false, [0x57a21875ebc61704, 0x421801e075f5b268, 0x9873efc5ed938c4])
+ self.sub([0x834f015169a27e73, 0xb34e839d6c539b5e, 0x29c0e8d89770fceb], [0x1cae13213cd03276, 0x99541913601494ac, 0x6610ed3b1da11710], false, [0x66a0ee302cd24bfd, 0x19fa6a8a0c3f06b1, 0xc3affb9d79cfe5db])
+ self.sub([0xd40b65a44066aeb7, 0x344966da14f717e1, 0x4b5ecc9baa60fee7], [0xdf12a97f424b2541, 0xb336dfbc0d4d98a5, 0x4fe0d6abec9fc1c], true, [0xffffffffffffffff, 0xf4f8bc24fe1b8975, 0x8112871e07a97f3c, 0x4660bf30eb9702cb])
+ self.sub([0x1d1470b583aace5b, 0x60a785e4345cd049, 0xdf0ac81e188d7924], [0xadb1e316d1bd87a3, 0x517e0ebca1b52d59, 0x6a912f9e9136db3f], true, [0xffffffffffffffff, 0x6f628d9eb1ed46b8, 0xf29772792a7a2f0, 0x7479987f87569de5])
+ self.sub([0x82cf682430d3f735, 0xfda25e10155db64, 0x194c674d30121129], [0x8248cac41fbc9f68, 0x541e588ada19efb4, 0x403d5521940dedf1], false, [ 0x869d60111757cc, 0xbbbbcd56273bebaf, 0xd90f122b9c042338])
+ self.sub([0x7556d7ece4f31c77, 0x3e0f743180b2cb8b, 0xf6636d1911ed337f], [0xded2edb7df10b33d, 0xcdc16011b866c7cb, 0xad2b063c4efe87a8], true, [0xffffffffffffffff, 0x9683ea3505e26939, 0x704e141fc84c03c0, 0x493866dcc2eeabd7])
+ self.sub([0x42489cc3c5e03359, 0x72a18a0fb3b26208, 0x88e882e1de6d57e9], [ 0x5370cabe3c86cc5, 0x87e2cd59eecab8db, 0xd51bfe832fc99406], false, [0x3d119017e217c693, 0xeabebcb5c4e7a92c, 0xb3cc845eaea3c3e3])
+ self.sub([0x34d1541f9a4de0bd, 0x6c5532efe4f66c87, 0x94eb413d27641716], [0xc20ff7b89105920c, 0x4fd1788d660e379a, 0xd9cd932deab8a02a], true, [0xffffffffffffffff, 0x72c15c6709484eb1, 0x1c83ba627ee834ec, 0xbb1dae0f3cab76ec])
+ self.sub([0x239815d989173a8e, 0xafa66d13857f5429, 0x7b1028f3d5dca6a2], [0xce6fb3262af9981a, 0x57de9fdcc5534318, 0xaeba0948302d5c5b], true, [0xffffffffffffffff, 0x552862b35e1da274, 0x57c7cd36c02c1110, 0xcc561faba5af4a47])
+ self.sub([0xe8888556fda5f97f, 0xc18f48e8c549bcd7, 0x6ec0b7fa502cd51b], [0x709a62242cc47e10, 0x2b47a97d7056af3e, 0xbde7924d7cf8ed73], false, [0x77ee2332d0e17b6f, 0x96479f6b54f30d98, 0xb0d925acd333e7a8])
+ self.sub([0x145c049a330b40d5, 0x3a177eb4da5fdd40, 0xe50d8750b3cc17a7], [0x8b8fd6877cf5b595, 0xf7ba6f89667d8959, 0xd62d4b1177e2a781], true, [0xffffffffffffffff, 0x88cc2e12b6158b3f, 0x425d0f2b73e253e7, 0xee03c3f3be97026])
+ self.sub([0xad3dbffef5c8e77f, 0xa9de1d759e0d1d7d, 0x6af3e70c2e7048a6], [0x3c32f39c87434f62, 0x6abc108e07cad8cc, 0x89ce29328236d5cb], false, [0x710acc626e85981d, 0x3f220ce7964244b0, 0xe125bdd9ac3972db])
+ self.sub([0x9a40c2310920a8e0, 0x8819889b8ca4f03b, 0xf22dce3dd710f3cb], [0x7a1c872dab490bf2, 0xa23f2a61286828c2, 0x31b007348120c86e], false, [0x20243b035dd79ced, 0xe5da5e3a643cc779, 0xc07dc70955f02b5d])
+ self.sub([0xf851c6e6c2e884bf, 0xfd7104b6cdefd47d, 0x3bc989644193dcce], [0x839e85d753b8e8f5, 0x612b64b59f6c897, 0x7f4c4b51643a0709], false, [0x74b3410f6f2f9bca, 0xf75e4e6b73f90be5, 0xbc7d3e12dd59d5c5])
+ self.sub([0x854d6bf2c88f9ce5, 0x9695e671173a4560, 0xb15a3dc419f69e59], [0xffcb8651aa2220bc, 0x5468ca1e47ae7db5, 0xc803ccc1a8a80ba8], true, [0xffffffffffffffff, 0x8581e5a11e6d7c29, 0x422d1c52cf8bc7aa, 0xe9567102714e92b1])
+ self.sub([0x8d671f7716b62e5a, 0x4ab8188886aec490, 0x574430264b12fef7], [0xfb858627a7b27492, 0xc60a1364898a1fcd, 0xed504e7ef14a9ac1], true, [0xffffffffffffffff, 0x91e1994f6f03b9c7, 0x84ae0523fd24a4c2, 0x69f3e1a759c86436])
+ self.sub([0xbf72ecec16a95889, 0x3593adefbacaddb, 0x352476dcfa3087e2], [0xd548d28613136e40, 0x1be206d151dce132, 0xe729aa7b6c6094a6], true, [0xffffffffffffffff, 0xea2a1a660395ea48, 0xe777340da9cfcca8, 0x4dfacc618dcff33c])
+ self.sub([0xe1f9439739d66177, 0x5b893072a0d85095, 0x5968a5d993cb543b], [0xac728147e0587cff, 0x682be4da96c4cde5, 0x9c99a19545f70390], false, [0x3586c24f597de477, 0xf35d4b980a1382af, 0xbccf04444dd450ab])
+ self.sub([0xa1b6b638906b7705, 0xb46b198f874b335f, 0x32294e39dbbec0c6], [0x3053d75ad7522d49, 0xfeea31d6bcc7718a, 0x8979e4bf2fc17097], false, [0x7162deddb91949bb, 0xb580e7b8ca83c1d4, 0xa8af697aabfd502f])
+ self.sub([0x64463931a35ea66e, 0x173c26cc5e2dc009, 0xf360885be5e7ad43], [0x60d4af119da0bed8, 0x8266af9028f1227f, 0x97e5afcff247d9cc], false, [ 0x3718a2005bde795, 0x94d5773c353c9d8a, 0x5b7ad88bf39fd377])
+ self.sub([0x5a9202723b08b3f6, 0x981720f1f2942d17, 0x853462276cf80e19], [0x90258a529a168695, 0x5968071f42510a52, 0x15ee3845eebf1691], true, [0xffffffffffffffff, 0xca6c781fa0f22d61, 0x3eaf19d2b04322c5, 0x6f4629e17e38f788])
+ self.sub([0x2b3822164b18afe7, 0xbe4c22284c232664, 0xa4ed0f59e183628f], [0xf74fc585b769d047, 0x677c7ebd324a6a20, 0x7a269d0f3e0c8a89], true, [0xffffffffffffffff, 0x33e85c9093aedfa0, 0x56cfa36b19d8bc44, 0x2ac6724aa376d806])
+ self.sub([0x905349b28170907a, 0x77eec25ec842ebc2, 0x3c11d6800ab535b3], [0x152d606ed70ba9aa, 0x71cbdf5d41e73ff, 0xe950fa46ffd6e798], false, [0x7b25e943aa64e6d0, 0x70d20468f42477c2, 0x52c0dc390ade4e1b])
+ self.sub([0x3ddcb05a9245ed60, 0x50d0fe4d2e1b2fc9, 0xb94aa1935c71dc79], [0x8bf7b8d2db9e71a5, 0x517c0f04f9ebb233, 0x8d4511b52bf6fd09], true, [0xffffffffffffffff, 0xb1e4f787b6a77bba, 0xff54ef48342f7d96, 0x2c058fde307adf70])
+ self.sub([0x55c82e0257cc2057, 0xaf5df16bececb6f8, 0x7110b7b3b5fa149a], [0xc338985e6374c415, 0x37ad97eca6cf0bd4, 0x494bb1c7c37fdb5e], true, [0xffffffffffffffff, 0x928f95a3f4575c42, 0x77b0597f461dab24, 0x27c505ebf27a393c])
+ self.sub([0x8cafe45525038609, 0xa5e561ca87f6eb2a, 0xa7fc28fa7bde5886], [0x7ba93ce5b3beeae2, 0x3497e0aed3070df, 0xb8e2408f1f3f85c7], false, [0x1106a76f71449b27, 0xa29be3bf9ac67a4a, 0xef19e86b5c9ed2bf])
+ self.sub([0xbccf9583ee2eb9ba, 0x8710828d05b1c3e9, 0xc730537ffe1f5930], [0x44a6bb1df1284d2f, 0xd45b18a2417c6dcf, 0x7d9e4d0069381d11], false, [0x7828da65fd066c8a, 0xb2b569eac435561a, 0x4992067f94e73c1f])
+ self.sub([0x7ee57c27cb2c5e50, 0x19c40dfe746e912, 0xc3b6b98e1e52cb02], [0x1a0f6d88a91e79a6, 0xa8c74dab5e59e24a, 0xcd71e3c602445463], false, [0x64d60e9f220de4a9, 0x58d4f33488ed06c7, 0xf644d5c81c0e769f])
+ self.sub([0x2c7e6193b4ef2733, 0x24f2327c9888df10, 0x73bd4697b2cdc090], [0xcad2fc2dc467812d, 0x7315c33aa619c1a, 0x65e658be618de598], true, [0xffffffffffffffff, 0x61ab6565f087a606, 0x1dc0d648ee2742f6, 0xdd6edd9513fdaf8])
+ self.sub([0xc169c042f1537e34, 0x98905b6bc2a17bb7, 0x8fa7f6b47cdcd530], [0xef29ddc0cf1612f6, 0x247f9d8cab813926, 0xdb175f4cdf962524], true, [0xffffffffffffffff, 0xd23fe282223d6b3e, 0x7410bddf17204290, 0xb49097679d46b00c])
+ self.sub([0xd20aedfecd972b56, 0x267a51e2a9f0d6e, 0xd019a4232aff720d], [0x53b3a41a1c2ab6a4, 0xf1fe1597acfeb07e, 0x4b0eeec2642ade1f], false, [0x7e5749e4b16c74b1, 0x10698f867da05cf0, 0x850ab560c6d493ee])
+ self.sub([0xc5a8845f95ca19e5, 0x25aa8bde9442e9df, 0xff713193f8af8641], [0x221215b7d20984f3, 0x17c91d13543ce497, 0x16b70b1ab2e0363f], false, [0xa3966ea7c3c094f2, 0xde16ecb40060548, 0xe8ba267945cf5002])
+ self.sub([0xcadf947e178accf1, 0xb3a6b521ed1b7075, 0xcafc441c6724b077], [0xd52f28ddf6620338, 0x4dead2c50c33feff, 0x28fc52e52dca9451], true, [0xffffffffffffffff, 0xf5b06ba02128c9b9, 0x65bbe25ce0e77176, 0xa1fff137395a1c26])
+ self.sub([0x48e714e595d731ba, 0x1a775260b3e524a5, 0xef9646a7cabf7ad5], [0x5f2e02d48f91808d, 0x428a927b05ffb934, 0xf3d0e418eb038ce7], true, [0xffffffffffffffff, 0xe9b912110645b12c, 0xd7ecbfe5ade56b70, 0xfbc5628edfbbedee])
+ self.sub([0x43ca99432affd459, 0x17608844ebac2c74, 0xdcbf73920477c50d], [0x5bfb80b3da71d0f0, 0x36f0457d16ff939a, 0xd09a575cdd43f016], true, [0xffffffffffffffff, 0xe7cf188f508e0368, 0xe07042c7d4ac98da, 0xc251c352733d4f7])
+ self.sub([0xa60e090ade96369e, 0x2ecb6b47f07504dc, 0x7783ec21aa63cbeb], [0xc7783991802536aa, 0x4878f1c1678c9382, 0xd5505fd90acc546b], true, [0xffffffffffffffff, 0xde95cf795e70fff3, 0xe652798688e87159, 0xa2338c489f977780])
+ self.sub([0x4abf8a7fa7f00102, 0xdf86eaa03ad32097, 0xc760fff6b1a61481], [0xdd9cf32f8f4d69aa, 0x537eca35774dd0c5, 0xdf435717ce32c982], true, [0xffffffffffffffff, 0x6d22975018a29758, 0x8c08206ac3854fd1, 0xe81da8dee3734aff])
+ self.sub([0x322f240ece8092ec, 0x15c2e17030d0a7a9, 0x1ac8aecac7aacc62], [0x96d4a1b251214a89, 0xfa6c955f492cd278, 0x4b0991f9389ea0fa], true, [0xffffffffffffffff, 0x9b5a825c7d5f4862, 0x1b564c10e7a3d530, 0xcfbf1cd18f0c2b68])
+ self.sub([0x91e7155647fe905c, 0x1936977c38c81f6f, 0xbb9ceaa32fd62924], [0x58be72bc75a1d2c1, 0x8cd3f1b2805d731, 0xc668c16ebe00dd11], false, [0x3928a299d25cbd9b, 0x1069586110c2483d, 0xf534293471d54c13])
+ self.sub([0x265f28543399bd9c, 0x49c127be052c3c71, 0x20b652096e25798a], [0xa03902d8007bbb6a, 0x2491a7b7d957aaa4, 0x5da136d7a7c63f5a], true, [0xffffffffffffffff, 0x8626257c331e0232, 0x252f80062bd491cc, 0xc3151b31c65f3a30])
+ self.sub([0x7fe983dd77dd8a41, 0xe28eadf600262b35, 0xe78c42da596a1e07], [0x7080ef437eb4fbc8, 0xbe911d1fb6e6e5d1, 0x98da4852b77e5f85], false, [ 0xf689499f9288e79, 0x23fd90d6493f4564, 0x4eb1fa87a1ebbe82])
+ self.sub([0x76d097a9ec7abcbb, 0x536777cb5dc8bd25, 0xe7c1a0be2acc522], [0xcacce9dc01e87bde, 0x167ff36acffe1b2b, 0xc63d98791ac40b38], true, [0xffffffffffffffff, 0xac03adcdea9240dd, 0x3ce784608dcaa1f9, 0x483e8192c7e8b9ea])
+ self.sub([0xd22edfcfc97b9254, 0x9716cfe75dcbd190, 0x16cadb03a795962d], [0xef5ae188b4663201, 0x25c1455be2d1561a, 0xb16d079d990db0e6], true, [0xffffffffffffffff, 0xe2d3fe4715156053, 0x71558a8b7afa7b75, 0x655dd3660e87e547])
+ self.sub([0x9bb970a523b2f776, 0x7748ad7cd5502248, 0x308e47d0c2053856], [ 0x56fe0be6b5fb2be, 0x91ec33e5a93fe13b, 0xa7db9acbc0dd8e1e], false, [0x96498fe6b85344b7, 0xe55c79972c10410c, 0x88b2ad050127aa38])
+ self.sub([0x433b713023495115, 0x286f05a7027e5bb7, 0x6585d76724c457e2], [0x8a1378aa493dcc5e, 0xbc20c543a8f85867, 0x3117bee32f73895d], true, [0xffffffffffffffff, 0xb927f885da0b84b6, 0x6c4e406359860350, 0x346e1883f550ce85])
+ self.sub([0x9258865e750ad11e, 0xb8a3df7c140e7e8b, 0xcbb00f69fe4946bb], [0xe668f8dc869351b1, 0x38e2366c80e0f5d8, 0xc23bf1f823682615], true, [0xffffffffffffffff, 0xabef8d81ee777f6d, 0x7fc1a90f932d88b3, 0x9741d71dae120a6])
+ self.sub([0xf566a322987d1c28, 0x5699793f4d3c3f80, 0xe5b63fc5883a30d3], [0x14613ea11005b2bf, 0x6d88585f7a96a9f3, 0x7c039cb32746e4], false, [0xe105648188776968, 0xe91120dfd2a5958d, 0xe53a3c28d512e9ef])
+ }
+
+ func test_sub_3_by_4() {
+ self.sub([0x9b7e01f7d88c4307, 0x89b58f02a48456de, 0x6332134abd6214b9], [0x91a3c52b88b32786, 0x83c84b2f2fa70f6a, 0x462d2cf7b64a4e04, 0x5b7b2bbd60c7af06], true, [0x6e5c3ad4774cd87a, 0x17b5b6c8a8e5339d, 0x4388620aee3a08da, 0x7b6e78d5c9a65b3])
+ self.sub([0x2ee82821f6f28720, 0xf6313013fdd7a76a, 0x2c6977603ce1a759], [0xab6ed8a8f994b0d4, 0x447909fb42696897, 0xac222a3c2526cc93, 0x617b6bdc748bff77], true, [0x54912757066b4f2b, 0xea6f1e26b4891e89, 0x4a0f05d7d8b0dad6, 0xcaee0b83c855a7e2])
+ self.sub([ 0x679904c54d994a8, 0xc81f6ca4e4b51320, 0xd16fb7da2d8c2324], [ 0xca4bbf993a9c0a0, 0x9531da98bda18808, 0x4d213b7d5ad2c524, 0x5a5739af2e3e9060], true, [0xf35b44066c563f5f, 0x7147b5b397380ca0, 0x7afe312789e24dfc, 0x77187e2aff4d92c4])
+ self.sub([0x5a965ccd82775713, 0xdcd7fdb0a81f377, 0x46381a02f018e739], [0x361be7684debbf75, 0x554cb6f8e286f4e5, 0x9c052303825b99f0, 0x7646575ce642af86], true, [0xc9e41897b214408b, 0x549a5d49ff0622d, 0x71c85cd788265986, 0xcff1c2a609d637b3])
+ self.sub([0x18e20f588c29f047, 0x7bc08d03cdd30669, 0x8489bfe7a1e79cff], [0x2e4c731527f69593, 0x46ede30c7cd42a09, 0x6d4e82015a3f5693, 0x9e03e7a9eec520eb], true, [0xd1b38cead8096a6c, 0xd1f42c4c0f55c63e, 0xe720b027393afd5, 0xe685d83db3227c14])
+ self.sub([0x210b5c5ba53e3030, 0xaf80a05f95318a91, 0xebb16d285423d5d4], [0xde0123f043d7841f, 0x7d917df4400fdfd3, 0x2737ea6464898986, 0xc98c5361889888fe], true, [0x21fedc0fbc287be0, 0xa379de67652e505d, 0x8848b5fb30a8010b, 0x222519c6cb8b4cd6])
+ self.sub([0xd7e34ce10ecd4e72, 0x5652a220dc67bd4d, 0xdc9520360fbf5a6e], [0x356453ee0eb2ba90, 0x4c8cfea93db0c307, 0x7cf6b0aaab1efc91, 0x7c0c8ac99a16773a], true, [0xca9bac11f14d4570, 0x8b564e37d11c8b6a, 0xd95bf1763148c0bc, 0x6088956c75a8e334])
+ self.sub([0x5e12fec61b02d800, 0x28422909ea401f66, 0xae0e8487a58433b2], [0x8b5c671d112688e7, 0x49dd64e984d2464c, 0x83365d7ad86ac40b, 0x434fab563fc06c66], true, [0x74a398e2eed97719, 0x143599dc963091b3, 0xa50bcb8f11d55b5b, 0x6abed93165c3c74c])
+ self.sub([0x927c1970a77256d5, 0xea1dc6feab512739, 0xdbbefe16ff39c450], [0xf3c3b2c49ca87b32, 0x58c4cbffeec61376, 0x9adc43b7e1faa482, 0x2609ce140122afdc], true, [ 0xc3c4d3b635784ce, 0x39b74d70b8ac435f, 0x4f418346c95682b7, 0xb5b53002fe171474])
+ self.sub([0x8692a7396252edcd, 0x3bd9bb58874b0147, 0xa0eaa6b30e6fe33c], [0xafbdfd592f73047c, 0x758c1acd8e0d9a75, 0x89447e6165ac6977, 0xcdba38ca13bca2da], true, [0x504202a6d08cfb84, 0x11068c6bd4455357, 0xb2953cf7219e97cf, 0xd3306de8fab34062])
+ self.sub([0x38168348e527f8cd, 0x89a8ebdaa085b0ef, 0xce027251736b9fb], [0x2b4744f47be3f27d, 0xadbf813ce60fe790, 0x856526f223f9ce5d, 0x22640f7f3e14bc4f], true, [0xd4b8bb0b841c0d82, 0x8a57020bff18113d, 0x443c4e87c8be291, 0xea7c17a5d921fdac])
+ self.sub([0x1f7d21c469b9481f, 0xda3de733071b1f09, 0xae58fb8bb9aec893], [0x9cf89ce3c586130d, 0x48e46dd376269579, 0x86023ba89837c963, 0x9aab5a30a7c0962], true, [0x6307631c3a79ecf2, 0xd698b3f0f392b2a6, 0x543bab8a6ee355a6, 0xa4ae45e8af32bf31])
+ self.sub([0xcade67bafc598981, 0xa76a8d0cb794ec82, 0x9baefed10df7491b], [ 0xb0c95b8902d5d4a, 0xda4ca2bcf8f23420, 0x59c5896b913b4039, 0xe5bf8da24dec0a2b], true, [0xf4f36a476fd2a2b5, 0xf091c4fe03675561, 0x4da503a12659ac48, 0xb5ef712ec00b3ef0])
+ self.sub([0xae29e47f2104f955, 0x6d4335cf422632ce, 0xc3d240fe9c065f0b], [0x77a7478524219415, 0x1d106705c64afd21, 0x6f7490ba7b43c322, 0xa337e629dffd0481], true, [0x8858b87adbde6beb, 0x91197d795ab9fc33, 0xfdcea514c6e26fac, 0x209a5ad4bc095a8a])
+ self.sub([0x67866f201c8e7e08, 0xf6a47fdec324503c, 0x94b99b78061f178d], [0xf633d29e7fab846e, 0x3685b971048f2d1a, 0x5554ddc73a2c87f8, 0xfe390ae1663f0dca], true, [ 0x9cc2d6180547b92, 0x3100b5af17ff50ee, 0xa14fa21788f7c843, 0x968090969fe009c3])
+ self.sub([0x8f72eaec4dd07c93, 0x1ad4f51bbb934df2, 0x708e134958a8946f], [0x179a5bc36cc6200d, 0xd522bad890d4663e, 0xb427ed4a59d1df4, 0xfc8ca9df66e39e1a], true, [0xe865a43c9339dff2, 0xba503013bcfc1655, 0xf92764715f62ffd, 0x74016969f1c4f655])
+ self.sub([0x65ce08419c236865, 0x957096706ffd0b6a, 0x19ca43702dfbb006], [0x27dd59548e6eb7de, 0xbe534f886249b9fe, 0xc4c4e70778c643ca, 0xf50138471ddcb855], true, [0xd822a6ab71914821, 0xa77ab8b939d9ae66, 0xd0abaf68f736c79f, 0x24c90b29101ef7b1])
+ self.sub([0xb71edd8a3802ed00, 0xe12c446c7f0cbb7a, 0x8b4da5ca43f1234d], [0xd155099fc8f51c01, 0xad94aae105511582, 0x5a7e33230b4b01f5, 0x3937dd6eec2908c7], true, [0x2eaaf660370ae3ff, 0x98a32a932b1d77e, 0x86ae114973c1b985, 0x5215c85b57c81a86])
+ self.sub([ 0x5c470d9eecffcb8, 0x21d2578647252f27, 0x44718604d132d68f], [0x23aaae05ffc660be, 0xbbf46d54654a5d7e, 0xaccfe8b9e9852eb5, 0xd45c21c49212bfe1], true, [0xdc5551fa00399f41, 0x49d0038589859f39, 0x75026ecc5da00071, 0x701564403f2016ae])
+ self.sub([0x72dfdcf5fcc85418, 0x8029f464deae7446, 0x29dcb34d179225a7], [0x36dad7f83eed55e5, 0xf981e4b944950912, 0x830fc55a973ef3f0, 0x54f28bb80da16068], true, [0xc9252807c112aa1a, 0x795df83cb8334b05, 0xfd1a2f0a476f8055, 0xd4ea279509f0c53f])
+ self.sub([0xf93fbda6975dc56e, 0x68c3b3ca865aa60f, 0x98ad9f0afcf6cbec], [0x5dfbc86c15eec231, 0xd1177359338740c6, 0xef12336f42d6789b, 0x5ce34811f55d9d8c], true, [0xa2043793ea113dcf, 0x28284a4d63d684a7, 0x79b1805b43842d74, 0x3bca56f907992e60])
+ self.sub([0xcb5f478fe1a77d07, 0x473223e29f291fb0, 0xd5e8818fefbcc8e], [0xcba6ab655ab350bc, 0xa9ce293a0e4f364, 0xc0df6373cca8aec0, 0x998b41277f82ae25], true, [0x3459549aa54caf44, 0xc0c264fc40c289a2, 0x8652c06ed28070ef, 0x73d346f17f791e69])
+ self.sub([0xccc87c5cc04549c1, 0x834288d3e8f2bbf5, 0x2ef8b09ca31257dd], [0xfa2e1b1f36660713, 0xbbe076b7ed6986d, 0x49505d0703175510, 0xac6c477d628d2dff], true, [ 0x5d1e4e0c999f8ed, 0xc10a74f1416eb154, 0x39f22bcce5db66e4, 0x828c691f408529de])
+ self.sub([0x8f610d5aeb6d7fbe, 0xef06539e63f5b9c6, 0xf2ca19baec64645d], [0x97d702bac3959ca8, 0xb0b3363a9f6f5f1f, 0xf430ec637230f32a, 0x9a0845201f8bcc81], true, [0x6828fd453c6a6357, 0xdeadd7204bfe209e, 0xfad5673af1c4c69c, 0x58c1d49accd897dc])
+ self.sub([0x73155afeac72909a, 0xdb362c861c1708f, 0x1a3e548d911f31ff], [0xb4b8887de9033eed, 0x4f947703f754f02, 0x201af7b3647cb2d2, 0x96531add8447f853], true, [0x4b47778216fcc113, 0x6e1c138e6cfd4197, 0xed986b14fd44bdbc, 0x83eb39b00cd739ac])
+ self.sub([0x3acc9508ef4a0e28, 0x1a9b56b233289a96, 0xcb739fbb5080ccd2], [0xc175b8c2ae25ff1f, 0x253f1938660b4b03, 0xaada5704a7b08c8d, 0x8f4512853f951912], true, [0x3e8a473d51da00e1, 0x158d7bd0893ec324, 0x6fc0ffad8b780e09, 0x3c2e8d3610ebb3c0])
+ self.sub([0xc15768621051d395, 0x473cd75bd6442561, 0xe0882423ab12bed0], [0x3bb5558c683f936a, 0x4330e6b8e6efd121, 0xc98c5b53070333ca, 0x4e0f36013464ba10], true, [0xc44aaa7397c06c96, 0x7e2681a929620273, 0x7db07c08cf40f197, 0x9278ee2276ae04c0])
+ self.sub([0xc70e7f83b0bd54f0, 0x9fa6f6f35cef2405, 0x4ec2a1321903f178], [0xd09b4df39ab08e13, 0x63bef15a64dc8536, 0x6174dd45594a1501, 0x2392887fb8062be2], true, [0x2f64b20c654f71ed, 0x634f8e294be0cfba, 0x3e3219ae03a50f04, 0x2b3018b260fdc596])
+ self.sub([0x18d3ee1939bffdcb, 0x857bc9d4c52645, 0x6d6a7bba4caa4647], [0xbf09b0679851cbd6, 0xa0fd95934fcba2f1, 0x8357a228d8fe317, 0x2bb330352fc7b374], true, [0x40f64f9867ae3429, 0x77d65885e9f45ad9, 0xf85001a74735432e, 0x41b74b851ce292d3])
+ self.sub([0x7501bf22fce061c5, 0x7e98de5866bee119, 0x2a9d3aa7e26952af], [0xbf966a339fc94719, 0x122c3f59f8ae4d53, 0x38e95483a545f799, 0x5b6a30016e5fd280], true, [0x406995cc6036b8e7, 0x62d57fc904321472, 0x45af89d4c178e97f, 0xcf330aa67409802f])
+ self.sub([0xf5716d1fc4401ef8, 0x8b1992b3e5d2043f, 0xd214a36d9e2800ca], [0x45b8bbe5937d028e, 0xf4ba986e6b0535b4, 0xb064be07cc59aefe, 0xc74a2c3d34c45ebc], true, [0xba47441a6c82fd72, 0xb6d4b1593ae943, 0xdab4d4ac19785541, 0xaca77306963a20e])
+ self.sub([0xc360c62f9e894e7b, 0x4d5b27a211963f43, 0x74b8370029d6c003], [0x7222a18fea49291a, 0x4d4a26c29679b42f, 0x88efc7c3e349c0a7, 0xceb32ba63c87bc3f], true, [0x8ddd5e7015b6d6e6, 0x76169f6d080f9a4b, 0xc46b5fde2e4c7e9b, 0xa6050b59ed4f03c4])
+ self.sub([0x490b3f4f084c5e51, 0x7f8f4eb47400ff56, 0x1cd1073265ef0157], [0xa4ee188720d719bf, 0xde7cd5c9a9ca1af4, 0xc08fd89aa0574eaf, 0x428f5a5aec24d1df], true, [0x5b11e778df28e640, 0x6a8e69855e82435c, 0xbeff7619d3a9b0a6, 0xda41acd779ca2f78])
+ self.sub([0x7d6d422f4091217b, 0x6bc37aa6c881c569, 0xae02afea89cdc3d6], [0x31495877e4dc6d72, 0xf99e502319b6f480, 0x63516f4d0d692629, 0x9a7d0c0b94bc62d9], true, [0xceb6a7881b23928d, 0x83cef20c26da2cfb, 0x8720b59bb189f40, 0x1385a3def51160fd])
+ self.sub([0x75f5dec11f48c4f6, 0x76bbff7d6f9e5856, 0x52d065b19c632ab6], [ 0xbbe052227167e79, 0x2f8b13ec3ba59119, 0x47404f75def91523, 0xf2eda5f73bbb57bd], true, [0xf441faddd8e98187, 0x466acad4e3a333dd, 0x2f7bb00790a54332, 0x5fe2bfba60a7d2f9])
+ self.sub([0x110ccd993a457641, 0xc9010ee75032f9e2, 0x48bd28eddfb9a83b], [0xe65fba3f5d04f248, 0xc943dd37b2d1abd4, 0xcdacc2d171e13680, 0x319c24ec6b06fb06], true, [0x19a045c0a2fb0db7, 0x47c8f0618773ca6c, 0xfb544c15de51c362, 0x1721040174b2ad35])
+ self.sub([0x5b9922e8484f673e, 0xa8350efce0bea33e, 0x25c25e6301ac1c2c], [0x2cc8134348467699, 0x31ff4d4ae0e1ed35, 0xb2ca3555b849b2b7, 0x2021179794c1dfe1], true, [0xd337ecbcb7b98967, 0x2999d59d676d7a08, 0xf56ad9a72874f087, 0x5a146cb6cea3c4b])
+ self.sub([0x813383143c33bcbc, 0x58f7ffadc3f619e7, 0x25515108a8878fc5], [0x2a3120d67eee6539, 0x54a6a7d5458310b7, 0x4856ed1330e5e50a, 0x39d4e5b7e8de31f4], true, [0xd5cedf2981119ac7, 0x2c8cdb3ef6b0ac05, 0x10a1129a931034dc, 0xeb7c6b50bfa95dd1])
+ self.sub([0x9ea66e1743c7062a, 0x59fc8dc35da959f6, 0x6e1d7f16b42ae1db], [0x4beeebb400cb932c, 0xd3d8aa0fda515466, 0xbe19d5f500071a80, 0x3017fa0b61a26c9d], true, [0xb411144bff346cd3, 0xcacdc4076975b1c3, 0x9be2b7ce5da23f76, 0x3e05850b5288753e])
+ self.sub([0xf5734c3f6f7488ab, 0x76b7172b06c0a9a6, 0x76815c1f5fe9fa68], [0xdb6e1bba7644ae67, 0xd2a4982bc0083058, 0x13f0bc8522dc1a57, 0xd71b1dfcde25f70a], true, [0x2491e44589bb5199, 0x22ceb413af6c5853, 0x62c65aa5e3e48f4e, 0x9f663e2281c4035e])
+ self.sub([0xdcad0a8dea2d543d, 0xe21de400f5258dc3, 0x1f6e088f5daa97b7], [0xee4df061153cddad, 0x3ee692a7b3786042, 0xf762d16b5b4cdb75, 0x14472ad724bb11c6], true, [0x11b20f9eeac32253, 0x9dc677e636b4f3fa, 0xeabb129599d8b24e, 0xb26ddb838ef85f1])
+ self.sub([0xccae496d581b6332, 0xe0981f5c8ba3ee2, 0xbb9166dad64fc1a0], [0xac3d55af2d4e9a25, 0xfe4ddf52cac93fbc, 0x4b6c19a4c0b513b1, 0x24704901da848f7], true, [0x53c2aa50d2b165da, 0xce606a1a8d522375, 0xc29d685108052b31, 0xb94a624ab8a778a9])
+ self.sub([0xef9c21dff17850a9, 0xe69f04ee90a74fd9, 0xf1aef3f868aa8463], [0xde91a8be3d9f2303, 0xa6d521353861fc64, 0x9e34131a02677185, 0x9306c9c3b500c841], true, [0x216e5741c260dcfd, 0x48c700aab9165445, 0x486af1d48e3fde54, 0x5ea82a34b3a9bc22])
+ self.sub([0xc7d8fda1109fe346, 0x621b6cace35add32, 0xe9a8b757973ef1a1], [0xd15929304e81188e, 0x83e034f5a159806, 0x4c28e8637a69b40a, 0x77e620aae646803e], true, [0x2ea6d6cfb17ee772, 0xbf9afa51b68a4b40, 0x15f2844968f12928, 0x71c296acb0f87163])
+ self.sub([0x4eb654ffc99b8ab4, 0x10b9f54784cb702c, 0x6b8885a3de23f67a], [0x40d5032029cccf98, 0x4ed2e7bec5d5cbab, 0x9e93a30858687771, 0x16c66137bdd98dee], true, [0xbf2afcdfd6333067, 0xffe36d4103c5bf08, 0x7226523f2c62f8bb, 0x54c2246c204a688c])
+ self.sub([0x5937b8ef4994c464, 0x82d37cb8d41daed1, 0x67dca671f9d4f2c6], [0x6c4d41334c2e17d3, 0x7486a388daacfb47, 0xfeb1d687847cd29c, 0xbb15170293109a81], true, [0x93b2beccb3d1e82c, 0xe4b115666ee7c91c, 0x8421a6314fa0dc34, 0xacc78f6f66c45845])
+ self.sub([0x468a099cbc3241e3, 0x4928c7f584586475, 0xa6df00ff85c0b79c], [0x1063cc339defc0af, 0xd2ef928d5000626e, 0xdf5215bb3136b72b, 0x5d5be9ec97ace6fa], true, [0xef9c33cc62103f50, 0x739a770f6c31df74, 0x69d6b23a5321ad4a, 0x49831712ee13d0a2])
+ self.sub([0x5d561e06d5e18b89, 0x1db8b95246508be3, 0x8fd953b2d3768422], [0x78b1712788384eae, 0xb7d5299ff5dd116d, 0xea6374642ce7d2f5, 0x321b569bd6acadf8], true, [0x874e8ed877c7b151, 0xa580f466e0047a1b, 0x335544ee1968b8ee, 0x5dbdfd16fcc9d62a])
+ self.sub([0x2276d7cee55cc345, 0x6fa78ac83356edb0, 0xa405176575d3fbe6], [0x3429e2b35bae8753, 0xc2b7b4e1d737957e, 0x52c0a41e5102881d, 0x900869d1a731bcc3], true, [0xcbd61d4ca45178ac, 0x5fbf22ed0e252dc7, 0x1ce6e6a9e2546593, 0x13fcad93cea23f23])
+ self.sub([0xa4f4a22428f51c57, 0x5d54f4d440809e93, 0x417ff09e169dccd3], [0x51d48d129b066b8c, 0xc55282968ee0b8de, 0xd01df0305934ef28, 0x7475b14220e2fda0], true, [0xae2b72ed64f99473, 0xdfa21f8d9a146378, 0x8d3704a3e74baf6a, 0xcd0a3f5bf5bacf33])
+ }
+
+ func test_sub_4_by_1() {
+ self.sub([0x4c6c1a8932d691ad, 0x67de8af3ce409553, 0x246c185b0cb084f8, 0xf7db08eade563b2c], [0x5945efa4229432b7], false, [0x4c6c1a8932d691ad, 0x67de8af3ce409553, 0x246c185b0cb084f8, 0x9e951946bbc20875])
+ self.sub([0x62bb5d3f979f4976, 0x7d9c701c084c1187, 0x9adefefbdad88cda, 0x4944fb64aab062c2], [0x17502b8b2e20f74c], false, [0x62bb5d3f979f4976, 0x7d9c701c084c1187, 0x9adefefbdad88cda, 0x31f4cfd97c8f6b76])
+ self.sub([0xf83bae1e4779f2a1, 0x3ec70153056e23f, 0xed6323c5fe4baa1e, 0x9e49f3352daccf70], [0x25dc6f3f45c3fb4f], false, [0xf83bae1e4779f2a1, 0x3ec70153056e23f, 0xed6323c5fe4baa1e, 0x786d83f5e7e8d421])
+ self.sub([0xe42d4fbdd5944beb, 0x71aa4e6ff2eeb173, 0xdfc3c7fb9ff43004, 0x475a8f7a6b2911e1], [ 0x11329d5afba83d], false, [0xe42d4fbdd5944beb, 0x71aa4e6ff2eeb173, 0xdfc3c7fb9ff43004, 0x47495cdd102d69a4])
+ self.sub([0xc6fcc8a403351501, 0x8710ae8d3258e5fa, 0x73afafb6d7db7cfd, 0xd9074568f0a7f61e], [ 0xa93750328e778ca], false, [0xc6fcc8a403351501, 0x8710ae8d3258e5fa, 0x73afafb6d7db7cfd, 0xce73d065c7c07d54])
+ self.sub([0xfdd7008b9ba0a776, 0x9ae832a9cf0b4905, 0xccb27222be404a53, 0x335aa892c9e03c4f], [0xf1ee4b1473e0db09], false, [0xfdd7008b9ba0a776, 0x9ae832a9cf0b4905, 0xccb27222be404a52, 0x416c5d7e55ff6146])
+ self.sub([0xc2fbc0dd22d49183, 0x61654aa3ac128fa0, 0xa3193e4ab4d2712e, 0x83305d80b7f59efd], [0x35d4befaf3650d9d], false, [0xc2fbc0dd22d49183, 0x61654aa3ac128fa0, 0xa3193e4ab4d2712e, 0x4d5b9e85c4909160])
+ self.sub([0x306d96692ea335bf, 0x38fe183b5ad209a4, 0x41112724a326a79, 0x48ef9253d50fb096], [0x368dd7dfe96e6a40], false, [0x306d96692ea335bf, 0x38fe183b5ad209a4, 0x41112724a326a79, 0x1261ba73eba14656])
+ self.sub([0x5bf1c30d9035d733, 0x6e1aefd4978fef4b, 0x8657375d995d4a0c, 0xb8fde4681b025c75], [0xff31d853b5d1d30a], false, [0x5bf1c30d9035d733, 0x6e1aefd4978fef4b, 0x8657375d995d4a0b, 0xb9cc0c146530896b])
+ self.sub([0x70e4f7089db5a5c9, 0x51c01b6648a01d3, 0x124ec09baa6abbec, 0xa58fc7ab02cca9c9], [0xf29f704e02a20ad5], false, [0x70e4f7089db5a5c9, 0x51c01b6648a01d3, 0x124ec09baa6abbeb, 0xb2f0575d002a9ef4])
+ self.sub([0x28d3271ce7fe03eb, 0xce8515a529ea7f77, 0xcbd497cc320216d, 0xc9968613346fd556], [0xab6bf4e993dc1d9e], false, [0x28d3271ce7fe03eb, 0xce8515a529ea7f77, 0xcbd497cc320216d, 0x1e2a9129a093b7b8])
+ self.sub([0x17bcfc8a35f2a823, 0xbf4ffac5a5f68576, 0xd0cbde82bb711457, 0xac96159e295467b0], [0xfc252a5dff52cdc8], false, [0x17bcfc8a35f2a823, 0xbf4ffac5a5f68576, 0xd0cbde82bb711456, 0xb070eb402a0199e8])
+ self.sub([0xda37afd7de834e70, 0x1112443c63210c98, 0xf6f6c8fddfcf2dd3, 0x3846e14cf3773353], [0x9574e2b643eb8d65], false, [0xda37afd7de834e70, 0x1112443c63210c98, 0xf6f6c8fddfcf2dd2, 0xa2d1fe96af8ba5ee])
+ self.sub([0x881d2727c0799ef6, 0x823d6082479307a9, 0x4f1c89ef0059f162, 0xa04e0e5c4fcb092d], [0x11325915209dabfc], false, [0x881d2727c0799ef6, 0x823d6082479307a9, 0x4f1c89ef0059f162, 0x8f1bb5472f2d5d31])
+ self.sub([0xa0d1baa76ca13cbc, 0xb07c99b643989952, 0xda5333597286b610, 0x2256ffe7fb0058a6], [0xc5f8048c8732f6b0], false, [0xa0d1baa76ca13cbc, 0xb07c99b643989952, 0xda5333597286b60f, 0x5c5efb5b73cd61f6])
+ self.sub([0xfb26d9c0c7f4e3d5, 0x3157cfe20dc9051e, 0x25d2563f0590ab77, 0x6a2114c4a5ebbf79], [0x1cbb15da84861fd2], false, [0xfb26d9c0c7f4e3d5, 0x3157cfe20dc9051e, 0x25d2563f0590ab77, 0x4d65feea21659fa7])
+ self.sub([ 0x52a01fdcced26d9, 0x29cfabf06ef78002, 0xc231c2ff592eb87c, 0x698eeffb5fcb812f], [0xe29abf5cc2946af8], false, [ 0x52a01fdcced26d9, 0x29cfabf06ef78002, 0xc231c2ff592eb87b, 0x86f4309e9d371637])
+ self.sub([0x70ef75658734e837, 0x627185f946538a60, 0x50dfdeb0af8d18af, 0xed1ea386ebf552a0], [0xcf4017398a9eaa18], false, [0x70ef75658734e837, 0x627185f946538a60, 0x50dfdeb0af8d18af, 0x1dde8c4d6156a888])
+ self.sub([0x980a56d848a47796, 0x3b072e55bebc4c40, 0x9655226bb8e4627, 0x97b939f595df9524], [0x463f672a071bcf8b], false, [0x980a56d848a47796, 0x3b072e55bebc4c40, 0x9655226bb8e4627, 0x5179d2cb8ec3c599])
+ self.sub([0xf545bd307e4635d2, 0x7955aa54ccd215f7, 0x140fb5c487198e97, 0xb98231ab8b266f19], [0x935d2cde5108e5df], false, [0xf545bd307e4635d2, 0x7955aa54ccd215f7, 0x140fb5c487198e97, 0x262504cd3a1d893a])
+ self.sub([0x72acbbb5187718a9, 0x6029780fa978ca6a, 0x7607a7ed776f0a68, 0x7874ae0a664ab771], [0xbc05dffa29ab7881], false, [0x72acbbb5187718a9, 0x6029780fa978ca6a, 0x7607a7ed776f0a67, 0xbc6ece103c9f3ef0])
+ self.sub([0xd1c859ef495922e0, 0x2e29c4a4a872233b, 0xf18e5bf2579cd803, 0x2658691d7793d167], [ 0xd344c8a2241872e], false, [0xd1c859ef495922e0, 0x2e29c4a4a872233b, 0xf18e5bf2579cd803, 0x19241c9355524a39])
+ self.sub([0x142d7ed1cad56535, 0xc2ea048bfa5401ab, 0x9771f7f4609b3bc9, 0xe565fcdf1411d67e], [0x4c2c79e273f6e149], false, [0x142d7ed1cad56535, 0xc2ea048bfa5401ab, 0x9771f7f4609b3bc9, 0x993982fca01af535])
+ self.sub([0xd5ee9aa2f58b83f3, 0x6842f31b63a98430, 0x5542f0fb0d9fb01, 0x73de8ebb7330d0e8], [0xc5ff5432c702be35], false, [0xd5ee9aa2f58b83f3, 0x6842f31b63a98430, 0x5542f0fb0d9fb00, 0xaddf3a88ac2e12b3])
+ self.sub([0xed461aee404fa0d9, 0x80a5b2f890d50c29, 0x72fec7eb29228b64, 0x74c46d0e8a5e87c1], [0xa1eec756bf591408], false, [0xed461aee404fa0d9, 0x80a5b2f890d50c29, 0x72fec7eb29228b63, 0xd2d5a5b7cb0573b9])
+ self.sub([0xa2d258364a4f8390, 0x104a5a116cf2c06f, 0xf36212faec2dba14, 0x8bdcc2a4c131604a], [0x4a0c0989a3b91fa0], false, [0xa2d258364a4f8390, 0x104a5a116cf2c06f, 0xf36212faec2dba14, 0x41d0b91b1d7840aa])
+ self.sub([0x6a0a0e2a7336fb50, 0xf379e1514025c4a3, 0x73b1712ec7223eb8, 0x88c54b5f4fd26af1], [0xbb987aa0ceec6fc0], false, [0x6a0a0e2a7336fb50, 0xf379e1514025c4a3, 0x73b1712ec7223eb7, 0xcd2cd0be80e5fb31])
+ self.sub([0x12cba353bd3b3510, 0xc2a67b3f3ab0cf2b, 0x564b9c99ef802382, 0x9dfc741acb137049], [0x851f2d7d03a257db], false, [0x12cba353bd3b3510, 0xc2a67b3f3ab0cf2b, 0x564b9c99ef802382, 0x18dd469dc771186e])
+ self.sub([0x42ca2362c0ac85c9, 0x157c986fec31c317, 0x365190c0fde3b96, 0xb0cf198992d341b2], [0x5028ef4a67356c0c], false, [0x42ca2362c0ac85c9, 0x157c986fec31c317, 0x365190c0fde3b96, 0x60a62a3f2b9dd5a6])
+ self.sub([0x9b765128c129182b, 0xf12bc027f5d257c4, 0x76b5aa5eab034ecd, 0xb7b7354b1cdff16c], [0xc08171b003b464ca], false, [0x9b765128c129182b, 0xf12bc027f5d257c4, 0x76b5aa5eab034ecc, 0xf735c39b192b8ca2])
+ self.sub([0xf59d95e184f00c9a, 0x6f7379c6b1042fb4, 0x6a825ef31f9c74b3, 0x3af068d135e8f849], [0x8ba4899bc3adcfc0], false, [0xf59d95e184f00c9a, 0x6f7379c6b1042fb4, 0x6a825ef31f9c74b2, 0xaf4bdf35723b2889])
+ self.sub([0xd21e0308a8b580de, 0x1168bf2168ee5086, 0xb36ff2bbdfd19b1e, 0xd1aa707b62682b50], [0xe8a38232a192d5f6], false, [0xd21e0308a8b580de, 0x1168bf2168ee5086, 0xb36ff2bbdfd19b1d, 0xe906ee48c0d5555a])
+ self.sub([0xcfc059b20399d59c, 0x80c44a6fd1857047, 0xf64a7088b299d31b, 0xc8eaaf3aae2b3498], [0xf087338fff171751], false, [0xcfc059b20399d59c, 0x80c44a6fd1857047, 0xf64a7088b299d31a, 0xd8637baaaf141d47])
+ self.sub([0xcb89131ed125162f, 0xd9c510a1a0fd5861, 0xe3d6c7049d3bbe22, 0x8c8ba33e5ed1a081], [0x4fa854304ffdb981], false, [0xcb89131ed125162f, 0xd9c510a1a0fd5861, 0xe3d6c7049d3bbe22, 0x3ce34f0e0ed3e700])
+ self.sub([0xbf2571a88c0b9ba7, 0x6379048dd260232a, 0x155716aa6ba40e13, 0xe591c6e40e63f795], [0x9ec30b9b7759ac07], false, [0xbf2571a88c0b9ba7, 0x6379048dd260232a, 0x155716aa6ba40e13, 0x46cebb48970a4b8e])
+ self.sub([0xf2debdcc797281d7, 0x965b8095d8f202a6, 0xc2809c30d367943f, 0x34f7013d6c0aa24], [0x632d24fdf49b8403], false, [0xf2debdcc797281d7, 0x965b8095d8f202a6, 0xc2809c30d367943e, 0xa0224b15e2252621])
+ self.sub([0xc01c909e5ec69fd0, 0x1b1cec4e03cb2960, 0xf418404d56d18ade, 0xc63ee79b609971a1], [0x52c88fcecb297ecf], false, [0xc01c909e5ec69fd0, 0x1b1cec4e03cb2960, 0xf418404d56d18ade, 0x737657cc956ff2d2])
+ self.sub([0x89904fc346e2a670, 0x94c80211a0e79129, 0xf62692c77d68c8e0, 0xe2d6003568b938d4], [0x250a0c8a0922859a], false, [0x89904fc346e2a670, 0x94c80211a0e79129, 0xf62692c77d68c8e0, 0xbdcbf3ab5f96b33a])
+ self.sub([0xf40bee75f0aaf708, 0xb5a4bcf005849aea, 0x7a36531826a4e6f8, 0xbcb8d960be1b2b5d], [0xfbc45dd6373aa9b9], false, [0xf40bee75f0aaf708, 0xb5a4bcf005849aea, 0x7a36531826a4e6f7, 0xc0f47b8a86e081a4])
+ self.sub([0xf591ff2ff155182f, 0x8ebd3fdecd1d9347, 0x73762cbc3053fa94, 0xd19cf21de146fa4d], [0xd508c57848c83a0a], false, [0xf591ff2ff155182f, 0x8ebd3fdecd1d9347, 0x73762cbc3053fa93, 0xfc942ca5987ec043])
+ self.sub([0x2ff84344a6c820a3, 0x51ef0e338807858, 0x9656b019d9fa01d1, 0xde7d84b68f1ee9b1], [0xf690c533c5ef1bc0], false, [0x2ff84344a6c820a3, 0x51ef0e338807858, 0x9656b019d9fa01d0, 0xe7ecbf82c92fcdf1])
+ self.sub([0x7b87b445d17bcf1c, 0xb85eb0a33ec727d5, 0xb0e21db9336268, 0xed7c392b59f2bb26], [0x1cdbf781d2dae334], false, [0x7b87b445d17bcf1c, 0xb85eb0a33ec727d5, 0xb0e21db9336268, 0xd0a041a98717d7f2])
+ self.sub([0x9d740f9e2694b2fd, 0x44bc6e36c8686ec4, 0x25bcea8c5acce1c6, 0x80e9bb3a242f07b], [0x85d82e65509046c4], false, [0x9d740f9e2694b2fd, 0x44bc6e36c8686ec4, 0x25bcea8c5acce1c5, 0x82366d4e51b2a9b7])
+ self.sub([0x9e5a3c18a70241bc, 0xd3e850dfe7f0400d, 0xc056e28590158003, 0xceea2d5d54fa8657], [0xdcd50c93833993e8], false, [0x9e5a3c18a70241bc, 0xd3e850dfe7f0400d, 0xc056e28590158002, 0xf21520c9d1c0f26f])
+ self.sub([0x81baac5ed94a4be3, 0x5c16b50734579087, 0xac98599aa2046ee7, 0x6af4a0fd0ba5a8a7], [0x956fbbf6c5f52cf6], false, [0x81baac5ed94a4be3, 0x5c16b50734579087, 0xac98599aa2046ee6, 0xd584e50645b07bb1])
+ self.sub([0xf9c00fd629190cbc, 0xd2e436d38177799b, 0x3e5f9484a1886943, 0xf3625acfced8788d], [0x7dcff3b1ed8e5de7], false, [0xf9c00fd629190cbc, 0xd2e436d38177799b, 0x3e5f9484a1886943, 0x7592671de14a1aa6])
+ self.sub([0x97d8663837ae0959, 0xce7476cd01212a0b, 0x57c822b8ab0ed3b, 0xc410f99525e6451b], [0xc72e315ab26eeb00], false, [0x97d8663837ae0959, 0xce7476cd01212a0b, 0x57c822b8ab0ed3a, 0xfce2c83a73775a1b])
+ self.sub([0x7252ffb73a60306e, 0xc006409ff698674d, 0xa1cc6365613af065, 0xb1633a6ec6eea938], [0x2eaa0584d02e2365], false, [0x7252ffb73a60306e, 0xc006409ff698674d, 0xa1cc6365613af065, 0x82b934e9f6c085d3])
+ self.sub([0x1fcb799b4fb5855a, 0xbff716d2ab0e14bb, 0xf476957566518c46, 0xf5f4a71c7b445ddd], [0xea1c34df86032f4a], false, [0x1fcb799b4fb5855a, 0xbff716d2ab0e14bb, 0xf476957566518c46, 0xbd8723cf5412e93])
+ self.sub([0x10126d8698367440, 0x4eb592f6842170ca, 0xcae899af87d995dc, 0xa77e6e7801e9bc5e], [0xe9fe9b61f93cf728], false, [0x10126d8698367440, 0x4eb592f6842170ca, 0xcae899af87d995db, 0xbd7fd31608acc536])
+ }
+
+ func test_sub_4_by_2() {
+ self.sub([0x727f55398afcdbcb, 0xcdb54b764e96d8be, 0x4e955d0c63825a81, 0x443e0c65c3df86f5], [0xaa78a3265f3cdea9, 0x449cd9a1ff177aaf], false, [0x727f55398afcdbcb, 0xcdb54b764e96d8bd, 0xa41cb9e604457bd7, 0xffa132c3c4c80c46])
+ self.sub([0x644a74641c9cab6e, 0x28f321efdf1720c, 0x7a5d8282c12815ab, 0x55c6d8ed359b0e6b], [0x5e8a1bb92ef93801, 0x8ab746aa795ae38], false, [0x644a74641c9cab6e, 0x28f321efdf1720c, 0x1bd366c9922eddaa, 0x4d1b64828e056033])
+ self.sub([0xf5b58afbc3ab1005, 0x5819a960848aa5f, 0x654215b3638f22b1, 0x290f8dda50a705d8], [0x286677575a316198, 0x42fb1968e6b5513a], false, [0xf5b58afbc3ab1005, 0x5819a960848aa5f, 0x3cdb9e5c095dc118, 0xe614747169f1b49e])
+ self.sub([0xcbe1a0c97fbe6496, 0xeb2a335f5e0fce72, 0xcf3e1cd8ccce35b4, 0x7c6bb756c601914c], [0xa90dd2dcb1f53849, 0xc02a6f5137098f77], false, [0xcbe1a0c97fbe6496, 0xeb2a335f5e0fce72, 0x263049fc1ad8fd6a, 0xbc4148058ef801d5])
+ self.sub([0xaa523aca7a79b53d, 0xf015034de25ce4f1, 0x8339300a3fff5e0d, 0x42052fd820acd4b6], [0x4fc29ea9bd5f0046, 0x94751da5f4733244], false, [0xaa523aca7a79b53d, 0xf015034de25ce4f1, 0x3376916082a05dc6, 0xad9012322c39a272])
+ self.sub([0x237ca6e9c7f2c306, 0x3b6590af21556a46, 0xacdc2c0260be35d5, 0xdcac77eb71409b66], [ 0xdeb4860b8a0d7a1, 0x8c1b1c0ba98acbec], false, [0x237ca6e9c7f2c306, 0x3b6590af21556a46, 0x9ef0e3a1a81d5e34, 0x50915bdfc7b5cf7a])
+ self.sub([0x1703e5f40ad29c75, 0x827825d5d8383708, 0x1c1a563b416ee160, 0xbb20eb4a26c1c9a6], [0xf46c6c2802279954, 0x3f2ddc2f9fb9c31d], false, [0x1703e5f40ad29c75, 0x827825d5d8383707, 0x27adea133f47480c, 0x7bf30f1a87080689])
+ self.sub([0x58dea404b60a4bb9, 0x5af02677f27f08cb, 0xd1977bb9b8288bf2, 0x2fca9ef805c3137d], [0x5c1af36c1dde57e4, 0xd6a1bed1661f074], false, [0x58dea404b60a4bb9, 0x5af02677f27f08cb, 0x757c884d9a4a340e, 0x2260830aef612309])
+ self.sub([0x368070bbb8878add, 0xf094fb79d541bd4f, 0x329f639fe1b29223, 0xe7c930de31c50b1], [0x325fd33693f857a0, 0xceb3d8ad1ef7f4b9], false, [0x368070bbb8878add, 0xf094fb79d541bd4f, 0x3f90694dba3a82, 0x3fc8ba60c4245bf8])
+ self.sub([0xce75dddd9f7b9815, 0xa9bf6a11d16af917, 0x1edc9fbfac271770, 0x2101e3735cd473dd], [0xa068f4f68ec3ba66, 0xc064bcdb21855c3c], false, [0xce75dddd9f7b9815, 0xa9bf6a11d16af916, 0x7e73aac91d635d09, 0x609d26983b4f17a1])
+ self.sub([0x103290e389147ab7, 0x2c56642ee20dd0cb, 0x9a6b37f108b19a63, 0xfe1ff5fdb07882b8], [0xc43e5985c094f160, 0x8643c80f18ee4211], false, [0x103290e389147ab7, 0x2c56642ee20dd0ca, 0xd62cde6b481ca903, 0x77dc2dee978a40a7])
+ self.sub([0x1ef6002aace8ea32, 0x57f6f17a4f277aa3, 0x857ecb5f3755fc0, 0x6a943c64f23a9599], [0xde7be951be24da73, 0x739fe2bee9c30aa6], false, [0x1ef6002aace8ea32, 0x57f6f17a4f277aa2, 0x29dc03643550854c, 0xf6f459a608778af3])
+ self.sub([0x7751adb098b7e459, 0x9b69321dfd3111e9, 0xb254b60835f7ad21, 0xb3c6c307d788ab9a], [0x4369c0f749c796ee, 0x17ebfe859baf7e67], false, [0x7751adb098b7e459, 0x9b69321dfd3111e9, 0x6eeaf510ec301633, 0x9bdac4823bd92d33])
+ self.sub([0xaa1ef030575de9e0, 0xd89266d30c127483, 0xb59538f9b88cc729, 0x7bcfe0896b6ee87a], [0xd5c377f7061a77e7, 0xa8fc839210467841], false, [0xaa1ef030575de9e0, 0xd89266d30c127482, 0xdfd1c102b2724f41, 0xd2d35cf75b287039])
+ self.sub([0xc246e1173193aaaf, 0xbee41b4002bc8cdc, 0x41cda465ecbb0130, 0x49185652277c3c41], [0xadea756f0663b98e, 0x2614936b99b0544f], false, [0xc246e1173193aaaf, 0xbee41b4002bc8cdb, 0x93e32ef6e65747a2, 0x2303c2e68dcbe7f2])
+ self.sub([0xfa508a84720580dd, 0xf788b61402fb4a19, 0xa1dd182aa7673c84, 0x3804956e47f4056d], [0x871d7c0101358a20, 0xbe5a6965df7198ec], false, [0xfa508a84720580dd, 0xf788b61402fb4a19, 0x1abf9c29a631b263, 0x79aa2c0868826c81])
+ self.sub([0x5b320fd294a4b387, 0x214255370eba11f8, 0x216a508ceb83b870, 0x6110b81d7da87c85], [0x78c2e170cf2f6816, 0xb5bbb46b7afb5147], false, [0x5b320fd294a4b387, 0x214255370eba11f7, 0xa8a76f1c1c545059, 0xab5503b202ad2b3e])
+ self.sub([0x961904581f65c539, 0x48e9aaec9f11c60b, 0xb6a3b61a3cb8a6d8, 0xc25c22bdba4d8884], [0x26d7e2214c475f46, 0x1e0838e035a3a052], false, [0x961904581f65c539, 0x48e9aaec9f11c60b, 0x8fcbd3f8f0714792, 0xa453e9dd84a9e832])
+ self.sub([0xf8d4c3455fddb37c, 0x2a88317187db22b3, 0x843124763e07d7c5, 0x41a1b4790dd2d92c], [0x464a2ce742bab3f8, 0xdc1dd592d25909f8], false, [0xf8d4c3455fddb37c, 0x2a88317187db22b3, 0x3de6f78efb4d23cc, 0x6583dee63b79cf34])
+ self.sub([0xec68412fece7510b, 0xbee8560b0fcebeb, 0x981a583de6fdc27f, 0x9bf02feebcde8020], [0xe5db5ce3718e36e6, 0xb12ebe204e1d1514], false, [0xec68412fece7510b, 0xbee8560b0fcebea, 0xb23efb5a756f8b98, 0xeac171ce6ec16b0c])
+ self.sub([0xa375de8566054a32, 0xd0833ccbf28b1da3, 0xd962734959566765, 0x451819d6509af105], [0xd6917e783bd9f7bd, 0x6df766e3ba7b596b], false, [0xa375de8566054a32, 0xd0833ccbf28b1da3, 0x2d0f4d11d7c6fa7, 0xd720b2f2961f979a])
+ self.sub([0xd14f90cb3a3cfbfb, 0xc33330777a177a1c, 0xcbb3ddc0b5f574d8, 0x1ca81180cbdc9156], [ 0xb808bbcf6569859, 0x9eb9879a90a95854], false, [0xd14f90cb3a3cfbfb, 0xc33330777a177a1c, 0xc0335203bf9edc7e, 0x7dee89e63b333902])
+ self.sub([0xedbcce304ff0d369, 0xd0cffc520ecd2bac, 0x144eaf9d4ecd93f5, 0xfcb9d0ca8bae4d35], [0xf1adae3c1b3bf68d, 0x463c78548f4cac30], false, [0xedbcce304ff0d369, 0xd0cffc520ecd2bab, 0x22a1016133919d68, 0xb67d5875fc61a105])
+ self.sub([0x5fb0845f6809d349, 0x2e2ae8e11474eeb6, 0x671d7916741205b2, 0x63d5d49cdec6fad7], [0x13548ce6192a876b, 0xc9e1f3dd195238ad], false, [0x5fb0845f6809d349, 0x2e2ae8e11474eeb6, 0x53c8ec305ae77e46, 0x99f3e0bfc574c22a])
+ self.sub([0xc295c547266b03cc, 0xa8758a120b3079e0, 0xd3a427eda838ce6, 0x7355d3bb1e3c641e], [0x5ba34f829da266f3, 0x89fea3c8cb931a8], false, [0xc295c547266b03cc, 0xa8758a120b3079df, 0xb196f2fc3ce125f3, 0x6ab5e97e91833276])
+ self.sub([0xe4032992d94bcbb6, 0x69ff9a62325891b0, 0xe3619e1b33414d5b, 0xe5a7ae065feb1ec], [0x98dc59380fa31a46, 0x5ab6a3d21aa00559], false, [0xe4032992d94bcbb6, 0x69ff9a62325891b0, 0x4a8544e3239e3314, 0xb3a3d70e4b5eac93])
+ self.sub([0x10183832112c1fc5, 0x717752179e36f3a1, 0xb09e503e5d68e775, 0x20286c44ed1dc220], [0xaa99a69b1cc84a39, 0xd37cedd0c13ba852], false, [0x10183832112c1fc5, 0x717752179e36f3a1, 0x604a9a340a09d3b, 0x4cab7e742be219ce])
+ self.sub([0x60cbc294ca2ab5ad, 0xa06ba16a1e8340f7, 0xbc8fc880428a8b0b, 0xbd8d6047613a6b97], [0xca40732877f3899c, 0x17eac6d26a179cfc], false, [0x60cbc294ca2ab5ad, 0xa06ba16a1e8340f6, 0xf24f5557ca97016f, 0xa5a29974f722ce9b])
+ self.sub([0x402438fdcdf69170, 0x4380e71f6ba00cea, 0xe07d8babb0458c60, 0xf93f3683ab087a4b], [0x39fb4d876eddb6fb, 0x130c5e90f2652f02], false, [0x402438fdcdf69170, 0x4380e71f6ba00cea, 0xa6823e244167d565, 0xe632d7f2b8a34b49])
+ self.sub([0x3d88b57e008d5e87, 0xa7e8e3be7210d5b1, 0x8d657091a38102f8, 0x87d800ae76d3766c], [0x924a4128456dbaf0, 0x67d56d917fa7a9b4], false, [0x3d88b57e008d5e87, 0xa7e8e3be7210d5b0, 0xfb1b2f695e134808, 0x2002931cf72bccb8])
+ self.sub([0xdde3b5b64c5ac615, 0xc0395ce95f3197d6, 0x17e62962b11dd2fd, 0x8e83136daf45405f], [0xc4f385cedf3b78ef, 0xff890cfb4b644706], false, [0xdde3b5b64c5ac615, 0xc0395ce95f3197d5, 0x52f2a393d1e25a0d, 0x8efa067263e0f959])
+ self.sub([0xb9501c073a1be5ba, 0xd5245dd1b1f23bc1, 0xcb52feef39390e32, 0xbad54d164065bde5], [0x114539843ac350cc, 0x92cf04d6963a350c], false, [0xb9501c073a1be5ba, 0xd5245dd1b1f23bc1, 0xba0dc56afe75bd66, 0x2806483faa2b88d9])
+ self.sub([0x530c2d4e10e7c5b1, 0x690f05c4f0713a63, 0x5b002b09c9c501cd, 0x43fbe881f9c13bc7], [0x89f45e4697663ab7, 0xac56f6b5976e138c], false, [0x530c2d4e10e7c5b1, 0x690f05c4f0713a62, 0xd10bccc3325ec715, 0x97a4f1cc6253283b])
+ self.sub([ 0x3e5480a872a410b, 0x6e620706a83a19f1, 0xdca1b0bd31ac5aed, 0x67317020a2564811], [0xcf85bf2eeed886f6, 0x5b964a52d851fe4c], false, [ 0x3e5480a872a410b, 0x6e620706a83a19f1, 0xd1bf18e42d3d3f7, 0xb9b25cdca0449c5])
+ self.sub([0xb67631ca799a96bf, 0xc2bebcbe5101aaa1, 0x42014cf36676c07d, 0x96326c4e51d73580], [0x96815a9840770fcd, 0x296650eeab27df80], false, [0xb67631ca799a96bf, 0xc2bebcbe5101aaa0, 0xab7ff25b25ffb0b0, 0x6ccc1b5fa6af5600])
+ self.sub([0xdd3a7fb339b4e691, 0xe3ac30a64d23c2c, 0x9d4ce93960c40885, 0x1b39675ef28dfccd], [0x16b5a0c5dc6d4ac3, 0x11da4b430c82c61e], false, [0xdd3a7fb339b4e691, 0xe3ac30a64d23c2c, 0x869748738456bdc2, 0x95f1c1be60b36af])
+ self.sub([0x787710db7b7ee9f6, 0x38fc89a7b7e15433, 0x2bbd07f141f0caf5, 0x64900d669d905e04], [ 0x48c57aab8a41724, 0x59c4252def02470], false, [0x787710db7b7ee9f6, 0x38fc89a7b7e15433, 0x2730b046894cb3d1, 0x5ef3cb13bea03994])
+ self.sub([0x2553ea5368d61874, 0xb94f4a72836fc6fd, 0x91d98db815932f3a, 0xba386af4a9a9161b], [0x12a37237ce80897c, 0xb7875bbe57e6d080], false, [0x2553ea5368d61874, 0xb94f4a72836fc6fd, 0x7f361b804712a5be, 0x2b10f3651c2459b])
+ self.sub([0xf40a0a579b91f902, 0xf9c3f3ea22daa8ed, 0x3d8245269ab14ac7, 0x9f95975908ed97b7], [0x54565ccbf163bd8f, 0xea2390cad2f0f7a1], false, [0xf40a0a579b91f902, 0xf9c3f3ea22daa8ec, 0xe92be85aa94d8d37, 0xb572068e35fca016])
+ self.sub([0xea76a3776d736039, 0xe24870896cc227d9, 0x38b9e5255da461ae, 0x2748c5ce5e51cae1], [0xf2f8fc5f42b77acd, 0xb9db34ed4b3314c9], false, [0xea76a3776d736039, 0xe24870896cc227d8, 0x45c0e8c61aece6e0, 0x6d6d90e1131eb618])
+ self.sub([0x32ae7df5adc7a106, 0x9f850ba4d1ed2921, 0x93f091853ab6a529, 0x1840519c6f29928f], [0x5d5b35d7cb9745a4, 0xfe649f5ea3e62ee7], false, [0x32ae7df5adc7a106, 0x9f850ba4d1ed2921, 0x36955bad6f1f5f84, 0x19dbb23dcb4363a8])
+ self.sub([0x392f90d46d29c337, 0x81962dce01c15c0d, 0x90de13c7ca603215, 0x1535aa75a5baafff], [0xd1b94fbf4d15ae9c, 0xea1367b562354804], false, [0x392f90d46d29c337, 0x81962dce01c15c0c, 0xbf24c4087d4a8378, 0x2b2242c0438567fb])
+ self.sub([0xac028020469b9361, 0x1de9bf2db119f343, 0x9d5ce22f7e03007c, 0xafc36b9866200458], [ 0xd2ee72e891297f8, 0x3ad1f90c840364d], false, [0xac028020469b9361, 0x1de9bf2db119f343, 0x902dfb00f4f06884, 0xac164c079ddfce0b])
+ self.sub([0xe46c9bfbf1c2fed8, 0xeef0971b62fe5047, 0x6b03be21354eaf4d, 0x77070832ef3836c6], [ 0xa30ae788a350ca6, 0xb50249c3a36eed0f], false, [0xe46c9bfbf1c2fed8, 0xeef0971b62fe5047, 0x60d30fa8ab19a2a6, 0xc204be6f4bc949b7])
+ self.sub([0x983123755835fd85, 0x27696fe59c834af5, 0x1d2ec44d7bb51db8, 0xe92b1e375b72cb0b], [ 0xc2e8e7eb25245f0, 0x72589f8fa67e1e2d], false, [0x983123755835fd85, 0x27696fe59c834af5, 0x110035cec962d7c8, 0x76d27ea7b4f4acde])
+ self.sub([0x11d0876bda26feb2, 0x935ab336e19f62f2, 0x60912d8916c6ac0, 0xaa616d234c1e277f], [0x85a0031f2accd399, 0xaa6a1e59b66182c7], false, [0x11d0876bda26feb2, 0x935ab336e19f62f1, 0x80690fb9669f9726, 0xfff74ec995bca4b8])
+ self.sub([0x615051acd8db82d6, 0x57b7dc6ce21ca957, 0x265b860d7312a71c, 0x996280b7407ad41c], [0xee670d501d1154a6, 0x7fcb49810ae4ebcc], false, [0x615051acd8db82d6, 0x57b7dc6ce21ca956, 0x37f478bd56015276, 0x199737363595e850])
+ self.sub([0xbf87739c22fc8482, 0x61162078d6255aa4, 0xa812f4cf90f713fb, 0xc98504db42a68836], [0x5cea75a8059e7e1e, 0x1adb583fd4181886], false, [0xbf87739c22fc8482, 0x61162078d6255aa4, 0x4b287f278b5895dd, 0xaea9ac9b6e8e6fb0])
+ self.sub([0x4cd416174af13bd4, 0x93ddba09dd594edf, 0x726f49d666491666, 0x55ddbacc672dba0e], [0x3e5e96bfd538864d, 0xe1db291e958d0f62], false, [0x4cd416174af13bd4, 0x93ddba09dd594edf, 0x3410b31691109018, 0x740291add1a0aaac])
+ self.sub([0xc4816cb4c9e0c99d, 0x7e96866442947623, 0x3188a0970326b3b8, 0xb1b9ae5676b4e1b1], [0x4f51197c7ed4f6f6, 0x8fe78f9112b30113], false, [0xc4816cb4c9e0c99d, 0x7e96866442947622, 0xe237871a8451bcc2, 0x21d21ec56401e09e])
+ }
+
+ func test_sub_4_by_3() {
+ self.sub([ 0x5eba3a9db84d2f2, 0x595bfc1615e8361a, 0xcadcbf09dd46cd06, 0xf828677b874b97ab], [0xdc9d65a805c26592, 0x550b823e1edd4f04, 0x13e12ba317b7f0c0], false, [ 0x5eba3a9db84d2f1, 0x7cbe966e1025d088, 0x75d13ccbbe697e02, 0xe4473bd86f93a6eb])
+ self.sub([0x55527ae7bb5b17eb, 0x798a2ddefdb6fd13, 0x592847509b41d587, 0x18586d59a9ed1c99], [0xed2dfbcd528fc2b3, 0x40d9b3484367e9fc, 0x7828059ee610be], false, [0x55527ae7bb5b17ea, 0x8c5c3211ab273a60, 0x184e940857d9eb8b, 0x17e045540b070bdb])
+ self.sub([0x57369b01ec85e7a4, 0x2ae8e748f0ed632c, 0xfbc3b41971d38299, 0x7e5d2cc7aa791eb9], [0x492d26865edb249b, 0xe885c7bfa9da94ff, 0x4e057621501c5dac], false, [0x57369b01ec85e7a3, 0xe1bbc0c292123e91, 0x133dec59c7f8ed9a, 0x3057b6a65a5cc10d])
+ self.sub([ 0x2fd49127e112977, 0x8af55d23189f7835, 0xff7782fbb5bcc6c, 0x86acef3a8ce7d598], [0x21c5c88e29c4ad5f, 0x8f833f01eb885e0, 0xefe55cde957eacaf], false, [ 0x2fd49127e112977, 0x692f9494eedacad6, 0x6ff443f9ca3468b, 0x96c7925bf76928e9])
+ self.sub([0x95647d2de7c0d14d, 0x6a5019487009e680, 0x19723162b7f6aa0c, 0xed23a533057355d8], [0xac57c0baf7e4db20, 0x7110dc79f3f18079, 0xf47983e37caba5dc], false, [0x95647d2de7c0d14c, 0xbdf8588d78250b5f, 0xa86154e8c4052992, 0xf8aa214f88c7affc])
+ self.sub([0xf6a28a8f8b433037, 0x84a51f67c18fa072, 0xf6cd421bab3a51c4, 0xee8201634310e2cd], [0x4f5fcc755210dbb2, 0xe32784651ca380bf, 0x7fad1be89b56d38e], false, [0xf6a28a8f8b433037, 0x354552f26f7ec4c0, 0x13a5bdb68e96d105, 0x6ed4e57aa7ba0f3f])
+ self.sub([0x211f8d0c9db96ded, 0x86dc9715ba97d54c, 0x25583f782897e3ac, 0x739fc469fe41bcf7], [0xe7d7e3f7e8ba160b, 0xe65f5a16f7c1dd3a, 0xc3e7926ae6d183c9], false, [0x211f8d0c9db96dec, 0x9f04b31dd1ddbf40, 0x3ef8e56130d60671, 0xafb831ff1770392e])
+ self.sub([0xcd7b7bc6f5ce10e8, 0xdb9200f898dc54ce, 0x2d411f62d97b11fc, 0x4e6099f16eaa7b25], [0x8b77c72ba984d8a1, 0x8a99a489f3cc18b2, 0xab16b57af4306628], false, [0xcd7b7bc6f5ce10e8, 0x501a39ccef577c2c, 0xa2a77ad8e5aef949, 0xa349e4767a7a14fd])
+ self.sub([ 0xd3c966282d87aa2, 0x8bceb1f414b26a77, 0x3d54d7d3e1aa2eac, 0xa37ba6d69c80081d], [0x199af9a7d8ff6c8b, 0x13cb50b877b45cdd, 0x85a473e375cb351b], false, [ 0xd3c966282d87aa2, 0x7233b84c3bb2fdec, 0x2989871b69f5d1cf, 0x1dd732f326b4d302])
+ self.sub([0x9b87fac3c67ecdb9, 0x99063d34c574c886, 0x3f70aebe4a1ebf0c, 0x63b37365a1cf3e62], [0xc3b34158b67f9d4f, 0xe41b3b4b3c4718, 0x1e9a8ddc4570af7f], false, [0x9b87fac3c67ecdb8, 0xd552fbdc0ef52b37, 0x3e8c9382fee277f4, 0x4518e5895c5e8ee3])
+ self.sub([0x54041875767e5a75, 0xef34f045cab3babb, 0x49fff2abc79e9511, 0x5f5247a6fd88f277], [0x65c093a18cde0853, 0x32fa3db6436b069a, 0x26da41a2cc3208], false, [0x54041875767e5a75, 0x89745ca43dd5b268, 0x1705b4f584338e77, 0x5f2b6d655abcc06f])
+ self.sub([0xcf3c5051f7b694ef, 0xde9dd042407c1994, 0x9cd0462db509506e, 0xb7c3ccd6a23504c4], [0x1b1b4cf93ba91cba, 0x46c56d7ff94d0219, 0x9366030249b7110e], false, [0xcf3c5051f7b694ef, 0xc382834904d2fcda, 0x560ad8adbbbc4e55, 0x245dc9d4587df3b6])
+ self.sub([0x9e71b6f69ba9621c, 0x3dc4fe787b9b7907, 0x227aa8d18dbb385d, 0xe78b7248dccda44d], [0x23858ea17adddabc, 0x8c3d6d06ec193b40, 0xb0c2ea63c36a570f], false, [0x9e71b6f69ba9621c, 0x1a3f6fd700bd9e4a, 0x963d3bcaa1a1fd1d, 0x36c887e519634d3e])
+ self.sub([0xfd16d2bfc4006524, 0x302066bd454e2978, 0xbced863116cc5d82, 0xec9c8db6a9053cf3], [0x498cc67b9fd5b91d, 0x7f9c6e20f68d2742, 0x51504a7adcc5d228], false, [0xfd16d2bfc4006523, 0xe693a041a578705b, 0x3d511810203f3640, 0x9b4c433bcc3f6acb])
+ self.sub([0x9300f5b6bd0283dc, 0x34f5922206a74b3, 0xba7f28b822cf7f5e, 0x9e56e65cd9cd711e], [0x82e74a2f481c22fc, 0xcc51882d0690b52, 0xc3117d235b7762a7], false, [0x9300f5b6bd0283db, 0x80680ef2d84e51b7, 0xadba10355266740b, 0xdb4569397e560e77])
+ self.sub([0xbab91c82cfa1f318, 0x4907edefb43c3913, 0x8d5cbcf32c9923c2, 0x1901acdac25d7acd], [0x673cdb1d3304dfcd, 0xeeb743f7d5c6b038, 0x2b39080bb2f1c44c], false, [0xbab91c82cfa1f317, 0xe1cb12d281375945, 0x9ea578fb56d27389, 0xedc8a4cf0f6bb681])
+ self.sub([0x4e704fb199349ba3, 0xab1a6bbaf7c651c7, 0x12c6f9fd95521ab0, 0x789c897eebf89a0a], [0x8c0155bc6c31964a, 0xb32f2af2fb8882d, 0x99319801d28086c0], false, [0x4e704fb199349ba3, 0x1f1915fe8b94bb7d, 0x794074e65999282, 0xdf6af17d1978134a])
+ self.sub([0x5b0f7b44a150dd9f, 0x48e3a438bab0b3a3, 0x7e9dfa377d897365, 0x3db7590d8d9ef406], [0x49e6d89fbd4143a1, 0x7e108c3ade7b8aaa, 0x243d7b6b3455df88], false, [0x5b0f7b44a150dd9e, 0xfefccb98fd6f7002, 0x8d6dfc9f0de8bb, 0x1979dda25949147e])
+ self.sub([0x10a327f81bb856ca, 0x6b332a7495cf9fd5, 0xd668a9a6e42d6279, 0xe386bce5000fa177], [0xc031c3a2dfad21e5, 0xd7f51960d42783c6, 0x75105926a3b25983], false, [0x10a327f81bb856c9, 0xab0166d1b6227def, 0xfe7390461005deb3, 0x6e7663be5c5d47f4])
+ self.sub([0x4e55132392ef23bf, 0x7243fe34f64ad457, 0xd36ad3e3ab517d4c, 0x9d8e7a7d19d0d0d6], [0x51256b31efd70ae8, 0xb48c8a63f662e2be, 0x9532a3d1dee36f61], false, [0x4e55132392ef23bf, 0x211e93030673c96f, 0x1ede497fb4ee9a8e, 0x85bd6ab3aed6175])
+ self.sub([0x2e0b438805a350e3, 0x9d4f8f940f3e5801, 0x9a83c3211a0449cf, 0x8048b1cc52a7951d], [0x1276d8e10fa51b15, 0xd9b4dbe3ff26c24, 0xcf71a659f651d03e], false, [0x2e0b438805a350e3, 0x8ad8b6b2ff993cec, 0x8ce87562da11ddaa, 0xb0d70b725c55c4df])
+ self.sub([0x62377bbbe62773c1, 0x2f477b3f9c613eac, 0x4c87bcafc9e7aafb, 0x90594aca6b866d89], [0x8e45ba196b0aabc1, 0xe33a78303b0f3115, 0xd3612845316987e], false, [0x62377bbbe62773c0, 0xa101c126315692ea, 0x694d447f8ed879e6, 0x83233846186fd50b])
+ self.sub([0x3b859411bd18b47b, 0x2567eff50d6011c6, 0x3015936f0a499f8b, 0x58f960efb81d289b], [0xc7a2cf53cc08b512, 0xc60e05631dfb4f10, 0x85206bd0339d95d1], false, [0x3b859411bd18b47a, 0x5dc520a141575cb3, 0x6a078e0bec4e507a, 0xd3d8f51f847f92ca])
+ self.sub([0x8c52edc8ae05e2fc, 0x79a4c399e61e2ac0, 0xa0bd80933e1c1b2d, 0x9c024b9eb227f585], [0x78afc1b834c81a96, 0xd8632f2a6c31a611, 0xe876a4d2f7ecf76b], false, [0x8c52edc8ae05e2fc, 0xf501e1b1561029, 0xc85a5168d1ea751b, 0xb38ba6cbba3afe1a])
+ self.sub([0xcdf4744ace3497f1, 0xec68eaf017b7db4, 0xda4cd50f8ba6e4b2, 0x3d83a7595851ccac], [ 0x4150c7817bd73b1, 0x3755db96a66fbad4, 0xfa705f7764f6fb91], false, [0xcdf4744ace3497f1, 0xab18236e9be0a03, 0xa2f6f978e53729dd, 0x431347e1f35ad11b])
+ self.sub([0x8d4b93e65d7db5ab, 0xe0fb018c3ec6ac3f, 0x5dc18a5a6ce52e3c, 0x4ee36392986d6415], [0xaea5fa0a96b52fb1, 0xd061385c78e99588, 0xca38592004831608], false, [0x8d4b93e65d7db5ab, 0x32550781a8117c8d, 0x8d6051fdf3fb98b3, 0x84ab0a7293ea4e0d])
+ self.sub([0x59bf08e0aae9ffe7, 0x5c4de6c8cfe8b1ab, 0xdb762792a9186cdf, 0x5a2ea97c4a71ca1f], [0x408d6830f9eb10f2, 0xdb9d75a2b135165d, 0x5930bb53a997a3b4], false, [0x59bf08e0aae9ffe7, 0x1bc07e97d5fda0b8, 0xffd8b1eff7e35682, 0xfdee28a0da266b])
+ self.sub([0x2262ba87a7bede3d, 0x7cf4177b15a5fb01, 0x4a7d2ed26ec9f8dd, 0xe9f0b091694d967b], [0xb91be103aa58e896, 0x4d03001fea67bfec, 0xf7b43911ed1ae028], false, [0x2262ba87a7bede3c, 0xc3d836776b4d126a, 0xfd7a2eb2846238f0, 0xf23c777f7c32b653])
+ self.sub([0x969896be2a8ed326, 0xc5d035e5e30c8889, 0xd9b57d85fb75bbc, 0x5bf832c264d819ca], [0x3c820c7694827037, 0xa1361ed6650f0cc1, 0x2bf5b298c5a10dd1], false, [0x969896be2a8ed326, 0x894e296f4e8a1851, 0x6c653901faa84efb, 0x300280299f370bf9])
+ self.sub([0xe0b62e6710de17fb, 0x4b29172c0dfe15b1, 0x3e6ee3575ddba28b, 0x4ad868dc2210be34], [0x5a128230cad38781, 0x609e47dfd544ab62, 0x1c1d36ebfe094d8e], false, [0xe0b62e6710de17fa, 0xf11694fb432a8e2f, 0xddd09b778896f729, 0x2ebb31f0240770a6])
+ self.sub([0x7dfbbacae75d2af3, 0xa607a0eb3eacf5c9, 0x9774064b8931cadc, 0x234183873f17f7a3], [0x1e600a221359138c, 0x43cf52288e146814, 0x26d14119d61e9eb1], false, [0x7dfbbacae75d2af3, 0x87a796c92b53e23d, 0x53a4b422fb1d62c7, 0xfc70426d68f958f2])
+ self.sub([0x2533c3e8b4321852, 0xcfd95ecfc543e11f, 0xa3d86ac42dbba48b, 0xc59c1fbd436ba006], [0x5a57e72476b7b1ea, 0xb1f4d5ed5e5f8904, 0xd2160faa7d8237d9], false, [0x2533c3e8b4321852, 0x758177ab4e8c2f34, 0xf1e394d6cf5c1b86, 0xf3861012c5e9682d])
+ self.sub([0x4a5ec9956ea298f3, 0x76f85e62a8581184, 0x5bebb0e9730478f6, 0xb1390febd43b65cb], [0xec3f9fc25b32dc33, 0x552ef0481644fc14, 0xe5fbba8759428bee], false, [0x4a5ec9956ea298f2, 0x8ab8bea04d253551, 0x6bcc0a15cbf7ce1, 0xcb3d55647af8d9dd])
+ self.sub([0x1212ac54f9bf4e54, 0x794dbf1f3db3763f, 0x847f78f44b1adefc, 0xe6096f36479d7658], [0x19310a98acac3f92, 0x8bc66c7837a78d91, 0x52f033e7408b6424], false, [0x1212ac54f9bf4e54, 0x601cb486910736ac, 0xf8b90c7c1373516b, 0x93193b4f07121234])
+ self.sub([ 0xb62cca3a9be190f, 0x5d206f889428a24, 0xde11783ff2bcdd32, 0xd77ce94f29c1d17b], [0xc4938a8f4084aa83, 0x2ed0b70cc2bc8595, 0x14d760cab4615932], false, [ 0xb62cca3a9be190e, 0x413e7c6948bddfa1, 0xaf40c1333000579d, 0xc2a5888475607849])
+ self.sub([0xa2463c0502bcbf66, 0x9a884689f364305a, 0xc162c2193f7fd955, 0x74847fcb113aab9], [0x4f1b65368dc0cf8a, 0xae08169d463035bb, 0x9ecee474bef3add2], false, [0xa2463c0502bcbf66, 0x4b6ce15365a360d0, 0x135aab7bf94fa399, 0x68796387f21ffce7])
+ self.sub([0xb7236dc7f2a496e7, 0x1cedf998489bfee8, 0xbbdd83967c40eb65, 0xb9b24dac08b16d29], [0xa31005dfa86df092, 0x698d3fa304be52e9, 0x9e37834fb234f702], false, [0xb7236dc7f2a496e6, 0x79ddf3b8a02e0e56, 0x525043f37782987c, 0x1b7aca5c567c7627])
+ self.sub([0x722f7022a3865e87, 0x206e3e8adec88377, 0x92a5dfcaf4d3d23b, 0xc4e2fac50d5dd54c], [0xe1172cd69b6f92f6, 0x1a3a4c0d4cbe37a0, 0xc545d37de9094996], false, [0x722f7022a3865e86, 0x3f5711b44358f081, 0x786b93bda8159a9a, 0xff9d274724548bb6])
+ self.sub([0xff6299dd2560ec50, 0x428df21711c3555a, 0x63d1cb151a25b6dc, 0x4cbd58265fa2bfe3], [0x6e40ca2920a46242, 0xb563a2def9ab8ce9, 0x2fcf56a67a2c501c], false, [0xff6299dd2560ec4f, 0xd44d27edf11ef317, 0xae6e2836207a29f3, 0x1cee017fe5766fc7])
+ self.sub([0x3e655ef3bd2f5ddf, 0x3066510b9aa57725, 0xd17b1f8008dd8217, 0x174691d2755e19d4], [0x5f4f8807cbd5c9f3, 0x8ca6cbcaf9e60095, 0xeaac524c210b56f], false, [0x3e655ef3bd2f5dde, 0xd116c903cecfad32, 0x44d453b50ef78182, 0x89bccadb34d6465])
+ self.sub([0x775cd53954fe3dee, 0x941cb7212644aa92, 0xa61240e7f0443ac6, 0x4eccdfe8d30f3cbd], [0x856f0eb460e051da, 0x44ccd7e86801e44b, 0x4af3a55d77c35d1f], false, [0x775cd53954fe3dee, 0xeada86cc56458b8, 0x614568ff8842567b, 0x3d93a8b5b4bdf9e])
+ self.sub([0x930ef58772f90e13, 0xae79cb1e688ada18, 0xf6d20eb59a4e19a8, 0x2776f1851d2a4cf0], [0xafefc0c3066c2b3c, 0x7b4f7c697cac65a, 0x199b9267d955cdb2], false, [0x930ef58772f90e12, 0xfe8a0a5b621eaedc, 0xef1d16ef0283534e, 0xddb5f1d43d47f3e])
+ self.sub([0x869ae8397c23a5ab, 0xdae0fc7f681ba68d, 0x2d692170f0cebff3, 0x939e3f3442057be1], [0xc5f8f01209773bd6, 0xe15e26c0c8cf97b7, 0x3577c1d879a8b2c0], false, [0x869ae8397c23a5ab, 0x14e80c6d5ea46ab6, 0x4c0afab027ff283c, 0x5e267d5bc85cc921])
+ self.sub([0xe7122dd1e61a75b4, 0x253f85dd06f7f9a6, 0x84271eb1d10d1d45, 0xcb7bd151cd5a6531], [0xe8ddb2f2fca3e63b, 0xa458d787dd53438b, 0x9b687d9d6987148f], false, [0xe7122dd1e61a75b3, 0x3c61d2ea0a54136a, 0xdfce4729f3b9d9ba, 0x301353b463d350a2])
+ self.sub([0xbb89fec1d7db2a97, 0x49f5f81cdd1a3cc, 0xde7ea4fecb2712c7, 0x25e2fb932cdd7561], [ 0x95ceafaccdcbcc5, 0x2ece0aef1393b841, 0x45ea04728292ee8], false, [0xbb89fec1d7db2a96, 0xfb42748700f4e707, 0xafb09a0fb7935a86, 0x21845b4c04b44679])
+ self.sub([0xe0305f68b3b9e5a0, 0x9dda70bf63dc57c6, 0x1ef4ab4c4faf132e, 0xff503fb7e34f70e], [0xed75aaf3b533e8ee, 0xe95920811c46be11, 0x789b0db957a97acf], false, [0xe0305f68b3b9e59f, 0xb064c5cbaea86ed7, 0x359b8acb3368551c, 0x9759f642268b7c3f])
+ self.sub([0x86fad318a4e6d452, 0x783d42b7eba9537e, 0x734b7386e08b66f5, 0xc6c6e4e1d9d31389], [0x5d10f725640975e0, 0xa6bc826dedd802be, 0x2d33bda07fa7ef8a], false, [0x86fad318a4e6d452, 0x1b2c4b92879fdd9d, 0xcc8ef118f2b36437, 0x999327415a2b23ff])
+ self.sub([0x78ea805ae29d557c, 0x8ffe4569b7d4d25c, 0x5bcf886bb5ef9d54, 0xed48c597b309e9ed], [0x8060457cd6960e91, 0x471cf2d7fff97b2b, 0x52a7ffcd4de17bc9], false, [0x78ea805ae29d557c, 0xf9dffece13ec3cb, 0x14b29593b5f62229, 0x9aa0c5ca65286e24])
+ self.sub([0x72efc10a77fbe493, 0x4dbd6feb414f514b, 0xcc969e9323f869d2, 0x8069c5adeb3772a2], [0x385dec9a3c37b0e2, 0x70fdbd6e8cfb19ee, 0x77b0964c84fc9f90], false, [0x72efc10a77fbe493, 0x155f83510517a069, 0x5b98e12496fd4fe4, 0x8b92f61663ad312])
+ self.sub([0xdac5869fd869f9fe, 0x4dda2897f4ceece8, 0xd52e0cdcd11a29f9, 0x8b5589a5af18614a], [0xb8f54b58d555ce23, 0x3ed779e29136f47f, 0x95bacfc32cca7d43], false, [0xdac5869fd869f9fd, 0x94e4dd3f1f791ec5, 0x965692fa3fe33579, 0xf59ab9e2824de407])
+ }
+
+ func test_sub_4_by_4() {
+ self.sub([0x5a5c7b77210a8d55, 0xa6f9bc63f7dfe1d2, 0x3ba1ee2a6204c4ff, 0xa026142274148df0], [0xaa374fff4a993ed6, 0xdda72ec27e0af31a, 0x41c348f67ea084f1, 0xf79773b97d3e7ec1], true, [0xb0252b77d6714e7e, 0xc9528da179d4eeb7, 0xf9dea533e364400d, 0xa88ea068f6d60f2f])
+ self.sub([0x8163c093cb231c1b, 0x6f6fe206087959f1, 0x2a4e0459a39d54c8, 0x833f0f1ea1ce8f61], [0x6b8aff7310c01890, 0xb28c15aa4b49d8b4, 0x94ae8432794e5433, 0xe7ef0aa3bb1967f4], false, [0x15d8c120ba63038a, 0xbce3cc5bbd2f813c, 0x959f80272a4f0094, 0x9b50047ae6b5276d])
+ self.sub([ 0xb6cfb79d7e33ae8, 0xdf1d91b51366407e, 0x6d8b900dbf60667a, 0x791a12488afd70b9], [0x4d7713a0370ea2b1, 0x3abb323a42f4338, 0x2cd23c44186e4ceb, 0x5b607bf7bd92cea6], true, [0xbdf5e7d9a0d49837, 0xdb71de916f36fd46, 0x40b953c9a6f2198f, 0x1db99650cd6aa213])
+ self.sub([ 0x4e50e8177bc20f, 0x60c189b02186d267, 0x1bb29065d8bf9f8d, 0x9c8cf7da8a06a11f], [0xd54bb46900b0e517, 0x4f9495854bf46e46, 0x1a8d00703056431f, 0xa47f6d1d10bd0524], true, [0x2b029c7f16cadcf8, 0x112cf42ad5926421, 0x1258ff5a8695c6d, 0xf80d8abd79499bfb])
+ self.sub([0x109ea0baa3a0835e, 0x238659bc16402ea2, 0x367e35f0e9f1c8d8, 0x9823b70e98be3d22], [0xe5fd8705a8b678c4, 0xac9dffa7b591ae50, 0xf832a1a496d2c4ca, 0x4df065180c0936d6], true, [0x2aa119b4faea0a99, 0x76e85a1460ae8051, 0x3e4b944c531f040e, 0x4a3351f68cb5064c])
+ self.sub([0xca6c75eebeea31aa, 0x5866b3a26e3a58a4, 0xb75974af6408b14b, 0x4211df4e8a4f011d], [0xf5e024296a88f614, 0x7b335e3721bb7005, 0x8bcbfa94e46f1e17, 0x657dfcfca7ac6199], true, [0xd48c51c554613b95, 0xdd33556b4c7ee89f, 0x2b8d7a1a7f999333, 0xdc93e251e2a29f84])
+ self.sub([0x56df3b6ea947b489, 0x456491ed767eb96d, 0x227f523051427f17, 0x53e7c988a3ca1394], [0xabeda8212a1a1934, 0x3f1f58629a42e614, 0x6eee1f6c2fe73bb5, 0x732ebce6b682bbcb], true, [0xaaf1934d7f2d9b55, 0x645398adc3bd358, 0xb39132c4215b4361, 0xe0b90ca1ed4757c9])
+ self.sub([0x3cde69f246c9568b, 0x93d0adfb22849a8c, 0xa3a5d608a83dec1, 0x45f46cbca8aeaee], [0x10462770b7b6cd8e, 0x4540d69b002d5fc5, 0xd453ed6752de2799, 0xf24f9a716ddd502f], false, [0x2c9842818f1288fd, 0x4e8fd76022573ac6, 0x35e66ff937a5b727, 0x120fac5a5cad9abf])
+ self.sub([0xba5fac01576f15c1, 0xf4b566eb081eea89, 0x8b242e05bcc72274, 0x2ae7410d1c8128f6], [0x60478843a542aef9, 0x666aa4220779dd94, 0xb43d604b7acf61ae, 0x3140fb2fdddbed83], false, [0x5a1823bdb22c66c8, 0x8e4ac2c900a50cf4, 0xd6e6cdba41f7c0c5, 0xf9a645dd3ea53b73])
+ self.sub([0x8aa2deadd5dbea6e, 0xf111ecbb5a36305c, 0xa22a4a90e3352042, 0xfe7c07fe6586d61a], [0xa6795604ca5301cc, 0xd255cee5948398fd, 0xb7f6182466c78f81, 0x9537da33007a7eb3], true, [0xe42988a90b88e8a2, 0x1ebc1dd5c5b2975e, 0xea34326c7c6d90c1, 0x69442dcb650c5767])
+ self.sub([0x43b515fc10be0b98, 0x567f278fdde134d0, 0x122c99ecc468dc0b, 0xa2cb8c34673de925], [0x53031253c5ff6ea6, 0xb80ffa8153757240, 0x127f7220ffcfefd8, 0x1f5a7dfa272ca2db], true, [0xf0b203a84abe9cf1, 0x9e6f2d0e8a6bc28f, 0xffad27cbc498ec33, 0x83710e3a4011464a])
+ self.sub([0x6d4bba47469c3611, 0x16c5c7677e3a3bfe, 0x775b3cecf0654bf1, 0x38c7de498885000d], [0x9a310a790c8ac6cf, 0xc0ea0d2ec618637b, 0x29f9fdc04b518e92, 0x6696d45f3e640b5c], true, [0xd31aafce3a116f41, 0x55dbba38b821d883, 0x4d613f2ca513bd5e, 0xd23109ea4a20f4b1])
+ self.sub([0xe5fa25c4f41c7612, 0x356291d2d6136c96, 0x40be036f2b4e0fc4, 0xfaf7ea521006724a], [0xfd3ba0a594c12dbf, 0xca194431b4009bb9, 0xa724e1205fee5edb, 0xf26413c1953ffd7d], true, [0xe8be851f5f5b4852, 0x6b494da12212d0dc, 0x9999224ecb5fb0e9, 0x893d6907ac674cd])
+ self.sub([0x5383284ede32d8ba, 0xe85afb4cf11c1adc, 0x96909c09ec23226c, 0x796de908f53ba40f], [0x732930e675ca4916, 0x63a35109b2f2bd29, 0xd2628b6bc76e7a67, 0xabbb4efbcf88fe25], true, [0xe059f76868688fa4, 0x84b7aa433e295db2, 0xc42e109e24b4a804, 0xcdb29a0d25b2a5ea])
+ self.sub([0xfc07f18cd2b7bb83, 0x21b375bb9e3efd42, 0x2b074d1b87c2f55f, 0x93b87550bc580c2e], [0xdb139e59b7fa248c, 0x9eab25cadb8e2745, 0x6132e6cefb7b0ddc, 0x40c06bf3a9930091], false, [0x20f453331abd96f6, 0x83084ff0c2b0d5fc, 0xc9d4664c8c47e783, 0x52f8095d12c50b9d])
+ self.sub([ 0xcd9160e46f2e6da, 0xb99bc2bc0cd2030e, 0xce85dff5d2b9580, 0x822b6468239c9723], [0x69f4cd532e8eafc9, 0xf74f4c15ad88f353, 0xc80b9080bbf786d1, 0x99fb28eab0144794], true, [0xa2e448bb18643710, 0xc24c76a65f490fba, 0x44dccd7ea1340eae, 0xe8303b7d73884f8f])
+ self.sub([0x9333da473aff16db, 0xbb476099bc0c73d4, 0x542996a901ac0910, 0xf6e3c6aa3338e478], [0xe8db6c3c21354950, 0x9635fab1aed568f3, 0x4d5931baeec7130, 0x1dc8ffc21243ecb3], true, [0xaa586e0b19c9cd8b, 0x251165e80d370ae1, 0x4f54038d52bf97e0, 0xd91ac6e820f4f7c5])
+ self.sub([0xf77bb3e787d79d62, 0xfaa43ba7c43e9f5c, 0xc24f57689c94817e, 0x417a688425fd62da], [0xf2b4572b78cdc6b5, 0xc26e4d29366b6f59, 0x3a616d2499fdee02, 0xb8dd830945f9d1f4], false, [ 0x4c75cbc0f09d6ad, 0x3835ee7e8dd33003, 0x87edea440296937b, 0x889ce57ae00390e6])
+ self.sub([0xd14802609449467f, 0xf763fb507e1c361e, 0x760de232dbb7159c, 0xc04af1cc609bc0dd], [0x8fe2c5cd05d701fa, 0xb66fde2d6ee1c53c, 0xd52be7815a8818f1, 0x6cbbf23ac37970ff], false, [0x41653c938e724485, 0x40f41d230f3a70e1, 0xa0e1fab1812efcab, 0x538eff919d224fde])
+ self.sub([0x8370684ddf6b970b, 0x9c0f93bb15b71ada, 0x831dd60934c918c, 0xe27d2613ac733ded], [0x43f98d0a42896952, 0x24b875bdbc90244b, 0xc69ff7e3e794849a, 0x47a53c0878fe876e], false, [0x3f76db439ce22db9, 0x77571dfd5926f68e, 0x4191e57cabb80cf2, 0x9ad7ea0b3374b67f])
+ self.sub([0xde7ca1b2ccdce4ed, 0x9006d0c707810b4d, 0xeea7080acb0f26ab, 0xc909444e0a66f3d4], [0x40ce526ba01a36b3, 0x53b9cc1ba817da89, 0x4c4d1eab8c1bb78d, 0xa59cbdfd5222bc40], false, [0x9dae4f472cc2ae3a, 0x3c4d04ab5f6930c4, 0xa259e95f3ef36f1e, 0x236c8650b8443794])
+ self.sub([0x1e6f12700cfc1b09, 0x1a92d665162f137f, 0xbe3164c6c2a33b8c, 0x9214690c2bc41f8b], [0xd3a7a75909cce7bc, 0x51220dc8f065044d, 0x5825ea4ba4214c7e, 0xe20197b184107ec4], true, [0x4ac76b17032f334c, 0xc970c89c25ca0f32, 0x660b7a7b1e81ef0d, 0xb012d15aa7b3a0c7])
+ self.sub([0x91367ee2524cd2b9, 0xe75a2807cead8468, 0x4a5424a58def92e4, 0xe18de5b489e491ab], [0x8cee27be9a129aaa, 0x7a2e620e6742cff1, 0xf1be257a759deeb8, 0xcc635729fd06ce8e], false, [ 0x4485723b83a380f, 0x6d2bc5f9676ab476, 0x5895ff2b1851a42c, 0x152a8e8a8cddc31d])
+ self.sub([0x154044261f802078, 0xca56c01f53eeedbc, 0x5a2223bed17db6db, 0x9d6580d127a82fe6], [0x4d141f92d9124ce9, 0x1137e3bc248e453d, 0x55ddb9c1a9c14f3d, 0x3000fbb731f684ba], true, [0xc82c2493466dd38f, 0xb91edc632f60a87f, 0x44469fd27bc679e, 0x6d648519f5b1ab2c])
+ self.sub([0xedec950f381bfc59, 0x879da808829cfede, 0xb219293f3c43b4e7, 0x54cda63ec207715b], [0x276076fc018c48da, 0x775dceebe68e3ff5, 0xa4d514223db6b1e2, 0x531f8bfa4302e8ed], false, [0xc68c1e13368fb37f, 0x103fd91c9c0ebee9, 0xd44151cfe8d0305, 0x1ae1a447f04886e])
+ self.sub([0xbf74fafefb8ceff8, 0x1e5c93f866f9a452, 0x97bd232a2471f705, 0xb8787c17dd7e252e], [0x29ca72e66e40103b, 0xd4cf386e189a0574, 0x7ede835f4934cd07, 0x4517644849627f1], false, [0x95aa88188d4cdfbc, 0x498d5b8a4e5f9ede, 0x18de9fcadb3d29fe, 0xb42705d358e7fd3d])
+ self.sub([0xb904770d9ad7adf4, 0x5a099b58c929010d, 0x1f5121403c64479c, 0xf48fa643b2856365], [0xcf9c042e420cda54, 0xa5e97d8b4d6a5696, 0xca3dc39500765fc8, 0xd7ca8d23b8609ede], true, [0xe96872df58cad39f, 0xb4201dcd7bbeaa76, 0x55135dab3bede7d4, 0x1cc5191ffa24c487])
+ self.sub([0x11670af2800a9078, 0x62dc402baa85bd29, 0x9b6fbc27bbb7e441, 0x13b1e0026f31ed9e], [0xec168e9b9ada73ca, 0xb0c3ffca3f4115fc, 0xbf360eef41bc9477, 0x8a50130aaabbd664], true, [0x25507c56e5301cad, 0xb21840616b44a72c, 0xdc39ad3879fb4fc9, 0x8961ccf7c476173a])
+ self.sub([0x3a2659de246ba89b, 0x2a064dc7f144a83, 0x3ade7612ff5b2e39, 0xb96a4a89c5e7fd91], [0x923557c4ec6b56d1, 0x929fec2ffbaaf28e, 0xfd8388aca50b41da, 0x9751e10000dd7818], true, [0xa7f10219380051c9, 0x700078ac836957f4, 0x3d5aed665a4fec5f, 0x22186989c50a8579])
+ self.sub([0x21ff8cc5103fec4f, 0xe5fec50c88b7a20d, 0xa40ff4ac35a8b337, 0x9bef87b2e18a6b6a], [0x79c03e1e851853c8, 0xdc2e24bce77cae8f, 0x34940cd8d5b97108, 0x8e7dbe1d7a960f4e], true, [0xa83f4ea68b279887, 0x9d0a04fa13af37e, 0x6f7be7d35fef422f, 0xd71c99566f45c1c])
+ self.sub([0xe6dd5be6de31de63, 0x9f93070ef0fc6fa2, 0x5642642c64820cd9, 0x2688e58acc68184c], [0x820de00e19d305f1, 0xdee215f6952bd65c, 0xeb5275d933c53fbb, 0xbb746a7bc4b8e7a8], false, [0x64cf7bd8c45ed871, 0xc0b0f1185bd09945, 0x6aefee5330bccd1d, 0x6b147b0f07af30a4])
+ self.sub([0xeb4092191388f6e2, 0xd00dbf727cf208ca, 0x414142050f557a11, 0x58acd34df5c1f32], [0x70d613e54ea8a135, 0x214459d50ee62fd3, 0x36753952c2f3dc2e, 0xd2681148a7054cb3], false, [0x7a6a7e33c4e055ad, 0xaec9659d6e0bd8f7, 0xacc08b24c619de2, 0x3322bbec3856d27f])
+ self.sub([0x7c5a6d5189e39476, 0x5e19a29ae0605a3c, 0x33609d22bc134a75, 0xa329189f8ce5b8e1], [0xb8f5f1864aec337e, 0x1f240bab6da85824, 0xbb1e7154443ef889, 0x610ae0e00b791538], true, [0xc3647bcb3ef760f8, 0x3ef596ef72b80217, 0x78422bce77d451ec, 0x421e37bf816ca3a9])
+ self.sub([0xdce4362af3d53c42, 0xaae75906ae758069, 0xb04572c4474a365d, 0xc8f4d2dfb7a7f62a], [0xce171c7454890594, 0x1fbffcb0dbdd7ca3, 0x92935fba178db418, 0xc263b72e12e4a88c], false, [ 0xecd19b69f4c36ae, 0x8b275c55d29803c6, 0x1db2130a2fbc8245, 0x6911bb1a4c34d9e])
+ self.sub([0x880b55f4e60463ff, 0xe337eb70d20b5ca2, 0xb2d36a932bc1ca54, 0x8e2ee01b0f9142e], [0x9f58f58a3cf376ae, 0x32d4e5109c6b616f, 0x12dcae780df8a296, 0x6408307543c58b1b], true, [0xe8b2606aa910ed51, 0xb0630660359ffb33, 0x9ff6bc1b1dc927bd, 0xa4dabd8c6d338913])
+ self.sub([0xb09af0fb2a91758f, 0x3a36680fdfff5c68, 0xd2595202cb28643d, 0xf25fae2fd7a08806], [0x45139a1b7072cd80, 0xc1496ae224365a01, 0x3f936b8a0e74c9f9, 0x965960c322eb83e0], false, [0x6b8756dfba1ea80e, 0x78ecfd2dbbc90267, 0x92c5e678bcb39a44, 0x5c064d6cb4b50426])
+ self.sub([0x5a5c2e9f5a53f68b, 0xd00afe9204c4a08d, 0x2d4492a9e840b080, 0x6ff655da6b3f48c1], [0x8931b537999d68b9, 0x53eaf9228cd587ba, 0xbc3c3b235ed9d16b, 0xa3985cc9ee9060c4], true, [0xd12a7967c0b68dd2, 0x7c20056f77ef18d2, 0x710857868966df14, 0xcc5df9107caee7fd])
+ self.sub([0x417b02ba95bc57a6, 0x8a3ec2bcdef8f63d, 0x155c862f1bd16da, 0x9d39f3693d071186], [0x6e8e5aa987a196f7, 0xb7aaac353556dae9, 0x82e191f2941ed05, 0xcf39403d9fa1a9d8], true, [0xd2eca8110e1ac0ae, 0xd2941687a9a21b53, 0xf927af43c87b29d4, 0xce00b32b9d6567ae])
+ self.sub([0x5ea1b3e85da3847d, 0xa4c352240068ecd4, 0xcc5d910e0283f2bb, 0x806b9a95639a9631], [0x302a3189f198c13e, 0x245e326375310220, 0x92c73ff083fbc843, 0xa2e595ee38aee41d], false, [0x2e77825e6c0ac33f, 0x80651fc08b37eab4, 0x3996511d7e882a77, 0xdd8604a72aebb214])
+ self.sub([0x82799533831dea12, 0x6d596455835b3b13, 0x73cb6f361d7b98ee, 0x1807a2413e7ff856], [0x69290b7ec437f782, 0xe28a8f4913f028ba, 0x3d04284ef9423ce4, 0x4d312dc3a9ed05c5], false, [0x195089b4bee5f28f, 0x8aced50c6f6b1259, 0x36c746e724395c09, 0xcad6747d9492f291])
+ self.sub([0x6a6b13cf9f36f736, 0xf6b573187d54b69c, 0xff17bd0924d7b11e, 0x72600b47a10b4c93], [0x4c3ca1128d7fefb0, 0xf9b9074b44d0c5ae, 0x17dd40a29ca9ee78, 0xbc9ee0c43f5854c8], false, [0x1e2e72bd11b70785, 0xfcfc6bcd3883f0ee, 0xe73a7c66882dc2a5, 0xb5c12a8361b2f7cb])
+ self.sub([0xe0c91ec7a150ffd4, 0x7f23bbd5616936eb, 0x71a7d74e6a18a3a3, 0xf00b820a63590e9c], [ 0x2b2c05f6644a14b, 0xe3dcc84abec7618b, 0xa77779438e2810af, 0x8eb2e039e1be5139], false, [0xde165e683b0c5e88, 0x9b46f38aa2a1d55f, 0xca305e0adbf092f4, 0x6158a1d0819abd63])
+ self.sub([0x4c8590f1a4972b40, 0x8a523190ae1d51b3, 0xc366f0e4baec6b0d, 0x3e78f681708cdc5], [0x40d7f24391d0de33, 0x7ebe741d9b98402, 0x5d9c449c8820e202, 0x324a4f44f1c8df14], false, [ 0xbad9eae12c64d0d, 0x82664a4ed463cdb1, 0x65caac4832cb890a, 0xd19d4023253feeb1])
+ self.sub([0x51fa44850151435f, 0x48768ae88044d255, 0x55dff3d6147340f2, 0x84e0111b8421da47], [0x104a9cd23e9594c8, 0x3047d98eb3f8ba50, 0xedd5b9f1bef91332, 0x3c6803c04aa7b1f3], false, [0x41afa7b2c2bbae97, 0x182eb159cc4c1804, 0x680a39e4557a2dc0, 0x48780d5b397a2854])
+ self.sub([0xd1a77236126224d9, 0xdad8a56020c96b46, 0x9c24ac6c69773ee, 0xac68fc6af6205d2a], [0x2210190f05f40b42, 0x420c8faad48b12f6, 0x35d71317abede7c1, 0x4a67267db797cf40], false, [0xaf9759270c6e1997, 0x98cc15b54c3e584f, 0xd3eb37af1aa98c2d, 0x6201d5ed3e888dea])
+ self.sub([0xccc9b10a2b33a753, 0x497e86cdec253b8a, 0xcaf00a286e0f5a77, 0xd7342062eec78224], [0x7d46235665c3e411, 0x3c216349e6f7544f, 0xa62afd65d53ccd10, 0x909ff3bde65aa333], false, [0x4f838db3c56fc342, 0xd5d2384052de73b, 0x24c50cc298d28d67, 0x46942ca5086cdef1])
+ self.sub([ 0x46f6d814d90ea81, 0x27a1caf1abf0aa85, 0xc29bff95fed2920d, 0x3eb6b9b0ccca2ba5], [0x3d73adee75548ec9, 0xf7b5a278c5aeaef0, 0x467351e75719607a, 0x7c5e105e56412194], true, [0xc6fbbf92d83c5bb7, 0x2fec2878e641fb95, 0x7c28adaea7b93192, 0xc258a95276890a11])
+ self.sub([0xabcae5edffd0668b, 0x9c8eaa12c633786d, 0xdaf0cf53f0506e51, 0xf9b4fafe8f2b734b], [0x47ac7c90067ea551, 0x1f916052ff0bc9d8, 0xea9abaa9e6d4d614, 0x9fbb20d131da1331], false, [0x641e695df951c13a, 0x7cfd49bfc727ae94, 0xf05614aa097b983d, 0x59f9da2d5d51601a])
+ self.sub([0x6d33a8884cdaadc6, 0x35cbb98be94c71e7, 0x40b41fc3be76cfcd, 0x54a9da59160083d7], [0xc297b2c668b69f51, 0xfc131300da9ac596, 0xf59f69859770d4c2, 0x6b26ccdfb397647d], true, [0xaa9bf5c1e4240e74, 0x39b8a68b0eb1ac50, 0x4b14b63e2705fb0a, 0xe9830d7962691f5a])
+ self.sub([ 0xd70a1d5dffcc163, 0x2a259e4472b31ec4, 0x3b2329500bcc294f, 0x44f9ca3cafe4698], [0x23839e164849932c, 0xf8ced25f5370b1a4, 0x3a6fc2b1ecc7b6c9, 0xf28399eb124c3bb3], true, [0xe9ed03bf97b32e36, 0x3156cbe51f426d20, 0xb3669e1f047285, 0x11cc02b8b8b20ae5])
+ }
+
+ private func sub(
+ _ lhsWords: [Word],
+ _ rhsWords: [Word],
+ _ expectedOverflow: Bool,
+ _ expectedWords: [Word],
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let lhs = self.create(lhsWords)
+ let rhs = self.create(rhsWords)
+ let expected = self.create(expectedWords)
+
+ let (result, overflow) = lhs.subtractingReportingOverflow(rhs)
+ XCTAssertEqual(result, expected, "reportingOverflow.result", file: file, line: line)
+ XCTAssertEqual(overflow, expectedOverflow, "reportingOverflow.overflow", file: file, line: line)
+
+ if !overflow {
+ let result2 = lhs - rhs
+ XCTAssertEqual(result2, expected, "-", file: file, line: line)
+ }
+ }
+
+ // MARK: - Mul
+
+ func test_mul_1_by_1() {
+ self.mul([0x98b9263c8353fe33], [0x1c49a88b8b567f1a], [ 0x0], [0x10e03187465e3d94, 0x8e601e3a17c51e2e])
+ self.mul([0x6f19b8b8fe1ef210], [0xedee9550db107400], [ 0x0], [0x67425aba0ede718e, 0xbc172328d6af4000])
+ self.mul([0x75b6228cdbd42b5c], [0x3297624cc9614734], [ 0x0], [0x17432e60ebea0477, 0x23670e5428fb52b0])
+ self.mul([0xc9b6182d56f389e8], [0x11ea991475371515], [ 0x0], [ 0xe1df0ab0f40430f, 0x34e91e53c5225808])
+ self.mul([0x5b1c2bd3710613e5], [0x71bc15e8301000f3], [ 0x0], [0x287a5fd47665b973, 0x7c759e587714e25f])
+ self.mul([ 0x269841aab3d7627], [0xd16c5c197800f0db], [ 0x0], [ 0x1f92a3ba9f65fb9, 0xfb4c608b6458a35d])
+ self.mul([0xf8ca5f58526f0855], [0xb6579a185c5dbee5], [ 0x0], [0xb13502509bb6dad3, 0xe8cf9a7cb8628a09])
+ self.mul([0x1e80ffd97572228d], [0x9030fbdb54c6cd10], [ 0x0], [0x112e661ce825522c, 0x9c9f37dfb9db11d0])
+ self.mul([0xeae7526ca3c2fac7], [0xcd59a94e403c2801], [ 0x0], [0xbc6d82c729bdee57, 0xb1543409a19612c7])
+ self.mul([0x201e1a59068c40f2], [ 0x1c8460e09370e70], [ 0x0], [ 0x393e68ec9569b0, 0xe17574f4fee7a5e0])
+ self.mul([0xf20d144d6486cc5d], [0x466a34611f5714ac], [ 0x0], [0x4293fe7e0e3ed0e3, 0x70f17fa5c923927c])
+ self.mul([0xc0611ee517f37c15], [0x583ef1d028906e3e], [ 0x0], [0x4250afdc1731fb9c, 0x7222062f80191316])
+ self.mul([0x66dee8283f3f5fab], [0x1a8e06723686cb7e], [ 0x0], [ 0xaabb5cffb5d07b1, 0x7b874376878faf2a])
+ self.mul([0x8e9f8757e2a72c07], [0xae4e98db3ee0c6cb], [ 0x0], [0x611c37c1d6b182bc, 0x8441eceb3ebd538d])
+ self.mul([0x43845a929134936d], [0x871e0788d7e3951c], [ 0x0], [0x23a2b7429d7a0b7e, 0x28d76ce2c03590ec])
+ self.mul([ 0xce1dd15873b9870], [0xbc69089d255eeb95], [ 0x0], [ 0x97b276e7472e98f, 0xb21bb24593be8930])
+ self.mul([0xc69a511af3462e86], [0xc3089d3637110e12], [ 0x0], [0x974e3a90c3291519, 0x75dd671ed260996c])
+ self.mul([0xd79394707ac972c7], [0xa7c89f8c11a32607], [ 0x0], [0x8d4a377bf4ba90e0, 0x89c3ae048e40ad71])
+ self.mul([0xf29b0318291783d6], [0x7dff1c8a3be9203c], [ 0x0], [0x776773f6d5ce60a9, 0x287009f1e1c3a628])
+ self.mul([0xec6937595105cf14], [ 0x2ad787eada9747c], [ 0x0], [ 0x27904cf68187fea, 0xc833fd9818d95db0])
+ self.mul([0x72cc59d66f360021], [0xa8bf6e4f82191017], [ 0x0], [0x4babf2e335f94920, 0x6baf9bd231512f7])
+ self.mul([0x3512db5fbc2c38b0], [0x699ea99396f9a242], [ 0x0], [0x15e5a0c5b5373f42, 0x817fd10cc275fd60])
+ self.mul([0xe0002cb098f05f65], [0x9e49a5860256f9fb], [ 0x0], [0x8a808c771bb14992, 0xb543df449664c507])
+ self.mul([0x991926aea2d79842], [0x8590217b6b9c23b1], [ 0x0], [0x4fe043448a42981c, 0xd27fa0bc6f194ba2])
+ self.mul([0x220be150f9686151], [0xd62a2619c30522c5], [ 0x0], [0x1c7b895dd850ede3, 0x628e0c8363d4a555])
+ self.mul([0xb236d04f0d703a21], [0x9ae4e6c659112869], [ 0x0], [0x6bd452c8680a9e53, 0xd25e4eb5614dff89])
+ self.mul([0x200c7f8dcb260aed], [0x5c241986ea78b0ba], [ 0x0], [ 0xb8902cb014c62e9, 0x93d058f823ee032])
+ self.mul([0x9f8aad77bf0cc747], [0xe77ca21ac67e6bc4], [ 0x0], [0x9043ceb984f482a6, 0x302cf2299c053f5c])
+ self.mul([0x3c285a57aeb73b8e], [0x39ec427617f4716d], [ 0x0], [ 0xd9c80eef6412dde, 0xb40c37e6caa60976])
+ self.mul([0xbde72136a4a62f7b], [0x6eb16cd50d206adc], [ 0x0], [0x521cedcefe95b813, 0x9bea95a87cd9bbb4])
+ self.mul([0xb760f40ef0026ed5], [0x2c0b33d1ed01d28a], [ 0x0], [0x1f8cb03bbe71054c, 0xf7f0ec72000f78d2])
+ self.mul([0x2b9d15ea0a706a93], [ 0x59950fb0061ea43], [ 0x0], [ 0xf4301b8502bd6e, 0x3c340c84de894279])
+ self.mul([0x76a983c6c1c7482a], [ 0xec8dcdaa1f2a9d2], [ 0x0], [ 0x6da6002d68a6640, 0xc3555d8025d0ec74])
+ self.mul([0x1319aa6de00d8f95], [ 0xb38fafcc2938070], [ 0x0], [ 0xd65aa9ece11d91, 0xec7c475d2a485130])
+ self.mul([0xff918e0052382bcd], [ 0xfbca1294384c82], [ 0x0], [ 0xfb5d71a0913449, 0x4a2e8098865f1a1a])
+ self.mul([0x7d3612b4b27e9ab9], [0x4119db9ae1017a47], [ 0x0], [0x1fd76070b78ca881, 0x26159bf30a92134f])
+ self.mul([0x2c5163012430bdeb], [0x768ffd32438e0a45], [ 0x0], [0x148670edf6c10996, 0xfc63e65c81e85e57])
+ self.mul([0xc30aed6697885d7a], [0xd7475578544852f0], [ 0x0], [0xa40486874ee095e3, 0x7aa81cee1018b660])
+ self.mul([0x71197e018a01a1e9], [0xc6c60eaece384738], [ 0x0], [0x57d137a945411b84, 0xf116489f8d3b09f8])
+ self.mul([0x2f6e0e430b1718cd], [ 0xb9c6efe16c7aba1], [ 0x0], [ 0x226b63defe02900, 0xa4e0d0e4c7287ed])
+ self.mul([0xcd0bf2846b95d953], [0xb233ce11ee511ece], [ 0x0], [0x8ebbcd0f5d035e3e, 0xf9513e220f4f9aca])
+ self.mul([0xcd55bc2d57b807e8], [0xe98a7469dcaa3c27], [ 0x0], [0xbb5215dc77b4bba4, 0x16c910a01ef39458])
+ self.mul([0xee51365c5285526f], [0x9505391d52b56be1], [ 0x0], [0x8aba21652d21d3ac, 0xa86e77e0171cd88f])
+ self.mul([0xc49920fbae649672], [0xe2091cd424a9cefe], [ 0x0], [0xad962ea40360b689, 0xcce89403521f011c])
+ self.mul([0xd413c4e2f25537ae], [0x49d20452db1cf515], [ 0x0], [0x3d279ef12c3299e3, 0x3e144e39604f1746])
+ self.mul([0xddf1843e34721490], [0xe10385104dff2924], [ 0x0], [0xc314526bd53e528f, 0xad6135f770c5f440])
+ self.mul([0xfeb61ec44280d340], [0xf1ab89c1fa73544c], [ 0x0], [0xf0741fadc6a88634, 0x4b31b981694fb700])
+ self.mul([0xbbf118c7230123ea], [ 0x93349026744032b], [ 0x0], [ 0x6c1208073a9ed5d, 0x13a2427094c4c64e])
+ self.mul([0xcec586f5694b7481], [0x6e758dad23ac3dd9], [ 0x0], [0x5937d2b2c5090a80, 0xf4fdb7ea25647e59])
+ self.mul([0x7d708ed078d0805a], [ 0xf4045c0bfe87613], [ 0x0], [ 0x77916afb4249afa, 0x53b843608a3302ae])
+ self.mul([0x17d2ebd3dd2c8bd5], [0x337a6156908136c6], [ 0x0], [ 0x4ca688e91b07219, 0x2d81472cbc4814be])
+ self.mul([0x44459197d3f9ba8a], [0x627ad5f742ca2f8f], [ 0x0], [0x1a4363f354934664, 0xf6f6a60506a28916])
+ self.mul([0xade040438e5c57dd], [0x6f3c1cb204b3ccc6], [ 0x0], [0x4b8d0fe9cab51a2b, 0xacbac94c94f710ee])
+ self.mul([0xfbfd2bb6d2e69c40], [0x13454865beb3f42c], [ 0x0], [0x12f7fcbeb4d2a902, 0xccb808e6cd4fdb00])
+ self.mul([0x6efa5101bd6b0d98], [0x52d0ccf3ba04c8e4], [ 0x0], [0x23e6b22d80e26ac8, 0xc4d3465cfc56db60])
+ self.mul([0x56a838f54ce35d9d], [0x20623edd6fccc8e3], [ 0x0], [ 0xaf648cc2a60b1df, 0xea87d6e37adaaa37])
+ self.mul([0x2f2f699540cf1691], [0x63098196cd406f80], [ 0x0], [0x124116621e204812, 0x4281d487f3942780])
+ self.mul([0xbb14e2c93ee5ee4f], [0x3fec8bbe88b270c3], [ 0x0], [0x2eb701302c89a788, 0xe65870eb2c55162d])
+ self.mul([0x90f29b331ba0798b], [0x1a37fafdb0b6c6d7], [ 0x0], [ 0xed855ff182ace12, 0x1844b34f4a9995bd])
+ self.mul([0x4978370f82b10b3d], [0xa2d956ed7acd2ca6], [ 0x0], [0x2ebc72b106e22cc4, 0x61814b1f3e94c58e])
+ self.mul([0xf7c6b8d7814b6020], [0x2ea92a9726b05d37], [ 0x0], [0x2d29709fa57c7aa3, 0x548d073bff1d46e0])
+ self.mul([ 0xe750567d6844cbc], [0xb7fc6e38c2f7b25c], [ 0x0], [ 0xa63e848097e350d, 0x2a89f165964a4b90])
+ self.mul([0x2a8f49f4092348b5], [0x746bebc16de3c9db], [ 0x0], [0x135ade982e52752a, 0x13ebf6a40ec44fd7])
+ self.mul([ 0x6b2ce4fdfa136ba], [0x9ce02e80d9b77f1b], [ 0x0], [ 0x41ad364b255ca8e, 0x9c0eaeff591d0b9e])
+ self.mul([0x5b203199553f0688], [0x81f942e3f5f7652c], [ 0x0], [0x2e43f31df3fc0f13, 0xaf7a70a3f9a0c760])
+ self.mul([0x1e05c36269a0cc90], [0xd77059e36f07425a], [ 0x0], [0x19440427ced312cb, 0xd971f9c9f350aa0])
+ self.mul([0xace8a35582d44115], [0xdea0998b3d1fe1a8], [ 0x0], [0x965e36bf521d9738, 0xdf05a6b74b092ac8])
+ self.mul([0xfca6bab67a9132e3], [0xd92eea2b49b1bf86], [ 0x0], [0xd657a1555a163a72, 0xa46310fe66eaffd2])
+ self.mul([0xf9374cfc91f6dcb0], [0x104844ab7e016565], [ 0x0], [ 0xfd9cf3713369284, 0xe509416178268170])
+ self.mul([0x59a1da97a9286ed6], [0xffba664e2dd1ed38], [ 0x0], [0x59897c27c0242901, 0xe94a77798a2a5cd0])
+ self.mul([0x83cef9ed43c9245b], [0x66890cf30797e1b8], [ 0x0], [0x34cb08031e12a2a8, 0xa8f6d2070331c68])
+ self.mul([0x438d5e3913807c20], [0x5098bff60e6a6af9], [ 0x0], [0x15447c092eeeab63, 0xad4a8854509dfb20])
+ self.mul([0xde09f733f8884293], [0x4d11fecd7bd57589], [ 0x0], [0x42d89b0428dcf049, 0xe1e576794ca7cfab])
+ self.mul([0x901d3c3632f1a4af], [0x76789bf2b90cc0b8], [ 0x0], [0x42b15f3f8c274da1, 0xd2b292ee08659dc8])
+ self.mul([0x9f0b30b920c58adc], [0xb24ddee001c4134a], [ 0x0], [0x6ec628b53f9c3e1d, 0x8c27f83b4ed87798])
+ self.mul([0x144ad609c34fbf83], [0x47cf263923c8623f], [ 0x0], [ 0x5b12ce76a554447, 0xb4cafcd31f48473d])
+ self.mul([0x1d0710a7e1b5d107], [0xaf8271d1560a2583], [ 0x0], [0x13e69ee1136c2208, 0x61a96c914b85f995])
+ self.mul([0x8efb53b192084321], [0x457f856c898e66d9], [ 0x0], [0x26d0f6c292ca449c, 0xe2c39521f90e0cf9])
+ self.mul([0xa8ea237769adaa79], [ 0x10dbda42a6db5f7], [ 0x0], [ 0xb1fb2872a6ba94, 0x416bad5c2f9c07bf])
+ self.mul([0x1b7175586453b2c3], [0x7924d8b6bc06b00e], [ 0x0], [ 0xcfc93a699adb676, 0x6b629fae6c0bd6aa])
+ self.mul([0x47da33d06f949400], [0x9f9ff289dcc28cff], [ 0x0], [0x2ccd6ac79a7978af, 0x60f30b6c8def6c00])
+ self.mul([0xcd4f8b7f3c5199ae], [0xefb66d06762344ae], [ 0x0], [0xc03f913902c67568, 0x415e2892e312ac44])
+ self.mul([0x79468c8b41e8976c], [0xc63960719076efbd], [ 0x0], [0x5de7bf194143db3c, 0x130e526659dd9ebc])
+ self.mul([0xa98b72e4e3431abd], [0xa86050f2868ba66d], [ 0x0], [0x6f834d4d7dcee12d, 0xaac732eab987f079])
+ self.mul([0x431c1693f0a1dd2f], [0xa94929b590f93b27], [ 0x0], [0x2c60b8d9328543d6, 0x8008c1489598729])
+ self.mul([0x560466a9926beace], [0xe127f04c6ebd32c1], [ 0x0], [0x4ba749a47c4911d6, 0xd506d229554e414e])
+ self.mul([0xb20763f087947352], [0xab0307ebc6664920], [ 0x0], [0x76ed0b5a00deea5e, 0xdb820557a61ccc40])
+ self.mul([0xf87e96e2c9bb62c7], [ 0xff324cd0b4b660a], [ 0x0], [ 0xf7b6eb958a4d040, 0x69037dbc07fa25c6])
+ self.mul([0x6fcea99f82a7db06], [ 0xd5073bf9d2c4fbf], [ 0x0], [ 0x5d0a1bfa183a8a7, 0xce9448fa9adb437a])
+ self.mul([0xca875eecddf38be7], [0xd1e376ed67e56fe1], [ 0x0], [0xa60c789ec482ae90, 0x4c1ca96cc35a1f07])
+ self.mul([0x82bbb3b3418d4b6e], [0x24059b2f466c77f5], [ 0x0], [0x1265422f81f2648c, 0xb87a0b7450b15246])
+ self.mul([0x22831a8efa86ece8], [0xda4cd4520c788868], [ 0x0], [0x1d6e002945749426, 0xb26a83d7616b7e40])
+ self.mul([0x79498808a1d89b83], [0x1a8cfae82e429b40], [ 0x0], [ 0xc9442e7148efd15, 0x4dcbea83e1531c0])
+ self.mul([0xb6e92aa7dcce30be], [0xa19157c7e958798a], [ 0x0], [0x73707c9cce6a60c8, 0x10fc5cca2b80146c])
+ self.mul([ 0x5309ceea535a4a6], [0x3a43bc0d2cfc2758], [ 0x0], [ 0x12e63171b841569, 0x2c036abc91ede310])
+ self.mul([0xa0a5f3bc8b1cd806], [0x7f78a467d1d532ea], [ 0x0], [0x4ffe08e03ffba4ae, 0xaa8cab496d8ca17c])
+ self.mul([0xad21cc0adfb3539f], [0xba165038abee0507], [ 0x0], [0x7dd9a56852e61891, 0x9778705915b6459])
+ self.mul([0x9acfba5e4e423ee5], [ 0xe8ccec7de3d4496], [ 0x0], [ 0x8cc82d719b15e8a, 0x22e582620616ae2e])
+ self.mul([0xa00b5860e531a30e], [0xd12a57e4cb74e380], [ 0x0], [0x82c3bbf67f58d6e6, 0x239b4cef98bef100])
+ self.mul([0x1d88498c2e813848], [0x5169be1f811269d6], [ 0x0], [ 0x964521a4e30b526, 0xcc559d6c1d2a9430])
+ }
+
+ func test_mul_1_by_2() {
+ self.mul([0x6da9a8616a88ff8f], [0xcdced3a3e3a989cd, 0x4091a2cbbf798332], [ 0x0], [0x582975048b08000f, 0x2957290c80ca90ae, 0x2d2e725c651f16ee])
+ self.mul([0x4cb0a6a4afb3e975], [0x34257b7fc14c2d5e, 0x4d75306f02ff83ee], [ 0x0], [ 0xf9f1c60af19bc36, 0xc0c352ebaafc38a, 0xc72cc8c7df44e9c6])
+ self.mul([0xb36cc36a00e13f53], [0x6fa41fd7d635e85d, 0x5d4f3358f48bf085], [ 0x0], [0x4e3f30b9986ee29e, 0xa4b2c91fc5255c2a, 0x30c25f161e74b61f])
+ self.mul([0x2c317781fb39ef94], [0x6e771876c2205653, 0x6dece2064c617a18], [ 0x0], [0x1311d0918ae303fd, 0xa6c0fb0f4a68b988, 0x7fb8cf74e0aefde0])
+ self.mul([0x5274f6cafe284895], [0x327642f0d2757efb, 0xea3db20990baf64b], [ 0x0], [0x1040efad20468361, 0x3c04548f2e54b705, 0x7b41d708b7ce71a7])
+ self.mul([0x32349585463b702b], [0xbd66b7b21482d293, 0xac2b2c283be80dfd], [ 0x0], [0x2524f75d7b6bdd0c, 0x326c04effe374fca, 0x6d50ccb6fd68097f])
+ self.mul([0x238062c0326f6391], [0x686edd577cef0351, 0x24752377c88167f4], [ 0x0], [ 0xe7b87fa7a47bc52, 0x8cfd961c6b35848, 0xfa02fecc574b3d34])
+ self.mul([0x4044dfd234746b1d], [0xd435d2f2c2c5efda, 0xd99a849026ea3a0a], [ 0x0], [0x35468c91db912b60, 0xdaba6954949d68f, 0x747cccb8a352c122])
+ self.mul([0x5a459fc19e784b0e], [0xdc33ebe4755e73f8, 0x6c049d130f82d7b8], [ 0x0], [0x4da62457b0ce17d9, 0x92a59a921ce20a72, 0x70ff1cc6dc9ab410])
+ self.mul([0x88dd3f078612ebef], [0x5667e4ab68b1c937, 0x4870c687cc70dc79], [ 0x0], [0x2e31de7192f60875, 0x8758cf1f4b47058a, 0x2be443194e42e7f7])
+ self.mul([0xf78da91a11fc0737], [0xd86223e70e449b3e, 0xfd28e38d2fad6da4], [ 0x0], [0xd13e6da087e5c68c, 0xe0ddde7833efe6ef, 0xd579994acdb20a3c])
+ self.mul([0xa62a46f7990fbb61], [0x92af5c42c7f67249, 0x2001160388868487], [ 0x0], [0x5f35ef4242beb56e, 0x7b0af6df4473130d, 0x1c78196870afd427])
+ self.mul([0xd5242130aac77e03], [ 0x7d78d48813ee8f6, 0x357ce0958189cb77], [ 0x0], [ 0x68773e178979b2c, 0x1d346d8c2b79a9d1, 0xa009e80c8642f465])
+ self.mul([0x13804b5a3497cbc2], [0xcc80357af4738468, 0x78d61a3683be2e49], [ 0x0], [ 0xf9400447c5fecae, 0xe65a252d87b01ee3, 0x79df1705c5e1f652])
+ self.mul([0xaa515d282009d645], [0xbe5d58d39cc05ca0, 0xf147ef5053da9fb], [ 0x0], [0x7ea67dcb60ba1319, 0xe2cf64b0ff1e4fe9, 0xf8b9ad0e4f89a2a7])
+ self.mul([0x4bbfb8a29a7697f2], [0xbc3f76c33f9dbc33, 0xa46714ad2cd979a3], [ 0x0], [0x37b392e9fe6a8c87, 0xc217b7d34741e375, 0x1e1a51b8cb762116])
+ self.mul([0x54135de645a550a3], [0x553423fdb8dc980d, 0x2f325a4400b76639], [ 0x0], [0x1bfb8dee8196af84, 0xf6b23bd3e780f56f, 0xda6e2a7e0474e64b])
+ self.mul([0xd1b29ce47c11ed54], [0x8f125f3bd12fe67f, 0x459975c63076a348], [ 0x0], [0x7531d234f11bbe37, 0xebed3dbc2215a145, 0x7f3f1afd73df3ba0])
+ self.mul([0xe276325015e4699d], [0x1dd0b36103d183e6, 0xabc72ffb755bbaff], [ 0x0], [0x1a60026a6ae472f8, 0x277daf4a5d410420, 0x4f25da130f104563])
+ self.mul([0x6f2c0ab5fa8121df], [0xafcd466d1b1bd059, 0x12e32b6b73eda06e], [ 0x0], [0x4c58402c666beacb, 0x52a5c49a747630ce, 0x1105dfbae11aedd2])
+ self.mul([0x730430a6e8814c17], [0x9ed64dec181a0b71, 0xd96de6fe43d4d39e], [ 0x0], [0x475cde8a04594ef9, 0xf3af5ff0442c1d7a, 0x29332375198feb32])
+ self.mul([0x9969df50515f295e], [0x17473ef340910f79, 0x75a4a62c8aec2533], [ 0x0], [ 0xdf3352690dbf11f, 0xc2e139ab148abb24, 0x2eac78f1c597d3ba])
+ self.mul([0x43af346ff71d1684], [0x27f73d1a4b03d7a3, 0x1ed9122fa45f9a07], [ 0x0], [ 0xa910f3059cc352d, 0x8d2380a33128169b, 0x67018a2b2c53059c])
+ self.mul([ 0x672e2187525fd4a], [0x95b785db91702349, 0x5c8dc571b161218f], [ 0x0], [ 0x3c57d171312df93, 0x690b91e1ea9304b2, 0x905d9f278e90656])
+ self.mul([0xf3b845dfb72837cf], [0x40cd42e3798b90a5, 0x39f2b0285fe93eaa], [ 0x0], [0x3db17bb5f4105389, 0xda184371ce1caa0b, 0x34353d93faa03176])
+ self.mul([0x623349d048797899], [0x25a48dcabc02a275, 0xbc7b63db9e4ed3fa], [ 0x0], [ 0xe7088ea68269f70, 0x9d96bc72cb788c8e, 0x7d2e247711a3e06a])
+ self.mul([0xb0c09931066f4367], [0x3f0ed303912d5cf9, 0x377e9cff44a3d4ac], [ 0x0], [0x2b89a1eca605585d, 0xcb74410af9a66357, 0x53c9149cbd279534])
+ self.mul([0x9b87571e3c74933e], [0xfb7faa1da9747fb9, 0x3afa716ff8479c6d], [ 0x0], [0x98cb41e8c2685c34, 0x3534f9b6dc9559c4, 0xa7c06d91ad8e7966])
+ self.mul([0xf9cb060b5d3aee80], [0xaf2f305891b80b29, 0xbfe4b9e194c6133], [ 0x0], [0xaaefd4945ded2f7a, 0xf0edaec09dba2540, 0x8975a460351c0380])
+ self.mul([0x35a04de9040c74dd], [0x5c02e0ff2db185eb, 0xb374ff0b05efd86e], [ 0x0], [0x1346366211b25e53, 0xc06ef1d60e1a76ca, 0xa65243f2ab47aef6])
+ self.mul([ 0xf90baa8938e257e], [0xd0aa20775b270b76, 0x2a80cb6deedd6702], [ 0x0], [ 0xcafefbe44fc23c2, 0x64e20af40efbf5d3, 0x2d31b1e6d9f7fcfc])
+ self.mul([ 0x59ba9536c2656], [0xc276fa1ff3d87f29, 0x3760226eafa1e98b], [ 0x0], [ 0x442918bfaf55f, 0x695ad11b7f6b8b5b, 0xd30cec0aa0b316b2])
+ self.mul([0xf97f014662370fee], [0x928b617b2d997305, 0x551f18a5f0b40589], [ 0x0], [0x8ed245b1012ce33d, 0xd20f54612a2c5611, 0x4c5c50a1f61f2c5e])
+ self.mul([0x1b49d7596c3741a2], [0x385ca2b3376d6de9, 0xbe85bbf078eb03c4], [ 0x0], [ 0x60206fcc89faba4, 0xeaeb7d979768d1e0, 0x81c80818afc92608])
+ self.mul([0xa6ddca75b3e4ab7f], [0xd19d2932e22b3b62, 0x4c7b9b313d79215f], [ 0x0], [0x88a18329f23762be, 0xb903f7f517750fac, 0x3d868a1f8dfe0321])
+ self.mul([0xd8d6d0ce766f1da3], [0x46e4bd9de1e3381d, 0x48e29ae2417df964], [ 0x0], [0x3c0c7d06bf7f9ca8, 0xb1c5e6589e89a8e, 0x6db6a48632d21eac])
+ self.mul([0x59d5b8ba2cfa6ba9], [0x14fe1b311504163f, 0x103fb732e389664e], [ 0x0], [ 0x75dde069800268d, 0xb2bcda33ddc9a189, 0x52b26c21f3a3237e])
+ self.mul([0xf7887e8c57d435ac], [0x8fe6cb3967523ced, 0x4885f13457adef54], [ 0x0], [0x8b2467d2d4cb5914, 0x8ec7ce1bc462b56d, 0xbd9cd7a1a8f93070])
+ self.mul([0x9799e547a3dc09f2], [0xcad02b57d3856423, 0xc82daea921009f39], [ 0x0], [0x781ab59fad938cbb, 0x267f222b0347dc0c, 0x1d59f5c3582b84e2])
+ self.mul([0x1f49054f72234b6a], [0x5ddc90193a1d491e, 0x4b53f1ef25867adc], [ 0x0], [ 0xb787b4a94f53d19, 0x7118d816f69a2595, 0x3cad7700b3c15318])
+ self.mul([0xf36bc1a887c271fc], [0x3d24269b63e83fd6, 0xa6012601877ed644], [ 0x0], [0x3a230d02240933f1, 0x6ee6f94c93aa1e09, 0x2bb6880c98f6eef0])
+ self.mul([0x26d48c340cfe2675], [0xa6582604917b656d, 0x1bdfc884b23dd2f5], [ 0x0], [0x193b31be308449f6, 0x444ec15c5979c761, 0x35deec196ea7c7f9])
+ self.mul([ 0x94c3dfad965188e], [0x8a87a50dff6f2e6c, 0x6799836e281d6374], [ 0x0], [ 0x508069c8e91f2e3, 0x133834abf4f4742b, 0xddc5bb0a92640a58])
+ self.mul([0x28fe4990d753c21b], [0xb1b9c5628cf9daa1, 0x2c1a6cba537ffa8f], [ 0x0], [0x1c75903bc5143674, 0xf036df4aca1cd30c, 0xd209f04a1fbccb15])
+ self.mul([0x58db688bdccaadbe], [0xdfe78a0b1527d2c5, 0x5448f3ef69037578], [ 0x0], [0x4db77df74aa97d6b, 0xe716a5b8e1beb79a, 0x3e67337d17a34710])
+ self.mul([0x6bf15d1f7785fccd], [0x9b617f0a9293f558, 0x2f2fe2a37b3d176c], [ 0x0], [0x41843f6788b8b382, 0xa48b404c47496f29, 0xf83de8ee3216117c])
+ self.mul([0x93b8fc5484b14617], [0x3ca1d2d4106e8b33, 0x9e18207e3712a340], [ 0x0], [0x22fcbc229deaa456, 0xb576425004718f10, 0xd987af75ea902ac0])
+ self.mul([0x7ead9d738f091db1], [0x278dc2c0f3317f14, 0x759c233bdf42096f], [ 0x0], [0x139298fb5f4f1f2d, 0x9596abdb842074b9, 0x7c3931242da118bf])
+ self.mul([0x4529db58864d83b0], [0xca11add3f76bbece, 0x27b8e04260f05804], [ 0x0], [0x3697cdd1f86d3075, 0x8d5bee8527ab9203, 0x371ec8fa337a8ec0])
+ self.mul([0xc83ab26e72b82dcd], [0x1ef0616355d7e059, 0x2944e938410ed641], [ 0x0], [0x1832e41c2870523a, 0xbc6ddc86141c5531, 0x6ea8457ca542ff0d])
+ self.mul([0x3705e0590df6ebc1], [0x606fdc056544dad6, 0x46589bba882752e], [ 0x0], [0x14ba3ef7e187ae51, 0xcc2ce222175c3a5c, 0x4fa7a477bc1f91ae])
+ self.mul([0x747bbaf6ee08560c], [0xb6244fc44825cef7, 0xbf6a747964ab3d7f], [ 0x0], [0x52e07c9d5634bf7f, 0x362f2d1b21dcf776, 0x7ac0f4123ca78bf4])
+ self.mul([0xbfa7d681b362f568], [0x62a3890fbf916ea0, 0xc6f7941082a673df], [ 0x0], [0x49d8ae97d74d2e7b, 0x49ad6f13e766eb9b, 0xf12a27daa8e17d98])
+ self.mul([0xdf9220b2b8373592], [0x9ff6940d124a7f57, 0xcf4b2cd3af2d617d], [ 0x0], [0x8bb31a065173a0a6, 0xa099d7a9d1e77040, 0x86920dba16eb7a4a])
+ self.mul([0xbeb3b2246dc22631], [0x9c6a3ed91dda8db2, 0x176c671d23a59fdb], [ 0x0], [0x7484a5c737abbee1, 0x32138699c19212f3, 0x9be2593dcb641aeb])
+ self.mul([0x17a152fc5b915607], [0x9a2f05bf93c36cbf, 0xa3fe351c56a5134f], [ 0x0], [ 0xe3b6311e109c214, 0x7b7160b36924865, 0x72020a02d7bf1129])
+ self.mul([0x3b83e16caea18130], [0x2ed20a4e46c70222, 0xe4056f6762d8d935], [ 0x0], [ 0xae28715cbf98749, 0x3526a7896b358119, 0x7adec1906e716ef0])
+ self.mul([0xfe7465b5bc019ffd], [0x8fd8918024ac7115, 0xa259b29d0f59f78e], [ 0x0], [0x8efa47a5a19e1901, 0x34137599e412c39, 0x9c17404d4c38d956])
+ self.mul([0x365e1172e32d59a2], [0xb1222408e87aa303, 0xf9b1e63e8f0ed884], [ 0x0], [0x259e4a35df1885cb, 0x8f6893cead0b863c, 0xd6edf1b3cbdee788])
+ self.mul([0x67021cee8fe0feb0], [0xbcfa26d3a6d9b092, 0x110eadbe120cef00], [ 0x0], [0x4c0a34eeeccdf557, 0x659974d915961a2e, 0x8d093f675e065000])
+ self.mul([ 0x33db938610120f7], [0xe44cfaba97acb27e, 0xd217d5cd64d86399], [ 0x0], [ 0x2e3f275d6c7075e, 0x93434d0d36e1b043, 0x4e80b2d4b5d4389f])
+ self.mul([0x4de24bb33131ad33], [0x49cc0bacb10fccfb, 0xef1a0bbd2d0843e], [ 0x0], [0x16739b77aefc3271, 0xc9b7b0e5ded8d913, 0xde55d77516c63e5a])
+ self.mul([0x302be43892f6173b], [0xa4ee4fdc5ace48de, 0x856efcdc5058e632], [ 0x0], [0x1f08f6096cfa1ce7, 0x620d744c3591fffb, 0x25b0dda439378b86])
+ self.mul([0x144b152dacb5cd84], [0x9ae3e3c9fc147f6e, 0x78b0b35ced43b70d], [ 0x0], [ 0xc473b5fd81c2ca9, 0x12f0d3383b582cfc, 0xe295640fb8b0cbb4])
+ self.mul([0xb52e268715d369b1], [0x6402a1a043312e5a, 0xb0456183524625f8], [ 0x0], [0x46c7e3cc8435acd0, 0xc574881ae60d8519, 0x7124af414b7af878])
+ self.mul([0xbd779b549597dfdc], [0x96ee2a6944827a3f, 0xf225833d235b5d], [ 0x0], [0x6fb459998088fd12, 0x4665f7c18fa3b998, 0xdaea7c965bd386ec])
+ self.mul([0x83fcd855f8735928], [0xef275810bb9e49a0, 0xed7e7cb5f323a39a], [ 0x0], [0x7b4d56e4c2f2eaa0, 0x7ea8f06bc4712db5, 0x4dcbf970fa01a10])
+ self.mul([0x18b83a595585f980], [0xf121a24c93df1fec, 0xf787fad52d4d4ea], [ 0x0], [0x1748ae5998ec55dc, 0xf7b89c99e8cc207, 0xce6728d8bd140f00])
+ self.mul([0x6cda5519626437cd], [0xd2188641888aa22f, 0xddaf9d4310f2e377], [ 0x0], [0x5955875cf32143fb, 0xb6069839f90c82bb, 0x8faeaaec29dab74b])
+ self.mul([0xceddd6b5537f30cc], [0xac734d69c404d7fc, 0x993c317fff102097], [ 0x0], [0x8b5a3877788553cb, 0x18c3ebf38c082cca, 0xe9717a2666df4854])
+ self.mul([0x5636b0d5db683f36], [0xd370da297c0c7720, 0x65e378c54eb0a286], [ 0x0], [0x473515262c860922, 0x48cc95cf439e28c1, 0x88247444b9b14244])
+ self.mul([0x2f9b263a5e42e754], [0x1d7cee677d7b2f80, 0xa56331543d588568], [ 0x0], [ 0x57bced09d3f8bc5, 0xf7166632573dce6a, 0x54212e5d963c9e20])
+ self.mul([0xee0ef4f089d34312], [0x5e01809ead895694, 0xbcd6a119de0fb09a], [ 0x0], [0x576ae39a509f5fdd, 0x8964e70b9197eff1, 0xaddddc0b140b8d4])
+ self.mul([0x94244f6763b2c729], [0x6571a22767461ebb, 0xf977c1465393c52e], [ 0x0], [0x3ab415309e833ffd, 0xbff0366c465475e6, 0x2d6968bd24ed565e])
+ self.mul([0xaf706fe71e6d8126], [0x4310e9031c57ce89, 0x9dfad35eb9c62af0], [ 0x0], [0x2df603fff2ffb30a, 0x228f213d0ea234ad, 0x58473ca4d73d4fa0])
+ self.mul([ 0x6b8789ef1796378], [ 0x6809f1120737478, 0x30e15fcf97594976], [ 0x0], [ 0x2bb33d0f26668f, 0xc5d5da1e99bfa9ed, 0x9ca66f0648091150])
+ self.mul([0x1ec0a2ca9a525a81], [0x600cec1b91a9de98, 0x261e28a1d1713f4a], [ 0x0], [ 0xb89ca708141938c, 0x5d738ef98befd2bf, 0x3c3757e92404e84a])
+ self.mul([0xb08f2685005cc434], [0x2aad19af4fa732ab, 0xc83ec62e453c05e6], [ 0x0], [0x1d6edec5bd7e460d, 0x8d6e6f743f78baa, 0x41a5c478235d4ab8])
+ self.mul([0xcdd63c07dd785f09], [0x10f4dd8e57a6af07, 0x566cabfef37afadb], [ 0x0], [ 0xda246161a788745, 0xda235dcb163dac78, 0xa2932482d81216b3])
+ self.mul([0x2ab91b186bd08f61], [0x8c7bc1c81251d07e, 0x4043349cd5276530], [ 0x0], [0x1771e21850cb1b3f, 0x28ca9778ad0ecc95, 0x536cbe4b0c732730])
+ self.mul([0x9ec28d564d1a69ba], [0x7b1fc47c3f9d4d11, 0x7d50753b6a4aa05], [ 0x0], [0x4c5b2d519664fdb8, 0xbc742d83debf74dc, 0xf7f89b4702e194a2])
+ self.mul([0x294032f875cc2364], [0xb7344979d12a48e0, 0xe3e1ed129ca356c5], [ 0x0], [0x1d855150e64205ae, 0x100e0a017abfaebe, 0x37842858b2a6d3f4])
+ self.mul([0xae8cce9873382baf], [0x55aa00089f967e8c, 0x97b1fabd27318395], [ 0x0], [0x3a68aa1fb0b4afac, 0x9df92fc52f8e6e84, 0xc288044bd38af9db])
+ self.mul([0x8c71c74dbd936840], [0x7bb9a5988e7e9fa0, 0xe079a9b5bddfb1de], [ 0x0], [0x43e083d46873d815, 0xcc6e5efbe42f72d7, 0x1670821c60a8a780])
+ self.mul([0x991b30e903a8d128], [0xc50fe877600cc41d, 0xae3add501cf5f0fa], [ 0x0], [0x75db704336e0dc61, 0xf86394e750746568, 0xc23012ec6239c110])
+ self.mul([0x58278415d1bf5b98], [0x65f110be5b48b963, 0x7e1d96a07bcda836], [ 0x0], [0x231a9a13f94f707d, 0x8cb2fa8f4f5f5a1b, 0x2fc0647e33311210])
+ self.mul([0x8766320a07719387], [0x7dcc414c5919326e, 0x8ce559d1be5af2d3], [ 0x0], [0x4288ee6819cba575, 0x5486f0826e59d18e, 0x995c02f08f883645])
+ self.mul([0xf985d56f47a0c33d], [0xdc9f9b5c62d41f2a, 0x1ead2c5c96bbbd9d], [ 0x0], [0xd70a94f94652b5e7, 0x5f25ec6ac6d3e677, 0x677637e0f94ac569])
+ self.mul([0x2e6117aa6c07872a], [0xcd138b7d6d5ca427, 0xa766780f92c88650], [ 0x0], [0x25274a6dab3a425f, 0xf3b483ceac946ce1, 0x1c03e63b3fea3920])
+ self.mul([0xafee0411a5e134ae], [0xd007e312d5d9776a, 0xf4940c41c2e81a36], [ 0x0], [0x8ef6cedd7290ef7f, 0x72ce7848521afb82, 0x51902cc3768ac8b4])
+ self.mul([0xae9a4cb7b5e5fd17], [0x837f89b2556a9a2d, 0xec862b8077ed1027], [ 0x0], [0x59aff1b845d18634, 0xc9d2b821cfe12fad, 0xec79e26c1525fe81])
+ self.mul([0x8ff5a3a12a63d1e9], [ 0x3b00b89c2ea61e4, 0xade07eb54a711642], [ 0x0], [ 0x212e0486864c1bc, 0x639dc75ef42765c4, 0x448cb1ab839f2412])
+ self.mul([0x18a0a13a6fe9b3fa], [0x32ac5222380f83e0, 0xb8e1893485f9e630], [ 0x0], [ 0x4dff3507b7d9925, 0x8466c9ed77d5426a, 0xc8775919e3ae5ae0])
+ self.mul([0x88a4386b94b5add5], [0xa5147c8f16e4f6ca, 0xa615a3e4f4f65fc2], [ 0x0], [0x581cc7adaa88aa31, 0x665d440d34499fe2, 0xbe772eae2bddc66a])
+ self.mul([0x7cb7bd4b971e38f4], [0x1c4283cc973499c7, 0x2ccadee825ab8d1e], [ 0x0], [ 0xdc48048c3f6cb7b, 0x2468815bd0bbc4b3, 0x386f55a2a9e51098])
+ self.mul([0x4078e666853fdee0], [0xd78b99e176a7481d, 0x7c112eef8cf57f05], [ 0x0], [0x3648b1e63d6a9ed5, 0x6900f2cfb62a7feb, 0xfb33233e16307a60])
+ self.mul([0xeee6f62988982ce5], [0x9f3e67939c398848, 0xe80c54692a7e8b4], [ 0x0], [0x949baf7c175a1727, 0xd3a82906bf5196a2, 0xfb221d7bd7121904])
+ self.mul([0x91454cc05162393f], [0x300d3bdfae767810, 0xad549190aeac3c20], [ 0x0], [0x1b4480e2dc150f3f, 0x4a956d70d6b021f9, 0x7486fe747a05ebe0])
+ self.mul([0x83684eb0b68a27ef], [0x2955327281507e65, 0xa94c0defaab00e22], [ 0x0], [0x15377021941b2bbd, 0xf7ab0b5b44cedc23, 0xabd3c614f6d85fbe])
+ self.mul([0x912811ea2d61ba98], [ 0xaf43868c63dd7f9, 0xc9ab993b3c36c03f], [ 0x0], [ 0x6360ae06593a25d, 0x46aa4ff59c1fb761, 0x49e75e0b730eeb68])
+ }
+
+ func test_mul_1_by_3() {
+ self.mul([0xa08772bce39e24df], [0x3125ddb31370e714, 0x183671cb7f7788e7, 0x2e0fdd4af5e48087], [ 0x0], [0x1ed1ab8ef5d14f29, 0xba77dbae785a7438, 0xf2801951c54fa33f, 0xe37931035c70f199])
+ self.mul([0x677d622db896da2c], [0xe156626cd77ddb4a, 0x41f629bbb175141d, 0xc17a5a4fc437f5fe], [ 0x0], [0x5b181f332a30b2b5, 0x34308cdccc95725a, 0x2006c2cf69b9d6e8, 0xeabc1e0c13ec93a8])
+ self.mul([0x6934dac128ecd706], [0xb7755009bc5d28b6, 0x182d4e5a703a6ec5, 0x747f92deb0f6dfd0], [ 0x0], [0x4b64fe6c932a291c, 0x6d2e81e0744d19a2, 0xd60c06c54fb2528d, 0x7b3e0a364f80eee0])
+ self.mul([0x23da780ce30ab10f], [0x129b6d5fc960e197, 0xfe68f34d9ae6adbd, 0x4cc9baf8abab5ccc], [ 0x0], [ 0x29b210907285b27, 0x808a39af4a698916, 0x2b55bee9673e298, 0x114784ce0e2b7bf4])
+ self.mul([0xa6a09520b5eaa98d], [0xf20aa604a923d438, 0x3caa8119060be88b, 0xb825673412f66bbc], [ 0x0], [0x9d8abb4de88bce73, 0x7ccb30a34a243808, 0x4bda4e049891ef18, 0x4dbeab1d84b0728c])
+ self.mul([0xadf4c59a921ae164], [0x6fc3946967dde766, 0x2e4b2024b7e3a5b8, 0x6b6df8ea6b2cdcf2], [ 0x0], [0x4bf207f9ac4da01e, 0x970371637e087220, 0xb30ba73cd6230d26, 0xb754dfe8c04b0088])
+ self.mul([ 0xe02068eefe04bc6], [ 0x77d7727cb7058b4, 0x88c12da649ab076, 0xaa0b2a014df5bae7], [ 0x0], [ 0x68ebb03ad774cf, 0xfaf7dcaf11bc6c45, 0x550b9cad4d5fd645, 0xdb5a957c7cf03baa])
+ self.mul([0x876fabbb291151e3], [0xe92e93dc16f60bf7, 0xe2316efcb25e1687, 0x7b9c5b02d41654e8], [ 0x0], [0x7b5d4797c3bbf676, 0x9add24cd5585cdd6, 0x680149afd06d3365, 0x93373f29ec12b1b8])
+ self.mul([0xca416e1f05846745], [0xeac9f633dc92c507, 0x9551c867ecb00197, 0x7395dd1f438ad2f9], [ 0x0], [0xb97f5e8baa854a73, 0x49b9633a5ad2a56f, 0xb68a2d8f97d2ca71, 0xf37c4174b4b10c1d])
+ self.mul([0xbf4ad6c80544a1d5], [0x733a83d821afd5ef, 0x52c12ee1a1cfb597, 0x76973395599d226d], [ 0x0], [0x561a57f54fe8a36a, 0x9ecd41de26184076, 0xc0a584dfd6da1679, 0x5b6bb30a85831b1])
+ self.mul([0xb5803374dc21ace3], [0x3a85dd1c5b3dbfb9, 0x4f9a4fcbf65ca9ce, 0xcfaee33955f7dc3d], [ 0x0], [0x297df406fcb7db40, 0x3b6fa39246d9df29, 0xc83d2706d5b337c, 0xcdb30a75929e4617])
+ self.mul([0x9f3053ba1b02cec7], [0x8a9e092154940e7f, 0x70149a0a47f0c92b, 0x6367fcb3a5e096b9], [ 0x0], [0x563252a36c307190, 0xd527db1ed218288b, 0xfeae6d2eba117a36, 0x5ecf78315b5007cf])
+ self.mul([ 0x44bf5723d7c71d1], [0x1b723649fe116694, 0x2dcac85a8b56284b, 0x7c7d30c130104366], [ 0x0], [ 0x75ed9f9d0e4042, 0xe8a244c6abebb1b1, 0x10a2bf3d71c47ad, 0xd961dd4b5e6f0c46])
+ self.mul([0xa1e97d822e7586b8], [0x91229735cf3ce157, 0x9a953475fabd5e86, 0x71dbaea41066ce0f], [ 0x0], [0x5bcb20bc290bd000, 0x5abd3d39d8fad5a4, 0xc2f78538eaf6337e, 0xa0b65522789af4c8])
+ self.mul([0x35236d6b51e68185], [0xf9951096ea84fe9f, 0x954d0a3ff8c75678, 0x94e840f1deecf454], [ 0x0], [0x33ce667d9c66ae46, 0xef532e8ef6d5046b, 0x7ad4120c9e889ee3, 0x22c8c44c4fb143a4])
+ self.mul([0x1f229dd494cda79b], [0x786492cfbf9761e5, 0x588fdb0a61cb7ab0, 0xf4e1782baef0bc3b], [ 0x0], [ 0xea4755c4f189fbc, 0x72604275a70f5beb, 0x5ebf4c2cd1e9dc24, 0x7da89506cdcb74b9])
+ self.mul([0xd69ccd001d5eba5f], [0x1a84193e1cc369bc, 0x16c05a1cb8fa5456, 0x1000154d760e53d7], [ 0x0], [0x163aaad51926652b, 0x44bb7870bd460556, 0x55b553330a88a85b, 0xe27a53475c2d52c9])
+ self.mul([0x1f8e6bbc3f0a74dd], [0x4ccb4097e6af801f, 0x7672d454bd3a4fa4, 0x7a39a8ccb7f5bcc5], [ 0x0], [ 0x97755e1a55d4ab9, 0xf0aaa4116fef1ee1, 0xdd5d7412a5a8928f, 0xfc2b1cd0035f3a11])
+ self.mul([0x9bb6b250375f65af], [0x7b7145e3df5fab6b, 0x40149d763b19b676, 0xc29ebe9073f1ac1], [ 0x0], [0x4b15add418f15969, 0x18b14e4bfc5cb3df, 0x4ffadede602beea8, 0x7b4c01a23e506eef])
+ self.mul([0x5574d172ca2e19c8], [0xac1d0f1c08630392, 0xc0245d69b165f18a, 0x8c3ec78baca79954], [ 0x0], [0x397430000db136dc, 0xd22b70a54ef75f1, 0x8570aeb3c645bead, 0xd8bda97d1600fda0])
+ self.mul([0x2c766b18b8174ac9], [0x98703a334732d05b, 0x3d367fa64cc48a70, 0x8d10a6e25d816458], [ 0x0], [0x1a79cd814456f93e, 0xd925b05cd3a1470a, 0x50385ccb6f8f78c8, 0x7d7e0dc215813918])
+ self.mul([0x9ce97e8922157054], [0x6ebae7f4e71e8ae6, 0xde4d618cec762e88, 0xf142b849cd77da0c], [ 0x0], [0x43dee431a9abbbfb, 0x7be5b843f808e509, 0x7d74d9ff433d303, 0xfd3e205255b4cbf0])
+ self.mul([0x572acadefe64a3f3], [0x8a6fa972d8cdbb57, 0x4cb50b7fecd92f4f, 0x7b34781a35481488], [ 0x0], [0x2f23169c86a0437c, 0x647a3d245254965f, 0xab929944d3ec51f, 0xf16623446d9e1518])
+ self.mul([0x82131695a0b7abbd], [0xaf078045ebb57f7f, 0x2970d6a130766414, 0xa049f08f2497794a], [ 0x0], [0x58eedc22f928981e, 0x7398d96f78a7b4f5, 0x6b9f3afb7c1868cb, 0xc8bff4725bef9a2])
+ self.mul([0x3a841d283a86bfed], [0x477cd8eb1d0c691b, 0x96e6a1a37f24818a, 0xcf7aa4200b7f9c30], [ 0x0], [0x10572da97e3c3b54, 0x8854dc9782febc97, 0xab752e4b65feff2e, 0x69c09fed7bcb6870])
+ self.mul([0x690cd4afe5ce91f5], [0xc4ce05b85cf8969e, 0x5a53741c307f3715, 0x66a7c20b69843d4e], [ 0x0], [0x50c25d82b904008e, 0xfd10a4747ddb57b7, 0x3962e82ed02ecab9, 0x1fd9df41fd0bd9a6])
+ self.mul([0xc228395cb6634f7e], [ 0x21eb77037bfefe3, 0xbbb57cfbdfce0880, 0xb4a9ce7ea5acf1ef], [ 0x0], [ 0x19b9c494f2cbb79, 0x12fab5ea9d061109, 0xf65de4407f95d856, 0x2e6ce63b6334d4a2])
+ self.mul([0xdfa0685c271ce726], [ 0x78226248289af4e, 0xc5ee6a499f0af2d3, 0xcf481e3d9c20eaac], [ 0x0], [ 0x68f13a137f1bcbd, 0x51f7404a56cf1e00, 0x3b1af55fac31fa89, 0x842e6230bf740988])
+ self.mul([ 0xaa39724e061373f], [0xed499c833eb46509, 0x16381bb02d2774cb, 0x26037f9a0f17e8b8], [ 0x0], [ 0x9dc821461a9ea4c, 0x42f439b827256e97, 0x174ae367457a3604, 0xd8a465b80799cd48])
+ self.mul([0x11168addd2e489e4], [0xc7af74c61f309791, 0x8cadd3cedf04eef3, 0xbdc6a29f013dcfff], [ 0x0], [ 0xd543c26cd03b5b4, 0x134c9b3e423fa094, 0x90f9329777ea8802, 0xc9f7c2169c78b61c])
+ self.mul([0xb45fcdc2202df325], [0x2535ecb21fc2248f, 0xb9ecd11a5a40cd67, 0xf4949a86490b8f0a], [ 0x0], [0x1a37d7587a83b893, 0x9837724bed6a9dbd, 0x51c45af9c3bbccbe, 0x13e77d3bec342a72])
+ self.mul([0x5153b59bc11fa730], [0xd4e1b619745231ef, 0xe1244887aa03f82, 0xee329a91296b12a6], [ 0x0], [0x43a106d1331075bf, 0xc4eb658c8a1b3c44, 0x4fdacedef900d762, 0x2df512c50557c920])
+ self.mul([0x11b792acfbe6892c], [0xcc8f0aff1793b595, 0xdec05c58a932b7b7, 0xbcd8a46743f39a2b], [ 0x0], [ 0xe282f2f9a93fe63, 0x897fe494742312da, 0x42c4aa6a3eeb15fb, 0xfef38505b7018264])
+ self.mul([0x1f43ca62165caf9b], [0xc8f6238f44a416f6, 0x5312bd4786571b1, 0x2d7082d6280434d1], [ 0x0], [0x188b0598dfa56818, 0x94ac77101c806599, 0x1cda9c24acec0111, 0x9df27d140bc2d98b])
+ self.mul([0xade58a1f155842b9], [0x48e5848b887ff013, 0xdeba7871fdcfd52c, 0x4cd5946b8a91e4c8], [ 0x0], [0x318477366f61c9ee, 0x8a65355e0c73005b, 0x2e717be0ca64e53f, 0xa9d81993cd29e488])
+ self.mul([ 0xda41c0a0f70eb6d], [0xe6420f6473cd1bfb, 0xd5f602ee06d2d5de, 0x86bfed87017c0ba9], [ 0x0], [ 0xc44f6523c629ff6, 0xf942a56fd17f5768, 0xcbffd9d45462d3d3, 0x104cec66817519f5])
+ self.mul([0xc37e36d2c6629fa7], [0xcfbf72ff72219e44, 0xcbfd366fc3c1eba5, 0x98537526a034fbde], [ 0x0], [0x9ea541509bf61b84, 0xa94fc5ccda83387, 0x3a7fa1451248e499, 0x96c228e589fb2fd2])
+ self.mul([ 0x99f5afdffcca859], [0x4d818a066af1ac2c, 0xdcd133fc627cfcdb, 0xd0235cc54654863f], [ 0x0], [ 0x2e9ccdb64bc93c6, 0x8140943a9af55191, 0xef545f7b6670ef80, 0xd04ac613a6b003e7])
+ self.mul([0x81d57f4d869433b6], [0x59e617689631d36e, 0x20799fa2f50e2dcc, 0x19cff1dfae7f5ce8], [ 0x0], [0x2d97eaf18cc87b66, 0x5531ec9fa00e9618, 0x998f56ef3d4a12b3, 0x921b1ad4942e44f0])
+ self.mul([0x7f7b94639a215878], [0xcbf09294e94e175f, 0x6fbe85dd329411a9, 0x748869b1b814833b], [ 0x0], [0x658ecb84bad9e53f, 0xb6b35e960a9a2eeb, 0xe7f6d6a9b2fdd9c3, 0x6b118ffcbf54cba8])
+ self.mul([0xce6b912b4657ae85], [0x754b0d106efe74c6, 0xd7bbf1e911e2b9d4, 0x4954176b2423c3fa], [ 0x0], [0x5e93ad65056b58fd, 0x7765e73205881788, 0xaf3cf04a8b8b4039, 0xeb6691f60bbebce2])
+ self.mul([0x916bed095632d8c6], [0x87e66db362c1f06a, 0xa6b00b75e8333fe1, 0x3f8a30958173d5bf], [ 0x0], [0x4d32cf47bd5574e7, 0x226036da37474514, 0x32f0859a228620b8, 0xc4594200c53e79ba])
+ self.mul([0xeebff5ed8732df6d], [0xeddff451491aa2b7, 0x1b189eff5c96a6d, 0xe6c39fe43504c4d5], [ 0x0], [0xddd893bee563a78c, 0xa91a420b18a0a268, 0xbe16baef284eb2e5, 0xc2cfcf457f1759b1])
+ self.mul([0xb9e1b87b6a3e1602], [0x7024f1aae5f9bbbc, 0xcfdc14377f4303f9, 0xe9fa922fe720c321], [ 0x0], [0x516d93ed85630a38, 0xc8c15178d4e50aea, 0xd262c15dd0dd6938, 0x8bd145d28b045c42])
+ self.mul([0xee73f9a3cfe6649d], [0x90fad445dc9c0225, 0x6c68274b669f7f36, 0xf1e86d247de32fb6], [ 0x0], [0x870adf670c658c1d, 0xfea1e82819c4a64, 0x25d1eaa6040e825b, 0x7a926520fa7b5a9e])
+ self.mul([0x52ef68eb65f9ac3e], [0x98be0dbfdc3d1d01, 0x47b839247e099f6d, 0x38212bca47f9da80], [ 0x0], [0x317bb86ff38eb3fd, 0x3dd2acedd4985afa, 0x8dc67dd5d2f746e1, 0xd839ac1353d0eb00])
+ self.mul([0x777cfe6bc7640273], [0xcd66471e82c448ce, 0xb0b6cb1e715f4713, 0x51b46a2b2dc4a0b0], [ 0x0], [0x5fded4bb95db539e, 0x519bebae263abfed, 0x256725e91b5a06b7, 0x42f8b08ad558f10])
+ self.mul([0xe702fbc79098020a], [0x5086d13cc750eb3b, 0xe40ab0aa4b6c79a7, 0xbde514b5366262ea], [ 0x0], [0x48aa970e6fc276f2, 0xc6e283ef91bed6ca, 0xf99942224777a4e9, 0x18962d753f8db124])
+ self.mul([0xfb30fb5470c225e8], [0x73c84b4322fc6ab4, 0x1332273db4b425e9, 0x194a480271a27009], [ 0x0], [0x719b890482670122, 0xd09b32a729b61a82, 0xf4b9caf4894c4e37, 0xad2060b44c38d528])
+ self.mul([0x15b2cd328f1771b5], [0x99e26515a6057dd8, 0xd0bc3b87bae549fc, 0x7244b31ea638a1d2], [ 0x0], [ 0xd0b0d0dbed98579, 0x518c9a440a6a844, 0x19e390a9671521e5, 0xe2e682895d561b7a])
+ self.mul([0x6f8c6f9aad12bde6], [0x4ab1b19f3caa6aa0, 0xc899a071d5c7a19c, 0x9569e09d9008faa1], [ 0x0], [0x208c05c15bcb8375, 0xcea1bf2cdba0c533, 0x4a87dca0935af50b, 0x167ce6c0756c09a6])
+ self.mul([0xb4431a6138a9f907], [0xff019bae3e293eab, 0x2863740ae08fba39, 0x145cc18448a210d6], [ 0x0], [0xb38ff929442c9e5e, 0xea476bbd0d1e837c, 0x6185586027b010af, 0x521a79058c149bda])
+ self.mul([0x1583dab5b20da039], [0x52f5f805c629736e, 0x723d86d99501cfb4, 0x4688770f40d13a90], [ 0x0], [ 0x6f8e816bb068560, 0x5859e36bb4505691, 0xfed37f357568e2c9, 0x6d20d8104c800a10])
+ self.mul([0x716d63bb27bdb0ad], [0x56c67c7a13c2a68d, 0x7924a4565ad50756, 0xd1b301b38e7b67d7], [ 0x0], [0x2672b143154c0199, 0xab276a7e7120fb20, 0xb8502caddecf8de5, 0x4e4095468b83fc4b])
+ self.mul([0x7ee005a133b2e1e8], [0x85646412608f8533, 0x852bd4b18fd65259, 0x34da2078ecb11502], [ 0x0], [0x421c240790a2a208, 0xcd6f72e3a35ee620, 0x143da8bd2e484863, 0xf5fad0302555cbd0])
+ self.mul([0x1d30b0fdaf61f58f], [0x81a7d005b0d065b6, 0x5435d8f89dd129e0, 0x21d9456f28c618d0], [ 0x0], [ 0xec8abab80c895ef, 0x7a74dca67a47aa53, 0xbf2c592bd9e65f39, 0xd7a48eb2f336ec30])
+ self.mul([0xe5e14c2b6cc92749], [0xe73a48934c7b35df, 0x57e40a4d9b01b5ca, 0xe5ff6aa2b6205e72], [ 0x0], [0xcfa2a1f21378a1ca, 0x8033c15f0a0222a5, 0x743f9504870154c2, 0xd568e8d1d204c82])
+ self.mul([0xc5b1a0eb6785f410], [0xacc545cb734d2847, 0xbb75d67f424e02b9, 0xbee1af366dc66902], [ 0x0], [0x856bafb4fbf91874, 0xecc5273802600f9, 0x1d3ac674f38f9ed9, 0xe1b2553254867820])
+ self.mul([0x2ff4dc3edfd09b18], [0xa7e4fa813e347754, 0xb11eeb1dd604cbb8, 0x1222914022cb90dc], [ 0x0], [0x1f73a0ae811feea5, 0xefd528b75e8ac23b, 0x43ee548325dd39e7, 0x571530f1da8ac8a0])
+ self.mul([0x622a5a2ba066dbce], [0x9c4eca4df1df5358, 0xdad07a5e22d50a80, 0x69caef691240499a], [ 0x0], [0x3bf0056d5dac9ab6, 0x54d95d9b94fc7b43, 0xa4c2fab3562e0c1c, 0x7d517da5420df7ec])
+ self.mul([0x699246a9857f5654], [0xf349cc20223e6f0e, 0x52e6924f370cebe, 0xc68c0834a3f16527], [ 0x0], [0x645447f6e0c6086f, 0x583955fbd1c07415, 0x5c989bbd16367ec4, 0x87408f6654894acc])
+ self.mul([0xc6001c513a6da6f2], [0x83971fae9c5af563, 0xfb162985e1c0ccbe, 0x95b7b7ebea1f78d3], [ 0x0], [0x65c6f10f553f137b, 0x2ffe12fc56b8a194, 0xa938975ab669d6d7, 0x2298f65cf9f00976])
+ self.mul([0x49ed929f4710315c], [0x11db834ac32e1844, 0x62bbf17448a4852a, 0x15eb756c59dceaf9], [ 0x0], [ 0x5282ae32b0b07ea, 0xdac18c77a6ab8e1f, 0x683580418777fac, 0xad86c5c452ee1a7c])
+ self.mul([0xc8c293e2dc1d9408], [0x53f8bb82dae6def2, 0x46b54d6bbfd9eacc, 0xf84ce72279cc47ed], [ 0x0], [0x41da257e91a3633a, 0x2acbe0c1275db462, 0xf605f2212d0ccaab, 0x84d917abb9d04368])
+ self.mul([0xfe356ac93b3c1c26], [0x53284e099dd19f67, 0x7b50d3081ce2d618, 0x82b256dffbbe6dfa], [ 0x0], [0x52935775c0c6ba07, 0xa482a9fb97679b24, 0xb92383599b193565, 0x364d260c96e3ab1c])
+ self.mul([0x42ace006744dfa83], [0xfafdeb980ad0814c, 0x13c0e714d9851ffb, 0xa6a60bc87a1516bc], [ 0x0], [0x415ef4fbff111730, 0x57de5eea6699ef75, 0x645c13f0c2eea359, 0xdfcb1ddc178a3a34])
+ self.mul([0x1896b8b92271054c], [0x99220c75df9c3654, 0x2366be1449c58a1b, 0x3d7973f44de2c6b], [ 0x0], [ 0xeb5599d91318560, 0xdfa28fcc4bf2bba4, 0xdc2c4ec997cfcfe9, 0x7350c6b9a0e46c4])
+ self.mul([0x9116644939cfce5b], [0x12c48766ced64ed0, 0x82787199760f3c08, 0xa8729c90cd14c11b], [ 0x0], [ 0xaa2f4ef0128ec5b, 0xc2b72df011073afb, 0x8c9e08f8ac9eb8, 0x6b253bf9c1995e99])
+ self.mul([0x142494a4898c7bd0], [0xa750ff20af3d34cf, 0x2b022ece1f0ea35d, 0xfbd523f9c104c98a], [ 0x0], [ 0xd2a3c78cb91ecbb, 0x224767080948cb0d, 0x9251f0690718a12d, 0xe5543d8b32310e20])
+ self.mul([0xf785ce74008ac31f], [0x5279821f41952c48, 0x1287f59413d2e22b, 0x2e465c3576e941a3], [ 0x0], [0x4fbe582fe874d185, 0xfc3ac94db2ec73f6, 0x7fb600907addcd4, 0xdac5e5a6751c1bbd])
+ self.mul([0x364355e35440f8c5], [0xc0bbeca6b062d1c2, 0xb96bd032cafd260f, 0x375ec28530cd9556], [ 0x0], [0x28da55c3a479c667, 0x69c4090b379cca76, 0x10bb83378469cf7a, 0x800f596d445f3b2e])
+ self.mul([0x8acf1f5cd1c548a7], [0xc102483cba295c34, 0xae0a1e9995df6390, 0xe59d1cdf64526c65], [ 0x0], [0x68a7636e672dbe05, 0x94f6ecc357dc5bba, 0xd8078d03d25ca515, 0xb2d657297efa1de3])
+ self.mul([0x84d9ee2fbc9183c9], [0xcf0e29f8854aacde, 0xd74e8a419c3d2cb9, 0x4f1c2127cc1f4c0a], [ 0x0], [0x6b73914b7f86566a, 0x6e956087008ec05f, 0xbffe9977b1f2a812, 0xb269411ab225d1da])
+ self.mul([0x4011215eca963bfd], [0xfa0eabafe788302d, 0xc64aca27dd85bab0, 0x848b47d27e98400d], [ 0x0], [0x3e94667ddbf77630, 0x1ea8cbe46587e005, 0x37af38396f3ab902, 0xe173ffb9fcd84bd9])
+ self.mul([0x9a4e588785faf036], [0xac17aceb50ddcaea, 0x569e4cdd4be31c7e, 0xd98f72d260e19750], [ 0x0], [0x67bae8bf7c5620f8, 0x4c23764987d7ac48, 0xca12fde03c060376, 0xab098e4e4190eae0])
+ self.mul([0xeb8b1594b6da7965], [0xfa181d31b3ea9bf7, 0xbfd72a044b232a96, 0x12bd21c43e317f08], [ 0x0], [0xe61c02f9bd1d95ef, 0xa2992eae22c8b059, 0x6d55506b0ce0fa2b, 0x644952e7cb61e628])
+ self.mul([0xdae06c7575d0ad73], [0xc803aba5a6bfa7db, 0x2537b70acdf73675, 0x723ded9000332a6], [ 0x0], [0xab02781e931529a4, 0xe4c4e03d7202708, 0xc312e9717e7edf7f, 0xb81b671a2f89ee92])
+ self.mul([0x5019e35c1bdc705c], [0xe0618b88d9caaa3d, 0x46c11af7bd46fcb8, 0x81a559313eb171e9], [ 0x0], [0x46352c689ea09851, 0x688f53a16816318b, 0x8531fbc90738b0be, 0x95e7bb5da0d6dfbc])
+ self.mul([0x5ef22c259bcfbd77], [0xfc80c68a2e1022c3, 0xf035b79a8f21f9e8, 0xb08ef2745cfd9c4d], [ 0x0], [0x5da6262da5f4c91e, 0xe3cad223560674d8, 0x91d1446f96d357d5, 0x2a262e93778b80cb])
+ self.mul([0x9eeaae39e1ba21ea], [0x7ac7afa320652414, 0xadde33789b496120, 0xd27e4cf7b372335d], [ 0x0], [0x4c37cc7cb533cac6, 0xa76a2822437aee6a, 0x751f3444c30bf5c1, 0x3c66ae5ecd93f002])
+ self.mul([0x29ebae3f7daac5c4], [0xa9fdf6e1cca28351, 0x5ec70641d0d338db, 0xfe8337664df7fa8d], [ 0x0], [0x1bd62c6091cc8263, 0x2d6985888ce21296, 0x65336a91a92e5d68, 0xe4db7f09c04c54f4])
+ self.mul([ 0x9049fff6e08b3e6], [0x8b6c586ecfa01c22, 0x6bc5f92ad568ac10, 0xe31e2fba52984f4e], [ 0x0], [ 0x4e953f0aece142f, 0x4e2343e6df08976e, 0x5081f2f0d4ff607d, 0x8ffea0aeb2baca14])
+ self.mul([0x6e91101b566c3dc8], [0xe630a667d205310f, 0x205a28f8d13e781e, 0x29f092f53a9fc137], [ 0x0], [0x636b578a7c49e613, 0x4518461d42e819a4, 0x99aa3d2a3be33774, 0xb53175a8db0d0df8])
+ self.mul([0x19d1b62ad7832258], [0xd4242a89dc93ea4b, 0xa1c434de9aaaa19d, 0x309642f9dd17a9a4], [ 0x0], [0x156550a367db8ec4, 0x4a4277e8d02402da, 0xa63dcba76c35edb0, 0x6277a4bdaf961860])
+ self.mul([0xbb24771da0014043], [0xf677d3464b3f6dbb, 0xab07c52777a352a9, 0x962c3a240739f0d8], [ 0x0], [0xb42ca2dc47ae9e66, 0xbf0032e8d020f78f, 0x1db8a13f854feef4, 0x81a9277551380888])
+ self.mul([0xe9849d3754129a09], [0x5532584b4367847e, 0x5b07542d85d2b4a, 0x1faeb8b9eb66ffc0], [ 0x0], [0x4db6f4a45119cf3f, 0x2af260390d49513a, 0xf00f3cd671de80c1, 0x938e618e37f87dc0])
+ self.mul([0x1af35490bb059331], [0x6bac8ddcde491456, 0x37ee82e245e139e4, 0xa21e89f27956c8da], [ 0x0], [ 0xb55dec495801483, 0xe079bfbdd431cac2, 0xe37270eca02afd32, 0xe713e91f39339fba])
+ self.mul([0x29ef533b2b6b3639], [0x8909303fe13a083a, 0x92048a731810ae4a, 0xc358d5003f68acc5], [ 0x0], [0x167294dbedb65436, 0x21dd099f7ae757cf, 0x50ccf990007547c4, 0xb385409a801705dd])
+ self.mul([0xb55aab68ce64843e], [0xf76df9c0f715ff2e, 0x36f45ef8f9579c28, 0x5a1612a09905dc56], [ 0x0], [0xaf4863eafe866c56, 0xed1bd69d07b73b51, 0xd4f23e780d5c23, 0xd9cc4535a9fb4d4])
+ self.mul([0x3ea410300781f0fe], [0xd3f3fb00dc50db59, 0x140bfa5a54f3537c, 0x5781e38a23345ff3], [ 0x0], [0x33dcec7e058f182f, 0xfda3846721a28367, 0x7a1f7c439f5695f9, 0x39409da4065e031a])
+ self.mul([0xbc514d66f497d9a6], [0xdb798e7db1696ba5, 0xc6bccbe7525faf9a, 0x9cc99fdc5121d80c], [ 0x0], [0xa172f876380b2cf5, 0x669f58fa440ca5d7, 0x5c393c96f53e1101, 0x88cb374c2b2843c8])
+ self.mul([0xccebbf65a02b23a9], [0x6c9ce685f1da5cfe, 0x48469a9f9cf738b2, 0x5aeb8cccf6acb336], [ 0x0], [0x56f10cee87884567, 0xec4d9c9062929b73, 0xa5ad616b9c70d5fc, 0xb0c3565a4e94b0a6])
+ self.mul([0xe006a56627fe5f00], [0xd5ae0168d743991a, 0x45a32cc174634bb1, 0x9c4cbc28d80d8d34], [ 0x0], [0xbafdcd5e306f2838, 0xdb80219d3bb9d536, 0xfc8ed62fe3f9e533, 0x3e45cda0cfe4c00])
+ self.mul([0xc2cfa2189652bc17], [0x43d5d8ad7ccbdbb2, 0x5bb68eca4c9ccdc5, 0xaefa56d53b2bbf2b], [ 0x0], [0x339f131183d9b7dc, 0xb4e342d7afa23eb1, 0x2e5064b866b97700, 0xb6131caadf17c0dd])
+ self.mul([0xfd5e942a3e646970], [0x25d987be7ca6592f, 0x9f7ee88d6f6671e9, 0xd20db71fd3030b44], [ 0x0], [0x2575f6ef1a8617f9, 0x5f68a57dd6e1a8f3, 0x563ea0fcf7180b9f, 0x7ba07e8b6f83d1c0])
+ self.mul([0xe4f8e32e47ede076], [0x85e323f8cef0cd2d, 0xf1d0e3ee1c4dc603, 0x115a6a0ebb72938f], [ 0x0], [0x77c076e50eab6ddf, 0x29fd90a255a65bf2, 0xe5fed16c6b44d9fd, 0xf810677fec5023ea])
+ self.mul([0x3e7befba8d17fdc7], [0xa42850cae9d0a62c, 0x39f75a129b852a05, 0x458721ae67714e11], [ 0x0], [0x28113ca939509a10, 0xb2380bfd12bb1d5e, 0xa2fa4f184548fc23, 0x3e58d554c3c17c37])
+ self.mul([0xc7d7845126ae02aa], [0xf2d70b77eb5d5bdd, 0x7997d330560ff29b, 0x115447c264159a01], [ 0x0], [0xbd919a08b651b083, 0x75c4ca0309b95637, 0x64f1452f812e6403, 0xb797a5ba743a46aa])
+ self.mul([0x968881242ebddabf], [0xd0f978b04cbe0ab2, 0x2c853688458429a0, 0x26c0b55c62ea9990], [ 0x0], [0x7ae19aaaa9adbd1e, 0xc5b4f95334c737c9, 0xba45db9cf4c7bdcb, 0x98125334d31d3270])
+ self.mul([0x15b01b9186928116], [0xe418c78e4ef739d2, 0x98d384d8b62ee0b3, 0x5a5386e5d8bda45a], [ 0x0], [0x1352f1f8254d1d3f, 0x37a1af008e3c29e6, 0x3f0a3261e0292315, 0x3c4fdf21077179bc])
+ }
+
+ func test_mul_1_by_4() {
+ self.mul([0x4ca9f150a49de960], [0x24c72d70157b0c59, 0xe087aad5830c219c, 0xdbaa06277ed8df73, 0x50b67f4ba41082b3], [ 0xb038ba55d09b5ef], [0x219e06b23f6b8bc8, 0x5b743131c7b83c3a, 0xc00fd4b362a35bf7, 0x2128217b60ecee20])
+ self.mul([0x303cccb537b26005], [0x255777bc00b4946e, 0xa8d45b4cec4eda2, 0x532421e02a3371c0, 0x45e6c3ee097d2eee], [ 0x70944cf72934e2f], [0xfe34b8c6da8b9aa0, 0xbf45dee489ae3441, 0x6e8769e1623a6a84, 0x5d376b9ae4872aa6])
+ self.mul([0xe617abac300d1e63], [0xc5aeaa0f7a4d5e10, 0xa61fc721d7e9232f, 0xf7db4ceb785484b9, 0x8c9edb8968ed0f4e], [0xb1ad340bd152f9c6], [0xb6c117cc6652fa60, 0x79f6a16d142da593, 0x89cac572bd04b1ec, 0x355129bfc26e0f2a])
+ self.mul([0xa08b2cbaed05c935], [0x5d51415f506d963a, 0x6b98de6f6689796a, 0x8315f745eaefbe04, 0x9e61d515c7dda871], [0x3a8584482bb15feb], [0xfce18d109043f394, 0x66e9380d1f7cbd6f, 0xe7e79f690ffe404c, 0x535f21ce51599865])
+ self.mul([0x2830c9929614f02d], [0xa5ba6b556edda03a, 0x5c0adc2fc185494f, 0x4261b3f2c7575b08, 0x857618c81f7ae50c], [0x1a04b637bd177e4c], [0xbe8da324bded9d09, 0xb14371f262ebe5d0, 0x40641462cbd0fb0b, 0xa33f7d57ac45831c])
+ self.mul([0x67c8107cdb68c720], [0xe9cbe96692063c28, 0x4878a3b1d59643b3, 0x1b1e3918b5413797, 0xf30b265140ed8e84], [0x5ec7c145629f2f3e], [0x9feb607b14703489, 0x45245940ccce9b34, 0xa7d18ef4f9694893, 0xded4d4fd991a6c80])
+ self.mul([0x75feccad00f3cd10], [0xf4976d04f5252ca0, 0xc9acc1025d20f2a5, 0x52b13f9431e44441, 0xb1c7c83fb3bd45a4], [0x70bca69f6512c7a4], [0x14dbd1e2fc23c0ec, 0xa60c20897793ee61, 0xd1be2db1d7378d01, 0x836de366e744ae40])
+ self.mul([0x91f6c51a360dffdf], [0x1271b241578fbfd1, 0x7bf04ea45a24ffbd, 0xf4af2f0d1ea0256, 0x409019b2c5e1d54a], [ 0xa842d6baefff09b], [0xa51907038ffbc831, 0x73eb346053aaee28, 0x9bcdcbb7a973df6f, 0x8c1ec0cfc3ef8176])
+ self.mul([0xcdafaeba4318a5c0], [0xe9ad3d48216331fb, 0xd24e6b53424ba577, 0x674a2083da862d51, 0xf8146998745b804a], [0xbbc016fd6bcfa583], [ 0xa869474b5307f9f, 0x6fe8843d7bb136ed, 0x64168bdc7673940e, 0xb460d241a33fe980])
+ self.mul([0xabab2ac37c458f09], [ 0x1369254521aaf59, 0xe583d3a29a3e6a60, 0x77479a78a882cdae, 0xc95ce262602a4c14], [ 0xd04365f254b9ea], [0xe79afb820811b351, 0xbb7f6f49116ed975, 0x3a9580b0a3fa3318, 0xffe08ca9335fd8b4])
+ self.mul([0xe3b1f6088679d960], [0x77283c5d88f69394, 0xfeddf385adca518a, 0xae10823a966493dd, 0xbb509810b51ae95a], [0x69fb82dd4ef9e2ad], [0xa9b189ee45dee8a7, 0xfbb77a3e182b9486, 0xafa0e4e0dbb102b1, 0xd81ea675216ecbc0])
+ self.mul([0x2f202b470c20b4c5], [0x57370f5c05e2d553, 0xa779a5d51e68a3f1, 0xebc5e64477ff4d7b, 0x8daf76d12f528684], [0x100e11724490d237], [0xd1e5604a58ac6b81, 0xc5d13dbcb3e3ec2, 0x1ba8796b5a7c972e, 0x18eac77a71965394])
+ self.mul([0x347fad7bffa7bd73], [0x28f9d1df2afb2888, 0x90dd2eb7b0c8d8df, 0x2ac33a1a7c2ab2b9, 0xa73738ee9e14f6d3], [ 0x8672e551e38ae72], [0x46cdcfedc503ee89, 0x683adedb25f0a12c, 0x83eab09c314bba99, 0x2382edd0ae49a7c9])
+ self.mul([0x5ccdad86a9a89743], [0x3221d49cdb6aed13, 0xded73f6d87426272, 0x75b8b0982418709, 0x7f23ceb46702d653], [0x122c6f7adc12c563], [0x403a124e73d27e0b, 0xb0262beee86e580c, 0x740c8450bbe0a2c5, 0x6e7941c513a10cb9])
+ self.mul([0x91ecbb6c95d46ce6], [0x8583c19cc86a5f76, 0xef944434d9db29f8, 0x7734a7781aef3ee5, 0xed6f34a02b37e8ef], [0x4c1b17e02a34b044], [0xc07df78f6844fea8, 0x773d779bba469e1f, 0x3e6c0bc4ad939215, 0x37f908d66b6c1aba])
+ self.mul([0x6d2c2d33fb967d30], [0x57292522182bd164, 0x94b4d74dd4ef9c09, 0x4c35660a1d81ce2, 0x1ce5b99ab97677cf], [0x252b8f45d488c7dd], [0xf3a9b01acb1c0215, 0xd928baef77b0004e, 0x196761ba68657be3, 0x8b706db0c70089d0])
+ self.mul([0x8b84694c475d71f7], [ 0x82f2033a4df614e, 0x6d3ef09c7cb940f6, 0xcafe636ea2dd712c, 0x39a0c2270f185f79], [ 0x475d22669a119aa], [ 0xb2745ee0f0d28e5, 0x817d380a1a2705fc, 0x7ef3178ba05ae98c, 0x54f7c89a909d86bf])
+ self.mul([0x459ca360de9dd422], [0xfd495267287a9f65, 0xb6f1400ca83faf2d, 0x6fc8fc22d92f4b53, 0x530ec499c2295e00], [0x44dfbd898bfe0a74], [0x281c938d899f9366, 0xf9fc4fa0d90392fe, 0xe1072ee4288d839, 0x99cea418b1567c00])
+ self.mul([0xa75f0edc8a7c760c], [0x767824e129963e3e, 0xec3da42f5a173038, 0x4b56d0424c4254db, 0xfb6211e4d6cceecb], [0x4d745d853309cfd6], [0x461776067adad2e2, 0xd8abc48aa389aacc, 0x518d3bfe27974b8f, 0xdafc262da000c384])
+ self.mul([0xb3287962d1dfbb0a], [0xf865d0e11dd9312a, 0x6e4806af8ff8233b, 0x1ad06e9af6dba621, 0xcab18ffe2142d81f], [0xadd676be0d641a4e], [0x4025633a59395213, 0x4dcad9243db1d03e, 0x111345821ad8e02d, 0x4c3a30c2b27c1636])
+ self.mul([0x9ccfbfa008de141a], [0x8009b8969ca36b02, 0x44b9daedfe971e5e, 0xaa443da626a30856, 0xe27649ce7962aae], [0x4e6dd42f54775a99], [0x4699dafa3727cc01, 0xe6bb330162ac5999, 0x3e5cb50ac8f5ca6e, 0xfd8e7e55b379edac])
+ self.mul([0x4ce79cafd3df4e2f], [0x7d99d86bc99e223f, 0x59d22fbfa4a3c5ef, 0x3dc0ca7cfee74ace, 0x16ece85f2e414ac8], [0x25bb4ef24d1ddd27], [0x320e0112b544ad52, 0xe8e9c6740523143, 0x5d88ae5b44d7bb15, 0x8500c3cc5efdaab8])
+ self.mul([0x23eb3e7ff6f0b9a1], [ 0x4bbd515f8cd9e3, 0x88057f6716d13f13, 0xab89e6c10e12ac2a, 0x448a70d7aec54434], [ 0xaa07b6778a7bd], [0x3ca89befa664fc58, 0x9bb0768b50e5eb37, 0xb520439bf88abb12, 0x64dfab37611978b4])
+ self.mul([0x92b41f815131f03a], [0xdc9d395368db139d, 0x3c8693da5aa57396, 0x3f002bf3b966d6cf, 0xbefa60ae5c7045e8], [0x7e6ce4645b967034], [0x9359cdd8ee370f2a, 0xf084bd37fb0dd420, 0x5c60f3ae3d11107d, 0x5026e7adfc615690])
+ self.mul([0x925e08524b0c6502], [0xf45dd75dfba51abc, 0x5579d87ae38cb544, 0x1b43ce69fabea152, 0xd8ef5c171e3e9256], [0x8bb7473a2a73cec0], [0x8d7440c94b6632d8, 0x9313efb8d3e1a5b9, 0x72a374adf7dc4037, 0xa4572676fa4112ac])
+ self.mul([0x70f38590fb9daffd], [0x79e0ace50687d41c, 0x1c322117a85f4b71, 0x61ab7785a4148d23, 0x40c14cafbc0e4f57], [0x35c63b7f103f390a], [0x7fb638989da0b37d, 0xee8a375eb3b7bd6, 0x6facfebada8f05b0, 0xe771bbb97bbe1fb])
+ self.mul([0x1eb3a4f46fb09368], [0x98174327a98eba85, 0x1816551f735824bc, 0x4e1fbfc86d41a8b3, 0xabda7ec39fa2b9bf], [0x123d7422ba26b0c4], [0x9236035a405bb3f7, 0xecf426bcc34dcf0b, 0xef9d3f6c4e896d1e, 0xe8e78898cf142298])
+ self.mul([0x660d57f5e274382c], [ 0xd1d04110043e44, 0x78c911fbd32a489b, 0xf9146034a93d97be, 0xf5bdeb4a287a7957], [ 0x53a3e996fb84d6], [ 0xe10238885794805, 0x805374054f048df6, 0xaf1639b1fde1aa5, 0xd50d17a8903e2f4])
+ self.mul([0x9657e0dd13cb793e], [ 0xe2d05b556636586, 0xe3f8ab2c797b6822, 0xb5d364a9c6e920d3, 0xff04206d87d16b6a], [ 0x8533f18d433ce3d], [0xc9ded3d50aafdaf5, 0x5d66e4a986f22685, 0x739d93fd16c0600f, 0xa90f5843eb8b1dac])
+ self.mul([0x2183a1d9f6430fa7], [0xbbf35cb3676a9814, 0xa1a00bde5dda6af0, 0x7db751f1f11d8bb8, 0xd9ba204ee2e35cc0], [0x189b034fa3862886], [0xb4e8b4b1bb2c9a4a, 0x3e2713c6154fb9d2, 0xfafb39fb88c439f6, 0xb949ee231b00c140])
+ self.mul([0x343ecc52c4d6c449], [0x61c59775bceff97f, 0xba7484d020a52d4d, 0x709038e90e578960, 0xf62a7a37a0b1667d], [0x13f41ea7aa0e252c], [ 0x8e0878bfb2cdd26, 0x8883c019099aec94, 0xd77f3020c8c723da, 0x85fc07b2058beda5])
+ self.mul([0xeb13bb8fb0037297], [0xa2af8d47b691656c, 0x5ff8f66af088bfca, 0xe269320da4751afb, 0xfcbb3f6c8b3e1454], [0x9563b0e9dd083452], [0x4b43d95b0dfc84a3, 0x9c95821f0e68145a, 0x1563d2b20298dc96, 0x9173c5a7c3a7658c])
+ self.mul([0x6a7811cb57b240dc], [0x64800ebd7e8bd466, 0x3186b68b5f261bd7, 0x4b491af0cbeb8b0f, 0xbb80b14872c3e72d], [0x29cc291db42cfcab], [0x89e4c1f29dd3af22, 0xb4cec2a9b50f694d, 0x9550ae9b7f25d9bf, 0x35152469a26feaac])
+ self.mul([0x8e6c945da6a0a52d], [0xd94b9e940729dd4c, 0x1d2a8c52922ddb3a, 0xbf6ae3da0a9bea0, 0xb33cd8ed9021a196], [0x78e41bcc3801d29f], [0x6b19359919f99837, 0x17d70f448edc3eb2, 0x4735b15930d2be9, 0x865d8ef244cf155e])
+ self.mul([0xd3eb5bf0062f1120], [ 0x9229430e74cb890, 0xa61f6117a8b48b00, 0x4bf25f27a7b2623b, 0x585e35ae11b67760], [ 0x78fe62a32d95d0c], [0x8dccd75fcdff0499, 0x6934d0c1fe4d4a4f, 0xb34a73eb50948137, 0x6955d63b7f5c4c00])
+ self.mul([0xfc645494a33197d5], [0xab9cc06d8d9ef54b, 0x2ae9c7c2835688fb, 0xd300a7a1587a9d2a, 0xeae5e6a6e74c3043], [0xa9318f5a155d0aaa], [0xad0e68ca6d9f4afc, 0x683f112e62da6dc2, 0xca16a8b6faf9e2c7, 0xfd9b065848aeacbf])
+ self.mul([0x5325a35e74c97718], [0x308725ce5096c383, 0xe4aae1c578c8ce87, 0xdc0a622a2b3bb464, 0xe1ed2a2d33b8534c], [ 0xfc2f3c24fc83411], [0x25cc42b15563ce87, 0xb8f54b39a7a27cc8, 0x4eead283df4629fa, 0xe7812a75eac2320])
+ self.mul([0x7f6b80746576c1be], [0xd891f016bca50312, 0xb92545157e66b5e4, 0x69a77f81ec707d6a, 0x9e1605b74ed0df7c], [0x6bcb57c61118e902], [0xf435044648954704, 0xcde424f193945a04, 0x6b481668221bd35b, 0xf675711ae6aa5a08])
+ self.mul([0xb12d895a398b9bb8], [0x2585148e75974c51, 0x1763fb881a0ca2b1, 0xbaa4d6a079db0b16, 0xc44c64f30aaa014b], [0x19f7afbc8d90d608], [0x3717083ea9e27e3c, 0xa0a73d6acbeacad6, 0xf95bc4cdfa32521a, 0x1502f21affb256e8])
+ self.mul([0x45b09ab02ae226ac], [0x6658f323a49ee9fc, 0x4755a0a755ea7535, 0x2bb4b9b06efedc86, 0x1866279a0b9662c4], [0x1bdc9487b46f9dbb], [0x1901cc9640a20d8b, 0xf03b6a89b433acf2, 0x719955f70f6fc348, 0xf3f62eef74bb73b0])
+ self.mul([0x9025e4e075cdc6b1], [ 0xbb7f38249931a3, 0x2caebe7260f84a1c, 0xc116892cadb31159, 0x4d15b5e9918f330], [ 0x69935099670fa3], [0x7ab03770b4fe5b5e, 0xb20e4f538d510d65, 0x3f8d41654310bf34, 0xfc7fe0f0d3c74430])
+ self.mul([0x2df8b06c388540de], [0x43d29ec3732c0c6e, 0x2002b047dd7895d1, 0x2c7dfbc0ab3a0e95, 0xf4649f81cc573c87], [ 0xc2de8afa1910ad4], [0xfa8372f231660d30, 0xf983883dee67a2d8, 0xa87dd50a0021efb2, 0xe6775d28fceb3d12])
+ self.mul([0x1e72f943d165f7ed], [0x562459682af4fb75, 0x578a3f3da550fe3b, 0xfbb91b1e4ead202f, 0xf0654ee9ed3b5ee8], [ 0xa3ef28a325b8b5d], [0x644b5ba8e8b3090e, 0xfefb0a3c04fd92e6, 0x3dbb447b8bf633f, 0xb30f5214c210b4c8])
+ self.mul([0x6b7892b9a5a1c812], [0x622176a58ab974ba, 0x8613862a6ea50251, 0x1e3b4a19974a2bf2, 0x2c9c2d1a7a27b50f], [0x293234850deb46ad], [ 0xda2305fecb7d2b2, 0x766a6951863fd347, 0xfe7e3779d3a88e42, 0xa496abce25ad730e])
+ self.mul([0x341149c142779945], [0x85e13038321054ba, 0x16adfe39aa09a33f, 0x79a542507b8f7879, 0xe760ae1511fea7e2], [0x1b3ac851e62e9f33], [0x65fada74ec6ccee4, 0xd13854b86cf961a2, 0xf50dfdf45392fafd, 0xbc668b795a0751ea])
+ self.mul([0x3b3669344203e98a], [0xd38f4ae1cf33459b, 0x3013da556c85f053, 0x8db0bbf3ff910bc0, 0x4fd691d060533a41], [0x30eefd6ccbc286b1], [0x1f3e0a9ad5d19870, 0x7f74f408e9cd6a37, 0x8c55578a81443541, 0xbb2a56321da5900a])
+ self.mul([0xcec76ebcd7fe6987], [0x1cd0a11cccef8f5f, 0xa7aae01f66b3e33e, 0x7d4e38c652e27856, 0x9010ef59e50decc8], [0x17465449510c9efc], [0xaa9987cff5b360dd, 0xe59a213d3f0210c7, 0x6f28e7962a24c95b, 0x1719dfe766e5e578])
+ self.mul([0xcba45e76c2fdbd83], [0xee727f36eb3de06d, 0x7c915edd70ccc8ad, 0xf91b3802b68bbb02, 0x36ffa3a13c388b51], [0xbdade436b4d4ae5f], [0xa2e6be8ffe1aa25c, 0x55d13e90ed43815d, 0xfc66ebb4f7657482, 0xc6b617c2a0d71773])
+ self.mul([0x9d99da53c7ee9b4a], [0xc5f4e4f5cbfbd4b3, 0x601579747b4d5114, 0x97850206b413d9f8, 0xd0e55a983c731b4b], [0x79de289ae8f9c616], [0x2467b65215a7ca1a, 0x243a51ac8da953fc, 0x94c28d0eadfbe26b, 0xbe0ec126d7864cae])
+ self.mul([0xe07b8fc0d7feb1b3], [0x25a111087a22a075, 0x130fd3cf1e5c919, 0x1c4f06c854ffca33, 0xe2556a349bed3e3d], [0x20ff186beb0132da], [0x1c3e2c071162ad1e, 0x8579cc4b8e1613ca, 0x97dc87c402521ab6, 0x9e5058010a70b1a7])
+ self.mul([0xf85835369e3fc6a0], [0x9e9fecf3731e9af4, 0xb8ae52bae26d2fff, 0x15a54fad09e8a017, 0x3224b6667c70920a], [0x99e1957e3f0dd37e], [0x5bc0514952acea13, 0xef4ce1b905f209a1, 0x8b680475fd278471, 0x51763e3ef3c50240])
+ self.mul([0xf1978f3ab78ca40d], [0x434c681580ffe86b, 0xd1ca6b4f2b7dbf7f, 0xff4ceae19d817ced, 0x215600a1b0d0b7e1], [0x3f82c5b4c0d42ffe], [0x6d6fbadc1943def6, 0x27b5b9a3bc8c5f19, 0xe8b98d24f6c8357f, 0xa44edb0c16717a6d])
+ self.mul([0xa2fec57d04c8d5e2], [0x117084c2eee7e443, 0xf44d121c0b9c182c, 0x2a39eb9df7341c99, 0xd27ff27340ebc523], [ 0xb1a8f1b2f060e1b], [0x5db993b48e49d78d, 0x1a8f2b5fa0d6d638, 0x89ba89c312bf5f99, 0x614987210a8227e6])
+ self.mul([0x954915aa1711ff09], [ 0x945da9687ab2756, 0xb4496a5b86b32a99, 0x1490431c6f04cba0, 0x86a2f5d0aeb0aaeb], [ 0x5684dedd60abc4e], [0xc2ea6389002224c6, 0x24cb9fa7f5c5a759, 0xbcf1d61f451a26d, 0x247cc27c95111743])
+ self.mul([0x48a5b161f48f9ade], [0xd5c7c79be622cdd7, 0xa9b898a7e81576ba, 0x2586a008c20e8023, 0x2d4abaafe655d251], [0x3caa8e086e24e0b0], [0x4000053e993a8b0b, 0x30a939a0d2aa0f9b, 0x4e5e59e0bd05c1cd, 0x1e0add300e301c3e])
+ self.mul([0x470a065829c4923e], [0xd1a8410ca48e8198, 0x7f95aedbb016ac6d, 0x500a8afb05ad834d, 0x8964a01dc62b896c], [0x3a2ddfcf31b38ab7], [0xd33f6586e5956fa7, 0x70adf903e89a1311, 0xa8c52f1e60bde183, 0x7ba039b2559ae028])
+ self.mul([0x8098bd6585e2a7ac], [0x38715a5fd304784b, 0x31fc68f4a3fbc49, 0x7873199995602569, 0x38be32f73c097e1e], [0x1c5a5a3fa45dca62], [0xeb036c8717a719fb, 0x70f422d95846d184, 0x249f71c475dab6a9, 0x37285d0374224e28])
+ self.mul([0x54116ab4236e0d22], [0x1859323b546fadd0, 0xd47d48804e0d8d72, 0x3e03909e897121f9, 0xdd94cb22d16e324a], [ 0x7feec8dde87cc92], [0x228522d851aedb1d, 0xa62794dc27904caa, 0xf5a4ab43152c1129, 0x88e3cd8422fc6fd4])
+ self.mul([0x36ee0091fff02518], [0xd0e9a5dc669663c5, 0xfbbdf07bd3dd2277, 0x9b3daabee82fadf5, 0xea6acbe9ec54298a], [0x2cd382abd5bec03a], [ 0x40900506247ff8d, 0x1fe230f836de1cb1, 0xd0cac3066579f5ad, 0x2d28d887b944d6f0])
+ self.mul([0x913b60681838a0e0], [0x9c5cce560a995dcf, 0xe0b7f4f33bd69ed, 0x93a91fe96f7f1b03, 0x9cb31bd702634642], [0x58b4d524abb4b050], [0xbd238565476845a1, 0xc6ddebf215618565, 0xcd048e45b0aece, 0x1343dcbdb136b9c0])
+ self.mul([0x6a59f9abfb2b419e], [0x89ddc66c816b1b47, 0x8179b03c9bab1af2, 0x11842da330342098, 0x1668006d58032b49], [0x394648b83db62906], [0xd4ebf08af937b0c7, 0xd79256ac16a72f4e, 0x3e835c63204e041c, 0xa98dd590f835400e])
+ self.mul([0x2ed61cd16caea7fa], [0x2c4df5ec2816be68, 0xac1c09b17ec0e76b, 0x5cbd9f5d63be41bd, 0x87cdd37af85ed289], [ 0x81b1058c7f85138], [0x18cdde052346fc40, 0x29080fb5a9acf378, 0x3c0c84f66c63bd73, 0x43496d3a4d0ef8ca])
+ self.mul([0xc58aaaa1b381d98e], [ 0x7210ea8f922d4c6, 0xfce15071603b6481, 0xa34f7d1ba52c7aab, 0x61c2154b6ea22196], [ 0x5804cda63544331], [0x272debac58102114, 0xf83c3ec438bbd151, 0xc39c2b3ddc5e2bc4, 0xfe3399239afcc734])
+ self.mul([0x526c55e227af8964], [0xbe2b94fab2a8f20f, 0xdeae1f4926a38c4c, 0xe95845b858b7e60e, 0xf770e7ae03501b2], [0x3d3a6fe79f6948ff], [0xa9e2e8551ea66481, 0xefcecf60035c045b, 0x12f1f9a9207c3f2f, 0xa2dc5a9e394aeb88])
+ self.mul([0x67fa79d78c43d0aa], [0x3bb9a01b5a4b0a24, 0x4cb57e686844d583, 0xfccf7bfbf101dab9, 0xe730f37779f0b4f2], [0x18421f1e625618d5], [0x2704d28e189b9728, 0x4deac6ae10d9f97b, 0x5fc3286397f57218, 0x9c49a69c4032c8b4])
+ self.mul([0x725cf02e7387455c], [0xd32ed18d3b3d1d75, 0xa8cadc5e57c8c067, 0xf2d34c7d348490fb, 0x870b097d210f8e13], [0x5e578446694e2f09], [0x6271a99aded16dd3, 0x576d7b2fc8f62a87, 0xa070c92dcb97e435, 0xc32de65187e72dd4])
+ self.mul([0x836c53c0866a4c2f], [0xa98776bff8768b43, 0x5cc2fc569a6ef693, 0x61f2ec442b788051, 0x423b0f5a09ec32b5], [0x57080e60bf3e1581], [0xff9cebf84b2b4dbc, 0xf9df697051ab0a1c, 0xffdf6fabcaddc769, 0x36d30191ae5d0b3b])
+ self.mul([0x1345276be3ab01c6], [0x2ee5448d07834b03, 0x739c6050e0d1d0c1, 0xefaf4a9795d0bcdf, 0x646a0b3d3daae4b2], [ 0x387af1aa28b874c], [0xa045a7ac992daa14, 0xac42710c5ac6e5a0, 0x35a65bd1a28f63ff, 0x8ce55cf1f5f793ac])
+ self.mul([0x4a66426bf26832d4], [0x4c8a08db2f092e55, 0xb8a150e08a4290c0, 0x352d4899798c94e9, 0x3f56bf60b1ff9dde], [0x163e796abf613e6f], [0x67da974f7db7a2e5, 0xb46641e730adcd20, 0x42530e6b24b65677, 0xebc189b552b417d8])
+ self.mul([0xe45e6dc83a170a0b], [0xb2c9986882035a96, 0x5277df15eb9e0d86, 0xfeb02d8592d71a5e, 0x72544a0224db1b82], [0x9f7d7e6eb6200e92], [0x124be3a5d1673b85, 0xcddae48cc3ff953c, 0x4865f71ac5a2992f, 0x4eae0f03112b4296])
+ self.mul([0x3769a9bbecec4164], [0x9a0ae18974a7e68e, 0x56894114a1735310, 0x56add4008dc2d140, 0xe038b601666bfbbb], [0x2157eb0d4cd79a1c], [0xc498b004e87da9e6, 0x50652bf120b8f9ed, 0xdf28117cbae64759, 0x96d5bfc2e17cd00c])
+ self.mul([0x311833e0d0c4fffd], [0x96f8f9b2945d17ca, 0x637879b829c421e6, 0x9277d5188553385b, 0x799b6a436ab90273], [0x1cf3edbac5db428f], [0xcf42675fb565cd93, 0x10435644a4437342, 0x38b066b85d2105ed, 0x9aec41321253f8a7])
+ self.mul([0x8a33190a1d0a8d46], [0x558534adf4e34b67, 0x2d8cf593e72aed51, 0x8dd22c9e2bea90f0, 0x7196fbe3d39a04c1], [0x2e2ae04ca7b6f900], [0xeb539ccefb706c75, 0xe7514a4894738b01, 0x4fa5c45e472ddf8d, 0x28d21aefbd4599c6])
+ self.mul([ 0x506a5ccddaa7f33], [0x3748f28525505ec5, 0xd7dad08a73630ace, 0x59b27c2bf5d43c57, 0xcecbab7178dc826d], [ 0x115dc408b295028], [0xd074e634ab075310, 0xa1138dc7b8a65bf4, 0xa3af841f6edea05f, 0xaaa741732e040eb7])
+ self.mul([0x5fc2904d4d394089], [0x2fe3c0e8d4ec5c84, 0xa9cfaced65295be6, 0x73bc3009fab88784, 0xb73a019e5cf71682], [0x11e9ea2d29eb460e], [0xe3ae264293698274, 0x8e60ab0a0775b4c5, 0xd6a752692228a7c1, 0xcc2a5ee0a2cd8b92])
+ self.mul([0xd506d3dd2a625adc], [0x30fa9bab9fd6c526, 0xeb15c655ad4e241, 0xc4ea2cf29d671791, 0xa91b0e136f8566b4], [0x28c1d1ee50c637d4], [0x3c09043df2131587, 0xe13fb89d39d498f9, 0x2948f7a337966a91, 0xcff7873795a78ab0])
+ self.mul([0xe041dea70de622f7], [ 0xb0553239479b198, 0x1a8bf02581107f01, 0x2fe14454eaaaead5, 0x1e7ec8293dafaf01], [ 0x9a77eaf0d1e72c5], [0x69ed754e28ffe4e8, 0xa5419fe11e628122, 0x39916762aad970e1, 0x16b6f95d21a5fbf7])
+ self.mul([0x61a53e382618a80d], [0xd1dce1e0dab51eb6, 0x5a1b7bd225217bf2, 0x36e7bc70cb332ba7, 0xd8fff417ab8cf395], [0x500c27f54f0c7587], [0xc2b9cad3b6565adb, 0x4f209d9ec2ebb06f, 0xda574815a88ecf06, 0x80ba4dbf29fa2691])
+ self.mul([0x496ee91bf1826a79], [0xb32ec11f25d3daf2, 0x421686bab1f1edbc, 0xd125cb8878dd2c98, 0x3d3c78a6317342bf], [0x3365f651f9e9ae40], [0x6a0d3be272fe2489, 0xb16cac2296e704cb, 0xf6041f0666a93db1, 0xf8765689cd1ba247])
+ self.mul([0xc2e50b04ae882561], [0x2c0c87e3a024e47f, 0x7df8d830add69e1, 0x54788ebbc30c6c99, 0xea9e4e333c80812d], [0x2188e815660b0f0c], [0x282805d65cde6b07, 0xb1bf14f8fd1ab160, 0x3ef86f1b42278fb9, 0x447078edb544730d])
+ self.mul([0xdd6444c393afa385], [0x5dc081b291236a70, 0x3f0d68644a85d2bb, 0x2ceff3ae2eef5453, 0x1c7a6ec2ea7e79f4], [0x5113e85893385b3e], [0xea87ba1e1d8f5cf4, 0x759ad0a5fb84fd3d, 0xbc9724b7e2736d0c, 0xe21247ead527b7c4])
+ self.mul([0xf7f947282cbb2a62], [ 0xe091cb8ca2fcdb, 0x7cb3b08c37124c2d, 0xa0917190b50bf1cf, 0xe120be4bcbac9bef], [ 0xd987579f5a858d], [0x8e24ff8255327990, 0x13ee06df14156f52, 0x877884c21ceb26cf, 0x8ccf60a9453de77e])
+ self.mul([0x17a37e58e6758363], [0xed927a6ecd8c4123, 0x84631c354cdd3aa, 0x7d37f0552347a37a, 0xbaae02117761ce26], [0x15efe284817fc148], [0xa4ee34ef21a0b286, 0xe6cf4e9e483a006d, 0xe23a17a4fbd9c8ee, 0xb8debcd192ae2ab2])
+ self.mul([0x7f4a3887546db05c], [ 0x87a32715d18876c, 0x8571b160927720be, 0x5ff5b754157670a5, 0x1822a03394bef3ab], [ 0x4371438083934d7], [0x2c89e1e7033e7fff, 0x899a233a01802a51, 0xc0fb5d30793a1d0d, 0x17c7ed3b97f42174])
+ self.mul([0xbccb397585d10fab], [0x824c205dc88ece5d, 0x8b0665a8af20247, 0xa505b1f788d2ee28, 0x3a08eda05e148abb], [0x601757614dc28a3f], [ 0xfe081b20c31e0bd, 0x8d0be014ab024163, 0x595a0c30cc16746c, 0x8340a4f175849fe9])
+ self.mul([0x881b3792718e7321], [ 0xd4970ad4a01f2ff, 0x82c84f087cd31047, 0xd7ec6b32d96ec780, 0xbf844a3461459a30], [ 0x7106d7d52942479], [0xb09df7db744b413f, 0xd8497eace76b5819, 0x302d15af9570fcc9, 0x9643057d84dc7030])
+ self.mul([0xebb3f51852c27468], [0x82f987def41c9604, 0x932181b9ae80f890, 0xa121fa77b2da9cac, 0x65df063b26aae44d], [0x78972198ebbf7465], [0xfe9972a74a7f853d, 0x1804f74ea90247d0, 0xcbca30d750ce81d1, 0x99fd7866d139a348])
+ self.mul([0xe04af36ea22c2300], [0x369f0e8af79aa1eb, 0xb9dba57924348ddb, 0x1e0ab3cef8c78d47, 0x195d93f9f6ae5942], [0x2fdb2aa462931b21], [0x6c77a7e25369b59c, 0x4e3708d85eda231c, 0xb52ebddec65c0340, 0x7303e788f18c0600])
+ self.mul([0x837312d6bdabce94], [0xb813a5e88937ffa1, 0x6efaa63db5066670, 0x5ced418cdc7f4c5c, 0x6650221b7131c2ef], [0x5e84cc4550266126], [0xd0973166fa69c565, 0xbf2017d513d7c420, 0x476fcf28a8eec175, 0xaa56e7e52446042c])
+ self.mul([0xefccf48beceff978], [0xe9a8f1394a7f8789, 0x4f60aeae3db5cd36, 0x2695e0c58384db26, 0xaedec4bad67b423f], [0xdadfcb09731cc913], [0x11efe5a9336d25bf, 0xd343471093bd311d, 0x959eec6e9b58dc80, 0x1932d48c5a075488])
+ self.mul([0x6004484392b562ff], [0x80163bc5e643511a, 0x59cb2c3f9fd5a8d7, 0xb87f00e99141b623, 0x5082c2dd67bc8158], [0x300a7aeb3579945c], [0x91c8b90ab27e53c4, 0x3f6ba99803d17b21, 0xd5016499ae740627, 0x7ca35054218086a8])
+ self.mul([0xad49fbfdd111e9c5], [0x728c49f8a2fbd014, 0xa3fe90acd0b6fbb8, 0xe5b14fd7e686f08, 0x6628bf34a8946354], [0x4d89e8bf3cc31440], [0xfc714cd2fc2d38e0, 0x6d45bebceb297229, 0xf3bc290094101504, 0x927fedeaf52be3a4])
+ self.mul([0x994b37dac6b2881a], [0xc59e6d7d6772232c, 0x1481eea39b663e8b, 0x6371349f2c13b19c, 0xadd4338bea8189c6], [0x7655bff7f2620d60], [0x9e6207e3c382be54, 0x81b24850f21fcb55, 0x60f07163f4aa577e, 0xab83ac0792052e1c])
+ self.mul([0xf565c8cf83d5b738], [0xb12853cde50ee870, 0x899c0a7be4342146, 0x38c3d81283d5799d, 0xd9e15beaea132ef0], [0xa9d2081438c2c9ff], [0xefff393aa11cd40e, 0x59a9fed0ac4d6b09, 0x1896b9e0ba329b21, 0xe91c0fc1c86fd480])
+ self.mul([ 0xed2141c4bb8bb9f], [0x5b99fb5e0d260224, 0x40afe4397b879379, 0x3148b262ddb788cd, 0x2bfdbf4711f79c4b], [ 0x54d97417f71eb0f], [0xbe4e28c044280945, 0x3dec3f151196fdf4, 0xebf218d8a3418cd3, 0x997c203a56dcdb95])
+ self.mul([0x637feec60f785f99], [0xe078235b6219c06c, 0x462ab9d230daeab2, 0xfd64fcab4ef4d258, 0x93d4163dbaa62193], [0x573ea2a33ca08447], [0xd02a5b6630a19b05, 0x2c2f79f26835ebd9, 0xad1154873f13bd2f, 0x69830eb18da79ddb])
+ self.mul([0x51cd0532b81e1ef8], [0x551d2ef8a20bc845, 0x56003565cd2c2f79, 0xe1b6d468bdcd72e2, 0x5e4338ca213f8b60], [0x1b3265f5b7348301], [0x4654807670580ff2, 0x486eb5cafeaba9a6, 0xf72b91364463f425, 0xd95e5e14fd244500])
+ self.mul([0x3350971cd137851c], [0x610f2fbe137b91a1, 0x706e493332abc994, 0x607186c8327959e4, 0xc62742b85b1c5126], [0x1374948cab6c7d9d], [0xa1784c5fd6fb41da, 0x8abb0fd8bfaa5042, 0xb1ec2f0b0f4f76cb, 0x82c90efd226b9e28])
+ self.mul([0xafd80992e1fac5f4], [0x4b903e3d549e5e6a, 0xf467d3707c048be3, 0x9251e2150779c50c, 0xdaed501d4c8c0322], [0x33e75f13ddbf1b1d], [0x4f9924f210318438, 0xae10689ac95289df, 0x5501c4ed62e01890, 0xbc60b2b4a5102668])
+ self.mul([0x6d077c17dea75009], [0xb4e105eaea2f2820, 0x5522d53498a8a6e, 0xcb4e9bc4b6a3a1ba, 0xebeda5db34fa1693], [0x4d09195a0b892762], [0xdde687ffe5a09089, 0x5540de3c9f5e3a43, 0x97c0b32c551019f5, 0xf38bff3037bdbb2b])
+ }
+
+ func test_mul_2_by_1() {
+ self.mul([0xaeb98e1d2d92de73, 0xe35aabc61b58dd31], [0xb003fa07ea2b4b8c], [ 0x0], [0x78224887555b0b97, 0x68966caa381f3f75, 0xa431b2cceea151cc])
+ self.mul([0x5aff645b844f4808, 0x4275f6a46b45b9df], [0x54ce6a0beb1798e9], [ 0x0], [0x1e252c22c5268492, 0xac660bd3ab609990, 0xd77512cf70db93f7])
+ self.mul([0xc267bc3ce05520fa, 0x16c9954f27bd508d], [0x81943521d7483485], [ 0x0], [0x6266d22cad106945, 0xc48587910715a51e, 0x314a65442c5f7d41])
+ self.mul([0x3a847224e64cbbfe, 0xf7a43a28bcce6db6], [0x5408f3b8fc7c2966], [ 0x0], [0x1335814dadfa3330, 0xa743e5a286c74ff, 0xa88f74495f9dc84])
+ self.mul([0xdf2cdc08bfb688ed, 0xc1033ab178a244d9], [0xa333dc4586275e63], [ 0x0], [0x8e46c61090f20af4, 0x13f4ca39f69808b2, 0x831d382c4f174deb])
+ self.mul([0x1f9c02310b97c67e, 0xcd1cc0c1f0fe2cba], [0x6f91c44207002601], [ 0x0], [ 0xdc6a48c1a91c64e, 0x391c56ef35004615, 0x16706db4c1a1c8ba])
+ self.mul([0x6dcfdc2827617298, 0xd8e919edf3483add], [0xf543a340e3f5fdcc], [ 0x0], [0x6934f1203b20014d, 0x657c0af00d6a72df, 0xc034219e8c3c511c])
+ self.mul([0x2051f5ffe783c55c, 0x78d40d80889a1b03], [0x6f0a308863876270], [ 0x0], [ 0xe04d2fe279ca2dc, 0xb5857c50c720e562, 0xaf99a7d52957f750])
+ self.mul([0xc616894dee8eb14c, 0x8a8664569170964e], [0x93bd3b12bbf2a09d], [ 0x0], [0x72515d30cf2de07e, 0xcc83346f7fddb8e3, 0xf758e9b29fb8edd6])
+ self.mul([0x757c8077ed196bf6, 0xec1986aef65334ea], [0x7d4d172c09484946], [ 0x0], [0x39812bcf980b2270, 0xd5d1f70f0dfd1d2, 0xdab10a9030a731fc])
+ self.mul([0xccff7b9da5c050ad, 0x58ec755cc78871f3], [0x10e3aefccb4dffd1], [ 0x0], [ 0xd864a648b75e122, 0x48fa2cb6ba4bd558, 0x6350c719c6fd1463])
+ self.mul([0x9b4c67aede76cb9f, 0x43ac8c098e0dd7a2], [0x9af0837a264eb760], [ 0x0], [0x5dfdddc2987902f2, 0xe9e7148e9afa9166, 0x329f578ee9b1aac0])
+ self.mul([0x7b6a00d6d718062b, 0xdd6ee5c16426d8d0], [0xf90cdba9fc855074], [ 0x0], [0x78104daea2b768a5, 0x7837c22e47d04de7, 0x8cfae1d8e96b3e40])
+ self.mul([0xfa3408bc5aea5ae7, 0x5f63107b7c0ae115], [0xf88ed6fc959b8924], [ 0x0], [0xf2ee0371ad4bd017, 0xea61405b622acf7c, 0xac39f502c4b2e3f4])
+ self.mul([0xdc5f2f74f6454f74, 0xbadef80f433ccb69], [0xe6939e62804f2e25], [ 0x0], [0xc67c97a2df99cac7, 0xa2019e313c613849, 0xa73c69f2e9bd442d])
+ self.mul([0xb810fb23783e2da5, 0x1837ee83657240d4], [0xfc82aab0e04d46b1], [ 0x0], [0xb58eaa90e618e66c, 0x220747d194bf24d3, 0xf96eac6d617cca94])
+ self.mul([0x440962c1fa159ae5, 0xd7d3c625a03b4a8a], [0xf58aeaecbf6baf73], [ 0x0], [0x4141e70260b37589, 0xbe5884a6b3aa1795, 0xc60acc0ca044d1fe])
+ self.mul([0x3b2583ce78e629e9, 0x5407b7f8757a3982], [ 0x6ae04a8545aaed3], [ 0x0], [ 0x18b15a9e7568da3, 0x3a067203835c88d0, 0xd8c4aec8c687c226])
+ self.mul([0xa244a8acbed60978, 0xfb8702fb6e541af8], [0xe9e0716b7b8f2b8c], [ 0x0], [0x943ec17d40504757, 0x227f0713e93d3030, 0x41d9a4a0af0e67a0])
+ self.mul([0x337dd40d77e4ea4b, 0x176215fe4572d362], [0x8676cc3286c83a94], [ 0x0], [0x1b0bc21139a15f68, 0x2054da737c911b6d, 0xd0bc103a9ad668a8])
+ self.mul([0x6e1128441abaeaf6, 0x4f458585159524b7], [0xe93cd6e99ce53155], [ 0x0], [0x6447c6123505f716, 0x2e07d3609d66030c, 0xa52a63aa123f37c3])
+ self.mul([0xbb991ba73e20eb66, 0xd480b5eb1ac487a2], [0xecb1c52f44bb38a5], [ 0x0], [0xad736ad9c1a9f1fb, 0x52977710171fa2c8, 0xba1000b759acdb6a])
+ self.mul([0x1491d5148cc7d709, 0xb3f5d340657a15a5], [0xcf322144109c75f6], [ 0x0], [0x10a5f2738063052d, 0x8c0db7e914a20d1b, 0x5fccead5cfc1358e])
+ self.mul([0xab0cefe23df0df78, 0x1fd5e0b0894feb08], [0x24c2eab74fc5d867], [ 0x0], [0x18900e5de8fa46e1, 0xd7c827418c170b70, 0x17e201a2029e5038])
+ self.mul([0xbec3416ecb850348, 0x9d47eaffe8944007], [0xf1cb6bd18d9ac98d], [ 0x0], [0xb42d65c5f3ba37c5, 0x79462cec39f6db26, 0x9d831fb8df22c2db])
+ self.mul([0xbe904b3e98bae403, 0x43bf1469408dc64d], [0x5eb14134229155a4], [ 0x0], [0x467cedee7481bfe8, 0x3f26766c83c07721, 0xdfc33f23f9479a54])
+ self.mul([0x8dc8c281fd8cddf6, 0x4f4bf4218afe8e72], [0x567f3a95ca5a133b], [ 0x0], [0x2fe7e8629ba71142, 0xe0949d7604f46823, 0xbe143749f5514a46])
+ self.mul([0xa3ef3dcb1ce552dc, 0xc225c93ded019f9c], [0x5a61b539472ddc62], [ 0x0], [0x39e0ad6ca6a8a7ff, 0x20f4445de52201e5, 0x955833ab723529b8])
+ self.mul([0x3de8aef9ffb39fb4, 0x77acffce3fcde15], [0xafef1867d5338fad], [ 0x0], [0x2a8be1bf2dc66b1c, 0x8ff85b69508b425e, 0xa169f3db091ecf31])
+ self.mul([0xeb3030dfdf75f7dc, 0x91fa151116abac38], [ 0xa81a74b4aff740b], [ 0x0], [ 0x9a6fee2fb71303a, 0x46e90fb7e5cabdd9, 0x1db9d7327f31c668])
+ self.mul([0x1b29101c2cd48f3c, 0x305755894a0c8ed6], [0xc2ea7b1f1245d47d], [ 0x0], [0x14adfece1a60d788, 0xaf58dc68cb4e79e6, 0x5e726ab31a18f67e])
+ self.mul([0xfd69dc4ff7caac01, 0xb757c9241f94a67], [0xc8fc238127af416e], [ 0x0], [0xc6f44b78ab0dd1c1, 0x42771e1765f75fe4, 0x3a53503f326b1f42])
+ self.mul([0xdfd84e764253b505, 0x120b24ddc2a60581], [0x9387fa917a28d652], [ 0x0], [0x81001b37b967c36e, 0xd22fa435cd8dc66b, 0xe53cd06077ef9952])
+ self.mul([ 0x8115330cb5b37d4, 0xa7d1cebaadc7bb4], [0xff7bd1d1a6c74577], [ 0x0], [ 0x80d28cd5352d5e5, 0x41a567325b421c73, 0x1f6bb228bac104ac])
+ self.mul([0x44c8e921af450871, 0x2e1329ccb44cbeb1], [0x3fbd48bc4eb9ed3c], [ 0x0], [0x11204d3e82443d0a, 0x12a1482009272964, 0x73b8ce710a6f8e7c])
+ self.mul([0x6037ba69adeb2631, 0xa295a903a842679], [0x74bce7446fec97a5], [ 0x0], [0x2be04050ca7e3c32, 0x353f5ea324d6e495, 0xd615171f986a2afd])
+ self.mul([0xb44e1cb06c953fe4, 0x6a8a5737d8ab51b6], [0x4f2fea31bf6c2b45], [ 0x0], [0x37c5da2425e535f8, 0xe018cbd7cd21234d, 0xa60c1d856fae980e])
+ self.mul([0xa93d57d0180966d7, 0x1039b0fac1fa7e65], [0xd04593a8d03ca86a], [ 0x0], [0x89afd67f91f62d84, 0x9eb36c7f2ea6562c, 0x1098c5d064569dd2])
+ self.mul([0xa2059c1886c729c3, 0x25f9a7d2395ded07], [0xf8e051d914a968a6], [ 0x0], [0x9d8367ed823f9a4a, 0x2859f1dbcd25e40b, 0xc910911460d18a8a])
+ self.mul([0xae7d9c1d19b69d2e, 0x8a19e751f34644e7], [0xe219a5446dc9c7af], [ 0x0], [0x9a1c5ebb895bf718, 0xda4b624d131a2440, 0xa014f2ff60f7aae9])
+ self.mul([0xef24f40cb5762481, 0x4f1c508c5dd9f8a6], [0x89f53fa08079f365], [ 0x0], [0x80dfe0686471f20f, 0xc1e2b0d843040c43, 0x71309e90747aab7e])
+ self.mul([0x940f6fff3b9f1c8e, 0x721d1089e1b8ce7b], [0xb1fe5c979ab7d83b], [ 0x0], [0x66f1c94dd24c910d, 0xeab7da599731de69, 0xe40ac198bbc5e59])
+ self.mul([0xefc53208cb23c65e, 0x57e78b20497d87d1], [0x7558d7b0dce1c47c], [ 0x0], [0x6de855ab7b55e1f3, 0xa8ece791af61f535, 0x96a7aa3af7acd3c])
+ self.mul([0x602ad9f021866682, 0x3d7f2af5e58f1e91], [0x2115a1b206d7b38d], [ 0x0], [ 0xc6da659a872a9d5, 0x9ff9de2e8ab9f391, 0x749b30ae93fa38dd])
+ self.mul([0x32275c1edd1510ca, 0x2f88df075bd87b53], [0x638cda735105d3d6], [ 0x0], [0x1380d0f26c604f8f, 0x8e19122632635108, 0x6119df62e03b8062])
+ self.mul([0x694b935b86a9c08e, 0x900a208557150c2e], [0xece45f28c58d66c3], [ 0x0], [0x616f9a4b6e67bb42, 0xde0e1fc6201320b5, 0xf1e7086ad3389b0a])
+ self.mul([0x29c3c3b7721483e0, 0x41d04baa376d5500], [ 0x2203b8e6f03eac4], [ 0x0], [ 0x58c9b740a0c818, 0xfeb672562d1a05a0, 0xae6b91f5e671400])
+ self.mul([0x5653bc212befccbd, 0xa34ab3b2f95c5766], [0xc5163b2978871067], [ 0x0], [0x4275eeeafa12e179, 0x8e155b3b1079df75, 0x3f40c69800678a0a])
+ self.mul([0xd25dc4d42a23df02, 0xa4af016f51462403], [0x80c443b7dbbafa5a], [ 0x0], [0x69d029da679d4ae5, 0x9cc164476b89cdaf, 0x9931cb6acd01970e])
+ self.mul([0x6194a7534269ac52, 0xe3867e111206cb36], [0x5a2e85b119aee68e], [ 0x0], [0x225ffe7f12cf36e6, 0x77567381d6e27ef2, 0xe233bc767f0b3bf4])
+ self.mul([0x481962d72975c4bf, 0x3dce55448821644a], [0xb6c718ed164f4a8b], [ 0x0], [0x337a1f05f3c824d2, 0xcd6395ea4535d62b, 0x215dc4fddff4d82e])
+ self.mul([0x2ef3c88692628328, 0x21ac3a12c951875a], [0xcdd04d2fd73b3ceb], [ 0x0], [0x25bf6bceca1bb892, 0xadd883a19c4360d3, 0xf6eb806ab14e579e])
+ self.mul([0xade5ecf615ee776f, 0x63ac37aed13e09a3], [0x2ce81bd2510ce000], [ 0x0], [0x1e812fff2871b1bb, 0xae1b74afefcd0841, 0x8cbf7fc14f12a000])
+ self.mul([0x9b807dab8ce253bb, 0x9cbafafada9d339f], [0xd0a7bcec9975108c], [ 0x0], [0x7ebe49af7155882b, 0x2d983c0dee5fd424, 0xdecc271fffdd2af4])
+ self.mul([0x65053ad82cdcf38c, 0x2233a7a26032a5b8], [0x7f92980f8a2affa9], [ 0x0], [0x3257712e0a4fc99a, 0x5228401308c60b25, 0x90e0737054b1ae78])
+ self.mul([0xa806fcbd603ad297, 0xb10f62cdc6b9d3bd], [ 0xc8f189cf6b90f1], [ 0x0], [ 0x83e3fe7bc2f74f, 0x46f31229c96ae01a, 0xbc315286ef09a4ed])
+ self.mul([0x7d0d94d49f50be80, 0x4357a827d0cad63b], [0xb371475c4509b656], [ 0x0], [0x57a7d4eb3421a419, 0xa05792eac4eca3e9, 0xb10628e3c784e9d2])
+ self.mul([0x2e2cb0a08c6ad27f, 0xe89568960d86aa24], [0x62f3b4e469b1e645], [ 0x0], [0x11d910a9bd34ca93, 0x82ed20efbcf5c9be, 0xcb446e8d090c33b4])
+ self.mul([0x99c91d5fc5873452, 0x7b0b492b5e498f5b], [0xbe1ba3d3f4c3fdc5], [ 0x0], [0x7233de6d8f34cb6f, 0x62c99397994cb858, 0x1e67323a2f994007])
+ self.mul([0x48b85a9ccc3b3931, 0x261330bc8b1b730e], [0x5b274b019adb081a], [ 0x0], [0x19e4b19a01bd9351, 0x518eaff84d46d67c, 0xab64e83ed55c1f6c])
+ self.mul([0x5003adff207fc553, 0x1343f855ace6c0], [ 0x849ea3f978995af], [ 0x0], [ 0x29737b3d414747a, 0x16f83e32e9042820, 0xb621f82f03f7d40])
+ self.mul([0x7d58fbdb2badc303, 0x53c758a8c28d7c35], [0x9b50bfc01d83deab], [ 0x0], [0x4c0c6a2fdd08eb6e, 0xf587f3437a907811, 0xb2c8d9a93656ed67])
+ self.mul([0xd0ffc2c41031b08f, 0x5eaaa4841c347c70], [0x49ed70c5d22cff0b], [ 0x0], [0x3c5ac7629dbe5b41, 0x972f1a90a0f11fd1, 0x7f91530ec174e8d0])
+ self.mul([0x9f0eac1424d67a66, 0x1f8f4cbd3cb230c9], [0x1b73c634e4dab193], [ 0x0], [0x110e7ae3a332a5ec, 0x13cd444f4dba6769, 0x59c4a9a59d36fc6b])
+ self.mul([0x71eb601d1ce3ec02, 0x702a8ce41ed60a5b], [0x81f0615fe90686fa], [ 0x0], [0x39d2936da44fc469, 0xc5f552fe0cd6988a, 0xd860da203793bede])
+ self.mul([0x949fc2771e8854ac, 0xcd28b3c4f7d32b92], [0x80c5b3c51702497a], [ 0x0], [0x4ac2a88a563447a3, 0xfcef57c7c5673e77, 0x5ec85c73c7336594])
+ self.mul([0x6830978df3d1ee36, 0x78c73b7daefd86cd], [0x998dcba848ef17d3], [ 0x0], [0x3e7ec03a55a7c12d, 0xe39d74b3a9fba1ec, 0xfa4a0572837585f7])
+ self.mul([0x25043d16fd694dcd, 0xba6a959b3fce2cb5], [0xbc30008e3c92b349], [ 0x0], [0x1b360dbce784f04a, 0xfb501500f289b077, 0x16cbb95846474e9d])
+ self.mul([0x7f389a74e194c5ac, 0xcde20d791cbaaa75], [0xc345b26775666979], [ 0x0], [0x610ac0916ed84d1b, 0x6b7a2f4247303734, 0x29eabc6187c28e4d])
+ self.mul([0xea920ed882cb41cb, 0x8ae575509a4d08e6], [0x6d50974e421f517e], [ 0x0], [0x642a089aaf31ffd5, 0x4002431fc6501198, 0x1d312a31b1952734])
+ self.mul([0xe3110f4ebde7d1df, 0xc1d04820cc9e29bc], [0x4f31da467952c9c0], [ 0x0], [0x463e7b9843fc9f08, 0x5f8b01f7b7b93e2a, 0x23d5a70cdf9be900])
+ self.mul([0x60256d025af66385, 0xdd9eafc99a5e22ed], [0x91ba6a59f3159406], [ 0x0], [0x36bb35e0d0ad2601, 0xd8172f7d78869952, 0xfacbf73cded6d58e])
+ self.mul([0x3c9327a8f295b769, 0x851cf1d8e1bf934e], [0x9c7f3d279809847f], [ 0x0], [0x2507c7a40f7b80a7, 0x8e66f896f5c9853b, 0xe2b4851343bc4bb2])
+ self.mul([0xaa1b1af1de9a7a0d, 0xbddedb9a101af2a2], [0xb4688d0f2bfa2bd3], [ 0x0], [0x77e087b0056da178, 0x11d1b86d550ef92f, 0x85c1933ff52b3186])
+ self.mul([0x2f872d96a819b4e9, 0xbd532741dccd208b], [0xe9338c486b3665c0], [ 0x0], [0x2b4b9a7792ddb28a, 0xae74f0ec900856b4, 0xe236e8797e013f40])
+ self.mul([0xc13784096cc90dd2, 0xfdc2763c1fa995cc], [ 0x7d9e1120453acd4], [ 0x0], [ 0x5ecf68a922e4c95, 0x1b83eb3b92942704, 0xe6f80dbaea391cf0])
+ self.mul([0xf4817e5635c7c374, 0x73385b82289f7100], [0x7afa9f00b2824501], [ 0x0], [0x757514878dc7b923, 0x65c1a462ac03578a, 0xfd68edfe84147100])
+ self.mul([0x5f9d44c6a8e79f13, 0x4d18a2fbcccc4d41], [0x957ccbf8fb0adde4], [ 0x0], [0x37d52563a430099d, 0xf88d8a633f3b2cc2, 0xd5f039c0842feae4])
+ self.mul([0x93bbf98f03b949e1, 0x4e05251a48df7c1e], [0x6ffdce9b3692b8e9], [ 0x0], [0x40a0f9357a13864b, 0x1eef8177ab3d4c23, 0xa8ca71a11b9874e])
+ self.mul([0x600fa04cbbe8192e, 0xe31b9f596830149a], [0xd06ed0cd2ff3a43a], [ 0x0], [0x4e36474eea655332, 0xfd8fbe1c3194783c, 0x4bbfb9be3c4552e4])
+ self.mul([ 0xf99a8b2c4d47994, 0xfe10235417890e1e], [0x65b45708b6e72e2b], [ 0x0], [ 0x6329ce6e5a1943e, 0x2d528fd7508638eb, 0x4fd85affa5a0c30a])
+ self.mul([0x669bccc6897b4cf6, 0xe166f6f53486f3d4], [ 0xead9d529827c705], [ 0x0], [ 0x5e21b8ae5297388, 0x5bf57fa17cb13fa4, 0x9c8daddbf3788f24])
+ self.mul([0xd99f64ca5c21c2e2, 0x8f9d4486da1a06fe], [0xdd7bf4661fa96aa1], [ 0x0], [0xbc47f95adb40c3fa, 0x3c2722c77ef5238, 0x58c9f25950f191be])
+ self.mul([0x52a23cd9130e89ef, 0x1ebff66fc8e7e7bb], [0xb02f67a4923533e5], [ 0x0], [0x38ded712ce908345, 0x69e91ae0e74d09a6, 0xa3aa41fc8a538b47])
+ self.mul([0x47bc225e02003078, 0x1272b63ac0513626], [0xd04cc23d6107d6f3], [ 0x0], [0x3a5e5e345a98a8c0, 0x7d0c8dfc0a195f6c, 0xf75cd15351642a12])
+ self.mul([0xa8ff06e12a966452, 0xf37773fdd77c7945], [0xb35a262d5ab9fdcf], [ 0x0], [0x7665d4aba7ae332f, 0xe66dcded866be5f3, 0x378eb2ee265c3fcb])
+ self.mul([0x1b5be31a0a6caf68, 0xafc689f6d5e0e16c], [0xe8aac2f0b164b099], [ 0x0], [0x18dd85a9c3f15a3c, 0xbb1047af6865f677, 0x9a2d5c842890f98c])
+ self.mul([0xcf774211b94305a7, 0x3a4ee1a8b521e5fc], [0x7f23403f5ad179ba], [ 0x0], [0x6708bb25fbcbf4e2, 0x5b2c7e9c4e24c652, 0xb2ad16bbfb113518])
+ self.mul([0x95c3d8fb26fd10a1, 0xe9e872639890f645], [0xce8847c62bc30c93], [ 0x0], [0x78d352a29f0dd4df, 0x1c11a73d68e726bc, 0xa167867e9457a59f])
+ self.mul([0x1dbda0ae8da6fc9d, 0xaa8d2c994a59fa47], [0xdb04b1d2e38b7ea6], [ 0x0], [0x1971c41471fde9ff, 0x1f6fc2305b18e60b, 0x119deb0459143c0a])
+ self.mul([0x27e936348089510b, 0xb3da275ec33225d5], [0x4dbbef6c195b12ca], [ 0x0], [ 0xc1e71fbf6f50cf4, 0x6e48ac3bd57ec17e, 0x5eb7d3e0cbf1d412])
+ self.mul([0xedfd2a02c498c92b, 0xc36a423f31155730], [0x9d52a50bf1569b70], [ 0x0], [0x9241174a6dc51b3e, 0x524a8b7327eb932e, 0xcd8581acdf403500])
+ self.mul([0xdfe0877b600bba48, 0xc5daaccc40a0bbff], [0x6d1a50ecec55ce1a], [ 0x0], [0x5f699d42a66e39f2, 0x3efd6a246180e45e, 0x347a8a81674549e6])
+ self.mul([0xa9b9d8d8efc0c4d2, 0x319f7c3ba8f5c69a], [0xb7de75391d2b9fb4], [ 0x0], [0x79e756e4ed561d67, 0x2f943eb57e847b14, 0xd47f3af541074a48])
+ self.mul([0xc9236d455721831e, 0x1527d2523a446672], [ 0x9d0ea0ea7a9bf38], [ 0x0], [ 0x7b663861df3cf2e, 0xc9c2469094197ac9, 0xc6ee3fadc6a776f0])
+ self.mul([0xcd981069461f33e3, 0x8ff811a519cdba4f], [0xb937fa29ef2eded9], [ 0x0], [0x94bfd86fc7c2a827, 0xac1cac2eafd30f44, 0x9f32d1e182256ef7])
+ self.mul([0x2854ca8d54087a43, 0x8a8c739b4a10050c], [0x8cf333794e748a2b], [ 0x0], [0x1634af5d8ee57d5a, 0xb9516f32ca792904, 0x3bcf587a04d95104])
+ self.mul([0xd41b37d22a143579, 0xfb83ffd03ad28cf2], [0xca73c1d9a216bb5e], [ 0x0], [0xa7bd62e2bf10ab0c, 0xbc29daa6efd54664, 0x64e53fd8a71086dc])
+ self.mul([0xd4d63d1fcfb43c1c, 0xdb4199587fcfae35], [0x5c0d6189c8d7eb07], [ 0x0], [0x4c881df0440cf88f, 0x8a71eed3f1463ee5, 0x1f9455a0da1b6a73])
+ self.mul([0xc884d06cdaae24d2, 0x744a1460fda9b4dc], [0xb46739fb930e315a], [ 0x0], [0x8d4e3d67055e66f9, 0xcb7de729fb1b1605, 0xd2155c7ce14fb158])
+ }
+
+ func test_mul_2_by_2() {
+ self.mul([0x84c29890a1339f32, 0xfb2907df32a18662], [0x494d731a8c3abab0, 0x25c4d8b3133cfdaa], [ 0x0], [0x2603a7ba507d8c5d, 0x60db3f520122d89a, 0xe40c78a8e3a08a85, 0x7c74509c060a1714])
+ self.mul([0xeac8ac2d378aa53f, 0xd9538de47d42544a], [0xee19aef6296e25cd, 0xca4799d307bd244b], [ 0x0], [0xda5e1e2101e8a9d8, 0x113f96028f699029, 0x5b0b8cc42ee8e72f, 0x131db0d246eb19ae])
+ self.mul([0x6496a84b8fb36149, 0x387a7d89d0b2f29b], [0x200dead700faba66, 0xda2da8cceb437d20], [ 0x0], [ 0xc984cf62e8ba572, 0xf82d55d7e7f603b9, 0xdcf7682f21cef79d, 0x9d4feb2f3e650260])
+ self.mul([ 0xf003e51db9abaf5, 0x9b717c50bed6b824], [0xb4631112ce283b9e, 0x59d97bcada65d11b], [ 0x0], [ 0xa91f9e9c64d174f, 0xa6da57c4a65b19b7, 0x417ad32608e07318, 0x343ec43ebb2ecfcc])
+ self.mul([0x3c9d4e1b1621a79b, 0x9b04b8283dd8f27e], [0x68d00e304fb8e32f, 0x334ebdfb24d522d4], [ 0x0], [0x18d12ae681a419ae, 0x8b7770487c895a9c, 0x98cf10b2a2fbb0ee, 0xadac98af82b38c58])
+ self.mul([0x2fab8051929c5728, 0xc6237927f0ff3243], [0x4c8ea704247262eb, 0x30916d52c5eeeaaa], [ 0x0], [ 0xe417a530af25f58, 0xca47ecf9b04fe1c2, 0x12d4bf8313f79b47, 0x41fb063396b29e7e])
+ self.mul([0x6fee902fa6bf0e33, 0xb87584b5df3afbd8], [0x5cc7657fdc01b1e3, 0xa719583326088681], [ 0x0], [0x2890eaa43b655daa, 0xb8a76ae4635c8af5, 0xea4a988f3b645488, 0xdaeb39c04b4bf7d8])
+ self.mul([0x3586380ed5b74220, 0xccea7ec9ed24c4bd], [0xc77c6455347c1a7c, 0x6db0c075bd189457], [ 0x0], [0x29b55790edc09783, 0xe317d08cfaa59ba8, 0x5b63e9e4f24457f0, 0xdc4bdecbd3f4203b])
+ self.mul([0xe08c58d41e870e0c, 0xb00d8418f4f3cd47], [0x6ad1302b827db1bf, 0x9238627901051cea], [ 0x0], [0x5db1999cd4810efa, 0x5608fd0e02f5ccfb, 0x520e40cd20889593, 0x95986ab9dab066e6])
+ self.mul([0x610cd800ddb6ae0a, 0xd43edd8494786309], [0x93c78ed08732991a, 0x61a70e7f9b150ab9], [ 0x0], [0x38060728957d2f16, 0x4dc4cb5f5c6da124, 0x5e5ecfd2c86db842, 0x88dcf3e9919aeb81])
+ self.mul([0xa6ea9815f9b8ba4f, 0x9260c72d04dbb7ea], [0x3a8eaf14fb65bf01, 0x85d40ec1037c33a2], [ 0x0], [0x262e2ebd62f9a04f, 0xbb40d8f2a2d0e872, 0x63ea1805ec53e359, 0x77456373ac060014])
+ self.mul([ 0xe9102b9ff84d3e3, 0xb2375e7d9b1582f5], [0x164e1cb643ac251e, 0x47248742717e0902], [ 0x0], [ 0x144e80d0bdf4c1d, 0x81938aa1a86ab9ac, 0x5562070f1f0ef239, 0xfb16f0fd915ba2ea])
+ self.mul([0x6235c1acd5682d67, 0x77bfe0828a3f27ea], [0x31be38b4e50f68f9, 0xed923abd6fc1fbac], [ 0x0], [0x131543b8fb294fe3, 0x407505835e7fc5a, 0x44dfc9742cc0f433, 0x3785ecee5bfb3f38])
+ self.mul([0x3a21b17a652f88ee, 0xe35f8565b6e29b87], [ 0x1a124e657af1338, 0xfd5cd19816a36a0f], [ 0x0], [ 0x5eb9432382b156, 0x138989c3e6c4778, 0x2a82839bcc71e1cd, 0x7459697e2ca202e9])
+ self.mul([0x1315a5afd84e0090, 0xe4dd5edcc72b09ee], [0x98a2cb70a7eacbca, 0xfb019c60fd4ced8a], [ 0x0], [ 0xb60fd3dd214bf37, 0x552b886bd582da30, 0xbc87fb845b1cd050, 0xf8a6f23d5e0cb04c])
+ self.mul([0xbb2176ac4c721b53, 0xfdb6be49e86473f1], [0x82addd64904e37ea, 0xd6d40e4e5f8e0033], [ 0x0], [0x5f8615b61742b41c, 0x6a6163636136ce03, 0x5fdda5141c303056, 0x4c2a98e60ab11903])
+ self.mul([0xc689ed9b1a972959, 0x9e26a4b44aa692f9], [0x337a594dc1d497ab, 0x749fe723dcedcf10], [ 0x0], [0x27ec5d5363a10927, 0x23475a664576fa74, 0x49e6945e38a0c330, 0x2cb41d3067c58690])
+ self.mul([0xe4dfc9fb35997a25, 0x42e7ea03067b4980], [0xb199dab79145e461, 0x9a6b8f9257a15ba], [ 0x0], [0x9ec847f1170cb24c, 0x91a2f212b15a7de3, 0xe836b0ee4f976188, 0xabd1ab9b599ae700])
+ self.mul([0xfb286e87c0ec8006, 0xb9686492d883f9fb], [0xeb53b943ae568fa9, 0xe4a938c2fe7617e4], [ 0x0], [0xe6e04155129c15cd, 0xbf4bb1967131ba91, 0x34e2c03d8229b6a9, 0x15eadb4ef4b2308c])
+ self.mul([0x648c46549a60ce65, 0xb69c9ef29bb19095], [0x7317e62ae51e2071, 0xfd60cb01cb73e9b2], [ 0x0], [0x2d34669933243816, 0xc3b9f6af478fce72, 0x61bfe6a54012a0fa, 0x303aca63f7fd249a])
+ self.mul([0x27d12c24fbbf3a3f, 0x30428b5e48cfc7e7], [ 0xbbd7cbf5f9e899, 0x750d775e3141642d], [ 0x0], [ 0x1d375ba4370351, 0x89d6f999df54605f, 0x5cff492cfbf563f7, 0xf4f65ddaef435f9b])
+ self.mul([0x94e7e2ad7dc6aa3b, 0x8dd902ee52d8b160], [0xe47e6d60c767d058, 0xe86db9c1f7f5b2e2], [ 0x0], [0x84e80fa31bde5ab2, 0xc4482c72de4184d1, 0x83b70cc1131ce345, 0x710ec1e52f8156c0])
+ self.mul([ 0xea6b99bb2241655, 0x2e7632b2ce2851cd], [0xaec929dbe99e61aa, 0x28b5e5a0e1b145a6], [ 0x0], [ 0xa00d574d80ceca8, 0xc7831116341a308f, 0x619dd767594d23a0, 0xf9718c6847ee4bee])
+ self.mul([0xa5d202252d37439f, 0x507a87cee8c3016d], [0x48114f5f7fbd3911, 0x875a3ffd3edbc6d6], [ 0x0], [0x2eae46f643859083, 0x45907c953b8f3e38, 0xcc52655786056f72, 0x573c23e1045c7f1e])
+ self.mul([0xd00d4ee37f2a80f5, 0xce464b46215ae7], [0x539fa222d0dbac35, 0x7452eefa9301677], [ 0x0], [0x43f60c9c78f48b54, 0xae49a3859ef3c575, 0x7937dff3e3515037, 0x4212aff101a11b61])
+ self.mul([0x2a46ae798445d7c3, 0xdf947f612978da8a], [0xc894ea53f7cd3019, 0xe425712bd5f926ac], [ 0x0], [0x211fcfde46e8c221, 0xfb00884f6f96d63c, 0xe1f8c4dffbee316a, 0xcd6684ff2fdd50b8])
+ self.mul([0xdbc551236ae3d2db, 0xa0f4b5ff5a45b83f], [0xd454e22c02576740, 0x86a6385bcdff820], [ 0x0], [0xb6484619edb18726, 0xc6bbbc7676012a6d, 0x5ab064c35a4e4f26, 0x5d300b2396150fe0])
+ self.mul([0x972cd30aafa036fa, 0x99be68359512de40], [0xca1fc5a8a826bc12, 0xac13f386117c8975], [ 0x0], [0x775c21ad13fdb228, 0x39b3949180e70bbd, 0x821229478e0020bb, 0xa23bd8aa218fd340])
+ self.mul([0x5190a0bd248febd4, 0x59d36840e8686ac0], [0x2bbee28e34f08e76, 0xd37dce9267f07977], [ 0x0], [ 0xdf01c860e837840, 0x3aac42b70d6bf595, 0x11cca4766ba332cf, 0x791b6a5cb6fe5f40])
+ self.mul([0xfe6e98bc2f1c4793, 0xa4d78105734ecabf], [0xc540a2f411b03376, 0x5a26c40e4c7cc023], [ 0x0], [0xc40b59238ef1aaa6, 0x7885447d04641d18, 0xbf9d97cd25efe419, 0x26fd4b06c458f81d])
+ self.mul([0xcdea87ec3ed4e986, 0xc8f4f02b1345b7f7], [0x7fda92212f6fe885, 0x2cf35eef3a2be761], [ 0x0], [0x66d728b06541751f, 0x3a40b9ec3f136dc8, 0x89cb60f8eca9165e, 0xee3858b312e79597])
+ self.mul([0xe77b235460a23069, 0x1dd17c395a98598], [0xc43566e2812770d4, 0x9dfa50cc8856ad48], [ 0x0], [0xb16a9092ca05b438, 0x6076b7a558448e70, 0x864e5bc29cfaf7ab, 0xbdba263148054ac0])
+ self.mul([ 0x6875a1fcb70513c, 0x5e5ef2ca56238e0b], [0x301a150297bdfc4f, 0xed4ff74913724054], [ 0x0], [ 0x13a0b2e48b1b718, 0xf05fdfccc06b2d8c, 0x12239007307b6f60, 0xb8ee5d7039135b9c])
+ self.mul([0x1f0f5438ee82872b, 0xd1caa90756d7dbe5], [ 0x6fab46814328cbb, 0x9777e4aa20c21e65], [ 0x0], [ 0xd8c6d4fd158e1d, 0xbe2a5fce6ae92afd, 0x22af774c572f1d1e, 0xbcd15135d2789759])
+ self.mul([0xe54f33a2d586d409, 0xf7626942b7b7cb19], [0xda152f4695b6970a, 0x3db0cff75f9cf88a], [ 0x0], [0xc3586bd0aa6dff01, 0x65217f7780345692, 0xba69138cae6d83b6, 0xd98b46e200fb37a])
+ self.mul([0xa48bc582383fcb73, 0xb87375b926e3f447], [0x6d8a6b9fb503b367, 0x9ff1ba27b18be8c9], [ 0x0], [0x46687b9dfcdbc900, 0x4403c98e6f6af076, 0x9c303265dc32c73, 0xcfc019d7e823bf])
+ self.mul([0x8627be9d8312da16, 0xf31573190efa4675], [0x9ae81c01c2cac5b6, 0x2c5751e9f144463], [ 0x0], [0x512d8b5cc4ad7aa6, 0xc2f6c8cbf950bc5c, 0xf0d170858bfa4bb6, 0x87b182b171a4533f])
+ self.mul([0xa5a2cac80b48d268, 0xf1dd82d229a7ca71], [0x3a35b0aa6a0a2381, 0xe1071915b7452c6c], [ 0x0], [0x25a99ef37c18fda4, 0xf060eeb13ad12695, 0x5d71b7a66603aad4, 0x41fb2007c109d3ac])
+ self.mul([0xf5f7118ef514c9de, 0xfcf48284f0b33812], [0x625033bdc212d8f3, 0x3c0c0b535778527c], [ 0x0], [0x5e75a3a4c0dd5444, 0x42e3dce683ae47f7, 0x53d537f9d9719a13, 0xcab77d646534ecb8])
+ self.mul([ 0xb3f9580767e3829, 0x9a8f93df3e8dcc71], [0x7092556175248f46, 0x31b58ad41b71bdac], [ 0x0], [ 0x4f23f6bdbfbc423, 0x601f3110f1858392, 0xfbfe53325b3901ea, 0x144df3e7e015c8ec])
+ self.mul([0x891c9c05c64d0080, 0x7209cc57954028fe], [0xa75bab16cadbc408, 0x9a7b7790b219780c], [ 0x0], [0x59a2c2958bbd443b, 0xfc80cde9488f3203, 0xde6a890d97b8e495, 0xfc1f2b5af06fbe8])
+ self.mul([0x1f29bd0a7535ad55, 0xb2bb81cab2c52b42], [ 0x658693ac264b9f9, 0x64f32aaaf9fb580], [ 0x0], [ 0xc5bd967fff8f28, 0x68c9c3e5b9f808dd, 0xea35a4c03139c8fa, 0x3c5ea49ac6294b00])
+ self.mul([0xd3dc5e8bf186f9f8, 0x1367a76d8bb63ee8], [0x9dec937af36014fd, 0xdb2bf2b4e2dba63f], [ 0x0], [0x82b1ef3046db8bde, 0xc8c0fd6c5ec5794b, 0xa204986764c16dea, 0x79b4301e2f1beb18])
+ self.mul([0xba17679703c3e7bd, 0xa5923d2ddcbb08c1], [0x19f8b41b1a8b003c, 0xb2e4bf84548d43df], [ 0x0], [0x12e112b642434e63, 0xde663d73ec0fe2a6, 0xff4c0e1f5d162162, 0x98f2c01f6084231f])
+ self.mul([0x7ac6a5d43b2515e6, 0xbc590c27ba6e04fb], [0x239eef94df31b0e5, 0x3b9ffb2885149846], [ 0x0], [0x1115622d37c6741c, 0x7ce097a7336c0e, 0xa34151783960fb32, 0xe77e82f517a664a2])
+ self.mul([0x704d0f5971bfc572, 0x15ede60c4ff7c632], [0x319efa748b2db55d, 0x9399c99ac9b83fab], [ 0x0], [0x15c47d5df8f01b34, 0x5067991d1a425aaf, 0x235b28906cd8fd77, 0x4b532af1a37b166])
+ self.mul([0xcc6c0139bf1ec3af, 0x55d2f61eb4f230f6], [0xc0ff5aab184dc1a4, 0xb561c616bab26f40], [ 0x0], [0x9a1ce8e71fd7c866, 0xa19a30aa96141c43, 0x4a94d41d60ec6c1e, 0xb82b193f06d2e780])
+ self.mul([0x3153d251de659eb2, 0x5da0d44485071811], [0x87c5c9baf7f34400, 0x92430b1da544ccb0], [ 0x0], [0x1a295048dc179194, 0x8f67d47c8ed558ea, 0x2fa16cce45b822d4, 0x71f2e66f759217b0])
+ self.mul([0x5f5087aca86502be, 0xacdb7c4078f415fb], [0x77f3100a7782a0b2, 0xa51fafe076759423], [ 0x0], [0x2ca8ee7af949f538, 0x21af8be5f6a62d80, 0xc2222673f1e2b2ee, 0x280ddd0d63cb1d51])
+ self.mul([0x4a173b5f1a3fb810, 0x509c2264b093f5e], [0xea2f8fd9d3247dbc, 0xa785554a39cfab8c], [ 0x0], [0x43c7002ad96b38cf, 0xf4eace75ed1b27a5, 0xb1f0960addf2e466, 0xca3e03d261647168])
+ self.mul([0x74927a675d837dbd, 0x799145d7b6080dd2], [0x37bb895286ed21aa, 0x805b9f3efeb15ddd], [ 0x0], [0x1960ddd39675bc39, 0xd312a7e68922f318, 0xa4140e7f6a9d7200, 0x9b8487cfc2b384a])
+ self.mul([0x47e63aa7868ebbd8, 0xff47c0c0036807ec], [0xcb8790431f40b28d, 0x3d7c459869e17e0c], [ 0x0], [0x3929a3702111c691, 0x55ea375edd00860c, 0xab7fb9c475c08020, 0x949b847c1f328710])
+ self.mul([0x69b4f17361faa756, 0xfedac8b3f1939ff6], [0xbe7f765a49a24da9, 0x37016d23b4fe98cf], [ 0x0], [0x4ea8ecd61a4552b1, 0x8e4dc82cdb4cf028, 0x57e2552df2c1f7a8, 0xfeb93a83ab6c67ea])
+ self.mul([0x5f1c6c9273490119, 0x19545e8afd66fd45], [0x242edb0db9f8c172, 0x6b3c819ea70b6003], [ 0x0], [ 0xd7167c284f1bd32, 0xfc41803e7f8dbf0d, 0xc388fa9540b82e4a, 0x291462e27c25d7cf])
+ self.mul([0x5ababc65ae03a8a8, 0x6372e6ef88ae6388], [0x59dd02c8756a906f, 0x154b783548152ac0], [ 0x0], [0x1fd93fb07e3f9634, 0x13c8d247c166b68, 0xe658ae51c989b0de, 0x1bc21d878946f600])
+ self.mul([0x42b3654f4ecae4db, 0x52d9b6fa9b6165a6], [ 0x1785143960790a4, 0xa182e8383f64d324], [ 0x0], [ 0x620ca92b946ba3, 0xfef975793f9b46d0, 0xc11fc5fb01c3af91, 0x84489faeaf521d58])
+ self.mul([0x40663ef113bc425b, 0x43ac26307d103f5e], [0x50fbfb2851ba7608, 0xaa91b1705220dcdc], [ 0x0], [0x145f571970c8a43b, 0x909f8a1620b86a72, 0xd0e76e35ea24393d, 0xaa0b0a99782b3cc8])
+ self.mul([0xed11edc96aeab7dc, 0x95eb02251404ec1d], [0xf0e978e176e8b7d8, 0x4f45fa2e09b99c54], [ 0x0], [0xdf19042f72e48a3f, 0x9a21ccc853474bc0, 0x339880bff372cf83, 0x3f32af6f37742584])
+ self.mul([0x27a43eaf6e92ebea, 0x1d4576af77ffb33a], [0x141050805f2c64b2, 0x247ef83dde9d3d84], [ 0x0], [ 0x31b5ba0d40d60f7, 0xdaa0c5e262cdb270, 0x81d4d9d9bb782da8, 0x44df3c21041f3be8])
+ self.mul([0xd86af0c711934a9a, 0xc5089bcd0fd5edd1], [0x752db0c4bc058978, 0x1dd6fd07399633e2], [ 0x0], [0x630f80472462d39b, 0x3c51dca2ada34647, 0xd575f1656f80c69d, 0xefe85c337ab29582])
+ self.mul([0xc3a68b7e76ded194, 0x6afc6f347d3a8ec9], [0x9bf02d5ca7a18634, 0xda647274d83d4c4], [ 0x0], [0x772d65436f04cd6f, 0x6a30ba595cbbd4d3, 0x6102535b8304eea1, 0xc3becd6ce4eec5e4])
+ self.mul([0xea364a2996ecb6b2, 0x5cad6b5ade942e6e], [0x89d02a2964e8c02f, 0x91f815a0371fb537], [ 0x0], [0x7e15805f4abe2785, 0x982e663a11e10322, 0xcb263c1ae58bf801, 0x98f8248fd7fbbfa2])
+ self.mul([0xde9904795ba5aaae, 0xdcae4c8f37ed20e], [0x69c94142b550ddbf, 0x46e506adfb084bed], [ 0x0], [0x5bfbc1b9251e606e, 0xb5c21a88f88bf580, 0xc8e7de9cbd7afbaa, 0xa307e8bfde6290f6])
+ self.mul([0x80ac39faf157ec3c, 0x9dec7bab70d181d2], [0xee4fecb03bb1d34c, 0xeb2e5263464a994d], [ 0x0], [0x77c84a048aac7d6a, 0xc501707264a4ea14, 0x69b59bcec02a8e63, 0x4cc90743184e8e2a])
+ self.mul([0xdc4faccbedfb12b7, 0x270b9a966cdc11c5], [0x382f4b624612db6b, 0x1617fb8c16b90a6c], [ 0x0], [0x305a214d3fed85a8, 0x6350149402fd4a39, 0xf0b560e4e52ef019, 0x65778b024ae6311c])
+ self.mul([0x70eaa75daa8d127e, 0x90fd521677161613], [0xfd21262c339ad9e9, 0xe3cf87c395e9dbf1], [ 0x0], [0x6fa6867d78901f7f, 0x21d80b73da8007ca, 0x4a9e20123c768929, 0xb49927226f808e3])
+ self.mul([0xcbc671520bb655df, 0x71d92e23a4d9c615], [0x1276bc79c2edd24e, 0x41c87c0731506f12], [ 0x0], [ 0xeb27776a7d1b874, 0xe4dc3f9641550400, 0x250bc2a40ef2426d, 0x7d467c86efc3087a])
+ self.mul([ 0x8bbebda48e74f1f, 0x5d7cf7d8639bd00a], [0x95b2aa0c196186c7, 0x2b3e3ad80dc5de3c], [ 0x0], [ 0x51b78bd3e81025d, 0x2271c60c2ab011c2, 0xada5321c833f6cc6, 0x67d11a00109f6e58])
+ self.mul([0xfb9a744edc0f668b, 0x3747c4130361f0ac], [0x1160eb3b27bf8fa9, 0x9b636438d4bd50bf], [ 0x0], [0x111482d5c69d8aeb, 0x50927d82eaa9b25b, 0x6361253b2a35241f, 0x629bab7b40445054])
+ self.mul([0xc4d2eb7592e1ed42, 0x3d6055022b251e27], [0x95ea2a9e4e3c0d7f, 0xcdc8e474f1091fdc], [ 0x0], [0x7342cc9af8eacdd2, 0x1fc0de7da4ec5183, 0xba06be5c47af94ab, 0xd5ea2c7358eba284])
+ self.mul([0x786ee2db0a10cefa, 0xa1d16fe0467e042b], [0x1fee89aae790f785, 0xa40bbe590fd3056b], [ 0x0], [ 0xf05a5532bd5840d, 0x917cf6aa00a5e097, 0x8634215d5a71cfce, 0xd674fd2ce13194f9])
+ self.mul([0xde02002be12bc073, 0x969e4269bf6d63c3], [0xb35fdddf69f6e8cc, 0x78dfa51eeafb9abd], [ 0x0], [0x9b8e89463883204a, 0x738e16e7a84e678c, 0xfd168aeb813d2308, 0x6c6eb2852ff6f4f7])
+ self.mul([0x5908ba14775c9ea8, 0x891e41b406b5e57e], [0xda818e2713977929, 0xa009f4284b6e5a2d], [ 0x0], [0x4bfe7d4ba0510c33, 0xe7bf2f8dbc2bf0c4, 0xbf1e6883f272019c, 0xf352f715a6cba326])
+ self.mul([0x2f201a365747e1e3, 0x72f34b0b36c776d5], [0x6162d9dc5c1c86c8, 0x6035f15e72b60ab1], [ 0x0], [0x11ed5c5366a30688, 0xadb2618fa9e2b212, 0x30e93febc496b615, 0xb1b83ed3fffb7b45])
+ self.mul([0x5323813948030298, 0xa1447f900d145dfa], [0x5ebe82131a7e5b48, 0x1c59d7801e306ac1], [ 0x0], [0x1ec4e80b2cd0df40, 0x4dac0ed10ab916cc, 0x6e758dadbcef4151, 0x67069ad936245d7a])
+ self.mul([0xc5fbc7d4193e4ba1, 0xcd37197a5e24d986], [0xfcedd8d27edc20bd, 0x599e38df173d89d7], [ 0x0], [0xc39bca7c0375bc74, 0x979614529bd8089f, 0x5b65adbd2d292d9c, 0xcee96c33a849658a])
+ self.mul([0x50a60dc5216fa7aa, 0xf3f4d2f1512b0a9b], [0xb8e2f56411b1a3ef, 0x6cc6c601a6fb9299], [ 0x0], [0x3a3ed9cc49adcc74, 0x93ec04489fc3ab6c, 0xb33abbc3fb41a551, 0xee1d1d32f6bebca3])
+ self.mul([0x464e55f95b4640f1, 0x4d74bb22633745a9], [0x8a77bc32421c3425, 0x5043ad7882ea2ab0], [ 0x0], [0x26071c71b6b52773, 0x88f80f2a9cf56dad, 0xc1263b38d8a8e828, 0xd1fbea08c5e79e30])
+ self.mul([ 0xebcd8510eb14a94, 0x5c40741d0aaa6c6e], [0x53a11041ca268d0c, 0x27356a84e7c6fcd9], [ 0x0], [ 0x4d07fd5e9d8f104, 0x98c4d3db57da0815, 0xdf5335781ac818a, 0xed907f7cec46313e])
+ self.mul([0x73bd1c9d40a9b670, 0x37705fecf787a6aa], [ 0xe2dbb6a149d503f, 0xb33cc6ac750a702c], [ 0x0], [ 0x6690489bab442a6, 0xae4d355a5be54f6d, 0xd300fe48e9bdb598, 0xe58e49b618df0538])
+ self.mul([0x6c6c4577a49bf423, 0x1297b6a00f6db75f], [0x411a3c2fb47df818, 0xaa47a09e4ec247e7], [ 0x0], [0x1b929a20038c9728, 0xd9dc223ff93f3941, 0xbf9c6ab2c96772f4, 0xe36da5b41d9cfb9])
+ self.mul([0x3572a6d789e1ffcd, 0xd01068c5489cc3df], [0x569a939141f5c5e3, 0xf0b45a96d0650821], [ 0x0], [0x1214c9d3ef7e8e8c, 0x1c320885fdbb126f, 0xd904317b61c4e259, 0x67bbdb5bb94f37bf])
+ self.mul([0xa7c95a68296c3e08, 0xfaac15e21956b525], [0x34019a09baf1732d, 0xb3a7cd7a1b63d075], [ 0x0], [0x2215f31c03cf8855, 0xd4fc9c5b40f04e3c, 0xea06e1e743f9d766, 0x3e0d9b30fc1dd9e9])
+ self.mul([0xc5e01f41ea2de514, 0xe6f81eec5f14a5a1], [ 0xc548a3fcbb1dd79, 0xa1a6e57d7d342c98], [ 0x0], [ 0x987d9dd790e6b30, 0xe49aff974afeaa0f, 0x3d4f90c20e9721ba, 0x7b7465e426e0398])
+ self.mul([0x621d78b49a916cb1, 0xa1c5b7ee03ad35ba], [0x85288d79b8106b34, 0x2b7ec77c263586b5], [ 0x0], [0x3308da89927ab460, 0x16e4f03fa3ce62de, 0x13f76f15064756b5, 0x6419b622ff185882])
+ self.mul([0x78221cf9da4429c0, 0xd543d1321e492fc3], [0xeba32c72e65fbb97, 0xdb37b4f9e7a96f7f], [ 0x0], [0x6e93e32d96b9f73a, 0xec0ef16755672772, 0x997d1de594cec050, 0x866d1c133ebf3ebd])
+ self.mul([0x97fdb0a166e0f143, 0x8ebb7d169e15fb29], [ 0x5eca5f71cd41484, 0x312abeea303bc0b2], [ 0x0], [ 0x38474db358858b4, 0x3550fd2b51a409c6, 0xc2c91118afc77282, 0xcc427fecfa1a6282])
+ self.mul([0x10f405709833f46c, 0x5d3f241c3a0478c8], [0xe528906b09eb615b, 0x2a144508c90e3a21], [ 0x0], [ 0xf2cf88eeb740814, 0x6ad8af6b9b05446c, 0x8fc0bf16729773ad, 0xbabc6a1c20e0e1c8])
+ self.mul([0x417cc4b215fc6881, 0xfbd9b95ed108bdad], [0xfbd31f501c1308e8, 0xd2e42a67ca9dae7f], [ 0x0], [0x406b56b3545425df, 0x8d6339e1e4bc535e, 0xe983330ec2503a0f, 0xcecf32bf795aaed3])
+ self.mul([0xf8029fd31ae35003, 0x465525558e64072f], [ 0x50d35ccae3f0a8, 0xda07d5485d4afbee], [ 0x0], [ 0x4e4d960133bba6, 0x5bda41fed5760f65, 0x2912cbda5def6569, 0x3c9e37e49a9fc2b2])
+ self.mul([0xab4b3175f3f7d7ff, 0x201cf177b5dfabaf], [0xf801397497337f0c, 0x28781a251951c90d], [ 0x0], [0xa5f1a9a7370f8925, 0x980b9498e351e6ea, 0x71b2da72a0cb648e, 0x457e3ab543871ee3])
+ self.mul([0xfe41a03bf798d197, 0x9a7f4826cf5dd752], [0x503b2cde073c4a26, 0xaa3845917adba85a], [ 0x0], [0x4faf47c276d4c0af, 0x39b5fdc7db77fb32, 0xf6212224ddb6ab84, 0x5d3f0310c37182d4])
+ self.mul([0x5eccb87a63d47e30, 0xeb7c0dde16f85c83], [ 0xf241366943b3713, 0xb35ab73717d31b07], [ 0x0], [ 0x59b5ac84b365bad, 0xb5dfdf7e99d70649, 0x238223d819cd5486, 0x808391a7d7855895])
+ self.mul([0xf928fed1f8d77b6c, 0xac207e2ac07647d2], [0xdf30ce6b9fd8b2d7, 0xf1c38efa6e5d07cb], [ 0x0], [0xd93a36906be533d7, 0x4e545709b028c496, 0x859ed9a71f9c8b7a, 0x8bc094122d0bb186])
+ self.mul([0xdad8aaeed753196a, 0xb1343c98f688b129], [ 0x5a475d1cf5028fc, 0xc0a8dde05919fd5f], [ 0x0], [ 0x4d2d2dc8d72ff18, 0x9ab4fa13a6193845, 0x2bf4b2facc55847e, 0x365eaa3921d04337])
+ self.mul([0x4ef5517e59ead90f, 0xd2ae05bda3a296c1], [0xe114c0ccb52563f7, 0x15d98266972fb10c], [ 0x0], [0x456c03418b611e27, 0xd820fd3452a10d97, 0x6881f4a683c029cc, 0x7d6567b29a49820c])
+ self.mul([0x2d15e4fba920ebe5, 0x11a35ad77db24755], [0x9f3cab66fa694560, 0x17539039da98925a], [ 0x0], [0x1c0b4889bbce5849, 0x71c07ea861692314, 0xdc1740be71b605b5, 0xd699f9f799d38de2])
+ self.mul([ 0x2e9dbbf725c2354, 0x6aa9b0d329d0fbd1], [0x691d42e95e700188, 0xe6051db384ebb335], [ 0x0], [ 0x13240625d2b40ad, 0x5fbe1ed9ddb285bd, 0xe7108524fa167abe, 0x89e826c6b5324545])
+ self.mul([0x15a2fc72922a57f4, 0xb4d7ccaa1c7f95a6], [0xb0a18ead0d37861d, 0x3d5ab0922aa9e718], [ 0x0], [ 0xeedb51e90d527c5, 0xa774e48814c07c3e, 0x929febeab35fc816, 0xd4e3e71cd294d190])
+ self.mul([0xe1b23cefa18693cc, 0xdd927cc05c8179e6], [0x409f5161df26c632, 0x6b974572da91a208], [ 0x0], [0x38f904af6fc452b6, 0xe4765f304ef230f2, 0x505636f52c2648a8, 0x376d8e1cba755b30])
+ }
+
+ func test_mul_2_by_3() {
+ self.mul([0xa83b0437bf3c5cc5, 0xbe7ee7a0caae17ca], [0xb2803974dc053b5c, 0x68e8fd4f070d9503, 0x24e82066e769e78d], [0x754d4c32ce1c1150], [0x4ae39c324d449ab3, 0x97db92319c9b82f7, 0xaaf059800d692c0, 0x2249dcdc1346042])
+ self.mul([0x584809a7997f60a4, 0x65a1d5560dc1684f], [0x74cd715d97046a8d, 0x8dece7ef4154a27a, 0x1f7cee046abbd2df], [0x28477d27bf4622ff], [0x8568026aab55de38, 0x1369c2b38abb0e00, 0xb5cc58a9e4b76937, 0xddcaa1f28abfaad1])
+ self.mul([0xe3eb6c81d676f3ea, 0xd38a12c8e1cb3e5a], [0x6d85f15f4577ff3a, 0x4db76bd0e3b42deb, 0x463837f1e268b9bf], [0x61827d681b21daa6], [0x1f9c0e0486325592, 0x6a5d2a74f6dc7456, 0xbec7d7c7dcae617f, 0xef35f631f428f26])
+ self.mul([0xbec385f9b33c239d, 0xe14b2a8cd1d4ef68], [0x3c64f8d5774ca64a, 0xc108b2a74beb173c, 0x306a0595fc0a7103], [0x2d01113356ea7b78], [0xa3b2e600b73a9cd8, 0x26d433611c565cd3, 0x1dbb4c269d7bad9c, 0x463d5c92d3bb638])
+ self.mul([0x1ff888469139dba2, 0xafeb8a49d61be9b8], [0xd15ab0b2e2ae0253, 0x7fe8660a8f96bf5, 0x37106d768e476c06], [0x1a253ab2ba2db315], [ 0x5dbcf1ae594edff, 0xf9f2ae8d4895f1c1, 0x63812dcd81265d4f, 0x83fb5440ad491a50])
+ self.mul([0xfe80eb631c77d6d5, 0x65de9b2db370b3ce], [0xf75fbdf286a63725, 0x3ad692edf5165485, 0xf513a05c73f68ff8], [0xf5ed91ca43c29a17], [0x3a3d3f0981d03482, 0x9a5bacfc84db4ef5, 0xff629b119f48ba4b, 0x1906489c1b924190])
+ self.mul([0xf26ed883481aa1d7, 0x8a25771df56f7048], [0xcfdb99579b6c137d, 0x2c8f30b36dd4c528, 0x8befeb9596317142], [0xc4d7971c95ddb8aa], [0xc04cf41ca36ffe1c, 0xa9ee126dc4cde912, 0xc0d8eb81a154af81, 0x92eea7162512ba90])
+ self.mul([0xea4ea7df84410020, 0x9cf67340f4b958ae], [0x92ea09a212350c61, 0xb74a09a65c80aaf, 0x91c3689973d41d77], [0x86771074061321ff], [0xac326a5d02bb8b94, 0xdf22adac44e0ed9a, 0x95c64a74920e8767, 0x2aae8b3c5b4beee2])
+ self.mul([0xfe89934007b3c86c, 0xcb827f3c4de1a58], [0x32bc387a4d877885, 0x16819a07561b1f80, 0x497d991f063929db], [0x327203f25763070b], [ 0x34fcb6985024037, 0x2773dc663f1ca665, 0xb7ad4023d51eb98c, 0x85700acae9d0a148])
+ self.mul([0x69f2133f3643e971, 0xa55f9efdb38eb565], [0x9260d670ab1fb2fa, 0xf75da9364b80aaf2, 0xd55d8302999179fd], [0x3c942280417828dc], [0x99d8b0a73f7b724c, 0x4e3c70d58128c173, 0x6c692281bc30d1c5, 0xac4a22a102fb01d1])
+ self.mul([0x24113cb5a74aa225, 0x5e0862f90f7f8834], [0xff4017c251121091, 0xeade9258712ef186, 0x340f077dd652a4cd], [0x23f633210bfd7d9d], [0x9e7c536777acb657, 0xa9b69fac7bb5bf58, 0x94a9325e15141bfa, 0x2be54f78350961a4])
+ self.mul([0x794ea3c8d57e39ba, 0xc887c91c584f5929], [0x5829baec40099d87, 0x5bad89d9bd7b06d4, 0x6849f5239cf1473f], [0x29c6ce785a64b4ad], [0x4ff282298791366f, 0x67239611c77a24, 0x83d5a4c30b9a5f27, 0xb38f451aa8da5017])
+ self.mul([0x790a8d7d4b78bc47, 0xc3fd31a52a44c7dc], [0x72c0ef9023cc9c7a, 0x9abd380aeefbbd40, 0x937b11a94b9292df], [0x3641ec30ea891e12], [0x9e5de4671afbd44e, 0xc136a1f37363465a, 0x1db26816ba6bd2e2, 0xa6d43efe7b5d90a4])
+ self.mul([0x1cdc578ea97bff0a, 0xa3018c19e0a63d88], [0x9ad542287671c127, 0x239f63cc4739c919, 0x6f1e41175e060a55], [0x117497760a0274f8], [0xfcb91a20e948ce30, 0x89b7c265cab6188c, 0x74ef492e8f36d72f, 0x8a93e51376c9be28])
+ self.mul([0x12e2733a24c33028, 0x7f0e6837fca5ac6b], [0x98dc17fce7db9f5d, 0x798bcb5fa083c62d, 0x6019f4027f7b20e7], [ 0xb46b0ca8c29ac52], [0xbc6aae5929f8c889, 0x92c53db6cfc3fc57, 0xe3eece225985c0ef, 0x2457f3129b74f48d])
+ self.mul([0xa908d844f8b28810, 0x7e71a843e0bdaa09], [0x4cd0d5587cbae9cd, 0xe1632329082bbbb3, 0x2321eae1da2f1a1a], [0x32b88442fb367fa5], [ 0x3d65618f29c6d23, 0x4cbf03dd3585646d, 0x7aea89e0f029cbbf, 0x1ec16d3ef82f2eea])
+ self.mul([0x5673b98523c869c0, 0x7119f24eab53422f], [0x65da39924159f0dd, 0xef4bc0f30e06d2c1, 0x2253a8e943b29396], [0x22655a2eaadebef6], [0xc05aa1e6963f3d6c, 0x7466acf1502d22f, 0xc079fe96809d1e69, 0x825425768377c48a])
+ self.mul([0xd4cac4b02dffbf11, 0xb7a3fd7b55195b40], [0x8f5f22d70e499775, 0x84b5b2dd843f3776, 0x3198d5f44fdbffe5], [0x772c5813175dc62e], [0x681212345163e823, 0xf3529998563faa06, 0xe37b9d6788b0ada9, 0x2a0b71f131536040])
+ self.mul([0x643e75e3829dc585, 0x4d2641d9cc85dfa2], [0xb33517a333f7c885, 0xbdd717de1204d850, 0xc4103bf871740a9e], [0x462c769e012454a3], [0xad2a3f6d46f46705, 0xa10dbb61f65eb903, 0xfd3418d94c0acd07, 0x1481e5b94cc459fc])
+ self.mul([0xae879da1a3c42b2a, 0x683765f53baab118], [0x22ba96b2d7f11611, 0x90c737041700ce5c, 0x8aeafa8c983a5a82], [0x17ad383563119cb5], [0x954e51abeffb52e5, 0xd63b2c7c429ee9bc, 0x4533d4b9865015c1, 0x3d312474ae605e30])
+ self.mul([0x875e41eb8ba77616, 0x912a178b567c5182], [0x971d4a4b888c4844, 0x483ab50cac73f1e0, 0xdf841db1221510cf], [0x4fe815d896ee3fc7], [0xcf270a04d6f2c4cc, 0xb4e196d3baf41b2, 0xef0f53e964c80be3, 0x98a46efaa748081e])
+ self.mul([0x3c2f0b1d911e5518, 0xdf0449aa04e40e24], [0xb3d4629ccf341c0c, 0xd2d9b89b88176ec0, 0x393079c81c6fcc2], [0x2a46d2e9c096c454], [0x3aee9835feb6561b, 0xca261d02b76833dd, 0x44cb08978c08b6ac, 0xa1c17d1b46962748])
+ self.mul([0x7c38f95ef383ba87, 0x81186b459e1f01ef], [0x68a4a797109423e0, 0x66b5b12f9a329d14, 0x6ec7286c0e4f9fa9], [0x32c70b20cc14fdf5], [0xe4881a2c1b3f6784, 0xd4645c728ea49d55, 0x80edeb3a51991b8, 0xd0bb4ab4f6cb7c7])
+ self.mul([0xff78c267a5b28c91, 0xad830cb709bb534e], [0xc32e956bc894d49d, 0xe03dc17b0ca55486, 0x1db15c27aeeeea4], [0xc2c778e4baa139ca], [0x51fd2de5ea0cbc91, 0x76d6fc85feb5a162, 0xb2270e56fed42871, 0x5a19294501f7e1f8])
+ self.mul([ 0x9bedf8ad95f4e81, 0xf46503a36ad9c03a], [0xdd97c45da46506bb, 0x9266e4be0b98486, 0x531a6575992aad7], [ 0x86f8e0a6c4d21a0], [0x2b69e8da8e30d0f7, 0x6abcbfc566cc1773, 0x1cae6d61e5229ec, 0xa85926ed219af4b6])
+ self.mul([ 0xe6ecb004967b1f6, 0xccc173db03e7ef7e], [0x92273f0265cff8e3, 0xa93876f518eb1638, 0x885f3c0bfb8a74ee], [ 0x83d66347d786a11], [0x619c853e0fd70430, 0x7f4bc8f72aef0297, 0x75411e0a12a3864a, 0x8c1848a45e11bf24])
+ self.mul([0x4a3b72490f074a7d, 0x9403869756ba298a], [0x9be41c4dec6b7148, 0xa114e0e4373c609d, 0x22b159784250b27c], [0x2d3423591e1a1f44], [0x1d10ef38d2113d4b, 0xda59031c659f059d, 0xec6d79c1266b2d7f, 0xa50ff72e022e12d8])
+ self.mul([0xff65743d15c345bf, 0x361c0602f0df9fde], [0x3156c094bc6df56f, 0xd2e73f87554df835, 0x4d0a1c61846449bb], [0x3138f7753780e801], [0x126cbaa54b8de1d6, 0x31f100fd43a064b2, 0xc9c721b567e77d64, 0x206c7bbca2a8152a])
+ self.mul([0xaa054e6478e469da, 0x48a826a1bc7c7dac], [0x486d4cf225cef0d0, 0x463a51b8a77be4e0, 0x9d0237faf06b6304], [0x301a1569082dda6d], [0x747d755c2df1f16b, 0x19510644bdac232b, 0x4436139f0fb885fe, 0x37ca523cdd6f7ab0])
+ self.mul([0x2785b5400ae9cfe3, 0x99e6cde0c4805a06], [0xa5249d518bb71f9c, 0xa355251c0a3a6172, 0x171a4ed9611c0b1], [0x197ed4e95b12bab3], [0x7d060071d413bcce, 0x1f2b571697fee5b4, 0xe02a4495ee0a1565, 0xc9325c9b9ea8be26])
+ self.mul([0xe4296efd79ae37bb, 0x6340624b2aa6fa12], [0xa03907a6123454c8, 0x372eec72c2b774cf, 0xfb22ac71ee591765], [0x8eccb969479d6f18], [0x99432c479644a97f, 0xb3ebe0685baac974, 0x40e429a19e9ed15d, 0xdf2112f8809a471a])
+ self.mul([0x61ce060fbabadcf2, 0xa210646d22e98061], [0xc7e8ea6eb1896d6e, 0xd0cfeba56f8c8023, 0x8296224b289ae56f], [0x4c6022fc544d69cb], [ 0xf8697e3468e8a19, 0x65b7e3922ef81f89, 0x1100e341a7ece59c, 0x1e58267e656f6f0f])
+ self.mul([0x49346b3657adc3cc, 0x15f656770d4f82d6], [0x177ff7a1b4b083f1, 0x734a56593e2f04cd, 0x827aa754e5d75ddc], [ 0x6b84d72e2ea4cb8], [ 0xd9a13ae2e4020ed, 0xaafb59fdf64a190d, 0x1c5f1174ca3d130a, 0xbc6c642da2962de8])
+ self.mul([0xde376c791b904e58, 0x6edef543373d67f6], [0xeedecf105ffe2679, 0x152a3e44002e9e5e, 0xd554e1e449dd9b53], [0xcf58eea5b025f279], [0x7631312a91e68aa2, 0x255af0d25b6fc74c, 0x9dde7d74213ef79a, 0xcc5836fcfc38a6c2])
+ self.mul([0xea431f686dabf64f, 0x1e1392888725028], [0x40f5ff47991fead7, 0x43c585ae892f3292, 0xdd3e420466edb55a], [0x3b71e3b18b620127], [0xbd6951ce20186a43, 0x458e35b34dca2e22, 0xef520809d78d87e4, 0x839f2f1cefe47610])
+ self.mul([0x293091bfceea4bb1, 0x6fc8721d8eef1c38], [0xe8ce3060eead40f4, 0x61385476ebf22420, 0xf6ce51945b55cd3b], [0x257530f3cfce7ba1], [0x837f3ee6a67c253d, 0x2bff6095af9bd09f, 0x8b90f0c5d2e6a5d, 0x7b6d7511b14c58e8])
+ self.mul([0x55d4ba7056ab823e, 0x5d0d78e5d7f3d3be], [0x87ad39a3d61a0239, 0xdff1887e3789a1bb, 0x752385e7726bd5c0], [0x2d7d4266875d489d], [0x2f2ea6b3daa62747, 0x91a25e40874bb360, 0x2155abf6ad8b1727, 0x34ed86b5f275e480])
+ self.mul([0x4305b638aa2a1d05, 0x76531b13445e764a], [0x71d9dfc4e491230e, 0x971a3536e84ee204, 0x5c765d44b003475e], [0x1dce8fdbff16c9d3], [0x41d0cab54b58a6e1, 0xbb0535bfe1e9eec5, 0xb104d02ad8bc8592, 0xa76d551f905bf52c])
+ self.mul([0x2f1bc7a2bfea5f98, 0x549ca4604f0216dc], [0xd51ad9f6e42f4c27, 0x58ceee7bee1f903, 0xe9c2883f81e0149], [0x27370e08ab1dbc53], [0x917216c4c6545cf4, 0x906d2e160304996c, 0x5877b323f37e3118, 0x4d69abd577760bc])
+ self.mul([0xb2da9e51075f6123, 0xa8235504e1874107], [0xaa3813bbb5a5ed8b, 0xfc4b6a21cf677560, 0x23bb098353d898be], [0x76ec5abdcef91ae8], [0xea4ee6bab129c904, 0x34fd119ffb056acd, 0xba1cdde1e3ca1569, 0xb48da950d3e66b32])
+ self.mul([0xc500ac134dbb573c, 0x7528bb8ab7da094e], [0xfcb189c17131bfee, 0x2bec1c60290c76ab, 0x7c8260fbfa39dad9], [0xc27548dc3290cc55], [0xedddfbb7b7047316, 0x97ed5c1e5445f59c, 0x4a71c18fb24f5583, 0xc0895541c21c4f1e])
+ self.mul([0xfcf9475bb504443e, 0x9c5c196f5fdaef70], [0xb96ee99f775c80bc, 0x376e72ae3f21316d, 0x188970314405be41], [0xb73dbe8a65f0efd4], [0xc9481b089bce2d93, 0x6829fa7bbdc0c020, 0x628d9df283521e0d, 0xe77ef9bc417beb70])
+ self.mul([0x10d6a6962c466be9, 0x28edc6158318dc1d], [0x3f0efba531d8d6b2, 0x98a0e664b8ad6082, 0x4c5635146637e537], [ 0x425cf496411b5ba], [0x58be24e1b9733276, 0x8add9e7c1eab918b, 0x5ebde3c96e8e48f5, 0x8f6312333f783b3b])
+ self.mul([0x7267e7855dce8f95, 0xe000b3c942beebfc], [0x25041d22ed0fc33e, 0xe7615198e15c7e0, 0x887affd36411e29c], [0x108adb1b459c69ff], [0xad0e7d0be80c7ad7, 0xcfddb1ec3e43f9cf, 0xb3f85a8c7a4a3a94, 0x3419c32154684590])
+ self.mul([0xdc349c840c2a2759, 0xb305892326f48530], [0x291583ee6658e33d, 0xcb34ec373fa4ec45, 0xbb78215ce60be1b], [0x2356eeddf9d240a9], [0xb1b5a8d337599077, 0xeb972490c2e646b9, 0x5f5c58aa98ade9e0, 0x56e6396d28a3ac10])
+ self.mul([0x1e6980a1b5dc460c, 0x33f2a9cb767455c1], [0x266b222d34a489bc, 0x6c7cd50abf9ac41c, 0x5021fea1788ad6e3], [ 0x49063402677c61f], [0x689341c5e768e12b, 0x8133db4b280a82a7, 0xde078cff639c7e0a, 0x1b7173b8fae16023])
+ self.mul([0xe806bd6a5bdf4e98, 0xb802848d97735ee8], [0xd723f7ef83086409, 0x26aa9afdf8d634a2, 0x41d27ce103c7f66c], [0xc2fe42b7ce829d48], [0x8156f9ae22b06e1f, 0x5fcc627538fc3a5a, 0x7ab826c438d9c71d, 0x7ff5d9f84036f9e0])
+ self.mul([0x704259a2a6e12450, 0x300e88e5404e1b5d], [0x61cbf37fd3264dca, 0x55f8a970dcbc2242, 0x6d8f3a2e5bf86179], [0x2ae2935abdccfb39], [0xb9a8ce05115e860f, 0x882ac13e7e5c5c66, 0x3906df08d81263df, 0x76de9dd38e612bf5])
+ self.mul([0xc3796229739e0610, 0xeb4dda7eff63cfb8], [0x95d1d75b98b52efb, 0xee17e23504b26f2, 0x3b0d0acdba62cf80], [0x7265e0ac26537d5b], [0x2400dd7aaa2de66e, 0x672e9bcb1aedb1ec, 0xe873746fa0a2edd4, 0xe228bf7a9b4da400])
+ self.mul([0x5059fe9d59b44321, 0x91f437269f49df6d], [0x3b55c3441a27873d, 0xc72f1cddd6ae8bce, 0xcc0d86c74755fe34], [0x129fa8d9bafa5d77], [0xc81d83799c3f5834, 0xb790da7c9a3a4289, 0x336590ecce4b26eb, 0xac3ca21d10e08824])
+ self.mul([0x5442dcae41c57291, 0x449edf4a6758909a], [0xb1a6a2b077566826, 0x78aa0a7fb0cddd5b, 0x25978f398ed21184], [0x3a79137bf95dacfd], [0xdb4ac52bce4f0285, 0x6b0d83dcfb113198, 0x86d6edcaee3484d1, 0x676f32603598c968])
+ self.mul([0xa376f71fedde4e3d, 0x30ef163a13cf37a0], [0xe24f56dcf3cfe833, 0x6276b5442bee9031, 0xa4939cbbead70e0], [0x9081af577fc8700f], [ 0x48bd38f799d7cd6, 0xc3f79a2700d22df9, 0x8819f28443fdb15e, 0x8033c5ad54c6ac00])
+ self.mul([0x9a8df5e2044cf15e, 0xa5705ff6a3a91482], [ 0xaadecdc0dd6b131, 0x3412d64ca8799425, 0x6244e0048d431aac], [ 0x6728c89b6ee66c1], [0x50d3e9a800671c3c, 0x88eca640f8adc632, 0xb3ecbe6d3bba9a44, 0x3e0e8de919b4fb58])
+ self.mul([0xcdc2758da3546739, 0xc87ddc4b0f1e09e6], [0x26b966000ea7fb82, 0xbee441c9faecef6c, 0x3117928925500a2d], [0x1f1fe0f58037a4d3], [0xfb691b9f3690be3b, 0xf8e9498b8af2809b, 0x54e930090179f492, 0xfbc130b02a8ab96e])
+ self.mul([0xc2f351b46f5bd89a, 0x46f357faae24c4d8], [0x5447ab2a39fdc13c, 0x709ec84c2da0bc7f, 0x3a9d5a6021883a7], [0x402e6aa38d3d5e58], [0xb4532ac11257edf6, 0xa3e5879c6caba5a2, 0x8d6886b20a1817a1, 0x1d7a4b08ef6f0e8])
+ self.mul([0x1f15cda5dea7417e, 0xa6601a0ef5ba6972], [0x59346eb641653a88, 0x28d7fdd17ecb9f0, 0x2b46a409b48c4cd], [ 0xad4f25defe7ad43], [0x3313ae6e78bcaab0, 0xb87a3e4f399b7d18, 0x2e7936a7cfbe92dc, 0xd850dce32d11b84a])
+ self.mul([0x1a216a9d6fbc564f, 0x6906c84dae21c93f], [0xd2e168488617323c, 0x8a29d0aeee44fbef, 0xf4d8e5dce1a24b69], [0x15866b78d46d80f0], [0xa15f0c384e9c4a24, 0x655bf6c27f31a60b, 0x7ac02e5282347d56, 0xcee11a460aaeffd7])
+ self.mul([0xcd63e437cf196727, 0x6443472a926b5af6], [0x2b42f52f6d7b326f, 0x62fa0bc1781560d4, 0xf2abb4bf0a1ce50b], [0x22b57fccdcc357f3], [0xd5abd09b220c3a51, 0x8f247f45d705f525, 0xe4d0fba19ede28a5, 0xf84d2ea3e1e2f692])
+ self.mul([0x5f3709188f39a60f, 0x9301ed07db66501b], [0xc1629467130f2403, 0x7f4d7b822001749b, 0xdbd285cb6b294c11], [0x47ed281f26dedd3d], [0xa954e5d35abc71da, 0x6c9efe695992f0e, 0x4d44502a5a394713, 0x855a85ef0ee655cb])
+ self.mul([0xea8dedca3c30edb8, 0x2dd443f1fd0659cc], [0xf131dfe307e37827, 0x55cdde194c8cd6f0, 0x38b09301cf5efa29], [0xdcfd4f278b96e55a], [0xd5884ed71c83a98e, 0x1e74033deb9c57d9, 0x5251ca9d89cfada1, 0x3ea2bb96a69d99ac])
+ self.mul([0xdd7f6f49ce4d6376, 0x62d7e9acf2f3d0bf], [0x70a6f516d4b936dd, 0xe909bd4027edffbf, 0x9e01cac84b4ab1e], [0x617835612aa09d33], [0x8225a10c55c1369c, 0x8f9465753b28b0bb, 0x113d08f3e5dfa227, 0x8e0997f2974e0b62])
+ self.mul([0x238e134804a0c83f, 0x85ca18afb68eb60d], [0x9b5613f88dc3513c, 0x11a67fb414ef7a00, 0xb8b47bf6f7d43e3d], [0x1592fa2d25c04e7d], [0xcc38f58e8bab4446, 0xe09b3e2a32b8a276, 0xa5540c6677382979, 0x25887f685ddc8719])
+ self.mul([0xbf801b24bf60c1da, 0xa293757f47d05e30], [0xd1c4f1813f1dc4c7, 0x452badda33b65829, 0x32fe2585b18072ea], [0x9ceae8e610b2956a], [0xb3bd4baf7c4702c5, 0xe0472ceee4494627, 0xdccbf668fa44c58a, 0x45e4ec90b66777e0])
+ self.mul([0x577434893994d888, 0x4bf9469464f43769], [0xdf7c7afb919888d3, 0x3216e06c560fe39c, 0xa34b3297efddebdf], [0x4c58c0104d566232], [0xcd3868b20af7746c, 0x2a55376273492da3, 0x71b2856938b29a9d, 0xcfec0b6dfc3ea777])
+ self.mul([0x8c87bb682c3d3686, 0x7ca6e7b1662f2910], [0x6b1a2c9cf12d87e0, 0x50e331188983c0d2, 0x1f7641d343d4087d], [0x3acb199b0e62f4f6], [0xf463369cafd743a2, 0x158e913495a9ba12, 0xb0f9b97707cc3d6a, 0x710f8bcd8f8f8cd0])
+ self.mul([0x10ca791c63749444, 0x5a6a6834314926ea], [0x85fce82d87a59e0d, 0x6a8cf597217c94c8, 0x176d06b93ce443c1], [ 0x8c9c77571dc1ea4], [0x77e19ff84c85c763, 0xe799b2d8a1b9598f, 0xa64039ef42bde6b6, 0xf9efdd9ecdbd946a])
+ self.mul([0x6d557e1978421415, 0xb8c7e655c0b3674a], [0x645c5d486ad4d800, 0x1ab8e131ba3a18a0, 0xaee14ee7a9470042], [0x2adcd7d2409c0cb4], [0xae901cfcd7aefb60, 0xc47dfdadb0af3a2d, 0x133350d1b5862852, 0xc0ed02d32dc6a114])
+ self.mul([0x3df28f9a15f1ca69, 0xed52e498ad669cd2], [0x18eb5dcc33e2aedd, 0x7acbb5fa7341e875, 0x5f7490f3ce7d173c], [ 0x607b1d2cc8465bf], [0xfed089ade08de88e, 0xd12fd4a6ef3dd035, 0xd16761f679af0bb3, 0xd9d183fe6aad9f38])
+ self.mul([0x61babd2d0fd504db, 0x4d77aae88eb65c8b], [0x3b5d97b5b4a61add, 0x9e7849809e8a0ddb, 0x2991e3cc3a7690a0], [0x16a9c45a9f98e410], [0x12449e03879602bd, 0xb79e3562370f7ea0, 0x7160ec128e9fe268, 0x4d90ba69ec1a06e0])
+ self.mul([0x37a5c317cdf6f23c, 0xa396087b96a9078a], [0x3485bb13e56281c5, 0x10f839092fa965ed, 0x678e349200d20587], [ 0xb6abd6999e0b9e6], [0x2eeaed2a8b58b028, 0xbc9cd4cee5acbf9d, 0xcc0bf845d3b80fe2, 0x1e24ce79ef7cabc6])
+ self.mul([0xd75e8d81aca3e913, 0xe9e177b00e455f78], [ 0xe3ac41d1ecf9c75, 0xf0257db63c3d9ecd, 0x80e7098a3291bdb], [ 0xbf89c260acb216a], [0x66e1a65af2e31cbf, 0xb3d1f494f4f18606, 0x92305005a8490eaa, 0xeb4e994338a253a8])
+ self.mul([0x7a9b736b5c10633b, 0x9c571ae42b384325], [0xcea269723911e1f4, 0xeccf1644c5426351, 0x2123b7d20eb0ddee], [0x62f6dfbfe4eb0e07], [0xfb2d489e93f4c996, 0x24dd5e71b5ba33d6, 0x475cfded0a2ed7dc, 0x21a24b23efb55d66])
+ self.mul([0xa7db29ce86c33fe7, 0x5e355d2ebcaa2ccb], [0x1a86299f1fa6bd6c, 0xc649d5e45ebdbad6, 0xc464d7fcc8b143a4], [0x11643a414b5c47ed], [0x29c18a3ac8e61cbf, 0x1fcdc200cb25eb19, 0xc49ad896128a387d, 0xd0b6e6ccf718d30c])
+ self.mul([0xddc4a26b71e0d874, 0x736479ffa6e0ddef], [0xe96a38ecd07dc91b, 0x7fbf55ab3d1c1abe, 0x7dd97ed4d99d8efe], [0xca33fc8f348cc343], [0x98ca542286354573, 0x2524c35c15e368e9, 0x7e4d90ed566665c9, 0x71a53a2c00c9c522])
+ self.mul([0x1c58705407275857, 0x3fdefdd75a76d94e], [ 0xbbf53fbdfa6c65a, 0x9c3475e9f6b89bdc, 0xf16c1b5538363e3a], [ 0x14cfc1bfae4e903], [0xe60b3b8b2472009c, 0xed3110e3fb477bb8, 0x7738833743486a96, 0xce8020342e021fac])
+ self.mul([0xf12ebb6ac373b133, 0x4d9514f8a989a416], [0xd5086e344adb6035, 0x525d5d4029490f54, 0x84491cd5bdbb3619], [0xc8b3d33908817f83], [0x962dea5157e554c3, 0x67160f92e6218128, 0x6edfe709de23f445, 0x2c87e408b11faa26])
+ self.mul([0xb1424843537a1057, 0x41f0e696c8187e44], [0xc965de0ecaccc35f, 0xa234e0f1007215b3, 0xf040f0428a13a845], [0x8b7393a517d1312d], [0xca8537b9db7ad632, 0x3904f9e45c5626ad, 0xcf901347d9fb147b, 0x1fff755e0882a854])
+ self.mul([0x82ac5a4c62bcff84, 0xc3a319cd2e68b71b], [0x1c0940f110fd69ef, 0x21b68ff0ff4260ff, 0xaf775452ceb6621a], [ 0xe4f9315aafc5f3c], [0x79aee2a92751a86c, 0x8c82a3379841648e, 0xd0933230e7915dc8, 0x8dd4ef0ab3eceebe])
+ self.mul([0x387bb866fda742e7, 0x81d5d3f9a0d40c62], [0xf2285b5a62bf1a00, 0xccac633144ed1eee, 0xfbe5cc3edf8b02a], [0x356ddbce17b4b663], [0xae529974f650177a, 0xb053af079da05d20, 0x5e3a7ea94df9d5ca, 0x673d290ee43d6814])
+ self.mul([0x1f47e3fa227c7c06, 0xc254d32fef4be493], [0xf66d6188c2f87dcf, 0xeeb928970fab9f01, 0x41c99eca50f28a30], [0x1e1c7299620a09ea], [0xb5d062d14a3cb0aa, 0x60609af8bb6aa89b, 0x9a46eb06f870aeeb, 0x3b377325ca681990])
+ self.mul([0x29f13438a76c4ba7, 0x83d94979f46f18d0], [0x306e444d2bf51247, 0x419bd56e629f824e, 0xe2edc2c3068821f9], [ 0x7ef4a9fc65baad6], [0x2b074ea72dfcb598, 0x426f28c76794361d, 0x9dd16cb1a1b14259, 0x1f532c2b20c1f250])
+ self.mul([0x81427b0367b796da, 0xeb43deb1bfb0873c], [0xd0d6edda4f615728, 0x772823415be6603f, 0xa7518c336fee74de], [0x6972899e5fb1701d], [0xf2ce722af6a51ec7, 0x162d18e054ab4472, 0x1913b497e6c1542f, 0x893d2ab4f6247608])
+ self.mul([0xb4336c8d051652d8, 0x26403ab02fc53fe9], [0xc9d823fcb702f43f, 0x574855d0ff19ec63, 0xa7fb638d30e57973], [0x8e1484f33b43cb51], [0xed0151fb9eaf29ec, 0xd23e650a3e41848b, 0x297853c47fa41f58, 0x52f5a97c8c3dd6ab])
+ self.mul([0x6ec3a3ab89ebe897, 0xb48b11d53fed9cce], [0xa8e38e8afbbca746, 0x77f9a9376f229efa, 0x334bf606df3347b9], [0x4912d88f5ac8ef51], [0x809017b373b10c19, 0xff3c39d4bcdc3cb7, 0x7953e2ad6344f165, 0x29376097c83d72de])
+ self.mul([0x9c0d40bfcbb2e6c0, 0xd6a1c28ac141c1bc], [0x107b239d6b168cae, 0x66857769b5101116, 0xc1f6a70c3412b704], [ 0xa0be41fde2444cf], [0x97ddee8b43549525, 0x3c34d40e2ca4acc2, 0xa337f22c9ab1744e, 0xb4b9e51ad5bc6af0])
+ self.mul([0xc0947b2d6889f7e1, 0x84501ca485e1db03], [0x6fc49a72970d2b7d, 0x198494bdd9793bd6, 0x6ad70c5609d1c761], [0x5414474684f18421], [0x33f0c834cf78ace7, 0x93373447a80e388, 0x65a351ec924a2122, 0x514db38234465123])
+ self.mul([0x7098d366aab2356c, 0x624a2d3f78918951], [ 0xd2186c5c8129239, 0x4ea8cd697f9f3ba9, 0x20aa90ed4d51f5dc], [ 0x5c681b673290941], [0x76d3f03d631ca280, 0x5faa1852ca69d1d8, 0x723646030d823726, 0xa9293d45b51d869c])
+ self.mul([0xcc0fe15d06da7551, 0xf6bca4fdfae34a76], [0xebd4cfd36f0f49cf, 0xe4ecbb9e2becc4bb, 0x7cd1a04a63153a51], [0xbbfc36b0672c414e], [0x794d327f38b6959e, 0x99e745a30b9049f9, 0xaa1ef896ae2ff829, 0x16807fc09e774b56])
+ self.mul([0xc11dc3ee453d7f53, 0xa28caa23baab72d5], [0xfd7f01a82973d159, 0x62d6327ff70d471a, 0x8bc8cb5b8423f67f], [0xbf3a39a6a633c5a7], [0x67fb1cd02733d402, 0x159d8562ea648737, 0x92adf245795fc34d, 0x2ad26277e285a5ab])
+ self.mul([0x69286875a78d7346, 0xc56364e3b79d776], [0xc93dd09f96373cd7, 0x15da816b89641998, 0x901e0b6aca1a76b5], [0x52aa1e57a743d34d], [0xa9bd64dde4ff7fe5, 0x99889911098ee05c, 0x6693c675a1fe04e, 0x3165ebf93471ba6e])
+ self.mul([0x42a5c4d1625fc728, 0xec338738d4f02060], [0x8b7f8685b0337b1a, 0xf5092568772414b7, 0x22b310454153e97a], [0x2451351fe74e0750], [0x17191c57e8a32e01, 0xdf8319bba65e2a5b, 0x563983cd27313ef9, 0x85fde6d6e706cdc0])
+ self.mul([0xc5d842d6b59ca044, 0xa3930cd9c2380283], [0x19d95ddf2f4ce976, 0x3ec85bf18fd444aa, 0x8de4c4514ce37f0a], [0x13fa1b63abf49b53], [0x21efad804b0437db, 0x8076bc4bcc3a054e, 0x593f08401dad16e5, 0x1b2f77b77d98161e])
+ self.mul([ 0xa77e64c8c622a58, 0x68650e06409e6576], [0x6132847fa66f21fc, 0x9c2bc34b9e195307, 0x82c4e664fae6586a], [ 0x3f97f19072da04a], [0x4ead37ac499ae816, 0xfcbabaeeac424b5b, 0xf114f7199801707f, 0xd2c25849987a92dc])
+ self.mul([0x76088a16fc3c266a, 0xf5df91b2a1f83fd8], [0x93f30d5972f03758, 0xf199a0662c378536, 0x6cecec903bff3cb], [0x4436f78df3a1b2f9], [0x2b72163298ad189b, 0xf3abbf654bc76137, 0x13e7fb54631b0920, 0x5adbc9f43e9ca848])
+ self.mul([0x39fdd6c953b9cc29, 0x180ba6075faf4557], [0x6c737ca0233e15ed, 0xc250b0fe643472e1, 0x2adf4245ba143a35], [0x18913fdfa66e85c9], [0x9975e6f502f5950f, 0xd5051d5338c4045, 0x9609d042c6105cab, 0x9906fbba25cb1103])
+ self.mul([0x2b5a34a608f6e04e, 0x61c956a5d355d1e1], [0x4b6156cc69484380, 0x67b08f3b801f92bd, 0xb4d08e5c4ae25354], [ 0xcc3e94d82efb0f9], [0x4b3edd3cc43e8b70, 0x5511bcdeb00a5976, 0x5aee963b5d3dfb72, 0x12b5cd387dd6d0d4])
+ self.mul([0x6bb1a4b53b844e3d, 0xea3b05874351e1a6], [0x851602f6d833411a, 0xa9e0125063aee74d, 0x3d6543d556cc003c], [0x37fc8d158a6ffd63], [0x2a683b09d386bbf0, 0x796e06df07aabe7, 0xbe4394d58b108c90, 0xc3e9a3df5b78e2e8])
+ self.mul([0xb28dbd83b3987128, 0xc963b809a4996402], [0x24826af277630a8b, 0xc4beefb40f351623, 0xfbfae541557ce63f], [0x1976e5388fdd4973], [0x9fff34061289f04b, 0x1d7f64bbacbadb57, 0xbc9577fe88887c31, 0x2091cb446c91687e])
+ self.mul([0x1b616087b18557e4, 0x8fec57d5a9e6d6e], [0x9a7cd8d1bb086930, 0x2241f523cc52ec36, 0xa71e1baae8e6f7b3], [0x1085ee6cfa7787d4], [0x6950785a392fe662, 0xe79ad86e358c77e0, 0x1ee825a5096a43f3, 0x9b124ba3392fa5ea])
+ self.mul([ 0xec867fa8692523e, 0x70f7690ae9c029de], [0xad3ed104f1f7bc4f, 0xab9ad13d94bd126, 0x3cd4785607ebdafe], [ 0xa010edf619b98ea], [0x951f05ba305d6715, 0x429d061abf0cbff3, 0x14bc79e2d28ab646, 0xcc5c7901111a9644])
+ }
+
+ func test_mul_2_by_4() {
+ self.mul([0x725429713f9951f6, 0x9690c390d89e64ea], [0xbf00c297cf85614f, 0xef8ea389245824bf, 0x3b3feaed6b2decff, 0x1c4e226b1cbed7f9], [0x554d21d3122d46d7, 0x5ece35d7d3493435], [0x2c9f733f144d38b1, 0xa9fdc032e7b15872, 0x5b32098359b0f0d2, 0xef263836367cad9a])
+ self.mul([0x9bb05f242e501745, 0x27b16616f8f28297], [0x426ec0f6a9215703, 0xdf7e0c06c38d254c, 0x99ec1e9124954eac, 0xc889b0fe460069e7], [0x2866d3aa7f2ed160, 0xd7eb909e1eb97f39], [0xcc72c77c7196485f, 0xd869336be1b267fd, 0xa3db4eedde4363cc, 0x71393c5d6463c541])
+ self.mul([0x7eb747e0ac7afc3d, 0xd543ddbac3020df8], [0xd9225046537fcade, 0x4301f0f98858ecd6, 0x9fcc1712204310e5, 0xd0e660367420558d], [0x6b7a580113f3b320, 0xa5a5210c809ec1b9], [0x9323f8c73edb41e5, 0x883eecb5c53180bc, 0x404330cdff2c8b62, 0x4b31638335c50998])
+ self.mul([0x64135145ef425001, 0xd2cee8592cced6e4], [0x16220922889d33fc, 0xecf9b79cfc4f8a9d, 0xf8e16220a59a1263, 0x2e9233acdb4d4431], [ 0x8a6f71efbad71ba, 0x9bd1cb4542c28588], [0xc087b86919da77bc, 0x2499ff28b8a882b0, 0x52cbe25e854cefef, 0x51496234333fb1a4])
+ self.mul([0xf6f88237ea7ebde7, 0x444831fba8a179b9], [0x15bd9843095395ca, 0x48c541facb0f10cf, 0x43b22ef949137d25, 0xe742e5a958091f6e], [0x14f94b0af2df2cab, 0xc5b9525ac2be6db3], [0xd177f4a4a36e75d7, 0x889eff70cc7e63b5, 0x8312d3f8e9fa0a8b, 0x6e113b33e2a0b47e])
+ self.mul([0x8070ccd3269318d7, 0xcbec84c9fd340f86], [0xda2d74c7590e5c8b, 0x72e72e83ae70eb5a, 0xa60f695af65f1a55, 0xdf81827ee755f841], [0x6d76dcd6f1245c6f, 0xe1a6ea546a666619], [0x4d22d0de3447a8fa, 0x8775340890d13cee, 0xe22eb5fd7ddb1ff0, 0xde4420d2cabfc106])
+ self.mul([0x61ce4af4cf67718b, 0xd988b6b1aa34abb7], [0x471d2c366d2c6218, 0x21bd2c3b3f34720f, 0x49006cf82f4f806d, 0x924fc6c84d9786fa], [0x1b2b5c0ca35cdd58, 0x7cd1d96172715afe], [0x8ce2e8595264a4b2, 0xa114cfbefe4ddacb, 0x726e21808322d693, 0x438f56471d427ab6])
+ self.mul([0x641846e34757e3fd, 0x9ed38a918eda9366], [0x96aa04e3997524bc, 0x9664ad3f21748ea8, 0x965c2f464562a10, 0x626d645100f20638], [0x3ae8b3919d5d986d, 0x6174a2aed174ce1], [0xa588d339e9edacf0, 0xc85777854977714f, 0x1f67c9a2f2271ae6, 0x14493f15b5b0a250])
+ self.mul([0x9fc40ce38b49b4ec, 0x2104669f2470dac6], [0x7764d3bdbe774813, 0x1ceba9f1a588b85, 0xffff7ffbe67d6f2d, 0xd7b7a0415226dea0], [0x4a830eb7cfdcae5d, 0xe49352d87bc6f3a6], [0x1c8aa736845a28bf, 0x53d3a9de5ca1b91d, 0x668a6f62a995d022, 0x1ff7002a89a46fc0])
+ self.mul([0xe676c180430da3e2, 0xb74fddbd0be793c8], [0x857ab7135beddb70, 0x30e2e3beedfa72b9, 0x6eed76f2f24bc918, 0xb4ef71a58aa21a73], [0x782a2bf02bdb6f5e, 0xf085e9a2f6b1d542], [0x572a595075feb134, 0xf8935c2c6c9f2f50, 0x24683d98119be47e, 0x2ba7b53f3299b2d8])
+ self.mul([0xfb78cc349c1e35c4, 0xcf536dd7c93cae6a], [0x93bc1791c2bf7200, 0xd24f68c288c86ee0, 0x235bd7532f38ebb0, 0x531507aab7420e0b], [0x911f211f3559fcbf, 0x769c31f28e34ec52], [0x330daefa7cce009a, 0x11c88de3545d0334, 0xd996f996828c6706, 0x2d67ffdb4794a8e])
+ self.mul([0x600ba3f5ca1e00f2, 0x7459ae6c3f26d91c], [ 0x1d6b25e7a719054, 0x55d9436cb12a6d94, 0x3603236362b39e74, 0x62173948c6bc9ddd], [ 0xb0984a8f78554b, 0x82e07d36e288cb69], [0xd3f9ef5628dfc302, 0xd19d60a75a8a1dc, 0xa4969cf605a9ae38, 0xe482ae80703f992c])
+ self.mul([0x3328aa2b8c792a9e, 0x452daf938e3f5037], [0x4701d8b256a125f6, 0xf0ae2c63e46ff86e, 0x6f4ac5cf7fd68823, 0x1efa1da7d9aa8006], [ 0xe30a5a8b14c156c, 0xd85be9012b39560b], [0x7df331780cfaf33c, 0xc0cdac8133441aa6, 0x74d34b0dd0989195, 0xe185947fe11d614a])
+ self.mul([0xfab3222e7e3305f8, 0x5fc1cd9031636925], [0x31bfce0a6e4fb73e, 0xbe332859228493c5, 0xf579742b1bef2ed1, 0x360e0d556cadd822], [0x30b81ef7c35fb4ff, 0x117110cdbc88981], [0x7985b8816db24582, 0xf3cc47cfac960a4e, 0xef220aa72bbe90ad, 0xfcd511a519ec2eea])
+ self.mul([ 0x8f73c47a69991f1, 0xcbd183b7a2c3be1d], [0xf71cb7d03da84556, 0x1891d72768748d26, 0x10dae2866ac81518, 0xd73dc9f9984e3d62], [ 0x8a78ca3c0b564f5, 0xaf15a3e996d67965], [0xb2f6326b652e7b08, 0x9c61dfccf133b13a, 0xa9ce27b89c83a99b, 0xc5c0adcf1811b01a])
+ self.mul([0xd5f88d5160164247, 0xd25751b2a26a23a], [0x4118098945e91feb, 0x62612bbdf31990d3, 0x34b8f0bf2df57b61, 0x5418bfb100376d52], [0x366833276270fdd4, 0xd9b51c06d0201ec9], [0xbc8f6f6ef80b55fc, 0x5ac5f99256cacb8a, 0x2c8be1f0685a8176, 0x86e1920ccde8a894])
+ self.mul([0x15af946a485b5c8b, 0x5132c3400550b32c], [0xfd8d1c3c108edda8, 0x5401b6df243057d, 0xa4a5c08123e54870, 0x8613f7bc17dea4e8], [0x157a79c612d5a10c, 0x61c8ac3ecce2973d], [0x5753f484aead9852, 0xc5c6ce6cacc07c11, 0x8c9d0632cb72a601, 0x457bd9d0d8128fe0])
+ self.mul([0x3e6e02faac4efe43, 0xb33244f72e08cd3e], [0xfc98d5173bfbbddd, 0xce19ebc386a3de66, 0x813e9c231cb4009f, 0xb6365cdd4a8c7115], [0x3d999037b971a5ee, 0xd22ab036d610eff8], [0x53c452412af605ea, 0x36c7dc100bc9cf65, 0x1ad3556e58a51449, 0x547bf242d3393416])
+ self.mul([0x5685edb6cd215eda, 0xf8eb7d35aa1d70f4], [0xaea22e2ddfc7927b, 0x65555bc5b86a61bd, 0x292100ff85bb69e0, 0xac4b9de5ad577cc3], [0x3b05d7ee3efe3d45, 0x59f4800552ccd23], [0x979f06e6ea12c684, 0xaaf802ce073a8966, 0xcb17cea9a7c77f5b, 0xbf50c1e11e0f39dc])
+ self.mul([0xf74ee626ea591840, 0xdc706b8dcd14ae93], [0xdf237da37b3f8ad1, 0x28ae5a6c8912835b, 0x548c8b2bf025550f, 0xa818609f6a26886], [0xd79003a4d2237c9d, 0x756a4b9d0f7fe436], [0x2efc8f122dd44d64, 0x822f5a8ae2b83b08, 0x47730585cb7fc32f, 0x2085a38c7ac518f2])
+ self.mul([0x2cd7bb2e9e17e754, 0x9d723bad6b2f00bb], [0x6384ad9211af7da5, 0x390cf0685bdf39d4, 0xe59ed60770fa0554, 0xd4cfe47ec1000bec], [0x116eab06eacd151e, 0xa647d67ad49b91b0], [0x6c1dd77f1e297b4b, 0xc31a60dfa9174137, 0xf8e941294617528b, 0xdcabcf10cf5cb564])
+ self.mul([0x3015ccafe7444f79, 0x7b3edc803a7a676], [0x2452663439ac3c79, 0xffb66bef93592a0b, 0x181d1c7e697fff50, 0x515411c09f0f5849], [ 0x6d28af6cbae8d83, 0x6260ae520ed13fa8], [0xe7db27f1e3c15b5f, 0xe03402624786aea1, 0x7f13dd3f67efe432, 0x98b9500b6f107a6])
+ self.mul([0x899531984c1385fe, 0x4c622418ea798581], [0xd31f6baa423d39a1, 0x9e7778ea166603d2, 0xd7e95700fff2d1a4, 0x614b0202b52a9027], [0x7176dace648c430b, 0xa9a8f54b1f571d55], [0xbd7ef161bb339faa, 0x2fdef2c5ae40ff85, 0x33471c31da0d6f2f, 0x26e8f4062fc5e6a7])
+ self.mul([0x166cbbafe966308d, 0xc1d86314e06692b6], [0xa458333b973b8cba, 0x71c4ebc83febe587, 0x9e6605e95afbb8af, 0xb202c7d5f4bcc7de], [ 0xe65621a17b0595d, 0x76f491892fe54a8b], [0x2089771751a3fd1f, 0xaeb6f27f0f73a49a, 0x98b9c4df577cbdfe, 0x1ab141218aa6b3d4])
+ self.mul([0x4584d24182a060c2, 0x62ba99aba2e1c7a9], [0x4e0d3abac8f54bbc, 0x2c97b2308b06d147, 0x6597cbaa492847f1, 0xfd4474682e588f2f], [0x15320fc173d67bc2, 0xcc65243a4cf86eaa], [0x44f1eee6adb80b77, 0xa0f77344e6827fa8, 0xd884a4d835633f84, 0x8e7356a406130f07])
+ self.mul([0xaecce13c33499bf9, 0xad8e078c03544569], [0x1ac7b3a0dc8d6c9d, 0x5c0e6161cb48ba6d, 0x345fe196e18fad50, 0x62206b34f159d4c1], [0x12492aca4b23d81d, 0xcc89e25b3555ef4a], [0x8d5981e7719e8ab1, 0x5f03db588475a36f, 0x47f4bfca1a85c730, 0xaa641d4846844829])
+ self.mul([0x9f9a748a8eccbfb1, 0x8e4f3dff96bb2e92], [0xb3253263c9956d3f, 0xef4414ac4d866b03, 0xd57c76914a2a2198, 0x881a7f256e28b391], [0x6fb0303a1b0b5d9d, 0x505afa8f4981da34], [0x7040783bed332342, 0xb57af9c1790dceb8, 0x9b0ecafcb83cfd40, 0x75ebf885446576b2])
+ self.mul([0x4861ba4aa4df46bc, 0x225e188388bec738], [0xf641fbb832d93a75, 0x142e9fea38895f9f, 0x9d8cd062e385a52a, 0xfd8401a5bab29e93], [0x45a090ffeda801b7, 0xe5adae3d7309062c], [0x6f54883959828a99, 0x84b07cefde7e4050, 0x7c4ab7510e27233b, 0x5e96926a7970f528])
+ self.mul([0x378b4da3f1ebfa5d, 0x2d54f618c0d7b643], [0x41a8ffb95499bda3, 0xc59124425a6d88f0, 0xbb80a3d38a9c29f8, 0x29340e6b8800b629], [ 0xe3f099d8c6027c2, 0x6ad23d6cc1df6d11], [0xa358adccb9bdbe9b, 0xb32b55f20f7d7382, 0x5a3f5231abdb4b1, 0xf6c073e4d61fd2bb])
+ self.mul([0x1fed1e7a16ed9232, 0x514d514a6be6d3e5], [0x6d1ef7cc2bbfd089, 0xfb6963c32ba0500f, 0xea5e642379976a37, 0x377e67550340c848], [ 0xd9bd2aacce2ac8a, 0x28d6a590ab3adcf5], [0xc9f3b5bf3c2f37c2, 0x7cfafbcd183ef166, 0xe4cf55934628a368, 0xa7bb2d7456b68068])
+ self.mul([0x870932dfe126d79c, 0x1a4e073fd1402820], [0xaaa67696abca3f8b, 0x725f5df0c6eeb8e0, 0x57ed2525a28249e, 0x66851e87dc860008], [0x5a03ea4d60249f15, 0xceb9e24297ad3a43], [0x3b4b167710dc74ea, 0x78f4cce7e040b152, 0x8c395fa3f14b6731, 0xebd3ccef0ac14100])
+ self.mul([0xf624a4baa16f84c8, 0xfc43ef6a75e3a4da], [0xc52a72795ea35ce1, 0x8dbe8019483a1e2d, 0xe5e39c31805e9f4f, 0xf307945d8e1c690c], [0xbd9302d7a884ccb3, 0xddbddd9eaf106afd], [0x9275d3dc5cc85713, 0x1067999365d272d1, 0x49811c99223108ed, 0xcc61f8e0d9212438])
+ self.mul([0x8ac23e31852b9f64, 0x48674b731dcf8c8e], [0x40cddbf57b17ef1e, 0x629c71e4ece6c8ee, 0xaacef9e064ba6f9e, 0xebe2a9961981b7a5], [0x2320245168c4bb09, 0xab37bc085ec42423], [0x2ad722c1446c1e7e, 0xcbfdbdf911613e25, 0xadb9809801325ad5, 0xaf304f0545cd1986])
+ self.mul([0xf9c11b592333dc4e, 0xa16f5cb99155b291], [0x895c43b5a665f636, 0x93567cb6dea19ba7, 0x273b7e8bf274ec2f, 0x12cbd3585fddfac], [0x86025b1749e6c2e6, 0x1cba28ae65b47fbd], [0xbb9142ed762d9dbb, 0xfb70cf4a1b6d98b1, 0x2cb6e1a45f5be173, 0x21fd1ec31a6d486c])
+ self.mul([0x596d2527b34578b7, 0xf61aa9b9c65d8322], [0x86e15d48849b5cdb, 0xf16880312c0bee92, 0x4ddf3deffabe7c77, 0x558495e160caaeb9], [0x2f1ddaf66b3f5938, 0x126cb636cf1cc621], [0xc0f93bd048c9c1ac, 0xae6317ce3586f37a, 0xf8f0374c0fcb8532, 0x3ca58dec2188df92])
+ self.mul([0x68670d3d91a1cb1b, 0xe2b0940e537ab911], [0x1672f01934cbcd63, 0x223a2936314813b1, 0x4ab0bda4844bcd53, 0x8b21d27394bc99a3], [ 0x927baf213f0d136, 0xb3ee467f3a385e1d], [0x452f80968ac5da1d, 0x55a5300e1dc1b852, 0xbce63ee092dad23d, 0x23d52ac43c3afed3])
+ self.mul([0x9b321aff601f9374, 0x8064ccde45b788d], [0x3f1a0c8cf1a2c4e6, 0xaa3657da82205055, 0xccf1d3a6e51f66f3, 0x44de37898979a4f8], [0x26411f5761bf1d26, 0x45e8fdf501d3bc54], [ 0xc9504d0a70a7877, 0x2e028627b5c1e186, 0xb4825b4203329d0e, 0x25f3fef4417c1c98])
+ self.mul([0x804015c4f2ed4fc0, 0x3b6f41cf9d6a373], [0x83756922b7714ecd, 0x371ee615f1dd6572, 0x3ec7cd7c90b49f62, 0xc397c2ccafcdd82c], [0x41db9d1968a9b564, 0x90a3980a9838b34], [0x6815d4ae162430ca, 0x9e10fe5bd2cdb0c4, 0xb29964e2561a1a11, 0xc2498088ae41fc4])
+ self.mul([0x5421aee7c0551390, 0x919c25ee75c4f16e], [0x83104e474b31b5c5, 0x81b3bb1ef50f2445, 0x67871be38495a29, 0x96c9745d523258c2], [0x2b129855373fe1a1, 0x9004b52777df8d5a], [0x4c59b0cb39be169c, 0x7c01ea6b30642822, 0x8085c6274a0202f5, 0xd8fa59f355b8c55c])
+ self.mul([0xc7d9683b2501bf50, 0x328da34d1f343ce], [0x89016478394d0201, 0x651a165c11e6da75, 0x423e1546560804a5, 0x55c170101e9057ad], [0x6af46f0fd66490bb, 0xe72c55f98de3fc19], [0x5db0c7e475e75021, 0x1e66c6530a976216, 0x8204a79d2669c389, 0x44060b3d54fd436])
+ self.mul([0xb1031a975e04e7ab, 0x1572cf56963dc5e6], [0x82c9f7d8690bd6d8, 0x32dc41ebf752a586, 0x946864196bc93589, 0x917202d0c6dc0373], [0x5a6f3a5060804085, 0x25f69b768d340da8], [0xb74d44f6edac17a2, 0xcdcab227af90d695, 0x5f8e4b5a1bb4dc58, 0x15c6a2ae2cb99852])
+ self.mul([ 0x31163d37678160, 0xbf617e64f89c035e], [0x7b5dbb7275d69da8, 0xd81fffbb63a7b37d, 0x27897b5b103c6e39, 0xd51e06ddf927c7d7], [ 0x17a7a86f0d12cf, 0x9034d9bb74ba7757], [0xb72fe23c229bb8cf, 0x6b083db0f5c6f8f3, 0xe49ca2e2e6968d1, 0xdd1a5f3f02f6e5f2])
+ self.mul([0x650270efe717ab90, 0x27919abc3112edc8], [0xd4ca81202e7e2151, 0xcd728cc127be9c93, 0x782ff189a13465ce, 0x8b0d0a205c2ea7f6], [0x53f5ec66b63b28d4, 0xd9ebb139b924dc3f], [0x3ae8e4f4355486c2, 0xa710570c31ff2adb, 0x84a45d61d9e70b8d, 0xfc1e9cb51b3df630])
+ self.mul([0xa745a7ca174fe88f, 0x8ad5e0837636cbe2], [0x8d52b4e1d440238f, 0xf3b585501b58e4d0, 0xb19ef90323e30145, 0x631412012fe1a125], [0x5c5767ea9674a34c, 0x1d1dae35ad2b5aba], [0xdeeba2bff4f7f02e, 0x36809c524269ad6f, 0x7bf9da919078f1f, 0xad8fc5d23bc699aa])
+ self.mul([0xcfb94442d04c1490, 0x50175e7ec7b02c96], [0x4e4b2432f4974d31, 0x53006e2f37be01ab, 0x15a228dc2de4605, 0x5781efd1784da913], [0x3f876b72c14a48df, 0x11b7d98a4127358f], [0xb1dabe58ebfd1c19, 0x663d56036cf4f37f, 0xae0cf8bad4edbab2, 0x2ae4ca95d8a05522])
+ self.mul([0xee2f06f86b69f9d8, 0x1082c49a1773acdd], [ 0xac2c676b482d3e3, 0xc5f15d4812fafbae, 0x9dd0ea7587321893, 0x60c32e3553eca38c], [ 0xa030e8fcd77ad94, 0x24c1a4dd0430bfea], [0x8ab0fe21901bb617, 0xb7d5542e8bed6d4, 0x9f05766aaaef6feb, 0xaeb340a37d0f3fdc])
+ self.mul([0xf2d3ed511a6391bb, 0xba4109334013ea05], [0x2ee684ed30f4e35c, 0x804d0922497b3109, 0x2ab1ba3e63c82aee, 0x5676f1de85b7973f], [0x2c7cbd220c9c257c, 0x7efecbc138260548], [0xd5ca92ca2c5aaf9c, 0x937120198b92d09, 0xd88fac0bbb725c8a, 0x433d4a8f66828a3b])
+ self.mul([0x9051123e387eb2d1, 0xc18fe6a52ff7db8e], [0x918747d0b1a561f1, 0xc7faaa559c19625a, 0xf6fccb280d04621b, 0xcfe28582b539bf88], [0x520a2e91fee2eb66, 0xf1eb234a1feeb6ff], [0x20ffb3517f092e1d, 0xaca7a3f7f97a3e3a, 0x4d8118747c358f16, 0x1d83f712b1199570])
+ self.mul([0xadb4abb52eff859e, 0xf5d03d3af040155], [0x40638377dd60a147, 0xf0de65637c1c1846, 0x6540ef2c3e0b3770, 0xc3c5f8a1a9d9d9d9], [0x2bb0b1007be11fe9, 0x82b40affa411363], [0x63e023316e5f0779, 0xf6aefec0d87ff520, 0xaff5b5521215b855, 0x9347db84fd932e0d])
+ self.mul([0xde8b2ff2f2d03eaa, 0xcb0211a87937bd02], [0xd04108abf66b5952, 0x54d42f1d695f6c84, 0xfcb3c92efbf5441e, 0xc3896d7759b0863b], [0xb5099fd668a88a8f, 0xd73cf7c01230e6ee], [0xc9ea0e97933535e9, 0x3aea583b342e8b48, 0xd5f8a1644f6b1425, 0x5524ae3cc0279b76])
+ self.mul([0x55ebd8a930f3e567, 0xe124004f60470e04], [0xfb0e337b0843b387, 0xa74eaac40979b8c4, 0x89bf61d9e48259b1, 0xc5963ae71354f53d], [0x5443019b0380b50e, 0xef23c5ff9f73f3b1], [0x7ff1f729f3d86985, 0xfd7d5a5a879824f8, 0xc873409a96a50fad, 0x5bb37504d6a82af4])
+ self.mul([0x4b10c7d13922af29, 0x8f14d352ca174176], [0x3b7decf38da02cd2, 0xd9d104932dc176f9, 0x35acc12d3fef95ee, 0xe2173f17f3d28f24], [0x1171cab9abfda643, 0x25e1713e605668e8], [0xdd4d678a46ee3069, 0xd899330e39d0d23d, 0xcf367a962b3c9232, 0x9f83bc581da21e98])
+ self.mul([0xf7dc3a8198f9c950, 0x6363fd9a71a76b6c], [0x38306b6d9d036ad9, 0xaa60af69f16f76ca, 0x48521bdaf1e64716, 0x893c0789c22ad928], [0x36670e1a7f01c5e7, 0xf782eada53a4f4d0], [0x94e4d12f253051f0, 0x1b787b49638f1126, 0xda9356a7fadc092a, 0x4ee7802423ef54e0])
+ self.mul([0x9a4b1ede06d47f5c, 0x55a37403b1d80dbe], [0x89ae8ec3e4e8bc53, 0x71f422f3b0c3f233, 0xa602547284f68dd, 0x73de73920a5a8f5b], [0x52fb689f88df3493, 0x3a18b750ed7f0bc7], [0x57e9eb8aecf7d9c5, 0x237007a002ceda67, 0x7289115d45a57f35, 0x6d4f74822846048a])
+ self.mul([0x94af6dd7ee3ec69e, 0x87802948f1046c5c], [0x90889ebefa1efb5f, 0xf8d8eb6d8cb63ac4, 0x66ee0b93519f534b, 0x4463b42c315a86e0], [0x53f2072f01fdfc33, 0xbde8f6ce351af627], [0x28db1124f190e6bb, 0xb64bec7b298372b3, 0xd579f927b16a470c, 0xe3216e8eef880])
+ self.mul([0xa476331658cc685b, 0xdbfba59fb7cff7a4], [0x950ea05520d6fab9, 0x65afec56b9d21a6, 0x3c3888301774ec3, 0xb111e33d9f0a87cf], [0x5fc231335d2da41a, 0x34534f5b6f6c39c3], [0xb0a4a0bbd4914b79, 0x4762a7abbc80e30b, 0xfdfe5d19d82766fb, 0x4b41ed16d528b99c])
+ self.mul([0x8317c88482c3674e, 0xb7e78f3aba3d8f5b], [0x8ef18fcf941dea9d, 0x9604bcf6287625fc, 0xc3e0da5591e43cef, 0xd39d2e74d0ab05de], [0x4932e441da5db735, 0x90205118c6dbdc18], [0xee9c30d4190ce322, 0xa020a6f496fc5a06, 0x27f17e6be1c5aed8, 0xc39d156566f817ea])
+ self.mul([0x38469c26fea3ec88, 0x12cf987cb295d1fd], [0x437c23e3cb5e60b2, 0xf2fd4feca3c46ba0, 0x726c0cb8e1ac7417, 0x6b48ad5ac4b8bfa1], [ 0xed5c4f59232c6b4, 0x76d5e703d528ba99], [0x74f14121a84dcd24, 0xa5fe5189c4748d46, 0x4d40a748ed1cf8ba, 0x9f6acc10b9bcd31d])
+ self.mul([0x1e701beaa068ce19, 0xd863391c11bdb823], [0x4a9d166ffc6ea937, 0x330780b60bd7873a, 0xd84d20a96f31f2ab, 0x626fdd468b29741d], [ 0x8df157de4487423, 0xf4db2e4f5866c1e5], [0x1340322391d3e2bf, 0x39941a604c94fe92, 0x7dc3d27da6c7d6ff, 0xbb429b277888b7f7])
+ self.mul([0x97fe2b91701abcdb, 0x76cfb83244a30658], [0x4bbf9486f7f1af3e, 0x91c478f926624e8d, 0x86c82b1fff5be1e3, 0xe62561cda3d0a536], [0x2cf9359530cb1693, 0x93b126da33ed18fa], [0x92e357c7fe5684c6, 0x20296fd577cd6fef, 0x6f8d1200c0cdfc7a, 0x52c03ecebcfa0e90])
+ self.mul([0x48a396cbbe79f84a, 0x653b63866f4b1f24], [0x51c767813e5863f4, 0x5036d5a9a7190edb, 0x8143fa940d6a2b2c, 0x6cd73f25441f263e], [0x1734573f2d7151cb, 0x5e62bf0b9e6c5135], [0xd8153b2517571a9f, 0xa0e7c91e65712b36, 0x1db13d2b14463ce8, 0x1c0d9a6702ce2b8])
+ self.mul([0x3bacc7569b89e918, 0xd750cef5d555aabc], [0x44199c94b743bdd5, 0x24d062e2469bf279, 0x9e3b870938700d0a, 0x345c0a0427b1de5a], [ 0xfdfdd526cda2433, 0xa5c05983414df109], [0xe6321dd90897ba7a, 0x88213dafa4abcea6, 0x5a5decf18fe4cad6, 0x8aec819afa290e18])
+ self.mul([0xaefb9a8546befbf2, 0xdeda491e976a7154], [0x29a25009a06f3a9a, 0x3ddc49bb242e49b1, 0xce4fea2d2dcca608, 0xb7f2f9b402089047], [0x1c753dac5576b7ba, 0x3b7b73f14baad7d7], [0x6933a6bb9780a16c, 0xfe6608d7b8b351a5, 0xd91ace7ca5879026, 0x4a496fee10e4ae4c])
+ self.mul([0x8e67e88d8525a932, 0xdcc2639335ce2015], [0x9cac7efcac077ab6, 0x388401907bbc93e2, 0x4941a651173bd1de, 0xf5a84fd296b60dd8], [0x5727462a2ea8f499, 0x9a833f19a5767be0], [0xb6ea2334b422d605, 0xc15675e8b518643b, 0x5fd9c069e0f2d837, 0x15065181fa7a22b8])
+ self.mul([0x6c89af5f14ddd5a2, 0xed4382f5d15b82e6], [0xbb6f15dd6cc22233, 0xeab8919298dda457, 0x8130a2d02bb8f0bb, 0xed6bcb492bc9d209], [0x4f77ac12aad3addc, 0x2a150dfb0ebfaf7d], [0x5dcb78b00424729c, 0xb507d628eb0f053b, 0xe386750cc05c86e9, 0xbdffb5cdd62e4616])
+ self.mul([0x536a54a74488da96, 0xf0290c9094b5bb8d], [0x925d5ae64838e87e, 0x9e5b24f5a8746a44, 0x2c90bd68619a72ff, 0x8e67fdf29d7cbbc5], [0x2fb10f8690ad4194, 0x5c1e2b0e91f6513e], [0xeca71a07bcb65d06, 0xa2644efdedec93f4, 0x5077298c4e9ffa69, 0x66e0683981255281])
+ self.mul([0xda19a13f167f3381, 0x157e3b219cf9371], [0x22779e6d8d6d1486, 0x707d71423c711a39, 0xf93969369e4a159a, 0xf8b754b8c77dd98a], [0x1d5d504d7c3bfded, 0x1a31e6b6165ddf95], [0xc063290f30d80ea0, 0xb9c77c7458ce4655, 0xd90451e36717b144, 0x60c3b912b30d43ea])
+ self.mul([0x503110210876dd8c, 0x668ad44bb2e86646], [0x6d0b3abe514a2c8d, 0x9cc60cf79f9a8f60, 0x4ea403af4e4e10b5, 0x4dc3450fe6d5254], [0x222868607d8e301d, 0x6b3d4fbcf0f00e28], [0xbc6cf2abe6c29bc6, 0xa25eea651b85a721, 0xd80b57d4dce0db77, 0xb6d9d87224d1faf8])
+ self.mul([ 0xe9f7767b09bc576, 0x14a810ef28f69746], [0xb20cb6e2140230d0, 0x7a6aded3a389d39f, 0xf00f472443777767, 0x3b384bbdad7901b9], [ 0xa2b9af1fa784d0e, 0xdb5a343f81a6541e], [0x85cafcd75de863cf, 0x443f50f8a9cf9b71, 0xaba050e96bfb42d4, 0xeaed5d735ee09796])
+ self.mul([0x617c3e213a79dbf4, 0x6d5328ea3da7c229], [0xb086aae937033687, 0xe2d2846b0faaeba9, 0x1b88110504ec3c8a, 0x67a12fdd337d33ac], [0x4338b2d4ade1eaa6, 0x24076474f2ae1c39], [0x79f429dc6fa9e2b4, 0xa065f06e4b77864c, 0x5a4a185877fb4c05, 0x4aefd2a6d1699e8c])
+ self.mul([0x3595787d6b96da7f, 0x76010d837c478058], [0xb20ba744069348c9, 0x65718a53b6ddc538, 0xbf5263c4b252f4d8, 0x769a4ada425f7268], [0x25445e3620e0aacb, 0x5226eb392781f8ed], [0x2a46f1d11f5667ff, 0x585538471bb5253b, 0xaf358a99aa55fc84, 0x97345351a4db53c0])
+ self.mul([0xfe30fff183ac6d36, 0xf8564bd674cd6006], [0xd8750922fb493b9f, 0x6c802ea8748eaca3, 0x98ae841a3937d559, 0x6a55d610b49a0926], [0xd6ed8d6b357ee7c7, 0x3785eddd1d4e03d3], [0xa9921047da71718d, 0xe83ae963699075c0, 0x64ec5cef0c0e6b34, 0xa7b57b608a7876e4])
+ self.mul([0xe5507a597da887b2, 0x87dc8b742ec64f14], [0xb3a6b18550dcf1da, 0xef3e29a9f3bc681a, 0x4d5465d79e3f1035, 0x11b8930e4f038611], [0xa0ec96bff8bad293, 0x9d5525fb1b391ad1], [0xad6f06dc4852e06b, 0xb57a36da3aa57db1, 0xdbd6058124e8dcba, 0x8c10a10501cbb854])
+ self.mul([0xe5f848d2f280ae2b, 0xe14a78fc5bbfc00], [0xac0cf508c762fc4e, 0xd88e131af4efbaa7, 0xd0eecd4d8224769c, 0xf74b6146cac39ede], [0x9a8e74afa562e808, 0xe951015561f46fa1], [0xbc6d78ecda9e29b7, 0x2d2c33f830bf9f6f, 0x2f7509096bbdcb6d, 0x29c0e5c0728c8800])
+ self.mul([0xc31701946bd13b89, 0x11fc2cfad309d950], [0x6f461318c07214f1, 0xc4692db05004de63, 0x63db28cd82423699, 0x54f9fe7daf6b312c], [0x54cc60875b438f55, 0x68bacd144eb8324a], [0xc57e63e84082a9ed, 0x601a1b3a33f62176, 0x77c4cd7d0f4473b6, 0xf4a2a3cacb9a9c0])
+ self.mul([0x7edf019c6132bc71, 0x73326e2e7500afe], [0x1ab4cdd335e70503, 0xe9534357d758f939, 0x689955aba717d502, 0x87936dd7f03fb854], [ 0xd3c40f844a2b595, 0xd76e9a829a309362], [0xf39139c209bedb40, 0xdc9269c1aa9e4307, 0xef70ad739909861a, 0x62f310842ac2b58])
+ self.mul([0x7c1a63ec55e1d27f, 0xfecc8dda748c58ea], [0x45d068636733c23e, 0xf023b06988027da0, 0x8d9e0fc25cc00111, 0xaa95c635c3c89cb9], [0x21d824facc000220, 0xfcaede40aa264f20], [0x9518a047f8cefafa, 0x632c56e75bef3a63, 0xba21433848522c43, 0xd3bafbb5746ad91a])
+ self.mul([0xb6ba17af54ff0cc4, 0xc228ca9d0173e5a9], [ 0x8c8e706e0f9d498, 0x9c4f51389e0db09e, 0x88f7a0e999c2fc21, 0xf0797a2082c78fc3], [ 0x6453706cff34aef, 0xbfdeeb9543af2d28], [0x7a1a59109c039c9e, 0xac3b9070671107ad, 0xf00fa2b40a43bb1e, 0x4fd9443f30f056bb])
+ self.mul([0x1e3a4f8e36afaa64, 0x51c38e7811d81d00], [0x346b2f8a487a3b77, 0xdcb1ec0bee974c99, 0xf45fec1a854110f4, 0xc371c002438a46b6], [ 0x63080252c255deb, 0xd42b82ab9f74dcc6], [0x1a1a7300f6e3e392, 0x9ad4b684c017f1f0, 0xdaa591ca8cb9202f, 0xd9d1865469929e00])
+ self.mul([0x85c92ef6cfbb6e1b, 0x78ef473a7c64af36], [0x15facd420dcd1f01, 0x9c6104b86f11fc87, 0xb3ccf0fcec091c61, 0x77e8649da166eb1a], [ 0xb7c9296bbc166bd, 0xc5a1598df1bcdad1], [0x79ff425e12bf24aa, 0xf4127eba71e17e3c, 0x12fbcb6c2b86d8c, 0x99595a8dd4945d7c])
+ self.mul([0x934bd0d22d50f2f7, 0xa9faf0eb08eb5039], [0x7ffcf9fce81afc05, 0x3f8d277243d05b0f, 0xa91a5f4a7f949b84, 0x57b8b0f5333daa5f], [0x49a42b1015a9fd23, 0xb625afa1e1981cf9], [0xa1af1deeb05a2974, 0xcef7492195be1368, 0x995800cec4df886d, 0x4b3672bf0b2d9f27])
+ self.mul([0xb7432171d995c59c, 0xaf4c6f38695764c8], [0x9f30651772251167, 0xb686ddd24b4a9635, 0xc046f9b6ee353981, 0xdf71a748402ac084], [0x71f556ba406d2bf2, 0x3deb58428ff6b7b7], [0x4f34a0908870abce, 0x27a1f0867436bb10, 0xae685dc4da904c57, 0x680599e06575f720])
+ self.mul([0xff9ab0c665f592c4, 0x6866c425bcf075e3], [0x1f2c615584428419, 0xe9f512434925b283, 0xa6c451cb79ac71dd, 0xe614d9955cf4b82a], [0x1f200b2d67d84e6a, 0x6c1f7f4b638e9512], [0x1cc2a15ebc86d595, 0x6eccf3e8c5abed99, 0xcf6351f78e699b7c, 0x7553d5aac48a7f3e])
+ self.mul([0x47190de952292a3e, 0x53e2ddb773eb8401], [0xf5daadb1a04b0293, 0x25cc8ef75922ace9, 0x3f25b797a3ecc11e, 0xa7a651b5c31ff46c], [0x4447b5e3678f2513, 0x3610ebeceaf41855], [0x94461aaed7dbf138, 0xefe3b1376444eb17, 0x935e38e77e3f06ef, 0xef7a78a8204ba46c])
+ self.mul([0xd0070054934194e1, 0xe093e0a44a29a711], [0x6001d9c833691ed4, 0x74d8c4f5031dcd3, 0x9b132314d88ec385, 0xcd304fc58d34575a], [0x4e04211f5613eef9, 0x554f7a2ac84271f], [0x2d2e6b1862641fe6, 0xc9e4986a39c9a8d8, 0x3c7633141cddbe3c, 0x30589f8586df82fa])
+ self.mul([0x1fa7861e1658703a, 0xd66751f73216851e], [0xe9e953c86a18bb41, 0xcd4a70bd7bd80692, 0x76c9e98bce6e55d5, 0xbf9960cbe398ff74], [0x1cec52e68c33c9c8, 0x5e22089b54db4838], [0x3eaa2937eaacc7a3, 0xb7b9c72bbcbd7042, 0x402b3744b28487cb, 0x85ae319c49d3398])
+ self.mul([0x276478b1d2395470, 0xc2b72ac590b0d6e1], [0xc5c1860c2ee33170, 0x2d5e933040cbf572, 0x66122981773b2f10, 0xd26647b094f55a21], [0x1e6e18404bef5af5, 0xc33a7f030ed830f1], [0x3f49834f37e53338, 0xedf048c207dbc554, 0xc4066109a71e6bc2, 0x5a31cf7d8babcd01])
+ self.mul([0xaca96bd6122d5fe2, 0xe754401ae431d5cf], [0xa10418344077916d, 0x281c65a80d54d2d5, 0x6f4dfe0563f5715, 0xa142a7fb86fb0b1b], [0x6c994fca70c7caff, 0x5f8eeedbf7f781ca], [0xf7fb888dce24a86b, 0xe2cf9e62474bb158, 0x410d7f6cac063a8d, 0x80286860316671d5])
+ self.mul([0x601bf486a795d640, 0x37d795a1d5b6c4aa], [0xe2b1fd8d7061e1df, 0x75dfba773599924e, 0xbd17bc399d85eb36, 0xad401f9f24cff9c4], [0x551b8063ab4be1e6, 0x3cd393ebb4716c8e], [0x489b4c8dfe97e766, 0xdcc38ae69c41e2e6, 0x45dc22c82b31fab1, 0x1c5736cd52adec28])
+ self.mul([0xf2254284e3e776bf, 0xf66d7cef22903f8f], [0xdcd054dec9ca6f12, 0x966b0e8c4174870d, 0x9e3bae0b5573cc39, 0x6312ca6a1f8b358b], [0xd0dd13b734d61bd3, 0x99f83cffd1ab0e59], [0xcb419330124e0788, 0xaa15629172282044, 0x1148702cc16f05ad, 0x2a46bb3a75201da5])
+ self.mul([0x257d9ab9a38a1876, 0x7e4f5328f2d577fc], [0xb83900cf265f5c0b, 0x2cf591e67f0ae179, 0xf1f02b26217fbe80, 0x813d5df5e884c2b9], [0x1afaa04b370f637e, 0x9995050a491a559c], [0x627652c606b31420, 0xe3ea3206695070ed, 0xb1f89707d6f36858, 0xe7752b977f20ad1c])
+ self.mul([0x6596c9dc8883fa4e, 0x1515fcd6c4126f9f], [0x48a44dc3f601354b, 0xac0d09bf3d29eef, 0xecf620d3a1f7182c, 0x4d7f3fba7b9c50c7], [0x1cd39c3b75df0bb4, 0xb30c65b0cb6159a4], [0x15110ac098eeb37e, 0xd8bd3f5707e457b8, 0xd6c9d2fd4a48d981, 0xb7ed399b971a7499])
+ self.mul([0x933d805ca1fea7e6, 0xc9f2f724410747dc], [0x8b42a18d9c9a2e82, 0xcc45d4701bee2360, 0x63269a5a9d5d4abc, 0x6d3109511cf9659e], [0x5018b778848325af, 0xec3b3da7eb9dd42e], [0x399461f6ac90248e, 0x9b69bd7730490c78, 0x466b337a123610c7, 0x1ac65a94f6d425c8])
+ self.mul([0x1d7b26c6a1ea5e9e, 0xc8adf2a1c654fd1d], [0x6d4300833437a609, 0xe83c9a4b68b67e8f, 0x9bdefb0c6308cf97, 0x5970898d8d91084b], [ 0xc9526ccd4f56eb9, 0xe6b7256830063b51], [0xd50dbb97e64d7a13, 0x6034b3e2437c58ef, 0xe6c9031ca72b6e7a, 0x4c5d371d193c0f7f])
+ self.mul([0x50a68b0ab644b428, 0xeeeb1daaa5d03bf9], [0x16d8fcdda055bb47, 0x8b2a836f26eb4af0, 0x82c4e54f9ae3ec07, 0xa9f22d80a973ed60], [ 0x732ac21ffdb5e51, 0x8fcc483366535c02], [0xbee6739e353ed86a, 0x1c88148a169c2dab, 0x8b244cf2dcfd3974, 0xd2cbd12247770260])
+ self.mul([0xbf651e11e2a30389, 0x72bd718a5ce7dce2], [0x5cdb6b1c6d4cdf43, 0xbfc3b0f9ded42de5, 0x970442ce4be5caa6, 0x9f7152c6539f8a7], [0x456c6263ab17c126, 0x9ef5f6a20dab8e59], [0x836bc37e7ccf8cb4, 0x2e27505478e1b91b, 0x69eccfbb7314f638, 0x4b0fc5e0918e076e])
+ self.mul([0xf77dcf63c342ae90, 0x2030d8ad1e0efe6a], [ 0xc3783c23f1856b9, 0x5a3ff712d2d25c0e, 0x9ab8a86f6f26ec76, 0x2caa74ad737ffcc5], [ 0xbcf9121670cc7b3, 0xcd9369fa17b7751a], [0xa7f0fc7ab5313eb4, 0x6212d95c039034d7, 0x7336f8252c9c8351, 0x6311c22ab8901f92])
+ self.mul([ 0x97666440e626cd, 0x3ff77317c56c7aa6], [0x1814ac0766a7c30e, 0xb34f64c0c9f91e13, 0x130492afc8e7cfb4, 0x11b3de5152ee5dcb], [ 0xe3dd3231683f9, 0xc75734c6754fdaea], [0x1f4ac249d2cc0d25, 0xbb58328a3c614179, 0x33e9a614a7f9cd59, 0x8d1ef33b27e78fa2])
+ self.mul([0xc9ce341cf6c6082a, 0x5939bf057f2562f7], [0x6f1e3589ca5675fd, 0x26db624f2376e341, 0x8db076ec15f14e34, 0xe01426273a0b6223], [0x579838f6fa0988bd, 0x8b0114bd393f05a9], [0x4b0ba8238028f7e4, 0x312eaa289e2f911b, 0x897d090309582b1a, 0x88bee514e89c15c5])
+ self.mul([0x577505ed86bdb78a, 0x4fbc9d02139ff801], [0x283a04aef692f735, 0x20be3ac6c5fa2d96, 0x8c7f098b66c8721b, 0xca492b5972d6d067], [ 0xdbe1b0a0ebc9219, 0x6daf9df113acff20], [0x7e9a402c8ca8ea06, 0xcfed7c190d870130, 0xeeed58cfa5b33a73, 0xb47ce34aa1b39867])
+ }
+
+ func test_mul_3_by_1() {
+ self.mul([0x45770110eb798fe1, 0x8b613dcc0568285a, 0x28aadf828ed99075], [0x4d35422d14f4d123], [ 0x0], [0x14f33eea39359762, 0x59be6ff5ecd62918, 0x8f3c74ac05f3321f, 0x9824dab0fa3244ff])
+ self.mul([0x4ad21bbd7ab01980, 0x4751eb58728a69ae, 0xc6ac4588df9eac2e], [ 0x8023cb6b307727d], [ 0x0], [ 0x2573840c783ae3d, 0xc50b8b53963124d, 0xbe0e3f361a2b8a7b, 0x47b427d8b8688e76])
+ self.mul([0xd842e0ceb4af4ca0, 0xd9302c1603e4d0d2, 0x2b9514e77290bcef], [0xe016f03aec6470f2], [ 0x0], [0xbd4de564a978231e, 0xac4e1a5721d53b8d, 0x24d24dfb0f7204d8, 0xf68e11c5c0d729ee])
+ self.mul([0x7b6f92b9c1769138, 0x80740ec54046fd83, 0xd85203cbf3025b37], [ 0x3cd594905ccb668], [ 0x0], [ 0x1d5521daba39d9a, 0x5b7d6d33d4e1e275, 0xe19527dfce3c5160, 0xffb65cf628a22858])
+ self.mul([0xde3fcc8079dc0647, 0x171ff519d5a5ca1e, 0x955fc7a0a107fc18], [0x9e91b6c07e0479dc], [ 0x0], [0x89a9e102989ed1ee, 0xd47dbcaaa4419d12, 0xfb6bd5d88221aeb3, 0xde3d0e5ae963fca0])
+ self.mul([ 0x60f0004471394eb, 0x472b5e36049128ec, 0xf5be23561288873c], [0xbd5fa06d8c5b9ac5], [ 0x0], [ 0x47b566021c7e275, 0x7f3571c153f8e2bd, 0xaf7e186d199ce3d3, 0xd2394d6b46be292c])
+ self.mul([ 0x64225109dcac1ff, 0xf468594f1954bbec, 0x2b0659195a1edef5], [0x71d1a6abee9a740f], [ 0x0], [ 0x2c8526fb0441fab, 0x527146de875a69ef, 0x65f8aef546adf6f9, 0xf2fe6ad32a38145b])
+ self.mul([0x5d5d77f0fa8eebab, 0x105124e57accb254, 0x4c253703b4323003], [0x593f25004f3c1264], [ 0x0], [0x208c8631eaa4edf1, 0xa49393208906807e, 0x51f65b9260433f11, 0x828ee7b218aef72c])
+ self.mul([0x24250f4a24046fab, 0xedcc3fa0106635c, 0x22d29e5aa9cad6d5], [0x64efbcedb70d0b89], [ 0x0], [ 0xe40533f03ab4b4a, 0x629e7b35eb962876, 0x7f7eab8be581649c, 0x74e791e0c0991efd])
+ self.mul([0x34d7751775bb961f, 0x1f1291325a40ebff, 0x59fe3025c204f376], [0xe23124cda4dae61d], [ 0x0], [0x2eb05a34de7469c3, 0x2ab8b35f6222430d, 0x1abfa68e764fff7a, 0x9749524457c7985e])
+ self.mul([0x22782d1b9fca5dec, 0x926b14b1583f5597, 0x757922556fcdfb3c], [0x84c3e134c7420e8a], [ 0x0], [0x11e0571f5551d0a2, 0x19f013ca608f812f, 0xdc3548465eb24f0d, 0x4577e3c1f23eb658])
+ self.mul([0xfa93e348613d58d7, 0xc90ef9654a6c7edd, 0x4d6b25038258105b], [0xdf1dd5f3fee527a3], [ 0x0], [0xda640728abe2738b, 0x94c048fba02219bc, 0xf4071a9ddb9f9546, 0x53d5507953f746f1])
+ self.mul([0x3960bda3d939cd6d, 0xe800497ec596d707, 0x808aa81ba57a0af1], [0x9ccb4fafbf1eb1b2], [ 0x0], [0x2324852277c9bbb6, 0x751737e64b0230f9, 0x690a2e0e48c2402b, 0xe3404cd887aa3c92])
+ self.mul([0x13a066d1c2fcd334, 0x5e27fbef6ef1655c, 0xf3ffe21c9ba27c98], [0x4ea51dd0076af2a4], [ 0x0], [ 0x60787ff4d2698a7, 0xa9ed36e92907c394, 0x1ed163f878009be7, 0x15e03ba30ccf8160])
+ self.mul([0x7772606913f0fcdd, 0xafdfe834c7fec3c8, 0x700c087063af6c62], [0xd11a86cbea405298], [ 0x0], [0x6190c1389769c7ef, 0x54d8615338ffd870, 0xe8a904c045435239, 0x1bda854c0d5fbe30])
+ self.mul([0x40056e6c1e015a3c, 0xf051b01d19aece3b, 0xd0600b82a8d4aefc], [0xdaacea6e2e6fa94f], [ 0x0], [0x36afde4ec7127c2c, 0x4c7f34ae44185790, 0xfef52f49d1d0a91a, 0x49dfc2b7a86a5bc4])
+ self.mul([0x7345dd1eb63b6e61, 0x53cea2833379c1ed, 0xbb905067cd78c886], [0xbe7f52154ef35a7e], [ 0x0], [0x55c72ebb76985abb, 0x8683e22e1346509c, 0x4f492f32807582, 0x7a0c4710c323cdf4])
+ self.mul([0xfdd740e58ae19f82, 0xbd23e7de70741ddd, 0xa0818cee6922611a], [0x6178b579fb5b08c9], [ 0x0], [0x60a6406f8a14dfbe, 0xa22bce5fbcd7570e, 0x5e77f715b1b8ef2f, 0x4a0a7630a1450d6a])
+ self.mul([0x3d069e15627d7181, 0x9c816d33fc2743d1, 0xdd8b0c9b343e248d], [0x9344484b9352bfb5], [ 0x0], [0x231b13c425c10c0e, 0xb5ffe7091efe8b17, 0x7cf6e55f4a4e3e1b, 0xff5e7de9f95f0ab1])
+ self.mul([0xa28d3266cdbf4e9e, 0xd2db860048601b39, 0x79282a4b6c6ca1f5], [0x573382cb2c28ff09], [ 0x0], [0x375eb14eb000797e, 0xd784cf40d8df2053, 0x37566145ef8065cc, 0x822811bd6f6cbc9d])
+ self.mul([0xee6bd5d65d7b82b5, 0xb2ded3f2bfb74810, 0xb1d6113de0ee8ade], [0x88beacbad1ce4bb6], [ 0x0], [0x7f5ade81082e8e87, 0x9e91110f1aa8c26a, 0xf8d0fdb75192c334, 0x3d0d2f82c8e9c3d4])
+ self.mul([0x9cbeaeb88a640ec5, 0x68ac3fd80115f814, 0x34222ae6a0908cad], [0xad92958058f3afda], [ 0x0], [0x6a469c5bec441098, 0x5f8113d019e033eb, 0x33dc3abca47b3c4b, 0x4e5951388b790e52])
+ self.mul([0xc92b24645293e038, 0xe92416fa54780572, 0xc3609706dc3a064d], [0xced2716169f3e856], [ 0x0], [0xa28615c52c6a2aa5, 0xa8dd8c707ca9140f, 0x5073b44b766e81b8, 0x87162bb9214ae5de])
+ self.mul([0xd7654471fb0c5a02, 0x42e279ae74ddf94b, 0xddcd0d7365a7f7af], [0x286cbb3afa12fa77], [ 0x0], [0x22034ef347a9782e, 0x5e0b7cd77a2be89c, 0xd48e6e19746c4962, 0x8ca6124099430859])
+ self.mul([0xb8229789fa3094a4, 0x563dbad7928612f1, 0x36dd18ec07bcb645], [0x1871662a2b649dcf], [ 0x0], [0x1194cef5f0a0022c, 0xe5a5c3093095d2f9, 0x387b3416d7950e6f, 0xb89a053fc753b2cb])
+ self.mul([0x693dd3b43e7e0c9f, 0x477b097b86849854, 0x63c8510b1b923a08], [0x854ee6496a185a6b], [ 0x0], [0x36cd8e7edfd57221, 0xddfe4e678ec779c8, 0xe942a246f3d81854, 0x66f2a55aaf451158])
+ self.mul([0xca3c75344c686ffb, 0x44d43c427fff808c, 0x45852675de52ac93], [0x5bc4aa045ecdb781], [ 0x0], [0x487eda42ecdee5bc, 0xc905ba44e1e80440, 0x5bceec87063163f, 0xc0c57304cbd0b13])
+ self.mul([0x80b23b45c58bc2be, 0x59059bb721f6ac74, 0x22a6986e0211facf], [0x63ffd6e4dd4f27e8], [ 0x0], [0x32458a7d116f9808, 0xabeb5d52a3a1cb1d, 0xd2930f6d55bf3922, 0x8acc796fb661d498])
+ self.mul([0xc0b54f355a1c3326, 0xe6ed1f902adf5536, 0xe52ebfd88b93f093], [0x48dd1061d79c1b0a], [ 0x0], [0x36d967215e5ad9f0, 0xbb0a2c7c737ac2f3, 0x8c3ed8408a8a5e12, 0xd03bfa131cbae6be])
+ self.mul([0xef934e124acddc15, 0x5337f021f91f92ae, 0x53dc027ff168c6ae], [0x61593a2a1a73f763], [ 0x0], [0x5b1a5139d9507286, 0x35b06add43c66aa0, 0x8cadd69e5a2cf6ce, 0x2b2e84315f60b74a])
+ self.mul([0xa198f6c84cd01591, 0x30c1f405ed0e4359, 0xbe62bb9ba0bfe43f], [0x9a44067b07c37b2d], [ 0x0], [0x6160f52d4a976c4d, 0x3583356c3bf3ed10, 0xe822214f854e9967, 0x52b7964509626413])
+ self.mul([0xffea63cb858c7508, 0xf8b3aa62d36bd48a, 0xe185bcdd6d84126b], [0x1ae75b6727f2789c], [ 0x0], [0x1ae5160228ec5e54, 0x56d0cbaaef5267a5, 0x2e24678aa4da1d9a, 0xe243f9f95b436134])
+ self.mul([0x4c9fc7db0efd7e0a, 0x2b69477ba3353f7e, 0x425080584a133200], [0xee2d16fa788b624a], [ 0x0], [0x474a0ac47cbbeace, 0x8c310f6786d0df62, 0x1ebbec5c8a5e3832, 0xd61af1bce8b07400])
+ self.mul([0xdb5125c81e018dd0, 0x6e8987c87397b460, 0x53f1c4a41fe5188a], [0x3f5c71a2389d1c56], [ 0x0], [0x36482acf9ed4c1a5, 0x6e5fa303997d97ef, 0xf02af1c403c13923, 0x3ac220d20247565c])
+ self.mul([0x3a59a0ac6f6b805e, 0x99dab9847ad68da2, 0x2bcf31aab0e3a570], [0xa873b374ca0d4bd9], [ 0x0], [0x2665309ba097ba32, 0x57a72a0108e39b01, 0x2e42d2b93089fddf, 0x3090fe5c691f0bf0])
+ self.mul([0xbdc08d148e7d3d62, 0x9bf26ee4ef298b24, 0xa6298234b5d93269], [0xc03d85fa32355560], [ 0x0], [0x8e7e03ff855079af, 0x1cc9da315a81c6af, 0x6e0ddfb2d5f29f73, 0x888b2d7f40ecc460])
+ self.mul([0x1599c7909256fea4, 0x55188ea820455ef6, 0x631db4dae33b3fce], [0x97b7e267479b4c76], [ 0x0], [ 0xccd38be67c199a7, 0x2cb77b5218d54d2d, 0xf4c08af5cbf38dcc, 0x905be3ce17fa90f4])
+ self.mul([0xd8f220bf3e6af3af, 0x428c61e32ce74daf, 0xd89689b25334f31c], [ 0x7727acccbd3244f], [ 0x0], [ 0x64fa2c8c126e2bc, 0xa7ab6fbedc679a53, 0x8481dad06240ccf8, 0x784c3576b39af5a4])
+ self.mul([0x956060d4d7886808, 0x3cf5f6de7853a97a, 0x872d09034dcc7fa9], [0x349d9307010aa784], [ 0x0], [0x1eb385910c285942, 0x33eba64db51ea47f, 0x8e3c7c8e793f2b43, 0x9e132c902a531224])
+ self.mul([0x98b68ba102a8b77d, 0x4dbf11252c2b5a69, 0xfadd871b92f70b8f], [0x4c5850e09e379719], [ 0x0], [0x2d8ae072d5e151b7, 0x488a777e330b20cc, 0xa81d14301554a8b5, 0x6ee34eb6cfaa79f7])
+ self.mul([0x94f5d4641acfceb9, 0xab087a9860a9fc60, 0xedd2eb913c25bd9], [0x507fc1c0d4fcb64a], [ 0x0], [0x2ed729112f77a0ee, 0x27109076d807097d, 0x34b5e2acaf872794, 0x875df8ae0116d2ba])
+ self.mul([ 0xcdbd46680839957, 0x6c3c719b83d31c36, 0xc5c943a9c6ac4709], [0x46c50bc8b63ee019], [ 0x0], [ 0x38e01d6010aaa4c, 0xe1c77ce017f842fb, 0x4810d064074cd16e, 0x3fcaa3acbf28cfe1])
+ self.mul([0xb2b0c08853c09fc9, 0x37fcb828c954dc30, 0x9ace206c4ebbba47], [0xe21eaec1033465b0], [ 0x0], [0x9dd574a9c6445279, 0xb7fb50b6f536a4d7, 0x420abdee6a896e5b, 0x11e2e85ddcfa13d0])
+ self.mul([0x9fae7559988a7b45, 0x7329896a0977b1cd, 0x227246e492a29b84], [0xb8468de9e1bbd348], [ 0x0], [0x72f16691755be364, 0xe700c8309bc9a1d0, 0xcc708735744811e8, 0xfa299bbfe1558920])
+ self.mul([0xcb51a92c373e4a37, 0xe8f3462e44284fe6, 0x68fa8fd40a32e983], [0x4366a6fa865e296b], [ 0x0], [0x3587e66de63cb8ac, 0xdd93e5ffe4bd1817, 0x270ab56fae4e567d, 0x1b4a741cbac794c1])
+ self.mul([0x97af0c7415ded1c3, 0x8d0a6418dee05ab9, 0xa9f4ca4abd181660], [0x5a73d59be6be5eab], [ 0x0], [0x35982c946ce75a85, 0xbf2d16038cd03a3b, 0x4ddfcb611f3eec1f, 0x779f976028e3220])
+ self.mul([0x9d08cdb989215b6c, 0x46ebecb51fe2f3eb, 0xf9c36fa176e13ce0], [0x73eaaf921977676b], [ 0x0], [0x471aea29077797bc, 0x24709a5f433ab1b1, 0x943a4ff4aed7f772, 0xb915b8b67bc291a0])
+ self.mul([0x3676b685f8e8315f, 0x7c5391a660d9e0f1, 0x3fc863371bc4df14], [ 0xd8ae0919ba95d9e], [ 0x0], [ 0x2e1930a0bec7c25, 0xf73a0099e2f02f4e, 0xfd7c406a3d804a64, 0x4965a37608bff258])
+ self.mul([0xc8fb2e1e954ec24b, 0x720435bb67095d3, 0x748f227a8227047c], [0x5a46bad206410d9c], [ 0x0], [0x46dfd590bf5186f3, 0xdc7698ff05b32118, 0xffa765a7ff5b963a, 0xdb4cf6fe567d0790])
+ self.mul([0x7762263e296ab7c1, 0x76be75042350c3f, 0xaf4da42f8723bd17], [0x4174d4a77d1ae78a], [ 0x0], [0x1e86675a7fb8c27a, 0xd3178122edb080fc, 0xe37c9df6042d8eb0, 0xb724f7868839af66])
+ self.mul([0x906d730ec2f27efd, 0x7ae56aa3fa84aa29, 0x4c928f899611face], [0x4f3916395315ae07], [ 0x0], [0x2cb1fb69eb93d7af, 0x4ee202f62da5c6f2, 0x46aa5836e6944aa, 0x76ef206bafdbdfa2])
+ self.mul([0x619063062985d0e0, 0xd72bb84b2a2c3b6a, 0x67dcf12fee06540c], [0xc97a59ebb184439f], [ 0x0], [0x4cc8fed40d29228d, 0x6c07d3d9889ee351, 0x7d1f80eb41888b5, 0x261c674201d5774])
+ self.mul([0x6afda9012ab1b2ed, 0x7f587907d989b230, 0x53efde3f688cd5c6], [ 0x5b6bc6505dad3ff], [ 0x0], [ 0x263535fad4cc48c, 0xc5a266a668d40275, 0x8eff1d6f5fc9d105, 0x54782b8e2117223a])
+ self.mul([0x7c77fa57bc75536a, 0xd98165acf87b7aa3, 0xbead4f126934dc26], [0x96a1182721f6addb], [ 0x0], [0x493c9fe21fdd08ca, 0x35c1018800139601, 0x4aa1080c87a0c92, 0x4b8a18cf2b820282])
+ self.mul([0x62874fca012109b9, 0x323ccd6cd84ee932, 0x5a01354e79767c70], [0xb30e28e0025135fb], [ 0x0], [0x44ea0febf797dabf, 0x9dcb5fae44e5013b, 0x4071afc053e3f2ee, 0xe33e408cde5f31d0])
+ self.mul([0xdfc1b8be3086de2d, 0x80fee38c95a966d0, 0xa9705a4496ff5d85], [0x3ab8326fe0da7b7f], [ 0x0], [0x3352e32d7f4e27c6, 0x33170c9a013107f3, 0x6558ada49a3dc78c, 0x9f394a889de04bfb])
+ self.mul([0xde8315423a182b0a, 0xb27e6d52c9853636, 0x7915f9560dade574], [0xd2688e055e787d1c], [ 0x0], [0xb6e2682257066fa3, 0x6d34c400324438b7, 0x6f243f7deff32a12, 0x8b4e611f8e6ebcb0])
+ self.mul([0x99f6306e799744a0, 0x3cf1cfad256ff570, 0x1f08707205b85795], [0xd33a6aa3803d3595], [ 0x0], [0x7f090bd44c2db6a0, 0x7b3d30c3ff23abe, 0xce9b4ec138b0b8d6, 0x3c9e0c22dcedd2b9])
+ self.mul([0x131a387a87be7d0e, 0xe3b6b0c599f3d0a4, 0x8dbe1561056f9cd8], [0x2f655abd4fd1c486], [ 0x0], [ 0x389607c1f6f0bcc, 0x412becc0f4219f58, 0x441973fa17931ace, 0xe88315f000d97910])
+ self.mul([0x3dfafb93f7360168, 0x9a35b1cf1e8319f9, 0x54c065a4b2694590], [0xeaa02e2ffaf64d43], [ 0x0], [0x38ce3201337d6131, 0x8b76285adbd1382f, 0xef6595e411151b90, 0x553f084bd3d984b0])
+ self.mul([0xbb2f9cb334b8161c, 0x8158bbcd403d5175, 0x5cb1420b086de408], [0xba16be1f643ce9c9], [ 0x0], [0x881138f5f6106606, 0xa7bad2ff0b4f6e40, 0x121cff09a88d7e91, 0xe366592234b35248])
+ self.mul([0xd90dcc6957bb1061, 0x4732e5c0d700f06e, 0xdfc07dec1ca329ed], [0x98f99dd306a1c124], [ 0x0], [0x81b3d59ac0e8f487, 0xac795abfd094ed38, 0xdf9c0609e4e8f40e, 0x7ae173baf59a9254])
+ self.mul([0xb811fc332cf50e6a, 0xc5d381b8401fe8d8, 0x7a395fe3082027a8], [0x743a89be99ecb364], [ 0x0], [0x53923d64fff4bc63, 0xb7d6b3c3e7aaef58, 0x62390ae968e75c53, 0x4ac23f659f29f5a0])
+ self.mul([0x9153b727e8b70e10, 0x3fb177e51720c420, 0xb82c9d7d50ab2e4c], [0x3e6fc1219251c3fd], [ 0x0], [0x2371b74b409a1892, 0x244419be9d49c5c7, 0x5d449bcc8b85aef7, 0x3ba283a81b7ca51c])
+ self.mul([0x32630cf33a79e7f9, 0x87575fa982d89e9c, 0xafeeae8c3573945], [0x2c503a9d54908dd4], [ 0x0], [ 0x8b8d0b742623a43, 0x3cb8b1c2c2358847, 0x57c4238ffffff5db, 0x568afd84a9966e24])
+ self.mul([0x2cb03739c8dde2e2, 0x85b9ea74a715c79b, 0x90f074e3abe1625e], [0xa697ea49cfd5e17b], [ 0x0], [0x1d14c8a60057bfb6, 0xd4b00ce67918dbe8, 0x37f655e4fdb0a079, 0x544e7d5386f4e12a])
+ self.mul([0xc3866f7a35bb8a81, 0x1f010408ffa09416, 0xd6cdd676aa3be7db], [0xbb05b602076a58b6], [ 0x0], [0x8ed79011929ab275, 0x7e11ddd02a08701a, 0xab72560c324d3a7, 0xef6de4bc9bf81db2])
+ self.mul([0x1bc711d4755ee60b, 0x77c13417c64e5417, 0x380153eeab37c176], [0x6e70b2df8fcbc1bc], [ 0x0], [ 0xbfbc429c3cab0e2, 0x17c31f6e393dcb01, 0x29b4a6dc511e56af, 0x42dc0e6c185e08a8])
+ self.mul([0x4554370f30c0908e, 0xc21e7da81bf85a11, 0xedb12dc274380181], [0x164b410a2c34d1c2], [ 0x0], [ 0x6099e0492e19e2f, 0x80f782dea40ee59f, 0x7ee5c50cb7baa622, 0xc77679ea45df74c2])
+ self.mul([0x2ccf0fafac84e5c4, 0xd079e63403a6190, 0x30e5708078f0213], [ 0xda02e9d645f1693], [ 0x0], [ 0x2628d5e7aee4962, 0x35cfb526b953ac3e, 0xda6777899c60f00b, 0x39904cad258d2e9])
+ self.mul([ 0xdfd106ee9c051df, 0x73811c06384559dd, 0xd9026fb009460cec], [0xf625c201ea3e5460], [ 0x0], [ 0xd733df7d5e46df6, 0xdae65fb328649ba0, 0x1885bebb6695c555, 0xe7d8d0c14faa4880])
+ self.mul([0x5ade05554f810725, 0xbc5376d7846d5972, 0x35a8230870d13432], [0x6e981529084585f3], [ 0x0], [0x274161a099bf1d6b, 0x7a92c465c83a159c, 0x40e9af38010422f2, 0xb2130ba6682c8576])
+ self.mul([0xa988bf1abe8ae843, 0x429ae347a3ae345d, 0x866f5f1ebe3e9393], [0xd0ad1e268eb011ab], [ 0x0], [0x8a31c0a66f139499, 0xb684b0f9536c99fd, 0xdb05cdb80bbc84c7, 0x614b36de3aa95631])
+ self.mul([0xdfc491150e635ee2, 0x62275bc1ac318bce, 0x97b48fad3ed76ca0], [0xad02398326eda18d], [ 0x0], [0x9739c7d9c4ce1599, 0x86368bbd74013fc9, 0x5bdbda962133586a, 0xf032746068177420])
+ self.mul([0xe6442da9edb8cc89, 0x714e2a250d8a8e0f, 0x3b66d38ad9aff3b6], [0x349826927fdcad05], [ 0x0], [0x2f4eb47385da4457, 0x7b87e66c41bdbe99, 0x5dc8abf27bf8603a, 0x43de55bae289c08e])
+ self.mul([0xdbcd511720810882, 0xdfa7072290eba848, 0x661aec8d056ebfe0], [0xcd746beeb2d716f5], [ 0x0], [0xb0675fa406d58be5, 0xfe6751c2fe9ed1f4, 0xe140e711e8f1c15c, 0x68f8151a9c9ae160])
+ self.mul([0xeaf4d37d3054c3a4, 0xd78d5e9456989185, 0x9cf3db0c411c2fbd], [0x684ed65e65465281], [ 0x0], [0x5fbbd142976a99c8, 0x37e0122470d8328a, 0x3d660f2b35c9379c, 0xb9ecbff8752c983d])
+ self.mul([0x5017b2046fc5d515, 0x28c6730a59ccd833, 0xfcd8a0bc0f68f31d], [0xb3c8cf02122b5cb5], [ 0x0], [0x383f64bffc6edc76, 0x763788214c51b7ef, 0xcb8946af4965fd39, 0x8a78b737c714f81])
+ self.mul([0xbc1a131798084941, 0xc7cf7c0c9e13ff58, 0xcdb919f802ac7422], [0xa2acd391bd8d55c0], [ 0x0], [0x77877d0e55d7c00f, 0x74d843ac348f8b00, 0x2a183c23e1250311, 0x5a436ae054a06380])
+ self.mul([0xc3cd4bd14a97f8cf, 0x75e3554d0e110c25, 0xc9b6ced3da7212d7], [0xcfdc9d144af0241f], [ 0x0], [0x9efbbcdfd00747e4, 0xc25e4612dfa1549a, 0x93091cd5453c8e5, 0x5635ee8f4e068409])
+ self.mul([ 0x3448589a90075d9, 0x361311c72e6bcf58, 0xc0b7bfd20468ee12], [0x304d3c7b6f1b0458], [ 0x0], [ 0x9dd56b9cbb662b, 0x72c07336db4c471d, 0xb431b583ba760c36, 0x1ad9c93411b01e30])
+ self.mul([0xa29599f2e760a7d2, 0x8a20ef8ef59c2cf9, 0x3b02868bf91ba6ee], [0x269e2d4bcf9c310d], [ 0x0], [0x1886a9f384011d32, 0xb86fc7121677b507, 0xe7b42b9d8e2dcec, 0xd8f086581c630816])
+ self.mul([0xc98d971a469158e5, 0xa1e8020e874059cb, 0x4d13ab5681bcaf36], [0x1343fa2f8f7a8153], [ 0x0], [ 0xf2b073f36a23313, 0x969a3725ab3d0801, 0xc32a0b2641412bcc, 0xd24a4520ce330482])
+ self.mul([0x8b7728d2a0ac262f, 0xcb2b890ef9135802, 0xab78245dcf7b0f04], [0x218ee8c6c1f394e7], [ 0x0], [0x1248372c105d4dee, 0xe6a40f0c553efd9e, 0x38d16e0240cd63c7, 0x43e801d2a184dc9c])
+ self.mul([0xbd392d72087df42f, 0x4a0592902ffee607, 0x1bfaea88f259d6ea], [0xdb274f13b042eb2a], [ 0x0], [0xa1fcf809ac3060f8, 0xcc90ad6f5e912108, 0x858c3399723b6d46, 0x2c059938835a1064])
+ self.mul([0x8102e238cb8dae87, 0x15a66f6c25ec82e5, 0x610aa7ae7ed76617], [0x415fc8cf8f419639], [ 0x0], [0x20f200b5390577a4, 0xecdb6c9373973057, 0x4c40ae49b661cf59, 0x773e9f7d389e351f])
+ self.mul([0x902a7ab1a52a8e8d, 0xd1ec4be46259ed6c, 0xc8e9ddd67a573872], [0x481b1d695e3f5b5d], [ 0x0], [0x289b378d0d961d1c, 0x6203204764614a3b, 0xf4e5a5acafb0f4d9, 0x8ab6075a32ce076a])
+ self.mul([0xddc2fce0fae3793c, 0xbd1a6c47b92740a0, 0xbb28f3897b29381b], [0x559346a66b66f071], [ 0x0], [0x4a215221631cc208, 0x25f72a0a87b60603, 0xa2b423ab822ad1a3, 0xd1387387a58d13eb])
+ self.mul([0xff0ff1547869fe73, 0x1555bf0e3cf9d5c2, 0xab0c957eba463cce], [0xbed671b24dd9cf3b], [ 0x0], [0xbe237db81e2837e9, 0x46af1120b841193c, 0x546842fc53cf2cfc, 0xad1c27e339f8957a])
+ self.mul([0x6c5905463f0b25c4, 0xb3f890b91baee075, 0x428328fb90c12223], [0x834bc74e63ad2822], [ 0x0], [0x3791a021de40192f, 0x9ff9ed07e28a1533, 0x43939fb7fddb14ac, 0x7470de6901a300a6])
+ self.mul([0x848440dc010dceb5, 0xb717ad8883d56da9, 0x6c6d88067c614b6f], [0x299825ef4e062126], [ 0x0], [0x1587f08cbc07a7df, 0x1673f80f6718cfcb, 0x1051435622836505, 0x207c0de397c4817a])
+ self.mul([0x4a522f554556020b, 0xfd7b8e35462b3f76, 0x7d3c05c9e6a12ac1], [0x324ed8d450dd0341], [ 0x0], [ 0xe9af13c0efeea68, 0x4bd0ed9406aba403, 0x4ce13bb9b04d446d, 0x4a058c49ab091e01])
+ self.mul([0xd377219fb28a1d79, 0x7563f9cf06d77344, 0x9a3b6da32fba92c5], [0x3f5db7742d31b817], [ 0x0], [0x3457bb17a44d4132, 0x5c7caf09a93eaeab, 0x7b4359ecf2c737a0, 0x9ca66be1bf5c7b3])
+ self.mul([0x3cbad7536bd4625a, 0xc04cda21ecad99ca, 0x14ac6980dfb15147], [0xba80498db80927a7], [ 0x0], [0x2c3e2f512c061316, 0xad3da7bced6445b1, 0xc9337ee26ea64b59, 0x1531c7e7d38cd651])
+ self.mul([0x8c8d299ef1c4cf29, 0xe3c0c0424e2201c7, 0xbf856840ecedcec1], [0x730de99e0becf9fc], [ 0x0], [0x3f2b0d20c43b365f, 0x89d00b40bf0d2a46, 0xc202cae54c88a00b, 0xe82ad976d1d3efc])
+ self.mul([0x948cb534d718e2ae, 0x4fc7b6c3c7ac8502, 0x1f2d823c69b04c5b], [0xf229e308b5693855], [ 0x0], [0x8c855192cb24082b, 0xa839c3050229b300, 0x15e96f9962c7d04a, 0x51e4885150904237])
+ self.mul([0x916de690b356fd20, 0xef3ac7c68bfe87de, 0x97a5a68cecb69040], [0xda38c06946526585], [ 0x0], [0x7bf7d3afe352425b, 0x8ce603eb8f9c6cc2, 0x595c782969dd872f, 0x16b408c6b6423140])
+ self.mul([0xde8288b90b17dd39, 0x3f825d6a453c8987, 0x78b7078d10653c3d], [ 0x7b44ff92471b716], [ 0x0], [ 0x6b24b08063ebc37, 0x12a956f94da24b0e, 0x4180869b0b46dae1, 0x97a56054f1afc83e])
+ self.mul([0x1bf591d9bf130572, 0x206a6d072629aba7, 0x7ea0eaaeaabc53e1], [0xefac07d70be8c4fd], [ 0x0], [0x1a2d0d037b368e4a, 0x60f7a9fc4c95040a, 0x8637a6c4df26f599, 0x7cf814949b3f295d])
+ self.mul([0xd9e0d33d2c23e44d, 0xd9955a9587478ea3, 0xbcdca913eac6fb72], [0xb0827f33eb677f47], [ 0x0], [0x9639a1a80c57fcf6, 0x29cfea739be6b414, 0x99b6aceb5c37ec72, 0xb4e18a95a4cb4a9e])
+ }
+
+ func test_mul_3_by_2() {
+ self.mul([0xef48f0f6f80e4c42, 0xc59cc2c2e8405599, 0xc6e14b008a7a9379], [0xa64109d4c98a814e, 0xd5922304e9086147], [0x9b6616f5c8d037b3], [0xd4c86bfcc9d46ea8, 0x75c9c55636346bbd, 0xbf814f7a054863ba, 0x100abe9096a7bf8f])
+ self.mul([0xc2436bf28eddb878, 0xc0a7770956dc196c, 0xd5c258465580ce79], [0x339256fb9446f241, 0x3b02eb9eb218587e], [0x27227af671aec9b0], [0xcd785f74148f91f0, 0xffb508f8b824ff5b, 0xbb06dfef951c4ddb, 0xb505b553d9b7378e])
+ self.mul([0xe3bce58ef2d85180, 0x28ebe541841d247e, 0x27580bc5b57ca561], [0x5ab4806665a757ff, 0x5e7208b4f049429b], [0x50b0fbbf345c2234], [0xccb1115433a07310, 0x79dd956b0ca49553, 0x93900588b9821f34, 0xfedf05491dc423bb])
+ self.mul([0xb38079487f350514, 0x84bce8969eba6edb, 0x730df3bd1b66a552], [0x30cd2d99a0fe7724, 0x3b5c80b9c450fa33], [0x2237f49804e4c1e9], [ 0x866eef837ce8a0b, 0x9072c94c143b2423, 0x22fde7f57cef96ed, 0xef2fda5724850356])
+ self.mul([0x7eeb50804d960ff1, 0xad681b082fe1ae96, 0xf1ea6e9c9ce3c58], [0xacf72a373a56dbce, 0xc83475f5d4a205fb], [0x55c0a40edc9b670e], [0xfbb3c7cad8d4454e, 0x3ac45aa54af5533a, 0x9254c621291299de, 0xd34aedcf412e248])
+ self.mul([0x248f7cfe7416c704, 0xb881f0add69733d4, 0xf1b084b82d943c07], [0x3c9600c90102bd70, 0xcd7cffccfdc7bbb4], [ 0x8a70d7b951b7370], [0xe1bd1e5d52228427, 0x8304d0eb53f45204, 0x32806513255cbfc0, 0xb99596ece88451ec])
+ self.mul([0xcad226bbc16d40ab, 0xa1e54a301ae583a3, 0x9801de072f4aa27], [0x89964b0d39cd4bb2, 0x60854f516059f5e4], [0x6d018953385737b5], [0x490eb6d8f73820a7, 0x5bf4d15388357957, 0x72d1998d4a4e8a91, 0x8705001f504dddbc])
+ self.mul([0xd3ff49f91ff199a5, 0xa7eec2c6076d3ba4, 0x9708f6df02775e64], [0x2c14a81e5550ec51, 0x9e1a358421ba2010], [0x2480fbe14010f47a], [0x894d6870030e5661, 0xb8642b87be7a77dc, 0xe662e4f7a346a205, 0xf703dbb48bea6640])
+ self.mul([ 0xa2b7fb32086109b, 0x82a436680480a241, 0xf1fbe5bcfd69ab51], [0x2eb5f2a7f2a471e6, 0xb9e9ae1b1910b264], [ 0x1db0b5744395f7a], [0x23e9cc7cf8b93885, 0xe36065f0b4760577, 0x5228057fd320521e, 0x7f016de714753da4])
+ self.mul([0x1a15775b45c6a595, 0x31407fd4ce005ba0, 0x9643cb28e336e57c], [0xdf3cd8b6c6cd4679, 0xc86de41249e359bf], [0x16bee6153765c73e], [0x6f112f14297b4839, 0xa90eef486233f835, 0x131eb9a53fc789a, 0xf04c7e5574b15384])
+ self.mul([0xedb1938c6426f7b3, 0xcf26d4c346fc911b, 0xdcae9958337721ee], [0xd6a6b4fbdcaa8717, 0xa8f2c0f8f3ae32b7], [0xc74d3a87be7ed58d], [0xc40f4b071d91dbd3, 0x504447b47f0aea9f, 0xff6e57bc3c3efd8f, 0x456746d8088dbd22])
+ self.mul([0x12477ee06cebfe5c, 0x6e947d905c1834e5, 0x3e2e22fbc00637b6], [0x4c34fabefe938608, 0xb29a5d8ed7065e9], [ 0x5710217db10fce4], [0xef89c5afad7ab89f, 0x250d471fd793655c, 0x56d5a5fb2fab4f01, 0xf0023dc0174382a6])
+ self.mul([0x4a4b0810e02ad061, 0x7e569eabe58a234e, 0x151a8603ae78bb0c], [0xadb1f8c538bde186, 0xee6874d7e61cea49], [0x32685a85e72cff2d], [0xb0a5ad77c338c30f, 0x6a1fe44eda0467ad, 0xf1303b87f505f3b, 0x9b3da8dc58b64e6c])
+ self.mul([0xd669d8d11901a141, 0xe3cdb6000ee6a2bb, 0xc1e6a6b2129cc247], [0xf0dd9266202533a6, 0xb615673ef3cd94b7], [0xc9bccf421ab424d2], [0x10be95a517f57861, 0x56ea80a6a687217c, 0xef6e9523cfbd32e1, 0x76786e30e63aecc1])
+ self.mul([0x6a4613e01abadbdd, 0x3ebd281d847a76f7, 0xa96f5469c4e901fa], [0x6eea687eae08c1cf, 0xd4a9fd0a1748c782], [0x2e0b6bf98524d097], [0x27952fecf6d5b5b3, 0x303dad295e2621a, 0xf06a174602eb70b6, 0x21af8c41232c56f4])
+ self.mul([0xfa46f89944e591aa, 0xf498d621fd8d7381, 0xd9491a63ee87c0c6], [0x75442e5a06cbfff3, 0x11a3f4b77d70cd67], [0x72a517c8d9774326], [0x59796a06f3e75352, 0xe2e983254c741535, 0x9b6d2d73cf146d14, 0x1895ce46b29d1daa])
+ self.mul([0xf62173c16ee011b4, 0x3b3b57adb09f11be, 0x4d5d93b73a488889], [0xe92cc29b2e3992da, 0x3a6f6e54fc3eda2c], [0xe02f7b357f940834], [0x70a60bd89ee2dbd0, 0x28d6782a0d014f5e, 0x83c875e09ca942df, 0xa77d9a0bb5ea218c])
+ self.mul([0xd33dd1dbd02e7015, 0x84a2d5b355cbd20, 0x8b1417e369933630], [0x54120bc863522880, 0x72e67941b3353cc2], [0x455f2cede408f918], [0x4bb90397067441c0, 0xc5fd69e43e1371e2, 0x444f909155c25927, 0x81d7a3a24a325060])
+ self.mul([0x5025b66bf9d128c8, 0xd25f1ecf55815db4, 0x1d39c142ff5a9675], [0x3a9611718c26aeee, 0xab8e437db184921c], [0x125786e36781312c], [ 0x9c555c3076aa190, 0xb6ac322dabe1bd87, 0x8a4baae09b076cd6, 0x1c24bbd3110b2ecc])
+ self.mul([0xed528cdaf5366dfd, 0xb5148ee1cb6a135b, 0x7e0362fdd77a2131], [0x7e1361f776879f7d, 0x5f5f41a8bdfe2642], [0x74e09945e8d7a2a8], [0xf3d8eca3a451bfb6, 0x169341a157a3e4dd, 0x5c53f4bb96a37098, 0x88446243ca07d4a2])
+ self.mul([0xffb7cd175c615bea, 0xf90dbd2377d71a0c, 0x99007142f8473cbe], [0x7b5339211e0d93c4, 0xae5ecbebca187b1f], [0x7b307132b9567848], [0x718aac4dd3ff6941, 0x92cb7bdbda1067ea, 0x7568db27f1a2ab7, 0xbfbcd6be89fa502])
+ self.mul([0x9289b8d145ce31f2, 0xd1f04a6e90fee66b, 0x5520a47101392218], [0xe9193938726e10fc, 0xec3ffae79fe77a47], [0x856dc96a7ebfd81f], [ 0xd609b2c01f70e79, 0x12e2be971e20f3ca, 0xf7ccf7cab7e3ea34, 0x25e7404f3cbfe4a8])
+ self.mul([0xb72335a13c1ebaa7, 0x9797933d44642bed, 0x83f607bd186d6968], [0x7ef467d5e509e178, 0x45ab5b6d7ff2da9f], [0x5ad22c3ca7fd7c01], [0xe0f1593867db2591, 0x629b4d3b9ee03df, 0x6a0da904439979bf, 0x53cb0d3f94070798])
+ self.mul([0x73b6d446ed784934, 0x839d5866b3630df2, 0xef213a94372b949d], [0xcbdff8882f9f9b9e, 0x48187355342df413], [0x5c2736edd4636f6d], [0x3389303dc95e386a, 0x6418c5fc1a5462f5, 0x9ca7d52897129b77, 0xce82098fa57aaba7])
+ self.mul([0xa1eaaf08a0a6a469, 0xd4473603226ba5ef, 0xb9b5ebba6f470d03], [ 0xe4fc87d4b9423f1, 0xbe23501a7466a813], [ 0x90d4bcd149658d3], [0xdc4287b29b1d8d5f, 0x97e188c4c5731dd, 0xcba0fc301f2bdede, 0x1498a25f6e01ef39])
+ self.mul([0xd25854492a6d727b, 0xee3cecf264a32a75, 0xfb5a26432ab1e78], [0x4579d1cf29e1ac1f, 0x43d6cd736e3dbe98], [0x3915e6dbe3aa02f2], [ 0x1eb91f907ac8e74, 0xdf5aaadee7132592, 0x6989b0b8da59855b, 0x8c992adee8cf2740])
+ self.mul([0xf83170dfd33814a4, 0x8835cb61253c108d, 0xe01b6edc02052fe6], [0x9a238cbba0141af3, 0x4cafdf9f2daf639c], [0x9570351a04b3dca1], [0x5deda7adcb8c5380, 0xe15b00b3616a7867, 0xb1ce77f54bbe38da, 0x6d8307aa68e92228])
+ self.mul([0x3348befe8a298509, 0x41561fc5596e1d4c, 0x6b01b6ea5fd85072], [0xe6c99dbcf9a00882, 0xa7486e85e3f29c62], [0x2e3bbf501e8bf6ba], [0x17f0b22680d99c8c, 0xd65a89701a217721, 0xb34660c70dabad6e, 0x7aad092ba39843a4])
+ self.mul([0x1b9f79d1e69608c7, 0x1439f1cc14d01824, 0xedfb4a6db6796699], [0x84d584fa10b741d9, 0x5192683bebc77dcb], [ 0xe5544d9cce526f4], [0xa37bf3be742149cd, 0x74a8b124df15c5b5, 0x106272e947c0ddf4, 0x4750ade92d4c1053])
+ self.mul([0x9f804c2593c975cf, 0x7a606f3e0225432e, 0x6d8c124ae627d725], [ 0xa22cd919e2b9ad9, 0x841047778332fffc], [ 0x650b2180bf51203], [0x782680c838178310, 0x503f3a84a1cd54c7, 0x276a3b5bacac47f9, 0xd202390f32bfa36c])
+ self.mul([0x7f3a12219c7d07b5, 0x7d2df43510294b9a, 0x89e4d6546efe521d], [0xac4589d52ad471cf, 0x6514e13019ec9a93], [0x559d93557c815d37], [0x5ce10b1eb97dfca0, 0x9ef88a23ba88dbcc, 0xf59831bab6b272ad, 0xdd21e829412a98a7])
+ self.mul([0x5f1fc181d2e8ab63, 0xcaeebd002f850408, 0x71a8fb3f6cc4db63], [0xcd178ad9cafd71b4, 0xf6448a51ccfeac7b], [0x4c352d6764368236], [0x730edc1ea10155d6, 0x2c569a0f179d21c7, 0xa9b74aa6f9efbdb6, 0xe972e7051635ec91])
+ self.mul([0x76b5ed2194bc48e9, 0xc150ee368f79f595, 0xdf8c2f25c834b4de], [0xcd5ad367a8fd4be5, 0x6f6564372b4ac06b], [0x5f39cce145eaff49], [0xee7f2f335b2c63a6, 0x57015856f5547615, 0xa4d02bbe56d1c6de, 0xc4105841c7da18ca])
+ self.mul([0xc18d0dbde4eb66bf, 0xbcb4d34eee618c01, 0xe57b06c69be4b807], [0x9c9f4d75f0b50102, 0xaf4c11ab4fad2b01], [0x766a658bd9071cd6], [0x68225a3bdc706f1b, 0x6f0d4cebea987f2d, 0xb3c8d6bb899bb88e, 0x2b04b4fd8c88e507])
+ self.mul([0x37ce2d7da79bc437, 0x7758824a403f1017, 0xf455b211ca1f6655], [0xfb58436e0af6be59, 0x53b65f6dfc6ff389], [0x36ca642cc96a9d2e], [0xbc5974cc32c2e080, 0xcb1191e33f1a0c0, 0x5efc27533a389bd2, 0xd856d7eb03cb727d])
+ self.mul([0x987e098280ab2624, 0x23ceb5e85af79fab, 0xbe389ee077610a6f], [0x2ab6d2109c83b1dc, 0x4e82eba54537637d], [0x1971944b74cc73e0], [0x3f6553a36fb0b37d, 0xb7089ec5cfb1d927, 0xe1b80abc16eedd84, 0x8dfacdf8fa440533])
+ self.mul([0xeea45b813636edcd, 0xec765237bf7c939a, 0x29ec76a10ace72ea], [0x56df11e1862ee4e2, 0x6a47ef72008ef1f4], [0x50fb289443626db2], [0x2525e0c2edd3ca12, 0x9a8f6b7f2458aa7d, 0xdb67f3b3370a93c9, 0xae804d6264bfd108])
+ self.mul([0x6469c84e7149134d, 0x2d68127001acbf98, 0x758565ca95aee378], [0x9c54b7b70b5ca5d9, 0xf8160506f6473306], [0x3d51b0d4f108d978], [0x9d2a99b889e54a71, 0x543948da4d3672a7, 0xc7718e86f5f16e93, 0xf447fd77bfb23cd0])
+ self.mul([0x9715381ab6bf98b3, 0xeb2597119d3d75b8, 0x79082bab87e3989e], [0xd78d3598e20dfe5d, 0xe3bb42178e2aa2fc], [0x7f36286ff4d16632], [0x476ba3e78506ec56, 0xdd06ce8060a4a8da, 0xa261bdefb64f702b, 0x17678508788a3788])
+ self.mul([0x5dab7e59338a87d2, 0xffb740f0034a78d, 0xf027817485bfee48], [0xca83157f191ac1ac, 0x313e15956e8074c1], [0x4a1948519cf13829], [ 0x68ea582938cce1f, 0x3f98856fd6006dc, 0x28202dfd3f1f1976, 0xd4de55b5e1ab4448])
+ self.mul([0x5ddcf43361e3cbab, 0x32b653414b8ccd94, 0xe5b5c3ae792aa82d], [0x90586f07110f496b, 0x22fe8c2a893099e4], [0x34ecb6063de804cc], [0xc43e0c7d82cb6461, 0x54479cb699816182, 0xa92e7c7bbb93f50e, 0x53024d3005f0ad14])
+ self.mul([0x2020705189baaf1c, 0xa782d815c83326fd, 0x60ccf1778fdfc187], [0xb0eef78de0e2342e, 0x66730b9e7ca68c1f], [0x16344a7194f3b235], [0x6493d40bee6bab2d, 0xa102342c301ab04a, 0x698915ed2a4c7954, 0x6d258b4fab784359])
+ self.mul([0x9d9655e06ebe60b1, 0xb5503bab390d416d, 0x9599583f03da3063], [0x42d94d8b537cf2ad, 0xf70ce15958f0ced2], [0x2926864ea3a4be85], [0xbc4cddf64224bf48, 0x2fbbf7ea08eaf2fb, 0xdd50a88c975ddc7a, 0x66398b6520bb5b36])
+ self.mul([0x97e367f5699c6822, 0x288adef9f99d0240, 0x4f0ef76060494079], [0xc8e0d471d8c7d198, 0xe4ca112d67b68aee], [0x772f0e3e8f5526d7], [0x315ac9f61a72eae6, 0x17844d6aa3b0eb4a, 0xe2f5efc047c226f9, 0xa4283aca85e12a7e])
+ self.mul([0x900736c24c3e2dd9, 0xe3ac6378623ee6e4, 0x5345af71e71bcc7], [0xedbf4dec2f0f9343, 0x6f0c8df7094c3860], [0x85c24eeac8257537], [0xe0a53db2854c1160, 0x77edc77e5bf0248a, 0x748394204f3324da, 0x4001f3bc560652a0])
+ self.mul([0x9b9c3bd013a71fb0, 0xeeeeac342f9238c3, 0x950ff36a6e322b62], [0xfab214746769d005, 0x52d871fd463037db], [0x9862d179c0326890], [0x35d1898f00637c4f, 0x103d0da538792f28, 0x95a3aa5e3371f3da, 0xbb729cd7fa9d2ad6])
+ self.mul([0xbac3d44729e39c67, 0xab99264b64851514, 0xb744f69f81608946], [0x9d6e7ebf2c93e037, 0x2ede1b87e19f0dfb], [0x72dab5ccb66088f1], [0xcca7a6ab8b6e7c9c, 0xe4014eed77b613d7, 0xd2aeb44f2f7e5263, 0x9601e17b891925a2])
+ self.mul([0xcab4dc7981fa74c9, 0x4cd4cf7357e1d68e, 0x1e5eba53b2c9b03c], [0x8280f85eb6d0dcec, 0x12c4e26d73da7fa7], [0x6755f70e2582cdb0], [0xd8f6539968636ff0, 0x126599047d0fa75a, 0x234dc17d020a33bd, 0x6636edc2b717bb24])
+ self.mul([0xb7dbed2fe7dfe8b1, 0x3ae38994a19fb3b6, 0x5f3f5fef123f483b], [0x72859afb092a3a7e, 0xc60c0affb5bd1dc1], [0x523fe430270a9bd6], [0x540bf05bf4903b5f, 0xa80b552bab68f6ec, 0xae6353738f20e39e, 0x82abdfdcf773237b])
+ self.mul([0xb8b21a10c8ce79b4, 0x9ba85ddad4750a95, 0x9f482f9c19b45979], [0x480d7507b0430f70, 0xb438757da9c88117], [0x33fbcccefd477a9e], [0xf122fbe60d5856ec, 0xb5236789db79b1e8, 0xc2368a1676eeb1cc, 0x8ed21105f7d202df])
+ self.mul([0x241a03f833016fde, 0xcc51354569494f6e, 0x2b80420b00765e5f], [0x2fe2d5977534216e, 0x619165b530afabb5], [ 0x6c0c3d113a76275], [0x1b4db91c9d3ccd4f, 0xd1986bf31d654f9e, 0x69854e2257d37a98, 0x1d22c1ddb7ab2e2b])
+ self.mul([0xe6533ea7c57fa423, 0x94277fa79527f97f, 0x1fb4298aef3c1297], [0x5fbfdc9213730677, 0x72e59b661f3ad90f], [0x562582cef8484c6a], [ 0x2f047c514ffa2d4, 0x887a6e8b45bf1f6a, 0xb428feb37669fb95, 0x5f7b82f46f7d15d9])
+ self.mul([0x80138f3539d56b07, 0xbd796f789d6ec730, 0xaa546a1759780228], [0x9a56c2b94989e687, 0x4b87d60bc2125b7b], [0x4d372c23a61f3502], [0x36a8c02606fd95cb, 0x788ce73895e7370d, 0x983a242a22ff7111, 0x4c409d01c3d4138])
+ self.mul([0x4d0ab0f7bae946bc, 0xe9772a1dfc6f674c, 0x522a93f9afd4bdd3], [0x938c66670142bf5a, 0xf1d7cf6698b7f981], [0x2c67644849ff345f], [0x3f95fd56c1cf8186, 0x651a7edfe936e4e3, 0xfbbeddf9859d43e2, 0xfcbbadb280aae253])
+ self.mul([0xf987ca09d9e73309, 0xc7a035c048892e51, 0x5634fc33a598a349], [0xc32ae2fd92544f01, 0x695ed96aad4ca59b], [0xbe3c3c6db0c9d8b3], [0x784d3106d6b0ac99, 0xf39b586aa3ef1bc, 0x686f5a8168dba607, 0xf849c9e37354ea33])
+ self.mul([0x9fa7612de07d0555, 0x7ba16bb1f011c2e9, 0xa0ed182d9f88536c], [0x8434c79568d173ef, 0x1451deac5ecf3e8a], [0x52733893af66e8c8], [0x45446e81dda364ab, 0x5ec80ba190acaebd, 0x41fafcba34dd2afb, 0xb63dd7a820052038])
+ self.mul([0x4e06477fbcad2dee, 0xe2b41d91c0a8979, 0x80e3531953a8bb1e], [0x3358833b9378c471, 0xa8297c4bfe1298ce], [ 0xfa63a66657a9d8a], [0xa10de64dde669d0e, 0x3eb2d425805238f4, 0x8e89ed25e423aebc, 0x8dec8d5c6cfc6224])
+ self.mul([0x4cd48988911af6b5, 0x944dcac84ccafbd3, 0xd41e00b71a767b1b], [0x81c10ae5eac75403, 0xf5ba91a98b4f1d93], [0x26f108cecf08709f], [ 0x48b0d7eb44cc8e7, 0x144bb0ddb407d4a1, 0xa2f43c2a28f87364, 0xb3be365e444fbf81])
+ self.mul([0xa2260475a6cd9600, 0x9a28eb0aecbb79d6, 0x5b1c21fe88e83aa2], [0x3e8c2e8b6b955729, 0xbc3c00295c502b5f], [0x279dff5a12530dcf], [0xd04567800613bc2f, 0x478f70bf380de86b, 0x8fa94009de0520e, 0x450e000a5aa6f81e])
+ self.mul([0xeda0ff998926e0cc, 0xf7791c4359d6f286, 0x10f360c292abdce8], [0xc8b5733a9bb04527, 0xbb82dbedd41859d5], [0xba4e357a64845325], [0x921ed21f89f103ef, 0x95645b97d41799d0, 0xf52b4dcb6805c4f9, 0x5fbd34b69e8b7508])
+ self.mul([0xb2f422f040b2b2e5, 0xbac06d7dc2e80ff7, 0x66825128bef59eb8], [ 0xf9f9ff30fb82f6d, 0xf129bf675b839e82], [ 0xaebe37d51701861], [0xd6c7bbdeb9d53b71, 0x93289ae39702093c, 0xd2352cc867fcce67, 0x39b587b030d82970])
+ self.mul([0xcc800b13014395f0, 0xfa9d8b81a5ebbdea, 0xdbaec861c7dbd990], [0xb828d20f89067e0f, 0x118972dd334be9ca], [0x931ca3c4d5ecb91b], [0xa2d35c2aa068ce6e, 0xd393f8c0f2c1ab64, 0xc2a570c0337f8057, 0x97e671f39adbba0])
+ self.mul([0x12323f71b4f0250d, 0x6fcabda6e7742daf, 0xd1beaa1e186dd32d], [0xa6914c7a0ae3a67d, 0x7ecb059d046d105d], [ 0xbd6e909424956d1], [0x6c20201bf9b28e65, 0x9bab5fb8f10928f2, 0xba8cd6bcc3cd81c0, 0xbf41301e5b418759])
+ self.mul([0x263ca8fb6da9e3b7, 0x281d236a1caa9661, 0xa034314bc18a9a2f], [0x745675cdff7129f3, 0x12bc3f9aa7557e4], [0x1160668b301d6013], [0xffdbcfff8a87c584, 0xa6406e77dd727ee3, 0xcfec185300d69296, 0x2988e9b127524adc])
+ self.mul([0xbfb7e006dc24967b, 0xe49e4a69e61363fe, 0xfd02c5f52d302e07], [0x4e3840bb2c8804fa, 0xb92d79f368998b53], [0x3a9426f53d3f21d1], [0x745531f071be5703, 0xdc36a2f36529217d, 0xa6ddbc657633d1c7, 0x43fde22a29cbb945])
+ self.mul([0x7655aaf94d8710c7, 0x5a00760a7807e4b, 0x17e33f8c990ccb84], [0x9584bbf557080baa, 0xa783a1829b7a2b52], [0x451d37913ec727cd], [0xfa37c8392875ce51, 0x20f0948105aa65fc, 0x2ead9d8794243875, 0x412c051815305c48])
+ self.mul([0xa59b8c6287087d76, 0x792aa50c1d85988d, 0x37f2ca54c52bc8e2], [0xe5a88abb86bba829, 0x37ee50b219c60049], [0x94912c676ce8af74], [0x63d7fbba0272afaf, 0x6005b4a6d81876bd, 0xe9a9debba2ecdb6d, 0xd061c5cbaa484872])
+ self.mul([0xe6e6ceafc19767d1, 0xdb4fbfa951a47203, 0x1970cebe1c7852ce], [0x8d5f962803b43e19, 0x9c73c0656078a566], [0x7f8356ecd55bc8fb], [0x75b73056e6a116bc, 0x9c8ce1ff33047374, 0x4e6e361b0bf5e406, 0x401a8ad2f5dfc414])
+ self.mul([0x3531b7e30a83e262, 0x6afb92be8c96875c, 0x48c4f0572b3fbea4], [0x817ecef598a0cc38, 0xb373e04d04542c41], [0x1ae86722f4503f6d], [0x5794257340db2e57, 0x8a45712d0d94d570, 0xd7c3ae855532232f, 0xa53f08ca0dc397a4])
+ self.mul([0xa1885bfcb2d41860, 0x6d9088c28719e090, 0x3c43434af056b89a], [0x7503ea37b12b9e58, 0x67516cec4f51ae39], [0x49d5ca6d59dc93cb], [0xc0fb39a9b674c69a, 0x25a86ecb4a06c982, 0x477089c13b0bf340, 0x1224df6a6381c64a])
+ self.mul([0x77fae8e85a07e6a8, 0x1445f1b57cb34b44, 0xbb63da9efa17bb51], [0x88bc501c2640842c, 0xf926f87710b3e903], [0x40158d8a149de122], [0x2a96a14b992e2521, 0xbf7f05e5393135c2, 0x3d9b5184915981a8, 0xb67526709166eaf3])
+ self.mul([0x398782c2610818bc, 0x6683b890740f5a35, 0xa676cb185c8f6e28], [0x83d35b6761597482, 0xd8ce54644bf0fd3a], [0x1d9fd724a4be45de], [0xa1ebce7444e83a73, 0x8553e1c8aef365c0, 0xab9f24ca31193719, 0x43f20a5bb5dc7d10])
+ self.mul([0x185f61a4f6c6e2a3, 0x91d90072aa6b0b49, 0x268285bfba7bc7c5], [0xb4d1238846124cb9, 0x3b30c2ef347c1697], [0x1136f9e8b8e28fd0], [0x415c4fb09004b627, 0xb3366eb3cf0136ff, 0x63ad4618991c9cc6, 0x6c1da1916999c333])
+ self.mul([ 0x9a07b17fe2e749b, 0xdcc7beacfc335407, 0x7c459dd000867c2a], [0xa358b3a2baefa4f5, 0x36436ff470872f13], [ 0x624844bebbe3c97], [ 0x9a577243f5007aa, 0x7b8e0be0a5a396f4, 0x4693553ea1577230, 0x651191ce94eced1e])
+ self.mul([0xad36091868740c46, 0xab5eb0c712743af6, 0x8ee00f1f26725b69], [0xe903ad4021508d6f, 0x695083f37c0ef6a1], [0x9da8ab223a8d14fa], [0x21e5a5567ddf64d3, 0x274e4fdf03b43cb6, 0x929beab7b1d07ee, 0xb8e86fbbed806309])
+ self.mul([0xf3ae212ca233bb5b, 0xdc4eae323cfdcde1, 0x72c635774fcbd38d], [0xc97b36291a9015cf, 0xc38876bf887777b6], [0xbfc90043d6f81d67], [0x4724861756fd2595, 0x9a94ac1d1a56b9b0, 0xd702164ba715fa68, 0x3f1cad3fb8c9f13e])
+ self.mul([0x72aa641ea13c355a, 0x4b7b19c688d19434, 0xe7c034c955e9a5c1], [0xa4a8486738b26204, 0x5ce34dd0d9f2a62d], [0x49c088637b8073a4], [0x2900df8417a85ab1, 0xec9cb399d4569a04, 0x556dfdc6c256d34, 0x59fed348e4ff48ed])
+ self.mul([0xe854b9b3cb2c5d3a, 0x4b162b7f4f444b7, 0xcaf7c223cc9ddd9e], [0x552110673eb6cc43, 0x5558506ae9b17552], [0x4d422377a13f4a4b], [0xfd59fb1fac55a3c8, 0x801a0be431f3a0da, 0x218c625d27341399, 0xc201d742b918329c])
+ self.mul([0x79747c835746e303, 0x86cec07d3a2f290a, 0xaf9b76b016a4f99d], [0x750dcf08da925b6a, 0x2e91971410e11d76], [0x3788ca0bbd938ddc], [0xd361abc48f8a6e25, 0x51cf2f4013dcbfaf, 0x3e89cba4424af54a, 0x8c54f998534ed75e])
+ self.mul([0x4c27cd32b635c9f9, 0x696565bb1370bf3e, 0x5e682abab623bf4f], [0x4e45ebcfc09a03fd, 0x6d629c601d2379a1], [0x1748ed661907a455], [0x78ae30f6f9f6214c, 0xbf0354b18380fb33, 0xeb50d6e38be3326, 0x8f17f4b28cb4a7af])
+ self.mul([0xb53221a0218ac003, 0x45d982da8ba5aafe, 0x66344728cafe217c], [0x5b0432eec48927d2, 0x38fd35cf68bc4c82], [0x406bcac93cb4d79a], [0x7955e8508259d0eb, 0xb1435941e61d135, 0xda5fb2f7d2e33309, 0x38104e797e0dd0f8])
+ self.mul([0xb265b5db413a80fb, 0xe3d05dafe2daf14d, 0xffd749ee20aceead], [0x33b5e98bd095d8cc, 0x466bd8cd9b135fad], [0x240907e4431d2283], [0x33d14106c18c23d9, 0x50a450a843e02df2, 0xafff3cc2a751950d, 0x978d8dedb7467de9])
+ self.mul([0xb5a672091528c655, 0x31855e490c4da8e8, 0xf67e02d0ba756c0d], [0xe566a05487c962c4, 0x412633ebc7323b34], [0xa2c6b61791c8abc4], [0xf52fa08baa85a670, 0xfee30e9352631c97, 0x79c3c425abd8757f, 0xcf33263b254af1a4])
+ self.mul([0x31fca9fee5838188, 0x91609717f6575aa9, 0x80b602211d9accc1], [0x4e1ae3b02cbbf8d3, 0x7ffa651f5f5d456a], [ 0xf403bea5eff66f2], [0x37ffe2392c901dda, 0x9f6e97019302fd1a, 0xcd82bdbb62c7494c, 0xc5f4f247fc65ccea])
+ self.mul([0x38c059f6caf6c947, 0x4490673272cef95c, 0xe68b8106ebd6516e], [0x2b700d9d59e9d938, 0xfd6f3a5e1d4da129], [ 0x9a126487687aaf0], [0x65f77791ea8ebc85, 0xb558d850b827f99c, 0xadb37363bd9692e2, 0x6c200d81829f389e])
+ self.mul([0x30338057daf93682, 0x752dff91e7e10cdd, 0x3b39a49b432c8624], [0xfe31d356a5fab122, 0xd54dd6b84233c086], [0x2fdc7afd7f6a1a25], [0xf78dab101d313c11, 0x11a9355f7a74312e, 0x4bb99e581d3a5fab, 0xdad6f9fa8f1536d8])
+ self.mul([0x57812732d31cdab8, 0xffa98cdab319c4e3, 0x4b9791091ba0b9ce], [0x44f9a18068839a9f, 0x61690c39e5a176c0], [0x1793a23cbe770536], [0x76b2eece4b9a36d5, 0xc9c03932a014b139, 0x7687832fd668d4f7, 0xddf526b8eebe4e80])
+ self.mul([0x91c5bb1e6f4076a7, 0x91fa174b99b01848, 0xda398854761b4685], [0x3c0c0484cfd6bd35, 0xf2372f6307e2518b], [0x22312fb29eba7198], [0xef90ee7bf5f54402, 0x2a5e81d09d29d38f, 0x96abe75ac38aa386, 0xea3c72aba6895f37])
+ self.mul([0x3893eed885b13141, 0x3ff851a42c4f3493, 0xdc408d8b4eae3576], [0x41e53c0784daaf4a, 0x2ac09d7b561c06b0], [ 0xe90393df7047822], [0x5dcd04d7aa62971d, 0x8a96bbc9ab3a32f2, 0x5c453e2f5e728a26, 0x505ac253a9ed8520])
+ self.mul([ 0x8a6d9ef024975b9, 0xd87b10a0b5ce1f47, 0x773fe43e4d5f5b9d], [0x6d097e0517af7ff9, 0xa59b29084c6dbc4f], [ 0x3af5ceab8b32c77], [0x21ad45dca7e16342, 0xcc08461c4bce4946, 0x7c8efdbf9d134a6b, 0xbf8a72c0858d9173])
+ self.mul([0xd5dd441bdbd4fdaa, 0x37e28c88c0c64fcf, 0x96cee138d44b9e89], [0x5c0d0bc71195ab10, 0x900fb9100c0313b5], [0x4ce66a8d4808934b], [0x37ae4f0061465284, 0xbae9d214496a594c, 0x39680538ec6ed715, 0x8cec66d0fdd641dd])
+ self.mul([0x9a772133120a10c8, 0x422eeacc83ae2215, 0xeb1a409cfaf5020e], [0xb9c0e195ec159e98, 0xe1c2c76ce6f70203], [0x70147873f84de154], [0x39e48a21ebf98afb, 0xf5f1be8ff314bea7, 0x4fd1b4fb4e66a891, 0x874ffdf26a65222a])
+ self.mul([0x34fe73655e1f8441, 0x15520437570fb2d7, 0xf012cd06cab7a6b3], [0xceb2946abc8146e4, 0x43a6a407a54fc7c9], [0x2ac9b8810150d05c], [0xf14c5dde8a165bab, 0x530b980c5527aad2, 0xb3b21e5a7a625d4c, 0xe4c669ecbd04078b])
+ self.mul([0xe4c7ded9cac5a791, 0x40cc64ecb5e47c78, 0x2f8437e8cca9cda], [0x745cb3b926aa378b, 0x1d17d261ddd2ae41], [0x67fd696bfdf68c93], [0x5ab1469fc8796feb, 0xd023fc52701860b5, 0xc32a27cddcdaeb31, 0x7349d10a52e1ff5a])
+ self.mul([0x9e9820673d2b823e, 0x16c8d6fed7ddf649, 0xaeb45e03875e9576], [0xc66a25ed30cc19c6, 0xd3dd3007dac7eaab], [0x7aeb6b8c31cedd70], [0x143fc7ecb0ebd88d, 0xc52b5442d96eec8f, 0x445a7d5e1a656fc2, 0x5ee9021e8b85b1d2])
+ self.mul([0x462f0a2e23f2b724, 0xa29edff9251ac2c9, 0x59efdf1441625dcb], [0x39da14962ad7f151, 0x8e92a9440c01aef0], [ 0xfdc42f7c96624a4], [0xe721ff8ab26e4b85, 0xe30f34996019908, 0x4ec83e553e325330, 0x9277b22209c2e850])
+ self.mul([0x60d95d18e77daa7d, 0x202c9e606f81bd5d, 0x8889d85073eacb67], [0xc91871bfcc7cbc21, 0x97e324031e308d88], [0x4c13e981c9b8390c], [0xaf632e4eab1fe1a3, 0x9e8fb1fddc0c50c, 0x154a8d716209dbc7, 0xefba58a71c13c9b8])
+ self.mul([0x3eb49f666e3110c4, 0x8092e9e192517aa0, 0x7b261879fa29855c], [0x8340b2cf8a5f6398, 0x447debf90a2c7754], [0x20264685b0c57fa3], [0x7a53edb6694ff0ef, 0xd3089c3b905bd224, 0x5ccd7dec02073503, 0x14578423e66d8630])
+ self.mul([0xdb531d78dd3e3340, 0x8b7bb2c57eb97dbe, 0x4eed45da39dc55eb], [0xfe65da3cef13e4de, 0x814b1d332065ab30], [0xd9f3ba01879a78e2], [0xc2b2aa9f960619c0, 0xe767a165beaa5b92, 0xedcc1a904706ea69, 0x33f3f90d4c6b1510])
+ self.mul([0x633af8c391cb0d49, 0xcc50413451831c0f, 0x5b723585359c8cd6], [0x3b56360d6382f890, 0x69f42f2e5b65b1ce], [0x1700021845573b74], [0xc4eb28db61a9ee47, 0x79b5d89cb44dd05f, 0x21267b35e8efc9cc, 0x6679908a03c74a34])
+ }
+
+ func test_mul_3_by_3() {
+ self.mul([0xe08f8a99c39d4a8c, 0x7891084f69197b15, 0xba39971aea618f09], [0x4eb86b94800ccd06, 0xb4f137a05277ee75, 0x44560107c6661716], [0x450d81c4ba5beb4c, 0x6be15fa6d3cc4a5c], [0x8dbb84bc47d0567a, 0xff74b4bb2b257fd, 0x28a55a6a9626e5f2, 0x6ec7311ddbd219c6])
+ self.mul([0x758fa322925da2e7, 0x1b5341ce4f88bfdf, 0xdb70f03bd5a7df6f], [0x59cc7be9680b4f2a, 0x1f7a353dea809ab1, 0xbfacbad1ea3f61b9], [0x293cd7143753d2d7, 0x16774d64ef007430], [0xb77f5ff8231111db, 0xb929fa64ac32cdc, 0x59b8e11846885f9f, 0x85a15d5c744a8637])
+ self.mul([0x5abf7b3c7b3dea66, 0xc98b021d08ab81a9, 0x75b750adc16c597d], [0x6ee6f33d87c6cd7b, 0x7c2af75f8d97e455, 0xe6b9246000d7d954], [0x2750253647078dab, 0x37abd1a4c6f2452a], [0xf9957e49f8453ce2, 0xb0449442bf35cece, 0x3e5bec84ce57e7e7, 0x840356d777635204])
+ self.mul([0x8e0022f113a02a74, 0xff68e7dc5c4dbae9, 0x6204cded2959fc6a], [0x4159384bd40b7553, 0x46c9543eca995dcf, 0xd925e82be3460dc9], [0x243f86257318ee67, 0xa6a02a0dd6e5fe4a], [0x91d04f2586994205, 0xc851ceb3ea225a2c, 0x5f69d663b5d20c1e, 0xa2ee498a0c74913a])
+ self.mul([0x73de4b607c731917, 0x47903a59ddb642e8, 0xac4c00efb2733224], [0xc858e0e955bb05a4, 0x89527a5ab0c89769, 0x63f4a02ca96cf62c], [0x5aade51968792fd6, 0xb375128a6503984c], [0x4fce97062679dd0d, 0x84e0bf6ff393d1ee, 0x9746efbbd79759eb, 0xa956f190492b3630])
+ self.mul([0x28c9ba9e6730f776, 0xcc9c1eeeacb4cc22, 0x4ac5e9777ca4e81c], [0x7b3fee7df4200a32, 0x1b887ec634106e88, 0xc78d99c00007cfb4], [0x13a31c4ea574aff1, 0xebfdf8449029969], [0xc2f254f2996f2fe1, 0x2d880827c589a331, 0x14d40c744fe1ff39, 0xa306ff4f5465d7b0])
+ self.mul([0x598be277aee10cca, 0x921eb006a8ee3f22, 0x683a037c7b838940], [0x63a1ea746d66e321, 0x742b557526e209c1, 0x8a802fcbc8bd777], [0x22d9bb904c8e942c, 0x44331557aeac346b], [0x11a2d10af482664c, 0x42f84a02c445bac9, 0x2c27477ecd2bbbf3, 0x29be6ecf68298cc0])
+ self.mul([ 0x8a044eea2818a29, 0xb2cc5c3899429f95, 0x95b9dc8e06db18f8], [0x76de7a697c1b2297, 0xa0eb093c2eb60004, 0xcaac5975dd9bf572], [ 0x4015ee1b49d2ccc, 0xac8b1d7ab370e763], [0x468975a3ed604d12, 0x6963219dbe76482, 0x3f67fee77c6961ea, 0x7732105cf29e7670])
+ self.mul([0x68bda332e7b3205b, 0xfa349e7d3994a003, 0xdce16c9d73194324], [0xa5138311f7b76306, 0xb953d72f388944e7, 0xf1473f7253316320], [0x438a35e3509289a2, 0x98df03b9e0d38e2b], [0x40cef7143ab66901, 0xaecd31207120052f, 0xae79a48f1cd7d366, 0x9b6471d3ae035080])
+ self.mul([0x2134b3a526ef5723, 0x1888a52c89ddf08c, 0xdb9848d050aa6126], [0x4b569a2be6259479, 0x81f5a7c14f80abe, 0x35362faeb6fffb31], [ 0x9c5ac5521a8f25e, 0x9544c9214ae7393d], [0x8aaa97caeaf6e29d, 0x22d2c249c2cf4bbc, 0xe2eda7da0d55c360, 0x700bab9246b6da46])
+ self.mul([0xc0e140145e32dfdd, 0x2fd6b731f5dcf34, 0x8b85a4d44c746539], [0x7a70cd6ddee2b4e9, 0x1e4fafb60ac523, 0x9cce6dbcef7aca50], [0x5c4055dce5f431c6, 0x46df22d347f84cec], [0x3f28798eae75a9d2, 0x241cb2306451475a, 0xa5c99f307ee510ae, 0xb2d1bb8030689bd0])
+ self.mul([0xd14840279fa06901, 0x1a63b2ade39c11e8, 0x68ec412ce7fbc4b5], [0x446a769b5de559b3, 0x2549189e510da2cf, 0xe665bafa9912d078], [0x37ee39eb67e28e25, 0xb6ba646a09a9b006], [0x26c897e17359b9b4, 0x5397bf08d0c37bcb, 0x4cf441edff376593, 0x41b36c8f4f9144d8])
+ self.mul([0xd13c2bbb7a16ed19, 0x621b9610ed6a792d, 0xb7362452f244b09e], [0xcaaf1c51a280ce82, 0x7b04f4ce779c3dad, 0x545dd6d73ad29431], [0xa5a899c921223ef9, 0xd03e3604ebb5743a], [0x3c3ab5fa834f46ad, 0xc0adabb058eaa794, 0x94a4494e75b1942c, 0xda059cfec2dd263e])
+ self.mul([0xeb1d3708def6d2a2, 0x3fbee6be70e801c2, 0x23653781ed84dcec], [0x25f959f11704c9e5, 0x330b9face370d745, 0x4d3491f3e8ca4ee7], [0x22e03af963a17535, 0x2102a494826a84a6], [0xf2f19209f92bf574, 0xae138bbf9f1c126, 0x546ea992b319a20a, 0xe533dfac006b40f4])
+ self.mul([0x7118372871a37413, 0x5a9600df6008aa70, 0xc4fe71cf5d2a419c], [0x75794df49e0cd143, 0x668fa6e65a60e562, 0xe91e4b3a187d6a06], [0x33e5a817e78bc2a9, 0x46f699e3ec6214c2], [0x364f3641e1246cef, 0x6d8dd39a33466147, 0x4bb7ea9cac24ec8, 0x25268c90575421a8])
+ self.mul([0xc2cfbbd6bfd306cd, 0x89666cd8f88531c0, 0x715396ab6274bbd9], [0x87b4d7a944c33b5d, 0xaf286c4e019c0ec8, 0x25c56cc69e030b0], [0x67452a3b985f4424, 0x5394668ded6164a8], [0x5c8bd4469a829fb6, 0xc27800a1d041da48, 0x9897979eca0f4a16, 0x972c5665f259d530])
+ self.mul([0x9cf8bbf30fa1ce1c, 0xbf9533c44778f93d, 0x76a239e79a0ca24f], [0x48bc755492db12aa, 0x3cf125ee2ddc9ae6, 0x5142b4ef85bd3ab5], [0x2c998377ec74ee1c, 0xcee42410a5ab935d], [0xcaac976b10a6b2ea, 0x5bbd75f1a3c53c7b, 0xf219c64b4982fa50, 0x401fc90ea707a7db])
+ self.mul([0x8a6787bbb61a4130, 0xef79d6da3d944cbc, 0xc89c7e65ea9d9ff9], [0xcbcc1ee1b49861ac, 0x1736871547f17864, 0xe3db0cb18a00518f], [0x6e2e73d42b8567a6, 0xb9a42a2508b46f1b], [0x47d6f9e9ac3e943b, 0xcde5a45c66b0dbc6, 0xfff5769cd194cf7c, 0xc360198f27aa2517])
+ self.mul([0xcb7f2a6dd41678a5, 0xdee3417f60f6ca3b, 0x8ba47d92ce37b487], [0x32da1cb640bc2140, 0x1e2ace219f7d8ebb, 0xa5dbd475b1982514], [0x286c37665d748267, 0x59df2ac4d8075fd6], [ 0x48763d5df79bce7, 0x1b1263fe02729d8b, 0xe0454d2e1ad414d0, 0x923149ddb0999d8c])
+ self.mul([0x877d2aa0b0b7c1ee, 0x82dc8fad26857b7, 0x96cd651fb327bfbc], [0xc638263bcdbcf3ad, 0x403f385ecca5fe44, 0x555eba020d0c0ad1], [0x68e88695d6e4b17a, 0x41a3e67bbecc678], [0xcbe6d030b40165ed, 0x6f611e338dcf7c39, 0x3197abf2c60b8c25, 0x97de4df259c0e07c])
+ self.mul([0xd2126c8d651ea794, 0x538f7c421e741369, 0x966cce98ccc60dc6], [0xe98b0b6852965602, 0xcef01a401f27164f, 0x9a09d411266c1afe], [0xbfa4de2a07ba3f19, 0xc6e7afba9594d56f], [0x42c602c827e89936, 0x9efd712b6ae1568, 0x5c542b536e5975af, 0x58512c267d6fc674])
+ self.mul([0xdb45020b41450ae9, 0x759453401aaa6cae, 0x4d16302268a93415], [0xdfb0eb3e8c4c862e, 0x765213014befe67a, 0x11c48f68bcfc6650], [0xbf98a5b7215a2025, 0xbb837df19086405d], [0x3c7ddea6a87d440a, 0x482e51079bafed9a, 0xb393de05bdfa6ad3, 0xe2c0eccad04ca490])
+ self.mul([0xe503bba858f30684, 0x30b69307e2448c79, 0x5349834647af1f06], [0xbbbb298c04dccd21, 0x389266f2ba5f8838, 0xa636b680b9ef1fdd], [0xa7f128f8e864ab3d, 0x7e84b50442d5f8ae], [0x13b68efc2edb585c, 0xf5cd41f2cbb1f0f2, 0xe457ffe0360d17ca, 0xeca817436389822e])
+ self.mul([0x3d394e0baddffe6e, 0x41f826db1702bcff, 0x884ebbaf65b5f5f9], [0xa9f8430a4ae5add9, 0x557d580343f27427, 0x64de929db9179711], [0x28a63411c6ace951, 0x932bdbe17cfd1063], [0x33eeed5b9f0a452a, 0xe98c056a7b335f24, 0x3ebfc61a30d72275, 0xd3ff69731f8a3489])
+ self.mul([0x9ffb37dfa81edbaf, 0xe6c83811ddf8a9c7, 0xd8d2a3390f1eb61d], [0xaea91835f7e9e071, 0x19418144ca531e7b, 0x2f07dd996301bf87], [0x6d266bf32e180992, 0x6d4d083e31845bf8], [0xb17a9d64fcd9dfb6, 0x274919db523485b, 0x3dd5c18daf10b377, 0xd4a753fd02eac4b])
+ self.mul([0xabbda95e068f14c1, 0x4f8d4fe08e67e06f, 0xe6875366e2eab6f0], [0xfbc2ebe14c77ad03, 0x33bde8d3e3f05003, 0xfd4c0e7aa9939fa1], [0xa8e5b907c92704f3, 0x5557c57ff2f3762a], [0x8bcb1cd6330c94aa, 0x3253e98ad868af77, 0xb2029434d9f0350c, 0x50e5e88ff90c1cf0])
+ self.mul([0x8beafca5f0ec9954, 0x2d32819eb03eaabb, 0xf4d59994ce3c0430], [0x1f73e96a93c4b2d9, 0xc0797c7cc24dec72, 0x64096cea9aa3434f], [0x1130cebab6baf694, 0x4b410456779ab618], [ 0xf5538e16bee9578, 0xcb02b77b4ef94e71, 0xf6a93629ccd53b9d, 0x7d3bd580e42ddad0])
+ self.mul([0xa52e420e0cc37fe1, 0xcce57900440ec14b, 0x4b04bf337c3b6069], [0x5ca60aaf2be14f37, 0x6b98ecd5789dd2f2, 0x899f23c921c585be], [0x3bc7c2a0b73662b1, 0xe1ee28cb7572aa0d], [0x6a4cce08ff5ab059, 0xc957d8659a5ca610, 0xacd76d04f9ec494b, 0xa581f650c6f51aee])
+ self.mul([0x2cf409c40f196d2f, 0x8154248e7db751a8, 0x2ddee2940231a767], [0x523f13f0cea439aa, 0x210b9793ddf667f3, 0x53b27b79b5f4da94], [ 0xe713eaf99e1c77a, 0x5cd76e9e97de44b1], [0x29e2f78cf73e1892, 0xef59da5736249799, 0x8cb0f19baa8ae781, 0x9bf0d6cdee6e7d8c])
+ self.mul([0x8bf20b16b058556f, 0x35496d41b589beaf, 0x66b066be85aed775], [0x7e7c0da233307d5f, 0x12d57b4d2d513a8b, 0xb29e5b288668acc2], [0x4524f2267f7fca46, 0xf43f3d19c355f3c9], [0xdc15390fca3dca7c, 0x6907059b9b699d72, 0xe706f9e0f7e6c0e5, 0x2c33f3498cc9e2aa])
+ self.mul([0xda3baed9957c2eaa, 0x585a7480d7c34487, 0x333cf8eac4428e1], [0xdeff8fb3a7e7897f, 0xfb3dc821708ade7c, 0xe693128d5dd9abb3], [0xbe199d9457e6b3ef, 0xd9677f4b10582077], [0xccc766679d92c7fd, 0x235d5fd446fa2dc7, 0x9122f8913a7f0f67, 0xe9008c615eafe053])
+ self.mul([0xb2e004bf7abf5448, 0x49c53098a17b7455, 0xe07a28c60c36d283], [0x3e020f6f35eb436d, 0x1f1daf0490f2dbd7, 0xbb9df77988d39788], [0x2b53b1af3e4f56dc, 0x79e167f49c6244c5], [0xc5adad874b1b862e, 0xb49f13a464d27764, 0x826929d498aa212e, 0x9708905aed441a98])
+ self.mul([0x9e87be85dfb6f820, 0x4d3a9852a7e513de, 0x79bb02e0fe1b63cb], [0x6e362ff3a5996972, 0x7456484b4f7ada68, 0xd6a6abd269ae10c3], [0x443fe23183beba95, 0xdf114000f968c62c], [0x90e4e6d638db42d0, 0xe68ed9b18d9deb17, 0xb0c114e6705e354f, 0xcc89a9555c13b3a1])
+ self.mul([0xad30f507b01fb8da, 0x577f3e9f2df6346f, 0xe67abd4af6fc364], [0x63737702c86ee5d4, 0x277eeaab488d8a0d, 0x523c32ac9deb44e], [0x43480c43af72259e, 0x367206e7288f7c57], [0x10391c9351489244, 0x826a053284eeaf37, 0xa792b7e4a8fb257b, 0xdd6e03e4fe27d878])
+ self.mul([0x311591dc9961f3cb, 0x344724fc40f67c39, 0x6a1df7c09d4c07ee], [0x8f77b7adf6a60b47, 0xa29ffb0b37ff713e, 0x837f547123f76c97], [0x1b8200b8cd5bd7bf, 0xbbfee4d0e0753aaa], [0xafb2511fb9f0f254, 0x82891f8eb46773b2, 0x8450ff8dd8407478, 0xb6c726780bd31562])
+ self.mul([0x5eab91ec36139e6c, 0x65eb0a6948ed443b, 0xf0f640f9ab1b6e97], [0xf0d66b3540e05178, 0x2030751897451121, 0x37f8e5b5f6222064], [0x591023ded5a86228, 0xe52461996acf06e6], [0xb3da39610418a0bb, 0x969d8059a1514b45, 0xe982bf18cb28ff0f, 0x8b7ff0970e9812fc])
+ self.mul([0x16c678e4925328b0, 0x59756e621845b370, 0x341a874667c082b9], [0xed1daab9fdcaffed, 0x1be6510fcca283bf, 0xd3c09f657a7606f9], [0x15186197a5a4eb49, 0xe98606ce8fb36a7e], [0x2e2e452c6de32f48, 0xf6015fd7e089763c, 0x6cbbb51901f29a6c, 0x3ac344eed8957bf1])
+ self.mul([0x1b71efbc949814f6, 0xef02b2c57d179ba4, 0xb5de8a5e54956a8a], [0x49c1cf5c5dd773d8, 0xe4dd9c4460e43dc8, 0x7b1b52422d41dc04], [ 0x7e8447d8b6685c1, 0xe0a66ed9d9e9d1d5], [0x287cee87a78d4424, 0x58287e21317211a3, 0xa4cebf251f38fdde, 0x268a36808ee4228])
+ self.mul([ 0x2f4c5fb9562f7ac, 0xbb5a4f1c0f2893e3, 0xccecc65dd9f83f48], [0x353f8c8b2187bb70, 0x19ff32d7bcf8c735, 0xdc839925e5e7e5], [ 0x9d68d9466774b1, 0xe06a85e4fe68e96e], [ 0xd4d5816f680959d, 0x1a2a1c6751e2650c, 0xee453cc7255908, 0xa8e0a7e0ff929368])
+ self.mul([0x4bc595d9591a59a0, 0x2d2b8240591f26f6, 0x27c469dd55499c1c], [0x95c9d38e75125317, 0xe8806370aa41c020, 0x991a0c5045b5a232], [0x2c55bcf82d4548d3, 0xbfb2d34e586d2666], [0x112bf0a26dcb044d, 0xa74293897dd64cd9, 0x86209abcc7af1016, 0x41fefa1228f63578])
+ self.mul([0x49f9bf59e5f78491, 0x3332402235d04674, 0x23819a28b45b0dab], [0xff3b4bf415b1c598, 0xc552397f5b862a60, 0x9b28865883515fe2], [0x49c0e81c5928209f, 0xe5cacb12d7749b41], [0xd9721abc4a679776, 0xc16da3a711f3819b, 0xf0f00f6ccea0a39f, 0x5ff71072d68f85f6])
+ self.mul([0x35e44fce06f1b6f7, 0x4e2061b8fbd085f, 0x43abb64450bc0a37], [0x4fe4407073e68525, 0x5d7aff74773806d0, 0xa6336eb8d8c796fa], [0x10d1818867df499d, 0x615c20cb552f0a64], [0x599fd0c83085071f, 0x7087a34bd657e86, 0x8e2f4c4ada687183, 0x8c356a575e5f33b6])
+ self.mul([0x5ac77d082955e512, 0xcce8105170c418f2, 0xc57e6aeba43c3bc], [0x299206954585e41f, 0x72e4f8a1e63a1f8f, 0xd319589cb1578374], [ 0xebdbb2138f78aa0, 0xb489dc644a460e04], [0x8f6c263520f70035, 0xb6cb890c3022a71b, 0x22ac5b8e0f02e9d3, 0xa4f9fe6994c1e530])
+ self.mul([0x80fb3e56caf2814f, 0x4013a30d0debdf99, 0xb07bce8f25856536], [0xe9e84d2c21cab2d2, 0xfa8dc0c89bf66d06, 0x2486696df0ca99ed], [0x75d9b64f4b53f8cd, 0x820aa9cf832a31be], [0xfc0ebf369834fd34, 0xa7efc2bfe3bc08f, 0x216014cf2e7a9bc2, 0xd3c5b014f297f8fe])
+ self.mul([0x3290d824859332ed, 0xf3156fa2593fbef4, 0xf15f2b6e93c69751], [0x5f3a19f02e116e78, 0x451a958741ba0654, 0x87791df807eb9ec], [0x12cf3a261bd78ecf, 0x59efa20b57247fbe], [0x86fa9400a2f9a5ab, 0x333d55c38fa6969, 0xc02fdcdd42165870, 0x8c8aab0b84b07ac])
+ self.mul([0x95b43927393ef729, 0x4d9105c52faf330f, 0x8069c5786d1bd929], [0x7f6d25ebda20937a, 0x4ba04a63cc7011a3, 0xcc9792cf7687c73a], [0x4a843c43c35b4424, 0xed2be5879dc68748], [0x557e5939f0e147c0, 0x7f5bf981ed28492a, 0x4fd32332a9f6fc50, 0xd3d0b408c8bd124a])
+ self.mul([0x37fd83839db396c4, 0x48b6eed6005db80a, 0x768de12ad6a6a3d3], [0xefff6fe27514fd29, 0x66e42a09399f8bd2, 0xbdd811e1e75abdab], [0x347d8bc653c45f7e, 0x8ac0de409d097ad6], [0x2b7204c7721c8f98, 0xf1f66b88c9c00817, 0xc9bc37551a19331d, 0x7b20dbf2657034f1])
+ self.mul([0x1de9b9c12d568031, 0xf8641f7e8ccd95bf, 0x925a77b611cbb283], [0x9cd28e3949de6cf9, 0x50d3eec433128958, 0x881dbd70cd549af4], [0x1253078a6ecd0d9f, 0x9750fd687dc0a745], [0x9439749a19adddd7, 0x9913f0eaf4b7c0b4, 0x400071b14ce3ede9, 0xfafb6556f984f2dc])
+ self.mul([0xba64bb1b8837a7b7, 0x403de1da114810dd, 0x9ebf6312183af99a], [0x2ead373d8aed9bad, 0xd2f39bdb93559d2e, 0xf8e4bb1431c86aa], [0x21fc37e9d76fdb0a, 0x4b8c177744c948f1], [0x57302d94ba27b72f, 0xc6cf756d64dfec8f, 0x1a834f9db715a5be, 0xac9809f390a85c44])
+ self.mul([0xd6dc6e483f21c3de, 0xf7bb082ab60cd02c, 0xe9ab9318b44250a2], [0x3f713931037ec54a, 0x980eaef9eac78b6, 0xad554ccf919b6851], [0x353f4670ad1b5a5c, 0xd351680eb585753d], [0x9bc862dd3fcbc683, 0xfbeeab1121cd28c0, 0x86da2ad31a60fa82, 0x627392dc8dd35342])
+ self.mul([0x2e4a99007db54f66, 0x1b49189b7c4a4af3, 0xc74cd740d6cb9cf8], [0xd4cd99ccdb74cfdc, 0xc9858643771a6c9d, 0xbb1eb73bfe0e2377], [0x267af4408e10f7bd, 0xaa5257e5fb1eb389], [ 0xbda53aa0a991567, 0x7d41017d023878bf, 0x9cadf38635381071, 0xdc02268a54abdf48])
+ self.mul([0x2b9eeb7e3a37c7de, 0x7544ab917e365851, 0xcce9990b99b9006b], [0xe0a124a7e85a92fb, 0xe612cfdffc008253, 0xb3ed06ec00d99536], [0x2646833f82b43fd3, 0xe97863cbc1fe8a47], [0x5c99fe8eb3bf3292, 0x359d987f6685bb77, 0xdca3bd24688f7015, 0x2acd3b6074f75d92])
+ self.mul([0xfe68e2a12f2f4454, 0x9535f8452af59c87, 0x1d9543b057313be6], [0xd7a59bf52fdeb2a3, 0xb345904e3a548214, 0xc8a62b37f5e63c89], [0xd64eaaec9baf29c5, 0x96658ab2cdd24c29], [ 0x8d8bb51929f9527, 0xe5a1bcba4f05f737, 0xca73131428778158, 0xec6682c72206f616])
+ self.mul([0xf2dad6c57ed5810d, 0xa110be402a489ac6, 0x252cd3305e30001b], [0x48713d287d23a045, 0x67c4abaaa0197a12, 0x4338a19e05f859], [0x44b8f904e6ee4d72, 0xe703bfed0ac717de], [0x13bfb30fcdc4de54, 0xde448c7680c4233e, 0xe5db8da9311a139a, 0x1686b70ae9513163])
+ self.mul([0xa1a12a9a8027b02f, 0x76e614e7f47a129b, 0xbca4d17d04e67f04], [0x65207627ddf08782, 0x5ae1a42c8d42c924, 0xe87e2389c1304c27], [0x3fd9148dbd306082, 0x2d43feab965e3caa], [0xbef7b70a20832b29, 0x513b892957e5b8, 0x60a29c6fe4883342, 0x7a1f3d9e0192899c])
+ self.mul([0xb910d2b1694ad167, 0x904337883411d525, 0x9678c32ace4a6736], [0xad74edd55ea27ff5, 0x3b328193734b1584, 0x324ab767bf7619c3], [0x7d64e5f02f027803, 0xd7e10b7c0054ba31], [0xad9e31b68c884470, 0x25f5a7e0688d7880, 0xc5d118f54e686bcc, 0xe00391c743a4e422])
+ self.mul([0x313788cc6e11a3ca, 0x26a36cb679151946, 0x65915d5a80ae640e], [0x4a0a7a74481cdbce, 0x29d77943e956bac, 0xd2cc00605630efc9], [ 0xe3c11414205f9ed, 0xafa5f9989f3ce74a], [0xcb80d88965bdaaa2, 0x26e16cae1c5f9208, 0x117731fdd8cf2019, 0xd60a05c14ef5a0fe])
+ self.mul([0x2d934abf8e8ac3ee, 0x606cd87cc6852a80, 0xc2f3e1d2c23637f4], [0xaa634535405b50d0, 0x5d628bd182f19fd2, 0x379af0f38dfff309], [0x1e557beb4ad57548, 0x9024641ec70ba6d8], [0x502d9e7fcd0930e4, 0x35c27184fa7b6e2e, 0xa7f18c45074f19cf, 0xa2892c316b109394])
+ self.mul([0xfabba825634cf98e, 0xe81432afd13555bb, 0x78c5cacffbda06b6], [0x1ae86a196da5d06f, 0xdeb99a1594c97737, 0xa5c4b34f9c73c79e], [0x1a5ab10ec94f0390, 0x946f7e9b1201de1e], [0xe8c628b7b847950b, 0xd4f869b298cc2605, 0x83b008b2da4d4a9, 0xbff32c55d7899e54])
+ self.mul([0xf43c83cd000c041b, 0xe8480bc1a9079b91, 0xad92ca56acfd5201], [0xf4f6506bb3a438e6, 0xdd2e2f7b50ad1d09, 0x35c4d44b12e2da6e], [0xe9b4ac7fb4e7a35f, 0x97184f67b618809b], [0x97bec49497ff53df, 0xc17ccd87b51466cc, 0x502cd71782b65d4, 0xc1f3223f8390166e])
+ self.mul([0x382a879cb810ebf3, 0x1a214f3e007b4718, 0x7f5eaa97a2b334db], [0x9db8668d69b99c58, 0x47c86fe44f401a8c, 0xbe93a45ad7230d0d], [0x229a8a3c8e2dfa2e, 0x5dd7df46645381f6], [0xfa0fef2cc2cfc23d, 0xbb20a107c377c39f, 0x6ce98f8679b4775c, 0xd775fdd883b9ce1f])
+ self.mul([0x5be959ed50a25db5, 0xcdccefbfec467aa9, 0xa7e92f6f1f990760], [0x50d54690ad7f0607, 0x56d993bdc5c76751, 0xe5d2f6e8b70a0e53], [0x1d057e97bbca9a9d, 0xa06cf448b16f1553], [0x68e6c7d9c41d62a4, 0x42da22b1d7d0f01c, 0xc337f8c8438dd5c7, 0x17a5040186c4a420])
+ self.mul([0xd63978184eb687d2, 0x14431fff27992e76, 0x7621e6b165e1e95f], [0xf0987226cf529835, 0x7bc72e8524fe93ef, 0x7a85e4513e1697b6], [0xc955723c29ba1841, 0x8f86106bee0ce089], [0x88c2d425894ae9f4, 0xcf861bf1986fbee, 0x4368e4dbe62d45d3, 0xb9c69034bf6cf28a])
+ self.mul([ 0x744ad99e91ee258, 0x455a5cba49207043, 0x3aa9457bc462d8b0], [0xa04de5f6761ca2f5, 0x101a6680207a6f54, 0x2f218a25ba4d7baa], [ 0x48d22afd7a26358, 0x3d601d42238f850c], [0x2547484013538fcc, 0x5046b2289a8377a0, 0x6432a108ba841e41, 0x57cb026f4b074e0])
+ self.mul([0x9e8fdd870bd681d2, 0xc869f25ce15852c0, 0x5693033b111e4b6e], [0xb5e3a0e1a2fc2fe8, 0xc40f4d18997a7f14, 0x86aa68491422d3c7], [0x70a8b4d795f78190, 0xba30087a1cfb2ca2], [ 0x9947cc8dd9fec52, 0x8a5a4dc4f4f715e8, 0x3857ef6683cc71a3, 0x5e74084ee3544c82])
+ self.mul([0x1e33841b4b306f49, 0x3661414d6fae52c3, 0xc120a6769f40b9a7], [0xc26ca83b88400a40, 0x97612d8079aaeada, 0x6c7cf9d376eaf49e], [0x16efdbb13f22b4ab, 0xb3f4cee05c3e740c], [0x33a9dd798a615485, 0xac86e96f8146697e, 0xb04831c6919b0204, 0xbe75a761a78bc112])
+ self.mul([0x8fe5113192c20040, 0x6334a6d696760776, 0x2e98161b7fda95e1], [0xe9478410752766a9, 0x54fca693c9f39a, 0xf780343b77a721eb], [0x831faf69405abf43, 0x6a498bac55e460be], [0x93b37378e242c987, 0xc57b5e9c730e6766, 0xa51d9168a1226b8b, 0x7a2718d7e7c0968b])
+ self.mul([0xf2b1fc3c2f25b408, 0x32eb84201c69d883, 0xcf0ef1b0c37b1519], [0x8efdf0aff2581a82, 0xae0640fb267fb88b, 0xe02807de648ae84d], [0x878f77fd53852238, 0x9c23ab19d0443339], [0x5671675d656f0858, 0xcc78e67aa2126d93, 0x718ac200da9e1ea8, 0x366452977a9e0085])
+ self.mul([0xaae8e7ddcf26d834, 0x824e6df90055850a, 0x123d7d3b90e47ae2], [0x7dd361361ff3d356, 0x73c5f00e529a936e, 0xd81e4e542464d30d], [0x5400d814cc48a51c, 0xe34b04bf997bf60e], [0xfc1724f858e13163, 0x8e837cd34b025631, 0x424aabba4fc0676f, 0x25e15d22752a837a])
+ self.mul([0x76d145f955b2f4bf, 0x8158d3045110114, 0xce72d2b274d7963a], [0xe04f573f120daf04, 0xc575dbfd05c56319, 0xf5ddf5d893b814a5], [0x681bf04d27970da3, 0xf1adb851f73fb656], [0x14b0ffe7cab06781, 0x330f70f8b1cf8790, 0xdd94e904d8bb7eff, 0xc91c74d6e605b62])
+ self.mul([0xab621321335d0758, 0x45326444f5329a74, 0x4d6435aeeda2df27], [0xaa5d05f5035bac16, 0x3559010b82eb76f1, 0x83cdd5d9db8a687], [0x720d6751f0a6e9be, 0x35978afe9a4a9ec2], [0xa26f1d83fe38b574, 0x2839cd89589b6792, 0xc7b16766910e4d05, 0x1c13296d3c9ef791])
+ self.mul([0x4a30151c650e4f55, 0xcadf97383e32f02a, 0xbbf0fd0860c01ee7], [0xce69bbf75128fea3, 0xdb476a9eeec6529, 0x3d2bb877f0c66582], [0x3bd1552e4d4c2ae8, 0xc6240450208a953b], [0xc8bcf66a9cf52ba8, 0xcd0b02f163a62633, 0x15ddb3391c21dd85, 0x5eb5235e646ad44e])
+ self.mul([0x45cb3d7a401ef885, 0x1fd6c2cfd8177aa1, 0xdb86ae9561f2ed31], [0xcfd23faa93ae130f, 0x27dd77a13a9f7ea3, 0x13c17c51a8e43e74], [0x38a8a8c9cd7cb6f4, 0xe8ecf30b677e4297], [0x3bbad1f808a593ed, 0x13f92c26e52e0ee4, 0xa58daeb3cb7a47af, 0xba53b9ed9f295834])
+ self.mul([0xfa5689c2583baf4d, 0xc795c332f14be624, 0xce087cecd45b9576], [0xc0afc61b0a079bcd, 0xc57ddd1b285a8435, 0x4856e15f03d2e77b], [0xbc6cca334d82be1f, 0x9d54ce5b3bbafe48], [0xb69e5fd5d0091e40, 0x1b6d9c24d07cd0b2, 0xde60836b4e7c4ac8, 0x998e2c13a8aa49b2])
+ self.mul([0xc8481f939a2f87fe, 0xdfacebd13324cc43, 0xdf7e1a544abcfba], [0xccc890578a7b7a69, 0xe2b5ea448a9a67c4, 0x2feb90bea9402c0c], [0xa036626f58cb92d7, 0x6f0b1dc306e0fb1d], [0xf23bc6df0c3ec499, 0x1163de60a4061f24, 0x5b0e1d24430c2006, 0x38285eae7841b4b8])
+ self.mul([0xaf2c36442099701c, 0x52b893c2eec392de, 0x531b748b42a5767e], [0x4318950b11e3d128, 0x815b728bb8418372, 0x99e79abf638443fa], [0x2de9645539a5058e, 0x1573698a6bb3f046], [0x9125039dda4952de, 0xceade4e0b79c84b8, 0x13d73c7ff8991450, 0xc751d0963690b10c])
+ self.mul([0x46ccd1765b202c65, 0x5988ff6444b85d9, 0xc2b4924a1225093b], [0x7dbba5c0f592c041, 0xf28139727d36d130, 0xb217627c2db6fb26], [0x22c5e7bb2c7c421f, 0x6b260e71e723d461], [0xe619a198dfc61c6b, 0xb12200ea749a973c, 0x2eb2f4fc192608f2, 0xc9dbce50f07e37c2])
+ self.mul([0x1ac1ba4e19b0a08a, 0x244ad0ca11cf9280, 0xe824325cdf48a860], [0xa02ecf0922be19a2, 0x666452c4e781703d, 0x5dd7b3112b3c0e09], [0x10bdf8e3e42d4ecc, 0x7264590a1ca20608], [0xf32c51f6c6d910a3, 0x2eed43fa2f5723ad, 0x336c6c530990286, 0x757ab12969432b60])
+ self.mul([0x7f61f597ce558ac1, 0x1affa99ba61291ed, 0x9b74524e0ab011e4], [0x9bb6704a6a317d04, 0x4e239a917bb6af17, 0xf6ca1b80512bc92c], [0x4d7b1737667513a0, 0x78e3052a22f2966a], [0x78b8e21f8ed28615, 0xa6df06d7723c39ca, 0xf556d2bd55b3083a, 0xb0eeeb0a399b1730])
+ self.mul([0x51623b0d55594727, 0x62ad00367fef6916, 0x3de2161a1e11a066], [ 0x974c99c8245ed7a, 0xb340269b42c6b4a7, 0xf723be06566f611f], [ 0x30194ae1bae610d, 0x5dfcfb8f81681e24], [0x15e5bb7b77a08246, 0xa527b89fde6eb19f, 0xd1f3fbcb13b24f3b, 0xa594fe792223125a])
+ self.mul([0x8013a19f5750a874, 0xc087feebd00c8eff, 0x31618cb8a34e34fe], [0x5d85d7b6fcbb2adb, 0x6b23d99c86251188, 0x6bba6d5eca828b96], [0x2eca17d5e3a35a97, 0xa7acf872c0abba59], [0x89edb7cdf275fbf5, 0xb67f25c012f6fce6, 0x6332ef86587a0b26, 0xfb02f3a67b94f6d4])
+ self.mul([ 0x88f33ae8aa9ab87, 0x53f0bb1d8cc15034, 0x1a376d018cdf730f], [0xe979362d3c4bfb13, 0x9d4d292890af7e17, 0xdc7d9a3ab9ac75c0], [ 0x7ce638901caf8b4, 0x84903c8b5dfb3cde], [0x1183bb5faf654d2c, 0x5e56271893b2c4fb, 0xcb6ffbf00580cb7f, 0xc265ae38ec402640])
+ self.mul([0x9f6a68f736290059, 0x7195d54b7f2ec034, 0x48e70fb7b284b13c], [0xfa923400402202d5, 0xf85429c39e70265, 0x6783ad746066dcc0], [0x9c08f5930d22ecdd, 0x20663260558bd789], [0xc8ccb2dca17c38e2, 0xc86ca6bf6efcfe32, 0x1a1f7dc5a36f2c94, 0xca8a65b509bc7d00])
+ self.mul([0x3e3443b16c8273cf, 0xf8834b793d34f52c, 0x28a06a20d9cee5bd], [0x65cb4d31a59510fb, 0x378971e1b435cade, 0xa2db06c557211606], [0x18bc04e87619bde8, 0xf4efe7f0fd58e215], [0x2130055c09356e71, 0x84bb1645050b8b93, 0x402be967c98058ee, 0x2d6aebacbaf4a06e])
+ self.mul([0xb30f915eb8cccdc2, 0x874835623568dc20, 0x5b57dd9fad4404d9], [0xb80e3df76ea6bcf3, 0xb0ebc34eb15cdf13, 0x37d58687458099d3], [0x80bd26adcf0f743d, 0x59d2aec8875b96a], [0xbbc97090ad1e8bbe, 0x688334d941268320, 0x955c2aeb3a76bd91, 0x475f34e95f75afdb])
+ self.mul([0xe61c38a487b3e63f, 0x34848aedfd9d5d98, 0xeb9c110686b532fd], [0xf3486e322dcb1189, 0x4855136199fc98d6, 0x8611729349951a01], [0xdaade4c156192eb1, 0xaae696f95a46b450], [0x35de8fd9a7b73f2b, 0x468c67e728469a47, 0x36f07b1dfc3ed92a, 0x661abefcc023e4fd])
+ self.mul([ 0xc314a67518ecba9, 0x2dbfacddb9d7ea9f, 0x7e04781fcb181fea], [0xe0b6419af160e011, 0xd9814fcd71e3e39f, 0xf58b5101d775954c], [ 0xab3cf4531daefc8, 0x492d021f29b0b521], [0x9a5363f3e74e8da8, 0x7941c4fa53a9b7bf, 0xbb6d074cb2d108fc, 0x5096696371aeab78])
+ self.mul([0x3278f6191daf7866, 0x3b97ab17a88cd4c6, 0xa9ab5a7783856ac1], [0x819c5e30d9492a38, 0x2036f1c1bc2981c, 0xcfcec1c32452fb26], [0x198dc84aab25d5a1, 0x3bfea2646359c202], [ 0x7811c9d107d9919, 0x7441ac71bb60624a, 0x8d5346b6e87fce6e, 0xb4535173ab4b13a6])
+ self.mul([0x88b5b6bfd894db2b, 0x3910fc22cea00a3c, 0x1c2931bc5aff95bb], [0x961110c2544608d9, 0x172119b1a0154e99, 0xef530e93f0784ae9], [0x50239618adc61b99, 0xd76d80c130be617c], [0xa33775b9155571ee, 0x5422ede842e175e6, 0xab254c01494ef355, 0xcb0d2f4b338f5533])
+ self.mul([0x2bb27b2b0480a8cd, 0x8605c5ebc7f61327, 0xbb84c88d664da2c7], [0x77789801ba74a3cb, 0x41d8a5892eb0d81f, 0xa23f8a9fa8d538e9], [0x14648cdcffe986f0, 0x79531221ee53e3b1], [0xa08d527b7d4390dc, 0xd4f2f7fbeec5c094, 0xad0509046f2fe74, 0xc172e8171fd7af1f])
+ self.mul([0x956c97536a2cbd30, 0xf56dbeea7aeca0d0, 0x27e206a9146fc27e], [0x7754dd103439e366, 0xb213bb4482975952, 0x288e92bc57bd84f4], [0x45a70301a1a1f324, 0xf6cda50c4eb70422], [ 0x432dd45b46659cd, 0x7733f6df09ef0c9d, 0x5a0ab6aa0d3015a9, 0x408649d483d45818])
+ self.mul([0x1fa5611ebce70506, 0xaa567184ad0ba54f, 0x639cd471315be82d], [0x3569b69737628900, 0x92665e22688ac542, 0x7bd6bcf0747fe386], [ 0x69a4e8277282855, 0x7642d584264d8f44], [0xda9eaf47ad9a6473, 0xf9b8ca36be5e62a2, 0xb50d45554f329a4c, 0x5c456a00e74e6e8e])
+ self.mul([0xbae61521d7ccfcf7, 0xd56d87ea1c756d3e, 0xd00dbe46b0bd65f6], [0xa670d5459b19f13c, 0xebd6b85b4ca0c4f7, 0x6333634a3936d665], [0x7983921171926fc6, 0xbb83c2070068dc93], [0x173f4e1eedd63c55, 0x1da769df67596e96, 0x6e8d8fcb68c41143, 0x39ee386555d8de0e])
+ self.mul([0xb68c39e73b1155f5, 0xc25fff7cd6e06e9c, 0xf19cd127bef62690], [0x3eddf68b0bc93a29, 0x9201bbb6caab9752, 0x849cde233ddf0255], [0x2cd43ce1e31b5828, 0x4507e01de51aeb71], [0x844a5ce027de7d01, 0xaf7e83d89f8a4c28, 0xb93399f78ff26d7a, 0x6dabe6fc3b77edd0])
+ self.mul([0xca08e7d11fd45530, 0x36b32e83bdc04dae, 0x3f8e144a01dfb4b0], [0xd1f7de2633dfe9f8, 0xf7bc6821ede9cd57, 0xcce74b0372e3b210], [0xa5b4e32b450c4ea6, 0x9934bc543f74d2b2], [0x6ebb8f7e278a59e8, 0x17e43201519c2fd5, 0x68dcaf89dda0db2c, 0x8fd0afd141adab00])
+ self.mul([0x8910e31b670e7de3, 0x41e76e74df9e4820, 0xa230bf15b52b69b7], [0x4b11129b492e4410, 0x56b111d21b6ff101, 0x951da6b47a770020], [0x2831169e70631beb, 0x3621fb0f4f5457dd], [0xa2218e0ce1981693, 0x44f2b80ef8994aa0, 0xbbdfe24ad5f8db4, 0x7753c8f1ff7e36e0])
+ self.mul([0x9fecb053e147c5db, 0x5ee19d66e9bd04, 0x6372f64b91aeac72], [0x7fc6e26906d8b2df, 0x2334c33f6a5c8003, 0xa0bbf0934a738da3], [0x4fd2a9fa8da82388, 0x2580d985e89cdb40], [0x39e437092d0bccf0, 0xcb3d471140df7339, 0x5962ea29b00e8e15, 0xc027462162689696])
+ self.mul([0xa9be565020ea9b3d, 0xd782ad0d6f14c2af, 0xbe04a35e2c1697ad], [0x830a4db9fd68e433, 0xb6e7bc8cc3e6e869, 0x52a20f64473ac865], [0x56e33b23f2827859, 0x2014d650550963d6], [0x3285d46fd39b47b4, 0xc4c708ad962bf813, 0x5b30efd98b0ee85a, 0xaa36aa5c639aff41])
+ self.mul([0x9d805bff1745e164, 0x48362a025e6224fb, 0x480274eda203dca7], [0xd6ea9a66cf863e0d, 0x9b8b0fa4614af950, 0x96473f9190bb462c], [0x8439a339ccc92dae, 0xa4bd375f60265c9], [0xf977a091ff711261, 0x1e2acc79fa5f01e, 0x3d95380ec245775, 0xe4eaabac04fc96b4])
+ self.mul([0x8366b680b83fb5ac, 0xed536fe9ce5342fe, 0xd3705cd9d55a5a66], [0xe1312ddbdd76abe7, 0x17dfa4d3739e767a, 0x826aeec00c714b14], [0x73968499f9329881, 0xc5b2ee1522bf4e0], [0x659fe98b0d97bba0, 0xc3506f1ed1a0a5d4, 0xffa9c1921256f674, 0xe02d1c24d290f1f8])
+ }
+
+ func test_mul_3_by_4() {
+ self.mul([0xc973c4b2a37a554b, 0xf6afd850198bc7a1, 0x987118cb8f5fc50d], [0xfab7f9593841228f, 0x10826ab3619c68a1, 0x7a6489902efb7fa7, 0x9abef319ba98aa49], [0xc54bd40fdf2e0b79, 0xf49a568fa2c9d331, 0x9fb66bb9311ebea1], [0xbbcd6154e1ba08d6, 0xa3454f05402a1f0f, 0xce8466b7b904948c, 0x2bcb8a8eece1d2b5])
+ self.mul([0xf8ac35451b2e399e, 0x2bea91ad85e23e8d, 0xa50b40d8f9c13e14], [0x252495e49f2f8a5c, 0x937775ccd7e93933, 0xc381bdc4348f24dc, 0xe0fcfc46c98aa40b], [0x24146d84c9a74e4c, 0x88b67a4cd67a607d, 0x7b3c0ddc4f982aa2], [0x66478caad2c3b707, 0xa5dd6d93769be9fd, 0xe0ee60c410bca6b5, 0xbdb8ceb3b1da7adc])
+ self.mul([0xd7edb5e6d80f0af5, 0x632102b36d931b74, 0x8504934e13e01438], [ 0x1a7dbcec894d418, 0x439d8c01c5ad864d, 0xe567cc83ab68c65a, 0x426407fea2660ee], [ 0x165832e558319e0, 0xaa26841cb167be89, 0x7705ac47ac894289], [ 0xeb2a41758f8f58b, 0xeac3469a34692853, 0x3d8dfde3c11a9d80, 0x5ec80790b237cc10])
+ self.mul([0x23b34f79d7d3183c, 0x7e03de2599dc9cc6, 0xeef617aea55ffc93], [0x4b1a7fddec0f50ae, 0xfe65216045c63714, 0x2ef118c9294d1109, 0xe20293f22486fd63], [ 0xa793a53abbf41d1, 0xa49c386feaa21745, 0x63c1066796c922e7], [0x7277e4ada854a05c, 0xbfaf8226829d6fc0, 0xf71cd215d5f1432f, 0xc529fdb2b1adf3d9])
+ self.mul([ 0x5a34b4dca6ecef8, 0xad6a7d2aebba1391, 0x67bc4750dce0fd58], [0x9736368d7b7be269, 0xda4c239467f2fc17, 0x6cf01e028486891b, 0xeeea7ec67fb092f8], [ 0x3548310545b21a0, 0x4155a386aa96108f, 0x2928fbce96e8ed6], [0xbb546338b5c854c3, 0xe976a74d89097203, 0x7f15626405347190, 0xf961eebb1ef19d40])
+ self.mul([0xef1ef6ecdf8fceba, 0x8dc261dbbd40bba1, 0xd12c2a85f56335ec], [0x5ca2af21d3b3e722, 0xcdd37f4456a67ba2, 0x487c1263e2eaf5d4, 0x7f4565ec7f1463af], [0x568715eb25c578b9, 0x53ec786435dc68c4, 0xf49ae80904d7c652], [0x437d138d4fa3b2fd, 0x531a4c5e67829292, 0x92ae9f924e0a0449, 0xd12e1488671c2054])
+ self.mul([0xb023f3b4f0787c77, 0xae77216fd6cec64a, 0x5a4d4bb1375f6c8f], [0x527e8da943499fd8, 0x495fa1ead458e8fa, 0x386fbca3a4db4c12, 0xa167a702a7f52866], [0x38c2973a2b578f14, 0xb39947a4d59f02cc, 0x5d58036bbe3eab9e], [0xc5674d0088d1214a, 0x57b9b6d196fb4698, 0x74fed4afe7d00b50, 0x6572398526d698fa])
+ self.mul([0x4731259863ef4a8f, 0xa4f5636d495a67a8, 0x2c0d6fa26e5b7154], [ 0x130e5f7dfcf11e7, 0x16be72acce5e985, 0xa0755d14b80f0c07, 0x8cef2d75c9ccd671], [ 0x54ca508a40a90d, 0xaaaad11cc7403d5d, 0x7a7f384ffb62a40b], [0xa5f911ff684939a1, 0x309dae25632a4992, 0x65e3512c75a6a2b1, 0x6b785b306a093e14])
+ self.mul([0xb042f249dd5fb79b, 0xc1ced2208e7cce6c, 0x7455f31fe8c7188d], [0x83422804692a1f4e, 0xb50401114c34143a, 0xa45a04a4957647b, 0x1dd2913d78459d1e], [0x5a5fcecbc2a2d74a, 0xcccd70f96858a528, 0xc55e5682760dffdc], [ 0x96a2a34988134c5, 0xc63b9d721495a9f2, 0xbfdcaa1055e2bb7c, 0x2de6d74417645986])
+ self.mul([0x605a521338db784c, 0x4eed28c2dca49db2, 0x8a1d7fc936c1d5d0], [0x13fa4bd2537aa70c, 0x663f1dcc6a08a7d3, 0xd3a66ef6f41190ce, 0x80bde617881b073], [ 0x784e8d5338c3835, 0x38219136c70cfec, 0xd67ba1cc12cd8199], [0xe625110050dfe5a1, 0x28a1c1f27f7d8bae, 0x15794b08ae7b6208, 0x8ff694bf19e20c70])
+ self.mul([0x99e3f0521d992bf0, 0xacdaf86e2b620eed, 0x517782f52a6d1392], [0x68c27b2915a20fc4, 0x49553f76d7766ac3, 0xbe02c1034adc594a, 0x3695eb4e1e095470], [0x3ef98266b13ab7bb, 0x9252f7f5d74ea0cd, 0x8bfa5896a55a98f5], [0xbe8e14aec6f6bea3, 0x9c8cbd31ae3d155d, 0xd95d41a129c35791, 0x6f05ffcb264677e0])
+ self.mul([0x998739ae0cafd461, 0xa0a93a15f48397e4, 0x1b3975707c37b58], [0x670aeb48c4bd7edc, 0xb99331f5a201935a, 0x672db072f5779c3a, 0x425827ca095d659f], [0x3dcbf4980ddf68fe, 0x51f7ee72b6981d1b, 0xd2cd2cf1596c1e94], [0xe73ad75119ad215a, 0xbbbf7bde69670d8a, 0xce801ab8939689a2, 0xf16dc1e7d90b53a8])
+ self.mul([0x13d8d0378f1bdb7a, 0x5ecd23ec05b098ca, 0x3d7b687d661d0df8], [0x7717c44ef67b9258, 0xcf348f58a9a568c3, 0x4f99cafc726ecbe7, 0xb5dd73a993a87aca], [ 0x93ba07ca719b59f, 0x80249d84367d51db, 0xb54a3c02725a24d8], [0xaf3dae1d8acaf3f3, 0xbb3ac2695a7ad23b, 0xbd4fc128ee66b42, 0xc4a6886afe5535b0])
+ self.mul([0x5972fdeb95053593, 0xdc49ad1812839e7, 0xd693f91ac42f9808], [0xcc2caaaab5c1f361, 0x23bf5933f102a4a6, 0xf253f92dc7fe67bd, 0x5f06e7695eb67c55], [0x47573dbd61bae53f, 0xe656b528d04304d8, 0x33042da7886a3708], [0xf4429287259f4b9b, 0xcd42722fdc0a94d6, 0x2d1331c05297406, 0xcac033db37215aa8])
+ self.mul([0x7a1535408342f735, 0xa99581c09591b05a, 0xdec59fb078099307], [0xcd6db30867fa1e8a, 0x7e2e4b21717217ce, 0x10e6167f8b3e414d, 0x5598e490308b35a4], [0x61f74c0d2c1018f8, 0xa54115ae658174a4, 0x44bcb448a1b03493], [0x6d0410364039bbaf, 0xa78790d6d1166b56, 0x80c4309271e13f5c, 0x1779be9b065fa37c])
+ self.mul([0x986255de4de570b4, 0xfaa3d778d7d419b7, 0x1e6e8e626911ad1c], [ 0xc6d584126dddfa0, 0x212be25d0311005b, 0x3eb3a37663e915dc, 0x3ac029399e5ba6b0], [ 0x765b26d90eccef2, 0x3948a4e555fe4099, 0x4c0e6be6b98eece7], [0xee91d5186bb2ac59, 0x4e881d1234347498, 0xe8f0913fc546ce15, 0x5cd2fd25835b2b40])
+ self.mul([ 0x185ba9893c27889, 0x496e2f661ba35868, 0x242acf1ded1b37cc], [0xa08d8076be2e4f43, 0xab36b2fc257575ba, 0x1f561a028702b44f, 0x1022b3b058ebc2b8], [ 0xf46c0ab474c0a4, 0xfa18f827dbbff6ee, 0x11c075cbb2a9a96f], [0xcc7f0076b9125116, 0xfad4562123ab9010, 0x14135c5e19b38b2c, 0xd858e9b641cb2a0])
+ self.mul([0xfa892cf94ded210e, 0xd3200acceb5f2555, 0xb41fab85878647f3], [0xe300dbddd2d0ef1b, 0xe2021452814cb6ed, 0x13b5a3af22837f80, 0x334c6d4f974462fa], [0xde287a0d804f5d8c, 0xad52187ae6732d4f, 0xfc687f417414023f], [0xa6cbe188089e1bae, 0xdb14161ad1b75754, 0xcff1869bced816d7, 0x1d357d603239494e])
+ self.mul([0x98972457021b9f1e, 0xb2e2ac2cf4663eef, 0xfec2921750f6d6d6], [0x54cc46b482c6a0bd, 0x43c263a042692562, 0x3e62a7c3de37c108, 0xdfd4918756527aaf], [0x328b5a826e2f3b23, 0x79247dc6797d9c32, 0xcb2efb324c634726], [0x13ce3788f9e52d84, 0x76b7eb113a4f5e64, 0x8e452e73c830ba44, 0x565e569cafaad84a])
+ self.mul([0xdf2b210eb1028db4, 0xf7760492384b6ef2, 0x34b28cf32185b9c6], [0x250afe4ed57dcd17, 0x192431f5846311e5, 0x6d4d5fbe18e76312, 0xc82a44edd782f888], [0x204ad127ee357c09, 0x31ed81ffe2ab6fb3, 0xafd571d9e641125f], [0xc8d76b34ef742b79, 0xcb948e0eeb428e12, 0xea34476e4987f7c1, 0x74a652defb8e8130])
+ self.mul([0x11ef48e45eec005c, 0x7c064d47c45faca6, 0xa14141b441b262b1], [0xc4f94201ef4aa1f2, 0x14f2313b5cc9893c, 0xa26b89db9a15b467, 0x78bc24f7f5c8b5f4], [ 0xdccaa2c924accc1, 0x1911431c87d81728, 0xb485d4c895b3add2], [0x3fc2f5fd29921dc0, 0x4e6a4f1c1ce85aef, 0xf5b6e881bd29254, 0x98543ad93d1535b4])
+ self.mul([0x62736d50cacd4e16, 0x27da59d222706ddd, 0x9899fd670e6683f5], [0xbb61496fbaf78636, 0x9d1bed04beaa2350, 0x49d21302c01b738c, 0x289c379a84fadc73], [0x480fbad451e04e19, 0xd8147db384ce1c2c, 0xcd34ca7daf793fbb], [0xb362216c057c1751, 0xacd8419ca6affa6c, 0x89a5c87aa350cee3, 0xde535634c2b5d30f])
+ self.mul([0x637a4e9ede305a7e, 0x94c9030e6a7bf59b, 0x88381dfefb0a2c19], [0x5d66d00b0d651250, 0x7ced4c1d8bb8f401, 0xaecd56215d40a52f, 0x7a95e8614dd1f6aa], [0x244b6222b55b09db, 0xd658595ba9b4dc33, 0xd53a6633e152a3ee], [0xcf5863d662553b91, 0x9dc45df030d32de9, 0xf0ef87b6524f41a9, 0x7c225099008a4e9a])
+ self.mul([0x17d2e3b3dbb29d7b, 0x1791e511ae8d4ce8, 0x41e8fca29ef1d445], [0x7127722ae40c17b2, 0x5478c17d8e06d803, 0x62f849519e8c51ea, 0x97d978849ce8c183], [ 0xa87c242fb98b5f4, 0x4fa3f007c80b00dd, 0x4679eb4a74951135], [0xc8e0647ea01f43e0, 0x9e0bf2c10e798d3f, 0xa33a0ec0d108e341, 0x5e9a1522114fa44f])
+ self.mul([0x6312067df786c173, 0x26becd2e8ede632f, 0xa28686f92891eab7], [0xf7ecb71d650c4935, 0x2dba6fff3b0c52ac, 0x5aec108248ca24ec, 0x20e0123b8433518f], [0x5ff1ffbec8bcdad3, 0x87ee647c797451f2, 0x904a7b1051e88a54], [0x8f55e247294499c4, 0x12af53f54c294f14, 0xf625db203f66b26c, 0x92aa8348f33b0339])
+ self.mul([0xc144f4bbefa60730, 0x50eeb60c26d7adf0, 0xb87726648c000291], [0xc32b308dc32487ca, 0xfdf62cd988dffbbc, 0x4bbcd02a4b668c41, 0xe096e5f03bd2fbb1], [0x935821a8374ddb71, 0x51bad4089fc39303, 0x232f446a36b15d11], [0x978191f6d1ebe713, 0xa30c7157ad24d774, 0x219ad93a8948fc73, 0xab0916525477f141])
+ self.mul([0x54ddcb701c697e44, 0x4caa62099ebbef0, 0x1b542fe6e0d51cae], [0x3567f09e0ad99410, 0x60e8acaf18ec4949, 0xd8c31aae31e4b12e, 0x6518700fe9e32914], [0x11b4601f6332ba73, 0xcc959eb9740dd99b, 0x1ba4832e00ff8d4a], [0x237d961b44938172, 0x8f717bbf13ef88c0, 0xb049b2553b1ba8d5, 0xf9f3da507e881b98])
+ self.mul([ 0x271526baf1c53fd, 0x82845d318e891278, 0x41b3ae0097339192], [0x172c3713fbec6583, 0xe8f7d9c88e105e29, 0xbaaa55ab7c367e86, 0x8c7355079c369b52], [ 0x389a6860c34246, 0xd322f3be72d1c8d8, 0x1e96d55ef1c0f23], [ 0xc380b1fe35b1c5f, 0xc199fcd9e69e8cc0, 0xf5c19df5b89236a6, 0x647fde50547406c4])
+ self.mul([0x882d874c559b18f8, 0xf51e3285a9f46e03, 0xdb73fb543c17242f], [0x6f3861720fc9518a, 0x171f8180bef32a06, 0xf62444680f384968, 0x1434e9c3c32fb900], [0x3b29bb759ec0e83b, 0xdcdf6748b05051d6, 0xd43179fd64543cfe], [0xe594667ca5f8e2fc, 0x9167a6afebcefd75, 0x701bbcfecf45a5cc, 0xf9f7df092ac6f700])
+ self.mul([0x13c723b2e22a2f60, 0x6fabd7708cbe590f, 0x1daa3db5b4dbf7f0], [0xddf6995d4eed5005, 0x803dfddfd94c6ce2, 0x5a77c381395f209d, 0x150f29ab7ca1603e], [0x1125f706f4eaa302, 0x5c2eb17659047a2e, 0x1552c8e51bff5570], [0xf39c345b338ef264, 0xc486a074b1d5c59, 0x992d1c9642695f7f, 0x19f46d9378300c20])
+ self.mul([0xa62e19ae0654697a, 0xb3eb4b146389eff7, 0xaf308b4388e417bb], [0x7c3e4025931252d6, 0x8071f9c08b60dd9e, 0x4aec637fcb27be4, 0x447bbe9a3cedde25], [0x50a6bd3e6dc40107, 0xbd72a062443a8b18, 0xf87c06dba5fd0d5b], [0x6d408f9f95caee8f, 0x51fa775f32534a27, 0x37412f98915646f7, 0xe20ff2b061aa9807])
+ self.mul([0xa7240a10f48cfe4c, 0x6ecb079288ea2954, 0x5787eafbbb753c45], [0x2d4914670c6b80c7, 0xca0221570bf11686, 0xecf6b0096fb79b4, 0xbdce72eebd86e553], [0x1d910c5df237c572, 0xd25a85eec27623d4, 0x12bd2aeea9365fcd], [0xf22de339100080dd, 0xbbc00b5502cc1e13, 0xf63f602c5631f521, 0xbbc8cd50230a435f])
+ self.mul([0x849dea559640e41b, 0x2bc66b814b73c0e, 0x10350816e701d23f], [0x27543b86e338e70f, 0xf89d62a6664a840d, 0x2742ddd40a77bbcf, 0xeade85e25a49de00], [0x145fb15a33591380, 0x7c441a4115f48bf6, 0x309ba9f2a469c903], [0xdbb03faea6448158, 0x8a6b7affd5a41c89, 0xfa89080a172883f4, 0x233ab660ae49a200])
+ self.mul([0x2a2cea1569d25601, 0x77d118b7c8583992, 0x36d8d9707e83796e], [0xb7e7062a64b05652, 0xbc3da61f8ee6513, 0xd09dbb460690d2c6, 0x40bb4c1d6901270d], [0x1e4c2ae0916958ce, 0xd98504411c3caa0e, 0xf389c469e97cf748], [0xabe0e15132e10566, 0xea5601f002207033, 0xa351af15f068d196, 0x5fc302c40b9aec96])
+ self.mul([0x9d9d2bc3b0e6a94b, 0x7407dac3296da3ee, 0xb23d63fb2710d673], [0x9bc38178cfd1e16f, 0x5bcf8dbb451eef22, 0xf634bbaca44718f2, 0x564847ff776f4a68], [0x5fe687ee66d8d692, 0x751a13b69e79d2a4, 0xca2aaa9246c033f4], [0x6f9ab92114915eae, 0xc0217be7f8c0c48f, 0x6f673a7346d5cf14, 0xc87d7cdc2db15cb8])
+ self.mul([0x702c757df287aca2, 0x53430fac8271392a, 0xc9ebee9d9a746ef5], [0x9a114bba195c72e3, 0x4d3812c3b155f88c, 0x24e385540fec8e33, 0x1daad3e23daeeb3f], [0x438252d02318d636, 0xfe8b79ccc838289b, 0x1756e745311ae759], [0xbc70f0e3cf3cb06e, 0xe7c966300c6528f6, 0x696243fb1d401f3d, 0xc3f7026fb008354b])
+ self.mul([0x170e9ddfb5e20ef1, 0xff297cdc7f1f3707, 0xcf185c357f2e8c61], [0xaed7a35bb62c95bf, 0x2cf29301742ab587, 0x20ef4f01bc3f80c2, 0xdcee6643dc054c84], [ 0xfbf5b4b35a15e94, 0x872438a3f41a71c4, 0x57d9fcd3933440e2], [0xfd5662d60d0f9beb, 0xbe2997325122391a, 0x8887b8d6a40a3e52, 0x7d924d467f922e04])
+ self.mul([0x50e4301db5257b22, 0xfb4ffd49ef089192, 0xdce4d91e832705d2], [0x5e8a73002d82558e, 0xfb2443ebd8c79b4d, 0xe1e6565d8caa5a2e, 0x837c8f3749bf2d16], [0x1ddf890368860d29, 0xa948e10c5c5e952c, 0xc6be3558ee975b19], [0x3ab771b9a2e6fd0c, 0x2c298df1f1bcb560, 0x174acc259abd7389, 0x28598e915b0e6a0c])
+ self.mul([0x365571d6ee3e5d7a, 0xd3643004620a2e2b, 0x47d0c0a52dc35aa7], [0xe710156070bdc955, 0xbfbc02e338b54dce, 0x3ac0827ad9be924d, 0x2cae559330561bd0], [0x310a839988b82602, 0x7ed620a61ecc5687, 0xc3b355d570966b86], [0x12cf3952ecfae8ff, 0x732b343f38396346, 0x41ae9adf4084ff9f, 0x83c8738d8d6344b0])
+ self.mul([0xbc55ff2cd55406d9, 0x7cf32082f7b3f57f, 0xf3b289832d20d5bf], [0x110b5efb9912ef10, 0xb11af2ba07ab2ef2, 0xc5089347e4a9797b, 0x29a0a621ebfd901a], [ 0xc8a13849db8b9c9, 0xe17656d3066f5a2, 0x90f4344bd5ba89f1], [0x6031ede6034265de, 0xa6ef630968524a25, 0x78908d5804d1dd72, 0xc8c1e5fda0542566])
+ self.mul([0xf11cdf504a37bb89, 0x22c01aed24c96e95, 0x98684b310c7373db], [0x8ad5ffbbe52b3941, 0x915fac4a71d8a9fa, 0x773b11064a2ceec5, 0x181a7f3365b66609], [0x82c31e43d02f6e94, 0x34326ba443c252fe, 0x68883bc8e4f08c28], [0x55ece35c085e53c2, 0x852c4d77b02c25f5, 0xc91fcaaaa90c25db, 0xc620501a34ea54b3])
+ self.mul([0x14322309fce6d70a, 0x699fc26cae3140b2, 0xbca09b1e75b97520], [0xb3631a4395cae36b, 0x48555393b84a6cf8, 0x7d2b6f64b1af7256, 0x2279700085e495b7], [ 0xe26dff5f53194d3, 0x74f22302896053c8, 0x851d05d691be1960], [0x8aafa488ec492132, 0x157c8656f1c3afa9, 0xa958a7819f47e9a7, 0xabfd051093e59e0])
+ self.mul([0x445d8e6ae2deb0b5, 0x43093f75c0604a09, 0xb7ecb2fde0f6db77], [0xf3eb4f00abf6cb7a, 0xe7c280608ded99b0, 0xbedb6a5a8a96ab69, 0xb132add24e946152], [0x4123a52a3e57068a, 0x4037fff8676692ac, 0x8bc3dd0db0c5afb2], [0x5baa874e53e1fd16, 0x84386764c9309, 0x3fe9b14519615d3a, 0xf0023fc2bb06631e])
+ self.mul([0x8cabfc6065604766, 0xd557ce041905b7fb, 0x79bbaf08af7b5a31], [0x2f5f3fb4cbe0cf8b, 0x1e5532dad37f36d3, 0x8c6225904bf08d59, 0xfeae8879c2c20c39], [0x1a07ea2a06736239, 0x2173cd03a991c328, 0xdd3d7a652ac97234], [0x90ae3c2e387719c9, 0x2c4f49d5d8dac41b, 0x76cff9e885ed9543, 0x8514802555d360e9])
+ self.mul([0x73a055f461ee4787, 0xc81677d3f0ad40b2, 0x673d8c770e4f5faf], [0xd12d89d0064650da, 0x1ea08a2b2a9d6adf, 0xa5e47ee947e5a8d7, 0x3b214952872fc69c], [0x5e7a779a6303e2a0, 0x5d73866892efd33b, 0x283b3cd9958b3701], [0xe565c91401de8269, 0x3d43de007ecdf460, 0xe478b75005391a68, 0xf8d1b6b3f680a8a4])
+ self.mul([0xc0fa2c35f4bbd2b6, 0x57513cd3551ee4e4, 0x2156117b54819e1b], [0x3ff4fa89c66eb2a7, 0x5899019e7fc01497, 0xc28ffb7f1a9421df, 0xf1548e9c4c57ad28], [0x30363c2f954ac61b, 0xecc42b3a496b7ca3, 0x52ed55d91ef232d7], [0x5db4db5501f241cf, 0xe87fefaecfde7083, 0x616d74ea0dffd488, 0x9dce98d18b45f338])
+ self.mul([0x37fdfca3f3f928df, 0x15e620b37e81e754, 0x631d0e81e0b2dc59], [0xdabe745e07c959bd, 0x13950d7fd9e8ce9b, 0x49a24588a916f6ed, 0x7d73b29dabf5df72], [0x2fd7f118c6e24a6f, 0x4a41a79f72346fd2, 0xedee74cca7c651e0], [0xc8b2d5d4ca5d60d1, 0x10c707d4ef1136c2, 0x8022b00dc243c7a2, 0xb1d9218331c4a6a2])
+ self.mul([0x7e226a722f8ec1bb, 0xd0f3659e22765f4d, 0x6d8714da07e779ae], [0x54833071a9719891, 0x326efa83a06ce5f8, 0x7ec62518d13dc4f6, 0x10c2ccb4811246b1], [0x29a3ee6864ac4392, 0xdd5a3ece76689a7b, 0xde1ac039a822eefa], [0x55fa95b3b9aa8e1f, 0x60b0de31a58ee629, 0x104b1bdedce8d750, 0x18fd71d7fe8cb54e])
+ self.mul([0x462c2e9e5abc7d53, 0x49392c50c38ec149, 0xd2cfed37a704b3fc], [ 0x782a61724971310, 0x3bf415e77036b16e, 0x6918a4851e689afb, 0xecb56aef011fd51c], [ 0x20f053cff1fba0c, 0xca50cb80a7081ba8, 0x89290bf1df859ea1], [0xb7b2c64b1ea65af0, 0x669649a9e3a3c28b, 0x57a27274071de605, 0x7197de96f5c85b90])
+ self.mul([0x9cb190ee5644d18a, 0xbd3a33eb9711bdd3, 0xcc627f754112ad42], [0x310c2e86482a90c1, 0xc170122c9a5571d8, 0x759213c5e0f901aa, 0x76eda9a928f76bdd], [0x1e05718a82d7e616, 0x2f8deccc0ef8d3c1, 0x2e60d2efb5536342], [0xc1770882481e6272, 0xe19273acb13e01ab, 0x82f088a8a0eeb390, 0x469b115763827fa])
+ self.mul([ 0x8c363965462187a, 0xd170c6b96dfcdcd, 0xa9675d5d2d0a2232], [0x2dff9f19cb9690ed, 0x4412a7050d1ed117, 0xc395767f8be36987, 0x2fbd29614a05f623], [ 0x1931893dc7a7b85, 0x96e3cf9fde58e685, 0xfab74516bbf58287], [ 0xdb56636b7fbad32, 0x35468984834545f5, 0x1a449707503ae78e, 0x5beb130c0438b8d6])
+ self.mul([0x45b5f18a534f8bbf, 0xc6f5acf666c6235d, 0x46bc880478f60a84], [0x1ea5df0386a2ccad, 0xeddb3b2393813e9e, 0x1abb0725109e4724, 0x56dee74361708828], [ 0x8587d4d571de924, 0x6aeeabe482315f61, 0x420eee197a05dfbf], [0x8eb39001490a018d, 0x8ad5963831a1036c, 0x1642986035eebbf3, 0x8bdba32239c7c4a0])
+ self.mul([0x8e835309fbc85958, 0x2a22bf60cb2aadb8, 0x56c9725a4205c1bd], [0xcfa9a0d3db4ef8dd, 0xc59782cd959b1614, 0x8717c3787c8c1261, 0x7c60c09a38c758d9], [0x739a9e5ee86834b0, 0x887d85dff11afd8d, 0xb9bbc3842784fdda], [0xf18e941bd55d0f6f, 0x7f70fa5952a87f65, 0xf903fd67101be11f, 0xae4fd5c0e3653135])
+ self.mul([0xf2d873d63d8421ed, 0xc89585feef1d9a19, 0x2ebc8eff4fd7ca61], [0x26438b899b7cc9fa, 0x4b861a122b17ac65, 0x20849cda02a980f0, 0x75f04030947a3c27], [0x244c34362e6e7640, 0xc21b737485040fe, 0x9125adb0b9cf7d7b], [0xb561354c21d08bbd, 0x1a3c9fb14f216331, 0x827ff8861e2001e3, 0xb109fa2438890c7])
+ self.mul([0x15883f11abdc5e22, 0xf3bc29967245e38d, 0x3275810a90f7c39b], [0x720dc26ff5ed9b93, 0x8b4100ae19a14896, 0x673f494e5933194, 0x6ab1726c4e247988], [ 0x997d45bbcfbf997, 0x102bd6235858ef61, 0x5442b6c93e6bc910], [ 0xc5d60c703da6362, 0x8f84e3195e418fa, 0xe89b4d852cf63d9f, 0x9fdef7f6dae02d58])
+ self.mul([0x3247444858aee543, 0x56ce2180d53ce8fd, 0x97e8a09325cdff98], [0x2dc67d4d589af93f, 0x700c8af778c84a63, 0xb8249d59c884d278, 0x6b0e1f635f75ab8], [ 0x8fd82bb84b921ed, 0xf3db7e8c3159e8dc, 0x7410cf3faaa3f989], [0xd893861be9818dd8, 0xd50b93521af8dff8, 0xe283df3280244adc, 0x68c78c9ab932540])
+ self.mul([0xb89e1422da7d3f82, 0x36b4594dbbf55d58, 0xb343d48032a8b716], [0x26f50d80fc4a02b9, 0x4c13861ef7831fb, 0x363d175ebd3d208f, 0x7fa0515fe6f3261e], [0x1c1830037dca834b, 0x818f9381db305a04, 0xb71795cc72426859], [0x2cf0d03149358b9f, 0xd3bf04d085159ccd, 0x710bd19f65e60279, 0x7cfb805888d4b894])
+ self.mul([0x8f59d4ec4d5c89bb, 0x35fdcd2b891b5a10, 0x9cbce10e568c9e8e], [0xdf1f9d8a47540615, 0xbfb1a135d07b23ee, 0x164675027a4599de, 0xe1b2af6f2a782906], [0x7cf0f49225f3a3f1, 0xe5bf397d4deaafb8, 0xda74680514a415fe], [0x235dfaa9b4d2a6d2, 0xdc540f78bcf66c72, 0x663f25ca3453bf9a, 0x797c07b22b407554])
+ self.mul([0xe70d6cb1be7c57c4, 0xa1d49ca3c7fd562, 0x5e48ab585b589679], [0x92a250dc87d1e724, 0x4b7f5b40ff33f054, 0x6d392a4eb3019272, 0x45fa2e0421d96dc3], [0x845827776333efe9, 0x3dc76cca54154636, 0x18cf88ee3c8944c7], [0xd7af50deb27d5f9c, 0xf7915ed51b12936c, 0xdfaf702b23555c81, 0x4b911493721d232b])
+ self.mul([0x75fbcc8736bcd412, 0x7d9497c3e2ab42e, 0xd686364368ea8845], [0xd8f81a69fd079875, 0x28cf3b05c18caa34, 0x9031f17081437f91, 0x8007d49c24604ab7], [0x63feccaca4d65229, 0x232798040022e8e, 0x69f8db8d4b71e9fa], [0xcfa723ec61287a32, 0xf5fa75d4e369cdaa, 0xe33ab69934de1a0b, 0x5b4fc7ac98eb5b53])
+ self.mul([0xe69a6287ea4c966e, 0xa2e2c14fd2017, 0x8018c58298bc72d9], [0xd4cf95e679366ae1, 0xa603c62682fe06ff, 0xeff8d8e6ba1a54ef, 0x1d699d874a03e0b3], [0xbfb2d775b12b7f66, 0x5c9a53d8c82b117, 0x78957fdd3bc637e0], [ 0xb977ed9c97cc480, 0xf54414b188a5bf1e, 0x1704e880a2175455, 0x1ca348ccc2cd2dbb])
+ self.mul([0x6d61d0bddb233a56, 0xcd6e92fbfd073470, 0x4fe1f5e8c5d238a5], [0x78a478f4b4fe9cdc, 0xbd70c5997c7d0997, 0x1fd818ef17d41402, 0xf3d453c5aa6248cf], [0x338c203120c26a6f, 0xf77c67c3f6d9d55f, 0x4e71ecbf38ffc2ca], [0xaf1bba0f681af636, 0x8991550212677658, 0xe5ecf0de4f7a067d, 0xc61fb8eb5614356b])
+ self.mul([ 0xa9ca44be0fbc9b3, 0xd5604aaa323f30fa, 0xb6f652cddc22c350], [0x7a23124f07996632, 0x3436a1da11ffa9a9, 0xcd8247c63c9a8075, 0xb49dee8c5fb34b6], [ 0x5101a78e9cc6e21, 0x2be0b3d449346dee, 0x9983f1735d4135fa], [0x2966089fd53dab40, 0x23dbe8ce5e2595ca, 0x7f59b43d9f5ac7f7, 0x7cdea5f39fd31ae0])
+ self.mul([0xc4111de4ba6f4523, 0x4764651d95bac9d2, 0xa25b6d984d9156b2], [0xc2f5d83c74ad5080, 0x6e2af2761b0e718d, 0xcfc07fa942ff4565, 0x3804ffb623b66e97], [0x955142a5afc73c90, 0x99a74b626901a46, 0xd257044579ddead3], [0x86b227b98e273e53, 0x293305a198fa9749, 0x4e93bbac685e48fd, 0xff5e0ae42c869efe])
+ self.mul([0x8d92f266f8aae765, 0xfa190771d578d367, 0x5f3f6a8957565e07], [0x94d7fc4e00deee66, 0x7c85ee80d68d935f, 0x5fde8f75a25768, 0x7b34b0a5304c6949], [0x52506614e61c26bc, 0xcb2799a8360e61f9, 0x9f3afe306ade27], [0x80aa4e35f02555d7, 0x73b69f579e4d6e05, 0x692a45b7b928c079, 0xaea93fc48e45aeff])
+ self.mul([0x325b2290772e0f44, 0xe287a7f7c353e965, 0x7a7f9b1b7bd0f333], [0x338c32dda6a47093, 0x924a5bd6a527828, 0xcc9091026dd13869, 0x9041696292e58e36], [ 0xa23bbbb14f3d929, 0x91a0397f3e73e388, 0x6f7cd4ba76599083], [0x33346a5790034233, 0x22ae1f19ec0a422a, 0x5dd4c3693b6e6709, 0x94d6e79ca79896c2])
+ self.mul([0xd74882078fad0de7, 0x2e2a178bb1536a49, 0xa3e113229a0d8bf9], [0x99dc33974e332e79, 0x7ff24fa335ff3880, 0x40e94f63088aab79, 0x514c39d69e54c944], [0x81638368f2cd3c41, 0xbf9efeecd916875a, 0xb811577a482638a7], [0x729e201f2053b27c, 0x544fca1f6dda1697, 0x83c04f73c177f11f, 0x4a79c212a33af24])
+ self.mul([0x236bbab35ae8dba5, 0xbb3f2515fd5dc41c, 0x50cbce3df9af0dc4], [0xd931f12cfcaf1023, 0x517622c6c80ff123, 0x5ea4dea28f9c20b4, 0x6916581386079093], [0x1e0d3a3f68a0fcd3, 0x2a01ab6c4227c5ad, 0x320fb35bd291044c], [0xd7e24a740f04dc1d, 0xd0a72ffe8d7675ff, 0x3ee1df85ed38792a, 0x64ff2492cf9f278c])
+ self.mul([0xcd9afde6c429ae51, 0x6890991a241f7eb7, 0xe35c6cefc84b8d67], [0xef3f0c3d4320d407, 0x63bb30d45505028f, 0x1812eb330f7ab0fc, 0xde668f8cc6e5aa4], [0xc026560364ac6f4c, 0x48ad6080e7f8611, 0x5310983cf8e47016], [0xce48cfd38c6d47eb, 0xa0ac17ef1a562445, 0x9634009594fbe95e, 0x8532ef3b65ecbfc])
+ self.mul([0xf7d5a7e6aaed45bb, 0x73699d10582edaf3, 0xb593fa3dffd9705c], [0xcebf569873789fbf, 0xa79bb5d7f1100ecd, 0x9015a0d2889452f6, 0x373afaba864c612], [0xc82729593fb164bf, 0xa0e4d5ff615d4b8c, 0x6364416509aa37b7], [0x5fca3999945bbd50, 0x940e7830dd30e7e7, 0x42fe750fd2e1624f, 0xbf73205e6e210e78])
+ self.mul([0xf3c390c2f83a97b4, 0xb2b364d3087283b5, 0x231b82e0d225505c], [0x447cc68d26021334, 0xb8f528505e3b4eaf, 0x76747d0067909938, 0xb08e1d04c600c17b], [0x4136c23d913e555b, 0x4e8e0a039ad12c88, 0x43e2e9fb1935f984], [0x39d7fae255225cda, 0xe560c92b4471d009, 0x413c36c5cdd86a1c, 0xd423ea0a4182f834])
+ self.mul([0x8e3c10ab29de6501, 0x6b3fef25eb4a7f5b, 0x4ae7a4eed6f79dea], [0xdd0b40f1c8a1c47a, 0xd15d52bcbc63482d, 0xe54e6737f197c1c3, 0xd733fe8f846e5d1a], [0x7ad01b0dd4af1351, 0x2543325b634c56e, 0xdf21c009cfc44d77], [0xa24a0a484cc7661a, 0xc5cb49030018a9e0, 0xe42170f8bc8850f5, 0x8686f1e24c100bc4])
+ self.mul([0x100074761b1b8ea1, 0xd09aa337e808a70f, 0x8501ffb84510d59], [0x1a743e19446d38c4, 0x98c7032e834b5cb5, 0x652f5a583080a7b4, 0x7d226cc4507518c6], [ 0x1a74fea74cc01bf, 0xbb9aeba585b1ae6f, 0x11bc9d4799168185], [ 0x42b9cfd2dc0bea8, 0xa1313be0a2494ce7, 0x8ac98036d1dea544, 0xe2c6e24ad99daad6])
+ self.mul([0xacd4264c73ae5130, 0x6e16b5fded6a276, 0xee5defb3aedb0e6c], [0xea204d3fd571c332, 0xf74cbd2121da36c3, 0x5e2143a5b4885a2c, 0x6b61dc7656a287ab], [0x9e0fb9ad931f88e6, 0x782ba55fd90aea52, 0xca86739b1a76689a], [0x90cc86bfc045b3c3, 0xe9c6eb4fbde85869, 0x47abeae0fcefcccb, 0x42e2917ab9459624])
+ self.mul([0x803fb72491ee6528, 0x15e141ab9959a688, 0xeaf69a3d0b40d945], [0xb2cfa5ae208b47b9, 0xfa3998f1a9d98749, 0x26675bd663366a98, 0x7f77ef61a1e6f157], [0x599453dcd0b08c6f, 0x5c2682cb5f1c49ef, 0x7dcc1e434618d407], [0xf781f4c6f6e1c660, 0xadbe7dffed36e9ac, 0x6e5bf6a2867116d2, 0x6a85637891cb73])
+ self.mul([ 0x28aa58d23ed9c3a, 0x40bb049cbcffb2cd, 0xb13afc98bf2c6cfc], [0xfe0c2d1b27baacfd, 0x1007f5e03a312663, 0xa7dbe9d6c0c769e4, 0xa3602705171c5b91], [ 0x285af347061af05, 0x20e8cb823ad1525c, 0x2f8f352e1c76c2a7], [0x56b369b0700e0b81, 0x3792e76ceed89ae3, 0x3711d4579c9aae3f, 0x870dca0ba2774ebc])
+ self.mul([0xe5390b637a1c4636, 0x2b49909ebeeab029, 0xd0a4aff2f17fcf15], [0x5c3b6f10be8f17f7, 0xbb45dce7b04958e5, 0xa5bc27059e8cb7a, 0xc3339ea6a454d5d9], [0x5295b7b019f09cb0, 0xad31a26df997d2fb, 0x9a9e61173a9abd22], [0xd6460dc7b42855c9, 0x4e5988bad08c4cd3, 0x85b0034723c6eb96, 0xfb49a415738701cd])
+ self.mul([0x5b0b260d1c3ad3aa, 0xb62ab02d9b9280d0, 0x46f69bee41dcf1dd], [0xaf81616d8cc0810e, 0x4a59fcd31c49dafe, 0x7ed84e7eda98880e, 0x645a6a51134f64d8], [0x3e6aa24752202aaf, 0x134c0a430f37fa31, 0xfb4c8274bf89c094], [0x163606f5b437fb27, 0x72fb3b1792d9de7c, 0x9be05bdaef585506, 0xb12664d0eb196678])
+ self.mul([ 0x50e1c8c35b62e1, 0x7b105095b97dccc7, 0xbdcd710da6d27dcd], [0x52113efb844c38fe, 0x3df85d5d55ac5f1e, 0xa5d564222a728507, 0x68ee74f34666c4ba], [ 0x19edc5330e0a66, 0x4fd97176d1e5120, 0xcf02198e7514c543], [0x92b42041d5498646, 0x5635e64edf7a1839, 0x3d661616c5c58f29, 0xf044eb7f8aee5af2])
+ self.mul([0x2d93c6b798db4bbb, 0xc7d45bd2a4f82345, 0xa4c285de78e0972d], [0x17c8118df4193680, 0xc741b58e82e61cfe, 0x5260bbb67857d48a, 0x864f17e56347feef], [ 0x43be56dd43719f0, 0x495efaceea15759a, 0xd8604adcbcfb7e26], [0x364480f9978ec8ce, 0x2ff828e23fb225de, 0x2b6903352b334ec6, 0x7f3f5da30426c903])
+ self.mul([0xf7ae556a2f25cb3d, 0x5c648281398769c4, 0x359f2fb93952067d], [0x7864e20c5f28fa1f, 0x4ba237e189a0786a, 0xfd2420e3d281d705, 0x4a9127b9d25e4ed9], [0x747b52d703393790, 0x1425a839507c232, 0xce2bc8258f3b143b], [0xf5c6144204d873be, 0x6c44dc473ce566e2, 0xf2dff3b933deb29e, 0x2592f43e806795f5])
+ self.mul([0xbec12818e66859dc, 0x6ee97e7563fc42a2, 0x1c79de57e186a13f], [0xebcf317317a621e4, 0x511d73f4cf27c632, 0xb3952630ccc4b586, 0xdcdc7aca5fbc7787], [0xafb5b2d702b50542, 0xc09e58b9de6b616d, 0x2532feda691c3b3d], [0x1011d2f6ddc7713e, 0x7b3f4a45036b285d, 0xa6a8627e1ec968cc, 0x6310f0984e375139])
+ self.mul([0x4414833b541219ef, 0x5b9ef4e5e0ae1819, 0xbafa0bd23bdd10ff], [0xa48dd4979b662e6e, 0x5a59edf562f00b2b, 0xadbfac8df6c73f3, 0xecaf704922021731], [0x2bc2dbe797a3082d, 0x71a5718f3102cc5d, 0x9911f2833b093b55], [0xd448769538c3a9b0, 0x61debe9575631d68, 0xc628a67348f35839, 0xc04e635151d529cf])
+ self.mul([0xea2412b063456e53, 0x4698af769641ddc2, 0xb05d1e08a9b8df8f], [0xcebe94501218c05e, 0xe17e547234ce5cf6, 0x96a93eb13a13a311, 0x7d61dc2604533a5d], [0xbd175575e56c8976, 0xb1c784139a5628b, 0x5afa6d40f1884c67], [0x19e20c80784a096f, 0xd8d18a9b4bf097f1, 0xaa06123c3c11af30, 0xa3d6dd42422c9cf3])
+ self.mul([0x7efb7ec8b755e5a0, 0xa8c4be8c42a30078, 0xc9eb274bfcbb2fcc], [0xf8bd618b7f71c99c, 0x73e0a402bae09f1e, 0x807434c7f4103928, 0xef9c543d9fa9e8cd], [0x7b6192e18899aa3a, 0xdd948b7b88469b6b, 0xf8deedc9bcc640bc], [0xe3354dc1dba09d27, 0xb48b44222b206ae5, 0xb31b1d9b2aed24f5, 0x28a6c2c146e2265c])
+ self.mul([0x68f07b6385bbd749, 0x4349cb540569f4f1, 0x50b99528412f68ce], [0xda1cde5e59fd028a, 0xe972c92ba91ed91b, 0x39ebdbd1ce806e75, 0x5c31e3e1e12da5fa], [0x59689e8776f583fe, 0x4c1f79818597e84c, 0xd3d69c85385866ad], [0x16ef264d7eb682a7, 0xde58cb2a223e148c, 0xa31e32df95eac179, 0x77c482d3b10f1f2c])
+ self.mul([0xa1e5ca94b738c5c4, 0xc0579f22c398a1e1, 0x88a5dd153dd28ad9], [0x65af7c44ca4fdbd0, 0x91c8fdaa1ee09b62, 0x3e9a2146dc064a9b, 0x41a23d098318ec0d], [0x404ea398f70e50dc, 0x53ed4ef0ee614d77, 0xfa0d4a80d47b897a], [0xfb0522c906f2a68d, 0xf7aa32a224cd8f89, 0x71d2e922e1670775, 0xbeaaee7d4b091905])
+ self.mul([ 0xca73d68a17bb56c, 0xfc596f5f32b22a7e, 0x17856a496318b9c8], [0xd7d86f18fe37b006, 0xd05f449adc4f2a7d, 0xf152ee1c1dab7540, 0xf23376a4f5fe4b93], [ 0xaab272c6fc5f522, 0xb54ab2092ed61050, 0xf28082775981ecbd], [0xaaddb8e7a7794fd1, 0x7776dcee80ac4ce8, 0xc1b229b414d03ea0, 0x3cb7b8a0e21045d8])
+ self.mul([0x4b9b63c410e7789e, 0x99a66de7bd4ccb84, 0x8487cc3158db6d51], [0x2c5c88c790030fad, 0xfbfc9d3e92297bf9, 0x3a9ea9cf7e0a5ebf, 0xe4d3dba47fddbb65], [ 0xd1a09630ab0e1e0, 0xa9801ce203eadd9b, 0x718ec4f85818c6cc], [0xe43aa18ce4e7c698, 0xdb928e8f875bb9d7, 0x4d02e1568a9cdde6, 0x1e437eece5594bf5])
+ self.mul([0x92c22d754735fecb, 0xc08986c79b970c99, 0x9757da41111876bc], [0x347a516a904ad034, 0x94ac1c343803e571, 0x63aadbc1b1004931, 0x13efdfdc7eb44522], [0x1e15907203dbf2a3, 0x67c010ba20fff1c2, 0xc0a2da812587ec2a], [0x81852242aaa695d5, 0xe5b6001bb27c8c4c, 0x79a9770e3e1d13d4, 0x11a06373e17070f8])
+ self.mul([0x74147b56e129e29c, 0x53b690191c52e0f1, 0xf2bb9ffd4791d8e6], [0x4dc865bb5a3f50d0, 0xcee8c575da31694d, 0x416bed558779577a, 0xbd0aa2b1bd220efe], [0x2345073a8624ca3a, 0x9db0c76f439cfac, 0x942a262c229ce86b], [0xb0bbde31b364f583, 0xfee6b5b68d6d5352, 0xa12bf0966a801337, 0x647748bd991dc834])
+ self.mul([0x649ca82f8be4aab7, 0xeeaa04d9ba1150a7, 0x225744e6160465fb], [0xa41d89363ef1bf08, 0x466b12e155be3da4, 0x78246f82fb885c5, 0x70147fc6dbbf4949], [0x407ff76aaacb3574, 0x8051f3f79221365, 0x69f3bd2e88e00536], [0xf28ee864524143f4, 0x2c1c4a82d07f386a, 0xcf1e0dca811e47e, 0xe7a2d78b579aa793])
+ self.mul([0xc4e19b4630bdb7ed, 0xa1fe78a812da79ce, 0x412356d3745f6562], [0xc4677d29c7ee447e, 0x70f0d9eb2a2927a3, 0x65144f917d72c0a6, 0x9329d5ac5b5c2390], [0x970c51e981449f50, 0x781e49cce614b4d0, 0x238676a12c89f366], [0x5379c1c3a2a73439, 0x9a08374250c094f6, 0x4e6b1c11089d6c, 0xe9402304c5bd6d20])
+ self.mul([0x97678d87e008a7cb, 0x53bb6cbf021b60c7, 0x8fe0a46dc2812738], [0xb0ca29b87768c9b0, 0x7eae6763a298062d, 0x21f30e2344da6ece, 0xa59f6b5831d5d6de], [0x688ec1afc5f452de, 0xf1ad3a397d48c0d6, 0x88b05273989fc484], [0x5787c1cc03ef8026, 0x318f8f09d273f983, 0xced1a2e5f02c864b, 0xab61c8fdfc60d290])
+ self.mul([0xed8318c24cbb5fd5, 0xddd64fd2f446675b, 0xd113aad0f7dcef0a], [0x3d98daf4836bd93a, 0x65ff8dd7ae1dbceb, 0xebd9fc62b5783528, 0x6ab4b716a984c786], [0x39260de17d9d68a0, 0xa3d75463f063c948, 0xc50e68f5c52d6d6a], [0x9fb66d783ef491dd, 0xb56985b9f056b121, 0xdf52901cbe9e8084, 0x345932a3569de53c])
+ self.mul([ 0x12329619384ce4d, 0xdd54d501dbc8078a, 0xc9caa907b8af7bbe], [0xd8b549f6adf8b379, 0xe87d32eff8353ad6, 0x26915a917c2b6e6a, 0x73bf482a71c61023], [ 0xf6791ab5d1cf9f, 0x580d60e0ad627549, 0x2e0c156df03a798b], [0xaa40faed3d8ab2a6, 0xb83ca01f08196bd7, 0xc74f9946057ea356, 0xba1da21dcaadcafa])
+ self.mul([0xa656352aef2073a6, 0x48aa1bce5f2c3340, 0x7b00c384432a3b63], [0xe38f1b0e8512edd3, 0x8ce52f516db50686, 0xc37954c6e70229b8, 0x931016f8e05a2542], [0x93db6ce14bcedf74, 0xdb5d9780dfa913c8, 0xae59fe2793dcf844], [0x564e13fe5d86066b, 0x5708fb1fa63cfea0, 0x96083501971d348b, 0x8aed2085ec469e86])
+ self.mul([0xd1b4f0477da5c600, 0xd8fd7f47646b86b0, 0xcaa6e37f3c6b7b76], [0x79ffa8c63ea77759, 0x4d93fe4eb28355b8, 0x3b298ba82bbdff7, 0x3d46955280432628], [0x63eff30e448d4574, 0xebc631914a8dde4f, 0xbf275b7f2865b168], [0x57082c72e215794c, 0xa85c548267ffc3fc, 0xe21f904de5e3bcb6, 0x61e83681b500ce70])
+ self.mul([0xdd6249b570845c02, 0x8bb9753a36a73c36, 0x74d3c840d85b6f69], [0xab0cab3600a01b06, 0xf121d1e0065443b2, 0x68d74779359aede1, 0xa5d5caaf2a4a1fb], [0x93eb9be7012be2e5, 0x98d580441f058a5f, 0xc0721bebc2ce1e34], [0xe9c0dfe90922c776, 0x73fa4aac6cc6affd, 0xa22fd1665970e882, 0x6e8de14443fb44f3])
+ self.mul([ 0xf4676a265c811da, 0x623ad5b5adc23f9e, 0xa48ea5fd5190522e], [0xfa354e8a0486533b, 0x77d3af435425da48, 0x41a75ce484ccceb4, 0x37e03283633773eb], [ 0xeedfe20db6b001c, 0xd0e0bca51498d0f3, 0xbf27500f0ff0d854], [0xf08ca287dce3933f, 0x62d64b5f98a70b85, 0x8f191b103477c63a, 0x7aa18a8126481a3a])
+ }
+
+ func test_mul_4_by_1() {
+ self.mul([0x89baa9146c37ac98, 0x874be048294765a5, 0xd44185c190997a53, 0xb58ce27f874160c3], [0x7042182f69edc4d6], [0x3c65391b88b8b1d0], [0x44b30fa1c8014152, 0x7421d47891d270d4, 0xea579394b1113895, 0xd8120e2cae432f02])
+ self.mul([0x35f958191947652c, 0xe304c42f29c88eb3, 0x330bee37b3c33e04, 0xe65afaffd7c116cb], [0xa01d7ed081d741c1], [0x21c20f0b59f872d2], [0xd4f1fda5467f6e22, 0xb7766a78b74252bb, 0xe387da66ee6c4a41, 0x48021f401ed8ba0b])
+ self.mul([0x88a5570ca399932a, 0xb3123aa75808e580, 0xc3dd25e75d97f829, 0x52c32da3e308d833], [0x25e21a5fe65ca6f7], [0x1438959fa7f636e7], [0x1803a04af4032da0, 0xd072da52eb58292a, 0x163a5422ab4f9e9d, 0x710c40b04e0dab35])
+ self.mul([0xdbe6dede4cc219db, 0x57ad51e7427d7816, 0x9ae1e124d75e9eb7, 0x5f667cd5902a9362], [0xf027caaf87ecfbef], [0xce4a9f374f43bd1c], [0x8c2abdae74ada5f6, 0x308af43caafaab42, 0x6748fc22c8fb072, 0xba4f5eb1e298ae7e])
+ self.mul([ 0xc9e673e17dd666f, 0x52531840d9dd7e58, 0xc377fbe09320ea40, 0xfa3d1843967da4cf], [0x6cbb7f71947f2510], [ 0x55c118bcae20e48], [0xf503e54b4d74d5e7, 0x77933a86292d02ed, 0x25256bbebbaeab5d, 0xe4904f4ff5d37f0])
+ self.mul([0xd20994998930b94d, 0x1a3438835cd199c, 0x29a7a5baa6566379, 0x97f901dfbd4e2331], [0xe970b34f0512f9fd], [0xbf872f8e490f55f4], [0xe7432205affea030, 0x2d18eb5dfa11751c, 0x73fb8eb33ffc1627, 0xf07f6e8c84e5706d])
+ self.mul([0x1172a2b0772a17f5, 0xf76a962b14a181ef, 0x4a6a104b6e51f5af, 0xd07203c3a64882b2], [0x951c17a255c0b793], [ 0xa29a2d6dda9896e], [0x8bbc45facc95b24f, 0x3f12b7f481d78d2a, 0x313ea8de036e4c78, 0x9e3481a170904a36])
+ self.mul([0xa735e0a206c89079, 0x48b70463ed650938, 0x747039b0782a4632, 0xa88e3372dee4455b], [0x9e5719ca28833e66], [0x676c24cba5294e43], [0xd44e101d92a50055, 0x51e2d71cf3e525ce, 0xbc39348738f02899, 0xc68ba833cd50ac42])
+ self.mul([0xf4e0c284e61bfe03, 0xe7490a55e3a95fb3, 0x570220f80984340f, 0xe036410865283ac3], [0xd182b4449698268e], [0xc8688560ebe00dff], [0x8b20f38510379ff3, 0x2bd356e32d178930, 0x5ec15c81b2d88a2a, 0x2607abc93ad18a2a])
+ self.mul([0x9a03420ef517efdf, 0x193944e1c52b663d, 0x9fd1b508dcb7f1fe, 0x23b194bbdff82c4], [0x9255fca9b459074f], [0x580996c2c46c36dd], [0x57bad5b5344417bb, 0x4954feb0173acca, 0x37316acd1dae0439, 0x8054d9bbe490b67c])
+ self.mul([0x6df6a399a0a8cf24, 0x7d6d15e3bef0de4, 0x185b9a3a39da2f8b, 0x338fd69b20598c31], [0x7f0fe061d2c8d9fa], [0x36942cfea0d92af5], [0xe18f05fa52dd0f73, 0x7838fa9a6e2d1987, 0x5d24571cb3d711f1, 0x5393cb70379070da])
+ self.mul([0x53db96344a89adbb, 0xb0cb6ce7bf2f46c4, 0x5b792eea64d8463f, 0xc97e5e58669e14d0], [0x57d1916848b6fbb5], [0x1cc445f2ef1ffab6], [0xf7508a45b4576b61, 0x1d14446d29252a6, 0x43e29f62bba0e633, 0x34610fdad80ca710])
+ self.mul([0xaf6f39df2c106a45, 0x8c9f5da665d602c1, 0x8670040a93447f6c, 0x10f5a94f76a28528], [0x29a8b4eeb3995aa5], [0x1c8c6d4081b02150], [0x325f14913659972d, 0xefba297bee134a81, 0xd7d227590cf93017, 0x674585592677e2c8])
+ self.mul([0x513529dea3a68087, 0x9ea4d99dcda1d77, 0x4ca68a710939490f, 0x3f7e5fd7e916224c], [0xcd78ab44bdff4abd], [0x412dd9c73ac51cff], [0x7842d1e165f55b78, 0xa4a598448b0e04e0, 0x4162ea9180ec8e22, 0xe9919055c0f54a1c])
+ self.mul([0x53026e7408ded752, 0xd8d79fa3568fa734, 0xfd6a22fadce18b8a, 0xa43dc9a69f618f71], [0xfc4ede24d56a3215], [0x51cff77fed69ad03], [0x36f541363ecae9a6, 0xc25284e3c25b16cc, 0x5ed5b37671086362, 0xa0986a6e8aced645])
+ self.mul([0xcfa1d423ea6bb19c, 0x9a080ae4c26949fa, 0x7205f466eef8e3cd, 0xfc6c47c94394b128], [0x9ba797ad43ca9274], [0x7e3ee9081dd65354], [0xc9f783f438c64dbe, 0x3a721056626158fb, 0x799ed32208068ea8, 0x9c92dd76adf91620])
+ self.mul([0x2b1fc0b62373b6ba, 0x14492cefe3c38bd8, 0xf71db31c5c609408, 0x5cf9c8828a450202], [0xd76acd7bbc8b8ec2], [0x2449a89c08872216], [0x51e4f46656bcab10, 0xad3696dbd5107110, 0xdc96a52d71dfd17c, 0xf385ad869e7ea184])
+ self.mul([0x37cade830fd5f7b5, 0x3eed57360aeecef7, 0xd02035ee61b818bf, 0xdd9108bca758682f], [0xfe653d454f203c85], [0x3771592a455d6080], [0x9a749800d036eb3b, 0x47d3f0f690511ceb, 0x51609ecc1f715368, 0x51d13c1a3039246b])
+ self.mul([0xb419836536af31e2, 0x3b699488b2cdda56, 0x49bb4d2fdd61ce2b, 0xd732a863d518f337], [0x5faf67098a25f320], [0x4350ddb05b6f3064], [0xbef269ec213f527e, 0x2fc36fa44cb66c93, 0x4e2798a40c1fd067, 0x56cdbd671eee9be0])
+ self.mul([0x8fc98fb26b2948d1, 0x12804ab6acb8ecb0, 0xa7514f43768d3e6a, 0x94fd59b315fc1bff], [0xbc09879b584804f4], [0x699d5fc79f5eea54], [0xb1b54917c3fd6b55, 0x98104571529dd344, 0xf50ec936dfedd073, 0x432c8ff56c72ab0c])
+ self.mul([0x660cf186292fb623, 0x319698faaef404dc, 0x8368a40727dd957, 0xe2aee18210489c86], [0xd92c0bbd262ca0d0], [0x569287a2311f4f97], [ 0x6c668a7ae277cd4, 0xea2bf30cf4ac2b2a, 0xe04c67a5f5cddd7f, 0x2d2b687f67daece0])
+ self.mul([0xe98cfbbd0bbfa67e, 0x542eefd8b3b583ae, 0x75f3ddd26a86e3aa, 0x9055ce6e62f1c02e], [ 0x6fb2e418e90950], [ 0x65e755464b900c], [0xb24c98ed6525b34c, 0xee0be0b88adc8e60, 0x6ee54315f3bf0fc1, 0xe5b240fda52bac60])
+ self.mul([0xdad1632e664f2b9a, 0x6f754311630a993a, 0x862027d48195cfd1, 0xdaee6db72139485], [0xc440ff4809447ee0], [0xa7bfde7c768936b0], [0x469851a3baa2f301, 0x31a576c20c029c92, 0xeb9f25b977ba8b2f, 0xa3a93ffd948f6a60])
+ self.mul([0xc9dfd16c05919481, 0xe59de24c2ebb4b72, 0xff9f97f9dfbe8f70, 0x36f79e6e1fe01647], [0x80026a563214cc08], [0x64f1d0504b060744], [0x619fe749869681b2, 0xe336c4b32540af3d, 0x2315749d4357acae, 0x17dfd88d2c4d4638])
+ self.mul([0xf536f4d3b7ec308c, 0x74fa9cd9780690fa, 0x3083d07ade11a760, 0x59e9fdc1fdfbd617], [0xc5dc34baf66a5df9], [0xbd863823922c658d], [0xb5fd5a13cf21d732, 0x66aeda804fdd833d, 0x6208d7f583fcb8d2, 0x5164adab463f975f])
+ self.mul([0xc34b0fc209f4f637, 0xdeda732703ad9346, 0x692b78fa4717dfb7, 0x9a8aee950e44784a], [0xd1dbad9fcb51c3cd], [0xa017dd87857f516e], [0x62ab7ce82bfa335d, 0x48553f821cc0e5bc, 0xa3c699a127d915e3, 0xb7951e3d51deb142])
+ self.mul([0xe318c492ac2a823d, 0x44c0d91672ddd4df, 0x65efd55b228348f2, 0x78519611e6672ba3], [0x1125d5545fbf99ca], [ 0xf3634e09b406704], [0xd71473460b617d03, 0xab401dd0d37214bf, 0xfa5dc5fc5743ce2d, 0xe1a43d7a8219d99e])
+ self.mul([0x5c0f2718db0ad336, 0x57484c6cac60536d, 0x5b0c975b44444fbf, 0xee8534689310dc9], [0xb0dd5a7fbec3a32c], [0x3f9a04811ae94520], [0xdd8b5e58299332bb, 0x7ceb36e9acbabcc4, 0xc5d526363adb6926, 0xaa34a2c97e50598c])
+ self.mul([0xacaad9a46a8a20a0, 0xbae7d47f93c89ac0, 0x4debbe39bb86e579, 0x3b742b1424711532], [0xff6f7c8115ec0fe0], [0xac4960d8f6b653e9], [ 0xfd4e0d5458d0fbc, 0xc713d742f10758c1, 0x2ff09eda738e2322, 0x53a8a4f1274879c0])
+ self.mul([0xe4609c790e72507d, 0x61be3696a3da8d0, 0xa82ae1bee382d017, 0xe772d944a00a786e], [0x7903e039535130d9], [0x6bf51f1eb9ffb7da], [0xbc738995ef2ce79f, 0xbf738a53844f1e9f, 0xc2b8ca33faa296cc, 0xeab022076442b53e])
+ self.mul([0x611cd1955f7be880, 0xd88946e6cb26e76, 0xabb2633edcb404b7, 0xf904c84ccb8c09e], [0xbbe60ada6d23e386], [0x4747511a65147d93], [0x3788e27f0a00f52d, 0xf6c8b62402283b57, 0x5143114261c997b4, 0x1f82a8dc971aecb4])
+ self.mul([0x52f46957afd7c79d, 0xa30917303d7a5d2d, 0xdae0a558987e1d0b, 0xe6f9c33dbd3e61bf], [0x88fc9015dc389755], [0x2c63af3ed8661297], [0x265af67cbcea4be9, 0xfaf2fefa86606d2e, 0xd9a7066507ba0076, 0x1457b47027261d6b])
+ self.mul([0x8efeab4ceffe0cd3, 0x35e902e175be72eb, 0x91caf14ad56406bc, 0x8db5a96cb67c42b5], [0xd57e6d4d269e4ba9], [0x774082ecdaa800e7], [0x8e19a65d90137ac4, 0x2ac25f83b495ad7f, 0xb430f81522889151, 0xb39be643e949107d])
+ self.mul([0x634038101a76dc4d, 0x796cd4ca2faf23eb, 0x8a5bd18b3a0d0431, 0xabfb3b356f3d8ef8], [0x101cc199173debf6], [ 0x63f2995e812bf2a], [0x7e93cbee86614b26, 0xa48a173dd98950b6, 0xc019a214333add41, 0xd3326631c07d0a50])
+ self.mul([0x7a3f6fd97fbb8472, 0x9fd0d384374320ab, 0xeaf63a98e67af1bb, 0x1d7981dc25084668], [0xb7b8fe5ef3da3816], [0x57bbb005275a2507], [0x2c4676fd01795365, 0x4eda57be708cfd76, 0x3480e8d23fecc81e, 0x6b1cbf15aaacccf0])
+ self.mul([ 0x32e06e5d502ecb9, 0x547b8136df9caa35, 0xd3bd73c412a276e, 0x64decce0c792018e], [0x1d5aa5ce318f0af7], [ 0x5d5705b0077d3f], [0x387ccfa8920d2d79, 0xc7954c68d06adc19, 0xd7d91328f026ca22, 0xd324a7cb4e410c02])
+ self.mul([0xb72377bb50df88fd, 0x621cbe9b25c7b93d, 0x6925ced1ac6dd64c, 0x63dedd4a13b980bf], [0xf33ea30c557935be], [0xae0379e2352d2368], [0xddb2e42483c07fc6, 0x77a8e52d736eaa85, 0xab214b94dc297759, 0xf8b62371509c18c2])
+ self.mul([0xe5f08417f1307cdb, 0x408bddfa2948cd25, 0xe75d386c93715307, 0x4d38d4b4a58b77d0], [0x5cc753c8fe992150], [0x535578b0ccb30d31], [0x8fcbb12602dd69d0, 0x5cb6eeb5bea62ec, 0xdd77df679260fa85, 0x40e31d85b1574100])
+ self.mul([0x846e19b173e553cf, 0xdd3d37ef37e35f8e, 0x3385ef2640f2d8c3, 0x4f8738b2af0c6987], [0xacdda9aa380f1f6c], [0x596ca41425223ef5], [0xe404492f631cf68b, 0x9a4a5fa89a9324f4, 0x2250d6ad4fa1672f, 0x931fba0a10ecddf4])
+ self.mul([0x6faeae0e1ca8e94f, 0x96e3ecb28524cf6d, 0x5175664c11a0a3c1, 0x50b3893f55807262], [0x987dee4dcb7b5889], [0x4286a799b4091577], [0x76fbe29e77517b46, 0xd859b32604254af6, 0xce62ba216e6c6776, 0x3d50ab2d9424e672])
+ self.mul([0xf731739f388a00cb, 0x553cab3a7a17e1a5, 0x2aeb186315f52979, 0x6c0c79ee9938c946], [0x8ae2acc369a67e29], [0x861b88cdd16866d6], [0x4e5e522743ffbc61, 0xcfbba3d4f55c610a, 0x8cf5c07cd363a60c, 0xa8daf452b68cb036])
+ self.mul([0x2919a3072356ae89, 0x55dc7364c4fe83e9, 0x7806f67c0aaeb0cf, 0x9c27c5b216fbaf82], [0x1a9a73d25b458c00], [ 0x445669315cd47f0], [0x5e7d264b6149e40d, 0x79f7ace131df96bb, 0x581173bf70f5309, 0x9ca6c6f28051800])
+ self.mul([0xc9e910c1f6390357, 0xc1d47553a3565d96, 0x1df058740198e59f, 0x6118e73078cdcb5f], [0x63384bde8d1cd729], [0x4e41884d7bf76185], [0xa1ce15aa5b5ed52a, 0xd867194c32abe281, 0x429faba060e4a938, 0xb9d07d1fc0265b37])
+ self.mul([0x4e4bf6f16192b29f, 0xdc938763657a49dc, 0x4741961211e5a227, 0x2fa0408f03308b7a], [0xb56f63f56c0250c1], [0x377dc71b2ce1761d], [0x1e3af8f55f1d0e55, 0x909ba7aca1597996, 0xf52c1877b5ca44ad, 0x61bf87cb222346fa])
+ self.mul([0xe7ad5ed0e105a4b9, 0x84ddb17820181875, 0xd39bb6f40141b14b, 0xf6261cca1b15557c], [0x3951e4670ef59d89], [0x33dfb6ab2eee6596], [0x766668d47a441e9f, 0xd313153dd84f556a, 0x334cb42ce20006e1, 0x42e845c02b83cb5c])
+ self.mul([0x9c93d93fffe88533, 0x12ab383768eb15db, 0xa40d0d2bb35228a2, 0xd1934265150d8217], [0xab84e330877c125a], [0x68e8094e8d2a9b30], [0x61b7b554174c8e16, 0x299b9d6e248608ba, 0x33a04ed6fdcadccc, 0xdd3f8e797e095a16])
+ self.mul([0x357447ee5ecc66c2, 0x331835523d41a2fc, 0xdcc30f8b73615991, 0x48fbdb568be81cfb], [0x934b00ddd6969a16], [0x1ec16e8d4575e41b], [0x68de91899c0c7eff, 0xc60f33fcd5e4a728, 0x43c988765e8004ac, 0xb2af08374737b92])
+ self.mul([0xcfa468eb9ed4a546, 0x37af7f2399a3dffb, 0x458b97e87e2563be, 0xcdd2c056e9320dac], [0xb5a770a9383c44c1], [0x93570dd0380e27db], [0xb1a6a9e8f92f4aa8, 0x134b05d3479d2a70, 0x93fd9fd92646bbb4, 0x9d95f8bbeeadfeac])
+ self.mul([0x5c6398937908846a, 0x65b51df1d267bed4, 0xd8486a7ec54aa792, 0xe30228ac7381e196], [0xdb8a86ed7348a0ed], [0x4f3b31e83bb5ed60], [0xd8f8560a62f586a4, 0x749d42ade83c38a9, 0x1b1716b62a330dda, 0x42fda093f06b97de])
+ self.mul([0xfa75d7eb990d43b0, 0xfb70b22eed08c053, 0xaabe9f9e7a92d74c, 0xc613d3306679480d], [0xb56326c39842c4aa], [0xb1765328ee1a4d28], [0xf58dd8f0aa95bc2e, 0x706348bd7fdb4f20, 0x48fa21a4a05f0510, 0x3488a8c330dcca2])
+ self.mul([0xeb8d8d97b00c536f, 0x74ca886a51023f88, 0xb10935651d4401a7, 0x5e45be620c947f27], [0xc40750d4e56f5713], [0xb45f1ba72283fb00], [0xed9f99d8455a02de, 0xedf39ce1f5dfda12, 0x8b707f25db129a8b, 0x1d6b39fa6b24b0e5])
+ self.mul([0x94214250e08d3ab6, 0x4d06f5de18e47039, 0x95e2b43b647f30b5, 0x58cdb0abf9015a65], [0xb5db65bb8d984774], [0x693a77348f57bb9e], [0x21e738768fa0c358, 0x2c4dcf8e16f3aad0, 0xfe6063825cda422b, 0x1183385a81a6f8c4])
+ self.mul([0xf32edaff7360d443, 0xf079c45b21e0c5ba, 0x4546926b02feaa21, 0x13ee12b9e2d19b2d], [0x870ecd25b5a19263], [0x804bc4ed077e31e8], [0xc1bfd9286ef0e7b1, 0x4be1e1314eb279f4, 0xe4934e2c5a9603ea, 0x89099048a9dbac67])
+ self.mul([0x6808a0831df3c897, 0xce13e5e8fc85fe3d, 0x3e1d23710818f64e, 0xa2167de55eb4668b], [0x4d4248ede49f98c7], [0x1f658823ebda1065], [0x2159dc8d8c888f37, 0xbd9c9b0a23fdb896, 0xef849e97f5b298cb, 0x7cba919637733e0d])
+ self.mul([0x8f92613b2f09bece, 0xfb9138987b0a3e82, 0xc6230e68c1667aed, 0x96b5600f5bb04e70], [0x34c1c048fa00e519], [0x1d9664f20979a077], [0x3133030fc08bb91a, 0x5b9116bd0c568fd3, 0x32ee6b62896821c2, 0xdd085a9e0a61d8f0])
+ self.mul([0x8732e962c5331b92, 0x98fc1579a3d9d313, 0xf97e44d0797e81c2, 0x2e8b5eb7be52a2e7], [0xb6af84830345ab43], [0x607ae3b533d5e2aa], [0xc97f4d2952cee773, 0x4a5b38928a4b02c6, 0xc919eb4f9bbce90c, 0x8bb1429b9fb3ef75])
+ self.mul([0x1eab57c87e995ff5, 0x88713192a36bf680, 0x4b06b21a7d43a151, 0xbfeb0f458ed815a1], [0x13e57a96f09f1a21], [ 0x262357924cd4efa], [0x2c93c9bfcd2e4bf5, 0x93f92ec8d7c3bbf9, 0xcdb7752425a19412, 0x47e8bb4bbb0c23c1])
+ self.mul([0x8e84c0903c2ee5eb, 0x297f579ae8ea6e7a, 0xc3dc9ceee734657e, 0x47571df2d93b063e], [0x31fab456ce0bc86d], [0x1bd2fae553133cd0], [0x77997bc30e538c68, 0xa8de855c1066777, 0x87c9c9a94d7e4980, 0x947dff7fc3ac1866])
+ self.mul([0xc1cab214a511530f, 0x5029ba1b999b7935, 0xbc803cae864c52de, 0xece384789682ae2f], [0xacc611b9caa674c8], [0x82ca1fd6b5955170], [0xfa6c4366f06b5307, 0x2ca54ced61e30e2e, 0x6d0e91e2eb41d6cc, 0xf515d78dd57f60b8])
+ self.mul([ 0xc56939b0c405e85, 0x2d11b3f51083c1c7, 0x89b188ce815ef9e9, 0xff1440baf3d67ef6], [0x9a871c4f36cf12e1], [ 0x77297d065a2ef0a], [0xc4f844bcfab9ebf9, 0xcac39384d64a4ac4, 0x8c68d0d659a9ac7a, 0x8c28897f15ce236])
+ self.mul([0x9654bb4ea83cbe6b, 0x56128ffe53de0c81, 0x6200373214edf878, 0xd98b2aeca1d33a68], [0x9c7d4ece1fb0cff3], [0x5be537ca3fc9f14c], [0xc817afecedf295ee, 0x9871581cd0e6cc2c, 0x8692e2cb5c725bf1, 0xa9a39a72273a88b8])
+ self.mul([0x83f11dd3ee2b39a2, 0xf86adcd6399b2dde, 0x4e4e88b2abaa41e2, 0x43b5cf9d127342cd], [0x27a5de123540880c], [0x146f3867fd2526a6], [0xd1583f9a62b09412, 0x6b620ea90ce3828, 0x34c3ad36fa701e85, 0xb8111f393d24099c])
+ self.mul([0xd3cfbb19f107538a, 0x4dfc406d05dbe810, 0x5760df6f06894993, 0x748e129ecd9dc202], [0xdf1edae9bbe0b82a], [0xb89b7b73ced7ae4d], [0x994546e63d8f55a9, 0x2329724bee244c41, 0x7ed3691d6b7483ff, 0x7ddea06a57134454])
+ self.mul([0x84e5d5836c6e5200, 0x650d65789ccc8cbf, 0x37ac995e76d4a30f, 0x8a4ed99fb643d126], [0xfede29b57538a259], [0x844f5ece9019f074], [0x400f7face267f8cf, 0x54240e2fddde9690, 0x323139843eaa9b12, 0x61c38d27663dc236])
+ self.mul([0x7876819756c8f238, 0xe01167f75adc7bf1, 0xe2e3050e205779eb, 0x1a58abbdc241a314], [0x3d736bcde4539a3b], [0x1cea8cd7b12ac7dc], [0xb3b98dc16b2f2ec5, 0x59c2f54166d42684, 0x53a4eab08482c93b, 0x1cfd1f20f0b69d9c])
+ self.mul([0x462894894b6b7e8e, 0xd53275cfbb912d53, 0x79a1407795aab2f0, 0xf073396e610939f5], [0x6f605be34f360409], [0x1e8600cdf3adbb3d], [0x474a452d5686d152, 0x5b33258561982095, 0x42aad3ff97dfe236, 0xb7d58a7962e8dd9d])
+ self.mul([0x3a31ff70d4137af9, 0x9378d1283d4696bc, 0x1cc77003ce0083a9, 0x53e8363d3d95c475], [0xcf2233d4a16aec67], [0x2f1633f87474aecc], [0xe0b7b089ace70ab8, 0x8e5d6747f6e6b3f6, 0x4fa0df17d5804078, 0x5638f7dec5cfe713])
+ self.mul([0xe6326a4922b468c2, 0xc5e598bc4a5d91fd, 0x6821e614b6602112, 0x17ef802766e0bf8a], [0xc052873464d5f0e4], [0xacf00570986aa697], [0x1ba726b7b4848f9e, 0x65a60b19ab5aa55e, 0xf3142d73e50835c9, 0x23482563998df6e8])
+ self.mul([0x60d67b3ea20f717d, 0x774029f9485a16d9, 0x33a46062568926f4, 0xe9423c8837e7a237], [0x5421ce4398c8df5d], [0x1fd32a1c9959f243], [0x2019333688bd4014, 0xa97dc3c00da1f65f, 0x83bca959b8ab892, 0x96a691db786bd6fb])
+ self.mul([0xd47791377b501ca4, 0x704c8630340c9cca, 0x3d8ce3d70265ee89, 0xc2502dee411ebe76], [0xbb88f21d5425a71e], [0x9ba4ff8a0b3568f7], [0x1fc391615dd59983, 0x2298633e9a8038fe, 0x952acc33b2ddb191, 0xb5606db4eee74bd4])
+ self.mul([0x130d172e45702bc3, 0x733be45e9eda8e45, 0x38f48c0e4ac8c392, 0x1295d74bde92b7fd], [0xd95545a1d16667c9], [0x102c712d7d497f05], [0x58a54b224cebf09d, 0x8a5b6f3d359ad7a0, 0x7b55f8178ad02e04, 0xac13eee6a50740a5])
+ self.mul([0x78f9d0e528317e23, 0xc5e04f1cf41f7b80, 0xfa0ec267157ca784, 0x432f0a63575c1f0], [0xe9d5902ce78c0ffc], [0x6e804b1d1e1be6a6], [ 0x104be9168f89c3, 0x2257c081ed9cee16, 0xb0ff8b8611936855, 0xed6574642587f840])
+ self.mul([0x5df2f5a967eb5bc2, 0x539df1e8134699a7, 0xfcb9de76ec2369c4, 0xfc619834e8130db8], [0xcebcf5b1c4ff4672], [0x4bdeda457c6a6235], [0x873659942f248a55, 0xfb019b1c3f0bf0b6, 0x5b4f70aa42e1b631, 0x5e394b818846bf0])
+ self.mul([0xa10b2ba71b070112, 0xd856ac522f51bf99, 0xa9483f1f533f86cb, 0xceb6a1ed715c7bec], [ 0xda2fcefc84e90a6], [ 0x8941966f286db9a], [0x5355ddaf06dbccb6, 0x71e72e85c97d5e6d, 0x467195b4d860daa, 0xe3175c0da9951b08])
+ self.mul([0x6d01b576bb8bdaab, 0xafb22f8eda0b9c9d, 0x9ee9e94162c05a4c, 0x6a4ef9ed0849108], [0x9cf89187be2d0b7a], [0x42d6e233e9f84d71], [0x9dabb12bf2c90482, 0x1a441a9906e6def6, 0x248fb6e37575fb02, 0xaa6112ce7fd075d0])
+ self.mul([0xf44ac82d282b684e, 0x626f12ce84a5989a, 0x7f24eda19a620e5f, 0x3b5ef81adb694e80], [0xb867b2c8003f0d9e], [0xaff8b491d8e2510a], [0xb428277acca94298, 0x3c5b14b59a08ed46, 0xd93773ed57e5ca7e, 0xbe2cd0a2157af300])
+ self.mul([0x3e8de2b81b0dcde8, 0xed4e7d79d72e751b, 0xe416f260e7f2e1b4, 0x455e0aaac2a9d69c], [0x5fddcdbcca00b62d], [0x176cd9e4cb15889b], [0x41a45c7b06387104, 0x546917b0f1137ca6, 0x72d80a1b8425b0f6, 0xe8f7d0500e6da16c])
+ self.mul([0x50f5858ffaea7bac, 0xc95617e3a9a7e299, 0x8443b8e134681e8e, 0x103da834e2ef4568], [0x908c5ea82de1038e], [0x2db67f555e8df3d0], [0x1270a978dcf9340a, 0xf5af0affaaebe3e2, 0x7b4054f126a039ad, 0x1aed2bbdf6f0b7b0])
+ self.mul([0xa65c0196fea8309e, 0x2b2ddf73c40942eb, 0x54e508e150fd165d, 0xbaeff0b349d67436], [0x784e4f4696577baf], [0x4e2e044b86b9387b], [0x6e9c7d83670cadba, 0x7d9b912d4e2f22e6, 0x1d269d4e06449c18, 0x3d1dfc6a5c962ea])
+ self.mul([0x7baef289b51c20b8, 0x142356167d8c9425, 0xa774e2e26ea501e0, 0x797b57fe69f2f8d6], [0x1de29d1b68d7f840], [ 0xe704dd33fef8588], [0x20beb181211b686f, 0x3604a70e9537cd98, 0x959e1e2c3d856da3, 0x37f1a2f5c9878580])
+ self.mul([0xf7c7aa3010b51ad7, 0xef8874880b12dd0, 0x2e9987930ce39132, 0xf1e6c0a46a210da7], [0x58f32e1ae7833b45], [0x561801a6fc4e381f], [0xe735eda48c2a8c14, 0xeb3ef90f5fdc5cec, 0x8c3835f899bf173a, 0x66d257f7e6832b03])
+ self.mul([ 0x19656a5ec93a1c9, 0x4051f8da4d508514, 0x75f882f5d1e4b5d, 0xaaa25a65c1b64a35], [0xa4defb79600349f8], [ 0x105b170970dc4c3], [0x7024784b1234e6a6, 0x308d8f28855b81ee, 0xd19b535444a1dcd7, 0x68c541d462600058])
+ self.mul([0xbd98bc902e20acaf, 0x9ae3965b40592300, 0x8d9acc08d6b70b82, 0xa12f8b4cf58cfcb9], [0xcb981b8f0ccf757b], [0x96c8c49f57e0a416], [0x1fdcbda81e11a3ac, 0xdaf797ea90685e1b, 0xd7ace1960a0c5167, 0x347ff1636fd4f9e3])
+ self.mul([0x4936cef77f45b304, 0xd781a08b4f6714ed, 0x19f3cb7fe50a40ea, 0xc345b085c22969d6], [0x274ec9f2064a8671], [ 0xb3de1fc03e8f78a], [0xf3cdc4f2290dedce, 0x247425230cb3b23a, 0xff69063234c0f9c0, 0xbdd3196bfd89bb76])
+ self.mul([0xafe948ddbbfd1019, 0xcc4bdcdb69c4ce2, 0xe495c95ce1f6aadf, 0x57a29007a752936c], [ 0x6ae782292a13036], [ 0x4975ad1d5032059], [0x4003aad642a2be9d, 0x5dfb0997312797ad, 0xec597026aabd1ff3, 0x9303585715fb58c8])
+ self.mul([0x4c19b14b1adebe0b, 0x538765b2b6698e67, 0xe743c7c76e3922bb, 0x22160d60753b1679], [0x4a518143919e0b0f], [0x1617a7cdd6e1ab2c], [0x347c5ff6c779c3ac, 0xba08670a81cb1ade, 0x7197365a7d8fe220, 0x60df9a8dd01b8417])
+ self.mul([0xf953fd3ce8a0c341, 0x70938d4d3f83c991, 0x3b9344e3b586dd58, 0x3db31e1bb7c83652], [0x6d450b61a34ba424], [0x6a6c018be435de40], [0x61e11b948b6366dc, 0xd573411e4e91d845, 0xb2cd2bf0f2c92912, 0xafe96af23afa2b88])
+ self.mul([0xd46defe2770215af, 0xd38c4235f8fc1a63, 0x8fe0e943c47d739a, 0x3ad77cd59cacf81e], [0x1c01b203e088f9b1], [0x173d6e625d4dd347], [0x8fb4da5bd82bf967, 0x4a56d61ce357a8ec, 0x4f35bdfc9ce545d4, 0xdca56e6da0dcbabe])
+ self.mul([0xea01826583119093, 0xc67a76b2cbf79e1b, 0xceecdc6b0e2c348, 0x3365f5ceca911f22], [0xf09db83f4e46c61c], [0xdbf1959716c70dbb], [0x6ea64abcc2f2a502, 0xda86a683980f0822, 0xe320b3bbadbcba18, 0xd37987d3453fb3b8])
+ self.mul([0xd3a6e8a4cf790960, 0xd5a092c36b0bf89d, 0xb0ca2da4ed7dbbe9, 0xb0a67a60bef2f77b], [0x390f5fe19242a506], [0x2f2cdfd9c2ce072b], [0xe2c5a49bf98ebb97, 0xfe2c38a90f2d9417, 0xb7639a7813f94247, 0xb362d3a06ea13e2])
+ self.mul([0xa0a54d42232447de, 0xbcab14034cdf6273, 0x8c0191fc9587afb8, 0x63b0369026664883], [0x11ded3adbc143b3a], [ 0xb36ce4fa818b1b5], [0xddab426896cfbbda, 0x46afa1c0b97f8c0c, 0x7d977d89c876472a, 0x2772ac47241e9eae])
+ self.mul([0xa9c444b243092944, 0xb973d3d1ac24e139, 0x80daafd3203d72f0, 0xbff6979b1a495306], [0x8a5951436e40289f], [0x5bbf0827cb5381d1], [0xb752ac54c4080235, 0x59ca06bf8c7c33d9, 0x7e8f941e63655f78, 0x7b761a041e0380ba])
+ self.mul([0xc84f872c679bcf1c, 0x356060d5cfb094db, 0xf441816663adbe6d, 0x6e96cb5a0378a3a1], [0xd1659a7a715aa118], [0xa3d86d9b3b043ab8], [0xc35c3627246f55de, 0x8aab9bb166268127, 0x4654949cfee008c0, 0xa6a5f9fcc9d19818])
+ self.mul([0x1d376003f848091c, 0x1e409e652266912a, 0xd97f08b300442804, 0x9ac824c1d9f9a45], [0x2db2d4fdc6e91ed6], [ 0x53724b04757e866], [0xacca19a359aca9a4, 0xa6d76885b43a9434, 0x4d57258026579c24, 0x9b20d8df3e4c0bae])
+ self.mul([0x312e35538c3ad666, 0xdaf02bec4d37965c, 0xbcfbaed76cfd5a3a, 0xed0996888d7c28ca], [0x5a8564aeec391754], [0x1163df18bb52fc70], [ 0x6fa8d6a609d90e6, 0xf4b02b8ba33772f8, 0xc9206a9e01e15476, 0xe9c6410fe1618848])
+ self.mul([0xa01bdf569124b6a6, 0xb961fb7cea05ea44, 0xed2c4d57cf9f4d9d, 0xf404dbfdd1e99e57], [0x42eca8284b155c88], [0x29db3271b31a804c], [0xe4c9888b70f865db, 0x1b9753c6eea0d7fc, 0x3fb65715c035200f, 0x4c93956cf3266238])
+ self.mul([0xd70ec1ab9557ef0d, 0x4596a8cf7af6eb61, 0x8092a17faa28b40c, 0xa73e18e41a435f71], [0xdea50a0868052e80], [0xbb0970e342829d34], [0x5b2fcc16521d3c37, 0x33eb96e89aa04b55, 0x94724fe28d99d50b, 0xe44fb664020b0680])
+ self.mul([0x18f0cf05f5c415ce, 0x67ce7a53a314c574, 0xad7e198a20292571, 0x3aa926c3f2d9fcd8], [0x4190c427407ffc4f], [ 0x6633f212839cdb5], [0x2d86dd9e39e3b450, 0x526b32084fa9900c, 0x15236e354fb948e4, 0xca92b7c8f551a6a8])
+ self.mul([0xa7c34a90f59cd022, 0x192d0de94728f3b2, 0xe73fdce0de4c40c9, 0x5292fcb35d643c8b], [0x30633948b382cdfe], [0x1fb5a40b2446e76c], [0xf02dbfe608802695, 0x2762278d151b98ef, 0x4812f76098fd1f90, 0x6f01d913dd8560ea])
+ self.mul([0xfa0e01425196e237, 0xd9e7bbe8e624d41e, 0xe6ef6f35287b17c0, 0x469b40ef09300e08], [0x9f1d99b55cbd8cc6], [0x9b6b9c81da6da98b], [ 0x59a349346da91c, 0xa5652a79d835f067, 0xfa856b9c9e219f0, 0x21a2b3149ebf3a30])
+ }
+
+ func test_mul_4_by_2() {
+ self.mul([0x5c9804c84e97d322, 0x9732620d6e7a93bf, 0x6ab0d744fc76c6c4, 0xb2d4900225d09abe], [0x6a19334fc8e9a89f, 0xbab49436ffc00906], [0x26600f628ca332ce, 0xd1b2016825e08d5a], [0x78d12e9386f39757, 0xeec49cbd6bb2c3df, 0xcde9cd122f8bff31, 0x3c61160c88d44e74])
+ self.mul([ 0x3c0239839bf3128, 0xbf6ae441be0e3b72, 0x8aeb8dee0926cfba, 0x5c04c71d71bc22cc], [0xdf652453d36ee4cd, 0x4377e4de2c239aa], [ 0x345da57e4c243fa, 0x635997d261a7218a], [0xe743d37fbaa393dd, 0x9710303df25de0ea, 0x52d012eba754b2cd, 0x86c4ee86e1468778])
+ self.mul([0x598f2a3121534c6c, 0xfc337fbd6733f744, 0xbaa580390311de3e, 0x83bba7fef5218fad], [0xd19585e5c49829d2, 0x50f563e73cfbe59e], [0x4952309d6d908313, 0xb7c17289d39127be], [ 0xa6c9552056a9843, 0x8470a78923bb2c8e, 0xdfc90d128b2a1193, 0x5ff08251badb6dc6])
+ self.mul([0x47d1f49861426c4d, 0x500b85bd8732f5ab, 0xe1eb30fc4df5546d, 0x3ef2acca67e8ec6d], [0x24594b4f7455dec9, 0xde4297fb4994c16c], [ 0xa32938443bd80e2, 0xf656da1cb90cd21c], [0x4e99c908cf95ab88, 0x666cd588b3c4fbf5, 0x510aece733804e83, 0xde3915ad3485eafc])
+ self.mul([0x500b9b8c54f9b9d8, 0x3a1fe7bc86ddfecf, 0x48d8ed7e5f80125b, 0x9bb97890e524b22a], [0x774ddaa77bc83ff6, 0x950e632d1e5703], [0x254dbd2a4571ce36, 0x394caa46cbe3d293], [0xd0c17cf012824fc4, 0x88fe63445f7569ad, 0x2d2e555c076ba834, 0xc5c9276e6ae65c7e])
+ self.mul([0x44c3ca63c743931f, 0xa88aca5f1a09a58f, 0x175557c70e3623fb, 0xb212fe7d2e5bb214], [0xabc3498b21e0f498, 0x9cffc9d5d1606e24], [0x2e233d150439edda, 0x3ca85afadc8b51a4], [0x1d7742669b622ecd, 0x90d434dd68e6a007, 0xe7a41c926a136014, 0xf8d8b0ef06e9a2d0])
+ self.mul([0x28b339280f9af5c9, 0xb6b21d0fe90b2e60, 0x2d8a6c316ae5c8f4, 0x52e17050ac55d12b], [0x40bbc9c1106dcf69, 0x58fdf69f4c0b0592], [ 0xa4aa9482dc557f3, 0xe8bbcf428ddee8e9], [0x9fa462aff97a11f3, 0xaa6b7a7e109069bc, 0xc66df81148a1860c, 0x722fbeddb6e02186])
+ self.mul([0x6a6a4adb5cd0d9d6, 0xe4757b4eae49e136, 0xf2cc120e592f5a2b, 0xada92d26107fbb30], [0x70f7fa848e40705d, 0xf63b934e06856815], [0x2ef59571194c7d5d, 0xf6c120362f9c2236], [0x114bc9005d585db5, 0xe72fb4a49182e4ca, 0x29f5315c2ac7ce7, 0xf5d954329e75daf0])
+ self.mul([0xc9495605a1e5d227, 0x94217c1870a979bb, 0xceeafc46f3dae4a, 0x978777b41c46d694], [0xbef082766803e777, 0x3f5cd9f16c6d098a], [0x9621892d2ab5b90a, 0xf511139f3a28ec6f], [0xf7ea9a1a6de7ef8f, 0x47dce520afd76403, 0x56447adc57087e4d, 0x999d3e1988bedfc8])
+ self.mul([0xb1c4a90003a6cef8, 0xb091cdab254e6064, 0x44dbe2bc15fb81d9, 0x125f07cc3e72dbaf], [0xf9df676b5ea74796, 0xb1f8843ce36ee712], [0xad836a80e97c7126, 0x426765103bf8664a], [0x6d0f8e1d5b6e1023, 0xe716342b4bbad8ec, 0x441a57ccdb22785b, 0x2c943fe09a805b4e])
+ self.mul([0x8bca70135f3416bb, 0x6409e3df1f4eb391, 0x4459e86652679175, 0x836ed57a6696726a], [0xd7fe7c2b25869fe6, 0xfbe0517c69d1b37a], [0x75f1fac915f52f9e, 0x7ba135b8fdc471c1], [0xeba480177e1bc955, 0x7786a3a636a0314f, 0x527c302afe8a48bf, 0xf4eabd28f83ca484])
+ self.mul([0xfbb19bef40d909bb, 0x2104f4b94faed5c4, 0xfe33ed384363f9f9, 0x45c0436155c6a583], [0xe0a431eb4b1196c2, 0x1e10d6e2551c8085], [0xdcdcd74d92b4b74b, 0x6946db9ebe7bf448], [0xac143b29ef4eff35, 0x6bfa85f7493dae90, 0x7ad1e218c9c2a57f, 0x889da2c97c497d0f])
+ self.mul([0x90771eb479cc43bd, 0xa14c9dd4d235f7ce, 0x1e9f73c5d24cea68, 0xb07db6910db6450f], [0xf70d7d0b7b62d0ba, 0x5eed986ccfd24521], [0x8b6a8b3d556bb519, 0xccc9267b0618259a], [0xd10bffd6db52cb81, 0x7ffe5ce1845159f5, 0x378a2b53dbb8fe25, 0x22464d14ac69f1ef])
+ self.mul([0xcd7580fc17136611, 0x6655e15acd2fa72a, 0xd94c0960055285bb, 0x282928c50ceb5cd5], [0xade6062d161d937c, 0xe661ba0eaf2f1ca], [0x8b9104b12e824205, 0x48ab3746ecb38a2b], [0xba8460534b471d3a, 0x9126b8f1c9898e9a, 0xfe99b9cf1152db34, 0xa0b3821e3775c512])
+ self.mul([0xc692adb09d57c133, 0x4b64698788c5e8ca, 0xdab44e44c093e109, 0xcfa838086479fdbe], [0x3900096e16b5376e, 0x5831d3df7dc645b8], [0x2c36affcdfc78d11, 0x336e9ca7c7a6b641], [0xf566fcb6606a95da, 0xb1a46333f7e757ea, 0x74aebda1610ee1d3, 0xfb5572df20069690])
+ self.mul([0x9f7b287d954fb528, 0x9adf0e2e24da33f2, 0xf57d01a24291fb05, 0x90707d2f9b44ba4e], [0x1b14bd061a415a82, 0x3af478fd8b118deb], [0x10dee8a622b1f547, 0x3eacc50bf93f99a5], [0xe44da4a733ad8420, 0x5141a12c9200dda5, 0xd2c70f5a04aaca42, 0x9e4673071be1fb9a])
+ self.mul([0xf4f1c2a9482f7f4e, 0x4c8847ac174deefd, 0xa508c718ecca45c2, 0xd1937ed26b45e259], [0x90a977b560515842, 0xb261c3a7d8da705c], [0x8a6a23a2a6ef2f26, 0x320d419a5ead3f6f], [0x4861019e7eb6c9e3, 0xd59b44d7a520362e, 0xbeb6377f79106b18, 0x3de96619f7ee47fc])
+ self.mul([0x7c81b694bb1e6889, 0x859ed8b7b448b0bf, 0x16e7b30212ee3cdb, 0x41840cdae195605], [0xf2e7d33e5a628f0a, 0x729f01cb4658a6a0], [0x76235e6195f3eeeb, 0x6e74071b28f8e56d], [0x3886015caefc032e, 0xd450c115fe2d7d0f, 0x256b4326f17ad99c, 0x9c04e0a32d550120])
+ self.mul([0x81a38358f0b778cc, 0xf65748eb78702711, 0xb72edba054acec0, 0x756bcecaadce0037], [0x4cb7c828552758e3, 0x30e27ec26b261ab], [0x26d99c3d7753c481, 0xdbdab9e468f26159], [0x1b2709d190c57552, 0x9151e54e4143759c, 0x7e45951bc8af3410, 0x6b09ee3576ecfbbd])
+ self.mul([0x3031105e4d323e8a, 0x9659cbd7e950a417, 0x1201e67a40fb1aa9, 0xcf066bfa7835a6b6], [0xddeb500ad7a06643, 0x6892116647635bbc], [0x29c6a73cced4bf95, 0x6f5705134effbb11], [0x19c8649d8b1b3d39, 0x962937f40baeca35, 0xe3dbb26a8497f076, 0x38b352b4c0b1fa8])
+ self.mul([0x1ed5118fb05c044b, 0x7a2d87d675b30b3, 0x9cb39462af6c216d, 0x2beacec4b5e755f3], [0x33740388f623f8b9, 0xdf8615b8093a1eef], [ 0x6326b78934955e9, 0xef7a3cb3523f2a08], [0xe6a2f764fb2ce119, 0x122410077bf14fcd, 0x2f20d02415f53468, 0xa9ed250df319b7dd])
+ self.mul([0x93d706ee27acc2d5, 0xb5da73b4a62f7c68, 0x8a9d4d918f50ef8b, 0x48936609fff98089], [0x62d074a6ace3b0f5, 0xa941b234dbc2c26e], [0x3910b2ba7d1abde0, 0xfab211252e840c41], [0xc58ff2a20ee43b55, 0x3905c74ecc48a948, 0x23f748efddfc282b, 0x520e3623ab6f0cde])
+ self.mul([0xa2a29e86a5383e08, 0x839a0645b68a84ed, 0x2c7f981508771eff, 0x4f975ee44ff10590], [0x9000e36fc6eaceeb, 0x379fa74668377434], [0x5b7c09a8f262b67c, 0xa175d72e4359d83b], [0x7d9f75d667d17693, 0xb1e7d911b858eaa1, 0xc58607635d0ce0a7, 0x603e4704256a6140])
+ self.mul([0x61c33de62d1bb713, 0xb2d95d746f03e7a8, 0x3084fcf17aaae843, 0x8c52f5ed97aecc8d], [0xdbdd8a42b960c2ec, 0x500e178e7bca37c0], [0x53f6a04d12cabb96, 0x3838ff2c4fa40fb1], [0xc27eb249caf27de0, 0x98c27d19d3e30447, 0x7863b51454566550, 0x5d754b33774db4c0])
+ self.mul([0xe1b04e2b43151d3d, 0x1a9c39c40e789d42, 0xbc2c4f3f9af880f, 0x878c6cd833d1b441], [0x66d02d2af7f2e24e, 0xfa9d39f14eb3b8bb], [0x5aa3c6369f22944a, 0xba23fbc4bb55a302], [0x552dda0ba2397254, 0xefc81140f81c7fa1, 0xdc177285354597a2, 0x6c2f31ea6b30637b])
+ self.mul([ 0xd7f4dd52878439e, 0xd1e7c1fea1785f7a, 0x97f729523c355685, 0x6aeb62059bf08e60], [ 0xb35c5fc22fcb5b0, 0xd9db433318da362d], [ 0x974e2387ec6d01, 0x778fb221dd7afe40], [0x10062eff7ccdc530, 0xe7ad349780c1728c, 0x3177dc04b956880a, 0xa3c23f33651146e0])
+ self.mul([0xf2437b6e482e85a8, 0xf0a58330b94f491, 0x4d4ed4e4bf5e4c72, 0x5a2b71265c2d5da], [0xb4585a20a9f955c3, 0x713c148d06b5137], [0xaaab0f469b583a69, 0x5126549e0fa0a0cd], [0xe964758d172cb149, 0x306dae479c394e8f, 0xa370945b0411944a, 0x80747ca704a3ebd6])
+ self.mul([0x4aa1a12c5555dddc, 0x22bb962d4da32cd7, 0x8eecac11c4910694, 0xd8df7e430f5a138d], [0x7aed98858a82cc53, 0xbfc47fbc276998ab], [0x23d64ae83cc23d73, 0x93f29a08fa76d4d8], [0xefd7516894ef2db8, 0x5aded0ac717966f1, 0x195f45ca51d16c39, 0xb1e67b613c9bc72f])
+ self.mul([0x72f4febf8a06fa94, 0x762df135d65675d2, 0xd616cadcdc4995e6, 0xc94284a0ef0833d2], [ 0x48ba9479637ece7, 0x93bcea59dcbc686c], [ 0x20a8b0531bbd13b, 0x121917be15129cd4], [0x7f0c175dc96045cd, 0xec8eacd2a06ac6bb, 0xa79d95ad4178c6a9, 0xdefbe390b2bb2c98])
+ self.mul([0xc4c317dc1ca64226, 0x117d96237b6a3e33, 0x3439a6d5e3017e0b, 0x6ed7aa71774bef4e], [0x1c279a4c80051505, 0xe8607f1731e745d9], [0x15a3c6ecde557f0a, 0xd3dc1ed00de4be0a], [0x556c54e1578e0290, 0x291e1adb9ecdfeff, 0xe21199bad00730a, 0x6ac26faa743fdf1e])
+ self.mul([0x46b0f7386a3af58a, 0x1fa4b6acd87aa98e, 0xdfc13366e58cd7d, 0xc1e6be9cd1648f2b], [ 0x621d2ae955e4ba2, 0x6794dcafa66299fc], [ 0x1b17cc891166c98, 0xc299bc737a44a8a2], [0x49a5b0a49b14df38, 0xe53590be6ff8f8ef, 0xead50869bec11b5, 0xf818b3ce903a154])
+ self.mul([0xac5009dc7f7745ab, 0x3feae5f99c96fcbf, 0x729cf8add33d9fe4, 0xf0b5f2b166715ec5], [0xf0de1d9292a8f06d, 0x8622e0d0265d4c04], [0xa2208a8efe3150eb, 0x2659bcb5d8b3e2d4], [0x5e36b457d5286b81, 0x7d18506edf8c41cc, 0xce3ab7c1fc1a517a, 0x69bee07fed78f714])
+ self.mul([0x50fc1104af99b352, 0xbb28ff829c3832b2, 0x13cc34d1a47a7e75, 0x590026c0d39c05fd], [0xad90c6e57ad0aa80, 0x6a38c9aea6d3125b], [0x36e824354acca07f, 0xcea142c5efe028ca], [0xcf27f2f49103c323, 0x77130ea4faf14a60, 0x61a7e1a42ebf4a8b, 0x604a1dd2e68eaef])
+ self.mul([0xdbed788ec2f25e48, 0xa0123d31e09d6342, 0xa6393e4bea514d34, 0x38dbe15418d7f510], [0xedbd5f5fcf70463e, 0x2e217e4a4ca89cdc], [0xcc3d88dd9af27e43, 0xa8eff264e3335f8f], [0xa79eab9eb64309d1, 0xd2c7fd03a5d9ec95, 0xcea07ff31d250500, 0xa0f00482856c59c0])
+ self.mul([0xda45ad6b00a78e17, 0x4d3106fd0195699d, 0x346d3159e6f288c7, 0xf3c61260e7108a63], [0xf8162eca6f505eb0, 0xfacfba976a7ccfe0], [0xd38669e1aee12d4d, 0x7aacf6cd5863f06b], [0xd4c7d91cd9b7f56b, 0x8da5d42e14657817, 0xc79e3f7087eb2f3e, 0x6023c355945323a0])
+ self.mul([0x5dcbe57fe711c62e, 0x4e82a30098aa5570, 0x5e08697a652dc5d4, 0x83f44c54bd31470], [0xdfa6531e052a8556, 0x9114697808c9d203], [0x51f18d95566a3dda, 0x7c22b6f2086434fb], [0x4315cbc18bc44967, 0x2944bdcc821f0378, 0x4f89900c4cae6559, 0x4f824c61962d1d50])
+ self.mul([0xe706a9c291bfb629, 0x12430ad9ead99d02, 0x6deddd94197e8b5d, 0x27f93db25784d3fe], [0x20b02139c1a2b944, 0x67f13083a1697f89], [0x1d7fc7c90318eb13, 0x31f197f609896cfe], [0x853a6c2a467cb248, 0xb6152eedfad60531, 0xa3d1852112a2a630, 0xf60407a36c6e74ee])
+ self.mul([0x54d653bc5525f9c3, 0x93f7c793a85e2cd5, 0x41bc85efeebe525f, 0xc2e928ebfc046113], [0xbd3d21bf1cec0bcb, 0xbd5552c8195b23f1], [0x3eb67e12f506be95, 0xd99a661f8278bccb], [0x55504b11177280e6, 0x7fa24557d9b444c4, 0x183a7fdfc657f4f3, 0x8269b97e3625fbe3])
+ self.mul([0xeb48e6f0bf67b8dc, 0x78c9a5f5acd9bc76, 0x62f051a88e8bdfb7, 0xa95ab317b61ba513], [0xad0a8d9b4fa10782, 0x46d3cf921cf8c60b], [0x9f09f70f9c467e2e, 0x7dc331d27244e61e], [0x3730c364b34888a4, 0x86eb49429814cfb2, 0xe12ed0ba0dddf5ac, 0xfb34fb8a3344c9d1])
+ self.mul([0x164df5b1cbb062dd, 0xab936c5872ae4bab, 0xe31983a8f551b6fc, 0x3caece6c02123321], [0xef123ec7603394f3, 0x5543451208472c65], [0x14d45f548426c5e2, 0xd919b61f54cc9998], [0x3bd0793c69717453, 0x8227b8e0f7423a66, 0x66dcb4c1c7d5a918, 0x29a2ef281ed805])
+ self.mul([0x34efee1038c3ce49, 0x177ea67beee2efe5, 0xec4452678938a680, 0xfe2d2c8cb12d0c17], [0x82ce8af6972dc731, 0x3cb178b8480aaa1], [0x1b0c8cb222079b4a, 0x45344e99929dbd9c], [0xde2edd48d65b9b24, 0xd28d538df8820126, 0x38061a7158fccd0b, 0xc67ae4623edbe077])
+ self.mul([0x309b1ba048d3ea22, 0xda74e0a4cdeff299, 0x1f1c35a9502ce42d, 0x3570883f61966a18], [0xa450ad5a422d696c, 0x9186ed16e697edac], [0x1f32af154582282f, 0xb7ea50468a0c2371], [0xd44d38e31903024f, 0xab65bb7af66cff24, 0xc14c85e452870c60, 0x28834107f56f8020])
+ self.mul([0x28c9c83ac2c9f8bd, 0x84f15fdf09cd9281, 0x5cc5cd9aee11d3ef, 0xf8ad85332ef7814d], [0xe31e1bdac4674669, 0x2d03bbb3d8b2bb47], [0x242fb8a1b4d99184, 0xdbc7ae3db32f2d1d], [0x3e55f8ad93a31828, 0x3a077e5a7b14a2c5, 0xce04eaf6fec50e8d, 0x350d7988b1a21b5b])
+ self.mul([0xa445ef3b441cefdb, 0x33e31b2c01704ba3, 0xb543e02c2cbd474a, 0xcfec6ab6e597c2ee], [0x7d5f8d6298957c6a, 0x967742bf1815336a], [0x5073767d80b313a4, 0xc130cb5714421662], [0x2f296eb99f1834cc, 0x30c3120b2f558c5a, 0x99ebea614a6f0ec1, 0x94cb7ac39a32208c])
+ self.mul([0x34a3c98ce6371b7c, 0xe6958db9a4427c8b, 0x7180829914371534, 0x3d24875f8dea9f43], [0x4277ae226cda2805, 0x3c64de79616be0a7], [ 0xdaad5e76af9b69f, 0xc0b9a894f8118927], [0x9f0d35f4d6c50fee, 0x57a1154cfb41ce9, 0xa91533d3641caa8, 0x172b8396d36984b5])
+ self.mul([0x127916479c497d59, 0x809dc9064e302352, 0x40fbaa712f66e2a0, 0x45de3d6c9d0b66f7], [0xd0eae00fe94b3d05, 0xee3b47e0ebf8ff14], [ 0xf1354f3a5dd2b1f, 0xbe637267bdfac2b5], [0x2b76d6fa7ac921dd, 0x7c295d5f9b1d93a8, 0x2ca383c684d49390, 0xfa63309b1cbc144c])
+ self.mul([0x56a93aee2c7fb206, 0xb96ecf180d57e3cb, 0x4cffee9eefd88804, 0xe75905ed302717a7], [0xdeb3e34fa70e85af, 0xf5e0ad6fbc6eea1d], [0x4b63a661c5278a94, 0x5a5c6cceb74fe009], [0x8179ca51f289c207, 0xb72b8955851d9b46, 0x472a1876413c0203, 0x20d6fc75fdce53eb])
+ self.mul([0x98c6dd35a1b87d62, 0x5349423f4817f3a5, 0x94b5aea3e47adc31, 0x1354ef6dc14790ec], [0x71b1252df9215505, 0xfd2d9a1d6b9ea7e0], [0x43d97f53cc12343d, 0x77ef573e41062d30], [0x972e87d556f100ad, 0x5a417ab22dfc21f, 0xcfa71f0b15692729, 0x9fcdaf98e3d0c280])
+ self.mul([0x1c935b536373e8f1, 0x76ed9cdfa6d90f16, 0x73d5afbfb4e82529, 0x3ea8d9a42ff25b63], [0xbef0ec0583f3dba5, 0xdb945dec4f27143b], [0x15504245f7c98bfd, 0x534e886568f3eb3e], [0x377f0a8a4b0c4bcd, 0xdcd1760f01e036bd, 0x2628e8533e0b5d2a, 0x39954af97513cbd1])
+ self.mul([0xcd11caf9fe5ddcab, 0xc5608dbaa6741d11, 0xbfd807b6930d1f2d, 0xffd3d8b76c750720], [0x49fe8d8bac2da944, 0xf3249bfb7fbc425], [0x3b45fbeb5cf493fc, 0xa5f5d8b9ddd3e79f], [0x6a37b581f55ced95, 0x935837561c9440bc, 0x1e940e86ed320bb2, 0x5482314222be87a0])
+ self.mul([0x5c8f9d88d26a7c0d, 0x96192cba350aa041, 0xe16283cf823603ed, 0x8dc46c4ad16accd5], [0x5669ad8b11e2138f, 0x7722aaa836297f0e], [0x1f3e7492e9b55a27, 0x5865d574fb29e990], [0x653c218ec7302363, 0xe22e928447e92e37, 0x227908c32ad9a32a, 0xe404f9132b91dea6])
+ self.mul([0xae5c72cf304b7c1e, 0x41e2adb9ba276e, 0x5bb51adc53629386, 0x75f1ade3c48bdd96], [0xd5bf5f7b9e82c1a2, 0xb5eaa0f4c0203c8a], [0x919543888cc000bf, 0x79e7ea082ae984ef], [0xff239920d438cbca, 0x6d3551d2f6b58070, 0xabcdd22cb6e7fd1f, 0x21d3897cee149adc])
+ self.mul([0x85a83025f4a539c2, 0xb870a95389e7bb17, 0x8f68e4a737a4b811, 0x1c6c878f8a6975f0], [0x41d095e66d3978b2, 0x91878955897f31df], [0x225c9b23f41cb15e, 0x4936cef0f27d6bbf], [0x5011ad5911ebcba5, 0x7fca8e8f69e5ee0d, 0xbd7b9572e623d9c1, 0x207642a6b380ac10])
+ self.mul([0xeae32ec01c4876b5, 0x26e08a54a5b8a544, 0x1deffb16057a67f, 0xa7bc5a45f905ca2c], [0x37d7bb1239615d43, 0x39081b35b44c3f88], [0x333cbf7c3530db97, 0x3c287659a09bab0f], [0x232afde7761d886f, 0x86201dbc8bfe5834, 0x68ece1379c2822f2, 0xbe0aac6face43b60])
+ self.mul([0xd9b3aa5614404dd4, 0x88cecdaf3a85523b, 0x4f4b8ca077524011, 0xa34abf837079efb], [0x143bb21415e8262f, 0x5a15d41aef8324ce], [0x1134cd26fc8601f9, 0x335bf2ecbb7cb48e], [0xd58dfd6dcf60b657, 0xf2abf085e08ca785, 0x6e1d671033610107, 0x88fa914a09ee39fa])
+ self.mul([0x8c63006e233db4fc, 0x5dbae035aa5c9f73, 0x956e85f1123771f, 0x38b94da4c01dbac0], [0xd408d31679c829fa, 0x7551d64bf6f23512], [0x7446d335254593e3, 0x21c520726510bf78], [0x57a6b2538fe3ad2f, 0xf4b9fa267cf1dd70, 0xbeb7968f903e7dd7, 0xa06f52ab340e180])
+ self.mul([0xaebf191c3e2d3d92, 0x2af16305406c701c, 0x1301ac4f128e00, 0xf396e2d0a1f03aa2], [0xc6b69c4a54f0ec83, 0xed452b40f1dd769e], [0x87a473f6e2b0d2ad, 0x65813f4884f9f308], [0x60bb7c111a3c9e8a, 0x2d17023e0d26f42c, 0x8753e5a0d0df8def, 0xb7ccf97dcd24dbfc])
+ self.mul([0x450e84a97a0b999b, 0x101f3439d3273aa7, 0x2bdfc7feb524091c, 0x552d073681d8f3ea], [0xadd5a8d9f62be3da, 0x7fc2f71f0aceb951], [0x2ee472473b41d896, 0x9cc127d8afcc90c1], [0x40b5164fa5bfc75e, 0xcc983fb3945a85d6, 0xb695ebe4d6955998, 0x6654f1864835470a])
+ self.mul([0x165e045cc6aff661, 0x78e6273d6e28c9ba, 0x38abb17bde6c7322, 0x3cdc9fcab0f8a176], [0x6ca9c824630533e0, 0xfc4ba6c81c2ad496], [ 0x97e7f64a6594e6e, 0x8868178a1842d2a6], [0x88a21780e0e16fcf, 0x20fed0faf58800ee, 0xcad5c7cde2c09445, 0xb0b85df4fcc05324])
+ self.mul([ 0x148da1eb647e7c4, 0xee689565e6eabdea, 0x9f88cf428fe36f68, 0xb12d077d59e469c0], [0x9ff99678486a1251, 0xf9e826f40e603bfd], [ 0xcd8016856737b1, 0xcec0c6624dc18038], [0x12648f86bc802a22, 0x4e02b83ef722022a, 0xeb105fcdadaa7905, 0x4f8dc909a31bc2c0])
+ self.mul([0x6129d547c43824bb, 0x6cfafc5608184adb, 0xe98e2f99f3924eba, 0xc2a3801352e78509], [0x934c95d2084ce98e, 0x4398f399a1b6ffaf], [0x37e816c09794b790, 0xcc1252e9ee5c220b], [ 0xc452a92559532e0, 0x6202f3c7c9109832, 0xd8db99cec641bdd9, 0xc736656e872de827])
+ self.mul([0x91d744214083f0ac, 0x86099bb97ad04a96, 0xe16e9466bd0a9b0e, 0xe2f32540f9164426], [0x244f6bc6ff292817, 0xb82cd562f5f25ff7], [0x14af84690aaaed6c, 0xc23a4ec9b9ec8a17], [0x30adf1a6da4df8c7, 0x6b17706072b21058, 0x182bd664110d906d, 0x80fb88f061b1daaa])
+ self.mul([0xd21ffff92fdac9f3, 0x41a714fdd7f12f38, 0x883b424311ebef47, 0x893b7e3220dc495b], [0x148f8844f2624e4e, 0xd35092421ba51f69], [0x10e04fb90b5e231a, 0xc13b2aa826d0ec3f], [0x3c78cfc2a85d2264, 0xb7d92e811d8fdb8f, 0x3959836cfcb0904e, 0x25860db807e31b53])
+ self.mul([0x484fce6d817db2ee, 0xe404c81596d38bd7, 0xa4e94d4963fdd08, 0x7babd984c37f458c], [0x90000c7b7bb17227, 0x2d2dfb62c3b39c2c], [0x28ace7a437cc7cf0, 0x6dd10390cd4f810f], [0xfe8fa25f480f3560, 0x8c77505551bf0918, 0x53dd4305f8b7a618, 0xa859d1826d254410])
+ self.mul([0x7c0e86ceea4235a6, 0xafc0b9cb87bde05a, 0xe8cc6caee8e7e165, 0x67293cbef4768311], [0xcc4159719e3d8cf0, 0x86eeed34f1a89aeb], [0x62fb3e75392c794d, 0x33de71ab2bf5970e], [0x46cc7124db646e16, 0xacdbf172b1d74647, 0xcb92d09cf20c0738, 0x4210fdf6b7ca8a9b])
+ self.mul([0xd69584304de60ee3, 0xe164cda5490fe3c8, 0x7e18c2e78488c301, 0xc937c6f1ea2c8cb1], [0xdda423469cd771dd, 0x96407270a84634e1], [0xb9c8a878039df5a9, 0x34e9525d5f991a36], [0x3fd30efdb9e45a90, 0xb36c69bb74d05adc, 0xa64c6e6cf43f60be, 0x82a6a2227e219b91])
+ self.mul([0x9e6323153048da17, 0x932dd284c8d5c299, 0x2067994985782604, 0xd9dea451573c5bdf], [ 0x438ae4f587ec300, 0x4a9d3c4ca9ec5913], [ 0x29c9e147a946f33, 0xbd161f79ef785d4c], [0xeab0aa5cc99d709e, 0xca23b0d28a36bf2a, 0xb97041d0ece1fdfe, 0x997047dc5dff588d])
+ self.mul([0xea787b95d68bad90, 0xeaef43c255a5974e, 0x3aec8e8773947205, 0xb8b21eca5731055a], [0x9a716ffb21ff639e, 0x40701a4a69205702], [0x8d746016f10e4f2f, 0xa9955ff7d217e730], [0xbe3cb3052750eaee, 0x65105ccde8a63668, 0xe6880c0f3049f061, 0xd6ffb28cec73a0b4])
+ self.mul([0xba5de1997e8f8f7c, 0x5948058d3350cc77, 0xc7f12fe921601982, 0xe9d591b17fda279b], [0x8d96e9fdfee5c6c4, 0xc6543b1f9d633c15], [0x6713929c15524f8d, 0x4421fceede2100a4], [0x7ec71e5657c085bb, 0xcf33aa33b4905ba3, 0x624372abdfc59e55, 0x131f4df2fe1e93b7])
+ self.mul([0x2e2c6bb734e90d5c, 0xaf36c41e2fb8ec50, 0x55642ab605a726d2, 0xf408032f8b2477a3], [0x484902904b323b59, 0xfb3e071cf929748f], [ 0xd09a96c9d83ba9e, 0xa3c5a1406ce53b3d], [0x976d2d634a96b37c, 0xf90df90cf06a2b8, 0x25274a097f186999, 0xb49b9ea3f3afb00d])
+ self.mul([0xcde73a198fdd68ab, 0xd665760de9f8563d, 0x25897a8ec8f03d87, 0x146877351da582c8], [0x49645d529f5fcdae, 0x1ea456f080909919], [0x3b07a8f3705de61c, 0xc60c5d799b57c28], [0xe9ffd2b7f0a29cbc, 0x14e5212cdb5d442e, 0xfc84bbdf9c587ccd, 0xa75f9ce560d34d88])
+ self.mul([0x13542659228569c2, 0xdf83076d1ee2f2b1, 0xc7ab8e3b6c8ce5a5, 0x1b47ce60c1b4deba], [0xd6be2aec8c6edc5d, 0xbfb357eaf68258e6], [0x1036b3c0a37b8307, 0xb9fe8a1323c8b2e8], [0xc4c920de7f85fd64, 0x66ee500be95b07c2, 0xcd6b82e84a9199fb, 0x1cda5680b840b1c])
+ self.mul([0x75242b3979944786, 0x9d84c696a02f4497, 0xcf3a336303790b42, 0x857a0e6499960b00], [0x7b49a3c4febbd784, 0x346f8951bce36e8a], [0x386a13051c9470fd, 0xab20ef558c9f9f1], [0xe1cdad4618819964, 0xa3911d1e194a46e7, 0x2fdb702b2fd6c753, 0xb355d759049bee00])
+ self.mul([0x1c0e806386a74f33, 0xb721316f9c351d86, 0x84c7a8a1d694296b, 0xb1c8b5f6d1543eb1], [ 0x81e2ef72bac0b21, 0xc73853944aceb177], [ 0xe3c2dbd9b80ed5, 0x2f260db3c9ff9da2], [0xafb020e9d18da646, 0xbad44d62bff39302, 0x5a79b3c39fc7faa0, 0xd1faa9b429ef8547])
+ self.mul([ 0x4319871e8e2c8bd, 0xf419a8130aa06938, 0xfd707341348d0e0a, 0x1ccaaad260f63ea1], [0x34194610bba7927b, 0x27561a677c59b249], [ 0xda7cf4dc4974d4, 0xb6094ab4ca784660], [0xce62ede605e7856b, 0xb21a751faa5c5f2f, 0x936423e5edd74e37, 0x13186219fbccde9])
+ self.mul([0x768a773d907d4695, 0x128b48769211b057, 0x9470da7ccf1a1321, 0xc899c90a808fd574], [0x1f7e44336d277fa0, 0xbc1a7c0f0c3b070c], [ 0xe953c2bbc99a3d0, 0x5a050552c0db77d6], [0xe8b3f952dcb5c99d, 0x2b5b1ac1fe1fe448, 0x74ea6d126743c4af, 0x80c0c6f597502d70])
+ self.mul([0x54dc7c6ae7bd2080, 0x9f97b24b54a2f298, 0xb372984c01be1ce9, 0x3a5c2c34316d618f], [0xe45abc3d4c64b90b, 0x82750e6cb75f7402], [0x4bb272b93134e97f, 0x947a744af653f36e], [ 0xd39f44984d5e555, 0x860caf5977b9f207, 0x9951447bb52b9f77, 0xf949817660208f1e])
+ self.mul([ 0xa2347027e1597ca, 0xde18ddf4e58e26fe, 0xff4535797bdee443, 0xd44c309000a78c22], [0xb75a9ee9ebcaaa37, 0x968a7fada3158ae2], [ 0x742ce74c84756f2, 0x69d3987220f40b49], [0xd291aa88659b2297, 0x41988c11f59e49b0, 0xc45dac7d6d0778dd, 0x2fbdcc6d0a3e0a04])
+ self.mul([0x293acdb7a9989a73, 0xe5c63816e339434e, 0x3e4c4ffd60757720, 0x3fa7865f7ea57da], [0x670ed4c39c115aaf, 0x85368c831e5ef0b7], [0x10990c40589118b4, 0x2873bb4f00c777cb], [0xc97dcf3ae05b0313, 0x12a9b463d5f6bc3a, 0xd487349a7dc0188c, 0xa05c5435b8ed2cd6])
+ self.mul([0x7798ebb99d355dfa, 0x2c32b7ed75b0eb15, 0x4514e8df669b4a5b, 0x3eaf56eabf7fe114], [0x1317d58e7126e5ba, 0xd2c9ccdda742f17c], [ 0x8eb7c00bc28f29a, 0x9bf0eec8f469f784], [0xc7608521dc832947, 0xbbf44b951b2eebaf, 0xb6c85152ffe33cf0, 0x52a8210c37fcd9b0])
+ self.mul([0x28fee5318c4921e6, 0x4f5f8d581091bb17, 0x7d650d358bba5fed, 0xe3ab28904df6e419], [0x89b84b05232221cc, 0x25461bce7e686ec6], [0x160debdfbf70465f, 0x8bc40b4340e087e0], [0x53a57a64a1a5c682, 0x151fcecf852edfa0, 0x9d76cefe1443ff0e, 0xe55ec0cb5b1f2956])
+ self.mul([0xb6a227d19febd8e7, 0xac7c316b4a915242, 0x1e574446bc0295e8, 0xa78d57e36a2ee47b], [0x95b6eadab91c8996, 0xb08f0a7184a34451], [0x6acee00193a70645, 0xeefa5a5cb9a9c439], [0x4dd4a217b86686b7, 0xddc3605806f9e9d1, 0x958f27f0b239b94e, 0xabf2a91ef3d7f6eb])
+ self.mul([0xa43a2c990531d0e6, 0x2e6a40bb99b45733, 0xe58dc6797b8d3997, 0xfff90a086357cdc2], [0x15d4db1e2f199dd3, 0xc37b29319be200c9], [ 0xe0152669d54a1e2, 0x13921fdaf3b93a75], [0x9534b81c9bd136c4, 0x33314469a43992d4, 0x412c63d69886c9a, 0xa00f31d01b348d52])
+ self.mul([0x29e806da1ae5b6b5, 0x63586ba6890d0e6a, 0xe3b73615f5cd8e1d, 0xfc3a0751f18af532], [0xff57bc7fab26d83b, 0x7876270b34467ea4], [0x29cc7b88e011df6e, 0x60dd3e091218449], [0x49b066036e21acde, 0xe0daa1bddd39371e, 0xaa826aeac2ff8688, 0xcb9e7254555fb008])
+ self.mul([0xb2e7c188cd68e095, 0xcba94e44e0e92d8, 0x440c7edf1deb57f5, 0x516535a91f89784a], [0xcebc3bcd71623e3b, 0x78bce62af935a45e], [0x907a09b9322eb443, 0xb024fd72423f8fa2], [0xa29b2fbb702ceabc, 0x29bb4a3ec0ab83ab, 0x7f3d21d1d0a9bdd8, 0xa3281e786db932c])
+ self.mul([0x33eafa14bdb6b7a2, 0xdf5c326596c270e7, 0xa1148ab7256e9a94, 0x76b084abb198d2f2], [0x2b6efb9b94258eeb, 0xf8b9c61f229d499d], [ 0x8cef9ffe14a6c72, 0x9bb7c5ca6d239823], [0x4a03c7c067b9c7d4, 0xf4b65f06a2308f54, 0x9c1f4ce74f1b7edc, 0xe08340fc014a606a])
+ self.mul([0x2df89dab90cb90fa, 0xb772176f604adbf0, 0x492cb753b11c0091, 0xb6f09da3afdcd55], [0xab0c2095886cec21, 0x2c0fed5c4fd83231], [0x1eb73ed2ebab9d63, 0xcc81d6a5ad966949], [0x8313ae5dc60668e7, 0x963f99324da20820, 0x2cdc0e76f532d4e2, 0x56cc16595766e745])
+ self.mul([0xcacf60407066336b, 0x628bb2083659e81a, 0xe9b392298662be93, 0x2c7afbcd86b51d82], [0x92aa2266822ebfe8, 0x55db91b8a4243a8d], [0x74310ddb6b702df8, 0x8c7c10b71521139b], [0x9790e8447bd3dfba, 0xf933a9459e0f7dc8, 0x1e9b072b46d4da50, 0x40161087a8b8b49a])
+ self.mul([0xd8642eb3891c33bb, 0xe2fd7359ba5b5ab2, 0x63bc9d509eccfdbb, 0x9c04e74f0d798870], [0x12fbb05dedfbb74c, 0xf4d637b36ff96099], [0x100bca96af55542c, 0xcc08a61f00aa8d37], [0x205f0149f12261a7, 0x7db1a24b59ae6d48, 0x33ece1a91c4443c0, 0xae5226fae5bc8af0])
+ self.mul([0x2b74d828982826cb, 0xc6982787e2d02719, 0xe1e8965aa2c4f55f, 0xccae712bf68845d2], [0xdaeb7be13587f6b2, 0xfebd722f3df6730d], [0x2529795c5d799fed, 0x3936d39d988c2064], [0x4ab373c709b38717, 0xd4ed3d8473865679, 0xa1d4039f7421aa28, 0xd5d6341ede14e1aa])
+ self.mul([0x82530e6d6bbc0009, 0x9ddeb8342d8a083a, 0xe638fb86e4dd3526, 0xcf5334e002ae8ab0], [0xb066f9ea7b370009, 0x54efbf378a94e93a], [0x59cd863d2157b288, 0x62adb1993b08ae46], [0xe6526e9d642cea6d, 0x8febe19252ae403, 0x7a8ace56c6fb38df, 0xe369cac85859be0])
+ self.mul([0x787a36fe8a79d842, 0x7d00f95cd21117b5, 0x18184c8c331cf03f, 0xed9cb6130bffa656], [0x93f60e076d68f6ea, 0x4a39010e901e6acc], [0x45a1f99f2ff3e410, 0xdcaf62b25f547326], [0x1f9c96d6f6521738, 0x59abee056ab97c41, 0x5d759e564d2232cf, 0xd6079e5f48ac2888])
+ self.mul([0xda278a041cd9f261, 0x711ad623f3a5b463, 0xe4d9123943d9f1d5, 0xef95043e1c1f2ee8], [0x4b4d5054d38f7623, 0x286e300d51dc5447], [0x402b77c85c13f171, 0xb241750243032e2d], [0x6d151d2105c8acaa, 0xa63a7dcd7b6ebfe1, 0x2e823f191f607a39, 0x520f78dfbf6a2258])
+ self.mul([0xd3a1a87a60cfaf7c, 0x95ba326a731c67fe, 0x8a83ce2846e730e, 0x4487d47eb10599d0], [0x69e82caf65cd6c30, 0x81ea0416c5d057b9], [0x578d3d8ba93cb8d9, 0x816e08b22c24b947], [0xb0d3e1a67b5f783b, 0x1d941d8ae8a246ec, 0xa742ec4d92bfa9c3, 0x898b3980dd51d750])
+ self.mul([0x3b048853b9633bd1, 0x714972262f762191, 0xbc6e00689265bc44, 0x20e3fdab2192d596], [0xd3dcd5161d81b130, 0x362769a5a96619f6], [0x30d7a562085ee599, 0xf57171eb224f1405], [0x6da79ac9c7e31d94, 0x3b5b5a445bd2f834, 0x6592149f7df0b698, 0xf54cf7e8b9b8e424])
+ self.mul([0x535236ee68a1e288, 0xad7c2f3c19d1b5e1, 0x522bae6ed806c7aa, 0xdb4399baf8ba0bb3], [0xa189c3d41b44c3eb, 0x5316ae1c5ddd3549], [0x34938b47fe30f2a2, 0x1995947c6a463c74], [0xf671d1886416c857, 0xee3fa6edb51d24db, 0xf7c9a3123a41d4ec, 0xda8dcc3f9200650b])
+ self.mul([0x536388bcc2614edf, 0x454a9e90a3b1831d, 0x60c2d7a294beb9ca, 0x6cc984d3a38f84ea], [0x2f6aad538e9ed8bc, 0x33252c60ee52ee27], [ 0xf7205c6c0fa3234, 0xcf7768bd86ffbc13], [0xad530ec6d726c24b, 0xd1fb5062066d0ae7, 0x268e30aa824c278e, 0xe85df977762cba6])
+ self.mul([0x21d4f4e048a618d9, 0xfeb758c9cbedac7c, 0x1326039ce0ae9b96, 0xb80a21adbfca9f0d], [0xcc696331e53c23cb, 0x8e4195dce40b9a7c], [0x1b03a0971ca334a5, 0x157de0d4bfac0c26], [ 0xa3abc86e48aaa92, 0x6cbd05e9ed3f2026, 0x23f2335e76d50511, 0xc772c9113361dc4c])
+ self.mul([0xb4d5beb5f192d819, 0xeeebf9a1215527a, 0x71d1a6ca05848771, 0x9de201063d07d4e8], [0xa8d608cb6088e9bb, 0x76277ae09d257716], [0x7743760b2a451690, 0xbe5d05be55d0998b], [0xf3980908d43463cd, 0xe45daecef15504d, 0x1bf10c708ab54ca, 0x1ae3779bf02c23f0])
+ self.mul([0xdc960f079c56d033, 0x53ec16ff1421d6f9, 0x27cd4115a6caff18, 0x43579ea29c0d7321], [0x416e3514350dcdc8, 0x8971d26f53fc69bf], [0x38611007de83ee2c, 0xfab406ecab3c1f43], [0x9198ff6df223844f, 0x93cb650eef035be4, 0xb75d408729969941, 0x3bf10433f9bd6e9f])
+ }
+
+ func test_mul_4_by_3() {
+ self.mul([0x1d05a8e4ceaf89ce, 0xd8fe95eaf0124d0e, 0xaec184fd91e90a43, 0xf201e8300fcc4691], [0xd643ef8acb2283b9, 0x6a4161981b401c32, 0x73f9e551f36bdb41], [0x184a6ed27d6ae40e, 0xfa88c2dcf686b6a, 0xcd897de346d716bf], [0xbc215ec10246ba71, 0x1d5ce851b5f45f7a, 0xaa6718364314ec86, 0x3ffd9bf5e4d6f5d1])
+ self.mul([0x8c35d83fdd4f0f38, 0x22379e8b15e7c0bb, 0xe1f4880c64110950, 0x5f33b319b9f7afe3], [0x28f37573e2947282, 0x9f643b93b42207cb, 0xbe6be888b148a064], [0x166dc13a53519802, 0xaf55fe85674a57ef, 0x7282b32053b14239], [0x7ab22f888af4bd7d, 0xeb5bd7711eef8ac9, 0x6a77a68583d21789, 0xe9cec124dd8694ac])
+ self.mul([0x777215d240366afd, 0x74405fd15409d751, 0x483ce271b63c8865, 0x87ea978f98d164bd], [0xa4a57d1f7848dba5, 0x1c6a37b788eafeeb, 0xdcc24af81824fe3c], [0x4cd24ce4253e063a, 0x5a69da61eb7fa2, 0x66f174b45adb22ce], [0x9e65aa9047b88841, 0x72f5dd23cc002176, 0x75956de5bcaee5e1, 0xb9135743759b224c])
+ self.mul([0xe95458b944b34ef0, 0x323b7c77385d0147, 0x71ba1a22984e86d3, 0x1ac4d94d94bf21dd], [0x74c9a3d26e41096e, 0xbfcccc210fc5e69c, 0x6be0abd998a19039], [0x6a7200be1cc47469, 0x6270ce0e2e6e008d, 0xac18055c06124a33], [0x8f0c40a95bdffee3, 0xc355a6822acc1789, 0x930f22d5602bb12, 0x2c2e61962597da35])
+ self.mul([0xa2d68af1ba844bae, 0x448be5d191f10b02, 0x15931ce22e54c23e, 0x83876d4b6e98181f], [ 0xe6e64a02f4e2fa2, 0x9431126648672206, 0x21d70635681d4c66], [ 0x92df3ca9e85c419, 0xd14f25e28ff05463, 0xe92316499ffd3ce9], [0x31d20589def770d7, 0x404bec739d71196f, 0xc190950628666f7a, 0x59f7fa558b45d05a])
+ self.mul([0x75500448b66ec025, 0x81ae09e7eea5bf70, 0x109f701082c95604, 0x7fdae869db362759], [0xa38d53d134583fcc, 0x4b1270d55f95b8eb, 0xd73e9fc470fdfec2], [0x4af2b63577e8c377, 0x1c36ad5b1e947dd7, 0xdb0cbb5e5c92cc1b], [0xd28e378f88c0e189, 0xd7c1eaf3e8b555cf, 0xbe13e6d9f9ca2058, 0xd576e497ad091f72])
+ self.mul([0x738571dce988b75e, 0x60a15a36f6fad0a1, 0xd63574a36c5988d5, 0xe825dfcdbca260d], [0x2dd99c46e76e3169, 0xadef655e69fba040, 0xf10dcad54d058f63], [0x14b0a7a6a99de137, 0xafc6d41ba0d3a86a, 0x2a1edbc4dd9cc96c], [0x506463b15b75c307, 0x9bc3ab4272045e3b, 0x3053e99c5b083f76, 0xdfd79ac491aefa07])
+ self.mul([0xbce33f7b843d349b, 0xffe4b0109e1ef383, 0xe36446cb64a829b7, 0xf4d406954a6854bc], [0xadacf70c1a33f976, 0xebc924140be8c522, 0x7f3ce69eefeee41d], [0x802530dd4f96c9d6, 0xfddf6e40f3e77ba9, 0xc6d0b04f99db311f], [0x15cb1b74978c5eb6, 0xd768da845308389a, 0xaab60f65efe96f99, 0xd9b97d50a411094c])
+ self.mul([0x8daddfa1e48b0d5f, 0xfe5d043fd580aed9, 0x48910219923c6d39, 0x1853a36229f682ef], [0xf32179936c6e645a, 0xd996849cfbcff9a2, 0xe2257c4bf4063f07], [0x868e91f9455bd533, 0x63df8bc9df302151, 0xb877740bbea07f78], [0x65a808a02ef98099, 0x59df4214b7661633, 0x7bede6524a88bfc7, 0x40f9b09aad906589])
+ self.mul([0x992383bb322a08e6, 0x293263598efbf702, 0xb835223519a39a70, 0x8877e1d50e615f56], [0x38f94176cdddd0c0, 0xd5826fd63c0cdaf2, 0xb432a431e086b7f2], [0x2214df852a045de0, 0xa1ad1266f9ce1157, 0xb65a4ee06eb273d4], [0x8b8e068dc7e74b06, 0x58044d49844d23df, 0x4f7edbe976fa1ca0, 0x8e5fda885a36994c])
+ self.mul([0xaaa42c46ccf4c863, 0x89f38ded21f7398f, 0x4cc0848e3be68fa0, 0x2c3c6c569bdafe32], [0x7fc27bd998effe7b, 0xc2b31aa57cbbac0e, 0x3ff38a71ac36a5a1], [0x552914ee99b5c097, 0x57060e9f45be3919, 0x76e3961894e4bc80], [0xadf8dba74ffe020e, 0xcd5711f07ed23b0e, 0xc8a82286ff015430, 0x3ef71ff9611c1772])
+ self.mul([0x16b2fe334614a01d, 0xf056cfb064cfc462, 0x4a60e3cf2b7b5c15, 0x50537076106551ab], [0x5f1df1b6a34b7cee, 0x541751649335b1a, 0x1d15c098fbe88ff8], [ 0x86f140a85da3e8d, 0x699f95d9049959aa, 0x870f221a1e709c11], [0xae8d6c3471525d9a, 0xbe779824c268fa72, 0xbcbf3088f6d4f0b9, 0xe528d5f526bda2a8])
+ self.mul([0x3afb510ed77fc120, 0x33d3f1b00e375efc, 0x606eb1718272c3c1, 0xe132e663c4240b62], [ 0x9a6efeb631f640, 0xa0f0395817f6be31, 0xb85fbc590ae094b], [ 0x2394c16f169ea4, 0x57f5a6bee7234c80, 0xd6a6c08c31827cb7], [0x4c20d2fec8b5e813, 0xf4bd8298b97e3ae5, 0x24dfb55095cb55f6, 0xe0f670709791c7b6])
+ self.mul([0x88d1f0ad9bf514af, 0xd91f165929144300, 0xabd101000221be9a, 0xfebf390d5a33e84], [0x71079e883519052b, 0xa291b78980a4a979, 0x59598b882a6ff94e], [0x3c68bdb4950a4a69, 0x2ab4b2dea7bfd1ff, 0x43dac0d84139ee05], [0x144cdc81e35317d2, 0xe190480038b819f5, 0xf414824c94c4983, 0x7a346216a2c77038])
+ self.mul([0x3974d57ef709ee10, 0xedf9868e1faf0931, 0xb343d1a8d0d89c7f, 0x7fa6a92f8576472], [0xf7045220f1fd6a50, 0xf8c15f4c998ab7bb, 0x14d0f7fb75d6d9b1], [0x3770b23fa7a3a92a, 0x2f270441edee89e9, 0xf6da3c32763f7f5d], [0xa66c346346c8b837, 0x427e95d7ebc22dd, 0x224ed3408d84c378, 0x5f0f47dbd9dd14d2])
+ self.mul([0x5d1328addcfe9be9, 0xc745def39195aa30, 0xa95f9c3c1dd77807, 0x5415ec418ef50c19], [0xda8efda2a1b1631b, 0x8d12e1c0990391f1, 0x1becc57c3acea369], [0x4f764d7baebe8249, 0xedcf9a3650706a34, 0x65362eb7477d1ca7], [ 0x782c186949ac846, 0xb08bfcfedeccecd7, 0x1d06842973859831, 0x49d4bf30f53e141])
+ self.mul([0xc4357de7e7c10aa0, 0xcf294b4992ea5786, 0x3e1e3ba0e797f9ca, 0x2bc9dc93f180d60c], [ 0xe91f928af29a299, 0x2f6e99a8e97db199, 0x2b92e13dc3b0a817], [ 0xb2ace26351989d4, 0xbd7a56709b5c259f, 0x94780d0cb2fa8d81], [ 0xe4d9484016a3adf, 0x1e1523a4f5113a3b, 0xe91df7059eaf2acf, 0x9d3aa0418b4b1b14])
+ self.mul([0xd62fc433cacc25ad, 0xfe12a390b67a95cb, 0x78810a07059dc824, 0x177c9e60778a2b28], [0x3269fb406d11de6e, 0x196671ffa32bc489, 0xa86a37fe17169e9], [0x2a2e0020536b2baf, 0xeaacd97d1a4c841c, 0x163142d61b13fb33], [0xa225f8d7b23df8a6, 0xc7d6f2053151ab3b, 0xc9fde73308cc8a12, 0x9cfccb97ad1caf68])
+ self.mul([ 0x19ce6f9775099a1, 0xa5f9f69d0c9ade95, 0xaf0decaee141cd53, 0x6026febf7618e93b], [0xa276d6ee6def3b8d, 0x92decfe825b04035, 0x13d49a495cce32eb], [ 0x10609d6fe22963d, 0x512df2f7c4dde329, 0xc28791b4c214c092], [0x640135596fea1dc8, 0xb0b80841b953ff02, 0x4bef078d6adda809, 0xdd533a8227e59f29])
+ self.mul([0xe1faffb61be53b63, 0x4e607e9d950e699a, 0xe23e33802363c953, 0x62a041b6ff8b347c], [0xaa2083fd7822815a, 0x3d58194a377748b1, 0x1f25d425995fd5b1], [0x962d61b2153ebab9, 0xb3e7c84a6203aa9c, 0xfe281072783841b], [0x64ec890df965f7e1, 0x33c022d171ed83a0, 0xfef0af778a03f3bd, 0x199eff1817ee75bc])
+ self.mul([0xe0121b773fbb4623, 0x88ab54bcf35012c9, 0x58bd9c4fbd2b82d8, 0xb92399d13e633c04], [0x4298c648282f5dc1, 0xf4184d2703ef71d7, 0xf6645ee209e2a4d4], [0x3a4a636236be5dc9, 0x97620c1351940c77, 0x536d6e6db4235d86], [0x1608f9af22c6155d, 0xa54b21b65fd9d900, 0x26a4fa7b9bda6957, 0x1324717e5c284350])
+ self.mul([0x4fa218940984b790, 0xe324c17f1f4a23f1, 0xe324d512b04a18bd, 0x199ae89c4ff352ad], [0x7836bafddd1624fc, 0x3dd0e67aac1a932b, 0x8306e61b8a55f511], [0x256501e15183e3e9, 0xa3c1d5de83ce840c, 0xe8c1d1dd2f61f273], [0xe3ba4a59b2869a08, 0x10900b28adfcd3ca, 0xac28255fde003545, 0xf4e5e77fe2b90e7d])
+ self.mul([0x34619a8e986a3821, 0x6813de097b39d71b, 0x66f0842652bcd332, 0x16a8226621fdea8], [0x7ae594675a6ca169, 0x315e9c332eecedc6, 0x4d8336c51e85e2bf], [0x19257d54c9511fcb, 0x1abf38773be08856, 0xd2245afc4b59bed7], [0xf0dab1668e70c763, 0xc4a3559e281bc515, 0x5a307c4c8eb2b998, 0xe6437b31b59f6f58])
+ self.mul([0x6bf8190a343ab031, 0xc6854df97b0f17b2, 0x163b672c951be5af, 0xe7e0528b1b0d33b5], [0xeb2806db86ce5ade, 0x3ff666a4788969bf, 0x1dc83206a6da7ac5], [0x632da0a4ae3896ef, 0xb9d34f29b40670ab, 0x1c3ed81605a35412], [0x3e37c298c31dedbb, 0x8decf118514a1c75, 0xb5138f364d1f0c2c, 0xf1c5f8f381ef0c49])
+ self.mul([0x3e30a5c07293200e, 0xab7b6fccaaf63a1f, 0xbc033720d86dd389, 0x175d222ea8fe89c1], [0x8138eb782493b0ff, 0x3fd5bf4e9ccc0bdf, 0x7efe8f4ebcfb4e87], [0x1f64575e13ad46f6, 0xdc8cfed3b16f7036, 0x3a84278aee02b4c5], [0x6d2a9e0660b81aaf, 0x1e09f23cdf3bde58, 0x7c7482d53a5358ea, 0xd260a4a1786e72c7])
+ self.mul([0x39b02c4581bd7435, 0xac9805606f0e637c, 0x9ef1ea9dad430f18, 0xa4dee105f5447fb8], [0x16c3a7a7a1855e2c, 0x18ab93852aa0326e, 0x1f753b17a27025f3], [ 0x5213ac7654c2ddd, 0xb1ea3808657c8a9d, 0x654563ba8d8a2534], [0x3a1fe7b7c4a969b5, 0x9b93f6182572cd70, 0x7a697fbfe0a2dc06, 0x6794fd6d06fad3a8])
+ self.mul([0x3880e6c7d3df3bdc, 0x53996e42768b2816, 0xc6e28d4ffce7e0f2, 0xba42d0fd27546644], [0x75f8cc5c04da1d7c, 0x65de6c2d11bf1afa, 0xc4941ffb21696e2], [0x1a09d373ecb69b25, 0x6c1d795c2037fb36, 0x88e81b5c9cac0832], [0x9b9134cb6378be4c, 0xa56ef8be6ce2522c, 0xd978f0fcfe12abe4, 0x84f806a03e462008])
+ self.mul([0x4c1ed6f6a5c627dc, 0x85edcc7a0d9cd5cd, 0xd297f0dc06036bc6, 0xbd006acaecb89b07], [0xb2f97d7767e0e039, 0x573118877e39264, 0x3513b656f7112d9d], [0x3537a0c5255aa732, 0x3049180907bf8dda, 0xfbd9521b187706ed], [0xd3a20e6b861cdbcb, 0xafcb6656385566f4, 0xa023b03a6576772a, 0x96a70e3facee4e4b])
+ self.mul([0xf9c42afc7d9e6f1e, 0x7e39e65d4218d041, 0x458f4886cec9302a, 0x2a9210c63be83557], [0x55050cffc1e16f9d, 0xd1fef709ad4d6900, 0xf482ad150a64247a], [0x52f30fc966378d1a, 0x4fa67ffcc13871c, 0x6926a9ed50cf6b1d], [0xe2d415fa4cde22ff, 0x7c223f610bc31f5c, 0x7c3280b409e9fc4b, 0xf80482d27025a776])
+ self.mul([0x116a442c659cac4a, 0x3297bcb74350cf76, 0x856bfb18c9989848, 0x76671a53b8579bdf], [0x2d087f30106e6c93, 0x486eddaf2cd2f4dd, 0x1b8325e70ee9477], [ 0x31041f4ec1cad39, 0x1f32204a6b865616, 0x1f97244cc7e3ae6c], [0xd639bd6afb82d017, 0xc3a1c08fc5f0daa2, 0x1ba6ab92e728d457, 0x73862303d02860a9])
+ self.mul([0xff28d1eebc194d50, 0xafd4e8d38abade35, 0x8d73c5f1bee1cbe9, 0x5c82dd310642d910], [0xfc37ed001ed7e00a, 0x6bebd713d32a3bcc, 0x4f4d02f60d794318], [0xfb63eca5048b48de, 0xda643785c725e6fb, 0x1cf2d135cc2dd6b2], [0x5bda68eb16182612, 0xaeb48788cb1fd91f, 0xf55b9dbfe9cab2c, 0xb964a13a7da38980])
+ self.mul([0xdba1c5e7fb5dadef, 0xbc88efba689db33b, 0x9b4c8f66848e91b4, 0xb6fb2c61a1f1680e], [0x4e4f8b11baaefd4c, 0x32817c9f1d54e6ba, 0xb97bbf8720c85f64], [0x432f8888cd89e1da, 0x97573e0429ca14ac, 0x73eae0ad6f5cb7b3], [0xc6753ad9ede804a7, 0x52421293d75ee9c1, 0xb5e0648828cd04f0, 0x2fc49438e2d9d778])
+ self.mul([0xbdb0abc9c31fc2c8, 0x79038298f80c7c77, 0x3903acd0ee1efbef, 0xdb72341278267637], [0xcd04ad0468d70594, 0xfb2cb6e7acd58cd0, 0x8846ff276023eca5], [0x97e9f086e8f09cca, 0x2c7d9b21dea1f01e, 0xe554d35118c5bd37], [0xca3b1c34e839f64a, 0x1d838c8008c6658, 0xef222aea31e1289, 0xecd83ba2af49e573])
+ self.mul([0x680c0740b41f4ba7, 0x96609aba8fdb7ab, 0x22fc6bf38050a2e5, 0x69706f08670566c5], [0x2720b9b275a06d77, 0x3ea6ad696c6cd824, 0x278ba9315e67ebaa], [ 0xfe72214fcf0c8ea, 0x73a57d1aa912bcdf, 0xeea77c817eecbcbc], [ 0x622bfe76631a6e, 0x763bd67c351e9068, 0x51502dc47dc1b40d, 0x15a399c40e3015d2])
+ self.mul([0x7164b4cf7dbe49b0, 0x8f5eb8ba808ae3fd, 0x3df5f2511add3d84, 0x2d42ad1a4eafa68b], [ 0x379ca2335145a63, 0x39cbad3ca9852d8d, 0x9bcb2badce0be370], [ 0x18a2040f37ef8ba, 0xada5fe9f2dc05456, 0xd5754e0ce0ff772c], [0xcde394743afc720a, 0x78887e4212b2476e, 0x1954eb046a5005cb, 0x6f02adc72f7f1dd0])
+ self.mul([0x6e6e537afe10f0c7, 0xb33c082a60e379e5, 0xa8155dc1e10f9059, 0x7cc6e1dde3aaf479], [0x7579e76bda047703, 0x84fcbe1b14720236, 0x42dd2469798ae55], [0x32ad0220bebc93dd, 0x656472ce2421b3e2, 0xdbf0ed94402a0b39], [0xf745f41060856f96, 0xfa40dbcaff33944e, 0x29ee579de91721a8, 0xf325ee3550c56a2d])
+ self.mul([0x831472a03a2674f1, 0xedbf6296411954a5, 0x9167f26b7e386134, 0xafa1e876f325e8d3], [0x4e9406d039e730f3, 0xbbcf1fdacccf9397, 0x3d346cfc37c2caf8], [0x283c063c2f4c2773, 0x35e252217761315c, 0xd921727455bedb5e], [0x1037906f1c7dbca9, 0xeca662490607127f, 0x60a2a63917318c91, 0x880eaa8b3b560a68])
+ self.mul([0x5ff76c1ce440eb8f, 0xf8523a14005ddeb1, 0xddb20ad5eea72f7d, 0xbcf0b335cb9199dd], [0x568a9f1a3411b3b7, 0x6547e6818b149e0c, 0xe339f011efc13817], [0x207115567b0cab97, 0xa6a439c90075ba54, 0x35f174eb5745a037], [0xa90d1f0e850f263e, 0x1824365b6fe246c8, 0x4b22f63b6f214f08, 0x338ead74765a2adb])
+ self.mul([0x1a2fc5063cf8031d, 0x87983df65ba47483, 0xd08aac13411e2284, 0x62187c6bc3b1b9a3], [0x5ee87cd6f4bb45cb, 0x36f2506d7a3f1cc0, 0x301c9b384b0ef54b], [ 0x9b55267f870ba79, 0x4aa7648b02ad27c8, 0xdda5c22331aa6c9e], [0x7135f3bc403e0837, 0x9ab4eb98c405d664, 0xe75330ea42b89802, 0xd493a79e53a461c1])
+ self.mul([0x7b461c8f8cb040bc, 0xc9f00b1fb359929a, 0xfc799213eac70001, 0xba5ab423d09ef83], [ 0xf42c230fad31f3, 0x4f2c55e323cf81b5, 0x17282d1bedd3a9d], [ 0x75941427dd2de7, 0x868ebe9f6c091895, 0x85981238f84ab761], [0x96586f9787c68b8e, 0x108cc94add7956ab, 0x4542e4f1c0304775, 0xbaf62abdad729157])
+ self.mul([0x58d7e6003d3bfdd3, 0x10e5e1a9d2befc66, 0xb409299f269ed2e1, 0x189ffb65b4f50e34], [0x3d3d179574978898, 0xeb22de8c8787e29, 0xea2fed9edd539b25], [0x1540a56f206f3163, 0xb68229cfb8c1ed2, 0x86eb393b09206110], [0x3d447892d54cb4de, 0xa33aac84bc57513c, 0x91b0e942be0b43f0, 0x6c780b1205e08984])
+ self.mul([0x55728958a08d4454, 0x9095e1f080089fca, 0xa9b9a6869389a2f3, 0x808e7d6e54aeb927], [0x29ec01135d9be423, 0xa94798ce9f89315d, 0x9c34fe0e8524d8f2], [ 0xdfe1df1b8b2d0c5, 0x4556721a8da7a110, 0x4a74d50c913bb907], [0xda85cb2f3b71961b, 0x108c9650e7a943b7, 0x24585822a7ac5466, 0x13392aa4c5dfeede])
+ self.mul([0xeed1b7a3b8512eba, 0x41838e2a1111a152, 0xbca458c4ea1b03f, 0x6a03028a90206758], [0xa3eb0edfe3bbdc7d, 0x5e84229206eef880, 0x6f919e71553b1d33], [0x98ead05126d305b0, 0xfb620e007d5b97d9, 0x483e3a5ff2fcd969], [0xc0283c59461ba968, 0x9cf990252cbe95e8, 0x5565b9826bfdf975, 0x5c9b1b8e6b718e88])
+ self.mul([0xa0a19d546288f64d, 0x62791b26a8c0ebf4, 0xf40f7dddd91a7a0f, 0x1b1937a37914683f], [0x8e49e898e15b20f7, 0xc51b477141656522, 0x1b155fd135790fbc], [0x5948054d0fa92e7d, 0x8c18dc9f94dd5864, 0xa275e8f9aa2e8bcd], [0xe54fba7d3a97c65e, 0xcc5b21c4e3ddf9f7, 0xd2aafd8f59746c8c, 0x23a060ce6ddf3f44])
+ self.mul([0x8596ac33f34c350a, 0xba833a14f1e10666, 0xc61a2c311937e34c, 0x6f782cd388f24325], [0xb77211a3e07bece0, 0xe376a7e2a217ab1b, 0xcbf94051105e7889], [0x5fba3b6657916bc4, 0xb64804b3503202ea, 0xa259b812200fcb79], [0x397c4cb21a4823e2, 0xbe94b66d74ae8b04, 0xd69536044cca1509, 0x35fc1141d0b546cd])
+ self.mul([0x4a20837c0b281d10, 0xeb9a110dce9aa375, 0xbbbc0fff370108d2, 0x833f079b6c32ad0], [0x3296596f08281e9a, 0x268269338a588dd7, 0xd5f102a22a74abfb], [ 0xea5e2a0b90823e4, 0xfc46d77154d468d7, 0x69a0d0be3dab4ddd], [0x16814884d7d37f43, 0x4324336f104c3c1d, 0x8683495427ce43e3, 0x3757a1801533e9f0])
+ self.mul([0x307f089d0ff045ec, 0x6a64c958f97f411a, 0xacc94d90f1aafbf0, 0x30ad181fa017ed08], [0xb7f1cb47e12c903c, 0x79867395dfb23924, 0xf838888bb8230d67], [0x22d89d41bbf8ca1b, 0x3658ddbd7a726173, 0x8c314d95cfb287e8], [0x904221abfaa0f95b, 0xb0e07d72ef576d12, 0xdc93606aeaecd751, 0xa3ec58d5c8c1c638])
+ self.mul([0x9e40f9f8b0fd5e96, 0x5381a4ba1308d9d8, 0x42019e85b599d9e8, 0x90cb52e3726dbf75], [0x8c1565429b5891c5, 0x9ca74c629ed74d8a, 0xeadcdcd3d1d74861], [0x5698c2a15198bc41, 0x6b6ed580f3bfe13, 0xa424a72052ac7e05], [0x4293ba4ab3c488b0, 0x9cb9709d816c4520, 0x47647f9ddcfe6877, 0x75546d4689b17355])
+ self.mul([0x582fd5e2fb2879c4, 0x5900684e0f7ef3a8, 0xc392b77b11768d63, 0x5b3c0bd4d1e8e122], [ 0xe0ee2b2fcd4f3ff, 0x3bb210a7a8f33011, 0x571bd9560a8f6ea4], [ 0x4d7be67ff537ea1, 0xa6af98feb512d799, 0xe03a2e924eef53ee], [0x5b5136c6dc95d21a, 0xafe52681cf52df10, 0xbd044f9fb9b28e9c, 0x6348d3d59fead5c8])
+ self.mul([0xc4079f67aed1016b, 0x46c9c26c3756141c, 0xe3eeb764b684804c, 0x7b3b5997576fe84d], [0x99affa110545fb20, 0xf647d396921018db, 0x274d506574dbd205], [0x75af4ef76991fdcb, 0x8118f068fd9119ab, 0xbc935ec30660db81], [0x685d20c35c9fccc8, 0x893a7bbd62533071, 0x3cffb29e8fad7de7, 0x61a51e0e1f9db381])
+ self.mul([0xb35ff877491f268d, 0xd0bd7652621c0cce, 0x740aace6b93db5f2, 0xb9bee7ef005c549e], [0xa17c849451a37ce4, 0x5e35b29c65adb4af, 0x5745404a51acd670], [0x71269aa4c791143b, 0xa4c805beadf16ef6, 0xe40fdab5096b6ac6], [0x51deb8e7f06e950a, 0xe839f56ce1515c84, 0x8dc06864840ae9f0, 0xfd86ad582f491920])
+ self.mul([ 0x71175d5622e2ccb, 0x71d8e03c05b429a0, 0xaf2285510f1ebe32, 0x41c799ce0b067aa4], [0xec53d9753c8f161f, 0x9fd9043d37edff1e, 0x7194b5615812417], [ 0x686694af43a2bfe, 0x4ad8e02fd714440a, 0x4bb0f6aeb9249802], [0x25208d90455dfe1c, 0xdef939856f79954b, 0x2ee1a9e86483b19d, 0x726a207b277814bc])
+ self.mul([0x296a7127a660fac2, 0x92ed398a2e8be6b9, 0xc7fd5c59e9ee998b, 0x338eaab8efc2e265], [0xc95a94f5631c4a63, 0xc8f95f838378911a, 0x87666e317a23ef8c], [0x20933a5d25e4978c, 0xd89ccf2057ca5ff2, 0x7c5ae02744aea0f0], [0x3bd138041d454b8b, 0x50f1cf275939db65, 0x1764a68146969bd6, 0xf5c667d825bf1a3c])
+ self.mul([0xd292d4f2f153b8fb, 0xf92c766fcefd1a76, 0xe7b04d39be33e58b, 0x5984c6010126531], [0xdd96a87bef4eaf00, 0xa667261f1a4ccabf, 0x83b16f14876985b5], [0xb644ae74cdd23a57, 0x682371943e660d06, 0x520530d5dc674917], [0x6c23f0410efc065b, 0x534b197977cd1af1, 0xae54f1abdcb16f79, 0x556d5a0143ad00a5])
+ self.mul([ 0xd016d4348d32c93, 0x83a779fb15b2591c, 0xc708efecbd231262, 0x5abbf27414cb7790], [0x567e835f44295362, 0x92fd152d6682ae4f, 0xb6586a60ab54edd6], [ 0x464e814f37c3da2, 0x6c91285963c72569, 0x643f598f09f7cfa2], [0xed0d0f8a31f76899, 0x5a3ec8541128084d, 0xf498d271d2f44b5c, 0x75db55ea2b064260])
+ self.mul([0x93391209f188eda5, 0x66acafd4c2dec39a, 0xeb283f2179b79b93, 0x81d184f11775cd21], [0x11cd0cc0008601ab, 0x310e0da33cefe7b6, 0xe6bba4173020aec6], [ 0xa3cb63b32f3920a, 0xf8b6327ff61d91b1, 0x10b42e8dd966757a], [0x85ec9e55420a9c47, 0x7b1b68aef937649e, 0x8e4f9f48dc5d13ef, 0xb30b47910aa91586])
+ self.mul([0xcc89fae4129b7a10, 0x642ffbb143d3e6e6, 0xf38b9635b76b700f, 0x159a1cdbdf2820a2], [0xdef50cfe44e5e1d4, 0xfdb5f1036557354e, 0xa8ead71aed278ade], [0xb2237200841e9451, 0x3dff44f2409b23b7, 0x9bf6dedc86369082], [0xfbe240b0c6ceb08d, 0x3ce10110b102c65, 0xda6c6da69c38a81f, 0x43da10be1911a07c])
+ self.mul([ 0x24474a61c3b6f23, 0xc7ba410068765d8b, 0x5eff5a5b3973e6a3, 0xba82338d1198d8f3], [0x725a80eb49ec86f7, 0xbda634639ee428c8, 0x3a680c614121168e], [ 0x10349274aca248d, 0x919e8da393b9d011, 0x9e6e428b056528de], [0xaf5c7505bb376e1e, 0xfb972258c9b3a8a0, 0x6845b55aa2597d16, 0x211b639f8fc038ca])
+ self.mul([0xa127e2b66f45255f, 0xd8058fea14418773, 0xd3cea7841c6cc686, 0xdcba84ed836b998d], [0x2409f13a14d89abf, 0xcff3a5c2a412d644, 0xc48450a245b86d8], [0x16afde23bca6378d, 0x6144e259be6a7899, 0x6b1f7d42e02bf2c6], [0xcd07fe3d026b657e, 0xb2a455b603f4f222, 0x5af2171dd99aa8ef, 0x741c548a9e485cf8])
+ self.mul([0x2d37722f4fab5bf8, 0x98644284ec9bb596, 0x469459314bf7cd68, 0xde924630388b30ed], [0x209c42f67c17de6b, 0x7116c4da22de262c, 0xc4fbd2c94cef785a], [ 0x5c287e3536cf67f, 0x16ec4653b0a0a833, 0x10d3f7f9a697490a], [0x6b1e5e3b7b48c712, 0x55fe8ddce2222958, 0xa412550b8816d981, 0xa7ec380329214b52])
+ self.mul([0x73cc902d00882c06, 0xfeac4e4c8ed5769e, 0x11e09530d8afdb58, 0x7216901475ced43b], [0xa90b59b92bec6e73, 0x8a26f759b3e27bf6, 0x696b35fe00bc70e3], [0x4c772d8dc81b0f61, 0xde0c4e07f832449b, 0xbb7b4a8dc8219fcd], [0x756861284222f583, 0x890657032e649190, 0xd2b748ebd5be86ca, 0x74e1031cce940051])
+ self.mul([0x81b3b321829d6288, 0x8cb777fc0c21ea47, 0xdb5a72ab89010ce, 0xeba7e478165fe8ea], [0x44db68aa73408ace, 0x4f2d12a9f6c0ede, 0xb588cb8b3515baea], [0x22e2e55680db88d8, 0x5275694ba6befd19, 0xb94f074527a9c5b6], [0x358bb6fde3d871f0, 0x737ccc4d54f16003, 0x110bdd44343b8bed, 0x6006cc2ab016e9e4])
+ self.mul([0xc7c648211f613e0a, 0xbb09754a2fd14c0b, 0x4a5205f3bdf1f79a, 0x22d25f0ea4a6c0ef], [0xa7e4cf725e6dffc3, 0x5ae051e8d3824601, 0x6e617e47ef8a082d], [0x8304e7886d47eeb3, 0xb076d1661a04f9e7, 0x38a1728bb56aa386], [0x8c05e911f5aa4eb4, 0x9968cf2d004b9bb3, 0x7eaf93109123a73, 0x2553bf04492d6203])
+ self.mul([0xca735283a37ca229, 0xc9d53df634f115bc, 0x579f50a740cdb8d1, 0x493227a77871c0f1], [0xcb8f1ad8060d11ce, 0x317e9b9459e9475d, 0x3f73c610d476cfe9], [0xa0fa9e1406a42ec1, 0x50f47782cc74d8e2, 0x84cf0d0c627785ff], [0xf36ab38bfb8f4ff7, 0x4eee9630f2ca6a53, 0x5b8602aaeb9fc061, 0xa13faf171da17a59])
+ self.mul([0x38b4bfa4920a2801, 0xd55395a044470741, 0x684f6951620321bc, 0xa719bc86e3d54b25], [0x3e491d90c18731b1, 0x4043a522cd888558, 0x86ae527f3d972df0], [ 0xdcbf8810b8bc281, 0x2434a151d94fc78b, 0x90f5b0e676cd4381], [0xbc15212631c8fde3, 0x76f189dac13e4767, 0x33b65cd5db11c642, 0x5026cb9439fef3b0])
+ self.mul([0x7e0db490847dcbff, 0x826d77e05a6265b0, 0x166ab95b58e5fee0, 0x26b845100a722446], [0x3d8f00d14a25aa1e, 0x6329be9adc4ed6db, 0x78d043973ba68c8d], [0x1e4fae1559fee7cd, 0xf007fb418a3038d5, 0xfd81cef28b5ae8e1], [0x27fe1fda76bf17dc, 0x6957fce21b304930, 0x9c8a12c2ee5302db, 0xe5c39b35d418428e])
+ self.mul([0x18eca1fa4fae5b5f, 0x8ae7d1e20f50dd11, 0x79d7592813376555, 0x38077fd35b71c280], [0x4eb2be7b1ffd6cde, 0x391879d5eb995b04, 0x644b47dd47246f72], [ 0x7a9806e8159758d, 0x3078064eb9965422, 0x23f8986fa8dd6750], [0x7d648ac24958f68d, 0x469aac4480484d7a, 0xc1b32426881cc4e0, 0x457f6235e5fe1d00])
+ self.mul([0x458a504d1f60f57a, 0xfe3e8105896f4b55, 0x4c98b254b3c04854, 0x2e6806f6104ef674], [0x53cd50c78d2abb7e, 0xc5d9741e21d38507, 0x80bb6c70e6ec63f2], [0x16c39dbcbce3dfd7, 0x446b0883d773d234, 0xf86441b4343cf8d4], [0xae556d72d954c03a, 0x9cc008d4ba2c81b5, 0x46d9f55973306c4a, 0xfc679e15ee3d5a8])
+ self.mul([0xab8c28c2bc8f0424, 0xe693c1c3248895b8, 0x42f78a37247a46ed, 0xca9174004d0949b4], [0x5c92e0687401f4c2, 0xd95dc6b148b19c3e, 0x55418474fd59f9df], [0x3e08caf5dd2ab52f, 0xec8f41fd9daa8412, 0x9b250f24a2172105], [ 0x4df8e5419d711fd, 0x1ae7ff47834c3ef5, 0xfa825e639d5c25a8, 0xbbaf82d2a75b47cc])
+ self.mul([ 0xd97c7aca1a0ff1, 0x3bac1858122f0d9, 0x21fbb1c52508472f, 0xae5a7fb771217fc6], [0x9b60497f37f71f54, 0xf09060e91f3c2180, 0x26fc9b714c97dab4], [ 0x84002b76fce1a8, 0xb33dca869b2dc998, 0x31381721e390ca19], [0x12cf5f3394a50064, 0xb7f2c7bc35bd11fb, 0x236426a9be988db4, 0xd63bf86938267338])
+ self.mul([ 0x3f0e89715253114, 0xa79fe9cc93d1c85f, 0x22a4d1a6e843c510, 0xbfeb9aaf87527d1d], [0xa00ab99c6e15ac47, 0x943f7532672a57c3, 0xbe813de5fcb94ec7], [ 0x276bba303b2d5d4, 0x8c8d4fe5eb23e9ff, 0xf5333d18017e563c], [0xcd94cd3dc2fa6e08, 0x58950b9676e05cb9, 0x8c6ac9f1715babcc, 0xd18b8b634933178b])
+ self.mul([0x3139ba68a7bcb14e, 0x505a5e8189757f60, 0xa148db6070134d34, 0xea54e8707a990d54], [0xedd7c51b2c30cf2b, 0x337ac43d1efe56c7, 0x5b9f959f8311b654], [0x2dbbeef51737106f, 0x3b4808ed669651c6, 0x620a98147e5e9755], [0xbdfa4668afe715e1, 0xa15300cf601729bc, 0x3478dfc7cbe7ecd9, 0x9c4ddd38e8461790])
+ self.mul([0x87e09fa72d119d83, 0x84db4dec088862ca, 0xc87f0afd1fb84e14, 0x9fb7ea36fc52bc18], [0x6c468ae3bb755bec, 0x4ff31161fc5e5363, 0x81a2156e3051a545], [0x3978347e2476cfdf, 0x5f20d108d640110c, 0x495bd90303d1fa13], [0x8b9bb68d322eceea, 0x2fd082917a0f49e, 0xfbbf0cb1a472645a, 0x5567b53559202a78])
+ self.mul([0x7f8dace052336140, 0xd8e4c1339e8413e5, 0x4e67118d1c6721e4, 0x7abc0edb8e5c1304], [0xc9fb23dadb8d9dc2, 0x3013ddf62deee252, 0xf903a09c8880e117], [0x64a35e820b279486, 0xd233847a174c39e, 0x1b5558cc4859165e], [0xd98bfbb6917fcaef, 0xd5887f055cd30c92, 0xf41a3e98d76b40f1, 0xca667c6c58fc395c])
+ self.mul([0x9855dc5928ee695a, 0x59b1a87b640a6361, 0x90a01266eb2219e4, 0x50326db80c26ec9f], [0x86694d4f5c802618, 0xd8a47838fc7137e1, 0x6af265d7ac5c737e], [0x4ffb9a8f18cf828b, 0x973ad1e1b9d0d2fb, 0x3d511c1ae130f048], [0x1a6ecede4f74981e, 0x309701aa167c40a5, 0x5c4b29adee3b801f, 0x4ac3a78c5497e342])
+ self.mul([0xdc0bdca42f9da7ed, 0xf2553c318d5042a9, 0xdc60f2c94b13a220, 0xe3338d8a2cd23f5c], [0x473d3a35d9656048, 0x855345b9eef919aa, 0xe7dacf51329cbc97], [0x3d3beb0e15a32463, 0x9768d928e25020e8, 0x961d8b5abfd5448c], [0x41f2790c71a67148, 0x913b63f6d4c2ec97, 0x4119a1412937c193, 0x4467c6056a9aef44])
+ self.mul([0x2b9e292b4123ffdb, 0x987f54d3ba6afb24, 0xd9df854aa889f3c6, 0x69f2c4447f9150fb], [0xd6f4bdaf98e20bed, 0xf44de4eb6249c2c1, 0xd7f01821bbdf250], [0x249fe97b153dadf4, 0xe7f6b053c8bb475b, 0x240a3a3b6c69cfb], [0xbf595a1fd4bc0c3c, 0xb81a932cd8f76eee, 0xf3b46df20c376dcd, 0xfe0db2487e459470])
+ self.mul([0xc857ac452cec38df, 0xb54dd266698e45db, 0x5b823edb9e757a4, 0xf1fd86d1fba1e7b9], [0x299f112a95fcf1cf, 0x5985c8d7ab1b3ba5, 0x831bc0a536f41445], [0x2092867a395c91f6, 0xdae1903fb63814af, 0x855f2c6e81730c2f], [0x477bbe1288fa9872, 0x9524cbe825f0df8c, 0xb321d1aecf296566, 0x8bbdd5b05b11e8dd])
+ self.mul([0xbdac86a81f0f002d, 0x71a279f24b1a0986, 0xcf37a38ec07b0c19, 0xc5bdb9fb4ab28e90], [0x93b2c52003615f62, 0x677c0dc4349f9eed, 0xa7bed34b8276317f], [0x6d6e8555a66c9511, 0x919d82a335f3c81a, 0x8e83de72ee4ffb4d], [0x7e09c2abce7c80c5, 0xe071f045d794a69b, 0xe5f9620b207dcf8d, 0x8c2bebd9123e4970])
+ self.mul([0xa1e20120cb0c5842, 0x35a8e910694e04d0, 0x93f5b0323196a300, 0x937c0d28491abf03], [0x73c976af117000bb, 0x48eef86db6613aae, 0xf859cd0b32d98ec9], [0x4937ec017f00b0c3, 0xa240040dd2e06d6d, 0x5a70381378fdb4d7], [0x9b5f9595cd8806d2, 0x8875953f76957492, 0x7b392984e4434a2, 0x80467a49bb7ea35b])
+ self.mul([0x67a1f1f32f96e8f1, 0x8889b501418e1693, 0xee496aa34912e870, 0xac3b02ff298cf105], [0xe60c9fca1727a21e, 0x143ebe8579ac1219, 0x40d1e206e9595320], [0x5d209ba738965cd7, 0x915b0c3ef6c55b80, 0xe6532c61bee21fe6], [0x66e8a558e7c04b1b, 0x8c28e59815d92158, 0x2814dbe642748ca3, 0x5c08e3d93b7fbfa0])
+ self.mul([0xb50a76693015c1e9, 0x2444132bace3405e, 0x722bc2e2fca806dd, 0x534e21599b11f2f7], [0x401a48713e9ad3bb, 0x9d73512190b24bb9, 0xcac3804e4f8917cf], [0x2d5533e559e63359, 0x55653907f0bbb0c4, 0x372eedf8f219966a], [0xeb4a081abca1258d, 0x951bf6b8c78199f, 0x6e31a45e1d9f5145, 0x1213123a3f86a6b9])
+ self.mul([0xdc986eabffaa54ad, 0x267c29ddca90ae64, 0xd406a490ee8f4696, 0x2f6d3505b419ec0b], [0x91ceabb0d7e0e9b0, 0x163d1c9b07dee6a3, 0x10a76588bf27348c], [0x7da46d4aaef602be, 0x84b351f46eab43c8, 0x57c935b9c303fbda], [0x1965e491967289f8, 0xda912d3d8b3a718e, 0xb834164b8dfb83b7, 0x6ceab9aeccc5204])
+ self.mul([0x24475fed7a31ca53, 0xb632ec7a809cd6f4, 0x89ada6a6df95ed3c, 0x4d6c123193c719c7], [0x763627c86303a3fd, 0x4327640c211c3fdf, 0x2bab23efa11e73b9], [0x10c092e8f7d2f714, 0x9c88af62061307e0, 0x44e46f79f5e9eceb], [0x61fae5cace6866a2, 0x809f617f0d8b619e, 0xf0054ce86289e99f, 0xa359398a67c805cf])
+ self.mul([ 0xb177bc23a6cabc5, 0xfca354de729f668d, 0xd3e32f158f462fdb, 0xaa5cef59840febf1], [0xef0d7a9654eb1076, 0x23b20f084acce152, 0x9d7ba2486ee616e1], [ 0xa5b820b51d36369, 0x8205b721902fd36b, 0xfb231f6f37e316dd], [0xa9b08f4320abbb72, 0xd6db662fe6aca34b, 0xa93c1c13f07a8156, 0x9aff6a7df8cb14d1])
+ self.mul([0xcaa80ce1d082ff11, 0x74acc7959d57a4b3, 0xab7c26a3280ebb62, 0xb4822a54e2795389], [0x29e80eca2d826f1f, 0x18093c3b3b459c8, 0xb719cf5112a170d4], [0x212c9e11145f40b8, 0x4a4473dcbc40e477, 0x98441635b8b64158], [0xf19f47eda4f5032f, 0x8e1ef66c5e520849, 0x6a54565d39b3ce20, 0xdfef5ce6cc2e1d74])
+ self.mul([0xdc7174d881459f00, 0x5fb95c2e42fc2660, 0x1da5bfb4945df80f, 0xde1f4e2b1c482edd], [0x68b789cd4547e0df, 0x8aa6fada1334824a, 0x2144ace5e99420fa], [0x5a2c233bf5539984, 0x1e5a0beb530f2872, 0x4bf8ad52d0e15152], [0x42d0c3277aca1bfb, 0x4d4cf3b7dcf6247b, 0xecf8fffa4a499e2a, 0xfdc42db5e11d63d2])
+ self.mul([0x19d5a6c537eac560, 0x659efbec87657eff, 0xa415ec5762c4394, 0x3627220de14a1ef5], [0xb8dc0c77c22f7ea7, 0xaa4e4c62c124820, 0xa91c317360fc6ca4], [0x12a7c4bb2b67434d, 0xfd60e498550d0835, 0xbda9a02854314be3], [0xd15b0df0bfc42b9c, 0xcad3e63a62bd71a3, 0x7f5950187a9c1a9c, 0x719a0990f1b730f4])
+ self.mul([0x3b50883495a1b7f4, 0x1c1e50b33ac60171, 0x543504dadcdbcac4, 0x2c4781876978616b], [0xe4be7485500f1572, 0xb7975f0165d2082a, 0x45ff16294f542212], [0x34ffda134d66563b, 0x8e00f677f74f844e, 0x6575aff4723dfdc3], [0xcaa282c53e8f0c11, 0xb2aa0971790013f4, 0x6a83ffe3bde11e95, 0x371a53a63830f86])
+ self.mul([0x2d6e073828cbf193, 0x5061b61f3b23f838, 0x22e76db0d21bcf08, 0x4e97a06736e8925a], [0x24e482d135dc5faa, 0x1f91682fc474e575, 0x46033861f7bccf17], [ 0x68c063953ce5033, 0x97bc681dc773998e, 0xa47af7fabf8f480f], [0x4dc03b0b43adfa32, 0x721c2d55f519e80a, 0x6f329e2dd3965168, 0xd4abac64d53ec16])
+ self.mul([0x68133317f0ad8320, 0xb290f6f996cb96a8, 0xe4c6b061197a11ed, 0xdbc299f21d039ed1], [0x805fb1ac84ebe984, 0xe6ce5c66e833727e, 0xddb089223fdeaef7], [0x343080e7577cc259, 0x6ef822ec42fd21c7, 0xa16d40386080b7], [0xcc5362a4df56a00e, 0x28b881e59ec1ac90, 0x57ab1929c02fc1a5, 0xc9a7164d9cae49a7])
+ self.mul([0x4e3685617792bbbb, 0x8edd48a6a59aa022, 0x9c4929620b819556, 0x966310c9acbce405], [0x469a233e3f1694a9, 0x788526d9b65788f0, 0xf30f0b2396cac445], [0x159200095c0aff7b, 0xfbd294efc62450e7, 0x54132c2c1a39e4ff], [0x707fb3d62ae34c28, 0x8da1446a18efceca, 0x4a291b6774ac0fac, 0xa2d14cf2076f4959])
+ self.mul([0xcd8aeea2c11520a1, 0x5111f9b6185af3cd, 0xec2edc5c2ec9d38d, 0xe2ce26efd38d711d], [0x6b134500f1bf6b10, 0xbe76f74f4e7795bb, 0xd642f10fb207b75f], [0x55f88a74f1338285, 0x513387a11c1479a9, 0xec6bacae0c101f05], [0x696a03ed5bd41927, 0x8813057fd112a281, 0x677767463abfcfe8, 0x4e3cf270df23b4c3])
+ self.mul([0x37c84b0a757451a0, 0xad1214cf2c7aa056, 0x4ad79c3d0de98f37, 0x17f3f35e0afbca5b], [0x8cff2d230f65241d, 0x4da231c8ea558961, 0xd51b82c0098f4eac], [0x1eb9236250947ade, 0x741d6652e5db78b6, 0x6b4421fcc5e0456], [0x2d780344dfe67795, 0xe0081c6a6f549b96, 0xf9aa4ba27bb146a6, 0xd42c218b54a8af24])
+ self.mul([0xae3a83e94492b94e, 0xff269554657f7ea2, 0x6d1aa1b41703f07e, 0xb78f8a739654f799], [0xaf8adce0029eb06d, 0xac8de0f30d1feeb2, 0x1d85ab37054a54e4], [0x7778820a4ff79c07, 0x182ed4b1a90a6c5f, 0xb80011fcdb8decc6], [0x35c9e4fb3801a483, 0xee0177d40ef92d66, 0xf91fec1965d4b71b, 0xe1bfbe8a5424b844])
+ self.mul([0xd7ea0bb9679f6afe, 0xa1de02ee58660d42, 0x7f715dbef12b2f8d, 0xe9f90581f7f4e63d], [0x5df7b0778fcda4a1, 0x818f9c9104afc6e9, 0xca965824851de2ed], [0x4f40ede969abfced, 0x9c79dd0668dd622b, 0xbe5d4a3e986162f4], [0xd1897c9977b5ea2a, 0x1cc830c735568188, 0xdd8b9c8c3afbe634, 0xaf45812886e40079])
+ self.mul([0xed03fcbdd90dbf4e, 0x4c5b115247e9fc95, 0x77c8389947dc48c7, 0x95c499989ad79b99], [0xe3b027b9d012f58e, 0x38aa7e7e5dc714e4, 0x1f229820a75ea0e4], [0xd2cda0a1be03c653, 0x69e075aaddc621be, 0x190632d4854c2882], [0xf5f16522c0aae344, 0xb577390f1b3df5cd, 0xe986e4d13791d180, 0xc6cbf97c9a743444])
+ self.mul([0xdee0ed150218ebd6, 0xc4d48475b4460f61, 0xd4f015c5ed46fc80, 0xb0a5f5a4d64ded74], [0xdce21f036c2f8a2b, 0xd3344ae68cc144ce, 0xd452beea8c2ca348], [0xc04e294f91e1dec8, 0x9ace20d5084da769, 0xe608abe940fab53e], [0x8f3356e07b493b15, 0x668ee38cabb3ed22, 0x3c7195bf23fa0433, 0x903ba218240ba4a0])
+ self.mul([0x7947f6ff57c5fc5c, 0x7973248a47f6e54d, 0x93f8f01b6c042a5c, 0x9a2f3b1c7961cc2f], [0xabdd68ece3efcefa, 0x8d52204b94534414, 0xd1a1e01e1908a7e5], [0x516bf6d240bbe0cc, 0x9932b263d73dbe87, 0x50784b698eb55834], [0xcd8aea0232532d3e, 0xd69a29d4c5a42af5, 0xc76abdf95bb03115, 0xf13bd92859264f0b])
+ self.mul([0x3bcf9b5c0d6d73b9, 0x281ce4f1222c6a57, 0x8d00644ce1e46511, 0x1317f8f209a2d961], [0xd0ad841ed20bceaf, 0x3d324550352af857, 0x5525f083d7c2081], [0x30c1386507a0bc5a, 0xd76a780c524ef4c6, 0xa270940366d52067], [0xe0464e1cf8b71d72, 0x86ae9982bacdc21c, 0xa9ba8479243bbb6f, 0x218ef5e09e37a9e1])
+ }
+
+ func test_mul_4_by_4() {
+ self.mul([0xe9ac663d53921bac, 0x520d6ad156f17d1e, 0xef761c12ebfadc8f, 0xec9fbfeacfb63ae], [0x7562377226867b23, 0x1a3f65da557211f5, 0x4d1c86243b391f69, 0x4c9bf7a5581989cb], [0x6b2571556692d0a8, 0x72a22439602abd76, 0xa7a5327247d13c09, 0x80a59c12537d2abf], [0x545315bc04f34c93, 0x6cb15227904251fc, 0xf7a384015fcecaeb, 0x6e98d7c3fae28fa])
+ self.mul([0x764826dd0f352213, 0xbaf05b42aec1e7c9, 0x10d9a5a47a3a38d7, 0x4c0ba2739c95a81e], [0x2c7b69379dbd5430, 0x6b87b34628757f8f, 0x698ab974fe0f5f8c, 0x8d794678795c925b], [0x148d6bf5f5262f1e, 0x227f08c55b0784cb, 0x134c2c76120ac6da, 0xb1aaccdb2def88cd], [0xb19fe01172656ff7, 0x94700b3ad1a42bb1, 0x36744226ea2e179c, 0xffa4b2b49bdbdeaa])
+ self.mul([0xeac5cfc2e9379ee7, 0x3336da50669e36a7, 0xf689f144ec50af9a, 0x58344c90eca19621], [0x8eb13dfa474208ef, 0x7717e0288dd798dd, 0x93b007d04443b210, 0x2d21e6ecd6261fc6], [0x82dc44d96c27db53, 0x86c28f97ba808bf2, 0x54a7def866383791, 0x3c3c97a99bc8af34], [0xf19a23aaa1f66c5f, 0xa107599bcc79e0e, 0x2e9ae1ff7ab7584e, 0x8a2404a6750e1c86])
+ self.mul([0x95bcd6624454eef8, 0xd9c3b7f934e335fd, 0xc9756893503d36d1, 0x37381095320cfff2], [0x87dc879c9e531e96, 0x70cb5405a9136be0, 0x4b97068fc4393ba8, 0xdc33fcdaaf03db32], [0x4f7792a83f37235b, 0x4e3f74fcc0ef2cb1, 0xbe123ec7705049f3, 0x7881f6d4b7097a15], [0xe6a6956c6ca9fa14, 0xcbaf4b2629d487a0, 0x39590c048a4085c4, 0x4e53842653540344])
+ self.mul([0x8ff26dee45e94a98, 0x3c1472f471fe4935, 0x9612bd36484c3f25, 0x180b80f988688e10], [0xfbbf88022d7bbdc6, 0x2f59603e41cd47d7, 0xce3a419753dd1a4b, 0xb4e12b8b366f8bba], [0x8d8e6422a73087b5, 0x84ffa1c28f32c544, 0x51357d0c2af46ce5, 0xa1f9ca5b53266e24], [0x2ef8a6a0e940f049, 0x5b1b4d0001524acd, 0xdf21c2c456d97712, 0x30d385ada09e7a0])
+ self.mul([0xeec02510d776f06f, 0x885ac9af28b9f147, 0x2f98ce969009c0c1, 0x50c79e4a77f8bae8], [0x1dbd59c5fb851609, 0x345dd56405b92654, 0x2ecef1ecb402da7e, 0x93839f4e22723d7a], [0x1bbc5bc7b7296fa2, 0x2ab0991756827955, 0x91ae656550244d5f, 0x3b901ac8f16183bb], [0x1e23a5a5319e7347, 0x97388910db89b601, 0xdc25622f46eba949, 0x5788ae597c625a90])
+ self.mul([0xbebb60e22681e4ac, 0x2faba8ff7cfa86e, 0x881530fe987e49b1, 0x99ef07b4c1a31ddb], [0x1091cfc38a1ab69a, 0xc9c1cb63c5aef2a3, 0x563c351a1d3708ec, 0x69b4f30e73248df7], [ 0xc5858fb35768091, 0xec1a20dba8f585f7, 0xa2381c088a9f808f, 0xa48fd81ece3e0353], [0xb0d1171df4385180, 0x59abe09dad907731, 0x9e0cc3e987d25dbb, 0xb28502613f9f6d4d])
+ self.mul([0x2a283b4d36fd3abb, 0x384df96713af7c38, 0xb343dffa82a52212, 0xb2f901a88610c306], [0x2f394ba0137c9654, 0x2a4eef63673f0efe, 0x4d7a7719a9ac2aa7, 0x535863cdc4bbc810], [ 0x7c6d24c8703ec2d, 0xe4e523a3eb3498fd, 0x6dcd9c998588d01e, 0xa7a38ac91f23a80c], [ 0x80cd0c0b32dfc0a, 0xdf7fb5ba18a5d7ee, 0x7db30c47670657da, 0xc88204a286cae060])
+ self.mul([0xfcecad96d3e7e872, 0x755613a266f99176, 0x8a030b70ad05c217, 0x6a75b157f500d3c3], [0x2d9a47a7906358ba, 0x198f87abf22cb96f, 0x1bb1c4e5f4093952, 0x6df771832554263d], [0x2d0e07af212c985c, 0xb2a461811de71ebf, 0x9b48b41da54371d9, 0x8f9d46f47e4c2395], [0xe2f2bd35789f7338, 0x1e46626510dd77b3, 0xd86f0e891b363b35, 0xd2ae42fd2b9d6777])
+ self.mul([0x47afee3e4572cb86, 0xd9dcb356e875b42e, 0x2bb24fd1832f34f7, 0x27e8e2e08432278f], [0x611f2042abd018d0, 0x3c6003b687dd0c53, 0xafb9d6040175e173, 0xd247c73e54723a8b], [0x1b32609c1b1ae6c8, 0xf815f8db24e804e4, 0x4376179e7b2f0e7f, 0xf754995af7b316be], [0xc9757c9b60fafb3c, 0xbc81301790ed4de9, 0xd479cad181eaad20, 0x69c41ecdaddfe0a5])
+ self.mul([0x1229fda1a8526558, 0x68fccace3e719d5c, 0x63c9c9dc5b7226b6, 0x1edb1b336ea35c7a], [0xe71e33642790e70e, 0xd3871d165a6fca4b, 0x3b0130bdaf4686a2, 0x66b60e8c8956416], [0x1066086e10910870, 0xe36c7d79b1582a4, 0x918e4cd5ba737205, 0xdb01adc413762e0e], [0x3eeb94f5727eac02, 0xd9e0faf3fb7603fe, 0xc5b572972c08fe3b, 0x4a8b0187752b9a7c])
+ self.mul([0x21b4b8e363e17d34, 0xe09389d6bd8a59ac, 0x23febed28c17a2d9, 0xe2a0f489c4cd75bd], [0xdd2e2d7f751f317d, 0xba7e2a719d8a7382, 0x4e8ab3b3bf94a533, 0x28835383dd51a615], [0x1d1f181312a900de, 0xca9dffc293147984, 0x62b9e2255db5c28e, 0x70b58ce5cd0f1faf], [0x162b92b227c09bb2, 0xb119cae3117b4205, 0x620510caf81a2f5a, 0x5e488f47c9003681])
+ self.mul([0x50f5f3a139e49723, 0x2f1cff917d8b938d, 0xc66f0b72579349ef, 0xabd933cc002a6ab2], [0x1015c7ed29a7dc36, 0x82e9d89b6a99267c, 0x49dc54b671c1b40d, 0xb7acbfc311327631], [ 0x51642a141196391, 0x3e0a1eb56338ce06, 0x1992075599f62a95, 0xe9979dcbe2cf7c6], [0xeb8c2ad22f5f03dc, 0x3cb54e048bb2b018, 0xa05cd1c36f234745, 0x5fcfdf143e107812])
+ self.mul([0x70fdd6123e7d7a0a, 0x5bdfb64b96344a93, 0xca6d5fe5146cf0cd, 0x5f3d22cbf02d4ba7], [0xdd0bb6ef0f9d76fd, 0x7e05ba2ec5d76fee, 0x827b98eaab33548f, 0xaa043d1d57a307f9], [0x61904d73eccb34f0, 0xf9ac7c682ef37bf7, 0x5fa9c6f7c286c302, 0xc65ae0e62beb77a9], [0x5ac33d21b892b14d, 0x6601f12ac63c7eca, 0x352aa186eff7acac, 0xd9a81a65c575266f])
+ self.mul([0x675a1023c58b8fe1, 0x7687e5eb73ba2a19, 0x2b840bdbd2141a8f, 0xbb4e0759314e33e8], [0x1eb680b8f0f2d130, 0xcf5b49091ffa4530, 0x6feb5cd07997cea6, 0xf8bd5616062fbf55], [ 0xc663be35ca8bf49, 0x8138d43a959b5ad1, 0x834e70f2ed400aa3, 0x33e07f940017ea84], [0x2bfc319e0ee314dc, 0x9e57c22d3339fac9, 0x18c68eb64f615fa7, 0x6d5c44e9af495408])
+ self.mul([0x9d843d01fc15a6d3, 0xb3a326ff3455b2d9, 0x6fd43ed2fb30738c, 0x8c96aae92e5f42e8], [0x63005f073f40d5ac, 0xb69198c45422847b, 0x23bcb57495947104, 0xd8072c5c893bcea3], [0x3cea5e104ca936a9, 0xd571ce589f3be4ce, 0xe0eaa5b83cd81ca0, 0x849d613896f2991b], [0x12210c860894f7f4, 0x2a00bef537d7c4a3, 0x2ceb72b818a14c42, 0x8d190bebc1f649b8])
+ self.mul([0x2307affd112373bf, 0xddadf70ac091808f, 0x7c90c872f94bfc90, 0xc5c5f538487f2af3], [0xa3dcd7551094c386, 0x4d8b15ab5ae5393b, 0x542ebd7be110de1a, 0xd52933e342ef49c8], [0x166c1d2078041bc8, 0xe51432007e2a4e96, 0x294cb77c2f08a2b8, 0x6ae22b543e01e77f], [0x247f489c94610e69, 0x8977bccbd4777203, 0x32c7f2825b996faa, 0x160d96e9a575d8d8])
+ self.mul([0xedc477686bd5efc5, 0x67e9878791f80c72, 0xeae14a8e642677f, 0xf0acec86cbb9c3fe], [0x9746bc66316dafd3, 0x20e9977bc4efcb83, 0x3181434d312aa4e8, 0xf851624da767ebcd], [0x8c80952270096a88, 0x4cd1d6f67f2e48d0, 0xe9bbdec6065eec0e, 0xee02af79405cbf7], [0x7946d2876e0c375c, 0x8f26f3b58947e049, 0x30447161dccf779f, 0x8007af337de1c66])
+ self.mul([0x264bf89c425ab2d4, 0x4f7faff6e9d1c127, 0x5b911d48a2b2da8e, 0x2074f841afb47fcd], [0xa0d8da451cbdb62b, 0x877cc2d358f7a9a0, 0x170d15aefaf88340, 0x512bf0980e41afa1], [0x180fec2275cc6f72, 0xdbf35c9fd68c2a81, 0xf387d7c75586ed09, 0xc2184db10fba3966], [0x68d4aedf36d64160, 0xa31b168394257a5e, 0xe7ee799c8eaeb493, 0xdef995f58cee82ed])
+ self.mul([0xebfe2927b10ba7fb, 0x345358c18c737e4c, 0x244053ecfbfe1de, 0x68fbec761e7f70c7], [0xc44047878ffbbd34, 0x5ccf0fde6fc01b2b, 0xa8ff05f751560f53, 0xef875effc43cf0e1], [0xb4e9d8fd22a5ef29, 0x5afa20bd28f41ea4, 0x9d94f250ff87bc11, 0x6172ee7ff448cfa5], [0xa268af30a3a10cee, 0xde410930b3817e71, 0xae192927f535b4da, 0xbc6db0d81260aee7])
+ self.mul([0x6b0202f6429a760d, 0x1414b9be0be7f334, 0x7844972026752e51, 0xb095cb29c93c0edb], [0x37facbb62cf34bfa, 0x87403ca7dcd8efe9, 0xb71b89a3ea67db2f, 0x74f3231f1e4163fe], [0x176643c08b5da745, 0x601414b1c5791d38, 0x966071800fdd4551, 0x8cd9de285c278a4f], [0xea29462d4fbe95e4, 0x780f1fad79aadac, 0x8a96b63cee398eb3, 0x87909bca52f06e4a])
+ self.mul([0xdc51f088f9291d1a, 0x8613e295f8931b78, 0x8f0ea9885208c691, 0xe01c15d7856f26b4], [0x2d55883c2e7c1411, 0x47d1e9a4924a5d45, 0x11b9ec5a61a1fd8b, 0xd6c1db5569270b36], [0x270403bc44459b6a, 0xf5a20e44c7b700c1, 0xe4a9701bfc702855, 0xe670929957614b79], [0x6ada394d4e9c5943, 0x979b5fbc87d56f36, 0x13aa4e63ac5ddb3b, 0x3e249ec4a587e5f8])
+ self.mul([0x7cafd934d71ff918, 0xf93e448bff9f99d6, 0x6af435b1bcb4a323, 0xc34d0d43c84dc2c4], [0x97c40bfc41962ea4, 0x7874cea0a880e299, 0x5b460991d8dab575, 0x47f7e57bb3af47ae], [0x49eb3596e2b97191, 0xf93ef705e1e82c9f, 0x49967ced6ff2c9c7, 0xf5aa2c13c989ea4b], [0x7547095b2ded0f68, 0x73408f7f8418c4ec, 0x5286a5c500049cc9, 0xa7230522e5dabd38])
+ self.mul([0x632544fc00901a99, 0x7b4bef7fe10e951f, 0x9e57224a6c9c709d, 0x8deed3bdc3a33bb1], [0x68a476503bca07e4, 0xa3848631a1271ab9, 0xc874b2ca6dcf84b4, 0x385b3def12b4466d], [0x2886d5b8d244737f, 0x1216ef2478054dfc, 0x7a4b94f9f8c50a07, 0xf78f7a4d41fdb421], [0x1c87325fdc8efc85, 0x39c55c2abd785c8c, 0xe8bc48ccd4820105, 0x704dfb825946d05d])
+ self.mul([0x6e4910f3489ed557, 0x8f46599579d9b4c5, 0x96be26d140b30910, 0x8503fbc3e553e1ff], [0x4d2bf14a9684a738, 0x3e8250850f294b59, 0x5234f7c91fc31edf, 0xead134f4c750aa4], [0x213ee851f0a0dc2e, 0xdf851558245cb1cf, 0xbd4a997f680ed53c, 0x934f73b148256032], [0xbacb3a73399ae295, 0xd7c59403004df069, 0x8d347a854db7f7fd, 0x40fb51932e1bbd5c])
+ self.mul([0xf2a36753ca0e71ff, 0xf24dafa881262e17, 0x139af169b66db8c0, 0xd941dea86ade30ad], [0x53f2f62035724206, 0x364c357cb18b91f5, 0x840a5661b88f0d24, 0x73c846e3a766b5d4], [0x4f91423f64173efd, 0x42f0215033daade3, 0xaf104e574fb601eb, 0xa00fa66d4f572d9b], [0x884ceb9ef8cbbc97, 0x342ceae86667e391, 0x3af39f6b2d484d25, 0x544774b6d858a044])
+ self.mul([0x92f18ef90430d811, 0x94d6e56a2283fef2, 0xd8e98a9f2c9b473c, 0xc0d016f1e4dedd51], [0xe3255b8cc38fbbe7, 0xf1af1d8ef3677616, 0xa1addfa08ab68ade, 0x3732c9418fb1ffb3], [0x8261a33d22e22004, 0x9a75da532e2fe6ea, 0x98a84795b7348533, 0x899f09ed06156a6d], [0x2252d98b44d1e7bb, 0x5122c272c584da15, 0x8fb3cc875a9cbaa, 0xcd9f84654a496ea3])
+ self.mul([0x111bd1ef204ce3fb, 0x617a9ea69896c78a, 0xd5bd7fce25342a33, 0x296775676d323b2d], [0x94517f149cf90266, 0x2f791ddf847a22c2, 0xa01c16451f0e88c2, 0xb1eeb2d547966724], [ 0x9e987a9d9254bfc, 0x172b3d72945cada2, 0x8e2f4517bef8eada, 0x58eb0551d3ff119b], [0x48350fa1c2a851d2, 0xa5d1d3b343b0af8b, 0xd24fad5f4d1b11ba, 0xd5728fc3b83d6d54])
+ self.mul([0x8f7b758d52be4b93, 0xcf9021f3181b6ff7, 0x5e30c6dd3d4609d9, 0xbe44a9394646ab3d], [0x948621d013e054f5, 0x7a1c2cee052aeaa0, 0x962332ea4387a2c1, 0x794971f35104b035], [0x533e8d88c569f329, 0x36b0752618175368, 0xaac9d07dc19f7cbf, 0xc288f2e9812739ae], [0x40a9435562277274, 0x75d1a78a9ca15697, 0x435760de181a7cf7, 0xecbf565c1c4f63a1])
+ self.mul([0x6f3f5d96737c11ed, 0xd95432c653ccfa3a, 0xc47898176bbb660e, 0x1ea1c85173d05ca7], [0x6368539ef8c57e3b, 0x8f8d81bc4758b223, 0x6466605f0c826924, 0xb15bc81b7400aca2], [0x2b32d745d456a4ea, 0x9ac29a03fc77878f, 0xb159d3f8fbe75966, 0xacf366d1bef7505a], [ 0x2eb9670da1b3a37, 0xde1aa7659d3229b7, 0x3e5199f540bbe4f7, 0x632b24f3f41ad5ae])
+ self.mul([ 0x884bf15c442de29, 0x56b1a6ee9440a851, 0xc7a2b74d8e58f65a, 0x9c970c898e55445a], [0x98e4366d930dfd54, 0xe4f427a6f379b6f, 0x5d226f59b8b6f606, 0x4a56fe0a8c1decc8], [ 0x516697ec1a32406, 0x444e79ebac6b4ccc, 0xe0af1b236ca2b765, 0xf40c3f418eacba05], [0xbe243e0ed94d946b, 0x53f2f1f42bf3e2ad, 0xc14302ed31dddc38, 0x5e5e533bc3d25e50])
+ self.mul([0xd81a1952a9bda9a5, 0x236590cda178458e, 0xcea1ae19aa47da3, 0x3a2829e7fa15300c], [0x998a30c389bdf94d, 0xd55f19d1e5af5d77, 0xa1547d090e1860a9, 0x45a6ef4943327cf6], [0x819c405e02e8f9b1, 0x5eacc0b055ad5e0, 0x7f921fc9cc20c6fb, 0x9b3fa18ad4f1381a], [0xdd999ba03ed0305a, 0xab1a0bf1f62cf461, 0xbf07ebd7838e4711, 0xb854ed2f19f9fb88])
+ self.mul([0x5ad1f52f9a6a94c4, 0xae32d39acffa8be9, 0x7618b978d183eacf, 0xf8e8cd974517ab26], [0xd030822bda9e0ec0, 0x7d1104943c3bfbf6, 0x41c6bda0756c4886, 0xb799a0ce9976e550], [0x49dbccc2d3b8c5e0, 0x63fbefdadef220c4, 0xaeeb4e653f52a018, 0x6baf75623544ce68], [0xd0cd8935b9e57edd, 0xecbf865887293394, 0x144bb5e83413c01e, 0xc6706da5d0279e0])
+ self.mul([0x401d4e4323137c5d, 0xbd67e9970267ff48, 0x8ec21d4dca9dcd6e, 0x1e02e0564bd6f36f], [0xd6ddc9163716b9c0, 0x1ae14dc4ca60bae2, 0x3d4fafce330ac9a4, 0xad1b7f36cfcdbdd8], [0x35d00b15420afef2, 0x7a267b04ac2d8a99, 0x617a0fe1f380087f, 0x8d9573a2ab5bc3e4], [0xd9d614518b20142e, 0x8d1bf8bb8ca985ad, 0x36bc19c3b7ae7ae2, 0x304af32f5ff958a8])
+ self.mul([0x9f16d0d0ba382cec, 0x8ed74ba89459468, 0x2ea6978d0bb57621, 0x26161b92afab0537], [0x7f25489ed9bcfe69, 0x4a981372d1e382ad, 0x4315738eabf63a24, 0x4f474c6ab7a0bbe9], [0x4f037d04dcac2776, 0xaae16b1e40d09d70, 0x59c6e33a8edbe4b1, 0xcc7454dbff9117da], [0xaff04099374c6ef2, 0x4b6abb9b891f96ce, 0x565fe4372eb4fe2e, 0xd521c73762d6ec0f])
+ self.mul([0x3cdff693c1cd770e, 0x5abfe3a83e61bb54, 0x16eb0d438cbcfcf3, 0xe6870773ab30159d], [0xaa563ae969986364, 0x1dcf247927748acb, 0xee325ad2ef80c853, 0x137b2454ac7acae5], [0x28813afd33268b38, 0xe536f4756f8ff645, 0x60b7592851aff0fe, 0x7922b73f411ede23], [ 0xb41b5e818fea321, 0xe9d7ae1b0db6d776, 0x88517c9fae618111, 0xff0efe7fdbe33771])
+ self.mul([0xc8be01af8c371fdf, 0xbfd83f6954de9cd4, 0x790ebc81b3a4b68b, 0x1f4d5c98b5f0182e], [0x1cb1c6b0815baaa8, 0x5cd504fa51931348, 0x2a820d21e50c1132, 0x2175c4c58d3285ba], [0x16802f5bbb1488f2, 0xcce5e33af55f10e2, 0x3d39f0f355b6c20f, 0xae744c089738c42c], [0x7cee30ffc30aa477, 0x94ef17dec91e0a97, 0x3ec066517540af18, 0xf0a53715fbfd776c])
+ self.mul([0x4f76cc4ffa241e93, 0xc6c4547d92ad2214, 0x359415ca37c6e963, 0x65ac67c87163e628], [0x76f74cb1b74a9874, 0x6f1719b091a868b8, 0x2643e7e3e0552abd, 0xbe9315d8a09402e7], [0x24ed859a6d271437, 0x32ce28d9d367645a, 0xf501a0012af32ff9, 0xfae240994a075a1e], [0xb4f6f094412566a2, 0xbdc242aaf635ebf, 0xb5e2f79cbf59a729, 0x1544ae1b2810fe18])
+ self.mul([0x2100c96f39429a5c, 0x142731ab0e90479a, 0x6ff20b2bff4d910e, 0x12cd0cba0e55212b], [0x68614ce725ced66d, 0x8d83b54af71d3f4a, 0x8dc41a8adc3c5af6, 0xcf738d07eca76431], [ 0xd74dd0b8aca50b2, 0x48be09f24433b08a, 0x29ee9a43a0ef8048, 0xe77ee9ac89582b16], [0xd49bbf9bb9aa7989, 0x6a78b9f4684de231, 0x8be8bf13ce59a4e5, 0x77b7887f464d253b])
+ self.mul([0x7f3f8a75cc5ecb08, 0x22fbfaacfed288b6, 0xe035d6f6cd7671d3, 0x6d83b58cf7617bbe], [0xfa79358cc12b964d, 0xc57f9869f8f98858, 0x742ace0de0f1f724, 0xfaf35a76115785cf], [0x7c804cdd99b0d894, 0x41281b97b7454846, 0x73c3b122c42c5828, 0x73c9f0216c680ea0], [ 0x757f24b707fa0b0, 0x7090c25528021b5a, 0xb6890097c1edd3b6, 0x57f16a6e58aec4a2])
+ self.mul([0x32432a9095b5a8dd, 0x8170ca73e2d850e8, 0x751c1c403480ca37, 0x260c35fcb5230bf1], [0x18cb8c45a67329ea, 0x42ea7e0e16fa9ba8, 0xe27d42c59197c5c6, 0x9554ff4813098d1b], [ 0x4de42cab6bf73b9, 0xfe78554468b35c8a, 0xbcce0b92ab090f55, 0x5b2672cfc448b85e], [0x208b37660ed94746, 0xe22a45d95069e41a, 0xe9ef61ccf3ba608f, 0x6f2e4451b6beff6b])
+ self.mul([0xab5422d590c5963a, 0x8add4b35841a776a, 0xb9d6dbfda166d639, 0x894449d81e2ac79c], [0xc4ad909e66ce24ba, 0x930a7b16a28a6ba1, 0x26860f7c1f71bf53, 0x479499db563ce79a], [0x83a09350637d39f3, 0xa84dcf6abb88f413, 0x7d26d4ed3ffa5b88, 0x9fb7c4ccc540bded], [0xf2749bf3ee7c8f47, 0x8163f23a166d0a30, 0xc11f07b1fe48a5de, 0x2494dec3f069d7d8])
+ self.mul([0xd8b6b860b8eda97d, 0x625dc67e15260663, 0xd0f52a21e337f301, 0xf68c025778f00271], [0xfb5162a1c8b0ec25, 0x4a2d53ecf4476648, 0x2efb958b41f208e1, 0xd3923183adfc1893], [0xd4c00c16134f0992, 0x2e9d7986b0b62eec, 0x2ecb33105778edbf, 0x47607fa1ae101ae], [0xe451d595b32ff7fe, 0xbb02b15653f0fe8c, 0x1529bb8c70f471c3, 0x782daa4cb647fee3])
+ self.mul([0x1399e9d9301e271d, 0xc32f74ea06aaf7ca, 0xe5471591116603e0, 0xbd8cef71f879c7cc], [0x30fde94f057318df, 0x47b3b173037aa405, 0xd4fb2abc77e4746a, 0xf0719c598fe88c11], [ 0x3c04cd1f76add90, 0x58e8abbab7009cf4, 0x4414a35f4b1aa165, 0xf36818ac8290a00d], [0xdf7d1d0c7f26ca24, 0x70131d0ab02b7f1b, 0x2a868106284160a1, 0x5b8635581e39d48c])
+ self.mul([0xc02743a34ab41a59, 0xda0a11bffba1ccdc, 0x468dddeef8a22d88, 0x64520ace77dd8635], [0x778195ab187cad6c, 0xcbbb7a66dec1aac4, 0x20d1a124879b0675, 0x3ab0e2dcbda13c40], [0x59b3849143fbd917, 0x9904284ec1d91cd, 0x3e48615631e42c8a, 0x5d5115f71c02079], [0xf824d41d8cca3f5c, 0x9f3951692bc93309, 0x803210c787afbf5d, 0x62ad25a86b2af940])
+ self.mul([0x53159006bfe4ede1, 0x483c5a68375d58fa, 0x6381e4fe45637f17, 0x82068e8b7e75e3e5], [0x637c9d5580705375, 0xcab31ae03d5e366f, 0xd2e961c3c693075, 0x98b34c769fbcf16b], [0x2049c83458a6ad57, 0x10310c23ba5aa03e, 0x22b3ca97f79b05fa, 0x96eff535f74447f7], [0x21c4732b6c5a53dc, 0x86937d5b1bbace68, 0x9d141d8a05c070d3, 0x720905076dfcd5b7])
+ self.mul([0x8d1f9864848e00b1, 0x895954642f4c7f18, 0x8168ec80afe94af2, 0xccfcabe5d3188757], [0x7f77ae2bf32fb096, 0x4aa6d433f7e54fcd, 0x24f1225852731095, 0x769157a474df4f87], [0x4644a64d686e4322, 0x24b392d758b22ce9, 0x92aae2b61e655e54, 0xfb39e3f8b0555e87], [0x65afbd2fa4c63c65, 0xe427bd3d644519da, 0xb207a71e9d1ed02c, 0x4720d6c4347c37e1])
+ self.mul([0x171657ac873ad9e8, 0x775dc818c2dcfdba, 0x2803473723149491, 0x46c57a819533396e], [0xfa4a47a5d7ebf2b0, 0x4dcd5c30a6b3b6fa, 0xb0760b1ca716fbee, 0xe706f845b148c61f], [0x16928489fb1ef68b, 0xe3562e825b0e010d, 0xcf7e932d99610b89, 0xe016c660ed7bb7f7], [0xfa3dc655aec1c083, 0x2604ca63b03aef79, 0x96ec2fdc34254f52, 0xcc497ad9e48f0852])
+ self.mul([0x5925eb338694ab41, 0x6c341c39f9a3ec2d, 0xc7c4780687942d8b, 0xf8e2b2147dab555d], [0x80f80d005aabeb60, 0x9c69f25313c3db3e, 0xa9e711fdfdfb4fe9, 0xd2eb54f96b49980d], [0x2ce956dca9b98677, 0xd680dcbaf4c6651c, 0x2ed2dc4d010745d6, 0xdf7105dd01d89651], [0x87f3a60f1c7c3bdb, 0x5c00b5091499f4e3, 0x34fab5cdf5cd6112, 0xafa533a652e78db9])
+ self.mul([0x49b97df646682939, 0xadb643b8bfcba366, 0xfdff88a8d2e7c450, 0xb67f857c64f7267e], [0x78b3c69f190c5fec, 0xd28b635841969e71, 0xd6da3b2f6c9b55d5, 0xd3114757cfd438a], [0x22c2b8f1cd0c7231, 0x25226717817e8d6b, 0xefb7e9a06a0ff34e, 0x3bf546259c6b4111], [0x170365699b686043, 0x5ca0d0c663e89155, 0xe45fdab739d58acb, 0x259971f72ed3b9ec])
+ self.mul([0x989f002621d8924c, 0x3e43de8df10b6047, 0xa4f8d98684d65ced, 0xeb421f6691ccdafe], [0xdea6385b5688aee8, 0x3b94a929f6364da4, 0x45c6565b19e08e9c, 0x89e77a636f527018], [0x84bcfad466380d0d, 0xccc3f94c723373a2, 0x2e8b07a1665f1d31, 0xe1d3c4fb5ce8839f], [0x40be117e2fd072b0, 0x183ebd69abb1f6f, 0xf7d8393c7a36200, 0xfca1433925fa7d0])
+ self.mul([0x94b210e3740d9f51, 0x4667621be2e9b0bb, 0x7223746b22e0981d, 0xe392e8d3a452a8b7], [0x25e73a84296a9ddc, 0xe0356297172faa8d, 0xe36f1fc994a44337, 0x5b80bee577a53ca1], [0x16040b1b38b66005, 0x5a031707cc6f90d4, 0x791bf277ee9b808b, 0x7d016771564e56f9], [0x83845faf1c127dde, 0xc4bf2f1a224db5b3, 0xce409187948cacf2, 0xbf6a1b048679ff17])
+ self.mul([0x1411da5ab45f8544, 0xca7f48ce51df4b89, 0x711156ddfa620b69, 0x15be16ec76d60098], [0x8b0315c504f1664e, 0xc32fc0964ce02f02, 0x8bf70258d6713044, 0xa7e17973c399e991], [ 0xae5ef79b809a750, 0xd124fdc80d388254, 0xab3e823acc5d5726, 0xc1b580a2b28c760], [0x95c4cef83bd2c26c, 0x6642f7cb07f5a3a, 0xdfba2b6f3e9aa9f, 0x5b6258ba3898ae18])
+ self.mul([0x2c103a6be9e4adbb, 0x5be29e628f4bef4b, 0x99d6ff66a2e82479, 0x7c235a57b75e11f3], [0x996813f8f0a0ad2c, 0x44ea14b157fe495c, 0x9de511ca34b6f4ae, 0x9276bfa79c97a67d], [0x1a679cf2481a2a5a, 0x614f1d5de89f590a, 0x8979ddf84a51d039, 0x2de6679755116835], [0x5133e6bf811927d6, 0x10dcd1611094e1ac, 0x6c6168400e95b582, 0xf1167bad32e755a7])
+ self.mul([0x30cdbf6c488afe15, 0x47d578abfa122e52, 0xfe95dffc37df49be, 0x7e548aef76f06140], [0x95508d1bd5b6c06c, 0xd14681d84c27dd39, 0x5ec31db26d78ff7b, 0x4767755a4f13762a], [0x1c771b9c78ef6cec, 0x3baad15acec7153e, 0x6b5f60cdf473bc46, 0xd1683bef29a5c394], [0xf9d9078a837d3941, 0xa4223a573bd50e4, 0x17c92d522aaa79d, 0x75179e7648037480])
+ self.mul([0x8b1e6d88d2d26486, 0xd3a69a3f43fd8297, 0xec4a9ec559b6eb4b, 0x40631f890c20520c], [0xc9b01385c0d01597, 0x8ed3cb44d1c0d192, 0x747dacd9cb346695, 0x2d67e86351c13fd3], [0x6d9a9387ad5017e9, 0x9679720a27269380, 0x3fa25233a91e7cc0, 0xc6271ae07a411260], [0x79dab63a8c1ffd99, 0x4a02e1b265e5da27, 0x2a681f5cc8e5d8f9, 0xb34cb0e899e093e4])
+ self.mul([ 0x7bf3a381cd7a483, 0x2eadbdd69aef7c82, 0xeb2b5c78634a41ac, 0x4614631ade4f08f9], [0x54cc70e0ef575af4, 0x939f6283fcd19c8e, 0xcc383fc86a1eed84, 0x687b1466e49c8c26], [ 0x290eee7463767a1, 0x85b5849fcfaaa04d, 0x64f807bf4bee1a3a, 0x21cc8460853f6eab], [0xe98ac4902dd165bf, 0x2da09a899c77d4a, 0x5aa3d240cba879ab, 0x176b4aed745f80f6])
+ self.mul([0x6d3b57515ebea6f5, 0x2c4c4d6092680f4d, 0x655c1e4039d4ef7b, 0xaff5f86cbc1246f6], [0xe6661464c74b4641, 0xc72e2550eeb90105, 0x146b75132f88da91, 0xf5d2c1909417bffd], [0x624edecb8894c063, 0xd36bc5d1987bb2e5, 0xb2ad1d6101e57e56, 0x4aaef6a22b74968e], [0xde2c0e259a9e6713, 0x68c3b7c7be5d04a9, 0xe3c515b24342216e, 0xce827ad2191bab1e])
+ self.mul([0xc9738ab7869d25db, 0x8d3ce852b6a38b93, 0x602d6651cf4ebf70, 0x23c5ceab040f60fd], [0x5331fdcc8faa3579, 0xbcc3959ee77ce121, 0x2296959d3950135b, 0x38c3549e01afb76b], [0x4177cccf36fd1cee, 0x5b656c41b3d9ec9e, 0x8cde11a7af54a751, 0xd2ec568233b4466c], [0x6fe24a0d2cf7bde1, 0x73bffc53d7d5e841, 0xfca352734956c837, 0x125d576bfab564bf])
+ self.mul([0xaf5bbd376da16430, 0x9128585427b117e6, 0x354556f50d57fdec, 0x245b4447adb8edc7], [0x21e1a20c7cae928d, 0xe787fb32ce886009, 0xb1eb9d484d83bd72, 0xc15e12e74fdd5ecd], [0x173562060e4b1f21, 0x912da77169492d24, 0xd7b67891eaf88b42, 0x65a63a452d0d36e3], [0x2fee5b0db098dd59, 0xbb8eb7e750bfef7f, 0x81fcef5fd3f341fb, 0xc94d95c6b2307a5b])
+ self.mul([0x75ad34b80d316a29, 0x349bfc68b633d109, 0x1f27b13b9d6f27b7, 0x498037f5e271c810], [0x734a7c914c3fd7f1, 0xc8686464ebc8332f, 0x8ff91054ce39b1bd, 0xa3d04830b1309ac4], [0x34ff0c029ad1ca26, 0xd39ecb05e3e0e90a, 0xd6eb7dddd58cba73, 0xc84863c1a7f4b04b], [0xfaee45e700d6b363, 0xde78c1eab0958cad, 0x1c7c3a2ab6cff1b6, 0x1a19e6226476cc40])
+ self.mul([0xea423e8cc4e08324, 0x114af118ac892e6b, 0xb7815142457aa647, 0x20f0a04619f92eb5], [0x3069a60526605e46, 0xf9b58c0727ac2fcd, 0xc876af69927f8319, 0xad6b573694abebc0], [0x2c4d18d1b79f5d7b, 0x9a0d9a1d2b3fd405, 0xc8f884593c2ffb4b, 0xa300bd304d2e2406], [0xa55d79ecdaf00144, 0x333aa50c3cec432, 0x9a0d21406b492dfa, 0x2d86540c0faa2ec0])
+ self.mul([0xfb6b4c659595c599, 0xb79f944628ea2680, 0x99f888cc5579a157, 0x4822ed0f133da0d], [0x65cfb2b83bd127f3, 0x77eadc66c66fd569, 0x75d8059aa044b0ba, 0x9075827812e3d97e], [0x63fd506c6524ba87, 0x517382c5436e66b8, 0xd7f90cfa1c7b5987, 0x64d09cdea2a0401d], [0x7d5075d983d9b80e, 0xa390284b877da6a4, 0x792c8ca4711b239a, 0x22f77db2eee15766])
+ self.mul([0x218581fdedf6f86c, 0x3993716ee860ff43, 0x9906cd230151c516, 0x95269aebaee30b3e], [0xff353289dc0ef554, 0x186eaaf5809718da, 0x553b8bd2eea10cf2, 0x1c8ec195c0c2b473], [0x216af3bdfa422016, 0xee3ecdac110703b2, 0x60eb58bba9931943, 0x51239f7094600d7a], [0x4e7c452a5c21473f, 0x9cd01cb6adc3eb0b, 0xb4093b79ae8e9f43, 0x490d686a38e1a4da])
+ self.mul([0x12fd93f91ff540eb, 0xd8c7a1eb7354dba9, 0x78b776348ea8bad3, 0xe3a2eca7b40f0414], [0x36753c25f273f7c6, 0x85a089af6a595432, 0xb51cd466019dbbbf, 0x577b92551fce1c54], [ 0x40a2f916cea6d73, 0xe21c81ece0aa8c95, 0xddf4d3fe2d71034, 0x7499d5891348d702], [0xeafcf0c0866ce3a0, 0xe2e83050bce353b3, 0xeef61ef95925df14, 0x5c0476f06d778690])
+ self.mul([0x6436ff52e16f2ce5, 0xe7b87a9b80cfd3e6, 0x302e35dee2688b04, 0xb74180c8e6847cd0], [ 0xffba9a01a537427, 0xed185cd7949f2026, 0x56ac62e7ff5966f3, 0x1bbda34cb734b040], [ 0x641bd492cb4177d, 0x87c51ffa623500a9, 0x1ad9b43127e2d67a, 0x9bcd3b7c00393b06], [0xc3a8086bb29042fd, 0x4dd5f0fb465ef5a1, 0x64198ca1a48cb45d, 0x7edf5696c12e3400])
+ self.mul([ 0x3210aa08f22398f, 0x8dac62e96790a2de, 0xb16acce8b7811ec2, 0x8613b2857f6b394c], [0xb954812a7b21e7ef, 0x9d41e68181077b06, 0x9e30e32e497bcb91, 0x7f1595b997a09992], [ 0x243e919af66a37e, 0x9cee9bd49357637f, 0xa3bf585fb6ae5ed3, 0xed1244c6aa68d59d], [0xb917d6005df61712, 0xebb6b062a7149693, 0x2943793169ab4a95, 0x72971f0563e51958])
+ self.mul([0x7997eed916282d54, 0x5bb6ffe614105f06, 0xe10cbcdb7f8e52f8, 0xb48d35204db06ac5], [0xc0950a6e380db557, 0x396e1f43fae21e47, 0xd20a20d9733ab573, 0x36016d054ec10ae], [0x5b78bd851e34e29f, 0x35931bfa66b3acd8, 0x4e940899c055dfa7, 0xd0e52865645bdba5], [0x17f0de0a25191946, 0xc563e13f715f738a, 0xf49c351e24221bc2, 0xbff5508ae630e1e6])
+ self.mul([ 0xf3744e627748764, 0xf07b3b083f3c7b9b, 0xfc2f36dd30b621d1, 0xcf791aea36355007], [0x1a784809e4d65a3d, 0x90f3f867b0af38a2, 0xeb9219fceeeb28b0, 0xb3e9dc7f3b8815e1], [ 0x192c32fcdd0727d, 0x8b7513a2a34acd46, 0x7f97370c214169a2, 0x5ed41ab15ef4da49], [0x3cab4e18a3690f4f, 0x97398eb9606cc084, 0x7553b319e7fe6c08, 0x28ab892523e927])
+ self.mul([0x33bf816001cbf1b8, 0xbb09c3d7b53eb2be, 0xd95c7b5a12192aa, 0x15ad740ea5b34f02], [0x4b1b03d2682e500f, 0xab64f5eee6af3a5, 0xa96abc959455d875, 0x44c2365e6bcb0f23], [ 0xf2e90df8c525a41, 0x9d352169ba952ab4, 0x87bd123f75e4a395, 0x995892b18e1584db], [0x8cca7ea8e26fbea2, 0x6017f927171fbdb7, 0xe68984602fad67b0, 0x59687fa7a5baeb46])
+ self.mul([0x9ed994f412a47b9b, 0xfad0d2110857e7e4, 0xaf18c7edb4cf3446, 0xccffc504b3ad7943], [0x6b2a21b668d9b7e9, 0xf9372487aa9b3828, 0xd4760a046b573f37, 0x504e1673fd180821], [0x427f15dfafc8a7a4, 0x10e8eeb0b01dc289, 0xdc4e4d6d66a73f97, 0x4a9477108f487635], [0x947c61b4851b9e12, 0x39d9bd9a95489884, 0xf6167336bade58eb, 0xae70f6c2a6eb9a3])
+ self.mul([0xb65902a3022b8431, 0x40abc0653006ce9e, 0x1867cb3901784977, 0x77df5b8bdeee9ebd], [0xcd6e5834311d2350, 0xadc2dbd0328016bd, 0xefb9471aa93c398b, 0x83f63d2c891aef24], [0x9253e02f70c02427, 0xc70ebd60812275c9, 0xe09bd866b0ba9011, 0x9577c2f5e4f17aa0], [0x55b9601d740c0cde, 0x487baa93fc299831, 0xb8ad10fe6bae3cb2, 0xf5d71d7763f2c594])
+ self.mul([0xc8469077be21a255, 0x4803a6ffc496484, 0xa1b868acf1502be, 0x86b304fc4a1d7e3b], [0x45bae11820421c62, 0x8dedb8448c64383b, 0xb092f76aca401406, 0x7fdf5e45781c55b4], [0x368d384e221288fb, 0x474c3c7ebfd898a0, 0x6d52bb6ae55b4fb7, 0x40b5d6aaff0fa2ff], [0xb05cec7836583c1d, 0x1f47dd7bf47b7a3d, 0xa087da47e2959483, 0xfd8ee44c5e1a587c])
+ self.mul([0x38d570eab7a6c6b4, 0x19c8dab7b0a142f7, 0x7e9478af8e8d5f35, 0x822ca8b617a98874], [0x2c415d9cc2b26e70, 0x5afb698a8d474488, 0xc14222d718892ac1, 0x82a2dbece50b9632], [ 0x9d332625a78bbbd, 0xf272c53ff86540aa, 0xd1359ced371cd3d3, 0x70ca59bd5b68507e], [0x4b479983bbdbc6e7, 0x75a5d7df7c6b4922, 0x90f040c8a029c3b2, 0xd3fe57b6960c9ea8])
+ self.mul([0xe8760e8406e60210, 0x645b670e47018d8b, 0xc8631901471ec38a, 0x7c7f8974ddbffcd0], [0x5974425b727e9072, 0x112caa6609838e0d, 0xd7c0ee0af683680c, 0x1a44e1643bc83ba8], [0x513a9ccbf3e5c962, 0x4eff28bafb06cab1, 0x9da11ef659da98a3, 0x736311409368d2c6], [0x47873cfbdf5cb666, 0x436997f1fabce027, 0xbbbd9c8e2f7a0edd, 0xe3a324e37c1d880])
+ self.mul([ 0xba0b98f4a3e3635, 0xc62d95b70b902c36, 0x114babcc29c0b16e, 0xba3a9084d999ef2d], [0xd36354573b385d5d, 0xfd008997e54f5e10, 0x5845b37c75f547d7, 0x4c080fd726ed52a8], [ 0x999fbed8fcdaaf6, 0x33d030176b8f52e2, 0xd0b4753cefe7267f, 0x2a4508fb436d1ae4], [0xa712096dc04ab191, 0xe2a4bcb68b44faf2, 0x5aa83e13858703eb, 0x16b733b0364a5f88])
+ self.mul([0xcdf92023ad4bbadb, 0x599a10bc8adbf737, 0x9970c9f16272896, 0x18f9e65d4a1f43e9], [0xe515c7f6c718d46f, 0x10f4efd3fe0faab4, 0x3105afa1eebda6d, 0xe534b1d8feededd6], [0xb8516012c283359d, 0x5a8078cac91e1ef3, 0x65752209b35866c9, 0x2a758f286e099f3], [0x7d5d51616999dac3, 0x91b5802dfded135d, 0xda024bcc32752dc7, 0x6fbcf985f4b679c6])
+ self.mul([0x368f249ab4854910, 0x68ad49bad397d385, 0x40bc7537a61d855c, 0xe89eed608dca0e6c], [0xd43b9bc0b759e2ed, 0x7d846547c60bb374, 0xd4deba94db7c316d, 0x9028c87b7348e085], [0x2d3b3e7f4abe95d8, 0xd114f91a3d94dc2d, 0x5870875b8552ee36, 0xedb7812bd9eece3f], [0x44e3bd416d81fe73, 0xabb49e96fba7a1c0, 0x3d9ade1a216a81fa, 0x958c26d08f7fe1c])
+ self.mul([0xf633bcd6cc7a55ae, 0xeb8fbdfb7cccea2, 0x348acc72b40d40eb, 0xe698c841ce66a730], [0x7de26f0674e9a972, 0x8285d41a1eb03544, 0x12aa55d920308753, 0x5f530a7608530afa], [0x791107a83bfff925, 0xf3403651f7816481, 0x2d82b38e1f389cf7, 0xef34b30582857e93], [0x37c272d84a8fee29, 0x4419b94285f585e4, 0x3fba57fac6ca8f74, 0x4f3832f5475724e0])
+ self.mul([0x5574515be674dc0e, 0xaa3e7e10ce6a44a, 0x36345497d246a094, 0x4bd91f9d5ed7fa2d], [0x615dbd9c2091d319, 0x92f51193600befd, 0xb889e5f1de45f0f9, 0xaf4b9d5487199341], [0x20805d605e86a47e, 0xc52625b89be355aa, 0x54163dd5d36a60fa, 0x20b85e270ff771de], [0xc73abe917fa10708, 0xfed25803232e1511, 0xe535a1c6e5eeaaf2, 0xa4253c3442e35c6d])
+ self.mul([0x7898b3a18becbd6b, 0x5fd9ebb552caf2ee, 0x7ea88fd45b0beb48, 0x4356135ed36f3abd], [0x7d5fc615c4889a72, 0x4f11c1420c557ab3, 0xb5842973a2003cac, 0x5d75d0f7b62ee908], [0x3b0fadb0e650773a, 0x1fd4cf6bff34fbca, 0x1912df3766d9bc36, 0x5f07b61293b5a080], [0xb5c80f3b4b3fef98, 0xd2cc6d368569b025, 0xa336a81047cef439, 0x39193780c3e5dae8])
+ self.mul([0x85a9b0e330bf4cef, 0x7d7ca950e32a9d99, 0x2f19916ed753ae03, 0x15220970163e278b], [0xbff37c29e26c38ab, 0x158ef129629cca44, 0x37d8892bde109d72, 0x13e37d876e81ba7], [0x6438bbe07919af51, 0xd1094d63f2e141f0, 0x55ccca1eb22fbf4b, 0xac9f13ca805ffb9c], [ 0x15e289b526c8c70, 0x2b6f28d5d47e8611, 0x6da9458f501235e4, 0xd5a2034cf8af74ad])
+ self.mul([0xe6ffd26effc676a2, 0x551db4bf381d8b0e, 0xf47d19c2012062ab, 0x699dc5002ac452c2], [ 0x525df2264d6c74d, 0xbf16a56ce69778b7, 0x6b3297cc7533519c, 0x95473b0523b066cc], [ 0x4a52b6d76503770, 0x737a433de0fcc7d3, 0x765b193ab6745bf8, 0xdce68f66aa3bf752], [0x6bd855b052f635e4, 0xc38e7fb836436fa1, 0x41124d118f4beec5, 0x6ee39f3fb8cb3e98])
+ self.mul([0xfabb98f9227a13e2, 0x633297c241c523ad, 0x8007528731454de5, 0xeb40191c85a286bd], [0xa26dcb2df545e825, 0x4cc49d539459081d, 0xb9b405ab5271f5ae, 0xb8350328cfcdf9c8], [0x9f163fad8f666206, 0xcb788a59ba185833, 0x89fe309672f3f255, 0xf5f78d8853177ef9], [0xb408593cb1bbd3b8, 0x132e62f32b72d62d, 0xa8993573c95ae70c, 0xd4800ee4346018a8])
+ self.mul([0x62dbbbaacd80da87, 0x9fa94c6c89228007, 0xe713121e711ce0be, 0x9c688edb8800dd63], [0x4a6f006c1892a190, 0x4b21b5dedd79f406, 0xbc8293a344fbc804, 0xcae5ad577186c4f0], [0x1cbe61af7ca6bf65, 0x9ba2038b7f575a53, 0x1949575e7f418c43, 0xc7e2d43c3bf1dcad], [0xf3f23feb6ed27fdf, 0x6c7c5bb5f2f6f81c, 0x48c9fa8feac2b4c2, 0x52cdb7c1bf2158d0])
+ self.mul([0x588366442595c065, 0x7cf9b3005427f3ab, 0xa4347eb9f97e8940, 0x537681024b5ddd05], [0x32a857a643d128f4, 0xfa6f0f40b70fb8b8, 0x6ef3e6e13a01bbcb, 0x7e57c4d2a5e50ea0], [0x1183de8290781803, 0xe7c7bfa941254b50, 0x8e9dc7b9acd78240, 0xed656aeebb4e1764], [0xee7e4bcfdd07568e, 0x8142d9a5aec09514, 0xdbd5ecad94aea627, 0xc9a9ce132b396920])
+ self.mul([0xb4dbd64336572c92, 0xc1e12342e1ab53af, 0xb3045adc99b7bea6, 0xb58d296e2951d676], [0x932101f822e7ddbd, 0xfd13d60f0b6fe18a, 0x8418871372f774d, 0xf861a2ed21061b53], [0x67f18dc36054e5a3, 0x44cd1e9b7638c01e, 0x15b8b86347bb2619, 0x3e500c4b0322202f], [0x9a8d8eddede86726, 0x564729e449740f7f, 0xbe9dbdfe31a2353d, 0x893bc8e143eafa42])
+ self.mul([0x7ef6c4e5823838aa, 0x30d8232784617e2a, 0x36d0809d228a0d4c, 0x2834e2786ac3ff23], [0x65918daf6a900d48, 0x5a016586c27ec3ef, 0x24df44db633a1caa, 0x55eaee702ff8fd56], [0x325f8bb8fc5b90bc, 0x6c5e6b52685b8ce4, 0xf633493b0e3f6ff9, 0xacc5c1f9a95c7634], [0x806f4870ad62a336, 0xe4393e9993131c9a, 0xbdd356fd52de582e, 0x7c6a8fe27e54cc2])
+ self.mul([0x67339cc4fdfc8147, 0xe6959bd6df7146e5, 0x13b63403ce4ce531, 0xf5cc5adeac2069d], [0xb0feff7148588b38, 0x8b1e3f1e7a7f278, 0xb3e909423df7f3e9, 0x8960fdb6ef07d8ea], [0x475a47f70e2c3b51, 0x3d2a3aa24f3417e6, 0x14608f17b535cb5e, 0xa5b75651cdd098bf], [0x1be7b88a9a0fc7bd, 0xf0cc057203420164, 0xf1e5fca4f5df40bd, 0x3ddddb250c398382])
+ self.mul([0x8988993e9e2ba89b, 0xa7a17add2f6bed27, 0x1850cedde327dfe8, 0x9087388b0cf10cde], [0x203a4c6dc3057b4d, 0xe4eca9276015fd7d, 0x1ae1c8ad21c2bef4, 0x9d94a6252286b319], [0x1150652a1163203a, 0x22457d62945568ad, 0xfb1694e53be0bf78, 0xeda7e0e797560169], [0x2d0857aeb5815016, 0x269ff3adc03adeaa, 0x32d94dc84c73c563, 0x7dc5599907bd7bae])
+ self.mul([0xc2ce942fc115a477, 0xc15759942ebdd8f4, 0xddd03ed0f0049c5b, 0x5e300fdca44f1e4], [0xc9a76b03519a2de0, 0xf7b7b84b3d5c04db, 0x6b4a295d5beacb19, 0xffa57abe247dd91d], [0x9973988b08355595, 0x620cde33e10c554c, 0xe764b5c709c1b83, 0xc78f0f0a2a523551], [0xd988ec473517d29e, 0x3669dee6aa5c8585, 0xec9a8807ce49cfaf, 0x4151e21a872daad4])
+ self.mul([0xa261869525cd0751, 0x13d3f4c6b16b5185, 0x4553735450e7861, 0xd69631d511a017a], [0x13a0ea0d71948a99, 0x19bb879cf4e55f38, 0xd5fb4f256dfebe1e, 0xc695452d506f30b0], [ 0xc734e66db094683, 0x3e50448f7956be54, 0x74a410ea6ce2fa42, 0x3a3e314c5d43288], [ 0x15e753fe6da04f7, 0x3fb19d50b1d361bd, 0x5d3d1d40e03117e, 0x9a12128b660de3e0])
+ self.mul([0x2fbef956ef165fc7, 0x289b21a17ec9474b, 0xc43d309e050b202b, 0x972d0ed6c01a9e32], [0xeb695ba968cf8c4c, 0xbceaf467c30933ef, 0x9dbffa0719d6592f, 0x72208e030ebad3f5], [0x2be7f54f8d62665b, 0x937d2139b073eb16, 0xc7b01f64e1f8fa6a, 0x8cc9cfec182d463e], [0x32264ada0dbf649c, 0x14fe114c042bac71, 0x9ab1491da6ee9ae5, 0x6632d26f76309bda])
+ self.mul([0xf57f453ee30e201b, 0xb6ef89a68c28445f, 0xa969b086322a985c, 0x3ab46ebdcc12df24], [0x4de3826d2ba8b38c, 0x2e1602c01f358587, 0xfe29ad89c9475cc4, 0x4a0b6e7eb7bea92b], [0x4ab174c1a3472898, 0x148a3355f0f20373, 0xfe2b628af8502380, 0x18995f3d58c791c7], [0xa34800851ea6c048, 0xf69aa9c330c8fd99, 0x50945febc750174d, 0x62e024d615323f0c])
+ self.mul([0x4aea7ec3517619b1, 0x9a2797f65d519495, 0x784bf4a864825441, 0xc8846852759fcfc], [0x82cba593a2efdb99, 0xcd316c230cd1073b, 0x43ab10942a72d09a, 0x4f4d83e7bd4f5461], [0x2646acc60c48d4c3, 0x40672e19841cba8, 0x2af5a034ada838b7, 0x3ba0f5ba802cce79], [0x406d2d38b5275237, 0x27f6b6db71b58728, 0xf3913b6801810ee4, 0xf25f394c8ddf8b7c])
+ self.mul([0xa1a04e4041db2bd0, 0xeb2611bad8a68899, 0x430006adb775b405, 0xbca5ad5be703b363], [0x4b8f3727b96e87fe, 0xfdc6714f6cab2707, 0x95c1db2417c104a9, 0x59989ecf7ddb6dc8], [0x2fb4624b0e7e5a7e, 0x6322fcfd4d1e95f7, 0x8710b48b7a42b14, 0x54e3aed19d8d0bd8], [0xd00c6c62016adddd, 0x921b72db82da1c62, 0x5b109b3d9f59aefe, 0x1c2826f7daf64c58])
+ self.mul([0x9c882cff49187fc6, 0xe952e4c928d05a53, 0x4d7306e2901e4bbd, 0x5c363a90b4ca187d], [0x383ec38e114bc6bb, 0x36907eabb062c450, 0x229886886b06483, 0x594e9884f4aa823], [0x22642a655633da90, 0x986a7767205da376, 0x24dc13d42dddde3, 0x6ebd9d1d29f0ee19], [0x243b6cea69ae7b50, 0x6cf5dadd75f0bd6c, 0xb06382e9aa42a7da, 0x5c625fcefed56117])
+ self.mul([0x98b3e3988ebb31e7, 0xf3a31b54235369ad, 0x49b37f040e63f031, 0xc841c24790be4534], [0x7364c33f086349f1, 0x180b3c0e94a90285, 0x61996673f7cc075b, 0x4281e5e5859d3eb], [0x44d4e9f90f58e897, 0x4c2ec7d0e84138ca, 0x683acfd29361d335, 0xa8a16bb028a4eedd], [0x65a7b769ce2faaa8, 0xf3f95409992a9a39, 0x33106419e22e14ef, 0x3e3a8f06a0c762bc])
+ self.mul([0xcc3b72435b6d9dbc, 0x3c60771f8a6d8df5, 0x81c21a6625daa78a, 0xdadaf2a7a13e8f99], [0xa57baa140c1a67aa, 0x4361090bee55e1c3, 0xd505b09b9d81c98a, 0x59c85fd1316f5dfe], [0x8404f8e4c8781667, 0x8efee19d8861e633, 0x587f95d082ec7d4c, 0xbaeeebaa5da08c35], [0x79fc3ffdfbd3e554, 0xaf1de576fe09ee1, 0x2d762629394b0c9f, 0x37d48e6b42940ece])
+ self.mul([0xcc24d528555d8fbc, 0x5cf508b7b5b53a28, 0x70873a53ff45cf1d, 0x2c7bfa7e97261a52], [0x1e73afb002aef17d, 0xc4549330e41530ee, 0x326b8e1452f394a7, 0x7f76d1d2a43594e1], [0x184891a0044c393b, 0x73628092bec5850d, 0x78a663febd69b495, 0xa784b69e8427cbd0], [ 0x798132b4a30bb43, 0xe7fb04009a34de5, 0x477cef2c231483da, 0xa35c95a8daae8a12])
+ }
+
+ private func mul(
+ _ lhsWords: [Word],
+ _ rhsWords: [Word],
+ _ expectedHighWords: [Word],
+ _ expectedLowWords: [Word],
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let lhs = self.create(lhsWords)
+ let rhs = self.create(rhsWords)
+ let expectedHigh = self.create(expectedHighWords)
+ let expectedLow = self.create(expectedLowWords)
+
+ let (high, low) = lhs.multipliedFullWidth(by: rhs)
+ XCTAssertEqual(high, expectedHigh, "fullWidth.high", file: file, line: line)
+ XCTAssertEqual(low, expectedLow, "fullWidth.low", file: file, line: line)
+
+ let expectedOverflow = expectedHigh != 0
+ let (low1, overflow) = lhs.multipliedReportingOverflow(by: rhs)
+ XCTAssertEqual(low1, expectedLow, "reportingOverflow.low", file: file, line: line)
+ XCTAssertEqual(overflow, expectedOverflow, "reportingOverflow.overflow", file: file, line: line)
+
+ if !expectedOverflow {
+ let low2 = lhs * rhs
+ XCTAssertEqual(low2, expectedLow, "*", file: file, line: line)
+ }
+
+ if rhsWords.count == 2 {
+ let rhsSmall = rhs.low
+
+ let (highSmall, lowSmall) = lhs.multipliedFullWidth(by: rhsSmall)
+ XCTAssertEqual(highSmall, expectedHigh.low, "fullWidth(UInt128).high", file: file, line: line)
+ XCTAssertEqual(lowSmall, expectedLow, "fullWidth(UInt128).low", file: file, line: line)
+
+ let (lowOvSmall, overflowSmall) = lhs.multipliedReportingOverflow(by: rhsSmall)
+ XCTAssertEqual(lowOvSmall, expectedLow, "reportingOverflow(UInt128).low", file: file, line: line)
+ XCTAssertEqual(overflowSmall, expectedOverflow, "reportingOverflow(UInt128).overflow", file: file, line: line)
+
+ if !expectedOverflow {
+ let lowStarSmall = lhs * rhsSmall
+ XCTAssertEqual(lowStarSmall, expectedLow, "UInt128.*", file: file, line: line)
+ }
+ }
+ }
+
+ // MARK: - Div
+
+ func test_div_1_by_1() {
+ self.div([0x61ad5db6d003d744], [0x91450f73b002ccd6], [ 0x0], [0x61ad5db6d003d744])
+ self.div([0x809d875767eb6593], [0x3e5a42daeefcdc03], [ 0x2], [ 0x3e901a189f1ad8d])
+ self.div([0xf7948bfff333f95a], [0x78701cedf27c3675], [ 0x2], [ 0x6b452240e3b8c70])
+ self.div([0x2adc44c2250c22b5], [0x86dcc2385d6c3c4a], [ 0x0], [0x2adc44c2250c22b5])
+ self.div([0x5f197ba30a3953f0], [0xcf34813732b25098], [ 0x0], [0x5f197ba30a3953f0])
+ self.div([0xbc18d83190d9926c], [0x7e770f3799b07c2f], [ 0x1], [0x3da1c8f9f729163d])
+ self.div([0xdc7c0c7854d9aa72], [0xdc2b009044b88743], [ 0x1], [ 0x510be81021232f])
+ self.div([0xfc19da0843f1c4db], [0xe2101f5918a52345], [ 0x1], [0x1a09baaf2b4ca196])
+ self.div([0x66d981ae2997beec], [0x5482e52cc9b88926], [ 0x1], [0x12569c815fdf35c6])
+ self.div([0xb900dddbd1b20d1a], [0x700f32cdc3104ddf], [ 0x1], [0x48f1ab0e0ea1bf3b])
+ self.div([0x3da68101036d8416], [ 0x3b231b5bbf3c16a], [ 0x10], [ 0x28365a544316d76])
+ self.div([0x432bbe5cec71a7bb], [0x86dada7ab68eaf2e], [ 0x0], [0x432bbe5cec71a7bb])
+ self.div([0xcf2d113f2cbd2738], [0x90a950e3599e7ab8], [ 0x1], [0x3e83c05bd31eac80])
+ self.div([0xc6073cf271232cdf], [0x6ee32d62806128f4], [ 0x1], [0x57240f8ff0c203eb])
+ self.div([0x24ee317bab0dad3b], [0x8102be74bfb0eac2], [ 0x0], [0x24ee317bab0dad3b])
+ self.div([0x43b6bffb7c19108b], [0x56a5ce6cf47a9a8f], [ 0x0], [0x43b6bffb7c19108b])
+ self.div([0x1a0571b11c274d12], [0xf97df4060277063f], [ 0x0], [0x1a0571b11c274d12])
+ self.div([0x3ba04420d6f8cb3f], [0x15073f8a7957feeb], [ 0x2], [0x1191c50be448cd69])
+ self.div([0x11d51cbf769f9cf2], [0xc871dfc431d6ae9b], [ 0x0], [0x11d51cbf769f9cf2])
+ self.div([0x6bfa97400203b8d3], [0xe9bfbb1f9970396c], [ 0x0], [0x6bfa97400203b8d3])
+ self.div([0x28a4a3be337f6a9b], [0x2afd8b9b7964a884], [ 0x0], [0x28a4a3be337f6a9b])
+ self.div([0xa6459500b9899a86], [0xa2ba5746afd8db1f], [ 0x1], [ 0x38b3dba09b0bf67])
+ self.div([0x8f5ce4f17608dc19], [0x94ef0e96c9c3b7be], [ 0x0], [0x8f5ce4f17608dc19])
+ self.div([0x1ce4d7be0e593756], [0xd039c4feb2d5bdef], [ 0x0], [0x1ce4d7be0e593756])
+ self.div([0x81736e6c8adfcedb], [ 0xb5dd6874c57236c], [ 0xb], [ 0x46b369c43214937])
+ self.div([0x345005bea3680908], [0x443e39400b0a1892], [ 0x0], [0x345005bea3680908])
+ self.div([0x360c7c62b25bcb49], [0xc2809acbe986c753], [ 0x0], [0x360c7c62b25bcb49])
+ self.div([0xb38d6c5c712590fe], [0x81bf442bd310dca6], [ 0x1], [0x31ce28309e14b458])
+ self.div([0x2637fe7b4c7e118b], [0xd839b534d39fa652], [ 0x0], [0x2637fe7b4c7e118b])
+ self.div([0x7b3121eedc2a979c], [0x586ec89acf2b307c], [ 0x1], [0x22c259540cff6720])
+ self.div([0x34731d52140ae8d7], [0x8eb8d3d0cfe83c21], [ 0x0], [0x34731d52140ae8d7])
+ self.div([0xc556ca23a667b406], [0xe29755c07a36aa26], [ 0x0], [0xc556ca23a667b406])
+ self.div([0xacbcae07b45e3d6f], [ 0x713dadd5a56840a], [ 0x18], [ 0x2e029473c41dc7f])
+ self.div([ 0x2d212969bf6e42c], [0x46982449306bc55a], [ 0x0], [ 0x2d212969bf6e42c])
+ self.div([ 0x6bb474aba3ed353], [0x41ca13e3f0e6b866], [ 0x0], [ 0x6bb474aba3ed353])
+ self.div([0xb9dfa185903ab1bd], [0x16577ccb61dc6fbc], [ 0x8], [ 0x723bb2a815733dd])
+ self.div([0x948751428cc661d4], [0xddc1a91e509c5aa3], [ 0x0], [0x948751428cc661d4])
+ self.div([0x6c8f339b2ad24332], [0x1422b2bcf8e48219], [ 0x5], [ 0x7e1b5ea4e5bb8b5])
+ self.div([0x99d381ee5149576f], [0x444e5c17d10a5625], [ 0x2], [0x1136c9beaf34ab25])
+ self.div([0x1c7d8edbf0f371ab], [0x43a1067fc4ca5aa8], [ 0x0], [0x1c7d8edbf0f371ab])
+ self.div([0x57646ad2a990e802], [0x29fe4e2a39f8b8c6], [ 0x2], [ 0x367ce7e359f7676])
+ self.div([ 0x38afc7f2b10a781], [0x1cbed3da15862991], [ 0x0], [ 0x38afc7f2b10a781])
+ self.div([0x43fa77d7bf6d1f94], [ 0xc0db3d16e7750f6], [ 0x5], [ 0x7b5f4c097188ac6])
+ self.div([0x230f86cbc125143b], [ 0xbf1ce252722aa47], [ 0x2], [ 0xb2bea8172dfbfad])
+ self.div([0x3d06112d28258806], [0xea0d8a620da35d44], [ 0x0], [0x3d06112d28258806])
+ self.div([0xd08914b83445f342], [0xc3e6b17c965b2246], [ 0x1], [ 0xca2633b9dead0fc])
+ self.div([0x4dc6a4b2db6d9b43], [0x1c8568f0fdf5340a], [ 0x2], [0x14bbd2d0df83332f])
+ self.div([0x19cd0bac63bed92b], [0xc89d8237663f54d6], [ 0x0], [0x19cd0bac63bed92b])
+ self.div([0x4dbb4eb426e51d93], [0x20d9a56668399389], [ 0x2], [ 0xc0803e75671f681])
+ self.div([0x56374010cbf6e348], [0x485a8cfb3af8aa5f], [ 0x1], [ 0xddcb31590fe38e9])
+ self.div([0x3d77b290946430b3], [0xb68e33d96738ab65], [ 0x0], [0x3d77b290946430b3])
+ self.div([0x670f2bac1322ce91], [0x477a0c3a323797fc], [ 0x1], [0x1f951f71e0eb3695])
+ self.div([0x61234615155d99f6], [0x26d3e7b6b56852e2], [ 0x2], [0x137b76a7aa8cf432])
+ self.div([0x6cc89ac977c70854], [0x3a29118431be386d], [ 0x1], [0x329f89454608cfe7])
+ self.div([0xd0b0bc8afeabb830], [0x6998e6eb2b3afad1], [ 0x1], [0x6717d59fd370bd5f])
+ self.div([0x89076eda65ede481], [0x4007b4bc55a12ee8], [ 0x2], [ 0x8f80561baab86b1])
+ self.div([0x7d9f56dba49ac757], [0x95267bd84d74c94e], [ 0x0], [0x7d9f56dba49ac757])
+ self.div([0x7c3236258af89e4c], [0x42493b61a958b35e], [ 0x1], [0x39e8fac3e19feaee])
+ self.div([0x184c63e9d949efdf], [0xc93682f50b10eb30], [ 0x0], [0x184c63e9d949efdf])
+ self.div([0x416f6cfc019209b1], [0xe4bbbd3f388142f9], [ 0x0], [0x416f6cfc019209b1])
+ self.div([0xe8d76dace8346bc7], [0xafee843ab5b30c18], [ 0x1], [0x38e8e97232815faf])
+ self.div([0xc03f1bd78ec48f39], [0x7f6a5dca4372d21c], [ 0x1], [0x40d4be0d4b51bd1d])
+ self.div([0x6646f2d9ff46b2b1], [0x79938338f2dad2cf], [ 0x0], [0x6646f2d9ff46b2b1])
+ self.div([0x9f0d6da7d9016bf5], [ 0x48a7ca4e2a21a2b], [ 0x23], [ 0x1e631cdcd7d814])
+ self.div([0xee25c59f275469f7], [0x660d435497f73a31], [ 0x2], [0x220b3ef5f765f595])
+ self.div([0xd2242c85e838777f], [0xac4a360b51080080], [ 0x1], [0x25d9f67a973076ff])
+ self.div([0xa4d51c62d4f040a7], [0x449955f6c1bb027e], [ 0x2], [0x1ba27075517a3bab])
+ self.div([0x21a0c775bedeb691], [0x8cb75e4e2711b251], [ 0x0], [0x21a0c775bedeb691])
+ self.div([0x94e0b3dcb2d2e139], [0xa131144f85c13485], [ 0x0], [0x94e0b3dcb2d2e139])
+ self.div([0x91e28dee8e055be6], [0xbdaa28dccd216bde], [ 0x0], [0x91e28dee8e055be6])
+ self.div([0xaa9389523a4f8b55], [0x89e1f6ea81aefc94], [ 0x1], [0x20b19267b8a08ec1])
+ self.div([0xa43868e513759110], [0x25ac8e061047da50], [ 0x4], [ 0xd8630ccd25627d0])
+ self.div([0x2fd49650265a6ced], [0x66955f1d7412af5b], [ 0x0], [0x2fd49650265a6ced])
+ self.div([0x4088dc22474e0e7a], [0x48389a380c13210e], [ 0x0], [0x4088dc22474e0e7a])
+ self.div([0x4a84546fb1df95fa], [0x7d6ae13c1110c3b9], [ 0x0], [0x4a84546fb1df95fa])
+ self.div([0xf2a3c0cc93da6f12], [0xb5226dc962662b8b], [ 0x1], [0x3d81530331744387])
+ self.div([0x6e401820057a5ded], [0x710946445cd70841], [ 0x0], [0x6e401820057a5ded])
+ self.div([0xb68e96ea9ccc1219], [0xcc973d065fad65df], [ 0x0], [0xb68e96ea9ccc1219])
+ self.div([0xbd3ec3652fb7d6f5], [0x19db8c636adb5a6c], [ 0x7], [ 0x83decad43b85e01])
+ self.div([0x70d726e8e72b9445], [0x831f52f27496da03], [ 0x0], [0x70d726e8e72b9445])
+ self.div([0xdebf95ea3107b4d4], [0xc22bd4a26b2cda5d], [ 0x1], [0x1c93c147c5dada77])
+ self.div([0x6683a562b24227bc], [0x55c3279211abba41], [ 0x1], [0x10c07dd0a0966d7b])
+ self.div([0x51336157fee984a3], [0x75228b6f5b15dc42], [ 0x0], [0x51336157fee984a3])
+ self.div([0x97fd49eb6fde28c1], [0x2f977cf83e590bb4], [ 0x3], [ 0x936d302b4d305a5])
+ self.div([0x5b5596970530ecd6], [ 0xa79e7a6ad6fcd45], [ 0x8], [ 0x786596199b282ae])
+ self.div([0x476626e594c23320], [0xed2f8042cc69a488], [ 0x0], [0x476626e594c23320])
+ self.div([0x82baea8e754148ae], [0xcc6263505abaa9f5], [ 0x0], [0x82baea8e754148ae])
+ self.div([0x459b6819a10911a9], [0x8b93f03c7c96aa36], [ 0x0], [0x459b6819a10911a9])
+ self.div([0x6dd63eac7e5e24ea], [0x566921b962b0606c], [ 0x1], [0x176d1cf31badc47e])
+ self.div([0xb5bdb06c2192a37d], [0xdcbee12d50f48679], [ 0x0], [0xb5bdb06c2192a37d])
+ self.div([0xabc1e980e9aa98e0], [0xe500219035d75117], [ 0x0], [0xabc1e980e9aa98e0])
+ self.div([0xefe25391d4e56594], [0xcbd597c2d1b8fa27], [ 0x1], [0x240cbbcf032c6b6d])
+ self.div([0xd9d802b96af1acb3], [0x217ad63ee15bfe89], [ 0x6], [0x10f6fd4022c9b57d])
+ self.div([0x92428ef3a2ab62b7], [ 0x41d4bbb00af1217], [ 0x23], [ 0x24134628abbe992])
+ self.div([0xb83f85d7397bbaca], [ 0xf5b28f46917153a], [ 0xb], [ 0xf54c356b57dd14c])
+ self.div([0xf3d9dec8ec82bdde], [0xd6270cbc6c3c1de0], [ 0x1], [0x1db2d20c80469ffe])
+ self.div([0xd56be3dffd12252a], [0x9821f55c3efd547f], [ 0x1], [0x3d49ee83be14d0ab])
+ self.div([0x9c3cf295bac58582], [0x877fa4c6b1051a06], [ 0x1], [0x14bd4dcf09c06b7c])
+ self.div([ 0xd35a6a121a65761], [0xe314c2c960848650], [ 0x0], [ 0xd35a6a121a65761])
+ self.div([0xc8be309e7b13754a], [0x789b2fb78231bce2], [ 0x1], [0x502300e6f8e1b868])
+ }
+
+ func test_div_1_by_2() {
+ self.div([0xff2aa9da63eb98f4], [0xa3ac7051286bd0b7, 0x371426bebce44ad], [ 0x0], [0xff2aa9da63eb98f4])
+ self.div([0xac86dd844fa37829], [0xb4290153cd21a3b6, 0xba20a550a928dd6d], [ 0x0], [0xac86dd844fa37829])
+ self.div([0xd93c2ac1bbf132db], [0xfca21d5b1daafc30, 0x1ddd514859229b16], [ 0x0], [0xd93c2ac1bbf132db])
+ self.div([0xed28d02c070f0639], [0xdcb47872af54480d, 0x6e9a5f0ed1ef8da2], [ 0x0], [0xed28d02c070f0639])
+ self.div([0x3df08caad158ce91], [0xd772f225410f7301, 0x7694863e6d9cc461], [ 0x0], [0x3df08caad158ce91])
+ self.div([0x3375710e3dc265a3], [0xcaf327781edbc6f9, 0xed52fb46e7794940], [ 0x0], [0x3375710e3dc265a3])
+ self.div([0x9566cf781b56df36], [0xcd08c7cd08081adf, 0xf7e0234a2808ee1c], [ 0x0], [0x9566cf781b56df36])
+ self.div([0x46632cc410aa5e38], [0x8b95e19a60794a58, 0x1b3a5d887b56eee3], [ 0x0], [0x46632cc410aa5e38])
+ self.div([0x43d35593c34317a0], [0xa2b990d3499d47ca, 0xb9e3d812882f3944], [ 0x0], [0x43d35593c34317a0])
+ self.div([0xdf7e2fea1a590ca2], [0xe51fe3402e255ba1, 0xf0a70d42d1db101a], [ 0x0], [0xdf7e2fea1a590ca2])
+ self.div([0xd02b3407d433ecc9], [0x9ed9a4e040c22759, 0xe1c6837d19972570], [ 0x0], [0xd02b3407d433ecc9])
+ self.div([ 0xd8eea50407b3a40], [0xc4f0371fe98ef19d, 0x413064d54a1e81f0], [ 0x0], [ 0xd8eea50407b3a40])
+ self.div([ 0x7d2271c46b60c36], [0xb280cca3087424bb, 0x430c4a458ab66763], [ 0x0], [ 0x7d2271c46b60c36])
+ self.div([0xa76f000fef3af966], [0x601be3c4c1a2bc15, 0x90313ff1c62d36ee], [ 0x0], [0xa76f000fef3af966])
+ self.div([0x2dbff4d9c7dcd6d1], [ 0x7633e650ce8449e, 0xec0c6046efd363f0], [ 0x0], [0x2dbff4d9c7dcd6d1])
+ self.div([0x5f104c321a724e5f], [0x78da3fc99561b194, 0xe45c59d76be38860], [ 0x0], [0x5f104c321a724e5f])
+ self.div([0xa6a3e2b4f350e99e], [0xb9dc5716e523cba2, 0x824046bba2bd066e], [ 0x0], [0xa6a3e2b4f350e99e])
+ self.div([0xa680999ab7bfb881], [0x20f659c664c2fb20, 0xea6c1791e4c1611f], [ 0x0], [0xa680999ab7bfb881])
+ self.div([0xed47b350c0b6d548], [0xfd2a4ebff1a88895, 0x28deac1de8bd81b4], [ 0x0], [0xed47b350c0b6d548])
+ self.div([0x324bd6dada2b0eb3], [0xb6476207b00e1423, 0x12883e6802d90b28], [ 0x0], [0x324bd6dada2b0eb3])
+ self.div([0x29a374d9edafa6ce], [0xf71d99f244d76885, 0xb8c63bd026fa9b33], [ 0x0], [0x29a374d9edafa6ce])
+ self.div([0x51213b6875d195ab], [0xd059e7579f75178e, 0xbdab5ffe1dba277d], [ 0x0], [0x51213b6875d195ab])
+ self.div([0x676febd1103cdb85], [0xeb8ac2fbd9012404, 0xe8a842733e32ae70], [ 0x0], [0x676febd1103cdb85])
+ self.div([0xf185c0ed711b9414], [ 0x6b8c3b78fe34b25, 0x1f4bd629216bd83a], [ 0x0], [0xf185c0ed711b9414])
+ self.div([0xcdc61fdbc08fc98c], [0x91473db18a8749a5, 0xec67b5533bc03726], [ 0x0], [0xcdc61fdbc08fc98c])
+ self.div([0xcdea658e4d7468d1], [0x452ca964f8ecc547, 0x61168cb96351f350], [ 0x0], [0xcdea658e4d7468d1])
+ self.div([0xfdfb619d17b73e40], [0x4159db562c83a788, 0xffb465069366c289], [ 0x0], [0xfdfb619d17b73e40])
+ self.div([0xd674d7c30f1ca5fe], [0xecade8da0feb453f, 0xa64a91ff6aaac729], [ 0x0], [0xd674d7c30f1ca5fe])
+ self.div([ 0xd576f6101b03bff], [0xde0ca8b2f0be58f2, 0xd47e33d176540ebc], [ 0x0], [ 0xd576f6101b03bff])
+ self.div([0xaa9aad3cd862baed], [0x5f17b903c276bf23, 0xbd9eb6663630add0], [ 0x0], [0xaa9aad3cd862baed])
+ self.div([0x78fe900c1edfdec7], [0x404b4a5d80bac96d, 0x19cab143dd9bf366], [ 0x0], [0x78fe900c1edfdec7])
+ self.div([0x1857a2881107b24b], [0xbc0053bd3f42f441, 0x47c8644499dfa12b], [ 0x0], [0x1857a2881107b24b])
+ self.div([0x7e1897580c9993a8], [0xd041c2278f23a102, 0x87d14da45a9066cf], [ 0x0], [0x7e1897580c9993a8])
+ self.div([0x6c0f35d097d54af3], [0x595e9da095b7f30b, 0x325ee91f1342292], [ 0x0], [0x6c0f35d097d54af3])
+ self.div([0xf98964a828e8c3af], [0x9cd6c6148dca7ad8, 0xdd6b4c57ac092103], [ 0x0], [0xf98964a828e8c3af])
+ self.div([0xf1788f899f357652], [0x85c228573a8d75d3, 0xadb31361c533db49], [ 0x0], [0xf1788f899f357652])
+ self.div([ 0x56b7ad59593a84d], [0xe897ee234e506e18, 0xc6a9cff4c15b556], [ 0x0], [ 0x56b7ad59593a84d])
+ self.div([0x61c9d35cc023fea8], [0xdf1ff00267eb9ef9, 0x41694a83eae5f350], [ 0x0], [0x61c9d35cc023fea8])
+ self.div([0x9a68fe907124b097], [0xf11735140a9d6955, 0xbdf31de38b28e06b], [ 0x0], [0x9a68fe907124b097])
+ self.div([0x764150a223c1bf53], [0x4cfa9de9f6e53dff, 0x16bd28177dfa0e17], [ 0x0], [0x764150a223c1bf53])
+ self.div([ 0x2d9be28a8e91488], [0xae2c72ff702f8945, 0xfd9eac0d9c0cfed0], [ 0x0], [ 0x2d9be28a8e91488])
+ self.div([ 0x249af570d3010e7], [0x171b029284ceb2ab, 0x3dcea5070d162966], [ 0x0], [ 0x249af570d3010e7])
+ self.div([0xae6aa422ebf12984], [0x18604a48f35c1416, 0x174fb7ff027006b6], [ 0x0], [0xae6aa422ebf12984])
+ self.div([0xf229c10c4e7c6f00], [0xf6f20f93df6fda70, 0x6d0197be4ce8bdff], [ 0x0], [0xf229c10c4e7c6f00])
+ self.div([ 0x273eb866b7b737e], [0x1c0ab21b7155cf6b, 0xdd0f13cf93812db2], [ 0x0], [ 0x273eb866b7b737e])
+ self.div([0xee00e197cd356db6], [0x441baa5e40802ddc, 0xeb2b57df734812f2], [ 0x0], [0xee00e197cd356db6])
+ self.div([0x5b08204288fc803d], [0x3a03886a645d2f1c, 0x442e39c3177f4666], [ 0x0], [0x5b08204288fc803d])
+ self.div([0xdb89ce3144171704], [0xe02da6f87edce1b0, 0x3b23ab0b9ba57e62], [ 0x0], [0xdb89ce3144171704])
+ self.div([0xc903a323321fecbd], [0x17d9db24dd1417ed, 0xd28cf7cca8c928f9], [ 0x0], [0xc903a323321fecbd])
+ self.div([0xc8cf1073d7b7f7df], [0xedca7081287f8258, 0x8574c5c3fd3b7fc9], [ 0x0], [0xc8cf1073d7b7f7df])
+ self.div([0xffc5e2496e23274a], [0xd362fcb495ffc722, 0x2924aef9feb10de], [ 0x0], [0xffc5e2496e23274a])
+ self.div([0x195228d773929c53], [0x2982a5e811bad2b4, 0xaddff153fbb5ef0e], [ 0x0], [0x195228d773929c53])
+ self.div([0xd691989f8d161fb0], [0xd981879524e76108, 0xda0c1e935ba8ed43], [ 0x0], [0xd691989f8d161fb0])
+ self.div([0x9e795d52e6e4f736], [0x1f440339d0f190a5, 0xbfd9bb45588a446f], [ 0x0], [0x9e795d52e6e4f736])
+ self.div([0x61f2efb19ad2d931], [0xa707a0806e630f18, 0xad7e88d1e79d8bb1], [ 0x0], [0x61f2efb19ad2d931])
+ self.div([0xe3616eefce5b5efc], [0xcadd0a01f9901465, 0x851899295afc6753], [ 0x0], [0xe3616eefce5b5efc])
+ self.div([0xfeed92633c8609e5], [0xe181f7a4bd08b308, 0x3af7d8c034eae867], [ 0x0], [0xfeed92633c8609e5])
+ self.div([0xf09a684cccb29609], [0xf37e6284027f7265, 0x51a313afd9efb9d8], [ 0x0], [0xf09a684cccb29609])
+ self.div([0xe47dfb265634d136], [0xf4421aa9627a16d4, 0xf5e68ffa6649aaa6], [ 0x0], [0xe47dfb265634d136])
+ self.div([0xfc72f60fdcea8569], [0x90f6ccad24ef384f, 0x67b1ef5793c78a82], [ 0x0], [0xfc72f60fdcea8569])
+ self.div([0xa93eb24f2d742a22], [0x994bbbbd78ca013c, 0xd2ac0ccce80c1cd1], [ 0x0], [0xa93eb24f2d742a22])
+ self.div([0xa390e20d504f6f41], [0x6f7e6e719abb053d, 0xc143f94e4f325bf6], [ 0x0], [0xa390e20d504f6f41])
+ self.div([0x7cde4f5e35f16bde], [ 0x6895ca241026932, 0x2da33cb44815308c], [ 0x0], [0x7cde4f5e35f16bde])
+ self.div([0x6529e2118dbe84de], [ 0xe8db272713ca67d, 0x2d9b8eff52ecbffc], [ 0x0], [0x6529e2118dbe84de])
+ self.div([0xfc3c2ab6a15e9a74], [0xa67cdc9c889891c8, 0x209474928617cc06], [ 0x0], [0xfc3c2ab6a15e9a74])
+ self.div([0xfdf6adfd31657a78], [0x2b18ce18c3668f07, 0x6157c7c5bd2a2469], [ 0x0], [0xfdf6adfd31657a78])
+ self.div([0x6453a41e9d9c650f], [0x22c371b725c36668, 0x9d53a16d621dc338], [ 0x0], [0x6453a41e9d9c650f])
+ self.div([0x821e26038a91b7eb], [0x9e05971d1d20c103, 0x88384db9f86cc74a], [ 0x0], [0x821e26038a91b7eb])
+ self.div([0xffb1a61d2528f013], [0x6f5105e43b3fe2bf, 0x2cd562fdef97f98], [ 0x0], [0xffb1a61d2528f013])
+ self.div([0x97c02159014dd019], [0x3290569ad4450f9c, 0xae37927e113db929], [ 0x0], [0x97c02159014dd019])
+ self.div([0xf2c5331b41b34e29], [0xfebe5dab9a101595, 0x4fab40b820d5839b], [ 0x0], [0xf2c5331b41b34e29])
+ self.div([0x30d6efcebcb7b2fb], [0xca05b286af9b1833, 0x3d893d1e11096709], [ 0x0], [0x30d6efcebcb7b2fb])
+ self.div([0x3fe8d486e618db27], [0xbeebf5fae83af4a5, 0xb84b6665cfc1aef3], [ 0x0], [0x3fe8d486e618db27])
+ self.div([0x7a037f7ce45541a2], [0xe96468534c86bcd5, 0x6842c8fc5a6c5435], [ 0x0], [0x7a037f7ce45541a2])
+ self.div([ 0x5ead67dff86a0dd], [0x557ca3c402d177e5, 0x45852b5d2ef9900b], [ 0x0], [ 0x5ead67dff86a0dd])
+ self.div([0xcbceebbed2ae789e], [ 0x11c11d84c008a14, 0x8ce84c31a1bef499], [ 0x0], [0xcbceebbed2ae789e])
+ self.div([ 0x75944dc61dbd5d5], [0xad9cfe2fc6788a57, 0x36f0f988ed4030c6], [ 0x0], [ 0x75944dc61dbd5d5])
+ self.div([0x7238808cd59c24dc], [0x8303e3c864b9740a, 0xd46713485acb3e17], [ 0x0], [0x7238808cd59c24dc])
+ self.div([0xc0ceae42348a52f7], [0x7f9000a48db8d767, 0x3b66fbe19f3eb6d7], [ 0x0], [0xc0ceae42348a52f7])
+ self.div([0x6cd4b64833985a38], [0x1e565d51a185b216, 0xebee7d72aac184fc], [ 0x0], [0x6cd4b64833985a38])
+ self.div([0xc489f0f03a7ce16b], [0x75f2b7f3fde5adfb, 0xbfca7cc476106184], [ 0x0], [0xc489f0f03a7ce16b])
+ self.div([0xcf8d5d4449e2c09a], [0x8654a153c7ff86b2, 0x8981958bb518294], [ 0x0], [0xcf8d5d4449e2c09a])
+ self.div([0x530e0048289b7ab0], [0x1862a022245f55d9, 0x8869cc5e036e3b09], [ 0x0], [0x530e0048289b7ab0])
+ self.div([0xb12cee9c0858dcae], [0xab0f5d340d504162, 0x33a9dfe152908ffa], [ 0x0], [0xb12cee9c0858dcae])
+ self.div([0xc70b90527d8c9f61], [0xf2319ce0da4b281e, 0xf61885f4671f9574], [ 0x0], [0xc70b90527d8c9f61])
+ self.div([0xbfa8d2060c908ef1], [0xf21b15de1b924e2a, 0x1950fa2ae119886f], [ 0x0], [0xbfa8d2060c908ef1])
+ self.div([ 0x9dbfe17fd0860b4], [0x742080f1b7b24eb1, 0xa7d2d5d698ec136f], [ 0x0], [ 0x9dbfe17fd0860b4])
+ self.div([0x1f4ed5526470739b], [0x36dc69aae4f29cc8, 0xeed8d8293d6d0b8f], [ 0x0], [0x1f4ed5526470739b])
+ self.div([0x158714bb8cab5643], [0x9b637f6b958791b1, 0xaffdeaeb2e468bf3], [ 0x0], [0x158714bb8cab5643])
+ self.div([0x7850f626b4d73def], [0x467a58f4d1fad171, 0x17985664304e4b5a], [ 0x0], [0x7850f626b4d73def])
+ self.div([0xe5fefca5b6cfd446], [0x7877fbfd3d2825fc, 0xd98dda6089ac92d8], [ 0x0], [0xe5fefca5b6cfd446])
+ self.div([0x6e847e776c3f9463], [0xd5238a50c03d0e33, 0x51df5160a9b7d219], [ 0x0], [0x6e847e776c3f9463])
+ self.div([0xaa7920b67001e487], [0xd6d05110e5c241dc, 0xd63f4d9bcfd8ad9c], [ 0x0], [0xaa7920b67001e487])
+ self.div([0xf19017fe512d63a3], [ 0x7a543202675c36a, 0x86691425659395e2], [ 0x0], [0xf19017fe512d63a3])
+ self.div([ 0xf3ccffc3907d495], [ 0xf2b594290ad24d1, 0xd3c21d2c2a0f73f0], [ 0x0], [ 0xf3ccffc3907d495])
+ self.div([0x970edabb9e21c0ac], [0x543f3a80a7c5e488, 0xcdc9b8898f0d4c93], [ 0x0], [0x970edabb9e21c0ac])
+ self.div([0x39baf6ce2ac6580d], [0xad859af54763d659, 0xbe4de49a196885a7], [ 0x0], [0x39baf6ce2ac6580d])
+ self.div([0xb5a3d1acefe82905], [0x9d0b004a5b7abc57, 0x747f7cc90157e1a], [ 0x0], [0xb5a3d1acefe82905])
+ self.div([0xf93c57ef3e27520f], [0x580064cfde01febb, 0xbea09e63967ea750], [ 0x0], [0xf93c57ef3e27520f])
+ self.div([0x88a025648ff50b9c], [0x90204424b3d6b755, 0x12d140a596df27ef], [ 0x0], [0x88a025648ff50b9c])
+ }
+
+ func test_div_1_by_3() {
+ self.div([0x65eed3cdb168ae3e], [0x8f60815611479bc4, 0xd30217b97865fe21, 0x6696a19f0c440228], [ 0x0], [0x65eed3cdb168ae3e])
+ self.div([0x390311dfdf946c82], [0xa04136930f96974d, 0x797dc4de9c99e675, 0xfacdda9dfb70f458], [ 0x0], [0x390311dfdf946c82])
+ self.div([0x63401d7fc072c216], [0x7741c507b72173fd, 0xc5f568cd2be20f22, 0xe80ad7cc099233b0], [ 0x0], [0x63401d7fc072c216])
+ self.div([0xba01aa61111715c3], [0x96990d08a3635a13, 0x3a63496a5c89b59e, 0x8c2420bf16710c51], [ 0x0], [0xba01aa61111715c3])
+ self.div([0x66607f4b18850714], [0x61fd3fc12e6308ce, 0xe7e69fa2255c7eb1, 0xfeb2d32cbbbc024], [ 0x0], [0x66607f4b18850714])
+ self.div([0x20d0548614628c55], [0x1500748fcad28c18, 0x8cd4b37674a790c7, 0xe4830e0e67df6b93], [ 0x0], [0x20d0548614628c55])
+ self.div([0x99ec47c1d63e40a5], [0x7d6d6e04a707d83c, 0xd8e0c3db4340a11b, 0x442c8735ee9ea95c], [ 0x0], [0x99ec47c1d63e40a5])
+ self.div([0x1f0c7c8e57c246f4], [0x711b79e60ffa8e2c, 0x7026153331e44db1, 0x1c7bcd16d82c020a], [ 0x0], [0x1f0c7c8e57c246f4])
+ self.div([0x39b31bcb5183aeb9], [0xb778420eeac32bef, 0x87ad6578fe1489c0, 0xb83986b68a7cedde], [ 0x0], [0x39b31bcb5183aeb9])
+ self.div([0xac6fe91be1304fb2], [0xee3a3e18bc65d081, 0x60d3100162cfc2d4, 0xa8e6414cb6adc0e6], [ 0x0], [0xac6fe91be1304fb2])
+ self.div([0xe32b6fe7090ed3fd], [0xfa0cef0b6c296f4f, 0xe188e6ba72b6dbc1, 0xa8351a8f82dd7ab1], [ 0x0], [0xe32b6fe7090ed3fd])
+ self.div([0xfff6fa615986e5d7], [0x1ab178a44a890f83, 0x7ecceda811200181, 0x36a7aef36101b487], [ 0x0], [0xfff6fa615986e5d7])
+ self.div([0x9a4c7faa8e734146], [0x85d68d25284811ec, 0x48dd8fbb6c49722e, 0xf03b95ed3cae946e], [ 0x0], [0x9a4c7faa8e734146])
+ self.div([0xb1e7f130c365e253], [0x2150071440df1f72, 0xe9d8d9631a4e053d, 0x63c7250268554ce5], [ 0x0], [0xb1e7f130c365e253])
+ self.div([0xf333e6c82f224fc9], [ 0x4571434b60fe8f0, 0x7f835f930e77d32e, 0xe659f6ef82500669], [ 0x0], [0xf333e6c82f224fc9])
+ self.div([0xebe5ffe7e4989a1f], [0xab0d831abce586fe, 0x5f47813374482d64, 0xd6e5e25629e5429e], [ 0x0], [0xebe5ffe7e4989a1f])
+ self.div([0x95c72d53947a73e6], [0x970ac60b370ea71e, 0x31fb5706d54c7dcd, 0xa409187c072a908c], [ 0x0], [0x95c72d53947a73e6])
+ self.div([0xf98cdc7e7868f019], [0xde191896d3b1d964, 0x6cff4dedf7119e88, 0x7ba171d2b9a79b29], [ 0x0], [0xf98cdc7e7868f019])
+ self.div([ 0x34be105a6a26178], [0x1189758bfb8d113a, 0xd1f3c443a129a124, 0x9e496462a2222c7f], [ 0x0], [ 0x34be105a6a26178])
+ self.div([0x2f811d80a525409c], [0x2eab24e45e4bff7c, 0x2b7fa58a5da7a734, 0x3fb33fc049ec0716], [ 0x0], [0x2f811d80a525409c])
+ self.div([0xaa4840c18f335b7e], [0xfc7ac842b65b0c1f, 0x59a98ddb643e5280, 0x3cf9f26f69240a8c], [ 0x0], [0xaa4840c18f335b7e])
+ self.div([0x3e92c54f39fb7121], [0xa26588137609482d, 0xd148155f10e0a7f6, 0x9e4c283b0bead881], [ 0x0], [0x3e92c54f39fb7121])
+ self.div([0xc75c7ab6f823a2be], [ 0x8f9e2a133e2054a, 0x7da5c0fa11959d44, 0xc59e862970811618], [ 0x0], [0xc75c7ab6f823a2be])
+ self.div([ 0x5f76d04201eba4a], [0xb011152836ed7f08, 0x7daa26e8f48f8a3c, 0x21d641044119c390], [ 0x0], [ 0x5f76d04201eba4a])
+ self.div([0x290e31c424be3d17], [0xb73bc13f4b51d9bb, 0xada3eff89b3f9367, 0x130db5324bf14f50], [ 0x0], [0x290e31c424be3d17])
+ self.div([0x21d22df5449cfc9e], [ 0x403380326fab8c0, 0xacab245b9098e17e, 0x92e739bbf3775d88], [ 0x0], [0x21d22df5449cfc9e])
+ self.div([0xa1e04ed9bbb4aba4], [0x996ae1ddeb5cfc3d, 0x15084483b36dbe01, 0x1f72c4bd417dc08c], [ 0x0], [0xa1e04ed9bbb4aba4])
+ self.div([0x90858b01a2492dbb], [0x5cd9afec78db4efa, 0x5e55fb289346940a, 0x48467951ffc29a67], [ 0x0], [0x90858b01a2492dbb])
+ self.div([0xc2a4e20dfa1e1b8b], [0x129bd31508cbcd3b, 0x42cded2a5cfc87f5, 0x772040cb0a213b4a], [ 0x0], [0xc2a4e20dfa1e1b8b])
+ self.div([0xf990b29e4e6bf87d], [0x4104c5caf3043555, 0x133a7d952f10a23e, 0x88955fdd31ad1806], [ 0x0], [0xf990b29e4e6bf87d])
+ self.div([0xbc1d7e378f7ed3e8], [0xb48fefe81cb18297, 0x9fd6d032221b97be, 0xbcf316d7138304c9], [ 0x0], [0xbc1d7e378f7ed3e8])
+ self.div([0x5a4f6e2313d044a9], [0xd2bc8ed8152a222c, 0x5e0a226e627a1b90, 0xf7d3d27381f660bc], [ 0x0], [0x5a4f6e2313d044a9])
+ self.div([0x8c04c0de93679310], [0x9b8ed1bb8ebe6a8c, 0x9c37d47cddb5e5ca, 0x511f2390f51e4bd7], [ 0x0], [0x8c04c0de93679310])
+ self.div([0x4d89429a1dbf86a2], [0xe8f59c2c79f7c273, 0xa059942005137f4b, 0x76ae184bfdec9207], [ 0x0], [0x4d89429a1dbf86a2])
+ self.div([0xe6ee7b8bcab5df56], [0xd945f6c203a71e76, 0x4e59146dd041d5b, 0x55e70af88f6809c2], [ 0x0], [0xe6ee7b8bcab5df56])
+ self.div([0x12c13ecfad95cd18], [0x6c11dcd2dfdedb75, 0x8ee306cf0e2734d1, 0x972828517fcd6655], [ 0x0], [0x12c13ecfad95cd18])
+ self.div([0x10f5e85d6114cf51], [0xf5cd8297c505e621, 0x612303901dd0629c, 0xe969e2d8d28763dd], [ 0x0], [0x10f5e85d6114cf51])
+ self.div([0x73fc53d0d6ba10c7], [0x32faebf1edef937c, 0x98e785d9c5319d00, 0xfe439789efd7a005], [ 0x0], [0x73fc53d0d6ba10c7])
+ self.div([0xb52a3b701fe5d784], [0x5eeac54ab2120dc6, 0x575e8badec1934aa, 0xbc4367b49ef7d61b], [ 0x0], [0xb52a3b701fe5d784])
+ self.div([0x696f95199b066ea7], [0xce1df2ff4ac26b21, 0xe25ff077b971b6d, 0x134ff24c39498734], [ 0x0], [0x696f95199b066ea7])
+ self.div([0xaf91a4cc8f3be127], [ 0xa6cf752ad48ddab, 0x1cbf356deb7adf48, 0x100f6564ab71e0a], [ 0x0], [0xaf91a4cc8f3be127])
+ self.div([0x85d1a769a83d3f87], [0x521b402105ebd949, 0x7e54e9ea7d6e61a0, 0x6b437436474c072], [ 0x0], [0x85d1a769a83d3f87])
+ self.div([0xf77f2f0b82cc6a45], [0x2a6246c4090f3147, 0xb7b1a5ca4298648, 0x3d671dd5e87ce07e], [ 0x0], [0xf77f2f0b82cc6a45])
+ self.div([0x7941b66fd700dc42], [0x1ae6938b810c7556, 0x74fbfb9d0a81f5b2, 0x1366ab6cac608f61], [ 0x0], [0x7941b66fd700dc42])
+ self.div([0xaa192d31b5ecda50], [0x4c6e706d8bdffca6, 0x44961e5bacfe542, 0x24438a7658691360], [ 0x0], [0xaa192d31b5ecda50])
+ self.div([0x5ac146290d89ffe3], [0xc63f91de1ee05992, 0x3144a6b5f8afad, 0xc9111b08ad65bbb5], [ 0x0], [0x5ac146290d89ffe3])
+ self.div([0xd5a6959e35d0d14e], [0x2ed7307f94be5996, 0x7d69d31449623776, 0x6d84fc82dd7b8feb], [ 0x0], [0xd5a6959e35d0d14e])
+ self.div([0xa00bdfd95093d5ff], [0x6416155b9df7d2e8, 0x189d9cb8b2dbc06b, 0x75abc7b05f2989b7], [ 0x0], [0xa00bdfd95093d5ff])
+ self.div([0xd0d8c244667c67b9], [0x1452a6878c278ce7, 0x187b2602fe828b97, 0x2270e01012233615], [ 0x0], [0xd0d8c244667c67b9])
+ self.div([0xd1ad950e30e19123], [0x6e13cc5058507f6f, 0x98ff3d8e02122f5b, 0x2d5397d0afd8af9a], [ 0x0], [0xd1ad950e30e19123])
+ self.div([0xfb88a9b2a74590bd], [0xee404806f8d97990, 0x3b05b2b483b5f642, 0xd981e4d7c6d64372], [ 0x0], [0xfb88a9b2a74590bd])
+ self.div([0xe969be10395b5df7], [0xe4e3ee7272e3c40f, 0x3e31b38307ab70a6, 0x851d5ac8f78cd87d], [ 0x0], [0xe969be10395b5df7])
+ self.div([0x219466b7b9d57030], [0xe3aa6b7fa957c7da, 0x5aabd422c15e706b, 0xe221ddaab38cc719], [ 0x0], [0x219466b7b9d57030])
+ self.div([0x5ecb75670579ad61], [0xb0295a5bb23204d9, 0x5ddadd22e38505c5, 0x5935302ab77f1ff4], [ 0x0], [0x5ecb75670579ad61])
+ self.div([0xe42fabc5f209452e], [0xe2159e67f4698021, 0x25e84ba104bc2c18, 0xf17b8c1ba4d7333f], [ 0x0], [0xe42fabc5f209452e])
+ self.div([0xa37577fdd5a7a0fe], [ 0x3cfe126b2bbaf8, 0x70342b57c9b84e9a, 0x3ac60b4b4cb6f4f0], [ 0x0], [0xa37577fdd5a7a0fe])
+ self.div([0x7cbee70fac72efbc], [0x2b7a14b537493e35, 0x32afc6f1763c28de, 0xb1d22235f277b5c2], [ 0x0], [0x7cbee70fac72efbc])
+ self.div([ 0x5fb03aa44ad9633], [ 0x1d6aac2022841ee, 0xe4c5169c22d6e400, 0xa1ca4ec21c929e], [ 0x0], [ 0x5fb03aa44ad9633])
+ self.div([0x6cf83328ace2de49], [0x79acbfe7b1957416, 0x513f058b7a040353, 0xe44ffde8599e3c16], [ 0x0], [0x6cf83328ace2de49])
+ self.div([0x7fb5a2f590095a12], [0xa5610cc1fc7c1615, 0xe107f024128ed405, 0x6539a58b96439a75], [ 0x0], [0x7fb5a2f590095a12])
+ self.div([0xab3088f4ecb673d2], [0xe08fb61db7988813, 0xb52af078a900c808, 0x11e4f101d775286f], [ 0x0], [0xab3088f4ecb673d2])
+ self.div([0x5ee741d80d253df8], [0x6c8e34a9f1ee2445, 0xdf7ea11538f017a, 0x3cf24f7333a7b4bc], [ 0x0], [0x5ee741d80d253df8])
+ self.div([0x4073a148d915e94d], [0x53075f3bdde725a8, 0x9f015ae709ca4ea0, 0xc0ccd443a5d141a7], [ 0x0], [0x4073a148d915e94d])
+ self.div([0xa98e967a1df6a742], [0x166d1810153270ef, 0x7d7486645054e14a, 0x69c9ed5a14f46ac4], [ 0x0], [0xa98e967a1df6a742])
+ self.div([0x40510b08466ef9c5], [0x2b90359e59f5f9e4, 0xec78dba77cdf54dd, 0xebb7334e018187d2], [ 0x0], [0x40510b08466ef9c5])
+ self.div([0x85ea95b9b7cb8f0f], [0x9ef469bb5951d0c4, 0x299c82b43e63fe34, 0x3637b7854f8bbf5c], [ 0x0], [0x85ea95b9b7cb8f0f])
+ self.div([0x4752b2af4719c76c], [0xe8f49cf917f97c3e, 0xb7e4d86aaee6e3ff, 0x1f17208b4e691175], [ 0x0], [0x4752b2af4719c76c])
+ self.div([0x4aee6beb54104336], [0xb5afff66234f1b00, 0xb49047b0e53d94e1, 0xb8e57fab985e3e55], [ 0x0], [0x4aee6beb54104336])
+ self.div([0xde95d0dc428260e9], [0x9f3003e9911b6b4e, 0x3f87c8bbfe1d82d, 0xa91a80cc3e878d64], [ 0x0], [0xde95d0dc428260e9])
+ self.div([0x75c142ec03062f5f], [ 0x74c4f8e3586cccf, 0x66e896f777364938, 0xb524cf8c6155949e], [ 0x0], [0x75c142ec03062f5f])
+ self.div([0x388393ea7bb35523], [0x126a9c309cbb2962, 0x1183dd9d41ef2af, 0x9426bde4b68516c2], [ 0x0], [0x388393ea7bb35523])
+ self.div([0x6871a4c9c4960bc7], [0xe9b396c814db8055, 0xdb104631dba892fc, 0x5ce1e02232282789], [ 0x0], [0x6871a4c9c4960bc7])
+ self.div([0x9501e13022fa0b53], [0xb7f34f34399ce0af, 0xde6cfc2c45847061, 0x294d5bbf6b39587], [ 0x0], [0x9501e13022fa0b53])
+ self.div([0x27746cfaad4eed8b], [0xea1769084cfc20af, 0xaa9d82f422aae286, 0x197ce7fb0ead35bf], [ 0x0], [0x27746cfaad4eed8b])
+ self.div([0x991063bbbb5e02d4], [0x5d60bbc954269c33, 0xb7b0d739536295b4, 0xfbfdd7d28729f681], [ 0x0], [0x991063bbbb5e02d4])
+ self.div([0xb93879a8a199aa32], [0xcb3417d11083efb1, 0xc0e5eda4b69e0d4b, 0xc5a855bf60d4215b], [ 0x0], [0xb93879a8a199aa32])
+ self.div([0x3a8705c024fba20f], [0x9a8111dd75d31335, 0xa95ba850a925e508, 0x6a5171acdd284f47], [ 0x0], [0x3a8705c024fba20f])
+ self.div([0xc354e6ecab1800bf], [0x77490b9f77c782a8, 0x565a26a3462d6658, 0xd18c6e9fa2afdad4], [ 0x0], [0xc354e6ecab1800bf])
+ self.div([0x84589054e1f27ba6], [0xc00422ab089cb5b0, 0x730ff928eb86efe1, 0x83f81dcb499c35ab], [ 0x0], [0x84589054e1f27ba6])
+ self.div([ 0xdb7c5d2d09824d9], [0x971eba139ba87bcd, 0x1208cd332057db78, 0x4426c9a103d56416], [ 0x0], [ 0xdb7c5d2d09824d9])
+ self.div([0xd2c9f1cc1fd9ea16], [0x316497dcc63b848a, 0xaec726a385a1aea5, 0x2d4c4f311eee6712], [ 0x0], [0xd2c9f1cc1fd9ea16])
+ self.div([0x9b5f52bba4a10ac8], [0x4623d86ee8ca02b4, 0x891f3a34063a8514, 0xb0acc26517631c8e], [ 0x0], [0x9b5f52bba4a10ac8])
+ self.div([0x941709d058ee627c], [0x3e66cab95684923a, 0x709e6ffa50296363, 0x47baee5655715f26], [ 0x0], [0x941709d058ee627c])
+ self.div([ 0x917b97436a515a0], [0x273a6cc35150ad6b, 0xaff0730a612e4f79, 0x55c51080029720d], [ 0x0], [ 0x917b97436a515a0])
+ self.div([0x2a56583ade911360], [0x21f20864f5cb3a11, 0xf726b9bf116335b6, 0x4f8efde006e2af15], [ 0x0], [0x2a56583ade911360])
+ self.div([0xddc2ac3df7fd0acd], [ 0x510a9d48c28ecd3, 0xf599ade9965e7d55, 0x95abbd37ba31527c], [ 0x0], [0xddc2ac3df7fd0acd])
+ self.div([0x248daaad6e8a7a5b], [0x8611c65e1f33e25b, 0x244102a2ab2024b4, 0xccd4a14c97cc6939], [ 0x0], [0x248daaad6e8a7a5b])
+ self.div([0xaa19347795009a8a], [ 0x258d87285d0d134, 0x7d02081e9ad9ea8c, 0xcb00d84387bcbbd7], [ 0x0], [0xaa19347795009a8a])
+ self.div([0x778ce5309808e491], [0x76d324d95c4bd4b7, 0x8672b14d944009c2, 0x2612ad9a7d7c23c0], [ 0x0], [0x778ce5309808e491])
+ self.div([0xb1ac116bee2dc287], [0x9787040501501891, 0xd755cc5d23858727, 0xb39e957bc5f37959], [ 0x0], [0xb1ac116bee2dc287])
+ self.div([0xdf1bf0752170ffa0], [0x3a7568e9a455fb03, 0xadec8ecba6812f6f, 0x31d2db85015944a1], [ 0x0], [0xdf1bf0752170ffa0])
+ self.div([0xfb755118567b912d], [0x19db33d23994e22e, 0x3515c1bd729a2d78, 0x7c988baf14fdff0], [ 0x0], [0xfb755118567b912d])
+ self.div([0xbba866748b7a24d1], [0x4743236bf9a54be2, 0x17bb8c4f37837861, 0xf5cae4bd7d977c6d], [ 0x0], [0xbba866748b7a24d1])
+ self.div([0xfcbd352c0eb0c193], [0x163f27e157c48107, 0xb092fe8a28942121, 0xb924eb518fa82c2f], [ 0x0], [0xfcbd352c0eb0c193])
+ self.div([0xc4269610dae1c8f1], [0xfb9a21168235ccc0, 0xe3598f9b4878557b, 0xe04f9e53a12e8246], [ 0x0], [0xc4269610dae1c8f1])
+ self.div([0xa9bd31a0cbf57441], [0x66c5c11f1bfceb67, 0xacfdb61790dd983e, 0xb62b0501def4af61], [ 0x0], [0xa9bd31a0cbf57441])
+ self.div([0x2e0dcb1bc21ee758], [ 0x3af8f1f20c36eb1, 0xd7ba0cb149d6775c, 0x2ebbe1d74b7c761a], [ 0x0], [0x2e0dcb1bc21ee758])
+ self.div([0xbaf3c43a48afd4b0], [0x29edd87942bb2257, 0x1a08c37a257d0eb2, 0xa49022895b81d8ba], [ 0x0], [0xbaf3c43a48afd4b0])
+ self.div([0xd8e1c6e0c4914db1], [0x3bb65ae1b7fd08b9, 0x27d4cbca49a5917, 0x4b7a138c964960e3], [ 0x0], [0xd8e1c6e0c4914db1])
+ self.div([0x7ab1a0a2a8061103], [0x6bc009f066b81745, 0x509c5a67b50ddc7, 0x6d2f7ce03f622daa], [ 0x0], [0x7ab1a0a2a8061103])
+ }
+
+ func test_div_1_by_4() {
+ self.div([ 0xcb53d971fc6a8e0], [0x5d83972a83cae2c2, 0x74ed1dcc4621b1c6, 0x16d4cb4bee69735, 0x395ab2a6c64f49ab], [ 0x0], [ 0xcb53d971fc6a8e0])
+ self.div([0x87cd936a9f90b88a], [0xa41e4922b50bc293, 0xf5a3e85b3796f1e, 0xcdeef88e06c430b9, 0xd35693cee355e0f4], [ 0x0], [0x87cd936a9f90b88a])
+ self.div([ 0xdd5d6dc1303be3f], [0x6ea881c443d385f7, 0x47f5dced3e252d0a, 0x7b9c8c1325651cc6, 0xe3fb7d63e772cf6], [ 0x0], [ 0xdd5d6dc1303be3f])
+ self.div([0x8720777819a30edb], [0x3ea42289f4c3261c, 0x541e060d08099e5, 0xcf445cdadf724824, 0x9e8e0191423ccb9], [ 0x0], [0x8720777819a30edb])
+ self.div([0x745983aa83e14262], [0xc31dfee9d2129f28, 0x509c0b890cfd794e, 0x9f56e7848a32f7b1, 0x9a9b442722211254], [ 0x0], [0x745983aa83e14262])
+ self.div([0xe17a868369c334f0], [0x36c4456b101a9d5a, 0xfe7b481c48e44282, 0xf60296c805dbabde, 0x27749d043f21ea4a], [ 0x0], [0xe17a868369c334f0])
+ self.div([0x2221ffd58040dac5], [0x4500682869032f9d, 0xac31b5d8bfad281a, 0x698eebca7e849c09, 0x5ca4a3359adb79ec], [ 0x0], [0x2221ffd58040dac5])
+ self.div([0x16de270f9dd6ef71], [0xa9bc6d6d2d408df7, 0xec5067a48e2cdf51, 0x7d463a721c508d5d, 0x5da936fa4df3561f], [ 0x0], [0x16de270f9dd6ef71])
+ self.div([0xf2b2d4c0e1802612], [0x57572e8f73d517f0, 0x4721bcc8c3e61d9f, 0xd117ac39f3be0d7d, 0xd169e4fea666afe1], [ 0x0], [0xf2b2d4c0e1802612])
+ self.div([0x54864f628985792f], [0x8368d8d619679af4, 0x89255d8b596e2968, 0xb9294eb61a7ac18c, 0x49db7db4675ce0fd], [ 0x0], [0x54864f628985792f])
+ self.div([0x5d4fbeffa55f9233], [0x3da2b809f81a9f5b, 0x92c51fc76810ef17, 0xcb7125c9033c1c11, 0x2bd52ade5d75ab8a], [ 0x0], [0x5d4fbeffa55f9233])
+ self.div([ 0x5bbea259385e94e], [0xf98880683a99dc22, 0x69e382ffe0f265ca, 0x9492a8d27acecafd, 0x8cd6cac7eade5224], [ 0x0], [ 0x5bbea259385e94e])
+ self.div([0x4895dd34cbc7246a], [0xbccd87c0f71a27b1, 0x2b5fc86532f7016, 0x909affae85910d17, 0x6932effe31df854], [ 0x0], [0x4895dd34cbc7246a])
+ self.div([0x933b8aa2066af02e], [0x898920088fd47b9d, 0x4683a8a2aa3bda60, 0x13ce6e4d39c48c08, 0xf591d7b82bb9e10e], [ 0x0], [0x933b8aa2066af02e])
+ self.div([0xf5b1b8d816c8e1fe], [0x6d9e1a6d08814ff1, 0xf775ec16f0e005f5, 0xdaad89c5381e3c37, 0xb3ff874c02e67cb1], [ 0x0], [0xf5b1b8d816c8e1fe])
+ self.div([0x30333bf613bde33d], [0x45be07698e34e3c4, 0x55f15c7b60db71ec, 0xc3487a2a25d9b364, 0x547a9209e725d239], [ 0x0], [0x30333bf613bde33d])
+ self.div([0x82b9e8286879e081], [0x358727b8150da39b, 0x7e32ef3bb8b95fad, 0xca5875a5f0358f18, 0x664634f129d32d18], [ 0x0], [0x82b9e8286879e081])
+ self.div([0x41cc8632d2f9a77e], [ 0xd49c371965c1b48, 0xdd3592400647eabc, 0x3ac07e649544386d, 0xada09d329d87d714], [ 0x0], [0x41cc8632d2f9a77e])
+ self.div([0xdb31f2dd5d13a485], [0xf11165f9286e8890, 0x4addf896857327fb, 0x46fc00f9b383252e, 0x8ec22325b0f3a2d2], [ 0x0], [0xdb31f2dd5d13a485])
+ self.div([0x8628ee87825f3a46], [0x6e59c017482c8f63, 0x83584c653708a478, 0xc0b31362df1055dc, 0xfe408568f1b069a4], [ 0x0], [0x8628ee87825f3a46])
+ self.div([0xe05546fff12b4732], [0xea2385b82f28e6e4, 0xf01dc148d370aaff, 0x5d05a9668e468e1c, 0xfadad298d2f1c629], [ 0x0], [0xe05546fff12b4732])
+ self.div([0xde57efc42a2fe6f1], [0xc0a54825782a8cae, 0x314a3817551edc98, 0x3fc2c08a2e9747a2, 0x17a38493edc36a87], [ 0x0], [0xde57efc42a2fe6f1])
+ self.div([0x96801acb5c2aa0ee], [0x8d9638d4a5fad85e, 0xd9f9eb62243a03ca, 0x5d1701f1d0c56f7a, 0xdf1aea27436fcf2b], [ 0x0], [0x96801acb5c2aa0ee])
+ self.div([0xfa5f7f6c8c8d2057], [0x42c9d220eaed07bb, 0x92a292f7d129c3d6, 0xbd8c68c3ae3a3f8a, 0xb9d05fd850585e32], [ 0x0], [0xfa5f7f6c8c8d2057])
+ self.div([0x5cdba64d72c302f3], [0x3c5ddc83582595a0, 0x16a237d8c85d45b1, 0xfeca3edd8fc0816d, 0xf43f8c9e8b94c75e], [ 0x0], [0x5cdba64d72c302f3])
+ self.div([0x56681a1a780ee3c0], [0xa0fb4e3a6517678a, 0xd9ed77e7bc3d2960, 0x6a628bd759d72223, 0xf85982b32e5573d8], [ 0x0], [0x56681a1a780ee3c0])
+ self.div([0x9d702139a7bef378], [0x5e589bde5f95e4e3, 0x491dde1a67bac3fe, 0xb699e6b644bfc0d0, 0x4269451959c16161], [ 0x0], [0x9d702139a7bef378])
+ self.div([0x8a73850d278183c3], [0x7634f72cc34b5e9b, 0xd3c230af4970d007, 0x5297e220be20c962, 0x4950c0e81f746dc8], [ 0x0], [0x8a73850d278183c3])
+ self.div([0x31e793d421265140], [0x72b5f322dc3a4bfe, 0x8fea99be40b50979, 0x5d0594b8bc241a4b, 0x8e3e249da4709e95], [ 0x0], [0x31e793d421265140])
+ self.div([0x66067234a2145de2], [0xc91cc7514c41339d, 0xf0f42ad97e45d1be, 0x91d470ab5b2eb5e6, 0x168cb4424d4f9c77], [ 0x0], [0x66067234a2145de2])
+ self.div([0x57ea8a4d30ca75d1], [0x9b45e03c9241e20a, 0xf90a0ecbf02dde71, 0xf555e9d8042df5a1, 0x4e349d76df4a1c33], [ 0x0], [0x57ea8a4d30ca75d1])
+ self.div([0xfef129d4a57692a7], [0xc66dbfd9b1601b6d, 0x605c3e22176344b, 0xd6b5c9dd3fa1d6ef, 0x48d57deebb9d2c91], [ 0x0], [0xfef129d4a57692a7])
+ self.div([0xa935c2f578522031], [0x761d778fb8a30b05, 0xd8b4c1c9113b89fc, 0x79528dda85245948, 0x78197581d5bb787f], [ 0x0], [0xa935c2f578522031])
+ self.div([0x5f6681399046e8b2], [ 0x90aeec50efd87b5, 0xa1d7fb4a9b75a022, 0xe87da208dd6b129f, 0x2666b82793c18f77], [ 0x0], [0x5f6681399046e8b2])
+ self.div([0xb33f5dced16007e0], [0xaa3136af60baf7dd, 0x25db91aba80e1c44, 0x41eb4c7213589ca0, 0x7c909b3776424466], [ 0x0], [0xb33f5dced16007e0])
+ self.div([0xb61402bfa0614268], [0xbbfbf5bd4ebc02fb, 0x1e7907c0de25c03, 0x3e912be1c3f70ed9, 0x77bccd9be2de4c00], [ 0x0], [0xb61402bfa0614268])
+ self.div([0xa7b3a0ed11c32840], [0xa81147827a0bb45d, 0x6471b78f933e912a, 0x33db360527907728, 0x2c753ca0324e215c], [ 0x0], [0xa7b3a0ed11c32840])
+ self.div([0x1d835798ff080805], [0x6d39619d6ce70140, 0xae7474c7e7689b6, 0x5a0ca77dbd847e9a, 0x323d576538c0b0d0], [ 0x0], [0x1d835798ff080805])
+ self.div([0xfa00026cc8b9dcfd], [0x10c789e74f215106, 0x35e098576031282f, 0x885928085fd2d56b, 0x7a8de37f77a9e633], [ 0x0], [0xfa00026cc8b9dcfd])
+ self.div([0x6256f1d229689e95], [0x4eb8ef0c8d7c0234, 0xcf99ee0a33d275a8, 0xdb89a5a08f245d39, 0x2f4afa19af429e38], [ 0x0], [0x6256f1d229689e95])
+ self.div([0xd66d9fbcb4d431b5], [0x3c3facb8973e7430, 0xe5892309d9f61406, 0xed4ba3d9484c8dc5, 0x523b69bf2e0281c2], [ 0x0], [0xd66d9fbcb4d431b5])
+ self.div([0x5d48e20ca2e2e6d9], [0x351cb33f7f4ebde4, 0xc2cad741ada24b85, 0xb75e4ec81d3566b0, 0x36f42d55f0eb1a80], [ 0x0], [0x5d48e20ca2e2e6d9])
+ self.div([0xc02dec7d4f6e337a], [0x7820cb79f03925d1, 0x323e790a0863e24d, 0x21b79f5e97cfae74, 0xc615f412b08ed780], [ 0x0], [0xc02dec7d4f6e337a])
+ self.div([0xc379358b20fdcc49], [0x3a8847abf6ad328c, 0x77702a7b02d4ff79, 0x414b64d754a4a715, 0x96043a589f207904], [ 0x0], [0xc379358b20fdcc49])
+ self.div([0x926e987a1fa67526], [0x6b2ccb25bcc3e897, 0x5fcf074476912a29, 0x7aedba35197f53a7, 0xeaab47fd33d07ebc], [ 0x0], [0x926e987a1fa67526])
+ self.div([0xdf7d3480b3a34069], [0x275b77f58ed93b61, 0x663bbd0d2cb0be08, 0x42aaea0f440b32ee, 0xa5dbfeeca3e5e442], [ 0x0], [0xdf7d3480b3a34069])
+ self.div([0xb6acac9c92db433d], [0x340597b4f9e43f65, 0x88b88677698c26e8, 0x9963fbb085842e47, 0xf5170122fd2b3aa8], [ 0x0], [0xb6acac9c92db433d])
+ self.div([ 0xe0f4f14509f4beb], [0x6611c3c2f8297021, 0xa7d6024bc939cd0a, 0x57fb15573c85a984, 0x25540adc134a1cf0], [ 0x0], [ 0xe0f4f14509f4beb])
+ self.div([0x75955edfa210af67], [0x334212d4e5ecb3a7, 0x7512a36a2b78f512, 0x2f494e31c4323dc1, 0xd3b3cfbd9a646900], [ 0x0], [0x75955edfa210af67])
+ self.div([0xfa1f1dd1069a46e5], [0x73061e939a4f81d0, 0xdeb2886b2d19d3fd, 0x99a8db4e51e70d89, 0x755ba2a555460302], [ 0x0], [0xfa1f1dd1069a46e5])
+ self.div([0xef62b927c4d0d5bd], [0xdb1467080d21eef7, 0x63e03ffb3d6387e9, 0xfc927ef18856972d, 0x6845c917d06f2fef], [ 0x0], [0xef62b927c4d0d5bd])
+ self.div([0x5e32e52d0ffa6bf3], [0x2c9ba5c80834672d, 0xa224bfd42e8c910a, 0xed113cc84fc3688b, 0xa9603b6e63f730b5], [ 0x0], [0x5e32e52d0ffa6bf3])
+ self.div([0xfaa7cfc92b0d614f], [0x32266a37675262e6, 0xef24e9dd68ffdb5, 0xa0f34e5c7286700, 0xa68478f8c5652fa], [ 0x0], [0xfaa7cfc92b0d614f])
+ self.div([0x1567956bbf66e8e6], [0x4a218a63328678aa, 0xd8f95aaca4e53756, 0x3284424060117ab0, 0x74140cefa1b0b3e8], [ 0x0], [0x1567956bbf66e8e6])
+ self.div([0xff59201ff10119bb], [0xbc26ba869d5d5bc7, 0x864c3e232a86f059, 0xb4052fa7861bd429, 0xe944038bbbc096ed], [ 0x0], [0xff59201ff10119bb])
+ self.div([0x679e7100c1d355b2], [0xd72d5e52ff0828fe, 0x3a93f83216836e61, 0x2729b9cbaf1d65f4, 0x411cebe86b28dde0], [ 0x0], [0x679e7100c1d355b2])
+ self.div([0xf934bac9117d1475], [0x19a0f5e77794e759, 0x82d836815f6862df, 0x42697a1901f36605, 0x5f0168dac9f864fb], [ 0x0], [0xf934bac9117d1475])
+ self.div([0xdecd35f017b8cf27], [ 0x9804c897bbf3ad3, 0xbb8fca0c2f2f7394, 0x32493bea7e1a5d84, 0x1300cc96b0f12dd2], [ 0x0], [0xdecd35f017b8cf27])
+ self.div([0x99d67269287d1f4e], [0xa940b052d260528a, 0x522d6636aac685b0, 0x91bc77c7af0ac5ea, 0xfc866555c0c64a2c], [ 0x0], [0x99d67269287d1f4e])
+ self.div([0x372eaa4f4718dde2], [0x2ddff9a85f65c520, 0x953ca4e62fdbdcde, 0xd5d6392586bbbbcf, 0x46c895871eabf36f], [ 0x0], [0x372eaa4f4718dde2])
+ self.div([0xd9cdef32d796688a], [0xc24d3fe216d92eb5, 0x8a25310c61860d50, 0x5af7265e39910714, 0xbe9f23276793b996], [ 0x0], [0xd9cdef32d796688a])
+ self.div([0xb4d8176c63445cb1], [0xf79ef02e63085024, 0xa59ff158cbbe2c1a, 0x47bf632d754cf055, 0xf040c4f15955e3e6], [ 0x0], [0xb4d8176c63445cb1])
+ self.div([0xdeb139b55454ecf4], [0xc5cdecce328b3af1, 0x367381190343f810, 0xd2c11b7e44e18a1d, 0xa53d228988738db3], [ 0x0], [0xdeb139b55454ecf4])
+ self.div([0xe940500c989092cb], [0xfc352c33ac50c372, 0x89889f816773a39e, 0xb7e473032e4fc6f5, 0x2c062022f2c6a793], [ 0x0], [0xe940500c989092cb])
+ self.div([0x5f37b3877af91789], [0xf84394a843bf2a3f, 0x46f623f1572f7ea4, 0xc32214fe210b387c, 0x70a7331f3c8893ca], [ 0x0], [0x5f37b3877af91789])
+ self.div([0xadac916412a7b2b6], [0xc5f20dedcbd12a67, 0xac8159d4da128ea3, 0xe353e2640a8a12ed, 0x7ffc9f60c8d56e65], [ 0x0], [0xadac916412a7b2b6])
+ self.div([0x4b357ba0b383a9f9], [0xcf522950968ab785, 0xbb8b29fd6b320aec, 0xa7eb4b300e984bd3, 0x8c3d135d9a8fb428], [ 0x0], [0x4b357ba0b383a9f9])
+ self.div([0xd5708b45b37e7fae], [0xac6b00f9254de66c, 0xc1acf3d764844109, 0x69d21e714b27a28e, 0x85872c64e4f653e1], [ 0x0], [0xd5708b45b37e7fae])
+ self.div([0xce846b0854b9a732], [0x3ac250532c9616c0, 0x4811fbd81b79278d, 0x6397f716b0df3615, 0x3995f27bd453464a], [ 0x0], [0xce846b0854b9a732])
+ self.div([0x538bf3b3c1f79c19], [0x5f7c4b35a51c5c6e, 0x3ef23ae697750a42, 0x71e6993d28195c89, 0x15accae45471f5e9], [ 0x0], [0x538bf3b3c1f79c19])
+ self.div([0xc05223187d0fb48b], [0xf9dc6bbbfff47210, 0x10bdd7b91486f7e4, 0xb643af74f2e485cf, 0xae16d4aa77648d9f], [ 0x0], [0xc05223187d0fb48b])
+ self.div([0x9869fb991a724c1b], [0xeff0634195b78fa2, 0x5e1b14b2a5ef6c29, 0x71f09bacf0efdf47, 0x6d322634df0f4836], [ 0x0], [0x9869fb991a724c1b])
+ self.div([0xc9dde1fc1e30cfd8], [0xe07ebd97664acffd, 0xce9dbbc7ac8ff6e0, 0x1268fe557e7ab045, 0xa88222aafe1b8b9b], [ 0x0], [0xc9dde1fc1e30cfd8])
+ self.div([0xd0223e77d39ba6ac], [0x6339f0f79e41009a, 0xabf66281ca25f996, 0xfa6b4fbef9943647, 0xbf9e94b89406a1c8], [ 0x0], [0xd0223e77d39ba6ac])
+ self.div([0xa06a2a795b9fe106], [0xd0a7f9b6550bc5bf, 0x9338ebdac07849b6, 0x2bd4df0ec1ac5584, 0xf9b7b6b7481c14ed], [ 0x0], [0xa06a2a795b9fe106])
+ self.div([0x784d92cca12dc832], [0x99cf86d429ad0ca0, 0xb8f51b675ff67718, 0x13dea7c73041f5c3, 0xfbe2ed96e89c89fa], [ 0x0], [0x784d92cca12dc832])
+ self.div([0x873a489dad5aacad], [0xefe134257fc2f39e, 0x49788b0750a4d42, 0x97a22e068e026905, 0xcc504365ffc4cf0b], [ 0x0], [0x873a489dad5aacad])
+ self.div([0xf19a536f67a4e551], [0x94020414ba1077e6, 0x31ba7d780a718318, 0x29138704558b2e39, 0xc1a100731d0e8fda], [ 0x0], [0xf19a536f67a4e551])
+ self.div([ 0x62d6e9f4f6e7f5c], [0x2c7b448e3097eea3, 0xa28da78f96fd3a98, 0xe60b5a485869f41e, 0xeaf8c8b02ec8e875], [ 0x0], [ 0x62d6e9f4f6e7f5c])
+ self.div([0x58220b7051caae91], [0xdea5fc9c0958f90e, 0x5643fddba4559fa0, 0x7edfd9613ea33629, 0x6c8afc66bd91061a], [ 0x0], [0x58220b7051caae91])
+ self.div([ 0x6aa22988d34c285], [ 0x2372fe9a58c540d, 0xcf389661d9e22cb4, 0x94160c75a7cd96a2, 0x57c43820980076cc], [ 0x0], [ 0x6aa22988d34c285])
+ self.div([0xeb7e65fa555d31f2], [0x476645f1c001a569, 0x355b1b110c3299b4, 0xa811a56d933fe200, 0xd96144fa0ba57bd], [ 0x0], [0xeb7e65fa555d31f2])
+ self.div([0xded5506b47ecd088], [0xb55bb3ef07cf1f22, 0x5687ed6ef4df01c0, 0x886c3079912014cb, 0x81204d06e9e6c19a], [ 0x0], [0xded5506b47ecd088])
+ self.div([0xe07b2fc55ce82461], [0xef7567c580128888, 0x2d960f7ebe90407a, 0x5439c13686cc6e76, 0x1163039ae6ba8206], [ 0x0], [0xe07b2fc55ce82461])
+ self.div([0x825a05a528a618fc], [0x8bf0fa2831fa6054, 0x3315a0752b00bcd4, 0x24aa48155ed361b4, 0xcfed873b05711566], [ 0x0], [0x825a05a528a618fc])
+ self.div([0x5170de10c9560c9b], [0x34a9fc080d70a233, 0x90d182f1a85e69e8, 0xd1d77117e9ab97e1, 0xce9ec17d6fcdd796], [ 0x0], [0x5170de10c9560c9b])
+ self.div([0x4ebe0876df4c7df6], [0x9b2bdf1e9bba6bee, 0xbc0bbe7b3bd3b83, 0xeebb0e56022aae0b, 0x3b885e604a06bc92], [ 0x0], [0x4ebe0876df4c7df6])
+ self.div([0xaee29c9789f67bf8], [0x2f351dc1b20cdaed, 0x32ac553d1bdadc3, 0x52c434ffd20bc2ca, 0x3d6fde41a41bc9e6], [ 0x0], [0xaee29c9789f67bf8])
+ self.div([ 0xa8668042882b2f8], [0x7251162c99fa1416, 0xd27af43667de8217, 0x1289a524e97906bf, 0x7f20cca180a04394], [ 0x0], [ 0xa8668042882b2f8])
+ self.div([ 0x30203815550d594], [0x48941381a96c2b4e, 0x66f504a31a70bb5c, 0x1e7e9a41329e7a72, 0xec8954b00e1fedd2], [ 0x0], [ 0x30203815550d594])
+ self.div([0x7abfc2e9c74ea401], [0xdad753156f12b75f, 0x7c75868c1ab59f8c, 0x1838310949280fee, 0xc180fc847f354561], [ 0x0], [0x7abfc2e9c74ea401])
+ self.div([0x3d3a17e99e1e9a3e], [0xae9c6a70c705229a, 0xcf82dcef25c375c3, 0x724f36f12a9dc677, 0xa2ddffda4d2649fc], [ 0x0], [0x3d3a17e99e1e9a3e])
+ self.div([0xae89c5a3e579e2a0], [0x11c93eed6a1209e1, 0x3d4c801d90fc6597, 0x9069f723f6860e17, 0xc2443030ef5882a3], [ 0x0], [0xae89c5a3e579e2a0])
+ self.div([0x862d0651a1a55373], [0x5c44be8f09952590, 0xcf5ed4ea42cd7fa7, 0x865e7fe26367673, 0xfb48f6b501a2f31a], [ 0x0], [0x862d0651a1a55373])
+ self.div([0x425ef87062409423], [0xbc2eba52dbc3141d, 0x74c4674c0b3493be, 0x6772faf21edb443c, 0xfc7c3c1294cb6192], [ 0x0], [0x425ef87062409423])
+ self.div([0xfbbf8b88706b2603], [0x937bb791ae5dc009, 0xdd270810567d1b5f, 0x97953d4026b728b8, 0x4e61c54376c7e62b], [ 0x0], [0xfbbf8b88706b2603])
+ self.div([0xa89bb45bfcb0bd1e], [0xb0965e91de4e05ab, 0xf4a8c620059b7508, 0xf27a42ecf3b5e53a, 0x694b25ea18b646c9], [ 0x0], [0xa89bb45bfcb0bd1e])
+ self.div([0x1e836e39e6fecfe9], [0x9e4e96d86b5e714a, 0x1b1b583e2232122c, 0x416b91b5efe3f612, 0xc87ec1f2ac598a8], [ 0x0], [0x1e836e39e6fecfe9])
+ self.div([0x656b1a4704bb1ec6], [0x2fe4f6b5fcd29fcc, 0xe3b6e2eb5b90d8a8, 0xa4141dc4953c45c3, 0x26b46ef4729b6c80], [ 0x0], [0x656b1a4704bb1ec6])
+ self.div([0x2389d330066bee76], [0xe0a792d7bfe085c2, 0x1b409dc09a1f21c5, 0x213eedba2d0faa13, 0xded6bca4bf026130], [ 0x0], [0x2389d330066bee76])
+ }
+
+ func test_div_2_by_1() {
+ self.div([0x2da9d80fefab2c68, 0x13d4fdc3b6bae9bf], [0x54c5d5863e4fe518], [0x89e56c2f32d704ad], [0x3b1a79d24400b887])
+ self.div([0x61ca959fdbcaf13d, 0x8e19b2c01e39e6c6], [0xc9d0f12c5dde2f3e], [0x7c0be5608824fd50], [0x7f1c12869f62dd66])
+ self.div([0xac4a1b550d2410f8, 0xc29914f19a6ac96d], [ 0x8087d9b5d688867], [ 0x15, 0x72802cdd2ba13c7f], [ 0x55c9867adcffa54])
+ self.div([0xaf768a7b4268c0eb, 0xc51f976625350703], [0x2183c6fc8d8ddd4b], [ 0x5, 0x3c42fb9739754a4e], [0x12869d2f2bbcec29])
+ self.div([0x1938c72a858f717d, 0x145f713984ec3544], [0x49cb4eaf7e325901], [0x577f43e03b68646f], [0x2942c2febeeb39d5])
+ self.div([0x23b6a28f2c537e47, 0xc2323c4c21da4009], [0x92935cf071f588fb], [0x3e5ff6e645804fdc], [0x1790be4d49131355])
+ self.div([0x3f749a784ffd3f7c, 0xec20eaa0fc576f24], [0xf83547b96ba779f5], [0x41728fe9a488f752], [0x12bbb4472bdefbaa])
+ self.div([0x4f984314a1ba85d2, 0xba76000be78b7011], [0x4451b20f418bfc0d], [ 0x1, 0x2a4050211461bbc3], [ 0x333e62333dff32a])
+ self.div([0x87ebef2f826d1d8c, 0x1a2331a143bd2bb], [0xb597ed72cf2e72b4], [0xbf9d4d53ec8009fb], [0x44f99ced05a9083f])
+ self.div([0x72759e0b8cb49bba, 0xc955b38a7a383469], [0xdc10339b800fe65f], [0x85269f2c4046c5dc], [0xc73f1917724d1fc5])
+ self.div([0xd3369209b91a0aa0, 0xdc4f7f57d08db4a2], [0x71c8dba5a4f51a4c], [ 0x1, 0xdb337ccfb8feab00], [0x589cf09d6094f0a2])
+ self.div([0x35aad3d772e15e97, 0x9edd44199f83a043], [0x9f7aaa497c7b5986], [0x5625ea369ec7468d], [0x8d921e2f09eead75])
+ self.div([0x7640f46654faac1b, 0x9f0586580f06d136], [0xb83a3688975872c3], [0xa452e7ced0be82fd], [0x4243c5b1f59c607f])
+ self.div([ 0x381656f9e4f113, 0xc90601d2bdcd986e], [0x64bfde8a2e09dea5], [ 0x8e83e81fbb7bc8], [0x534aba0c6a976086])
+ self.div([0xaa99ecc567129b91, 0x6843592692dd91cc], [0x71fc5200ccb9eae1], [ 0x1, 0x7f2725635ed962b7], [0x1587445b575388f5])
+ self.div([0x459dfcb3bff24e86, 0xc29b98aafab6de47], [0xa19521912510c35c], [0x6e4be6a8d50c3fb0], [0x7bb4410daacceb07])
+ self.div([0xee906cbeb60547b4, 0xd5e53cab0e5a156f], [0xeeebd32d1b9d00e6], [0xff9e10fa693270ff], [0x7e221c0359a59055])
+ self.div([0x630eb523d97b7e8e, 0xdca9d1f7bb668066], [0x92748f400ce4954b], [0xad2659340d9b431e], [0x469c74df3221609c])
+ self.div([0x264f60517aa1731c, 0xfd6ef4d9e73e8bf9], [0xb8c95985c1f62932], [0x3512f777731f7d2e], [0xa086198d67d7bafd])
+ self.div([0x497f1d0ca75107f2, 0xdc72548d0987a90d], [0x10243436e55c0186], [ 0x4, 0x8da4433dff37f0b6], [ 0x8556348eae6f3c9])
+ self.div([0x48800a74104d8286, 0x97c283510175423b], [0x4067ba230dcce741], [ 0x1, 0x202d1b17b97bf7fe], [0x3835abd087cd18bd])
+ self.div([0xc8c3b99425c4fb7f, 0xd731b995d3aa9d53], [0x6443c2b7a01d45c4], [ 0x2, 0x99b6ee57bfdc15], [0x56ee5627e013743f])
+ self.div([0x7d9b3c42cba34975, 0x2800a830d054026b], [0x72e3c960f85e3c5d], [ 0x1, 0x17e10388ecfc323d], [0x347736c212897642])
+ self.div([0x47cf7c8ee81cf09c, 0x8c1b37b78aff86c6], [0xfc93cdd1d3a5839d], [0x48c8993f9c5e2d11], [0x5f0bdef765393059])
+ self.div([0x510bd548fe4ab490, 0x4583f19b4a482829], [0x2705768cbb6eac81], [ 0x2, 0x13b46c8c8d7706fc], [ 0xdb41aacf454532d])
+ self.div([0x75d4f947c23e6ef8, 0x2cc3a80641029df], [0xa24a9042784fcfdc], [0xb9de8e8cce6c4ebe], [0x30ec39440eaedc97])
+ self.div([ 0x481becc54fbdcd9, 0xeae6baca5ad568b1], [0x618a91fbaab13586], [ 0xbd409e650558604], [0x135bdd8e488e6e99])
+ self.div([0x678179b4d2569505, 0xfae7557c750fe7d4], [0xf411ac4a1366a8d2], [0x6c90c439d2732744], [0xd288fc7e8fbd120c])
+ self.div([0x17fb50402988f5d3, 0xd8e0d3ca366c1b], [0xef43ea5db40bbe2e], [0x19a8b5ab64fded83], [0x9ab11e92ddad8491])
+ self.div([0xa8def461ea46e5c6, 0x39a390b47583d032], [0xf3221410e73e1857], [0xb1cec932e1ba18f9], [0x73d7d015919ffb93])
+ self.div([0xab4a27a70b2a3903, 0x156d389e15fdf185], [0xdfc0b2205742e63a], [0xc3f9d8dc51a161f1], [0x9f6b7158724d3aeb])
+ self.div([0x781a3367ec2ce170, 0x965c6852d4bea830], [0x2415334865eb5bbf], [ 0x3, 0x5419d986c1f446a2], [ 0x376a72b89ac5f52])
+ self.div([0x92b82dcf270e12dc, 0xb0e8a0a3df750f58], [0x1c89a68ceecad6d9], [ 0x5, 0x2428fc520d08ba2d], [ 0xecdc39cc9eba133])
+ self.div([0x111275082f8174c5, 0xa72cb9ef7a6af911], [0x8853473b7545bd75], [0x200f1ca26168a87f], [0x56d09d523bf53406])
+ self.div([0xc465319f5f42d812, 0x2acadaf43df303d3], [0x4ffff1e50daa0a4e], [ 0x2, 0x747774002ee843a8], [0x1f8ee21c6af9d6a3])
+ self.div([0x81f499a9a9b2d1e8, 0x885af9948e6ced95], [0xb403fc431a288709], [0xb8cf402cbcfaf8ab], [0x8392b32057c00292])
+ self.div([0xcd694ff809023873, 0x25e1af560a445111], [0x2308f261e619b9c4], [ 0x5, 0xdcf05317ee2b54e8], [0x2096197aa613a771])
+ self.div([0x86d0303087be37b4, 0x118b5ef307481959], [0x524b6152cb44133a], [ 0x1, 0xa35fd985c92cea35], [ 0x5f70114e0a51a57])
+ self.div([0x3840b1136902c976, 0x757bcb1d23adbe64], [0x4a9de0d7263f6791], [0xc0fedae439926583], [0x4a3d359133ad8a31])
+ self.div([0x2485db1f399b6b91, 0x3db224473a243471], [0xa92027aaf9e9219c], [0x374893aad9829586], [0x222071db6c54d0c9])
+ self.div([0x2d2e296f4d77bd90, 0x1d722d97e7370998], [0x5ae49a01e04d4f1f], [0x7f40163354589b86], [0x15588817512fda5e])
+ self.div([0xe3d8b7cc3820a461, 0xfdf8226cc8a2b51c], [0x47c13ba2fc1c7a71], [ 0x3, 0x2ce3a52a313c718a], [0x223c95a1fbc0d332])
+ self.div([0x20e9550069854335, 0xca835f8aea80d6aa], [0x94a99b7e43442f03], [0x38ac9950dac3bd2a], [0x3502dc422d52e92c])
+ self.div([0x2d32e43a7d8f5de3, 0xac9d2276493ce5a], [0x7e9956f9e202b1de], [0x5b65e21a3f3ed4a1], [0x754dbcdd4fd219bc])
+ self.div([0x989bc3dfba374d6e, 0xbf155ec330760cff], [0xd57ff534bf63903b], [0xb6fcc1c18292e69f], [0x4728c18ba664765a])
+ self.div([0x8d9b426b7e8cf9d8, 0xfae33aa054dd92ff], [0x993c3f0ec4d0bf73], [0xec928c37147b8f0c], [ 0xc3c210887e25c9b])
+ self.div([ 0x708932356aa1102, 0x50cae2e8434b6ad1], [0x4afdf2b5d167c26f], [0x18029e6542fd7fd7], [ 0x7a0eddc25ff0e98])
+ self.div([0x6eb039fb6a062355, 0xe5e81370124606aa], [0xdb8e574f547a1a85], [0x810fbda4adeb7de1], [0xd4aa5c40faeac6c5])
+ self.div([0x3232a9f3c6d11c18, 0xeeb3265e83351af3], [0x1e13fc2a993afadc], [ 0x1, 0xab3e61eefd8ab085], [ 0x56362a5b48186a7])
+ self.div([0xd3ebfdd52755e311, 0xfce1919de9d18f1e], [0x3d1c2c5d22664429], [ 0x3, 0x77c676ac6bcf152d], [0x1bc3e0b23a1936e9])
+ self.div([0x65767bd8489c141a, 0xb75d65a7a4e50768], [0x9a83370923fdc1dc], [0xa81b20f3aef3dc55], [0x7e0e1d3a1336995c])
+ self.div([0xdfdbdb0066bfb697, 0x93774df557e6de0c], [0x636ce14d92e26a30], [ 0x2, 0x4064188f458eb965], [ 0x7e50a2eef36491c])
+ self.div([0xe2f9a38908742bbb, 0x4335117c8fdb5354], [0x3568b8b10631c610], [ 0x4, 0x3fef926f4d624988], [0x28cd201c71cf8ad4])
+ self.div([0xd29faa4ed413e426, 0x96c91a83db4497c6], [0xf6090ca4865f2ca7], [0xdb2775b1f27726a2], [0x14070d8a12c88c18])
+ self.div([ 0x159b0caad9ef35a, 0xcef7f4c4c7a48b3e], [0x4f449dce211a0aa7], [ 0x45c6cbaa9ddfae5], [0x1c4089344bc6eddb])
+ self.div([0xb8b1236b5e054126, 0x9dd77bb07e5adc77], [0x8e898cc5e65ca9e0], [ 0x1, 0x4bb5eb8d54e2b8d1], [0x7fb75aa15adb2c97])
+ self.div([0x3cf07f3b32b73b94, 0x861ca4f48d71ea65], [0xb2b31b6e83bb1323], [0x574cd3a490630c22], [0x77318a92332abbbf])
+ self.div([0x1abd8ebf105424ad, 0x4a2c39fb3e7799fe], [0x5d0cdf5af4ad1678], [0x499180a8524d182d], [0x5a72a80bcfd766e6])
+ self.div([0x2697e61072c439e9, 0xa2ebffc4fe9bc277], [0x3234ab6d0e9d93d3], [0xc4c9c93818a36141], [ 0x6951131ac3d46e4])
+ self.div([0xc9e2531835380d0d, 0x994370ac3951f9a8], [ 0x4a83c174111416e], [ 0x2b, 0x595fd48d917ce766], [ 0x26217b0bb1fa5d4])
+ self.div([0x55367924a4ff4f89, 0x3b4d412c53000605], [0x9568d0bd69bb80e5], [0x92013126f77e17e6], [0x65bcc7db183fa547])
+ self.div([0xe060d9dc4bce6b88, 0x4dea367a93db3bfa], [ 0x553ff8c068a51aa], [ 0x2a, 0x1cb399f150e71d5c], [ 0x17ee80bbe7fa0e2])
+ self.div([0xbed5540f041b6a04, 0x39a7c8cf2bd0de32], [ 0xc93b18bb7869935], [ 0xf, 0x2c5c6b7443dcc773], [ 0x91ee69990b5d863])
+ self.div([0xda5640d2629ebb09, 0xfc25355674156955], [0x6170687b3150ece6], [ 0x2, 0x3da1fa4c9e92d110], [ 0xb1b17bb3e72d4f5])
+ self.div([0xb66dfe525824f6d6, 0x3760b0dc423220d6], [0x860b493cd7353c14], [ 0x1, 0x5c685fd552b76bf6], [0x70c89581daa2099e])
+ self.div([0x6bb75b413fc74c1e, 0x2ac6a6c724ad2e07], [0x736b1f35f44cfa2d], [0xeeea978a59203d8a], [0x27b944a030f198c5])
+ self.div([0xc1b586d7bee370a1, 0xd1841509836d0af5], [0xbe396dd47e05a16f], [ 0x1, 0x4b0911815d2e7fe], [ 0x2818638dd1db5d3])
+ self.div([0x99ef3ded3d912f51, 0xf6a7b1e2964f373a], [0xd8348e24b9d86635], [0xb644880fee1b8ecc], [0xb5391f9567955efe])
+ self.div([0xd62d851f03e8195b, 0xe6c1bc262722e7df], [0xbbd3d749f68fe108], [ 0x1, 0x23ea0a94650f538e], [0x498eb75865e67d6f])
+ self.div([0x96cccd29a20c5e53, 0x86ec2c629e4833d7], [0xd4e47a08e5c4c956], [0xb555b0c9b5ff7e0a], [0x8f22d10e6ed6027b])
+ self.div([0xf28057e0aa7f198a, 0x63c5b4359690cc01], [0xd8ee1b0694ce8b77], [ 0x1, 0x1e2d3d2a4780d019], [0x50f6cb2f80947d62])
+ self.div([0x9b903894f5bcfbdb, 0xc4365337f039dc57], [0xb096bf4231071db0], [0xe184fa7101bd9df5], [0x44b47cbf0c4582e7])
+ self.div([0x625b4be1f6ca8660, 0x9f8397ac6ddc9a23], [0x612747fa547f6f19], [ 0x1, 0x32b9f523f280ff5], [0x52c65ce3957cd036])
+ self.div([0x7b561d40757df927, 0x2d1ab30b05a317b0], [0x66828d30e48b1f09], [ 0x1, 0x34029bbc83d10e04], [ 0x172cdb5e66b1d8c])
+ self.div([0x97027953c27ccf01, 0x53857c48923d1eaa], [0x43e8d3f8bd98ef5e], [ 0x2, 0x3943c4f966a1a5bb], [0x283a5c668320af00])
+ self.div([0xaeb871f1a2e3eca9, 0xc5011050275ae0ab], [0x31da178f6a1be6db], [ 0x3, 0x8139e1158d8cde46], [0x271d70b512c3d6c9])
+ self.div([0xddf774dad33e4c0f, 0x4bdfce835385be5c], [0xbd3ffd2fbbce62f6], [ 0x1, 0x2c41909c623e6379], [0x905e818c9b1fd616])
+ self.div([ 0x3570a66046e467a, 0x824426d2542d32ef], [0xc8b0905eb2275507], [ 0x442b0d3a8f49d78], [0x7f1ce51e0fec0ca7])
+ self.div([0x963951526be4b046, 0xe45de30142cb42d2], [0xc4a6709783427fc9], [0xc38fe5e183d6dde9], [0x3cd3bf26b5ee6fe1])
+ self.div([0xa0688f99b86bf6d6, 0x672ae64fa54085a], [0x94dca486aecf1b8a], [ 0x1, 0x13db562d025983e0], [0x824b359e630a519a])
+ self.div([0x363ff6a595bd48c0, 0xf062de52d287c4a6], [0xd22cc232c23fbdeb], [0x42140151cb22c2f3], [0x57b0b6848fe46895])
+ self.div([0xb59016e7cfb7495d, 0xe6118bd814a4c728], [0xba0f3a77db57b388], [0xf9d024af8b74816b], [0x7622da0803e53550])
+ self.div([0xcee284e54f40aa7a, 0x98acc29233af5f74], [0xe43f6361012b6059], [0xe80a2d43b734a4d4], [0x1736368340f691c0])
+ self.div([0x57ba9a76765c949f, 0x329c18b4e9b4aad5], [0x48e24fe370d41699], [ 0x1, 0x3424410e7e57f362], [0x1b76cef96b11c943])
+ self.div([0x92deb9f74c95ab77, 0x363379cb175c02e7], [0x3fce8d0d4a164782], [ 0x2, 0x4d4230e3348f966d], [0x1e74f07b245b648d])
+ self.div([0xe9f5bbe9a3e91ec9, 0x85ac3e2deeee8016], [0x44243c8251f36ca5], [ 0x3, 0x6ef5e7d2ac0ff29b], [0x27350d31fa2cbe2f])
+ self.div([0xd960b0abab188295, 0xbd4f3a9379891efd], [0xc46d616b61b30eed], [ 0x1, 0x1b4de6c7e84cb2d5], [0xb642b36278d0e9cc])
+ self.div([0x35d7f087ad765be4, 0x2af54c9bbcf79e6f], [0xd77f292692f7b5e1], [0x3ff6ac808afd30f5], [0x90eecbc89a6f5e1a])
+ self.div([0x64d1cf9be738000b, 0x3b908c5b603c470e], [0x36741a4f7ec29bcc], [ 0x1, 0xd9fa8b39c69599a9], [0x23bdeaedecea8162])
+ self.div([0xab9c6b950a040c36, 0x9b4edc18c6d0f59b], [0xa8518570e105b10a], [ 0x1, 0x501fccd9bed516a], [0x8db782b0d92f7d77])
+ self.div([0xc90630070915bf70, 0x88ec004a8f2c1d78], [0x4994ec3e866786c8], [ 0x2, 0xbb635bc65d1885d5], [0x1c436815a7431110])
+ self.div([0xd10df3962ebe880b, 0xfa60b8b3c590dc63], [0xc1fa67ea89d111f4], [ 0x1, 0x13e59514812370f9], [0xbccb6c96d8ffa60f])
+ self.div([0x411d9c1ea33bbc3e, 0xd3cc7a95907e23], [0x20208f6af37b4ae8], [ 0x2, 0x6dcee9512ddb69a], [ 0xd0e574e7bdc7e93])
+ self.div([0x90533aa2ad8c9d96, 0x5b53ce8718bf813c], [0xb8f7a95fc07d7afa], [0xc7bffac753cf97f3], [0x71587d6ddff44fee])
+ self.div([0xa6e104090d1d7ea4, 0xdf94d948b9817f81], [0x8ebfe9f453ab1f58], [ 0x1, 0x2b45b36ff8cfd130], [0x6725f646bcacc701])
+ self.div([0x1f94a1b778186984, 0x5a633359aa9ce32e], [0xe48de9921a7f4f7b], [0x235f76dd1c1845af], [0x1ea46f8555a16719])
+ self.div([0x6c26869f313f97f8, 0xd0fe5defe46186ff], [0xdaacaba8d91a686a], [0x7e9c555b7d694016], [0x435426a80c880de3])
+ self.div([0x9ca3cc4971da2acb, 0x2e01295912e7981b], [0x4f3098d8d4d9c6b8], [ 0x1, 0xfa6026a2b6488bac], [0x37befb211df02c7b])
+ self.div([ 0x20cb2ef71a0c6a9, 0xd027920d3858fdcb], [0xfc5e7770890328c1], [ 0x2143f85e281be92], [0x96386e57d10b81b9])
+ self.div([0x427ceb327979e915, 0xd7f08c3582176e3c], [0x80c689feaf12001c], [0x842cd29044b17195], [0x7ed9f479273501f0])
+ }
+
+ func test_div_2_by_2() {
+ self.div([0xbf2f2cf782e076dc, 0x355415dae3a3e1f8], [0x6bd0835d9db37ff1, 0x8ab8a4b6efa88fce], [ 0x1], [0x535ea999e52cf6ea, 0xaa9b7123f3fb522a])
+ self.div([0x5cd057736bc561ce, 0x40dbb9d0af7ba9cd], [0xd3c60d1a9932851c, 0x5e2105e61fb7b466], [ 0x0], [0x5cd057736bc561ce, 0x40dbb9d0af7ba9cd])
+ self.div([0x2df52bdfc2796d73, 0xe920fb05deca86c2], [0x6221224f8f1c0cc8, 0x834f7f49216f5910], [ 0x0], [0x2df52bdfc2796d73, 0xe920fb05deca86c2])
+ self.div([0x5575a272499cb2f6, 0x7b106268e40a62d8], [0xa12ff120da4dcde5, 0x53ab95ceff801968], [ 0x0], [0x5575a272499cb2f6, 0x7b106268e40a62d8])
+ self.div([0xb82afcb67939548e, 0x6716a007a76a61fc], [0xa5c65e876f45c524, 0xd9f418c5ac866c90], [ 0x1], [0x12649e2f09f38f69, 0x8d228741fae3f56c])
+ self.div([0xb0343b8f65fc65b5, 0x4ec932d62b46bf98], [0xb1da0b339ded4102, 0xd6dd4ff92bcbeaaa], [ 0x0], [0xb0343b8f65fc65b5, 0x4ec932d62b46bf98])
+ self.div([0x3354b3941c2e1727, 0x6f47d50f50b11fbb], [0xfb1d2e18fb1a6d03, 0x502ae323cc722987], [ 0x0], [0x3354b3941c2e1727, 0x6f47d50f50b11fbb])
+ self.div([0xf6d49dfa48680c74, 0x4825931f26ba46bf], [0x86231174d7381f90, 0x13148acfcdf45b9c], [ 0x1], [0x70b18c85712fece4, 0x3511084f58c5eb23])
+ self.div([0x8c441e295e83b1b2, 0x3feb7a58d30bcdf1], [0xdce99991f1db4bc7, 0xb576de78ba34b925], [ 0x0], [0x8c441e295e83b1b2, 0x3feb7a58d30bcdf1])
+ self.div([0xd61eb41fab327ef6, 0x7dd6df46322373d4], [0x44d35ab8a99e411a, 0x2c38c737698e90c9], [ 0x3], [ 0x7a4a3f5ae57bba7, 0xf92c899ff577c179])
+ self.div([0xc6931cca4af03d99, 0xedf5cd6ef22639cf], [0x6e3b3e4ae7304e0e, 0x6af9d87e63538c41], [ 0x1], [0x5857de7f63bfef8b, 0x82fbf4f08ed2ad8e])
+ self.div([ 0x68395eed677c59b, 0x7e1b9a69f073d5a3], [0x5edcf117222988cb, 0xf48d2e4ebcf21ecc], [ 0x0], [ 0x68395eed677c59b, 0x7e1b9a69f073d5a3])
+ self.div([0xe35ed163972dda68, 0xc8cbf33804b19177], [0xe7f5baf2e15b17a0, 0x1c7a6270b27d7ed7], [ 0x0], [0xe35ed163972dda68, 0xc8cbf33804b19177])
+ self.div([0x285c4ccafc5b658d, 0x425a7de49b5d2f5e], [0x15e117f626a50498, 0x925daedd678c1009], [ 0x1], [0x127b34d4d5b660f4, 0xaffccf0733d11f55])
+ self.div([0x44d0dad70aaf4ded, 0xf119d752d18a36ca], [0x3d295b48026d6d82, 0x449b02ff2d9c52fa], [ 0x1], [ 0x7a77f8f0841e06b, 0xac7ed453a3ede3d0])
+ self.div([0xdc629e01dc08a776, 0xc890c627c0c02287], [0x1e0f92a6c23b64ed, 0x548384db819cb82e], [ 0x7], [ 0x9f59b728c68e4f9, 0x78f8242735771945])
+ self.div([0xef82e154213b0dcb, 0x94aae41c9102a855], [0xe945148b5f93212d, 0x409e84418aaa291d], [ 0x1], [ 0x63dccc8c1a7ec9e, 0x540c5fdb06587f38])
+ self.div([0x3ccdb0f3dc488d1e, 0x6f909232200b7ce8], [0x2b3fc7e1c5481f02, 0x6002e5235ef67db5], [ 0x1], [0x118de91217006e1c, 0xf8dad0ec114ff33])
+ self.div([0xbe6e7125536f75c2, 0xd38dd5a31bcc91c], [ 0x3990720ced0898e, 0x4f333b493b24c472], [ 0x34], [ 0x358fe7b511384d9, 0xf6d0d27a2e44e1f4])
+ self.div([0x737049bdfe652a32, 0xba87cc4bfffa0fde], [0xfbb35ef97cc370e2, 0xbb0c5f11e8a04241], [ 0x0], [0x737049bdfe652a32, 0xba87cc4bfffa0fde])
+ self.div([0x2ed9a95b5270ce6b, 0x97e2a2a856c5519c], [0xb7777ff2bcf286e6, 0xb56fb6220c73158e], [ 0x0], [0x2ed9a95b5270ce6b, 0x97e2a2a856c5519c])
+ self.div([ 0xe9a9e359ac55e09, 0xb25360a1884b905b], [0xef8856bbf154add4, 0x279af99021733b3a], [ 0x0], [ 0xe9a9e359ac55e09, 0xb25360a1884b905b])
+ self.div([0xf3d2829f7685d368, 0xb2e27d6cb3f7d517], [0xeda1eb62144e0667, 0x3f8fa6e292247965], [ 0x1], [ 0x630973d6237cd01, 0x7352d68a21d35bb2])
+ self.div([ 0x3f2e596e1680dd1, 0x93a420ff7abfb66c], [0xe5ecf8c3e8bc1075, 0xa0317671f8832238], [ 0x0], [ 0x3f2e596e1680dd1, 0x93a420ff7abfb66c])
+ self.div([0xfd30043e164f4c2d, 0xb16a592605e66ef], [0x52e843c6fe14c909, 0x4b16d7d956dc41b3], [ 0x3], [ 0x47738e91c10f111, 0x29d21e065bc9a1d6])
+ self.div([0x1f2834f933d5ccaa, 0xeb5754695b6fd778], [0x6836a5e35319cf7f, 0xc33fd73209bf3ff7], [ 0x0], [0x1f2834f933d5ccaa, 0xeb5754695b6fd778])
+ self.div([0x445a890b64be78c6, 0x43f1fa2d2242744a], [0x3bdd5c9bcfbf87da, 0xea8091ae057cd890], [ 0x1], [ 0x87d2c6f94fef0eb, 0x5971687f1cc59bba])
+ self.div([0x82c7a04c1d58cac4, 0x7736c827caef6caa], [0x3072620a4d488a4a, 0xe72b5c103ba6ef62], [ 0x2], [0x21e2dc3782c7b62e, 0xa8e0100753a18de6])
+ self.div([0x2166f813a1b83e4b, 0x1ce073021529c09c], [0xc159289288c8ddd6, 0xf2216361234f22a3], [ 0x0], [0x2166f813a1b83e4b, 0x1ce073021529c09c])
+ self.div([0x913af319ed0945f6, 0x76216a6c320ab25], [0xde460c1c70c01b26, 0xcd95e1287f7a6fcd], [ 0x0], [0x913af319ed0945f6, 0x76216a6c320ab25])
+ self.div([0x48ff3c72dcbbbd2a, 0x6dbc7b001198167a], [0x2f5c62467b9d76aa, 0xb9066845ad9527e1], [ 0x1], [0x19a2da2c611e467f, 0xb4b612ba6402ee99])
+ self.div([0x30b5176ac8a45f8e, 0x828b60faadb194ad], [0x466f2badfc545117, 0x4fc1eba53f9bb25d], [ 0x0], [0x30b5176ac8a45f8e, 0x828b60faadb194ad])
+ self.div([0x36808e275e7da341, 0xa125648215c0b796], [0x6a4aa2cd415713e5, 0xf4d95d68608d6394], [ 0x0], [0x36808e275e7da341, 0xa125648215c0b796])
+ self.div([0xf06c8111ccb2220b, 0x5166a73383d2e326], [0xbe13d83706eadff3, 0xebf9d8d9a59684f0], [ 0x1], [0x3258a8dac5c74217, 0x656cce59de3c5e36])
+ self.div([0x12c77367d6236f1d, 0xa065e8e87d8fee08], [0xab289f8f21b261f0, 0xa68974aac154683b], [ 0x0], [0x12c77367d6236f1d, 0xa065e8e87d8fee08])
+ self.div([0x5044fb2d78d3397f, 0x51f1f642127b38be], [0x48f7ddeaf025cb26, 0xa47f4657c7d4d7c6], [ 0x1], [ 0x74d1d4288ad6e58, 0xad72afea4aa660f8])
+ self.div([0x282eb1f9d3887701, 0xfc9691be2eb2eafe], [0xf501cbdb79f4a82b, 0xf83dc1a71e57d133], [ 0x0], [0x282eb1f9d3887701, 0xfc9691be2eb2eafe])
+ self.div([0xf6214bd618a231d9, 0x1ed6a0e177d2efe8], [0xdb25870895cc98dd, 0xa3ed9cbd3f94330b], [ 0x1], [0x1afbc4cd82d598fb, 0x7ae90424383ebcdd])
+ self.div([0x7d604ea8ff0e8ca7, 0x723aaa98b780acae], [ 0x491575c59389131, 0xfda3ba52c5cdfd60], [ 0x1b], [ 0x20c17eb96173c61, 0xb1f603dddac6f38e])
+ self.div([0x938403c8c70e3979, 0x14e803b380414939], [0x21c13e8d18b55799, 0x455c05ca5af4a488], [ 0x4], [ 0xc7f09946438db13, 0xff77ec8a146eb719])
+ self.div([0x47d847ae8d785d16, 0xd17d00dbf4ad15eb], [0xc54d299cc8d4df33, 0xffa48124bf34813e], [ 0x0], [0x47d847ae8d785d16, 0xd17d00dbf4ad15eb])
+ self.div([0xb2c4eda9389395a2, 0x3ecd19fd82cbb980], [0xf42f5b660e409851, 0x5e0f857f23d40cb0], [ 0x0], [0xb2c4eda9389395a2, 0x3ecd19fd82cbb980])
+ self.div([0x2645ad9187eefd7c, 0x24096da3dd8ff5a5], [0x973c9ce58c187f6c, 0x7a1a8f07f8e4fa30], [ 0x0], [0x2645ad9187eefd7c, 0x24096da3dd8ff5a5])
+ self.div([0xffcbd361fc4b9949, 0xd6c946f600525dce], [0xc79f77f53e7c7985, 0x1149d35114a790bc], [ 0x1], [0x382c5b6cbdcf1fc4, 0xc57f73a4ebaacd12])
+ self.div([0xa8913b248202c910, 0x89f36e27de98a939], [0x88f18fb96849b1b5, 0x91384d65939ad4a1], [ 0x1], [0x1f9fab6b19b9175a, 0xf8bb20c24afdd498])
+ self.div([0x4191be84ce40b560, 0xd8c1876dbc92cc27], [0x1a88af91e2263884, 0x9c899f7a07e65dd4], [ 0x2], [ 0xc805f6109f44457, 0x9fae4879acc6107f])
+ self.div([0x262354d6728fb347, 0xe06b52b8fc48599a], [0xa5a374c2d50739fe, 0x1ace3f5f045f3001], [ 0x0], [0x262354d6728fb347, 0xe06b52b8fc48599a])
+ self.div([0xe98844f59e701bfe, 0xd9da62824dbc9138], [0xebba6f869faa3ba0, 0x4db5299dfa69f94c], [ 0x0], [0xe98844f59e701bfe, 0xd9da62824dbc9138])
+ self.div([0xefcb52e74c1f9b57, 0x61b1adb9c000a595], [0x6018ab21b3a2e9de, 0xb13f72cb3148e25e], [ 0x2], [0x2f99fca3e4d9c799, 0xff32c8235d6ee0d9])
+ self.div([0x5c83a32ac8021835, 0x77275c7867e571e7], [0x1d671295b124f977, 0x76425de4dfc9dda3], [ 0x3], [ 0x44e6b69b4932bcf, 0x146042c9c887d8fe])
+ self.div([0xc38ea04e61fb99c8, 0xbbb901824eb5da14], [0xfed5a51854181584, 0xda78d988fc28aa4], [ 0x0], [0xc38ea04e61fb99c8, 0xbbb901824eb5da14])
+ self.div([0x652505a55e0172b6, 0x78a6d9ba716c59fa], [0x3689933ec4ebb578, 0x22b6f6fed1392ceb], [ 0x1], [0x2e9b72669915bd3e, 0x55efe2bba0332d0f])
+ self.div([0x8f8e6169642f8b67, 0x4bf1562d92674d69], [0xb5271439e3aa4133, 0x6535a66a40a36236], [ 0x0], [0x8f8e6169642f8b67, 0x4bf1562d92674d69])
+ self.div([0x396013f1373d6c1f, 0x9f4d231dd915309d], [0x5e870cd95dad1c5e, 0x4fba0fd8a51d7638], [ 0x0], [0x396013f1373d6c1f, 0x9f4d231dd915309d])
+ self.div([0x32dddd5241a5ed8d, 0x632d5b47fafeaefc], [0xbbcaeaab6f1babe3, 0x536fbb84d42e4f74], [ 0x0], [0x32dddd5241a5ed8d, 0x632d5b47fafeaefc])
+ self.div([0xad4677791801e2de, 0x5841295a20575864], [0xdb44fe6dad1032c9, 0xe475679c9f2c05b2], [ 0x0], [0xad4677791801e2de, 0x5841295a20575864])
+ self.div([0xdf39b9cb57c2b8ef, 0x47a45477f732195f], [0x18d7e2c3c54dd9f1, 0x6b8543812ec1e149], [ 0x8], [0x187aa3ad2d53e963, 0xeb7a386e81230f17])
+ self.div([0x6440d923f55e7433, 0xa5851c0bb8b05d29], [0x6251060350c062c6, 0xc494390a8bc17208], [ 0x1], [ 0x1efd320a49e116c, 0xe0f0e3012ceeeb21])
+ self.div([0xb7138d2ef0ba6e0f, 0x81d1bf593ecc44f5], [0x980af5c506d2c377, 0xf1dea5c1b6af7ff1], [ 0x1], [0x1f089769e9e7aa97, 0x8ff31997881cc504])
+ self.div([0x4049a4736f85ce82, 0x4b209983e2f4ab77], [0x632c085f1edd5969, 0x318c0b543a5ac70d], [ 0x0], [0x4049a4736f85ce82, 0x4b209983e2f4ab77])
+ self.div([0xf535389e59a3c4ef, 0xa2dda53982c6b388], [0x5c17613f5dba0753, 0x557fc7ef0b26f032], [ 0x2], [0x3d06761f9e2fb648, 0xf7de155b6c78d324])
+ self.div([0x2db8ac82bfddd230, 0x7c5d95b64d7e2e52], [0x83b8c10d7e756618, 0x67487ec570caded8], [ 0x0], [0x2db8ac82bfddd230, 0x7c5d95b64d7e2e52])
+ self.div([0x4e2c655688cb6a2e, 0xe4149bd81ab2031e], [0xa068ce23d50a4faa, 0xea8ac364a1532673], [ 0x0], [0x4e2c655688cb6a2e, 0xe4149bd81ab2031e])
+ self.div([0xfd505755d78dd725, 0xc20da4b2c8954a26], [0x172ecf1992d54c6b, 0x9cdc6ed3c0b22180], [ 0xa], [0x157c40561b38daf1, 0xa171506d419ffb26])
+ self.div([0x713d02c710dd1930, 0x20e45dd02cf6db48], [0x3f4163a5b4a4dcde, 0x93ac868cd6886f6], [ 0x1], [0x31fb9f215c383c52, 0x17a995675f8e5452])
+ self.div([0xc42bfcd7041c0e58, 0x17b7f5c9865dc49a], [0x9aa6fc3185f2c4bf, 0x1b60407734fc1e9d], [ 0x1], [0x298500a57e294998, 0xfc57b5525161a5fd])
+ self.div([0xef678a9b591e0374, 0x67fb65d1099d3c7a], [0x874c2620a8803e7d, 0xb6c0810000566265], [ 0x1], [0x681b647ab09dc4f6, 0xb13ae4d10946da15])
+ self.div([0xc3458225dae072ea, 0x50eb1839d3030cb7], [0x5fcbb3c097c4a4e0, 0xa3b5182f17e56ec6], [ 0x2], [ 0x3ae1aa4ab572929, 0x980e7dba3382f2b])
+ self.div([ 0x928045042db7095, 0x90de1890221d0522], [0x28f12598a7942059, 0x54f71c9cc8517592], [ 0x0], [ 0x928045042db7095, 0x90de1890221d0522])
+ self.div([0x32c8bd8c8397805b, 0x595b2418b52ce680], [0xbd614ee08aaffd27, 0x2d12db2781cfbcb], [ 0x0], [0x32c8bd8c8397805b, 0x595b2418b52ce680])
+ self.div([0x11223f9bc318ee35, 0x44d4e9a6d7fac5fc], [0xed0f4e68d918d60e, 0xcc029f4fe91901ab], [ 0x0], [0x11223f9bc318ee35, 0x44d4e9a6d7fac5fc])
+ self.div([0xa42c0f12e948f537, 0x246990bac902f7ce], [0x4ce3af3ae11ab345, 0x5494ad487bd3c954], [ 0x2], [ 0xa64b09d27138eac, 0x7b403629d15b6526])
+ self.div([0xe125dc05cf6b9d8e, 0xf8b0fb1818067d0e], [0xe6a1e6ef895bf50f, 0x46eaba852c6a68c3], [ 0x0], [0xe125dc05cf6b9d8e, 0xf8b0fb1818067d0e])
+ self.div([0xbe90c71c7f30c6f5, 0xd2c29dc60d42f91e], [0xd76d02d45fa39e87, 0xdc1250766c930b87], [ 0x0], [0xbe90c71c7f30c6f5, 0xd2c29dc60d42f91e])
+ self.div([0x4eb598eada0c17c6, 0x38ad6e6dd039fbba], [0xa63903de77c78ed9, 0x3d59a3f1bb6a9393], [ 0x0], [0x4eb598eada0c17c6, 0x38ad6e6dd039fbba])
+ self.div([0x4861b1db396d84b2, 0x47875ebe622ff4a3], [0x2cec97a4e9a30d16, 0xac08d3ac8747e953], [ 0x1], [0x1b751a364fca779b, 0x9b7e8b11dae80b50])
+ self.div([0x86e1ee86fd25fcac, 0x9a45ec60dd692c9c], [0xfe7de7ca1be54d20, 0x2508509c05416e27], [ 0x0], [0x86e1ee86fd25fcac, 0x9a45ec60dd692c9c])
+ self.div([0xe53c11d752a735ba, 0x7903f645ee26abf9], [0xbc6be6b6fb9139da, 0x6d79d0e3adeff7fa], [ 0x1], [0x28d02b205715fbe0, 0xb8a25624036b3ff])
+ self.div([0x85443aa396a9fcb9, 0xff259ade6ae0b61], [0xe4d238d8fe90887c, 0x90113bdad55d364a], [ 0x0], [0x85443aa396a9fcb9, 0xff259ade6ae0b61])
+ self.div([0x2084ef1aab24f58f, 0x444148f05c308c59], [0x3f671bd03f57ff3b, 0xb3e74db2c738c9a7], [ 0x0], [0x2084ef1aab24f58f, 0x444148f05c308c59])
+ self.div([0x3a3e4da1f4f0cd6f, 0x91a6ba900023293], [0xf971ca2e4da98b82, 0x88bda3dce8e70eb], [ 0x0], [0x3a3e4da1f4f0cd6f, 0x91a6ba900023293])
+ self.div([0xc7860ca193058041, 0x46c1c1268afe55f7], [0x51c8e059cd5567b0, 0x9477bfe6b73db9cd], [ 0x2], [0x23f44bedf85ab0e0, 0x1dd241591c82e25d])
+ self.div([0x76b3a5311578d670, 0x152d641683046580], [0x390c526890f9aad3, 0xee66e04b26b2e167], [ 0x2], [ 0x49b005ff38580c8, 0x385fa380359ea2b2])
+ self.div([0xb8669b06aff5a98a, 0x978ab6456a61a9fc], [0xae972054a1dbecbd, 0x721f9477cf4d7d04], [ 0x1], [ 0x9cf7ab20e19bccd, 0x256b21cd9b142cf8])
+ self.div([0xb83e9785696982d6, 0x8963ebacca6548a3], [0x5d233ec61777a0b7, 0xc7624cbc1bbb1a36], [ 0x1], [0x5b1b58bf51f1e21e, 0xc2019ef0aeaa2e6d])
+ self.div([0x941e280be3576e1c, 0xbf96104958cf5cde], [ 0x567d23c617ded9a, 0x627bbbdec2301dd1], [ 0x1b], [ 0x22afbad9b0f5ed4, 0x5c893fcaddbc37d3])
+ self.div([0x618f9ed430e04cd5, 0xb3ad2e3f535d127a], [0xc0fe9a0720c03bf3, 0x7ec90a5104d544f7], [ 0x0], [0x618f9ed430e04cd5, 0xb3ad2e3f535d127a])
+ self.div([0x2a11512b125c074a, 0xf72278e4b002c658], [0x4e2c4c2eb25af996, 0xb1ec1787209e43c1], [ 0x0], [0x2a11512b125c074a, 0xf72278e4b002c658])
+ self.div([0x5afb9696f0b60c8f, 0x58dfcaa79a5bfec6], [0xa65182c92a8fd5fd, 0xb0b860c7cc7bf298], [ 0x0], [0x5afb9696f0b60c8f, 0x58dfcaa79a5bfec6])
+ self.div([0xe0d2ae471599d3c4, 0x2a60fb7464b82e13], [0x6a0c05dc575fe437, 0xa2e9831c4c27902e], [ 0x2], [ 0xcbaa28e66da0b54, 0xe48df53bcc690db7])
+ self.div([ 0x64d2fbfaba47966, 0x7aaf055f28bb8c02], [0xa4920bb88e46f982, 0x7cbfb36b01d4f691], [ 0x0], [ 0x64d2fbfaba47966, 0x7aaf055f28bb8c02])
+ self.div([0x2ac55fb67d924c1b, 0xa09fcf717f681f80], [0x80d00ce6aafbd949, 0x2fc90efb582b89ce], [ 0x0], [0x2ac55fb67d924c1b, 0xa09fcf717f681f80])
+ self.div([0x6d09c523f512c747, 0x28c44c28c370dbf1], [ 0xeae63391c07b473, 0x60544ea86e175751], [ 0x7], [ 0x6450e9430dcd81f, 0x8676258dc0cd78ba])
+ self.div([0x59ebb534e5f0e97e, 0xd930e0b0687e5f4e], [0xec5b8b5db89ff80d, 0x42b375a0efa3bd1], [ 0x0], [0x59ebb534e5f0e97e, 0xd930e0b0687e5f4e])
+ self.div([0xf02cdeb144205fcf, 0x247ae47cc7bca086], [0x723c6281e9d3bec8, 0xcbb6a6bd3095eadc], [ 0x2], [ 0xbb419ad7078e23d, 0x8d0d97026690cace])
+ self.div([0xd63270aea5190271, 0x82b313a32835d002], [0x3d074c0e16700fd1, 0x5e8e30800964c032], [ 0x3], [0x1f1c8c8461c8d2fd, 0x670882230c078f6c])
+ self.div([0x4bb6f091a00971da, 0x38fc9382d757b47e], [0x25a9dd75e353d2ee, 0x80161967e3af2f0], [ 0x2], [ 0x6335a5d961cbfe, 0x28f9d055dae1ce9e])
+ self.div([0x823ff553ee43b4b3, 0xf5035cb6dbdcbb31], [0xa3bfeb185c5b374c, 0x92cb67e02e87b722], [ 0x0], [0x823ff553ee43b4b3, 0xf5035cb6dbdcbb31])
+ self.div([0x5e80c3503a4b8058, 0x5d8dd86256cbc36c], [0x1bad1ba01333b12b, 0x910e6d7463fe0c4a], [ 0x3], [ 0xb79707000b06cd5, 0xaa6290052ad19e8e])
+ self.div([0xf2c112d548e3e8b8, 0xb699a9c1c2345773], [0x95ba12c368bdc671, 0x6145a65bde51d480], [ 0x1], [0x5d070011e0262247, 0x55540365e3e282f3])
+ }
+
+ func test_div_2_by_3() {
+ self.div([0x19b1d355024801f4, 0x823756057e376737], [0x8056f0203ef0413a, 0x39fdd1faf546b6e7, 0xf5005fa2be6d265b], [ 0x0], [0x19b1d355024801f4, 0x823756057e376737])
+ self.div([ 0x195c2c3c79cf159, 0xbefc31d79f9abe4c], [0x9b8f13835da939e3, 0xbb30f8321d2c352f, 0x8967c2339cb7ed07], [ 0x0], [ 0x195c2c3c79cf159, 0xbefc31d79f9abe4c])
+ self.div([0xf4d4047f6101fb52, 0x15788ce5a0f7d99a], [0x314500af28701a79, 0x2d309a53e913bba4, 0xfce9c893d9701a34], [ 0x0], [0xf4d4047f6101fb52, 0x15788ce5a0f7d99a])
+ self.div([0x3085666deed6949d, 0x17fe9611272e3b7d], [0x63de03ce27b5eeab, 0x51625af482257664, 0x6a618e8ab98ef5f9], [ 0x0], [0x3085666deed6949d, 0x17fe9611272e3b7d])
+ self.div([0x799ba8030d596222, 0xa5ca27b9d0a0db6d], [0xf6e09cce01779866, 0xd31b3207049c9699, 0x537128b8bd93a653], [ 0x0], [0x799ba8030d596222, 0xa5ca27b9d0a0db6d])
+ self.div([0x95ff21252cb99003, 0xbe87b108a2291f48], [0x3cf4441368c40217, 0xad1d757c1ba90b06, 0x584d42c6acbd857c], [ 0x0], [0x95ff21252cb99003, 0xbe87b108a2291f48])
+ self.div([0x5566d1e639558ce7, 0x32ec32dc72ffc4a5], [0xd166db9f8ccbfafa, 0xa01c9e13e7ce96d1, 0x67dd58b1c04497e2], [ 0x0], [0x5566d1e639558ce7, 0x32ec32dc72ffc4a5])
+ self.div([0xa4be9d7f536d90a6, 0x7cca0d88a72d9925], [0x7349b7e83eaa80ca, 0xe893474d555d2535, 0xee5d91527c1907c5], [ 0x0], [0xa4be9d7f536d90a6, 0x7cca0d88a72d9925])
+ self.div([0x788105e68444897e, 0xeb4444c955c6025], [0x7037bbe0fde5f33b, 0xa29580ac3eeeab0f, 0xd8a58d954869e370], [ 0x0], [0x788105e68444897e, 0xeb4444c955c6025])
+ self.div([0x19ec63bd4bb05330, 0x72f2c102344dba82], [ 0x8817c1d3206fe38, 0x88eda31f71e7be63, 0x215f1ca644a91c43], [ 0x0], [0x19ec63bd4bb05330, 0x72f2c102344dba82])
+ self.div([0xa2effcb4135a28d0, 0x9476553c90bc82bb], [0x6412641037c29159, 0x80926e2e7458d57a, 0x2487ad16d82a73c0], [ 0x0], [0xa2effcb4135a28d0, 0x9476553c90bc82bb])
+ self.div([0x409d567e4f276e07, 0xa992671411122a4b], [0x186c992ce0174d89, 0x4bd70d9e48a447c3, 0xcef80f588d2190c8], [ 0x0], [0x409d567e4f276e07, 0xa992671411122a4b])
+ self.div([0x4649679b2475b39c, 0xf7fc56a73f7356ab], [0x4eaded8fe6de2a20, 0xfeeed14c2242b3f1, 0x91098133004ecafd], [ 0x0], [0x4649679b2475b39c, 0xf7fc56a73f7356ab])
+ self.div([0x984a85dfa0573a73, 0x4ca815e6d131e2ce], [0xe8a12a3043e59620, 0x43863231af10e216, 0xdfd1f2f8085d711d], [ 0x0], [0x984a85dfa0573a73, 0x4ca815e6d131e2ce])
+ self.div([0x7c6077b86b85fefb, 0xc8fd63cf16ae726], [0xdd0bba61ee29f5b0, 0x68314aff379ccd33, 0x1ea753da0b74462d], [ 0x0], [0x7c6077b86b85fefb, 0xc8fd63cf16ae726])
+ self.div([0x8256869b036767b0, 0xba9ec27692696655], [0x8186ea5466aa4046, 0x8030e8b9f27041ea, 0x5331b721cf14cdd1], [ 0x0], [0x8256869b036767b0, 0xba9ec27692696655])
+ self.div([0x76e6bc7139f6cd06, 0x8a6412d2b4ba3f1], [0x6535f57c86eaa79d, 0x25b883aaeb07183e, 0x18fd1599cc5789ab], [ 0x0], [0x76e6bc7139f6cd06, 0x8a6412d2b4ba3f1])
+ self.div([0x899c0a189d60e1e5, 0xcc2309d6d8e50938], [0x9f5dd2ce8cf842bb, 0x6911af62814d50c8, 0xa1820e08db16f826], [ 0x0], [0x899c0a189d60e1e5, 0xcc2309d6d8e50938])
+ self.div([0xd35ba9f6133606d8, 0x4bb6f2f6c3b36fba], [0x33d1355225b1b200, 0xfaad9903df4789f1, 0x2c20aa1c44237e0a], [ 0x0], [0xd35ba9f6133606d8, 0x4bb6f2f6c3b36fba])
+ self.div([0xc54e499bfbc6dd2d, 0xbd00aa6a9ed7f06f], [0x8aee54ddf97598cb, 0x88bedf1a5f47852e, 0xaeb829046386e8b], [ 0x0], [0xc54e499bfbc6dd2d, 0xbd00aa6a9ed7f06f])
+ self.div([0x12c6dd44815b21bf, 0xe94be618d6ac58ea], [0x8ae72091bc177a39, 0xac4fb5c991c9c132, 0xd62b3fab8d61efa3], [ 0x0], [0x12c6dd44815b21bf, 0xe94be618d6ac58ea])
+ self.div([0xc7bed6571c2ec627, 0x25cc8a7c351a9de0], [0x5f586ca4377cbe1d, 0xa1560e9980629f65, 0x935c1121afe65082], [ 0x0], [0xc7bed6571c2ec627, 0x25cc8a7c351a9de0])
+ self.div([0xd842d6d4aeef61c2, 0xaabf07f9eebe0067], [0x9e154d9bfca8e6fd, 0x1aad8afac103216a, 0xa39b0ff23e0d5724], [ 0x0], [0xd842d6d4aeef61c2, 0xaabf07f9eebe0067])
+ self.div([0x5bc0aefa79b7830c, 0xd204051d51c3d93], [0x1d0ba7adf27db7d7, 0xec315c5dfa589d73, 0x7671cb4bfa6ead3], [ 0x0], [0x5bc0aefa79b7830c, 0xd204051d51c3d93])
+ self.div([0x65d24b1981b5d6af, 0xad7716d3d1dc0042], [0x3714e60ab0f27309, 0x8bc1fe20be1f7c93, 0x879df7872ce80447], [ 0x0], [0x65d24b1981b5d6af, 0xad7716d3d1dc0042])
+ self.div([0xe1ba156e8b67169c, 0xed3b8a0f96217423], [0xac0a29248b4ef5b8, 0x54155b5c7d21bd2, 0x862979b82b07a1cf], [ 0x0], [0xe1ba156e8b67169c, 0xed3b8a0f96217423])
+ self.div([0x18e1a36549c33b28, 0x1d57ed0028c19500], [0xeea9850f8929d4c8, 0x77c10799df150f8b, 0xec215a7d198864dd], [ 0x0], [0x18e1a36549c33b28, 0x1d57ed0028c19500])
+ self.div([0x501673a5791bfb5b, 0xc6abf3044b0d6037], [0x2a409e7de58b5d3b, 0x1987b37633fd42b4, 0xf180c98f888ae25e], [ 0x0], [0x501673a5791bfb5b, 0xc6abf3044b0d6037])
+ self.div([0xb6841d44e29e43ed, 0x37e793423149e9a8], [0x2029c8dc1a3b3242, 0xde75e83d26d51dd9, 0x44bed121a7ba9b00], [ 0x0], [0xb6841d44e29e43ed, 0x37e793423149e9a8])
+ self.div([0xcf6d88eace1f1c06, 0xc98e97efdf9cf4cd], [0x8c74ee5fe15ebdf2, 0x8f8b3540b2891f73, 0x139b4ee58e009a7f], [ 0x0], [0xcf6d88eace1f1c06, 0xc98e97efdf9cf4cd])
+ self.div([0x7f1102b653581511, 0x476599673f42560c], [0x5475452b95dd13b2, 0xdbd8539d790268d7, 0x81c258c17308691b], [ 0x0], [0x7f1102b653581511, 0x476599673f42560c])
+ self.div([0xbd5841d6d69abc71, 0x475756b03744a265], [0x6b57525782e2747f, 0x4a453deca32c991e, 0x1ba7fc0eeaec1fcf], [ 0x0], [0xbd5841d6d69abc71, 0x475756b03744a265])
+ self.div([0x5f5204dd87828b0f, 0x8ab604e44a324cda], [ 0x809bc78bd93d44, 0x3ac1d26169840314, 0x7d536a72530544ab], [ 0x0], [0x5f5204dd87828b0f, 0x8ab604e44a324cda])
+ self.div([0x77bee526fceefe94, 0xb1bc566dd8fc3841], [0x10f7e33ea0ebdb0d, 0x3d534f2a568432d9, 0xd7bea03a8dd253c6], [ 0x0], [0x77bee526fceefe94, 0xb1bc566dd8fc3841])
+ self.div([0x7756847d13894974, 0x78edad3fe54a39bd], [0x97c414524935902a, 0xe236362c119a7769, 0x57b7ddd243e33307], [ 0x0], [0x7756847d13894974, 0x78edad3fe54a39bd])
+ self.div([0xf7a53ffbea694999, 0x2cf3bc4eb443942], [0x7bdeb19419b96973, 0xe6bc56e674ed1fec, 0xb695f603c430305], [ 0x0], [0xf7a53ffbea694999, 0x2cf3bc4eb443942])
+ self.div([0x4b25bfc4a914461d, 0x12be67047be2bac4], [ 0x7a14d6f859ede23, 0xcc3e743f273a761a, 0x7b1a666401b3b94c], [ 0x0], [0x4b25bfc4a914461d, 0x12be67047be2bac4])
+ self.div([0xccd7412893c1ca4f, 0xc144ba9f2484ffd0], [0xe12be77c13d81a29, 0x6e8b194c04d22d37, 0xf3f12777e7c0e7f0], [ 0x0], [0xccd7412893c1ca4f, 0xc144ba9f2484ffd0])
+ self.div([0xb4cc5564ba96bd97, 0x6e9a54198a7af438], [0x305750948d361011, 0x572888b02c1720d1, 0x4d0427a5c1bbe90], [ 0x0], [0xb4cc5564ba96bd97, 0x6e9a54198a7af438])
+ self.div([0xb9161cd6505d6fa1, 0x48cb7cba7d15fb2f], [0x24e84d5766c5cee0, 0x2f663ce8254a72b, 0xb378f86d8f3267fd], [ 0x0], [0xb9161cd6505d6fa1, 0x48cb7cba7d15fb2f])
+ self.div([0x8a79f1efce5ec14b, 0x2f37a3d709f34659], [0xa88742aa51dc6207, 0x31e5982b2b97aba2, 0xba91bf782d4e718a], [ 0x0], [0x8a79f1efce5ec14b, 0x2f37a3d709f34659])
+ self.div([0x2eea675e35c1672c, 0x80a1a4c4547c1bb0], [0x93c862221e64002a, 0x94e8b04c8f11721c, 0x41fd0aea599246a], [ 0x0], [0x2eea675e35c1672c, 0x80a1a4c4547c1bb0])
+ self.div([0xe126c9f2d87657a5, 0x1ae025ae1caf772b], [0xbf6f50a36e761322, 0x1fa8cc4464bcc613, 0x176d3d786abdb7b6], [ 0x0], [0xe126c9f2d87657a5, 0x1ae025ae1caf772b])
+ self.div([0xe94c97f417322799, 0xc934d24ebfbcf694], [0x1b67a0922705bae4, 0xedb46f5852efcf3b, 0xc5437e0a4160afc1], [ 0x0], [0xe94c97f417322799, 0xc934d24ebfbcf694])
+ self.div([0x94ab94cbe18efa07, 0xf61ad2e74c7e1990], [0xb07e54e6044eba1e, 0x4250b673fd752ded, 0x5fcee5fc6cf54510], [ 0x0], [0x94ab94cbe18efa07, 0xf61ad2e74c7e1990])
+ self.div([0x81131e10d125d450, 0xc19e5c518c900703], [ 0x2992934de0074f9, 0xe4b340dc794ee182, 0xe4edca2554e554fc], [ 0x0], [0x81131e10d125d450, 0xc19e5c518c900703])
+ self.div([0xa94efdd3c6f47483, 0xfb8b48899f725c79], [0x7f31f763531cfb79, 0x32929c94eb5ca029, 0x6d1c1d19bfeb09f], [ 0x0], [0xa94efdd3c6f47483, 0xfb8b48899f725c79])
+ self.div([0x6818e8bba1c062b3, 0xb8c00fc09cb1f706], [0xcb40eb6c9e3efcd8, 0xde51a245334a03b9, 0x18b1a4c5d0b07214], [ 0x0], [0x6818e8bba1c062b3, 0xb8c00fc09cb1f706])
+ self.div([0xe16e911cf72185d9, 0x2ecd5d76de8ba3e6], [0x9bf9bdc5d82a243e, 0x5e6de6ec782e3dbf, 0xcc0f17156ccc3a66], [ 0x0], [0xe16e911cf72185d9, 0x2ecd5d76de8ba3e6])
+ self.div([0xdbe65192cbc92c0d, 0xca3de1ae3ab7a192], [0xdf9d9b8483f1ff6a, 0x255bdbd886eefa84, 0x509075e317ce476f], [ 0x0], [0xdbe65192cbc92c0d, 0xca3de1ae3ab7a192])
+ self.div([0x8ed66a647b45319b, 0xeae732c938c11c46], [0x936ca957b8d3ad23, 0xec3f57556f215329, 0x4b08dcc71a3428c2], [ 0x0], [0x8ed66a647b45319b, 0xeae732c938c11c46])
+ self.div([0x16f181c66603b320, 0x2588378f2aedc088], [0x4e8adb4f1a403b2e, 0x8a0d8e1cdfe7b824, 0xde5c827c024e1d44], [ 0x0], [0x16f181c66603b320, 0x2588378f2aedc088])
+ self.div([0xfb46c57591fd5302, 0xa9ebe85d438512b0], [0x255834abb909039b, 0x18121d7b9eddfc13, 0x7e6180ad636a7fcd], [ 0x0], [0xfb46c57591fd5302, 0xa9ebe85d438512b0])
+ self.div([0xf575522a97de507d, 0xd54b3af8ef32935f], [0x155de8e92a5337eb, 0xbdde2df297a05ad4, 0x7ee4a6839d78a4e7], [ 0x0], [0xf575522a97de507d, 0xd54b3af8ef32935f])
+ self.div([0x16f13a70b838f575, 0x819ab6f4062b0854], [0x32e91881ff3db1ab, 0xfebba94823f3671c, 0x3ecdd1d7b9d79da1], [ 0x0], [0x16f13a70b838f575, 0x819ab6f4062b0854])
+ self.div([0x2488682ffbe43f0b, 0xe6604ff789f1fd8f], [0xe0f5a82e6fb10eb6, 0xa9d1808a532c7ef, 0x5dc44010df7d3da9], [ 0x0], [0x2488682ffbe43f0b, 0xe6604ff789f1fd8f])
+ self.div([0xc13edcb676218cbd, 0xad0c5370b03b7ad2], [0x2df51eae8757293a, 0x367ad880816cfde1, 0x88d6d32536357ead], [ 0x0], [0xc13edcb676218cbd, 0xad0c5370b03b7ad2])
+ self.div([0x8b0c713fa9c4aa92, 0x48a8e0660f0ada00], [0xd7ee9d2260a28b43, 0x6cdd575bcf029f02, 0x32472111852df538], [ 0x0], [0x8b0c713fa9c4aa92, 0x48a8e0660f0ada00])
+ self.div([0x29abf3b996d12d33, 0x21dcd007105287b6], [0xd5f575122b19dc77, 0xa328a365d8e5cfa0, 0x995618c6803f782f], [ 0x0], [0x29abf3b996d12d33, 0x21dcd007105287b6])
+ self.div([0x61b5c800975c9637, 0x63cce3e8a515c55c], [0x431cde3efa714bf5, 0x412f93b4f5db0d8d, 0xa6b2a1a182fd9822], [ 0x0], [0x61b5c800975c9637, 0x63cce3e8a515c55c])
+ self.div([0x7b1460033150cca3, 0x19b09781cf05ae15], [0x53fb9b4d8cb628fc, 0xd529cf0a263dd9f, 0x1276c2d4f4feff9e], [ 0x0], [0x7b1460033150cca3, 0x19b09781cf05ae15])
+ self.div([0xccda155d926362dc, 0xfa1a31dcf3699668], [ 0x5fecdd3e25eb162, 0xc6a46a7fda86486, 0x4932f95bf1f52c2], [ 0x0], [0xccda155d926362dc, 0xfa1a31dcf3699668])
+ self.div([0x89d4306780e452f5, 0xd548cfe7c3b4d969], [0x156e2d0fcc78dbb9, 0x76e6939ff5d94ce5, 0x15893cef6d72e05d], [ 0x0], [0x89d4306780e452f5, 0xd548cfe7c3b4d969])
+ self.div([0xaa6a073eb1f5cef5, 0xf4afbf9d74ec1c62], [0x5fba5a8b91114d17, 0x80e0a23af101b757, 0x937591ffd9d23edb], [ 0x0], [0xaa6a073eb1f5cef5, 0xf4afbf9d74ec1c62])
+ self.div([0xe05cedc584eb47b3, 0x4bb65b1f0c8cf130], [0x1495eff1c9d4caed, 0xdf35ce2cf7b2e0ff, 0xe19827f2cfc0220], [ 0x0], [0xe05cedc584eb47b3, 0x4bb65b1f0c8cf130])
+ self.div([0xc34689c58e3d0107, 0x645d5f9c12396365], [0x6ff41011e76302e0, 0xdd0082b3a7156e60, 0x289816c6297c6720], [ 0x0], [0xc34689c58e3d0107, 0x645d5f9c12396365])
+ self.div([0xba3cd37653bff74d, 0x7008414a4febdaf], [0x31b93dcbc0277e73, 0x9b4ce147748fd0c3, 0xe9b63907e6b93c37], [ 0x0], [0xba3cd37653bff74d, 0x7008414a4febdaf])
+ self.div([0xb317c85fb2b55153, 0xbd234c4e6a35889e], [0x806cdf611e74b9f4, 0x9299cbe58ac8a680, 0xf036c7f26c52d5d6], [ 0x0], [0xb317c85fb2b55153, 0xbd234c4e6a35889e])
+ self.div([0x865d6158197ea448, 0x7a28be0a39c226c8], [0x4961d2fb4e96e318, 0xeeba6308ca68a078, 0x301136d9725caccc], [ 0x0], [0x865d6158197ea448, 0x7a28be0a39c226c8])
+ self.div([0x39922844b687e91a, 0xa97dc6f699cd7f26], [0x9965f65bcdf111f9, 0xae86167a3dc3fe31, 0xf61afa9c88967f7c], [ 0x0], [0x39922844b687e91a, 0xa97dc6f699cd7f26])
+ self.div([0x1320831e32b72957, 0xbff8fea43f0e3ddf], [0xaca27b223e0351bf, 0x886121ac21eb155a, 0x808be956ef516f4d], [ 0x0], [0x1320831e32b72957, 0xbff8fea43f0e3ddf])
+ self.div([0x1b571425dfe323b1, 0x6461b52a8b79361e], [0xe2f902a69379bb81, 0xc7c3d8289ddef6f7, 0x84fe46c6fed98453], [ 0x0], [0x1b571425dfe323b1, 0x6461b52a8b79361e])
+ self.div([0x8d5b12133ad16e0c, 0x80d3d1169dce7fb1], [0x897803675081bf57, 0xa9401db84f646f34, 0x1bc1e5ebdaa5b633], [ 0x0], [0x8d5b12133ad16e0c, 0x80d3d1169dce7fb1])
+ self.div([0x16016a60976c4492, 0x653765952804c921], [0xd91254115a54152a, 0x1fd9c3c38aafb3ee, 0x2739bd147be2f6c4], [ 0x0], [0x16016a60976c4492, 0x653765952804c921])
+ self.div([0x9a5e68aa0af1157b, 0xb892b00e9794b780], [0xc4b71f5ea9c0e44e, 0xd69e2d8e7b6b3466, 0x609ded60a3d1ecc], [ 0x0], [0x9a5e68aa0af1157b, 0xb892b00e9794b780])
+ self.div([0x373e24830f648632, 0x237bffdbfc4a90a8], [0xaa27df364dc548a4, 0x4e7d431451e07eaa, 0x1222989c0fb05f2a], [ 0x0], [0x373e24830f648632, 0x237bffdbfc4a90a8])
+ self.div([0xc38a6873df6a12b7, 0xede8f197de3855a1], [0xc158338b9dd247e9, 0x5a8058a5ffb5f53e, 0xa0a93e175366ad2c], [ 0x0], [0xc38a6873df6a12b7, 0xede8f197de3855a1])
+ self.div([0x28da0a721662def5, 0x5650aa7dac64350f], [0x95b46863ebfbf21c, 0x12151c6843f8fa32, 0x8b4cb1da48e6d717], [ 0x0], [0x28da0a721662def5, 0x5650aa7dac64350f])
+ self.div([0x718af5d341f88139, 0xf637a7d428fbc34e], [0x217bb69da0268f06, 0x443c4e717a459d7f, 0x3e23e9c436b2320a], [ 0x0], [0x718af5d341f88139, 0xf637a7d428fbc34e])
+ self.div([0x64870197a147fd9a, 0x7ddc6912bc9d5021], [0x15756fc3d4d5e797, 0x4bb2b041afb31012, 0xb54f42a163e012a4], [ 0x0], [0x64870197a147fd9a, 0x7ddc6912bc9d5021])
+ self.div([0xb8cda14cde5287eb, 0xd61afde2e2868089], [0x370e94888c64f383, 0x65d44b8dd73df251, 0x671a4bc404a7d43], [ 0x0], [0xb8cda14cde5287eb, 0xd61afde2e2868089])
+ self.div([0x1435cd63415d2491, 0x369163fa445fffd4], [0x1e7ab78a898c8107, 0x275c15e41839d870, 0x9e1f84f7f2a6959b], [ 0x0], [0x1435cd63415d2491, 0x369163fa445fffd4])
+ self.div([0x90160d03648a9699, 0xdf5f828c620bd4c], [0x7d0ae116d3966421, 0x6790933293eecd50, 0xd3d4b25cb284a8ad], [ 0x0], [0x90160d03648a9699, 0xdf5f828c620bd4c])
+ self.div([0x3aa3886e03480820, 0x7f26182bd867ad78], [0x437fd67a5f71861e, 0x35b4f4ebf810b133, 0x99c2a7b2153d81a4], [ 0x0], [0x3aa3886e03480820, 0x7f26182bd867ad78])
+ self.div([0x5ae2238f7dad10dc, 0x208bded036137b0c], [0xe533bbe33f80079e, 0xc6753ace953e89f8, 0x521954991b5b4a0f], [ 0x0], [0x5ae2238f7dad10dc, 0x208bded036137b0c])
+ self.div([0xc994a27149d37688, 0xaa0b10462175b7e8], [0xdf132d4f2f759c47, 0xb6f78eef54f80ed1, 0xda24842afae274b5], [ 0x0], [0xc994a27149d37688, 0xaa0b10462175b7e8])
+ self.div([0xd7731cc5f83d836d, 0xcc8a6931f9773c99], [0x2adc314ff457e68f, 0x57aaf01d93be3072, 0xcccedd049c8fa430], [ 0x0], [0xd7731cc5f83d836d, 0xcc8a6931f9773c99])
+ self.div([0x4868aa68e872fc5f, 0xf1fa5055b3d5736d], [0x1dbfe58160fc788f, 0x62d5a6684fabd869, 0x5b87518a9fd0cf0f], [ 0x0], [0x4868aa68e872fc5f, 0xf1fa5055b3d5736d])
+ self.div([0xe5b14c2a4e337572, 0x16aa2586c7c46267], [0xc0da4301898cec30, 0xa47e611e10ee8046, 0x44c242df69dc6bd], [ 0x0], [0xe5b14c2a4e337572, 0x16aa2586c7c46267])
+ self.div([0x9b253d343b037e20, 0x4de2b6d3d169847], [0xed07de7db847a463, 0x25f14cb6390367fe, 0x9378204c0af102e0], [ 0x0], [0x9b253d343b037e20, 0x4de2b6d3d169847])
+ self.div([0x544008827c8a4312, 0x6017f7f53e110283], [0xaa56a8b308920df1, 0xfb3a277b8c4d1d73, 0x50874a4375139a70], [ 0x0], [0x544008827c8a4312, 0x6017f7f53e110283])
+ self.div([0xbc04b7bee0cb1fc1, 0xb3043013e3b4097a], [ 0xf1748a7f041dea1, 0x4b451f5cb5e45614, 0xcf420a33bfa787ec], [ 0x0], [0xbc04b7bee0cb1fc1, 0xb3043013e3b4097a])
+ self.div([0x91a3f85c7c04ece1, 0xa4e14b639249f841], [0x4d65a580b339f9b5, 0x91a5b639c69f9b4, 0x5e3698a3ba5063cd], [ 0x0], [0x91a3f85c7c04ece1, 0xa4e14b639249f841])
+ self.div([0x353e3db142c33c11, 0x2d196f767cbd9a2b], [0xf50ebab52c227baa, 0xa42f9690312f4245, 0xc9ebc5d70575e0a8], [ 0x0], [0x353e3db142c33c11, 0x2d196f767cbd9a2b])
+ self.div([0x63d9a73f273167a8, 0x3dbf998770d84907], [0xa9c60537ae9acb54, 0x6173c6de664bf954, 0x6a52ed721b3c74ce], [ 0x0], [0x63d9a73f273167a8, 0x3dbf998770d84907])
+ self.div([0xe673de2f3fcb0bc7, 0x686bde52c2e9f289], [0xc196e3a50277399a, 0x20466df737446d24, 0xb6989b61a0a0f111], [ 0x0], [0xe673de2f3fcb0bc7, 0x686bde52c2e9f289])
+ self.div([0xc2badca81bd17606, 0xeddcd3cd9ab08792], [0xdf08478da5b5a74b, 0xd4629a917352b80d, 0xe07f58639e1bb437], [ 0x0], [0xc2badca81bd17606, 0xeddcd3cd9ab08792])
+ self.div([0x611cc1e25974370a, 0x6979f6f2998905bd], [ 0xcfb724f7495e2be, 0x4d94e4af89488f6, 0x3025081605b7a829], [ 0x0], [0x611cc1e25974370a, 0x6979f6f2998905bd])
+ self.div([0xf8d79e3d2bf9a6a8, 0x70d7d142cb12680a], [0xb0e02c45f08b2521, 0xabc6f6db437dd2db, 0x78b5978b3be6d480], [ 0x0], [0xf8d79e3d2bf9a6a8, 0x70d7d142cb12680a])
+ self.div([0xdd0ee0c60241083f, 0xcf5a4864d964ca8f], [ 0x3e9fd5b7f7a0849, 0x3668a223b87b55cb, 0x196aba6f3689c58d], [ 0x0], [0xdd0ee0c60241083f, 0xcf5a4864d964ca8f])
+ }
+
+ func test_div_2_by_4() {
+ self.div([0xa99bee9d5d85ef82, 0x14d8fcc7be46bf21], [0x774a03e7d452813e, 0x222cade537c3a8c9, 0x204c338c84d0404c, 0xe9a4db034a78d828], [ 0x0], [0xa99bee9d5d85ef82, 0x14d8fcc7be46bf21])
+ self.div([0xe2cd5dbba5ab8630, 0x7b83d705420ed56e], [0xa37fb6477287c1aa, 0xd5e7e3a95a64a352, 0x747174422eaa71b5, 0xe79909a54374c674], [ 0x0], [0xe2cd5dbba5ab8630, 0x7b83d705420ed56e])
+ self.div([0x1a6f37824df79825, 0x2930bd07d8644977], [0xceb103312604fcde, 0xb650bac9703912b2, 0x9c2ceb8a0bc12ac6, 0xc965c7214046400c], [ 0x0], [0x1a6f37824df79825, 0x2930bd07d8644977])
+ self.div([0xdccd70d2e7556b05, 0xe793394b830afbd7], [0x8abbf54ceae7c76e, 0x4bd85b5c5dc71f7c, 0xcbd8c8b401ff166b, 0xe1578aa2ba0afe91], [ 0x0], [0xdccd70d2e7556b05, 0xe793394b830afbd7])
+ self.div([0x486ed1ab9b2c4e36, 0xb57e6bbc9455a629], [0x7f5c091eea2615d1, 0x2962d5234b0d6162, 0xebf85d790ef30d74, 0x7ecd7a8cb2c85c59], [ 0x0], [0x486ed1ab9b2c4e36, 0xb57e6bbc9455a629])
+ self.div([0xa882e45ab218383b, 0x1af1b77349da977e], [0xbd998d3b720d037d, 0xc6a2e16fc5b271a8, 0xa39b39003461362f, 0x2c5b621c02b3fc9c], [ 0x0], [0xa882e45ab218383b, 0x1af1b77349da977e])
+ self.div([0x976c414b2e72edb3, 0x8644127101f2b052], [ 0x6aed3da57f22e11, 0x5756f86286e193bf, 0x55d73275491d2455, 0xce9874fb6a84eb94], [ 0x0], [0x976c414b2e72edb3, 0x8644127101f2b052])
+ self.div([0x824eb5518e3e3cec, 0xf89dd8166031f752], [0xf2f25d9c74734edf, 0x7bfd838c28db9d49, 0xc988e6932997b46e, 0xfff4fc80da28bca2], [ 0x0], [0x824eb5518e3e3cec, 0xf89dd8166031f752])
+ self.div([0xbd1781d8e02dfe98, 0xebe941cd46049947], [0x9bcbb2c7f3f2299c, 0xc27f30eb3bee275a, 0x87973751223aa44d, 0x48805979081066b6], [ 0x0], [0xbd1781d8e02dfe98, 0xebe941cd46049947])
+ self.div([0x80704fe1ab1ff9f0, 0xdb11560285595719], [0xcc418c7acb60b046, 0x103f432ee5ba5457, 0x684198e4e302c04, 0x1dcbd0a81d5a410b], [ 0x0], [0x80704fe1ab1ff9f0, 0xdb11560285595719])
+ self.div([0x2df0fa749dda36f0, 0xb91e992e595ecc2a], [0x6516dc79f9384700, 0x56e096701f0590f0, 0x76e5c0dbf8ae7b93, 0x4d104b2ad807f64c], [ 0x0], [0x2df0fa749dda36f0, 0xb91e992e595ecc2a])
+ self.div([0x640f54c4a01eeb5d, 0xac3e8f15f187b512], [0x3a15af98c9b7cde6, 0xef5b61991bb96679, 0x3b8f8dd25d8e8d99, 0x319dea4426647c5a], [ 0x0], [0x640f54c4a01eeb5d, 0xac3e8f15f187b512])
+ self.div([0x8338937fbbab71ec, 0x6113deb2b304e4d2], [0x4592f4143ae49cc8, 0x8893015c0869f3be, 0x90ef837ab25c117c, 0x8978a5ce54f4aa45], [ 0x0], [0x8338937fbbab71ec, 0x6113deb2b304e4d2])
+ self.div([0x30a7629096c49c3e, 0xec8801f04e2878aa], [0xd53290afa1820c4a, 0x33494e92d5effbb2, 0x94b7484beb2dd068, 0x5509ca8c771e7978], [ 0x0], [0x30a7629096c49c3e, 0xec8801f04e2878aa])
+ self.div([ 0x1579f324a603aa8, 0x550cb9c8973d270d], [0xd4bf70895f94fc55, 0x28d820df0ca8aaa1, 0x4d6421817e3b69e6, 0x88b9f45c9d64c08e], [ 0x0], [ 0x1579f324a603aa8, 0x550cb9c8973d270d])
+ self.div([0x590ed86b96061453, 0xeeb6744d948a3865], [0x82cef22fa0187ea6, 0xb7ef107e30cd068c, 0x85a3a5a5c7e914ab, 0x131424034c4de081], [ 0x0], [0x590ed86b96061453, 0xeeb6744d948a3865])
+ self.div([0xdd1edddca6eef231, 0x8af96561c7f03005], [0xe85b37992d766838, 0x7842ece1c8c7020d, 0xf7b7db1f23da90a2, 0x2e5702e11a20b3df], [ 0x0], [0xdd1edddca6eef231, 0x8af96561c7f03005])
+ self.div([0xdbf3d2052c224b8e, 0x9fff2fc6934ca071], [0x65cce00486dd1ddb, 0xb9e2a74605367fdb, 0x4044bd0fcef0bbba, 0x96b8b7e524f5a314], [ 0x0], [0xdbf3d2052c224b8e, 0x9fff2fc6934ca071])
+ self.div([0x35d8443aa3c67abb, 0xab222c0bf2c12e27], [0xd9cb5f34f351e399, 0x23441dc83b070a20, 0x9416b06438435ea6, 0x7d157d071604cc9a], [ 0x0], [0x35d8443aa3c67abb, 0xab222c0bf2c12e27])
+ self.div([0x13a67d6a62524093, 0x5466b25c5390ded2], [0x887123830619e524, 0xc0ee42b62c2065c9, 0x8f831039de1bbe1d, 0xb07ba8c42122fdc], [ 0x0], [0x13a67d6a62524093, 0x5466b25c5390ded2])
+ self.div([0xc5ebe0a9711a3032, 0x9a863d2981bd0b31], [0x524a18a17a640fb3, 0x1d9a5747e453ad0, 0x145ba0a327c523ba, 0x2b63f489f80b8121], [ 0x0], [0xc5ebe0a9711a3032, 0x9a863d2981bd0b31])
+ self.div([ 0xaff49fdfacca6a8, 0x16fa5f253672c816], [0xe766ce60214a10ba, 0x94f73e4ce72c3184, 0x72784b403db5247b, 0xe951751bbad8a666], [ 0x0], [ 0xaff49fdfacca6a8, 0x16fa5f253672c816])
+ self.div([0x902aa917645cfaa4, 0x93b87839bd0319d7], [0x893b52325f9b18b1, 0xf96b6650b0b61134, 0x5c061b8320fafe3e, 0x7eeaf4f4ee60e333], [ 0x0], [0x902aa917645cfaa4, 0x93b87839bd0319d7])
+ self.div([0x3401274c59d2cca4, 0x2460a69c05a58125], [0xd73f326766c9c74b, 0xe66bf509fd185264, 0x3db0c2873198b848, 0x62f0f1157c62fee2], [ 0x0], [0x3401274c59d2cca4, 0x2460a69c05a58125])
+ self.div([0x8798a37166d417c3, 0x544522728b9441c4], [0x46549a17e014bcb0, 0x19f6c8e3e873e1a7, 0xc3e3ceb46963e292, 0x8ab485329b39419e], [ 0x0], [0x8798a37166d417c3, 0x544522728b9441c4])
+ self.div([0x3f530bec0ba717d3, 0x8d266cbbd487d3c4], [0x2099693172255721, 0x83be272166906b28, 0x346405f49684e861, 0x1694c556b36379b5], [ 0x0], [0x3f530bec0ba717d3, 0x8d266cbbd487d3c4])
+ self.div([0x366853d43fd74706, 0x991f401a3b08dc31], [0xc67e3113129581dc, 0x90890d423a3cdbdd, 0xc02de3686546dee, 0xb551412c98933e4e], [ 0x0], [0x366853d43fd74706, 0x991f401a3b08dc31])
+ self.div([0xad4226fc90220e80, 0x390bd2dd2724aeb0], [0x518f471d409ba617, 0xe30d29c417572235, 0x4334b5882e4be747, 0xc875a3e8ce5f8e68], [ 0x0], [0xad4226fc90220e80, 0x390bd2dd2724aeb0])
+ self.div([0xc9b55f28f540f39a, 0xfae5752ca6ab6126], [0x3260db6f890257e3, 0xa18cf8868105f592, 0x52217f61b18446b7, 0x9dae9e1f54f6623e], [ 0x0], [0xc9b55f28f540f39a, 0xfae5752ca6ab6126])
+ self.div([0x777e7f0c2103a0e2, 0x6ea00307d668744d], [0xc8139df18e521705, 0xfe47b18c3bfe7572, 0x13c175f33ed059b1, 0x960c42c0bdbc1548], [ 0x0], [0x777e7f0c2103a0e2, 0x6ea00307d668744d])
+ self.div([0xb9257cfb956b723f, 0x614c182c39db8b8f], [0xa785403fa257ffca, 0x50fc34955bef8ed3, 0x93507492b736cca2, 0x67bea983c0c8b87e], [ 0x0], [0xb9257cfb956b723f, 0x614c182c39db8b8f])
+ self.div([0x60033c55784d77ee, 0x4aaa447229a39265], [0xa15da7c75c82f322, 0x4f275f5508143f57, 0xcab952777687d86, 0x1b9f2d8bc1e7142a], [ 0x0], [0x60033c55784d77ee, 0x4aaa447229a39265])
+ self.div([0x3477f0e2b361159f, 0x6762884ca34f0a45], [0x4c203d552aecf535, 0x34b896aefa05976, 0xc9bf6c10231b40b5, 0x2538de6ac7fc571d], [ 0x0], [0x3477f0e2b361159f, 0x6762884ca34f0a45])
+ self.div([0x97215c01e93033d8, 0x5cf4e99d1a1aa6c6], [0xf8817cdfb586f70b, 0x89a56ccb7a4fba23, 0x8fa5b7ff036b65f4, 0xed605419b11d6812], [ 0x0], [0x97215c01e93033d8, 0x5cf4e99d1a1aa6c6])
+ self.div([0xfafce37cb61be5c5, 0x221f3a7555f4d560], [0x2881e1583612d30e, 0x7a87103050185346, 0xa1196d57b7eb8a2e, 0xe07f35a4fec38a73], [ 0x0], [0xfafce37cb61be5c5, 0x221f3a7555f4d560])
+ self.div([0x40fcc6eccaeb8029, 0xd3b8dd992c2b8798], [0x111331f306eb4b11, 0xb86f408472e0d1ff, 0x16e8c293fbcf2187, 0xc9eaf28417251309], [ 0x0], [0x40fcc6eccaeb8029, 0xd3b8dd992c2b8798])
+ self.div([0x33cd30854b6be2d1, 0x1b00339d6f18bf78], [0x4a69b357963f5658, 0x8095755c87e269aa, 0xd6bb7675edbea769, 0xe89085dbbb83950c], [ 0x0], [0x33cd30854b6be2d1, 0x1b00339d6f18bf78])
+ self.div([0xe39b8204de26a5ea, 0xaec1c91c9592e292], [0x31f063054562ad0c, 0xba70dbfc0683816c, 0xffdfe5221cff931f, 0x575153a9a94e37ee], [ 0x0], [0xe39b8204de26a5ea, 0xaec1c91c9592e292])
+ self.div([0x3df1510137691f4d, 0x8027c65e9de5cdbf], [0x916d5f5d439d576d, 0xaf4691bbe502e013, 0xf47145d8278f4b44, 0x66aad42197813032], [ 0x0], [0x3df1510137691f4d, 0x8027c65e9de5cdbf])
+ self.div([0xaa777d5934002ef2, 0x595075218ebf38c7], [0x116f2149d3941709, 0xa0bf750b35b902fe, 0xa3f6ba03edc836f9, 0xd3136210e3a73d9a], [ 0x0], [0xaa777d5934002ef2, 0x595075218ebf38c7])
+ self.div([0x2381ef2abb64eb37, 0x33796fdce3377893], [0x4369a63c23ad2f2c, 0x23c845c906ba5c6b, 0x2b34e4608b3982e4, 0x796399bd159cbb92], [ 0x0], [0x2381ef2abb64eb37, 0x33796fdce3377893])
+ self.div([0xee34eba8c49f0d18, 0x95bb86fa4ca869ec], [0x301bda533d7d4109, 0x41fb5fd20be16a4, 0x9eb1c7f175e470e4, 0xac070f38c864e182], [ 0x0], [0xee34eba8c49f0d18, 0x95bb86fa4ca869ec])
+ self.div([0x824c3fd8f1f89b8b, 0x43cac98531b10a78], [0xa3a81d5c6081be37, 0x3a4f42d8f9b12815, 0xa322323eae4a82f7, 0x3ca857a36edc327c], [ 0x0], [0x824c3fd8f1f89b8b, 0x43cac98531b10a78])
+ self.div([0x93aca1e3caecf4b6, 0xa1e05f45d88bd33c], [0xb971698122cd91fb, 0x515f547fe767a001, 0xcbc10a3b2273e3d, 0x44f3ffe3482a122f], [ 0x0], [0x93aca1e3caecf4b6, 0xa1e05f45d88bd33c])
+ self.div([0xb4afc3a8ec56a54b, 0xfa57fddc2303fd12], [0x19f537ef5c5adeed, 0x8fed8135be69c26b, 0x32075e5c50e146b1, 0x1783c5959d5fb61b], [ 0x0], [0xb4afc3a8ec56a54b, 0xfa57fddc2303fd12])
+ self.div([0xe0815a80358b5db9, 0xde7c34b898edd660], [ 0xefc150d4506dc0c, 0x3689936482b61c46, 0x482395d758ed37a2, 0x39aefdb2aa32cd37], [ 0x0], [0xe0815a80358b5db9, 0xde7c34b898edd660])
+ self.div([0x4b9622c483338cf4, 0x4ae43446ccdd1893], [0xceb710f86a243bef, 0xe5bfc7980985e6aa, 0x7e62362472622722, 0xea886ba2f4e3a2a7], [ 0x0], [0x4b9622c483338cf4, 0x4ae43446ccdd1893])
+ self.div([0x656015f11b47ec42, 0x98318225ddbf6180], [0x21dc315bc900a631, 0x939cbd4b68afeb91, 0x48a3291c7f83b36c, 0x93aa443a9dba3baa], [ 0x0], [0x656015f11b47ec42, 0x98318225ddbf6180])
+ self.div([0xdb769c229a662f30, 0x615ba54b88b14869], [0x4258139f54bbe85a, 0x587ae0a84b23758b, 0x8efaf52499c92e6b, 0x4e09b6b7842ad800], [ 0x0], [0xdb769c229a662f30, 0x615ba54b88b14869])
+ self.div([0xb4648b5d4b1b5804, 0x7590192c0c10d913], [0xa92011c1ea7db485, 0x3834e381d6900d72, 0x4530668f7b10fed0, 0xf1d6e52585ffb5d5], [ 0x0], [0xb4648b5d4b1b5804, 0x7590192c0c10d913])
+ self.div([0xcb6d4ffb7ea3fd5d, 0xd9b85a9c1ed1833a], [0xb9b7875c149521df, 0xd3811f8b56735e68, 0xa17245c34cb4bfe4, 0xe0e84a1a9e63679f], [ 0x0], [0xcb6d4ffb7ea3fd5d, 0xd9b85a9c1ed1833a])
+ self.div([0x1b6f87c896d92162, 0xbbbccf1f7331d8a9], [0x11e08e65bbaa1963, 0x6b0890fb05ec0b78, 0x2c83789c60aa963a, 0xf803218680afcd94], [ 0x0], [0x1b6f87c896d92162, 0xbbbccf1f7331d8a9])
+ self.div([0x7ad0a86bbad10f01, 0x24d5911d8d54d5bd], [0x1b48182c99f99d3a, 0x4ef22a55398ba6a9, 0x99067201f03e6d42, 0x29454eb52a94c5df], [ 0x0], [0x7ad0a86bbad10f01, 0x24d5911d8d54d5bd])
+ self.div([0xa0d1a2b7a747a6fd, 0x4e49dd11f7acebc3], [0xd7ded4aaf4154cd3, 0xe8cff21dff04c84d, 0xa9c25ce9c47e21a2, 0x5b03bd041766493e], [ 0x0], [0xa0d1a2b7a747a6fd, 0x4e49dd11f7acebc3])
+ self.div([0x60f96c39a6608424, 0x136b70ea95b02993], [0xd86d6df5ca3b2c00, 0xf8b52b299113c45f, 0xcaea319489482654, 0x843d15f6989205be], [ 0x0], [0x60f96c39a6608424, 0x136b70ea95b02993])
+ self.div([0x68e8dce41293f128, 0x8421c98bcf6c8f33], [0x28aef05dd717476c, 0x7d2ad2d867323a64, 0x4d683f3066222bb1, 0x1b5d03be65f4626f], [ 0x0], [0x68e8dce41293f128, 0x8421c98bcf6c8f33])
+ self.div([0x5d29aac91a0ce7f0, 0x281a607e6208e2a9], [0x896253bc960b52bd, 0x5dcceb7a555deb79, 0x11d417edc73ceeca, 0xb44b390a8e3c1756], [ 0x0], [0x5d29aac91a0ce7f0, 0x281a607e6208e2a9])
+ self.div([0xf9a718428fe89487, 0x926e89b828c62ed4], [0xb9292ee125992889, 0xc29e00fdb7953c85, 0x9fae332f67b84d4b, 0x5fcb655ce03a54ce], [ 0x0], [0xf9a718428fe89487, 0x926e89b828c62ed4])
+ self.div([0xa79e66718b4e137c, 0x1ceb39c69d3d7363], [0x4c37466779a4a94c, 0xd1baabff631fd17f, 0x889d3031ef0efc1, 0x32f40967b02af562], [ 0x0], [0xa79e66718b4e137c, 0x1ceb39c69d3d7363])
+ self.div([0xf9cf948122557e87, 0xdb99c4d366540931], [0x77b0999d4d7341a6, 0x96a684fdab54add0, 0x9bc8b0bf8faf7728, 0xafefca600d1e1a2], [ 0x0], [0xf9cf948122557e87, 0xdb99c4d366540931])
+ self.div([0x5d6cda4401fa520c, 0x6438511153820a9d], [ 0x10f2f3a60459214, 0xead0593ccd1a2a07, 0xfe8d2e4e62e02f8e, 0x2acecd6abbf27c75], [ 0x0], [0x5d6cda4401fa520c, 0x6438511153820a9d])
+ self.div([0xeabcf25d0f077542, 0xf13542622c9629cb], [0xace924fabb3b15c9, 0xb5f8cd768306a458, 0xce147d4a075c1b99, 0x8a29d7a6726ec6d4], [ 0x0], [0xeabcf25d0f077542, 0xf13542622c9629cb])
+ self.div([ 0x989dd26b5a5e32e, 0xb6eca5be31ad8912], [ 0x7961f82b2a0c2ef, 0x48d8bb9684f80524, 0xca0f97cc8b870201, 0x8e1af1964fdac926], [ 0x0], [ 0x989dd26b5a5e32e, 0xb6eca5be31ad8912])
+ self.div([0x7de0d0369f1feb56, 0xdc0a012f7ca75ee3], [0xfdf6982e22e340e1, 0xf27b9bcbf9ace83d, 0xb365990f9baee62f, 0xa60bb00f9d33975c], [ 0x0], [0x7de0d0369f1feb56, 0xdc0a012f7ca75ee3])
+ self.div([0x8d97ee5736d5c0ee, 0x29051dcbfa666512], [0x95bee76510779f49, 0x25f3066006d8ca14, 0x2554119ed064bee3, 0x44013778f0e2d8fc], [ 0x0], [0x8d97ee5736d5c0ee, 0x29051dcbfa666512])
+ self.div([0x1ffe1d1f110eaa74, 0x6b812ef8232d0d08], [0xe0a8044644a073b0, 0xb76c467b36ed4d30, 0xb1ce6cc7154d2bc2, 0xd6c736f7f80ca559], [ 0x0], [0x1ffe1d1f110eaa74, 0x6b812ef8232d0d08])
+ self.div([0x1a2c1b1ddfaa645c, 0x38e6b4c2747cbabc], [0xc461bb799ae99b07, 0xfb4f14798e0a5c37, 0x46c3aaec8e3c2e34, 0xcefe519268dabbb0], [ 0x0], [0x1a2c1b1ddfaa645c, 0x38e6b4c2747cbabc])
+ self.div([ 0x31d40232f16791d, 0x90a7e87e405f928c], [0x972c68a0fe77b789, 0xa9f45e38dd129525, 0x954a09fe00b1e968, 0xc628fb336f1e9fa], [ 0x0], [ 0x31d40232f16791d, 0x90a7e87e405f928c])
+ self.div([0xcdcc053665f93730, 0x4aad8ca1ee4b560a], [0x721fdc82102d882a, 0x2cc07d940ac99cbf, 0x134915df2d7a0761, 0x85cdc6553e653434], [ 0x0], [0xcdcc053665f93730, 0x4aad8ca1ee4b560a])
+ self.div([0xed439dd34ee125f1, 0xc89ddc5e7dad0994], [0x789f478bab3962e5, 0x7d8b2949341eb946, 0x34640279666ae1aa, 0x305eb8730d9e962e], [ 0x0], [0xed439dd34ee125f1, 0xc89ddc5e7dad0994])
+ self.div([0x759c3c9290f75529, 0x5a57eec8b556093d], [0x8d94f6593d911a71, 0xbe1fb355b3ec73d0, 0x9ee626407d26338, 0x7496a239b9d44275], [ 0x0], [0x759c3c9290f75529, 0x5a57eec8b556093d])
+ self.div([0xc3d85ac318666455, 0x4753f6dce8c86461], [0x180b33e006de2b48, 0x4b1be1d96f956ef0, 0xf54abe1a872a5704, 0x9bcaa71a00ae81ce], [ 0x0], [0xc3d85ac318666455, 0x4753f6dce8c86461])
+ self.div([0xc1e4e08fcaa41550, 0xfbd664382dd4ef23], [0x2ae9dede143696de, 0x59dd03e073e60051, 0xd945f437c3b6f894, 0xef05d85921c65556], [ 0x0], [0xc1e4e08fcaa41550, 0xfbd664382dd4ef23])
+ self.div([0xec3a5e1fd68312f7, 0x8b5db3f4941a0ca1], [0xee1eb7661d98be73, 0x3e6aa0d1cdd24e87, 0x9b448d17017622b6, 0xd20943b7bc0348e4], [ 0x0], [0xec3a5e1fd68312f7, 0x8b5db3f4941a0ca1])
+ self.div([0x5e31bba9f6af723a, 0xa164bea9f5c0f740], [0x4755b7b03ebdd057, 0xc614c84160135639, 0x8de682d8a3aa87bf, 0x571fbabd9d339ec3], [ 0x0], [0x5e31bba9f6af723a, 0xa164bea9f5c0f740])
+ self.div([0xdeef3702c58e834e, 0xce369b0ca1d8cb60], [0xd370181f6ff8c6b8, 0xae86e1ea42e649fb, 0x8cd75b4ca619641d, 0x84eafeb43e998b1f], [ 0x0], [0xdeef3702c58e834e, 0xce369b0ca1d8cb60])
+ self.div([0x856bf1fbbf811118, 0x3d897604d5b71e2d], [0xf7e00f2fdc95d66e, 0x5ea8a3026a778145, 0xf32c37ced4d04664, 0x581bf7c34ae978ff], [ 0x0], [0x856bf1fbbf811118, 0x3d897604d5b71e2d])
+ self.div([0x5a92f34641c146b2, 0x3e01596144941b4d], [0xe276d3b8d0a66a28, 0x4409f2f28d11c9fb, 0xbed089f02c7edba3, 0xf2ecb25c3b1ad0d8], [ 0x0], [0x5a92f34641c146b2, 0x3e01596144941b4d])
+ self.div([0xbffdf5c2f52f6940, 0xa5c6862c4de5a050], [0x4136641995f9a9e3, 0x203154e09cd14128, 0xf1edd77e1847ab21, 0xf14bcda81be8d3e0], [ 0x0], [0xbffdf5c2f52f6940, 0xa5c6862c4de5a050])
+ self.div([0x7fa9ce11a50e9351, 0x291cfea3da11424c], [0x5452022c1cf6d69f, 0x4054308f8d02b36a, 0x849a84b553369f81, 0x4be4e5c6ecec0b21], [ 0x0], [0x7fa9ce11a50e9351, 0x291cfea3da11424c])
+ self.div([0xcc999fdabfba26e0, 0xd86e42efaa6f0dc1], [0x181881b14decf0bb, 0xec416df34544cfa0, 0xf728be618d85bd32, 0x2cc30fc5f918224f], [ 0x0], [0xcc999fdabfba26e0, 0xd86e42efaa6f0dc1])
+ self.div([0x8739432c5619dc82, 0xe886cc921f74040e], [0x53c0d94cda2e04fd, 0x459b80158842641c, 0x705bfa39eedc5b9b, 0xe6ddff1cc3d6025b], [ 0x0], [0x8739432c5619dc82, 0xe886cc921f74040e])
+ self.div([ 0x3ee489c8b4a0247, 0x7fdd71b0309c433d], [0x9de6af2086ea24c2, 0x26bf1119b2c1a82e, 0x1fedd176fb2f8d1, 0x6b68af210b11b475], [ 0x0], [ 0x3ee489c8b4a0247, 0x7fdd71b0309c433d])
+ self.div([0x4eef1cbab700fb17, 0x5616120f3d2c06dc], [0xdedcff6fb26a927e, 0x34dd3e2a7681ff4d, 0x8c65801209423252, 0xb104aa757fef699], [ 0x0], [0x4eef1cbab700fb17, 0x5616120f3d2c06dc])
+ self.div([0x97eb1a6e60653b78, 0x50a6f8529b72da3e], [0xb0057e934fd07ada, 0xa0afe888bfd0caf, 0x14765ee5fe9a7986, 0x6e323c6d99fb17e2], [ 0x0], [0x97eb1a6e60653b78, 0x50a6f8529b72da3e])
+ self.div([0x8a3010f05f7780e9, 0x2640b09ddad992fc], [0x2148689918975b5e, 0xcb6e063bdf70bd83, 0xd7ceb2878f4ea3a6, 0x2b61f3a52bcd314c], [ 0x0], [0x8a3010f05f7780e9, 0x2640b09ddad992fc])
+ self.div([0x2e94bed3d310fd0a, 0x5bd25cac1e443a9e], [0xea0aae1cd5f7fa45, 0x8dd3bf3673c48c15, 0x14ad47b753929c9c, 0x8df1c07d006cfbec], [ 0x0], [0x2e94bed3d310fd0a, 0x5bd25cac1e443a9e])
+ self.div([0x423fb417500826eb, 0xaaf862bf991363be], [0x77d6390a3cae5ea2, 0x8bbdec496b795005, 0x898580e58639345e, 0x19e42b49a1206107], [ 0x0], [0x423fb417500826eb, 0xaaf862bf991363be])
+ self.div([0x804442cb45072d66, 0xd0e008e4c0425b8a], [0xd18cb6a31496c7a2, 0x3dcecf53237e9518, 0xc4a5669232e80b4d, 0xd686e8c1e5634eaa], [ 0x0], [0x804442cb45072d66, 0xd0e008e4c0425b8a])
+ self.div([0xd98a6665c59417ea, 0x1f68475281b3ba6e], [0x8f689cac91bd2593, 0x3013b611bfbf7690, 0x12ffdd70d12bba7d, 0x67f53ccdc19061c], [ 0x0], [0xd98a6665c59417ea, 0x1f68475281b3ba6e])
+ self.div([0xd401911a4eba802e, 0x91fda4f61f69365], [0x255e93b6289310a6, 0x31ce43a28398c5c4, 0xd57212bfb7fe05dc, 0x319e7bd428ae6c91], [ 0x0], [0xd401911a4eba802e, 0x91fda4f61f69365])
+ self.div([0xfa3cf1f42a0eaf17, 0x1eeae35614e456b0], [0x3b76cdb2b685fc1f, 0xa1d2a4e43f30e024, 0xee35e9a5e0e589b3, 0x9403ddca059497f5], [ 0x0], [0xfa3cf1f42a0eaf17, 0x1eeae35614e456b0])
+ self.div([0xa71fc6a536a4a0bb, 0xeaf6f3eebd9045f0], [0x2d69051f008ade03, 0x3d1678df1ba88f93, 0x8631ffb634a835d9, 0xf279dd81d170f5f7], [ 0x0], [0xa71fc6a536a4a0bb, 0xeaf6f3eebd9045f0])
+ self.div([0x9d6b591d85fa6632, 0x6aac86b0472cc4b5], [0x609f74d0aa3f61b9, 0xb11961350f4de5e, 0x8b23f8d6a1534c0c, 0x73b08ef69b328d3a], [ 0x0], [0x9d6b591d85fa6632, 0x6aac86b0472cc4b5])
+ self.div([0x383cb265b88ca257, 0x9cb6af2f773c1045], [0x703fb45b2cf2f934, 0x250e3129c7bbf633, 0xc878875f1a0a3483, 0x883683542e776ff0], [ 0x0], [0x383cb265b88ca257, 0x9cb6af2f773c1045])
+ self.div([0x5b23165368f09ea4, 0xb51d89422d491400], [0x7f678c1b13906384, 0xef9cd9f1f7543c87, 0x67cf9afb812ec4ed, 0x2ea4ae5c811c0d02], [ 0x0], [0x5b23165368f09ea4, 0xb51d89422d491400])
+ self.div([0x95c473d240d4e942, 0x80ad9148a74cf2c6], [0xc4a61a181b4bf175, 0xcdb366b89e48af25, 0x8d066a112f9ef508, 0x180065dbb6108c00], [ 0x0], [0x95c473d240d4e942, 0x80ad9148a74cf2c6])
+ self.div([0xac1166a86a22422a, 0xa907ecbb4038608c], [0xe02f86f432afdce5, 0x3d12322d38673a38, 0x137bd3ecd304fd7f, 0x39efea102d653fff], [ 0x0], [0xac1166a86a22422a, 0xa907ecbb4038608c])
+ self.div([0xec834e8983409838, 0xb82d76743b19cf50], [0xca181efd1dc6d86c, 0x1b652425cf8c8bbe, 0x122c5d438d56e23e, 0x6faaffe0b7d0a46e], [ 0x0], [0xec834e8983409838, 0xb82d76743b19cf50])
+ self.div([0x7f3d26fb0d32477a, 0x98008b1b93fbbde4], [0xcbf04cbc5adb3b46, 0x3de0c1f5e66be94, 0x908a666dfe2adb2b, 0xc2d09161955b9376], [ 0x0], [0x7f3d26fb0d32477a, 0x98008b1b93fbbde4])
+ }
+
+ func test_div_3_by_1() {
+ self.div([0x586207c95658dd33, 0xc38e1b9d8529341d, 0x59e3504838eb0ef2], [ 0x447c4b006b4e32], [ 0x14a, 0x60797754a0a907e0, 0xfe66f0c37e4fb8a5], [ 0x17e9f4161fb8b8])
+ self.div([0xaa565370aeb29d57, 0xded6123f137bf33f, 0xed8ae9fb0f453a41], [0x44f4ccd939b341cc], [ 0x2, 0x78606f14371c679e, 0xc8fe95d32a8b58d8], [0x2eb6b2988fa39621])
+ self.div([ 0xacb2cab057b0b65, 0x816f15f8eb8f5a24, 0x9409aa464e0e4e85], [0xb84d3fdd77c06bdb], [ 0xefe1f4b4536aa6a, 0x7ed91e940cdad7e3], [0x842d05cc675bbe54])
+ self.div([0xa7e2f33c0add75f3, 0xe4b2fd7cfc276c20, 0xc298733d1a0b234c], [0x62a33305987c12b1], [ 0x1, 0xb3b9edbc5c7a589c, 0xa3493b31c2e1bc9b], [0x4b5008c719a0d621])
+ self.div([0x5302352c84b1b497, 0xa6dd8404b0e71bbf, 0xc1cd9bc3ea5dff72], [0x3c6c63ef1e6faa09], [ 0x1, 0x5fb039c66380117c, 0x7254ef9f2c065a99], [0x2500e6b8efa43611])
+ self.div([0xc31cf18cd638631f, 0xec5ad3796e4a16c6, 0x8b01f2d1ea66d805], [0x667131e253bcad39], [ 0x1, 0xe794f56e3db90619, 0x66003d04cbe66293], [0x1ef28709c6898e4a])
+ self.div([0x32b44081eb12f800, 0x6c6267022537fc8d, 0x3ae1353e9b1539dc], [0x4349c866b5adc779], [0xc0e7c09eb7bf20d9, 0x1027bc7d6c717eeb], [0x13c1ed9933f88fc9])
+ self.div([0x8fd12914df1c08f2, 0xb1b7d3ffc6e94f87, 0x45a41ff50b7fa2d], [0xb4153a249713d71e], [0xcc7212e6c322129a, 0xa2edd038a59e2477], [0x8c749f4931bac33b])
+ self.div([0x32f850e3ff4d5780, 0x1b24920fbe6c1e18, 0xada69209a32aa584], [0x1e4f81cd16968a55], [ 0x1, 0xae7cbcccd608b338, 0x76103f97a0d2476b], [0x1aea4ef7d82740fd])
+ self.div([0x80bde616f0790a65, 0x648e348f7ecd9772, 0xfea5ad45ced25eab], [0x467f670f2f668d2e], [ 0x1, 0xd380dee93a673de3, 0x25cf565540286492], [0x20d5988127ffe26f])
+ self.div([0x280481b7f4904572, 0x451c8d1ab0c09637, 0xa8f84e99b6f71d7d], [0x60eb84d1a0b8bfb1], [0x69b35def2a18a045, 0xcfeccfaa632f7010], [0x28a4ec98330eb26d])
+ self.div([0x3edbaea066906e5b, 0x4843e2935c60ffef, 0xb653e660eab3b2f0], [0xc48b32bed3e71c7a], [0x51df8fafeb79fc78, 0xcb6d579831b83b81], [0x5ded70620dfe3b76])
+ self.div([0x46c29fa946b02087, 0xfe2a42c0389f9f47, 0x342319f250040ec3], [0xc9119b28c354652b], [0x5a17785b5adcd800, 0x56e9614a511db819], [0x799c489283304590])
+ self.div([0x23bb32c6d6e80fa1, 0x2e48baf0b2ec24a5, 0x1c609e4a9280d35f], [0x55c043aee3cf5d36], [0x6aabecd0e3549038, 0x51732a5af7ff1074], [ 0x29165556fed36e7])
+ self.div([0x6d57728045d7513b, 0x7570119d012e14c4, 0xeb1de7838153e93e], [0x22aa4549e9f23118], [ 0x3, 0x277b4bd6df218fd0, 0xbdcba74fdc218cbc], [ 0xecf807a4c86bb9e])
+ self.div([0x505e9591afce632a, 0xbd70203328919e22, 0x1b9212637f515a24], [0x42d95f0f7611b818], [ 0x1, 0x33c6c8d98504b624, 0xbccc0e8867d960c6], [0x12956d50d43bf794])
+ self.div([0xb670ec4151a1e803, 0x27cf5e350721812c, 0x2a9bbe1bc1f47cf6], [0xe6d17810e75d63fb], [0xca5853bfa54f6d19, 0x2cf08a15cc96df60], [0x2053803f0bc559d6])
+ self.div([0x1ef4bce815e7a544, 0xff225abfe2fbf36d, 0x38fbadaddd653485], [0x4b6f39ebe55e6c92], [0x690df970aff5dea0, 0x6788a82d03232017], [0x27669ff7e6613367])
+ self.div([0xb8ece7f479fa25e3, 0x8f28b6e7bc376fe3, 0x7ca97df2d67369ec], [0x122e270b3c8d8528], [ 0xa, 0x2bf83bcfe25d1657, 0x42511ad871b2115a], [ 0x3b7090ce90af1dc])
+ self.div([0x5b0b2773e721b124, 0xd51c73e652791ba5, 0x967ffd50f9c2f439], [0x168687c60ff4a089], [ 0x4, 0xab34f6b94866704, 0x37bc8070632a9591], [ 0x9b5dab13d4a49a0])
+ self.div([0x7d6b03ee7e3b2392, 0xf273d00d0f7b3dd9, 0x1431df2fd5b396a5], [0x444f9af04e58fbf6], [ 0x1, 0xd6033dfd0b2d25fd, 0x8a5948e8c8100bc2], [0x3bf4305eb4111439])
+ self.div([0xed9d9978351f74ca, 0xabe68d7cf43a0465, 0xd9a63492a283a73f], [0xa953c85be0b3ffb4], [ 0x1, 0x673e261bd26d0860, 0x2ab212e7b4e82dc7], [0x947cb85107853e53])
+ self.div([0x833f4562d55e2d30, 0x9720f82ac01fae3c, 0x5aedb3b4dc93612f], [0x9443830133c63445], [0xe29e48a22f3a08b6, 0xd8c6f686b8efb763], [0x617eb880c324d780])
+ self.div([0xfa9b440f72a90384, 0xc491c36bb5d31dad, 0xa8c45312ba00dd1d], [0xddc883115847ecb1], [ 0x1, 0x21452626fce8b820, 0xc90863792f505958], [0xa8961fd3e9adf745])
+ self.div([0x8777271415baa0bd, 0xcc93dd12507aa2e5, 0x1f1567b476ad8f19], [0x924dfcb6842df00f], [0xed08aaecf85eeb7b, 0xfba9f5e46af8cc48], [0x91aaa8c7e9ee16e1])
+ self.div([0x47321673cd917a58, 0x88b518bb50761fa1, 0x1be4cd0cb9e408b3], [0x1206e06035b6fcc8], [ 0x3, 0xf30d38b7eb130ac9, 0x7d77435d2926baa8], [ 0xdf3294f874d573])
+ self.div([0x170024d35505a9ba, 0x4431aa964555e6cd, 0x2bb26e1a6642ca84], [0x5d0e9ab362633ebb], [0x3f46499eca8f8cbb, 0x680660dada93db07], [0x1abf30618b811a67])
+ self.div([0x54fe976414f72100, 0xebd6a9ffd8fb65d, 0xc679bcf7aaff643d], [0xa0b08f119622652c], [0x876853307fb3d5e9, 0xda6c3df68b114bca], [0x96d6589b844bab85])
+ self.div([0x8f5ccfa314b64185, 0x654cd46a66203820, 0xb1de610820630354], [0xf8ef8f496016b2b2], [0x936e4b81c6cc9884, 0xd378f2d82b81b900], [ 0xab214f3c78e6154])
+ self.div([0x75044d9596d4759b, 0x698f9fe69874d966, 0x3b5416c2d194b7c], [0xf66a5ab31bc09254], [0x79917b1541692832, 0xa06ef76e57479da2], [0xbaa6f3d462332e54])
+ self.div([0xbe08e59aea18c0d4, 0xf5b34b2c5f81dcf4, 0xbb4a42de5bd52ac9], [0xcef3d4fb067cac5b], [0xeb12a3393729150c, 0xe8ee4037f3c51a43], [0x5d09e96afcabd0f8])
+ self.div([0x4dd493adc8e2b0b5, 0x766e5d85f0576848, 0x803b524f660438e2], [0x695bfd2843810d0c], [0xbd1c56c8608b0e73, 0x69de2dae58b7d275], [0x471effa43bc16a66])
+ self.div([0xf8ca4faf18d7892e, 0x6bda78e4bd2c49de, 0xe286f45fabadd404], [0xfbd685b8d96db7d0], [0xfce6e50a43d6f59d, 0xfd6b951946513396], [0x3f9cf77560f5b024])
+ self.div([0x99686204b3210840, 0xb2a04e49cf91e4d4, 0xf71ddcd1b6404e07], [0xda400a80e2458a73], [0xb3f12aadd178a91a, 0xcfd3a4b4fdb56aa], [0x7f95f2502a2ebba9])
+ self.div([0x1188479c2fdf165d, 0x99ead68e2d80f986, 0x6835960be0f6238d], [0x7e05e9fe28729a30], [0x239d5f754b075ba7, 0x98748d3a10b3f3ff], [0x1d5470d7fee2fdbd])
+ self.div([0xf0397b7be66e2e38, 0xb46cafc256880432, 0x33363133c9b74513], [0xbde510b83e949feb], [ 0x1, 0x43d9acdae1220cae, 0xb90dabd91d822345], [0x11cc5a32c57509bc])
+ self.div([ 0xd4f40032042e3e8, 0xf0b4f9cd811e2ef, 0x66515e432e0d33], [0xbc22e547fcd9bef4], [0x121c4c4d0dab33b3, 0x450a9ee0219046b], [0x907b5cba9f5b6d37])
+ self.div([0x459659428b275642, 0x9a590d19888c4b66, 0xe0eb02acc23cfb6], [0x9b8a2c002058ca5e], [0x72884f6f0d7c3ae1, 0xcb04b2b0a7b2fcc1], [0x6d2a7ddafaa2b6d8])
+ self.div([0x113bc95fd6c73d2f, 0xa0a5a3198a7e11ff, 0x1a622ffe11b3d916], [0x9e3cc7b09545ed1b], [0x1be17c665a6cb8c7, 0xa72e0fa4ee92437], [0x68441ccf22c31c49])
+ self.div([0xe5bc20e217581367, 0xf877d42c3e3d9c89, 0xfaced3a0dc565445], [0xbbd7aebdc162bfa0], [ 0x1, 0x3917be9a6c3aa226, 0xac1fe47875ca9c86], [0x50fcadf621a08685])
+ self.div([0xbece5544c8144620, 0xe5c13ad36be4c90e, 0xd70ed3a6fa648c4b], [0x2594aede5e5c4eed], [ 0x5, 0x13c4bf7ed5b7982a, 0xac48ca5cbf839e77], [ 0x8b7c4c0ee7e9620])
+ self.div([0xb28b5ba43978e379, 0x438bcf70e1eb3426, 0x4cb5e074287e7c81], [0x5660dbeb36f4b112], [ 0x2, 0x112724e164d472c1, 0x60b6d76a73bcef4f], [0x2841b3dea27409f3])
+ self.div([0xa199b61805f50a4c, 0xe59135f6f027f8a2, 0xa61fa8ee3c8086ae], [0x9806e2ef3c3c2316], [ 0x1, 0x101ef980e4973384, 0x314c184305fb2733], [0x1be186b03e9b2f4c])
+ self.div([0x906b0bf39604b5fe, 0xeafaf48a4dffd7a, 0xae9cf907aeebe8fa], [0x1a2c6250fd3b078d], [ 0x5, 0x848b4a1a176437bc, 0x5683542a07872e22], [ 0x61ab44d9b5e9240])
+ self.div([0xe3922a1803666761, 0x7e30487602d67b91, 0x798ff9ef90665849], [ 0xafdf19b4ab188ca], [ 0x14, 0xb4111c6118822ee3, 0xbc78084b9b312fe1], [ 0x716f0c0d59608bf])
+ self.div([0x489ba000cf108ae5, 0x6fd4633d0eef5d78, 0xd351b67744e2ef35], [ 0x17a24256617f0e3], [ 0x31, 0x27be76fa28443568, 0xa4a9fa0ca025f832], [ 0x103bb9a720afadf])
+ self.div([0xa4996bdc217b5f44, 0x235d546c73d85002, 0x98db68118e381712], [0x6574e91aafe89aa2], [ 0x1, 0x9f5302b41ad9b656, 0xf6441317457052b6], [ 0x79490c0ac7243e6])
+ self.div([0xb2f63c9b8978d50e, 0xafa126b5d1e22448, 0xe109f9c361e97ee0], [0x6126cfc8c683a72c], [ 0x1, 0xd7931d10f26206c8, 0xb71ba46b63bdac65], [ 0x75c91f02c2afa84])
+ self.div([0x66b97f781f8fff31, 0x40ffe965a7218a0, 0x6990da6b18d69ed5], [0x26286c721ae38b21], [ 0x2, 0xb12cf5e20e27007f, 0x9d5a48d39b0e3f6c], [ 0xa06d3c82acccde9])
+ self.div([0xd67086de34ec913c, 0x7e6c65e168f43fc7, 0xbb8e8e83cd6da97a], [0xf9b967e25f295435], [0xdbd41e330c3e0306, 0xd7e01f3bd0fad4b5], [0x1ff54ea9ffb73c01])
+ self.div([0xadb6f51988d87d54, 0x4d0b19629d5f0ee2, 0x8a37b1f92cd472e5], [0x324a3ea2b461b0fe], [ 0x3, 0x744a39c6d3945860, 0x6dac28bb1900ce18], [0x199161bed93f7715])
+ self.div([0x9d462496a8850e64, 0x7e448a72637e9a64, 0x5388d10955f06cdb], [0x962cb3d5720f857c], [ 0x1, 0xc1a288bb682517f, 0x17943faf41000075], [0x64feebd3b8d86b2f])
+ self.div([0x93e8968334d21cd1, 0x7346141590455212, 0xa4228d3b69d8344], [0xc8445c842e643483], [0xbd120c04ff7eb94e, 0x1a89a1f5ed3ee2], [0x664e7e7d81286d9e])
+ self.div([0xab9da11b7dbcab36, 0xef2b64d6251c8499, 0x295fe56dcb28bc23], [0xb026d9281d699864], [0xf96868cab13dc5c7, 0x8181b6833f68731a], [0x6c93cf91da5a55fb])
+ self.div([0x2fa8f8de3e58c5cb, 0xe5caaa97e315fe5b, 0xc5ee0436f54d6399], [0x293612fad9fd2653], [ 0x1, 0x280f3661640cd75f, 0xa18daa573d0ba8c8], [ 0x14fbcf719cffac1])
+ self.div([0xebd0b17c4c3a1163, 0x26a1042c13b5c2fe, 0x6565c63639754753], [0x7fffc86feb8edeec], [ 0x1, 0xd7a22fb32abaf736, 0x524e1183e68964cc], [0x1eed2a81603b7343])
+ self.div([0xfbeb8862efd724a2, 0xe46e61e46e154c77, 0xf03aa50475b08ec8], [0x22a7ee4a7a94d882], [ 0x7, 0x44e80666c90f2dc6, 0x6dc0f9d5b6b5995d], [ 0xe117d5f784e358e])
+ self.div([0x1cf0fac63d1459cc, 0x452a247290ac51ef, 0xe097db29986b5f0c], [0xdead49aa0d6f7ffa], [0x2145b773a46969c0, 0xa8a021070d6eef56], [0x370f303f4d0ffb10])
+ self.div([ 0x22dd32ccdabeea0, 0x8a3a3edbaccfc0a5, 0x10056ca3219d4026], [0xf190fcb924cb2d7a], [ 0x24f27b255c61782, 0x67778e699e9de9e4], [0xae598b8b4072b57e])
+ self.div([0x1b774284a656ff90, 0xa8263ae585398782, 0xd1d67809757a35c8], [0xcdd3ef9b947e07e5], [0x22292ef46f7f2d2f, 0x893b101a53aadf7e], [ 0x3466d9a197fd812])
+ self.div([ 0x90302b714f9738d, 0xa06049806791e14e, 0x8e1d85f8cea5be0d], [ 0x182128c8443e667], [ 0x5, 0xf9c03f9934699307, 0x173599c6ff0a4b9c], [ 0xa37dc6b7bf2a49])
+ self.div([0xbfb77aac3997ef1e, 0x8ea50045ad81d108, 0x8977525f06900be8], [0xc01effd9eecf2c12], [0xff760f5dcd37e7e2, 0x798b5300126aec9d], [0x448038af116d6cde])
+ self.div([0x8492069447359954, 0xf6f51c1f864abfba, 0xf44021d70944bd3f], [0x4a963d1b93855cab], [ 0x1, 0xc7036e8cb368c312, 0xa06c5f3fcbca74ab], [0x351e66c759445b06])
+ self.div([0x9fd240ac07681316, 0xc31a5ea68c1bef60, 0xcda2336e16cab116], [0x170e563c19b23f99], [ 0x6, 0xee8f438c3b7db571, 0x36eceb32424a4714], [ 0xe5b8acdd1004a22])
+ self.div([0xc993fa6d34c26816, 0xfd35daf3673a7390, 0xed8dc6d3a6a55d1c], [0x3ed769ce99703a46], [ 0x3, 0x352d62b9a7c96b12, 0x6d402b78f189f175], [0x26971639ca08d51e])
+ self.div([0x1fbe14ad0c187c1d, 0xb2522699ee1c57a9, 0xbe1e1b0e14745df8], [0x57850ab2b5ad1158], [0x5cd93d9842a109cf, 0xaaf2562f140a552], [0x30fbca6f28d717c8])
+ self.div([0x3efa5d2b605624fd, 0x7061fe2714b04fb9, 0x99a878a70ec8d78b], [0x18191b98eec6861f], [ 0x2, 0x9d07f8315104a31f, 0x2073ae3814ecfeb4], [0x107849f0218bc7bf])
+ self.div([0x7aa6821c99f55dbe, 0xcaf20b692d3b1fe9, 0x7b2cf4f166e06381], [0x3ca1c0ae779b5672], [ 0x2, 0x5dae506467630d0, 0x599bf257190c303d], [0x2c1d697a974f6a57])
+ self.div([0xfa7c8be862c23b7b, 0xa3ecd588b5b89120, 0x8b237123d528a3b], [0x8b8a7b1f906b02a7], [ 0x1, 0xcb8a0f98d57d60d3, 0xcfe8502839c50f41], [0x44fb8a90137c14d4])
+ self.div([0x7462fe82c83a7706, 0x6830bd37e3006122, 0xcfe96d7b81c75126], [0x3d28cd369479e399], [ 0x1, 0xe72b6df76c43cefc, 0xd049d5e93dbc1827], [0x320f843fdc834cd7])
+ self.div([0x19d6c98090019028, 0xcc5453a8e47d9495, 0x10059e91b3030c17], [0xc9872be0a85c1f10], [0x20d2bae78b8138d1, 0x5a1c5d5900ed9c65], [0x8ae8ee7e61ed0ac7])
+ self.div([0x832c3f7ee9904b46, 0x791a933a8d342806, 0xc1d894cda576679b], [0x8eec81ba7ae96d1b], [0xeaf3b77315e5c37a, 0xf954a4e6e08df7df], [0x69ed627aa3fc5016])
+ self.div([ 0x8596c2690b36ea7, 0xc245ef692222f9e8, 0xcff96f29f8a2486d], [0x75e57ef6b42c8ccf], [0x122131291843529e, 0x152339d42a69ddc5], [ 0xf78d9fb25e43a22])
+ self.div([ 0xd0a6ea4ab060e2c, 0x7aabcf1ae97b8c37, 0x789cb88e15119d9], [0xcd05cd37a3dabcb3], [0x104882172236bcc3, 0x642cd2f4e35e1b7d], [0xa84be8d5cae21572])
+ self.div([0x70908413f3b85bc5, 0xa152b457b6bc6cd6, 0x7fd14ce2f455f435], [0xc034e4d33b52f413], [0x95ecb7fabac71d8a, 0x81f9a9fce5402e7f], [0x5951fca99a9374c8])
+ self.div([0xb53b159c63c3b4ab, 0xd2a15a18d3d66d9a, 0xadc380ce5c46a9e8], [0xc2b8a41a85cf378e], [0xee439c1562f6cf7e, 0xaf4704a3452f10e], [0x6bf46cae5428f224])
+ self.div([0x61ea3d43418155a7, 0xa0d72fdf6b2cdb28, 0x9993929097eb28d8], [0x37b048ef1ea2b443], [ 0x1, 0xc21d40c3cf1b80ab, 0x2e268816d9e7d8ba], [ 0x7872d9b9a26a82a])
+ self.div([0xde75223e9f0e93d3, 0xb8819764e0663064, 0x80447a4494eb879d], [0x6a3fd32d62bcc8a4], [ 0x2, 0x17fecbd0bcd0c0fd, 0x7e6198b71d9da868], [0x6283294af3fa64fd])
+ self.div([0x3e39e007d639bf18, 0xecd0641326e1fd7f, 0xdf48813af5975692], [0xf44df8056ec589e3], [0x413479c8614cb7a0, 0x44bb9a7be80228f2], [0xcfb88237958985fc])
+ self.div([0xfc99fa7ccff7efa0, 0x39c16ff259f3a160, 0xbeb01951c84f307f], [0x37a97c765e52df82], [ 0x4, 0x89c2b17e6e7abea8, 0x46b87bb035100619], [0x317dfeb8beda50cd])
+ self.div([0xd2f348921778a2fa, 0xab2a5f8f6210183c, 0xdcfb2b420dfd7b21], [0xc51c00cef032f071], [ 0x1, 0x11f9e9178e979ba7, 0xb825b70b01a57ee2], [ 0x9257ab884d8995f])
+ self.div([0x15337c50470c9dd3, 0xbde8c2ff7970a671, 0xd6790c9dd4068844], [ 0xc840962ed17164b], [ 0x1, 0xb1a6dd4f670852b7, 0xa4790634149826], [ 0x149bc11f380b122])
+ self.div([0x2ca5f2ddac2cd3bf, 0x5ecc75920382d3ff, 0xb79ef732d70c45d4], [0x1e75124513258cd2], [ 0x1, 0x77471624a7943ba1, 0x294aaf36fa9f0296], [0x1b64e66fc9841ec8])
+ self.div([0xa3d6adecaf4a75b7, 0x933098063e1aacdb, 0xf717b160c6e7541b], [0xd7a8784c5444adff], [0xc27ca7906ea842fe, 0xd490d58fc73cf62c], [0x38922b7d4b226247])
+ self.div([0x5710924bfcd06fda, 0x3efd3a8df8160a5b, 0x58fc273c77e1bc08], [0x64dc01b44cb783ad], [0xdcfc8ece6e360d5e, 0xfe1c703052f823b4], [0x39e1d39476407f64])
+ self.div([0xb128cada2c0be8f3, 0xd424a99121a516d7, 0xf3a82787df2f403c], [0x27bf3fcb4efe624a], [ 0x4, 0x7508f1cdfdd58b02, 0x485d4ad3848068e3], [0x1fceed4c2eb0089e])
+ self.div([0x6612a421743e1dc5, 0xe81457cbb84c56af, 0x72d1ec607ceb0cef], [0x522e7dada0fabd00], [ 0x1, 0x3df65076db286f23, 0x852b77494fb8b747], [0x4e41f99ac245a1ef])
+ self.div([0xe5164f3e74b908de, 0x82866d0d1da34db8, 0x7cab40fb2b237864], [0xf3dccb2425ac65e6], [0xf07d41133a9097e4, 0xb6e3cd061a2cea11], [0x14b32bc63604781e])
+ self.div([0x8ec8045e3ca6c38a, 0x3805b282c54ed1f3, 0x26a6cbf7400e8d01], [0x48851e443d66d09e], [ 0x1, 0xf806d9aaa64ff144, 0x997e4a4c872e30bd], [0x2b76ccadd5a4e85b])
+ self.div([0xa6a4f5af4d96d310, 0x431d40c9272c29cc, 0x158e30faae35db2a], [0xe2913adf6949eba0], [0xbc4aeb8d20608a00, 0x9437e9514daf0820], [0x10f376bc033b672a])
+ self.div([0xc121b1cc2ca68808, 0xe93b18669bf8efeb, 0xbff24bcc1f27b89a], [0x4c9ff613a75ff5a6], [ 0x2, 0x853e5dbe430bf7ed, 0x54df85ae4417c51b], [0x2d0a7c3976161218])
+ self.div([0x3a21ca93a70ec752, 0x430ec78a3d98cda7, 0xa7c9b621aebba257], [0x9c91f1cd7ffa02b2], [0x5f0c7aa2b2c86af8, 0x13ebdf8a325116a6], [0x7cd66d4b981096eb])
+ self.div([0xd5417d2addf01257, 0x20d970659b30bdc5, 0xa431212e3d2b5726], [0xc669fee47d6353a1], [ 0x1, 0x132639931065cbb6, 0xe5726a61df5eb6fb], [0x37f8dbafbb35e24b])
+ self.div([0x94c39b782a011605, 0x2a4adee744078027, 0xcc92ee4e268a9044], [0x1766aba0085bcb99], [ 0x6, 0x5b6e5e06f83ff3a0, 0x793947bcc6b95867], [ 0xb35e0e0c40e0db5])
+ self.div([0xba54695d09bc7fc7, 0x5114d7d392c886b3, 0x8a5b065733ccf9ad], [0xae621592dc823d52], [ 0x1, 0x1189b8c6be4a3b14, 0xa26ecc487d4bde05], [ 0x14e7616f30eab13])
+ self.div([0xc26bc753c727b143, 0xa24e586a05e956cb, 0xe332bdb74f59ba04], [0x16e60630f778b134], [ 0x8, 0x7d94571aa52889df, 0xd391ae31bcb42411], [0x13e38bb71edaa590])
+ self.div([0xf5fe9ecfda8ca793, 0xeb71ffa98a19b3b1, 0x998005c2fdcf4879], [0xe657146d0a0eb792], [ 0x1, 0x1165fad05c5ceee8, 0x7ae9a55a36c69fc], [0x2472ccbba66fb2c1])
+ self.div([0xc422b1e6efcd0085, 0xe4d053f014b8775a, 0x7f3385692e4f8a52], [0xca68565dfbe70342], [0xf811394d0dce82ae, 0xe4f531e6817a5e5c], [0x7dedf51c04a4229a])
+ self.div([0x59fc27cb441d1630, 0x292023c483b79790, 0x9035687546178b36], [0x184f8d10bf96c440], [ 0x3, 0xb39225d668b7ac58, 0xf55c316a931c6178], [ 0x3a1e655200f4d36])
+ self.div([0x8d8b032d04d15289, 0x7780e5d94a1c844f, 0x25769e00fc8274f1], [0xf82a3343fd3d9b85], [0x920309bdf9440412, 0xd5616aea8f22c500], [0x4f6c0680a12b1bf1])
+ }
+
+ func test_div_3_by_2() {
+ self.div([0x141fa875e92152d6, 0x21d7b24784cf5423, 0xa48770f784d20223], [0x18fb82cffec25371, 0x94cb9de0a96135b3], [0xce36017a9882686f], [ 0x82248ab82497adc, 0x6027b23108f50186])
+ self.div([0x890d541fb7a05f3e, 0xa787fa2713f3fdf3, 0x83adae6611046827], [0x1d2f3f08c84671fe, 0x70efd49a470fd364], [ 0x4, 0xb2302e7c52937ce4], [ 0xc23d39d95c337cf, 0xd5595e56b21bb317])
+ self.div([0x1fbee049dfa2f77c, 0xb31fd5ca10d92b36, 0xec237081b576b9f3], [0xcca6cfe4dd3726bc, 0xf799b4ef569ae334], [0x27b5f605e8c8254d], [0xb6ff99ed1d5c1e83, 0xe32afe13a569df4f])
+ self.div([0xe6789cd4d1f37449, 0xd0e490ebb0b55548, 0xee91dc9756533367], [0x3d58c9dd73030e3f, 0xe6bebe71beac952], [ 0x3, 0xc1c13f0e888c1617], [0x250394fc0c1339c8, 0xac2d9e97fe161109])
+ self.div([0x31cba5c725d57543, 0x6682bf7cd1a25bb4, 0xb0e091d4e3a7ebf8], [0x7338da783bc86f6c, 0x2ed7c76451c616a3], [0x6ea2ad2322c55d30], [0x6fbbc7842d3c8ad1, 0x5965419686db7668])
+ self.div([0x2355a8d2de933213, 0x8ba49a5be44f6509, 0x16508989f1c939f7], [ 0xbdb992ceda76643, 0xbbef842c7ea9796d], [ 0x2, 0xfad822914ca17e2c], [ 0x2bf943002091592, 0x6a6bb22e0957b53b])
+ self.div([0xeac914a272d00f64, 0x52cbe2edaa3598ce, 0x95ad125b425f5f3c], [0x32a2a50ba244a5bd, 0x6714f3e810cf1297], [ 0x4, 0xa304c448cff4a101], [0x20f15df0dea1f77a, 0x2e96e00325f355a5])
+ self.div([0x40711365e5070d42, 0xecb223cf576b8642, 0xc3fffe84fb4d09e0], [0xc4c29d605a7ce11e, 0x78ce4584d55e613c], [0x53d7f3350552e913], [0xaf15792600b514cb, 0x5279a9e8ed94366c])
+ self.div([0xff2a357d55a86066, 0xdf3239e1014fd44a, 0x68fcb3da704088fb], [0x7c5769885323f944, 0xf24a15c3898873a5], [ 0x2, 0xd586b189a63fd47], [0x44c808355b436a17, 0xe4bb57e5764f6538])
+ self.div([0x60a493eed96c8fb4, 0x8611720727ba6a57, 0x240b0df39efc63dc], [0x4d560aceb12c4d65, 0x9e142564bfe7548a], [ 0x1, 0x3fe8e956ae19058a], [ 0x178515948bb2598, 0xd075f47b9a281f78])
+ self.div([0xa7c0793070492995, 0x988c25da95fd1546, 0x4f1b7413f86de301], [0xd932978dc8de2c82, 0x71e42c8615697341], [0xc5b881e35ef8000d], [0x3f08a2c237e82017, 0x2d76c7285d1b08b4])
+ self.div([0x9e2be7b4ffc7d9cf, 0x76accfd9b8a54170, 0x6992e110511e8258], [0x21d3cd4397e13eb1, 0x7f43d7a2ec59d11a], [ 0x4, 0xad0448dcc3667615], [ 0x6ba23a4fd1f54, 0x78437f5969025f36])
+ self.div([0xdc8cccb9626ba31d, 0xc83f12b862216803, 0xbe933e6466150cc8], [0x4c564170317334ae, 0x8bd526538ccebe47], [ 0x2, 0xe3a050312a3a7172], [0x3927fa396c9efd7f, 0x8f4cde62adf0fa2a])
+ self.div([0xb0b5d6e882a57b34, 0x6fc2895a69315e7e, 0x615df35a0cc8707], [0x85173241ec049c5e, 0x1dd0347b996fd620], [ 0x1, 0x53e70e485175f643], [0x2055f93f2a236ed5, 0x3215e18e0424bca7])
+ self.div([0xcd9774c85d85c53b, 0xeacb02ee747e13cb, 0x325be2def64b8f33], [0xea29bb15956de6c2, 0xddf76431537a6bac], [0xe0c3a1087331def0], [0x9ff59f9e59fa46c1, 0x1e0bac0faa3b75f3])
+ self.div([0x6faa3843b13a63d7, 0xc14d960a0ffab24e, 0x85d114d9a3498a75], [0x261c906b5bd6e599, 0x9817b3431b06ef0a], [ 0x2, 0xee11087d7cc987fb], [0x2478bae6841ff3b0, 0x10bf52b0f494e5a7])
+ self.div([0x4bbd5ef67af1a4b8, 0x8eecb44709fef87e, 0xf5a6a9e9da706198], [0x27431b1c60cc7b58, 0xa4b31b4c05fc3c3f], [ 0x1, 0xedd8146cf8cd8329], [0x22ef6302573a33c4, 0x90be7bf8bc37e81])
+ self.div([0x8ced369a7e123334, 0xf18bbeb49a70f464, 0x62c097a9e2883b1], [0x41cc78d98c88767e, 0xa41fb4f0eebc644b], [ 0x2, 0x244bed59dfdf4004], [ 0x5a4c97e963cae7b, 0xb4499b7c17cf3285])
+ self.div([0xbe388dc5f14fac6f, 0x1c4903eb0671d0bd, 0x2bdcacce53d370d0], [0x1255e3a8123baa77, 0xcf0b8ec89edee03a], [ 0xa, 0x5fdc6e8204c3fc16], [ 0x2b457da89b9a172, 0x71a5a27393c513d4])
+ self.div([0x1c6e8946f5338322, 0x90a00fb1dff3b11, 0x8b72d7bf1088f84f], [0xf1240b32424074b0, 0x50333d64c9b782f7], [0x1e2f0afc3ef222cc], [0x837fafa5b90fb17a, 0xa939d64e5369cd7b])
+ self.div([0x9e16157e68d14c0e, 0xf5468a8a19c7eec7, 0x4bcd45581e775817], [0x462a2a3965a0adf8, 0xaae512a19342a6fe], [ 0x2, 0x40c97280ede6d593], [ 0xcb62a63e91cab50, 0x5225858eec0c1e3d])
+ self.div([ 0x5afe589e09ad178, 0x51cf61135c70635f, 0x142c73ea8cde3b73], [0x58c5587ef019389f, 0x55be19d0f038651a], [0x10668e6590688697], [0x12423ea64a61814a, 0x4d63ce5a41efd1d])
+ self.div([0x7844cf5954a0e748, 0x285d871ce2266c62, 0x284b761ab3b184c1], [0x8a0a489b1f61ec47, 0xee26caa7420a6468], [0xdf0ada479af2dd98], [0x636f0d6a63614e02, 0x6607a7b70a881f01])
+ self.div([0xe4829de878d15239, 0x2c82ae2c2811bb3, 0x19e5cf6ff81e7cae], [0x7f0d694a03e7616a, 0x72fce8c4e979acca], [ 0x1, 0xcc6dd99fbcd160f0], [0x3f347410e4f2b9df, 0x213e3c970c56bf4e])
+ self.div([0x84360eeb1e3eabbc, 0x70134c0a794b3dd1, 0x8b8b19cfdb4f521a], [0x3199aeec2b318e04, 0x42ef594df6759e97], [ 0x2, 0xaa602fe8f8e182b4], [0x23e02e19339e8273, 0x3a49b6fc2b5c21ee])
+ self.div([0xf416d08d8dd1be5e, 0xb8d9817615570a6b, 0xa323d7c7c2c512fd], [0x509adde292d3d22a, 0xfdd5b304ab48329], [ 0x3, 0x7391a83d1e73d0c], [0x124539a8a5fb75ec, 0x8da5ffc56c0f2811])
+ self.div([0x6bf1eef536881e3e, 0x247af249bd758fbb, 0x5e7cee7ac1a7ce05], [0x2f8ed00b335f3ae7, 0x589207d5bd529b45], [ 0x2, 0x450f27fc2b1d915c], [0x23232eebd3a5f318, 0x648b6012c034ec39])
+ self.div([0xf5890709a3895991, 0xee9574e1132e05, 0x7c36309c0a93fb35], [0xed54786684836395, 0x47346c5f52f6f45e], [ 0x1, 0x8d9cd3db7d93415], [0xe3e6f2c915ffb3eb, 0x63949385bd00d77f])
+ self.div([0x2d63b5e3b887cbf1, 0xa739a3f85a3641ea, 0x58b367e6dd7c2b70], [0xb349d0b99a2ed460, 0xefd494c8bf43d9e8], [0x40cf6843e872ef83], [0x81556bd6b03d8453, 0x2768e9335c0411b8])
+ self.div([0xc1ca756326aa6bd2, 0xe498d8bcd15a013b, 0xe8e0d293557fe696], [0x7b140ffa3f6b2744, 0x409b17bda5b3a41d], [ 0x1, 0x93148aaadb1d5a20], [0x2d82f4ca79b25e77, 0x8e21e9d111030f6])
+ self.div([0xd4d3a26f42a6c2be, 0xbbd74673fa233f09, 0x25e5c3026f7afc6a], [0x5c92fa58d3315c1f, 0x23bb4ab396592348], [ 0x2, 0x4c8a641302b998e1], [0x5aac0cc9aa0e065f, 0xc7c462dd4f283a22])
+ self.div([0x299da2ecc7cfe9e2, 0x84199f514d83a483, 0xc98a24f9f2f9ac3e], [0xaf674a3731b91474, 0xfc0d1158385e013a], [0x3cbce620e6a6e684], [0x9f336b0e5a2df4b1, 0x93ecab8985caee56])
+ self.div([0x1f44614478c0f870, 0x399ad34eed612351, 0xf18ff332a461e0b7], [0x104b010006700998, 0x2a3122e2034fcb5], [ 0x1, 0xeb4718505c2fa0a3], [ 0xdc6fb67caf65e99, 0x28e0a6979378d978])
+ self.div([0x193a37b38c654d4b, 0xae4247c7942c5067, 0x2c0bd7c479b71b16], [0xf3a078eff3e8c853, 0x53ce2ddf5af4dccb], [0x1a823690eb5f7679], [0xebb28ec08da4e12c, 0xeaaca98955e02d23])
+ self.div([0xdd718098e5c6026b, 0x375340d74b4fec57, 0xa287a869feaacadd], [0xa87c62e1ac9eb58d, 0x1cb2f41ec01cfa41], [ 0x1, 0x5076e31fa4c61552], [0x7753aae81f98f119, 0xa0f3d933e2954d0b])
+ self.div([0xc928f499f0811f06, 0xa115af9286fe72fe, 0xa98bdd58f339dd0a], [ 0xbd3036803819d90, 0x3f436c2c2be1e592], [ 0x11, 0x330da6fac4f271a], [ 0x40a565a53a902f5, 0xc249f6eb24414e36])
+ self.div([0x173ecd2c4b5126b2, 0xd53ad968f13e837b, 0x61b7aab002f08490], [0x8b13185b6ba65f42, 0xd2f3d76886b51504], [0x2ac9df118e74ddb0], [0x27d4f2686154a88b, 0x6b8ff98f557d9dd0])
+ self.div([0x319d3b818193e07a, 0xfeba45966cf02728, 0x6faff6458b583783], [0xfbf0542b31c6eb34, 0x52d279208566acae], [0x3269f9739fd8f5fb], [0x99693ba157760c92, 0xcca8efabb79a62e9])
+ self.div([0x9b3ffa64b7c8f57d, 0xc650d6503a1fed5f, 0xef48cad6bbabd4d1], [0x2eaebb959c21c768, 0x9105484f8f18c2e2], [ 0x3, 0x535dedb211e31801], [0x10dab0a338be2c42, 0xfab2ca1309e7e1ef])
+ self.div([0x63326b00d857991c, 0xd4957311d4361f56, 0x25ff8476948120d7], [0x44188229ee582a35, 0x251d47021b997ca8], [ 0x1, 0x74ec1b5034771bed], [0x435544dc403559fb, 0x68d4e06ec52b014f])
+ self.div([0xb9450fdea7a4a5b1, 0x68ae6ba528c27081, 0xb5e74b7c318d5fca], [0xc68fbbf2c4ed8a4b, 0x5b2d85ab77c6c342], [0xeedd0683efd6fc2c], [0x3f8f301efee02a49, 0x891360e41c02d872])
+ self.div([0x16f9450ac1596e66, 0x279d5ab049ab95b, 0x18cdbfd2c3a46d13], [0x260baee74e212f19, 0x5f4900b0398963c2], [0x9a95a865e7046662], [0x101cf28758532aa7, 0xe153babc6244f0cf])
+ self.div([0x86fb70095d9c457b, 0x82d6d310742ae9af, 0x70b67d0754fc89fa], [ 0x2430284663164dc, 0xe193755cac940b1], [ 0x3b, 0xae23499b2a88f2ae], [ 0xa9ec98470b5244, 0x3aeb6352d9033fac])
+ self.div([0x14ddea06083d0d5d, 0x1791c033e6b260ad, 0x21379a9dc6bade4f], [0x5313341422801850, 0xa7fb53874b816407], [0x404d634fd6242e1e], [0x171a0bfa051f29ff, 0x43e52638c29be37d])
+ self.div([0x45e85aac1ed0da85, 0xde45b1677ae16958, 0xd17afeee6390f5b], [0xaeacaa510299e25a, 0x2f5f1926a6331c49], [0x66749942a5448336], [0x12ced38b16d261e2, 0x819d981b1f93bcf5])
+ self.div([0xaf3f9716ce6db492, 0xe9ef01f054668ecd, 0xadea076f63f6ead0], [0xb8d1d4315fea06a0, 0x25c3b10b90a4356], [0xf2be1739e39eaadb], [0x2a4f319170c6b46f, 0xbc3a5f0f7664343e])
+ self.div([0x4c16f5566379b300, 0x68250858ff8de4a2, 0x2f2b83bd151fa406], [0xfdff0b65b0eb7e3e, 0x5b1634685f7f71e7], [0x4cb09fdcaf272905], [0xbd3527dde23b082d, 0x6814bf9c8b336b83])
+ self.div([0x95dd3e33ce7c2a6c, 0x5496088c76b6ad2d, 0xee5233fc5c3bfb5b], [0x797db860f7f02701, 0xa2dce3330af522c5], [ 0x1, 0x3bc95597ac908004], [0x1604a1bcdfd408d3, 0x4a625942b434f047])
+ self.div([0x165564e38d71e0ac, 0x3ffc78fa7a381ef, 0xa76b454decdbfd43], [0xf0e1277dc6bd2624, 0xf6bdbb22575c26b6], [0x17bc4952f224bfb5], [0x5702425a0fcbbd10, 0xd307a4feea3ad495])
+ self.div([0xe4745ba87669ba72, 0x7032799b36381d41, 0xacdbe74ced4f75ef], [0xcb71ce426dd45e24, 0x77a046180ecc3545], [ 0x1, 0x1f7882f60516a748], [0x8fb2cdafd021fdbe, 0xbd1301fca0327787])
+ self.div([0xfa7496866c576874, 0xa87c3d1623d3fe7d, 0x34d50159d91e8228], [0x78fa31aaad18234e, 0x604d18d41d6c7d2d], [ 0x2, 0x11fd0e086685154f], [0x6a6c7d6518324856, 0x335f0ed5e7fe3045])
+ self.div([0x9f32bf3ca81c8a18, 0xe1259d918ec55cbc, 0xab4f12fc1d9854b0], [0xb44b3cd50cbdf1d3, 0xcebb6e1ac0c43327], [0xe20bd29297c8deae], [0x70fc820a51010626, 0x4f4c8bf0fc69be2e])
+ self.div([0xd82f334a4afd6ebc, 0x11f7d0f0368bb3e9, 0x91e86edc6e861715], [0xdc6ef42ec1eb0de2, 0xeae29484a61335c0], [0xfb10bd3b8b77656a], [0x8bc1edc7c3bbd73c, 0xca8cd60cda1d1595])
+ self.div([0x765ace8d21d4f9ed, 0xb12492b171e5c95c, 0xdb60de4d139836be], [0x1b0ae2827061e1c7, 0x350bc2c925d92d82], [ 0x4, 0x6069e437809af6ef], [ 0xcc41419421a1cd8, 0x4fc8cfcfabe7ce60])
+ self.div([0xd935d3135ba4427c, 0x30670501e086f69a, 0x33ee553106a0abb], [0xa93cab7db3cd1814, 0xd393dcc55671eb01], [ 0x1, 0x48915abe5a639917], [0x57125e059d626602, 0x4893df83fb5754a4])
+ self.div([0xf0d6da47be9d3978, 0x1be2ef7c0a41f2ef, 0x1973958aeea83c11], [0x8e56cd3099cdf07c, 0xd4eecb885457d241], [ 0x1, 0xb127a1dca9d2e687], [0x2ff66e2675fa9f57, 0x9f8c0a2c2b1ff5ca])
+ self.div([0xaf36391410e1677b, 0xa0e5169579ab09a7, 0x5e4fabbb8cc65bc8], [0x4367d0c6d1c1b76f, 0xb80e4f6b78c9316b], [ 0x2, 0x9970366bb88b0952], [0x21ef2a69b5b4cac1, 0xc7009940c7ec482])
+ self.div([ 0xe4931f45064bda0, 0x30a3925de737dbb7, 0x6beec1dad3649e7d], [0xca6a5e40472d31ed, 0xe0d79ae09394b274], [0x121158dd4a7cbcf0], [ 0xe3580a8bf4ef85b, 0xd6363d2f4cc021bd])
+ self.div([0x5a13628a0e2a4366, 0x71ea459b929772d2, 0xaa8b29cc1af508db], [0xc15614d49d9d65fb, 0x7a7bb962ebed292a], [0x774558423a93d865], [0x473a3ac9fd56088e, 0x1e714d5ec48a5b49])
+ self.div([0xd5d7134e120d4337, 0x19deafc627e9d993, 0x3310f2e2969bb6be], [0x951b1dd6c5a70b2d, 0xd6af59942c79a3af], [ 0x1, 0x6f24668637a67ff6], [0x932bba01ffedec08, 0x58fdfbcac50a9b94])
+ self.div([ 0x3e8b32b0a45d675, 0x3bcec023436b104c, 0x3c85ceb129409326], [0x89494505fe6dedb8, 0x12b09789efc4fdfc], [ 0x74a05c871bc27a2], [0x30f93e900edc230e, 0xdbd98439aad675ae])
+ self.div([0xe1a6ca0ebc4e13d0, 0x9c0cf4ef4e322aa7, 0xaf658e152ad499fd], [0x355722b7a26f10c5, 0x730185ab4c36324d], [ 0x4, 0x3afbfdd5478f49f7], [0x15cb465987a0b8d9, 0x60b02fc8ba2f1cb2])
+ self.div([0x4e14fa409edd6827, 0xe8a9cd43f1ccdcbc, 0x25f4f94efe135c1e], [ 0xc6621b46a7e8050, 0x4e8bf8d714169fe0], [ 0x6, 0x4c268d96e5202bc1], [ 0xe027c22815e5bf, 0x753771b1b02a343e])
+ self.div([0xdb706a699b1c29a7, 0x278a4d35f6b7a246, 0xe9fcd4b249cb92c0], [0x51ce312900c5e24f, 0x51f4924ed3277d7d], [ 0x2, 0xaeb52538ddae3410], [ 0x47041727a83072f, 0x9f78c5cdde056f0])
+ self.div([0xb012c60554a5b6c9, 0x21880be67300985a, 0x38e394886d1793a0], [0xbcaec99079f07d21, 0x3ada05e90d0969db], [0xeee44ffe78bb455f], [0x811cfd4acc58df14, 0x56fd06c01218445b])
+ self.div([0x783389f0d902d20a, 0xe8787c6550eadd62, 0x63e23b7c765ac497], [0xe3711f463b8f5fd9, 0xbfe26e755cc7e3f3], [0x874b4861bc620577], [0x9f624d3f95f3dc48, 0xff5d911fb6f60fa2])
+ self.div([0x44ac75ef545f43b9, 0x9aa29ba5203f747b, 0xfbfce3afc16ed4e], [0x70403fc0cb8a8ccd, 0x22112f130b86431e], [0x9c9e10f2d7cf6439], [0x1273bd979df46094, 0xb6d37c3281b843a0])
+ self.div([0xbe03e6f5aeb3f861, 0x32bdd09c1814f425, 0x2c563e8cbc9c57db], [ 0x3762ca7bccf1ea8, 0x358d0713ffea0fc6], [ 0x36, 0xe45b3b1a4540d1fd], [ 0x255b3922683d7ff, 0x116a9efa6bea1b2d])
+ self.div([0x415cb0f6f0b1aa9d, 0x783a8b9c36f7bff1, 0x631977dbb85f88e6], [0x728a061fa0ef1050, 0xadc5e1699df92068], [0x92164b1f278721ad], [0x4933a4b2201ea55e, 0x45f4df36eaff3a9e])
+ self.div([0x1aa2b7352429eaea, 0xf07bc2feb54990a6, 0x80488df2eb09a79d], [0x8a19dc6e6d0f4401, 0x1a4713047eed511e], [0x315ff5777af4c9bf], [0x1f465a57dbba603b, 0xdb78582446b1943b])
+ self.div([0x355c4e98f473f150, 0x6875b54fe2e37c5a, 0xc0a95a97d9ea467f], [0xb6d12bbc759a1660, 0xdef84a8f16c46cb9], [0x4ab89f17fc1ecbd2], [0x9485b82d0ddd0efc, 0xb48a087f90e463bd])
+ self.div([ 0x704d5027a03a504, 0x4ae6b431c80b2d68, 0xa1e2784fd4ab86f], [0x1d8e369ceadd80b5, 0xad2060f4499f9a44], [0x3ccb8e63af6041ae], [ 0x348d42b6610b985, 0x8758242f17249a37])
+ self.div([0xdca7020294cec5b9, 0x92571b0e82334d9b, 0x67fc54c84bc7c680], [ 0xf4dba8e34f8d5fc, 0x5349cfffc266506b], [ 0xe, 0x6b1609af560e9854], [ 0xe566ec3fa1edf85, 0xd6027cae6a9bdb64])
+ self.div([0xec8fb83bea01c738, 0xadd60320a9a028f9, 0xdb7a3cc4b3a1fce9], [0x79273ec377e54e05, 0xa0057305b045319e], [ 0x1, 0xf3dc396805151c97], [0x2e2b359531f2f0b9, 0xb1d59f4d016e70b7])
+ self.div([0xe3772f7766784a7b, 0xc63fdf8fc04b4c88, 0x8a90a86c7b23c7b0], [0x676f3be2193e893b, 0xefb3126d1340fe9a], [ 0x2, 0x32f9f48effcfbce3], [0x10ab83efc294cf34, 0x985ce6fb6902ed22])
+ self.div([0xdc9c1621cb6a1d49, 0xc776b3f7d783abee, 0xf03a22a97ddb69c], [0x287b95ed709724f1, 0x3495e635fa01578c], [ 0x5, 0x7310b3b854a5347d], [0x1197c6a615136a91, 0xda4edecfe2318740])
+ self.div([0x5d02a0b71cc64395, 0x9b512d1ff32251ff, 0x863b434e33bc0f54], [0x2ac63310aa72c976, 0xdb4def55a628db98], [ 0x2, 0x2ca88e14be8845c7], [0x191b64d7d3c457dc, 0x739211618e09642c])
+ self.div([0x61256cd9c533acba, 0x6c5dfef06dff152c, 0xc398ee12012e41ce], [0x7eaeebf7684320ec, 0x9450cc9db8720ca4], [0xc44fd2959ef02dc7], [0x3dfb0a1532ee4730, 0xb9c2f3de828d9a52])
+ self.div([0xe1c8b98d3c509b7f, 0xf741717792941686, 0xa941a7487e84b3f6], [0x614a636fc86ce636, 0x1bdac63fd1b7e528], [ 0x2, 0x521aa139d746237d], [0x2d4a9a946c41a87b, 0xe89f28cdb275576e])
+ self.div([0x46d8dd188909e53d, 0x9f6712eea264b481, 0x1153f285c35799d9], [0x87599cbd0b0fa022, 0x4f84ee6dc4d5b241], [0x85ffeb4b87e6d732], [0x7f85d5e789ad5d89, 0xa2b7c3bc6b803227])
+ self.div([0xf566fdaef6c8dc6b, 0x4c8115411524f3f9, 0xffc72724b829d54d], [0xbe8c42fb47a633f4, 0x6ad1b6489cc81d3e], [ 0x1, 0x49b2536614ab1137], [ 0x2f6e563cbe7690, 0x548b0e795ed06efb])
+ self.div([0xbce54ec5a814b2c7, 0x847e07e1db021045, 0x5e799aa3fd6abcbf], [0xa8e7bcc34c77aefa, 0x9888eaf59493d2bb], [ 0x1, 0x1e4c68b7d4b17d1c], [0x742ce848c5acbbeb, 0x45243dd7000f614b])
+ self.div([0xb9e6d5863a7b45c0, 0xbc062b6c3c9e808a, 0x4348de8a1f8ee564], [0x87fa1c8c1169b57e, 0xdb58a06c74d53cf9], [ 0x1, 0x5dfde67cec506937], [0x2c1736083417ea5e, 0xc8b295dcf5ecaae5])
+ self.div([0x359045b68dc5b8a3, 0x79606f6185b005f0, 0x53d20814e2ce3948], [ 0x6afd15de0d0fb2e, 0xb457ede85216afd7], [ 0x8, 0x2a6c4a9560bb49a], [ 0x120f96dd593f751, 0x7c11b9a0c54845f2])
+ self.div([0x9f27cf028a835917, 0x488c5e9b62094f2e, 0xeb2b9172723a4fc9], [0x20fc3e13a07590cf, 0xbd0cb9e82858894e], [ 0x4, 0xd335d400e8755344], [0x1116125b30eed449, 0x2efea5cd958b8d11])
+ self.div([0xcd99dc06a91ef366, 0x1fa86dd0df2566bf, 0xc583209fe39f2a97], [0xdcf2a3aae84fa68e, 0x36e1925a3f2fbb56], [0xee37f0b16d2c5df5], [0x54e7e0f2aa4d1d92, 0x15f1f1df431aa349])
+ self.div([ 0x5bda2fde7ebc8f6, 0xf6308e8ce5c80919, 0xeac5ce6058142de6], [0x7fd2767301b87a8c, 0xbbfcb61c8b932b68], [ 0xb7f5d1d8808020c], [0x7893ebd91bf77f93, 0xff6dcd820b975506])
+ self.div([0x466f555acf938fec, 0xa2403483cc7f0619, 0xcbd9b5c05216c283], [0x57b4a7dc2a216007, 0x82a55be47190d230], [0xcd96cf7acf463591], [0x49553c9ef31d9f69, 0xe6c63b6aba6bc553])
+ self.div([ 0x370c437f18c3bb3, 0x1684ba7730236282, 0x2760ca65ba877606], [0xda8d483db12f6cf0, 0xf2fb00d92857ff66], [ 0x407aecbc96c5a39], [0x5c7b3ecd39ab15dc, 0x91be4b53fa1dbc50])
+ self.div([0x2b63d8161b3fe5ea, 0xb955aff0261006e9, 0x5cdfb3977f8c6e8e], [0x2acaca5eb3ce2e5d, 0xf2b47d1f5585314c], [ 0x1, 0x393a0eb61a30ef7], [ 0x46f64b91e69ed17, 0xd4d0976e83f3b63a])
+ self.div([0xb0654bf835457be8, 0x25cb652c578ce733, 0x677ce90ca85924d0], [0x478ca2d61788674b, 0x81597ee41a53c479], [ 0x2, 0x772287b1e06d7e9e], [0x137723ecea369cce, 0x300b2b11a66d5422])
+ self.div([0xb56b5044ad4c1af0, 0x20fdce55ed5d5ec0, 0x9f248812ff6d8eec], [0xfc654d52fd9c676d, 0x76971ef84506250b], [0xb80289d73dc704da], [0x8dc743a3e12b8fb6, 0x967629bcb510d78e])
+ self.div([ 0xf5576a4c6ff1643, 0x54ba39ece1646d51, 0x65131c5571b9f394], [0xd17c46e41fe04548, 0xf55203d7e636dd69], [0x12bd14a97c592aff], [0x48fa26c8886a346f, 0x8e24e1df4b3f2dfd])
+ self.div([0xf07165faa80be6e8, 0xb1072b8e14e7aa15, 0xeef551fa4d6c447e], [0x3280ab598da3fb75, 0x69a0019b2f7103e2], [ 0x4, 0xc2d0ea1d1f5a17bc], [0x1623ba77d76ba8ae, 0x8907d0f293a01c86])
+ self.div([0x6e0dd7f08d5ff5a7, 0x33c8927378d3b6ab, 0x688c2b1bbaf26572], [ 0xab71e696fcd4efa, 0x84839ce8860aaabc], [ 0xa, 0x454ed2f5bcb0c364], [ 0x408ad05a3dbfd0f, 0x8c62789cd7a8002])
+ self.div([0x982ba5b2f5c8208e, 0xf4dea4f655a5e1be, 0xca6a76ace7bb8f73], [ 0xf89a8acfa3a22f, 0xe247deb9f7672c69], [ 0x9c, 0xb2a258adbf8047ce], [ 0xdeee0a6a848779, 0xe4cee0bca9e4b3f5])
+ self.div([0x7208483d182a0fc9, 0x341bb341a69553a0, 0x815e67a09f15caf], [0x8c2d104708ebe2f9, 0xb291763cf95a1d52], [0xd04123be164bbdcf], [0x557c15e15992030f, 0xea2b824d3f681d61])
+ self.div([0x99a36b718b1fdfe1, 0x4ec903457c6cded7, 0xa79b53eff70a3cd7], [0x4927d6b6e3bfc286, 0xfd7e9c99d550321d], [ 0x2, 0x19a3f3d6c6d7f56f], [0x40a18dedf2c889fe, 0xe3959bbc34f3c144])
+ self.div([0xddb14daaa5803f79, 0xa2424f2649b48a0, 0x2f6401b9b2d36e83], [ 0xe0a89cffed76df9, 0x712a6fb95a5d4b5d], [ 0xf, 0xc9ec2eac9578cc95], [ 0x39171302eea69f2, 0x473945c14de07562])
+ self.div([0xfc2b6e75000d2352, 0x93040a870db28ef, 0x83055ac51a9fdacb], [0x56d9bf9617c765e9, 0x7b8691fc4a3737a3], [ 0x2, 0xe74b04c217c0a389], [0x1959c57fa179a64a, 0x14b34290db664b90])
+ }
+
+ func test_div_3_by_3() {
+ self.div([0xf0f93956645dfe32, 0xf4c75ad8edc5acf2, 0x2fb25127dcc07a9f], [0xc0d7b6a93a0f05d1, 0xe9f4d23a15b98b1f, 0x9e6664a7c9271e8b], [ 0x1], [0x302182ad2a4ef861, 0xad2889ed80c21d2, 0x914bec8013995c14])
+ self.div([0x8ad6cfc7ce050a45, 0xf449d3f85c9ace6c, 0x786c10b95678bb12], [0x6c02b93a3eba13d8, 0x91942d5ccbd5674d, 0xf3a8d3db3b6d98d2], [ 0x1], [0x1ed4168d8f4af66d, 0x62b5a69b90c5671e, 0x84c33cde1b0b2240])
+ self.div([0x17166a077033f8bc, 0xd6447973d3b970dc, 0xdbdb1c2e81664885], [0x630eb633ef0bf9e2, 0x1750c6a5861ac18c, 0x113198a39582d651], [ 0x0], [0x17166a077033f8bc, 0xd6447973d3b970dc, 0xdbdb1c2e81664885])
+ self.div([ 0x13421375b064452, 0xa61740a2f0fcbf4c, 0x1a2bd625de6051de], [0x18dda6eb11162b64, 0xf9756cfad9d489de, 0x91f9f1099770caff], [ 0x0], [ 0x13421375b064452, 0xa61740a2f0fcbf4c, 0x1a2bd625de6051de])
+ self.div([0x860089d863954136, 0x7f07ad8e8dfbda62, 0x4e473f2fe4725b8e], [0xcb26d0dc9ed9e1dc, 0xf2f656b919cf0997, 0x6e62242450ca3462], [ 0x0], [0x860089d863954136, 0x7f07ad8e8dfbda62, 0x4e473f2fe4725b8e])
+ self.div([ 0x71a1d7f0e4ca15a, 0xa32f20ce773a0954, 0x2b5321ed06c2af4f], [0x82fea05cf384986f, 0xbc2ccac0d57d2f30, 0x9607c0c09d4e3aec], [ 0x0], [ 0x71a1d7f0e4ca15a, 0xa32f20ce773a0954, 0x2b5321ed06c2af4f])
+ self.div([0x9cdf231660887ee4, 0xc3ea7f9bc366c714, 0x6f97105fb500535a], [0xe85e9dee7bc0c51c, 0x185295a5da08555c, 0x45e5ea0a2d3e797b], [ 0x0], [0x9cdf231660887ee4, 0xc3ea7f9bc366c714, 0x6f97105fb500535a])
+ self.div([0xe76c8d9960a8314a, 0xfbf4c61a57fbf8e5, 0xeb679ad8355cef54], [0x93981e2890d48d1f, 0xa5922c6e6336c175, 0xc29335ddb4cd452e], [ 0x1], [0x53d46f70cfd3a42b, 0x566299abf4c53770, 0x28d464fa808faa26])
+ self.div([0x8e3a0de28c01d54e, 0x2b15daa2e9212d6a, 0xd3268cd8d6e04242], [0xa2d066ffc7ec6b0e, 0x989ed1add994be4f, 0xda56d420740488d7], [ 0x0], [0x8e3a0de28c01d54e, 0x2b15daa2e9212d6a, 0xd3268cd8d6e04242])
+ self.div([0xe253216abf6e88ec, 0x6c1f26a7450a8d69, 0x77b8fb3cbdbfd0ef], [0x33521157328f5962, 0x96f05b0ec7b57f7d, 0xe0ad5c365063fc1b], [ 0x4], [0x150adc0df5312362, 0x105dba6c26348f71, 0xf5038a637c2fe083])
+ self.div([0x1787aae7025cb72a, 0xb11e4f276407ec16, 0xcf57f9bc777c6c3], [0x46255d9ede65d75b, 0xded650af08564ccf, 0x71e17493098b0583], [ 0x0], [0x1787aae7025cb72a, 0xb11e4f276407ec16, 0xcf57f9bc777c6c3])
+ self.div([0xda514d659fdd55bb, 0x2e23c7cef2e1d0a, 0xdbc23a2a68208a5f], [0x37f27adc98561437, 0xda05943b307e674d, 0xcdb4d0cf591dfda0], [ 0x3], [0x3279dccfd6db1913, 0x74d17fcb5db2e721, 0x72a3c7bc5cc6917f])
+ self.div([0xa777e1789b934552, 0x841db8e387bd546a, 0xa0d99afa15ae3aed], [0x5f6445b48605d314, 0xef8a213cab47fbe, 0x7053ae05d56dfb9c], [ 0x1], [0x48139bc4158d723e, 0x752516cfbd08d4ac, 0x3085ecf440403f51])
+ self.div([0xeeda99069b6741ce, 0xd8c2ed95183eee19, 0x57455145c0317b2d], [0xec78d3912ba065d7, 0x5677bf3421e926bd, 0x572f7eca3477b9c5], [ 0x1], [ 0x261c5756fc6dbf7, 0x824b2e60f655c75c, 0x15d27b8bb9c168])
+ self.div([0x996346d3b43813fe, 0x44cba87a2d11ef03, 0x364fef4832185655], [0xe29c78328a0c4e7d, 0xac6d5d2eea6e6b5d, 0xcafdb31909860430], [ 0x0], [0x996346d3b43813fe, 0x44cba87a2d11ef03, 0x364fef4832185655])
+ self.div([0xe99f92b514ce2c85, 0x268f2bccd764c221, 0xcc0404fff54f0c04], [0x5b78e4ff29e186cf, 0x645cec5444cf97de, 0xeb49adff451fb674], [ 0x2], [0x32adc8b6c10b1ee6, 0x5dd553244dc59263, 0xf570a9016b0f9f1c])
+ self.div([0xcbf7ed90ef853638, 0x84e085500f819160, 0x3ac2a7708362a2ef], [0x1431efab2e92f343, 0x86763d77a6dee845, 0xa30628069ee1b6d8], [ 0xa], [ 0x20490e11dc7b595, 0x44421ea38acc7ea7, 0xdc85172e4e917e7f])
+ self.div([0xa0851b4e01b5a5ec, 0x95b2c68fd69b1fbc, 0x386870fc38e98b98], [0xbbe9d9ff3b4c57d0, 0x2908359a6d7d341a, 0xea5505824f14e167], [ 0x0], [0xa0851b4e01b5a5ec, 0x95b2c68fd69b1fbc, 0x386870fc38e98b98])
+ self.div([0xf56494b5f71d5055, 0x60b4e1bb9a21eaba, 0xe9acdcc96c301a0c], [0x7666b6b63f0bc433, 0xa50365eebcb68fff, 0x7839b269093fb43b], [ 0x2], [ 0x89727497905c7ee, 0x16ae15de20b4cabb, 0xf93977f759b0b196])
+ self.div([0x760820c96b57672a, 0xbc7497f40227540b, 0x5c445d5f7e6095f3], [0xc8d6afdc5b890e19, 0xdb727fa9759b53e2, 0xf1ba5413df7e4f0a], [ 0x0], [0x760820c96b57672a, 0xbc7497f40227540b, 0x5c445d5f7e6095f3])
+ self.div([0xaac1828507bc5fc7, 0x28c6b475aea339bf, 0x8e87c045ecc20dac], [0xfa175293883b40db, 0xd101f21d137852ff, 0xc76c1151ee822f4c], [ 0x0], [0xaac1828507bc5fc7, 0x28c6b475aea339bf, 0x8e87c045ecc20dac])
+ self.div([0x39c884145d31e2cf, 0xf8055202afbe2625, 0x6c86c0de200ef92c], [0x813044d4cf55962f, 0x8003b634618d6ed9, 0x546309a304d38462], [ 0x0], [0x39c884145d31e2cf, 0xf8055202afbe2625, 0x6c86c0de200ef92c])
+ self.div([ 0x26644386bdfb082, 0x601844c5d77f3d5b, 0xca23689185e35556], [0x773a83afb967cefa, 0x7908b7e47c3057f2, 0xc0f39d97f77a0faf], [ 0x0], [ 0x26644386bdfb082, 0x601844c5d77f3d5b, 0xca23689185e35556])
+ self.div([0xc74cad7f7fc7c7df, 0xb98dbe12be7c55cd, 0xd4cd24d964ad75ab], [0x55abc689c7e1d9ba, 0xe9ad292b26cc8cca, 0x84b186cd59a8c7e1], [ 0x2], [0x1bf5206bf0041469, 0xe6336bbc70e33c38, 0xcb6a173eb15be5e9])
+ self.div([0x30bc9fdb907ad5fb, 0x8bcd90025f8c7cb9, 0x4661694bb5c46b86], [0x2c4f004e31db8f19, 0xffbc40e4f02e1981, 0xb8000e77c2e460bd], [ 0x1], [ 0x46d9f8d5e9f46e1, 0x8c114f1d6f5e6337, 0x8e615ad3f2e00ac9])
+ self.div([0x1a508a49820ac736, 0x2e909f3f603d3f0e, 0xd849222b35e52284], [0xa8365708ad557e39, 0x28f5ebe95699454, 0xbec11344d63a46c4], [ 0x0], [0x1a508a49820ac736, 0x2e909f3f603d3f0e, 0xd849222b35e52284])
+ self.div([0xdacfba1478c3c603, 0x9aaae18149a84852, 0xb2b2f2f4cb84a83d], [0xf7cb9cd310cd51a7, 0x690c9fc8509f39cf, 0x806c7eb7e1507b4b], [ 0x0], [0xdacfba1478c3c603, 0x9aaae18149a84852, 0xb2b2f2f4cb84a83d])
+ self.div([0xc40b16167b18e070, 0x87be53ab55b6dd26, 0x2e7519be7db782d6], [0x47c07e1655e8d6e5, 0xa3b3d5b2d3497824, 0x208fda46984e3209], [ 0x2], [0x348a19e9cf4732a5, 0x4056a845af23ecdd, 0xed5565314d1b1ec4])
+ self.div([0xb8e488a9b4eca461, 0xbfd781ff0ade2b51, 0x749536043141d273], [0xc334a2a25ab362ae, 0xd646779e8a7c414, 0xfd18227a61840b76], [ 0x0], [0xb8e488a9b4eca461, 0xbfd781ff0ade2b51, 0x749536043141d273])
+ self.div([0x13c5db59a823c496, 0x91ea512afed046f4, 0x778bbbfce483186c], [0x4a0dc58dd5f9a154, 0xf41a32884c630915, 0xc1ecab2194e074cd], [ 0x0], [0x13c5db59a823c496, 0x91ea512afed046f4, 0x778bbbfce483186c])
+ self.div([0xe0f813d1c1492f6e, 0x66eb62eecc4028bd, 0xf9be0730decda1ca], [0xb41950989f0585de, 0xce9ef57360de03de, 0xa31f50ea1728cb3e], [ 0x1], [0x2cdec3392243a98f, 0x984c6d7b6b6224df, 0x569eb646c7a4d68c])
+ self.div([0x1f367769d3c075ba, 0xf4f699396766c466, 0x73b2e0ed50e6a85e], [0xf48787573081dc12, 0x57e829287879270d, 0xee5537ed99ac5043], [ 0x0], [0x1f367769d3c075ba, 0xf4f699396766c466, 0x73b2e0ed50e6a85e])
+ self.div([0x49087244271c4c7d, 0x714e50c35e2be615, 0xbc285d0acfa24dad], [0x734704e7ea17ff9c, 0x35257e655c1d9d75, 0x2d057d8a09247763], [ 0x0], [0x49087244271c4c7d, 0x714e50c35e2be615, 0xbc285d0acfa24dad])
+ self.div([0xf537828919ec822e, 0x39d05b4a02acee51, 0xb73a040abde253b], [0x9ce1282f9b740309, 0x3e35ae0e30fb2b29, 0x33243c3ea78551ae], [ 0x1], [0x58565a597e787f24, 0xfb9aad3bd1b1c327, 0xd84f64020458d38d])
+ self.div([0x2a21c9f69b7b4451, 0x23d75984d5d63136, 0x8fc3720e5153ad3f], [0x384891f99f76109b, 0x86ee6c872295a758, 0xd1e8203ce911071f], [ 0x0], [0x2a21c9f69b7b4451, 0x23d75984d5d63136, 0x8fc3720e5153ad3f])
+ self.div([0x10c0071ea1524846, 0x8b7f993c6071924b, 0x7a16d603cb1ccda6], [0xa939e8380fedad91, 0xb4a879c8a21c59c6, 0x2409f568d4cbae5d], [ 0x0], [0x10c0071ea1524846, 0x8b7f993c6071924b, 0x7a16d603cb1ccda6])
+ self.div([0x9368950032579400, 0x542ec87850ffb5cb, 0x6e965019e76ed1f], [0xf3feec39e238da8f, 0xff549094b6a48cdd, 0x62b3b0d64c11623b], [ 0x0], [0x9368950032579400, 0x542ec87850ffb5cb, 0x6e965019e76ed1f])
+ self.div([0xd5e6ab1126902d3a, 0x62d3ba3f6f291a8e, 0x1b42661227adaae5], [0x9d73f95121c8a49e, 0xbf636fb242992fa2, 0x999f26f022c620bb], [ 0x1], [0x3872b1c004c7889b, 0xa3704a8d2c8feaeb, 0x81a33f2204e78a2a])
+ self.div([0x40acfe6c563bc87a, 0x716d63bed120fe8b, 0x90257c1808b740a0], [0xb7ab515d611c8718, 0x1d60df3e0745ab62, 0xd3d7627670a6eff7], [ 0x0], [0x40acfe6c563bc87a, 0x716d63bed120fe8b, 0x90257c1808b740a0])
+ self.div([0x98108545e85c9f3c, 0xa6bce9f4263f4e80, 0xac39d9c67f014b1c], [0x4f9c6c0c92bd50a0, 0x129b92970b6d5032, 0xb69c3eefd6de9fe3], [ 0x1], [0x48741939559f4e9c, 0x9421575d1ad1fe4d, 0xf59d9ad6a822ab39])
+ self.div([0x7e07470a18919ebe, 0x3548d7b72cf0da78, 0xaaa03d6aecd8f630], [0x2beaa7894d28e3f5, 0xf0e2486dd41ab136, 0x5b89e1b2b43a820d], [ 0x2], [0x2631f7f77e3fd6d2, 0x538446db84bb780b, 0xf38c7a058463f216])
+ self.div([0x1d04074ca6a6f654, 0x4896d5e00fbd1bb, 0xd2794bcad7ff4572], [0xd71802156f2a4281, 0xbf3f1cb8b32e518d, 0x4ac72f8da16ff9e3], [ 0x0], [0x1d04074ca6a6f654, 0x4896d5e00fbd1bb, 0xd2794bcad7ff4572])
+ self.div([0x52ee40c4e2cff842, 0x6d2271a2287e202f, 0xaa0b271021d997c6], [0x3c8226b2c09d3dc2, 0x2f6aef7f95e08c5e, 0xcec8047ff682b75e], [ 0x1], [0x166c1a122232ba80, 0x3db78222929d93d0, 0xdb4322902b56e068])
+ self.div([0xed68e2b27ee27d7d, 0x1a5b84a249804c93, 0xc121c27cf73f6c92], [0x2dbc79cb8c619129, 0x673d825d65b0e188, 0xa76923c331820098], [ 0x5], [ 0x8ba81b8c0faa7ae, 0x1627f8cf4d0be4e8, 0x7c140facffb5699a])
+ self.div([0x382c091d4e5ff399, 0x65dbddf26c065f9, 0x9a585650d135f4a5], [0xffeef0621547fc96, 0x41642d5c5f7a1e56, 0xdc363998af3b9674], [ 0x0], [0x382c091d4e5ff399, 0x65dbddf26c065f9, 0x9a585650d135f4a5])
+ self.div([ 0x9844a45d571dc6e, 0x5bee32522b58fa1f, 0x4d94ccd58eeb10bf], [0x38013656b7f0046f, 0xa21800af71206c69, 0x218d8059a783d656], [ 0x0], [ 0x9844a45d571dc6e, 0x5bee32522b58fa1f, 0x4d94ccd58eeb10bf])
+ self.div([0xbc0454a41339e8fa, 0x9c8f628f7d198de3, 0xac189504073cf6c0], [0xd46dd4e2a3a7e759, 0xf611586fdcf8a195, 0x6f4a1a1d227ef37d], [ 0x0], [0xbc0454a41339e8fa, 0x9c8f628f7d198de3, 0xac189504073cf6c0])
+ self.div([0x746e292d750c1e87, 0x47033e839472207b, 0x97a818795199c172], [0xc53155ce85579ddd, 0x6c01f1fa2d67d01b, 0x9b8ea92f0fef4e36], [ 0x0], [0x746e292d750c1e87, 0x47033e839472207b, 0x97a818795199c172])
+ self.div([0x1e568bbdc9af5cc7, 0xce67d72391b7f8, 0xb96aadd0b47c8d4], [0xa0836b4c2f82f7ff, 0xb833f32f3574a7ed, 0x9525501fd2a6fd20], [ 0x0], [0x1e568bbdc9af5cc7, 0xce67d72391b7f8, 0xb96aadd0b47c8d4])
+ self.div([ 0x21ed9eaadf0d3dd, 0x60b0fdcb8806d836, 0xb4a3b6b0dbac905], [0x85b788f0a54eb54b, 0xe1c14e53f055714f, 0x882afbc0ce055cd6], [ 0x0], [ 0x21ed9eaadf0d3dd, 0x60b0fdcb8806d836, 0xb4a3b6b0dbac905])
+ self.div([0xd69abcaabba1a3ec, 0x2300a179f13cc4ef, 0x36d6cef6f1cf93da], [0x57ae47f2f71d2cd6, 0xb8ed63e5e56d0a42, 0xb4bc268375b9d6c4], [ 0x2], [0x273e2cc4cd674a3e, 0xb125d9ae2662b069, 0xcd5e81f0065be652])
+ self.div([0x9e91428107f8c70c, 0xa76f42b7d68a0fd9, 0xd72e31ed22eb57b4], [0xf6f586fc6b147ef9, 0x5186a7e18964b1be, 0x4237699211872c57], [ 0x0], [0x9e91428107f8c70c, 0xa76f42b7d68a0fd9, 0xd72e31ed22eb57b4])
+ self.div([0x799f8016b9b49ac5, 0x8b21292bffa0b6a0, 0x36d1fcd26d91e10d], [0x9d17c916248b99f1, 0x89fd74da5e7ebea8, 0xad35aac4dae0068], [ 0x0], [0x799f8016b9b49ac5, 0x8b21292bffa0b6a0, 0x36d1fcd26d91e10d])
+ self.div([0x4fc6eb6ded5874c8, 0x68c0aea54b22a4ec, 0xdc0eea086476b36f], [0xc2028b6c592d04f4, 0x260b2125ef9298de, 0xea52e5b6505317ed], [ 0x0], [0x4fc6eb6ded5874c8, 0x68c0aea54b22a4ec, 0xdc0eea086476b36f])
+ self.div([0x2c9f1fb1756ebefa, 0x2e01bda9f42daa25, 0x4fa899187ee4aa16], [0x87c84e05b5240842, 0xd76ab8e70b6a7a4, 0x38b0fb4aa87900ee], [ 0x0], [0x2c9f1fb1756ebefa, 0x2e01bda9f42daa25, 0x4fa899187ee4aa16])
+ self.div([0xf8985c9e7e05c66e, 0x66f53d48acb92597, 0x7f6fd87e068e2bd4], [0x6b40d3d1895526bb, 0x7fbc2b3b77d7e81b, 0x5fdf641da3a065ce], [ 0x2], [0x2216b4fb6b5b78f7, 0x677ce6d1bd095560, 0xbfb11042bf4d6038])
+ self.div([0x9c3f8e60de6b920b, 0x3c187c72906503b3, 0x7a66cbc76c70b6db], [0xbf5a572213392fb8, 0xd4de31a9083e9383, 0xd5dd0d4fd6cadf7a], [ 0x0], [0x9c3f8e60de6b920b, 0x3c187c72906503b3, 0x7a66cbc76c70b6db])
+ self.div([0xd08a812127e5794c, 0xe82b04897b929451, 0x947270acd162ffdf], [0xd52b54edf81cf564, 0x21d50f8be379c2c7, 0xb035e323220c0d63], [ 0x0], [0xd08a812127e5794c, 0xe82b04897b929451, 0x947270acd162ffdf])
+ self.div([0xf8315e445a96b36e, 0x5bab9f9cde1418e9, 0x5edfd794da81f5dc], [0x5b96ea1bbc641bbe, 0x818c92cdd815b914, 0xfc302f98133c0036], [ 0x2], [0x41038a0ce1ce7bf1, 0x58927a012de8a6bf, 0x667f7864b409f570])
+ self.div([0x31d98ac3f40ff7fa, 0x78034eaf4a6ff7b9, 0x90aaf7b2e4c31465], [0x8287508d4c1ac740, 0x465ca44cce9e93b1, 0x6cc5ecf687dcae1], [ 0x0], [0x31d98ac3f40ff7fa, 0x78034eaf4a6ff7b9, 0x90aaf7b2e4c31465])
+ self.div([0x2b2862fba3897f31, 0x475c62350089feb3, 0x925a5a635ad9a1fe], [0x69492c46694e15e3, 0x8850fc3e69e49dbd, 0xd6b8db3a42da6857], [ 0x0], [0x2b2862fba3897f31, 0x475c62350089feb3, 0x925a5a635ad9a1fe])
+ self.div([0xd4888e7e8a680121, 0x1219bc0b4c90b147, 0xa920c0f7da9384fc], [0xf231233518371af0, 0xad329f34a2b4307e, 0xa20028a2b7b38da4], [ 0x0], [0xd4888e7e8a680121, 0x1219bc0b4c90b147, 0xa920c0f7da9384fc])
+ self.div([0x902fb5354965b90f, 0xc7b40f99b2e5ba5b, 0x736b31af10ed86a], [0xee087e91e265dc1c, 0x1b6f5304ce273b3f, 0x85d1648fe10e7763], [ 0x0], [0x902fb5354965b90f, 0xc7b40f99b2e5ba5b, 0x736b31af10ed86a])
+ self.div([0xcd28b4e6b0f45c39, 0xd15306230b0a9da, 0x3bbeec6abcadce96], [0xf160f3a7c4fb9aa2, 0x1d781deee87e82bb, 0xe85d9392471fd03], [ 0x0], [0xcd28b4e6b0f45c39, 0xd15306230b0a9da, 0x3bbeec6abcadce96])
+ self.div([0xcabd8369e6c2c893, 0xf0e4dcf55bff6558, 0xbdbf6eb0c8c92fbf], [0x13f1e8ee9d46d152, 0x517d2934abe77030, 0xb7561066289ca1e7], [ 0xa], [ 0x34a6a17c1fe9b5c, 0xc20140e6a4f50371, 0x9462cab332aadcb9])
+ self.div([0x511cb0a29f4f5d32, 0x481b77321eb332e8, 0xae070efd02128b79], [0xfa4b567c7d58d97c, 0xdd9bc62b77f83c01, 0xe142cd63698c570e], [ 0x0], [0x511cb0a29f4f5d32, 0x481b77321eb332e8, 0xae070efd02128b79])
+ self.div([0xb496b72d540e79ec, 0xb78f249587f0cc4e, 0xe26d3bda267d8821], [0xc105943b3199e5cb, 0xdbfe320655554d84, 0xea1311e0f6894377], [ 0x0], [0xb496b72d540e79ec, 0xb78f249587f0cc4e, 0xe26d3bda267d8821])
+ self.div([0x6b70c5634f938909, 0x9d27c66bcad78fa2, 0xbd55839d8399566f], [0xf0366d8adfa3cc36, 0xe9e8888f8d2c2e72, 0x1591b73b6dbf02f0], [ 0x0], [0x6b70c5634f938909, 0x9d27c66bcad78fa2, 0xbd55839d8399566f])
+ self.div([0x54d057463acbabed, 0xd5c14ed7ca3c3c79, 0x9432d419250140e0], [0x30663a24ee4d7178, 0x80578781391cd39a, 0x1ef5aea47810648d], [ 0x1], [0x246a1d214c7e3a75, 0x5569c756911f68df, 0x753d2574acf0dc53])
+ self.div([0x1ce3ecea7136daff, 0x1a965d52a122bb82, 0xde0be408861e9df3], [0x71d77cb86e45db50, 0x3ca9af9a1e8e44c5, 0x557a52c3e14bc414], [ 0x0], [0x1ce3ecea7136daff, 0x1a965d52a122bb82, 0xde0be408861e9df3])
+ self.div([0x3418756ed2c6cf4d, 0xddf35c842f95d3b4, 0x860df1e15dfac8f3], [0xa723ae64a90d2655, 0x1baf51f70617addd, 0xe37a3784b41741ce], [ 0x0], [0x3418756ed2c6cf4d, 0xddf35c842f95d3b4, 0x860df1e15dfac8f3])
+ self.div([0x7e9bc2a6b5c3ce38, 0x70bcaf5e70243e30, 0xf194006bc65c8afc], [0x47246a229c6907fd, 0x478ac6c811136de0, 0xef43077ff0d62c9c], [ 0x1], [0x37775884195ac63b, 0x2931e8965f10d050, 0x250f8ebd5865e60])
+ self.div([0xdcc4e3ea1d64e425, 0x3db1681678173fbb, 0x7b20387d843c4300], [0x5d94c50523a7581b, 0xfa2ef3e07a0172bd, 0x1690985b6efcd267], [ 0x2], [0x219b59dfd61633ed, 0x4953805584145a41, 0x4dff07c6a6429e32])
+ self.div([0x53be82f115cc6115, 0xe503c2e26872afdb, 0x3a815fcaadab447e], [0x869133e5724d7454, 0x53a5106d209f4828, 0x41f6a56c9bc5cb02], [ 0x0], [0x53be82f115cc6115, 0xe503c2e26872afdb, 0x3a815fcaadab447e])
+ self.div([0xdda32298ad647a45, 0xb003a1bb585cf2d2, 0x5d6562f34e9b8464], [0xb54772fc97367b47, 0x3890045372bc05f0, 0xdee2e559a3077709], [ 0x1], [0x285baf9c162dfefe, 0x77739d67e5a0ece1, 0x7e827d99ab940d5b])
+ self.div([0x9d20a394ceb5ba82, 0x534c1dd39c0f641a, 0xd9e3512fdfdacb06], [0x98ee144707f1d7b3, 0xbac18931bac8768b, 0x1c586f9f81135197], [ 0x1], [ 0x4328f4dc6c3e2ce, 0x988a94a1e146ed8f, 0xbd8ae1905ec7796f])
+ self.div([0xe77b0c35fd01e595, 0xc07dcbda712ddbb0, 0x4b7fde6f8a44fba4], [0x48ab91ec3d7b5728, 0x6604d63e6660f659, 0x5bfe3bcda2940550], [ 0x3], [ 0xd785671448fe01c, 0x8e6f491f3e0af8a4, 0x37852b06a288ebb4])
+ self.div([0xcc29354b6c30d6d3, 0x4916cb5c6c15705c, 0xba0e3c3eb694f82d], [0x8f242da41a143d12, 0x7883da605502fa22, 0x5dc1edefb391534b], [ 0x1], [0x3d0507a7521c99c0, 0xd092f0fc1712763a, 0x5c4c4e4f0303a4e2])
+ self.div([0x9d1ac7a8bbd162bb, 0xbfc91b6413573aef, 0xb966cfb25c75db9b], [0xb2308931a0daccbd, 0x3075405a1e2f7521, 0x80553c5f8e383db8], [ 0x0], [0x9d1ac7a8bbd162bb, 0xbfc91b6413573aef, 0xb966cfb25c75db9b])
+ self.div([0x655256d4a9770c56, 0xb15f600b89a2bb4b, 0x252a42bdddac2453], [0xa4238d0f72518eb4, 0x421c7001ca592e63, 0xcb815f7eb1ede82f], [ 0x0], [0x655256d4a9770c56, 0xb15f600b89a2bb4b, 0x252a42bdddac2453])
+ self.div([0x30fae1640afbb93f, 0x25e1c5566d09014c, 0x5834db5e6dc98c2c], [0xf559dfe63197fcd0, 0xef874d62fa147487, 0x108262b8bab8f5fa], [ 0x0], [0x30fae1640afbb93f, 0x25e1c5566d09014c, 0x5834db5e6dc98c2c])
+ self.div([0x537a8788938bbe64, 0x482864456667797d, 0xc854cebba6eb55fe], [0xef7395be6c00e8fe, 0x66d05db60b90f46b, 0x5bdfed2db71e3dfe], [ 0x0], [0x537a8788938bbe64, 0x482864456667797d, 0xc854cebba6eb55fe])
+ self.div([0xcf5d4b768eef6931, 0x2d1eba10c89c81b2, 0x6ff5a310ecbdc779], [0x938c29c2b7160240, 0xf5658c9dbf54f44a, 0x7f7610d8e7808356], [ 0x1], [0x3bd121b3d7d966f0, 0x37b92d7309478d67, 0xf07f9238053d4423])
+ self.div([0x44829e1af888de16, 0x7614a64d572d9b8c, 0xee6e25de4544a351], [0xe4b4befd89a86426, 0xe5937a05f200ac80, 0xfe5d4aefcde25d98], [ 0x0], [0x44829e1af888de16, 0x7614a64d572d9b8c, 0xee6e25de4544a351])
+ self.div([0x4a07f097bbc3b339, 0x72d5dc5b17cbfce0, 0x33bbbd04e39a535e], [0x69eb592362d11a15, 0xb63a8beb3c968bd0, 0x549bc1f80d375141], [ 0x0], [0x4a07f097bbc3b339, 0x72d5dc5b17cbfce0, 0x33bbbd04e39a535e])
+ self.div([0xd831e815adf9ddd0, 0x5034bc706f13483c, 0x602d5a3b4535e436], [0x712f0a52bd359483, 0x5e5ea32ba0342b9e, 0xa185878e0039c047], [ 0x1], [0x6702ddc2f0c4494c, 0xf1d61944cedf1c9d, 0xbea7d2ad44fc23ef])
+ self.div([0xacfbf0af49a1d182, 0xb47413fa3a64664a, 0xeae79633ca781674], [0xe2307ab3863100f4, 0x2a196e0a5901c171, 0xf536863a826a4c28], [ 0x0], [0xacfbf0af49a1d182, 0xb47413fa3a64664a, 0xeae79633ca781674])
+ self.div([0xe58b5fa91b95c5c1, 0x1a679077e8580337, 0xcde1a0b265588b87], [0x452fef4fda84b180, 0x98ba739063c3d9ea, 0x10b62de437533994], [ 0x3], [0x15fb91b98c07b13f, 0x503835c6bd0c7579, 0x9bbf1705bf5edecb])
+ self.div([0xd615e5dcef065bc6, 0xa9a4d9a32eab9888, 0x539d68c8ab246b6f], [0x77debdfacea93e44, 0xcb1e5a8a9f187d71, 0x8906f2265cc1dc77], [ 0x1], [0x5e3727e2205d1d81, 0xde867f188f931b16, 0xca9676a24e628ef8])
+ self.div([0xf0035af8bcce785a, 0xd9d7088f9249ffa7, 0xd70a8a6210abe63f], [0xd0444e75a402d73f, 0x1ff3cbeeff3f5470, 0xd5cd23bd44228d71], [ 0x1], [0x1fbf0c8318cba11b, 0xb9e33ca0930aab37, 0x13d66a4cc8958ce])
+ self.div([0xcbc11ed1429b4c95, 0x451e80a4b3daa886, 0xdc5c98a12ca249e5], [ 0xe68f71fc4eb7f92, 0x18b54e6eee259447, 0x8e0d3dcfb72a0bd], [ 0xe], [ 0x2039b147dba5297, 0xeb343693adcc8ca4, 0x6011028b6c5d7f8f])
+ self.div([0x567f4f2d189afa68, 0xe6f50997a57fd6c6, 0x6dcc861ba3a4401e], [0x104b86952ca23750, 0x1c9609dd2f961e42, 0x114ddbad6ab166e5], [ 0x5], [ 0x505ae43396fe5d8, 0x5806d845b7913f7c, 0x17473bb88e2d3da5])
+ self.div([0xeab8036d09cbdfe9, 0x79506b646cfa1e7, 0xd6060ec22353ae38], [0x5c683d428717b929, 0x77757734f9287f6f, 0xb6b93da6ba12cc8c], [ 0x2], [0x31e788e7fb9c6d96, 0x18aa184c547ea308, 0x68939374af2e1520])
+ self.div([0x83cf4a302bd4ec93, 0xe9fe880e4165db08, 0x7b662632389c4ec3], [0x78b508d496fd6938, 0xae78f0cfc76d897e, 0xf8061712b8715d5e], [ 0x1], [ 0xb1a415b94d7835b, 0x3b85973e79f85189, 0x83600f1f802af165])
+ self.div([0xafce9f08f76c5422, 0xf8f356434a518a90, 0x2b0e6556b515148f], [0x668e4f2702aff6ce, 0x9559055c34c30e63, 0x8481e3faa9326af9], [ 0x1], [0x49404fe1f4bc5d54, 0x639a50e7158e7c2c, 0xa68c815c0be2a996])
+ self.div([0xfcaa331c32027465, 0x6a8c333aabc0ccef, 0x945155a0d701b810], [0x3cf3f4820c28cd3b, 0x40c08f39b62e8b6b, 0xb2285c9193722586], [ 0x4], [ 0x8da6114015f3f78, 0x6789f653d3069f40, 0xcbafe35a893921f8])
+ self.div([0xeedb0d6be806e9c3, 0xda7d63874df0b70d, 0x8502e10584f7699e], [0x429d42f308b3e5b4, 0xa91d7bec4403e28f, 0x12795ea6938b34d0], [ 0x3], [0x27034492cdeb38a5, 0xdf24efc281e50f60, 0x4d96c511ca55cb2e])
+ self.div([0xb34a0ec5cdeced4f, 0x21da98967163055c, 0x11519943ab4406f7], [0x12c9aa677542fcb9, 0x3ce0a5d39c7309ff, 0x265444d0364aa355], [ 0x9], [ 0xa331122ae920acb, 0xfdf4c425f157ab63, 0xb85b2df1c2a448fa])
+ self.div([0x775c0c8fff430746, 0x4538ed4da9edbc61, 0xf0b62f2794e90bc9], [0x6a999dcc959aec99, 0x404b697885a948c5, 0x3312bbf8e5c5b411], [ 0x1], [ 0xcc26ec369a81aad, 0x4ed83d52444739c, 0xbda3732eaf2357b8])
+ self.div([0xd1210dabbbc4a9bb, 0xeb68715ac5718668, 0xe389ba8a376dcb58], [ 0x7495572f0522543, 0x159e75c654d770ba, 0x5be1fdcf2c93cde7], [ 0x1c], [ 0x51bb51972c89665, 0x8e138fa97de13206, 0xd6d1f7e157434614])
+ }
+
+ func test_div_3_by_4() {
+ self.div([ 0xdd37bf0606d8a3b, 0x19cce5af243513b3, 0xf4d7737fc47df2eb], [0x7f1942d6b445cfbe, 0x62174a087506df80, 0x832eeb967e898d89, 0x2734179e4d4f3899], [ 0x0], [ 0xdd37bf0606d8a3b, 0x19cce5af243513b3, 0xf4d7737fc47df2eb])
+ self.div([0x2318531acb5b08c9, 0xaa9829c975454e44, 0x6264e0e230a4f337], [0xe75de77ccb92ba5c, 0x144f8d1a239edf0a, 0x84e9650a00a371f0, 0x3b1afe82617a9ec2], [ 0x0], [0x2318531acb5b08c9, 0xaa9829c975454e44, 0x6264e0e230a4f337])
+ self.div([0xe0e14ce47b87fd79, 0x2c904ba6a03fc8b3, 0xa60b6c041eb422b7], [0x6f969cc3a068cd97, 0xce62bc01421a1e7b, 0xd631d8e072951af9, 0x6d5a37269374fb8d], [ 0x0], [0xe0e14ce47b87fd79, 0x2c904ba6a03fc8b3, 0xa60b6c041eb422b7])
+ self.div([0xec9c4429fcae2ee2, 0x832c64c145d55bb0, 0x83159639e163d418], [0xa6a0c2222199be66, 0x6280503aaace92b4, 0x3d05f04a406d567f, 0x7f5d11aaf25e6d49], [ 0x0], [0xec9c4429fcae2ee2, 0x832c64c145d55bb0, 0x83159639e163d418])
+ self.div([0x212dfa2531d8b101, 0xd415145aa081fa2a, 0x6519a01c575ece68], [0x2214760986ac99a8, 0x7a5a637bc5fe602e, 0x79524365e3327716, 0x609a8c54b634e50a], [ 0x0], [0x212dfa2531d8b101, 0xd415145aa081fa2a, 0x6519a01c575ece68])
+ self.div([0x32812c313892a27a, 0x3df8564b050d03f, 0xfd76ae5b54f9b8c3], [ 0x9d5f66937c54228, 0x2ee0257c3b5b57ed, 0xfd9959b774b2387f, 0xceff4bcf4cbb2a3b], [ 0x0], [0x32812c313892a27a, 0x3df8564b050d03f, 0xfd76ae5b54f9b8c3])
+ self.div([0xd94fa9218a7ce082, 0x81d5a8e3dcf18aa3, 0xd2aa7d416d74aaea], [0xdefb0a28fff6ff1e, 0x2eeca4a1de1dde0e, 0xb2f671b4f0335a6a, 0xb899cc244ac3d320], [ 0x0], [0xd94fa9218a7ce082, 0x81d5a8e3dcf18aa3, 0xd2aa7d416d74aaea])
+ self.div([0x91e014b9b66474c1, 0x4950f356265048ce, 0xfad7e53c62e23a15], [0xf7fd3ab8b31fd38c, 0xa515b163ff8ea3a7, 0xc18c77aa0cf61d7d, 0x3231a5c69c870560], [ 0x0], [0x91e014b9b66474c1, 0x4950f356265048ce, 0xfad7e53c62e23a15])
+ self.div([0x4eaa0cd0d4b0b31b, 0x9c2c79822ff2b0b, 0xe9b56e73d3b2c2e8], [0xec34ac7e05df556c, 0xbd795bbcb3914f69, 0x9822868ace5e8435, 0x95f7b40fec308344], [ 0x0], [0x4eaa0cd0d4b0b31b, 0x9c2c79822ff2b0b, 0xe9b56e73d3b2c2e8])
+ self.div([0xcd08659037713742, 0x32db1275718ce220, 0xc93de37cf13ce7d1], [0x3ad9b78feb47e5d8, 0x90bfccdd594a413f, 0xaab6536725e7d562, 0x46a50a039fc94243], [ 0x0], [0xcd08659037713742, 0x32db1275718ce220, 0xc93de37cf13ce7d1])
+ self.div([0xab845401a325758a, 0x947e660ac5fc97fd, 0xac97c05b338e44d5], [0xa745275551f9f710, 0x588924b114653b77, 0x38b4347b7829ec17, 0xed73f29ae3cad525], [ 0x0], [0xab845401a325758a, 0x947e660ac5fc97fd, 0xac97c05b338e44d5])
+ self.div([0xb48a5ce942b67777, 0xdbce9ba19b345f8, 0x6b3bfc683f745a54], [0x537bdb24a30a6c96, 0x7a47aef59da1701c, 0x9bb2757173967dd5, 0x8d87e62abbdac23b], [ 0x0], [0xb48a5ce942b67777, 0xdbce9ba19b345f8, 0x6b3bfc683f745a54])
+ self.div([0xa1d0a4853bbec7c6, 0x8e8c7cfc3102ef32, 0xe08e1445566e3f0b], [0xade90d668255441d, 0x528eb067aabf11f9, 0x145d027b3c8606c5, 0xf44b7cb41949a533], [ 0x0], [0xa1d0a4853bbec7c6, 0x8e8c7cfc3102ef32, 0xe08e1445566e3f0b])
+ self.div([0x287e3c4ea460d3b3, 0xe3edac6c768c4a0c, 0xa497a99d3bf8190b], [0xc9b16c2a9c9696d3, 0x64ad920b8ac0288a, 0x3a0724fe849471c8, 0x6d0e35e2466fd93e], [ 0x0], [0x287e3c4ea460d3b3, 0xe3edac6c768c4a0c, 0xa497a99d3bf8190b])
+ self.div([0xf6aaeb0f54b7ac25, 0xd79c66752e3ae4ee, 0x84c6291f2f38eac], [0xcad0107ee6b36b2e, 0x51e5ad7614b0fa3a, 0x32107876bb7ecc2a, 0x8f3ea184e27dd4e1], [ 0x0], [0xf6aaeb0f54b7ac25, 0xd79c66752e3ae4ee, 0x84c6291f2f38eac])
+ self.div([0xa3cc6f101dc84843, 0x18c7614b9660b5b7, 0x120a9e9da1a4d642], [0x536e23d1eaf0a514, 0xbe137b21442569a2, 0xa41be837c244ed97, 0x6a68c358f80a43b], [ 0x0], [0xa3cc6f101dc84843, 0x18c7614b9660b5b7, 0x120a9e9da1a4d642])
+ self.div([0x5ee37209f60a4cfa, 0x54462d49f34fd22b, 0x94e1266d6805eb64], [0x2d7b4dbc8fcd38d9, 0x3e7e743228a298b9, 0x7085563a557c7318, 0xba7f2007295ccab], [ 0x0], [0x5ee37209f60a4cfa, 0x54462d49f34fd22b, 0x94e1266d6805eb64])
+ self.div([0x6217660f2095aeaa, 0xe761475892a43efd, 0x7b619b60d56e60c], [0xb0b934c8988974f3, 0x52f886934863adf0, 0x9019ba0964e39d3, 0xd61d7fd3039c7b9f], [ 0x0], [0x6217660f2095aeaa, 0xe761475892a43efd, 0x7b619b60d56e60c])
+ self.div([0x72f8849d04322561, 0xa38d54076c278a1, 0x3a168cca490924a9], [0xb02c4bcfdd848e7b, 0x19d4adf21ef0e7be, 0x56057c9d39996844, 0x6b052718dedccc9e], [ 0x0], [0x72f8849d04322561, 0xa38d54076c278a1, 0x3a168cca490924a9])
+ self.div([0x3646a695fb489e6b, 0x4b95e3bdc9032de2, 0xaea8e65aac94e3e3], [0xad876ff674b01a30, 0x84425ae73f597b46, 0x9a86a7e7a52eb80d, 0x29a2ebedfd7b4794], [ 0x0], [0x3646a695fb489e6b, 0x4b95e3bdc9032de2, 0xaea8e65aac94e3e3])
+ self.div([0xb7ec86e831146ccf, 0x117fa1ede78efa50, 0x53ec88f5dc86b4eb], [0xc617b2c22f187738, 0xcea5150865973cc4, 0xe705236022eb7b68, 0xfc743dfb49395a0b], [ 0x0], [0xb7ec86e831146ccf, 0x117fa1ede78efa50, 0x53ec88f5dc86b4eb])
+ self.div([0x53d6fe717781d3f0, 0x33eef4e5cb4854e4, 0x85fa9b6838be0ec0], [0xa73ac956e1d87db0, 0xc460c6e86095e7d, 0x65e66be5d0e239e, 0x1460285c654aa77e], [ 0x0], [0x53d6fe717781d3f0, 0x33eef4e5cb4854e4, 0x85fa9b6838be0ec0])
+ self.div([0xdf96e8c115dcb141, 0xc0ae208f66c2f757, 0xf318f1357b1cd8fb], [0xa3ae341b079ebbde, 0x97ca41672b2055ae, 0x24d4f6f20517b483, 0x6a43558d2cf28b61], [ 0x0], [0xdf96e8c115dcb141, 0xc0ae208f66c2f757, 0xf318f1357b1cd8fb])
+ self.div([0x1a83349ccc783c51, 0x2b8212a27cae288e, 0x6054ccd0f4bdcc89], [0xd574894f3da10432, 0xe8ca816994408f20, 0x416287e354e52649, 0xfbb3e5e2cbb22a40], [ 0x0], [0x1a83349ccc783c51, 0x2b8212a27cae288e, 0x6054ccd0f4bdcc89])
+ self.div([0xfd2244edbcf7ce8a, 0x96b804a8a81331ae, 0x95c4f95322048a10], [0xb63c61cc3aff0178, 0x8aa316a8ca8a95b2, 0x9e769ac84c177b4, 0xa9cd179f4430b192], [ 0x0], [0xfd2244edbcf7ce8a, 0x96b804a8a81331ae, 0x95c4f95322048a10])
+ self.div([0xf94cd3acb7e8f318, 0xa357332578d93cc7, 0x6172b8502250c9f9], [0xc551e50883a62b1a, 0x1e648b9d05f18909, 0xa7ff5ab878171501, 0x224c6b16c8328080], [ 0x0], [0xf94cd3acb7e8f318, 0xa357332578d93cc7, 0x6172b8502250c9f9])
+ self.div([0x432c1e7c66c1539f, 0x5bc3a4c0cb0a70e, 0x41cdbfcc8bf6d9c1], [0x5b6c696cc35e3bb4, 0x4faabd3272ca0ae1, 0xb9447d6c1c2037b2, 0xe42e100af0476901], [ 0x0], [0x432c1e7c66c1539f, 0x5bc3a4c0cb0a70e, 0x41cdbfcc8bf6d9c1])
+ self.div([0x5b28552091bb8000, 0xe8a262c1861ff085, 0xaab3768d98d0048f], [0x1c76e6013bed88fc, 0x7357fb6dca62eb6f, 0xc7472936f4bbdfb5, 0x57a2ad3e97a0d8cd], [ 0x0], [0x5b28552091bb8000, 0xe8a262c1861ff085, 0xaab3768d98d0048f])
+ self.div([0x52d6309dd5fa4b21, 0xaf311fe82b8638e3, 0x37f8a63a120b728a], [0x93b227fda394f2d5, 0x12198afadf0e579b, 0xd7438bd7bdb89162, 0xc54a8bd03286a6d7], [ 0x0], [0x52d6309dd5fa4b21, 0xaf311fe82b8638e3, 0x37f8a63a120b728a])
+ self.div([0x7bf875605d90a1b3, 0xdee87fc5a7410dc2, 0x6731b56f6b3ac754], [0x57d2bcba5c2fdf91, 0x563a30b03cb59f19, 0x20d4e1e258bd356, 0x4a8a37cc307e4a77], [ 0x0], [0x7bf875605d90a1b3, 0xdee87fc5a7410dc2, 0x6731b56f6b3ac754])
+ self.div([0x316f4531bece691d, 0x5aba70efafa4208, 0x3d23cafc7523f766], [0xe9772fc21d3bc2ab, 0x886cdd3e2fae4b5, 0xccf88a4e6035fa36, 0x75a91a2c53960d3c], [ 0x0], [0x316f4531bece691d, 0x5aba70efafa4208, 0x3d23cafc7523f766])
+ self.div([0x9e061ff868e65340, 0xf4196207de273288, 0x82e9866dfb5beb26], [0x2eb0574239003cb0, 0xa3fa816ce77a8db0, 0x55373bb29e8a9439, 0x1a0ee83d539b281], [ 0x0], [0x9e061ff868e65340, 0xf4196207de273288, 0x82e9866dfb5beb26])
+ self.div([ 0x73b4d786b0ab045, 0x8c7e9578273497d1, 0x98fe64237fae4245], [ 0xb5e6997859e8972, 0x625569d70373070d, 0xf30890f94fa014f0, 0x48a34c7a6c209472], [ 0x0], [ 0x73b4d786b0ab045, 0x8c7e9578273497d1, 0x98fe64237fae4245])
+ self.div([ 0x5ba40b748a7936d, 0x53befef8bf5d8b31, 0x6d6fd7022530b52c], [0x50a7171193c8c144, 0x3af9eab63d3a4f41, 0x37769cb82b612559, 0xb4ff2559f608cc0f], [ 0x0], [ 0x5ba40b748a7936d, 0x53befef8bf5d8b31, 0x6d6fd7022530b52c])
+ self.div([0xe239f73ad6a61320, 0x83e7fc2ada38cfae, 0x9418ec5b4cef43bf], [0x286f68e99be8404c, 0x647221ffd185e3a8, 0x1983cb8ad2a1c18, 0xa3253980400daf9a], [ 0x0], [0xe239f73ad6a61320, 0x83e7fc2ada38cfae, 0x9418ec5b4cef43bf])
+ self.div([0x8944e7efe9ad021d, 0x8b5414e1f4793e04, 0xccb7d46c3974258f], [0x98066fd9916d6a8f, 0x4196e14b4621a5e, 0xfddfde537efe970c, 0x8254a6b72010bf43], [ 0x0], [0x8944e7efe9ad021d, 0x8b5414e1f4793e04, 0xccb7d46c3974258f])
+ self.div([0x3ba9c3949aeddbd1, 0x532b26969bb4a408, 0xdce534a8a7b6f654], [0xc4b7fa663075ca42, 0x70e7e6352af9f48d, 0x2393d4e84423fae4, 0x65cce8df6bed6b50], [ 0x0], [0x3ba9c3949aeddbd1, 0x532b26969bb4a408, 0xdce534a8a7b6f654])
+ self.div([0x7d88eade0e73e3dd, 0x5d83ed8f5a5f6415, 0x30900bcdc82c5019], [0xbdeb1ae2a9262511, 0xb427ec6c0b9d4f8b, 0x3e00d2e752b185cd, 0x93bef27596036c40], [ 0x0], [0x7d88eade0e73e3dd, 0x5d83ed8f5a5f6415, 0x30900bcdc82c5019])
+ self.div([0x8ddbc611a3bde55c, 0x5a281d28eda6618f, 0x64d76fc337dbb803], [0xd29ea0f0a7cd2c4d, 0xf6eb2e8450263403, 0xe2f28bab5993906c, 0xb1574c5985c24d5a], [ 0x0], [0x8ddbc611a3bde55c, 0x5a281d28eda6618f, 0x64d76fc337dbb803])
+ self.div([0x5e2a489f738fd8d7, 0xac6d22832c28f116, 0xd2b80d01bc3d5f19], [0xb2d6f76fbae6a5ec, 0x5a4b991795e08df, 0xd81ccc7c2b8bcd4b, 0xf4b9aa63ae0d11b6], [ 0x0], [0x5e2a489f738fd8d7, 0xac6d22832c28f116, 0xd2b80d01bc3d5f19])
+ self.div([0xf7d9ea6b51d88c60, 0x3e8892291876c2da, 0xd48f3a64582600ad], [0x5541a83255792bcc, 0xc26f872192984ca1, 0x78cacefc25024fda, 0x4ab4e04393061455], [ 0x0], [0xf7d9ea6b51d88c60, 0x3e8892291876c2da, 0xd48f3a64582600ad])
+ self.div([ 0x5c7587bb83a5ee, 0x8da1c62cd829ef42, 0x659965585d8ae0f3], [0x79d5a25ed2e62e70, 0x392fbaf35b98ce4b, 0xc9af07b503022df6, 0xb0dc49c0034a94de], [ 0x0], [ 0x5c7587bb83a5ee, 0x8da1c62cd829ef42, 0x659965585d8ae0f3])
+ self.div([0xe8474e779a692679, 0xd1aa7e4971c0d69, 0x4b3cb63e105229], [ 0x321f7ae52e3b62b, 0x15837ec9749b0b7d, 0xcae75623178c11a5, 0x1d90b2c54d8dfd4a], [ 0x0], [0xe8474e779a692679, 0xd1aa7e4971c0d69, 0x4b3cb63e105229])
+ self.div([0xa78d76ec76a4209b, 0x160b370582929d49, 0xfc64383d27e02c10], [0xc2c4d1e7e4189b24, 0x6c0a0ed32092844d, 0x6dc800bdc66535d4, 0xe608bb4920fdbdc9], [ 0x0], [0xa78d76ec76a4209b, 0x160b370582929d49, 0xfc64383d27e02c10])
+ self.div([0x6c1333e2377cac66, 0xc056da5386ad5ec9, 0xe327d4c99dab2459], [ 0x62bcb145494dde9, 0xe0689508f9d3edd9, 0x14a514c0a323eeba, 0xd7c841e2c1b3fc6b], [ 0x0], [0x6c1333e2377cac66, 0xc056da5386ad5ec9, 0xe327d4c99dab2459])
+ self.div([ 0xe3412a2a5bce991, 0xb8eee9787c09bc79, 0xf36fcd047243ffe1], [0x419409591dc898ec, 0xe7d1b73368db03ec, 0x7801e96468d3c88e, 0x462d196bbf0c8762], [ 0x0], [ 0xe3412a2a5bce991, 0xb8eee9787c09bc79, 0xf36fcd047243ffe1])
+ self.div([0x182519e957c657b8, 0x87d7bcc3034393e5, 0xd094481a3841844d], [0x1935360091d46a44, 0xc6eb85deaf4235e3, 0x935c892209279e18, 0x68f1d3d148c2cd11], [ 0x0], [0x182519e957c657b8, 0x87d7bcc3034393e5, 0xd094481a3841844d])
+ self.div([0x884fc97dc263ddb7, 0x45dfecc677747e4c, 0x3ff7f3c4cfa6724b], [ 0x169c8e090100aa7, 0x9124710a3c5e894f, 0xba9aec00831c44e0, 0xadd02e38ebfdd521], [ 0x0], [0x884fc97dc263ddb7, 0x45dfecc677747e4c, 0x3ff7f3c4cfa6724b])
+ self.div([0xc02ede9fabe56e1f, 0x11eedf4a7f040c1c, 0xc7b7be48f53ea6c4], [0x89f74d6febc6fe4a, 0x50987161e105472, 0x70ee2084e1c9f145, 0x39ac3e57c47027b1], [ 0x0], [0xc02ede9fabe56e1f, 0x11eedf4a7f040c1c, 0xc7b7be48f53ea6c4])
+ self.div([0xae0114401ee905e5, 0x48c11c7f71347a97, 0x1ffb9df474009f03], [0x364aff47c7671bae, 0xa0d4dccecc421df3, 0x3ec60ae727bb2905, 0xd75af4e13f45999f], [ 0x0], [0xae0114401ee905e5, 0x48c11c7f71347a97, 0x1ffb9df474009f03])
+ self.div([0x38a0ea6d118a9588, 0x853ff71f637ce74e, 0xfb85e4a810c2a503], [0xc077042bebc2fec2, 0x7e413b475542de69, 0x436f15a94e619f39, 0x7a6fe07babec4ec0], [ 0x0], [0x38a0ea6d118a9588, 0x853ff71f637ce74e, 0xfb85e4a810c2a503])
+ self.div([0x455df94e5e5e6729, 0xbb6beb8f10d73f7, 0xc4a1c38d6a0f5397], [0xfae1fcb6afec24da, 0xd0672d9c5826d60c, 0x40512a20a35ca8ee, 0x91d2847fea174d38], [ 0x0], [0x455df94e5e5e6729, 0xbb6beb8f10d73f7, 0xc4a1c38d6a0f5397])
+ self.div([0x3cbc07e7c0f9a5cd, 0xafddece0ed60555b, 0xe5ecdfcdc06dabeb], [0xcf738e2741a85ebd, 0x4667f8ecf1a86ee2, 0xd59677e875614bc9, 0xb8c818f342ccc743], [ 0x0], [0x3cbc07e7c0f9a5cd, 0xafddece0ed60555b, 0xe5ecdfcdc06dabeb])
+ self.div([0x786f99ed88167470, 0x584896f4001fc8b5, 0x8c57e3b7298a57b6], [0x947167325d010340, 0x7fa4589bd58220a2, 0x77ea3aaaf9793764, 0xbc6518bcdd83f5e4], [ 0x0], [0x786f99ed88167470, 0x584896f4001fc8b5, 0x8c57e3b7298a57b6])
+ self.div([0x3c547461e39ec4ff, 0x52a68ca897615be5, 0xdc5f745e2d9deaaa], [0x233ebaff5e90937e, 0x38392c0f13822a95, 0x1fb79c60837b8935, 0xd458f5793f6976e1], [ 0x0], [0x3c547461e39ec4ff, 0x52a68ca897615be5, 0xdc5f745e2d9deaaa])
+ self.div([0xefac60ff047457eb, 0x2b9d9c25be8c7ebc, 0xc8ada7e4590cabe1], [0xa06d6dda97a64caf, 0x77a01b16408794a0, 0xeff532fbb69eba33, 0xcbd0b187c59c608d], [ 0x0], [0xefac60ff047457eb, 0x2b9d9c25be8c7ebc, 0xc8ada7e4590cabe1])
+ self.div([ 0x8bba37a492466ac, 0xa20ba3a8186020f6, 0xb85bd3efc5510dbf], [0x2b89cd372cc69ceb, 0x2605a16c7edccb4b, 0xbef9a828244b5b61, 0x7a3265aadfeaca32], [ 0x0], [ 0x8bba37a492466ac, 0xa20ba3a8186020f6, 0xb85bd3efc5510dbf])
+ self.div([0xe0d0c51ec0c0812f, 0x4304007ecd36b39b, 0xb21140ec72bafcf], [0x8b6c9963a9dda93e, 0x81f9eb36ea4baded, 0x8a363e5052486dff, 0x6a2f44d577a161cc], [ 0x0], [0xe0d0c51ec0c0812f, 0x4304007ecd36b39b, 0xb21140ec72bafcf])
+ self.div([0xe4f520830154b05f, 0xea0bf235664f7375, 0xe858fa422fbd2031], [0xaac8471af241144a, 0x7baf72c11837f13c, 0x1fab92660b8d028e, 0x4b365cede1d7b08], [ 0x0], [0xe4f520830154b05f, 0xea0bf235664f7375, 0xe858fa422fbd2031])
+ self.div([0x2b45fd45ae9649f1, 0xc7ee4319efaa393, 0x44ea0b07c1093d24], [0xabc80dadf4f44b6c, 0x7f9b5ec419c24107, 0x78d99a7235ed47b, 0xdb74092949a91178], [ 0x0], [0x2b45fd45ae9649f1, 0xc7ee4319efaa393, 0x44ea0b07c1093d24])
+ self.div([0xfc424793b77f488f, 0xfb545ae57eb2c5f0, 0x94002f6cd466d4e2], [0x5e9a4a01d8123844, 0xd6e74d9e51000831, 0x21b544ce95014368, 0x1f60dc4adaa0eea7], [ 0x0], [0xfc424793b77f488f, 0xfb545ae57eb2c5f0, 0x94002f6cd466d4e2])
+ self.div([0xa7148c0975227d10, 0x150a0ff0bba0a8f8, 0xe40cadcdc7120721], [0x4ec95ace3310e746, 0xa5c4b9a6deefe2d1, 0xff29ba19c65db660, 0x7bad650775fca7e5], [ 0x0], [0xa7148c0975227d10, 0x150a0ff0bba0a8f8, 0xe40cadcdc7120721])
+ self.div([0x598c3012e31225e2, 0x1608874276068d64, 0x17ef09eaadd4457a], [0x3bcead3da7b0e459, 0x5b187d6935bd515a, 0xaf7c61b8208e8057, 0x829c5697516d1e7a], [ 0x0], [0x598c3012e31225e2, 0x1608874276068d64, 0x17ef09eaadd4457a])
+ self.div([0xc69e38dedf59c420, 0x179a2fa53c8bda68, 0xedf332d191a2c2bc], [0xe96b6621092d9b4a, 0x53f8c1875f95942f, 0x616b0591b40f807a, 0x45cab634bd313a6f], [ 0x0], [0xc69e38dedf59c420, 0x179a2fa53c8bda68, 0xedf332d191a2c2bc])
+ self.div([0x989d8351685a753a, 0xb43477e9540ac176, 0xd191ec7bfc653cb1], [0xf53f32109846ab73, 0x578e3dedc8f59015, 0x33ffb3f46e7ba995, 0xdcd08b9b53f7f125], [ 0x0], [0x989d8351685a753a, 0xb43477e9540ac176, 0xd191ec7bfc653cb1])
+ self.div([0x955d0a314fb85c70, 0x3c071661946ee80f, 0xa4e88e877979fcaf], [0xa7ede658c270b324, 0x328b6166ee25a121, 0xd98fd741dcfe9331, 0xdfb3edc352870624], [ 0x0], [0x955d0a314fb85c70, 0x3c071661946ee80f, 0xa4e88e877979fcaf])
+ self.div([0x8194febbd06679ff, 0x1d31e07ed70bfe9e, 0x9b7ef89b1ae25222], [0x1f7dda7341fa82cd, 0x4c4a9cecb9414ab8, 0xa6b3d75944a4fa36, 0x3b250fe0c3b06ac1], [ 0x0], [0x8194febbd06679ff, 0x1d31e07ed70bfe9e, 0x9b7ef89b1ae25222])
+ self.div([0x89d2bbc9ee227fb8, 0x33288acf25f6f663, 0x508be53d62753590], [ 0x4e1d20fb5824197, 0xfa75a9f4fa16f14c, 0x18152a50b772c90d, 0xaea5a8896c4df579], [ 0x0], [0x89d2bbc9ee227fb8, 0x33288acf25f6f663, 0x508be53d62753590])
+ self.div([0xc35b7450b2ce0d52, 0x1edb7d3b1bd43ecd, 0x14919796c524d431], [0xb319ee2a00aa6874, 0xdf9fb96180a6d047, 0xeffb9c847902a256, 0x4bf33aac2152860c], [ 0x0], [0xc35b7450b2ce0d52, 0x1edb7d3b1bd43ecd, 0x14919796c524d431])
+ self.div([ 0x8d7b8a852724234, 0xbeefe175acd8befb, 0x706320ecd6915e5d], [0x13d821752fe82fd6, 0x362af7bfac576efc, 0xc7f67e200479018a, 0x78cd412fd3ad4b1a], [ 0x0], [ 0x8d7b8a852724234, 0xbeefe175acd8befb, 0x706320ecd6915e5d])
+ self.div([0xb9269acf929d5ae9, 0x779b131591bab674, 0x8c6d41a5a35b6e8d], [0x53ac20c53fc4722d, 0x17b62bab24f88efb, 0xf507ab4c99b84897, 0xcb1dd4853366603d], [ 0x0], [0xb9269acf929d5ae9, 0x779b131591bab674, 0x8c6d41a5a35b6e8d])
+ self.div([0xafadf289af5240ae, 0xc5d84267d9db3b37, 0x18646fc7d875ec8d], [0x54c892ccbe51cc92, 0x97e5e7f6d35dd953, 0x84eaff430ec42c2c, 0x4597aefbfc204f32], [ 0x0], [0xafadf289af5240ae, 0xc5d84267d9db3b37, 0x18646fc7d875ec8d])
+ self.div([ 0x71bfcf665bf739a, 0x1b741df034873b4e, 0x919c7dba4d09f470], [0x299186d77ba5804d, 0x3d3e15bc89c1407, 0x33593ed85ecce6b5, 0x36177e975700d184], [ 0x0], [ 0x71bfcf665bf739a, 0x1b741df034873b4e, 0x919c7dba4d09f470])
+ self.div([0xf0ffa3f6254087d2, 0x8837c8890b482543, 0xba69f15a18611eaf], [0x8840f0ed6dbe27b3, 0xd4b3d7916d46d7f, 0x598bd36557e06bb9, 0x6104c5dfe8e2d6d], [ 0x0], [0xf0ffa3f6254087d2, 0x8837c8890b482543, 0xba69f15a18611eaf])
+ self.div([0x5b3463f546f2240f, 0xa6f935af57868fc8, 0xc8af2c2ceab3ff0], [0x9d4afca76dbcea8a, 0x96eb8e62573ef4bc, 0xf8f7d1307b4b2b4b, 0xdd4b493173515076], [ 0x0], [0x5b3463f546f2240f, 0xa6f935af57868fc8, 0xc8af2c2ceab3ff0])
+ self.div([0x8d14fd5702973ab1, 0xea1f4725ad1be0aa, 0x7726465ab3d492f4], [0x2bc5c8ef19baff09, 0x7be66ad378400d48, 0x1af7d096dfa77983, 0x250f3bc983eaafb7], [ 0x0], [0x8d14fd5702973ab1, 0xea1f4725ad1be0aa, 0x7726465ab3d492f4])
+ self.div([ 0x2c209c145243d12, 0xb13b60c5064941e1, 0x9ade53cb130a218b], [0x9bd997a5f3509251, 0x9df63ac577f462c5, 0x91f08bb2f049b666, 0x351fbca788f5d9a5], [ 0x0], [ 0x2c209c145243d12, 0xb13b60c5064941e1, 0x9ade53cb130a218b])
+ self.div([0x1de99ee0c373c8f6, 0xff4f05e643c3fb3c, 0xc64c228d0323c5c0], [0x2665c51fc5e8372a, 0x40394e6fd087f0b6, 0x3d2fc24ae54fd2b1, 0x6e3b9dbd152d49ae], [ 0x0], [0x1de99ee0c373c8f6, 0xff4f05e643c3fb3c, 0xc64c228d0323c5c0])
+ self.div([0xfd0115090049458e, 0x27edf043abbd668b, 0xd13de5bbc6c2f50c], [0x25a03353237d0d20, 0x29831bb02a9227c4, 0xb5ec992b6c04e5ad, 0xb1563070b6a53167], [ 0x0], [0xfd0115090049458e, 0x27edf043abbd668b, 0xd13de5bbc6c2f50c])
+ self.div([0x4d0c2bd5bc08209e, 0x77887169b09cb8a6, 0x9815fa0c76e1be77], [0xc22de2c0c15d8357, 0x154036dc6dd1747b, 0x392b890bdb47a79e, 0xccd87fe990ce00bf], [ 0x0], [0x4d0c2bd5bc08209e, 0x77887169b09cb8a6, 0x9815fa0c76e1be77])
+ self.div([0xa0788caa3fb71096, 0x6e0bcc3efdfb8370, 0x79f891b6adc5116d], [0x51ef08f6ae3bebd5, 0xa8b76572c923239, 0xf3749a92939f279b, 0xb3893ff08b56272c], [ 0x0], [0xa0788caa3fb71096, 0x6e0bcc3efdfb8370, 0x79f891b6adc5116d])
+ self.div([0x8f3124dff7832ded, 0x5df5f2507e68ca68, 0x102e99033e68f075], [0xc08107fcfc54f652, 0x8a1d7176f5e10320, 0xadee2cba9816e5ff, 0xbf07d9502c349988], [ 0x0], [0x8f3124dff7832ded, 0x5df5f2507e68ca68, 0x102e99033e68f075])
+ self.div([0x6e97c793e6b415a0, 0x494f83ad3c3b1b7f, 0x8c5708f403bcdf1b], [0x56f9ec49bf6286d2, 0x2fa8bf4d56608804, 0xbf526b22e561296f, 0x21e25938877e3a4], [ 0x0], [0x6e97c793e6b415a0, 0x494f83ad3c3b1b7f, 0x8c5708f403bcdf1b])
+ self.div([0xbc4460c2043b2acc, 0x39b7b1b0120045a2, 0xdf586e2f3f7da7d5], [0xbd0ca6a28c8cae97, 0xebf653316f7f876d, 0xbe00e2d40ca37afb, 0x4b7f33724362e4f9], [ 0x0], [0xbc4460c2043b2acc, 0x39b7b1b0120045a2, 0xdf586e2f3f7da7d5])
+ self.div([0x42f3e6362f0b6772, 0x5376cef773f76d04, 0xa539d7470b213ded], [0xc772d2e18080cd64, 0xe52ad2f8124f4862, 0x9b7e181faa45bbf8, 0xdc5b03ea09b173a6], [ 0x0], [0x42f3e6362f0b6772, 0x5376cef773f76d04, 0xa539d7470b213ded])
+ self.div([0x64c1a27582bb1585, 0xbdcbf249d4fcdfd7, 0x5a9010e825c4a112], [ 0xfacf24cecbcc036, 0xc2574f92722b85, 0xf6a037205ad2a727, 0xdd05a8165be84af], [ 0x0], [0x64c1a27582bb1585, 0xbdcbf249d4fcdfd7, 0x5a9010e825c4a112])
+ self.div([0x702e2586d1d55227, 0x77411d68a9921348, 0x77970c157bc2e7ea], [0x74153533a95e81cb, 0x81020c556946c975, 0xb401949a3cf0ad38, 0xf48ae04723cc5c73], [ 0x0], [0x702e2586d1d55227, 0x77411d68a9921348, 0x77970c157bc2e7ea])
+ self.div([0x807b9f2c840bbbbd, 0x6188fd4fe27798c6, 0x4e0e7b6499e6c8dd], [0xd28e53da6901e2da, 0x6e49c285411a95, 0x1b318e93e3fca087, 0x66fd0701c5fd293b], [ 0x0], [0x807b9f2c840bbbbd, 0x6188fd4fe27798c6, 0x4e0e7b6499e6c8dd])
+ self.div([0x678b688a9dbff884, 0xd1bd3764a73cf194, 0x29c7e1efeb6c7382], [0xeeb248b1fe517ae5, 0xff4a088a3fc64b2c, 0x514fa108fa77c30f, 0x4ef597f17f0267c0], [ 0x0], [0x678b688a9dbff884, 0xd1bd3764a73cf194, 0x29c7e1efeb6c7382])
+ self.div([0x2aa2f4a2a11f53c7, 0x8a41f84ffa4403, 0x84c661cb7285d1a3], [0xe5ec9f93b4c5aada, 0x6d68da1a4ee93352, 0x1a681add5fe4d107, 0x7b09fe9b28732d9c], [ 0x0], [0x2aa2f4a2a11f53c7, 0x8a41f84ffa4403, 0x84c661cb7285d1a3])
+ self.div([0x855b0d3e8628a666, 0x54e80aae901f3620, 0x3966a8fb364cdaa3], [0x180cbd312fca6629, 0xde3c75aecc90f5f3, 0xdd45f3b0ea077937, 0xfbe21e2189429389], [ 0x0], [0x855b0d3e8628a666, 0x54e80aae901f3620, 0x3966a8fb364cdaa3])
+ self.div([0x377fc090d7359437, 0x91a61df506ce377, 0x8c68f274560b8136], [0x3a6886680cb88cf8, 0xe0653fbcf8c56722, 0xae5c7c85ad40b86c, 0x9c22742762d9ea1b], [ 0x0], [0x377fc090d7359437, 0x91a61df506ce377, 0x8c68f274560b8136])
+ self.div([0x9f41d7a62a1211fa, 0xfdb98de44a6eb4c7, 0xa4a3763ff118f748], [0x97d0d25ceebeece2, 0xecadcf1adc753b4b, 0xe6ab666c4a1383c8, 0x154a62b83cb9d83f], [ 0x0], [0x9f41d7a62a1211fa, 0xfdb98de44a6eb4c7, 0xa4a3763ff118f748])
+ self.div([0x63bc94d916c57bfd, 0x2b06ec078de5365, 0xbec07e74f89f4e35], [0xb88a7c4f94184e95, 0x1a7b9205fa53d8ff, 0x71dceb12a42daacd, 0xeeba9e77c9edd44a], [ 0x0], [0x63bc94d916c57bfd, 0x2b06ec078de5365, 0xbec07e74f89f4e35])
+ self.div([0x9c7a4f8f2a2eedb9, 0x1001d35b5052e16a, 0xea7242870c1253fb], [0x6ff1ab5c84c23848, 0x462d33c33baf6069, 0xb4e62bf6aa16c0d7, 0xb41087cf8def038b], [ 0x0], [0x9c7a4f8f2a2eedb9, 0x1001d35b5052e16a, 0xea7242870c1253fb])
+ self.div([0x9d95d88ff3152445, 0x3eb6b836c3f96a48, 0x44d6c71a6cd9085b], [ 0x14cafcdc99d7622, 0x30fc6c08bb6e69da, 0x62df749b210d2844, 0x4a16c5a9de0d6b3a], [ 0x0], [0x9d95d88ff3152445, 0x3eb6b836c3f96a48, 0x44d6c71a6cd9085b])
+ self.div([0x4c096ad9c18087de, 0x5b605bd5ea4c47fc, 0x809de3a4afc0b793], [0x5346eebe4582a005, 0xe229156b59f4d2b5, 0x72080ee5dd61b444, 0xe291730029f5d5ac], [ 0x0], [0x4c096ad9c18087de, 0x5b605bd5ea4c47fc, 0x809de3a4afc0b793])
+ self.div([0x66a6355aac5cd08a, 0x3bab4dd464168a70, 0x1f67108241fd9282], [0xdc8f8a6ddb6b3aec, 0xf1f15145da34cd56, 0xda8cf565f7ae65a9, 0x84abff2ab4d8103d], [ 0x0], [0x66a6355aac5cd08a, 0x3bab4dd464168a70, 0x1f67108241fd9282])
+ self.div([0x53dea14745a8e414, 0xe3e0bf55a1257c0c, 0xf28d1405a18e48ba], [0x7b42221a19a4bce6, 0x3a942e84b18a63e4, 0x25440fa0a13e1074, 0x5f62430624cf6d72], [ 0x0], [0x53dea14745a8e414, 0xe3e0bf55a1257c0c, 0xf28d1405a18e48ba])
+ self.div([0x2064dcda7f6251ce, 0xa898cb76d84f037c, 0x13869a723c91a6], [0x68d684fddc503880, 0x3c692f4f0f393854, 0x9b1f7a90470b14f1, 0xc2abcc31a9bf293a], [ 0x0], [0x2064dcda7f6251ce, 0xa898cb76d84f037c, 0x13869a723c91a6])
+ }
+
+ func test_div_4_by_1() {
+ self.div([0x254d9835cf6f3909, 0xa78523ad35bfd50e, 0x94d8d433d84ac5fa, 0x9a67840acbdce197], [0x1b3c4e5e1c4c341e], [ 0x1, 0x5ea126ea1a596e12, 0x814c739b641e067c, 0xb5088ef533cd59c4], [0x17367008ed608c9f])
+ self.div([0xef5d113bdb59b771, 0x5351d1864033f997, 0xa5ecc5fcb98b1ba5, 0x5435417f7fb1ac9b], [0xd85b8b94e10d85fb], [ 0x1, 0x1b38a32c50ea7300, 0x584f513daf3e1c5, 0xef3adc17027f4cfb], [0x152cb5686623cb82])
+ self.div([0xeca2930706ce28a7, 0xc546e79a1d2fbceb, 0x2513bcd0fce2b7d0, 0x4c21b656a3637447], [ 0xd8d5902ff261daf], [ 0x11, 0x7609a6ce3a9826ec, 0x8624519a1d983b85, 0x426484b8951fb783], [ 0xb3e5ebd60792aba])
+ self.div([0xbc5341feac6d59bb, 0xebc07d1f500bdf10, 0xd29719aa4b1edb62, 0xaf38299b1a232dc6], [0xf935215426bc8ded], [0xc17550ba570e4e27, 0xc239a9297dda7d2d, 0xbdc6f6fd9abe4e51], [0x1276cba27d560fc9])
+ self.div([0xb3017b42bfcad99a, 0xba245186578340e4, 0x6cc19f1957f9a65f, 0xc69b977869a9d172], [ 0x5d095cb9d9509b3], [ 0x1e, 0xc8dad10fbdb3b533, 0xab0ba158ab18cc38, 0x111689cb0ebcf6a5], [ 0x35205e2b7d48f13])
+ self.div([ 0xa148bd422054b84, 0xaf0c46d651096904, 0x181fdd82079c830e, 0xe8ce6cc967d20527], [0x5c0e1b0ac9ede951], [0x1c085a2fb0979548, 0xfa0ce2eaf4f26154, 0x251fd4cbfbad05e8], [0x4089e44cabeafebf])
+ self.div([0xa892646b3a3f7421, 0x17110873223259a3, 0x4156e8eb4bef2c46, 0x8efd0b49e6e60511], [0x327ba3cf3c1421ad], [ 0x3, 0x56d4aa3d97fd607e, 0x51b8ada678f92027, 0xad22dffef2e3b6d4], [0x2b4da4a06fe223cd])
+ self.div([0x3957404ab2aaadfa, 0x384d88668b61ac27, 0xbf7206d4493ec598, 0x54fbf458e6e7dd21], [0x39f950547633ee76], [0xfd345de2b2748f37, 0x72a7e291689a4f31, 0xc797a6a161ca8dad], [ 0xdefb79f8c5cb963])
+ self.div([0x5a1e16c2a56d19c5, 0x208e7af658917ac3, 0x7cd6de4d2661e399, 0x11a20e2cd1b0ff43], [0x849f589553a3aeca], [0xadf4000a3c851d75, 0x23e12ad26c4465dc, 0xcd9b42dd81ef5cc2], [0x5cd0b9aea43ff22f])
+ self.div([0x6dc1105976140c26, 0xae1e21901015a451, 0xe9d58c929eaa695a, 0x31291a2281af8b1d], [0x1e54017baddf2541], [ 0x3, 0x9e6f6a059a38c1d7, 0xc0b764e33f360517, 0xa490ec3d6c5ec9b7], [0x181a2710e90de0a6])
+ self.div([0x2fd011b60fc4d213, 0x7e3859bab3e34e4a, 0x130332d60e7e92c3, 0xd69e0f399d647537], [0x15f0adddc19308fa], [ 0x2, 0x2de2685531eadffb, 0xf37bff51ac351014, 0x940efdd32c11e44], [ 0x8216365ecec6cf])
+ self.div([0x71a96e6a708cbed8, 0x12ed1cb0d2483af2, 0xc66106fcb38d6f98, 0xef624f62b594a800], [ 0xe0b7e005caf88c6], [ 0x8, 0x17beae27c9e2da00, 0xb40c144a54f87aa3, 0xadf584a08b9ab1ea], [ 0x47e3e5cd674bd04])
+ self.div([0xc3b52affdd549379, 0xb350721f8301b2d3, 0x4d4a6345bba35a55, 0xd97792105e7c20c], [0x3fdf20cc3ea2cfe7], [ 0x3, 0x10678f6a56a8e182, 0x3691771cd242fac1, 0xef58744d9ae7e565], [ 0xea92a0f1c4118e9])
+ self.div([ 0x6947a09d0d5aa, 0xaa85b6be8436cfff, 0x5aafd8fb04894f0, 0x847ee1cfd41d1cbd], [0x94c53ba5224e01df], [ 0xb5299a9e7a3f7, 0x3d95c0259c9a88a0, 0x1b8710668c065467], [0x30248d696ee33004])
+ self.div([0x54af4dbfaf7e5d85, 0x151e560eaca348df, 0x878cb30c2dffaf9c, 0xc6e6f52d53805e37], [0x8df343e13cbc2b02], [0x98b983045a66a19d, 0x8a6a2bcb8b05fe87, 0xeecd7602cd72bd0], [0x4bb7d0cbe8b61697])
+ self.div([0xd216b7eaeff8b346, 0x2ad7a954252879f4, 0x7b8193d117527ba4, 0xeb1b7f3977abb7ed], [0x8c9ef0fe8b9c4dba], [ 0x1, 0x7e775484c5254573, 0xe6aa15ce056c18fe, 0xf68e3556207d2e88], [ 0xdda676402d9011d])
+ self.div([0xf19060b9ab0b8432, 0xb529d8f7a4bf3293, 0x4e3320bd65fc07f7, 0x22e6f77f18e4a53c], [0xf7142130a2acbfda], [0xfa49460351db00d6, 0xaa8e011ab3f09f01, 0x590da25f29bbcab2], [0x348dde819f273ba8])
+ self.div([0xcf13e1f373f89a21, 0xb1a1bd40686f2a65, 0x30ca901f4ca916d9, 0xc878a4ac48fdfdea], [0x80c95a094c644ac2], [ 0x1, 0x9ba040b6b49ae924, 0x1b79c4a796c5e9b4, 0x73488a0a10db420f], [0x7ff3da62dfe1988c])
+ self.div([0xfa70851451f38c83, 0x25b81507c4b97da6, 0xe3c937f77533daf6, 0x87e259e6d6117880], [0xcbdba7aae2da504f], [ 0x1, 0x3a7ef54509f473b5, 0x71c6798b299b63f, 0x12f296ab22cc7b39], [0x608d3673f1eba1e9])
+ self.div([0x7d7c580f3aebeb4d, 0x9d5935e753779b1f, 0x4ddc6290b316e67b, 0xcd25de2a2966a343], [0xb71c0d1b62da8346], [0xaf7014bac2466e16, 0x6ed006605bb243ad, 0x9e8a168c0b660b66], [0x6ebbe30512ce535f])
+ self.div([0x833e2a6548b9915b, 0x21d798fc5467dd2a, 0xb7e9fcbab8e1b1bd, 0xe7d3abec58d78783], [0x221a2efa924bd2ea], [ 0x3, 0xd937b441115e27f1, 0x30b78eca8c653ddf, 0x7f43479eef89eb35], [0x2111c6d81f4e0f11])
+ self.div([0x77e02a5a3e7ac3e0, 0x5c036363b78ad18b, 0x95fcf1827b3df7a8, 0x4d402f69e370aff1], [0x3c4f91cbd2659a8e], [ 0x1, 0xfcd560ec2bf9f1cb, 0x9e565e9d4b205f88, 0xc21bd95c88024b2e], [0x165fbe37abcb506d])
+ self.div([0xd4a82a8b8c86c493, 0xd4b190c27dc236a4, 0xfa312ecbe018ec6b, 0xf3f86417c29894b], [0x23f57ee5db15dc44], [ 0x5, 0xe9f3d23a9410eea5, 0x73e247cafc01d278, 0x4ef440e476db19a6], [ 0x3b31f05834e1133])
+ self.div([0x512b5af6592382f9, 0x82e349e5f74dd635, 0x338cd68658f0f5cb, 0x101dd09291e0e86d], [0x11fb405233accdd2], [ 0x4, 0x83997a7622360085, 0x9b46715d44520004, 0x15a0eca0641e8efa], [ 0x6439dbc1a596d59])
+ self.div([0x4373e43395fd791d, 0x9523dc0262e3ea62, 0x55f39b68c3f82e1b, 0x6ef85ef77d3b93d1], [0x6e2c4772b14d3442], [0x9cbc00567f701ebc, 0x659030e0e514ded5, 0x19d1f7a27752ffa3], [0x2e4b348b46e18fcb])
+ self.div([0x73deb428c0833c42, 0xe600b2880c15f842, 0x3c392e1508fe3f3c, 0x99b782ccc7407c6f], [ 0x4d3c306204758], [ 0x1800, 0xea6b327cacbfe65e, 0x2647287eefc7571a, 0x56a1712ead0988f3], [ 0x13443d69e03e7])
+ self.div([0xb656eb50c590a298, 0xca0a92aec4b0de81, 0xa8759fd484024e05, 0xf016a9bdc6d77529], [0xe4ace0671fda43c4], [0xcc20a46fb83db08e, 0x3b2b99833fe8b524, 0x410571d3cd04c008], [0x5ca0a86812225709])
+ self.div([0x83968c07623a931d, 0xb710097152c53568, 0xdf86fcba3e9c1187, 0xc95496d62b683b2b], [0xdb1ef155513b27ff], [0x99bc28f93bd76635, 0xc205e04f999e0fac, 0xe34cc84eaf19e5d], [0xd066e3f9692c5188])
+ self.div([0x74be331bf83d6863, 0xcf07b8b6fc4a6d88, 0xdaa5a8d94a754ad7, 0x7098e5b432d60976], [0xc64004a269a23b61], [0x96c0007daeaec6ce, 0x5b65722ff8813dac, 0x3c82e088055640a4], [0xbe67400f2079bf52])
+ self.div([0x2c6b913582f0d348, 0xaa0188a8d4cf31aa, 0xa04a2b1fc1264868, 0x48d125738825d4c0], [0x8b65a3dd7f551b71], [0x5193aac9b75c837d, 0xa8e618ebba2b7e06, 0x5e3c91a508960052], [0x7f9db2f222ad0a8e])
+ self.div([0x8129a01932cc5cf6, 0xe0774383547d370a, 0x14d37bb2fcb8f2b1, 0x3e0a1f9245e7fed9], [0xe71573117c22e813], [0x8f16dea61bfba65e, 0x24cd48402dd5b5cf, 0xfaf8896e32909950], [0xabe22eca5d9c1de9])
+ self.div([ 0xac093ff5d81f38b, 0x9b6d1caacc05399c, 0x45115d1583f94bad, 0x4618fede2b68c8a8], [0xb4861cde792b150e], [ 0xf3f6ac8ef8ed819, 0xdb45bbb6a63e2d04, 0x81fd7ba16087b930], [0x1748ca2bf6bbb808])
+ self.div([0xb73d6c78f6a3aa58, 0xe828ccc4d46402df, 0x6284099cbd91bc23, 0x725b233fa8f0c2ed], [ 0xbc370f5483fc7db], [ 0xf, 0x93bab344b4c1d912, 0xdccdc2247e3ab99a, 0x5f8cf8d9597d3bb6], [ 0x40d48f4df9a343b])
+ self.div([0x144d3eb818151078, 0x1839f6981128dac8, 0xad1da92ac65153e0, 0xf5840ed7e652b90b], [0xee6c9c383be19379], [0x15cc5dcb827013c7, 0xfcab92a69a815cf0, 0x83a0f6298a0bf231], [0x2ee3eee7a28a1ce2])
+ self.div([0x6ea70dd2110d2471, 0x26fa04118cc9b5fc, 0x55d908658a5700b4, 0x3115866980cca232], [0x1dd36d54f62d1b35], [ 0x3, 0xb5bf4b5af67ebb42, 0x4c036aa9a5704255, 0xbc772163e7f6a0e5], [ 0xf42022921842bc9])
+ self.div([0x1eb6d428e93384cb, 0x44ffa8813976f06a, 0xfe5fccf253beff46, 0xd2899403f8e49b52], [0x8ad9d383c5d54a83], [0x38a0bb989c36a358, 0xcec58357c1f9d79c, 0x6f185abbccf574be], [0x59fd1a60cb74f218])
+ self.div([0xf1027a244ab15122, 0x1bac01c5998033d6, 0xb7f04b28a0caab09, 0x37c348a5a459e412], [ 0x518cfa074c261a0], [ 0x2f, 0x490e3842384c826d, 0xa4905e7da368d9a9, 0x724dcd4a0141e102], [ 0x165e2c9796780d2])
+ self.div([0x752e3fa09d9c9672, 0x39d1300eb231d306, 0xb8f4bb9fdff92dfa, 0x3ef54ac8384fb8e8], [0x8503e0d712e34d3d], [0xe18669d25e5e02be, 0x5701099de3018fb3, 0xae936f592d316062], [0x1821b2133ea8478e])
+ self.div([0x37a4db793ef968f3, 0x6da5c8f217b6636b, 0x64c0083205037c37, 0x753f16979ae9f32d], [0xb6ee6b392b744921], [0x4ddeb695220ca479, 0x6c7e7f8940836471, 0xb162f516623c4a60], [0x1732c981ec6efccd])
+ self.div([ 0x21588b1a8442736, 0x263420cb7b6a5ccd, 0x8687d69d781b663e, 0xf737b59191fba582], [0xe2c46e0f4cffaf16], [ 0x25a4fe68e1065bd, 0x11a06028cf37f016, 0x12b2bd7d7211ba25], [0xb326fab93f5b5b54])
+ self.div([0xa0e1b647cdce2240, 0x3d3dcba138fe3502, 0x5afb380b9740fe51, 0x9347c14aa341c109], [0x56a759d4dd98f397], [ 0x1, 0xdb4a70ee478e7793, 0xe4c6fb9bce22c12f, 0x1cb3e7578c39ff03], [0x49e4a57adf347d44])
+ self.div([0xb24992dda9064720, 0x17cab52733314820, 0x3bc1fca38fd35bde, 0xe293bce879ed1267], [0xd3442e1726f63a2f], [0xd809c0286f9ec4e0, 0x1bbfd5048966d990, 0x122f8dcf0e7138c], [0x113e493c548ac3b3])
+ self.div([0x17d16fcdce767257, 0x5e8cabb61547a7fe, 0x36500ed9b4834c4b, 0x83af4ae1b6ca5c40], [0x81d3a5fe6e3d0b71], [0x2ef74880f7c7d9dc, 0x7a5982046bd7a5df, 0xcb6680f2180e30b1], [0x3d86c010d442431f])
+ self.div([0xed11361ed52750ef, 0xf0b93707b7a2c78, 0x46a6546ca74d53d8, 0x3b7080c3c762df], [ 0x55df3e0f50422f9], [ 0x2c, 0x2bd74bab36f86cdd, 0x6e3a637a7bfc2c50, 0xcd03f24774d92740], [ 0x4c18d866859b59f])
+ self.div([0x90f601892bbf1d5e, 0xdeb04e908e481f3, 0x4942742a28772270, 0x50a3f80b0515b342], [0xa33b08bb5d212786], [0xe358dc59dcb75e2d, 0x3cde8753d98bd0b1, 0xd9cf02ed82f7cbba], [0x5066b8f2e25db9e6])
+ self.div([0x590902708d0e4007, 0x8cdecf426ec75bfa, 0xae99d1c00db76afc, 0xc0a6340308c236e8], [0x51a80cfd3035af7b], [ 0x1, 0x17220c6dc4a70654, 0x4e26cd0cc00fa368, 0x411ee3de6095acfe], [0x1d2bc5b1df0076de])
+ self.div([0x7cc1ba95e2faca1b, 0x7c2ca5d89128ef7, 0x58334ccc5e420804, 0xb399a5367e5ec09c], [0x44fd83bd8c28b585], [ 0x1, 0xceee470b3917879c, 0x9ee8d3e3de63597c, 0x2e72dd2d520f6245], [0x1cc0998fe51de9c3])
+ self.div([0x8825d8e828b08189, 0x4e7fd1f07b299ef8, 0x2a9c715441dadbc3, 0xc5b5b18506a567b5], [0x5d3f663b209b86e0], [ 0x1, 0x75c6f6dbace3579a, 0xb0bc55e9bc7c3bfd, 0x41cf654eb4b805a5], [0x26b362e787c51955])
+ self.div([0x7d09a9524e84b302, 0x66fdb4b98c5fd881, 0x2a3502278df99053, 0xfe6b5442ff1ee630], [0x45357eae7fbaef5d], [ 0x1, 0xce81e81678d9c55d, 0x47e0f5c916802bf1, 0xf841a2fc2a3bd57c], [0x3cd532902afb9424])
+ self.div([0xa6ca7610071b53b7, 0xb13df3c74da32da9, 0xa7bb9c41c068c7f, 0x43c58d956a48b7], [0x40d6988ba41493e5], [ 0x2, 0x9289ba15edb19f21, 0x90dc75508520db5f, 0xc4bea01750637383], [0x1867afa39ee3bb88])
+ self.div([ 0xba94ae05f1a7916, 0x92a48636bf0d4b00, 0x87cb2ab982c60424, 0x579627236e30a671], [0x94fca939bdf2200e], [0x14098aca42673d91, 0xaa6d046826e2c934, 0xd127c3c89c231f5], [0x7db9559984b94b0b])
+ self.div([0x667e90bb5f2f5e06, 0x2990686ebba1921d, 0x8342a2313751fd82, 0x10bfe2d6978ad82], [ 0x5b29da896ae5ad5], [ 0x11, 0xfd19c06b95874a60, 0x750be48918f7a61a, 0xd51d0a063e588c9a], [ 0x42b7b6e9bb18d60])
+ self.div([0x8581859ecca208b3, 0x6704de92d6a05267, 0x39184f1b35a75c64, 0x1dfb8babf0353d63], [0x6e51f13cc500754c], [ 0x1, 0x35cda2059b4c72e5, 0x8fff7909b33e4ec, 0x825ff5a4c4781e35], [0x4dade84bedbe0ca7])
+ self.div([ 0xc03311827fc7f6f, 0x2754e92d92dd7872, 0x19ee86a87579f435, 0x711714b01cb93ce5], [0xfdc2b26475d04190], [ 0xc1e54a820ac1067, 0x647257279a890964, 0xffad7bf77b6a6f6], [0x8e1218c94fb6dc85])
+ self.div([0xe96f012ac54c171e, 0x62fa4d74c2781448, 0xe008185862ae0a96, 0xa8cd3c9a27f1ff73], [0x80d276601f8b2e2d], [ 0x1, 0xcfe3447756eac4b6, 0x6a1c9d8e57ae0bf0, 0xcafa54d3ef943e2a], [0x1bc5898790e98611])
+ self.div([0xf2fa8aec41a16403, 0xbdad5343732d9883, 0xe28d24109b19aae4, 0xa8c32e15a3bba4fc], [0xe840936fc3a27255], [ 0x1, 0xbd2bdc8afedb092, 0xdcb581bf250ebed2, 0x92708c02b6ae91d9], [0xae7c102da88095ef])
+ self.div([0x11987f0ce6ec4070, 0x6eded23d88e84bb3, 0x6fa3abd761dbebf, 0xc2237407add437ed], [0x66a39e8ebe29b75c], [0x2be300d4d3c8ae69, 0x3369b32d784f8055, 0x6b050e77d6fcfa63], [0x2a54690400127759])
+ self.div([0x154dbbcf68b709fb, 0x6f1d3d3daea9aaa1, 0x91c27efd6b8e9a2d, 0x4d28850a7c7cc897], [0x20158fde4b27a571], [0xa9fb555352e5f355, 0x9eb8159be24caa46, 0xe8e960296381af59], [ 0xeff785430ab054e])
+ self.div([0x8f52cf7531b5a04d, 0x5387ff898c9325e, 0xd92107a1e5d77803, 0xd6ad8e010741e563], [0x3f09ad90fc18877b], [ 0x2, 0x460b675a45864911, 0xca5a984ba3e7abab, 0xf9d33d96f4a549cb], [0x2cc0062392e563da])
+ self.div([0x9fb92a9cbe08af15, 0x14143069a5acb262, 0x65b303520fae6f1, 0xe7be40627450c9a4], [0x22f54fbc38638eec], [ 0x4, 0x91a83e6a4a37402e, 0xbd4a4c18b67a3d2, 0xa0c53fd07ef12f09], [0x22dc9a987d676f58])
+ self.div([0xe624bfdc7796d361, 0xf004c4d56b0ef47c, 0x57527237d14f56da, 0x48a9fcbcb52388b4], [0xa14f310c8f421269], [ 0x1, 0x6d3da38df52f1c36, 0x4020e2950e5df19d, 0x26a49ac241d5e845], [0x59a24c4e3d486a67])
+ self.div([0xabdd0e24bf48c36a, 0xe70f9402c4a85853, 0x259d724b275b5373, 0x27df3371f294d847], [0xf14300eb8b6df664], [0xb65cc29d3c2f71a3, 0xe85a3c4ed3ed9e99, 0x1d4c1668bef6565b], [0x9d6275b775a0aabb])
+ self.div([0x8fbf398086397132, 0xd3922d71a2a9b359, 0xe79e582304c40bcb, 0x6eb0da0b01532eea], [0x986cbc57f63e0d8a], [0xf16cef07f7b6ff34, 0xd3f46fa2b25a366a, 0x2bc387a0b07156ff], [0x58f31ac1070d5674])
+ self.div([0x7851a5ea0bb2eab4, 0x4204f813d734753d, 0x5897439b1ead5164, 0x46875981f9494380], [0xe0d4774e404e37dc], [0x88fff022ab646878, 0x56033d0d7a07de91, 0xd639fd67184e7f33], [0xe07bf06eb6f5feac])
+ self.div([0xa097b13aeafdb034, 0x1182aee57ab293bc, 0x8790aa8fa3b1705, 0xef8177d6285b1769], [0x7ce721c7c0bb5d8c], [ 0x1, 0x49263a6e5154d15a, 0x349a6af64a04f12e, 0x7b9b700515766038], [0x570ae31821c220c9])
+ self.div([0xebf554da2c0f89b5, 0x78a0aaf9e92f71f, 0xf05bb6c65d295ebe, 0x20491dcf94a9e25b], [0x8ff7e7ec91a37132], [ 0x1, 0xa392d6ef1d42df0b, 0x8f6554be87a25a2e, 0x282ee1eb1854c9bb], [0x8b50fe8409fdf0d5])
+ self.div([0xa380aef55a7a2da8, 0x43a44faf744bd3f2, 0xbb3d4558c428e9a, 0x8635377284c03bad], [0x571bf22bc9c62263], [ 0x1, 0xe08225500958d26c, 0x143fa966f3b36bc5, 0x22bfbe096cc22178], [0x253bdfc6926b5a45])
+ self.div([0x869978a62480344f, 0xabb1a39e178c9313, 0x5c0043d1fb6534bf, 0x606b66b5e97297b0], [0xbd0fa9e8daf19ee4], [0xb64172ed9c78ea51, 0x5b6efdeaa24f52ac, 0x65457a7f568c3933], [0x898851f3023f2c44])
+ self.div([0xd3208ba4dae7cb39, 0x283fb46cf3c350c, 0xcc086293502e9b00, 0xa291c1dbcfd5399c], [0xc8b36b82d4a85ebd], [ 0x1, 0xd4c8cd42cf03608, 0xe674f9bd82a5d518, 0x983cb06efedfda5b], [0x7d802f62caab9a6d])
+ self.div([0x8eb31220b59b5057, 0xfe5720b16b0556ce, 0x46315f1a115089ce, 0x98a4026bbb17515a], [0x3b928d04ddfa9fac], [ 0x2, 0x6538829e1540e4d1, 0x866fc49af3f7ec59, 0x6c7d9194ba8c04d6], [ 0x9abd45ff7072792])
+ self.div([0x1604662debee7d33, 0xc28cd6126f0c3adf, 0x428f8d706619339, 0xf2731721256519dc], [0xb9ee33b2ed1caafa], [0x1e50867ed3f06607, 0x890aa250c8a66979, 0x9392c105ca143426], [0x6e7a1c5f80e0f0c0])
+ self.div([0xa9a0eeb295fc8eb6, 0x939e09f56d4cf164, 0xddbc3d37f7ba5905, 0xb2838947c5d51ba9], [0xe03285ec0f89853c], [0xc1b0ceac4babce41, 0x833c3ebc34d7da16, 0x94014e2b732cac80], [0xdfcadd3ec13e2da9])
+ self.div([0x8e1a6e999df5bb96, 0xe101617e17c924ce, 0x6f776453634d537b, 0x45acfc9bf951cc9e], [0xce5f922651e5a81c], [0xb0465e434120152a, 0x40d4ca4dbe76f743, 0x6d43c1805e8d762c], [0x2ccf9b0e2aefffce])
+ self.div([ 0x928b37e95cbeed9, 0x30b0f66aec26325c, 0xb267cebc456828d2, 0x366ba1b1c1072d33], [0x812abc2167df1ff2], [0x1227096d26d5a6fb, 0xc75f1362fb6a293d, 0x410f7be86010cf40], [0x6cd7331d9f4a82b3])
+ self.div([0x8449eecf4aa2a7d3, 0x7eb7c4ddb761f2e9, 0xf39b2566cbd96373, 0xe13d89416ae0dc1b], [0x7fcdcbf6ad0f3d14], [ 0x1, 0x8fbcbb3bfa53ed5, 0x6cbc5671b14543b5, 0xcd9bad784d09923f], [0x4704d891f9976c2f])
+ self.div([0xe86c94ee7aece8d7, 0x2df3a80c1073a200, 0xb9a06a42f15d7b5, 0x9249e5a24d2a2b0e], [ 0x4961c55aeec6b19], [ 0x32, 0xad599fb9cd1c97c6, 0x2348d53846a757c9, 0x5566602ab7369980], [ 0x245acb814acad8e])
+ self.div([0x73b5916b75dd27a8, 0xe988e569f65e0045, 0xf53e5bbc67532e58, 0x3ec51e13a1eefdad], [0x1eeb2d57a29bfd5b], [ 0x3, 0xbe0c58baac1673ea, 0x610f2e01d1c690be, 0xf9fa15a4e3f59767], [0x16c378aa09a46110])
+ self.div([0xb490c7db87cf5b6e, 0xa8ad1197107980c2, 0x78a854b0838fb97, 0x73d1c48763f3009e], [0xc485906495409b8a], [0xeb36efdd82e2e75f, 0x2c89c43bf01d8ab, 0x8f9b06d118389341], [0x380d6ce86f0b4494])
+ self.div([0xc17ba0051a5c530d, 0x5466704fa61af74, 0x623b2afa9813a1c9, 0xe2e14430613c6d82], [0xc7fcca8d1682d443], [0xf7ac742965de8fe9, 0x6daa651e32fa6fd9, 0x33b0c5a713c88640], [0x3703747678144ac2])
+ self.div([0xfacac4a8d8c98688, 0x7202a767d8a46b6f, 0x5ff8a9f92886a0b6, 0x2bbdad4e8e31ddda], [0x62d2add87e053459], [ 0x2, 0x89acb125a8e81708, 0x81f5cd0e0991cce7, 0x9b2c1a1a534299bd], [0x137c68ce0e1f0725])
+ self.div([0x4454e57636314ba8, 0x392d3bc0dbf9ac1c, 0x767d9b9847072207, 0x22bca2609b24e14], [0x165354843a2eeee7], [ 0x3, 0xf89de0eca11fb6a, 0xb4a8c9a921640e82, 0x8c72f463b0be62f6], [0x12e1f26709b24e1a])
+ self.div([0x9f9ffbd615a1294f, 0x337fe645de80fceb, 0x1a1ccf9fa27770a7, 0x3bcced0dc19d0846], [ 0x550421e6e19764e], [ 0x1e, 0xa955f2306006817, 0x32d47dc09ede42d, 0xe11463d37ae19d60], [ 0x41be512b3f4d506])
+ self.div([ 0x5f4161c76e43ec4, 0xa3852a967516951b, 0xa1d8fb4dd6f3aa53, 0x54b5d00042807cf9], [0x15d94a66fa4e287d], [0x45c18f6c4127b7a8, 0x36afddbe6ad292f3, 0x132164fcee1c1d6e], [ 0x814742936a8ee43])
+ self.div([0x5a0c58aeeb43f9d0, 0x6d76f1a412b6f1a3, 0x6c6e2e85764f422b, 0xc1c20a3c0950aab5], [0x506d22982207e917], [ 0x1, 0x1ea07ec424dc21b1, 0xf7db8fb1186c0b70, 0x7a7a35d5c6c420d8], [0x1bc0f62515e51f4d])
+ self.div([0xf154ab31afab409d, 0x7eeaf32f135e14cb, 0x9857f7daacc6ff51, 0x47c6af23255c27b3], [0x746fb41299171858], [ 0x2, 0x12989a0b246721bc, 0xe65c9f1bed7b6cff, 0xfd6c2b67b1d85c24], [0x414ef6c7ef1d1b53])
+ self.div([ 0x4ebaefc4d587339, 0x98a0f609b79d3c92, 0x1e24b161f2b84ea4, 0x1ba7d09238a338f4], [0xfb862a62b3bd9f71], [ 0x502198e6e6f7e25, 0xc31fb99c2e4b6cc4, 0xdcbb0597912e32a1], [0xe5f3ed5b7defe0e3])
+ self.div([0x193592c69ff4a25d, 0x87242924b9d9a3da, 0xceb2855e8eeb851e, 0x6a4af595d181545], [0x784ef826453b89d5], [0x35a45295e0d3044b, 0x924af021ece45038, 0xfc2994ba72e90cfa], [0x782cbf67a9a07f43])
+ self.div([0x28188fb96007d623, 0xf588ac7652870f2d, 0xbf2a00c43de1d51c, 0x8ab550bf877374d8], [0x98b8fa22accb4a05], [0x4335e3e82533720a, 0x7c45a34abb7cb4ff, 0x85b95fbf86876a19], [0x8795eb22d450285b])
+ self.div([0x6d7b421ce0e472ef, 0x8e9c391ad41e830b, 0xd9b0e6931fc9826f, 0xfe9fcebb918b52e5], [0x31fd4a94fd5ceab1], [ 0x2, 0x30a9ef6cdb461d77, 0x1d9e8cee2e2ecc12, 0x4dbb1b44065ea133], [0x16e30813557140a2])
+ self.div([0x61ec884a315eabbd, 0x68eeea6dd91be923, 0xa75332534a77c37c, 0xa491cea457288fb8], [0x7b0d6635d2deb275], [0xcbb8f6c1d698fce3, 0xd9e408339e056c71, 0xcdda2cd474ff67a5], [0x2deb6c870d47774f])
+ self.div([0xc3a692e4b804aa3d, 0xc592f40605cc7a9a, 0xbe5dbab1c0f76a79, 0x9f337ab37677b03], [0x7573cca50dc224af], [ 0x1, 0xaa7111f432cca7e1, 0x9b88f60cf36f6223, 0xa85eae052858a775], [0x24a84a5f53968e08])
+ self.div([0xe228af159965b5e9, 0x2d4ce8382a4398fd, 0xc4b6df651e718e1e, 0x3a34a0b5e9066df5], [0xb8cfe86cbf97dd63], [ 0x1, 0x3945ee12fae73490, 0xf4cd2d9973fb39d6, 0x8f64590540c817b1], [0xae1cc46216ca7782])
+ self.div([0x530ab78442345a0b, 0xc3d28bb59b56e07e, 0x33b4cc17d45f21d7, 0x21f0005d617c738a], [0x8d05fe9d011815ec], [0x96befa4b396d3bee, 0xef5b5f1581fa9f0d, 0xbd7de234907fd994], [0x78a9d473b4e6bb1a])
+ self.div([ 0x39bcc25ac680ad6, 0xc653ab9dcff7c623, 0xc115da8d29f3aa7b, 0xfcd2216803180d4a], [0xfd3962860e3dd768], [ 0x3a5ec924913361b, 0x3d44a8408ccfddad, 0xfb58cec6c68dde34], [ 0xbf5e6b969741c2a])
+ self.div([0x153d258f843b8430, 0x3f2a20d294fec3ec, 0x13cd00a68d3d2d66, 0x197c1fe66c0f92bb], [0x3f5f48ce767b5c15], [0x55cc09ecb5a73947, 0x4a3dbfdb05428db3, 0x4df3ae2f051497f9], [0x373faee7d01e9f4e])
+ self.div([0x64ad52d1816af4f6, 0xc9e6c12e8fdda722, 0xcfe76e624bea45f4, 0x2f5784938378d957], [0xad79d3d02bd6da1c], [0x9491ef98a859cd8d, 0x2367161f021ceb5e, 0x31937fd00e6492d2], [0x780b103449e5f65f])
+ self.div([0x9de29b0c91d2ffc7, 0xbae4d0a22a24e05e, 0x1816b10574255316, 0xa0ff2fd1d553857a], [0x805c90094df80420], [ 0x1, 0x3ae181af58108b30, 0x1a5453489af4cd06, 0x463ad9a9eb2440e9], [0x79624811e90fc45a])
+ self.div([0xf0d88d9e53d79b83, 0x6ccd7e32e7a30b02, 0x9fa20a463962da11, 0xf6f7c17a413bf75d], [0x4645fc0fb95ab4b5], [ 0x3, 0x6d61a2735ae89b7f, 0x1adb6fb2b9a8f003, 0xd6d8d91b411dad98], [0x2fc4f4a279c15ae5])
+ self.div([0x8f1aa22a7eaf2286, 0x7f226bb7868fcbd0, 0xa80ead71fe23916, 0x1141d9983fa9d879], [0x3c6e835f962c80a7], [ 0x2, 0x5e3730738d68b672, 0xfe1c54b32ce8e95b, 0x7d7599d4927b9f6b], [0x3bd4b051c8eb59ac])
+ self.div([0xe03767db8858abb2, 0xed9d530f5b957745, 0xb3d933fd64de579c, 0x50288283edfea6de], [0x20c8b2ea5bebc4a4], [ 0x6, 0xd6d64684f73faee2, 0xac0edc2406d84e0c, 0xa35d4ab59e13c6f3], [ 0xb07a52582f02732])
+ }
+
+ func test_div_4_by_2() {
+ self.div([0x1bdb9214059da75f, 0x32035703ff53221c, 0xbfec04caebf63cfc, 0xd6c57599a938ca3e], [0x2aafb73df5116062, 0xac9e6967b9096f56], [0xa711a728d5bead68, 0xf6d5813f393487ac], [ 0x9ebb25324df8879, 0x4081857699b3a276])
+ self.div([0x7ac183244bae3247, 0x1b97c40e803eeece, 0x4265e53d807977ce, 0x15ed972f91c56e52], [0x751d92bab368adeb, 0xee8b6565497c3e19], [ 0x1, 0xc5445940ad4fc1f, 0x9a8af56a0b2a088], [ 0xa8d9ab33ff49b13, 0x2e8db8da1392d10a])
+ self.div([0xa48a8ddd1febbe8e, 0x68eeda05844db3a2, 0x25439eccb544d355, 0xf1114622050346d8], [0x7ca598ff957942e6, 0x1e0791a5622699dd], [ 0x1, 0x51ef64569010cea8, 0x20901c23ae101f90], [ 0xdd22af56bf27677, 0xceb4be034edaf788])
+ self.div([0x98ab3e00ec12095e, 0x3d88d8e9fb3e77e9, 0xd8c191fed3c1ce20, 0xcd76266d78b5c3eb], [0xc13c6bd188c448f5, 0xea07159d27e7de9a], [0xca41aa5a33d07320, 0xccad6c5ee92ef6d0], [ 0xeb99f28b425bc9f, 0x4e41a89412bceacb])
+ self.div([0xe1aff6973b7d848f, 0x784214dd85094b87, 0x3867c5c3367184eb, 0x282c1cb4fe0a5568], [0x7a12f24cd49fc8fa, 0x9c4cf013eed9ae8], [ 0x1, 0xd9494ea46ea56dbe, 0xe5011e30c5bf018b], [0x60617e538f8a2db0, 0xe689aecdca545170])
+ self.div([0x2ee2ccfea22d92a0, 0xe0227c92e0caf0dc, 0x86f70a615a18dc39, 0x7450aa7eda5a8543], [0x6d3ac1ca32b44021, 0xcf3fbe37185e0629], [0x6de2d45d4942b543, 0xfe39bf0b8b0c121a], [0x45d580778c880c9f, 0xd7e36cac37730319])
+ self.div([0xcc11d297aa7d9c2d, 0xa2d1bdec354838c5, 0x50f14c468bb99017, 0xd71977bc1bbf562], [0xe9de5e0400232fd2, 0xf33500d3f40a57db], [0xdf618db05367f5a5, 0xab5cf7713f680bf2], [0x554324ada69ebfea, 0xd01aef2508367f5c])
+ self.div([0x94873f687d8ba3e8, 0xfa63f4d13c0733d4, 0xfb09bab58a8b7335, 0x61e28caaec7d4e9a], [0x8d81fc811b4882b0, 0x91c4f0346d2cae87], [ 0x1, 0xcb3677106c3c0a9, 0x7a3c07bb3019e598], [0x77e04a42c60b80a8, 0x2a70d02dc6a7eb72])
+ self.div([0x93aa60aa6f04b6e5, 0x8d5107b10f467c5b, 0x3cc2a9f2477ef25e, 0xd016c4fe29fc1ced], [0x3215462b6c6da27f, 0x9a93d27dac2f7a32], [ 0x2, 0xf2cb05bf942a8dfc, 0xf7cfcc646d665b27], [ 0xa669dfd7ae712a7, 0x3302a22a1464b94f])
+ self.div([0x5ced47c1746ffd98, 0x7b749cf518153008, 0x3dc32068f3c81288, 0xce7df1bae38b32ca], [0xfab041dee6fbb760, 0x8b7a4dc3f1bc4419], [0x5ee55198121c806a, 0x680553de5a0283d4], [0x77364a0953a8daed, 0x11120aac0a980316])
+ self.div([0xf8a38c7b3e6d9c33, 0xbf7b3735e8a62fe3, 0x261902b57880d254, 0xc8768228521d6cd9], [0xe3882e0417b5dd21, 0xc2ff9af873d7e2c8], [ 0x1, 0x17bf6bb49e226e88, 0x4955a8cece156076], [0x74b47bd837765d6d, 0x2ffaf20f6d27e4a9])
+ self.div([0x34b80cdc2f750e25, 0x630587feaee97018, 0xd51c280b88da4af1, 0x4bcb1c552f2ddeee], [0x95a500acf3e338d4, 0xf201e8d056e1967a], [0x5a2ff89e170b4d79, 0xe1d73813e02128a5], [0x2007f25cd2c89d13, 0x4f300eacca8ad24c])
+ self.div([0xa8154087cf4f5743, 0xf523b26f4f640fc7, 0xe2f235baa516c79, 0xedf5f240300a0ffb], [0x753738c574d46260, 0x514f93c8c1883887], [ 0x1, 0x6f183686e6438fd9, 0x840ab2043615f7ff], [0x69d8760bdfc905c7, 0x211bae57ddbc8082])
+ self.div([0xf7019d85c3550445, 0x7846d3be52085c1e, 0x789b08d5ca1a9271, 0x6d02a4e4ad5d7c70], [ 0x1a6f3b3612d8037, 0x9f8042a6c6b0d53d], [ 0x95, 0x81640f813e751061, 0xa698f34bc0a52945], [ 0xd498d30ea0668, 0x9fd1e8589d3c3dff])
+ self.div([0x2238745db1e052ac, 0x71a998a987760ba5, 0x61d8b7def6ec8b46, 0x649bf7573ec9cc72], [0x26f4f8dbd2ae8bdf, 0x9e10a04446c1ba06], [0xe0e01c0549797fee, 0xd78a4e2d5d4d062a], [0x1bc83937e41e08dc, 0x47eae293f6d72376])
+ self.div([0xa635b308c49055e2, 0xbd813bf7a4887f47, 0x62100aae7f43b6b2, 0x3f55612a043a1e9], [0x6c0484dbcb5b8da0, 0x27bb6ee69a86ef7], [ 0x1, 0x89ea10759ca9e9dc, 0xf188fc98ef739e44], [0x12e2254e37e28e87, 0x3afedc9e2914b64d])
+ self.div([0xc721ff11cce74bb5, 0x1011a8163577394a, 0x88724bc641c248c6, 0x35846a74136bd993], [0xca7006dca0930c7b, 0x7a267303c2438fe7], [0xfbd21ee999eba604, 0x86117d3c5e11bc7b], [0xb4b0e0dcf05d48cd, 0x468f2a84bef11196])
+ self.div([0xb82046ad2bb92d1e, 0xc74337a721c253d2, 0x15d2229393cbd556, 0x468739158402915d], [0xe1e18bd419949f25, 0x32a4773e5801ca0a], [0xd0ad6c66386226b3, 0xdfafeebb55750753], [0xb6dbd0451618ed90, 0x634129424655ca1f])
+ self.div([0x812e34b58c83c9f4, 0xb350292a5adba4d4, 0x1c9d2d35a9aa41e9, 0xef85fb287f1c0754], [0x8c2dd7a3aef2b091, 0xfd8b762b484355e3], [0xebe9fc15bbf01b1d, 0x86c1f361f326d8c9], [0x35ad6975edd42c0f, 0xb32005abb9141019])
+ self.div([0xa8a9c09292f7120a, 0xea439c4c9c5a51da, 0x4650cefa2b074ad0, 0x9f96c9775225c27c], [0x509a4fe463478ae8, 0xe41d1d9c79ea6058], [ 0x2, 0x17af85c9aa8b397b, 0x3996c28f36d1ace], [0x2a2b3ec3d5d3f65e, 0x6df1812cdc4b4bac])
+ self.div([0x34f83a29e7654312, 0x4a400b0c8d833e4b, 0xfec80d15d900f7c9, 0x6173ff2bc83a5616], [0x6115ba77dfde0dcb, 0x6e5bfa7ce307cd81], [0x8bac8751f033f0a5, 0x6ae5564ac66a69ad], [0x42fe2d6754da4da4, 0x4690b8314b408ce9])
+ self.div([0xa787fc9d754199f0, 0x9757133b95bbafa6, 0x32bb2e1c43495cdb, 0x1f3aa902b988ce3b], [0xb4d998e16a4573a1, 0x2bcb960737c354c2], [0xed259147622b4575, 0xd3b03bbf878447ce], [0x2f54da1b8c08b7e0, 0x76063994abd0cc1f])
+ self.div([0x728e3c0909056132, 0x3ba2c3ab7a34d43f, 0x7e4e6d311255a91b, 0xee6a694618b40b78], [0x356d47963aaa58f7, 0xd8280c718482c7c8], [ 0x2, 0x24e778af845b7831, 0x77d4ab0549d8ade2], [ 0x8cc459591993db6, 0xd0751e4a237d84e8])
+ self.div([0xe11d2f449482731b, 0x2d0887b2e26eaf0d, 0xa9808182c8ba17c2, 0xf6974c2f3ce070c7], [0x753f8d79891fdbdf, 0x782b3329ef36e930], [ 0x1, 0xeb83a4a26117624e, 0x2047ded51ee868e3], [0x356ef7dce165cf4e, 0x403f06cadcf42b37])
+ self.div([0x4ea0bb5f5114e3d5, 0x39a1adf8a06dffb6, 0x6bbb11a36f14355d, 0x48784c47f137ff6c], [0xe5bc11a96a468d9e, 0xc9e13b8bc13bc14b], [0x579e082163da6e56, 0x744c6df79d7fa0b4], [0x32398ef317a98ba6, 0x10d424b1d73036b0])
+ self.div([0xcb4fb8fd757bbc21, 0xc5eb2990e32b057, 0x2736ff12bc533b27, 0xae66aa654b10999a], [0xde47b9c1ff899188, 0xf5f5fb24cbff843e], [0xea2757d6be55eeea, 0xebfa31e7d4ce32c1], [0x47ad3628aef92f19, 0x99ef30bdd5b5cadc])
+ self.div([0xca80987d667ff2d8, 0x2ff70fac90122eb4, 0xac0590a28d8909b0, 0xa7ed84a748754d66], [0xa64328148208d646, 0x171ec15bb49a0fb0], [ 0x1, 0x37cccd389dab3e43, 0xfc2bc76a34fb6d90], [0x4e7f54471801ae3e, 0xec27080ef78e8a66])
+ self.div([0xf95f52c1807252f2, 0x7179927fabc343d5, 0xe2768d2e55906f6e, 0x8c99e102ede0e11b], [0x2719ee86131400be, 0xcb055f35edd155d1], [ 0x6, 0x60aa47ab77e8e319, 0x58a661b0c630bde7], [ 0xdbdc120fcbbeae6, 0x847476760c712484])
+ self.div([0x1fd5cb66cf9c6db6, 0x584f97a0cee43b93, 0x9759197c02c913d7, 0x90d2751766cbc675], [0xde10a14d697857ac, 0x2a9dc44dc7a50581], [0x24b336495af0764c, 0x65a96f8e4df6d0f1], [0xc6710dc8bdcba45f, 0x68edfddf4902c804])
+ self.div([0x4be7e6c294852651, 0xb7d357e799286701, 0xb4b71e72b0f48845, 0x10dc9005e59d14ad], [0x689121a2f911a4fe, 0xc6d9909f99d27842], [0xb9d50b80bc503640, 0x30ffacd9b94bc616], [ 0x68f2291917752fe, 0x9713fd2f72db301])
+ self.div([0xbb54ab8a5242181d, 0xa2b9fd8497f7e24, 0x2f7b030847588e0b, 0xc1deb41254171ca8], [0x708db068e8e8464b, 0xefd1a228dbe69120], [ 0x1, 0xaa1438aa837c972f, 0xc4afe2c0f806055e], [0x3552c4e3e7797f19, 0xad2c0c7add832e8])
+ self.div([0x354a76b5aee15661, 0x826111390ce352f, 0x16494f1d50c87bb5, 0xfc80e9d33da631ea], [0x5913e93b61bb2f64, 0xc92bf2bde3f396db], [0x9926fb116399e435, 0x9afcfa522e3576c0], [0x35ff857049ae8a5f, 0x56752da66a151baa])
+ self.div([0x4f409e545f1adbc1, 0xc2c51dd707f0979, 0x7db6f0e5a8d1dd53, 0xe69802831ec070e], [0xee81fb0d5a5f968e, 0x13d2f7a9ad499d0d], [0x551098407a0ba19b, 0xde6342fb649fec44], [0x23a7721d9f297cf7, 0x504a9385ae83539a])
+ self.div([0xa6ced910afab4aca, 0xd6b6064641c83824, 0x1ef721db89a6f79, 0x316516cb457e6f91], [0x721a9dd007b4de62, 0x15513c0e6349b16e], [ 0x1, 0x763ebc9aceaf2426, 0x98e2c8b15e4b1831], [0x1eba00aa73bf9f99, 0x72dd7beffc872983])
+ self.div([0xa3057eaf880ed0f7, 0x39c45ba3cfd0bcb, 0x8a6f75102f9fc338, 0x55e6df7931c9343], [0x4c68873ec990391f, 0x3a7f772a4dcec7a4], [ 0x2, 0x2230c472af347fbc, 0x882365d1220e53b6], [0x3d40fb1ea8b07640, 0x727695f3846878ab])
+ self.div([0xd16232e6ddafc6e3, 0x5d74a39b3933a46b, 0xfa4b1cb0f5aec86c, 0x50769b72678fed8b], [0x138e50608951cc92, 0xea0686f84e959c59], [ 0xa, 0xb4f8a6e4cb92b929, 0x75ce1da995993619], [ 0x71cc1c7c07ff354, 0x951eb573edc7e2da])
+ self.div([0xeecd5f2c456dd890, 0x79721062850b829, 0xd92e08393b37076b, 0x1865557ecd8330be], [0xdfe195a1a652caad, 0x893b8a3dc663aca], [ 0x1, 0x110fc9b13cc1e3a4, 0x8c833598deb347f5], [0x61f29dbe0c1df33e, 0x22dfb2263e20e76c])
+ self.div([0x496d126fee744614, 0xe46c1308a71ec5b4, 0xb7d1d053b99eec53, 0xd3e80fd7d9ad60b2], [0x4b888860721f43a4, 0x36adc7667ef772eb], [0xf8dba4747a8d5e3c, 0xfdd24078b49e95db], [0x3fe16518d8378724, 0xe128db950d114aa9])
+ self.div([0xa063b2bc368656ff, 0xc2845d85dc9e7c7e, 0x3d38506cb6f16e6, 0xc736e24a05ccbb9c], [0x674464834d231fcb, 0x58dabf5811850d58], [ 0x1, 0x8d9b46886e870d33, 0x45bec124201121f9], [0x24537b7973de69bf, 0xba9677df1d26904])
+ self.div([0x6092b07f6528a4f0, 0x76e81b2c7048c23e, 0x1c79926a637664dc, 0xc471323875af405f], [0x6b79429a92c290fa, 0x7964d01167dd66f0], [0xe608eb80ed7dc2ac, 0x73300f6726724d1f], [0x301b4552c21cc625, 0xa15f2b6fd309994f])
+ self.div([0xf5203cea43603053, 0xca14297d6cc39bd, 0x79b0653fa0b3a3fc, 0xe780940fe5492b2f], [0xf354643c3f9f7205, 0x328401ea3ea795b5], [ 0x1, 0x1e3ca7a5d64b95b, 0x13391f82f3382fa6], [0xf240047329c1a758, 0x444e9bfcf189dcd1])
+ self.div([ 0xc864c4d2f36c94f, 0xc9ae6eee54622233, 0x5fbfe2dda3a2142a, 0x6dd6bf230a24f0d1], [0x8518348b4728d587, 0x6d167adbabdb06b7], [0x181723021c30fb0d, 0x5e7fc0db19e7e4f8], [ 0x4e7430be492ad4d, 0x9a72a06d8dda7389])
+ self.div([0x489916d2296113fc, 0xe622568b2715e2b9, 0x211affd083f03fda, 0x82bae0dc61e39122], [0xabe0b6f8858d42de, 0xe7e08bcda814552d], [0x6c2132238263322d, 0x7d2b89a45c5365a7], [0x74ef4e0df3e9444d, 0x95d8175bed6e3fc7])
+ self.div([0xdb5f4db721d8fc81, 0xa83b6828856b76b6, 0x6beef52684b15c4c, 0xafe64186227da1b5], [0x94c87789eb673e3a, 0x352d566a1891a6bf], [ 0x1, 0x797525f353975907, 0x3d45c439446de479], [0x7aff909da23ea985, 0xc23b68a911d0b56e])
+ self.div([0xc82e24d589dc9da1, 0xf096afb451432fc5, 0x8cf03a16796e1495, 0x93bdfd82ae3f4250], [0x949be24f5c4d6796, 0xc011a175f13f8466], [ 0x1, 0x58d6c51b25b847a0, 0x65ae059bd59deda3], [0x6b48d390e014f75a, 0x449c0a3334ad875e])
+ self.div([0x3352558a8af4d33d, 0x3e448009e612d0af, 0x91a572f1150ea469, 0x22020f38fdef23cf], [0x7b6c119f42e785d3, 0xf7b474fede12d054], [0x6a734c1e48364593, 0x9208460992720881], [0x61c613046dec9e74, 0xda0539b5d289897b])
+ self.div([0x3feabbbd656008e5, 0x96c185545e3fc0f0, 0x2d2b54ef9e1d70cb, 0x7b2e97bda16d1d], [0xdb9fc018651d3beb, 0xb56376ad1db419e0], [0x4a80dddcc14c49f7, 0x90cf583a28040b51], [0x33a30f2467996a94, 0xdebdb9ef33089d3d])
+ self.div([0x7fd2e1591621d282, 0x8fb5cd6ac2933fb0, 0xab219b774fb10486, 0x73b69e0674b81fb4], [0x3d4eb7a37a703afa, 0x5a394197273003d5], [ 0x2, 0x15c008387ff65892, 0xdcb09a5fe2126d95], [ 0x57f5f01fb535405, 0x66ad628fe52a33bb])
+ self.div([0x2ab39ac1d159514e, 0xb71c6bdc2309ccc7, 0x4da646aecb7c39ef, 0x4d9281a24230d113], [0xf3342a2776a6aa62, 0x4b015240c3dc0e82], [0x2cf2c61a25a139ad, 0xa64d00f92473adad], [0x997b3b97a98b6c38, 0x80511d2b64472939])
+ self.div([0x3fb612429c0c72a1, 0x2837748dbe8c08b7, 0x46e864ef4d909dd1, 0x1e0fb26f99c66c74], [0xaac1ee4d3820a889, 0xebafbd3003fd06ee], [0x5f84163c96a0d11e, 0xe27de3f31a3b0aaa], [0x36732d38c3f98ba2, 0x9ef6f4764ca08668])
+ self.div([0x8026296af18f2a1a, 0x509b1136dfe14b42, 0xe434174bff0546db, 0xe9049ca4d9ec830f], [0x8a9288f982f71a78, 0x92ee04c346a35cf], [0xecbe6bddb88946c0, 0xffcb0cf48db7d4f], [0x705c5228ae3aec8a, 0x6075a72990cad52e])
+ self.div([0x171f5b76c62a1473, 0x7cf19c7691dedd5b, 0xae89a03eded67334, 0x48da81261713d495], [0xeb57254e5e0eef61, 0x3e195cd3b6c21fd1], [0x1926fe6abb5e6b82, 0xe3ce90c7e7cdb3f4], [0x324d289f1459ba18, 0xcd592ef218715e61])
+ self.div([0xc284c04de3a9392d, 0x8305b6c9a144cf07, 0x76514e82934e79e7, 0x7af6dba1cc443719], [0xa5f443eb00efe8a1, 0xc56528023c8bd494], [ 0x1, 0x2c1033981488f98d, 0xf29f6c77d3d86dd2], [0x320f6428cb5578ed, 0xcf8e7f073f2cd1b1])
+ self.div([0xd9e64ec61674a4ad, 0x6bddc178a0b3b115, 0xf67c1d60655f5872, 0xc68ff79350189f80], [0x962c7bc52ea0ece5, 0xfc65fc1fe605d06d], [ 0x1, 0x7373a6128d595aea, 0xe8949a45ef2f92c8], [0x61aa713f242452de, 0x9587657043aca058])
+ self.div([0xf63fdf528ee26119, 0xba08fedfe74e1f03, 0x44dfd6569ff5281e, 0xba3ff7fadb57b771], [0x3cf8c2097a50782a, 0x6475ff3775da4f20], [ 0x4, 0x9eb865c4e5bf945, 0x1f88fe0cd02021a3], [ 0x74fb7ccd7a44359, 0x8ccac065c9243611])
+ self.div([0xa774d325a1869960, 0x63186be64f9a89eb, 0xe835d1df7e029de7, 0x9ac9dc5adc7c45b7], [0xa4ad610465900844, 0x8a3f0ae4cb893bcb], [ 0x1, 0x451fb7554ea2dde, 0x2f21f3ca5c883481], [0x6a823e14cea3b070, 0x47e79425b457e86c])
+ self.div([0x29f9a0aae63cc776, 0x618149e727301954, 0xbc19aa755b88274a, 0xa0bbc390054cd042], [0xe8952b2be51c457c, 0xaaac4e14d5a243a0], [0x2e3389cc44a14b5e, 0x92d55f60f9c8ed9d], [0x2ab2b90753ae2eda, 0x54a32076532e3722])
+ self.div([ 0xf6ffa7590e24f2d, 0xa4e03a1577a3ac53, 0xd53ebd2faace50ff, 0xe8e5852f4ce1e617], [0xd152ed47a78a4f49, 0xda70a8e3b99f5690], [0x12e135ad6f3e9b47, 0x22519074acef4cc5], [0xc892e883a4e30937, 0x704a5fab97218947])
+ self.div([0xd538c5300143556e, 0x16bbd5513f1f0368, 0x1da91b092588c8d5, 0x365c59b4bc9cfb1e], [0xa0b4400ab7186d82, 0xd8dbd19a04c639eb], [ 0x1, 0x53a8fbd725981c03, 0x17aeec242028141a], [ 0xcdb17d2a4812e4e, 0x1f00b86e573cbd40])
+ self.div([0xce95672d6d2f4e5f, 0x129a2273760ea515, 0x6d9af007e8e229e0, 0x51e9a8390ed5eb3e], [0xed84b2d27977b5be, 0x8c3ab0b8239c91ba], [0xdea87e20981afedb, 0x8397861c86ff81c2], [0xb393201f3133f708, 0x14363927a87ac24a])
+ self.div([0x74dd3972190014cc, 0xbac93e93e50eb58d, 0x2705a56eb8886d47, 0xd15dde827a5e7501], [0x50aa376ddf8b18d1, 0xb16b9378c9d9e82d], [ 0x1, 0x72e1fd077b7ac4c0, 0xc124962aa6e29b5d], [0x22f6a7d8f9f3d790, 0x585b351c10e7dda8])
+ self.div([ 0xc9b47c2e74a75ee, 0x202d24d9e9d64640, 0x9a070bcd25d14b86, 0xd6617725d3e03d90], [0x4e984c16fefb4e58, 0xfc1d1f173890e1bd], [0x290feca40b0f94c2, 0xaec794e19a05d1b6], [0x494591f24c59f9c5, 0xd60d79b839e37432])
+ self.div([0x5b131a33b76069d2, 0xc0d6da4246f31b90, 0x85eeb481401baf74, 0x50af66861c2037a0], [0x61d02b5a7c3963de, 0xf38bc07f57b3007e], [0xee5d1844e8089444, 0x591f39aeb9eba4b9], [0x2cbea508b3771b85, 0xba1176008dca2492])
+ self.div([0x8e147c8d0f7b0cf7, 0x1ec3b7eb98e1f46e, 0xd8718852979e5a93, 0x4c6e8f5da75006c4], [0x22c6a0495c672699, 0x70d6ec7c2d531c24], [ 0x4, 0x15e945c0b33afe14, 0xf9e2e0223f7797a0], [0x1d4ad27925898c4e, 0xea4bc0ae5d093444])
+ self.div([0x7e05cd627d783552, 0x5049d6b75f28cd6e, 0x82a62ec09774379b, 0xbeb23314c616c225], [0x82d7ddd0ab54adb0, 0xa5b39d0aa78dfcd5], [0xf6918110be843326, 0x44e0020ff2b0fbbe], [0x39e985d50b5ed326, 0xe3074dca0760450f])
+ self.div([0xc5902a7dfe0c6151, 0x2775e4b26d44f0a3, 0x78b7791fb7e501a, 0x841f59e1c8453235], [ 0x2c270d235c9ab9b, 0xe3f0621a59ea713f], [ 0x47, 0x97cacdda94350fb9, 0x8588f40ba7b4eb14], [ 0x17ce56eff414aec, 0xaa9f6cdbd2b38449])
+ self.div([0xa32f2eac8e61dea0, 0x935b37f8e7751a53, 0x17e8018a75816200, 0x223d67cd7992614b], [0xf66d0cd9e45e5bb5, 0x935c7072091bd8a4], [0xa986362243ea9b5a, 0x974352756ba5d2a], [0x190ef9ea870ef297, 0x48e799ca5e254263])
+ self.div([0xc613fd2fea458d18, 0x94043527c180c6a1, 0x57b6b88277eb76f8, 0x589f279a64196a06], [0x15bf23d4c6006ac6, 0x264b5928de75ea1b], [ 0x9, 0x1bc30fb0d17329cd, 0x38bd2f9361a0fb73], [ 0x841fb1e7a2c3656, 0xece5ee394cb8c6e5])
+ self.div([0x6dad150bd1d1b155, 0xbb083b383e9cbc35, 0x2b72f04bdb183caa, 0xe9ec5568490b1359], [0xb8ebb47979683dc9, 0x971fe8edfbff6ff], [0x97d5447fea545e9c, 0x7784a51db913abb3], [0x5a4f186c4a2efec9, 0xe743d6bffe80a0c])
+ self.div([ 0x40703747f423c64, 0x5613c3440499d8e8, 0x55554e6083ce58ac, 0xb6f3824b3f5052dc], [0x6e355a5ce08eeefb, 0x7c3b36561fee25d], [ 0x95ae97f890c6e27, 0xcdec3e349ab3be94], [ 0x49617992104d54b, 0xc47f32ab32ed6f18])
+ self.div([0x93d82a9c3b83386e, 0xb4811e7d475faea8, 0xeaae8a6c0e90739d, 0x346672542e0700af], [0x5ee32dc892535969, 0x757d653685a5345e], [ 0x1, 0x8edfdbfb64e53859, 0x4960e6bd35fc9f62], [0x27429d4f5bf267fd, 0xe3edf69666ba92b3])
+ self.div([0x908adc6723acd8aa, 0x64c301943adef093, 0x2683a844782e9fea, 0xd8b3f089f378a5b5], [0xace1e283db5e291d, 0xbefe7ad2d97fbe20], [0xd608efdf86a840fd, 0x5e174254d4505158], [0xa3d4981da597a5d9, 0x8c8c9d5fda672ab5])
+ self.div([0xfb8a5accd18250da, 0xbb47c5be9efc15c0, 0xdac171d047c26997, 0x117f47c5d5fe8d43], [0x83c518a396d11b4e, 0xb4738a9603eba728], [ 0x1, 0xe8b017f37cd0c85c, 0xc0b6f0a4d6f17f75], [0x5dbd6d7e7464276c, 0x2253411056b64ffb])
+ self.div([0x5a27c790a15ef53a, 0x2893a7ab7e527c31, 0x999c33bff96f06e3, 0x41770b4ff1cd8a4], [0x56262b8817ec6a36, 0x51193699075eccad], [ 0x1, 0xbe7b176ea87f07f, 0xe859adad7ada2b34], [0x13e2e3bef7b5be13, 0xe772f734d6283680])
+ self.div([0xba2de9e6a30b2ce1, 0x46f0e5bb4b7912bd, 0x1e74422e7b3c1364, 0xc1bf93d90f73fd23], [0x1e494a442b525b07, 0x3d6ee408b1729a4a], [ 0x6, 0x25b6695c37b1095e, 0x4fa29d18ba0bcfad], [0x1d700919eddae06f, 0x11edb5871511e321])
+ self.div([0x3ac0d9219314b012, 0xffcaf7646d099eea, 0x87c4f9963297c40d, 0xa6e77ce7692d95d9], [0x4c3c544dc751df89, 0xc8e3ac1125183f43], [0xc54b4bd4b989fc09, 0x242d9c5f805982fd], [0x42f55e35a443cb34, 0x6b06832f1cc0aa2])
+ self.div([0x8e19c967adb6bbed, 0x25126bacf6e6b74b, 0x15c1b29326a2aaa7, 0x1388fc5f6ad1d742], [0x33ee493a430b2c98, 0xebcd25de96e605b0], [ 0x2, 0xbc8145815ec1b84e, 0x3552c4bff0aa9d07], [ 0x76e8efc0ee9e30a, 0x9129859722abf72])
+ self.div([0xda2ce03ae26ee3fa, 0x9c19a5db5cd51e62, 0xf6fc5efb49bca9a9, 0x51838b9192978b23], [0x766f382763ebceb8, 0x7c4b4db660023e8f], [ 0x1, 0xd797d8d4cd141c09, 0x9d44c193dc42fbaf], [0x4e1f87bb4a3bdf63, 0x9de1324fb8da9262])
+ self.div([0x30c6a04157e69a8a, 0xe652c16e697484ad, 0xc732e42d89c435a5, 0x2b98954c5d1f01b0], [0x4888a0616e588b56, 0x9142ee4755b0438e], [0xac26393e4f6a01f2, 0x241c2f4c5f0ed29d], [0x2cd0c72b7f5e8d63, 0x851fb664d4d7179a])
+ self.div([0x56c71c3b5b440d12, 0x2bb956e99f862a89, 0xcd8e2b6548515b2b, 0xa1dc764a119a9511], [ 0x1a527ca3cc96e3d, 0xf7122f251ba52e38], [ 0x34, 0xbf7d8011d7bea535, 0x93f0852d9a88fcd3], [ 0x147328a26534dfd, 0x8f92ce1771365ce9])
+ self.div([0xb037ee774babb5a0, 0x3b42de3f2f605526, 0x51f9f116c9da6d80, 0xc3d998112ffac1f5], [0xb1d1a1f8a7e1d548, 0x686d51f06b42f6a8], [0xfdb22aa938004ebc, 0xecfc31496e4829db], [0x82aa946ffb89011d, 0x7dd18f7e24f0d83d])
+ self.div([0x81755006ee983b29, 0x1ae53e35bc2c84af, 0xb3afa46a309d4154, 0x8e621a7131551876], [0x7209c432134f31fd, 0xbca7df9ccbba4498], [ 0x1, 0x229db31b0f41fe1f, 0xc914460d43fb35bf], [ 0x238f6b318f0015b, 0xc8b242fa9820730e])
+ self.div([0xfa0f416616113069, 0x2fe1eb64fe09c949, 0xd23f18be62f1a9e1, 0x7dbf3019e92ef43], [0xb9903172cc6f369d, 0xce02757596a544c6], [ 0x1, 0x58fa638581fa3305, 0x2177ebeaba83b118], [0x748c652d99e2cdb8, 0x928dd94d2d3596b3])
+ self.div([0x54e15edc62343164, 0x4f966213e975ed4b, 0x466f553ada0a14f4, 0x90a74cf99068846], [0x323d8e12ef73b906, 0xe5aa4d4583e28b1d], [ 0x1, 0xb081eade06d7820f, 0x370ce6e79e997953], [0x27fb3bb0993c8d44, 0xb3985283b87db8df])
+ self.div([0x28ca40b2949c028c, 0xaa94aa1059aba6ec, 0x7d49f8abb14a6336, 0x19470f7f4010e951], [0x3af60e0128291c21, 0xd640a921b141f318], [0xb11a9c6a05ae8895, 0xb05f1818c505b7ec], [0x3971a79fb79ef319, 0x9ed2ce1e7b06a731])
+ self.div([0x61971ff7c04498e2, 0x5ea7c55d2e725ce, 0x3730cc5561acaf7f, 0xbf405277a92d4f5b], [0x2994a8448cec6209, 0x9f607bafb600a19c], [ 0x2, 0x58d5b1f1f423e24b, 0x39081c0645eedccb], [0x18dc1356d1167d22, 0xfb7903ec80c318a7])
+ self.div([0x7addaae6fb6a30d3, 0x3fb39d825b2ebf72, 0xb43420066ea7dd10, 0x6663461ee67979e4], [0xa63c05706e411a33, 0x6bf3e36aaa631e75], [0xbd36724eb2022ce1, 0xd3a20243008a5255], [0x6cf970927b1ec008, 0xc4d8dd1328bce30b])
+ self.div([0xf06fab69fd6f1d87, 0x5d4906c1d9645cd, 0x914c47bed4db5ad8, 0x7714f758b3075e5f], [0x387a2127e00d6a09, 0x85f696cecd459117], [ 0x4, 0x41da381402a7ac23, 0x436af98b43df5ab3], [0x17242c1cceeb1bf3, 0x655ba5854e57d54a])
+ self.div([0x2abc2691e8bdf5ab, 0xf2aefef66ff2dcae, 0xcc514425aacd01d, 0xdc81f820dc69169], [0x36db597a53167561, 0x495372fb91a5d9d8], [0xc76e52e532036e91, 0x7d44d70af635547f], [0x354de0642692a61b, 0x6fce17ceb74c9f41])
+ self.div([0xf2341a9c5677d9f3, 0x78b7151ece9eb14b, 0x1ca3492a095fa418, 0x789e430103fe7590], [0x78a537787b5523ea, 0x44c042d6366efb50], [ 0x2, 0x1efd4a1e529af12, 0xb609563a2389b00f], [0x47343139b7451f0f, 0xe1f0f52718e6bbe0])
+ self.div([0x264f5b40d889ef83, 0xbf8ed80de7cfcfa1, 0x1da81bd22e987c38, 0xb2c0ca2f49dd3dc4], [0xa8f47e2f184d5cc5, 0x9b2f67054870cbc8], [0x3a0c10f9fa34c5f7, 0x9124ccfb68e4fd5c], [0x242701924874919c, 0x55aa075b09cf59e4])
+ self.div([0x3687fc404abb2c54, 0x4820cbc7455dbc72, 0xc7ac77d862776223, 0x7f1d069799d67f4c], [ 0xa3b467b15450c83, 0x7168b4f1c828c100], [ 0x5, 0x54681003cfb3b910, 0x3197d73dcc99f0b7], [ 0x3c372685895e464, 0xb0d2eaf3f6c4884c])
+ self.div([0x3ad7a401e06b7a75, 0xfa96e485b82da6f7, 0x9b9cbe2519331d1a, 0xad075c823dc02b88], [0x678da40443a15505, 0xf5c05989b43c1c9e], [0x9177b02e94210ebf, 0xfbe0a2a4dd5417b4], [0x61e69e06b324f89c, 0xe317aed85311da70])
+ self.div([0xfca6c63efb5f50f3, 0xf5dcde54a0da2bc6, 0xbe20aad25cb48f7a, 0x378aab859acd1d6a], [0x2b507bce522bbe73, 0xef5c6252ff22214b], [ 0x5, 0xd53d6a8d2bb427ed, 0x664fa0cbdbe30c3], [ 0x7b466006dc2868a, 0x445ddb09c8e5b149])
+ self.div([0x8755e6b6ae40401e, 0xf1981c9aa730c0, 0x932def6da291bc81, 0xde9fad49fe614e1e], [0xa99522f6c0609ba8, 0x53de77f88b7accfc], [0xcc4d139db3264b38, 0x94f45af8f45c1ac1], [0x955dbb7ecbf2e74c, 0xae3da51c836b2c22])
+ self.div([0x75eacada12167f01, 0x54832d9de478949, 0xe56157ca26a59a0b, 0xe2b93c7a4d21a294], [0xd55fda4e82fa33aa, 0x10e310e98c25cbc6], [0x8d792cc290c97bd8, 0x4d54b16376d2b11], [0x8a350a746b147dc7, 0x7d90928a5816d86e])
+ self.div([0x4c9b0ddacebe1535, 0x445de24ff9e7ff9c, 0xff2d9583b2ebc3d3, 0xd949dbb0d6f39f9], [0x17a9eb7197c94468, 0x54c202b16af6cef1], [ 0x3, 0x3cbcfed76237bd6b, 0xe96e335d5976287], [0x13528384f375dd71, 0x73c94a9194e8d6e2])
+ self.div([0x47e7221e87e80294, 0x4cc4434c8ab69ad9, 0xf2b1cfa1cb3494d4, 0x58cc429f68da8b12], [0x26897ddd84afe36a, 0xdb973da3b7841836], [ 0x1, 0xdda5b9dd3022d131, 0x934ef6b35434eba9], [0x19ecbc2d821b3874, 0xabd1d78c5d74fd6c])
+ self.div([0xe9d14d044a6b349a, 0x1c0434d3ad7999, 0xa03f8ede0633d6da, 0xdc18d262a68068a5], [0x536aba5f41499469, 0xf3e6843659af5334], [ 0x2, 0xcd91670c456c62ff, 0xd8005f5ca76ed2e1], [0x3e40feb7c625e88b, 0xf74bedbf54cf9ff1])
+ self.div([0x6cacfc04ac5cf668, 0xeefdf7627284c15d, 0x34506493fbb96798, 0x9fe54d4095a853ad], [0xf34d70d8ec7eb54e, 0x10ee63c90aac7011], [0x7258e8afd2ba3985, 0xcefde204f5189dfb], [0x788523bd45cbacd5, 0x3c7961e897440602])
+ }
+
+ func test_div_4_by_3() {
+ self.div([0x9975940f57d2dcc8, 0xb015568677107a73, 0x7d157c6a5e2d801e, 0x8595064f75e83a65], [0x1f914f0357acd648, 0x52e7c2cc9c44e11e, 0x4b3693a1c3e93798], [ 0x4, 0xdc7d72c937b5e0e3], [0x15971522c05eb341, 0xff4741db55f592dc, 0x7e759d44b6feee9d])
+ self.div([0x86c67a4a7ebff5d7, 0x8cb52dc0779e36f4, 0x901c3ffa4e9c4047, 0x29361e8b0465db16], [0xa2ec81b6a9f359c2, 0x191784a1cf7ca7d8, 0x6b3aef44a270bd70], [0xd3c5442952ec8ff5], [0x8436c1bf451597b8, 0x6e6a43d586ff8541, 0x149d792116efee6])
+ self.div([0x4ca7b0f9c2bf33a9, 0x710f425726d7e6d, 0x65734f8b41b46b14, 0xfdd0208e2949d76], [0x9d18105c1a6cb486, 0xba549e8e7549101, 0x44bcc73299a77f13], [0x7ceab83c212e0cc8], [0x1825bb7a16a6a48a, 0x16b0041cf6a7c050, 0x702f5f5eb55a729e])
+ self.div([0x3641ccd6f572a4d4, 0x28f44c395899bc5e, 0xeab3f3038df8f771, 0x66b9c23d04797b75], [0xd625d346ddc1254a, 0xe31797dfe579ecee, 0x266c50ffa55edc77], [0x40dc5f0dea0c2d1c], [0xb3e20d08297ecbcb, 0x1bcb4537911b9189, 0xdf9a253325c47371])
+ self.div([0x551d416a929ece74, 0x6b0161fa48897ac5, 0x82be8e5edc158a47, 0xdce78c87257dcc2a], [0x7354f88ade496a10, 0x83775abe556a0620, 0x27c015ba2e12041], [0xbced2f1ed7d0eab4], [0x3da69b37bb8f3d2a, 0xbe7d5f2c6b9cb5dc, 0xb0beb5980be7b476])
+ self.div([0x64f18be939ec13f3, 0xb4e10346f6c016af, 0xa9a31fa5b332b075, 0xb270822132822c75], [0x3a2b902597a4806a, 0x7c5ec123388c96a1, 0xe4d1209011512b], [ 0x1, 0xbc3d938b5a5e7aaa], [0x170103b63baaafab, 0xd1d96920dab8d44, 0xbbf75d9b5a89c7e7])
+ self.div([0x3ee84d2f3d6523f9, 0x88285af162e47c96, 0xd225042cf061b341, 0x2b38023a1692e34b], [0x1efa037d9192ec8f, 0x4b37a995ba017436, 0x9d2f1033782763a4], [ 0x2, 0x7e2c15379abd34e], [ 0x97322a294b4bbef, 0x4283f9be88e00dea, 0x3caed3eef0e65b53])
+ self.div([ 0x53490149d02eee0, 0x99a31c7bf884241e, 0x5c862430bdf78e25, 0x8b44694e83bbe593], [0x8b39b44fe40eb75e, 0xe78bcfd26a6f3908, 0x37d81d88bc86d268], [ 0x9923e3550909975], [0x659228526c6f14fe, 0x894f88826c7823f7, 0x2dd54404ebdd940b])
+ self.div([ 0x298eec364b635c1, 0x33817e065fcca901, 0xc019df19d2bd3583, 0xbae035f4a015645b], [0x4f86a264a728fb3f, 0x839938c666139209, 0x19a407c8b516b4b4], [ 0x85c7815d1b8e53f], [0x1a386c69eb346275, 0x358a7eb7bdec46ee, 0x2c30dcf5ea79e80f])
+ self.div([0x77014477baa13dc1, 0x19759a5c1f2013c0, 0x9aabd41826d4cc6c, 0x499db03f001fa887], [0xc6b7fb9767a115c7, 0xf5131da07f4009f1, 0x124221a97d68ddfe], [0x994efb4487498d50], [0x7908289d9173e55b, 0xb5630624e8ced3d0, 0x9b0abfc4cda76327])
+ self.div([0x5821713742f87c10, 0x103f74c34e3a1f17, 0x336b3ed66931163c, 0xf59ba1a68c25a594], [0xd8d5c0775ae8c43f, 0x7335112632c007ff, 0x87dba916c06dbbef], [0x680c856b15619b49], [0x310ed18fd70a5525, 0x6cad8a6c9ab98009, 0xf17b01c36b82596d])
+ self.div([0xb64af5bf8b02ad0f, 0x2a71d4d143fd2cc0, 0x1dae1902017efc11, 0xba06ab66771a0d3], [0x3c5d77bbb4823fcc, 0xd113b8366042815a, 0x5d83b5f90e3c5387], [ 0x3, 0x514109296924e36], [0x29d80de80e17b9da, 0x10896057e7cb0aea, 0x6cd89b804846e059])
+ self.div([0x5bf136b7307249ff, 0x4c1c3bf2e3fedd5, 0x1a3e1c011b56ee60, 0x29152246fddae3a0], [0x1d242216725e01da, 0x73c2acd5b3da35df, 0xe48fb0be45c80f34], [ 0x3, 0x27b26a9c1329156c], [0x17c57e74b91e80eb, 0x8ee73f029d05e72b, 0xaaf3246cd8e135b0])
+ self.div([0xf98452cc8fe0e739, 0x2d6a0f24f5cfc3c6, 0x1112f0245c5c1bf4, 0x3348590777196328], [0x1549e9b1f0b0e938, 0x43ef30431e83be0b, 0x72a1fbed45cc9f91], [ 0xb, 0xb87a239a85149921], [0x130a84aca0dde4bd, 0xa0420134316c79b7, 0x6f067d9d60072877])
+ self.div([ 0xada955f2df0e072, 0xbbabb12beff5b1d, 0x8a1eee94ce8fb9d9, 0x4b38d8edb7ba252], [0x365c19cb3e8900ad, 0xe2e3c614e0f7c791, 0xb80a08e1174108], [0x331d5d3ead39590f], [0x1d86a3a87f6203dc, 0xda27c6e31ed34dd4, 0xd62d63b8b2bb0ada])
+ self.div([0xb8ac67e011dab851, 0x2b8e0131a0511051, 0x5dfa7e377f55a689, 0x4459cb6ed7134b4d], [0x2a7dd2d11985a68b, 0x819c58c8f3d90745, 0x1042a09fe2526be], [ 0x4, 0x589bcc95ebf05703], [0x2602261609c0804d, 0x6e67c0f4c7a7c4, 0xf5d095f780594513])
+ self.div([0xf714ed8dfee7f27e, 0xb1cbfc910e781844, 0x70f413bb56c6b3df, 0xea04ea547f6ccebe], [0x5a66099fc67d9d68, 0x66364b70bcf1062c, 0x7f1766f0a5bd517], [ 0x2, 0xbbb6240fb270e4c6], [0x55963dba1e8a30e6, 0xf1790c76a0baeab, 0xe14d50887a8d82f4])
+ self.div([0x55f3d6941b328442, 0x1d64a4b7b6838362, 0x779ad3156b57b99d, 0x9d2e8e14d50da2f], [0x2fb70ccc55ad8c51, 0xe35559de12d992f7, 0xc1fce2edcd0f95a6], [ 0x1, 0xcd26a84103c55eea], [0x1b7223cec11f169e, 0x7adfc9f2cdefde8, 0x3243f5309611c73])
+ self.div([0xd546803d3d0dfc06, 0xd3464e79bf536133, 0x60adffae7b060df9, 0x9db060d7f802fb2c], [0xbd7d39707431400d, 0xb5ef5a88e6ac3a63, 0x8d4db1bd988974a0], [ 0x1, 0x20229e0d41a63655], [0x77a083cdc2a7fd32, 0x40cc2c8564a9605f, 0xd884e2d91405820c])
+ self.div([0x3ea1f6f5807defc6, 0xb09fe15584a13837, 0xf4311755623f0ef8, 0xa0d061c0cc544839], [0x3a5669cefec27073, 0xfffb7ce78076c93, 0x907fbb34bb177ffe], [ 0x1, 0x12d91c5b53add03f], [0x35d5a36718fbba79, 0xa337a5e122ce531e, 0x40532318d0e768b7])
+ self.div([0x42bd75548fc63c95, 0x31facb1639eea835, 0xe8c5c3c961f441de, 0x9bd85caf98b8e60d], [0x5da5a40ea6a64f4f, 0x7e8f3e1ca3cb6ff6, 0x42a4a57cf87ddf67], [0xb671fd15f39719dc], [0x4fb171dbcf04c977, 0x59d1d783e1cc2450, 0x6707c54536fada89])
+ self.div([0x1b015b7f27d0e2b4, 0x1462cd35bac728bb, 0xd9b7482ec6439c55, 0x41cca1a6068c55ed], [0xe008c01a9cad11a7, 0x64272dfb71bc5a18, 0x355b68242d20588c], [0x1edbc6410d956d76], [0x9194b9bc8307f24c, 0x17c4ed6e94b42d4, 0xa9838de3ce73e965])
+ self.div([0xe483999664c007b6, 0x9b7113a0cae18991, 0xc436b73965f4451f, 0x2f640466f7e3a057], [ 0xe7033b0a3d7683b, 0x5ee8a73faf5777aa, 0x719e7fab6b1c4183], [ 0xf, 0xd3b2f175a55cb03c], [ 0x5d0ba2a1f85d163, 0x98ba13d9d5f1ba51, 0x25284656762635a3])
+ self.div([0x88bf4cc321837b1e, 0x13981883676f04ae, 0x80cb346a21273a34, 0x4bd93a15179c4706], [0x60fefe4eff3ecc8b, 0xe6cd3214d458b0be, 0x32f227ee0c586fa4], [ 0x1, 0x68ea251c53b8a080], [0x1cbea2622f79952d, 0xa55d891ffe96e9d, 0xcb0005a53bbdf506])
+ self.div([0x74b2b58c99e9f4a4, 0xb061c019a1e13e9a, 0x8378e7c6578f5642, 0xf9d3f4f18d81e365], [0xc3741e01413d43b2, 0x40b78ee7812c3027, 0x86c448ea01852613], [0x98d91d375cb0c4c9], [0x1193c7a59d958020, 0xace32afdd7b38dfa, 0xb17051be69c0727a])
+ self.div([0xf894fb280cfaa3ff, 0x4fc442bfdeba7ee6, 0xe988208b20ddf8de, 0x2242d8e4c1286627], [0xe6765d25493b1709, 0x2a4938005ba505d2, 0x9ec3d3b59068022], [ 0x1, 0x14209fe360267b00], [0x3c93f93c43e31b93, 0x5a4eeae10c43b332, 0xa20cf1f4dc8c1027])
+ self.div([0x7d1e7a48ee860bff, 0x40f8132a6a3c0144, 0x796b58caa36e7e18, 0x2972cc3b4e082f3], [0x2779c0203618b6b2, 0x7541da119593da3c, 0x53b38a6125620ade], [ 0x3, 0x2b664ea3b0be5a58], [ 0x68087b38735f7db, 0xb966138ee7f382ce, 0x553bbea3b296baa3])
+ self.div([ 0xc593f4166b4804f, 0x17e1a0fadb11d66d, 0x1b81f5d3024f8248, 0xe3f277908dfc9f95], [0xfbe6828ad7f9f47e, 0xe4197aeed7aa383f, 0xae0797e41802cf3c], [ 0xc8cb1ecebaa75cf], [0x55cfae31d159e5c8, 0xe2588428940a64a8, 0x3b3159be2928a211])
+ self.div([0x28735dbac61a9a0d, 0x3d178856ac3e5796, 0x33e52be64fca75c7, 0xaec2336415aeabb5], [0x9eb0630fc10b3d1b, 0x482c50d96077ce8e, 0xb14f47b45a378c3e], [0x4141770ab1b265f3], [ 0xa0ea4c38198a24d, 0x9024350d6aa358fb, 0xd9558c98278416db])
+ self.div([0x101fb5db4a86aa5e, 0xd7e54f244d945f70, 0x20f0ccf7c213af39, 0xa4dedc020e101082], [0x1c960b27217fe103, 0x9d511607c86530ad, 0x687b49a6a01302f8], [0x90654b1a2a6e2f15], [0x10673f13feeed9ff, 0xd94c89c7dc4e96c4, 0xf4bb5e1b78654a2a])
+ self.div([0x377552f6867fbfee, 0x80281c1c787571b3, 0x2e81676b3d393e64, 0xdad48159435fe374], [0x8e4285051dc20ede, 0x92f0bfcd67eb23e, 0x8f42ffa0e6090b40], [0x63cc6ce568e602e4], [0x7dd68b507fb8cb2f, 0x986da9ac50a2b8fb, 0x67512b4e35bb5e74])
+ self.div([0xfb38b098a10148ed, 0xa7b06b892bb24e67, 0xb16e27f14a630014, 0xa7d8735fca62a3ad], [0x69e4fab671448304, 0x604fe78c2844f9ea, 0xfc4c8117ae4eb183], [ 0x2, 0x5f540740195154fa], [0x688340c3a13b2a48, 0x56bc7ac9a24ed499, 0x6bbfd111c9d74dbf])
+ self.div([0x31a032acca812a60, 0x402c2e005bd3faf2, 0x9138f7e3fcaca2ab, 0x214a7f175ca67af8], [0xc0e905d6ba4435cf, 0xa91d4cf040ff9306, 0xb8832a2cee6e77ff], [0x41db0120556ae8b8], [0x6550f6885be74e80, 0x3a419d2f7b2773ca, 0xa09a104285eb23b0])
+ self.div([0x3406f6fbc974ed6c, 0x27f5f666f78b198e, 0xab449ee48be94124, 0x98b145486ea02074], [0xc9f88bb5a6666ae1, 0xe8252a5aab57893a, 0x7c2ddf26fb334fb1], [0x41f1e9e40ece8147], [0x253f65af5f4a02c0, 0x34d68581f8318e57, 0xf38eb89a19ced55d])
+ self.div([0x24665027c3df084c, 0x821e127ebb12f92c, 0xed8e284338fc2b05, 0x5a4e4f27a3780e9e], [0x7587ecfd7d56effb, 0xdacf13f963a3e09d, 0xe6ecb6b1d344d62e], [0x4f48adcccfdbc011], [0x3455d14460877992, 0x4cdb58519f88742f, 0x1914a72a8fe95590])
+ self.div([0x68d6af7e3ad76c05, 0x738c3e8611678dd8, 0x8bcd7a5661efa083, 0x8e1cef2658e9c108], [0x7facd1d28cf7e0f3, 0xebb0662443a2f339, 0xd4b8b6f811f585c9], [0xd235f9d27dd7bffa], [0x66978b11a08513fb, 0x8221f82ab5519b51, 0x16f5f4161f8523be])
+ self.div([0xf5ee3280a92b4743, 0xc33ad2b6108d0a6c, 0x24c4b969c5243f16, 0xcfd3c1ef5be8f269], [0xfaa47399fdc5ab07, 0xcaa895d7b8a0d526, 0x963132673b190730], [0xfb2ff61e0e0474ef], [0x4b6350fdb5ef0247, 0x42ff88e3bd7e3bf4, 0x828faa5f1b897c99])
+ self.div([0x42a43fb27bd07261, 0x7262790e4c6b3ec8, 0x57b3a7865c6e3bdc, 0x3c8d7b654def24e], [0x9e5e7ad1b4e6eccf, 0xb341cb4481dfd4d8, 0x14e957961bb087b8], [0x6bb9817524831b52], [0x6d87099300b1aca0, 0xf6c94e2acf149dd, 0x2f0f373284db115e])
+ self.div([ 0xaf9f4e1a1783e64, 0x77bad3fdbb57a6c1, 0x87a7d8be5aedb01, 0x7bd5314c9120d316], [0x142f2700484927a9, 0x487dc02f2a227029, 0x7c77cdfd84a9fdf], [0x8b373a054486fa13], [ 0x2a66874654edac2, 0xb9767ddad055428f, 0xb5dea494b8bd2f89])
+ self.div([0x398d4a072806bdb1, 0xf580727c2db090ad, 0xfbeeef8a67c0718c, 0x127b32a50d4e1a6f], [0x18864d9e02ba4125, 0x1ae65e2c0c4a6fb6, 0x51ddec994b831ab], [ 0x2, 0x58c1479d25bf2f16], [ 0xa1c5d6b28bd17b3, 0xbd5af81730a8ed55, 0x4676938aaec670bd])
+ self.div([0x760c686b450e5449, 0xbec4e980be3f2a55, 0x98bfdc5c09d1b36d, 0x6df1801668de86ed], [0x4fb492a4cd47654f, 0x744a3a64e543d31b, 0x200beb2c60ab1225], [ 0x1, 0x7b26c8c890ae4e3b], [0x2a1ad7113e7fecc0, 0x23ed293dd5a94893, 0xf6afc404dcc41266])
+ self.div([0xd0aae33d12e43055, 0xc466e9dc62cfcd20, 0x1eaa8ebb3fa6c107, 0xe112c3635e3bfab6], [0xb4806c62684cb50f, 0xe10543131480cb6e, 0x12e9eec36e787eb0], [ 0x1, 0x27f261c75909f279], [0x6dfac83c62704da0, 0xe8ed071222aa9f39, 0x5c7a397e9b55b986])
+ self.div([0x872ef2529d893562, 0x6c7a8000fb567cdb, 0x5abf23df57955e82, 0x4f2cf44c542336dd], [0xba17766307dbd82e, 0xe5c8af83307f7cb7, 0x926a5133259443f9], [0xb9f79ba1ce2ca76d], [0x527525e128a32143, 0x2f9d39bf9d0a5c20, 0x9242bd3a8eded6d8])
+ self.div([0x2cdc5d066e15a540, 0x883bdae2aa72ad61, 0x5c31241cfa763c6a, 0x4202c4d0f488a6b2], [0x7c668a95cb48d923, 0x708e24de63d51d4, 0xeb10dce53092bd25], [0x5c514fcbf1e98db4], [0x76b5e5cb15db911d, 0x4eedcd9588ae9ccd, 0xefba76f4ff8147ae])
+ self.div([0x6ea3b1bb67582541, 0xad5607ac41335dbd, 0x639ac407fe853a4a, 0xb0dcda1df0dde1e5], [0x14b3cc9d5e5af4e5, 0x3e5e75c85b54e576, 0xf11206ab4f2a71df], [ 0x5, 0x5823c2a3ae11f070], [ 0x23f054925afc0e, 0x170c1ba0dd825d26, 0xa5bbbabf61bc0055])
+ self.div([0xa3166ad4855cef16, 0xadc43d63f086259a, 0xe29473aa442a84f5, 0x72763a7a3b4ef24d], [0x7663baca792216f7, 0x623e2667bbc7d42, 0xbb3d29b65acdce9f], [ 0x1, 0x60a7204b413560bd], [0x67f8b8bf5c3d2554, 0xb8b01d90e7bb7d16, 0x99029624ddf6c6ea])
+ self.div([0xda88cee2df9551bb, 0xf8c5e13df8df3dd8, 0x3e2d3285e76fb1b7, 0x7b3f646368f21a58], [0xe13b4e882b8d869e, 0x384e43f87caf890, 0xe20fb3c6b1ad4b26], [0xf86349bc4f5158da], [0x70e9b970963349ec, 0xa894e6b9a3c993c9, 0x9bfe482f08850bfc])
+ self.div([0xf1a3f516270d82a5, 0x9c193b94e2b8c21f, 0x1bbb15653a01b331, 0xb6d4e689451fe079], [0x6d3d3004e9504e71, 0x106ff9d5bfb84640, 0x7f0aff624235fb87], [ 0x2, 0x3647e332e66862aa], [0x3687d2d262192e9d, 0xdd9772253f2924d5, 0x135776a92a252ad3])
+ self.div([0x91b186c9b75a4f13, 0x3b634c8d8e509b7f, 0xaaa5b485080a46d9, 0x22f202d5c5b5ea31], [0x952538802dcb14ed, 0x27f5bf171d8f0253, 0x4d7a57fd76db0207], [0xfa132fcd23f18a9b], [ 0xb5fde1e5be5c312, 0x7f40c8b3e82d9b6a, 0x6a4e5c3de26ce9f4])
+ self.div([0x8919282d2e7e4e16, 0x2531d9a750cb390e, 0x4303cf6f6a9b9a72, 0xc5d8de77bc0aa315], [0x9e59764f8fbcadd9, 0x66764b8f0dcba0f8, 0x10522c969cd8c6ca], [0xdda4c807c7c2a7f8], [0x7e9e61af2062ee20, 0xa3a9f3be2bb1176b, 0x1c74cdeab5484965])
+ self.div([ 0x4dca01d0fcf7da, 0xc3e0e01c87858161, 0xf23b5c5336e46767, 0x7055c99454437404], [0xaa89cb51d954995e, 0xd4838a2a05b18ddd, 0x4a7b27da501ce8bc], [ 0x74c580926c787d], [0x2f85578ee1fb7e53, 0x810b908f14b184d9, 0x42fdab8041bdb038])
+ self.div([0x61fabca517d02d74, 0x89183b2799f4713d, 0x81449be8a3e943bd, 0x3f551771712bc442], [0x76347d1b3b5205c7, 0x1eaf502af76ef49d, 0x51c63fdca031410d], [0xd4326555538fbaf3], [0x671d4faa519685e3, 0x4d97abf4f6b37d9a, 0x4a03feb60be492eb])
+ self.div([0xc063158c0fc534dd, 0xb35c40b80763e249, 0x26964054dccb4d7d, 0x94adc3e5c88c9d93], [0x2ea99cf9e59874af, 0x3b129992c0deead9, 0x62617febc2606a68], [ 0x4, 0x1f7933ed275a4382], [0x22a8afae0dcfee6c, 0x1ba10f13587e1a85, 0x2b93d9ea972d5cc3])
+ self.div([0xfea23be87a064301, 0x69f3dbe58c3dd93f, 0x4ecd8b1a5beaaa6e, 0xd89d19bc3d862c1b], [0xda85957d0b9fc396, 0x467a3c8c413f9461, 0xc76b1ae6769c97d3], [ 0x1, 0x2a4e2dea2b5c2dea], [0x3b7043cfafebe7a1, 0x3bf029483729ab0a, 0x8a2034954adf4e3d])
+ self.div([0x4303d84d2534df43, 0xf65589ba39731639, 0xc048a5585efb4133, 0x5187c89fbb66bfc0], [0xe9bc658f65fd02d1, 0x847db847632c1c66, 0x36fe2f1af970ac7f], [0x4965fe1cc325e401], [0x4dd2a71932b6df29, 0x49ccb6463e8b161f, 0x51ad2cabcf9f741])
+ self.div([0x55b516ef745a94fb, 0x239eca9b693b3bb2, 0x7b5c5d15eb5ad51e, 0x38120059b625e158], [0x820359929c0cd22d, 0x4672d7d420159cd3, 0x2ed02bb15309b7b8], [0xa8c2b8549464d49b], [0x7e1d84ef9c62ca59, 0x491da89ac842441c, 0xb1e61cd63f3f44f0])
+ self.div([0x60ff1c5cbe4c42c7, 0x516e26a337a81c29, 0xd05959ccd67a849, 0x85bcd9178293a936], [0xb3a7574801eff09a, 0xe955e26707e59ac0, 0x785f6ebeb3f3ed4a], [0x8a376fa9065dacde], [0x2eae5226d4ecff5a, 0x91e6db77859539ff, 0xe242dbc8a1bc2b0a])
+ self.div([0xba223918a55e4e99, 0x7c0e86e66cd6d813, 0x58a09d03772b0d91, 0x80973b0a0a437b66], [0x6fcf56492bb4f16a, 0xf29c15060b1b88fe, 0x958baf4b36d03ffc], [ 0x1, 0xaa2bf68e4ed18a1e], [0x3d27fed3effc1f4f, 0x7f273e041fe8dad3, 0xa4b4b6256a223de])
+ self.div([0xbff289bc560e7319, 0x92c8f483b0e3b58c, 0x79a62a5778aba262, 0x308492ea0f9b719e], [0xa0bafc1fe614f767, 0x25639317bee2dd85, 0x5dbff8475eaeabe0], [ 0x1, 0x31b86116b967e072], [0x779431ead9c62830, 0xe11e789e2dbb4efa, 0x4483988d084ee7de])
+ self.div([0x508ad2e56b82a6be, 0xbb6c96779087d8cd, 0x3ca7c6a13cca9c6b, 0x4ce80e906dae8a42], [0xbc2c3d9547029d0a, 0xcc023f4b700ae918, 0xf9b68f5a062f9182], [0x6d92e93ddd23caac], [0xa5d1e7ba2064b233, 0x6ad7916f2c98acb9, 0xd93ce1a9e2232ea])
+ self.div([0xa4ef52d5020311c3, 0x7147bddf41b7f24, 0xbca94b0e216040f2, 0xbf3ecfce15b57e3b], [0xebd6fa7a2788c445, 0x4d6be9ea635f0ae1, 0x3d1420a9c4ab5186], [0xb308b0e842c899f7], [0x5f2744f75052b615, 0x23a5afe0f6f0fb8f, 0x3e7a032ab400bff1])
+ self.div([0x31239434e1ecb39f, 0xae5a761709265d59, 0x39f11eb474f0c188, 0xb850686a424cc1f7], [ 0x48c6cad233dab12, 0x6843a6a786ab4381, 0x3332080c5f79c405], [ 0xa, 0xcda257852f7edb34], [ 0x436cf3582bf9d3d, 0xbd379ac50a52a4c, 0x419b4db54d6aa9f3])
+ self.div([0x7b2d4cc39e7cc7ff, 0x9ddca726e2364383, 0x9c1bad8adfbaf95b, 0xbbbf675784936fbf], [0x22fecda69cf498dc, 0x308a5d9a841c06a6, 0x7aa86d2f2576aaee], [ 0x3, 0x85125f7dd8c2e71e], [ 0xd4324f7b3ac293a, 0x7550167397ddd08c, 0xdd0ac4a6b412a5db])
+ self.div([0x717bcc4f8d862fc9, 0x9b83ee2eef6bdf19, 0x89d507d24f2d2416, 0x7f058b8ac327e17f], [0xa7b722e70ea36604, 0x912bfeb3767939e0, 0x4d6255aca821a3b4], [0xad3888dc899ffc5e], [0xa1d98c0ec9092518, 0x3cce1cc2548e8af1, 0xdd1d6473e8dc9567])
+ self.div([0x78fa26bde84e3e3d, 0x224056cc618e191f, 0xb72a4ad3b84ee5c5, 0x5318a21f6aee371a], [ 0xb2fd31b5a05f9a3, 0xd8d348f1f79d7b9e, 0x89a880cdccd93d2d], [ 0xa, 0xd07381a59358f422], [ 0x4eb78769305f513, 0xd8c616a07e23a7b4, 0x71851bbc494d3320])
+ self.div([0x7014ecd071e6e151, 0x8c8c00a08c1c28f9, 0x5da81d8b4002d007, 0xbb2a03caa0b7b24a], [0x94f424cf88bdd425, 0x1183a11164ecb9ce, 0xd81dcdc4d2311b44], [0xc0a13d4ab5498fb0], [0x8e67aaf80715d2fa, 0xffff3ef9cd9d6dcf, 0xf89dd20d655f78a])
+ self.div([ 0x6442e10ab1797f9, 0xe4412dea38c68b48, 0x629de0ec91af8034, 0x450cfdc18f622516], [0x1c4381c1b6ba91a6, 0x86b1a2b56d385816, 0x1180faee5e8f9e43], [0x38c1f29fe6df5ad0], [ 0x84d91a2be198107, 0x6d302683574726fc, 0x7e1e45ee2eb100a6])
+ self.div([0xc437e3794b543f4f, 0xa9e2f9c2a58d0a7c, 0x3288db738a6c8f97, 0xcdfad7d0d1ea7301], [0xdb27c981b1a189aa, 0x785b8287fba66406, 0xe1bab5c938082d9a], [0xe534e9c913364456], [0x6508d2f96e711f2c, 0x54c1c9031ab51701, 0xa428ee4fc6923945])
+ self.div([0xe6ddfe6582d3fc9c, 0x8407dd9bcc5f3946, 0x5943bf3dc353734c, 0x3e11d8ba2040ddeb], [0xd39dcc49d11d6c0b, 0x75c5cce7090c9553, 0xf4cc03b54b24e8cc], [ 0x1, 0x1749d0fd8eae1232], [0x6c3213d3c43409a4, 0xc4ad6902b74a3681, 0xa43023578050e13])
+ self.div([0x72e0067765198721, 0xa87f438e31363a9c, 0x20a7c5245611ee96, 0x67535903ef36d4cd], [0x68c6988f9c43ac52, 0x10fff0606de8baba, 0x4e545feaa68fb96c], [ 0x1, 0x18ad0368cedf6b7b], [0x5de7f937dd55c4ba, 0xa976b25a66bbbe71, 0x59b7d960689499e9])
+ self.div([0xb66c9c0529de3a9e, 0x1bce998469159366, 0xca8b06869fed7af6, 0xec353fafbb774564], [0xb359bd1c7b596554, 0x7f66995a7f8e6878, 0xaf3f1249b65348f6], [ 0x1, 0x4632852e7a3c4e9], [0x925e5666e101bc27, 0xe66f4b8d279d07e1, 0x80231e57972b857e])
+ self.div([0x9d3ed1cb6ff82e00, 0x6826b26338d28d60, 0xc4243dee03f65f40, 0x3c9fe35adb666d59], [0xaa198c4378a4003f, 0x7518d54a06623204, 0xf22870a06947f56d], [0xeca7751fb267675b], [0x1749ceae38d0345d, 0x60f3a47847f15be, 0xd034622cf238549a])
+ self.div([0x8f65856293c3acc1, 0x4323bae9c97fbb5, 0xb6336b4c4dc433ba, 0x1b77e1809522b7cf], [0x21ef4c889c3e7a38, 0x2fddee978ff0c4ad, 0x3be3d94f40346cfa], [ 0x4, 0x39c478ad24592fa2], [0x1597e4d2d4af4eed, 0x31989d62f9048a5f, 0x9ee34a114909db9b])
+ self.div([0x4320c660b3845d9b, 0x90f22b6521ba653e, 0xf19fefd6865a26ab, 0x5d80898b93e13128], [0x899fbadba50b3b3c, 0xbd533dfa84f2e66, 0x41582131324a4971], [0x7cde1c8edb9d27f4], [0x55d4d3ba37a39979, 0x410b30669caa7f06, 0xc605eaed9e95fa74])
+ self.div([0x7a109d1a03884d34, 0x3f6eb9528824ddec, 0x8ae57b5c39ad84bd, 0xec3388e2b13245ea], [0xe90af134aa10fdc1, 0x823530f9b5f463, 0x342b10669189f229], [0x8616f1917654174e], [0xaf653ea0e3dd1774, 0x503b10b0db9d6b, 0xee3d397398f4ce6c])
+ self.div([0xdbb5bae2e27588f5, 0x8825421270261db4, 0xdd7801b4d214fe9e, 0x54e6258f57aef8be], [0x35dd86785e36699c, 0x2b21afa187036792, 0xbf6de07afd4e2b1e], [ 0x4, 0x14310eba174e032d], [0x2a64b639814a62ed, 0x4d3ec9ceadb2c7ec, 0x8d4137c114c0a78])
+ self.div([0x2acbc4826c5ecb57, 0x127d34ab2ace1dc4, 0x902c027348c426a6, 0x8ae8d58cad912bd7], [0x59d5f721965afca6, 0xe00d6daf0c99afd9, 0x817dd89f828677d1], [0x79f407e18cfe9a3d], [0x1075a85619700b1e, 0xda049d764a7b6309, 0x704d32638214e50a])
+ self.div([0x5397154aa4289939, 0xf3994b337be60ef7, 0x830a83d4e6824c99, 0x136509e093752356], [0x28c7782fa9b4b9cb, 0x797c1e2eb078ccf0, 0x9fc7ef96610e37c2], [ 0x2, 0xcc15102407c9650], [0x2210f38026b195c5, 0xe5969b849ac7294e, 0xf66aabac68600ab6])
+ self.div([0xb5589fe4d56f42cb, 0xf533496f7ba61726, 0x1eb465690c7ffc2, 0xaedb194f0ebfc137], [0xcd6217de648bc4c9, 0x3a5e79bc06366638, 0xbef9f024971cc152], [0xe20a013c10146126], [0x18054b8eda85a2b6, 0x86bac9a01441117c, 0x1cc35b1280d2fd0b])
+ self.div([0xac7af5c21ed7be1b, 0x30e7106d64402f9d, 0x7e30eef46b3c9ddf, 0x5958109fd65a6797], [0x6177b62693013ee3, 0x9638a0c4873b2f44, 0x818eb0e532d81374], [ 0x1, 0xc50595f88b218219], [0x5ed8893455b9dc9f, 0x8d22d3747a3ebad, 0x528429a1a76b9943])
+ self.div([0x9f623f3f39b46d42, 0x7a1c93234f60552d, 0x901535a8720c1b5b, 0xe29805f5c3e4460c], [0x226aecfe24dafed6, 0x61905eb1f8218b89, 0x6a41cd575d10acb1], [ 0x4, 0xa180a95744be350f], [ 0xee85c9b1d9f3f27, 0x14f1e3a54796f717, 0x217ede2caccb82ad])
+ self.div([0x9f574b80e0be7073, 0x51f4c50cc032d0f3, 0xd1c997b8ef06c04b, 0xb3ce9f2e14a477a1], [ 0xc975369641deda6, 0x566f84c45b6ded78, 0xfcb9a243656bfb7d], [ 0xc, 0xa7b03f4e3bc59b08], [ 0x2f9abe6da01fc84, 0x3b104836ee68d49a, 0x17cb6c8631ceecb9])
+ self.div([0x7f7d3ffa20babece, 0xf671387b82b2ca6f, 0x18fc3b73d0638bd3, 0x4764a766a64bcbe3], [0x9b9f03ad7fdbd3ac, 0xc503cd00bf720a07, 0x6bb6ea8c66e787f9], [0xd1b8f2f10759bf80], [0x204f2c243c330d4c, 0x2a87498dcb8407de, 0xced821cd5f840863])
+ self.div([0xd3d2d6c015b609f1, 0x705dd7964849da1a, 0x954835316f0b8a08, 0x92a470ae83bbb5f0], [0x99496fea17a28c3e, 0x1f1283fdde056831, 0x60d4c2b4c07d31a1], [ 0x1, 0x61c2b0a8ab546da6], [0x7c7c728d079c0a57, 0x3359fbfb626884a7, 0x909b2ea19097fa8a])
+ self.div([0x87c0f0d0e86c3ff9, 0x12bd758209aaca15, 0x39f309eea75391d1, 0xdea92355b26b051f], [0x6669c644ea423904, 0xa4bac9f54f3facaa, 0x4df43c033e9976af], [ 0x1, 0x53572b49becb4ad3], [0x448ed740542a2614, 0xc102d110ab4ecaf3, 0x52cef5e2beda9ce2])
+ self.div([0xbaf1d15d9f86a9ce, 0x2c281cfd9dd23204, 0xbb3505186d0430ed, 0x98b2d6a5a4bb8ed7], [0x87406c685dfdcdac, 0x761830cb01e64577, 0x4bb43ee6b1bb33d6], [ 0x1, 0x61d7bebee31fa0b1], [ 0xd2d4fbba9e97383, 0xe3adc53a1a884db3, 0xf4175899b8fcf7e1])
+ self.div([0x5838db64d4f9793f, 0xb888a96f4999dda, 0x2c2268bf202a180e, 0x75a52f6cb434198], [0x8b7a98168f6d1c89, 0xdac99b9b8afe055e, 0xde0a4170d5c3ce17], [0xa1ec52182b9edd10], [0x6f826480aac3a123, 0x4738ebba816c9cf3, 0xbe1950c056ea8528])
+ self.div([0x71acf8478c417dc6, 0xef46b34b25ea318f, 0x71ae018451be9247, 0xa6ba939d6f981e51], [0xcc139c7bd728f85a, 0x3c3beddf9599f2aa, 0x4066eb4e0bb721a5], [0x8e9927d6f06d4678], [0x996ddec414f78ff6, 0xf3f5f998ba56304e, 0xa41b0061db4c3af9])
+ self.div([0x6796bb15ad3dc466, 0xa5a43d64d57f00f8, 0x2fb8059dcfa375a3, 0x41dc202edb77fc63], [0x33785cfc35815c87, 0x21f50c1a33d29b3e, 0x293686248e318c26], [ 0x2, 0x339aa3a0c16006a], [ 0xb77d96f9115ecd7, 0xa5045ef12589143f, 0x2eb90d9c27aff4a7])
+ self.div([0x52c552ab67cdc903, 0x8f2cd7141bb9cf5b, 0xc0fa326875516bd5, 0x87f566828e85082f], [0xf443c0c915133f7c, 0x3e6b9268f2999192, 0xb4fead91f3e13456], [0x56bf55439f41491c], [0xabdc88127ba30539, 0x8459df87973d07ed, 0xd998bfcef620c8c7])
+ self.div([0xf8961ac00dd7d7b6, 0x7ee84744b3242f40, 0xf16feaffe1a6843d, 0x9290d1a76ed28c31], [0xac62cde35ecea8a0, 0x9fe2d9ba05737371, 0x3342796b3a1b9c59], [ 0x1, 0x71291def51fbc7c6], [0x194abb809a0bbc3f, 0xc8be6b0386aa55c6, 0x9381cceb92ab705b])
+ self.div([ 0x2182689085b98e4, 0xd8d1bd074561710, 0x5cc8fd929c8b4bad, 0x33d4c57986ec9472], [0x5d0252c5ef30bd35, 0x29727d4cce60e9d, 0xe45d04d786d77a2a], [ 0x5c3b611cb71ed4c], [0x1b02e2c9a3cc564b, 0xf33a4cc7f382c0cb, 0x3a8571e1c8516dfa])
+ self.div([0x1e72540d6de50e9c, 0xff8c83192972659f, 0x4a495d7dd8af873, 0x3b6e0c7b02c431db], [0x836228fc82a652c6, 0xe61c75eda2036b6b, 0xced24287facec150], [0x3b533621973c3ef9], [0x487af9756a595987, 0x386c3d47c3e9a7f5, 0x49a1dfae7e18cb0b])
+ self.div([0x4e6227f7403b15cc, 0xb0973aee486a57d2, 0x6d782e6cf3830319, 0xf9bef13296e72498], [ 0xbec5909908cb354, 0x766ab06948d4d930, 0x55533070c842edfb], [ 0x6, 0x92f221109aac29e4], [ 0xa99f600af06ea7, 0x260b2f672284d79e, 0x284b1dca089fe0c])
+ self.div([0xf6537ae373d2dd18, 0x1b0436073e762524, 0x5eaca26398f1ca94, 0x8e98b201bc4245b2], [0x80cb08c8f6615500, 0xa11bc573e4b36a4c, 0xfdbb04662b4492fd], [ 0x1, 0xe99e53148a0f16bd], [0x417b395fd4d80fc7, 0x4976af404551da80, 0x39aca7d6e72d02e9])
+ self.div([ 0x9ff99b2244fa97c, 0x463535b0b3521a5d, 0x734377e3cab6f95e, 0xf33b35cf79d37fb7], [0x1ac7999f5254490c, 0xd44bd9308fba26cc, 0x2270c0ce11f6c45d], [0x5f947585a99cb794], [ 0x830000153540ea8, 0x2871837eddbbe3f1, 0xc3131083a31f7ef3])
+ self.div([0x132b1ea5b6b1eff0, 0x5abe2bd73f72f964, 0xcba8a10513f189b3, 0x986b3a87b34b6be4], [0x99b4cc6f66308232, 0x4fe74c0a6df2271c, 0x692b45a80634b4cf], [0x1fece1350e2e31d0], [0x2093e2da980ef6bd, 0x47da97357305db2d, 0xccbe1b9bc2aae4b4])
+ self.div([0x987da403de440a65, 0x5a15eb7573b784eb, 0xc675f9066438872d, 0xce0c067e8f93105e], [0x421e64fa270f15f4, 0x1915a40fd4e36737, 0xd48b40d20ada3d8], [ 0x2, 0x4e6ad3d2f2053e5e], [0x224ec61d72358536, 0x7933ab77764d12e9, 0xd0ad844c1eea970e])
+ self.div([0x2bff501253c890af, 0x7b98104d8d568ef1, 0x1b14bd0e96ebf56, 0x79cbfd4320cb15e2], [0xa8f7484e9e2e6649, 0x429cefc77482167e, 0x7fdfe83e33a16fe2], [0x42a906572977eefa], [0x1f4d7ca3a18bd8ec, 0x8aecf5f86b49c8e0, 0xf5c2fc06b11b72e])
+ self.div([0x66ff685326f600b9, 0x98b0f112fe273ccd, 0x19b52bce97dbc2f9, 0x86985b4346c80754], [0xe9ea78965a6b2610, 0xb6ea7c0f277db66a, 0x7f5342b48b4a81b9], [0x70b8c3f1f9409a05], [0x2e21b10e63a7eba4, 0x13c0b1a0ca4d493b, 0x9c4d1cfb5d0a34b7])
+ }
+
+ func test_div_4_by_4() {
+ self.div([0x9ef834705911e34e, 0x577e4a46882e2e73, 0x7d2fcdc8d8ddb819, 0x32126ecac1f46c44], [ 0xa62dc2ad97364a8, 0x5ea433c0c375bf4e, 0x4cf6e663512d440b, 0x7ac546a18d80486b], [ 0xf], [ 0x32d4ded9b4efd70, 0xcbdf41fb1447f8dc, 0xfab84df71736bb6d, 0x834b5377702dff])
+ self.div([0x2f7945cffc4ac661, 0x4601adce6437795c, 0x16d30e24eabf0e21, 0xcd4b42b1c114b9e4], [0xc214f46263dbbc46, 0x469c3cd1588e3269, 0xb75a0a7f49fe4bf8, 0xf2a68493f34fc035], [ 0x0], [0x2f7945cffc4ac661, 0x4601adce6437795c, 0x16d30e24eabf0e21, 0xcd4b42b1c114b9e4])
+ self.div([0x326c94864dc43785, 0x6b2582f11c54f08e, 0xbd5b0b5a98c5e355, 0x8ef1dde56a3296fc], [0xa5f803f614e80081, 0x828aaa77430e6448, 0x3e746462ecba2b3d, 0xabcf6c7e48a0820a], [ 0x0], [0x326c94864dc43785, 0x6b2582f11c54f08e, 0xbd5b0b5a98c5e355, 0x8ef1dde56a3296fc])
+ self.div([0x2c1f8c386d8e2346, 0xd911425332a9dfda, 0xcfd6da5e346360e, 0xfcdc9df445eac0ea], [0x7696f2a0f70b57bf, 0x6763d7861000cd91, 0x766bc361075f4b22, 0xd013b46fe768fbb], [ 0x0], [0x2c1f8c386d8e2346, 0xd911425332a9dfda, 0xcfd6da5e346360e, 0xfcdc9df445eac0ea])
+ self.div([0x1b7aba724f31dc91, 0x6a5607b4719a2c72, 0x665c1592613dad1d, 0xa435e1246f4877e7], [0x37474b5d20fe8182, 0xb8bc27e3d07afe27, 0x746fec8f9ce6f961, 0xdb16f92ebb39f60], [ 0x0], [0x1b7aba724f31dc91, 0x6a5607b4719a2c72, 0x665c1592613dad1d, 0xa435e1246f4877e7])
+ self.div([ 0x1935a1b9b92caa5, 0xa11520f8fa93c983, 0x57efd2514085e7e9, 0xea66312a3e796d9b], [0x382f1436a75dc197, 0x8778d9d3fb3f41c4, 0xc9427be7fe960920, 0x4cb5c021430c048b], [ 0x0], [ 0x1935a1b9b92caa5, 0xa11520f8fa93c983, 0x57efd2514085e7e9, 0xea66312a3e796d9b])
+ self.div([0x220b011f037cd7a7, 0x105b352412e604e3, 0xf6ab114e18f2a050, 0xcee3b310c261818b], [0x10612dcb066e86a6, 0x95513be57c3c0ddf, 0xbe4fe34d4bc1d299, 0xdc22c2d4b334fcc4], [ 0x2], [ 0x148a588f69fca59, 0xe5b8bd591a6de924, 0x7a0b4ab3816efb1d, 0x169e2d675bf78803])
+ self.div([0xf400b87abd0fb1dd, 0x923fda6d3404f507, 0xaff6f7fe51e93bf0, 0xc519d94093c197a1], [0x2870317b7f05d1a2, 0xdeab9036218fa761, 0xb748f500effe2172, 0xe09ba881248c6f72], [ 0x6], [ 0x15f8f95c2ecc80c, 0x5a3a79286aa708bd, 0x644139f8b1f4733f, 0x8173e639b876faf5])
+ self.div([0x88ca67d88a9629b3, 0x17b0d2d744fdcc2, 0xaf8bb7e25c545e21, 0x60f93e077f67255c], [0xd4a0d3874e5680c4, 0x4a001151d2ed035f, 0x84404c78adfafca5, 0xfa5b7801fb0c47d2], [ 0x0], [0x88ca67d88a9629b3, 0x17b0d2d744fdcc2, 0xaf8bb7e25c545e21, 0x60f93e077f67255c])
+ self.div([0xd4514a219426c1ee, 0xd3248d39d31d6e58, 0xabac1f590ff2e956, 0xcb4a23a71829e7d4], [0xc6f6be934d56913a, 0xe2110547582d3736, 0x9382a72f5c6adc4d, 0x927643d18d103bef], [ 0x1], [ 0xd5a8b8e46d030b3, 0xf11387f27af03722, 0x18297829b3880d09, 0x38d3dfd58b19abe5])
+ self.div([0xaecfd92050eacc21, 0x22fc0f9a1f531be6, 0xe45b8c5a0bf5cae8, 0x8ca4a7d6faec889a], [0x316f7cc059137b76, 0x21bce721cd37ab1, 0xda75130b5c1dd403, 0xe87567d736aa17f9], [ 0x3], [0x1a8162df45b059bf, 0x1ca8a443c8d8abd1, 0x54fc5337f79c4edc, 0xd344705156ee40af])
+ self.div([0xdd50cb004822a248, 0xdaf83dbb34355816, 0x41b2ed3f9c4d9a9d, 0xf08cc2e379e64824], [0xd04b37f7e51f2691, 0x64f693133361f84, 0x824e1f47a83616de, 0x1632abc6039249f7], [ 0x1], [ 0xd05930863037bb7, 0xd4a8d48a00ff3891, 0xbf64cdf7f41783bf, 0xda5a171d7653fe2d])
+ self.div([0x25cf9aaab3d5238b, 0xcbbd5ed3926076c2, 0xe227d85d116e6db8, 0x3a83d2e1f258f3a1], [0xb6489c079cc3faa9, 0x1bbcef9bc96ec0d9, 0x9a4ba5900e0c39b2, 0x12ce50a4561e6df4], [ 0x0], [0x25cf9aaab3d5238b, 0xcbbd5ed3926076c2, 0xe227d85d116e6db8, 0x3a83d2e1f258f3a1])
+ self.div([0x848aaf2cd24952ab, 0xaac95ef0766c4276, 0x608c79683c01fd9a, 0x83af06e4bf7d224d], [0x4ee8c70d55a60531, 0x6774d79078b258f0, 0x4f9509cb8406cfe6, 0xfbe32ee73f979a1a], [ 0x1], [0x35a1e81f7ca34d7a, 0x4354875ffdb9e986, 0x10f76f9cb7fb2db3, 0x87cbd7fd7fe58833])
+ self.div([0xa7870a1d9bb7a8c5, 0x9ad26e7b4880d036, 0xdcad83ff89158dd3, 0x16c101712da394f9], [0xab057ac6d2da3474, 0xb451601689a32fd6, 0xa1576c57f898d98b, 0xbf9f3397a809b5ed], [ 0x0], [0xa7870a1d9bb7a8c5, 0x9ad26e7b4880d036, 0xdcad83ff89158dd3, 0x16c101712da394f9])
+ self.div([0x8d5dbce05719b3c7, 0x6d2e930290172779, 0xf64712ec5f7ee7dc, 0x47e19d489a193741], [0x38b14e2b1de0b857, 0xf28603d800f97f7c, 0xbd06511efed16b4e, 0x2a14f5f912c697ea], [ 0x2], [0x1bfb208a1b584317, 0x88228b528e242880, 0x7c3a70ae61dc113f, 0xf3b7b156748c076d])
+ self.div([0xdb5163671dd69eea, 0xf5f03d0fce28aa90, 0x3be06a8aa86ce4ca, 0x104e12e9a7b88768], [0x2d3d09e2b6159e83, 0x2dad2aefa791a7fb, 0x1f553278944ff95d, 0x61f870d162ccd2f2], [ 0x4], [0x265d3bdc458024de, 0x3f3b91512fe20aa3, 0xbe8ba0a8572cff54, 0x886c4fa41c853ba0])
+ self.div([0x49c5c8bb8d43b4c8, 0x1f47730029551751, 0xa22397e6479ff80f, 0x1f731af97e52019a], [0x2869504b72a8d5be, 0xaafc9487f9e53700, 0x4b5503f541f38212, 0xe153982010eede29], [ 0x1], [0x215c78701a9adf09, 0x744ade782f6fe051, 0x56ce93f105ac75fc, 0x3e1f82d96d632371])
+ self.div([0x979cacb93d4bf613, 0xed273a6cc1f791cb, 0xea6fa3ebe90b1d48, 0xe35c40b6aaec306b], [0x8d4655a5025ab296, 0xdc74e774f97c36b1, 0xce617e48a5fcd229, 0xf53a5f5e870f671c], [ 0x1], [ 0xa5657143af1437d, 0x10b252f7c87b5b1a, 0x1c0e25a3430e4b1e, 0xee21e15823dcc94f])
+ self.div([0x6c76d5534751f410, 0x2097459fa3e0e705, 0xd577589351656a5f, 0x70e115566eba5e96], [0xce516909b2192f9a, 0x21b8011aa7924f80, 0xbd3fc7baabb41826, 0x64c8626f393463b5], [ 0x0], [0x6c76d5534751f410, 0x2097459fa3e0e705, 0xd577589351656a5f, 0x70e115566eba5e96])
+ self.div([0x4c29c93deb8b2c24, 0xdfff1accc98278f6, 0x6414d8b21cb84cf1, 0x37ec9354b5dbb83b], [0xb8fbbe1e49d4f88c, 0x5ac641eef04359e3, 0x57e95cf851321018, 0xc0da64659e307895], [ 0x0], [0x4c29c93deb8b2c24, 0xdfff1accc98278f6, 0x6414d8b21cb84cf1, 0x37ec9354b5dbb83b])
+ self.div([0x4d484aad3a06623b, 0x65de9b69d53c1e87, 0xb493a89a622af971, 0x66a7493d738b1a8e], [0x30037e375a78d373, 0xed4f22cf0a1c8c, 0x93b87d7b13b5a1fe, 0x2dd4fe56aa842fb7], [ 0x1], [0x1d44cc75df8d8ec8, 0x64f14c47063201fb, 0x20db2b1f4e755773, 0x38d24ae6c906ead7])
+ self.div([0x68e169eddb026690, 0xe7b16c0ebaca594d, 0x2bdf3a7c9cbb28b5, 0xb6c8eeb91fa9f65c], [0xdf444e05741769da, 0xdaf56c59569a97be, 0x32d8fe96da6489c7, 0x9abec073e51ac2e7], [ 0x0], [0x68e169eddb026690, 0xe7b16c0ebaca594d, 0x2bdf3a7c9cbb28b5, 0xb6c8eeb91fa9f65c])
+ self.div([0xb98de28107ae88f2, 0x1cb3503f2a50f23d, 0x9fbacd5b6156a9c3, 0x67e5d07097cb5832], [0x5a9b6c8069cdc84f, 0x47fcce8f959ffdef, 0x3da5385d53fe65b, 0x75cb62622fc9ff83], [ 0x2], [ 0x45709803412f853, 0x8cb9b31fff10f65f, 0x9806264fb6d6dd0c, 0x7c4f0bac3837592c])
+ self.div([0xa0e5a71a1224347b, 0x2a0178a4a31395fa, 0x2ca61af4f232eb40, 0xd85a0ae3bbe311df], [0xe6b8dbed6f1ffcf7, 0x55cb960a57e9ff1d, 0x949bd9c2d8bc459, 0xda660ba2009176ec], [ 0x0], [0xa0e5a71a1224347b, 0x2a0178a4a31395fa, 0x2ca61af4f232eb40, 0xd85a0ae3bbe311df])
+ self.div([ 0x46b07d0166f00a8, 0x1588e81bb394e728, 0x512e25b36dd0c1b8, 0xb1150926b1d1e0a7], [0xaaf300c6637c1c7b, 0xa04812d853889dc5, 0xdcf5d9be62a9cb11, 0xc946af0dac1d0c69], [ 0x0], [ 0x46b07d0166f00a8, 0x1588e81bb394e728, 0x512e25b36dd0c1b8, 0xb1150926b1d1e0a7])
+ self.div([ 0xc2b37350056c73, 0x3bc4b0a00c55213f, 0x96ec77d40d5ab407, 0x3c7ba656ed67ee6], [0xc614416feea1f699, 0x871b833e3ef8269a, 0xaab43b4e5092cec5, 0x6623d133461ea438], [ 0x0], [ 0xc2b37350056c73, 0x3bc4b0a00c55213f, 0x96ec77d40d5ab407, 0x3c7ba656ed67ee6])
+ self.div([0x69ccfde17d7fff6e, 0x8cee3263c3182d84, 0xe513eb42e937be3d, 0xcbd91fe1b9a8afbc], [0xe1c587891003ad31, 0x7523011dff063f82, 0x2bb680f9f29def5f, 0x303d9226ba7c8f0b], [ 0x0], [0x69ccfde17d7fff6e, 0x8cee3263c3182d84, 0xe513eb42e937be3d, 0xcbd91fe1b9a8afbc])
+ self.div([ 0x67bef87213b2086, 0x6999ae78952fedf, 0x484caf6ad08e8d62, 0xa1282c46486aa0ae], [0xd3f89edf3774aef7, 0xaaab60ffdeb1065e, 0x5cd18ec9d0a630f0, 0xba56ed58278fe30c], [ 0x0], [ 0x67bef87213b2086, 0x6999ae78952fedf, 0x484caf6ad08e8d62, 0xa1282c46486aa0ae])
+ self.div([0x5cda27a6a0189c98, 0xfd466c67fb25297e, 0x11048590bab57817, 0x6e46170ea535bcea], [0xf24c32109d47350a, 0x308310c2a5eb69ff, 0x20bd6cdbf1d83cbd, 0xf82b587e2318b205], [ 0x0], [0x5cda27a6a0189c98, 0xfd466c67fb25297e, 0x11048590bab57817, 0x6e46170ea535bcea])
+ self.div([0x27122998dfcc54e0, 0x4eddf025af09e33e, 0x57c1b2ce22200447, 0xeaf271e7456607b8], [0xdba22362059204f6, 0x266e256da9d98004, 0x180116a557f2b8fb, 0xba021d80fd13e9d4], [ 0x0], [0x27122998dfcc54e0, 0x4eddf025af09e33e, 0x57c1b2ce22200447, 0xeaf271e7456607b8])
+ self.div([0x5d00618e155b1909, 0xac000db9ab5ce7ff, 0x60cdfee9e9822e90, 0x10ca79bed57e0012], [0xe8117c7c00db10a4, 0x95fb81b817d2c02f, 0x21f0ad354e696796, 0x819fbfa8820bff8d], [ 0x0], [0x5d00618e155b1909, 0xac000db9ab5ce7ff, 0x60cdfee9e9822e90, 0x10ca79bed57e0012])
+ self.div([0xf43460340679d897, 0xe4476a2bc495b74a, 0x37645760e1f3c21d, 0x84f797c2068337c7], [0xc9796a1cadef1424, 0x95cb1dfceff033, 0x8e26e34d91582c36, 0x3295da050272c81e], [ 0x1], [0x2abaf617588ac473, 0xe3b19f0dc7a5c716, 0xa93d7413509b95e7, 0x5261bdbd04106fa9])
+ self.div([0xd2fcacae702fd07b, 0x5a071727b2157b3, 0x11c0f676082adfdd, 0xb5ad6863876574cb], [0x1da5fd0ed1879ec0, 0xa2471ebe414fc6f, 0xbcfd00581c305169, 0x4d97220394830b5f], [ 0x7], [ 0x372c146b57a793a, 0xbea153ff3e8e70a4, 0xe6d5f40d42d8a5fc, 0x968b7a4a77d02532])
+ self.div([0xa8a83a9e3ada1142, 0xbac84ac54772e699, 0x5543de1fbf8681c5, 0xcf58dbb13f0df90], [0x54f53fccd36043ce, 0xe625c7fe74702676, 0x4b766fcca8f0ab26, 0xaf1c27d46e8e16f9], [ 0x1], [0x53b2fad16779cd73, 0xd4a282c6d302c023, 0x9cd6e531695d69e, 0x5dd965e6a562c897])
+ self.div([0x507eaf2ef033ffa6, 0x8f26d39e459c04c8, 0x1007d849497f3f0, 0x5e8c98dad46c7dce], [0x3872d9b5ac462f4c, 0x9666773bf113c1de, 0x293f3dd3e3bf5a25, 0xb33a3806b2d1ce63], [ 0x1], [0x180bd57943edd059, 0xf8c05c62548842e9, 0xd7c13fb0b0d899ca, 0xab5260d4219aaf6b])
+ self.div([0xcb0e79034947b276, 0xf40835ae7f993209, 0xe77ac84c8cd9dae2, 0x66162db86d906b0d], [0xdd7bbce0e7e691d0, 0xc3a9bd10927a4681, 0x6f14241bb22b9f3a, 0x216ec5c8d9edd72], [ 0x0], [0xcb0e79034947b276, 0xf40835ae7f993209, 0xe77ac84c8cd9dae2, 0x66162db86d906b0d])
+ self.div([0x2871dfa358ba0077, 0xdb4de8350ea4f28a, 0x28a27e86abdc87f5, 0x61a58461d478a185], [ 0x62551f4606dcd5e, 0xb366e08f51ee24cb, 0x409eab335ab3d46e, 0xfed31ab7670f609a], [ 0x6], [ 0x391f3e91627303f, 0xa6e4a4d9231015c6, 0xa4ea7b528ba58d5b, 0x68b2e4156a1c5de9])
+ self.div([0xd82d5c65a0d0b55e, 0xfd3ce0b4b20e5ec5, 0x563e49cba82a592a, 0xae5300edb206887c], [0x373205a684621005, 0x5ab0f08cc1adc68a, 0xc2a2f12b467d74f5, 0x53835ff885f3e0cc], [ 0x3], [0x32974b7213aa854e, 0xed2a0f0e6d050b25, 0xe557649d4b1fa4a, 0xb3c8e104202ae618])
+ self.div([0xc0b2bbb626955dec, 0xc736e5a5b5dafeb2, 0xf96162d6f705ea53, 0xaae6d4a1088d6d3e], [0x785ff24dd715d9d1, 0x52a8d173dcde0587, 0x665ce62d90be5b44, 0xfb75a139b64f8571], [ 0x1], [0x4852c9684f7f841b, 0x748e1431d8fcf92b, 0x93047ca966478f0e, 0xaf713367523de7cd])
+ self.div([0x5f436f5749486b0e, 0x23e96957bcb6ce9d, 0x230fff0e4304986, 0x48fdbb5f1182f087], [0xb6326d3cfb76bb20, 0x173a8535b4e2e8d8, 0x3acc31e8c45813cf, 0xd60b3e5e68c00965], [ 0x0], [0x5f436f5749486b0e, 0x23e96957bcb6ce9d, 0x230fff0e4304986, 0x48fdbb5f1182f087])
+ self.div([0x4ffe709b46d5f96d, 0x3dfc7f933ea62501, 0xa4483f400e0d5e91, 0xf5b5c172d1d26da9], [0x7b9bebf880331819, 0x6c60c07a8ebc24d2, 0x4a2019a14b48b371, 0xf97d5d2ccd139c60], [ 0x0], [0x4ffe709b46d5f96d, 0x3dfc7f933ea62501, 0xa4483f400e0d5e91, 0xf5b5c172d1d26da9])
+ self.div([0x31553149796a3ea7, 0x9987d10514d999c1, 0xc1514356f22694da, 0xc52cef7ee98bc40], [0x4c85c5e11fc05f9c, 0x62181c9bd6ab12c8, 0x3ef6c90c393c8567, 0xe4810c4637f863b8], [ 0x0], [0x31553149796a3ea7, 0x9987d10514d999c1, 0xc1514356f22694da, 0xc52cef7ee98bc40])
+ self.div([0xab285d7ddce90cd9, 0xc8324b85130bbcd0, 0xa1c7b485d1a8e434, 0x9b4def7f2998ce2a], [0xf2cf479297eb11d8, 0x2099a4041beb769f, 0x886b7e1ee8a807b2, 0x3d89e89e7d19ea4a], [ 0x0], [0xab285d7ddce90cd9, 0xc8324b85130bbcd0, 0xa1c7b485d1a8e434, 0x9b4def7f2998ce2a])
+ self.div([0x8695d440b87afdf7, 0x6411e3a50302a4eb, 0x81bfbd23f5a3790d, 0xd84344bfa85bc362], [0xf150853a58680dbf, 0xcc3fc3b725eda978, 0x35a95c8dc49251d, 0xb08b70cf49f8324], [ 0x0], [0x8695d440b87afdf7, 0x6411e3a50302a4eb, 0x81bfbd23f5a3790d, 0xd84344bfa85bc362])
+ self.div([0x266190a167cd133a, 0xc28d5aa39ac24317, 0xd987bbd8e760aed1, 0xf6c88adb121083d9], [0x18e660b859631c2c, 0xd46dbbe63515ede4, 0x6c504e963920d208, 0xe11e008f5a9cf29d], [ 0x1], [ 0xd7b2fe90e69f70d, 0xee1f9ebd65ac5533, 0x6d376d42ae3fdcc9, 0x15aa8a4bb773913c])
+ self.div([0x8325762519880b4a, 0xbb24dc50a26ae75e, 0x1e68fa7fc7a4907, 0x394e5de3e011fedb], [0xf8ba867786f527b3, 0x978521cafa8f13f7, 0x5f8bc1c0fe52e9b9, 0x48dd5c1411149d36], [ 0x0], [0x8325762519880b4a, 0xbb24dc50a26ae75e, 0x1e68fa7fc7a4907, 0x394e5de3e011fedb])
+ self.div([0x1923b6738f7f95af, 0xa2f281cdf39c4bf1, 0x499436a97f52fea9, 0x9dc161bc62c4052c], [0xaa2720774f53203b, 0xb33c3488c1053310, 0xb1dccb146d8a1be0, 0x34182281aa44d71a], [ 0x0], [0x1923b6738f7f95af, 0xa2f281cdf39c4bf1, 0x499436a97f52fea9, 0x9dc161bc62c4052c])
+ self.div([0xf0c345c0e38bccb7, 0x60e6cd4a9b13f823, 0x915234af57fd2366, 0xf396e29aa55e69e3], [0x622e3e2b2e43b7a6, 0x78579f2e971c8aec, 0x1fd9010b2a9faa7a, 0x21a4b94a372da90], [ 0x2], [0x2c66c96a87045d6a, 0x70378eed6cdae24b, 0x51a0329902bdce72, 0xef624b715e78b4c3])
+ self.div([0x2321e9a2160b9007, 0x5da4fd8c5b41ecce, 0x197044c995f53a24, 0x4a37e531ee7c56d8], [0xc105165354fa43cd, 0x4a76a6416069d947, 0xb1c55d9c0ed76d49, 0x465d431beb8b825d], [ 0x0], [0x2321e9a2160b9007, 0x5da4fd8c5b41ecce, 0x197044c995f53a24, 0x4a37e531ee7c56d8])
+ self.div([ 0xbe1591a33cf6a25, 0x23abd863e864be15, 0x96d78f58e16d26f0, 0x1d8ddf9593da5c6e], [0xf092c6ed6aad75d3, 0xa8b76afb610ccfa6, 0xfe616661d2edfb41, 0xca2ee678cc5e8778], [ 0x0], [ 0xbe1591a33cf6a25, 0x23abd863e864be15, 0x96d78f58e16d26f0, 0x1d8ddf9593da5c6e])
+ self.div([0x2f154e212698fa4d, 0x2b4ca06ebf27ce40, 0xf03a09d605c8fe12, 0x6d1eb2a409e8d766], [0xb2e28c395b3aeea0, 0x6a3e67daea22bcb2, 0xf2ac88dca2446ebb, 0x33035b70a67c109], [ 0x0], [0x2f154e212698fa4d, 0x2b4ca06ebf27ce40, 0xf03a09d605c8fe12, 0x6d1eb2a409e8d766])
+ self.div([ 0x301aae031034afe, 0x58919cb2730f2a88, 0x89e4a28fe1e335b2, 0x5ff97a501e182919], [0x71521427c821c1a5, 0x9ef3d9adef0589c, 0xf29410efe6f6f506, 0x439e2b2122decb40], [ 0x0], [ 0x301aae031034afe, 0x58919cb2730f2a88, 0x89e4a28fe1e335b2, 0x5ff97a501e182919])
+ self.div([0xbce6cb0fe697376f, 0x3b879c338b43b0ce, 0x58c824e5f0b68e10, 0x5ebd6f86f0a2b3d5], [0xc478db5d26661995, 0x98efe93ceecb6ec8, 0xd82d34c713973a7, 0x961188966046a4ce], [ 0x0], [0xbce6cb0fe697376f, 0x3b879c338b43b0ce, 0x58c824e5f0b68e10, 0x5ebd6f86f0a2b3d5])
+ self.div([0x916fcfada9fe7d19, 0xdf25f9b259faa63a, 0x299d3203db36f0ec, 0xe16abac79ed12d4c], [0xef4b44aa667f989c, 0x51d860587c3df64e, 0x448cb352f0fc5978, 0xba6a01f1c84a66df], [ 0x0], [0x916fcfada9fe7d19, 0xdf25f9b259faa63a, 0x299d3203db36f0ec, 0xe16abac79ed12d4c])
+ self.div([0x4f40d7747e381cb7, 0xa5b732af7b4b246e, 0x8bbded2bf142c9b5, 0xda22777cd66fd2cd], [0x932f92c2d8799378, 0xef355d1af355267, 0x55a9cf362a113acc, 0xdfd33e0e445d0887], [ 0x0], [0x4f40d7747e381cb7, 0xa5b732af7b4b246e, 0x8bbded2bf142c9b5, 0xda22777cd66fd2cd])
+ self.div([0x55832c428e6c1b33, 0xf83dd869654d4431, 0x547e306b931f2589, 0x59e2e1635dce450], [0x91a8e923850cb8ba, 0x19684b33fed17cd4, 0x40dd782b2821e44b, 0x2be5d8699b16831a], [ 0x0], [0x55832c428e6c1b33, 0xf83dd869654d4431, 0x547e306b931f2589, 0x59e2e1635dce450])
+ self.div([0xa52d88430fd6db9c, 0x44838ae3f6835097, 0xbbde3c4f01acb1e0, 0x6d7edf8f7fb0a06d], [0xc6d011a6e6c24103, 0x2bb4130a484ba38a, 0x26278beed881479, 0x19f12a0e4cb3fc58], [ 0x0], [0xa52d88430fd6db9c, 0x44838ae3f6835097, 0xbbde3c4f01acb1e0, 0x6d7edf8f7fb0a06d])
+ self.div([0xfe1e3561e835add4, 0xcc8bd8ee5ec660e5, 0xedcb532238fb68af, 0x8a017d8d84b49ac3], [0xb22767a25c94e4a8, 0x9f585f2a845b79b5, 0x44dad055b212e6c4, 0x2954cf295a8ee0cf], [ 0x1], [0x4bf6cdbf8ba0c92c, 0x2d3379c3da6ae730, 0xa8f082cc86e881eb, 0x60acae642a25b9f4])
+ self.div([0x4d84518722fc3bae, 0x9fa03ce31274627c, 0x534c70274613f918, 0xdf6b2ad56cfc15c9], [0xb4d1efad5b49c3da, 0x70887611147eedd3, 0x85a9606d5415e8c3, 0x8958d7c0e1f3373], [ 0x0], [0x4d84518722fc3bae, 0x9fa03ce31274627c, 0x534c70274613f918, 0xdf6b2ad56cfc15c9])
+ self.div([0x4875a4352508d3a3, 0xa0f43cc352077469, 0x95b6fe4272e42e3b, 0x5251bb7cba5c629b], [0x8ddf4eadec0e22f6, 0xa317e03268972798, 0x8ac64a0fce7b89f6, 0xa4316179092f36bf], [ 0x0], [0x4875a4352508d3a3, 0xa0f43cc352077469, 0x95b6fe4272e42e3b, 0x5251bb7cba5c629b])
+ self.div([0x1cdbcb5c2526398c, 0xf9b645b6720a16b4, 0xfafd990b8a37f9bd, 0x1a96c37b20b284b1], [0xf197d53d546f1174, 0x898c5bf0422bb97, 0x577fe411d21243d, 0xc8de657715636627], [ 0x0], [0x1cdbcb5c2526398c, 0xf9b645b6720a16b4, 0xfafd990b8a37f9bd, 0x1a96c37b20b284b1])
+ self.div([0xed29d5d9cec71c32, 0x68b860fb83968ca7, 0x71af39af3310b2cb, 0xeecf55aec07abe70], [ 0x5daffaa48062414, 0x8b651bfa0159ec1c, 0x57b5e2062afeae8b, 0x24f6724eab41c6f2], [ 0x28], [ 0x2f1e33e8dd178fc, 0xa0ec01eb4d89a839, 0xbd43e8b87b456d0e, 0x284d7963fe33a8a0])
+ self.div([0xfb0b8abd046326e2, 0x1960ac5a6af242a0, 0x17ba705c7be006aa, 0xec2d43d6bb8c4335], [0x4a4a4fd98c83643a, 0xd49edb5879e431e9, 0x4e29b16bd964401e, 0x93f16b113aa1cf3e], [ 0x3], [0x1c2c9b305ed8fa31, 0x9b841a50fd45ace4, 0x2d3d5c18efb3464f, 0x305902a30ba6d57b])
+ self.div([0xae24590589abb1e6, 0x785bcaf288b67e66, 0x4be5291c53250e31, 0x20baa46a3b9ec99], [0x40552ac99678c063, 0xcd4296fe5d95580, 0xef1fe4de4a292f61, 0x375e5e34c32ff3d6], [ 0x2], [0x2d7a03725cba3120, 0x5eb37812bd03d364, 0x6da55f5fbed2af6e, 0x934eeddd1d5a04ed])
+ self.div([0xf88492c6fc02809b, 0x4257b9d0307717bd, 0x7a1e4bebef82918a, 0xce1210b31d4e7f8f], [0x249eb5fde3d7fa99, 0x50ead5e45fcc92b2, 0xa5b1f2abaea07bdc, 0x11ff1c947062c1bb], [ 0x6], [0x1ccc4ed3a4f2a103, 0x5cd6b675f1aba78d, 0x97f29be5d7bfaa62, 0x621765387afdf52d])
+ self.div([0x86430df2018be2a5, 0xd57f63f9dacc929a, 0xa74e87bf5574b94b, 0x6f2fcf8c4429d30d], [0x692ad307c8bed384, 0xda779a714f9ae735, 0x978691ada86ddb74, 0xb357c1db79934bd5], [ 0x1], [0x1d183aea38cd0f20, 0xfb07c9888b31ab65, 0xfc7f611ad06ddd6, 0xbbd80db0ca968738])
+ self.div([0xc0a88f0291e9ab95, 0xa5949bc8c091868, 0x975380e23b5af32a, 0xd5f62b5fe450f3bb], [0xbfd55bfe05930c9d, 0x1b78ba1fb9dcb3da, 0xac347503f8e24c28, 0xaf9282d5cdb9d2b0], [ 0x1], [ 0xd333048c569ef7, 0xeee08f9cd22c648d, 0xeb1f0bde4278a702, 0x2663a88a1697210b])
+ self.div([0x573a72d0c6839cb3, 0xc11193b11f79f68e, 0xbe657166440494bd, 0x7e68be95c42bf29c], [0xe21ec5393f4b774f, 0xe36e6e62710a3610, 0xab35ea5bbc6f0a6a, 0xa4e0662ba0d4c8cf], [ 0x0], [0x573a72d0c6839cb3, 0xc11193b11f79f68e, 0xbe657166440494bd, 0x7e68be95c42bf29c])
+ self.div([ 0x1c358130fcff4c2, 0x54fdf9276d11c2bd, 0x354298b14ceefd97, 0x925cc435bca7f852], [0xdaeae1e05d9562d7, 0x819e4173731d3d97, 0xb08b62639152ed98, 0x3b5631c00717aa3e], [ 0x0], [ 0x1c358130fcff4c2, 0x54fdf9276d11c2bd, 0x354298b14ceefd97, 0x925cc435bca7f852])
+ self.div([0x8feb963d8b9107a9, 0x2558c3a6c7dd9284, 0xd8be73fc204803a6, 0x58ad43463ee13679], [0x9035739e7af3028a, 0xa3f2f0f5a9f357b7, 0xb7fa2bd52397883d, 0xdc60c3ab17e94e04], [ 0x0], [0x8feb963d8b9107a9, 0x2558c3a6c7dd9284, 0xd8be73fc204803a6, 0x58ad43463ee13679])
+ self.div([ 0x25d5a6cb9edd8ea, 0x67ee1b45a45b3231, 0x2897c5bb274a0b33, 0xca7850bd328b66f7], [0x98259dea1a92da45, 0xc11e44a9deb91fa4, 0x45c1797f3af9daa1, 0xb6c3e95615d4ded1], [ 0x0], [ 0x25d5a6cb9edd8ea, 0x67ee1b45a45b3231, 0x2897c5bb274a0b33, 0xca7850bd328b66f7])
+ self.div([0x7aecb6e0e3744d6d, 0xa1342f2207857933, 0xa2f29ec1c08a611d, 0x516fbd4ab2383f67], [0xb270f9f975b0b1e9, 0xec624f94a7683f07, 0x522dadb00c4c7268, 0x172fe42635ccebe0], [ 0x0], [0x7aecb6e0e3744d6d, 0xa1342f2207857933, 0xa2f29ec1c08a611d, 0x516fbd4ab2383f67])
+ self.div([0xee27179c56b744d9, 0x7d0052380a6b91a5, 0xeb63de59e4d96e6d, 0x1eb70e38a2bde8c7], [0x3af92247b6474ef5, 0xa5a424a100a589e9, 0x5700cd1fa06a411a, 0x3d73dfc4a285fbf1], [ 0x4], [ 0x2428e7d7d9a0902, 0xe66fbfb407d56a00, 0x8f60a9db63306a04, 0x28e78f2618a5f903])
+ self.div([0xb39abd1c44dd67e7, 0x5fc8e8d2898c8be0, 0x6179d6c35fc2e076, 0x37650855d56548e6], [0x2022f826e9c8a6e5, 0x394b00d021eb2e46, 0x27a2b140ecb9c403, 0x29144e725edba81c], [ 0x5], [0x12ebe459b3f2256d, 0x4151e4c1dff4a481, 0x9b4c607ec0220c66, 0x69ff8019fb1b005a])
+ self.div([0x9b05b77ca1c52916, 0xb70a6b7345556b3a, 0x28ab008e6ab388e7, 0x390e8b8dca5442eb], [0x78e6d0406bd6f1cf, 0xe55cd951604b053f, 0x94d2f7800d12ffb6, 0x511b3ef793bc6f67], [ 0x1], [0x221ee73c35ee3746, 0xd1ad9221e50a65fa, 0x93d8090e5da08930, 0xe7f34c963697d384])
+ self.div([ 0x8b9f58d15060ad9, 0x59f1067c549f752c, 0x62c5894e9f71b38b, 0x7c42b130c57e7e5], [ 0x6e437246742329b, 0x40108b7df0e6d0d0, 0xfc5508c4e94cf049, 0xa1bd25a779becea7], [ 0x1], [ 0x1d5be68adc3d83e, 0x19e07afe63b8a45b, 0x66708089b624c341, 0x6607056b9299193e])
+ self.div([0xb3c9a18fdf5fd725, 0x7b566238f0e9a59c, 0x93bb1ba60f9b0bde, 0xe0ff08efaae7dd59], [0x1f9c606f7ce4d010, 0x74300ed2c36c44a6, 0x9920c59292208f53, 0x2a92edb69fd5ece2], [ 0x5], [0x15bbbf626ee7c6d3, 0x3666181b1fcc4e5b, 0x96173fc934f83f3f, 0xc20645e8bba3cef])
+ self.div([0xeaabb8b989c05ed7, 0x143d152a6f7a2975, 0x18cf9fcf86bd00b4, 0x20aac3b04064b5c7], [0x7b2bb3935c68e83b, 0x51ada0d7cc7b5463, 0xb83e5d5211695d66, 0xfd9a4ca08b88f448], [ 0x1], [0x6f8005262d57769b, 0xc28f7452a2fed511, 0x6091427d7553a34d, 0x2310770fb4dbc17f])
+ self.div([0x1a86d0039811ded3, 0xada41e08729fe82a, 0xf64f97323e1c0f8, 0xa932c9ae3b0ac53a], [0x9c59832fac0febd0, 0xb9e0538c716bc663, 0x97f4538216387bd9, 0x34aa9ee6c276fc90], [ 0x0], [0x1a86d0039811ded3, 0xada41e08729fe82a, 0xf64f97323e1c0f8, 0xa932c9ae3b0ac53a])
+ self.div([0x8cd4abf891a7f729, 0x51c3ca5a3df3e3c1, 0x7691a5268c355f15, 0x8496d97414c7f775], [0x854a1f0f83107a80, 0x7007936c113b27c7, 0x2d58a2c8923cf851, 0x885b7a100fb965e1], [ 0x1], [ 0x78a8ce90e977ca8, 0xe1bc36ee2cb8bbfa, 0x4939025df9f866c3, 0xfc3b5f64050e9194])
+ self.div([0xe90e99467ad79e08, 0x4475e76ec5249a54, 0xc5202568de1a28e7, 0x5748fba5c5202cd4], [0x73cc556dd6698fbd, 0xe49e6a1aa9c2ac90, 0x973ba37378189b68, 0x6bbfeebb37ef4375], [ 0x2], [ 0x175ee6ace047e8c, 0x7b391339719f4133, 0x96a8de81ede8f216, 0x7fc91e2f5541a5ea])
+ self.div([0xdc8e5b86600526c6, 0xc4010210de6b31c5, 0x83705e1473fe1575, 0xfc9594f2d03c171], [0xf0a7ecc7ba714459, 0x20056a36e3118cee, 0x28c93636af9397b9, 0x6e771d2f21b9276b], [ 0x0], [0xdc8e5b86600526c6, 0xc4010210de6b31c5, 0x83705e1473fe1575, 0xfc9594f2d03c171])
+ self.div([0x7947d31142caab18, 0xe13add3aa11fb3c0, 0x1ed33c78856ce6cd, 0xa1cf9414e22b6d46], [0x667266d7c862ff3d, 0xa7994e028a790529, 0xadb17b91408ad148, 0xa72702db98755c27], [ 0x1], [0x12d56c397a67abdb, 0x39a18f3816a6ae96, 0x7121c0e744e21584, 0xfaa8913949b6111f])
+ self.div([0x6c82f1285cae0e95, 0x8f7d52adc7710f70, 0x8e8b0e587d3fe957, 0x3b3996d2f1961f00], [0x71b1e1fee111930e, 0xbf53c93fd5e8c902, 0x2d2cce5470be2c4d, 0xed2797c85c07ca02], [ 0x0], [0x6c82f1285cae0e95, 0x8f7d52adc7710f70, 0x8e8b0e587d3fe957, 0x3b3996d2f1961f00])
+ self.div([0x66a0c83e08248105, 0xcf0787bfb09344ba, 0xd9491cc26fa2b828, 0x8e787e9f14dc1fe3], [ 0x3cb68bcee6d8c5d, 0x9ac9f36e2c5f303e, 0xb1e28a494a7b38c5, 0xb1bf0a8c7ada2bb8], [ 0x1b], [ 0x2cbc50e296b326, 0x7bbadb2102892e1e, 0x1664870794a3bb4e, 0xcf5261ce1fd9837b])
+ self.div([0xa5e4d0a92837cfed, 0xb8fea1a15d47350e, 0xdcced70c1a87d485, 0xf9da4733c87c078c], [0xbc8c11680f176ee8, 0xbe22f5cc0f2c30e3, 0xf4dfd9cc31373607, 0xfbf0dbc37cb6011d], [ 0x0], [0xa5e4d0a92837cfed, 0xb8fea1a15d47350e, 0xdcced70c1a87d485, 0xf9da4733c87c078c])
+ self.div([0x61595b67f16f276b, 0x6fce33f91b3d9151, 0x45d333b2a8538f3, 0xaffbf0c5bb750d63], [0x1209240601ffc9ff, 0x9b5cda371fa852c5, 0xdd746cb06bb6a938, 0xe446f4b4118a5bc2], [ 0x5], [ 0x72ba749e770356d, 0x66fdf0e57cf3f373, 0xb11713c90ff3ead7, 0x3a99294163c14299])
+ self.div([0x651ced760cb8394d, 0x90c7cabb6f18e283, 0x173b439a69f13b1a, 0xc9f5828d208796ca], [0x7b359b43efdb212b, 0x168ab0ec174e8f95, 0xa0f4c8bcbbab01b2, 0x4819922d98e8aad5], [ 0x0], [0x651ced760cb8394d, 0x90c7cabb6f18e283, 0x173b439a69f13b1a, 0xc9f5828d208796ca])
+ self.div([0x280b705308d07dc6, 0x5f2040f91809b652, 0x82defa726f1e4008, 0xb2e213998675dc30], [0xf80a9b41601857be, 0xe046156683b96b78, 0x6fb77d6a36add1df, 0x6090368d973c1679], [ 0x0], [0x280b705308d07dc6, 0x5f2040f91809b652, 0x82defa726f1e4008, 0xb2e213998675dc30])
+ self.div([0x113f872b4ccb3fdb, 0x992a7a1f4e38667c, 0x28b76640f8fb70a2, 0x464d6b4d6d671545], [0x171e4d2289afd205, 0x5cc4cfb235cc775d, 0x6e048506bc65aa2, 0x416ed45f9321f42a], [ 0x0], [0x113f872b4ccb3fdb, 0x992a7a1f4e38667c, 0x28b76640f8fb70a2, 0x464d6b4d6d671545])
+ self.div([0x997a0a91626cf29f, 0x2eb05e76aca8a0a0, 0xc15ab8586a9dc55d, 0x8b1097e09145e821], [0xae4f8ceb3f36294d, 0xa1440af512555a64, 0x9b9cb8d416150b4e, 0x1c6eb32d090f11e7], [ 0x0], [0x997a0a91626cf29f, 0x2eb05e76aca8a0a0, 0xc15ab8586a9dc55d, 0x8b1097e09145e821])
+ self.div([ 0x7f34f06b91101b4, 0x617dd78874dd0f7c, 0xb76c87ee41c6d59e, 0xc3f03bd735692269], [0xf776680cda4f9ec6, 0x213d394f096b6390, 0x2d9ab92aab219698, 0x5588408e98f84f68], [ 0x0], [ 0x7f34f06b91101b4, 0x617dd78874dd0f7c, 0xb76c87ee41c6d59e, 0xc3f03bd735692269])
+ self.div([0x3c5fa89242144e76, 0xd36ca1eb3eb8256e, 0xad906637ee32db17, 0x223e087b7edd8a78], [0xccfa26730a6197e3, 0xffef46b59ba3f074, 0x2ca6364325e8be69, 0x1e774fedae89fed8], [ 0x0], [0x3c5fa89242144e76, 0xd36ca1eb3eb8256e, 0xad906637ee32db17, 0x223e087b7edd8a78])
+ self.div([0x354328d4f206444a, 0x4156c0df3abb0452, 0xbd1343a3c64c980, 0x51f3b6e003ecb1be], [ 0xabbe2fc9caff068, 0x896a7c0bdb90a1ea, 0xa7e07e893854f0f3, 0xb6f3e615c99b7ce3], [ 0x4], [ 0xa539ce27f4682a8, 0x1bacd0afcc787ca7, 0x6c4f3a155b1105b1, 0x76241e88dd7ebe32])
+ self.div([0x7805192e22d4c9b2, 0xe583cbb09475989e, 0x5c900a40206b8a53, 0x65bede028ca5886c], [0x237c162b170444fb, 0x18b07ff68b9c37f4, 0x2a8c6283aef05b0f, 0x56621651c843ad54], [ 0x3], [ 0xd90d6acddc7fac1, 0x9b724bccf1a0f0c1, 0xdceae2b5139a7925, 0x62989b0d33da8070])
+ self.div([0xf7185365ab0cbbd9, 0x166e36ab74f933e6, 0xb868a562eb90a574, 0xdaea260b7edcea20], [ 0x87a986cd0090724, 0x9c74f04834e96f49, 0x592a341b5c7ed327, 0x3fcab3ffc538c772], [ 0x1d], [ 0x1350f121a06ecb3, 0x5d2efe7d76879897, 0x9ea0be497132ba02, 0xa0f3c212276e5236])
+ self.div([0x5e2023c2681dcc17, 0xdcdec0dfb8546ace, 0x30e4edea8b2c8933, 0xc3b859389b9fba1b], [0xc2255187b49c26c1, 0xfa2307f0b819c9b7, 0xc008f5fe9210b6ea, 0xc903000cfe90f00e], [ 0x0], [0x5e2023c2681dcc17, 0xdcdec0dfb8546ace, 0x30e4edea8b2c8933, 0xc3b859389b9fba1b])
+ self.div([0x9d782bdef29feaea, 0xbcdeba45f09a552b, 0xf790ca2996b6d5e6, 0x45c493be6affe03e], [0x88eec686db3fd49b, 0xe4f25558458de9e, 0xc942b65bc8219996, 0xba4d1314700ac100], [ 0x1], [0x148965581760164f, 0xae8f94f06c41768d, 0x2e4e13cdce953c4f, 0x8b7780a9faf51f3e])
+ self.div([0x565f8079b1d570b2, 0x21750891940b926, 0x7d7b9f8f11c17c2b, 0xc71af8ecc9db7daf], [0xc91c5e9784716332, 0xf0f6326a94cd3c18, 0xa91df0b5decac877, 0x6bda259c20dff86a], [ 0x0], [0x565f8079b1d570b2, 0x21750891940b926, 0x7d7b9f8f11c17c2b, 0xc71af8ecc9db7daf])
+ }
+
+ private func div(
+ _ lhsWords: [Word],
+ _ rhsWords: [Word],
+ _ quotientWords: [Word],
+ _ remainderWords: [Word],
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let lhs = self.create(lhsWords)
+ let rhs = self.create(rhsWords)
+ let quotient = self.create(quotientWords)
+ let remainder = self.create(remainderWords)
+
+ let qr = lhs.quotientAndRemainder(dividingBy: rhs)
+ XCTAssertEqual(qr.quotient, quotient, "quotientAndRemainder.quotient", file: file, line: line)
+ XCTAssertEqual(qr.remainder, remainder, "quotientAndRemainder.remainder", file: file, line: line)
+
+ let q = lhs / rhs
+ XCTAssertEqual(q, quotient, "/", file: file, line: line)
+
+ let r = lhs % rhs
+ XCTAssertEqual(r, remainder, "%", file: file, line: line)
+ }
+
+ // MARK: - Create
+
+ private func create(_ words: [Word]) -> UInt256 {
+ switch words.count {
+ case 1: return UInt256(0, 0, 0, words[0])
+ case 2: return UInt256(0, 0, words[0], words[1])
+ case 3: return UInt256(0, words[0], words[1], words[2])
+ case 4: return UInt256(words[0], words[1], words[2], words[3])
+ default: fatalError("Unknown UInt256 input: \(words)")
+ }
+ }
+}
diff --git a/Tests/DecimalTests/Generated/README.md b/Tests/DecimalTests/Generated/README.md
new file mode 100644
index 0000000..b0d46be
--- /dev/null
+++ b/Tests/DecimalTests/Generated/README.md
@@ -0,0 +1,2 @@
+All of the files in this directory were automatically generated.
+See README in the repository root for details.
diff --git a/Tests/DecimalTests/GlobalsTests.swift b/Tests/DecimalTests/GlobalsTests.swift
new file mode 100644
index 0000000..c851a95
--- /dev/null
+++ b/Tests/DecimalTests/GlobalsTests.swift
@@ -0,0 +1,46 @@
+import XCTest
+@testable import Decimal
+
+// swiftlint:disable comma
+// swiftlint:disable collection_alignment
+
+class GlobalsTests: XCTestCase {
+
+ func test_countTrailingZeros() {
+ let zeroCount = countTrailingZeros(0)
+ XCTAssertEqual(zeroCount, 0)
+
+ // No actual reason to use primes.
+ // But no actual reason to NOT use primes.
+ let primes: [UInt64] = [
+ 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43,
+ 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109,
+ 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193,
+ 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277,
+ 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373,
+ 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461,
+ 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569,
+ 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653,
+ 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757,
+ 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859,
+ 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971,
+ 977, 983, 991, 997, 1009,
+ ]
+
+ var pow10: UInt64 = 1
+
+ for exponent10 in 0..<20 {
+ for p in primes {
+ let (n, overflow) = p.multipliedReportingOverflow(by: pow10)
+ if overflow { continue }
+
+ let zeroCount = countTrailingZeros(n)
+ XCTAssertEqual(zeroCount, exponent10, String(describing: n))
+ }
+
+ var overflow: Bool
+ (pow10, overflow) = pow10.multipliedReportingOverflow(by: 10 as UInt64)
+ if overflow { break }
+ }
+ }
+}
diff --git a/Tests/DecimalTests/HashableTests.swift b/Tests/DecimalTests/HashableTests.swift
new file mode 100644
index 0000000..739b922
--- /dev/null
+++ b/Tests/DecimalTests/HashableTests.swift
@@ -0,0 +1,251 @@
+import XCTest
+@testable import Decimal
+
+// Well… actually… hash and equatable
+class HashableTests: XCTestCase, DecimalTests {
+
+ /// Once you get in, you can't get out!
+ /// - No Mr. Bond, I expect you to die!
+ ///
+ func test_nan() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let nans = [
+ T.nan,
+ -T.nan,
+ T(nan: 0x123, signaling: false),
+ -T(nan: 0x123, signaling: false),
+ T.signalingNaN,
+ -T.signalingNaN,
+ T(nan: 0x123, signaling: true),
+ -T(nan: 0x123, signaling: true),
+ ]
+
+ var dict = [T: Int]()
+
+ // Insert
+ for (index, d) in nans.enumerated() {
+ dict[d] = index
+ }
+
+ // Retrieval
+ for d in nans {
+ let int = dict[d]
+ let intString = String(describing: int)
+ XCTAssertNil(int, "dict[\(d)] = \(intString)", file: file, line: line)
+ }
+
+ // Removal
+ let countBefore = dict.count
+
+ for d in nans {
+ dict[d] = nil
+ }
+
+ XCTAssertEqual(dict.count, countBefore, "dict.count", file: file, line: line)
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_infinity() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ var dict = [T: Int]()
+
+ // Insert
+ dict[ T.infinity] = 1
+ dict[-T.infinity] = 2
+ XCTAssertEqual(dict.count, 2, "insert: count", file: file, line: line)
+
+ // Retrieval
+ XCTAssertEqual(dict[ T.infinity], 1, "get: dict[inf]", file: file, line: line)
+ XCTAssertEqual(dict[-T.infinity], 2, "get: dict[inf]", file: file, line: line)
+
+ // Removal
+ dict[ T.infinity] = nil
+ XCTAssertNil(dict[ T.infinity], "remove +: dict[inf]", file: file, line: line)
+ XCTAssertEqual(dict[-T.infinity], 2, "remove +: dict[inf]", file: file, line: line)
+ XCTAssertEqual(dict.count, 1, "remove +: count", file: file, line: line)
+
+ dict[-T.infinity] = nil
+ XCTAssertNil(dict[ T.infinity], "remove -: dict[inf]", file: file, line: line)
+ XCTAssertNil(dict[-T.infinity], "remove -: dict[inf]", file: file, line: line)
+ XCTAssertEqual(dict.count, 0, "remove -: count", file: file, line: line)
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_zero() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let plusZeros = [
+ T.zero,
+ T._packWithoutChecks(sign: .plus, significand: 0, signedExponent: 0),
+ T._packWithoutChecks(sign: .plus, significand: 0, signedExponent: 42),
+ T._packWithoutChecks(sign: .plus, significand: 0, signedExponent: -42),
+ T._packWithoutChecks(sign: .plus, significand: 0, signedExponent: T.minSignedExponent),
+ T._packWithoutChecks(sign: .plus, significand: 0, signedExponent: T.maxSignedExponent),
+ ]
+
+ var zeros = [T]()
+
+ for d in plusZeros {
+ zeros.append( d)
+ zeros.append(-d)
+ }
+
+ // Raw hash
+ let expectedHash = self.hash(T.zero)
+
+ for d in zeros {
+ let hash = self.hash(d)
+ XCTAssertEqual(hash, expectedHash, "hash(\(d)) == hash(0)", file: file, line: line)
+ }
+
+ var dict = [T: Int]()
+ self.insertRandom(into: &dict, count: 5, seed: 123456, butNot: T.zero)
+ let expectedCount = dict.count + 1
+
+ for (index, d) in zeros.enumerated() {
+ dict[d] = index
+ XCTAssertEqual(dict[d], index, "dict[\(d)]", file: file, line: line)
+ XCTAssertEqual(dict.count, expectedCount, "dict[\(d)].count", file: file, line: line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_cohorts() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ var dict = [T: Int]()
+ let decimals: [T] = self.generateDecimals(approximateCount: 50)
+
+ for (index, d) in decimals.enumerated() {
+ let cohorts = CohortGenerator(finiteOrZero: d)
+
+ dict[d] = index
+ XCTAssertEqual(dict[d], index, "before: \(d)", file: file, line: line)
+
+ if let inc = cohorts.incrementExponent(allowInexact: false) {
+ XCTAssertEqual(dict[inc], index, "inc: \(d)", file: file, line: line)
+ dict[inc] = nil
+ XCTAssertNil(dict[inc], "inc.remove: \(d)", file: file, line: line)
+ dict[inc] = index
+ }
+
+ if let dec = cohorts.decrementExponent() {
+ XCTAssertEqual(dict[dec], index, "dec: \(d)", file: file, line: line)
+ dict[dec] = nil
+ XCTAssertNil(dict[dec], "dec.remove: \(d)", file: file, line: line)
+ dict[dec] = index
+ }
+
+ XCTAssertEqual(dict[d], index, "after: \(d)", file: file, line: line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_dict() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ var dict = [T: Int]()
+ let (all, unique) = self.generateHashableDecimals(T.self)
+
+ // Insert
+ for (index, d) in all.enumerated() {
+ dict[d] = index
+ XCTAssertEqual(dict[d], index, "insert: \(d)", file: file, line: line)
+ }
+
+ XCTAssertEqual(dict.count, unique.count, "insert: count", file: file, line: line)
+
+ // Remove
+ for d in unique {
+ dict[d] = nil
+ }
+
+ XCTAssertEqual(dict.count, 0, "remove: count", file: file, line: line)
+
+ for d in all {
+ XCTAssertNil(dict[d], "remove: \(d)", file: file, line: line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ // MARK: - Helpers
+
+ private func hash(_ d: T) -> Int {
+ var hasher = Hasher()
+ d.hash(into: &hasher)
+ return hasher.finalize()
+ }
+
+ private func insertRandom(
+ into dict: inout [T: Int],
+ count: Int,
+ seed: RandomDecimalGenerator.Seed,
+ butNot: T? = nil
+ ) {
+ let decimals: [T] = self.generateDecimals(approximateCount: count, seed: seed)
+
+ for (index, d) in decimals.enumerated() {
+ if let b = butNot, b == d {
+ continue
+ }
+
+ dict[d] = 500 + index
+ }
+ }
+
+ private func generateHashableDecimals(
+ _ t: T.Type
+ ) -> (all: [T], unique: [T]) {
+ var all: [T] = self.generateDecimals(approximateCount: 25)
+ all.append( T.zero)
+ all.append(-T.zero)
+ all.append( T.infinity)
+ all.append(-T.infinity)
+
+ // We can't use 'Set' because 'Hashable' was not yet proven to work correctly…
+ var unique = [T]()
+
+ for d in all where !unique.contains(d) {
+ unique.append(d)
+ }
+
+ return (all, unique)
+ }
+}
diff --git a/Tests/DecimalTests/Helpers/CartesianProduct.swift b/Tests/DecimalTests/Helpers/CartesianProduct.swift
new file mode 100644
index 0000000..283a3aa
--- /dev/null
+++ b/Tests/DecimalTests/Helpers/CartesianProduct.swift
@@ -0,0 +1,56 @@
+/// `[1, 2], [A, B] -> [(1,A), (1,B), (2,A), (2,B)]`
+internal struct CartesianProduct: Sequence {
+
+ internal typealias Element = (T, V)
+
+ internal struct Iterator: IteratorProtocol {
+
+ private let lhsValues: [T]
+ private let rhsValues: [V]
+
+ // Index of the next emitted element
+ private var lhsIndex = 0
+ private var rhsIndex = 0
+
+ fileprivate init(lhs: [T], rhs: [V]) {
+ self.lhsValues = lhs
+ self.rhsValues = rhs
+ }
+
+ internal mutating func next() -> Element? {
+ if self.lhsIndex == self.lhsValues.count {
+ return nil
+ }
+
+ let lhs = self.lhsValues[self.lhsIndex]
+ let rhs = self.rhsValues[self.rhsIndex]
+
+ self.rhsIndex += 1
+ if self.rhsIndex == self.rhsValues.count {
+ self.lhsIndex += 1
+ self.rhsIndex = 0
+ }
+
+ return (lhs, rhs)
+ }
+ }
+
+ private let lhsValues: [T]
+ private let rhsValues: [V]
+
+ /// `[1, 2] -> [(1,1), (1,2), (2,1), (2,2)]`
+ internal init(_ values: [T]) where T == V {
+ self.lhsValues = values
+ self.rhsValues = values
+ }
+
+ /// `[1, 2], [A, B] -> [(1,A), (1,B), (2,A), (2,B)]`
+ internal init(_ lhs: [T], _ rhs: [V]) {
+ self.lhsValues = lhs
+ self.rhsValues = rhs
+ }
+
+ internal func makeIterator() -> Iterator {
+ return Iterator(lhs: self.lhsValues, rhs: self.rhsValues)
+ }
+}
diff --git a/Tests/DecimalTests/Helpers/CohortGenerator.swift b/Tests/DecimalTests/Helpers/CohortGenerator.swift
new file mode 100644
index 0000000..c5a05d9
--- /dev/null
+++ b/Tests/DecimalTests/Helpers/CohortGenerator.swift
@@ -0,0 +1,58 @@
+@testable import Decimal
+
+/// Same value different cohort.
+struct CohortGenerator {
+
+ private let d: T
+ private let unpack: T.FiniteUnpack
+
+ private var sign: T.Sign { self.unpack.sign }
+ private var signedExponent: Int { self.unpack.exponent.signed }
+ private var biasedExponent: T.BID { self.unpack.exponent.biased }
+ private var significand: T.BID { self.unpack.significand.canonical }
+
+ init(finiteOrZero d: T) {
+ assert(d._isFinite)
+ self.d = d
+ self.unpack = d._unpackFiniteOrZero()
+ }
+
+ func incrementExponent(allowInexact: Bool) -> T? {
+ if self.signedExponent == T.maxSignedExponent {
+ return nil
+ }
+
+ let signedExponent = self.signedExponent + 1
+ let (significand, r) = self.significand.quotientAndRemainder(dividingBy: 10)
+ let isInexact = r != 0
+
+ if isInexact && !allowInexact {
+ return nil
+ }
+
+ return T._packWithoutChecks(
+ sign: self.sign,
+ significand: significand,
+ signedExponent: signedExponent
+ )
+ }
+
+ func decrementExponent() -> T? {
+ if self.biasedExponent == 0 {
+ return nil
+ }
+
+ let biasedExponent = self.biasedExponent - 1
+ let significand = self.significand * 10
+
+ if significand > T.maxDecimalDigits {
+ return nil
+ }
+
+ return T._packWithoutChecks(
+ sign: self.sign,
+ significand: significand,
+ biasedExponent: biasedExponent
+ )
+ }
+}
diff --git a/Tests/DecimalTests/Helpers/DecimalTests.swift b/Tests/DecimalTests/Helpers/DecimalTests.swift
new file mode 100644
index 0000000..385c1a4
--- /dev/null
+++ b/Tests/DecimalTests/Helpers/DecimalTests.swift
@@ -0,0 +1,264 @@
+import XCTest
+@testable import Decimal
+
+protocol DecimalTests {}
+
+extension DecimalTests {
+
+ // MARK: - Properties
+
+ static var roundingRules: [DecimalFloatingPointRoundingRule] {
+ return [
+ .up,
+ .down,
+ .towardZero,
+ .toNearestOrEven,
+ .toNearestOrAwayFromZero,
+ ]
+ }
+
+ // MARK: - Create
+
+ func createExact(
+ _ n: Int,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) -> T? {
+ var status = DecimalStatus()
+ let result = T._init(n, rounding: .towardZero, status: &status)
+ return self.returnExact(result, status: status)
+ }
+
+ func createExact(
+ _ s: String,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) -> T? {
+ var status = DecimalStatus()
+
+ guard let result = T._parse(s, rounding: .towardZero, status: &status) else {
+ XCTFail("[createExact(\(T.self))] Unable to parse '\(s)'.", file: file, line: line)
+ return nil
+ }
+
+ return self.returnExact(result, status: status)
+ }
+
+ private func returnExact(
+ _ d: T,
+ status: DecimalStatus,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) -> T? {
+ if !status.isEmpty {
+ XCTFail("[createExact(\(T.self))] Status: \(status)", file: file, line: line)
+ return nil
+ }
+
+ return d
+ }
+
+ // MARK: - Generate
+
+ /// The real count is a multiple of `T.precisionInDigits`.
+ func generateDecimals(
+ approximateCount: Int,
+ seed: RandomDecimalGenerator.Seed? = nil
+ ) -> [T] {
+ // We will generate at least 1 number per each digit in 'precision'.
+ // For example: if the precision is 7 we will generate significands with
+ // 1,2,3,4,5,6,7 digits.
+ var result = [T]()
+ var generator = RandomDecimalGenerator(seed: seed)
+ let countPerExponent = Swift.max(1, approximateCount / T.precisionInDigits)
+
+ for i in 0..(
+ count: Int,
+ seed: RandomDecimalGenerator.Seed? = nil
+ ) -> [T] {
+ var result = [T]()
+ var generator = RandomDecimalGenerator(seed: seed)
+
+ for _ in 0..(
+ _ d: T,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ self.assertQuietNaN(d, "", file, line)
+ }
+
+ func assertQuietNaN(
+ _ d: T,
+ _ message: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ if !d.isQuietNaN {
+ XCTFail(message, file: file, line: line)
+ }
+ }
+
+ /// Equal via `==`.
+ func assertEqualByEqualEqual(
+ _ lhs: T,
+ _ rhs: T,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ self.assertEqualByEqualEqual(lhs, rhs, "", file, line)
+ }
+
+ /// Equal via `==`.
+ func assertEqualByEqualEqual(
+ _ lhs: T,
+ _ rhs: T,
+ _ message: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ XCTAssertEqual(lhs, rhs, message, file: file, line: line)
+ }
+
+ /// Bid equality.
+ /// This is what you should use most of the time.
+ func assertEqual(
+ _ lhs: T,
+ _ rhs: T,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ self.assertEqual(lhs, rhs, "", file, line)
+ }
+
+ /// Bid equality.
+ /// This is what you should use most of the time.
+ func assertEqual(
+ _ lhs: T,
+ _ rhs: T,
+ _ message: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ let m = self.createMessage("\(lhs) == \(rhs) (BID)", message)
+ XCTAssertEqual(lhs.bid, rhs.bid, m, file: file, line: line)
+ }
+
+ // MARK: - Assert unpack
+
+ func assertUnpackFinite(
+ _ d: T,
+ sign: T.Sign,
+ biasedExponent: Int,
+ significand: T.BID,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ if !d.isFinite {
+ XCTFail("Not finite: \(d)", file: file, line: line)
+ return
+ }
+
+ let unpack = d._unpackFiniteOrZero()
+
+ let e = unpack.exponent.biased
+ XCTAssertEqual(
+ Int(e),
+ biasedExponent,
+ "\(d) - Biased exponent",
+ file: file,
+ line: line
+ )
+
+ let s = unpack.significand.valueCanonicalOrNot
+ XCTAssertEqual(
+ s,
+ significand,
+ "\(d) - Significand",
+ file: file,
+ line: line
+ )
+ }
+
+ // MARK: - Parse
+
+ /// You can also use `T._packWithoutChecks`.
+ func parseExact(
+ _ s: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) -> T? {
+ var status = DecimalStatus()
+
+ guard let d = T(s, rounding: .towardZero, status: &status) else {
+ XCTFail("Parse failed: " + s, file: file, line: line)
+ return nil
+ }
+
+ if status.isInexact {
+ XCTFail("Inexact parse: " + s, file: file, line: line)
+ return nil
+ }
+
+ return d
+ }
+
+ // MARK: - Helpers
+
+ private func createMessage(_ optional: String?) -> String {
+ return optional ?? ""
+ }
+
+ private func createMessage(_ s: String, _ optional: String?) -> String {
+ guard let o = optional else {
+ return s
+ }
+
+ if s.isEmpty {
+ return o
+ }
+
+ return s + ": " + o
+ }
+}
diff --git a/Tests/DecimalTests/Helpers/RandomDecimalGenerator.swift b/Tests/DecimalTests/Helpers/RandomDecimalGenerator.swift
new file mode 100644
index 0000000..6dc216d
--- /dev/null
+++ b/Tests/DecimalTests/Helpers/RandomDecimalGenerator.swift
@@ -0,0 +1,88 @@
+@testable import Decimal
+
+/// The quality of the produced decimals is not that great.
+/// This is not an issue, we just want some decimals, we do not care about their values.
+struct RandomDecimalGenerator {
+
+ typealias Seed = UInt64
+
+ private var xorshift: Xorshift
+
+ init(seed: Seed?) {
+ self.xorshift = Xorshift(seed: seed ?? 123456)
+ }
+
+ private typealias BID = T.BID
+
+ /// There is `1/10` chance that the significand will have
+ /// `significandDigitCount-1` digits.
+ mutating func next(significandDigitCount: Int) -> T {
+ let bid = self.nextBid()
+
+ let pow10: BID = Tables.getPowerOf10(exponent: significandDigitCount)
+ let significand = bid % pow10
+
+ // This will skew distribution toward smaller exponents. Whatever…
+ let exponentBits = (bid >> T.trailingSignificandWidth) & T.exponentMask
+ let maxBiasedExponent = BID(T.maxSignedExponent + T.exponentBias)
+ let biasedExponent = exponentBits % maxBiasedExponent
+
+ let sign = T.Sign(bid: bid & T.signMask)
+
+ return T._packWithoutChecks(
+ sign: sign,
+ significand: significand,
+ biasedExponent: biasedExponent
+ )
+ }
+
+ /// Generate NaN with payload.
+ mutating func nextNaN() -> T {
+ let bid = self.nextBid()
+ let sign = bid & T.signMask
+ let payload = bid % T.nanPayloadCanonicalMax
+ return T(unchecked: sign | T.nanQuietMask | payload)
+ }
+
+ private mutating func nextBid() -> T.BID {
+ return self.xorshift.next(BID.self)
+ }
+}
+
+/// No guarantee about the distribution (especially uniform distribution).
+/// https://en.wikipedia.org/wiki/Xorshift
+private struct Xorshift {
+
+ fileprivate typealias State = UInt64
+
+ private var state: State
+
+ fileprivate init(seed: State) {
+ self.state = seed
+ }
+
+ fileprivate mutating func next(_ t: T.Type) -> T {
+ if T.bitWidth <= State.bitWidth {
+ let n = self.next()
+ return T(truncatingIfNeeded: n)
+ }
+
+ if T.bitWidth <= 2 * State.bitWidth {
+ let high = self.next()
+ let low = self.next()
+
+ let h = T(truncatingIfNeeded: high) << State.bitWidth
+ let l = T(truncatingIfNeeded: low)
+ return h | l
+ }
+
+ preconditionFailure("Xorshift can produce values up to \(2 * State.bitWidth) bit.")
+ }
+
+ fileprivate mutating func next() -> State {
+ self.state ^= self.state << 13
+ self.state ^= self.state >> 7
+ self.state ^= self.state << 17
+ return self.state
+ }
+}
diff --git a/Tests/DecimalTests/Helpers/extensions.swift b/Tests/DecimalTests/Helpers/extensions.swift
new file mode 100644
index 0000000..d488e38
--- /dev/null
+++ b/Tests/DecimalTests/Helpers/extensions.swift
@@ -0,0 +1,9 @@
+import Decimal
+
+extension DecimalFloatingPoint {
+ var isQuietNaN: Bool { self.isNaN && !self.isSignalingNaN }
+}
+
+extension BinaryFloatingPoint {
+ var isQuietNaN: Bool { self.isNaN && !self.isSignalingNaN }
+}
diff --git a/Tests/DecimalTests/InitFromDecimalTests.swift b/Tests/DecimalTests/InitFromDecimalTests.swift
new file mode 100644
index 0000000..80d2494
--- /dev/null
+++ b/Tests/DecimalTests/InitFromDecimalTests.swift
@@ -0,0 +1,48 @@
+import XCTest
+@testable import Decimal
+
+class InitFromDecimalTests: XCTestCase, DecimalTests {
+
+ // Double(Float.signalingNaN) -> nan
+ // We want sNaN.
+ func test_snan() {
+ func test<
+ Src: DecimalFloatingPoint & DecimalMixin,
+ Dst: DecimalFloatingPoint & DecimalMixin
+ >(
+ _ s: Src.Type,
+ _ d: Dst.Type,
+ create: (Src, inout DecimalStatus) -> Dst,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ for payload: Src.BitPattern in [0, 0x123] {
+ var status = DecimalStatus()
+
+ let expectedSrc = Src(nan: payload, signaling: false)
+ var expected = create(expectedSrc, &status)
+ expected = Dst(unchecked: expected.bid | Dst.nanSignalingMask)
+ status.clearAll()
+
+ let src = Src(nan: payload, signaling: true)
+
+ let plus = create(+src, &status)
+ self.assertEqual(plus, +expected, "+", file, line)
+ self.assertStatusIsEmpty(status, "+", file, line)
+ status.clearAll()
+
+ let minus = create(-src, &status)
+ self.assertEqual(minus, -expected, "-", file, line)
+ self.assertStatusIsEmpty(status, "-", file, line)
+ status.clearAll()
+ }
+ }
+
+ test(Decimal32.self, Decimal64.self) { d, _ in .init(d) }
+ test(Decimal32.self, Decimal128.self) { d, _ in .init(d) }
+ test(Decimal64.self, Decimal128.self) { d, _ in .init(d) }
+ test(Decimal64.self, Decimal32.self) { d, s in .init(d, status: &s) }
+ test(Decimal128.self, Decimal32.self) { d, s in .init(d, status: &s) }
+ test(Decimal128.self, Decimal64.self) { d, s in .init(d, status: &s) }
+ }
+}
diff --git a/Tests/DecimalTests/InitFromStringTests.swift b/Tests/DecimalTests/InitFromStringTests.swift
new file mode 100755
index 0000000..565bffc
--- /dev/null
+++ b/Tests/DecimalTests/InitFromStringTests.swift
@@ -0,0 +1,506 @@
+import XCTest
+@testable import Decimal
+
+// swiftlint:disable comma
+
+private func assertDouble(_ s: String, _ expected: Double?) {
+ switch (Double(s), expected) {
+ case let (.some(d), .some(e)):
+ let dString = String(d)
+ let eString = String(e)
+
+ if dString == eString {
+ Swift.print("'\(s)' -> \(dString) 🟢")
+ } else {
+ Swift.print("'\(s)' -> \(dString), expected: \(eString) 🔴")
+ }
+ case let (.some(d), nil):
+ Swift.print("'\(s)' -> \(d), expected: nil 🔴")
+ case let (nil, .some(e)):
+ Swift.print("'\(s)' -> nil, expected: \(e) 🔴")
+ case (nil, nil):
+ Swift.print("'\(s)' -> nil 🟢")
+ }
+}
+
+class InitFromStringTests: XCTestCase, DecimalTests {
+
+ // MARK: - Empty
+
+ func test_empty_double() {
+ assertDouble("", nil)
+ }
+
+ func test_empty() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ for rounding in Self.roundingRules {
+ self.assertParseFailed(T.self, "", rounding: rounding, file, line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ // MARK: - NaN
+
+ // Check how 'Double' works, so we can reproduce it.
+ func test_nan_double() {
+ // NaN
+ assertDouble("nan", Double.nan)
+ assertDouble("-nan", Double.nan)
+
+ // Ignore case
+ assertDouble("nAN", Double.nan)
+ assertDouble("-nAN", Double.nan)
+
+ // With additional characters
+ assertDouble("nanan", nil)
+ assertDouble("-nanan", nil)
+
+ // Payload
+ assertDouble("nan(0x7b)", Double(nan: 123, signaling: false))
+ assertDouble("-nan(0x7b)", Double(nan: 123, signaling: false))
+
+ // Payload - too big
+ assertDouble("nan(0xffffffffffffffff)", Double(nan: 0x3ffffffffffff, signaling: false))
+ assertDouble("-nan(0xffffffffffffffff)", Double(nan: 0x3ffffffffffff, signaling: false))
+
+ // Payload - invalid characters
+ assertDouble("nan(zzz)", Double.nan)
+ assertDouble("-nan(zzz)", Double.nan)
+
+ // Payload - no close paren
+ assertDouble("nan(0x7b", nil)
+ assertDouble("-nan(0x7b", nil)
+
+ // Payload - invalid characters + no close paren
+ assertDouble("nan(zzz", nil)
+ assertDouble("-nan(zzz", nil)
+
+ // Payload - with additional characters
+ assertDouble("nan(0x7b)zzz", nil)
+ assertDouble("-nan(0x7b)zzz", nil)
+ }
+
+ func test_nan() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ // NaN
+ self.assertParseNaN("nan", T.nan, file, line)
+ self.assertParseNaN("-nan", -T.nan, file, line)
+
+ // Ignore case
+ self.assertParseNaN("nAN", T.nan, file, line)
+ self.assertParseNaN("-nAN", -T.nan, file, line)
+
+ // Too long
+ self.assertParseFailed(T.self, "nanan", file, line)
+ self.assertParseFailed(T.self, "-nanan", file, line)
+
+ // Payload
+ let nan123 = T(nan: 123, signaling: false)
+ self.assertParseNaN("nan(123)", nan123, file, line)
+ self.assertParseNaN("-nan(123)", -nan123, file, line)
+ self.assertParseNaN("nan(0x7b)", nan123, file, line)
+ self.assertParseNaN("-nan(0x7b)", -nan123, file, line)
+
+ // Payload - too big
+ let n999 = String(repeating: "9", count: 100)
+ let bigPayload = T(unchecked: T.nanQuietMask | T.nanPayloadMask)
+ self.assertParseNaN("nan(\(n999))", bigPayload, file, line)
+ self.assertParseNaN("-nan(\(n999))", -bigPayload, file, line)
+ self.assertParseNaN("nan(0x\(n999))", bigPayload, file, line)
+ self.assertParseNaN("-nan(0x\(n999))", -bigPayload, file, line)
+
+ // Payload - invalid characters
+ self.assertParseNaN("nan(zzz)", T.nan, file, line)
+ self.assertParseNaN("-nan(zzz)", -T.nan, file, line)
+ self.assertParseNaN("nan(0xzzz)", T.nan, file, line)
+ self.assertParseNaN("-nan(0xzzz)", -T.nan, file, line)
+
+ // Payload - no close paren
+ self.assertParseFailed(T.self, "nan(0x7b", file, line)
+ self.assertParseFailed(T.self, "-nan(0x7b", file, line)
+
+ // Payload - invalid characters + no close paren
+ self.assertParseFailed(T.self, "nan(zzz", file, line)
+ self.assertParseFailed(T.self, "-nan(zzz", file, line)
+
+ // Payload - with additional characters
+ self.assertParseFailed(T.self, "nan(0x7b)zzz", file, line)
+ self.assertParseFailed(T.self, "-nan(0x7b)zzz", file, line)
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_nan_toString_toDecimal() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ for nan: T in self.generateNaNs(count: 20) {
+ let string = String(nan)
+ self.assertParseNaN(string, nan, file, line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ // MARK: - Zero
+
+ /// A lot of '0' in the beginning of the significand!
+ func test_zero_inSignificandPrefix() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let zeros = String(repeating: "0", count: 50)
+
+ // Tested strings, '_' means negative
+ let zero = zeros // 0000000000
+ let _zero = "-" + zeros // -0000000000
+ let zeroE7 = zeros + "E7" // 0000000000E7
+ let _zeroE7 = "-" + zeros + "E7" // -0000000000E7
+
+ let three = zeros + "3" // 00000000003
+ let _three = "-" + zeros + "3" // -00000000003
+ let threeE7 = zeros + "3E7" // 00000000003E7
+ let _threeE7 = "-" + zeros + "3E7" // -00000000003E7
+
+ let expectedZero = T.zero
+ let expectedThree = T(3)
+ guard let expectedZeroE7: T = self.parseExact("0E7", file, line) else { return }
+ guard let expectedThreeE7: T = self.parseExact("3E7", file, line) else { return }
+ let noFlags = DecimalStatus()
+
+ for r in Self.roundingRules {
+ self.assertParse(zero, r, expected: expectedZero, noFlags, file, line)
+ self.assertParse(_zero, r, expected: -expectedZero, noFlags, file, line)
+ self.assertParse(zeroE7, r, expected: expectedZeroE7, noFlags, file, line)
+ self.assertParse(_zeroE7, r, expected: -expectedZeroE7, noFlags, file, line)
+
+ self.assertParse(three, r, expected: expectedThree, noFlags, file, line)
+ self.assertParse(_three, r, expected: -expectedThree, noFlags, file, line)
+ self.assertParse(threeE7, r, expected: expectedThreeE7, noFlags, file, line)
+ self.assertParse(_threeE7, r, expected: -expectedThreeE7, noFlags, file, line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ /// A lot of '0' in the beginning of the exponent!
+ func test_zero_inExponentPrefix() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let significand = "123"
+ let zeroCount = 2 * Self.exponentParseMaxDigitCount
+ let exponent1 = String(repeating: "0", count: zeroCount)
+
+ // A lot of '0'
+ let plusPlus1 = significand + "E" + exponent1
+ let plusMinus1 = significand + "E-" + exponent1
+ let minusPlus1 = "-" + significand + "E" + exponent1
+ let minusMinus1 = "-" + significand + "E-" + exponent1
+
+ // A lot of '0' and digit after
+ let plusPlus2 = plusPlus1 + "7"
+ let plusMinus2 = plusMinus1 + "7"
+ let minusPlus2 = minusPlus1 + "7"
+ let minusMinus2 = minusMinus1 + "7"
+
+ let expected1 = T(123)
+ guard let expected2Plus: T = self.parseExact("123E7", file, line) else { return }
+ guard let expected2Minus: T = self.parseExact("123E-7", file, line) else { return }
+ let noFlags = DecimalStatus()
+
+ for r in Self.roundingRules {
+ self.assertParse(plusPlus1, r, expected: expected1, noFlags, file, line)
+ self.assertParse(plusMinus1, r, expected: expected1, noFlags, file, line)
+ self.assertParse(minusPlus1, r, expected: -expected1, noFlags, file, line)
+ self.assertParse(minusMinus1, r, expected: -expected1, noFlags, file, line)
+
+ self.assertParse(plusPlus2, r, expected: expected2Plus, noFlags, file, line)
+ self.assertParse(plusMinus2, r, expected: expected2Minus, noFlags, file, line)
+ self.assertParse(minusPlus2, r, expected: -expected2Plus, noFlags, file, line)
+ self.assertParse(minusMinus2, r, expected: -expected2Minus, noFlags, file, line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ // MARK: - Overflow
+
+ /// A lot of digits in significand.
+ func test_significandOverflow() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ // All precision digits. Start with 5, tons of 0…, end with 3 (odd).
+ // 5000000000000003E+0
+ let zeros = String(repeating: "0", count: T.precisionInDigits - 2)
+ let s = "5" + zeros + "3"
+ let sNext = "5" + zeros + "4"
+
+ // Tested strings, '_' means negative
+ let belowHalf = s + "420"
+ let half = s + "500"
+ let aboveHalf = s + "501"
+ let _belowHalf = "-" + belowHalf
+ let _half = "-" + half
+ let _aboveHalf = "-" + aboveHalf
+
+ // Expected
+ guard let noRounding: T = self.parseExact(s + "E3", file, line) else { return }
+ guard let awayFromZero: T = self.parseExact(sNext + "E3", file, line) else { return }
+ let inexact = DecimalStatus.isInexact
+
+ var r = DecimalFloatingPointRoundingRule.up
+ self.assertParse(belowHalf, r, expected: awayFromZero, inexact, file, line)
+ self.assertParse(half, r, expected: awayFromZero, inexact, file, line)
+ self.assertParse(aboveHalf, r, expected: awayFromZero, inexact, file, line)
+ self.assertParse(_belowHalf, r, expected: -noRounding, inexact, file, line)
+ self.assertParse(_half, r, expected: -noRounding, inexact, file, line)
+ self.assertParse(_aboveHalf, r, expected: -noRounding, inexact, file, line)
+
+ r = .down
+ self.assertParse(belowHalf, r, expected: noRounding, inexact, file, line)
+ self.assertParse(half, r, expected: noRounding, inexact, file, line)
+ self.assertParse(aboveHalf, r, expected: noRounding, inexact, file, line)
+ self.assertParse(_belowHalf, r, expected: -awayFromZero, inexact, file, line)
+ self.assertParse(_half, r, expected: -awayFromZero, inexact, file, line)
+ self.assertParse(_aboveHalf, r, expected: -awayFromZero, inexact, file, line)
+
+ r = .towardZero
+ self.assertParse(belowHalf, r, expected: noRounding, inexact, file, line)
+ self.assertParse(half, r, expected: noRounding, inexact, file, line)
+ self.assertParse(aboveHalf, r, expected: noRounding, inexact, file, line)
+ self.assertParse(_belowHalf, r, expected: -noRounding, inexact, file, line)
+ self.assertParse(_half, r, expected: -noRounding, inexact, file, line)
+ self.assertParse(_aboveHalf, r, expected: -noRounding, inexact, file, line)
+
+ r = .toNearestOrEven
+ self.assertParse(belowHalf, r, expected: noRounding, inexact, file, line)
+ self.assertParse(half, r, expected: awayFromZero, inexact, file, line)
+ self.assertParse(aboveHalf, r, expected: awayFromZero, inexact, file, line)
+ self.assertParse(_belowHalf, r, expected: -noRounding, inexact, file, line)
+ self.assertParse(_half, r, expected: -awayFromZero, inexact, file, line)
+ self.assertParse(_aboveHalf, r, expected: -awayFromZero, inexact, file, line)
+ // 'sNext' is even, so we will use it for testing halfway.
+ // It should not go to the higher number.
+ let halfEven = sNext + "500"
+ self.assertParse( halfEven, r, expected: awayFromZero, inexact, file, line)
+ self.assertParse("-" + halfEven, r, expected: -awayFromZero, inexact, file, line)
+
+ r = .toNearestOrAwayFromZero
+ self.assertParse(belowHalf, r, expected: noRounding, inexact, file, line)
+ self.assertParse(half, r, expected: awayFromZero, inexact, file, line)
+ self.assertParse(aboveHalf, r, expected: awayFromZero, inexact, file, line)
+ self.assertParse(_belowHalf, r, expected: -noRounding, inexact, file, line)
+ self.assertParse(_half, r, expected: -awayFromZero, inexact, file, line)
+ self.assertParse(_aboveHalf, r, expected: -awayFromZero, inexact, file, line)
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ /// Type used when parsing exponent.
+ private typealias ExponentParseInt = Int
+
+ private static let exponentParseMaxDigitCount = String(ExponentParseInt.max).count
+
+ /// Exponent not representable by `Int`.
+ func test_exponentOverflow() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let inf = T.infinity
+ let gfm = T.greatestFiniteMagnitude
+ let lnm = T.leastNonzeroMagnitude
+ let zero = T(sign: .plus, exponent: 0, significand: .zero)
+ let overflow = DecimalStatus.isOverflowInexact
+ let underflow = DecimalStatus.isUnderflowInexact
+
+ let significand = "123"
+ let exponent = String(repeating: "9", count: Self.exponentParseMaxDigitCount)
+
+ let plusPlus = significand + "E" + exponent
+ let plusMinus = significand + "E-" + exponent
+ let minusPlus = "-" + significand + "E" + exponent
+ let minusMinus = "-" + significand + "E-" + exponent
+
+ var r = DecimalFloatingPointRoundingRule.up
+ self.assertParse(plusPlus, r, expected: inf, overflow, file, line)
+ self.assertParse(plusMinus, r, expected: lnm, underflow, file, line)
+ self.assertParse(minusPlus, r, expected: -gfm, overflow, file, line)
+ self.assertParse(minusMinus, r, expected: -zero, underflow, file, line)
+
+ r = .down
+ self.assertParse(plusPlus, r, expected: gfm, overflow, file, line)
+ self.assertParse(plusMinus, r, expected: zero, underflow, file, line)
+ self.assertParse(minusPlus, r, expected: -inf, overflow, file, line)
+ self.assertParse(minusMinus, r, expected: -lnm, underflow, file, line)
+
+ r = .towardZero
+ self.assertParse(plusPlus, r, expected: gfm, overflow, file, line)
+ self.assertParse(plusMinus, r, expected: zero, underflow, file, line)
+ self.assertParse(minusPlus, r, expected: -gfm, overflow, file, line)
+ self.assertParse(minusMinus, r, expected: -zero, underflow, file, line)
+
+ r = .toNearestOrEven
+ self.assertParse(plusPlus, r, expected: inf, overflow, file, line)
+ self.assertParse(plusMinus, r, expected: zero, underflow, file, line)
+ self.assertParse(minusPlus, r, expected: -inf, overflow, file, line)
+ self.assertParse(minusMinus, r, expected: -zero, underflow, file, line)
+
+ r = .toNearestOrAwayFromZero
+ self.assertParse(plusPlus, r, expected: inf, overflow, file, line)
+ self.assertParse(plusMinus, r, expected: zero, underflow, file, line)
+ self.assertParse(minusPlus, r, expected: -inf, overflow, file, line)
+ self.assertParse(minusMinus, r, expected: -zero, underflow, file, line)
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ /// Long significand spills into exponent which overflows when added to `Exxx`.
+ func test_exponentOverflow_whenAddedToSignificand() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let inf = T.infinity
+ let gfm = T.greatestFiniteMagnitude
+ let overflow = DecimalStatus.isOverflowInexact
+
+ // Additional digits from significand overflow exponent.
+ // Note that this can only happen if the exponent is positive.
+ let fillPrecision = String(repeating: "0", count: T.precisionInDigits - 1)
+ let significand = "5" + fillPrecision + "1234"
+ let exponent = String(describing: ExponentParseInt.max - 3)
+
+ let plus = significand + "E" + exponent
+ let minus = "-" + significand + "E" + exponent
+
+ var r = DecimalFloatingPointRoundingRule.up
+ self.assertParse(plus, r, expected: inf, overflow, file, line)
+ self.assertParse(minus, r, expected: -gfm, overflow, file, line)
+
+ r = .down
+ self.assertParse(plus, r, expected: gfm, overflow, file, line)
+ self.assertParse(minus, r, expected: -inf, overflow, file, line)
+
+ r = .towardZero
+ self.assertParse(plus, r, expected: gfm, overflow, file, line)
+ self.assertParse(minus, r, expected: -gfm, overflow, file, line)
+
+ r = .toNearestOrEven
+ self.assertParse(plus, r, expected: inf, overflow, file, line)
+ self.assertParse(minus, r, expected: -inf, overflow, file, line)
+
+ r = .toNearestOrAwayFromZero
+ self.assertParse(plus, r, expected: inf, overflow, file, line)
+ self.assertParse(minus, r, expected: -inf, overflow, file, line)
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ // MARK: - Helpers
+
+ private func assertParse(
+ _ s: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ expected: T,
+ _ expectedStatus: DecimalStatus,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ var status = DecimalStatus()
+ let message = "\(s), rounding: \(rounding)"
+
+ if let d = T(s, rounding: rounding, status: &status) {
+ self.assertEqual(d, expected, message, file, line)
+ self.assertStatus(status, expectedStatus, message, file, line)
+ } else {
+ XCTFail("Parse failed: " + message, file: file, line: line)
+ }
+ }
+
+ private func assertParseFailed(
+ _ t: T.Type,
+ _ s: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ self.assertParseFailed(T.self, s, rounding: .towardZero, file, line)
+ }
+
+ private func assertParseFailed(
+ _ t: T.Type,
+ _ s: String,
+ rounding: DecimalFloatingPointRoundingRule,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ var status = DecimalStatus()
+
+ if let d = T._parse(s, rounding: rounding, status: &status) {
+ XCTFail("Expected to fail '\(s)', got '\(d)'.", file: file, line: line)
+ }
+
+ self.assertStatusIsEmpty(status, s, file, line)
+ }
+
+ private func assertParseNaN(
+ _ s: String,
+ _ expected: T,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ var status = DecimalStatus()
+
+ if let d = T._parse(s, rounding: .towardZero, status: &status) {
+ self.assertEqual(d, expected, s, file, line)
+ self.assertStatusIsEmpty(status, s, file, line)
+ } else {
+ XCTFail("Failed to parse '\(s)'.", file: file, line: line)
+ }
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelAddTests.swift b/Tests/DecimalTests/Intel - generated/IntelAddTests.swift
new file mode 100644
index 0000000..fce7389
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelAddTests.swift
@@ -0,0 +1,1030 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelAddTests: XCTestCase, IntelMixin {
+
+ func test_bid32_add() {
+ self.bid32_add("0", "[00000001]", "1.0", "[2f8f4240]", "20")
+ self.bid32_add("0", "[00080001]", "1.0", "[2f8f4240]", "20")
+ self.bid32_add("0", "1.0", "[00000001]", "[2f8f4240]", "20")
+ self.bid32_add("0", "1.0", "[00080001]", "[2f8f4240]", "20")
+ self.bid32_add("0", "-1.0", "1.0", "[32000000]", "00")
+ self.bid32_add("0", "1.0", "-1.0", "[32000000]", "00")
+ self.bid32_add("0", "1.0", "1.0", "[32000014]", "00")
+ self.bid32_add("0", "1.0", "-1.0e-96", "[2f8f4240]", "20")
+ self.bid32_add("0", "1.0", "1.0e-96", "[2f8f4240]", "20")
+ self.bid32_add("0", "1.0", "[6098967f]", "[2f8f4240]", "20")
+ self.bid32_add("0", "1.0", "[60989680]", "[2f8f4240]", "00")
+ self.bid32_add("0", "1.0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_add("0", "1.0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_add("0", "1.0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_add("0", "1.0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_add("0", "1.0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_add("0", "1.0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_add("0", "1.0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_add("0", "1.0", "[80000001]", "[2f8f4240]", "20")
+ self.bid32_add("0", "1.0", "-9.999999e-95", "[2f8f4240]", "20")
+ self.bid32_add("0", "1.0", "9.999999e-95", "[2f8f4240]", "20")
+ self.bid32_add("0", "1.0", "9.999999e96", "[77f8967f]", "20")
+ self.bid32_add("0", "1.0", "-9.999999e96", "[f7f8967f]", "20")
+ self.bid32_add("0", "-1.0e-96", "1.0", "[2f8f4240]", "20")
+ self.bid32_add("0", "1.0e-96", "1.0", "[2f8f4240]", "20")
+ self.bid32_add("0", "1.0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_add("0", "1.0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_add("0", "1.0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_add("0", "[6098967f]", "1.0", "[2f8f4240]", "20")
+ self.bid32_add("0", "[60989680]", "1.0", "[2f8f4240]", "00")
+ self.bid32_add("0", "[7c000000]", "1.0", "[7c000000]", "00")
+ self.bid32_add("0", "[7c8f423f]", "1.0", "[7c0f423f]", "00")
+ self.bid32_add("0", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_add("0", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_add("0", "[7c8f4240]", "1.0", "[7c000000]", "00")
+ self.bid32_add("0", "[7e100000]", "1.0", "[7c000000]", "01")
+ self.bid32_add("0", "[7e100100]", "1.0", "[7c000100]", "01")
+ self.bid32_add("0", "[7e8f423f]", "1.0", "[7c0f423f]", "01")
+ self.bid32_add("0", "[7e8f4240]", "1.0", "[7c000000]", "01")
+ self.bid32_add("0", "[80000001]", "1.0", "[2f8f4240]", "20")
+ self.bid32_add("0", "-9.999999e-95", "1.0", "[2f8f4240]", "20")
+ self.bid32_add("0", "9.999999e-95", "1.0", "[2f8f4240]", "20")
+ self.bid32_add("0", "9.999999e96", "1.0", "[77f8967f]", "20")
+ self.bid32_add("0", "-9.999999e96", "1.0", "[f7f8967f]", "20")
+ self.bid32_add("0", "[fc100000]", "1.0", "[fc000000]", "00")
+ self.bid32_add("0", "[fc100100]", "1.0", "[fc000100]", "00")
+ self.bid32_add("0", "[fe000000]", "1.0", "[fc000000]", "01")
+ self.bid32_add("0", "Infinity", "NaN", "[7c000000]", "00")
+ self.bid32_add("2", "[37079155]", "[f3844421]", "[f3844420]", "20")
+ self.bid32_add("0", "[c7800000]", "[00000054]", "[00000054]", "00")
+ self.bid32_add("0", "[1f800000]", "[9b800000]", "[1b800000]", "00")
+ self.bid32_add("1", "[1f800000]", "[9b800000]", "[9b800000]", "00")
+ self.bid32_add("0", "[9b800000]", "[d6000000]", "[9b800000]", "00")
+ self.bid32_add("0", "[48fa4473]", "[4982f3c3]", "[4929bfaa]", "20")
+ self.bid32_add("2", "[37079155]", "[f3844421]", "[f3844420]", "20")
+ self.bid32_add("0", "[c7800000]", "[00000054]", "[00000054]", "00")
+ self.bid32_add("0", "[1f800000]", "[9b800000]", "[1b800000]", "00")
+ self.bid32_add("1", "[1f800000]", "[9b800000]", "[9b800000]", "00")
+ self.bid32_add("0", "[9b800000]", "[d6000000]", "[9b800000]", "00")
+ self.bid32_add("0", "[48fa4473]", "[4982f3c3]", "[4929bfaa]", "20")
+ }
+
+ private func bid32_add(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.adding(arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_add() {
+ self.bid64_add("0", "-0.0110E-5", "+8898.E5", "[30ff9caf11361fff]", "20")
+ self.bid64_add("0", "[0018810020182059]", "[0008040210000004]", "[600085023018205d]", "00")
+ self.bid64_add("0", "0", "0", "[31c0000000000000]", "00")
+ self.bid64_add("0", "-0.1111100100010010E10", "-10.01E-13", "[b103f28a26c5601a]", "20")
+ self.bid64_add("0", "[0120000000000000]", "[56ad29df3b5a71bb]", "[56ad29df3b5a71bb]", "00")
+ self.bid64_add("0", "[0202120000008021]", "[ffffffffffffffff]", "[fc00000000000000]", "01")
+ self.bid64_add("0", "[02e0000000000000]", "[d2229969429f6ca5]", "[d219fe1c9a3a3e72]", "00")
+ self.bid64_add("0", "-0.E-19", "+9695899578786.656E10", "[6caa725e8a2be360]", "00")
+ self.bid64_add("0", "0E+368", "-NaN", "[fc00000000000000]", "00")
+ self.bid64_add("0", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_add("0", "-10000.000E-63", "+78795576.6967E-56", "[29dbfe6a7be1c5d0]", "00")
+ self.bid64_add("0", "+1.00000E-12", "+99899999.898988998E0", "[6c337dda20b43e94]", "20")
+ self.bid64_add("0", "+10.0001E398", "-111000.010E392", "[7c00000000000000]", "01")
+ self.bid64_add("0", "+10000.E263", "-0.000E-194", "[51438d7ea4c68000]", "00")
+ self.bid64_add("0", "-10001.0010100101E388", "+4588654244484.776E386", "[7c00000000000000]", "01")
+ self.bid64_add("0", "-1.0011E-9", "-98898889999898.989E15", "[ecdb22cd38b6628b]", "20")
+ self.bid64_add("0", "+1.01101000E-198", "+100.10000011E-128", "[20238e67797c58e0]", "20")
+ self.bid64_add("0", "-101110110110.10110101E0", "-67.696968885699597E0", "[b14397975200e43d]", "20")
+ self.bid64_add("0", "-10.111111000101E0", "+978554.469E0", "[6c22c3cf207d470f]", "20")
+ self.bid64_add("0", "-10.E-302", "+1000.00E282", "[53838d7ea4c68000]", "20")
+ self.bid64_add("0", "-1100.000E0", "+9.758785579577658555E0", "[b043df91904e15c6]", "20")
+ self.bid64_add("0", "-1110100.00110000101E267", "+1001.00E-249", "[d203f1a14c3b10e1]", "20")
+ self.bid64_add("0", "[1da0000000000000]", "[dd20000000000000]", "[1da0000000000000]", "00")
+ self.bid64_add("0", "1E+367", "-1.000000000000000E+384", "[dfe38d7ea4c68000]", "20")
+ self.bid64_add("0", "-1.E397", "+787878.88899688897E397", "[7c00000000000000]", "01")
+ self.bid64_add("0", "[21407a47dbe16c8f]", "[040200100000a000]", "[2124c6ce96ce3d96]", "20")
+ self.bid64_add("0", "+2.2982295752779357453E0", "+966976856776.7E0", "[6c525a9a708b199e]", "20")
+ self.bid64_add("0", "+234885.884424996E-295", "+99.998989899989988E-287", "[0c438d81c2bce2f6]", "20")
+ self.bid64_add("0", "[2440000000000000]", "[e3f08cce9a7dbe1e]", "[e3f08cce9a7dbe1e]", "00")
+ self.bid64_add("0", "+2.76756636E399", "-777558885766.7E393", "[7c00000000000000]", "01")
+ self.bid64_add("0", "[4003e39b61afb041]", "[bfbfff7fedf7ffff]", "[4003db6a5b8f70c4]", "20")
+ self.bid64_add("0", "+439964424.68362238E382", "-1000.101000E397", "[7c00000000000000]", "01")
+ self.bid64_add("0", "+43.E3", "+0.E-4", "[3140000019a14780]", "00")
+ self.bid64_add("0", "+44.9282349474E-69", "+5588689955.E-289", "[276ff632fc714820]", "20")
+ self.bid64_add("0", "-4988.668E-20", "-9898999.9E-13", "[ebc32b1684b36bb3]", "20")
+ self.bid64_add("0", "[4ad96e65ff4b1f64]", "[6bba76db8b29d15c]", "[4ad96e65ff4b1f64]", "20")
+ self.bid64_add("0", "-5245998.82675298E20", "+8999998888899.8E-19", "[b332a335488f8bd4]", "20")
+ self.bid64_add("0", "+5292.22E-360", "-9454467.399689E335", "[f6a196c9bae62328]", "20")
+ self.bid64_add("0", "-55.568E-5", "+9868.E5", "[6c3b0ee4caa4aa4b]", "20")
+ self.bid64_add("0", "+55797.E5", "+97.786E-5", "[3113d2b524740bd2]", "20")
+ self.bid64_add("0", "[55e0000000000000]", "[0a20000000000000]", "[0a20000000000000]", "00")
+ self.bid64_add("0", "+566955856656678778.E18", "-988889.88898998989899E-12", "[3454246ef864bb84]", "20")
+ self.bid64_add("0", "+568656.75656676888E336", "-1.000E358", "[f72386f26fc0ffff]", "20")
+ self.bid64_add("0", "[60fc51af47c841da]", "[e7f3effd37f8b94f]", "[03e0000000000000]", "00")
+ self.bid64_add("0", "[63f08f8ceb1a0eb8]", "[dffffffefffff6fd]", "[dffffffefffff6fd]", "20")
+ self.bid64_add("0", "+65695.E4", "-98.998E-5", "[30f756ece9d9f154]", "20")
+ self.bid64_add("0", "+65.767599878579869898E-66", "+8898.898999E-287", "[27d75d8742d96a43]", "20")
+ self.bid64_add("0", "+665886.975795E-3", "-3.7825797469566E13", "[b18d703c7a25e11b]", "20")
+ self.bid64_add("0", "+68879559987558.8E0", "+698898555.996E0", "[3198789f804b5c98]", "20")
+ self.bid64_add("0", "-754329993.87568436725E0", "-735437544799935588.E0", "[b21a20c3f8928d80]", "20")
+ self.bid64_add("0", "[800465810d808004]", "[0100000000202000]", "[8003a60631608004]", "00")
+ self.bid64_add("0", "[8020002000004000]", "[0400000000000001]", "[02238d7ea4c68000]", "20")
+ self.bid64_add("0", "+82253794294537886.728E400", "-99.695987675688886589E400", "[7c00000000000000]", "01")
+ self.bid64_add("0", "[822a2c860622bcd1]", "[021e9c223c400f3b]", "[82271ce9001c54e5]", "20")
+ self.bid64_add("0", "-8.7878958998E398", "+78.87E386", "[7c00000000000000]", "01")
+ self.bid64_add("0", "+889988.89989989E-304", "-6924.22664874538522E206", "[ca18998c25be25a9]", "20")
+ self.bid64_add("0", "-88.99888E0", "+829344724243563.87434E0", "[31bd76d8a8d948bd]", "20")
+ self.bid64_add("0", "-8899.89998899E-326", "-0.1E152", "[c2c38d7ea4c68000]", "20")
+ self.bid64_add("0", "-898.889899998E0", "+494258438.536E0", "[30f18f3f02c819c8]", "20")
+ self.bid64_add("0", "-8988.998E0", "-9.68473665643883E0", "[b05ff84117f70037]", "20")
+ self.bid64_add("0", "+89.89889999898998E12", "+101111100011111.1101E-4", "[319ff12d4aed01a5]", "20")
+ self.bid64_add("0", "+89898989988889.99E397", "-98.9E397", "[7c00000000000000]", "01")
+ self.bid64_add("0", "+89989.E5", "+3.883E-5", "[311ff873adde8827]", "20")
+ self.bid64_add("0", "[8a00000000000000]", "[c6d4941d1256f680]", "[c6d4941d1256f680]", "00")
+ self.bid64_add("0", "-8.E5", "+273.7E3", "[b20000000000148f]", "00")
+ self.bid64_add("0", "-925255365.6432E-369", "+1.0110000E-116", "[2163977fc7de3000]", "20")
+ self.bid64_add("0", "-9.6658887796668E0", "+869785.8E0", "[309ee6915f13ff8b]", "20")
+ self.bid64_add("0", "-98696.677E264", "-10111.000001011111E-264", "[f45b1069154f4500]", "20")
+ self.bid64_add("0", "-98855.E3", "-8.5588E-5", "[ec331ecf53ed796f]", "20")
+ self.bid64_add("0", "+9.8989E-4", "+98998.E4", "[6c3b2bd0ce5916ab]", "20")
+ self.bid64_add("0", "+9989889898889889.99E0", "-8898.8888E0", "[6c737dc07ec49fdf]", "20")
+ self.bid64_add("0", "-9998.E5", "-97.588E-5", "[ec3b8520c677061f]", "20")
+ self.bid64_add("0", "-99998.E170", "-11011.0101000010010E167", "[c5c38d939fc18608]", "20")
+ self.bid64_add("0", "[9bfae7929707ce77]", "[9dc3df260556dcf3]", "[9dc3df260556dcfb]", "20")
+ self.bid64_add("0", "[ae00000000000000]", "[497face7312d32d4]", "[497face7312d32d4]", "00")
+ self.bid64_add("0", "[b4b7313d0540c489]", "[a4c0000000000000]", "[b4b7313d0540c489]", "00")
+ self.bid64_add("0", "[be386cf3f81ffa33]", "[be3b6f79927fed56]", "[be452fa48ddcca5a]", "20")
+ self.bid64_add("0", "[bffffffffffffbff]", "[414086090010d205]", "[41253c5a009a75c2]", "20")
+ self.bid64_add("0", "[d7e0000000000000]", "[58f1710d03bdb7a9]", "[58f1710d03bdb7a9]", "00")
+ self.bid64_add("0", "[dba5fef7ffa7c9f7]", "[48850602a8c05400]", "[dba5fef7ffa7c9f7]", "20")
+ self.bid64_add("0", "[dfffefffffffffde]", "[dff57564a1de8711]", "[f800000000000000]", "28")
+ self.bid64_add("0", "[e33fbf5f26e2cfdf]", "[335d7d90f51ed738]", "[335d7d90f51ed738]", "00")
+ self.bid64_add("0", "[e62bb5a6cfc547bc]", "[0000000000000000]", "[0000000000000000]", "00")
+ self.bid64_add("0", "[e79501607cee8695]", "[1e9090ace525cc79]", "[1e9090ace525cc79]", "00")
+ self.bid64_add("0", "[ef3031aa6d47935d]", "[7195851ba4a3beb1]", "[ef3031aa6d47935d]", "00")
+ self.bid64_add("0", "[efffdfdfdddffbcf]", "[a792bbb8376b7ede]", "[a792bbb8376b7ede]", "00")
+ self.bid64_add("0", "[f25bbf6eeddfff6b]", "[f284f66a6da94255]", "[c960000000000000]", "00")
+ self.bid64_add("0", "[f5ce57a92fbc7496]", "[747bb208a0c43b8c]", "[51e0000000000000]", "00")
+ self.bid64_add("0", "[f9efe4efeefb1dbc]", "[49d54d8203c5a840]", "[f800000000000000]", "00")
+ self.bid64_add("0", "[fb7ffffffffbfdff]", "[fb2d0c623ab90e08]", "[f800000000000000]", "00")
+ self.bid64_add("0", "[fbb1438319eeb335]", "[ffffeffdffffefd3]", "[fc00000000000000]", "01")
+ self.bid64_add("0", "[fbefdffffdfdf9f7]", "[7977ebafda7fff9f]", "[7c00000000000000]", "01")
+ self.bid64_add("0", "[fdb9548e8c24d385]", "[80000190000460e3]", "[fc01548e8c24d385]", "00")
+ self.bid64_add("0", "[ffeffffffffffef7]", "[ba1db10e9fa4cbe4]", "[fc00000000000000]", "01")
+ self.bid64_add("0", "Infinity", "0", "[7800000000000000]", "00")
+ self.bid64_add("0", "-Infinity", "0", "[f800000000000000]", "00")
+ self.bid64_add("0", "Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("0", "QNaN", "Infinity", "[7c00000000000000]", "00")
+ self.bid64_add("0", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_add("0", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_add("0", "SNaN", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("0", "SNaN", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("1", "-0.0110E-5", "+8898.E5", "[30ff9caf11361ffe]", "20")
+ self.bid64_add("1", "-0.1111100100010010E10", "-10.01E-13", "[b103f28a26c5601b]", "20")
+ self.bid64_add("1", "[0120000000000000]", "[56ad29df3b5a71bb]", "[56ad29df3b5a71bb]", "00")
+ self.bid64_add("1", "[02e0000000000000]", "[d2229969429f6ca5]", "[d219fe1c9a3a3e72]", "00")
+ self.bid64_add("1", "-0.E-19", "+9695899578786.656E10", "[6caa725e8a2be360]", "00")
+ self.bid64_add("1", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_add("1", "-10000.000E-63", "+78795576.6967E-56", "[29dbfe6a7be1c5d0]", "00")
+ self.bid64_add("1", "+1.00000E-12", "+99899999.898988998E0", "[6c337dda20b43e94]", "20")
+ self.bid64_add("1", "+10.0001E398", "-111000.010E392", "[7c00000000000000]", "01")
+ self.bid64_add("1", "+10000.E263", "-0.000E-194", "[51438d7ea4c68000]", "00")
+ self.bid64_add("1", "-10001.0010100101E388", "+4588654244484.776E386", "[7c00000000000000]", "01")
+ self.bid64_add("1", "-1.0011E-9", "-98898889999898.989E15", "[ecdb22cd38b6628c]", "20")
+ self.bid64_add("1", "+1.01101000E-198", "+100.10000011E-128", "[20238e67797c58e0]", "20")
+ self.bid64_add("1", "-101110110110.10110101E0", "-67.696968885699597E0", "[b14397975200e43d]", "20")
+ self.bid64_add("1", "-10.111111000101E0", "+978554.469E0", "[6c22c3cf207d470e]", "20")
+ self.bid64_add("1", "-10.E-302", "+1000.00E282", "[74db86f26fc0ffff]", "20")
+ self.bid64_add("1", "-1100.000E0", "+9.758785579577658555E0", "[b043df91904e15c7]", "20")
+ self.bid64_add("1", "-1110100.00110000101E267", "+1001.00E-249", "[d203f1a14c3b10e1]", "20")
+ self.bid64_add("1", "[1da0000000000000]", "[dd20000000000000]", "[9da0000000000000]", "00")
+ self.bid64_add("1", "-1E-385", "-9.999999999999999E+384", "[f800000000000000]", "28")
+ self.bid64_add("1", "-1.E397", "+787878.88899688897E397", "[7c00000000000000]", "01")
+ self.bid64_add("1", "+2.2982295752779357453E0", "+966976856776.7E0", "[6c525a9a708b199e]", "20")
+ self.bid64_add("1", "[2440000000000000]", "[e3f08cce9a7dbe1e]", "[e3f08cce9a7dbe1e]", "00")
+ self.bid64_add("1", "+2.76756636E399", "-777558885766.7E393", "[7c00000000000000]", "01")
+ self.bid64_add("1", "[4000000000000001]", "[b242ebf30803c141]", "[6f8386f26fc0ffff]", "20")
+ self.bid64_add("1", "+439964424.68362238E382", "-1000.101000E397", "[7c00000000000000]", "01")
+ self.bid64_add("1", "+43.E3", "+0.E-4", "[3140000019a14780]", "00")
+ self.bid64_add("1", "+44.9282349474E-69", "+5588689955.E-289", "[276ff632fc714820]", "20")
+ self.bid64_add("1", "-4988.668E-20", "-9898999.9E-13", "[ebc32b1684b36bb3]", "20")
+ self.bid64_add("1", "[4ad96e65ff4b1f64]", "[6bba76db8b29d15c]", "[4ad96e65ff4b1f64]", "20")
+ self.bid64_add("1", "-5245998.82675298E20", "+8999998888899.8E-19", "[b332a335488f8bd4]", "20")
+ self.bid64_add("1", "+5292.22E-360", "-9454467.399689E335", "[f6a196c9bae62328]", "20")
+ self.bid64_add("1", "-55.568E-5", "+9868.E5", "[6c3b0ee4caa4aa4b]", "20")
+ self.bid64_add("1", "+55797.E5", "+97.786E-5", "[3113d2b524740bd1]", "20")
+ self.bid64_add("1", "[55e0000000000000]", "[0a20000000000000]", "[0a20000000000000]", "00")
+ self.bid64_add("1", "+566955856656678778.E18", "-988889.88898998989899E-12", "[3454246ef864bb83]", "20")
+ self.bid64_add("1", "[5f7f5fdfa67bdfff]", "[ac374699bb96c89e]", "[5f7f5fdfa67bdffe]", "20")
+ self.bid64_add("1", "[5ffffbfff34ffeb7]", "[5ffffff5efffef7f]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_add("1", "[60fc51af47c841da]", "[e7f3effd37f8b94f]", "[83e0000000000000]", "00")
+ self.bid64_add("1", "+65695.E4", "-98.998E-5", "[30f756ece9d9f154]", "20")
+ self.bid64_add("1", "+65.767599878579869898E-66", "+8898.898999E-287", "[27d75d8742d96a43]", "20")
+ self.bid64_add("1", "+665886.975795E-3", "-3.7825797469566E13", "[b18d703c7a25e11c]", "20")
+ self.bid64_add("1", "+68879559987558.8E0", "+698898555.996E0", "[3198789f804b5c97]", "20")
+ self.bid64_add("1", "-754329993.87568436725E0", "-735437544799935588.E0", "[b21a20c3f8928d80]", "20")
+ self.bid64_add("1", "[8020002000004000]", "[0400000000000001]", "[608386f26fc0ffff]", "20")
+ self.bid64_add("1", "+82253794294537886.728E400", "-99.695987675688886589E400", "[7c00000000000000]", "01")
+ self.bid64_add("1", "-8.7878958998E398", "+78.87E386", "[7c00000000000000]", "01")
+ self.bid64_add("1", "+889988.89989989E-304", "-6924.22664874538522E206", "[ca18998c25be25a9]", "20")
+ self.bid64_add("1", "-88.99888E0", "+829344724243563.87434E0", "[31bd76d8a8d948bd]", "20")
+ self.bid64_add("1", "-8899.89998899E-326", "-0.1E152", "[c2c38d7ea4c68001]", "20")
+ self.bid64_add("1", "-898.889899998E0", "+494258438.536E0", "[30f18f3f02c819c8]", "20")
+ self.bid64_add("1", "-8988.998E0", "-9.68473665643883E0", "[b05ff84117f70037]", "20")
+ self.bid64_add("1", "+89.89889999898998E12", "+101111100011111.1101E-4", "[319ff12d4aed01a5]", "20")
+ self.bid64_add("1", "+89898989988889.99E397", "-98.9E397", "[7c00000000000000]", "01")
+ self.bid64_add("1", "+89989.E5", "+3.883E-5", "[311ff873adde8826]", "20")
+ self.bid64_add("1", "[8a00000000000000]", "[c6d4941d1256f680]", "[c6d4941d1256f680]", "00")
+ self.bid64_add("1", "-8.E5", "+273.7E3", "[b20000000000148f]", "00")
+ self.bid64_add("1", "-925255365.6432E-369", "+1.0110000E-116", "[2163977fc7de2fff]", "20")
+ self.bid64_add("1", "-9.6658887796668E0", "+869785.8E0", "[309ee6915f13ff8b]", "20")
+ self.bid64_add("1", "-98696.677E264", "-10111.000001011111E-264", "[f45b1069154f4501]", "20")
+ self.bid64_add("1", "-98855.E3", "-8.5588E-5", "[ec331ecf53ed796f]", "20")
+ self.bid64_add("1", "+9.8989E-4", "+98998.E4", "[6c3b2bd0ce5916aa]", "20")
+ self.bid64_add("1", "+9989889898889889.99E0", "-8898.8888E0", "[6c737dc07ec49fdf]", "20")
+ self.bid64_add("1", "-9998.E5", "-97.588E-5", "[ec3b8520c677061f]", "20")
+ self.bid64_add("1", "[ae00000000000000]", "[497face7312d32d4]", "[497face7312d32d4]", "00")
+ self.bid64_add("1", "[b4b7313d0540c489]", "[a4c0000000000000]", "[b4b7313d0540c489]", "00")
+ self.bid64_add("1", "[bffffffffffffbff]", "[414086090010d205]", "[41253c5a009a75c2]", "20")
+ self.bid64_add("1", "[d7e0000000000000]", "[58f1710d03bdb7a9]", "[58f1710d03bdb7a9]", "00")
+ self.bid64_add("1", "[dba5fef7ffa7c9f7]", "[48850602a8c05400]", "[dba5fef7ffa7c9f7]", "20")
+ self.bid64_add("1", "[dfffefffffffffde]", "[dff57564a1de8711]", "[f800000000000000]", "28")
+ self.bid64_add("1", "[e79501607cee8695]", "[1e9090ace525cc79]", "[1e9090ace525cc79]", "00")
+ self.bid64_add("1", "Infinity", "0", "[7800000000000000]", "00")
+ self.bid64_add("1", "-Infinity", "0", "[f800000000000000]", "00")
+ self.bid64_add("1", "Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("1", "QNaN", "Infinity", "[7c00000000000000]", "00")
+ self.bid64_add("1", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_add("1", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_add("1", "SNaN", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("1", "SNaN", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("2", "-0.0110E-5", "+8898.E5", "[30ff9caf11361fff]", "20")
+ self.bid64_add("2", "-0.1111100100010010E10", "-10.01E-13", "[b103f28a26c5601a]", "20")
+ self.bid64_add("2", "[0120000000000000]", "[56ad29df3b5a71bb]", "[56ad29df3b5a71bb]", "00")
+ self.bid64_add("2", "[02e0000000000000]", "[d2229969429f6ca5]", "[d219fe1c9a3a3e72]", "00")
+ self.bid64_add("2", "-0.E-19", "+9695899578786.656E10", "[6caa725e8a2be360]", "00")
+ self.bid64_add("2", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_add("2", "-10000.000E-63", "+78795576.6967E-56", "[29dbfe6a7be1c5d0]", "00")
+ self.bid64_add("2", "+1.00000E-12", "+99899999.898988998E0", "[6c337dda20b43e95]", "20")
+ self.bid64_add("2", "+10.0001E398", "-111000.010E392", "[7c00000000000000]", "01")
+ self.bid64_add("2", "+10000.E263", "-0.000E-194", "[51438d7ea4c68000]", "00")
+ self.bid64_add("2", "-10001.0010100101E388", "+4588654244484.776E386", "[7c00000000000000]", "01")
+ self.bid64_add("2", "-1.0011E-9", "-98898889999898.989E15", "[ecdb22cd38b6628b]", "20")
+ self.bid64_add("2", "+1.01101000E-198", "+100.10000011E-128", "[20238e67797c58e1]", "20")
+ self.bid64_add("2", "-101110110110.10110101E0", "-67.696968885699597E0", "[b14397975200e43c]", "20")
+ self.bid64_add("2", "-10.111111000101E0", "+978554.469E0", "[6c22c3cf207d470f]", "20")
+ self.bid64_add("2", "-10.E-302", "+1000.00E282", "[53838d7ea4c68000]", "20")
+ self.bid64_add("2", "-1100.000E0", "+9.758785579577658555E0", "[b043df91904e15c6]", "20")
+ self.bid64_add("2", "-1110100.00110000101E267", "+1001.00E-249", "[d203f1a14c3b10e0]", "20")
+ self.bid64_add("2", "[1da0000000000000]", "[dd20000000000000]", "[1da0000000000000]", "00")
+ self.bid64_add("2", "1E+367", "9.999999999999999E+384", "[7800000000000000]", "28")
+ self.bid64_add("2", "-1.E397", "+787878.88899688897E397", "[7c00000000000000]", "01")
+ self.bid64_add("2", "+2.2982295752779357453E0", "+966976856776.7E0", "[6c525a9a708b199f]", "20")
+ self.bid64_add("2", "[2440000000000000]", "[e3f08cce9a7dbe1e]", "[e3f08cce9a7dbe1e]", "00")
+ self.bid64_add("2", "+2.76756636E399", "-777558885766.7E393", "[7c00000000000000]", "01")
+ self.bid64_add("2", "+439964424.68362238E382", "-1000.101000E397", "[7c00000000000000]", "01")
+ self.bid64_add("2", "+43.E3", "+0.E-4", "[3140000019a14780]", "00")
+ self.bid64_add("2", "+44.9282349474E-69", "+5588689955.E-289", "[276ff632fc714821]", "20")
+ self.bid64_add("2", "-4988.668E-20", "-9898999.9E-13", "[ebc32b1684b36bb2]", "20")
+ self.bid64_add("2", "[4ad96e65ff4b1f64]", "[6bba76db8b29d15c]", "[4ad96e65ff4b1f65]", "20")
+ self.bid64_add("2", "-5245998.82675298E20", "+8999998888899.8E-19", "[b332a335488f8bd3]", "20")
+ self.bid64_add("2", "+5292.22E-360", "-9454467.399689E335", "[f6a196c9bae62327]", "20")
+ self.bid64_add("2", "-55.568E-5", "+9868.E5", "[6c3b0ee4caa4aa4c]", "20")
+ self.bid64_add("2", "+55797.E5", "+97.786E-5", "[3113d2b524740bd2]", "20")
+ self.bid64_add("2", "[55e0000000000000]", "[0a20000000000000]", "[0a20000000000000]", "00")
+ self.bid64_add("2", "+566955856656678778.E18", "-988889.88898998989899E-12", "[3454246ef864bb84]", "20")
+ self.bid64_add("2", "+65695.E4", "-98.998E-5", "[30f756ece9d9f155]", "20")
+ self.bid64_add("2", "+65.767599878579869898E-66", "+8898.898999E-287", "[27d75d8742d96a44]", "20")
+ self.bid64_add("2", "+665886.975795E-3", "-3.7825797469566E13", "[b18d703c7a25e11b]", "20")
+ self.bid64_add("2", "+68879559987558.8E0", "+698898555.996E0", "[3198789f804b5c98]", "20")
+ self.bid64_add("2", "-754329993.87568436725E0", "-735437544799935588.E0", "[b21a20c3f8928d7f]", "20")
+ self.bid64_add("2", "+82253794294537886.728E400", "-99.695987675688886589E400", "[7c00000000000000]", "01")
+ self.bid64_add("2", "[822a2c860622bcd1]", "[021e9c223c400f3b]", "[82271ce9001c54e4]", "20")
+ self.bid64_add("2", "-8.7878958998E398", "+78.87E386", "[7c00000000000000]", "01")
+ self.bid64_add("2", "+889988.89989989E-304", "-6924.22664874538522E206", "[ca18998c25be25a8]", "20")
+ self.bid64_add("2", "-88.99888E0", "+829344724243563.87434E0", "[31bd76d8a8d948be]", "20")
+ self.bid64_add("2", "-8899.89998899E-326", "-0.1E152", "[c2c38d7ea4c68000]", "20")
+ self.bid64_add("2", "-898.889899998E0", "+494258438.536E0", "[30f18f3f02c819c9]", "20")
+ self.bid64_add("2", "-8988.998E0", "-9.68473665643883E0", "[b05ff84117f70036]", "20")
+ self.bid64_add("2", "+89.89889999898998E12", "+101111100011111.1101E-4", "[319ff12d4aed01a6]", "20")
+ self.bid64_add("2", "+89898989988889.99E397", "-98.9E397", "[7c00000000000000]", "01")
+ self.bid64_add("2", "+89989.E5", "+3.883E-5", "[311ff873adde8827]", "20")
+ self.bid64_add("2", "[8a00000000000000]", "[c6d4941d1256f680]", "[c6d4941d1256f680]", "00")
+ self.bid64_add("2", "-8.E5", "+273.7E3", "[b20000000000148f]", "00")
+ self.bid64_add("2", "-925255365.6432E-369", "+1.0110000E-116", "[2163977fc7de3000]", "20")
+ self.bid64_add("2", "-9.6658887796668E0", "+869785.8E0", "[309ee6915f13ff8c]", "20")
+ self.bid64_add("2", "-98696.677E264", "-10111.000001011111E-264", "[f45b1069154f4500]", "20")
+ self.bid64_add("2", "-98855.E3", "-8.5588E-5", "[ec331ecf53ed796e]", "20")
+ self.bid64_add("2", "+9.8989E-4", "+98998.E4", "[6c3b2bd0ce5916ab]", "20")
+ self.bid64_add("2", "+9989889898889889.99E0", "-8898.8888E0", "[6c737dc07ec49fe0]", "20")
+ self.bid64_add("2", "-9998.E5", "-97.588E-5", "[ec3b8520c677061e]", "20")
+ self.bid64_add("2", "+9999999999.999999E192", "+0.1E24", "[49238d7ea4c68000]", "20")
+ self.bid64_add("2", "[ae00000000000000]", "[497face7312d32d4]", "[497face7312d32d4]", "00")
+ self.bid64_add("2", "[b4b7313d0540c489]", "[a4c0000000000000]", "[b4b7313d0540c489]", "00")
+ self.bid64_add("2", "[bffffffffffffbff]", "[414086090010d205]", "[41253c5a009a75c3]", "20")
+ self.bid64_add("2", "[cecdf0a30f64b490]", "[f36af3493667544a]", "[cecdf0a30ffad0dc]", "20")
+ self.bid64_add("2", "[d7e0000000000000]", "[58f1710d03bdb7a9]", "[58f1710d03bdb7a9]", "00")
+ self.bid64_add("2", "[dba5fef7ffa7c9f7]", "[48850602a8c05400]", "[dba5fef7ffa7c9f6]", "20")
+ self.bid64_add("2", "[dfffefffffffffde]", "[dff57564a1de8711]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_add("2", "[e79501607cee8695]", "[1e9090ace525cc79]", "[1e9090ace525cc79]", "00")
+ self.bid64_add("2", "Infinity", "0", "[7800000000000000]", "00")
+ self.bid64_add("2", "-Infinity", "0", "[f800000000000000]", "00")
+ self.bid64_add("2", "Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("2", "QNaN", "Infinity", "[7c00000000000000]", "00")
+ self.bid64_add("2", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_add("2", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_add("2", "SNaN", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("2", "SNaN", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("3", "-0.0110E-5", "+8898.E5", "[30ff9caf11361ffe]", "20")
+ self.bid64_add("3", "-0.1111100100010010E10", "-10.01E-13", "[b103f28a26c5601a]", "20")
+ self.bid64_add("3", "[0120000000000000]", "[56ad29df3b5a71bb]", "[56ad29df3b5a71bb]", "00")
+ self.bid64_add("3", "[02e0000000000000]", "[d2229969429f6ca5]", "[d219fe1c9a3a3e72]", "00")
+ self.bid64_add("3", "-0.E-19", "+9695899578786.656E10", "[6caa725e8a2be360]", "00")
+ self.bid64_add("3", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_add("3", "-10000.000E-63", "+78795576.6967E-56", "[29dbfe6a7be1c5d0]", "00")
+ self.bid64_add("3", "+1.00000E-12", "+99899999.898988998E0", "[6c337dda20b43e94]", "20")
+ self.bid64_add("3", "+10.0001E398", "-111000.010E392", "[7c00000000000000]", "01")
+ self.bid64_add("3", "+10000.E263", "-0.000E-194", "[51438d7ea4c68000]", "00")
+ self.bid64_add("3", "-10001.0010100101E388", "+4588654244484.776E386", "[7c00000000000000]", "01")
+ self.bid64_add("3", "-1.0011E-9", "-98898889999898.989E15", "[ecdb22cd38b6628b]", "20")
+ self.bid64_add("3", "+1.01101000E-198", "+100.10000011E-128", "[20238e67797c58e0]", "20")
+ self.bid64_add("3", "-101110110110.10110101E0", "-67.696968885699597E0", "[b14397975200e43c]", "20")
+ self.bid64_add("3", "-10.111111000101E0", "+978554.469E0", "[6c22c3cf207d470e]", "20")
+ self.bid64_add("3", "-10.E-302", "+1000.00E282", "[74db86f26fc0ffff]", "20")
+ self.bid64_add("3", "-1100.000E0", "+9.758785579577658555E0", "[b043df91904e15c6]", "20")
+ self.bid64_add("3", "-1110100.00110000101E267", "+1001.00E-249", "[d203f1a14c3b10e0]", "20")
+ self.bid64_add("3", "[1da0000000000000]", "[dd20000000000000]", "[1da0000000000000]", "00")
+ self.bid64_add("3", "-1.E397", "+787878.88899688897E397", "[7c00000000000000]", "01")
+ self.bid64_add("3", "+2.2982295752779357453E0", "+966976856776.7E0", "[6c525a9a708b199e]", "20")
+ self.bid64_add("3", "[2440000000000000]", "[e3f08cce9a7dbe1e]", "[e3f08cce9a7dbe1e]", "00")
+ self.bid64_add("3", "+2.76756636E399", "-777558885766.7E393", "[7c00000000000000]", "01")
+ self.bid64_add("3", "[4000000000000001]", "[b242ebf30803c141]", "[6f8386f26fc0ffff]", "20")
+ self.bid64_add("3", "+439964424.68362238E382", "-1000.101000E397", "[7c00000000000000]", "01")
+ self.bid64_add("3", "+43.E3", "+0.E-4", "[3140000019a14780]", "00")
+ self.bid64_add("3", "+44.9282349474E-69", "+5588689955.E-289", "[276ff632fc714820]", "20")
+ self.bid64_add("3", "-4988.668E-20", "-9898999.9E-13", "[ebc32b1684b36bb2]", "20")
+ self.bid64_add("3", "[4ad96e65ff4b1f64]", "[6bba76db8b29d15c]", "[4ad96e65ff4b1f64]", "20")
+ self.bid64_add("3", "-5245998.82675298E20", "+8999998888899.8E-19", "[b332a335488f8bd3]", "20")
+ self.bid64_add("3", "+5292.22E-360", "-9454467.399689E335", "[f6a196c9bae62327]", "20")
+ self.bid64_add("3", "-55.568E-5", "+9868.E5", "[6c3b0ee4caa4aa4b]", "20")
+ self.bid64_add("3", "+55797.E5", "+97.786E-5", "[3113d2b524740bd1]", "20")
+ self.bid64_add("3", "[55e0000000000000]", "[0a20000000000000]", "[0a20000000000000]", "00")
+ self.bid64_add("3", "+566955856656678778.E18", "-988889.88898998989899E-12", "[3454246ef864bb83]", "20")
+ self.bid64_add("3", "+65695.E4", "-98.998E-5", "[30f756ece9d9f154]", "20")
+ self.bid64_add("3", "+65.767599878579869898E-66", "+8898.898999E-287", "[27d75d8742d96a43]", "20")
+ self.bid64_add("3", "+665886.975795E-3", "-3.7825797469566E13", "[b18d703c7a25e11b]", "20")
+ self.bid64_add("3", "+68879559987558.8E0", "+698898555.996E0", "[3198789f804b5c97]", "20")
+ self.bid64_add("3", "-754329993.87568436725E0", "-735437544799935588.E0", "[b21a20c3f8928d7f]", "20")
+ self.bid64_add("3", "+82253794294537886.728E400", "-99.695987675688886589E400", "[7c00000000000000]", "01")
+ self.bid64_add("3", "-8.7878958998E398", "+78.87E386", "[7c00000000000000]", "01")
+ self.bid64_add("3", "+889988.89989989E-304", "-6924.22664874538522E206", "[ca18998c25be25a8]", "20")
+ self.bid64_add("3", "-88.99888E0", "+829344724243563.87434E0", "[31bd76d8a8d948bd]", "20")
+ self.bid64_add("3", "-8899.89998899E-326", "-0.1E152", "[c2c38d7ea4c68000]", "20")
+ self.bid64_add("3", "-898.889899998E0", "+494258438.536E0", "[30f18f3f02c819c8]", "20")
+ self.bid64_add("3", "-8988.998E0", "-9.68473665643883E0", "[b05ff84117f70036]", "20")
+ self.bid64_add("3", "+89.89889999898998E12", "+101111100011111.1101E-4", "[319ff12d4aed01a5]", "20")
+ self.bid64_add("3", "+89898989988889.99E397", "-98.9E397", "[7c00000000000000]", "01")
+ self.bid64_add("3", "+89989.E5", "+3.883E-5", "[311ff873adde8826]", "20")
+ self.bid64_add("3", "[8a00000000000000]", "[c6d4941d1256f680]", "[c6d4941d1256f680]", "00")
+ self.bid64_add("3", "-8.E5", "+273.7E3", "[b20000000000148f]", "00")
+ self.bid64_add("3", "-925255365.6432E-369", "+1.0110000E-116", "[2163977fc7de2fff]", "20")
+ self.bid64_add("3", "-9.6658887796668E0", "+869785.8E0", "[309ee6915f13ff8b]", "20")
+ self.bid64_add("3", "-98696.677E264", "-10111.000001011111E-264", "[f45b1069154f4500]", "20")
+ self.bid64_add("3", "-98855.E3", "-8.5588E-5", "[ec331ecf53ed796e]", "20")
+ self.bid64_add("3", "+9.8989E-4", "+98998.E4", "[6c3b2bd0ce5916aa]", "20")
+ self.bid64_add("3", "+9989889898889889.99E0", "-8898.8888E0", "[6c737dc07ec49fdf]", "20")
+ self.bid64_add("3", "-9998.E5", "-97.588E-5", "[ec3b8520c677061e]", "20")
+ self.bid64_add("3", "[ae00000000000000]", "[497face7312d32d4]", "[497face7312d32d4]", "00")
+ self.bid64_add("3", "[b4b7313d0540c489]", "[a4c0000000000000]", "[b4b7313d0540c489]", "00")
+ self.bid64_add("3", "[d7e0000000000000]", "[58f1710d03bdb7a9]", "[58f1710d03bdb7a9]", "00")
+ self.bid64_add("3", "[dba5fef7ffa7c9f7]", "[48850602a8c05400]", "[dba5fef7ffa7c9f6]", "20")
+ self.bid64_add("3", "[dfffefffffffffde]", "[dff57564a1de8711]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_add("3", "Infinity", "0", "[7800000000000000]", "00")
+ self.bid64_add("3", "-Infinity", "0", "[f800000000000000]", "00")
+ self.bid64_add("3", "Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("3", "QNaN", "Infinity", "[7c00000000000000]", "00")
+ self.bid64_add("3", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_add("3", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_add("3", "SNaN", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("3", "SNaN", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("4", "-0.0110E-5", "+8898.E5", "[30ff9caf11361fff]", "20")
+ self.bid64_add("4", "-0.1111100100010010E10", "-10.01E-13", "[b103f28a26c5601a]", "20")
+ self.bid64_add("4", "[0120000000000000]", "[56ad29df3b5a71bb]", "[56ad29df3b5a71bb]", "00")
+ self.bid64_add("4", "[02e0000000000000]", "[d2229969429f6ca5]", "[d219fe1c9a3a3e72]", "00")
+ self.bid64_add("4", "-0.E-19", "+9695899578786.656E10", "[6caa725e8a2be360]", "00")
+ self.bid64_add("4", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_add("4", "-10000.000E-63", "+78795576.6967E-56", "[29dbfe6a7be1c5d0]", "00")
+ self.bid64_add("4", "+1.00000E-12", "+99899999.898988998E0", "[6c337dda20b43e94]", "20")
+ self.bid64_add("4", "+10.0001E398", "-111000.010E392", "[7c00000000000000]", "01")
+ self.bid64_add("4", "+10000.E263", "-0.000E-194", "[51438d7ea4c68000]", "00")
+ self.bid64_add("4", "-10001.0010100101E388", "+4588654244484.776E386", "[7c00000000000000]", "01")
+ self.bid64_add("4", "-1.0011E-9", "-98898889999898.989E15", "[ecdb22cd38b6628b]", "20")
+ self.bid64_add("4", "+1.01101000E-198", "+100.10000011E-128", "[20238e67797c58e0]", "20")
+ self.bid64_add("4", "-101110110110.10110101E0", "-67.696968885699597E0", "[b14397975200e43d]", "20")
+ self.bid64_add("4", "-10.111111000101E0", "+978554.469E0", "[6c22c3cf207d470f]", "20")
+ self.bid64_add("4", "-10.E-302", "+1000.00E282", "[53838d7ea4c68000]", "20")
+ self.bid64_add("4", "-1100.000E0", "+9.758785579577658555E0", "[b043df91904e15c6]", "20")
+ self.bid64_add("4", "-1110100.00110000101E267", "+1001.00E-249", "[d203f1a14c3b10e1]", "20")
+ self.bid64_add("4", "[1da0000000000000]", "[dd20000000000000]", "[1da0000000000000]", "00")
+ self.bid64_add("4", "-1.E397", "+787878.88899688897E397", "[7c00000000000000]", "01")
+ self.bid64_add("4", "+2.2982295752779357453E0", "+966976856776.7E0", "[6c525a9a708b199e]", "20")
+ self.bid64_add("4", "[2440000000000000]", "[e3f08cce9a7dbe1e]", "[e3f08cce9a7dbe1e]", "00")
+ self.bid64_add("4", "+2.76756636E399", "-777558885766.7E393", "[7c00000000000000]", "01")
+ self.bid64_add("4", "+439964424.68362238E382", "-1000.101000E397", "[7c00000000000000]", "01")
+ self.bid64_add("4", "+43.E3", "+0.E-4", "[3140000019a14780]", "00")
+ self.bid64_add("4", "+44.9282349474E-69", "+5588689955.E-289", "[276ff632fc714820]", "20")
+ self.bid64_add("4", "-4988.668E-20", "-9898999.9E-13", "[ebc32b1684b36bb3]", "20")
+ self.bid64_add("4", "[4ad96e65ff4b1f64]", "[6bba76db8b29d15c]", "[4ad96e65ff4b1f64]", "20")
+ self.bid64_add("4", "-5245998.82675298E20", "+8999998888899.8E-19", "[b332a335488f8bd4]", "20")
+ self.bid64_add("4", "+5292.22E-360", "-9454467.399689E335", "[f6a196c9bae62328]", "20")
+ self.bid64_add("4", "-55.568E-5", "+9868.E5", "[6c3b0ee4caa4aa4b]", "20")
+ self.bid64_add("4", "+55797.E5", "+97.786E-5", "[3113d2b524740bd2]", "20")
+ self.bid64_add("4", "[55e0000000000000]", "[0a20000000000000]", "[0a20000000000000]", "00")
+ self.bid64_add("4", "+566955856656678778.E18", "-988889.88898998989899E-12", "[3454246ef864bb84]", "20")
+ self.bid64_add("4", "+65695.E4", "-98.998E-5", "[30f756ece9d9f154]", "20")
+ self.bid64_add("4", "+65.767599878579869898E-66", "+8898.898999E-287", "[27d75d8742d96a43]", "20")
+ self.bid64_add("4", "+665886.975795E-3", "-3.7825797469566E13", "[b18d703c7a25e11b]", "20")
+ self.bid64_add("4", "+68879559987558.8E0", "+698898555.996E0", "[3198789f804b5c98]", "20")
+ self.bid64_add("4", "-754329993.87568436725E0", "-735437544799935588.E0", "[b21a20c3f8928d80]", "20")
+ self.bid64_add("4", "+82253794294537886.728E400", "-99.695987675688886589E400", "[7c00000000000000]", "01")
+ self.bid64_add("4", "-8.7878958998E398", "+78.87E386", "[7c00000000000000]", "01")
+ self.bid64_add("4", "+889988.89989989E-304", "-6924.22664874538522E206", "[ca18998c25be25a9]", "20")
+ self.bid64_add("4", "-88.99888E0", "+829344724243563.87434E0", "[31bd76d8a8d948bd]", "20")
+ self.bid64_add("4", "-8899.89998899E-326", "-0.1E152", "[c2c38d7ea4c68000]", "20")
+ self.bid64_add("4", "-898.889899998E0", "+494258438.536E0", "[30f18f3f02c819c8]", "20")
+ self.bid64_add("4", "-8988.998E0", "-9.68473665643883E0", "[b05ff84117f70037]", "20")
+ self.bid64_add("4", "+89.89889999898998E12", "+101111100011111.1101E-4", "[319ff12d4aed01a5]", "20")
+ self.bid64_add("4", "+89898989988889.99E397", "-98.9E397", "[7c00000000000000]", "01")
+ self.bid64_add("4", "+89989.E5", "+3.883E-5", "[311ff873adde8827]", "20")
+ self.bid64_add("4", "[8a00000000000000]", "[c6d4941d1256f680]", "[c6d4941d1256f680]", "00")
+ self.bid64_add("4", "-8.E5", "+273.7E3", "[b20000000000148f]", "00")
+ self.bid64_add("4", "-925255365.6432E-369", "+1.0110000E-116", "[2163977fc7de3000]", "20")
+ self.bid64_add("4", "-9.6658887796668E0", "+869785.8E0", "[309ee6915f13ff8b]", "20")
+ self.bid64_add("4", "-98696.677E264", "-10111.000001011111E-264", "[f45b1069154f4500]", "20")
+ self.bid64_add("4", "-98855.E3", "-8.5588E-5", "[ec331ecf53ed796f]", "20")
+ self.bid64_add("4", "+9.8989E-4", "+98998.E4", "[6c3b2bd0ce5916ab]", "20")
+ self.bid64_add("4", "+9989889898889889.99E0", "-8898.8888E0", "[6c737dc07ec49fdf]", "20")
+ self.bid64_add("4", "-9998.E5", "-97.588E-5", "[ec3b8520c677061f]", "20")
+ self.bid64_add("4", "[ae00000000000000]", "[497face7312d32d4]", "[497face7312d32d4]", "00")
+ self.bid64_add("4", "[b4b7313d0540c489]", "[a4c0000000000000]", "[b4b7313d0540c489]", "00")
+ self.bid64_add("4", "[d7e0000000000000]", "[58f1710d03bdb7a9]", "[58f1710d03bdb7a9]", "00")
+ self.bid64_add("4", "Infinity", "0", "[7800000000000000]", "00")
+ self.bid64_add("4", "-Infinity", "0", "[f800000000000000]", "00")
+ self.bid64_add("4", "Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("4", "QNaN", "Infinity", "[7c00000000000000]", "00")
+ self.bid64_add("4", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_add("4", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_add("4", "SNaN", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_add("4", "SNaN", "Infinity", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_add(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.adding(arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_add() {
+ self.bid128_add("0", "[0000000000000000,5dfecf59bad3acaa]", "[4014d000d4008a04,ffffffddfdfdfeff]", "[4014d000d4008a04ffffffddfdfdfeff]", "20")
+ self.bid128_add("0", "[0000000000000000,befffffff7fcff1e]", "[8000000000000000,cbedfff30fb57571]", "[80000000000000000cedfff317b87653]", "00")
+ self.bid128_add("0", "[0000000000000000,cfefffff1f5fb6eb]", "[4441ca6997b33fa3,a1f5f866809b3dc6]", "[4441ca6997b33fa3a1f5f866809b3dc6]", "20")
+ self.bid128_add("0", "[0000000000008000,004910c400000000]", "[5fe5f9ffd9ebcf7f,000404e2000600a0]", "[0000000000008000004910c400000000]", "00")
+ self.bid128_add("0", "[0000000400000001,8000060240234080]", "[0000000000000000,f77afdfffb7fefff]", "[0000000400000002777b04023ba3307f]", "00")
+ self.bid128_add("0", "[0000000800001000,e7f4747527f3fb0a]", "[0040010000000028,ebffffbeffddbf7f]", "[003c640000000ffc2fffe69bf29ecd9d]", "20")
+ self.bid128_add("0", "[0000004000200180,1122b18887a0e944]", "[8001040000000000,ffffffffffffffff]", "[800103bfffdffe80eedd4e77785f16bb]", "00")
+ self.bid128_add("0", "[0000020004010208,0010000001000001]", "[800300a040000000,0018680082802400]", "[8003006d0c664c98cce39b33b599bd9a]", "20")
+ self.bid128_add("0", "[0000064408a94080,ffffffff7fffffff]", "[8002888000800040,a00016a400020010]", "[800287df993be033b999b03da6686676]", "20")
+ self.bid128_add("0", "[0000910104000000,dffdf7ebffffff9f]", "[0030080000240060,6093740152912720]", "[002e5000016803c3c5c2881412a9121a]", "20")
+ self.bid128_add("0", "[0000c10800050400,0000000000000040]", "[0008000800000000,79ffffffeffeffdf]", "[0002328d999a1bdc8fffffc17c177f1e]", "20")
+ self.bid128_add("0", "[0001000828000002,fdfffffefffffdfb]", "[000128c044800204,2000200a40000000]", "[000237473e0ccd00b633366753333300]", "20")
+ self.bid128_add("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0002629b8c891b267182b613cccccccd]", "20")
+ self.bid128_add("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_add("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_add("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[0002000000000000,4e57c463086d76fc]", "[0000000000000000,75f7dfbf8b4127eb]", "[000000000000000385658b9ddf87cdc3]", "00")
+ self.bid128_add("0", "[0002025038800410,0100000000100000]", "[8000033800144c13,03c68221012c3f5e]", "[000013ea34ebdc8d06397ddeff73c0a2]", "00")
+ self.bid128_add("0", "[0002c47000040650,fff6fffdffdfffff]", "[0000040000000000,ac46ec75e0295a33]", "[0002c4d6666a6cb77797b13cfcb0ef6a]", "20")
+ self.bid128_add("0", "[0004200080040000,dbef7abfffd7bfff]", "[0000000000000000,7bfffffdfffebf9f]", "[0003400500280008a3c131e631a09320]", "20")
+ self.bid128_add("0", "[0004701090648021,72ad0c485e796963]", "[0000000000000000,0000020028140000]", "[000470109064802172ad0c4d7d9854e8]", "20")
+ self.bid128_add("0", "[0009000002080300,415686c8259c1f86]", "[8008081481000000,9642b65b40a018ca]", "[0008f7eb810802ffab13d06ce4fc06bc]", "00")
+ self.bid128_add("0", "[0010000000000000,fff7fbfeafffffdf]", "[6000c1d51b4e93c9,09bf3511b5ce6975]", "[00020000009891b8e8ddba77ec549980]", "00")
+ self.bid128_add("0", "[0010000008000400,c66e5f0e6e4c75e7]", "[80080a0c5017e616,0000000000000000]", "[800808d3cf7b87cec89edc4b75427090]", "00")
+ self.bid128_add("0", "[0010002200100802,2008001100ca2010]", "[0020000000000000,7d0409164401a0f3]", "[0010002202f92eeccda7af8a36ceb310]", "00")
+ self.bid128_add("0", "[0010240802042000,4000001000088004]", "[00108c244812a208,fffbdbfeaffdfdff]", "[0010b02c4a16c2093ffbdc0eb0067e03]", "00")
+ self.bid128_add("0", "[0018d00010482028,7ee3f3f9e2f8e01d]", "[00600082000084a0,c733567c3655897e]", "[005c32c80033cecdd00dc8853969b538]", "20")
+ self.bid128_add("0", "[0020828000000010,cf88020652208000]", "[0000000000000000,0010000000220000]", "[0020828000000010cf88020652208000]", "20")
+ self.bid128_add("0", "[0022100020000001,f000051104440000]", "[0000000000010000,2d2100c91840cb06]", "[0020a00140000013600032aa31dcadeb]", "20")
+ self.bid128_add("0", "[0040000000000010,e9ff78174c3776f1]", "[0000000000000000,56f2fcf9ca1139ef]", "[002699d51a0ab0775709062b0fa8a001]", "20")
+ self.bid128_add("0", "[0042c3060c120840,030a000039015120]", "[000204840079605d,022a424000209030]", "[0042c3060c120840030a000039015121]", "20")
+ self.bid128_add("0", "[0046000000000000,0000300004000001]", "[0009000080000000,a9250288def74442]", "[001f04357757ab0fe6c3bad8135cd874]", "20")
+ self.bid128_add("0", "[01090012e0004000,77d8fde799df72c7]", "[010be56d4769821f,269f45de0b5c11b2]", "[010c331a7a056eeea3c7db721ed5ae70]", "20")
+ self.bid128_add("0", "+0.1E2453", "-276.64595434738648E2415", "[4326314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_add("0", "[0218002054140810,7ddcf0a7626a78b1]", "[1506002a0a00a840,bd0ccd70841ed9a5]", "[1500a43712913ce27a027f8418822c88]", "20")
+ self.bid128_add("0", "[0fd9fefad9460f22,bf188cb59cc2e86f]", "[104200c084a00007,d5efd0836b76cfd4]", "[103e4b33ce80030f91ad7355fa692ed0]", "00")
+ self.bid128_add("0", "0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "+100000000000.000000000011100000E535", "-10.E579", "[b485ed09bead87c0378d8e63ffffffff]", "20")
+ self.bid128_add("0", "+100000.00000000E6107", "+5695567.598669978987E6134", "[5ff718d02b771ae1f14f07d33b7906a0]", "00")
+ self.bid128_add("0", "+1001000000000000000000.00000E3899", "-0.001E3958", "[cee4314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_add("0", "+1.00101011001100101E6131", "-98697989675958559.6755E6101", "[5fe4315a861bf878b4305be78d569c44]", "20")
+ self.bid128_add("0", "-1001100.E6103", "+76675966976599977.8786866E6115", "[5fee0000f7c0df92ac3e3aec4c25c4b4]", "00")
+ self.bid128_add("0", "-1010000000000100.E-6008", "-8.E-6083", "[812c31cbfe02adbb651a045de3100000]", "20")
+ self.bid128_add("0", "+101001100000101.000000E6138", "-7695957767658598867966685688.99E6120", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "+101010111000001011101000100100000010.E6111", "-75.59599E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "-10.11000000110000E6142", "-1010000.10000000E6100", "[dffc31d89d2f61d15c703f2068c00000]", "20")
+ self.bid128_add("0", "-1011.000011100100000001000110E-6050", "-899998998989888989988.888898898E-6112", "[80c031d89d38790fe039a2b1dfc38780]", "20")
+ self.bid128_add("0", "+1100111110010000101100.00111E-6148", "-0.E-6012", "[002e0000005affc246f94b02529cdbef]", "00")
+ self.bid128_add("0", "+11011000100110.0000001001001111E-6070", "-111100101.001E-6037", "[80e436c6cde001d19539cedba43e51e2]", "20")
+ self.bid128_add("0", "+1.10110010100000011010100000E6117", "-0.E6139", "[5fd60000005b14b39baf21a04e72cb20]", "00")
+ self.bid128_add("0", "-111110011011.0110000100E6105", "+11000100110.00000110010010E6121", "[5fe4363c140ab6a4209184fd9dc6d2d0]", "20")
+ self.bid128_add("0", "[1392280b19d70c0b,2041039000096101]", "[f65addcfbf5fa71d,e3dfffffb7fdfebf]", "[1392280b19d70c0b2041039000096101]", "00")
+ self.bid128_add("0", "[1b89600501027080,31000a54db202481]", "[2000000000000000,05001420c300c265]", "[1fe0b1a58745a3eeb187f95659250000]", "20")
+ self.bid128_add("0", "[1c4dddec6a7a1c60,fb50c15771b095e3]", "[7c000fea63a9224b,3d4501def3959458]", "[7c000fea63a9224b3d4501def3959458]", "00")
+ self.bid128_add("0", "[1e5fffaa4f778d66,8638a51f121c7501]", "[2f5143fc06ccef43,fe74ffcbfb1bf955]", "[2f5143fc06ccef43fe74ffcbfb1bf955]", "00")
+ self.bid128_add("0", "1E+6110", "-1.000000000000000000000000000000000E+6144", "[dffded09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_add("0", "[2002000108002000,fffbfffbfffeffff]", "[9ffddf5a3d0bae3a,feeffefff6fba9ec]", "[9ffddb52fc8eaa530e900e9ffae3add4]", "00")
+ self.bid128_add("0", "-263422633844658.928332597223469897E6134", "+747.E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "[2840000000000000,0000000000000000]", "[59364b22e2d719b8,fc26061748ffb476]", "[59364b22e2d719b8fc26061748ffb476]", "00")
+ self.bid128_add("0", "[287d9153bfab1034,ffffffffffffffff]", "[2838ffa84c36170b,48d13d861726ad32]", "[287d9153bfab10350000000000000000]", "20")
+ self.bid128_add("0", "+2997.653489948889292735459468782643377E6108", "+9278673824.6482453738329E6133", "[5ffbc9795419f3c89a4a228d118ea92c]", "20")
+ self.bid128_add("0", "[2ad6d9d6d46be91c,a79f9078ce846e2a]", "[5a231792da18902d,fa74ba0bb2f2a9d2]", "[5a231792da18902dfa74ba0bb2f2a9d2]", "20")
+ self.bid128_add("0", "[2b4ed27250ae5929,81da062276e0d757]", "[fe000aca05f2778b,5f0172fb73aa63b4]", "[fc000aca05f2778b5f0172fb73aa63b4]", "01")
+ self.bid128_add("0", "+3624659768534336587.96423867374255653E6150", "-10010001111100011101010101110.0110000011E6141", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "[38a8000000000000,0000000000000000]", "[5489c7f28d0c759c,797749662afbfd8c]", "[5489c7f28d0c759c797749662afbfd8c]", "00")
+ self.bid128_add("0", "-394.678E6139", "+55.3696E6105", "[dff8c2975dfa0314f5a1f65160000000]", "20")
+ self.bid128_add("0", "[3995cbcb047d4fa7,ba8b599a2b9a29b0]", "[b954de8830f75de3,15dba9afc74d2e9d]", "[3995cbcb047d4fa7ba8b599a2b9a2983]", "20")
+ self.bid128_add("0", "[3ace37c3c58167a3,deeb321af15fa934]", "[fbbfc1edffbfaed3,156f000680a4da4d]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[4000000000000000,0000000400880000]", "[bcfd37a9d788c874,0000000000000000]", "[3fd254bf4b08ff5b89d2f40000000000]", "20")
+ self.bid128_add("0", "[4010010181c34860,fdff7fffff6fbffd]", "[bfefdffffffef9df,47110206edc04446]", "[400c6496b04845e2b0b25ad84a69a9a1]", "20")
+ self.bid128_add("0", "[440240000b453910,ba32b0a371116c10]", "[c41956990f59b903,d01704083ce3e1d7]", "[c41956990f59b6441f9ee97f259182d9]", "20")
+ self.bid128_add("0", "[5427fa3453dd57e0,2d7637578567237b]", "[753212496f15732f,b7c2f13c3f832325]", "[54260000000000000000000000000000]", "00")
+ self.bid128_add("0", "+55689855855588879577565566.7587E6118", "+9988989988.888898899999E6135", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("0", "-5.995688758689789876988877865667857E6127", "-8989899999.E6126", "[dfedbb3c7dbd8ef718864a2b3a96360b]", "20")
+ self.bid128_add("0", "[5bd3458aeeff6752,5c9f9a12f343e352]", "[d00e000000000000,0000000000000000]", "[5bd3458aeeff67525c9f9a12f343e352]", "00")
+ self.bid128_add("0", "[5bfa8cbdca7fcb87,648dc41959d132d0]", "[0000000000000000,ff39bfddedf3ee57]", "[5bfa8cbdca7fcb87648dc41959d132d0]", "20")
+ self.bid128_add("0", "[5d96fd0743f21d05,b7a1ffdfb7773fef]", "[0000000000000000,0001041400020049]", "[5d96fd0743f21d05b7a1ffdfb7773fef]", "20")
+ self.bid128_add("0", "[5f1e000000000000,0000000000000000]", "[d74b90398df0d280,0b222a8e8514f3ee]", "[d74b90398df0d2800b222a8e8514f3ee]", "00")
+ self.bid128_add("0", "[60c576c216be289c,96014a8de04ea49c]", "[aa2405ca2fd85dcb,fe1240c113db4074]", "[aa2239e5de73a9f7ecb6878ac6908488]", "00")
+ self.bid128_add("0", "[60cdd8bdc022ddeb,f3d7fffb6ffdddbf]", "[1800000000000000,0201080000000240]", "[17e047328809853f57efa17b72400000]", "00")
+ self.bid128_add("0", "+6667779.8796559657568566E6121", "-1.E6129", "[dff200000000c5a37f76f1936e1a76ca]", "00")
+ self.bid128_add("0", "-67742893945653349875463748543548.9E-6184", "+1100.0100110001101010E-6045", "[00ca363c140ab6aa266b6f4aea488000]", "20")
+ self.bid128_add("0", "-68488695427246.927E6129", "-999899889999998899988988988888.9E6115", "[f8000000000000000000000000000000]", "28")
+ self.bid128_add("0", "+6875897.879876979566658996675E6133", "+8.464777979989329969757976492E6138", "[5ffe0000f985fe9359e4745fb3d1594a]", "00")
+ self.bid128_add("0", "[6db0895fbd218a59,479097715441cb4b]", "[f7efffdffffffff6,c6a9b3d5b6ebfba9]", "[36c20000000000000000000000000000]", "00")
+ self.bid128_add("0", "[73f27f9b3729b021,42cfe66b6de3fd07]", "[1b7b8a5727f02fa8,e5a78e7d04a3355c]", "[1b7b8a5727f02fa8e5a78e7d04a3355c]", "00")
+ self.bid128_add("0", "+7597756576.869587795965598779879969E-6070", "-8.E-6021", "[80f58a6e32246c99c60ad85000000000]", "20")
+ self.bid128_add("0", "[796032cbd6307a4a,f0cf042fc41e34c2]", "[fb7bdb7ffbe77ffb,d5fdff9afcdfaa4d]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[7c36d997f8b0b059,7ae13e777a16f050]", "[8bb6f1a6e3a3bd1a,e424521a46fdc6d1]", "[7c001997f8b0b0597ae13e777a16f050]", "00")
+ self.bid128_add("0", "[7d10b0e971a5f461,4d85007ab72ecfeb]", "[fffbfffffedacced,7ffcfbfffbffebdd]", "[7c0030e971a5f4614d85007ab72ecfeb]", "01")
+ self.bid128_add("0", "[7e0006dd5267cd43,7cd23844b6d6a4ea]", "[9f65abe576e0df8e,4506a13d63599947]", "[7c0006dd5267cd437cd23844b6d6a4ea]", "01")
+ self.bid128_add("0", "[7e00149c7f5e6b77,3ff5188ebbb4795a]", "[37fe000000000000,0000000000000000]", "[7c00149c7f5e6b773ff5188ebbb4795a]", "01")
+ self.bid128_add("0", "[7e002cf4e6e4ac9d,ab55920b2c709cec]", "[7800000000000000,0000000000000000]", "[7c002cf4e6e4ac9dab55920b2c709cec]", "01")
+ self.bid128_add("0", "[7ffff7ffffffffff,9de20851b887be40]", "[960f4d1c81ebee82,a07b5e241da76150]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "[8000015004000002,ffffffffffffcfff]", "[0040830502000080,553debe2f9cc3fd5]", "[0040830502000080553debe2f9cc3fd5]", "20")
+ self.bid128_add("0", "[8000400080402000,ffe7fffffffbffff]", "[0000110a21084001,0840000200000800]", "[80002ef65f37dffff7a7fffdfffbf7ff]", "00")
+ self.bid128_add("0", "[80022000095c0190,0410200010660020]", "[0000010008008009,05a7b07ad6480e74]", "[80013f0055978f9722f98f85cdb3f2cc]", "00")
+ self.bid128_add("0", "[8010000000800111,8498563480440020]", "[0000489100040120,9a1b9d433d9f9e78]", "[8002450a2fd3ed30480a760e2082d9c1]", "20")
+ self.bid128_add("0", "[80c4406dc0588060,b2fdbf3bdb5ff6dd]", "[00c00898001a2c83,840d29ad07020d26]", "[80c44057c0583d5f624f890e9b4e0618]", "20")
+ self.bid128_add("0", "[8120010573c46493,016006c040d09002]", "[e047ff59432e7f32,ff7ff7bfdffaafb6]", "[811e0a3685abedbe0dc043828825a014]", "00")
+ self.bid128_add("0", "[84848448bb86cdea,47a3f05555554266]", "[fe0016d3cfe15dc1,3ab1a1ea168bccd5]", "[fc0016d3cfe15dc13ab1a1ea168bccd5]", "01")
+ self.bid128_add("0", "-86.96E-6051", "+6262839768259358968798.482E-6125", "[80bbacbef36ec2d953f1ad2e00000000]", "20")
+ self.bid128_add("0", "-88.E6128", "+1001100110110.E6131", "[5ffe04ef90e43b1338b16e0304700000]", "00")
+ self.bid128_add("0", "-89.689988889E-6076", "-9899.98898989888988898E-6079", "[80a000000000021be0dbab0ddddd0ee2]", "00")
+ self.bid128_add("0", "+89797785599559975.97E6141", "-10011100011110110.1111010001E6132", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "-8989899.889889998E6139", "+1010010011101.001000010E6140", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "+8999.88999E4401", "-10.0E4437", "[d2a9ed09bead87c0378d8e63fffffff7]", "20")
+ self.bid128_add("0", "+8999898889.898889988998988899899988E-6113", "-98.E-6015", "[8103e32d63d305092c33af6200000000]", "20")
+ self.bid128_add("0", "+899999.899988899889999988888E3058", "-0.001000000000000E3101", "[c831ed09bead87c0378d8e63ffffffff]", "20")
+ self.bid128_add("0", "[8b71ea085f350783,80db0ca76e5b0d32]", "[f800000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[8cc2400a6777e47d,f08a14c25761bb67]", "[ff6bfffffff7fffe,3ddfbdf9bbfd7fe7]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_add("0", "[9022304806028040,8a92a2103e3c0106]", "[106411e5c230c10c,0221008000010020]", "[1062b2f995e78a78154a0500000a0136]", "20")
+ self.bid128_add("0", "-911011001111110.01111E-6035", "+7757.85756877599677796689977E-6050", "[80f5c129c10b6a95e248c238835bfeb0]", "20")
+ self.bid128_add("0", "[9456000000000000,0000000000000000]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_add("0", "-9596859585978896957666.8999678658685898E6123", "-855789958.556566566858E6136", "[f8000000000000000000000000000000]", "28")
+ self.bid128_add("0", "-986.7998E6137", "-28399226863623.4336534472E6122", "[dffe00013edc83f35bce6e5a0186fdd0]", "00")
+ self.bid128_add("0", "-9888988988.8899888988E6150", "+88887766666797.9757555E6150", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "[988b7659e5f6fef5,bbefd56f4df6eadf]", "[18d094c77aae85e6,097015184038a053]", "[18d094c77aae85e6097015184038a053]", "20")
+ self.bid128_add("0", "+98988.E6140", "+5758859.7585E6137", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("0", "+989.89E6147", "-11011101001010.001110000001E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "+98998899988998.899898899998999E6141", "-99898899999898899998999998988899.E6130", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "+9976878.E6138", "+688895688756979657657.6957987659886589697E6123", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("0", "+99888989988898888988999.989998988E-5834", "-10000.000E-5782", "[82d9ed09bead87c0378d8e63fffffff6]", "20")
+ self.bid128_add("0", "-99898888.8899899989989999988898989888E6106", "-58975778987588776588859.6877656E6124", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("0", "+9989989898899.999889E6132", "+10100000010000110100111011.1010101101E6119", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("0", "+9.9E6144", "+1100010.111001111011011101010E6138", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("0", "[9cd8000000000000,0000000000000000]", "[16909df1f48b315f,9e82e8740fb93bfd]", "[16909df1f48b315f9e82e8740fb93bfd]", "00")
+ self.bid128_add("0", "-9.E-6155", "-958896965.958776968777978E-6196", "[80000000000001e7e4171bf4d3a00000]", "00")
+ self.bid128_add("0", "[a1c4000000000000,0000000000000000]", "[5522c0c11492e428,f7d822a92f1a5ef3]", "[5522c0c11492e428f7d822a92f1a5ef3]", "00")
+ self.bid128_add("0", "[a5675120625b0a35,52d5eeecb6df98df]", "[df69ff7fefbbff77,0440008082050202]", "[a5675120625b0a3552d5eeecb6df98df]", "00")
+ self.bid128_add("0", "[a9481e81f1ac7df5,96dcd9baa6738f4a]", "[fe000ded30995e2c,2a18fde4c3b4c242]", "[fc000ded30995e2c2a18fde4c3b4c242]", "01")
+ self.bid128_add("0", "[ab5b7f8969162c5f,9951aecf3b28ba61]", "[fe001538549b96bc,d8bac0361145a524]", "[fc001538549b96bcd8bac0361145a524]", "01")
+ self.bid128_add("0", "[bee1c676f1afe3cf,09f61de91e262588]", "[561ceab945062f0a,24c48dc78dbedb6a]", "[561ceab945062f0a24c48dc78dbedb6a]", "20")
+ self.bid128_add("0", "[bffffffffffffff7,f08986080004d1cd]", "[4000004200080002,7ffffdffffffffff]", "[3ffe029400500018ffffebfffffffff6]", "00")
+ self.bid128_add("0", "[c000000000004400,38468869f58dd715]", "[6dd892ebafa7e61e,fbfffff7fefffffe]", "[bfec9e53ab96d2bd5dba24877575b400]", "00")
+ self.bid128_add("0", "[c0c47de8bb8a81ca,a1571e2bdc47b401]", "[4081000004020000,0000205500000000]", "[c0c47de8bb8a81caa1571e2bdc47b400]", "20")
+ self.bid128_add("0", "[c22c376ce5daf960,bd3e3776d9e9504a]", "[0006110100018010,efdf793269fddbd4]", "[c22c376ce5daf960bd3e3776d9e9504a]", "20")
+ self.bid128_add("0", "[d75c000000000000,0000000000000000]", "[132efa1ddf2a7299,1ec77faa102b45ca]", "[132efa1ddf2a72991ec77faa102b45ca]", "00")
+ self.bid128_add("0", "[db38f659937507f2,52e4eff58d12043f]", "[7e7116ffb6ec8cf7,09108044000080c5]", "[7c0016ffb6ec8cf709108044000080c5]", "01")
+ self.bid128_add("0", "[dcafa178675629f3,f3c9d62ab84aa7c4]", "[5cd45cf7c92aae7d,48c5a096fa24e498]", "[5cd45cf7c92aae7d48c29e7e3072303b]", "20")
+ self.bid128_add("0", "[dfff7ffef7f2ffff,8008020011020080]", "[dfff6f5eae73ffef,8040001401410208]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_add("0", "[e7f4dfff7b6e9c42,ff7dfffd2fff7fff]", "[4800000000000000,0000043484020008]", "[47d6e3f607d6ce8ac923ab6ef5000000]", "00")
+ self.bid128_add("0", "[f5ef6c66d631163c,68f56fcf4f7dad4d]", "[b623ff3fb2fbfd74,5b07b2a2f292df1e]", "[b6220000000000000000000000000000]", "00")
+ self.bid128_add("0", "[f800000000000000,0000000000000000]", "[2ca1915e9c65355f,6a9dd26fcb0633ae]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[fbffff7dfdfffff5,bfecfa9fff6ef7fe]", "[fa8cecc783de4f64,f014aefd02ac1108]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("0", "[fe00000000000000,0000000000000000]", "[1f0cabc46692f05e,44e49d8f9551660c]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_add("0", "Infinity", "-0", "[78000000000000000000000000000000]", "00")
+ self.bid128_add("0", "-Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "Infinity", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "SNaN", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("0", "SNaN", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0002629b8c891b267182b613cccccccc]", "20")
+ self.bid128_add("1", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_add("1", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_add("1", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_add("1", "0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("1", "+100000.00000000E6107", "+5695567.598669978987E6134", "[5ff718d02b771ae1f14f07d33b7906a0]", "00")
+ self.bid128_add("1", "+1.00101011001100101E6131", "-98697989675958559.6755E6101", "[5fe4315a861bf878b4305be78d569c44]", "20")
+ self.bid128_add("1", "-1001100.E6103", "+76675966976599977.8786866E6115", "[5fee0000f7c0df92ac3e3aec4c25c4b4]", "00")
+ self.bid128_add("1", "-1010000000000100.E-6008", "-8.E-6083", "[812c31cbfe02adbb651a045de3100001]", "20")
+ self.bid128_add("1", "+101001100000101.000000E6138", "-7695957767658598867966685688.99E6120", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "+101010111000001011101000100100000010.E6111", "-75.59599E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "-10.11000000110000E6142", "-1010000.10000000E6100", "[dffc31d89d2f61d15c703f2068c00001]", "20")
+ self.bid128_add("1", "-1011.000011100100000001000110E-6050", "-899998998989888989988.888898898E-6112", "[80c031d89d38790fe039a2b1dfc38781]", "20")
+ self.bid128_add("1", "+1100111110010000101100.00111E-6148", "-0.E-6012", "[002e0000005affc246f94b02529cdbef]", "00")
+ self.bid128_add("1", "+11011000100110.0000001001001111E-6070", "-111100101.001E-6037", "[80e436c6cde001d19539cedba43e51e2]", "20")
+ self.bid128_add("1", "+1.10110010100000011010100000E6117", "-0.E6139", "[5fd60000005b14b39baf21a04e72cb20]", "00")
+ self.bid128_add("1", "-111110011011.0110000100E6105", "+11000100110.00000110010010E6121", "[5fe4363c140ab6a4209184fd9dc6d2cf]", "20")
+ self.bid128_add("1", "[1c4dddec6a7a1c60,fb50c15771b095e3]", "[7c000fea63a9224b,3d4501def3959458]", "[7c000fea63a9224b3d4501def3959458]", "00")
+ self.bid128_add("1", "-263422633844658.928332597223469897E6134", "+747.E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "[2840000000000000,0000000000000000]", "[59364b22e2d719b8,fc26061748ffb476]", "[59364b22e2d719b8fc26061748ffb476]", "00")
+ self.bid128_add("1", "+2997.653489948889292735459468782643377E6108", "+9278673824.6482453738329E6133", "[5ffbc9795419f3c89a4a228d118ea92b]", "20")
+ self.bid128_add("1", "[2b4ed27250ae5929,81da062276e0d757]", "[fe000aca05f2778b,5f0172fb73aa63b4]", "[fc000aca05f2778b5f0172fb73aa63b4]", "01")
+ self.bid128_add("1", "+3624659768534336587.96423867374255653E6150", "-10010001111100011101010101110.0110000011E6141", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "[38a8000000000000,0000000000000000]", "[5489c7f28d0c759c,797749662afbfd8c]", "[5489c7f28d0c759c797749662afbfd8c]", "00")
+ self.bid128_add("1", "-394.678E6139", "+55.3696E6105", "[dff8c2975dfa0314f5a1f65160000000]", "20")
+ self.bid128_add("1", "+55689855855588879577565566.7587E6118", "+9988989988.888898899999E6135", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("1", "-5.995688758689789876988877865667857E6127", "-8989899999.E6126", "[dfedbb3c7dbd8ef718864a2b3a96360b]", "20")
+ self.bid128_add("1", "[5bd3458aeeff6752,5c9f9a12f343e352]", "[d00e000000000000,0000000000000000]", "[5bd3458aeeff67525c9f9a12f343e352]", "00")
+ self.bid128_add("1", "[5f1e000000000000,0000000000000000]", "[d74b90398df0d280,0b222a8e8514f3ee]", "[d74b90398df0d2800b222a8e8514f3ee]", "00")
+ self.bid128_add("1", "+6667779.8796559657568566E6121", "-1.E6129", "[dff200000000c5a37f76f1936e1a76ca]", "00")
+ self.bid128_add("1", "-67742893945653349875463748543548.9E-6184", "+1100.0100110001101010E-6045", "[00ca363c140ab6aa266b6f4aea487fff]", "20")
+ self.bid128_add("1", "-68488695427246.927E6129", "-999899889999998899988988988888.9E6115", "[f8000000000000000000000000000000]", "28")
+ self.bid128_add("1", "+6875897.879876979566658996675E6133", "+8.464777979989329969757976492E6138", "[5ffe0000f985fe9359e4745fb3d1594a]", "00")
+ self.bid128_add("1", "[6db0895fbd218a59,479097715441cb4b]", "[f7efffdffffffff6,c6a9b3d5b6ebfba9]", "[b6c20000000000000000000000000000]", "00")
+ self.bid128_add("1", "+7597756576.869587795965598779879969E-6070", "-8.E-6021", "[80f58a6e32246c99c60ad85000000000]", "20")
+ self.bid128_add("1", "[7e0006dd5267cd43,7cd23844b6d6a4ea]", "[9f65abe576e0df8e,4506a13d63599947]", "[7c0006dd5267cd437cd23844b6d6a4ea]", "01")
+ self.bid128_add("1", "[7e00149c7f5e6b77,3ff5188ebbb4795a]", "[37fe000000000000,0000000000000000]", "[7c00149c7f5e6b773ff5188ebbb4795a]", "01")
+ self.bid128_add("1", "[7e002cf4e6e4ac9d,ab55920b2c709cec]", "[7800000000000000,0000000000000000]", "[7c002cf4e6e4ac9dab55920b2c709cec]", "01")
+ self.bid128_add("1", "[84848448bb86cdea,47a3f05555554266]", "[fe0016d3cfe15dc1,3ab1a1ea168bccd5]", "[fc0016d3cfe15dc13ab1a1ea168bccd5]", "01")
+ self.bid128_add("1", "-86.96E-6051", "+6262839768259358968798.482E-6125", "[80bbacbef36ec2d953f1ad2e00000000]", "20")
+ self.bid128_add("1", "-88.E6128", "+1001100110110.E6131", "[5ffe04ef90e43b1338b16e0304700000]", "00")
+ self.bid128_add("1", "-89.689988889E-6076", "-9899.98898989888988898E-6079", "[80a000000000021be0dbab0ddddd0ee2]", "00")
+ self.bid128_add("1", "+89797785599559975.97E6141", "-10011100011110110.1111010001E6132", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "-8989899.889889998E6139", "+1010010011101.001000010E6140", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "+8999898889.898889988998988899899988E-6113", "-98.E-6015", "[8103e32d63d305092c33af6200000000]", "20")
+ self.bid128_add("1", "+899999.899988899889999988888E3058", "-0.001000000000000E3101", "[c832314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_add("1", "[8b71ea085f350783,80db0ca76e5b0d32]", "[f800000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("1", "-911011001111110.01111E-6035", "+7757.85756877599677796689977E-6050", "[80f5c129c10b6a95e248c238835bfeb1]", "20")
+ self.bid128_add("1", "[9456000000000000,0000000000000000]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_add("1", "-9596859585978896957666.8999678658685898E6123", "-855789958.556566566858E6136", "[f8000000000000000000000000000000]", "28")
+ self.bid128_add("1", "-986.7998E6137", "-28399226863623.4336534472E6122", "[dffe00013edc83f35bce6e5a0186fdd0]", "00")
+ self.bid128_add("1", "-9888988988.8899888988E6150", "+88887766666797.9757555E6150", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "+98988.E6140", "+5758859.7585E6137", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("1", "+989.89E6147", "-11011101001010.001110000001E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "+98998899988998.899898899998999E6141", "-99898899999898899998999998988899.E6130", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "+9976878.E6138", "+688895688756979657657.6957987659886589697E6123", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("1", "-99898888.8899899989989999988898989888E6106", "-58975778987588776588859.6877656E6124", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("1", "+9989989898899.999889E6132", "+10100000010000110100111011.1010101101E6119", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("1", "+9.9E6144", "+1100010.111001111011011101010E6138", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("1", "[9cd8000000000000,0000000000000000]", "[16909df1f48b315f,9e82e8740fb93bfd]", "[16909df1f48b315f9e82e8740fb93bfd]", "00")
+ self.bid128_add("1", "[a1c4000000000000,0000000000000000]", "[5522c0c11492e428,f7d822a92f1a5ef3]", "[5522c0c11492e428f7d822a92f1a5ef3]", "00")
+ self.bid128_add("1", "[a9481e81f1ac7df5,96dcd9baa6738f4a]", "[fe000ded30995e2c,2a18fde4c3b4c242]", "[fc000ded30995e2c2a18fde4c3b4c242]", "01")
+ self.bid128_add("1", "[ab5b7f8969162c5f,9951aecf3b28ba61]", "[fe001538549b96bc,d8bac0361145a524]", "[fc001538549b96bcd8bac0361145a524]", "01")
+ self.bid128_add("1", "[b4aa76100d8209a4,1e2b14bb6e5f767f]", "[3c471d89c66add61,3f08dd78ee62f56f]", "[3c471d89c66add613f08dd78ee62f56e]", "20")
+ self.bid128_add("1", "[bee1c676f1afe3cf,09f61de91e262588]", "[561ceab945062f0a,24c48dc78dbedb6a]", "[561ceab945062f0a24c48dc78dbedb69]", "20")
+ self.bid128_add("1", "[c884367ed0de6951,ffffffffffffffff]", "[8c811be268d6f9a0,5916aa0ba9e7dc22]", "[c884367ed0de69520000000000000000]", "20")
+ self.bid128_add("1", "[d75c000000000000,0000000000000000]", "[132efa1ddf2a7299,1ec77faa102b45ca]", "[132efa1ddf2a72991ec77faa102b45ca]", "00")
+ self.bid128_add("1", "[f800000000000000,0000000000000000]", "[2ca1915e9c65355f,6a9dd26fcb0633ae]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("1", "[fe00000000000000,0000000000000000]", "[1f0cabc46692f05e,44e49d8f9551660c]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_add("1", "Infinity", "-0", "[78000000000000000000000000000000]", "00")
+ self.bid128_add("1", "-Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("1", "Infinity", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("1", "SNaN", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "SNaN", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "[00008420a0000200,0a80008002a35040]", "[8045c945a31d6f32,8cb7a8b66cfac3fd]", "[8045c945a31d6f328cb7a8b66cfac3fc]", "20")
+ self.bid128_add("2", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0002629b8c891b267182b613cccccccd]", "20")
+ self.bid128_add("2", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_add("2", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_add("2", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_add("2", "[0018d00010482028,7ee3f3f9e2f8e01d]", "[00600082000084a0,c733567c3655897e]", "[005c32c80033cecdd00dc8853969b539]", "20")
+ self.bid128_add("2", "0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("2", "+100000.00000000E6107", "+5695567.598669978987E6134", "[5ff718d02b771ae1f14f07d33b7906a0]", "00")
+ self.bid128_add("2", "+1.00101011001100101E6131", "-98697989675958559.6755E6101", "[5fe4315a861bf878b4305be78d569c45]", "20")
+ self.bid128_add("2", "-1001100.E6103", "+76675966976599977.8786866E6115", "[5fee0000f7c0df92ac3e3aec4c25c4b4]", "00")
+ self.bid128_add("2", "-1010000000000100.E-6008", "-8.E-6083", "[812c31cbfe02adbb651a045de3100000]", "20")
+ self.bid128_add("2", "+101001100000101.000000E6138", "-7695957767658598867966685688.99E6120", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "+101010111000001011101000100100000010.E6111", "-75.59599E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "-10.11000000110000E6142", "-1010000.10000000E6100", "[dffc31d89d2f61d15c703f2068c00000]", "20")
+ self.bid128_add("2", "-1011.000011100100000001000110E-6050", "-899998998989888989988.888898898E-6112", "[80c031d89d38790fe039a2b1dfc38780]", "20")
+ self.bid128_add("2", "+1100111110010000101100.00111E-6148", "-0.E-6012", "[002e0000005affc246f94b02529cdbef]", "00")
+ self.bid128_add("2", "+11011000100110.0000001001001111E-6070", "-111100101.001E-6037", "[80e436c6cde001d19539cedba43e51e1]", "20")
+ self.bid128_add("2", "+1.10110010100000011010100000E6117", "-0.E6139", "[5fd60000005b14b39baf21a04e72cb20]", "00")
+ self.bid128_add("2", "-111110011011.0110000100E6105", "+11000100110.00000110010010E6121", "[5fe4363c140ab6a4209184fd9dc6d2d0]", "20")
+ self.bid128_add("2", "[1c4dddec6a7a1c60,fb50c15771b095e3]", "[7c000fea63a9224b,3d4501def3959458]", "[7c000fea63a9224b3d4501def3959458]", "00")
+ self.bid128_add("2", "1E+367", "9.999999999999999999999999999999999E+6144", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("2", "1E+6110", "9.999999999999999999999999999999999E+6144", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("2", "-263422633844658.928332597223469897E6134", "+747.E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "[2840000000000000,0000000000000000]", "[59364b22e2d719b8,fc26061748ffb476]", "[59364b22e2d719b8fc26061748ffb476]", "00")
+ self.bid128_add("2", "+2997.653489948889292735459468782643377E6108", "+9278673824.6482453738329E6133", "[5ffbc9795419f3c89a4a228d118ea92c]", "20")
+ self.bid128_add("2", "[2ad6d9d6d46be91c,a79f9078ce846e2a]", "[5a231792da18902d,fa74ba0bb2f2a9d2]", "[5a231792da18902dfa74ba0bb2f2a9d3]", "20")
+ self.bid128_add("2", "[2b4ed27250ae5929,81da062276e0d757]", "[fe000aca05f2778b,5f0172fb73aa63b4]", "[fc000aca05f2778b5f0172fb73aa63b4]", "01")
+ self.bid128_add("2", "+3624659768534336587.96423867374255653E6150", "-10010001111100011101010101110.0110000011E6141", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "[38a8000000000000,0000000000000000]", "[5489c7f28d0c759c,797749662afbfd8c]", "[5489c7f28d0c759c797749662afbfd8c]", "00")
+ self.bid128_add("2", "-394.678E6139", "+55.3696E6105", "[dff8c2975dfa0314f5a1f6515fffffff]", "20")
+ self.bid128_add("2", "[42425fc86bc44103,60dac4d2074b5f1e]", "[4286719aa03a2cb2,ffffffffffffffff]", "[4286719aa03a2cb30000000000000000]", "20")
+ self.bid128_add("2", "+55689855855588879577565566.7587E6118", "+9988989988.888898899999E6135", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("2", "-5.995688758689789876988877865667857E6127", "-8989899999.E6126", "[dfedbb3c7dbd8ef718864a2b3a96360a]", "20")
+ self.bid128_add("2", "[5bd3458aeeff6752,5c9f9a12f343e352]", "[d00e000000000000,0000000000000000]", "[5bd3458aeeff67525c9f9a12f343e352]", "00")
+ self.bid128_add("2", "[5f1e000000000000,0000000000000000]", "[d74b90398df0d280,0b222a8e8514f3ee]", "[d74b90398df0d2800b222a8e8514f3ee]", "00")
+ self.bid128_add("2", "+6667779.8796559657568566E6121", "-1.E6129", "[dff200000000c5a37f76f1936e1a76ca]", "00")
+ self.bid128_add("2", "-67742893945653349875463748543548.9E-6184", "+1100.0100110001101010E-6045", "[00ca363c140ab6aa266b6f4aea488000]", "20")
+ self.bid128_add("2", "-68488695427246.927E6129", "-999899889999998899988988988888.9E6115", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("2", "+6875897.879876979566658996675E6133", "+8.464777979989329969757976492E6138", "[5ffe0000f985fe9359e4745fb3d1594a]", "00")
+ self.bid128_add("2", "+7597756576.869587795965598779879969E-6070", "-8.E-6021", "[80f58a6e32246c99c60ad84fffffffff]", "20")
+ self.bid128_add("2", "[7e0006dd5267cd43,7cd23844b6d6a4ea]", "[9f65abe576e0df8e,4506a13d63599947]", "[7c0006dd5267cd437cd23844b6d6a4ea]", "01")
+ self.bid128_add("2", "[7e00149c7f5e6b77,3ff5188ebbb4795a]", "[37fe000000000000,0000000000000000]", "[7c00149c7f5e6b773ff5188ebbb4795a]", "01")
+ self.bid128_add("2", "[7e002cf4e6e4ac9d,ab55920b2c709cec]", "[7800000000000000,0000000000000000]", "[7c002cf4e6e4ac9dab55920b2c709cec]", "01")
+ self.bid128_add("2", "[80236f1181464c67,5f86f5a3d472ea30]", "[0000000000000000,008c865000000001]", "[80236f1181464c675f86f5a3d472ea2f]", "20")
+ self.bid128_add("2", "[84848448bb86cdea,47a3f05555554266]", "[fe0016d3cfe15dc1,3ab1a1ea168bccd5]", "[fc0016d3cfe15dc13ab1a1ea168bccd5]", "01")
+ self.bid128_add("2", "-86.96E-6051", "+6262839768259358968798.482E-6125", "[80bbacbef36ec2d953f1ad2dffffffff]", "20")
+ self.bid128_add("2", "-88.E6128", "+1001100110110.E6131", "[5ffe04ef90e43b1338b16e0304700000]", "00")
+ self.bid128_add("2", "-89.689988889E-6076", "-9899.98898989888988898E-6079", "[80a000000000021be0dbab0ddddd0ee2]", "00")
+ self.bid128_add("2", "+89797785599559975.97E6141", "-10011100011110110.1111010001E6132", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "-8989899.889889998E6139", "+1010010011101.001000010E6140", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "+8999898889.898889988998988899899988E-6113", "-98.E-6015", "[8103e32d63d305092c33af61ffffffff]", "20")
+ self.bid128_add("2", "[8b71ea085f350783,80db0ca76e5b0d32]", "[f800000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("2", "-911011001111110.01111E-6035", "+7757.85756877599677796689977E-6050", "[80f5c129c10b6a95e248c238835bfeb0]", "20")
+ self.bid128_add("2", "[9456000000000000,0000000000000000]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_add("2", "-9596859585978896957666.8999678658685898E6123", "-855789958.556566566858E6136", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("2", "-986.7998E6137", "-28399226863623.4336534472E6122", "[dffe00013edc83f35bce6e5a0186fdd0]", "00")
+ self.bid128_add("2", "-9888988988.8899888988E6150", "+88887766666797.9757555E6150", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "+98988.E6140", "+5758859.7585E6137", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("2", "+989.89E6147", "-11011101001010.001110000001E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "+98998899988998.899898899998999E6141", "-99898899999898899998999998988899.E6130", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "+9976878.E6138", "+688895688756979657657.6957987659886589697E6123", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("2", "-99898888.8899899989989999988898989888E6106", "-58975778987588776588859.6877656E6124", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("2", "+9989989898899.999889E6132", "+10100000010000110100111011.1010101101E6119", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("2", "+9.9E6144", "+1100010.111001111011011101010E6138", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("2", "[9cd8000000000000,0000000000000000]", "[16909df1f48b315f,9e82e8740fb93bfd]", "[16909df1f48b315f9e82e8740fb93bfd]", "00")
+ self.bid128_add("2", "[a1c4000000000000,0000000000000000]", "[5522c0c11492e428,f7d822a92f1a5ef3]", "[5522c0c11492e428f7d822a92f1a5ef3]", "00")
+ self.bid128_add("2", "[a9481e81f1ac7df5,96dcd9baa6738f4a]", "[fe000ded30995e2c,2a18fde4c3b4c242]", "[fc000ded30995e2c2a18fde4c3b4c242]", "01")
+ self.bid128_add("2", "[ab5b7f8969162c5f,9951aecf3b28ba61]", "[fe001538549b96bc,d8bac0361145a524]", "[fc001538549b96bcd8bac0361145a524]", "01")
+ self.bid128_add("2", "[bee1c676f1afe3cf,09f61de91e262588]", "[561ceab945062f0a,24c48dc78dbedb6a]", "[561ceab945062f0a24c48dc78dbedb6a]", "20")
+ self.bid128_add("2", "[c850828208860480,0000000000000000]", "[1000180002000000,70b7486738c0cf39]", "[c85082820886047fffffffffffffffff]", "20")
+ self.bid128_add("2", "[d75c000000000000,0000000000000000]", "[132efa1ddf2a7299,1ec77faa102b45ca]", "[132efa1ddf2a72991ec77faa102b45ca]", "00")
+ self.bid128_add("2", "[f800000000000000,0000000000000000]", "[2ca1915e9c65355f,6a9dd26fcb0633ae]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("2", "[fe00000000000000,0000000000000000]", "[1f0cabc46692f05e,44e49d8f9551660c]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_add("2", "Infinity", "-0", "[78000000000000000000000000000000]", "00")
+ self.bid128_add("2", "-Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("2", "Infinity", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("2", "SNaN", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("2", "SNaN", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0002629b8c891b267182b613cccccccc]", "20")
+ self.bid128_add("3", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_add("3", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_add("3", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_add("3", "0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("3", "+100000.00000000E6107", "+5695567.598669978987E6134", "[5ff718d02b771ae1f14f07d33b7906a0]", "00")
+ self.bid128_add("3", "+1.00101011001100101E6131", "-98697989675958559.6755E6101", "[5fe4315a861bf878b4305be78d569c44]", "20")
+ self.bid128_add("3", "-1001100.E6103", "+76675966976599977.8786866E6115", "[5fee0000f7c0df92ac3e3aec4c25c4b4]", "00")
+ self.bid128_add("3", "-1010000000000100.E-6008", "-8.E-6083", "[812c31cbfe02adbb651a045de3100000]", "20")
+ self.bid128_add("3", "+101001100000101.000000E6138", "-7695957767658598867966685688.99E6120", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "+101010111000001011101000100100000010.E6111", "-75.59599E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "-10.11000000110000E6142", "-1010000.10000000E6100", "[dffc31d89d2f61d15c703f2068c00000]", "20")
+ self.bid128_add("3", "-1011.000011100100000001000110E-6050", "-899998998989888989988.888898898E-6112", "[80c031d89d38790fe039a2b1dfc38780]", "20")
+ self.bid128_add("3", "+1100111110010000101100.00111E-6148", "-0.E-6012", "[002e0000005affc246f94b02529cdbef]", "00")
+ self.bid128_add("3", "+11011000100110.0000001001001111E-6070", "-111100101.001E-6037", "[80e436c6cde001d19539cedba43e51e1]", "20")
+ self.bid128_add("3", "+1.10110010100000011010100000E6117", "-0.E6139", "[5fd60000005b14b39baf21a04e72cb20]", "00")
+ self.bid128_add("3", "-111110011011.0110000100E6105", "+11000100110.00000110010010E6121", "[5fe4363c140ab6a4209184fd9dc6d2cf]", "20")
+ self.bid128_add("3", "[1c4dddec6a7a1c60,fb50c15771b095e3]", "[7c000fea63a9224b,3d4501def3959458]", "[7c000fea63a9224b3d4501def3959458]", "00")
+ self.bid128_add("3", "-263422633844658.928332597223469897E6134", "+747.E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "[2840000000000000,0000000000000000]", "[59364b22e2d719b8,fc26061748ffb476]", "[59364b22e2d719b8fc26061748ffb476]", "00")
+ self.bid128_add("3", "+2997.653489948889292735459468782643377E6108", "+9278673824.6482453738329E6133", "[5ffbc9795419f3c89a4a228d118ea92b]", "20")
+ self.bid128_add("3", "[2b4ed27250ae5929,81da062276e0d757]", "[fe000aca05f2778b,5f0172fb73aa63b4]", "[fc000aca05f2778b5f0172fb73aa63b4]", "01")
+ self.bid128_add("3", "+3624659768534336587.96423867374255653E6150", "-10010001111100011101010101110.0110000011E6141", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "[38a8000000000000,0000000000000000]", "[5489c7f28d0c759c,797749662afbfd8c]", "[5489c7f28d0c759c797749662afbfd8c]", "00")
+ self.bid128_add("3", "-394.678E6139", "+55.3696E6105", "[dff8c2975dfa0314f5a1f6515fffffff]", "20")
+ self.bid128_add("3", "+55689855855588879577565566.7587E6118", "+9988989988.888898899999E6135", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("3", "-5.995688758689789876988877865667857E6127", "-8989899999.E6126", "[dfedbb3c7dbd8ef718864a2b3a96360a]", "20")
+ self.bid128_add("3", "[5bd3458aeeff6752,5c9f9a12f343e352]", "[d00e000000000000,0000000000000000]", "[5bd3458aeeff67525c9f9a12f343e352]", "00")
+ self.bid128_add("3", "[5f1e000000000000,0000000000000000]", "[d74b90398df0d280,0b222a8e8514f3ee]", "[d74b90398df0d2800b222a8e8514f3ee]", "00")
+ self.bid128_add("3", "+6667779.8796559657568566E6121", "-1.E6129", "[dff200000000c5a37f76f1936e1a76ca]", "00")
+ self.bid128_add("3", "-67742893945653349875463748543548.9E-6184", "+1100.0100110001101010E-6045", "[00ca363c140ab6aa266b6f4aea487fff]", "20")
+ self.bid128_add("3", "-68488695427246.927E6129", "-999899889999998899988988988888.9E6115", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("3", "+6875897.879876979566658996675E6133", "+8.464777979989329969757976492E6138", "[5ffe0000f985fe9359e4745fb3d1594a]", "00")
+ self.bid128_add("3", "+7597756576.869587795965598779879969E-6070", "-8.E-6021", "[80f58a6e32246c99c60ad84fffffffff]", "20")
+ self.bid128_add("3", "[7e0006dd5267cd43,7cd23844b6d6a4ea]", "[9f65abe576e0df8e,4506a13d63599947]", "[7c0006dd5267cd437cd23844b6d6a4ea]", "01")
+ self.bid128_add("3", "[7e00149c7f5e6b77,3ff5188ebbb4795a]", "[37fe000000000000,0000000000000000]", "[7c00149c7f5e6b773ff5188ebbb4795a]", "01")
+ self.bid128_add("3", "[7e002cf4e6e4ac9d,ab55920b2c709cec]", "[7800000000000000,0000000000000000]", "[7c002cf4e6e4ac9dab55920b2c709cec]", "01")
+ self.bid128_add("3", "[84848448bb86cdea,47a3f05555554266]", "[fe0016d3cfe15dc1,3ab1a1ea168bccd5]", "[fc0016d3cfe15dc13ab1a1ea168bccd5]", "01")
+ self.bid128_add("3", "-86.96E-6051", "+6262839768259358968798.482E-6125", "[80bbacbef36ec2d953f1ad2dffffffff]", "20")
+ self.bid128_add("3", "-88.E6128", "+1001100110110.E6131", "[5ffe04ef90e43b1338b16e0304700000]", "00")
+ self.bid128_add("3", "-89.689988889E-6076", "-9899.98898989888988898E-6079", "[80a000000000021be0dbab0ddddd0ee2]", "00")
+ self.bid128_add("3", "+89797785599559975.97E6141", "-10011100011110110.1111010001E6132", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "-8989899.889889998E6139", "+1010010011101.001000010E6140", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "+8999898889.898889988998988899899988E-6113", "-98.E-6015", "[8103e32d63d305092c33af61ffffffff]", "20")
+ self.bid128_add("3", "[8b71ea085f350783,80db0ca76e5b0d32]", "[f800000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("3", "-911011001111110.01111E-6035", "+7757.85756877599677796689977E-6050", "[80f5c129c10b6a95e248c238835bfeb0]", "20")
+ self.bid128_add("3", "[9456000000000000,0000000000000000]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_add("3", "-9596859585978896957666.8999678658685898E6123", "-855789958.556566566858E6136", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("3", "-986.7998E6137", "-28399226863623.4336534472E6122", "[dffe00013edc83f35bce6e5a0186fdd0]", "00")
+ self.bid128_add("3", "-9888988988.8899888988E6150", "+88887766666797.9757555E6150", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "+98988.E6140", "+5758859.7585E6137", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("3", "+989.89E6147", "-11011101001010.001110000001E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "+98998899988998.899898899998999E6141", "-99898899999898899998999998988899.E6130", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "+9976878.E6138", "+688895688756979657657.6957987659886589697E6123", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("3", "-99898888.8899899989989999988898989888E6106", "-58975778987588776588859.6877656E6124", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("3", "+9989989898899.999889E6132", "+10100000010000110100111011.1010101101E6119", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("3", "+9.9E6144", "+1100010.111001111011011101010E6138", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_add("3", "[9cd8000000000000,0000000000000000]", "[16909df1f48b315f,9e82e8740fb93bfd]", "[16909df1f48b315f9e82e8740fb93bfd]", "00")
+ self.bid128_add("3", "[a1c4000000000000,0000000000000000]", "[5522c0c11492e428,f7d822a92f1a5ef3]", "[5522c0c11492e428f7d822a92f1a5ef3]", "00")
+ self.bid128_add("3", "[a9481e81f1ac7df5,96dcd9baa6738f4a]", "[fe000ded30995e2c,2a18fde4c3b4c242]", "[fc000ded30995e2c2a18fde4c3b4c242]", "01")
+ self.bid128_add("3", "[ab5b7f8969162c5f,9951aecf3b28ba61]", "[fe001538549b96bc,d8bac0361145a524]", "[fc001538549b96bcd8bac0361145a524]", "01")
+ self.bid128_add("3", "[bee1c676f1afe3cf,09f61de91e262588]", "[561ceab945062f0a,24c48dc78dbedb6a]", "[561ceab945062f0a24c48dc78dbedb69]", "20")
+ self.bid128_add("3", "[d75c000000000000,0000000000000000]", "[132efa1ddf2a7299,1ec77faa102b45ca]", "[132efa1ddf2a72991ec77faa102b45ca]", "00")
+ self.bid128_add("3", "[f800000000000000,0000000000000000]", "[2ca1915e9c65355f,6a9dd26fcb0633ae]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("3", "[fe00000000000000,0000000000000000]", "[1f0cabc46692f05e,44e49d8f9551660c]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_add("3", "Infinity", "-0", "[78000000000000000000000000000000]", "00")
+ self.bid128_add("3", "-Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("3", "Infinity", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("3", "SNaN", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("3", "SNaN", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "[0000000000008000,004910c400000000]", "[5fe5f9ffd9ebcf7f,000404e2000600a0]", "[0000000000008000004910c400000000]", "00")
+ self.bid128_add("4", "[00008420a0000200,0a80008002a35040]", "[8045c945a31d6f32,8cb7a8b66cfac3fd]", "[8045c945a31d6f328cb7a8b66cfac3fd]", "20")
+ self.bid128_add("4", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0002629b8c891b267182b613cccccccd]", "20")
+ self.bid128_add("4", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_add("4", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_add("4", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_add("4", "[0020828000000010,cf88020652208000]", "[0000000000000000,0010000000220000]", "[0020828000000010cf88020652208000]", "20")
+ self.bid128_add("4", "[0022100020000001,f000051104440000]", "[0000000000010000,2d2100c91840cb06]", "[0020a00140000013600032aa31dcadeb]", "20")
+ self.bid128_add("4", "0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("4", "+100000.00000000E6107", "+5695567.598669978987E6134", "[5ff718d02b771ae1f14f07d33b7906a0]", "00")
+ self.bid128_add("4", "+1.00101011001100101E6131", "-98697989675958559.6755E6101", "[5fe4315a861bf878b4305be78d569c45]", "20")
+ self.bid128_add("4", "-1001100.E6103", "+76675966976599977.8786866E6115", "[5fee0000f7c0df92ac3e3aec4c25c4b4]", "00")
+ self.bid128_add("4", "-1010000000000100.E-6008", "-8.E-6083", "[812c31cbfe02adbb651a045de3100000]", "20")
+ self.bid128_add("4", "+101001100000101.000000E6138", "-7695957767658598867966685688.99E6120", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "+101010111000001011101000100100000010.E6111", "-75.59599E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "-10.11000000110000E6142", "-1010000.10000000E6100", "[dffc31d89d2f61d15c703f2068c00000]", "20")
+ self.bid128_add("4", "-1011.000011100100000001000110E-6050", "-899998998989888989988.888898898E-6112", "[80c031d89d38790fe039a2b1dfc38780]", "20")
+ self.bid128_add("4", "+1100111110010000101100.00111E-6148", "-0.E-6012", "[002e0000005affc246f94b02529cdbef]", "00")
+ self.bid128_add("4", "+11011000100110.0000001001001111E-6070", "-111100101.001E-6037", "[80e436c6cde001d19539cedba43e51e2]", "20")
+ self.bid128_add("4", "+1.10110010100000011010100000E6117", "-0.E6139", "[5fd60000005b14b39baf21a04e72cb20]", "00")
+ self.bid128_add("4", "-111110011011.0110000100E6105", "+11000100110.00000110010010E6121", "[5fe4363c140ab6a4209184fd9dc6d2d0]", "20")
+ self.bid128_add("4", "[1392280b19d70c0b,2041039000096101]", "[f65addcfbf5fa71d,e3dfffffb7fdfebf]", "[1392280b19d70c0b2041039000096101]", "00")
+ self.bid128_add("4", "[1c4dddec6a7a1c60,fb50c15771b095e3]", "[7c000fea63a9224b,3d4501def3959458]", "[7c000fea63a9224b3d4501def3959458]", "00")
+ self.bid128_add("4", "-263422633844658.928332597223469897E6134", "+747.E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "[2840000000000000,0000000000000000]", "[59364b22e2d719b8,fc26061748ffb476]", "[59364b22e2d719b8fc26061748ffb476]", "00")
+ self.bid128_add("4", "+2997.653489948889292735459468782643377E6108", "+9278673824.6482453738329E6133", "[5ffbc9795419f3c89a4a228d118ea92c]", "20")
+ self.bid128_add("4", "[2ad6d9d6d46be91c,a79f9078ce846e2a]", "[5a231792da18902d,fa74ba0bb2f2a9d2]", "[5a231792da18902dfa74ba0bb2f2a9d2]", "20")
+ self.bid128_add("4", "[2b4ed27250ae5929,81da062276e0d757]", "[fe000aca05f2778b,5f0172fb73aa63b4]", "[fc000aca05f2778b5f0172fb73aa63b4]", "01")
+ self.bid128_add("4", "+3624659768534336587.96423867374255653E6150", "-10010001111100011101010101110.0110000011E6141", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "[38a8000000000000,0000000000000000]", "[5489c7f28d0c759c,797749662afbfd8c]", "[5489c7f28d0c759c797749662afbfd8c]", "00")
+ self.bid128_add("4", "-394.678E6139", "+55.3696E6105", "[dff8c2975dfa0314f5a1f65160000000]", "20")
+ self.bid128_add("4", "+55689855855588879577565566.7587E6118", "+9988989988.888898899999E6135", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("4", "-5.995688758689789876988877865667857E6127", "-8989899999.E6126", "[dfedbb3c7dbd8ef718864a2b3a96360b]", "20")
+ self.bid128_add("4", "[5bd3458aeeff6752,5c9f9a12f343e352]", "[d00e000000000000,0000000000000000]", "[5bd3458aeeff67525c9f9a12f343e352]", "00")
+ self.bid128_add("4", "[5f1e000000000000,0000000000000000]", "[d74b90398df0d280,0b222a8e8514f3ee]", "[d74b90398df0d2800b222a8e8514f3ee]", "00")
+ self.bid128_add("4", "+6667779.8796559657568566E6121", "-1.E6129", "[dff200000000c5a37f76f1936e1a76ca]", "00")
+ self.bid128_add("4", "-67742893945653349875463748543548.9E-6184", "+1100.0100110001101010E-6045", "[00ca363c140ab6aa266b6f4aea488000]", "20")
+ self.bid128_add("4", "-68488695427246.927E6129", "-999899889999998899988988988888.9E6115", "[f8000000000000000000000000000000]", "28")
+ self.bid128_add("4", "+6875897.879876979566658996675E6133", "+8.464777979989329969757976492E6138", "[5ffe0000f985fe9359e4745fb3d1594a]", "00")
+ self.bid128_add("4", "+7597756576.869587795965598779879969E-6070", "-8.E-6021", "[80f58a6e32246c99c60ad85000000000]", "20")
+ self.bid128_add("4", "[7e0006dd5267cd43,7cd23844b6d6a4ea]", "[9f65abe576e0df8e,4506a13d63599947]", "[7c0006dd5267cd437cd23844b6d6a4ea]", "01")
+ self.bid128_add("4", "[7e00149c7f5e6b77,3ff5188ebbb4795a]", "[37fe000000000000,0000000000000000]", "[7c00149c7f5e6b773ff5188ebbb4795a]", "01")
+ self.bid128_add("4", "[7e002cf4e6e4ac9d,ab55920b2c709cec]", "[7800000000000000,0000000000000000]", "[7c002cf4e6e4ac9dab55920b2c709cec]", "01")
+ self.bid128_add("4", "[8000400080402000,ffe7fffffffbffff]", "[0000110a21084001,0840000200000800]", "[80002ef65f37dffff7a7fffdfffbf7ff]", "00")
+ self.bid128_add("4", "[8010000000800111,8498563480440020]", "[0000489100040120,9a1b9d433d9f9e78]", "[8002450a2fd3ed30480a760e2082d9c1]", "20")
+ self.bid128_add("4", "[84848448bb86cdea,47a3f05555554266]", "[fe0016d3cfe15dc1,3ab1a1ea168bccd5]", "[fc0016d3cfe15dc13ab1a1ea168bccd5]", "01")
+ self.bid128_add("4", "-86.96E-6051", "+6262839768259358968798.482E-6125", "[80bbacbef36ec2d953f1ad2e00000000]", "20")
+ self.bid128_add("4", "-88.E6128", "+1001100110110.E6131", "[5ffe04ef90e43b1338b16e0304700000]", "00")
+ self.bid128_add("4", "-89.689988889E-6076", "-9899.98898989888988898E-6079", "[80a000000000021be0dbab0ddddd0ee2]", "00")
+ self.bid128_add("4", "+89797785599559975.97E6141", "-10011100011110110.1111010001E6132", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "-8989899.889889998E6139", "+1010010011101.001000010E6140", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "+8999.88999E4401", "-10.0E4437", "[d2a9ed09bead87c0378d8e63fffffff7]", "20")
+ self.bid128_add("4", "+8999898889.898889988998988899899988E-6113", "-98.E-6015", "[8103e32d63d305092c33af6200000000]", "20")
+ self.bid128_add("4", "[8b71ea085f350783,80db0ca76e5b0d32]", "[f800000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("4", "-911011001111110.01111E-6035", "+7757.85756877599677796689977E-6050", "[80f5c129c10b6a95e248c238835bfeb0]", "20")
+ self.bid128_add("4", "[9456000000000000,0000000000000000]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_add("4", "-9596859585978896957666.8999678658685898E6123", "-855789958.556566566858E6136", "[f8000000000000000000000000000000]", "28")
+ self.bid128_add("4", "-986.7998E6137", "-28399226863623.4336534472E6122", "[dffe00013edc83f35bce6e5a0186fdd0]", "00")
+ self.bid128_add("4", "-9888988988.8899888988E6150", "+88887766666797.9757555E6150", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "+98988.E6140", "+5758859.7585E6137", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("4", "+989.89E6147", "-11011101001010.001110000001E6145", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "+98998899988998.899898899998999E6141", "-99898899999898899998999998988899.E6130", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "+9976878.E6138", "+688895688756979657657.6957987659886589697E6123", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("4", "-99898888.8899899989989999988898989888E6106", "-58975778987588776588859.6877656E6124", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("4", "+9989989898899.999889E6132", "+10100000010000110100111011.1010101101E6119", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("4", "+9.9E6144", "+1100010.111001111011011101010E6138", "[78000000000000000000000000000000]", "28")
+ self.bid128_add("4", "[9cd8000000000000,0000000000000000]", "[16909df1f48b315f,9e82e8740fb93bfd]", "[16909df1f48b315f9e82e8740fb93bfd]", "00")
+ self.bid128_add("4", "[a1c4000000000000,0000000000000000]", "[5522c0c11492e428,f7d822a92f1a5ef3]", "[5522c0c11492e428f7d822a92f1a5ef3]", "00")
+ self.bid128_add("4", "[a9481e81f1ac7df5,96dcd9baa6738f4a]", "[fe000ded30995e2c,2a18fde4c3b4c242]", "[fc000ded30995e2c2a18fde4c3b4c242]", "01")
+ self.bid128_add("4", "[ab5b7f8969162c5f,9951aecf3b28ba61]", "[fe001538549b96bc,d8bac0361145a524]", "[fc001538549b96bcd8bac0361145a524]", "01")
+ self.bid128_add("4", "[bee1c676f1afe3cf,09f61de91e262588]", "[561ceab945062f0a,24c48dc78dbedb6a]", "[561ceab945062f0a24c48dc78dbedb6a]", "20")
+ self.bid128_add("4", "[c0c47de8bb8a81ca,a1571e2bdc47b401]", "[4081000004020000,0000205500000000]", "[c0c47de8bb8a81caa1571e2bdc47b400]", "20")
+ self.bid128_add("4", "[d75c000000000000,0000000000000000]", "[132efa1ddf2a7299,1ec77faa102b45ca]", "[132efa1ddf2a72991ec77faa102b45ca]", "00")
+ self.bid128_add("4", "[f800000000000000,0000000000000000]", "[2ca1915e9c65355f,6a9dd26fcb0633ae]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_add("4", "[fe00000000000000,0000000000000000]", "[1f0cabc46692f05e,44e49d8f9551660c]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_add("4", "Infinity", "-0", "[78000000000000000000000000000000]", "00")
+ self.bid128_add("4", "-Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("4", "Infinity", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("4", "SNaN", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("4", "SNaN", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_add("1", "[0042307800020010,0000000000000000]", "[800001da00040000,405041d2e901ac1d]", "[0041e4b00014009fffffffffffffffff]", "20")
+ self.bid128_add("0", "[ccffbf795fb694b1,ffffffffffffffff]", "[ccfdec79b21ac98c,67c2f889c1d4cd74]", "[cd0031ac130849347beae8e2a8569ba7]", "20")
+ self.bid128_add("0", "[d6dfdf2fbfffffbf,8b8462ca02889cb1]", "[d6ddcbfe7bd605ba,dfcfe9fd777f3a77]", "[d6e03484c284b33b6c598ec7602b17ef]", "20")
+ self.bid128_add("0", "[0fa9801fe9ac3720,17875158ded9d859]", "[0fabec95ded80210,2a002751ded92216]", "[0fac35198bd233f52327c4bed5f40d41]", "20")
+ self.bid128_add("1", "[0042307800020010,0000000000000000]", "[800001da00040000,405041d2e901ac1d]", "[0041e4b00014009fffffffffffffffff]", "20")
+ self.bid128_add("0", "[ccffbf795fb694b1,ffffffffffffffff]", "[ccfdec79b21ac98c,67c2f889c1d4cd74]", "[cd0031ac130849347beae8e2a8569ba7]", "20")
+ self.bid128_add("1", "[2000080602200001,9ff75fa3776fde4f]", "[a04082a57e10d574,0000000000000001]", "[a04082a57e10d5740000000000000000]", "20")
+ self.bid128_add("0", "[7c00314dc6448d9338c15b1000000000]", "1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "1", "[7c00314dc6448d9338c15b1000000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_add("0", "-1500000000000000000000000000000000E-66", "+5000000000000000000000000000000000E-100", "-1500000000000000000000000000000000E-66", "20")
+ self.bid128_add("1", "-1500000000000000000000000000000000E-66", "+5000000000000000000000000000000000E-100", "-1500000000000000000000000000000000E-66", "20")
+ self.bid128_add("2", "-1500000000000000000000000000000000E-66", "+5000000000000000000000000000000000E-100", "-1499999999999999999999999999999999E-66", "20")
+ self.bid128_add("3", "-1500000000000000000000000000000000E-66", "+5000000000000000000000000000000000E-100", "-1499999999999999999999999999999999E-66", "20")
+ self.bid128_add("4", "-1500000000000000000000000000000000E-66", "+5000000000000000000000000000000000E-100", "-1500000000000000000000000000000000E-66", "20")
+ }
+
+ private func bid128_add(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.adding(arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelCompareTests.swift b/Tests/DecimalTests/Intel - generated/IntelCompareTests.swift
new file mode 100644
index 0000000..8e8fe3a
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelCompareTests.swift
@@ -0,0 +1,4848 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelCompareTests: XCTestCase, IntelMixin {
+
+ func test_bid32_quiet_greater() {
+ self.bid32_quiet_greater("0", "[00000000]", "[00000001]", "0", "00")
+ self.bid32_quiet_greater("0", "[00000000]", "[80000001]", "1", "00")
+ self.bid32_quiet_greater("0", "[00000001]", "[00000000]", "1", "00")
+ self.bid32_quiet_greater("0", "[00000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_greater("0", "[00000001]", "[80000000]", "1", "00")
+ self.bid32_quiet_greater("0", "[00000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_greater("0", "1.0", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "1.0", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "1.0", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "1.0", "[1234566]", "1", "00")
+ self.bid32_quiet_greater("0", "1.0", "[1234567]", "1", "00")
+ self.bid32_quiet_greater("0", "1.0", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater("0", "1.0", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater("0", "1.0", "[60989680]", "1", "00")
+ self.bid32_quiet_greater("0", "1.0", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "1.0", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "1.0", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "1.0", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "1.0", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "1.0", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "1.0", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "[1234566]", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "[1234566]", "0", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "[1234567]", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "[1234567]", "0", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "[60989680]", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "[60989680]", "1", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "1.0e-96", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "-1.0e-96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "-1.0e-96", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "1.0e-96", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "1.0", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "[1234566]", "0", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "[1234566]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "[1234566]", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "[1234567]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "[1234567]", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "[2f8f423f]", "[3200000a]", "0", "00")
+ self.bid32_quiet_greater("0", "[2f8f4240]", "[3200000a]", "0", "00")
+ self.bid32_quiet_greater("0", "[2f8f4241]", "[3200000a]", "1", "00")
+ self.bid32_quiet_greater("0", "[32000001]", "[7e000000]", "0", "01")
+ self.bid32_quiet_greater("0", "[32000002]", "[32000001]", "1", "00")
+ self.bid32_quiet_greater("0", "[32000002]", "[32000003]", "0", "00")
+ self.bid32_quiet_greater("0", "[32000002]", "[35800001]", "0", "00")
+ self.bid32_quiet_greater("0", "[32000002]", "[b5800001]", "1", "00")
+ self.bid32_quiet_greater("0", "[3200000a]", "[2f8f423f]", "1", "00")
+ self.bid32_quiet_greater("0", "[3200000a]", "[2f8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "[3200000a]", "[2f8f4241]", "0", "00")
+ self.bid32_quiet_greater("0", "[3200000a]", "[36800064]", "0", "00")
+ self.bid32_quiet_greater("0", "[35800001]", "[32000002]", "1", "00")
+ self.bid32_quiet_greater("0", "[35800001]", "[b2000002]", "1", "00")
+ self.bid32_quiet_greater("0", "[36800064]", "[3200000a]", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "[1234567]", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "[6098967e]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967e]", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "[1234567]", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "[6098967f]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "[6098967f]", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "[1234566]", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "[60989680]", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "[60989680]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "[60989680]", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "[78000001]", "[00000002]", "1", "00")
+ self.bid32_quiet_greater("0", "[78000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_greater("0", "[78000001]", "[80000002]", "1", "00")
+ self.bid32_quiet_greater("0", "[78000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "[1234566]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "[60989680]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f423f]", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "[1234566]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "[60989680]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "[7c8f4240]", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "[7e000000]", "[32000001]", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "1.0", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "-1.0e-96", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "1.0e-96", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "[1234566]", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "[1234567]", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "[6098967e]", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "[6098967f]", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "[60989680]", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "[7c8f423f]", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "[7c8f4240]", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "-9.999999e-95", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "9.999999e-95", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "-9.999999e96", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "9.999999e96", "0", "01")
+ self.bid32_quiet_greater("0", "[7e100000]", "Infinity", "0", "01")
+ self.bid32_quiet_greater("0", "[80000000]", "[00000001]", "0", "00")
+ self.bid32_quiet_greater("0", "[80000000]", "[80000001]", "1", "00")
+ self.bid32_quiet_greater("0", "[80000001]", "[00000000]", "0", "00")
+ self.bid32_quiet_greater("0", "[80000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_greater("0", "[80000001]", "[80000000]", "0", "00")
+ self.bid32_quiet_greater("0", "[80000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "[1234566]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "[1234566]", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "[1234567]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "[1234567]", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "[60989680]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "[60989680]", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "9.999999e-95", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e-95", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e-95", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "1.0", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "1.0", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "[1234566]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "[1234566]", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "[1234567]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "[1234567]", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "[60989680]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "[60989680]", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "9.999999e96", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "-9.999999e96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "-9.999999e96", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "9.999999e96", "Infinity", "0", "00")
+ self.bid32_quiet_greater("0", "[af8f423f]", "[b200000a]", "1", "00")
+ self.bid32_quiet_greater("0", "[af8f4240]", "[b200000a]", "0", "00")
+ self.bid32_quiet_greater("0", "[af8f4241]", "[b200000a]", "0", "00")
+ self.bid32_quiet_greater("0", "[b2000002]", "[35800001]", "0", "00")
+ self.bid32_quiet_greater("0", "[b2000002]", "[b2000001]", "0", "00")
+ self.bid32_quiet_greater("0", "[b2000002]", "[b2000003]", "1", "00")
+ self.bid32_quiet_greater("0", "[b2000002]", "[b5800001]", "1", "00")
+ self.bid32_quiet_greater("0", "[b200000a]", "[af8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "[b200000a]", "[af8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "[b200000a]", "[af8f4241]", "1", "00")
+ self.bid32_quiet_greater("0", "[b200000a]", "[b6800064]", "1", "00")
+ self.bid32_quiet_greater("0", "[b5800001]", "[32000002]", "0", "00")
+ self.bid32_quiet_greater("0", "[b5800001]", "[b2000002]", "0", "00")
+ self.bid32_quiet_greater("0", "[b6800064]", "[b200000a]", "0", "00")
+ self.bid32_quiet_greater("0", "[f8000001]", "[00000002]", "0", "00")
+ self.bid32_quiet_greater("0", "[f8000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_greater("0", "[f8000001]", "[80000002]", "0", "00")
+ self.bid32_quiet_greater("0", "[f8000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_greater("0", "Infinity", "1.0", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "[1234566]", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "[1234567]", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "[60989680]", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater("0", "Infinity", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater("0", "Infinity", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater("0", "Infinity", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "9.999999e96", "1", "00")
+ self.bid32_quiet_greater("0", "Infinity", "Inf", "0", "00")
+ self.bid32_quiet_greater("0", "[0d000000]", "[dd000000]", "0", "00")
+ self.bid32_quiet_greater("0", "[0d000000]", "[dd000000]", "0", "00")
+ }
+
+ private func bid32_quiet_greater(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLess(than: arg0, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_quiet_greater_equal() {
+ self.bid32_quiet_greater_equal("0", "[00000000]", "[00000001]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[00000000]", "[80000001]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[00000001]", "[00000000]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[00000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[00000001]", "[80000000]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[00000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "1.0", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "1.0", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "[60989680]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-1.0e-96", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0e-96", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "1.0", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234566]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[1234567]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[2f8f423f]", "[3200000a]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[2f8f4240]", "[3200000a]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[2f8f4241]", "[3200000a]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[32000001]", "[7e000000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[32000002]", "[32000001]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[32000002]", "[32000003]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[32000002]", "[35800001]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[32000002]", "[b5800001]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[3200000a]", "[2f8f423f]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[3200000a]", "[2f8f4240]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[3200000a]", "[2f8f4241]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[3200000a]", "[36800064]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[35800001]", "[32000002]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[35800001]", "[b2000002]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[36800064]", "[3200000a]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967e]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[6098967f]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[60989680]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[78000001]", "[00000002]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[78000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[78000001]", "[80000002]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[78000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "[60989680]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f423f]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "[60989680]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7c8f4240]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[7e000000]", "[32000001]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "1.0", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "-1.0e-96", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "1.0e-96", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "[1234566]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "[1234567]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "[6098967e]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "[6098967f]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "[60989680]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "[7c8f423f]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "[7c8f4240]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "-9.999999e-95", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "9.999999e-95", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "-9.999999e96", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "9.999999e96", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[7e100000]", "Infinity", "0", "01")
+ self.bid32_quiet_greater_equal("0", "[80000000]", "[00000001]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[80000000]", "[80000001]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[80000001]", "[00000000]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[80000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[80000001]", "[80000000]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[80000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "[60989680]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e-95", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e-95", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "1.0", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "1.0", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "[60989680]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "-9.999999e96", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "9.999999e96", "Infinity", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[af8f423f]", "[b200000a]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[af8f4240]", "[b200000a]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[af8f4241]", "[b200000a]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[b2000002]", "[35800001]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[b2000002]", "[b2000001]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[b2000002]", "[b2000003]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[b2000002]", "[b5800001]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[b200000a]", "[af8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[b200000a]", "[af8f4240]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[b200000a]", "[af8f4241]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[b200000a]", "[b6800064]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[b5800001]", "[32000002]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[b5800001]", "[b2000002]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[b6800064]", "[b200000a]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[f8000001]", "[00000002]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[f8000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[f8000001]", "[80000002]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "[f8000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "1.0", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "[7e100000]", "0", "01")
+ self.bid32_quiet_greater_equal("0", "Infinity", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "9.999999e96", "1", "00")
+ self.bid32_quiet_greater_equal("0", "Infinity", "Inf", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[00000000]", "[cb000000]", "1", "00")
+ self.bid32_quiet_greater_equal("0", "[00000000]", "[cb000000]", "1", "00")
+ }
+
+ private func bid32_quiet_greater_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLessThanOrEqualTo(arg0, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_quiet_greater_unordered() {
+ self.bid32_quiet_greater_unordered("0", "[00000000]", "[00000001]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[00000000]", "[80000001]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[00000001]", "[00000000]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[00000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[00000001]", "[80000000]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[00000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "1.0", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "1.0", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "1.0", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "1.0", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "[60989680]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-1.0e-96", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0e-96", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "1.0", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "1.0", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234566]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "1.0", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[1234567]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[2f8f423f]", "[3200000a]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[2f8f4240]", "[3200000a]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[2f8f4241]", "[3200000a]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[32000001]", "[7e000000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[32000002]", "[32000001]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[32000002]", "[32000003]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[32000002]", "[35800001]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[32000002]", "[b5800001]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[3200000a]", "[2f8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[3200000a]", "[2f8f4240]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[3200000a]", "[2f8f4241]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[3200000a]", "[36800064]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[35800001]", "[32000002]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[35800001]", "[b2000002]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[36800064]", "[3200000a]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "1.0", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967e]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "1.0", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[6098967f]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "1.0", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "[60989680]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[60989680]", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[78000001]", "[00000002]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[78000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[78000001]", "[80000002]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[78000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "1.0", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f423f]", "Infinity", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "1.0", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7c8f4240]", "Infinity", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[7e000000]", "[32000001]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "1.0", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "-1.0e-96", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "1.0e-96", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "[1234566]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "[1234567]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "[6098967e]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "[6098967f]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "[60989680]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "[7c8f423f]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "[7c8f4240]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "-9.999999e-95", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "9.999999e-95", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "-9.999999e96", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "9.999999e96", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[7e100000]", "Infinity", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "[80000000]", "[00000001]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[80000000]", "[80000001]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[80000001]", "[00000000]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[80000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[80000001]", "[80000000]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[80000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "1.0", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "1.0", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "[60989680]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e-95", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e-95", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "1.0", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "1.0", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "1.0e-96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "[1234566]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "[1234567]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "[6098967e]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "[6098967f]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "[60989680]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "9.999999e96", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "-9.999999e96", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "9.999999e96", "Infinity", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[af8f423f]", "[b200000a]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[af8f4240]", "[b200000a]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[af8f4241]", "[b200000a]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[b2000002]", "[35800001]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[b2000002]", "[b2000001]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[b2000002]", "[b2000003]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[b2000002]", "[b5800001]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[b200000a]", "[af8f423f]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[b200000a]", "[af8f4240]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[b200000a]", "[af8f4241]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[b200000a]", "[b6800064]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "[b5800001]", "[32000002]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[b5800001]", "[b2000002]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[b6800064]", "[b200000a]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[f8000001]", "[00000002]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[f8000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[f8000001]", "[80000002]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[f8000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "1.0", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "-1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "1.0e-96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "[1234566]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "[1234567]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "[6098967e]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "[6098967f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "[60989680]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "[7e100000]", "1", "01")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "9.999999e-95", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "-9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "9.999999e96", "1", "00")
+ self.bid32_quiet_greater_unordered("0", "Infinity", "Inf", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[00000000]", "[c9800000]", "0", "00")
+ self.bid32_quiet_greater_unordered("0", "[00000000]", "[c9800000]", "0", "00")
+ }
+
+ private func bid32_quiet_greater_unordered(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLessThanOrEqualTo(arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_quiet_less() {
+ self.bid32_quiet_less("0", "[00000000]", "[00000001]", "1", "00")
+ self.bid32_quiet_less("0", "[00000000]", "[80000001]", "0", "00")
+ self.bid32_quiet_less("0", "[00000001]", "[00000000]", "0", "00")
+ self.bid32_quiet_less("0", "[00000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_less("0", "[00000001]", "[80000000]", "0", "00")
+ self.bid32_quiet_less("0", "[00000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "1.0", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "[1234566]", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "[1234567]", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "[6098967e]", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "[6098967f]", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "1.0", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "1.0", "9.999999e96", "1", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "1.0", "1", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "1.0", "1", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "1.0e-96", "1", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "[1234566]", "1", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "[1234566]", "1", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "[1234567]", "1", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "[1234567]", "1", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "[6098967e]", "1", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "[6098967e]", "1", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "[6098967f]", "1", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "[6098967f]", "1", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "[60989680]", "1", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "1.0e-96", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "-1.0e-96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "9.999999e96", "1", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "9.999999e96", "1", "00")
+ self.bid32_quiet_less("0", "-1.0e-96", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "1.0e-96", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "1.0", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "[1234566]", "1.0", "1", "00")
+ self.bid32_quiet_less("0", "[1234566]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[1234566]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[1234566]", "[1234566]", "0", "00")
+ self.bid32_quiet_less("0", "[1234566]", "[1234567]", "1", "00")
+ self.bid32_quiet_less("0", "[1234566]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less("0", "[1234566]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less("0", "[1234566]", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "[1234566]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "[1234566]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "[1234566]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "[1234566]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[1234566]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[1234566]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "[1234566]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less("0", "[1234566]", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "[1234567]", "1.0", "1", "00")
+ self.bid32_quiet_less("0", "[1234567]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[1234567]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[1234567]", "[1234566]", "0", "00")
+ self.bid32_quiet_less("0", "[1234567]", "[1234567]", "0", "00")
+ self.bid32_quiet_less("0", "[1234567]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less("0", "[1234567]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less("0", "[1234567]", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "[1234567]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "[1234567]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "[1234567]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "[1234567]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[1234567]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[1234567]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "[1234567]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less("0", "[1234567]", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "[2f8f423f]", "[3200000a]", "1", "00")
+ self.bid32_quiet_less("0", "[2f8f4240]", "[3200000a]", "0", "00")
+ self.bid32_quiet_less("0", "[2f8f4241]", "[3200000a]", "0", "00")
+ self.bid32_quiet_less("0", "[32000001]", "[7e000000]", "0", "01")
+ self.bid32_quiet_less("0", "[32000002]", "[32000001]", "0", "00")
+ self.bid32_quiet_less("0", "[32000002]", "[32000003]", "1", "00")
+ self.bid32_quiet_less("0", "[32000002]", "[35800001]", "1", "00")
+ self.bid32_quiet_less("0", "[32000002]", "[b5800001]", "0", "00")
+ self.bid32_quiet_less("0", "[3200000a]", "[2f8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "[3200000a]", "[2f8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "[3200000a]", "[2f8f4241]", "1", "00")
+ self.bid32_quiet_less("0", "[3200000a]", "[36800064]", "1", "00")
+ self.bid32_quiet_less("0", "[35800001]", "[32000002]", "0", "00")
+ self.bid32_quiet_less("0", "[35800001]", "[b2000002]", "0", "00")
+ self.bid32_quiet_less("0", "[36800064]", "[3200000a]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "1.0", "1", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "[1234566]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "[1234567]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "[6098967e]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "[6098967e]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less("0", "[6098967e]", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "1.0", "1", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "[1234566]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "[1234567]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "[6098967e]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "[6098967f]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "[6098967f]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less("0", "[6098967f]", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "[60989680]", "1.0", "1", "00")
+ self.bid32_quiet_less("0", "[60989680]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[60989680]", "1.0e-96", "1", "00")
+ self.bid32_quiet_less("0", "[60989680]", "[1234566]", "1", "00")
+ self.bid32_quiet_less("0", "[60989680]", "[1234567]", "1", "00")
+ self.bid32_quiet_less("0", "[60989680]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less("0", "[60989680]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less("0", "[60989680]", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "[60989680]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "[60989680]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "[60989680]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "[60989680]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[60989680]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less("0", "[60989680]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "[60989680]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less("0", "[60989680]", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "[78000001]", "[00000002]", "0", "00")
+ self.bid32_quiet_less("0", "[78000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_less("0", "[78000001]", "[80000002]", "0", "00")
+ self.bid32_quiet_less("0", "[78000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "1.0", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "[1234566]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "[1234567]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "[6098967e]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "[6098967f]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "[7c8f423f]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f423f]", "Infinity", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "1.0", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "[1234566]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "[1234567]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "[6098967e]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "[6098967f]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "[7c8f4240]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "[7c8f4240]", "Infinity", "0", "00")
+ self.bid32_quiet_less("0", "[7e000000]", "[32000001]", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "1.0", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "-1.0e-96", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "1.0e-96", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "[1234566]", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "[1234567]", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "[6098967e]", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "[6098967f]", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "[60989680]", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "[7c8f423f]", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "[7c8f4240]", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "-9.999999e-95", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "9.999999e-95", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "-9.999999e96", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "9.999999e96", "0", "01")
+ self.bid32_quiet_less("0", "[7e100000]", "Infinity", "0", "01")
+ self.bid32_quiet_less("0", "[80000000]", "[00000001]", "1", "00")
+ self.bid32_quiet_less("0", "[80000000]", "[80000001]", "0", "00")
+ self.bid32_quiet_less("0", "[80000001]", "[00000000]", "1", "00")
+ self.bid32_quiet_less("0", "[80000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_less("0", "[80000001]", "[80000000]", "1", "00")
+ self.bid32_quiet_less("0", "[80000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "1.0", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "1.0", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "-1.0e-96", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "1.0e-96", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "[1234566]", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "[1234566]", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "[1234567]", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "[1234567]", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "[6098967e]", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "[6098967e]", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "[6098967f]", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "[6098967f]", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "[60989680]", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "9.999999e-95", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "-9.999999e-95", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "9.999999e96", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "9.999999e96", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e-95", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e-95", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "1.0", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "1.0", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "1.0e-96", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "[1234566]", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "[1234566]", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "[1234567]", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "[1234567]", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "[6098967e]", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "[6098967e]", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "[6098967f]", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "[6098967f]", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "[60989680]", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "9.999999e96", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "9.999999e96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "9.999999e96", "1", "00")
+ self.bid32_quiet_less("0", "-9.999999e96", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "9.999999e96", "Infinity", "1", "00")
+ self.bid32_quiet_less("0", "[af8f423f]", "[b200000a]", "0", "00")
+ self.bid32_quiet_less("0", "[af8f4240]", "[b200000a]", "0", "00")
+ self.bid32_quiet_less("0", "[af8f4241]", "[b200000a]", "1", "00")
+ self.bid32_quiet_less("0", "[b2000002]", "[35800001]", "1", "00")
+ self.bid32_quiet_less("0", "[b2000002]", "[b2000001]", "1", "00")
+ self.bid32_quiet_less("0", "[b2000002]", "[b2000003]", "0", "00")
+ self.bid32_quiet_less("0", "[b2000002]", "[b5800001]", "0", "00")
+ self.bid32_quiet_less("0", "[b200000a]", "[af8f423f]", "1", "00")
+ self.bid32_quiet_less("0", "[b200000a]", "[af8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "[b200000a]", "[af8f4241]", "0", "00")
+ self.bid32_quiet_less("0", "[b200000a]", "[b6800064]", "0", "00")
+ self.bid32_quiet_less("0", "[b5800001]", "[32000002]", "1", "00")
+ self.bid32_quiet_less("0", "[b5800001]", "[b2000002]", "1", "00")
+ self.bid32_quiet_less("0", "[b6800064]", "[b200000a]", "1", "00")
+ self.bid32_quiet_less("0", "[f8000001]", "[00000002]", "1", "00")
+ self.bid32_quiet_less("0", "[f8000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_less("0", "[f8000001]", "[80000002]", "1", "00")
+ self.bid32_quiet_less("0", "[f8000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "1.0", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "1.0e-96", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "[1234566]", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "[1234567]", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "[6098967e]", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "[6098967f]", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "[60989680]", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "[7e100000]", "0", "01")
+ self.bid32_quiet_less("0", "Infinity", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "9.999999e96", "0", "00")
+ self.bid32_quiet_less("0", "Infinity", "Inf", "0", "00")
+ }
+
+ private func bid32_quiet_less(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLess(than: arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_quiet_less_equal() {
+ self.bid32_quiet_less_equal("0", "[00000000]", "[00000001]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[00000000]", "[80000001]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[00000001]", "[00000000]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[00000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[00000001]", "[80000000]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[00000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "1.0", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "[1234566]", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "[1234567]", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "[6098967e]", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "[6098967f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "[60989680]", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "1.0", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "1.0", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "1.0", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "1.0e-96", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "1.0e-96", "1", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "[1234566]", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "[1234566]", "1", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "[1234567]", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "[1234567]", "1", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "[60989680]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "[60989680]", "1", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "-1.0e-96", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0e-96", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "1.0", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "1.0", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "[1234566]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "[1234567]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "[60989680]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[1234566]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234566]", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "1.0", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "[1234566]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "[1234567]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "[60989680]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[1234567]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "[1234567]", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "[2f8f423f]", "[3200000a]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[2f8f4240]", "[3200000a]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[2f8f4241]", "[3200000a]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[32000001]", "[7e000000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[32000002]", "[32000001]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[32000002]", "[32000003]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[32000002]", "[35800001]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[32000002]", "[b5800001]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[3200000a]", "[2f8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[3200000a]", "[2f8f4240]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[3200000a]", "[2f8f4241]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[3200000a]", "[36800064]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[35800001]", "[32000002]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[35800001]", "[b2000002]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[36800064]", "[3200000a]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "1.0", "1", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "[1234566]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "[1234567]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "[60989680]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "[6098967e]", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "1.0", "1", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "[1234566]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "[1234567]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "[6098967e]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "[60989680]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "[6098967f]", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "1.0", "1", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "1.0e-96", "1", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "[1234566]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "[1234567]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "[60989680]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[60989680]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "[60989680]", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "[78000001]", "[00000002]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[78000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[78000001]", "[80000002]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[78000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "1.0", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "[1234566]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "[1234567]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "[6098967e]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "[6098967f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "[60989680]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f423f]", "Infinity", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "1.0", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "[1234566]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "[1234567]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "[6098967e]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "[6098967f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "[60989680]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7c8f4240]", "Infinity", "0", "00")
+ self.bid32_quiet_less_equal("0", "[7e000000]", "[32000001]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "1.0", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "-1.0e-96", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "1.0e-96", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "[1234566]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "[1234567]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "[6098967e]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "[6098967f]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "[60989680]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "[7c8f423f]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "[7c8f4240]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "-9.999999e-95", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "9.999999e-95", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "-9.999999e96", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "9.999999e96", "0", "01")
+ self.bid32_quiet_less_equal("0", "[7e100000]", "Infinity", "0", "01")
+ self.bid32_quiet_less_equal("0", "[80000000]", "[00000001]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[80000000]", "[80000001]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[80000001]", "[00000000]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[80000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[80000001]", "[80000000]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[80000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "1.0", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "1.0", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "-1.0e-96", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "1.0e-96", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "[1234566]", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "[1234566]", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "[1234567]", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "[1234567]", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "[60989680]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "[60989680]", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e-95", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e-95", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "1.0", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "1.0", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "1.0e-96", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "[1234566]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "[1234566]", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "[1234567]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "[1234567]", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "[6098967e]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "[6098967f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "[60989680]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "[60989680]", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_equal("0", "-9.999999e96", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "9.999999e96", "Infinity", "1", "00")
+ self.bid32_quiet_less_equal("0", "[af8f423f]", "[b200000a]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[af8f4240]", "[b200000a]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[af8f4241]", "[b200000a]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[b2000002]", "[35800001]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[b2000002]", "[b2000001]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[b2000002]", "[b2000003]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[b2000002]", "[b5800001]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[b200000a]", "[af8f423f]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[b200000a]", "[af8f4240]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[b200000a]", "[af8f4241]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[b200000a]", "[b6800064]", "0", "00")
+ self.bid32_quiet_less_equal("0", "[b5800001]", "[32000002]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[b5800001]", "[b2000002]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[b6800064]", "[b200000a]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[f8000001]", "[00000002]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[f8000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[f8000001]", "[80000002]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[f8000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "1.0", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "[1234566]", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "[1234567]", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "[6098967e]", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "[6098967f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "[60989680]", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "[7e100000]", "0", "01")
+ self.bid32_quiet_less_equal("0", "Infinity", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "9.999999e96", "0", "00")
+ self.bid32_quiet_less_equal("0", "Infinity", "Inf", "1", "00")
+ self.bid32_quiet_less_equal("0", "[00000000]", "[bd800000]", "1", "00")
+ self.bid32_quiet_less_equal("0", "[00000000]", "[bd800000]", "1", "00")
+ }
+
+ private func bid32_quiet_less_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLessThanOrEqualTo(arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_quiet_less_unordered() {
+ self.bid32_quiet_less_unordered("0", "[00000000]", "[00000001]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[00000000]", "[80000001]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[00000001]", "[00000000]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[00000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[00000001]", "[80000000]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[00000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "1.0", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "[1234566]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "[1234567]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "[6098967e]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "[6098967f]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "[60989680]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "1.0", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "1.0e-96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "[1234566]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "[1234566]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "[1234567]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "[1234567]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "[60989680]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "[60989680]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-1.0e-96", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0e-96", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "1.0", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "[1234566]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "[1234567]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "[60989680]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234566]", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "[1234566]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "[1234567]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "[60989680]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[1234567]", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[2f8f423f]", "[3200000a]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[2f8f4240]", "[3200000a]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[2f8f4241]", "[3200000a]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[32000001]", "[7e000000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[32000002]", "[32000001]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[32000002]", "[32000003]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[32000002]", "[35800001]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[32000002]", "[b5800001]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[3200000a]", "[2f8f423f]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[3200000a]", "[2f8f4240]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[3200000a]", "[2f8f4241]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[3200000a]", "[36800064]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[35800001]", "[32000002]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[35800001]", "[b2000002]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[36800064]", "[3200000a]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "[1234566]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "[1234567]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "[6098967e]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "[60989680]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967e]", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "[1234566]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "[1234567]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "[6098967e]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "[6098967f]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "[60989680]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[6098967f]", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "1.0e-96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "[1234566]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "[1234567]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "[60989680]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[60989680]", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[78000001]", "[00000002]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[78000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[78000001]", "[80000002]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[78000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "1.0e-96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "[1234566]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "[1234567]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "[60989680]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f423f]", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "1.0e-96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "[1234566]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "[1234567]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "[60989680]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7c8f4240]", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[7e000000]", "[32000001]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "1.0", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "-1.0e-96", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "1.0e-96", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "[1234566]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "[1234567]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "[6098967e]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "[6098967f]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "[60989680]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "[7c8f423f]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "[7c8f4240]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "-9.999999e-95", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "9.999999e-95", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "-9.999999e96", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "9.999999e96", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[7e100000]", "Infinity", "1", "01")
+ self.bid32_quiet_less_unordered("0", "[80000000]", "[00000001]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[80000000]", "[80000001]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[80000001]", "[00000000]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[80000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[80000001]", "[80000000]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[80000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "-1.0e-96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "1.0e-96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "[1234566]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "[1234566]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "[1234567]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "[1234567]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "[60989680]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "[60989680]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e-95", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e-95", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "1.0", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "1.0", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "1.0e-96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "[1234566]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "[1234566]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "[1234567]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "[1234567]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "[6098967e]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "[6098967e]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "[6098967f]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "[6098967f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "[60989680]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "[60989680]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "9.999999e96", "1", "00")
+ self.bid32_quiet_less_unordered("0", "-9.999999e96", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "9.999999e96", "Infinity", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[af8f423f]", "[b200000a]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[af8f4240]", "[b200000a]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[af8f4241]", "[b200000a]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[b2000002]", "[35800001]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[b2000002]", "[b2000001]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[b2000002]", "[b2000003]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[b2000002]", "[b5800001]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[b200000a]", "[af8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[b200000a]", "[af8f4240]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[b200000a]", "[af8f4241]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[b200000a]", "[b6800064]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[b5800001]", "[32000002]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[b5800001]", "[b2000002]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[b6800064]", "[b200000a]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[f8000001]", "[00000002]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[f8000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[f8000001]", "[80000002]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "[f8000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "1.0", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "-1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "1.0e-96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "[1234566]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "[1234567]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "[6098967e]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "[6098967f]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "[60989680]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "[7e100000]", "1", "01")
+ self.bid32_quiet_less_unordered("0", "Infinity", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "9.999999e-95", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "-9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "9.999999e96", "0", "00")
+ self.bid32_quiet_less_unordered("0", "Infinity", "Inf", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[df800000]", "[df000000]", "0", "00")
+ self.bid32_quiet_less_unordered("0", "[df800000]", "[df000000]", "0", "00")
+ }
+
+ private func bid32_quiet_less_unordered(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLessThanOrEqualTo(arg0, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_quiet_not_greater() {
+ self.bid32_quiet_not_greater("0", "[00000000]", "[00000001]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[00000000]", "[80000001]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[00000001]", "[00000000]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[00000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[00000001]", "[80000000]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[00000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "[1234566]", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "[1234567]", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "[60989680]", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "1.0", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "[1234566]", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "[1234566]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "[1234567]", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "[1234567]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "[60989680]", "0", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "[60989680]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "-1.0e-96", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0e-96", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "1.0", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "[60989680]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[1234566]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234566]", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "[1234566]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "[60989680]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[1234567]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[1234567]", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "[2f8f423f]", "[3200000a]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[2f8f4240]", "[3200000a]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[2f8f4241]", "[3200000a]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[32000001]", "[7e000000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[32000002]", "[32000001]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[32000002]", "[32000003]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[32000002]", "[35800001]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[32000002]", "[b5800001]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[3200000a]", "[2f8f423f]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[3200000a]", "[2f8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[3200000a]", "[2f8f4241]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[3200000a]", "[36800064]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[35800001]", "[32000002]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[35800001]", "[b2000002]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[36800064]", "[3200000a]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "[1234566]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "[1234567]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "[60989680]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967e]", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "[1234566]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "[1234567]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "[60989680]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[6098967f]", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[60989680]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[60989680]", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "[78000001]", "[00000002]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[78000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[78000001]", "[80000002]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[78000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f423f]", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7c8f4240]", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "[7e000000]", "[32000001]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "1.0", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "-1.0e-96", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "1.0e-96", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "[1234566]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "[1234567]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "[6098967e]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "[6098967f]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "[60989680]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "[7c8f423f]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "[7c8f4240]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "-9.999999e-95", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "9.999999e-95", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "-9.999999e96", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "9.999999e96", "1", "01")
+ self.bid32_quiet_not_greater("0", "[7e100000]", "Infinity", "1", "01")
+ self.bid32_quiet_not_greater("0", "[80000000]", "[00000001]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[80000000]", "[80000001]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[80000001]", "[00000000]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[80000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[80000001]", "[80000000]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[80000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "[1234566]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "[1234566]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "[1234567]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "[1234567]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "[60989680]", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "[60989680]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e-95", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e-95", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "1.0", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "1.0", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "[1234566]", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "[1234566]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "[1234567]", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "[1234567]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "[60989680]", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "[60989680]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_greater("0", "-9.999999e96", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "9.999999e96", "Infinity", "1", "00")
+ self.bid32_quiet_not_greater("0", "[af8f423f]", "[b200000a]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[af8f4240]", "[b200000a]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[af8f4241]", "[b200000a]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[b2000002]", "[35800001]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[b2000002]", "[b2000001]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[b2000002]", "[b2000003]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[b2000002]", "[b5800001]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[b200000a]", "[af8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[b200000a]", "[af8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[b200000a]", "[af8f4241]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[b200000a]", "[b6800064]", "0", "00")
+ self.bid32_quiet_not_greater("0", "[b5800001]", "[32000002]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[b5800001]", "[b2000002]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[b6800064]", "[b200000a]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[f8000001]", "[00000002]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[f8000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[f8000001]", "[80000002]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[f8000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "1.0", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "[1234566]", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "[1234567]", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "[60989680]", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_greater("0", "Infinity", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_greater("0", "Infinity", "Inf", "1", "00")
+ self.bid32_quiet_not_greater("0", "[06800000]", "[df800000]", "1", "00")
+ self.bid32_quiet_not_greater("0", "[06800000]", "[df800000]", "1", "00")
+ }
+
+ private func bid32_quiet_not_greater(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLess(than: arg0, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_quiet_not_less() {
+ self.bid32_quiet_not_less("0", "[00000000]", "[00000001]", "0", "00")
+ self.bid32_quiet_not_less("0", "[00000000]", "[80000001]", "1", "00")
+ self.bid32_quiet_not_less("0", "[00000001]", "[00000000]", "1", "00")
+ self.bid32_quiet_not_less("0", "[00000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_not_less("0", "[00000001]", "[80000000]", "1", "00")
+ self.bid32_quiet_not_less("0", "[00000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "1.0", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "[1234566]", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "[1234567]", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "1.0", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_less("0", "1.0", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "1.0", "0", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "1.0", "0", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "[1234566]", "0", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "[1234566]", "0", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "[1234567]", "0", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "[1234567]", "0", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "[60989680]", "0", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "1.0e-96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "-1.0e-96", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "1.0e-96", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "1.0", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "1.0", "0", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "[1234567]", "0", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "[1234566]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234566]", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "1.0", "0", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "[1234567]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "[1234567]", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "[2f8f423f]", "[3200000a]", "0", "00")
+ self.bid32_quiet_not_less("0", "[2f8f4240]", "[3200000a]", "1", "00")
+ self.bid32_quiet_not_less("0", "[2f8f4241]", "[3200000a]", "1", "00")
+ self.bid32_quiet_not_less("0", "[32000001]", "[7e000000]", "1", "01")
+ self.bid32_quiet_not_less("0", "[32000002]", "[32000001]", "1", "00")
+ self.bid32_quiet_not_less("0", "[32000002]", "[32000003]", "0", "00")
+ self.bid32_quiet_not_less("0", "[32000002]", "[35800001]", "0", "00")
+ self.bid32_quiet_not_less("0", "[32000002]", "[b5800001]", "1", "00")
+ self.bid32_quiet_not_less("0", "[3200000a]", "[2f8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "[3200000a]", "[2f8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "[3200000a]", "[2f8f4241]", "0", "00")
+ self.bid32_quiet_not_less("0", "[3200000a]", "[36800064]", "0", "00")
+ self.bid32_quiet_not_less("0", "[35800001]", "[32000002]", "1", "00")
+ self.bid32_quiet_not_less("0", "[35800001]", "[b2000002]", "1", "00")
+ self.bid32_quiet_not_less("0", "[36800064]", "[3200000a]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "1.0", "0", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "[6098967e]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967e]", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "1.0", "0", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "[6098967f]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "[6098967f]", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "1.0", "0", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "[1234566]", "0", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "[1234567]", "0", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "[60989680]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "[60989680]", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "[78000001]", "[00000002]", "1", "00")
+ self.bid32_quiet_not_less("0", "[78000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_not_less("0", "[78000001]", "[80000002]", "1", "00")
+ self.bid32_quiet_not_less("0", "[78000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "1.0", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f423f]", "Infinity", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "1.0", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "[7c8f4240]", "Infinity", "1", "00")
+ self.bid32_quiet_not_less("0", "[7e000000]", "[32000001]", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "1.0", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "-1.0e-96", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "1.0e-96", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "[1234566]", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "[1234567]", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "[6098967e]", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "[6098967f]", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "[60989680]", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "[7c8f423f]", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "[7c8f4240]", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "-9.999999e-95", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "9.999999e-95", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "-9.999999e96", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "9.999999e96", "1", "01")
+ self.bid32_quiet_not_less("0", "[7e100000]", "Infinity", "1", "01")
+ self.bid32_quiet_not_less("0", "[80000000]", "[00000001]", "0", "00")
+ self.bid32_quiet_not_less("0", "[80000000]", "[80000001]", "1", "00")
+ self.bid32_quiet_not_less("0", "[80000001]", "[00000000]", "0", "00")
+ self.bid32_quiet_not_less("0", "[80000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_not_less("0", "[80000001]", "[80000000]", "0", "00")
+ self.bid32_quiet_not_less("0", "[80000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "1.0", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "1.0", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "[1234566]", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "[1234566]", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "[1234567]", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "[1234567]", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "[60989680]", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e-95", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e-95", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "1.0", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "1.0", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "[1234566]", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "[1234566]", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "[1234567]", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "[1234567]", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "[60989680]", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "9.999999e96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "-9.999999e96", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "9.999999e96", "Infinity", "0", "00")
+ self.bid32_quiet_not_less("0", "[af8f423f]", "[b200000a]", "1", "00")
+ self.bid32_quiet_not_less("0", "[af8f4240]", "[b200000a]", "1", "00")
+ self.bid32_quiet_not_less("0", "[af8f4241]", "[b200000a]", "0", "00")
+ self.bid32_quiet_not_less("0", "[b2000002]", "[35800001]", "0", "00")
+ self.bid32_quiet_not_less("0", "[b2000002]", "[b2000001]", "0", "00")
+ self.bid32_quiet_not_less("0", "[b2000002]", "[b2000003]", "1", "00")
+ self.bid32_quiet_not_less("0", "[b2000002]", "[b5800001]", "1", "00")
+ self.bid32_quiet_not_less("0", "[b200000a]", "[af8f423f]", "0", "00")
+ self.bid32_quiet_not_less("0", "[b200000a]", "[af8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "[b200000a]", "[af8f4241]", "1", "00")
+ self.bid32_quiet_not_less("0", "[b200000a]", "[b6800064]", "1", "00")
+ self.bid32_quiet_not_less("0", "[b5800001]", "[32000002]", "0", "00")
+ self.bid32_quiet_not_less("0", "[b5800001]", "[b2000002]", "0", "00")
+ self.bid32_quiet_not_less("0", "[b6800064]", "[b200000a]", "0", "00")
+ self.bid32_quiet_not_less("0", "[f8000001]", "[00000002]", "0", "00")
+ self.bid32_quiet_not_less("0", "[f8000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_not_less("0", "[f8000001]", "[80000002]", "0", "00")
+ self.bid32_quiet_not_less("0", "[f8000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "1.0", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "[1234566]", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "[1234567]", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "[60989680]", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_less("0", "Infinity", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_less("0", "Infinity", "Inf", "1", "00")
+ self.bid32_quiet_not_less("0", "[04800000]", "[81800000]", "1", "00")
+ self.bid32_quiet_not_less("0", "[04800000]", "[81800000]", "1", "00")
+ }
+
+ private func bid32_quiet_not_less(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLess(than: arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_quiet_greater() {
+ self.bid64_quiet_greater("0", "[0000000000000000]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_greater("0", "[0000000000000000]", "[0000000000000001]", "0", "00")
+ self.bid64_quiet_greater("0", "[0000000000000000]", "[8000000000000001]", "1", "00")
+ self.bid64_quiet_greater("0", "[0000000000000001]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_greater("0", "[0000000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_greater("0", "[0000000000000001]", "[8000000000000000]", "1", "00")
+ self.bid64_quiet_greater("0", "[0000000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_greater("0", "[0020000200081004]", "[e77f7f7ffffefb7f]", "1", "00")
+ self.bid64_quiet_greater("0", "[0800000000c42184]", "[5789698ef7cd5f64]", "0", "00")
+ self.bid64_quiet_greater("0", "[0a72000000000000]", "[a4b73fcb7660f2a0]", "1", "00")
+ self.bid64_quiet_greater("0", "[0e2c000000000000]", "[22a788d9e4a65b58]", "0", "00")
+ self.bid64_quiet_greater("0", "-0", "Infinity", "0", "00")
+ self.bid64_quiet_greater("0", "0", "Infinity", "0", "00")
+ self.bid64_quiet_greater("0", "[1011000008130020]", "[008001003001089c]", "1", "00")
+ self.bid64_quiet_greater("0", "[25a0000000000000]", "[9a3d4ea561294a4f]", "1", "00")
+ self.bid64_quiet_greater("0", "[2b1cebc95eae12f2]", "[a86fa61712c3ebeb]", "1", "00")
+ self.bid64_quiet_greater("0", "[2fe38d7ea4c67fff]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_greater("0", "[2fe38d7ea4c68000]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_greater("0", "[2fe38d7ea4c68001]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_greater("0", "[31a0000000000002]", "[31a0000000000001]", "1", "00")
+ self.bid64_quiet_greater("0", "[31a0000000000002]", "[31a0000000000003]", "0", "00")
+ self.bid64_quiet_greater("0", "[31a0000000000002]", "[33a0000000000001]", "0", "00")
+ self.bid64_quiet_greater("0", "[31a0000000000002]", "[b3a0000000000001]", "1", "00")
+ self.bid64_quiet_greater("0", "[31a000000000000a]", "[2fe38d7ea4c67fff]", "1", "00")
+ self.bid64_quiet_greater("0", "[31a000000000000a]", "[2fe38d7ea4c68000]", "0", "00")
+ self.bid64_quiet_greater("0", "[31a000000000000a]", "[2fe38d7ea4c68001]", "0", "00")
+ self.bid64_quiet_greater("0", "[31a000000000000a]", "[32c0000000000064]", "0", "00")
+ self.bid64_quiet_greater("0", "[32c0000000000064]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_greater("0", "[33a0000000000001]", "[31a0000000000002]", "1", "00")
+ self.bid64_quiet_greater("0", "[33a0000000000001]", "[b1a0000000000002]", "1", "00")
+ self.bid64_quiet_greater("0", "[390a149a36e2ed43]", "[3a88130691554406]", "0", "00")
+ self.bid64_quiet_greater("0", "[3b40c1a859704636]", "[68d1cec2cb1331b6]", "1", "00")
+ self.bid64_quiet_greater("0", "[3cfcefb5730c11be]", "[56b95d7479f1b9cf]", "0", "00")
+ self.bid64_quiet_greater("0", "[4913f3cd899ee944]", "[7a11c1682482e2af]", "0", "00")
+ self.bid64_quiet_greater("0", "[4d778c661a5fdfa2]", "[0018040082100414]", "1", "00")
+ self.bid64_quiet_greater("0", "[4f40000000000000]", "[7190443efdd5536c]", "0", "00")
+ self.bid64_quiet_greater("0", "[60d0c00289800340]", "[3201559da16e5a4c]", "0", "00")
+ self.bid64_quiet_greater("0", "[661b41b6fcc22c2f]", "[f18a76489c92bb16]", "1", "00")
+ self.bid64_quiet_greater("0", "[70a30ecddb65d4ee]", "[6192c5cf27bb1aa8]", "1", "00")
+ self.bid64_quiet_greater("0", "[7800000000000001]", "[0000000000000002]", "1", "00")
+ self.bid64_quiet_greater("0", "[7800000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_greater("0", "[7800000000000001]", "[8000000000000002]", "1", "00")
+ self.bid64_quiet_greater("0", "[7800000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_greater("0", "[7bffff6ffbfbffff]", "[b8ff76db12202792]", "1", "00")
+ self.bid64_quiet_greater("0", "[8000000000000000]", "[0000000000000001]", "0", "00")
+ self.bid64_quiet_greater("0", "[8000000000000000]", "[8000000000000001]", "1", "00")
+ self.bid64_quiet_greater("0", "[8000000000000001]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_greater("0", "[8000000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_greater("0", "[8000000000000001]", "[8000000000000000]", "0", "00")
+ self.bid64_quiet_greater("0", "[8000000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_greater("0", "[97efffd7dbfefdf7]", "[2078317b44710090]", "0", "00")
+ self.bid64_quiet_greater("0", "[a1a7b29c62766226]", "[88be332b7ccd087e]", "0", "00")
+ self.bid64_quiet_greater("0", "[afe38d7ea4c67fff]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_greater("0", "[afe38d7ea4c68000]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_greater("0", "[afe38d7ea4c68001]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_greater("0", "[b1a0000000000002]", "[33a0000000000001]", "0", "00")
+ self.bid64_quiet_greater("0", "[b1a0000000000002]", "[b1a0000000000001]", "0", "00")
+ self.bid64_quiet_greater("0", "[b1a0000000000002]", "[b1a0000000000003]", "1", "00")
+ self.bid64_quiet_greater("0", "[b1a0000000000002]", "[b3a0000000000001]", "1", "00")
+ self.bid64_quiet_greater("0", "[b1a000000000000a]", "[afe38d7ea4c67fff]", "0", "00")
+ self.bid64_quiet_greater("0", "[b1a000000000000a]", "[afe38d7ea4c68000]", "0", "00")
+ self.bid64_quiet_greater("0", "[b1a000000000000a]", "[afe38d7ea4c68001]", "1", "00")
+ self.bid64_quiet_greater("0", "[b1a000000000000a]", "[b2c0000000000064]", "1", "00")
+ self.bid64_quiet_greater("0", "[b2c0000000000064]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_greater("0", "[b3a0000000000001]", "[31a0000000000002]", "0", "00")
+ self.bid64_quiet_greater("0", "[b3a0000000000001]", "[b1a0000000000002]", "0", "00")
+ self.bid64_quiet_greater("0", "[bc4dffe96dff7f55]", "[bbfbfdf76df9d7eb]", "0", "00")
+ self.bid64_quiet_greater("0", "[d2c96fa29804e7aa]", "[e240000200026404]", "0", "00")
+ self.bid64_quiet_greater("0", "[dd60000000000000]", "[e381f7fc49b0aa04]", "1", "00")
+ self.bid64_quiet_greater("0", "[ec6dee52ed58a0c3]", "[f6ffdff7af9fff6b]", "0", "00")
+ self.bid64_quiet_greater("0", "[f0a05f4844ed3c37]", "[cff6f2bd6fbffd7c]", "1", "00")
+ self.bid64_quiet_greater("0", "[f375521ecb2f50cc]", "[33373fcf8db37b8d]", "0", "00")
+ self.bid64_quiet_greater("0", "[f800000000000001]", "[0000000000000002]", "0", "00")
+ self.bid64_quiet_greater("0", "[f800000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_greater("0", "[f800000000000001]", "[8000000000000002]", "0", "00")
+ self.bid64_quiet_greater("0", "[f800000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_greater("0", "[fbf7fdfffbffffdf]", "[0208100000810000]", "0", "00")
+ self.bid64_quiet_greater("0", "[fffffffff7ffffff]", "[001b080478f00400]", "0", "01")
+ self.bid64_quiet_greater("0", "-Infinity", "QNaN", "0", "00")
+ self.bid64_quiet_greater("0", "QNaN", "-0", "0", "00")
+ self.bid64_quiet_greater("0", "SNaN", "-0", "0", "01")
+ self.bid64_quiet_greater("0", "SNaN", "0", "0", "01")
+ self.bid64_quiet_greater("0", "SNaN", "-Infinity", "0", "01")
+ self.bid64_quiet_greater("0", "SNaN", "Infinity", "0", "01")
+ }
+
+ private func bid64_quiet_greater(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLess(than: arg0, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_quiet_greater_equal() {
+ self.bid64_quiet_greater_equal("0", "[0000000000000000]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[0000000000000000]", "[0000000000000001]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[0000000000000000]", "[79c75ae0ede38af6]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[0000000000000000]", "[8000000000000001]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[0000000000000001]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[0000000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[0000000000000001]", "[8000000000000000]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[0000000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[0000000000000050]", "[0020000000000008]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[088d088818102bc1]", "[6080814000628380]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[0a80000009004608]", "[166cd59811cacfd9]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[0dbb3da4645de750]", "[9f67143eafaabc58]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "-0", "SNaN", "0", "01")
+ self.bid64_quiet_greater_equal("0", "1", "1.0", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[2fe38d7ea4c67fff]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[2fe38d7ea4c68000]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[2fe38d7ea4c68001]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[31a0000000000002]", "[31a0000000000001]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[31a0000000000002]", "[31a0000000000003]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[31a0000000000002]", "[33a0000000000001]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[31a0000000000002]", "[b3a0000000000001]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[31a000000000000a]", "[2fe38d7ea4c67fff]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[31a000000000000a]", "[2fe38d7ea4c68000]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[31a000000000000a]", "[2fe38d7ea4c68001]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[31a000000000000a]", "[32c0000000000064]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[32c0000000000064]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[33a0000000000001]", "[31a0000000000002]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[33a0000000000001]", "[b1a0000000000002]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[343cf06e2045b93c]", "[df80df78bcf9c7e5]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[5d4c168f01869bb6]", "[8b00000000000000]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[7800000000000001]", "[0000000000000002]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[7800000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[7800000000000001]", "[8000000000000002]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[7800000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[7b69be7fa1fcbb0f]", "[810fe5406a8c1366]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[8000000000000000]", "[0000000000000001]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[8000000000000000]", "[8000000000000001]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[8000000000000001]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[8000000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[8000000000000001]", "[8000000000000000]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[8000000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[83857e6455aa3312]", "[d48ed01cbb28b026]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[8fa8d17bdc9e87b8]", "[349df9706fe32722]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[936c3c3eb4fdc8ad]", "[944a690a765c6030]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[a6cea894611e8957]", "[af0fb90cfa58be3e]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[a9a50477edffb6d2]", "[61a14eae886fc0e6]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[ab80000000000000]", "[119da30afc0820d0]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[afe38d7ea4c67fff]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[afe38d7ea4c68000]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[afe38d7ea4c68001]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[b042289689140720]", "[ae928a3df5d03522]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[b1a0000000000002]", "[33a0000000000001]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[b1a0000000000002]", "[b1a0000000000001]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[b1a0000000000002]", "[b1a0000000000003]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[b1a0000000000002]", "[b3a0000000000001]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[b1a000000000000a]", "[afe38d7ea4c67fff]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[b1a000000000000a]", "[afe38d7ea4c68000]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[b1a000000000000a]", "[afe38d7ea4c68001]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[b1a000000000000a]", "[b2c0000000000064]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[b2c0000000000064]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[b3a0000000000001]", "[31a0000000000002]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[b3a0000000000001]", "[b1a0000000000002]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[bc1458ce30c4a0a3]", "[a880000000000000]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[bd67b65505c44b9c]", "[b1580edd103b8052]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[c2c23cefae45602a]", "[e37bcbb42f26af04]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[c52708b980dc3b19]", "[b93562b3e6996ab0]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[ea8759f32a607df2]", "[0100000000000000]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[efb2734ae8bc87e0]", "[e938e06f06b218b1]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[f442d7bfcf31b7dd]", "[d91acbf2f674cc64]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[f77f7fd3fa17dd69]", "[020caa0e24300980]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[f800000000000001]", "[0000000000000002]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[f800000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[f800000000000001]", "[8000000000000002]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[f800000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_greater_equal("0", "[f88efdfad52ae1e9]", "[ddbfa8d02e03367e]", "0", "00")
+ self.bid64_quiet_greater_equal("0", "[ffadfef7ffbfcbff]", "[2008000000000000]", "0", "01")
+ self.bid64_quiet_greater_equal("0", "-Infinity", "0", "0", "00")
+ self.bid64_quiet_greater_equal("0", "Infinity", "0", "1", "00")
+ self.bid64_quiet_greater_equal("0", "-Infinity", "SNaN", "0", "01")
+ self.bid64_quiet_greater_equal("0", "Infinity", "SNaN", "0", "01")
+ self.bid64_quiet_greater_equal("0", "SNaN", "-0", "0", "01")
+ self.bid64_quiet_greater_equal("0", "SNaN", "+11.001E0", "0", "01")
+ }
+
+ private func bid64_quiet_greater_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLessThanOrEqualTo(arg0, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_quiet_greater_unordered() {
+ self.bid64_quiet_greater_unordered("0", "[0000000000000000]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[0000000000000000]", "[0000000000000001]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[0000000000000000]", "[8000000000000001]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[0000000000000001]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[0000000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[0000000000000001]", "[8000000000000000]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[0000000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[0112d90c2000002a]", "[0240044c00002402]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[01a8e90200000012]", "[00110c3f40f121e1]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[02aeb5e4dff5d590]", "[1b00000000000000]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[093cafbb19db4794]", "[505ea0008c65a960]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[0988000000000000]", "[26fb0af95803dfc5]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[0b0c4e0a5ac21810]", "[05ed3783549f48c1]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "-0", "Infinity", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "0", "Infinity", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "0", "QNaN", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "0", "SNaN", "1", "01")
+ self.bid64_quiet_greater_unordered("0", "1.0", "1", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "1", "1.0", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[18d62bc549bd29ec]", "[2d90647c797f2e9f]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[2488a4a6f6eb23fb]", "[0a0bb83de7383c86]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[28c861665f3d672c]", "[2739dc40ea0f8774]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[2c20000000000000]", "[2b6e4bc28a17db10]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[2de577498e5405ef]", "[71a824ed9f697670]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[2fe38d7ea4c67fff]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[2fe38d7ea4c68000]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[2fe38d7ea4c68001]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[31a0000000000002]", "[31a0000000000001]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[31a0000000000002]", "[31a0000000000003]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[31a0000000000002]", "[33a0000000000001]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[31a0000000000002]", "[b3a0000000000001]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[31a000000000000a]", "[2fe38d7ea4c67fff]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[31a000000000000a]", "[2fe38d7ea4c68000]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[31a000000000000a]", "[2fe38d7ea4c68001]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[31a000000000000a]", "[32c0000000000064]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[32c0000000000064]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[33a0000000000001]", "[31a0000000000002]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[33a0000000000001]", "[b1a0000000000002]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[3aa4770bd8028886]", "[bc987061b28f64e2]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[5abfaeccd5ab94f9]", "[75cf974e9ff797a1]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[5bd3a4efe57d1eb2]", "[08200080102000a0]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[5fc6da5374a38ee1]", "[07d942a58278e500]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[69517be8743189d1]", "[500b1de303150498]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[7800000000000001]", "[0000000000000002]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[7800000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[7800000000000001]", "[8000000000000002]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[7800000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[7b205536141243c4]", "[67e7f96fefcffbff]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[8000000000000000]", "[0000000000000001]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[8000000000000000]", "[8000000000000001]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[8000000000000001]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[8000000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[8000000000000001]", "[8000000000000000]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[8000000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[9fa6ce84bb0eb14e]", "[230e2568612228e4]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[a1f1ad78d4f17021]", "[63da2c91cb28c29d]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[af8e39b893f25277]", "[40a0000000000000]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[afe38d7ea4c67fff]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[afe38d7ea4c68000]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[afe38d7ea4c68001]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[b1a0000000000002]", "[33a0000000000001]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[b1a0000000000002]", "[b1a0000000000001]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[b1a0000000000002]", "[b1a0000000000003]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[b1a0000000000002]", "[b3a0000000000001]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[b1a000000000000a]", "[afe38d7ea4c67fff]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[b1a000000000000a]", "[afe38d7ea4c68000]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[b1a000000000000a]", "[afe38d7ea4c68001]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[b1a000000000000a]", "[b2c0000000000064]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[b2c0000000000064]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[b3a0000000000001]", "[31a0000000000002]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[b3a0000000000001]", "[b1a0000000000002]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[b7fffffd7ffffbff]", "[fa125be2eacf7f4e]", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "[e8750721a9f7adef]", "[4c0489ea867926ac]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[e9fe8ad0a5afcbb2]", "[e084ac6f8fb9f793]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[f800000000000001]", "[0000000000000002]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[f800000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[f800000000000001]", "[8000000000000002]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[f800000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[f8169eb30860a09b]", "[cee33829b453621a]", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "[fbffefde9fbfffbf]", "[ffffff3ffffffeff]", "1", "01")
+ self.bid64_quiet_greater_unordered("0", "-Infinity", "-0", "0", "00")
+ self.bid64_quiet_greater_unordered("0", "Infinity", "+0.E0", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "-Infinity", "QNaN", "1", "00")
+ self.bid64_quiet_greater_unordered("0", "SNaN", "-Infinity", "1", "01")
+ }
+
+ private func bid64_quiet_greater_unordered(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLessThanOrEqualTo(arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_quiet_less() {
+ self.bid64_quiet_less("0", "-0", "-0", "0", "00")
+ self.bid64_quiet_less("0", "[0000000000000000]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_less("0", "[0000000000000000]", "[0000000000000001]", "1", "00")
+ self.bid64_quiet_less("0", "[0000000000000000]", "[8000000000000001]", "0", "00")
+ self.bid64_quiet_less("0", "[0000000000000000]", "[dd07b3a4d3ef27fe]", "0", "00")
+ self.bid64_quiet_less("0", "[0000000000000001]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_less("0", "[0000000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_less("0", "[0000000000000001]", "[8000000000000000]", "0", "00")
+ self.bid64_quiet_less("0", "[0000000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_less("0", "-0", "-0.E0", "0", "00")
+ self.bid64_quiet_less("0", "[0100008000000042]", "[00a0040008010001]", "0", "00")
+ self.bid64_quiet_less("0", "-0", "-Infinity", "0", "00")
+ self.bid64_quiet_less("0", "-0", "SNaN", "0", "01")
+ self.bid64_quiet_less("0", "1.0", "1", "0", "00")
+ self.bid64_quiet_less("0", "1", "1.0", "0", "00")
+ self.bid64_quiet_less("0", "[1c36c22b18aa559e]", "[3a3ade39070c25da]", "1", "00")
+ self.bid64_quiet_less("0", "[200819ba02c4127e]", "[05638210db876a12]", "0", "00")
+ self.bid64_quiet_less("0", "[2fe38d7ea4c67fff]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_less("0", "[2fe38d7ea4c68000]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_less("0", "[2fe38d7ea4c68001]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_less("0", "[30e297691009e893]", "[0ea2000000000000]", "0", "00")
+ self.bid64_quiet_less("0", "[31a0000000000002]", "[31a0000000000001]", "0", "00")
+ self.bid64_quiet_less("0", "[31a0000000000002]", "[31a0000000000003]", "1", "00")
+ self.bid64_quiet_less("0", "[31a0000000000002]", "[33a0000000000001]", "1", "00")
+ self.bid64_quiet_less("0", "[31a0000000000002]", "[b3a0000000000001]", "0", "00")
+ self.bid64_quiet_less("0", "[31a000000000000a]", "[2fe38d7ea4c67fff]", "0", "00")
+ self.bid64_quiet_less("0", "[31a000000000000a]", "[2fe38d7ea4c68000]", "0", "00")
+ self.bid64_quiet_less("0", "[31a000000000000a]", "[2fe38d7ea4c68001]", "1", "00")
+ self.bid64_quiet_less("0", "[31a000000000000a]", "[32c0000000000064]", "1", "00")
+ self.bid64_quiet_less("0", "[32c0000000000064]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_less("0", "[33a0000000000001]", "[31a0000000000002]", "0", "00")
+ self.bid64_quiet_less("0", "[33a0000000000001]", "[b1a0000000000002]", "0", "00")
+ self.bid64_quiet_less("0", "[3dc8a05150811b03]", "[f5f7fffff5ff7fff]", "0", "00")
+ self.bid64_quiet_less("0", "[4040000802200001]", "[34e7c884e1256a01]", "0", "00")
+ self.bid64_quiet_less("0", "[410c62800439b909]", "[0044080020800400]", "0", "00")
+ self.bid64_quiet_less("0", "[42e0000000000000]", "[271bfc26801c6ee7]", "1", "00")
+ self.bid64_quiet_less("0", "[4653f7774a1c9896]", "[f9969a795f72ff7f]", "0", "00")
+ self.bid64_quiet_less("0", "[48968125103485b1]", "[a7043631810a4695]", "0", "00")
+ self.bid64_quiet_less("0", "[4e468766d861c2f9]", "[217fc1053c30fcd9]", "0", "00")
+ self.bid64_quiet_less("0", "[5e4ef8e5faad9c8e]", "[3d87d1b9798e5d45]", "0", "00")
+ self.bid64_quiet_less("0", "[6000004000001020]", "[80e01394820566eb]", "0", "00")
+ self.bid64_quiet_less("0", "[7800000000000001]", "[0000000000000002]", "0", "00")
+ self.bid64_quiet_less("0", "[7800000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_less("0", "[7800000000000001]", "[8000000000000002]", "0", "00")
+ self.bid64_quiet_less("0", "[7800000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_less("0", "-798668569958588.57E0", "SNaN", "0", "01")
+ self.bid64_quiet_less("0", "[7bc77713f826f7aa]", "[bfffbfffefedffdf]", "0", "00")
+ self.bid64_quiet_less("0", "[8000000000000000]", "[0000000000000001]", "1", "00")
+ self.bid64_quiet_less("0", "[8000000000000000]", "[8000000000000001]", "0", "00")
+ self.bid64_quiet_less("0", "[8000000000000001]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_less("0", "[8000000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_less("0", "[8000000000000001]", "[8000000000000000]", "1", "00")
+ self.bid64_quiet_less("0", "[8000000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_less("0", "[831d1418d24bddef]", "[a2c73c875f04fca7]", "0", "00")
+ self.bid64_quiet_less("0", "[86801160524d1903]", "[97905a3f05a0c81a]", "0", "00")
+ self.bid64_quiet_less("0", "[943356540bde9e38]", "[82c2c59c2c2a94db]", "1", "00")
+ self.bid64_quiet_less("0", "[abff9fea79793f6f]", "[acf69f12914d342b]", "0", "00")
+ self.bid64_quiet_less("0", "[afe38d7ea4c67fff]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_less("0", "[afe38d7ea4c68000]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_less("0", "[afe38d7ea4c68001]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_less("0", "[b1a0000000000002]", "[33a0000000000001]", "1", "00")
+ self.bid64_quiet_less("0", "[b1a0000000000002]", "[b1a0000000000001]", "1", "00")
+ self.bid64_quiet_less("0", "[b1a0000000000002]", "[b1a0000000000003]", "0", "00")
+ self.bid64_quiet_less("0", "[b1a0000000000002]", "[b3a0000000000001]", "0", "00")
+ self.bid64_quiet_less("0", "[b1a000000000000a]", "[afe38d7ea4c67fff]", "1", "00")
+ self.bid64_quiet_less("0", "[b1a000000000000a]", "[afe38d7ea4c68000]", "0", "00")
+ self.bid64_quiet_less("0", "[b1a000000000000a]", "[afe38d7ea4c68001]", "0", "00")
+ self.bid64_quiet_less("0", "[b1a000000000000a]", "[b2c0000000000064]", "0", "00")
+ self.bid64_quiet_less("0", "[b2c0000000000064]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_less("0", "[b3a0000000000001]", "[31a0000000000002]", "1", "00")
+ self.bid64_quiet_less("0", "[b3a0000000000001]", "[b1a0000000000002]", "1", "00")
+ self.bid64_quiet_less("0", "[c8fac5473438491d]", "[3a216342c3ffb3d1]", "1", "00")
+ self.bid64_quiet_less("0", "[d7abf7fffeffbecc]", "[62086b5eae3078b3]", "1", "00")
+ self.bid64_quiet_less("0", "[eda7ff6f0fa337dd]", "[616661635da49f12]", "0", "00")
+ self.bid64_quiet_less("0", "[f1ba26e7702b40f4]", "[b26ffd20905789b3]", "1", "00")
+ self.bid64_quiet_less("0", "[f800000000000001]", "[0000000000000002]", "1", "00")
+ self.bid64_quiet_less("0", "[f800000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_less("0", "[f800000000000001]", "[8000000000000002]", "1", "00")
+ self.bid64_quiet_less("0", "[f800000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_less("0", "[fafff3ebbdfffffc]", "[39da2e0006594434]", "1", "00")
+ self.bid64_quiet_less("0", "[fe62d71bef2bf5bf]", "[68a8c1c89872a385]", "0", "01")
+ self.bid64_quiet_less("0", "-Infinity", "Infinity", "1", "00")
+ self.bid64_quiet_less("0", "Infinity", "QNaN", "0", "00")
+ self.bid64_quiet_less("0", "QNaN", "-10.00000001E0", "0", "00")
+ self.bid64_quiet_less("0", "SNaN", "-0", "0", "01")
+ self.bid64_quiet_less("0", "SNaN", "-Infinity", "0", "01")
+ }
+
+ private func bid64_quiet_less(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLess(than: arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_quiet_less_equal() {
+ self.bid64_quiet_less_equal("0", "[0000000000000000]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[0000000000000000]", "[0000000000000001]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[0000000000000000]", "[8000000000000001]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[0000000000000000]", "[f77d5ecfffc77ea3]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[0000000000000001]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[0000000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[0000000000000001]", "[8000000000000000]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[0000000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[0000200c00080102]", "[04723cf97482a596]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[0040043848002010]", "[0004000800820a0c]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[038158a18005d416]", "[1400000160400000]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[0409d099a0b8d35c]", "[0aca000000000000]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[080000181000808c]", "[70316d6498db9967]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[088b7b0380800201]", "[79d4f95fc418888a]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[0a5e000000000000]", "[1b7c5deecfcedaba]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[0f3c8d2d0bbcd537]", "[f33b244aff0a98ab]", "0", "00")
+ self.bid64_quiet_less_equal("0", "-0", "Infinity", "1", "00")
+ self.bid64_quiet_less_equal("0", "-0", "SNaN", "0", "01")
+ self.bid64_quiet_less_equal("0", "1.0", "1", "1", "00")
+ self.bid64_quiet_less_equal("0", "1", "1.0", "1", "00")
+ self.bid64_quiet_less_equal("0", "[1b51efda47f74eea]", "[28c0000000000000]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[2ab601e84d808511]", "[225e5aff75e16cec]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[2fe38d7ea4c67fff]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[2fe38d7ea4c68000]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[2fe38d7ea4c68001]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[31a0000000000002]", "[31a0000000000001]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[31a0000000000002]", "[31a0000000000003]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[31a0000000000002]", "[33a0000000000001]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[31a0000000000002]", "[b3a0000000000001]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[31a000000000000a]", "[2fe38d7ea4c67fff]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[31a000000000000a]", "[2fe38d7ea4c68000]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[31a000000000000a]", "[2fe38d7ea4c68001]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[31a000000000000a]", "[32c0000000000064]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[32c0000000000064]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[33a0000000000001]", "[31a0000000000002]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[33a0000000000001]", "[b1a0000000000002]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[55d044d49523c220]", "[ef46026a589290ef]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[661216d9f9a7570d]", "[88d81f7c9ea44704]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[7800000000000001]", "[0000000000000002]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[7800000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[7800000000000001]", "[8000000000000002]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[7800000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[7bb18060f756c2a8]", "[d6c3f4d840b8f614]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[8000000000000000]", "[0000000000000001]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[8000000000000000]", "[8000000000000001]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[8000000000000001]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[8000000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[8000000000000001]", "[8000000000000000]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[8000000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[80a0000000000000]", "[0bec22a4116866c3]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[85fffcd360b7023c]", "[cb5faf46abd848e8]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[8670e31ef77f91fd]", "[8800100000000000]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[8a8b7cc95de11d06]", "[08cb000000000000]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[9c2bd10ff988ac17]", "[0be7000000000000]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[a85876086cdf250a]", "[fede54253f06ebfa]", "0", "01")
+ self.bid64_quiet_less_equal("0", "[afe2ff2e7fb71cbe]", "[a265cb6b5f682f7f]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[afe38d7ea4c67fff]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[afe38d7ea4c68000]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[afe38d7ea4c68001]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[b1a0000000000002]", "[33a0000000000001]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[b1a0000000000002]", "[b1a0000000000001]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[b1a0000000000002]", "[b1a0000000000003]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[b1a0000000000002]", "[b3a0000000000001]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[b1a000000000000a]", "[afe38d7ea4c67fff]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[b1a000000000000a]", "[afe38d7ea4c68000]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[b1a000000000000a]", "[afe38d7ea4c68001]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[b1a000000000000a]", "[b2c0000000000064]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[b2c0000000000064]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[b3a0000000000001]", "[31a0000000000002]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[b3a0000000000001]", "[b1a0000000000002]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[bb1e36176a12c65c]", "[0520c80a0790480b]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[c4a6d242e9c77268]", "[93e235204d54ac88]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[ed2a9a5f75a516a7]", "[edefffed7fbfffff]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[eeffffffbfffffff]", "[a86ba280a9e51cdf]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[f4f3b1f5b53fe7ef]", "[fd49a7a62ffdd76d]", "0", "00")
+ self.bid64_quiet_less_equal("0", "[f800000000000001]", "[0000000000000002]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[f800000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[f800000000000001]", "[8000000000000002]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[f800000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_less_equal("0", "[fa41e973c0208409]", "[057e571a5a24d94d]", "1", "00")
+ self.bid64_quiet_less_equal("0", "-Infinity", "Infinity", "1", "00")
+ self.bid64_quiet_less_equal("0", "Infinity", "SNaN", "0", "01")
+ self.bid64_quiet_less_equal("0", "SNaN", "0", "0", "01")
+ self.bid64_quiet_less_equal("0", "SNaN", "-Infinity", "0", "01")
+ self.bid64_quiet_less_equal("0", "SNaN", "QNaN", "0", "01")
+ }
+
+ private func bid64_quiet_less_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLessThanOrEqualTo(arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_quiet_less_unordered() {
+ self.bid64_quiet_less_unordered("0", "-0", "-0", "0", "00")
+ self.bid64_quiet_less_unordered("0", "0", "-0", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[0000000000000000]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[0000000000000000]", "[0000000000000001]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[0000000000000000]", "[8000000000000001]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[0000000000000001]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[0000000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[0000000000000001]", "[8000000000000000]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[0000000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[0000015005000010]", "[0080000000001010]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[000008a000000000]", "[099d28cc18d02bc1]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[0001801200061101]", "[7bffdff4efdf7933]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[0008408000300908]", "[e68ba5eecb1f79ab]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[0010000000010200]", "[24ab1bea02ce451c]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "0", "-Infinity", "0", "00")
+ self.bid64_quiet_less_unordered("0", "0", "Infinity", "1", "00")
+ self.bid64_quiet_less_unordered("0", "1.0", "1", "0", "00")
+ self.bid64_quiet_less_unordered("0", "1", "1.0", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[2195dc039e790784]", "[20dabbed29f3da28]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[21ed37761c3b24f3]", "[1c924b45dc6ae5e4]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[291ff9772adfa2c0]", "[ff3fffffffff7fff]", "1", "01")
+ self.bid64_quiet_less_unordered("0", "[2fe38d7ea4c67fff]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[2fe38d7ea4c68000]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[2fe38d7ea4c68001]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[31a0000000000002]", "[31a0000000000001]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[31a0000000000002]", "[31a0000000000003]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[31a0000000000002]", "[33a0000000000001]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[31a0000000000002]", "[b3a0000000000001]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[31a000000000000a]", "[2fe38d7ea4c67fff]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[31a000000000000a]", "[2fe38d7ea4c68000]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[31a000000000000a]", "[2fe38d7ea4c68001]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[31a000000000000a]", "[32c0000000000064]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[32c0000000000064]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[33a0000000000001]", "[31a0000000000002]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[33a0000000000001]", "[b1a0000000000002]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[4480000000000000]", "[1cb6b32bc2068a45]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[4ce18c07e09640d3]", "[01ff52a6571463d1]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[6080014000020300]", "[0000c00000208000]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[7054a3d2162a9d97]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[72589f0cb4f54c40]", "[950fb4d0a7d28a9f]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[755885c3dc6c2107]", "[e55b5d9c0c0f9dff]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[7800000000000001]", "[0000000000000002]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[7800000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[7800000000000001]", "[8000000000000002]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[7800000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[7bbfcf2ffeffefff]", "[a18a49e05f9ae3d1]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[8000000000000000]", "[0000000000000001]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[8000000000000000]", "[8000000000000001]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[8000000000000001]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[8000000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[8000000000000001]", "[8000000000000000]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[8000000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[847650e021099d9d]", "[bb20000000000000]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[88cc6782de38676a]", "[6d08db4f0da47e89]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[8a566f20cf97c56e]", "[283247727df9b99d]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[96b77ec3f0a3b782]", "[ee8851906cb2101d]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[a23f9f5f02e2ccd7]", "[2108135d24f09100]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[afe38d7ea4c67fff]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[afe38d7ea4c68000]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[afe38d7ea4c68001]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[b1a0000000000002]", "[33a0000000000001]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[b1a0000000000002]", "[b1a0000000000001]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[b1a0000000000002]", "[b1a0000000000003]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[b1a0000000000002]", "[b3a0000000000001]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[b1a000000000000a]", "[afe38d7ea4c67fff]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[b1a000000000000a]", "[afe38d7ea4c68000]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[b1a000000000000a]", "[afe38d7ea4c68001]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[b1a000000000000a]", "[b2c0000000000064]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[b2c0000000000064]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[b3a0000000000001]", "[31a0000000000002]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[b3a0000000000001]", "[b1a0000000000002]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[b3df85fd09139ed7]", "[c39679be76302fa7]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[c21c0686f842802f]", "[0e209c747666d3e1]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[ddf794b9518fa74c]", "[afff7fbbbf7fdecb]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[f4e4b9fff5ff6bf3]", "[40b99e73ac077b25]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[f800000000000001]", "[0000000000000002]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[f800000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[f800000000000001]", "[8000000000000002]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[f800000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_less_unordered("0", "[f97fff9fbfb6e6fe]", "[1480121605208010]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "[fdefddfbffba7eff]", "[0000820000000000]", "1", "00")
+ self.bid64_quiet_less_unordered("0", "Infinity", "-0", "0", "00")
+ self.bid64_quiet_less_unordered("0", "Infinity", "0", "0", "00")
+ self.bid64_quiet_less_unordered("0", "-Infinity", "0", "1", "00")
+ self.bid64_quiet_less_unordered("0", "Infinity", "-Infinity", "0", "00")
+ self.bid64_quiet_less_unordered("0", "-Infinity", "SNaN", "1", "01")
+ self.bid64_quiet_less_unordered("0", "Infinity", "SNaN", "1", "01")
+ self.bid64_quiet_less_unordered("0", "QNaN", "0", "1", "00")
+ self.bid64_quiet_less_unordered("0", "QNaN", "SNaN", "1", "01")
+ self.bid64_quiet_less_unordered("0", "SNaN", "-0", "1", "01")
+ self.bid64_quiet_less_unordered("0", "SNaN", "0", "1", "01")
+ self.bid64_quiet_less_unordered("0", "SNaN", "Infinity", "1", "01")
+ self.bid64_quiet_less_unordered("0", "SNaN", "QNaN", "1", "01")
+ }
+
+ private func bid64_quiet_less_unordered(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLessThanOrEqualTo(arg0, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_quiet_not_greater() {
+ self.bid64_quiet_not_greater("0", "[0000000000000000]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[0000000000000000]", "[0000000000000001]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[0000000000000000]", "[8000000000000001]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[0000000000000001]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[0000000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[0000000000000001]", "[8000000000000000]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[0000000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[0008000000000010]", "[0044000420084102]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[02c08cc072f88105]", "[7afbffaff7dffddf]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[0855000000000000]", "[77812662a5418577]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[0dd0000000000000]", "[cdd6620b48738297]", "0", "00")
+ self.bid64_quiet_not_greater("0", "-0", "Infinity", "1", "00")
+ self.bid64_quiet_not_greater("0", "0", "Infinity", "1", "00")
+ self.bid64_quiet_not_greater("0", "-0", "QNaN", "1", "00")
+ self.bid64_quiet_not_greater("0", "1.0", "1", "1", "00")
+ self.bid64_quiet_not_greater("0", "1", "1.0", "1", "00")
+ self.bid64_quiet_not_greater("0", "[15a1a020d9d08862]", "[eb415661bd7323d4]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[17b2544c706084d0]", "[d8aeaf53e907eb7c]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[2001020828100028]", "[0079001020781169]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[23705aa4a7116bea]", "[0984000000000000]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[23f9dc79d291c687]", "[437e9dfb0529e6a0]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[2ca77a7d31a4bba0]", "[41f6de48e1c90bc7]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[2fe38d7ea4c67fff]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[2fe38d7ea4c68000]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[2fe38d7ea4c68001]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[31a0000000000002]", "[31a0000000000001]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[31a0000000000002]", "[31a0000000000003]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[31a0000000000002]", "[33a0000000000001]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[31a0000000000002]", "[b3a0000000000001]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[31a000000000000a]", "[2fe38d7ea4c67fff]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[31a000000000000a]", "[2fe38d7ea4c68000]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[31a000000000000a]", "[2fe38d7ea4c68001]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[31a000000000000a]", "[32c0000000000064]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[32c0000000000064]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[33a0000000000001]", "[31a0000000000002]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[33a0000000000001]", "[b1a0000000000002]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[3f6fe96811bd1526]", "[20a846c7e2fb1c55]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[5234fa67778aa0ef]", "[077f7fd127562d13]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[582e7bee103b4ddb]", "[57bde742622e737c]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[68da0e389f3aae85]", "[096bababf42c72e9]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[6dfe42860b3c2b77]", "[f0ad7baaea5c62fc]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[73f0c562237c3a2a]", "[b74340ab20fd37e4]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[7800000000000001]", "[0000000000000002]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[7800000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[7800000000000001]", "[8000000000000002]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[7800000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[797ffe3fe78f9f12]", "[10220012180d020b]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[7d9dca1981285f79]", "[0000220080008000]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[8000000000000000]", "[0000000000000001]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[8000000000000000]", "[8000000000000001]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[8000000000000001]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[8000000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[8000000000000001]", "[8000000000000000]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[8000000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[905d055bef217e29]", "[7ecfef9f6ffef0fd]", "1", "01")
+ self.bid64_quiet_not_greater("0", "[961a220cb711514b]", "[d949bcd9ef6cc09b]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[ad57ffcb356affbf]", "[8dd17d40008ba367]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[afe38d7ea4c67fff]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[afe38d7ea4c68000]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[afe38d7ea4c68001]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[b1a0000000000002]", "[33a0000000000001]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[b1a0000000000002]", "[b1a0000000000001]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[b1a0000000000002]", "[b1a0000000000003]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[b1a0000000000002]", "[b3a0000000000001]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[b1a000000000000a]", "[afe38d7ea4c67fff]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[b1a000000000000a]", "[afe38d7ea4c68000]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[b1a000000000000a]", "[afe38d7ea4c68001]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[b1a000000000000a]", "[b2c0000000000064]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[b2c0000000000064]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[b3a0000000000001]", "[31a0000000000002]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[b3a0000000000001]", "[b1a0000000000002]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[b8bb248d4f9caef1]", "[cfd9f5d1ebf426a3]", "0", "00")
+ self.bid64_quiet_not_greater("0", "[cecc016e2055d370]", "[86a0000000000000]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[f1100c284809058a]", "[f7f7fffeff5fffee]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[f3bff9fefd73fddf]", "[204200004251a430]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[f800000000000001]", "[0000000000000002]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[f800000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[f800000000000001]", "[8000000000000002]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[f800000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_not_greater("0", "[fbed5aff5dfffbf9]", "[42c8756cc569f909]", "1", "00")
+ self.bid64_quiet_not_greater("0", "Infinity", "0", "0", "00")
+ self.bid64_quiet_not_greater("0", "-Infinity", "0", "1", "00")
+ self.bid64_quiet_not_greater("0", "-Infinity", "Infinity", "1", "00")
+ self.bid64_quiet_not_greater("0", "-Infinity", "SNaN", "1", "01")
+ self.bid64_quiet_not_greater("0", "QNaN", "-0", "1", "00")
+ self.bid64_quiet_not_greater("0", "SNaN", "Infinity", "1", "01")
+ }
+
+ private func bid64_quiet_not_greater(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLess(than: arg0, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_quiet_not_less() {
+ self.bid64_quiet_not_less("0", "[0000000000000000]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_not_less("0", "[0000000000000000]", "[0000000000000001]", "0", "00")
+ self.bid64_quiet_not_less("0", "[0000000000000000]", "[8000000000000001]", "1", "00")
+ self.bid64_quiet_not_less("0", "[0000000000000000]", "[ffffffffffffffff]", "1", "01")
+ self.bid64_quiet_not_less("0", "[0000000000000001]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_not_less("0", "[0000000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_not_less("0", "[0000000000000001]", "[8000000000000000]", "1", "00")
+ self.bid64_quiet_not_less("0", "[0000000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_not_less("0", "[0000220000000000]", "[0020000000200010]", "1", "00")
+ self.bid64_quiet_not_less("0", "[0100884200000008]", "[0000000200410106]", "1", "00")
+ self.bid64_quiet_not_less("0", "[02ea12179796b039]", "[37825656c389e3a1]", "0", "00")
+ self.bid64_quiet_not_less("0", "[0f1d5b565fac3d85]", "[211b224499c6e9e6]", "0", "00")
+ self.bid64_quiet_not_less("0", "0", "SNaN", "1", "01")
+ self.bid64_quiet_not_less("0", "1.0", "1", "1", "00")
+ self.bid64_quiet_not_less("0", "1", "1.0", "1", "00")
+ self.bid64_quiet_not_less("0", "[18e42c45c2261600]", "[666ce8a34efed9ef]", "1", "00")
+ self.bid64_quiet_not_less("0", "[2fe38d7ea4c67fff]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_not_less("0", "[2fe38d7ea4c68000]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_not_less("0", "[2fe38d7ea4c68001]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_not_less("0", "[31a0000000000002]", "[31a0000000000001]", "1", "00")
+ self.bid64_quiet_not_less("0", "[31a0000000000002]", "[31a0000000000003]", "0", "00")
+ self.bid64_quiet_not_less("0", "[31a0000000000002]", "[33a0000000000001]", "0", "00")
+ self.bid64_quiet_not_less("0", "[31a0000000000002]", "[b3a0000000000001]", "1", "00")
+ self.bid64_quiet_not_less("0", "[31a000000000000a]", "[2fe38d7ea4c67fff]", "1", "00")
+ self.bid64_quiet_not_less("0", "[31a000000000000a]", "[2fe38d7ea4c68000]", "1", "00")
+ self.bid64_quiet_not_less("0", "[31a000000000000a]", "[2fe38d7ea4c68001]", "0", "00")
+ self.bid64_quiet_not_less("0", "[31a000000000000a]", "[32c0000000000064]", "0", "00")
+ self.bid64_quiet_not_less("0", "[32c0000000000064]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_not_less("0", "[33a0000000000001]", "[31a0000000000002]", "1", "00")
+ self.bid64_quiet_not_less("0", "[33a0000000000001]", "[b1a0000000000002]", "1", "00")
+ self.bid64_quiet_not_less("0", "[3734fe4259377e65]", "[22bfa368c92decd3]", "1", "00")
+ self.bid64_quiet_not_less("0", "[3f4ff544eefbe59d]", "[69a928427e939dbe]", "1", "00")
+ self.bid64_quiet_not_less("0", "[4b9171484850b01f]", "[50229060d249e019]", "0", "00")
+ self.bid64_quiet_not_less("0", "[7489ef8022b6ae96]", "[9f7677df7728693d]", "1", "00")
+ self.bid64_quiet_not_less("0", "[75742e552714481d]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_not_less("0", "[7800000000000001]", "[0000000000000002]", "1", "00")
+ self.bid64_quiet_not_less("0", "[7800000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_not_less("0", "[7800000000000001]", "[8000000000000002]", "1", "00")
+ self.bid64_quiet_not_less("0", "[7800000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_not_less("0", "[79cbaf50e24ef572]", "[54203a9431049800]", "1", "00")
+ self.bid64_quiet_not_less("0", "[8000000000000000]", "[0000000000000001]", "0", "00")
+ self.bid64_quiet_not_less("0", "[8000000000000000]", "[8000000000000001]", "1", "00")
+ self.bid64_quiet_not_less("0", "[8000000000000001]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_not_less("0", "[8000000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_not_less("0", "[8000000000000001]", "[8000000000000000]", "0", "00")
+ self.bid64_quiet_not_less("0", "[8000000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_not_less("0", "[90bea21141bbb741]", "[4320000000000000]", "0", "00")
+ self.bid64_quiet_not_less("0", "[9905ac2346bbdaf0]", "[ec6300a120202528]", "1", "00")
+ self.bid64_quiet_not_less("0", "[9aa805a8da666a3b]", "[74508ef358f6ae07]", "0", "00")
+ self.bid64_quiet_not_less("0", "[afe38d7ea4c67fff]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_not_less("0", "[afe38d7ea4c68000]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_not_less("0", "[afe38d7ea4c68001]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_not_less("0", "[b1a0000000000002]", "[33a0000000000001]", "0", "00")
+ self.bid64_quiet_not_less("0", "[b1a0000000000002]", "[b1a0000000000001]", "0", "00")
+ self.bid64_quiet_not_less("0", "[b1a0000000000002]", "[b1a0000000000003]", "1", "00")
+ self.bid64_quiet_not_less("0", "[b1a0000000000002]", "[b3a0000000000001]", "1", "00")
+ self.bid64_quiet_not_less("0", "[b1a000000000000a]", "[afe38d7ea4c67fff]", "0", "00")
+ self.bid64_quiet_not_less("0", "[b1a000000000000a]", "[afe38d7ea4c68000]", "1", "00")
+ self.bid64_quiet_not_less("0", "[b1a000000000000a]", "[afe38d7ea4c68001]", "1", "00")
+ self.bid64_quiet_not_less("0", "[b1a000000000000a]", "[b2c0000000000064]", "1", "00")
+ self.bid64_quiet_not_less("0", "[b2c0000000000064]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_not_less("0", "[b3a0000000000001]", "[31a0000000000002]", "0", "00")
+ self.bid64_quiet_not_less("0", "[b3a0000000000001]", "[b1a0000000000002]", "0", "00")
+ self.bid64_quiet_not_less("0", "[b8a041b00dac48ae]", "[fb47cd684fb3a6b5]", "1", "00")
+ self.bid64_quiet_not_less("0", "[bcac81b81b455d40]", "[aaddeee50b8a32df]", "0", "00")
+ self.bid64_quiet_not_less("0", "[c95dedc9c7b41514]", "[c7bf27eebfffefbf]", "0", "00")
+ self.bid64_quiet_not_less("0", "[ccd22d5b27964fc9]", "[5eec05ebe5055109]", "0", "00")
+ self.bid64_quiet_not_less("0", "[ce08bcfff2a3a1cf]", "[34dd6e46d0b1bfba]", "0", "00")
+ self.bid64_quiet_not_less("0", "[ce9c1612010283c9]", "[219eb7fbc04f0d4a]", "0", "00")
+ self.bid64_quiet_not_less("0", "[df47909f7b5cd9f2]", "[967a7c88a621dac1]", "0", "00")
+ self.bid64_quiet_not_less("0", "[e96b28627f41e1dc]", "[0fdde1bad0abed6b]", "0", "00")
+ self.bid64_quiet_not_less("0", "[f025140183853426]", "[54030720ebc1220d]", "0", "00")
+ self.bid64_quiet_not_less("0", "[f800000000000001]", "[0000000000000002]", "0", "00")
+ self.bid64_quiet_not_less("0", "[f800000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_not_less("0", "[f800000000000001]", "[8000000000000002]", "0", "00")
+ self.bid64_quiet_not_less("0", "[f800000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_not_less("0", "[fbb7d5fdffbfaef3]", "[ec019d6ef8a88913]", "0", "00")
+ self.bid64_quiet_not_less("0", "[fd92553e9a4a2f6a]", "[e530c51889f03dbe]", "1", "00")
+ self.bid64_quiet_not_less("0", "-Infinity", "-Infinity", "1", "00")
+ self.bid64_quiet_not_less("0", "QNaN", "SNaN", "1", "01")
+ self.bid64_quiet_not_less("0", "SNaN", "-0", "1", "01")
+ self.bid64_quiet_not_less("0", "SNaN", "0", "1", "01")
+ self.bid64_quiet_not_less("0", "SNaN", "Infinity", "1", "01")
+ self.bid64_quiet_not_less("0", "SNaN", "QNaN", "1", "01")
+ }
+
+ private func bid64_quiet_not_less(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLess(than: arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_quiet_greater() {
+ self.bid128_quiet_greater("0", "[0000000000000000,0000000000000000]", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater("0", "[00000000000000000000000000000000]", "[80000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_greater("0", "[00000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater("0", "[00000000000000000000000000000001]", "[80000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_greater("0", "[00000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater("0", "[0000000000084a05,45017dfad39b1dfa]", "[0000000000000000,0602012d180e1100]", "1", "00")
+ self.bid128_quiet_greater("0", "[0001000000001000,fffebadffbd679de]", "[0020080804030006,fffff9fffeff3bfb]", "0", "00")
+ self.bid128_quiet_greater("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_greater("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[0002802400020002,251e773d0cf602f4]", "[0040092009ac0807,63c72b07fb7bf7fe]", "0", "00")
+ self.bid128_quiet_greater("0", "[0400020008804008,bffff4ebfb5fefbd]", "[03ed017b25244252,f4effffe6b7b5e79]", "1", "00")
+ self.bid128_quiet_greater("0", "[06080098bf486809,f6befefffffef7ff]", "[2ed7eee1e1e32cfd,1b1363b8516006d9]", "1", "00")
+ self.bid128_quiet_greater("0", "[0bbc5f3712aa3fb9,7167f97dfd345999]", "[fe001f3ca73c226f,b64b4555e1428491]", "0", "01")
+ self.bid128_quiet_greater("0", "[0d287eb55d9d1224,9efb439ecdcfdd71]", "[f9f3def6fb787fef,00800008000e1020]", "1", "00")
+ self.bid128_quiet_greater("0", "-0", "Infinity", "0", "00")
+ self.bid128_quiet_greater("0", "0", "Infinity", "0", "00")
+ self.bid128_quiet_greater("0", "1.0", "1", "0", "00")
+ self.bid128_quiet_greater("0", "1", "1.0", "0", "00")
+ self.bid128_quiet_greater("0", "[160c23eada98f89d,bd05abfc8f0dbbe6]", "[bdcf7fa311727a78,08ce033af0e7bb68]", "1", "00")
+ self.bid128_quiet_greater("0", "[192b1a5a94a9daea,e5a7cd3afaf2ee02]", "[7e0027d3cdeaa440,e72ade3177e8fafb]", "0", "01")
+ self.bid128_quiet_greater("0", "[26b91ee511712b18,40c5681f5042bdce]", "[fe00000000000000,0000000000000000]", "0", "01")
+ self.bid128_quiet_greater("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000003]", "0", "00")
+ self.bid128_quiet_greater("0", "[303e0000000000000000000000000002]", "[30820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater("0", "[303e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater("0", "[303e0000000000020000000000000000]", "[303e0000000000010000000000000000]", "1", "00")
+ self.bid128_quiet_greater("0", "[303e0000000000020000000000000000]", "[303e0000000000030000000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[30400000001faa9fc5dcff096007ffff]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_greater("0", "[30400000001faa9fc5dcff0960080000]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_greater("0", "[30400000001faa9fc5dcff0960080001]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_greater("0", "[3040000000fd54fe2ee7f84b003fffff]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_greater("0", "[3040000000fd54fe2ee7f84b00400000]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_greater("0", "[3040000000fd54fe2ee7f84b00400001]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_greater("0", "[3040a6274bbdd0fadd61999e07ac0251]", "[3082a6274bbdd0fadd61999e07ac0250]", "0", "00")
+ self.bid128_quiet_greater("0", "[3040c612062576589dd46a73a100695e]", "[3074c612062576589dd46a73a100695d]", "0", "00")
+ self.bid128_quiet_greater("0", "[3040c612062576589dda322d47eb47ff]", "[3074c612062576589dda322d47eb47fe]", "0", "00")
+ self.bid128_quiet_greater("0", "[3041622d6fbc91e01277c0caded5b8a3]", "[3067622d6fbc91e01277c0caded5b8a2]", "0", "00")
+ self.bid128_quiet_greater("0", "[3041622d6fbc91e0127820b72d18cacf]", "[3067622d6fbc91e0127820b72d18cace]", "0", "00")
+ self.bid128_quiet_greater("0", "[30417361cb863de627fa3c5af3bb4c09]", "[30737361cb863de627fa3c5af3bb4c08]", "0", "00")
+ self.bid128_quiet_greater("0", "[3047ec3daf9417fe642eaec0d36a73d5]", "[307fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[3047ec4450b72ff30000000000000000]", "[307fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[3047ec4450b72ff30000000000000001]", "[307fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff096007ffff]", "1", "00")
+ self.bid128_quiet_greater("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080000]", "0", "00")
+ self.bid128_quiet_greater("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080001]", "0", "00")
+ self.bid128_quiet_greater("0", "[306600000000000000000000003a6a15]", "[306800000000000000000000003a6a16]", "0", "00")
+ self.bid128_quiet_greater("0", "[3067622d6fbc91e01277c0caded5b8a2]", "[3041622d6fbc91e01277c0caded5b8a3]", "1", "00")
+ self.bid128_quiet_greater("0", "[3067622d6fbc91e0127820b72d18cace]", "[3041622d6fbc91e0127820b72d18cacf]", "1", "00")
+ self.bid128_quiet_greater("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b003fffff]", "1", "00")
+ self.bid128_quiet_greater("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400000]", "0", "00")
+ self.bid128_quiet_greater("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400001]", "0", "00")
+ self.bid128_quiet_greater("0", "[30737361cb863de627fa3c5af3bb4c08]", "[30417361cb863de627fa3c5af3bb4c09]", "1", "00")
+ self.bid128_quiet_greater("0", "[3074c612062576589dd46a73a100695d]", "[3040c612062576589dd46a73a100695e]", "1", "00")
+ self.bid128_quiet_greater("0", "[3074c612062576589dda322d47eb47fe]", "[3040c612062576589dda322d47eb47ff]", "1", "00")
+ self.bid128_quiet_greater("0", "[307fec3c64797fe80000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_greater("0", "[307fec4450b72ff30000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_greater("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_greater("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000001]", "1", "00")
+ self.bid128_quiet_greater("0", "[30820000000000000000000000000001]", "[303e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater("0", "[30820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater("0", "[3082a6274bbdd0fadd61999e07ac0250]", "[3040a6274bbdd0fadd61999e07ac0251]", "1", "00")
+ self.bid128_quiet_greater("0", "[621c858834400441,882000000408090c]", "[ef9caf3bcaf51891,0000000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[78000000000000000000000000000001]", "[00000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater("0", "[78000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater("0", "[78000000000000000000000000000001]", "[80000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater("0", "[78000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater("0", "[78049903bb9ba5eb,d61b9bd09435a357]", "[43df12651623372d,d4b877de3e79d95a]", "1", "00")
+ self.bid128_quiet_greater("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[7e0007fb4dfa5ab4,00b24954dc6750f2]", "[379a5d2aca914f93,a0464553681e4a93]", "0", "01")
+ self.bid128_quiet_greater("0", "[80000000000000000000000000000000]", "[00000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater("0", "[80000000000000000000000000000000]", "[80000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater("0", "[80000000000000000000000000000001]", "[00000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[80000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater("0", "[80000000000000000000000000000001]", "[80000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[80000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater("0", "[8419060106840009,0000100000000000]", "[d5efdfbfdbfff9ff,0092528447afa001]", "1", "00")
+ self.bid128_quiet_greater("0", "[991530201c404020,74901309698068b9]", "[0470910233281348,0800000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[acf6000000000000,0000000000000000]", "[303951165fbae306,ec52338cff00a658]", "0", "00")
+ self.bid128_quiet_greater("0", "[af0bf276a72513d9,0deb19e3080dfaff]", "[bcd311514bd38756,63b1a777035e7fb3]", "1", "00")
+ self.bid128_quiet_greater("0", "[b03e0000000000000000000000000002]", "[30820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000003]", "1", "00")
+ self.bid128_quiet_greater("0", "[b03e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater("0", "[b03e0000000000020000000000000000]", "[b03e0000000000010000000000000000]", "0", "00")
+ self.bid128_quiet_greater("0", "[b03e0000000000020000000000000000]", "[b03e0000000000030000000000000000]", "1", "00")
+ self.bid128_quiet_greater("0", "[b0400000001faa9fc5dcff096007ffff]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_greater("0", "[b0400000001faa9fc5dcff0960080000]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_greater("0", "[b0400000001faa9fc5dcff0960080001]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_greater("0", "[b040000000fd54fe2ee7f84b003fffff]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_greater("0", "[b040000000fd54fe2ee7f84b00400000]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_greater("0", "[b040000000fd54fe2ee7f84b00400001]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_greater("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_greater("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_greater("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff096007ffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080000]", "0", "00")
+ self.bid128_quiet_greater("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080001]", "1", "00")
+ self.bid128_quiet_greater("0", "[b06600000000000000000000003a6a15]", "[b06800000000000000000000003a6a16]", "1", "00")
+ self.bid128_quiet_greater("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b003fffff]", "0", "00")
+ self.bid128_quiet_greater("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400000]", "0", "00")
+ self.bid128_quiet_greater("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400001]", "1", "00")
+ self.bid128_quiet_greater("0", "[b07fec3c64797fe80000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_greater("0", "[b07fec4450b72ff30000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_greater("0", "[b0820000000000000000000000000001]", "[303e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater("0", "[b0820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater("0", "[cd7828ffdf2f198b,7b5ede18e646cdc6]", "[a3666ea231055455,9203291d11626a11]", "0", "00")
+ self.bid128_quiet_greater("0", "[cfded3f3754a7a56,1739b6445c40a990]", "[d87425b35a3f70ae,8c2f2171b5baba4e]", "1", "00")
+ self.bid128_quiet_greater("0", "[d2a673d02b076215,15a8af72d7f75eec]", "[d275367b33d95900,de4f6fd7fb7fdeef]", "0", "00")
+ self.bid128_quiet_greater("0", "[d3e4ded34d6eaa03,775018fdf9f75701]", "[fe0019a6330ed67c,21a665f705dd7ed6]", "0", "01")
+ self.bid128_quiet_greater("0", "[db189ee7b35d2961,4246ab9ed6192a29]", "[fe001323a3600963,a4c552ae084eb7bd]", "0", "01")
+ self.bid128_quiet_greater("0", "[ddf1d251bb1e6446,d7e0a5ea0354da66]", "[98200084bd8e0640,a8108188c048010b]", "0", "00")
+ self.bid128_quiet_greater("0", "[f8000000000000000000000000000001]", "[00000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater("0", "[f8000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater("0", "[f8000000000000000000000000000001]", "[80000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater("0", "[f8000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater("0", "[f9bffdfdfffe2f4b,e10444c110487cac]", "[ca63033126b73132,500a8e0b2dd20310]", "0", "00")
+ self.bid128_quiet_greater("0", "[fcd12e8b10e6aade,61010d79931481dc]", "[e11ca69275a918a7,9f9dcf724013e67c]", "0", "00")
+ self.bid128_quiet_greater("0", "[fe00000000000000,0000000000000000]", "[d7e5686b46db1edd,8f8b78b366df9c4f]", "0", "01")
+ self.bid128_quiet_greater("0", "[fe0016c1cd49a44a,6d2347452af9e1b4]", "[4f68e12b0d18782a,ee709b1116aa3a26]", "0", "01")
+ self.bid128_quiet_greater("0", "[fecfafeff7a7ebff,7b1d27004dc0116c]", "[f2b0eab400999b28,5f30c1b44aab269c]", "0", "01")
+ self.bid128_quiet_greater("0", "-Infinity", "QNaN", "0", "00")
+ self.bid128_quiet_greater("0", "QNaN", "-0", "0", "00")
+ self.bid128_quiet_greater("0", "SNaN", "-0", "0", "01")
+ self.bid128_quiet_greater("0", "SNaN", "0", "0", "01")
+ self.bid128_quiet_greater("0", "SNaN", "-Infinity", "0", "01")
+ self.bid128_quiet_greater("0", "SNaN", "Infinity", "0", "01")
+ }
+
+ private func bid128_quiet_greater(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLess(than: arg0, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_quiet_greater_equal() {
+ self.bid128_quiet_greater_equal("0", "[0000000000000000,0000000000000000]", "[0000000000000000,0000000000000000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[00000000000000000000000000000000]", "[80000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[00000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[00000000000000000000000000000001]", "[80000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[00000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[0000000000000000,dedc0646b2cdc378]", "[0000000000080000,ef9cffdf7f6f7fbf]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "-0", "0", "1", "00")
+ self.bid128_quiet_greater_equal("0", "0", "-0", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[0040000000040008,eed861be4b942b33]", "[0000000000400000,7fdfffffffffbbdf]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[021d6190180865d0,ffe7ff7eeef3ad76]", "[0254062438582712,2cb7163af7ee0939]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[02602effba0526d4,99fb99923a16b2eb]", "[3205deaa2ba86da1,e60ccb02f8bb7517]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[0900000141610280,d4adee151fc17ebf]", "[59c655f8e6da985b,4435241d66cc2b50]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[0effa7c81f16a6ef,4bf08c566cc1009a]", "[23a3c5156d4ce69c,6cecc44e902aff62]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "-0", "-Infinity", "1", "00")
+ self.bid128_quiet_greater_equal("0", "-0", "SNaN", "0", "01")
+ self.bid128_quiet_greater_equal("0", "1.0", "1", "1", "00")
+ self.bid128_quiet_greater_equal("0", "1", "1.0", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[2679d9c31333fe0f,3a070a117fb40f81]", "[9a69767071ac26ed,80811281030a7120]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[2cfac81c79e9e03e,82f2cd0bb6fb5014]", "[7e00000000000000,0000000000000000]", "0", "01")
+ self.bid128_quiet_greater_equal("0", "[2e5f56c87e7c693f,09915cbb57003441]", "[7e00023c76ba7e9b,c1388ef6450ebc10]", "0", "01")
+ self.bid128_quiet_greater_equal("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000003]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[303e0000000000000000000000000002]", "[30820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[303e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[303e0000000000020000000000000000]", "[303e0000000000010000000000000000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[303e0000000000020000000000000000]", "[303e0000000000030000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[30400000001faa9fc5dcff096007ffff]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[30400000001faa9fc5dcff0960080000]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[30400000001faa9fc5dcff0960080001]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[3040000000fd54fe2ee7f84b003fffff]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[3040000000fd54fe2ee7f84b00400000]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[3040000000fd54fe2ee7f84b00400001]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[3040a6274bbdd0fadd61999e07ac0251]", "[3082a6274bbdd0fadd61999e07ac0250]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[3040c612062576589dd46a73a100695e]", "[3074c612062576589dd46a73a100695d]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[3040c612062576589dda322d47eb47ff]", "[3074c612062576589dda322d47eb47fe]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[3041622d6fbc91e01277c0caded5b8a3]", "[3067622d6fbc91e01277c0caded5b8a2]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[3041622d6fbc91e0127820b72d18cacf]", "[3067622d6fbc91e0127820b72d18cace]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[30417361cb863de627fa3c5af3bb4c09]", "[30737361cb863de627fa3c5af3bb4c08]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[3047ec3daf9417fe642eaec0d36a73d5]", "[307fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff096007ffff]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080001]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[306600000000000000000000003a6a15]", "[306800000000000000000000003a6a16]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[3067622d6fbc91e01277c0caded5b8a2]", "[3041622d6fbc91e01277c0caded5b8a3]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[3067622d6fbc91e0127820b72d18cace]", "[3041622d6fbc91e0127820b72d18cacf]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b003fffff]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400001]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[30737361cb863de627fa3c5af3bb4c08]", "[30417361cb863de627fa3c5af3bb4c09]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[3074c612062576589dd46a73a100695d]", "[3040c612062576589dd46a73a100695e]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[3074c612062576589dda322d47eb47fe]", "[3040c612062576589dda322d47eb47ff]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[307fec3c64797fe80000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[307fec4450b72ff30000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[30820000000000000000000000000001]", "[303e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[30820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[3082a6274bbdd0fadd61999e07ac0250]", "[3040a6274bbdd0fadd61999e07ac0251]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[4000000000000000,38b6b28d657c531e]", "[4010000004000000,1800000000000010]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[45c54e2c27baef92,14d77e0ee1f808f0]", "[08bd088818102bc1,0000000000000000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[4fb87ed44b5e43d4,5919f2c08cb84d68]", "[1847729e4d9783e6,7be0dd15cb9f9563]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[50408020c4001408,20d5004258cc2d10]", "[503cdca2004e0110,400020100c064388]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "-589.877959968857E0", "-0", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[6ddf270aacd87608,c408220397400100]", "[40a4860005208804,f6f3957ffbc6c2e7]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[7800000000000000,0000000000000000]", "[d7a1c5c5a282a420,e1e067a97f712785]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[78000000000000000000000000000001]", "[00000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[78000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[78000000000000000000000000000001]", "[80000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[78000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[7a4db95ff5c4f5bc,0000000000000000]", "[a99913a67020b5f8,960c20aaf6bcc77b]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[80000000000000000000000000000000]", "[00000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[80000000000000000000000000000000]", "[80000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[80000000000000000000000000000001]", "[00000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[80000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[80000000000000000000000000000001]", "[80000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[80000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[9289c3a1997d378b,dee215345c2e6e1c]", "[a0c0000000000000,0000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[96461f718877f10e,7f8e6392049d3e68]", "[944c000000000000,0000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[aa540c37e20b231e,ebbbdae11d1cf9d0]", "[fbdd6df3f57abb0f,02081d010692c4d3]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[acf68f8a36d72a61,a5a0e3464cfe7dc5]", "[5570000000000000,0000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b03e0000000000000000000000000002]", "[30820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000003]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b03e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b03e0000000000020000000000000000]", "[b03e0000000000010000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b03e0000000000020000000000000000]", "[b03e0000000000030000000000000000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b0400000001faa9fc5dcff096007ffff]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b0400000001faa9fc5dcff0960080000]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b0400000001faa9fc5dcff0960080001]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b040000000fd54fe2ee7f84b003fffff]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b040000000fd54fe2ee7f84b00400000]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b040000000fd54fe2ee7f84b00400001]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b047ec4450b72ff30000000000000000]", "[b07fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b047ec4450b72ff30000000000000001]", "[b07fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff096007ffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080001]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b06600000000000000000000003a6a15]", "[b06800000000000000000000003a6a16]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b003fffff]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400000]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400001]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[b07fec3c64797fe80000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b07fec4450b72ff30000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b07fec4450b72ff30000000000000000]", "[b047ec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b07fec4450b72ff30000000000000000]", "[b047ec4450b72ff30000000000000001]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b0820000000000000000000000000001]", "[303e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[b0820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[d57bd57af7c657ac,7d22a00647cd1ecd]", "[e9effd7e9ffbfb7d,f8dd3ec8fbcf76e5]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[d88fb2ed67c5a206,e2c34c3746329b09]", "[c3c6000000000000,0000000000000000]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[db86fde797c7ee96,ba7db11e9df4dbc5]", "[964378bd032801d2,0103d6939fe2d7e5]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[f21883668b612842,fffed7fbdfffffff]", "[6c66fdf441dfe7fb,61b81d40f8ded76c]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[f53fe7eff6f7b9f5,d002289202b65c59]", "[ffffffffffffffff,75a516a7ed6a9e5f]", "0", "01")
+ self.bid128_quiet_greater_equal("0", "[f8000000000000000000000000000001]", "[00000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[f8000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[f8000000000000000000000000000001]", "[80000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[f8000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_equal("0", "[f942aea3731d9b1b,07efbf1925913095]", "[28482a244a079402,a115bafaefacca5c]", "0", "00")
+ self.bid128_quiet_greater_equal("0", "[fe00142f348bd52c,f08f9fe47091c056]", "[4466000000000000,0000000000000000]", "0", "01")
+ self.bid128_quiet_greater_equal("0", "-Infinity", "-Infinity", "1", "00")
+ self.bid128_quiet_greater_equal("0", "Infinity", "QNaN", "0", "00")
+ self.bid128_quiet_greater_equal("0", "QNaN", "QNaN", "0", "00")
+ self.bid128_quiet_greater_equal("0", "SNaN", "QNaN", "0", "01")
+ self.bid128_quiet_greater_equal("0", "SNaN", "SNaN", "0", "01")
+ }
+
+ private func bid128_quiet_greater_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLessThanOrEqualTo(arg0, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_quiet_greater_unordered() {
+ self.bid128_quiet_greater_unordered("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[00000000000000000000000000000000]", "[80000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[00000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[00000000000000000000000000000001]", "[80000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[00000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[000002000000014c,802a40148841204d]", "[0000000000000000,5f7ff6fffffbffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[0000400208002801,ffffdfdfff47df7f]", "[001050a24930c4fc,9f5fe85a4e8480aa]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[0000800000021000,fffffffeffffffff]", "[fff97fffff3f7bed,effd68b27fffddfc]", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[0003020020020084,3df7ff6ef8ffffaf]", "[0040000000002100,1020074212044001]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[0140413328540800,ae3058b322086b46]", "[bd6ba29617933f4f,bda9791f324bbecf]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "0E+368", "0E+368", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "-0", "SNaN", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "1.0", "1", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "1", "1.0", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[156553d01d6545cc,0502088164022260]", "[15389e38d74c6643,34b6020146811667]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000003]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[303e0000000000000000000000000002]", "[30820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[303e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[303e0000000000020000000000000000]", "[303e0000000000010000000000000000]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[303e0000000000020000000000000000]", "[303e0000000000030000000000000000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[30400000001faa9fc5dcff096007ffff]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[30400000001faa9fc5dcff0960080000]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[30400000001faa9fc5dcff0960080001]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[3040000000fd54fe2ee7f84b003fffff]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3040000000fd54fe2ee7f84b00400000]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3040000000fd54fe2ee7f84b00400001]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[3040a6274bbdd0fadd61999e07ac0251]", "[3082a6274bbdd0fadd61999e07ac0250]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3040c612062576589dd46a73a100695e]", "[3074c612062576589dd46a73a100695d]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3040c612062576589dda322d47eb47ff]", "[3074c612062576589dda322d47eb47fe]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3041622d6fbc91e01277c0caded5b8a3]", "[3067622d6fbc91e01277c0caded5b8a2]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3041622d6fbc91e0127820b72d18cacf]", "[3067622d6fbc91e0127820b72d18cace]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[30417361cb863de627fa3c5af3bb4c09]", "[30737361cb863de627fa3c5af3bb4c08]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3047ec3daf9417fe642eaec0d36a73d5]", "[307fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3047ec4450b72ff30000000000000000]", "[307fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3047ec4450b72ff30000000000000001]", "[307fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff096007ffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080001]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[306600000000000000000000003a6a15]", "[306800000000000000000000003a6a16]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[3067622d6fbc91e01277c0caded5b8a2]", "[3041622d6fbc91e01277c0caded5b8a3]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[3067622d6fbc91e0127820b72d18cace]", "[3041622d6fbc91e0127820b72d18cacf]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b003fffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400001]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[30737361cb863de627fa3c5af3bb4c08]", "[30417361cb863de627fa3c5af3bb4c09]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[3074c612062576589dd46a73a100695d]", "[3040c612062576589dd46a73a100695e]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[3074c612062576589dda322d47eb47fe]", "[3040c612062576589dda322d47eb47ff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[307fec3c64797fe80000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[307fec4450b72ff30000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000001]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[30820000000000000000000000000001]", "[303e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[30820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[3082a6274bbdd0fadd61999e07ac0250]", "[3040a6274bbdd0fadd61999e07ac0251]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[78000000000000000000000000000001]", "[00000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[78000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[78000000000000000000000000000001]", "[80000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[78000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[79fa89141f1ee82b,fffbbfffffffffff]", "[b407a50b94a8b8bc,c23f8ea54ed80059]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[7e00000000000000,0000000000000000]", "[40caa49458329028,ea7098011fd879a8]", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "[7e00071214c1fd1e,71b168890a16d39c]", "[cf2d16a36b3c1bf2,15456649b9d8febe]", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "[80000000000000000000000000000000]", "[00000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[80000000000000000000000000000000]", "[80000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[80000000000000000000000000000001]", "[00000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[80000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[80000000000000000000000000000001]", "[80000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[80000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[84010020fb250908,0e297d7d07364da3]", "[dc04d6b2b4275778,7e29887eff505870]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[9076a3856ca8c1c8,4049080380801100]", "[fadf3cede96feda9,ffffffffffffffff]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[940340890201bd50,f9e19d039a42853d]", "[8f5953c82be405b8,560478137f005d17]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[95eb90a2b780c876,97dcaba60aff1781]", "[7e002a4407f2758a,cd0b71e2a57e99b4]", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "[994c8d74e4a4cbd5,0dc04f5bd28d7d5e]", "[5a235feb0337a830,d144cf6a6d70bb60]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[9d64000000000000,0000000000000000]", "[7e0014ddd982a84c,8418812ce79edb0b]", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "[ab82202842509401,9544dd28f1df700c]", "[ab6f2417518e5fbd,607ee92050f35374]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[abfe000000000000,0000000000000000]", "[7e0019668c79cc5e,737566ebe9d5c8db]", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "[adffbffff6ffefe2,18002005d540e17c]", "[b367d5e6b90fcb9e,eeffb7dbffffff7f]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[b03e0000000000000000000000000002]", "[30820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000003]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[b03e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[b03e0000000000020000000000000000]", "[b03e0000000000010000000000000000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b03e0000000000020000000000000000]", "[b03e0000000000030000000000000000]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[b0400000001faa9fc5dcff096007ffff]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[b0400000001faa9fc5dcff0960080000]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b0400000001faa9fc5dcff0960080001]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b040000000fd54fe2ee7f84b003fffff]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[b040000000fd54fe2ee7f84b00400000]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b040000000fd54fe2ee7f84b00400001]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff096007ffff]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080001]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[b06600000000000000000000003a6a15]", "[b06800000000000000000000003a6a16]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b003fffff]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400000]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400001]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[b07fec3c64797fe80000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b07fec4450b72ff30000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b0820000000000000000000000000001]", "[303e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[b0820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[bbef9f5f7efe6ff5,d7128aae0b9acfb4]", "[63eeef41975fffda,480d05cab1540eaa]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[cded591d41046f7d,cb79dbdfefaffdd5]", "[a67ec49c9f7de693,8dcd030d878245f1]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[d36b64dc4bfad8d8,a1876c6674892402]", "[7e000ccf1142c2c2,3ad13c3824e5a2df]", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "[e3fafe5fe28e445c,4410020004080022]", "[778fdaee0befb156,4d4875834d1a4134]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[f5ff6bf3f5e6bfff,6efe70fd7cefe997]", "[bdbc95aa883ea7bb,ca232119e2e268fd]", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "[f8000000000000000000000000000001]", "[00000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[f8000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[f8000000000000000000000000000001]", "[80000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[f8000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[faffdeea96fd57a7,d242081902028108]", "[afd4b0f9f706e324,c5a664740f162c77]", "0", "00")
+ self.bid128_quiet_greater_unordered("0", "[fc0030e0fc7447bf,13d81f9879658c50]", "[fe00000000000000,0000000000000000]", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "[fe000c773adf703e,1717f0e85dacc77a]", "[50c0000000000000,0000000000000000]", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "[fe0024cdddba647a,38a5033463233d34]", "[982e06e3202201e6,ec63345675eaae51]", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "Infinity", "SNaN", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "QNaN", "0", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "QNaN", "Infinity", "1", "00")
+ self.bid128_quiet_greater_unordered("0", "QNaN", "SNaN", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "SNaN", "-Infinity", "1", "01")
+ self.bid128_quiet_greater_unordered("0", "SNaN", "SNaN", "1", "01")
+ }
+
+ private func bid128_quiet_greater_unordered(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLessThanOrEqualTo(arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_quiet_less() {
+ self.bid128_quiet_less("0", "-0", "0", "0", "00")
+ self.bid128_quiet_less("0", "0", "0", "0", "00")
+ self.bid128_quiet_less("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less("0", "[00000000000000000000000000000000]", "[80000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_less("0", "[00000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less("0", "[00000000000000000000000000000001]", "[80000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_less("0", "[00000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less("0", "[0000004080000000,5b6895b608768d10]", "[0000060000008010,22160a8920413041]", "1", "00")
+ self.bid128_quiet_less("0", "[0001008000060000,4b21012680402181]", "[0002000400824021,842284c288798648]", "0", "00")
+ self.bid128_quiet_less("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_less("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[0012000000629640,f7df7f775ffbfbde]", "[0000200000101000,ffbfdfefe7efef5f]", "0", "00")
+ self.bid128_quiet_less("0", "[045b267feccd3293,4fb785d197aff467]", "[fe0028e1b7642b81,a499377c8b016837]", "0", "01")
+ self.bid128_quiet_less("0", "0", "Infinity", "1", "00")
+ self.bid128_quiet_less("0", "1.0", "1", "0", "00")
+ self.bid128_quiet_less("0", "[1080004402410100,e21883668b412842]", "[40012a8420280040,dd23b0a693b2c04b]", "1", "00")
+ self.bid128_quiet_less("0", "[10df6c591df16430,67e49159dccff23d]", "[48c80000a0008280,ffffffffffffffff]", "1", "00")
+ self.bid128_quiet_less("0", "1", "1.0", "0", "00")
+ self.bid128_quiet_less("0", "[1236b6f17a187600,185bc7230bbfb3ca]", "[2f54000000000000,0000000000000000]", "0", "00")
+ self.bid128_quiet_less("0", "[13be87ff262b8fa2,53605cb8a68617a8]", "[138170bba0883af7,0a00000000000000]", "0", "00")
+ self.bid128_quiet_less("0", "[1cbc0c834dda14be,ac5cfd597d82f4bc]", "[af46daf5ae637d63,a7f9fef9f397c7df]", "0", "00")
+ self.bid128_quiet_less("0", "[1fbffc2ffbfb8f1c,ff1eea397dfa9976]", "[868005c0187066ed,10220012180d020b]", "0", "00")
+ self.bid128_quiet_less("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000003]", "1", "00")
+ self.bid128_quiet_less("0", "[303e0000000000000000000000000002]", "[30820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less("0", "[303e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less("0", "[303e0000000000020000000000000000]", "[303e0000000000010000000000000000]", "0", "00")
+ self.bid128_quiet_less("0", "[303e0000000000020000000000000000]", "[303e0000000000030000000000000000]", "1", "00")
+ self.bid128_quiet_less("0", "[30400000001faa9fc5dcff096007ffff]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_less("0", "[30400000001faa9fc5dcff0960080000]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_less("0", "[30400000001faa9fc5dcff0960080001]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_less("0", "[3040000000fd54fe2ee7f84b003fffff]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_less("0", "[3040000000fd54fe2ee7f84b00400000]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_less("0", "[3040000000fd54fe2ee7f84b00400001]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_less("0", "[3040a6274bbdd0fadd61999e07ac0251]", "[3082a6274bbdd0fadd61999e07ac0250]", "1", "00")
+ self.bid128_quiet_less("0", "[3040c612062576589dd46a73a100695e]", "[3074c612062576589dd46a73a100695d]", "1", "00")
+ self.bid128_quiet_less("0", "[3040c612062576589dda322d47eb47ff]", "[3074c612062576589dda322d47eb47fe]", "1", "00")
+ self.bid128_quiet_less("0", "[3041622d6fbc91e01277c0caded5b8a3]", "[3067622d6fbc91e01277c0caded5b8a2]", "1", "00")
+ self.bid128_quiet_less("0", "[3041622d6fbc91e0127820b72d18cacf]", "[3067622d6fbc91e0127820b72d18cace]", "1", "00")
+ self.bid128_quiet_less("0", "[30417361cb863de627fa3c5af3bb4c09]", "[30737361cb863de627fa3c5af3bb4c08]", "1", "00")
+ self.bid128_quiet_less("0", "[3047ec3daf9417fe642eaec0d36a73d5]", "[307fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_less("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_less("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_less("0", "[3047ec4450b72ff30000000000000000]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_less("0", "[3047ec4450b72ff30000000000000001]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_less("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff096007ffff]", "0", "00")
+ self.bid128_quiet_less("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080000]", "0", "00")
+ self.bid128_quiet_less("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080001]", "1", "00")
+ self.bid128_quiet_less("0", "[306600000000000000000000003a6a15]", "[306800000000000000000000003a6a16]", "1", "00")
+ self.bid128_quiet_less("0", "[3067622d6fbc91e01277c0caded5b8a2]", "[3041622d6fbc91e01277c0caded5b8a3]", "0", "00")
+ self.bid128_quiet_less("0", "[3067622d6fbc91e0127820b72d18cace]", "[3041622d6fbc91e0127820b72d18cacf]", "0", "00")
+ self.bid128_quiet_less("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b003fffff]", "0", "00")
+ self.bid128_quiet_less("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400000]", "0", "00")
+ self.bid128_quiet_less("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400001]", "1", "00")
+ self.bid128_quiet_less("0", "[30737361cb863de627fa3c5af3bb4c08]", "[30417361cb863de627fa3c5af3bb4c09]", "0", "00")
+ self.bid128_quiet_less("0", "[3074c612062576589dd46a73a100695d]", "[3040c612062576589dd46a73a100695e]", "0", "00")
+ self.bid128_quiet_less("0", "[3074c612062576589dda322d47eb47fe]", "[3040c612062576589dda322d47eb47ff]", "0", "00")
+ self.bid128_quiet_less("0", "[307fec3c64797fe80000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_less("0", "[307fec4450b72ff30000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_less("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_less("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000001]", "0", "00")
+ self.bid128_quiet_less("0", "[30820000000000000000000000000001]", "[303e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less("0", "[30820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less("0", "[3082a6274bbdd0fadd61999e07ac0250]", "[3040a6274bbdd0fadd61999e07ac0251]", "0", "00")
+ self.bid128_quiet_less("0", "[405a0f427eec7da0,cfd6ddccef5a9fb5]", "[7e00000000000000,0000000000000000]", "0", "01")
+ self.bid128_quiet_less("0", "[573a077e4399493d,922e76a42f443a3e]", "[9a30000000000000,0000000000000000]", "0", "00")
+ self.bid128_quiet_less("0", "[78000000000000000000000000000001]", "[00000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less("0", "[78000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less("0", "[78000000000000000000000000000001]", "[80000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less("0", "[78000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less("0", "+79.9578595587878868E0", "Infinity", "1", "00")
+ self.bid128_quiet_less("0", "[7bdf7ffebff7dfff,0000000000000000]", "[3803c1f8f7eb8d18,450100c2c2100314]", "0", "00")
+ self.bid128_quiet_less("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_less("0", "[7e00000000000000,0000000000000000]", "[092a000000000000,0000000000000000]", "0", "01")
+ self.bid128_quiet_less("0", "[7e000d87bf86ecbc,01ba6ff27cd56013]", "[7c00000000000000,0000000000000000]", "0", "01")
+ self.bid128_quiet_less("0", "[80000000000000000000000000000000]", "[00000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less("0", "[80000000000000000000000000000000]", "[80000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less("0", "[80000000000000000000000000000001]", "[00000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_less("0", "[80000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less("0", "[80000000000000000000000000000001]", "[80000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_less("0", "[80000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less("0", "[83191418d24bd9ef,d7fc776eddf4dffe]", "[f84bc9eba2521e13,47abe3b0dce6c428]", "0", "00")
+ self.bid128_quiet_less("0", "[8453b3f90fd5bf06,891ad3ab07d85f0a]", "[18722286625bb878,38ac3d76f0c62565]", "1", "00")
+ self.bid128_quiet_less("0", "[95c6d2f0d301c2ad,c52826e6c0de716a]", "[95f060e18a85cfca,19eb584ada2df9b2]", "0", "00")
+ self.bid128_quiet_less("0", "[aede000000000000,0000000000000000]", "[a0ea59b7aefc3257,06a00da51ef33b25]", "0", "00")
+ self.bid128_quiet_less("0", "[b03e0000000000000000000000000002]", "[30820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000003]", "0", "00")
+ self.bid128_quiet_less("0", "[b03e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less("0", "[b03e0000000000020000000000000000]", "[b03e0000000000010000000000000000]", "1", "00")
+ self.bid128_quiet_less("0", "[b03e0000000000020000000000000000]", "[b03e0000000000030000000000000000]", "0", "00")
+ self.bid128_quiet_less("0", "[b0400000001faa9fc5dcff096007ffff]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_less("0", "[b0400000001faa9fc5dcff0960080000]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_less("0", "[b0400000001faa9fc5dcff0960080001]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_less("0", "[b040000000fd54fe2ee7f84b003fffff]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_less("0", "[b040000000fd54fe2ee7f84b00400000]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_less("0", "[b040000000fd54fe2ee7f84b00400001]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_less("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_less("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_less("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff096007ffff]", "1", "00")
+ self.bid128_quiet_less("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080000]", "0", "00")
+ self.bid128_quiet_less("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080001]", "0", "00")
+ self.bid128_quiet_less("0", "[b06600000000000000000000003a6a15]", "[b06800000000000000000000003a6a16]", "0", "00")
+ self.bid128_quiet_less("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b003fffff]", "1", "00")
+ self.bid128_quiet_less("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400000]", "0", "00")
+ self.bid128_quiet_less("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400001]", "0", "00")
+ self.bid128_quiet_less("0", "[b07fec3c64797fe80000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_less("0", "[b07fec4450b72ff30000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_less("0", "[b0820000000000000000000000000001]", "[303e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less("0", "[b0820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less("0", "[b80c261c47815a40,be31e782a6063a2a]", "[a3600f908069d1b0,8a85676fe6fd3340]", "1", "00")
+ self.bid128_quiet_less("0", "[bfff7bf70dbfffcf,97b7ddf6dfeadcb4]", "[77de9cbfffb1e85e,9f4c430d06041418]", "1", "00")
+ self.bid128_quiet_less("0", "[c7629f956b33a724,cce2eb5642b7e33e]", "[8c92000000000000,0000000000000000]", "1", "00")
+ self.bid128_quiet_less("0", "[c85aa9d813d361d0,ffffffbfffffffff]", "[93abb86518759fcd,1c517ebacdd92b0a]", "1", "00")
+ self.bid128_quiet_less("0", "[ee70132e90c3233b,a28ff63305fe234d]", "[f37fff5f2fe6efff,0100408024000308]", "0", "00")
+ self.bid128_quiet_less("0", "[f8000000000000000000000000000001]", "[00000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less("0", "[f8000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less("0", "[f8000000000000000000000000000001]", "[80000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less("0", "[f8000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less("0", "[fbfbffffffffffff,ffffffffffffffff]", "[0000000000080000,bbed3df7ffeecf6b]", "1", "00")
+ self.bid128_quiet_less("0", "[fe0007ababfdf930,2d311c9d1c71532d]", "[9ac78ff054720594,436d1f292eccb844]", "0", "01")
+ self.bid128_quiet_less("0", "[ffaffef7ffbfcbff,6d8d2602bfd87708]", "[40a4a6820529b80d,0008608000100900]", "0", "01")
+ self.bid128_quiet_less("0", "Infinity", "Infinity", "0", "00")
+ self.bid128_quiet_less("0", "Infinity", "QNaN", "0", "00")
+ self.bid128_quiet_less("0", "-Infinity", "SNaN", "0", "01")
+ self.bid128_quiet_less("0", "QNaN", "-0", "0", "00")
+ }
+
+ private func bid128_quiet_less(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLess(than: arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_quiet_less_equal() {
+ self.bid128_quiet_less_equal("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[00000000000000000000000000000000]", "[80000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[00000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[00000000000000000000000000000001]", "[80000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[00000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[0000000000000000,08008000008404a0]", "[0000000000080010,68457ea938b50620]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[0080090033280220,0000000040010040]", "[fbdfaf35fd8fbbfb,b6acef97ceb3a539]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[0200000000000000,09a0965fb2bca6fd]", "[01c0002058010004,2ab463b30022540d]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[04021009c600e000,ffffd9fffc7fff7f]", "[300041e00280844c,d32c667c3181fadb]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[0c3b00625f02a588,d8f224b96c506f65]", "[7e0006cb3c7357a0,38839341a121d2e4]", "0", "01")
+ self.bid128_quiet_less_equal("0", "0E+368", "0E+368", "1", "00")
+ self.bid128_quiet_less_equal("0", "[0ff7e7b3885ab4cb,c327c539e2e7f73d]", "[1000000008000000,c77ee0d464ca686b]", "0", "00")
+ self.bid128_quiet_less_equal("0", "-0", "SNaN", "0", "01")
+ self.bid128_quiet_less_equal("0", "0", "SNaN", "0", "01")
+ self.bid128_quiet_less_equal("0", "1.0", "1", "1", "00")
+ self.bid128_quiet_less_equal("0", "1", "1.0", "1", "00")
+ self.bid128_quiet_less_equal("0", "[16a2000000000000,0000000000000000]", "[0d8e7283204f68c4,b8ca6a96001c2fb1]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[1f1dc43bc702a260,ac3c4dadea224c82]", "[4dca21af2d3b1fb8,cc2bc52e35283555]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[213000012e0c000a,0088a00000009000]", "[2112f11643b9470d,ffffffffffffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[26e7d3c2c761814d,eb39b68e28232815]", "[1360000000000000,0000000000000000]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000003]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[303e0000000000000000000000000002]", "[30820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[303e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[303e0000000000020000000000000000]", "[303e0000000000010000000000000000]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[303e0000000000020000000000000000]", "[303e0000000000030000000000000000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[30400000001faa9fc5dcff096007ffff]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[30400000001faa9fc5dcff0960080000]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[30400000001faa9fc5dcff0960080001]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[3040000000fd54fe2ee7f84b003fffff]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3040000000fd54fe2ee7f84b00400000]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3040000000fd54fe2ee7f84b00400001]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[3040a6274bbdd0fadd61999e07ac0251]", "[3082a6274bbdd0fadd61999e07ac0250]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3040c612062576589dd46a73a100695e]", "[3074c612062576589dd46a73a100695d]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3040c612062576589dda322d47eb47ff]", "[3074c612062576589dda322d47eb47fe]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3041622d6fbc91e01277c0caded5b8a3]", "[3067622d6fbc91e01277c0caded5b8a2]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3041622d6fbc91e0127820b72d18cacf]", "[3067622d6fbc91e0127820b72d18cace]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[30417361cb863de627fa3c5af3bb4c09]", "[30737361cb863de627fa3c5af3bb4c08]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3047ec3daf9417fe642eaec0d36a73d5]", "[307fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3047ec4450b72ff30000000000000000]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3047ec4450b72ff30000000000000001]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff096007ffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080001]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[306600000000000000000000003a6a15]", "[306800000000000000000000003a6a16]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[3067622d6fbc91e01277c0caded5b8a2]", "[3041622d6fbc91e01277c0caded5b8a3]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[3067622d6fbc91e0127820b72d18cace]", "[3041622d6fbc91e0127820b72d18cacf]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b003fffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400001]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[30737361cb863de627fa3c5af3bb4c08]", "[30417361cb863de627fa3c5af3bb4c09]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[3074c612062576589dd46a73a100695d]", "[3040c612062576589dd46a73a100695e]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[3074c612062576589dda322d47eb47fe]", "[3040c612062576589dda322d47eb47ff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[307fec3c64797fe80000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[307fec4450b72ff30000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000001]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[30820000000000000000000000000001]", "[303e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[30820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[3082a6274bbdd0fadd61999e07ac0250]", "[3040a6274bbdd0fadd61999e07ac0251]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[4bc3b72085a1c4c4,3e304535f22cfb71]", "[4bfced7cecf9f59f,ffefffffffffff7f]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[4d22242ecaf30a82,a6dbed706c2b7158]", "[0cc7ec705364af78,0d781e56d0569088]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[5986372e654cdcac,b5cd33bc7d7eeefd]", "[2badd19826683e9c,28d38d750ca0caf6]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[71f206a8c41d45e6,f9b33502983ec949]", "[e22180c98a822010,a7fd649d35ae43c5]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[78000000000000000000000000000001]", "[00000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[78000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[78000000000000000000000000000001]", "[80000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[78000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[7adf77ff3fbddffe,10950110600488c0]", "[fb79fcffbfefffff,bfffd7ffff9fffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[7c00000000000000,0000000000000000]", "[7e00000000000000,0000000000000000]", "0", "01")
+ self.bid128_quiet_less_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[7e0015b6190d0e4a,3764150ea9eff29f]", "[a166192bbc66f053,04269dc3fd03d9ea]", "0", "01")
+ self.bid128_quiet_less_equal("0", "[7e0020d25a649849,0fa8742978330223]", "[5a62799b64bdf53b,6125aa05dc67f8f9]", "0", "01")
+ self.bid128_quiet_less_equal("0", "[80000000000000000000000000000000]", "[00000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[80000000000000000000000000000000]", "[80000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[80000000000000000000000000000001]", "[00000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[80000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[80000000000000000000000000000001]", "[80000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[80000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[9f96d98a8f979d50,b92ffdb629f6af5a]", "[fe00000000000000,0000000000000000]", "0", "01")
+ self.bid128_quiet_less_equal("0", "[ace4000000000000,0000000000000000]", "[217de80c5de1b5e6,d431b436fba81b66]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b03e0000000000000000000000000002]", "[30820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000003]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[b03e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[b03e0000000000020000000000000000]", "[b03e0000000000010000000000000000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b03e0000000000020000000000000000]", "[b03e0000000000030000000000000000]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[b0400000001faa9fc5dcff096007ffff]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[b0400000001faa9fc5dcff0960080000]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b0400000001faa9fc5dcff0960080001]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b040000000fd54fe2ee7f84b003fffff]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[b040000000fd54fe2ee7f84b00400000]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b040000000fd54fe2ee7f84b00400001]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff096007ffff]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080001]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[b06600000000000000000000003a6a15]", "[b06800000000000000000000003a6a16]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b003fffff]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400000]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400001]", "0", "00")
+ self.bid128_quiet_less_equal("0", "[b07fec3c64797fe80000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b07fec4450b72ff30000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b0820000000000000000000000000001]", "[303e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b0820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[b1dc61bebf5e3ae0,54608cb0e34765ca]", "[1006930500018212,ffffffb77fffdffe]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[bf7b3d7bafd8fde7,5d988a3c409f270a]", "[84b877c786bdea76,c8ed3933cab3ee5c]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[cd73ad9a3f0fabd8,20cc6047a84fb3b6]", "[7e002678747fd4c7,5ddfc22e4f3a3a27]", "0", "01")
+ self.bid128_quiet_less_equal("0", "[d5af5d4336e5bf86,f3cd87ac28ced466]", "[f78fffbef97ffe3f,ffbf9f577fffffff]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[f38e1adf6eb5a8f0,9dcffd936c994d86]", "[208020080b008220,fbfff7f7fefdff9f]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[f8000000000000000000000000000001]", "[00000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[f8000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[f8000000000000000000000000000001]", "[80000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[f8000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[fbffefdf9fbfffbf,fffb9d1c7fbffc6f]", "[3ec80f3ad7cdbe02,f24a66fbda65f367]", "1", "00")
+ self.bid128_quiet_less_equal("0", "[ffffffffffffffff,fd1d33281dc040a0]", "[0000000000006000,2cf09103b7289b5d]", "0", "01")
+ self.bid128_quiet_less_equal("0", "Infinity", "SNaN", "0", "01")
+ self.bid128_quiet_less_equal("0", "QNaN", "0", "0", "00")
+ self.bid128_quiet_less_equal("0", "QNaN", "SNaN", "0", "01")
+ self.bid128_quiet_less_equal("0", "SNaN", "0", "0", "01")
+ self.bid128_quiet_less_equal("0", "SNaN", "+1111.0E0", "0", "01")
+ self.bid128_quiet_less_equal("0", "SNaN", "Infinity", "0", "01")
+ self.bid128_quiet_less_equal("0", "SNaN", "QNaN", "0", "01")
+ self.bid128_quiet_less_equal("0", "SNaN", "SNaN", "0", "01")
+ }
+
+ private func bid128_quiet_less_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLessThanOrEqualTo(arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_quiet_less_unordered() {
+ self.bid128_quiet_less_unordered("0", "-0", "0", "0", "00")
+ self.bid128_quiet_less_unordered("0", "0", "-0", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[00000000000000000000000000000000]", "[80000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[00000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[00000000000000000000000000000001]", "[80000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[00000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[0000400000000001,0100d231800010c3]", "[0020210080004800,af7a0c37eefe23df]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[0008004800000000,b3dfeffffdd7dfff]", "[0001002008101080,3042a00000a84c68]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[0040464a00608000,fbffffffffff7fff]", "[0008810000202020,ffffffffffffefff]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[00c74e9987cad359,c2b09b3d9d373234]", "[7e002fa15998f85b,68e9bc0c0cf8a80d]", "1", "01")
+ self.bid128_quiet_less_unordered("0", "[0461fa014f438130,0000000000000000]", "[a2090055a36b6048,2740304c06820801]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[0800000000060000,10107a48a265f904]", "[0800000000800000,21a5802000243808]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "0E+368", "0E+368", "0", "00")
+ self.bid128_quiet_less_unordered("0", "-0", "Infinity", "1", "00")
+ self.bid128_quiet_less_unordered("0", "1.0", "1", "0", "00")
+ self.bid128_quiet_less_unordered("0", "1", "1.0", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[180cc35d1f9038b4,511418240012a0a2]", "[1840100810800210,0104000080000080]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000003]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[303e0000000000000000000000000002]", "[30820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[303e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[303e0000000000020000000000000000]", "[303e0000000000010000000000000000]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[303e0000000000020000000000000000]", "[303e0000000000030000000000000000]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[30400000001faa9fc5dcff096007ffff]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[30400000001faa9fc5dcff0960080000]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[30400000001faa9fc5dcff0960080001]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[3040000000fd54fe2ee7f84b003fffff]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[3040000000fd54fe2ee7f84b00400000]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[3040000000fd54fe2ee7f84b00400001]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[3040a6274bbdd0fadd61999e07ac0251]", "[3082a6274bbdd0fadd61999e07ac0250]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[3040c612062576589dd46a73a100695e]", "[3074c612062576589dd46a73a100695d]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[3040c612062576589dda322d47eb47ff]", "[3074c612062576589dda322d47eb47fe]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[3041622d6fbc91e01277c0caded5b8a3]", "[3067622d6fbc91e01277c0caded5b8a2]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[3041622d6fbc91e0127820b72d18cacf]", "[3067622d6fbc91e0127820b72d18cace]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[30417361cb863de627fa3c5af3bb4c09]", "[30737361cb863de627fa3c5af3bb4c08]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[3047ec3daf9417fe642eaec0d36a73d5]", "[307fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[3047ec4450b72ff30000000000000000]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[3047ec4450b72ff30000000000000001]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff096007ffff]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080000]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080001]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[306600000000000000000000003a6a15]", "[306800000000000000000000003a6a16]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[3067622d6fbc91e01277c0caded5b8a2]", "[3041622d6fbc91e01277c0caded5b8a3]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[3067622d6fbc91e0127820b72d18cace]", "[3041622d6fbc91e0127820b72d18cacf]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b003fffff]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400000]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400001]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[30737361cb863de627fa3c5af3bb4c08]", "[30417361cb863de627fa3c5af3bb4c09]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[3074c612062576589dd46a73a100695d]", "[3040c612062576589dd46a73a100695e]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[3074c612062576589dda322d47eb47fe]", "[3040c612062576589dda322d47eb47ff]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[307fec3c64797fe80000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[307fec4450b72ff30000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000001]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[30820000000000000000000000000001]", "[303e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[30820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[3082a6274bbdd0fadd61999e07ac0250]", "[3040a6274bbdd0fadd61999e07ac0251]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[433e4146c43f14e3,270c255452be7adf]", "[0400000000200000,03870902492c4601]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[4a0e32504306493f,d68ff0bea4929d35]", "[dffff7afffdfffdf,e75ee6ebdfadfecd]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[4fc6c7a9fd290237,939a83944917d4d7]", "[fe001e830f6019ee,31d6b5ff7b2023c5]", "1", "01")
+ self.bid128_quiet_less_unordered("0", "[70833f5579e5b044,ea4c858d768aac12]", "[62a585f00ea9fe23,b4effbd0f6fffbea]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[78000000000000000000000000000001]", "[00000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[78000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[78000000000000000000000000000001]", "[80000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[78000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[7addbabf7edf1ebb,ffffaf67fbfff7bb]", "[a7f39deafbe2e7dc,1003b7840041a0c2]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[7e002b5fb895fcfa,5c477a5a1ae91b59]", "[fe0008ccb998ba7b,1205cfa41f47bc3d]", "1", "01")
+ self.bid128_quiet_less_unordered("0", "[80000000000000000000000000000000]", "[00000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[80000000000000000000000000000000]", "[80000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[80000000000000000000000000000001]", "[00000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[80000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[80000000000000000000000000000001]", "[80000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[80000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[95fe06a56e96a39f,f158d2cbf6a9ea81]", "[fe001ebfb043ca97,bdf22e2c29c2b9ea]", "1", "01")
+ self.bid128_quiet_less_unordered("0", "[9c22c40141082400,f7febfe76bd776ff]", "[0000000000000000,dfff3e1f1d3c7aff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[a46f7d390eadffb9,bfedfbfffeb7f8dd]", "[b8874aab7cfdfbd5,5bbbef4ffffe826e]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b03e0000000000000000000000000002]", "[30820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000003]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b03e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b03e0000000000020000000000000000]", "[b03e0000000000010000000000000000]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[b03e0000000000020000000000000000]", "[b03e0000000000030000000000000000]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b0400000001faa9fc5dcff096007ffff]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b0400000001faa9fc5dcff0960080000]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b0400000001faa9fc5dcff0960080001]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[b040000000fd54fe2ee7f84b003fffff]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b040000000fd54fe2ee7f84b00400000]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b040000000fd54fe2ee7f84b00400001]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff096007ffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080000]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080001]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b06600000000000000000000003a6a15]", "[b06800000000000000000000003a6a16]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b003fffff]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400000]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400001]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[b07fec3c64797fe80000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[b07fec4450b72ff30000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[b0820000000000000000000000000001]", "[303e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[b0820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[b4ce307f1c9aa1cf,77fceffeffefaefa]", "[9c24c1c83c698896,a49230f1b36824b9]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[bb5c9b994f2dd41c,773b91162e45514e]", "[c4cd252f2d58bdd0,2e18682e87060024]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[bca92ba580fd616e,19291c71e8bd462f]", "[aea2efba4d79fa79,716e60fbeff6a361]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[bd6e9b5edc315d30,8b38458a436e84e0]", "[ba6aab822c439da7,305e4edf7a7693f1]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[e3fffa7bdd3f3b7f,ee4fe7ffffedffbf]", "[f8a67dcabf1cf1ef,4749699906ff502b]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[f8000000000000000000000000000001]", "[00000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[f8000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[f8000000000000000000000000000001]", "[80000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[f8000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_less_unordered("0", "[fadbdbafff5d7f9b,a645a48921440010]", "[8199c82c83cdd4ea,813a0409c5c4d348]", "1", "00")
+ self.bid128_quiet_less_unordered("0", "[fe0000057b0aa184,4344bfc4fdd43905]", "[4276000000000000,0000000000000000]", "1", "01")
+ self.bid128_quiet_less_unordered("0", "[fe00136955fa44be,a5ef3fced058092b]", "[3ae60d7b21d0525e,1a78ad95b5427a6f]", "1", "01")
+ self.bid128_quiet_less_unordered("0", "[fe001ad63303ff74,6231f02b167aa43e]", "[be3f28e3eadda297,130b2a23ff722cce]", "1", "01")
+ self.bid128_quiet_less_unordered("0", "[fe002528210781fb,6f998dcaab2d38e1]", "[43a1c219bae8a3e3,d52131013b9d315e]", "1", "01")
+ self.bid128_quiet_less_unordered("0", "[ffffffffffffffff,dbdaf4e965bfe97f]", "[a8de74984bf7992c,a8f6ceba770d20ff]", "1", "01")
+ self.bid128_quiet_less_unordered("0", "-Infinity", "-0", "1", "00")
+ self.bid128_quiet_less_unordered("0", "QNaN", "-Infinity", "1", "00")
+ self.bid128_quiet_less_unordered("0", "SNaN", "-0", "1", "01")
+ self.bid128_quiet_less_unordered("0", "SNaN", "0", "1", "01")
+ self.bid128_quiet_less_unordered("0", "SNaN", "-10001.01010E0", "1", "01")
+ self.bid128_quiet_less_unordered("0", "SNaN", "-Infinity", "1", "01")
+ }
+
+ private func bid128_quiet_less_unordered(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLessThanOrEqualTo(arg0, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_quiet_not_greater() {
+ self.bid128_quiet_not_greater("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[00000000000000000000000000000000]", "[80000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[00000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[00000000000000000000000000000001]", "[80000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[00000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[0000000000000101,5fde262f578def4d]", "[ac09bb86a75c19c1,580ec3520a78e747]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[0000080010020000,fffffff7feffffff]", "[0000000320000000,0008000001800200]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[0001800410000041,7ffec8efe2fbffff]", "[0010000000002520,1800000109000400]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "-0", "-0", "1", "00")
+ self.bid128_quiet_not_greater("0", "[0ea653b50bf0094a,1448122a80920125]", "[0420000834012005,be1c8c6cc67a33d8]", "0", "00")
+ self.bid128_quiet_not_greater("0", "1.0", "1", "1", "00")
+ self.bid128_quiet_not_greater("0", "1", "1.0", "1", "00")
+ self.bid128_quiet_not_greater("0", "[1fbbeb65d6d43bf7,e4ae728088e6b418]", "[1fefbcddbfbbdb7d,0180000400400001]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[1ff4e3b16b8d4086,7dc21f2e5a3e9586]", "[324c6127d358091d,c1bf30468f3fa3b7]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[282c019a19ae7184,3db1523be08c6352]", "[4024010008006000,9d7a7b1ef95601dc]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[2945b7c202806304,1710c03ce7052b15]", "[5a9a275217fbd82f,ac84539bb623b367]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000003]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[303e0000000000000000000000000002]", "[30820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[303e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[303e0000000000020000000000000000]", "[303e0000000000010000000000000000]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[303e0000000000020000000000000000]", "[303e0000000000030000000000000000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[30400000001faa9fc5dcff096007ffff]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[30400000001faa9fc5dcff0960080000]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[30400000001faa9fc5dcff0960080001]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[3040000000fd54fe2ee7f84b003fffff]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3040000000fd54fe2ee7f84b00400000]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3040000000fd54fe2ee7f84b00400001]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[3040a6274bbdd0fadd61999e07ac0251]", "[3082a6274bbdd0fadd61999e07ac0250]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3040c612062576589dd46a73a100695e]", "[3074c612062576589dd46a73a100695d]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3040c612062576589dda322d47eb47ff]", "[3074c612062576589dda322d47eb47fe]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3041622d6fbc91e01277c0caded5b8a3]", "[3067622d6fbc91e01277c0caded5b8a2]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3041622d6fbc91e0127820b72d18cacf]", "[3067622d6fbc91e0127820b72d18cace]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[30417361cb863de627fa3c5af3bb4c09]", "[30737361cb863de627fa3c5af3bb4c08]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3047ec3daf9417fe642eaec0d36a73d5]", "[307fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3047ec4450b72ff30000000000000000]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3047ec4450b72ff30000000000000001]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff096007ffff]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080001]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[306600000000000000000000003a6a15]", "[306800000000000000000000003a6a16]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[3067622d6fbc91e01277c0caded5b8a2]", "[3041622d6fbc91e01277c0caded5b8a3]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[3067622d6fbc91e0127820b72d18cace]", "[3041622d6fbc91e0127820b72d18cacf]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b003fffff]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400001]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[30737361cb863de627fa3c5af3bb4c08]", "[30417361cb863de627fa3c5af3bb4c09]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[3074c612062576589dd46a73a100695d]", "[3040c612062576589dd46a73a100695e]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[3074c612062576589dda322d47eb47fe]", "[3040c612062576589dda322d47eb47ff]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[307fec3c64797fe80000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[307fec4450b72ff30000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000001]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[30820000000000000000000000000001]", "[303e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[30820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[3082a6274bbdd0fadd61999e07ac0250]", "[3040a6274bbdd0fadd61999e07ac0251]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[336c724c162c5aff,58e59ac7f0d13709]", "[46e1133b61a27b02,d56a3f98580f627f]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[356247556196575b,bb09a517d47e0f69]", "[b25624db84de5d01,73ca3b79eaec51c9]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[3f32158422d4d484,ef4f27effdfdbdbb]", "[d65bf1f7ddf766f3,9bef3e7abec34112]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[4050004010040004,fffbffffffffffff]", "[4040008043081240,0ce68993f7a0f4a4]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[45f852eb751de9d3,afddd64b06b65823]", "[7e0018c67731f2ec,bf6d979585053864]", "1", "01")
+ self.bid128_quiet_not_greater("0", "[56e6b2baddc6782f,d4308cd6f1d5c485]", "[d6a8000000000000,0000000000000000]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[78000000000000000000000000000001]", "[00000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[78000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[78000000000000000000000000000001]", "[80000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[78000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[7bc63a515a4d9c8f,90556303aa003201]", "[1022008802102020,7e4bcbc993ca9b13]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[7e00071389c7dbda,c876fea2ddeaa6b0]", "[83487a4ef54cbacb,c01ccba56593801d]", "1", "01")
+ self.bid128_quiet_not_greater("0", "[7e001e86a4674ec9,3efd740ccf5abd0b]", "[219386ab94f44305,60cfa705cd6a2678]", "1", "01")
+ self.bid128_quiet_not_greater("0", "[80000000000000000000000000000000]", "[00000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[80000000000000000000000000000000]", "[80000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[80000000000000000000000000000001]", "[00000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[80000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[80000000000000000000000000000001]", "[80000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[80000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[9760000000000000,0000000000000000]", "[7e002be766fd7377,740c3842ba88407a]", "1", "01")
+ self.bid128_quiet_not_greater("0", "[9cd60e9f357a63ff,4c3df9fdb0a029ee]", "[9ca310243a3bc128,8dab65c398da3d46]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b03e0000000000000000000000000002]", "[30820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000003]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[b03e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[b03e0000000000020000000000000000]", "[b03e0000000000010000000000000000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b03e0000000000020000000000000000]", "[b03e0000000000030000000000000000]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[b0400000001faa9fc5dcff096007ffff]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[b0400000001faa9fc5dcff0960080000]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b0400000001faa9fc5dcff0960080001]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b040000000fd54fe2ee7f84b003fffff]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[b040000000fd54fe2ee7f84b00400000]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b040000000fd54fe2ee7f84b00400001]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff096007ffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080001]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[b06600000000000000000000003a6a15]", "[b06800000000000000000000003a6a16]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b003fffff]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400000]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400001]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[b07fec3c64797fe80000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b07fec4450b72ff30000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b0820000000000000000000000000001]", "[303e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b0820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b2d7bde447ffdbdf,75c776fd7ebcfc77]", "[feffffffbffbffff,0122010000100108]", "1", "01")
+ self.bid128_quiet_not_greater("0", "[b3d34d4d636822cd,44346309f58bfe35]", "[b0d1ec09b6e81d55,63f1c97d1e435672]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[b5fffffffffffffe,bcfffbd0f4ffffcb]", "[bfd5cb32534390eb,c10583d405601f3b]", "0", "00")
+ self.bid128_quiet_not_greater("0", "[e1c3b8da93d0e272,28017c5f889e25a3]", "[7bffffeffdbffbff,d73a6f67e3fb7ccf]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[f3a7e5cfb5df5a09,efadfcf5bb7e7ff5]", "[eabb2cdb8d661960,4c5c75f9d13fe772]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[f800000000000000,0000000000000000]", "[d363809dc1c5f3f8,4864f99fa4c2a099]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[f8000000000000000000000000000001]", "[00000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[f8000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[f8000000000000000000000000000001]", "[80000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[f8000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[fa0cb1fe3efcafd9,73be17bff8eccfb5]", "[f253a06eb87e2b91,85f41c7a012b9b59]", "1", "00")
+ self.bid128_quiet_not_greater("0", "[fe00309beb1e9673,6535258be8dcfd14]", "[93b6000000000000,0000000000000000]", "1", "01")
+ self.bid128_quiet_not_greater("0", "-Infinity", "SNaN", "1", "01")
+ self.bid128_quiet_not_greater("0", "QNaN", "Infinity", "1", "00")
+ self.bid128_quiet_not_greater("0", "QNaN", "SNaN", "1", "01")
+ self.bid128_quiet_not_greater("0", "SNaN", "-0", "1", "01")
+ self.bid128_quiet_not_greater("0", "SNaN", "0", "1", "01")
+ self.bid128_quiet_not_greater("0", "SNaN", "Infinity", "1", "01")
+ }
+
+ private func bid128_quiet_not_greater(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Notice switched order! 'arg1' is on before '.'.
+ let result = arg1.isLess(than: arg0, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_quiet_not_less() {
+ self.bid128_quiet_not_less("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_not_less("0", "[00000000000000000000000000000000]", "[80000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_less("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[00000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_less("0", "[00000000000000000000000000000001]", "[80000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[00000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_less("0", "[0000000000000000,66c2758e22c22602]", "[0000000000000000,0000400000040000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[0000000000000000,ffffffefbfffffff]", "[87020b1b16689b01,e97be068a409fa51]", "1", "00")
+ self.bid128_quiet_not_less("0", "[0000000010400000,4800022a00000002]", "[257f0b1d8c85560c,9d4dbb63c2d7d060]", "0", "00")
+ self.bid128_quiet_not_less("0", "[0000000084408420,dfdfffbffbdfffff]", "[00186902a808e492,02100000e8c10000]", "0", "00")
+ self.bid128_quiet_not_less("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_not_less("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[0086800200044000,0000000000000000]", "[00c2049000000020,c200ba0012402968]", "0", "00")
+ self.bid128_quiet_not_less("0", "[0128e573906e13ee,3a5fa8389980eb3e]", "[0110028060000412,effddafdb7f5afbf]", "1", "00")
+ self.bid128_quiet_not_less("0", "[018233483740cbba,de254d52fd848fd4]", "[3c282c472d438402,34769acb4d16cb02]", "0", "00")
+ self.bid128_quiet_not_less("0", "0", "SNaN", "1", "01")
+ self.bid128_quiet_not_less("0", "[1001f15000209482,73d6fd39effbbdcf]", "[ffb9c7eb4d4e823a,0000000004800000]", "1", "01")
+ self.bid128_quiet_not_less("0", "1.0", "1", "1", "00")
+ self.bid128_quiet_not_less("0", "[10cd9661aff01a4c,edb813a25701d5da]", "[7b8a4cb7def99f99,888c010a11021740]", "0", "00")
+ self.bid128_quiet_not_less("0", "1", "1.0", "1", "00")
+ self.bid128_quiet_not_less("0", "[2421c83dbe7fb22d,d10321d67230eb7c]", "[5d7994ab146429aa,30de00eef1a808d8]", "0", "00")
+ self.bid128_quiet_not_less("0", "[2838d47280dd0911,474498db19237031]", "[0000300008000000,fe7b3926791b353c]", "1", "00")
+ self.bid128_quiet_not_less("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_less("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000003]", "0", "00")
+ self.bid128_quiet_not_less("0", "[303e0000000000000000000000000002]", "[30820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_not_less("0", "[303e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_less("0", "[303e0000000000020000000000000000]", "[303e0000000000010000000000000000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[303e0000000000020000000000000000]", "[303e0000000000030000000000000000]", "0", "00")
+ self.bid128_quiet_not_less("0", "[30400000001faa9fc5dcff096007ffff]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_not_less("0", "[30400000001faa9fc5dcff0960080000]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_not_less("0", "[30400000001faa9fc5dcff0960080001]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_not_less("0", "[3040000000fd54fe2ee7f84b003fffff]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_not_less("0", "[3040000000fd54fe2ee7f84b00400000]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_not_less("0", "[3040000000fd54fe2ee7f84b00400001]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_not_less("0", "[3040a6274bbdd0fadd61999e07ac0251]", "[3082a6274bbdd0fadd61999e07ac0250]", "0", "00")
+ self.bid128_quiet_not_less("0", "[3040c612062576589dd46a73a100695e]", "[3074c612062576589dd46a73a100695d]", "0", "00")
+ self.bid128_quiet_not_less("0", "[3040c612062576589dda322d47eb47ff]", "[3074c612062576589dda322d47eb47fe]", "0", "00")
+ self.bid128_quiet_not_less("0", "[3041622d6fbc91e01277c0caded5b8a3]", "[3067622d6fbc91e01277c0caded5b8a2]", "0", "00")
+ self.bid128_quiet_not_less("0", "[3041622d6fbc91e0127820b72d18cacf]", "[3067622d6fbc91e0127820b72d18cace]", "0", "00")
+ self.bid128_quiet_not_less("0", "[30417361cb863de627fa3c5af3bb4c09]", "[30737361cb863de627fa3c5af3bb4c08]", "0", "00")
+ self.bid128_quiet_not_less("0", "[3047ec3daf9417fe642eaec0d36a73d5]", "[307fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_not_less("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_not_less("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_not_less("0", "[3047ec4450b72ff30000000000000000]", "[307fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_not_less("0", "[3047ec4450b72ff30000000000000001]", "[307fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_not_less("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff096007ffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080001]", "0", "00")
+ self.bid128_quiet_not_less("0", "[306600000000000000000000003a6a15]", "[306800000000000000000000003a6a16]", "0", "00")
+ self.bid128_quiet_not_less("0", "[3067622d6fbc91e01277c0caded5b8a2]", "[3041622d6fbc91e01277c0caded5b8a3]", "1", "00")
+ self.bid128_quiet_not_less("0", "[3067622d6fbc91e0127820b72d18cace]", "[3041622d6fbc91e0127820b72d18cacf]", "1", "00")
+ self.bid128_quiet_not_less("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b003fffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400001]", "0", "00")
+ self.bid128_quiet_not_less("0", "[30737361cb863de627fa3c5af3bb4c08]", "[30417361cb863de627fa3c5af3bb4c09]", "1", "00")
+ self.bid128_quiet_not_less("0", "[3074c612062576589dd46a73a100695d]", "[3040c612062576589dd46a73a100695e]", "1", "00")
+ self.bid128_quiet_not_less("0", "[3074c612062576589dda322d47eb47fe]", "[3040c612062576589dda322d47eb47ff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[307fec3c64797fe80000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_not_less("0", "[307fec4450b72ff30000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_not_less("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[307fec4450b72ff30000000000000000]", "[3047ec4450b72ff30000000000000001]", "1", "00")
+ self.bid128_quiet_not_less("0", "[30820000000000000000000000000001]", "[303e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_less("0", "[30820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_less("0", "[3082a6274bbdd0fadd61999e07ac0250]", "[3040a6274bbdd0fadd61999e07ac0251]", "1", "00")
+ self.bid128_quiet_not_less("0", "[356c945f41531fb1,ed8303675c002e6f]", "[7e0013507e2cc63d,7f040040a47ac851]", "1", "01")
+ self.bid128_quiet_not_less("0", "[55ae9cb1f3a1e13f,4079358c07c9787a]", "[115d2b11b57e886e,29b92870feda1884]", "1", "00")
+ self.bid128_quiet_not_less("0", "[5f32efe0a6ae1c64,8383e95b5a73642d]", "[f800000000000000,0000000000000000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[69c7a99b78ef9445,813042c9ecfcaf9e]", "[c5d3a5b087fe52f1,9cd7f4558800b786]", "1", "00")
+ self.bid128_quiet_not_less("0", "[6ae504f51ba2a4b5,f8c079644d6f58f7]", "[66eb80e197d69285,62e9868005d00874]", "1", "00")
+ self.bid128_quiet_not_less("0", "[78000000000000000000000000000001]", "[00000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_less("0", "[78000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_less("0", "[78000000000000000000000000000001]", "[80000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_less("0", "[78000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_less("0", "[78d1d012a99203f6,0100004800581091]", "[2432ca4068421214,f7effbffffeffef3]", "1", "00")
+ self.bid128_quiet_not_less("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_less("0", "[80000000000000000000000000000000]", "[00000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_not_less("0", "[80000000000000000000000000000000]", "[80000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_less("0", "[80000000000000000000000000000001]", "[00000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_not_less("0", "[80000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_less("0", "[80000000000000000000000000000001]", "[80000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_not_less("0", "[80000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_less("0", "[832e9f34d2eb9177,c1c38581695f8531]", "[333aad9a11ca35b7,e4c5272df78be98a]", "0", "00")
+ self.bid128_quiet_not_less("0", "[87d28e665b030e7a,3859164bea673916]", "[cbc0562a01ca02b8,4036c403c9beddb6]", "1", "00")
+ self.bid128_quiet_not_less("0", "[8f96000000000000,0000000000000000]", "[00e8000000000000,0000000000000000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[a2268299e896ef17,7c54d3d7191e3e42]", "[a1e716be49371fd4,5011600014049e20]", "0", "00")
+ self.bid128_quiet_not_less("0", "[a7e62c15ea1fe53d,48c754d460998143]", "[685f3143c924d2aa,a26da1d6bb424067]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b03e0000000000000000000000000002]", "[30820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000003]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b03e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b03e0000000000020000000000000000]", "[b03e0000000000010000000000000000]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b03e0000000000020000000000000000]", "[b03e0000000000030000000000000000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b0400000001faa9fc5dcff096007ffff]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b0400000001faa9fc5dcff0960080000]", "[b06600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b0400000001faa9fc5dcff0960080001]", "[b06600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b040000000fd54fe2ee7f84b003fffff]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b040000000fd54fe2ee7f84b00400000]", "[b06800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b040000000fd54fe2ee7f84b00400001]", "[b06800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff096007ffff]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b06600000000000000000000003a6a15]", "[b0400000001faa9fc5dcff0960080001]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b06600000000000000000000003a6a15]", "[b06800000000000000000000003a6a16]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b003fffff]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400000]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b06800000000000000000000002ebb44]", "[b040000000fd54fe2ee7f84b00400001]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b07fec3c64797fe80000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b07fec4450b72ff30000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b0820000000000000000000000000001]", "[303e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b0820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_less("0", "[b0ae39e4d139516b,d8f895ea21181b4d]", "[c781e13fca61fc89,8b83aa907bef34a6]", "1", "00")
+ self.bid128_quiet_not_less("0", "[b5877c4e6dc8bf87,225dd57923e12119]", "[845c53f38c0fa9dd,0ac2971128a02fff]", "0", "00")
+ self.bid128_quiet_not_less("0", "[deef5feffbf7cdff,ffbeffefffffff7e]", "[b1d8229607a6153a,c877e9d480a48b5d]", "0", "00")
+ self.bid128_quiet_not_less("0", "[f8000000000000000000000000000001]", "[00000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_less("0", "[f8000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_less("0", "[f8000000000000000000000000000001]", "[80000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_less("0", "[f8000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_less("0", "[fbf40e7fecfbfbd7,a6f0b499a7b41250]", "[642a517b20149ee9,020004870179800e]", "0", "00")
+ self.bid128_quiet_not_less("0", "[fe0000a25a358a53,15cd3fe6584ed659]", "[080af97b41db8363,79246038125dc16e]", "1", "01")
+ self.bid128_quiet_not_less("0", "-Infinity", "-Infinity", "1", "00")
+ self.bid128_quiet_not_less("0", "QNaN", "SNaN", "1", "01")
+ self.bid128_quiet_not_less("0", "SNaN", "-0", "1", "01")
+ self.bid128_quiet_not_less("0", "SNaN", "0", "1", "01")
+ self.bid128_quiet_not_less("0", "SNaN", "Infinity", "1", "01")
+ self.bid128_quiet_not_less("0", "SNaN", "QNaN", "1", "01")
+ }
+
+ private func bid128_quiet_not_less(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isLess(than: arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelDivTests.swift b/Tests/DecimalTests/Intel - generated/IntelDivTests.swift
new file mode 100644
index 0000000..484a6f2
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelDivTests.swift
@@ -0,0 +1,763 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelDivTests: XCTestCase, IntelMixin {
+
+ func test_bid32_div() {
+ self.bid32_div("0", "[00000001]", "1.0", "[00000001]", "00")
+ self.bid32_div("0", "[00080001]", "1.0", "[00080001]", "00")
+ self.bid32_div("0", "[04240011]", "[f8000000]", "[80000000]", "00")
+ self.bid32_div("0", "0E-101", "1E+89", "[00000000]", "00")
+ self.bid32_div("0", "0E+89", "0E+89", "[7c000000]", "01")
+ self.bid32_div("0", "0E+89", "1E-96", "[5f800000]", "00")
+ self.bid32_div("0", "0E+89", "9.999999E+96", "[32000000]", "00")
+ self.bid32_div("0", "[0f4a7e34]", "[df2fffff]", "[80000000]", "30")
+ self.bid32_div("0", "1.0", "[00000001]", "[78000000]", "28")
+ self.bid32_div("0", "1.0", "[00080001]", "[5f1d1a91]", "20")
+ self.bid32_div("0", "1.0", "1.0", "[32800001]", "00")
+ self.bid32_div("0", "-1.0", "1.0", "[b2800001]", "00")
+ self.bid32_div("0", "1.0", "-1.0", "[b2800001]", "00")
+ self.bid32_div("0", "1.0", "1.0e-96", "[5f8f4240]", "00")
+ self.bid32_div("0", "1.0", "-1.0e-96", "[df8f4240]", "00")
+ self.bid32_div("0", "1.0", "[6098967f]", "[5c8f4240]", "20")
+ self.bid32_div("0", "1.0", "[60989680]", "[78000000]", "04")
+ self.bid32_div("0", "1.0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_div("0", "1.0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_div("0", "1.0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_div("0", "1.0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_div("0", "1.0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_div("0", "1.0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_div("0", "1.0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_div("0", "1.0", "[80000001]", "[f8000000]", "28")
+ self.bid32_div("0", "1.0", "9.999999e-95", "[5e8f4240]", "20")
+ self.bid32_div("0", "1.0", "-9.999999e-95", "[de8f4240]", "20")
+ self.bid32_div("0", "1.0", "9.999999e96", "[00002710]", "30")
+ self.bid32_div("0", "1.0", "-9.999999e96", "[80002710]", "30")
+ self.bid32_div("0", "1.0e-96", "1.0", "[02800001]", "00")
+ self.bid32_div("0", "-1.0e-96", "1.0", "[82800001]", "00")
+ self.bid32_div("0", "1.0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_div("0", "1.0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_div("0", "1.0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_div("0", "[15000000]", "[4d8583fd]", "[00000000]", "00")
+ self.bid32_div("0", "1E+89", "0.5", "[5f000002]", "00")
+ self.bid32_div("0", "1E+89", "1.000000E+96", "[2f000001]", "00")
+ self.bid32_div("0", "[23000000]", "[6896ff7f]", "[33800000]", "00")
+ self.bid32_div("0", "[6098967f]", "1.0", "[6098967f]", "00")
+ self.bid32_div("0", "[60989680]", "1.0", "[02800000]", "00")
+ self.bid32_div("0", "[78000000]", "[f3d4b76a]", "[f8000000]", "00")
+ self.bid32_div("0", "[7c000000]", "1.0", "[7c000000]", "00")
+ self.bid32_div("0", "[7c8f423f]", "1.0", "[7c0f423f]", "00")
+ self.bid32_div("0", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_div("0", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_div("0", "[7c8f4240]", "1.0", "[7c000000]", "00")
+ self.bid32_div("0", "[7e100000]", "1.0", "[7c000000]", "01")
+ self.bid32_div("0", "[7e100100]", "1.0", "[7c000100]", "01")
+ self.bid32_div("0", "[7e8f423f]", "1.0", "[7c0f423f]", "01")
+ self.bid32_div("0", "[7e8f4240]", "1.0", "[7c000000]", "01")
+ self.bid32_div("0", "[80000001]", "1.0", "[80000001]", "00")
+ self.bid32_div("0", "9.999999e-95", "1.0", "[6018967f]", "00")
+ self.bid32_div("0", "-9.999999e-95", "1.0", "[e018967f]", "00")
+ self.bid32_div("0", "9.999999e96", "1.0", "[77f8967f]", "00")
+ self.bid32_div("0", "-9.999999e96", "1.0", "[f7f8967f]", "00")
+ self.bid32_div("0", "[c3088000]", "[00020000]", "[f8000000]", "28")
+ self.bid32_div("0", "[ce000000]", "[049e2480]", "[df800000]", "00")
+ self.bid32_div("0", "[d5800000]", "[c2000000]", "[7c000000]", "01")
+ self.bid32_div("0", "[f8000000]", "[78000000]", "[7c000000]", "01")
+ self.bid32_div("0", "[fc100000]", "1.0", "[fc000000]", "00")
+ self.bid32_div("0", "[fc100100]", "1.0", "[fc000100]", "00")
+ self.bid32_div("0", "[fe000000]", "1.0", "[fc000000]", "01")
+ self.bid32_div("0", "Infinity", "Infinity", "[7c000000]", "01")
+ self.bid32_div("0", "Infinity", "NaN", "[7c000000]", "00")
+ self.bid32_div("1", "[803c6719]", "[a77f173f]", "[08488551]", "20")
+ self.bid32_div("2", "[803c6719]", "[a77f173f]", "[08488552]", "20")
+ self.bid32_div("2", "[c27912d4]", "[6c2e0ad6]", "[f0220ff5]", "20")
+ }
+
+ private func bid32_div(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.divided(by: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_div() {
+ self.bid64_div("0", "[0000000000000000]", "[eef7ffb6ffdffff7]", "[7c00000000000000]", "01")
+ self.bid64_div("0", "[0000000000000004]", "[0040000000000400]", "[308000000005f5e1]", "00")
+ self.bid64_div("0", "[0000000000000282]", "[080000000000000a]", "[29a0000000000282]", "00")
+ self.bid64_div("0", "-0", "-0", "[7c00000000000000]", "01")
+ self.bid64_div("0", "[0180400000000000]", "[0001000000000000]", "[3300000000000019]", "00")
+ self.bid64_div("0", "[0200006060800800]", "[0000000000004000]", "[33600005e1e3d07d]", "00")
+ self.bid64_div("0", "[021e9204a8ae47b6]", "[f5ffefdbdfdffbf9]", "[f800000000000000]", "04")
+ self.bid64_div("0", "[039393792c7c126a]", "[51abaea754772210]", "[0000000000000000]", "30")
+ self.bid64_div("0", "[042d518a897c3880]", "[96ff6539819d4eef]", "[9d0f123f2e25c97c]", "20")
+ self.bid64_div("0", "[04f208c93b8f8b47]", "[4040000000000000]", "[7800000000000000]", "04")
+ self.bid64_div("0", "[0a25000000000000]", "[b1e367cf1e446523]", "[882537549b5c0e35]", "20")
+ self.bid64_div("0", "[0b3d8e5d8cce182a]", "[337fcffeffefddff]", "[61e101de3b12cb7a]", "20")
+ self.bid64_div("0", "[0bae000000000000]", "[0c1ff642997dcd4b]", "[2f6f8fc69bc6e1ce]", "20")
+ self.bid64_div("0", "[0f57000000000000]", "[589cb873b58c817c]", "[0000000000000000]", "30")
+ self.bid64_div("0", "[0fc0a985ec79fe1a]", "[101abaab50975ac3]", "[2f68cd385806de33]", "20")
+ self.bid64_div("0", "-0", "Infinity", "[8000000000000000]", "00")
+ self.bid64_div("0", "-0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("0", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("0", "+10.1110110E0", "0", "[7800000000000000]", "04")
+ self.bid64_div("0", "-1111001100110010.E0", "-2.92E0", "[31ad8471a266af6b]", "20")
+ self.bid64_div("0", "[167adba71acf185d]", "[90e3c2736eb30aa5]", "[b5796156c3f8f151]", "20")
+ self.bid64_div("0", "1E-385", "16384", "[00000000246139ca]", "30")
+ self.bid64_div("0", "1E-385", "1E+367", "[0000000000000000]", "30")
+ self.bid64_div("0", "[2018024302120800]", "[0000000000008000]", "[514753b0b301c0b1]", "00")
+ self.bid64_div("0", "[2400000000008100]", "[0000000000000020]", "[55c0000000000408]", "00")
+ self.bid64_div("0", "[2880000000000000]", "[3d40000000000000]", "[7c00000000000000]", "01")
+ self.bid64_div("0", "[2d785dacb4166294]", "[5e72c4a1d1b31da0]", "[000000000013cf57]", "30")
+ self.bid64_div("0", "[2f9cf28d6eaaebcc]", "[f94832e6badcf797]", "[8000000000000000]", "00")
+ self.bid64_div("0", "[3200058000000000]", "[0000000000000010]", "[7800000000000000]", "28")
+ self.bid64_div("0", "[339eb13e144fb3f3]", "[c53a14f5cb7938be]", "[9e442e43fb2dfb55]", "20")
+ self.bid64_div("0", "[3ffffd0af7de7eff]", "[7efbdfffffff7bd7]", "[7c00000000000000]", "01")
+ self.bid64_div("0", "[4000000000020000]", "[0000000001000000]", "[7800000000000000]", "28")
+ self.bid64_div("0", "[400051600011e004]", "[3fd94c7fdfaddfff]", "[2fe476bfbd6da947]", "20")
+ self.bid64_div("0", "[41e1fbe51166dc69]", "[2a9c71784e0b81aa]", "[4718c7e0f7fa1d4d]", "20")
+ self.bid64_div("0", "[420a7c9a1d28f90f]", "[02c9ef83cdb1ddf7]", "[7800000000000000]", "28")
+ self.bid64_div("0", "[4bc0000000000000]", "[5114e89b5a42af8d]", "[2c80000000000000]", "00")
+ self.bid64_div("0", "[4ea93be697d51be4]", "[88116e2dd297cc4d]", "[f800000000000000]", "28")
+ self.bid64_div("0", "[5858f12126e35a22]", "[61226b08b1946f05]", "[7800000000000000]", "28")
+ self.bid64_div("0", "[59cd9856f330399a]", "[9bdb3e5708231902]", "[f800000000000000]", "28")
+ self.bid64_div("0", "[5e2c752533be5749]", "[c700000000000000]", "[f800000000000000]", "04")
+ self.bid64_div("0", "[5fc0000000000000]", "[7800000000000000]", "[0000000000000000]", "00")
+ self.bid64_div("0", "[5fc0000000000000]", "[f800000000000000]", "[8000000000000000]", "00")
+ self.bid64_div("0", "[601f0f9da2b320f6]", "[3b8e15040145540e]", "[0000000000000000]", "00")
+ self.bid64_div("0", "[62cb6ee11abc0476]", "[0000000000000001]", "[6f3b6ee11abc0476]", "00")
+ self.bid64_div("0", "[63dd3bfeaef7dbff]", "[08014068b2298d18]", "[3920000000000000]", "00")
+ self.bid64_div("0", "+6687988995.758858799E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("0", "[755e5cfb4ddb218b]", "[f265c6f3ed542986]", "[7c00000000000000]", "01")
+ self.bid64_div("0", "[82e0000000000000]", "[81e0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_div("0", "[8660000000000000]", "[98d0817453613ac1]", "[1f60000000000000]", "00")
+ self.bid64_div("0", "+8898.98E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("0", "+88.E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("0", "-89.E0", "0", "[f800000000000000]", "04")
+ self.bid64_div("0", "[9102332813400470]", "[d9f9890149262ddf]", "[0000000000000000]", "30")
+ self.bid64_div("0", "[91d485eae74fc032]", "[d800000000000000]", "[7800000000000000]", "04")
+ self.bid64_div("0", "[982ca40942e6fb1f]", "[f4facdd2bab9ad58]", "[0000000000000000]", "30")
+ self.bid64_div("0", "[998ed817c9d53f16]", "[c895d1f21105b6c5]", "[00d82b40182a092c]", "20")
+ self.bid64_div("0", "+9.E0", "0", "[7800000000000000]", "04")
+ self.bid64_div("0", "[a2fbd24fd2ad12f5]", "[d973fbdfabf9ed93]", "[0000000000000000]", "30")
+ self.bid64_div("0", "[afc0000000000000]", "[d8e474adefac0730]", "[08a0000000000000]", "00")
+ self.bid64_div("0", "[b7fcffb8ffdffe6b]", "[a0ae000424880541]", "[47275bdfda41a904]", "20")
+ self.bid64_div("0", "[b9e36bb3ca04293f]", "[84d70274957e1bdc]", "[7800000000000000]", "28")
+ self.bid64_div("0", "[bfff7ff7ffbf7fdf]", "[2000000000002102]", "[d143ba50da19b137]", "20")
+ self.bid64_div("0", "[c1e1d7c2a197e831]", "[3840000000000000]", "[f800000000000000]", "04")
+ self.bid64_div("0", "[c966c31ebbb54b25]", "[0d4c38ce9336af27]", "[f800000000000000]", "28")
+ self.bid64_div("0", "[cfffffaffeffffbf]", "[e33255da752fd6ad]", "[7800000000000000]", "28")
+ self.bid64_div("0", "[db00000000000000]", "[0d99000000000000]", "[dfe0000000000000]", "00")
+ self.bid64_div("0", "[dffd65e1d2c35e62]", "[e9f9936524689c8c]", "[7800000000000000]", "28")
+ self.bid64_div("0", "[e3dd88b6496b6f3d]", "[68810133c0dbc9dc]", "[9f20000000000000]", "00")
+ self.bid64_div("0", "[f04d7481964314a9]", "[0000000000000000]", "[7c00000000000000]", "01")
+ self.bid64_div("0", "[f6ffffffff7fffef]", "[865419747a1134e0]", "[5fe0000000000000]", "00")
+ self.bid64_div("0", "[f8009c3887ca4503]", "[002c04142292d400]", "[f800000000000000]", "00")
+ self.bid64_div("0", "[f92bf743dfd2e0c3]", "[fff7ffffffffbfdf]", "[fc00000000000000]", "01")
+ self.bid64_div("0", "[fa0a1ffcf8a5db16]", "[f95b66d979dab6fd]", "[7c00000000000000]", "01")
+ self.bid64_div("0", "[fd69ddfd386feeff]", "[fd5d747ddffbbaeb]", "[fc01ddfd386feeff]", "00")
+ self.bid64_div("0", "[ffffdefffefefeff]", "[ff96f7eedbbfefbc]", "[fc00000000000000]", "01")
+ self.bid64_div("0", "[ffffdfff7ffffffb]", "[51a693977ee9dd4c]", "[fc00000000000000]", "01")
+ self.bid64_div("0", "Infinity", "0", "[7800000000000000]", "00")
+ self.bid64_div("0", "Infinity", "-0", "[f800000000000000]", "00")
+ self.bid64_div("0", "-Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_div("0", "Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("0", "Infinity", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("0", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("0", "QNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("0", "SNaN", "0", "[7c00000000000000]", "01")
+ self.bid64_div("1", "-0", "-0", "[7c00000000000000]", "01")
+ self.bid64_div("1", "[039393792c7c126a]", "[51abaea754772210]", "[0000000000000000]", "30")
+ self.bid64_div("1", "[042d518a897c3880]", "[96ff6539819d4eef]", "[9d0f123f2e25c97d]", "20")
+ self.bid64_div("1", "[04f208c93b8f8b47]", "[4040000000000000]", "[7800000000000000]", "04")
+ self.bid64_div("1", "[0a25000000000000]", "[b1e367cf1e446523]", "[882537549b5c0e36]", "20")
+ self.bid64_div("1", "[0bae000000000000]", "[0c1ff642997dcd4b]", "[2f6f8fc69bc6e1ce]", "20")
+ self.bid64_div("1", "[0f57000000000000]", "[589cb873b58c817c]", "[0000000000000000]", "30")
+ self.bid64_div("1", "[0fc0a985ec79fe1a]", "[101abaab50975ac3]", "[2f68cd385806de33]", "20")
+ self.bid64_div("1", "-0", "Infinity", "[8000000000000000]", "00")
+ self.bid64_div("1", "-0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("1", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("1", "+10.1110110E0", "0", "[7800000000000000]", "04")
+ self.bid64_div("1", "-1111001100110010.E0", "-2.92E0", "[31ad8471a266af6b]", "20")
+ self.bid64_div("1", "[13a8cc55d7309683]", "[db3a49157a4df475]", "[8000000000000001]", "30")
+ self.bid64_div("1", "[167adba71acf185d]", "[90e3c2736eb30aa5]", "[b5796156c3f8f151]", "20")
+ self.bid64_div("1", "1E-385", "16384", "[00000000246139ca]", "30")
+ self.bid64_div("1", "1E-385", "-1E+368", "[8000000000000001]", "30")
+ self.bid64_div("1", "[2880000000000000]", "[3d40000000000000]", "[7c00000000000000]", "01")
+ self.bid64_div("1", "[2d785dacb4166294]", "[5e72c4a1d1b31da0]", "[000000000013cf56]", "30")
+ self.bid64_div("1", "[339eb13e144fb3f3]", "[c53a14f5cb7938be]", "[9e442e43fb2dfb56]", "20")
+ self.bid64_div("1", "[414024441e040388]", "[0000000000000002]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_div("1", "[41e1fbe51166dc69]", "[2a9c71784e0b81aa]", "[4718c7e0f7fa1d4d]", "20")
+ self.bid64_div("1", "[420a7c9a1d28f90f]", "[02c9ef83cdb1ddf7]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_div("1", "[4bc0000000000000]", "[5114e89b5a42af8d]", "[2c80000000000000]", "00")
+ self.bid64_div("1", "[4ea93be697d51be4]", "[88116e2dd297cc4d]", "[f800000000000000]", "28")
+ self.bid64_div("1", "[5858f12126e35a22]", "[61226b08b1946f05]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_div("1", "[59cd9856f330399a]", "[9bdb3e5708231902]", "[f800000000000000]", "28")
+ self.bid64_div("1", "[5e2c752533be5749]", "[c700000000000000]", "[f800000000000000]", "04")
+ self.bid64_div("1", "+6687988995.758858799E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("1", "[82e0000000000000]", "[81e0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_div("1", "[8660000000000000]", "[98d0817453613ac1]", "[1f60000000000000]", "00")
+ self.bid64_div("1", "+8898.98E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("1", "+88.E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("1", "-89.E0", "0", "[f800000000000000]", "04")
+ self.bid64_div("1", "[91d485eae74fc032]", "[d800000000000000]", "[7800000000000000]", "04")
+ self.bid64_div("1", "[982ca40942e6fb1f]", "[f4facdd2bab9ad58]", "[0000000000000000]", "30")
+ self.bid64_div("1", "[998ed817c9d53f16]", "[c895d1f21105b6c5]", "[00d82b40182a092c]", "20")
+ self.bid64_div("1", "+9.E0", "0", "[7800000000000000]", "04")
+ self.bid64_div("1", "[a2fbd24fd2ad12f5]", "[d973fbdfabf9ed93]", "[0000000000000000]", "30")
+ self.bid64_div("1", "[afc0000000000000]", "[d8e474adefac0730]", "[08a0000000000000]", "00")
+ self.bid64_div("1", "[b8ac3defb7727fb8]", "[0020000000000008]", "[f800000000000000]", "28")
+ self.bid64_div("1", "[b9e36bb3ca04293f]", "[84d70274957e1bdc]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_div("1", "[c1e1d7c2a197e831]", "[3840000000000000]", "[f800000000000000]", "04")
+ self.bid64_div("1", "[c966c31ebbb54b25]", "[0d4c38ce9336af27]", "[f800000000000000]", "28")
+ self.bid64_div("1", "[db00000000000000]", "[0d99000000000000]", "[dfe0000000000000]", "00")
+ self.bid64_div("1", "[dffd65e1d2c35e62]", "[e9f9936524689c8c]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_div("1", "Infinity", "0", "[7800000000000000]", "00")
+ self.bid64_div("1", "Infinity", "-0", "[f800000000000000]", "00")
+ self.bid64_div("1", "-Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_div("1", "Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("1", "Infinity", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("1", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("1", "QNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("1", "SNaN", "0", "[7c00000000000000]", "01")
+ self.bid64_div("2", "-0", "-0", "[7c00000000000000]", "01")
+ self.bid64_div("2", "[039393792c7c126a]", "[51abaea754772210]", "[0000000000000001]", "30")
+ self.bid64_div("2", "[042d518a897c3880]", "[96ff6539819d4eef]", "[9d0f123f2e25c97c]", "20")
+ self.bid64_div("2", "[04f208c93b8f8b47]", "[4040000000000000]", "[7800000000000000]", "04")
+ self.bid64_div("2", "[0a25000000000000]", "[b1e367cf1e446523]", "[882537549b5c0e35]", "20")
+ self.bid64_div("2", "[0bae000000000000]", "[0c1ff642997dcd4b]", "[2f6f8fc69bc6e1cf]", "20")
+ self.bid64_div("2", "[0f57000000000000]", "[589cb873b58c817c]", "[0000000000000001]", "30")
+ self.bid64_div("2", "[0fc0a985ec79fe1a]", "[101abaab50975ac3]", "[2f68cd385806de34]", "20")
+ self.bid64_div("2", "-0", "Infinity", "[8000000000000000]", "00")
+ self.bid64_div("2", "-0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("2", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("2", "+10.1110110E0", "0", "[7800000000000000]", "04")
+ self.bid64_div("2", "-1111001100110010.E0", "-2.92E0", "[31ad8471a266af6c]", "20")
+ self.bid64_div("2", "[167adba71acf185d]", "[90e3c2736eb30aa5]", "[b5796156c3f8f150]", "20")
+ self.bid64_div("2", "1E-385", "16384", "[00000000246139cb]", "30")
+ self.bid64_div("2", "1E-385", "1E+367", "[0000000000000001]", "30")
+ self.bid64_div("2", "[2880000000000000]", "[3d40000000000000]", "[7c00000000000000]", "01")
+ self.bid64_div("2", "[2d785dacb4166294]", "[5e72c4a1d1b31da0]", "[000000000013cf57]", "30")
+ self.bid64_div("2", "[2d92d2e46e3cb1c8]", "[cb3bcb79cd21170b]", "[92380f78b353a52c]", "20")
+ self.bid64_div("2", "[339eb13e144fb3f3]", "[c53a14f5cb7938be]", "[9e442e43fb2dfb55]", "20")
+ self.bid64_div("2", "[400051600011e004]", "[3fd94c7fdfaddfff]", "[2fe476bfbd6da948]", "20")
+ self.bid64_div("2", "[41e1fbe51166dc69]", "[2a9c71784e0b81aa]", "[4718c7e0f7fa1d4e]", "20")
+ self.bid64_div("2", "[420a7c9a1d28f90f]", "[02c9ef83cdb1ddf7]", "[7800000000000000]", "28")
+ self.bid64_div("2", "[4bc0000000000000]", "[5114e89b5a42af8d]", "[2c80000000000000]", "00")
+ self.bid64_div("2", "[4ea93be697d51be4]", "[88116e2dd297cc4d]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_div("2", "[5858f12126e35a22]", "[61226b08b1946f05]", "[7800000000000000]", "28")
+ self.bid64_div("2", "[59cd9856f330399a]", "[9bdb3e5708231902]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_div("2", "[5e2c752533be5749]", "[c700000000000000]", "[f800000000000000]", "04")
+ self.bid64_div("2", "+6687988995.758858799E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("2", "[82e0000000000000]", "[81e0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_div("2", "[8660000000000000]", "[98d0817453613ac1]", "[1f60000000000000]", "00")
+ self.bid64_div("2", "+8898.98E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("2", "+88.E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("2", "-89.E0", "0", "[f800000000000000]", "04")
+ self.bid64_div("2", "[91d485eae74fc032]", "[d800000000000000]", "[7800000000000000]", "04")
+ self.bid64_div("2", "[982ca40942e6fb1f]", "[f4facdd2bab9ad58]", "[0000000000000001]", "30")
+ self.bid64_div("2", "[998ed817c9d53f16]", "[c895d1f21105b6c5]", "[00d82b40182a092d]", "20")
+ self.bid64_div("2", "+9.E0", "0", "[7800000000000000]", "04")
+ self.bid64_div("2", "[a2fbd24fd2ad12f5]", "[d973fbdfabf9ed93]", "[0000000000000001]", "30")
+ self.bid64_div("2", "[afc0000000000000]", "[d8e474adefac0730]", "[08a0000000000000]", "00")
+ self.bid64_div("2", "[b8ac3defb7727fb8]", "[0020000000000008]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_div("2", "[b9e36bb3ca04293f]", "[84d70274957e1bdc]", "[7800000000000000]", "28")
+ self.bid64_div("2", "[c1e1d7c2a197e831]", "[3840000000000000]", "[f800000000000000]", "04")
+ self.bid64_div("2", "[c966c31ebbb54b25]", "[0d4c38ce9336af27]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_div("2", "[db00000000000000]", "[0d99000000000000]", "[dfe0000000000000]", "00")
+ self.bid64_div("2", "[dffd65e1d2c35e62]", "[e9f9936524689c8c]", "[7800000000000000]", "28")
+ self.bid64_div("2", "Infinity", "0", "[7800000000000000]", "00")
+ self.bid64_div("2", "Infinity", "-0", "[f800000000000000]", "00")
+ self.bid64_div("2", "-Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_div("2", "Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("2", "Infinity", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("2", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("2", "QNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("2", "SNaN", "0", "[7c00000000000000]", "01")
+ self.bid64_div("3", "-0", "-0", "[7c00000000000000]", "01")
+ self.bid64_div("3", "[039393792c7c126a]", "[51abaea754772210]", "[0000000000000000]", "30")
+ self.bid64_div("3", "[042d518a897c3880]", "[96ff6539819d4eef]", "[9d0f123f2e25c97c]", "20")
+ self.bid64_div("3", "[04f208c93b8f8b47]", "[4040000000000000]", "[7800000000000000]", "04")
+ self.bid64_div("3", "[0a25000000000000]", "[b1e367cf1e446523]", "[882537549b5c0e35]", "20")
+ self.bid64_div("3", "[0bae000000000000]", "[0c1ff642997dcd4b]", "[2f6f8fc69bc6e1ce]", "20")
+ self.bid64_div("3", "[0f57000000000000]", "[589cb873b58c817c]", "[0000000000000000]", "30")
+ self.bid64_div("3", "[0fc0a985ec79fe1a]", "[101abaab50975ac3]", "[2f68cd385806de33]", "20")
+ self.bid64_div("3", "-0", "Infinity", "[8000000000000000]", "00")
+ self.bid64_div("3", "-0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("3", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("3", "+10.1110110E0", "0", "[7800000000000000]", "04")
+ self.bid64_div("3", "-1111001100110010.E0", "-2.92E0", "[31ad8471a266af6b]", "20")
+ self.bid64_div("3", "[167adba71acf185d]", "[90e3c2736eb30aa5]", "[b5796156c3f8f150]", "20")
+ self.bid64_div("3", "[2880000000000000]", "[3d40000000000000]", "[7c00000000000000]", "01")
+ self.bid64_div("3", "[2d785dacb4166294]", "[5e72c4a1d1b31da0]", "[000000000013cf56]", "30")
+ self.bid64_div("3", "[339eb13e144fb3f3]", "[c53a14f5cb7938be]", "[9e442e43fb2dfb55]", "20")
+ self.bid64_div("3", "[41e1fbe51166dc69]", "[2a9c71784e0b81aa]", "[4718c7e0f7fa1d4d]", "20")
+ self.bid64_div("3", "[420a7c9a1d28f90f]", "[02c9ef83cdb1ddf7]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_div("3", "[4bc0000000000000]", "[5114e89b5a42af8d]", "[2c80000000000000]", "00")
+ self.bid64_div("3", "[4ea93be697d51be4]", "[88116e2dd297cc4d]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_div("3", "[5858f12126e35a22]", "[61226b08b1946f05]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_div("3", "[59cd9856f330399a]", "[9bdb3e5708231902]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_div("3", "[5e2c752533be5749]", "[c700000000000000]", "[f800000000000000]", "04")
+ self.bid64_div("3", "+6687988995.758858799E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("3", "[82e0000000000000]", "[81e0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_div("3", "[8660000000000000]", "[98d0817453613ac1]", "[1f60000000000000]", "00")
+ self.bid64_div("3", "+8898.98E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("3", "+88.E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("3", "-89.E0", "0", "[f800000000000000]", "04")
+ self.bid64_div("3", "[91d485eae74fc032]", "[d800000000000000]", "[7800000000000000]", "04")
+ self.bid64_div("3", "[982ca40942e6fb1f]", "[f4facdd2bab9ad58]", "[0000000000000000]", "30")
+ self.bid64_div("3", "[998ed817c9d53f16]", "[c895d1f21105b6c5]", "[00d82b40182a092c]", "20")
+ self.bid64_div("3", "+9.E0", "0", "[7800000000000000]", "04")
+ self.bid64_div("3", "[a2fbd24fd2ad12f5]", "[d973fbdfabf9ed93]", "[0000000000000000]", "30")
+ self.bid64_div("3", "[afc0000000000000]", "[d8e474adefac0730]", "[08a0000000000000]", "00")
+ self.bid64_div("3", "[b8ac3defb7727fb8]", "[0020000000000008]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_div("3", "[b9e36bb3ca04293f]", "[84d70274957e1bdc]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_div("3", "[c1e1d7c2a197e831]", "[3840000000000000]", "[f800000000000000]", "04")
+ self.bid64_div("3", "[c966c31ebbb54b25]", "[0d4c38ce9336af27]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_div("3", "[db00000000000000]", "[0d99000000000000]", "[dfe0000000000000]", "00")
+ self.bid64_div("3", "[dffd65e1d2c35e62]", "[e9f9936524689c8c]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_div("3", "Infinity", "0", "[7800000000000000]", "00")
+ self.bid64_div("3", "Infinity", "-0", "[f800000000000000]", "00")
+ self.bid64_div("3", "-Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_div("3", "Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("3", "Infinity", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("3", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("3", "QNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("3", "SNaN", "0", "[7c00000000000000]", "01")
+ self.bid64_div("4", "-0", "-0", "[7c00000000000000]", "01")
+ self.bid64_div("4", "[039393792c7c126a]", "[51abaea754772210]", "[0000000000000000]", "30")
+ self.bid64_div("4", "[042d518a897c3880]", "[96ff6539819d4eef]", "[9d0f123f2e25c97c]", "20")
+ self.bid64_div("4", "[04f208c93b8f8b47]", "[4040000000000000]", "[7800000000000000]", "04")
+ self.bid64_div("4", "[0a25000000000000]", "[b1e367cf1e446523]", "[882537549b5c0e35]", "20")
+ self.bid64_div("4", "[0bae000000000000]", "[0c1ff642997dcd4b]", "[2f6f8fc69bc6e1ce]", "20")
+ self.bid64_div("4", "[0f57000000000000]", "[589cb873b58c817c]", "[0000000000000000]", "30")
+ self.bid64_div("4", "[0fc0a985ec79fe1a]", "[101abaab50975ac3]", "[2f68cd385806de33]", "20")
+ self.bid64_div("4", "-0", "Infinity", "[8000000000000000]", "00")
+ self.bid64_div("4", "-0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("4", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("4", "+10.1110110E0", "0", "[7800000000000000]", "04")
+ self.bid64_div("4", "-1111001100110010.E0", "-2.92E0", "[31ad8471a266af6b]", "20")
+ self.bid64_div("4", "[167adba71acf185d]", "[90e3c2736eb30aa5]", "[b5796156c3f8f151]", "20")
+ self.bid64_div("4", "[2880000000000000]", "[3d40000000000000]", "[7c00000000000000]", "01")
+ self.bid64_div("4", "[2d785dacb4166294]", "[5e72c4a1d1b31da0]", "[000000000013cf57]", "30")
+ self.bid64_div("4", "[339eb13e144fb3f3]", "[c53a14f5cb7938be]", "[9e442e43fb2dfb55]", "20")
+ self.bid64_div("4", "[41e1fbe51166dc69]", "[2a9c71784e0b81aa]", "[4718c7e0f7fa1d4d]", "20")
+ self.bid64_div("4", "[420a7c9a1d28f90f]", "[02c9ef83cdb1ddf7]", "[7800000000000000]", "28")
+ self.bid64_div("4", "[4bc0000000000000]", "[5114e89b5a42af8d]", "[2c80000000000000]", "00")
+ self.bid64_div("4", "[4ea93be697d51be4]", "[88116e2dd297cc4d]", "[f800000000000000]", "28")
+ self.bid64_div("4", "[5858f12126e35a22]", "[61226b08b1946f05]", "[7800000000000000]", "28")
+ self.bid64_div("4", "[59cd9856f330399a]", "[9bdb3e5708231902]", "[f800000000000000]", "28")
+ self.bid64_div("4", "[5e2c752533be5749]", "[c700000000000000]", "[f800000000000000]", "04")
+ self.bid64_div("4", "+6687988995.758858799E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("4", "[82e0000000000000]", "[81e0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_div("4", "[8660000000000000]", "[98d0817453613ac1]", "[1f60000000000000]", "00")
+ self.bid64_div("4", "+8898.98E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("4", "+88.E0", "-0", "[f800000000000000]", "04")
+ self.bid64_div("4", "-89.E0", "0", "[f800000000000000]", "04")
+ self.bid64_div("4", "[91d485eae74fc032]", "[d800000000000000]", "[7800000000000000]", "04")
+ self.bid64_div("4", "[982ca40942e6fb1f]", "[f4facdd2bab9ad58]", "[0000000000000000]", "30")
+ self.bid64_div("4", "[998ed817c9d53f16]", "[c895d1f21105b6c5]", "[00d82b40182a092c]", "20")
+ self.bid64_div("4", "+9.E0", "0", "[7800000000000000]", "04")
+ self.bid64_div("4", "[a2fbd24fd2ad12f5]", "[d973fbdfabf9ed93]", "[0000000000000000]", "30")
+ self.bid64_div("4", "[afc0000000000000]", "[d8e474adefac0730]", "[08a0000000000000]", "00")
+ self.bid64_div("4", "[b9e36bb3ca04293f]", "[84d70274957e1bdc]", "[7800000000000000]", "28")
+ self.bid64_div("4", "[c1e1d7c2a197e831]", "[3840000000000000]", "[f800000000000000]", "04")
+ self.bid64_div("4", "[c966c31ebbb54b25]", "[0d4c38ce9336af27]", "[f800000000000000]", "28")
+ self.bid64_div("4", "[db00000000000000]", "[0d99000000000000]", "[dfe0000000000000]", "00")
+ self.bid64_div("4", "[dffd65e1d2c35e62]", "[e9f9936524689c8c]", "[7800000000000000]", "28")
+ self.bid64_div("4", "Infinity", "0", "[7800000000000000]", "00")
+ self.bid64_div("4", "Infinity", "-0", "[f800000000000000]", "00")
+ self.bid64_div("4", "-Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_div("4", "Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("4", "Infinity", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("4", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_div("4", "QNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_div("4", "SNaN", "0", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_div(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.divided(by: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_div() {
+ self.bid128_div("0", "[0000000000000000,a4e0e3a5011dfdb3]", "[0000000000000000,0000000000080000]", "[301a0b2c2f82b26a5d8dedadcff7d6a7]", "00")
+ self.bid128_div("0", "[0000000000100000,0000000010000000]", "[1f90612e201990ad,ffdfbfffffffd7ff]", "[105de3d7592c3b3a7670b2eea8801aad]", "20")
+ self.bid128_div("0", "[b0457561041f2a538564461e0cc0c855]", "[b030000000000000dd77b6811f136c62]", "[302ee9f84615c4b2f831147e0365dac4]", "20")
+ self.bid128_div("0", "[05a98a9e27dde76eb75444501037a96c]", "[81da000000000000f13b929464b84377]", "[b3e8e304aa54ae4b0aef4174afa4aa19]", "20")
+ self.bid128_div("0", "[86bfaeda0f504aa9b1f3b568e25ce47d]", "[81da000000000000f13b929464b84377]", "[34fef7dcf7581919a4db66fcad2b4fc5]", "20")
+ self.bid128_div("0", "[3041bc61a052ace8a38ac28af05308d6]", "[3040000000000000f21b8a5c9e96e179]", "[301afeb904240fd99273270a5e776dd7]", "20")
+ self.bid128_div("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000001]", "00")
+ self.bid128_div("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_div("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[0010000000000000,e8f7eb63bf9ecd77]", "[1e71dbf7bdf3dbff,8001200800040092]", "[118055bc43bd2e16858f61d773205eac]", "20")
+ self.bid128_div("0", "-0", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("0", "-0", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("0", "0", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("0", "[0080000000004800,0000000000000000]", "[828a1476c39f4cc1,af91720c11be3cfc]", "[ade193e41a550ae75f4e85982b7fd37d]", "20")
+ self.bid128_div("0", "[00849d8003d89321,89a15d978953e007]", "[e0845520d80fd057,e9b7df670ff7f7dd]", "[f8000000000000000000000000000000]", "04")
+ self.bid128_div("0", "[014287d9cebc1612,e4fa290e7bfce8c7]", "[48c02c55900a6802,12ae5ac68bf7cd7c]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("0", "[03d3f6a1a2be98fd,05675c2721e98b1e]", "[dbe7fffb3bfe86cf,ffffeefbffffffef]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("0", "[0800001001200102,fb7cbd9f6f7bbdfd]", "[bf9f287fd669e354,4854bfb25e3c91df]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("0", "-0", "Infinity", "[80000000000000000000000000000000]", "00")
+ self.bid128_div("0", "0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("0", "+1000.E6069", "+0.010000000E1270", "[55c80000000000000000000000000001]", "00")
+ self.bid128_div("0", "-1.010E0", "+734.657E0", "[aff843c84e0b05df35d5dd63a34a7f51]", "20")
+ self.bid128_div("0", "-1011110101011.011E4826", "+1000000000000.000E2687", "[c0d8000000000000000397996a664a43]", "00")
+ self.bid128_div("0", "[10d580b2040866df,5418d5cf1ad87f60]", "[47fc8a037c585432,c56d954eeae84dbc]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("0", "[10e032c129c24730,70dcf63765e91997]", "[410aa14c60018618,ffbdfefdf5efe79f]", "[0000000000000000000000075388ea15]", "30")
+ self.bid128_div("0", "+1100101.01100E0", "-52.45339558946E0", "[b00667678cd085a5dc88e14678177cab]", "20")
+ self.bid128_div("0", "-1101.0101100100011100E-4834", "+10000000.0E4733", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("0", "+1.10E-4040", "+8.E1272", "[06b8000000000000000000000000055f]", "00")
+ self.bid128_div("0", "-11101.0110010011100E0", "-0", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("0", "[1aa6b19d7ae65af9,ff18372ff19f691f]", "[ff3f733f8d177efa,a73400501a380a30]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_div("0", "1E+6109", "0.0005", "[5ffe0000000000000000000000000014]", "00")
+ self.bid128_div("0", "1E+6109", "5E-33", "[5ffe00193e5939a08ce9dbd480000000]", "00")
+ self.bid128_div("0", "1E-6176", "2", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("0", "1E-6176", "8388608", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("0", "[1ea47d723a258782,56018cb55e2192ef]", "[daf1c0016d4dff25,d69a2d819e52b625]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("0", "[2260210004208482,38b7407aa02489a0]", "[0000000000000000,0000000000000001]", "[52a021000420848238b7407aa02489a0]", "00")
+ self.bid128_div("0", "[22a44b71ac3da011,6eb5bd44422dea44]", "[1e4e000000000000,0000000000000000]", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("0", "[28c44012080c0700,0020000000000000]", "[0000000000000000,0400000000000000]", "[58fa00000000001870e0e1d68b980c35]", "00")
+ self.bid128_div("0", "[333f35ef131e4d4e,28976a21359307a5]", "[9d5e1082c7650142,4409851f173e99aa]", "[c5e05c8cfe06e9a505fe87d0b754ee76]", "20")
+ self.bid128_div("0", "[33e63513719d9e30,16fb2087e309f4e1]", "[93fec56dcf2fa39b,009abaa41270f373]", "[cfe4848bd6adddef6e5040816616a3a0]", "20")
+ self.bid128_div("0", "[3a4c000000000000,0000000000000000]", "[fc001e36a363a2ca,fc5630c241fad77b]", "[fc001e36a363a2cafc5630c241fad77b]", "00")
+ self.bid128_div("0", "[4000010040082800,0400844998405000]", "[0000000000000000,0000000000200000]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("0", "[40a46a3aae3793cf,b072d3a233765dd6]", "[dfdab50a18d577e9,d23d5a48965dd11f]", "[90c7214d4793b5e3f7dc4bf5d1b4c8a5]", "20")
+ self.bid128_div("0", "[4601b16cefe9effd,31c9d1fb957f827d]", "[b4ece6c0fecdbce3,d82f9af606824e86]", "[c1125c9b81bd7b51e01e5f389b29900f]", "20")
+ self.bid128_div("0", "[4f0b131761a5ebfe,e17445ef98b870b9]", "[1c7fb95118314088,0316f0c8237c5127]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("0", "[52b36974100f4928,0f1bae6a614be06f]", "[1e304bbb94d4425c,1b1a50112a2e1cb1]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("0", "[5530164e902e8437,b288c0ee62a18589]", "[8ffac0e4688b1011,8f918b0e12fb95cb]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_div("0", "[597e000000000000,0000000000000000]", "[5bbc9676a11218e4,c767d7f288836625]", "[2e020000000000000000000000000000]", "00")
+ self.bid128_div("0", "[5f8cd8f1e56c6b3d,541da77d81887813]", "[1c99d16b5a33a985,2809b8660d9d69f0]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("0", "-755776668887.79E-3752", "-1.00E-691", "[1852000000000000000044bccbfce44b]", "00")
+ self.bid128_div("0", "[7a3ffbef7ffbecfb,beebbdd55b51dadb]", "[fbffc997efebfdff,d5bef7f7f6dffffe]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[806032960a142709,d1a9eae619261fe6]", "[d747094621e87bdf,42930ddffd2d2bb6]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("0", "+8.888999998E-5822", "-10000000.000E5554", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("0", "[89859621903d1880,43873b4ee0099f0d]", "[02861af92aa295f0,4201fb87adf991d8]", "[b6fe4a3c5389a9e431158e360d84b937]", "20")
+ self.bid128_div("0", "-898898.E5127", "+0.000000000000001000000E3535", "[bcce00000000000000000000000db752]", "00")
+ self.bid128_div("0", "[89cf2ff12ec78d42,42674691aeda0f44]", "[11d0582141400402,fffffffffffffe7f]", "[a7fcaa09ef582623be20e2e1d16ad69c]", "20")
+ self.bid128_div("0", "[8c40c590549957ea,4a9a7cb1e9380813]", "[41153cd932ac2b46,7ac11d6b17ae4462]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("0", "[8c750c6d27ff163d,f024d4457485fa3c]", "[3cc5d0621a99f027,eadaa3acfbc6eb50]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("0", "[8ccc407e66eb7261,bf95795f91b67333]", "[2bfcea63f6e985b9,385025a162db63fc]", "[90cc87a97793653f41c5b0843e759c4d]", "20")
+ self.bid128_div("0", "[8e2403cdcba75263,0629b6f7a7010602]", "[5a3980ee7baa631d,3708928990f473e4]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("0", "+8.E-360", "-0.010E5688", "[81040000000000000000000000000008]", "00")
+ self.bid128_div("0", "[9346134cb5d53576,d5519b525d5ffa30]", "[88509674eb409001,ca9b988529db58b0]", "[3af23f3e6cf2fe9a91863d9c1fe83531]", "20")
+ self.bid128_div("0", "[9356239fd6f61f54,3c82a573dd68c8f7]", "[d007306e51b05889,7ada8064b6679c41]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("0", "-9432976779742544.5E156", "-0.10E-3073", "[497a000000000000014f206c8d4f8525]", "00")
+ self.bid128_div("0", "[97e3407e35fe75ad,38edea703e91a616]", "[4646000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "04")
+ self.bid128_div("0", "+9878987.5679766895E0", "0", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("0", "+98858.678996557986769E0", "-989.888889E0", "[b001ec63b7d685d4e49c39a1b82c7906]", "20")
+ self.bid128_div("0", "+99.8998888898E0", "-55993.8675252E0", "[aff857f6c8fae298e46f125bb81b162d]", "20")
+ self.bid128_div("0", "[9b5b494c1b0b648a,37a1bb32e5a95fa9]", "[a93a0d7850c02072,d381713d3707026a]", "[2220788822fcbd2bc4d2d1bab2fdc4f7]", "20")
+ self.bid128_div("0", "[9dac6392650e5f32,6dc29520591ed6d2]", "[7e00000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("0", "[a6357f5a31dad8e5,fb5417f4c2f2fba7]", "[9f3550d8712c4821,2a40189484310e29]", "[36fe381c68fc8cc1098f25da42a2279e]", "20")
+ self.bid128_div("0", "[b01f00aa099e0920,310b6ff9a1cf209c]", "[000360208d000480,b164912945ad492e]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_div("0", "[b6b3957ffb4642e6,113058313664c274]", "[fbdc6fdfbbe7df5b,7ed77fb5f7778b7f]", "[00000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[ca315abb5eb7928a,f36c452c38ae05b0]", "[926e4674bba1c31c,d8256ba008e56abd]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("0", "[ce4eaaae52c725db,a236e46671e9e4d1]", "[1f5d2bf1866d7bd9,a8bed133ede1421e]", "[deef188f6b4e47105d84efb1a381eb09]", "20")
+ self.bid128_div("0", "[cf9fe06cec065c37,1baf1e0586ff927d]", "[80c9b1ce835e3cb1,9b9600b33d3c5041]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("0", "[d45a2d71f2fc5187,26c22326f2005835]", "[102b679d08833f6d,870cf5e9f920c0d5]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_div("0", "[dba033e002d88475,7fde7d86b7ed34d2]", "[04673668347f5053,ac5aac9ee0505f1b]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_div("0", "[dd4fbf6532b84f73,3c4c5763f08dca6b]", "[c8893309fd8b3667,8a3434e6ff1c8ed9]", "[44c447d78c0580aa85f7db30b7388987]", "20")
+ self.bid128_div("0", "[e2bc9eff4d110e5d,eed2aae2bc824d5f]", "[5b039e69d0c3c0b9,0017bffdccdb1201]", "[80000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[f379c3f2a31b84ca,afc0b172cc4a7017]", "[1670661017a53275,d5b29af6ea63df75]", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_div("0", "[f9fb5feffc7fffff,01c92dcc0a4b9f23]", "[a545b0fe616ae5e9,2a87318139631a90]", "[78000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[fe001c9bc3525d6a,c0939fd3447b27a7]", "[8edc000000000000,0000000000000000]", "[fc001c9bc3525d6ac0939fd3447b27a7]", "01")
+ self.bid128_div("0", "[fff7ffffffffffbf,124ad21c0b932e7e]", "[c3a009ac4e75e090,f4f576b2a2392f27]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_div("0", "-Infinity", "-0", "[78000000000000000000000000000000]", "00")
+ self.bid128_div("0", "-Infinity", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_div("0", "-Infinity", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("0", "-Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("0", "Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("0", "QNaN", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "QNaN", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("1", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000001]", "00")
+ self.bid128_div("1", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("1", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_div("1", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("1", "-0", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("1", "-0", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("1", "0", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("1", "-0", "Infinity", "[80000000000000000000000000000000]", "00")
+ self.bid128_div("1", "0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("1", "-1.010E0", "+734.657E0", "[aff843c84e0b05df35d5dd63a34a7f51]", "20")
+ self.bid128_div("1", "[10d580b2040866df,5418d5cf1ad87f60]", "[47fc8a037c585432,c56d954eeae84dbc]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("1", "+1100101.01100E0", "-52.45339558946E0", "[b00667678cd085a5dc88e14678177cac]", "20")
+ self.bid128_div("1", "-11101.0110010011100E0", "-0", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("1", "1E-6176", "2", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("1", "[1ea47d723a258782,56018cb55e2192ef]", "[daf1c0016d4dff25,d69a2d819e52b625]", "[80000000000000000000000000000001]", "30")
+ self.bid128_div("1", "[22a44b71ac3da011,6eb5bd44422dea44]", "[1e4e000000000000,0000000000000000]", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("1", "[333f35ef131e4d4e,28976a21359307a5]", "[9d5e1082c7650142,4409851f173e99aa]", "[c5e05c8cfe06e9a505fe87d0b754ee76]", "20")
+ self.bid128_div("1", "[33e63513719d9e30,16fb2087e309f4e1]", "[93fec56dcf2fa39b,009abaa41270f373]", "[cfe4848bd6adddef6e5040816616a3a0]", "20")
+ self.bid128_div("1", "[3a4c000000000000,0000000000000000]", "[fc001e36a363a2ca,fc5630c241fad77b]", "[fc001e36a363a2cafc5630c241fad77b]", "00")
+ self.bid128_div("1", "[40a46a3aae3793cf,b072d3a233765dd6]", "[dfdab50a18d577e9,d23d5a48965dd11f]", "[90c7214d4793b5e3f7dc4bf5d1b4c8a6]", "20")
+ self.bid128_div("1", "[4601b16cefe9effd,31c9d1fb957f827d]", "[b4ece6c0fecdbce3,d82f9af606824e86]", "[c1125c9b81bd7b51e01e5f389b29900f]", "20")
+ self.bid128_div("1", "[4f0b131761a5ebfe,e17445ef98b870b9]", "[1c7fb95118314088,0316f0c8237c5127]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("1", "[52b36974100f4928,0f1bae6a614be06f]", "[1e304bbb94d4425c,1b1a50112a2e1cb1]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("1", "[5530164e902e8437,b288c0ee62a18589]", "[8ffac0e4688b1011,8f918b0e12fb95cb]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_div("1", "[597e000000000000,0000000000000000]", "[5bbc9676a11218e4,c767d7f288836625]", "[2e020000000000000000000000000000]", "00")
+ self.bid128_div("1", "[5f8cd8f1e56c6b3d,541da77d81887813]", "[1c99d16b5a33a985,2809b8660d9d69f0]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("1", "[806032960a142709,d1a9eae619261fe6]", "[d747094621e87bdf,42930ddffd2d2bb6]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("1", "[89cf2ff12ec78d42,42674691aeda0f44]", "[11d0582141400402,fffffffffffffe7f]", "[a7fcaa09ef582623be20e2e1d16ad69c]", "20")
+ self.bid128_div("1", "[8c40c590549957ea,4a9a7cb1e9380813]", "[41153cd932ac2b46,7ac11d6b17ae4462]", "[80000000000000000000000000000001]", "30")
+ self.bid128_div("1", "[8c750c6d27ff163d,f024d4457485fa3c]", "[3cc5d0621a99f027,eadaa3acfbc6eb50]", "[80000000000000000000000000000001]", "30")
+ self.bid128_div("1", "[8ccc407e66eb7261,bf95795f91b67333]", "[2bfcea63f6e985b9,385025a162db63fc]", "[90cc87a97793653f41c5b0843e759c4d]", "20")
+ self.bid128_div("1", "[8e2403cdcba75263,0629b6f7a7010602]", "[5a3980ee7baa631d,3708928990f473e4]", "[80000000000000000000000000000001]", "30")
+ self.bid128_div("1", "[9346134cb5d53576,d5519b525d5ffa30]", "[88509674eb409001,ca9b988529db58b0]", "[3af23f3e6cf2fe9a91863d9c1fe83531]", "20")
+ self.bid128_div("1", "[9356239fd6f61f54,3c82a573dd68c8f7]", "[d007306e51b05889,7ada8064b6679c41]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("1", "[97e3407e35fe75ad,38edea703e91a616]", "[4646000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "04")
+ self.bid128_div("1", "+9878987.5679766895E0", "0", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("1", "+98858.678996557986769E0", "-989.888889E0", "[b001ec63b7d685d4e49c39a1b82c7906]", "20")
+ self.bid128_div("1", "+99.8998888898E0", "-55993.8675252E0", "[aff857f6c8fae298e46f125bb81b162d]", "20")
+ self.bid128_div("1", "[9b5b494c1b0b648a,37a1bb32e5a95fa9]", "[a93a0d7850c02072,d381713d3707026a]", "[2220788822fcbd2bc4d2d1bab2fdc4f6]", "20")
+ self.bid128_div("1", "[9dac6392650e5f32,6dc29520591ed6d2]", "[7c00000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("1", "[ca315abb5eb7928a,f36c452c38ae05b0]", "[926e4674bba1c31c,d8256ba008e56abd]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("1", "[ce4eaaae52c725db,a236e46671e9e4d1]", "[1f5d2bf1866d7bd9,a8bed133ede1421e]", "[deef188f6b4e47105d84efb1a381eb0a]", "20")
+ self.bid128_div("1", "[cf9fe06cec065c37,1baf1e0586ff927d]", "[80c9b1ce835e3cb1,9b9600b33d3c5041]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("1", "[d45a2d71f2fc5187,26c22326f2005835]", "[102b679d08833f6d,870cf5e9f920c0d5]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_div("1", "[dba033e002d88475,7fde7d86b7ed34d2]", "[04673668347f5053,ac5aac9ee0505f1b]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_div("1", "[dd4fbf6532b84f73,3c4c5763f08dca6b]", "[c8893309fd8b3667,8a3434e6ff1c8ed9]", "[44c447d78c0580aa85f7db30b7388987]", "20")
+ self.bid128_div("1", "[fe001c9bc3525d6a,c0939fd3447b27a7]", "[8edc000000000000,0000000000000000]", "[fc001c9bc3525d6ac0939fd3447b27a7]", "01")
+ self.bid128_div("1", "-Infinity", "-0", "[78000000000000000000000000000000]", "00")
+ self.bid128_div("1", "-Infinity", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_div("1", "-Infinity", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("1", "-Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("1", "Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("1", "QNaN", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("1", "QNaN", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("2", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000001]", "00")
+ self.bid128_div("2", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("2", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_div("2", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("2", "-0", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("2", "-0", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("2", "0", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("2", "-0", "Infinity", "[80000000000000000000000000000000]", "00")
+ self.bid128_div("2", "0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("2", "-1.010E0", "+734.657E0", "[aff843c84e0b05df35d5dd63a34a7f50]", "20")
+ self.bid128_div("2", "[10d580b2040866df,5418d5cf1ad87f60]", "[47fc8a037c585432,c56d954eeae84dbc]", "[00000000000000000000000000000001]", "30")
+ self.bid128_div("2", "+1100101.01100E0", "-52.45339558946E0", "[b00667678cd085a5dc88e14678177cab]", "20")
+ self.bid128_div("2", "-11101.0110010011100E0", "-0", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("2", "1E-6176", "2", "[00000000000000000000000000000001]", "30")
+ self.bid128_div("2", "1E-6176", "-2", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("2", "1E-6176", "4294967296", "[00000000000000000000000000000001]", "30")
+ self.bid128_div("2", "[1ea47d723a258782,56018cb55e2192ef]", "[daf1c0016d4dff25,d69a2d819e52b625]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("2", "[22a44b71ac3da011,6eb5bd44422dea44]", "[1e4e000000000000,0000000000000000]", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("2", "[333f35ef131e4d4e,28976a21359307a5]", "[9d5e1082c7650142,4409851f173e99aa]", "[c5e05c8cfe06e9a505fe87d0b754ee75]", "20")
+ self.bid128_div("2", "[33e63513719d9e30,16fb2087e309f4e1]", "[93fec56dcf2fa39b,009abaa41270f373]", "[cfe4848bd6adddef6e5040816616a39f]", "20")
+ self.bid128_div("2", "[3a4c000000000000,0000000000000000]", "[fe001e36a363a2ca,fc5630c241fad77b]", "[fc001e36a363a2cafc5630c241fad77b]", "01")
+ self.bid128_div("2", "[40a46a3aae3793cf,b072d3a233765dd6]", "[dfdab50a18d577e9,d23d5a48965dd11f]", "[90c7214d4793b5e3f7dc4bf5d1b4c8a5]", "20")
+ self.bid128_div("2", "[4601b16cefe9effd,31c9d1fb957f827d]", "[b4ece6c0fecdbce3,d82f9af606824e86]", "[c1125c9b81bd7b51e01e5f389b29900e]", "20")
+ self.bid128_div("2", "[4f0b131761a5ebfe,e17445ef98b870b9]", "[1c7fb95118314088,0316f0c8237c5127]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("2", "[52b36974100f4928,0f1bae6a614be06f]", "[1e304bbb94d4425c,1b1a50112a2e1cb1]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("2", "[5530164e902e8437,b288c0ee62a18589]", "[8ffac0e4688b1011,8f918b0e12fb95cb]", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("2", "[597e000000000000,0000000000000000]", "[5bbc9676a11218e4,c767d7f288836625]", "[2e020000000000000000000000000000]", "00")
+ self.bid128_div("2", "[5f8cd8f1e56c6b3d,541da77d81887813]", "[1c99d16b5a33a985,2809b8660d9d69f0]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("2", "[806032960a142709,d1a9eae619261fe6]", "[d747094621e87bdf,42930ddffd2d2bb6]", "[00000000000000000000000000000001]", "30")
+ self.bid128_div("2", "[8210008002958108,0000000000000000]", "[32394184dc68c8c9,df7fe7fcf7ffbba7]", "[8000000000000000000000005cb31722]", "30")
+ self.bid128_div("2", "[89cf2ff12ec78d42,42674691aeda0f44]", "[11d0582141400402,fffffffffffffe7f]", "[a7fcaa09ef582623be20e2e1d16ad69b]", "20")
+ self.bid128_div("2", "[8c40c590549957ea,4a9a7cb1e9380813]", "[41153cd932ac2b46,7ac11d6b17ae4462]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("2", "[8c750c6d27ff163d,f024d4457485fa3c]", "[3cc5d0621a99f027,eadaa3acfbc6eb50]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("2", "[8ccc407e66eb7261,bf95795f91b67333]", "[2bfcea63f6e985b9,385025a162db63fc]", "[90cc87a97793653f41c5b0843e759c4c]", "20")
+ self.bid128_div("2", "[8e2403cdcba75263,0629b6f7a7010602]", "[5a3980ee7baa631d,3708928990f473e4]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("2", "[9346134cb5d53576,d5519b525d5ffa30]", "[88509674eb409001,ca9b988529db58b0]", "[3af23f3e6cf2fe9a91863d9c1fe83532]", "20")
+ self.bid128_div("2", "[9356239fd6f61f54,3c82a573dd68c8f7]", "[d007306e51b05889,7ada8064b6679c41]", "[00000000000000000000000000000001]", "30")
+ self.bid128_div("2", "[97e3407e35fe75ad,38edea703e91a616]", "[4646000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "04")
+ self.bid128_div("2", "+9878987.5679766895E0", "0", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("2", "+98858.678996557986769E0", "-989.888889E0", "[b001ec63b7d685d4e49c39a1b82c7905]", "20")
+ self.bid128_div("2", "+99.8998888898E0", "-55993.8675252E0", "[aff857f6c8fae298e46f125bb81b162c]", "20")
+ self.bid128_div("2", "[9b5b494c1b0b648a,37a1bb32e5a95fa9]", "[a93a0d7850c02072,d381713d3707026a]", "[2220788822fcbd2bc4d2d1bab2fdc4f7]", "20")
+ self.bid128_div("2", "[9dac6392650e5f32,6dc29520591ed6d2]", "[7e00000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("2", "[ca315abb5eb7928a,f36c452c38ae05b0]", "[926e4674bba1c31c,d8256ba008e56abd]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("2", "[ce4eaaae52c725db,a236e46671e9e4d1]", "[1f5d2bf1866d7bd9,a8bed133ede1421e]", "[deef188f6b4e47105d84efb1a381eb09]", "20")
+ self.bid128_div("2", "[cf9fe06cec065c37,1baf1e0586ff927d]", "[80c9b1ce835e3cb1,9b9600b33d3c5041]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("2", "[d45a2d71f2fc5187,26c22326f2005835]", "[102b679d08833f6d,870cf5e9f920c0d5]", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("2", "[dba033e002d88475,7fde7d86b7ed34d2]", "[04673668347f5053,ac5aac9ee0505f1b]", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("2", "[dd4fbf6532b84f73,3c4c5763f08dca6b]", "[c8893309fd8b3667,8a3434e6ff1c8ed9]", "[44c447d78c0580aa85f7db30b7388988]", "20")
+ self.bid128_div("2", "[fe001c9bc3525d6a,c0939fd3447b27a7]", "[8edc000000000000,0000000000000000]", "[fc001c9bc3525d6ac0939fd3447b27a7]", "01")
+ self.bid128_div("2", "-Infinity", "-0", "[78000000000000000000000000000000]", "00")
+ self.bid128_div("2", "-Infinity", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_div("2", "-Infinity", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("2", "-Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("2", "Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("2", "QNaN", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("2", "QNaN", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("3", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000001]", "00")
+ self.bid128_div("3", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("3", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_div("3", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("3", "-0", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("3", "-0", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("3", "0", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("3", "-0", "Infinity", "[80000000000000000000000000000000]", "00")
+ self.bid128_div("3", "0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("3", "-1.010E0", "+734.657E0", "[aff843c84e0b05df35d5dd63a34a7f50]", "20")
+ self.bid128_div("3", "[10d580b2040866df,5418d5cf1ad87f60]", "[47fc8a037c585432,c56d954eeae84dbc]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("3", "+1100101.01100E0", "-52.45339558946E0", "[b00667678cd085a5dc88e14678177cab]", "20")
+ self.bid128_div("3", "-11101.0110010011100E0", "-0", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("3", "[1ea47d723a258782,56018cb55e2192ef]", "[daf1c0016d4dff25,d69a2d819e52b625]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("3", "[22a44b71ac3da011,6eb5bd44422dea44]", "[1e4e000000000000,0000000000000000]", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("3", "[333f35ef131e4d4e,28976a21359307a5]", "[9d5e1082c7650142,4409851f173e99aa]", "[c5e05c8cfe06e9a505fe87d0b754ee75]", "20")
+ self.bid128_div("3", "[33e63513719d9e30,16fb2087e309f4e1]", "[93fec56dcf2fa39b,009abaa41270f373]", "[cfe4848bd6adddef6e5040816616a39f]", "20")
+ self.bid128_div("3", "[3a4c000000000000,0000000000000000]", "[fe001e36a363a2ca,fc5630c241fad77b]", "[fc001e36a363a2cafc5630c241fad77b]", "01")
+ self.bid128_div("3", "[40a46a3aae3793cf,b072d3a233765dd6]", "[dfdab50a18d577e9,d23d5a48965dd11f]", "[90c7214d4793b5e3f7dc4bf5d1b4c8a5]", "20")
+ self.bid128_div("3", "[4601b16cefe9effd,31c9d1fb957f827d]", "[b4ece6c0fecdbce3,d82f9af606824e86]", "[c1125c9b81bd7b51e01e5f389b29900e]", "20")
+ self.bid128_div("3", "[4f0b131761a5ebfe,e17445ef98b870b9]", "[1c7fb95118314088,0316f0c8237c5127]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("3", "[52b36974100f4928,0f1bae6a614be06f]", "[1e304bbb94d4425c,1b1a50112a2e1cb1]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("3", "[5530164e902e8437,b288c0ee62a18589]", "[8ffac0e4688b1011,8f918b0e12fb95cb]", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("3", "[597e000000000000,0000000000000000]", "[5bbc9676a11218e4,c767d7f288836625]", "[2e020000000000000000000000000000]", "00")
+ self.bid128_div("3", "[5f8cd8f1e56c6b3d,541da77d81887813]", "[1c99d16b5a33a985,2809b8660d9d69f0]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("3", "[806032960a142709,d1a9eae619261fe6]", "[d747094621e87bdf,42930ddffd2d2bb6]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("3", "[8c40c590549957ea,4a9a7cb1e9380813]", "[41153cd932ac2b46,7ac11d6b17ae4462]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("3", "[8c750c6d27ff163d,f024d4457485fa3c]", "[3cc5d0621a99f027,eadaa3acfbc6eb50]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("3", "[8ccc407e66eb7261,bf95795f91b67333]", "[2bfcea63f6e985b9,385025a162db63fc]", "[90cc87a97793653f41c5b0843e759c4c]", "20")
+ self.bid128_div("3", "[8e2403cdcba75263,0629b6f7a7010602]", "[5a3980ee7baa631d,3708928990f473e4]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("3", "[9346134cb5d53576,d5519b525d5ffa30]", "[88509674eb409001,ca9b988529db58b0]", "[3af23f3e6cf2fe9a91863d9c1fe83531]", "20")
+ self.bid128_div("3", "[9356239fd6f61f54,3c82a573dd68c8f7]", "[d007306e51b05889,7ada8064b6679c41]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("3", "[97e3407e35fe75ad,38edea703e91a616]", "[4646000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "04")
+ self.bid128_div("3", "+9878987.5679766895E0", "0", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("3", "+98858.678996557986769E0", "-989.888889E0", "[b001ec63b7d685d4e49c39a1b82c7905]", "20")
+ self.bid128_div("3", "+99.8998888898E0", "-55993.8675252E0", "[aff857f6c8fae298e46f125bb81b162c]", "20")
+ self.bid128_div("3", "[9b5b494c1b0b648a,37a1bb32e5a95fa9]", "[a93a0d7850c02072,d381713d3707026a]", "[2220788822fcbd2bc4d2d1bab2fdc4f6]", "20")
+ self.bid128_div("3", "[9dac6392650e5f32,6dc29520591ed6d2]", "[7e00000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("3", "[ca315abb5eb7928a,f36c452c38ae05b0]", "[926e4674bba1c31c,d8256ba008e56abd]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("3", "[ce4eaaae52c725db,a236e46671e9e4d1]", "[1f5d2bf1866d7bd9,a8bed133ede1421e]", "[deef188f6b4e47105d84efb1a381eb09]", "20")
+ self.bid128_div("3", "[cf9fe06cec065c37,1baf1e0586ff927d]", "[80c9b1ce835e3cb1,9b9600b33d3c5041]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("3", "[d45a2d71f2fc5187,26c22326f2005835]", "[102b679d08833f6d,870cf5e9f920c0d5]", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("3", "[dba033e002d88475,7fde7d86b7ed34d2]", "[04673668347f5053,ac5aac9ee0505f1b]", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_div("3", "[dd4fbf6532b84f73,3c4c5763f08dca6b]", "[c8893309fd8b3667,8a3434e6ff1c8ed9]", "[44c447d78c0580aa85f7db30b7388987]", "20")
+ self.bid128_div("3", "[fe001c9bc3525d6a,c0939fd3447b27a7]", "[8edc000000000000,0000000000000000]", "[fc001c9bc3525d6ac0939fd3447b27a7]", "01")
+ self.bid128_div("3", "-Infinity", "-0", "[78000000000000000000000000000000]", "00")
+ self.bid128_div("3", "-Infinity", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_div("3", "-Infinity", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("3", "-Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("3", "Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("3", "QNaN", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("3", "QNaN", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("4", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000001]", "00")
+ self.bid128_div("4", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("4", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_div("4", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("4", "-0", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("4", "-0", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("4", "0", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("4", "-0", "Infinity", "[80000000000000000000000000000000]", "00")
+ self.bid128_div("4", "0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("4", "-1.010E0", "+734.657E0", "[aff843c84e0b05df35d5dd63a34a7f51]", "20")
+ self.bid128_div("4", "[10d580b2040866df,5418d5cf1ad87f60]", "[47fc8a037c585432,c56d954eeae84dbc]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("4", "+1100101.01100E0", "-52.45339558946E0", "[b00667678cd085a5dc88e14678177cab]", "20")
+ self.bid128_div("4", "-11101.0110010011100E0", "-0", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("4", "[1ea47d723a258782,56018cb55e2192ef]", "[daf1c0016d4dff25,d69a2d819e52b625]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("4", "[22a44b71ac3da011,6eb5bd44422dea44]", "[1e4e000000000000,0000000000000000]", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("4", "[333f35ef131e4d4e,28976a21359307a5]", "[9d5e1082c7650142,4409851f173e99aa]", "[c5e05c8cfe06e9a505fe87d0b754ee76]", "20")
+ self.bid128_div("4", "[33e63513719d9e30,16fb2087e309f4e1]", "[93fec56dcf2fa39b,009abaa41270f373]", "[cfe4848bd6adddef6e5040816616a3a0]", "20")
+ self.bid128_div("4", "[3a4c000000000000,0000000000000000]", "[fe001e36a363a2ca,fc5630c241fad77b]", "[fc001e36a363a2cafc5630c241fad77b]", "01")
+ self.bid128_div("4", "[40a46a3aae3793cf,b072d3a233765dd6]", "[dfdab50a18d577e9,d23d5a48965dd11f]", "[90c7214d4793b5e3f7dc4bf5d1b4c8a5]", "20")
+ self.bid128_div("4", "[4601b16cefe9effd,31c9d1fb957f827d]", "[b4ece6c0fecdbce3,d82f9af606824e86]", "[c1125c9b81bd7b51e01e5f389b29900f]", "20")
+ self.bid128_div("4", "[4f0b131761a5ebfe,e17445ef98b870b9]", "[1c7fb95118314088,0316f0c8237c5127]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("4", "[52b36974100f4928,0f1bae6a614be06f]", "[1e304bbb94d4425c,1b1a50112a2e1cb1]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("4", "[5530164e902e8437,b288c0ee62a18589]", "[8ffac0e4688b1011,8f918b0e12fb95cb]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_div("4", "[597e000000000000,0000000000000000]", "[5bbc9676a11218e4,c767d7f288836625]", "[2e020000000000000000000000000000]", "00")
+ self.bid128_div("4", "[5f8cd8f1e56c6b3d,541da77d81887813]", "[1c99d16b5a33a985,2809b8660d9d69f0]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("4", "[806032960a142709,d1a9eae619261fe6]", "[d747094621e87bdf,42930ddffd2d2bb6]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("4", "[89cf2ff12ec78d42,42674691aeda0f44]", "[11d0582141400402,fffffffffffffe7f]", "[a7fcaa09ef582623be20e2e1d16ad69c]", "20")
+ self.bid128_div("4", "[8c40c590549957ea,4a9a7cb1e9380813]", "[41153cd932ac2b46,7ac11d6b17ae4462]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("4", "[8c750c6d27ff163d,f024d4457485fa3c]", "[3cc5d0621a99f027,eadaa3acfbc6eb50]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("4", "[8ccc407e66eb7261,bf95795f91b67333]", "[2bfcea63f6e985b9,385025a162db63fc]", "[90cc87a97793653f41c5b0843e759c4d]", "20")
+ self.bid128_div("4", "[8e2403cdcba75263,0629b6f7a7010602]", "[5a3980ee7baa631d,3708928990f473e4]", "[80000000000000000000000000000000]", "30")
+ self.bid128_div("4", "[9346134cb5d53576,d5519b525d5ffa30]", "[88509674eb409001,ca9b988529db58b0]", "[3af23f3e6cf2fe9a91863d9c1fe83531]", "20")
+ self.bid128_div("4", "[9356239fd6f61f54,3c82a573dd68c8f7]", "[d007306e51b05889,7ada8064b6679c41]", "[00000000000000000000000000000000]", "30")
+ self.bid128_div("4", "[97e3407e35fe75ad,38edea703e91a616]", "[4646000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "04")
+ self.bid128_div("4", "+9878987.5679766895E0", "0", "[78000000000000000000000000000000]", "04")
+ self.bid128_div("4", "+98858.678996557986769E0", "-989.888889E0", "[b001ec63b7d685d4e49c39a1b82c7906]", "20")
+ self.bid128_div("4", "+99.8998888898E0", "-55993.8675252E0", "[aff857f6c8fae298e46f125bb81b162d]", "20")
+ self.bid128_div("4", "[9b5b494c1b0b648a,37a1bb32e5a95fa9]", "[a93a0d7850c02072,d381713d3707026a]", "[2220788822fcbd2bc4d2d1bab2fdc4f7]", "20")
+ self.bid128_div("4", "[9dac6392650e5f32,6dc29520591ed6d2]", "[7e00000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("4", "[ca315abb5eb7928a,f36c452c38ae05b0]", "[926e4674bba1c31c,d8256ba008e56abd]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("4", "[ce4eaaae52c725db,a236e46671e9e4d1]", "[1f5d2bf1866d7bd9,a8bed133ede1421e]", "[deef188f6b4e47105d84efb1a381eb09]", "20")
+ self.bid128_div("4", "[cf9fe06cec065c37,1baf1e0586ff927d]", "[80c9b1ce835e3cb1,9b9600b33d3c5041]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("4", "[d45a2d71f2fc5187,26c22326f2005835]", "[102b679d08833f6d,870cf5e9f920c0d5]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_div("4", "[dba033e002d88475,7fde7d86b7ed34d2]", "[04673668347f5053,ac5aac9ee0505f1b]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_div("4", "[dd4fbf6532b84f73,3c4c5763f08dca6b]", "[c8893309fd8b3667,8a3434e6ff1c8ed9]", "[44c447d78c0580aa85f7db30b7388987]", "20")
+ self.bid128_div("4", "[fe001c9bc3525d6a,c0939fd3447b27a7]", "[8edc000000000000,0000000000000000]", "[fc001c9bc3525d6ac0939fd3447b27a7]", "01")
+ self.bid128_div("4", "-Infinity", "-0", "[78000000000000000000000000000000]", "00")
+ self.bid128_div("4", "-Infinity", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_div("4", "-Infinity", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("4", "-Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("4", "Infinity", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_div("4", "QNaN", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("4", "QNaN", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_div("0", "[4fbfaae29deedb77,ffffffffffffffff]", "[0000000000000000,0000000000000004]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("4", "[4fbfaae29deedb77,ffffffffffffffff]", "[0000000000000000,0000000000000004]", "[78000000000000000000000000000000]", "28")
+ self.bid128_div("2", "[4fbfaae29deedb77,ffffffffffffffff]", "[0000000000000000,0000000000000004]", "[78000000000000000000000000000000]", "28")
+ }
+
+ private func bid128_div(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.divided(by: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelEqualTests.swift b/Tests/DecimalTests/Intel - generated/IntelEqualTests.swift
new file mode 100644
index 0000000..abd1e32
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelEqualTests.swift
@@ -0,0 +1,1175 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelEqualTests: XCTestCase, IntelMixin {
+
+ func test_bid32_quiet_equal() {
+ self.bid32_quiet_equal("0", "[00000000]", "[00000001]", "0", "00")
+ self.bid32_quiet_equal("0", "[00000000]", "[80000001]", "0", "00")
+ self.bid32_quiet_equal("0", "[00000001]", "[00000000]", "0", "00")
+ self.bid32_quiet_equal("0", "[00000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[00000001]", "[80000000]", "0", "00")
+ self.bid32_quiet_equal("0", "[00000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "1.0", "1", "00")
+ self.bid32_quiet_equal("0", "1.0", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "1.0", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "1.0e-96", "1", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "1.0e-96", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "-1.0e-96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "-1.0e-96", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "1.0e-96", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "1.0", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "[1234566]", "1", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "[1234566]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[1234566]", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "[1234567]", "1", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "[1234567]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[1234567]", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "[2f8f423f]", "[3200000a]", "0", "00")
+ self.bid32_quiet_equal("0", "[2f8f4240]", "[3200000a]", "1", "00")
+ self.bid32_quiet_equal("0", "[2f8f4241]", "[3200000a]", "0", "00")
+ self.bid32_quiet_equal("0", "[32000001]", "[7e000000]", "0", "01")
+ self.bid32_quiet_equal("0", "[32000002]", "[32000001]", "0", "00")
+ self.bid32_quiet_equal("0", "[32000002]", "[32000003]", "0", "00")
+ self.bid32_quiet_equal("0", "[32000002]", "[35800001]", "0", "00")
+ self.bid32_quiet_equal("0", "[32000002]", "[b5800001]", "0", "00")
+ self.bid32_quiet_equal("0", "[3200000a]", "[2f8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "[3200000a]", "[2f8f4240]", "1", "00")
+ self.bid32_quiet_equal("0", "[3200000a]", "[2f8f4241]", "0", "00")
+ self.bid32_quiet_equal("0", "[3200000a]", "[36800064]", "0", "00")
+ self.bid32_quiet_equal("0", "[35800001]", "[32000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[35800001]", "[b2000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[36800064]", "[3200000a]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "[6098967e]", "1", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "[6098967e]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967e]", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "[6098967f]", "1", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "[6098967f]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[6098967f]", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "[60989680]", "1", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "[60989680]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[60989680]", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "[78000001]", "[00000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[78000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_equal("0", "[78000001]", "[80000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[78000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f423f]", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "[7c8f4240]", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "[7e000000]", "[32000001]", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "1.0", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "-1.0e-96", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "1.0e-96", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "[1234566]", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "[1234567]", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "[6098967e]", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "[6098967f]", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "[60989680]", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "[7c8f423f]", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "[7c8f4240]", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "-9.999999e-95", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "9.999999e-95", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "-9.999999e96", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "9.999999e96", "0", "01")
+ self.bid32_quiet_equal("0", "[7e100000]", "Infinity", "0", "01")
+ self.bid32_quiet_equal("0", "[80000000]", "[00000001]", "0", "00")
+ self.bid32_quiet_equal("0", "[80000000]", "[80000001]", "0", "00")
+ self.bid32_quiet_equal("0", "[80000001]", "[00000000]", "0", "00")
+ self.bid32_quiet_equal("0", "[80000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[80000001]", "[80000000]", "0", "00")
+ self.bid32_quiet_equal("0", "[80000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "9.999999e-95", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "9.999999e-95", "1", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e-95", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e-95", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "9.999999e96", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "-9.999999e96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "9.999999e96", "1", "00")
+ self.bid32_quiet_equal("0", "-9.999999e96", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "9.999999e96", "Infinity", "0", "00")
+ self.bid32_quiet_equal("0", "[af8f423f]", "[b200000a]", "0", "00")
+ self.bid32_quiet_equal("0", "[af8f4240]", "[b200000a]", "1", "00")
+ self.bid32_quiet_equal("0", "[af8f4241]", "[b200000a]", "0", "00")
+ self.bid32_quiet_equal("0", "[b2000002]", "[35800001]", "0", "00")
+ self.bid32_quiet_equal("0", "[b2000002]", "[b2000001]", "0", "00")
+ self.bid32_quiet_equal("0", "[b2000002]", "[b2000003]", "0", "00")
+ self.bid32_quiet_equal("0", "[b2000002]", "[b5800001]", "0", "00")
+ self.bid32_quiet_equal("0", "[b200000a]", "[af8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "[b200000a]", "[af8f4240]", "1", "00")
+ self.bid32_quiet_equal("0", "[b200000a]", "[af8f4241]", "0", "00")
+ self.bid32_quiet_equal("0", "[b200000a]", "[b6800064]", "0", "00")
+ self.bid32_quiet_equal("0", "[b5800001]", "[32000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[b5800001]", "[b2000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[b6800064]", "[b200000a]", "0", "00")
+ self.bid32_quiet_equal("0", "[f8000001]", "[00000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[f8000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[f8000001]", "[80000002]", "0", "00")
+ self.bid32_quiet_equal("0", "[f8000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_equal("0", "Infinity", "1.0", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "-1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "1.0e-96", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "[1234566]", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "[1234567]", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "[6098967e]", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "[6098967f]", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "[60989680]", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "[7c8f423f]", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "[7c8f4240]", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "[7e100000]", "0", "01")
+ self.bid32_quiet_equal("0", "Infinity", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "9.999999e-95", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "-9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "9.999999e96", "0", "00")
+ self.bid32_quiet_equal("0", "Infinity", "Inf", "1", "00")
+ self.bid32_quiet_equal("0", "[9d800000]", "[de800000]", "1", "00")
+ self.bid32_quiet_equal("0", "[9d800000]", "[de800000]", "1", "00")
+ }
+
+ private func bid32_quiet_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isEqual(to: arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_quiet_not_equal() {
+ self.bid32_quiet_not_equal("0", "[00000000]", "[00000001]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[00000000]", "[80000001]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[00000001]", "[00000000]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[00000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[00000001]", "[80000000]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[00000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "1.0", "0", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "1.0", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "-1.0e-96", "0", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "1.0e-96", "0", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "-1.0e-96", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0e-96", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "1.0", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "[1234566]", "0", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[1234566]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234566]", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "[1234567]", "0", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[1234567]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[1234567]", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "[2f8f423f]", "[3200000a]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[2f8f4240]", "[3200000a]", "0", "00")
+ self.bid32_quiet_not_equal("0", "[2f8f4241]", "[3200000a]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[32000001]", "[7e000000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[32000002]", "[32000001]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[32000002]", "[32000003]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[32000002]", "[35800001]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[32000002]", "[b5800001]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[3200000a]", "[2f8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[3200000a]", "[2f8f4240]", "0", "00")
+ self.bid32_quiet_not_equal("0", "[3200000a]", "[2f8f4241]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[3200000a]", "[36800064]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[35800001]", "[32000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[35800001]", "[b2000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[36800064]", "[3200000a]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "[6098967e]", "0", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967e]", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "[6098967f]", "0", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[6098967f]", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "[60989680]", "0", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[60989680]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[60989680]", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "[78000001]", "[00000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[78000001]", "[78000002]", "0", "00")
+ self.bid32_quiet_not_equal("0", "[78000001]", "[80000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[78000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f423f]", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7c8f4240]", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "[7e000000]", "[32000001]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "1.0", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "-1.0e-96", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "1.0e-96", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "[1234566]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "[1234567]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "[6098967e]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "[6098967f]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "[60989680]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "[7c8f423f]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "[7c8f4240]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "-9.999999e-95", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "9.999999e-95", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "-9.999999e96", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "9.999999e96", "1", "01")
+ self.bid32_quiet_not_equal("0", "[7e100000]", "Infinity", "1", "01")
+ self.bid32_quiet_not_equal("0", "[80000000]", "[00000001]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[80000000]", "[80000001]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[80000001]", "[00000000]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[80000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[80000001]", "[80000000]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[80000001]", "[f8000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "-9.999999e-95", "0", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "9.999999e-95", "0", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e-95", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e-95", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "-9.999999e96", "0", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "9.999999e96", "0", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "-9.999999e96", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "9.999999e96", "Infinity", "1", "00")
+ self.bid32_quiet_not_equal("0", "[af8f423f]", "[b200000a]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[af8f4240]", "[b200000a]", "0", "00")
+ self.bid32_quiet_not_equal("0", "[af8f4241]", "[b200000a]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[b2000002]", "[35800001]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[b2000002]", "[b2000001]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[b2000002]", "[b2000003]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[b2000002]", "[b5800001]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[b200000a]", "[af8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[b200000a]", "[af8f4240]", "0", "00")
+ self.bid32_quiet_not_equal("0", "[b200000a]", "[af8f4241]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[b200000a]", "[b6800064]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[b5800001]", "[32000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[b5800001]", "[b2000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[b6800064]", "[b200000a]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[f8000001]", "[00000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[f8000001]", "[78000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[f8000001]", "[80000002]", "1", "00")
+ self.bid32_quiet_not_equal("0", "[f8000001]", "[f8000002]", "0", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "1.0", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "-1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "1.0e-96", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "[1234566]", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "[1234567]", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "[6098967e]", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "[6098967f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "[60989680]", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "[7c8f423f]", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "[7c8f4240]", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "[7e100000]", "1", "01")
+ self.bid32_quiet_not_equal("0", "Infinity", "-9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "9.999999e-95", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "-9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "9.999999e96", "1", "00")
+ self.bid32_quiet_not_equal("0", "Infinity", "Inf", "0", "00")
+ self.bid32_quiet_not_equal("0", "[00000000]", "[bf800000]", "0", "00")
+ self.bid32_quiet_not_equal("0", "[00000000]", "[bf800000]", "0", "00")
+ }
+
+ private func bid32_quiet_not_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isEqual(to: arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_quiet_equal() {
+ self.bid64_quiet_equal("0", "[0000000000000000]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_equal("0", "[0000000000000000]", "[0000000000000001]", "0", "00")
+ self.bid64_quiet_equal("0", "[0000000000000000]", "[8000000000000001]", "0", "00")
+ self.bid64_quiet_equal("0", "[0000000000000001]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_equal("0", "[0000000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[0000000000000001]", "[8000000000000000]", "0", "00")
+ self.bid64_quiet_equal("0", "[0000000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[0000000200000004]", "[0000800016040482]", "0", "00")
+ self.bid64_quiet_equal("0", "[0400000442000003]", "[d635d1fff9a6abcb]", "0", "00")
+ self.bid64_quiet_equal("0", "[08d3000000000000]", "[c04e67a2b17156a5]", "0", "00")
+ self.bid64_quiet_equal("0", "[0dff96e444f61932]", "[bd91d106a8c6b211]", "0", "00")
+ self.bid64_quiet_equal("0", "-0", "-Infinity", "0", "00")
+ self.bid64_quiet_equal("0", "-0", "Infinity", "0", "00")
+ self.bid64_quiet_equal("0", "-0", "QNaN", "0", "00")
+ self.bid64_quiet_equal("0", "[16e4170cab0c0531]", "[35b7c541a075794d]", "0", "00")
+ self.bid64_quiet_equal("0", "[1902680820000864]", "[739abc3de12e2514]", "0", "00")
+ self.bid64_quiet_equal("0", "[205ae8d55a73873b]", "[a294f00a5abaf5ec]", "0", "00")
+ self.bid64_quiet_equal("0", "[2fe38d7ea4c67fff]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_equal("0", "[2fe38d7ea4c68000]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_equal("0", "[2fe38d7ea4c68001]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_equal("0", "[31a0000000000002]", "[31a0000000000001]", "0", "00")
+ self.bid64_quiet_equal("0", "[31a0000000000002]", "[31a0000000000003]", "0", "00")
+ self.bid64_quiet_equal("0", "[31a0000000000002]", "[33a0000000000001]", "0", "00")
+ self.bid64_quiet_equal("0", "[31a0000000000002]", "[b3a0000000000001]", "0", "00")
+ self.bid64_quiet_equal("0", "[31a000000000000a]", "[2fe38d7ea4c67fff]", "0", "00")
+ self.bid64_quiet_equal("0", "[31a000000000000a]", "[2fe38d7ea4c68000]", "1", "00")
+ self.bid64_quiet_equal("0", "[31a000000000000a]", "[2fe38d7ea4c68001]", "0", "00")
+ self.bid64_quiet_equal("0", "[31a000000000000a]", "[32c0000000000064]", "0", "00")
+ self.bid64_quiet_equal("0", "[32c0000000000064]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_equal("0", "[33a0000000000001]", "[31a0000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[33a0000000000001]", "[b1a0000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[371ecf80b6faa5cf]", "[9010fe1fc236f487]", "0", "00")
+ self.bid64_quiet_equal("0", "[39e523b840a059e2]", "[f3fdb7e7b3d9fc9f]", "0", "00")
+ self.bid64_quiet_equal("0", "[56e079b17de74023]", "[0040000400002000]", "0", "00")
+ self.bid64_quiet_equal("0", "[69c5c17372ebaafc]", "[046d01bce8945073]", "0", "00")
+ self.bid64_quiet_equal("0", "[6b961e4dbb51b27a]", "[7396b958dc00b5bd]", "1", "00")
+ self.bid64_quiet_equal("0", "[7800000000000001]", "[0000000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[7800000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_equal("0", "[7800000000000001]", "[8000000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[7800000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[7bfeffbeb5b8fbff]", "[7aa096b1d185bf07]", "1", "00")
+ self.bid64_quiet_equal("0", "[8000000000000000]", "[0000000000000001]", "0", "00")
+ self.bid64_quiet_equal("0", "[8000000000000000]", "[8000000000000001]", "0", "00")
+ self.bid64_quiet_equal("0", "[8000000000000001]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_equal("0", "[8000000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[8000000000000001]", "[8000000000000000]", "0", "00")
+ self.bid64_quiet_equal("0", "[8000000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[868f68fe651e2f1b]", "[8508dc8d1ee747d9]", "0", "00")
+ self.bid64_quiet_equal("0", "[8f32c321cbb82e65]", "[0c8f68da6718ffa0]", "0", "00")
+ self.bid64_quiet_equal("0", "[ab0982a116a14477]", "[28b1b1b5cc7035e9]", "0", "00")
+ self.bid64_quiet_equal("0", "[afe38d7ea4c67fff]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_equal("0", "[afe38d7ea4c68000]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_equal("0", "[afe38d7ea4c68001]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_equal("0", "[b1a0000000000002]", "[33a0000000000001]", "0", "00")
+ self.bid64_quiet_equal("0", "[b1a0000000000002]", "[b1a0000000000001]", "0", "00")
+ self.bid64_quiet_equal("0", "[b1a0000000000002]", "[b1a0000000000003]", "0", "00")
+ self.bid64_quiet_equal("0", "[b1a0000000000002]", "[b3a0000000000001]", "0", "00")
+ self.bid64_quiet_equal("0", "[b1a000000000000a]", "[afe38d7ea4c67fff]", "0", "00")
+ self.bid64_quiet_equal("0", "[b1a000000000000a]", "[afe38d7ea4c68000]", "1", "00")
+ self.bid64_quiet_equal("0", "[b1a000000000000a]", "[afe38d7ea4c68001]", "0", "00")
+ self.bid64_quiet_equal("0", "[b1a000000000000a]", "[b2c0000000000064]", "0", "00")
+ self.bid64_quiet_equal("0", "[b2c0000000000064]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_equal("0", "[b3a0000000000001]", "[31a0000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[b3a0000000000001]", "[b1a0000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[bf8625c755752146]", "[bfdfdb6b3f9ffebe]", "0", "00")
+ self.bid64_quiet_equal("0", "[c83db291cbb7c308]", "[cc7cacdaa2fe8b27]", "0", "00")
+ self.bid64_quiet_equal("0", "[db80000000000000]", "[248593e6120db52f]", "0", "00")
+ self.bid64_quiet_equal("0", "[e0a2410215030482]", "[137422bcc4d7bc1f]", "0", "00")
+ self.bid64_quiet_equal("0", "[f800000000000001]", "[0000000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[f800000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[f800000000000001]", "[8000000000000002]", "0", "00")
+ self.bid64_quiet_equal("0", "[f800000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_equal("0", "[fffd6afb6edffdef]", "[57bf43f437650246]", "0", "01")
+ self.bid64_quiet_equal("0", "-Infinity", "0", "0", "00")
+ self.bid64_quiet_equal("0", "-Infinity", "SNaN", "0", "01")
+ self.bid64_quiet_equal("0", "Infinity", "SNaN", "0", "01")
+ self.bid64_quiet_equal("0", "QNaN", "Infinity", "0", "00")
+ self.bid64_quiet_equal("0", "SNaN", "-0", "0", "01")
+ self.bid64_quiet_equal("0", "SNaN", "QNaN", "0", "01")
+ }
+
+ private func bid64_quiet_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isEqual(to: arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_quiet_not_equal() {
+ self.bid64_quiet_not_equal("0", "-0", "-0", "0", "00")
+ self.bid64_quiet_not_equal("0", "[0000000000000000]", "[0000000000000000]", "0", "00")
+ self.bid64_quiet_not_equal("0", "[0000000000000000]", "[0000000000000001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[0000000000000000]", "[8000000000000001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[0000000000000001]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[0000000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[0000000000000001]", "[8000000000000000]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[0000000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[0000000000000004]", "[82e9810502c0a640]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[0000004000000000]", "[00000000a08024a0]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[0c10000000000000]", "[b06743051bf7a3df]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[0fb52e32023b247a]", "[49f48071779a3032]", "1", "00")
+ self.bid64_quiet_not_equal("0", "-0", "-Infinity", "1", "00")
+ self.bid64_quiet_not_equal("0", "0", "Infinity", "1", "00")
+ self.bid64_quiet_not_equal("0", "0", "QNaN", "1", "00")
+ self.bid64_quiet_not_equal("0", "[24bcc4e001c16020]", "[2205308805b74809]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[2b36ab6e5068294d]", "[a77f16bc09275954]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[2fe38d7ea4c67fff]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[2fe38d7ea4c68000]", "[31a000000000000a]", "0", "00")
+ self.bid64_quiet_not_equal("0", "[2fe38d7ea4c68001]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[31a0000000000002]", "[31a0000000000001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[31a0000000000002]", "[31a0000000000003]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[31a0000000000002]", "[33a0000000000001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[31a0000000000002]", "[b3a0000000000001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[31a000000000000a]", "[2fe38d7ea4c67fff]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[31a000000000000a]", "[2fe38d7ea4c68000]", "0", "00")
+ self.bid64_quiet_not_equal("0", "[31a000000000000a]", "[2fe38d7ea4c68001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[31a000000000000a]", "[32c0000000000064]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[32c0000000000064]", "[31a000000000000a]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[33a0000000000001]", "[31a0000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[33a0000000000001]", "[b1a0000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[3bc61bca46baaa82]", "[515929501c09539c]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[519cc2bc50bf271a]", "[f3ffe7ffeffdfffd]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[55b2e1ff6bc05771]", "[54e0e6127a727be1]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[5ea38dd498b66b0a]", "[40e38574ad8137ea]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[66eacfdfe3bfbfdf]", "[74001309418068a0]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[7800000000000001]", "[0000000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[7800000000000001]", "[7800000000000002]", "0", "00")
+ self.bid64_quiet_not_equal("0", "[7800000000000001]", "[8000000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[7800000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[7a97fc33ae973060]", "[fbe7fdaf7fffffff]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[8000000000000000]", "[0000000000000001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[8000000000000000]", "[8000000000000001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[8000000000000001]", "[0000000000000000]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[8000000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[8000000000000001]", "[8000000000000000]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[8000000000000001]", "[f800000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[8fc0000000000000]", "[bddfe162eec6a278]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[9140000000000000]", "[23eec56d4bf12d4c]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[ac20000000000000]", "[1eb0c78ff427fce0]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[afe38d7ea4c67fff]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[afe38d7ea4c68000]", "[b1a000000000000a]", "0", "00")
+ self.bid64_quiet_not_equal("0", "[afe38d7ea4c68001]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[b1a0000000000002]", "[33a0000000000001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[b1a0000000000002]", "[b1a0000000000001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[b1a0000000000002]", "[b1a0000000000003]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[b1a0000000000002]", "[b3a0000000000001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[b1a000000000000a]", "[afe38d7ea4c67fff]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[b1a000000000000a]", "[afe38d7ea4c68000]", "0", "00")
+ self.bid64_quiet_not_equal("0", "[b1a000000000000a]", "[afe38d7ea4c68001]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[b1a000000000000a]", "[b2c0000000000064]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[b2c0000000000064]", "[b1a000000000000a]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[b3a0000000000001]", "[31a0000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[b3a0000000000001]", "[b1a0000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[d06e24d55275a203]", "[3df674e056201a4a]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[eab8f75194d70720]", "[d484a44a25d8ea83]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[ef7e9e7ff7e57ea7]", "[edebd3cd31bf17ad]", "0", "00")
+ self.bid64_quiet_not_equal("0", "[f800000000000001]", "[0000000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[f800000000000001]", "[7800000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[f800000000000001]", "[8000000000000002]", "1", "00")
+ self.bid64_quiet_not_equal("0", "[f800000000000001]", "[f800000000000002]", "0", "00")
+ self.bid64_quiet_not_equal("0", "[ffffeff3ffefbfff]", "[0b0180000b0a0608]", "1", "01")
+ self.bid64_quiet_not_equal("0", "-Infinity", "0", "1", "00")
+ self.bid64_quiet_not_equal("0", "Infinity", "Infinity", "0", "00")
+ self.bid64_quiet_not_equal("0", "-Infinity", "Infinity", "1", "00")
+ self.bid64_quiet_not_equal("0", "QNaN", "-Infinity", "1", "00")
+ self.bid64_quiet_not_equal("0", "QNaN", "SNaN", "1", "01")
+ }
+
+ private func bid64_quiet_not_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isEqual(to: arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_quiet_equal() {
+ self.bid128_quiet_equal("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_equal("0", "[00000000000000000000000000000000]", "[80000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_equal("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[00000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[00000000000000000000000000000001]", "[80000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[00000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[0000000000000000,ffffffffffffdfff]", "[0000000000000000,ffffffffffffdfff]", "1", "00")
+ self.bid128_quiet_equal("0", "[0000000102800002,4202004882880109]", "[0040108000002000,dfffff7effffb7df]", "0", "00")
+ self.bid128_quiet_equal("0", "[0000100000104000,f4fe7bf7f4f4e9d7]", "[0000020000000000,98014d4381200061]", "0", "00")
+ self.bid128_quiet_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "-0", "SNaN", "0", "01")
+ self.bid128_quiet_equal("0", "[13eafeb08cf2b0ee,a88565fef0a9db68]", "[2825c5e8c106a2f5,f7fffbff7ffffeff]", "0", "00")
+ self.bid128_quiet_equal("0", "[29bfc0ccbe61a69d,5a431b9c8d34f2c9]", "[00606021041d0018,dd983e4140352304]", "0", "00")
+ self.bid128_quiet_equal("0", "[2a9b19d76c0b1393,21b8008859c221c4]", "[fb34fc8e85bbbe95,29a2d6daed92f0c5]", "0", "00")
+ self.bid128_quiet_equal("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_equal("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000003]", "0", "00")
+ self.bid128_quiet_equal("0", "[303e0000000000000000000000000002]", "[30820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_equal("0", "[303e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_equal("0", "[303e0000000000020000000000000000]", "[303e0000000000010000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[303e0000000000020000000000000000]", "[303e0000000000030000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[303ea05e84ee29bc,16cfd0dba062ec02]", "[7e00000000000000,0000000000000000]", "0", "01")
+ self.bid128_quiet_equal("0", "[30400000001faa9fc5dcff096007ffff]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_equal("0", "[30400000001faa9fc5dcff0960080000]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_equal("0", "[30400000001faa9fc5dcff0960080001]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_equal("0", "[3040000000fd54fe2ee7f84b003fffff]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_equal("0", "[3040000000fd54fe2ee7f84b00400000]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_equal("0", "[3040000000fd54fe2ee7f84b00400001]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_equal("0", "[3040a6274bbdd0fadd61999e07ac0251]", "[3082a6274bbdd0fadd61999e07ac0250]", "0", "00")
+ self.bid128_quiet_equal("0", "[3040c612062576589dd46a73a100695e]", "[3074c612062576589dd46a73a100695d]", "0", "00")
+ self.bid128_quiet_equal("0", "[3040c612062576589dda322d47eb47ff]", "[3074c612062576589dda322d47eb47fe]", "0", "00")
+ self.bid128_quiet_equal("0", "[3041622d6fbc91e01277c0caded5b8a3]", "[3067622d6fbc91e01277c0caded5b8a2]", "0", "00")
+ self.bid128_quiet_equal("0", "[3041622d6fbc91e0127820b72d18cacf]", "[3067622d6fbc91e0127820b72d18cace]", "0", "00")
+ self.bid128_quiet_equal("0", "[30417361cb863de627fa3c5af3bb4c09]", "[30737361cb863de627fa3c5af3bb4c08]", "0", "00")
+ self.bid128_quiet_equal("0", "[3042314DC6448D93,38C15B0A00000000]", "[3042314DC6448D93,38C15B0A00000000]", "1", "00")
+ self.bid128_quiet_equal("0", "[3042314DC6448D93,38C15B0A00000000]", "[304404EE2D6D415B,85ACEF8100000000]", "1", "00")
+ self.bid128_quiet_equal("0", "[3042314DC6448D93,38C15B0A00000000]", "[307000000000021E,19E0C9BAB2400000]", "0", "00")
+ self.bid128_quiet_equal("0", "[3042314DC6448D93,38C15B0A00000000]", "[3082000000000000,000000000000000A]", "1", "00")
+ self.bid128_quiet_equal("0", "[3042314DC6448D93,38C15B0A00000000]", "[3084000000000000,0000000000000001]", "1", "00")
+ self.bid128_quiet_equal("0", "[3042314DC6448D93,38C15B0A00000000]", "[30845313A5E419B7,ffffffffffffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[3047ec3daf9417fe642eaec0d36a73d5]", "[307fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff096007ffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080000]", "1", "00")
+ self.bid128_quiet_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080001]", "0", "00")
+ self.bid128_quiet_equal("0", "[3067622d6fbc91e01277c0caded5b8a2]", "[3041622d6fbc91e01277c0caded5b8a3]", "0", "00")
+ self.bid128_quiet_equal("0", "[3067622d6fbc91e0127820b72d18cace]", "[3041622d6fbc91e0127820b72d18cacf]", "0", "00")
+ self.bid128_quiet_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b003fffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400000]", "1", "00")
+ self.bid128_quiet_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400001]", "0", "00")
+ self.bid128_quiet_equal("0", "[306C314DC6448D93,38C15B0A00000000]", "[308519799812DEA1,1197F27F0F6E885C]", "0", "00")
+ self.bid128_quiet_equal("0", "[306C314DC6448D93,38C15B0A00000000]", "[308519799812DEA1,12B16C17224D296E]", "0", "00")
+ self.bid128_quiet_equal("0", "[30737361cb863de627fa3c5af3bb4c08]", "[30417361cb863de627fa3c5af3bb4c09]", "0", "00")
+ self.bid128_quiet_equal("0", "[3074c612062576589dd46a73a100695d]", "[3040c612062576589dd46a73a100695e]", "0", "00")
+ self.bid128_quiet_equal("0", "[3074c612062576589dda322d47eb47fe]", "[3040c612062576589dda322d47eb47ff]", "0", "00")
+ self.bid128_quiet_equal("0", "[307fec3c64797fe80000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_equal("0", "[307fec4450b72ff30000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_equal("0", "[30820000000000000000000000000001]", "[303e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[30820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[3082a6274bbdd0fadd61999e07ac0250]", "[3040a6274bbdd0fadd61999e07ac0251]", "0", "00")
+ self.bid128_quiet_equal("0", "[36ff097bb57ad97a,9101b83330481093]", "[26a6000000000000,0000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[39e3a16cd407e3c1,42ecfe03a2adfaf3]", "[123f76c748daeeff,3988979f0f80136c]", "0", "00")
+ self.bid128_quiet_equal("0", "[3cde01f2a15129e9,d550c601ce532c8b]", "[d9fffdbfffdbfef5,fffffdf7fbefffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[3f16000000000000,0000000000000000]", "[d6679fa9084c03e4,49ed8e354744584a]", "0", "00")
+ self.bid128_quiet_equal("0", "[78000000000000000000000000000001]", "[00000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[7800000000000000,0000000000000001]", "[7800000000000000,0000000000000000]", "1", "00")
+ self.bid128_quiet_equal("0", "[78000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_equal("0", "[78000000000000000000000000000001]", "[80000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[78000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[7a9fd79c78ff3ce0,dbf3dc3e7c1ccf65]", "[ac83468d0d150bb1,33ea21589480c46c]", "0", "00")
+ self.bid128_quiet_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_quiet_equal("0", "[80000000000000000000000000000000]", "[00000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_equal("0", "[80000000000000000000000000000000]", "[80000000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_equal("0", "[80000000000000000000000000000001]", "[00000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[80000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[80000000000000000000000000000001]", "[80000000000000000000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[80000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[80dd09102018d470,992510210d60904a]", "[ffdf8fefbffbff6c,ffedffeefdffdfff]", "0", "01")
+ self.bid128_quiet_equal("0", "[8859d596f889650c,19ef6c04d3156c95]", "[7e000a3a5ca3ccbb,ea9d0efa4f2a9740]", "0", "01")
+ self.bid128_quiet_equal("0", "[97979adf7638436c,b2e950f93e6d45fa]", "[4d6d5a81bdd44f3d,dee17f32bfcb9862]", "0", "00")
+ self.bid128_quiet_equal("0", "[a4dc52e0591e0e43,0b9c6c8ea68f4ee2]", "[7800000000000000,0000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[b03e0000000000000000000000000002]", "[30820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_equal("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_equal("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000003]", "0", "00")
+ self.bid128_quiet_equal("0", "[b03e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "0", "00")
+ self.bid128_quiet_equal("0", "[b03e0000000000020000000000000000]", "[b03e0000000000010000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[b03e0000000000020000000000000000]", "[b03e0000000000030000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec3c64797fe80000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec4450b72ff30000000000000000]", "0", "00")
+ self.bid128_quiet_equal("0", "[b07fec3c64797fe80000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_equal("0", "[b07fec4450b72ff30000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "0", "00")
+ self.bid128_quiet_equal("0", "[b0820000000000000000000000000001]", "[303e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[b0820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[c02a10fff39ef710,39b9cb90aa0544fc]", "[41d37d29bdeabf6e,38bcbf073226ecbc]", "0", "00")
+ self.bid128_quiet_equal("0", "[cd83df8a3886cf4d,53c0cc10b3b3b457]", "[88ec8ba89e5e93ad,d40d163ec5c81fd0]", "0", "00")
+ self.bid128_quiet_equal("0", "[d89e72da4917665d,84232245b5e3113f]", "[5069cbf34f7418d3,714e9a9ad7ba7745]", "0", "00")
+ self.bid128_quiet_equal("0", "[de3d3f733ac4ab03,62c5136e5b52331f]", "[9af92a693403e3e5,61579b50bc48856a]", "0", "00")
+ self.bid128_quiet_equal("0", "[ee8ffc67bfdcd645,2000bc0032042425]", "[e90b11c56431463a,0216455541858d12]", "1", "00")
+ self.bid128_quiet_equal("0", "[efb1ff1252bd9a71,b62e6584e6ead4d7]", "[4500c8058002e080,70b8b80ad877344c]", "0", "00")
+ self.bid128_quiet_equal("0", "[f8000000000000000000000000000001]", "[00000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[f8000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[f8000000000000000000000000000001]", "[80000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_equal("0", "[f8000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_equal("0", "[fbdfffdfffffffff,08100f4400212804]", "[78b44225c7cd73f8,1bebf9534706ac74]", "0", "00")
+ self.bid128_quiet_equal("0", "-Infinity", "SNaN", "0", "01")
+ self.bid128_quiet_equal("0", "Infinity", "SNaN", "0", "01")
+ self.bid128_quiet_equal("0", "QNaN", "0", "0", "00")
+ self.bid128_quiet_equal("0", "SNaN", "-0", "0", "01")
+ self.bid128_quiet_equal("0", "SNaN", "-Infinity", "0", "01")
+ }
+
+ private func bid128_quiet_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isEqual(to: arg1, status: &status)
+ self.assertBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_quiet_not_equal() {
+ self.bid128_quiet_not_equal("0", "-0", "0", "0", "00")
+ self.bid128_quiet_not_equal("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[00000000000000000000000000000000]", "[80000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[00000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[00000000000000000000000000000001]", "[80000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[00000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[0000000000000000,c46001c1602024bc]", "[ce775a40b746d5f2,8000001090010000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[0000000002000000,9002000220200080]", "[0000000040000000,ffbfff7fbff7ffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_quiet_not_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_quiet_not_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[004000004002e000,0040608004000810]", "[000000000000048a,ffff7fdffffffffd]", "1", "00")
+ self.bid128_quiet_not_equal("0", "-0", "-Infinity", "1", "00")
+ self.bid128_quiet_not_equal("0", "0", "SNaN", "1", "01")
+ self.bid128_quiet_not_equal("0", "[1402c6a3193d4fe6,d8188d154c210ad6]", "[7e000eef19887283,c4ecaff995b2a0c3]", "1", "01")
+ self.bid128_quiet_not_equal("0", "[2056609e22108222,f57fb7ed79efefe7]", "[ebfe7e7aebdc6fdb,7ffffcfedffd1ffe]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[303e0000000000000000000000000002]", "[303e0000000000000000000000000003]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[303e0000000000000000000000000002]", "[30820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[303e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[303e0000000000020000000000000000]", "[303e0000000000010000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[303e0000000000020000000000000000]", "[303e0000000000030000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[30400000001faa9fc5dcff096007ffff]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[30400000001faa9fc5dcff0960080000]", "[306600000000000000000000003a6a15]", "0", "00")
+ self.bid128_quiet_not_equal("0", "[30400000001faa9fc5dcff0960080001]", "[306600000000000000000000003a6a15]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3040000000fd54fe2ee7f84b003fffff]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3040000000fd54fe2ee7f84b00400000]", "[306800000000000000000000002ebb44]", "0", "00")
+ self.bid128_quiet_not_equal("0", "[3040000000fd54fe2ee7f84b00400001]", "[306800000000000000000000002ebb44]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3040a6274bbdd0fadd61999e07ac0251]", "[3082a6274bbdd0fadd61999e07ac0250]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3040c612062576589dd46a73a100695e]", "[3074c612062576589dd46a73a100695d]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3040c612062576589dda322d47eb47ff]", "[3074c612062576589dda322d47eb47fe]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3041622d6fbc91e01277c0caded5b8a3]", "[3067622d6fbc91e01277c0caded5b8a2]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3041622d6fbc91e0127820b72d18cacf]", "[3067622d6fbc91e0127820b72d18cace]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[30417361cb863de627fa3c5af3bb4c09]", "[30737361cb863de627fa3c5af3bb4c08]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3047ec3daf9417fe642eaec0d36a73d5]", "[307fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3047ec3daf9417fe642eaec0d36a73d7]", "[307fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff096007ffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080000]", "0", "00")
+ self.bid128_quiet_not_equal("0", "[306600000000000000000000003a6a15]", "[30400000001faa9fc5dcff0960080001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3067622d6fbc91e01277c0caded5b8a2]", "[3041622d6fbc91e01277c0caded5b8a3]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3067622d6fbc91e0127820b72d18cace]", "[3041622d6fbc91e0127820b72d18cacf]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b003fffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400000]", "0", "00")
+ self.bid128_quiet_not_equal("0", "[306800000000000000000000002ebb44]", "[3040000000fd54fe2ee7f84b00400001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[30737361cb863de627fa3c5af3bb4c08]", "[30417361cb863de627fa3c5af3bb4c09]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3074c612062576589dd46a73a100695d]", "[3040c612062576589dd46a73a100695e]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3074c612062576589dda322d47eb47fe]", "[3040c612062576589dda322d47eb47ff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[307fec3c64797fe80000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[307fec4450b72ff30000000000000000]", "[3047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[30820000000000000000000000000001]", "[303e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[30820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[3082a6274bbdd0fadd61999e07ac0250]", "[3040a6274bbdd0fadd61999e07ac0251]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[34b05a0857e63aee,e5e31e5c368634b1]", "[fe0019a01ff9d2db,07cf5a2328410c03]", "1", "01")
+ self.bid128_quiet_not_equal("0", "[527602c93aa7115c,438e6c8ed77c63b6]", "[36bee6672ce9c9aa,2fbe0a6e382420bf]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[59232823e16662be,9266f90b62e30785]", "[984e000000000000,0000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[78000000000000000000000000000001]", "[00000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[78000000000000000000000000000001]", "[78000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_equal("0", "[78000000000000000000000000000001]", "[80000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[78000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[7e00000000000000,0000000000000000]", "[0b56000000000000,0000000000000000]", "1", "01")
+ self.bid128_quiet_not_equal("0", "[7e00000000000000,0000000000000000]", "[a2a947a41960371c,d9e19928c5e84264]", "1", "01")
+ self.bid128_quiet_not_equal("0", "[80000000000000000000000000000000]", "[00000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[80000000000000000000000000000000]", "[80000000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[80000000000000000000000000000001]", "[00000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[80000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[80000000000000000000000000000001]", "[80000000000000000000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[80000000000000000000000000000001]", "[f8000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[84ecd158238681a8,516b42210e25039d]", "[fe00000000000000,0000000000000000]", "1", "01")
+ self.bid128_quiet_not_equal("0", "[8f125f17cdaeaa38,d84b5a2cb597de42]", "[0f32000000000000,0000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[9123549d405a4648,a7f7f6eff7ddc772]", "[7bc15e9b17226af9,675dfdedfeaeefca]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[929133fad2422275,ea724c3ceadd69b6]", "[81458a91916a68e2,b1c7db53dcad1e9f]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[9abcf7d6719f86c0,7a5427954bd7a638]", "[fe0006eaac310b59,2b4914638f9c7b67]", "1", "01")
+ self.bid128_quiet_not_equal("0", "[ad1ac63fc590d5ef,0d2647cf162f4255]", "[a4a7909220dacbce,942f13314b218165]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b03e0000000000000000000000000002]", "[30820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b03e0000000000000000000000000002]", "[b03e0000000000000000000000000003]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b03e0000000000000000000000000002]", "[b0820000000000000000000000000001]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b03e0000000000020000000000000000]", "[b03e0000000000010000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b03e0000000000020000000000000000]", "[b03e0000000000030000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec3c64797fe80000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b047ec3daf9417fe642eaec0d36a73d7]", "[b07fec4450b72ff30000000000000000]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b07fec3c64797fe80000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b07fec4450b72ff30000000000000000]", "[b047ec3daf9417fe642eaec0d36a73d7]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b0820000000000000000000000000001]", "[303e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b0820000000000000000000000000001]", "[b03e0000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[b9f5f57ff7eff6f7,a3a62fbdd76dfd49]", "[6d17439a8e5b145f,f6f84f58ec25cb64]", "0", "00")
+ self.bid128_quiet_not_equal("0", "[bb9828df5e0a51cb,c7dedaff2bede9df]", "[8b4fb4314dd4a539,1015ed9daf27fc2f]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[c478000000000000,0000000000000000]", "[4a5bcab0f8edec18,6fc2509fced1b4e3]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[ce7ed527b9a990e4,56073fc49c5947b2]", "[83f064bc3c29ffd5,8661eae7c5a54c3a]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[ceaab518af7af6cc,65a81cdb9cda88e8]", "[80b71dffd19ea26f,ab1848ece4858f78]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[cecc4a2c797aeeb0,fc44030cbb7a9a63]", "[48f8218baa01a30f,84cf75ddd2fb0e1d]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[d26e000000000000,0000000000000000]", "[1ca412f710ed6e30,6d8690724c10255d]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[d2b4000000000000,0000000000000000]", "[7e001bdb5646c958,3a7b9a68ba57b2fd]", "1", "01")
+ self.bid128_quiet_not_equal("0", "[dcba000000000000,0000000000000000]", "[7e0004fc36a81613,19696eaaa9ce1f76]", "1", "01")
+ self.bid128_quiet_not_equal("0", "[f8000000000000000000000000000001]", "[00000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[f8000000000000000000000000000001]", "[78000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[f8000000000000000000000000000001]", "[80000000000000000000000000000002]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[f8000000000000000000000000000001]", "[f8000000000000000000000000000002]", "0", "00")
+ self.bid128_quiet_not_equal("0", "[f9dbb109ba197ef2,0000000000021400]", "[fbfdbfb9ab3ffcdb,96040801488033f2]", "0", "00")
+ self.bid128_quiet_not_equal("0", "[fb3b4271f03f6747,d028f34b102fbcb5]", "[6fefd8cef7f77ff9,feef7dffff7fffff]", "1", "00")
+ self.bid128_quiet_not_equal("0", "[fe0005f89d8a148b,cec4f97767abe0af]", "[c10c8aed9af5ac13,c4fd8ac5d61ceb65]", "1", "01")
+ self.bid128_quiet_not_equal("0", "[fe002bc74aa2a9ab,fc30e0ba5cf9de3d]", "[0442c4856f10bc1d,28855220bff25b9a]", "1", "01")
+ self.bid128_quiet_not_equal("0", "[ffffffffffffffff,0040040000800870]", "[62a8800004000044,062b102206021a09]", "1", "01")
+ self.bid128_quiet_not_equal("0", "-Infinity", "-0", "1", "00")
+ self.bid128_quiet_not_equal("0", "Infinity", "-0", "1", "00")
+ self.bid128_quiet_not_equal("0", "Infinity", "0", "1", "00")
+ self.bid128_quiet_not_equal("0", "-Infinity", "-Infinity", "0", "00")
+ self.bid128_quiet_not_equal("0", "-Infinity", "SNaN", "1", "01")
+ self.bid128_quiet_not_equal("0", "Infinity", "SNaN", "1", "01")
+ self.bid128_quiet_not_equal("0", "QNaN", "-0", "1", "00")
+ self.bid128_quiet_not_equal("0", "QNaN", "0", "1", "00")
+ self.bid128_quiet_not_equal("0", "QNaN", "Infinity", "1", "00")
+ self.bid128_quiet_not_equal("0", "QNaN", "QNaN", "1", "00")
+ self.bid128_quiet_not_equal("0", "SNaN", "-0", "1", "01")
+ self.bid128_quiet_not_equal("0", "SNaN", "0", "1", "01")
+ self.bid128_quiet_not_equal("0", "SNaN", "Infinity", "1", "01")
+ self.bid128_quiet_not_equal("0", "SNaN", "QNaN", "1", "01")
+ }
+
+ private func bid128_quiet_not_equal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.isEqual(to: arg1, status: &status)
+ self.assertNotBool(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelFromBinaryFloatingPointTests.swift b/Tests/DecimalTests/Intel - generated/IntelFromBinaryFloatingPointTests.swift
new file mode 100644
index 0000000..ea392fd
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelFromBinaryFloatingPointTests.swift
@@ -0,0 +1,15016 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelFromBinaryFloatingPointTests: XCTestCase, IntelMixin {
+
+ func test_binary32_to_bid32() {
+ self.binary32_to_bid32("0", "[00000000]", "[32800000]", "00")
+ self.binary32_to_bid32("0", "[00000000]", "[32800000]", "0x00")
+ self.binary32_to_bid32("0", "[00000001]", "[191561d2]", "0x22")
+ self.binary32_to_bid32("0", "[00000001]", "[191561D2]", "22")
+ self.binary32_to_bid32("0", "[00000002]", "[192AC3A5]", "22")
+ self.binary32_to_bid32("0", "[00000004]", "[1955874A]", "22")
+ self.binary32_to_bid32("0", "[00000008]", "[19911B0F]", "22")
+ self.binary32_to_bid32("0", "[00000010]", "[19A2361E]", "22")
+ self.binary32_to_bid32("0", "[00000020]", "[19C46C3B]", "22")
+ self.binary32_to_bid32("0", "[00000040]", "[6668D876]", "22")
+ self.binary32_to_bid32("0", "[00000080]", "[1A1B5E7E]", "22")
+ self.binary32_to_bid32("0", "[00000100]", "[1A36BCFC]", "22")
+ self.binary32_to_bid32("0", "[000001ac]", "[1a5b83f5]", "0x22")
+ self.binary32_to_bid32("0", "[00000200]", "[1A6D79F8]", "22")
+ self.binary32_to_bid32("0", "[00000400]", "[1A95E532]", "22")
+ self.binary32_to_bid32("0", "[00000800]", "[1AABCA63]", "22")
+ self.binary32_to_bid32("0", "[00001000]", "[1AD794C7]", "22")
+ self.binary32_to_bid32("0", "[00002000]", "[1B118428]", "22")
+ self.binary32_to_bid32("0", "[00004000]", "[1B23084F]", "22")
+ self.binary32_to_bid32("0", "[00008000]", "[1B46109F]", "22")
+ self.binary32_to_bid32("0", "[00010000]", "[66CC213E]", "22")
+ self.binary32_to_bid32("0", "[00020000]", "[1B9C06A6]", "22")
+ self.binary32_to_bid32("0", "[00040000]", "[1BB80D4C]", "22")
+ self.binary32_to_bid32("0", "[0006c605]", "[1bdeeaca]", "0x22")
+ self.binary32_to_bid32("0", "[00080000]", "[1BF01A98]", "22")
+ self.binary32_to_bid32("0", "[00100000]", "[1C166BB8]", "22")
+ self.binary32_to_bid32("0", "[00200000]", "[1C2CD770]", "22")
+ self.binary32_to_bid32("0", "[00400000]", "[1C59AEE0]", "22")
+ self.binary32_to_bid32("0", "[007fffff]", "[1C91EFC6]", "22")
+ self.binary32_to_bid32("0", "[00800000]", "[1c91efc6]", "0x20")
+ self.binary32_to_bid32("0", "[00800000]", "[1C91EFC6]", "20")
+ self.binary32_to_bid32("0", "[01000000]", "[1ca3df8d]", "0x20")
+ self.binary32_to_bid32("0", "[03b16b00]", "[1d8fe951]", "0x20")
+ self.binary32_to_bid32("0", "[09df9550]", "[1f5221ab]", "0x20")
+ self.binary32_to_bid32("0", "[0fc7a2b8]", "[211e09af]", "0x20")
+ self.binary32_to_bid32("0", "[14be59d0]", "[229d5404]", "0x20")
+ self.binary32_to_bid32("0", "[1a49a610]", "[243fa10d]", "0x20")
+ self.binary32_to_bid32("0", "[21e82446]", "[269800bd]", "0x20")
+ self.binary32_to_bid32("0", "[26d907ec]", "[2816faa3]", "0x20")
+ self.binary32_to_bid32("0", "[2c013e62]", "[299c0677]", "0x20")
+ self.binary32_to_bid32("0", "[32229e99]", "[6ad06f66]", "0x20")
+ self.binary32_to_bid32("0", "[37656336]", "[2d14dcd8]", "0x20")
+ self.binary32_to_bid32("0", "[3ca2c726]", "[2e9e51db]", "0x20")
+ self.binary32_to_bid32("0", "[3d500000]", "[2ecd7c6d]", "0x00")
+ self.binary32_to_bid32("0", "[3F000000]", "[32000005]", "00")
+ self.binary32_to_bid32("0", "[3f800000]", "[32800001]", "0x00")
+ self.binary32_to_bid32("0", "[3fc00000]", "[3200000f]", "0x00")
+ self.binary32_to_bid32("0", "[40000000]", "[32800002]", "00")
+ self.binary32_to_bid32("0", "[42800000]", "[32800040]", "0x00")
+ self.binary32_to_bid32("0", "[42fff9e3]", "[30938789]", "0x20")
+ self.binary32_to_bid32("0", "[4479c000]", "[328003e7]", "0x00")
+ self.binary32_to_bid32("0", "[447a0000]", "[328003e8]", "0x00")
+ self.binary32_to_bid32("0", "[48434ff7]", "[321e847f]", "0x20")
+ self.binary32_to_bid32("0", "[4d3ebc1e]", "[339e8480]", "0x20")
+ self.binary32_to_bid32("0", "[537ff477]", "[3590c636]", "0x20")
+ self.binary32_to_bid32("0", "[58e348a9]", "[371e816a]", "0x20")
+ self.binary32_to_bid32("0", "[5dd35452]", "[389d0b7e]", "0x20")
+ self.binary32_to_bid32("0", "[63f6e3b3]", "[6e8afc85]", "0x20")
+ self.binary32_to_bid32("0", "[6958416e]", "[3c18eebd]", "0x20")
+ self.binary32_to_bid32("0", "[6ee5ca5b]", "[3db641fb]", "0x20")
+ self.binary32_to_bid32("0", "[74700765]", "[3f741223]", "0x20")
+ self.binary32_to_bid32("0", "[797e8434]", "[40fe07ca]", "0x20")
+ self.binary32_to_bid32("0", "[7CF0BDC2]", "[420F4240]", "20")
+ self.binary32_to_bid32("0", "[7E000000]", "[4240E75A]", "20")
+ self.binary32_to_bid32("0", "[7E800000]", "[7081CEB3]", "20")
+ self.binary32_to_bid32("0", "[7E967699]", "[428F4240]", "20")
+ self.binary32_to_bid32("0", "[7F000000]", "[4299F624]", "20")
+ self.binary32_to_bid32("0", "[7f7fffff]", "[42b3ec47]", "0x20")
+ self.binary32_to_bid32("0", "[7f7fffff]", "[42B3EC47]", "20")
+ self.binary32_to_bid32("0", "[7f800000]", "[78000000]", "00")
+ self.binary32_to_bid32("0", "[7f800000]", "[78000000]", "0x00")
+ self.binary32_to_bid32("0", "[7fc00000]", "[7c000000]", "00")
+ self.binary32_to_bid32("0", "[7fc00001]", "[7c000000]", "00")
+ self.binary32_to_bid32("0", "[7fc00004]", "[7c000001]", "00")
+ self.binary32_to_bid32("0", "[7fcfffff]", "[7c03ffff]", "00")
+ self.binary32_to_bid32("0", "[7fe00000]", "[7c080000]", "00")
+ self.binary32_to_bid32("0", "[7ffd08fc]", "[7c0f423f]", "00")
+ self.binary32_to_bid32("0", "[7ffd0900]", "[7c000000]", "00")
+ self.binary32_to_bid32("0", "[7fffffff]", "[7c000000]", "00")
+ self.binary32_to_bid32("0", "[80000000]", "[B2800000]", "00")
+ self.binary32_to_bid32("0", "[80000001]", "[991561d2]", "0x22")
+ self.binary32_to_bid32("0", "[80000001]", "[991561D2]", "22")
+ self.binary32_to_bid32("0", "[800001ac]", "[9a5b83f5]", "0x22")
+ self.binary32_to_bid32("0", "[8006c605]", "[9bdeeaca]", "0x22")
+ self.binary32_to_bid32("0", "[807fffff]", "[9C91EFC6]", "22")
+ self.binary32_to_bid32("0", "[80800000]", "[9c91efc6]", "0x20")
+ self.binary32_to_bid32("0", "[80800000]", "[9C91EFC6]", "20")
+ self.binary32_to_bid32("0", "[81000000]", "[9ca3df8d]", "0x20")
+ self.binary32_to_bid32("0", "[83b16b00]", "[9d8fe951]", "0x20")
+ self.binary32_to_bid32("0", "[89df9550]", "[9f5221ab]", "0x20")
+ self.binary32_to_bid32("0", "[8fc7a2b8]", "[a11e09af]", "0x20")
+ self.binary32_to_bid32("0", "[94be59d0]", "[a29d5404]", "0x20")
+ self.binary32_to_bid32("0", "[9a49a610]", "[a43fa10d]", "0x20")
+ self.binary32_to_bid32("0", "[a1e82446]", "[a69800bd]", "0x20")
+ self.binary32_to_bid32("0", "[a6d907ec]", "[a816faa3]", "0x20")
+ self.binary32_to_bid32("0", "[ac013e62]", "[a99c0677]", "0x20")
+ self.binary32_to_bid32("0", "[b2229e99]", "[ead06f66]", "0x20")
+ self.binary32_to_bid32("0", "[b7656336]", "[ad14dcd8]", "0x20")
+ self.binary32_to_bid32("0", "[bca2c726]", "[ae9e51db]", "0x20")
+ self.binary32_to_bid32("0", "[bd500000]", "[aecd7c6d]", "0x00")
+ self.binary32_to_bid32("0", "[bf800000]", "[b2800001]", "0x00")
+ self.binary32_to_bid32("0", "[bfc00000]", "[b200000f]", "0x00")
+ self.binary32_to_bid32("0", "[c2800000]", "[b2800040]", "0x00")
+ self.binary32_to_bid32("0", "[c2fff9e3]", "[b0938789]", "0x20")
+ self.binary32_to_bid32("0", "[c479c000]", "[b28003e7]", "0x00")
+ self.binary32_to_bid32("0", "[c47a0000]", "[b28003e8]", "0x00")
+ self.binary32_to_bid32("0", "[c8434ff7]", "[b21e847f]", "0x20")
+ self.binary32_to_bid32("0", "[cd3ebc1e]", "[b39e8480]", "0x20")
+ self.binary32_to_bid32("0", "[d37ff477]", "[b590c636]", "0x20")
+ self.binary32_to_bid32("0", "[d8e348a9]", "[b71e816a]", "0x20")
+ self.binary32_to_bid32("0", "[ddd35452]", "[b89d0b7e]", "0x20")
+ self.binary32_to_bid32("0", "[e3f6e3b3]", "[ee8afc85]", "0x20")
+ self.binary32_to_bid32("0", "[e958416e]", "[bc18eebd]", "0x20")
+ self.binary32_to_bid32("0", "[eee5ca5b]", "[bdb641fb]", "0x20")
+ self.binary32_to_bid32("0", "[f4700765]", "[bf741223]", "0x20")
+ self.binary32_to_bid32("0", "[f97e8434]", "[c0fe07ca]", "0x20")
+ self.binary32_to_bid32("0", "[ff7fffff]", "[c2b3ec47]", "0x20")
+ self.binary32_to_bid32("0", "[ff7fffff]", "[C2B3EC47]", "20")
+ self.binary32_to_bid32("0", "[ff800000]", "[f8000000]", "00")
+ self.binary32_to_bid32("0", "[ff800000]", "[f8000000]", "0x00")
+ self.binary32_to_bid32("0", "[ffc00000]", "[fc000000]", "00")
+ self.binary32_to_bid32("1", "[00000000]", "[32800000]", "0x00")
+ self.binary32_to_bid32("1", "[00000001]", "[191561d2]", "0x22")
+ self.binary32_to_bid32("1", "[000001ac]", "[1a5b83f5]", "0x22")
+ self.binary32_to_bid32("1", "[0006c605]", "[1bdeeac9]", "0x22")
+ self.binary32_to_bid32("1", "[00800000]", "[1c91efc6]", "0x20")
+ self.binary32_to_bid32("1", "[01000000]", "[1ca3df8c]", "0x20")
+ self.binary32_to_bid32("1", "[03b16b00]", "[1d8fe951]", "0x20")
+ self.binary32_to_bid32("1", "[09df9550]", "[1f5221aa]", "0x20")
+ self.binary32_to_bid32("1", "[0fc7a2b8]", "[211e09af]", "0x20")
+ self.binary32_to_bid32("1", "[14be59d0]", "[229d5404]", "0x20")
+ self.binary32_to_bid32("1", "[1a49a610]", "[243fa10d]", "0x20")
+ self.binary32_to_bid32("1", "[21e82446]", "[269800bd]", "0x20")
+ self.binary32_to_bid32("1", "[26d907ec]", "[2816faa2]", "0x20")
+ self.binary32_to_bid32("1", "[2c013e62]", "[299c0677]", "0x20")
+ self.binary32_to_bid32("1", "[32229e99]", "[6ad06f65]", "0x20")
+ self.binary32_to_bid32("1", "[37656336]", "[2d14dcd8]", "0x20")
+ self.binary32_to_bid32("1", "[3ca2c726]", "[2e9e51db]", "0x20")
+ self.binary32_to_bid32("1", "[3d500000]", "[2ecd7c6d]", "0x00")
+ self.binary32_to_bid32("1", "[3f800000]", "[32800001]", "0x00")
+ self.binary32_to_bid32("1", "[3fc00000]", "[3200000f]", "0x00")
+ self.binary32_to_bid32("1", "[42800000]", "[32800040]", "0x00")
+ self.binary32_to_bid32("1", "[42fff9e3]", "[30938788]", "0x20")
+ self.binary32_to_bid32("1", "[4479c000]", "[328003e7]", "0x00")
+ self.binary32_to_bid32("1", "[447a0000]", "[328003e8]", "0x00")
+ self.binary32_to_bid32("1", "[48434ff7]", "[321e847e]", "0x20")
+ self.binary32_to_bid32("1", "[4d3ebc1e]", "[339e847f]", "0x20")
+ self.binary32_to_bid32("1", "[537ff477]", "[3590c636]", "0x20")
+ self.binary32_to_bid32("1", "[58e348a9]", "[371e8169]", "0x20")
+ self.binary32_to_bid32("1", "[5dd35452]", "[389d0b7d]", "0x20")
+ self.binary32_to_bid32("1", "[63f6e3b3]", "[6e8afc84]", "0x20")
+ self.binary32_to_bid32("1", "[6958416e]", "[3c18eebc]", "0x20")
+ self.binary32_to_bid32("1", "[6ee5ca5b]", "[3db641fb]", "0x20")
+ self.binary32_to_bid32("1", "[74700765]", "[3f741222]", "0x20")
+ self.binary32_to_bid32("1", "[797e8434]", "[40fe07c9]", "0x20")
+ self.binary32_to_bid32("1", "[7f7fffff]", "[42b3ec47]", "0x20")
+ self.binary32_to_bid32("1", "[7f800000]", "[78000000]", "0x00")
+ self.binary32_to_bid32("1", "[80000001]", "[991561d3]", "0x22")
+ self.binary32_to_bid32("1", "[800001ac]", "[9a5b83f6]", "0x22")
+ self.binary32_to_bid32("1", "[8006c605]", "[9bdeeaca]", "0x22")
+ self.binary32_to_bid32("1", "[80800000]", "[9c91efc7]", "0x20")
+ self.binary32_to_bid32("1", "[81000000]", "[9ca3df8d]", "0x20")
+ self.binary32_to_bid32("1", "[83b16b00]", "[9d8fe952]", "0x20")
+ self.binary32_to_bid32("1", "[89df9550]", "[9f5221ab]", "0x20")
+ self.binary32_to_bid32("1", "[8fc7a2b8]", "[a11e09b0]", "0x20")
+ self.binary32_to_bid32("1", "[94be59d0]", "[a29d5405]", "0x20")
+ self.binary32_to_bid32("1", "[9a49a610]", "[a43fa10e]", "0x20")
+ self.binary32_to_bid32("1", "[a1e82446]", "[a69800be]", "0x20")
+ self.binary32_to_bid32("1", "[a6d907ec]", "[a816faa3]", "0x20")
+ self.binary32_to_bid32("1", "[ac013e62]", "[a99c0678]", "0x20")
+ self.binary32_to_bid32("1", "[b2229e99]", "[ead06f66]", "0x20")
+ self.binary32_to_bid32("1", "[b7656336]", "[ad14dcd9]", "0x20")
+ self.binary32_to_bid32("1", "[bca2c726]", "[ae9e51dc]", "0x20")
+ self.binary32_to_bid32("1", "[bd500000]", "[aecd7c6d]", "0x00")
+ self.binary32_to_bid32("1", "[bf800000]", "[b2800001]", "0x00")
+ self.binary32_to_bid32("1", "[bfc00000]", "[b200000f]", "0x00")
+ self.binary32_to_bid32("1", "[c2800000]", "[b2800040]", "0x00")
+ self.binary32_to_bid32("1", "[c2fff9e3]", "[b0938789]", "0x20")
+ self.binary32_to_bid32("1", "[c479c000]", "[b28003e7]", "0x00")
+ self.binary32_to_bid32("1", "[c47a0000]", "[b28003e8]", "0x00")
+ self.binary32_to_bid32("1", "[c8434ff7]", "[b21e847f]", "0x20")
+ self.binary32_to_bid32("1", "[cd3ebc1e]", "[b39e8480]", "0x20")
+ self.binary32_to_bid32("1", "[d37ff477]", "[b590c637]", "0x20")
+ self.binary32_to_bid32("1", "[d8e348a9]", "[b71e816a]", "0x20")
+ self.binary32_to_bid32("1", "[ddd35452]", "[b89d0b7e]", "0x20")
+ self.binary32_to_bid32("1", "[e3f6e3b3]", "[ee8afc85]", "0x20")
+ self.binary32_to_bid32("1", "[e958416e]", "[bc18eebd]", "0x20")
+ self.binary32_to_bid32("1", "[eee5ca5b]", "[bdb641fc]", "0x20")
+ self.binary32_to_bid32("1", "[f4700765]", "[bf741223]", "0x20")
+ self.binary32_to_bid32("1", "[f97e8434]", "[c0fe07ca]", "0x20")
+ self.binary32_to_bid32("1", "[ff7fffff]", "[c2b3ec48]", "0x20")
+ self.binary32_to_bid32("1", "[ff800000]", "[f8000000]", "0x00")
+ self.binary32_to_bid32("2", "[00000000]", "[32800000]", "0x00")
+ self.binary32_to_bid32("2", "[00000001]", "[191561d3]", "0x22")
+ self.binary32_to_bid32("2", "[000001ac]", "[1a5b83f6]", "0x22")
+ self.binary32_to_bid32("2", "[0006c605]", "[1bdeeaca]", "0x22")
+ self.binary32_to_bid32("2", "[00800000]", "[1c91efc7]", "0x20")
+ self.binary32_to_bid32("2", "[01000000]", "[1ca3df8d]", "0x20")
+ self.binary32_to_bid32("2", "[03b16b00]", "[1d8fe952]", "0x20")
+ self.binary32_to_bid32("2", "[09df9550]", "[1f5221ab]", "0x20")
+ self.binary32_to_bid32("2", "[0fc7a2b8]", "[211e09b0]", "0x20")
+ self.binary32_to_bid32("2", "[14be59d0]", "[229d5405]", "0x20")
+ self.binary32_to_bid32("2", "[1a49a610]", "[243fa10e]", "0x20")
+ self.binary32_to_bid32("2", "[21e82446]", "[269800be]", "0x20")
+ self.binary32_to_bid32("2", "[26d907ec]", "[2816faa3]", "0x20")
+ self.binary32_to_bid32("2", "[2c013e62]", "[299c0678]", "0x20")
+ self.binary32_to_bid32("2", "[32229e99]", "[6ad06f66]", "0x20")
+ self.binary32_to_bid32("2", "[37656336]", "[2d14dcd9]", "0x20")
+ self.binary32_to_bid32("2", "[3ca2c726]", "[2e9e51dc]", "0x20")
+ self.binary32_to_bid32("2", "[3d500000]", "[2ecd7c6d]", "0x00")
+ self.binary32_to_bid32("2", "[3f800000]", "[32800001]", "0x00")
+ self.binary32_to_bid32("2", "[3fc00000]", "[3200000f]", "0x00")
+ self.binary32_to_bid32("2", "[42800000]", "[32800040]", "0x00")
+ self.binary32_to_bid32("2", "[42fff9e3]", "[30938789]", "0x20")
+ self.binary32_to_bid32("2", "[4479c000]", "[328003e7]", "0x00")
+ self.binary32_to_bid32("2", "[447a0000]", "[328003e8]", "0x00")
+ self.binary32_to_bid32("2", "[48434ff7]", "[321e847f]", "0x20")
+ self.binary32_to_bid32("2", "[4d3ebc1e]", "[339e8480]", "0x20")
+ self.binary32_to_bid32("2", "[537ff477]", "[3590c637]", "0x20")
+ self.binary32_to_bid32("2", "[58e348a9]", "[371e816a]", "0x20")
+ self.binary32_to_bid32("2", "[5dd35452]", "[389d0b7e]", "0x20")
+ self.binary32_to_bid32("2", "[63f6e3b3]", "[6e8afc85]", "0x20")
+ self.binary32_to_bid32("2", "[6958416e]", "[3c18eebd]", "0x20")
+ self.binary32_to_bid32("2", "[6ee5ca5b]", "[3db641fc]", "0x20")
+ self.binary32_to_bid32("2", "[74700765]", "[3f741223]", "0x20")
+ self.binary32_to_bid32("2", "[797e8434]", "[40fe07ca]", "0x20")
+ self.binary32_to_bid32("2", "[7f7fffff]", "[42b3ec48]", "0x20")
+ self.binary32_to_bid32("2", "[7f800000]", "[78000000]", "0x00")
+ self.binary32_to_bid32("2", "[80000001]", "[991561d2]", "0x22")
+ self.binary32_to_bid32("2", "[800001ac]", "[9a5b83f5]", "0x22")
+ self.binary32_to_bid32("2", "[8006c605]", "[9bdeeac9]", "0x22")
+ self.binary32_to_bid32("2", "[80800000]", "[9c91efc6]", "0x20")
+ self.binary32_to_bid32("2", "[81000000]", "[9ca3df8c]", "0x20")
+ self.binary32_to_bid32("2", "[83b16b00]", "[9d8fe951]", "0x20")
+ self.binary32_to_bid32("2", "[89df9550]", "[9f5221aa]", "0x20")
+ self.binary32_to_bid32("2", "[8fc7a2b8]", "[a11e09af]", "0x20")
+ self.binary32_to_bid32("2", "[94be59d0]", "[a29d5404]", "0x20")
+ self.binary32_to_bid32("2", "[9a49a610]", "[a43fa10d]", "0x20")
+ self.binary32_to_bid32("2", "[a1e82446]", "[a69800bd]", "0x20")
+ self.binary32_to_bid32("2", "[a6d907ec]", "[a816faa2]", "0x20")
+ self.binary32_to_bid32("2", "[ac013e62]", "[a99c0677]", "0x20")
+ self.binary32_to_bid32("2", "[b2229e99]", "[ead06f65]", "0x20")
+ self.binary32_to_bid32("2", "[b7656336]", "[ad14dcd8]", "0x20")
+ self.binary32_to_bid32("2", "[bca2c726]", "[ae9e51db]", "0x20")
+ self.binary32_to_bid32("2", "[bd500000]", "[aecd7c6d]", "0x00")
+ self.binary32_to_bid32("2", "[bf800000]", "[b2800001]", "0x00")
+ self.binary32_to_bid32("2", "[bfc00000]", "[b200000f]", "0x00")
+ self.binary32_to_bid32("2", "[c2800000]", "[b2800040]", "0x00")
+ self.binary32_to_bid32("2", "[c2fff9e3]", "[b0938788]", "0x20")
+ self.binary32_to_bid32("2", "[c479c000]", "[b28003e7]", "0x00")
+ self.binary32_to_bid32("2", "[c47a0000]", "[b28003e8]", "0x00")
+ self.binary32_to_bid32("2", "[c8434ff7]", "[b21e847e]", "0x20")
+ self.binary32_to_bid32("2", "[cd3ebc1e]", "[b39e847f]", "0x20")
+ self.binary32_to_bid32("2", "[d37ff477]", "[b590c636]", "0x20")
+ self.binary32_to_bid32("2", "[d8e348a9]", "[b71e8169]", "0x20")
+ self.binary32_to_bid32("2", "[ddd35452]", "[b89d0b7d]", "0x20")
+ self.binary32_to_bid32("2", "[e3f6e3b3]", "[ee8afc84]", "0x20")
+ self.binary32_to_bid32("2", "[e958416e]", "[bc18eebc]", "0x20")
+ self.binary32_to_bid32("2", "[eee5ca5b]", "[bdb641fb]", "0x20")
+ self.binary32_to_bid32("2", "[f4700765]", "[bf741222]", "0x20")
+ self.binary32_to_bid32("2", "[f97e8434]", "[c0fe07c9]", "0x20")
+ self.binary32_to_bid32("2", "[ff7fffff]", "[c2b3ec47]", "0x20")
+ self.binary32_to_bid32("2", "[ff800000]", "[f8000000]", "0x00")
+ self.binary32_to_bid32("3", "[00000000]", "[32800000]", "0x00")
+ self.binary32_to_bid32("3", "[00000001]", "[191561d2]", "0x22")
+ self.binary32_to_bid32("3", "[000001ac]", "[1a5b83f5]", "0x22")
+ self.binary32_to_bid32("3", "[0006c605]", "[1bdeeac9]", "0x22")
+ self.binary32_to_bid32("3", "[00800000]", "[1c91efc6]", "0x20")
+ self.binary32_to_bid32("3", "[01000000]", "[1ca3df8c]", "0x20")
+ self.binary32_to_bid32("3", "[03b16b00]", "[1d8fe951]", "0x20")
+ self.binary32_to_bid32("3", "[09df9550]", "[1f5221aa]", "0x20")
+ self.binary32_to_bid32("3", "[0fc7a2b8]", "[211e09af]", "0x20")
+ self.binary32_to_bid32("3", "[14be59d0]", "[229d5404]", "0x20")
+ self.binary32_to_bid32("3", "[1a49a610]", "[243fa10d]", "0x20")
+ self.binary32_to_bid32("3", "[21e82446]", "[269800bd]", "0x20")
+ self.binary32_to_bid32("3", "[26d907ec]", "[2816faa2]", "0x20")
+ self.binary32_to_bid32("3", "[2c013e62]", "[299c0677]", "0x20")
+ self.binary32_to_bid32("3", "[32229e99]", "[6ad06f65]", "0x20")
+ self.binary32_to_bid32("3", "[37656336]", "[2d14dcd8]", "0x20")
+ self.binary32_to_bid32("3", "[3ca2c726]", "[2e9e51db]", "0x20")
+ self.binary32_to_bid32("3", "[3d500000]", "[2ecd7c6d]", "0x00")
+ self.binary32_to_bid32("3", "[3f800000]", "[32800001]", "0x00")
+ self.binary32_to_bid32("3", "[3fc00000]", "[3200000f]", "0x00")
+ self.binary32_to_bid32("3", "[42800000]", "[32800040]", "0x00")
+ self.binary32_to_bid32("3", "[42fff9e3]", "[30938788]", "0x20")
+ self.binary32_to_bid32("3", "[4479c000]", "[328003e7]", "0x00")
+ self.binary32_to_bid32("3", "[447a0000]", "[328003e8]", "0x00")
+ self.binary32_to_bid32("3", "[48434ff7]", "[321e847e]", "0x20")
+ self.binary32_to_bid32("3", "[4d3ebc1e]", "[339e847f]", "0x20")
+ self.binary32_to_bid32("3", "[537ff477]", "[3590c636]", "0x20")
+ self.binary32_to_bid32("3", "[58e348a9]", "[371e8169]", "0x20")
+ self.binary32_to_bid32("3", "[5dd35452]", "[389d0b7d]", "0x20")
+ self.binary32_to_bid32("3", "[63f6e3b3]", "[6e8afc84]", "0x20")
+ self.binary32_to_bid32("3", "[6958416e]", "[3c18eebc]", "0x20")
+ self.binary32_to_bid32("3", "[6ee5ca5b]", "[3db641fb]", "0x20")
+ self.binary32_to_bid32("3", "[74700765]", "[3f741222]", "0x20")
+ self.binary32_to_bid32("3", "[797e8434]", "[40fe07c9]", "0x20")
+ self.binary32_to_bid32("3", "[7f7fffff]", "[42b3ec47]", "0x20")
+ self.binary32_to_bid32("3", "[7f800000]", "[78000000]", "0x00")
+ self.binary32_to_bid32("3", "[80000001]", "[991561d2]", "0x22")
+ self.binary32_to_bid32("3", "[800001ac]", "[9a5b83f5]", "0x22")
+ self.binary32_to_bid32("3", "[8006c605]", "[9bdeeac9]", "0x22")
+ self.binary32_to_bid32("3", "[80800000]", "[9c91efc6]", "0x20")
+ self.binary32_to_bid32("3", "[81000000]", "[9ca3df8c]", "0x20")
+ self.binary32_to_bid32("3", "[83b16b00]", "[9d8fe951]", "0x20")
+ self.binary32_to_bid32("3", "[89df9550]", "[9f5221aa]", "0x20")
+ self.binary32_to_bid32("3", "[8fc7a2b8]", "[a11e09af]", "0x20")
+ self.binary32_to_bid32("3", "[94be59d0]", "[a29d5404]", "0x20")
+ self.binary32_to_bid32("3", "[9a49a610]", "[a43fa10d]", "0x20")
+ self.binary32_to_bid32("3", "[a1e82446]", "[a69800bd]", "0x20")
+ self.binary32_to_bid32("3", "[a6d907ec]", "[a816faa2]", "0x20")
+ self.binary32_to_bid32("3", "[ac013e62]", "[a99c0677]", "0x20")
+ self.binary32_to_bid32("3", "[b2229e99]", "[ead06f65]", "0x20")
+ self.binary32_to_bid32("3", "[b7656336]", "[ad14dcd8]", "0x20")
+ self.binary32_to_bid32("3", "[bca2c726]", "[ae9e51db]", "0x20")
+ self.binary32_to_bid32("3", "[bd500000]", "[aecd7c6d]", "0x00")
+ self.binary32_to_bid32("3", "[bf800000]", "[b2800001]", "0x00")
+ self.binary32_to_bid32("3", "[bfc00000]", "[b200000f]", "0x00")
+ self.binary32_to_bid32("3", "[c2800000]", "[b2800040]", "0x00")
+ self.binary32_to_bid32("3", "[c2fff9e3]", "[b0938788]", "0x20")
+ self.binary32_to_bid32("3", "[c479c000]", "[b28003e7]", "0x00")
+ self.binary32_to_bid32("3", "[c47a0000]", "[b28003e8]", "0x00")
+ self.binary32_to_bid32("3", "[c8434ff7]", "[b21e847e]", "0x20")
+ self.binary32_to_bid32("3", "[cd3ebc1e]", "[b39e847f]", "0x20")
+ self.binary32_to_bid32("3", "[d37ff477]", "[b590c636]", "0x20")
+ self.binary32_to_bid32("3", "[d8e348a9]", "[b71e8169]", "0x20")
+ self.binary32_to_bid32("3", "[ddd35452]", "[b89d0b7d]", "0x20")
+ self.binary32_to_bid32("3", "[e3f6e3b3]", "[ee8afc84]", "0x20")
+ self.binary32_to_bid32("3", "[e958416e]", "[bc18eebc]", "0x20")
+ self.binary32_to_bid32("3", "[eee5ca5b]", "[bdb641fb]", "0x20")
+ self.binary32_to_bid32("3", "[f4700765]", "[bf741222]", "0x20")
+ self.binary32_to_bid32("3", "[f97e8434]", "[c0fe07c9]", "0x20")
+ self.binary32_to_bid32("3", "[ff7fffff]", "[c2b3ec47]", "0x20")
+ self.binary32_to_bid32("3", "[ff800000]", "[f8000000]", "0x00")
+ self.binary32_to_bid32("4", "[00000000]", "[32800000]", "0x00")
+ self.binary32_to_bid32("4", "[00000001]", "[191561d2]", "0x22")
+ self.binary32_to_bid32("4", "[000001ac]", "[1a5b83f5]", "0x22")
+ self.binary32_to_bid32("4", "[0006c605]", "[1bdeeaca]", "0x22")
+ self.binary32_to_bid32("4", "[00800000]", "[1c91efc6]", "0x20")
+ self.binary32_to_bid32("4", "[01000000]", "[1ca3df8d]", "0x20")
+ self.binary32_to_bid32("4", "[03b16b00]", "[1d8fe951]", "0x20")
+ self.binary32_to_bid32("4", "[09df9550]", "[1f5221ab]", "0x20")
+ self.binary32_to_bid32("4", "[0fc7a2b8]", "[211e09af]", "0x20")
+ self.binary32_to_bid32("4", "[14be59d0]", "[229d5404]", "0x20")
+ self.binary32_to_bid32("4", "[1a49a610]", "[243fa10d]", "0x20")
+ self.binary32_to_bid32("4", "[21e82446]", "[269800bd]", "0x20")
+ self.binary32_to_bid32("4", "[26d907ec]", "[2816faa3]", "0x20")
+ self.binary32_to_bid32("4", "[2c013e62]", "[299c0677]", "0x20")
+ self.binary32_to_bid32("4", "[32229e99]", "[6ad06f66]", "0x20")
+ self.binary32_to_bid32("4", "[37656336]", "[2d14dcd8]", "0x20")
+ self.binary32_to_bid32("4", "[3ca2c726]", "[2e9e51db]", "0x20")
+ self.binary32_to_bid32("4", "[3d500000]", "[2ecd7c6d]", "0x00")
+ self.binary32_to_bid32("4", "[3f800000]", "[32800001]", "0x00")
+ self.binary32_to_bid32("4", "[3fc00000]", "[3200000f]", "0x00")
+ self.binary32_to_bid32("4", "[42800000]", "[32800040]", "0x00")
+ self.binary32_to_bid32("4", "[42fff9e3]", "[30938789]", "0x20")
+ self.binary32_to_bid32("4", "[4479c000]", "[328003e7]", "0x00")
+ self.binary32_to_bid32("4", "[447a0000]", "[328003e8]", "0x00")
+ self.binary32_to_bid32("4", "[48434ff7]", "[321e847f]", "0x20")
+ self.binary32_to_bid32("4", "[4d3ebc1e]", "[339e8480]", "0x20")
+ self.binary32_to_bid32("4", "[537ff477]", "[3590c636]", "0x20")
+ self.binary32_to_bid32("4", "[58e348a9]", "[371e816a]", "0x20")
+ self.binary32_to_bid32("4", "[5dd35452]", "[389d0b7e]", "0x20")
+ self.binary32_to_bid32("4", "[63f6e3b3]", "[6e8afc85]", "0x20")
+ self.binary32_to_bid32("4", "[6958416e]", "[3c18eebd]", "0x20")
+ self.binary32_to_bid32("4", "[6ee5ca5b]", "[3db641fb]", "0x20")
+ self.binary32_to_bid32("4", "[74700765]", "[3f741223]", "0x20")
+ self.binary32_to_bid32("4", "[797e8434]", "[40fe07ca]", "0x20")
+ self.binary32_to_bid32("4", "[7f7fffff]", "[42b3ec47]", "0x20")
+ self.binary32_to_bid32("4", "[7f800000]", "[78000000]", "0x00")
+ self.binary32_to_bid32("4", "[80000001]", "[991561d2]", "0x22")
+ self.binary32_to_bid32("4", "[800001ac]", "[9a5b83f5]", "0x22")
+ self.binary32_to_bid32("4", "[8006c605]", "[9bdeeaca]", "0x22")
+ self.binary32_to_bid32("4", "[80800000]", "[9c91efc6]", "0x20")
+ self.binary32_to_bid32("4", "[81000000]", "[9ca3df8d]", "0x20")
+ self.binary32_to_bid32("4", "[83b16b00]", "[9d8fe951]", "0x20")
+ self.binary32_to_bid32("4", "[89df9550]", "[9f5221ab]", "0x20")
+ self.binary32_to_bid32("4", "[8fc7a2b8]", "[a11e09af]", "0x20")
+ self.binary32_to_bid32("4", "[94be59d0]", "[a29d5404]", "0x20")
+ self.binary32_to_bid32("4", "[9a49a610]", "[a43fa10d]", "0x20")
+ self.binary32_to_bid32("4", "[a1e82446]", "[a69800bd]", "0x20")
+ self.binary32_to_bid32("4", "[a6d907ec]", "[a816faa3]", "0x20")
+ self.binary32_to_bid32("4", "[ac013e62]", "[a99c0677]", "0x20")
+ self.binary32_to_bid32("4", "[b2229e99]", "[ead06f66]", "0x20")
+ self.binary32_to_bid32("4", "[b7656336]", "[ad14dcd8]", "0x20")
+ self.binary32_to_bid32("4", "[bca2c726]", "[ae9e51db]", "0x20")
+ self.binary32_to_bid32("4", "[bd500000]", "[aecd7c6d]", "0x00")
+ self.binary32_to_bid32("4", "[bf800000]", "[b2800001]", "0x00")
+ self.binary32_to_bid32("4", "[bfc00000]", "[b200000f]", "0x00")
+ self.binary32_to_bid32("4", "[c2800000]", "[b2800040]", "0x00")
+ self.binary32_to_bid32("4", "[c2fff9e3]", "[b0938789]", "0x20")
+ self.binary32_to_bid32("4", "[c479c000]", "[b28003e7]", "0x00")
+ self.binary32_to_bid32("4", "[c47a0000]", "[b28003e8]", "0x00")
+ self.binary32_to_bid32("4", "[c8434ff7]", "[b21e847f]", "0x20")
+ self.binary32_to_bid32("4", "[cd3ebc1e]", "[b39e8480]", "0x20")
+ self.binary32_to_bid32("4", "[d37ff477]", "[b590c636]", "0x20")
+ self.binary32_to_bid32("4", "[d8e348a9]", "[b71e816a]", "0x20")
+ self.binary32_to_bid32("4", "[ddd35452]", "[b89d0b7e]", "0x20")
+ self.binary32_to_bid32("4", "[e3f6e3b3]", "[ee8afc85]", "0x20")
+ self.binary32_to_bid32("4", "[e958416e]", "[bc18eebd]", "0x20")
+ self.binary32_to_bid32("4", "[eee5ca5b]", "[bdb641fb]", "0x20")
+ self.binary32_to_bid32("4", "[f4700765]", "[bf741223]", "0x20")
+ self.binary32_to_bid32("4", "[f97e8434]", "[c0fe07ca]", "0x20")
+ self.binary32_to_bid32("4", "[ff7fffff]", "[c2b3ec47]", "0x20")
+ self.binary32_to_bid32("4", "[ff800000]", "[f8000000]", "0x00")
+ self.binary32_to_bid32("0", "[7f800001]", "[7c000000]", "01")
+ self.binary32_to_bid32("0", "[7f800004]", "[7c000001]", "01")
+ self.binary32_to_bid32("0", "[7f8fffff]", "[7c03ffff]", "01")
+ self.binary32_to_bid32("0", "[7fa00000]", "[7c080000]", "01")
+ self.binary32_to_bid32("0", "[7fbd08fc]", "[7c0f423f]", "01")
+ self.binary32_to_bid32("0", "[7fbd0900]", "[7c000000]", "01")
+ self.binary32_to_bid32("0", "[7fbfffff]", "[7c000000]", "01")
+ self.binary32_to_bid32("0", "[00000000]", "[32800000]", "0x00")
+ self.binary32_to_bid32("1", "[00000000]", "[32800000]", "0x00")
+ self.binary32_to_bid32("2", "[00000000]", "[32800000]", "0x00")
+ self.binary32_to_bid32("3", "[00000000]", "[32800000]", "0x00")
+ self.binary32_to_bid32("4", "[00000000]", "[32800000]", "0x00")
+ self.binary32_to_bid32("0", "[00000001]", "[191561d2]", "0x22")
+ self.binary32_to_bid32("1", "[00000001]", "[191561d2]", "0x22")
+ self.binary32_to_bid32("2", "[00000001]", "[191561d3]", "0x22")
+ self.binary32_to_bid32("3", "[00000001]", "[191561d2]", "0x22")
+ self.binary32_to_bid32("4", "[00000001]", "[191561d2]", "0x22")
+ self.binary32_to_bid32("0", "[0000000c]", "[1999a896]", "0x22")
+ self.binary32_to_bid32("1", "[0000000c]", "[1999a896]", "0x22")
+ self.binary32_to_bid32("2", "[0000000c]", "[1999a897]", "0x22")
+ self.binary32_to_bid32("3", "[0000000c]", "[1999a896]", "0x22")
+ self.binary32_to_bid32("4", "[0000000c]", "[1999a896]", "0x22")
+ self.binary32_to_bid32("0", "[00000040]", "[6668d876]", "0x22")
+ self.binary32_to_bid32("1", "[00000040]", "[6668d876]", "0x22")
+ self.binary32_to_bid32("2", "[00000040]", "[6668d877]", "0x22")
+ self.binary32_to_bid32("3", "[00000040]", "[6668d876]", "0x22")
+ self.binary32_to_bid32("4", "[00000040]", "[6668d876]", "0x22")
+ self.binary32_to_bid32("0", "[000000d6]", "[1a2dc1fb]", "0x22")
+ self.binary32_to_bid32("1", "[000000d6]", "[1a2dc1fa]", "0x22")
+ self.binary32_to_bid32("2", "[000000d6]", "[1a2dc1fb]", "0x22")
+ self.binary32_to_bid32("3", "[000000d6]", "[1a2dc1fa]", "0x22")
+ self.binary32_to_bid32("4", "[000000d6]", "[1a2dc1fb]", "0x22")
+ self.binary32_to_bid32("0", "[000001a7]", "[1a5a7245]", "0x22")
+ self.binary32_to_bid32("1", "[000001a7]", "[1a5a7244]", "0x22")
+ self.binary32_to_bid32("2", "[000001a7]", "[1a5a7245]", "0x22")
+ self.binary32_to_bid32("3", "[000001a7]", "[1a5a7244]", "0x22")
+ self.binary32_to_bid32("4", "[000001a7]", "[1a5a7245]", "0x22")
+ self.binary32_to_bid32("0", "[00001b3e]", "[66b51e6f]", "0x22")
+ self.binary32_to_bid32("1", "[00001b3e]", "[66b51e6f]", "0x22")
+ self.binary32_to_bid32("2", "[00001b3e]", "[66b51e70]", "0x22")
+ self.binary32_to_bid32("3", "[00001b3e]", "[66b51e6f]", "0x22")
+ self.binary32_to_bid32("4", "[00001b3e]", "[66b51e6f]", "0x22")
+ self.binary32_to_bid32("0", "[00010492]", "[66cea1ae]", "0x22")
+ self.binary32_to_bid32("1", "[00010492]", "[66cea1ad]", "0x22")
+ self.binary32_to_bid32("2", "[00010492]", "[66cea1ae]", "0x22")
+ self.binary32_to_bid32("3", "[00010492]", "[66cea1ad]", "0x22")
+ self.binary32_to_bid32("4", "[00010492]", "[66cea1ae]", "0x22")
+ self.binary32_to_bid32("0", "[0001f79d]", "[1b9b9120]", "0x22")
+ self.binary32_to_bid32("1", "[0001f79d]", "[1b9b9120]", "0x22")
+ self.binary32_to_bid32("2", "[0001f79d]", "[1b9b9121]", "0x22")
+ self.binary32_to_bid32("3", "[0001f79d]", "[1b9b9120]", "0x22")
+ self.binary32_to_bid32("4", "[0001f79d]", "[1b9b9120]", "0x22")
+ self.binary32_to_bid32("0", "[000d8c0a]", "[1c12fbc2]", "0x22")
+ self.binary32_to_bid32("1", "[000d8c0a]", "[1c12fbc1]", "0x22")
+ self.binary32_to_bid32("2", "[000d8c0a]", "[1c12fbc2]", "0x22")
+ self.binary32_to_bid32("3", "[000d8c0a]", "[1c12fbc1]", "0x22")
+ self.binary32_to_bid32("4", "[000d8c0a]", "[1c12fbc2]", "0x22")
+ self.binary32_to_bid32("0", "[003d1ba1]", "[1c55a165]", "0x22")
+ self.binary32_to_bid32("1", "[003d1ba1]", "[1c55a164]", "0x22")
+ self.binary32_to_bid32("2", "[003d1ba1]", "[1c55a165]", "0x22")
+ self.binary32_to_bid32("3", "[003d1ba1]", "[1c55a164]", "0x22")
+ self.binary32_to_bid32("4", "[003d1ba1]", "[1c55a165]", "0x22")
+ self.binary32_to_bid32("0", "[007fffff]", "[1c91efc6]", "0x22")
+ self.binary32_to_bid32("1", "[007fffff]", "[1c91efc6]", "0x22")
+ self.binary32_to_bid32("2", "[007fffff]", "[1c91efc7]", "0x22")
+ self.binary32_to_bid32("3", "[007fffff]", "[1c91efc6]", "0x22")
+ self.binary32_to_bid32("4", "[007fffff]", "[1c91efc6]", "0x22")
+ self.binary32_to_bid32("0", "[00800000]", "[1c91efc6]", "0x20")
+ self.binary32_to_bid32("1", "[00800000]", "[1c91efc6]", "0x20")
+ self.binary32_to_bid32("2", "[00800000]", "[1c91efc7]", "0x20")
+ self.binary32_to_bid32("3", "[00800000]", "[1c91efc6]", "0x20")
+ self.binary32_to_bid32("4", "[00800000]", "[1c91efc6]", "0x20")
+ self.binary32_to_bid32("0", "[01000000]", "[1ca3df8d]", "0x20")
+ self.binary32_to_bid32("1", "[01000000]", "[1ca3df8c]", "0x20")
+ self.binary32_to_bid32("2", "[01000000]", "[1ca3df8d]", "0x20")
+ self.binary32_to_bid32("3", "[01000000]", "[1ca3df8c]", "0x20")
+ self.binary32_to_bid32("4", "[01000000]", "[1ca3df8d]", "0x20")
+ self.binary32_to_bid32("0", "[01b273c6]", "[1ce406a4]", "0x20")
+ self.binary32_to_bid32("1", "[01b273c6]", "[1ce406a4]", "0x20")
+ self.binary32_to_bid32("2", "[01b273c6]", "[1ce406a5]", "0x20")
+ self.binary32_to_bid32("3", "[01b273c6]", "[1ce406a4]", "0x20")
+ self.binary32_to_bid32("4", "[01b273c6]", "[1ce406a4]", "0x20")
+ self.binary32_to_bid32("0", "[03f20f18]", "[1d95b567]", "0x20")
+ self.binary32_to_bid32("1", "[03f20f18]", "[1d95b566]", "0x20")
+ self.binary32_to_bid32("2", "[03f20f18]", "[1d95b567]", "0x20")
+ self.binary32_to_bid32("3", "[03f20f18]", "[1d95b566]", "0x20")
+ self.binary32_to_bid32("4", "[03f20f18]", "[1d95b567]", "0x20")
+ self.binary32_to_bid32("0", "[04ca00cb]", "[1dc8770e]", "0x20")
+ self.binary32_to_bid32("1", "[04ca00cb]", "[1dc8770e]", "0x20")
+ self.binary32_to_bid32("2", "[04ca00cb]", "[1dc8770f]", "0x20")
+ self.binary32_to_bid32("3", "[04ca00cb]", "[1dc8770e]", "0x20")
+ self.binary32_to_bid32("4", "[04ca00cb]", "[1dc8770e]", "0x20")
+ self.binary32_to_bid32("0", "[0525624c]", "[1df6a83d]", "0x20")
+ self.binary32_to_bid32("1", "[0525624c]", "[1df6a83c]", "0x20")
+ self.binary32_to_bid32("2", "[0525624c]", "[1df6a83d]", "0x20")
+ self.binary32_to_bid32("3", "[0525624c]", "[1df6a83c]", "0x20")
+ self.binary32_to_bid32("4", "[0525624c]", "[1df6a83d]", "0x20")
+ self.binary32_to_bid32("0", "[055dc5c0]", "[1e0fe951]", "0x20")
+ self.binary32_to_bid32("1", "[055dc5c0]", "[1e0fe951]", "0x20")
+ self.binary32_to_bid32("2", "[055dc5c0]", "[1e0fe952]", "0x20")
+ self.binary32_to_bid32("3", "[055dc5c0]", "[1e0fe951]", "0x20")
+ self.binary32_to_bid32("4", "[055dc5c0]", "[1e0fe951]", "0x20")
+ self.binary32_to_bid32("0", "[0807c58c]", "[1ebe57e2]", "0x20")
+ self.binary32_to_bid32("1", "[0807c58c]", "[1ebe57e2]", "0x20")
+ self.binary32_to_bid32("2", "[0807c58c]", "[1ebe57e3]", "0x20")
+ self.binary32_to_bid32("3", "[0807c58c]", "[1ebe57e2]", "0x20")
+ self.binary32_to_bid32("4", "[0807c58c]", "[1ebe57e2]", "0x20")
+ self.binary32_to_bid32("0", "[09195580]", "[1f1c29bb]", "0x20")
+ self.binary32_to_bid32("1", "[09195580]", "[1f1c29ba]", "0x20")
+ self.binary32_to_bid32("2", "[09195580]", "[1f1c29bb]", "0x20")
+ self.binary32_to_bid32("3", "[09195580]", "[1f1c29ba]", "0x20")
+ self.binary32_to_bid32("4", "[09195580]", "[1f1c29bb]", "0x20")
+ self.binary32_to_bid32("0", "[0b3da3ed]", "[1fb7baf4]", "0x20")
+ self.binary32_to_bid32("1", "[0b3da3ed]", "[1fb7baf3]", "0x20")
+ self.binary32_to_bid32("2", "[0b3da3ed]", "[1fb7baf4]", "0x20")
+ self.binary32_to_bid32("3", "[0b3da3ed]", "[1fb7baf3]", "0x20")
+ self.binary32_to_bid32("4", "[0b3da3ed]", "[1fb7baf4]", "0x20")
+ self.binary32_to_bid32("0", "[0c0bbd52]", "[20106d22]", "0x20")
+ self.binary32_to_bid32("1", "[0c0bbd52]", "[20106d22]", "0x20")
+ self.binary32_to_bid32("2", "[0c0bbd52]", "[20106d23]", "0x20")
+ self.binary32_to_bid32("3", "[0c0bbd52]", "[20106d22]", "0x20")
+ self.binary32_to_bid32("4", "[0c0bbd52]", "[20106d22]", "0x20")
+ self.binary32_to_bid32("0", "[0de567c9]", "[209592bc]", "0x20")
+ self.binary32_to_bid32("1", "[0de567c9]", "[209592bb]", "0x20")
+ self.binary32_to_bid32("2", "[0de567c9]", "[209592bc]", "0x20")
+ self.binary32_to_bid32("3", "[0de567c9]", "[209592bb]", "0x20")
+ self.binary32_to_bid32("4", "[0de567c9]", "[209592bc]", "0x20")
+ self.binary32_to_bid32("0", "[0f1fc334]", "[20f83124]", "0x20")
+ self.binary32_to_bid32("1", "[0f1fc334]", "[20f83124]", "0x20")
+ self.binary32_to_bid32("2", "[0f1fc334]", "[20f83125]", "0x20")
+ self.binary32_to_bid32("3", "[0f1fc334]", "[20f83124]", "0x20")
+ self.binary32_to_bid32("4", "[0f1fc334]", "[20f83124]", "0x20")
+ self.binary32_to_bid32("0", "[0f519a99]", "[210fc4d3]", "0x20")
+ self.binary32_to_bid32("1", "[0f519a99]", "[210fc4d2]", "0x20")
+ self.binary32_to_bid32("2", "[0f519a99]", "[210fc4d3]", "0x20")
+ self.binary32_to_bid32("3", "[0f519a99]", "[210fc4d2]", "0x20")
+ self.binary32_to_bid32("4", "[0f519a99]", "[210fc4d3]", "0x20")
+ self.binary32_to_bid32("0", "[1024b680]", "[21319105]", "0x20")
+ self.binary32_to_bid32("1", "[1024b680]", "[21319105]", "0x20")
+ self.binary32_to_bid32("2", "[1024b680]", "[21319106]", "0x20")
+ self.binary32_to_bid32("3", "[1024b680]", "[21319105]", "0x20")
+ self.binary32_to_bid32("4", "[1024b680]", "[21319105]", "0x20")
+ self.binary32_to_bid32("0", "[11273026]", "[21941fe1]", "0x20")
+ self.binary32_to_bid32("1", "[11273026]", "[21941fe1]", "0x20")
+ self.binary32_to_bid32("2", "[11273026]", "[21941fe2]", "0x20")
+ self.binary32_to_bid32("3", "[11273026]", "[21941fe1]", "0x20")
+ self.binary32_to_bid32("4", "[11273026]", "[21941fe1]", "0x20")
+ self.binary32_to_bid32("0", "[143e59d0]", "[6892a415]", "0x20")
+ self.binary32_to_bid32("1", "[143e59d0]", "[6892a415]", "0x20")
+ self.binary32_to_bid32("2", "[143e59d0]", "[6892a416]", "0x20")
+ self.binary32_to_bid32("3", "[143e59d0]", "[6892a415]", "0x20")
+ self.binary32_to_bid32("4", "[143e59d0]", "[6892a415]", "0x20")
+ self.binary32_to_bid32("0", "[147eb11a]", "[22939ee9]", "0x20")
+ self.binary32_to_bid32("1", "[147eb11a]", "[22939ee9]", "0x20")
+ self.binary32_to_bid32("2", "[147eb11a]", "[22939eea]", "0x20")
+ self.binary32_to_bid32("3", "[147eb11a]", "[22939ee9]", "0x20")
+ self.binary32_to_bid32("4", "[147eb11a]", "[22939ee9]", "0x20")
+ self.binary32_to_bid32("0", "[167eb11a]", "[231f64a8]", "0x20")
+ self.binary32_to_bid32("1", "[167eb11a]", "[231f64a8]", "0x20")
+ self.binary32_to_bid32("2", "[167eb11a]", "[231f64a9]", "0x20")
+ self.binary32_to_bid32("3", "[167eb11a]", "[231f64a8]", "0x20")
+ self.binary32_to_bid32("4", "[167eb11a]", "[231f64a8]", "0x20")
+ self.binary32_to_bid32("0", "[172a13c8]", "[2353dac5]", "0x20")
+ self.binary32_to_bid32("1", "[172a13c8]", "[2353dac4]", "0x20")
+ self.binary32_to_bid32("2", "[172a13c8]", "[2353dac5]", "0x20")
+ self.binary32_to_bid32("3", "[172a13c8]", "[2353dac4]", "0x20")
+ self.binary32_to_bid32("4", "[172a13c8]", "[2353dac5]", "0x20")
+ self.binary32_to_bid32("0", "[1955a827]", "[2410dac4]", "0x20")
+ self.binary32_to_bid32("1", "[1955a827]", "[2410dac3]", "0x20")
+ self.binary32_to_bid32("2", "[1955a827]", "[2410dac4]", "0x20")
+ self.binary32_to_bid32("3", "[1955a827]", "[2410dac3]", "0x20")
+ self.binary32_to_bid32("4", "[1955a827]", "[2410dac4]", "0x20")
+ self.binary32_to_bid32("0", "[1af4614b]", "[248f6c2c]", "0x20")
+ self.binary32_to_bid32("1", "[1af4614b]", "[248f6c2c]", "0x20")
+ self.binary32_to_bid32("2", "[1af4614b]", "[248f6c2d]", "0x20")
+ self.binary32_to_bid32("3", "[1af4614b]", "[248f6c2c]", "0x20")
+ self.binary32_to_bid32("4", "[1af4614b]", "[248f6c2c]", "0x20")
+ self.binary32_to_bid32("0", "[1b8f8e43]", "[24a43d12]", "0x20")
+ self.binary32_to_bid32("1", "[1b8f8e43]", "[24a43d11]", "0x20")
+ self.binary32_to_bid32("2", "[1b8f8e43]", "[24a43d12]", "0x20")
+ self.binary32_to_bid32("3", "[1b8f8e43]", "[24a43d11]", "0x20")
+ self.binary32_to_bid32("4", "[1b8f8e43]", "[24a43d12]", "0x20")
+ self.binary32_to_bid32("0", "[1d0f8e43]", "[251cfda8]", "0x20")
+ self.binary32_to_bid32("1", "[1d0f8e43]", "[251cfda7]", "0x20")
+ self.binary32_to_bid32("2", "[1d0f8e43]", "[251cfda8]", "0x20")
+ self.binary32_to_bid32("3", "[1d0f8e43]", "[251cfda7]", "0x20")
+ self.binary32_to_bid32("4", "[1d0f8e43]", "[251cfda8]", "0x20")
+ self.binary32_to_bid32("0", "[1d14c680]", "[251e0b82]", "0x20")
+ self.binary32_to_bid32("1", "[1d14c680]", "[251e0b81]", "0x20")
+ self.binary32_to_bid32("2", "[1d14c680]", "[251e0b82]", "0x20")
+ self.binary32_to_bid32("3", "[1d14c680]", "[251e0b81]", "0x20")
+ self.binary32_to_bid32("4", "[1d14c680]", "[251e0b82]", "0x20")
+ self.binary32_to_bid32("0", "[1f107d24]", "[25aeafd6]", "0x20")
+ self.binary32_to_bid32("1", "[1f107d24]", "[25aeafd5]", "0x20")
+ self.binary32_to_bid32("2", "[1f107d24]", "[25aeafd6]", "0x20")
+ self.binary32_to_bid32("3", "[1f107d24]", "[25aeafd5]", "0x20")
+ self.binary32_to_bid32("4", "[1f107d24]", "[25aeafd6]", "0x20")
+ self.binary32_to_bid32("0", "[20687628]", "[261e0b82]", "0x20")
+ self.binary32_to_bid32("1", "[20687628]", "[261e0b81]", "0x20")
+ self.binary32_to_bid32("2", "[20687628]", "[261e0b82]", "0x20")
+ self.binary32_to_bid32("3", "[20687628]", "[261e0b81]", "0x20")
+ self.binary32_to_bid32("4", "[20687628]", "[261e0b82]", "0x20")
+ self.binary32_to_bid32("0", "[21caec90]", "[2694fb5b]", "0x20")
+ self.binary32_to_bid32("1", "[21caec90]", "[2694fb5a]", "0x20")
+ self.binary32_to_bid32("2", "[21caec90]", "[2694fb5b]", "0x20")
+ self.binary32_to_bid32("3", "[21caec90]", "[2694fb5a]", "0x20")
+ self.binary32_to_bid32("4", "[21caec90]", "[2694fb5b]", "0x20")
+ self.binary32_to_bid32("0", "[22778cd6]", "[26b33132]", "0x20")
+ self.binary32_to_bid32("1", "[22778cd6]", "[26b33132]", "0x20")
+ self.binary32_to_bid32("2", "[22778cd6]", "[26b33133]", "0x20")
+ self.binary32_to_bid32("3", "[22778cd6]", "[26b33132]", "0x20")
+ self.binary32_to_bid32("4", "[22778cd6]", "[26b33132]", "0x20")
+ self.binary32_to_bid32("0", "[22f432b0]", "[26e4ff78]", "0x20")
+ self.binary32_to_bid32("1", "[22f432b0]", "[26e4ff77]", "0x20")
+ self.binary32_to_bid32("2", "[22f432b0]", "[26e4ff78]", "0x20")
+ self.binary32_to_bid32("3", "[22f432b0]", "[26e4ff77]", "0x20")
+ self.binary32_to_bid32("4", "[22f432b0]", "[26e4ff78]", "0x20")
+ self.binary32_to_bid32("0", "[2548c0c0]", "[279a91c6]", "0x20")
+ self.binary32_to_bid32("1", "[2548c0c0]", "[279a91c6]", "0x20")
+ self.binary32_to_bid32("2", "[2548c0c0]", "[279a91c7]", "0x20")
+ self.binary32_to_bid32("3", "[2548c0c0]", "[279a91c6]", "0x20")
+ self.binary32_to_bid32("4", "[2548c0c0]", "[279a91c6]", "0x20")
+ self.binary32_to_bid32("0", "[264505fb]", "[27e84da5]", "0x20")
+ self.binary32_to_bid32("1", "[264505fb]", "[27e84da5]", "0x20")
+ self.binary32_to_bid32("2", "[264505fb]", "[27e84da6]", "0x20")
+ self.binary32_to_bid32("3", "[264505fb]", "[27e84da5]", "0x20")
+ self.binary32_to_bid32("4", "[264505fb]", "[27e84da5]", "0x20")
+ self.binary32_to_bid32("0", "[28a00f88]", "[289b1d86]", "0x20")
+ self.binary32_to_bid32("1", "[28a00f88]", "[289b1d86]", "0x20")
+ self.binary32_to_bid32("2", "[28a00f88]", "[289b1d87]", "0x20")
+ self.binary32_to_bid32("3", "[28a00f88]", "[289b1d86]", "0x20")
+ self.binary32_to_bid32("4", "[28a00f88]", "[289b1d86]", "0x20")
+ self.binary32_to_bid32("0", "[28d34414]", "[28a3ca33]", "0x20")
+ self.binary32_to_bid32("1", "[28d34414]", "[28a3ca33]", "0x20")
+ self.binary32_to_bid32("2", "[28d34414]", "[28a3ca34]", "0x20")
+ self.binary32_to_bid32("3", "[28d34414]", "[28a3ca33]", "0x20")
+ self.binary32_to_bid32("4", "[28d34414]", "[28a3ca33]", "0x20")
+ self.binary32_to_bid32("0", "[2b7ce46f]", "[6a4917dc]", "0x20")
+ self.binary32_to_bid32("1", "[2b7ce46f]", "[6a4917db]", "0x20")
+ self.binary32_to_bid32("2", "[2b7ce46f]", "[6a4917dc]", "0x20")
+ self.binary32_to_bid32("3", "[2b7ce46f]", "[6a4917db]", "0x20")
+ self.binary32_to_bid32("4", "[2b7ce46f]", "[6a4917dc]", "0x20")
+ self.binary32_to_bid32("0", "[2c013e62]", "[299c0677]", "0x20")
+ self.binary32_to_bid32("1", "[2c013e62]", "[299c0677]", "0x20")
+ self.binary32_to_bid32("2", "[2c013e62]", "[299c0678]", "0x20")
+ self.binary32_to_bid32("3", "[2c013e62]", "[299c0677]", "0x20")
+ self.binary32_to_bid32("4", "[2c013e62]", "[299c0677]", "0x20")
+ self.binary32_to_bid32("0", "[2df23148]", "[2a2a0382]", "0x20")
+ self.binary32_to_bid32("1", "[2df23148]", "[2a2a0382]", "0x20")
+ self.binary32_to_bid32("2", "[2df23148]", "[2a2a0383]", "0x20")
+ self.binary32_to_bid32("3", "[2df23148]", "[2a2a0382]", "0x20")
+ self.binary32_to_bid32("4", "[2df23148]", "[2a2a0382]", "0x20")
+ self.binary32_to_bid32("0", "[2f2970a8]", "[2a9783b8]", "0x20")
+ self.binary32_to_bid32("1", "[2f2970a8]", "[2a9783b8]", "0x20")
+ self.binary32_to_bid32("2", "[2f2970a8]", "[2a9783b9]", "0x20")
+ self.binary32_to_bid32("3", "[2f2970a8]", "[2a9783b8]", "0x20")
+ self.binary32_to_bid32("4", "[2f2970a8]", "[2a9783b8]", "0x20")
+ self.binary32_to_bid32("0", "[2f3586a9]", "[2a993119]", "0x20")
+ self.binary32_to_bid32("1", "[2f3586a9]", "[2a993119]", "0x20")
+ self.binary32_to_bid32("2", "[2f3586a9]", "[2a99311a]", "0x20")
+ self.binary32_to_bid32("3", "[2f3586a9]", "[2a993119]", "0x20")
+ self.binary32_to_bid32("4", "[2f3586a9]", "[2a993119]", "0x20")
+ self.binary32_to_bid32("0", "[2f974080]", "[2aa9fb19]", "0x20")
+ self.binary32_to_bid32("1", "[2f974080]", "[2aa9fb18]", "0x20")
+ self.binary32_to_bid32("2", "[2f974080]", "[2aa9fb19]", "0x20")
+ self.binary32_to_bid32("3", "[2f974080]", "[2aa9fb18]", "0x20")
+ self.binary32_to_bid32("4", "[2f974080]", "[2aa9fb19]", "0x20")
+ self.binary32_to_bid32("0", "[31a29e99]", "[2b4837b3]", "0x20")
+ self.binary32_to_bid32("1", "[31a29e99]", "[2b4837b2]", "0x20")
+ self.binary32_to_bid32("2", "[31a29e99]", "[2b4837b3]", "0x20")
+ self.binary32_to_bid32("3", "[31a29e99]", "[2b4837b2]", "0x20")
+ self.binary32_to_bid32("4", "[31a29e99]", "[2b4837b3]", "0x20")
+ self.binary32_to_bid32("0", "[346984d5]", "[2c212f5e]", "0x20")
+ self.binary32_to_bid32("1", "[346984d5]", "[2c212f5d]", "0x20")
+ self.binary32_to_bid32("2", "[346984d5]", "[2c212f5e]", "0x20")
+ self.binary32_to_bid32("3", "[346984d5]", "[2c212f5d]", "0x20")
+ self.binary32_to_bid32("4", "[346984d5]", "[2c212f5e]", "0x20")
+ self.binary32_to_bid32("0", "[35fef8cb]", "[2c9cfca8]", "0x20")
+ self.binary32_to_bid32("1", "[35fef8cb]", "[2c9cfca8]", "0x20")
+ self.binary32_to_bid32("2", "[35fef8cb]", "[2c9cfca9]", "0x20")
+ self.binary32_to_bid32("3", "[35fef8cb]", "[2c9cfca8]", "0x20")
+ self.binary32_to_bid32("4", "[35fef8cb]", "[2c9cfca8]", "0x20")
+ self.binary32_to_bid32("0", "[36ee724f]", "[2cec6ed4]", "0x20")
+ self.binary32_to_bid32("1", "[36ee724f]", "[2cec6ed4]", "0x20")
+ self.binary32_to_bid32("2", "[36ee724f]", "[2cec6ed5]", "0x20")
+ self.binary32_to_bid32("3", "[36ee724f]", "[2cec6ed4]", "0x20")
+ self.binary32_to_bid32("4", "[36ee724f]", "[2cec6ed4]", "0x20")
+ self.binary32_to_bid32("0", "[36f43ed0]", "[2cef11e7]", "0x20")
+ self.binary32_to_bid32("1", "[36f43ed0]", "[2cef11e6]", "0x20")
+ self.binary32_to_bid32("2", "[36f43ed0]", "[2cef11e7]", "0x20")
+ self.binary32_to_bid32("3", "[36f43ed0]", "[2cef11e6]", "0x20")
+ self.binary32_to_bid32("4", "[36f43ed0]", "[2cef11e7]", "0x20")
+ self.binary32_to_bid32("0", "[393a71b4]", "[2d9b2196]", "0x20")
+ self.binary32_to_bid32("1", "[393a71b4]", "[2d9b2196]", "0x20")
+ self.binary32_to_bid32("2", "[393a71b4]", "[2d9b2197]", "0x20")
+ self.binary32_to_bid32("3", "[393a71b4]", "[2d9b2196]", "0x20")
+ self.binary32_to_bid32("4", "[393a71b4]", "[2d9b2196]", "0x20")
+ self.binary32_to_bid32("0", "[3acf05b8]", "[2e1819bf]", "0x20")
+ self.binary32_to_bid32("1", "[3acf05b8]", "[2e1819bf]", "0x20")
+ self.binary32_to_bid32("2", "[3acf05b8]", "[2e1819c0]", "0x20")
+ self.binary32_to_bid32("3", "[3acf05b8]", "[2e1819bf]", "0x20")
+ self.binary32_to_bid32("4", "[3acf05b8]", "[2e1819bf]", "0x20")
+ self.binary32_to_bid32("0", "[3ad16393]", "[2e186047]", "0x20")
+ self.binary32_to_bid32("1", "[3ad16393]", "[2e186046]", "0x20")
+ self.binary32_to_bid32("2", "[3ad16393]", "[2e186047]", "0x20")
+ self.binary32_to_bid32("3", "[3ad16393]", "[2e186046]", "0x20")
+ self.binary32_to_bid32("4", "[3ad16393]", "[2e186047]", "0x20")
+ self.binary32_to_bid32("0", "[3c963930]", "[2e9bfb36]", "0x20")
+ self.binary32_to_bid32("1", "[3c963930]", "[2e9bfb35]", "0x20")
+ self.binary32_to_bid32("2", "[3c963930]", "[2e9bfb36]", "0x20")
+ self.binary32_to_bid32("3", "[3c963930]", "[2e9bfb35]", "0x20")
+ self.binary32_to_bid32("4", "[3c963930]", "[2e9bfb36]", "0x20")
+ self.binary32_to_bid32("0", "[3d500000]", "[2ecd7c6d]", "0x00")
+ self.binary32_to_bid32("1", "[3d500000]", "[2ecd7c6d]", "0x00")
+ self.binary32_to_bid32("2", "[3d500000]", "[2ecd7c6d]", "0x00")
+ self.binary32_to_bid32("3", "[3d500000]", "[2ecd7c6d]", "0x00")
+ self.binary32_to_bid32("4", "[3d500000]", "[2ecd7c6d]", "0x00")
+ self.binary32_to_bid32("0", "[3d76f1df]", "[2edbfe7e]", "0x20")
+ self.binary32_to_bid32("1", "[3d76f1df]", "[2edbfe7d]", "0x20")
+ self.binary32_to_bid32("2", "[3d76f1df]", "[2edbfe7e]", "0x20")
+ self.binary32_to_bid32("3", "[3d76f1df]", "[2edbfe7d]", "0x20")
+ self.binary32_to_bid32("4", "[3d76f1df]", "[2edbfe7e]", "0x20")
+ self.binary32_to_bid32("0", "[3f800000]", "[32800001]", "0x00")
+ self.binary32_to_bid32("1", "[3f800000]", "[32800001]", "0x00")
+ self.binary32_to_bid32("2", "[3f800000]", "[32800001]", "0x00")
+ self.binary32_to_bid32("3", "[3f800000]", "[32800001]", "0x00")
+ self.binary32_to_bid32("4", "[3f800000]", "[32800001]", "0x00")
+ self.binary32_to_bid32("0", "[3fc00000]", "[3200000f]", "0x00")
+ self.binary32_to_bid32("1", "[3fc00000]", "[3200000f]", "0x00")
+ self.binary32_to_bid32("2", "[3fc00000]", "[3200000f]", "0x00")
+ self.binary32_to_bid32("3", "[3fc00000]", "[3200000f]", "0x00")
+ self.binary32_to_bid32("4", "[3fc00000]", "[3200000f]", "0x00")
+ self.binary32_to_bid32("0", "[3fff9ec7]", "[2f9e78e9]", "0x20")
+ self.binary32_to_bid32("1", "[3fff9ec7]", "[2f9e78e8]", "0x20")
+ self.binary32_to_bid32("2", "[3fff9ec7]", "[2f9e78e9]", "0x20")
+ self.binary32_to_bid32("3", "[3fff9ec7]", "[2f9e78e8]", "0x20")
+ self.binary32_to_bid32("4", "[3fff9ec7]", "[2f9e78e9]", "0x20")
+ self.binary32_to_bid32("0", "[417fdec7]", "[301866d5]", "0x20")
+ self.binary32_to_bid32("1", "[417fdec7]", "[301866d4]", "0x20")
+ self.binary32_to_bid32("2", "[417fdec7]", "[301866d5]", "0x20")
+ self.binary32_to_bid32("3", "[417fdec7]", "[301866d4]", "0x20")
+ self.binary32_to_bid32("4", "[417fdec7]", "[301866d5]", "0x20")
+ self.binary32_to_bid32("0", "[427fc16f]", "[30619022]", "0x20")
+ self.binary32_to_bid32("1", "[427fc16f]", "[30619021]", "0x20")
+ self.binary32_to_bid32("2", "[427fc16f]", "[30619022]", "0x20")
+ self.binary32_to_bid32("3", "[427fc16f]", "[30619021]", "0x20")
+ self.binary32_to_bid32("4", "[427fc16f]", "[30619022]", "0x20")
+ self.binary32_to_bid32("0", "[42800000]", "[32800040]", "0x00")
+ self.binary32_to_bid32("1", "[42800000]", "[32800040]", "0x00")
+ self.binary32_to_bid32("2", "[42800000]", "[32800040]", "0x00")
+ self.binary32_to_bid32("3", "[42800000]", "[32800040]", "0x00")
+ self.binary32_to_bid32("4", "[42800000]", "[32800040]", "0x00")
+ self.binary32_to_bid32("0", "[4347fbc6]", "[309e83db]", "0x20")
+ self.binary32_to_bid32("1", "[4347fbc6]", "[309e83da]", "0x20")
+ self.binary32_to_bid32("2", "[4347fbc6]", "[309e83db]", "0x20")
+ self.binary32_to_bid32("3", "[4347fbc6]", "[309e83da]", "0x20")
+ self.binary32_to_bid32("4", "[4347fbc6]", "[309e83db]", "0x20")
+ self.binary32_to_bid32("0", "[4479c000]", "[328003e7]", "0x00")
+ self.binary32_to_bid32("1", "[4479c000]", "[328003e7]", "0x00")
+ self.binary32_to_bid32("2", "[4479c000]", "[328003e7]", "0x00")
+ self.binary32_to_bid32("3", "[4479c000]", "[328003e7]", "0x00")
+ self.binary32_to_bid32("4", "[4479c000]", "[328003e7]", "0x00")
+ self.binary32_to_bid32("0", "[447a0000]", "[328003e8]", "0x00")
+ self.binary32_to_bid32("1", "[447a0000]", "[328003e8]", "0x00")
+ self.binary32_to_bid32("2", "[447a0000]", "[328003e8]", "0x00")
+ self.binary32_to_bid32("3", "[447a0000]", "[328003e8]", "0x00")
+ self.binary32_to_bid32("4", "[447a0000]", "[328003e8]", "0x00")
+ self.binary32_to_bid32("0", "[44fffbd7]", "[311f3f7e]", "0x20")
+ self.binary32_to_bid32("1", "[44fffbd7]", "[311f3f7d]", "0x20")
+ self.binary32_to_bid32("2", "[44fffbd7]", "[311f3f7e]", "0x20")
+ self.binary32_to_bid32("3", "[44fffbd7]", "[311f3f7d]", "0x20")
+ self.binary32_to_bid32("4", "[44fffbd7]", "[311f3f7e]", "0x20")
+ self.binary32_to_bid32("0", "[467fffd7]", "[3198fffc]", "0x20")
+ self.binary32_to_bid32("1", "[467fffd7]", "[3198fffb]", "0x20")
+ self.binary32_to_bid32("2", "[467fffd7]", "[3198fffc]", "0x20")
+ self.binary32_to_bid32("3", "[467fffd7]", "[3198fffb]", "0x20")
+ self.binary32_to_bid32("4", "[467fffd7]", "[3198fffc]", "0x20")
+ self.binary32_to_bid32("0", "[469c3fec]", "[319e847c]", "0x20")
+ self.binary32_to_bid32("1", "[469c3fec]", "[319e847c]", "0x20")
+ self.binary32_to_bid32("2", "[469c3fec]", "[319e847d]", "0x20")
+ self.binary32_to_bid32("3", "[469c3fec]", "[319e847c]", "0x20")
+ self.binary32_to_bid32("4", "[469c3fec]", "[319e847c]", "0x20")
+ self.binary32_to_bid32("0", "[48434ff0]", "[321e847e]", "0x20")
+ self.binary32_to_bid32("1", "[48434ff0]", "[321e847d]", "0x20")
+ self.binary32_to_bid32("2", "[48434ff0]", "[321e847e]", "0x20")
+ self.binary32_to_bid32("3", "[48434ff0]", "[321e847d]", "0x20")
+ self.binary32_to_bid32("4", "[48434ff0]", "[321e847e]", "0x20")
+ self.binary32_to_bid32("0", "[48fffff3]", "[324ffffc]", "0x20")
+ self.binary32_to_bid32("1", "[48fffff3]", "[324ffffb]", "0x20")
+ self.binary32_to_bid32("2", "[48fffff3]", "[324ffffc]", "0x20")
+ self.binary32_to_bid32("3", "[48fffff3]", "[324ffffb]", "0x20")
+ self.binary32_to_bid32("4", "[48fffff3]", "[324ffffc]", "0x20")
+ self.binary32_to_bid32("0", "[4b7fffef]", "[33199998]", "0x20")
+ self.binary32_to_bid32("1", "[4b7fffef]", "[33199997]", "0x20")
+ self.binary32_to_bid32("2", "[4b7fffef]", "[33199998]", "0x20")
+ self.binary32_to_bid32("3", "[4b7fffef]", "[33199997]", "0x20")
+ self.binary32_to_bid32("4", "[4b7fffef]", "[33199998]", "0x20")
+ self.binary32_to_bid32("0", "[4d000000]", "[33947ae1]", "0x20")
+ self.binary32_to_bid32("1", "[4d000000]", "[33947ae1]", "0x20")
+ self.binary32_to_bid32("2", "[4d000000]", "[33947ae2]", "0x20")
+ self.binary32_to_bid32("3", "[4d000000]", "[33947ae1]", "0x20")
+ self.binary32_to_bid32("4", "[4d000000]", "[33947ae1]", "0x20")
+ self.binary32_to_bid32("0", "[4dffffc4]", "[33d1eb72]", "0x20")
+ self.binary32_to_bid32("1", "[4dffffc4]", "[33d1eb71]", "0x20")
+ self.binary32_to_bid32("2", "[4dffffc4]", "[33d1eb72]", "0x20")
+ self.binary32_to_bid32("3", "[4dffffc4]", "[33d1eb71]", "0x20")
+ self.binary32_to_bid32("4", "[4dffffc4]", "[33d1eb72]", "0x20")
+ self.binary32_to_bid32("0", "[4eee6a80]", "[341e846a]", "0x20")
+ self.binary32_to_bid32("1", "[4eee6a80]", "[341e846a]", "0x20")
+ self.binary32_to_bid32("2", "[4eee6a80]", "[341e846b]", "0x20")
+ self.binary32_to_bid32("3", "[4eee6a80]", "[341e846a]", "0x20")
+ self.binary32_to_bid32("4", "[4eee6a80]", "[341e846a]", "0x20")
+ self.binary32_to_bid32("0", "[4eee6b16]", "[341e847e]", "0x20")
+ self.binary32_to_bid32("1", "[4eee6b16]", "[341e847d]", "0x20")
+ self.binary32_to_bid32("2", "[4eee6b16]", "[341e847e]", "0x20")
+ self.binary32_to_bid32("3", "[4eee6b16]", "[341e847d]", "0x20")
+ self.binary32_to_bid32("4", "[4eee6b16]", "[341e847e]", "0x20")
+ self.binary32_to_bid32("0", "[51fff8ba]", "[3514f81d]", "0x20")
+ self.binary32_to_bid32("1", "[51fff8ba]", "[3514f81c]", "0x20")
+ self.binary32_to_bid32("2", "[51fff8ba]", "[3514f81d]", "0x20")
+ self.binary32_to_bid32("3", "[51fff8ba]", "[3514f81c]", "0x20")
+ self.binary32_to_bid32("4", "[51fff8ba]", "[3514f81d]", "0x20")
+ self.binary32_to_bid32("0", "[523a3ae8]", "[351e830e]", "0x20")
+ self.binary32_to_bid32("1", "[523a3ae8]", "[351e830e]", "0x20")
+ self.binary32_to_bid32("2", "[523a3ae8]", "[351e830f]", "0x20")
+ self.binary32_to_bid32("3", "[523a3ae8]", "[351e830e]", "0x20")
+ self.binary32_to_bid32("4", "[523a3ae8]", "[351e830e]", "0x20")
+ self.binary32_to_bid32("0", "[547fd763]", "[35c31139]", "0x20")
+ self.binary32_to_bid32("1", "[547fd763]", "[35c31138]", "0x20")
+ self.binary32_to_bid32("2", "[547fd763]", "[35c31139]", "0x20")
+ self.binary32_to_bid32("3", "[547fd763]", "[35c31138]", "0x20")
+ self.binary32_to_bid32("4", "[547fd763]", "[35c31139]", "0x20")
+ self.binary32_to_bid32("0", "[559160c5]", "[361e7cec]", "0x20")
+ self.binary32_to_bid32("1", "[559160c5]", "[361e7cec]", "0x20")
+ self.binary32_to_bid32("2", "[559160c5]", "[361e7ced]", "0x20")
+ self.binary32_to_bid32("3", "[559160c5]", "[361e7cec]", "0x20")
+ self.binary32_to_bid32("4", "[559160c5]", "[361e7cec]", "0x20")
+ self.binary32_to_bid32("0", "[56fba7c6]", "[36951c42]", "0x20")
+ self.binary32_to_bid32("1", "[56fba7c6]", "[36951c41]", "0x20")
+ self.binary32_to_bid32("2", "[56fba7c6]", "[36951c42]", "0x20")
+ self.binary32_to_bid32("3", "[56fba7c6]", "[36951c41]", "0x20")
+ self.binary32_to_bid32("4", "[56fba7c6]", "[36951c42]", "0x20")
+ self.binary32_to_bid32("0", "[587be970]", "[3710e7d0]", "0x20")
+ self.binary32_to_bid32("1", "[587be970]", "[3710e7d0]", "0x20")
+ self.binary32_to_bid32("2", "[587be970]", "[3710e7d1]", "0x20")
+ self.binary32_to_bid32("3", "[587be970]", "[3710e7d0]", "0x20")
+ self.binary32_to_bid32("4", "[587be970]", "[3710e7d0]", "0x20")
+ self.binary32_to_bid32("0", "[596411ec]", "[373d38da]", "0x20")
+ self.binary32_to_bid32("1", "[596411ec]", "[373d38d9]", "0x20")
+ self.binary32_to_bid32("2", "[596411ec]", "[373d38da]", "0x20")
+ self.binary32_to_bid32("3", "[596411ec]", "[373d38d9]", "0x20")
+ self.binary32_to_bid32("4", "[596411ec]", "[373d38da]", "0x20")
+ self.binary32_to_bid32("0", "[5a81e4d0]", "[379be4fd]", "0x20")
+ self.binary32_to_bid32("1", "[5a81e4d0]", "[379be4fc]", "0x20")
+ self.binary32_to_bid32("2", "[5a81e4d0]", "[379be4fd]", "0x20")
+ self.binary32_to_bid32("3", "[5a81e4d0]", "[379be4fc]", "0x20")
+ self.binary32_to_bid32("4", "[5a81e4d0]", "[379be4fd]", "0x20")
+ self.binary32_to_bid32("0", "[5afc06b3]", "[37b61f49]", "0x20")
+ self.binary32_to_bid32("1", "[5afc06b3]", "[37b61f48]", "0x20")
+ self.binary32_to_bid32("2", "[5afc06b3]", "[37b61f49]", "0x20")
+ self.binary32_to_bid32("3", "[5afc06b3]", "[37b61f48]", "0x20")
+ self.binary32_to_bid32("4", "[5afc06b3]", "[37b61f49]", "0x20")
+ self.binary32_to_bid32("0", "[5d5e23ce]", "[388f43ed]", "0x20")
+ self.binary32_to_bid32("1", "[5d5e23ce]", "[388f43ed]", "0x20")
+ self.binary32_to_bid32("2", "[5d5e23ce]", "[388f43ee]", "0x20")
+ self.binary32_to_bid32("3", "[5d5e23ce]", "[388f43ed]", "0x20")
+ self.binary32_to_bid32("4", "[5d5e23ce]", "[388f43ed]", "0x20")
+ self.binary32_to_bid32("0", "[5dd8bc10]", "[389dc9ac]", "0x20")
+ self.binary32_to_bid32("1", "[5dd8bc10]", "[389dc9ab]", "0x20")
+ self.binary32_to_bid32("2", "[5dd8bc10]", "[389dc9ac]", "0x20")
+ self.binary32_to_bid32("3", "[5dd8bc10]", "[389dc9ab]", "0x20")
+ self.binary32_to_bid32("4", "[5dd8bc10]", "[389dc9ac]", "0x20")
+ self.binary32_to_bid32("0", "[5ff7da94]", "[393680ee]", "0x20")
+ self.binary32_to_bid32("1", "[5ff7da94]", "[393680ee]", "0x20")
+ self.binary32_to_bid32("2", "[5ff7da94]", "[393680ef]", "0x20")
+ self.binary32_to_bid32("3", "[5ff7da94]", "[393680ee]", "0x20")
+ self.binary32_to_bid32("4", "[5ff7da94]", "[393680ee]", "0x20")
+ self.binary32_to_bid32("0", "[611d211b]", "[399ba47a]", "0x20")
+ self.binary32_to_bid32("1", "[611d211b]", "[399ba479]", "0x20")
+ self.binary32_to_bid32("2", "[611d211b]", "[399ba47a]", "0x20")
+ self.binary32_to_bid32("3", "[611d211b]", "[399ba479]", "0x20")
+ self.binary32_to_bid32("4", "[611d211b]", "[399ba47a]", "0x20")
+ self.binary32_to_bid32("0", "[6227ec64]", "[39f62a64]", "0x20")
+ self.binary32_to_bid32("1", "[6227ec64]", "[39f62a64]", "0x20")
+ self.binary32_to_bid32("2", "[6227ec64]", "[39f62a65]", "0x20")
+ self.binary32_to_bid32("3", "[6227ec64]", "[39f62a64]", "0x20")
+ self.binary32_to_bid32("4", "[6227ec64]", "[39f62a64]", "0x20")
+ self.binary32_to_bid32("0", "[622beb80]", "[39f8fa57]", "0x20")
+ self.binary32_to_bid32("1", "[622beb80]", "[39f8fa57]", "0x20")
+ self.binary32_to_bid32("2", "[622beb80]", "[39f8fa58]", "0x20")
+ self.binary32_to_bid32("3", "[622beb80]", "[39f8fa57]", "0x20")
+ self.binary32_to_bid32("4", "[622beb80]", "[39f8fa57]", "0x20")
+ self.binary32_to_bid32("0", "[63f6e3b3]", "[6e8afc85]", "0x20")
+ self.binary32_to_bid32("1", "[63f6e3b3]", "[6e8afc84]", "0x20")
+ self.binary32_to_bid32("2", "[63f6e3b3]", "[6e8afc85]", "0x20")
+ self.binary32_to_bid32("3", "[63f6e3b3]", "[6e8afc84]", "0x20")
+ self.binary32_to_bid32("4", "[63f6e3b3]", "[6e8afc85]", "0x20")
+ self.binary32_to_bid32("0", "[65eb2534]", "[3b152e15]", "0x20")
+ self.binary32_to_bid32("1", "[65eb2534]", "[3b152e14]", "0x20")
+ self.binary32_to_bid32("2", "[65eb2534]", "[3b152e15]", "0x20")
+ self.binary32_to_bid32("3", "[65eb2534]", "[3b152e14]", "0x20")
+ self.binary32_to_bid32("4", "[65eb2534]", "[3b152e15]", "0x20")
+ self.binary32_to_bid32("0", "[66171e30]", "[3b1b3916]", "0x20")
+ self.binary32_to_bid32("1", "[66171e30]", "[3b1b3915]", "0x20")
+ self.binary32_to_bid32("2", "[66171e30]", "[3b1b3916]", "0x20")
+ self.binary32_to_bid32("3", "[66171e30]", "[3b1b3915]", "0x20")
+ self.binary32_to_bid32("4", "[66171e30]", "[3b1b3916]", "0x20")
+ self.binary32_to_bid32("0", "[68ac1ff1]", "[3be33922]", "0x20")
+ self.binary32_to_bid32("1", "[68ac1ff1]", "[3be33922]", "0x20")
+ self.binary32_to_bid32("2", "[68ac1ff1]", "[3be33923]", "0x20")
+ self.binary32_to_bid32("3", "[68ac1ff1]", "[3be33922]", "0x20")
+ self.binary32_to_bid32("4", "[68ac1ff1]", "[3be33922]", "0x20")
+ self.binary32_to_bid32("0", "[6979cd04]", "[3c1cccd2]", "0x20")
+ self.binary32_to_bid32("1", "[6979cd04]", "[3c1cccd1]", "0x20")
+ self.binary32_to_bid32("2", "[6979cd04]", "[3c1cccd2]", "0x20")
+ self.binary32_to_bid32("3", "[6979cd04]", "[3c1cccd1]", "0x20")
+ self.binary32_to_bid32("4", "[6979cd04]", "[3c1cccd2]", "0x20")
+ self.binary32_to_bid32("0", "[6b1ffe11]", "[3c9d836e]", "0x20")
+ self.binary32_to_bid32("1", "[6b1ffe11]", "[3c9d836e]", "0x20")
+ self.binary32_to_bid32("2", "[6b1ffe11]", "[3c9d836f]", "0x20")
+ self.binary32_to_bid32("3", "[6b1ffe11]", "[3c9d836e]", "0x20")
+ self.binary32_to_bid32("4", "[6b1ffe11]", "[3c9d836e]", "0x20")
+ self.binary32_to_bid32("0", "[6c0793a0]", "[3ce409b5]", "0x20")
+ self.binary32_to_bid32("1", "[6c0793a0]", "[3ce409b5]", "0x20")
+ self.binary32_to_bid32("2", "[6c0793a0]", "[3ce409b6]", "0x20")
+ self.binary32_to_bid32("3", "[6c0793a0]", "[3ce409b5]", "0x20")
+ self.binary32_to_bid32("4", "[6c0793a0]", "[3ce409b5]", "0x20")
+ self.binary32_to_bid32("0", "[6caf2869]", "[3d19d947]", "0x20")
+ self.binary32_to_bid32("1", "[6caf2869]", "[3d19d946]", "0x20")
+ self.binary32_to_bid32("2", "[6caf2869]", "[3d19d947]", "0x20")
+ self.binary32_to_bid32("3", "[6caf2869]", "[3d19d946]", "0x20")
+ self.binary32_to_bid32("4", "[6caf2869]", "[3d19d947]", "0x20")
+ self.binary32_to_bid32("0", "[6e0793a0]", "[3d90018e]", "0x20")
+ self.binary32_to_bid32("1", "[6e0793a0]", "[3d90018d]", "0x20")
+ self.binary32_to_bid32("2", "[6e0793a0]", "[3d90018e]", "0x20")
+ self.binary32_to_bid32("3", "[6e0793a0]", "[3d90018d]", "0x20")
+ self.binary32_to_bid32("4", "[6e0793a0]", "[3d90018e]", "0x20")
+ self.binary32_to_bid32("0", "[6f65ca5b]", "[3dec83f6]", "0x20")
+ self.binary32_to_bid32("1", "[6f65ca5b]", "[3dec83f6]", "0x20")
+ self.binary32_to_bid32("2", "[6f65ca5b]", "[3dec83f7]", "0x20")
+ self.binary32_to_bid32("3", "[6f65ca5b]", "[3dec83f6]", "0x20")
+ self.binary32_to_bid32("4", "[6f65ca5b]", "[3dec83f6]", "0x20")
+ self.binary32_to_bid32("0", "[7127dad8]", "[3e7ed3da]", "0x20")
+ self.binary32_to_bid32("1", "[7127dad8]", "[3e7ed3da]", "0x20")
+ self.binary32_to_bid32("2", "[7127dad8]", "[3e7ed3db]", "0x20")
+ self.binary32_to_bid32("3", "[7127dad8]", "[3e7ed3da]", "0x20")
+ self.binary32_to_bid32("4", "[7127dad8]", "[3e7ed3da]", "0x20")
+ self.binary32_to_bid32("0", "[71a7dad8]", "[3e995d92]", "0x20")
+ self.binary32_to_bid32("1", "[71a7dad8]", "[3e995d92]", "0x20")
+ self.binary32_to_bid32("2", "[71a7dad8]", "[3e995d93]", "0x20")
+ self.binary32_to_bid32("3", "[71a7dad8]", "[3e995d92]", "0x20")
+ self.binary32_to_bid32("4", "[71a7dad8]", "[3e995d92]", "0x20")
+ self.binary32_to_bid32("0", "[7461c023]", "[3f6d2a90]", "0x20")
+ self.binary32_to_bid32("1", "[7461c023]", "[3f6d2a8f]", "0x20")
+ self.binary32_to_bid32("2", "[7461c023]", "[3f6d2a90]", "0x20")
+ self.binary32_to_bid32("3", "[7461c023]", "[3f6d2a8f]", "0x20")
+ self.binary32_to_bid32("4", "[7461c023]", "[3f6d2a90]", "0x20")
+ self.binary32_to_bid32("0", "[7519cb5a]", "[3f9dbf87]", "0x20")
+ self.binary32_to_bid32("1", "[7519cb5a]", "[3f9dbf86]", "0x20")
+ self.binary32_to_bid32("2", "[7519cb5a]", "[3f9dbf87]", "0x20")
+ self.binary32_to_bid32("3", "[7519cb5a]", "[3f9dbf86]", "0x20")
+ self.binary32_to_bid32("4", "[7519cb5a]", "[3f9dbf87]", "0x20")
+ self.binary32_to_bid32("0", "[76a66b49]", "[4019c08a]", "0x20")
+ self.binary32_to_bid32("1", "[76a66b49]", "[4019c08a]", "0x20")
+ self.binary32_to_bid32("2", "[76a66b49]", "[4019c08b]", "0x20")
+ self.binary32_to_bid32("3", "[76a66b49]", "[4019c08a]", "0x20")
+ self.binary32_to_bid32("4", "[76a66b49]", "[4019c08a]", "0x20")
+ self.binary32_to_bid32("0", "[77e7ed40]", "[700f8e43]", "0x20")
+ self.binary32_to_bid32("1", "[77e7ed40]", "[700f8e43]", "0x20")
+ self.binary32_to_bid32("2", "[77e7ed40]", "[700f8e44]", "0x20")
+ self.binary32_to_bid32("3", "[77e7ed40]", "[700f8e43]", "0x20")
+ self.binary32_to_bid32("4", "[77e7ed40]", "[700f8e43]", "0x20")
+ self.binary32_to_bid32("0", "[78509555]", "[4099d245]", "0x20")
+ self.binary32_to_bid32("1", "[78509555]", "[4099d245]", "0x20")
+ self.binary32_to_bid32("2", "[78509555]", "[4099d246]", "0x20")
+ self.binary32_to_bid32("3", "[78509555]", "[4099d245]", "0x20")
+ self.binary32_to_bid32("4", "[78509555]", "[4099d245]", "0x20")
+ self.binary32_to_bid32("0", "[79d7bd00]", "[41155d9e]", "0x20")
+ self.binary32_to_bid32("1", "[79d7bd00]", "[41155d9d]", "0x20")
+ self.binary32_to_bid32("2", "[79d7bd00]", "[41155d9e]", "0x20")
+ self.binary32_to_bid32("3", "[79d7bd00]", "[41155d9d]", "0x20")
+ self.binary32_to_bid32("4", "[79d7bd00]", "[41155d9e]", "0x20")
+ self.binary32_to_bid32("0", "[79fe8434]", "[411934c2]", "0x20")
+ self.binary32_to_bid32("1", "[79fe8434]", "[411934c1]", "0x20")
+ self.binary32_to_bid32("2", "[79fe8434]", "[411934c2]", "0x20")
+ self.binary32_to_bid32("3", "[79fe8434]", "[411934c1]", "0x20")
+ self.binary32_to_bid32("4", "[79fe8434]", "[411934c2]", "0x20")
+ self.binary32_to_bid32("0", "[7d27b58a]", "[42154279]", "0x20")
+ self.binary32_to_bid32("1", "[7d27b58a]", "[42154279]", "0x20")
+ self.binary32_to_bid32("2", "[7d27b58a]", "[4215427a]", "0x20")
+ self.binary32_to_bid32("3", "[7d27b58a]", "[42154279]", "0x20")
+ self.binary32_to_bid32("4", "[7d27b58a]", "[42154279]", "0x20")
+ self.binary32_to_bid32("0", "[7e27b58a]", "[425509e4]", "0x20")
+ self.binary32_to_bid32("1", "[7e27b58a]", "[425509e4]", "0x20")
+ self.binary32_to_bid32("2", "[7e27b58a]", "[425509e5]", "0x20")
+ self.binary32_to_bid32("3", "[7e27b58a]", "[425509e4]", "0x20")
+ self.binary32_to_bid32("4", "[7e27b58a]", "[425509e4]", "0x20")
+ self.binary32_to_bid32("0", "[7f7fffff]", "[42b3ec47]", "0x20")
+ self.binary32_to_bid32("1", "[7f7fffff]", "[42b3ec47]", "0x20")
+ self.binary32_to_bid32("2", "[7f7fffff]", "[42b3ec48]", "0x20")
+ self.binary32_to_bid32("3", "[7f7fffff]", "[42b3ec47]", "0x20")
+ self.binary32_to_bid32("4", "[7f7fffff]", "[42b3ec47]", "0x20")
+ self.binary32_to_bid32("0", "[7f800000]", "[78000000]", "0x00")
+ self.binary32_to_bid32("1", "[7f800000]", "[78000000]", "0x00")
+ self.binary32_to_bid32("2", "[7f800000]", "[78000000]", "0x00")
+ self.binary32_to_bid32("3", "[7f800000]", "[78000000]", "0x00")
+ self.binary32_to_bid32("4", "[7f800000]", "[78000000]", "0x00")
+ self.binary32_to_bid32("0", "[7fb08000]", "[7c0c2000]", "0x01")
+ self.binary32_to_bid32("0", "[7ff08000]", "[7c0c2000]", "0x00")
+ self.binary32_to_bid32("0", "[80000001]", "[991561d2]", "0x22")
+ self.binary32_to_bid32("1", "[80000001]", "[991561d3]", "0x22")
+ self.binary32_to_bid32("2", "[80000001]", "[991561d2]", "0x22")
+ self.binary32_to_bid32("3", "[80000001]", "[991561d2]", "0x22")
+ self.binary32_to_bid32("4", "[80000001]", "[991561d2]", "0x22")
+ self.binary32_to_bid32("0", "[8000000c]", "[9999a896]", "0x22")
+ self.binary32_to_bid32("1", "[8000000c]", "[9999a897]", "0x22")
+ self.binary32_to_bid32("2", "[8000000c]", "[9999a896]", "0x22")
+ self.binary32_to_bid32("3", "[8000000c]", "[9999a896]", "0x22")
+ self.binary32_to_bid32("4", "[8000000c]", "[9999a896]", "0x22")
+ self.binary32_to_bid32("0", "[80000040]", "[e668d876]", "0x22")
+ self.binary32_to_bid32("1", "[80000040]", "[e668d877]", "0x22")
+ self.binary32_to_bid32("2", "[80000040]", "[e668d876]", "0x22")
+ self.binary32_to_bid32("3", "[80000040]", "[e668d876]", "0x22")
+ self.binary32_to_bid32("4", "[80000040]", "[e668d876]", "0x22")
+ self.binary32_to_bid32("0", "[800000d6]", "[9a2dc1fb]", "0x22")
+ self.binary32_to_bid32("1", "[800000d6]", "[9a2dc1fb]", "0x22")
+ self.binary32_to_bid32("2", "[800000d6]", "[9a2dc1fa]", "0x22")
+ self.binary32_to_bid32("3", "[800000d6]", "[9a2dc1fa]", "0x22")
+ self.binary32_to_bid32("4", "[800000d6]", "[9a2dc1fb]", "0x22")
+ self.binary32_to_bid32("0", "[800001a7]", "[9a5a7245]", "0x22")
+ self.binary32_to_bid32("1", "[800001a7]", "[9a5a7245]", "0x22")
+ self.binary32_to_bid32("2", "[800001a7]", "[9a5a7244]", "0x22")
+ self.binary32_to_bid32("3", "[800001a7]", "[9a5a7244]", "0x22")
+ self.binary32_to_bid32("4", "[800001a7]", "[9a5a7245]", "0x22")
+ self.binary32_to_bid32("0", "[80001b3e]", "[e6b51e6f]", "0x22")
+ self.binary32_to_bid32("1", "[80001b3e]", "[e6b51e70]", "0x22")
+ self.binary32_to_bid32("2", "[80001b3e]", "[e6b51e6f]", "0x22")
+ self.binary32_to_bid32("3", "[80001b3e]", "[e6b51e6f]", "0x22")
+ self.binary32_to_bid32("4", "[80001b3e]", "[e6b51e6f]", "0x22")
+ self.binary32_to_bid32("0", "[80010492]", "[e6cea1ae]", "0x22")
+ self.binary32_to_bid32("1", "[80010492]", "[e6cea1ae]", "0x22")
+ self.binary32_to_bid32("2", "[80010492]", "[e6cea1ad]", "0x22")
+ self.binary32_to_bid32("3", "[80010492]", "[e6cea1ad]", "0x22")
+ self.binary32_to_bid32("4", "[80010492]", "[e6cea1ae]", "0x22")
+ self.binary32_to_bid32("0", "[8001f79d]", "[9b9b9120]", "0x22")
+ self.binary32_to_bid32("1", "[8001f79d]", "[9b9b9121]", "0x22")
+ self.binary32_to_bid32("2", "[8001f79d]", "[9b9b9120]", "0x22")
+ self.binary32_to_bid32("3", "[8001f79d]", "[9b9b9120]", "0x22")
+ self.binary32_to_bid32("4", "[8001f79d]", "[9b9b9120]", "0x22")
+ self.binary32_to_bid32("0", "[800d8c0a]", "[9c12fbc2]", "0x22")
+ self.binary32_to_bid32("1", "[800d8c0a]", "[9c12fbc2]", "0x22")
+ self.binary32_to_bid32("2", "[800d8c0a]", "[9c12fbc1]", "0x22")
+ self.binary32_to_bid32("3", "[800d8c0a]", "[9c12fbc1]", "0x22")
+ self.binary32_to_bid32("4", "[800d8c0a]", "[9c12fbc2]", "0x22")
+ self.binary32_to_bid32("0", "[803d1ba1]", "[9c55a165]", "0x22")
+ self.binary32_to_bid32("1", "[803d1ba1]", "[9c55a165]", "0x22")
+ self.binary32_to_bid32("2", "[803d1ba1]", "[9c55a164]", "0x22")
+ self.binary32_to_bid32("3", "[803d1ba1]", "[9c55a164]", "0x22")
+ self.binary32_to_bid32("4", "[803d1ba1]", "[9c55a165]", "0x22")
+ self.binary32_to_bid32("0", "[807fffff]", "[9c91efc6]", "0x22")
+ self.binary32_to_bid32("1", "[807fffff]", "[9c91efc7]", "0x22")
+ self.binary32_to_bid32("2", "[807fffff]", "[9c91efc6]", "0x22")
+ self.binary32_to_bid32("3", "[807fffff]", "[9c91efc6]", "0x22")
+ self.binary32_to_bid32("4", "[807fffff]", "[9c91efc6]", "0x22")
+ self.binary32_to_bid32("0", "[80800000]", "[9c91efc6]", "0x20")
+ self.binary32_to_bid32("1", "[80800000]", "[9c91efc7]", "0x20")
+ self.binary32_to_bid32("2", "[80800000]", "[9c91efc6]", "0x20")
+ self.binary32_to_bid32("3", "[80800000]", "[9c91efc6]", "0x20")
+ self.binary32_to_bid32("4", "[80800000]", "[9c91efc6]", "0x20")
+ self.binary32_to_bid32("0", "[81000000]", "[9ca3df8d]", "0x20")
+ self.binary32_to_bid32("1", "[81000000]", "[9ca3df8d]", "0x20")
+ self.binary32_to_bid32("2", "[81000000]", "[9ca3df8c]", "0x20")
+ self.binary32_to_bid32("3", "[81000000]", "[9ca3df8c]", "0x20")
+ self.binary32_to_bid32("4", "[81000000]", "[9ca3df8d]", "0x20")
+ self.binary32_to_bid32("0", "[81b273c6]", "[9ce406a4]", "0x20")
+ self.binary32_to_bid32("1", "[81b273c6]", "[9ce406a5]", "0x20")
+ self.binary32_to_bid32("2", "[81b273c6]", "[9ce406a4]", "0x20")
+ self.binary32_to_bid32("3", "[81b273c6]", "[9ce406a4]", "0x20")
+ self.binary32_to_bid32("4", "[81b273c6]", "[9ce406a4]", "0x20")
+ self.binary32_to_bid32("0", "[83f20f18]", "[9d95b567]", "0x20")
+ self.binary32_to_bid32("1", "[83f20f18]", "[9d95b567]", "0x20")
+ self.binary32_to_bid32("2", "[83f20f18]", "[9d95b566]", "0x20")
+ self.binary32_to_bid32("3", "[83f20f18]", "[9d95b566]", "0x20")
+ self.binary32_to_bid32("4", "[83f20f18]", "[9d95b567]", "0x20")
+ self.binary32_to_bid32("0", "[84ca00cb]", "[9dc8770e]", "0x20")
+ self.binary32_to_bid32("1", "[84ca00cb]", "[9dc8770f]", "0x20")
+ self.binary32_to_bid32("2", "[84ca00cb]", "[9dc8770e]", "0x20")
+ self.binary32_to_bid32("3", "[84ca00cb]", "[9dc8770e]", "0x20")
+ self.binary32_to_bid32("4", "[84ca00cb]", "[9dc8770e]", "0x20")
+ self.binary32_to_bid32("0", "[8525624c]", "[9df6a83d]", "0x20")
+ self.binary32_to_bid32("1", "[8525624c]", "[9df6a83d]", "0x20")
+ self.binary32_to_bid32("2", "[8525624c]", "[9df6a83c]", "0x20")
+ self.binary32_to_bid32("3", "[8525624c]", "[9df6a83c]", "0x20")
+ self.binary32_to_bid32("4", "[8525624c]", "[9df6a83d]", "0x20")
+ self.binary32_to_bid32("0", "[855dc5c0]", "[9e0fe951]", "0x20")
+ self.binary32_to_bid32("1", "[855dc5c0]", "[9e0fe952]", "0x20")
+ self.binary32_to_bid32("2", "[855dc5c0]", "[9e0fe951]", "0x20")
+ self.binary32_to_bid32("3", "[855dc5c0]", "[9e0fe951]", "0x20")
+ self.binary32_to_bid32("4", "[855dc5c0]", "[9e0fe951]", "0x20")
+ self.binary32_to_bid32("0", "[8807c58c]", "[9ebe57e2]", "0x20")
+ self.binary32_to_bid32("1", "[8807c58c]", "[9ebe57e3]", "0x20")
+ self.binary32_to_bid32("2", "[8807c58c]", "[9ebe57e2]", "0x20")
+ self.binary32_to_bid32("3", "[8807c58c]", "[9ebe57e2]", "0x20")
+ self.binary32_to_bid32("4", "[8807c58c]", "[9ebe57e2]", "0x20")
+ self.binary32_to_bid32("0", "[89195580]", "[9f1c29bb]", "0x20")
+ self.binary32_to_bid32("1", "[89195580]", "[9f1c29bb]", "0x20")
+ self.binary32_to_bid32("2", "[89195580]", "[9f1c29ba]", "0x20")
+ self.binary32_to_bid32("3", "[89195580]", "[9f1c29ba]", "0x20")
+ self.binary32_to_bid32("4", "[89195580]", "[9f1c29bb]", "0x20")
+ self.binary32_to_bid32("0", "[8b3da3ed]", "[9fb7baf4]", "0x20")
+ self.binary32_to_bid32("1", "[8b3da3ed]", "[9fb7baf4]", "0x20")
+ self.binary32_to_bid32("2", "[8b3da3ed]", "[9fb7baf3]", "0x20")
+ self.binary32_to_bid32("3", "[8b3da3ed]", "[9fb7baf3]", "0x20")
+ self.binary32_to_bid32("4", "[8b3da3ed]", "[9fb7baf4]", "0x20")
+ self.binary32_to_bid32("0", "[8c0bbd52]", "[a0106d22]", "0x20")
+ self.binary32_to_bid32("1", "[8c0bbd52]", "[a0106d23]", "0x20")
+ self.binary32_to_bid32("2", "[8c0bbd52]", "[a0106d22]", "0x20")
+ self.binary32_to_bid32("3", "[8c0bbd52]", "[a0106d22]", "0x20")
+ self.binary32_to_bid32("4", "[8c0bbd52]", "[a0106d22]", "0x20")
+ self.binary32_to_bid32("0", "[8de567c9]", "[a09592bc]", "0x20")
+ self.binary32_to_bid32("1", "[8de567c9]", "[a09592bc]", "0x20")
+ self.binary32_to_bid32("2", "[8de567c9]", "[a09592bb]", "0x20")
+ self.binary32_to_bid32("3", "[8de567c9]", "[a09592bb]", "0x20")
+ self.binary32_to_bid32("4", "[8de567c9]", "[a09592bc]", "0x20")
+ self.binary32_to_bid32("0", "[8f1fc334]", "[a0f83124]", "0x20")
+ self.binary32_to_bid32("1", "[8f1fc334]", "[a0f83125]", "0x20")
+ self.binary32_to_bid32("2", "[8f1fc334]", "[a0f83124]", "0x20")
+ self.binary32_to_bid32("3", "[8f1fc334]", "[a0f83124]", "0x20")
+ self.binary32_to_bid32("4", "[8f1fc334]", "[a0f83124]", "0x20")
+ self.binary32_to_bid32("0", "[8f519a99]", "[a10fc4d3]", "0x20")
+ self.binary32_to_bid32("1", "[8f519a99]", "[a10fc4d3]", "0x20")
+ self.binary32_to_bid32("2", "[8f519a99]", "[a10fc4d2]", "0x20")
+ self.binary32_to_bid32("3", "[8f519a99]", "[a10fc4d2]", "0x20")
+ self.binary32_to_bid32("4", "[8f519a99]", "[a10fc4d3]", "0x20")
+ self.binary32_to_bid32("0", "[9024b680]", "[a1319105]", "0x20")
+ self.binary32_to_bid32("1", "[9024b680]", "[a1319106]", "0x20")
+ self.binary32_to_bid32("2", "[9024b680]", "[a1319105]", "0x20")
+ self.binary32_to_bid32("3", "[9024b680]", "[a1319105]", "0x20")
+ self.binary32_to_bid32("4", "[9024b680]", "[a1319105]", "0x20")
+ self.binary32_to_bid32("0", "[91273026]", "[a1941fe1]", "0x20")
+ self.binary32_to_bid32("1", "[91273026]", "[a1941fe2]", "0x20")
+ self.binary32_to_bid32("2", "[91273026]", "[a1941fe1]", "0x20")
+ self.binary32_to_bid32("3", "[91273026]", "[a1941fe1]", "0x20")
+ self.binary32_to_bid32("4", "[91273026]", "[a1941fe1]", "0x20")
+ self.binary32_to_bid32("0", "[943e59d0]", "[e892a415]", "0x20")
+ self.binary32_to_bid32("1", "[943e59d0]", "[e892a416]", "0x20")
+ self.binary32_to_bid32("2", "[943e59d0]", "[e892a415]", "0x20")
+ self.binary32_to_bid32("3", "[943e59d0]", "[e892a415]", "0x20")
+ self.binary32_to_bid32("4", "[943e59d0]", "[e892a415]", "0x20")
+ self.binary32_to_bid32("0", "[947eb11a]", "[a2939ee9]", "0x20")
+ self.binary32_to_bid32("1", "[947eb11a]", "[a2939eea]", "0x20")
+ self.binary32_to_bid32("2", "[947eb11a]", "[a2939ee9]", "0x20")
+ self.binary32_to_bid32("3", "[947eb11a]", "[a2939ee9]", "0x20")
+ self.binary32_to_bid32("4", "[947eb11a]", "[a2939ee9]", "0x20")
+ self.binary32_to_bid32("0", "[967eb11a]", "[a31f64a8]", "0x20")
+ self.binary32_to_bid32("1", "[967eb11a]", "[a31f64a9]", "0x20")
+ self.binary32_to_bid32("2", "[967eb11a]", "[a31f64a8]", "0x20")
+ self.binary32_to_bid32("3", "[967eb11a]", "[a31f64a8]", "0x20")
+ self.binary32_to_bid32("4", "[967eb11a]", "[a31f64a8]", "0x20")
+ self.binary32_to_bid32("0", "[972a13c8]", "[a353dac5]", "0x20")
+ self.binary32_to_bid32("1", "[972a13c8]", "[a353dac5]", "0x20")
+ self.binary32_to_bid32("2", "[972a13c8]", "[a353dac4]", "0x20")
+ self.binary32_to_bid32("3", "[972a13c8]", "[a353dac4]", "0x20")
+ self.binary32_to_bid32("4", "[972a13c8]", "[a353dac5]", "0x20")
+ self.binary32_to_bid32("0", "[9955a827]", "[a410dac4]", "0x20")
+ self.binary32_to_bid32("1", "[9955a827]", "[a410dac4]", "0x20")
+ self.binary32_to_bid32("2", "[9955a827]", "[a410dac3]", "0x20")
+ self.binary32_to_bid32("3", "[9955a827]", "[a410dac3]", "0x20")
+ self.binary32_to_bid32("4", "[9955a827]", "[a410dac4]", "0x20")
+ self.binary32_to_bid32("0", "[9af4614b]", "[a48f6c2c]", "0x20")
+ self.binary32_to_bid32("1", "[9af4614b]", "[a48f6c2d]", "0x20")
+ self.binary32_to_bid32("2", "[9af4614b]", "[a48f6c2c]", "0x20")
+ self.binary32_to_bid32("3", "[9af4614b]", "[a48f6c2c]", "0x20")
+ self.binary32_to_bid32("4", "[9af4614b]", "[a48f6c2c]", "0x20")
+ self.binary32_to_bid32("0", "[9b8f8e43]", "[a4a43d12]", "0x20")
+ self.binary32_to_bid32("1", "[9b8f8e43]", "[a4a43d12]", "0x20")
+ self.binary32_to_bid32("2", "[9b8f8e43]", "[a4a43d11]", "0x20")
+ self.binary32_to_bid32("3", "[9b8f8e43]", "[a4a43d11]", "0x20")
+ self.binary32_to_bid32("4", "[9b8f8e43]", "[a4a43d12]", "0x20")
+ self.binary32_to_bid32("0", "[9d0f8e43]", "[a51cfda8]", "0x20")
+ self.binary32_to_bid32("1", "[9d0f8e43]", "[a51cfda8]", "0x20")
+ self.binary32_to_bid32("2", "[9d0f8e43]", "[a51cfda7]", "0x20")
+ self.binary32_to_bid32("3", "[9d0f8e43]", "[a51cfda7]", "0x20")
+ self.binary32_to_bid32("4", "[9d0f8e43]", "[a51cfda8]", "0x20")
+ self.binary32_to_bid32("0", "[9d14c680]", "[a51e0b82]", "0x20")
+ self.binary32_to_bid32("1", "[9d14c680]", "[a51e0b82]", "0x20")
+ self.binary32_to_bid32("2", "[9d14c680]", "[a51e0b81]", "0x20")
+ self.binary32_to_bid32("3", "[9d14c680]", "[a51e0b81]", "0x20")
+ self.binary32_to_bid32("4", "[9d14c680]", "[a51e0b82]", "0x20")
+ self.binary32_to_bid32("0", "[9f107d24]", "[a5aeafd6]", "0x20")
+ self.binary32_to_bid32("1", "[9f107d24]", "[a5aeafd6]", "0x20")
+ self.binary32_to_bid32("2", "[9f107d24]", "[a5aeafd5]", "0x20")
+ self.binary32_to_bid32("3", "[9f107d24]", "[a5aeafd5]", "0x20")
+ self.binary32_to_bid32("4", "[9f107d24]", "[a5aeafd6]", "0x20")
+ self.binary32_to_bid32("0", "[a0687628]", "[a61e0b82]", "0x20")
+ self.binary32_to_bid32("1", "[a0687628]", "[a61e0b82]", "0x20")
+ self.binary32_to_bid32("2", "[a0687628]", "[a61e0b81]", "0x20")
+ self.binary32_to_bid32("3", "[a0687628]", "[a61e0b81]", "0x20")
+ self.binary32_to_bid32("4", "[a0687628]", "[a61e0b82]", "0x20")
+ self.binary32_to_bid32("0", "[a1caec90]", "[a694fb5b]", "0x20")
+ self.binary32_to_bid32("1", "[a1caec90]", "[a694fb5b]", "0x20")
+ self.binary32_to_bid32("2", "[a1caec90]", "[a694fb5a]", "0x20")
+ self.binary32_to_bid32("3", "[a1caec90]", "[a694fb5a]", "0x20")
+ self.binary32_to_bid32("4", "[a1caec90]", "[a694fb5b]", "0x20")
+ self.binary32_to_bid32("0", "[a2778cd6]", "[a6b33132]", "0x20")
+ self.binary32_to_bid32("1", "[a2778cd6]", "[a6b33133]", "0x20")
+ self.binary32_to_bid32("2", "[a2778cd6]", "[a6b33132]", "0x20")
+ self.binary32_to_bid32("3", "[a2778cd6]", "[a6b33132]", "0x20")
+ self.binary32_to_bid32("4", "[a2778cd6]", "[a6b33132]", "0x20")
+ self.binary32_to_bid32("0", "[a2f432b0]", "[a6e4ff78]", "0x20")
+ self.binary32_to_bid32("1", "[a2f432b0]", "[a6e4ff78]", "0x20")
+ self.binary32_to_bid32("2", "[a2f432b0]", "[a6e4ff77]", "0x20")
+ self.binary32_to_bid32("3", "[a2f432b0]", "[a6e4ff77]", "0x20")
+ self.binary32_to_bid32("4", "[a2f432b0]", "[a6e4ff78]", "0x20")
+ self.binary32_to_bid32("0", "[a548c0c0]", "[a79a91c6]", "0x20")
+ self.binary32_to_bid32("1", "[a548c0c0]", "[a79a91c7]", "0x20")
+ self.binary32_to_bid32("2", "[a548c0c0]", "[a79a91c6]", "0x20")
+ self.binary32_to_bid32("3", "[a548c0c0]", "[a79a91c6]", "0x20")
+ self.binary32_to_bid32("4", "[a548c0c0]", "[a79a91c6]", "0x20")
+ self.binary32_to_bid32("0", "[a64505fb]", "[a7e84da5]", "0x20")
+ self.binary32_to_bid32("1", "[a64505fb]", "[a7e84da6]", "0x20")
+ self.binary32_to_bid32("2", "[a64505fb]", "[a7e84da5]", "0x20")
+ self.binary32_to_bid32("3", "[a64505fb]", "[a7e84da5]", "0x20")
+ self.binary32_to_bid32("4", "[a64505fb]", "[a7e84da5]", "0x20")
+ self.binary32_to_bid32("0", "[a8a00f88]", "[a89b1d86]", "0x20")
+ self.binary32_to_bid32("1", "[a8a00f88]", "[a89b1d87]", "0x20")
+ self.binary32_to_bid32("2", "[a8a00f88]", "[a89b1d86]", "0x20")
+ self.binary32_to_bid32("3", "[a8a00f88]", "[a89b1d86]", "0x20")
+ self.binary32_to_bid32("4", "[a8a00f88]", "[a89b1d86]", "0x20")
+ self.binary32_to_bid32("0", "[a8d34414]", "[a8a3ca33]", "0x20")
+ self.binary32_to_bid32("1", "[a8d34414]", "[a8a3ca34]", "0x20")
+ self.binary32_to_bid32("2", "[a8d34414]", "[a8a3ca33]", "0x20")
+ self.binary32_to_bid32("3", "[a8d34414]", "[a8a3ca33]", "0x20")
+ self.binary32_to_bid32("4", "[a8d34414]", "[a8a3ca33]", "0x20")
+ self.binary32_to_bid32("0", "[ab7ce46f]", "[ea4917dc]", "0x20")
+ self.binary32_to_bid32("1", "[ab7ce46f]", "[ea4917dc]", "0x20")
+ self.binary32_to_bid32("2", "[ab7ce46f]", "[ea4917db]", "0x20")
+ self.binary32_to_bid32("3", "[ab7ce46f]", "[ea4917db]", "0x20")
+ self.binary32_to_bid32("4", "[ab7ce46f]", "[ea4917dc]", "0x20")
+ self.binary32_to_bid32("0", "[ac013e62]", "[a99c0677]", "0x20")
+ self.binary32_to_bid32("1", "[ac013e62]", "[a99c0678]", "0x20")
+ self.binary32_to_bid32("2", "[ac013e62]", "[a99c0677]", "0x20")
+ self.binary32_to_bid32("3", "[ac013e62]", "[a99c0677]", "0x20")
+ self.binary32_to_bid32("4", "[ac013e62]", "[a99c0677]", "0x20")
+ self.binary32_to_bid32("0", "[adf23148]", "[aa2a0382]", "0x20")
+ self.binary32_to_bid32("1", "[adf23148]", "[aa2a0383]", "0x20")
+ self.binary32_to_bid32("2", "[adf23148]", "[aa2a0382]", "0x20")
+ self.binary32_to_bid32("3", "[adf23148]", "[aa2a0382]", "0x20")
+ self.binary32_to_bid32("4", "[adf23148]", "[aa2a0382]", "0x20")
+ self.binary32_to_bid32("0", "[af2970a8]", "[aa9783b8]", "0x20")
+ self.binary32_to_bid32("1", "[af2970a8]", "[aa9783b9]", "0x20")
+ self.binary32_to_bid32("2", "[af2970a8]", "[aa9783b8]", "0x20")
+ self.binary32_to_bid32("3", "[af2970a8]", "[aa9783b8]", "0x20")
+ self.binary32_to_bid32("4", "[af2970a8]", "[aa9783b8]", "0x20")
+ self.binary32_to_bid32("0", "[af3586a9]", "[aa993119]", "0x20")
+ self.binary32_to_bid32("1", "[af3586a9]", "[aa99311a]", "0x20")
+ self.binary32_to_bid32("2", "[af3586a9]", "[aa993119]", "0x20")
+ self.binary32_to_bid32("3", "[af3586a9]", "[aa993119]", "0x20")
+ self.binary32_to_bid32("4", "[af3586a9]", "[aa993119]", "0x20")
+ self.binary32_to_bid32("0", "[af974080]", "[aaa9fb19]", "0x20")
+ self.binary32_to_bid32("1", "[af974080]", "[aaa9fb19]", "0x20")
+ self.binary32_to_bid32("2", "[af974080]", "[aaa9fb18]", "0x20")
+ self.binary32_to_bid32("3", "[af974080]", "[aaa9fb18]", "0x20")
+ self.binary32_to_bid32("4", "[af974080]", "[aaa9fb19]", "0x20")
+ self.binary32_to_bid32("0", "[b1a29e99]", "[ab4837b3]", "0x20")
+ self.binary32_to_bid32("1", "[b1a29e99]", "[ab4837b3]", "0x20")
+ self.binary32_to_bid32("2", "[b1a29e99]", "[ab4837b2]", "0x20")
+ self.binary32_to_bid32("3", "[b1a29e99]", "[ab4837b2]", "0x20")
+ self.binary32_to_bid32("4", "[b1a29e99]", "[ab4837b3]", "0x20")
+ self.binary32_to_bid32("0", "[b46984d5]", "[ac212f5e]", "0x20")
+ self.binary32_to_bid32("1", "[b46984d5]", "[ac212f5e]", "0x20")
+ self.binary32_to_bid32("2", "[b46984d5]", "[ac212f5d]", "0x20")
+ self.binary32_to_bid32("3", "[b46984d5]", "[ac212f5d]", "0x20")
+ self.binary32_to_bid32("4", "[b46984d5]", "[ac212f5e]", "0x20")
+ self.binary32_to_bid32("0", "[b5fef8cb]", "[ac9cfca8]", "0x20")
+ self.binary32_to_bid32("1", "[b5fef8cb]", "[ac9cfca9]", "0x20")
+ self.binary32_to_bid32("2", "[b5fef8cb]", "[ac9cfca8]", "0x20")
+ self.binary32_to_bid32("3", "[b5fef8cb]", "[ac9cfca8]", "0x20")
+ self.binary32_to_bid32("4", "[b5fef8cb]", "[ac9cfca8]", "0x20")
+ self.binary32_to_bid32("0", "[b6ee724f]", "[acec6ed4]", "0x20")
+ self.binary32_to_bid32("1", "[b6ee724f]", "[acec6ed5]", "0x20")
+ self.binary32_to_bid32("2", "[b6ee724f]", "[acec6ed4]", "0x20")
+ self.binary32_to_bid32("3", "[b6ee724f]", "[acec6ed4]", "0x20")
+ self.binary32_to_bid32("4", "[b6ee724f]", "[acec6ed4]", "0x20")
+ self.binary32_to_bid32("0", "[b6f43ed0]", "[acef11e7]", "0x20")
+ self.binary32_to_bid32("1", "[b6f43ed0]", "[acef11e7]", "0x20")
+ self.binary32_to_bid32("2", "[b6f43ed0]", "[acef11e6]", "0x20")
+ self.binary32_to_bid32("3", "[b6f43ed0]", "[acef11e6]", "0x20")
+ self.binary32_to_bid32("4", "[b6f43ed0]", "[acef11e7]", "0x20")
+ self.binary32_to_bid32("0", "[b93a71b4]", "[ad9b2196]", "0x20")
+ self.binary32_to_bid32("1", "[b93a71b4]", "[ad9b2197]", "0x20")
+ self.binary32_to_bid32("2", "[b93a71b4]", "[ad9b2196]", "0x20")
+ self.binary32_to_bid32("3", "[b93a71b4]", "[ad9b2196]", "0x20")
+ self.binary32_to_bid32("4", "[b93a71b4]", "[ad9b2196]", "0x20")
+ self.binary32_to_bid32("0", "[bacf05b8]", "[ae1819bf]", "0x20")
+ self.binary32_to_bid32("1", "[bacf05b8]", "[ae1819c0]", "0x20")
+ self.binary32_to_bid32("2", "[bacf05b8]", "[ae1819bf]", "0x20")
+ self.binary32_to_bid32("3", "[bacf05b8]", "[ae1819bf]", "0x20")
+ self.binary32_to_bid32("4", "[bacf05b8]", "[ae1819bf]", "0x20")
+ self.binary32_to_bid32("0", "[bad16393]", "[ae186047]", "0x20")
+ self.binary32_to_bid32("1", "[bad16393]", "[ae186047]", "0x20")
+ self.binary32_to_bid32("2", "[bad16393]", "[ae186046]", "0x20")
+ self.binary32_to_bid32("3", "[bad16393]", "[ae186046]", "0x20")
+ self.binary32_to_bid32("4", "[bad16393]", "[ae186047]", "0x20")
+ self.binary32_to_bid32("0", "[bc963930]", "[ae9bfb36]", "0x20")
+ self.binary32_to_bid32("1", "[bc963930]", "[ae9bfb36]", "0x20")
+ self.binary32_to_bid32("2", "[bc963930]", "[ae9bfb35]", "0x20")
+ self.binary32_to_bid32("3", "[bc963930]", "[ae9bfb35]", "0x20")
+ self.binary32_to_bid32("4", "[bc963930]", "[ae9bfb36]", "0x20")
+ self.binary32_to_bid32("0", "[bd500000]", "[aecd7c6d]", "0x00")
+ self.binary32_to_bid32("1", "[bd500000]", "[aecd7c6d]", "0x00")
+ self.binary32_to_bid32("2", "[bd500000]", "[aecd7c6d]", "0x00")
+ self.binary32_to_bid32("3", "[bd500000]", "[aecd7c6d]", "0x00")
+ self.binary32_to_bid32("4", "[bd500000]", "[aecd7c6d]", "0x00")
+ self.binary32_to_bid32("0", "[bd76f1df]", "[aedbfe7e]", "0x20")
+ self.binary32_to_bid32("1", "[bd76f1df]", "[aedbfe7e]", "0x20")
+ self.binary32_to_bid32("2", "[bd76f1df]", "[aedbfe7d]", "0x20")
+ self.binary32_to_bid32("3", "[bd76f1df]", "[aedbfe7d]", "0x20")
+ self.binary32_to_bid32("4", "[bd76f1df]", "[aedbfe7e]", "0x20")
+ self.binary32_to_bid32("0", "[bf800000]", "[b2800001]", "0x00")
+ self.binary32_to_bid32("1", "[bf800000]", "[b2800001]", "0x00")
+ self.binary32_to_bid32("2", "[bf800000]", "[b2800001]", "0x00")
+ self.binary32_to_bid32("3", "[bf800000]", "[b2800001]", "0x00")
+ self.binary32_to_bid32("4", "[bf800000]", "[b2800001]", "0x00")
+ self.binary32_to_bid32("0", "[bfc00000]", "[b200000f]", "0x00")
+ self.binary32_to_bid32("1", "[bfc00000]", "[b200000f]", "0x00")
+ self.binary32_to_bid32("2", "[bfc00000]", "[b200000f]", "0x00")
+ self.binary32_to_bid32("3", "[bfc00000]", "[b200000f]", "0x00")
+ self.binary32_to_bid32("4", "[bfc00000]", "[b200000f]", "0x00")
+ self.binary32_to_bid32("0", "[bfff9ec7]", "[af9e78e9]", "0x20")
+ self.binary32_to_bid32("1", "[bfff9ec7]", "[af9e78e9]", "0x20")
+ self.binary32_to_bid32("2", "[bfff9ec7]", "[af9e78e8]", "0x20")
+ self.binary32_to_bid32("3", "[bfff9ec7]", "[af9e78e8]", "0x20")
+ self.binary32_to_bid32("4", "[bfff9ec7]", "[af9e78e9]", "0x20")
+ self.binary32_to_bid32("0", "[c17fdec7]", "[b01866d5]", "0x20")
+ self.binary32_to_bid32("1", "[c17fdec7]", "[b01866d5]", "0x20")
+ self.binary32_to_bid32("2", "[c17fdec7]", "[b01866d4]", "0x20")
+ self.binary32_to_bid32("3", "[c17fdec7]", "[b01866d4]", "0x20")
+ self.binary32_to_bid32("4", "[c17fdec7]", "[b01866d5]", "0x20")
+ self.binary32_to_bid32("0", "[c27fc16f]", "[b0619022]", "0x20")
+ self.binary32_to_bid32("1", "[c27fc16f]", "[b0619022]", "0x20")
+ self.binary32_to_bid32("2", "[c27fc16f]", "[b0619021]", "0x20")
+ self.binary32_to_bid32("3", "[c27fc16f]", "[b0619021]", "0x20")
+ self.binary32_to_bid32("4", "[c27fc16f]", "[b0619022]", "0x20")
+ self.binary32_to_bid32("0", "[c2800000]", "[b2800040]", "0x00")
+ self.binary32_to_bid32("1", "[c2800000]", "[b2800040]", "0x00")
+ self.binary32_to_bid32("2", "[c2800000]", "[b2800040]", "0x00")
+ self.binary32_to_bid32("3", "[c2800000]", "[b2800040]", "0x00")
+ self.binary32_to_bid32("4", "[c2800000]", "[b2800040]", "0x00")
+ self.binary32_to_bid32("0", "[c347fbc6]", "[b09e83db]", "0x20")
+ self.binary32_to_bid32("1", "[c347fbc6]", "[b09e83db]", "0x20")
+ self.binary32_to_bid32("2", "[c347fbc6]", "[b09e83da]", "0x20")
+ self.binary32_to_bid32("3", "[c347fbc6]", "[b09e83da]", "0x20")
+ self.binary32_to_bid32("4", "[c347fbc6]", "[b09e83db]", "0x20")
+ self.binary32_to_bid32("0", "[c479c000]", "[b28003e7]", "0x00")
+ self.binary32_to_bid32("1", "[c479c000]", "[b28003e7]", "0x00")
+ self.binary32_to_bid32("2", "[c479c000]", "[b28003e7]", "0x00")
+ self.binary32_to_bid32("3", "[c479c000]", "[b28003e7]", "0x00")
+ self.binary32_to_bid32("4", "[c479c000]", "[b28003e7]", "0x00")
+ self.binary32_to_bid32("0", "[c47a0000]", "[b28003e8]", "0x00")
+ self.binary32_to_bid32("1", "[c47a0000]", "[b28003e8]", "0x00")
+ self.binary32_to_bid32("2", "[c47a0000]", "[b28003e8]", "0x00")
+ self.binary32_to_bid32("3", "[c47a0000]", "[b28003e8]", "0x00")
+ self.binary32_to_bid32("4", "[c47a0000]", "[b28003e8]", "0x00")
+ self.binary32_to_bid32("0", "[c4fffbd7]", "[b11f3f7e]", "0x20")
+ self.binary32_to_bid32("1", "[c4fffbd7]", "[b11f3f7e]", "0x20")
+ self.binary32_to_bid32("2", "[c4fffbd7]", "[b11f3f7d]", "0x20")
+ self.binary32_to_bid32("3", "[c4fffbd7]", "[b11f3f7d]", "0x20")
+ self.binary32_to_bid32("4", "[c4fffbd7]", "[b11f3f7e]", "0x20")
+ self.binary32_to_bid32("0", "[c67fffd7]", "[b198fffc]", "0x20")
+ self.binary32_to_bid32("1", "[c67fffd7]", "[b198fffc]", "0x20")
+ self.binary32_to_bid32("2", "[c67fffd7]", "[b198fffb]", "0x20")
+ self.binary32_to_bid32("3", "[c67fffd7]", "[b198fffb]", "0x20")
+ self.binary32_to_bid32("4", "[c67fffd7]", "[b198fffc]", "0x20")
+ self.binary32_to_bid32("0", "[c69c3fec]", "[b19e847c]", "0x20")
+ self.binary32_to_bid32("1", "[c69c3fec]", "[b19e847d]", "0x20")
+ self.binary32_to_bid32("2", "[c69c3fec]", "[b19e847c]", "0x20")
+ self.binary32_to_bid32("3", "[c69c3fec]", "[b19e847c]", "0x20")
+ self.binary32_to_bid32("4", "[c69c3fec]", "[b19e847c]", "0x20")
+ self.binary32_to_bid32("0", "[c8434ff0]", "[b21e847e]", "0x20")
+ self.binary32_to_bid32("1", "[c8434ff0]", "[b21e847e]", "0x20")
+ self.binary32_to_bid32("2", "[c8434ff0]", "[b21e847d]", "0x20")
+ self.binary32_to_bid32("3", "[c8434ff0]", "[b21e847d]", "0x20")
+ self.binary32_to_bid32("4", "[c8434ff0]", "[b21e847e]", "0x20")
+ self.binary32_to_bid32("0", "[c8fffff3]", "[b24ffffc]", "0x20")
+ self.binary32_to_bid32("1", "[c8fffff3]", "[b24ffffc]", "0x20")
+ self.binary32_to_bid32("2", "[c8fffff3]", "[b24ffffb]", "0x20")
+ self.binary32_to_bid32("3", "[c8fffff3]", "[b24ffffb]", "0x20")
+ self.binary32_to_bid32("4", "[c8fffff3]", "[b24ffffc]", "0x20")
+ self.binary32_to_bid32("0", "[cb7fffef]", "[b3199998]", "0x20")
+ self.binary32_to_bid32("1", "[cb7fffef]", "[b3199998]", "0x20")
+ self.binary32_to_bid32("2", "[cb7fffef]", "[b3199997]", "0x20")
+ self.binary32_to_bid32("3", "[cb7fffef]", "[b3199997]", "0x20")
+ self.binary32_to_bid32("4", "[cb7fffef]", "[b3199998]", "0x20")
+ self.binary32_to_bid32("0", "[cd000000]", "[b3947ae1]", "0x20")
+ self.binary32_to_bid32("1", "[cd000000]", "[b3947ae2]", "0x20")
+ self.binary32_to_bid32("2", "[cd000000]", "[b3947ae1]", "0x20")
+ self.binary32_to_bid32("3", "[cd000000]", "[b3947ae1]", "0x20")
+ self.binary32_to_bid32("4", "[cd000000]", "[b3947ae1]", "0x20")
+ self.binary32_to_bid32("0", "[cdffffc4]", "[b3d1eb72]", "0x20")
+ self.binary32_to_bid32("1", "[cdffffc4]", "[b3d1eb72]", "0x20")
+ self.binary32_to_bid32("2", "[cdffffc4]", "[b3d1eb71]", "0x20")
+ self.binary32_to_bid32("3", "[cdffffc4]", "[b3d1eb71]", "0x20")
+ self.binary32_to_bid32("4", "[cdffffc4]", "[b3d1eb72]", "0x20")
+ self.binary32_to_bid32("0", "[ceee6a80]", "[b41e846a]", "0x20")
+ self.binary32_to_bid32("1", "[ceee6a80]", "[b41e846b]", "0x20")
+ self.binary32_to_bid32("2", "[ceee6a80]", "[b41e846a]", "0x20")
+ self.binary32_to_bid32("3", "[ceee6a80]", "[b41e846a]", "0x20")
+ self.binary32_to_bid32("4", "[ceee6a80]", "[b41e846a]", "0x20")
+ self.binary32_to_bid32("0", "[ceee6b16]", "[b41e847e]", "0x20")
+ self.binary32_to_bid32("1", "[ceee6b16]", "[b41e847e]", "0x20")
+ self.binary32_to_bid32("2", "[ceee6b16]", "[b41e847d]", "0x20")
+ self.binary32_to_bid32("3", "[ceee6b16]", "[b41e847d]", "0x20")
+ self.binary32_to_bid32("4", "[ceee6b16]", "[b41e847e]", "0x20")
+ self.binary32_to_bid32("0", "[d1fff8ba]", "[b514f81d]", "0x20")
+ self.binary32_to_bid32("1", "[d1fff8ba]", "[b514f81d]", "0x20")
+ self.binary32_to_bid32("2", "[d1fff8ba]", "[b514f81c]", "0x20")
+ self.binary32_to_bid32("3", "[d1fff8ba]", "[b514f81c]", "0x20")
+ self.binary32_to_bid32("4", "[d1fff8ba]", "[b514f81d]", "0x20")
+ self.binary32_to_bid32("0", "[d23a3ae8]", "[b51e830e]", "0x20")
+ self.binary32_to_bid32("1", "[d23a3ae8]", "[b51e830f]", "0x20")
+ self.binary32_to_bid32("2", "[d23a3ae8]", "[b51e830e]", "0x20")
+ self.binary32_to_bid32("3", "[d23a3ae8]", "[b51e830e]", "0x20")
+ self.binary32_to_bid32("4", "[d23a3ae8]", "[b51e830e]", "0x20")
+ self.binary32_to_bid32("0", "[d47fd763]", "[b5c31139]", "0x20")
+ self.binary32_to_bid32("1", "[d47fd763]", "[b5c31139]", "0x20")
+ self.binary32_to_bid32("2", "[d47fd763]", "[b5c31138]", "0x20")
+ self.binary32_to_bid32("3", "[d47fd763]", "[b5c31138]", "0x20")
+ self.binary32_to_bid32("4", "[d47fd763]", "[b5c31139]", "0x20")
+ self.binary32_to_bid32("0", "[d59160c5]", "[b61e7cec]", "0x20")
+ self.binary32_to_bid32("1", "[d59160c5]", "[b61e7ced]", "0x20")
+ self.binary32_to_bid32("2", "[d59160c5]", "[b61e7cec]", "0x20")
+ self.binary32_to_bid32("3", "[d59160c5]", "[b61e7cec]", "0x20")
+ self.binary32_to_bid32("4", "[d59160c5]", "[b61e7cec]", "0x20")
+ self.binary32_to_bid32("0", "[d6fba7c6]", "[b6951c42]", "0x20")
+ self.binary32_to_bid32("1", "[d6fba7c6]", "[b6951c42]", "0x20")
+ self.binary32_to_bid32("2", "[d6fba7c6]", "[b6951c41]", "0x20")
+ self.binary32_to_bid32("3", "[d6fba7c6]", "[b6951c41]", "0x20")
+ self.binary32_to_bid32("4", "[d6fba7c6]", "[b6951c42]", "0x20")
+ self.binary32_to_bid32("0", "[d87be970]", "[b710e7d0]", "0x20")
+ self.binary32_to_bid32("1", "[d87be970]", "[b710e7d1]", "0x20")
+ self.binary32_to_bid32("2", "[d87be970]", "[b710e7d0]", "0x20")
+ self.binary32_to_bid32("3", "[d87be970]", "[b710e7d0]", "0x20")
+ self.binary32_to_bid32("4", "[d87be970]", "[b710e7d0]", "0x20")
+ self.binary32_to_bid32("0", "[d96411ec]", "[b73d38da]", "0x20")
+ self.binary32_to_bid32("1", "[d96411ec]", "[b73d38da]", "0x20")
+ self.binary32_to_bid32("2", "[d96411ec]", "[b73d38d9]", "0x20")
+ self.binary32_to_bid32("3", "[d96411ec]", "[b73d38d9]", "0x20")
+ self.binary32_to_bid32("4", "[d96411ec]", "[b73d38da]", "0x20")
+ self.binary32_to_bid32("0", "[da81e4d0]", "[b79be4fd]", "0x20")
+ self.binary32_to_bid32("1", "[da81e4d0]", "[b79be4fd]", "0x20")
+ self.binary32_to_bid32("2", "[da81e4d0]", "[b79be4fc]", "0x20")
+ self.binary32_to_bid32("3", "[da81e4d0]", "[b79be4fc]", "0x20")
+ self.binary32_to_bid32("4", "[da81e4d0]", "[b79be4fd]", "0x20")
+ self.binary32_to_bid32("0", "[dafc06b3]", "[b7b61f49]", "0x20")
+ self.binary32_to_bid32("1", "[dafc06b3]", "[b7b61f49]", "0x20")
+ self.binary32_to_bid32("2", "[dafc06b3]", "[b7b61f48]", "0x20")
+ self.binary32_to_bid32("3", "[dafc06b3]", "[b7b61f48]", "0x20")
+ self.binary32_to_bid32("4", "[dafc06b3]", "[b7b61f49]", "0x20")
+ self.binary32_to_bid32("0", "[dd5e23ce]", "[b88f43ed]", "0x20")
+ self.binary32_to_bid32("1", "[dd5e23ce]", "[b88f43ee]", "0x20")
+ self.binary32_to_bid32("2", "[dd5e23ce]", "[b88f43ed]", "0x20")
+ self.binary32_to_bid32("3", "[dd5e23ce]", "[b88f43ed]", "0x20")
+ self.binary32_to_bid32("4", "[dd5e23ce]", "[b88f43ed]", "0x20")
+ self.binary32_to_bid32("0", "[ddd8bc10]", "[b89dc9ac]", "0x20")
+ self.binary32_to_bid32("1", "[ddd8bc10]", "[b89dc9ac]", "0x20")
+ self.binary32_to_bid32("2", "[ddd8bc10]", "[b89dc9ab]", "0x20")
+ self.binary32_to_bid32("3", "[ddd8bc10]", "[b89dc9ab]", "0x20")
+ self.binary32_to_bid32("4", "[ddd8bc10]", "[b89dc9ac]", "0x20")
+ self.binary32_to_bid32("0", "[dff7da94]", "[b93680ee]", "0x20")
+ self.binary32_to_bid32("1", "[dff7da94]", "[b93680ef]", "0x20")
+ self.binary32_to_bid32("2", "[dff7da94]", "[b93680ee]", "0x20")
+ self.binary32_to_bid32("3", "[dff7da94]", "[b93680ee]", "0x20")
+ self.binary32_to_bid32("4", "[dff7da94]", "[b93680ee]", "0x20")
+ self.binary32_to_bid32("0", "[e11d211b]", "[b99ba47a]", "0x20")
+ self.binary32_to_bid32("1", "[e11d211b]", "[b99ba47a]", "0x20")
+ self.binary32_to_bid32("2", "[e11d211b]", "[b99ba479]", "0x20")
+ self.binary32_to_bid32("3", "[e11d211b]", "[b99ba479]", "0x20")
+ self.binary32_to_bid32("4", "[e11d211b]", "[b99ba47a]", "0x20")
+ self.binary32_to_bid32("0", "[e227ec64]", "[b9f62a64]", "0x20")
+ self.binary32_to_bid32("1", "[e227ec64]", "[b9f62a65]", "0x20")
+ self.binary32_to_bid32("2", "[e227ec64]", "[b9f62a64]", "0x20")
+ self.binary32_to_bid32("3", "[e227ec64]", "[b9f62a64]", "0x20")
+ self.binary32_to_bid32("4", "[e227ec64]", "[b9f62a64]", "0x20")
+ self.binary32_to_bid32("0", "[e22beb80]", "[b9f8fa57]", "0x20")
+ self.binary32_to_bid32("1", "[e22beb80]", "[b9f8fa58]", "0x20")
+ self.binary32_to_bid32("2", "[e22beb80]", "[b9f8fa57]", "0x20")
+ self.binary32_to_bid32("3", "[e22beb80]", "[b9f8fa57]", "0x20")
+ self.binary32_to_bid32("4", "[e22beb80]", "[b9f8fa57]", "0x20")
+ self.binary32_to_bid32("0", "[e3f6e3b3]", "[ee8afc85]", "0x20")
+ self.binary32_to_bid32("1", "[e3f6e3b3]", "[ee8afc85]", "0x20")
+ self.binary32_to_bid32("2", "[e3f6e3b3]", "[ee8afc84]", "0x20")
+ self.binary32_to_bid32("3", "[e3f6e3b3]", "[ee8afc84]", "0x20")
+ self.binary32_to_bid32("4", "[e3f6e3b3]", "[ee8afc85]", "0x20")
+ self.binary32_to_bid32("0", "[e5eb2534]", "[bb152e15]", "0x20")
+ self.binary32_to_bid32("1", "[e5eb2534]", "[bb152e15]", "0x20")
+ self.binary32_to_bid32("2", "[e5eb2534]", "[bb152e14]", "0x20")
+ self.binary32_to_bid32("3", "[e5eb2534]", "[bb152e14]", "0x20")
+ self.binary32_to_bid32("4", "[e5eb2534]", "[bb152e15]", "0x20")
+ self.binary32_to_bid32("0", "[e6171e30]", "[bb1b3916]", "0x20")
+ self.binary32_to_bid32("1", "[e6171e30]", "[bb1b3916]", "0x20")
+ self.binary32_to_bid32("2", "[e6171e30]", "[bb1b3915]", "0x20")
+ self.binary32_to_bid32("3", "[e6171e30]", "[bb1b3915]", "0x20")
+ self.binary32_to_bid32("4", "[e6171e30]", "[bb1b3916]", "0x20")
+ self.binary32_to_bid32("0", "[e8ac1ff1]", "[bbe33922]", "0x20")
+ self.binary32_to_bid32("1", "[e8ac1ff1]", "[bbe33923]", "0x20")
+ self.binary32_to_bid32("2", "[e8ac1ff1]", "[bbe33922]", "0x20")
+ self.binary32_to_bid32("3", "[e8ac1ff1]", "[bbe33922]", "0x20")
+ self.binary32_to_bid32("4", "[e8ac1ff1]", "[bbe33922]", "0x20")
+ self.binary32_to_bid32("0", "[e979cd04]", "[bc1cccd2]", "0x20")
+ self.binary32_to_bid32("1", "[e979cd04]", "[bc1cccd2]", "0x20")
+ self.binary32_to_bid32("2", "[e979cd04]", "[bc1cccd1]", "0x20")
+ self.binary32_to_bid32("3", "[e979cd04]", "[bc1cccd1]", "0x20")
+ self.binary32_to_bid32("4", "[e979cd04]", "[bc1cccd2]", "0x20")
+ self.binary32_to_bid32("0", "[eb1ffe11]", "[bc9d836e]", "0x20")
+ self.binary32_to_bid32("1", "[eb1ffe11]", "[bc9d836f]", "0x20")
+ self.binary32_to_bid32("2", "[eb1ffe11]", "[bc9d836e]", "0x20")
+ self.binary32_to_bid32("3", "[eb1ffe11]", "[bc9d836e]", "0x20")
+ self.binary32_to_bid32("4", "[eb1ffe11]", "[bc9d836e]", "0x20")
+ self.binary32_to_bid32("0", "[ec0793a0]", "[bce409b5]", "0x20")
+ self.binary32_to_bid32("1", "[ec0793a0]", "[bce409b6]", "0x20")
+ self.binary32_to_bid32("2", "[ec0793a0]", "[bce409b5]", "0x20")
+ self.binary32_to_bid32("3", "[ec0793a0]", "[bce409b5]", "0x20")
+ self.binary32_to_bid32("4", "[ec0793a0]", "[bce409b5]", "0x20")
+ self.binary32_to_bid32("0", "[ecaf2869]", "[bd19d947]", "0x20")
+ self.binary32_to_bid32("1", "[ecaf2869]", "[bd19d947]", "0x20")
+ self.binary32_to_bid32("2", "[ecaf2869]", "[bd19d946]", "0x20")
+ self.binary32_to_bid32("3", "[ecaf2869]", "[bd19d946]", "0x20")
+ self.binary32_to_bid32("4", "[ecaf2869]", "[bd19d947]", "0x20")
+ self.binary32_to_bid32("0", "[ee0793a0]", "[bd90018e]", "0x20")
+ self.binary32_to_bid32("1", "[ee0793a0]", "[bd90018e]", "0x20")
+ self.binary32_to_bid32("2", "[ee0793a0]", "[bd90018d]", "0x20")
+ self.binary32_to_bid32("3", "[ee0793a0]", "[bd90018d]", "0x20")
+ self.binary32_to_bid32("4", "[ee0793a0]", "[bd90018e]", "0x20")
+ self.binary32_to_bid32("0", "[ef65ca5b]", "[bdec83f6]", "0x20")
+ self.binary32_to_bid32("1", "[ef65ca5b]", "[bdec83f7]", "0x20")
+ self.binary32_to_bid32("2", "[ef65ca5b]", "[bdec83f6]", "0x20")
+ self.binary32_to_bid32("3", "[ef65ca5b]", "[bdec83f6]", "0x20")
+ self.binary32_to_bid32("4", "[ef65ca5b]", "[bdec83f6]", "0x20")
+ self.binary32_to_bid32("0", "[f127dad8]", "[be7ed3da]", "0x20")
+ self.binary32_to_bid32("1", "[f127dad8]", "[be7ed3db]", "0x20")
+ self.binary32_to_bid32("2", "[f127dad8]", "[be7ed3da]", "0x20")
+ self.binary32_to_bid32("3", "[f127dad8]", "[be7ed3da]", "0x20")
+ self.binary32_to_bid32("4", "[f127dad8]", "[be7ed3da]", "0x20")
+ self.binary32_to_bid32("0", "[f1a7dad8]", "[be995d92]", "0x20")
+ self.binary32_to_bid32("1", "[f1a7dad8]", "[be995d93]", "0x20")
+ self.binary32_to_bid32("2", "[f1a7dad8]", "[be995d92]", "0x20")
+ self.binary32_to_bid32("3", "[f1a7dad8]", "[be995d92]", "0x20")
+ self.binary32_to_bid32("4", "[f1a7dad8]", "[be995d92]", "0x20")
+ self.binary32_to_bid32("0", "[f461c023]", "[bf6d2a90]", "0x20")
+ self.binary32_to_bid32("1", "[f461c023]", "[bf6d2a90]", "0x20")
+ self.binary32_to_bid32("2", "[f461c023]", "[bf6d2a8f]", "0x20")
+ self.binary32_to_bid32("3", "[f461c023]", "[bf6d2a8f]", "0x20")
+ self.binary32_to_bid32("4", "[f461c023]", "[bf6d2a90]", "0x20")
+ self.binary32_to_bid32("0", "[f519cb5a]", "[bf9dbf87]", "0x20")
+ self.binary32_to_bid32("1", "[f519cb5a]", "[bf9dbf87]", "0x20")
+ self.binary32_to_bid32("2", "[f519cb5a]", "[bf9dbf86]", "0x20")
+ self.binary32_to_bid32("3", "[f519cb5a]", "[bf9dbf86]", "0x20")
+ self.binary32_to_bid32("4", "[f519cb5a]", "[bf9dbf87]", "0x20")
+ self.binary32_to_bid32("0", "[f6a66b49]", "[c019c08a]", "0x20")
+ self.binary32_to_bid32("1", "[f6a66b49]", "[c019c08b]", "0x20")
+ self.binary32_to_bid32("2", "[f6a66b49]", "[c019c08a]", "0x20")
+ self.binary32_to_bid32("3", "[f6a66b49]", "[c019c08a]", "0x20")
+ self.binary32_to_bid32("4", "[f6a66b49]", "[c019c08a]", "0x20")
+ self.binary32_to_bid32("0", "[f7e7ed40]", "[f00f8e43]", "0x20")
+ self.binary32_to_bid32("1", "[f7e7ed40]", "[f00f8e44]", "0x20")
+ self.binary32_to_bid32("2", "[f7e7ed40]", "[f00f8e43]", "0x20")
+ self.binary32_to_bid32("3", "[f7e7ed40]", "[f00f8e43]", "0x20")
+ self.binary32_to_bid32("4", "[f7e7ed40]", "[f00f8e43]", "0x20")
+ self.binary32_to_bid32("0", "[f8509555]", "[c099d245]", "0x20")
+ self.binary32_to_bid32("1", "[f8509555]", "[c099d246]", "0x20")
+ self.binary32_to_bid32("2", "[f8509555]", "[c099d245]", "0x20")
+ self.binary32_to_bid32("3", "[f8509555]", "[c099d245]", "0x20")
+ self.binary32_to_bid32("4", "[f8509555]", "[c099d245]", "0x20")
+ self.binary32_to_bid32("0", "[f9d7bd00]", "[c1155d9e]", "0x20")
+ self.binary32_to_bid32("1", "[f9d7bd00]", "[c1155d9e]", "0x20")
+ self.binary32_to_bid32("2", "[f9d7bd00]", "[c1155d9d]", "0x20")
+ self.binary32_to_bid32("3", "[f9d7bd00]", "[c1155d9d]", "0x20")
+ self.binary32_to_bid32("4", "[f9d7bd00]", "[c1155d9e]", "0x20")
+ self.binary32_to_bid32("0", "[f9fe8434]", "[c11934c2]", "0x20")
+ self.binary32_to_bid32("1", "[f9fe8434]", "[c11934c2]", "0x20")
+ self.binary32_to_bid32("2", "[f9fe8434]", "[c11934c1]", "0x20")
+ self.binary32_to_bid32("3", "[f9fe8434]", "[c11934c1]", "0x20")
+ self.binary32_to_bid32("4", "[f9fe8434]", "[c11934c2]", "0x20")
+ self.binary32_to_bid32("0", "[fd27b58a]", "[c2154279]", "0x20")
+ self.binary32_to_bid32("1", "[fd27b58a]", "[c215427a]", "0x20")
+ self.binary32_to_bid32("2", "[fd27b58a]", "[c2154279]", "0x20")
+ self.binary32_to_bid32("3", "[fd27b58a]", "[c2154279]", "0x20")
+ self.binary32_to_bid32("4", "[fd27b58a]", "[c2154279]", "0x20")
+ self.binary32_to_bid32("0", "[fe27b58a]", "[c25509e4]", "0x20")
+ self.binary32_to_bid32("1", "[fe27b58a]", "[c25509e5]", "0x20")
+ self.binary32_to_bid32("2", "[fe27b58a]", "[c25509e4]", "0x20")
+ self.binary32_to_bid32("3", "[fe27b58a]", "[c25509e4]", "0x20")
+ self.binary32_to_bid32("4", "[fe27b58a]", "[c25509e4]", "0x20")
+ self.binary32_to_bid32("0", "[ff7fffff]", "[c2b3ec47]", "0x20")
+ self.binary32_to_bid32("1", "[ff7fffff]", "[c2b3ec48]", "0x20")
+ self.binary32_to_bid32("2", "[ff7fffff]", "[c2b3ec47]", "0x20")
+ self.binary32_to_bid32("3", "[ff7fffff]", "[c2b3ec47]", "0x20")
+ self.binary32_to_bid32("4", "[ff7fffff]", "[c2b3ec47]", "0x20")
+ self.binary32_to_bid32("0", "[ff800000]", "[f8000000]", "0x00")
+ self.binary32_to_bid32("1", "[ff800000]", "[f8000000]", "0x00")
+ self.binary32_to_bid32("2", "[ff800000]", "[f8000000]", "0x00")
+ self.binary32_to_bid32("3", "[ff800000]", "[f8000000]", "0x00")
+ self.binary32_to_bid32("4", "[ff800000]", "[f8000000]", "0x00")
+ }
+
+ private func binary32_to_bid32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseFloat(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_binary32_to_bid64() {
+ self.binary32_to_bid64("0", "[00000000]", "[31c0000000000000]", "00")
+ self.binary32_to_bid64("0", "[00000000]", "[31c0000000000000]", "0x00")
+ self.binary32_to_bid64("0", "[00000001]", "[2a44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("0", "[00000001]", "[2A44FA793930BCD1]", "22")
+ self.binary32_to_bid64("0", "[00000002]", "[2A49F4F2726179A2]", "22")
+ self.binary32_to_bid64("0", "[00000004]", "[2A53E9E4E4C2F344]", "22")
+ self.binary32_to_bid64("0", "[00000008]", "[2A63FB942DC0970E]", "22")
+ self.binary32_to_bid64("0", "[00000010]", "[2A67F7285B812E1B]", "22")
+ self.binary32_to_bid64("0", "[00000020]", "[2A6FEE50B7025C37]", "22")
+ self.binary32_to_bid64("0", "[00000040]", "[2A7FDCA16E04B86D]", "22")
+ self.binary32_to_bid64("0", "[00000080]", "[2A865F537C675816]", "22")
+ self.binary32_to_bid64("0", "[00000100]", "[2A8CBEA6F8CEB02C]", "22")
+ self.binary32_to_bid64("0", "[00000200]", "[2A997D4DF19D6057]", "22")
+ self.binary32_to_bid64("0", "[00000265]", "[2a9e8485d1c6ebd9]", "0x22")
+ self.binary32_to_bid64("0", "[00000400]", "[2AA5190F96B91345]", "22")
+ self.binary32_to_bid64("0", "[00000800]", "[2AAA321F2D722689]", "22")
+ self.binary32_to_bid64("0", "[00001000]", "[2AB4643E5AE44D13]", "22")
+ self.binary32_to_bid64("0", "[00002000]", "[2AC4140C78940F6A]", "22")
+ self.binary32_to_bid64("0", "[00004000]", "[2AC82818F1281ED4]", "22")
+ self.binary32_to_bid64("0", "[00008000]", "[2AD05031E2503DA9]", "22")
+ self.binary32_to_bid64("0", "[00010000]", "[6AB0A063C4A07B51]", "22")
+ self.binary32_to_bid64("0", "[00020000]", "[2AE6867A5A867F10]", "22")
+ self.binary32_to_bid64("0", "[00040000]", "[2AED0CF4B50CFE20]", "22")
+ self.binary32_to_bid64("0", "[00080000]", "[2AFA19E96A19FC41]", "22")
+ self.binary32_to_bid64("0", "[00100000]", "[2B053861E2053273]", "22")
+ self.binary32_to_bid64("0", "[00130c2a]", "[2b0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("0", "[00200000]", "[2B0A70C3C40A64E7]", "22")
+ self.binary32_to_bid64("0", "[00400000]", "[2B14E1878814C9CE]", "22")
+ self.binary32_to_bid64("0", "[007fffff]", "[2B242D1B12DD2559]", "22")
+ self.binary32_to_bid64("0", "[00800000]", "[2b242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("0", "[00800000]", "[2B242D1B1B375B90]", "20")
+ self.binary32_to_bid64("0", "[01000000]", "[2b285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("0", "[034e3140]", "[2b55870988bd007f]", "0x20")
+ self.binary32_to_bid64("0", "[0a441400]", "[6af18a5fcdb8d437]", "0x20")
+ self.binary32_to_bid64("0", "[0fbe9f30]", "[2c46ad8e3fe77bda]", "0x20")
+ self.binary32_to_bid64("0", "[14b1f470]", "[2ca66241cdd98472]", "0x20")
+ self.binary32_to_bid64("0", "[1b247258]", "[2d24d528bcd654da]", "0x20")
+ self.binary32_to_bid64("0", "[218d568f]", "[6b6206a25682726d]", "0x20")
+ self.binary32_to_bid64("0", "[263dbf34]", "[2df7635b25f99028]", "0x20")
+ self.binary32_to_bid64("0", "[2bfcb90c]", "[2e66612eddba9727]", "0x20")
+ self.binary32_to_bid64("0", "[2fb933e0]", "[2eabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("0", "[37a772a3]", "[2f47177901aef999]", "0x20")
+ self.binary32_to_bid64("0", "[3ca3d32e]", "[2fa71ad26de1fcbc]", "0x20")
+ self.binary32_to_bid64("0", "[3d500000]", "[30c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("0", "[3F000000]", "[31A0000000000005]", "00")
+ self.binary32_to_bid64("0", "[3f800000]", "[31c0000000000001]", "0x00")
+ self.binary32_to_bid64("0", "[3fc00000]", "[31a000000000000f]", "0x00")
+ self.binary32_to_bid64("0", "[40000000]", "[31C0000000000002]", "00")
+ self.binary32_to_bid64("0", "[42800000]", "[31c0000000000040]", "0x00")
+ self.binary32_to_bid64("0", "[42ffffff]", "[30248c2734c3d8c7]", "0x20")
+ self.binary32_to_bid64("0", "[4479c000]", "[31c00000000003e7]", "0x00")
+ self.binary32_to_bid64("0", "[447a0000]", "[31c00000000003e8]", "0x00")
+ self.binary32_to_bid64("0", "[48434fff]", "[3100002e90ed92f7]", "0x00")
+ self.binary32_to_bid64("0", "[4d3ebc1e]", "[31c000000bebc1e0]", "0x00")
+ self.binary32_to_bid64("0", "[53800000]", "[31c0010000000000]", "0x00")
+ self.binary32_to_bid64("0", "[58e35fa9]", "[31c71afd48000000]", "0x00")
+ self.binary32_to_bid64("0", "[5dde0b3c]", "[32271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("0", "[63ffc60a]", "[6ca1865668c26139]", "0x20")
+ self.binary32_to_bid64("0", "[6913905f]", "[3303f60d3ed61f49]", "0x20")
+ self.binary32_to_bid64("0", "[6ecefb55]", "[336b610267087502]", "0x20")
+ self.binary32_to_bid64("0", "[73ff532e]", "[33ce5f9eb18201d8]", "0x20")
+ self.binary32_to_bid64("0", "[79a96fd9]", "[3443e82dcfb9612f]", "0x20")
+ self.binary32_to_bid64("0", "[7CF0BDC2]", "[6D1B86F26BCF1C05]", "20")
+ self.binary32_to_bid64("0", "[7E000000]", "[348F1C90080BAF73]", "20")
+ self.binary32_to_bid64("0", "[7E800000]", "[349E392010175EE6]", "20")
+ self.binary32_to_bid64("0", "[7E967699]", "[6D2386F25CB28BFC]", "20")
+ self.binary32_to_bid64("0", "[7F000000]", "[34A60B6CD004AC94]", "20")
+ self.binary32_to_bid64("0", "[7f7fffff]", "[34ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("0", "[7f7fffff]", "[34AC16D993F27F89]", "20")
+ self.binary32_to_bid64("0", "[7f800000]", "[7800000000000000]", "00")
+ self.binary32_to_bid64("0", "[7f800000]", "[7800000000000000]", "0x00")
+ self.binary32_to_bid64("0", "[7fc00000]", "[7c00000000000000]", "00")
+ self.binary32_to_bid64("0", "[7fc00001]", "[7c00000010000000]", "00")
+ self.binary32_to_bid64("0", "[7fc00004]", "[7c00000040000000]", "00")
+ self.binary32_to_bid64("0", "[7fcfffff]", "[7c00fffff0000000]", "00")
+ self.binary32_to_bid64("0", "[7fe00000]", "[7c02000000000000]", "00")
+ self.binary32_to_bid64("0", "[7ff8d7ea]", "[7c038d7ea0000000]", "00")
+ self.binary32_to_bid64("0", "[7ff8d7eb]", "[7c00000000000000]", "00")
+ self.binary32_to_bid64("0", "[7fffffff]", "[7c00000000000000]", "00")
+ self.binary32_to_bid64("0", "[80000000]", "[b1c0000000000000]", "00")
+ self.binary32_to_bid64("0", "[80000001]", "[aa44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("0", "[80000001]", "[AA44FA793930BCD1]", "22")
+ self.binary32_to_bid64("0", "[80000265]", "[aa9e8485d1c6ebd9]", "0x22")
+ self.binary32_to_bid64("0", "[80130c2a]", "[ab0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("0", "[807fffff]", "[AB242D1B12DD2559]", "22")
+ self.binary32_to_bid64("0", "[80800000]", "[ab242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("0", "[80800000]", "[AB242D1B1B375B90]", "20")
+ self.binary32_to_bid64("0", "[81000000]", "[ab285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("0", "[834e3140]", "[ab55870988bd007f]", "0x20")
+ self.binary32_to_bid64("0", "[8a441400]", "[eaf18a5fcdb8d437]", "0x20")
+ self.binary32_to_bid64("0", "[8fbe9f30]", "[ac46ad8e3fe77bda]", "0x20")
+ self.binary32_to_bid64("0", "[94b1f470]", "[aca66241cdd98472]", "0x20")
+ self.binary32_to_bid64("0", "[9b247258]", "[ad24d528bcd654da]", "0x20")
+ self.binary32_to_bid64("0", "[a18d568f]", "[eb6206a25682726d]", "0x20")
+ self.binary32_to_bid64("0", "[a63dbf34]", "[adf7635b25f99028]", "0x20")
+ self.binary32_to_bid64("0", "[abfcb90c]", "[ae66612eddba9727]", "0x20")
+ self.binary32_to_bid64("0", "[afb933e0]", "[aeabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("0", "[b7a772a3]", "[af47177901aef999]", "0x20")
+ self.binary32_to_bid64("0", "[bca3d32e]", "[afa71ad26de1fcbc]", "0x20")
+ self.binary32_to_bid64("0", "[bd500000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("0", "[bf800000]", "[b1c0000000000001]", "0x00")
+ self.binary32_to_bid64("0", "[bfc00000]", "[b1a000000000000f]", "0x00")
+ self.binary32_to_bid64("0", "[c2800000]", "[b1c0000000000040]", "0x00")
+ self.binary32_to_bid64("0", "[c2ffffff]", "[b0248c2734c3d8c7]", "0x20")
+ self.binary32_to_bid64("0", "[c479c000]", "[b1c00000000003e7]", "0x00")
+ self.binary32_to_bid64("0", "[c47a0000]", "[b1c00000000003e8]", "0x00")
+ self.binary32_to_bid64("0", "[c8434fff]", "[b100002e90ed92f7]", "0x00")
+ self.binary32_to_bid64("0", "[cd3ebc1e]", "[b1c000000bebc1e0]", "0x00")
+ self.binary32_to_bid64("0", "[d3800000]", "[b1c0010000000000]", "0x00")
+ self.binary32_to_bid64("0", "[d8e35fa9]", "[b1c71afd48000000]", "0x00")
+ self.binary32_to_bid64("0", "[ddde0b3c]", "[b2271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("0", "[e3ffc60a]", "[eca1865668c26139]", "0x20")
+ self.binary32_to_bid64("0", "[e913905f]", "[b303f60d3ed61f49]", "0x20")
+ self.binary32_to_bid64("0", "[eecefb55]", "[b36b610267087502]", "0x20")
+ self.binary32_to_bid64("0", "[f3ff532e]", "[b3ce5f9eb18201d8]", "0x20")
+ self.binary32_to_bid64("0", "[f9a96fd9]", "[b443e82dcfb9612f]", "0x20")
+ self.binary32_to_bid64("0", "[ff7fffff]", "[b4ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("0", "[ff7fffff]", "[B4AC16D993F27F89]", "20")
+ self.binary32_to_bid64("0", "[ff800000]", "[f800000000000000]", "00")
+ self.binary32_to_bid64("0", "[ff800000]", "[f800000000000000]", "0x00")
+ self.binary32_to_bid64("0", "[ffc00000]", "[fc00000000000000]", "00")
+ self.binary32_to_bid64("1", "[00000000]", "[31c0000000000000]", "0x00")
+ self.binary32_to_bid64("1", "[00000001]", "[2a44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("1", "[00000265]", "[2a9e8485d1c6ebd8]", "0x22")
+ self.binary32_to_bid64("1", "[00130c2a]", "[2b0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("1", "[00800000]", "[2b242d1b1b375b8f]", "0x20")
+ self.binary32_to_bid64("1", "[01000000]", "[2b285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("1", "[034e3140]", "[2b55870988bd007f]", "0x20")
+ self.binary32_to_bid64("1", "[0a441400]", "[6af18a5fcdb8d436]", "0x20")
+ self.binary32_to_bid64("1", "[0fbe9f30]", "[2c46ad8e3fe77bd9]", "0x20")
+ self.binary32_to_bid64("1", "[14b1f470]", "[2ca66241cdd98472]", "0x20")
+ self.binary32_to_bid64("1", "[1b247258]", "[2d24d528bcd654da]", "0x20")
+ self.binary32_to_bid64("1", "[218d568f]", "[6b6206a25682726d]", "0x20")
+ self.binary32_to_bid64("1", "[263dbf34]", "[2df7635b25f99028]", "0x20")
+ self.binary32_to_bid64("1", "[2bfcb90c]", "[2e66612eddba9726]", "0x20")
+ self.binary32_to_bid64("1", "[2fb933e0]", "[2eabf7ebad149c75]", "0x20")
+ self.binary32_to_bid64("1", "[37a772a3]", "[2f47177901aef998]", "0x20")
+ self.binary32_to_bid64("1", "[3ca3d32e]", "[2fa71ad26de1fcbc]", "0x20")
+ self.binary32_to_bid64("1", "[3d500000]", "[30c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("1", "[3f800000]", "[31c0000000000001]", "0x00")
+ self.binary32_to_bid64("1", "[3fc00000]", "[31a000000000000f]", "0x00")
+ self.binary32_to_bid64("1", "[42800000]", "[31c0000000000040]", "0x00")
+ self.binary32_to_bid64("1", "[42ffffff]", "[30248c2734c3d8c6]", "0x20")
+ self.binary32_to_bid64("1", "[4479c000]", "[31c00000000003e7]", "0x00")
+ self.binary32_to_bid64("1", "[447a0000]", "[31c00000000003e8]", "0x00")
+ self.binary32_to_bid64("1", "[48434fff]", "[3100002e90ed92f7]", "0x00")
+ self.binary32_to_bid64("1", "[4d3ebc1e]", "[31c000000bebc1e0]", "0x00")
+ self.binary32_to_bid64("1", "[53800000]", "[31c0010000000000]", "0x00")
+ self.binary32_to_bid64("1", "[58e35fa9]", "[31c71afd48000000]", "0x00")
+ self.binary32_to_bid64("1", "[5dde0b3c]", "[32271afbc6a7ef9d]", "0x20")
+ self.binary32_to_bid64("1", "[63ffc60a]", "[6ca1865668c26138]", "0x20")
+ self.binary32_to_bid64("1", "[6913905f]", "[3303f60d3ed61f48]", "0x20")
+ self.binary32_to_bid64("1", "[6ecefb55]", "[336b610267087501]", "0x20")
+ self.binary32_to_bid64("1", "[73ff532e]", "[33ce5f9eb18201d7]", "0x20")
+ self.binary32_to_bid64("1", "[79a96fd9]", "[3443e82dcfb9612e]", "0x20")
+ self.binary32_to_bid64("1", "[7f7fffff]", "[34ac16d993f27f88]", "0x20")
+ self.binary32_to_bid64("1", "[7f800000]", "[7800000000000000]", "0x00")
+ self.binary32_to_bid64("1", "[80000001]", "[aa44fa793930bcd2]", "0x22")
+ self.binary32_to_bid64("1", "[80000265]", "[aa9e8485d1c6ebd9]", "0x22")
+ self.binary32_to_bid64("1", "[80130c2a]", "[ab0636ec39d0a11d]", "0x22")
+ self.binary32_to_bid64("1", "[80800000]", "[ab242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("1", "[81000000]", "[ab285a36366eb720]", "0x20")
+ self.binary32_to_bid64("1", "[834e3140]", "[ab55870988bd0080]", "0x20")
+ self.binary32_to_bid64("1", "[8a441400]", "[eaf18a5fcdb8d437]", "0x20")
+ self.binary32_to_bid64("1", "[8fbe9f30]", "[ac46ad8e3fe77bda]", "0x20")
+ self.binary32_to_bid64("1", "[94b1f470]", "[aca66241cdd98473]", "0x20")
+ self.binary32_to_bid64("1", "[9b247258]", "[ad24d528bcd654db]", "0x20")
+ self.binary32_to_bid64("1", "[a18d568f]", "[eb6206a25682726e]", "0x20")
+ self.binary32_to_bid64("1", "[a63dbf34]", "[adf7635b25f99029]", "0x20")
+ self.binary32_to_bid64("1", "[abfcb90c]", "[ae66612eddba9727]", "0x20")
+ self.binary32_to_bid64("1", "[afb933e0]", "[aeabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("1", "[b7a772a3]", "[af47177901aef999]", "0x20")
+ self.binary32_to_bid64("1", "[bca3d32e]", "[afa71ad26de1fcbd]", "0x20")
+ self.binary32_to_bid64("1", "[bd500000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("1", "[bf800000]", "[b1c0000000000001]", "0x00")
+ self.binary32_to_bid64("1", "[bfc00000]", "[b1a000000000000f]", "0x00")
+ self.binary32_to_bid64("1", "[c2800000]", "[b1c0000000000040]", "0x00")
+ self.binary32_to_bid64("1", "[c2ffffff]", "[b0248c2734c3d8c7]", "0x20")
+ self.binary32_to_bid64("1", "[c479c000]", "[b1c00000000003e7]", "0x00")
+ self.binary32_to_bid64("1", "[c47a0000]", "[b1c00000000003e8]", "0x00")
+ self.binary32_to_bid64("1", "[c8434fff]", "[b100002e90ed92f7]", "0x00")
+ self.binary32_to_bid64("1", "[cd3ebc1e]", "[b1c000000bebc1e0]", "0x00")
+ self.binary32_to_bid64("1", "[d3800000]", "[b1c0010000000000]", "0x00")
+ self.binary32_to_bid64("1", "[d8e35fa9]", "[b1c71afd48000000]", "0x00")
+ self.binary32_to_bid64("1", "[ddde0b3c]", "[b2271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("1", "[e3ffc60a]", "[eca1865668c26139]", "0x20")
+ self.binary32_to_bid64("1", "[e913905f]", "[b303f60d3ed61f49]", "0x20")
+ self.binary32_to_bid64("1", "[eecefb55]", "[b36b610267087502]", "0x20")
+ self.binary32_to_bid64("1", "[f3ff532e]", "[b3ce5f9eb18201d8]", "0x20")
+ self.binary32_to_bid64("1", "[f9a96fd9]", "[b443e82dcfb9612f]", "0x20")
+ self.binary32_to_bid64("1", "[ff7fffff]", "[b4ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("1", "[ff800000]", "[f800000000000000]", "0x00")
+ self.binary32_to_bid64("2", "[00000000]", "[31c0000000000000]", "0x00")
+ self.binary32_to_bid64("2", "[00000001]", "[2a44fa793930bcd2]", "0x22")
+ self.binary32_to_bid64("2", "[00000265]", "[2a9e8485d1c6ebd9]", "0x22")
+ self.binary32_to_bid64("2", "[00130c2a]", "[2b0636ec39d0a11d]", "0x22")
+ self.binary32_to_bid64("2", "[00800000]", "[2b242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("2", "[01000000]", "[2b285a36366eb720]", "0x20")
+ self.binary32_to_bid64("2", "[034e3140]", "[2b55870988bd0080]", "0x20")
+ self.binary32_to_bid64("2", "[0a441400]", "[6af18a5fcdb8d437]", "0x20")
+ self.binary32_to_bid64("2", "[0fbe9f30]", "[2c46ad8e3fe77bda]", "0x20")
+ self.binary32_to_bid64("2", "[14b1f470]", "[2ca66241cdd98473]", "0x20")
+ self.binary32_to_bid64("2", "[1b247258]", "[2d24d528bcd654db]", "0x20")
+ self.binary32_to_bid64("2", "[218d568f]", "[6b6206a25682726e]", "0x20")
+ self.binary32_to_bid64("2", "[263dbf34]", "[2df7635b25f99029]", "0x20")
+ self.binary32_to_bid64("2", "[2bfcb90c]", "[2e66612eddba9727]", "0x20")
+ self.binary32_to_bid64("2", "[2fb933e0]", "[2eabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("2", "[37a772a3]", "[2f47177901aef999]", "0x20")
+ self.binary32_to_bid64("2", "[3ca3d32e]", "[2fa71ad26de1fcbd]", "0x20")
+ self.binary32_to_bid64("2", "[3d500000]", "[30c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("2", "[3f800000]", "[31c0000000000001]", "0x00")
+ self.binary32_to_bid64("2", "[3fc00000]", "[31a000000000000f]", "0x00")
+ self.binary32_to_bid64("2", "[42800000]", "[31c0000000000040]", "0x00")
+ self.binary32_to_bid64("2", "[42ffffff]", "[30248c2734c3d8c7]", "0x20")
+ self.binary32_to_bid64("2", "[4479c000]", "[31c00000000003e7]", "0x00")
+ self.binary32_to_bid64("2", "[447a0000]", "[31c00000000003e8]", "0x00")
+ self.binary32_to_bid64("2", "[48434fff]", "[3100002e90ed92f7]", "0x00")
+ self.binary32_to_bid64("2", "[4d3ebc1e]", "[31c000000bebc1e0]", "0x00")
+ self.binary32_to_bid64("2", "[53800000]", "[31c0010000000000]", "0x00")
+ self.binary32_to_bid64("2", "[58e35fa9]", "[31c71afd48000000]", "0x00")
+ self.binary32_to_bid64("2", "[5dde0b3c]", "[32271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("2", "[63ffc60a]", "[6ca1865668c26139]", "0x20")
+ self.binary32_to_bid64("2", "[6913905f]", "[3303f60d3ed61f49]", "0x20")
+ self.binary32_to_bid64("2", "[6ecefb55]", "[336b610267087502]", "0x20")
+ self.binary32_to_bid64("2", "[73ff532e]", "[33ce5f9eb18201d8]", "0x20")
+ self.binary32_to_bid64("2", "[79a96fd9]", "[3443e82dcfb9612f]", "0x20")
+ self.binary32_to_bid64("2", "[7f7fffff]", "[34ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("2", "[7f800000]", "[7800000000000000]", "0x00")
+ self.binary32_to_bid64("2", "[80000001]", "[aa44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("2", "[80000265]", "[aa9e8485d1c6ebd8]", "0x22")
+ self.binary32_to_bid64("2", "[80130c2a]", "[ab0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("2", "[80800000]", "[ab242d1b1b375b8f]", "0x20")
+ self.binary32_to_bid64("2", "[81000000]", "[ab285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("2", "[834e3140]", "[ab55870988bd007f]", "0x20")
+ self.binary32_to_bid64("2", "[8a441400]", "[eaf18a5fcdb8d436]", "0x20")
+ self.binary32_to_bid64("2", "[8fbe9f30]", "[ac46ad8e3fe77bd9]", "0x20")
+ self.binary32_to_bid64("2", "[94b1f470]", "[aca66241cdd98472]", "0x20")
+ self.binary32_to_bid64("2", "[9b247258]", "[ad24d528bcd654da]", "0x20")
+ self.binary32_to_bid64("2", "[a18d568f]", "[eb6206a25682726d]", "0x20")
+ self.binary32_to_bid64("2", "[a63dbf34]", "[adf7635b25f99028]", "0x20")
+ self.binary32_to_bid64("2", "[abfcb90c]", "[ae66612eddba9726]", "0x20")
+ self.binary32_to_bid64("2", "[afb933e0]", "[aeabf7ebad149c75]", "0x20")
+ self.binary32_to_bid64("2", "[b7a772a3]", "[af47177901aef998]", "0x20")
+ self.binary32_to_bid64("2", "[bca3d32e]", "[afa71ad26de1fcbc]", "0x20")
+ self.binary32_to_bid64("2", "[bd500000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("2", "[bf800000]", "[b1c0000000000001]", "0x00")
+ self.binary32_to_bid64("2", "[bfc00000]", "[b1a000000000000f]", "0x00")
+ self.binary32_to_bid64("2", "[c2800000]", "[b1c0000000000040]", "0x00")
+ self.binary32_to_bid64("2", "[c2ffffff]", "[b0248c2734c3d8c6]", "0x20")
+ self.binary32_to_bid64("2", "[c479c000]", "[b1c00000000003e7]", "0x00")
+ self.binary32_to_bid64("2", "[c47a0000]", "[b1c00000000003e8]", "0x00")
+ self.binary32_to_bid64("2", "[c8434fff]", "[b100002e90ed92f7]", "0x00")
+ self.binary32_to_bid64("2", "[cd3ebc1e]", "[b1c000000bebc1e0]", "0x00")
+ self.binary32_to_bid64("2", "[d3800000]", "[b1c0010000000000]", "0x00")
+ self.binary32_to_bid64("2", "[d8e35fa9]", "[b1c71afd48000000]", "0x00")
+ self.binary32_to_bid64("2", "[ddde0b3c]", "[b2271afbc6a7ef9d]", "0x20")
+ self.binary32_to_bid64("2", "[e3ffc60a]", "[eca1865668c26138]", "0x20")
+ self.binary32_to_bid64("2", "[e913905f]", "[b303f60d3ed61f48]", "0x20")
+ self.binary32_to_bid64("2", "[eecefb55]", "[b36b610267087501]", "0x20")
+ self.binary32_to_bid64("2", "[f3ff532e]", "[b3ce5f9eb18201d7]", "0x20")
+ self.binary32_to_bid64("2", "[f9a96fd9]", "[b443e82dcfb9612e]", "0x20")
+ self.binary32_to_bid64("2", "[ff7fffff]", "[b4ac16d993f27f88]", "0x20")
+ self.binary32_to_bid64("2", "[ff800000]", "[f800000000000000]", "0x00")
+ self.binary32_to_bid64("3", "[00000000]", "[31c0000000000000]", "0x00")
+ self.binary32_to_bid64("3", "[00000001]", "[2a44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("3", "[00000265]", "[2a9e8485d1c6ebd8]", "0x22")
+ self.binary32_to_bid64("3", "[00130c2a]", "[2b0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("3", "[00800000]", "[2b242d1b1b375b8f]", "0x20")
+ self.binary32_to_bid64("3", "[01000000]", "[2b285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("3", "[034e3140]", "[2b55870988bd007f]", "0x20")
+ self.binary32_to_bid64("3", "[0a441400]", "[6af18a5fcdb8d436]", "0x20")
+ self.binary32_to_bid64("3", "[0fbe9f30]", "[2c46ad8e3fe77bd9]", "0x20")
+ self.binary32_to_bid64("3", "[14b1f470]", "[2ca66241cdd98472]", "0x20")
+ self.binary32_to_bid64("3", "[1b247258]", "[2d24d528bcd654da]", "0x20")
+ self.binary32_to_bid64("3", "[218d568f]", "[6b6206a25682726d]", "0x20")
+ self.binary32_to_bid64("3", "[263dbf34]", "[2df7635b25f99028]", "0x20")
+ self.binary32_to_bid64("3", "[2bfcb90c]", "[2e66612eddba9726]", "0x20")
+ self.binary32_to_bid64("3", "[2fb933e0]", "[2eabf7ebad149c75]", "0x20")
+ self.binary32_to_bid64("3", "[37a772a3]", "[2f47177901aef998]", "0x20")
+ self.binary32_to_bid64("3", "[3ca3d32e]", "[2fa71ad26de1fcbc]", "0x20")
+ self.binary32_to_bid64("3", "[3d500000]", "[30c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("3", "[3f800000]", "[31c0000000000001]", "0x00")
+ self.binary32_to_bid64("3", "[3fc00000]", "[31a000000000000f]", "0x00")
+ self.binary32_to_bid64("3", "[42800000]", "[31c0000000000040]", "0x00")
+ self.binary32_to_bid64("3", "[42ffffff]", "[30248c2734c3d8c6]", "0x20")
+ self.binary32_to_bid64("3", "[4479c000]", "[31c00000000003e7]", "0x00")
+ self.binary32_to_bid64("3", "[447a0000]", "[31c00000000003e8]", "0x00")
+ self.binary32_to_bid64("3", "[48434fff]", "[3100002e90ed92f7]", "0x00")
+ self.binary32_to_bid64("3", "[4d3ebc1e]", "[31c000000bebc1e0]", "0x00")
+ self.binary32_to_bid64("3", "[53800000]", "[31c0010000000000]", "0x00")
+ self.binary32_to_bid64("3", "[58e35fa9]", "[31c71afd48000000]", "0x00")
+ self.binary32_to_bid64("3", "[5dde0b3c]", "[32271afbc6a7ef9d]", "0x20")
+ self.binary32_to_bid64("3", "[63ffc60a]", "[6ca1865668c26138]", "0x20")
+ self.binary32_to_bid64("3", "[6913905f]", "[3303f60d3ed61f48]", "0x20")
+ self.binary32_to_bid64("3", "[6ecefb55]", "[336b610267087501]", "0x20")
+ self.binary32_to_bid64("3", "[73ff532e]", "[33ce5f9eb18201d7]", "0x20")
+ self.binary32_to_bid64("3", "[79a96fd9]", "[3443e82dcfb9612e]", "0x20")
+ self.binary32_to_bid64("3", "[7f7fffff]", "[34ac16d993f27f88]", "0x20")
+ self.binary32_to_bid64("3", "[7f800000]", "[7800000000000000]", "0x00")
+ self.binary32_to_bid64("3", "[80000001]", "[aa44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("3", "[80000265]", "[aa9e8485d1c6ebd8]", "0x22")
+ self.binary32_to_bid64("3", "[80130c2a]", "[ab0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("3", "[80800000]", "[ab242d1b1b375b8f]", "0x20")
+ self.binary32_to_bid64("3", "[81000000]", "[ab285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("3", "[834e3140]", "[ab55870988bd007f]", "0x20")
+ self.binary32_to_bid64("3", "[8a441400]", "[eaf18a5fcdb8d436]", "0x20")
+ self.binary32_to_bid64("3", "[8fbe9f30]", "[ac46ad8e3fe77bd9]", "0x20")
+ self.binary32_to_bid64("3", "[94b1f470]", "[aca66241cdd98472]", "0x20")
+ self.binary32_to_bid64("3", "[9b247258]", "[ad24d528bcd654da]", "0x20")
+ self.binary32_to_bid64("3", "[a18d568f]", "[eb6206a25682726d]", "0x20")
+ self.binary32_to_bid64("3", "[a63dbf34]", "[adf7635b25f99028]", "0x20")
+ self.binary32_to_bid64("3", "[abfcb90c]", "[ae66612eddba9726]", "0x20")
+ self.binary32_to_bid64("3", "[afb933e0]", "[aeabf7ebad149c75]", "0x20")
+ self.binary32_to_bid64("3", "[b7a772a3]", "[af47177901aef998]", "0x20")
+ self.binary32_to_bid64("3", "[bca3d32e]", "[afa71ad26de1fcbc]", "0x20")
+ self.binary32_to_bid64("3", "[bd500000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("3", "[bf800000]", "[b1c0000000000001]", "0x00")
+ self.binary32_to_bid64("3", "[bfc00000]", "[b1a000000000000f]", "0x00")
+ self.binary32_to_bid64("3", "[c2800000]", "[b1c0000000000040]", "0x00")
+ self.binary32_to_bid64("3", "[c2ffffff]", "[b0248c2734c3d8c6]", "0x20")
+ self.binary32_to_bid64("3", "[c479c000]", "[b1c00000000003e7]", "0x00")
+ self.binary32_to_bid64("3", "[c47a0000]", "[b1c00000000003e8]", "0x00")
+ self.binary32_to_bid64("3", "[c8434fff]", "[b100002e90ed92f7]", "0x00")
+ self.binary32_to_bid64("3", "[cd3ebc1e]", "[b1c000000bebc1e0]", "0x00")
+ self.binary32_to_bid64("3", "[d3800000]", "[b1c0010000000000]", "0x00")
+ self.binary32_to_bid64("3", "[d8e35fa9]", "[b1c71afd48000000]", "0x00")
+ self.binary32_to_bid64("3", "[ddde0b3c]", "[b2271afbc6a7ef9d]", "0x20")
+ self.binary32_to_bid64("3", "[e3ffc60a]", "[eca1865668c26138]", "0x20")
+ self.binary32_to_bid64("3", "[e913905f]", "[b303f60d3ed61f48]", "0x20")
+ self.binary32_to_bid64("3", "[eecefb55]", "[b36b610267087501]", "0x20")
+ self.binary32_to_bid64("3", "[f3ff532e]", "[b3ce5f9eb18201d7]", "0x20")
+ self.binary32_to_bid64("3", "[f9a96fd9]", "[b443e82dcfb9612e]", "0x20")
+ self.binary32_to_bid64("3", "[ff7fffff]", "[b4ac16d993f27f88]", "0x20")
+ self.binary32_to_bid64("3", "[ff800000]", "[f800000000000000]", "0x00")
+ self.binary32_to_bid64("4", "[00000000]", "[31c0000000000000]", "0x00")
+ self.binary32_to_bid64("4", "[00000001]", "[2a44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("4", "[00000265]", "[2a9e8485d1c6ebd9]", "0x22")
+ self.binary32_to_bid64("4", "[00130c2a]", "[2b0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("4", "[00800000]", "[2b242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("4", "[01000000]", "[2b285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("4", "[034e3140]", "[2b55870988bd007f]", "0x20")
+ self.binary32_to_bid64("4", "[0a441400]", "[6af18a5fcdb8d437]", "0x20")
+ self.binary32_to_bid64("4", "[0fbe9f30]", "[2c46ad8e3fe77bda]", "0x20")
+ self.binary32_to_bid64("4", "[14b1f470]", "[2ca66241cdd98472]", "0x20")
+ self.binary32_to_bid64("4", "[1b247258]", "[2d24d528bcd654da]", "0x20")
+ self.binary32_to_bid64("4", "[218d568f]", "[6b6206a25682726d]", "0x20")
+ self.binary32_to_bid64("4", "[263dbf34]", "[2df7635b25f99028]", "0x20")
+ self.binary32_to_bid64("4", "[2bfcb90c]", "[2e66612eddba9727]", "0x20")
+ self.binary32_to_bid64("4", "[2fb933e0]", "[2eabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("4", "[37a772a3]", "[2f47177901aef999]", "0x20")
+ self.binary32_to_bid64("4", "[3ca3d32e]", "[2fa71ad26de1fcbc]", "0x20")
+ self.binary32_to_bid64("4", "[3d500000]", "[30c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("4", "[3f800000]", "[31c0000000000001]", "0x00")
+ self.binary32_to_bid64("4", "[3fc00000]", "[31a000000000000f]", "0x00")
+ self.binary32_to_bid64("4", "[42800000]", "[31c0000000000040]", "0x00")
+ self.binary32_to_bid64("4", "[42ffffff]", "[30248c2734c3d8c7]", "0x20")
+ self.binary32_to_bid64("4", "[4479c000]", "[31c00000000003e7]", "0x00")
+ self.binary32_to_bid64("4", "[447a0000]", "[31c00000000003e8]", "0x00")
+ self.binary32_to_bid64("4", "[48434fff]", "[3100002e90ed92f7]", "0x00")
+ self.binary32_to_bid64("4", "[4d3ebc1e]", "[31c000000bebc1e0]", "0x00")
+ self.binary32_to_bid64("4", "[53800000]", "[31c0010000000000]", "0x00")
+ self.binary32_to_bid64("4", "[58e35fa9]", "[31c71afd48000000]", "0x00")
+ self.binary32_to_bid64("4", "[5dde0b3c]", "[32271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("4", "[63ffc60a]", "[6ca1865668c26139]", "0x20")
+ self.binary32_to_bid64("4", "[6913905f]", "[3303f60d3ed61f49]", "0x20")
+ self.binary32_to_bid64("4", "[6ecefb55]", "[336b610267087502]", "0x20")
+ self.binary32_to_bid64("4", "[73ff532e]", "[33ce5f9eb18201d8]", "0x20")
+ self.binary32_to_bid64("4", "[79a96fd9]", "[3443e82dcfb9612f]", "0x20")
+ self.binary32_to_bid64("4", "[7f7fffff]", "[34ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("4", "[7f800000]", "[7800000000000000]", "0x00")
+ self.binary32_to_bid64("4", "[80000001]", "[aa44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("4", "[80000265]", "[aa9e8485d1c6ebd9]", "0x22")
+ self.binary32_to_bid64("4", "[80130c2a]", "[ab0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("4", "[80800000]", "[ab242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("4", "[81000000]", "[ab285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("4", "[834e3140]", "[ab55870988bd007f]", "0x20")
+ self.binary32_to_bid64("4", "[8a441400]", "[eaf18a5fcdb8d437]", "0x20")
+ self.binary32_to_bid64("4", "[8fbe9f30]", "[ac46ad8e3fe77bda]", "0x20")
+ self.binary32_to_bid64("4", "[94b1f470]", "[aca66241cdd98472]", "0x20")
+ self.binary32_to_bid64("4", "[9b247258]", "[ad24d528bcd654da]", "0x20")
+ self.binary32_to_bid64("4", "[a18d568f]", "[eb6206a25682726d]", "0x20")
+ self.binary32_to_bid64("4", "[a63dbf34]", "[adf7635b25f99028]", "0x20")
+ self.binary32_to_bid64("4", "[abfcb90c]", "[ae66612eddba9727]", "0x20")
+ self.binary32_to_bid64("4", "[afb933e0]", "[aeabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("4", "[b7a772a3]", "[af47177901aef999]", "0x20")
+ self.binary32_to_bid64("4", "[bca3d32e]", "[afa71ad26de1fcbc]", "0x20")
+ self.binary32_to_bid64("4", "[bd500000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("4", "[bf800000]", "[b1c0000000000001]", "0x00")
+ self.binary32_to_bid64("4", "[bfc00000]", "[b1a000000000000f]", "0x00")
+ self.binary32_to_bid64("4", "[c2800000]", "[b1c0000000000040]", "0x00")
+ self.binary32_to_bid64("4", "[c2ffffff]", "[b0248c2734c3d8c7]", "0x20")
+ self.binary32_to_bid64("4", "[c479c000]", "[b1c00000000003e7]", "0x00")
+ self.binary32_to_bid64("4", "[c47a0000]", "[b1c00000000003e8]", "0x00")
+ self.binary32_to_bid64("4", "[c8434fff]", "[b100002e90ed92f7]", "0x00")
+ self.binary32_to_bid64("4", "[cd3ebc1e]", "[b1c000000bebc1e0]", "0x00")
+ self.binary32_to_bid64("4", "[d3800000]", "[b1c0010000000000]", "0x00")
+ self.binary32_to_bid64("4", "[d8e35fa9]", "[b1c71afd48000000]", "0x00")
+ self.binary32_to_bid64("4", "[ddde0b3c]", "[b2271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("4", "[e3ffc60a]", "[eca1865668c26139]", "0x20")
+ self.binary32_to_bid64("4", "[e913905f]", "[b303f60d3ed61f49]", "0x20")
+ self.binary32_to_bid64("4", "[eecefb55]", "[b36b610267087502]", "0x20")
+ self.binary32_to_bid64("4", "[f3ff532e]", "[b3ce5f9eb18201d8]", "0x20")
+ self.binary32_to_bid64("4", "[f9a96fd9]", "[b443e82dcfb9612f]", "0x20")
+ self.binary32_to_bid64("4", "[ff7fffff]", "[b4ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("4", "[ff800000]", "[f800000000000000]", "0x00")
+ self.binary32_to_bid64("0", "[7f800001]", "[7c00000010000000]", "01")
+ self.binary32_to_bid64("0", "[7f800004]", "[7c00000040000000]", "01")
+ self.binary32_to_bid64("0", "[7f8fffff]", "[7c00fffff0000000]", "01")
+ self.binary32_to_bid64("0", "[7fa00000]", "[7c02000000000000]", "01")
+ self.binary32_to_bid64("0", "[7fb8d7ea]", "[7c038d7ea0000000]", "01")
+ self.binary32_to_bid64("0", "[7fb8d7eb]", "[7c00000000000000]", "01")
+ self.binary32_to_bid64("0", "[7fbfffff]", "[7c00000000000000]", "01")
+ self.binary32_to_bid64("0", "[00000000]", "[31c0000000000000]", "0x00")
+ self.binary32_to_bid64("1", "[00000000]", "[31c0000000000000]", "0x00")
+ self.binary32_to_bid64("2", "[00000000]", "[31c0000000000000]", "0x00")
+ self.binary32_to_bid64("3", "[00000000]", "[31c0000000000000]", "0x00")
+ self.binary32_to_bid64("4", "[00000000]", "[31c0000000000000]", "0x00")
+ self.binary32_to_bid64("0", "[00000001]", "[2a44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("1", "[00000001]", "[2a44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("2", "[00000001]", "[2a44fa793930bcd2]", "0x22")
+ self.binary32_to_bid64("3", "[00000001]", "[2a44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("4", "[00000001]", "[2a44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("0", "[00000005]", "[2a58e45e1df3b015]", "0x22")
+ self.binary32_to_bid64("1", "[00000005]", "[2a58e45e1df3b015]", "0x22")
+ self.binary32_to_bid64("2", "[00000005]", "[2a58e45e1df3b016]", "0x22")
+ self.binary32_to_bid64("3", "[00000005]", "[2a58e45e1df3b015]", "0x22")
+ self.binary32_to_bid64("4", "[00000005]", "[2a58e45e1df3b015]", "0x22")
+ self.binary32_to_bid64("0", "[0000003b]", "[2a7d5f64d16c5a05]", "0x22")
+ self.binary32_to_bid64("1", "[0000003b]", "[2a7d5f64d16c5a04]", "0x22")
+ self.binary32_to_bid64("2", "[0000003b]", "[2a7d5f64d16c5a05]", "0x22")
+ self.binary32_to_bid64("3", "[0000003b]", "[2a7d5f64d16c5a04]", "0x22")
+ self.binary32_to_bid64("4", "[0000003b]", "[2a7d5f64d16c5a05]", "0x22")
+ self.binary32_to_bid64("0", "[000001d7]", "[2a9772c533c44620]", "0x22")
+ self.binary32_to_bid64("1", "[000001d7]", "[2a9772c533c44620]", "0x22")
+ self.binary32_to_bid64("2", "[000001d7]", "[2a9772c533c44621]", "0x22")
+ self.binary32_to_bid64("3", "[000001d7]", "[2a9772c533c44620]", "0x22")
+ self.binary32_to_bid64("4", "[000001d7]", "[2a9772c533c44620]", "0x22")
+ self.binary32_to_bid64("0", "[000002e5]", "[2aa3b06287d16d31]", "0x22")
+ self.binary32_to_bid64("1", "[000002e5]", "[2aa3b06287d16d31]", "0x22")
+ self.binary32_to_bid64("2", "[000002e5]", "[2aa3b06287d16d32]", "0x22")
+ self.binary32_to_bid64("3", "[000002e5]", "[2aa3b06287d16d31]", "0x22")
+ self.binary32_to_bid64("4", "[000002e5]", "[2aa3b06287d16d31]", "0x22")
+ self.binary32_to_bid64("0", "[00001505]", "[2abac9f12ac80c81]", "0x22")
+ self.binary32_to_bid64("1", "[00001505]", "[2abac9f12ac80c80]", "0x22")
+ self.binary32_to_bid64("2", "[00001505]", "[2abac9f12ac80c81]", "0x22")
+ self.binary32_to_bid64("3", "[00001505]", "[2abac9f12ac80c80]", "0x22")
+ self.binary32_to_bid64("4", "[00001505]", "[2abac9f12ac80c81]", "0x22")
+ self.binary32_to_bid64("0", "[00005970]", "[2acb6608db01d115]", "0x22")
+ self.binary32_to_bid64("1", "[00005970]", "[2acb6608db01d115]", "0x22")
+ self.binary32_to_bid64("2", "[00005970]", "[2acb6608db01d116]", "0x22")
+ self.binary32_to_bid64("3", "[00005970]", "[2acb6608db01d115]", "0x22")
+ self.binary32_to_bid64("4", "[00005970]", "[2acb6608db01d115]", "0x22")
+ self.binary32_to_bid64("0", "[00020b64]", "[2ae6aba43f5e1110]", "0x22")
+ self.binary32_to_bid64("1", "[00020b64]", "[2ae6aba43f5e110f]", "0x22")
+ self.binary32_to_bid64("2", "[00020b64]", "[2ae6aba43f5e1110]", "0x22")
+ self.binary32_to_bid64("3", "[00020b64]", "[2ae6aba43f5e110f]", "0x22")
+ self.binary32_to_bid64("4", "[00020b64]", "[2ae6aba43f5e1110]", "0x22")
+ self.binary32_to_bid64("0", "[00130c2a]", "[2b0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("1", "[00130c2a]", "[2b0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("2", "[00130c2a]", "[2b0636ec39d0a11d]", "0x22")
+ self.binary32_to_bid64("3", "[00130c2a]", "[2b0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("4", "[00130c2a]", "[2b0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("0", "[003411c6]", "[2b10fd0aa04c567d]", "0x22")
+ self.binary32_to_bid64("1", "[003411c6]", "[2b10fd0aa04c567c]", "0x22")
+ self.binary32_to_bid64("2", "[003411c6]", "[2b10fd0aa04c567d]", "0x22")
+ self.binary32_to_bid64("3", "[003411c6]", "[2b10fd0aa04c567c]", "0x22")
+ self.binary32_to_bid64("4", "[003411c6]", "[2b10fd0aa04c567d]", "0x22")
+ self.binary32_to_bid64("0", "[007fffff]", "[2b242d1b12dd2559]", "0x22")
+ self.binary32_to_bid64("1", "[007fffff]", "[2b242d1b12dd2559]", "0x22")
+ self.binary32_to_bid64("2", "[007fffff]", "[2b242d1b12dd255a]", "0x22")
+ self.binary32_to_bid64("3", "[007fffff]", "[2b242d1b12dd2559]", "0x22")
+ self.binary32_to_bid64("4", "[007fffff]", "[2b242d1b12dd2559]", "0x22")
+ self.binary32_to_bid64("0", "[00800000]", "[2b242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("1", "[00800000]", "[2b242d1b1b375b8f]", "0x20")
+ self.binary32_to_bid64("2", "[00800000]", "[2b242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("3", "[00800000]", "[2b242d1b1b375b8f]", "0x20")
+ self.binary32_to_bid64("4", "[00800000]", "[2b242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("0", "[01000000]", "[2b285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("1", "[01000000]", "[2b285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("2", "[01000000]", "[2b285a36366eb720]", "0x20")
+ self.binary32_to_bid64("3", "[01000000]", "[2b285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("4", "[01000000]", "[2b285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("0", "[01c0f70e]", "[2b392ee0a0421490]", "0x20")
+ self.binary32_to_bid64("1", "[01c0f70e]", "[2b392ee0a042148f]", "0x20")
+ self.binary32_to_bid64("2", "[01c0f70e]", "[2b392ee0a0421490]", "0x20")
+ self.binary32_to_bid64("3", "[01c0f70e]", "[2b392ee0a042148f]", "0x20")
+ self.binary32_to_bid64("4", "[01c0f70e]", "[2b392ee0a0421490]", "0x20")
+ self.binary32_to_bid64("0", "[030d9c86]", "[2b4ec8f0a72815d2]", "0x20")
+ self.binary32_to_bid64("1", "[030d9c86]", "[2b4ec8f0a72815d2]", "0x20")
+ self.binary32_to_bid64("2", "[030d9c86]", "[2b4ec8f0a72815d3]", "0x20")
+ self.binary32_to_bid64("3", "[030d9c86]", "[2b4ec8f0a72815d2]", "0x20")
+ self.binary32_to_bid64("4", "[030d9c86]", "[2b4ec8f0a72815d2]", "0x20")
+ self.binary32_to_bid64("0", "[04a11041]", "[2b6d73e0e7bf7aa4]", "0x20")
+ self.binary32_to_bid64("1", "[04a11041]", "[2b6d73e0e7bf7aa4]", "0x20")
+ self.binary32_to_bid64("2", "[04a11041]", "[2b6d73e0e7bf7aa5]", "0x20")
+ self.binary32_to_bid64("3", "[04a11041]", "[2b6d73e0e7bf7aa4]", "0x20")
+ self.binary32_to_bid64("4", "[04a11041]", "[2b6d73e0e7bf7aa4]", "0x20")
+ self.binary32_to_bid64("0", "[0500ad00]", "[2b757eb8ad52a5c9]", "0x20")
+ self.binary32_to_bid64("1", "[0500ad00]", "[2b757eb8ad52a5c8]", "0x20")
+ self.binary32_to_bid64("2", "[0500ad00]", "[2b757eb8ad52a5c9]", "0x20")
+ self.binary32_to_bid64("3", "[0500ad00]", "[2b757eb8ad52a5c8]", "0x20")
+ self.binary32_to_bid64("4", "[0500ad00]", "[2b757eb8ad52a5c9]", "0x20")
+ self.binary32_to_bid64("0", "[05c11c64]", "[2b8673a5e389d468]", "0x20")
+ self.binary32_to_bid64("1", "[05c11c64]", "[2b8673a5e389d468]", "0x20")
+ self.binary32_to_bid64("2", "[05c11c64]", "[2b8673a5e389d469]", "0x20")
+ self.binary32_to_bid64("3", "[05c11c64]", "[2b8673a5e389d468]", "0x20")
+ self.binary32_to_bid64("4", "[05c11c64]", "[2b8673a5e389d468]", "0x20")
+ self.binary32_to_bid64("0", "[08a0de79]", "[6aea65af4ce72c40]", "0x20")
+ self.binary32_to_bid64("1", "[08a0de79]", "[6aea65af4ce72c3f]", "0x20")
+ self.binary32_to_bid64("2", "[08a0de79]", "[6aea65af4ce72c40]", "0x20")
+ self.binary32_to_bid64("3", "[08a0de79]", "[6aea65af4ce72c3f]", "0x20")
+ self.binary32_to_bid64("4", "[08a0de79]", "[6aea65af4ce72c40]", "0x20")
+ self.binary32_to_bid64("0", "[090cd61c]", "[2bc605d390331737]", "0x20")
+ self.binary32_to_bid64("1", "[090cd61c]", "[2bc605d390331737]", "0x20")
+ self.binary32_to_bid64("2", "[090cd61c]", "[2bc605d390331738]", "0x20")
+ self.binary32_to_bid64("3", "[090cd61c]", "[2bc605d390331737]", "0x20")
+ self.binary32_to_bid64("4", "[090cd61c]", "[2bc605d390331737]", "0x20")
+ self.binary32_to_bid64("0", "[0a0cd61c]", "[2bd8174e40cc5cdc]", "0x20")
+ self.binary32_to_bid64("1", "[0a0cd61c]", "[2bd8174e40cc5cdc]", "0x20")
+ self.binary32_to_bid64("2", "[0a0cd61c]", "[2bd8174e40cc5cdd]", "0x20")
+ self.binary32_to_bid64("3", "[0a0cd61c]", "[2bd8174e40cc5cdc]", "0x20")
+ self.binary32_to_bid64("4", "[0a0cd61c]", "[2bd8174e40cc5cdc]", "0x20")
+ self.binary32_to_bid64("0", "[0c40f78e]", "[2c05480599c18d4a]", "0x20")
+ self.binary32_to_bid64("1", "[0c40f78e]", "[2c05480599c18d4a]", "0x20")
+ self.binary32_to_bid64("2", "[0c40f78e]", "[2c05480599c18d4b]", "0x20")
+ self.binary32_to_bid64("3", "[0c40f78e]", "[2c05480599c18d4a]", "0x20")
+ self.binary32_to_bid64("4", "[0c40f78e]", "[2c05480599c18d4a]", "0x20")
+ self.binary32_to_bid64("0", "[0d725d9e]", "[2c1a88888fc8db64]", "0x20")
+ self.binary32_to_bid64("1", "[0d725d9e]", "[2c1a88888fc8db63]", "0x20")
+ self.binary32_to_bid64("2", "[0d725d9e]", "[2c1a88888fc8db64]", "0x20")
+ self.binary32_to_bid64("3", "[0d725d9e]", "[2c1a88888fc8db63]", "0x20")
+ self.binary32_to_bid64("4", "[0d725d9e]", "[2c1a88888fc8db64]", "0x20")
+ self.binary32_to_bid64("0", "[0f26e6d5]", "[2c3d3c21695b2af8]", "0x20")
+ self.binary32_to_bid64("1", "[0f26e6d5]", "[2c3d3c21695b2af8]", "0x20")
+ self.binary32_to_bid64("2", "[0f26e6d5]", "[2c3d3c21695b2af9]", "0x20")
+ self.binary32_to_bid64("3", "[0f26e6d5]", "[2c3d3c21695b2af8]", "0x20")
+ self.binary32_to_bid64("4", "[0f26e6d5]", "[2c3d3c21695b2af8]", "0x20")
+ self.binary32_to_bid64("0", "[0feb7ade]", "[2c483fdb73732364]", "0x20")
+ self.binary32_to_bid64("1", "[0feb7ade]", "[2c483fdb73732364]", "0x20")
+ self.binary32_to_bid64("2", "[0feb7ade]", "[2c483fdb73732365]", "0x20")
+ self.binary32_to_bid64("3", "[0feb7ade]", "[2c483fdb73732364]", "0x20")
+ self.binary32_to_bid64("4", "[0feb7ade]", "[2c483fdb73732364]", "0x20")
+ self.binary32_to_bid64("0", "[116dd8d0]", "[2c66aa77ce20cf9d]", "0x20")
+ self.binary32_to_bid64("1", "[116dd8d0]", "[2c66aa77ce20cf9d]", "0x20")
+ self.binary32_to_bid64("2", "[116dd8d0]", "[2c66aa77ce20cf9e]", "0x20")
+ self.binary32_to_bid64("3", "[116dd8d0]", "[2c66aa77ce20cf9d]", "0x20")
+ self.binary32_to_bid64("4", "[116dd8d0]", "[2c66aa77ce20cf9d]", "0x20")
+ self.binary32_to_bid64("0", "[116eb528]", "[2c66b0a4b1ae2816]", "0x20")
+ self.binary32_to_bid64("1", "[116eb528]", "[2c66b0a4b1ae2816]", "0x20")
+ self.binary32_to_bid64("2", "[116eb528]", "[2c66b0a4b1ae2817]", "0x20")
+ self.binary32_to_bid64("3", "[116eb528]", "[2c66b0a4b1ae2816]", "0x20")
+ self.binary32_to_bid64("4", "[116eb528]", "[2c66b0a4b1ae2816]", "0x20")
+ self.binary32_to_bid64("0", "[1451683a]", "[2ca3c18ce77b588f]", "0x20")
+ self.binary32_to_bid64("1", "[1451683a]", "[2ca3c18ce77b588e]", "0x20")
+ self.binary32_to_bid64("2", "[1451683a]", "[2ca3c18ce77b588f]", "0x20")
+ self.binary32_to_bid64("3", "[1451683a]", "[2ca3c18ce77b588e]", "0x20")
+ self.binary32_to_bid64("4", "[1451683a]", "[2ca3c18ce77b588f]", "0x20")
+ self.binary32_to_bid64("0", "[14bb29ac]", "[2ca6b6d1953b8090]", "0x20")
+ self.binary32_to_bid64("1", "[14bb29ac]", "[2ca6b6d1953b808f]", "0x20")
+ self.binary32_to_bid64("2", "[14bb29ac]", "[2ca6b6d1953b8090]", "0x20")
+ self.binary32_to_bid64("3", "[14bb29ac]", "[2ca6b6d1953b808f]", "0x20")
+ self.binary32_to_bid64("4", "[14bb29ac]", "[2ca6b6d1953b8090]", "0x20")
+ self.binary32_to_bid64("0", "[16b8dc5d]", "[2cca9c49056b35a7]", "0x20")
+ self.binary32_to_bid64("1", "[16b8dc5d]", "[2cca9c49056b35a6]", "0x20")
+ self.binary32_to_bid64("2", "[16b8dc5d]", "[2cca9c49056b35a7]", "0x20")
+ self.binary32_to_bid64("3", "[16b8dc5d]", "[2cca9c49056b35a6]", "0x20")
+ self.binary32_to_bid64("4", "[16b8dc5d]", "[2cca9c49056b35a7]", "0x20")
+ self.binary32_to_bid64("0", "[174864a0]", "[2cd70105df3d47cb]", "0x20")
+ self.binary32_to_bid64("1", "[174864a0]", "[2cd70105df3d47cb]", "0x20")
+ self.binary32_to_bid64("2", "[174864a0]", "[2cd70105df3d47cc]", "0x20")
+ self.binary32_to_bid64("3", "[174864a0]", "[2cd70105df3d47cb]", "0x20")
+ self.binary32_to_bid64("4", "[174864a0]", "[2cd70105df3d47cb]", "0x20")
+ self.binary32_to_bid64("0", "[192ece11]", "[6b381b4a02a82ec4]", "0x20")
+ self.binary32_to_bid64("1", "[192ece11]", "[6b381b4a02a82ec3]", "0x20")
+ self.binary32_to_bid64("2", "[192ece11]", "[6b381b4a02a82ec4]", "0x20")
+ self.binary32_to_bid64("3", "[192ece11]", "[6b381b4a02a82ec3]", "0x20")
+ self.binary32_to_bid64("4", "[192ece11]", "[6b381b4a02a82ec4]", "0x20")
+ self.binary32_to_bid64("0", "[1a9c8e9d]", "[2d170105df3d47cb]", "0x20")
+ self.binary32_to_bid64("1", "[1a9c8e9d]", "[2d170105df3d47cb]", "0x20")
+ self.binary32_to_bid64("2", "[1a9c8e9d]", "[2d170105df3d47cc]", "0x20")
+ self.binary32_to_bid64("3", "[1a9c8e9d]", "[2d170105df3d47cb]", "0x20")
+ self.binary32_to_bid64("4", "[1a9c8e9d]", "[2d170105df3d47cb]", "0x20")
+ self.binary32_to_bid64("0", "[1b4aa900]", "[2d25f4a54371db69]", "0x20")
+ self.binary32_to_bid64("1", "[1b4aa900]", "[2d25f4a54371db69]", "0x20")
+ self.binary32_to_bid64("2", "[1b4aa900]", "[2d25f4a54371db6a]", "0x20")
+ self.binary32_to_bid64("3", "[1b4aa900]", "[2d25f4a54371db69]", "0x20")
+ self.binary32_to_bid64("4", "[1b4aa900]", "[2d25f4a54371db69]", "0x20")
+ self.binary32_to_bid64("0", "[1b8cc727]", "[2d284630e5569c58]", "0x20")
+ self.binary32_to_bid64("1", "[1b8cc727]", "[2d284630e5569c58]", "0x20")
+ self.binary32_to_bid64("2", "[1b8cc727]", "[2d284630e5569c59]", "0x20")
+ self.binary32_to_bid64("3", "[1b8cc727]", "[2d284630e5569c58]", "0x20")
+ self.binary32_to_bid64("4", "[1b8cc727]", "[2d284630e5569c58]", "0x20")
+ self.binary32_to_bid64("0", "[1d0cc727]", "[2d469e8d844549e0]", "0x20")
+ self.binary32_to_bid64("1", "[1d0cc727]", "[2d469e8d844549e0]", "0x20")
+ self.binary32_to_bid64("2", "[1d0cc727]", "[2d469e8d844549e1]", "0x20")
+ self.binary32_to_bid64("3", "[1d0cc727]", "[2d469e8d844549e0]", "0x20")
+ self.binary32_to_bid64("4", "[1d0cc727]", "[2d469e8d844549e0]", "0x20")
+ self.binary32_to_bid64("0", "[1fac718f]", "[2d79f249106c0254]", "0x20")
+ self.binary32_to_bid64("1", "[1fac718f]", "[2d79f249106c0254]", "0x20")
+ self.binary32_to_bid64("2", "[1fac718f]", "[2d79f249106c0255]", "0x20")
+ self.binary32_to_bid64("3", "[1fac718f]", "[2d79f249106c0254]", "0x20")
+ self.binary32_to_bid64("4", "[1fac718f]", "[2d79f249106c0254]", "0x20")
+ self.binary32_to_bid64("0", "[1fe22418]", "[6b5a06a25682726d]", "0x20")
+ self.binary32_to_bid64("1", "[1fe22418]", "[6b5a06a25682726d]", "0x20")
+ self.binary32_to_bid64("2", "[1fe22418]", "[6b5a06a25682726e]", "0x20")
+ self.binary32_to_bid64("3", "[1fe22418]", "[6b5a06a25682726d]", "0x20")
+ self.binary32_to_bid64("4", "[1fe22418]", "[6b5a06a25682726d]", "0x20")
+ self.binary32_to_bid64("0", "[20cbbbd8]", "[2d8c43040290e250]", "0x20")
+ self.binary32_to_bid64("1", "[20cbbbd8]", "[2d8c43040290e250]", "0x20")
+ self.binary32_to_bid64("2", "[20cbbbd8]", "[2d8c43040290e251]", "0x20")
+ self.binary32_to_bid64("3", "[20cbbbd8]", "[2d8c43040290e250]", "0x20")
+ self.binary32_to_bid64("4", "[20cbbbd8]", "[2d8c43040290e250]", "0x20")
+ self.binary32_to_bid64("0", "[2389732f]", "[2dc54b5c6b34cacb]", "0x20")
+ self.binary32_to_bid64("1", "[2389732f]", "[2dc54b5c6b34cacb]", "0x20")
+ self.binary32_to_bid64("2", "[2389732f]", "[2dc54b5c6b34cacc]", "0x20")
+ self.binary32_to_bid64("3", "[2389732f]", "[2dc54b5c6b34cacb]", "0x20")
+ self.binary32_to_bid64("4", "[2389732f]", "[2dc54b5c6b34cacb]", "0x20")
+ self.binary32_to_bid64("0", "[23a66f78]", "[2dc6692e146017cc]", "0x20")
+ self.binary32_to_bid64("1", "[23a66f78]", "[2dc6692e146017cb]", "0x20")
+ self.binary32_to_bid64("2", "[23a66f78]", "[2dc6692e146017cc]", "0x20")
+ self.binary32_to_bid64("3", "[23a66f78]", "[2dc6692e146017cb]", "0x20")
+ self.binary32_to_bid64("4", "[23a66f78]", "[2dc6692e146017cc]", "0x20")
+ self.binary32_to_bid64("0", "[253dbf34]", "[2de5d8d6c97e640a]", "0x20")
+ self.binary32_to_bid64("1", "[253dbf34]", "[2de5d8d6c97e640a]", "0x20")
+ self.binary32_to_bid64("2", "[253dbf34]", "[2de5d8d6c97e640b]", "0x20")
+ self.binary32_to_bid64("3", "[253dbf34]", "[2de5d8d6c97e640a]", "0x20")
+ self.binary32_to_bid64("4", "[253dbf34]", "[2de5d8d6c97e640a]", "0x20")
+ self.binary32_to_bid64("0", "[255162c0]", "[2de673c3238d344a]", "0x20")
+ self.binary32_to_bid64("1", "[255162c0]", "[2de673c3238d3449]", "0x20")
+ self.binary32_to_bid64("2", "[255162c0]", "[2de673c3238d344a]", "0x20")
+ self.binary32_to_bid64("3", "[255162c0]", "[2de673c3238d3449]", "0x20")
+ self.binary32_to_bid64("4", "[255162c0]", "[2de673c3238d344a]", "0x20")
+ self.binary32_to_bid64("0", "[287d4ed0]", "[2e24fee0bcc25833]", "0x20")
+ self.binary32_to_bid64("1", "[287d4ed0]", "[2e24fee0bcc25833]", "0x20")
+ self.binary32_to_bid64("2", "[287d4ed0]", "[2e24fee0bcc25834]", "0x20")
+ self.binary32_to_bid64("3", "[287d4ed0]", "[2e24fee0bcc25833]", "0x20")
+ self.binary32_to_bid64("4", "[287d4ed0]", "[2e24fee0bcc25833]", "0x20")
+ self.binary32_to_bid64("0", "[28bccf94]", "[2e2772809d013bd9]", "0x20")
+ self.binary32_to_bid64("1", "[28bccf94]", "[2e2772809d013bd9]", "0x20")
+ self.binary32_to_bid64("2", "[28bccf94]", "[2e2772809d013bda]", "0x20")
+ self.binary32_to_bid64("3", "[28bccf94]", "[2e2772809d013bd9]", "0x20")
+ self.binary32_to_bid64("4", "[28bccf94]", "[2e2772809d013bd9]", "0x20")
+ self.binary32_to_bid64("0", "[2b5b4de6]", "[2e5bae1a9364eb06]", "0x20")
+ self.binary32_to_bid64("1", "[2b5b4de6]", "[2e5bae1a9364eb06]", "0x20")
+ self.binary32_to_bid64("2", "[2b5b4de6]", "[2e5bae1a9364eb07]", "0x20")
+ self.binary32_to_bid64("3", "[2b5b4de6]", "[2e5bae1a9364eb06]", "0x20")
+ self.binary32_to_bid64("4", "[2b5b4de6]", "[2e5bae1a9364eb06]", "0x20")
+ self.binary32_to_bid64("0", "[2bfcb90c]", "[2e66612eddba9727]", "0x20")
+ self.binary32_to_bid64("1", "[2bfcb90c]", "[2e66612eddba9726]", "0x20")
+ self.binary32_to_bid64("2", "[2bfcb90c]", "[2e66612eddba9727]", "0x20")
+ self.binary32_to_bid64("3", "[2bfcb90c]", "[2e66612eddba9726]", "0x20")
+ self.binary32_to_bid64("4", "[2bfcb90c]", "[2e66612eddba9727]", "0x20")
+ self.binary32_to_bid64("0", "[2d942980]", "[2e85fbf5d68a4e3b]", "0x20")
+ self.binary32_to_bid64("1", "[2d942980]", "[2e85fbf5d68a4e3a]", "0x20")
+ self.binary32_to_bid64("2", "[2d942980]", "[2e85fbf5d68a4e3b]", "0x20")
+ self.binary32_to_bid64("3", "[2d942980]", "[2e85fbf5d68a4e3a]", "0x20")
+ self.binary32_to_bid64("4", "[2d942980]", "[2e85fbf5d68a4e3b]", "0x20")
+ self.binary32_to_bid64("0", "[2dfbefbf]", "[2e8a2cf6626f52c2]", "0x20")
+ self.binary32_to_bid64("1", "[2dfbefbf]", "[2e8a2cf6626f52c2]", "0x20")
+ self.binary32_to_bid64("2", "[2dfbefbf]", "[2e8a2cf6626f52c3]", "0x20")
+ self.binary32_to_bid64("3", "[2dfbefbf]", "[2e8a2cf6626f52c2]", "0x20")
+ self.binary32_to_bid64("4", "[2dfbefbf]", "[2e8a2cf6626f52c2]", "0x20")
+ self.binary32_to_bid64("0", "[2f4a40e3]", "[2ea689005e648097]", "0x20")
+ self.binary32_to_bid64("1", "[2f4a40e3]", "[2ea689005e648097]", "0x20")
+ self.binary32_to_bid64("2", "[2f4a40e3]", "[2ea689005e648098]", "0x20")
+ self.binary32_to_bid64("3", "[2f4a40e3]", "[2ea689005e648097]", "0x20")
+ self.binary32_to_bid64("4", "[2f4a40e3]", "[2ea689005e648097]", "0x20")
+ self.binary32_to_bid64("0", "[2f942980]", "[2ea99322f0dd49f8]", "0x20")
+ self.binary32_to_bid64("1", "[2f942980]", "[2ea99322f0dd49f7]", "0x20")
+ self.binary32_to_bid64("2", "[2f942980]", "[2ea99322f0dd49f8]", "0x20")
+ self.binary32_to_bid64("3", "[2f942980]", "[2ea99322f0dd49f7]", "0x20")
+ self.binary32_to_bid64("4", "[2f942980]", "[2ea99322f0dd49f8]", "0x20")
+ self.binary32_to_bid64("0", "[2fb933e0]", "[2eabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("1", "[2fb933e0]", "[2eabf7ebad149c75]", "0x20")
+ self.binary32_to_bid64("2", "[2fb933e0]", "[2eabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("3", "[2fb933e0]", "[2eabf7ebad149c75]", "0x20")
+ self.binary32_to_bid64("4", "[2fb933e0]", "[2eabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("0", "[3410b087]", "[2f04c991786ea4fc]", "0x20")
+ self.binary32_to_bid64("1", "[3410b087]", "[2f04c991786ea4fb]", "0x20")
+ self.binary32_to_bid64("2", "[3410b087]", "[2f04c991786ea4fc]", "0x20")
+ self.binary32_to_bid64("3", "[3410b087]", "[2f04c991786ea4fb]", "0x20")
+ self.binary32_to_bid64("4", "[3410b087]", "[2f04c991786ea4fc]", "0x20")
+ self.binary32_to_bid64("0", "[35f0b087]", "[2f265ef9d47dca6c]", "0x20")
+ self.binary32_to_bid64("1", "[35f0b087]", "[2f265ef9d47dca6c]", "0x20")
+ self.binary32_to_bid64("2", "[35f0b087]", "[2f265ef9d47dca6d]", "0x20")
+ self.binary32_to_bid64("3", "[35f0b087]", "[2f265ef9d47dca6c]", "0x20")
+ self.binary32_to_bid64("4", "[35f0b087]", "[2f265ef9d47dca6c]", "0x20")
+ self.binary32_to_bid64("0", "[36e13d2f]", "[2f37d91d8354abdc]", "0x20")
+ self.binary32_to_bid64("1", "[36e13d2f]", "[2f37d91d8354abdb]", "0x20")
+ self.binary32_to_bid64("2", "[36e13d2f]", "[2f37d91d8354abdc]", "0x20")
+ self.binary32_to_bid64("3", "[36e13d2f]", "[2f37d91d8354abdb]", "0x20")
+ self.binary32_to_bid64("4", "[36e13d2f]", "[2f37d91d8354abdc]", "0x20")
+ self.binary32_to_bid64("0", "[37a6e546]", "[2f47117c57c2612d]", "0x20")
+ self.binary32_to_bid64("1", "[37a6e546]", "[2f47117c57c2612c]", "0x20")
+ self.binary32_to_bid64("2", "[37a6e546]", "[2f47117c57c2612d]", "0x20")
+ self.binary32_to_bid64("3", "[37a6e546]", "[2f47117c57c2612c]", "0x20")
+ self.binary32_to_bid64("4", "[37a6e546]", "[2f47117c57c2612d]", "0x20")
+ self.binary32_to_bid64("0", "[397ef997]", "[2f68a38e24b05e60]", "0x20")
+ self.binary32_to_bid64("1", "[397ef997]", "[2f68a38e24b05e5f]", "0x20")
+ self.binary32_to_bid64("2", "[397ef997]", "[2f68a38e24b05e60]", "0x20")
+ self.binary32_to_bid64("3", "[397ef997]", "[2f68a38e24b05e5f]", "0x20")
+ self.binary32_to_bid64("4", "[397ef997]", "[2f68a38e24b05e60]", "0x20")
+ self.binary32_to_bid64("0", "[3afff997]", "[2f86f02edf1a1f32]", "0x20")
+ self.binary32_to_bid64("1", "[3afff997]", "[2f86f02edf1a1f31]", "0x20")
+ self.binary32_to_bid64("2", "[3afff997]", "[2f86f02edf1a1f32]", "0x20")
+ self.binary32_to_bid64("3", "[3afff997]", "[2f86f02edf1a1f31]", "0x20")
+ self.binary32_to_bid64("4", "[3afff997]", "[2f86f02edf1a1f32]", "0x20")
+ self.binary32_to_bid64("0", "[3b0307ac]", "[2f871a67f5e85274]", "0x20")
+ self.binary32_to_bid64("1", "[3b0307ac]", "[2f871a67f5e85274]", "0x20")
+ self.binary32_to_bid64("2", "[3b0307ac]", "[2f871a67f5e85275]", "0x20")
+ self.binary32_to_bid64("3", "[3b0307ac]", "[2f871a67f5e85274]", "0x20")
+ self.binary32_to_bid64("4", "[3b0307ac]", "[2f871a67f5e85274]", "0x20")
+ self.binary32_to_bid64("0", "[3ca3d170]", "[2fa71abf1649bf25]", "0x20")
+ self.binary32_to_bid64("1", "[3ca3d170]", "[2fa71abf1649bf24]", "0x20")
+ self.binary32_to_bid64("2", "[3ca3d170]", "[2fa71abf1649bf25]", "0x20")
+ self.binary32_to_bid64("3", "[3ca3d170]", "[2fa71abf1649bf24]", "0x20")
+ self.binary32_to_bid64("4", "[3ca3d170]", "[2fa71abf1649bf25]", "0x20")
+ self.binary32_to_bid64("0", "[3d500000]", "[30c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("1", "[3d500000]", "[30c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("2", "[3d500000]", "[30c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("3", "[3d500000]", "[30c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("4", "[3d500000]", "[30c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("0", "[3d7ffff3]", "[2fb6345665302e34]", "0x20")
+ self.binary32_to_bid64("1", "[3d7ffff3]", "[2fb6345665302e33]", "0x20")
+ self.binary32_to_bid64("2", "[3d7ffff3]", "[2fb6345665302e34]", "0x20")
+ self.binary32_to_bid64("3", "[3d7ffff3]", "[2fb6345665302e33]", "0x20")
+ self.binary32_to_bid64("4", "[3d7ffff3]", "[2fb6345665302e34]", "0x20")
+ self.binary32_to_bid64("0", "[3f800000]", "[31c0000000000001]", "0x00")
+ self.binary32_to_bid64("1", "[3f800000]", "[31c0000000000001]", "0x00")
+ self.binary32_to_bid64("2", "[3f800000]", "[31c0000000000001]", "0x00")
+ self.binary32_to_bid64("3", "[3f800000]", "[31c0000000000001]", "0x00")
+ self.binary32_to_bid64("4", "[3f800000]", "[31c0000000000001]", "0x00")
+ self.binary32_to_bid64("0", "[3fc00000]", "[31a000000000000f]", "0x00")
+ self.binary32_to_bid64("1", "[3fc00000]", "[31a000000000000f]", "0x00")
+ self.binary32_to_bid64("2", "[3fc00000]", "[31a000000000000f]", "0x00")
+ self.binary32_to_bid64("3", "[3fc00000]", "[31a000000000000f]", "0x00")
+ self.binary32_to_bid64("4", "[3fc00000]", "[31a000000000000f]", "0x00")
+ self.binary32_to_bid64("0", "[3fffffbb]", "[2fe71afb5f46bb2d]", "0x20")
+ self.binary32_to_bid64("1", "[3fffffbb]", "[2fe71afb5f46bb2c]", "0x20")
+ self.binary32_to_bid64("2", "[3fffffbb]", "[2fe71afb5f46bb2d]", "0x20")
+ self.binary32_to_bid64("3", "[3fffffbb]", "[2fe71afb5f46bb2c]", "0x20")
+ self.binary32_to_bid64("4", "[3fffffbb]", "[2fe71afb5f46bb2d]", "0x20")
+ self.binary32_to_bid64("0", "[417ffffb]", "[3005af30eb380ada]", "0x20")
+ self.binary32_to_bid64("1", "[417ffffb]", "[3005af30eb380ad9]", "0x20")
+ self.binary32_to_bid64("2", "[417ffffb]", "[3005af30eb380ada]", "0x20")
+ self.binary32_to_bid64("3", "[417ffffb]", "[3005af30eb380ad9]", "0x20")
+ self.binary32_to_bid64("4", "[417ffffb]", "[3005af30eb380ada]", "0x20")
+ self.binary32_to_bid64("0", "[427fffe3]", "[3016bcc18b2dc88a]", "0x20")
+ self.binary32_to_bid64("1", "[427fffe3]", "[3016bcc18b2dc889]", "0x20")
+ self.binary32_to_bid64("2", "[427fffe3]", "[3016bcc18b2dc88a]", "0x20")
+ self.binary32_to_bid64("3", "[427fffe3]", "[3016bcc18b2dc889]", "0x20")
+ self.binary32_to_bid64("4", "[427fffe3]", "[3016bcc18b2dc88a]", "0x20")
+ self.binary32_to_bid64("0", "[42800000]", "[31c0000000000040]", "0x00")
+ self.binary32_to_bid64("1", "[42800000]", "[31c0000000000040]", "0x00")
+ self.binary32_to_bid64("2", "[42800000]", "[31c0000000000040]", "0x00")
+ self.binary32_to_bid64("3", "[42800000]", "[31c0000000000040]", "0x00")
+ self.binary32_to_bid64("4", "[42800000]", "[31c0000000000040]", "0x00")
+ self.binary32_to_bid64("0", "[4347fffe]", "[30271afd375c631b]", "0x20")
+ self.binary32_to_bid64("1", "[4347fffe]", "[30271afd375c631a]", "0x20")
+ self.binary32_to_bid64("2", "[4347fffe]", "[30271afd375c631b]", "0x20")
+ self.binary32_to_bid64("3", "[4347fffe]", "[30271afd375c631a]", "0x20")
+ self.binary32_to_bid64("4", "[4347fffe]", "[30271afd375c631b]", "0x20")
+ self.binary32_to_bid64("0", "[4479c000]", "[31c00000000003e7]", "0x00")
+ self.binary32_to_bid64("1", "[4479c000]", "[31c00000000003e7]", "0x00")
+ self.binary32_to_bid64("2", "[4479c000]", "[31c00000000003e7]", "0x00")
+ self.binary32_to_bid64("3", "[4479c000]", "[31c00000000003e7]", "0x00")
+ self.binary32_to_bid64("4", "[4479c000]", "[31c00000000003e7]", "0x00")
+ self.binary32_to_bid64("0", "[447a0000]", "[31c00000000003e8]", "0x00")
+ self.binary32_to_bid64("1", "[447a0000]", "[31c00000000003e8]", "0x00")
+ self.binary32_to_bid64("2", "[447a0000]", "[31c00000000003e8]", "0x00")
+ self.binary32_to_bid64("3", "[447a0000]", "[31c00000000003e8]", "0x00")
+ self.binary32_to_bid64("4", "[447a0000]", "[31c00000000003e8]", "0x00")
+ self.binary32_to_bid64("0", "[44ffffff]", "[304746a521395ad8]", "0x20")
+ self.binary32_to_bid64("1", "[44ffffff]", "[304746a521395ad7]", "0x20")
+ self.binary32_to_bid64("2", "[44ffffff]", "[304746a521395ad8]", "0x20")
+ self.binary32_to_bid64("3", "[44ffffff]", "[304746a521395ad7]", "0x20")
+ self.binary32_to_bid64("4", "[44ffffff]", "[304746a521395ad8]", "0x20")
+ self.binary32_to_bid64("0", "[46800000]", "[31c0000000004000]", "0x00")
+ self.binary32_to_bid64("1", "[46800000]", "[31c0000000004000]", "0x00")
+ self.binary32_to_bid64("2", "[46800000]", "[31c0000000004000]", "0x00")
+ self.binary32_to_bid64("3", "[46800000]", "[31c0000000004000]", "0x00")
+ self.binary32_to_bid64("4", "[46800000]", "[31c0000000004000]", "0x00")
+ self.binary32_to_bid64("0", "[469c3ffc]", "[30e0002e90ec9ed3]", "0x00")
+ self.binary32_to_bid64("1", "[469c3ffc]", "[30e0002e90ec9ed3]", "0x00")
+ self.binary32_to_bid64("2", "[469c3ffc]", "[30e0002e90ec9ed3]", "0x00")
+ self.binary32_to_bid64("3", "[469c3ffc]", "[30e0002e90ec9ed3]", "0x00")
+ self.binary32_to_bid64("4", "[469c3ffc]", "[30e0002e90ec9ed3]", "0x00")
+ self.binary32_to_bid64("0", "[48434ff0]", "[3180000001312ce7]", "0x00")
+ self.binary32_to_bid64("1", "[48434ff0]", "[3180000001312ce7]", "0x00")
+ self.binary32_to_bid64("2", "[48434ff0]", "[3180000001312ce7]", "0x00")
+ self.binary32_to_bid64("3", "[48434ff0]", "[3180000001312ce7]", "0x00")
+ self.binary32_to_bid64("4", "[48434ff0]", "[3180000001312ce7]", "0x00")
+ self.binary32_to_bid64("0", "[49000000]", "[31c0000000080000]", "0x00")
+ self.binary32_to_bid64("1", "[49000000]", "[31c0000000080000]", "0x00")
+ self.binary32_to_bid64("2", "[49000000]", "[31c0000000080000]", "0x00")
+ self.binary32_to_bid64("3", "[49000000]", "[31c0000000080000]", "0x00")
+ self.binary32_to_bid64("4", "[49000000]", "[31c0000000080000]", "0x00")
+ self.binary32_to_bid64("0", "[4b800000]", "[31c0000001000000]", "0x00")
+ self.binary32_to_bid64("1", "[4b800000]", "[31c0000001000000]", "0x00")
+ self.binary32_to_bid64("2", "[4b800000]", "[31c0000001000000]", "0x00")
+ self.binary32_to_bid64("3", "[4b800000]", "[31c0000001000000]", "0x00")
+ self.binary32_to_bid64("4", "[4b800000]", "[31c0000001000000]", "0x00")
+ self.binary32_to_bid64("0", "[4d000000]", "[31c0000008000000]", "0x00")
+ self.binary32_to_bid64("1", "[4d000000]", "[31c0000008000000]", "0x00")
+ self.binary32_to_bid64("2", "[4d000000]", "[31c0000008000000]", "0x00")
+ self.binary32_to_bid64("3", "[4d000000]", "[31c0000008000000]", "0x00")
+ self.binary32_to_bid64("4", "[4d000000]", "[31c0000008000000]", "0x00")
+ self.binary32_to_bid64("0", "[4e000000]", "[31c0000020000000]", "0x00")
+ self.binary32_to_bid64("1", "[4e000000]", "[31c0000020000000]", "0x00")
+ self.binary32_to_bid64("2", "[4e000000]", "[31c0000020000000]", "0x00")
+ self.binary32_to_bid64("3", "[4e000000]", "[31c0000020000000]", "0x00")
+ self.binary32_to_bid64("4", "[4e000000]", "[31c0000020000000]", "0x00")
+ self.binary32_to_bid64("0", "[4eee6b20]", "[31c0000077359000]", "0x00")
+ self.binary32_to_bid64("1", "[4eee6b20]", "[31c0000077359000]", "0x00")
+ self.binary32_to_bid64("2", "[4eee6b20]", "[31c0000077359000]", "0x00")
+ self.binary32_to_bid64("3", "[4eee6b20]", "[31c0000077359000]", "0x00")
+ self.binary32_to_bid64("4", "[4eee6b20]", "[31c0000077359000]", "0x00")
+ self.binary32_to_bid64("0", "[4eee6b26]", "[31c0000077359300]", "0x00")
+ self.binary32_to_bid64("1", "[4eee6b26]", "[31c0000077359300]", "0x00")
+ self.binary32_to_bid64("2", "[4eee6b26]", "[31c0000077359300]", "0x00")
+ self.binary32_to_bid64("3", "[4eee6b26]", "[31c0000077359300]", "0x00")
+ self.binary32_to_bid64("4", "[4eee6b26]", "[31c0000077359300]", "0x00")
+ self.binary32_to_bid64("0", "[52000000]", "[31c0002000000000]", "0x00")
+ self.binary32_to_bid64("1", "[52000000]", "[31c0002000000000]", "0x00")
+ self.binary32_to_bid64("2", "[52000000]", "[31c0002000000000]", "0x00")
+ self.binary32_to_bid64("3", "[52000000]", "[31c0002000000000]", "0x00")
+ self.binary32_to_bid64("4", "[52000000]", "[31c0002000000000]", "0x00")
+ self.binary32_to_bid64("0", "[523a43b4]", "[31c0002e90ed0000]", "0x00")
+ self.binary32_to_bid64("1", "[523a43b4]", "[31c0002e90ed0000]", "0x00")
+ self.binary32_to_bid64("2", "[523a43b4]", "[31c0002e90ed0000]", "0x00")
+ self.binary32_to_bid64("3", "[523a43b4]", "[31c0002e90ed0000]", "0x00")
+ self.binary32_to_bid64("4", "[523a43b4]", "[31c0002e90ed0000]", "0x00")
+ self.binary32_to_bid64("0", "[54800000]", "[31c0040000000000]", "0x00")
+ self.binary32_to_bid64("1", "[54800000]", "[31c0040000000000]", "0x00")
+ self.binary32_to_bid64("2", "[54800000]", "[31c0040000000000]", "0x00")
+ self.binary32_to_bid64("3", "[54800000]", "[31c0040000000000]", "0x00")
+ self.binary32_to_bid64("4", "[54800000]", "[31c0040000000000]", "0x00")
+ self.binary32_to_bid64("0", "[559184e7]", "[31c012309ce00000]", "0x00")
+ self.binary32_to_bid64("1", "[559184e7]", "[31c012309ce00000]", "0x00")
+ self.binary32_to_bid64("2", "[559184e7]", "[31c012309ce00000]", "0x00")
+ self.binary32_to_bid64("3", "[559184e7]", "[31c012309ce00000]", "0x00")
+ self.binary32_to_bid64("4", "[559184e7]", "[31c012309ce00000]", "0x00")
+ self.binary32_to_bid64("0", "[57000000]", "[31c0800000000000]", "0x00")
+ self.binary32_to_bid64("1", "[57000000]", "[31c0800000000000]", "0x00")
+ self.binary32_to_bid64("2", "[57000000]", "[31c0800000000000]", "0x00")
+ self.binary32_to_bid64("3", "[57000000]", "[31c0800000000000]", "0x00")
+ self.binary32_to_bid64("4", "[57000000]", "[31c0800000000000]", "0x00")
+ self.binary32_to_bid64("0", "[58800000]", "[31c4000000000000]", "0x00")
+ self.binary32_to_bid64("1", "[58800000]", "[31c4000000000000]", "0x00")
+ self.binary32_to_bid64("2", "[58800000]", "[31c4000000000000]", "0x00")
+ self.binary32_to_bid64("3", "[58800000]", "[31c4000000000000]", "0x00")
+ self.binary32_to_bid64("4", "[58800000]", "[31c4000000000000]", "0x00")
+ self.binary32_to_bid64("0", "[597ffffd]", "[31cfffffd0000000]", "0x00")
+ self.binary32_to_bid64("1", "[597ffffd]", "[31cfffffd0000000]", "0x00")
+ self.binary32_to_bid64("2", "[597ffffd]", "[31cfffffd0000000]", "0x00")
+ self.binary32_to_bid64("3", "[597ffffd]", "[31cfffffd0000000]", "0x00")
+ self.binary32_to_bid64("4", "[597ffffd]", "[31cfffffd0000000]", "0x00")
+ self.binary32_to_bid64("0", "[5a8e1bc8]", "[31e71afd33333333]", "0x20")
+ self.binary32_to_bid64("1", "[5a8e1bc8]", "[31e71afd33333333]", "0x20")
+ self.binary32_to_bid64("2", "[5a8e1bc8]", "[31e71afd33333334]", "0x20")
+ self.binary32_to_bid64("3", "[5a8e1bc8]", "[31e71afd33333333]", "0x20")
+ self.binary32_to_bid64("4", "[5a8e1bc8]", "[31e71afd33333333]", "0x20")
+ self.binary32_to_bid64("0", "[5b000000]", "[31eccccccccccccd]", "0x20")
+ self.binary32_to_bid64("1", "[5b000000]", "[31eccccccccccccc]", "0x20")
+ self.binary32_to_bid64("2", "[5b000000]", "[31eccccccccccccd]", "0x20")
+ self.binary32_to_bid64("3", "[5b000000]", "[31eccccccccccccc]", "0x20")
+ self.binary32_to_bid64("4", "[5b000000]", "[31eccccccccccccd]", "0x20")
+ self.binary32_to_bid64("0", "[5d7fffed]", "[3224189326e978d5]", "0x20")
+ self.binary32_to_bid64("1", "[5d7fffed]", "[3224189326e978d4]", "0x20")
+ self.binary32_to_bid64("2", "[5d7fffed]", "[3224189326e978d5]", "0x20")
+ self.binary32_to_bid64("3", "[5d7fffed]", "[3224189326e978d4]", "0x20")
+ self.binary32_to_bid64("4", "[5d7fffed]", "[3224189326e978d5]", "0x20")
+ self.binary32_to_bid64("0", "[5dde0b3c]", "[32271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("1", "[5dde0b3c]", "[32271afbc6a7ef9d]", "0x20")
+ self.binary32_to_bid64("2", "[5dde0b3c]", "[32271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("3", "[5dde0b3c]", "[32271afbc6a7ef9d]", "0x20")
+ self.binary32_to_bid64("4", "[5dde0b3c]", "[32271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("0", "[5ffff761]", "[324d1b0075f6fd22]", "0x20")
+ self.binary32_to_bid64("1", "[5ffff761]", "[324d1b0075f6fd21]", "0x20")
+ self.binary32_to_bid64("2", "[5ffff761]", "[324d1b0075f6fd22]", "0x20")
+ self.binary32_to_bid64("3", "[5ffff761]", "[324d1b0075f6fd21]", "0x20")
+ self.binary32_to_bid64("4", "[5ffff761]", "[324d1b0075f6fd22]", "0x20")
+ self.binary32_to_bid64("0", "[612d77cf]", "[32671af19f7f8ca8]", "0x20")
+ self.binary32_to_bid64("1", "[612d77cf]", "[32671af19f7f8ca8]", "0x20")
+ self.binary32_to_bid64("2", "[612d77cf]", "[32671af19f7f8ca9]", "0x20")
+ self.binary32_to_bid64("3", "[612d77cf]", "[32671af19f7f8ca8]", "0x20")
+ self.binary32_to_bid64("4", "[612d77cf]", "[32671af19f7f8ca8]", "0x20")
+ self.binary32_to_bid64("0", "[627f07c9]", "[32842dacd184c272]", "0x20")
+ self.binary32_to_bid64("1", "[627f07c9]", "[32842dacd184c271]", "0x20")
+ self.binary32_to_bid64("2", "[627f07c9]", "[32842dacd184c272]", "0x20")
+ self.binary32_to_bid64("3", "[627f07c9]", "[32842dacd184c271]", "0x20")
+ self.binary32_to_bid64("4", "[627f07c9]", "[32842dacd184c272]", "0x20")
+ self.binary32_to_bid64("0", "[62d75600]", "[32870e5e679463d0]", "0x20")
+ self.binary32_to_bid64("1", "[62d75600]", "[32870e5e679463cf]", "0x20")
+ self.binary32_to_bid64("2", "[62d75600]", "[32870e5e679463d0]", "0x20")
+ self.binary32_to_bid64("3", "[62d75600]", "[32870e5e679463cf]", "0x20")
+ self.binary32_to_bid64("4", "[62d75600]", "[32870e5e679463d0]", "0x20")
+ self.binary32_to_bid64("0", "[63ffc60a]", "[6ca1865668c26139]", "0x20")
+ self.binary32_to_bid64("1", "[63ffc60a]", "[6ca1865668c26138]", "0x20")
+ self.binary32_to_bid64("2", "[63ffc60a]", "[6ca1865668c26139]", "0x20")
+ self.binary32_to_bid64("3", "[63ffc60a]", "[6ca1865668c26138]", "0x20")
+ self.binary32_to_bid64("4", "[63ffc60a]", "[6ca1865668c26139]", "0x20")
+ self.binary32_to_bid64("0", "[66201480]", "[32c6b6d8c4a7ba44]", "0x20")
+ self.binary32_to_bid64("1", "[66201480]", "[32c6b6d8c4a7ba43]", "0x20")
+ self.binary32_to_bid64("2", "[66201480]", "[32c6b6d8c4a7ba44]", "0x20")
+ self.binary32_to_bid64("3", "[66201480]", "[32c6b6d8c4a7ba43]", "0x20")
+ self.binary32_to_bid64("4", "[66201480]", "[32c6b6d8c4a7ba44]", "0x20")
+ self.binary32_to_bid64("0", "[667b04ce]", "[32ca874b22e90e21]", "0x20")
+ self.binary32_to_bid64("1", "[667b04ce]", "[32ca874b22e90e20]", "0x20")
+ self.binary32_to_bid64("2", "[667b04ce]", "[32ca874b22e90e21]", "0x20")
+ self.binary32_to_bid64("3", "[667b04ce]", "[32ca874b22e90e20]", "0x20")
+ self.binary32_to_bid64("4", "[667b04ce]", "[32ca874b22e90e21]", "0x20")
+ self.binary32_to_bid64("0", "[68921dc5]", "[32f39c84745d38da]", "0x20")
+ self.binary32_to_bid64("1", "[68921dc5]", "[32f39c84745d38d9]", "0x20")
+ self.binary32_to_bid64("2", "[68921dc5]", "[32f39c84745d38da]", "0x20")
+ self.binary32_to_bid64("3", "[68921dc5]", "[32f39c84745d38d9]", "0x20")
+ self.binary32_to_bid64("4", "[68921dc5]", "[32f39c84745d38da]", "0x20")
+ self.binary32_to_bid64("0", "[691449ac]", "[3303fb069f6b0fa4]", "0x20")
+ self.binary32_to_bid64("1", "[691449ac]", "[3303fb069f6b0fa4]", "0x20")
+ self.binary32_to_bid64("2", "[691449ac]", "[3303fb069f6b0fa5]", "0x20")
+ self.binary32_to_bid64("3", "[691449ac]", "[3303fb069f6b0fa4]", "0x20")
+ self.binary32_to_bid64("4", "[691449ac]", "[3303fb069f6b0fa4]", "0x20")
+ self.binary32_to_bid64("0", "[6b595d67]", "[332955f3ab49a18a]", "0x20")
+ self.binary32_to_bid64("1", "[6b595d67]", "[332955f3ab49a189]", "0x20")
+ self.binary32_to_bid64("2", "[6b595d67]", "[332955f3ab49a18a]", "0x20")
+ self.binary32_to_bid64("3", "[6b595d67]", "[332955f3ab49a189]", "0x20")
+ self.binary32_to_bid64("4", "[6b595d67]", "[332955f3ab49a18a]", "0x20")
+ self.binary32_to_bid64("0", "[6bccfb40]", "[33319b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("1", "[6bccfb40]", "[33319b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("2", "[6bccfb40]", "[33319b96f36ec68c]", "0x20")
+ self.binary32_to_bid64("3", "[6bccfb40]", "[33319b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("4", "[6bccfb40]", "[33319b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("0", "[6e80c2a0]", "[33671423b488a20d]", "0x20")
+ self.binary32_to_bid64("1", "[6e80c2a0]", "[33671423b488a20d]", "0x20")
+ self.binary32_to_bid64("2", "[6e80c2a0]", "[33671423b488a20e]", "0x20")
+ self.binary32_to_bid64("3", "[6e80c2a0]", "[33671423b488a20d]", "0x20")
+ self.binary32_to_bid64("4", "[6e80c2a0]", "[33671423b488a20d]", "0x20")
+ self.binary32_to_bid64("0", "[6f20244a]", "[33719b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("1", "[6f20244a]", "[33719b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("2", "[6f20244a]", "[33719b96f36ec68c]", "0x20")
+ self.binary32_to_bid64("3", "[6f20244a]", "[33719b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("4", "[6f20244a]", "[33719b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("0", "[71b00170]", "[33a631515145bfce]", "0x20")
+ self.binary32_to_bid64("1", "[71b00170]", "[33a631515145bfcd]", "0x20")
+ self.binary32_to_bid64("2", "[71b00170]", "[33a631515145bfce]", "0x20")
+ self.binary32_to_bid64("3", "[71b00170]", "[33a631515145bfcd]", "0x20")
+ self.binary32_to_bid64("4", "[71b00170]", "[33a631515145bfce]", "0x20")
+ self.binary32_to_bid64("0", "[71ff532e]", "[33a8fbc32ef14127]", "0x20")
+ self.binary32_to_bid64("1", "[71ff532e]", "[33a8fbc32ef14126]", "0x20")
+ self.binary32_to_bid64("2", "[71ff532e]", "[33a8fbc32ef14127]", "0x20")
+ self.binary32_to_bid64("3", "[71ff532e]", "[33a8fbc32ef14126]", "0x20")
+ self.binary32_to_bid64("4", "[71ff532e]", "[33a8fbc32ef14127]", "0x20")
+ self.binary32_to_bid64("0", "[7343b54c]", "[33c58239e41f1486]", "0x20")
+ self.binary32_to_bid64("1", "[7343b54c]", "[33c58239e41f1485]", "0x20")
+ self.binary32_to_bid64("2", "[7343b54c]", "[33c58239e41f1486]", "0x20")
+ self.binary32_to_bid64("3", "[7343b54c]", "[33c58239e41f1485]", "0x20")
+ self.binary32_to_bid64("4", "[7343b54c]", "[33c58239e41f1486]", "0x20")
+ self.binary32_to_bid64("0", "[749358a8]", "[6cf12defc9b57a59]", "0x20")
+ self.binary32_to_bid64("1", "[749358a8]", "[6cf12defc9b57a59]", "0x20")
+ self.binary32_to_bid64("2", "[749358a8]", "[6cf12defc9b57a5a]", "0x20")
+ self.binary32_to_bid64("3", "[749358a8]", "[6cf12defc9b57a59]", "0x20")
+ self.binary32_to_bid64("4", "[749358a8]", "[6cf12defc9b57a59]", "0x20")
+ self.binary32_to_bid64("0", "[76f4a29f]", "[3408d05ca031ba70]", "0x20")
+ self.binary32_to_bid64("1", "[76f4a29f]", "[3408d05ca031ba6f]", "0x20")
+ self.binary32_to_bid64("2", "[76f4a29f]", "[3408d05ca031ba70]", "0x20")
+ self.binary32_to_bid64("3", "[76f4a29f]", "[3408d05ca031ba6f]", "0x20")
+ self.binary32_to_bid64("4", "[76f4a29f]", "[3408d05ca031ba70]", "0x20")
+ self.binary32_to_bid64("0", "[77feb130]", "[3423aba5ec7fa82c]", "0x20")
+ self.binary32_to_bid64("1", "[77feb130]", "[3423aba5ec7fa82c]", "0x20")
+ self.binary32_to_bid64("2", "[77feb130]", "[3423aba5ec7fa82d]", "0x20")
+ self.binary32_to_bid64("3", "[77feb130]", "[3423aba5ec7fa82c]", "0x20")
+ self.binary32_to_bid64("4", "[77feb130]", "[3423aba5ec7fa82c]", "0x20")
+ self.binary32_to_bid64("0", "[785b7001]", "[34265329bf3203e1]", "0x20")
+ self.binary32_to_bid64("1", "[785b7001]", "[34265329bf3203e1]", "0x20")
+ self.binary32_to_bid64("2", "[785b7001]", "[34265329bf3203e2]", "0x20")
+ self.binary32_to_bid64("3", "[785b7001]", "[34265329bf3203e1]", "0x20")
+ self.binary32_to_bid64("4", "[785b7001]", "[34265329bf3203e1]", "0x20")
+ self.binary32_to_bid64("0", "[79dcb560]", "[344516d53fd9fe3d]", "0x20")
+ self.binary32_to_bid64("1", "[79dcb560]", "[344516d53fd9fe3d]", "0x20")
+ self.binary32_to_bid64("2", "[79dcb560]", "[344516d53fd9fe3e]", "0x20")
+ self.binary32_to_bid64("3", "[79dcb560]", "[344516d53fd9fe3d]", "0x20")
+ self.binary32_to_bid64("4", "[79dcb560]", "[344516d53fd9fe3d]", "0x20")
+ self.binary32_to_bid64("0", "[7a1858ac]", "[34470696aa07aeff]", "0x20")
+ self.binary32_to_bid64("1", "[7a1858ac]", "[34470696aa07aeff]", "0x20")
+ self.binary32_to_bid64("2", "[7a1858ac]", "[34470696aa07af00]", "0x20")
+ self.binary32_to_bid64("3", "[7a1858ac]", "[34470696aa07aeff]", "0x20")
+ self.binary32_to_bid64("4", "[7a1858ac]", "[34470696aa07aeff]", "0x20")
+ self.binary32_to_bid64("0", "[7d0dd92d]", "[34842fc69945497a]", "0x20")
+ self.binary32_to_bid64("1", "[7d0dd92d]", "[34842fc699454979]", "0x20")
+ self.binary32_to_bid64("2", "[7d0dd92d]", "[34842fc69945497a]", "0x20")
+ self.binary32_to_bid64("3", "[7d0dd92d]", "[34842fc699454979]", "0x20")
+ self.binary32_to_bid64("4", "[7d0dd92d]", "[34842fc69945497a]", "0x20")
+ self.binary32_to_bid64("0", "[7e08c06c]", "[34902510a0b202bb]", "0x20")
+ self.binary32_to_bid64("1", "[7e08c06c]", "[34902510a0b202bb]", "0x20")
+ self.binary32_to_bid64("2", "[7e08c06c]", "[34902510a0b202bc]", "0x20")
+ self.binary32_to_bid64("3", "[7e08c06c]", "[34902510a0b202bb]", "0x20")
+ self.binary32_to_bid64("4", "[7e08c06c]", "[34902510a0b202bb]", "0x20")
+ self.binary32_to_bid64("0", "[7f7fffff]", "[34ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("1", "[7f7fffff]", "[34ac16d993f27f88]", "0x20")
+ self.binary32_to_bid64("2", "[7f7fffff]", "[34ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("3", "[7f7fffff]", "[34ac16d993f27f88]", "0x20")
+ self.binary32_to_bid64("4", "[7f7fffff]", "[34ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("0", "[7f800000]", "[7800000000000000]", "0x00")
+ self.binary32_to_bid64("1", "[7f800000]", "[7800000000000000]", "0x00")
+ self.binary32_to_bid64("2", "[7f800000]", "[7800000000000000]", "0x00")
+ self.binary32_to_bid64("3", "[7f800000]", "[7800000000000000]", "0x00")
+ self.binary32_to_bid64("4", "[7f800000]", "[7800000000000000]", "0x00")
+ self.binary32_to_bid64("0", "[7fb08000]", "[7c03080000000000]", "0x01")
+ self.binary32_to_bid64("0", "[7ff08000]", "[7c03080000000000]", "0x00")
+ self.binary32_to_bid64("0", "[80000001]", "[aa44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("1", "[80000001]", "[aa44fa793930bcd2]", "0x22")
+ self.binary32_to_bid64("2", "[80000001]", "[aa44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("3", "[80000001]", "[aa44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("4", "[80000001]", "[aa44fa793930bcd1]", "0x22")
+ self.binary32_to_bid64("0", "[80000005]", "[aa58e45e1df3b015]", "0x22")
+ self.binary32_to_bid64("1", "[80000005]", "[aa58e45e1df3b016]", "0x22")
+ self.binary32_to_bid64("2", "[80000005]", "[aa58e45e1df3b015]", "0x22")
+ self.binary32_to_bid64("3", "[80000005]", "[aa58e45e1df3b015]", "0x22")
+ self.binary32_to_bid64("4", "[80000005]", "[aa58e45e1df3b015]", "0x22")
+ self.binary32_to_bid64("0", "[8000003b]", "[aa7d5f64d16c5a05]", "0x22")
+ self.binary32_to_bid64("1", "[8000003b]", "[aa7d5f64d16c5a05]", "0x22")
+ self.binary32_to_bid64("2", "[8000003b]", "[aa7d5f64d16c5a04]", "0x22")
+ self.binary32_to_bid64("3", "[8000003b]", "[aa7d5f64d16c5a04]", "0x22")
+ self.binary32_to_bid64("4", "[8000003b]", "[aa7d5f64d16c5a05]", "0x22")
+ self.binary32_to_bid64("0", "[800001d7]", "[aa9772c533c44620]", "0x22")
+ self.binary32_to_bid64("1", "[800001d7]", "[aa9772c533c44621]", "0x22")
+ self.binary32_to_bid64("2", "[800001d7]", "[aa9772c533c44620]", "0x22")
+ self.binary32_to_bid64("3", "[800001d7]", "[aa9772c533c44620]", "0x22")
+ self.binary32_to_bid64("4", "[800001d7]", "[aa9772c533c44620]", "0x22")
+ self.binary32_to_bid64("0", "[800002e5]", "[aaa3b06287d16d31]", "0x22")
+ self.binary32_to_bid64("1", "[800002e5]", "[aaa3b06287d16d32]", "0x22")
+ self.binary32_to_bid64("2", "[800002e5]", "[aaa3b06287d16d31]", "0x22")
+ self.binary32_to_bid64("3", "[800002e5]", "[aaa3b06287d16d31]", "0x22")
+ self.binary32_to_bid64("4", "[800002e5]", "[aaa3b06287d16d31]", "0x22")
+ self.binary32_to_bid64("0", "[80001505]", "[aabac9f12ac80c81]", "0x22")
+ self.binary32_to_bid64("1", "[80001505]", "[aabac9f12ac80c81]", "0x22")
+ self.binary32_to_bid64("2", "[80001505]", "[aabac9f12ac80c80]", "0x22")
+ self.binary32_to_bid64("3", "[80001505]", "[aabac9f12ac80c80]", "0x22")
+ self.binary32_to_bid64("4", "[80001505]", "[aabac9f12ac80c81]", "0x22")
+ self.binary32_to_bid64("0", "[80005970]", "[aacb6608db01d115]", "0x22")
+ self.binary32_to_bid64("1", "[80005970]", "[aacb6608db01d116]", "0x22")
+ self.binary32_to_bid64("2", "[80005970]", "[aacb6608db01d115]", "0x22")
+ self.binary32_to_bid64("3", "[80005970]", "[aacb6608db01d115]", "0x22")
+ self.binary32_to_bid64("4", "[80005970]", "[aacb6608db01d115]", "0x22")
+ self.binary32_to_bid64("0", "[80020b64]", "[aae6aba43f5e1110]", "0x22")
+ self.binary32_to_bid64("1", "[80020b64]", "[aae6aba43f5e1110]", "0x22")
+ self.binary32_to_bid64("2", "[80020b64]", "[aae6aba43f5e110f]", "0x22")
+ self.binary32_to_bid64("3", "[80020b64]", "[aae6aba43f5e110f]", "0x22")
+ self.binary32_to_bid64("4", "[80020b64]", "[aae6aba43f5e1110]", "0x22")
+ self.binary32_to_bid64("0", "[80130c2a]", "[ab0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("1", "[80130c2a]", "[ab0636ec39d0a11d]", "0x22")
+ self.binary32_to_bid64("2", "[80130c2a]", "[ab0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("3", "[80130c2a]", "[ab0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("4", "[80130c2a]", "[ab0636ec39d0a11c]", "0x22")
+ self.binary32_to_bid64("0", "[803411c6]", "[ab10fd0aa04c567d]", "0x22")
+ self.binary32_to_bid64("1", "[803411c6]", "[ab10fd0aa04c567d]", "0x22")
+ self.binary32_to_bid64("2", "[803411c6]", "[ab10fd0aa04c567c]", "0x22")
+ self.binary32_to_bid64("3", "[803411c6]", "[ab10fd0aa04c567c]", "0x22")
+ self.binary32_to_bid64("4", "[803411c6]", "[ab10fd0aa04c567d]", "0x22")
+ self.binary32_to_bid64("0", "[807fffff]", "[ab242d1b12dd2559]", "0x22")
+ self.binary32_to_bid64("1", "[807fffff]", "[ab242d1b12dd255a]", "0x22")
+ self.binary32_to_bid64("2", "[807fffff]", "[ab242d1b12dd2559]", "0x22")
+ self.binary32_to_bid64("3", "[807fffff]", "[ab242d1b12dd2559]", "0x22")
+ self.binary32_to_bid64("4", "[807fffff]", "[ab242d1b12dd2559]", "0x22")
+ self.binary32_to_bid64("0", "[80800000]", "[ab242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("1", "[80800000]", "[ab242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("2", "[80800000]", "[ab242d1b1b375b8f]", "0x20")
+ self.binary32_to_bid64("3", "[80800000]", "[ab242d1b1b375b8f]", "0x20")
+ self.binary32_to_bid64("4", "[80800000]", "[ab242d1b1b375b90]", "0x20")
+ self.binary32_to_bid64("0", "[81000000]", "[ab285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("1", "[81000000]", "[ab285a36366eb720]", "0x20")
+ self.binary32_to_bid64("2", "[81000000]", "[ab285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("3", "[81000000]", "[ab285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("4", "[81000000]", "[ab285a36366eb71f]", "0x20")
+ self.binary32_to_bid64("0", "[81c0f70e]", "[ab392ee0a0421490]", "0x20")
+ self.binary32_to_bid64("1", "[81c0f70e]", "[ab392ee0a0421490]", "0x20")
+ self.binary32_to_bid64("2", "[81c0f70e]", "[ab392ee0a042148f]", "0x20")
+ self.binary32_to_bid64("3", "[81c0f70e]", "[ab392ee0a042148f]", "0x20")
+ self.binary32_to_bid64("4", "[81c0f70e]", "[ab392ee0a0421490]", "0x20")
+ self.binary32_to_bid64("0", "[830d9c86]", "[ab4ec8f0a72815d2]", "0x20")
+ self.binary32_to_bid64("1", "[830d9c86]", "[ab4ec8f0a72815d3]", "0x20")
+ self.binary32_to_bid64("2", "[830d9c86]", "[ab4ec8f0a72815d2]", "0x20")
+ self.binary32_to_bid64("3", "[830d9c86]", "[ab4ec8f0a72815d2]", "0x20")
+ self.binary32_to_bid64("4", "[830d9c86]", "[ab4ec8f0a72815d2]", "0x20")
+ self.binary32_to_bid64("0", "[84a11041]", "[ab6d73e0e7bf7aa4]", "0x20")
+ self.binary32_to_bid64("1", "[84a11041]", "[ab6d73e0e7bf7aa5]", "0x20")
+ self.binary32_to_bid64("2", "[84a11041]", "[ab6d73e0e7bf7aa4]", "0x20")
+ self.binary32_to_bid64("3", "[84a11041]", "[ab6d73e0e7bf7aa4]", "0x20")
+ self.binary32_to_bid64("4", "[84a11041]", "[ab6d73e0e7bf7aa4]", "0x20")
+ self.binary32_to_bid64("0", "[8500ad00]", "[ab757eb8ad52a5c9]", "0x20")
+ self.binary32_to_bid64("1", "[8500ad00]", "[ab757eb8ad52a5c9]", "0x20")
+ self.binary32_to_bid64("2", "[8500ad00]", "[ab757eb8ad52a5c8]", "0x20")
+ self.binary32_to_bid64("3", "[8500ad00]", "[ab757eb8ad52a5c8]", "0x20")
+ self.binary32_to_bid64("4", "[8500ad00]", "[ab757eb8ad52a5c9]", "0x20")
+ self.binary32_to_bid64("0", "[85c11c64]", "[ab8673a5e389d468]", "0x20")
+ self.binary32_to_bid64("1", "[85c11c64]", "[ab8673a5e389d469]", "0x20")
+ self.binary32_to_bid64("2", "[85c11c64]", "[ab8673a5e389d468]", "0x20")
+ self.binary32_to_bid64("3", "[85c11c64]", "[ab8673a5e389d468]", "0x20")
+ self.binary32_to_bid64("4", "[85c11c64]", "[ab8673a5e389d468]", "0x20")
+ self.binary32_to_bid64("0", "[88a0de79]", "[eaea65af4ce72c40]", "0x20")
+ self.binary32_to_bid64("1", "[88a0de79]", "[eaea65af4ce72c40]", "0x20")
+ self.binary32_to_bid64("2", "[88a0de79]", "[eaea65af4ce72c3f]", "0x20")
+ self.binary32_to_bid64("3", "[88a0de79]", "[eaea65af4ce72c3f]", "0x20")
+ self.binary32_to_bid64("4", "[88a0de79]", "[eaea65af4ce72c40]", "0x20")
+ self.binary32_to_bid64("0", "[890cd61c]", "[abc605d390331737]", "0x20")
+ self.binary32_to_bid64("1", "[890cd61c]", "[abc605d390331738]", "0x20")
+ self.binary32_to_bid64("2", "[890cd61c]", "[abc605d390331737]", "0x20")
+ self.binary32_to_bid64("3", "[890cd61c]", "[abc605d390331737]", "0x20")
+ self.binary32_to_bid64("4", "[890cd61c]", "[abc605d390331737]", "0x20")
+ self.binary32_to_bid64("0", "[8a0cd61c]", "[abd8174e40cc5cdc]", "0x20")
+ self.binary32_to_bid64("1", "[8a0cd61c]", "[abd8174e40cc5cdd]", "0x20")
+ self.binary32_to_bid64("2", "[8a0cd61c]", "[abd8174e40cc5cdc]", "0x20")
+ self.binary32_to_bid64("3", "[8a0cd61c]", "[abd8174e40cc5cdc]", "0x20")
+ self.binary32_to_bid64("4", "[8a0cd61c]", "[abd8174e40cc5cdc]", "0x20")
+ self.binary32_to_bid64("0", "[8c40f78e]", "[ac05480599c18d4a]", "0x20")
+ self.binary32_to_bid64("1", "[8c40f78e]", "[ac05480599c18d4b]", "0x20")
+ self.binary32_to_bid64("2", "[8c40f78e]", "[ac05480599c18d4a]", "0x20")
+ self.binary32_to_bid64("3", "[8c40f78e]", "[ac05480599c18d4a]", "0x20")
+ self.binary32_to_bid64("4", "[8c40f78e]", "[ac05480599c18d4a]", "0x20")
+ self.binary32_to_bid64("0", "[8d725d9e]", "[ac1a88888fc8db64]", "0x20")
+ self.binary32_to_bid64("1", "[8d725d9e]", "[ac1a88888fc8db64]", "0x20")
+ self.binary32_to_bid64("2", "[8d725d9e]", "[ac1a88888fc8db63]", "0x20")
+ self.binary32_to_bid64("3", "[8d725d9e]", "[ac1a88888fc8db63]", "0x20")
+ self.binary32_to_bid64("4", "[8d725d9e]", "[ac1a88888fc8db64]", "0x20")
+ self.binary32_to_bid64("0", "[8f26e6d5]", "[ac3d3c21695b2af8]", "0x20")
+ self.binary32_to_bid64("1", "[8f26e6d5]", "[ac3d3c21695b2af9]", "0x20")
+ self.binary32_to_bid64("2", "[8f26e6d5]", "[ac3d3c21695b2af8]", "0x20")
+ self.binary32_to_bid64("3", "[8f26e6d5]", "[ac3d3c21695b2af8]", "0x20")
+ self.binary32_to_bid64("4", "[8f26e6d5]", "[ac3d3c21695b2af8]", "0x20")
+ self.binary32_to_bid64("0", "[8feb7ade]", "[ac483fdb73732364]", "0x20")
+ self.binary32_to_bid64("1", "[8feb7ade]", "[ac483fdb73732365]", "0x20")
+ self.binary32_to_bid64("2", "[8feb7ade]", "[ac483fdb73732364]", "0x20")
+ self.binary32_to_bid64("3", "[8feb7ade]", "[ac483fdb73732364]", "0x20")
+ self.binary32_to_bid64("4", "[8feb7ade]", "[ac483fdb73732364]", "0x20")
+ self.binary32_to_bid64("0", "[916dd8d0]", "[ac66aa77ce20cf9d]", "0x20")
+ self.binary32_to_bid64("1", "[916dd8d0]", "[ac66aa77ce20cf9e]", "0x20")
+ self.binary32_to_bid64("2", "[916dd8d0]", "[ac66aa77ce20cf9d]", "0x20")
+ self.binary32_to_bid64("3", "[916dd8d0]", "[ac66aa77ce20cf9d]", "0x20")
+ self.binary32_to_bid64("4", "[916dd8d0]", "[ac66aa77ce20cf9d]", "0x20")
+ self.binary32_to_bid64("0", "[916eb528]", "[ac66b0a4b1ae2816]", "0x20")
+ self.binary32_to_bid64("1", "[916eb528]", "[ac66b0a4b1ae2817]", "0x20")
+ self.binary32_to_bid64("2", "[916eb528]", "[ac66b0a4b1ae2816]", "0x20")
+ self.binary32_to_bid64("3", "[916eb528]", "[ac66b0a4b1ae2816]", "0x20")
+ self.binary32_to_bid64("4", "[916eb528]", "[ac66b0a4b1ae2816]", "0x20")
+ self.binary32_to_bid64("0", "[9451683a]", "[aca3c18ce77b588f]", "0x20")
+ self.binary32_to_bid64("1", "[9451683a]", "[aca3c18ce77b588f]", "0x20")
+ self.binary32_to_bid64("2", "[9451683a]", "[aca3c18ce77b588e]", "0x20")
+ self.binary32_to_bid64("3", "[9451683a]", "[aca3c18ce77b588e]", "0x20")
+ self.binary32_to_bid64("4", "[9451683a]", "[aca3c18ce77b588f]", "0x20")
+ self.binary32_to_bid64("0", "[94bb29ac]", "[aca6b6d1953b8090]", "0x20")
+ self.binary32_to_bid64("1", "[94bb29ac]", "[aca6b6d1953b8090]", "0x20")
+ self.binary32_to_bid64("2", "[94bb29ac]", "[aca6b6d1953b808f]", "0x20")
+ self.binary32_to_bid64("3", "[94bb29ac]", "[aca6b6d1953b808f]", "0x20")
+ self.binary32_to_bid64("4", "[94bb29ac]", "[aca6b6d1953b8090]", "0x20")
+ self.binary32_to_bid64("0", "[96b8dc5d]", "[acca9c49056b35a7]", "0x20")
+ self.binary32_to_bid64("1", "[96b8dc5d]", "[acca9c49056b35a7]", "0x20")
+ self.binary32_to_bid64("2", "[96b8dc5d]", "[acca9c49056b35a6]", "0x20")
+ self.binary32_to_bid64("3", "[96b8dc5d]", "[acca9c49056b35a6]", "0x20")
+ self.binary32_to_bid64("4", "[96b8dc5d]", "[acca9c49056b35a7]", "0x20")
+ self.binary32_to_bid64("0", "[974864a0]", "[acd70105df3d47cb]", "0x20")
+ self.binary32_to_bid64("1", "[974864a0]", "[acd70105df3d47cc]", "0x20")
+ self.binary32_to_bid64("2", "[974864a0]", "[acd70105df3d47cb]", "0x20")
+ self.binary32_to_bid64("3", "[974864a0]", "[acd70105df3d47cb]", "0x20")
+ self.binary32_to_bid64("4", "[974864a0]", "[acd70105df3d47cb]", "0x20")
+ self.binary32_to_bid64("0", "[992ece11]", "[eb381b4a02a82ec4]", "0x20")
+ self.binary32_to_bid64("1", "[992ece11]", "[eb381b4a02a82ec4]", "0x20")
+ self.binary32_to_bid64("2", "[992ece11]", "[eb381b4a02a82ec3]", "0x20")
+ self.binary32_to_bid64("3", "[992ece11]", "[eb381b4a02a82ec3]", "0x20")
+ self.binary32_to_bid64("4", "[992ece11]", "[eb381b4a02a82ec4]", "0x20")
+ self.binary32_to_bid64("0", "[9a9c8e9d]", "[ad170105df3d47cb]", "0x20")
+ self.binary32_to_bid64("1", "[9a9c8e9d]", "[ad170105df3d47cc]", "0x20")
+ self.binary32_to_bid64("2", "[9a9c8e9d]", "[ad170105df3d47cb]", "0x20")
+ self.binary32_to_bid64("3", "[9a9c8e9d]", "[ad170105df3d47cb]", "0x20")
+ self.binary32_to_bid64("4", "[9a9c8e9d]", "[ad170105df3d47cb]", "0x20")
+ self.binary32_to_bid64("0", "[9b4aa900]", "[ad25f4a54371db69]", "0x20")
+ self.binary32_to_bid64("1", "[9b4aa900]", "[ad25f4a54371db6a]", "0x20")
+ self.binary32_to_bid64("2", "[9b4aa900]", "[ad25f4a54371db69]", "0x20")
+ self.binary32_to_bid64("3", "[9b4aa900]", "[ad25f4a54371db69]", "0x20")
+ self.binary32_to_bid64("4", "[9b4aa900]", "[ad25f4a54371db69]", "0x20")
+ self.binary32_to_bid64("0", "[9b8cc727]", "[ad284630e5569c58]", "0x20")
+ self.binary32_to_bid64("1", "[9b8cc727]", "[ad284630e5569c59]", "0x20")
+ self.binary32_to_bid64("2", "[9b8cc727]", "[ad284630e5569c58]", "0x20")
+ self.binary32_to_bid64("3", "[9b8cc727]", "[ad284630e5569c58]", "0x20")
+ self.binary32_to_bid64("4", "[9b8cc727]", "[ad284630e5569c58]", "0x20")
+ self.binary32_to_bid64("0", "[9d0cc727]", "[ad469e8d844549e0]", "0x20")
+ self.binary32_to_bid64("1", "[9d0cc727]", "[ad469e8d844549e1]", "0x20")
+ self.binary32_to_bid64("2", "[9d0cc727]", "[ad469e8d844549e0]", "0x20")
+ self.binary32_to_bid64("3", "[9d0cc727]", "[ad469e8d844549e0]", "0x20")
+ self.binary32_to_bid64("4", "[9d0cc727]", "[ad469e8d844549e0]", "0x20")
+ self.binary32_to_bid64("0", "[9fac718f]", "[ad79f249106c0254]", "0x20")
+ self.binary32_to_bid64("1", "[9fac718f]", "[ad79f249106c0255]", "0x20")
+ self.binary32_to_bid64("2", "[9fac718f]", "[ad79f249106c0254]", "0x20")
+ self.binary32_to_bid64("3", "[9fac718f]", "[ad79f249106c0254]", "0x20")
+ self.binary32_to_bid64("4", "[9fac718f]", "[ad79f249106c0254]", "0x20")
+ self.binary32_to_bid64("0", "[9fe22418]", "[eb5a06a25682726d]", "0x20")
+ self.binary32_to_bid64("1", "[9fe22418]", "[eb5a06a25682726e]", "0x20")
+ self.binary32_to_bid64("2", "[9fe22418]", "[eb5a06a25682726d]", "0x20")
+ self.binary32_to_bid64("3", "[9fe22418]", "[eb5a06a25682726d]", "0x20")
+ self.binary32_to_bid64("4", "[9fe22418]", "[eb5a06a25682726d]", "0x20")
+ self.binary32_to_bid64("0", "[a0cbbbd8]", "[ad8c43040290e250]", "0x20")
+ self.binary32_to_bid64("1", "[a0cbbbd8]", "[ad8c43040290e251]", "0x20")
+ self.binary32_to_bid64("2", "[a0cbbbd8]", "[ad8c43040290e250]", "0x20")
+ self.binary32_to_bid64("3", "[a0cbbbd8]", "[ad8c43040290e250]", "0x20")
+ self.binary32_to_bid64("4", "[a0cbbbd8]", "[ad8c43040290e250]", "0x20")
+ self.binary32_to_bid64("0", "[a389732f]", "[adc54b5c6b34cacb]", "0x20")
+ self.binary32_to_bid64("1", "[a389732f]", "[adc54b5c6b34cacc]", "0x20")
+ self.binary32_to_bid64("2", "[a389732f]", "[adc54b5c6b34cacb]", "0x20")
+ self.binary32_to_bid64("3", "[a389732f]", "[adc54b5c6b34cacb]", "0x20")
+ self.binary32_to_bid64("4", "[a389732f]", "[adc54b5c6b34cacb]", "0x20")
+ self.binary32_to_bid64("0", "[a3a66f78]", "[adc6692e146017cc]", "0x20")
+ self.binary32_to_bid64("1", "[a3a66f78]", "[adc6692e146017cc]", "0x20")
+ self.binary32_to_bid64("2", "[a3a66f78]", "[adc6692e146017cb]", "0x20")
+ self.binary32_to_bid64("3", "[a3a66f78]", "[adc6692e146017cb]", "0x20")
+ self.binary32_to_bid64("4", "[a3a66f78]", "[adc6692e146017cc]", "0x20")
+ self.binary32_to_bid64("0", "[a53dbf34]", "[ade5d8d6c97e640a]", "0x20")
+ self.binary32_to_bid64("1", "[a53dbf34]", "[ade5d8d6c97e640b]", "0x20")
+ self.binary32_to_bid64("2", "[a53dbf34]", "[ade5d8d6c97e640a]", "0x20")
+ self.binary32_to_bid64("3", "[a53dbf34]", "[ade5d8d6c97e640a]", "0x20")
+ self.binary32_to_bid64("4", "[a53dbf34]", "[ade5d8d6c97e640a]", "0x20")
+ self.binary32_to_bid64("0", "[a55162c0]", "[ade673c3238d344a]", "0x20")
+ self.binary32_to_bid64("1", "[a55162c0]", "[ade673c3238d344a]", "0x20")
+ self.binary32_to_bid64("2", "[a55162c0]", "[ade673c3238d3449]", "0x20")
+ self.binary32_to_bid64("3", "[a55162c0]", "[ade673c3238d3449]", "0x20")
+ self.binary32_to_bid64("4", "[a55162c0]", "[ade673c3238d344a]", "0x20")
+ self.binary32_to_bid64("0", "[a87d4ed0]", "[ae24fee0bcc25833]", "0x20")
+ self.binary32_to_bid64("1", "[a87d4ed0]", "[ae24fee0bcc25834]", "0x20")
+ self.binary32_to_bid64("2", "[a87d4ed0]", "[ae24fee0bcc25833]", "0x20")
+ self.binary32_to_bid64("3", "[a87d4ed0]", "[ae24fee0bcc25833]", "0x20")
+ self.binary32_to_bid64("4", "[a87d4ed0]", "[ae24fee0bcc25833]", "0x20")
+ self.binary32_to_bid64("0", "[a8bccf94]", "[ae2772809d013bd9]", "0x20")
+ self.binary32_to_bid64("1", "[a8bccf94]", "[ae2772809d013bda]", "0x20")
+ self.binary32_to_bid64("2", "[a8bccf94]", "[ae2772809d013bd9]", "0x20")
+ self.binary32_to_bid64("3", "[a8bccf94]", "[ae2772809d013bd9]", "0x20")
+ self.binary32_to_bid64("4", "[a8bccf94]", "[ae2772809d013bd9]", "0x20")
+ self.binary32_to_bid64("0", "[ab5b4de6]", "[ae5bae1a9364eb06]", "0x20")
+ self.binary32_to_bid64("1", "[ab5b4de6]", "[ae5bae1a9364eb07]", "0x20")
+ self.binary32_to_bid64("2", "[ab5b4de6]", "[ae5bae1a9364eb06]", "0x20")
+ self.binary32_to_bid64("3", "[ab5b4de6]", "[ae5bae1a9364eb06]", "0x20")
+ self.binary32_to_bid64("4", "[ab5b4de6]", "[ae5bae1a9364eb06]", "0x20")
+ self.binary32_to_bid64("0", "[abfcb90c]", "[ae66612eddba9727]", "0x20")
+ self.binary32_to_bid64("1", "[abfcb90c]", "[ae66612eddba9727]", "0x20")
+ self.binary32_to_bid64("2", "[abfcb90c]", "[ae66612eddba9726]", "0x20")
+ self.binary32_to_bid64("3", "[abfcb90c]", "[ae66612eddba9726]", "0x20")
+ self.binary32_to_bid64("4", "[abfcb90c]", "[ae66612eddba9727]", "0x20")
+ self.binary32_to_bid64("0", "[ad942980]", "[ae85fbf5d68a4e3b]", "0x20")
+ self.binary32_to_bid64("1", "[ad942980]", "[ae85fbf5d68a4e3b]", "0x20")
+ self.binary32_to_bid64("2", "[ad942980]", "[ae85fbf5d68a4e3a]", "0x20")
+ self.binary32_to_bid64("3", "[ad942980]", "[ae85fbf5d68a4e3a]", "0x20")
+ self.binary32_to_bid64("4", "[ad942980]", "[ae85fbf5d68a4e3b]", "0x20")
+ self.binary32_to_bid64("0", "[adfbefbf]", "[ae8a2cf6626f52c2]", "0x20")
+ self.binary32_to_bid64("1", "[adfbefbf]", "[ae8a2cf6626f52c3]", "0x20")
+ self.binary32_to_bid64("2", "[adfbefbf]", "[ae8a2cf6626f52c2]", "0x20")
+ self.binary32_to_bid64("3", "[adfbefbf]", "[ae8a2cf6626f52c2]", "0x20")
+ self.binary32_to_bid64("4", "[adfbefbf]", "[ae8a2cf6626f52c2]", "0x20")
+ self.binary32_to_bid64("0", "[af4a40e3]", "[aea689005e648097]", "0x20")
+ self.binary32_to_bid64("1", "[af4a40e3]", "[aea689005e648098]", "0x20")
+ self.binary32_to_bid64("2", "[af4a40e3]", "[aea689005e648097]", "0x20")
+ self.binary32_to_bid64("3", "[af4a40e3]", "[aea689005e648097]", "0x20")
+ self.binary32_to_bid64("4", "[af4a40e3]", "[aea689005e648097]", "0x20")
+ self.binary32_to_bid64("0", "[af942980]", "[aea99322f0dd49f8]", "0x20")
+ self.binary32_to_bid64("1", "[af942980]", "[aea99322f0dd49f8]", "0x20")
+ self.binary32_to_bid64("2", "[af942980]", "[aea99322f0dd49f7]", "0x20")
+ self.binary32_to_bid64("3", "[af942980]", "[aea99322f0dd49f7]", "0x20")
+ self.binary32_to_bid64("4", "[af942980]", "[aea99322f0dd49f8]", "0x20")
+ self.binary32_to_bid64("0", "[afb933e0]", "[aeabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("1", "[afb933e0]", "[aeabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("2", "[afb933e0]", "[aeabf7ebad149c75]", "0x20")
+ self.binary32_to_bid64("3", "[afb933e0]", "[aeabf7ebad149c75]", "0x20")
+ self.binary32_to_bid64("4", "[afb933e0]", "[aeabf7ebad149c76]", "0x20")
+ self.binary32_to_bid64("0", "[b410b087]", "[af04c991786ea4fc]", "0x20")
+ self.binary32_to_bid64("1", "[b410b087]", "[af04c991786ea4fc]", "0x20")
+ self.binary32_to_bid64("2", "[b410b087]", "[af04c991786ea4fb]", "0x20")
+ self.binary32_to_bid64("3", "[b410b087]", "[af04c991786ea4fb]", "0x20")
+ self.binary32_to_bid64("4", "[b410b087]", "[af04c991786ea4fc]", "0x20")
+ self.binary32_to_bid64("0", "[b5f0b087]", "[af265ef9d47dca6c]", "0x20")
+ self.binary32_to_bid64("1", "[b5f0b087]", "[af265ef9d47dca6d]", "0x20")
+ self.binary32_to_bid64("2", "[b5f0b087]", "[af265ef9d47dca6c]", "0x20")
+ self.binary32_to_bid64("3", "[b5f0b087]", "[af265ef9d47dca6c]", "0x20")
+ self.binary32_to_bid64("4", "[b5f0b087]", "[af265ef9d47dca6c]", "0x20")
+ self.binary32_to_bid64("0", "[b6e13d2f]", "[af37d91d8354abdc]", "0x20")
+ self.binary32_to_bid64("1", "[b6e13d2f]", "[af37d91d8354abdc]", "0x20")
+ self.binary32_to_bid64("2", "[b6e13d2f]", "[af37d91d8354abdb]", "0x20")
+ self.binary32_to_bid64("3", "[b6e13d2f]", "[af37d91d8354abdb]", "0x20")
+ self.binary32_to_bid64("4", "[b6e13d2f]", "[af37d91d8354abdc]", "0x20")
+ self.binary32_to_bid64("0", "[b7a6e546]", "[af47117c57c2612d]", "0x20")
+ self.binary32_to_bid64("1", "[b7a6e546]", "[af47117c57c2612d]", "0x20")
+ self.binary32_to_bid64("2", "[b7a6e546]", "[af47117c57c2612c]", "0x20")
+ self.binary32_to_bid64("3", "[b7a6e546]", "[af47117c57c2612c]", "0x20")
+ self.binary32_to_bid64("4", "[b7a6e546]", "[af47117c57c2612d]", "0x20")
+ self.binary32_to_bid64("0", "[b97ef997]", "[af68a38e24b05e60]", "0x20")
+ self.binary32_to_bid64("1", "[b97ef997]", "[af68a38e24b05e60]", "0x20")
+ self.binary32_to_bid64("2", "[b97ef997]", "[af68a38e24b05e5f]", "0x20")
+ self.binary32_to_bid64("3", "[b97ef997]", "[af68a38e24b05e5f]", "0x20")
+ self.binary32_to_bid64("4", "[b97ef997]", "[af68a38e24b05e60]", "0x20")
+ self.binary32_to_bid64("0", "[bafff997]", "[af86f02edf1a1f32]", "0x20")
+ self.binary32_to_bid64("1", "[bafff997]", "[af86f02edf1a1f32]", "0x20")
+ self.binary32_to_bid64("2", "[bafff997]", "[af86f02edf1a1f31]", "0x20")
+ self.binary32_to_bid64("3", "[bafff997]", "[af86f02edf1a1f31]", "0x20")
+ self.binary32_to_bid64("4", "[bafff997]", "[af86f02edf1a1f32]", "0x20")
+ self.binary32_to_bid64("0", "[bb0307ac]", "[af871a67f5e85274]", "0x20")
+ self.binary32_to_bid64("1", "[bb0307ac]", "[af871a67f5e85275]", "0x20")
+ self.binary32_to_bid64("2", "[bb0307ac]", "[af871a67f5e85274]", "0x20")
+ self.binary32_to_bid64("3", "[bb0307ac]", "[af871a67f5e85274]", "0x20")
+ self.binary32_to_bid64("4", "[bb0307ac]", "[af871a67f5e85274]", "0x20")
+ self.binary32_to_bid64("0", "[bca3d170]", "[afa71abf1649bf25]", "0x20")
+ self.binary32_to_bid64("1", "[bca3d170]", "[afa71abf1649bf25]", "0x20")
+ self.binary32_to_bid64("2", "[bca3d170]", "[afa71abf1649bf24]", "0x20")
+ self.binary32_to_bid64("3", "[bca3d170]", "[afa71abf1649bf24]", "0x20")
+ self.binary32_to_bid64("4", "[bca3d170]", "[afa71abf1649bf25]", "0x20")
+ self.binary32_to_bid64("0", "[bd500000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("1", "[bd500000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("2", "[bd500000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("3", "[bd500000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("4", "[bd500000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary32_to_bid64("0", "[bd7ffff3]", "[afb6345665302e34]", "0x20")
+ self.binary32_to_bid64("1", "[bd7ffff3]", "[afb6345665302e34]", "0x20")
+ self.binary32_to_bid64("2", "[bd7ffff3]", "[afb6345665302e33]", "0x20")
+ self.binary32_to_bid64("3", "[bd7ffff3]", "[afb6345665302e33]", "0x20")
+ self.binary32_to_bid64("4", "[bd7ffff3]", "[afb6345665302e34]", "0x20")
+ self.binary32_to_bid64("0", "[bf800000]", "[b1c0000000000001]", "0x00")
+ self.binary32_to_bid64("1", "[bf800000]", "[b1c0000000000001]", "0x00")
+ self.binary32_to_bid64("2", "[bf800000]", "[b1c0000000000001]", "0x00")
+ self.binary32_to_bid64("3", "[bf800000]", "[b1c0000000000001]", "0x00")
+ self.binary32_to_bid64("4", "[bf800000]", "[b1c0000000000001]", "0x00")
+ self.binary32_to_bid64("0", "[bfc00000]", "[b1a000000000000f]", "0x00")
+ self.binary32_to_bid64("1", "[bfc00000]", "[b1a000000000000f]", "0x00")
+ self.binary32_to_bid64("2", "[bfc00000]", "[b1a000000000000f]", "0x00")
+ self.binary32_to_bid64("3", "[bfc00000]", "[b1a000000000000f]", "0x00")
+ self.binary32_to_bid64("4", "[bfc00000]", "[b1a000000000000f]", "0x00")
+ self.binary32_to_bid64("0", "[bfffffbb]", "[afe71afb5f46bb2d]", "0x20")
+ self.binary32_to_bid64("1", "[bfffffbb]", "[afe71afb5f46bb2d]", "0x20")
+ self.binary32_to_bid64("2", "[bfffffbb]", "[afe71afb5f46bb2c]", "0x20")
+ self.binary32_to_bid64("3", "[bfffffbb]", "[afe71afb5f46bb2c]", "0x20")
+ self.binary32_to_bid64("4", "[bfffffbb]", "[afe71afb5f46bb2d]", "0x20")
+ self.binary32_to_bid64("0", "[c17ffffb]", "[b005af30eb380ada]", "0x20")
+ self.binary32_to_bid64("1", "[c17ffffb]", "[b005af30eb380ada]", "0x20")
+ self.binary32_to_bid64("2", "[c17ffffb]", "[b005af30eb380ad9]", "0x20")
+ self.binary32_to_bid64("3", "[c17ffffb]", "[b005af30eb380ad9]", "0x20")
+ self.binary32_to_bid64("4", "[c17ffffb]", "[b005af30eb380ada]", "0x20")
+ self.binary32_to_bid64("0", "[c27fffe3]", "[b016bcc18b2dc88a]", "0x20")
+ self.binary32_to_bid64("1", "[c27fffe3]", "[b016bcc18b2dc88a]", "0x20")
+ self.binary32_to_bid64("2", "[c27fffe3]", "[b016bcc18b2dc889]", "0x20")
+ self.binary32_to_bid64("3", "[c27fffe3]", "[b016bcc18b2dc889]", "0x20")
+ self.binary32_to_bid64("4", "[c27fffe3]", "[b016bcc18b2dc88a]", "0x20")
+ self.binary32_to_bid64("0", "[c2800000]", "[b1c0000000000040]", "0x00")
+ self.binary32_to_bid64("1", "[c2800000]", "[b1c0000000000040]", "0x00")
+ self.binary32_to_bid64("2", "[c2800000]", "[b1c0000000000040]", "0x00")
+ self.binary32_to_bid64("3", "[c2800000]", "[b1c0000000000040]", "0x00")
+ self.binary32_to_bid64("4", "[c2800000]", "[b1c0000000000040]", "0x00")
+ self.binary32_to_bid64("0", "[c347fffe]", "[b0271afd375c631b]", "0x20")
+ self.binary32_to_bid64("1", "[c347fffe]", "[b0271afd375c631b]", "0x20")
+ self.binary32_to_bid64("2", "[c347fffe]", "[b0271afd375c631a]", "0x20")
+ self.binary32_to_bid64("3", "[c347fffe]", "[b0271afd375c631a]", "0x20")
+ self.binary32_to_bid64("4", "[c347fffe]", "[b0271afd375c631b]", "0x20")
+ self.binary32_to_bid64("0", "[c479c000]", "[b1c00000000003e7]", "0x00")
+ self.binary32_to_bid64("1", "[c479c000]", "[b1c00000000003e7]", "0x00")
+ self.binary32_to_bid64("2", "[c479c000]", "[b1c00000000003e7]", "0x00")
+ self.binary32_to_bid64("3", "[c479c000]", "[b1c00000000003e7]", "0x00")
+ self.binary32_to_bid64("4", "[c479c000]", "[b1c00000000003e7]", "0x00")
+ self.binary32_to_bid64("0", "[c47a0000]", "[b1c00000000003e8]", "0x00")
+ self.binary32_to_bid64("1", "[c47a0000]", "[b1c00000000003e8]", "0x00")
+ self.binary32_to_bid64("2", "[c47a0000]", "[b1c00000000003e8]", "0x00")
+ self.binary32_to_bid64("3", "[c47a0000]", "[b1c00000000003e8]", "0x00")
+ self.binary32_to_bid64("4", "[c47a0000]", "[b1c00000000003e8]", "0x00")
+ self.binary32_to_bid64("0", "[c4ffffff]", "[b04746a521395ad8]", "0x20")
+ self.binary32_to_bid64("1", "[c4ffffff]", "[b04746a521395ad8]", "0x20")
+ self.binary32_to_bid64("2", "[c4ffffff]", "[b04746a521395ad7]", "0x20")
+ self.binary32_to_bid64("3", "[c4ffffff]", "[b04746a521395ad7]", "0x20")
+ self.binary32_to_bid64("4", "[c4ffffff]", "[b04746a521395ad8]", "0x20")
+ self.binary32_to_bid64("0", "[c6800000]", "[b1c0000000004000]", "0x00")
+ self.binary32_to_bid64("1", "[c6800000]", "[b1c0000000004000]", "0x00")
+ self.binary32_to_bid64("2", "[c6800000]", "[b1c0000000004000]", "0x00")
+ self.binary32_to_bid64("3", "[c6800000]", "[b1c0000000004000]", "0x00")
+ self.binary32_to_bid64("4", "[c6800000]", "[b1c0000000004000]", "0x00")
+ self.binary32_to_bid64("0", "[c69c3ffc]", "[b0e0002e90ec9ed3]", "0x00")
+ self.binary32_to_bid64("1", "[c69c3ffc]", "[b0e0002e90ec9ed3]", "0x00")
+ self.binary32_to_bid64("2", "[c69c3ffc]", "[b0e0002e90ec9ed3]", "0x00")
+ self.binary32_to_bid64("3", "[c69c3ffc]", "[b0e0002e90ec9ed3]", "0x00")
+ self.binary32_to_bid64("4", "[c69c3ffc]", "[b0e0002e90ec9ed3]", "0x00")
+ self.binary32_to_bid64("0", "[c8434ff0]", "[b180000001312ce7]", "0x00")
+ self.binary32_to_bid64("1", "[c8434ff0]", "[b180000001312ce7]", "0x00")
+ self.binary32_to_bid64("2", "[c8434ff0]", "[b180000001312ce7]", "0x00")
+ self.binary32_to_bid64("3", "[c8434ff0]", "[b180000001312ce7]", "0x00")
+ self.binary32_to_bid64("4", "[c8434ff0]", "[b180000001312ce7]", "0x00")
+ self.binary32_to_bid64("0", "[c9000000]", "[b1c0000000080000]", "0x00")
+ self.binary32_to_bid64("1", "[c9000000]", "[b1c0000000080000]", "0x00")
+ self.binary32_to_bid64("2", "[c9000000]", "[b1c0000000080000]", "0x00")
+ self.binary32_to_bid64("3", "[c9000000]", "[b1c0000000080000]", "0x00")
+ self.binary32_to_bid64("4", "[c9000000]", "[b1c0000000080000]", "0x00")
+ self.binary32_to_bid64("0", "[cb800000]", "[b1c0000001000000]", "0x00")
+ self.binary32_to_bid64("1", "[cb800000]", "[b1c0000001000000]", "0x00")
+ self.binary32_to_bid64("2", "[cb800000]", "[b1c0000001000000]", "0x00")
+ self.binary32_to_bid64("3", "[cb800000]", "[b1c0000001000000]", "0x00")
+ self.binary32_to_bid64("4", "[cb800000]", "[b1c0000001000000]", "0x00")
+ self.binary32_to_bid64("0", "[cd000000]", "[b1c0000008000000]", "0x00")
+ self.binary32_to_bid64("1", "[cd000000]", "[b1c0000008000000]", "0x00")
+ self.binary32_to_bid64("2", "[cd000000]", "[b1c0000008000000]", "0x00")
+ self.binary32_to_bid64("3", "[cd000000]", "[b1c0000008000000]", "0x00")
+ self.binary32_to_bid64("4", "[cd000000]", "[b1c0000008000000]", "0x00")
+ self.binary32_to_bid64("0", "[ce000000]", "[b1c0000020000000]", "0x00")
+ self.binary32_to_bid64("1", "[ce000000]", "[b1c0000020000000]", "0x00")
+ self.binary32_to_bid64("2", "[ce000000]", "[b1c0000020000000]", "0x00")
+ self.binary32_to_bid64("3", "[ce000000]", "[b1c0000020000000]", "0x00")
+ self.binary32_to_bid64("4", "[ce000000]", "[b1c0000020000000]", "0x00")
+ self.binary32_to_bid64("0", "[ceee6b20]", "[b1c0000077359000]", "0x00")
+ self.binary32_to_bid64("1", "[ceee6b20]", "[b1c0000077359000]", "0x00")
+ self.binary32_to_bid64("2", "[ceee6b20]", "[b1c0000077359000]", "0x00")
+ self.binary32_to_bid64("3", "[ceee6b20]", "[b1c0000077359000]", "0x00")
+ self.binary32_to_bid64("4", "[ceee6b20]", "[b1c0000077359000]", "0x00")
+ self.binary32_to_bid64("0", "[ceee6b26]", "[b1c0000077359300]", "0x00")
+ self.binary32_to_bid64("1", "[ceee6b26]", "[b1c0000077359300]", "0x00")
+ self.binary32_to_bid64("2", "[ceee6b26]", "[b1c0000077359300]", "0x00")
+ self.binary32_to_bid64("3", "[ceee6b26]", "[b1c0000077359300]", "0x00")
+ self.binary32_to_bid64("4", "[ceee6b26]", "[b1c0000077359300]", "0x00")
+ self.binary32_to_bid64("0", "[d2000000]", "[b1c0002000000000]", "0x00")
+ self.binary32_to_bid64("1", "[d2000000]", "[b1c0002000000000]", "0x00")
+ self.binary32_to_bid64("2", "[d2000000]", "[b1c0002000000000]", "0x00")
+ self.binary32_to_bid64("3", "[d2000000]", "[b1c0002000000000]", "0x00")
+ self.binary32_to_bid64("4", "[d2000000]", "[b1c0002000000000]", "0x00")
+ self.binary32_to_bid64("0", "[d23a43b4]", "[b1c0002e90ed0000]", "0x00")
+ self.binary32_to_bid64("1", "[d23a43b4]", "[b1c0002e90ed0000]", "0x00")
+ self.binary32_to_bid64("2", "[d23a43b4]", "[b1c0002e90ed0000]", "0x00")
+ self.binary32_to_bid64("3", "[d23a43b4]", "[b1c0002e90ed0000]", "0x00")
+ self.binary32_to_bid64("4", "[d23a43b4]", "[b1c0002e90ed0000]", "0x00")
+ self.binary32_to_bid64("0", "[d4800000]", "[b1c0040000000000]", "0x00")
+ self.binary32_to_bid64("1", "[d4800000]", "[b1c0040000000000]", "0x00")
+ self.binary32_to_bid64("2", "[d4800000]", "[b1c0040000000000]", "0x00")
+ self.binary32_to_bid64("3", "[d4800000]", "[b1c0040000000000]", "0x00")
+ self.binary32_to_bid64("4", "[d4800000]", "[b1c0040000000000]", "0x00")
+ self.binary32_to_bid64("0", "[d59184e7]", "[b1c012309ce00000]", "0x00")
+ self.binary32_to_bid64("1", "[d59184e7]", "[b1c012309ce00000]", "0x00")
+ self.binary32_to_bid64("2", "[d59184e7]", "[b1c012309ce00000]", "0x00")
+ self.binary32_to_bid64("3", "[d59184e7]", "[b1c012309ce00000]", "0x00")
+ self.binary32_to_bid64("4", "[d59184e7]", "[b1c012309ce00000]", "0x00")
+ self.binary32_to_bid64("0", "[d7000000]", "[b1c0800000000000]", "0x00")
+ self.binary32_to_bid64("1", "[d7000000]", "[b1c0800000000000]", "0x00")
+ self.binary32_to_bid64("2", "[d7000000]", "[b1c0800000000000]", "0x00")
+ self.binary32_to_bid64("3", "[d7000000]", "[b1c0800000000000]", "0x00")
+ self.binary32_to_bid64("4", "[d7000000]", "[b1c0800000000000]", "0x00")
+ self.binary32_to_bid64("0", "[d8800000]", "[b1c4000000000000]", "0x00")
+ self.binary32_to_bid64("1", "[d8800000]", "[b1c4000000000000]", "0x00")
+ self.binary32_to_bid64("2", "[d8800000]", "[b1c4000000000000]", "0x00")
+ self.binary32_to_bid64("3", "[d8800000]", "[b1c4000000000000]", "0x00")
+ self.binary32_to_bid64("4", "[d8800000]", "[b1c4000000000000]", "0x00")
+ self.binary32_to_bid64("0", "[d97ffffd]", "[b1cfffffd0000000]", "0x00")
+ self.binary32_to_bid64("1", "[d97ffffd]", "[b1cfffffd0000000]", "0x00")
+ self.binary32_to_bid64("2", "[d97ffffd]", "[b1cfffffd0000000]", "0x00")
+ self.binary32_to_bid64("3", "[d97ffffd]", "[b1cfffffd0000000]", "0x00")
+ self.binary32_to_bid64("4", "[d97ffffd]", "[b1cfffffd0000000]", "0x00")
+ self.binary32_to_bid64("0", "[da8e1bc8]", "[b1e71afd33333333]", "0x20")
+ self.binary32_to_bid64("1", "[da8e1bc8]", "[b1e71afd33333334]", "0x20")
+ self.binary32_to_bid64("2", "[da8e1bc8]", "[b1e71afd33333333]", "0x20")
+ self.binary32_to_bid64("3", "[da8e1bc8]", "[b1e71afd33333333]", "0x20")
+ self.binary32_to_bid64("4", "[da8e1bc8]", "[b1e71afd33333333]", "0x20")
+ self.binary32_to_bid64("0", "[db000000]", "[b1eccccccccccccd]", "0x20")
+ self.binary32_to_bid64("1", "[db000000]", "[b1eccccccccccccd]", "0x20")
+ self.binary32_to_bid64("2", "[db000000]", "[b1eccccccccccccc]", "0x20")
+ self.binary32_to_bid64("3", "[db000000]", "[b1eccccccccccccc]", "0x20")
+ self.binary32_to_bid64("4", "[db000000]", "[b1eccccccccccccd]", "0x20")
+ self.binary32_to_bid64("0", "[dd7fffed]", "[b224189326e978d5]", "0x20")
+ self.binary32_to_bid64("1", "[dd7fffed]", "[b224189326e978d5]", "0x20")
+ self.binary32_to_bid64("2", "[dd7fffed]", "[b224189326e978d4]", "0x20")
+ self.binary32_to_bid64("3", "[dd7fffed]", "[b224189326e978d4]", "0x20")
+ self.binary32_to_bid64("4", "[dd7fffed]", "[b224189326e978d5]", "0x20")
+ self.binary32_to_bid64("0", "[ddde0b3c]", "[b2271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("1", "[ddde0b3c]", "[b2271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("2", "[ddde0b3c]", "[b2271afbc6a7ef9d]", "0x20")
+ self.binary32_to_bid64("3", "[ddde0b3c]", "[b2271afbc6a7ef9d]", "0x20")
+ self.binary32_to_bid64("4", "[ddde0b3c]", "[b2271afbc6a7ef9e]", "0x20")
+ self.binary32_to_bid64("0", "[dffff761]", "[b24d1b0075f6fd22]", "0x20")
+ self.binary32_to_bid64("1", "[dffff761]", "[b24d1b0075f6fd22]", "0x20")
+ self.binary32_to_bid64("2", "[dffff761]", "[b24d1b0075f6fd21]", "0x20")
+ self.binary32_to_bid64("3", "[dffff761]", "[b24d1b0075f6fd21]", "0x20")
+ self.binary32_to_bid64("4", "[dffff761]", "[b24d1b0075f6fd22]", "0x20")
+ self.binary32_to_bid64("0", "[e12d77cf]", "[b2671af19f7f8ca8]", "0x20")
+ self.binary32_to_bid64("1", "[e12d77cf]", "[b2671af19f7f8ca9]", "0x20")
+ self.binary32_to_bid64("2", "[e12d77cf]", "[b2671af19f7f8ca8]", "0x20")
+ self.binary32_to_bid64("3", "[e12d77cf]", "[b2671af19f7f8ca8]", "0x20")
+ self.binary32_to_bid64("4", "[e12d77cf]", "[b2671af19f7f8ca8]", "0x20")
+ self.binary32_to_bid64("0", "[e27f07c9]", "[b2842dacd184c272]", "0x20")
+ self.binary32_to_bid64("1", "[e27f07c9]", "[b2842dacd184c272]", "0x20")
+ self.binary32_to_bid64("2", "[e27f07c9]", "[b2842dacd184c271]", "0x20")
+ self.binary32_to_bid64("3", "[e27f07c9]", "[b2842dacd184c271]", "0x20")
+ self.binary32_to_bid64("4", "[e27f07c9]", "[b2842dacd184c272]", "0x20")
+ self.binary32_to_bid64("0", "[e2d75600]", "[b2870e5e679463d0]", "0x20")
+ self.binary32_to_bid64("1", "[e2d75600]", "[b2870e5e679463d0]", "0x20")
+ self.binary32_to_bid64("2", "[e2d75600]", "[b2870e5e679463cf]", "0x20")
+ self.binary32_to_bid64("3", "[e2d75600]", "[b2870e5e679463cf]", "0x20")
+ self.binary32_to_bid64("4", "[e2d75600]", "[b2870e5e679463d0]", "0x20")
+ self.binary32_to_bid64("0", "[e3ffc60a]", "[eca1865668c26139]", "0x20")
+ self.binary32_to_bid64("1", "[e3ffc60a]", "[eca1865668c26139]", "0x20")
+ self.binary32_to_bid64("2", "[e3ffc60a]", "[eca1865668c26138]", "0x20")
+ self.binary32_to_bid64("3", "[e3ffc60a]", "[eca1865668c26138]", "0x20")
+ self.binary32_to_bid64("4", "[e3ffc60a]", "[eca1865668c26139]", "0x20")
+ self.binary32_to_bid64("0", "[e6201480]", "[b2c6b6d8c4a7ba44]", "0x20")
+ self.binary32_to_bid64("1", "[e6201480]", "[b2c6b6d8c4a7ba44]", "0x20")
+ self.binary32_to_bid64("2", "[e6201480]", "[b2c6b6d8c4a7ba43]", "0x20")
+ self.binary32_to_bid64("3", "[e6201480]", "[b2c6b6d8c4a7ba43]", "0x20")
+ self.binary32_to_bid64("4", "[e6201480]", "[b2c6b6d8c4a7ba44]", "0x20")
+ self.binary32_to_bid64("0", "[e67b04ce]", "[b2ca874b22e90e21]", "0x20")
+ self.binary32_to_bid64("1", "[e67b04ce]", "[b2ca874b22e90e21]", "0x20")
+ self.binary32_to_bid64("2", "[e67b04ce]", "[b2ca874b22e90e20]", "0x20")
+ self.binary32_to_bid64("3", "[e67b04ce]", "[b2ca874b22e90e20]", "0x20")
+ self.binary32_to_bid64("4", "[e67b04ce]", "[b2ca874b22e90e21]", "0x20")
+ self.binary32_to_bid64("0", "[e8921dc5]", "[b2f39c84745d38da]", "0x20")
+ self.binary32_to_bid64("1", "[e8921dc5]", "[b2f39c84745d38da]", "0x20")
+ self.binary32_to_bid64("2", "[e8921dc5]", "[b2f39c84745d38d9]", "0x20")
+ self.binary32_to_bid64("3", "[e8921dc5]", "[b2f39c84745d38d9]", "0x20")
+ self.binary32_to_bid64("4", "[e8921dc5]", "[b2f39c84745d38da]", "0x20")
+ self.binary32_to_bid64("0", "[e91449ac]", "[b303fb069f6b0fa4]", "0x20")
+ self.binary32_to_bid64("1", "[e91449ac]", "[b303fb069f6b0fa5]", "0x20")
+ self.binary32_to_bid64("2", "[e91449ac]", "[b303fb069f6b0fa4]", "0x20")
+ self.binary32_to_bid64("3", "[e91449ac]", "[b303fb069f6b0fa4]", "0x20")
+ self.binary32_to_bid64("4", "[e91449ac]", "[b303fb069f6b0fa4]", "0x20")
+ self.binary32_to_bid64("0", "[eb595d67]", "[b32955f3ab49a18a]", "0x20")
+ self.binary32_to_bid64("1", "[eb595d67]", "[b32955f3ab49a18a]", "0x20")
+ self.binary32_to_bid64("2", "[eb595d67]", "[b32955f3ab49a189]", "0x20")
+ self.binary32_to_bid64("3", "[eb595d67]", "[b32955f3ab49a189]", "0x20")
+ self.binary32_to_bid64("4", "[eb595d67]", "[b32955f3ab49a18a]", "0x20")
+ self.binary32_to_bid64("0", "[ebccfb40]", "[b3319b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("1", "[ebccfb40]", "[b3319b96f36ec68c]", "0x20")
+ self.binary32_to_bid64("2", "[ebccfb40]", "[b3319b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("3", "[ebccfb40]", "[b3319b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("4", "[ebccfb40]", "[b3319b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("0", "[ee80c2a0]", "[b3671423b488a20d]", "0x20")
+ self.binary32_to_bid64("1", "[ee80c2a0]", "[b3671423b488a20e]", "0x20")
+ self.binary32_to_bid64("2", "[ee80c2a0]", "[b3671423b488a20d]", "0x20")
+ self.binary32_to_bid64("3", "[ee80c2a0]", "[b3671423b488a20d]", "0x20")
+ self.binary32_to_bid64("4", "[ee80c2a0]", "[b3671423b488a20d]", "0x20")
+ self.binary32_to_bid64("0", "[ef20244a]", "[b3719b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("1", "[ef20244a]", "[b3719b96f36ec68c]", "0x20")
+ self.binary32_to_bid64("2", "[ef20244a]", "[b3719b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("3", "[ef20244a]", "[b3719b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("4", "[ef20244a]", "[b3719b96f36ec68b]", "0x20")
+ self.binary32_to_bid64("0", "[f1b00170]", "[b3a631515145bfce]", "0x20")
+ self.binary32_to_bid64("1", "[f1b00170]", "[b3a631515145bfce]", "0x20")
+ self.binary32_to_bid64("2", "[f1b00170]", "[b3a631515145bfcd]", "0x20")
+ self.binary32_to_bid64("3", "[f1b00170]", "[b3a631515145bfcd]", "0x20")
+ self.binary32_to_bid64("4", "[f1b00170]", "[b3a631515145bfce]", "0x20")
+ self.binary32_to_bid64("0", "[f1ff532e]", "[b3a8fbc32ef14127]", "0x20")
+ self.binary32_to_bid64("1", "[f1ff532e]", "[b3a8fbc32ef14127]", "0x20")
+ self.binary32_to_bid64("2", "[f1ff532e]", "[b3a8fbc32ef14126]", "0x20")
+ self.binary32_to_bid64("3", "[f1ff532e]", "[b3a8fbc32ef14126]", "0x20")
+ self.binary32_to_bid64("4", "[f1ff532e]", "[b3a8fbc32ef14127]", "0x20")
+ self.binary32_to_bid64("0", "[f343b54c]", "[b3c58239e41f1486]", "0x20")
+ self.binary32_to_bid64("1", "[f343b54c]", "[b3c58239e41f1486]", "0x20")
+ self.binary32_to_bid64("2", "[f343b54c]", "[b3c58239e41f1485]", "0x20")
+ self.binary32_to_bid64("3", "[f343b54c]", "[b3c58239e41f1485]", "0x20")
+ self.binary32_to_bid64("4", "[f343b54c]", "[b3c58239e41f1486]", "0x20")
+ self.binary32_to_bid64("0", "[f49358a8]", "[ecf12defc9b57a59]", "0x20")
+ self.binary32_to_bid64("1", "[f49358a8]", "[ecf12defc9b57a5a]", "0x20")
+ self.binary32_to_bid64("2", "[f49358a8]", "[ecf12defc9b57a59]", "0x20")
+ self.binary32_to_bid64("3", "[f49358a8]", "[ecf12defc9b57a59]", "0x20")
+ self.binary32_to_bid64("4", "[f49358a8]", "[ecf12defc9b57a59]", "0x20")
+ self.binary32_to_bid64("0", "[f6f4a29f]", "[b408d05ca031ba70]", "0x20")
+ self.binary32_to_bid64("1", "[f6f4a29f]", "[b408d05ca031ba70]", "0x20")
+ self.binary32_to_bid64("2", "[f6f4a29f]", "[b408d05ca031ba6f]", "0x20")
+ self.binary32_to_bid64("3", "[f6f4a29f]", "[b408d05ca031ba6f]", "0x20")
+ self.binary32_to_bid64("4", "[f6f4a29f]", "[b408d05ca031ba70]", "0x20")
+ self.binary32_to_bid64("0", "[f7feb130]", "[b423aba5ec7fa82c]", "0x20")
+ self.binary32_to_bid64("1", "[f7feb130]", "[b423aba5ec7fa82d]", "0x20")
+ self.binary32_to_bid64("2", "[f7feb130]", "[b423aba5ec7fa82c]", "0x20")
+ self.binary32_to_bid64("3", "[f7feb130]", "[b423aba5ec7fa82c]", "0x20")
+ self.binary32_to_bid64("4", "[f7feb130]", "[b423aba5ec7fa82c]", "0x20")
+ self.binary32_to_bid64("0", "[f85b7001]", "[b4265329bf3203e1]", "0x20")
+ self.binary32_to_bid64("1", "[f85b7001]", "[b4265329bf3203e2]", "0x20")
+ self.binary32_to_bid64("2", "[f85b7001]", "[b4265329bf3203e1]", "0x20")
+ self.binary32_to_bid64("3", "[f85b7001]", "[b4265329bf3203e1]", "0x20")
+ self.binary32_to_bid64("4", "[f85b7001]", "[b4265329bf3203e1]", "0x20")
+ self.binary32_to_bid64("0", "[f9dcb560]", "[b44516d53fd9fe3d]", "0x20")
+ self.binary32_to_bid64("1", "[f9dcb560]", "[b44516d53fd9fe3e]", "0x20")
+ self.binary32_to_bid64("2", "[f9dcb560]", "[b44516d53fd9fe3d]", "0x20")
+ self.binary32_to_bid64("3", "[f9dcb560]", "[b44516d53fd9fe3d]", "0x20")
+ self.binary32_to_bid64("4", "[f9dcb560]", "[b44516d53fd9fe3d]", "0x20")
+ self.binary32_to_bid64("0", "[fa1858ac]", "[b4470696aa07aeff]", "0x20")
+ self.binary32_to_bid64("1", "[fa1858ac]", "[b4470696aa07af00]", "0x20")
+ self.binary32_to_bid64("2", "[fa1858ac]", "[b4470696aa07aeff]", "0x20")
+ self.binary32_to_bid64("3", "[fa1858ac]", "[b4470696aa07aeff]", "0x20")
+ self.binary32_to_bid64("4", "[fa1858ac]", "[b4470696aa07aeff]", "0x20")
+ self.binary32_to_bid64("0", "[fd0dd92d]", "[b4842fc69945497a]", "0x20")
+ self.binary32_to_bid64("1", "[fd0dd92d]", "[b4842fc69945497a]", "0x20")
+ self.binary32_to_bid64("2", "[fd0dd92d]", "[b4842fc699454979]", "0x20")
+ self.binary32_to_bid64("3", "[fd0dd92d]", "[b4842fc699454979]", "0x20")
+ self.binary32_to_bid64("4", "[fd0dd92d]", "[b4842fc69945497a]", "0x20")
+ self.binary32_to_bid64("0", "[fe08c06c]", "[b4902510a0b202bb]", "0x20")
+ self.binary32_to_bid64("1", "[fe08c06c]", "[b4902510a0b202bc]", "0x20")
+ self.binary32_to_bid64("2", "[fe08c06c]", "[b4902510a0b202bb]", "0x20")
+ self.binary32_to_bid64("3", "[fe08c06c]", "[b4902510a0b202bb]", "0x20")
+ self.binary32_to_bid64("4", "[fe08c06c]", "[b4902510a0b202bb]", "0x20")
+ self.binary32_to_bid64("0", "[ff7fffff]", "[b4ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("1", "[ff7fffff]", "[b4ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("2", "[ff7fffff]", "[b4ac16d993f27f88]", "0x20")
+ self.binary32_to_bid64("3", "[ff7fffff]", "[b4ac16d993f27f88]", "0x20")
+ self.binary32_to_bid64("4", "[ff7fffff]", "[b4ac16d993f27f89]", "0x20")
+ self.binary32_to_bid64("0", "[ff800000]", "[f800000000000000]", "0x00")
+ self.binary32_to_bid64("1", "[ff800000]", "[f800000000000000]", "0x00")
+ self.binary32_to_bid64("2", "[ff800000]", "[f800000000000000]", "0x00")
+ self.binary32_to_bid64("3", "[ff800000]", "[f800000000000000]", "0x00")
+ self.binary32_to_bid64("4", "[ff800000]", "[f800000000000000]", "0x00")
+ }
+
+ private func binary32_to_bid64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseFloat(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_binary32_to_bid128() {
+ self.binary32_to_bid128("0", "[00000000]", "[3040000000000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[00000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[00000001]", "[2fa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("0", "[00000001]", "[2FA44516DF8A16FE,63D5B71AB499363C]", "22")
+ self.binary32_to_bid128("0", "[00000002]", "[2FA48A2DBF142DFC,C7AB6E3569326C78]", "22")
+ self.binary32_to_bid128("0", "[00000004]", "[2FA5145B7E285BF9,8F56DC6AD264D8F1]", "22")
+ self.binary32_to_bid128("0", "[00000008]", "[2FA637457FA1ABFE,B644927BC3ADC4FD]", "22")
+ self.binary32_to_bid128("0", "[00000010]", "[2FA66E8AFF4357FD,6C8924F7875B89FA]", "22")
+ self.binary32_to_bid128("0", "[00000020]", "[2FA6DD15FE86AFFA,D91249EF0EB713F4]", "22")
+ self.binary32_to_bid128("0", "[00000040]", "[2FA7BA2BFD0D5FF5,B22493DE1D6E27E7]", "22")
+ self.binary32_to_bid128("0", "[00000080]", "[2FA8586F329C4664,56D41D92D2AFA195]", "22")
+ self.binary32_to_bid128("0", "[00000100]", "[2FA8B0DE65388CC8,ADA83B25A55F4329]", "22")
+ self.binary32_to_bid128("0", "[00000200]", "[2FA961BCCA711991,5B50764B4ABE8653]", "22")
+ self.binary32_to_bid128("0", "[000003e7]", "[2faa45052fb32af04fc4597b30d57982]", "0x22")
+ self.binary32_to_bid128("0", "[00000400]", "[2FAA46BF5BB03850,45767E0F0EF2E7AA]", "22")
+ self.binary32_to_bid128("0", "[00000800]", "[2FAA8D7EB76070A0,8AECFC1E1DE5CF54]", "22")
+ self.binary32_to_bid128("0", "[00001000]", "[2FAB1AFD6EC0E141,15D9F83C3BCB9EA8]", "22")
+ self.binary32_to_bid128("0", "[00002000]", "[2FAC389916269373,6AC531A5A58F1FBB]", "22")
+ self.binary32_to_bid128("0", "[00004000]", "[2FAC71322C4D26E6,D58A634B4B1E3F77]", "22")
+ self.binary32_to_bid128("0", "[00008000]", "[2FACE264589A4DCD,AB14C696963C7EED]", "22")
+ self.binary32_to_bid128("0", "[00010000]", "[2FADC4C8B1349B9B,56298D2D2C78FDDA]", "22")
+ self.binary32_to_bid128("0", "[00020000]", "[2FAE5A8E89D75252,446EB5D5D5B1CC5F]", "22")
+ self.binary32_to_bid128("0", "[00040000]", "[2FAEB51D13AEA4A4,88DD6BABAB6398BE]", "22")
+ self.binary32_to_bid128("0", "[00080000]", "[2FAF6A3A275D4949,11BAD75756C7317B]", "22")
+ self.binary32_to_bid128("0", "[00100000]", "[2FB0487207DF750E,9D255E44AAF4A37F]", "22")
+ self.binary32_to_bid128("0", "[00147395]", "[2fb05c99e015d1bc8f9049d7611e02bc]", "0x22")
+ self.binary32_to_bid128("0", "[00200000]", "[2FB090E40FBEEA1D,3A4ABC8955E946FE]", "22")
+ self.binary32_to_bid128("0", "[00400000]", "[2FB121C81F7DD43A,74957912ABD28DFC]", "22")
+ self.binary32_to_bid128("0", "[007fffff]", "[2FB239F4D2A540CB,E4FC34084CF9AE87]", "22")
+ self.binary32_to_bid128("0", "[00800000]", "[2fb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("0", "[00800000]", "[2FB239F4D3192A72,17511836EF2A1C66]", "20")
+ self.binary32_to_bid128("0", "[01000000]", "[2fb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("0", "[03da5dc0]", "[2fb63f474e4c768ad0d0c349780a2b55]", "0x20")
+ self.binary32_to_bid128("0", "[0a9150e8]", "[2fbe44fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("0", "[0f44fdd0]", "[2fc3dedc155d5e1c8c25ef5c4f590af5]", "0x20")
+ self.binary32_to_bid128("0", "[12d9a200]", "[2fc843b77423080e4b4b171d5e4b22d5]", "0x20")
+ self.binary32_to_bid128("0", "[1abd7288]", "[2fd18250269cd0af7162314c933d23e6]", "0x20")
+ self.binary32_to_bid128("0", "[21ebf1c9]", "[2fda4ed3f85037b8fdde708dffbf90d7]", "0x20")
+ self.binary32_to_bid128("0", "[26ff92e6]", "[2fe0576f7344e564ffce766d6bf44edf]", "0x20")
+ self.binary32_to_bid128("0", "[2c0cba4e]", "[2fe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("0", "[327fff37]", "[2fee4977af2d42928de5d3eeaaddfbd9]", "0x20")
+ self.binary32_to_bid128("0", "[37a7c5ac]", "[2ff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("0", "[3ca3d70a]", "[3008000000a56fa57b863b8031f661d5]", "0x00")
+ self.binary32_to_bid128("0", "[3d500000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("0", "[3F000000]", "[303E000000000000,0000000000000005]", "00")
+ self.binary32_to_bid128("0", "[3f800000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("0", "[3fc00000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("0", "[40000000]", "[3040000000000000,0000000000000002]", "00")
+ self.binary32_to_bid128("0", "[42800000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("0", "[43000000]", "[30400000000000000000000000000080]", "0x00")
+ self.binary32_to_bid128("0", "[4479c000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("0", "[447a0000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("0", "[48434fff]", "[30340000000000000000002e90ed92f7]", "0x00")
+ self.binary32_to_bid128("0", "[4d3ebc1e]", "[3040000000000000000000000bebc1e0]", "0x00")
+ self.binary32_to_bid128("0", "[53800000]", "[30400000000000000000010000000000]", "0x00")
+ self.binary32_to_bid128("0", "[58e35fa9]", "[304000000000000000071afd48000000]", "0x00")
+ self.binary32_to_bid128("0", "[5dde0b6a]", "[30400000000000001bc16d4000000000]", "0x00")
+ self.binary32_to_bid128("0", "[64000000]", "[30400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[69800000]", "[30400000001000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[6f000000]", "[30400000800000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[74800000]", "[30400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[79fffffd]", "[304451eb8428f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("0", "[7CF0BDC2]", "[3047ED09BE76C8B4,395810624DD2F1AA]", "20")
+ self.binary32_to_bid128("0", "[7E000000]", "[3048D1B71758E219,652BD3C36113404F]", "20")
+ self.binary32_to_bid128("0", "[7E800000]", "[3049A36E2EB1C432,CA57A786C226809D]", "20")
+ self.binary32_to_bid128("0", "[7E967699]", "[3049ED09BDA5119C,E075F6FD21FF2E49]", "20")
+ self.binary32_to_bid128("0", "[7F000000]", "[304A53E2D6238DA3,C21187E7C06E19B9]", "20")
+ self.binary32_to_bid128("0", "[7f7fffff]", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("0", "[7f7fffff]", "[304AA7C5AB9F559B,3D07C84B5DCC63F1]", "20")
+ self.binary32_to_bid128("0", "[7f800000]", "[7800000000000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[7f800000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[7fc00000]", "[7c00000000000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[7fc00001]", "[7c00000001000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[7fc00004]", "[7c00000004000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[7fcfffff]", "[7c000fffff000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[7fe00000]", "[7c00200000000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[7ff14dc6]", "[7c00314dc6000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[7ff14dc7]", "[7c00000000000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[7fffffff]", "[7c00000000000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[80000000]", "[b040000000000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[80000001]", "[afa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("0", "[80000001]", "[AFA44516DF8A16FE,63D5B71AB499363C]", "22")
+ self.binary32_to_bid128("0", "[800003e7]", "[afaa45052fb32af04fc4597b30d57982]", "0x22")
+ self.binary32_to_bid128("0", "[80147395]", "[afb05c99e015d1bc8f9049d7611e02bc]", "0x22")
+ self.binary32_to_bid128("0", "[807fffff]", "[AFB239F4D2A540CB,E4FC34084CF9AE87]", "22")
+ self.binary32_to_bid128("0", "[80800000]", "[afb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("0", "[80800000]", "[AFB239F4D3192A72,17511836EF2A1C66]", "20")
+ self.binary32_to_bid128("0", "[81000000]", "[afb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("0", "[83da5dc0]", "[afb63f474e4c768ad0d0c349780a2b55]", "0x20")
+ self.binary32_to_bid128("0", "[8a9150e8]", "[afbe44fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("0", "[8f44fdd0]", "[afc3dedc155d5e1c8c25ef5c4f590af5]", "0x20")
+ self.binary32_to_bid128("0", "[92d9a200]", "[afc843b77423080e4b4b171d5e4b22d5]", "0x20")
+ self.binary32_to_bid128("0", "[9abd7288]", "[afd18250269cd0af7162314c933d23e6]", "0x20")
+ self.binary32_to_bid128("0", "[a1ebf1c9]", "[afda4ed3f85037b8fdde708dffbf90d7]", "0x20")
+ self.binary32_to_bid128("0", "[a6ff92e6]", "[afe0576f7344e564ffce766d6bf44edf]", "0x20")
+ self.binary32_to_bid128("0", "[ac0cba4e]", "[afe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("0", "[b27fff37]", "[afee4977af2d42928de5d3eeaaddfbd9]", "0x20")
+ self.binary32_to_bid128("0", "[b7a7c5ac]", "[aff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("0", "[bca3d70a]", "[b008000000a56fa57b863b8031f661d5]", "0x00")
+ self.binary32_to_bid128("0", "[bd500000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("0", "[bf800000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("0", "[bfc00000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("0", "[c2800000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("0", "[c3000000]", "[b0400000000000000000000000000080]", "0x00")
+ self.binary32_to_bid128("0", "[c479c000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("0", "[c47a0000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("0", "[c8434fff]", "[b0340000000000000000002e90ed92f7]", "0x00")
+ self.binary32_to_bid128("0", "[cd3ebc1e]", "[b040000000000000000000000bebc1e0]", "0x00")
+ self.binary32_to_bid128("0", "[d3800000]", "[b0400000000000000000010000000000]", "0x00")
+ self.binary32_to_bid128("0", "[d8e35fa9]", "[b04000000000000000071afd48000000]", "0x00")
+ self.binary32_to_bid128("0", "[ddde0b6a]", "[b0400000000000001bc16d4000000000]", "0x00")
+ self.binary32_to_bid128("0", "[e4000000]", "[b0400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[e9800000]", "[b0400000001000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[ef000000]", "[b0400000800000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[f4800000]", "[b0400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[f9fffffd]", "[b04451eb8428f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("0", "[ff7fffff]", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("0", "[ff7fffff]", "[B04AA7C5AB9F559B,3D07C84B5DCC63F1]", "20")
+ self.binary32_to_bid128("0", "[ff800000]", "[f800000000000000,0000000000000000]", "00")
+ self.binary32_to_bid128("0", "[ff800000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[ffc00000]", "[fc00000000000000,0000000000000000]", "00")
+ self.binary32_to_bid128("1", "[00000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[00000001]", "[2fa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("1", "[000003e7]", "[2faa45052fb32af04fc4597b30d57982]", "0x22")
+ self.binary32_to_bid128("1", "[00147395]", "[2fb05c99e015d1bc8f9049d7611e02bc]", "0x22")
+ self.binary32_to_bid128("1", "[00800000]", "[2fb239f4d3192a7217511836ef2a1c65]", "0x20")
+ self.binary32_to_bid128("1", "[01000000]", "[2fb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("1", "[03da5dc0]", "[2fb63f474e4c768ad0d0c349780a2b55]", "0x20")
+ self.binary32_to_bid128("1", "[0a9150e8]", "[2fbe44fe2fafb85bc2e26fc5e8348f4c]", "0x20")
+ self.binary32_to_bid128("1", "[0f44fdd0]", "[2fc3dedc155d5e1c8c25ef5c4f590af5]", "0x20")
+ self.binary32_to_bid128("1", "[12d9a200]", "[2fc843b77423080e4b4b171d5e4b22d5]", "0x20")
+ self.binary32_to_bid128("1", "[1abd7288]", "[2fd18250269cd0af7162314c933d23e6]", "0x20")
+ self.binary32_to_bid128("1", "[21ebf1c9]", "[2fda4ed3f85037b8fdde708dffbf90d6]", "0x20")
+ self.binary32_to_bid128("1", "[26ff92e6]", "[2fe0576f7344e564ffce766d6bf44ede]", "0x20")
+ self.binary32_to_bid128("1", "[2c0cba4e]", "[2fe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("1", "[327fff37]", "[2fee4977af2d42928de5d3eeaaddfbd9]", "0x20")
+ self.binary32_to_bid128("1", "[37a7c5ac]", "[2ff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("1", "[3ca3d70a]", "[3008000000a56fa57b863b8031f661d5]", "0x00")
+ self.binary32_to_bid128("1", "[3d500000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("1", "[3f800000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("1", "[3fc00000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("1", "[42800000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("1", "[43000000]", "[30400000000000000000000000000080]", "0x00")
+ self.binary32_to_bid128("1", "[4479c000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("1", "[447a0000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("1", "[48434fff]", "[30340000000000000000002e90ed92f7]", "0x00")
+ self.binary32_to_bid128("1", "[4d3ebc1e]", "[3040000000000000000000000bebc1e0]", "0x00")
+ self.binary32_to_bid128("1", "[53800000]", "[30400000000000000000010000000000]", "0x00")
+ self.binary32_to_bid128("1", "[58e35fa9]", "[304000000000000000071afd48000000]", "0x00")
+ self.binary32_to_bid128("1", "[5dde0b6a]", "[30400000000000001bc16d4000000000]", "0x00")
+ self.binary32_to_bid128("1", "[64000000]", "[30400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[69800000]", "[30400000001000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[6f000000]", "[30400000800000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[74800000]", "[30400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[79fffffd]", "[304451eb8428f5c28f5c28f5c28f5c28]", "0x20")
+ self.binary32_to_bid128("1", "[7f7fffff]", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("1", "[7f800000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[80000001]", "[afa44516df8a16fe63d5b71ab499363d]", "0x22")
+ self.binary32_to_bid128("1", "[800003e7]", "[afaa45052fb32af04fc4597b30d57983]", "0x22")
+ self.binary32_to_bid128("1", "[80147395]", "[afb05c99e015d1bc8f9049d7611e02bd]", "0x22")
+ self.binary32_to_bid128("1", "[80800000]", "[afb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("1", "[81000000]", "[afb273e9a63254e42ea2306dde5438cc]", "0x20")
+ self.binary32_to_bid128("1", "[83da5dc0]", "[afb63f474e4c768ad0d0c349780a2b56]", "0x20")
+ self.binary32_to_bid128("1", "[8a9150e8]", "[afbe44fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("1", "[8f44fdd0]", "[afc3dedc155d5e1c8c25ef5c4f590af6]", "0x20")
+ self.binary32_to_bid128("1", "[92d9a200]", "[afc843b77423080e4b4b171d5e4b22d6]", "0x20")
+ self.binary32_to_bid128("1", "[9abd7288]", "[afd18250269cd0af7162314c933d23e7]", "0x20")
+ self.binary32_to_bid128("1", "[a1ebf1c9]", "[afda4ed3f85037b8fdde708dffbf90d7]", "0x20")
+ self.binary32_to_bid128("1", "[a6ff92e6]", "[afe0576f7344e564ffce766d6bf44edf]", "0x20")
+ self.binary32_to_bid128("1", "[ac0cba4e]", "[afe66299cd7edb9663bb330883b0ff29]", "0x20")
+ self.binary32_to_bid128("1", "[b27fff37]", "[afee4977af2d42928de5d3eeaaddfbda]", "0x20")
+ self.binary32_to_bid128("1", "[b7a7c5ac]", "[aff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("1", "[bca3d70a]", "[b008000000a56fa57b863b8031f661d5]", "0x00")
+ self.binary32_to_bid128("1", "[bd500000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("1", "[bf800000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("1", "[bfc00000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("1", "[c2800000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("1", "[c3000000]", "[b0400000000000000000000000000080]", "0x00")
+ self.binary32_to_bid128("1", "[c479c000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("1", "[c47a0000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("1", "[c8434fff]", "[b0340000000000000000002e90ed92f7]", "0x00")
+ self.binary32_to_bid128("1", "[cd3ebc1e]", "[b040000000000000000000000bebc1e0]", "0x00")
+ self.binary32_to_bid128("1", "[d3800000]", "[b0400000000000000000010000000000]", "0x00")
+ self.binary32_to_bid128("1", "[d8e35fa9]", "[b04000000000000000071afd48000000]", "0x00")
+ self.binary32_to_bid128("1", "[ddde0b6a]", "[b0400000000000001bc16d4000000000]", "0x00")
+ self.binary32_to_bid128("1", "[e4000000]", "[b0400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[e9800000]", "[b0400000001000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[ef000000]", "[b0400000800000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[f4800000]", "[b0400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[f9fffffd]", "[b04451eb8428f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("1", "[ff7fffff]", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "0x20")
+ self.binary32_to_bid128("1", "[ff800000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[00000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[00000001]", "[2fa44516df8a16fe63d5b71ab499363d]", "0x22")
+ self.binary32_to_bid128("2", "[000003e7]", "[2faa45052fb32af04fc4597b30d57983]", "0x22")
+ self.binary32_to_bid128("2", "[00147395]", "[2fb05c99e015d1bc8f9049d7611e02bd]", "0x22")
+ self.binary32_to_bid128("2", "[00800000]", "[2fb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("2", "[01000000]", "[2fb273e9a63254e42ea2306dde5438cc]", "0x20")
+ self.binary32_to_bid128("2", "[03da5dc0]", "[2fb63f474e4c768ad0d0c349780a2b56]", "0x20")
+ self.binary32_to_bid128("2", "[0a9150e8]", "[2fbe44fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("2", "[0f44fdd0]", "[2fc3dedc155d5e1c8c25ef5c4f590af6]", "0x20")
+ self.binary32_to_bid128("2", "[12d9a200]", "[2fc843b77423080e4b4b171d5e4b22d6]", "0x20")
+ self.binary32_to_bid128("2", "[1abd7288]", "[2fd18250269cd0af7162314c933d23e7]", "0x20")
+ self.binary32_to_bid128("2", "[21ebf1c9]", "[2fda4ed3f85037b8fdde708dffbf90d7]", "0x20")
+ self.binary32_to_bid128("2", "[26ff92e6]", "[2fe0576f7344e564ffce766d6bf44edf]", "0x20")
+ self.binary32_to_bid128("2", "[2c0cba4e]", "[2fe66299cd7edb9663bb330883b0ff29]", "0x20")
+ self.binary32_to_bid128("2", "[327fff37]", "[2fee4977af2d42928de5d3eeaaddfbda]", "0x20")
+ self.binary32_to_bid128("2", "[37a7c5ac]", "[2ff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("2", "[3ca3d70a]", "[3008000000a56fa57b863b8031f661d5]", "0x00")
+ self.binary32_to_bid128("2", "[3d500000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("2", "[3f800000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("2", "[3fc00000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("2", "[42800000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("2", "[43000000]", "[30400000000000000000000000000080]", "0x00")
+ self.binary32_to_bid128("2", "[4479c000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("2", "[447a0000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("2", "[48434fff]", "[30340000000000000000002e90ed92f7]", "0x00")
+ self.binary32_to_bid128("2", "[4d3ebc1e]", "[3040000000000000000000000bebc1e0]", "0x00")
+ self.binary32_to_bid128("2", "[53800000]", "[30400000000000000000010000000000]", "0x00")
+ self.binary32_to_bid128("2", "[58e35fa9]", "[304000000000000000071afd48000000]", "0x00")
+ self.binary32_to_bid128("2", "[5dde0b6a]", "[30400000000000001bc16d4000000000]", "0x00")
+ self.binary32_to_bid128("2", "[64000000]", "[30400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[69800000]", "[30400000001000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[6f000000]", "[30400000800000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[74800000]", "[30400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[79fffffd]", "[304451eb8428f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("2", "[7f7fffff]", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "0x20")
+ self.binary32_to_bid128("2", "[7f800000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[80000001]", "[afa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("2", "[800003e7]", "[afaa45052fb32af04fc4597b30d57982]", "0x22")
+ self.binary32_to_bid128("2", "[80147395]", "[afb05c99e015d1bc8f9049d7611e02bc]", "0x22")
+ self.binary32_to_bid128("2", "[80800000]", "[afb239f4d3192a7217511836ef2a1c65]", "0x20")
+ self.binary32_to_bid128("2", "[81000000]", "[afb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("2", "[83da5dc0]", "[afb63f474e4c768ad0d0c349780a2b55]", "0x20")
+ self.binary32_to_bid128("2", "[8a9150e8]", "[afbe44fe2fafb85bc2e26fc5e8348f4c]", "0x20")
+ self.binary32_to_bid128("2", "[8f44fdd0]", "[afc3dedc155d5e1c8c25ef5c4f590af5]", "0x20")
+ self.binary32_to_bid128("2", "[92d9a200]", "[afc843b77423080e4b4b171d5e4b22d5]", "0x20")
+ self.binary32_to_bid128("2", "[9abd7288]", "[afd18250269cd0af7162314c933d23e6]", "0x20")
+ self.binary32_to_bid128("2", "[a1ebf1c9]", "[afda4ed3f85037b8fdde708dffbf90d6]", "0x20")
+ self.binary32_to_bid128("2", "[a6ff92e6]", "[afe0576f7344e564ffce766d6bf44ede]", "0x20")
+ self.binary32_to_bid128("2", "[ac0cba4e]", "[afe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("2", "[b27fff37]", "[afee4977af2d42928de5d3eeaaddfbd9]", "0x20")
+ self.binary32_to_bid128("2", "[b7a7c5ac]", "[aff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("2", "[bca3d70a]", "[b008000000a56fa57b863b8031f661d5]", "0x00")
+ self.binary32_to_bid128("2", "[bd500000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("2", "[bf800000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("2", "[bfc00000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("2", "[c2800000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("2", "[c3000000]", "[b0400000000000000000000000000080]", "0x00")
+ self.binary32_to_bid128("2", "[c479c000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("2", "[c47a0000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("2", "[c8434fff]", "[b0340000000000000000002e90ed92f7]", "0x00")
+ self.binary32_to_bid128("2", "[cd3ebc1e]", "[b040000000000000000000000bebc1e0]", "0x00")
+ self.binary32_to_bid128("2", "[d3800000]", "[b0400000000000000000010000000000]", "0x00")
+ self.binary32_to_bid128("2", "[d8e35fa9]", "[b04000000000000000071afd48000000]", "0x00")
+ self.binary32_to_bid128("2", "[ddde0b6a]", "[b0400000000000001bc16d4000000000]", "0x00")
+ self.binary32_to_bid128("2", "[e4000000]", "[b0400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[e9800000]", "[b0400000001000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[ef000000]", "[b0400000800000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[f4800000]", "[b0400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[f9fffffd]", "[b04451eb8428f5c28f5c28f5c28f5c28]", "0x20")
+ self.binary32_to_bid128("2", "[ff7fffff]", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("2", "[ff800000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[00000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[00000001]", "[2fa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("3", "[000003e7]", "[2faa45052fb32af04fc4597b30d57982]", "0x22")
+ self.binary32_to_bid128("3", "[00147395]", "[2fb05c99e015d1bc8f9049d7611e02bc]", "0x22")
+ self.binary32_to_bid128("3", "[00800000]", "[2fb239f4d3192a7217511836ef2a1c65]", "0x20")
+ self.binary32_to_bid128("3", "[01000000]", "[2fb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("3", "[03da5dc0]", "[2fb63f474e4c768ad0d0c349780a2b55]", "0x20")
+ self.binary32_to_bid128("3", "[0a9150e8]", "[2fbe44fe2fafb85bc2e26fc5e8348f4c]", "0x20")
+ self.binary32_to_bid128("3", "[0f44fdd0]", "[2fc3dedc155d5e1c8c25ef5c4f590af5]", "0x20")
+ self.binary32_to_bid128("3", "[12d9a200]", "[2fc843b77423080e4b4b171d5e4b22d5]", "0x20")
+ self.binary32_to_bid128("3", "[1abd7288]", "[2fd18250269cd0af7162314c933d23e6]", "0x20")
+ self.binary32_to_bid128("3", "[21ebf1c9]", "[2fda4ed3f85037b8fdde708dffbf90d6]", "0x20")
+ self.binary32_to_bid128("3", "[26ff92e6]", "[2fe0576f7344e564ffce766d6bf44ede]", "0x20")
+ self.binary32_to_bid128("3", "[2c0cba4e]", "[2fe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("3", "[327fff37]", "[2fee4977af2d42928de5d3eeaaddfbd9]", "0x20")
+ self.binary32_to_bid128("3", "[37a7c5ac]", "[2ff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("3", "[3ca3d70a]", "[3008000000a56fa57b863b8031f661d5]", "0x00")
+ self.binary32_to_bid128("3", "[3d500000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("3", "[3f800000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("3", "[3fc00000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("3", "[42800000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("3", "[43000000]", "[30400000000000000000000000000080]", "0x00")
+ self.binary32_to_bid128("3", "[4479c000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("3", "[447a0000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("3", "[48434fff]", "[30340000000000000000002e90ed92f7]", "0x00")
+ self.binary32_to_bid128("3", "[4d3ebc1e]", "[3040000000000000000000000bebc1e0]", "0x00")
+ self.binary32_to_bid128("3", "[53800000]", "[30400000000000000000010000000000]", "0x00")
+ self.binary32_to_bid128("3", "[58e35fa9]", "[304000000000000000071afd48000000]", "0x00")
+ self.binary32_to_bid128("3", "[5dde0b6a]", "[30400000000000001bc16d4000000000]", "0x00")
+ self.binary32_to_bid128("3", "[64000000]", "[30400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[69800000]", "[30400000001000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[6f000000]", "[30400000800000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[74800000]", "[30400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[79fffffd]", "[304451eb8428f5c28f5c28f5c28f5c28]", "0x20")
+ self.binary32_to_bid128("3", "[7f7fffff]", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("3", "[7f800000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[80000001]", "[afa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("3", "[800003e7]", "[afaa45052fb32af04fc4597b30d57982]", "0x22")
+ self.binary32_to_bid128("3", "[80147395]", "[afb05c99e015d1bc8f9049d7611e02bc]", "0x22")
+ self.binary32_to_bid128("3", "[80800000]", "[afb239f4d3192a7217511836ef2a1c65]", "0x20")
+ self.binary32_to_bid128("3", "[81000000]", "[afb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("3", "[83da5dc0]", "[afb63f474e4c768ad0d0c349780a2b55]", "0x20")
+ self.binary32_to_bid128("3", "[8a9150e8]", "[afbe44fe2fafb85bc2e26fc5e8348f4c]", "0x20")
+ self.binary32_to_bid128("3", "[8f44fdd0]", "[afc3dedc155d5e1c8c25ef5c4f590af5]", "0x20")
+ self.binary32_to_bid128("3", "[92d9a200]", "[afc843b77423080e4b4b171d5e4b22d5]", "0x20")
+ self.binary32_to_bid128("3", "[9abd7288]", "[afd18250269cd0af7162314c933d23e6]", "0x20")
+ self.binary32_to_bid128("3", "[a1ebf1c9]", "[afda4ed3f85037b8fdde708dffbf90d6]", "0x20")
+ self.binary32_to_bid128("3", "[a6ff92e6]", "[afe0576f7344e564ffce766d6bf44ede]", "0x20")
+ self.binary32_to_bid128("3", "[ac0cba4e]", "[afe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("3", "[b27fff37]", "[afee4977af2d42928de5d3eeaaddfbd9]", "0x20")
+ self.binary32_to_bid128("3", "[b7a7c5ac]", "[aff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("3", "[bca3d70a]", "[b008000000a56fa57b863b8031f661d5]", "0x00")
+ self.binary32_to_bid128("3", "[bd500000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("3", "[bf800000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("3", "[bfc00000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("3", "[c2800000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("3", "[c3000000]", "[b0400000000000000000000000000080]", "0x00")
+ self.binary32_to_bid128("3", "[c479c000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("3", "[c47a0000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("3", "[c8434fff]", "[b0340000000000000000002e90ed92f7]", "0x00")
+ self.binary32_to_bid128("3", "[cd3ebc1e]", "[b040000000000000000000000bebc1e0]", "0x00")
+ self.binary32_to_bid128("3", "[d3800000]", "[b0400000000000000000010000000000]", "0x00")
+ self.binary32_to_bid128("3", "[d8e35fa9]", "[b04000000000000000071afd48000000]", "0x00")
+ self.binary32_to_bid128("3", "[ddde0b6a]", "[b0400000000000001bc16d4000000000]", "0x00")
+ self.binary32_to_bid128("3", "[e4000000]", "[b0400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[e9800000]", "[b0400000001000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[ef000000]", "[b0400000800000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[f4800000]", "[b0400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[f9fffffd]", "[b04451eb8428f5c28f5c28f5c28f5c28]", "0x20")
+ self.binary32_to_bid128("3", "[ff7fffff]", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("3", "[ff800000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[00000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[00000001]", "[2fa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("4", "[000003e7]", "[2faa45052fb32af04fc4597b30d57982]", "0x22")
+ self.binary32_to_bid128("4", "[00147395]", "[2fb05c99e015d1bc8f9049d7611e02bc]", "0x22")
+ self.binary32_to_bid128("4", "[00800000]", "[2fb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("4", "[01000000]", "[2fb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("4", "[03da5dc0]", "[2fb63f474e4c768ad0d0c349780a2b55]", "0x20")
+ self.binary32_to_bid128("4", "[0a9150e8]", "[2fbe44fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("4", "[0f44fdd0]", "[2fc3dedc155d5e1c8c25ef5c4f590af5]", "0x20")
+ self.binary32_to_bid128("4", "[12d9a200]", "[2fc843b77423080e4b4b171d5e4b22d5]", "0x20")
+ self.binary32_to_bid128("4", "[1abd7288]", "[2fd18250269cd0af7162314c933d23e6]", "0x20")
+ self.binary32_to_bid128("4", "[21ebf1c9]", "[2fda4ed3f85037b8fdde708dffbf90d7]", "0x20")
+ self.binary32_to_bid128("4", "[26ff92e6]", "[2fe0576f7344e564ffce766d6bf44edf]", "0x20")
+ self.binary32_to_bid128("4", "[2c0cba4e]", "[2fe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("4", "[327fff37]", "[2fee4977af2d42928de5d3eeaaddfbd9]", "0x20")
+ self.binary32_to_bid128("4", "[37a7c5ac]", "[2ff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("4", "[3ca3d70a]", "[3008000000a56fa57b863b8031f661d5]", "0x00")
+ self.binary32_to_bid128("4", "[3d500000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("4", "[3f800000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("4", "[3fc00000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("4", "[42800000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("4", "[43000000]", "[30400000000000000000000000000080]", "0x00")
+ self.binary32_to_bid128("4", "[4479c000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("4", "[447a0000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("4", "[48434fff]", "[30340000000000000000002e90ed92f7]", "0x00")
+ self.binary32_to_bid128("4", "[4d3ebc1e]", "[3040000000000000000000000bebc1e0]", "0x00")
+ self.binary32_to_bid128("4", "[53800000]", "[30400000000000000000010000000000]", "0x00")
+ self.binary32_to_bid128("4", "[58e35fa9]", "[304000000000000000071afd48000000]", "0x00")
+ self.binary32_to_bid128("4", "[5dde0b6a]", "[30400000000000001bc16d4000000000]", "0x00")
+ self.binary32_to_bid128("4", "[64000000]", "[30400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[69800000]", "[30400000001000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[6f000000]", "[30400000800000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[74800000]", "[30400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[79fffffd]", "[304451eb8428f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("4", "[7f7fffff]", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("4", "[7f800000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[80000001]", "[afa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("4", "[800003e7]", "[afaa45052fb32af04fc4597b30d57982]", "0x22")
+ self.binary32_to_bid128("4", "[80147395]", "[afb05c99e015d1bc8f9049d7611e02bc]", "0x22")
+ self.binary32_to_bid128("4", "[80800000]", "[afb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("4", "[81000000]", "[afb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("4", "[83da5dc0]", "[afb63f474e4c768ad0d0c349780a2b55]", "0x20")
+ self.binary32_to_bid128("4", "[8a9150e8]", "[afbe44fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("4", "[8f44fdd0]", "[afc3dedc155d5e1c8c25ef5c4f590af5]", "0x20")
+ self.binary32_to_bid128("4", "[92d9a200]", "[afc843b77423080e4b4b171d5e4b22d5]", "0x20")
+ self.binary32_to_bid128("4", "[9abd7288]", "[afd18250269cd0af7162314c933d23e6]", "0x20")
+ self.binary32_to_bid128("4", "[a1ebf1c9]", "[afda4ed3f85037b8fdde708dffbf90d7]", "0x20")
+ self.binary32_to_bid128("4", "[a6ff92e6]", "[afe0576f7344e564ffce766d6bf44edf]", "0x20")
+ self.binary32_to_bid128("4", "[ac0cba4e]", "[afe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("4", "[b27fff37]", "[afee4977af2d42928de5d3eeaaddfbd9]", "0x20")
+ self.binary32_to_bid128("4", "[b7a7c5ac]", "[aff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("4", "[bca3d70a]", "[b008000000a56fa57b863b8031f661d5]", "0x00")
+ self.binary32_to_bid128("4", "[bd500000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("4", "[bf800000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("4", "[bfc00000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("4", "[c2800000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("4", "[c3000000]", "[b0400000000000000000000000000080]", "0x00")
+ self.binary32_to_bid128("4", "[c479c000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("4", "[c47a0000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("4", "[c8434fff]", "[b0340000000000000000002e90ed92f7]", "0x00")
+ self.binary32_to_bid128("4", "[cd3ebc1e]", "[b040000000000000000000000bebc1e0]", "0x00")
+ self.binary32_to_bid128("4", "[d3800000]", "[b0400000000000000000010000000000]", "0x00")
+ self.binary32_to_bid128("4", "[d8e35fa9]", "[b04000000000000000071afd48000000]", "0x00")
+ self.binary32_to_bid128("4", "[ddde0b6a]", "[b0400000000000001bc16d4000000000]", "0x00")
+ self.binary32_to_bid128("4", "[e4000000]", "[b0400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[e9800000]", "[b0400000001000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[ef000000]", "[b0400000800000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[f4800000]", "[b0400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[f9fffffd]", "[b04451eb8428f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("4", "[ff7fffff]", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("4", "[ff800000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[7f800001]", "[7c00000001000000,0000000000000000]", "01")
+ self.binary32_to_bid128("0", "[7f800004]", "[7c00000004000000,0000000000000000]", "01")
+ self.binary32_to_bid128("0", "[7f8fffff]", "[7c000fffff000000,0000000000000000]", "01")
+ self.binary32_to_bid128("0", "[7fa00000]", "[7c00200000000000,0000000000000000]", "01")
+ self.binary32_to_bid128("0", "[7fb14dc6]", "[7c00314dc6000000,0000000000000000]", "01")
+ self.binary32_to_bid128("0", "[7fb14dc7]", "[7c00000000000000,0000000000000000]", "01")
+ self.binary32_to_bid128("0", "[7fbfffff]", "[7c00000000000000,0000000000000000]", "01")
+ self.binary32_to_bid128("0", "+85886696878585969769557975866955695.E0", "[3043a774400000000000000000000000]", "00")
+ self.binary32_to_bid128("0", "[00000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[00000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[00000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[00000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[00000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[00000001]", "[2fa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("1", "[00000001]", "[2fa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("2", "[00000001]", "[2fa44516df8a16fe63d5b71ab499363d]", "0x22")
+ self.binary32_to_bid128("3", "[00000001]", "[2fa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("4", "[00000001]", "[2fa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("0", "[0000000f]", "[2fa667a24f4f227d95c092a80ee5d15a]", "0x22")
+ self.binary32_to_bid128("1", "[0000000f]", "[2fa667a24f4f227d95c092a80ee5d15a]", "0x22")
+ self.binary32_to_bid128("2", "[0000000f]", "[2fa667a24f4f227d95c092a80ee5d15b]", "0x22")
+ self.binary32_to_bid128("3", "[0000000f]", "[2fa667a24f4f227d95c092a80ee5d15a]", "0x22")
+ self.binary32_to_bid128("4", "[0000000f]", "[2fa667a24f4f227d95c092a80ee5d15a]", "0x22")
+ self.binary32_to_bid128("0", "[00000042]", "[2fa7c7fd5cf5caf55fb5b87d0e599926]", "0x22")
+ self.binary32_to_bid128("1", "[00000042]", "[2fa7c7fd5cf5caf55fb5b87d0e599926]", "0x22")
+ self.binary32_to_bid128("2", "[00000042]", "[2fa7c7fd5cf5caf55fb5b87d0e599927]", "0x22")
+ self.binary32_to_bid128("3", "[00000042]", "[2fa7c7fd5cf5caf55fb5b87d0e599926]", "0x22")
+ self.binary32_to_bid128("4", "[00000042]", "[2fa7c7fd5cf5caf55fb5b87d0e599926]", "0x22")
+ self.binary32_to_bid128("0", "[00000199]", "[2fa91a934fb758ec9d71c67f2535324d]", "0x22")
+ self.binary32_to_bid128("1", "[00000199]", "[2fa91a934fb758ec9d71c67f2535324c]", "0x22")
+ self.binary32_to_bid128("2", "[00000199]", "[2fa91a934fb758ec9d71c67f2535324d]", "0x22")
+ self.binary32_to_bid128("3", "[00000199]", "[2fa91a934fb758ec9d71c67f2535324c]", "0x22")
+ self.binary32_to_bid128("4", "[00000199]", "[2fa91a934fb758ec9d71c67f2535324d]", "0x22")
+ self.binary32_to_bid128("0", "[00000569]", "[2faa5fb051c3182a91f383ffddf809d6]", "0x22")
+ self.binary32_to_bid128("1", "[00000569]", "[2faa5fb051c3182a91f383ffddf809d5]", "0x22")
+ self.binary32_to_bid128("2", "[00000569]", "[2faa5fb051c3182a91f383ffddf809d6]", "0x22")
+ self.binary32_to_bid128("3", "[00000569]", "[2faa5fb051c3182a91f383ffddf809d5]", "0x22")
+ self.binary32_to_bid128("4", "[00000569]", "[2faa5fb051c3182a91f383ffddf809d6]", "0x22")
+ self.binary32_to_bid128("0", "[000020a4]", "[2fac39bb26b819271a486444167f9d3e]", "0x22")
+ self.binary32_to_bid128("1", "[000020a4]", "[2fac39bb26b819271a486444167f9d3d]", "0x22")
+ self.binary32_to_bid128("2", "[000020a4]", "[2fac39bb26b819271a486444167f9d3e]", "0x22")
+ self.binary32_to_bid128("3", "[000020a4]", "[2fac39bb26b819271a486444167f9d3d]", "0x22")
+ self.binary32_to_bid128("4", "[000020a4]", "[2fac39bb26b819271a486444167f9d3e]", "0x22")
+ self.binary32_to_bid128("0", "[00016ee2]", "[2fae40e3dd73c3e4253b58da1f256c93]", "0x22")
+ self.binary32_to_bid128("1", "[00016ee2]", "[2fae40e3dd73c3e4253b58da1f256c93]", "0x22")
+ self.binary32_to_bid128("2", "[00016ee2]", "[2fae40e3dd73c3e4253b58da1f256c94]", "0x22")
+ self.binary32_to_bid128("3", "[00016ee2]", "[2fae40e3dd73c3e4253b58da1f256c93]", "0x22")
+ self.binary32_to_bid128("4", "[00016ee2]", "[2fae40e3dd73c3e4253b58da1f256c93]", "0x22")
+ self.binary32_to_bid128("0", "[0001d78d]", "[2fae5367100e8a06d99bb0c3497868f8]", "0x22")
+ self.binary32_to_bid128("1", "[0001d78d]", "[2fae5367100e8a06d99bb0c3497868f8]", "0x22")
+ self.binary32_to_bid128("2", "[0001d78d]", "[2fae5367100e8a06d99bb0c3497868f9]", "0x22")
+ self.binary32_to_bid128("3", "[0001d78d]", "[2fae5367100e8a06d99bb0c3497868f8]", "0x22")
+ self.binary32_to_bid128("4", "[0001d78d]", "[2fae5367100e8a06d99bb0c3497868f8]", "0x22")
+ self.binary32_to_bid128("0", "[000ff0f8]", "[2fb0482df8bf0fa124eabca99b7208ac]", "0x22")
+ self.binary32_to_bid128("1", "[000ff0f8]", "[2fb0482df8bf0fa124eabca99b7208ab]", "0x22")
+ self.binary32_to_bid128("2", "[000ff0f8]", "[2fb0482df8bf0fa124eabca99b7208ac]", "0x22")
+ self.binary32_to_bid128("3", "[000ff0f8]", "[2fb0482df8bf0fa124eabca99b7208ab]", "0x22")
+ self.binary32_to_bid128("4", "[000ff0f8]", "[2fb0482df8bf0fa124eabca99b7208ac]", "0x22")
+ self.binary32_to_bid128("0", "[0024d703]", "[2fb0a6ce1b95f38fbbe677b43d0c8741]", "0x22")
+ self.binary32_to_bid128("1", "[0024d703]", "[2fb0a6ce1b95f38fbbe677b43d0c8740]", "0x22")
+ self.binary32_to_bid128("2", "[0024d703]", "[2fb0a6ce1b95f38fbbe677b43d0c8741]", "0x22")
+ self.binary32_to_bid128("3", "[0024d703]", "[2fb0a6ce1b95f38fbbe677b43d0c8740]", "0x22")
+ self.binary32_to_bid128("4", "[0024d703]", "[2fb0a6ce1b95f38fbbe677b43d0c8741]", "0x22")
+ self.binary32_to_bid128("0", "[007fffff]", "[2fb239f4d2a540cbe4fc34084cf9ae87]", "0x22")
+ self.binary32_to_bid128("1", "[007fffff]", "[2fb239f4d2a540cbe4fc34084cf9ae87]", "0x22")
+ self.binary32_to_bid128("2", "[007fffff]", "[2fb239f4d2a540cbe4fc34084cf9ae88]", "0x22")
+ self.binary32_to_bid128("3", "[007fffff]", "[2fb239f4d2a540cbe4fc34084cf9ae87]", "0x22")
+ self.binary32_to_bid128("4", "[007fffff]", "[2fb239f4d2a540cbe4fc34084cf9ae87]", "0x22")
+ self.binary32_to_bid128("0", "[00800000]", "[2fb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("1", "[00800000]", "[2fb239f4d3192a7217511836ef2a1c65]", "0x20")
+ self.binary32_to_bid128("2", "[00800000]", "[2fb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("3", "[00800000]", "[2fb239f4d3192a7217511836ef2a1c65]", "0x20")
+ self.binary32_to_bid128("4", "[00800000]", "[2fb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("0", "[01000000]", "[2fb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("1", "[01000000]", "[2fb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("2", "[01000000]", "[2fb273e9a63254e42ea2306dde5438cc]", "0x20")
+ self.binary32_to_bid128("3", "[01000000]", "[2fb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("4", "[01000000]", "[2fb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("0", "[01c3f5d4]", "[2fb362e920c789daf0cc8ae9666ba7ec]", "0x20")
+ self.binary32_to_bid128("1", "[01c3f5d4]", "[2fb362e920c789daf0cc8ae9666ba7eb]", "0x20")
+ self.binary32_to_bid128("2", "[01c3f5d4]", "[2fb362e920c789daf0cc8ae9666ba7ec]", "0x20")
+ self.binary32_to_bid128("3", "[01c3f5d4]", "[2fb362e920c789daf0cc8ae9666ba7eb]", "0x20")
+ self.binary32_to_bid128("4", "[01c3f5d4]", "[2fb362e920c789daf0cc8ae9666ba7ec]", "0x20")
+ self.binary32_to_bid128("0", "[03e4545b]", "[2fb6422a6cba81684d2c128374047d99]", "0x20")
+ self.binary32_to_bid128("1", "[03e4545b]", "[2fb6422a6cba81684d2c128374047d99]", "0x20")
+ self.binary32_to_bid128("2", "[03e4545b]", "[2fb6422a6cba81684d2c128374047d9a]", "0x20")
+ self.binary32_to_bid128("3", "[03e4545b]", "[2fb6422a6cba81684d2c128374047d99]", "0x20")
+ self.binary32_to_bid128("4", "[03e4545b]", "[2fb6422a6cba81684d2c128374047d99]", "0x20")
+ self.binary32_to_bid128("0", "[04949f83]", "[2fb6ac45e528a9f1a94662ce50c7addc]", "0x20")
+ self.binary32_to_bid128("1", "[04949f83]", "[2fb6ac45e528a9f1a94662ce50c7addb]", "0x20")
+ self.binary32_to_bid128("2", "[04949f83]", "[2fb6ac45e528a9f1a94662ce50c7addc]", "0x20")
+ self.binary32_to_bid128("3", "[04949f83]", "[2fb6ac45e528a9f1a94662ce50c7addb]", "0x20")
+ self.binary32_to_bid128("4", "[04949f83]", "[2fb6ac45e528a9f1a94662ce50c7addc]", "0x20")
+ self.binary32_to_bid128("0", "[05a19800]", "[2fb84aec4e14d2331b746b457af09d6a]", "0x20")
+ self.binary32_to_bid128("1", "[05a19800]", "[2fb84aec4e14d2331b746b457af09d6a]", "0x20")
+ self.binary32_to_bid128("2", "[05a19800]", "[2fb84aec4e14d2331b746b457af09d6b]", "0x20")
+ self.binary32_to_bid128("3", "[05a19800]", "[2fb84aec4e14d2331b746b457af09d6a]", "0x20")
+ self.binary32_to_bid128("4", "[05a19800]", "[2fb84aec4e14d2331b746b457af09d6a]", "0x20")
+ self.binary32_to_bid128("0", "[05d2ff3e]", "[2fb861d43564c8ba4be20eed34c8dd85]", "0x20")
+ self.binary32_to_bid128("1", "[05d2ff3e]", "[2fb861d43564c8ba4be20eed34c8dd84]", "0x20")
+ self.binary32_to_bid128("2", "[05d2ff3e]", "[2fb861d43564c8ba4be20eed34c8dd85]", "0x20")
+ self.binary32_to_bid128("3", "[05d2ff3e]", "[2fb861d43564c8ba4be20eed34c8dd84]", "0x20")
+ self.binary32_to_bid128("4", "[05d2ff3e]", "[2fb861d43564c8ba4be20eed34c8dd85]", "0x20")
+ self.binary32_to_bid128("0", "[08b0e098]", "[2fbc347c67906d7fbd3c1344607eed3d]", "0x20")
+ self.binary32_to_bid128("1", "[08b0e098]", "[2fbc347c67906d7fbd3c1344607eed3d]", "0x20")
+ self.binary32_to_bid128("2", "[08b0e098]", "[2fbc347c67906d7fbd3c1344607eed3e]", "0x20")
+ self.binary32_to_bid128("3", "[08b0e098]", "[2fbc347c67906d7fbd3c1344607eed3d]", "0x20")
+ self.binary32_to_bid128("4", "[08b0e098]", "[2fbc347c67906d7fbd3c1344607eed3d]", "0x20")
+ self.binary32_to_bid128("0", "[08f99e83]", "[2fbc4a1235087f95e465734e8f95696d]", "0x20")
+ self.binary32_to_bid128("1", "[08f99e83]", "[2fbc4a1235087f95e465734e8f95696c]", "0x20")
+ self.binary32_to_bid128("2", "[08f99e83]", "[2fbc4a1235087f95e465734e8f95696d]", "0x20")
+ self.binary32_to_bid128("3", "[08f99e83]", "[2fbc4a1235087f95e465734e8f95696c]", "0x20")
+ self.binary32_to_bid128("4", "[08f99e83]", "[2fbc4a1235087f95e465734e8f95696d]", "0x20")
+ self.binary32_to_bid128("0", "[0a0b1224]", "[2fbd4a23a271d93070ff3a1e9a30a936]", "0x20")
+ self.binary32_to_bid128("1", "[0a0b1224]", "[2fbd4a23a271d93070ff3a1e9a30a935]", "0x20")
+ self.binary32_to_bid128("2", "[0a0b1224]", "[2fbd4a23a271d93070ff3a1e9a30a936]", "0x20")
+ self.binary32_to_bid128("3", "[0a0b1224]", "[2fbd4a23a271d93070ff3a1e9a30a935]", "0x20")
+ self.binary32_to_bid128("4", "[0a0b1224]", "[2fbd4a23a271d93070ff3a1e9a30a936]", "0x20")
+ self.binary32_to_bid128("0", "[0c35a522]", "[2fc044fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("1", "[0c35a522]", "[2fc044fe2fafb85bc2e26fc5e8348f4c]", "0x20")
+ self.binary32_to_bid128("2", "[0c35a522]", "[2fc044fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("3", "[0c35a522]", "[2fc044fe2fafb85bc2e26fc5e8348f4c]", "0x20")
+ self.binary32_to_bid128("4", "[0c35a522]", "[2fc044fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("0", "[0dd425eb]", "[2fc24076831da0e78b9953b59e29c9b0]", "0x20")
+ self.binary32_to_bid128("1", "[0dd425eb]", "[2fc24076831da0e78b9953b59e29c9af]", "0x20")
+ self.binary32_to_bid128("2", "[0dd425eb]", "[2fc24076831da0e78b9953b59e29c9b0]", "0x20")
+ self.binary32_to_bid128("3", "[0dd425eb]", "[2fc24076831da0e78b9953b59e29c9af]", "0x20")
+ self.binary32_to_bid128("4", "[0dd425eb]", "[2fc24076831da0e78b9953b59e29c9b0]", "0x20")
+ self.binary32_to_bid128("0", "[0f209fdf]", "[2fc38674de9aa05066a5af26c6451613]", "0x20")
+ self.binary32_to_bid128("1", "[0f209fdf]", "[2fc38674de9aa05066a5af26c6451612]", "0x20")
+ self.binary32_to_bid128("2", "[0f209fdf]", "[2fc38674de9aa05066a5af26c6451613]", "0x20")
+ self.binary32_to_bid128("3", "[0f209fdf]", "[2fc38674de9aa05066a5af26c6451612]", "0x20")
+ self.binary32_to_bid128("4", "[0f209fdf]", "[2fc38674de9aa05066a5af26c6451613]", "0x20")
+ self.binary32_to_bid128("0", "[10695bc1]", "[2fc4e2e7b80cd7f6ad75aca0bcf86656]", "0x20")
+ self.binary32_to_bid128("1", "[10695bc1]", "[2fc4e2e7b80cd7f6ad75aca0bcf86656]", "0x20")
+ self.binary32_to_bid128("2", "[10695bc1]", "[2fc4e2e7b80cd7f6ad75aca0bcf86657]", "0x20")
+ self.binary32_to_bid128("3", "[10695bc1]", "[2fc4e2e7b80cd7f6ad75aca0bcf86656]", "0x20")
+ self.binary32_to_bid128("4", "[10695bc1]", "[2fc4e2e7b80cd7f6ad75aca0bcf86656]", "0x20")
+ self.binary32_to_bid128("0", "[11776090]", "[2fc66036e9ca992c7ed69534f30167b0]", "0x20")
+ self.binary32_to_bid128("1", "[11776090]", "[2fc66036e9ca992c7ed69534f30167af]", "0x20")
+ self.binary32_to_bid128("2", "[11776090]", "[2fc66036e9ca992c7ed69534f30167b0]", "0x20")
+ self.binary32_to_bid128("3", "[11776090]", "[2fc66036e9ca992c7ed69534f30167af]", "0x20")
+ self.binary32_to_bid128("4", "[11776090]", "[2fc66036e9ca992c7ed69534f30167b0]", "0x20")
+ self.binary32_to_bid128("0", "[1446fb95]", "[2fca3187e97190f49c25793638e5f3d2]", "0x20")
+ self.binary32_to_bid128("1", "[1446fb95]", "[2fca3187e97190f49c25793638e5f3d1]", "0x20")
+ self.binary32_to_bid128("2", "[1446fb95]", "[2fca3187e97190f49c25793638e5f3d2]", "0x20")
+ self.binary32_to_bid128("3", "[1446fb95]", "[2fca3187e97190f49c25793638e5f3d1]", "0x20")
+ self.binary32_to_bid128("4", "[1446fb95]", "[2fca3187e97190f49c25793638e5f3d2]", "0x20")
+ self.binary32_to_bid128("0", "[1492bcec]", "[2fca490d5ddac13848654aa7d7ed2a15]", "0x20")
+ self.binary32_to_bid128("1", "[1492bcec]", "[2fca490d5ddac13848654aa7d7ed2a15]", "0x20")
+ self.binary32_to_bid128("2", "[1492bcec]", "[2fca490d5ddac13848654aa7d7ed2a16]", "0x20")
+ self.binary32_to_bid128("3", "[1492bcec]", "[2fca490d5ddac13848654aa7d7ed2a15]", "0x20")
+ self.binary32_to_bid128("4", "[1492bcec]", "[2fca490d5ddac13848654aa7d7ed2a15]", "0x20")
+ self.binary32_to_bid128("0", "[1669b582]", "[2fcc5d1479ea96969a5698e03ddaed9b]", "0x20")
+ self.binary32_to_bid128("1", "[1669b582]", "[2fcc5d1479ea96969a5698e03ddaed9b]", "0x20")
+ self.binary32_to_bid128("2", "[1669b582]", "[2fcc5d1479ea96969a5698e03ddaed9c]", "0x20")
+ self.binary32_to_bid128("3", "[1669b582]", "[2fcc5d1479ea96969a5698e03ddaed9b]", "0x20")
+ self.binary32_to_bid128("4", "[1669b582]", "[2fcc5d1479ea96969a5698e03ddaed9b]", "0x20")
+ self.binary32_to_bid128("0", "[18184389]", "[2fce6107315f75b13bb7bbe5adc4e2af]", "0x20")
+ self.binary32_to_bid128("1", "[18184389]", "[2fce6107315f75b13bb7bbe5adc4e2af]", "0x20")
+ self.binary32_to_bid128("2", "[18184389]", "[2fce6107315f75b13bb7bbe5adc4e2b0]", "0x20")
+ self.binary32_to_bid128("3", "[18184389]", "[2fce6107315f75b13bb7bbe5adc4e2af]", "0x20")
+ self.binary32_to_bid128("4", "[18184389]", "[2fce6107315f75b13bb7bbe5adc4e2af]", "0x20")
+ self.binary32_to_bid128("0", "[1949f18d]", "[2fd033796e974a1e66675b7515adb4ce]", "0x20")
+ self.binary32_to_bid128("1", "[1949f18d]", "[2fd033796e974a1e66675b7515adb4ce]", "0x20")
+ self.binary32_to_bid128("2", "[1949f18d]", "[2fd033796e974a1e66675b7515adb4cf]", "0x20")
+ self.binary32_to_bid128("3", "[1949f18d]", "[2fd033796e974a1e66675b7515adb4ce]", "0x20")
+ self.binary32_to_bid128("4", "[1949f18d]", "[2fd033796e974a1e66675b7515adb4ce]", "0x20")
+ self.binary32_to_bid128("0", "[1abbbaf4]", "[2fd17ecfc81fd2e16d6acad257b7f724]", "0x20")
+ self.binary32_to_bid128("1", "[1abbbaf4]", "[2fd17ecfc81fd2e16d6acad257b7f724]", "0x20")
+ self.binary32_to_bid128("2", "[1abbbaf4]", "[2fd17ecfc81fd2e16d6acad257b7f725]", "0x20")
+ self.binary32_to_bid128("3", "[1abbbaf4]", "[2fd17ecfc81fd2e16d6acad257b7f724]", "0x20")
+ self.binary32_to_bid128("4", "[1abbbaf4]", "[2fd17ecfc81fd2e16d6acad257b7f724]", "0x20")
+ self.binary32_to_bid128("0", "[1acd60b5]", "[2fd1a2cc31b44c8f3b29a89d2477fff4]", "0x20")
+ self.binary32_to_bid128("1", "[1acd60b5]", "[2fd1a2cc31b44c8f3b29a89d2477fff3]", "0x20")
+ self.binary32_to_bid128("2", "[1acd60b5]", "[2fd1a2cc31b44c8f3b29a89d2477fff4]", "0x20")
+ self.binary32_to_bid128("3", "[1acd60b5]", "[2fd1a2cc31b44c8f3b29a89d2477fff3]", "0x20")
+ self.binary32_to_bid128("4", "[1acd60b5]", "[2fd1a2cc31b44c8f3b29a89d2477fff4]", "0x20")
+ self.binary32_to_bid128("0", "[1cb5b264]", "[2fd43b48072e31092b09d24fee690465]", "0x20")
+ self.binary32_to_bid128("1", "[1cb5b264]", "[2fd43b48072e31092b09d24fee690464]", "0x20")
+ self.binary32_to_bid128("2", "[1cb5b264]", "[2fd43b48072e31092b09d24fee690465]", "0x20")
+ self.binary32_to_bid128("3", "[1cb5b264]", "[2fd43b48072e31092b09d24fee690464]", "0x20")
+ self.binary32_to_bid128("4", "[1cb5b264]", "[2fd43b48072e31092b09d24fee690465]", "0x20")
+ self.binary32_to_bid128("0", "[1cd96ed0]", "[2fd446f0d70750da3b51b71ee9c71d68]", "0x20")
+ self.binary32_to_bid128("1", "[1cd96ed0]", "[2fd446f0d70750da3b51b71ee9c71d68]", "0x20")
+ self.binary32_to_bid128("2", "[1cd96ed0]", "[2fd446f0d70750da3b51b71ee9c71d69]", "0x20")
+ self.binary32_to_bid128("3", "[1cd96ed0]", "[2fd446f0d70750da3b51b71ee9c71d68]", "0x20")
+ self.binary32_to_bid128("4", "[1cd96ed0]", "[2fd446f0d70750da3b51b71ee9c71d68]", "0x20")
+ self.binary32_to_bid128("0", "[1fe501aa]", "[2fd7de301933d018bed7fb938992407e]", "0x20")
+ self.binary32_to_bid128("1", "[1fe501aa]", "[2fd7de301933d018bed7fb938992407e]", "0x20")
+ self.binary32_to_bid128("2", "[1fe501aa]", "[2fd7de301933d018bed7fb938992407f]", "0x20")
+ self.binary32_to_bid128("3", "[1fe501aa]", "[2fd7de301933d018bed7fb938992407e]", "0x20")
+ self.binary32_to_bid128("4", "[1fe501aa]", "[2fd7de301933d018bed7fb938992407e]", "0x20")
+ self.binary32_to_bid128("0", "[204c386c]", "[2fd8554952aa267492f6ea3023aa38f1]", "0x20")
+ self.binary32_to_bid128("1", "[204c386c]", "[2fd8554952aa267492f6ea3023aa38f0]", "0x20")
+ self.binary32_to_bid128("2", "[204c386c]", "[2fd8554952aa267492f6ea3023aa38f1]", "0x20")
+ self.binary32_to_bid128("3", "[204c386c]", "[2fd8554952aa267492f6ea3023aa38f0]", "0x20")
+ self.binary32_to_bid128("4", "[204c386c]", "[2fd8554952aa267492f6ea3023aa38f1]", "0x20")
+ self.binary32_to_bid128("0", "[21ae9000]", "[2fda3a52104cb6fd5d0c7d11bc402ed0]", "0x20")
+ self.binary32_to_bid128("1", "[21ae9000]", "[2fda3a52104cb6fd5d0c7d11bc402ed0]", "0x20")
+ self.binary32_to_bid128("2", "[21ae9000]", "[2fda3a52104cb6fd5d0c7d11bc402ed1]", "0x20")
+ self.binary32_to_bid128("3", "[21ae9000]", "[2fda3a52104cb6fd5d0c7d11bc402ed0]", "0x20")
+ self.binary32_to_bid128("4", "[21ae9000]", "[2fda3a52104cb6fd5d0c7d11bc402ed0]", "0x20")
+ self.binary32_to_bid128("0", "[227f4687]", "[2fdaaa92a5544ce925edd460475471e2]", "0x20")
+ self.binary32_to_bid128("1", "[227f4687]", "[2fdaaa92a5544ce925edd460475471e1]", "0x20")
+ self.binary32_to_bid128("2", "[227f4687]", "[2fdaaa92a5544ce925edd460475471e2]", "0x20")
+ self.binary32_to_bid128("3", "[227f4687]", "[2fdaaa92a5544ce925edd460475471e1]", "0x20")
+ self.binary32_to_bid128("4", "[227f4687]", "[2fdaaa92a5544ce925edd460475471e2]", "0x20")
+ self.binary32_to_bid128("0", "[2399d8e1]", "[2fdc523d4d8a3942c64eb75cb97eb1d6]", "0x20")
+ self.binary32_to_bid128("1", "[2399d8e1]", "[2fdc523d4d8a3942c64eb75cb97eb1d6]", "0x20")
+ self.binary32_to_bid128("2", "[2399d8e1]", "[2fdc523d4d8a3942c64eb75cb97eb1d7]", "0x20")
+ self.binary32_to_bid128("3", "[2399d8e1]", "[2fdc523d4d8a3942c64eb75cb97eb1d6]", "0x20")
+ self.binary32_to_bid128("4", "[2399d8e1]", "[2fdc523d4d8a3942c64eb75cb97eb1d6]", "0x20")
+ self.binary32_to_bid128("0", "[24e55d27]", "[2fddea6db4c4e1dfc76063fcd7d13ff4]", "0x20")
+ self.binary32_to_bid128("1", "[24e55d27]", "[2fddea6db4c4e1dfc76063fcd7d13ff3]", "0x20")
+ self.binary32_to_bid128("2", "[24e55d27]", "[2fddea6db4c4e1dfc76063fcd7d13ff4]", "0x20")
+ self.binary32_to_bid128("3", "[24e55d27]", "[2fddea6db4c4e1dfc76063fcd7d13ff3]", "0x20")
+ self.binary32_to_bid128("4", "[24e55d27]", "[2fddea6db4c4e1dfc76063fcd7d13ff4]", "0x20")
+ self.binary32_to_bid128("0", "[267fc973]", "[2fdfb58a90728f50fad0641e6b59243e]", "0x20")
+ self.binary32_to_bid128("1", "[267fc973]", "[2fdfb58a90728f50fad0641e6b59243d]", "0x20")
+ self.binary32_to_bid128("2", "[267fc973]", "[2fdfb58a90728f50fad0641e6b59243e]", "0x20")
+ self.binary32_to_bid128("3", "[267fc973]", "[2fdfb58a90728f50fad0641e6b59243d]", "0x20")
+ self.binary32_to_bid128("4", "[267fc973]", "[2fdfb58a90728f50fad0641e6b59243e]", "0x20")
+ self.binary32_to_bid128("0", "[289779f8]", "[2fe252ea5ece4f886750b1dac467a767]", "0x20")
+ self.binary32_to_bid128("1", "[289779f8]", "[2fe252ea5ece4f886750b1dac467a766]", "0x20")
+ self.binary32_to_bid128("2", "[289779f8]", "[2fe252ea5ece4f886750b1dac467a767]", "0x20")
+ self.binary32_to_bid128("3", "[289779f8]", "[2fe252ea5ece4f886750b1dac467a766]", "0x20")
+ self.binary32_to_bid128("4", "[289779f8]", "[2fe252ea5ece4f886750b1dac467a767]", "0x20")
+ self.binary32_to_bid128("0", "[28faac3b]", "[2fe28936bccd02430004a54c7785fd10]", "0x20")
+ self.binary32_to_bid128("1", "[28faac3b]", "[2fe28936bccd02430004a54c7785fd0f]", "0x20")
+ self.binary32_to_bid128("2", "[28faac3b]", "[2fe28936bccd02430004a54c7785fd10]", "0x20")
+ self.binary32_to_bid128("3", "[28faac3b]", "[2fe28936bccd02430004a54c7785fd0f]", "0x20")
+ self.binary32_to_bid128("4", "[28faac3b]", "[2fe28936bccd02430004a54c7785fd10]", "0x20")
+ self.binary32_to_bid128("0", "[2b7ad1c3]", "[2fe5b7574cf508e51d1a8ada6fa64c20]", "0x20")
+ self.binary32_to_bid128("1", "[2b7ad1c3]", "[2fe5b7574cf508e51d1a8ada6fa64c1f]", "0x20")
+ self.binary32_to_bid128("2", "[2b7ad1c3]", "[2fe5b7574cf508e51d1a8ada6fa64c20]", "0x20")
+ self.binary32_to_bid128("3", "[2b7ad1c3]", "[2fe5b7574cf508e51d1a8ada6fa64c1f]", "0x20")
+ self.binary32_to_bid128("4", "[2b7ad1c3]", "[2fe5b7574cf508e51d1a8ada6fa64c20]", "0x20")
+ self.binary32_to_bid128("0", "[2c0cba4e]", "[2fe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("1", "[2c0cba4e]", "[2fe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("2", "[2c0cba4e]", "[2fe66299cd7edb9663bb330883b0ff29]", "0x20")
+ self.binary32_to_bid128("3", "[2c0cba4e]", "[2fe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("4", "[2c0cba4e]", "[2fe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("0", "[2dff7c0b]", "[2fe88f343be6b5a156eb4cc8fbed25a2]", "0x20")
+ self.binary32_to_bid128("1", "[2dff7c0b]", "[2fe88f343be6b5a156eb4cc8fbed25a1]", "0x20")
+ self.binary32_to_bid128("2", "[2dff7c0b]", "[2fe88f343be6b5a156eb4cc8fbed25a2]", "0x20")
+ self.binary32_to_bid128("3", "[2dff7c0b]", "[2fe88f343be6b5a156eb4cc8fbed25a1]", "0x20")
+ self.binary32_to_bid128("4", "[2dff7c0b]", "[2fe88f343be6b5a156eb4cc8fbed25a2]", "0x20")
+ self.binary32_to_bid128("0", "[2f5bd8cf]", "[2fea62952ffa0aa59a69c61b97a95fd0]", "0x20")
+ self.binary32_to_bid128("1", "[2f5bd8cf]", "[2fea62952ffa0aa59a69c61b97a95fcf]", "0x20")
+ self.binary32_to_bid128("2", "[2f5bd8cf]", "[2fea62952ffa0aa59a69c61b97a95fd0]", "0x20")
+ self.binary32_to_bid128("3", "[2f5bd8cf]", "[2fea62952ffa0aa59a69c61b97a95fcf]", "0x20")
+ self.binary32_to_bid128("4", "[2f5bd8cf]", "[2fea62952ffa0aa59a69c61b97a95fd0]", "0x20")
+ self.binary32_to_bid128("0", "[2f5be678]", "[2fea629b5015f4447c93b378c4d2d622]", "0x20")
+ self.binary32_to_bid128("1", "[2f5be678]", "[2fea629b5015f4447c93b378c4d2d621]", "0x20")
+ self.binary32_to_bid128("2", "[2f5be678]", "[2fea629b5015f4447c93b378c4d2d622]", "0x20")
+ self.binary32_to_bid128("3", "[2f5be678]", "[2fea629b5015f4447c93b378c4d2d621]", "0x20")
+ self.binary32_to_bid128("4", "[2f5be678]", "[2fea629b5015f4447c93b378c4d2d622]", "0x20")
+ self.binary32_to_bid128("0", "[31096eb0]", "[2fec629a57201ead98c89ac5fec3349c]", "0x20")
+ self.binary32_to_bid128("1", "[31096eb0]", "[2fec629a57201ead98c89ac5fec3349c]", "0x20")
+ self.binary32_to_bid128("2", "[31096eb0]", "[2fec629a57201ead98c89ac5fec3349d]", "0x20")
+ self.binary32_to_bid128("3", "[31096eb0]", "[2fec629a57201ead98c89ac5fec3349c]", "0x20")
+ self.binary32_to_bid128("4", "[31096eb0]", "[2fec629a57201ead98c89ac5fec3349c]", "0x20")
+ self.binary32_to_bid128("0", "[31fffe37]", "[2fed6f54fc8ac08ebb77184d73c17001]", "0x20")
+ self.binary32_to_bid128("1", "[31fffe37]", "[2fed6f54fc8ac08ebb77184d73c17000]", "0x20")
+ self.binary32_to_bid128("2", "[31fffe37]", "[2fed6f54fc8ac08ebb77184d73c17001]", "0x20")
+ self.binary32_to_bid128("3", "[31fffe37]", "[2fed6f54fc8ac08ebb77184d73c17000]", "0x20")
+ self.binary32_to_bid128("4", "[31fffe37]", "[2fed6f54fc8ac08ebb77184d73c17001]", "0x20")
+ self.binary32_to_bid128("0", "[347fffdf]", "[2ff0758c989febd1ea42e9f500f81d7a]", "0x20")
+ self.binary32_to_bid128("1", "[347fffdf]", "[2ff0758c989febd1ea42e9f500f81d79]", "0x20")
+ self.binary32_to_bid128("2", "[347fffdf]", "[2ff0758c989febd1ea42e9f500f81d7a]", "0x20")
+ self.binary32_to_bid128("3", "[347fffdf]", "[2ff0758c989febd1ea42e9f500f81d79]", "0x20")
+ self.binary32_to_bid128("4", "[347fffdf]", "[2ff0758c989febd1ea42e9f500f81d7a]", "0x20")
+ self.binary32_to_bid128("0", "[35ffffff]", "[2ff25e0a1f746708a327637712441355]", "0x20")
+ self.binary32_to_bid128("1", "[35ffffff]", "[2ff25e0a1f746708a327637712441355]", "0x20")
+ self.binary32_to_bid128("2", "[35ffffff]", "[2ff25e0a1f746708a327637712441356]", "0x20")
+ self.binary32_to_bid128("3", "[35ffffff]", "[2ff25e0a1f746708a327637712441355]", "0x20")
+ self.binary32_to_bid128("4", "[35ffffff]", "[2ff25e0a1f746708a327637712441355]", "0x20")
+ self.binary32_to_bid128("0", "[36ffffff]", "[2ff378287dd19c228c9d8ddc49104d55]", "0x20")
+ self.binary32_to_bid128("1", "[36ffffff]", "[2ff378287dd19c228c9d8ddc49104d54]", "0x20")
+ self.binary32_to_bid128("2", "[36ffffff]", "[2ff378287dd19c228c9d8ddc49104d55]", "0x20")
+ self.binary32_to_bid128("3", "[36ffffff]", "[2ff378287dd19c228c9d8ddc49104d54]", "0x20")
+ self.binary32_to_bid128("4", "[36ffffff]", "[2ff378287dd19c228c9d8ddc49104d55]", "0x20")
+ self.binary32_to_bid128("0", "[37a7c5ac]", "[2ff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("1", "[37a7c5ac]", "[2ff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("2", "[37a7c5ac]", "[2ff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("3", "[37a7c5ac]", "[2ff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("4", "[37a7c5ac]", "[2ff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("0", "[39800000]", "[3028000000000000000000000e8d4a51]", "0x00")
+ self.binary32_to_bid128("1", "[39800000]", "[3028000000000000000000000e8d4a51]", "0x00")
+ self.binary32_to_bid128("2", "[39800000]", "[3028000000000000000000000e8d4a51]", "0x00")
+ self.binary32_to_bid128("3", "[39800000]", "[3028000000000000000000000e8d4a51]", "0x00")
+ self.binary32_to_bid128("4", "[39800000]", "[3028000000000000000000000e8d4a51]", "0x00")
+ self.binary32_to_bid128("0", "[3b000000]", "[302e00000000000000000000001dcd65]", "0x00")
+ self.binary32_to_bid128("1", "[3b000000]", "[302e00000000000000000000001dcd65]", "0x00")
+ self.binary32_to_bid128("2", "[3b000000]", "[302e00000000000000000000001dcd65]", "0x00")
+ self.binary32_to_bid128("3", "[3b000000]", "[302e00000000000000000000001dcd65]", "0x00")
+ self.binary32_to_bid128("4", "[3b000000]", "[302e00000000000000000000001dcd65]", "0x00")
+ self.binary32_to_bid128("0", "[3b03126c]", "[3004000006765c58886cdaa7b0ed9753]", "0x00")
+ self.binary32_to_bid128("1", "[3b03126c]", "[3004000006765c58886cdaa7b0ed9753]", "0x00")
+ self.binary32_to_bid128("2", "[3b03126c]", "[3004000006765c58886cdaa7b0ed9753]", "0x00")
+ self.binary32_to_bid128("3", "[3b03126c]", "[3004000006765c58886cdaa7b0ed9753]", "0x00")
+ self.binary32_to_bid128("4", "[3b03126c]", "[3004000006765c58886cdaa7b0ed9753]", "0x00")
+ self.binary32_to_bid128("0", "[3ca3d700]", "[3016000000000001158e34b02f6f6ec3]", "0x00")
+ self.binary32_to_bid128("1", "[3ca3d700]", "[3016000000000001158e34b02f6f6ec3]", "0x00")
+ self.binary32_to_bid128("2", "[3ca3d700]", "[3016000000000001158e34b02f6f6ec3]", "0x00")
+ self.binary32_to_bid128("3", "[3ca3d700]", "[3016000000000001158e34b02f6f6ec3]", "0x00")
+ self.binary32_to_bid128("4", "[3ca3d700]", "[3016000000000001158e34b02f6f6ec3]", "0x00")
+ self.binary32_to_bid128("0", "[3d500000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("1", "[3d500000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("2", "[3d500000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("3", "[3d500000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("4", "[3d500000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("0", "[3d800000]", "[30380000000000000000000000000271]", "0x00")
+ self.binary32_to_bid128("1", "[3d800000]", "[30380000000000000000000000000271]", "0x00")
+ self.binary32_to_bid128("2", "[3d800000]", "[30380000000000000000000000000271]", "0x00")
+ self.binary32_to_bid128("3", "[3d800000]", "[30380000000000000000000000000271]", "0x00")
+ self.binary32_to_bid128("4", "[3d800000]", "[30380000000000000000000000000271]", "0x00")
+ self.binary32_to_bid128("0", "[3f800000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("1", "[3f800000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("2", "[3f800000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("3", "[3f800000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("4", "[3f800000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("0", "[3fc00000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("1", "[3fc00000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("2", "[3fc00000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("3", "[3fc00000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("4", "[3fc00000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("0", "[40000000]", "[30400000000000000000000000000002]", "0x00")
+ self.binary32_to_bid128("1", "[40000000]", "[30400000000000000000000000000002]", "0x00")
+ self.binary32_to_bid128("2", "[40000000]", "[30400000000000000000000000000002]", "0x00")
+ self.binary32_to_bid128("3", "[40000000]", "[30400000000000000000000000000002]", "0x00")
+ self.binary32_to_bid128("4", "[40000000]", "[30400000000000000000000000000002]", "0x00")
+ self.binary32_to_bid128("0", "[41800000]", "[30400000000000000000000000000010]", "0x00")
+ self.binary32_to_bid128("1", "[41800000]", "[30400000000000000000000000000010]", "0x00")
+ self.binary32_to_bid128("2", "[41800000]", "[30400000000000000000000000000010]", "0x00")
+ self.binary32_to_bid128("3", "[41800000]", "[30400000000000000000000000000010]", "0x00")
+ self.binary32_to_bid128("4", "[41800000]", "[30400000000000000000000000000010]", "0x00")
+ self.binary32_to_bid128("0", "[42800000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("1", "[42800000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("2", "[42800000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("3", "[42800000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("4", "[42800000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("0", "[4347fffe]", "[302200000000000002c68ae9a016b673]", "0x00")
+ self.binary32_to_bid128("1", "[4347fffe]", "[302200000000000002c68ae9a016b673]", "0x00")
+ self.binary32_to_bid128("2", "[4347fffe]", "[302200000000000002c68ae9a016b673]", "0x00")
+ self.binary32_to_bid128("3", "[4347fffe]", "[302200000000000002c68ae9a016b673]", "0x00")
+ self.binary32_to_bid128("4", "[4347fffe]", "[302200000000000002c68ae9a016b673]", "0x00")
+ self.binary32_to_bid128("0", "[4479c000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("1", "[4479c000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("2", "[4479c000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("3", "[4479c000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("4", "[4479c000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("0", "[447a0000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("1", "[447a0000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("2", "[447a0000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("3", "[447a0000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("4", "[447a0000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("0", "[45000000]", "[30400000000000000000000000000800]", "0x00")
+ self.binary32_to_bid128("1", "[45000000]", "[30400000000000000000000000000800]", "0x00")
+ self.binary32_to_bid128("2", "[45000000]", "[30400000000000000000000000000800]", "0x00")
+ self.binary32_to_bid128("3", "[45000000]", "[30400000000000000000000000000800]", "0x00")
+ self.binary32_to_bid128("4", "[45000000]", "[30400000000000000000000000000800]", "0x00")
+ self.binary32_to_bid128("0", "[46800000]", "[30400000000000000000000000004000]", "0x00")
+ self.binary32_to_bid128("1", "[46800000]", "[30400000000000000000000000004000]", "0x00")
+ self.binary32_to_bid128("2", "[46800000]", "[30400000000000000000000000004000]", "0x00")
+ self.binary32_to_bid128("3", "[46800000]", "[30400000000000000000000000004000]", "0x00")
+ self.binary32_to_bid128("4", "[46800000]", "[30400000000000000000000000004000]", "0x00")
+ self.binary32_to_bid128("0", "[469c3ffc]", "[30320000000000000000002e90ec9ed3]", "0x00")
+ self.binary32_to_bid128("1", "[469c3ffc]", "[30320000000000000000002e90ec9ed3]", "0x00")
+ self.binary32_to_bid128("2", "[469c3ffc]", "[30320000000000000000002e90ec9ed3]", "0x00")
+ self.binary32_to_bid128("3", "[469c3ffc]", "[30320000000000000000002e90ec9ed3]", "0x00")
+ self.binary32_to_bid128("4", "[469c3ffc]", "[30320000000000000000002e90ec9ed3]", "0x00")
+ self.binary32_to_bid128("0", "[48434ff0]", "[303c0000000000000000000001312ce7]", "0x00")
+ self.binary32_to_bid128("1", "[48434ff0]", "[303c0000000000000000000001312ce7]", "0x00")
+ self.binary32_to_bid128("2", "[48434ff0]", "[303c0000000000000000000001312ce7]", "0x00")
+ self.binary32_to_bid128("3", "[48434ff0]", "[303c0000000000000000000001312ce7]", "0x00")
+ self.binary32_to_bid128("4", "[48434ff0]", "[303c0000000000000000000001312ce7]", "0x00")
+ self.binary32_to_bid128("0", "[49000000]", "[30400000000000000000000000080000]", "0x00")
+ self.binary32_to_bid128("1", "[49000000]", "[30400000000000000000000000080000]", "0x00")
+ self.binary32_to_bid128("2", "[49000000]", "[30400000000000000000000000080000]", "0x00")
+ self.binary32_to_bid128("3", "[49000000]", "[30400000000000000000000000080000]", "0x00")
+ self.binary32_to_bid128("4", "[49000000]", "[30400000000000000000000000080000]", "0x00")
+ self.binary32_to_bid128("0", "[4b800000]", "[30400000000000000000000001000000]", "0x00")
+ self.binary32_to_bid128("1", "[4b800000]", "[30400000000000000000000001000000]", "0x00")
+ self.binary32_to_bid128("2", "[4b800000]", "[30400000000000000000000001000000]", "0x00")
+ self.binary32_to_bid128("3", "[4b800000]", "[30400000000000000000000001000000]", "0x00")
+ self.binary32_to_bid128("4", "[4b800000]", "[30400000000000000000000001000000]", "0x00")
+ self.binary32_to_bid128("0", "[4d000000]", "[30400000000000000000000008000000]", "0x00")
+ self.binary32_to_bid128("1", "[4d000000]", "[30400000000000000000000008000000]", "0x00")
+ self.binary32_to_bid128("2", "[4d000000]", "[30400000000000000000000008000000]", "0x00")
+ self.binary32_to_bid128("3", "[4d000000]", "[30400000000000000000000008000000]", "0x00")
+ self.binary32_to_bid128("4", "[4d000000]", "[30400000000000000000000008000000]", "0x00")
+ self.binary32_to_bid128("0", "[4e000000]", "[30400000000000000000000020000000]", "0x00")
+ self.binary32_to_bid128("1", "[4e000000]", "[30400000000000000000000020000000]", "0x00")
+ self.binary32_to_bid128("2", "[4e000000]", "[30400000000000000000000020000000]", "0x00")
+ self.binary32_to_bid128("3", "[4e000000]", "[30400000000000000000000020000000]", "0x00")
+ self.binary32_to_bid128("4", "[4e000000]", "[30400000000000000000000020000000]", "0x00")
+ self.binary32_to_bid128("0", "[4eee6b20]", "[30400000000000000000000077359000]", "0x00")
+ self.binary32_to_bid128("1", "[4eee6b20]", "[30400000000000000000000077359000]", "0x00")
+ self.binary32_to_bid128("2", "[4eee6b20]", "[30400000000000000000000077359000]", "0x00")
+ self.binary32_to_bid128("3", "[4eee6b20]", "[30400000000000000000000077359000]", "0x00")
+ self.binary32_to_bid128("4", "[4eee6b20]", "[30400000000000000000000077359000]", "0x00")
+ self.binary32_to_bid128("0", "[4eee6b26]", "[30400000000000000000000077359300]", "0x00")
+ self.binary32_to_bid128("1", "[4eee6b26]", "[30400000000000000000000077359300]", "0x00")
+ self.binary32_to_bid128("2", "[4eee6b26]", "[30400000000000000000000077359300]", "0x00")
+ self.binary32_to_bid128("3", "[4eee6b26]", "[30400000000000000000000077359300]", "0x00")
+ self.binary32_to_bid128("4", "[4eee6b26]", "[30400000000000000000000077359300]", "0x00")
+ self.binary32_to_bid128("0", "[52000000]", "[30400000000000000000002000000000]", "0x00")
+ self.binary32_to_bid128("1", "[52000000]", "[30400000000000000000002000000000]", "0x00")
+ self.binary32_to_bid128("2", "[52000000]", "[30400000000000000000002000000000]", "0x00")
+ self.binary32_to_bid128("3", "[52000000]", "[30400000000000000000002000000000]", "0x00")
+ self.binary32_to_bid128("4", "[52000000]", "[30400000000000000000002000000000]", "0x00")
+ self.binary32_to_bid128("0", "[523a43b4]", "[30400000000000000000002e90ed0000]", "0x00")
+ self.binary32_to_bid128("1", "[523a43b4]", "[30400000000000000000002e90ed0000]", "0x00")
+ self.binary32_to_bid128("2", "[523a43b4]", "[30400000000000000000002e90ed0000]", "0x00")
+ self.binary32_to_bid128("3", "[523a43b4]", "[30400000000000000000002e90ed0000]", "0x00")
+ self.binary32_to_bid128("4", "[523a43b4]", "[30400000000000000000002e90ed0000]", "0x00")
+ self.binary32_to_bid128("0", "[54800000]", "[30400000000000000000040000000000]", "0x00")
+ self.binary32_to_bid128("1", "[54800000]", "[30400000000000000000040000000000]", "0x00")
+ self.binary32_to_bid128("2", "[54800000]", "[30400000000000000000040000000000]", "0x00")
+ self.binary32_to_bid128("3", "[54800000]", "[30400000000000000000040000000000]", "0x00")
+ self.binary32_to_bid128("4", "[54800000]", "[30400000000000000000040000000000]", "0x00")
+ self.binary32_to_bid128("0", "[559184e7]", "[3040000000000000000012309ce00000]", "0x00")
+ self.binary32_to_bid128("1", "[559184e7]", "[3040000000000000000012309ce00000]", "0x00")
+ self.binary32_to_bid128("2", "[559184e7]", "[3040000000000000000012309ce00000]", "0x00")
+ self.binary32_to_bid128("3", "[559184e7]", "[3040000000000000000012309ce00000]", "0x00")
+ self.binary32_to_bid128("4", "[559184e7]", "[3040000000000000000012309ce00000]", "0x00")
+ self.binary32_to_bid128("0", "[57000000]", "[30400000000000000000800000000000]", "0x00")
+ self.binary32_to_bid128("1", "[57000000]", "[30400000000000000000800000000000]", "0x00")
+ self.binary32_to_bid128("2", "[57000000]", "[30400000000000000000800000000000]", "0x00")
+ self.binary32_to_bid128("3", "[57000000]", "[30400000000000000000800000000000]", "0x00")
+ self.binary32_to_bid128("4", "[57000000]", "[30400000000000000000800000000000]", "0x00")
+ self.binary32_to_bid128("0", "[58800000]", "[30400000000000000004000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[58800000]", "[30400000000000000004000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[58800000]", "[30400000000000000004000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[58800000]", "[30400000000000000004000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[58800000]", "[30400000000000000004000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[59800000]", "[30400000000000000010000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[59800000]", "[30400000000000000010000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[59800000]", "[30400000000000000010000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[59800000]", "[30400000000000000010000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[59800000]", "[30400000000000000010000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[5a8e1bc8]", "[304000000000000000470de400000000]", "0x00")
+ self.binary32_to_bid128("1", "[5a8e1bc8]", "[304000000000000000470de400000000]", "0x00")
+ self.binary32_to_bid128("2", "[5a8e1bc8]", "[304000000000000000470de400000000]", "0x00")
+ self.binary32_to_bid128("3", "[5a8e1bc8]", "[304000000000000000470de400000000]", "0x00")
+ self.binary32_to_bid128("4", "[5a8e1bc8]", "[304000000000000000470de400000000]", "0x00")
+ self.binary32_to_bid128("0", "[5b000000]", "[30400000000000000080000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[5b000000]", "[30400000000000000080000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[5b000000]", "[30400000000000000080000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[5b000000]", "[30400000000000000080000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[5b000000]", "[30400000000000000080000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[5d800000]", "[30400000000000001000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[5d800000]", "[30400000000000001000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[5d800000]", "[30400000000000001000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[5d800000]", "[30400000000000001000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[5d800000]", "[30400000000000001000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[5dde0b68]", "[30400000000000001bc16d0000000000]", "0x00")
+ self.binary32_to_bid128("1", "[5dde0b68]", "[30400000000000001bc16d0000000000]", "0x00")
+ self.binary32_to_bid128("2", "[5dde0b68]", "[30400000000000001bc16d0000000000]", "0x00")
+ self.binary32_to_bid128("3", "[5dde0b68]", "[30400000000000001bc16d0000000000]", "0x00")
+ self.binary32_to_bid128("4", "[5dde0b68]", "[30400000000000001bc16d0000000000]", "0x00")
+ self.binary32_to_bid128("0", "[60000000]", "[30400000000000020000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[60000000]", "[30400000000000020000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[60000000]", "[30400000000000020000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[60000000]", "[30400000000000020000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[60000000]", "[30400000000000020000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[612d78eb]", "[304000000000000ad78eb00000000000]", "0x00")
+ self.binary32_to_bid128("1", "[612d78eb]", "[304000000000000ad78eb00000000000]", "0x00")
+ self.binary32_to_bid128("2", "[612d78eb]", "[304000000000000ad78eb00000000000]", "0x00")
+ self.binary32_to_bid128("3", "[612d78eb]", "[304000000000000ad78eb00000000000]", "0x00")
+ self.binary32_to_bid128("4", "[612d78eb]", "[304000000000000ad78eb00000000000]", "0x00")
+ self.binary32_to_bid128("0", "[62800000]", "[30400000000000400000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[62800000]", "[30400000000000400000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[62800000]", "[30400000000000400000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[62800000]", "[30400000000000400000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[62800000]", "[30400000000000400000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[62d8d720]", "[304000000000006c6b90000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[62d8d720]", "[304000000000006c6b90000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[62d8d720]", "[304000000000006c6b90000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[62d8d720]", "[304000000000006c6b90000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[62d8d720]", "[304000000000006c6b90000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[64000000]", "[30400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[64000000]", "[30400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[64000000]", "[30400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[64000000]", "[30400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[64000000]", "[30400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[66296810]", "[3040000000002a5a0400000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[66296810]", "[3040000000002a5a0400000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[66296810]", "[3040000000002a5a0400000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[66296810]", "[3040000000002a5a0400000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[66296810]", "[3040000000002a5a0400000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[66800000]", "[30400000000040000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[66800000]", "[30400000000040000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[66800000]", "[30400000000040000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[66800000]", "[30400000000040000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[66800000]", "[30400000000040000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[69000000]", "[30400000000800000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[69000000]", "[30400000000800000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[69000000]", "[30400000000800000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[69000000]", "[30400000000800000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[69000000]", "[30400000000800000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[69845950]", "[3040000000108b2a0000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[69845950]", "[3040000000108b2a0000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[69845950]", "[3040000000108b2a0000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[69845950]", "[3040000000108b2a0000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[69845950]", "[3040000000108b2a0000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[6b800000]", "[30400000010000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[6b800000]", "[30400000010000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[6b800000]", "[30400000010000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[6b800000]", "[30400000010000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[6b800000]", "[30400000010000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[6ccecb88]", "[3040000006765c400000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[6ccecb88]", "[3040000006765c400000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[6ccecb88]", "[3040000006765c400000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[6ccecb88]", "[3040000006765c400000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[6ccecb88]", "[3040000006765c400000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[6ccecb8f]", "[3040000006765c780000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[6ccecb8f]", "[3040000006765c780000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[6ccecb8f]", "[3040000006765c780000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[6ccecb8f]", "[3040000006765c780000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[6ccecb8f]", "[3040000006765c780000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[6e813f30]", "[30400000409f98000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[6e813f30]", "[30400000409f98000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[6e813f30]", "[30400000409f98000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[6e813f30]", "[30400000409f98000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[6e813f30]", "[30400000409f98000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[6f800000]", "[30400001000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[6f800000]", "[30400001000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[6f800000]", "[30400001000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[6f800000]", "[30400001000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[6f800000]", "[30400001000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[71c9f2c8]", "[304000193e5900000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[71c9f2c8]", "[304000193e5900000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[71c9f2c8]", "[304000193e5900000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[71c9f2c8]", "[304000193e5900000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[71c9f2c8]", "[304000193e5900000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[72000000]", "[30400020000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[72000000]", "[30400020000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[72000000]", "[30400020000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[72000000]", "[30400020000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[72000000]", "[30400020000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[74800000]", "[30400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[74800000]", "[30400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[74800000]", "[30400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[74800000]", "[30400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[74800000]", "[30400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[751dc5ac]", "[304009dc5ac000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[751dc5ac]", "[304009dc5ac000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[751dc5ac]", "[304009dc5ac000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[751dc5ac]", "[304009dc5ac000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[751dc5ac]", "[304009dc5ac000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[77000000]", "[30408000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[77000000]", "[30408000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[77000000]", "[30408000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[77000000]", "[30408000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[77000000]", "[30408000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[787684d8]", "[3042629b89999999999999999999999a]", "0x20")
+ self.binary32_to_bid128("1", "[787684d8]", "[3042629b899999999999999999999999]", "0x20")
+ self.binary32_to_bid128("2", "[787684d8]", "[3042629b89999999999999999999999a]", "0x20")
+ self.binary32_to_bid128("3", "[787684d8]", "[3042629b899999999999999999999999]", "0x20")
+ self.binary32_to_bid128("4", "[787684d8]", "[3042629b89999999999999999999999a]", "0x20")
+ self.binary32_to_bid128("0", "[787684df]", "[3042629b8c6666666666666666666666]", "0x20")
+ self.binary32_to_bid128("1", "[787684df]", "[3042629b8c6666666666666666666666]", "0x20")
+ self.binary32_to_bid128("2", "[787684df]", "[3042629b8c6666666666666666666667]", "0x20")
+ self.binary32_to_bid128("3", "[787684df]", "[3042629b8c6666666666666666666666]", "0x20")
+ self.binary32_to_bid128("4", "[787684df]", "[3042629b8c6666666666666666666666]", "0x20")
+ self.binary32_to_bid128("0", "[7a1a12f0]", "[3044629b7ae147ae147ae147ae147ae1]", "0x20")
+ self.binary32_to_bid128("1", "[7a1a12f0]", "[3044629b7ae147ae147ae147ae147ae1]", "0x20")
+ self.binary32_to_bid128("2", "[7a1a12f0]", "[3044629b7ae147ae147ae147ae147ae2]", "0x20")
+ self.binary32_to_bid128("3", "[7a1a12f0]", "[3044629b7ae147ae147ae147ae147ae1]", "0x20")
+ self.binary32_to_bid128("4", "[7a1a12f0]", "[3044629b7ae147ae147ae147ae147ae1]", "0x20")
+ self.binary32_to_bid128("0", "[7affffed]", "[304547adfc28f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("1", "[7affffed]", "[304547adfc28f5c28f5c28f5c28f5c28]", "0x20")
+ self.binary32_to_bid128("2", "[7affffed]", "[304547adfc28f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("3", "[7affffed]", "[304547adfc28f5c28f5c28f5c28f5c28]", "0x20")
+ self.binary32_to_bid128("4", "[7affffed]", "[304547adfc28f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("0", "[7d7ffda1]", "[304868da930be0ded288ce703afb7e91]", "0x20")
+ self.binary32_to_bid128("1", "[7d7ffda1]", "[304868da930be0ded288ce703afb7e90]", "0x20")
+ self.binary32_to_bid128("2", "[7d7ffda1]", "[304868da930be0ded288ce703afb7e91]", "0x20")
+ self.binary32_to_bid128("3", "[7d7ffda1]", "[304868da930be0ded288ce703afb7e90]", "0x20")
+ self.binary32_to_bid128("4", "[7d7ffda1]", "[304868da930be0ded288ce703afb7e91]", "0x20")
+ self.binary32_to_bid128("0", "[7effff26]", "[304a53e28eb463497b7414a4d2b2bfdb]", "0x20")
+ self.binary32_to_bid128("1", "[7effff26]", "[304a53e28eb463497b7414a4d2b2bfdb]", "0x20")
+ self.binary32_to_bid128("2", "[7effff26]", "[304a53e28eb463497b7414a4d2b2bfdc]", "0x20")
+ self.binary32_to_bid128("3", "[7effff26]", "[304a53e28eb463497b7414a4d2b2bfdb]", "0x20")
+ self.binary32_to_bid128("4", "[7effff26]", "[304a53e28eb463497b7414a4d2b2bfdb]", "0x20")
+ self.binary32_to_bid128("0", "[7f7fffff]", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("1", "[7f7fffff]", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("2", "[7f7fffff]", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "0x20")
+ self.binary32_to_bid128("3", "[7f7fffff]", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("4", "[7f7fffff]", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("0", "[7f800000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[7f800000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[7f800000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[7f800000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[7f800000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[7fb08000]", "[7c003080000000000000000000000000]", "0x01")
+ self.binary32_to_bid128("0", "[7ff08000]", "[7c003080000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[80000001]", "[afa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("1", "[80000001]", "[afa44516df8a16fe63d5b71ab499363d]", "0x22")
+ self.binary32_to_bid128("2", "[80000001]", "[afa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("3", "[80000001]", "[afa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("4", "[80000001]", "[afa44516df8a16fe63d5b71ab499363c]", "0x22")
+ self.binary32_to_bid128("0", "[8000000f]", "[afa667a24f4f227d95c092a80ee5d15a]", "0x22")
+ self.binary32_to_bid128("1", "[8000000f]", "[afa667a24f4f227d95c092a80ee5d15b]", "0x22")
+ self.binary32_to_bid128("2", "[8000000f]", "[afa667a24f4f227d95c092a80ee5d15a]", "0x22")
+ self.binary32_to_bid128("3", "[8000000f]", "[afa667a24f4f227d95c092a80ee5d15a]", "0x22")
+ self.binary32_to_bid128("4", "[8000000f]", "[afa667a24f4f227d95c092a80ee5d15a]", "0x22")
+ self.binary32_to_bid128("0", "[80000042]", "[afa7c7fd5cf5caf55fb5b87d0e599926]", "0x22")
+ self.binary32_to_bid128("1", "[80000042]", "[afa7c7fd5cf5caf55fb5b87d0e599927]", "0x22")
+ self.binary32_to_bid128("2", "[80000042]", "[afa7c7fd5cf5caf55fb5b87d0e599926]", "0x22")
+ self.binary32_to_bid128("3", "[80000042]", "[afa7c7fd5cf5caf55fb5b87d0e599926]", "0x22")
+ self.binary32_to_bid128("4", "[80000042]", "[afa7c7fd5cf5caf55fb5b87d0e599926]", "0x22")
+ self.binary32_to_bid128("0", "[80000199]", "[afa91a934fb758ec9d71c67f2535324d]", "0x22")
+ self.binary32_to_bid128("1", "[80000199]", "[afa91a934fb758ec9d71c67f2535324d]", "0x22")
+ self.binary32_to_bid128("2", "[80000199]", "[afa91a934fb758ec9d71c67f2535324c]", "0x22")
+ self.binary32_to_bid128("3", "[80000199]", "[afa91a934fb758ec9d71c67f2535324c]", "0x22")
+ self.binary32_to_bid128("4", "[80000199]", "[afa91a934fb758ec9d71c67f2535324d]", "0x22")
+ self.binary32_to_bid128("0", "[80000569]", "[afaa5fb051c3182a91f383ffddf809d6]", "0x22")
+ self.binary32_to_bid128("1", "[80000569]", "[afaa5fb051c3182a91f383ffddf809d6]", "0x22")
+ self.binary32_to_bid128("2", "[80000569]", "[afaa5fb051c3182a91f383ffddf809d5]", "0x22")
+ self.binary32_to_bid128("3", "[80000569]", "[afaa5fb051c3182a91f383ffddf809d5]", "0x22")
+ self.binary32_to_bid128("4", "[80000569]", "[afaa5fb051c3182a91f383ffddf809d6]", "0x22")
+ self.binary32_to_bid128("0", "[800020a4]", "[afac39bb26b819271a486444167f9d3e]", "0x22")
+ self.binary32_to_bid128("1", "[800020a4]", "[afac39bb26b819271a486444167f9d3e]", "0x22")
+ self.binary32_to_bid128("2", "[800020a4]", "[afac39bb26b819271a486444167f9d3d]", "0x22")
+ self.binary32_to_bid128("3", "[800020a4]", "[afac39bb26b819271a486444167f9d3d]", "0x22")
+ self.binary32_to_bid128("4", "[800020a4]", "[afac39bb26b819271a486444167f9d3e]", "0x22")
+ self.binary32_to_bid128("0", "[80016ee2]", "[afae40e3dd73c3e4253b58da1f256c93]", "0x22")
+ self.binary32_to_bid128("1", "[80016ee2]", "[afae40e3dd73c3e4253b58da1f256c94]", "0x22")
+ self.binary32_to_bid128("2", "[80016ee2]", "[afae40e3dd73c3e4253b58da1f256c93]", "0x22")
+ self.binary32_to_bid128("3", "[80016ee2]", "[afae40e3dd73c3e4253b58da1f256c93]", "0x22")
+ self.binary32_to_bid128("4", "[80016ee2]", "[afae40e3dd73c3e4253b58da1f256c93]", "0x22")
+ self.binary32_to_bid128("0", "[8001d78d]", "[afae5367100e8a06d99bb0c3497868f8]", "0x22")
+ self.binary32_to_bid128("1", "[8001d78d]", "[afae5367100e8a06d99bb0c3497868f9]", "0x22")
+ self.binary32_to_bid128("2", "[8001d78d]", "[afae5367100e8a06d99bb0c3497868f8]", "0x22")
+ self.binary32_to_bid128("3", "[8001d78d]", "[afae5367100e8a06d99bb0c3497868f8]", "0x22")
+ self.binary32_to_bid128("4", "[8001d78d]", "[afae5367100e8a06d99bb0c3497868f8]", "0x22")
+ self.binary32_to_bid128("0", "[800ff0f8]", "[afb0482df8bf0fa124eabca99b7208ac]", "0x22")
+ self.binary32_to_bid128("1", "[800ff0f8]", "[afb0482df8bf0fa124eabca99b7208ac]", "0x22")
+ self.binary32_to_bid128("2", "[800ff0f8]", "[afb0482df8bf0fa124eabca99b7208ab]", "0x22")
+ self.binary32_to_bid128("3", "[800ff0f8]", "[afb0482df8bf0fa124eabca99b7208ab]", "0x22")
+ self.binary32_to_bid128("4", "[800ff0f8]", "[afb0482df8bf0fa124eabca99b7208ac]", "0x22")
+ self.binary32_to_bid128("0", "[8024d703]", "[afb0a6ce1b95f38fbbe677b43d0c8741]", "0x22")
+ self.binary32_to_bid128("1", "[8024d703]", "[afb0a6ce1b95f38fbbe677b43d0c8741]", "0x22")
+ self.binary32_to_bid128("2", "[8024d703]", "[afb0a6ce1b95f38fbbe677b43d0c8740]", "0x22")
+ self.binary32_to_bid128("3", "[8024d703]", "[afb0a6ce1b95f38fbbe677b43d0c8740]", "0x22")
+ self.binary32_to_bid128("4", "[8024d703]", "[afb0a6ce1b95f38fbbe677b43d0c8741]", "0x22")
+ self.binary32_to_bid128("0", "[807fffff]", "[afb239f4d2a540cbe4fc34084cf9ae87]", "0x22")
+ self.binary32_to_bid128("1", "[807fffff]", "[afb239f4d2a540cbe4fc34084cf9ae88]", "0x22")
+ self.binary32_to_bid128("2", "[807fffff]", "[afb239f4d2a540cbe4fc34084cf9ae87]", "0x22")
+ self.binary32_to_bid128("3", "[807fffff]", "[afb239f4d2a540cbe4fc34084cf9ae87]", "0x22")
+ self.binary32_to_bid128("4", "[807fffff]", "[afb239f4d2a540cbe4fc34084cf9ae87]", "0x22")
+ self.binary32_to_bid128("0", "[80800000]", "[afb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("1", "[80800000]", "[afb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("2", "[80800000]", "[afb239f4d3192a7217511836ef2a1c65]", "0x20")
+ self.binary32_to_bid128("3", "[80800000]", "[afb239f4d3192a7217511836ef2a1c65]", "0x20")
+ self.binary32_to_bid128("4", "[80800000]", "[afb239f4d3192a7217511836ef2a1c66]", "0x20")
+ self.binary32_to_bid128("0", "[81000000]", "[afb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("1", "[81000000]", "[afb273e9a63254e42ea2306dde5438cc]", "0x20")
+ self.binary32_to_bid128("2", "[81000000]", "[afb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("3", "[81000000]", "[afb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("4", "[81000000]", "[afb273e9a63254e42ea2306dde5438cb]", "0x20")
+ self.binary32_to_bid128("0", "[81c3f5d4]", "[afb362e920c789daf0cc8ae9666ba7ec]", "0x20")
+ self.binary32_to_bid128("1", "[81c3f5d4]", "[afb362e920c789daf0cc8ae9666ba7ec]", "0x20")
+ self.binary32_to_bid128("2", "[81c3f5d4]", "[afb362e920c789daf0cc8ae9666ba7eb]", "0x20")
+ self.binary32_to_bid128("3", "[81c3f5d4]", "[afb362e920c789daf0cc8ae9666ba7eb]", "0x20")
+ self.binary32_to_bid128("4", "[81c3f5d4]", "[afb362e920c789daf0cc8ae9666ba7ec]", "0x20")
+ self.binary32_to_bid128("0", "[83e4545b]", "[afb6422a6cba81684d2c128374047d99]", "0x20")
+ self.binary32_to_bid128("1", "[83e4545b]", "[afb6422a6cba81684d2c128374047d9a]", "0x20")
+ self.binary32_to_bid128("2", "[83e4545b]", "[afb6422a6cba81684d2c128374047d99]", "0x20")
+ self.binary32_to_bid128("3", "[83e4545b]", "[afb6422a6cba81684d2c128374047d99]", "0x20")
+ self.binary32_to_bid128("4", "[83e4545b]", "[afb6422a6cba81684d2c128374047d99]", "0x20")
+ self.binary32_to_bid128("0", "[84949f83]", "[afb6ac45e528a9f1a94662ce50c7addc]", "0x20")
+ self.binary32_to_bid128("1", "[84949f83]", "[afb6ac45e528a9f1a94662ce50c7addc]", "0x20")
+ self.binary32_to_bid128("2", "[84949f83]", "[afb6ac45e528a9f1a94662ce50c7addb]", "0x20")
+ self.binary32_to_bid128("3", "[84949f83]", "[afb6ac45e528a9f1a94662ce50c7addb]", "0x20")
+ self.binary32_to_bid128("4", "[84949f83]", "[afb6ac45e528a9f1a94662ce50c7addc]", "0x20")
+ self.binary32_to_bid128("0", "[85a19800]", "[afb84aec4e14d2331b746b457af09d6a]", "0x20")
+ self.binary32_to_bid128("1", "[85a19800]", "[afb84aec4e14d2331b746b457af09d6b]", "0x20")
+ self.binary32_to_bid128("2", "[85a19800]", "[afb84aec4e14d2331b746b457af09d6a]", "0x20")
+ self.binary32_to_bid128("3", "[85a19800]", "[afb84aec4e14d2331b746b457af09d6a]", "0x20")
+ self.binary32_to_bid128("4", "[85a19800]", "[afb84aec4e14d2331b746b457af09d6a]", "0x20")
+ self.binary32_to_bid128("0", "[85d2ff3e]", "[afb861d43564c8ba4be20eed34c8dd85]", "0x20")
+ self.binary32_to_bid128("1", "[85d2ff3e]", "[afb861d43564c8ba4be20eed34c8dd85]", "0x20")
+ self.binary32_to_bid128("2", "[85d2ff3e]", "[afb861d43564c8ba4be20eed34c8dd84]", "0x20")
+ self.binary32_to_bid128("3", "[85d2ff3e]", "[afb861d43564c8ba4be20eed34c8dd84]", "0x20")
+ self.binary32_to_bid128("4", "[85d2ff3e]", "[afb861d43564c8ba4be20eed34c8dd85]", "0x20")
+ self.binary32_to_bid128("0", "[88b0e098]", "[afbc347c67906d7fbd3c1344607eed3d]", "0x20")
+ self.binary32_to_bid128("1", "[88b0e098]", "[afbc347c67906d7fbd3c1344607eed3e]", "0x20")
+ self.binary32_to_bid128("2", "[88b0e098]", "[afbc347c67906d7fbd3c1344607eed3d]", "0x20")
+ self.binary32_to_bid128("3", "[88b0e098]", "[afbc347c67906d7fbd3c1344607eed3d]", "0x20")
+ self.binary32_to_bid128("4", "[88b0e098]", "[afbc347c67906d7fbd3c1344607eed3d]", "0x20")
+ self.binary32_to_bid128("0", "[88f99e83]", "[afbc4a1235087f95e465734e8f95696d]", "0x20")
+ self.binary32_to_bid128("1", "[88f99e83]", "[afbc4a1235087f95e465734e8f95696d]", "0x20")
+ self.binary32_to_bid128("2", "[88f99e83]", "[afbc4a1235087f95e465734e8f95696c]", "0x20")
+ self.binary32_to_bid128("3", "[88f99e83]", "[afbc4a1235087f95e465734e8f95696c]", "0x20")
+ self.binary32_to_bid128("4", "[88f99e83]", "[afbc4a1235087f95e465734e8f95696d]", "0x20")
+ self.binary32_to_bid128("0", "[8a0b1224]", "[afbd4a23a271d93070ff3a1e9a30a936]", "0x20")
+ self.binary32_to_bid128("1", "[8a0b1224]", "[afbd4a23a271d93070ff3a1e9a30a936]", "0x20")
+ self.binary32_to_bid128("2", "[8a0b1224]", "[afbd4a23a271d93070ff3a1e9a30a935]", "0x20")
+ self.binary32_to_bid128("3", "[8a0b1224]", "[afbd4a23a271d93070ff3a1e9a30a935]", "0x20")
+ self.binary32_to_bid128("4", "[8a0b1224]", "[afbd4a23a271d93070ff3a1e9a30a936]", "0x20")
+ self.binary32_to_bid128("0", "[8c35a522]", "[afc044fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("1", "[8c35a522]", "[afc044fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("2", "[8c35a522]", "[afc044fe2fafb85bc2e26fc5e8348f4c]", "0x20")
+ self.binary32_to_bid128("3", "[8c35a522]", "[afc044fe2fafb85bc2e26fc5e8348f4c]", "0x20")
+ self.binary32_to_bid128("4", "[8c35a522]", "[afc044fe2fafb85bc2e26fc5e8348f4d]", "0x20")
+ self.binary32_to_bid128("0", "[8dd425eb]", "[afc24076831da0e78b9953b59e29c9b0]", "0x20")
+ self.binary32_to_bid128("1", "[8dd425eb]", "[afc24076831da0e78b9953b59e29c9b0]", "0x20")
+ self.binary32_to_bid128("2", "[8dd425eb]", "[afc24076831da0e78b9953b59e29c9af]", "0x20")
+ self.binary32_to_bid128("3", "[8dd425eb]", "[afc24076831da0e78b9953b59e29c9af]", "0x20")
+ self.binary32_to_bid128("4", "[8dd425eb]", "[afc24076831da0e78b9953b59e29c9b0]", "0x20")
+ self.binary32_to_bid128("0", "[8f209fdf]", "[afc38674de9aa05066a5af26c6451613]", "0x20")
+ self.binary32_to_bid128("1", "[8f209fdf]", "[afc38674de9aa05066a5af26c6451613]", "0x20")
+ self.binary32_to_bid128("2", "[8f209fdf]", "[afc38674de9aa05066a5af26c6451612]", "0x20")
+ self.binary32_to_bid128("3", "[8f209fdf]", "[afc38674de9aa05066a5af26c6451612]", "0x20")
+ self.binary32_to_bid128("4", "[8f209fdf]", "[afc38674de9aa05066a5af26c6451613]", "0x20")
+ self.binary32_to_bid128("0", "[90695bc1]", "[afc4e2e7b80cd7f6ad75aca0bcf86656]", "0x20")
+ self.binary32_to_bid128("1", "[90695bc1]", "[afc4e2e7b80cd7f6ad75aca0bcf86657]", "0x20")
+ self.binary32_to_bid128("2", "[90695bc1]", "[afc4e2e7b80cd7f6ad75aca0bcf86656]", "0x20")
+ self.binary32_to_bid128("3", "[90695bc1]", "[afc4e2e7b80cd7f6ad75aca0bcf86656]", "0x20")
+ self.binary32_to_bid128("4", "[90695bc1]", "[afc4e2e7b80cd7f6ad75aca0bcf86656]", "0x20")
+ self.binary32_to_bid128("0", "[91776090]", "[afc66036e9ca992c7ed69534f30167b0]", "0x20")
+ self.binary32_to_bid128("1", "[91776090]", "[afc66036e9ca992c7ed69534f30167b0]", "0x20")
+ self.binary32_to_bid128("2", "[91776090]", "[afc66036e9ca992c7ed69534f30167af]", "0x20")
+ self.binary32_to_bid128("3", "[91776090]", "[afc66036e9ca992c7ed69534f30167af]", "0x20")
+ self.binary32_to_bid128("4", "[91776090]", "[afc66036e9ca992c7ed69534f30167b0]", "0x20")
+ self.binary32_to_bid128("0", "[9446fb95]", "[afca3187e97190f49c25793638e5f3d2]", "0x20")
+ self.binary32_to_bid128("1", "[9446fb95]", "[afca3187e97190f49c25793638e5f3d2]", "0x20")
+ self.binary32_to_bid128("2", "[9446fb95]", "[afca3187e97190f49c25793638e5f3d1]", "0x20")
+ self.binary32_to_bid128("3", "[9446fb95]", "[afca3187e97190f49c25793638e5f3d1]", "0x20")
+ self.binary32_to_bid128("4", "[9446fb95]", "[afca3187e97190f49c25793638e5f3d2]", "0x20")
+ self.binary32_to_bid128("0", "[9492bcec]", "[afca490d5ddac13848654aa7d7ed2a15]", "0x20")
+ self.binary32_to_bid128("1", "[9492bcec]", "[afca490d5ddac13848654aa7d7ed2a16]", "0x20")
+ self.binary32_to_bid128("2", "[9492bcec]", "[afca490d5ddac13848654aa7d7ed2a15]", "0x20")
+ self.binary32_to_bid128("3", "[9492bcec]", "[afca490d5ddac13848654aa7d7ed2a15]", "0x20")
+ self.binary32_to_bid128("4", "[9492bcec]", "[afca490d5ddac13848654aa7d7ed2a15]", "0x20")
+ self.binary32_to_bid128("0", "[9669b582]", "[afcc5d1479ea96969a5698e03ddaed9b]", "0x20")
+ self.binary32_to_bid128("1", "[9669b582]", "[afcc5d1479ea96969a5698e03ddaed9c]", "0x20")
+ self.binary32_to_bid128("2", "[9669b582]", "[afcc5d1479ea96969a5698e03ddaed9b]", "0x20")
+ self.binary32_to_bid128("3", "[9669b582]", "[afcc5d1479ea96969a5698e03ddaed9b]", "0x20")
+ self.binary32_to_bid128("4", "[9669b582]", "[afcc5d1479ea96969a5698e03ddaed9b]", "0x20")
+ self.binary32_to_bid128("0", "[98184389]", "[afce6107315f75b13bb7bbe5adc4e2af]", "0x20")
+ self.binary32_to_bid128("1", "[98184389]", "[afce6107315f75b13bb7bbe5adc4e2b0]", "0x20")
+ self.binary32_to_bid128("2", "[98184389]", "[afce6107315f75b13bb7bbe5adc4e2af]", "0x20")
+ self.binary32_to_bid128("3", "[98184389]", "[afce6107315f75b13bb7bbe5adc4e2af]", "0x20")
+ self.binary32_to_bid128("4", "[98184389]", "[afce6107315f75b13bb7bbe5adc4e2af]", "0x20")
+ self.binary32_to_bid128("0", "[9949f18d]", "[afd033796e974a1e66675b7515adb4ce]", "0x20")
+ self.binary32_to_bid128("1", "[9949f18d]", "[afd033796e974a1e66675b7515adb4cf]", "0x20")
+ self.binary32_to_bid128("2", "[9949f18d]", "[afd033796e974a1e66675b7515adb4ce]", "0x20")
+ self.binary32_to_bid128("3", "[9949f18d]", "[afd033796e974a1e66675b7515adb4ce]", "0x20")
+ self.binary32_to_bid128("4", "[9949f18d]", "[afd033796e974a1e66675b7515adb4ce]", "0x20")
+ self.binary32_to_bid128("0", "[9abbbaf4]", "[afd17ecfc81fd2e16d6acad257b7f724]", "0x20")
+ self.binary32_to_bid128("1", "[9abbbaf4]", "[afd17ecfc81fd2e16d6acad257b7f725]", "0x20")
+ self.binary32_to_bid128("2", "[9abbbaf4]", "[afd17ecfc81fd2e16d6acad257b7f724]", "0x20")
+ self.binary32_to_bid128("3", "[9abbbaf4]", "[afd17ecfc81fd2e16d6acad257b7f724]", "0x20")
+ self.binary32_to_bid128("4", "[9abbbaf4]", "[afd17ecfc81fd2e16d6acad257b7f724]", "0x20")
+ self.binary32_to_bid128("0", "[9acd60b5]", "[afd1a2cc31b44c8f3b29a89d2477fff4]", "0x20")
+ self.binary32_to_bid128("1", "[9acd60b5]", "[afd1a2cc31b44c8f3b29a89d2477fff4]", "0x20")
+ self.binary32_to_bid128("2", "[9acd60b5]", "[afd1a2cc31b44c8f3b29a89d2477fff3]", "0x20")
+ self.binary32_to_bid128("3", "[9acd60b5]", "[afd1a2cc31b44c8f3b29a89d2477fff3]", "0x20")
+ self.binary32_to_bid128("4", "[9acd60b5]", "[afd1a2cc31b44c8f3b29a89d2477fff4]", "0x20")
+ self.binary32_to_bid128("0", "[9cb5b264]", "[afd43b48072e31092b09d24fee690465]", "0x20")
+ self.binary32_to_bid128("1", "[9cb5b264]", "[afd43b48072e31092b09d24fee690465]", "0x20")
+ self.binary32_to_bid128("2", "[9cb5b264]", "[afd43b48072e31092b09d24fee690464]", "0x20")
+ self.binary32_to_bid128("3", "[9cb5b264]", "[afd43b48072e31092b09d24fee690464]", "0x20")
+ self.binary32_to_bid128("4", "[9cb5b264]", "[afd43b48072e31092b09d24fee690465]", "0x20")
+ self.binary32_to_bid128("0", "[9cd96ed0]", "[afd446f0d70750da3b51b71ee9c71d68]", "0x20")
+ self.binary32_to_bid128("1", "[9cd96ed0]", "[afd446f0d70750da3b51b71ee9c71d69]", "0x20")
+ self.binary32_to_bid128("2", "[9cd96ed0]", "[afd446f0d70750da3b51b71ee9c71d68]", "0x20")
+ self.binary32_to_bid128("3", "[9cd96ed0]", "[afd446f0d70750da3b51b71ee9c71d68]", "0x20")
+ self.binary32_to_bid128("4", "[9cd96ed0]", "[afd446f0d70750da3b51b71ee9c71d68]", "0x20")
+ self.binary32_to_bid128("0", "[9fe501aa]", "[afd7de301933d018bed7fb938992407e]", "0x20")
+ self.binary32_to_bid128("1", "[9fe501aa]", "[afd7de301933d018bed7fb938992407f]", "0x20")
+ self.binary32_to_bid128("2", "[9fe501aa]", "[afd7de301933d018bed7fb938992407e]", "0x20")
+ self.binary32_to_bid128("3", "[9fe501aa]", "[afd7de301933d018bed7fb938992407e]", "0x20")
+ self.binary32_to_bid128("4", "[9fe501aa]", "[afd7de301933d018bed7fb938992407e]", "0x20")
+ self.binary32_to_bid128("0", "[a04c386c]", "[afd8554952aa267492f6ea3023aa38f1]", "0x20")
+ self.binary32_to_bid128("1", "[a04c386c]", "[afd8554952aa267492f6ea3023aa38f1]", "0x20")
+ self.binary32_to_bid128("2", "[a04c386c]", "[afd8554952aa267492f6ea3023aa38f0]", "0x20")
+ self.binary32_to_bid128("3", "[a04c386c]", "[afd8554952aa267492f6ea3023aa38f0]", "0x20")
+ self.binary32_to_bid128("4", "[a04c386c]", "[afd8554952aa267492f6ea3023aa38f1]", "0x20")
+ self.binary32_to_bid128("0", "[a1ae9000]", "[afda3a52104cb6fd5d0c7d11bc402ed0]", "0x20")
+ self.binary32_to_bid128("1", "[a1ae9000]", "[afda3a52104cb6fd5d0c7d11bc402ed1]", "0x20")
+ self.binary32_to_bid128("2", "[a1ae9000]", "[afda3a52104cb6fd5d0c7d11bc402ed0]", "0x20")
+ self.binary32_to_bid128("3", "[a1ae9000]", "[afda3a52104cb6fd5d0c7d11bc402ed0]", "0x20")
+ self.binary32_to_bid128("4", "[a1ae9000]", "[afda3a52104cb6fd5d0c7d11bc402ed0]", "0x20")
+ self.binary32_to_bid128("0", "[a27f4687]", "[afdaaa92a5544ce925edd460475471e2]", "0x20")
+ self.binary32_to_bid128("1", "[a27f4687]", "[afdaaa92a5544ce925edd460475471e2]", "0x20")
+ self.binary32_to_bid128("2", "[a27f4687]", "[afdaaa92a5544ce925edd460475471e1]", "0x20")
+ self.binary32_to_bid128("3", "[a27f4687]", "[afdaaa92a5544ce925edd460475471e1]", "0x20")
+ self.binary32_to_bid128("4", "[a27f4687]", "[afdaaa92a5544ce925edd460475471e2]", "0x20")
+ self.binary32_to_bid128("0", "[a399d8e1]", "[afdc523d4d8a3942c64eb75cb97eb1d6]", "0x20")
+ self.binary32_to_bid128("1", "[a399d8e1]", "[afdc523d4d8a3942c64eb75cb97eb1d7]", "0x20")
+ self.binary32_to_bid128("2", "[a399d8e1]", "[afdc523d4d8a3942c64eb75cb97eb1d6]", "0x20")
+ self.binary32_to_bid128("3", "[a399d8e1]", "[afdc523d4d8a3942c64eb75cb97eb1d6]", "0x20")
+ self.binary32_to_bid128("4", "[a399d8e1]", "[afdc523d4d8a3942c64eb75cb97eb1d6]", "0x20")
+ self.binary32_to_bid128("0", "[a4e55d27]", "[afddea6db4c4e1dfc76063fcd7d13ff4]", "0x20")
+ self.binary32_to_bid128("1", "[a4e55d27]", "[afddea6db4c4e1dfc76063fcd7d13ff4]", "0x20")
+ self.binary32_to_bid128("2", "[a4e55d27]", "[afddea6db4c4e1dfc76063fcd7d13ff3]", "0x20")
+ self.binary32_to_bid128("3", "[a4e55d27]", "[afddea6db4c4e1dfc76063fcd7d13ff3]", "0x20")
+ self.binary32_to_bid128("4", "[a4e55d27]", "[afddea6db4c4e1dfc76063fcd7d13ff4]", "0x20")
+ self.binary32_to_bid128("0", "[a67fc973]", "[afdfb58a90728f50fad0641e6b59243e]", "0x20")
+ self.binary32_to_bid128("1", "[a67fc973]", "[afdfb58a90728f50fad0641e6b59243e]", "0x20")
+ self.binary32_to_bid128("2", "[a67fc973]", "[afdfb58a90728f50fad0641e6b59243d]", "0x20")
+ self.binary32_to_bid128("3", "[a67fc973]", "[afdfb58a90728f50fad0641e6b59243d]", "0x20")
+ self.binary32_to_bid128("4", "[a67fc973]", "[afdfb58a90728f50fad0641e6b59243e]", "0x20")
+ self.binary32_to_bid128("0", "[a89779f8]", "[afe252ea5ece4f886750b1dac467a767]", "0x20")
+ self.binary32_to_bid128("1", "[a89779f8]", "[afe252ea5ece4f886750b1dac467a767]", "0x20")
+ self.binary32_to_bid128("2", "[a89779f8]", "[afe252ea5ece4f886750b1dac467a766]", "0x20")
+ self.binary32_to_bid128("3", "[a89779f8]", "[afe252ea5ece4f886750b1dac467a766]", "0x20")
+ self.binary32_to_bid128("4", "[a89779f8]", "[afe252ea5ece4f886750b1dac467a767]", "0x20")
+ self.binary32_to_bid128("0", "[a8faac3b]", "[afe28936bccd02430004a54c7785fd10]", "0x20")
+ self.binary32_to_bid128("1", "[a8faac3b]", "[afe28936bccd02430004a54c7785fd10]", "0x20")
+ self.binary32_to_bid128("2", "[a8faac3b]", "[afe28936bccd02430004a54c7785fd0f]", "0x20")
+ self.binary32_to_bid128("3", "[a8faac3b]", "[afe28936bccd02430004a54c7785fd0f]", "0x20")
+ self.binary32_to_bid128("4", "[a8faac3b]", "[afe28936bccd02430004a54c7785fd10]", "0x20")
+ self.binary32_to_bid128("0", "[ab7ad1c3]", "[afe5b7574cf508e51d1a8ada6fa64c20]", "0x20")
+ self.binary32_to_bid128("1", "[ab7ad1c3]", "[afe5b7574cf508e51d1a8ada6fa64c20]", "0x20")
+ self.binary32_to_bid128("2", "[ab7ad1c3]", "[afe5b7574cf508e51d1a8ada6fa64c1f]", "0x20")
+ self.binary32_to_bid128("3", "[ab7ad1c3]", "[afe5b7574cf508e51d1a8ada6fa64c1f]", "0x20")
+ self.binary32_to_bid128("4", "[ab7ad1c3]", "[afe5b7574cf508e51d1a8ada6fa64c20]", "0x20")
+ self.binary32_to_bid128("0", "[ac0cba4e]", "[afe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("1", "[ac0cba4e]", "[afe66299cd7edb9663bb330883b0ff29]", "0x20")
+ self.binary32_to_bid128("2", "[ac0cba4e]", "[afe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("3", "[ac0cba4e]", "[afe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("4", "[ac0cba4e]", "[afe66299cd7edb9663bb330883b0ff28]", "0x20")
+ self.binary32_to_bid128("0", "[adff7c0b]", "[afe88f343be6b5a156eb4cc8fbed25a2]", "0x20")
+ self.binary32_to_bid128("1", "[adff7c0b]", "[afe88f343be6b5a156eb4cc8fbed25a2]", "0x20")
+ self.binary32_to_bid128("2", "[adff7c0b]", "[afe88f343be6b5a156eb4cc8fbed25a1]", "0x20")
+ self.binary32_to_bid128("3", "[adff7c0b]", "[afe88f343be6b5a156eb4cc8fbed25a1]", "0x20")
+ self.binary32_to_bid128("4", "[adff7c0b]", "[afe88f343be6b5a156eb4cc8fbed25a2]", "0x20")
+ self.binary32_to_bid128("0", "[af5bd8cf]", "[afea62952ffa0aa59a69c61b97a95fd0]", "0x20")
+ self.binary32_to_bid128("1", "[af5bd8cf]", "[afea62952ffa0aa59a69c61b97a95fd0]", "0x20")
+ self.binary32_to_bid128("2", "[af5bd8cf]", "[afea62952ffa0aa59a69c61b97a95fcf]", "0x20")
+ self.binary32_to_bid128("3", "[af5bd8cf]", "[afea62952ffa0aa59a69c61b97a95fcf]", "0x20")
+ self.binary32_to_bid128("4", "[af5bd8cf]", "[afea62952ffa0aa59a69c61b97a95fd0]", "0x20")
+ self.binary32_to_bid128("0", "[af5be678]", "[afea629b5015f4447c93b378c4d2d622]", "0x20")
+ self.binary32_to_bid128("1", "[af5be678]", "[afea629b5015f4447c93b378c4d2d622]", "0x20")
+ self.binary32_to_bid128("2", "[af5be678]", "[afea629b5015f4447c93b378c4d2d621]", "0x20")
+ self.binary32_to_bid128("3", "[af5be678]", "[afea629b5015f4447c93b378c4d2d621]", "0x20")
+ self.binary32_to_bid128("4", "[af5be678]", "[afea629b5015f4447c93b378c4d2d622]", "0x20")
+ self.binary32_to_bid128("0", "[b1096eb0]", "[afec629a57201ead98c89ac5fec3349c]", "0x20")
+ self.binary32_to_bid128("1", "[b1096eb0]", "[afec629a57201ead98c89ac5fec3349d]", "0x20")
+ self.binary32_to_bid128("2", "[b1096eb0]", "[afec629a57201ead98c89ac5fec3349c]", "0x20")
+ self.binary32_to_bid128("3", "[b1096eb0]", "[afec629a57201ead98c89ac5fec3349c]", "0x20")
+ self.binary32_to_bid128("4", "[b1096eb0]", "[afec629a57201ead98c89ac5fec3349c]", "0x20")
+ self.binary32_to_bid128("0", "[b1fffe37]", "[afed6f54fc8ac08ebb77184d73c17001]", "0x20")
+ self.binary32_to_bid128("1", "[b1fffe37]", "[afed6f54fc8ac08ebb77184d73c17001]", "0x20")
+ self.binary32_to_bid128("2", "[b1fffe37]", "[afed6f54fc8ac08ebb77184d73c17000]", "0x20")
+ self.binary32_to_bid128("3", "[b1fffe37]", "[afed6f54fc8ac08ebb77184d73c17000]", "0x20")
+ self.binary32_to_bid128("4", "[b1fffe37]", "[afed6f54fc8ac08ebb77184d73c17001]", "0x20")
+ self.binary32_to_bid128("0", "[b47fffdf]", "[aff0758c989febd1ea42e9f500f81d7a]", "0x20")
+ self.binary32_to_bid128("1", "[b47fffdf]", "[aff0758c989febd1ea42e9f500f81d7a]", "0x20")
+ self.binary32_to_bid128("2", "[b47fffdf]", "[aff0758c989febd1ea42e9f500f81d79]", "0x20")
+ self.binary32_to_bid128("3", "[b47fffdf]", "[aff0758c989febd1ea42e9f500f81d79]", "0x20")
+ self.binary32_to_bid128("4", "[b47fffdf]", "[aff0758c989febd1ea42e9f500f81d7a]", "0x20")
+ self.binary32_to_bid128("0", "[b5ffffff]", "[aff25e0a1f746708a327637712441355]", "0x20")
+ self.binary32_to_bid128("1", "[b5ffffff]", "[aff25e0a1f746708a327637712441356]", "0x20")
+ self.binary32_to_bid128("2", "[b5ffffff]", "[aff25e0a1f746708a327637712441355]", "0x20")
+ self.binary32_to_bid128("3", "[b5ffffff]", "[aff25e0a1f746708a327637712441355]", "0x20")
+ self.binary32_to_bid128("4", "[b5ffffff]", "[aff25e0a1f746708a327637712441355]", "0x20")
+ self.binary32_to_bid128("0", "[b6ffffff]", "[aff378287dd19c228c9d8ddc49104d55]", "0x20")
+ self.binary32_to_bid128("1", "[b6ffffff]", "[aff378287dd19c228c9d8ddc49104d55]", "0x20")
+ self.binary32_to_bid128("2", "[b6ffffff]", "[aff378287dd19c228c9d8ddc49104d54]", "0x20")
+ self.binary32_to_bid128("3", "[b6ffffff]", "[aff378287dd19c228c9d8ddc49104d54]", "0x20")
+ self.binary32_to_bid128("4", "[b6ffffff]", "[aff378287dd19c228c9d8ddc49104d55]", "0x20")
+ self.binary32_to_bid128("0", "[b7a7c5ac]", "[aff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("1", "[b7a7c5ac]", "[aff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("2", "[b7a7c5ac]", "[aff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("3", "[b7a7c5ac]", "[aff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("4", "[b7a7c5ac]", "[aff609dc5ad654d289bd786db068fba7]", "0x00")
+ self.binary32_to_bid128("0", "[b9800000]", "[b028000000000000000000000e8d4a51]", "0x00")
+ self.binary32_to_bid128("1", "[b9800000]", "[b028000000000000000000000e8d4a51]", "0x00")
+ self.binary32_to_bid128("2", "[b9800000]", "[b028000000000000000000000e8d4a51]", "0x00")
+ self.binary32_to_bid128("3", "[b9800000]", "[b028000000000000000000000e8d4a51]", "0x00")
+ self.binary32_to_bid128("4", "[b9800000]", "[b028000000000000000000000e8d4a51]", "0x00")
+ self.binary32_to_bid128("0", "[bb000000]", "[b02e00000000000000000000001dcd65]", "0x00")
+ self.binary32_to_bid128("1", "[bb000000]", "[b02e00000000000000000000001dcd65]", "0x00")
+ self.binary32_to_bid128("2", "[bb000000]", "[b02e00000000000000000000001dcd65]", "0x00")
+ self.binary32_to_bid128("3", "[bb000000]", "[b02e00000000000000000000001dcd65]", "0x00")
+ self.binary32_to_bid128("4", "[bb000000]", "[b02e00000000000000000000001dcd65]", "0x00")
+ self.binary32_to_bid128("0", "[bb03126c]", "[b004000006765c58886cdaa7b0ed9753]", "0x00")
+ self.binary32_to_bid128("1", "[bb03126c]", "[b004000006765c58886cdaa7b0ed9753]", "0x00")
+ self.binary32_to_bid128("2", "[bb03126c]", "[b004000006765c58886cdaa7b0ed9753]", "0x00")
+ self.binary32_to_bid128("3", "[bb03126c]", "[b004000006765c58886cdaa7b0ed9753]", "0x00")
+ self.binary32_to_bid128("4", "[bb03126c]", "[b004000006765c58886cdaa7b0ed9753]", "0x00")
+ self.binary32_to_bid128("0", "[bca3d700]", "[b016000000000001158e34b02f6f6ec3]", "0x00")
+ self.binary32_to_bid128("1", "[bca3d700]", "[b016000000000001158e34b02f6f6ec3]", "0x00")
+ self.binary32_to_bid128("2", "[bca3d700]", "[b016000000000001158e34b02f6f6ec3]", "0x00")
+ self.binary32_to_bid128("3", "[bca3d700]", "[b016000000000001158e34b02f6f6ec3]", "0x00")
+ self.binary32_to_bid128("4", "[bca3d700]", "[b016000000000001158e34b02f6f6ec3]", "0x00")
+ self.binary32_to_bid128("0", "[bd500000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("1", "[bd500000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("2", "[bd500000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("3", "[bd500000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("4", "[bd500000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary32_to_bid128("0", "[bd800000]", "[b0380000000000000000000000000271]", "0x00")
+ self.binary32_to_bid128("1", "[bd800000]", "[b0380000000000000000000000000271]", "0x00")
+ self.binary32_to_bid128("2", "[bd800000]", "[b0380000000000000000000000000271]", "0x00")
+ self.binary32_to_bid128("3", "[bd800000]", "[b0380000000000000000000000000271]", "0x00")
+ self.binary32_to_bid128("4", "[bd800000]", "[b0380000000000000000000000000271]", "0x00")
+ self.binary32_to_bid128("0", "[bf800000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("1", "[bf800000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("2", "[bf800000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("3", "[bf800000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("4", "[bf800000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary32_to_bid128("0", "[bfc00000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("1", "[bfc00000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("2", "[bfc00000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("3", "[bfc00000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("4", "[bfc00000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary32_to_bid128("0", "[c0000000]", "[b0400000000000000000000000000002]", "0x00")
+ self.binary32_to_bid128("1", "[c0000000]", "[b0400000000000000000000000000002]", "0x00")
+ self.binary32_to_bid128("2", "[c0000000]", "[b0400000000000000000000000000002]", "0x00")
+ self.binary32_to_bid128("3", "[c0000000]", "[b0400000000000000000000000000002]", "0x00")
+ self.binary32_to_bid128("4", "[c0000000]", "[b0400000000000000000000000000002]", "0x00")
+ self.binary32_to_bid128("0", "[c1800000]", "[b0400000000000000000000000000010]", "0x00")
+ self.binary32_to_bid128("1", "[c1800000]", "[b0400000000000000000000000000010]", "0x00")
+ self.binary32_to_bid128("2", "[c1800000]", "[b0400000000000000000000000000010]", "0x00")
+ self.binary32_to_bid128("3", "[c1800000]", "[b0400000000000000000000000000010]", "0x00")
+ self.binary32_to_bid128("4", "[c1800000]", "[b0400000000000000000000000000010]", "0x00")
+ self.binary32_to_bid128("0", "[c2800000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("1", "[c2800000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("2", "[c2800000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("3", "[c2800000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("4", "[c2800000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary32_to_bid128("0", "[c347fffe]", "[b02200000000000002c68ae9a016b673]", "0x00")
+ self.binary32_to_bid128("1", "[c347fffe]", "[b02200000000000002c68ae9a016b673]", "0x00")
+ self.binary32_to_bid128("2", "[c347fffe]", "[b02200000000000002c68ae9a016b673]", "0x00")
+ self.binary32_to_bid128("3", "[c347fffe]", "[b02200000000000002c68ae9a016b673]", "0x00")
+ self.binary32_to_bid128("4", "[c347fffe]", "[b02200000000000002c68ae9a016b673]", "0x00")
+ self.binary32_to_bid128("0", "[c479c000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("1", "[c479c000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("2", "[c479c000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("3", "[c479c000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("4", "[c479c000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary32_to_bid128("0", "[c47a0000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("1", "[c47a0000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("2", "[c47a0000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("3", "[c47a0000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("4", "[c47a0000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary32_to_bid128("0", "[c5000000]", "[b0400000000000000000000000000800]", "0x00")
+ self.binary32_to_bid128("1", "[c5000000]", "[b0400000000000000000000000000800]", "0x00")
+ self.binary32_to_bid128("2", "[c5000000]", "[b0400000000000000000000000000800]", "0x00")
+ self.binary32_to_bid128("3", "[c5000000]", "[b0400000000000000000000000000800]", "0x00")
+ self.binary32_to_bid128("4", "[c5000000]", "[b0400000000000000000000000000800]", "0x00")
+ self.binary32_to_bid128("0", "[c6800000]", "[b0400000000000000000000000004000]", "0x00")
+ self.binary32_to_bid128("1", "[c6800000]", "[b0400000000000000000000000004000]", "0x00")
+ self.binary32_to_bid128("2", "[c6800000]", "[b0400000000000000000000000004000]", "0x00")
+ self.binary32_to_bid128("3", "[c6800000]", "[b0400000000000000000000000004000]", "0x00")
+ self.binary32_to_bid128("4", "[c6800000]", "[b0400000000000000000000000004000]", "0x00")
+ self.binary32_to_bid128("0", "[c69c3ffc]", "[b0320000000000000000002e90ec9ed3]", "0x00")
+ self.binary32_to_bid128("1", "[c69c3ffc]", "[b0320000000000000000002e90ec9ed3]", "0x00")
+ self.binary32_to_bid128("2", "[c69c3ffc]", "[b0320000000000000000002e90ec9ed3]", "0x00")
+ self.binary32_to_bid128("3", "[c69c3ffc]", "[b0320000000000000000002e90ec9ed3]", "0x00")
+ self.binary32_to_bid128("4", "[c69c3ffc]", "[b0320000000000000000002e90ec9ed3]", "0x00")
+ self.binary32_to_bid128("0", "[c8434ff0]", "[b03c0000000000000000000001312ce7]", "0x00")
+ self.binary32_to_bid128("1", "[c8434ff0]", "[b03c0000000000000000000001312ce7]", "0x00")
+ self.binary32_to_bid128("2", "[c8434ff0]", "[b03c0000000000000000000001312ce7]", "0x00")
+ self.binary32_to_bid128("3", "[c8434ff0]", "[b03c0000000000000000000001312ce7]", "0x00")
+ self.binary32_to_bid128("4", "[c8434ff0]", "[b03c0000000000000000000001312ce7]", "0x00")
+ self.binary32_to_bid128("0", "[c9000000]", "[b0400000000000000000000000080000]", "0x00")
+ self.binary32_to_bid128("1", "[c9000000]", "[b0400000000000000000000000080000]", "0x00")
+ self.binary32_to_bid128("2", "[c9000000]", "[b0400000000000000000000000080000]", "0x00")
+ self.binary32_to_bid128("3", "[c9000000]", "[b0400000000000000000000000080000]", "0x00")
+ self.binary32_to_bid128("4", "[c9000000]", "[b0400000000000000000000000080000]", "0x00")
+ self.binary32_to_bid128("0", "[cb800000]", "[b0400000000000000000000001000000]", "0x00")
+ self.binary32_to_bid128("1", "[cb800000]", "[b0400000000000000000000001000000]", "0x00")
+ self.binary32_to_bid128("2", "[cb800000]", "[b0400000000000000000000001000000]", "0x00")
+ self.binary32_to_bid128("3", "[cb800000]", "[b0400000000000000000000001000000]", "0x00")
+ self.binary32_to_bid128("4", "[cb800000]", "[b0400000000000000000000001000000]", "0x00")
+ self.binary32_to_bid128("0", "[cd000000]", "[b0400000000000000000000008000000]", "0x00")
+ self.binary32_to_bid128("1", "[cd000000]", "[b0400000000000000000000008000000]", "0x00")
+ self.binary32_to_bid128("2", "[cd000000]", "[b0400000000000000000000008000000]", "0x00")
+ self.binary32_to_bid128("3", "[cd000000]", "[b0400000000000000000000008000000]", "0x00")
+ self.binary32_to_bid128("4", "[cd000000]", "[b0400000000000000000000008000000]", "0x00")
+ self.binary32_to_bid128("0", "[ce000000]", "[b0400000000000000000000020000000]", "0x00")
+ self.binary32_to_bid128("1", "[ce000000]", "[b0400000000000000000000020000000]", "0x00")
+ self.binary32_to_bid128("2", "[ce000000]", "[b0400000000000000000000020000000]", "0x00")
+ self.binary32_to_bid128("3", "[ce000000]", "[b0400000000000000000000020000000]", "0x00")
+ self.binary32_to_bid128("4", "[ce000000]", "[b0400000000000000000000020000000]", "0x00")
+ self.binary32_to_bid128("0", "[ceee6b20]", "[b0400000000000000000000077359000]", "0x00")
+ self.binary32_to_bid128("1", "[ceee6b20]", "[b0400000000000000000000077359000]", "0x00")
+ self.binary32_to_bid128("2", "[ceee6b20]", "[b0400000000000000000000077359000]", "0x00")
+ self.binary32_to_bid128("3", "[ceee6b20]", "[b0400000000000000000000077359000]", "0x00")
+ self.binary32_to_bid128("4", "[ceee6b20]", "[b0400000000000000000000077359000]", "0x00")
+ self.binary32_to_bid128("0", "[ceee6b26]", "[b0400000000000000000000077359300]", "0x00")
+ self.binary32_to_bid128("1", "[ceee6b26]", "[b0400000000000000000000077359300]", "0x00")
+ self.binary32_to_bid128("2", "[ceee6b26]", "[b0400000000000000000000077359300]", "0x00")
+ self.binary32_to_bid128("3", "[ceee6b26]", "[b0400000000000000000000077359300]", "0x00")
+ self.binary32_to_bid128("4", "[ceee6b26]", "[b0400000000000000000000077359300]", "0x00")
+ self.binary32_to_bid128("0", "[d2000000]", "[b0400000000000000000002000000000]", "0x00")
+ self.binary32_to_bid128("1", "[d2000000]", "[b0400000000000000000002000000000]", "0x00")
+ self.binary32_to_bid128("2", "[d2000000]", "[b0400000000000000000002000000000]", "0x00")
+ self.binary32_to_bid128("3", "[d2000000]", "[b0400000000000000000002000000000]", "0x00")
+ self.binary32_to_bid128("4", "[d2000000]", "[b0400000000000000000002000000000]", "0x00")
+ self.binary32_to_bid128("0", "[d23a43b4]", "[b0400000000000000000002e90ed0000]", "0x00")
+ self.binary32_to_bid128("1", "[d23a43b4]", "[b0400000000000000000002e90ed0000]", "0x00")
+ self.binary32_to_bid128("2", "[d23a43b4]", "[b0400000000000000000002e90ed0000]", "0x00")
+ self.binary32_to_bid128("3", "[d23a43b4]", "[b0400000000000000000002e90ed0000]", "0x00")
+ self.binary32_to_bid128("4", "[d23a43b4]", "[b0400000000000000000002e90ed0000]", "0x00")
+ self.binary32_to_bid128("0", "[d4800000]", "[b0400000000000000000040000000000]", "0x00")
+ self.binary32_to_bid128("1", "[d4800000]", "[b0400000000000000000040000000000]", "0x00")
+ self.binary32_to_bid128("2", "[d4800000]", "[b0400000000000000000040000000000]", "0x00")
+ self.binary32_to_bid128("3", "[d4800000]", "[b0400000000000000000040000000000]", "0x00")
+ self.binary32_to_bid128("4", "[d4800000]", "[b0400000000000000000040000000000]", "0x00")
+ self.binary32_to_bid128("0", "[d59184e7]", "[b040000000000000000012309ce00000]", "0x00")
+ self.binary32_to_bid128("1", "[d59184e7]", "[b040000000000000000012309ce00000]", "0x00")
+ self.binary32_to_bid128("2", "[d59184e7]", "[b040000000000000000012309ce00000]", "0x00")
+ self.binary32_to_bid128("3", "[d59184e7]", "[b040000000000000000012309ce00000]", "0x00")
+ self.binary32_to_bid128("4", "[d59184e7]", "[b040000000000000000012309ce00000]", "0x00")
+ self.binary32_to_bid128("0", "[d7000000]", "[b0400000000000000000800000000000]", "0x00")
+ self.binary32_to_bid128("1", "[d7000000]", "[b0400000000000000000800000000000]", "0x00")
+ self.binary32_to_bid128("2", "[d7000000]", "[b0400000000000000000800000000000]", "0x00")
+ self.binary32_to_bid128("3", "[d7000000]", "[b0400000000000000000800000000000]", "0x00")
+ self.binary32_to_bid128("4", "[d7000000]", "[b0400000000000000000800000000000]", "0x00")
+ self.binary32_to_bid128("0", "[d8800000]", "[b0400000000000000004000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[d8800000]", "[b0400000000000000004000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[d8800000]", "[b0400000000000000004000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[d8800000]", "[b0400000000000000004000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[d8800000]", "[b0400000000000000004000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[d9800000]", "[b0400000000000000010000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[d9800000]", "[b0400000000000000010000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[d9800000]", "[b0400000000000000010000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[d9800000]", "[b0400000000000000010000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[d9800000]", "[b0400000000000000010000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[da8e1bc8]", "[b04000000000000000470de400000000]", "0x00")
+ self.binary32_to_bid128("1", "[da8e1bc8]", "[b04000000000000000470de400000000]", "0x00")
+ self.binary32_to_bid128("2", "[da8e1bc8]", "[b04000000000000000470de400000000]", "0x00")
+ self.binary32_to_bid128("3", "[da8e1bc8]", "[b04000000000000000470de400000000]", "0x00")
+ self.binary32_to_bid128("4", "[da8e1bc8]", "[b04000000000000000470de400000000]", "0x00")
+ self.binary32_to_bid128("0", "[db000000]", "[b0400000000000000080000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[db000000]", "[b0400000000000000080000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[db000000]", "[b0400000000000000080000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[db000000]", "[b0400000000000000080000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[db000000]", "[b0400000000000000080000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[dd800000]", "[b0400000000000001000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[dd800000]", "[b0400000000000001000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[dd800000]", "[b0400000000000001000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[dd800000]", "[b0400000000000001000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[dd800000]", "[b0400000000000001000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[ddde0b68]", "[b0400000000000001bc16d0000000000]", "0x00")
+ self.binary32_to_bid128("1", "[ddde0b68]", "[b0400000000000001bc16d0000000000]", "0x00")
+ self.binary32_to_bid128("2", "[ddde0b68]", "[b0400000000000001bc16d0000000000]", "0x00")
+ self.binary32_to_bid128("3", "[ddde0b68]", "[b0400000000000001bc16d0000000000]", "0x00")
+ self.binary32_to_bid128("4", "[ddde0b68]", "[b0400000000000001bc16d0000000000]", "0x00")
+ self.binary32_to_bid128("0", "[e0000000]", "[b0400000000000020000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[e0000000]", "[b0400000000000020000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[e0000000]", "[b0400000000000020000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[e0000000]", "[b0400000000000020000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[e0000000]", "[b0400000000000020000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[e12d78eb]", "[b04000000000000ad78eb00000000000]", "0x00")
+ self.binary32_to_bid128("1", "[e12d78eb]", "[b04000000000000ad78eb00000000000]", "0x00")
+ self.binary32_to_bid128("2", "[e12d78eb]", "[b04000000000000ad78eb00000000000]", "0x00")
+ self.binary32_to_bid128("3", "[e12d78eb]", "[b04000000000000ad78eb00000000000]", "0x00")
+ self.binary32_to_bid128("4", "[e12d78eb]", "[b04000000000000ad78eb00000000000]", "0x00")
+ self.binary32_to_bid128("0", "[e2800000]", "[b0400000000000400000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[e2800000]", "[b0400000000000400000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[e2800000]", "[b0400000000000400000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[e2800000]", "[b0400000000000400000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[e2800000]", "[b0400000000000400000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[e2d8d720]", "[b04000000000006c6b90000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[e2d8d720]", "[b04000000000006c6b90000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[e2d8d720]", "[b04000000000006c6b90000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[e2d8d720]", "[b04000000000006c6b90000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[e2d8d720]", "[b04000000000006c6b90000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[e4000000]", "[b0400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[e4000000]", "[b0400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[e4000000]", "[b0400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[e4000000]", "[b0400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[e4000000]", "[b0400000000002000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[e6296810]", "[b040000000002a5a0400000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[e6296810]", "[b040000000002a5a0400000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[e6296810]", "[b040000000002a5a0400000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[e6296810]", "[b040000000002a5a0400000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[e6296810]", "[b040000000002a5a0400000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[e6800000]", "[b0400000000040000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[e6800000]", "[b0400000000040000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[e6800000]", "[b0400000000040000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[e6800000]", "[b0400000000040000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[e6800000]", "[b0400000000040000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[e9000000]", "[b0400000000800000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[e9000000]", "[b0400000000800000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[e9000000]", "[b0400000000800000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[e9000000]", "[b0400000000800000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[e9000000]", "[b0400000000800000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[e9845950]", "[b040000000108b2a0000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[e9845950]", "[b040000000108b2a0000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[e9845950]", "[b040000000108b2a0000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[e9845950]", "[b040000000108b2a0000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[e9845950]", "[b040000000108b2a0000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[eb800000]", "[b0400000010000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[eb800000]", "[b0400000010000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[eb800000]", "[b0400000010000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[eb800000]", "[b0400000010000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[eb800000]", "[b0400000010000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[eccecb88]", "[b040000006765c400000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[eccecb88]", "[b040000006765c400000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[eccecb88]", "[b040000006765c400000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[eccecb88]", "[b040000006765c400000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[eccecb88]", "[b040000006765c400000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[eccecb8f]", "[b040000006765c780000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[eccecb8f]", "[b040000006765c780000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[eccecb8f]", "[b040000006765c780000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[eccecb8f]", "[b040000006765c780000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[eccecb8f]", "[b040000006765c780000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[ee813f30]", "[b0400000409f98000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[ee813f30]", "[b0400000409f98000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[ee813f30]", "[b0400000409f98000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[ee813f30]", "[b0400000409f98000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[ee813f30]", "[b0400000409f98000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[ef800000]", "[b0400001000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[ef800000]", "[b0400001000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[ef800000]", "[b0400001000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[ef800000]", "[b0400001000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[ef800000]", "[b0400001000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[f1c9f2c8]", "[b04000193e5900000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[f1c9f2c8]", "[b04000193e5900000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[f1c9f2c8]", "[b04000193e5900000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[f1c9f2c8]", "[b04000193e5900000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[f1c9f2c8]", "[b04000193e5900000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[f2000000]", "[b0400020000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[f2000000]", "[b0400020000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[f2000000]", "[b0400020000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[f2000000]", "[b0400020000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[f2000000]", "[b0400020000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[f4800000]", "[b0400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[f4800000]", "[b0400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[f4800000]", "[b0400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[f4800000]", "[b0400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[f4800000]", "[b0400400000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[f51dc5ac]", "[b04009dc5ac000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[f51dc5ac]", "[b04009dc5ac000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[f51dc5ac]", "[b04009dc5ac000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[f51dc5ac]", "[b04009dc5ac000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[f51dc5ac]", "[b04009dc5ac000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[f7000000]", "[b0408000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[f7000000]", "[b0408000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[f7000000]", "[b0408000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[f7000000]", "[b0408000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[f7000000]", "[b0408000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[f87684d8]", "[b042629b89999999999999999999999a]", "0x20")
+ self.binary32_to_bid128("1", "[f87684d8]", "[b042629b89999999999999999999999a]", "0x20")
+ self.binary32_to_bid128("2", "[f87684d8]", "[b042629b899999999999999999999999]", "0x20")
+ self.binary32_to_bid128("3", "[f87684d8]", "[b042629b899999999999999999999999]", "0x20")
+ self.binary32_to_bid128("4", "[f87684d8]", "[b042629b89999999999999999999999a]", "0x20")
+ self.binary32_to_bid128("0", "[f87684df]", "[b042629b8c6666666666666666666666]", "0x20")
+ self.binary32_to_bid128("1", "[f87684df]", "[b042629b8c6666666666666666666667]", "0x20")
+ self.binary32_to_bid128("2", "[f87684df]", "[b042629b8c6666666666666666666666]", "0x20")
+ self.binary32_to_bid128("3", "[f87684df]", "[b042629b8c6666666666666666666666]", "0x20")
+ self.binary32_to_bid128("4", "[f87684df]", "[b042629b8c6666666666666666666666]", "0x20")
+ self.binary32_to_bid128("0", "[fa1a12f0]", "[b044629b7ae147ae147ae147ae147ae1]", "0x20")
+ self.binary32_to_bid128("1", "[fa1a12f0]", "[b044629b7ae147ae147ae147ae147ae2]", "0x20")
+ self.binary32_to_bid128("2", "[fa1a12f0]", "[b044629b7ae147ae147ae147ae147ae1]", "0x20")
+ self.binary32_to_bid128("3", "[fa1a12f0]", "[b044629b7ae147ae147ae147ae147ae1]", "0x20")
+ self.binary32_to_bid128("4", "[fa1a12f0]", "[b044629b7ae147ae147ae147ae147ae1]", "0x20")
+ self.binary32_to_bid128("0", "[faffffed]", "[b04547adfc28f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("1", "[faffffed]", "[b04547adfc28f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("2", "[faffffed]", "[b04547adfc28f5c28f5c28f5c28f5c28]", "0x20")
+ self.binary32_to_bid128("3", "[faffffed]", "[b04547adfc28f5c28f5c28f5c28f5c28]", "0x20")
+ self.binary32_to_bid128("4", "[faffffed]", "[b04547adfc28f5c28f5c28f5c28f5c29]", "0x20")
+ self.binary32_to_bid128("0", "[fd7ffda1]", "[b04868da930be0ded288ce703afb7e91]", "0x20")
+ self.binary32_to_bid128("1", "[fd7ffda1]", "[b04868da930be0ded288ce703afb7e91]", "0x20")
+ self.binary32_to_bid128("2", "[fd7ffda1]", "[b04868da930be0ded288ce703afb7e90]", "0x20")
+ self.binary32_to_bid128("3", "[fd7ffda1]", "[b04868da930be0ded288ce703afb7e90]", "0x20")
+ self.binary32_to_bid128("4", "[fd7ffda1]", "[b04868da930be0ded288ce703afb7e91]", "0x20")
+ self.binary32_to_bid128("0", "[feffff26]", "[b04a53e28eb463497b7414a4d2b2bfdb]", "0x20")
+ self.binary32_to_bid128("1", "[feffff26]", "[b04a53e28eb463497b7414a4d2b2bfdc]", "0x20")
+ self.binary32_to_bid128("2", "[feffff26]", "[b04a53e28eb463497b7414a4d2b2bfdb]", "0x20")
+ self.binary32_to_bid128("3", "[feffff26]", "[b04a53e28eb463497b7414a4d2b2bfdb]", "0x20")
+ self.binary32_to_bid128("4", "[feffff26]", "[b04a53e28eb463497b7414a4d2b2bfdb]", "0x20")
+ self.binary32_to_bid128("0", "[ff7fffff]", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("1", "[ff7fffff]", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "0x20")
+ self.binary32_to_bid128("2", "[ff7fffff]", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("3", "[ff7fffff]", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("4", "[ff7fffff]", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "0x20")
+ self.binary32_to_bid128("0", "[ff800000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("1", "[ff800000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("2", "[ff800000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("3", "[ff800000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("4", "[ff800000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary32_to_bid128("0", "[77f684e0]", "[3042314dc66666666666666666666666]", "20")
+ self.binary32_to_bid128("1", "[77f684e0]", "[3042314dc66666666666666666666666]", "20")
+ self.binary32_to_bid128("2", "[77f684e0]", "[3042314dc66666666666666666666667]", "20")
+ self.binary32_to_bid128("3", "[77f684e0]", "[3042314dc66666666666666666666666]", "20")
+ self.binary32_to_bid128("4", "[77f684e0]", "[3042314dc66666666666666666666666]", "20")
+ self.binary32_to_bid128("4", "[7f800001]", "[7c000000010000000000000000000000]", "01")
+ self.binary32_to_bid128("0", "[F9830A36]", "-8.504974886060933828949556787675136e+34", "00")
+ self.binary32_to_bid128("1", "[F9830A36]", "-8.504974886060933828949556787675136e+34", "00")
+ self.binary32_to_bid128("2", "[F9830A36]", "-8.504974886060933828949556787675136e+34", "00")
+ self.binary32_to_bid128("3", "[F9830A36]", "-8.504974886060933828949556787675136e+34", "00")
+ self.binary32_to_bid128("4", "[F9830A36]", "-8.504974886060933828949556787675136e+34", "00")
+ self.binary32_to_bid128("0", "[F996D4DF]", "-9.789525843705487241959182836957184e+34", "00")
+ self.binary32_to_bid128("1", "[F996D4DF]", "-9.789525843705487241959182836957184e+34", "00")
+ self.binary32_to_bid128("2", "[F996D4DF]", "-9.789525843705487241959182836957184e+34", "00")
+ self.binary32_to_bid128("3", "[F996D4DF]", "-9.789525843705487241959182836957184e+34", "00")
+ self.binary32_to_bid128("4", "[F996D4DF]", "-9.789525843705487241959182836957184e+34", "00")
+ self.binary32_to_bid128("0", "[F988BCDD]", "-8.874787189876734049230721965359104e+34", "00")
+ self.binary32_to_bid128("1", "[F988BCDD]", "-8.874787189876734049230721965359104e+34", "00")
+ self.binary32_to_bid128("2", "[F988BCDD]", "-8.874787189876734049230721965359104e+34", "00")
+ self.binary32_to_bid128("3", "[F988BCDD]", "-8.874787189876734049230721965359104e+34", "00")
+ self.binary32_to_bid128("4", "[F988BCDD]", "-8.874787189876734049230721965359104e+34", "00")
+ self.binary32_to_bid128("0", "[F99758CE]", "-9.822974983566978216986957173489664e+34", "00")
+ self.binary32_to_bid128("1", "[F99758CE]", "-9.822974983566978216986957173489664e+34", "00")
+ self.binary32_to_bid128("2", "[F99758CE]", "-9.822974983566978216986957173489664e+34", "00")
+ self.binary32_to_bid128("3", "[F99758CE]", "-9.822974983566978216986957173489664e+34", "00")
+ self.binary32_to_bid128("4", "[F99758CE]", "-9.822974983566978216986957173489664e+34", "00")
+ }
+
+ private func binary32_to_bid128(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseFloat(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_binary64_to_bid32() {
+ self.binary64_to_bid32("0", "[0000000000000000]", "[32800000]", "00")
+ self.binary64_to_bid32("0", "[0000000000000000]", "[32800000]", "0x00")
+ self.binary64_to_bid32("0", "[0000000000000001]", "[00000000]", "0x32")
+ self.binary64_to_bid32("0", "[0000000000000001]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0000000000000010]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0000000000000100]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0000000000001000]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0000000000010000]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0000000000100000]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0000000001000000]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0000000010000000]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0000000100000000]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0000001000000000]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0000010000000000]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0000100000000000]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0001000000000000]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0008000000000000]", "[00000000]", "32")
+ self.binary64_to_bid32("0", "[0010000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("0", "[0010000000000000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0020000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("0", "[0100000000000001]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0100000000000010]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0100000000000100]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0100000000001000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0100000000010000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0100000000100000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0100000001000000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0100000010000000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0100000100000000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0100001000000000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0100010000000000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0100100000000000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0101000000000000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[0108000000000000]", "[00000000]", "30")
+ self.binary64_to_bid32("0", "[2acca6265e280b91]", "[00000000]", "0x30")
+ self.binary64_to_bid32("0", "[2af665bf1d3e6a8c]", "[00000001]", "0x30")
+ self.binary64_to_bid32("0", "[2af665bf1d3e6a8d]", "[00000001]", "0x30")
+ self.binary64_to_bid32("0", "[2C355C1F1063A881]", "[000F423F]", "30")
+ self.binary64_to_bid32("0", "[2C355C1FC391A16C]", "[000F4240]", "30")
+ self.binary64_to_bid32("0", "[2c355c2076bf9a55]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("0", "[2c355c2076bf9a56]", "[000f4240]", "0x20")
+ self.binary64_to_bid32("0", "[2C355C2076BF9A56]", "[000F4240]", "20")
+ self.binary64_to_bid32("0", "[2c6ab328946f80ea]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("0", "[2c6ab328946f80eb]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("0", "[2ca800ade999cd1d]", "[0115f2a2]", "0x20")
+ self.binary64_to_bid32("0", "[2e41358930c57d3d]", "[04e999fc]", "0x20")
+ self.binary64_to_bid32("0", "[2fc8ccc1c49d0488]", "[0899881e]", "0x20")
+ self.binary64_to_bid32("0", "[317554481d3c8d0c]", "[0c9d78f2]", "0x20")
+ self.binary64_to_bid32("0", "[330ca1add6668c80]", "[6404c01d]", "0x20")
+ self.binary64_to_bid32("0", "[34c00e7db3b3f242]", "[1493fbee]", "0x20")
+ self.binary64_to_bid32("0", "[366b39ab78718832]", "[1896bd57]", "0x20")
+ self.binary64_to_bid32("0", "[3814c17116f185ba]", "[1c974493]", "0x20")
+ self.binary64_to_bid32("0", "[399018d081aee1d8]", "[201e4664]", "0x20")
+ self.binary64_to_bid32("0", "[3b5f6d9abbdd1d83]", "[248fddfe]", "0x20")
+ self.binary64_to_bid32("0", "[3cd0bf1a651525e8]", "[69edd92d]", "0x20")
+ self.binary64_to_bid32("0", "[3e8234d0a4da54d0]", "[2c14b2bc]", "0x20")
+ self.binary64_to_bid32("0", "[3faa000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary64_to_bid32("0", "[3FE0000000000000]", "[32000005]", "00")
+ self.binary64_to_bid32("0", "[3ff0000000000000]", "[32800001]", "0x00")
+ self.binary64_to_bid32("0", "[3ff8000000000000]", "[3200000f]", "0x00")
+ self.binary64_to_bid32("0", "[4000000000000000]", "[32800002]", "00")
+ self.binary64_to_bid32("0", "[4033ff532e7b3d8e]", "[301e8378]", "0x20")
+ self.binary64_to_bid32("0", "[4050000000000000]", "[32800040]", "0x00")
+ self.binary64_to_bid32("0", "[408f380000000000]", "[328003e7]", "0x00")
+ self.binary64_to_bid32("0", "[408f400000000000]", "[328003e8]", "0x00")
+ self.binary64_to_bid32("0", "[41ddcd64fffffffe]", "[341e8480]", "0x20")
+ self.binary64_to_bid32("0", "[438fffff722808bf]", "[382bfaff]", "0x20")
+ self.binary64_to_bid32("0", "[452ff7bc624b21a6]", "[3c1d7c2a]", "0x20")
+ self.binary64_to_bid32("0", "[46cd421397011886]", "[40121c22]", "0x20")
+ self.binary64_to_bid32("0", "[484c06bd4aa70ac8]", "[439d1aad]", "0x20")
+ self.binary64_to_bid32("0", "[49ee0c673bdac478]", "[4794f0d3]", "0x20")
+ self.binary64_to_bid32("0", "[4b9132d7a6739620]", "[4b90163f]", "0x20")
+ self.binary64_to_bid32("0", "[4d2d7fd879482fe8]", "[4f5c95da]", "0x20")
+ self.binary64_to_bid32("0", "[4ef245a195e25a05]", "[539ec9cb]", "0x20")
+ self.binary64_to_bid32("0", "[50288bb4313ed680]", "[5695af2c]", "0x20")
+ self.binary64_to_bid32("0", "[52382b7798b1f23d]", "[5b925764]", "0x20")
+ self.binary64_to_bid32("0", "[5412ba093e5c6114]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("0", "[5412ba093e5c6115]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("0", "[5412ba095dc7701d]", "[78000000]", "0x28")
+ self.binary64_to_bid32("0", "[5412ba095dc7701e]", "[78000000]", "0x28")
+ self.binary64_to_bid32("0", "[7fefffffffffffff]", "[78000000]", "0x28")
+ self.binary64_to_bid32("0", "[7fefffffffffffff]", "[78000000]", "28")
+ self.binary64_to_bid32("0", "[7ff0000000000000]", "[78000000]", "00")
+ self.binary64_to_bid32("0", "[7ff0000000000000]", "[78000000]", "0x00")
+ self.binary64_to_bid32("0", "[7ff8000000000001]", "[7C000000]", "00")
+ self.binary64_to_bid32("0", "[7ffc000000000000]", "[7C080000]", "00")
+ self.binary64_to_bid32("0", "[7fffA11F80000000]", "[7C0F423F]", "00")
+ self.binary64_to_bid32("0", "[7fffA12000000000]", "[7C000000]", "00")
+ self.binary64_to_bid32("0", "[7fffffffffffffff]", "[7C000000]", "00")
+ self.binary64_to_bid32("0", "[8000000000000000]", "[B2800000]", "00")
+ self.binary64_to_bid32("0", "[8000000000000001]", "[80000000]", "0x32")
+ self.binary64_to_bid32("0", "[8010000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("0", "[8020000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("0", "[aacca6265e280b91]", "[80000000]", "0x30")
+ self.binary64_to_bid32("0", "[aaf665bf1d3e6a8c]", "[80000001]", "0x30")
+ self.binary64_to_bid32("0", "[aaf665bf1d3e6a8d]", "[80000001]", "0x30")
+ self.binary64_to_bid32("0", "[ac355c2076bf9a55]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("0", "[ac355c2076bf9a56]", "[800f4240]", "0x20")
+ self.binary64_to_bid32("0", "[ac6ab328946f80ea]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("0", "[ac6ab328946f80eb]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("0", "[aca800ade999cd1d]", "[8115f2a2]", "0x20")
+ self.binary64_to_bid32("0", "[ae41358930c57d3d]", "[84e999fc]", "0x20")
+ self.binary64_to_bid32("0", "[afc8ccc1c49d0488]", "[8899881e]", "0x20")
+ self.binary64_to_bid32("0", "[b17554481d3c8d0c]", "[8c9d78f2]", "0x20")
+ self.binary64_to_bid32("0", "[b30ca1add6668c80]", "[e404c01d]", "0x20")
+ self.binary64_to_bid32("0", "[b4c00e7db3b3f242]", "[9493fbee]", "0x20")
+ self.binary64_to_bid32("0", "[b66b39ab78718832]", "[9896bd57]", "0x20")
+ self.binary64_to_bid32("0", "[b814c17116f185ba]", "[9c974493]", "0x20")
+ self.binary64_to_bid32("0", "[b99018d081aee1d8]", "[a01e4664]", "0x20")
+ self.binary64_to_bid32("0", "[bb5f6d9abbdd1d83]", "[a48fddfe]", "0x20")
+ self.binary64_to_bid32("0", "[bcd0bf1a651525e8]", "[e9edd92d]", "0x20")
+ self.binary64_to_bid32("0", "[be8234d0a4da54d0]", "[ac14b2bc]", "0x20")
+ self.binary64_to_bid32("0", "[bfaa000000000000]", "[aecd7c6d]", "0x00")
+ self.binary64_to_bid32("0", "[bff0000000000000]", "[b2800001]", "0x00")
+ self.binary64_to_bid32("0", "[bff8000000000000]", "[b200000f]", "0x00")
+ self.binary64_to_bid32("0", "[c033ff532e7b3d8e]", "[b01e8378]", "0x20")
+ self.binary64_to_bid32("0", "[c050000000000000]", "[b2800040]", "0x00")
+ self.binary64_to_bid32("0", "[c08f380000000000]", "[b28003e7]", "0x00")
+ self.binary64_to_bid32("0", "[c08f400000000000]", "[b28003e8]", "0x00")
+ self.binary64_to_bid32("0", "[c1ddcd64fffffffe]", "[b41e8480]", "0x20")
+ self.binary64_to_bid32("0", "[c38fffff722808bf]", "[b82bfaff]", "0x20")
+ self.binary64_to_bid32("0", "[c52ff7bc624b21a6]", "[bc1d7c2a]", "0x20")
+ self.binary64_to_bid32("0", "[c6cd421397011886]", "[c0121c22]", "0x20")
+ self.binary64_to_bid32("0", "[c84c06bd4aa70ac8]", "[c39d1aad]", "0x20")
+ self.binary64_to_bid32("0", "[c9ee0c673bdac478]", "[c794f0d3]", "0x20")
+ self.binary64_to_bid32("0", "[cb9132d7a6739620]", "[cb90163f]", "0x20")
+ self.binary64_to_bid32("0", "[cd2d7fd879482fe8]", "[cf5c95da]", "0x20")
+ self.binary64_to_bid32("0", "[cef245a195e25a05]", "[d39ec9cb]", "0x20")
+ self.binary64_to_bid32("0", "[d0288bb4313ed680]", "[d695af2c]", "0x20")
+ self.binary64_to_bid32("0", "[d2382b7798b1f23d]", "[db925764]", "0x20")
+ self.binary64_to_bid32("0", "[d412ba093e5c6114]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("0", "[d412ba093e5c6115]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("0", "[d412ba095dc7701d]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("0", "[d412ba095dc7701e]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("0", "[ffefffffffffffff]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("0", "[fff0000000000000]", "[f8000000]", "00")
+ self.binary64_to_bid32("0", "[fff0000000000000]", "[f8000000]", "0x00")
+ self.binary64_to_bid32("1", "[0000000000000000]", "[32800000]", "0x00")
+ self.binary64_to_bid32("1", "[0000000000000001]", "[00000000]", "0x32")
+ self.binary64_to_bid32("1", "[0010000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("1", "[0020000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("1", "[2acca6265e280b91]", "[00000000]", "0x30")
+ self.binary64_to_bid32("1", "[2af665bf1d3e6a8c]", "[00000000]", "0x30")
+ self.binary64_to_bid32("1", "[2af665bf1d3e6a8d]", "[00000001]", "0x30")
+ self.binary64_to_bid32("1", "[2c355c2076bf9a55]", "[000f423f]", "0x30")
+ self.binary64_to_bid32("1", "[2c355c2076bf9a56]", "[000f4240]", "0x20")
+ self.binary64_to_bid32("1", "[2c6ab328946f80ea]", "[6018967f]", "0x20")
+ self.binary64_to_bid32("1", "[2c6ab328946f80eb]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("1", "[2ca800ade999cd1d]", "[0115f2a2]", "0x20")
+ self.binary64_to_bid32("1", "[2e41358930c57d3d]", "[04e999fb]", "0x20")
+ self.binary64_to_bid32("1", "[2fc8ccc1c49d0488]", "[0899881e]", "0x20")
+ self.binary64_to_bid32("1", "[317554481d3c8d0c]", "[0c9d78f2]", "0x20")
+ self.binary64_to_bid32("1", "[330ca1add6668c80]", "[6404c01d]", "0x20")
+ self.binary64_to_bid32("1", "[34c00e7db3b3f242]", "[1493fbee]", "0x20")
+ self.binary64_to_bid32("1", "[366b39ab78718832]", "[1896bd57]", "0x20")
+ self.binary64_to_bid32("1", "[3814c17116f185ba]", "[1c974492]", "0x20")
+ self.binary64_to_bid32("1", "[399018d081aee1d8]", "[201e4663]", "0x20")
+ self.binary64_to_bid32("1", "[3b5f6d9abbdd1d83]", "[248fddfd]", "0x20")
+ self.binary64_to_bid32("1", "[3cd0bf1a651525e8]", "[69edd92d]", "0x20")
+ self.binary64_to_bid32("1", "[3e8234d0a4da54d0]", "[2c14b2bb]", "0x20")
+ self.binary64_to_bid32("1", "[3faa000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary64_to_bid32("1", "[3ff0000000000000]", "[32800001]", "0x00")
+ self.binary64_to_bid32("1", "[3ff8000000000000]", "[3200000f]", "0x00")
+ self.binary64_to_bid32("1", "[4033ff532e7b3d8e]", "[301e8378]", "0x20")
+ self.binary64_to_bid32("1", "[4050000000000000]", "[32800040]", "0x00")
+ self.binary64_to_bid32("1", "[408f380000000000]", "[328003e7]", "0x00")
+ self.binary64_to_bid32("1", "[408f400000000000]", "[328003e8]", "0x00")
+ self.binary64_to_bid32("1", "[41ddcd64fffffffe]", "[341e847f]", "0x20")
+ self.binary64_to_bid32("1", "[438fffff722808bf]", "[382bfafe]", "0x20")
+ self.binary64_to_bid32("1", "[452ff7bc624b21a6]", "[3c1d7c29]", "0x20")
+ self.binary64_to_bid32("1", "[46cd421397011886]", "[40121c21]", "0x20")
+ self.binary64_to_bid32("1", "[484c06bd4aa70ac8]", "[439d1aac]", "0x20")
+ self.binary64_to_bid32("1", "[49ee0c673bdac478]", "[4794f0d2]", "0x20")
+ self.binary64_to_bid32("1", "[4b9132d7a6739620]", "[4b90163f]", "0x20")
+ self.binary64_to_bid32("1", "[4d2d7fd879482fe8]", "[4f5c95d9]", "0x20")
+ self.binary64_to_bid32("1", "[4ef245a195e25a05]", "[539ec9cb]", "0x20")
+ self.binary64_to_bid32("1", "[50288bb4313ed680]", "[5695af2b]", "0x20")
+ self.binary64_to_bid32("1", "[52382b7798b1f23d]", "[5b925764]", "0x20")
+ self.binary64_to_bid32("1", "[5412ba093e5c6114]", "[77f8967e]", "0x20")
+ self.binary64_to_bid32("1", "[5412ba093e5c6115]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("1", "[5412ba095dc7701d]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("1", "[5412ba095dc7701e]", "[77f8967f]", "0x28")
+ self.binary64_to_bid32("1", "[7fefffffffffffff]", "[77f8967f]", "0x28")
+ self.binary64_to_bid32("1", "[7ff0000000000000]", "[78000000]", "0x00")
+ self.binary64_to_bid32("1", "[8000000000000001]", "[80000001]", "0x32")
+ self.binary64_to_bid32("1", "[8010000000000000]", "[80000001]", "0x30")
+ self.binary64_to_bid32("1", "[8020000000000000]", "[80000001]", "0x30")
+ self.binary64_to_bid32("1", "[aacca6265e280b91]", "[80000001]", "0x30")
+ self.binary64_to_bid32("1", "[aaf665bf1d3e6a8c]", "[80000001]", "0x30")
+ self.binary64_to_bid32("1", "[aaf665bf1d3e6a8d]", "[80000002]", "0x30")
+ self.binary64_to_bid32("1", "[ac355c2076bf9a55]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("1", "[ac355c2076bf9a56]", "[800f4241]", "0x20")
+ self.binary64_to_bid32("1", "[ac6ab328946f80ea]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("1", "[ac6ab328946f80eb]", "[808f4241]", "0x20")
+ self.binary64_to_bid32("1", "[aca800ade999cd1d]", "[8115f2a3]", "0x20")
+ self.binary64_to_bid32("1", "[ae41358930c57d3d]", "[84e999fc]", "0x20")
+ self.binary64_to_bid32("1", "[afc8ccc1c49d0488]", "[8899881f]", "0x20")
+ self.binary64_to_bid32("1", "[b17554481d3c8d0c]", "[8c9d78f3]", "0x20")
+ self.binary64_to_bid32("1", "[b30ca1add6668c80]", "[e404c01e]", "0x20")
+ self.binary64_to_bid32("1", "[b4c00e7db3b3f242]", "[9493fbef]", "0x20")
+ self.binary64_to_bid32("1", "[b66b39ab78718832]", "[9896bd58]", "0x20")
+ self.binary64_to_bid32("1", "[b814c17116f185ba]", "[9c974493]", "0x20")
+ self.binary64_to_bid32("1", "[b99018d081aee1d8]", "[a01e4664]", "0x20")
+ self.binary64_to_bid32("1", "[bb5f6d9abbdd1d83]", "[a48fddfe]", "0x20")
+ self.binary64_to_bid32("1", "[bcd0bf1a651525e8]", "[e9edd92e]", "0x20")
+ self.binary64_to_bid32("1", "[be8234d0a4da54d0]", "[ac14b2bc]", "0x20")
+ self.binary64_to_bid32("1", "[bfaa000000000000]", "[aecd7c6d]", "0x00")
+ self.binary64_to_bid32("1", "[bff0000000000000]", "[b2800001]", "0x00")
+ self.binary64_to_bid32("1", "[bff8000000000000]", "[b200000f]", "0x00")
+ self.binary64_to_bid32("1", "[c033ff532e7b3d8e]", "[b01e8379]", "0x20")
+ self.binary64_to_bid32("1", "[c050000000000000]", "[b2800040]", "0x00")
+ self.binary64_to_bid32("1", "[c08f380000000000]", "[b28003e7]", "0x00")
+ self.binary64_to_bid32("1", "[c08f400000000000]", "[b28003e8]", "0x00")
+ self.binary64_to_bid32("1", "[c1ddcd64fffffffe]", "[b41e8480]", "0x20")
+ self.binary64_to_bid32("1", "[c38fffff722808bf]", "[b82bfaff]", "0x20")
+ self.binary64_to_bid32("1", "[c52ff7bc624b21a6]", "[bc1d7c2a]", "0x20")
+ self.binary64_to_bid32("1", "[c6cd421397011886]", "[c0121c22]", "0x20")
+ self.binary64_to_bid32("1", "[c84c06bd4aa70ac8]", "[c39d1aad]", "0x20")
+ self.binary64_to_bid32("1", "[c9ee0c673bdac478]", "[c794f0d3]", "0x20")
+ self.binary64_to_bid32("1", "[cb9132d7a6739620]", "[cb901640]", "0x20")
+ self.binary64_to_bid32("1", "[cd2d7fd879482fe8]", "[cf5c95da]", "0x20")
+ self.binary64_to_bid32("1", "[cef245a195e25a05]", "[d39ec9cc]", "0x20")
+ self.binary64_to_bid32("1", "[d0288bb4313ed680]", "[d695af2c]", "0x20")
+ self.binary64_to_bid32("1", "[d2382b7798b1f23d]", "[db925765]", "0x20")
+ self.binary64_to_bid32("1", "[d412ba093e5c6114]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("1", "[d412ba093e5c6115]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("1", "[d412ba095dc7701d]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("1", "[d412ba095dc7701e]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("1", "[ffefffffffffffff]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("1", "[fff0000000000000]", "[f8000000]", "0x00")
+ self.binary64_to_bid32("2", "[0000000000000000]", "[32800000]", "0x00")
+ self.binary64_to_bid32("2", "[0000000000000001]", "[00000001]", "0x32")
+ self.binary64_to_bid32("2", "[0010000000000000]", "[00000001]", "0x30")
+ self.binary64_to_bid32("2", "[0020000000000000]", "[00000001]", "0x30")
+ self.binary64_to_bid32("2", "[2acca6265e280b91]", "[00000001]", "0x30")
+ self.binary64_to_bid32("2", "[2af665bf1d3e6a8c]", "[00000001]", "0x30")
+ self.binary64_to_bid32("2", "[2af665bf1d3e6a8d]", "[00000002]", "0x30")
+ self.binary64_to_bid32("2", "[2c355c2076bf9a55]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("2", "[2c355c2076bf9a56]", "[000f4241]", "0x20")
+ self.binary64_to_bid32("2", "[2c6ab328946f80ea]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("2", "[2c6ab328946f80eb]", "[008f4241]", "0x20")
+ self.binary64_to_bid32("2", "[2ca800ade999cd1d]", "[0115f2a3]", "0x20")
+ self.binary64_to_bid32("2", "[2e41358930c57d3d]", "[04e999fc]", "0x20")
+ self.binary64_to_bid32("2", "[2fc8ccc1c49d0488]", "[0899881f]", "0x20")
+ self.binary64_to_bid32("2", "[317554481d3c8d0c]", "[0c9d78f3]", "0x20")
+ self.binary64_to_bid32("2", "[330ca1add6668c80]", "[6404c01e]", "0x20")
+ self.binary64_to_bid32("2", "[34c00e7db3b3f242]", "[1493fbef]", "0x20")
+ self.binary64_to_bid32("2", "[366b39ab78718832]", "[1896bd58]", "0x20")
+ self.binary64_to_bid32("2", "[3814c17116f185ba]", "[1c974493]", "0x20")
+ self.binary64_to_bid32("2", "[399018d081aee1d8]", "[201e4664]", "0x20")
+ self.binary64_to_bid32("2", "[3b5f6d9abbdd1d83]", "[248fddfe]", "0x20")
+ self.binary64_to_bid32("2", "[3cd0bf1a651525e8]", "[69edd92e]", "0x20")
+ self.binary64_to_bid32("2", "[3e8234d0a4da54d0]", "[2c14b2bc]", "0x20")
+ self.binary64_to_bid32("2", "[3faa000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary64_to_bid32("2", "[3ff0000000000000]", "[32800001]", "0x00")
+ self.binary64_to_bid32("2", "[3ff8000000000000]", "[3200000f]", "0x00")
+ self.binary64_to_bid32("2", "[4033ff532e7b3d8e]", "[301e8379]", "0x20")
+ self.binary64_to_bid32("2", "[4050000000000000]", "[32800040]", "0x00")
+ self.binary64_to_bid32("2", "[408f380000000000]", "[328003e7]", "0x00")
+ self.binary64_to_bid32("2", "[408f400000000000]", "[328003e8]", "0x00")
+ self.binary64_to_bid32("2", "[41ddcd64fffffffe]", "[341e8480]", "0x20")
+ self.binary64_to_bid32("2", "[438fffff722808bf]", "[382bfaff]", "0x20")
+ self.binary64_to_bid32("2", "[452ff7bc624b21a6]", "[3c1d7c2a]", "0x20")
+ self.binary64_to_bid32("2", "[46cd421397011886]", "[40121c22]", "0x20")
+ self.binary64_to_bid32("2", "[484c06bd4aa70ac8]", "[439d1aad]", "0x20")
+ self.binary64_to_bid32("2", "[49ee0c673bdac478]", "[4794f0d3]", "0x20")
+ self.binary64_to_bid32("2", "[4b9132d7a6739620]", "[4b901640]", "0x20")
+ self.binary64_to_bid32("2", "[4d2d7fd879482fe8]", "[4f5c95da]", "0x20")
+ self.binary64_to_bid32("2", "[4ef245a195e25a05]", "[539ec9cc]", "0x20")
+ self.binary64_to_bid32("2", "[50288bb4313ed680]", "[5695af2c]", "0x20")
+ self.binary64_to_bid32("2", "[52382b7798b1f23d]", "[5b925765]", "0x20")
+ self.binary64_to_bid32("2", "[5412ba093e5c6114]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("2", "[5412ba093e5c6115]", "[78000000]", "0x28")
+ self.binary64_to_bid32("2", "[5412ba095dc7701d]", "[78000000]", "0x28")
+ self.binary64_to_bid32("2", "[5412ba095dc7701e]", "[78000000]", "0x28")
+ self.binary64_to_bid32("2", "[7fefffffffffffff]", "[78000000]", "0x28")
+ self.binary64_to_bid32("2", "[7ff0000000000000]", "[78000000]", "0x00")
+ self.binary64_to_bid32("2", "[8000000000000001]", "[80000000]", "0x32")
+ self.binary64_to_bid32("2", "[8010000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("2", "[8020000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("2", "[aacca6265e280b91]", "[80000000]", "0x30")
+ self.binary64_to_bid32("2", "[aaf665bf1d3e6a8c]", "[80000000]", "0x30")
+ self.binary64_to_bid32("2", "[aaf665bf1d3e6a8d]", "[80000001]", "0x30")
+ self.binary64_to_bid32("2", "[ac355c2076bf9a55]", "[800f423f]", "0x30")
+ self.binary64_to_bid32("2", "[ac355c2076bf9a56]", "[800f4240]", "0x20")
+ self.binary64_to_bid32("2", "[ac6ab328946f80ea]", "[e018967f]", "0x20")
+ self.binary64_to_bid32("2", "[ac6ab328946f80eb]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("2", "[aca800ade999cd1d]", "[8115f2a2]", "0x20")
+ self.binary64_to_bid32("2", "[ae41358930c57d3d]", "[84e999fb]", "0x20")
+ self.binary64_to_bid32("2", "[afc8ccc1c49d0488]", "[8899881e]", "0x20")
+ self.binary64_to_bid32("2", "[b17554481d3c8d0c]", "[8c9d78f2]", "0x20")
+ self.binary64_to_bid32("2", "[b30ca1add6668c80]", "[e404c01d]", "0x20")
+ self.binary64_to_bid32("2", "[b4c00e7db3b3f242]", "[9493fbee]", "0x20")
+ self.binary64_to_bid32("2", "[b66b39ab78718832]", "[9896bd57]", "0x20")
+ self.binary64_to_bid32("2", "[b814c17116f185ba]", "[9c974492]", "0x20")
+ self.binary64_to_bid32("2", "[b99018d081aee1d8]", "[a01e4663]", "0x20")
+ self.binary64_to_bid32("2", "[bb5f6d9abbdd1d83]", "[a48fddfd]", "0x20")
+ self.binary64_to_bid32("2", "[bcd0bf1a651525e8]", "[e9edd92d]", "0x20")
+ self.binary64_to_bid32("2", "[be8234d0a4da54d0]", "[ac14b2bb]", "0x20")
+ self.binary64_to_bid32("2", "[bfaa000000000000]", "[aecd7c6d]", "0x00")
+ self.binary64_to_bid32("2", "[bff0000000000000]", "[b2800001]", "0x00")
+ self.binary64_to_bid32("2", "[bff8000000000000]", "[b200000f]", "0x00")
+ self.binary64_to_bid32("2", "[c033ff532e7b3d8e]", "[b01e8378]", "0x20")
+ self.binary64_to_bid32("2", "[c050000000000000]", "[b2800040]", "0x00")
+ self.binary64_to_bid32("2", "[c08f380000000000]", "[b28003e7]", "0x00")
+ self.binary64_to_bid32("2", "[c08f400000000000]", "[b28003e8]", "0x00")
+ self.binary64_to_bid32("2", "[c1ddcd64fffffffe]", "[b41e847f]", "0x20")
+ self.binary64_to_bid32("2", "[c38fffff722808bf]", "[b82bfafe]", "0x20")
+ self.binary64_to_bid32("2", "[c52ff7bc624b21a6]", "[bc1d7c29]", "0x20")
+ self.binary64_to_bid32("2", "[c6cd421397011886]", "[c0121c21]", "0x20")
+ self.binary64_to_bid32("2", "[c84c06bd4aa70ac8]", "[c39d1aac]", "0x20")
+ self.binary64_to_bid32("2", "[c9ee0c673bdac478]", "[c794f0d2]", "0x20")
+ self.binary64_to_bid32("2", "[cb9132d7a6739620]", "[cb90163f]", "0x20")
+ self.binary64_to_bid32("2", "[cd2d7fd879482fe8]", "[cf5c95d9]", "0x20")
+ self.binary64_to_bid32("2", "[cef245a195e25a05]", "[d39ec9cb]", "0x20")
+ self.binary64_to_bid32("2", "[d0288bb4313ed680]", "[d695af2b]", "0x20")
+ self.binary64_to_bid32("2", "[d2382b7798b1f23d]", "[db925764]", "0x20")
+ self.binary64_to_bid32("2", "[d412ba093e5c6114]", "[f7f8967e]", "0x20")
+ self.binary64_to_bid32("2", "[d412ba093e5c6115]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("2", "[d412ba095dc7701d]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("2", "[d412ba095dc7701e]", "[f7f8967f]", "0x28")
+ self.binary64_to_bid32("2", "[ffefffffffffffff]", "[f7f8967f]", "0x28")
+ self.binary64_to_bid32("2", "[fff0000000000000]", "[f8000000]", "0x00")
+ self.binary64_to_bid32("3", "[0000000000000000]", "[32800000]", "0x00")
+ self.binary64_to_bid32("3", "[0000000000000001]", "[00000000]", "0x32")
+ self.binary64_to_bid32("3", "[0010000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("3", "[0020000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("3", "[2acca6265e280b91]", "[00000000]", "0x30")
+ self.binary64_to_bid32("3", "[2af665bf1d3e6a8c]", "[00000000]", "0x30")
+ self.binary64_to_bid32("3", "[2af665bf1d3e6a8d]", "[00000001]", "0x30")
+ self.binary64_to_bid32("3", "[2c355c2076bf9a55]", "[000f423f]", "0x30")
+ self.binary64_to_bid32("3", "[2c355c2076bf9a56]", "[000f4240]", "0x20")
+ self.binary64_to_bid32("3", "[2c6ab328946f80ea]", "[6018967f]", "0x20")
+ self.binary64_to_bid32("3", "[2c6ab328946f80eb]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("3", "[2ca800ade999cd1d]", "[0115f2a2]", "0x20")
+ self.binary64_to_bid32("3", "[2e41358930c57d3d]", "[04e999fb]", "0x20")
+ self.binary64_to_bid32("3", "[2fc8ccc1c49d0488]", "[0899881e]", "0x20")
+ self.binary64_to_bid32("3", "[317554481d3c8d0c]", "[0c9d78f2]", "0x20")
+ self.binary64_to_bid32("3", "[330ca1add6668c80]", "[6404c01d]", "0x20")
+ self.binary64_to_bid32("3", "[34c00e7db3b3f242]", "[1493fbee]", "0x20")
+ self.binary64_to_bid32("3", "[366b39ab78718832]", "[1896bd57]", "0x20")
+ self.binary64_to_bid32("3", "[3814c17116f185ba]", "[1c974492]", "0x20")
+ self.binary64_to_bid32("3", "[399018d081aee1d8]", "[201e4663]", "0x20")
+ self.binary64_to_bid32("3", "[3b5f6d9abbdd1d83]", "[248fddfd]", "0x20")
+ self.binary64_to_bid32("3", "[3cd0bf1a651525e8]", "[69edd92d]", "0x20")
+ self.binary64_to_bid32("3", "[3e8234d0a4da54d0]", "[2c14b2bb]", "0x20")
+ self.binary64_to_bid32("3", "[3faa000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary64_to_bid32("3", "[3ff0000000000000]", "[32800001]", "0x00")
+ self.binary64_to_bid32("3", "[3ff8000000000000]", "[3200000f]", "0x00")
+ self.binary64_to_bid32("3", "[4033ff532e7b3d8e]", "[301e8378]", "0x20")
+ self.binary64_to_bid32("3", "[4050000000000000]", "[32800040]", "0x00")
+ self.binary64_to_bid32("3", "[408f380000000000]", "[328003e7]", "0x00")
+ self.binary64_to_bid32("3", "[408f400000000000]", "[328003e8]", "0x00")
+ self.binary64_to_bid32("3", "[41ddcd64fffffffe]", "[341e847f]", "0x20")
+ self.binary64_to_bid32("3", "[438fffff722808bf]", "[382bfafe]", "0x20")
+ self.binary64_to_bid32("3", "[452ff7bc624b21a6]", "[3c1d7c29]", "0x20")
+ self.binary64_to_bid32("3", "[46cd421397011886]", "[40121c21]", "0x20")
+ self.binary64_to_bid32("3", "[484c06bd4aa70ac8]", "[439d1aac]", "0x20")
+ self.binary64_to_bid32("3", "[49ee0c673bdac478]", "[4794f0d2]", "0x20")
+ self.binary64_to_bid32("3", "[4b9132d7a6739620]", "[4b90163f]", "0x20")
+ self.binary64_to_bid32("3", "[4d2d7fd879482fe8]", "[4f5c95d9]", "0x20")
+ self.binary64_to_bid32("3", "[4ef245a195e25a05]", "[539ec9cb]", "0x20")
+ self.binary64_to_bid32("3", "[50288bb4313ed680]", "[5695af2b]", "0x20")
+ self.binary64_to_bid32("3", "[52382b7798b1f23d]", "[5b925764]", "0x20")
+ self.binary64_to_bid32("3", "[5412ba093e5c6114]", "[77f8967e]", "0x20")
+ self.binary64_to_bid32("3", "[5412ba093e5c6115]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("3", "[5412ba095dc7701d]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("3", "[5412ba095dc7701e]", "[77f8967f]", "0x28")
+ self.binary64_to_bid32("3", "[7fefffffffffffff]", "[77f8967f]", "0x28")
+ self.binary64_to_bid32("3", "[7ff0000000000000]", "[78000000]", "0x00")
+ self.binary64_to_bid32("3", "[8000000000000001]", "[80000000]", "0x32")
+ self.binary64_to_bid32("3", "[8010000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("3", "[8020000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("3", "[aacca6265e280b91]", "[80000000]", "0x30")
+ self.binary64_to_bid32("3", "[aaf665bf1d3e6a8c]", "[80000000]", "0x30")
+ self.binary64_to_bid32("3", "[aaf665bf1d3e6a8d]", "[80000001]", "0x30")
+ self.binary64_to_bid32("3", "[ac355c2076bf9a55]", "[800f423f]", "0x30")
+ self.binary64_to_bid32("3", "[ac355c2076bf9a56]", "[800f4240]", "0x20")
+ self.binary64_to_bid32("3", "[ac6ab328946f80ea]", "[e018967f]", "0x20")
+ self.binary64_to_bid32("3", "[ac6ab328946f80eb]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("3", "[aca800ade999cd1d]", "[8115f2a2]", "0x20")
+ self.binary64_to_bid32("3", "[ae41358930c57d3d]", "[84e999fb]", "0x20")
+ self.binary64_to_bid32("3", "[afc8ccc1c49d0488]", "[8899881e]", "0x20")
+ self.binary64_to_bid32("3", "[b17554481d3c8d0c]", "[8c9d78f2]", "0x20")
+ self.binary64_to_bid32("3", "[b30ca1add6668c80]", "[e404c01d]", "0x20")
+ self.binary64_to_bid32("3", "[b4c00e7db3b3f242]", "[9493fbee]", "0x20")
+ self.binary64_to_bid32("3", "[b66b39ab78718832]", "[9896bd57]", "0x20")
+ self.binary64_to_bid32("3", "[b814c17116f185ba]", "[9c974492]", "0x20")
+ self.binary64_to_bid32("3", "[b99018d081aee1d8]", "[a01e4663]", "0x20")
+ self.binary64_to_bid32("3", "[bb5f6d9abbdd1d83]", "[a48fddfd]", "0x20")
+ self.binary64_to_bid32("3", "[bcd0bf1a651525e8]", "[e9edd92d]", "0x20")
+ self.binary64_to_bid32("3", "[be8234d0a4da54d0]", "[ac14b2bb]", "0x20")
+ self.binary64_to_bid32("3", "[bfaa000000000000]", "[aecd7c6d]", "0x00")
+ self.binary64_to_bid32("3", "[bff0000000000000]", "[b2800001]", "0x00")
+ self.binary64_to_bid32("3", "[bff8000000000000]", "[b200000f]", "0x00")
+ self.binary64_to_bid32("3", "[c033ff532e7b3d8e]", "[b01e8378]", "0x20")
+ self.binary64_to_bid32("3", "[c050000000000000]", "[b2800040]", "0x00")
+ self.binary64_to_bid32("3", "[c08f380000000000]", "[b28003e7]", "0x00")
+ self.binary64_to_bid32("3", "[c08f400000000000]", "[b28003e8]", "0x00")
+ self.binary64_to_bid32("3", "[c1ddcd64fffffffe]", "[b41e847f]", "0x20")
+ self.binary64_to_bid32("3", "[c38fffff722808bf]", "[b82bfafe]", "0x20")
+ self.binary64_to_bid32("3", "[c52ff7bc624b21a6]", "[bc1d7c29]", "0x20")
+ self.binary64_to_bid32("3", "[c6cd421397011886]", "[c0121c21]", "0x20")
+ self.binary64_to_bid32("3", "[c84c06bd4aa70ac8]", "[c39d1aac]", "0x20")
+ self.binary64_to_bid32("3", "[c9ee0c673bdac478]", "[c794f0d2]", "0x20")
+ self.binary64_to_bid32("3", "[cb9132d7a6739620]", "[cb90163f]", "0x20")
+ self.binary64_to_bid32("3", "[cd2d7fd879482fe8]", "[cf5c95d9]", "0x20")
+ self.binary64_to_bid32("3", "[cef245a195e25a05]", "[d39ec9cb]", "0x20")
+ self.binary64_to_bid32("3", "[d0288bb4313ed680]", "[d695af2b]", "0x20")
+ self.binary64_to_bid32("3", "[d2382b7798b1f23d]", "[db925764]", "0x20")
+ self.binary64_to_bid32("3", "[d412ba093e5c6114]", "[f7f8967e]", "0x20")
+ self.binary64_to_bid32("3", "[d412ba093e5c6115]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("3", "[d412ba095dc7701d]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("3", "[d412ba095dc7701e]", "[f7f8967f]", "0x28")
+ self.binary64_to_bid32("3", "[ffefffffffffffff]", "[f7f8967f]", "0x28")
+ self.binary64_to_bid32("3", "[fff0000000000000]", "[f8000000]", "0x00")
+ self.binary64_to_bid32("4", "[0000000000000000]", "[32800000]", "0x00")
+ self.binary64_to_bid32("4", "[0000000000000001]", "[00000000]", "0x32")
+ self.binary64_to_bid32("4", "[0010000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("4", "[0020000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("4", "[2acca6265e280b91]", "[00000000]", "0x30")
+ self.binary64_to_bid32("4", "[2af665bf1d3e6a8c]", "[00000001]", "0x30")
+ self.binary64_to_bid32("4", "[2af665bf1d3e6a8d]", "[00000001]", "0x30")
+ self.binary64_to_bid32("4", "[2c355c2076bf9a55]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("4", "[2c355c2076bf9a56]", "[000f4240]", "0x20")
+ self.binary64_to_bid32("4", "[2c6ab328946f80ea]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("4", "[2c6ab328946f80eb]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("4", "[2ca800ade999cd1d]", "[0115f2a2]", "0x20")
+ self.binary64_to_bid32("4", "[2e41358930c57d3d]", "[04e999fc]", "0x20")
+ self.binary64_to_bid32("4", "[2fc8ccc1c49d0488]", "[0899881e]", "0x20")
+ self.binary64_to_bid32("4", "[317554481d3c8d0c]", "[0c9d78f2]", "0x20")
+ self.binary64_to_bid32("4", "[330ca1add6668c80]", "[6404c01d]", "0x20")
+ self.binary64_to_bid32("4", "[34c00e7db3b3f242]", "[1493fbee]", "0x20")
+ self.binary64_to_bid32("4", "[366b39ab78718832]", "[1896bd57]", "0x20")
+ self.binary64_to_bid32("4", "[3814c17116f185ba]", "[1c974493]", "0x20")
+ self.binary64_to_bid32("4", "[399018d081aee1d8]", "[201e4664]", "0x20")
+ self.binary64_to_bid32("4", "[3b5f6d9abbdd1d83]", "[248fddfe]", "0x20")
+ self.binary64_to_bid32("4", "[3cd0bf1a651525e8]", "[69edd92d]", "0x20")
+ self.binary64_to_bid32("4", "[3e8234d0a4da54d0]", "[2c14b2bc]", "0x20")
+ self.binary64_to_bid32("4", "[3faa000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary64_to_bid32("4", "[3ff0000000000000]", "[32800001]", "0x00")
+ self.binary64_to_bid32("4", "[3ff8000000000000]", "[3200000f]", "0x00")
+ self.binary64_to_bid32("4", "[4033ff532e7b3d8e]", "[301e8378]", "0x20")
+ self.binary64_to_bid32("4", "[4050000000000000]", "[32800040]", "0x00")
+ self.binary64_to_bid32("4", "[408f380000000000]", "[328003e7]", "0x00")
+ self.binary64_to_bid32("4", "[408f400000000000]", "[328003e8]", "0x00")
+ self.binary64_to_bid32("4", "[41ddcd64fffffffe]", "[341e8480]", "0x20")
+ self.binary64_to_bid32("4", "[438fffff722808bf]", "[382bfaff]", "0x20")
+ self.binary64_to_bid32("4", "[452ff7bc624b21a6]", "[3c1d7c2a]", "0x20")
+ self.binary64_to_bid32("4", "[46cd421397011886]", "[40121c22]", "0x20")
+ self.binary64_to_bid32("4", "[484c06bd4aa70ac8]", "[439d1aad]", "0x20")
+ self.binary64_to_bid32("4", "[49ee0c673bdac478]", "[4794f0d3]", "0x20")
+ self.binary64_to_bid32("4", "[4b9132d7a6739620]", "[4b90163f]", "0x20")
+ self.binary64_to_bid32("4", "[4d2d7fd879482fe8]", "[4f5c95da]", "0x20")
+ self.binary64_to_bid32("4", "[4ef245a195e25a05]", "[539ec9cb]", "0x20")
+ self.binary64_to_bid32("4", "[50288bb4313ed680]", "[5695af2c]", "0x20")
+ self.binary64_to_bid32("4", "[52382b7798b1f23d]", "[5b925764]", "0x20")
+ self.binary64_to_bid32("4", "[5412ba093e5c6114]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("4", "[5412ba093e5c6115]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("4", "[5412ba095dc7701d]", "[78000000]", "0x28")
+ self.binary64_to_bid32("4", "[5412ba095dc7701e]", "[78000000]", "0x28")
+ self.binary64_to_bid32("4", "[7fefffffffffffff]", "[78000000]", "0x28")
+ self.binary64_to_bid32("4", "[7ff0000000000000]", "[78000000]", "0x00")
+ self.binary64_to_bid32("4", "[8000000000000001]", "[80000000]", "0x32")
+ self.binary64_to_bid32("4", "[8010000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("4", "[8020000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("4", "[aacca6265e280b91]", "[80000000]", "0x30")
+ self.binary64_to_bid32("4", "[aaf665bf1d3e6a8c]", "[80000001]", "0x30")
+ self.binary64_to_bid32("4", "[aaf665bf1d3e6a8d]", "[80000001]", "0x30")
+ self.binary64_to_bid32("4", "[ac355c2076bf9a55]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("4", "[ac355c2076bf9a56]", "[800f4240]", "0x20")
+ self.binary64_to_bid32("4", "[ac6ab328946f80ea]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("4", "[ac6ab328946f80eb]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("4", "[aca800ade999cd1d]", "[8115f2a2]", "0x20")
+ self.binary64_to_bid32("4", "[ae41358930c57d3d]", "[84e999fc]", "0x20")
+ self.binary64_to_bid32("4", "[afc8ccc1c49d0488]", "[8899881e]", "0x20")
+ self.binary64_to_bid32("4", "[b17554481d3c8d0c]", "[8c9d78f2]", "0x20")
+ self.binary64_to_bid32("4", "[b30ca1add6668c80]", "[e404c01d]", "0x20")
+ self.binary64_to_bid32("4", "[b4c00e7db3b3f242]", "[9493fbee]", "0x20")
+ self.binary64_to_bid32("4", "[b66b39ab78718832]", "[9896bd57]", "0x20")
+ self.binary64_to_bid32("4", "[b814c17116f185ba]", "[9c974493]", "0x20")
+ self.binary64_to_bid32("4", "[b99018d081aee1d8]", "[a01e4664]", "0x20")
+ self.binary64_to_bid32("4", "[bb5f6d9abbdd1d83]", "[a48fddfe]", "0x20")
+ self.binary64_to_bid32("4", "[bcd0bf1a651525e8]", "[e9edd92d]", "0x20")
+ self.binary64_to_bid32("4", "[be8234d0a4da54d0]", "[ac14b2bc]", "0x20")
+ self.binary64_to_bid32("4", "[bfaa000000000000]", "[aecd7c6d]", "0x00")
+ self.binary64_to_bid32("4", "[bff0000000000000]", "[b2800001]", "0x00")
+ self.binary64_to_bid32("4", "[bff8000000000000]", "[b200000f]", "0x00")
+ self.binary64_to_bid32("4", "[c033ff532e7b3d8e]", "[b01e8378]", "0x20")
+ self.binary64_to_bid32("4", "[c050000000000000]", "[b2800040]", "0x00")
+ self.binary64_to_bid32("4", "[c08f380000000000]", "[b28003e7]", "0x00")
+ self.binary64_to_bid32("4", "[c08f400000000000]", "[b28003e8]", "0x00")
+ self.binary64_to_bid32("4", "[c1ddcd64fffffffe]", "[b41e8480]", "0x20")
+ self.binary64_to_bid32("4", "[c38fffff722808bf]", "[b82bfaff]", "0x20")
+ self.binary64_to_bid32("4", "[c52ff7bc624b21a6]", "[bc1d7c2a]", "0x20")
+ self.binary64_to_bid32("4", "[c6cd421397011886]", "[c0121c22]", "0x20")
+ self.binary64_to_bid32("4", "[c84c06bd4aa70ac8]", "[c39d1aad]", "0x20")
+ self.binary64_to_bid32("4", "[c9ee0c673bdac478]", "[c794f0d3]", "0x20")
+ self.binary64_to_bid32("4", "[cb9132d7a6739620]", "[cb90163f]", "0x20")
+ self.binary64_to_bid32("4", "[cd2d7fd879482fe8]", "[cf5c95da]", "0x20")
+ self.binary64_to_bid32("4", "[cef245a195e25a05]", "[d39ec9cb]", "0x20")
+ self.binary64_to_bid32("4", "[d0288bb4313ed680]", "[d695af2c]", "0x20")
+ self.binary64_to_bid32("4", "[d2382b7798b1f23d]", "[db925764]", "0x20")
+ self.binary64_to_bid32("4", "[d412ba093e5c6114]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("4", "[d412ba093e5c6115]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("4", "[d412ba095dc7701d]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("4", "[d412ba095dc7701e]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("4", "[ffefffffffffffff]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("4", "[fff0000000000000]", "[f8000000]", "0x00")
+ self.binary64_to_bid32("0", "[7ff0000000000001]", "[7C000000]", "01")
+ self.binary64_to_bid32("0", "[7ff4000000000000]", "[7C080000]", "01")
+ self.binary64_to_bid32("0", "[7ff7A11F80000000]", "[7C0F423F]", "01")
+ self.binary64_to_bid32("0", "[7ff7A12000000000]", "[7C000000]", "01")
+ self.binary64_to_bid32("0", "[7ff7ffffffffffff]", "[7C000000]", "01")
+ self.binary64_to_bid32("0", "[0000000000000000]", "[32800000]", "0x00")
+ self.binary64_to_bid32("1", "[0000000000000000]", "[32800000]", "0x00")
+ self.binary64_to_bid32("2", "[0000000000000000]", "[32800000]", "0x00")
+ self.binary64_to_bid32("3", "[0000000000000000]", "[32800000]", "0x00")
+ self.binary64_to_bid32("4", "[0000000000000000]", "[32800000]", "0x00")
+ self.binary64_to_bid32("0", "[0000000000000001]", "[00000000]", "0x32")
+ self.binary64_to_bid32("1", "[0000000000000001]", "[00000000]", "0x32")
+ self.binary64_to_bid32("2", "[0000000000000001]", "[00000001]", "0x32")
+ self.binary64_to_bid32("3", "[0000000000000001]", "[00000000]", "0x32")
+ self.binary64_to_bid32("4", "[0000000000000001]", "[00000000]", "0x32")
+ self.binary64_to_bid32("0", "[000fffffffffffff]", "[00000000]", "0x32")
+ self.binary64_to_bid32("1", "[000fffffffffffff]", "[00000000]", "0x32")
+ self.binary64_to_bid32("2", "[000fffffffffffff]", "[00000001]", "0x32")
+ self.binary64_to_bid32("3", "[000fffffffffffff]", "[00000000]", "0x32")
+ self.binary64_to_bid32("4", "[000fffffffffffff]", "[00000000]", "0x32")
+ self.binary64_to_bid32("0", "[0010000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("1", "[0010000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("2", "[0010000000000000]", "[00000001]", "0x30")
+ self.binary64_to_bid32("3", "[0010000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("4", "[0010000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("0", "[0020000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("1", "[0020000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("2", "[0020000000000000]", "[00000001]", "0x30")
+ self.binary64_to_bid32("3", "[0020000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("4", "[0020000000000000]", "[00000000]", "0x30")
+ self.binary64_to_bid32("0", "[2acca6265e280b91]", "[00000000]", "0x30")
+ self.binary64_to_bid32("1", "[2acca6265e280b91]", "[00000000]", "0x30")
+ self.binary64_to_bid32("2", "[2acca6265e280b91]", "[00000001]", "0x30")
+ self.binary64_to_bid32("3", "[2acca6265e280b91]", "[00000000]", "0x30")
+ self.binary64_to_bid32("4", "[2acca6265e280b91]", "[00000000]", "0x30")
+ self.binary64_to_bid32("0", "[2af665bf1d3e6a8c]", "[00000001]", "0x30")
+ self.binary64_to_bid32("1", "[2af665bf1d3e6a8c]", "[00000000]", "0x30")
+ self.binary64_to_bid32("2", "[2af665bf1d3e6a8c]", "[00000001]", "0x30")
+ self.binary64_to_bid32("3", "[2af665bf1d3e6a8c]", "[00000000]", "0x30")
+ self.binary64_to_bid32("4", "[2af665bf1d3e6a8c]", "[00000001]", "0x30")
+ self.binary64_to_bid32("0", "[2af665bf1d3e6a8d]", "[00000001]", "0x30")
+ self.binary64_to_bid32("1", "[2af665bf1d3e6a8d]", "[00000001]", "0x30")
+ self.binary64_to_bid32("2", "[2af665bf1d3e6a8d]", "[00000002]", "0x30")
+ self.binary64_to_bid32("3", "[2af665bf1d3e6a8d]", "[00000001]", "0x30")
+ self.binary64_to_bid32("4", "[2af665bf1d3e6a8d]", "[00000001]", "0x30")
+ self.binary64_to_bid32("0", "[2b23d16f179d1660]", "[00000007]", "0x30")
+ self.binary64_to_bid32("1", "[2b23d16f179d1660]", "[00000007]", "0x30")
+ self.binary64_to_bid32("2", "[2b23d16f179d1660]", "[00000008]", "0x30")
+ self.binary64_to_bid32("3", "[2b23d16f179d1660]", "[00000007]", "0x30")
+ self.binary64_to_bid32("4", "[2b23d16f179d1660]", "[00000007]", "0x30")
+ self.binary64_to_bid32("0", "[2bc472e8ee9f2318]", "[00001d37]", "0x30")
+ self.binary64_to_bid32("1", "[2bc472e8ee9f2318]", "[00001d37]", "0x30")
+ self.binary64_to_bid32("2", "[2bc472e8ee9f2318]", "[00001d38]", "0x30")
+ self.binary64_to_bid32("3", "[2bc472e8ee9f2318]", "[00001d37]", "0x30")
+ self.binary64_to_bid32("4", "[2bc472e8ee9f2318]", "[00001d37]", "0x30")
+ self.binary64_to_bid32("0", "[2bcb5732007f9001]", "[00002710]", "0x30")
+ self.binary64_to_bid32("1", "[2bcb5732007f9001]", "[0000270f]", "0x30")
+ self.binary64_to_bid32("2", "[2bcb5732007f9001]", "[00002710]", "0x30")
+ self.binary64_to_bid32("3", "[2bcb5732007f9001]", "[0000270f]", "0x30")
+ self.binary64_to_bid32("4", "[2bcb5732007f9001]", "[00002710]", "0x30")
+ self.binary64_to_bid32("0", "[2bcb5732007f9002]", "[00002710]", "0x30")
+ self.binary64_to_bid32("1", "[2bcb5732007f9002]", "[0000270f]", "0x30")
+ self.binary64_to_bid32("2", "[2bcb5732007f9002]", "[00002710]", "0x30")
+ self.binary64_to_bid32("3", "[2bcb5732007f9002]", "[0000270f]", "0x30")
+ self.binary64_to_bid32("4", "[2bcb5732007f9002]", "[00002710]", "0x30")
+ self.binary64_to_bid32("0", "[2c01167f404fba00]", "[000186a0]", "0x30")
+ self.binary64_to_bid32("1", "[2c01167f404fba00]", "[0001869f]", "0x30")
+ self.binary64_to_bid32("2", "[2c01167f404fba00]", "[000186a0]", "0x30")
+ self.binary64_to_bid32("3", "[2c01167f404fba00]", "[0001869f]", "0x30")
+ self.binary64_to_bid32("4", "[2c01167f404fba00]", "[000186a0]", "0x30")
+ self.binary64_to_bid32("0", "[2c01167f404fba01]", "[000186a0]", "0x30")
+ self.binary64_to_bid32("1", "[2c01167f404fba01]", "[0001869f]", "0x30")
+ self.binary64_to_bid32("2", "[2c01167f404fba01]", "[000186a0]", "0x30")
+ self.binary64_to_bid32("3", "[2c01167f404fba01]", "[0001869f]", "0x30")
+ self.binary64_to_bid32("4", "[2c01167f404fba01]", "[000186a0]", "0x30")
+ self.binary64_to_bid32("0", "[2c355c2076bf9a55]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("1", "[2c355c2076bf9a55]", "[000f423f]", "0x30")
+ self.binary64_to_bid32("2", "[2c355c2076bf9a55]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("3", "[2c355c2076bf9a55]", "[000f423f]", "0x30")
+ self.binary64_to_bid32("4", "[2c355c2076bf9a55]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("0", "[2c355c2076bf9a56]", "[000f4240]", "0x20")
+ self.binary64_to_bid32("1", "[2c355c2076bf9a56]", "[000f4240]", "0x20")
+ self.binary64_to_bid32("2", "[2c355c2076bf9a56]", "[000f4241]", "0x20")
+ self.binary64_to_bid32("3", "[2c355c2076bf9a56]", "[000f4240]", "0x20")
+ self.binary64_to_bid32("4", "[2c355c2076bf9a56]", "[000f4240]", "0x20")
+ self.binary64_to_bid32("0", "[2c3a4ad39fafc7ab]", "[0012c848]", "0x20")
+ self.binary64_to_bid32("1", "[2c3a4ad39fafc7ab]", "[0012c848]", "0x20")
+ self.binary64_to_bid32("2", "[2c3a4ad39fafc7ab]", "[0012c849]", "0x20")
+ self.binary64_to_bid32("3", "[2c3a4ad39fafc7ab]", "[0012c848]", "0x20")
+ self.binary64_to_bid32("4", "[2c3a4ad39fafc7ab]", "[0012c848]", "0x20")
+ self.binary64_to_bid32("0", "[2c6ab328946f80ea]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("1", "[2c6ab328946f80ea]", "[6018967f]", "0x20")
+ self.binary64_to_bid32("2", "[2c6ab328946f80ea]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("3", "[2c6ab328946f80ea]", "[6018967f]", "0x20")
+ self.binary64_to_bid32("4", "[2c6ab328946f80ea]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("0", "[2c6ab328946f80eb]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("1", "[2c6ab328946f80eb]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("2", "[2c6ab328946f80eb]", "[008f4241]", "0x20")
+ self.binary64_to_bid32("3", "[2c6ab328946f80eb]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("4", "[2c6ab328946f80eb]", "[008f4240]", "0x20")
+ self.binary64_to_bid32("0", "[2ca853b5b972df12]", "[01163e8e]", "0x20")
+ self.binary64_to_bid32("1", "[2ca853b5b972df12]", "[01163e8e]", "0x20")
+ self.binary64_to_bid32("2", "[2ca853b5b972df12]", "[01163e8f]", "0x20")
+ self.binary64_to_bid32("3", "[2ca853b5b972df12]", "[01163e8e]", "0x20")
+ self.binary64_to_bid32("4", "[2ca853b5b972df12]", "[01163e8e]", "0x20")
+ self.binary64_to_bid32("0", "[2d0ba7712763fa46]", "[02102ef5]", "0x20")
+ self.binary64_to_bid32("1", "[2d0ba7712763fa46]", "[02102ef5]", "0x20")
+ self.binary64_to_bid32("2", "[2d0ba7712763fa46]", "[02102ef6]", "0x20")
+ self.binary64_to_bid32("3", "[2d0ba7712763fa46]", "[02102ef5]", "0x20")
+ self.binary64_to_bid32("4", "[2d0ba7712763fa46]", "[02102ef5]", "0x20")
+ self.binary64_to_bid32("0", "[2d416500e9734ef0]", "[02904981]", "0x20")
+ self.binary64_to_bid32("1", "[2d416500e9734ef0]", "[02904981]", "0x20")
+ self.binary64_to_bid32("2", "[2d416500e9734ef0]", "[02904982]", "0x20")
+ self.binary64_to_bid32("3", "[2d416500e9734ef0]", "[02904981]", "0x20")
+ self.binary64_to_bid32("4", "[2d416500e9734ef0]", "[02904981]", "0x20")
+ self.binary64_to_bid32("0", "[2dca3ead732acfe8]", "[03bee8cb]", "0x20")
+ self.binary64_to_bid32("1", "[2dca3ead732acfe8]", "[03bee8cb]", "0x20")
+ self.binary64_to_bid32("2", "[2dca3ead732acfe8]", "[03bee8cc]", "0x20")
+ self.binary64_to_bid32("3", "[2dca3ead732acfe8]", "[03bee8cb]", "0x20")
+ self.binary64_to_bid32("4", "[2dca3ead732acfe8]", "[03bee8cb]", "0x20")
+ self.binary64_to_bid32("0", "[2e3e38723a5ce17c]", "[04dcb8d6]", "0x20")
+ self.binary64_to_bid32("1", "[2e3e38723a5ce17c]", "[04dcb8d6]", "0x20")
+ self.binary64_to_bid32("2", "[2e3e38723a5ce17c]", "[04dcb8d7]", "0x20")
+ self.binary64_to_bid32("3", "[2e3e38723a5ce17c]", "[04dcb8d6]", "0x20")
+ self.binary64_to_bid32("4", "[2e3e38723a5ce17c]", "[04dcb8d6]", "0x20")
+ self.binary64_to_bid32("0", "[2e8d89d8aafcdc00]", "[059d005d]", "0x20")
+ self.binary64_to_bid32("1", "[2e8d89d8aafcdc00]", "[059d005c]", "0x20")
+ self.binary64_to_bid32("2", "[2e8d89d8aafcdc00]", "[059d005d]", "0x20")
+ self.binary64_to_bid32("3", "[2e8d89d8aafcdc00]", "[059d005c]", "0x20")
+ self.binary64_to_bid32("4", "[2e8d89d8aafcdc00]", "[059d005d]", "0x20")
+ self.binary64_to_bid32("0", "[2f07d459a7157161]", "[06bbe4f6]", "0x20")
+ self.binary64_to_bid32("1", "[2f07d459a7157161]", "[06bbe4f5]", "0x20")
+ self.binary64_to_bid32("2", "[2f07d459a7157161]", "[06bbe4f6]", "0x20")
+ self.binary64_to_bid32("3", "[2f07d459a7157161]", "[06bbe4f5]", "0x20")
+ self.binary64_to_bid32("4", "[2f07d459a7157161]", "[06bbe4f6]", "0x20")
+ self.binary64_to_bid32("0", "[2f169303d061f9c0]", "[06f17a99]", "0x20")
+ self.binary64_to_bid32("1", "[2f169303d061f9c0]", "[06f17a99]", "0x20")
+ self.binary64_to_bid32("2", "[2f169303d061f9c0]", "[06f17a9a]", "0x20")
+ self.binary64_to_bid32("3", "[2f169303d061f9c0]", "[06f17a99]", "0x20")
+ self.binary64_to_bid32("4", "[2f169303d061f9c0]", "[06f17a99]", "0x20")
+ self.binary64_to_bid32("0", "[2fc2d79467444ac4]", "[089365ee]", "0x20")
+ self.binary64_to_bid32("1", "[2fc2d79467444ac4]", "[089365ee]", "0x20")
+ self.binary64_to_bid32("2", "[2fc2d79467444ac4]", "[089365ef]", "0x20")
+ self.binary64_to_bid32("3", "[2fc2d79467444ac4]", "[089365ee]", "0x20")
+ self.binary64_to_bid32("4", "[2fc2d79467444ac4]", "[089365ee]", "0x20")
+ self.binary64_to_bid32("0", "[303e7e0a161271a9]", "[09a82e9a]", "0x20")
+ self.binary64_to_bid32("1", "[303e7e0a161271a9]", "[09a82e9a]", "0x20")
+ self.binary64_to_bid32("2", "[303e7e0a161271a9]", "[09a82e9b]", "0x20")
+ self.binary64_to_bid32("3", "[303e7e0a161271a9]", "[09a82e9a]", "0x20")
+ self.binary64_to_bid32("4", "[303e7e0a161271a9]", "[09a82e9a]", "0x20")
+ self.binary64_to_bid32("0", "[305a01fb6d8b1a20]", "[626916e2]", "0x20")
+ self.binary64_to_bid32("1", "[305a01fb6d8b1a20]", "[626916e1]", "0x20")
+ self.binary64_to_bid32("2", "[305a01fb6d8b1a20]", "[626916e2]", "0x20")
+ self.binary64_to_bid32("3", "[305a01fb6d8b1a20]", "[626916e1]", "0x20")
+ self.binary64_to_bid32("4", "[305a01fb6d8b1a20]", "[626916e2]", "0x20")
+ self.binary64_to_bid32("0", "[30fd00a765a8c400]", "[0b8fa789]", "0x20")
+ self.binary64_to_bid32("1", "[30fd00a765a8c400]", "[0b8fa789]", "0x20")
+ self.binary64_to_bid32("2", "[30fd00a765a8c400]", "[0b8fa78a]", "0x20")
+ self.binary64_to_bid32("3", "[30fd00a765a8c400]", "[0b8fa789]", "0x20")
+ self.binary64_to_bid32("4", "[30fd00a765a8c400]", "[0b8fa789]", "0x20")
+ self.binary64_to_bid32("0", "[310d0681489839d5]", "[0b9f5563]", "0x20")
+ self.binary64_to_bid32("1", "[310d0681489839d5]", "[0b9f5562]", "0x20")
+ self.binary64_to_bid32("2", "[310d0681489839d5]", "[0b9f5563]", "0x20")
+ self.binary64_to_bid32("3", "[310d0681489839d5]", "[0b9f5562]", "0x20")
+ self.binary64_to_bid32("4", "[310d0681489839d5]", "[0b9f5563]", "0x20")
+ self.binary64_to_bid32("0", "[31c7206bfc4ccabe]", "[0d664270]", "0x20")
+ self.binary64_to_bid32("1", "[31c7206bfc4ccabe]", "[0d664270]", "0x20")
+ self.binary64_to_bid32("2", "[31c7206bfc4ccabe]", "[0d664271]", "0x20")
+ self.binary64_to_bid32("3", "[31c7206bfc4ccabe]", "[0d664270]", "0x20")
+ self.binary64_to_bid32("4", "[31c7206bfc4ccabe]", "[0d664270]", "0x20")
+ self.binary64_to_bid32("0", "[32353c3ac250aa1b]", "[0e782ff8]", "0x20")
+ self.binary64_to_bid32("1", "[32353c3ac250aa1b]", "[0e782ff7]", "0x20")
+ self.binary64_to_bid32("2", "[32353c3ac250aa1b]", "[0e782ff8]", "0x20")
+ self.binary64_to_bid32("3", "[32353c3ac250aa1b]", "[0e782ff7]", "0x20")
+ self.binary64_to_bid32("4", "[32353c3ac250aa1b]", "[0e782ff8]", "0x20")
+ self.binary64_to_bid32("0", "[32a0b877cab94bd7]", "[0f792209]", "0x20")
+ self.binary64_to_bid32("1", "[32a0b877cab94bd7]", "[0f792208]", "0x20")
+ self.binary64_to_bid32("2", "[32a0b877cab94bd7]", "[0f792209]", "0x20")
+ self.binary64_to_bid32("3", "[32a0b877cab94bd7]", "[0f792208]", "0x20")
+ self.binary64_to_bid32("4", "[32a0b877cab94bd7]", "[0f792209]", "0x20")
+ self.binary64_to_bid32("0", "[33074d10ac041dd4]", "[106c0912]", "0x20")
+ self.binary64_to_bid32("1", "[33074d10ac041dd4]", "[106c0912]", "0x20")
+ self.binary64_to_bid32("2", "[33074d10ac041dd4]", "[106c0913]", "0x20")
+ self.binary64_to_bid32("3", "[33074d10ac041dd4]", "[106c0912]", "0x20")
+ self.binary64_to_bid32("4", "[33074d10ac041dd4]", "[106c0912]", "0x20")
+ self.binary64_to_bid32("0", "[3341e50ca60017d0]", "[6424c01d]", "0x20")
+ self.binary64_to_bid32("1", "[3341e50ca60017d0]", "[6424c01d]", "0x20")
+ self.binary64_to_bid32("2", "[3341e50ca60017d0]", "[6424c01e]", "0x20")
+ self.binary64_to_bid32("3", "[3341e50ca60017d0]", "[6424c01d]", "0x20")
+ self.binary64_to_bid32("4", "[3341e50ca60017d0]", "[6424c01d]", "0x20")
+ self.binary64_to_bid32("0", "[33ab4ef3674223c0]", "[6461a786]", "0x20")
+ self.binary64_to_bid32("1", "[33ab4ef3674223c0]", "[6461a786]", "0x20")
+ self.binary64_to_bid32("2", "[33ab4ef3674223c0]", "[6461a787]", "0x20")
+ self.binary64_to_bid32("3", "[33ab4ef3674223c0]", "[6461a786]", "0x20")
+ self.binary64_to_bid32("4", "[33ab4ef3674223c0]", "[6461a786]", "0x20")
+ self.binary64_to_bid32("0", "[34359bbd55f6774e]", "[133486ea]", "0x20")
+ self.binary64_to_bid32("1", "[34359bbd55f6774e]", "[133486e9]", "0x20")
+ self.binary64_to_bid32("2", "[34359bbd55f6774e]", "[133486ea]", "0x20")
+ self.binary64_to_bid32("3", "[34359bbd55f6774e]", "[133486e9]", "0x20")
+ self.binary64_to_bid32("4", "[34359bbd55f6774e]", "[133486ea]", "0x20")
+ self.binary64_to_bid32("0", "[34900e7db3b3f242]", "[1418faea]", "0x20")
+ self.binary64_to_bid32("1", "[34900e7db3b3f242]", "[1418fae9]", "0x20")
+ self.binary64_to_bid32("2", "[34900e7db3b3f242]", "[1418faea]", "0x20")
+ self.binary64_to_bid32("3", "[34900e7db3b3f242]", "[1418fae9]", "0x20")
+ self.binary64_to_bid32("4", "[34900e7db3b3f242]", "[1418faea]", "0x20")
+ self.binary64_to_bid32("0", "[350fcd63a1619261]", "[153f547a]", "0x20")
+ self.binary64_to_bid32("1", "[350fcd63a1619261]", "[153f547a]", "0x20")
+ self.binary64_to_bid32("2", "[350fcd63a1619261]", "[153f547b]", "0x20")
+ self.binary64_to_bid32("3", "[350fcd63a1619261]", "[153f547a]", "0x20")
+ self.binary64_to_bid32("4", "[350fcd63a1619261]", "[153f547a]", "0x20")
+ self.binary64_to_bid32("0", "[3526709a19af32c0]", "[1591dfd7]", "0x20")
+ self.binary64_to_bid32("1", "[3526709a19af32c0]", "[1591dfd6]", "0x20")
+ self.binary64_to_bid32("2", "[3526709a19af32c0]", "[1591dfd7]", "0x20")
+ self.binary64_to_bid32("3", "[3526709a19af32c0]", "[1591dfd6]", "0x20")
+ self.binary64_to_bid32("4", "[3526709a19af32c0]", "[1591dfd7]", "0x20")
+ self.binary64_to_bid32("0", "[35d9aa9ffa86a3d5]", "[1729ded5]", "0x20")
+ self.binary64_to_bid32("1", "[35d9aa9ffa86a3d5]", "[1729ded4]", "0x20")
+ self.binary64_to_bid32("2", "[35d9aa9ffa86a3d5]", "[1729ded5]", "0x20")
+ self.binary64_to_bid32("3", "[35d9aa9ffa86a3d5]", "[1729ded4]", "0x20")
+ self.binary64_to_bid32("4", "[35d9aa9ffa86a3d5]", "[1729ded5]", "0x20")
+ self.binary64_to_bid32("0", "[3603953c6404cb10]", "[17998e94]", "0x20")
+ self.binary64_to_bid32("1", "[3603953c6404cb10]", "[17998e93]", "0x20")
+ self.binary64_to_bid32("2", "[3603953c6404cb10]", "[17998e94]", "0x20")
+ self.binary64_to_bid32("3", "[3603953c6404cb10]", "[17998e93]", "0x20")
+ self.binary64_to_bid32("4", "[3603953c6404cb10]", "[17998e94]", "0x20")
+ self.binary64_to_bid32("0", "[369b39ab78718832]", "[19123112]", "0x20")
+ self.binary64_to_bid32("1", "[369b39ab78718832]", "[19123112]", "0x20")
+ self.binary64_to_bid32("2", "[369b39ab78718832]", "[19123113]", "0x20")
+ self.binary64_to_bid32("3", "[369b39ab78718832]", "[19123112]", "0x20")
+ self.binary64_to_bid32("4", "[369b39ab78718832]", "[19123112]", "0x20")
+ self.binary64_to_bid32("0", "[3704b677075b7e92]", "[1a11b71e]", "0x20")
+ self.binary64_to_bid32("1", "[3704b677075b7e92]", "[1a11b71d]", "0x20")
+ self.binary64_to_bid32("2", "[3704b677075b7e92]", "[1a11b71e]", "0x20")
+ self.binary64_to_bid32("3", "[3704b677075b7e92]", "[1a11b71d]", "0x20")
+ self.binary64_to_bid32("4", "[3704b677075b7e92]", "[1a11b71e]", "0x20")
+ self.binary64_to_bid32("0", "[3745ceb4b5a787f0]", "[1a9dd7af]", "0x20")
+ self.binary64_to_bid32("1", "[3745ceb4b5a787f0]", "[1a9dd7af]", "0x20")
+ self.binary64_to_bid32("2", "[3745ceb4b5a787f0]", "[1a9dd7b0]", "0x20")
+ self.binary64_to_bid32("3", "[3745ceb4b5a787f0]", "[1a9dd7af]", "0x20")
+ self.binary64_to_bid32("4", "[3745ceb4b5a787f0]", "[1a9dd7af]", "0x20")
+ self.binary64_to_bid32("0", "[37d9d69455a53bd9]", "[1c121a80]", "0x20")
+ self.binary64_to_bid32("1", "[37d9d69455a53bd9]", "[1c121a80]", "0x20")
+ self.binary64_to_bid32("2", "[37d9d69455a53bd9]", "[1c121a81]", "0x20")
+ self.binary64_to_bid32("3", "[37d9d69455a53bd9]", "[1c121a80]", "0x20")
+ self.binary64_to_bid32("4", "[37d9d69455a53bd9]", "[1c121a80]", "0x20")
+ self.binary64_to_bid32("0", "[38004711b496b820]", "[1c5b3d3b]", "0x20")
+ self.binary64_to_bid32("1", "[38004711b496b820]", "[1c5b3d3b]", "0x20")
+ self.binary64_to_bid32("2", "[38004711b496b820]", "[1c5b3d3c]", "0x20")
+ self.binary64_to_bid32("3", "[38004711b496b820]", "[1c5b3d3b]", "0x20")
+ self.binary64_to_bid32("4", "[38004711b496b820]", "[1c5b3d3b]", "0x20")
+ self.binary64_to_bid32("0", "[38af1af48501d87b]", "[1e11da83]", "0x20")
+ self.binary64_to_bid32("1", "[38af1af48501d87b]", "[1e11da83]", "0x20")
+ self.binary64_to_bid32("2", "[38af1af48501d87b]", "[1e11da84]", "0x20")
+ self.binary64_to_bid32("3", "[38af1af48501d87b]", "[1e11da83]", "0x20")
+ self.binary64_to_bid32("4", "[38af1af48501d87b]", "[1e11da83]", "0x20")
+ self.binary64_to_bid32("0", "[38f10cbcf545967e]", "[1e9f50c2]", "0x20")
+ self.binary64_to_bid32("1", "[38f10cbcf545967e]", "[1e9f50c1]", "0x20")
+ self.binary64_to_bid32("2", "[38f10cbcf545967e]", "[1e9f50c2]", "0x20")
+ self.binary64_to_bid32("3", "[38f10cbcf545967e]", "[1e9f50c1]", "0x20")
+ self.binary64_to_bid32("4", "[38f10cbcf545967e]", "[1e9f50c2]", "0x20")
+ self.binary64_to_bid32("0", "[3959e5539a5aa30c]", "[1f9e70bc]", "0x20")
+ self.binary64_to_bid32("1", "[3959e5539a5aa30c]", "[1f9e70bc]", "0x20")
+ self.binary64_to_bid32("2", "[3959e5539a5aa30c]", "[1f9e70bd]", "0x20")
+ self.binary64_to_bid32("3", "[3959e5539a5aa30c]", "[1f9e70bc]", "0x20")
+ self.binary64_to_bid32("4", "[3959e5539a5aa30c]", "[1f9e70bc]", "0x20")
+ self.binary64_to_bid32("0", "[39aa50b43ab3dff8]", "[2062fcaa]", "0x20")
+ self.binary64_to_bid32("1", "[39aa50b43ab3dff8]", "[2062fca9]", "0x20")
+ self.binary64_to_bid32("2", "[39aa50b43ab3dff8]", "[2062fcaa]", "0x20")
+ self.binary64_to_bid32("3", "[39aa50b43ab3dff8]", "[2062fca9]", "0x20")
+ self.binary64_to_bid32("4", "[39aa50b43ab3dff8]", "[2062fcaa]", "0x20")
+ self.binary64_to_bid32("0", "[3a32405b773fbdf3]", "[21a326a2]", "0x20")
+ self.binary64_to_bid32("1", "[3a32405b773fbdf3]", "[21a326a2]", "0x20")
+ self.binary64_to_bid32("2", "[3a32405b773fbdf3]", "[21a326a3]", "0x20")
+ self.binary64_to_bid32("3", "[3a32405b773fbdf3]", "[21a326a2]", "0x20")
+ self.binary64_to_bid32("4", "[3a32405b773fbdf3]", "[21a326a2]", "0x20")
+ self.binary64_to_bid32("0", "[3a956792e08fb566]", "[229a6219]", "0x20")
+ self.binary64_to_bid32("1", "[3a956792e08fb566]", "[229a6218]", "0x20")
+ self.binary64_to_bid32("2", "[3a956792e08fb566]", "[229a6219]", "0x20")
+ self.binary64_to_bid32("3", "[3a956792e08fb566]", "[229a6218]", "0x20")
+ self.binary64_to_bid32("4", "[3a956792e08fb566]", "[229a6219]", "0x20")
+ self.binary64_to_bid32("0", "[3b047bf052eac347]", "[23a0517a]", "0x20")
+ self.binary64_to_bid32("1", "[3b047bf052eac347]", "[23a05179]", "0x20")
+ self.binary64_to_bid32("2", "[3b047bf052eac347]", "[23a0517a]", "0x20")
+ self.binary64_to_bid32("3", "[3b047bf052eac347]", "[23a05179]", "0x20")
+ self.binary64_to_bid32("4", "[3b047bf052eac347]", "[23a0517a]", "0x20")
+ self.binary64_to_bid32("0", "[3b319d3ec4437590]", "[24163b78]", "0x20")
+ self.binary64_to_bid32("1", "[3b319d3ec4437590]", "[24163b77]", "0x20")
+ self.binary64_to_bid32("2", "[3b319d3ec4437590]", "[24163b78]", "0x20")
+ self.binary64_to_bid32("3", "[3b319d3ec4437590]", "[24163b77]", "0x20")
+ self.binary64_to_bid32("4", "[3b319d3ec4437590]", "[24163b78]", "0x20")
+ self.binary64_to_bid32("0", "[3bdb44e0f0f5c84a]", "[25a33e93]", "0x20")
+ self.binary64_to_bid32("1", "[3bdb44e0f0f5c84a]", "[25a33e93]", "0x20")
+ self.binary64_to_bid32("2", "[3bdb44e0f0f5c84a]", "[25a33e94]", "0x20")
+ self.binary64_to_bid32("3", "[3bdb44e0f0f5c84a]", "[25a33e93]", "0x20")
+ self.binary64_to_bid32("4", "[3bdb44e0f0f5c84a]", "[25a33e93]", "0x20")
+ self.binary64_to_bid32("0", "[3c0a07db9f8ea240]", "[261aea45]", "0x20")
+ self.binary64_to_bid32("1", "[3c0a07db9f8ea240]", "[261aea44]", "0x20")
+ self.binary64_to_bid32("2", "[3c0a07db9f8ea240]", "[261aea45]", "0x20")
+ self.binary64_to_bid32("3", "[3c0a07db9f8ea240]", "[261aea44]", "0x20")
+ self.binary64_to_bid32("4", "[3c0a07db9f8ea240]", "[261aea45]", "0x20")
+ self.binary64_to_bid32("0", "[3caa50226b05ba1c]", "[279bdc29]", "0x20")
+ self.binary64_to_bid32("1", "[3caa50226b05ba1c]", "[279bdc28]", "0x20")
+ self.binary64_to_bid32("2", "[3caa50226b05ba1c]", "[279bdc29]", "0x20")
+ self.binary64_to_bid32("3", "[3caa50226b05ba1c]", "[279bdc28]", "0x20")
+ self.binary64_to_bid32("4", "[3caa50226b05ba1c]", "[279bdc29]", "0x20")
+ self.binary64_to_bid32("0", "[3d09abb5d1218287]", "[2891652a]", "0x20")
+ self.binary64_to_bid32("1", "[3d09abb5d1218287]", "[28916529]", "0x20")
+ self.binary64_to_bid32("2", "[3d09abb5d1218287]", "[2891652a]", "0x20")
+ self.binary64_to_bid32("3", "[3d09abb5d1218287]", "[28916529]", "0x20")
+ self.binary64_to_bid32("4", "[3d09abb5d1218287]", "[2891652a]", "0x20")
+ self.binary64_to_bid32("0", "[3d71f55b23c8bf2d]", "[298f9392]", "0x20")
+ self.binary64_to_bid32("1", "[3d71f55b23c8bf2d]", "[298f9392]", "0x20")
+ self.binary64_to_bid32("2", "[3d71f55b23c8bf2d]", "[298f9393]", "0x20")
+ self.binary64_to_bid32("3", "[3d71f55b23c8bf2d]", "[298f9392]", "0x20")
+ self.binary64_to_bid32("4", "[3d71f55b23c8bf2d]", "[298f9392]", "0x20")
+ self.binary64_to_bid32("0", "[3ddee64c5ddf3f6a]", "[2a912719]", "0x20")
+ self.binary64_to_bid32("1", "[3ddee64c5ddf3f6a]", "[2a912719]", "0x20")
+ self.binary64_to_bid32("2", "[3ddee64c5ddf3f6a]", "[2a91271a]", "0x20")
+ self.binary64_to_bid32("3", "[3ddee64c5ddf3f6a]", "[2a912719]", "0x20")
+ self.binary64_to_bid32("4", "[3ddee64c5ddf3f6a]", "[2a912719]", "0x20")
+ self.binary64_to_bid32("0", "[3e0cbf3d630403b0]", "[2affa997]", "0x20")
+ self.binary64_to_bid32("1", "[3e0cbf3d630403b0]", "[2affa997]", "0x20")
+ self.binary64_to_bid32("2", "[3e0cbf3d630403b0]", "[2affa998]", "0x20")
+ self.binary64_to_bid32("3", "[3e0cbf3d630403b0]", "[2affa997]", "0x20")
+ self.binary64_to_bid32("4", "[3e0cbf3d630403b0]", "[2affa997]", "0x20")
+ self.binary64_to_bid32("0", "[3ea19b96f36ec68b]", "[2c501225]", "0x20")
+ self.binary64_to_bid32("1", "[3ea19b96f36ec68b]", "[2c501224]", "0x20")
+ self.binary64_to_bid32("2", "[3ea19b96f36ec68b]", "[2c501225]", "0x20")
+ self.binary64_to_bid32("3", "[3ea19b96f36ec68b]", "[2c501224]", "0x20")
+ self.binary64_to_bid32("4", "[3ea19b96f36ec68b]", "[2c501225]", "0x20")
+ self.binary64_to_bid32("0", "[3f003bb086fb444a]", "[2d2f3ea6]", "0x20")
+ self.binary64_to_bid32("1", "[3f003bb086fb444a]", "[2d2f3ea5]", "0x20")
+ self.binary64_to_bid32("2", "[3f003bb086fb444a]", "[2d2f3ea6]", "0x20")
+ self.binary64_to_bid32("3", "[3f003bb086fb444a]", "[2d2f3ea5]", "0x20")
+ self.binary64_to_bid32("4", "[3f003bb086fb444a]", "[2d2f3ea6]", "0x20")
+ self.binary64_to_bid32("0", "[3f6013e58253c16e]", "[2e1df274]", "0x20")
+ self.binary64_to_bid32("1", "[3f6013e58253c16e]", "[2e1df274]", "0x20")
+ self.binary64_to_bid32("2", "[3f6013e58253c16e]", "[2e1df275]", "0x20")
+ self.binary64_to_bid32("3", "[3f6013e58253c16e]", "[2e1df274]", "0x20")
+ self.binary64_to_bid32("4", "[3f6013e58253c16e]", "[2e1df274]", "0x20")
+ self.binary64_to_bid32("0", "[3faa000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary64_to_bid32("1", "[3faa000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary64_to_bid32("2", "[3faa000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary64_to_bid32("3", "[3faa000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary64_to_bid32("4", "[3faa000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary64_to_bid32("0", "[3fdfdb885172b95b]", "[2f4bf44e]", "0x20")
+ self.binary64_to_bid32("1", "[3fdfdb885172b95b]", "[2f4bf44d]", "0x20")
+ self.binary64_to_bid32("2", "[3fdfdb885172b95b]", "[2f4bf44e]", "0x20")
+ self.binary64_to_bid32("3", "[3fdfdb885172b95b]", "[2f4bf44d]", "0x20")
+ self.binary64_to_bid32("4", "[3fdfdb885172b95b]", "[2f4bf44e]", "0x20")
+ self.binary64_to_bid32("0", "[3ff0000000000000]", "[32800001]", "0x00")
+ self.binary64_to_bid32("1", "[3ff0000000000000]", "[32800001]", "0x00")
+ self.binary64_to_bid32("2", "[3ff0000000000000]", "[32800001]", "0x00")
+ self.binary64_to_bid32("3", "[3ff0000000000000]", "[32800001]", "0x00")
+ self.binary64_to_bid32("4", "[3ff0000000000000]", "[32800001]", "0x00")
+ self.binary64_to_bid32("0", "[3ff8000000000000]", "[3200000f]", "0x00")
+ self.binary64_to_bid32("1", "[3ff8000000000000]", "[3200000f]", "0x00")
+ self.binary64_to_bid32("2", "[3ff8000000000000]", "[3200000f]", "0x00")
+ self.binary64_to_bid32("3", "[3ff8000000000000]", "[3200000f]", "0x00")
+ self.binary64_to_bid32("4", "[3ff8000000000000]", "[3200000f]", "0x00")
+ self.binary64_to_bid32("0", "[3ffff10a2e572b60]", "[2f9e763c]", "0x20")
+ self.binary64_to_bid32("1", "[3ffff10a2e572b60]", "[2f9e763b]", "0x20")
+ self.binary64_to_bid32("2", "[3ffff10a2e572b60]", "[2f9e763c]", "0x20")
+ self.binary64_to_bid32("3", "[3ffff10a2e572b60]", "[2f9e763b]", "0x20")
+ self.binary64_to_bid32("4", "[3ffff10a2e572b60]", "[2f9e763c]", "0x20")
+ self.binary64_to_bid32("0", "[4050000000000000]", "[32800040]", "0x00")
+ self.binary64_to_bid32("1", "[4050000000000000]", "[32800040]", "0x00")
+ self.binary64_to_bid32("2", "[4050000000000000]", "[32800040]", "0x00")
+ self.binary64_to_bid32("3", "[4050000000000000]", "[32800040]", "0x00")
+ self.binary64_to_bid32("4", "[4050000000000000]", "[32800040]", "0x00")
+ self.binary64_to_bid32("0", "[408f380000000000]", "[328003e7]", "0x00")
+ self.binary64_to_bid32("1", "[408f380000000000]", "[328003e7]", "0x00")
+ self.binary64_to_bid32("2", "[408f380000000000]", "[328003e7]", "0x00")
+ self.binary64_to_bid32("3", "[408f380000000000]", "[328003e7]", "0x00")
+ self.binary64_to_bid32("4", "[408f380000000000]", "[328003e7]", "0x00")
+ self.binary64_to_bid32("0", "[408f400000000000]", "[328003e8]", "0x00")
+ self.binary64_to_bid32("1", "[408f400000000000]", "[328003e8]", "0x00")
+ self.binary64_to_bid32("2", "[408f400000000000]", "[328003e8]", "0x00")
+ self.binary64_to_bid32("3", "[408f400000000000]", "[328003e8]", "0x00")
+ self.binary64_to_bid32("4", "[408f400000000000]", "[328003e8]", "0x00")
+ self.binary64_to_bid32("0", "[409f3fdf8a0902de]", "[311e8460]", "0x20")
+ self.binary64_to_bid32("1", "[409f3fdf8a0902de]", "[311e8460]", "0x20")
+ self.binary64_to_bid32("2", "[409f3fdf8a0902de]", "[311e8461]", "0x20")
+ self.binary64_to_bid32("3", "[409f3fdf8a0902de]", "[311e8460]", "0x20")
+ self.binary64_to_bid32("4", "[409f3fdf8a0902de]", "[311e8460]", "0x20")
+ self.binary64_to_bid32("0", "[410fffffffffffff]", "[32280000]", "0x20")
+ self.binary64_to_bid32("1", "[410fffffffffffff]", "[3227ffff]", "0x20")
+ self.binary64_to_bid32("2", "[410fffffffffffff]", "[32280000]", "0x20")
+ self.binary64_to_bid32("3", "[410fffffffffffff]", "[3227ffff]", "0x20")
+ self.binary64_to_bid32("4", "[410fffffffffffff]", "[32280000]", "0x20")
+ self.binary64_to_bid32("0", "[417312cfffffffff]", "[331e8480]", "0x20")
+ self.binary64_to_bid32("1", "[417312cfffffffff]", "[331e847f]", "0x20")
+ self.binary64_to_bid32("2", "[417312cfffffffff]", "[331e8480]", "0x20")
+ self.binary64_to_bid32("3", "[417312cfffffffff]", "[331e847f]", "0x20")
+ self.binary64_to_bid32("4", "[417312cfffffffff]", "[331e8480]", "0x20")
+ self.binary64_to_bid32("0", "[41dfffff5dffffff]", "[3420c49b]", "0x20")
+ self.binary64_to_bid32("1", "[41dfffff5dffffff]", "[3420c49a]", "0x20")
+ self.binary64_to_bid32("2", "[41dfffff5dffffff]", "[3420c49b]", "0x20")
+ self.binary64_to_bid32("3", "[41dfffff5dffffff]", "[3420c49a]", "0x20")
+ self.binary64_to_bid32("4", "[41dfffff5dffffff]", "[3420c49b]", "0x20")
+ self.binary64_to_bid32("0", "[4212a05f1ffffff8]", "[349e8480]", "0x20")
+ self.binary64_to_bid32("1", "[4212a05f1ffffff8]", "[349e847f]", "0x20")
+ self.binary64_to_bid32("2", "[4212a05f1ffffff8]", "[349e8480]", "0x20")
+ self.binary64_to_bid32("3", "[4212a05f1ffffff8]", "[349e847f]", "0x20")
+ self.binary64_to_bid32("4", "[4212a05f1ffffff8]", "[349e8480]", "0x20")
+ self.binary64_to_bid32("0", "[42afffff4789ffff]", "[361ad7f2]", "0x20")
+ self.binary64_to_bid32("1", "[42afffff4789ffff]", "[361ad7f1]", "0x20")
+ self.binary64_to_bid32("2", "[42afffff4789ffff]", "[361ad7f2]", "0x20")
+ self.binary64_to_bid32("3", "[42afffff4789ffff]", "[361ad7f1]", "0x20")
+ self.binary64_to_bid32("4", "[42afffff4789ffff]", "[361ad7f2]", "0x20")
+ self.binary64_to_bid32("0", "[430fffed8c0c9fff]", "[37112e02]", "0x20")
+ self.binary64_to_bid32("1", "[430fffed8c0c9fff]", "[37112e01]", "0x20")
+ self.binary64_to_bid32("2", "[430fffed8c0c9fff]", "[37112e02]", "0x20")
+ self.binary64_to_bid32("3", "[430fffed8c0c9fff]", "[37112e01]", "0x20")
+ self.binary64_to_bid32("4", "[430fffed8c0c9fff]", "[37112e02]", "0x20")
+ self.binary64_to_bid32("0", "[437fffffe1ea437f]", "[3815fd80]", "0x20")
+ self.binary64_to_bid32("1", "[437fffffe1ea437f]", "[3815fd7f]", "0x20")
+ self.binary64_to_bid32("2", "[437fffffe1ea437f]", "[3815fd80]", "0x20")
+ self.binary64_to_bid32("3", "[437fffffe1ea437f]", "[3815fd7f]", "0x20")
+ self.binary64_to_bid32("4", "[437fffffe1ea437f]", "[3815fd80]", "0x20")
+ self.binary64_to_bid32("0", "[43dfffff89707fa7]", "[6e2cbcca]", "0x20")
+ self.binary64_to_bid32("1", "[43dfffff89707fa7]", "[6e2cbcc9]", "0x20")
+ self.binary64_to_bid32("2", "[43dfffff89707fa7]", "[6e2cbcca]", "0x20")
+ self.binary64_to_bid32("3", "[43dfffff89707fa7]", "[6e2cbcc9]", "0x20")
+ self.binary64_to_bid32("4", "[43dfffff89707fa7]", "[6e2cbcca]", "0x20")
+ self.binary64_to_bid32("0", "[4425af1d4223b590]", "[399e8480]", "0x20")
+ self.binary64_to_bid32("1", "[4425af1d4223b590]", "[399e847f]", "0x20")
+ self.binary64_to_bid32("2", "[4425af1d4223b590]", "[399e8480]", "0x20")
+ self.binary64_to_bid32("3", "[4425af1d4223b590]", "[399e847f]", "0x20")
+ self.binary64_to_bid32("4", "[4425af1d4223b590]", "[399e8480]", "0x20")
+ self.binary64_to_bid32("0", "[44affffd66098e15]", "[3af34ac1]", "0x20")
+ self.binary64_to_bid32("1", "[44affffd66098e15]", "[3af34ac0]", "0x20")
+ self.binary64_to_bid32("2", "[44affffd66098e15]", "[3af34ac1]", "0x20")
+ self.binary64_to_bid32("3", "[44affffd66098e15]", "[3af34ac0]", "0x20")
+ self.binary64_to_bid32("4", "[44affffd66098e15]", "[3af34ac1]", "0x20")
+ self.binary64_to_bid32("0", "[450ff393b28a7ad4]", "[3bc9acd2]", "0x20")
+ self.binary64_to_bid32("1", "[450ff393b28a7ad4]", "[3bc9acd1]", "0x20")
+ self.binary64_to_bid32("2", "[450ff393b28a7ad4]", "[3bc9acd2]", "0x20")
+ self.binary64_to_bid32("3", "[450ff393b28a7ad4]", "[3bc9acd1]", "0x20")
+ self.binary64_to_bid32("4", "[450ff393b28a7ad4]", "[3bc9acd2]", "0x20")
+ self.binary64_to_bid32("0", "[4564962d425c57fe]", "[3c9e6168]", "0x20")
+ self.binary64_to_bid32("1", "[4564962d425c57fe]", "[3c9e6168]", "0x20")
+ self.binary64_to_bid32("2", "[4564962d425c57fe]", "[3c9e6169]", "0x20")
+ self.binary64_to_bid32("3", "[4564962d425c57fe]", "[3c9e6168]", "0x20")
+ self.binary64_to_bid32("4", "[4564962d425c57fe]", "[3c9e6168]", "0x20")
+ self.binary64_to_bid32("0", "[45da241e5e8cddb9]", "[3db1610e]", "0x20")
+ self.binary64_to_bid32("1", "[45da241e5e8cddb9]", "[3db1610e]", "0x20")
+ self.binary64_to_bid32("2", "[45da241e5e8cddb9]", "[3db1610f]", "0x20")
+ self.binary64_to_bid32("3", "[45da241e5e8cddb9]", "[3db1610e]", "0x20")
+ self.binary64_to_bid32("4", "[45da241e5e8cddb9]", "[3db1610e]", "0x20")
+ self.binary64_to_bid32("0", "[46032645e1ba93f0]", "[3e1cf01b]", "0x20")
+ self.binary64_to_bid32("1", "[46032645e1ba93f0]", "[3e1cf01b]", "0x20")
+ self.binary64_to_bid32("2", "[46032645e1ba93f0]", "[3e1cf01c]", "0x20")
+ self.binary64_to_bid32("3", "[46032645e1ba93f0]", "[3e1cf01b]", "0x20")
+ self.binary64_to_bid32("4", "[46032645e1ba93f0]", "[3e1cf01b]", "0x20")
+ self.binary64_to_bid32("0", "[4687efd75a2938ec]", "[3f5c99f0]", "0x20")
+ self.binary64_to_bid32("1", "[4687efd75a2938ec]", "[3f5c99f0]", "0x20")
+ self.binary64_to_bid32("2", "[4687efd75a2938ec]", "[3f5c99f1]", "0x20")
+ self.binary64_to_bid32("3", "[4687efd75a2938ec]", "[3f5c99f0]", "0x20")
+ self.binary64_to_bid32("4", "[4687efd75a2938ec]", "[3f5c99f0]", "0x20")
+ self.binary64_to_bid32("0", "[47060358a0edd4bb]", "[4095ccfa]", "0x20")
+ self.binary64_to_bid32("1", "[47060358a0edd4bb]", "[4095ccfa]", "0x20")
+ self.binary64_to_bid32("2", "[47060358a0edd4bb]", "[4095ccfb]", "0x20")
+ self.binary64_to_bid32("3", "[47060358a0edd4bb]", "[4095ccfa]", "0x20")
+ self.binary64_to_bid32("4", "[47060358a0edd4bb]", "[4095ccfa]", "0x20")
+ self.binary64_to_bid32("0", "[47754123614b1b14]", "[419af176]", "0x20")
+ self.binary64_to_bid32("1", "[47754123614b1b14]", "[419af176]", "0x20")
+ self.binary64_to_bid32("2", "[47754123614b1b14]", "[419af177]", "0x20")
+ self.binary64_to_bid32("3", "[47754123614b1b14]", "[419af176]", "0x20")
+ self.binary64_to_bid32("4", "[47754123614b1b14]", "[419af176]", "0x20")
+ self.binary64_to_bid32("0", "[47bdf4170f0fdecc]", "[423cc0bc]", "0x20")
+ self.binary64_to_bid32("1", "[47bdf4170f0fdecc]", "[423cc0bb]", "0x20")
+ self.binary64_to_bid32("2", "[47bdf4170f0fdecc]", "[423cc0bc]", "0x20")
+ self.binary64_to_bid32("3", "[47bdf4170f0fdecc]", "[423cc0bb]", "0x20")
+ self.binary64_to_bid32("4", "[47bdf4170f0fdecc]", "[423cc0bc]", "0x20")
+ self.binary64_to_bid32("0", "[4816a192913417d8]", "[431d607d]", "0x20")
+ self.binary64_to_bid32("1", "[4816a192913417d8]", "[431d607c]", "0x20")
+ self.binary64_to_bid32("2", "[4816a192913417d8]", "[431d607d]", "0x20")
+ self.binary64_to_bid32("3", "[4816a192913417d8]", "[431d607c]", "0x20")
+ self.binary64_to_bid32("4", "[4816a192913417d8]", "[431d607d]", "0x20")
+ self.binary64_to_bid32("0", "[4887d2950dc76da4]", "[44279502]", "0x20")
+ self.binary64_to_bid32("1", "[4887d2950dc76da4]", "[44279501]", "0x20")
+ self.binary64_to_bid32("2", "[4887d2950dc76da4]", "[44279502]", "0x20")
+ self.binary64_to_bid32("3", "[4887d2950dc76da4]", "[44279501]", "0x20")
+ self.binary64_to_bid32("4", "[4887d2950dc76da4]", "[44279502]", "0x20")
+ self.binary64_to_bid32("0", "[48da7a3611152780]", "[712cc727]", "0x20")
+ self.binary64_to_bid32("1", "[48da7a3611152780]", "[712cc726]", "0x20")
+ self.binary64_to_bid32("2", "[48da7a3611152780]", "[712cc727]", "0x20")
+ self.binary64_to_bid32("3", "[48da7a3611152780]", "[712cc726]", "0x20")
+ self.binary64_to_bid32("4", "[48da7a3611152780]", "[712cc727]", "0x20")
+ self.binary64_to_bid32("0", "[49770105df3d47cb]", "[467d3ee4]", "0x20")
+ self.binary64_to_bid32("1", "[49770105df3d47cb]", "[467d3ee3]", "0x20")
+ self.binary64_to_bid32("2", "[49770105df3d47cb]", "[467d3ee4]", "0x20")
+ self.binary64_to_bid32("3", "[49770105df3d47cb]", "[467d3ee3]", "0x20")
+ self.binary64_to_bid32("4", "[49770105df3d47cb]", "[467d3ee4]", "0x20")
+ self.binary64_to_bid32("0", "[49dfeb49053f963c]", "[476f38c6]", "0x20")
+ self.binary64_to_bid32("1", "[49dfeb49053f963c]", "[476f38c5]", "0x20")
+ self.binary64_to_bid32("2", "[49dfeb49053f963c]", "[476f38c6]", "0x20")
+ self.binary64_to_bid32("3", "[49dfeb49053f963c]", "[476f38c5]", "0x20")
+ self.binary64_to_bid32("4", "[49dfeb49053f963c]", "[476f38c6]", "0x20")
+ self.binary64_to_bid32("0", "[4a255c1ba4ac35bc]", "[4817d125]", "0x20")
+ self.binary64_to_bid32("1", "[4a255c1ba4ac35bc]", "[4817d124]", "0x20")
+ self.binary64_to_bid32("2", "[4a255c1ba4ac35bc]", "[4817d125]", "0x20")
+ self.binary64_to_bid32("3", "[4a255c1ba4ac35bc]", "[4817d124]", "0x20")
+ self.binary64_to_bid32("4", "[4a255c1ba4ac35bc]", "[4817d125]", "0x20")
+ self.binary64_to_bid32("0", "[4aa93b14216453a4]", "[49480569]", "0x20")
+ self.binary64_to_bid32("1", "[4aa93b14216453a4]", "[49480569]", "0x20")
+ self.binary64_to_bid32("2", "[4aa93b14216453a4]", "[4948056a]", "0x20")
+ self.binary64_to_bid32("3", "[4aa93b14216453a4]", "[49480569]", "0x20")
+ self.binary64_to_bid32("4", "[4aa93b14216453a4]", "[49480569]", "0x20")
+ self.binary64_to_bid32("0", "[4ac837afa95b8c20]", "[499ba6ca]", "0x20")
+ self.binary64_to_bid32("1", "[4ac837afa95b8c20]", "[499ba6ca]", "0x20")
+ self.binary64_to_bid32("2", "[4ac837afa95b8c20]", "[499ba6cb]", "0x20")
+ self.binary64_to_bid32("3", "[4ac837afa95b8c20]", "[499ba6ca]", "0x20")
+ self.binary64_to_bid32("4", "[4ac837afa95b8c20]", "[499ba6ca]", "0x20")
+ self.binary64_to_bid32("0", "[4b69cded3f290cee]", "[4b1e2ba9]", "0x20")
+ self.binary64_to_bid32("1", "[4b69cded3f290cee]", "[4b1e2ba8]", "0x20")
+ self.binary64_to_bid32("2", "[4b69cded3f290cee]", "[4b1e2ba9]", "0x20")
+ self.binary64_to_bid32("3", "[4b69cded3f290cee]", "[4b1e2ba8]", "0x20")
+ self.binary64_to_bid32("4", "[4b69cded3f290cee]", "[4b1e2ba9]", "0x20")
+ self.binary64_to_bid32("0", "[4bd5870988bd007f]", "[4c2037b2]", "0x20")
+ self.binary64_to_bid32("1", "[4bd5870988bd007f]", "[4c2037b1]", "0x20")
+ self.binary64_to_bid32("2", "[4bd5870988bd007f]", "[4c2037b2]", "0x20")
+ self.binary64_to_bid32("3", "[4bd5870988bd007f]", "[4c2037b1]", "0x20")
+ self.binary64_to_bid32("4", "[4bd5870988bd007f]", "[4c2037b2]", "0x20")
+ self.binary64_to_bid32("0", "[4bf01e006690b100]", "[4c607b87]", "0x20")
+ self.binary64_to_bid32("1", "[4bf01e006690b100]", "[4c607b87]", "0x20")
+ self.binary64_to_bid32("2", "[4bf01e006690b100]", "[4c607b88]", "0x20")
+ self.binary64_to_bid32("3", "[4bf01e006690b100]", "[4c607b87]", "0x20")
+ self.binary64_to_bid32("4", "[4bf01e006690b100]", "[4c607b87]", "0x20")
+ self.binary64_to_bid32("0", "[4c923cc906326f30]", "[4defcb92]", "0x20")
+ self.binary64_to_bid32("1", "[4c923cc906326f30]", "[4defcb91]", "0x20")
+ self.binary64_to_bid32("2", "[4c923cc906326f30]", "[4defcb92]", "0x20")
+ self.binary64_to_bid32("3", "[4c923cc906326f30]", "[4defcb91]", "0x20")
+ self.binary64_to_bid32("4", "[4c923cc906326f30]", "[4defcb92]", "0x20")
+ self.binary64_to_bid32("0", "[4cd23cc906326f30]", "[4e91e322]", "0x20")
+ self.binary64_to_bid32("1", "[4cd23cc906326f30]", "[4e91e321]", "0x20")
+ self.binary64_to_bid32("2", "[4cd23cc906326f30]", "[4e91e322]", "0x20")
+ self.binary64_to_bid32("3", "[4cd23cc906326f30]", "[4e91e321]", "0x20")
+ self.binary64_to_bid32("4", "[4cd23cc906326f30]", "[4e91e322]", "0x20")
+ self.binary64_to_bid32("0", "[4d75741b2f123afa]", "[50158bec]", "0x20")
+ self.binary64_to_bid32("1", "[4d75741b2f123afa]", "[50158beb]", "0x20")
+ self.binary64_to_bid32("2", "[4d75741b2f123afa]", "[50158bec]", "0x20")
+ self.binary64_to_bid32("3", "[4d75741b2f123afa]", "[50158beb]", "0x20")
+ self.binary64_to_bid32("4", "[4d75741b2f123afa]", "[50158bec]", "0x20")
+ self.binary64_to_bid32("0", "[4dd3a949fc63a9ac]", "[50fe60bc]", "0x20")
+ self.binary64_to_bid32("1", "[4dd3a949fc63a9ac]", "[50fe60bb]", "0x20")
+ self.binary64_to_bid32("2", "[4dd3a949fc63a9ac]", "[50fe60bc]", "0x20")
+ self.binary64_to_bid32("3", "[4dd3a949fc63a9ac]", "[50fe60bb]", "0x20")
+ self.binary64_to_bid32("4", "[4dd3a949fc63a9ac]", "[50fe60bc]", "0x20")
+ self.binary64_to_bid32("0", "[4e360304b50de9e0]", "[51da8d1f]", "0x20")
+ self.binary64_to_bid32("1", "[4e360304b50de9e0]", "[51da8d1e]", "0x20")
+ self.binary64_to_bid32("2", "[4e360304b50de9e0]", "[51da8d1f]", "0x20")
+ self.binary64_to_bid32("3", "[4e360304b50de9e0]", "[51da8d1e]", "0x20")
+ self.binary64_to_bid32("4", "[4e360304b50de9e0]", "[51da8d1f]", "0x20")
+ self.binary64_to_bid32("0", "[4ea4106b6e9c2787]", "[52e9a668]", "0x20")
+ self.binary64_to_bid32("1", "[4ea4106b6e9c2787]", "[52e9a668]", "0x20")
+ self.binary64_to_bid32("2", "[4ea4106b6e9c2787]", "[52e9a669]", "0x20")
+ self.binary64_to_bid32("3", "[4ea4106b6e9c2787]", "[52e9a668]", "0x20")
+ self.binary64_to_bid32("4", "[4ea4106b6e9c2787]", "[52e9a668]", "0x20")
+ self.binary64_to_bid32("0", "[4ef1603ca9857344]", "[539d4744]", "0x20")
+ self.binary64_to_bid32("1", "[4ef1603ca9857344]", "[539d4743]", "0x20")
+ self.binary64_to_bid32("2", "[4ef1603ca9857344]", "[539d4744]", "0x20")
+ self.binary64_to_bid32("3", "[4ef1603ca9857344]", "[539d4743]", "0x20")
+ self.binary64_to_bid32("4", "[4ef1603ca9857344]", "[539d4744]", "0x20")
+ self.binary64_to_bid32("0", "[4f413d5336164e50]", "[545cf49a]", "0x20")
+ self.binary64_to_bid32("1", "[4f413d5336164e50]", "[545cf499]", "0x20")
+ self.binary64_to_bid32("2", "[4f413d5336164e50]", "[545cf49a]", "0x20")
+ self.binary64_to_bid32("3", "[4f413d5336164e50]", "[545cf499]", "0x20")
+ self.binary64_to_bid32("4", "[4f413d5336164e50]", "[545cf49a]", "0x20")
+ self.binary64_to_bid32("0", "[4fd7f9e596b9a28b]", "[55c230e2]", "0x20")
+ self.binary64_to_bid32("1", "[4fd7f9e596b9a28b]", "[55c230e1]", "0x20")
+ self.binary64_to_bid32("2", "[4fd7f9e596b9a28b]", "[55c230e2]", "0x20")
+ self.binary64_to_bid32("3", "[4fd7f9e596b9a28b]", "[55c230e1]", "0x20")
+ self.binary64_to_bid32("4", "[4fd7f9e596b9a28b]", "[55c230e2]", "0x20")
+ self.binary64_to_bid32("0", "[501f60b4a930ae18]", "[758a9968]", "0x20")
+ self.binary64_to_bid32("1", "[501f60b4a930ae18]", "[758a9968]", "0x20")
+ self.binary64_to_bid32("2", "[501f60b4a930ae18]", "[758a9969]", "0x20")
+ self.binary64_to_bid32("3", "[501f60b4a930ae18]", "[758a9968]", "0x20")
+ self.binary64_to_bid32("4", "[501f60b4a930ae18]", "[758a9968]", "0x20")
+ self.binary64_to_bid32("0", "[50afdd6b49ed200a]", "[57c81087]", "0x20")
+ self.binary64_to_bid32("1", "[50afdd6b49ed200a]", "[57c81087]", "0x20")
+ self.binary64_to_bid32("2", "[50afdd6b49ed200a]", "[57c81088]", "0x20")
+ self.binary64_to_bid32("3", "[50afdd6b49ed200a]", "[57c81087]", "0x20")
+ self.binary64_to_bid32("4", "[50afdd6b49ed200a]", "[57c81087]", "0x20")
+ self.binary64_to_bid32("0", "[50c769468bf7b560]", "[58152dac]", "0x20")
+ self.binary64_to_bid32("1", "[50c769468bf7b560]", "[58152dab]", "0x20")
+ self.binary64_to_bid32("2", "[50c769468bf7b560]", "[58152dac]", "0x20")
+ self.binary64_to_bid32("3", "[50c769468bf7b560]", "[58152dab]", "0x20")
+ self.binary64_to_bid32("4", "[50c769468bf7b560]", "[58152dac]", "0x20")
+ self.binary64_to_bid32("0", "[5171667a24ef9754]", "[59a03cb1]", "0x20")
+ self.binary64_to_bid32("1", "[5171667a24ef9754]", "[59a03cb0]", "0x20")
+ self.binary64_to_bid32("2", "[5171667a24ef9754]", "[59a03cb1]", "0x20")
+ self.binary64_to_bid32("3", "[5171667a24ef9754]", "[59a03cb0]", "0x20")
+ self.binary64_to_bid32("4", "[5171667a24ef9754]", "[59a03cb1]", "0x20")
+ self.binary64_to_bid32("0", "[51bb4ba1e1cd6c94]", "[5a50e948]", "0x20")
+ self.binary64_to_bid32("1", "[51bb4ba1e1cd6c94]", "[5a50e948]", "0x20")
+ self.binary64_to_bid32("2", "[51bb4ba1e1cd6c94]", "[5a50e949]", "0x20")
+ self.binary64_to_bid32("3", "[51bb4ba1e1cd6c94]", "[5a50e948]", "0x20")
+ self.binary64_to_bid32("4", "[51bb4ba1e1cd6c94]", "[5a50e948]", "0x20")
+ self.binary64_to_bid32("0", "[5234b99a833a956a]", "[5b8fba2f]", "0x20")
+ self.binary64_to_bid32("1", "[5234b99a833a956a]", "[5b8fba2f]", "0x20")
+ self.binary64_to_bid32("2", "[5234b99a833a956a]", "[5b8fba30]", "0x20")
+ self.binary64_to_bid32("3", "[5234b99a833a956a]", "[5b8fba2f]", "0x20")
+ self.binary64_to_bid32("4", "[5234b99a833a956a]", "[5b8fba2f]", "0x20")
+ self.binary64_to_bid32("0", "[52ad5c9279f54b2e]", "[5c9c851b]", "0x20")
+ self.binary64_to_bid32("1", "[52ad5c9279f54b2e]", "[5c9c851a]", "0x20")
+ self.binary64_to_bid32("2", "[52ad5c9279f54b2e]", "[5c9c851b]", "0x20")
+ self.binary64_to_bid32("3", "[52ad5c9279f54b2e]", "[5c9c851a]", "0x20")
+ self.binary64_to_bid32("4", "[52ad5c9279f54b2e]", "[5c9c851b]", "0x20")
+ self.binary64_to_bid32("0", "[52bbbbd1aedbf9c0]", "[5cb5e099]", "0x20")
+ self.binary64_to_bid32("1", "[52bbbbd1aedbf9c0]", "[5cb5e099]", "0x20")
+ self.binary64_to_bid32("2", "[52bbbbd1aedbf9c0]", "[5cb5e09a]", "0x20")
+ self.binary64_to_bid32("3", "[52bbbbd1aedbf9c0]", "[5cb5e099]", "0x20")
+ self.binary64_to_bid32("4", "[52bbbbd1aedbf9c0]", "[5cb5e099]", "0x20")
+ self.binary64_to_bid32("0", "[536404baf54249bc]", "[5e4fa52e]", "0x20")
+ self.binary64_to_bid32("1", "[536404baf54249bc]", "[5e4fa52d]", "0x20")
+ self.binary64_to_bid32("2", "[536404baf54249bc]", "[5e4fa52e]", "0x20")
+ self.binary64_to_bid32("3", "[536404baf54249bc]", "[5e4fa52d]", "0x20")
+ self.binary64_to_bid32("4", "[536404baf54249bc]", "[5e4fa52e]", "0x20")
+ self.binary64_to_bid32("0", "[5412ba093e5c6114]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("1", "[5412ba093e5c6114]", "[77f8967e]", "0x20")
+ self.binary64_to_bid32("2", "[5412ba093e5c6114]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("3", "[5412ba093e5c6114]", "[77f8967e]", "0x20")
+ self.binary64_to_bid32("4", "[5412ba093e5c6114]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("0", "[5412ba093e5c6115]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("1", "[5412ba093e5c6115]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("2", "[5412ba093e5c6115]", "[78000000]", "0x28")
+ self.binary64_to_bid32("3", "[5412ba093e5c6115]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("4", "[5412ba093e5c6115]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("0", "[5412ba095dc7701d]", "[78000000]", "0x28")
+ self.binary64_to_bid32("1", "[5412ba095dc7701d]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("2", "[5412ba095dc7701d]", "[78000000]", "0x28")
+ self.binary64_to_bid32("3", "[5412ba095dc7701d]", "[77f8967f]", "0x20")
+ self.binary64_to_bid32("4", "[5412ba095dc7701d]", "[78000000]", "0x28")
+ self.binary64_to_bid32("0", "[5412ba095dc7701e]", "[78000000]", "0x28")
+ self.binary64_to_bid32("1", "[5412ba095dc7701e]", "[77f8967f]", "0x28")
+ self.binary64_to_bid32("2", "[5412ba095dc7701e]", "[78000000]", "0x28")
+ self.binary64_to_bid32("3", "[5412ba095dc7701e]", "[77f8967f]", "0x28")
+ self.binary64_to_bid32("4", "[5412ba095dc7701e]", "[78000000]", "0x28")
+ self.binary64_to_bid32("0", "[7fefffffffffffff]", "[78000000]", "0x28")
+ self.binary64_to_bid32("1", "[7fefffffffffffff]", "[77f8967f]", "0x28")
+ self.binary64_to_bid32("2", "[7fefffffffffffff]", "[78000000]", "0x28")
+ self.binary64_to_bid32("3", "[7fefffffffffffff]", "[77f8967f]", "0x28")
+ self.binary64_to_bid32("4", "[7fefffffffffffff]", "[78000000]", "0x28")
+ self.binary64_to_bid32("0", "[7ff0000000000000]", "[78000000]", "0x00")
+ self.binary64_to_bid32("1", "[7ff0000000000000]", "[78000000]", "0x00")
+ self.binary64_to_bid32("2", "[7ff0000000000000]", "[78000000]", "0x00")
+ self.binary64_to_bid32("3", "[7ff0000000000000]", "[78000000]", "0x00")
+ self.binary64_to_bid32("4", "[7ff0000000000000]", "[78000000]", "0x00")
+ self.binary64_to_bid32("0", "[7ff6100000000000]", "[7c0c2000]", "0x01")
+ self.binary64_to_bid32("0", "[7ffe100000000000]", "[7c0c2000]", "0x00")
+ self.binary64_to_bid32("0", "[8000000000000001]", "[80000000]", "0x32")
+ self.binary64_to_bid32("1", "[8000000000000001]", "[80000001]", "0x32")
+ self.binary64_to_bid32("2", "[8000000000000001]", "[80000000]", "0x32")
+ self.binary64_to_bid32("3", "[8000000000000001]", "[80000000]", "0x32")
+ self.binary64_to_bid32("4", "[8000000000000001]", "[80000000]", "0x32")
+ self.binary64_to_bid32("0", "[800fffffffffffff]", "[80000000]", "0x32")
+ self.binary64_to_bid32("1", "[800fffffffffffff]", "[80000001]", "0x32")
+ self.binary64_to_bid32("2", "[800fffffffffffff]", "[80000000]", "0x32")
+ self.binary64_to_bid32("3", "[800fffffffffffff]", "[80000000]", "0x32")
+ self.binary64_to_bid32("4", "[800fffffffffffff]", "[80000000]", "0x32")
+ self.binary64_to_bid32("0", "[8010000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("1", "[8010000000000000]", "[80000001]", "0x30")
+ self.binary64_to_bid32("2", "[8010000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("3", "[8010000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("4", "[8010000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("0", "[8020000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("1", "[8020000000000000]", "[80000001]", "0x30")
+ self.binary64_to_bid32("2", "[8020000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("3", "[8020000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("4", "[8020000000000000]", "[80000000]", "0x30")
+ self.binary64_to_bid32("0", "[aacca6265e280b91]", "[80000000]", "0x30")
+ self.binary64_to_bid32("1", "[aacca6265e280b91]", "[80000001]", "0x30")
+ self.binary64_to_bid32("2", "[aacca6265e280b91]", "[80000000]", "0x30")
+ self.binary64_to_bid32("3", "[aacca6265e280b91]", "[80000000]", "0x30")
+ self.binary64_to_bid32("4", "[aacca6265e280b91]", "[80000000]", "0x30")
+ self.binary64_to_bid32("0", "[aaf665bf1d3e6a8c]", "[80000001]", "0x30")
+ self.binary64_to_bid32("1", "[aaf665bf1d3e6a8c]", "[80000001]", "0x30")
+ self.binary64_to_bid32("2", "[aaf665bf1d3e6a8c]", "[80000000]", "0x30")
+ self.binary64_to_bid32("3", "[aaf665bf1d3e6a8c]", "[80000000]", "0x30")
+ self.binary64_to_bid32("4", "[aaf665bf1d3e6a8c]", "[80000001]", "0x30")
+ self.binary64_to_bid32("0", "[aaf665bf1d3e6a8d]", "[80000001]", "0x30")
+ self.binary64_to_bid32("1", "[aaf665bf1d3e6a8d]", "[80000002]", "0x30")
+ self.binary64_to_bid32("2", "[aaf665bf1d3e6a8d]", "[80000001]", "0x30")
+ self.binary64_to_bid32("3", "[aaf665bf1d3e6a8d]", "[80000001]", "0x30")
+ self.binary64_to_bid32("4", "[aaf665bf1d3e6a8d]", "[80000001]", "0x30")
+ self.binary64_to_bid32("0", "[ab23d16f179d1660]", "[80000007]", "0x30")
+ self.binary64_to_bid32("1", "[ab23d16f179d1660]", "[80000008]", "0x30")
+ self.binary64_to_bid32("2", "[ab23d16f179d1660]", "[80000007]", "0x30")
+ self.binary64_to_bid32("3", "[ab23d16f179d1660]", "[80000007]", "0x30")
+ self.binary64_to_bid32("4", "[ab23d16f179d1660]", "[80000007]", "0x30")
+ self.binary64_to_bid32("0", "[abc472e8ee9f2318]", "[80001d37]", "0x30")
+ self.binary64_to_bid32("1", "[abc472e8ee9f2318]", "[80001d38]", "0x30")
+ self.binary64_to_bid32("2", "[abc472e8ee9f2318]", "[80001d37]", "0x30")
+ self.binary64_to_bid32("3", "[abc472e8ee9f2318]", "[80001d37]", "0x30")
+ self.binary64_to_bid32("4", "[abc472e8ee9f2318]", "[80001d37]", "0x30")
+ self.binary64_to_bid32("0", "[abcb5732007f9001]", "[80002710]", "0x30")
+ self.binary64_to_bid32("1", "[abcb5732007f9001]", "[80002710]", "0x30")
+ self.binary64_to_bid32("2", "[abcb5732007f9001]", "[8000270f]", "0x30")
+ self.binary64_to_bid32("3", "[abcb5732007f9001]", "[8000270f]", "0x30")
+ self.binary64_to_bid32("4", "[abcb5732007f9001]", "[80002710]", "0x30")
+ self.binary64_to_bid32("0", "[abcb5732007f9002]", "[80002710]", "0x30")
+ self.binary64_to_bid32("1", "[abcb5732007f9002]", "[80002710]", "0x30")
+ self.binary64_to_bid32("2", "[abcb5732007f9002]", "[8000270f]", "0x30")
+ self.binary64_to_bid32("3", "[abcb5732007f9002]", "[8000270f]", "0x30")
+ self.binary64_to_bid32("4", "[abcb5732007f9002]", "[80002710]", "0x30")
+ self.binary64_to_bid32("0", "[ac01167f404fba00]", "[800186a0]", "0x30")
+ self.binary64_to_bid32("1", "[ac01167f404fba00]", "[800186a0]", "0x30")
+ self.binary64_to_bid32("2", "[ac01167f404fba00]", "[8001869f]", "0x30")
+ self.binary64_to_bid32("3", "[ac01167f404fba00]", "[8001869f]", "0x30")
+ self.binary64_to_bid32("4", "[ac01167f404fba00]", "[800186a0]", "0x30")
+ self.binary64_to_bid32("0", "[ac01167f404fba01]", "[800186a0]", "0x30")
+ self.binary64_to_bid32("1", "[ac01167f404fba01]", "[800186a0]", "0x30")
+ self.binary64_to_bid32("2", "[ac01167f404fba01]", "[8001869f]", "0x30")
+ self.binary64_to_bid32("3", "[ac01167f404fba01]", "[8001869f]", "0x30")
+ self.binary64_to_bid32("4", "[ac01167f404fba01]", "[800186a0]", "0x30")
+ self.binary64_to_bid32("0", "[ac355c2076bf9a55]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("1", "[ac355c2076bf9a55]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("2", "[ac355c2076bf9a55]", "[800f423f]", "0x30")
+ self.binary64_to_bid32("3", "[ac355c2076bf9a55]", "[800f423f]", "0x30")
+ self.binary64_to_bid32("4", "[ac355c2076bf9a55]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("0", "[ac355c2076bf9a56]", "[800f4240]", "0x20")
+ self.binary64_to_bid32("1", "[ac355c2076bf9a56]", "[800f4241]", "0x20")
+ self.binary64_to_bid32("2", "[ac355c2076bf9a56]", "[800f4240]", "0x20")
+ self.binary64_to_bid32("3", "[ac355c2076bf9a56]", "[800f4240]", "0x20")
+ self.binary64_to_bid32("4", "[ac355c2076bf9a56]", "[800f4240]", "0x20")
+ self.binary64_to_bid32("0", "[ac3a4ad39fafc7ab]", "[8012c848]", "0x20")
+ self.binary64_to_bid32("1", "[ac3a4ad39fafc7ab]", "[8012c849]", "0x20")
+ self.binary64_to_bid32("2", "[ac3a4ad39fafc7ab]", "[8012c848]", "0x20")
+ self.binary64_to_bid32("3", "[ac3a4ad39fafc7ab]", "[8012c848]", "0x20")
+ self.binary64_to_bid32("4", "[ac3a4ad39fafc7ab]", "[8012c848]", "0x20")
+ self.binary64_to_bid32("0", "[ac6ab328946f80ea]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("1", "[ac6ab328946f80ea]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("2", "[ac6ab328946f80ea]", "[e018967f]", "0x20")
+ self.binary64_to_bid32("3", "[ac6ab328946f80ea]", "[e018967f]", "0x20")
+ self.binary64_to_bid32("4", "[ac6ab328946f80ea]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("0", "[ac6ab328946f80eb]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("1", "[ac6ab328946f80eb]", "[808f4241]", "0x20")
+ self.binary64_to_bid32("2", "[ac6ab328946f80eb]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("3", "[ac6ab328946f80eb]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("4", "[ac6ab328946f80eb]", "[808f4240]", "0x20")
+ self.binary64_to_bid32("0", "[aca853b5b972df12]", "[81163e8e]", "0x20")
+ self.binary64_to_bid32("1", "[aca853b5b972df12]", "[81163e8f]", "0x20")
+ self.binary64_to_bid32("2", "[aca853b5b972df12]", "[81163e8e]", "0x20")
+ self.binary64_to_bid32("3", "[aca853b5b972df12]", "[81163e8e]", "0x20")
+ self.binary64_to_bid32("4", "[aca853b5b972df12]", "[81163e8e]", "0x20")
+ self.binary64_to_bid32("0", "[ad0ba7712763fa46]", "[82102ef5]", "0x20")
+ self.binary64_to_bid32("1", "[ad0ba7712763fa46]", "[82102ef6]", "0x20")
+ self.binary64_to_bid32("2", "[ad0ba7712763fa46]", "[82102ef5]", "0x20")
+ self.binary64_to_bid32("3", "[ad0ba7712763fa46]", "[82102ef5]", "0x20")
+ self.binary64_to_bid32("4", "[ad0ba7712763fa46]", "[82102ef5]", "0x20")
+ self.binary64_to_bid32("0", "[ad416500e9734ef0]", "[82904981]", "0x20")
+ self.binary64_to_bid32("1", "[ad416500e9734ef0]", "[82904982]", "0x20")
+ self.binary64_to_bid32("2", "[ad416500e9734ef0]", "[82904981]", "0x20")
+ self.binary64_to_bid32("3", "[ad416500e9734ef0]", "[82904981]", "0x20")
+ self.binary64_to_bid32("4", "[ad416500e9734ef0]", "[82904981]", "0x20")
+ self.binary64_to_bid32("0", "[adca3ead732acfe8]", "[83bee8cb]", "0x20")
+ self.binary64_to_bid32("1", "[adca3ead732acfe8]", "[83bee8cc]", "0x20")
+ self.binary64_to_bid32("2", "[adca3ead732acfe8]", "[83bee8cb]", "0x20")
+ self.binary64_to_bid32("3", "[adca3ead732acfe8]", "[83bee8cb]", "0x20")
+ self.binary64_to_bid32("4", "[adca3ead732acfe8]", "[83bee8cb]", "0x20")
+ self.binary64_to_bid32("0", "[ae3e38723a5ce17c]", "[84dcb8d6]", "0x20")
+ self.binary64_to_bid32("1", "[ae3e38723a5ce17c]", "[84dcb8d7]", "0x20")
+ self.binary64_to_bid32("2", "[ae3e38723a5ce17c]", "[84dcb8d6]", "0x20")
+ self.binary64_to_bid32("3", "[ae3e38723a5ce17c]", "[84dcb8d6]", "0x20")
+ self.binary64_to_bid32("4", "[ae3e38723a5ce17c]", "[84dcb8d6]", "0x20")
+ self.binary64_to_bid32("0", "[ae8d89d8aafcdc00]", "[859d005d]", "0x20")
+ self.binary64_to_bid32("1", "[ae8d89d8aafcdc00]", "[859d005d]", "0x20")
+ self.binary64_to_bid32("2", "[ae8d89d8aafcdc00]", "[859d005c]", "0x20")
+ self.binary64_to_bid32("3", "[ae8d89d8aafcdc00]", "[859d005c]", "0x20")
+ self.binary64_to_bid32("4", "[ae8d89d8aafcdc00]", "[859d005d]", "0x20")
+ self.binary64_to_bid32("0", "[af07d459a7157161]", "[86bbe4f6]", "0x20")
+ self.binary64_to_bid32("1", "[af07d459a7157161]", "[86bbe4f6]", "0x20")
+ self.binary64_to_bid32("2", "[af07d459a7157161]", "[86bbe4f5]", "0x20")
+ self.binary64_to_bid32("3", "[af07d459a7157161]", "[86bbe4f5]", "0x20")
+ self.binary64_to_bid32("4", "[af07d459a7157161]", "[86bbe4f6]", "0x20")
+ self.binary64_to_bid32("0", "[af169303d061f9c0]", "[86f17a99]", "0x20")
+ self.binary64_to_bid32("1", "[af169303d061f9c0]", "[86f17a9a]", "0x20")
+ self.binary64_to_bid32("2", "[af169303d061f9c0]", "[86f17a99]", "0x20")
+ self.binary64_to_bid32("3", "[af169303d061f9c0]", "[86f17a99]", "0x20")
+ self.binary64_to_bid32("4", "[af169303d061f9c0]", "[86f17a99]", "0x20")
+ self.binary64_to_bid32("0", "[afc2d79467444ac4]", "[889365ee]", "0x20")
+ self.binary64_to_bid32("1", "[afc2d79467444ac4]", "[889365ef]", "0x20")
+ self.binary64_to_bid32("2", "[afc2d79467444ac4]", "[889365ee]", "0x20")
+ self.binary64_to_bid32("3", "[afc2d79467444ac4]", "[889365ee]", "0x20")
+ self.binary64_to_bid32("4", "[afc2d79467444ac4]", "[889365ee]", "0x20")
+ self.binary64_to_bid32("0", "[b03e7e0a161271a9]", "[89a82e9a]", "0x20")
+ self.binary64_to_bid32("1", "[b03e7e0a161271a9]", "[89a82e9b]", "0x20")
+ self.binary64_to_bid32("2", "[b03e7e0a161271a9]", "[89a82e9a]", "0x20")
+ self.binary64_to_bid32("3", "[b03e7e0a161271a9]", "[89a82e9a]", "0x20")
+ self.binary64_to_bid32("4", "[b03e7e0a161271a9]", "[89a82e9a]", "0x20")
+ self.binary64_to_bid32("0", "[b05a01fb6d8b1a20]", "[e26916e2]", "0x20")
+ self.binary64_to_bid32("1", "[b05a01fb6d8b1a20]", "[e26916e2]", "0x20")
+ self.binary64_to_bid32("2", "[b05a01fb6d8b1a20]", "[e26916e1]", "0x20")
+ self.binary64_to_bid32("3", "[b05a01fb6d8b1a20]", "[e26916e1]", "0x20")
+ self.binary64_to_bid32("4", "[b05a01fb6d8b1a20]", "[e26916e2]", "0x20")
+ self.binary64_to_bid32("0", "[b0fd00a765a8c400]", "[8b8fa789]", "0x20")
+ self.binary64_to_bid32("1", "[b0fd00a765a8c400]", "[8b8fa78a]", "0x20")
+ self.binary64_to_bid32("2", "[b0fd00a765a8c400]", "[8b8fa789]", "0x20")
+ self.binary64_to_bid32("3", "[b0fd00a765a8c400]", "[8b8fa789]", "0x20")
+ self.binary64_to_bid32("4", "[b0fd00a765a8c400]", "[8b8fa789]", "0x20")
+ self.binary64_to_bid32("0", "[b10d0681489839d5]", "[8b9f5563]", "0x20")
+ self.binary64_to_bid32("1", "[b10d0681489839d5]", "[8b9f5563]", "0x20")
+ self.binary64_to_bid32("2", "[b10d0681489839d5]", "[8b9f5562]", "0x20")
+ self.binary64_to_bid32("3", "[b10d0681489839d5]", "[8b9f5562]", "0x20")
+ self.binary64_to_bid32("4", "[b10d0681489839d5]", "[8b9f5563]", "0x20")
+ self.binary64_to_bid32("0", "[b1c7206bfc4ccabe]", "[8d664270]", "0x20")
+ self.binary64_to_bid32("1", "[b1c7206bfc4ccabe]", "[8d664271]", "0x20")
+ self.binary64_to_bid32("2", "[b1c7206bfc4ccabe]", "[8d664270]", "0x20")
+ self.binary64_to_bid32("3", "[b1c7206bfc4ccabe]", "[8d664270]", "0x20")
+ self.binary64_to_bid32("4", "[b1c7206bfc4ccabe]", "[8d664270]", "0x20")
+ self.binary64_to_bid32("0", "[b2353c3ac250aa1b]", "[8e782ff8]", "0x20")
+ self.binary64_to_bid32("1", "[b2353c3ac250aa1b]", "[8e782ff8]", "0x20")
+ self.binary64_to_bid32("2", "[b2353c3ac250aa1b]", "[8e782ff7]", "0x20")
+ self.binary64_to_bid32("3", "[b2353c3ac250aa1b]", "[8e782ff7]", "0x20")
+ self.binary64_to_bid32("4", "[b2353c3ac250aa1b]", "[8e782ff8]", "0x20")
+ self.binary64_to_bid32("0", "[b2a0b877cab94bd7]", "[8f792209]", "0x20")
+ self.binary64_to_bid32("1", "[b2a0b877cab94bd7]", "[8f792209]", "0x20")
+ self.binary64_to_bid32("2", "[b2a0b877cab94bd7]", "[8f792208]", "0x20")
+ self.binary64_to_bid32("3", "[b2a0b877cab94bd7]", "[8f792208]", "0x20")
+ self.binary64_to_bid32("4", "[b2a0b877cab94bd7]", "[8f792209]", "0x20")
+ self.binary64_to_bid32("0", "[b3074d10ac041dd4]", "[906c0912]", "0x20")
+ self.binary64_to_bid32("1", "[b3074d10ac041dd4]", "[906c0913]", "0x20")
+ self.binary64_to_bid32("2", "[b3074d10ac041dd4]", "[906c0912]", "0x20")
+ self.binary64_to_bid32("3", "[b3074d10ac041dd4]", "[906c0912]", "0x20")
+ self.binary64_to_bid32("4", "[b3074d10ac041dd4]", "[906c0912]", "0x20")
+ self.binary64_to_bid32("0", "[b341e50ca60017d0]", "[e424c01d]", "0x20")
+ self.binary64_to_bid32("1", "[b341e50ca60017d0]", "[e424c01e]", "0x20")
+ self.binary64_to_bid32("2", "[b341e50ca60017d0]", "[e424c01d]", "0x20")
+ self.binary64_to_bid32("3", "[b341e50ca60017d0]", "[e424c01d]", "0x20")
+ self.binary64_to_bid32("4", "[b341e50ca60017d0]", "[e424c01d]", "0x20")
+ self.binary64_to_bid32("0", "[b3ab4ef3674223c0]", "[e461a786]", "0x20")
+ self.binary64_to_bid32("1", "[b3ab4ef3674223c0]", "[e461a787]", "0x20")
+ self.binary64_to_bid32("2", "[b3ab4ef3674223c0]", "[e461a786]", "0x20")
+ self.binary64_to_bid32("3", "[b3ab4ef3674223c0]", "[e461a786]", "0x20")
+ self.binary64_to_bid32("4", "[b3ab4ef3674223c0]", "[e461a786]", "0x20")
+ self.binary64_to_bid32("0", "[b4359bbd55f6774e]", "[933486ea]", "0x20")
+ self.binary64_to_bid32("1", "[b4359bbd55f6774e]", "[933486ea]", "0x20")
+ self.binary64_to_bid32("2", "[b4359bbd55f6774e]", "[933486e9]", "0x20")
+ self.binary64_to_bid32("3", "[b4359bbd55f6774e]", "[933486e9]", "0x20")
+ self.binary64_to_bid32("4", "[b4359bbd55f6774e]", "[933486ea]", "0x20")
+ self.binary64_to_bid32("0", "[b4900e7db3b3f242]", "[9418faea]", "0x20")
+ self.binary64_to_bid32("1", "[b4900e7db3b3f242]", "[9418faea]", "0x20")
+ self.binary64_to_bid32("2", "[b4900e7db3b3f242]", "[9418fae9]", "0x20")
+ self.binary64_to_bid32("3", "[b4900e7db3b3f242]", "[9418fae9]", "0x20")
+ self.binary64_to_bid32("4", "[b4900e7db3b3f242]", "[9418faea]", "0x20")
+ self.binary64_to_bid32("0", "[b50fcd63a1619261]", "[953f547a]", "0x20")
+ self.binary64_to_bid32("1", "[b50fcd63a1619261]", "[953f547b]", "0x20")
+ self.binary64_to_bid32("2", "[b50fcd63a1619261]", "[953f547a]", "0x20")
+ self.binary64_to_bid32("3", "[b50fcd63a1619261]", "[953f547a]", "0x20")
+ self.binary64_to_bid32("4", "[b50fcd63a1619261]", "[953f547a]", "0x20")
+ self.binary64_to_bid32("0", "[b526709a19af32c0]", "[9591dfd7]", "0x20")
+ self.binary64_to_bid32("1", "[b526709a19af32c0]", "[9591dfd7]", "0x20")
+ self.binary64_to_bid32("2", "[b526709a19af32c0]", "[9591dfd6]", "0x20")
+ self.binary64_to_bid32("3", "[b526709a19af32c0]", "[9591dfd6]", "0x20")
+ self.binary64_to_bid32("4", "[b526709a19af32c0]", "[9591dfd7]", "0x20")
+ self.binary64_to_bid32("0", "[b5d9aa9ffa86a3d5]", "[9729ded5]", "0x20")
+ self.binary64_to_bid32("1", "[b5d9aa9ffa86a3d5]", "[9729ded5]", "0x20")
+ self.binary64_to_bid32("2", "[b5d9aa9ffa86a3d5]", "[9729ded4]", "0x20")
+ self.binary64_to_bid32("3", "[b5d9aa9ffa86a3d5]", "[9729ded4]", "0x20")
+ self.binary64_to_bid32("4", "[b5d9aa9ffa86a3d5]", "[9729ded5]", "0x20")
+ self.binary64_to_bid32("0", "[b603953c6404cb10]", "[97998e94]", "0x20")
+ self.binary64_to_bid32("1", "[b603953c6404cb10]", "[97998e94]", "0x20")
+ self.binary64_to_bid32("2", "[b603953c6404cb10]", "[97998e93]", "0x20")
+ self.binary64_to_bid32("3", "[b603953c6404cb10]", "[97998e93]", "0x20")
+ self.binary64_to_bid32("4", "[b603953c6404cb10]", "[97998e94]", "0x20")
+ self.binary64_to_bid32("0", "[b69b39ab78718832]", "[99123112]", "0x20")
+ self.binary64_to_bid32("1", "[b69b39ab78718832]", "[99123113]", "0x20")
+ self.binary64_to_bid32("2", "[b69b39ab78718832]", "[99123112]", "0x20")
+ self.binary64_to_bid32("3", "[b69b39ab78718832]", "[99123112]", "0x20")
+ self.binary64_to_bid32("4", "[b69b39ab78718832]", "[99123112]", "0x20")
+ self.binary64_to_bid32("0", "[b704b677075b7e92]", "[9a11b71e]", "0x20")
+ self.binary64_to_bid32("1", "[b704b677075b7e92]", "[9a11b71e]", "0x20")
+ self.binary64_to_bid32("2", "[b704b677075b7e92]", "[9a11b71d]", "0x20")
+ self.binary64_to_bid32("3", "[b704b677075b7e92]", "[9a11b71d]", "0x20")
+ self.binary64_to_bid32("4", "[b704b677075b7e92]", "[9a11b71e]", "0x20")
+ self.binary64_to_bid32("0", "[b745ceb4b5a787f0]", "[9a9dd7af]", "0x20")
+ self.binary64_to_bid32("1", "[b745ceb4b5a787f0]", "[9a9dd7b0]", "0x20")
+ self.binary64_to_bid32("2", "[b745ceb4b5a787f0]", "[9a9dd7af]", "0x20")
+ self.binary64_to_bid32("3", "[b745ceb4b5a787f0]", "[9a9dd7af]", "0x20")
+ self.binary64_to_bid32("4", "[b745ceb4b5a787f0]", "[9a9dd7af]", "0x20")
+ self.binary64_to_bid32("0", "[b7d9d69455a53bd9]", "[9c121a80]", "0x20")
+ self.binary64_to_bid32("1", "[b7d9d69455a53bd9]", "[9c121a81]", "0x20")
+ self.binary64_to_bid32("2", "[b7d9d69455a53bd9]", "[9c121a80]", "0x20")
+ self.binary64_to_bid32("3", "[b7d9d69455a53bd9]", "[9c121a80]", "0x20")
+ self.binary64_to_bid32("4", "[b7d9d69455a53bd9]", "[9c121a80]", "0x20")
+ self.binary64_to_bid32("0", "[b8004711b496b820]", "[9c5b3d3b]", "0x20")
+ self.binary64_to_bid32("1", "[b8004711b496b820]", "[9c5b3d3c]", "0x20")
+ self.binary64_to_bid32("2", "[b8004711b496b820]", "[9c5b3d3b]", "0x20")
+ self.binary64_to_bid32("3", "[b8004711b496b820]", "[9c5b3d3b]", "0x20")
+ self.binary64_to_bid32("4", "[b8004711b496b820]", "[9c5b3d3b]", "0x20")
+ self.binary64_to_bid32("0", "[b8af1af48501d87b]", "[9e11da83]", "0x20")
+ self.binary64_to_bid32("1", "[b8af1af48501d87b]", "[9e11da84]", "0x20")
+ self.binary64_to_bid32("2", "[b8af1af48501d87b]", "[9e11da83]", "0x20")
+ self.binary64_to_bid32("3", "[b8af1af48501d87b]", "[9e11da83]", "0x20")
+ self.binary64_to_bid32("4", "[b8af1af48501d87b]", "[9e11da83]", "0x20")
+ self.binary64_to_bid32("0", "[b8f10cbcf545967e]", "[9e9f50c2]", "0x20")
+ self.binary64_to_bid32("1", "[b8f10cbcf545967e]", "[9e9f50c2]", "0x20")
+ self.binary64_to_bid32("2", "[b8f10cbcf545967e]", "[9e9f50c1]", "0x20")
+ self.binary64_to_bid32("3", "[b8f10cbcf545967e]", "[9e9f50c1]", "0x20")
+ self.binary64_to_bid32("4", "[b8f10cbcf545967e]", "[9e9f50c2]", "0x20")
+ self.binary64_to_bid32("0", "[b959e5539a5aa30c]", "[9f9e70bc]", "0x20")
+ self.binary64_to_bid32("1", "[b959e5539a5aa30c]", "[9f9e70bd]", "0x20")
+ self.binary64_to_bid32("2", "[b959e5539a5aa30c]", "[9f9e70bc]", "0x20")
+ self.binary64_to_bid32("3", "[b959e5539a5aa30c]", "[9f9e70bc]", "0x20")
+ self.binary64_to_bid32("4", "[b959e5539a5aa30c]", "[9f9e70bc]", "0x20")
+ self.binary64_to_bid32("0", "[b9aa50b43ab3dff8]", "[a062fcaa]", "0x20")
+ self.binary64_to_bid32("1", "[b9aa50b43ab3dff8]", "[a062fcaa]", "0x20")
+ self.binary64_to_bid32("2", "[b9aa50b43ab3dff8]", "[a062fca9]", "0x20")
+ self.binary64_to_bid32("3", "[b9aa50b43ab3dff8]", "[a062fca9]", "0x20")
+ self.binary64_to_bid32("4", "[b9aa50b43ab3dff8]", "[a062fcaa]", "0x20")
+ self.binary64_to_bid32("0", "[ba32405b773fbdf3]", "[a1a326a2]", "0x20")
+ self.binary64_to_bid32("1", "[ba32405b773fbdf3]", "[a1a326a3]", "0x20")
+ self.binary64_to_bid32("2", "[ba32405b773fbdf3]", "[a1a326a2]", "0x20")
+ self.binary64_to_bid32("3", "[ba32405b773fbdf3]", "[a1a326a2]", "0x20")
+ self.binary64_to_bid32("4", "[ba32405b773fbdf3]", "[a1a326a2]", "0x20")
+ self.binary64_to_bid32("0", "[ba956792e08fb566]", "[a29a6219]", "0x20")
+ self.binary64_to_bid32("1", "[ba956792e08fb566]", "[a29a6219]", "0x20")
+ self.binary64_to_bid32("2", "[ba956792e08fb566]", "[a29a6218]", "0x20")
+ self.binary64_to_bid32("3", "[ba956792e08fb566]", "[a29a6218]", "0x20")
+ self.binary64_to_bid32("4", "[ba956792e08fb566]", "[a29a6219]", "0x20")
+ self.binary64_to_bid32("0", "[bb047bf052eac347]", "[a3a0517a]", "0x20")
+ self.binary64_to_bid32("1", "[bb047bf052eac347]", "[a3a0517a]", "0x20")
+ self.binary64_to_bid32("2", "[bb047bf052eac347]", "[a3a05179]", "0x20")
+ self.binary64_to_bid32("3", "[bb047bf052eac347]", "[a3a05179]", "0x20")
+ self.binary64_to_bid32("4", "[bb047bf052eac347]", "[a3a0517a]", "0x20")
+ self.binary64_to_bid32("0", "[bb319d3ec4437590]", "[a4163b78]", "0x20")
+ self.binary64_to_bid32("1", "[bb319d3ec4437590]", "[a4163b78]", "0x20")
+ self.binary64_to_bid32("2", "[bb319d3ec4437590]", "[a4163b77]", "0x20")
+ self.binary64_to_bid32("3", "[bb319d3ec4437590]", "[a4163b77]", "0x20")
+ self.binary64_to_bid32("4", "[bb319d3ec4437590]", "[a4163b78]", "0x20")
+ self.binary64_to_bid32("0", "[bbdb44e0f0f5c84a]", "[a5a33e93]", "0x20")
+ self.binary64_to_bid32("1", "[bbdb44e0f0f5c84a]", "[a5a33e94]", "0x20")
+ self.binary64_to_bid32("2", "[bbdb44e0f0f5c84a]", "[a5a33e93]", "0x20")
+ self.binary64_to_bid32("3", "[bbdb44e0f0f5c84a]", "[a5a33e93]", "0x20")
+ self.binary64_to_bid32("4", "[bbdb44e0f0f5c84a]", "[a5a33e93]", "0x20")
+ self.binary64_to_bid32("0", "[bc0a07db9f8ea240]", "[a61aea45]", "0x20")
+ self.binary64_to_bid32("1", "[bc0a07db9f8ea240]", "[a61aea45]", "0x20")
+ self.binary64_to_bid32("2", "[bc0a07db9f8ea240]", "[a61aea44]", "0x20")
+ self.binary64_to_bid32("3", "[bc0a07db9f8ea240]", "[a61aea44]", "0x20")
+ self.binary64_to_bid32("4", "[bc0a07db9f8ea240]", "[a61aea45]", "0x20")
+ self.binary64_to_bid32("0", "[bcaa50226b05ba1c]", "[a79bdc29]", "0x20")
+ self.binary64_to_bid32("1", "[bcaa50226b05ba1c]", "[a79bdc29]", "0x20")
+ self.binary64_to_bid32("2", "[bcaa50226b05ba1c]", "[a79bdc28]", "0x20")
+ self.binary64_to_bid32("3", "[bcaa50226b05ba1c]", "[a79bdc28]", "0x20")
+ self.binary64_to_bid32("4", "[bcaa50226b05ba1c]", "[a79bdc29]", "0x20")
+ self.binary64_to_bid32("0", "[bd09abb5d1218287]", "[a891652a]", "0x20")
+ self.binary64_to_bid32("1", "[bd09abb5d1218287]", "[a891652a]", "0x20")
+ self.binary64_to_bid32("2", "[bd09abb5d1218287]", "[a8916529]", "0x20")
+ self.binary64_to_bid32("3", "[bd09abb5d1218287]", "[a8916529]", "0x20")
+ self.binary64_to_bid32("4", "[bd09abb5d1218287]", "[a891652a]", "0x20")
+ self.binary64_to_bid32("0", "[bd71f55b23c8bf2d]", "[a98f9392]", "0x20")
+ self.binary64_to_bid32("1", "[bd71f55b23c8bf2d]", "[a98f9393]", "0x20")
+ self.binary64_to_bid32("2", "[bd71f55b23c8bf2d]", "[a98f9392]", "0x20")
+ self.binary64_to_bid32("3", "[bd71f55b23c8bf2d]", "[a98f9392]", "0x20")
+ self.binary64_to_bid32("4", "[bd71f55b23c8bf2d]", "[a98f9392]", "0x20")
+ self.binary64_to_bid32("0", "[bddee64c5ddf3f6a]", "[aa912719]", "0x20")
+ self.binary64_to_bid32("1", "[bddee64c5ddf3f6a]", "[aa91271a]", "0x20")
+ self.binary64_to_bid32("2", "[bddee64c5ddf3f6a]", "[aa912719]", "0x20")
+ self.binary64_to_bid32("3", "[bddee64c5ddf3f6a]", "[aa912719]", "0x20")
+ self.binary64_to_bid32("4", "[bddee64c5ddf3f6a]", "[aa912719]", "0x20")
+ self.binary64_to_bid32("0", "[be0cbf3d630403b0]", "[aaffa997]", "0x20")
+ self.binary64_to_bid32("1", "[be0cbf3d630403b0]", "[aaffa998]", "0x20")
+ self.binary64_to_bid32("2", "[be0cbf3d630403b0]", "[aaffa997]", "0x20")
+ self.binary64_to_bid32("3", "[be0cbf3d630403b0]", "[aaffa997]", "0x20")
+ self.binary64_to_bid32("4", "[be0cbf3d630403b0]", "[aaffa997]", "0x20")
+ self.binary64_to_bid32("0", "[bea19b96f36ec68b]", "[ac501225]", "0x20")
+ self.binary64_to_bid32("1", "[bea19b96f36ec68b]", "[ac501225]", "0x20")
+ self.binary64_to_bid32("2", "[bea19b96f36ec68b]", "[ac501224]", "0x20")
+ self.binary64_to_bid32("3", "[bea19b96f36ec68b]", "[ac501224]", "0x20")
+ self.binary64_to_bid32("4", "[bea19b96f36ec68b]", "[ac501225]", "0x20")
+ self.binary64_to_bid32("0", "[bf003bb086fb444a]", "[ad2f3ea6]", "0x20")
+ self.binary64_to_bid32("1", "[bf003bb086fb444a]", "[ad2f3ea6]", "0x20")
+ self.binary64_to_bid32("2", "[bf003bb086fb444a]", "[ad2f3ea5]", "0x20")
+ self.binary64_to_bid32("3", "[bf003bb086fb444a]", "[ad2f3ea5]", "0x20")
+ self.binary64_to_bid32("4", "[bf003bb086fb444a]", "[ad2f3ea6]", "0x20")
+ self.binary64_to_bid32("0", "[bf6013e58253c16e]", "[ae1df274]", "0x20")
+ self.binary64_to_bid32("1", "[bf6013e58253c16e]", "[ae1df275]", "0x20")
+ self.binary64_to_bid32("2", "[bf6013e58253c16e]", "[ae1df274]", "0x20")
+ self.binary64_to_bid32("3", "[bf6013e58253c16e]", "[ae1df274]", "0x20")
+ self.binary64_to_bid32("4", "[bf6013e58253c16e]", "[ae1df274]", "0x20")
+ self.binary64_to_bid32("0", "[bfaa000000000000]", "[aecd7c6d]", "0x00")
+ self.binary64_to_bid32("1", "[bfaa000000000000]", "[aecd7c6d]", "0x00")
+ self.binary64_to_bid32("2", "[bfaa000000000000]", "[aecd7c6d]", "0x00")
+ self.binary64_to_bid32("3", "[bfaa000000000000]", "[aecd7c6d]", "0x00")
+ self.binary64_to_bid32("4", "[bfaa000000000000]", "[aecd7c6d]", "0x00")
+ self.binary64_to_bid32("0", "[bfdfdb885172b95b]", "[af4bf44e]", "0x20")
+ self.binary64_to_bid32("1", "[bfdfdb885172b95b]", "[af4bf44e]", "0x20")
+ self.binary64_to_bid32("2", "[bfdfdb885172b95b]", "[af4bf44d]", "0x20")
+ self.binary64_to_bid32("3", "[bfdfdb885172b95b]", "[af4bf44d]", "0x20")
+ self.binary64_to_bid32("4", "[bfdfdb885172b95b]", "[af4bf44e]", "0x20")
+ self.binary64_to_bid32("0", "[bff0000000000000]", "[b2800001]", "0x00")
+ self.binary64_to_bid32("1", "[bff0000000000000]", "[b2800001]", "0x00")
+ self.binary64_to_bid32("2", "[bff0000000000000]", "[b2800001]", "0x00")
+ self.binary64_to_bid32("3", "[bff0000000000000]", "[b2800001]", "0x00")
+ self.binary64_to_bid32("4", "[bff0000000000000]", "[b2800001]", "0x00")
+ self.binary64_to_bid32("0", "[bff8000000000000]", "[b200000f]", "0x00")
+ self.binary64_to_bid32("1", "[bff8000000000000]", "[b200000f]", "0x00")
+ self.binary64_to_bid32("2", "[bff8000000000000]", "[b200000f]", "0x00")
+ self.binary64_to_bid32("3", "[bff8000000000000]", "[b200000f]", "0x00")
+ self.binary64_to_bid32("4", "[bff8000000000000]", "[b200000f]", "0x00")
+ self.binary64_to_bid32("0", "[bffff10a2e572b60]", "[af9e763c]", "0x20")
+ self.binary64_to_bid32("1", "[bffff10a2e572b60]", "[af9e763c]", "0x20")
+ self.binary64_to_bid32("2", "[bffff10a2e572b60]", "[af9e763b]", "0x20")
+ self.binary64_to_bid32("3", "[bffff10a2e572b60]", "[af9e763b]", "0x20")
+ self.binary64_to_bid32("4", "[bffff10a2e572b60]", "[af9e763c]", "0x20")
+ self.binary64_to_bid32("0", "[c050000000000000]", "[b2800040]", "0x00")
+ self.binary64_to_bid32("1", "[c050000000000000]", "[b2800040]", "0x00")
+ self.binary64_to_bid32("2", "[c050000000000000]", "[b2800040]", "0x00")
+ self.binary64_to_bid32("3", "[c050000000000000]", "[b2800040]", "0x00")
+ self.binary64_to_bid32("4", "[c050000000000000]", "[b2800040]", "0x00")
+ self.binary64_to_bid32("0", "[c08f380000000000]", "[b28003e7]", "0x00")
+ self.binary64_to_bid32("1", "[c08f380000000000]", "[b28003e7]", "0x00")
+ self.binary64_to_bid32("2", "[c08f380000000000]", "[b28003e7]", "0x00")
+ self.binary64_to_bid32("3", "[c08f380000000000]", "[b28003e7]", "0x00")
+ self.binary64_to_bid32("4", "[c08f380000000000]", "[b28003e7]", "0x00")
+ self.binary64_to_bid32("0", "[c08f400000000000]", "[b28003e8]", "0x00")
+ self.binary64_to_bid32("1", "[c08f400000000000]", "[b28003e8]", "0x00")
+ self.binary64_to_bid32("2", "[c08f400000000000]", "[b28003e8]", "0x00")
+ self.binary64_to_bid32("3", "[c08f400000000000]", "[b28003e8]", "0x00")
+ self.binary64_to_bid32("4", "[c08f400000000000]", "[b28003e8]", "0x00")
+ self.binary64_to_bid32("0", "[c09f3fdf8a0902de]", "[b11e8460]", "0x20")
+ self.binary64_to_bid32("1", "[c09f3fdf8a0902de]", "[b11e8461]", "0x20")
+ self.binary64_to_bid32("2", "[c09f3fdf8a0902de]", "[b11e8460]", "0x20")
+ self.binary64_to_bid32("3", "[c09f3fdf8a0902de]", "[b11e8460]", "0x20")
+ self.binary64_to_bid32("4", "[c09f3fdf8a0902de]", "[b11e8460]", "0x20")
+ self.binary64_to_bid32("0", "[c10fffffffffffff]", "[b2280000]", "0x20")
+ self.binary64_to_bid32("1", "[c10fffffffffffff]", "[b2280000]", "0x20")
+ self.binary64_to_bid32("2", "[c10fffffffffffff]", "[b227ffff]", "0x20")
+ self.binary64_to_bid32("3", "[c10fffffffffffff]", "[b227ffff]", "0x20")
+ self.binary64_to_bid32("4", "[c10fffffffffffff]", "[b2280000]", "0x20")
+ self.binary64_to_bid32("0", "[c17312cfffffffff]", "[b31e8480]", "0x20")
+ self.binary64_to_bid32("1", "[c17312cfffffffff]", "[b31e8480]", "0x20")
+ self.binary64_to_bid32("2", "[c17312cfffffffff]", "[b31e847f]", "0x20")
+ self.binary64_to_bid32("3", "[c17312cfffffffff]", "[b31e847f]", "0x20")
+ self.binary64_to_bid32("4", "[c17312cfffffffff]", "[b31e8480]", "0x20")
+ self.binary64_to_bid32("0", "[c1dfffff5dffffff]", "[b420c49b]", "0x20")
+ self.binary64_to_bid32("1", "[c1dfffff5dffffff]", "[b420c49b]", "0x20")
+ self.binary64_to_bid32("2", "[c1dfffff5dffffff]", "[b420c49a]", "0x20")
+ self.binary64_to_bid32("3", "[c1dfffff5dffffff]", "[b420c49a]", "0x20")
+ self.binary64_to_bid32("4", "[c1dfffff5dffffff]", "[b420c49b]", "0x20")
+ self.binary64_to_bid32("0", "[c212a05f1ffffff8]", "[b49e8480]", "0x20")
+ self.binary64_to_bid32("1", "[c212a05f1ffffff8]", "[b49e8480]", "0x20")
+ self.binary64_to_bid32("2", "[c212a05f1ffffff8]", "[b49e847f]", "0x20")
+ self.binary64_to_bid32("3", "[c212a05f1ffffff8]", "[b49e847f]", "0x20")
+ self.binary64_to_bid32("4", "[c212a05f1ffffff8]", "[b49e8480]", "0x20")
+ self.binary64_to_bid32("0", "[c2afffff4789ffff]", "[b61ad7f2]", "0x20")
+ self.binary64_to_bid32("1", "[c2afffff4789ffff]", "[b61ad7f2]", "0x20")
+ self.binary64_to_bid32("2", "[c2afffff4789ffff]", "[b61ad7f1]", "0x20")
+ self.binary64_to_bid32("3", "[c2afffff4789ffff]", "[b61ad7f1]", "0x20")
+ self.binary64_to_bid32("4", "[c2afffff4789ffff]", "[b61ad7f2]", "0x20")
+ self.binary64_to_bid32("0", "[c30fffed8c0c9fff]", "[b7112e02]", "0x20")
+ self.binary64_to_bid32("1", "[c30fffed8c0c9fff]", "[b7112e02]", "0x20")
+ self.binary64_to_bid32("2", "[c30fffed8c0c9fff]", "[b7112e01]", "0x20")
+ self.binary64_to_bid32("3", "[c30fffed8c0c9fff]", "[b7112e01]", "0x20")
+ self.binary64_to_bid32("4", "[c30fffed8c0c9fff]", "[b7112e02]", "0x20")
+ self.binary64_to_bid32("0", "[c37fffffe1ea437f]", "[b815fd80]", "0x20")
+ self.binary64_to_bid32("1", "[c37fffffe1ea437f]", "[b815fd80]", "0x20")
+ self.binary64_to_bid32("2", "[c37fffffe1ea437f]", "[b815fd7f]", "0x20")
+ self.binary64_to_bid32("3", "[c37fffffe1ea437f]", "[b815fd7f]", "0x20")
+ self.binary64_to_bid32("4", "[c37fffffe1ea437f]", "[b815fd80]", "0x20")
+ self.binary64_to_bid32("0", "[c3dfffff89707fa7]", "[ee2cbcca]", "0x20")
+ self.binary64_to_bid32("1", "[c3dfffff89707fa7]", "[ee2cbcca]", "0x20")
+ self.binary64_to_bid32("2", "[c3dfffff89707fa7]", "[ee2cbcc9]", "0x20")
+ self.binary64_to_bid32("3", "[c3dfffff89707fa7]", "[ee2cbcc9]", "0x20")
+ self.binary64_to_bid32("4", "[c3dfffff89707fa7]", "[ee2cbcca]", "0x20")
+ self.binary64_to_bid32("0", "[c425af1d4223b590]", "[b99e8480]", "0x20")
+ self.binary64_to_bid32("1", "[c425af1d4223b590]", "[b99e8480]", "0x20")
+ self.binary64_to_bid32("2", "[c425af1d4223b590]", "[b99e847f]", "0x20")
+ self.binary64_to_bid32("3", "[c425af1d4223b590]", "[b99e847f]", "0x20")
+ self.binary64_to_bid32("4", "[c425af1d4223b590]", "[b99e8480]", "0x20")
+ self.binary64_to_bid32("0", "[c4affffd66098e15]", "[baf34ac1]", "0x20")
+ self.binary64_to_bid32("1", "[c4affffd66098e15]", "[baf34ac1]", "0x20")
+ self.binary64_to_bid32("2", "[c4affffd66098e15]", "[baf34ac0]", "0x20")
+ self.binary64_to_bid32("3", "[c4affffd66098e15]", "[baf34ac0]", "0x20")
+ self.binary64_to_bid32("4", "[c4affffd66098e15]", "[baf34ac1]", "0x20")
+ self.binary64_to_bid32("0", "[c50ff393b28a7ad4]", "[bbc9acd2]", "0x20")
+ self.binary64_to_bid32("1", "[c50ff393b28a7ad4]", "[bbc9acd2]", "0x20")
+ self.binary64_to_bid32("2", "[c50ff393b28a7ad4]", "[bbc9acd1]", "0x20")
+ self.binary64_to_bid32("3", "[c50ff393b28a7ad4]", "[bbc9acd1]", "0x20")
+ self.binary64_to_bid32("4", "[c50ff393b28a7ad4]", "[bbc9acd2]", "0x20")
+ self.binary64_to_bid32("0", "[c564962d425c57fe]", "[bc9e6168]", "0x20")
+ self.binary64_to_bid32("1", "[c564962d425c57fe]", "[bc9e6169]", "0x20")
+ self.binary64_to_bid32("2", "[c564962d425c57fe]", "[bc9e6168]", "0x20")
+ self.binary64_to_bid32("3", "[c564962d425c57fe]", "[bc9e6168]", "0x20")
+ self.binary64_to_bid32("4", "[c564962d425c57fe]", "[bc9e6168]", "0x20")
+ self.binary64_to_bid32("0", "[c5da241e5e8cddb9]", "[bdb1610e]", "0x20")
+ self.binary64_to_bid32("1", "[c5da241e5e8cddb9]", "[bdb1610f]", "0x20")
+ self.binary64_to_bid32("2", "[c5da241e5e8cddb9]", "[bdb1610e]", "0x20")
+ self.binary64_to_bid32("3", "[c5da241e5e8cddb9]", "[bdb1610e]", "0x20")
+ self.binary64_to_bid32("4", "[c5da241e5e8cddb9]", "[bdb1610e]", "0x20")
+ self.binary64_to_bid32("0", "[c6032645e1ba93f0]", "[be1cf01b]", "0x20")
+ self.binary64_to_bid32("1", "[c6032645e1ba93f0]", "[be1cf01c]", "0x20")
+ self.binary64_to_bid32("2", "[c6032645e1ba93f0]", "[be1cf01b]", "0x20")
+ self.binary64_to_bid32("3", "[c6032645e1ba93f0]", "[be1cf01b]", "0x20")
+ self.binary64_to_bid32("4", "[c6032645e1ba93f0]", "[be1cf01b]", "0x20")
+ self.binary64_to_bid32("0", "[c687efd75a2938ec]", "[bf5c99f0]", "0x20")
+ self.binary64_to_bid32("1", "[c687efd75a2938ec]", "[bf5c99f1]", "0x20")
+ self.binary64_to_bid32("2", "[c687efd75a2938ec]", "[bf5c99f0]", "0x20")
+ self.binary64_to_bid32("3", "[c687efd75a2938ec]", "[bf5c99f0]", "0x20")
+ self.binary64_to_bid32("4", "[c687efd75a2938ec]", "[bf5c99f0]", "0x20")
+ self.binary64_to_bid32("0", "[c7060358a0edd4bb]", "[c095ccfa]", "0x20")
+ self.binary64_to_bid32("1", "[c7060358a0edd4bb]", "[c095ccfb]", "0x20")
+ self.binary64_to_bid32("2", "[c7060358a0edd4bb]", "[c095ccfa]", "0x20")
+ self.binary64_to_bid32("3", "[c7060358a0edd4bb]", "[c095ccfa]", "0x20")
+ self.binary64_to_bid32("4", "[c7060358a0edd4bb]", "[c095ccfa]", "0x20")
+ self.binary64_to_bid32("0", "[c7754123614b1b14]", "[c19af176]", "0x20")
+ self.binary64_to_bid32("1", "[c7754123614b1b14]", "[c19af177]", "0x20")
+ self.binary64_to_bid32("2", "[c7754123614b1b14]", "[c19af176]", "0x20")
+ self.binary64_to_bid32("3", "[c7754123614b1b14]", "[c19af176]", "0x20")
+ self.binary64_to_bid32("4", "[c7754123614b1b14]", "[c19af176]", "0x20")
+ self.binary64_to_bid32("0", "[c7bdf4170f0fdecc]", "[c23cc0bc]", "0x20")
+ self.binary64_to_bid32("1", "[c7bdf4170f0fdecc]", "[c23cc0bc]", "0x20")
+ self.binary64_to_bid32("2", "[c7bdf4170f0fdecc]", "[c23cc0bb]", "0x20")
+ self.binary64_to_bid32("3", "[c7bdf4170f0fdecc]", "[c23cc0bb]", "0x20")
+ self.binary64_to_bid32("4", "[c7bdf4170f0fdecc]", "[c23cc0bc]", "0x20")
+ self.binary64_to_bid32("0", "[c816a192913417d8]", "[c31d607d]", "0x20")
+ self.binary64_to_bid32("1", "[c816a192913417d8]", "[c31d607d]", "0x20")
+ self.binary64_to_bid32("2", "[c816a192913417d8]", "[c31d607c]", "0x20")
+ self.binary64_to_bid32("3", "[c816a192913417d8]", "[c31d607c]", "0x20")
+ self.binary64_to_bid32("4", "[c816a192913417d8]", "[c31d607d]", "0x20")
+ self.binary64_to_bid32("0", "[c887d2950dc76da4]", "[c4279502]", "0x20")
+ self.binary64_to_bid32("1", "[c887d2950dc76da4]", "[c4279502]", "0x20")
+ self.binary64_to_bid32("2", "[c887d2950dc76da4]", "[c4279501]", "0x20")
+ self.binary64_to_bid32("3", "[c887d2950dc76da4]", "[c4279501]", "0x20")
+ self.binary64_to_bid32("4", "[c887d2950dc76da4]", "[c4279502]", "0x20")
+ self.binary64_to_bid32("0", "[c8da7a3611152780]", "[f12cc727]", "0x20")
+ self.binary64_to_bid32("1", "[c8da7a3611152780]", "[f12cc727]", "0x20")
+ self.binary64_to_bid32("2", "[c8da7a3611152780]", "[f12cc726]", "0x20")
+ self.binary64_to_bid32("3", "[c8da7a3611152780]", "[f12cc726]", "0x20")
+ self.binary64_to_bid32("4", "[c8da7a3611152780]", "[f12cc727]", "0x20")
+ self.binary64_to_bid32("0", "[c9770105df3d47cb]", "[c67d3ee4]", "0x20")
+ self.binary64_to_bid32("1", "[c9770105df3d47cb]", "[c67d3ee4]", "0x20")
+ self.binary64_to_bid32("2", "[c9770105df3d47cb]", "[c67d3ee3]", "0x20")
+ self.binary64_to_bid32("3", "[c9770105df3d47cb]", "[c67d3ee3]", "0x20")
+ self.binary64_to_bid32("4", "[c9770105df3d47cb]", "[c67d3ee4]", "0x20")
+ self.binary64_to_bid32("0", "[c9dfeb49053f963c]", "[c76f38c6]", "0x20")
+ self.binary64_to_bid32("1", "[c9dfeb49053f963c]", "[c76f38c6]", "0x20")
+ self.binary64_to_bid32("2", "[c9dfeb49053f963c]", "[c76f38c5]", "0x20")
+ self.binary64_to_bid32("3", "[c9dfeb49053f963c]", "[c76f38c5]", "0x20")
+ self.binary64_to_bid32("4", "[c9dfeb49053f963c]", "[c76f38c6]", "0x20")
+ self.binary64_to_bid32("0", "[ca255c1ba4ac35bc]", "[c817d125]", "0x20")
+ self.binary64_to_bid32("1", "[ca255c1ba4ac35bc]", "[c817d125]", "0x20")
+ self.binary64_to_bid32("2", "[ca255c1ba4ac35bc]", "[c817d124]", "0x20")
+ self.binary64_to_bid32("3", "[ca255c1ba4ac35bc]", "[c817d124]", "0x20")
+ self.binary64_to_bid32("4", "[ca255c1ba4ac35bc]", "[c817d125]", "0x20")
+ self.binary64_to_bid32("0", "[caa93b14216453a4]", "[c9480569]", "0x20")
+ self.binary64_to_bid32("1", "[caa93b14216453a4]", "[c948056a]", "0x20")
+ self.binary64_to_bid32("2", "[caa93b14216453a4]", "[c9480569]", "0x20")
+ self.binary64_to_bid32("3", "[caa93b14216453a4]", "[c9480569]", "0x20")
+ self.binary64_to_bid32("4", "[caa93b14216453a4]", "[c9480569]", "0x20")
+ self.binary64_to_bid32("0", "[cac837afa95b8c20]", "[c99ba6ca]", "0x20")
+ self.binary64_to_bid32("1", "[cac837afa95b8c20]", "[c99ba6cb]", "0x20")
+ self.binary64_to_bid32("2", "[cac837afa95b8c20]", "[c99ba6ca]", "0x20")
+ self.binary64_to_bid32("3", "[cac837afa95b8c20]", "[c99ba6ca]", "0x20")
+ self.binary64_to_bid32("4", "[cac837afa95b8c20]", "[c99ba6ca]", "0x20")
+ self.binary64_to_bid32("0", "[cb69cded3f290cee]", "[cb1e2ba9]", "0x20")
+ self.binary64_to_bid32("1", "[cb69cded3f290cee]", "[cb1e2ba9]", "0x20")
+ self.binary64_to_bid32("2", "[cb69cded3f290cee]", "[cb1e2ba8]", "0x20")
+ self.binary64_to_bid32("3", "[cb69cded3f290cee]", "[cb1e2ba8]", "0x20")
+ self.binary64_to_bid32("4", "[cb69cded3f290cee]", "[cb1e2ba9]", "0x20")
+ self.binary64_to_bid32("0", "[cbd5870988bd007f]", "[cc2037b2]", "0x20")
+ self.binary64_to_bid32("1", "[cbd5870988bd007f]", "[cc2037b2]", "0x20")
+ self.binary64_to_bid32("2", "[cbd5870988bd007f]", "[cc2037b1]", "0x20")
+ self.binary64_to_bid32("3", "[cbd5870988bd007f]", "[cc2037b1]", "0x20")
+ self.binary64_to_bid32("4", "[cbd5870988bd007f]", "[cc2037b2]", "0x20")
+ self.binary64_to_bid32("0", "[cbf01e006690b100]", "[cc607b87]", "0x20")
+ self.binary64_to_bid32("1", "[cbf01e006690b100]", "[cc607b88]", "0x20")
+ self.binary64_to_bid32("2", "[cbf01e006690b100]", "[cc607b87]", "0x20")
+ self.binary64_to_bid32("3", "[cbf01e006690b100]", "[cc607b87]", "0x20")
+ self.binary64_to_bid32("4", "[cbf01e006690b100]", "[cc607b87]", "0x20")
+ self.binary64_to_bid32("0", "[cc923cc906326f30]", "[cdefcb92]", "0x20")
+ self.binary64_to_bid32("1", "[cc923cc906326f30]", "[cdefcb92]", "0x20")
+ self.binary64_to_bid32("2", "[cc923cc906326f30]", "[cdefcb91]", "0x20")
+ self.binary64_to_bid32("3", "[cc923cc906326f30]", "[cdefcb91]", "0x20")
+ self.binary64_to_bid32("4", "[cc923cc906326f30]", "[cdefcb92]", "0x20")
+ self.binary64_to_bid32("0", "[ccd23cc906326f30]", "[ce91e322]", "0x20")
+ self.binary64_to_bid32("1", "[ccd23cc906326f30]", "[ce91e322]", "0x20")
+ self.binary64_to_bid32("2", "[ccd23cc906326f30]", "[ce91e321]", "0x20")
+ self.binary64_to_bid32("3", "[ccd23cc906326f30]", "[ce91e321]", "0x20")
+ self.binary64_to_bid32("4", "[ccd23cc906326f30]", "[ce91e322]", "0x20")
+ self.binary64_to_bid32("0", "[cd75741b2f123afa]", "[d0158bec]", "0x20")
+ self.binary64_to_bid32("1", "[cd75741b2f123afa]", "[d0158bec]", "0x20")
+ self.binary64_to_bid32("2", "[cd75741b2f123afa]", "[d0158beb]", "0x20")
+ self.binary64_to_bid32("3", "[cd75741b2f123afa]", "[d0158beb]", "0x20")
+ self.binary64_to_bid32("4", "[cd75741b2f123afa]", "[d0158bec]", "0x20")
+ self.binary64_to_bid32("0", "[cdd3a949fc63a9ac]", "[d0fe60bc]", "0x20")
+ self.binary64_to_bid32("1", "[cdd3a949fc63a9ac]", "[d0fe60bc]", "0x20")
+ self.binary64_to_bid32("2", "[cdd3a949fc63a9ac]", "[d0fe60bb]", "0x20")
+ self.binary64_to_bid32("3", "[cdd3a949fc63a9ac]", "[d0fe60bb]", "0x20")
+ self.binary64_to_bid32("4", "[cdd3a949fc63a9ac]", "[d0fe60bc]", "0x20")
+ self.binary64_to_bid32("0", "[ce360304b50de9e0]", "[d1da8d1f]", "0x20")
+ self.binary64_to_bid32("1", "[ce360304b50de9e0]", "[d1da8d1f]", "0x20")
+ self.binary64_to_bid32("2", "[ce360304b50de9e0]", "[d1da8d1e]", "0x20")
+ self.binary64_to_bid32("3", "[ce360304b50de9e0]", "[d1da8d1e]", "0x20")
+ self.binary64_to_bid32("4", "[ce360304b50de9e0]", "[d1da8d1f]", "0x20")
+ self.binary64_to_bid32("0", "[cea4106b6e9c2787]", "[d2e9a668]", "0x20")
+ self.binary64_to_bid32("1", "[cea4106b6e9c2787]", "[d2e9a669]", "0x20")
+ self.binary64_to_bid32("2", "[cea4106b6e9c2787]", "[d2e9a668]", "0x20")
+ self.binary64_to_bid32("3", "[cea4106b6e9c2787]", "[d2e9a668]", "0x20")
+ self.binary64_to_bid32("4", "[cea4106b6e9c2787]", "[d2e9a668]", "0x20")
+ self.binary64_to_bid32("0", "[cef1603ca9857344]", "[d39d4744]", "0x20")
+ self.binary64_to_bid32("1", "[cef1603ca9857344]", "[d39d4744]", "0x20")
+ self.binary64_to_bid32("2", "[cef1603ca9857344]", "[d39d4743]", "0x20")
+ self.binary64_to_bid32("3", "[cef1603ca9857344]", "[d39d4743]", "0x20")
+ self.binary64_to_bid32("4", "[cef1603ca9857344]", "[d39d4744]", "0x20")
+ self.binary64_to_bid32("0", "[cf413d5336164e50]", "[d45cf49a]", "0x20")
+ self.binary64_to_bid32("1", "[cf413d5336164e50]", "[d45cf49a]", "0x20")
+ self.binary64_to_bid32("2", "[cf413d5336164e50]", "[d45cf499]", "0x20")
+ self.binary64_to_bid32("3", "[cf413d5336164e50]", "[d45cf499]", "0x20")
+ self.binary64_to_bid32("4", "[cf413d5336164e50]", "[d45cf49a]", "0x20")
+ self.binary64_to_bid32("0", "[cfd7f9e596b9a28b]", "[d5c230e2]", "0x20")
+ self.binary64_to_bid32("1", "[cfd7f9e596b9a28b]", "[d5c230e2]", "0x20")
+ self.binary64_to_bid32("2", "[cfd7f9e596b9a28b]", "[d5c230e1]", "0x20")
+ self.binary64_to_bid32("3", "[cfd7f9e596b9a28b]", "[d5c230e1]", "0x20")
+ self.binary64_to_bid32("4", "[cfd7f9e596b9a28b]", "[d5c230e2]", "0x20")
+ self.binary64_to_bid32("0", "[d01f60b4a930ae18]", "[f58a9968]", "0x20")
+ self.binary64_to_bid32("1", "[d01f60b4a930ae18]", "[f58a9969]", "0x20")
+ self.binary64_to_bid32("2", "[d01f60b4a930ae18]", "[f58a9968]", "0x20")
+ self.binary64_to_bid32("3", "[d01f60b4a930ae18]", "[f58a9968]", "0x20")
+ self.binary64_to_bid32("4", "[d01f60b4a930ae18]", "[f58a9968]", "0x20")
+ self.binary64_to_bid32("0", "[d0afdd6b49ed200a]", "[d7c81087]", "0x20")
+ self.binary64_to_bid32("1", "[d0afdd6b49ed200a]", "[d7c81088]", "0x20")
+ self.binary64_to_bid32("2", "[d0afdd6b49ed200a]", "[d7c81087]", "0x20")
+ self.binary64_to_bid32("3", "[d0afdd6b49ed200a]", "[d7c81087]", "0x20")
+ self.binary64_to_bid32("4", "[d0afdd6b49ed200a]", "[d7c81087]", "0x20")
+ self.binary64_to_bid32("0", "[d0c769468bf7b560]", "[d8152dac]", "0x20")
+ self.binary64_to_bid32("1", "[d0c769468bf7b560]", "[d8152dac]", "0x20")
+ self.binary64_to_bid32("2", "[d0c769468bf7b560]", "[d8152dab]", "0x20")
+ self.binary64_to_bid32("3", "[d0c769468bf7b560]", "[d8152dab]", "0x20")
+ self.binary64_to_bid32("4", "[d0c769468bf7b560]", "[d8152dac]", "0x20")
+ self.binary64_to_bid32("0", "[d171667a24ef9754]", "[d9a03cb1]", "0x20")
+ self.binary64_to_bid32("1", "[d171667a24ef9754]", "[d9a03cb1]", "0x20")
+ self.binary64_to_bid32("2", "[d171667a24ef9754]", "[d9a03cb0]", "0x20")
+ self.binary64_to_bid32("3", "[d171667a24ef9754]", "[d9a03cb0]", "0x20")
+ self.binary64_to_bid32("4", "[d171667a24ef9754]", "[d9a03cb1]", "0x20")
+ self.binary64_to_bid32("0", "[d1bb4ba1e1cd6c94]", "[da50e948]", "0x20")
+ self.binary64_to_bid32("1", "[d1bb4ba1e1cd6c94]", "[da50e949]", "0x20")
+ self.binary64_to_bid32("2", "[d1bb4ba1e1cd6c94]", "[da50e948]", "0x20")
+ self.binary64_to_bid32("3", "[d1bb4ba1e1cd6c94]", "[da50e948]", "0x20")
+ self.binary64_to_bid32("4", "[d1bb4ba1e1cd6c94]", "[da50e948]", "0x20")
+ self.binary64_to_bid32("0", "[d234b99a833a956a]", "[db8fba2f]", "0x20")
+ self.binary64_to_bid32("1", "[d234b99a833a956a]", "[db8fba30]", "0x20")
+ self.binary64_to_bid32("2", "[d234b99a833a956a]", "[db8fba2f]", "0x20")
+ self.binary64_to_bid32("3", "[d234b99a833a956a]", "[db8fba2f]", "0x20")
+ self.binary64_to_bid32("4", "[d234b99a833a956a]", "[db8fba2f]", "0x20")
+ self.binary64_to_bid32("0", "[d2ad5c9279f54b2e]", "[dc9c851b]", "0x20")
+ self.binary64_to_bid32("1", "[d2ad5c9279f54b2e]", "[dc9c851b]", "0x20")
+ self.binary64_to_bid32("2", "[d2ad5c9279f54b2e]", "[dc9c851a]", "0x20")
+ self.binary64_to_bid32("3", "[d2ad5c9279f54b2e]", "[dc9c851a]", "0x20")
+ self.binary64_to_bid32("4", "[d2ad5c9279f54b2e]", "[dc9c851b]", "0x20")
+ self.binary64_to_bid32("0", "[d2bbbbd1aedbf9c0]", "[dcb5e099]", "0x20")
+ self.binary64_to_bid32("1", "[d2bbbbd1aedbf9c0]", "[dcb5e09a]", "0x20")
+ self.binary64_to_bid32("2", "[d2bbbbd1aedbf9c0]", "[dcb5e099]", "0x20")
+ self.binary64_to_bid32("3", "[d2bbbbd1aedbf9c0]", "[dcb5e099]", "0x20")
+ self.binary64_to_bid32("4", "[d2bbbbd1aedbf9c0]", "[dcb5e099]", "0x20")
+ self.binary64_to_bid32("0", "[d36404baf54249bc]", "[de4fa52e]", "0x20")
+ self.binary64_to_bid32("1", "[d36404baf54249bc]", "[de4fa52e]", "0x20")
+ self.binary64_to_bid32("2", "[d36404baf54249bc]", "[de4fa52d]", "0x20")
+ self.binary64_to_bid32("3", "[d36404baf54249bc]", "[de4fa52d]", "0x20")
+ self.binary64_to_bid32("4", "[d36404baf54249bc]", "[de4fa52e]", "0x20")
+ self.binary64_to_bid32("0", "[d412ba093e5c6114]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("1", "[d412ba093e5c6114]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("2", "[d412ba093e5c6114]", "[f7f8967e]", "0x20")
+ self.binary64_to_bid32("3", "[d412ba093e5c6114]", "[f7f8967e]", "0x20")
+ self.binary64_to_bid32("4", "[d412ba093e5c6114]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("0", "[d412ba093e5c6115]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("1", "[d412ba093e5c6115]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("2", "[d412ba093e5c6115]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("3", "[d412ba093e5c6115]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("4", "[d412ba093e5c6115]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("0", "[d412ba095dc7701d]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("1", "[d412ba095dc7701d]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("2", "[d412ba095dc7701d]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("3", "[d412ba095dc7701d]", "[f7f8967f]", "0x20")
+ self.binary64_to_bid32("4", "[d412ba095dc7701d]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("0", "[d412ba095dc7701e]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("1", "[d412ba095dc7701e]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("2", "[d412ba095dc7701e]", "[f7f8967f]", "0x28")
+ self.binary64_to_bid32("3", "[d412ba095dc7701e]", "[f7f8967f]", "0x28")
+ self.binary64_to_bid32("4", "[d412ba095dc7701e]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("0", "[ffefffffffffffff]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("1", "[ffefffffffffffff]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("2", "[ffefffffffffffff]", "[f7f8967f]", "0x28")
+ self.binary64_to_bid32("3", "[ffefffffffffffff]", "[f7f8967f]", "0x28")
+ self.binary64_to_bid32("4", "[ffefffffffffffff]", "[f8000000]", "0x28")
+ self.binary64_to_bid32("0", "[fff0000000000000]", "[f8000000]", "0x00")
+ self.binary64_to_bid32("1", "[fff0000000000000]", "[f8000000]", "0x00")
+ self.binary64_to_bid32("2", "[fff0000000000000]", "[f8000000]", "0x00")
+ self.binary64_to_bid32("3", "[fff0000000000000]", "[f8000000]", "0x00")
+ self.binary64_to_bid32("4", "[fff0000000000000]", "[f8000000]", "0x00")
+ self.binary64_to_bid32("0", "[2C355C2076BF9A55]", "[000F4240]", "30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("0", "[AC355C2076BF9A55]", "[800F4240]", "30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("1", "[AC355C2076BF9A55]", "[800F4240]", "30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("2", "[2C355C2076BF9A55]", "[000F4240]", "30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("4", "[2C355C2076BF9A55]", "[000F4240]", "30", underflowBeforeOnly: true)
+ self.binary64_to_bid32("4", "[AC355C2076BF9A55]", "[800F4240]", "30", underflowBeforeOnly: true)
+ }
+
+ private func binary64_to_bid32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDouble(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_binary64_to_bid64() {
+ self.binary64_to_bid64("0", "[0000000000000000]", "[31c0000000000000]", "00")
+ self.binary64_to_bid64("0", "[0000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary64_to_bid64("0", "[0000000000000001]", "[07718d80392931b1]", "0x22")
+ self.binary64_to_bid64("0", "[0000000000000001]", "[07718D80392931B1]", "22")
+ self.binary64_to_bid64("0", "[0000000000000010]", "[079C1599F50EB5E9]", "22")
+ self.binary64_to_bid64("0", "[0000000000000100]", "[07C47E5612BAAC77]", "22")
+ self.binary64_to_bid64("0", "[0000000000001000]", "[07E73089B79113F2]", "22")
+ self.binary64_to_bid64("0", "[0000000000010000]", "[080B80DC58E81FE9]", "22")
+ self.binary64_to_bid64("0", "[0000000000100000]", "[083267C6F4A69975]", "22")
+ self.binary64_to_bid64("0", "[0000000001000000]", "[085D72D7EDD75BEF]", "22")
+ self.binary64_to_bid64("0", "[0000000010000000]", "[0884B6370755A84F]", "22")
+ self.binary64_to_bid64("0", "[0000000100000000]", "[08A789F1A555DA18]", "22")
+ self.binary64_to_bid64("0", "[0000001000000000]", "[08CC0FE908895CF4]", "22")
+ self.binary64_to_bid64("0", "[0000010000000000]", "[08F34CA80DA894B9]", "22")
+ self.binary64_to_bid64("0", "[0000100000000000]", "[091EE10CE2A7545B]", "22")
+ self.binary64_to_bid64("0", "[0001000000000000]", "[0944F0CEDC95A719]", "22")
+ self.binary64_to_bid64("0", "[0008000000000000]", "[0963F3D8B077B8E1]", "22")
+ self.binary64_to_bid64("0", "[0010000000000000]", "[0967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("0", "[0010000000000000]", "[0967E7B160EF71C1]", "20")
+ self.binary64_to_bid64("0", "[0020000000000000]", "[096fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("0", "[0100000000000001]", "[09F9E73CA1FD5C2F]", "20")
+ self.binary64_to_bid64("0", "[0100000000000010]", "[09F9E73CA1FD5C47]", "20")
+ self.binary64_to_bid64("0", "[0100000000000100]", "[09F9E73CA1FD5DCC]", "20")
+ self.binary64_to_bid64("0", "[0100000000001000]", "[09F9E73CA1FD7615]", "20")
+ self.binary64_to_bid64("0", "[0100000000010000]", "[09F9E73CA1FEFAA1]", "20")
+ self.binary64_to_bid64("0", "[0100000000100000]", "[09F9E73CA217436A]", "20")
+ self.binary64_to_bid64("0", "[0100000001000000]", "[09F9E73CA39BCFF8]", "20")
+ self.binary64_to_bid64("0", "[0100000010000000]", "[09F9E73CBBE498CF]", "20")
+ self.binary64_to_bid64("0", "[0100000100000000]", "[09F9E73E4071264D]", "20")
+ self.binary64_to_bid64("0", "[0100001000000000]", "[09F9E7568939FE2B]", "20")
+ self.binary64_to_bid64("0", "[0100010000000000]", "[09F9E8DB15C77C03]", "20")
+ self.binary64_to_bid64("0", "[0100100000000000]", "[09FA0123DE9F598A]", "20")
+ self.binary64_to_bid64("0", "[0101000000000000]", "[09FB85B06C1D31F0]", "20")
+ self.binary64_to_bid64("0", "[0108000000000000]", "[0A03E2AF7EB2CDD4]", "20")
+ self.binary64_to_bid64("0", "[021fce7e2fc2f71c]", "[0aa6bfd564d1c3f6]", "0x20")
+ self.binary64_to_bid64("0", "[07594a0fdea5aee9]", "[0dca614d7533f8f3]", "0x20")
+ self.binary64_to_bid64("0", "[0c6aa424df1419a8]", "[10da706bb70379f6]", "0x20")
+ self.binary64_to_bid64("0", "[11b0eec8bf74014c]", "[140680387e23b750]", "0x20")
+ self.binary64_to_bid64("0", "[1700b4cc5da43251]", "[1738d005098898d8]", "0x20")
+ self.binary64_to_bid64("0", "[1c45900fb64689d6]", "[1a6631d475b8a8e1]", "0x20")
+ self.binary64_to_bid64("0", "[2177104a6747d94a]", "[1d86687a09a270c0]", "0x20")
+ self.binary64_to_bid64("0", "[2679b94c143ba360]", "[2088a3f5e555316b]", "0x20")
+ self.binary64_to_bid64("0", "[2bd2184f7c9f6990]", "[23c4b3de8038f284]", "0x20")
+ self.binary64_to_bid64("0", "[31318452f93667d3]", "[69bb38eba9cc4c78]", "0x20")
+ self.binary64_to_bid64("0", "[3677f901b694fed1]", "[2a2952eafb84f2b3]", "0x20")
+ self.binary64_to_bid64("0", "[3b9070b15bfbaee0]", "[2d3eebabe0957af3]", "0x20")
+ self.binary64_to_bid64("0", "[3faa000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("0", "[3FE0000000000000]", "[31A0000000000005]", "00")
+ self.binary64_to_bid64("0", "[3ff0000000000000]", "[31c0000000000001]", "0x00")
+ self.binary64_to_bid64("0", "[3ff8000000000000]", "[31a000000000000f]", "0x00")
+ self.binary64_to_bid64("0", "[4000000000000000]", "[31C0000000000002]", "00")
+ self.binary64_to_bid64("0", "[4050000000000000]", "[31c0000000000040]", "0x00")
+ self.binary64_to_bid64("0", "[408f380000000000]", "[31c00000000003e7]", "0x00")
+ self.binary64_to_bid64("0", "[408f400000000000]", "[31c00000000003e8]", "0x00")
+ self.binary64_to_bid64("0", "[40d387fffebf053c]", "[30671afd49183a73]", "0x20")
+ self.binary64_to_bid64("0", "[462fffea7bb21f92]", "[33a480e8e080428a]", "0x20")
+ self.binary64_to_bid64("0", "[4b5a50a259963ca6]", "[36c394f170eed7db]", "0x20")
+ self.binary64_to_bid64("0", "[5099549bf845b6fe]", "[39e6ab45cca049db]", "0x20")
+ self.binary64_to_bid64("0", "[55a2c3865d5425f0]", "[3cebf1cc3c8b534f]", "0x20")
+ self.binary64_to_bid64("0", "[5afc16f524443a28]", "[4026eadd0c69feb6]", "0x20")
+ self.binary64_to_bid64("0", "[604163fa24acd7a4]", "[43509151968a4f74]", "0x20")
+ self.binary64_to_bid64("0", "[659c9548eab35381]", "[468a88caf33b1fc1]", "0x20")
+ self.binary64_to_bid64("0", "[6ac1e49cbba6e74a]", "[49a660b76d356128]", "0x20")
+ self.binary64_to_bid64("0", "[6fcfd29ead7f5840]", "[4cadb676714ca307]", "0x20")
+ self.binary64_to_bid64("0", "[754ea2039a1fa248]", "[500415d031d0514a]", "0x20")
+ self.binary64_to_bid64("0", "[7a6ef950aa1fe91c]", "[5313f98ad010a8a2]", "0x20")
+ self.binary64_to_bid64("0", "[7fefffffffffffff]", "[566662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("0", "[7fefffffffffffff]", "[566662FE0CB7F7EC]", "20")
+ self.binary64_to_bid64("0", "[7ff0000000000000]", "[7800000000000000]", "00")
+ self.binary64_to_bid64("0", "[7ff0000000000000]", "[7800000000000000]", "0x00")
+ self.binary64_to_bid64("0", "[7ff8000000000001]", "[7C00000000000000]", "00")
+ self.binary64_to_bid64("0", "[7ffc000000000000]", "[7C02000000000000]", "00")
+ self.binary64_to_bid64("0", "[7FFf1AFD498CFFFE]", "[7C038D7EA4C67FFF]", "00")
+ self.binary64_to_bid64("0", "[7FFf1AFD498D0000]", "[7C00000000000000]", "00")
+ self.binary64_to_bid64("0", "[7fffffffffffffff]", "[7C00000000000000]", "00")
+ self.binary64_to_bid64("0", "[8000000000000000]", "[b1c0000000000000]", "00")
+ self.binary64_to_bid64("0", "[8000000000000001]", "[87718d80392931b1]", "0x22")
+ self.binary64_to_bid64("0", "[8010000000000000]", "[8967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("0", "[8020000000000000]", "[896fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("0", "[821fce7e2fc2f71c]", "[8aa6bfd564d1c3f6]", "0x20")
+ self.binary64_to_bid64("0", "[87594a0fdea5aee9]", "[8dca614d7533f8f3]", "0x20")
+ self.binary64_to_bid64("0", "[8c6aa424df1419a8]", "[90da706bb70379f6]", "0x20")
+ self.binary64_to_bid64("0", "[91b0eec8bf74014c]", "[940680387e23b750]", "0x20")
+ self.binary64_to_bid64("0", "[9700b4cc5da43251]", "[9738d005098898d8]", "0x20")
+ self.binary64_to_bid64("0", "[9c45900fb64689d6]", "[9a6631d475b8a8e1]", "0x20")
+ self.binary64_to_bid64("0", "[a177104a6747d94a]", "[9d86687a09a270c0]", "0x20")
+ self.binary64_to_bid64("0", "[a679b94c143ba360]", "[a088a3f5e555316b]", "0x20")
+ self.binary64_to_bid64("0", "[abd2184f7c9f6990]", "[a3c4b3de8038f284]", "0x20")
+ self.binary64_to_bid64("0", "[b1318452f93667d3]", "[e9bb38eba9cc4c78]", "0x20")
+ self.binary64_to_bid64("0", "[b677f901b694fed1]", "[aa2952eafb84f2b3]", "0x20")
+ self.binary64_to_bid64("0", "[bb9070b15bfbaee0]", "[ad3eebabe0957af3]", "0x20")
+ self.binary64_to_bid64("0", "[bfaa000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("0", "[bff0000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary64_to_bid64("0", "[bff8000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary64_to_bid64("0", "[c050000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary64_to_bid64("0", "[c08f380000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary64_to_bid64("0", "[c08f400000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary64_to_bid64("0", "[c0d387fffebf053c]", "[b0671afd49183a73]", "0x20")
+ self.binary64_to_bid64("0", "[c62fffea7bb21f92]", "[b3a480e8e080428a]", "0x20")
+ self.binary64_to_bid64("0", "[cb5a50a259963ca6]", "[b6c394f170eed7db]", "0x20")
+ self.binary64_to_bid64("0", "[d099549bf845b6fe]", "[b9e6ab45cca049db]", "0x20")
+ self.binary64_to_bid64("0", "[d5a2c3865d5425f0]", "[bcebf1cc3c8b534f]", "0x20")
+ self.binary64_to_bid64("0", "[dafc16f524443a28]", "[c026eadd0c69feb6]", "0x20")
+ self.binary64_to_bid64("0", "[e04163fa24acd7a4]", "[c3509151968a4f74]", "0x20")
+ self.binary64_to_bid64("0", "[e59c9548eab35381]", "[c68a88caf33b1fc1]", "0x20")
+ self.binary64_to_bid64("0", "[eac1e49cbba6e74a]", "[c9a660b76d356128]", "0x20")
+ self.binary64_to_bid64("0", "[efcfd29ead7f5840]", "[ccadb676714ca307]", "0x20")
+ self.binary64_to_bid64("0", "[f54ea2039a1fa248]", "[d00415d031d0514a]", "0x20")
+ self.binary64_to_bid64("0", "[fa6ef950aa1fe91c]", "[d313f98ad010a8a2]", "0x20")
+ self.binary64_to_bid64("0", "[ffefffffffffffff]", "[d66662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("0", "[fff0000000000000]", "[f800000000000000]", "00")
+ self.binary64_to_bid64("0", "[fff0000000000000]", "[f800000000000000]", "0x00")
+ self.binary64_to_bid64("1", "[0000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary64_to_bid64("1", "[0000000000000001]", "[07718d80392931b1]", "0x22")
+ self.binary64_to_bid64("1", "[0010000000000000]", "[0967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("1", "[0020000000000000]", "[096fcf62c1dee382]", "0x20")
+ self.binary64_to_bid64("1", "[021fce7e2fc2f71c]", "[0aa6bfd564d1c3f6]", "0x20")
+ self.binary64_to_bid64("1", "[07594a0fdea5aee9]", "[0dca614d7533f8f2]", "0x20")
+ self.binary64_to_bid64("1", "[0c6aa424df1419a8]", "[10da706bb70379f5]", "0x20")
+ self.binary64_to_bid64("1", "[11b0eec8bf74014c]", "[140680387e23b750]", "0x20")
+ self.binary64_to_bid64("1", "[1700b4cc5da43251]", "[1738d005098898d8]", "0x20")
+ self.binary64_to_bid64("1", "[1c45900fb64689d6]", "[1a6631d475b8a8e1]", "0x20")
+ self.binary64_to_bid64("1", "[2177104a6747d94a]", "[1d86687a09a270bf]", "0x20")
+ self.binary64_to_bid64("1", "[2679b94c143ba360]", "[2088a3f5e555316a]", "0x20")
+ self.binary64_to_bid64("1", "[2bd2184f7c9f6990]", "[23c4b3de8038f284]", "0x20")
+ self.binary64_to_bid64("1", "[31318452f93667d3]", "[69bb38eba9cc4c78]", "0x20")
+ self.binary64_to_bid64("1", "[3677f901b694fed1]", "[2a2952eafb84f2b2]", "0x20")
+ self.binary64_to_bid64("1", "[3b9070b15bfbaee0]", "[2d3eebabe0957af3]", "0x20")
+ self.binary64_to_bid64("1", "[3faa000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("1", "[3ff0000000000000]", "[31c0000000000001]", "0x00")
+ self.binary64_to_bid64("1", "[3ff8000000000000]", "[31a000000000000f]", "0x00")
+ self.binary64_to_bid64("1", "[4050000000000000]", "[31c0000000000040]", "0x00")
+ self.binary64_to_bid64("1", "[408f380000000000]", "[31c00000000003e7]", "0x00")
+ self.binary64_to_bid64("1", "[408f400000000000]", "[31c00000000003e8]", "0x00")
+ self.binary64_to_bid64("1", "[40d387fffebf053c]", "[30671afd49183a73]", "0x20")
+ self.binary64_to_bid64("1", "[462fffea7bb21f92]", "[33a480e8e0804289]", "0x20")
+ self.binary64_to_bid64("1", "[4b5a50a259963ca6]", "[36c394f170eed7db]", "0x20")
+ self.binary64_to_bid64("1", "[5099549bf845b6fe]", "[39e6ab45cca049da]", "0x20")
+ self.binary64_to_bid64("1", "[55a2c3865d5425f0]", "[3cebf1cc3c8b534e]", "0x20")
+ self.binary64_to_bid64("1", "[5afc16f524443a28]", "[4026eadd0c69feb6]", "0x20")
+ self.binary64_to_bid64("1", "[604163fa24acd7a4]", "[43509151968a4f73]", "0x20")
+ self.binary64_to_bid64("1", "[659c9548eab35381]", "[468a88caf33b1fc0]", "0x20")
+ self.binary64_to_bid64("1", "[6ac1e49cbba6e74a]", "[49a660b76d356128]", "0x20")
+ self.binary64_to_bid64("1", "[6fcfd29ead7f5840]", "[4cadb676714ca307]", "0x20")
+ self.binary64_to_bid64("1", "[754ea2039a1fa248]", "[500415d031d05149]", "0x20")
+ self.binary64_to_bid64("1", "[7a6ef950aa1fe91c]", "[5313f98ad010a8a2]", "0x20")
+ self.binary64_to_bid64("1", "[7fefffffffffffff]", "[566662fe0cb7f7eb]", "0x20")
+ self.binary64_to_bid64("1", "[7ff0000000000000]", "[7800000000000000]", "0x00")
+ self.binary64_to_bid64("1", "[8000000000000001]", "[87718d80392931b2]", "0x22")
+ self.binary64_to_bid64("1", "[8010000000000000]", "[8967e7b160ef71c2]", "0x20")
+ self.binary64_to_bid64("1", "[8020000000000000]", "[896fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("1", "[821fce7e2fc2f71c]", "[8aa6bfd564d1c3f7]", "0x20")
+ self.binary64_to_bid64("1", "[87594a0fdea5aee9]", "[8dca614d7533f8f3]", "0x20")
+ self.binary64_to_bid64("1", "[8c6aa424df1419a8]", "[90da706bb70379f6]", "0x20")
+ self.binary64_to_bid64("1", "[91b0eec8bf74014c]", "[940680387e23b751]", "0x20")
+ self.binary64_to_bid64("1", "[9700b4cc5da43251]", "[9738d005098898d9]", "0x20")
+ self.binary64_to_bid64("1", "[9c45900fb64689d6]", "[9a6631d475b8a8e2]", "0x20")
+ self.binary64_to_bid64("1", "[a177104a6747d94a]", "[9d86687a09a270c0]", "0x20")
+ self.binary64_to_bid64("1", "[a679b94c143ba360]", "[a088a3f5e555316b]", "0x20")
+ self.binary64_to_bid64("1", "[abd2184f7c9f6990]", "[a3c4b3de8038f285]", "0x20")
+ self.binary64_to_bid64("1", "[b1318452f93667d3]", "[e9bb38eba9cc4c79]", "0x20")
+ self.binary64_to_bid64("1", "[b677f901b694fed1]", "[aa2952eafb84f2b3]", "0x20")
+ self.binary64_to_bid64("1", "[bb9070b15bfbaee0]", "[ad3eebabe0957af4]", "0x20")
+ self.binary64_to_bid64("1", "[bfaa000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("1", "[bff0000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary64_to_bid64("1", "[bff8000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary64_to_bid64("1", "[c050000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary64_to_bid64("1", "[c08f380000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary64_to_bid64("1", "[c08f400000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary64_to_bid64("1", "[c0d387fffebf053c]", "[b0671afd49183a74]", "0x20")
+ self.binary64_to_bid64("1", "[c62fffea7bb21f92]", "[b3a480e8e080428a]", "0x20")
+ self.binary64_to_bid64("1", "[cb5a50a259963ca6]", "[b6c394f170eed7dc]", "0x20")
+ self.binary64_to_bid64("1", "[d099549bf845b6fe]", "[b9e6ab45cca049db]", "0x20")
+ self.binary64_to_bid64("1", "[d5a2c3865d5425f0]", "[bcebf1cc3c8b534f]", "0x20")
+ self.binary64_to_bid64("1", "[dafc16f524443a28]", "[c026eadd0c69feb7]", "0x20")
+ self.binary64_to_bid64("1", "[e04163fa24acd7a4]", "[c3509151968a4f74]", "0x20")
+ self.binary64_to_bid64("1", "[e59c9548eab35381]", "[c68a88caf33b1fc1]", "0x20")
+ self.binary64_to_bid64("1", "[eac1e49cbba6e74a]", "[c9a660b76d356129]", "0x20")
+ self.binary64_to_bid64("1", "[efcfd29ead7f5840]", "[ccadb676714ca308]", "0x20")
+ self.binary64_to_bid64("1", "[f54ea2039a1fa248]", "[d00415d031d0514a]", "0x20")
+ self.binary64_to_bid64("1", "[fa6ef950aa1fe91c]", "[d313f98ad010a8a3]", "0x20")
+ self.binary64_to_bid64("1", "[ffefffffffffffff]", "[d66662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("1", "[fff0000000000000]", "[f800000000000000]", "0x00")
+ self.binary64_to_bid64("2", "[0000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary64_to_bid64("2", "[0000000000000001]", "[07718d80392931b2]", "0x22")
+ self.binary64_to_bid64("2", "[0010000000000000]", "[0967e7b160ef71c2]", "0x20")
+ self.binary64_to_bid64("2", "[0020000000000000]", "[096fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("2", "[021fce7e2fc2f71c]", "[0aa6bfd564d1c3f7]", "0x20")
+ self.binary64_to_bid64("2", "[07594a0fdea5aee9]", "[0dca614d7533f8f3]", "0x20")
+ self.binary64_to_bid64("2", "[0c6aa424df1419a8]", "[10da706bb70379f6]", "0x20")
+ self.binary64_to_bid64("2", "[11b0eec8bf74014c]", "[140680387e23b751]", "0x20")
+ self.binary64_to_bid64("2", "[1700b4cc5da43251]", "[1738d005098898d9]", "0x20")
+ self.binary64_to_bid64("2", "[1c45900fb64689d6]", "[1a6631d475b8a8e2]", "0x20")
+ self.binary64_to_bid64("2", "[2177104a6747d94a]", "[1d86687a09a270c0]", "0x20")
+ self.binary64_to_bid64("2", "[2679b94c143ba360]", "[2088a3f5e555316b]", "0x20")
+ self.binary64_to_bid64("2", "[2bd2184f7c9f6990]", "[23c4b3de8038f285]", "0x20")
+ self.binary64_to_bid64("2", "[31318452f93667d3]", "[69bb38eba9cc4c79]", "0x20")
+ self.binary64_to_bid64("2", "[3677f901b694fed1]", "[2a2952eafb84f2b3]", "0x20")
+ self.binary64_to_bid64("2", "[3b9070b15bfbaee0]", "[2d3eebabe0957af4]", "0x20")
+ self.binary64_to_bid64("2", "[3faa000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("2", "[3ff0000000000000]", "[31c0000000000001]", "0x00")
+ self.binary64_to_bid64("2", "[3ff8000000000000]", "[31a000000000000f]", "0x00")
+ self.binary64_to_bid64("2", "[4050000000000000]", "[31c0000000000040]", "0x00")
+ self.binary64_to_bid64("2", "[408f380000000000]", "[31c00000000003e7]", "0x00")
+ self.binary64_to_bid64("2", "[408f400000000000]", "[31c00000000003e8]", "0x00")
+ self.binary64_to_bid64("2", "[40d387fffebf053c]", "[30671afd49183a74]", "0x20")
+ self.binary64_to_bid64("2", "[462fffea7bb21f92]", "[33a480e8e080428a]", "0x20")
+ self.binary64_to_bid64("2", "[4b5a50a259963ca6]", "[36c394f170eed7dc]", "0x20")
+ self.binary64_to_bid64("2", "[5099549bf845b6fe]", "[39e6ab45cca049db]", "0x20")
+ self.binary64_to_bid64("2", "[55a2c3865d5425f0]", "[3cebf1cc3c8b534f]", "0x20")
+ self.binary64_to_bid64("2", "[5afc16f524443a28]", "[4026eadd0c69feb7]", "0x20")
+ self.binary64_to_bid64("2", "[604163fa24acd7a4]", "[43509151968a4f74]", "0x20")
+ self.binary64_to_bid64("2", "[659c9548eab35381]", "[468a88caf33b1fc1]", "0x20")
+ self.binary64_to_bid64("2", "[6ac1e49cbba6e74a]", "[49a660b76d356129]", "0x20")
+ self.binary64_to_bid64("2", "[6fcfd29ead7f5840]", "[4cadb676714ca308]", "0x20")
+ self.binary64_to_bid64("2", "[754ea2039a1fa248]", "[500415d031d0514a]", "0x20")
+ self.binary64_to_bid64("2", "[7a6ef950aa1fe91c]", "[5313f98ad010a8a3]", "0x20")
+ self.binary64_to_bid64("2", "[7fefffffffffffff]", "[566662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("2", "[7ff0000000000000]", "[7800000000000000]", "0x00")
+ self.binary64_to_bid64("2", "[8000000000000001]", "[87718d80392931b1]", "0x22")
+ self.binary64_to_bid64("2", "[8010000000000000]", "[8967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("2", "[8020000000000000]", "[896fcf62c1dee382]", "0x20")
+ self.binary64_to_bid64("2", "[821fce7e2fc2f71c]", "[8aa6bfd564d1c3f6]", "0x20")
+ self.binary64_to_bid64("2", "[87594a0fdea5aee9]", "[8dca614d7533f8f2]", "0x20")
+ self.binary64_to_bid64("2", "[8c6aa424df1419a8]", "[90da706bb70379f5]", "0x20")
+ self.binary64_to_bid64("2", "[91b0eec8bf74014c]", "[940680387e23b750]", "0x20")
+ self.binary64_to_bid64("2", "[9700b4cc5da43251]", "[9738d005098898d8]", "0x20")
+ self.binary64_to_bid64("2", "[9c45900fb64689d6]", "[9a6631d475b8a8e1]", "0x20")
+ self.binary64_to_bid64("2", "[a177104a6747d94a]", "[9d86687a09a270bf]", "0x20")
+ self.binary64_to_bid64("2", "[a679b94c143ba360]", "[a088a3f5e555316a]", "0x20")
+ self.binary64_to_bid64("2", "[abd2184f7c9f6990]", "[a3c4b3de8038f284]", "0x20")
+ self.binary64_to_bid64("2", "[b1318452f93667d3]", "[e9bb38eba9cc4c78]", "0x20")
+ self.binary64_to_bid64("2", "[b677f901b694fed1]", "[aa2952eafb84f2b2]", "0x20")
+ self.binary64_to_bid64("2", "[bb9070b15bfbaee0]", "[ad3eebabe0957af3]", "0x20")
+ self.binary64_to_bid64("2", "[bfaa000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("2", "[bff0000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary64_to_bid64("2", "[bff8000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary64_to_bid64("2", "[c050000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary64_to_bid64("2", "[c08f380000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary64_to_bid64("2", "[c08f400000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary64_to_bid64("2", "[c0d387fffebf053c]", "[b0671afd49183a73]", "0x20")
+ self.binary64_to_bid64("2", "[c62fffea7bb21f92]", "[b3a480e8e0804289]", "0x20")
+ self.binary64_to_bid64("2", "[cb5a50a259963ca6]", "[b6c394f170eed7db]", "0x20")
+ self.binary64_to_bid64("2", "[d099549bf845b6fe]", "[b9e6ab45cca049da]", "0x20")
+ self.binary64_to_bid64("2", "[d5a2c3865d5425f0]", "[bcebf1cc3c8b534e]", "0x20")
+ self.binary64_to_bid64("2", "[dafc16f524443a28]", "[c026eadd0c69feb6]", "0x20")
+ self.binary64_to_bid64("2", "[e04163fa24acd7a4]", "[c3509151968a4f73]", "0x20")
+ self.binary64_to_bid64("2", "[e59c9548eab35381]", "[c68a88caf33b1fc0]", "0x20")
+ self.binary64_to_bid64("2", "[eac1e49cbba6e74a]", "[c9a660b76d356128]", "0x20")
+ self.binary64_to_bid64("2", "[efcfd29ead7f5840]", "[ccadb676714ca307]", "0x20")
+ self.binary64_to_bid64("2", "[f54ea2039a1fa248]", "[d00415d031d05149]", "0x20")
+ self.binary64_to_bid64("2", "[fa6ef950aa1fe91c]", "[d313f98ad010a8a2]", "0x20")
+ self.binary64_to_bid64("2", "[ffefffffffffffff]", "[d66662fe0cb7f7eb]", "0x20")
+ self.binary64_to_bid64("2", "[fff0000000000000]", "[f800000000000000]", "0x00")
+ self.binary64_to_bid64("3", "[0000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary64_to_bid64("3", "[0000000000000001]", "[07718d80392931b1]", "0x22")
+ self.binary64_to_bid64("3", "[0010000000000000]", "[0967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("3", "[0020000000000000]", "[096fcf62c1dee382]", "0x20")
+ self.binary64_to_bid64("3", "[021fce7e2fc2f71c]", "[0aa6bfd564d1c3f6]", "0x20")
+ self.binary64_to_bid64("3", "[07594a0fdea5aee9]", "[0dca614d7533f8f2]", "0x20")
+ self.binary64_to_bid64("3", "[0c6aa424df1419a8]", "[10da706bb70379f5]", "0x20")
+ self.binary64_to_bid64("3", "[11b0eec8bf74014c]", "[140680387e23b750]", "0x20")
+ self.binary64_to_bid64("3", "[1700b4cc5da43251]", "[1738d005098898d8]", "0x20")
+ self.binary64_to_bid64("3", "[1c45900fb64689d6]", "[1a6631d475b8a8e1]", "0x20")
+ self.binary64_to_bid64("3", "[2177104a6747d94a]", "[1d86687a09a270bf]", "0x20")
+ self.binary64_to_bid64("3", "[2679b94c143ba360]", "[2088a3f5e555316a]", "0x20")
+ self.binary64_to_bid64("3", "[2bd2184f7c9f6990]", "[23c4b3de8038f284]", "0x20")
+ self.binary64_to_bid64("3", "[31318452f93667d3]", "[69bb38eba9cc4c78]", "0x20")
+ self.binary64_to_bid64("3", "[3677f901b694fed1]", "[2a2952eafb84f2b2]", "0x20")
+ self.binary64_to_bid64("3", "[3b9070b15bfbaee0]", "[2d3eebabe0957af3]", "0x20")
+ self.binary64_to_bid64("3", "[3faa000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("3", "[3ff0000000000000]", "[31c0000000000001]", "0x00")
+ self.binary64_to_bid64("3", "[3ff8000000000000]", "[31a000000000000f]", "0x00")
+ self.binary64_to_bid64("3", "[4050000000000000]", "[31c0000000000040]", "0x00")
+ self.binary64_to_bid64("3", "[408f380000000000]", "[31c00000000003e7]", "0x00")
+ self.binary64_to_bid64("3", "[408f400000000000]", "[31c00000000003e8]", "0x00")
+ self.binary64_to_bid64("3", "[40d387fffebf053c]", "[30671afd49183a73]", "0x20")
+ self.binary64_to_bid64("3", "[462fffea7bb21f92]", "[33a480e8e0804289]", "0x20")
+ self.binary64_to_bid64("3", "[4b5a50a259963ca6]", "[36c394f170eed7db]", "0x20")
+ self.binary64_to_bid64("3", "[5099549bf845b6fe]", "[39e6ab45cca049da]", "0x20")
+ self.binary64_to_bid64("3", "[55a2c3865d5425f0]", "[3cebf1cc3c8b534e]", "0x20")
+ self.binary64_to_bid64("3", "[5afc16f524443a28]", "[4026eadd0c69feb6]", "0x20")
+ self.binary64_to_bid64("3", "[604163fa24acd7a4]", "[43509151968a4f73]", "0x20")
+ self.binary64_to_bid64("3", "[659c9548eab35381]", "[468a88caf33b1fc0]", "0x20")
+ self.binary64_to_bid64("3", "[6ac1e49cbba6e74a]", "[49a660b76d356128]", "0x20")
+ self.binary64_to_bid64("3", "[6fcfd29ead7f5840]", "[4cadb676714ca307]", "0x20")
+ self.binary64_to_bid64("3", "[754ea2039a1fa248]", "[500415d031d05149]", "0x20")
+ self.binary64_to_bid64("3", "[7a6ef950aa1fe91c]", "[5313f98ad010a8a2]", "0x20")
+ self.binary64_to_bid64("3", "[7fefffffffffffff]", "[566662fe0cb7f7eb]", "0x20")
+ self.binary64_to_bid64("3", "[7ff0000000000000]", "[7800000000000000]", "0x00")
+ self.binary64_to_bid64("3", "[8000000000000001]", "[87718d80392931b1]", "0x22")
+ self.binary64_to_bid64("3", "[8010000000000000]", "[8967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("3", "[8020000000000000]", "[896fcf62c1dee382]", "0x20")
+ self.binary64_to_bid64("3", "[821fce7e2fc2f71c]", "[8aa6bfd564d1c3f6]", "0x20")
+ self.binary64_to_bid64("3", "[87594a0fdea5aee9]", "[8dca614d7533f8f2]", "0x20")
+ self.binary64_to_bid64("3", "[8c6aa424df1419a8]", "[90da706bb70379f5]", "0x20")
+ self.binary64_to_bid64("3", "[91b0eec8bf74014c]", "[940680387e23b750]", "0x20")
+ self.binary64_to_bid64("3", "[9700b4cc5da43251]", "[9738d005098898d8]", "0x20")
+ self.binary64_to_bid64("3", "[9c45900fb64689d6]", "[9a6631d475b8a8e1]", "0x20")
+ self.binary64_to_bid64("3", "[a177104a6747d94a]", "[9d86687a09a270bf]", "0x20")
+ self.binary64_to_bid64("3", "[a679b94c143ba360]", "[a088a3f5e555316a]", "0x20")
+ self.binary64_to_bid64("3", "[abd2184f7c9f6990]", "[a3c4b3de8038f284]", "0x20")
+ self.binary64_to_bid64("3", "[b1318452f93667d3]", "[e9bb38eba9cc4c78]", "0x20")
+ self.binary64_to_bid64("3", "[b677f901b694fed1]", "[aa2952eafb84f2b2]", "0x20")
+ self.binary64_to_bid64("3", "[bb9070b15bfbaee0]", "[ad3eebabe0957af3]", "0x20")
+ self.binary64_to_bid64("3", "[bfaa000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("3", "[bff0000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary64_to_bid64("3", "[bff8000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary64_to_bid64("3", "[c050000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary64_to_bid64("3", "[c08f380000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary64_to_bid64("3", "[c08f400000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary64_to_bid64("3", "[c0d387fffebf053c]", "[b0671afd49183a73]", "0x20")
+ self.binary64_to_bid64("3", "[c62fffea7bb21f92]", "[b3a480e8e0804289]", "0x20")
+ self.binary64_to_bid64("3", "[cb5a50a259963ca6]", "[b6c394f170eed7db]", "0x20")
+ self.binary64_to_bid64("3", "[d099549bf845b6fe]", "[b9e6ab45cca049da]", "0x20")
+ self.binary64_to_bid64("3", "[d5a2c3865d5425f0]", "[bcebf1cc3c8b534e]", "0x20")
+ self.binary64_to_bid64("3", "[dafc16f524443a28]", "[c026eadd0c69feb6]", "0x20")
+ self.binary64_to_bid64("3", "[e04163fa24acd7a4]", "[c3509151968a4f73]", "0x20")
+ self.binary64_to_bid64("3", "[e59c9548eab35381]", "[c68a88caf33b1fc0]", "0x20")
+ self.binary64_to_bid64("3", "[eac1e49cbba6e74a]", "[c9a660b76d356128]", "0x20")
+ self.binary64_to_bid64("3", "[efcfd29ead7f5840]", "[ccadb676714ca307]", "0x20")
+ self.binary64_to_bid64("3", "[f54ea2039a1fa248]", "[d00415d031d05149]", "0x20")
+ self.binary64_to_bid64("3", "[fa6ef950aa1fe91c]", "[d313f98ad010a8a2]", "0x20")
+ self.binary64_to_bid64("3", "[ffefffffffffffff]", "[d66662fe0cb7f7eb]", "0x20")
+ self.binary64_to_bid64("3", "[fff0000000000000]", "[f800000000000000]", "0x00")
+ self.binary64_to_bid64("4", "[0000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary64_to_bid64("4", "[0000000000000001]", "[07718d80392931b1]", "0x22")
+ self.binary64_to_bid64("4", "[0010000000000000]", "[0967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("4", "[0020000000000000]", "[096fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("4", "[021fce7e2fc2f71c]", "[0aa6bfd564d1c3f6]", "0x20")
+ self.binary64_to_bid64("4", "[07594a0fdea5aee9]", "[0dca614d7533f8f3]", "0x20")
+ self.binary64_to_bid64("4", "[0c6aa424df1419a8]", "[10da706bb70379f6]", "0x20")
+ self.binary64_to_bid64("4", "[11b0eec8bf74014c]", "[140680387e23b750]", "0x20")
+ self.binary64_to_bid64("4", "[1700b4cc5da43251]", "[1738d005098898d8]", "0x20")
+ self.binary64_to_bid64("4", "[1c45900fb64689d6]", "[1a6631d475b8a8e1]", "0x20")
+ self.binary64_to_bid64("4", "[2177104a6747d94a]", "[1d86687a09a270c0]", "0x20")
+ self.binary64_to_bid64("4", "[2679b94c143ba360]", "[2088a3f5e555316b]", "0x20")
+ self.binary64_to_bid64("4", "[2bd2184f7c9f6990]", "[23c4b3de8038f284]", "0x20")
+ self.binary64_to_bid64("4", "[31318452f93667d3]", "[69bb38eba9cc4c78]", "0x20")
+ self.binary64_to_bid64("4", "[3677f901b694fed1]", "[2a2952eafb84f2b3]", "0x20")
+ self.binary64_to_bid64("4", "[3b9070b15bfbaee0]", "[2d3eebabe0957af3]", "0x20")
+ self.binary64_to_bid64("4", "[3faa000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("4", "[3ff0000000000000]", "[31c0000000000001]", "0x00")
+ self.binary64_to_bid64("4", "[3ff8000000000000]", "[31a000000000000f]", "0x00")
+ self.binary64_to_bid64("4", "[4050000000000000]", "[31c0000000000040]", "0x00")
+ self.binary64_to_bid64("4", "[408f380000000000]", "[31c00000000003e7]", "0x00")
+ self.binary64_to_bid64("4", "[408f400000000000]", "[31c00000000003e8]", "0x00")
+ self.binary64_to_bid64("4", "[40d387fffebf053c]", "[30671afd49183a73]", "0x20")
+ self.binary64_to_bid64("4", "[462fffea7bb21f92]", "[33a480e8e080428a]", "0x20")
+ self.binary64_to_bid64("4", "[4b5a50a259963ca6]", "[36c394f170eed7db]", "0x20")
+ self.binary64_to_bid64("4", "[5099549bf845b6fe]", "[39e6ab45cca049db]", "0x20")
+ self.binary64_to_bid64("4", "[55a2c3865d5425f0]", "[3cebf1cc3c8b534f]", "0x20")
+ self.binary64_to_bid64("4", "[5afc16f524443a28]", "[4026eadd0c69feb6]", "0x20")
+ self.binary64_to_bid64("4", "[604163fa24acd7a4]", "[43509151968a4f74]", "0x20")
+ self.binary64_to_bid64("4", "[659c9548eab35381]", "[468a88caf33b1fc1]", "0x20")
+ self.binary64_to_bid64("4", "[6ac1e49cbba6e74a]", "[49a660b76d356128]", "0x20")
+ self.binary64_to_bid64("4", "[6fcfd29ead7f5840]", "[4cadb676714ca307]", "0x20")
+ self.binary64_to_bid64("4", "[754ea2039a1fa248]", "[500415d031d0514a]", "0x20")
+ self.binary64_to_bid64("4", "[7a6ef950aa1fe91c]", "[5313f98ad010a8a2]", "0x20")
+ self.binary64_to_bid64("4", "[7fefffffffffffff]", "[566662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("4", "[7ff0000000000000]", "[7800000000000000]", "0x00")
+ self.binary64_to_bid64("4", "[8000000000000001]", "[87718d80392931b1]", "0x22")
+ self.binary64_to_bid64("4", "[8010000000000000]", "[8967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("4", "[8020000000000000]", "[896fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("4", "[821fce7e2fc2f71c]", "[8aa6bfd564d1c3f6]", "0x20")
+ self.binary64_to_bid64("4", "[87594a0fdea5aee9]", "[8dca614d7533f8f3]", "0x20")
+ self.binary64_to_bid64("4", "[8c6aa424df1419a8]", "[90da706bb70379f6]", "0x20")
+ self.binary64_to_bid64("4", "[91b0eec8bf74014c]", "[940680387e23b750]", "0x20")
+ self.binary64_to_bid64("4", "[9700b4cc5da43251]", "[9738d005098898d8]", "0x20")
+ self.binary64_to_bid64("4", "[9c45900fb64689d6]", "[9a6631d475b8a8e1]", "0x20")
+ self.binary64_to_bid64("4", "[a177104a6747d94a]", "[9d86687a09a270c0]", "0x20")
+ self.binary64_to_bid64("4", "[a679b94c143ba360]", "[a088a3f5e555316b]", "0x20")
+ self.binary64_to_bid64("4", "[abd2184f7c9f6990]", "[a3c4b3de8038f284]", "0x20")
+ self.binary64_to_bid64("4", "[b1318452f93667d3]", "[e9bb38eba9cc4c78]", "0x20")
+ self.binary64_to_bid64("4", "[b677f901b694fed1]", "[aa2952eafb84f2b3]", "0x20")
+ self.binary64_to_bid64("4", "[bb9070b15bfbaee0]", "[ad3eebabe0957af3]", "0x20")
+ self.binary64_to_bid64("4", "[bfaa000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("4", "[bff0000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary64_to_bid64("4", "[bff8000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary64_to_bid64("4", "[c050000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary64_to_bid64("4", "[c08f380000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary64_to_bid64("4", "[c08f400000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary64_to_bid64("4", "[c0d387fffebf053c]", "[b0671afd49183a73]", "0x20")
+ self.binary64_to_bid64("4", "[c62fffea7bb21f92]", "[b3a480e8e080428a]", "0x20")
+ self.binary64_to_bid64("4", "[cb5a50a259963ca6]", "[b6c394f170eed7db]", "0x20")
+ self.binary64_to_bid64("4", "[d099549bf845b6fe]", "[b9e6ab45cca049db]", "0x20")
+ self.binary64_to_bid64("4", "[d5a2c3865d5425f0]", "[bcebf1cc3c8b534f]", "0x20")
+ self.binary64_to_bid64("4", "[dafc16f524443a28]", "[c026eadd0c69feb6]", "0x20")
+ self.binary64_to_bid64("4", "[e04163fa24acd7a4]", "[c3509151968a4f74]", "0x20")
+ self.binary64_to_bid64("4", "[e59c9548eab35381]", "[c68a88caf33b1fc1]", "0x20")
+ self.binary64_to_bid64("4", "[eac1e49cbba6e74a]", "[c9a660b76d356128]", "0x20")
+ self.binary64_to_bid64("4", "[efcfd29ead7f5840]", "[ccadb676714ca307]", "0x20")
+ self.binary64_to_bid64("4", "[f54ea2039a1fa248]", "[d00415d031d0514a]", "0x20")
+ self.binary64_to_bid64("4", "[fa6ef950aa1fe91c]", "[d313f98ad010a8a2]", "0x20")
+ self.binary64_to_bid64("4", "[ffefffffffffffff]", "[d66662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("4", "[fff0000000000000]", "[f800000000000000]", "0x00")
+ self.binary64_to_bid64("0", "[7ff0000000000001]", "[7C00000000000000]", "01")
+ self.binary64_to_bid64("0", "[7ff4000000000000]", "[7C02000000000000]", "01")
+ self.binary64_to_bid64("0", "[7FF71AFD498CFFFE]", "[7C038D7EA4C67FFF]", "01")
+ self.binary64_to_bid64("0", "[7FF71AFD498D0000]", "[7C00000000000000]", "01")
+ self.binary64_to_bid64("0", "[7ff7ffffffffffff]", "[7C00000000000000]", "01")
+ self.binary64_to_bid64("0", "+0.00000100000E0", "[2f238d7ea4c68000]", "20")
+ self.binary64_to_bid64("0", "[0000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary64_to_bid64("1", "[0000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary64_to_bid64("2", "[0000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary64_to_bid64("3", "[0000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary64_to_bid64("4", "[0000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary64_to_bid64("0", "[0000000000000001]", "[07718d80392931b1]", "0x22")
+ self.binary64_to_bid64("1", "[0000000000000001]", "[07718d80392931b1]", "0x22")
+ self.binary64_to_bid64("2", "[0000000000000001]", "[07718d80392931b2]", "0x22")
+ self.binary64_to_bid64("3", "[0000000000000001]", "[07718d80392931b1]", "0x22")
+ self.binary64_to_bid64("4", "[0000000000000001]", "[07718d80392931b1]", "0x22")
+ self.binary64_to_bid64("0", "[000000000027aa50]", "[084490165c833a58]", "0x22")
+ self.binary64_to_bid64("1", "[000000000027aa50]", "[084490165c833a57]", "0x22")
+ self.binary64_to_bid64("2", "[000000000027aa50]", "[084490165c833a58]", "0x22")
+ self.binary64_to_bid64("3", "[000000000027aa50]", "[084490165c833a57]", "0x22")
+ self.binary64_to_bid64("4", "[000000000027aa50]", "[084490165c833a58]", "0x22")
+ self.binary64_to_bid64("0", "[000002b8f32126fe]", "[09054112ea728c6a]", "0x22")
+ self.binary64_to_bid64("1", "[000002b8f32126fe]", "[09054112ea728c69]", "0x22")
+ self.binary64_to_bid64("2", "[000002b8f32126fe]", "[09054112ea728c6a]", "0x22")
+ self.binary64_to_bid64("3", "[000002b8f32126fe]", "[09054112ea728c69]", "0x22")
+ self.binary64_to_bid64("4", "[000002b8f32126fe]", "[09054112ea728c6a]", "0x22")
+ self.binary64_to_bid64("0", "[000fffffffffffff]", "[0967e7b160ef71c1]", "0x22")
+ self.binary64_to_bid64("1", "[000fffffffffffff]", "[0967e7b160ef71c0]", "0x22")
+ self.binary64_to_bid64("2", "[000fffffffffffff]", "[0967e7b160ef71c1]", "0x22")
+ self.binary64_to_bid64("3", "[000fffffffffffff]", "[0967e7b160ef71c0]", "0x22")
+ self.binary64_to_bid64("4", "[000fffffffffffff]", "[0967e7b160ef71c1]", "0x22")
+ self.binary64_to_bid64("0", "[0010000000000000]", "[0967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("1", "[0010000000000000]", "[0967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("2", "[0010000000000000]", "[0967e7b160ef71c2]", "0x20")
+ self.binary64_to_bid64("3", "[0010000000000000]", "[0967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("4", "[0010000000000000]", "[0967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("0", "[0020000000000000]", "[096fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("1", "[0020000000000000]", "[096fcf62c1dee382]", "0x20")
+ self.binary64_to_bid64("2", "[0020000000000000]", "[096fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("3", "[0020000000000000]", "[096fcf62c1dee382]", "0x20")
+ self.binary64_to_bid64("4", "[0020000000000000]", "[096fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("0", "[00a63a2c7516098c]", "[09c59f653f1f84c9]", "0x20")
+ self.binary64_to_bid64("1", "[00a63a2c7516098c]", "[09c59f653f1f84c9]", "0x20")
+ self.binary64_to_bid64("2", "[00a63a2c7516098c]", "[09c59f653f1f84ca]", "0x20")
+ self.binary64_to_bid64("3", "[00a63a2c7516098c]", "[09c59f653f1f84c9]", "0x20")
+ self.binary64_to_bid64("4", "[00a63a2c7516098c]", "[09c59f653f1f84c9]", "0x20")
+ self.binary64_to_bid64("0", "[01e5584e68efdfd8]", "[0a85a96784abc71c]", "0x20")
+ self.binary64_to_bid64("1", "[01e5584e68efdfd8]", "[0a85a96784abc71c]", "0x20")
+ self.binary64_to_bid64("2", "[01e5584e68efdfd8]", "[0a85a96784abc71d]", "0x20")
+ self.binary64_to_bid64("3", "[01e5584e68efdfd8]", "[0a85a96784abc71c]", "0x20")
+ self.binary64_to_bid64("4", "[01e5584e68efdfd8]", "[0a85a96784abc71c]", "0x20")
+ self.binary64_to_bid64("0", "[03449599b25701a2]", "[0b56e6a001777092]", "0x20")
+ self.binary64_to_bid64("1", "[03449599b25701a2]", "[0b56e6a001777091]", "0x20")
+ self.binary64_to_bid64("2", "[03449599b25701a2]", "[0b56e6a001777092]", "0x20")
+ self.binary64_to_bid64("3", "[03449599b25701a2]", "[0b56e6a001777091]", "0x20")
+ self.binary64_to_bid64("4", "[03449599b25701a2]", "[0b56e6a001777092]", "0x20")
+ self.binary64_to_bid64("0", "[049694881e6bd6c6]", "[0c2544b0a2ee1564]", "0x20")
+ self.binary64_to_bid64("1", "[049694881e6bd6c6]", "[0c2544b0a2ee1564]", "0x20")
+ self.binary64_to_bid64("2", "[049694881e6bd6c6]", "[0c2544b0a2ee1565]", "0x20")
+ self.binary64_to_bid64("3", "[049694881e6bd6c6]", "[0c2544b0a2ee1564]", "0x20")
+ self.binary64_to_bid64("4", "[049694881e6bd6c6]", "[0c2544b0a2ee1564]", "0x20")
+ self.binary64_to_bid64("0", "[05aa788e83518380]", "[0cc81859e51ab39b]", "0x20")
+ self.binary64_to_bid64("1", "[05aa788e83518380]", "[0cc81859e51ab39a]", "0x20")
+ self.binary64_to_bid64("2", "[05aa788e83518380]", "[0cc81859e51ab39b]", "0x20")
+ self.binary64_to_bid64("3", "[05aa788e83518380]", "[0cc81859e51ab39a]", "0x20")
+ self.binary64_to_bid64("4", "[05aa788e83518380]", "[0cc81859e51ab39b]", "0x20")
+ self.binary64_to_bid64("0", "[07033a01038c7050]", "[0d98a94bb619856c]", "0x20")
+ self.binary64_to_bid64("1", "[07033a01038c7050]", "[0d98a94bb619856c]", "0x20")
+ self.binary64_to_bid64("2", "[07033a01038c7050]", "[0d98a94bb619856d]", "0x20")
+ self.binary64_to_bid64("3", "[07033a01038c7050]", "[0d98a94bb619856c]", "0x20")
+ self.binary64_to_bid64("4", "[07033a01038c7050]", "[0d98a94bb619856c]", "0x20")
+ self.binary64_to_bid64("0", "[0834ea517dafabe0]", "[0e4e10b60c3a8050]", "0x20")
+ self.binary64_to_bid64("1", "[0834ea517dafabe0]", "[0e4e10b60c3a804f]", "0x20")
+ self.binary64_to_bid64("2", "[0834ea517dafabe0]", "[0e4e10b60c3a8050]", "0x20")
+ self.binary64_to_bid64("3", "[0834ea517dafabe0]", "[0e4e10b60c3a804f]", "0x20")
+ self.binary64_to_bid64("4", "[0834ea517dafabe0]", "[0e4e10b60c3a8050]", "0x20")
+ self.binary64_to_bid64("0", "[09cacc46749dccfe]", "[0f460c042ae9e295]", "0x20")
+ self.binary64_to_bid64("1", "[09cacc46749dccfe]", "[0f460c042ae9e294]", "0x20")
+ self.binary64_to_bid64("2", "[09cacc46749dccfe]", "[0f460c042ae9e295]", "0x20")
+ self.binary64_to_bid64("3", "[09cacc46749dccfe]", "[0f460c042ae9e294]", "0x20")
+ self.binary64_to_bid64("4", "[09cacc46749dccfe]", "[0f460c042ae9e295]", "0x20")
+ self.binary64_to_bid64("0", "[0aa2c791ae276a00]", "[0fc6f1606842d6c6]", "0x20")
+ self.binary64_to_bid64("1", "[0aa2c791ae276a00]", "[0fc6f1606842d6c6]", "0x20")
+ self.binary64_to_bid64("2", "[0aa2c791ae276a00]", "[0fc6f1606842d6c7]", "0x20")
+ self.binary64_to_bid64("3", "[0aa2c791ae276a00]", "[0fc6f1606842d6c6]", "0x20")
+ self.binary64_to_bid64("4", "[0aa2c791ae276a00]", "[0fc6f1606842d6c6]", "0x20")
+ self.binary64_to_bid64("0", "[0c4aa424df1419a8]", "[10c69c1aedc0de7d]", "0x20")
+ self.binary64_to_bid64("1", "[0c4aa424df1419a8]", "[10c69c1aedc0de7d]", "0x20")
+ self.binary64_to_bid64("2", "[0c4aa424df1419a8]", "[10c69c1aedc0de7e]", "0x20")
+ self.binary64_to_bid64("3", "[0c4aa424df1419a8]", "[10c69c1aedc0de7d]", "0x20")
+ self.binary64_to_bid64("4", "[0c4aa424df1419a8]", "[10c69c1aedc0de7d]", "0x20")
+ self.binary64_to_bid64("0", "[0da70cc285f2d20a]", "[1197fc7879582ea0]", "0x20")
+ self.binary64_to_bid64("1", "[0da70cc285f2d20a]", "[1197fc7879582ea0]", "0x20")
+ self.binary64_to_bid64("2", "[0da70cc285f2d20a]", "[1197fc7879582ea1]", "0x20")
+ self.binary64_to_bid64("3", "[0da70cc285f2d20a]", "[1197fc7879582ea0]", "0x20")
+ self.binary64_to_bid64("4", "[0da70cc285f2d20a]", "[1197fc7879582ea0]", "0x20")
+ self.binary64_to_bid64("0", "[0f0fb973bbb59fb1]", "[126dd8c38b0a55a3]", "0x20")
+ self.binary64_to_bid64("1", "[0f0fb973bbb59fb1]", "[126dd8c38b0a55a2]", "0x20")
+ self.binary64_to_bid64("2", "[0f0fb973bbb59fb1]", "[126dd8c38b0a55a3]", "0x20")
+ self.binary64_to_bid64("3", "[0f0fb973bbb59fb1]", "[126dd8c38b0a55a2]", "0x20")
+ self.binary64_to_bid64("4", "[0f0fb973bbb59fb1]", "[126dd8c38b0a55a3]", "0x20")
+ self.binary64_to_bid64("0", "[102c63345295a1b8]", "[64c07af9731db8b1]", "0x20")
+ self.binary64_to_bid64("1", "[102c63345295a1b8]", "[64c07af9731db8b0]", "0x20")
+ self.binary64_to_bid64("2", "[102c63345295a1b8]", "[64c07af9731db8b1]", "0x20")
+ self.binary64_to_bid64("3", "[102c63345295a1b8]", "[64c07af9731db8b0]", "0x20")
+ self.binary64_to_bid64("4", "[102c63345295a1b8]", "[64c07af9731db8b1]", "0x20")
+ self.binary64_to_bid64("0", "[114b96b51efaf100]", "[13c846624d0d9561]", "0x20")
+ self.binary64_to_bid64("1", "[114b96b51efaf100]", "[13c846624d0d9561]", "0x20")
+ self.binary64_to_bid64("2", "[114b96b51efaf100]", "[13c846624d0d9562]", "0x20")
+ self.binary64_to_bid64("3", "[114b96b51efaf100]", "[13c846624d0d9561]", "0x20")
+ self.binary64_to_bid64("4", "[114b96b51efaf100]", "[13c846624d0d9561]", "0x20")
+ self.binary64_to_bid64("0", "[12ee66816f5dff5a]", "[14c61e8236143836]", "0x20")
+ self.binary64_to_bid64("1", "[12ee66816f5dff5a]", "[14c61e8236143836]", "0x20")
+ self.binary64_to_bid64("2", "[12ee66816f5dff5a]", "[14c61e8236143837]", "0x20")
+ self.binary64_to_bid64("3", "[12ee66816f5dff5a]", "[14c61e8236143836]", "0x20")
+ self.binary64_to_bid64("4", "[12ee66816f5dff5a]", "[14c61e8236143836]", "0x20")
+ self.binary64_to_bid64("0", "[142a0e120a793674]", "[15857fcf100b40ff]", "0x20")
+ self.binary64_to_bid64("1", "[142a0e120a793674]", "[15857fcf100b40ff]", "0x20")
+ self.binary64_to_bid64("2", "[142a0e120a793674]", "[15857fcf100b4100]", "0x20")
+ self.binary64_to_bid64("3", "[142a0e120a793674]", "[15857fcf100b40ff]", "0x20")
+ self.binary64_to_bid64("4", "[142a0e120a793674]", "[15857fcf100b40ff]", "0x20")
+ self.binary64_to_bid64("0", "[1563ed46207b15b8]", "[164468fe971bcdae]", "0x20")
+ self.binary64_to_bid64("1", "[1563ed46207b15b8]", "[164468fe971bcdad]", "0x20")
+ self.binary64_to_bid64("2", "[1563ed46207b15b8]", "[164468fe971bcdae]", "0x20")
+ self.binary64_to_bid64("3", "[1563ed46207b15b8]", "[164468fe971bcdad]", "0x20")
+ self.binary64_to_bid64("4", "[1563ed46207b15b8]", "[164468fe971bcdae]", "0x20")
+ self.binary64_to_bid64("0", "[16861f7667f4f840]", "[16ecd5c130cc8149]", "0x20")
+ self.binary64_to_bid64("1", "[16861f7667f4f840]", "[16ecd5c130cc8149]", "0x20")
+ self.binary64_to_bid64("2", "[16861f7667f4f840]", "[16ecd5c130cc814a]", "0x20")
+ self.binary64_to_bid64("3", "[16861f7667f4f840]", "[16ecd5c130cc8149]", "0x20")
+ self.binary64_to_bid64("4", "[16861f7667f4f840]", "[16ecd5c130cc8149]", "0x20")
+ self.binary64_to_bid64("0", "[181a934960280451]", "[17e52c686ba0c774]", "0x20")
+ self.binary64_to_bid64("1", "[181a934960280451]", "[17e52c686ba0c773]", "0x20")
+ self.binary64_to_bid64("2", "[181a934960280451]", "[17e52c686ba0c774]", "0x20")
+ self.binary64_to_bid64("3", "[181a934960280451]", "[17e52c686ba0c773]", "0x20")
+ self.binary64_to_bid64("4", "[181a934960280451]", "[17e52c686ba0c774]", "0x20")
+ self.binary64_to_bid64("0", "[19438211f715c034]", "[1893e926cef3e25a]", "0x20")
+ self.binary64_to_bid64("1", "[19438211f715c034]", "[1893e926cef3e259]", "0x20")
+ self.binary64_to_bid64("2", "[19438211f715c034]", "[1893e926cef3e25a]", "0x20")
+ self.binary64_to_bid64("3", "[19438211f715c034]", "[1893e926cef3e259]", "0x20")
+ self.binary64_to_bid64("4", "[19438211f715c034]", "[1893e926cef3e25a]", "0x20")
+ self.binary64_to_bid64("0", "[1a8b00f1cf2d5ad8]", "[195ce65e11086197]", "0x20")
+ self.binary64_to_bid64("1", "[1a8b00f1cf2d5ad8]", "[195ce65e11086196]", "0x20")
+ self.binary64_to_bid64("2", "[1a8b00f1cf2d5ad8]", "[195ce65e11086197]", "0x20")
+ self.binary64_to_bid64("3", "[1a8b00f1cf2d5ad8]", "[195ce65e11086196]", "0x20")
+ self.binary64_to_bid64("4", "[1a8b00f1cf2d5ad8]", "[195ce65e11086197]", "0x20")
+ self.binary64_to_bid64("0", "[1bdc229563770bc0]", "[1a26508e9af37e5f]", "0x20")
+ self.binary64_to_bid64("1", "[1bdc229563770bc0]", "[1a26508e9af37e5e]", "0x20")
+ self.binary64_to_bid64("2", "[1bdc229563770bc0]", "[1a26508e9af37e5f]", "0x20")
+ self.binary64_to_bid64("3", "[1bdc229563770bc0]", "[1a26508e9af37e5e]", "0x20")
+ self.binary64_to_bid64("4", "[1bdc229563770bc0]", "[1a26508e9af37e5f]", "0x20")
+ self.binary64_to_bid64("0", "[1d4b644184f3b2c7]", "[1b05283b7f5e80a2]", "0x20")
+ self.binary64_to_bid64("1", "[1d4b644184f3b2c7]", "[1b05283b7f5e80a2]", "0x20")
+ self.binary64_to_bid64("2", "[1d4b644184f3b2c7]", "[1b05283b7f5e80a3]", "0x20")
+ self.binary64_to_bid64("3", "[1d4b644184f3b2c7]", "[1b05283b7f5e80a2]", "0x20")
+ self.binary64_to_bid64("4", "[1d4b644184f3b2c7]", "[1b05283b7f5e80a2]", "0x20")
+ self.binary64_to_bid64("0", "[1e8ca7079534ef8e]", "[1bc5a81611b9dc4e]", "0x20")
+ self.binary64_to_bid64("1", "[1e8ca7079534ef8e]", "[1bc5a81611b9dc4e]", "0x20")
+ self.binary64_to_bid64("2", "[1e8ca7079534ef8e]", "[1bc5a81611b9dc4f]", "0x20")
+ self.binary64_to_bid64("3", "[1e8ca7079534ef8e]", "[1bc5a81611b9dc4e]", "0x20")
+ self.binary64_to_bid64("4", "[1e8ca7079534ef8e]", "[1bc5a81611b9dc4e]", "0x20")
+ self.binary64_to_bid64("0", "[1fc91ad5d9a414bc]", "[1c85326c3349c5a8]", "0x20")
+ self.binary64_to_bid64("1", "[1fc91ad5d9a414bc]", "[1c85326c3349c5a8]", "0x20")
+ self.binary64_to_bid64("2", "[1fc91ad5d9a414bc]", "[1c85326c3349c5a9]", "0x20")
+ self.binary64_to_bid64("3", "[1fc91ad5d9a414bc]", "[1c85326c3349c5a8]", "0x20")
+ self.binary64_to_bid64("4", "[1fc91ad5d9a414bc]", "[1c85326c3349c5a8]", "0x20")
+ self.binary64_to_bid64("0", "[210dd509d72bd198]", "[1d4679be59ac886a]", "0x20")
+ self.binary64_to_bid64("1", "[210dd509d72bd198]", "[1d4679be59ac886a]", "0x20")
+ self.binary64_to_bid64("2", "[210dd509d72bd198]", "[1d4679be59ac886b]", "0x20")
+ self.binary64_to_bid64("3", "[210dd509d72bd198]", "[1d4679be59ac886a]", "0x20")
+ self.binary64_to_bid64("4", "[210dd509d72bd198]", "[1d4679be59ac886a]", "0x20")
+ self.binary64_to_bid64("0", "[227b523a9001ce77]", "[1e24f99161fd2bf4]", "0x20")
+ self.binary64_to_bid64("1", "[227b523a9001ce77]", "[1e24f99161fd2bf4]", "0x20")
+ self.binary64_to_bid64("2", "[227b523a9001ce77]", "[1e24f99161fd2bf5]", "0x20")
+ self.binary64_to_bid64("3", "[227b523a9001ce77]", "[1e24f99161fd2bf4]", "0x20")
+ self.binary64_to_bid64("4", "[227b523a9001ce77]", "[1e24f99161fd2bf4]", "0x20")
+ self.binary64_to_bid64("0", "[23c5f2df5e675a0f]", "[1ee861a9896f4e88]", "0x20")
+ self.binary64_to_bid64("1", "[23c5f2df5e675a0f]", "[1ee861a9896f4e87]", "0x20")
+ self.binary64_to_bid64("2", "[23c5f2df5e675a0f]", "[1ee861a9896f4e88]", "0x20")
+ self.binary64_to_bid64("3", "[23c5f2df5e675a0f]", "[1ee861a9896f4e87]", "0x20")
+ self.binary64_to_bid64("4", "[23c5f2df5e675a0f]", "[1ee861a9896f4e88]", "0x20")
+ self.binary64_to_bid64("0", "[24caf5745d1fb360]", "[1f86bf2922a4170d]", "0x20")
+ self.binary64_to_bid64("1", "[24caf5745d1fb360]", "[1f86bf2922a4170d]", "0x20")
+ self.binary64_to_bid64("2", "[24caf5745d1fb360]", "[1f86bf2922a4170e]", "0x20")
+ self.binary64_to_bid64("3", "[24caf5745d1fb360]", "[1f86bf2922a4170d]", "0x20")
+ self.binary64_to_bid64("4", "[24caf5745d1fb360]", "[1f86bf2922a4170d]", "0x20")
+ self.binary64_to_bid64("0", "[262deb002db38db0]", "[205f6768b6321b82]", "0x20")
+ self.binary64_to_bid64("1", "[262deb002db38db0]", "[205f6768b6321b81]", "0x20")
+ self.binary64_to_bid64("2", "[262deb002db38db0]", "[205f6768b6321b82]", "0x20")
+ self.binary64_to_bid64("3", "[262deb002db38db0]", "[205f6768b6321b81]", "0x20")
+ self.binary64_to_bid64("4", "[262deb002db38db0]", "[205f6768b6321b82]", "0x20")
+ self.binary64_to_bid64("0", "[27af5e7906fa926d]", "[214586350722e710]", "0x20")
+ self.binary64_to_bid64("1", "[27af5e7906fa926d]", "[214586350722e70f]", "0x20")
+ self.binary64_to_bid64("2", "[27af5e7906fa926d]", "[214586350722e710]", "0x20")
+ self.binary64_to_bid64("3", "[27af5e7906fa926d]", "[214586350722e70f]", "0x20")
+ self.binary64_to_bid64("4", "[27af5e7906fa926d]", "[214586350722e710]", "0x20")
+ self.binary64_to_bid64("0", "[28f0b061654e4c1d]", "[220629df3479424a]", "0x20")
+ self.binary64_to_bid64("1", "[28f0b061654e4c1d]", "[220629df3479424a]", "0x20")
+ self.binary64_to_bid64("2", "[28f0b061654e4c1d]", "[220629df3479424b]", "0x20")
+ self.binary64_to_bid64("3", "[28f0b061654e4c1d]", "[220629df3479424a]", "0x20")
+ self.binary64_to_bid64("4", "[28f0b061654e4c1d]", "[220629df3479424a]", "0x20")
+ self.binary64_to_bid64("0", "[2a320b4ce47f060a]", "[22c6fcddd477ba5f]", "0x20")
+ self.binary64_to_bid64("1", "[2a320b4ce47f060a]", "[22c6fcddd477ba5f]", "0x20")
+ self.binary64_to_bid64("2", "[2a320b4ce47f060a]", "[22c6fcddd477ba60]", "0x20")
+ self.binary64_to_bid64("3", "[2a320b4ce47f060a]", "[22c6fcddd477ba5f]", "0x20")
+ self.binary64_to_bid64("4", "[2a320b4ce47f060a]", "[22c6fcddd477ba5f]", "0x20")
+ self.binary64_to_bid64("0", "[2b614b289f08fcc8]", "[68db1cb26d5548b2]", "0x20")
+ self.binary64_to_bid64("1", "[2b614b289f08fcc8]", "[68db1cb26d5548b1]", "0x20")
+ self.binary64_to_bid64("2", "[2b614b289f08fcc8]", "[68db1cb26d5548b2]", "0x20")
+ self.binary64_to_bid64("3", "[2b614b289f08fcc8]", "[68db1cb26d5548b1]", "0x20")
+ self.binary64_to_bid64("4", "[2b614b289f08fcc8]", "[68db1cb26d5548b2]", "0x20")
+ self.binary64_to_bid64("0", "[2cde02a667d186b3]", "[24651c7f21d9ef1a]", "0x20")
+ self.binary64_to_bid64("1", "[2cde02a667d186b3]", "[24651c7f21d9ef19]", "0x20")
+ self.binary64_to_bid64("2", "[2cde02a667d186b3]", "[24651c7f21d9ef1a]", "0x20")
+ self.binary64_to_bid64("3", "[2cde02a667d186b3]", "[24651c7f21d9ef19]", "0x20")
+ self.binary64_to_bid64("4", "[2cde02a667d186b3]", "[24651c7f21d9ef1a]", "0x20")
+ self.binary64_to_bid64("0", "[2e1c24d9ffded66a]", "[252506ba2df99497]", "0x20")
+ self.binary64_to_bid64("1", "[2e1c24d9ffded66a]", "[252506ba2df99496]", "0x20")
+ self.binary64_to_bid64("2", "[2e1c24d9ffded66a]", "[252506ba2df99497]", "0x20")
+ self.binary64_to_bid64("3", "[2e1c24d9ffded66a]", "[252506ba2df99496]", "0x20")
+ self.binary64_to_bid64("4", "[2e1c24d9ffded66a]", "[252506ba2df99497]", "0x20")
+ self.binary64_to_bid64("0", "[2f52280cf53299f4]", "[6972004478af99a8]", "0x20")
+ self.binary64_to_bid64("1", "[2f52280cf53299f4]", "[6972004478af99a7]", "0x20")
+ self.binary64_to_bid64("2", "[2f52280cf53299f4]", "[6972004478af99a8]", "0x20")
+ self.binary64_to_bid64("3", "[2f52280cf53299f4]", "[6972004478af99a7]", "0x20")
+ self.binary64_to_bid64("4", "[2f52280cf53299f4]", "[6972004478af99a8]", "0x20")
+ self.binary64_to_bid64("0", "[308baad9932ae060]", "[269b2a130e176b6f]", "0x20")
+ self.binary64_to_bid64("1", "[308baad9932ae060]", "[269b2a130e176b6e]", "0x20")
+ self.binary64_to_bid64("2", "[308baad9932ae060]", "[269b2a130e176b6f]", "0x20")
+ self.binary64_to_bid64("3", "[308baad9932ae060]", "[269b2a130e176b6e]", "0x20")
+ self.binary64_to_bid64("4", "[308baad9932ae060]", "[269b2a130e176b6f]", "0x20")
+ self.binary64_to_bid64("0", "[31e0436f6f632d9c]", "[2766b2859701892c]", "0x20")
+ self.binary64_to_bid64("1", "[31e0436f6f632d9c]", "[2766b2859701892b]", "0x20")
+ self.binary64_to_bid64("2", "[31e0436f6f632d9c]", "[2766b2859701892c]", "0x20")
+ self.binary64_to_bid64("3", "[31e0436f6f632d9c]", "[2766b2859701892b]", "0x20")
+ self.binary64_to_bid64("4", "[31e0436f6f632d9c]", "[2766b2859701892c]", "0x20")
+ self.binary64_to_bid64("0", "[335ea28424e9efeb]", "[284a952bf26db016]", "0x20")
+ self.binary64_to_bid64("1", "[335ea28424e9efeb]", "[284a952bf26db016]", "0x20")
+ self.binary64_to_bid64("2", "[335ea28424e9efeb]", "[284a952bf26db017]", "0x20")
+ self.binary64_to_bid64("3", "[335ea28424e9efeb]", "[284a952bf26db016]", "0x20")
+ self.binary64_to_bid64("4", "[335ea28424e9efeb]", "[284a952bf26db016]", "0x20")
+ self.binary64_to_bid64("0", "[3491fca0640570a2]", "[290683ebb9cf07ba]", "0x20")
+ self.binary64_to_bid64("1", "[3491fca0640570a2]", "[290683ebb9cf07b9]", "0x20")
+ self.binary64_to_bid64("2", "[3491fca0640570a2]", "[290683ebb9cf07ba]", "0x20")
+ self.binary64_to_bid64("3", "[3491fca0640570a2]", "[290683ebb9cf07b9]", "0x20")
+ self.binary64_to_bid64("4", "[3491fca0640570a2]", "[290683ebb9cf07ba]", "0x20")
+ self.binary64_to_bid64("0", "[35c31da02fcd9858]", "[29c3a15ae75b4a13]", "0x20")
+ self.binary64_to_bid64("1", "[35c31da02fcd9858]", "[29c3a15ae75b4a13]", "0x20")
+ self.binary64_to_bid64("2", "[35c31da02fcd9858]", "[29c3a15ae75b4a14]", "0x20")
+ self.binary64_to_bid64("3", "[35c31da02fcd9858]", "[29c3a15ae75b4a13]", "0x20")
+ self.binary64_to_bid64("4", "[35c31da02fcd9858]", "[29c3a15ae75b4a13]", "0x20")
+ self.binary64_to_bid64("0", "[37327e8d55a6ef62]", "[2a9d76939e52446c]", "0x20")
+ self.binary64_to_bid64("1", "[37327e8d55a6ef62]", "[2a9d76939e52446c]", "0x20")
+ self.binary64_to_bid64("2", "[37327e8d55a6ef62]", "[2a9d76939e52446d]", "0x20")
+ self.binary64_to_bid64("3", "[37327e8d55a6ef62]", "[2a9d76939e52446c]", "0x20")
+ self.binary64_to_bid64("4", "[37327e8d55a6ef62]", "[2a9d76939e52446c]", "0x20")
+ self.binary64_to_bid64("0", "[38776ca8be2021d6]", "[2b63e9ba8b16fd6e]", "0x20")
+ self.binary64_to_bid64("1", "[38776ca8be2021d6]", "[2b63e9ba8b16fd6e]", "0x20")
+ self.binary64_to_bid64("2", "[38776ca8be2021d6]", "[2b63e9ba8b16fd6f]", "0x20")
+ self.binary64_to_bid64("3", "[38776ca8be2021d6]", "[2b63e9ba8b16fd6e]", "0x20")
+ self.binary64_to_bid64("4", "[38776ca8be2021d6]", "[2b63e9ba8b16fd6e]", "0x20")
+ self.binary64_to_bid64("0", "[39b8facae986dcd4]", "[2c2460206b33e05f]", "0x20")
+ self.binary64_to_bid64("1", "[39b8facae986dcd4]", "[2c2460206b33e05f]", "0x20")
+ self.binary64_to_bid64("2", "[39b8facae986dcd4]", "[2c2460206b33e060]", "0x20")
+ self.binary64_to_bid64("3", "[39b8facae986dcd4]", "[2c2460206b33e05f]", "0x20")
+ self.binary64_to_bid64("4", "[39b8facae986dcd4]", "[2c2460206b33e05f]", "0x20")
+ self.binary64_to_bid64("0", "[3b01c81724ffbac8]", "[2ce6882c8656252c]", "0x20")
+ self.binary64_to_bid64("1", "[3b01c81724ffbac8]", "[2ce6882c8656252b]", "0x20")
+ self.binary64_to_bid64("2", "[3b01c81724ffbac8]", "[2ce6882c8656252c]", "0x20")
+ self.binary64_to_bid64("3", "[3b01c81724ffbac8]", "[2ce6882c8656252b]", "0x20")
+ self.binary64_to_bid64("4", "[3b01c81724ffbac8]", "[2ce6882c8656252c]", "0x20")
+ self.binary64_to_bid64("0", "[3c61072c5f7db431]", "[2dba3c5eb5db657c]", "0x20")
+ self.binary64_to_bid64("1", "[3c61072c5f7db431]", "[2dba3c5eb5db657b]", "0x20")
+ self.binary64_to_bid64("2", "[3c61072c5f7db431]", "[2dba3c5eb5db657c]", "0x20")
+ self.binary64_to_bid64("3", "[3c61072c5f7db431]", "[2dba3c5eb5db657b]", "0x20")
+ self.binary64_to_bid64("4", "[3c61072c5f7db431]", "[2dba3c5eb5db657c]", "0x20")
+ self.binary64_to_bid64("0", "[3dbc786b905fc30f]", "[2e893303fc78d94f]", "0x20")
+ self.binary64_to_bid64("1", "[3dbc786b905fc30f]", "[2e893303fc78d94f]", "0x20")
+ self.binary64_to_bid64("2", "[3dbc786b905fc30f]", "[2e893303fc78d950]", "0x20")
+ self.binary64_to_bid64("3", "[3dbc786b905fc30f]", "[2e893303fc78d94f]", "0x20")
+ self.binary64_to_bid64("4", "[3dbc786b905fc30f]", "[2e893303fc78d94f]", "0x20")
+ self.binary64_to_bid64("0", "[3ef4be88eda6e546]", "[2f47074779dabc54]", "0x20")
+ self.binary64_to_bid64("1", "[3ef4be88eda6e546]", "[2f47074779dabc53]", "0x20")
+ self.binary64_to_bid64("2", "[3ef4be88eda6e546]", "[2f47074779dabc54]", "0x20")
+ self.binary64_to_bid64("3", "[3ef4be88eda6e546]", "[2f47074779dabc53]", "0x20")
+ self.binary64_to_bid64("4", "[3ef4be88eda6e546]", "[2f47074779dabc54]", "0x20")
+ self.binary64_to_bid64("0", "[3faa000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("1", "[3faa000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("2", "[3faa000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("3", "[3faa000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("4", "[3faa000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("0", "[3ff0000000000000]", "[31c0000000000001]", "0x00")
+ self.binary64_to_bid64("1", "[3ff0000000000000]", "[31c0000000000001]", "0x00")
+ self.binary64_to_bid64("2", "[3ff0000000000000]", "[31c0000000000001]", "0x00")
+ self.binary64_to_bid64("3", "[3ff0000000000000]", "[31c0000000000001]", "0x00")
+ self.binary64_to_bid64("4", "[3ff0000000000000]", "[31c0000000000001]", "0x00")
+ self.binary64_to_bid64("0", "[3ff8000000000000]", "[31a000000000000f]", "0x00")
+ self.binary64_to_bid64("1", "[3ff8000000000000]", "[31a000000000000f]", "0x00")
+ self.binary64_to_bid64("2", "[3ff8000000000000]", "[31a000000000000f]", "0x00")
+ self.binary64_to_bid64("3", "[3ff8000000000000]", "[31a000000000000f]", "0x00")
+ self.binary64_to_bid64("4", "[3ff8000000000000]", "[31a000000000000f]", "0x00")
+ self.binary64_to_bid64("0", "[4033fffe3eff7aec]", "[30071afcaa0880d2]", "0x20")
+ self.binary64_to_bid64("1", "[4033fffe3eff7aec]", "[30071afcaa0880d2]", "0x20")
+ self.binary64_to_bid64("2", "[4033fffe3eff7aec]", "[30071afcaa0880d3]", "0x20")
+ self.binary64_to_bid64("3", "[4033fffe3eff7aec]", "[30071afcaa0880d2]", "0x20")
+ self.binary64_to_bid64("4", "[4033fffe3eff7aec]", "[30071afcaa0880d2]", "0x20")
+ self.binary64_to_bid64("0", "[4050000000000000]", "[31c0000000000040]", "0x00")
+ self.binary64_to_bid64("1", "[4050000000000000]", "[31c0000000000040]", "0x00")
+ self.binary64_to_bid64("2", "[4050000000000000]", "[31c0000000000040]", "0x00")
+ self.binary64_to_bid64("3", "[4050000000000000]", "[31c0000000000040]", "0x00")
+ self.binary64_to_bid64("4", "[4050000000000000]", "[31c0000000000040]", "0x00")
+ self.binary64_to_bid64("0", "[408f380000000000]", "[31c00000000003e7]", "0x00")
+ self.binary64_to_bid64("1", "[408f380000000000]", "[31c00000000003e7]", "0x00")
+ self.binary64_to_bid64("2", "[408f380000000000]", "[31c00000000003e7]", "0x00")
+ self.binary64_to_bid64("3", "[408f380000000000]", "[31c00000000003e7]", "0x00")
+ self.binary64_to_bid64("4", "[408f380000000000]", "[31c00000000003e7]", "0x00")
+ self.binary64_to_bid64("0", "[408f400000000000]", "[31c00000000003e8]", "0x00")
+ self.binary64_to_bid64("1", "[408f400000000000]", "[31c00000000003e8]", "0x00")
+ self.binary64_to_bid64("2", "[408f400000000000]", "[31c00000000003e8]", "0x00")
+ self.binary64_to_bid64("3", "[408f400000000000]", "[31c00000000003e8]", "0x00")
+ self.binary64_to_bid64("4", "[408f400000000000]", "[31c00000000003e8]", "0x00")
+ self.binary64_to_bid64("0", "[419ffffffffd9ec7]", "[30e4c4b3ffffa538]", "0x20")
+ self.binary64_to_bid64("1", "[419ffffffffd9ec7]", "[30e4c4b3ffffa537]", "0x20")
+ self.binary64_to_bid64("2", "[419ffffffffd9ec7]", "[30e4c4b3ffffa538]", "0x20")
+ self.binary64_to_bid64("3", "[419ffffffffd9ec7]", "[30e4c4b3ffffa537]", "0x20")
+ self.binary64_to_bid64("4", "[419ffffffffd9ec7]", "[30e4c4b3ffffa538]", "0x20")
+ self.binary64_to_bid64("0", "[42effffffffffff3]", "[31a9fffffffffffc]", "0x20")
+ self.binary64_to_bid64("1", "[42effffffffffff3]", "[31a9fffffffffffb]", "0x20")
+ self.binary64_to_bid64("2", "[42effffffffffff3]", "[31a9fffffffffffc]", "0x20")
+ self.binary64_to_bid64("3", "[42effffffffffff3]", "[31a9fffffffffffb]", "0x20")
+ self.binary64_to_bid64("4", "[42effffffffffff3]", "[31a9fffffffffffc]", "0x20")
+ self.binary64_to_bid64("0", "[4425af1d78b58bd0]", "[32671afd498cffdb]", "0x20")
+ self.binary64_to_bid64("1", "[4425af1d78b58bd0]", "[32671afd498cffdb]", "0x20")
+ self.binary64_to_bid64("2", "[4425af1d78b58bd0]", "[32671afd498cffdc]", "0x20")
+ self.binary64_to_bid64("3", "[4425af1d78b58bd0]", "[32671afd498cffdb]", "0x20")
+ self.binary64_to_bid64("4", "[4425af1d78b58bd0]", "[32671afd498cffdb]", "0x20")
+ self.binary64_to_bid64("0", "[4564adf4b6fffd50]", "[33271afd497bcfee]", "0x20")
+ self.binary64_to_bid64("1", "[4564adf4b6fffd50]", "[33271afd497bcfed]", "0x20")
+ self.binary64_to_bid64("2", "[4564adf4b6fffd50]", "[33271afd497bcfee]", "0x20")
+ self.binary64_to_bid64("3", "[4564adf4b6fffd50]", "[33271afd497bcfed]", "0x20")
+ self.binary64_to_bid64("4", "[4564adf4b6fffd50]", "[33271afd497bcfee]", "0x20")
+ self.binary64_to_bid64("0", "[46cfeefddf633d56]", "[34049a23f5820cd2]", "0x20")
+ self.binary64_to_bid64("1", "[46cfeefddf633d56]", "[34049a23f5820cd1]", "0x20")
+ self.binary64_to_bid64("2", "[46cfeefddf633d56]", "[34049a23f5820cd2]", "0x20")
+ self.binary64_to_bid64("3", "[46cfeefddf633d56]", "[34049a23f5820cd1]", "0x20")
+ self.binary64_to_bid64("4", "[46cfeefddf633d56]", "[34049a23f5820cd2]", "0x20")
+ self.binary64_to_bid64("0", "[47d8326f87d4cae0]", "[34a4921887525f5e]", "0x20")
+ self.binary64_to_bid64("1", "[47d8326f87d4cae0]", "[34a4921887525f5d]", "0x20")
+ self.binary64_to_bid64("2", "[47d8326f87d4cae0]", "[34a4921887525f5e]", "0x20")
+ self.binary64_to_bid64("3", "[47d8326f87d4cae0]", "[34a4921887525f5d]", "0x20")
+ self.binary64_to_bid64("4", "[47d8326f87d4cae0]", "[34a4921887525f5e]", "0x20")
+ self.binary64_to_bid64("0", "[4955777904e0e40a]", "[3586cd95b72ed23f]", "0x20")
+ self.binary64_to_bid64("1", "[4955777904e0e40a]", "[3586cd95b72ed23e]", "0x20")
+ self.binary64_to_bid64("2", "[4955777904e0e40a]", "[3586cd95b72ed23f]", "0x20")
+ self.binary64_to_bid64("3", "[4955777904e0e40a]", "[3586cd95b72ed23e]", "0x20")
+ self.binary64_to_bid64("4", "[4955777904e0e40a]", "[3586cd95b72ed23f]", "0x20")
+ self.binary64_to_bid64("0", "[4a90eb7c381805d8]", "[36459f6202fc824e]", "0x20")
+ self.binary64_to_bid64("1", "[4a90eb7c381805d8]", "[36459f6202fc824e]", "0x20")
+ self.binary64_to_bid64("2", "[4a90eb7c381805d8]", "[36459f6202fc824f]", "0x20")
+ self.binary64_to_bid64("3", "[4a90eb7c381805d8]", "[36459f6202fc824e]", "0x20")
+ self.binary64_to_bid64("4", "[4a90eb7c381805d8]", "[36459f6202fc824e]", "0x20")
+ self.binary64_to_bid64("0", "[4bfa715a314cb599]", "[3723af828fd2b094]", "0x20")
+ self.binary64_to_bid64("1", "[4bfa715a314cb599]", "[3723af828fd2b094]", "0x20")
+ self.binary64_to_bid64("2", "[4bfa715a314cb599]", "[3723af828fd2b095]", "0x20")
+ self.binary64_to_bid64("3", "[4bfa715a314cb599]", "[3723af828fd2b094]", "0x20")
+ self.binary64_to_bid64("4", "[4bfa715a314cb599]", "[3723af828fd2b094]", "0x20")
+ self.binary64_to_bid64("0", "[4d31e05cb2a12026]", "[37da205c570a96bc]", "0x20")
+ self.binary64_to_bid64("1", "[4d31e05cb2a12026]", "[37da205c570a96bc]", "0x20")
+ self.binary64_to_bid64("2", "[4d31e05cb2a12026]", "[37da205c570a96bd]", "0x20")
+ self.binary64_to_bid64("3", "[4d31e05cb2a12026]", "[37da205c570a96bc]", "0x20")
+ self.binary64_to_bid64("4", "[4d31e05cb2a12026]", "[37da205c570a96bc]", "0x20")
+ self.binary64_to_bid64("0", "[4e7ea4f836d5f504]", "[38a4b23cf387f282]", "0x20")
+ self.binary64_to_bid64("1", "[4e7ea4f836d5f504]", "[38a4b23cf387f282]", "0x20")
+ self.binary64_to_bid64("2", "[4e7ea4f836d5f504]", "[38a4b23cf387f283]", "0x20")
+ self.binary64_to_bid64("3", "[4e7ea4f836d5f504]", "[38a4b23cf387f282]", "0x20")
+ self.binary64_to_bid64("4", "[4e7ea4f836d5f504]", "[38a4b23cf387f282]", "0x20")
+ self.binary64_to_bid64("0", "[4fb357b77700bf28]", "[395f151a151d660e]", "0x20")
+ self.binary64_to_bid64("1", "[4fb357b77700bf28]", "[395f151a151d660d]", "0x20")
+ self.binary64_to_bid64("2", "[4fb357b77700bf28]", "[395f151a151d660e]", "0x20")
+ self.binary64_to_bid64("3", "[4fb357b77700bf28]", "[395f151a151d660d]", "0x20")
+ self.binary64_to_bid64("4", "[4fb357b77700bf28]", "[395f151a151d660e]", "0x20")
+ self.binary64_to_bid64("0", "[50f4177a9915fbf8]", "[6e81dabeab265870]", "0x20")
+ self.binary64_to_bid64("1", "[50f4177a9915fbf8]", "[6e81dabeab26586f]", "0x20")
+ self.binary64_to_bid64("2", "[50f4177a9915fbf8]", "[6e81dabeab265870]", "0x20")
+ self.binary64_to_bid64("3", "[50f4177a9915fbf8]", "[6e81dabeab26586f]", "0x20")
+ self.binary64_to_bid64("4", "[50f4177a9915fbf8]", "[6e81dabeab265870]", "0x20")
+ self.binary64_to_bid64("0", "[527f50a908fb7e03]", "[3b08da46270d0916]", "0x20")
+ self.binary64_to_bid64("1", "[527f50a908fb7e03]", "[3b08da46270d0915]", "0x20")
+ self.binary64_to_bid64("2", "[527f50a908fb7e03]", "[3b08da46270d0916]", "0x20")
+ self.binary64_to_bid64("3", "[527f50a908fb7e03]", "[3b08da46270d0915]", "0x20")
+ self.binary64_to_bid64("4", "[527f50a908fb7e03]", "[3b08da46270d0916]", "0x20")
+ self.binary64_to_bid64("0", "[536e685925e4d980]", "[3b9c2aed74caca4e]", "0x20")
+ self.binary64_to_bid64("1", "[536e685925e4d980]", "[3b9c2aed74caca4e]", "0x20")
+ self.binary64_to_bid64("2", "[536e685925e4d980]", "[3b9c2aed74caca4f]", "0x20")
+ self.binary64_to_bid64("3", "[536e685925e4d980]", "[3b9c2aed74caca4e]", "0x20")
+ self.binary64_to_bid64("4", "[536e685925e4d980]", "[3b9c2aed74caca4e]", "0x20")
+ self.binary64_to_bid64("0", "[54d68ad443b5f380]", "[3c718452f93667d3]", "0x20")
+ self.binary64_to_bid64("1", "[54d68ad443b5f380]", "[3c718452f93667d2]", "0x20")
+ self.binary64_to_bid64("2", "[54d68ad443b5f380]", "[3c718452f93667d3]", "0x20")
+ self.binary64_to_bid64("3", "[54d68ad443b5f380]", "[3c718452f93667d2]", "0x20")
+ self.binary64_to_bid64("4", "[54d68ad443b5f380]", "[3c718452f93667d3]", "0x20")
+ self.binary64_to_bid64("0", "[5641f324d11d4862]", "[3d4bb359f8604e90]", "0x20")
+ self.binary64_to_bid64("1", "[5641f324d11d4862]", "[3d4bb359f8604e90]", "0x20")
+ self.binary64_to_bid64("2", "[5641f324d11d4862]", "[3d4bb359f8604e91]", "0x20")
+ self.binary64_to_bid64("3", "[5641f324d11d4862]", "[3d4bb359f8604e90]", "0x20")
+ self.binary64_to_bid64("4", "[5641f324d11d4862]", "[3d4bb359f8604e90]", "0x20")
+ self.binary64_to_bid64("0", "[57a0f44cbd42cb38]", "[3e24a2aa5c9659ef]", "0x20")
+ self.binary64_to_bid64("1", "[57a0f44cbd42cb38]", "[3e24a2aa5c9659ee]", "0x20")
+ self.binary64_to_bid64("2", "[57a0f44cbd42cb38]", "[3e24a2aa5c9659ef]", "0x20")
+ self.binary64_to_bid64("3", "[57a0f44cbd42cb38]", "[3e24a2aa5c9659ee]", "0x20")
+ self.binary64_to_bid64("4", "[57a0f44cbd42cb38]", "[3e24a2aa5c9659ef]", "0x20")
+ self.binary64_to_bid64("0", "[58e7d01d4691ddbe]", "[3ee6d3adc1465f7a]", "0x20")
+ self.binary64_to_bid64("1", "[58e7d01d4691ddbe]", "[3ee6d3adc1465f79]", "0x20")
+ self.binary64_to_bid64("2", "[58e7d01d4691ddbe]", "[3ee6d3adc1465f7a]", "0x20")
+ self.binary64_to_bid64("3", "[58e7d01d4691ddbe]", "[3ee6d3adc1465f79]", "0x20")
+ self.binary64_to_bid64("4", "[58e7d01d4691ddbe]", "[3ee6d3adc1465f7a]", "0x20")
+ self.binary64_to_bid64("0", "[5a1c6b821b021228]", "[3fa4458ecd097959]", "0x20")
+ self.binary64_to_bid64("1", "[5a1c6b821b021228]", "[3fa4458ecd097958]", "0x20")
+ self.binary64_to_bid64("2", "[5a1c6b821b021228]", "[3fa4458ecd097959]", "0x20")
+ self.binary64_to_bid64("3", "[5a1c6b821b021228]", "[3fa4458ecd097958]", "0x20")
+ self.binary64_to_bid64("4", "[5a1c6b821b021228]", "[3fa4458ecd097959]", "0x20")
+ self.binary64_to_bid64("0", "[5b507ce30dc1d288]", "[4059fc74de475c98]", "0x20")
+ self.binary64_to_bid64("1", "[5b507ce30dc1d288]", "[4059fc74de475c97]", "0x20")
+ self.binary64_to_bid64("2", "[5b507ce30dc1d288]", "[4059fc74de475c98]", "0x20")
+ self.binary64_to_bid64("3", "[5b507ce30dc1d288]", "[4059fc74de475c97]", "0x20")
+ self.binary64_to_bid64("4", "[5b507ce30dc1d288]", "[4059fc74de475c98]", "0x20")
+ self.binary64_to_bid64("0", "[5cca760b389de2d6]", "[704afc0b51cb8ad8]", "0x20")
+ self.binary64_to_bid64("1", "[5cca760b389de2d6]", "[704afc0b51cb8ad7]", "0x20")
+ self.binary64_to_bid64("2", "[5cca760b389de2d6]", "[704afc0b51cb8ad8]", "0x20")
+ self.binary64_to_bid64("3", "[5cca760b389de2d6]", "[704afc0b51cb8ad7]", "0x20")
+ self.binary64_to_bid64("4", "[5cca760b389de2d6]", "[704afc0b51cb8ad8]", "0x20")
+ self.binary64_to_bid64("0", "[5e12cd210cf8852e]", "[420536858f72d72f]", "0x20")
+ self.binary64_to_bid64("1", "[5e12cd210cf8852e]", "[420536858f72d72f]", "0x20")
+ self.binary64_to_bid64("2", "[5e12cd210cf8852e]", "[420536858f72d730]", "0x20")
+ self.binary64_to_bid64("3", "[5e12cd210cf8852e]", "[420536858f72d72f]", "0x20")
+ self.binary64_to_bid64("4", "[5e12cd210cf8852e]", "[420536858f72d72f]", "0x20")
+ self.binary64_to_bid64("0", "[5f43fdea17697030]", "[42bd0fcbf97f8d11]", "0x20")
+ self.binary64_to_bid64("1", "[5f43fdea17697030]", "[42bd0fcbf97f8d10]", "0x20")
+ self.binary64_to_bid64("2", "[5f43fdea17697030]", "[42bd0fcbf97f8d11]", "0x20")
+ self.binary64_to_bid64("3", "[5f43fdea17697030]", "[42bd0fcbf97f8d10]", "0x20")
+ self.binary64_to_bid64("4", "[5f43fdea17697030]", "[42bd0fcbf97f8d11]", "0x20")
+ self.binary64_to_bid64("0", "[60b28a61cf9483b7]", "[43969be522c20498]", "0x20")
+ self.binary64_to_bid64("1", "[60b28a61cf9483b7]", "[43969be522c20498]", "0x20")
+ self.binary64_to_bid64("2", "[60b28a61cf9483b7]", "[43969be522c20499]", "0x20")
+ self.binary64_to_bid64("3", "[60b28a61cf9483b7]", "[43969be522c20498]", "0x20")
+ self.binary64_to_bid64("4", "[60b28a61cf9483b7]", "[43969be522c20498]", "0x20")
+ self.binary64_to_bid64("0", "[61e5874bb0e0b994]", "[444dc38f2c7e06b2]", "0x20")
+ self.binary64_to_bid64("1", "[61e5874bb0e0b994]", "[444dc38f2c7e06b1]", "0x20")
+ self.binary64_to_bid64("2", "[61e5874bb0e0b994]", "[444dc38f2c7e06b2]", "0x20")
+ self.binary64_to_bid64("3", "[61e5874bb0e0b994]", "[444dc38f2c7e06b1]", "0x20")
+ self.binary64_to_bid64("4", "[61e5874bb0e0b994]", "[444dc38f2c7e06b2]", "0x20")
+ self.binary64_to_bid64("0", "[6322cff28faccf50]", "[450c9c90a109ee71]", "0x20")
+ self.binary64_to_bid64("1", "[6322cff28faccf50]", "[450c9c90a109ee71]", "0x20")
+ self.binary64_to_bid64("2", "[6322cff28faccf50]", "[450c9c90a109ee72]", "0x20")
+ self.binary64_to_bid64("3", "[6322cff28faccf50]", "[450c9c90a109ee71]", "0x20")
+ self.binary64_to_bid64("4", "[6322cff28faccf50]", "[450c9c90a109ee71]", "0x20")
+ self.binary64_to_bid64("0", "[64848f205de07f60]", "[45e5c7e5a23d6e99]", "0x20")
+ self.binary64_to_bid64("1", "[64848f205de07f60]", "[45e5c7e5a23d6e98]", "0x20")
+ self.binary64_to_bid64("2", "[64848f205de07f60]", "[45e5c7e5a23d6e99]", "0x20")
+ self.binary64_to_bid64("3", "[64848f205de07f60]", "[45e5c7e5a23d6e98]", "0x20")
+ self.binary64_to_bid64("4", "[64848f205de07f60]", "[45e5c7e5a23d6e99]", "0x20")
+ self.binary64_to_bid64("0", "[65e62fba9df27fcd]", "[46ba2a76b2b3cf28]", "0x20")
+ self.binary64_to_bid64("1", "[65e62fba9df27fcd]", "[46ba2a76b2b3cf28]", "0x20")
+ self.binary64_to_bid64("2", "[65e62fba9df27fcd]", "[46ba2a76b2b3cf29]", "0x20")
+ self.binary64_to_bid64("3", "[65e62fba9df27fcd]", "[46ba2a76b2b3cf28]", "0x20")
+ self.binary64_to_bid64("4", "[65e62fba9df27fcd]", "[46ba2a76b2b3cf28]", "0x20")
+ self.binary64_to_bid64("0", "[673ac4b2b1ed5c58]", "[47869ee16c01c21b]", "0x20")
+ self.binary64_to_bid64("1", "[673ac4b2b1ed5c58]", "[47869ee16c01c21b]", "0x20")
+ self.binary64_to_bid64("2", "[673ac4b2b1ed5c58]", "[47869ee16c01c21c]", "0x20")
+ self.binary64_to_bid64("3", "[673ac4b2b1ed5c58]", "[47869ee16c01c21b]", "0x20")
+ self.binary64_to_bid64("4", "[673ac4b2b1ed5c58]", "[47869ee16c01c21b]", "0x20")
+ self.binary64_to_bid64("0", "[6877dcb29c9307ba]", "[484630422df378d0]", "0x20")
+ self.binary64_to_bid64("1", "[6877dcb29c9307ba]", "[484630422df378cf]", "0x20")
+ self.binary64_to_bid64("2", "[6877dcb29c9307ba]", "[484630422df378d0]", "0x20")
+ self.binary64_to_bid64("3", "[6877dcb29c9307ba]", "[484630422df378cf]", "0x20")
+ self.binary64_to_bid64("4", "[6877dcb29c9307ba]", "[484630422df378d0]", "0x20")
+ self.binary64_to_bid64("0", "[69a102b47e4af988]", "[48f721267424c960]", "0x20")
+ self.binary64_to_bid64("1", "[69a102b47e4af988]", "[48f721267424c960]", "0x20")
+ self.binary64_to_bid64("2", "[69a102b47e4af988]", "[48f721267424c961]", "0x20")
+ self.binary64_to_bid64("3", "[69a102b47e4af988]", "[48f721267424c960]", "0x20")
+ self.binary64_to_bid64("4", "[69a102b47e4af988]", "[48f721267424c960]", "0x20")
+ self.binary64_to_bid64("0", "[6b0a500d3286441a]", "[49cf019ab9fdfd40]", "0x20")
+ self.binary64_to_bid64("1", "[6b0a500d3286441a]", "[49cf019ab9fdfd40]", "0x20")
+ self.binary64_to_bid64("2", "[6b0a500d3286441a]", "[49cf019ab9fdfd41]", "0x20")
+ self.binary64_to_bid64("3", "[6b0a500d3286441a]", "[49cf019ab9fdfd40]", "0x20")
+ self.binary64_to_bid64("4", "[6b0a500d3286441a]", "[49cf019ab9fdfd40]", "0x20")
+ self.binary64_to_bid64("0", "[6c690ffef7fb037e]", "[4aa5feba31df99d7]", "0x20")
+ self.binary64_to_bid64("1", "[6c690ffef7fb037e]", "[4aa5feba31df99d7]", "0x20")
+ self.binary64_to_bid64("2", "[6c690ffef7fb037e]", "[4aa5feba31df99d8]", "0x20")
+ self.binary64_to_bid64("3", "[6c690ffef7fb037e]", "[4aa5feba31df99d7]", "0x20")
+ self.binary64_to_bid64("4", "[6c690ffef7fb037e]", "[4aa5feba31df99d7]", "0x20")
+ self.binary64_to_bid64("0", "[6d9b3e2a769f7664]", "[72d22a6663060ae2]", "0x20")
+ self.binary64_to_bid64("1", "[6d9b3e2a769f7664]", "[72d22a6663060ae1]", "0x20")
+ self.binary64_to_bid64("2", "[6d9b3e2a769f7664]", "[72d22a6663060ae2]", "0x20")
+ self.binary64_to_bid64("3", "[6d9b3e2a769f7664]", "[72d22a6663060ae1]", "0x20")
+ self.binary64_to_bid64("4", "[6d9b3e2a769f7664]", "[72d22a6663060ae2]", "0x20")
+ self.binary64_to_bid64("0", "[6edf6f90ff68ddb8]", "[4c2422484654905d]", "0x20")
+ self.binary64_to_bid64("1", "[6edf6f90ff68ddb8]", "[4c2422484654905c]", "0x20")
+ self.binary64_to_bid64("2", "[6edf6f90ff68ddb8]", "[4c2422484654905d]", "0x20")
+ self.binary64_to_bid64("3", "[6edf6f90ff68ddb8]", "[4c2422484654905c]", "0x20")
+ self.binary64_to_bid64("4", "[6edf6f90ff68ddb8]", "[4c2422484654905d]", "0x20")
+ self.binary64_to_bid64("0", "[7023e3a32c6f9728]", "[4ce57c2f60850e03]", "0x20")
+ self.binary64_to_bid64("1", "[7023e3a32c6f9728]", "[4ce57c2f60850e02]", "0x20")
+ self.binary64_to_bid64("2", "[7023e3a32c6f9728]", "[4ce57c2f60850e03]", "0x20")
+ self.binary64_to_bid64("3", "[7023e3a32c6f9728]", "[4ce57c2f60850e02]", "0x20")
+ self.binary64_to_bid64("4", "[7023e3a32c6f9728]", "[4ce57c2f60850e03]", "0x20")
+ self.binary64_to_bid64("0", "[719ec7751a93d687]", "[4dc71edbecda5372]", "0x20")
+ self.binary64_to_bid64("1", "[719ec7751a93d687]", "[4dc71edbecda5371]", "0x20")
+ self.binary64_to_bid64("2", "[719ec7751a93d687]", "[4dc71edbecda5372]", "0x20")
+ self.binary64_to_bid64("3", "[719ec7751a93d687]", "[4dc71edbecda5371]", "0x20")
+ self.binary64_to_bid64("4", "[719ec7751a93d687]", "[4dc71edbecda5372]", "0x20")
+ self.binary64_to_bid64("0", "[72c0a4a4fb745824]", "[4e742fc185bb4cf6]", "0x20")
+ self.binary64_to_bid64("1", "[72c0a4a4fb745824]", "[4e742fc185bb4cf6]", "0x20")
+ self.binary64_to_bid64("2", "[72c0a4a4fb745824]", "[4e742fc185bb4cf7]", "0x20")
+ self.binary64_to_bid64("3", "[72c0a4a4fb745824]", "[4e742fc185bb4cf6]", "0x20")
+ self.binary64_to_bid64("4", "[72c0a4a4fb745824]", "[4e742fc185bb4cf6]", "0x20")
+ self.binary64_to_bid64("0", "[74109d0067e98cf0]", "[4f4439d019e3a2da]", "0x20")
+ self.binary64_to_bid64("1", "[74109d0067e98cf0]", "[4f4439d019e3a2da]", "0x20")
+ self.binary64_to_bid64("2", "[74109d0067e98cf0]", "[4f4439d019e3a2db]", "0x20")
+ self.binary64_to_bid64("3", "[74109d0067e98cf0]", "[4f4439d019e3a2da]", "0x20")
+ self.binary64_to_bid64("4", "[74109d0067e98cf0]", "[4f4439d019e3a2da]", "0x20")
+ self.binary64_to_bid64("0", "[755907c75eaaa468]", "[5006ad162217aa2f]", "0x20")
+ self.binary64_to_bid64("1", "[755907c75eaaa468]", "[5006ad162217aa2f]", "0x20")
+ self.binary64_to_bid64("2", "[755907c75eaaa468]", "[5006ad162217aa30]", "0x20")
+ self.binary64_to_bid64("3", "[755907c75eaaa468]", "[5006ad162217aa2f]", "0x20")
+ self.binary64_to_bid64("4", "[755907c75eaaa468]", "[5006ad162217aa2f]", "0x20")
+ self.binary64_to_bid64("0", "[76b025a8cc77c8a2]", "[50d2105abc3ac9ea]", "0x20")
+ self.binary64_to_bid64("1", "[76b025a8cc77c8a2]", "[50d2105abc3ac9ea]", "0x20")
+ self.binary64_to_bid64("2", "[76b025a8cc77c8a2]", "[50d2105abc3ac9eb]", "0x20")
+ self.binary64_to_bid64("3", "[76b025a8cc77c8a2]", "[50d2105abc3ac9ea]", "0x20")
+ self.binary64_to_bid64("4", "[76b025a8cc77c8a2]", "[50d2105abc3ac9ea]", "0x20")
+ self.binary64_to_bid64("0", "[7809305548a9c21a]", "[51a5e8d7c1abf9a9]", "0x20")
+ self.binary64_to_bid64("1", "[7809305548a9c21a]", "[51a5e8d7c1abf9a9]", "0x20")
+ self.binary64_to_bid64("2", "[7809305548a9c21a]", "[51a5e8d7c1abf9aa]", "0x20")
+ self.binary64_to_bid64("3", "[7809305548a9c21a]", "[51a5e8d7c1abf9a9]", "0x20")
+ self.binary64_to_bid64("4", "[7809305548a9c21a]", "[51a5e8d7c1abf9a9]", "0x20")
+ self.binary64_to_bid64("0", "[793a51859c2ceb68]", "[74905f5d54994a00]", "0x20")
+ self.binary64_to_bid64("1", "[793a51859c2ceb68]", "[74905f5d54994a00]", "0x20")
+ self.binary64_to_bid64("2", "[793a51859c2ceb68]", "[74905f5d54994a01]", "0x20")
+ self.binary64_to_bid64("3", "[793a51859c2ceb68]", "[74905f5d54994a00]", "0x20")
+ self.binary64_to_bid64("4", "[793a51859c2ceb68]", "[74905f5d54994a00]", "0x20")
+ self.binary64_to_bid64("0", "[7a7671a9a9766da0]", "[531cf2a660b312d7]", "0x20")
+ self.binary64_to_bid64("1", "[7a7671a9a9766da0]", "[531cf2a660b312d7]", "0x20")
+ self.binary64_to_bid64("2", "[7a7671a9a9766da0]", "[531cf2a660b312d8]", "0x20")
+ self.binary64_to_bid64("3", "[7a7671a9a9766da0]", "[531cf2a660b312d7]", "0x20")
+ self.binary64_to_bid64("4", "[7a7671a9a9766da0]", "[531cf2a660b312d7]", "0x20")
+ self.binary64_to_bid64("0", "[7baaee0d2fea53c0]", "[53d235dff4e4e708]", "0x20")
+ self.binary64_to_bid64("1", "[7baaee0d2fea53c0]", "[53d235dff4e4e707]", "0x20")
+ self.binary64_to_bid64("2", "[7baaee0d2fea53c0]", "[53d235dff4e4e708]", "0x20")
+ self.binary64_to_bid64("3", "[7baaee0d2fea53c0]", "[53d235dff4e4e707]", "0x20")
+ self.binary64_to_bid64("4", "[7baaee0d2fea53c0]", "[53d235dff4e4e708]", "0x20")
+ self.binary64_to_bid64("0", "[7d14ffcaa7988398]", "[54abe96d9de0b12d]", "0x20")
+ self.binary64_to_bid64("1", "[7d14ffcaa7988398]", "[54abe96d9de0b12d]", "0x20")
+ self.binary64_to_bid64("2", "[7d14ffcaa7988398]", "[54abe96d9de0b12e]", "0x20")
+ self.binary64_to_bid64("3", "[7d14ffcaa7988398]", "[54abe96d9de0b12d]", "0x20")
+ self.binary64_to_bid64("4", "[7d14ffcaa7988398]", "[54abe96d9de0b12d]", "0x20")
+ self.binary64_to_bid64("0", "[7e585372e3c4a750]", "[556e7820efb6ef28]", "0x20")
+ self.binary64_to_bid64("1", "[7e585372e3c4a750]", "[556e7820efb6ef28]", "0x20")
+ self.binary64_to_bid64("2", "[7e585372e3c4a750]", "[556e7820efb6ef29]", "0x20")
+ self.binary64_to_bid64("3", "[7e585372e3c4a750]", "[556e7820efb6ef28]", "0x20")
+ self.binary64_to_bid64("4", "[7e585372e3c4a750]", "[556e7820efb6ef28]", "0x20")
+ self.binary64_to_bid64("0", "[7fefffffffffffff]", "[566662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("1", "[7fefffffffffffff]", "[566662fe0cb7f7eb]", "0x20")
+ self.binary64_to_bid64("2", "[7fefffffffffffff]", "[566662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("3", "[7fefffffffffffff]", "[566662fe0cb7f7eb]", "0x20")
+ self.binary64_to_bid64("4", "[7fefffffffffffff]", "[566662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("0", "[7ff0000000000000]", "[7800000000000000]", "0x00")
+ self.binary64_to_bid64("1", "[7ff0000000000000]", "[7800000000000000]", "0x00")
+ self.binary64_to_bid64("2", "[7ff0000000000000]", "[7800000000000000]", "0x00")
+ self.binary64_to_bid64("3", "[7ff0000000000000]", "[7800000000000000]", "0x00")
+ self.binary64_to_bid64("4", "[7ff0000000000000]", "[7800000000000000]", "0x00")
+ self.binary64_to_bid64("0", "[7ff6100000000000]", "[7c03080000000000]", "0x01")
+ self.binary64_to_bid64("0", "[7ffe100000000000]", "[7c03080000000000]", "0x00")
+ self.binary64_to_bid64("0", "[8000000000000001]", "[87718d80392931b1]", "0x22")
+ self.binary64_to_bid64("1", "[8000000000000001]", "[87718d80392931b2]", "0x22")
+ self.binary64_to_bid64("2", "[8000000000000001]", "[87718d80392931b1]", "0x22")
+ self.binary64_to_bid64("3", "[8000000000000001]", "[87718d80392931b1]", "0x22")
+ self.binary64_to_bid64("4", "[8000000000000001]", "[87718d80392931b1]", "0x22")
+ self.binary64_to_bid64("0", "[800000000027aa50]", "[884490165c833a58]", "0x22")
+ self.binary64_to_bid64("1", "[800000000027aa50]", "[884490165c833a58]", "0x22")
+ self.binary64_to_bid64("2", "[800000000027aa50]", "[884490165c833a57]", "0x22")
+ self.binary64_to_bid64("3", "[800000000027aa50]", "[884490165c833a57]", "0x22")
+ self.binary64_to_bid64("4", "[800000000027aa50]", "[884490165c833a58]", "0x22")
+ self.binary64_to_bid64("0", "[800002b8f32126fe]", "[89054112ea728c6a]", "0x22")
+ self.binary64_to_bid64("1", "[800002b8f32126fe]", "[89054112ea728c6a]", "0x22")
+ self.binary64_to_bid64("2", "[800002b8f32126fe]", "[89054112ea728c69]", "0x22")
+ self.binary64_to_bid64("3", "[800002b8f32126fe]", "[89054112ea728c69]", "0x22")
+ self.binary64_to_bid64("4", "[800002b8f32126fe]", "[89054112ea728c6a]", "0x22")
+ self.binary64_to_bid64("0", "[800fffffffffffff]", "[8967e7b160ef71c1]", "0x22")
+ self.binary64_to_bid64("1", "[800fffffffffffff]", "[8967e7b160ef71c1]", "0x22")
+ self.binary64_to_bid64("2", "[800fffffffffffff]", "[8967e7b160ef71c0]", "0x22")
+ self.binary64_to_bid64("3", "[800fffffffffffff]", "[8967e7b160ef71c0]", "0x22")
+ self.binary64_to_bid64("4", "[800fffffffffffff]", "[8967e7b160ef71c1]", "0x22")
+ self.binary64_to_bid64("0", "[8010000000000000]", "[8967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("1", "[8010000000000000]", "[8967e7b160ef71c2]", "0x20")
+ self.binary64_to_bid64("2", "[8010000000000000]", "[8967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("3", "[8010000000000000]", "[8967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("4", "[8010000000000000]", "[8967e7b160ef71c1]", "0x20")
+ self.binary64_to_bid64("0", "[8020000000000000]", "[896fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("1", "[8020000000000000]", "[896fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("2", "[8020000000000000]", "[896fcf62c1dee382]", "0x20")
+ self.binary64_to_bid64("3", "[8020000000000000]", "[896fcf62c1dee382]", "0x20")
+ self.binary64_to_bid64("4", "[8020000000000000]", "[896fcf62c1dee383]", "0x20")
+ self.binary64_to_bid64("0", "[80a63a2c7516098c]", "[89c59f653f1f84c9]", "0x20")
+ self.binary64_to_bid64("1", "[80a63a2c7516098c]", "[89c59f653f1f84ca]", "0x20")
+ self.binary64_to_bid64("2", "[80a63a2c7516098c]", "[89c59f653f1f84c9]", "0x20")
+ self.binary64_to_bid64("3", "[80a63a2c7516098c]", "[89c59f653f1f84c9]", "0x20")
+ self.binary64_to_bid64("4", "[80a63a2c7516098c]", "[89c59f653f1f84c9]", "0x20")
+ self.binary64_to_bid64("0", "[81e5584e68efdfd8]", "[8a85a96784abc71c]", "0x20")
+ self.binary64_to_bid64("1", "[81e5584e68efdfd8]", "[8a85a96784abc71d]", "0x20")
+ self.binary64_to_bid64("2", "[81e5584e68efdfd8]", "[8a85a96784abc71c]", "0x20")
+ self.binary64_to_bid64("3", "[81e5584e68efdfd8]", "[8a85a96784abc71c]", "0x20")
+ self.binary64_to_bid64("4", "[81e5584e68efdfd8]", "[8a85a96784abc71c]", "0x20")
+ self.binary64_to_bid64("0", "[83449599b25701a2]", "[8b56e6a001777092]", "0x20")
+ self.binary64_to_bid64("1", "[83449599b25701a2]", "[8b56e6a001777092]", "0x20")
+ self.binary64_to_bid64("2", "[83449599b25701a2]", "[8b56e6a001777091]", "0x20")
+ self.binary64_to_bid64("3", "[83449599b25701a2]", "[8b56e6a001777091]", "0x20")
+ self.binary64_to_bid64("4", "[83449599b25701a2]", "[8b56e6a001777092]", "0x20")
+ self.binary64_to_bid64("0", "[849694881e6bd6c6]", "[8c2544b0a2ee1564]", "0x20")
+ self.binary64_to_bid64("1", "[849694881e6bd6c6]", "[8c2544b0a2ee1565]", "0x20")
+ self.binary64_to_bid64("2", "[849694881e6bd6c6]", "[8c2544b0a2ee1564]", "0x20")
+ self.binary64_to_bid64("3", "[849694881e6bd6c6]", "[8c2544b0a2ee1564]", "0x20")
+ self.binary64_to_bid64("4", "[849694881e6bd6c6]", "[8c2544b0a2ee1564]", "0x20")
+ self.binary64_to_bid64("0", "[85aa788e83518380]", "[8cc81859e51ab39b]", "0x20")
+ self.binary64_to_bid64("1", "[85aa788e83518380]", "[8cc81859e51ab39b]", "0x20")
+ self.binary64_to_bid64("2", "[85aa788e83518380]", "[8cc81859e51ab39a]", "0x20")
+ self.binary64_to_bid64("3", "[85aa788e83518380]", "[8cc81859e51ab39a]", "0x20")
+ self.binary64_to_bid64("4", "[85aa788e83518380]", "[8cc81859e51ab39b]", "0x20")
+ self.binary64_to_bid64("0", "[87033a01038c7050]", "[8d98a94bb619856c]", "0x20")
+ self.binary64_to_bid64("1", "[87033a01038c7050]", "[8d98a94bb619856d]", "0x20")
+ self.binary64_to_bid64("2", "[87033a01038c7050]", "[8d98a94bb619856c]", "0x20")
+ self.binary64_to_bid64("3", "[87033a01038c7050]", "[8d98a94bb619856c]", "0x20")
+ self.binary64_to_bid64("4", "[87033a01038c7050]", "[8d98a94bb619856c]", "0x20")
+ self.binary64_to_bid64("0", "[8834ea517dafabe0]", "[8e4e10b60c3a8050]", "0x20")
+ self.binary64_to_bid64("1", "[8834ea517dafabe0]", "[8e4e10b60c3a8050]", "0x20")
+ self.binary64_to_bid64("2", "[8834ea517dafabe0]", "[8e4e10b60c3a804f]", "0x20")
+ self.binary64_to_bid64("3", "[8834ea517dafabe0]", "[8e4e10b60c3a804f]", "0x20")
+ self.binary64_to_bid64("4", "[8834ea517dafabe0]", "[8e4e10b60c3a8050]", "0x20")
+ self.binary64_to_bid64("0", "[89cacc46749dccfe]", "[8f460c042ae9e295]", "0x20")
+ self.binary64_to_bid64("1", "[89cacc46749dccfe]", "[8f460c042ae9e295]", "0x20")
+ self.binary64_to_bid64("2", "[89cacc46749dccfe]", "[8f460c042ae9e294]", "0x20")
+ self.binary64_to_bid64("3", "[89cacc46749dccfe]", "[8f460c042ae9e294]", "0x20")
+ self.binary64_to_bid64("4", "[89cacc46749dccfe]", "[8f460c042ae9e295]", "0x20")
+ self.binary64_to_bid64("0", "[8aa2c791ae276a00]", "[8fc6f1606842d6c6]", "0x20")
+ self.binary64_to_bid64("1", "[8aa2c791ae276a00]", "[8fc6f1606842d6c7]", "0x20")
+ self.binary64_to_bid64("2", "[8aa2c791ae276a00]", "[8fc6f1606842d6c6]", "0x20")
+ self.binary64_to_bid64("3", "[8aa2c791ae276a00]", "[8fc6f1606842d6c6]", "0x20")
+ self.binary64_to_bid64("4", "[8aa2c791ae276a00]", "[8fc6f1606842d6c6]", "0x20")
+ self.binary64_to_bid64("0", "[8c4aa424df1419a8]", "[90c69c1aedc0de7d]", "0x20")
+ self.binary64_to_bid64("1", "[8c4aa424df1419a8]", "[90c69c1aedc0de7e]", "0x20")
+ self.binary64_to_bid64("2", "[8c4aa424df1419a8]", "[90c69c1aedc0de7d]", "0x20")
+ self.binary64_to_bid64("3", "[8c4aa424df1419a8]", "[90c69c1aedc0de7d]", "0x20")
+ self.binary64_to_bid64("4", "[8c4aa424df1419a8]", "[90c69c1aedc0de7d]", "0x20")
+ self.binary64_to_bid64("0", "[8da70cc285f2d20a]", "[9197fc7879582ea0]", "0x20")
+ self.binary64_to_bid64("1", "[8da70cc285f2d20a]", "[9197fc7879582ea1]", "0x20")
+ self.binary64_to_bid64("2", "[8da70cc285f2d20a]", "[9197fc7879582ea0]", "0x20")
+ self.binary64_to_bid64("3", "[8da70cc285f2d20a]", "[9197fc7879582ea0]", "0x20")
+ self.binary64_to_bid64("4", "[8da70cc285f2d20a]", "[9197fc7879582ea0]", "0x20")
+ self.binary64_to_bid64("0", "[8f0fb973bbb59fb1]", "[926dd8c38b0a55a3]", "0x20")
+ self.binary64_to_bid64("1", "[8f0fb973bbb59fb1]", "[926dd8c38b0a55a3]", "0x20")
+ self.binary64_to_bid64("2", "[8f0fb973bbb59fb1]", "[926dd8c38b0a55a2]", "0x20")
+ self.binary64_to_bid64("3", "[8f0fb973bbb59fb1]", "[926dd8c38b0a55a2]", "0x20")
+ self.binary64_to_bid64("4", "[8f0fb973bbb59fb1]", "[926dd8c38b0a55a3]", "0x20")
+ self.binary64_to_bid64("0", "[902c63345295a1b8]", "[e4c07af9731db8b1]", "0x20")
+ self.binary64_to_bid64("1", "[902c63345295a1b8]", "[e4c07af9731db8b1]", "0x20")
+ self.binary64_to_bid64("2", "[902c63345295a1b8]", "[e4c07af9731db8b0]", "0x20")
+ self.binary64_to_bid64("3", "[902c63345295a1b8]", "[e4c07af9731db8b0]", "0x20")
+ self.binary64_to_bid64("4", "[902c63345295a1b8]", "[e4c07af9731db8b1]", "0x20")
+ self.binary64_to_bid64("0", "[914b96b51efaf100]", "[93c846624d0d9561]", "0x20")
+ self.binary64_to_bid64("1", "[914b96b51efaf100]", "[93c846624d0d9562]", "0x20")
+ self.binary64_to_bid64("2", "[914b96b51efaf100]", "[93c846624d0d9561]", "0x20")
+ self.binary64_to_bid64("3", "[914b96b51efaf100]", "[93c846624d0d9561]", "0x20")
+ self.binary64_to_bid64("4", "[914b96b51efaf100]", "[93c846624d0d9561]", "0x20")
+ self.binary64_to_bid64("0", "[92ee66816f5dff5a]", "[94c61e8236143836]", "0x20")
+ self.binary64_to_bid64("1", "[92ee66816f5dff5a]", "[94c61e8236143837]", "0x20")
+ self.binary64_to_bid64("2", "[92ee66816f5dff5a]", "[94c61e8236143836]", "0x20")
+ self.binary64_to_bid64("3", "[92ee66816f5dff5a]", "[94c61e8236143836]", "0x20")
+ self.binary64_to_bid64("4", "[92ee66816f5dff5a]", "[94c61e8236143836]", "0x20")
+ self.binary64_to_bid64("0", "[942a0e120a793674]", "[95857fcf100b40ff]", "0x20")
+ self.binary64_to_bid64("1", "[942a0e120a793674]", "[95857fcf100b4100]", "0x20")
+ self.binary64_to_bid64("2", "[942a0e120a793674]", "[95857fcf100b40ff]", "0x20")
+ self.binary64_to_bid64("3", "[942a0e120a793674]", "[95857fcf100b40ff]", "0x20")
+ self.binary64_to_bid64("4", "[942a0e120a793674]", "[95857fcf100b40ff]", "0x20")
+ self.binary64_to_bid64("0", "[9563ed46207b15b8]", "[964468fe971bcdae]", "0x20")
+ self.binary64_to_bid64("1", "[9563ed46207b15b8]", "[964468fe971bcdae]", "0x20")
+ self.binary64_to_bid64("2", "[9563ed46207b15b8]", "[964468fe971bcdad]", "0x20")
+ self.binary64_to_bid64("3", "[9563ed46207b15b8]", "[964468fe971bcdad]", "0x20")
+ self.binary64_to_bid64("4", "[9563ed46207b15b8]", "[964468fe971bcdae]", "0x20")
+ self.binary64_to_bid64("0", "[96861f7667f4f840]", "[96ecd5c130cc8149]", "0x20")
+ self.binary64_to_bid64("1", "[96861f7667f4f840]", "[96ecd5c130cc814a]", "0x20")
+ self.binary64_to_bid64("2", "[96861f7667f4f840]", "[96ecd5c130cc8149]", "0x20")
+ self.binary64_to_bid64("3", "[96861f7667f4f840]", "[96ecd5c130cc8149]", "0x20")
+ self.binary64_to_bid64("4", "[96861f7667f4f840]", "[96ecd5c130cc8149]", "0x20")
+ self.binary64_to_bid64("0", "[981a934960280451]", "[97e52c686ba0c774]", "0x20")
+ self.binary64_to_bid64("1", "[981a934960280451]", "[97e52c686ba0c774]", "0x20")
+ self.binary64_to_bid64("2", "[981a934960280451]", "[97e52c686ba0c773]", "0x20")
+ self.binary64_to_bid64("3", "[981a934960280451]", "[97e52c686ba0c773]", "0x20")
+ self.binary64_to_bid64("4", "[981a934960280451]", "[97e52c686ba0c774]", "0x20")
+ self.binary64_to_bid64("0", "[99438211f715c034]", "[9893e926cef3e25a]", "0x20")
+ self.binary64_to_bid64("1", "[99438211f715c034]", "[9893e926cef3e25a]", "0x20")
+ self.binary64_to_bid64("2", "[99438211f715c034]", "[9893e926cef3e259]", "0x20")
+ self.binary64_to_bid64("3", "[99438211f715c034]", "[9893e926cef3e259]", "0x20")
+ self.binary64_to_bid64("4", "[99438211f715c034]", "[9893e926cef3e25a]", "0x20")
+ self.binary64_to_bid64("0", "[9a8b00f1cf2d5ad8]", "[995ce65e11086197]", "0x20")
+ self.binary64_to_bid64("1", "[9a8b00f1cf2d5ad8]", "[995ce65e11086197]", "0x20")
+ self.binary64_to_bid64("2", "[9a8b00f1cf2d5ad8]", "[995ce65e11086196]", "0x20")
+ self.binary64_to_bid64("3", "[9a8b00f1cf2d5ad8]", "[995ce65e11086196]", "0x20")
+ self.binary64_to_bid64("4", "[9a8b00f1cf2d5ad8]", "[995ce65e11086197]", "0x20")
+ self.binary64_to_bid64("0", "[9bdc229563770bc0]", "[9a26508e9af37e5f]", "0x20")
+ self.binary64_to_bid64("1", "[9bdc229563770bc0]", "[9a26508e9af37e5f]", "0x20")
+ self.binary64_to_bid64("2", "[9bdc229563770bc0]", "[9a26508e9af37e5e]", "0x20")
+ self.binary64_to_bid64("3", "[9bdc229563770bc0]", "[9a26508e9af37e5e]", "0x20")
+ self.binary64_to_bid64("4", "[9bdc229563770bc0]", "[9a26508e9af37e5f]", "0x20")
+ self.binary64_to_bid64("0", "[9d4b644184f3b2c7]", "[9b05283b7f5e80a2]", "0x20")
+ self.binary64_to_bid64("1", "[9d4b644184f3b2c7]", "[9b05283b7f5e80a3]", "0x20")
+ self.binary64_to_bid64("2", "[9d4b644184f3b2c7]", "[9b05283b7f5e80a2]", "0x20")
+ self.binary64_to_bid64("3", "[9d4b644184f3b2c7]", "[9b05283b7f5e80a2]", "0x20")
+ self.binary64_to_bid64("4", "[9d4b644184f3b2c7]", "[9b05283b7f5e80a2]", "0x20")
+ self.binary64_to_bid64("0", "[9e8ca7079534ef8e]", "[9bc5a81611b9dc4e]", "0x20")
+ self.binary64_to_bid64("1", "[9e8ca7079534ef8e]", "[9bc5a81611b9dc4f]", "0x20")
+ self.binary64_to_bid64("2", "[9e8ca7079534ef8e]", "[9bc5a81611b9dc4e]", "0x20")
+ self.binary64_to_bid64("3", "[9e8ca7079534ef8e]", "[9bc5a81611b9dc4e]", "0x20")
+ self.binary64_to_bid64("4", "[9e8ca7079534ef8e]", "[9bc5a81611b9dc4e]", "0x20")
+ self.binary64_to_bid64("0", "[9fc91ad5d9a414bc]", "[9c85326c3349c5a8]", "0x20")
+ self.binary64_to_bid64("1", "[9fc91ad5d9a414bc]", "[9c85326c3349c5a9]", "0x20")
+ self.binary64_to_bid64("2", "[9fc91ad5d9a414bc]", "[9c85326c3349c5a8]", "0x20")
+ self.binary64_to_bid64("3", "[9fc91ad5d9a414bc]", "[9c85326c3349c5a8]", "0x20")
+ self.binary64_to_bid64("4", "[9fc91ad5d9a414bc]", "[9c85326c3349c5a8]", "0x20")
+ self.binary64_to_bid64("0", "[a10dd509d72bd198]", "[9d4679be59ac886a]", "0x20")
+ self.binary64_to_bid64("1", "[a10dd509d72bd198]", "[9d4679be59ac886b]", "0x20")
+ self.binary64_to_bid64("2", "[a10dd509d72bd198]", "[9d4679be59ac886a]", "0x20")
+ self.binary64_to_bid64("3", "[a10dd509d72bd198]", "[9d4679be59ac886a]", "0x20")
+ self.binary64_to_bid64("4", "[a10dd509d72bd198]", "[9d4679be59ac886a]", "0x20")
+ self.binary64_to_bid64("0", "[a27b523a9001ce77]", "[9e24f99161fd2bf4]", "0x20")
+ self.binary64_to_bid64("1", "[a27b523a9001ce77]", "[9e24f99161fd2bf5]", "0x20")
+ self.binary64_to_bid64("2", "[a27b523a9001ce77]", "[9e24f99161fd2bf4]", "0x20")
+ self.binary64_to_bid64("3", "[a27b523a9001ce77]", "[9e24f99161fd2bf4]", "0x20")
+ self.binary64_to_bid64("4", "[a27b523a9001ce77]", "[9e24f99161fd2bf4]", "0x20")
+ self.binary64_to_bid64("0", "[a3c5f2df5e675a0f]", "[9ee861a9896f4e88]", "0x20")
+ self.binary64_to_bid64("1", "[a3c5f2df5e675a0f]", "[9ee861a9896f4e88]", "0x20")
+ self.binary64_to_bid64("2", "[a3c5f2df5e675a0f]", "[9ee861a9896f4e87]", "0x20")
+ self.binary64_to_bid64("3", "[a3c5f2df5e675a0f]", "[9ee861a9896f4e87]", "0x20")
+ self.binary64_to_bid64("4", "[a3c5f2df5e675a0f]", "[9ee861a9896f4e88]", "0x20")
+ self.binary64_to_bid64("0", "[a4caf5745d1fb360]", "[9f86bf2922a4170d]", "0x20")
+ self.binary64_to_bid64("1", "[a4caf5745d1fb360]", "[9f86bf2922a4170e]", "0x20")
+ self.binary64_to_bid64("2", "[a4caf5745d1fb360]", "[9f86bf2922a4170d]", "0x20")
+ self.binary64_to_bid64("3", "[a4caf5745d1fb360]", "[9f86bf2922a4170d]", "0x20")
+ self.binary64_to_bid64("4", "[a4caf5745d1fb360]", "[9f86bf2922a4170d]", "0x20")
+ self.binary64_to_bid64("0", "[a62deb002db38db0]", "[a05f6768b6321b82]", "0x20")
+ self.binary64_to_bid64("1", "[a62deb002db38db0]", "[a05f6768b6321b82]", "0x20")
+ self.binary64_to_bid64("2", "[a62deb002db38db0]", "[a05f6768b6321b81]", "0x20")
+ self.binary64_to_bid64("3", "[a62deb002db38db0]", "[a05f6768b6321b81]", "0x20")
+ self.binary64_to_bid64("4", "[a62deb002db38db0]", "[a05f6768b6321b82]", "0x20")
+ self.binary64_to_bid64("0", "[a7af5e7906fa926d]", "[a14586350722e710]", "0x20")
+ self.binary64_to_bid64("1", "[a7af5e7906fa926d]", "[a14586350722e710]", "0x20")
+ self.binary64_to_bid64("2", "[a7af5e7906fa926d]", "[a14586350722e70f]", "0x20")
+ self.binary64_to_bid64("3", "[a7af5e7906fa926d]", "[a14586350722e70f]", "0x20")
+ self.binary64_to_bid64("4", "[a7af5e7906fa926d]", "[a14586350722e710]", "0x20")
+ self.binary64_to_bid64("0", "[a8f0b061654e4c1d]", "[a20629df3479424a]", "0x20")
+ self.binary64_to_bid64("1", "[a8f0b061654e4c1d]", "[a20629df3479424b]", "0x20")
+ self.binary64_to_bid64("2", "[a8f0b061654e4c1d]", "[a20629df3479424a]", "0x20")
+ self.binary64_to_bid64("3", "[a8f0b061654e4c1d]", "[a20629df3479424a]", "0x20")
+ self.binary64_to_bid64("4", "[a8f0b061654e4c1d]", "[a20629df3479424a]", "0x20")
+ self.binary64_to_bid64("0", "[aa320b4ce47f060a]", "[a2c6fcddd477ba5f]", "0x20")
+ self.binary64_to_bid64("1", "[aa320b4ce47f060a]", "[a2c6fcddd477ba60]", "0x20")
+ self.binary64_to_bid64("2", "[aa320b4ce47f060a]", "[a2c6fcddd477ba5f]", "0x20")
+ self.binary64_to_bid64("3", "[aa320b4ce47f060a]", "[a2c6fcddd477ba5f]", "0x20")
+ self.binary64_to_bid64("4", "[aa320b4ce47f060a]", "[a2c6fcddd477ba5f]", "0x20")
+ self.binary64_to_bid64("0", "[ab614b289f08fcc8]", "[e8db1cb26d5548b2]", "0x20")
+ self.binary64_to_bid64("1", "[ab614b289f08fcc8]", "[e8db1cb26d5548b2]", "0x20")
+ self.binary64_to_bid64("2", "[ab614b289f08fcc8]", "[e8db1cb26d5548b1]", "0x20")
+ self.binary64_to_bid64("3", "[ab614b289f08fcc8]", "[e8db1cb26d5548b1]", "0x20")
+ self.binary64_to_bid64("4", "[ab614b289f08fcc8]", "[e8db1cb26d5548b2]", "0x20")
+ self.binary64_to_bid64("0", "[acde02a667d186b3]", "[a4651c7f21d9ef1a]", "0x20")
+ self.binary64_to_bid64("1", "[acde02a667d186b3]", "[a4651c7f21d9ef1a]", "0x20")
+ self.binary64_to_bid64("2", "[acde02a667d186b3]", "[a4651c7f21d9ef19]", "0x20")
+ self.binary64_to_bid64("3", "[acde02a667d186b3]", "[a4651c7f21d9ef19]", "0x20")
+ self.binary64_to_bid64("4", "[acde02a667d186b3]", "[a4651c7f21d9ef1a]", "0x20")
+ self.binary64_to_bid64("0", "[ae1c24d9ffded66a]", "[a52506ba2df99497]", "0x20")
+ self.binary64_to_bid64("1", "[ae1c24d9ffded66a]", "[a52506ba2df99497]", "0x20")
+ self.binary64_to_bid64("2", "[ae1c24d9ffded66a]", "[a52506ba2df99496]", "0x20")
+ self.binary64_to_bid64("3", "[ae1c24d9ffded66a]", "[a52506ba2df99496]", "0x20")
+ self.binary64_to_bid64("4", "[ae1c24d9ffded66a]", "[a52506ba2df99497]", "0x20")
+ self.binary64_to_bid64("0", "[af52280cf53299f4]", "[e972004478af99a8]", "0x20")
+ self.binary64_to_bid64("1", "[af52280cf53299f4]", "[e972004478af99a8]", "0x20")
+ self.binary64_to_bid64("2", "[af52280cf53299f4]", "[e972004478af99a7]", "0x20")
+ self.binary64_to_bid64("3", "[af52280cf53299f4]", "[e972004478af99a7]", "0x20")
+ self.binary64_to_bid64("4", "[af52280cf53299f4]", "[e972004478af99a8]", "0x20")
+ self.binary64_to_bid64("0", "[b08baad9932ae060]", "[a69b2a130e176b6f]", "0x20")
+ self.binary64_to_bid64("1", "[b08baad9932ae060]", "[a69b2a130e176b6f]", "0x20")
+ self.binary64_to_bid64("2", "[b08baad9932ae060]", "[a69b2a130e176b6e]", "0x20")
+ self.binary64_to_bid64("3", "[b08baad9932ae060]", "[a69b2a130e176b6e]", "0x20")
+ self.binary64_to_bid64("4", "[b08baad9932ae060]", "[a69b2a130e176b6f]", "0x20")
+ self.binary64_to_bid64("0", "[b1e0436f6f632d9c]", "[a766b2859701892c]", "0x20")
+ self.binary64_to_bid64("1", "[b1e0436f6f632d9c]", "[a766b2859701892c]", "0x20")
+ self.binary64_to_bid64("2", "[b1e0436f6f632d9c]", "[a766b2859701892b]", "0x20")
+ self.binary64_to_bid64("3", "[b1e0436f6f632d9c]", "[a766b2859701892b]", "0x20")
+ self.binary64_to_bid64("4", "[b1e0436f6f632d9c]", "[a766b2859701892c]", "0x20")
+ self.binary64_to_bid64("0", "[b35ea28424e9efeb]", "[a84a952bf26db016]", "0x20")
+ self.binary64_to_bid64("1", "[b35ea28424e9efeb]", "[a84a952bf26db017]", "0x20")
+ self.binary64_to_bid64("2", "[b35ea28424e9efeb]", "[a84a952bf26db016]", "0x20")
+ self.binary64_to_bid64("3", "[b35ea28424e9efeb]", "[a84a952bf26db016]", "0x20")
+ self.binary64_to_bid64("4", "[b35ea28424e9efeb]", "[a84a952bf26db016]", "0x20")
+ self.binary64_to_bid64("0", "[b491fca0640570a2]", "[a90683ebb9cf07ba]", "0x20")
+ self.binary64_to_bid64("1", "[b491fca0640570a2]", "[a90683ebb9cf07ba]", "0x20")
+ self.binary64_to_bid64("2", "[b491fca0640570a2]", "[a90683ebb9cf07b9]", "0x20")
+ self.binary64_to_bid64("3", "[b491fca0640570a2]", "[a90683ebb9cf07b9]", "0x20")
+ self.binary64_to_bid64("4", "[b491fca0640570a2]", "[a90683ebb9cf07ba]", "0x20")
+ self.binary64_to_bid64("0", "[b5c31da02fcd9858]", "[a9c3a15ae75b4a13]", "0x20")
+ self.binary64_to_bid64("1", "[b5c31da02fcd9858]", "[a9c3a15ae75b4a14]", "0x20")
+ self.binary64_to_bid64("2", "[b5c31da02fcd9858]", "[a9c3a15ae75b4a13]", "0x20")
+ self.binary64_to_bid64("3", "[b5c31da02fcd9858]", "[a9c3a15ae75b4a13]", "0x20")
+ self.binary64_to_bid64("4", "[b5c31da02fcd9858]", "[a9c3a15ae75b4a13]", "0x20")
+ self.binary64_to_bid64("0", "[b7327e8d55a6ef62]", "[aa9d76939e52446c]", "0x20")
+ self.binary64_to_bid64("1", "[b7327e8d55a6ef62]", "[aa9d76939e52446d]", "0x20")
+ self.binary64_to_bid64("2", "[b7327e8d55a6ef62]", "[aa9d76939e52446c]", "0x20")
+ self.binary64_to_bid64("3", "[b7327e8d55a6ef62]", "[aa9d76939e52446c]", "0x20")
+ self.binary64_to_bid64("4", "[b7327e8d55a6ef62]", "[aa9d76939e52446c]", "0x20")
+ self.binary64_to_bid64("0", "[b8776ca8be2021d6]", "[ab63e9ba8b16fd6e]", "0x20")
+ self.binary64_to_bid64("1", "[b8776ca8be2021d6]", "[ab63e9ba8b16fd6f]", "0x20")
+ self.binary64_to_bid64("2", "[b8776ca8be2021d6]", "[ab63e9ba8b16fd6e]", "0x20")
+ self.binary64_to_bid64("3", "[b8776ca8be2021d6]", "[ab63e9ba8b16fd6e]", "0x20")
+ self.binary64_to_bid64("4", "[b8776ca8be2021d6]", "[ab63e9ba8b16fd6e]", "0x20")
+ self.binary64_to_bid64("0", "[b9b8facae986dcd4]", "[ac2460206b33e05f]", "0x20")
+ self.binary64_to_bid64("1", "[b9b8facae986dcd4]", "[ac2460206b33e060]", "0x20")
+ self.binary64_to_bid64("2", "[b9b8facae986dcd4]", "[ac2460206b33e05f]", "0x20")
+ self.binary64_to_bid64("3", "[b9b8facae986dcd4]", "[ac2460206b33e05f]", "0x20")
+ self.binary64_to_bid64("4", "[b9b8facae986dcd4]", "[ac2460206b33e05f]", "0x20")
+ self.binary64_to_bid64("0", "[bb01c81724ffbac8]", "[ace6882c8656252c]", "0x20")
+ self.binary64_to_bid64("1", "[bb01c81724ffbac8]", "[ace6882c8656252c]", "0x20")
+ self.binary64_to_bid64("2", "[bb01c81724ffbac8]", "[ace6882c8656252b]", "0x20")
+ self.binary64_to_bid64("3", "[bb01c81724ffbac8]", "[ace6882c8656252b]", "0x20")
+ self.binary64_to_bid64("4", "[bb01c81724ffbac8]", "[ace6882c8656252c]", "0x20")
+ self.binary64_to_bid64("0", "[bc61072c5f7db431]", "[adba3c5eb5db657c]", "0x20")
+ self.binary64_to_bid64("1", "[bc61072c5f7db431]", "[adba3c5eb5db657c]", "0x20")
+ self.binary64_to_bid64("2", "[bc61072c5f7db431]", "[adba3c5eb5db657b]", "0x20")
+ self.binary64_to_bid64("3", "[bc61072c5f7db431]", "[adba3c5eb5db657b]", "0x20")
+ self.binary64_to_bid64("4", "[bc61072c5f7db431]", "[adba3c5eb5db657c]", "0x20")
+ self.binary64_to_bid64("0", "[bdbc786b905fc30f]", "[ae893303fc78d94f]", "0x20")
+ self.binary64_to_bid64("1", "[bdbc786b905fc30f]", "[ae893303fc78d950]", "0x20")
+ self.binary64_to_bid64("2", "[bdbc786b905fc30f]", "[ae893303fc78d94f]", "0x20")
+ self.binary64_to_bid64("3", "[bdbc786b905fc30f]", "[ae893303fc78d94f]", "0x20")
+ self.binary64_to_bid64("4", "[bdbc786b905fc30f]", "[ae893303fc78d94f]", "0x20")
+ self.binary64_to_bid64("0", "[bef4be88eda6e546]", "[af47074779dabc54]", "0x20")
+ self.binary64_to_bid64("1", "[bef4be88eda6e546]", "[af47074779dabc54]", "0x20")
+ self.binary64_to_bid64("2", "[bef4be88eda6e546]", "[af47074779dabc53]", "0x20")
+ self.binary64_to_bid64("3", "[bef4be88eda6e546]", "[af47074779dabc53]", "0x20")
+ self.binary64_to_bid64("4", "[bef4be88eda6e546]", "[af47074779dabc54]", "0x20")
+ self.binary64_to_bid64("0", "[bfaa000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("1", "[bfaa000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("2", "[bfaa000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("3", "[bfaa000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("4", "[bfaa000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary64_to_bid64("0", "[bff0000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary64_to_bid64("1", "[bff0000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary64_to_bid64("2", "[bff0000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary64_to_bid64("3", "[bff0000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary64_to_bid64("4", "[bff0000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary64_to_bid64("0", "[bff8000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary64_to_bid64("1", "[bff8000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary64_to_bid64("2", "[bff8000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary64_to_bid64("3", "[bff8000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary64_to_bid64("4", "[bff8000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary64_to_bid64("0", "[c033fffe3eff7aec]", "[b0071afcaa0880d2]", "0x20")
+ self.binary64_to_bid64("1", "[c033fffe3eff7aec]", "[b0071afcaa0880d3]", "0x20")
+ self.binary64_to_bid64("2", "[c033fffe3eff7aec]", "[b0071afcaa0880d2]", "0x20")
+ self.binary64_to_bid64("3", "[c033fffe3eff7aec]", "[b0071afcaa0880d2]", "0x20")
+ self.binary64_to_bid64("4", "[c033fffe3eff7aec]", "[b0071afcaa0880d2]", "0x20")
+ self.binary64_to_bid64("0", "[c050000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary64_to_bid64("1", "[c050000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary64_to_bid64("2", "[c050000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary64_to_bid64("3", "[c050000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary64_to_bid64("4", "[c050000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary64_to_bid64("0", "[c08f380000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary64_to_bid64("1", "[c08f380000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary64_to_bid64("2", "[c08f380000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary64_to_bid64("3", "[c08f380000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary64_to_bid64("4", "[c08f380000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary64_to_bid64("0", "[c08f400000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary64_to_bid64("1", "[c08f400000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary64_to_bid64("2", "[c08f400000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary64_to_bid64("3", "[c08f400000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary64_to_bid64("4", "[c08f400000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary64_to_bid64("0", "[c19ffffffffd9ec7]", "[b0e4c4b3ffffa538]", "0x20")
+ self.binary64_to_bid64("1", "[c19ffffffffd9ec7]", "[b0e4c4b3ffffa538]", "0x20")
+ self.binary64_to_bid64("2", "[c19ffffffffd9ec7]", "[b0e4c4b3ffffa537]", "0x20")
+ self.binary64_to_bid64("3", "[c19ffffffffd9ec7]", "[b0e4c4b3ffffa537]", "0x20")
+ self.binary64_to_bid64("4", "[c19ffffffffd9ec7]", "[b0e4c4b3ffffa538]", "0x20")
+ self.binary64_to_bid64("0", "[c2effffffffffff3]", "[b1a9fffffffffffc]", "0x20")
+ self.binary64_to_bid64("1", "[c2effffffffffff3]", "[b1a9fffffffffffc]", "0x20")
+ self.binary64_to_bid64("2", "[c2effffffffffff3]", "[b1a9fffffffffffb]", "0x20")
+ self.binary64_to_bid64("3", "[c2effffffffffff3]", "[b1a9fffffffffffb]", "0x20")
+ self.binary64_to_bid64("4", "[c2effffffffffff3]", "[b1a9fffffffffffc]", "0x20")
+ self.binary64_to_bid64("0", "[c425af1d78b58bd0]", "[b2671afd498cffdb]", "0x20")
+ self.binary64_to_bid64("1", "[c425af1d78b58bd0]", "[b2671afd498cffdc]", "0x20")
+ self.binary64_to_bid64("2", "[c425af1d78b58bd0]", "[b2671afd498cffdb]", "0x20")
+ self.binary64_to_bid64("3", "[c425af1d78b58bd0]", "[b2671afd498cffdb]", "0x20")
+ self.binary64_to_bid64("4", "[c425af1d78b58bd0]", "[b2671afd498cffdb]", "0x20")
+ self.binary64_to_bid64("0", "[c564adf4b6fffd50]", "[b3271afd497bcfee]", "0x20")
+ self.binary64_to_bid64("1", "[c564adf4b6fffd50]", "[b3271afd497bcfee]", "0x20")
+ self.binary64_to_bid64("2", "[c564adf4b6fffd50]", "[b3271afd497bcfed]", "0x20")
+ self.binary64_to_bid64("3", "[c564adf4b6fffd50]", "[b3271afd497bcfed]", "0x20")
+ self.binary64_to_bid64("4", "[c564adf4b6fffd50]", "[b3271afd497bcfee]", "0x20")
+ self.binary64_to_bid64("0", "[c6cfeefddf633d56]", "[b4049a23f5820cd2]", "0x20")
+ self.binary64_to_bid64("1", "[c6cfeefddf633d56]", "[b4049a23f5820cd2]", "0x20")
+ self.binary64_to_bid64("2", "[c6cfeefddf633d56]", "[b4049a23f5820cd1]", "0x20")
+ self.binary64_to_bid64("3", "[c6cfeefddf633d56]", "[b4049a23f5820cd1]", "0x20")
+ self.binary64_to_bid64("4", "[c6cfeefddf633d56]", "[b4049a23f5820cd2]", "0x20")
+ self.binary64_to_bid64("0", "[c7d8326f87d4cae0]", "[b4a4921887525f5e]", "0x20")
+ self.binary64_to_bid64("1", "[c7d8326f87d4cae0]", "[b4a4921887525f5e]", "0x20")
+ self.binary64_to_bid64("2", "[c7d8326f87d4cae0]", "[b4a4921887525f5d]", "0x20")
+ self.binary64_to_bid64("3", "[c7d8326f87d4cae0]", "[b4a4921887525f5d]", "0x20")
+ self.binary64_to_bid64("4", "[c7d8326f87d4cae0]", "[b4a4921887525f5e]", "0x20")
+ self.binary64_to_bid64("0", "[c955777904e0e40a]", "[b586cd95b72ed23f]", "0x20")
+ self.binary64_to_bid64("1", "[c955777904e0e40a]", "[b586cd95b72ed23f]", "0x20")
+ self.binary64_to_bid64("2", "[c955777904e0e40a]", "[b586cd95b72ed23e]", "0x20")
+ self.binary64_to_bid64("3", "[c955777904e0e40a]", "[b586cd95b72ed23e]", "0x20")
+ self.binary64_to_bid64("4", "[c955777904e0e40a]", "[b586cd95b72ed23f]", "0x20")
+ self.binary64_to_bid64("0", "[ca90eb7c381805d8]", "[b6459f6202fc824e]", "0x20")
+ self.binary64_to_bid64("1", "[ca90eb7c381805d8]", "[b6459f6202fc824f]", "0x20")
+ self.binary64_to_bid64("2", "[ca90eb7c381805d8]", "[b6459f6202fc824e]", "0x20")
+ self.binary64_to_bid64("3", "[ca90eb7c381805d8]", "[b6459f6202fc824e]", "0x20")
+ self.binary64_to_bid64("4", "[ca90eb7c381805d8]", "[b6459f6202fc824e]", "0x20")
+ self.binary64_to_bid64("0", "[cbfa715a314cb599]", "[b723af828fd2b094]", "0x20")
+ self.binary64_to_bid64("1", "[cbfa715a314cb599]", "[b723af828fd2b095]", "0x20")
+ self.binary64_to_bid64("2", "[cbfa715a314cb599]", "[b723af828fd2b094]", "0x20")
+ self.binary64_to_bid64("3", "[cbfa715a314cb599]", "[b723af828fd2b094]", "0x20")
+ self.binary64_to_bid64("4", "[cbfa715a314cb599]", "[b723af828fd2b094]", "0x20")
+ self.binary64_to_bid64("0", "[cd31e05cb2a12026]", "[b7da205c570a96bc]", "0x20")
+ self.binary64_to_bid64("1", "[cd31e05cb2a12026]", "[b7da205c570a96bd]", "0x20")
+ self.binary64_to_bid64("2", "[cd31e05cb2a12026]", "[b7da205c570a96bc]", "0x20")
+ self.binary64_to_bid64("3", "[cd31e05cb2a12026]", "[b7da205c570a96bc]", "0x20")
+ self.binary64_to_bid64("4", "[cd31e05cb2a12026]", "[b7da205c570a96bc]", "0x20")
+ self.binary64_to_bid64("0", "[ce7ea4f836d5f504]", "[b8a4b23cf387f282]", "0x20")
+ self.binary64_to_bid64("1", "[ce7ea4f836d5f504]", "[b8a4b23cf387f283]", "0x20")
+ self.binary64_to_bid64("2", "[ce7ea4f836d5f504]", "[b8a4b23cf387f282]", "0x20")
+ self.binary64_to_bid64("3", "[ce7ea4f836d5f504]", "[b8a4b23cf387f282]", "0x20")
+ self.binary64_to_bid64("4", "[ce7ea4f836d5f504]", "[b8a4b23cf387f282]", "0x20")
+ self.binary64_to_bid64("0", "[cfb357b77700bf28]", "[b95f151a151d660e]", "0x20")
+ self.binary64_to_bid64("1", "[cfb357b77700bf28]", "[b95f151a151d660e]", "0x20")
+ self.binary64_to_bid64("2", "[cfb357b77700bf28]", "[b95f151a151d660d]", "0x20")
+ self.binary64_to_bid64("3", "[cfb357b77700bf28]", "[b95f151a151d660d]", "0x20")
+ self.binary64_to_bid64("4", "[cfb357b77700bf28]", "[b95f151a151d660e]", "0x20")
+ self.binary64_to_bid64("0", "[d0f4177a9915fbf8]", "[ee81dabeab265870]", "0x20")
+ self.binary64_to_bid64("1", "[d0f4177a9915fbf8]", "[ee81dabeab265870]", "0x20")
+ self.binary64_to_bid64("2", "[d0f4177a9915fbf8]", "[ee81dabeab26586f]", "0x20")
+ self.binary64_to_bid64("3", "[d0f4177a9915fbf8]", "[ee81dabeab26586f]", "0x20")
+ self.binary64_to_bid64("4", "[d0f4177a9915fbf8]", "[ee81dabeab265870]", "0x20")
+ self.binary64_to_bid64("0", "[d27f50a908fb7e03]", "[bb08da46270d0916]", "0x20")
+ self.binary64_to_bid64("1", "[d27f50a908fb7e03]", "[bb08da46270d0916]", "0x20")
+ self.binary64_to_bid64("2", "[d27f50a908fb7e03]", "[bb08da46270d0915]", "0x20")
+ self.binary64_to_bid64("3", "[d27f50a908fb7e03]", "[bb08da46270d0915]", "0x20")
+ self.binary64_to_bid64("4", "[d27f50a908fb7e03]", "[bb08da46270d0916]", "0x20")
+ self.binary64_to_bid64("0", "[d36e685925e4d980]", "[bb9c2aed74caca4e]", "0x20")
+ self.binary64_to_bid64("1", "[d36e685925e4d980]", "[bb9c2aed74caca4f]", "0x20")
+ self.binary64_to_bid64("2", "[d36e685925e4d980]", "[bb9c2aed74caca4e]", "0x20")
+ self.binary64_to_bid64("3", "[d36e685925e4d980]", "[bb9c2aed74caca4e]", "0x20")
+ self.binary64_to_bid64("4", "[d36e685925e4d980]", "[bb9c2aed74caca4e]", "0x20")
+ self.binary64_to_bid64("0", "[d4d68ad443b5f380]", "[bc718452f93667d3]", "0x20")
+ self.binary64_to_bid64("1", "[d4d68ad443b5f380]", "[bc718452f93667d3]", "0x20")
+ self.binary64_to_bid64("2", "[d4d68ad443b5f380]", "[bc718452f93667d2]", "0x20")
+ self.binary64_to_bid64("3", "[d4d68ad443b5f380]", "[bc718452f93667d2]", "0x20")
+ self.binary64_to_bid64("4", "[d4d68ad443b5f380]", "[bc718452f93667d3]", "0x20")
+ self.binary64_to_bid64("0", "[d641f324d11d4862]", "[bd4bb359f8604e90]", "0x20")
+ self.binary64_to_bid64("1", "[d641f324d11d4862]", "[bd4bb359f8604e91]", "0x20")
+ self.binary64_to_bid64("2", "[d641f324d11d4862]", "[bd4bb359f8604e90]", "0x20")
+ self.binary64_to_bid64("3", "[d641f324d11d4862]", "[bd4bb359f8604e90]", "0x20")
+ self.binary64_to_bid64("4", "[d641f324d11d4862]", "[bd4bb359f8604e90]", "0x20")
+ self.binary64_to_bid64("0", "[d7a0f44cbd42cb38]", "[be24a2aa5c9659ef]", "0x20")
+ self.binary64_to_bid64("1", "[d7a0f44cbd42cb38]", "[be24a2aa5c9659ef]", "0x20")
+ self.binary64_to_bid64("2", "[d7a0f44cbd42cb38]", "[be24a2aa5c9659ee]", "0x20")
+ self.binary64_to_bid64("3", "[d7a0f44cbd42cb38]", "[be24a2aa5c9659ee]", "0x20")
+ self.binary64_to_bid64("4", "[d7a0f44cbd42cb38]", "[be24a2aa5c9659ef]", "0x20")
+ self.binary64_to_bid64("0", "[d8e7d01d4691ddbe]", "[bee6d3adc1465f7a]", "0x20")
+ self.binary64_to_bid64("1", "[d8e7d01d4691ddbe]", "[bee6d3adc1465f7a]", "0x20")
+ self.binary64_to_bid64("2", "[d8e7d01d4691ddbe]", "[bee6d3adc1465f79]", "0x20")
+ self.binary64_to_bid64("3", "[d8e7d01d4691ddbe]", "[bee6d3adc1465f79]", "0x20")
+ self.binary64_to_bid64("4", "[d8e7d01d4691ddbe]", "[bee6d3adc1465f7a]", "0x20")
+ self.binary64_to_bid64("0", "[da1c6b821b021228]", "[bfa4458ecd097959]", "0x20")
+ self.binary64_to_bid64("1", "[da1c6b821b021228]", "[bfa4458ecd097959]", "0x20")
+ self.binary64_to_bid64("2", "[da1c6b821b021228]", "[bfa4458ecd097958]", "0x20")
+ self.binary64_to_bid64("3", "[da1c6b821b021228]", "[bfa4458ecd097958]", "0x20")
+ self.binary64_to_bid64("4", "[da1c6b821b021228]", "[bfa4458ecd097959]", "0x20")
+ self.binary64_to_bid64("0", "[db507ce30dc1d288]", "[c059fc74de475c98]", "0x20")
+ self.binary64_to_bid64("1", "[db507ce30dc1d288]", "[c059fc74de475c98]", "0x20")
+ self.binary64_to_bid64("2", "[db507ce30dc1d288]", "[c059fc74de475c97]", "0x20")
+ self.binary64_to_bid64("3", "[db507ce30dc1d288]", "[c059fc74de475c97]", "0x20")
+ self.binary64_to_bid64("4", "[db507ce30dc1d288]", "[c059fc74de475c98]", "0x20")
+ self.binary64_to_bid64("0", "[dcca760b389de2d6]", "[f04afc0b51cb8ad8]", "0x20")
+ self.binary64_to_bid64("1", "[dcca760b389de2d6]", "[f04afc0b51cb8ad8]", "0x20")
+ self.binary64_to_bid64("2", "[dcca760b389de2d6]", "[f04afc0b51cb8ad7]", "0x20")
+ self.binary64_to_bid64("3", "[dcca760b389de2d6]", "[f04afc0b51cb8ad7]", "0x20")
+ self.binary64_to_bid64("4", "[dcca760b389de2d6]", "[f04afc0b51cb8ad8]", "0x20")
+ self.binary64_to_bid64("0", "[de12cd210cf8852e]", "[c20536858f72d72f]", "0x20")
+ self.binary64_to_bid64("1", "[de12cd210cf8852e]", "[c20536858f72d730]", "0x20")
+ self.binary64_to_bid64("2", "[de12cd210cf8852e]", "[c20536858f72d72f]", "0x20")
+ self.binary64_to_bid64("3", "[de12cd210cf8852e]", "[c20536858f72d72f]", "0x20")
+ self.binary64_to_bid64("4", "[de12cd210cf8852e]", "[c20536858f72d72f]", "0x20")
+ self.binary64_to_bid64("0", "[df43fdea17697030]", "[c2bd0fcbf97f8d11]", "0x20")
+ self.binary64_to_bid64("1", "[df43fdea17697030]", "[c2bd0fcbf97f8d11]", "0x20")
+ self.binary64_to_bid64("2", "[df43fdea17697030]", "[c2bd0fcbf97f8d10]", "0x20")
+ self.binary64_to_bid64("3", "[df43fdea17697030]", "[c2bd0fcbf97f8d10]", "0x20")
+ self.binary64_to_bid64("4", "[df43fdea17697030]", "[c2bd0fcbf97f8d11]", "0x20")
+ self.binary64_to_bid64("0", "[e0b28a61cf9483b7]", "[c3969be522c20498]", "0x20")
+ self.binary64_to_bid64("1", "[e0b28a61cf9483b7]", "[c3969be522c20499]", "0x20")
+ self.binary64_to_bid64("2", "[e0b28a61cf9483b7]", "[c3969be522c20498]", "0x20")
+ self.binary64_to_bid64("3", "[e0b28a61cf9483b7]", "[c3969be522c20498]", "0x20")
+ self.binary64_to_bid64("4", "[e0b28a61cf9483b7]", "[c3969be522c20498]", "0x20")
+ self.binary64_to_bid64("0", "[e1e5874bb0e0b994]", "[c44dc38f2c7e06b2]", "0x20")
+ self.binary64_to_bid64("1", "[e1e5874bb0e0b994]", "[c44dc38f2c7e06b2]", "0x20")
+ self.binary64_to_bid64("2", "[e1e5874bb0e0b994]", "[c44dc38f2c7e06b1]", "0x20")
+ self.binary64_to_bid64("3", "[e1e5874bb0e0b994]", "[c44dc38f2c7e06b1]", "0x20")
+ self.binary64_to_bid64("4", "[e1e5874bb0e0b994]", "[c44dc38f2c7e06b2]", "0x20")
+ self.binary64_to_bid64("0", "[e322cff28faccf50]", "[c50c9c90a109ee71]", "0x20")
+ self.binary64_to_bid64("1", "[e322cff28faccf50]", "[c50c9c90a109ee72]", "0x20")
+ self.binary64_to_bid64("2", "[e322cff28faccf50]", "[c50c9c90a109ee71]", "0x20")
+ self.binary64_to_bid64("3", "[e322cff28faccf50]", "[c50c9c90a109ee71]", "0x20")
+ self.binary64_to_bid64("4", "[e322cff28faccf50]", "[c50c9c90a109ee71]", "0x20")
+ self.binary64_to_bid64("0", "[e4848f205de07f60]", "[c5e5c7e5a23d6e99]", "0x20")
+ self.binary64_to_bid64("1", "[e4848f205de07f60]", "[c5e5c7e5a23d6e99]", "0x20")
+ self.binary64_to_bid64("2", "[e4848f205de07f60]", "[c5e5c7e5a23d6e98]", "0x20")
+ self.binary64_to_bid64("3", "[e4848f205de07f60]", "[c5e5c7e5a23d6e98]", "0x20")
+ self.binary64_to_bid64("4", "[e4848f205de07f60]", "[c5e5c7e5a23d6e99]", "0x20")
+ self.binary64_to_bid64("0", "[e5e62fba9df27fcd]", "[c6ba2a76b2b3cf28]", "0x20")
+ self.binary64_to_bid64("1", "[e5e62fba9df27fcd]", "[c6ba2a76b2b3cf29]", "0x20")
+ self.binary64_to_bid64("2", "[e5e62fba9df27fcd]", "[c6ba2a76b2b3cf28]", "0x20")
+ self.binary64_to_bid64("3", "[e5e62fba9df27fcd]", "[c6ba2a76b2b3cf28]", "0x20")
+ self.binary64_to_bid64("4", "[e5e62fba9df27fcd]", "[c6ba2a76b2b3cf28]", "0x20")
+ self.binary64_to_bid64("0", "[e73ac4b2b1ed5c58]", "[c7869ee16c01c21b]", "0x20")
+ self.binary64_to_bid64("1", "[e73ac4b2b1ed5c58]", "[c7869ee16c01c21c]", "0x20")
+ self.binary64_to_bid64("2", "[e73ac4b2b1ed5c58]", "[c7869ee16c01c21b]", "0x20")
+ self.binary64_to_bid64("3", "[e73ac4b2b1ed5c58]", "[c7869ee16c01c21b]", "0x20")
+ self.binary64_to_bid64("4", "[e73ac4b2b1ed5c58]", "[c7869ee16c01c21b]", "0x20")
+ self.binary64_to_bid64("0", "[e877dcb29c9307ba]", "[c84630422df378d0]", "0x20")
+ self.binary64_to_bid64("1", "[e877dcb29c9307ba]", "[c84630422df378d0]", "0x20")
+ self.binary64_to_bid64("2", "[e877dcb29c9307ba]", "[c84630422df378cf]", "0x20")
+ self.binary64_to_bid64("3", "[e877dcb29c9307ba]", "[c84630422df378cf]", "0x20")
+ self.binary64_to_bid64("4", "[e877dcb29c9307ba]", "[c84630422df378d0]", "0x20")
+ self.binary64_to_bid64("0", "[e9a102b47e4af988]", "[c8f721267424c960]", "0x20")
+ self.binary64_to_bid64("1", "[e9a102b47e4af988]", "[c8f721267424c961]", "0x20")
+ self.binary64_to_bid64("2", "[e9a102b47e4af988]", "[c8f721267424c960]", "0x20")
+ self.binary64_to_bid64("3", "[e9a102b47e4af988]", "[c8f721267424c960]", "0x20")
+ self.binary64_to_bid64("4", "[e9a102b47e4af988]", "[c8f721267424c960]", "0x20")
+ self.binary64_to_bid64("0", "[eb0a500d3286441a]", "[c9cf019ab9fdfd40]", "0x20")
+ self.binary64_to_bid64("1", "[eb0a500d3286441a]", "[c9cf019ab9fdfd41]", "0x20")
+ self.binary64_to_bid64("2", "[eb0a500d3286441a]", "[c9cf019ab9fdfd40]", "0x20")
+ self.binary64_to_bid64("3", "[eb0a500d3286441a]", "[c9cf019ab9fdfd40]", "0x20")
+ self.binary64_to_bid64("4", "[eb0a500d3286441a]", "[c9cf019ab9fdfd40]", "0x20")
+ self.binary64_to_bid64("0", "[ec690ffef7fb037e]", "[caa5feba31df99d7]", "0x20")
+ self.binary64_to_bid64("1", "[ec690ffef7fb037e]", "[caa5feba31df99d8]", "0x20")
+ self.binary64_to_bid64("2", "[ec690ffef7fb037e]", "[caa5feba31df99d7]", "0x20")
+ self.binary64_to_bid64("3", "[ec690ffef7fb037e]", "[caa5feba31df99d7]", "0x20")
+ self.binary64_to_bid64("4", "[ec690ffef7fb037e]", "[caa5feba31df99d7]", "0x20")
+ self.binary64_to_bid64("0", "[ed9b3e2a769f7664]", "[f2d22a6663060ae2]", "0x20")
+ self.binary64_to_bid64("1", "[ed9b3e2a769f7664]", "[f2d22a6663060ae2]", "0x20")
+ self.binary64_to_bid64("2", "[ed9b3e2a769f7664]", "[f2d22a6663060ae1]", "0x20")
+ self.binary64_to_bid64("3", "[ed9b3e2a769f7664]", "[f2d22a6663060ae1]", "0x20")
+ self.binary64_to_bid64("4", "[ed9b3e2a769f7664]", "[f2d22a6663060ae2]", "0x20")
+ self.binary64_to_bid64("0", "[eedf6f90ff68ddb8]", "[cc2422484654905d]", "0x20")
+ self.binary64_to_bid64("1", "[eedf6f90ff68ddb8]", "[cc2422484654905d]", "0x20")
+ self.binary64_to_bid64("2", "[eedf6f90ff68ddb8]", "[cc2422484654905c]", "0x20")
+ self.binary64_to_bid64("3", "[eedf6f90ff68ddb8]", "[cc2422484654905c]", "0x20")
+ self.binary64_to_bid64("4", "[eedf6f90ff68ddb8]", "[cc2422484654905d]", "0x20")
+ self.binary64_to_bid64("0", "[f023e3a32c6f9728]", "[cce57c2f60850e03]", "0x20")
+ self.binary64_to_bid64("1", "[f023e3a32c6f9728]", "[cce57c2f60850e03]", "0x20")
+ self.binary64_to_bid64("2", "[f023e3a32c6f9728]", "[cce57c2f60850e02]", "0x20")
+ self.binary64_to_bid64("3", "[f023e3a32c6f9728]", "[cce57c2f60850e02]", "0x20")
+ self.binary64_to_bid64("4", "[f023e3a32c6f9728]", "[cce57c2f60850e03]", "0x20")
+ self.binary64_to_bid64("0", "[f19ec7751a93d687]", "[cdc71edbecda5372]", "0x20")
+ self.binary64_to_bid64("1", "[f19ec7751a93d687]", "[cdc71edbecda5372]", "0x20")
+ self.binary64_to_bid64("2", "[f19ec7751a93d687]", "[cdc71edbecda5371]", "0x20")
+ self.binary64_to_bid64("3", "[f19ec7751a93d687]", "[cdc71edbecda5371]", "0x20")
+ self.binary64_to_bid64("4", "[f19ec7751a93d687]", "[cdc71edbecda5372]", "0x20")
+ self.binary64_to_bid64("0", "[f2c0a4a4fb745824]", "[ce742fc185bb4cf6]", "0x20")
+ self.binary64_to_bid64("1", "[f2c0a4a4fb745824]", "[ce742fc185bb4cf7]", "0x20")
+ self.binary64_to_bid64("2", "[f2c0a4a4fb745824]", "[ce742fc185bb4cf6]", "0x20")
+ self.binary64_to_bid64("3", "[f2c0a4a4fb745824]", "[ce742fc185bb4cf6]", "0x20")
+ self.binary64_to_bid64("4", "[f2c0a4a4fb745824]", "[ce742fc185bb4cf6]", "0x20")
+ self.binary64_to_bid64("0", "[f4109d0067e98cf0]", "[cf4439d019e3a2da]", "0x20")
+ self.binary64_to_bid64("1", "[f4109d0067e98cf0]", "[cf4439d019e3a2db]", "0x20")
+ self.binary64_to_bid64("2", "[f4109d0067e98cf0]", "[cf4439d019e3a2da]", "0x20")
+ self.binary64_to_bid64("3", "[f4109d0067e98cf0]", "[cf4439d019e3a2da]", "0x20")
+ self.binary64_to_bid64("4", "[f4109d0067e98cf0]", "[cf4439d019e3a2da]", "0x20")
+ self.binary64_to_bid64("0", "[f55907c75eaaa468]", "[d006ad162217aa2f]", "0x20")
+ self.binary64_to_bid64("1", "[f55907c75eaaa468]", "[d006ad162217aa30]", "0x20")
+ self.binary64_to_bid64("2", "[f55907c75eaaa468]", "[d006ad162217aa2f]", "0x20")
+ self.binary64_to_bid64("3", "[f55907c75eaaa468]", "[d006ad162217aa2f]", "0x20")
+ self.binary64_to_bid64("4", "[f55907c75eaaa468]", "[d006ad162217aa2f]", "0x20")
+ self.binary64_to_bid64("0", "[f6b025a8cc77c8a2]", "[d0d2105abc3ac9ea]", "0x20")
+ self.binary64_to_bid64("1", "[f6b025a8cc77c8a2]", "[d0d2105abc3ac9eb]", "0x20")
+ self.binary64_to_bid64("2", "[f6b025a8cc77c8a2]", "[d0d2105abc3ac9ea]", "0x20")
+ self.binary64_to_bid64("3", "[f6b025a8cc77c8a2]", "[d0d2105abc3ac9ea]", "0x20")
+ self.binary64_to_bid64("4", "[f6b025a8cc77c8a2]", "[d0d2105abc3ac9ea]", "0x20")
+ self.binary64_to_bid64("0", "[f809305548a9c21a]", "[d1a5e8d7c1abf9a9]", "0x20")
+ self.binary64_to_bid64("1", "[f809305548a9c21a]", "[d1a5e8d7c1abf9aa]", "0x20")
+ self.binary64_to_bid64("2", "[f809305548a9c21a]", "[d1a5e8d7c1abf9a9]", "0x20")
+ self.binary64_to_bid64("3", "[f809305548a9c21a]", "[d1a5e8d7c1abf9a9]", "0x20")
+ self.binary64_to_bid64("4", "[f809305548a9c21a]", "[d1a5e8d7c1abf9a9]", "0x20")
+ self.binary64_to_bid64("0", "[f93a51859c2ceb68]", "[f4905f5d54994a00]", "0x20")
+ self.binary64_to_bid64("1", "[f93a51859c2ceb68]", "[f4905f5d54994a01]", "0x20")
+ self.binary64_to_bid64("2", "[f93a51859c2ceb68]", "[f4905f5d54994a00]", "0x20")
+ self.binary64_to_bid64("3", "[f93a51859c2ceb68]", "[f4905f5d54994a00]", "0x20")
+ self.binary64_to_bid64("4", "[f93a51859c2ceb68]", "[f4905f5d54994a00]", "0x20")
+ self.binary64_to_bid64("0", "[fa7671a9a9766da0]", "[d31cf2a660b312d7]", "0x20")
+ self.binary64_to_bid64("1", "[fa7671a9a9766da0]", "[d31cf2a660b312d8]", "0x20")
+ self.binary64_to_bid64("2", "[fa7671a9a9766da0]", "[d31cf2a660b312d7]", "0x20")
+ self.binary64_to_bid64("3", "[fa7671a9a9766da0]", "[d31cf2a660b312d7]", "0x20")
+ self.binary64_to_bid64("4", "[fa7671a9a9766da0]", "[d31cf2a660b312d7]", "0x20")
+ self.binary64_to_bid64("0", "[fbaaee0d2fea53c0]", "[d3d235dff4e4e708]", "0x20")
+ self.binary64_to_bid64("1", "[fbaaee0d2fea53c0]", "[d3d235dff4e4e708]", "0x20")
+ self.binary64_to_bid64("2", "[fbaaee0d2fea53c0]", "[d3d235dff4e4e707]", "0x20")
+ self.binary64_to_bid64("3", "[fbaaee0d2fea53c0]", "[d3d235dff4e4e707]", "0x20")
+ self.binary64_to_bid64("4", "[fbaaee0d2fea53c0]", "[d3d235dff4e4e708]", "0x20")
+ self.binary64_to_bid64("0", "[fd14ffcaa7988398]", "[d4abe96d9de0b12d]", "0x20")
+ self.binary64_to_bid64("1", "[fd14ffcaa7988398]", "[d4abe96d9de0b12e]", "0x20")
+ self.binary64_to_bid64("2", "[fd14ffcaa7988398]", "[d4abe96d9de0b12d]", "0x20")
+ self.binary64_to_bid64("3", "[fd14ffcaa7988398]", "[d4abe96d9de0b12d]", "0x20")
+ self.binary64_to_bid64("4", "[fd14ffcaa7988398]", "[d4abe96d9de0b12d]", "0x20")
+ self.binary64_to_bid64("0", "[fe585372e3c4a750]", "[d56e7820efb6ef28]", "0x20")
+ self.binary64_to_bid64("1", "[fe585372e3c4a750]", "[d56e7820efb6ef29]", "0x20")
+ self.binary64_to_bid64("2", "[fe585372e3c4a750]", "[d56e7820efb6ef28]", "0x20")
+ self.binary64_to_bid64("3", "[fe585372e3c4a750]", "[d56e7820efb6ef28]", "0x20")
+ self.binary64_to_bid64("4", "[fe585372e3c4a750]", "[d56e7820efb6ef28]", "0x20")
+ self.binary64_to_bid64("0", "[ffefffffffffffff]", "[d66662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("1", "[ffefffffffffffff]", "[d66662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("2", "[ffefffffffffffff]", "[d66662fe0cb7f7eb]", "0x20")
+ self.binary64_to_bid64("3", "[ffefffffffffffff]", "[d66662fe0cb7f7eb]", "0x20")
+ self.binary64_to_bid64("4", "[ffefffffffffffff]", "[d66662fe0cb7f7ec]", "0x20")
+ self.binary64_to_bid64("0", "[fff0000000000000]", "[f800000000000000]", "0x00")
+ self.binary64_to_bid64("1", "[fff0000000000000]", "[f800000000000000]", "0x00")
+ self.binary64_to_bid64("2", "[fff0000000000000]", "[f800000000000000]", "0x00")
+ self.binary64_to_bid64("3", "[fff0000000000000]", "[f800000000000000]", "0x00")
+ self.binary64_to_bid64("4", "[fff0000000000000]", "[f800000000000000]", "0x00")
+ }
+
+ private func binary64_to_bid64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDouble(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_binary64_to_bid128() {
+ self.binary64_to_bid128("0", "[0000000000000000]", "[3040000000000000,0000000000000000]", "00")
+ self.binary64_to_bid128("0", "[0000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[0000000000000001]", "[2d76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("0", "[0000000000000001]", "[2D76F397DA03AF06AA833FD25715F6E6]", "22")
+ self.binary64_to_bid128("0", "[0000000000000010]", "[2D7985BFC339180AAA6B99508B5657D6]", "22")
+ self.binary64_to_bid128("0", "[0000000000000100]", "[2D7C3E5C1F3C55C4443A2D02A5A76A37]", "22")
+ self.binary64_to_bid128("0", "[0000000000001000]", "[2D7E63C69860893A06C37B376F72438B]", "22")
+ self.binary64_to_bid128("0", "[0000000000010000]", "[2D809FA42700DB900AD25EBF18B6D278]", "22")
+ self.binary64_to_bid128("0", "[0000000000100000]", "[2D82FF6D0B34928011509798278AEA59]", "22")
+ self.binary64_to_bid128("0", "[0000000001000000]", "[2D8598AE78541D99B54DBF59D8DE43C1]", "22")
+ self.binary64_to_bid128("0", "[0000000010000000]", "[2D884163985F60E564B047937EDBE1E2]", "22")
+ self.binary64_to_bid128("0", "[0000000100000000]", "[2D8A689F5A3234A23AB3A5B8CAF96969]", "22")
+ self.binary64_to_bid128("0", "[0000001000000000]", "[2D8CA7655D1D2103911F6F8E118F0F0E]", "22")
+ self.binary64_to_bid128("0", "[0000010000000000]", "[2D8F0BD561C834D281CBE5B01C181817]", "22")
+ self.binary64_to_bid128("0", "[0000100000000000]", "[2D91AC889C7387B736130919C68CF357]", "22")
+ self.binary64_to_bid128("0", "[0001000000000000]", "[2D944490BCDF48EA1D21C4041FC4A1D1]", "22")
+ self.binary64_to_bid128("0", "[0008000000000000]", "[2D9636DA30B2A0BB4A81699CE636E7DA]", "22")
+ self.binary64_to_bid128("0", "[0010000000000000]", "[2d966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("0", "[0010000000000000]", "[2D966DB4616541769502D339CC6DCFB4]", "20")
+ self.binary64_to_bid128("0", "[0020000000000000]", "[2d96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("0", "[0100000000000001]", "[2D9F677AE5DA55E552B7016F6AF8F28A]", "20")
+ self.binary64_to_bid128("0", "[0100000000000010]", "[2D9F677AE5DA55E6A3BA38EC1B7FDB05]", "20")
+ self.binary64_to_bid128("0", "[0100000000000100]", "[2D9F677AE5DA55FBB3EDB0B723EE62BB]", "20")
+ self.binary64_to_bid128("0", "[0100000000001000]", "[2D9F677AE5DA574CB7252D67AAD6DE19]", "20")
+ self.binary64_to_bid128("0", "[0100000000010000]", "[2D9F677AE5DA6C5CEA9CF870195E93F7]", "20")
+ self.binary64_to_bid128("0", "[0100000000100000]", "[2D9F677AE5DBBD602219A8F701D9F1D7]", "20")
+ self.binary64_to_bid128("0", "[0100000001000000]", "[2D9F677AE5F0CD9399E4B165898FCFE2]", "20")
+ self.binary64_to_bid128("0", "[0100000010000000]", "[2D9F677AE741D0CB1695384E04EDB08B]", "20")
+ self.binary64_to_bid128("0", "[0100000100000000]", "[2D9F677AFC520442E19DA6D5BACBBB1F]", "20")
+ self.binary64_to_bid128("0", "[0100001000000000]", "[2D9F677C4D553BBF92248F5118AC6460]", "20")
+ self.binary64_to_bid128("0", "[0100010000000000]", "[2D9F67915D88B38A9A931706F6B6F870]", "20")
+ self.binary64_to_bid128("0", "[0100100000000000]", "[2D9F68E260C0303B217B9264D7603964]", "20")
+ self.binary64_to_bid128("0", "[0101000000000000]", "[2D9F7DF29437FB4390034842E1F448B2]", "20")
+ self.binary64_to_bid128("0", "[0108000000000000]", "[2DA035EC08E0C01595D64C75DDA3FE37]", "20")
+ self.binary64_to_bid128("0", "[021f03a31a9ccce9]", "[2daa5b552026ce286b6a1e73ffb8c248]", "0x20")
+ self.binary64_to_bid128("0", "[075134ebbced0713]", "[2ddc620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("0", "[0c7ee28672221d7c]", "[2e0e55129646953483521e8ede13fbc4]", "0x20")
+ self.binary64_to_bid128("0", "[11af6575833017d8]", "[2e4053a3c3a7ccec0ff9f6f10b6b396d]", "0x20")
+ self.binary64_to_bid128("0", "[170bf6a1f65c3927]", "[2e7439a3244a108575a10ee4beae0584]", "0x20")
+ self.binary64_to_bid128("0", "[1c304e1ac4f41802]", "[2ea545083a5ab39b0bff2684eec4cd32]", "0x20")
+ self.binary64_to_bid128("0", "[2175f260502da5d6]", "[2ed8549fbd04af18c7dce87a2a2acd47]", "0x20")
+ self.binary64_to_bid128("0", "[269b55a2d581e668]", "[2f0a32f7b0439882cd12f237c91bbd01]", "0x20")
+ self.binary64_to_bid128("0", "[2bda55d7f78e88d8]", "[2f3c5efb59ccc43133c870714dd1da99]", "0x20")
+ self.binary64_to_bid128("0", "[31354da96f4a6bff]", "[2f703b726cb5bed99d9ef94526de4360]", "0x20")
+ self.binary64_to_bid128("0", "[365a16ca9a8568f8]", "[2fa1600bb36149aaf6a00070ee76956e]", "0x20")
+ self.binary64_to_bid128("0", "[3b75216779e825b0]", "[2fd289e2026968d86ad13e785ef2d733]", "0x20")
+ self.binary64_to_bid128("0", "[3faa000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("0", "[3FE0000000000000]", "[303E0000000000000000000000000005]", "00")
+ self.binary64_to_bid128("0", "[3ff0000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("0", "[3ff8000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("0", "[4000000000000000]", "[30400000000000000000000000000002]", "00")
+ self.binary64_to_bid128("0", "[4050000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("0", "[408f380000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("0", "[408f400000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("0", "[40d387ffffffff9c]", "[3006629b8c891b2478a3bd9374fdbad3]", "0x20")
+ self.binary64_to_bid128("0", "[4630000000000000]", "[30400010000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[4b6a9d6145d953ee]", "[306c648c38c60e41502e79bf1b6f4f79]", "0x20")
+ self.binary64_to_bid128("0", "[5094b7857b5b31fe]", "[309e4bb1c358cc0b846d14c1dabc2c44]", "0x20")
+ self.binary64_to_bid128("0", "[5593d3f4fd530260]", "[30ce57951969ffc6b7a34af36de0d666]", "0x20")
+ self.binary64_to_bid128("0", "[5af7bff81fb38a58]", "[3102512ac6d862331e36a92220dd38fa]", "0x20")
+ self.binary64_to_bid128("0", "[605f3609c762e4a6]", "[31365287732403f1d53fc83309e998a2]", "0x20")
+ self.binary64_to_bid128("0", "[657660390c567ff4]", "[31671e1cf6dbf1dccd8a56a76a52e0de]", "0x20")
+ self.binary64_to_bid128("0", "[6ac2060ac637590e]", "[319a5927db8e08d4071a78c4d68e5db2]", "0x20")
+ self.binary64_to_bid128("0", "[6fe9643fdbf4b230]", "[31cc3cbccf7176e3585005f285a1a23e]", "0x20")
+ self.binary64_to_bid128("0", "[7502bc020b055ed0]", "[31fcd8b43282cc786080ac70b71e1148]", "0x20")
+ self.binary64_to_bid128("0", "[7a55b60dd016d6f8]", "[3230612756ede5bd43790b30bf096be0]", "0x20")
+ self.binary64_to_bid128("0", "[7fefffffffffffff]", "[326658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("0", "[7fefffffffffffff]", "[326658A213CC7A4FFAE03C4825156FB4]", "20")
+ self.binary64_to_bid128("0", "[7ff0000000000000]", "[7800000000000000,0000000000000000]", "00")
+ self.binary64_to_bid128("0", "[7ff0000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[7ff8000000000001]", "[7C000000000000000800000000000000]", "00")
+ self.binary64_to_bid128("0", "[7ffc000000000000]", "[7C002000000000000000000000000000]", "00")
+ self.binary64_to_bid128("0", "[7FFe29B8C891B267]", "[7C00314DC6448D933800000000000000]", "00")
+ self.binary64_to_bid128("0", "[7FFe29B8C891B268]", "[7C000000000000000000000000000000]", "00")
+ self.binary64_to_bid128("0", "[7fffffffffffffff]", "[7C000000000000000000000000000000]", "00")
+ self.binary64_to_bid128("0", "[8000000000000000]", "[b040000000000000,0000000000000000]", "00")
+ self.binary64_to_bid128("0", "[8000000000000001]", "[ad76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("0", "[8010000000000000]", "[ad966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("0", "[8020000000000000]", "[ad96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("0", "[821f03a31a9ccce9]", "[adaa5b552026ce286b6a1e73ffb8c248]", "0x20")
+ self.binary64_to_bid128("0", "[875134ebbced0713]", "[addc620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("0", "[8c7ee28672221d7c]", "[ae0e55129646953483521e8ede13fbc4]", "0x20")
+ self.binary64_to_bid128("0", "[91af6575833017d8]", "[ae4053a3c3a7ccec0ff9f6f10b6b396d]", "0x20")
+ self.binary64_to_bid128("0", "[970bf6a1f65c3927]", "[ae7439a3244a108575a10ee4beae0584]", "0x20")
+ self.binary64_to_bid128("0", "[9c304e1ac4f41802]", "[aea545083a5ab39b0bff2684eec4cd32]", "0x20")
+ self.binary64_to_bid128("0", "[a175f260502da5d6]", "[aed8549fbd04af18c7dce87a2a2acd47]", "0x20")
+ self.binary64_to_bid128("0", "[a69b55a2d581e668]", "[af0a32f7b0439882cd12f237c91bbd01]", "0x20")
+ self.binary64_to_bid128("0", "[abda55d7f78e88d8]", "[af3c5efb59ccc43133c870714dd1da99]", "0x20")
+ self.binary64_to_bid128("0", "[b1354da96f4a6bff]", "[af703b726cb5bed99d9ef94526de4360]", "0x20")
+ self.binary64_to_bid128("0", "[b65a16ca9a8568f8]", "[afa1600bb36149aaf6a00070ee76956e]", "0x20")
+ self.binary64_to_bid128("0", "[bb75216779e825b0]", "[afd289e2026968d86ad13e785ef2d733]", "0x20")
+ self.binary64_to_bid128("0", "[bfaa000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("0", "[bff0000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("0", "[bff8000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("0", "[c050000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("0", "[c08f380000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("0", "[c08f400000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("0", "[c0d387ffffffff9c]", "[b006629b8c891b2478a3bd9374fdbad3]", "0x20")
+ self.binary64_to_bid128("0", "[c630000000000000]", "[b0400010000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[cb6a9d6145d953ee]", "[b06c648c38c60e41502e79bf1b6f4f79]", "0x20")
+ self.binary64_to_bid128("0", "[d094b7857b5b31fe]", "[b09e4bb1c358cc0b846d14c1dabc2c44]", "0x20")
+ self.binary64_to_bid128("0", "[d593d3f4fd530260]", "[b0ce57951969ffc6b7a34af36de0d666]", "0x20")
+ self.binary64_to_bid128("0", "[daf7bff81fb38a58]", "[b102512ac6d862331e36a92220dd38fa]", "0x20")
+ self.binary64_to_bid128("0", "[e05f3609c762e4a6]", "[b1365287732403f1d53fc83309e998a2]", "0x20")
+ self.binary64_to_bid128("0", "[e57660390c567ff4]", "[b1671e1cf6dbf1dccd8a56a76a52e0de]", "0x20")
+ self.binary64_to_bid128("0", "[eac2060ac637590e]", "[b19a5927db8e08d4071a78c4d68e5db2]", "0x20")
+ self.binary64_to_bid128("0", "[efe9643fdbf4b230]", "[b1cc3cbccf7176e3585005f285a1a23e]", "0x20")
+ self.binary64_to_bid128("0", "[f502bc020b055ed0]", "[b1fcd8b43282cc786080ac70b71e1148]", "0x20")
+ self.binary64_to_bid128("0", "[fa55b60dd016d6f8]", "[b230612756ede5bd43790b30bf096be0]", "0x20")
+ self.binary64_to_bid128("0", "[ffefffffffffffff]", "[b26658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("0", "[fff0000000000000]", "[f800000000000000,0000000000000000]", "00")
+ self.binary64_to_bid128("0", "[fff0000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[0000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[0000000000000001]", "[2d76f397da03af06aa833fd25715f6e5]", "0x22")
+ self.binary64_to_bid128("1", "[0010000000000000]", "[2d966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("1", "[0020000000000000]", "[2d96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("1", "[021f03a31a9ccce9]", "[2daa5b552026ce286b6a1e73ffb8c248]", "0x20")
+ self.binary64_to_bid128("1", "[075134ebbced0713]", "[2ddc620343153f6e408d69b76a34b2a6]", "0x20")
+ self.binary64_to_bid128("1", "[0c7ee28672221d7c]", "[2e0e55129646953483521e8ede13fbc4]", "0x20")
+ self.binary64_to_bid128("1", "[11af6575833017d8]", "[2e4053a3c3a7ccec0ff9f6f10b6b396d]", "0x20")
+ self.binary64_to_bid128("1", "[170bf6a1f65c3927]", "[2e7439a3244a108575a10ee4beae0583]", "0x20")
+ self.binary64_to_bid128("1", "[1c304e1ac4f41802]", "[2ea545083a5ab39b0bff2684eec4cd31]", "0x20")
+ self.binary64_to_bid128("1", "[2175f260502da5d6]", "[2ed8549fbd04af18c7dce87a2a2acd47]", "0x20")
+ self.binary64_to_bid128("1", "[269b55a2d581e668]", "[2f0a32f7b0439882cd12f237c91bbd00]", "0x20")
+ self.binary64_to_bid128("1", "[2bda55d7f78e88d8]", "[2f3c5efb59ccc43133c870714dd1da98]", "0x20")
+ self.binary64_to_bid128("1", "[31354da96f4a6bff]", "[2f703b726cb5bed99d9ef94526de435f]", "0x20")
+ self.binary64_to_bid128("1", "[365a16ca9a8568f8]", "[2fa1600bb36149aaf6a00070ee76956d]", "0x20")
+ self.binary64_to_bid128("1", "[3b75216779e825b0]", "[2fd289e2026968d86ad13e785ef2d733]", "0x20")
+ self.binary64_to_bid128("1", "[3faa000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("1", "[3ff0000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("1", "[3ff8000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("1", "[4050000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("1", "[408f380000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("1", "[408f400000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("1", "[40d387ffffffff9c]", "[3006629b8c891b2478a3bd9374fdbad3]", "0x20")
+ self.binary64_to_bid128("1", "[4630000000000000]", "[30400010000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[4b6a9d6145d953ee]", "[306c648c38c60e41502e79bf1b6f4f78]", "0x20")
+ self.binary64_to_bid128("1", "[5094b7857b5b31fe]", "[309e4bb1c358cc0b846d14c1dabc2c43]", "0x20")
+ self.binary64_to_bid128("1", "[5593d3f4fd530260]", "[30ce57951969ffc6b7a34af36de0d666]", "0x20")
+ self.binary64_to_bid128("1", "[5af7bff81fb38a58]", "[3102512ac6d862331e36a92220dd38f9]", "0x20")
+ self.binary64_to_bid128("1", "[605f3609c762e4a6]", "[31365287732403f1d53fc83309e998a2]", "0x20")
+ self.binary64_to_bid128("1", "[657660390c567ff4]", "[31671e1cf6dbf1dccd8a56a76a52e0de]", "0x20")
+ self.binary64_to_bid128("1", "[6ac2060ac637590e]", "[319a5927db8e08d4071a78c4d68e5db1]", "0x20")
+ self.binary64_to_bid128("1", "[6fe9643fdbf4b230]", "[31cc3cbccf7176e3585005f285a1a23e]", "0x20")
+ self.binary64_to_bid128("1", "[7502bc020b055ed0]", "[31fcd8b43282cc786080ac70b71e1147]", "0x20")
+ self.binary64_to_bid128("1", "[7a55b60dd016d6f8]", "[3230612756ede5bd43790b30bf096bdf]", "0x20")
+ self.binary64_to_bid128("1", "[7fefffffffffffff]", "[326658a213cc7a4ffae03c4825156fb3]", "0x20")
+ self.binary64_to_bid128("1", "[7ff0000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[8000000000000001]", "[ad76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("1", "[8010000000000000]", "[ad966db4616541769502d339cc6dcfb5]", "0x20")
+ self.binary64_to_bid128("1", "[8020000000000000]", "[ad96db68c2ca82ed2a05a67398db9f69]", "0x20")
+ self.binary64_to_bid128("1", "[821f03a31a9ccce9]", "[adaa5b552026ce286b6a1e73ffb8c249]", "0x20")
+ self.binary64_to_bid128("1", "[875134ebbced0713]", "[addc620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("1", "[8c7ee28672221d7c]", "[ae0e55129646953483521e8ede13fbc5]", "0x20")
+ self.binary64_to_bid128("1", "[91af6575833017d8]", "[ae4053a3c3a7ccec0ff9f6f10b6b396e]", "0x20")
+ self.binary64_to_bid128("1", "[970bf6a1f65c3927]", "[ae7439a3244a108575a10ee4beae0584]", "0x20")
+ self.binary64_to_bid128("1", "[9c304e1ac4f41802]", "[aea545083a5ab39b0bff2684eec4cd32]", "0x20")
+ self.binary64_to_bid128("1", "[a175f260502da5d6]", "[aed8549fbd04af18c7dce87a2a2acd48]", "0x20")
+ self.binary64_to_bid128("1", "[a69b55a2d581e668]", "[af0a32f7b0439882cd12f237c91bbd01]", "0x20")
+ self.binary64_to_bid128("1", "[abda55d7f78e88d8]", "[af3c5efb59ccc43133c870714dd1da99]", "0x20")
+ self.binary64_to_bid128("1", "[b1354da96f4a6bff]", "[af703b726cb5bed99d9ef94526de4360]", "0x20")
+ self.binary64_to_bid128("1", "[b65a16ca9a8568f8]", "[afa1600bb36149aaf6a00070ee76956e]", "0x20")
+ self.binary64_to_bid128("1", "[bb75216779e825b0]", "[afd289e2026968d86ad13e785ef2d734]", "0x20")
+ self.binary64_to_bid128("1", "[bfaa000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("1", "[bff0000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("1", "[bff8000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("1", "[c050000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("1", "[c08f380000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("1", "[c08f400000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("1", "[c0d387ffffffff9c]", "[b006629b8c891b2478a3bd9374fdbad4]", "0x20")
+ self.binary64_to_bid128("1", "[c630000000000000]", "[b0400010000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[cb6a9d6145d953ee]", "[b06c648c38c60e41502e79bf1b6f4f79]", "0x20")
+ self.binary64_to_bid128("1", "[d094b7857b5b31fe]", "[b09e4bb1c358cc0b846d14c1dabc2c44]", "0x20")
+ self.binary64_to_bid128("1", "[d593d3f4fd530260]", "[b0ce57951969ffc6b7a34af36de0d667]", "0x20")
+ self.binary64_to_bid128("1", "[daf7bff81fb38a58]", "[b102512ac6d862331e36a92220dd38fa]", "0x20")
+ self.binary64_to_bid128("1", "[e05f3609c762e4a6]", "[b1365287732403f1d53fc83309e998a3]", "0x20")
+ self.binary64_to_bid128("1", "[e57660390c567ff4]", "[b1671e1cf6dbf1dccd8a56a76a52e0df]", "0x20")
+ self.binary64_to_bid128("1", "[eac2060ac637590e]", "[b19a5927db8e08d4071a78c4d68e5db2]", "0x20")
+ self.binary64_to_bid128("1", "[efe9643fdbf4b230]", "[b1cc3cbccf7176e3585005f285a1a23f]", "0x20")
+ self.binary64_to_bid128("1", "[f502bc020b055ed0]", "[b1fcd8b43282cc786080ac70b71e1148]", "0x20")
+ self.binary64_to_bid128("1", "[fa55b60dd016d6f8]", "[b230612756ede5bd43790b30bf096be0]", "0x20")
+ self.binary64_to_bid128("1", "[ffefffffffffffff]", "[b26658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("1", "[fff0000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[0000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[0000000000000001]", "[2d76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("2", "[0010000000000000]", "[2d966db4616541769502d339cc6dcfb5]", "0x20")
+ self.binary64_to_bid128("2", "[0020000000000000]", "[2d96db68c2ca82ed2a05a67398db9f69]", "0x20")
+ self.binary64_to_bid128("2", "[021f03a31a9ccce9]", "[2daa5b552026ce286b6a1e73ffb8c249]", "0x20")
+ self.binary64_to_bid128("2", "[075134ebbced0713]", "[2ddc620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("2", "[0c7ee28672221d7c]", "[2e0e55129646953483521e8ede13fbc5]", "0x20")
+ self.binary64_to_bid128("2", "[11af6575833017d8]", "[2e4053a3c3a7ccec0ff9f6f10b6b396e]", "0x20")
+ self.binary64_to_bid128("2", "[170bf6a1f65c3927]", "[2e7439a3244a108575a10ee4beae0584]", "0x20")
+ self.binary64_to_bid128("2", "[1c304e1ac4f41802]", "[2ea545083a5ab39b0bff2684eec4cd32]", "0x20")
+ self.binary64_to_bid128("2", "[2175f260502da5d6]", "[2ed8549fbd04af18c7dce87a2a2acd48]", "0x20")
+ self.binary64_to_bid128("2", "[269b55a2d581e668]", "[2f0a32f7b0439882cd12f237c91bbd01]", "0x20")
+ self.binary64_to_bid128("2", "[2bda55d7f78e88d8]", "[2f3c5efb59ccc43133c870714dd1da99]", "0x20")
+ self.binary64_to_bid128("2", "[31354da96f4a6bff]", "[2f703b726cb5bed99d9ef94526de4360]", "0x20")
+ self.binary64_to_bid128("2", "[365a16ca9a8568f8]", "[2fa1600bb36149aaf6a00070ee76956e]", "0x20")
+ self.binary64_to_bid128("2", "[3b75216779e825b0]", "[2fd289e2026968d86ad13e785ef2d734]", "0x20")
+ self.binary64_to_bid128("2", "[3faa000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("2", "[3ff0000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("2", "[3ff8000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("2", "[4050000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("2", "[408f380000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("2", "[408f400000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("2", "[40d387ffffffff9c]", "[3006629b8c891b2478a3bd9374fdbad4]", "0x20")
+ self.binary64_to_bid128("2", "[4630000000000000]", "[30400010000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[4b6a9d6145d953ee]", "[306c648c38c60e41502e79bf1b6f4f79]", "0x20")
+ self.binary64_to_bid128("2", "[5094b7857b5b31fe]", "[309e4bb1c358cc0b846d14c1dabc2c44]", "0x20")
+ self.binary64_to_bid128("2", "[5593d3f4fd530260]", "[30ce57951969ffc6b7a34af36de0d667]", "0x20")
+ self.binary64_to_bid128("2", "[5af7bff81fb38a58]", "[3102512ac6d862331e36a92220dd38fa]", "0x20")
+ self.binary64_to_bid128("2", "[605f3609c762e4a6]", "[31365287732403f1d53fc83309e998a3]", "0x20")
+ self.binary64_to_bid128("2", "[657660390c567ff4]", "[31671e1cf6dbf1dccd8a56a76a52e0df]", "0x20")
+ self.binary64_to_bid128("2", "[6ac2060ac637590e]", "[319a5927db8e08d4071a78c4d68e5db2]", "0x20")
+ self.binary64_to_bid128("2", "[6fe9643fdbf4b230]", "[31cc3cbccf7176e3585005f285a1a23f]", "0x20")
+ self.binary64_to_bid128("2", "[7502bc020b055ed0]", "[31fcd8b43282cc786080ac70b71e1148]", "0x20")
+ self.binary64_to_bid128("2", "[7a55b60dd016d6f8]", "[3230612756ede5bd43790b30bf096be0]", "0x20")
+ self.binary64_to_bid128("2", "[7fefffffffffffff]", "[326658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("2", "[7ff0000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[8000000000000001]", "[ad76f397da03af06aa833fd25715f6e5]", "0x22")
+ self.binary64_to_bid128("2", "[8010000000000000]", "[ad966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("2", "[8020000000000000]", "[ad96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("2", "[821f03a31a9ccce9]", "[adaa5b552026ce286b6a1e73ffb8c248]", "0x20")
+ self.binary64_to_bid128("2", "[875134ebbced0713]", "[addc620343153f6e408d69b76a34b2a6]", "0x20")
+ self.binary64_to_bid128("2", "[8c7ee28672221d7c]", "[ae0e55129646953483521e8ede13fbc4]", "0x20")
+ self.binary64_to_bid128("2", "[91af6575833017d8]", "[ae4053a3c3a7ccec0ff9f6f10b6b396d]", "0x20")
+ self.binary64_to_bid128("2", "[970bf6a1f65c3927]", "[ae7439a3244a108575a10ee4beae0583]", "0x20")
+ self.binary64_to_bid128("2", "[9c304e1ac4f41802]", "[aea545083a5ab39b0bff2684eec4cd31]", "0x20")
+ self.binary64_to_bid128("2", "[a175f260502da5d6]", "[aed8549fbd04af18c7dce87a2a2acd47]", "0x20")
+ self.binary64_to_bid128("2", "[a69b55a2d581e668]", "[af0a32f7b0439882cd12f237c91bbd00]", "0x20")
+ self.binary64_to_bid128("2", "[abda55d7f78e88d8]", "[af3c5efb59ccc43133c870714dd1da98]", "0x20")
+ self.binary64_to_bid128("2", "[b1354da96f4a6bff]", "[af703b726cb5bed99d9ef94526de435f]", "0x20")
+ self.binary64_to_bid128("2", "[b65a16ca9a8568f8]", "[afa1600bb36149aaf6a00070ee76956d]", "0x20")
+ self.binary64_to_bid128("2", "[bb75216779e825b0]", "[afd289e2026968d86ad13e785ef2d733]", "0x20")
+ self.binary64_to_bid128("2", "[bfaa000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("2", "[bff0000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("2", "[bff8000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("2", "[c050000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("2", "[c08f380000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("2", "[c08f400000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("2", "[c0d387ffffffff9c]", "[b006629b8c891b2478a3bd9374fdbad3]", "0x20")
+ self.binary64_to_bid128("2", "[c630000000000000]", "[b0400010000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[cb6a9d6145d953ee]", "[b06c648c38c60e41502e79bf1b6f4f78]", "0x20")
+ self.binary64_to_bid128("2", "[d094b7857b5b31fe]", "[b09e4bb1c358cc0b846d14c1dabc2c43]", "0x20")
+ self.binary64_to_bid128("2", "[d593d3f4fd530260]", "[b0ce57951969ffc6b7a34af36de0d666]", "0x20")
+ self.binary64_to_bid128("2", "[daf7bff81fb38a58]", "[b102512ac6d862331e36a92220dd38f9]", "0x20")
+ self.binary64_to_bid128("2", "[e05f3609c762e4a6]", "[b1365287732403f1d53fc83309e998a2]", "0x20")
+ self.binary64_to_bid128("2", "[e57660390c567ff4]", "[b1671e1cf6dbf1dccd8a56a76a52e0de]", "0x20")
+ self.binary64_to_bid128("2", "[eac2060ac637590e]", "[b19a5927db8e08d4071a78c4d68e5db1]", "0x20")
+ self.binary64_to_bid128("2", "[efe9643fdbf4b230]", "[b1cc3cbccf7176e3585005f285a1a23e]", "0x20")
+ self.binary64_to_bid128("2", "[f502bc020b055ed0]", "[b1fcd8b43282cc786080ac70b71e1147]", "0x20")
+ self.binary64_to_bid128("2", "[fa55b60dd016d6f8]", "[b230612756ede5bd43790b30bf096bdf]", "0x20")
+ self.binary64_to_bid128("2", "[ffefffffffffffff]", "[b26658a213cc7a4ffae03c4825156fb3]", "0x20")
+ self.binary64_to_bid128("2", "[fff0000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[0000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[0000000000000001]", "[2d76f397da03af06aa833fd25715f6e5]", "0x22")
+ self.binary64_to_bid128("3", "[0010000000000000]", "[2d966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("3", "[0020000000000000]", "[2d96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("3", "[021f03a31a9ccce9]", "[2daa5b552026ce286b6a1e73ffb8c248]", "0x20")
+ self.binary64_to_bid128("3", "[075134ebbced0713]", "[2ddc620343153f6e408d69b76a34b2a6]", "0x20")
+ self.binary64_to_bid128("3", "[0c7ee28672221d7c]", "[2e0e55129646953483521e8ede13fbc4]", "0x20")
+ self.binary64_to_bid128("3", "[11af6575833017d8]", "[2e4053a3c3a7ccec0ff9f6f10b6b396d]", "0x20")
+ self.binary64_to_bid128("3", "[170bf6a1f65c3927]", "[2e7439a3244a108575a10ee4beae0583]", "0x20")
+ self.binary64_to_bid128("3", "[1c304e1ac4f41802]", "[2ea545083a5ab39b0bff2684eec4cd31]", "0x20")
+ self.binary64_to_bid128("3", "[2175f260502da5d6]", "[2ed8549fbd04af18c7dce87a2a2acd47]", "0x20")
+ self.binary64_to_bid128("3", "[269b55a2d581e668]", "[2f0a32f7b0439882cd12f237c91bbd00]", "0x20")
+ self.binary64_to_bid128("3", "[2bda55d7f78e88d8]", "[2f3c5efb59ccc43133c870714dd1da98]", "0x20")
+ self.binary64_to_bid128("3", "[31354da96f4a6bff]", "[2f703b726cb5bed99d9ef94526de435f]", "0x20")
+ self.binary64_to_bid128("3", "[365a16ca9a8568f8]", "[2fa1600bb36149aaf6a00070ee76956d]", "0x20")
+ self.binary64_to_bid128("3", "[3b75216779e825b0]", "[2fd289e2026968d86ad13e785ef2d733]", "0x20")
+ self.binary64_to_bid128("3", "[3faa000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("3", "[3ff0000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("3", "[3ff8000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("3", "[4050000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("3", "[408f380000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("3", "[408f400000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("3", "[40d387ffffffff9c]", "[3006629b8c891b2478a3bd9374fdbad3]", "0x20")
+ self.binary64_to_bid128("3", "[4630000000000000]", "[30400010000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[4b6a9d6145d953ee]", "[306c648c38c60e41502e79bf1b6f4f78]", "0x20")
+ self.binary64_to_bid128("3", "[5094b7857b5b31fe]", "[309e4bb1c358cc0b846d14c1dabc2c43]", "0x20")
+ self.binary64_to_bid128("3", "[5593d3f4fd530260]", "[30ce57951969ffc6b7a34af36de0d666]", "0x20")
+ self.binary64_to_bid128("3", "[5af7bff81fb38a58]", "[3102512ac6d862331e36a92220dd38f9]", "0x20")
+ self.binary64_to_bid128("3", "[605f3609c762e4a6]", "[31365287732403f1d53fc83309e998a2]", "0x20")
+ self.binary64_to_bid128("3", "[657660390c567ff4]", "[31671e1cf6dbf1dccd8a56a76a52e0de]", "0x20")
+ self.binary64_to_bid128("3", "[6ac2060ac637590e]", "[319a5927db8e08d4071a78c4d68e5db1]", "0x20")
+ self.binary64_to_bid128("3", "[6fe9643fdbf4b230]", "[31cc3cbccf7176e3585005f285a1a23e]", "0x20")
+ self.binary64_to_bid128("3", "[7502bc020b055ed0]", "[31fcd8b43282cc786080ac70b71e1147]", "0x20")
+ self.binary64_to_bid128("3", "[7a55b60dd016d6f8]", "[3230612756ede5bd43790b30bf096bdf]", "0x20")
+ self.binary64_to_bid128("3", "[7fefffffffffffff]", "[326658a213cc7a4ffae03c4825156fb3]", "0x20")
+ self.binary64_to_bid128("3", "[7ff0000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[8000000000000001]", "[ad76f397da03af06aa833fd25715f6e5]", "0x22")
+ self.binary64_to_bid128("3", "[8010000000000000]", "[ad966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("3", "[8020000000000000]", "[ad96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("3", "[821f03a31a9ccce9]", "[adaa5b552026ce286b6a1e73ffb8c248]", "0x20")
+ self.binary64_to_bid128("3", "[875134ebbced0713]", "[addc620343153f6e408d69b76a34b2a6]", "0x20")
+ self.binary64_to_bid128("3", "[8c7ee28672221d7c]", "[ae0e55129646953483521e8ede13fbc4]", "0x20")
+ self.binary64_to_bid128("3", "[91af6575833017d8]", "[ae4053a3c3a7ccec0ff9f6f10b6b396d]", "0x20")
+ self.binary64_to_bid128("3", "[970bf6a1f65c3927]", "[ae7439a3244a108575a10ee4beae0583]", "0x20")
+ self.binary64_to_bid128("3", "[9c304e1ac4f41802]", "[aea545083a5ab39b0bff2684eec4cd31]", "0x20")
+ self.binary64_to_bid128("3", "[a175f260502da5d6]", "[aed8549fbd04af18c7dce87a2a2acd47]", "0x20")
+ self.binary64_to_bid128("3", "[a69b55a2d581e668]", "[af0a32f7b0439882cd12f237c91bbd00]", "0x20")
+ self.binary64_to_bid128("3", "[abda55d7f78e88d8]", "[af3c5efb59ccc43133c870714dd1da98]", "0x20")
+ self.binary64_to_bid128("3", "[b1354da96f4a6bff]", "[af703b726cb5bed99d9ef94526de435f]", "0x20")
+ self.binary64_to_bid128("3", "[b65a16ca9a8568f8]", "[afa1600bb36149aaf6a00070ee76956d]", "0x20")
+ self.binary64_to_bid128("3", "[bb75216779e825b0]", "[afd289e2026968d86ad13e785ef2d733]", "0x20")
+ self.binary64_to_bid128("3", "[bfaa000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("3", "[bff0000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("3", "[bff8000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("3", "[c050000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("3", "[c08f380000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("3", "[c08f400000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("3", "[c0d387ffffffff9c]", "[b006629b8c891b2478a3bd9374fdbad3]", "0x20")
+ self.binary64_to_bid128("3", "[c630000000000000]", "[b0400010000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[cb6a9d6145d953ee]", "[b06c648c38c60e41502e79bf1b6f4f78]", "0x20")
+ self.binary64_to_bid128("3", "[d094b7857b5b31fe]", "[b09e4bb1c358cc0b846d14c1dabc2c43]", "0x20")
+ self.binary64_to_bid128("3", "[d593d3f4fd530260]", "[b0ce57951969ffc6b7a34af36de0d666]", "0x20")
+ self.binary64_to_bid128("3", "[daf7bff81fb38a58]", "[b102512ac6d862331e36a92220dd38f9]", "0x20")
+ self.binary64_to_bid128("3", "[e05f3609c762e4a6]", "[b1365287732403f1d53fc83309e998a2]", "0x20")
+ self.binary64_to_bid128("3", "[e57660390c567ff4]", "[b1671e1cf6dbf1dccd8a56a76a52e0de]", "0x20")
+ self.binary64_to_bid128("3", "[eac2060ac637590e]", "[b19a5927db8e08d4071a78c4d68e5db1]", "0x20")
+ self.binary64_to_bid128("3", "[efe9643fdbf4b230]", "[b1cc3cbccf7176e3585005f285a1a23e]", "0x20")
+ self.binary64_to_bid128("3", "[f502bc020b055ed0]", "[b1fcd8b43282cc786080ac70b71e1147]", "0x20")
+ self.binary64_to_bid128("3", "[fa55b60dd016d6f8]", "[b230612756ede5bd43790b30bf096bdf]", "0x20")
+ self.binary64_to_bid128("3", "[ffefffffffffffff]", "[b26658a213cc7a4ffae03c4825156fb3]", "0x20")
+ self.binary64_to_bid128("3", "[fff0000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[0000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[0000000000000001]", "[2d76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("4", "[0010000000000000]", "[2d966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("4", "[0020000000000000]", "[2d96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("4", "[021f03a31a9ccce9]", "[2daa5b552026ce286b6a1e73ffb8c248]", "0x20")
+ self.binary64_to_bid128("4", "[075134ebbced0713]", "[2ddc620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("4", "[0c7ee28672221d7c]", "[2e0e55129646953483521e8ede13fbc4]", "0x20")
+ self.binary64_to_bid128("4", "[11af6575833017d8]", "[2e4053a3c3a7ccec0ff9f6f10b6b396d]", "0x20")
+ self.binary64_to_bid128("4", "[170bf6a1f65c3927]", "[2e7439a3244a108575a10ee4beae0584]", "0x20")
+ self.binary64_to_bid128("4", "[1c304e1ac4f41802]", "[2ea545083a5ab39b0bff2684eec4cd32]", "0x20")
+ self.binary64_to_bid128("4", "[2175f260502da5d6]", "[2ed8549fbd04af18c7dce87a2a2acd47]", "0x20")
+ self.binary64_to_bid128("4", "[269b55a2d581e668]", "[2f0a32f7b0439882cd12f237c91bbd01]", "0x20")
+ self.binary64_to_bid128("4", "[2bda55d7f78e88d8]", "[2f3c5efb59ccc43133c870714dd1da99]", "0x20")
+ self.binary64_to_bid128("4", "[31354da96f4a6bff]", "[2f703b726cb5bed99d9ef94526de4360]", "0x20")
+ self.binary64_to_bid128("4", "[365a16ca9a8568f8]", "[2fa1600bb36149aaf6a00070ee76956e]", "0x20")
+ self.binary64_to_bid128("4", "[3b75216779e825b0]", "[2fd289e2026968d86ad13e785ef2d733]", "0x20")
+ self.binary64_to_bid128("4", "[3faa000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("4", "[3ff0000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("4", "[3ff8000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("4", "[4050000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("4", "[408f380000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("4", "[408f400000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("4", "[40d387ffffffff9c]", "[3006629b8c891b2478a3bd9374fdbad3]", "0x20")
+ self.binary64_to_bid128("4", "[4630000000000000]", "[30400010000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[4b6a9d6145d953ee]", "[306c648c38c60e41502e79bf1b6f4f79]", "0x20")
+ self.binary64_to_bid128("4", "[5094b7857b5b31fe]", "[309e4bb1c358cc0b846d14c1dabc2c44]", "0x20")
+ self.binary64_to_bid128("4", "[5593d3f4fd530260]", "[30ce57951969ffc6b7a34af36de0d666]", "0x20")
+ self.binary64_to_bid128("4", "[5af7bff81fb38a58]", "[3102512ac6d862331e36a92220dd38fa]", "0x20")
+ self.binary64_to_bid128("4", "[605f3609c762e4a6]", "[31365287732403f1d53fc83309e998a2]", "0x20")
+ self.binary64_to_bid128("4", "[657660390c567ff4]", "[31671e1cf6dbf1dccd8a56a76a52e0de]", "0x20")
+ self.binary64_to_bid128("4", "[6ac2060ac637590e]", "[319a5927db8e08d4071a78c4d68e5db2]", "0x20")
+ self.binary64_to_bid128("4", "[6fe9643fdbf4b230]", "[31cc3cbccf7176e3585005f285a1a23e]", "0x20")
+ self.binary64_to_bid128("4", "[7502bc020b055ed0]", "[31fcd8b43282cc786080ac70b71e1148]", "0x20")
+ self.binary64_to_bid128("4", "[7a55b60dd016d6f8]", "[3230612756ede5bd43790b30bf096be0]", "0x20")
+ self.binary64_to_bid128("4", "[7fefffffffffffff]", "[326658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("4", "[7ff0000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[8000000000000001]", "[ad76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("4", "[8010000000000000]", "[ad966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("4", "[8020000000000000]", "[ad96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("4", "[821f03a31a9ccce9]", "[adaa5b552026ce286b6a1e73ffb8c248]", "0x20")
+ self.binary64_to_bid128("4", "[875134ebbced0713]", "[addc620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("4", "[8c7ee28672221d7c]", "[ae0e55129646953483521e8ede13fbc4]", "0x20")
+ self.binary64_to_bid128("4", "[91af6575833017d8]", "[ae4053a3c3a7ccec0ff9f6f10b6b396d]", "0x20")
+ self.binary64_to_bid128("4", "[970bf6a1f65c3927]", "[ae7439a3244a108575a10ee4beae0584]", "0x20")
+ self.binary64_to_bid128("4", "[9c304e1ac4f41802]", "[aea545083a5ab39b0bff2684eec4cd32]", "0x20")
+ self.binary64_to_bid128("4", "[a175f260502da5d6]", "[aed8549fbd04af18c7dce87a2a2acd47]", "0x20")
+ self.binary64_to_bid128("4", "[a69b55a2d581e668]", "[af0a32f7b0439882cd12f237c91bbd01]", "0x20")
+ self.binary64_to_bid128("4", "[abda55d7f78e88d8]", "[af3c5efb59ccc43133c870714dd1da99]", "0x20")
+ self.binary64_to_bid128("4", "[b1354da96f4a6bff]", "[af703b726cb5bed99d9ef94526de4360]", "0x20")
+ self.binary64_to_bid128("4", "[b65a16ca9a8568f8]", "[afa1600bb36149aaf6a00070ee76956e]", "0x20")
+ self.binary64_to_bid128("4", "[bb75216779e825b0]", "[afd289e2026968d86ad13e785ef2d733]", "0x20")
+ self.binary64_to_bid128("4", "[bfaa000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("4", "[bff0000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("4", "[bff8000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("4", "[c050000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("4", "[c08f380000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("4", "[c08f400000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("4", "[c0d387ffffffff9c]", "[b006629b8c891b2478a3bd9374fdbad3]", "0x20")
+ self.binary64_to_bid128("4", "[c630000000000000]", "[b0400010000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[cb6a9d6145d953ee]", "[b06c648c38c60e41502e79bf1b6f4f79]", "0x20")
+ self.binary64_to_bid128("4", "[d094b7857b5b31fe]", "[b09e4bb1c358cc0b846d14c1dabc2c44]", "0x20")
+ self.binary64_to_bid128("4", "[d593d3f4fd530260]", "[b0ce57951969ffc6b7a34af36de0d666]", "0x20")
+ self.binary64_to_bid128("4", "[daf7bff81fb38a58]", "[b102512ac6d862331e36a92220dd38fa]", "0x20")
+ self.binary64_to_bid128("4", "[e05f3609c762e4a6]", "[b1365287732403f1d53fc83309e998a2]", "0x20")
+ self.binary64_to_bid128("4", "[e57660390c567ff4]", "[b1671e1cf6dbf1dccd8a56a76a52e0de]", "0x20")
+ self.binary64_to_bid128("4", "[eac2060ac637590e]", "[b19a5927db8e08d4071a78c4d68e5db2]", "0x20")
+ self.binary64_to_bid128("4", "[efe9643fdbf4b230]", "[b1cc3cbccf7176e3585005f285a1a23e]", "0x20")
+ self.binary64_to_bid128("4", "[f502bc020b055ed0]", "[b1fcd8b43282cc786080ac70b71e1148]", "0x20")
+ self.binary64_to_bid128("4", "[fa55b60dd016d6f8]", "[b230612756ede5bd43790b30bf096be0]", "0x20")
+ self.binary64_to_bid128("4", "[ffefffffffffffff]", "[b26658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("4", "[fff0000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[7ff0000000000001]", "[7C000000000000000800000000000000]", "01")
+ self.binary64_to_bid128("0", "[7ff4000000000000]", "[7C002000000000000000000000000000]", "01")
+ self.binary64_to_bid128("0", "[7FF629B8C891B267]", "[7C00314DC6448D933800000000000000]", "01")
+ self.binary64_to_bid128("0", "[7FF629B8C891B268]", "[7C000000000000000000000000000000]", "01")
+ self.binary64_to_bid128("0", "[7ff7ffffffffffff]", "[7C000000000000000000000000000000]", "01")
+ self.binary64_to_bid128("0", "+9862472843996373385459829996945747934.44E0", "[3047e641e87862700000000000000000]", "00")
+ self.binary64_to_bid128("0", "[0000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[0000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[0000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[0000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[0000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[0000000000000001]", "[2d76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("1", "[0000000000000001]", "[2d76f397da03af06aa833fd25715f6e5]", "0x22")
+ self.binary64_to_bid128("2", "[0000000000000001]", "[2d76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("3", "[0000000000000001]", "[2d76f397da03af06aa833fd25715f6e5]", "0x22")
+ self.binary64_to_bid128("4", "[0000000000000001]", "[2d76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("0", "[000000000035abf1]", "[2d8455ae9c300997c812e73a9c0d75a8]", "0x22")
+ self.binary64_to_bid128("1", "[000000000035abf1]", "[2d8455ae9c300997c812e73a9c0d75a7]", "0x22")
+ self.binary64_to_bid128("2", "[000000000035abf1]", "[2d8455ae9c300997c812e73a9c0d75a8]", "0x22")
+ self.binary64_to_bid128("3", "[000000000035abf1]", "[2d8455ae9c300997c812e73a9c0d75a7]", "0x22")
+ self.binary64_to_bid128("4", "[000000000035abf1]", "[2d8455ae9c300997c812e73a9c0d75a8]", "0x22")
+ self.binary64_to_bid128("0", "[0000001b25f9406f]", "[2d8d1c08574412eb596a4ab82ac543ad]", "0x22")
+ self.binary64_to_bid128("1", "[0000001b25f9406f]", "[2d8d1c08574412eb596a4ab82ac543ac]", "0x22")
+ self.binary64_to_bid128("2", "[0000001b25f9406f]", "[2d8d1c08574412eb596a4ab82ac543ad]", "0x22")
+ self.binary64_to_bid128("3", "[0000001b25f9406f]", "[2d8d1c08574412eb596a4ab82ac543ac]", "0x22")
+ self.binary64_to_bid128("4", "[0000001b25f9406f]", "[2d8d1c08574412eb596a4ab82ac543ad]", "0x22")
+ self.binary64_to_bid128("0", "[000fffffffffffff]", "[2d966db4616541768e278d2378566664]", "0x22")
+ self.binary64_to_bid128("1", "[000fffffffffffff]", "[2d966db4616541768e278d2378566663]", "0x22")
+ self.binary64_to_bid128("2", "[000fffffffffffff]", "[2d966db4616541768e278d2378566664]", "0x22")
+ self.binary64_to_bid128("3", "[000fffffffffffff]", "[2d966db4616541768e278d2378566663]", "0x22")
+ self.binary64_to_bid128("4", "[000fffffffffffff]", "[2d966db4616541768e278d2378566664]", "0x22")
+ self.binary64_to_bid128("0", "[0010000000000000]", "[2d966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("1", "[0010000000000000]", "[2d966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("2", "[0010000000000000]", "[2d966db4616541769502d339cc6dcfb5]", "0x20")
+ self.binary64_to_bid128("3", "[0010000000000000]", "[2d966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("4", "[0010000000000000]", "[2d966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("0", "[0020000000000000]", "[2d96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("1", "[0020000000000000]", "[2d96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("2", "[0020000000000000]", "[2d96db68c2ca82ed2a05a67398db9f69]", "0x20")
+ self.binary64_to_bid128("3", "[0020000000000000]", "[2d96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("4", "[0020000000000000]", "[2d96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("0", "[009b9d786bbb3260]", "[2d9be4b88f617bb5461f206b523c2755]", "0x20")
+ self.binary64_to_bid128("1", "[009b9d786bbb3260]", "[2d9be4b88f617bb5461f206b523c2754]", "0x20")
+ self.binary64_to_bid128("2", "[009b9d786bbb3260]", "[2d9be4b88f617bb5461f206b523c2755]", "0x20")
+ self.binary64_to_bid128("3", "[009b9d786bbb3260]", "[2d9be4b88f617bb5461f206b523c2754]", "0x20")
+ self.binary64_to_bid128("4", "[009b9d786bbb3260]", "[2d9be4b88f617bb5461f206b523c2755]", "0x20")
+ self.binary64_to_bid128("0", "[01cff7c46f31b4e0]", "[2da72630ac048f6287df2cb40b7f0401]", "0x20")
+ self.binary64_to_bid128("1", "[01cff7c46f31b4e0]", "[2da72630ac048f6287df2cb40b7f0401]", "0x20")
+ self.binary64_to_bid128("2", "[01cff7c46f31b4e0]", "[2da72630ac048f6287df2cb40b7f0402]", "0x20")
+ self.binary64_to_bid128("3", "[01cff7c46f31b4e0]", "[2da72630ac048f6287df2cb40b7f0401]", "0x20")
+ self.binary64_to_bid128("4", "[01cff7c46f31b4e0]", "[2da72630ac048f6287df2cb40b7f0401]", "0x20")
+ self.binary64_to_bid128("0", "[03499bfc2cbf4862]", "[2db58b6577ef0142338b55b7136e8112]", "0x20")
+ self.binary64_to_bid128("1", "[03499bfc2cbf4862]", "[2db58b6577ef0142338b55b7136e8111]", "0x20")
+ self.binary64_to_bid128("2", "[03499bfc2cbf4862]", "[2db58b6577ef0142338b55b7136e8112]", "0x20")
+ self.binary64_to_bid128("3", "[03499bfc2cbf4862]", "[2db58b6577ef0142338b55b7136e8111]", "0x20")
+ self.binary64_to_bid128("4", "[03499bfc2cbf4862]", "[2db58b6577ef0142338b55b7136e8112]", "0x20")
+ self.binary64_to_bid128("0", "[049ae6e18b0c607e]", "[2dc2571b17676bbc6c0c855ff733da6e]", "0x20")
+ self.binary64_to_bid128("1", "[049ae6e18b0c607e]", "[2dc2571b17676bbc6c0c855ff733da6e]", "0x20")
+ self.binary64_to_bid128("2", "[049ae6e18b0c607e]", "[2dc2571b17676bbc6c0c855ff733da6f]", "0x20")
+ self.binary64_to_bid128("3", "[049ae6e18b0c607e]", "[2dc2571b17676bbc6c0c855ff733da6e]", "0x20")
+ self.binary64_to_bid128("4", "[049ae6e18b0c607e]", "[2dc2571b17676bbc6c0c855ff733da6e]", "0x20")
+ self.binary64_to_bid128("0", "[05d95ea5a7d91a14]", "[2dce562295028e009424436504883b9a]", "0x20")
+ self.binary64_to_bid128("1", "[05d95ea5a7d91a14]", "[2dce562295028e009424436504883b9a]", "0x20")
+ self.binary64_to_bid128("2", "[05d95ea5a7d91a14]", "[2dce562295028e009424436504883b9b]", "0x20")
+ self.binary64_to_bid128("3", "[05d95ea5a7d91a14]", "[2dce562295028e009424436504883b9a]", "0x20")
+ self.binary64_to_bid128("4", "[05d95ea5a7d91a14]", "[2dce562295028e009424436504883b9a]", "0x20")
+ self.binary64_to_bid128("0", "[071b87df94ae71b8]", "[2dda620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("1", "[071b87df94ae71b8]", "[2dda620343153f6e408d69b76a34b2a6]", "0x20")
+ self.binary64_to_bid128("2", "[071b87df94ae71b8]", "[2dda620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("3", "[071b87df94ae71b8]", "[2dda620343153f6e408d69b76a34b2a6]", "0x20")
+ self.binary64_to_bid128("4", "[071b87df94ae71b8]", "[2dda620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("0", "[087477ad287a88d2]", "[2de7319ffd5c8970cdc58912ad3b7ad8]", "0x20")
+ self.binary64_to_bid128("1", "[087477ad287a88d2]", "[2de7319ffd5c8970cdc58912ad3b7ad8]", "0x20")
+ self.binary64_to_bid128("2", "[087477ad287a88d2]", "[2de7319ffd5c8970cdc58912ad3b7ad9]", "0x20")
+ self.binary64_to_bid128("3", "[087477ad287a88d2]", "[2de7319ffd5c8970cdc58912ad3b7ad8]", "0x20")
+ self.binary64_to_bid128("4", "[087477ad287a88d2]", "[2de7319ffd5c8970cdc58912ad3b7ad8]", "0x20")
+ self.binary64_to_bid128("0", "[0982f23afaf59ae0]", "[2df172d07fb9a57d11bcb56f59851316]", "0x20")
+ self.binary64_to_bid128("1", "[0982f23afaf59ae0]", "[2df172d07fb9a57d11bcb56f59851316]", "0x20")
+ self.binary64_to_bid128("2", "[0982f23afaf59ae0]", "[2df172d07fb9a57d11bcb56f59851317]", "0x20")
+ self.binary64_to_bid128("3", "[0982f23afaf59ae0]", "[2df172d07fb9a57d11bcb56f59851316]", "0x20")
+ self.binary64_to_bid128("4", "[0982f23afaf59ae0]", "[2df172d07fb9a57d11bcb56f59851316]", "0x20")
+ self.binary64_to_bid128("0", "[0b070a4a168a7edc]", "[2e004ba7cbf798d533fd76ba04752994]", "0x20")
+ self.binary64_to_bid128("1", "[0b070a4a168a7edc]", "[2e004ba7cbf798d533fd76ba04752993]", "0x20")
+ self.binary64_to_bid128("2", "[0b070a4a168a7edc]", "[2e004ba7cbf798d533fd76ba04752994]", "0x20")
+ self.binary64_to_bid128("3", "[0b070a4a168a7edc]", "[2e004ba7cbf798d533fd76ba04752993]", "0x20")
+ self.binary64_to_bid128("4", "[0b070a4a168a7edc]", "[2e004ba7cbf798d533fd76ba04752994]", "0x20")
+ self.binary64_to_bid128("0", "[0c29c2de11721560]", "[2e0addbf8c3b8f5c9e74ceffac74aaa9]", "0x20")
+ self.binary64_to_bid128("1", "[0c29c2de11721560]", "[2e0addbf8c3b8f5c9e74ceffac74aaa9]", "0x20")
+ self.binary64_to_bid128("2", "[0c29c2de11721560]", "[2e0addbf8c3b8f5c9e74ceffac74aaaa]", "0x20")
+ self.binary64_to_bid128("3", "[0c29c2de11721560]", "[2e0addbf8c3b8f5c9e74ceffac74aaa9]", "0x20")
+ self.binary64_to_bid128("4", "[0c29c2de11721560]", "[2e0addbf8c3b8f5c9e74ceffac74aaa9]", "0x20")
+ self.binary64_to_bid128("0", "[0db4a57c359f8391]", "[2e1a3ba220020c18509fdd34a79e113c]", "0x20")
+ self.binary64_to_bid128("1", "[0db4a57c359f8391]", "[2e1a3ba220020c18509fdd34a79e113b]", "0x20")
+ self.binary64_to_bid128("2", "[0db4a57c359f8391]", "[2e1a3ba220020c18509fdd34a79e113c]", "0x20")
+ self.binary64_to_bid128("3", "[0db4a57c359f8391]", "[2e1a3ba220020c18509fdd34a79e113b]", "0x20")
+ self.binary64_to_bid128("4", "[0db4a57c359f8391]", "[2e1a3ba220020c18509fdd34a79e113c]", "0x20")
+ self.binary64_to_bid128("0", "[0f0f23ed56d04b51]", "[2e26bc9fc60dcb5d07e934e25829bb8d]", "0x20")
+ self.binary64_to_bid128("1", "[0f0f23ed56d04b51]", "[2e26bc9fc60dcb5d07e934e25829bb8d]", "0x20")
+ self.binary64_to_bid128("2", "[0f0f23ed56d04b51]", "[2e26bc9fc60dcb5d07e934e25829bb8e]", "0x20")
+ self.binary64_to_bid128("3", "[0f0f23ed56d04b51]", "[2e26bc9fc60dcb5d07e934e25829bb8d]", "0x20")
+ self.binary64_to_bid128("4", "[0f0f23ed56d04b51]", "[2e26bc9fc60dcb5d07e934e25829bb8d]", "0x20")
+ self.binary64_to_bid128("0", "[103dd7184c004750]", "[2e325ec3b6ee1519cca1c6944fca9f12]", "0x20")
+ self.binary64_to_bid128("1", "[103dd7184c004750]", "[2e325ec3b6ee1519cca1c6944fca9f12]", "0x20")
+ self.binary64_to_bid128("2", "[103dd7184c004750]", "[2e325ec3b6ee1519cca1c6944fca9f13]", "0x20")
+ self.binary64_to_bid128("3", "[103dd7184c004750]", "[2e325ec3b6ee1519cca1c6944fca9f12]", "0x20")
+ self.binary64_to_bid128("4", "[103dd7184c004750]", "[2e325ec3b6ee1519cca1c6944fca9f12]", "0x20")
+ self.binary64_to_bid128("0", "[11791262f5b39828]", "[2e3e537d3361f1abc7ef20702adb10fd]", "0x20")
+ self.binary64_to_bid128("1", "[11791262f5b39828]", "[2e3e537d3361f1abc7ef20702adb10fd]", "0x20")
+ self.binary64_to_bid128("2", "[11791262f5b39828]", "[2e3e537d3361f1abc7ef20702adb10fe]", "0x20")
+ self.binary64_to_bid128("3", "[11791262f5b39828]", "[2e3e537d3361f1abc7ef20702adb10fd]", "0x20")
+ self.binary64_to_bid128("4", "[11791262f5b39828]", "[2e3e537d3361f1abc7ef20702adb10fd]", "0x20")
+ self.binary64_to_bid128("0", "[12ef99861133ceea]", "[2e4c58454cbb98a2b87598143715bc72]", "0x20")
+ self.binary64_to_bid128("1", "[12ef99861133ceea]", "[2e4c58454cbb98a2b87598143715bc72]", "0x20")
+ self.binary64_to_bid128("2", "[12ef99861133ceea]", "[2e4c58454cbb98a2b87598143715bc73]", "0x20")
+ self.binary64_to_bid128("3", "[12ef99861133ceea]", "[2e4c58454cbb98a2b87598143715bc72]", "0x20")
+ self.binary64_to_bid128("4", "[12ef99861133ceea]", "[2e4c58454cbb98a2b87598143715bc72]", "0x20")
+ self.binary64_to_bid128("0", "[1436c7da7c9210a7]", "[2e5885741c0ed9d29cffeae971748038]", "0x20")
+ self.binary64_to_bid128("1", "[1436c7da7c9210a7]", "[2e5885741c0ed9d29cffeae971748038]", "0x20")
+ self.binary64_to_bid128("2", "[1436c7da7c9210a7]", "[2e5885741c0ed9d29cffeae971748039]", "0x20")
+ self.binary64_to_bid128("3", "[1436c7da7c9210a7]", "[2e5885741c0ed9d29cffeae971748038]", "0x20")
+ self.binary64_to_bid128("4", "[1436c7da7c9210a7]", "[2e5885741c0ed9d29cffeae971748038]", "0x20")
+ self.binary64_to_bid128("0", "[15363a9a83b841a0]", "[2e625557803c414194a39bd94b95ba92]", "0x20")
+ self.binary64_to_bid128("1", "[15363a9a83b841a0]", "[2e625557803c414194a39bd94b95ba91]", "0x20")
+ self.binary64_to_bid128("2", "[15363a9a83b841a0]", "[2e625557803c414194a39bd94b95ba92]", "0x20")
+ self.binary64_to_bid128("3", "[15363a9a83b841a0]", "[2e625557803c414194a39bd94b95ba91]", "0x20")
+ self.binary64_to_bid128("4", "[15363a9a83b841a0]", "[2e625557803c414194a39bd94b95ba92]", "0x20")
+ self.binary64_to_bid128("0", "[16a219a7986d3008]", "[2e703a4b078fbae5bbd2caab44ef2bbe]", "0x20")
+ self.binary64_to_bid128("1", "[16a219a7986d3008]", "[2e703a4b078fbae5bbd2caab44ef2bbe]", "0x20")
+ self.binary64_to_bid128("2", "[16a219a7986d3008]", "[2e703a4b078fbae5bbd2caab44ef2bbf]", "0x20")
+ self.binary64_to_bid128("3", "[16a219a7986d3008]", "[2e703a4b078fbae5bbd2caab44ef2bbe]", "0x20")
+ self.binary64_to_bid128("4", "[16a219a7986d3008]", "[2e703a4b078fbae5bbd2caab44ef2bbe]", "0x20")
+ self.binary64_to_bid128("0", "[17eb33c4a0b18120]", "[2e7c5bdcc3628ec2432aee8f6038ef04]", "0x20")
+ self.binary64_to_bid128("1", "[17eb33c4a0b18120]", "[2e7c5bdcc3628ec2432aee8f6038ef04]", "0x20")
+ self.binary64_to_bid128("2", "[17eb33c4a0b18120]", "[2e7c5bdcc3628ec2432aee8f6038ef05]", "0x20")
+ self.binary64_to_bid128("3", "[17eb33c4a0b18120]", "[2e7c5bdcc3628ec2432aee8f6038ef04]", "0x20")
+ self.binary64_to_bid128("4", "[17eb33c4a0b18120]", "[2e7c5bdcc3628ec2432aee8f6038ef04]", "0x20")
+ self.binary64_to_bid128("0", "[196a7f6d494ba1d9]", "[2e8a9620d2d9332e9a0f942a5913074e]", "0x20")
+ self.binary64_to_bid128("1", "[196a7f6d494ba1d9]", "[2e8a9620d2d9332e9a0f942a5913074d]", "0x20")
+ self.binary64_to_bid128("2", "[196a7f6d494ba1d9]", "[2e8a9620d2d9332e9a0f942a5913074e]", "0x20")
+ self.binary64_to_bid128("3", "[196a7f6d494ba1d9]", "[2e8a9620d2d9332e9a0f942a5913074d]", "0x20")
+ self.binary64_to_bid128("4", "[196a7f6d494ba1d9]", "[2e8a9620d2d9332e9a0f942a5913074e]", "0x20")
+ self.binary64_to_bid128("0", "[1a766550944b44f0]", "[2e94a6506457aad1b409062fc8d7db63]", "0x20")
+ self.binary64_to_bid128("1", "[1a766550944b44f0]", "[2e94a6506457aad1b409062fc8d7db62]", "0x20")
+ self.binary64_to_bid128("2", "[1a766550944b44f0]", "[2e94a6506457aad1b409062fc8d7db63]", "0x20")
+ self.binary64_to_bid128("3", "[1a766550944b44f0]", "[2e94a6506457aad1b409062fc8d7db62]", "0x20")
+ self.binary64_to_bid128("4", "[1a766550944b44f0]", "[2e94a6506457aad1b409062fc8d7db63]", "0x20")
+ self.binary64_to_bid128("0", "[1b95e508daeb1600]", "[2e9faa3a343c377ddc7b6cc5a4a3b512]", "0x20")
+ self.binary64_to_bid128("1", "[1b95e508daeb1600]", "[2e9faa3a343c377ddc7b6cc5a4a3b512]", "0x20")
+ self.binary64_to_bid128("2", "[1b95e508daeb1600]", "[2e9faa3a343c377ddc7b6cc5a4a3b513]", "0x20")
+ self.binary64_to_bid128("3", "[1b95e508daeb1600]", "[2e9faa3a343c377ddc7b6cc5a4a3b512]", "0x20")
+ self.binary64_to_bid128("4", "[1b95e508daeb1600]", "[2e9faa3a343c377ddc7b6cc5a4a3b512]", "0x20")
+ self.binary64_to_bid128("0", "[1d4b7c5315e3c975]", "[2eb047d0caf05c02b6f1e242fd804d0c]", "0x20")
+ self.binary64_to_bid128("1", "[1d4b7c5315e3c975]", "[2eb047d0caf05c02b6f1e242fd804d0b]", "0x20")
+ self.binary64_to_bid128("2", "[1d4b7c5315e3c975]", "[2eb047d0caf05c02b6f1e242fd804d0c]", "0x20")
+ self.binary64_to_bid128("3", "[1d4b7c5315e3c975]", "[2eb047d0caf05c02b6f1e242fd804d0b]", "0x20")
+ self.binary64_to_bid128("4", "[1d4b7c5315e3c975]", "[2eb047d0caf05c02b6f1e242fd804d0c]", "0x20")
+ self.binary64_to_bid128("0", "[1e734f6803053fec]", "[2ebb0886c69dfd32d6d5fa2444ffac88]", "0x20")
+ self.binary64_to_bid128("1", "[1e734f6803053fec]", "[2ebb0886c69dfd32d6d5fa2444ffac87]", "0x20")
+ self.binary64_to_bid128("2", "[1e734f6803053fec]", "[2ebb0886c69dfd32d6d5fa2444ffac88]", "0x20")
+ self.binary64_to_bid128("3", "[1e734f6803053fec]", "[2ebb0886c69dfd32d6d5fa2444ffac87]", "0x20")
+ self.binary64_to_bid128("4", "[1e734f6803053fec]", "[2ebb0886c69dfd32d6d5fa2444ffac88]", "0x20")
+ self.binary64_to_bid128("0", "[1fc2b9096618f554]", "[2ec835c9aae8d72f68331853167d4d36]", "0x20")
+ self.binary64_to_bid128("1", "[1fc2b9096618f554]", "[2ec835c9aae8d72f68331853167d4d35]", "0x20")
+ self.binary64_to_bid128("2", "[1fc2b9096618f554]", "[2ec835c9aae8d72f68331853167d4d36]", "0x20")
+ self.binary64_to_bid128("3", "[1fc2b9096618f554]", "[2ec835c9aae8d72f68331853167d4d35]", "0x20")
+ self.binary64_to_bid128("4", "[1fc2b9096618f554]", "[2ec835c9aae8d72f68331853167d4d36]", "0x20")
+ self.binary64_to_bid128("0", "[2110135ac5982ab4]", "[2ed460da2fd6c66a81e16a34467c3f5c]", "0x20")
+ self.binary64_to_bid128("1", "[2110135ac5982ab4]", "[2ed460da2fd6c66a81e16a34467c3f5b]", "0x20")
+ self.binary64_to_bid128("2", "[2110135ac5982ab4]", "[2ed460da2fd6c66a81e16a34467c3f5c]", "0x20")
+ self.binary64_to_bid128("3", "[2110135ac5982ab4]", "[2ed460da2fd6c66a81e16a34467c3f5b]", "0x20")
+ self.binary64_to_bid128("4", "[2110135ac5982ab4]", "[2ed460da2fd6c66a81e16a34467c3f5c]", "0x20")
+ self.binary64_to_bid128("0", "[227c22666f31e535]", "[2ee2471859d19f267dba68417f0aadc8]", "0x20")
+ self.binary64_to_bid128("1", "[227c22666f31e535]", "[2ee2471859d19f267dba68417f0aadc8]", "0x20")
+ self.binary64_to_bid128("2", "[227c22666f31e535]", "[2ee2471859d19f267dba68417f0aadc9]", "0x20")
+ self.binary64_to_bid128("3", "[227c22666f31e535]", "[2ee2471859d19f267dba68417f0aadc8]", "0x20")
+ self.binary64_to_bid128("4", "[227c22666f31e535]", "[2ee2471859d19f267dba68417f0aadc8]", "0x20")
+ self.binary64_to_bid128("0", "[23cd3ba5b53c5629]", "[2eee9aeb5cf0aede8894fa3b979023bb]", "0x20")
+ self.binary64_to_bid128("1", "[23cd3ba5b53c5629]", "[2eee9aeb5cf0aede8894fa3b979023bb]", "0x20")
+ self.binary64_to_bid128("2", "[23cd3ba5b53c5629]", "[2eee9aeb5cf0aede8894fa3b979023bc]", "0x20")
+ self.binary64_to_bid128("3", "[23cd3ba5b53c5629]", "[2eee9aeb5cf0aede8894fa3b979023bb]", "0x20")
+ self.binary64_to_bid128("4", "[23cd3ba5b53c5629]", "[2eee9aeb5cf0aede8894fa3b979023bb]", "0x20")
+ self.binary64_to_bid128("0", "[24a26ae4d3a17d80]", "[2ef69fe9c7914007f14504d3d99c56a4]", "0x20")
+ self.binary64_to_bid128("1", "[24a26ae4d3a17d80]", "[2ef69fe9c7914007f14504d3d99c56a3]", "0x20")
+ self.binary64_to_bid128("2", "[24a26ae4d3a17d80]", "[2ef69fe9c7914007f14504d3d99c56a4]", "0x20")
+ self.binary64_to_bid128("3", "[24a26ae4d3a17d80]", "[2ef69fe9c7914007f14504d3d99c56a3]", "0x20")
+ self.binary64_to_bid128("4", "[24a26ae4d3a17d80]", "[2ef69fe9c7914007f14504d3d99c56a4]", "0x20")
+ self.binary64_to_bid128("0", "[263e3bbdd3bde178]", "[2f06581512efd9f5a72b5762a7e11bbf]", "0x20")
+ self.binary64_to_bid128("1", "[263e3bbdd3bde178]", "[2f06581512efd9f5a72b5762a7e11bbf]", "0x20")
+ self.binary64_to_bid128("2", "[263e3bbdd3bde178]", "[2f06581512efd9f5a72b5762a7e11bc0]", "0x20")
+ self.binary64_to_bid128("3", "[263e3bbdd3bde178]", "[2f06581512efd9f5a72b5762a7e11bbf]", "0x20")
+ self.binary64_to_bid128("4", "[263e3bbdd3bde178]", "[2f06581512efd9f5a72b5762a7e11bbf]", "0x20")
+ self.binary64_to_bid128("0", "[27adc1b74175dc8f]", "[2f1448b94f48fd5a2c3fe3b4e3c20d10]", "0x20")
+ self.binary64_to_bid128("1", "[27adc1b74175dc8f]", "[2f1448b94f48fd5a2c3fe3b4e3c20d10]", "0x20")
+ self.binary64_to_bid128("2", "[27adc1b74175dc8f]", "[2f1448b94f48fd5a2c3fe3b4e3c20d11]", "0x20")
+ self.binary64_to_bid128("3", "[27adc1b74175dc8f]", "[2f1448b94f48fd5a2c3fe3b4e3c20d10]", "0x20")
+ self.binary64_to_bid128("4", "[27adc1b74175dc8f]", "[2f1448b94f48fd5a2c3fe3b4e3c20d10]", "0x20")
+ self.binary64_to_bid128("0", "[28fcfe5efa367bff]", "[2f20949a1ef9f2e55919448ae36ed6da]", "0x20")
+ self.binary64_to_bid128("1", "[28fcfe5efa367bff]", "[2f20949a1ef9f2e55919448ae36ed6d9]", "0x20")
+ self.binary64_to_bid128("2", "[28fcfe5efa367bff]", "[2f20949a1ef9f2e55919448ae36ed6da]", "0x20")
+ self.binary64_to_bid128("3", "[28fcfe5efa367bff]", "[2f20949a1ef9f2e55919448ae36ed6d9]", "0x20")
+ self.binary64_to_bid128("4", "[28fcfe5efa367bff]", "[2f20949a1ef9f2e55919448ae36ed6da]", "0x20")
+ self.binary64_to_bid128("0", "[2a310facbf44b0ca]", "[2f2c5bb132d1bc8ab529ef43b73a0494]", "0x20")
+ self.binary64_to_bid128("1", "[2a310facbf44b0ca]", "[2f2c5bb132d1bc8ab529ef43b73a0493]", "0x20")
+ self.binary64_to_bid128("2", "[2a310facbf44b0ca]", "[2f2c5bb132d1bc8ab529ef43b73a0494]", "0x20")
+ self.binary64_to_bid128("3", "[2a310facbf44b0ca]", "[2f2c5bb132d1bc8ab529ef43b73a0493]", "0x20")
+ self.binary64_to_bid128("4", "[2a310facbf44b0ca]", "[2f2c5bb132d1bc8ab529ef43b73a0494]", "0x20")
+ self.binary64_to_bid128("0", "[2b61d3c47d2b23b8]", "[2f38323b3e4154473e81063356744903]", "0x20")
+ self.binary64_to_bid128("1", "[2b61d3c47d2b23b8]", "[2f38323b3e4154473e81063356744903]", "0x20")
+ self.binary64_to_bid128("2", "[2b61d3c47d2b23b8]", "[2f38323b3e4154473e81063356744904]", "0x20")
+ self.binary64_to_bid128("3", "[2b61d3c47d2b23b8]", "[2f38323b3e4154473e81063356744903]", "0x20")
+ self.binary64_to_bid128("4", "[2b61d3c47d2b23b8]", "[2f38323b3e4154473e81063356744903]", "0x20")
+ self.binary64_to_bid128("0", "[2cd203d0f60b96bf]", "[2f45a9ced9a7c042cb79dc5be1b46678]", "0x20")
+ self.binary64_to_bid128("1", "[2cd203d0f60b96bf]", "[2f45a9ced9a7c042cb79dc5be1b46677]", "0x20")
+ self.binary64_to_bid128("2", "[2cd203d0f60b96bf]", "[2f45a9ced9a7c042cb79dc5be1b46678]", "0x20")
+ self.binary64_to_bid128("3", "[2cd203d0f60b96bf]", "[2f45a9ced9a7c042cb79dc5be1b46677]", "0x20")
+ self.binary64_to_bid128("4", "[2cd203d0f60b96bf]", "[2f45a9ced9a7c042cb79dc5be1b46678]", "0x20")
+ self.binary64_to_bid128("0", "[2e14a8876520bbc4]", "[2f52333366ae108e24284f4c764b2ab3]", "0x20")
+ self.binary64_to_bid128("1", "[2e14a8876520bbc4]", "[2f52333366ae108e24284f4c764b2ab2]", "0x20")
+ self.binary64_to_bid128("2", "[2e14a8876520bbc4]", "[2f52333366ae108e24284f4c764b2ab3]", "0x20")
+ self.binary64_to_bid128("3", "[2e14a8876520bbc4]", "[2f52333366ae108e24284f4c764b2ab2]", "0x20")
+ self.binary64_to_bid128("4", "[2e14a8876520bbc4]", "[2f52333366ae108e24284f4c764b2ab3]", "0x20")
+ self.binary64_to_bid128("0", "[2f5a3bcfe86a07a4]", "[2f5e442d679f6cc7a42e7e1e968925dc]", "0x20")
+ self.binary64_to_bid128("1", "[2f5a3bcfe86a07a4]", "[2f5e442d679f6cc7a42e7e1e968925dc]", "0x20")
+ self.binary64_to_bid128("2", "[2f5a3bcfe86a07a4]", "[2f5e442d679f6cc7a42e7e1e968925dd]", "0x20")
+ self.binary64_to_bid128("3", "[2f5a3bcfe86a07a4]", "[2f5e442d679f6cc7a42e7e1e968925dc]", "0x20")
+ self.binary64_to_bid128("4", "[2f5a3bcfe86a07a4]", "[2f5e442d679f6cc7a42e7e1e968925dc]", "0x20")
+ self.binary64_to_bid128("0", "[3046bd1d6dda4700]", "[2f66c1a425bdb4df6c806b16a5a7690c]", "0x20")
+ self.binary64_to_bid128("1", "[3046bd1d6dda4700]", "[2f66c1a425bdb4df6c806b16a5a7690c]", "0x20")
+ self.binary64_to_bid128("2", "[3046bd1d6dda4700]", "[2f66c1a425bdb4df6c806b16a5a7690d]", "0x20")
+ self.binary64_to_bid128("3", "[3046bd1d6dda4700]", "[2f66c1a425bdb4df6c806b16a5a7690c]", "0x20")
+ self.binary64_to_bid128("4", "[3046bd1d6dda4700]", "[2f66c1a425bdb4df6c806b16a5a7690c]", "0x20")
+ self.binary64_to_bid128("0", "[320f1d59ae3042de]", "[2f78472097071fbbbb488048807fc8f2]", "0x20")
+ self.binary64_to_bid128("1", "[320f1d59ae3042de]", "[2f78472097071fbbbb488048807fc8f1]", "0x20")
+ self.binary64_to_bid128("2", "[320f1d59ae3042de]", "[2f78472097071fbbbb488048807fc8f2]", "0x20")
+ self.binary64_to_bid128("3", "[320f1d59ae3042de]", "[2f78472097071fbbbb488048807fc8f1]", "0x20")
+ self.binary64_to_bid128("4", "[320f1d59ae3042de]", "[2f78472097071fbbbb488048807fc8f2]", "0x20")
+ self.binary64_to_bid128("0", "[334f7b516945060c]", "[2f844b76552c7bb63e8d99e307926fc9]", "0x20")
+ self.binary64_to_bid128("1", "[334f7b516945060c]", "[2f844b76552c7bb63e8d99e307926fc8]", "0x20")
+ self.binary64_to_bid128("2", "[334f7b516945060c]", "[2f844b76552c7bb63e8d99e307926fc9]", "0x20")
+ self.binary64_to_bid128("3", "[334f7b516945060c]", "[2f844b76552c7bb63e8d99e307926fc8]", "0x20")
+ self.binary64_to_bid128("4", "[334f7b516945060c]", "[2f844b76552c7bb63e8d99e307926fc9]", "0x20")
+ self.binary64_to_bid128("0", "[34420ef63fc10b00]", "[2f8d1bae91157291ec9e0e9a9361fd5e]", "0x20")
+ self.binary64_to_bid128("1", "[34420ef63fc10b00]", "[2f8d1bae91157291ec9e0e9a9361fd5e]", "0x20")
+ self.binary64_to_bid128("2", "[34420ef63fc10b00]", "[2f8d1bae91157291ec9e0e9a9361fd5f]", "0x20")
+ self.binary64_to_bid128("3", "[34420ef63fc10b00]", "[2f8d1bae91157291ec9e0e9a9361fd5e]", "0x20")
+ self.binary64_to_bid128("4", "[34420ef63fc10b00]", "[2f8d1bae91157291ec9e0e9a9361fd5e]", "0x20")
+ self.binary64_to_bid128("0", "[35d1c14ee2e09100]", "[2f9c5d96c4e4833eca88631c3a8d9c54]", "0x20")
+ self.binary64_to_bid128("1", "[35d1c14ee2e09100]", "[2f9c5d96c4e4833eca88631c3a8d9c54]", "0x20")
+ self.binary64_to_bid128("2", "[35d1c14ee2e09100]", "[2f9c5d96c4e4833eca88631c3a8d9c55]", "0x20")
+ self.binary64_to_bid128("3", "[35d1c14ee2e09100]", "[2f9c5d96c4e4833eca88631c3a8d9c54]", "0x20")
+ self.binary64_to_bid128("4", "[35d1c14ee2e09100]", "[2f9c5d96c4e4833eca88631c3a8d9c54]", "0x20")
+ self.binary64_to_bid128("0", "[373199122f0bff1c]", "[2fa98510c66c8c3abf0fdf3348fa615c]", "0x20")
+ self.binary64_to_bid128("1", "[373199122f0bff1c]", "[2fa98510c66c8c3abf0fdf3348fa615c]", "0x20")
+ self.binary64_to_bid128("2", "[373199122f0bff1c]", "[2fa98510c66c8c3abf0fdf3348fa615d]", "0x20")
+ self.binary64_to_bid128("3", "[373199122f0bff1c]", "[2fa98510c66c8c3abf0fdf3348fa615c]", "0x20")
+ self.binary64_to_bid128("4", "[373199122f0bff1c]", "[2fa98510c66c8c3abf0fdf3348fa615c]", "0x20")
+ self.binary64_to_bid128("0", "[3887b806973bde9a]", "[2fb66df8fe7a2518388d312389956baf]", "0x20")
+ self.binary64_to_bid128("1", "[3887b806973bde9a]", "[2fb66df8fe7a2518388d312389956bae]", "0x20")
+ self.binary64_to_bid128("2", "[3887b806973bde9a]", "[2fb66df8fe7a2518388d312389956baf]", "0x20")
+ self.binary64_to_bid128("3", "[3887b806973bde9a]", "[2fb66df8fe7a2518388d312389956bae]", "0x20")
+ self.binary64_to_bid128("4", "[3887b806973bde9a]", "[2fb66df8fe7a2518388d312389956baf]", "0x20")
+ self.binary64_to_bid128("0", "[39b2e0930303d5dc]", "[2fc1cae15f7b20c513cad15c3fcce0b5]", "0x20")
+ self.binary64_to_bid128("1", "[39b2e0930303d5dc]", "[2fc1cae15f7b20c513cad15c3fcce0b5]", "0x20")
+ self.binary64_to_bid128("2", "[39b2e0930303d5dc]", "[2fc1cae15f7b20c513cad15c3fcce0b6]", "0x20")
+ self.binary64_to_bid128("3", "[39b2e0930303d5dc]", "[2fc1cae15f7b20c513cad15c3fcce0b5]", "0x20")
+ self.binary64_to_bid128("4", "[39b2e0930303d5dc]", "[2fc1cae15f7b20c513cad15c3fcce0b5]", "0x20")
+ self.binary64_to_bid128("0", "[3b01d15f165f729c]", "[2fce5ad5637b2e3af9d7c6aa3b1eaa05]", "0x20")
+ self.binary64_to_bid128("1", "[3b01d15f165f729c]", "[2fce5ad5637b2e3af9d7c6aa3b1eaa04]", "0x20")
+ self.binary64_to_bid128("2", "[3b01d15f165f729c]", "[2fce5ad5637b2e3af9d7c6aa3b1eaa05]", "0x20")
+ self.binary64_to_bid128("3", "[3b01d15f165f729c]", "[2fce5ad5637b2e3af9d7c6aa3b1eaa04]", "0x20")
+ self.binary64_to_bid128("4", "[3b01d15f165f729c]", "[2fce5ad5637b2e3af9d7c6aa3b1eaa05]", "0x20")
+ self.binary64_to_bid128("0", "[3c48a25d9bdb5944]", "[2fda83aedcf882813b7bf4ac54c0390c]", "0x20")
+ self.binary64_to_bid128("1", "[3c48a25d9bdb5944]", "[2fda83aedcf882813b7bf4ac54c0390b]", "0x20")
+ self.binary64_to_bid128("2", "[3c48a25d9bdb5944]", "[2fda83aedcf882813b7bf4ac54c0390c]", "0x20")
+ self.binary64_to_bid128("3", "[3c48a25d9bdb5944]", "[2fda83aedcf882813b7bf4ac54c0390b]", "0x20")
+ self.binary64_to_bid128("4", "[3c48a25d9bdb5944]", "[2fda83aedcf882813b7bf4ac54c0390c]", "0x20")
+ self.binary64_to_bid128("0", "[3dbffc48766618cf]", "[2fe88f6d87f6ff98502d3535b6a0bf7a]", "0x20")
+ self.binary64_to_bid128("1", "[3dbffc48766618cf]", "[2fe88f6d87f6ff98502d3535b6a0bf79]", "0x20")
+ self.binary64_to_bid128("2", "[3dbffc48766618cf]", "[2fe88f6d87f6ff98502d3535b6a0bf7a]", "0x20")
+ self.binary64_to_bid128("3", "[3dbffc48766618cf]", "[2fe88f6d87f6ff98502d3535b6a0bf79]", "0x20")
+ self.binary64_to_bid128("4", "[3dbffc48766618cf]", "[2fe88f6d87f6ff98502d3535b6a0bf7a]", "0x20")
+ self.binary64_to_bid128("0", "[3ef4f8b57899adb6]", "[2ff4629b8c3c852ae332b6dd34cd6d21]", "0x20")
+ self.binary64_to_bid128("1", "[3ef4f8b57899adb6]", "[2ff4629b8c3c852ae332b6dd34cd6d21]", "0x20")
+ self.binary64_to_bid128("2", "[3ef4f8b57899adb6]", "[2ff4629b8c3c852ae332b6dd34cd6d22]", "0x20")
+ self.binary64_to_bid128("3", "[3ef4f8b57899adb6]", "[2ff4629b8c3c852ae332b6dd34cd6d21]", "0x20")
+ self.binary64_to_bid128("4", "[3ef4f8b57899adb6]", "[2ff4629b8c3c852ae332b6dd34cd6d21]", "0x20")
+ self.binary64_to_bid128("0", "[3faa000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("1", "[3faa000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("2", "[3faa000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("3", "[3faa000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("4", "[3faa000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("0", "[3ff0000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("1", "[3ff0000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("2", "[3ff0000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("3", "[3ff0000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("4", "[3ff0000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("0", "[3ff8000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("1", "[3ff8000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("2", "[3ff8000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("3", "[3ff8000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("4", "[3ff8000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("0", "[4033fffffffff2cc]", "[3000629b8c891ae558d2ef91139f10b6]", "0x20")
+ self.binary64_to_bid128("1", "[4033fffffffff2cc]", "[3000629b8c891ae558d2ef91139f10b5]", "0x20")
+ self.binary64_to_bid128("2", "[4033fffffffff2cc]", "[3000629b8c891ae558d2ef91139f10b6]", "0x20")
+ self.binary64_to_bid128("3", "[4033fffffffff2cc]", "[3000629b8c891ae558d2ef91139f10b5]", "0x20")
+ self.binary64_to_bid128("4", "[4033fffffffff2cc]", "[3000629b8c891ae558d2ef91139f10b6]", "0x20")
+ self.binary64_to_bid128("0", "[4050000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("1", "[4050000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("2", "[4050000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("3", "[4050000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("4", "[4050000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("0", "[408f380000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("1", "[408f380000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("2", "[408f380000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("3", "[408f380000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("4", "[408f380000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("0", "[408f400000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("1", "[408f400000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("2", "[408f400000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("3", "[408f400000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("4", "[408f400000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("0", "[419fffffffffffff]", "[300e422ca8b0a00a403e9aba7affadee]", "0x20")
+ self.binary64_to_bid128("1", "[419fffffffffffff]", "[300e422ca8b0a00a403e9aba7affaded]", "0x20")
+ self.binary64_to_bid128("2", "[419fffffffffffff]", "[300e422ca8b0a00a403e9aba7affadee]", "0x20")
+ self.binary64_to_bid128("3", "[419fffffffffffff]", "[300e422ca8b0a00a403e9aba7affaded]", "0x20")
+ self.binary64_to_bid128("4", "[419fffffffffffff]", "[300e422ca8b0a00a403e9aba7affadee]", "0x20")
+ self.binary64_to_bid128("0", "[42f0000000000000]", "[30400000000000000001000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[42f0000000000000]", "[30400000000000000001000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[42f0000000000000]", "[30400000000000000001000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[42f0000000000000]", "[30400000000000000001000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[42f0000000000000]", "[30400000000000000001000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[4425af1d78b58c3e]", "[304000000000000ad78ebc5ac61f0000]", "0x00")
+ self.binary64_to_bid128("1", "[4425af1d78b58c3e]", "[304000000000000ad78ebc5ac61f0000]", "0x00")
+ self.binary64_to_bid128("2", "[4425af1d78b58c3e]", "[304000000000000ad78ebc5ac61f0000]", "0x00")
+ self.binary64_to_bid128("3", "[4425af1d78b58c3e]", "[304000000000000ad78ebc5ac61f0000]", "0x00")
+ self.binary64_to_bid128("4", "[4425af1d78b58c3e]", "[304000000000000ad78ebc5ac61f0000]", "0x00")
+ self.binary64_to_bid128("0", "[4564adf4b7320334]", "[3040000000a56fa5b99019a000000000]", "0x00")
+ self.binary64_to_bid128("1", "[4564adf4b7320334]", "[3040000000a56fa5b99019a000000000]", "0x00")
+ self.binary64_to_bid128("2", "[4564adf4b7320334]", "[3040000000a56fa5b99019a000000000]", "0x00")
+ self.binary64_to_bid128("3", "[4564adf4b7320334]", "[3040000000a56fa5b99019a000000000]", "0x00")
+ self.binary64_to_bid128("4", "[4564adf4b7320334]", "[3040000000a56fa5b99019a000000000]", "0x00")
+ self.binary64_to_bid128("0", "[46cffffffffffffd]", "[30403ffffffffffffa00000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[46cffffffffffffd]", "[30403ffffffffffffa00000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[46cffffffffffffd]", "[30403ffffffffffffa00000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[46cffffffffffffd]", "[30403ffffffffffffa00000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[46cffffffffffffd]", "[30403ffffffffffffa00000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[481fffffffffd9a1]", "[304c8637bd05aecb790fb65668c26139]", "0x20")
+ self.binary64_to_bid128("1", "[481fffffffffd9a1]", "[304c8637bd05aecb790fb65668c26138]", "0x20")
+ self.binary64_to_bid128("2", "[481fffffffffd9a1]", "[304c8637bd05aecb790fb65668c26139]", "0x20")
+ self.binary64_to_bid128("3", "[481fffffffffd9a1]", "[304c8637bd05aecb790fb65668c26138]", "0x20")
+ self.binary64_to_bid128("4", "[481fffffffffd9a1]", "[304c8637bd05aecb790fb65668c26139]", "0x20")
+ self.binary64_to_bid128("0", "[49566bb7ed327aca]", "[3058629b8c7b9f33b4cb0a0a8141b8f2]", "0x20")
+ self.binary64_to_bid128("1", "[49566bb7ed327aca]", "[3058629b8c7b9f33b4cb0a0a8141b8f2]", "0x20")
+ self.binary64_to_bid128("2", "[49566bb7ed327aca]", "[3058629b8c7b9f33b4cb0a0a8141b8f3]", "0x20")
+ self.binary64_to_bid128("3", "[49566bb7ed327aca]", "[3058629b8c7b9f33b4cb0a0a8141b8f2]", "0x20")
+ self.binary64_to_bid128("4", "[49566bb7ed327aca]", "[3058629b8c7b9f33b4cb0a0a8141b8f2]", "0x20")
+ self.binary64_to_bid128("0", "[4a955faff2512470]", "[30646291b42acd20c722042f63c6e99b]", "0x20")
+ self.binary64_to_bid128("1", "[4a955faff2512470]", "[30646291b42acd20c722042f63c6e99a]", "0x20")
+ self.binary64_to_bid128("2", "[4a955faff2512470]", "[30646291b42acd20c722042f63c6e99b]", "0x20")
+ self.binary64_to_bid128("3", "[4a955faff2512470]", "[30646291b42acd20c722042f63c6e99a]", "0x20")
+ self.binary64_to_bid128("4", "[4a955faff2512470]", "[30646291b42acd20c722042f63c6e99b]", "0x20")
+ self.binary64_to_bid128("0", "[4bfc4a605433d8ac]", "[307236b8cb087443ffa8e63ac84322ce]", "0x20")
+ self.binary64_to_bid128("1", "[4bfc4a605433d8ac]", "[307236b8cb087443ffa8e63ac84322ce]", "0x20")
+ self.binary64_to_bid128("2", "[4bfc4a605433d8ac]", "[307236b8cb087443ffa8e63ac84322cf]", "0x20")
+ self.binary64_to_bid128("3", "[4bfc4a605433d8ac]", "[307236b8cb087443ffa8e63ac84322ce]", "0x20")
+ self.binary64_to_bid128("4", "[4bfc4a605433d8ac]", "[307236b8cb087443ffa8e63ac84322ce]", "0x20")
+ self.binary64_to_bid128("0", "[4d3391c84bd27074]", "[307d8cea75741c9e1b8ee425c4324b7e]", "0x20")
+ self.binary64_to_bid128("1", "[4d3391c84bd27074]", "[307d8cea75741c9e1b8ee425c4324b7d]", "0x20")
+ self.binary64_to_bid128("2", "[4d3391c84bd27074]", "[307d8cea75741c9e1b8ee425c4324b7e]", "0x20")
+ self.binary64_to_bid128("3", "[4d3391c84bd27074]", "[307d8cea75741c9e1b8ee425c4324b7d]", "0x20")
+ self.binary64_to_bid128("4", "[4d3391c84bd27074]", "[307d8cea75741c9e1b8ee425c4324b7e]", "0x20")
+ self.binary64_to_bid128("0", "[4e865cf15c697222]", "[308a5f1f36b1cb008810ad02d13f2a7c]", "0x20")
+ self.binary64_to_bid128("1", "[4e865cf15c697222]", "[308a5f1f36b1cb008810ad02d13f2a7b]", "0x20")
+ self.binary64_to_bid128("2", "[4e865cf15c697222]", "[308a5f1f36b1cb008810ad02d13f2a7c]", "0x20")
+ self.binary64_to_bid128("3", "[4e865cf15c697222]", "[308a5f1f36b1cb008810ad02d13f2a7b]", "0x20")
+ self.binary64_to_bid128("4", "[4e865cf15c697222]", "[308a5f1f36b1cb008810ad02d13f2a7c]", "0x20")
+ self.binary64_to_bid128("0", "[4fc14cea585f1f4c]", "[30964d299f70f04eb6794be9e946d3f8]", "0x20")
+ self.binary64_to_bid128("1", "[4fc14cea585f1f4c]", "[30964d299f70f04eb6794be9e946d3f7]", "0x20")
+ self.binary64_to_bid128("2", "[4fc14cea585f1f4c]", "[30964d299f70f04eb6794be9e946d3f8]", "0x20")
+ self.binary64_to_bid128("3", "[4fc14cea585f1f4c]", "[30964d299f70f04eb6794be9e946d3f7]", "0x20")
+ self.binary64_to_bid128("4", "[4fc14cea585f1f4c]", "[30964d299f70f04eb6794be9e946d3f8]", "0x20")
+ self.binary64_to_bid128("0", "[512e12be5ba2752e]", "[30a4384235b13b827ce9d3db819267ea]", "0x20")
+ self.binary64_to_bid128("1", "[512e12be5ba2752e]", "[30a4384235b13b827ce9d3db819267e9]", "0x20")
+ self.binary64_to_bid128("2", "[512e12be5ba2752e]", "[30a4384235b13b827ce9d3db819267ea]", "0x20")
+ self.binary64_to_bid128("3", "[512e12be5ba2752e]", "[30a4384235b13b827ce9d3db819267e9]", "0x20")
+ self.binary64_to_bid128("4", "[512e12be5ba2752e]", "[30a4384235b13b827ce9d3db819267ea]", "0x20")
+ self.binary64_to_bid128("0", "[527e2362ba9aca8f]", "[30b0763ce9b6dfae599047b4ef0166f8]", "0x20")
+ self.binary64_to_bid128("1", "[527e2362ba9aca8f]", "[30b0763ce9b6dfae599047b4ef0166f8]", "0x20")
+ self.binary64_to_bid128("2", "[527e2362ba9aca8f]", "[30b0763ce9b6dfae599047b4ef0166f9]", "0x20")
+ self.binary64_to_bid128("3", "[527e2362ba9aca8f]", "[30b0763ce9b6dfae599047b4ef0166f8]", "0x20")
+ self.binary64_to_bid128("4", "[527e2362ba9aca8f]", "[30b0763ce9b6dfae599047b4ef0166f8]", "0x20")
+ self.binary64_to_bid128("0", "[53b52edb2fee4db2]", "[30bc572456236349470345882d099df0]", "0x20")
+ self.binary64_to_bid128("1", "[53b52edb2fee4db2]", "[30bc572456236349470345882d099df0]", "0x20")
+ self.binary64_to_bid128("2", "[53b52edb2fee4db2]", "[30bc572456236349470345882d099df1]", "0x20")
+ self.binary64_to_bid128("3", "[53b52edb2fee4db2]", "[30bc572456236349470345882d099df0]", "0x20")
+ self.binary64_to_bid128("4", "[53b52edb2fee4db2]", "[30bc572456236349470345882d099df0]", "0x20")
+ self.binary64_to_bid128("0", "[54f4f653df5ee330]", "[30c85a6c2522a848e8afa884ce0700c4]", "0x20")
+ self.binary64_to_bid128("1", "[54f4f653df5ee330]", "[30c85a6c2522a848e8afa884ce0700c3]", "0x20")
+ self.binary64_to_bid128("2", "[54f4f653df5ee330]", "[30c85a6c2522a848e8afa884ce0700c4]", "0x20")
+ self.binary64_to_bid128("3", "[54f4f653df5ee330]", "[30c85a6c2522a848e8afa884ce0700c3]", "0x20")
+ self.binary64_to_bid128("4", "[54f4f653df5ee330]", "[30c85a6c2522a848e8afa884ce0700c4]", "0x20")
+ self.binary64_to_bid128("0", "[565d405d6ab16cd7]", "[30d634ec55abd7814dfcd37492ed939c]", "0x20")
+ self.binary64_to_bid128("1", "[565d405d6ab16cd7]", "[30d634ec55abd7814dfcd37492ed939c]", "0x20")
+ self.binary64_to_bid128("2", "[565d405d6ab16cd7]", "[30d634ec55abd7814dfcd37492ed939d]", "0x20")
+ self.binary64_to_bid128("3", "[565d405d6ab16cd7]", "[30d634ec55abd7814dfcd37492ed939c]", "0x20")
+ self.binary64_to_bid128("4", "[565d405d6ab16cd7]", "[30d634ec55abd7814dfcd37492ed939c]", "0x20")
+ self.binary64_to_bid128("0", "[57872679a53c907c]", "[30e0db98b1b5c21149bb43ecdefa7dbe]", "0x20")
+ self.binary64_to_bid128("1", "[57872679a53c907c]", "[30e0db98b1b5c21149bb43ecdefa7dbe]", "0x20")
+ self.binary64_to_bid128("2", "[57872679a53c907c]", "[30e0db98b1b5c21149bb43ecdefa7dbf]", "0x20")
+ self.binary64_to_bid128("3", "[57872679a53c907c]", "[30e0db98b1b5c21149bb43ecdefa7dbe]", "0x20")
+ self.binary64_to_bid128("4", "[57872679a53c907c]", "[30e0db98b1b5c21149bb43ecdefa7dbe]", "0x20")
+ self.binary64_to_bid128("0", "[58a7a41936b4cfc0]", "[30ec3ac93efcade1e886123d75216291]", "0x20")
+ self.binary64_to_bid128("1", "[58a7a41936b4cfc0]", "[30ec3ac93efcade1e886123d75216291]", "0x20")
+ self.binary64_to_bid128("2", "[58a7a41936b4cfc0]", "[30ec3ac93efcade1e886123d75216292]", "0x20")
+ self.binary64_to_bid128("3", "[58a7a41936b4cfc0]", "[30ec3ac93efcade1e886123d75216291]", "0x20")
+ self.binary64_to_bid128("4", "[58a7a41936b4cfc0]", "[30ec3ac93efcade1e886123d75216291]", "0x20")
+ self.binary64_to_bid128("0", "[5a27106b69495de0]", "[30fa603859d56fa4a0a2b49c4a950040]", "0x20")
+ self.binary64_to_bid128("1", "[5a27106b69495de0]", "[30fa603859d56fa4a0a2b49c4a950040]", "0x20")
+ self.binary64_to_bid128("2", "[5a27106b69495de0]", "[30fa603859d56fa4a0a2b49c4a950041]", "0x20")
+ self.binary64_to_bid128("3", "[5a27106b69495de0]", "[30fa603859d56fa4a0a2b49c4a950040]", "0x20")
+ self.binary64_to_bid128("4", "[5a27106b69495de0]", "[30fa603859d56fa4a0a2b49c4a950040]", "0x20")
+ self.binary64_to_bid128("0", "[5b8ff2ff6a8f506d]", "[310837e79d6d84c4ca84a20c00735188]", "0x20")
+ self.binary64_to_bid128("1", "[5b8ff2ff6a8f506d]", "[310837e79d6d84c4ca84a20c00735188]", "0x20")
+ self.binary64_to_bid128("2", "[5b8ff2ff6a8f506d]", "[310837e79d6d84c4ca84a20c00735189]", "0x20")
+ self.binary64_to_bid128("3", "[5b8ff2ff6a8f506d]", "[310837e79d6d84c4ca84a20c00735188]", "0x20")
+ self.binary64_to_bid128("4", "[5b8ff2ff6a8f506d]", "[310837e79d6d84c4ca84a20c00735188]", "0x20")
+ self.binary64_to_bid128("0", "[5cd074ff0250322f]", "[31143c640052f51054eac86153ca56da]", "0x20")
+ self.binary64_to_bid128("1", "[5cd074ff0250322f]", "[31143c640052f51054eac86153ca56d9]", "0x20")
+ self.binary64_to_bid128("2", "[5cd074ff0250322f]", "[31143c640052f51054eac86153ca56da]", "0x20")
+ self.binary64_to_bid128("3", "[5cd074ff0250322f]", "[31143c640052f51054eac86153ca56d9]", "0x20")
+ self.binary64_to_bid128("4", "[5cd074ff0250322f]", "[31143c640052f51054eac86153ca56da]", "0x20")
+ self.binary64_to_bid128("0", "[5e07ee7c8477bae4]", "[311fcc6d11de5e41dd6dad3f0697b59e]", "0x20")
+ self.binary64_to_bid128("1", "[5e07ee7c8477bae4]", "[311fcc6d11de5e41dd6dad3f0697b59e]", "0x20")
+ self.binary64_to_bid128("2", "[5e07ee7c8477bae4]", "[311fcc6d11de5e41dd6dad3f0697b59f]", "0x20")
+ self.binary64_to_bid128("3", "[5e07ee7c8477bae4]", "[311fcc6d11de5e41dd6dad3f0697b59e]", "0x20")
+ self.binary64_to_bid128("4", "[5e07ee7c8477bae4]", "[311fcc6d11de5e41dd6dad3f0697b59e]", "0x20")
+ self.binary64_to_bid128("0", "[5f4864c587c62c18]", "[312bec1cf16bc9bc1fb757f0d32cd714]", "0x20")
+ self.binary64_to_bid128("1", "[5f4864c587c62c18]", "[312bec1cf16bc9bc1fb757f0d32cd714]", "0x20")
+ self.binary64_to_bid128("2", "[5f4864c587c62c18]", "[312bec1cf16bc9bc1fb757f0d32cd715]", "0x20")
+ self.binary64_to_bid128("3", "[5f4864c587c62c18]", "[312bec1cf16bc9bc1fb757f0d32cd714]", "0x20")
+ self.binary64_to_bid128("4", "[5f4864c587c62c18]", "[312bec1cf16bc9bc1fb757f0d32cd714]", "0x20")
+ self.binary64_to_bid128("0", "[60b987fa9cdadabd]", "[3139b0109614fddfd6b136d08b1c42dc]", "0x20")
+ self.binary64_to_bid128("1", "[60b987fa9cdadabd]", "[3139b0109614fddfd6b136d08b1c42db]", "0x20")
+ self.binary64_to_bid128("2", "[60b987fa9cdadabd]", "[3139b0109614fddfd6b136d08b1c42dc]", "0x20")
+ self.binary64_to_bid128("3", "[60b987fa9cdadabd]", "[3139b0109614fddfd6b136d08b1c42db]", "0x20")
+ self.binary64_to_bid128("4", "[60b987fa9cdadabd]", "[3139b0109614fddfd6b136d08b1c42dc]", "0x20")
+ self.binary64_to_bid128("0", "[6207145d1b2ef762]", "[314651e8e26a14a0b675483903c0835f]", "0x20")
+ self.binary64_to_bid128("1", "[6207145d1b2ef762]", "[314651e8e26a14a0b675483903c0835e]", "0x20")
+ self.binary64_to_bid128("2", "[6207145d1b2ef762]", "[314651e8e26a14a0b675483903c0835f]", "0x20")
+ self.binary64_to_bid128("3", "[6207145d1b2ef762]", "[314651e8e26a14a0b675483903c0835e]", "0x20")
+ self.binary64_to_bid128("4", "[6207145d1b2ef762]", "[314651e8e26a14a0b675483903c0835f]", "0x20")
+ self.binary64_to_bid128("0", "[633b9029530f5318]", "[31523349732cb6875e143521de01db5a]", "0x20")
+ self.binary64_to_bid128("1", "[633b9029530f5318]", "[31523349732cb6875e143521de01db59]", "0x20")
+ self.binary64_to_bid128("2", "[633b9029530f5318]", "[31523349732cb6875e143521de01db5a]", "0x20")
+ self.binary64_to_bid128("3", "[633b9029530f5318]", "[31523349732cb6875e143521de01db59]", "0x20")
+ self.binary64_to_bid128("4", "[633b9029530f5318]", "[31523349732cb6875e143521de01db5a]", "0x20")
+ self.binary64_to_bid128("0", "[6488a104c3d2d748]", "[315e601b5a78021e56559f9be73a2d7f]", "0x20")
+ self.binary64_to_bid128("1", "[6488a104c3d2d748]", "[315e601b5a78021e56559f9be73a2d7e]", "0x20")
+ self.binary64_to_bid128("2", "[6488a104c3d2d748]", "[315e601b5a78021e56559f9be73a2d7f]", "0x20")
+ self.binary64_to_bid128("3", "[6488a104c3d2d748]", "[315e601b5a78021e56559f9be73a2d7e]", "0x20")
+ self.binary64_to_bid128("4", "[6488a104c3d2d748]", "[315e601b5a78021e56559f9be73a2d7f]", "0x20")
+ self.binary64_to_bid128("0", "[65d35210f01ec4ba]", "[316a9e1c042d65c912e7d8fb052ed918]", "0x20")
+ self.binary64_to_bid128("1", "[65d35210f01ec4ba]", "[316a9e1c042d65c912e7d8fb052ed917]", "0x20")
+ self.binary64_to_bid128("2", "[65d35210f01ec4ba]", "[316a9e1c042d65c912e7d8fb052ed918]", "0x20")
+ self.binary64_to_bid128("3", "[65d35210f01ec4ba]", "[316a9e1c042d65c912e7d8fb052ed917]", "0x20")
+ self.binary64_to_bid128("4", "[65d35210f01ec4ba]", "[316a9e1c042d65c912e7d8fb052ed918]", "0x20")
+ self.binary64_to_bid128("0", "[673febae050ce0c0]", "[31786d9076ccde6798e839b7fe75da27]", "0x20")
+ self.binary64_to_bid128("1", "[673febae050ce0c0]", "[31786d9076ccde6798e839b7fe75da26]", "0x20")
+ self.binary64_to_bid128("2", "[673febae050ce0c0]", "[31786d9076ccde6798e839b7fe75da27]", "0x20")
+ self.binary64_to_bid128("3", "[673febae050ce0c0]", "[31786d9076ccde6798e839b7fe75da26]", "0x20")
+ self.binary64_to_bid128("4", "[673febae050ce0c0]", "[31786d9076ccde6798e839b7fe75da27]", "0x20")
+ self.binary64_to_bid128("0", "[68744c1c1a4378ae]", "[3184490d7ade8edc986916d871a138d9]", "0x20")
+ self.binary64_to_bid128("1", "[68744c1c1a4378ae]", "[3184490d7ade8edc986916d871a138d9]", "0x20")
+ self.binary64_to_bid128("2", "[68744c1c1a4378ae]", "[3184490d7ade8edc986916d871a138da]", "0x20")
+ self.binary64_to_bid128("3", "[68744c1c1a4378ae]", "[3184490d7ade8edc986916d871a138d9]", "0x20")
+ self.binary64_to_bid128("4", "[68744c1c1a4378ae]", "[3184490d7ade8edc986916d871a138d9]", "0x20")
+ self.binary64_to_bid128("0", "[69737ecae1217440]", "[318dcbd7255ed0b0aa04498a584cc4a6]", "0x20")
+ self.binary64_to_bid128("1", "[69737ecae1217440]", "[318dcbd7255ed0b0aa04498a584cc4a6]", "0x20")
+ self.binary64_to_bid128("2", "[69737ecae1217440]", "[318dcbd7255ed0b0aa04498a584cc4a7]", "0x20")
+ self.binary64_to_bid128("3", "[69737ecae1217440]", "[318dcbd7255ed0b0aa04498a584cc4a6]", "0x20")
+ self.binary64_to_bid128("4", "[69737ecae1217440]", "[318dcbd7255ed0b0aa04498a584cc4a6]", "0x20")
+ self.binary64_to_bid128("0", "[6b0bf616670f8094]", "[319cdd4d347dcf91d9f1d998c33f65fc]", "0x20")
+ self.binary64_to_bid128("1", "[6b0bf616670f8094]", "[319cdd4d347dcf91d9f1d998c33f65fc]", "0x20")
+ self.binary64_to_bid128("2", "[6b0bf616670f8094]", "[319cdd4d347dcf91d9f1d998c33f65fd]", "0x20")
+ self.binary64_to_bid128("3", "[6b0bf616670f8094]", "[319cdd4d347dcf91d9f1d998c33f65fc]", "0x20")
+ self.binary64_to_bid128("4", "[6b0bf616670f8094]", "[319cdd4d347dcf91d9f1d998c33f65fc]", "0x20")
+ self.binary64_to_bid128("0", "[6c5e2c90ee980d12]", "[31aa32154871bb2a8696b49a2a74ed25]", "0x20")
+ self.binary64_to_bid128("1", "[6c5e2c90ee980d12]", "[31aa32154871bb2a8696b49a2a74ed25]", "0x20")
+ self.binary64_to_bid128("2", "[6c5e2c90ee980d12]", "[31aa32154871bb2a8696b49a2a74ed26]", "0x20")
+ self.binary64_to_bid128("3", "[6c5e2c90ee980d12]", "[31aa32154871bb2a8696b49a2a74ed25]", "0x20")
+ self.binary64_to_bid128("4", "[6c5e2c90ee980d12]", "[31aa32154871bb2a8696b49a2a74ed25]", "0x20")
+ self.binary64_to_bid128("0", "[6dab3d4ec3c77a5e]", "[31b65ed12634bf1770c6aa3d7ffe5275]", "0x20")
+ self.binary64_to_bid128("1", "[6dab3d4ec3c77a5e]", "[31b65ed12634bf1770c6aa3d7ffe5274]", "0x20")
+ self.binary64_to_bid128("2", "[6dab3d4ec3c77a5e]", "[31b65ed12634bf1770c6aa3d7ffe5275]", "0x20")
+ self.binary64_to_bid128("3", "[6dab3d4ec3c77a5e]", "[31b65ed12634bf1770c6aa3d7ffe5274]", "0x20")
+ self.binary64_to_bid128("4", "[6dab3d4ec3c77a5e]", "[31b65ed12634bf1770c6aa3d7ffe5275]", "0x20")
+ self.binary64_to_bid128("0", "[6ec4e14656750390]", "[31c0be86ff50af859b2aef3f6769b4c0]", "0x20")
+ self.binary64_to_bid128("1", "[6ec4e14656750390]", "[31c0be86ff50af859b2aef3f6769b4bf]", "0x20")
+ self.binary64_to_bid128("2", "[6ec4e14656750390]", "[31c0be86ff50af859b2aef3f6769b4c0]", "0x20")
+ self.binary64_to_bid128("3", "[6ec4e14656750390]", "[31c0be86ff50af859b2aef3f6769b4bf]", "0x20")
+ self.binary64_to_bid128("4", "[6ec4e14656750390]", "[31c0be86ff50af859b2aef3f6769b4c0]", "0x20")
+ self.binary64_to_bid128("0", "[6ffaeb6368c6a9c0]", "[31cc80c8dacdd112593ff5875d087ceb]", "0x20")
+ self.binary64_to_bid128("1", "[6ffaeb6368c6a9c0]", "[31cc80c8dacdd112593ff5875d087cea]", "0x20")
+ self.binary64_to_bid128("2", "[6ffaeb6368c6a9c0]", "[31cc80c8dacdd112593ff5875d087ceb]", "0x20")
+ self.binary64_to_bid128("3", "[6ffaeb6368c6a9c0]", "[31cc80c8dacdd112593ff5875d087cea]", "0x20")
+ self.binary64_to_bid128("4", "[6ffaeb6368c6a9c0]", "[31cc80c8dacdd112593ff5875d087ceb]", "0x20")
+ self.binary64_to_bid128("0", "[719cd58c89b283b6]", "[31dc5c92b34f20af034898811e313439]", "0x20")
+ self.binary64_to_bid128("1", "[719cd58c89b283b6]", "[31dc5c92b34f20af034898811e313439]", "0x20")
+ self.binary64_to_bid128("2", "[719cd58c89b283b6]", "[31dc5c92b34f20af034898811e31343a]", "0x20")
+ self.binary64_to_bid128("3", "[719cd58c89b283b6]", "[31dc5c92b34f20af034898811e313439]", "0x20")
+ self.binary64_to_bid128("4", "[719cd58c89b283b6]", "[31dc5c92b34f20af034898811e313439]", "0x20")
+ self.binary64_to_bid128("0", "[72cb356d9dcb8d64]", "[31e7c9fd1dced71ceb0b2a4dcbd75107]", "0x20")
+ self.binary64_to_bid128("1", "[72cb356d9dcb8d64]", "[31e7c9fd1dced71ceb0b2a4dcbd75107]", "0x20")
+ self.binary64_to_bid128("2", "[72cb356d9dcb8d64]", "[31e7c9fd1dced71ceb0b2a4dcbd75108]", "0x20")
+ self.binary64_to_bid128("3", "[72cb356d9dcb8d64]", "[31e7c9fd1dced71ceb0b2a4dcbd75107]", "0x20")
+ self.binary64_to_bid128("4", "[72cb356d9dcb8d64]", "[31e7c9fd1dced71ceb0b2a4dcbd75107]", "0x20")
+ self.binary64_to_bid128("0", "[7411b95a8121afac]", "[31f43e90efe87245035d47be4ebce340]", "0x20")
+ self.binary64_to_bid128("1", "[7411b95a8121afac]", "[31f43e90efe87245035d47be4ebce340]", "0x20")
+ self.binary64_to_bid128("2", "[7411b95a8121afac]", "[31f43e90efe87245035d47be4ebce341]", "0x20")
+ self.binary64_to_bid128("3", "[7411b95a8121afac]", "[31f43e90efe87245035d47be4ebce340]", "0x20")
+ self.binary64_to_bid128("4", "[7411b95a8121afac]", "[31f43e90efe87245035d47be4ebce340]", "0x20")
+ self.binary64_to_bid128("0", "[754350de9a903650]", "[31ff657cf6ffee9823c575555320b50b]", "0x20")
+ self.binary64_to_bid128("1", "[754350de9a903650]", "[31ff657cf6ffee9823c575555320b50a]", "0x20")
+ self.binary64_to_bid128("2", "[754350de9a903650]", "[31ff657cf6ffee9823c575555320b50b]", "0x20")
+ self.binary64_to_bid128("3", "[754350de9a903650]", "[31ff657cf6ffee9823c575555320b50a]", "0x20")
+ self.binary64_to_bid128("4", "[754350de9a903650]", "[31ff657cf6ffee9823c575555320b50b]", "0x20")
+ self.binary64_to_bid128("0", "[76b07c78823b280c]", "[320cfff3925fd54f72cd8da18e8247e6]", "0x20")
+ self.binary64_to_bid128("1", "[76b07c78823b280c]", "[320cfff3925fd54f72cd8da18e8247e6]", "0x20")
+ self.binary64_to_bid128("2", "[76b07c78823b280c]", "[320cfff3925fd54f72cd8da18e8247e7]", "0x20")
+ self.binary64_to_bid128("3", "[76b07c78823b280c]", "[320cfff3925fd54f72cd8da18e8247e6]", "0x20")
+ self.binary64_to_bid128("4", "[76b07c78823b280c]", "[320cfff3925fd54f72cd8da18e8247e6]", "0x20")
+ self.binary64_to_bid128("0", "[780755bdc94a32e2]", "[321a4bf9b431db528b44112cfc3f57d7]", "0x20")
+ self.binary64_to_bid128("1", "[780755bdc94a32e2]", "[321a4bf9b431db528b44112cfc3f57d7]", "0x20")
+ self.binary64_to_bid128("2", "[780755bdc94a32e2]", "[321a4bf9b431db528b44112cfc3f57d8]", "0x20")
+ self.binary64_to_bid128("3", "[780755bdc94a32e2]", "[321a4bf9b431db528b44112cfc3f57d7]", "0x20")
+ self.binary64_to_bid128("4", "[780755bdc94a32e2]", "[321a4bf9b431db528b44112cfc3f57d7]", "0x20")
+ self.binary64_to_bid128("0", "[79470f8cf57d91a8]", "[32264ebadc2282eb2ac75c0df226a178]", "0x20")
+ self.binary64_to_bid128("1", "[79470f8cf57d91a8]", "[32264ebadc2282eb2ac75c0df226a177]", "0x20")
+ self.binary64_to_bid128("2", "[79470f8cf57d91a8]", "[32264ebadc2282eb2ac75c0df226a178]", "0x20")
+ self.binary64_to_bid128("3", "[79470f8cf57d91a8]", "[32264ebadc2282eb2ac75c0df226a177]", "0x20")
+ self.binary64_to_bid128("4", "[79470f8cf57d91a8]", "[32264ebadc2282eb2ac75c0df226a178]", "0x20")
+ self.binary64_to_bid128("0", "[7a7c8f532787bab0]", "[3232331ec543f612f8e9ae0dd58fe0fd]", "0x20")
+ self.binary64_to_bid128("1", "[7a7c8f532787bab0]", "[3232331ec543f612f8e9ae0dd58fe0fc]", "0x20")
+ self.binary64_to_bid128("2", "[7a7c8f532787bab0]", "[3232331ec543f612f8e9ae0dd58fe0fd]", "0x20")
+ self.binary64_to_bid128("3", "[7a7c8f532787bab0]", "[3232331ec543f612f8e9ae0dd58fe0fc]", "0x20")
+ self.binary64_to_bid128("4", "[7a7c8f532787bab0]", "[3232331ec543f612f8e9ae0dd58fe0fd]", "0x20")
+ self.binary64_to_bid128("0", "[7bfa1309677b6e6d]", "[32404e4d2e24cee6bdb378db626a7932]", "0x20")
+ self.binary64_to_bid128("1", "[7bfa1309677b6e6d]", "[32404e4d2e24cee6bdb378db626a7932]", "0x20")
+ self.binary64_to_bid128("2", "[7bfa1309677b6e6d]", "[32404e4d2e24cee6bdb378db626a7933]", "0x20")
+ self.binary64_to_bid128("3", "[7bfa1309677b6e6d]", "[32404e4d2e24cee6bdb378db626a7932]", "0x20")
+ self.binary64_to_bid128("4", "[7bfa1309677b6e6d]", "[32404e4d2e24cee6bdb378db626a7932]", "0x20")
+ self.binary64_to_bid128("0", "[7d39b10c40701d20]", "[324c50e656f22cd661f0c9399508b243]", "0x20")
+ self.binary64_to_bid128("1", "[7d39b10c40701d20]", "[324c50e656f22cd661f0c9399508b243]", "0x20")
+ self.binary64_to_bid128("2", "[7d39b10c40701d20]", "[324c50e656f22cd661f0c9399508b244]", "0x20")
+ self.binary64_to_bid128("3", "[7d39b10c40701d20]", "[324c50e656f22cd661f0c9399508b243]", "0x20")
+ self.binary64_to_bid128("4", "[7d39b10c40701d20]", "[324c50e656f22cd661f0c9399508b243]", "0x20")
+ self.binary64_to_bid128("0", "[7e5b57e08c4dfc20]", "[3256e1b5333fa3ab8595e8cfb9ee8779]", "0x20")
+ self.binary64_to_bid128("1", "[7e5b57e08c4dfc20]", "[3256e1b5333fa3ab8595e8cfb9ee8778]", "0x20")
+ self.binary64_to_bid128("2", "[7e5b57e08c4dfc20]", "[3256e1b5333fa3ab8595e8cfb9ee8779]", "0x20")
+ self.binary64_to_bid128("3", "[7e5b57e08c4dfc20]", "[3256e1b5333fa3ab8595e8cfb9ee8778]", "0x20")
+ self.binary64_to_bid128("4", "[7e5b57e08c4dfc20]", "[3256e1b5333fa3ab8595e8cfb9ee8779]", "0x20")
+ self.binary64_to_bid128("0", "[7fefffffffffffff]", "[326658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("1", "[7fefffffffffffff]", "[326658a213cc7a4ffae03c4825156fb3]", "0x20")
+ self.binary64_to_bid128("2", "[7fefffffffffffff]", "[326658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("3", "[7fefffffffffffff]", "[326658a213cc7a4ffae03c4825156fb3]", "0x20")
+ self.binary64_to_bid128("4", "[7fefffffffffffff]", "[326658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("0", "[7ff0000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[7ff0000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[7ff0000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[7ff0000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[7ff0000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[7ff6100000000000]", "[7c003080000000000000000000000000]", "0x01")
+ self.binary64_to_bid128("0", "[7ffe100000000000]", "[7c003080000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[8000000000000001]", "[ad76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("1", "[8000000000000001]", "[ad76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("2", "[8000000000000001]", "[ad76f397da03af06aa833fd25715f6e5]", "0x22")
+ self.binary64_to_bid128("3", "[8000000000000001]", "[ad76f397da03af06aa833fd25715f6e5]", "0x22")
+ self.binary64_to_bid128("4", "[8000000000000001]", "[ad76f397da03af06aa833fd25715f6e6]", "0x22")
+ self.binary64_to_bid128("0", "[800000000035abf1]", "[ad8455ae9c300997c812e73a9c0d75a8]", "0x22")
+ self.binary64_to_bid128("1", "[800000000035abf1]", "[ad8455ae9c300997c812e73a9c0d75a8]", "0x22")
+ self.binary64_to_bid128("2", "[800000000035abf1]", "[ad8455ae9c300997c812e73a9c0d75a7]", "0x22")
+ self.binary64_to_bid128("3", "[800000000035abf1]", "[ad8455ae9c300997c812e73a9c0d75a7]", "0x22")
+ self.binary64_to_bid128("4", "[800000000035abf1]", "[ad8455ae9c300997c812e73a9c0d75a8]", "0x22")
+ self.binary64_to_bid128("0", "[8000001b25f9406f]", "[ad8d1c08574412eb596a4ab82ac543ad]", "0x22")
+ self.binary64_to_bid128("1", "[8000001b25f9406f]", "[ad8d1c08574412eb596a4ab82ac543ad]", "0x22")
+ self.binary64_to_bid128("2", "[8000001b25f9406f]", "[ad8d1c08574412eb596a4ab82ac543ac]", "0x22")
+ self.binary64_to_bid128("3", "[8000001b25f9406f]", "[ad8d1c08574412eb596a4ab82ac543ac]", "0x22")
+ self.binary64_to_bid128("4", "[8000001b25f9406f]", "[ad8d1c08574412eb596a4ab82ac543ad]", "0x22")
+ self.binary64_to_bid128("0", "[800fffffffffffff]", "[ad966db4616541768e278d2378566664]", "0x22")
+ self.binary64_to_bid128("1", "[800fffffffffffff]", "[ad966db4616541768e278d2378566664]", "0x22")
+ self.binary64_to_bid128("2", "[800fffffffffffff]", "[ad966db4616541768e278d2378566663]", "0x22")
+ self.binary64_to_bid128("3", "[800fffffffffffff]", "[ad966db4616541768e278d2378566663]", "0x22")
+ self.binary64_to_bid128("4", "[800fffffffffffff]", "[ad966db4616541768e278d2378566664]", "0x22")
+ self.binary64_to_bid128("0", "[8010000000000000]", "[ad966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("1", "[8010000000000000]", "[ad966db4616541769502d339cc6dcfb5]", "0x20")
+ self.binary64_to_bid128("2", "[8010000000000000]", "[ad966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("3", "[8010000000000000]", "[ad966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("4", "[8010000000000000]", "[ad966db4616541769502d339cc6dcfb4]", "0x20")
+ self.binary64_to_bid128("0", "[8020000000000000]", "[ad96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("1", "[8020000000000000]", "[ad96db68c2ca82ed2a05a67398db9f69]", "0x20")
+ self.binary64_to_bid128("2", "[8020000000000000]", "[ad96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("3", "[8020000000000000]", "[ad96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("4", "[8020000000000000]", "[ad96db68c2ca82ed2a05a67398db9f68]", "0x20")
+ self.binary64_to_bid128("0", "[809b9d786bbb3260]", "[ad9be4b88f617bb5461f206b523c2755]", "0x20")
+ self.binary64_to_bid128("1", "[809b9d786bbb3260]", "[ad9be4b88f617bb5461f206b523c2755]", "0x20")
+ self.binary64_to_bid128("2", "[809b9d786bbb3260]", "[ad9be4b88f617bb5461f206b523c2754]", "0x20")
+ self.binary64_to_bid128("3", "[809b9d786bbb3260]", "[ad9be4b88f617bb5461f206b523c2754]", "0x20")
+ self.binary64_to_bid128("4", "[809b9d786bbb3260]", "[ad9be4b88f617bb5461f206b523c2755]", "0x20")
+ self.binary64_to_bid128("0", "[81cff7c46f31b4e0]", "[ada72630ac048f6287df2cb40b7f0401]", "0x20")
+ self.binary64_to_bid128("1", "[81cff7c46f31b4e0]", "[ada72630ac048f6287df2cb40b7f0402]", "0x20")
+ self.binary64_to_bid128("2", "[81cff7c46f31b4e0]", "[ada72630ac048f6287df2cb40b7f0401]", "0x20")
+ self.binary64_to_bid128("3", "[81cff7c46f31b4e0]", "[ada72630ac048f6287df2cb40b7f0401]", "0x20")
+ self.binary64_to_bid128("4", "[81cff7c46f31b4e0]", "[ada72630ac048f6287df2cb40b7f0401]", "0x20")
+ self.binary64_to_bid128("0", "[83499bfc2cbf4862]", "[adb58b6577ef0142338b55b7136e8112]", "0x20")
+ self.binary64_to_bid128("1", "[83499bfc2cbf4862]", "[adb58b6577ef0142338b55b7136e8112]", "0x20")
+ self.binary64_to_bid128("2", "[83499bfc2cbf4862]", "[adb58b6577ef0142338b55b7136e8111]", "0x20")
+ self.binary64_to_bid128("3", "[83499bfc2cbf4862]", "[adb58b6577ef0142338b55b7136e8111]", "0x20")
+ self.binary64_to_bid128("4", "[83499bfc2cbf4862]", "[adb58b6577ef0142338b55b7136e8112]", "0x20")
+ self.binary64_to_bid128("0", "[849ae6e18b0c607e]", "[adc2571b17676bbc6c0c855ff733da6e]", "0x20")
+ self.binary64_to_bid128("1", "[849ae6e18b0c607e]", "[adc2571b17676bbc6c0c855ff733da6f]", "0x20")
+ self.binary64_to_bid128("2", "[849ae6e18b0c607e]", "[adc2571b17676bbc6c0c855ff733da6e]", "0x20")
+ self.binary64_to_bid128("3", "[849ae6e18b0c607e]", "[adc2571b17676bbc6c0c855ff733da6e]", "0x20")
+ self.binary64_to_bid128("4", "[849ae6e18b0c607e]", "[adc2571b17676bbc6c0c855ff733da6e]", "0x20")
+ self.binary64_to_bid128("0", "[85d95ea5a7d91a14]", "[adce562295028e009424436504883b9a]", "0x20")
+ self.binary64_to_bid128("1", "[85d95ea5a7d91a14]", "[adce562295028e009424436504883b9b]", "0x20")
+ self.binary64_to_bid128("2", "[85d95ea5a7d91a14]", "[adce562295028e009424436504883b9a]", "0x20")
+ self.binary64_to_bid128("3", "[85d95ea5a7d91a14]", "[adce562295028e009424436504883b9a]", "0x20")
+ self.binary64_to_bid128("4", "[85d95ea5a7d91a14]", "[adce562295028e009424436504883b9a]", "0x20")
+ self.binary64_to_bid128("0", "[871b87df94ae71b8]", "[adda620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("1", "[871b87df94ae71b8]", "[adda620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("2", "[871b87df94ae71b8]", "[adda620343153f6e408d69b76a34b2a6]", "0x20")
+ self.binary64_to_bid128("3", "[871b87df94ae71b8]", "[adda620343153f6e408d69b76a34b2a6]", "0x20")
+ self.binary64_to_bid128("4", "[871b87df94ae71b8]", "[adda620343153f6e408d69b76a34b2a7]", "0x20")
+ self.binary64_to_bid128("0", "[887477ad287a88d2]", "[ade7319ffd5c8970cdc58912ad3b7ad8]", "0x20")
+ self.binary64_to_bid128("1", "[887477ad287a88d2]", "[ade7319ffd5c8970cdc58912ad3b7ad9]", "0x20")
+ self.binary64_to_bid128("2", "[887477ad287a88d2]", "[ade7319ffd5c8970cdc58912ad3b7ad8]", "0x20")
+ self.binary64_to_bid128("3", "[887477ad287a88d2]", "[ade7319ffd5c8970cdc58912ad3b7ad8]", "0x20")
+ self.binary64_to_bid128("4", "[887477ad287a88d2]", "[ade7319ffd5c8970cdc58912ad3b7ad8]", "0x20")
+ self.binary64_to_bid128("0", "[8982f23afaf59ae0]", "[adf172d07fb9a57d11bcb56f59851316]", "0x20")
+ self.binary64_to_bid128("1", "[8982f23afaf59ae0]", "[adf172d07fb9a57d11bcb56f59851317]", "0x20")
+ self.binary64_to_bid128("2", "[8982f23afaf59ae0]", "[adf172d07fb9a57d11bcb56f59851316]", "0x20")
+ self.binary64_to_bid128("3", "[8982f23afaf59ae0]", "[adf172d07fb9a57d11bcb56f59851316]", "0x20")
+ self.binary64_to_bid128("4", "[8982f23afaf59ae0]", "[adf172d07fb9a57d11bcb56f59851316]", "0x20")
+ self.binary64_to_bid128("0", "[8b070a4a168a7edc]", "[ae004ba7cbf798d533fd76ba04752994]", "0x20")
+ self.binary64_to_bid128("1", "[8b070a4a168a7edc]", "[ae004ba7cbf798d533fd76ba04752994]", "0x20")
+ self.binary64_to_bid128("2", "[8b070a4a168a7edc]", "[ae004ba7cbf798d533fd76ba04752993]", "0x20")
+ self.binary64_to_bid128("3", "[8b070a4a168a7edc]", "[ae004ba7cbf798d533fd76ba04752993]", "0x20")
+ self.binary64_to_bid128("4", "[8b070a4a168a7edc]", "[ae004ba7cbf798d533fd76ba04752994]", "0x20")
+ self.binary64_to_bid128("0", "[8c29c2de11721560]", "[ae0addbf8c3b8f5c9e74ceffac74aaa9]", "0x20")
+ self.binary64_to_bid128("1", "[8c29c2de11721560]", "[ae0addbf8c3b8f5c9e74ceffac74aaaa]", "0x20")
+ self.binary64_to_bid128("2", "[8c29c2de11721560]", "[ae0addbf8c3b8f5c9e74ceffac74aaa9]", "0x20")
+ self.binary64_to_bid128("3", "[8c29c2de11721560]", "[ae0addbf8c3b8f5c9e74ceffac74aaa9]", "0x20")
+ self.binary64_to_bid128("4", "[8c29c2de11721560]", "[ae0addbf8c3b8f5c9e74ceffac74aaa9]", "0x20")
+ self.binary64_to_bid128("0", "[8db4a57c359f8391]", "[ae1a3ba220020c18509fdd34a79e113c]", "0x20")
+ self.binary64_to_bid128("1", "[8db4a57c359f8391]", "[ae1a3ba220020c18509fdd34a79e113c]", "0x20")
+ self.binary64_to_bid128("2", "[8db4a57c359f8391]", "[ae1a3ba220020c18509fdd34a79e113b]", "0x20")
+ self.binary64_to_bid128("3", "[8db4a57c359f8391]", "[ae1a3ba220020c18509fdd34a79e113b]", "0x20")
+ self.binary64_to_bid128("4", "[8db4a57c359f8391]", "[ae1a3ba220020c18509fdd34a79e113c]", "0x20")
+ self.binary64_to_bid128("0", "[8f0f23ed56d04b51]", "[ae26bc9fc60dcb5d07e934e25829bb8d]", "0x20")
+ self.binary64_to_bid128("1", "[8f0f23ed56d04b51]", "[ae26bc9fc60dcb5d07e934e25829bb8e]", "0x20")
+ self.binary64_to_bid128("2", "[8f0f23ed56d04b51]", "[ae26bc9fc60dcb5d07e934e25829bb8d]", "0x20")
+ self.binary64_to_bid128("3", "[8f0f23ed56d04b51]", "[ae26bc9fc60dcb5d07e934e25829bb8d]", "0x20")
+ self.binary64_to_bid128("4", "[8f0f23ed56d04b51]", "[ae26bc9fc60dcb5d07e934e25829bb8d]", "0x20")
+ self.binary64_to_bid128("0", "[903dd7184c004750]", "[ae325ec3b6ee1519cca1c6944fca9f12]", "0x20")
+ self.binary64_to_bid128("1", "[903dd7184c004750]", "[ae325ec3b6ee1519cca1c6944fca9f13]", "0x20")
+ self.binary64_to_bid128("2", "[903dd7184c004750]", "[ae325ec3b6ee1519cca1c6944fca9f12]", "0x20")
+ self.binary64_to_bid128("3", "[903dd7184c004750]", "[ae325ec3b6ee1519cca1c6944fca9f12]", "0x20")
+ self.binary64_to_bid128("4", "[903dd7184c004750]", "[ae325ec3b6ee1519cca1c6944fca9f12]", "0x20")
+ self.binary64_to_bid128("0", "[91791262f5b39828]", "[ae3e537d3361f1abc7ef20702adb10fd]", "0x20")
+ self.binary64_to_bid128("1", "[91791262f5b39828]", "[ae3e537d3361f1abc7ef20702adb10fe]", "0x20")
+ self.binary64_to_bid128("2", "[91791262f5b39828]", "[ae3e537d3361f1abc7ef20702adb10fd]", "0x20")
+ self.binary64_to_bid128("3", "[91791262f5b39828]", "[ae3e537d3361f1abc7ef20702adb10fd]", "0x20")
+ self.binary64_to_bid128("4", "[91791262f5b39828]", "[ae3e537d3361f1abc7ef20702adb10fd]", "0x20")
+ self.binary64_to_bid128("0", "[92ef99861133ceea]", "[ae4c58454cbb98a2b87598143715bc72]", "0x20")
+ self.binary64_to_bid128("1", "[92ef99861133ceea]", "[ae4c58454cbb98a2b87598143715bc73]", "0x20")
+ self.binary64_to_bid128("2", "[92ef99861133ceea]", "[ae4c58454cbb98a2b87598143715bc72]", "0x20")
+ self.binary64_to_bid128("3", "[92ef99861133ceea]", "[ae4c58454cbb98a2b87598143715bc72]", "0x20")
+ self.binary64_to_bid128("4", "[92ef99861133ceea]", "[ae4c58454cbb98a2b87598143715bc72]", "0x20")
+ self.binary64_to_bid128("0", "[9436c7da7c9210a7]", "[ae5885741c0ed9d29cffeae971748038]", "0x20")
+ self.binary64_to_bid128("1", "[9436c7da7c9210a7]", "[ae5885741c0ed9d29cffeae971748039]", "0x20")
+ self.binary64_to_bid128("2", "[9436c7da7c9210a7]", "[ae5885741c0ed9d29cffeae971748038]", "0x20")
+ self.binary64_to_bid128("3", "[9436c7da7c9210a7]", "[ae5885741c0ed9d29cffeae971748038]", "0x20")
+ self.binary64_to_bid128("4", "[9436c7da7c9210a7]", "[ae5885741c0ed9d29cffeae971748038]", "0x20")
+ self.binary64_to_bid128("0", "[95363a9a83b841a0]", "[ae625557803c414194a39bd94b95ba92]", "0x20")
+ self.binary64_to_bid128("1", "[95363a9a83b841a0]", "[ae625557803c414194a39bd94b95ba92]", "0x20")
+ self.binary64_to_bid128("2", "[95363a9a83b841a0]", "[ae625557803c414194a39bd94b95ba91]", "0x20")
+ self.binary64_to_bid128("3", "[95363a9a83b841a0]", "[ae625557803c414194a39bd94b95ba91]", "0x20")
+ self.binary64_to_bid128("4", "[95363a9a83b841a0]", "[ae625557803c414194a39bd94b95ba92]", "0x20")
+ self.binary64_to_bid128("0", "[96a219a7986d3008]", "[ae703a4b078fbae5bbd2caab44ef2bbe]", "0x20")
+ self.binary64_to_bid128("1", "[96a219a7986d3008]", "[ae703a4b078fbae5bbd2caab44ef2bbf]", "0x20")
+ self.binary64_to_bid128("2", "[96a219a7986d3008]", "[ae703a4b078fbae5bbd2caab44ef2bbe]", "0x20")
+ self.binary64_to_bid128("3", "[96a219a7986d3008]", "[ae703a4b078fbae5bbd2caab44ef2bbe]", "0x20")
+ self.binary64_to_bid128("4", "[96a219a7986d3008]", "[ae703a4b078fbae5bbd2caab44ef2bbe]", "0x20")
+ self.binary64_to_bid128("0", "[97eb33c4a0b18120]", "[ae7c5bdcc3628ec2432aee8f6038ef04]", "0x20")
+ self.binary64_to_bid128("1", "[97eb33c4a0b18120]", "[ae7c5bdcc3628ec2432aee8f6038ef05]", "0x20")
+ self.binary64_to_bid128("2", "[97eb33c4a0b18120]", "[ae7c5bdcc3628ec2432aee8f6038ef04]", "0x20")
+ self.binary64_to_bid128("3", "[97eb33c4a0b18120]", "[ae7c5bdcc3628ec2432aee8f6038ef04]", "0x20")
+ self.binary64_to_bid128("4", "[97eb33c4a0b18120]", "[ae7c5bdcc3628ec2432aee8f6038ef04]", "0x20")
+ self.binary64_to_bid128("0", "[996a7f6d494ba1d9]", "[ae8a9620d2d9332e9a0f942a5913074e]", "0x20")
+ self.binary64_to_bid128("1", "[996a7f6d494ba1d9]", "[ae8a9620d2d9332e9a0f942a5913074e]", "0x20")
+ self.binary64_to_bid128("2", "[996a7f6d494ba1d9]", "[ae8a9620d2d9332e9a0f942a5913074d]", "0x20")
+ self.binary64_to_bid128("3", "[996a7f6d494ba1d9]", "[ae8a9620d2d9332e9a0f942a5913074d]", "0x20")
+ self.binary64_to_bid128("4", "[996a7f6d494ba1d9]", "[ae8a9620d2d9332e9a0f942a5913074e]", "0x20")
+ self.binary64_to_bid128("0", "[9a766550944b44f0]", "[ae94a6506457aad1b409062fc8d7db63]", "0x20")
+ self.binary64_to_bid128("1", "[9a766550944b44f0]", "[ae94a6506457aad1b409062fc8d7db63]", "0x20")
+ self.binary64_to_bid128("2", "[9a766550944b44f0]", "[ae94a6506457aad1b409062fc8d7db62]", "0x20")
+ self.binary64_to_bid128("3", "[9a766550944b44f0]", "[ae94a6506457aad1b409062fc8d7db62]", "0x20")
+ self.binary64_to_bid128("4", "[9a766550944b44f0]", "[ae94a6506457aad1b409062fc8d7db63]", "0x20")
+ self.binary64_to_bid128("0", "[9b95e508daeb1600]", "[ae9faa3a343c377ddc7b6cc5a4a3b512]", "0x20")
+ self.binary64_to_bid128("1", "[9b95e508daeb1600]", "[ae9faa3a343c377ddc7b6cc5a4a3b513]", "0x20")
+ self.binary64_to_bid128("2", "[9b95e508daeb1600]", "[ae9faa3a343c377ddc7b6cc5a4a3b512]", "0x20")
+ self.binary64_to_bid128("3", "[9b95e508daeb1600]", "[ae9faa3a343c377ddc7b6cc5a4a3b512]", "0x20")
+ self.binary64_to_bid128("4", "[9b95e508daeb1600]", "[ae9faa3a343c377ddc7b6cc5a4a3b512]", "0x20")
+ self.binary64_to_bid128("0", "[9d4b7c5315e3c975]", "[aeb047d0caf05c02b6f1e242fd804d0c]", "0x20")
+ self.binary64_to_bid128("1", "[9d4b7c5315e3c975]", "[aeb047d0caf05c02b6f1e242fd804d0c]", "0x20")
+ self.binary64_to_bid128("2", "[9d4b7c5315e3c975]", "[aeb047d0caf05c02b6f1e242fd804d0b]", "0x20")
+ self.binary64_to_bid128("3", "[9d4b7c5315e3c975]", "[aeb047d0caf05c02b6f1e242fd804d0b]", "0x20")
+ self.binary64_to_bid128("4", "[9d4b7c5315e3c975]", "[aeb047d0caf05c02b6f1e242fd804d0c]", "0x20")
+ self.binary64_to_bid128("0", "[9e734f6803053fec]", "[aebb0886c69dfd32d6d5fa2444ffac88]", "0x20")
+ self.binary64_to_bid128("1", "[9e734f6803053fec]", "[aebb0886c69dfd32d6d5fa2444ffac88]", "0x20")
+ self.binary64_to_bid128("2", "[9e734f6803053fec]", "[aebb0886c69dfd32d6d5fa2444ffac87]", "0x20")
+ self.binary64_to_bid128("3", "[9e734f6803053fec]", "[aebb0886c69dfd32d6d5fa2444ffac87]", "0x20")
+ self.binary64_to_bid128("4", "[9e734f6803053fec]", "[aebb0886c69dfd32d6d5fa2444ffac88]", "0x20")
+ self.binary64_to_bid128("0", "[9fc2b9096618f554]", "[aec835c9aae8d72f68331853167d4d36]", "0x20")
+ self.binary64_to_bid128("1", "[9fc2b9096618f554]", "[aec835c9aae8d72f68331853167d4d36]", "0x20")
+ self.binary64_to_bid128("2", "[9fc2b9096618f554]", "[aec835c9aae8d72f68331853167d4d35]", "0x20")
+ self.binary64_to_bid128("3", "[9fc2b9096618f554]", "[aec835c9aae8d72f68331853167d4d35]", "0x20")
+ self.binary64_to_bid128("4", "[9fc2b9096618f554]", "[aec835c9aae8d72f68331853167d4d36]", "0x20")
+ self.binary64_to_bid128("0", "[a110135ac5982ab4]", "[aed460da2fd6c66a81e16a34467c3f5c]", "0x20")
+ self.binary64_to_bid128("1", "[a110135ac5982ab4]", "[aed460da2fd6c66a81e16a34467c3f5c]", "0x20")
+ self.binary64_to_bid128("2", "[a110135ac5982ab4]", "[aed460da2fd6c66a81e16a34467c3f5b]", "0x20")
+ self.binary64_to_bid128("3", "[a110135ac5982ab4]", "[aed460da2fd6c66a81e16a34467c3f5b]", "0x20")
+ self.binary64_to_bid128("4", "[a110135ac5982ab4]", "[aed460da2fd6c66a81e16a34467c3f5c]", "0x20")
+ self.binary64_to_bid128("0", "[a27c22666f31e535]", "[aee2471859d19f267dba68417f0aadc8]", "0x20")
+ self.binary64_to_bid128("1", "[a27c22666f31e535]", "[aee2471859d19f267dba68417f0aadc9]", "0x20")
+ self.binary64_to_bid128("2", "[a27c22666f31e535]", "[aee2471859d19f267dba68417f0aadc8]", "0x20")
+ self.binary64_to_bid128("3", "[a27c22666f31e535]", "[aee2471859d19f267dba68417f0aadc8]", "0x20")
+ self.binary64_to_bid128("4", "[a27c22666f31e535]", "[aee2471859d19f267dba68417f0aadc8]", "0x20")
+ self.binary64_to_bid128("0", "[a3cd3ba5b53c5629]", "[aeee9aeb5cf0aede8894fa3b979023bb]", "0x20")
+ self.binary64_to_bid128("1", "[a3cd3ba5b53c5629]", "[aeee9aeb5cf0aede8894fa3b979023bc]", "0x20")
+ self.binary64_to_bid128("2", "[a3cd3ba5b53c5629]", "[aeee9aeb5cf0aede8894fa3b979023bb]", "0x20")
+ self.binary64_to_bid128("3", "[a3cd3ba5b53c5629]", "[aeee9aeb5cf0aede8894fa3b979023bb]", "0x20")
+ self.binary64_to_bid128("4", "[a3cd3ba5b53c5629]", "[aeee9aeb5cf0aede8894fa3b979023bb]", "0x20")
+ self.binary64_to_bid128("0", "[a4a26ae4d3a17d80]", "[aef69fe9c7914007f14504d3d99c56a4]", "0x20")
+ self.binary64_to_bid128("1", "[a4a26ae4d3a17d80]", "[aef69fe9c7914007f14504d3d99c56a4]", "0x20")
+ self.binary64_to_bid128("2", "[a4a26ae4d3a17d80]", "[aef69fe9c7914007f14504d3d99c56a3]", "0x20")
+ self.binary64_to_bid128("3", "[a4a26ae4d3a17d80]", "[aef69fe9c7914007f14504d3d99c56a3]", "0x20")
+ self.binary64_to_bid128("4", "[a4a26ae4d3a17d80]", "[aef69fe9c7914007f14504d3d99c56a4]", "0x20")
+ self.binary64_to_bid128("0", "[a63e3bbdd3bde178]", "[af06581512efd9f5a72b5762a7e11bbf]", "0x20")
+ self.binary64_to_bid128("1", "[a63e3bbdd3bde178]", "[af06581512efd9f5a72b5762a7e11bc0]", "0x20")
+ self.binary64_to_bid128("2", "[a63e3bbdd3bde178]", "[af06581512efd9f5a72b5762a7e11bbf]", "0x20")
+ self.binary64_to_bid128("3", "[a63e3bbdd3bde178]", "[af06581512efd9f5a72b5762a7e11bbf]", "0x20")
+ self.binary64_to_bid128("4", "[a63e3bbdd3bde178]", "[af06581512efd9f5a72b5762a7e11bbf]", "0x20")
+ self.binary64_to_bid128("0", "[a7adc1b74175dc8f]", "[af1448b94f48fd5a2c3fe3b4e3c20d10]", "0x20")
+ self.binary64_to_bid128("1", "[a7adc1b74175dc8f]", "[af1448b94f48fd5a2c3fe3b4e3c20d11]", "0x20")
+ self.binary64_to_bid128("2", "[a7adc1b74175dc8f]", "[af1448b94f48fd5a2c3fe3b4e3c20d10]", "0x20")
+ self.binary64_to_bid128("3", "[a7adc1b74175dc8f]", "[af1448b94f48fd5a2c3fe3b4e3c20d10]", "0x20")
+ self.binary64_to_bid128("4", "[a7adc1b74175dc8f]", "[af1448b94f48fd5a2c3fe3b4e3c20d10]", "0x20")
+ self.binary64_to_bid128("0", "[a8fcfe5efa367bff]", "[af20949a1ef9f2e55919448ae36ed6da]", "0x20")
+ self.binary64_to_bid128("1", "[a8fcfe5efa367bff]", "[af20949a1ef9f2e55919448ae36ed6da]", "0x20")
+ self.binary64_to_bid128("2", "[a8fcfe5efa367bff]", "[af20949a1ef9f2e55919448ae36ed6d9]", "0x20")
+ self.binary64_to_bid128("3", "[a8fcfe5efa367bff]", "[af20949a1ef9f2e55919448ae36ed6d9]", "0x20")
+ self.binary64_to_bid128("4", "[a8fcfe5efa367bff]", "[af20949a1ef9f2e55919448ae36ed6da]", "0x20")
+ self.binary64_to_bid128("0", "[aa310facbf44b0ca]", "[af2c5bb132d1bc8ab529ef43b73a0494]", "0x20")
+ self.binary64_to_bid128("1", "[aa310facbf44b0ca]", "[af2c5bb132d1bc8ab529ef43b73a0494]", "0x20")
+ self.binary64_to_bid128("2", "[aa310facbf44b0ca]", "[af2c5bb132d1bc8ab529ef43b73a0493]", "0x20")
+ self.binary64_to_bid128("3", "[aa310facbf44b0ca]", "[af2c5bb132d1bc8ab529ef43b73a0493]", "0x20")
+ self.binary64_to_bid128("4", "[aa310facbf44b0ca]", "[af2c5bb132d1bc8ab529ef43b73a0494]", "0x20")
+ self.binary64_to_bid128("0", "[ab61d3c47d2b23b8]", "[af38323b3e4154473e81063356744903]", "0x20")
+ self.binary64_to_bid128("1", "[ab61d3c47d2b23b8]", "[af38323b3e4154473e81063356744904]", "0x20")
+ self.binary64_to_bid128("2", "[ab61d3c47d2b23b8]", "[af38323b3e4154473e81063356744903]", "0x20")
+ self.binary64_to_bid128("3", "[ab61d3c47d2b23b8]", "[af38323b3e4154473e81063356744903]", "0x20")
+ self.binary64_to_bid128("4", "[ab61d3c47d2b23b8]", "[af38323b3e4154473e81063356744903]", "0x20")
+ self.binary64_to_bid128("0", "[acd203d0f60b96bf]", "[af45a9ced9a7c042cb79dc5be1b46678]", "0x20")
+ self.binary64_to_bid128("1", "[acd203d0f60b96bf]", "[af45a9ced9a7c042cb79dc5be1b46678]", "0x20")
+ self.binary64_to_bid128("2", "[acd203d0f60b96bf]", "[af45a9ced9a7c042cb79dc5be1b46677]", "0x20")
+ self.binary64_to_bid128("3", "[acd203d0f60b96bf]", "[af45a9ced9a7c042cb79dc5be1b46677]", "0x20")
+ self.binary64_to_bid128("4", "[acd203d0f60b96bf]", "[af45a9ced9a7c042cb79dc5be1b46678]", "0x20")
+ self.binary64_to_bid128("0", "[ae14a8876520bbc4]", "[af52333366ae108e24284f4c764b2ab3]", "0x20")
+ self.binary64_to_bid128("1", "[ae14a8876520bbc4]", "[af52333366ae108e24284f4c764b2ab3]", "0x20")
+ self.binary64_to_bid128("2", "[ae14a8876520bbc4]", "[af52333366ae108e24284f4c764b2ab2]", "0x20")
+ self.binary64_to_bid128("3", "[ae14a8876520bbc4]", "[af52333366ae108e24284f4c764b2ab2]", "0x20")
+ self.binary64_to_bid128("4", "[ae14a8876520bbc4]", "[af52333366ae108e24284f4c764b2ab3]", "0x20")
+ self.binary64_to_bid128("0", "[af5a3bcfe86a07a4]", "[af5e442d679f6cc7a42e7e1e968925dc]", "0x20")
+ self.binary64_to_bid128("1", "[af5a3bcfe86a07a4]", "[af5e442d679f6cc7a42e7e1e968925dd]", "0x20")
+ self.binary64_to_bid128("2", "[af5a3bcfe86a07a4]", "[af5e442d679f6cc7a42e7e1e968925dc]", "0x20")
+ self.binary64_to_bid128("3", "[af5a3bcfe86a07a4]", "[af5e442d679f6cc7a42e7e1e968925dc]", "0x20")
+ self.binary64_to_bid128("4", "[af5a3bcfe86a07a4]", "[af5e442d679f6cc7a42e7e1e968925dc]", "0x20")
+ self.binary64_to_bid128("0", "[b046bd1d6dda4700]", "[af66c1a425bdb4df6c806b16a5a7690c]", "0x20")
+ self.binary64_to_bid128("1", "[b046bd1d6dda4700]", "[af66c1a425bdb4df6c806b16a5a7690d]", "0x20")
+ self.binary64_to_bid128("2", "[b046bd1d6dda4700]", "[af66c1a425bdb4df6c806b16a5a7690c]", "0x20")
+ self.binary64_to_bid128("3", "[b046bd1d6dda4700]", "[af66c1a425bdb4df6c806b16a5a7690c]", "0x20")
+ self.binary64_to_bid128("4", "[b046bd1d6dda4700]", "[af66c1a425bdb4df6c806b16a5a7690c]", "0x20")
+ self.binary64_to_bid128("0", "[b20f1d59ae3042de]", "[af78472097071fbbbb488048807fc8f2]", "0x20")
+ self.binary64_to_bid128("1", "[b20f1d59ae3042de]", "[af78472097071fbbbb488048807fc8f2]", "0x20")
+ self.binary64_to_bid128("2", "[b20f1d59ae3042de]", "[af78472097071fbbbb488048807fc8f1]", "0x20")
+ self.binary64_to_bid128("3", "[b20f1d59ae3042de]", "[af78472097071fbbbb488048807fc8f1]", "0x20")
+ self.binary64_to_bid128("4", "[b20f1d59ae3042de]", "[af78472097071fbbbb488048807fc8f2]", "0x20")
+ self.binary64_to_bid128("0", "[b34f7b516945060c]", "[af844b76552c7bb63e8d99e307926fc9]", "0x20")
+ self.binary64_to_bid128("1", "[b34f7b516945060c]", "[af844b76552c7bb63e8d99e307926fc9]", "0x20")
+ self.binary64_to_bid128("2", "[b34f7b516945060c]", "[af844b76552c7bb63e8d99e307926fc8]", "0x20")
+ self.binary64_to_bid128("3", "[b34f7b516945060c]", "[af844b76552c7bb63e8d99e307926fc8]", "0x20")
+ self.binary64_to_bid128("4", "[b34f7b516945060c]", "[af844b76552c7bb63e8d99e307926fc9]", "0x20")
+ self.binary64_to_bid128("0", "[b4420ef63fc10b00]", "[af8d1bae91157291ec9e0e9a9361fd5e]", "0x20")
+ self.binary64_to_bid128("1", "[b4420ef63fc10b00]", "[af8d1bae91157291ec9e0e9a9361fd5f]", "0x20")
+ self.binary64_to_bid128("2", "[b4420ef63fc10b00]", "[af8d1bae91157291ec9e0e9a9361fd5e]", "0x20")
+ self.binary64_to_bid128("3", "[b4420ef63fc10b00]", "[af8d1bae91157291ec9e0e9a9361fd5e]", "0x20")
+ self.binary64_to_bid128("4", "[b4420ef63fc10b00]", "[af8d1bae91157291ec9e0e9a9361fd5e]", "0x20")
+ self.binary64_to_bid128("0", "[b5d1c14ee2e09100]", "[af9c5d96c4e4833eca88631c3a8d9c54]", "0x20")
+ self.binary64_to_bid128("1", "[b5d1c14ee2e09100]", "[af9c5d96c4e4833eca88631c3a8d9c55]", "0x20")
+ self.binary64_to_bid128("2", "[b5d1c14ee2e09100]", "[af9c5d96c4e4833eca88631c3a8d9c54]", "0x20")
+ self.binary64_to_bid128("3", "[b5d1c14ee2e09100]", "[af9c5d96c4e4833eca88631c3a8d9c54]", "0x20")
+ self.binary64_to_bid128("4", "[b5d1c14ee2e09100]", "[af9c5d96c4e4833eca88631c3a8d9c54]", "0x20")
+ self.binary64_to_bid128("0", "[b73199122f0bff1c]", "[afa98510c66c8c3abf0fdf3348fa615c]", "0x20")
+ self.binary64_to_bid128("1", "[b73199122f0bff1c]", "[afa98510c66c8c3abf0fdf3348fa615d]", "0x20")
+ self.binary64_to_bid128("2", "[b73199122f0bff1c]", "[afa98510c66c8c3abf0fdf3348fa615c]", "0x20")
+ self.binary64_to_bid128("3", "[b73199122f0bff1c]", "[afa98510c66c8c3abf0fdf3348fa615c]", "0x20")
+ self.binary64_to_bid128("4", "[b73199122f0bff1c]", "[afa98510c66c8c3abf0fdf3348fa615c]", "0x20")
+ self.binary64_to_bid128("0", "[b887b806973bde9a]", "[afb66df8fe7a2518388d312389956baf]", "0x20")
+ self.binary64_to_bid128("1", "[b887b806973bde9a]", "[afb66df8fe7a2518388d312389956baf]", "0x20")
+ self.binary64_to_bid128("2", "[b887b806973bde9a]", "[afb66df8fe7a2518388d312389956bae]", "0x20")
+ self.binary64_to_bid128("3", "[b887b806973bde9a]", "[afb66df8fe7a2518388d312389956bae]", "0x20")
+ self.binary64_to_bid128("4", "[b887b806973bde9a]", "[afb66df8fe7a2518388d312389956baf]", "0x20")
+ self.binary64_to_bid128("0", "[b9b2e0930303d5dc]", "[afc1cae15f7b20c513cad15c3fcce0b5]", "0x20")
+ self.binary64_to_bid128("1", "[b9b2e0930303d5dc]", "[afc1cae15f7b20c513cad15c3fcce0b6]", "0x20")
+ self.binary64_to_bid128("2", "[b9b2e0930303d5dc]", "[afc1cae15f7b20c513cad15c3fcce0b5]", "0x20")
+ self.binary64_to_bid128("3", "[b9b2e0930303d5dc]", "[afc1cae15f7b20c513cad15c3fcce0b5]", "0x20")
+ self.binary64_to_bid128("4", "[b9b2e0930303d5dc]", "[afc1cae15f7b20c513cad15c3fcce0b5]", "0x20")
+ self.binary64_to_bid128("0", "[bb01d15f165f729c]", "[afce5ad5637b2e3af9d7c6aa3b1eaa05]", "0x20")
+ self.binary64_to_bid128("1", "[bb01d15f165f729c]", "[afce5ad5637b2e3af9d7c6aa3b1eaa05]", "0x20")
+ self.binary64_to_bid128("2", "[bb01d15f165f729c]", "[afce5ad5637b2e3af9d7c6aa3b1eaa04]", "0x20")
+ self.binary64_to_bid128("3", "[bb01d15f165f729c]", "[afce5ad5637b2e3af9d7c6aa3b1eaa04]", "0x20")
+ self.binary64_to_bid128("4", "[bb01d15f165f729c]", "[afce5ad5637b2e3af9d7c6aa3b1eaa05]", "0x20")
+ self.binary64_to_bid128("0", "[bc48a25d9bdb5944]", "[afda83aedcf882813b7bf4ac54c0390c]", "0x20")
+ self.binary64_to_bid128("1", "[bc48a25d9bdb5944]", "[afda83aedcf882813b7bf4ac54c0390c]", "0x20")
+ self.binary64_to_bid128("2", "[bc48a25d9bdb5944]", "[afda83aedcf882813b7bf4ac54c0390b]", "0x20")
+ self.binary64_to_bid128("3", "[bc48a25d9bdb5944]", "[afda83aedcf882813b7bf4ac54c0390b]", "0x20")
+ self.binary64_to_bid128("4", "[bc48a25d9bdb5944]", "[afda83aedcf882813b7bf4ac54c0390c]", "0x20")
+ self.binary64_to_bid128("0", "[bdbffc48766618cf]", "[afe88f6d87f6ff98502d3535b6a0bf7a]", "0x20")
+ self.binary64_to_bid128("1", "[bdbffc48766618cf]", "[afe88f6d87f6ff98502d3535b6a0bf7a]", "0x20")
+ self.binary64_to_bid128("2", "[bdbffc48766618cf]", "[afe88f6d87f6ff98502d3535b6a0bf79]", "0x20")
+ self.binary64_to_bid128("3", "[bdbffc48766618cf]", "[afe88f6d87f6ff98502d3535b6a0bf79]", "0x20")
+ self.binary64_to_bid128("4", "[bdbffc48766618cf]", "[afe88f6d87f6ff98502d3535b6a0bf7a]", "0x20")
+ self.binary64_to_bid128("0", "[bef4f8b57899adb6]", "[aff4629b8c3c852ae332b6dd34cd6d21]", "0x20")
+ self.binary64_to_bid128("1", "[bef4f8b57899adb6]", "[aff4629b8c3c852ae332b6dd34cd6d22]", "0x20")
+ self.binary64_to_bid128("2", "[bef4f8b57899adb6]", "[aff4629b8c3c852ae332b6dd34cd6d21]", "0x20")
+ self.binary64_to_bid128("3", "[bef4f8b57899adb6]", "[aff4629b8c3c852ae332b6dd34cd6d21]", "0x20")
+ self.binary64_to_bid128("4", "[bef4f8b57899adb6]", "[aff4629b8c3c852ae332b6dd34cd6d21]", "0x20")
+ self.binary64_to_bid128("0", "[bfaa000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("1", "[bfaa000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("2", "[bfaa000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("3", "[bfaa000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("4", "[bfaa000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary64_to_bid128("0", "[bff0000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("1", "[bff0000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("2", "[bff0000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("3", "[bff0000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("4", "[bff0000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary64_to_bid128("0", "[bff8000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("1", "[bff8000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("2", "[bff8000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("3", "[bff8000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("4", "[bff8000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary64_to_bid128("0", "[c033fffffffff2cc]", "[b000629b8c891ae558d2ef91139f10b6]", "0x20")
+ self.binary64_to_bid128("1", "[c033fffffffff2cc]", "[b000629b8c891ae558d2ef91139f10b6]", "0x20")
+ self.binary64_to_bid128("2", "[c033fffffffff2cc]", "[b000629b8c891ae558d2ef91139f10b5]", "0x20")
+ self.binary64_to_bid128("3", "[c033fffffffff2cc]", "[b000629b8c891ae558d2ef91139f10b5]", "0x20")
+ self.binary64_to_bid128("4", "[c033fffffffff2cc]", "[b000629b8c891ae558d2ef91139f10b6]", "0x20")
+ self.binary64_to_bid128("0", "[c050000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("1", "[c050000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("2", "[c050000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("3", "[c050000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("4", "[c050000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary64_to_bid128("0", "[c08f380000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("1", "[c08f380000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("2", "[c08f380000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("3", "[c08f380000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("4", "[c08f380000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary64_to_bid128("0", "[c08f400000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("1", "[c08f400000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("2", "[c08f400000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("3", "[c08f400000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("4", "[c08f400000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary64_to_bid128("0", "[c19fffffffffffff]", "[b00e422ca8b0a00a403e9aba7affadee]", "0x20")
+ self.binary64_to_bid128("1", "[c19fffffffffffff]", "[b00e422ca8b0a00a403e9aba7affadee]", "0x20")
+ self.binary64_to_bid128("2", "[c19fffffffffffff]", "[b00e422ca8b0a00a403e9aba7affaded]", "0x20")
+ self.binary64_to_bid128("3", "[c19fffffffffffff]", "[b00e422ca8b0a00a403e9aba7affaded]", "0x20")
+ self.binary64_to_bid128("4", "[c19fffffffffffff]", "[b00e422ca8b0a00a403e9aba7affadee]", "0x20")
+ self.binary64_to_bid128("0", "[c2f0000000000000]", "[b0400000000000000001000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[c2f0000000000000]", "[b0400000000000000001000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[c2f0000000000000]", "[b0400000000000000001000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[c2f0000000000000]", "[b0400000000000000001000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[c2f0000000000000]", "[b0400000000000000001000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[c425af1d78b58c3e]", "[b04000000000000ad78ebc5ac61f0000]", "0x00")
+ self.binary64_to_bid128("1", "[c425af1d78b58c3e]", "[b04000000000000ad78ebc5ac61f0000]", "0x00")
+ self.binary64_to_bid128("2", "[c425af1d78b58c3e]", "[b04000000000000ad78ebc5ac61f0000]", "0x00")
+ self.binary64_to_bid128("3", "[c425af1d78b58c3e]", "[b04000000000000ad78ebc5ac61f0000]", "0x00")
+ self.binary64_to_bid128("4", "[c425af1d78b58c3e]", "[b04000000000000ad78ebc5ac61f0000]", "0x00")
+ self.binary64_to_bid128("0", "[c564adf4b7320334]", "[b040000000a56fa5b99019a000000000]", "0x00")
+ self.binary64_to_bid128("1", "[c564adf4b7320334]", "[b040000000a56fa5b99019a000000000]", "0x00")
+ self.binary64_to_bid128("2", "[c564adf4b7320334]", "[b040000000a56fa5b99019a000000000]", "0x00")
+ self.binary64_to_bid128("3", "[c564adf4b7320334]", "[b040000000a56fa5b99019a000000000]", "0x00")
+ self.binary64_to_bid128("4", "[c564adf4b7320334]", "[b040000000a56fa5b99019a000000000]", "0x00")
+ self.binary64_to_bid128("0", "[c6cffffffffffffd]", "[b0403ffffffffffffa00000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[c6cffffffffffffd]", "[b0403ffffffffffffa00000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[c6cffffffffffffd]", "[b0403ffffffffffffa00000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[c6cffffffffffffd]", "[b0403ffffffffffffa00000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[c6cffffffffffffd]", "[b0403ffffffffffffa00000000000000]", "0x00")
+ self.binary64_to_bid128("0", "[c81fffffffffd9a1]", "[b04c8637bd05aecb790fb65668c26139]", "0x20")
+ self.binary64_to_bid128("1", "[c81fffffffffd9a1]", "[b04c8637bd05aecb790fb65668c26139]", "0x20")
+ self.binary64_to_bid128("2", "[c81fffffffffd9a1]", "[b04c8637bd05aecb790fb65668c26138]", "0x20")
+ self.binary64_to_bid128("3", "[c81fffffffffd9a1]", "[b04c8637bd05aecb790fb65668c26138]", "0x20")
+ self.binary64_to_bid128("4", "[c81fffffffffd9a1]", "[b04c8637bd05aecb790fb65668c26139]", "0x20")
+ self.binary64_to_bid128("0", "[c9566bb7ed327aca]", "[b058629b8c7b9f33b4cb0a0a8141b8f2]", "0x20")
+ self.binary64_to_bid128("1", "[c9566bb7ed327aca]", "[b058629b8c7b9f33b4cb0a0a8141b8f3]", "0x20")
+ self.binary64_to_bid128("2", "[c9566bb7ed327aca]", "[b058629b8c7b9f33b4cb0a0a8141b8f2]", "0x20")
+ self.binary64_to_bid128("3", "[c9566bb7ed327aca]", "[b058629b8c7b9f33b4cb0a0a8141b8f2]", "0x20")
+ self.binary64_to_bid128("4", "[c9566bb7ed327aca]", "[b058629b8c7b9f33b4cb0a0a8141b8f2]", "0x20")
+ self.binary64_to_bid128("0", "[ca955faff2512470]", "[b0646291b42acd20c722042f63c6e99b]", "0x20")
+ self.binary64_to_bid128("1", "[ca955faff2512470]", "[b0646291b42acd20c722042f63c6e99b]", "0x20")
+ self.binary64_to_bid128("2", "[ca955faff2512470]", "[b0646291b42acd20c722042f63c6e99a]", "0x20")
+ self.binary64_to_bid128("3", "[ca955faff2512470]", "[b0646291b42acd20c722042f63c6e99a]", "0x20")
+ self.binary64_to_bid128("4", "[ca955faff2512470]", "[b0646291b42acd20c722042f63c6e99b]", "0x20")
+ self.binary64_to_bid128("0", "[cbfc4a605433d8ac]", "[b07236b8cb087443ffa8e63ac84322ce]", "0x20")
+ self.binary64_to_bid128("1", "[cbfc4a605433d8ac]", "[b07236b8cb087443ffa8e63ac84322cf]", "0x20")
+ self.binary64_to_bid128("2", "[cbfc4a605433d8ac]", "[b07236b8cb087443ffa8e63ac84322ce]", "0x20")
+ self.binary64_to_bid128("3", "[cbfc4a605433d8ac]", "[b07236b8cb087443ffa8e63ac84322ce]", "0x20")
+ self.binary64_to_bid128("4", "[cbfc4a605433d8ac]", "[b07236b8cb087443ffa8e63ac84322ce]", "0x20")
+ self.binary64_to_bid128("0", "[cd3391c84bd27074]", "[b07d8cea75741c9e1b8ee425c4324b7e]", "0x20")
+ self.binary64_to_bid128("1", "[cd3391c84bd27074]", "[b07d8cea75741c9e1b8ee425c4324b7e]", "0x20")
+ self.binary64_to_bid128("2", "[cd3391c84bd27074]", "[b07d8cea75741c9e1b8ee425c4324b7d]", "0x20")
+ self.binary64_to_bid128("3", "[cd3391c84bd27074]", "[b07d8cea75741c9e1b8ee425c4324b7d]", "0x20")
+ self.binary64_to_bid128("4", "[cd3391c84bd27074]", "[b07d8cea75741c9e1b8ee425c4324b7e]", "0x20")
+ self.binary64_to_bid128("0", "[ce865cf15c697222]", "[b08a5f1f36b1cb008810ad02d13f2a7c]", "0x20")
+ self.binary64_to_bid128("1", "[ce865cf15c697222]", "[b08a5f1f36b1cb008810ad02d13f2a7c]", "0x20")
+ self.binary64_to_bid128("2", "[ce865cf15c697222]", "[b08a5f1f36b1cb008810ad02d13f2a7b]", "0x20")
+ self.binary64_to_bid128("3", "[ce865cf15c697222]", "[b08a5f1f36b1cb008810ad02d13f2a7b]", "0x20")
+ self.binary64_to_bid128("4", "[ce865cf15c697222]", "[b08a5f1f36b1cb008810ad02d13f2a7c]", "0x20")
+ self.binary64_to_bid128("0", "[cfc14cea585f1f4c]", "[b0964d299f70f04eb6794be9e946d3f8]", "0x20")
+ self.binary64_to_bid128("1", "[cfc14cea585f1f4c]", "[b0964d299f70f04eb6794be9e946d3f8]", "0x20")
+ self.binary64_to_bid128("2", "[cfc14cea585f1f4c]", "[b0964d299f70f04eb6794be9e946d3f7]", "0x20")
+ self.binary64_to_bid128("3", "[cfc14cea585f1f4c]", "[b0964d299f70f04eb6794be9e946d3f7]", "0x20")
+ self.binary64_to_bid128("4", "[cfc14cea585f1f4c]", "[b0964d299f70f04eb6794be9e946d3f8]", "0x20")
+ self.binary64_to_bid128("0", "[d12e12be5ba2752e]", "[b0a4384235b13b827ce9d3db819267ea]", "0x20")
+ self.binary64_to_bid128("1", "[d12e12be5ba2752e]", "[b0a4384235b13b827ce9d3db819267ea]", "0x20")
+ self.binary64_to_bid128("2", "[d12e12be5ba2752e]", "[b0a4384235b13b827ce9d3db819267e9]", "0x20")
+ self.binary64_to_bid128("3", "[d12e12be5ba2752e]", "[b0a4384235b13b827ce9d3db819267e9]", "0x20")
+ self.binary64_to_bid128("4", "[d12e12be5ba2752e]", "[b0a4384235b13b827ce9d3db819267ea]", "0x20")
+ self.binary64_to_bid128("0", "[d27e2362ba9aca8f]", "[b0b0763ce9b6dfae599047b4ef0166f8]", "0x20")
+ self.binary64_to_bid128("1", "[d27e2362ba9aca8f]", "[b0b0763ce9b6dfae599047b4ef0166f9]", "0x20")
+ self.binary64_to_bid128("2", "[d27e2362ba9aca8f]", "[b0b0763ce9b6dfae599047b4ef0166f8]", "0x20")
+ self.binary64_to_bid128("3", "[d27e2362ba9aca8f]", "[b0b0763ce9b6dfae599047b4ef0166f8]", "0x20")
+ self.binary64_to_bid128("4", "[d27e2362ba9aca8f]", "[b0b0763ce9b6dfae599047b4ef0166f8]", "0x20")
+ self.binary64_to_bid128("0", "[d3b52edb2fee4db2]", "[b0bc572456236349470345882d099df0]", "0x20")
+ self.binary64_to_bid128("1", "[d3b52edb2fee4db2]", "[b0bc572456236349470345882d099df1]", "0x20")
+ self.binary64_to_bid128("2", "[d3b52edb2fee4db2]", "[b0bc572456236349470345882d099df0]", "0x20")
+ self.binary64_to_bid128("3", "[d3b52edb2fee4db2]", "[b0bc572456236349470345882d099df0]", "0x20")
+ self.binary64_to_bid128("4", "[d3b52edb2fee4db2]", "[b0bc572456236349470345882d099df0]", "0x20")
+ self.binary64_to_bid128("0", "[d4f4f653df5ee330]", "[b0c85a6c2522a848e8afa884ce0700c4]", "0x20")
+ self.binary64_to_bid128("1", "[d4f4f653df5ee330]", "[b0c85a6c2522a848e8afa884ce0700c4]", "0x20")
+ self.binary64_to_bid128("2", "[d4f4f653df5ee330]", "[b0c85a6c2522a848e8afa884ce0700c3]", "0x20")
+ self.binary64_to_bid128("3", "[d4f4f653df5ee330]", "[b0c85a6c2522a848e8afa884ce0700c3]", "0x20")
+ self.binary64_to_bid128("4", "[d4f4f653df5ee330]", "[b0c85a6c2522a848e8afa884ce0700c4]", "0x20")
+ self.binary64_to_bid128("0", "[d65d405d6ab16cd7]", "[b0d634ec55abd7814dfcd37492ed939c]", "0x20")
+ self.binary64_to_bid128("1", "[d65d405d6ab16cd7]", "[b0d634ec55abd7814dfcd37492ed939d]", "0x20")
+ self.binary64_to_bid128("2", "[d65d405d6ab16cd7]", "[b0d634ec55abd7814dfcd37492ed939c]", "0x20")
+ self.binary64_to_bid128("3", "[d65d405d6ab16cd7]", "[b0d634ec55abd7814dfcd37492ed939c]", "0x20")
+ self.binary64_to_bid128("4", "[d65d405d6ab16cd7]", "[b0d634ec55abd7814dfcd37492ed939c]", "0x20")
+ self.binary64_to_bid128("0", "[d7872679a53c907c]", "[b0e0db98b1b5c21149bb43ecdefa7dbe]", "0x20")
+ self.binary64_to_bid128("1", "[d7872679a53c907c]", "[b0e0db98b1b5c21149bb43ecdefa7dbf]", "0x20")
+ self.binary64_to_bid128("2", "[d7872679a53c907c]", "[b0e0db98b1b5c21149bb43ecdefa7dbe]", "0x20")
+ self.binary64_to_bid128("3", "[d7872679a53c907c]", "[b0e0db98b1b5c21149bb43ecdefa7dbe]", "0x20")
+ self.binary64_to_bid128("4", "[d7872679a53c907c]", "[b0e0db98b1b5c21149bb43ecdefa7dbe]", "0x20")
+ self.binary64_to_bid128("0", "[d8a7a41936b4cfc0]", "[b0ec3ac93efcade1e886123d75216291]", "0x20")
+ self.binary64_to_bid128("1", "[d8a7a41936b4cfc0]", "[b0ec3ac93efcade1e886123d75216292]", "0x20")
+ self.binary64_to_bid128("2", "[d8a7a41936b4cfc0]", "[b0ec3ac93efcade1e886123d75216291]", "0x20")
+ self.binary64_to_bid128("3", "[d8a7a41936b4cfc0]", "[b0ec3ac93efcade1e886123d75216291]", "0x20")
+ self.binary64_to_bid128("4", "[d8a7a41936b4cfc0]", "[b0ec3ac93efcade1e886123d75216291]", "0x20")
+ self.binary64_to_bid128("0", "[da27106b69495de0]", "[b0fa603859d56fa4a0a2b49c4a950040]", "0x20")
+ self.binary64_to_bid128("1", "[da27106b69495de0]", "[b0fa603859d56fa4a0a2b49c4a950041]", "0x20")
+ self.binary64_to_bid128("2", "[da27106b69495de0]", "[b0fa603859d56fa4a0a2b49c4a950040]", "0x20")
+ self.binary64_to_bid128("3", "[da27106b69495de0]", "[b0fa603859d56fa4a0a2b49c4a950040]", "0x20")
+ self.binary64_to_bid128("4", "[da27106b69495de0]", "[b0fa603859d56fa4a0a2b49c4a950040]", "0x20")
+ self.binary64_to_bid128("0", "[db8ff2ff6a8f506d]", "[b10837e79d6d84c4ca84a20c00735188]", "0x20")
+ self.binary64_to_bid128("1", "[db8ff2ff6a8f506d]", "[b10837e79d6d84c4ca84a20c00735189]", "0x20")
+ self.binary64_to_bid128("2", "[db8ff2ff6a8f506d]", "[b10837e79d6d84c4ca84a20c00735188]", "0x20")
+ self.binary64_to_bid128("3", "[db8ff2ff6a8f506d]", "[b10837e79d6d84c4ca84a20c00735188]", "0x20")
+ self.binary64_to_bid128("4", "[db8ff2ff6a8f506d]", "[b10837e79d6d84c4ca84a20c00735188]", "0x20")
+ self.binary64_to_bid128("0", "[dcd074ff0250322f]", "[b1143c640052f51054eac86153ca56da]", "0x20")
+ self.binary64_to_bid128("1", "[dcd074ff0250322f]", "[b1143c640052f51054eac86153ca56da]", "0x20")
+ self.binary64_to_bid128("2", "[dcd074ff0250322f]", "[b1143c640052f51054eac86153ca56d9]", "0x20")
+ self.binary64_to_bid128("3", "[dcd074ff0250322f]", "[b1143c640052f51054eac86153ca56d9]", "0x20")
+ self.binary64_to_bid128("4", "[dcd074ff0250322f]", "[b1143c640052f51054eac86153ca56da]", "0x20")
+ self.binary64_to_bid128("0", "[de07ee7c8477bae4]", "[b11fcc6d11de5e41dd6dad3f0697b59e]", "0x20")
+ self.binary64_to_bid128("1", "[de07ee7c8477bae4]", "[b11fcc6d11de5e41dd6dad3f0697b59f]", "0x20")
+ self.binary64_to_bid128("2", "[de07ee7c8477bae4]", "[b11fcc6d11de5e41dd6dad3f0697b59e]", "0x20")
+ self.binary64_to_bid128("3", "[de07ee7c8477bae4]", "[b11fcc6d11de5e41dd6dad3f0697b59e]", "0x20")
+ self.binary64_to_bid128("4", "[de07ee7c8477bae4]", "[b11fcc6d11de5e41dd6dad3f0697b59e]", "0x20")
+ self.binary64_to_bid128("0", "[df4864c587c62c18]", "[b12bec1cf16bc9bc1fb757f0d32cd714]", "0x20")
+ self.binary64_to_bid128("1", "[df4864c587c62c18]", "[b12bec1cf16bc9bc1fb757f0d32cd715]", "0x20")
+ self.binary64_to_bid128("2", "[df4864c587c62c18]", "[b12bec1cf16bc9bc1fb757f0d32cd714]", "0x20")
+ self.binary64_to_bid128("3", "[df4864c587c62c18]", "[b12bec1cf16bc9bc1fb757f0d32cd714]", "0x20")
+ self.binary64_to_bid128("4", "[df4864c587c62c18]", "[b12bec1cf16bc9bc1fb757f0d32cd714]", "0x20")
+ self.binary64_to_bid128("0", "[e0b987fa9cdadabd]", "[b139b0109614fddfd6b136d08b1c42dc]", "0x20")
+ self.binary64_to_bid128("1", "[e0b987fa9cdadabd]", "[b139b0109614fddfd6b136d08b1c42dc]", "0x20")
+ self.binary64_to_bid128("2", "[e0b987fa9cdadabd]", "[b139b0109614fddfd6b136d08b1c42db]", "0x20")
+ self.binary64_to_bid128("3", "[e0b987fa9cdadabd]", "[b139b0109614fddfd6b136d08b1c42db]", "0x20")
+ self.binary64_to_bid128("4", "[e0b987fa9cdadabd]", "[b139b0109614fddfd6b136d08b1c42dc]", "0x20")
+ self.binary64_to_bid128("0", "[e207145d1b2ef762]", "[b14651e8e26a14a0b675483903c0835f]", "0x20")
+ self.binary64_to_bid128("1", "[e207145d1b2ef762]", "[b14651e8e26a14a0b675483903c0835f]", "0x20")
+ self.binary64_to_bid128("2", "[e207145d1b2ef762]", "[b14651e8e26a14a0b675483903c0835e]", "0x20")
+ self.binary64_to_bid128("3", "[e207145d1b2ef762]", "[b14651e8e26a14a0b675483903c0835e]", "0x20")
+ self.binary64_to_bid128("4", "[e207145d1b2ef762]", "[b14651e8e26a14a0b675483903c0835f]", "0x20")
+ self.binary64_to_bid128("0", "[e33b9029530f5318]", "[b1523349732cb6875e143521de01db5a]", "0x20")
+ self.binary64_to_bid128("1", "[e33b9029530f5318]", "[b1523349732cb6875e143521de01db5a]", "0x20")
+ self.binary64_to_bid128("2", "[e33b9029530f5318]", "[b1523349732cb6875e143521de01db59]", "0x20")
+ self.binary64_to_bid128("3", "[e33b9029530f5318]", "[b1523349732cb6875e143521de01db59]", "0x20")
+ self.binary64_to_bid128("4", "[e33b9029530f5318]", "[b1523349732cb6875e143521de01db5a]", "0x20")
+ self.binary64_to_bid128("0", "[e488a104c3d2d748]", "[b15e601b5a78021e56559f9be73a2d7f]", "0x20")
+ self.binary64_to_bid128("1", "[e488a104c3d2d748]", "[b15e601b5a78021e56559f9be73a2d7f]", "0x20")
+ self.binary64_to_bid128("2", "[e488a104c3d2d748]", "[b15e601b5a78021e56559f9be73a2d7e]", "0x20")
+ self.binary64_to_bid128("3", "[e488a104c3d2d748]", "[b15e601b5a78021e56559f9be73a2d7e]", "0x20")
+ self.binary64_to_bid128("4", "[e488a104c3d2d748]", "[b15e601b5a78021e56559f9be73a2d7f]", "0x20")
+ self.binary64_to_bid128("0", "[e5d35210f01ec4ba]", "[b16a9e1c042d65c912e7d8fb052ed918]", "0x20")
+ self.binary64_to_bid128("1", "[e5d35210f01ec4ba]", "[b16a9e1c042d65c912e7d8fb052ed918]", "0x20")
+ self.binary64_to_bid128("2", "[e5d35210f01ec4ba]", "[b16a9e1c042d65c912e7d8fb052ed917]", "0x20")
+ self.binary64_to_bid128("3", "[e5d35210f01ec4ba]", "[b16a9e1c042d65c912e7d8fb052ed917]", "0x20")
+ self.binary64_to_bid128("4", "[e5d35210f01ec4ba]", "[b16a9e1c042d65c912e7d8fb052ed918]", "0x20")
+ self.binary64_to_bid128("0", "[e73febae050ce0c0]", "[b1786d9076ccde6798e839b7fe75da27]", "0x20")
+ self.binary64_to_bid128("1", "[e73febae050ce0c0]", "[b1786d9076ccde6798e839b7fe75da27]", "0x20")
+ self.binary64_to_bid128("2", "[e73febae050ce0c0]", "[b1786d9076ccde6798e839b7fe75da26]", "0x20")
+ self.binary64_to_bid128("3", "[e73febae050ce0c0]", "[b1786d9076ccde6798e839b7fe75da26]", "0x20")
+ self.binary64_to_bid128("4", "[e73febae050ce0c0]", "[b1786d9076ccde6798e839b7fe75da27]", "0x20")
+ self.binary64_to_bid128("0", "[e8744c1c1a4378ae]", "[b184490d7ade8edc986916d871a138d9]", "0x20")
+ self.binary64_to_bid128("1", "[e8744c1c1a4378ae]", "[b184490d7ade8edc986916d871a138da]", "0x20")
+ self.binary64_to_bid128("2", "[e8744c1c1a4378ae]", "[b184490d7ade8edc986916d871a138d9]", "0x20")
+ self.binary64_to_bid128("3", "[e8744c1c1a4378ae]", "[b184490d7ade8edc986916d871a138d9]", "0x20")
+ self.binary64_to_bid128("4", "[e8744c1c1a4378ae]", "[b184490d7ade8edc986916d871a138d9]", "0x20")
+ self.binary64_to_bid128("0", "[e9737ecae1217440]", "[b18dcbd7255ed0b0aa04498a584cc4a6]", "0x20")
+ self.binary64_to_bid128("1", "[e9737ecae1217440]", "[b18dcbd7255ed0b0aa04498a584cc4a7]", "0x20")
+ self.binary64_to_bid128("2", "[e9737ecae1217440]", "[b18dcbd7255ed0b0aa04498a584cc4a6]", "0x20")
+ self.binary64_to_bid128("3", "[e9737ecae1217440]", "[b18dcbd7255ed0b0aa04498a584cc4a6]", "0x20")
+ self.binary64_to_bid128("4", "[e9737ecae1217440]", "[b18dcbd7255ed0b0aa04498a584cc4a6]", "0x20")
+ self.binary64_to_bid128("0", "[eb0bf616670f8094]", "[b19cdd4d347dcf91d9f1d998c33f65fc]", "0x20")
+ self.binary64_to_bid128("1", "[eb0bf616670f8094]", "[b19cdd4d347dcf91d9f1d998c33f65fd]", "0x20")
+ self.binary64_to_bid128("2", "[eb0bf616670f8094]", "[b19cdd4d347dcf91d9f1d998c33f65fc]", "0x20")
+ self.binary64_to_bid128("3", "[eb0bf616670f8094]", "[b19cdd4d347dcf91d9f1d998c33f65fc]", "0x20")
+ self.binary64_to_bid128("4", "[eb0bf616670f8094]", "[b19cdd4d347dcf91d9f1d998c33f65fc]", "0x20")
+ self.binary64_to_bid128("0", "[ec5e2c90ee980d12]", "[b1aa32154871bb2a8696b49a2a74ed25]", "0x20")
+ self.binary64_to_bid128("1", "[ec5e2c90ee980d12]", "[b1aa32154871bb2a8696b49a2a74ed26]", "0x20")
+ self.binary64_to_bid128("2", "[ec5e2c90ee980d12]", "[b1aa32154871bb2a8696b49a2a74ed25]", "0x20")
+ self.binary64_to_bid128("3", "[ec5e2c90ee980d12]", "[b1aa32154871bb2a8696b49a2a74ed25]", "0x20")
+ self.binary64_to_bid128("4", "[ec5e2c90ee980d12]", "[b1aa32154871bb2a8696b49a2a74ed25]", "0x20")
+ self.binary64_to_bid128("0", "[edab3d4ec3c77a5e]", "[b1b65ed12634bf1770c6aa3d7ffe5275]", "0x20")
+ self.binary64_to_bid128("1", "[edab3d4ec3c77a5e]", "[b1b65ed12634bf1770c6aa3d7ffe5275]", "0x20")
+ self.binary64_to_bid128("2", "[edab3d4ec3c77a5e]", "[b1b65ed12634bf1770c6aa3d7ffe5274]", "0x20")
+ self.binary64_to_bid128("3", "[edab3d4ec3c77a5e]", "[b1b65ed12634bf1770c6aa3d7ffe5274]", "0x20")
+ self.binary64_to_bid128("4", "[edab3d4ec3c77a5e]", "[b1b65ed12634bf1770c6aa3d7ffe5275]", "0x20")
+ self.binary64_to_bid128("0", "[eec4e14656750390]", "[b1c0be86ff50af859b2aef3f6769b4c0]", "0x20")
+ self.binary64_to_bid128("1", "[eec4e14656750390]", "[b1c0be86ff50af859b2aef3f6769b4c0]", "0x20")
+ self.binary64_to_bid128("2", "[eec4e14656750390]", "[b1c0be86ff50af859b2aef3f6769b4bf]", "0x20")
+ self.binary64_to_bid128("3", "[eec4e14656750390]", "[b1c0be86ff50af859b2aef3f6769b4bf]", "0x20")
+ self.binary64_to_bid128("4", "[eec4e14656750390]", "[b1c0be86ff50af859b2aef3f6769b4c0]", "0x20")
+ self.binary64_to_bid128("0", "[effaeb6368c6a9c0]", "[b1cc80c8dacdd112593ff5875d087ceb]", "0x20")
+ self.binary64_to_bid128("1", "[effaeb6368c6a9c0]", "[b1cc80c8dacdd112593ff5875d087ceb]", "0x20")
+ self.binary64_to_bid128("2", "[effaeb6368c6a9c0]", "[b1cc80c8dacdd112593ff5875d087cea]", "0x20")
+ self.binary64_to_bid128("3", "[effaeb6368c6a9c0]", "[b1cc80c8dacdd112593ff5875d087cea]", "0x20")
+ self.binary64_to_bid128("4", "[effaeb6368c6a9c0]", "[b1cc80c8dacdd112593ff5875d087ceb]", "0x20")
+ self.binary64_to_bid128("0", "[f19cd58c89b283b6]", "[b1dc5c92b34f20af034898811e313439]", "0x20")
+ self.binary64_to_bid128("1", "[f19cd58c89b283b6]", "[b1dc5c92b34f20af034898811e31343a]", "0x20")
+ self.binary64_to_bid128("2", "[f19cd58c89b283b6]", "[b1dc5c92b34f20af034898811e313439]", "0x20")
+ self.binary64_to_bid128("3", "[f19cd58c89b283b6]", "[b1dc5c92b34f20af034898811e313439]", "0x20")
+ self.binary64_to_bid128("4", "[f19cd58c89b283b6]", "[b1dc5c92b34f20af034898811e313439]", "0x20")
+ self.binary64_to_bid128("0", "[f2cb356d9dcb8d64]", "[b1e7c9fd1dced71ceb0b2a4dcbd75107]", "0x20")
+ self.binary64_to_bid128("1", "[f2cb356d9dcb8d64]", "[b1e7c9fd1dced71ceb0b2a4dcbd75108]", "0x20")
+ self.binary64_to_bid128("2", "[f2cb356d9dcb8d64]", "[b1e7c9fd1dced71ceb0b2a4dcbd75107]", "0x20")
+ self.binary64_to_bid128("3", "[f2cb356d9dcb8d64]", "[b1e7c9fd1dced71ceb0b2a4dcbd75107]", "0x20")
+ self.binary64_to_bid128("4", "[f2cb356d9dcb8d64]", "[b1e7c9fd1dced71ceb0b2a4dcbd75107]", "0x20")
+ self.binary64_to_bid128("0", "[f411b95a8121afac]", "[b1f43e90efe87245035d47be4ebce340]", "0x20")
+ self.binary64_to_bid128("1", "[f411b95a8121afac]", "[b1f43e90efe87245035d47be4ebce341]", "0x20")
+ self.binary64_to_bid128("2", "[f411b95a8121afac]", "[b1f43e90efe87245035d47be4ebce340]", "0x20")
+ self.binary64_to_bid128("3", "[f411b95a8121afac]", "[b1f43e90efe87245035d47be4ebce340]", "0x20")
+ self.binary64_to_bid128("4", "[f411b95a8121afac]", "[b1f43e90efe87245035d47be4ebce340]", "0x20")
+ self.binary64_to_bid128("0", "[f54350de9a903650]", "[b1ff657cf6ffee9823c575555320b50b]", "0x20")
+ self.binary64_to_bid128("1", "[f54350de9a903650]", "[b1ff657cf6ffee9823c575555320b50b]", "0x20")
+ self.binary64_to_bid128("2", "[f54350de9a903650]", "[b1ff657cf6ffee9823c575555320b50a]", "0x20")
+ self.binary64_to_bid128("3", "[f54350de9a903650]", "[b1ff657cf6ffee9823c575555320b50a]", "0x20")
+ self.binary64_to_bid128("4", "[f54350de9a903650]", "[b1ff657cf6ffee9823c575555320b50b]", "0x20")
+ self.binary64_to_bid128("0", "[f6b07c78823b280c]", "[b20cfff3925fd54f72cd8da18e8247e6]", "0x20")
+ self.binary64_to_bid128("1", "[f6b07c78823b280c]", "[b20cfff3925fd54f72cd8da18e8247e7]", "0x20")
+ self.binary64_to_bid128("2", "[f6b07c78823b280c]", "[b20cfff3925fd54f72cd8da18e8247e6]", "0x20")
+ self.binary64_to_bid128("3", "[f6b07c78823b280c]", "[b20cfff3925fd54f72cd8da18e8247e6]", "0x20")
+ self.binary64_to_bid128("4", "[f6b07c78823b280c]", "[b20cfff3925fd54f72cd8da18e8247e6]", "0x20")
+ self.binary64_to_bid128("0", "[f80755bdc94a32e2]", "[b21a4bf9b431db528b44112cfc3f57d7]", "0x20")
+ self.binary64_to_bid128("1", "[f80755bdc94a32e2]", "[b21a4bf9b431db528b44112cfc3f57d8]", "0x20")
+ self.binary64_to_bid128("2", "[f80755bdc94a32e2]", "[b21a4bf9b431db528b44112cfc3f57d7]", "0x20")
+ self.binary64_to_bid128("3", "[f80755bdc94a32e2]", "[b21a4bf9b431db528b44112cfc3f57d7]", "0x20")
+ self.binary64_to_bid128("4", "[f80755bdc94a32e2]", "[b21a4bf9b431db528b44112cfc3f57d7]", "0x20")
+ self.binary64_to_bid128("0", "[f9470f8cf57d91a8]", "[b2264ebadc2282eb2ac75c0df226a178]", "0x20")
+ self.binary64_to_bid128("1", "[f9470f8cf57d91a8]", "[b2264ebadc2282eb2ac75c0df226a178]", "0x20")
+ self.binary64_to_bid128("2", "[f9470f8cf57d91a8]", "[b2264ebadc2282eb2ac75c0df226a177]", "0x20")
+ self.binary64_to_bid128("3", "[f9470f8cf57d91a8]", "[b2264ebadc2282eb2ac75c0df226a177]", "0x20")
+ self.binary64_to_bid128("4", "[f9470f8cf57d91a8]", "[b2264ebadc2282eb2ac75c0df226a178]", "0x20")
+ self.binary64_to_bid128("0", "[fa7c8f532787bab0]", "[b232331ec543f612f8e9ae0dd58fe0fd]", "0x20")
+ self.binary64_to_bid128("1", "[fa7c8f532787bab0]", "[b232331ec543f612f8e9ae0dd58fe0fd]", "0x20")
+ self.binary64_to_bid128("2", "[fa7c8f532787bab0]", "[b232331ec543f612f8e9ae0dd58fe0fc]", "0x20")
+ self.binary64_to_bid128("3", "[fa7c8f532787bab0]", "[b232331ec543f612f8e9ae0dd58fe0fc]", "0x20")
+ self.binary64_to_bid128("4", "[fa7c8f532787bab0]", "[b232331ec543f612f8e9ae0dd58fe0fd]", "0x20")
+ self.binary64_to_bid128("0", "[fbfa1309677b6e6d]", "[b2404e4d2e24cee6bdb378db626a7932]", "0x20")
+ self.binary64_to_bid128("1", "[fbfa1309677b6e6d]", "[b2404e4d2e24cee6bdb378db626a7933]", "0x20")
+ self.binary64_to_bid128("2", "[fbfa1309677b6e6d]", "[b2404e4d2e24cee6bdb378db626a7932]", "0x20")
+ self.binary64_to_bid128("3", "[fbfa1309677b6e6d]", "[b2404e4d2e24cee6bdb378db626a7932]", "0x20")
+ self.binary64_to_bid128("4", "[fbfa1309677b6e6d]", "[b2404e4d2e24cee6bdb378db626a7932]", "0x20")
+ self.binary64_to_bid128("0", "[fd39b10c40701d20]", "[b24c50e656f22cd661f0c9399508b243]", "0x20")
+ self.binary64_to_bid128("1", "[fd39b10c40701d20]", "[b24c50e656f22cd661f0c9399508b244]", "0x20")
+ self.binary64_to_bid128("2", "[fd39b10c40701d20]", "[b24c50e656f22cd661f0c9399508b243]", "0x20")
+ self.binary64_to_bid128("3", "[fd39b10c40701d20]", "[b24c50e656f22cd661f0c9399508b243]", "0x20")
+ self.binary64_to_bid128("4", "[fd39b10c40701d20]", "[b24c50e656f22cd661f0c9399508b243]", "0x20")
+ self.binary64_to_bid128("0", "[fe5b57e08c4dfc20]", "[b256e1b5333fa3ab8595e8cfb9ee8779]", "0x20")
+ self.binary64_to_bid128("1", "[fe5b57e08c4dfc20]", "[b256e1b5333fa3ab8595e8cfb9ee8779]", "0x20")
+ self.binary64_to_bid128("2", "[fe5b57e08c4dfc20]", "[b256e1b5333fa3ab8595e8cfb9ee8778]", "0x20")
+ self.binary64_to_bid128("3", "[fe5b57e08c4dfc20]", "[b256e1b5333fa3ab8595e8cfb9ee8778]", "0x20")
+ self.binary64_to_bid128("4", "[fe5b57e08c4dfc20]", "[b256e1b5333fa3ab8595e8cfb9ee8779]", "0x20")
+ self.binary64_to_bid128("0", "[ffefffffffffffff]", "[b26658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("1", "[ffefffffffffffff]", "[b26658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("2", "[ffefffffffffffff]", "[b26658a213cc7a4ffae03c4825156fb3]", "0x20")
+ self.binary64_to_bid128("3", "[ffefffffffffffff]", "[b26658a213cc7a4ffae03c4825156fb3]", "0x20")
+ self.binary64_to_bid128("4", "[ffefffffffffffff]", "[b26658a213cc7a4ffae03c4825156fb4]", "0x20")
+ self.binary64_to_bid128("0", "[fff0000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("1", "[fff0000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("2", "[fff0000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("3", "[fff0000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[fff0000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary64_to_bid128("4", "[7ff0000000000001]", "[7c000000000000000800000000000000]", "01")
+ self.binary64_to_bid128("0", "[C73011CE3F0FB9A8]", "-8.343789121786350179853334944415744e+34", "00")
+ self.binary64_to_bid128("1", "[C73011CE3F0FB9A8]", "-8.343789121786350179853334944415744e+34", "00")
+ self.binary64_to_bid128("2", "[C73011CE3F0FB9A8]", "-8.343789121786350179853334944415744e+34", "00")
+ self.binary64_to_bid128("3", "[C73011CE3F0FB9A8]", "-8.343789121786350179853334944415744e+34", "00")
+ self.binary64_to_bid128("4", "[C73011CE3F0FB9A8]", "-8.343789121786350179853334944415744e+34", "00")
+ self.binary64_to_bid128("0", "[C7332C27E57F1B55]", "-9.954922725879035479726164642103296e+34", "00")
+ self.binary64_to_bid128("1", "[C7332C27E57F1B55]", "-9.954922725879035479726164642103296e+34", "00")
+ self.binary64_to_bid128("2", "[C7332C27E57F1B55]", "-9.954922725879035479726164642103296e+34", "00")
+ self.binary64_to_bid128("3", "[C7332C27E57F1B55]", "-9.954922725879035479726164642103296e+34", "00")
+ self.binary64_to_bid128("4", "[C7332C27E57F1B55]", "-9.954922725879035479726164642103296e+34", "00")
+ self.binary64_to_bid128("0", "[47316CEDED679077]", "9.047839737995123375398050376712192e+34", "00")
+ self.binary64_to_bid128("1", "[47316CEDED679077]", "9.047839737995123375398050376712192e+34", "00")
+ self.binary64_to_bid128("2", "[47316CEDED679077]", "9.047839737995123375398050376712192e+34", "00")
+ self.binary64_to_bid128("3", "[47316CEDED679077]", "9.047839737995123375398050376712192e+34", "00")
+ self.binary64_to_bid128("4", "[47316CEDED679077]", "9.047839737995123375398050376712192e+34", "00")
+ self.binary64_to_bid128("0", "[47305C32284DFEA1]", "8.494670530190904092894471814905856e+34", "00")
+ self.binary64_to_bid128("1", "[47305C32284DFEA1]", "8.494670530190904092894471814905856e+34", "00")
+ self.binary64_to_bid128("2", "[47305C32284DFEA1]", "8.494670530190904092894471814905856e+34", "00")
+ self.binary64_to_bid128("3", "[47305C32284DFEA1]", "8.494670530190904092894471814905856e+34", "00")
+ self.binary64_to_bid128("4", "[47305C32284DFEA1]", "8.494670530190904092894471814905856e+34", "00")
+ }
+
+ private func binary64_to_bid128(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDouble(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_binary80_to_bid32() {
+ self.binary80_to_bid32("0", "[00000000000000000000]", "[32800000]", "00")
+ self.binary80_to_bid32("0", "[00000000000000000000]", "[32800000]", "0x00")
+ self.binary80_to_bid32("0", "[00000000000000000001]", "[00000000]", "0x32")
+ self.binary80_to_bid32("0", "[00000000000000000001]", "[00000000]", "32")
+ self.binary80_to_bid32("0", "[00004000000000000000]", "[00000000]", "32")
+ self.binary80_to_bid32("0", "[00018000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("0", "[00018000000000000000]", "[00000000]", "30")
+ self.binary80_to_bid32("0", "[00028000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("0", "[3eacd3b739b2143adf23]", "[00000000]", "0x30")
+ self.binary80_to_bid32("0", "[3eafb32df8e9f3546564]", "[00000001]", "0x30")
+ self.binary80_to_bid32("0", "[3eafb32df8e9f3546565]", "[00000001]", "0x30")
+ self.binary80_to_bid32("0", "[3EC3AAE0F8831D44094D]", "[000F423F]", "30")
+ self.binary80_to_bid32("0", "[3EC3AAE0FE1C8D0B58E8]", "[000F4240]", "30")
+ self.binary80_to_bid32("0", "[3ec3aae103b5fcd2a881]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("0", "[3ec3aae103b5fcd2a882]", "[000f4240]", "0x20")
+ self.binary80_to_bid32("0", "[3EC3AAE103B5FCD2A882]", "[000F4240]", "20")
+ self.binary80_to_bid32("0", "[3EC3AAE10EE8DC6147B7]", "[000F4241]", "20")
+ self.binary80_to_bid32("0", "[3ec6d59944a37c0752a2]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("0", "[3ec6d59944a37c0752a3]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("0", "[3ecabe647d76f3a3dbc1]", "[0115c2fa]", "0x20")
+ self.binary80_to_bid32("0", "[3ee4b2b2bc45b319f60f]", "[612911d8]", "0x20")
+ self.binary80_to_bid32("0", "[3efceab044a9b52c7270]", "[089e33aa]", "0x20")
+ self.binary80_to_bid32("0", "[3f14ea0166331944e660]", "[0c3285d4]", "0x20")
+ self.binary80_to_bid32("0", "[3f31b3e38e2e04111a18]", "[1094d9f6]", "0x20")
+ self.binary80_to_bid32("0", "[3f4cc40e3a01ddddbc30]", "[149e805d]", "0x20")
+ self.binary80_to_bid32("0", "[3f67b8f9a5001079be3a]", "[18a69fe7]", "0x20")
+ self.binary80_to_bid32("0", "[3f81e5b49589959db96e]", "[1ca03047]", "0x20")
+ self.binary80_to_bid32("0", "[3f9bb4c8cfa604b6ea43]", "[2091003a]", "0x20")
+ self.binary80_to_bid32("0", "[3fb1a746d26409bf3d50]", "[23c1faa0]", "0x20")
+ self.binary80_to_bid32("0", "[3fce8d317f24d8f2865c]", "[281de61b]", "0x20")
+ self.binary80_to_bid32("0", "[3fe8c66247a81de4b06c]", "[2c1c312a]", "0x20")
+ self.binary80_to_bid32("0", "[3ffad000000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary80_to_bid32("0", "[3FFE8000000000000000]", "[32000005]", "00")
+ self.binary80_to_bid32("0", "[3fff8000000000000000]", "[32800001]", "0x00")
+ self.binary80_to_bid32("0", "[3fffc000000000000000]", "[3200000f]", "0x00")
+ self.binary80_to_bid32("0", "[40008000000000000000]", "[32800002]", "00")
+ self.binary80_to_bid32("0", "[40039fe093532e7b3d8e]", "[301e7e82]", "0x20")
+ self.binary80_to_bid32("0", "[40058000000000000000]", "[32800040]", "0x00")
+ self.binary80_to_bid32("0", "[4008f9c0000000000000]", "[328003e7]", "0x00")
+ self.binary80_to_bid32("0", "[4008fa00000000000000]", "[328003e8]", "0x00")
+ self.binary80_to_bid32("0", "[401dee6b27fffffffffe]", "[341e8480]", "0x20")
+ self.binary80_to_bid32("0", "[4038fffffb914045ffff]", "[382bfaff]", "0x20")
+ self.binary80_to_bid32("0", "[4052fffff4a024d65753]", "[3c1d83c8]", "0x20")
+ self.binary80_to_bid32("0", "[406aec65dfe29ec8e418]", "[3fadb9dc]", "0x20")
+ self.binary80_to_bid32("0", "[4082d69552e9a92ca720]", "[4345a2e2]", "0x20")
+ self.binary80_to_bid32("0", "[4097b8082ef9ea3e5800]", "[467d3ee4]", "0x20")
+ self.binary80_to_bid32("0", "[40b8e1cd2f739e889e80]", "[72c400f3]", "0x20")
+ self.binary80_to_bid32("0", "[40d4b2f3299ec7be0c0a]", "[4f9c1509]", "0x20")
+ self.binary80_to_bid32("0", "[40efda240bc2303422bc]", "[53adf221]", "0x20")
+ self.binary80_to_bid32("0", "[4106ffac7c320f02d788]", "[572d2c74]", "0x20")
+ self.binary80_to_bid32("0", "[4123c6da0cd4dc168523]", "[5b92dcca]", "0x20")
+ self.binary80_to_bid32("0", "[414195d049f2e308a39a]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("0", "[414195d049f2e308a39b]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("0", "[414195d04aee3b80ece5]", "[78000000]", "0x28")
+ self.binary80_to_bid32("0", "[414195d04aee3b80ece6]", "[78000000]", "0x28")
+ self.binary80_to_bid32("0", "[7ffeffffffffffffffff]", "[78000000]", "0x28")
+ self.binary80_to_bid32("0", "[7fff0000000000000000]", "[78000000]", "0x00")
+ self.binary80_to_bid32("0", "[7fff8000000000000000]", "[78000000]", "00")
+ self.binary80_to_bid32("0", "[7fff8000000000000001]", "[7C000000]", "01")
+ self.binary80_to_bid32("0", "[7fff8000040000000000]", "[7C000001]", "01")
+ self.binary80_to_bid32("0", "[7fffa000000000000000]", "[7C080000]", "01")
+ self.binary80_to_bid32("0", "[7fffbd08fc0000000000]", "[7C0F423F]", "01")
+ self.binary80_to_bid32("0", "[7fffbd09000000000000]", "[7C000000]", "01")
+ self.binary80_to_bid32("0", "[7fffbfffffffffffffff]", "[7C000000]", "01")
+ self.binary80_to_bid32("0", "[7fffc000000000000001]", "[7C000000]", "00")
+ self.binary80_to_bid32("0", "[7fffc000040000000000]", "[7C000001]", "00")
+ self.binary80_to_bid32("0", "[7fffe000000000000000]", "[7C080000]", "00")
+ self.binary80_to_bid32("0", "[7ffffd08fc0000000000]", "[7C0F423F]", "00")
+ self.binary80_to_bid32("0", "[7ffffd09000000000000]", "[7C000000]", "00")
+ self.binary80_to_bid32("0", "[7fffffffffffffffffff]", "[7C000000]", "00")
+ self.binary80_to_bid32("0", "[80000000000000000000]", "[b2800000]", "00")
+ self.binary80_to_bid32("0", "[80000000000000000001]", "[80000000]", "0x32")
+ self.binary80_to_bid32("0", "[80018000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("0", "[80028000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("0", "[beacd3b739b2143adf23]", "[80000000]", "0x30")
+ self.binary80_to_bid32("0", "[beafb32df8e9f3546564]", "[80000001]", "0x30")
+ self.binary80_to_bid32("0", "[beafb32df8e9f3546565]", "[80000001]", "0x30")
+ self.binary80_to_bid32("0", "[bec3aae103b5fcd2a881]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("0", "[bec3aae103b5fcd2a882]", "[800f4240]", "0x20")
+ self.binary80_to_bid32("0", "[bec6d59944a37c0752a2]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("0", "[bec6d59944a37c0752a3]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("0", "[becabe647d76f3a3dbc1]", "[8115c2fa]", "0x20")
+ self.binary80_to_bid32("0", "[bee4b2b2bc45b319f60f]", "[e12911d8]", "0x20")
+ self.binary80_to_bid32("0", "[befceab044a9b52c7270]", "[889e33aa]", "0x20")
+ self.binary80_to_bid32("0", "[bf14ea0166331944e660]", "[8c3285d4]", "0x20")
+ self.binary80_to_bid32("0", "[bf31b3e38e2e04111a18]", "[9094d9f6]", "0x20")
+ self.binary80_to_bid32("0", "[bf4cc40e3a01ddddbc30]", "[949e805d]", "0x20")
+ self.binary80_to_bid32("0", "[bf67b8f9a5001079be3a]", "[98a69fe7]", "0x20")
+ self.binary80_to_bid32("0", "[bf81e5b49589959db96e]", "[9ca03047]", "0x20")
+ self.binary80_to_bid32("0", "[bf9bb4c8cfa604b6ea43]", "[a091003a]", "0x20")
+ self.binary80_to_bid32("0", "[bfb1a746d26409bf3d50]", "[a3c1faa0]", "0x20")
+ self.binary80_to_bid32("0", "[bfce8d317f24d8f2865c]", "[a81de61b]", "0x20")
+ self.binary80_to_bid32("0", "[bfe8c66247a81de4b06c]", "[ac1c312a]", "0x20")
+ self.binary80_to_bid32("0", "[bffad000000000000000]", "[aecd7c6d]", "0x00")
+ self.binary80_to_bid32("0", "[bfff8000000000000000]", "[b2800001]", "0x00")
+ self.binary80_to_bid32("0", "[bfffc000000000000000]", "[b200000f]", "0x00")
+ self.binary80_to_bid32("0", "[c0039fe093532e7b3d8e]", "[b01e7e82]", "0x20")
+ self.binary80_to_bid32("0", "[c0058000000000000000]", "[b2800040]", "0x00")
+ self.binary80_to_bid32("0", "[c008f9c0000000000000]", "[b28003e7]", "0x00")
+ self.binary80_to_bid32("0", "[c008fa00000000000000]", "[b28003e8]", "0x00")
+ self.binary80_to_bid32("0", "[c01dee6b27fffffffffe]", "[b41e8480]", "0x20")
+ self.binary80_to_bid32("0", "[c038fffffb914045ffff]", "[b82bfaff]", "0x20")
+ self.binary80_to_bid32("0", "[c052fffff4a024d65753]", "[bc1d83c8]", "0x20")
+ self.binary80_to_bid32("0", "[c06aec65dfe29ec8e418]", "[bfadb9dc]", "0x20")
+ self.binary80_to_bid32("0", "[c082d69552e9a92ca720]", "[c345a2e2]", "0x20")
+ self.binary80_to_bid32("0", "[c097b8082ef9ea3e5800]", "[c67d3ee4]", "0x20")
+ self.binary80_to_bid32("0", "[c0b8e1cd2f739e889e80]", "[f2c400f3]", "0x20")
+ self.binary80_to_bid32("0", "[c0d4b2f3299ec7be0c0a]", "[cf9c1509]", "0x20")
+ self.binary80_to_bid32("0", "[c0efda240bc2303422bc]", "[d3adf221]", "0x20")
+ self.binary80_to_bid32("0", "[c106ffac7c320f02d788]", "[d72d2c74]", "0x20")
+ self.binary80_to_bid32("0", "[c123c6da0cd4dc168523]", "[db92dcca]", "0x20")
+ self.binary80_to_bid32("0", "[c14195d049f2e308a39a]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("0", "[c14195d049f2e308a39b]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("0", "[c14195d04aee3b80ece5]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("0", "[c14195d04aee3b80ece6]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("0", "[fffeffffffffffffffff]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("0", "[ffff0000000000000000]", "[f8000000]", "0x00")
+ self.binary80_to_bid32("0", "[ffff8000000000000000]", "[f8000000]", "00")
+ self.binary80_to_bid32("1", "[00000000000000000000]", "[32800000]", "0x00")
+ self.binary80_to_bid32("1", "[00000000000000000001]", "[00000000]", "0x32")
+ self.binary80_to_bid32("1", "[00018000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("1", "[00028000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("1", "[3eacd3b739b2143adf23]", "[00000000]", "0x30")
+ self.binary80_to_bid32("1", "[3eafb32df8e9f3546564]", "[00000000]", "0x30")
+ self.binary80_to_bid32("1", "[3eafb32df8e9f3546565]", "[00000001]", "0x30")
+ self.binary80_to_bid32("1", "[3ec3aae103b5fcd2a881]", "[000f423f]", "0x30")
+ self.binary80_to_bid32("1", "[3ec3aae103b5fcd2a882]", "[000f4240]", "0x20")
+ self.binary80_to_bid32("1", "[3ec6d59944a37c0752a2]", "[6018967f]", "0x20")
+ self.binary80_to_bid32("1", "[3ec6d59944a37c0752a3]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("1", "[3ecabe647d76f3a3dbc1]", "[0115c2fa]", "0x20")
+ self.binary80_to_bid32("1", "[3ee4b2b2bc45b319f60f]", "[612911d7]", "0x20")
+ self.binary80_to_bid32("1", "[3efceab044a9b52c7270]", "[089e33aa]", "0x20")
+ self.binary80_to_bid32("1", "[3f14ea0166331944e660]", "[0c3285d4]", "0x20")
+ self.binary80_to_bid32("1", "[3f31b3e38e2e04111a18]", "[1094d9f5]", "0x20")
+ self.binary80_to_bid32("1", "[3f4cc40e3a01ddddbc30]", "[149e805d]", "0x20")
+ self.binary80_to_bid32("1", "[3f67b8f9a5001079be3a]", "[18a69fe7]", "0x20")
+ self.binary80_to_bid32("1", "[3f81e5b49589959db96e]", "[1ca03047]", "0x20")
+ self.binary80_to_bid32("1", "[3f9bb4c8cfa604b6ea43]", "[2091003a]", "0x20")
+ self.binary80_to_bid32("1", "[3fb1a746d26409bf3d50]", "[23c1fa9f]", "0x20")
+ self.binary80_to_bid32("1", "[3fce8d317f24d8f2865c]", "[281de61b]", "0x20")
+ self.binary80_to_bid32("1", "[3fe8c66247a81de4b06c]", "[2c1c312a]", "0x20")
+ self.binary80_to_bid32("1", "[3ffad000000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary80_to_bid32("1", "[3fff8000000000000000]", "[32800001]", "0x00")
+ self.binary80_to_bid32("1", "[3fffc000000000000000]", "[3200000f]", "0x00")
+ self.binary80_to_bid32("1", "[40039fe093532e7b3d8e]", "[301e7e81]", "0x20")
+ self.binary80_to_bid32("1", "[40058000000000000000]", "[32800040]", "0x00")
+ self.binary80_to_bid32("1", "[4008f9c0000000000000]", "[328003e7]", "0x00")
+ self.binary80_to_bid32("1", "[4008fa00000000000000]", "[328003e8]", "0x00")
+ self.binary80_to_bid32("1", "[401dee6b27fffffffffe]", "[341e847f]", "0x20")
+ self.binary80_to_bid32("1", "[4038fffffb914045ffff]", "[382bfafe]", "0x20")
+ self.binary80_to_bid32("1", "[4052fffff4a024d65753]", "[3c1d83c7]", "0x20")
+ self.binary80_to_bid32("1", "[406aec65dfe29ec8e418]", "[3fadb9dc]", "0x20")
+ self.binary80_to_bid32("1", "[4082d69552e9a92ca720]", "[4345a2e1]", "0x20")
+ self.binary80_to_bid32("1", "[4097b8082ef9ea3e5800]", "[467d3ee3]", "0x20")
+ self.binary80_to_bid32("1", "[40b8e1cd2f739e889e80]", "[72c400f3]", "0x20")
+ self.binary80_to_bid32("1", "[40d4b2f3299ec7be0c0a]", "[4f9c1508]", "0x20")
+ self.binary80_to_bid32("1", "[40efda240bc2303422bc]", "[53adf220]", "0x20")
+ self.binary80_to_bid32("1", "[4106ffac7c320f02d788]", "[572d2c73]", "0x20")
+ self.binary80_to_bid32("1", "[4123c6da0cd4dc168523]", "[5b92dcca]", "0x20")
+ self.binary80_to_bid32("1", "[414195d049f2e308a39a]", "[77f8967e]", "0x20")
+ self.binary80_to_bid32("1", "[414195d049f2e308a39b]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("1", "[414195d04aee3b80ece5]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("1", "[414195d04aee3b80ece6]", "[77f8967f]", "0x28")
+ self.binary80_to_bid32("1", "[7ffeffffffffffffffff]", "[77f8967f]", "0x28")
+ self.binary80_to_bid32("1", "[7fff0000000000000000]", "[78000000]", "0x00")
+ self.binary80_to_bid32("1", "[80000000000000000001]", "[80000001]", "0x32")
+ self.binary80_to_bid32("1", "[80018000000000000000]", "[80000001]", "0x30")
+ self.binary80_to_bid32("1", "[80028000000000000000]", "[80000001]", "0x30")
+ self.binary80_to_bid32("1", "[beacd3b739b2143adf23]", "[80000001]", "0x30")
+ self.binary80_to_bid32("1", "[beafb32df8e9f3546564]", "[80000001]", "0x30")
+ self.binary80_to_bid32("1", "[beafb32df8e9f3546565]", "[80000002]", "0x30")
+ self.binary80_to_bid32("1", "[bec3aae103b5fcd2a881]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("1", "[bec3aae103b5fcd2a882]", "[800f4241]", "0x20")
+ self.binary80_to_bid32("1", "[bec6d59944a37c0752a2]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("1", "[bec6d59944a37c0752a3]", "[808f4241]", "0x20")
+ self.binary80_to_bid32("1", "[becabe647d76f3a3dbc1]", "[8115c2fb]", "0x20")
+ self.binary80_to_bid32("1", "[bee4b2b2bc45b319f60f]", "[e12911d8]", "0x20")
+ self.binary80_to_bid32("1", "[befceab044a9b52c7270]", "[889e33ab]", "0x20")
+ self.binary80_to_bid32("1", "[bf14ea0166331944e660]", "[8c3285d5]", "0x20")
+ self.binary80_to_bid32("1", "[bf31b3e38e2e04111a18]", "[9094d9f6]", "0x20")
+ self.binary80_to_bid32("1", "[bf4cc40e3a01ddddbc30]", "[949e805e]", "0x20")
+ self.binary80_to_bid32("1", "[bf67b8f9a5001079be3a]", "[98a69fe8]", "0x20")
+ self.binary80_to_bid32("1", "[bf81e5b49589959db96e]", "[9ca03048]", "0x20")
+ self.binary80_to_bid32("1", "[bf9bb4c8cfa604b6ea43]", "[a091003b]", "0x20")
+ self.binary80_to_bid32("1", "[bfb1a746d26409bf3d50]", "[a3c1faa0]", "0x20")
+ self.binary80_to_bid32("1", "[bfce8d317f24d8f2865c]", "[a81de61c]", "0x20")
+ self.binary80_to_bid32("1", "[bfe8c66247a81de4b06c]", "[ac1c312b]", "0x20")
+ self.binary80_to_bid32("1", "[bffad000000000000000]", "[aecd7c6d]", "0x00")
+ self.binary80_to_bid32("1", "[bfff8000000000000000]", "[b2800001]", "0x00")
+ self.binary80_to_bid32("1", "[bfffc000000000000000]", "[b200000f]", "0x00")
+ self.binary80_to_bid32("1", "[c0039fe093532e7b3d8e]", "[b01e7e82]", "0x20")
+ self.binary80_to_bid32("1", "[c0058000000000000000]", "[b2800040]", "0x00")
+ self.binary80_to_bid32("1", "[c008f9c0000000000000]", "[b28003e7]", "0x00")
+ self.binary80_to_bid32("1", "[c008fa00000000000000]", "[b28003e8]", "0x00")
+ self.binary80_to_bid32("1", "[c01dee6b27fffffffffe]", "[b41e8480]", "0x20")
+ self.binary80_to_bid32("1", "[c038fffffb914045ffff]", "[b82bfaff]", "0x20")
+ self.binary80_to_bid32("1", "[c052fffff4a024d65753]", "[bc1d83c8]", "0x20")
+ self.binary80_to_bid32("1", "[c06aec65dfe29ec8e418]", "[bfadb9dd]", "0x20")
+ self.binary80_to_bid32("1", "[c082d69552e9a92ca720]", "[c345a2e2]", "0x20")
+ self.binary80_to_bid32("1", "[c097b8082ef9ea3e5800]", "[c67d3ee4]", "0x20")
+ self.binary80_to_bid32("1", "[c0b8e1cd2f739e889e80]", "[f2c400f4]", "0x20")
+ self.binary80_to_bid32("1", "[c0d4b2f3299ec7be0c0a]", "[cf9c1509]", "0x20")
+ self.binary80_to_bid32("1", "[c0efda240bc2303422bc]", "[d3adf221]", "0x20")
+ self.binary80_to_bid32("1", "[c106ffac7c320f02d788]", "[d72d2c74]", "0x20")
+ self.binary80_to_bid32("1", "[c123c6da0cd4dc168523]", "[db92dccb]", "0x20")
+ self.binary80_to_bid32("1", "[c14195d049f2e308a39a]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("1", "[c14195d049f2e308a39b]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("1", "[c14195d04aee3b80ece5]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("1", "[c14195d04aee3b80ece6]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("1", "[fffeffffffffffffffff]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("1", "[ffff0000000000000000]", "[f8000000]", "0x00")
+ self.binary80_to_bid32("2", "[00000000000000000000]", "[32800000]", "0x00")
+ self.binary80_to_bid32("2", "[00000000000000000001]", "[00000001]", "0x32")
+ self.binary80_to_bid32("2", "[00018000000000000000]", "[00000001]", "0x30")
+ self.binary80_to_bid32("2", "[00028000000000000000]", "[00000001]", "0x30")
+ self.binary80_to_bid32("2", "[3eacd3b739b2143adf23]", "[00000001]", "0x30")
+ self.binary80_to_bid32("2", "[3eafb32df8e9f3546564]", "[00000001]", "0x30")
+ self.binary80_to_bid32("2", "[3eafb32df8e9f3546565]", "[00000002]", "0x30")
+ self.binary80_to_bid32("2", "[3ec3aae103b5fcd2a881]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("2", "[3ec3aae103b5fcd2a882]", "[000f4241]", "0x20")
+ self.binary80_to_bid32("2", "[3ec6d59944a37c0752a2]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("2", "[3ec6d59944a37c0752a3]", "[008f4241]", "0x20")
+ self.binary80_to_bid32("2", "[3ecabe647d76f3a3dbc1]", "[0115c2fb]", "0x20")
+ self.binary80_to_bid32("2", "[3ee4b2b2bc45b319f60f]", "[612911d8]", "0x20")
+ self.binary80_to_bid32("2", "[3efceab044a9b52c7270]", "[089e33ab]", "0x20")
+ self.binary80_to_bid32("2", "[3f14ea0166331944e660]", "[0c3285d5]", "0x20")
+ self.binary80_to_bid32("2", "[3f31b3e38e2e04111a18]", "[1094d9f6]", "0x20")
+ self.binary80_to_bid32("2", "[3f4cc40e3a01ddddbc30]", "[149e805e]", "0x20")
+ self.binary80_to_bid32("2", "[3f67b8f9a5001079be3a]", "[18a69fe8]", "0x20")
+ self.binary80_to_bid32("2", "[3f81e5b49589959db96e]", "[1ca03048]", "0x20")
+ self.binary80_to_bid32("2", "[3f9bb4c8cfa604b6ea43]", "[2091003b]", "0x20")
+ self.binary80_to_bid32("2", "[3fb1a746d26409bf3d50]", "[23c1faa0]", "0x20")
+ self.binary80_to_bid32("2", "[3fce8d317f24d8f2865c]", "[281de61c]", "0x20")
+ self.binary80_to_bid32("2", "[3fe8c66247a81de4b06c]", "[2c1c312b]", "0x20")
+ self.binary80_to_bid32("2", "[3ffad000000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary80_to_bid32("2", "[3fff8000000000000000]", "[32800001]", "0x00")
+ self.binary80_to_bid32("2", "[3fffc000000000000000]", "[3200000f]", "0x00")
+ self.binary80_to_bid32("2", "[40039fe093532e7b3d8e]", "[301e7e82]", "0x20")
+ self.binary80_to_bid32("2", "[40058000000000000000]", "[32800040]", "0x00")
+ self.binary80_to_bid32("2", "[4008f9c0000000000000]", "[328003e7]", "0x00")
+ self.binary80_to_bid32("2", "[4008fa00000000000000]", "[328003e8]", "0x00")
+ self.binary80_to_bid32("2", "[401dee6b27fffffffffe]", "[341e8480]", "0x20")
+ self.binary80_to_bid32("2", "[4038fffffb914045ffff]", "[382bfaff]", "0x20")
+ self.binary80_to_bid32("2", "[4052fffff4a024d65753]", "[3c1d83c8]", "0x20")
+ self.binary80_to_bid32("2", "[406aec65dfe29ec8e418]", "[3fadb9dd]", "0x20")
+ self.binary80_to_bid32("2", "[4082d69552e9a92ca720]", "[4345a2e2]", "0x20")
+ self.binary80_to_bid32("2", "[4097b8082ef9ea3e5800]", "[467d3ee4]", "0x20")
+ self.binary80_to_bid32("2", "[40b8e1cd2f739e889e80]", "[72c400f4]", "0x20")
+ self.binary80_to_bid32("2", "[40d4b2f3299ec7be0c0a]", "[4f9c1509]", "0x20")
+ self.binary80_to_bid32("2", "[40efda240bc2303422bc]", "[53adf221]", "0x20")
+ self.binary80_to_bid32("2", "[4106ffac7c320f02d788]", "[572d2c74]", "0x20")
+ self.binary80_to_bid32("2", "[4123c6da0cd4dc168523]", "[5b92dccb]", "0x20")
+ self.binary80_to_bid32("2", "[414195d049f2e308a39a]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("2", "[414195d049f2e308a39b]", "[78000000]", "0x28")
+ self.binary80_to_bid32("2", "[414195d04aee3b80ece5]", "[78000000]", "0x28")
+ self.binary80_to_bid32("2", "[414195d04aee3b80ece6]", "[78000000]", "0x28")
+ self.binary80_to_bid32("2", "[7ffeffffffffffffffff]", "[78000000]", "0x28")
+ self.binary80_to_bid32("2", "[7fff0000000000000000]", "[78000000]", "0x00")
+ self.binary80_to_bid32("2", "[80000000000000000001]", "[80000000]", "0x32")
+ self.binary80_to_bid32("2", "[80018000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("2", "[80028000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("2", "[beacd3b739b2143adf23]", "[80000000]", "0x30")
+ self.binary80_to_bid32("2", "[beafb32df8e9f3546564]", "[80000000]", "0x30")
+ self.binary80_to_bid32("2", "[beafb32df8e9f3546565]", "[80000001]", "0x30")
+ self.binary80_to_bid32("2", "[bec3aae103b5fcd2a881]", "[800f423f]", "0x30")
+ self.binary80_to_bid32("2", "[bec3aae103b5fcd2a882]", "[800f4240]", "0x20")
+ self.binary80_to_bid32("2", "[bec6d59944a37c0752a2]", "[e018967f]", "0x20")
+ self.binary80_to_bid32("2", "[bec6d59944a37c0752a3]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("2", "[becabe647d76f3a3dbc1]", "[8115c2fa]", "0x20")
+ self.binary80_to_bid32("2", "[bee4b2b2bc45b319f60f]", "[e12911d7]", "0x20")
+ self.binary80_to_bid32("2", "[befceab044a9b52c7270]", "[889e33aa]", "0x20")
+ self.binary80_to_bid32("2", "[bf14ea0166331944e660]", "[8c3285d4]", "0x20")
+ self.binary80_to_bid32("2", "[bf31b3e38e2e04111a18]", "[9094d9f5]", "0x20")
+ self.binary80_to_bid32("2", "[bf4cc40e3a01ddddbc30]", "[949e805d]", "0x20")
+ self.binary80_to_bid32("2", "[bf67b8f9a5001079be3a]", "[98a69fe7]", "0x20")
+ self.binary80_to_bid32("2", "[bf81e5b49589959db96e]", "[9ca03047]", "0x20")
+ self.binary80_to_bid32("2", "[bf9bb4c8cfa604b6ea43]", "[a091003a]", "0x20")
+ self.binary80_to_bid32("2", "[bfb1a746d26409bf3d50]", "[a3c1fa9f]", "0x20")
+ self.binary80_to_bid32("2", "[bfce8d317f24d8f2865c]", "[a81de61b]", "0x20")
+ self.binary80_to_bid32("2", "[bfe8c66247a81de4b06c]", "[ac1c312a]", "0x20")
+ self.binary80_to_bid32("2", "[bffad000000000000000]", "[aecd7c6d]", "0x00")
+ self.binary80_to_bid32("2", "[bfff8000000000000000]", "[b2800001]", "0x00")
+ self.binary80_to_bid32("2", "[bfffc000000000000000]", "[b200000f]", "0x00")
+ self.binary80_to_bid32("2", "[c0039fe093532e7b3d8e]", "[b01e7e81]", "0x20")
+ self.binary80_to_bid32("2", "[c0058000000000000000]", "[b2800040]", "0x00")
+ self.binary80_to_bid32("2", "[c008f9c0000000000000]", "[b28003e7]", "0x00")
+ self.binary80_to_bid32("2", "[c008fa00000000000000]", "[b28003e8]", "0x00")
+ self.binary80_to_bid32("2", "[c01dee6b27fffffffffe]", "[b41e847f]", "0x20")
+ self.binary80_to_bid32("2", "[c038fffffb914045ffff]", "[b82bfafe]", "0x20")
+ self.binary80_to_bid32("2", "[c052fffff4a024d65753]", "[bc1d83c7]", "0x20")
+ self.binary80_to_bid32("2", "[c06aec65dfe29ec8e418]", "[bfadb9dc]", "0x20")
+ self.binary80_to_bid32("2", "[c082d69552e9a92ca720]", "[c345a2e1]", "0x20")
+ self.binary80_to_bid32("2", "[c097b8082ef9ea3e5800]", "[c67d3ee3]", "0x20")
+ self.binary80_to_bid32("2", "[c0b8e1cd2f739e889e80]", "[f2c400f3]", "0x20")
+ self.binary80_to_bid32("2", "[c0d4b2f3299ec7be0c0a]", "[cf9c1508]", "0x20")
+ self.binary80_to_bid32("2", "[c0efda240bc2303422bc]", "[d3adf220]", "0x20")
+ self.binary80_to_bid32("2", "[c106ffac7c320f02d788]", "[d72d2c73]", "0x20")
+ self.binary80_to_bid32("2", "[c123c6da0cd4dc168523]", "[db92dcca]", "0x20")
+ self.binary80_to_bid32("2", "[c14195d049f2e308a39a]", "[f7f8967e]", "0x20")
+ self.binary80_to_bid32("2", "[c14195d049f2e308a39b]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("2", "[c14195d04aee3b80ece5]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("2", "[c14195d04aee3b80ece6]", "[f7f8967f]", "0x28")
+ self.binary80_to_bid32("2", "[fffeffffffffffffffff]", "[f7f8967f]", "0x28")
+ self.binary80_to_bid32("2", "[ffff0000000000000000]", "[f8000000]", "0x00")
+ self.binary80_to_bid32("3", "[00000000000000000000]", "[32800000]", "0x00")
+ self.binary80_to_bid32("3", "[00000000000000000001]", "[00000000]", "0x32")
+ self.binary80_to_bid32("3", "[00018000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("3", "[00028000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("3", "[3eacd3b739b2143adf23]", "[00000000]", "0x30")
+ self.binary80_to_bid32("3", "[3eafb32df8e9f3546564]", "[00000000]", "0x30")
+ self.binary80_to_bid32("3", "[3eafb32df8e9f3546565]", "[00000001]", "0x30")
+ self.binary80_to_bid32("3", "[3ec3aae103b5fcd2a881]", "[000f423f]", "0x30")
+ self.binary80_to_bid32("3", "[3ec3aae103b5fcd2a882]", "[000f4240]", "0x20")
+ self.binary80_to_bid32("3", "[3ec6d59944a37c0752a2]", "[6018967f]", "0x20")
+ self.binary80_to_bid32("3", "[3ec6d59944a37c0752a3]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("3", "[3ecabe647d76f3a3dbc1]", "[0115c2fa]", "0x20")
+ self.binary80_to_bid32("3", "[3ee4b2b2bc45b319f60f]", "[612911d7]", "0x20")
+ self.binary80_to_bid32("3", "[3efceab044a9b52c7270]", "[089e33aa]", "0x20")
+ self.binary80_to_bid32("3", "[3f14ea0166331944e660]", "[0c3285d4]", "0x20")
+ self.binary80_to_bid32("3", "[3f31b3e38e2e04111a18]", "[1094d9f5]", "0x20")
+ self.binary80_to_bid32("3", "[3f4cc40e3a01ddddbc30]", "[149e805d]", "0x20")
+ self.binary80_to_bid32("3", "[3f67b8f9a5001079be3a]", "[18a69fe7]", "0x20")
+ self.binary80_to_bid32("3", "[3f81e5b49589959db96e]", "[1ca03047]", "0x20")
+ self.binary80_to_bid32("3", "[3f9bb4c8cfa604b6ea43]", "[2091003a]", "0x20")
+ self.binary80_to_bid32("3", "[3fb1a746d26409bf3d50]", "[23c1fa9f]", "0x20")
+ self.binary80_to_bid32("3", "[3fce8d317f24d8f2865c]", "[281de61b]", "0x20")
+ self.binary80_to_bid32("3", "[3fe8c66247a81de4b06c]", "[2c1c312a]", "0x20")
+ self.binary80_to_bid32("3", "[3ffad000000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary80_to_bid32("3", "[3fff8000000000000000]", "[32800001]", "0x00")
+ self.binary80_to_bid32("3", "[3fffc000000000000000]", "[3200000f]", "0x00")
+ self.binary80_to_bid32("3", "[40039fe093532e7b3d8e]", "[301e7e81]", "0x20")
+ self.binary80_to_bid32("3", "[40058000000000000000]", "[32800040]", "0x00")
+ self.binary80_to_bid32("3", "[4008f9c0000000000000]", "[328003e7]", "0x00")
+ self.binary80_to_bid32("3", "[4008fa00000000000000]", "[328003e8]", "0x00")
+ self.binary80_to_bid32("3", "[401dee6b27fffffffffe]", "[341e847f]", "0x20")
+ self.binary80_to_bid32("3", "[4038fffffb914045ffff]", "[382bfafe]", "0x20")
+ self.binary80_to_bid32("3", "[4052fffff4a024d65753]", "[3c1d83c7]", "0x20")
+ self.binary80_to_bid32("3", "[406aec65dfe29ec8e418]", "[3fadb9dc]", "0x20")
+ self.binary80_to_bid32("3", "[4082d69552e9a92ca720]", "[4345a2e1]", "0x20")
+ self.binary80_to_bid32("3", "[4097b8082ef9ea3e5800]", "[467d3ee3]", "0x20")
+ self.binary80_to_bid32("3", "[40b8e1cd2f739e889e80]", "[72c400f3]", "0x20")
+ self.binary80_to_bid32("3", "[40d4b2f3299ec7be0c0a]", "[4f9c1508]", "0x20")
+ self.binary80_to_bid32("3", "[40efda240bc2303422bc]", "[53adf220]", "0x20")
+ self.binary80_to_bid32("3", "[4106ffac7c320f02d788]", "[572d2c73]", "0x20")
+ self.binary80_to_bid32("3", "[4123c6da0cd4dc168523]", "[5b92dcca]", "0x20")
+ self.binary80_to_bid32("3", "[414195d049f2e308a39a]", "[77f8967e]", "0x20")
+ self.binary80_to_bid32("3", "[414195d049f2e308a39b]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("3", "[414195d04aee3b80ece5]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("3", "[414195d04aee3b80ece6]", "[77f8967f]", "0x28")
+ self.binary80_to_bid32("3", "[7ffeffffffffffffffff]", "[77f8967f]", "0x28")
+ self.binary80_to_bid32("3", "[7fff0000000000000000]", "[78000000]", "0x00")
+ self.binary80_to_bid32("3", "[80000000000000000001]", "[80000000]", "0x32")
+ self.binary80_to_bid32("3", "[80018000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("3", "[80028000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("3", "[beacd3b739b2143adf23]", "[80000000]", "0x30")
+ self.binary80_to_bid32("3", "[beafb32df8e9f3546564]", "[80000000]", "0x30")
+ self.binary80_to_bid32("3", "[beafb32df8e9f3546565]", "[80000001]", "0x30")
+ self.binary80_to_bid32("3", "[bec3aae103b5fcd2a881]", "[800f423f]", "0x30")
+ self.binary80_to_bid32("3", "[bec3aae103b5fcd2a882]", "[800f4240]", "0x20")
+ self.binary80_to_bid32("3", "[bec6d59944a37c0752a2]", "[e018967f]", "0x20")
+ self.binary80_to_bid32("3", "[bec6d59944a37c0752a3]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("3", "[becabe647d76f3a3dbc1]", "[8115c2fa]", "0x20")
+ self.binary80_to_bid32("3", "[bee4b2b2bc45b319f60f]", "[e12911d7]", "0x20")
+ self.binary80_to_bid32("3", "[befceab044a9b52c7270]", "[889e33aa]", "0x20")
+ self.binary80_to_bid32("3", "[bf14ea0166331944e660]", "[8c3285d4]", "0x20")
+ self.binary80_to_bid32("3", "[bf31b3e38e2e04111a18]", "[9094d9f5]", "0x20")
+ self.binary80_to_bid32("3", "[bf4cc40e3a01ddddbc30]", "[949e805d]", "0x20")
+ self.binary80_to_bid32("3", "[bf67b8f9a5001079be3a]", "[98a69fe7]", "0x20")
+ self.binary80_to_bid32("3", "[bf81e5b49589959db96e]", "[9ca03047]", "0x20")
+ self.binary80_to_bid32("3", "[bf9bb4c8cfa604b6ea43]", "[a091003a]", "0x20")
+ self.binary80_to_bid32("3", "[bfb1a746d26409bf3d50]", "[a3c1fa9f]", "0x20")
+ self.binary80_to_bid32("3", "[bfce8d317f24d8f2865c]", "[a81de61b]", "0x20")
+ self.binary80_to_bid32("3", "[bfe8c66247a81de4b06c]", "[ac1c312a]", "0x20")
+ self.binary80_to_bid32("3", "[bffad000000000000000]", "[aecd7c6d]", "0x00")
+ self.binary80_to_bid32("3", "[bfff8000000000000000]", "[b2800001]", "0x00")
+ self.binary80_to_bid32("3", "[bfffc000000000000000]", "[b200000f]", "0x00")
+ self.binary80_to_bid32("3", "[c0039fe093532e7b3d8e]", "[b01e7e81]", "0x20")
+ self.binary80_to_bid32("3", "[c0058000000000000000]", "[b2800040]", "0x00")
+ self.binary80_to_bid32("3", "[c008f9c0000000000000]", "[b28003e7]", "0x00")
+ self.binary80_to_bid32("3", "[c008fa00000000000000]", "[b28003e8]", "0x00")
+ self.binary80_to_bid32("3", "[c01dee6b27fffffffffe]", "[b41e847f]", "0x20")
+ self.binary80_to_bid32("3", "[c038fffffb914045ffff]", "[b82bfafe]", "0x20")
+ self.binary80_to_bid32("3", "[c052fffff4a024d65753]", "[bc1d83c7]", "0x20")
+ self.binary80_to_bid32("3", "[c06aec65dfe29ec8e418]", "[bfadb9dc]", "0x20")
+ self.binary80_to_bid32("3", "[c082d69552e9a92ca720]", "[c345a2e1]", "0x20")
+ self.binary80_to_bid32("3", "[c097b8082ef9ea3e5800]", "[c67d3ee3]", "0x20")
+ self.binary80_to_bid32("3", "[c0b8e1cd2f739e889e80]", "[f2c400f3]", "0x20")
+ self.binary80_to_bid32("3", "[c0d4b2f3299ec7be0c0a]", "[cf9c1508]", "0x20")
+ self.binary80_to_bid32("3", "[c0efda240bc2303422bc]", "[d3adf220]", "0x20")
+ self.binary80_to_bid32("3", "[c106ffac7c320f02d788]", "[d72d2c73]", "0x20")
+ self.binary80_to_bid32("3", "[c123c6da0cd4dc168523]", "[db92dcca]", "0x20")
+ self.binary80_to_bid32("3", "[c14195d049f2e308a39a]", "[f7f8967e]", "0x20")
+ self.binary80_to_bid32("3", "[c14195d049f2e308a39b]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("3", "[c14195d04aee3b80ece5]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("3", "[c14195d04aee3b80ece6]", "[f7f8967f]", "0x28")
+ self.binary80_to_bid32("3", "[fffeffffffffffffffff]", "[f7f8967f]", "0x28")
+ self.binary80_to_bid32("3", "[ffff0000000000000000]", "[f8000000]", "0x00")
+ self.binary80_to_bid32("4", "[00000000000000000000]", "[32800000]", "0x00")
+ self.binary80_to_bid32("4", "[00000000000000000001]", "[00000000]", "0x32")
+ self.binary80_to_bid32("4", "[00018000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("4", "[00028000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("4", "[3eacd3b739b2143adf23]", "[00000000]", "0x30")
+ self.binary80_to_bid32("4", "[3eafb32df8e9f3546564]", "[00000001]", "0x30")
+ self.binary80_to_bid32("4", "[3eafb32df8e9f3546565]", "[00000001]", "0x30")
+ self.binary80_to_bid32("4", "[3ec3aae103b5fcd2a881]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("4", "[3ec3aae103b5fcd2a882]", "[000f4240]", "0x20")
+ self.binary80_to_bid32("4", "[3ec6d59944a37c0752a2]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("4", "[3ec6d59944a37c0752a3]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("4", "[3ecabe647d76f3a3dbc1]", "[0115c2fa]", "0x20")
+ self.binary80_to_bid32("4", "[3ee4b2b2bc45b319f60f]", "[612911d8]", "0x20")
+ self.binary80_to_bid32("4", "[3efceab044a9b52c7270]", "[089e33aa]", "0x20")
+ self.binary80_to_bid32("4", "[3f14ea0166331944e660]", "[0c3285d4]", "0x20")
+ self.binary80_to_bid32("4", "[3f31b3e38e2e04111a18]", "[1094d9f6]", "0x20")
+ self.binary80_to_bid32("4", "[3f4cc40e3a01ddddbc30]", "[149e805d]", "0x20")
+ self.binary80_to_bid32("4", "[3f67b8f9a5001079be3a]", "[18a69fe7]", "0x20")
+ self.binary80_to_bid32("4", "[3f81e5b49589959db96e]", "[1ca03047]", "0x20")
+ self.binary80_to_bid32("4", "[3f9bb4c8cfa604b6ea43]", "[2091003a]", "0x20")
+ self.binary80_to_bid32("4", "[3fb1a746d26409bf3d50]", "[23c1faa0]", "0x20")
+ self.binary80_to_bid32("4", "[3fce8d317f24d8f2865c]", "[281de61b]", "0x20")
+ self.binary80_to_bid32("4", "[3fe8c66247a81de4b06c]", "[2c1c312a]", "0x20")
+ self.binary80_to_bid32("4", "[3ffad000000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary80_to_bid32("4", "[3fff8000000000000000]", "[32800001]", "0x00")
+ self.binary80_to_bid32("4", "[3fffc000000000000000]", "[3200000f]", "0x00")
+ self.binary80_to_bid32("4", "[40039fe093532e7b3d8e]", "[301e7e82]", "0x20")
+ self.binary80_to_bid32("4", "[40058000000000000000]", "[32800040]", "0x00")
+ self.binary80_to_bid32("4", "[4008f9c0000000000000]", "[328003e7]", "0x00")
+ self.binary80_to_bid32("4", "[4008fa00000000000000]", "[328003e8]", "0x00")
+ self.binary80_to_bid32("4", "[401dee6b27fffffffffe]", "[341e8480]", "0x20")
+ self.binary80_to_bid32("4", "[4038fffffb914045ffff]", "[382bfaff]", "0x20")
+ self.binary80_to_bid32("4", "[4052fffff4a024d65753]", "[3c1d83c8]", "0x20")
+ self.binary80_to_bid32("4", "[406aec65dfe29ec8e418]", "[3fadb9dc]", "0x20")
+ self.binary80_to_bid32("4", "[4082d69552e9a92ca720]", "[4345a2e2]", "0x20")
+ self.binary80_to_bid32("4", "[4097b8082ef9ea3e5800]", "[467d3ee4]", "0x20")
+ self.binary80_to_bid32("4", "[40b8e1cd2f739e889e80]", "[72c400f3]", "0x20")
+ self.binary80_to_bid32("4", "[40d4b2f3299ec7be0c0a]", "[4f9c1509]", "0x20")
+ self.binary80_to_bid32("4", "[40efda240bc2303422bc]", "[53adf221]", "0x20")
+ self.binary80_to_bid32("4", "[4106ffac7c320f02d788]", "[572d2c74]", "0x20")
+ self.binary80_to_bid32("4", "[4123c6da0cd4dc168523]", "[5b92dcca]", "0x20")
+ self.binary80_to_bid32("4", "[414195d049f2e308a39a]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("4", "[414195d049f2e308a39b]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("4", "[414195d04aee3b80ece5]", "[78000000]", "0x28")
+ self.binary80_to_bid32("4", "[414195d04aee3b80ece6]", "[78000000]", "0x28")
+ self.binary80_to_bid32("4", "[7ffeffffffffffffffff]", "[78000000]", "0x28")
+ self.binary80_to_bid32("4", "[7fff0000000000000000]", "[78000000]", "0x00")
+ self.binary80_to_bid32("4", "[80000000000000000001]", "[80000000]", "0x32")
+ self.binary80_to_bid32("4", "[80018000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("4", "[80028000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("4", "[beacd3b739b2143adf23]", "[80000000]", "0x30")
+ self.binary80_to_bid32("4", "[beafb32df8e9f3546564]", "[80000001]", "0x30")
+ self.binary80_to_bid32("4", "[beafb32df8e9f3546565]", "[80000001]", "0x30")
+ self.binary80_to_bid32("4", "[bec3aae103b5fcd2a881]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("4", "[bec3aae103b5fcd2a882]", "[800f4240]", "0x20")
+ self.binary80_to_bid32("4", "[bec6d59944a37c0752a2]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("4", "[bec6d59944a37c0752a3]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("4", "[becabe647d76f3a3dbc1]", "[8115c2fa]", "0x20")
+ self.binary80_to_bid32("4", "[bee4b2b2bc45b319f60f]", "[e12911d8]", "0x20")
+ self.binary80_to_bid32("4", "[befceab044a9b52c7270]", "[889e33aa]", "0x20")
+ self.binary80_to_bid32("4", "[bf14ea0166331944e660]", "[8c3285d4]", "0x20")
+ self.binary80_to_bid32("4", "[bf31b3e38e2e04111a18]", "[9094d9f6]", "0x20")
+ self.binary80_to_bid32("4", "[bf4cc40e3a01ddddbc30]", "[949e805d]", "0x20")
+ self.binary80_to_bid32("4", "[bf67b8f9a5001079be3a]", "[98a69fe7]", "0x20")
+ self.binary80_to_bid32("4", "[bf81e5b49589959db96e]", "[9ca03047]", "0x20")
+ self.binary80_to_bid32("4", "[bf9bb4c8cfa604b6ea43]", "[a091003a]", "0x20")
+ self.binary80_to_bid32("4", "[bfb1a746d26409bf3d50]", "[a3c1faa0]", "0x20")
+ self.binary80_to_bid32("4", "[bfce8d317f24d8f2865c]", "[a81de61b]", "0x20")
+ self.binary80_to_bid32("4", "[bfe8c66247a81de4b06c]", "[ac1c312a]", "0x20")
+ self.binary80_to_bid32("4", "[bffad000000000000000]", "[aecd7c6d]", "0x00")
+ self.binary80_to_bid32("4", "[bfff8000000000000000]", "[b2800001]", "0x00")
+ self.binary80_to_bid32("4", "[bfffc000000000000000]", "[b200000f]", "0x00")
+ self.binary80_to_bid32("4", "[c0039fe093532e7b3d8e]", "[b01e7e82]", "0x20")
+ self.binary80_to_bid32("4", "[c0058000000000000000]", "[b2800040]", "0x00")
+ self.binary80_to_bid32("4", "[c008f9c0000000000000]", "[b28003e7]", "0x00")
+ self.binary80_to_bid32("4", "[c008fa00000000000000]", "[b28003e8]", "0x00")
+ self.binary80_to_bid32("4", "[c01dee6b27fffffffffe]", "[b41e8480]", "0x20")
+ self.binary80_to_bid32("4", "[c038fffffb914045ffff]", "[b82bfaff]", "0x20")
+ self.binary80_to_bid32("4", "[c052fffff4a024d65753]", "[bc1d83c8]", "0x20")
+ self.binary80_to_bid32("4", "[c06aec65dfe29ec8e418]", "[bfadb9dc]", "0x20")
+ self.binary80_to_bid32("4", "[c082d69552e9a92ca720]", "[c345a2e2]", "0x20")
+ self.binary80_to_bid32("4", "[c097b8082ef9ea3e5800]", "[c67d3ee4]", "0x20")
+ self.binary80_to_bid32("4", "[c0b8e1cd2f739e889e80]", "[f2c400f3]", "0x20")
+ self.binary80_to_bid32("4", "[c0d4b2f3299ec7be0c0a]", "[cf9c1509]", "0x20")
+ self.binary80_to_bid32("4", "[c0efda240bc2303422bc]", "[d3adf221]", "0x20")
+ self.binary80_to_bid32("4", "[c106ffac7c320f02d788]", "[d72d2c74]", "0x20")
+ self.binary80_to_bid32("4", "[c123c6da0cd4dc168523]", "[db92dcca]", "0x20")
+ self.binary80_to_bid32("4", "[c14195d049f2e308a39a]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("4", "[c14195d049f2e308a39b]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("4", "[c14195d04aee3b80ece5]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("4", "[c14195d04aee3b80ece6]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("4", "[fffeffffffffffffffff]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("4", "[ffff0000000000000000]", "[f8000000]", "0x00")
+ self.binary80_to_bid32("0", "[00000000000000000000]", "[32800000]", "0x00")
+ self.binary80_to_bid32("1", "[00000000000000000000]", "[32800000]", "0x00")
+ self.binary80_to_bid32("2", "[00000000000000000000]", "[32800000]", "0x00")
+ self.binary80_to_bid32("3", "[00000000000000000000]", "[32800000]", "0x00")
+ self.binary80_to_bid32("4", "[00000000000000000000]", "[32800000]", "0x00")
+ self.binary80_to_bid32("0", "[00000000000000000001]", "[00000000]", "0x32")
+ self.binary80_to_bid32("1", "[00000000000000000001]", "[00000000]", "0x32")
+ self.binary80_to_bid32("2", "[00000000000000000001]", "[00000001]", "0x32")
+ self.binary80_to_bid32("3", "[00000000000000000001]", "[00000000]", "0x32")
+ self.binary80_to_bid32("4", "[00000000000000000001]", "[00000000]", "0x32")
+ self.binary80_to_bid32("0", "[00007fffffffffffffff]", "[00000000]", "0x32")
+ self.binary80_to_bid32("1", "[00007fffffffffffffff]", "[00000000]", "0x32")
+ self.binary80_to_bid32("2", "[00007fffffffffffffff]", "[00000001]", "0x32")
+ self.binary80_to_bid32("3", "[00007fffffffffffffff]", "[00000000]", "0x32")
+ self.binary80_to_bid32("4", "[00007fffffffffffffff]", "[00000000]", "0x32")
+ self.binary80_to_bid32("0", "[00018000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("1", "[00018000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("2", "[00018000000000000000]", "[00000001]", "0x30")
+ self.binary80_to_bid32("3", "[00018000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("4", "[00018000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("0", "[00028000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("1", "[00028000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("2", "[00028000000000000000]", "[00000001]", "0x30")
+ self.binary80_to_bid32("3", "[00028000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("4", "[00028000000000000000]", "[00000000]", "0x30")
+ self.binary80_to_bid32("0", "[3eacd3b739b2143adf23]", "[00000000]", "0x30")
+ self.binary80_to_bid32("1", "[3eacd3b739b2143adf23]", "[00000000]", "0x30")
+ self.binary80_to_bid32("2", "[3eacd3b739b2143adf23]", "[00000001]", "0x30")
+ self.binary80_to_bid32("3", "[3eacd3b739b2143adf23]", "[00000000]", "0x30")
+ self.binary80_to_bid32("4", "[3eacd3b739b2143adf23]", "[00000000]", "0x30")
+ self.binary80_to_bid32("0", "[3eafb32df8e9f3546564]", "[00000001]", "0x30")
+ self.binary80_to_bid32("1", "[3eafb32df8e9f3546564]", "[00000000]", "0x30")
+ self.binary80_to_bid32("2", "[3eafb32df8e9f3546564]", "[00000001]", "0x30")
+ self.binary80_to_bid32("3", "[3eafb32df8e9f3546564]", "[00000000]", "0x30")
+ self.binary80_to_bid32("4", "[3eafb32df8e9f3546564]", "[00000001]", "0x30")
+ self.binary80_to_bid32("0", "[3eafb32df8e9f3546565]", "[00000001]", "0x30")
+ self.binary80_to_bid32("1", "[3eafb32df8e9f3546565]", "[00000001]", "0x30")
+ self.binary80_to_bid32("2", "[3eafb32df8e9f3546565]", "[00000002]", "0x30")
+ self.binary80_to_bid32("3", "[3eafb32df8e9f3546565]", "[00000001]", "0x30")
+ self.binary80_to_bid32("4", "[3eafb32df8e9f3546565]", "[00000001]", "0x30")
+ self.binary80_to_bid32("0", "[3eb3ded59edd8705a1d0]", "[00000014]", "0x30")
+ self.binary80_to_bid32("1", "[3eb3ded59edd8705a1d0]", "[00000013]", "0x30")
+ self.binary80_to_bid32("2", "[3eb3ded59edd8705a1d0]", "[00000014]", "0x30")
+ self.binary80_to_bid32("3", "[3eb3ded59edd8705a1d0]", "[00000013]", "0x30")
+ self.binary80_to_bid32("4", "[3eb3ded59edd8705a1d0]", "[00000014]", "0x30")
+ self.binary80_to_bid32("0", "[3ebcdab99003fc800be7]", "[00002710]", "0x30")
+ self.binary80_to_bid32("1", "[3ebcdab99003fc800be7]", "[0000270f]", "0x30")
+ self.binary80_to_bid32("2", "[3ebcdab99003fc800be7]", "[00002710]", "0x30")
+ self.binary80_to_bid32("3", "[3ebcdab99003fc800be7]", "[0000270f]", "0x30")
+ self.binary80_to_bid32("4", "[3ebcdab99003fc800be7]", "[00002710]", "0x30")
+ self.binary80_to_bid32("0", "[3ebcdab99003fc800be8]", "[00002710]", "0x30")
+ self.binary80_to_bid32("1", "[3ebcdab99003fc800be8]", "[0000270f]", "0x30")
+ self.binary80_to_bid32("2", "[3ebcdab99003fc800be8]", "[00002710]", "0x30")
+ self.binary80_to_bid32("3", "[3ebcdab99003fc800be8]", "[0000270f]", "0x30")
+ self.binary80_to_bid32("4", "[3ebcdab99003fc800be8]", "[00002710]", "0x30")
+ self.binary80_to_bid32("0", "[3ebd9e85094a09157d19]", "[0000389f]", "0x30")
+ self.binary80_to_bid32("1", "[3ebd9e85094a09157d19]", "[0000389e]", "0x30")
+ self.binary80_to_bid32("2", "[3ebd9e85094a09157d19]", "[0000389f]", "0x30")
+ self.binary80_to_bid32("3", "[3ebd9e85094a09157d19]", "[0000389e]", "0x30")
+ self.binary80_to_bid32("4", "[3ebd9e85094a09157d19]", "[0000389f]", "0x30")
+ self.binary80_to_bid32("0", "[3ec088b3fa027dd00770]", "[000186a0]", "0x30")
+ self.binary80_to_bid32("1", "[3ec088b3fa027dd00770]", "[0001869f]", "0x30")
+ self.binary80_to_bid32("2", "[3ec088b3fa027dd00770]", "[000186a0]", "0x30")
+ self.binary80_to_bid32("3", "[3ec088b3fa027dd00770]", "[0001869f]", "0x30")
+ self.binary80_to_bid32("4", "[3ec088b3fa027dd00770]", "[000186a0]", "0x30")
+ self.binary80_to_bid32("0", "[3ec088b3fa027dd00771]", "[000186a0]", "0x30")
+ self.binary80_to_bid32("1", "[3ec088b3fa027dd00771]", "[0001869f]", "0x30")
+ self.binary80_to_bid32("2", "[3ec088b3fa027dd00771]", "[000186a0]", "0x30")
+ self.binary80_to_bid32("3", "[3ec088b3fa027dd00771]", "[0001869f]", "0x30")
+ self.binary80_to_bid32("4", "[3ec088b3fa027dd00771]", "[000186a0]", "0x30")
+ self.binary80_to_bid32("0", "[3ec3aae103b5fcd2a881]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("1", "[3ec3aae103b5fcd2a881]", "[000f423f]", "0x30")
+ self.binary80_to_bid32("2", "[3ec3aae103b5fcd2a881]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("3", "[3ec3aae103b5fcd2a881]", "[000f423f]", "0x30")
+ self.binary80_to_bid32("4", "[3ec3aae103b5fcd2a881]", "[000f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("0", "[3ec3aae103b5fcd2a882]", "[000f4240]", "0x20")
+ self.binary80_to_bid32("1", "[3ec3aae103b5fcd2a882]", "[000f4240]", "0x20")
+ self.binary80_to_bid32("2", "[3ec3aae103b5fcd2a882]", "[000f4241]", "0x20")
+ self.binary80_to_bid32("3", "[3ec3aae103b5fcd2a882]", "[000f4240]", "0x20")
+ self.binary80_to_bid32("4", "[3ec3aae103b5fcd2a882]", "[000f4240]", "0x20")
+ self.binary80_to_bid32("0", "[3ec3ff47fd503b890391]", "[0016cbaa]", "0x20")
+ self.binary80_to_bid32("1", "[3ec3ff47fd503b890391]", "[0016cba9]", "0x20")
+ self.binary80_to_bid32("2", "[3ec3ff47fd503b890391]", "[0016cbaa]", "0x20")
+ self.binary80_to_bid32("3", "[3ec3ff47fd503b890391]", "[0016cba9]", "0x20")
+ self.binary80_to_bid32("4", "[3ec3ff47fd503b890391]", "[0016cbaa]", "0x20")
+ self.binary80_to_bid32("0", "[3ec6d59944a37c0752a2]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("1", "[3ec6d59944a37c0752a2]", "[6018967f]", "0x20")
+ self.binary80_to_bid32("2", "[3ec6d59944a37c0752a2]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("3", "[3ec6d59944a37c0752a2]", "[6018967f]", "0x20")
+ self.binary80_to_bid32("4", "[3ec6d59944a37c0752a2]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("0", "[3ec6d59944a37c0752a3]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("1", "[3ec6d59944a37c0752a3]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("2", "[3ec6d59944a37c0752a3]", "[008f4241]", "0x20")
+ self.binary80_to_bid32("3", "[3ec6d59944a37c0752a3]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("4", "[3ec6d59944a37c0752a3]", "[008f4240]", "0x20")
+ self.binary80_to_bid32("0", "[3ecab433cc13309029b3]", "[011498ce]", "0x20")
+ self.binary80_to_bid32("1", "[3ecab433cc13309029b3]", "[011498ce]", "0x20")
+ self.binary80_to_bid32("2", "[3ecab433cc13309029b3]", "[011498cf]", "0x20")
+ self.binary80_to_bid32("3", "[3ecab433cc13309029b3]", "[011498ce]", "0x20")
+ self.binary80_to_bid32("4", "[3ecab433cc13309029b3]", "[011498ce]", "0x20")
+ self.binary80_to_bid32("0", "[3ed082cf862ed4bef93c]", "[01dfb086]", "0x20")
+ self.binary80_to_bid32("1", "[3ed082cf862ed4bef93c]", "[01dfb085]", "0x20")
+ self.binary80_to_bid32("2", "[3ed082cf862ed4bef93c]", "[01dfb086]", "0x20")
+ self.binary80_to_bid32("3", "[3ed082cf862ed4bef93c]", "[01dfb085]", "0x20")
+ self.binary80_to_bid32("4", "[3ed082cf862ed4bef93c]", "[01dfb086]", "0x20")
+ self.binary80_to_bid32("0", "[3ed2c56940c5fdb75f20]", "[0239c371]", "0x20")
+ self.binary80_to_bid32("1", "[3ed2c56940c5fdb75f20]", "[0239c371]", "0x20")
+ self.binary80_to_bid32("2", "[3ed2c56940c5fdb75f20]", "[0239c372]", "0x20")
+ self.binary80_to_bid32("3", "[3ed2c56940c5fdb75f20]", "[0239c371]", "0x20")
+ self.binary80_to_bid32("4", "[3ed2c56940c5fdb75f20]", "[0239c371]", "0x20")
+ self.binary80_to_bid32("0", "[3edd8c5cf3180c49cc03]", "[03d41cfc]", "0x20")
+ self.binary80_to_bid32("1", "[3edd8c5cf3180c49cc03]", "[03d41cfc]", "0x20")
+ self.binary80_to_bid32("2", "[3edd8c5cf3180c49cc03]", "[03d41cfd]", "0x20")
+ self.binary80_to_bid32("3", "[3edd8c5cf3180c49cc03]", "[03d41cfc]", "0x20")
+ self.binary80_to_bid32("4", "[3edd8c5cf3180c49cc03]", "[03d41cfc]", "0x20")
+ self.binary80_to_bid32("0", "[3ee3f6641b25bd412926]", "[04de7f22]", "0x20")
+ self.binary80_to_bid32("1", "[3ee3f6641b25bd412926]", "[04de7f21]", "0x20")
+ self.binary80_to_bid32("2", "[3ee3f6641b25bd412926]", "[04de7f22]", "0x20")
+ self.binary80_to_bid32("3", "[3ee3f6641b25bd412926]", "[04de7f21]", "0x20")
+ self.binary80_to_bid32("4", "[3ee3f6641b25bd412926]", "[04de7f22]", "0x20")
+ self.binary80_to_bid32("0", "[3ee8b16f1fa6138590fc]", "[0595c6a9]", "0x20")
+ self.binary80_to_bid32("1", "[3ee8b16f1fa6138590fc]", "[0595c6a8]", "0x20")
+ self.binary80_to_bid32("2", "[3ee8b16f1fa6138590fc]", "[0595c6a9]", "0x20")
+ self.binary80_to_bid32("3", "[3ee8b16f1fa6138590fc]", "[0595c6a8]", "0x20")
+ self.binary80_to_bid32("4", "[3ee8b16f1fa6138590fc]", "[0595c6a9]", "0x20")
+ self.binary80_to_bid32("0", "[3ef0fceed390bcbfe5c4]", "[06cf778b]", "0x20")
+ self.binary80_to_bid32("1", "[3ef0fceed390bcbfe5c4]", "[06cf778b]", "0x20")
+ self.binary80_to_bid32("2", "[3ef0fceed390bcbfe5c4]", "[06cf778c]", "0x20")
+ self.binary80_to_bid32("3", "[3ef0fceed390bcbfe5c4]", "[06cf778b]", "0x20")
+ self.binary80_to_bid32("4", "[3ef0fceed390bcbfe5c4]", "[06cf778b]", "0x20")
+ self.binary80_to_bid32("0", "[3ef2c0fcad82347d63a0]", "[071840d3]", "0x20")
+ self.binary80_to_bid32("1", "[3ef2c0fcad82347d63a0]", "[071840d2]", "0x20")
+ self.binary80_to_bid32("2", "[3ef2c0fcad82347d63a0]", "[071840d3]", "0x20")
+ self.binary80_to_bid32("3", "[3ef2c0fcad82347d63a0]", "[071840d2]", "0x20")
+ self.binary80_to_bid32("4", "[3ef2c0fcad82347d63a0]", "[071840d3]", "0x20")
+ self.binary80_to_bid32("0", "[3efcc24ccba5cbdaaf74]", "[08990117]", "0x20")
+ self.binary80_to_bid32("1", "[3efcc24ccba5cbdaaf74]", "[08990117]", "0x20")
+ self.binary80_to_bid32("2", "[3efcc24ccba5cbdaaf74]", "[08990118]", "0x20")
+ self.binary80_to_bid32("3", "[3efcc24ccba5cbdaaf74]", "[08990117]", "0x20")
+ self.binary80_to_bid32("4", "[3efcc24ccba5cbdaaf74]", "[08990117]", "0x20")
+ self.binary80_to_bid32("0", "[3f03c40c89ad743f2681]", "[09a04b26]", "0x20")
+ self.binary80_to_bid32("1", "[3f03c40c89ad743f2681]", "[09a04b26]", "0x20")
+ self.binary80_to_bid32("2", "[3f03c40c89ad743f2681]", "[09a04b27]", "0x20")
+ self.binary80_to_bid32("3", "[3f03c40c89ad743f2681]", "[09a04b26]", "0x20")
+ self.binary80_to_bid32("4", "[3f03c40c89ad743f2681]", "[09a04b26]", "0x20")
+ self.binary80_to_bid32("0", "[3f0990d8fb12d906b0d8]", "[0a8f4526]", "0x20")
+ self.binary80_to_bid32("1", "[3f0990d8fb12d906b0d8]", "[0a8f4526]", "0x20")
+ self.binary80_to_bid32("2", "[3f0990d8fb12d906b0d8]", "[0a8f4527]", "0x20")
+ self.binary80_to_bid32("3", "[3f0990d8fb12d906b0d8]", "[0a8f4526]", "0x20")
+ self.binary80_to_bid32("4", "[3f0990d8fb12d906b0d8]", "[0a8f4526]", "0x20")
+ self.binary80_to_bid32("0", "[3f0fb50f39d78f485d0e]", "[0b7a2934]", "0x20")
+ self.binary80_to_bid32("1", "[3f0fb50f39d78f485d0e]", "[0b7a2933]", "0x20")
+ self.binary80_to_bid32("2", "[3f0fb50f39d78f485d0e]", "[0b7a2934]", "0x20")
+ self.binary80_to_bid32("3", "[3f0fb50f39d78f485d0e]", "[0b7a2933]", "0x20")
+ self.binary80_to_bid32("4", "[3f0fb50f39d78f485d0e]", "[0b7a2934]", "0x20")
+ self.binary80_to_bid32("0", "[3f12ea0166331944e660]", "[0bfe4e92]", "0x20")
+ self.binary80_to_bid32("1", "[3f12ea0166331944e660]", "[0bfe4e92]", "0x20")
+ self.binary80_to_bid32("2", "[3f12ea0166331944e660]", "[0bfe4e93]", "0x20")
+ self.binary80_to_bid32("3", "[3f12ea0166331944e660]", "[0bfe4e92]", "0x20")
+ self.binary80_to_bid32("4", "[3f12ea0166331944e660]", "[0bfe4e92]", "0x20")
+ self.binary80_to_bid32("0", "[3f1db6d117d7ebbdd3fb]", "[0d943588]", "0x20")
+ self.binary80_to_bid32("1", "[3f1db6d117d7ebbdd3fb]", "[0d943588]", "0x20")
+ self.binary80_to_bid32("2", "[3f1db6d117d7ebbdd3fb]", "[0d943589]", "0x20")
+ self.binary80_to_bid32("3", "[3f1db6d117d7ebbdd3fb]", "[0d943588]", "0x20")
+ self.binary80_to_bid32("4", "[3f1db6d117d7ebbdd3fb]", "[0d943588]", "0x20")
+ self.binary80_to_bid32("0", "[3f23e03a19b62e540ad0]", "[0e8fdd0e]", "0x20")
+ self.binary80_to_bid32("1", "[3f23e03a19b62e540ad0]", "[0e8fdd0d]", "0x20")
+ self.binary80_to_bid32("2", "[3f23e03a19b62e540ad0]", "[0e8fdd0e]", "0x20")
+ self.binary80_to_bid32("3", "[3f23e03a19b62e540ad0]", "[0e8fdd0d]", "0x20")
+ self.binary80_to_bid32("4", "[3f23e03a19b62e540ad0]", "[0e8fdd0e]", "0x20")
+ self.binary80_to_bid32("0", "[3f2abc7e811730e91904]", "[0f9111c6]", "0x20")
+ self.binary80_to_bid32("1", "[3f2abc7e811730e91904]", "[0f9111c5]", "0x20")
+ self.binary80_to_bid32("2", "[3f2abc7e811730e91904]", "[0f9111c6]", "0x20")
+ self.binary80_to_bid32("3", "[3f2abc7e811730e91904]", "[0f9111c5]", "0x20")
+ self.binary80_to_bid32("4", "[3f2abc7e811730e91904]", "[0f9111c6]", "0x20")
+ self.binary80_to_bid32("0", "[3f30e7d932e3a3a3d127]", "[64065ef2]", "0x20")
+ self.binary80_to_bid32("1", "[3f30e7d932e3a3a3d127]", "[64065ef1]", "0x20")
+ self.binary80_to_bid32("2", "[3f30e7d932e3a3a3d127]", "[64065ef2]", "0x20")
+ self.binary80_to_bid32("3", "[3f30e7d932e3a3a3d127]", "[64065ef1]", "0x20")
+ self.binary80_to_bid32("4", "[3f30e7d932e3a3a3d127]", "[64065ef2]", "0x20")
+ self.binary80_to_bid32("0", "[3f33b789212575779e80]", "[10d518b1]", "0x20")
+ self.binary80_to_bid32("1", "[3f33b789212575779e80]", "[10d518b1]", "0x20")
+ self.binary80_to_bid32("2", "[3f33b789212575779e80]", "[10d518b2]", "0x20")
+ self.binary80_to_bid32("3", "[3f33b789212575779e80]", "[10d518b1]", "0x20")
+ self.binary80_to_bid32("4", "[3f33b789212575779e80]", "[10d518b1]", "0x20")
+ self.binary80_to_bid32("0", "[3f3ddbb6d15a485f6f63]", "[126850c6]", "0x20")
+ self.binary80_to_bid32("1", "[3f3ddbb6d15a485f6f63]", "[126850c5]", "0x20")
+ self.binary80_to_bid32("2", "[3f3ddbb6d15a485f6f63]", "[126850c6]", "0x20")
+ self.binary80_to_bid32("3", "[3f3ddbb6d15a485f6f63]", "[126850c5]", "0x20")
+ self.binary80_to_bid32("4", "[3f3ddbb6d15a485f6f63]", "[126850c6]", "0x20")
+ self.binary80_to_bid32("0", "[3f4295e3e177474a4200]", "[1316c5ce]", "0x20")
+ self.binary80_to_bid32("1", "[3f4295e3e177474a4200]", "[1316c5cd]", "0x20")
+ self.binary80_to_bid32("2", "[3f4295e3e177474a4200]", "[1316c5ce]", "0x20")
+ self.binary80_to_bid32("3", "[3f4295e3e177474a4200]", "[1316c5cd]", "0x20")
+ self.binary80_to_bid32("4", "[3f4295e3e177474a4200]", "[1316c5ce]", "0x20")
+ self.binary80_to_bid32("0", "[3f43f3c64649570fe033]", "[134a12a8]", "0x20")
+ self.binary80_to_bid32("1", "[3f43f3c64649570fe033]", "[134a12a8]", "0x20")
+ self.binary80_to_bid32("2", "[3f43f3c64649570fe033]", "[134a12a9]", "0x20")
+ self.binary80_to_bid32("3", "[3f43f3c64649570fe033]", "[134a12a8]", "0x20")
+ self.binary80_to_bid32("4", "[3f43f3c64649570fe033]", "[134a12a8]", "0x20")
+ self.binary80_to_bid32("0", "[3f50a9c0a864828be6ad]", "[152a4142]", "0x20")
+ self.binary80_to_bid32("1", "[3f50a9c0a864828be6ad]", "[152a4142]", "0x20")
+ self.binary80_to_bid32("2", "[3f50a9c0a864828be6ad]", "[152a4143]", "0x20")
+ self.binary80_to_bid32("3", "[3f50a9c0a864828be6ad]", "[152a4142]", "0x20")
+ self.binary80_to_bid32("4", "[3f50a9c0a864828be6ad]", "[152a4142]", "0x20")
+ self.binary80_to_bid32("0", "[3f538023fe90bb6890f0]", "[15998479]", "0x20")
+ self.binary80_to_bid32("1", "[3f538023fe90bb6890f0]", "[15998478]", "0x20")
+ self.binary80_to_bid32("2", "[3f538023fe90bb6890f0]", "[15998479]", "0x20")
+ self.binary80_to_bid32("3", "[3f538023fe90bb6890f0]", "[15998478]", "0x20")
+ self.binary80_to_bid32("4", "[3f538023fe90bb6890f0]", "[15998479]", "0x20")
+ self.binary80_to_bid32("0", "[3f5dd0611dbe6c001893]", "[172a7de9]", "0x20")
+ self.binary80_to_bid32("1", "[3f5dd0611dbe6c001893]", "[172a7de9]", "0x20")
+ self.binary80_to_bid32("2", "[3f5dd0611dbe6c001893]", "[172a7dea]", "0x20")
+ self.binary80_to_bid32("3", "[3f5dd0611dbe6c001893]", "[172a7de9]", "0x20")
+ self.binary80_to_bid32("4", "[3f5dd0611dbe6c001893]", "[172a7de9]", "0x20")
+ self.binary80_to_bid32("0", "[3f63f010f658ae9dbe1f]", "[181f5482]", "0x20")
+ self.binary80_to_bid32("1", "[3f63f010f658ae9dbe1f]", "[181f5481]", "0x20")
+ self.binary80_to_bid32("2", "[3f63f010f658ae9dbe1f]", "[181f5482]", "0x20")
+ self.binary80_to_bid32("3", "[3f63f010f658ae9dbe1f]", "[181f5481]", "0x20")
+ self.binary80_to_bid32("4", "[3f63f010f658ae9dbe1f]", "[181f5482]", "0x20")
+ self.binary80_to_bid32("0", "[3f69bd3d1a726eb79f6c]", "[190fce53]", "0x20")
+ self.binary80_to_bid32("1", "[3f69bd3d1a726eb79f6c]", "[190fce52]", "0x20")
+ self.binary80_to_bid32("2", "[3f69bd3d1a726eb79f6c]", "[190fce53]", "0x20")
+ self.binary80_to_bid32("3", "[3f69bd3d1a726eb79f6c]", "[190fce52]", "0x20")
+ self.binary80_to_bid32("4", "[3f69bd3d1a726eb79f6c]", "[190fce53]", "0x20")
+ self.binary80_to_bid32("0", "[3f6e84fdae3e8788ba78]", "[19a38b9c]", "0x20")
+ self.binary80_to_bid32("1", "[3f6e84fdae3e8788ba78]", "[19a38b9b]", "0x20")
+ self.binary80_to_bid32("2", "[3f6e84fdae3e8788ba78]", "[19a38b9c]", "0x20")
+ self.binary80_to_bid32("3", "[3f6e84fdae3e8788ba78]", "[19a38b9b]", "0x20")
+ self.binary80_to_bid32("4", "[3f6e84fdae3e8788ba78]", "[19a38b9c]", "0x20")
+ self.binary80_to_bid32("0", "[3f72b295ae28495d3920]", "[1a4c5ed1]", "0x20")
+ self.binary80_to_bid32("1", "[3f72b295ae28495d3920]", "[1a4c5ed0]", "0x20")
+ self.binary80_to_bid32("2", "[3f72b295ae28495d3920]", "[1a4c5ed1]", "0x20")
+ self.binary80_to_bid32("3", "[3f72b295ae28495d3920]", "[1a4c5ed0]", "0x20")
+ self.binary80_to_bid32("4", "[3f72b295ae28495d3920]", "[1a4c5ed1]", "0x20")
+ self.binary80_to_bid32("0", "[3f7cc8f78d334d80b34a]", "[1bd8012e]", "0x20")
+ self.binary80_to_bid32("1", "[3f7cc8f78d334d80b34a]", "[1bd8012d]", "0x20")
+ self.binary80_to_bid32("2", "[3f7cc8f78d334d80b34a]", "[1bd8012e]", "0x20")
+ self.binary80_to_bid32("3", "[3f7cc8f78d334d80b34a]", "[1bd8012d]", "0x20")
+ self.binary80_to_bid32("4", "[3f7cc8f78d334d80b34a]", "[1bd8012e]", "0x20")
+ self.binary80_to_bid32("0", "[3f81ba99090829723038]", "[1c9a25de]", "0x20")
+ self.binary80_to_bid32("1", "[3f81ba99090829723038]", "[1c9a25de]", "0x20")
+ self.binary80_to_bid32("2", "[3f81ba99090829723038]", "[1c9a25df]", "0x20")
+ self.binary80_to_bid32("3", "[3f81ba99090829723038]", "[1c9a25de]", "0x20")
+ self.binary80_to_bid32("4", "[3f81ba99090829723038]", "[1c9a25de]", "0x20")
+ self.binary80_to_bid32("0", "[3f8afa8b6e6c0337af94]", "[1e11f9c7]", "0x20")
+ self.binary80_to_bid32("1", "[3f8afa8b6e6c0337af94]", "[1e11f9c7]", "0x20")
+ self.binary80_to_bid32("2", "[3f8afa8b6e6c0337af94]", "[1e11f9c8]", "0x20")
+ self.binary80_to_bid32("3", "[3f8afa8b6e6c0337af94]", "[1e11f9c7]", "0x20")
+ self.binary80_to_bid32("4", "[3f8afa8b6e6c0337af94]", "[1e11f9c7]", "0x20")
+ self.binary80_to_bid32("0", "[3f8fae08d47c1931c9c6]", "[1ea7f4d4]", "0x20")
+ self.binary80_to_bid32("1", "[3f8fae08d47c1931c9c6]", "[1ea7f4d3]", "0x20")
+ self.binary80_to_bid32("2", "[3f8fae08d47c1931c9c6]", "[1ea7f4d4]", "0x20")
+ self.binary80_to_bid32("3", "[3f8fae08d47c1931c9c6]", "[1ea7f4d3]", "0x20")
+ self.binary80_to_bid32("4", "[3f8fae08d47c1931c9c6]", "[1ea7f4d4]", "0x20")
+ self.binary80_to_bid32("0", "[3f95ac2de6f4c8bd837c]", "[1f994caa]", "0x20")
+ self.binary80_to_bid32("1", "[3f95ac2de6f4c8bd837c]", "[1f994caa]", "0x20")
+ self.binary80_to_bid32("2", "[3f95ac2de6f4c8bd837c]", "[1f994cab]", "0x20")
+ self.binary80_to_bid32("3", "[3f95ac2de6f4c8bd837c]", "[1f994caa]", "0x20")
+ self.binary80_to_bid32("4", "[3f95ac2de6f4c8bd837c]", "[1f994caa]", "0x20")
+ self.binary80_to_bid32("0", "[3f9ce3ce5765ace531ae]", "[20aad876]", "0x20")
+ self.binary80_to_bid32("1", "[3f9ce3ce5765ace531ae]", "[20aad876]", "0x20")
+ self.binary80_to_bid32("2", "[3f9ce3ce5765ace531ae]", "[20aad877]", "0x20")
+ self.binary80_to_bid32("3", "[3f9ce3ce5765ace531ae]", "[20aad876]", "0x20")
+ self.binary80_to_bid32("4", "[3f9ce3ce5765ace531ae]", "[20aad876]", "0x20")
+ self.binary80_to_bid32("0", "[3fa2f2f4e6c71b33cb36]", "[219d3eae]", "0x20")
+ self.binary80_to_bid32("1", "[3fa2f2f4e6c71b33cb36]", "[219d3ead]", "0x20")
+ self.binary80_to_bid32("2", "[3fa2f2f4e6c71b33cb36]", "[219d3eae]", "0x20")
+ self.binary80_to_bid32("3", "[3fa2f2f4e6c71b33cb36]", "[219d3ead]", "0x20")
+ self.binary80_to_bid32("4", "[3fa2f2f4e6c71b33cb36]", "[219d3eae]", "0x20")
+ self.binary80_to_bid32("0", "[3fa9907d33443289d71e]", "[22964317]", "0x20")
+ self.binary80_to_bid32("1", "[3fa9907d33443289d71e]", "[22964316]", "0x20")
+ self.binary80_to_bid32("2", "[3fa9907d33443289d71e]", "[22964317]", "0x20")
+ self.binary80_to_bid32("3", "[3fa9907d33443289d71e]", "[22964316]", "0x20")
+ self.binary80_to_bid32("4", "[3fa9907d33443289d71e]", "[22964317]", "0x20")
+ self.binary80_to_bid32("0", "[3fafc3cb614e5d580900]", "[23934e8c]", "0x20")
+ self.binary80_to_bid32("1", "[3fafc3cb614e5d580900]", "[23934e8b]", "0x20")
+ self.binary80_to_bid32("2", "[3fafc3cb614e5d580900]", "[23934e8c]", "0x20")
+ self.binary80_to_bid32("3", "[3fafc3cb614e5d580900]", "[23934e8b]", "0x20")
+ self.binary80_to_bid32("4", "[3fafc3cb614e5d580900]", "[23934e8c]", "0x20")
+ self.binary80_to_bid32("0", "[3fafdfd55f5573762396]", "[2396125a]", "0x20")
+ self.binary80_to_bid32("1", "[3fafdfd55f5573762396]", "[23961259]", "0x20")
+ self.binary80_to_bid32("2", "[3fafdfd55f5573762396]", "[2396125a]", "0x20")
+ self.binary80_to_bid32("3", "[3fafdfd55f5573762396]", "[23961259]", "0x20")
+ self.binary80_to_bid32("4", "[3fafdfd55f5573762396]", "[2396125a]", "0x20")
+ self.binary80_to_bid32("0", "[3fbad4deb368876c1568]", "[252afd1e]", "0x20")
+ self.binary80_to_bid32("1", "[3fbad4deb368876c1568]", "[252afd1e]", "0x20")
+ self.binary80_to_bid32("2", "[3fbad4deb368876c1568]", "[252afd1f]", "0x20")
+ self.binary80_to_bid32("3", "[3fbad4deb368876c1568]", "[252afd1e]", "0x20")
+ self.binary80_to_bid32("4", "[3fbad4deb368876c1568]", "[252afd1e]", "0x20")
+ self.binary80_to_bid32("0", "[3fbfe214771c60015020]", "[697219ca]", "0x20")
+ self.binary80_to_bid32("1", "[3fbfe214771c60015020]", "[697219c9]", "0x20")
+ self.binary80_to_bid32("2", "[3fbfe214771c60015020]", "[697219ca]", "0x20")
+ self.binary80_to_bid32("3", "[3fbfe214771c60015020]", "[697219c9]", "0x20")
+ self.binary80_to_bid32("4", "[3fbfe214771c60015020]", "[697219ca]", "0x20")
+ self.binary80_to_bid32("0", "[3fcab9d5c977b2a77193]", "[27989857]", "0x20")
+ self.binary80_to_bid32("1", "[3fcab9d5c977b2a77193]", "[27989856]", "0x20")
+ self.binary80_to_bid32("2", "[3fcab9d5c977b2a77193]", "[27989857]", "0x20")
+ self.binary80_to_bid32("3", "[3fcab9d5c977b2a77193]", "[27989856]", "0x20")
+ self.binary80_to_bid32("4", "[3fcab9d5c977b2a77193]", "[27989857]", "0x20")
+ self.binary80_to_bid32("0", "[3fd0fa36ef6f2ce257ac]", "[289531aa]", "0x20")
+ self.binary80_to_bid32("1", "[3fd0fa36ef6f2ce257ac]", "[289531a9]", "0x20")
+ self.binary80_to_bid32("2", "[3fd0fa36ef6f2ce257ac]", "[289531aa]", "0x20")
+ self.binary80_to_bid32("3", "[3fd0fa36ef6f2ce257ac]", "[289531a9]", "0x20")
+ self.binary80_to_bid32("4", "[3fd0fa36ef6f2ce257ac]", "[289531aa]", "0x20")
+ self.binary80_to_bid32("0", "[3fd79572c280dca3358a]", "[29903406]", "0x20")
+ self.binary80_to_bid32("1", "[3fd79572c280dca3358a]", "[29903405]", "0x20")
+ self.binary80_to_bid32("2", "[3fd79572c280dca3358a]", "[29903406]", "0x20")
+ self.binary80_to_bid32("3", "[3fd79572c280dca3358a]", "[29903405]", "0x20")
+ self.binary80_to_bid32("4", "[3fd79572c280dca3358a]", "[29903406]", "0x20")
+ self.binary80_to_bid32("0", "[3fd9c5efcd0455c09e80]", "[29d5d764]", "0x20")
+ self.binary80_to_bid32("1", "[3fd9c5efcd0455c09e80]", "[29d5d763]", "0x20")
+ self.binary80_to_bid32("2", "[3fd9c5efcd0455c09e80]", "[29d5d764]", "0x20")
+ self.binary80_to_bid32("3", "[3fd9c5efcd0455c09e80]", "[29d5d763]", "0x20")
+ self.binary80_to_bid32("4", "[3fd9c5efcd0455c09e80]", "[29d5d764]", "0x20")
+ self.binary80_to_bid32("0", "[3fe285f8df68b043dbac]", "[2b1dbf70]", "0x20")
+ self.binary80_to_bid32("1", "[3fe285f8df68b043dbac]", "[2b1dbf6f]", "0x20")
+ self.binary80_to_bid32("2", "[3fe285f8df68b043dbac]", "[2b1dbf70]", "0x20")
+ self.binary80_to_bid32("3", "[3fe285f8df68b043dbac]", "[2b1dbf6f]", "0x20")
+ self.binary80_to_bid32("4", "[3fe285f8df68b043dbac]", "[2b1dbf70]", "0x20")
+ self.binary80_to_bid32("0", "[3fe9b1c57cb9f22f71de]", "[2c328693]", "0x20")
+ self.binary80_to_bid32("1", "[3fe9b1c57cb9f22f71de]", "[2c328693]", "0x20")
+ self.binary80_to_bid32("2", "[3fe9b1c57cb9f22f71de]", "[2c328694]", "0x20")
+ self.binary80_to_bid32("3", "[3fe9b1c57cb9f22f71de]", "[2c328693]", "0x20")
+ self.binary80_to_bid32("4", "[3fe9b1c57cb9f22f71de]", "[2c328693]", "0x20")
+ self.binary80_to_bid32("0", "[3ff0e97742fba9e4526b]", "[2d54ef34]", "0x20")
+ self.binary80_to_bid32("1", "[3ff0e97742fba9e4526b]", "[2d54ef34]", "0x20")
+ self.binary80_to_bid32("2", "[3ff0e97742fba9e4526b]", "[2d54ef35]", "0x20")
+ self.binary80_to_bid32("3", "[3ff0e97742fba9e4526b]", "[2d54ef34]", "0x20")
+ self.binary80_to_bid32("4", "[3ff0e97742fba9e4526b]", "[2d54ef34]", "0x20")
+ self.binary80_to_bid32("0", "[3ff5c16027cb04a782dc]", "[2e16830b]", "0x20")
+ self.binary80_to_bid32("1", "[3ff5c16027cb04a782dc]", "[2e16830a]", "0x20")
+ self.binary80_to_bid32("2", "[3ff5c16027cb04a782dc]", "[2e16830b]", "0x20")
+ self.binary80_to_bid32("3", "[3ff5c16027cb04a782dc]", "[2e16830a]", "0x20")
+ self.binary80_to_bid32("4", "[3ff5c16027cb04a782dc]", "[2e16830b]", "0x20")
+ self.binary80_to_bid32("0", "[3ffad000000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary80_to_bid32("1", "[3ffad000000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary80_to_bid32("2", "[3ffad000000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary80_to_bid32("3", "[3ffad000000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary80_to_bid32("4", "[3ffad000000000000000]", "[2ecd7c6d]", "0x00")
+ self.binary80_to_bid32("0", "[3ffdfefcdb885172b95b]", "[2f4bfe05]", "0x20")
+ self.binary80_to_bid32("1", "[3ffdfefcdb885172b95b]", "[2f4bfe04]", "0x20")
+ self.binary80_to_bid32("2", "[3ffdfefcdb885172b95b]", "[2f4bfe05]", "0x20")
+ self.binary80_to_bid32("3", "[3ffdfefcdb885172b95b]", "[2f4bfe04]", "0x20")
+ self.binary80_to_bid32("4", "[3ffdfefcdb885172b95b]", "[2f4bfe05]", "0x20")
+ self.binary80_to_bid32("0", "[3fff8000000000000000]", "[32800001]", "0x00")
+ self.binary80_to_bid32("1", "[3fff8000000000000000]", "[32800001]", "0x00")
+ self.binary80_to_bid32("2", "[3fff8000000000000000]", "[32800001]", "0x00")
+ self.binary80_to_bid32("3", "[3fff8000000000000000]", "[32800001]", "0x00")
+ self.binary80_to_bid32("4", "[3fff8000000000000000]", "[32800001]", "0x00")
+ self.binary80_to_bid32("0", "[3fffc000000000000000]", "[3200000f]", "0x00")
+ self.binary80_to_bid32("1", "[3fffc000000000000000]", "[3200000f]", "0x00")
+ self.binary80_to_bid32("2", "[3fffc000000000000000]", "[3200000f]", "0x00")
+ self.binary80_to_bid32("3", "[3fffc000000000000000]", "[3200000f]", "0x00")
+ self.binary80_to_bid32("4", "[3fffc000000000000000]", "[3200000f]", "0x00")
+ self.binary80_to_bid32("0", "[3fffff9b710a2e572b60]", "[2f9e7883]", "0x20")
+ self.binary80_to_bid32("1", "[3fffff9b710a2e572b60]", "[2f9e7883]", "0x20")
+ self.binary80_to_bid32("2", "[3fffff9b710a2e572b60]", "[2f9e7884]", "0x20")
+ self.binary80_to_bid32("3", "[3fffff9b710a2e572b60]", "[2f9e7883]", "0x20")
+ self.binary80_to_bid32("4", "[3fffff9b710a2e572b60]", "[2f9e7883]", "0x20")
+ self.binary80_to_bid32("0", "[40058000000000000000]", "[32800040]", "0x00")
+ self.binary80_to_bid32("1", "[40058000000000000000]", "[32800040]", "0x00")
+ self.binary80_to_bid32("2", "[40058000000000000000]", "[32800040]", "0x00")
+ self.binary80_to_bid32("3", "[40058000000000000000]", "[32800040]", "0x00")
+ self.binary80_to_bid32("4", "[40058000000000000000]", "[32800040]", "0x00")
+ self.binary80_to_bid32("0", "[4008f9c0000000000000]", "[328003e7]", "0x00")
+ self.binary80_to_bid32("1", "[4008f9c0000000000000]", "[328003e7]", "0x00")
+ self.binary80_to_bid32("2", "[4008f9c0000000000000]", "[328003e7]", "0x00")
+ self.binary80_to_bid32("3", "[4008f9c0000000000000]", "[328003e7]", "0x00")
+ self.binary80_to_bid32("4", "[4008f9c0000000000000]", "[328003e7]", "0x00")
+ self.binary80_to_bid32("0", "[4008fa00000000000000]", "[328003e8]", "0x00")
+ self.binary80_to_bid32("1", "[4008fa00000000000000]", "[328003e8]", "0x00")
+ self.binary80_to_bid32("2", "[4008fa00000000000000]", "[328003e8]", "0x00")
+ self.binary80_to_bid32("3", "[4008fa00000000000000]", "[328003e8]", "0x00")
+ self.binary80_to_bid32("4", "[4008fa00000000000000]", "[328003e8]", "0x00")
+ self.binary80_to_bid32("0", "[4009f9fe631f8a0902de]", "[311e844e]", "0x20")
+ self.binary80_to_bid32("1", "[4009f9fe631f8a0902de]", "[311e844d]", "0x20")
+ self.binary80_to_bid32("2", "[4009f9fe631f8a0902de]", "[311e844e]", "0x20")
+ self.binary80_to_bid32("3", "[4009f9fe631f8a0902de]", "[311e844d]", "0x20")
+ self.binary80_to_bid32("4", "[4009f9fe631f8a0902de]", "[311e844e]", "0x20")
+ self.binary80_to_bid32("0", "[4010ffffffffffffffff]", "[32280000]", "0x20")
+ self.binary80_to_bid32("1", "[4010ffffffffffffffff]", "[3227ffff]", "0x20")
+ self.binary80_to_bid32("2", "[4010ffffffffffffffff]", "[32280000]", "0x20")
+ self.binary80_to_bid32("3", "[4010ffffffffffffffff]", "[3227ffff]", "0x20")
+ self.binary80_to_bid32("4", "[4010ffffffffffffffff]", "[32280000]", "0x20")
+ self.binary80_to_bid32("0", "[401798967fffffffffff]", "[331e8480]", "0x20")
+ self.binary80_to_bid32("1", "[401798967fffffffffff]", "[331e847f]", "0x20")
+ self.binary80_to_bid32("2", "[401798967fffffffffff]", "[331e8480]", "0x20")
+ self.binary80_to_bid32("3", "[401798967fffffffffff]", "[331e847f]", "0x20")
+ self.binary80_to_bid32("4", "[401798967fffffffffff]", "[331e8480]", "0x20")
+ self.binary80_to_bid32("0", "[401dfffffaefffffffff]", "[3420c49b]", "0x20")
+ self.binary80_to_bid32("1", "[401dfffffaefffffffff]", "[3420c49a]", "0x20")
+ self.binary80_to_bid32("2", "[401dfffffaefffffffff]", "[3420c49b]", "0x20")
+ self.binary80_to_bid32("3", "[401dfffffaefffffffff]", "[3420c49a]", "0x20")
+ self.binary80_to_bid32("4", "[401dfffffaefffffffff]", "[3420c49b]", "0x20")
+ self.binary80_to_bid32("0", "[40219502f8fffffffff8]", "[349e8480]", "0x20")
+ self.binary80_to_bid32("1", "[40219502f8fffffffff8]", "[349e847f]", "0x20")
+ self.binary80_to_bid32("2", "[40219502f8fffffffff8]", "[349e8480]", "0x20")
+ self.binary80_to_bid32("3", "[40219502f8fffffffff8]", "[349e847f]", "0x20")
+ self.binary80_to_bid32("4", "[40219502f8fffffffff8]", "[349e8480]", "0x20")
+ self.binary80_to_bid32("0", "[402afffffa3c4fffffff]", "[361ad7f2]", "0x20")
+ self.binary80_to_bid32("1", "[402afffffa3c4fffffff]", "[361ad7f1]", "0x20")
+ self.binary80_to_bid32("2", "[402afffffa3c4fffffff]", "[361ad7f2]", "0x20")
+ self.binary80_to_bid32("3", "[402afffffa3c4fffffff]", "[361ad7f1]", "0x20")
+ self.binary80_to_bid32("4", "[402afffffa3c4fffffff]", "[361ad7f2]", "0x20")
+ self.binary80_to_bid32("0", "[4030ffff6c6064ffffff]", "[37112e02]", "0x20")
+ self.binary80_to_bid32("1", "[4030ffff6c6064ffffff]", "[37112e01]", "0x20")
+ self.binary80_to_bid32("2", "[4030ffff6c6064ffffff]", "[37112e02]", "0x20")
+ self.binary80_to_bid32("3", "[4030ffff6c6064ffffff]", "[37112e01]", "0x20")
+ self.binary80_to_bid32("4", "[4030ffff6c6064ffffff]", "[37112e02]", "0x20")
+ self.binary80_to_bid32("0", "[4037ffffff0f521bffff]", "[3815fd80]", "0x20")
+ self.binary80_to_bid32("1", "[4037ffffff0f521bffff]", "[3815fd7f]", "0x20")
+ self.binary80_to_bid32("2", "[4037ffffff0f521bffff]", "[3815fd80]", "0x20")
+ self.binary80_to_bid32("3", "[4037ffffff0f521bffff]", "[3815fd7f]", "0x20")
+ self.binary80_to_bid32("4", "[4037ffffff0f521bffff]", "[3815fd80]", "0x20")
+ self.binary80_to_bid32("0", "[403dfffffc4b83fd3fff]", "[6e2cbcca]", "0x20")
+ self.binary80_to_bid32("1", "[403dfffffc4b83fd3fff]", "[6e2cbcc9]", "0x20")
+ self.binary80_to_bid32("2", "[403dfffffc4b83fd3fff]", "[6e2cbcca]", "0x20")
+ self.binary80_to_bid32("3", "[403dfffffc4b83fd3fff]", "[6e2cbcc9]", "0x20")
+ self.binary80_to_bid32("4", "[403dfffffc4b83fd3fff]", "[6e2cbcca]", "0x20")
+ self.binary80_to_bid32("0", "[4042ad78ebc5ac61fffc]", "[399e8480]", "0x20")
+ self.binary80_to_bid32("1", "[4042ad78ebc5ac61fffc]", "[399e847f]", "0x20")
+ self.binary80_to_bid32("2", "[4042ad78ebc5ac61fffc]", "[399e8480]", "0x20")
+ self.binary80_to_bid32("3", "[4042ad78ebc5ac61fffc]", "[399e847f]", "0x20")
+ self.binary80_to_bid32("4", "[4042ad78ebc5ac61fffc]", "[399e8480]", "0x20")
+ self.binary80_to_bid32("0", "[404affffff2c34cf849f]", "[3af34aca]", "0x20")
+ self.binary80_to_bid32("1", "[404affffff2c34cf849f]", "[3af34ac9]", "0x20")
+ self.binary80_to_bid32("2", "[404affffff2c34cf849f]", "[3af34aca]", "0x20")
+ self.binary80_to_bid32("3", "[404affffff2c34cf849f]", "[3af34ac9]", "0x20")
+ self.binary80_to_bid32("4", "[404affffff2c34cf849f]", "[3af34aca]", "0x20")
+ self.binary80_to_bid32("0", "[4050fffff4a024d65753]", "[3bc9c974]", "0x20")
+ self.binary80_to_bid32("1", "[4050fffff4a024d65753]", "[3bc9c973]", "0x20")
+ self.binary80_to_bid32("2", "[4050fffff4a024d65753]", "[3bc9c974]", "0x20")
+ self.binary80_to_bid32("3", "[4050fffff4a024d65753]", "[3bc9c973]", "0x20")
+ self.binary80_to_bid32("4", "[4050fffff4a024d65753]", "[3bc9c974]", "0x20")
+ self.binary80_to_bid32("0", "[4056a56f8e6a1d37e29e]", "[3c9e847c]", "0x20")
+ self.binary80_to_bid32("1", "[4056a56f8e6a1d37e29e]", "[3c9e847b]", "0x20")
+ self.binary80_to_bid32("2", "[4056a56f8e6a1d37e29e]", "[3c9e847c]", "0x20")
+ self.binary80_to_bid32("3", "[4056a56f8e6a1d37e29e]", "[3c9e847b]", "0x20")
+ self.binary80_to_bid32("4", "[4056a56f8e6a1d37e29e]", "[3c9e847c]", "0x20")
+ self.binary80_to_bid32("0", "[405dffe9881d26b6795f]", "[3dbc6cf2]", "0x20")
+ self.binary80_to_bid32("1", "[405dffe9881d26b6795f]", "[3dbc6cf1]", "0x20")
+ self.binary80_to_bid32("2", "[405dffe9881d26b6795f]", "[3dbc6cf2]", "0x20")
+ self.binary80_to_bid32("3", "[405dffe9881d26b6795f]", "[3dbc6cf1]", "0x20")
+ self.binary80_to_bid32("4", "[405dffe9881d26b6795f]", "[3dbc6cf2]", "0x20")
+ self.binary80_to_bid32("0", "[4060a119c14989cce890]", "[3e1e6e59]", "0x20")
+ self.binary80_to_bid32("1", "[4060a119c14989cce890]", "[3e1e6e58]", "0x20")
+ self.binary80_to_bid32("2", "[4060a119c14989cce890]", "[3e1e6e59]", "0x20")
+ self.binary80_to_bid32("3", "[4060a119c14989cce890]", "[3e1e6e58]", "0x20")
+ self.binary80_to_bid32("4", "[4060a119c14989cce890]", "[3e1e6e59]", "0x20")
+ self.binary80_to_bid32("0", "[406afb17dec3467dddd1]", "[3fb09189]", "0x20")
+ self.binary80_to_bid32("1", "[406afb17dec3467dddd1]", "[3fb09188]", "0x20")
+ self.binary80_to_bid32("2", "[406afb17dec3467dddd1]", "[3fb09189]", "0x20")
+ self.binary80_to_bid32("3", "[406afb17dec3467dddd1]", "[3fb09188]", "0x20")
+ self.binary80_to_bid32("4", "[406afb17dec3467dddd1]", "[3fb09189]", "0x20")
+ self.binary80_to_bid32("0", "[407088a268780d8a50a5]", "[4090ea1e]", "0x20")
+ self.binary80_to_bid32("1", "[407088a268780d8a50a5]", "[4090ea1e]", "0x20")
+ self.binary80_to_bid32("2", "[407088a268780d8a50a5]", "[4090ea1f]", "0x20")
+ self.binary80_to_bid32("3", "[407088a268780d8a50a5]", "[4090ea1e]", "0x20")
+ self.binary80_to_bid32("4", "[407088a268780d8a50a5]", "[4090ea1e]", "0x20")
+ self.binary80_to_bid32("0", "[4077bd39ca88ae4dbdcb]", "[419dfbe9]", "0x20")
+ self.binary80_to_bid32("1", "[4077bd39ca88ae4dbdcb]", "[419dfbe8]", "0x20")
+ self.binary80_to_bid32("2", "[4077bd39ca88ae4dbdcb]", "[419dfbe9]", "0x20")
+ self.binary80_to_bid32("3", "[4077bd39ca88ae4dbdcb]", "[419dfbe8]", "0x20")
+ self.binary80_to_bid32("4", "[4077bd39ca88ae4dbdcb]", "[419dfbe9]", "0x20")
+ self.binary80_to_bid32("0", "[407db9548388ebd427d5]", "[4292cb72]", "0x20")
+ self.binary80_to_bid32("1", "[407db9548388ebd427d5]", "[4292cb72]", "0x20")
+ self.binary80_to_bid32("2", "[407db9548388ebd427d5]", "[4292cb73]", "0x20")
+ self.binary80_to_bid32("3", "[407db9548388ebd427d5]", "[4292cb72]", "0x20")
+ self.binary80_to_bid32("4", "[407db9548388ebd427d5]", "[4292cb72]", "0x20")
+ self.binary80_to_bid32("0", "[407eabaaa8baedbd5280]", "[42a2d171]", "0x20")
+ self.binary80_to_bid32("1", "[407eabaaa8baedbd5280]", "[42a2d170]", "0x20")
+ self.binary80_to_bid32("2", "[407eabaaa8baedbd5280]", "[42a2d171]", "0x20")
+ self.binary80_to_bid32("3", "[407eabaaa8baedbd5280]", "[42a2d170]", "0x20")
+ self.binary80_to_bid32("4", "[407eabaaa8baedbd5280]", "[42a2d171]", "0x20")
+ self.binary80_to_bid32("0", "[408adf6d404ad90149c2]", "[44928fc3]", "0x20")
+ self.binary80_to_bid32("1", "[408adf6d404ad90149c2]", "[44928fc3]", "0x20")
+ self.binary80_to_bid32("2", "[408adf6d404ad90149c2]", "[44928fc4]", "0x20")
+ self.binary80_to_bid32("3", "[408adf6d404ad90149c2]", "[44928fc3]", "0x20")
+ self.binary80_to_bid32("4", "[408adf6d404ad90149c2]", "[44928fc3]", "0x20")
+ self.binary80_to_bid32("0", "[408cceb4d1593d6fc040]", "[44c4b0a1]", "0x20")
+ self.binary80_to_bid32("1", "[408cceb4d1593d6fc040]", "[44c4b0a0]", "0x20")
+ self.binary80_to_bid32("2", "[408cceb4d1593d6fc040]", "[44c4b0a1]", "0x20")
+ self.binary80_to_bid32("3", "[408cceb4d1593d6fc040]", "[44c4b0a0]", "0x20")
+ self.binary80_to_bid32("4", "[408cceb4d1593d6fc040]", "[44c4b0a1]", "0x20")
+ self.binary80_to_bid32("0", "[4096a17d438db7ff4e32]", "[4636f3b4]", "0x20")
+ self.binary80_to_bid32("1", "[4096a17d438db7ff4e32]", "[4636f3b3]", "0x20")
+ self.binary80_to_bid32("2", "[4096a17d438db7ff4e32]", "[4636f3b4]", "0x20")
+ self.binary80_to_bid32("3", "[4096a17d438db7ff4e32]", "[4636f3b3]", "0x20")
+ self.binary80_to_bid32("4", "[4096a17d438db7ff4e32]", "[4636f3b4]", "0x20")
+ self.binary80_to_bid32("0", "[409de459b0121faa0082]", "[476375ea]", "0x20")
+ self.binary80_to_bid32("1", "[409de459b0121faa0082]", "[476375ea]", "0x20")
+ self.binary80_to_bid32("2", "[409de459b0121faa0082]", "[476375eb]", "0x20")
+ self.binary80_to_bid32("3", "[409de459b0121faa0082]", "[476375ea]", "0x20")
+ self.binary80_to_bid32("4", "[409de459b0121faa0082]", "[476375ea]", "0x20")
+ self.binary80_to_bid32("0", "[40a2da773f8c33552748]", "[481e731f]", "0x20")
+ self.binary80_to_bid32("1", "[40a2da773f8c33552748]", "[481e731e]", "0x20")
+ self.binary80_to_bid32("2", "[40a2da773f8c33552748]", "[481e731f]", "0x20")
+ self.binary80_to_bid32("3", "[40a2da773f8c33552748]", "[481e731e]", "0x20")
+ self.binary80_to_bid32("4", "[40a2da773f8c33552748]", "[481e731f]", "0x20")
+ self.binary80_to_bid32("0", "[40aad03b19f65c65cb09]", "[494a4c9c]", "0x20")
+ self.binary80_to_bid32("1", "[40aad03b19f65c65cb09]", "[494a4c9b]", "0x20")
+ self.binary80_to_bid32("2", "[40aad03b19f65c65cb09]", "[494a4c9c]", "0x20")
+ self.binary80_to_bid32("3", "[40aad03b19f65c65cb09]", "[494a4c9b]", "0x20")
+ self.binary80_to_bid32("4", "[40aad03b19f65c65cb09]", "[494a4c9c]", "0x20")
+ self.binary80_to_bid32("0", "[40acc04aeac9a5faa3a0]", "[499b71e6]", "0x20")
+ self.binary80_to_bid32("1", "[40acc04aeac9a5faa3a0]", "[499b71e6]", "0x20")
+ self.binary80_to_bid32("2", "[40acc04aeac9a5faa3a0]", "[499b71e7]", "0x20")
+ self.binary80_to_bid32("3", "[40acc04aeac9a5faa3a0]", "[499b71e6]", "0x20")
+ self.binary80_to_bid32("4", "[40acc04aeac9a5faa3a0]", "[499b71e6]", "0x20")
+ self.binary80_to_bid32("0", "[40b5c8a77ae6dc274b04]", "[72b2a0d4]", "0x20")
+ self.binary80_to_bid32("1", "[40b5c8a77ae6dc274b04]", "[72b2a0d3]", "0x20")
+ self.binary80_to_bid32("2", "[40b5c8a77ae6dc274b04]", "[72b2a0d4]", "0x20")
+ self.binary80_to_bid32("3", "[40b5c8a77ae6dc274b04]", "[72b2a0d3]", "0x20")
+ self.binary80_to_bid32("4", "[40b5c8a77ae6dc274b04]", "[72b2a0d4]", "0x20")
+ self.binary80_to_bid32("0", "[40bd9571492eb756d68b]", "[4c1bf4e0]", "0x20")
+ self.binary80_to_bid32("1", "[40bd9571492eb756d68b]", "[4c1bf4df]", "0x20")
+ self.binary80_to_bid32("2", "[40bd9571492eb756d68b]", "[4c1bf4e0]", "0x20")
+ self.binary80_to_bid32("3", "[40bd9571492eb756d68b]", "[4c1bf4df]", "0x20")
+ self.binary80_to_bid32("4", "[40bd9571492eb756d68b]", "[4c1bf4e0]", "0x20")
+ self.binary80_to_bid32("0", "[40c08d203da843156310]", "[4c951edf]", "0x20")
+ self.binary80_to_bid32("1", "[40c08d203da843156310]", "[4c951edf]", "0x20")
+ self.binary80_to_bid32("2", "[40c08d203da843156310]", "[4c951ee0]", "0x20")
+ self.binary80_to_bid32("3", "[40c08d203da843156310]", "[4c951edf]", "0x20")
+ self.binary80_to_bid32("4", "[40c08d203da843156310]", "[4c951edf]", "0x20")
+ self.binary80_to_bid32("0", "[40c9a44f974b1f15e37c]", "[4dfde722]", "0x20")
+ self.binary80_to_bid32("1", "[40c9a44f974b1f15e37c]", "[4dfde722]", "0x20")
+ self.binary80_to_bid32("2", "[40c9a44f974b1f15e37c]", "[4dfde723]", "0x20")
+ self.binary80_to_bid32("3", "[40c9a44f974b1f15e37c]", "[4dfde722]", "0x20")
+ self.binary80_to_bid32("4", "[40c9a44f974b1f15e37c]", "[4dfde722]", "0x20")
+ self.binary80_to_bid32("0", "[40cac53d989d1652fa00]", "[4e1e3a1f]", "0x20")
+ self.binary80_to_bid32("1", "[40cac53d989d1652fa00]", "[4e1e3a1e]", "0x20")
+ self.binary80_to_bid32("2", "[40cac53d989d1652fa00]", "[4e1e3a1f]", "0x20")
+ self.binary80_to_bid32("3", "[40cac53d989d1652fa00]", "[4e1e3a1e]", "0x20")
+ self.binary80_to_bid32("4", "[40cac53d989d1652fa00]", "[4e1e3a1f]", "0x20")
+ self.binary80_to_bid32("0", "[40d6b2f3299ec7be0c0a]", "[4ff05422]", "0x20")
+ self.binary80_to_bid32("1", "[40d6b2f3299ec7be0c0a]", "[4ff05422]", "0x20")
+ self.binary80_to_bid32("2", "[40d6b2f3299ec7be0c0a]", "[4ff05423]", "0x20")
+ self.binary80_to_bid32("3", "[40d6b2f3299ec7be0c0a]", "[4ff05422]", "0x20")
+ self.binary80_to_bid32("4", "[40d6b2f3299ec7be0c0a]", "[4ff05422]", "0x20")
+ self.binary80_to_bid32("0", "[40dca3b13393c354be4e]", "[50c1c2c4]", "0x20")
+ self.binary80_to_bid32("1", "[40dca3b13393c354be4e]", "[50c1c2c4]", "0x20")
+ self.binary80_to_bid32("2", "[40dca3b13393c354be4e]", "[50c1c2c5]", "0x20")
+ self.binary80_to_bid32("3", "[40dca3b13393c354be4e]", "[50c1c2c4]", "0x20")
+ self.binary80_to_bid32("4", "[40dca3b13393c354be4e]", "[50c1c2c4]", "0x20")
+ self.binary80_to_bid32("0", "[40e4fe177ae9f3b5fd11]", "[521a21bf]", "0x20")
+ self.binary80_to_bid32("1", "[40e4fe177ae9f3b5fd11]", "[521a21be]", "0x20")
+ self.binary80_to_bid32("2", "[40e4fe177ae9f3b5fd11]", "[521a21bf]", "0x20")
+ self.binary80_to_bid32("3", "[40e4fe177ae9f3b5fd11]", "[521a21be]", "0x20")
+ self.binary80_to_bid32("4", "[40e4fe177ae9f3b5fd11]", "[521a21bf]", "0x20")
+ self.binary80_to_bid32("0", "[40eaf0a223c13482fcad]", "[530fd6aa]", "0x20")
+ self.binary80_to_bid32("1", "[40eaf0a223c13482fcad]", "[530fd6a9]", "0x20")
+ self.binary80_to_bid32("2", "[40eaf0a223c13482fcad]", "[530fd6aa]", "0x20")
+ self.binary80_to_bid32("3", "[40eaf0a223c13482fcad]", "[530fd6a9]", "0x20")
+ self.binary80_to_bid32("4", "[40eaf0a223c13482fcad]", "[530fd6aa]", "0x20")
+ self.binary80_to_bid32("0", "[40eeb3f0bff82276cf88]", "[5392f32f]", "0x20")
+ self.binary80_to_bid32("1", "[40eeb3f0bff82276cf88]", "[5392f32f]", "0x20")
+ self.binary80_to_bid32("2", "[40eeb3f0bff82276cf88]", "[5392f330]", "0x20")
+ self.binary80_to_bid32("3", "[40eeb3f0bff82276cf88]", "[5392f32f]", "0x20")
+ self.binary80_to_bid32("4", "[40eeb3f0bff82276cf88]", "[5392f32f]", "0x20")
+ self.binary80_to_bid32("0", "[40f7cedaf78cf6bea200]", "[54ef8943]", "0x20")
+ self.binary80_to_bid32("1", "[40f7cedaf78cf6bea200]", "[54ef8942]", "0x20")
+ self.binary80_to_bid32("2", "[40f7cedaf78cf6bea200]", "[54ef8943]", "0x20")
+ self.binary80_to_bid32("3", "[40f7cedaf78cf6bea200]", "[54ef8942]", "0x20")
+ self.binary80_to_bid32("4", "[40f7cedaf78cf6bea200]", "[54ef8943]", "0x20")
+ self.binary80_to_bid32("0", "[40fde1acf7f6602d5e17]", "[55cde0b8]", "0x20")
+ self.binary80_to_bid32("1", "[40fde1acf7f6602d5e17]", "[55cde0b8]", "0x20")
+ self.binary80_to_bid32("2", "[40fde1acf7f6602d5e17]", "[55cde0b9]", "0x20")
+ self.binary80_to_bid32("3", "[40fde1acf7f6602d5e17]", "[55cde0b8]", "0x20")
+ self.binary80_to_bid32("4", "[40fde1acf7f6602d5e17]", "[55cde0b8]", "0x20")
+ self.binary80_to_bid32("0", "[4100a19b116620c4ee90]", "[562c9d4e]", "0x20")
+ self.binary80_to_bid32("1", "[4100a19b116620c4ee90]", "[562c9d4d]", "0x20")
+ self.binary80_to_bid32("2", "[4100a19b116620c4ee90]", "[562c9d4e]", "0x20")
+ self.binary80_to_bid32("3", "[4100a19b116620c4ee90]", "[562c9d4d]", "0x20")
+ self.binary80_to_bid32("4", "[4100a19b116620c4ee90]", "[562c9d4e]", "0x20")
+ self.binary80_to_bid32("0", "[410a93d9ac7a9e26c480]", "[57a9cbef]", "0x20")
+ self.binary80_to_bid32("1", "[410a93d9ac7a9e26c480]", "[57a9cbef]", "0x20")
+ self.binary80_to_bid32("2", "[410a93d9ac7a9e26c480]", "[57a9cbf0]", "0x20")
+ self.binary80_to_bid32("3", "[410a93d9ac7a9e26c480]", "[57a9cbef]", "0x20")
+ self.binary80_to_bid32("4", "[410a93d9ac7a9e26c480]", "[57a9cbef]", "0x20")
+ self.binary80_to_bid32("0", "[410af3ba5b0d63c7d553]", "[57c4e69b]", "0x20")
+ self.binary80_to_bid32("1", "[410af3ba5b0d63c7d553]", "[57c4e69b]", "0x20")
+ self.binary80_to_bid32("2", "[410af3ba5b0d63c7d553]", "[57c4e69c]", "0x20")
+ self.binary80_to_bid32("3", "[410af3ba5b0d63c7d553]", "[57c4e69b]", "0x20")
+ self.binary80_to_bid32("4", "[410af3ba5b0d63c7d553]", "[57c4e69b]", "0x20")
+ self.binary80_to_bid32("0", "[41179817300783e9d14d]", "[59a338c6]", "0x20")
+ self.binary80_to_bid32("1", "[41179817300783e9d14d]", "[59a338c5]", "0x20")
+ self.binary80_to_bid32("2", "[41179817300783e9d14d]", "[59a338c6]", "0x20")
+ self.binary80_to_bid32("3", "[41179817300783e9d14d]", "[59a338c5]", "0x20")
+ self.binary80_to_bid32("4", "[41179817300783e9d14d]", "[59a338c6]", "0x20")
+ self.binary80_to_bid32("0", "[411ade770fcd776c53e8]", "[5a29372c]", "0x20")
+ self.binary80_to_bid32("1", "[411ade770fcd776c53e8]", "[5a29372c]", "0x20")
+ self.binary80_to_bid32("2", "[411ade770fcd776c53e8]", "[5a29372d]", "0x20")
+ self.binary80_to_bid32("3", "[411ade770fcd776c53e8]", "[5a29372c]", "0x20")
+ self.binary80_to_bid32("4", "[411ade770fcd776c53e8]", "[5a29372c]", "0x20")
+ self.binary80_to_bid32("0", "[41248eb60d015bc878b2]", "[5b9b1303]", "0x20")
+ self.binary80_to_bid32("1", "[41248eb60d015bc878b2]", "[5b9b1303]", "0x20")
+ self.binary80_to_bid32("2", "[41248eb60d015bc878b2]", "[5b9b1304]", "0x20")
+ self.binary80_to_bid32("3", "[41248eb60d015bc878b2]", "[5b9b1303]", "0x20")
+ self.binary80_to_bid32("4", "[41248eb60d015bc878b2]", "[5b9b1303]", "0x20")
+ self.binary80_to_bid32("0", "[412af266315bdb0d36ff]", "[5c9d6e6c]", "0x20")
+ self.binary80_to_bid32("1", "[412af266315bdb0d36ff]", "[5c9d6e6c]", "0x20")
+ self.binary80_to_bid32("2", "[412af266315bdb0d36ff]", "[5c9d6e6d]", "0x20")
+ self.binary80_to_bid32("3", "[412af266315bdb0d36ff]", "[5c9d6e6c]", "0x20")
+ self.binary80_to_bid32("4", "[412af266315bdb0d36ff]", "[5c9d6e6c]", "0x20")
+ self.binary80_to_bid32("0", "[412b995961a746865700]", "[5ca53d03]", "0x20")
+ self.binary80_to_bid32("1", "[412b995961a746865700]", "[5ca53d03]", "0x20")
+ self.binary80_to_bid32("2", "[412b995961a746865700]", "[5ca53d04]", "0x20")
+ self.binary80_to_bid32("3", "[412b995961a746865700]", "[5ca53d03]", "0x20")
+ self.binary80_to_bid32("4", "[412b995961a746865700]", "[5ca53d03]", "0x20")
+ self.binary80_to_bid32("0", "[4137c9111a09c50b018c]", "[5e93ffc1]", "0x20")
+ self.binary80_to_bid32("1", "[4137c9111a09c50b018c]", "[5e93ffc1]", "0x20")
+ self.binary80_to_bid32("2", "[4137c9111a09c50b018c]", "[5e93ffc2]", "0x20")
+ self.binary80_to_bid32("3", "[4137c9111a09c50b018c]", "[5e93ffc1]", "0x20")
+ self.binary80_to_bid32("4", "[4137c9111a09c50b018c]", "[5e93ffc1]", "0x20")
+ self.binary80_to_bid32("0", "[414195d049f2e308a39a]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("1", "[414195d049f2e308a39a]", "[77f8967e]", "0x20")
+ self.binary80_to_bid32("2", "[414195d049f2e308a39a]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("3", "[414195d049f2e308a39a]", "[77f8967e]", "0x20")
+ self.binary80_to_bid32("4", "[414195d049f2e308a39a]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("0", "[414195d049f2e308a39b]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("1", "[414195d049f2e308a39b]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("2", "[414195d049f2e308a39b]", "[78000000]", "0x28")
+ self.binary80_to_bid32("3", "[414195d049f2e308a39b]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("4", "[414195d049f2e308a39b]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("0", "[414195d04aee3b80ece5]", "[78000000]", "0x28")
+ self.binary80_to_bid32("1", "[414195d04aee3b80ece5]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("2", "[414195d04aee3b80ece5]", "[78000000]", "0x28")
+ self.binary80_to_bid32("3", "[414195d04aee3b80ece5]", "[77f8967f]", "0x20")
+ self.binary80_to_bid32("4", "[414195d04aee3b80ece5]", "[78000000]", "0x28")
+ self.binary80_to_bid32("0", "[414195d04aee3b80ece6]", "[78000000]", "0x28")
+ self.binary80_to_bid32("1", "[414195d04aee3b80ece6]", "[77f8967f]", "0x28")
+ self.binary80_to_bid32("2", "[414195d04aee3b80ece6]", "[78000000]", "0x28")
+ self.binary80_to_bid32("3", "[414195d04aee3b80ece6]", "[77f8967f]", "0x28")
+ self.binary80_to_bid32("4", "[414195d04aee3b80ece6]", "[78000000]", "0x28")
+ self.binary80_to_bid32("0", "[7ffeffffffffffffffff]", "[78000000]", "0x28")
+ self.binary80_to_bid32("1", "[7ffeffffffffffffffff]", "[77f8967f]", "0x28")
+ self.binary80_to_bid32("2", "[7ffeffffffffffffffff]", "[78000000]", "0x28")
+ self.binary80_to_bid32("3", "[7ffeffffffffffffffff]", "[77f8967f]", "0x28")
+ self.binary80_to_bid32("4", "[7ffeffffffffffffffff]", "[78000000]", "0x28")
+ self.binary80_to_bid32("0", "[7fff8000000000000000]", "[78000000]", "0x00")
+ self.binary80_to_bid32("1", "[7fff8000000000000000]", "[78000000]", "0x00")
+ self.binary80_to_bid32("2", "[7fff8000000000000000]", "[78000000]", "0x00")
+ self.binary80_to_bid32("3", "[7fff8000000000000000]", "[78000000]", "0x00")
+ self.binary80_to_bid32("4", "[7fff8000000000000000]", "[78000000]", "0x00")
+ self.binary80_to_bid32("0", "[7fffb080000000000000]", "[7c0c2000]", "0x01")
+ self.binary80_to_bid32("0", "[7ffff080000000000000]", "[7c0c2000]", "0x00")
+ self.binary80_to_bid32("0", "[80000000000000000001]", "[80000000]", "0x32")
+ self.binary80_to_bid32("1", "[80000000000000000001]", "[80000001]", "0x32")
+ self.binary80_to_bid32("2", "[80000000000000000001]", "[80000000]", "0x32")
+ self.binary80_to_bid32("3", "[80000000000000000001]", "[80000000]", "0x32")
+ self.binary80_to_bid32("4", "[80000000000000000001]", "[80000000]", "0x32")
+ self.binary80_to_bid32("0", "[80007fffffffffffffff]", "[80000000]", "0x32")
+ self.binary80_to_bid32("1", "[80007fffffffffffffff]", "[80000001]", "0x32")
+ self.binary80_to_bid32("2", "[80007fffffffffffffff]", "[80000000]", "0x32")
+ self.binary80_to_bid32("3", "[80007fffffffffffffff]", "[80000000]", "0x32")
+ self.binary80_to_bid32("4", "[80007fffffffffffffff]", "[80000000]", "0x32")
+ self.binary80_to_bid32("0", "[80018000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("1", "[80018000000000000000]", "[80000001]", "0x30")
+ self.binary80_to_bid32("2", "[80018000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("3", "[80018000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("4", "[80018000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("0", "[80028000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("1", "[80028000000000000000]", "[80000001]", "0x30")
+ self.binary80_to_bid32("2", "[80028000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("3", "[80028000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("4", "[80028000000000000000]", "[80000000]", "0x30")
+ self.binary80_to_bid32("0", "[beacd3b739b2143adf23]", "[80000000]", "0x30")
+ self.binary80_to_bid32("1", "[beacd3b739b2143adf23]", "[80000001]", "0x30")
+ self.binary80_to_bid32("2", "[beacd3b739b2143adf23]", "[80000000]", "0x30")
+ self.binary80_to_bid32("3", "[beacd3b739b2143adf23]", "[80000000]", "0x30")
+ self.binary80_to_bid32("4", "[beacd3b739b2143adf23]", "[80000000]", "0x30")
+ self.binary80_to_bid32("0", "[beafb32df8e9f3546564]", "[80000001]", "0x30")
+ self.binary80_to_bid32("1", "[beafb32df8e9f3546564]", "[80000001]", "0x30")
+ self.binary80_to_bid32("2", "[beafb32df8e9f3546564]", "[80000000]", "0x30")
+ self.binary80_to_bid32("3", "[beafb32df8e9f3546564]", "[80000000]", "0x30")
+ self.binary80_to_bid32("4", "[beafb32df8e9f3546564]", "[80000001]", "0x30")
+ self.binary80_to_bid32("0", "[beafb32df8e9f3546565]", "[80000001]", "0x30")
+ self.binary80_to_bid32("1", "[beafb32df8e9f3546565]", "[80000002]", "0x30")
+ self.binary80_to_bid32("2", "[beafb32df8e9f3546565]", "[80000001]", "0x30")
+ self.binary80_to_bid32("3", "[beafb32df8e9f3546565]", "[80000001]", "0x30")
+ self.binary80_to_bid32("4", "[beafb32df8e9f3546565]", "[80000001]", "0x30")
+ self.binary80_to_bid32("0", "[beb3ded59edd8705a1d0]", "[80000014]", "0x30")
+ self.binary80_to_bid32("1", "[beb3ded59edd8705a1d0]", "[80000014]", "0x30")
+ self.binary80_to_bid32("2", "[beb3ded59edd8705a1d0]", "[80000013]", "0x30")
+ self.binary80_to_bid32("3", "[beb3ded59edd8705a1d0]", "[80000013]", "0x30")
+ self.binary80_to_bid32("4", "[beb3ded59edd8705a1d0]", "[80000014]", "0x30")
+ self.binary80_to_bid32("0", "[bebcdab99003fc800be7]", "[80002710]", "0x30")
+ self.binary80_to_bid32("1", "[bebcdab99003fc800be7]", "[80002710]", "0x30")
+ self.binary80_to_bid32("2", "[bebcdab99003fc800be7]", "[8000270f]", "0x30")
+ self.binary80_to_bid32("3", "[bebcdab99003fc800be7]", "[8000270f]", "0x30")
+ self.binary80_to_bid32("4", "[bebcdab99003fc800be7]", "[80002710]", "0x30")
+ self.binary80_to_bid32("0", "[bebcdab99003fc800be8]", "[80002710]", "0x30")
+ self.binary80_to_bid32("1", "[bebcdab99003fc800be8]", "[80002710]", "0x30")
+ self.binary80_to_bid32("2", "[bebcdab99003fc800be8]", "[8000270f]", "0x30")
+ self.binary80_to_bid32("3", "[bebcdab99003fc800be8]", "[8000270f]", "0x30")
+ self.binary80_to_bid32("4", "[bebcdab99003fc800be8]", "[80002710]", "0x30")
+ self.binary80_to_bid32("0", "[bebd9e85094a09157d19]", "[8000389f]", "0x30")
+ self.binary80_to_bid32("1", "[bebd9e85094a09157d19]", "[8000389f]", "0x30")
+ self.binary80_to_bid32("2", "[bebd9e85094a09157d19]", "[8000389e]", "0x30")
+ self.binary80_to_bid32("3", "[bebd9e85094a09157d19]", "[8000389e]", "0x30")
+ self.binary80_to_bid32("4", "[bebd9e85094a09157d19]", "[8000389f]", "0x30")
+ self.binary80_to_bid32("0", "[bec088b3fa027dd00770]", "[800186a0]", "0x30")
+ self.binary80_to_bid32("1", "[bec088b3fa027dd00770]", "[800186a0]", "0x30")
+ self.binary80_to_bid32("2", "[bec088b3fa027dd00770]", "[8001869f]", "0x30")
+ self.binary80_to_bid32("3", "[bec088b3fa027dd00770]", "[8001869f]", "0x30")
+ self.binary80_to_bid32("4", "[bec088b3fa027dd00770]", "[800186a0]", "0x30")
+ self.binary80_to_bid32("0", "[bec088b3fa027dd00771]", "[800186a0]", "0x30")
+ self.binary80_to_bid32("1", "[bec088b3fa027dd00771]", "[800186a0]", "0x30")
+ self.binary80_to_bid32("2", "[bec088b3fa027dd00771]", "[8001869f]", "0x30")
+ self.binary80_to_bid32("3", "[bec088b3fa027dd00771]", "[8001869f]", "0x30")
+ self.binary80_to_bid32("4", "[bec088b3fa027dd00771]", "[800186a0]", "0x30")
+ self.binary80_to_bid32("0", "[bec3aae103b5fcd2a881]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("1", "[bec3aae103b5fcd2a881]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("2", "[bec3aae103b5fcd2a881]", "[800f423f]", "0x30")
+ self.binary80_to_bid32("3", "[bec3aae103b5fcd2a881]", "[800f423f]", "0x30")
+ self.binary80_to_bid32("4", "[bec3aae103b5fcd2a881]", "[800f4240]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("0", "[bec3aae103b5fcd2a882]", "[800f4240]", "0x20")
+ self.binary80_to_bid32("1", "[bec3aae103b5fcd2a882]", "[800f4241]", "0x20")
+ self.binary80_to_bid32("2", "[bec3aae103b5fcd2a882]", "[800f4240]", "0x20")
+ self.binary80_to_bid32("3", "[bec3aae103b5fcd2a882]", "[800f4240]", "0x20")
+ self.binary80_to_bid32("4", "[bec3aae103b5fcd2a882]", "[800f4240]", "0x20")
+ self.binary80_to_bid32("0", "[bec3ff47fd503b890391]", "[8016cbaa]", "0x20")
+ self.binary80_to_bid32("1", "[bec3ff47fd503b890391]", "[8016cbaa]", "0x20")
+ self.binary80_to_bid32("2", "[bec3ff47fd503b890391]", "[8016cba9]", "0x20")
+ self.binary80_to_bid32("3", "[bec3ff47fd503b890391]", "[8016cba9]", "0x20")
+ self.binary80_to_bid32("4", "[bec3ff47fd503b890391]", "[8016cbaa]", "0x20")
+ self.binary80_to_bid32("0", "[bec6d59944a37c0752a2]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("1", "[bec6d59944a37c0752a2]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("2", "[bec6d59944a37c0752a2]", "[e018967f]", "0x20")
+ self.binary80_to_bid32("3", "[bec6d59944a37c0752a2]", "[e018967f]", "0x20")
+ self.binary80_to_bid32("4", "[bec6d59944a37c0752a2]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("0", "[bec6d59944a37c0752a3]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("1", "[bec6d59944a37c0752a3]", "[808f4241]", "0x20")
+ self.binary80_to_bid32("2", "[bec6d59944a37c0752a3]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("3", "[bec6d59944a37c0752a3]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("4", "[bec6d59944a37c0752a3]", "[808f4240]", "0x20")
+ self.binary80_to_bid32("0", "[becab433cc13309029b3]", "[811498ce]", "0x20")
+ self.binary80_to_bid32("1", "[becab433cc13309029b3]", "[811498cf]", "0x20")
+ self.binary80_to_bid32("2", "[becab433cc13309029b3]", "[811498ce]", "0x20")
+ self.binary80_to_bid32("3", "[becab433cc13309029b3]", "[811498ce]", "0x20")
+ self.binary80_to_bid32("4", "[becab433cc13309029b3]", "[811498ce]", "0x20")
+ self.binary80_to_bid32("0", "[bed082cf862ed4bef93c]", "[81dfb086]", "0x20")
+ self.binary80_to_bid32("1", "[bed082cf862ed4bef93c]", "[81dfb086]", "0x20")
+ self.binary80_to_bid32("2", "[bed082cf862ed4bef93c]", "[81dfb085]", "0x20")
+ self.binary80_to_bid32("3", "[bed082cf862ed4bef93c]", "[81dfb085]", "0x20")
+ self.binary80_to_bid32("4", "[bed082cf862ed4bef93c]", "[81dfb086]", "0x20")
+ self.binary80_to_bid32("0", "[bed2c56940c5fdb75f20]", "[8239c371]", "0x20")
+ self.binary80_to_bid32("1", "[bed2c56940c5fdb75f20]", "[8239c372]", "0x20")
+ self.binary80_to_bid32("2", "[bed2c56940c5fdb75f20]", "[8239c371]", "0x20")
+ self.binary80_to_bid32("3", "[bed2c56940c5fdb75f20]", "[8239c371]", "0x20")
+ self.binary80_to_bid32("4", "[bed2c56940c5fdb75f20]", "[8239c371]", "0x20")
+ self.binary80_to_bid32("0", "[bedd8c5cf3180c49cc03]", "[83d41cfc]", "0x20")
+ self.binary80_to_bid32("1", "[bedd8c5cf3180c49cc03]", "[83d41cfd]", "0x20")
+ self.binary80_to_bid32("2", "[bedd8c5cf3180c49cc03]", "[83d41cfc]", "0x20")
+ self.binary80_to_bid32("3", "[bedd8c5cf3180c49cc03]", "[83d41cfc]", "0x20")
+ self.binary80_to_bid32("4", "[bedd8c5cf3180c49cc03]", "[83d41cfc]", "0x20")
+ self.binary80_to_bid32("0", "[bee3f6641b25bd412926]", "[84de7f22]", "0x20")
+ self.binary80_to_bid32("1", "[bee3f6641b25bd412926]", "[84de7f22]", "0x20")
+ self.binary80_to_bid32("2", "[bee3f6641b25bd412926]", "[84de7f21]", "0x20")
+ self.binary80_to_bid32("3", "[bee3f6641b25bd412926]", "[84de7f21]", "0x20")
+ self.binary80_to_bid32("4", "[bee3f6641b25bd412926]", "[84de7f22]", "0x20")
+ self.binary80_to_bid32("0", "[bee8b16f1fa6138590fc]", "[8595c6a9]", "0x20")
+ self.binary80_to_bid32("1", "[bee8b16f1fa6138590fc]", "[8595c6a9]", "0x20")
+ self.binary80_to_bid32("2", "[bee8b16f1fa6138590fc]", "[8595c6a8]", "0x20")
+ self.binary80_to_bid32("3", "[bee8b16f1fa6138590fc]", "[8595c6a8]", "0x20")
+ self.binary80_to_bid32("4", "[bee8b16f1fa6138590fc]", "[8595c6a9]", "0x20")
+ self.binary80_to_bid32("0", "[bef0fceed390bcbfe5c4]", "[86cf778b]", "0x20")
+ self.binary80_to_bid32("1", "[bef0fceed390bcbfe5c4]", "[86cf778c]", "0x20")
+ self.binary80_to_bid32("2", "[bef0fceed390bcbfe5c4]", "[86cf778b]", "0x20")
+ self.binary80_to_bid32("3", "[bef0fceed390bcbfe5c4]", "[86cf778b]", "0x20")
+ self.binary80_to_bid32("4", "[bef0fceed390bcbfe5c4]", "[86cf778b]", "0x20")
+ self.binary80_to_bid32("0", "[bef2c0fcad82347d63a0]", "[871840d3]", "0x20")
+ self.binary80_to_bid32("1", "[bef2c0fcad82347d63a0]", "[871840d3]", "0x20")
+ self.binary80_to_bid32("2", "[bef2c0fcad82347d63a0]", "[871840d2]", "0x20")
+ self.binary80_to_bid32("3", "[bef2c0fcad82347d63a0]", "[871840d2]", "0x20")
+ self.binary80_to_bid32("4", "[bef2c0fcad82347d63a0]", "[871840d3]", "0x20")
+ self.binary80_to_bid32("0", "[befcc24ccba5cbdaaf74]", "[88990117]", "0x20")
+ self.binary80_to_bid32("1", "[befcc24ccba5cbdaaf74]", "[88990118]", "0x20")
+ self.binary80_to_bid32("2", "[befcc24ccba5cbdaaf74]", "[88990117]", "0x20")
+ self.binary80_to_bid32("3", "[befcc24ccba5cbdaaf74]", "[88990117]", "0x20")
+ self.binary80_to_bid32("4", "[befcc24ccba5cbdaaf74]", "[88990117]", "0x20")
+ self.binary80_to_bid32("0", "[bf03c40c89ad743f2681]", "[89a04b26]", "0x20")
+ self.binary80_to_bid32("1", "[bf03c40c89ad743f2681]", "[89a04b27]", "0x20")
+ self.binary80_to_bid32("2", "[bf03c40c89ad743f2681]", "[89a04b26]", "0x20")
+ self.binary80_to_bid32("3", "[bf03c40c89ad743f2681]", "[89a04b26]", "0x20")
+ self.binary80_to_bid32("4", "[bf03c40c89ad743f2681]", "[89a04b26]", "0x20")
+ self.binary80_to_bid32("0", "[bf0990d8fb12d906b0d8]", "[8a8f4526]", "0x20")
+ self.binary80_to_bid32("1", "[bf0990d8fb12d906b0d8]", "[8a8f4527]", "0x20")
+ self.binary80_to_bid32("2", "[bf0990d8fb12d906b0d8]", "[8a8f4526]", "0x20")
+ self.binary80_to_bid32("3", "[bf0990d8fb12d906b0d8]", "[8a8f4526]", "0x20")
+ self.binary80_to_bid32("4", "[bf0990d8fb12d906b0d8]", "[8a8f4526]", "0x20")
+ self.binary80_to_bid32("0", "[bf0fb50f39d78f485d0e]", "[8b7a2934]", "0x20")
+ self.binary80_to_bid32("1", "[bf0fb50f39d78f485d0e]", "[8b7a2934]", "0x20")
+ self.binary80_to_bid32("2", "[bf0fb50f39d78f485d0e]", "[8b7a2933]", "0x20")
+ self.binary80_to_bid32("3", "[bf0fb50f39d78f485d0e]", "[8b7a2933]", "0x20")
+ self.binary80_to_bid32("4", "[bf0fb50f39d78f485d0e]", "[8b7a2934]", "0x20")
+ self.binary80_to_bid32("0", "[bf12ea0166331944e660]", "[8bfe4e92]", "0x20")
+ self.binary80_to_bid32("1", "[bf12ea0166331944e660]", "[8bfe4e93]", "0x20")
+ self.binary80_to_bid32("2", "[bf12ea0166331944e660]", "[8bfe4e92]", "0x20")
+ self.binary80_to_bid32("3", "[bf12ea0166331944e660]", "[8bfe4e92]", "0x20")
+ self.binary80_to_bid32("4", "[bf12ea0166331944e660]", "[8bfe4e92]", "0x20")
+ self.binary80_to_bid32("0", "[bf1db6d117d7ebbdd3fb]", "[8d943588]", "0x20")
+ self.binary80_to_bid32("1", "[bf1db6d117d7ebbdd3fb]", "[8d943589]", "0x20")
+ self.binary80_to_bid32("2", "[bf1db6d117d7ebbdd3fb]", "[8d943588]", "0x20")
+ self.binary80_to_bid32("3", "[bf1db6d117d7ebbdd3fb]", "[8d943588]", "0x20")
+ self.binary80_to_bid32("4", "[bf1db6d117d7ebbdd3fb]", "[8d943588]", "0x20")
+ self.binary80_to_bid32("0", "[bf23e03a19b62e540ad0]", "[8e8fdd0e]", "0x20")
+ self.binary80_to_bid32("1", "[bf23e03a19b62e540ad0]", "[8e8fdd0e]", "0x20")
+ self.binary80_to_bid32("2", "[bf23e03a19b62e540ad0]", "[8e8fdd0d]", "0x20")
+ self.binary80_to_bid32("3", "[bf23e03a19b62e540ad0]", "[8e8fdd0d]", "0x20")
+ self.binary80_to_bid32("4", "[bf23e03a19b62e540ad0]", "[8e8fdd0e]", "0x20")
+ self.binary80_to_bid32("0", "[bf2abc7e811730e91904]", "[8f9111c6]", "0x20")
+ self.binary80_to_bid32("1", "[bf2abc7e811730e91904]", "[8f9111c6]", "0x20")
+ self.binary80_to_bid32("2", "[bf2abc7e811730e91904]", "[8f9111c5]", "0x20")
+ self.binary80_to_bid32("3", "[bf2abc7e811730e91904]", "[8f9111c5]", "0x20")
+ self.binary80_to_bid32("4", "[bf2abc7e811730e91904]", "[8f9111c6]", "0x20")
+ self.binary80_to_bid32("0", "[bf30e7d932e3a3a3d127]", "[e4065ef2]", "0x20")
+ self.binary80_to_bid32("1", "[bf30e7d932e3a3a3d127]", "[e4065ef2]", "0x20")
+ self.binary80_to_bid32("2", "[bf30e7d932e3a3a3d127]", "[e4065ef1]", "0x20")
+ self.binary80_to_bid32("3", "[bf30e7d932e3a3a3d127]", "[e4065ef1]", "0x20")
+ self.binary80_to_bid32("4", "[bf30e7d932e3a3a3d127]", "[e4065ef2]", "0x20")
+ self.binary80_to_bid32("0", "[bf33b789212575779e80]", "[90d518b1]", "0x20")
+ self.binary80_to_bid32("1", "[bf33b789212575779e80]", "[90d518b2]", "0x20")
+ self.binary80_to_bid32("2", "[bf33b789212575779e80]", "[90d518b1]", "0x20")
+ self.binary80_to_bid32("3", "[bf33b789212575779e80]", "[90d518b1]", "0x20")
+ self.binary80_to_bid32("4", "[bf33b789212575779e80]", "[90d518b1]", "0x20")
+ self.binary80_to_bid32("0", "[bf3ddbb6d15a485f6f63]", "[926850c6]", "0x20")
+ self.binary80_to_bid32("1", "[bf3ddbb6d15a485f6f63]", "[926850c6]", "0x20")
+ self.binary80_to_bid32("2", "[bf3ddbb6d15a485f6f63]", "[926850c5]", "0x20")
+ self.binary80_to_bid32("3", "[bf3ddbb6d15a485f6f63]", "[926850c5]", "0x20")
+ self.binary80_to_bid32("4", "[bf3ddbb6d15a485f6f63]", "[926850c6]", "0x20")
+ self.binary80_to_bid32("0", "[bf4295e3e177474a4200]", "[9316c5ce]", "0x20")
+ self.binary80_to_bid32("1", "[bf4295e3e177474a4200]", "[9316c5ce]", "0x20")
+ self.binary80_to_bid32("2", "[bf4295e3e177474a4200]", "[9316c5cd]", "0x20")
+ self.binary80_to_bid32("3", "[bf4295e3e177474a4200]", "[9316c5cd]", "0x20")
+ self.binary80_to_bid32("4", "[bf4295e3e177474a4200]", "[9316c5ce]", "0x20")
+ self.binary80_to_bid32("0", "[bf43f3c64649570fe033]", "[934a12a8]", "0x20")
+ self.binary80_to_bid32("1", "[bf43f3c64649570fe033]", "[934a12a9]", "0x20")
+ self.binary80_to_bid32("2", "[bf43f3c64649570fe033]", "[934a12a8]", "0x20")
+ self.binary80_to_bid32("3", "[bf43f3c64649570fe033]", "[934a12a8]", "0x20")
+ self.binary80_to_bid32("4", "[bf43f3c64649570fe033]", "[934a12a8]", "0x20")
+ self.binary80_to_bid32("0", "[bf50a9c0a864828be6ad]", "[952a4142]", "0x20")
+ self.binary80_to_bid32("1", "[bf50a9c0a864828be6ad]", "[952a4143]", "0x20")
+ self.binary80_to_bid32("2", "[bf50a9c0a864828be6ad]", "[952a4142]", "0x20")
+ self.binary80_to_bid32("3", "[bf50a9c0a864828be6ad]", "[952a4142]", "0x20")
+ self.binary80_to_bid32("4", "[bf50a9c0a864828be6ad]", "[952a4142]", "0x20")
+ self.binary80_to_bid32("0", "[bf538023fe90bb6890f0]", "[95998479]", "0x20")
+ self.binary80_to_bid32("1", "[bf538023fe90bb6890f0]", "[95998479]", "0x20")
+ self.binary80_to_bid32("2", "[bf538023fe90bb6890f0]", "[95998478]", "0x20")
+ self.binary80_to_bid32("3", "[bf538023fe90bb6890f0]", "[95998478]", "0x20")
+ self.binary80_to_bid32("4", "[bf538023fe90bb6890f0]", "[95998479]", "0x20")
+ self.binary80_to_bid32("0", "[bf5dd0611dbe6c001893]", "[972a7de9]", "0x20")
+ self.binary80_to_bid32("1", "[bf5dd0611dbe6c001893]", "[972a7dea]", "0x20")
+ self.binary80_to_bid32("2", "[bf5dd0611dbe6c001893]", "[972a7de9]", "0x20")
+ self.binary80_to_bid32("3", "[bf5dd0611dbe6c001893]", "[972a7de9]", "0x20")
+ self.binary80_to_bid32("4", "[bf5dd0611dbe6c001893]", "[972a7de9]", "0x20")
+ self.binary80_to_bid32("0", "[bf63f010f658ae9dbe1f]", "[981f5482]", "0x20")
+ self.binary80_to_bid32("1", "[bf63f010f658ae9dbe1f]", "[981f5482]", "0x20")
+ self.binary80_to_bid32("2", "[bf63f010f658ae9dbe1f]", "[981f5481]", "0x20")
+ self.binary80_to_bid32("3", "[bf63f010f658ae9dbe1f]", "[981f5481]", "0x20")
+ self.binary80_to_bid32("4", "[bf63f010f658ae9dbe1f]", "[981f5482]", "0x20")
+ self.binary80_to_bid32("0", "[bf69bd3d1a726eb79f6c]", "[990fce53]", "0x20")
+ self.binary80_to_bid32("1", "[bf69bd3d1a726eb79f6c]", "[990fce53]", "0x20")
+ self.binary80_to_bid32("2", "[bf69bd3d1a726eb79f6c]", "[990fce52]", "0x20")
+ self.binary80_to_bid32("3", "[bf69bd3d1a726eb79f6c]", "[990fce52]", "0x20")
+ self.binary80_to_bid32("4", "[bf69bd3d1a726eb79f6c]", "[990fce53]", "0x20")
+ self.binary80_to_bid32("0", "[bf6e84fdae3e8788ba78]", "[99a38b9c]", "0x20")
+ self.binary80_to_bid32("1", "[bf6e84fdae3e8788ba78]", "[99a38b9c]", "0x20")
+ self.binary80_to_bid32("2", "[bf6e84fdae3e8788ba78]", "[99a38b9b]", "0x20")
+ self.binary80_to_bid32("3", "[bf6e84fdae3e8788ba78]", "[99a38b9b]", "0x20")
+ self.binary80_to_bid32("4", "[bf6e84fdae3e8788ba78]", "[99a38b9c]", "0x20")
+ self.binary80_to_bid32("0", "[bf72b295ae28495d3920]", "[9a4c5ed1]", "0x20")
+ self.binary80_to_bid32("1", "[bf72b295ae28495d3920]", "[9a4c5ed1]", "0x20")
+ self.binary80_to_bid32("2", "[bf72b295ae28495d3920]", "[9a4c5ed0]", "0x20")
+ self.binary80_to_bid32("3", "[bf72b295ae28495d3920]", "[9a4c5ed0]", "0x20")
+ self.binary80_to_bid32("4", "[bf72b295ae28495d3920]", "[9a4c5ed1]", "0x20")
+ self.binary80_to_bid32("0", "[bf7cc8f78d334d80b34a]", "[9bd8012e]", "0x20")
+ self.binary80_to_bid32("1", "[bf7cc8f78d334d80b34a]", "[9bd8012e]", "0x20")
+ self.binary80_to_bid32("2", "[bf7cc8f78d334d80b34a]", "[9bd8012d]", "0x20")
+ self.binary80_to_bid32("3", "[bf7cc8f78d334d80b34a]", "[9bd8012d]", "0x20")
+ self.binary80_to_bid32("4", "[bf7cc8f78d334d80b34a]", "[9bd8012e]", "0x20")
+ self.binary80_to_bid32("0", "[bf81ba99090829723038]", "[9c9a25de]", "0x20")
+ self.binary80_to_bid32("1", "[bf81ba99090829723038]", "[9c9a25df]", "0x20")
+ self.binary80_to_bid32("2", "[bf81ba99090829723038]", "[9c9a25de]", "0x20")
+ self.binary80_to_bid32("3", "[bf81ba99090829723038]", "[9c9a25de]", "0x20")
+ self.binary80_to_bid32("4", "[bf81ba99090829723038]", "[9c9a25de]", "0x20")
+ self.binary80_to_bid32("0", "[bf8afa8b6e6c0337af94]", "[9e11f9c7]", "0x20")
+ self.binary80_to_bid32("1", "[bf8afa8b6e6c0337af94]", "[9e11f9c8]", "0x20")
+ self.binary80_to_bid32("2", "[bf8afa8b6e6c0337af94]", "[9e11f9c7]", "0x20")
+ self.binary80_to_bid32("3", "[bf8afa8b6e6c0337af94]", "[9e11f9c7]", "0x20")
+ self.binary80_to_bid32("4", "[bf8afa8b6e6c0337af94]", "[9e11f9c7]", "0x20")
+ self.binary80_to_bid32("0", "[bf8fae08d47c1931c9c6]", "[9ea7f4d4]", "0x20")
+ self.binary80_to_bid32("1", "[bf8fae08d47c1931c9c6]", "[9ea7f4d4]", "0x20")
+ self.binary80_to_bid32("2", "[bf8fae08d47c1931c9c6]", "[9ea7f4d3]", "0x20")
+ self.binary80_to_bid32("3", "[bf8fae08d47c1931c9c6]", "[9ea7f4d3]", "0x20")
+ self.binary80_to_bid32("4", "[bf8fae08d47c1931c9c6]", "[9ea7f4d4]", "0x20")
+ self.binary80_to_bid32("0", "[bf95ac2de6f4c8bd837c]", "[9f994caa]", "0x20")
+ self.binary80_to_bid32("1", "[bf95ac2de6f4c8bd837c]", "[9f994cab]", "0x20")
+ self.binary80_to_bid32("2", "[bf95ac2de6f4c8bd837c]", "[9f994caa]", "0x20")
+ self.binary80_to_bid32("3", "[bf95ac2de6f4c8bd837c]", "[9f994caa]", "0x20")
+ self.binary80_to_bid32("4", "[bf95ac2de6f4c8bd837c]", "[9f994caa]", "0x20")
+ self.binary80_to_bid32("0", "[bf9ce3ce5765ace531ae]", "[a0aad876]", "0x20")
+ self.binary80_to_bid32("1", "[bf9ce3ce5765ace531ae]", "[a0aad877]", "0x20")
+ self.binary80_to_bid32("2", "[bf9ce3ce5765ace531ae]", "[a0aad876]", "0x20")
+ self.binary80_to_bid32("3", "[bf9ce3ce5765ace531ae]", "[a0aad876]", "0x20")
+ self.binary80_to_bid32("4", "[bf9ce3ce5765ace531ae]", "[a0aad876]", "0x20")
+ self.binary80_to_bid32("0", "[bfa2f2f4e6c71b33cb36]", "[a19d3eae]", "0x20")
+ self.binary80_to_bid32("1", "[bfa2f2f4e6c71b33cb36]", "[a19d3eae]", "0x20")
+ self.binary80_to_bid32("2", "[bfa2f2f4e6c71b33cb36]", "[a19d3ead]", "0x20")
+ self.binary80_to_bid32("3", "[bfa2f2f4e6c71b33cb36]", "[a19d3ead]", "0x20")
+ self.binary80_to_bid32("4", "[bfa2f2f4e6c71b33cb36]", "[a19d3eae]", "0x20")
+ self.binary80_to_bid32("0", "[bfa9907d33443289d71e]", "[a2964317]", "0x20")
+ self.binary80_to_bid32("1", "[bfa9907d33443289d71e]", "[a2964317]", "0x20")
+ self.binary80_to_bid32("2", "[bfa9907d33443289d71e]", "[a2964316]", "0x20")
+ self.binary80_to_bid32("3", "[bfa9907d33443289d71e]", "[a2964316]", "0x20")
+ self.binary80_to_bid32("4", "[bfa9907d33443289d71e]", "[a2964317]", "0x20")
+ self.binary80_to_bid32("0", "[bfafc3cb614e5d580900]", "[a3934e8c]", "0x20")
+ self.binary80_to_bid32("1", "[bfafc3cb614e5d580900]", "[a3934e8c]", "0x20")
+ self.binary80_to_bid32("2", "[bfafc3cb614e5d580900]", "[a3934e8b]", "0x20")
+ self.binary80_to_bid32("3", "[bfafc3cb614e5d580900]", "[a3934e8b]", "0x20")
+ self.binary80_to_bid32("4", "[bfafc3cb614e5d580900]", "[a3934e8c]", "0x20")
+ self.binary80_to_bid32("0", "[bfafdfd55f5573762396]", "[a396125a]", "0x20")
+ self.binary80_to_bid32("1", "[bfafdfd55f5573762396]", "[a396125a]", "0x20")
+ self.binary80_to_bid32("2", "[bfafdfd55f5573762396]", "[a3961259]", "0x20")
+ self.binary80_to_bid32("3", "[bfafdfd55f5573762396]", "[a3961259]", "0x20")
+ self.binary80_to_bid32("4", "[bfafdfd55f5573762396]", "[a396125a]", "0x20")
+ self.binary80_to_bid32("0", "[bfbad4deb368876c1568]", "[a52afd1e]", "0x20")
+ self.binary80_to_bid32("1", "[bfbad4deb368876c1568]", "[a52afd1f]", "0x20")
+ self.binary80_to_bid32("2", "[bfbad4deb368876c1568]", "[a52afd1e]", "0x20")
+ self.binary80_to_bid32("3", "[bfbad4deb368876c1568]", "[a52afd1e]", "0x20")
+ self.binary80_to_bid32("4", "[bfbad4deb368876c1568]", "[a52afd1e]", "0x20")
+ self.binary80_to_bid32("0", "[bfbfe214771c60015020]", "[e97219ca]", "0x20")
+ self.binary80_to_bid32("1", "[bfbfe214771c60015020]", "[e97219ca]", "0x20")
+ self.binary80_to_bid32("2", "[bfbfe214771c60015020]", "[e97219c9]", "0x20")
+ self.binary80_to_bid32("3", "[bfbfe214771c60015020]", "[e97219c9]", "0x20")
+ self.binary80_to_bid32("4", "[bfbfe214771c60015020]", "[e97219ca]", "0x20")
+ self.binary80_to_bid32("0", "[bfcab9d5c977b2a77193]", "[a7989857]", "0x20")
+ self.binary80_to_bid32("1", "[bfcab9d5c977b2a77193]", "[a7989857]", "0x20")
+ self.binary80_to_bid32("2", "[bfcab9d5c977b2a77193]", "[a7989856]", "0x20")
+ self.binary80_to_bid32("3", "[bfcab9d5c977b2a77193]", "[a7989856]", "0x20")
+ self.binary80_to_bid32("4", "[bfcab9d5c977b2a77193]", "[a7989857]", "0x20")
+ self.binary80_to_bid32("0", "[bfd0fa36ef6f2ce257ac]", "[a89531aa]", "0x20")
+ self.binary80_to_bid32("1", "[bfd0fa36ef6f2ce257ac]", "[a89531aa]", "0x20")
+ self.binary80_to_bid32("2", "[bfd0fa36ef6f2ce257ac]", "[a89531a9]", "0x20")
+ self.binary80_to_bid32("3", "[bfd0fa36ef6f2ce257ac]", "[a89531a9]", "0x20")
+ self.binary80_to_bid32("4", "[bfd0fa36ef6f2ce257ac]", "[a89531aa]", "0x20")
+ self.binary80_to_bid32("0", "[bfd79572c280dca3358a]", "[a9903406]", "0x20")
+ self.binary80_to_bid32("1", "[bfd79572c280dca3358a]", "[a9903406]", "0x20")
+ self.binary80_to_bid32("2", "[bfd79572c280dca3358a]", "[a9903405]", "0x20")
+ self.binary80_to_bid32("3", "[bfd79572c280dca3358a]", "[a9903405]", "0x20")
+ self.binary80_to_bid32("4", "[bfd79572c280dca3358a]", "[a9903406]", "0x20")
+ self.binary80_to_bid32("0", "[bfd9c5efcd0455c09e80]", "[a9d5d764]", "0x20")
+ self.binary80_to_bid32("1", "[bfd9c5efcd0455c09e80]", "[a9d5d764]", "0x20")
+ self.binary80_to_bid32("2", "[bfd9c5efcd0455c09e80]", "[a9d5d763]", "0x20")
+ self.binary80_to_bid32("3", "[bfd9c5efcd0455c09e80]", "[a9d5d763]", "0x20")
+ self.binary80_to_bid32("4", "[bfd9c5efcd0455c09e80]", "[a9d5d764]", "0x20")
+ self.binary80_to_bid32("0", "[bfe285f8df68b043dbac]", "[ab1dbf70]", "0x20")
+ self.binary80_to_bid32("1", "[bfe285f8df68b043dbac]", "[ab1dbf70]", "0x20")
+ self.binary80_to_bid32("2", "[bfe285f8df68b043dbac]", "[ab1dbf6f]", "0x20")
+ self.binary80_to_bid32("3", "[bfe285f8df68b043dbac]", "[ab1dbf6f]", "0x20")
+ self.binary80_to_bid32("4", "[bfe285f8df68b043dbac]", "[ab1dbf70]", "0x20")
+ self.binary80_to_bid32("0", "[bfe9b1c57cb9f22f71de]", "[ac328693]", "0x20")
+ self.binary80_to_bid32("1", "[bfe9b1c57cb9f22f71de]", "[ac328694]", "0x20")
+ self.binary80_to_bid32("2", "[bfe9b1c57cb9f22f71de]", "[ac328693]", "0x20")
+ self.binary80_to_bid32("3", "[bfe9b1c57cb9f22f71de]", "[ac328693]", "0x20")
+ self.binary80_to_bid32("4", "[bfe9b1c57cb9f22f71de]", "[ac328693]", "0x20")
+ self.binary80_to_bid32("0", "[bff0e97742fba9e4526b]", "[ad54ef34]", "0x20")
+ self.binary80_to_bid32("1", "[bff0e97742fba9e4526b]", "[ad54ef35]", "0x20")
+ self.binary80_to_bid32("2", "[bff0e97742fba9e4526b]", "[ad54ef34]", "0x20")
+ self.binary80_to_bid32("3", "[bff0e97742fba9e4526b]", "[ad54ef34]", "0x20")
+ self.binary80_to_bid32("4", "[bff0e97742fba9e4526b]", "[ad54ef34]", "0x20")
+ self.binary80_to_bid32("0", "[bff5c16027cb04a782dc]", "[ae16830b]", "0x20")
+ self.binary80_to_bid32("1", "[bff5c16027cb04a782dc]", "[ae16830b]", "0x20")
+ self.binary80_to_bid32("2", "[bff5c16027cb04a782dc]", "[ae16830a]", "0x20")
+ self.binary80_to_bid32("3", "[bff5c16027cb04a782dc]", "[ae16830a]", "0x20")
+ self.binary80_to_bid32("4", "[bff5c16027cb04a782dc]", "[ae16830b]", "0x20")
+ self.binary80_to_bid32("0", "[bffad000000000000000]", "[aecd7c6d]", "0x00")
+ self.binary80_to_bid32("1", "[bffad000000000000000]", "[aecd7c6d]", "0x00")
+ self.binary80_to_bid32("2", "[bffad000000000000000]", "[aecd7c6d]", "0x00")
+ self.binary80_to_bid32("3", "[bffad000000000000000]", "[aecd7c6d]", "0x00")
+ self.binary80_to_bid32("4", "[bffad000000000000000]", "[aecd7c6d]", "0x00")
+ self.binary80_to_bid32("0", "[bffdfefcdb885172b95b]", "[af4bfe05]", "0x20")
+ self.binary80_to_bid32("1", "[bffdfefcdb885172b95b]", "[af4bfe05]", "0x20")
+ self.binary80_to_bid32("2", "[bffdfefcdb885172b95b]", "[af4bfe04]", "0x20")
+ self.binary80_to_bid32("3", "[bffdfefcdb885172b95b]", "[af4bfe04]", "0x20")
+ self.binary80_to_bid32("4", "[bffdfefcdb885172b95b]", "[af4bfe05]", "0x20")
+ self.binary80_to_bid32("0", "[bfff8000000000000000]", "[b2800001]", "0x00")
+ self.binary80_to_bid32("1", "[bfff8000000000000000]", "[b2800001]", "0x00")
+ self.binary80_to_bid32("2", "[bfff8000000000000000]", "[b2800001]", "0x00")
+ self.binary80_to_bid32("3", "[bfff8000000000000000]", "[b2800001]", "0x00")
+ self.binary80_to_bid32("4", "[bfff8000000000000000]", "[b2800001]", "0x00")
+ self.binary80_to_bid32("0", "[bfffc000000000000000]", "[b200000f]", "0x00")
+ self.binary80_to_bid32("1", "[bfffc000000000000000]", "[b200000f]", "0x00")
+ self.binary80_to_bid32("2", "[bfffc000000000000000]", "[b200000f]", "0x00")
+ self.binary80_to_bid32("3", "[bfffc000000000000000]", "[b200000f]", "0x00")
+ self.binary80_to_bid32("4", "[bfffc000000000000000]", "[b200000f]", "0x00")
+ self.binary80_to_bid32("0", "[bfffff9b710a2e572b60]", "[af9e7883]", "0x20")
+ self.binary80_to_bid32("1", "[bfffff9b710a2e572b60]", "[af9e7884]", "0x20")
+ self.binary80_to_bid32("2", "[bfffff9b710a2e572b60]", "[af9e7883]", "0x20")
+ self.binary80_to_bid32("3", "[bfffff9b710a2e572b60]", "[af9e7883]", "0x20")
+ self.binary80_to_bid32("4", "[bfffff9b710a2e572b60]", "[af9e7883]", "0x20")
+ self.binary80_to_bid32("0", "[c0058000000000000000]", "[b2800040]", "0x00")
+ self.binary80_to_bid32("1", "[c0058000000000000000]", "[b2800040]", "0x00")
+ self.binary80_to_bid32("2", "[c0058000000000000000]", "[b2800040]", "0x00")
+ self.binary80_to_bid32("3", "[c0058000000000000000]", "[b2800040]", "0x00")
+ self.binary80_to_bid32("4", "[c0058000000000000000]", "[b2800040]", "0x00")
+ self.binary80_to_bid32("0", "[c008f9c0000000000000]", "[b28003e7]", "0x00")
+ self.binary80_to_bid32("1", "[c008f9c0000000000000]", "[b28003e7]", "0x00")
+ self.binary80_to_bid32("2", "[c008f9c0000000000000]", "[b28003e7]", "0x00")
+ self.binary80_to_bid32("3", "[c008f9c0000000000000]", "[b28003e7]", "0x00")
+ self.binary80_to_bid32("4", "[c008f9c0000000000000]", "[b28003e7]", "0x00")
+ self.binary80_to_bid32("0", "[c008fa00000000000000]", "[b28003e8]", "0x00")
+ self.binary80_to_bid32("1", "[c008fa00000000000000]", "[b28003e8]", "0x00")
+ self.binary80_to_bid32("2", "[c008fa00000000000000]", "[b28003e8]", "0x00")
+ self.binary80_to_bid32("3", "[c008fa00000000000000]", "[b28003e8]", "0x00")
+ self.binary80_to_bid32("4", "[c008fa00000000000000]", "[b28003e8]", "0x00")
+ self.binary80_to_bid32("0", "[c009f9fe631f8a0902de]", "[b11e844e]", "0x20")
+ self.binary80_to_bid32("1", "[c009f9fe631f8a0902de]", "[b11e844e]", "0x20")
+ self.binary80_to_bid32("2", "[c009f9fe631f8a0902de]", "[b11e844d]", "0x20")
+ self.binary80_to_bid32("3", "[c009f9fe631f8a0902de]", "[b11e844d]", "0x20")
+ self.binary80_to_bid32("4", "[c009f9fe631f8a0902de]", "[b11e844e]", "0x20")
+ self.binary80_to_bid32("0", "[c010ffffffffffffffff]", "[b2280000]", "0x20")
+ self.binary80_to_bid32("1", "[c010ffffffffffffffff]", "[b2280000]", "0x20")
+ self.binary80_to_bid32("2", "[c010ffffffffffffffff]", "[b227ffff]", "0x20")
+ self.binary80_to_bid32("3", "[c010ffffffffffffffff]", "[b227ffff]", "0x20")
+ self.binary80_to_bid32("4", "[c010ffffffffffffffff]", "[b2280000]", "0x20")
+ self.binary80_to_bid32("0", "[c01798967fffffffffff]", "[b31e8480]", "0x20")
+ self.binary80_to_bid32("1", "[c01798967fffffffffff]", "[b31e8480]", "0x20")
+ self.binary80_to_bid32("2", "[c01798967fffffffffff]", "[b31e847f]", "0x20")
+ self.binary80_to_bid32("3", "[c01798967fffffffffff]", "[b31e847f]", "0x20")
+ self.binary80_to_bid32("4", "[c01798967fffffffffff]", "[b31e8480]", "0x20")
+ self.binary80_to_bid32("0", "[c01dfffffaefffffffff]", "[b420c49b]", "0x20")
+ self.binary80_to_bid32("1", "[c01dfffffaefffffffff]", "[b420c49b]", "0x20")
+ self.binary80_to_bid32("2", "[c01dfffffaefffffffff]", "[b420c49a]", "0x20")
+ self.binary80_to_bid32("3", "[c01dfffffaefffffffff]", "[b420c49a]", "0x20")
+ self.binary80_to_bid32("4", "[c01dfffffaefffffffff]", "[b420c49b]", "0x20")
+ self.binary80_to_bid32("0", "[c0219502f8fffffffff8]", "[b49e8480]", "0x20")
+ self.binary80_to_bid32("1", "[c0219502f8fffffffff8]", "[b49e8480]", "0x20")
+ self.binary80_to_bid32("2", "[c0219502f8fffffffff8]", "[b49e847f]", "0x20")
+ self.binary80_to_bid32("3", "[c0219502f8fffffffff8]", "[b49e847f]", "0x20")
+ self.binary80_to_bid32("4", "[c0219502f8fffffffff8]", "[b49e8480]", "0x20")
+ self.binary80_to_bid32("0", "[c02afffffa3c4fffffff]", "[b61ad7f2]", "0x20")
+ self.binary80_to_bid32("1", "[c02afffffa3c4fffffff]", "[b61ad7f2]", "0x20")
+ self.binary80_to_bid32("2", "[c02afffffa3c4fffffff]", "[b61ad7f1]", "0x20")
+ self.binary80_to_bid32("3", "[c02afffffa3c4fffffff]", "[b61ad7f1]", "0x20")
+ self.binary80_to_bid32("4", "[c02afffffa3c4fffffff]", "[b61ad7f2]", "0x20")
+ self.binary80_to_bid32("0", "[c030ffff6c6064ffffff]", "[b7112e02]", "0x20")
+ self.binary80_to_bid32("1", "[c030ffff6c6064ffffff]", "[b7112e02]", "0x20")
+ self.binary80_to_bid32("2", "[c030ffff6c6064ffffff]", "[b7112e01]", "0x20")
+ self.binary80_to_bid32("3", "[c030ffff6c6064ffffff]", "[b7112e01]", "0x20")
+ self.binary80_to_bid32("4", "[c030ffff6c6064ffffff]", "[b7112e02]", "0x20")
+ self.binary80_to_bid32("0", "[c037ffffff0f521bffff]", "[b815fd80]", "0x20")
+ self.binary80_to_bid32("1", "[c037ffffff0f521bffff]", "[b815fd80]", "0x20")
+ self.binary80_to_bid32("2", "[c037ffffff0f521bffff]", "[b815fd7f]", "0x20")
+ self.binary80_to_bid32("3", "[c037ffffff0f521bffff]", "[b815fd7f]", "0x20")
+ self.binary80_to_bid32("4", "[c037ffffff0f521bffff]", "[b815fd80]", "0x20")
+ self.binary80_to_bid32("0", "[c03dfffffc4b83fd3fff]", "[ee2cbcca]", "0x20")
+ self.binary80_to_bid32("1", "[c03dfffffc4b83fd3fff]", "[ee2cbcca]", "0x20")
+ self.binary80_to_bid32("2", "[c03dfffffc4b83fd3fff]", "[ee2cbcc9]", "0x20")
+ self.binary80_to_bid32("3", "[c03dfffffc4b83fd3fff]", "[ee2cbcc9]", "0x20")
+ self.binary80_to_bid32("4", "[c03dfffffc4b83fd3fff]", "[ee2cbcca]", "0x20")
+ self.binary80_to_bid32("0", "[c042ad78ebc5ac61fffc]", "[b99e8480]", "0x20")
+ self.binary80_to_bid32("1", "[c042ad78ebc5ac61fffc]", "[b99e8480]", "0x20")
+ self.binary80_to_bid32("2", "[c042ad78ebc5ac61fffc]", "[b99e847f]", "0x20")
+ self.binary80_to_bid32("3", "[c042ad78ebc5ac61fffc]", "[b99e847f]", "0x20")
+ self.binary80_to_bid32("4", "[c042ad78ebc5ac61fffc]", "[b99e8480]", "0x20")
+ self.binary80_to_bid32("0", "[c04affffff2c34cf849f]", "[baf34aca]", "0x20")
+ self.binary80_to_bid32("1", "[c04affffff2c34cf849f]", "[baf34aca]", "0x20")
+ self.binary80_to_bid32("2", "[c04affffff2c34cf849f]", "[baf34ac9]", "0x20")
+ self.binary80_to_bid32("3", "[c04affffff2c34cf849f]", "[baf34ac9]", "0x20")
+ self.binary80_to_bid32("4", "[c04affffff2c34cf849f]", "[baf34aca]", "0x20")
+ self.binary80_to_bid32("0", "[c050fffff4a024d65753]", "[bbc9c974]", "0x20")
+ self.binary80_to_bid32("1", "[c050fffff4a024d65753]", "[bbc9c974]", "0x20")
+ self.binary80_to_bid32("2", "[c050fffff4a024d65753]", "[bbc9c973]", "0x20")
+ self.binary80_to_bid32("3", "[c050fffff4a024d65753]", "[bbc9c973]", "0x20")
+ self.binary80_to_bid32("4", "[c050fffff4a024d65753]", "[bbc9c974]", "0x20")
+ self.binary80_to_bid32("0", "[c056a56f8e6a1d37e29e]", "[bc9e847c]", "0x20")
+ self.binary80_to_bid32("1", "[c056a56f8e6a1d37e29e]", "[bc9e847c]", "0x20")
+ self.binary80_to_bid32("2", "[c056a56f8e6a1d37e29e]", "[bc9e847b]", "0x20")
+ self.binary80_to_bid32("3", "[c056a56f8e6a1d37e29e]", "[bc9e847b]", "0x20")
+ self.binary80_to_bid32("4", "[c056a56f8e6a1d37e29e]", "[bc9e847c]", "0x20")
+ self.binary80_to_bid32("0", "[c05dffe9881d26b6795f]", "[bdbc6cf2]", "0x20")
+ self.binary80_to_bid32("1", "[c05dffe9881d26b6795f]", "[bdbc6cf2]", "0x20")
+ self.binary80_to_bid32("2", "[c05dffe9881d26b6795f]", "[bdbc6cf1]", "0x20")
+ self.binary80_to_bid32("3", "[c05dffe9881d26b6795f]", "[bdbc6cf1]", "0x20")
+ self.binary80_to_bid32("4", "[c05dffe9881d26b6795f]", "[bdbc6cf2]", "0x20")
+ self.binary80_to_bid32("0", "[c060a119c14989cce890]", "[be1e6e59]", "0x20")
+ self.binary80_to_bid32("1", "[c060a119c14989cce890]", "[be1e6e59]", "0x20")
+ self.binary80_to_bid32("2", "[c060a119c14989cce890]", "[be1e6e58]", "0x20")
+ self.binary80_to_bid32("3", "[c060a119c14989cce890]", "[be1e6e58]", "0x20")
+ self.binary80_to_bid32("4", "[c060a119c14989cce890]", "[be1e6e59]", "0x20")
+ self.binary80_to_bid32("0", "[c06afb17dec3467dddd1]", "[bfb09189]", "0x20")
+ self.binary80_to_bid32("1", "[c06afb17dec3467dddd1]", "[bfb09189]", "0x20")
+ self.binary80_to_bid32("2", "[c06afb17dec3467dddd1]", "[bfb09188]", "0x20")
+ self.binary80_to_bid32("3", "[c06afb17dec3467dddd1]", "[bfb09188]", "0x20")
+ self.binary80_to_bid32("4", "[c06afb17dec3467dddd1]", "[bfb09189]", "0x20")
+ self.binary80_to_bid32("0", "[c07088a268780d8a50a5]", "[c090ea1e]", "0x20")
+ self.binary80_to_bid32("1", "[c07088a268780d8a50a5]", "[c090ea1f]", "0x20")
+ self.binary80_to_bid32("2", "[c07088a268780d8a50a5]", "[c090ea1e]", "0x20")
+ self.binary80_to_bid32("3", "[c07088a268780d8a50a5]", "[c090ea1e]", "0x20")
+ self.binary80_to_bid32("4", "[c07088a268780d8a50a5]", "[c090ea1e]", "0x20")
+ self.binary80_to_bid32("0", "[c077bd39ca88ae4dbdcb]", "[c19dfbe9]", "0x20")
+ self.binary80_to_bid32("1", "[c077bd39ca88ae4dbdcb]", "[c19dfbe9]", "0x20")
+ self.binary80_to_bid32("2", "[c077bd39ca88ae4dbdcb]", "[c19dfbe8]", "0x20")
+ self.binary80_to_bid32("3", "[c077bd39ca88ae4dbdcb]", "[c19dfbe8]", "0x20")
+ self.binary80_to_bid32("4", "[c077bd39ca88ae4dbdcb]", "[c19dfbe9]", "0x20")
+ self.binary80_to_bid32("0", "[c07db9548388ebd427d5]", "[c292cb72]", "0x20")
+ self.binary80_to_bid32("1", "[c07db9548388ebd427d5]", "[c292cb73]", "0x20")
+ self.binary80_to_bid32("2", "[c07db9548388ebd427d5]", "[c292cb72]", "0x20")
+ self.binary80_to_bid32("3", "[c07db9548388ebd427d5]", "[c292cb72]", "0x20")
+ self.binary80_to_bid32("4", "[c07db9548388ebd427d5]", "[c292cb72]", "0x20")
+ self.binary80_to_bid32("0", "[c07eabaaa8baedbd5280]", "[c2a2d171]", "0x20")
+ self.binary80_to_bid32("1", "[c07eabaaa8baedbd5280]", "[c2a2d171]", "0x20")
+ self.binary80_to_bid32("2", "[c07eabaaa8baedbd5280]", "[c2a2d170]", "0x20")
+ self.binary80_to_bid32("3", "[c07eabaaa8baedbd5280]", "[c2a2d170]", "0x20")
+ self.binary80_to_bid32("4", "[c07eabaaa8baedbd5280]", "[c2a2d171]", "0x20")
+ self.binary80_to_bid32("0", "[c08adf6d404ad90149c2]", "[c4928fc3]", "0x20")
+ self.binary80_to_bid32("1", "[c08adf6d404ad90149c2]", "[c4928fc4]", "0x20")
+ self.binary80_to_bid32("2", "[c08adf6d404ad90149c2]", "[c4928fc3]", "0x20")
+ self.binary80_to_bid32("3", "[c08adf6d404ad90149c2]", "[c4928fc3]", "0x20")
+ self.binary80_to_bid32("4", "[c08adf6d404ad90149c2]", "[c4928fc3]", "0x20")
+ self.binary80_to_bid32("0", "[c08cceb4d1593d6fc040]", "[c4c4b0a1]", "0x20")
+ self.binary80_to_bid32("1", "[c08cceb4d1593d6fc040]", "[c4c4b0a1]", "0x20")
+ self.binary80_to_bid32("2", "[c08cceb4d1593d6fc040]", "[c4c4b0a0]", "0x20")
+ self.binary80_to_bid32("3", "[c08cceb4d1593d6fc040]", "[c4c4b0a0]", "0x20")
+ self.binary80_to_bid32("4", "[c08cceb4d1593d6fc040]", "[c4c4b0a1]", "0x20")
+ self.binary80_to_bid32("0", "[c096a17d438db7ff4e32]", "[c636f3b4]", "0x20")
+ self.binary80_to_bid32("1", "[c096a17d438db7ff4e32]", "[c636f3b4]", "0x20")
+ self.binary80_to_bid32("2", "[c096a17d438db7ff4e32]", "[c636f3b3]", "0x20")
+ self.binary80_to_bid32("3", "[c096a17d438db7ff4e32]", "[c636f3b3]", "0x20")
+ self.binary80_to_bid32("4", "[c096a17d438db7ff4e32]", "[c636f3b4]", "0x20")
+ self.binary80_to_bid32("0", "[c09de459b0121faa0082]", "[c76375ea]", "0x20")
+ self.binary80_to_bid32("1", "[c09de459b0121faa0082]", "[c76375eb]", "0x20")
+ self.binary80_to_bid32("2", "[c09de459b0121faa0082]", "[c76375ea]", "0x20")
+ self.binary80_to_bid32("3", "[c09de459b0121faa0082]", "[c76375ea]", "0x20")
+ self.binary80_to_bid32("4", "[c09de459b0121faa0082]", "[c76375ea]", "0x20")
+ self.binary80_to_bid32("0", "[c0a2da773f8c33552748]", "[c81e731f]", "0x20")
+ self.binary80_to_bid32("1", "[c0a2da773f8c33552748]", "[c81e731f]", "0x20")
+ self.binary80_to_bid32("2", "[c0a2da773f8c33552748]", "[c81e731e]", "0x20")
+ self.binary80_to_bid32("3", "[c0a2da773f8c33552748]", "[c81e731e]", "0x20")
+ self.binary80_to_bid32("4", "[c0a2da773f8c33552748]", "[c81e731f]", "0x20")
+ self.binary80_to_bid32("0", "[c0aad03b19f65c65cb09]", "[c94a4c9c]", "0x20")
+ self.binary80_to_bid32("1", "[c0aad03b19f65c65cb09]", "[c94a4c9c]", "0x20")
+ self.binary80_to_bid32("2", "[c0aad03b19f65c65cb09]", "[c94a4c9b]", "0x20")
+ self.binary80_to_bid32("3", "[c0aad03b19f65c65cb09]", "[c94a4c9b]", "0x20")
+ self.binary80_to_bid32("4", "[c0aad03b19f65c65cb09]", "[c94a4c9c]", "0x20")
+ self.binary80_to_bid32("0", "[c0acc04aeac9a5faa3a0]", "[c99b71e6]", "0x20")
+ self.binary80_to_bid32("1", "[c0acc04aeac9a5faa3a0]", "[c99b71e7]", "0x20")
+ self.binary80_to_bid32("2", "[c0acc04aeac9a5faa3a0]", "[c99b71e6]", "0x20")
+ self.binary80_to_bid32("3", "[c0acc04aeac9a5faa3a0]", "[c99b71e6]", "0x20")
+ self.binary80_to_bid32("4", "[c0acc04aeac9a5faa3a0]", "[c99b71e6]", "0x20")
+ self.binary80_to_bid32("0", "[c0b5c8a77ae6dc274b04]", "[f2b2a0d4]", "0x20")
+ self.binary80_to_bid32("1", "[c0b5c8a77ae6dc274b04]", "[f2b2a0d4]", "0x20")
+ self.binary80_to_bid32("2", "[c0b5c8a77ae6dc274b04]", "[f2b2a0d3]", "0x20")
+ self.binary80_to_bid32("3", "[c0b5c8a77ae6dc274b04]", "[f2b2a0d3]", "0x20")
+ self.binary80_to_bid32("4", "[c0b5c8a77ae6dc274b04]", "[f2b2a0d4]", "0x20")
+ self.binary80_to_bid32("0", "[c0bd9571492eb756d68b]", "[cc1bf4e0]", "0x20")
+ self.binary80_to_bid32("1", "[c0bd9571492eb756d68b]", "[cc1bf4e0]", "0x20")
+ self.binary80_to_bid32("2", "[c0bd9571492eb756d68b]", "[cc1bf4df]", "0x20")
+ self.binary80_to_bid32("3", "[c0bd9571492eb756d68b]", "[cc1bf4df]", "0x20")
+ self.binary80_to_bid32("4", "[c0bd9571492eb756d68b]", "[cc1bf4e0]", "0x20")
+ self.binary80_to_bid32("0", "[c0c08d203da843156310]", "[cc951edf]", "0x20")
+ self.binary80_to_bid32("1", "[c0c08d203da843156310]", "[cc951ee0]", "0x20")
+ self.binary80_to_bid32("2", "[c0c08d203da843156310]", "[cc951edf]", "0x20")
+ self.binary80_to_bid32("3", "[c0c08d203da843156310]", "[cc951edf]", "0x20")
+ self.binary80_to_bid32("4", "[c0c08d203da843156310]", "[cc951edf]", "0x20")
+ self.binary80_to_bid32("0", "[c0c9a44f974b1f15e37c]", "[cdfde722]", "0x20")
+ self.binary80_to_bid32("1", "[c0c9a44f974b1f15e37c]", "[cdfde723]", "0x20")
+ self.binary80_to_bid32("2", "[c0c9a44f974b1f15e37c]", "[cdfde722]", "0x20")
+ self.binary80_to_bid32("3", "[c0c9a44f974b1f15e37c]", "[cdfde722]", "0x20")
+ self.binary80_to_bid32("4", "[c0c9a44f974b1f15e37c]", "[cdfde722]", "0x20")
+ self.binary80_to_bid32("0", "[c0cac53d989d1652fa00]", "[ce1e3a1f]", "0x20")
+ self.binary80_to_bid32("1", "[c0cac53d989d1652fa00]", "[ce1e3a1f]", "0x20")
+ self.binary80_to_bid32("2", "[c0cac53d989d1652fa00]", "[ce1e3a1e]", "0x20")
+ self.binary80_to_bid32("3", "[c0cac53d989d1652fa00]", "[ce1e3a1e]", "0x20")
+ self.binary80_to_bid32("4", "[c0cac53d989d1652fa00]", "[ce1e3a1f]", "0x20")
+ self.binary80_to_bid32("0", "[c0d6b2f3299ec7be0c0a]", "[cff05422]", "0x20")
+ self.binary80_to_bid32("1", "[c0d6b2f3299ec7be0c0a]", "[cff05423]", "0x20")
+ self.binary80_to_bid32("2", "[c0d6b2f3299ec7be0c0a]", "[cff05422]", "0x20")
+ self.binary80_to_bid32("3", "[c0d6b2f3299ec7be0c0a]", "[cff05422]", "0x20")
+ self.binary80_to_bid32("4", "[c0d6b2f3299ec7be0c0a]", "[cff05422]", "0x20")
+ self.binary80_to_bid32("0", "[c0dca3b13393c354be4e]", "[d0c1c2c4]", "0x20")
+ self.binary80_to_bid32("1", "[c0dca3b13393c354be4e]", "[d0c1c2c5]", "0x20")
+ self.binary80_to_bid32("2", "[c0dca3b13393c354be4e]", "[d0c1c2c4]", "0x20")
+ self.binary80_to_bid32("3", "[c0dca3b13393c354be4e]", "[d0c1c2c4]", "0x20")
+ self.binary80_to_bid32("4", "[c0dca3b13393c354be4e]", "[d0c1c2c4]", "0x20")
+ self.binary80_to_bid32("0", "[c0e4fe177ae9f3b5fd11]", "[d21a21bf]", "0x20")
+ self.binary80_to_bid32("1", "[c0e4fe177ae9f3b5fd11]", "[d21a21bf]", "0x20")
+ self.binary80_to_bid32("2", "[c0e4fe177ae9f3b5fd11]", "[d21a21be]", "0x20")
+ self.binary80_to_bid32("3", "[c0e4fe177ae9f3b5fd11]", "[d21a21be]", "0x20")
+ self.binary80_to_bid32("4", "[c0e4fe177ae9f3b5fd11]", "[d21a21bf]", "0x20")
+ self.binary80_to_bid32("0", "[c0eaf0a223c13482fcad]", "[d30fd6aa]", "0x20")
+ self.binary80_to_bid32("1", "[c0eaf0a223c13482fcad]", "[d30fd6aa]", "0x20")
+ self.binary80_to_bid32("2", "[c0eaf0a223c13482fcad]", "[d30fd6a9]", "0x20")
+ self.binary80_to_bid32("3", "[c0eaf0a223c13482fcad]", "[d30fd6a9]", "0x20")
+ self.binary80_to_bid32("4", "[c0eaf0a223c13482fcad]", "[d30fd6aa]", "0x20")
+ self.binary80_to_bid32("0", "[c0eeb3f0bff82276cf88]", "[d392f32f]", "0x20")
+ self.binary80_to_bid32("1", "[c0eeb3f0bff82276cf88]", "[d392f330]", "0x20")
+ self.binary80_to_bid32("2", "[c0eeb3f0bff82276cf88]", "[d392f32f]", "0x20")
+ self.binary80_to_bid32("3", "[c0eeb3f0bff82276cf88]", "[d392f32f]", "0x20")
+ self.binary80_to_bid32("4", "[c0eeb3f0bff82276cf88]", "[d392f32f]", "0x20")
+ self.binary80_to_bid32("0", "[c0f7cedaf78cf6bea200]", "[d4ef8943]", "0x20")
+ self.binary80_to_bid32("1", "[c0f7cedaf78cf6bea200]", "[d4ef8943]", "0x20")
+ self.binary80_to_bid32("2", "[c0f7cedaf78cf6bea200]", "[d4ef8942]", "0x20")
+ self.binary80_to_bid32("3", "[c0f7cedaf78cf6bea200]", "[d4ef8942]", "0x20")
+ self.binary80_to_bid32("4", "[c0f7cedaf78cf6bea200]", "[d4ef8943]", "0x20")
+ self.binary80_to_bid32("0", "[c0fde1acf7f6602d5e17]", "[d5cde0b8]", "0x20")
+ self.binary80_to_bid32("1", "[c0fde1acf7f6602d5e17]", "[d5cde0b9]", "0x20")
+ self.binary80_to_bid32("2", "[c0fde1acf7f6602d5e17]", "[d5cde0b8]", "0x20")
+ self.binary80_to_bid32("3", "[c0fde1acf7f6602d5e17]", "[d5cde0b8]", "0x20")
+ self.binary80_to_bid32("4", "[c0fde1acf7f6602d5e17]", "[d5cde0b8]", "0x20")
+ self.binary80_to_bid32("0", "[c100a19b116620c4ee90]", "[d62c9d4e]", "0x20")
+ self.binary80_to_bid32("1", "[c100a19b116620c4ee90]", "[d62c9d4e]", "0x20")
+ self.binary80_to_bid32("2", "[c100a19b116620c4ee90]", "[d62c9d4d]", "0x20")
+ self.binary80_to_bid32("3", "[c100a19b116620c4ee90]", "[d62c9d4d]", "0x20")
+ self.binary80_to_bid32("4", "[c100a19b116620c4ee90]", "[d62c9d4e]", "0x20")
+ self.binary80_to_bid32("0", "[c10a93d9ac7a9e26c480]", "[d7a9cbef]", "0x20")
+ self.binary80_to_bid32("1", "[c10a93d9ac7a9e26c480]", "[d7a9cbf0]", "0x20")
+ self.binary80_to_bid32("2", "[c10a93d9ac7a9e26c480]", "[d7a9cbef]", "0x20")
+ self.binary80_to_bid32("3", "[c10a93d9ac7a9e26c480]", "[d7a9cbef]", "0x20")
+ self.binary80_to_bid32("4", "[c10a93d9ac7a9e26c480]", "[d7a9cbef]", "0x20")
+ self.binary80_to_bid32("0", "[c10af3ba5b0d63c7d553]", "[d7c4e69b]", "0x20")
+ self.binary80_to_bid32("1", "[c10af3ba5b0d63c7d553]", "[d7c4e69c]", "0x20")
+ self.binary80_to_bid32("2", "[c10af3ba5b0d63c7d553]", "[d7c4e69b]", "0x20")
+ self.binary80_to_bid32("3", "[c10af3ba5b0d63c7d553]", "[d7c4e69b]", "0x20")
+ self.binary80_to_bid32("4", "[c10af3ba5b0d63c7d553]", "[d7c4e69b]", "0x20")
+ self.binary80_to_bid32("0", "[c1179817300783e9d14d]", "[d9a338c6]", "0x20")
+ self.binary80_to_bid32("1", "[c1179817300783e9d14d]", "[d9a338c6]", "0x20")
+ self.binary80_to_bid32("2", "[c1179817300783e9d14d]", "[d9a338c5]", "0x20")
+ self.binary80_to_bid32("3", "[c1179817300783e9d14d]", "[d9a338c5]", "0x20")
+ self.binary80_to_bid32("4", "[c1179817300783e9d14d]", "[d9a338c6]", "0x20")
+ self.binary80_to_bid32("0", "[c11ade770fcd776c53e8]", "[da29372c]", "0x20")
+ self.binary80_to_bid32("1", "[c11ade770fcd776c53e8]", "[da29372d]", "0x20")
+ self.binary80_to_bid32("2", "[c11ade770fcd776c53e8]", "[da29372c]", "0x20")
+ self.binary80_to_bid32("3", "[c11ade770fcd776c53e8]", "[da29372c]", "0x20")
+ self.binary80_to_bid32("4", "[c11ade770fcd776c53e8]", "[da29372c]", "0x20")
+ self.binary80_to_bid32("0", "[c1248eb60d015bc878b2]", "[db9b1303]", "0x20")
+ self.binary80_to_bid32("1", "[c1248eb60d015bc878b2]", "[db9b1304]", "0x20")
+ self.binary80_to_bid32("2", "[c1248eb60d015bc878b2]", "[db9b1303]", "0x20")
+ self.binary80_to_bid32("3", "[c1248eb60d015bc878b2]", "[db9b1303]", "0x20")
+ self.binary80_to_bid32("4", "[c1248eb60d015bc878b2]", "[db9b1303]", "0x20")
+ self.binary80_to_bid32("0", "[c12af266315bdb0d36ff]", "[dc9d6e6c]", "0x20")
+ self.binary80_to_bid32("1", "[c12af266315bdb0d36ff]", "[dc9d6e6d]", "0x20")
+ self.binary80_to_bid32("2", "[c12af266315bdb0d36ff]", "[dc9d6e6c]", "0x20")
+ self.binary80_to_bid32("3", "[c12af266315bdb0d36ff]", "[dc9d6e6c]", "0x20")
+ self.binary80_to_bid32("4", "[c12af266315bdb0d36ff]", "[dc9d6e6c]", "0x20")
+ self.binary80_to_bid32("0", "[c12b995961a746865700]", "[dca53d03]", "0x20")
+ self.binary80_to_bid32("1", "[c12b995961a746865700]", "[dca53d04]", "0x20")
+ self.binary80_to_bid32("2", "[c12b995961a746865700]", "[dca53d03]", "0x20")
+ self.binary80_to_bid32("3", "[c12b995961a746865700]", "[dca53d03]", "0x20")
+ self.binary80_to_bid32("4", "[c12b995961a746865700]", "[dca53d03]", "0x20")
+ self.binary80_to_bid32("0", "[c137c9111a09c50b018c]", "[de93ffc1]", "0x20")
+ self.binary80_to_bid32("1", "[c137c9111a09c50b018c]", "[de93ffc2]", "0x20")
+ self.binary80_to_bid32("2", "[c137c9111a09c50b018c]", "[de93ffc1]", "0x20")
+ self.binary80_to_bid32("3", "[c137c9111a09c50b018c]", "[de93ffc1]", "0x20")
+ self.binary80_to_bid32("4", "[c137c9111a09c50b018c]", "[de93ffc1]", "0x20")
+ self.binary80_to_bid32("0", "[c14195d049f2e308a39a]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("1", "[c14195d049f2e308a39a]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("2", "[c14195d049f2e308a39a]", "[f7f8967e]", "0x20")
+ self.binary80_to_bid32("3", "[c14195d049f2e308a39a]", "[f7f8967e]", "0x20")
+ self.binary80_to_bid32("4", "[c14195d049f2e308a39a]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("0", "[c14195d049f2e308a39b]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("1", "[c14195d049f2e308a39b]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("2", "[c14195d049f2e308a39b]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("3", "[c14195d049f2e308a39b]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("4", "[c14195d049f2e308a39b]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("0", "[c14195d04aee3b80ece5]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("1", "[c14195d04aee3b80ece5]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("2", "[c14195d04aee3b80ece5]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("3", "[c14195d04aee3b80ece5]", "[f7f8967f]", "0x20")
+ self.binary80_to_bid32("4", "[c14195d04aee3b80ece5]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("0", "[c14195d04aee3b80ece6]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("1", "[c14195d04aee3b80ece6]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("2", "[c14195d04aee3b80ece6]", "[f7f8967f]", "0x28")
+ self.binary80_to_bid32("3", "[c14195d04aee3b80ece6]", "[f7f8967f]", "0x28")
+ self.binary80_to_bid32("4", "[c14195d04aee3b80ece6]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("0", "[fffeffffffffffffffff]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("1", "[fffeffffffffffffffff]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("2", "[fffeffffffffffffffff]", "[f7f8967f]", "0x28")
+ self.binary80_to_bid32("3", "[fffeffffffffffffffff]", "[f7f8967f]", "0x28")
+ self.binary80_to_bid32("4", "[fffeffffffffffffffff]", "[f8000000]", "0x28")
+ self.binary80_to_bid32("0", "[ffff8000000000000000]", "[f8000000]", "0x00")
+ self.binary80_to_bid32("1", "[ffff8000000000000000]", "[f8000000]", "0x00")
+ self.binary80_to_bid32("2", "[ffff8000000000000000]", "[f8000000]", "0x00")
+ self.binary80_to_bid32("3", "[ffff8000000000000000]", "[f8000000]", "0x00")
+ self.binary80_to_bid32("4", "[ffff8000000000000000]", "[f8000000]", "0x00")
+ self.binary80_to_bid32("0", "[3EC3AAE103B5FCD2A881]", "[000F4240]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("0", "[BEC3AAE103B5FCD2A881]", "[800F4240]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("1", "[BEC3AAE103B5FCD2A881]", "[800F4240]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("2", "[3EC3AAE103B5FCD2A881]", "[000F4240]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("4", "[3EC3AAE103B5FCD2A881]", "[000F4240]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("4", "[BEC3AAE103B5FCD2A881]", "[800F4240]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid32("0", "[000000000000000000A5]", "[00000000]", "32")
+ self.binary80_to_bid32("0", "[80000000000000000000]", "[b2800000]", "00")
+ self.binary80_to_bid32("0", "[000000000000000A50000000000000000]", "[0000000000000000]", "30")
+ }
+
+ private func binary80_to_bid32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseFloat80(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+
+#endif
+ }
+
+ func test_binary80_to_bid64() {
+ self.binary80_to_bid64("0", "[00000000000000000000]", "[31c0000000000000]", "00")
+ self.binary80_to_bid64("0", "[00000000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary80_to_bid64("0", "[00000000000000000001]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("0", "[00000000000000000001]", "[0000000000000000]", "32")
+ self.binary80_to_bid64("0", "[00004000000000000000]", "[0000000000000000]", "32")
+ self.binary80_to_bid64("0", "[00018000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[00018000000000000000]", "[0000000000000000]", "30")
+ self.binary80_to_bid64("0", "[00028000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[3acfad267633618a3a0c]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[3ad4ea5da4ec2a406826]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("0", "[3ad4ea5da4ec2a406827]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("0", "[3B06D0289CE2DD618FD6]", "[00038D7EA4C67FFF]", "30")
+ self.binary80_to_bid64("0", "[3B06D0289CE2DD61AD21]", "[00038D7EA4C67FFF]", "30")
+ self.binary80_to_bid64("0", "[3B06D0289CE2DD61AD22]", "[00038D7EA4C68000]", "30")
+ self.binary80_to_bid64("0", "[3b06d0289ce2dd61ca6d]", "[00038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("0", "[3b06d0289ce2dd61ca6e]", "[00038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[3B06D0289CE2DD61CA6E]", "[00038D7EA4C68000]", "20")
+ self.binary80_to_bid64("0", "[3b0a8219620dca5d1e84]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[3b0a8219620dca5d1e85]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[3b3de334df29f8e63e37]", "[020df8a615f6e84a]", "0x20")
+ self.binary80_to_bid64("0", "[3b9cb646ac411fe8d800]", "[05a470abbc51c322]", "0x20")
+ self.binary80_to_bid64("0", "[3c09e585348a10aed2a0]", "[09c3a0f5138dd219]", "0x20")
+ self.binary80_to_bid64("0", "[3c71a087b1830822dae0]", "[0da525cd926920a5]", "0x20")
+ self.binary80_to_bid64("0", "[3cdb98494996b0bc6968]", "[11a3f639b12c6b26]", "0x20")
+ self.binary80_to_bid64("0", "[3d41f64a1b2e88e3ed40]", "[65587d3ccedb2c39]", "0x20")
+ self.binary80_to_bid64("0", "[3da7c59e1299079ac080]", "[194d37e7a4644e50]", "0x20")
+ self.binary80_to_bid64("0", "[3e11f516476cc975b500]", "[1d4d4cceef639565]", "0x20")
+ self.binary80_to_bid64("0", "[3e7ab8487e6b1dcf6b10]", "[21440e80aa0cd020]", "0x20")
+ self.binary80_to_bid64("0", "[3ee18218c17448ccb8e0]", "[251d0af1ca66f71b]", "0x20")
+ self.binary80_to_bid64("0", "[3f4bd5e1f5cc63379d88]", "[2923dfab283e7b44]", "0x20")
+ self.binary80_to_bid64("0", "[3fb3bb821762889ad128]", "[2d06e3517f660b3c]", "0x20")
+ self.binary80_to_bid64("0", "[3ffad000000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("0", "[3FFE8000000000000000]", "[31A0000000000005]", "00")
+ self.binary80_to_bid64("0", "[3fff8000000000000000]", "[31c0000000000001]", "0x00")
+ self.binary80_to_bid64("0", "[3fffc000000000000000]", "[31a000000000000f]", "0x00")
+ self.binary80_to_bid64("0", "[40008000000000000000]", "[31C0000000000002]", "00")
+ self.binary80_to_bid64("0", "[40058000000000000000]", "[31c0000000000040]", "0x00")
+ self.binary80_to_bid64("0", "[4008f9c0000000000000]", "[31c00000000003e7]", "0x00")
+ self.binary80_to_bid64("0", "[4008fa00000000000000]", "[31c00000000003e8]", "0x00")
+ self.binary80_to_bid64("0", "[401abebc1ffff16f1df0]", "[30e71afd498c7517]", "0x20")
+ self.binary80_to_bid64("0", "[4084ea520bb1d6b54670]", "[34e714f78c65d23d]", "0x20")
+ self.binary80_to_bid64("0", "[40eee0fd6c28d61473c7]", "[38e58448e176a642]", "0x20")
+ self.binary80_to_bid64("0", "[4155da771e8d5298fed2]", "[3cc56eb15b5335ee]", "0x20")
+ self.binary80_to_bid64("0", "[41bc975127e385158a48]", "[40a3d0d88a2a13df]", "0x20")
+ self.binary80_to_bid64("0", "[4225cfdab76dc5d0c6a6]", "[4495431bad72f1e3]", "0x20")
+ self.binary80_to_bid64("0", "[428b8f0fac71dde93de0]", "[48676ba19cbfdce1]", "0x20")
+ self.binary80_to_bid64("0", "[42f4cd9bf7d6fa603fd4]", "[4c64537d482d0e6b]", "0x20")
+ self.binary80_to_bid64("0", "[435cd0e651fb54863220]", "[5048ea33f4a5c2b7]", "0x20")
+ self.binary80_to_bid64("0", "[43c68016c17574e76085]", "[54446f4aae479ed4]", "0x20")
+ self.binary80_to_bid64("0", "[442db25dd1d824a439c6]", "[5826433db2f4383c]", "0x20")
+ self.binary80_to_bid64("0", "[4496d7b6e9ae256c48d9]", "[5c1eb948e9fd79ac]", "0x20")
+ self.binary80_to_bid64("0", "[44fdf5f75bd4dab6cdb0]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("0", "[44fdf5f75bd4dab6cdb1]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("0", "[44fdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[44fdf5f75bd4dab6d49d]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[7ffeffffffffffffffff]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[7fff0000000000000000]", "[7800000000000000]", "0x00")
+ self.binary80_to_bid64("0", "[7fff8000000000000000]", "[7800000000000000]", "00")
+ self.binary80_to_bid64("0", "[7fff8000000000000001]", "[7C00000000000000]", "01")
+ self.binary80_to_bid64("0", "[7fff8000000000001000]", "[7C00000000000001]", "01")
+ self.binary80_to_bid64("0", "[7fffa000000000000000]", "[7C02000000000000]", "01")
+ self.binary80_to_bid64("0", "[7FFFB8D7EA4C67FFF000]", "[7C038D7EA4C67FFF]", "01")
+ self.binary80_to_bid64("0", "[7FFFB8D7EA4C68000000]", "[7C00000000000000]", "01")
+ self.binary80_to_bid64("0", "[7fffbfffffffffffffff]", "[7C00000000000000]", "01")
+ self.binary80_to_bid64("0", "[7fffc000000000000001]", "[7C00000000000000]", "00")
+ self.binary80_to_bid64("0", "[7fffc000000000001000]", "[7C00000000000001]", "00")
+ self.binary80_to_bid64("0", "[7fffe000000000000000]", "[7C02000000000000]", "00")
+ self.binary80_to_bid64("0", "[7FFFF8D7EA4C67FFF000]", "[7C038D7EA4C67FFF]", "00")
+ self.binary80_to_bid64("0", "[7FFFF8D7EA4C68000000]", "[7C00000000000000]", "00")
+ self.binary80_to_bid64("0", "[7fffffffffffffffffff]", "[7C00000000000000]", "00")
+ self.binary80_to_bid64("0", "[80000000000000000000]", "[b1c0000000000000]", "00")
+ self.binary80_to_bid64("0", "[80000000000000000001]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("0", "[80018000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[80028000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[bacfad267633618a3a0c]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[bad4ea5da4ec2a406826]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("0", "[bad4ea5da4ec2a406827]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("0", "[bb06d0289ce2dd61ca6d]", "[80038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("0", "[bb06d0289ce2dd61ca6e]", "[80038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[bb0a8219620dca5d1e84]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[bb0a8219620dca5d1e85]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[bb3de334df29f8e63e37]", "[820df8a615f6e84a]", "0x20")
+ self.binary80_to_bid64("0", "[bb9cb646ac411fe8d800]", "[85a470abbc51c322]", "0x20")
+ self.binary80_to_bid64("0", "[bc09e585348a10aed2a0]", "[89c3a0f5138dd219]", "0x20")
+ self.binary80_to_bid64("0", "[bc71a087b1830822dae0]", "[8da525cd926920a5]", "0x20")
+ self.binary80_to_bid64("0", "[bcdb98494996b0bc6968]", "[91a3f639b12c6b26]", "0x20")
+ self.binary80_to_bid64("0", "[bd41f64a1b2e88e3ed40]", "[e5587d3ccedb2c39]", "0x20")
+ self.binary80_to_bid64("0", "[bda7c59e1299079ac080]", "[994d37e7a4644e50]", "0x20")
+ self.binary80_to_bid64("0", "[be11f516476cc975b500]", "[9d4d4cceef639565]", "0x20")
+ self.binary80_to_bid64("0", "[be7ab8487e6b1dcf6b10]", "[a1440e80aa0cd020]", "0x20")
+ self.binary80_to_bid64("0", "[bee18218c17448ccb8e0]", "[a51d0af1ca66f71b]", "0x20")
+ self.binary80_to_bid64("0", "[bf4bd5e1f5cc63379d88]", "[a923dfab283e7b44]", "0x20")
+ self.binary80_to_bid64("0", "[bfb3bb821762889ad128]", "[ad06e3517f660b3c]", "0x20")
+ self.binary80_to_bid64("0", "[bffad000000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("0", "[bfff8000000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary80_to_bid64("0", "[bfffc000000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary80_to_bid64("0", "[c0058000000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary80_to_bid64("0", "[c008f9c0000000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary80_to_bid64("0", "[c008fa00000000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary80_to_bid64("0", "[c01abebc1ffff16f1df0]", "[b0e71afd498c7517]", "0x20")
+ self.binary80_to_bid64("0", "[c084ea520bb1d6b54670]", "[b4e714f78c65d23d]", "0x20")
+ self.binary80_to_bid64("0", "[c0eee0fd6c28d61473c7]", "[b8e58448e176a642]", "0x20")
+ self.binary80_to_bid64("0", "[c155da771e8d5298fed2]", "[bcc56eb15b5335ee]", "0x20")
+ self.binary80_to_bid64("0", "[c1bc975127e385158a48]", "[c0a3d0d88a2a13df]", "0x20")
+ self.binary80_to_bid64("0", "[c225cfdab76dc5d0c6a6]", "[c495431bad72f1e3]", "0x20")
+ self.binary80_to_bid64("0", "[c28b8f0fac71dde93de0]", "[c8676ba19cbfdce1]", "0x20")
+ self.binary80_to_bid64("0", "[c2f4cd9bf7d6fa603fd4]", "[cc64537d482d0e6b]", "0x20")
+ self.binary80_to_bid64("0", "[c35cd0e651fb54863220]", "[d048ea33f4a5c2b7]", "0x20")
+ self.binary80_to_bid64("0", "[c3c68016c17574e76085]", "[d4446f4aae479ed4]", "0x20")
+ self.binary80_to_bid64("0", "[c42db25dd1d824a439c6]", "[d826433db2f4383c]", "0x20")
+ self.binary80_to_bid64("0", "[c496d7b6e9ae256c48d9]", "[dc1eb948e9fd79ac]", "0x20")
+ self.binary80_to_bid64("0", "[c4fdf5f75bd4dab6cdb0]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("0", "[c4fdf5f75bd4dab6cdb1]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("0", "[c4fdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[c4fdf5f75bd4dab6d49d]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[fffeffffffffffffffff]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[ffff0000000000000000]", "[f800000000000000]", "0x00")
+ self.binary80_to_bid64("0", "[ffff8000000000000000]", "[f800000000000000]", "00")
+ self.binary80_to_bid64("1", "[00000000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary80_to_bid64("1", "[00000000000000000001]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("1", "[00018000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("1", "[00028000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("1", "[3acfad267633618a3a0c]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("1", "[3ad4ea5da4ec2a406826]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("1", "[3ad4ea5da4ec2a406827]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("1", "[3b06d0289ce2dd61ca6d]", "[00038d7ea4c67fff]", "0x30")
+ self.binary80_to_bid64("1", "[3b06d0289ce2dd61ca6e]", "[00038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("1", "[3b0a8219620dca5d1e84]", "[600386f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("1", "[3b0a8219620dca5d1e85]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("1", "[3b3de334df29f8e63e37]", "[020df8a615f6e84a]", "0x20")
+ self.binary80_to_bid64("1", "[3b9cb646ac411fe8d800]", "[05a470abbc51c321]", "0x20")
+ self.binary80_to_bid64("1", "[3c09e585348a10aed2a0]", "[09c3a0f5138dd218]", "0x20")
+ self.binary80_to_bid64("1", "[3c71a087b1830822dae0]", "[0da525cd926920a4]", "0x20")
+ self.binary80_to_bid64("1", "[3cdb98494996b0bc6968]", "[11a3f639b12c6b25]", "0x20")
+ self.binary80_to_bid64("1", "[3d41f64a1b2e88e3ed40]", "[65587d3ccedb2c38]", "0x20")
+ self.binary80_to_bid64("1", "[3da7c59e1299079ac080]", "[194d37e7a4644e50]", "0x20")
+ self.binary80_to_bid64("1", "[3e11f516476cc975b500]", "[1d4d4cceef639564]", "0x20")
+ self.binary80_to_bid64("1", "[3e7ab8487e6b1dcf6b10]", "[21440e80aa0cd01f]", "0x20")
+ self.binary80_to_bid64("1", "[3ee18218c17448ccb8e0]", "[251d0af1ca66f71b]", "0x20")
+ self.binary80_to_bid64("1", "[3f4bd5e1f5cc63379d88]", "[2923dfab283e7b43]", "0x20")
+ self.binary80_to_bid64("1", "[3fb3bb821762889ad128]", "[2d06e3517f660b3c]", "0x20")
+ self.binary80_to_bid64("1", "[3ffad000000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("1", "[3fff8000000000000000]", "[31c0000000000001]", "0x00")
+ self.binary80_to_bid64("1", "[3fffc000000000000000]", "[31a000000000000f]", "0x00")
+ self.binary80_to_bid64("1", "[40058000000000000000]", "[31c0000000000040]", "0x00")
+ self.binary80_to_bid64("1", "[4008f9c0000000000000]", "[31c00000000003e7]", "0x00")
+ self.binary80_to_bid64("1", "[4008fa00000000000000]", "[31c00000000003e8]", "0x00")
+ self.binary80_to_bid64("1", "[401abebc1ffff16f1df0]", "[30e71afd498c7516]", "0x20")
+ self.binary80_to_bid64("1", "[4084ea520bb1d6b54670]", "[34e714f78c65d23c]", "0x20")
+ self.binary80_to_bid64("1", "[40eee0fd6c28d61473c7]", "[38e58448e176a642]", "0x20")
+ self.binary80_to_bid64("1", "[4155da771e8d5298fed2]", "[3cc56eb15b5335ed]", "0x20")
+ self.binary80_to_bid64("1", "[41bc975127e385158a48]", "[40a3d0d88a2a13de]", "0x20")
+ self.binary80_to_bid64("1", "[4225cfdab76dc5d0c6a6]", "[4495431bad72f1e3]", "0x20")
+ self.binary80_to_bid64("1", "[428b8f0fac71dde93de0]", "[48676ba19cbfdce1]", "0x20")
+ self.binary80_to_bid64("1", "[42f4cd9bf7d6fa603fd4]", "[4c64537d482d0e6a]", "0x20")
+ self.binary80_to_bid64("1", "[435cd0e651fb54863220]", "[5048ea33f4a5c2b7]", "0x20")
+ self.binary80_to_bid64("1", "[43c68016c17574e76085]", "[54446f4aae479ed3]", "0x20")
+ self.binary80_to_bid64("1", "[442db25dd1d824a439c6]", "[5826433db2f4383b]", "0x20")
+ self.binary80_to_bid64("1", "[4496d7b6e9ae256c48d9]", "[5c1eb948e9fd79ab]", "0x20")
+ self.binary80_to_bid64("1", "[44fdf5f75bd4dab6cdb0]", "[77fb86f26fc0fffe]", "0x20")
+ self.binary80_to_bid64("1", "[44fdf5f75bd4dab6cdb1]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("1", "[44fdf5f75bd4dab6d49c]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("1", "[44fdf5f75bd4dab6d49d]", "[77fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("1", "[7ffeffffffffffffffff]", "[77fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("1", "[7fff0000000000000000]", "[7800000000000000]", "0x00")
+ self.binary80_to_bid64("1", "[80000000000000000001]", "[8000000000000001]", "0x32")
+ self.binary80_to_bid64("1", "[80018000000000000000]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("1", "[80028000000000000000]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("1", "[bacfad267633618a3a0c]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("1", "[bad4ea5da4ec2a406826]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("1", "[bad4ea5da4ec2a406827]", "[8000000000000002]", "0x30")
+ self.binary80_to_bid64("1", "[bb06d0289ce2dd61ca6d]", "[80038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("1", "[bb06d0289ce2dd61ca6e]", "[80038d7ea4c68001]", "0x20")
+ self.binary80_to_bid64("1", "[bb0a8219620dca5d1e84]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("1", "[bb0a8219620dca5d1e85]", "[80238d7ea4c68001]", "0x20")
+ self.binary80_to_bid64("1", "[bb3de334df29f8e63e37]", "[820df8a615f6e84b]", "0x20")
+ self.binary80_to_bid64("1", "[bb9cb646ac411fe8d800]", "[85a470abbc51c322]", "0x20")
+ self.binary80_to_bid64("1", "[bc09e585348a10aed2a0]", "[89c3a0f5138dd219]", "0x20")
+ self.binary80_to_bid64("1", "[bc71a087b1830822dae0]", "[8da525cd926920a5]", "0x20")
+ self.binary80_to_bid64("1", "[bcdb98494996b0bc6968]", "[91a3f639b12c6b26]", "0x20")
+ self.binary80_to_bid64("1", "[bd41f64a1b2e88e3ed40]", "[e5587d3ccedb2c39]", "0x20")
+ self.binary80_to_bid64("1", "[bda7c59e1299079ac080]", "[994d37e7a4644e51]", "0x20")
+ self.binary80_to_bid64("1", "[be11f516476cc975b500]", "[9d4d4cceef639565]", "0x20")
+ self.binary80_to_bid64("1", "[be7ab8487e6b1dcf6b10]", "[a1440e80aa0cd020]", "0x20")
+ self.binary80_to_bid64("1", "[bee18218c17448ccb8e0]", "[a51d0af1ca66f71c]", "0x20")
+ self.binary80_to_bid64("1", "[bf4bd5e1f5cc63379d88]", "[a923dfab283e7b44]", "0x20")
+ self.binary80_to_bid64("1", "[bfb3bb821762889ad128]", "[ad06e3517f660b3d]", "0x20")
+ self.binary80_to_bid64("1", "[bffad000000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("1", "[bfff8000000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary80_to_bid64("1", "[bfffc000000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary80_to_bid64("1", "[c0058000000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary80_to_bid64("1", "[c008f9c0000000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary80_to_bid64("1", "[c008fa00000000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary80_to_bid64("1", "[c01abebc1ffff16f1df0]", "[b0e71afd498c7517]", "0x20")
+ self.binary80_to_bid64("1", "[c084ea520bb1d6b54670]", "[b4e714f78c65d23d]", "0x20")
+ self.binary80_to_bid64("1", "[c0eee0fd6c28d61473c7]", "[b8e58448e176a643]", "0x20")
+ self.binary80_to_bid64("1", "[c155da771e8d5298fed2]", "[bcc56eb15b5335ee]", "0x20")
+ self.binary80_to_bid64("1", "[c1bc975127e385158a48]", "[c0a3d0d88a2a13df]", "0x20")
+ self.binary80_to_bid64("1", "[c225cfdab76dc5d0c6a6]", "[c495431bad72f1e4]", "0x20")
+ self.binary80_to_bid64("1", "[c28b8f0fac71dde93de0]", "[c8676ba19cbfdce2]", "0x20")
+ self.binary80_to_bid64("1", "[c2f4cd9bf7d6fa603fd4]", "[cc64537d482d0e6b]", "0x20")
+ self.binary80_to_bid64("1", "[c35cd0e651fb54863220]", "[d048ea33f4a5c2b8]", "0x20")
+ self.binary80_to_bid64("1", "[c3c68016c17574e76085]", "[d4446f4aae479ed4]", "0x20")
+ self.binary80_to_bid64("1", "[c42db25dd1d824a439c6]", "[d826433db2f4383c]", "0x20")
+ self.binary80_to_bid64("1", "[c496d7b6e9ae256c48d9]", "[dc1eb948e9fd79ac]", "0x20")
+ self.binary80_to_bid64("1", "[c4fdf5f75bd4dab6cdb0]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("1", "[c4fdf5f75bd4dab6cdb1]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[c4fdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[c4fdf5f75bd4dab6d49d]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[fffeffffffffffffffff]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[ffff0000000000000000]", "[f800000000000000]", "0x00")
+ self.binary80_to_bid64("2", "[00000000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary80_to_bid64("2", "[00000000000000000001]", "[0000000000000001]", "0x32")
+ self.binary80_to_bid64("2", "[00018000000000000000]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("2", "[00028000000000000000]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("2", "[3acfad267633618a3a0c]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("2", "[3ad4ea5da4ec2a406826]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("2", "[3ad4ea5da4ec2a406827]", "[0000000000000002]", "0x30")
+ self.binary80_to_bid64("2", "[3b06d0289ce2dd61ca6d]", "[00038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("2", "[3b06d0289ce2dd61ca6e]", "[00038d7ea4c68001]", "0x20")
+ self.binary80_to_bid64("2", "[3b0a8219620dca5d1e84]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("2", "[3b0a8219620dca5d1e85]", "[00238d7ea4c68001]", "0x20")
+ self.binary80_to_bid64("2", "[3b3de334df29f8e63e37]", "[020df8a615f6e84b]", "0x20")
+ self.binary80_to_bid64("2", "[3b9cb646ac411fe8d800]", "[05a470abbc51c322]", "0x20")
+ self.binary80_to_bid64("2", "[3c09e585348a10aed2a0]", "[09c3a0f5138dd219]", "0x20")
+ self.binary80_to_bid64("2", "[3c71a087b1830822dae0]", "[0da525cd926920a5]", "0x20")
+ self.binary80_to_bid64("2", "[3cdb98494996b0bc6968]", "[11a3f639b12c6b26]", "0x20")
+ self.binary80_to_bid64("2", "[3d41f64a1b2e88e3ed40]", "[65587d3ccedb2c39]", "0x20")
+ self.binary80_to_bid64("2", "[3da7c59e1299079ac080]", "[194d37e7a4644e51]", "0x20")
+ self.binary80_to_bid64("2", "[3e11f516476cc975b500]", "[1d4d4cceef639565]", "0x20")
+ self.binary80_to_bid64("2", "[3e7ab8487e6b1dcf6b10]", "[21440e80aa0cd020]", "0x20")
+ self.binary80_to_bid64("2", "[3ee18218c17448ccb8e0]", "[251d0af1ca66f71c]", "0x20")
+ self.binary80_to_bid64("2", "[3f4bd5e1f5cc63379d88]", "[2923dfab283e7b44]", "0x20")
+ self.binary80_to_bid64("2", "[3fb3bb821762889ad128]", "[2d06e3517f660b3d]", "0x20")
+ self.binary80_to_bid64("2", "[3ffad000000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("2", "[3fff8000000000000000]", "[31c0000000000001]", "0x00")
+ self.binary80_to_bid64("2", "[3fffc000000000000000]", "[31a000000000000f]", "0x00")
+ self.binary80_to_bid64("2", "[40058000000000000000]", "[31c0000000000040]", "0x00")
+ self.binary80_to_bid64("2", "[4008f9c0000000000000]", "[31c00000000003e7]", "0x00")
+ self.binary80_to_bid64("2", "[4008fa00000000000000]", "[31c00000000003e8]", "0x00")
+ self.binary80_to_bid64("2", "[401abebc1ffff16f1df0]", "[30e71afd498c7517]", "0x20")
+ self.binary80_to_bid64("2", "[4084ea520bb1d6b54670]", "[34e714f78c65d23d]", "0x20")
+ self.binary80_to_bid64("2", "[40eee0fd6c28d61473c7]", "[38e58448e176a643]", "0x20")
+ self.binary80_to_bid64("2", "[4155da771e8d5298fed2]", "[3cc56eb15b5335ee]", "0x20")
+ self.binary80_to_bid64("2", "[41bc975127e385158a48]", "[40a3d0d88a2a13df]", "0x20")
+ self.binary80_to_bid64("2", "[4225cfdab76dc5d0c6a6]", "[4495431bad72f1e4]", "0x20")
+ self.binary80_to_bid64("2", "[428b8f0fac71dde93de0]", "[48676ba19cbfdce2]", "0x20")
+ self.binary80_to_bid64("2", "[42f4cd9bf7d6fa603fd4]", "[4c64537d482d0e6b]", "0x20")
+ self.binary80_to_bid64("2", "[435cd0e651fb54863220]", "[5048ea33f4a5c2b8]", "0x20")
+ self.binary80_to_bid64("2", "[43c68016c17574e76085]", "[54446f4aae479ed4]", "0x20")
+ self.binary80_to_bid64("2", "[442db25dd1d824a439c6]", "[5826433db2f4383c]", "0x20")
+ self.binary80_to_bid64("2", "[4496d7b6e9ae256c48d9]", "[5c1eb948e9fd79ac]", "0x20")
+ self.binary80_to_bid64("2", "[44fdf5f75bd4dab6cdb0]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("2", "[44fdf5f75bd4dab6cdb1]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("2", "[44fdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("2", "[44fdf5f75bd4dab6d49d]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("2", "[7ffeffffffffffffffff]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("2", "[7fff0000000000000000]", "[7800000000000000]", "0x00")
+ self.binary80_to_bid64("2", "[80000000000000000001]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("2", "[80018000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("2", "[80028000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("2", "[bacfad267633618a3a0c]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("2", "[bad4ea5da4ec2a406826]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("2", "[bad4ea5da4ec2a406827]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("2", "[bb06d0289ce2dd61ca6d]", "[80038d7ea4c67fff]", "0x30")
+ self.binary80_to_bid64("2", "[bb06d0289ce2dd61ca6e]", "[80038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("2", "[bb0a8219620dca5d1e84]", "[e00386f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("2", "[bb0a8219620dca5d1e85]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("2", "[bb3de334df29f8e63e37]", "[820df8a615f6e84a]", "0x20")
+ self.binary80_to_bid64("2", "[bb9cb646ac411fe8d800]", "[85a470abbc51c321]", "0x20")
+ self.binary80_to_bid64("2", "[bc09e585348a10aed2a0]", "[89c3a0f5138dd218]", "0x20")
+ self.binary80_to_bid64("2", "[bc71a087b1830822dae0]", "[8da525cd926920a4]", "0x20")
+ self.binary80_to_bid64("2", "[bcdb98494996b0bc6968]", "[91a3f639b12c6b25]", "0x20")
+ self.binary80_to_bid64("2", "[bd41f64a1b2e88e3ed40]", "[e5587d3ccedb2c38]", "0x20")
+ self.binary80_to_bid64("2", "[bda7c59e1299079ac080]", "[994d37e7a4644e50]", "0x20")
+ self.binary80_to_bid64("2", "[be11f516476cc975b500]", "[9d4d4cceef639564]", "0x20")
+ self.binary80_to_bid64("2", "[be7ab8487e6b1dcf6b10]", "[a1440e80aa0cd01f]", "0x20")
+ self.binary80_to_bid64("2", "[bee18218c17448ccb8e0]", "[a51d0af1ca66f71b]", "0x20")
+ self.binary80_to_bid64("2", "[bf4bd5e1f5cc63379d88]", "[a923dfab283e7b43]", "0x20")
+ self.binary80_to_bid64("2", "[bfb3bb821762889ad128]", "[ad06e3517f660b3c]", "0x20")
+ self.binary80_to_bid64("2", "[bffad000000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("2", "[bfff8000000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary80_to_bid64("2", "[bfffc000000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary80_to_bid64("2", "[c0058000000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary80_to_bid64("2", "[c008f9c0000000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary80_to_bid64("2", "[c008fa00000000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary80_to_bid64("2", "[c01abebc1ffff16f1df0]", "[b0e71afd498c7516]", "0x20")
+ self.binary80_to_bid64("2", "[c084ea520bb1d6b54670]", "[b4e714f78c65d23c]", "0x20")
+ self.binary80_to_bid64("2", "[c0eee0fd6c28d61473c7]", "[b8e58448e176a642]", "0x20")
+ self.binary80_to_bid64("2", "[c155da771e8d5298fed2]", "[bcc56eb15b5335ed]", "0x20")
+ self.binary80_to_bid64("2", "[c1bc975127e385158a48]", "[c0a3d0d88a2a13de]", "0x20")
+ self.binary80_to_bid64("2", "[c225cfdab76dc5d0c6a6]", "[c495431bad72f1e3]", "0x20")
+ self.binary80_to_bid64("2", "[c28b8f0fac71dde93de0]", "[c8676ba19cbfdce1]", "0x20")
+ self.binary80_to_bid64("2", "[c2f4cd9bf7d6fa603fd4]", "[cc64537d482d0e6a]", "0x20")
+ self.binary80_to_bid64("2", "[c35cd0e651fb54863220]", "[d048ea33f4a5c2b7]", "0x20")
+ self.binary80_to_bid64("2", "[c3c68016c17574e76085]", "[d4446f4aae479ed3]", "0x20")
+ self.binary80_to_bid64("2", "[c42db25dd1d824a439c6]", "[d826433db2f4383b]", "0x20")
+ self.binary80_to_bid64("2", "[c496d7b6e9ae256c48d9]", "[dc1eb948e9fd79ab]", "0x20")
+ self.binary80_to_bid64("2", "[c4fdf5f75bd4dab6cdb0]", "[f7fb86f26fc0fffe]", "0x20")
+ self.binary80_to_bid64("2", "[c4fdf5f75bd4dab6cdb1]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("2", "[c4fdf5f75bd4dab6d49c]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("2", "[c4fdf5f75bd4dab6d49d]", "[f7fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("2", "[fffeffffffffffffffff]", "[f7fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("2", "[ffff0000000000000000]", "[f800000000000000]", "0x00")
+ self.binary80_to_bid64("3", "[00000000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary80_to_bid64("3", "[00000000000000000001]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("3", "[00018000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[00028000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[3acfad267633618a3a0c]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[3ad4ea5da4ec2a406826]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[3ad4ea5da4ec2a406827]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("3", "[3b06d0289ce2dd61ca6d]", "[00038d7ea4c67fff]", "0x30")
+ self.binary80_to_bid64("3", "[3b06d0289ce2dd61ca6e]", "[00038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("3", "[3b0a8219620dca5d1e84]", "[600386f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("3", "[3b0a8219620dca5d1e85]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("3", "[3b3de334df29f8e63e37]", "[020df8a615f6e84a]", "0x20")
+ self.binary80_to_bid64("3", "[3b9cb646ac411fe8d800]", "[05a470abbc51c321]", "0x20")
+ self.binary80_to_bid64("3", "[3c09e585348a10aed2a0]", "[09c3a0f5138dd218]", "0x20")
+ self.binary80_to_bid64("3", "[3c71a087b1830822dae0]", "[0da525cd926920a4]", "0x20")
+ self.binary80_to_bid64("3", "[3cdb98494996b0bc6968]", "[11a3f639b12c6b25]", "0x20")
+ self.binary80_to_bid64("3", "[3d41f64a1b2e88e3ed40]", "[65587d3ccedb2c38]", "0x20")
+ self.binary80_to_bid64("3", "[3da7c59e1299079ac080]", "[194d37e7a4644e50]", "0x20")
+ self.binary80_to_bid64("3", "[3e11f516476cc975b500]", "[1d4d4cceef639564]", "0x20")
+ self.binary80_to_bid64("3", "[3e7ab8487e6b1dcf6b10]", "[21440e80aa0cd01f]", "0x20")
+ self.binary80_to_bid64("3", "[3ee18218c17448ccb8e0]", "[251d0af1ca66f71b]", "0x20")
+ self.binary80_to_bid64("3", "[3f4bd5e1f5cc63379d88]", "[2923dfab283e7b43]", "0x20")
+ self.binary80_to_bid64("3", "[3fb3bb821762889ad128]", "[2d06e3517f660b3c]", "0x20")
+ self.binary80_to_bid64("3", "[3ffad000000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("3", "[3fff8000000000000000]", "[31c0000000000001]", "0x00")
+ self.binary80_to_bid64("3", "[3fffc000000000000000]", "[31a000000000000f]", "0x00")
+ self.binary80_to_bid64("3", "[40058000000000000000]", "[31c0000000000040]", "0x00")
+ self.binary80_to_bid64("3", "[4008f9c0000000000000]", "[31c00000000003e7]", "0x00")
+ self.binary80_to_bid64("3", "[4008fa00000000000000]", "[31c00000000003e8]", "0x00")
+ self.binary80_to_bid64("3", "[401abebc1ffff16f1df0]", "[30e71afd498c7516]", "0x20")
+ self.binary80_to_bid64("3", "[4084ea520bb1d6b54670]", "[34e714f78c65d23c]", "0x20")
+ self.binary80_to_bid64("3", "[40eee0fd6c28d61473c7]", "[38e58448e176a642]", "0x20")
+ self.binary80_to_bid64("3", "[4155da771e8d5298fed2]", "[3cc56eb15b5335ed]", "0x20")
+ self.binary80_to_bid64("3", "[41bc975127e385158a48]", "[40a3d0d88a2a13de]", "0x20")
+ self.binary80_to_bid64("3", "[4225cfdab76dc5d0c6a6]", "[4495431bad72f1e3]", "0x20")
+ self.binary80_to_bid64("3", "[428b8f0fac71dde93de0]", "[48676ba19cbfdce1]", "0x20")
+ self.binary80_to_bid64("3", "[42f4cd9bf7d6fa603fd4]", "[4c64537d482d0e6a]", "0x20")
+ self.binary80_to_bid64("3", "[435cd0e651fb54863220]", "[5048ea33f4a5c2b7]", "0x20")
+ self.binary80_to_bid64("3", "[43c68016c17574e76085]", "[54446f4aae479ed3]", "0x20")
+ self.binary80_to_bid64("3", "[442db25dd1d824a439c6]", "[5826433db2f4383b]", "0x20")
+ self.binary80_to_bid64("3", "[4496d7b6e9ae256c48d9]", "[5c1eb948e9fd79ab]", "0x20")
+ self.binary80_to_bid64("3", "[44fdf5f75bd4dab6cdb0]", "[77fb86f26fc0fffe]", "0x20")
+ self.binary80_to_bid64("3", "[44fdf5f75bd4dab6cdb1]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("3", "[44fdf5f75bd4dab6d49c]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("3", "[44fdf5f75bd4dab6d49d]", "[77fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("3", "[7ffeffffffffffffffff]", "[77fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("3", "[7fff0000000000000000]", "[7800000000000000]", "0x00")
+ self.binary80_to_bid64("3", "[80000000000000000001]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("3", "[80018000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[80028000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[bacfad267633618a3a0c]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[bad4ea5da4ec2a406826]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[bad4ea5da4ec2a406827]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("3", "[bb06d0289ce2dd61ca6d]", "[80038d7ea4c67fff]", "0x30")
+ self.binary80_to_bid64("3", "[bb06d0289ce2dd61ca6e]", "[80038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("3", "[bb0a8219620dca5d1e84]", "[e00386f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("3", "[bb0a8219620dca5d1e85]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("3", "[bb3de334df29f8e63e37]", "[820df8a615f6e84a]", "0x20")
+ self.binary80_to_bid64("3", "[bb9cb646ac411fe8d800]", "[85a470abbc51c321]", "0x20")
+ self.binary80_to_bid64("3", "[bc09e585348a10aed2a0]", "[89c3a0f5138dd218]", "0x20")
+ self.binary80_to_bid64("3", "[bc71a087b1830822dae0]", "[8da525cd926920a4]", "0x20")
+ self.binary80_to_bid64("3", "[bcdb98494996b0bc6968]", "[91a3f639b12c6b25]", "0x20")
+ self.binary80_to_bid64("3", "[bd41f64a1b2e88e3ed40]", "[e5587d3ccedb2c38]", "0x20")
+ self.binary80_to_bid64("3", "[bda7c59e1299079ac080]", "[994d37e7a4644e50]", "0x20")
+ self.binary80_to_bid64("3", "[be11f516476cc975b500]", "[9d4d4cceef639564]", "0x20")
+ self.binary80_to_bid64("3", "[be7ab8487e6b1dcf6b10]", "[a1440e80aa0cd01f]", "0x20")
+ self.binary80_to_bid64("3", "[bee18218c17448ccb8e0]", "[a51d0af1ca66f71b]", "0x20")
+ self.binary80_to_bid64("3", "[bf4bd5e1f5cc63379d88]", "[a923dfab283e7b43]", "0x20")
+ self.binary80_to_bid64("3", "[bfb3bb821762889ad128]", "[ad06e3517f660b3c]", "0x20")
+ self.binary80_to_bid64("3", "[bffad000000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("3", "[bfff8000000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary80_to_bid64("3", "[bfffc000000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary80_to_bid64("3", "[c0058000000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary80_to_bid64("3", "[c008f9c0000000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary80_to_bid64("3", "[c008fa00000000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary80_to_bid64("3", "[c01abebc1ffff16f1df0]", "[b0e71afd498c7516]", "0x20")
+ self.binary80_to_bid64("3", "[c084ea520bb1d6b54670]", "[b4e714f78c65d23c]", "0x20")
+ self.binary80_to_bid64("3", "[c0eee0fd6c28d61473c7]", "[b8e58448e176a642]", "0x20")
+ self.binary80_to_bid64("3", "[c155da771e8d5298fed2]", "[bcc56eb15b5335ed]", "0x20")
+ self.binary80_to_bid64("3", "[c1bc975127e385158a48]", "[c0a3d0d88a2a13de]", "0x20")
+ self.binary80_to_bid64("3", "[c225cfdab76dc5d0c6a6]", "[c495431bad72f1e3]", "0x20")
+ self.binary80_to_bid64("3", "[c28b8f0fac71dde93de0]", "[c8676ba19cbfdce1]", "0x20")
+ self.binary80_to_bid64("3", "[c2f4cd9bf7d6fa603fd4]", "[cc64537d482d0e6a]", "0x20")
+ self.binary80_to_bid64("3", "[c35cd0e651fb54863220]", "[d048ea33f4a5c2b7]", "0x20")
+ self.binary80_to_bid64("3", "[c3c68016c17574e76085]", "[d4446f4aae479ed3]", "0x20")
+ self.binary80_to_bid64("3", "[c42db25dd1d824a439c6]", "[d826433db2f4383b]", "0x20")
+ self.binary80_to_bid64("3", "[c496d7b6e9ae256c48d9]", "[dc1eb948e9fd79ab]", "0x20")
+ self.binary80_to_bid64("3", "[c4fdf5f75bd4dab6cdb0]", "[f7fb86f26fc0fffe]", "0x20")
+ self.binary80_to_bid64("3", "[c4fdf5f75bd4dab6cdb1]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("3", "[c4fdf5f75bd4dab6d49c]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("3", "[c4fdf5f75bd4dab6d49d]", "[f7fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("3", "[fffeffffffffffffffff]", "[f7fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("3", "[ffff0000000000000000]", "[f800000000000000]", "0x00")
+ self.binary80_to_bid64("4", "[00000000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary80_to_bid64("4", "[00000000000000000001]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("4", "[00018000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[00028000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[3acfad267633618a3a0c]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[3ad4ea5da4ec2a406826]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("4", "[3ad4ea5da4ec2a406827]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("4", "[3b06d0289ce2dd61ca6d]", "[00038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("4", "[3b06d0289ce2dd61ca6e]", "[00038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("4", "[3b0a8219620dca5d1e84]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("4", "[3b0a8219620dca5d1e85]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("4", "[3b3de334df29f8e63e37]", "[020df8a615f6e84a]", "0x20")
+ self.binary80_to_bid64("4", "[3b9cb646ac411fe8d800]", "[05a470abbc51c322]", "0x20")
+ self.binary80_to_bid64("4", "[3c09e585348a10aed2a0]", "[09c3a0f5138dd219]", "0x20")
+ self.binary80_to_bid64("4", "[3c71a087b1830822dae0]", "[0da525cd926920a5]", "0x20")
+ self.binary80_to_bid64("4", "[3cdb98494996b0bc6968]", "[11a3f639b12c6b26]", "0x20")
+ self.binary80_to_bid64("4", "[3d41f64a1b2e88e3ed40]", "[65587d3ccedb2c39]", "0x20")
+ self.binary80_to_bid64("4", "[3da7c59e1299079ac080]", "[194d37e7a4644e50]", "0x20")
+ self.binary80_to_bid64("4", "[3e11f516476cc975b500]", "[1d4d4cceef639565]", "0x20")
+ self.binary80_to_bid64("4", "[3e7ab8487e6b1dcf6b10]", "[21440e80aa0cd020]", "0x20")
+ self.binary80_to_bid64("4", "[3ee18218c17448ccb8e0]", "[251d0af1ca66f71b]", "0x20")
+ self.binary80_to_bid64("4", "[3f4bd5e1f5cc63379d88]", "[2923dfab283e7b44]", "0x20")
+ self.binary80_to_bid64("4", "[3fb3bb821762889ad128]", "[2d06e3517f660b3c]", "0x20")
+ self.binary80_to_bid64("4", "[3ffad000000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("4", "[3fff8000000000000000]", "[31c0000000000001]", "0x00")
+ self.binary80_to_bid64("4", "[3fffc000000000000000]", "[31a000000000000f]", "0x00")
+ self.binary80_to_bid64("4", "[40058000000000000000]", "[31c0000000000040]", "0x00")
+ self.binary80_to_bid64("4", "[4008f9c0000000000000]", "[31c00000000003e7]", "0x00")
+ self.binary80_to_bid64("4", "[4008fa00000000000000]", "[31c00000000003e8]", "0x00")
+ self.binary80_to_bid64("4", "[401abebc1ffff16f1df0]", "[30e71afd498c7517]", "0x20")
+ self.binary80_to_bid64("4", "[4084ea520bb1d6b54670]", "[34e714f78c65d23d]", "0x20")
+ self.binary80_to_bid64("4", "[40eee0fd6c28d61473c7]", "[38e58448e176a642]", "0x20")
+ self.binary80_to_bid64("4", "[4155da771e8d5298fed2]", "[3cc56eb15b5335ee]", "0x20")
+ self.binary80_to_bid64("4", "[41bc975127e385158a48]", "[40a3d0d88a2a13df]", "0x20")
+ self.binary80_to_bid64("4", "[4225cfdab76dc5d0c6a6]", "[4495431bad72f1e3]", "0x20")
+ self.binary80_to_bid64("4", "[428b8f0fac71dde93de0]", "[48676ba19cbfdce1]", "0x20")
+ self.binary80_to_bid64("4", "[42f4cd9bf7d6fa603fd4]", "[4c64537d482d0e6b]", "0x20")
+ self.binary80_to_bid64("4", "[435cd0e651fb54863220]", "[5048ea33f4a5c2b7]", "0x20")
+ self.binary80_to_bid64("4", "[43c68016c17574e76085]", "[54446f4aae479ed4]", "0x20")
+ self.binary80_to_bid64("4", "[442db25dd1d824a439c6]", "[5826433db2f4383c]", "0x20")
+ self.binary80_to_bid64("4", "[4496d7b6e9ae256c48d9]", "[5c1eb948e9fd79ac]", "0x20")
+ self.binary80_to_bid64("4", "[44fdf5f75bd4dab6cdb0]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[44fdf5f75bd4dab6cdb1]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[44fdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("4", "[44fdf5f75bd4dab6d49d]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("4", "[7ffeffffffffffffffff]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("4", "[7fff0000000000000000]", "[7800000000000000]", "0x00")
+ self.binary80_to_bid64("4", "[80000000000000000001]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("4", "[80018000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[80028000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[bacfad267633618a3a0c]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[bad4ea5da4ec2a406826]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("4", "[bad4ea5da4ec2a406827]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("4", "[bb06d0289ce2dd61ca6d]", "[80038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("4", "[bb06d0289ce2dd61ca6e]", "[80038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("4", "[bb0a8219620dca5d1e84]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("4", "[bb0a8219620dca5d1e85]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("4", "[bb3de334df29f8e63e37]", "[820df8a615f6e84a]", "0x20")
+ self.binary80_to_bid64("4", "[bb9cb646ac411fe8d800]", "[85a470abbc51c322]", "0x20")
+ self.binary80_to_bid64("4", "[bc09e585348a10aed2a0]", "[89c3a0f5138dd219]", "0x20")
+ self.binary80_to_bid64("4", "[bc71a087b1830822dae0]", "[8da525cd926920a5]", "0x20")
+ self.binary80_to_bid64("4", "[bcdb98494996b0bc6968]", "[91a3f639b12c6b26]", "0x20")
+ self.binary80_to_bid64("4", "[bd41f64a1b2e88e3ed40]", "[e5587d3ccedb2c39]", "0x20")
+ self.binary80_to_bid64("4", "[bda7c59e1299079ac080]", "[994d37e7a4644e50]", "0x20")
+ self.binary80_to_bid64("4", "[be11f516476cc975b500]", "[9d4d4cceef639565]", "0x20")
+ self.binary80_to_bid64("4", "[be7ab8487e6b1dcf6b10]", "[a1440e80aa0cd020]", "0x20")
+ self.binary80_to_bid64("4", "[bee18218c17448ccb8e0]", "[a51d0af1ca66f71b]", "0x20")
+ self.binary80_to_bid64("4", "[bf4bd5e1f5cc63379d88]", "[a923dfab283e7b44]", "0x20")
+ self.binary80_to_bid64("4", "[bfb3bb821762889ad128]", "[ad06e3517f660b3c]", "0x20")
+ self.binary80_to_bid64("4", "[bffad000000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("4", "[bfff8000000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary80_to_bid64("4", "[bfffc000000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary80_to_bid64("4", "[c0058000000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary80_to_bid64("4", "[c008f9c0000000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary80_to_bid64("4", "[c008fa00000000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary80_to_bid64("4", "[c01abebc1ffff16f1df0]", "[b0e71afd498c7517]", "0x20")
+ self.binary80_to_bid64("4", "[c084ea520bb1d6b54670]", "[b4e714f78c65d23d]", "0x20")
+ self.binary80_to_bid64("4", "[c0eee0fd6c28d61473c7]", "[b8e58448e176a642]", "0x20")
+ self.binary80_to_bid64("4", "[c155da771e8d5298fed2]", "[bcc56eb15b5335ee]", "0x20")
+ self.binary80_to_bid64("4", "[c1bc975127e385158a48]", "[c0a3d0d88a2a13df]", "0x20")
+ self.binary80_to_bid64("4", "[c225cfdab76dc5d0c6a6]", "[c495431bad72f1e3]", "0x20")
+ self.binary80_to_bid64("4", "[c28b8f0fac71dde93de0]", "[c8676ba19cbfdce1]", "0x20")
+ self.binary80_to_bid64("4", "[c2f4cd9bf7d6fa603fd4]", "[cc64537d482d0e6b]", "0x20")
+ self.binary80_to_bid64("4", "[c35cd0e651fb54863220]", "[d048ea33f4a5c2b7]", "0x20")
+ self.binary80_to_bid64("4", "[c3c68016c17574e76085]", "[d4446f4aae479ed4]", "0x20")
+ self.binary80_to_bid64("4", "[c42db25dd1d824a439c6]", "[d826433db2f4383c]", "0x20")
+ self.binary80_to_bid64("4", "[c496d7b6e9ae256c48d9]", "[dc1eb948e9fd79ac]", "0x20")
+ self.binary80_to_bid64("4", "[c4fdf5f75bd4dab6cdb0]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[c4fdf5f75bd4dab6cdb1]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[c4fdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("4", "[c4fdf5f75bd4dab6d49d]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("4", "[fffeffffffffffffffff]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("4", "[ffff0000000000000000]", "[f800000000000000]", "0x00")
+ self.binary80_to_bid64("0", "[00000000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary80_to_bid64("1", "[00000000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary80_to_bid64("2", "[00000000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary80_to_bid64("3", "[00000000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary80_to_bid64("4", "[00000000000000000000]", "[31c0000000000000]", "0x00")
+ self.binary80_to_bid64("0", "[00000000000000000001]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("1", "[00000000000000000001]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("2", "[00000000000000000001]", "[0000000000000001]", "0x32")
+ self.binary80_to_bid64("3", "[00000000000000000001]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("4", "[00000000000000000001]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("0", "[00007fffffffffffffff]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("1", "[00007fffffffffffffff]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("2", "[00007fffffffffffffff]", "[0000000000000001]", "0x32")
+ self.binary80_to_bid64("3", "[00007fffffffffffffff]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("4", "[00007fffffffffffffff]", "[0000000000000000]", "0x32")
+ self.binary80_to_bid64("0", "[00018000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("1", "[00018000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("2", "[00018000000000000000]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("3", "[00018000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[00018000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[00028000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("1", "[00028000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("2", "[00028000000000000000]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("3", "[00028000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[00028000000000000000]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[3acfad267633618a3a0c]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("1", "[3acfad267633618a3a0c]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("2", "[3acfad267633618a3a0c]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("3", "[3acfad267633618a3a0c]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[3acfad267633618a3a0c]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[3ad4ea5da4ec2a406826]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("1", "[3ad4ea5da4ec2a406826]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("2", "[3ad4ea5da4ec2a406826]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("3", "[3ad4ea5da4ec2a406826]", "[0000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[3ad4ea5da4ec2a406826]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("0", "[3ad4ea5da4ec2a406827]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("1", "[3ad4ea5da4ec2a406827]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("2", "[3ad4ea5da4ec2a406827]", "[0000000000000002]", "0x30")
+ self.binary80_to_bid64("3", "[3ad4ea5da4ec2a406827]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("4", "[3ad4ea5da4ec2a406827]", "[0000000000000001]", "0x30")
+ self.binary80_to_bid64("0", "[3aefc4aba62571a824d1]", "[0000000006b699bf]", "0x30")
+ self.binary80_to_bid64("1", "[3aefc4aba62571a824d1]", "[0000000006b699be]", "0x30")
+ self.binary80_to_bid64("2", "[3aefc4aba62571a824d1]", "[0000000006b699bf]", "0x30")
+ self.binary80_to_bid64("3", "[3aefc4aba62571a824d1]", "[0000000006b699be]", "0x30")
+ self.binary80_to_bid64("4", "[3aefc4aba62571a824d1]", "[0000000006b699bf]", "0x30")
+ self.binary80_to_bid64("0", "[3b008538b653c0e24793]", "[000009184e72a000]", "0x30")
+ self.binary80_to_bid64("1", "[3b008538b653c0e24793]", "[000009184e729fff]", "0x30")
+ self.binary80_to_bid64("2", "[3b008538b653c0e24793]", "[000009184e72a000]", "0x30")
+ self.binary80_to_bid64("3", "[3b008538b653c0e24793]", "[000009184e729fff]", "0x30")
+ self.binary80_to_bid64("4", "[3b008538b653c0e24793]", "[000009184e72a000]", "0x30")
+ self.binary80_to_bid64("0", "[3b008538b653c0e24794]", "[000009184e72a000]", "0x30")
+ self.binary80_to_bid64("1", "[3b008538b653c0e24794]", "[000009184e729fff]", "0x30")
+ self.binary80_to_bid64("2", "[3b008538b653c0e24794]", "[000009184e72a000]", "0x30")
+ self.binary80_to_bid64("3", "[3b008538b653c0e24794]", "[000009184e729fff]", "0x30")
+ self.binary80_to_bid64("4", "[3b008538b653c0e24794]", "[000009184e72a000]", "0x30")
+ self.binary80_to_bid64("0", "[3b03a686e3e8b11ad978]", "[00005af3107a4000]", "0x30")
+ self.binary80_to_bid64("1", "[3b03a686e3e8b11ad978]", "[00005af3107a3fff]", "0x30")
+ self.binary80_to_bid64("2", "[3b03a686e3e8b11ad978]", "[00005af3107a4000]", "0x30")
+ self.binary80_to_bid64("3", "[3b03a686e3e8b11ad978]", "[00005af3107a3fff]", "0x30")
+ self.binary80_to_bid64("4", "[3b03a686e3e8b11ad978]", "[00005af3107a4000]", "0x30")
+ self.binary80_to_bid64("0", "[3b03a686e3e8b11ad979]", "[00005af3107a4000]", "0x30")
+ self.binary80_to_bid64("1", "[3b03a686e3e8b11ad979]", "[00005af3107a3fff]", "0x30")
+ self.binary80_to_bid64("2", "[3b03a686e3e8b11ad979]", "[00005af3107a4000]", "0x30")
+ self.binary80_to_bid64("3", "[3b03a686e3e8b11ad979]", "[00005af3107a3fff]", "0x30")
+ self.binary80_to_bid64("4", "[3b03a686e3e8b11ad979]", "[00005af3107a4000]", "0x30")
+ self.binary80_to_bid64("0", "[3b06d0289ce2dd61ca6d]", "[00038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("1", "[3b06d0289ce2dd61ca6d]", "[00038d7ea4c67fff]", "0x30")
+ self.binary80_to_bid64("2", "[3b06d0289ce2dd61ca6d]", "[00038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("3", "[3b06d0289ce2dd61ca6d]", "[00038d7ea4c67fff]", "0x30")
+ self.binary80_to_bid64("4", "[3b06d0289ce2dd61ca6d]", "[00038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("0", "[3b06d0289ce2dd61ca6e]", "[00038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("1", "[3b06d0289ce2dd61ca6e]", "[00038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("2", "[3b06d0289ce2dd61ca6e]", "[00038d7ea4c68001]", "0x20")
+ self.binary80_to_bid64("3", "[3b06d0289ce2dd61ca6e]", "[00038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("4", "[3b06d0289ce2dd61ca6e]", "[00038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[3b09a6d85597b30af817]", "[0016c7e2e8703024]", "0x20")
+ self.binary80_to_bid64("1", "[3b09a6d85597b30af817]", "[0016c7e2e8703024]", "0x20")
+ self.binary80_to_bid64("2", "[3b09a6d85597b30af817]", "[0016c7e2e8703025]", "0x20")
+ self.binary80_to_bid64("3", "[3b09a6d85597b30af817]", "[0016c7e2e8703024]", "0x20")
+ self.binary80_to_bid64("4", "[3b09a6d85597b30af817]", "[0016c7e2e8703024]", "0x20")
+ self.binary80_to_bid64("0", "[3b0a8219620dca5d1e84]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("1", "[3b0a8219620dca5d1e84]", "[600386f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("2", "[3b0a8219620dca5d1e84]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("3", "[3b0a8219620dca5d1e84]", "[600386f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[3b0a8219620dca5d1e84]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[3b0a8219620dca5d1e85]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("1", "[3b0a8219620dca5d1e85]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("2", "[3b0a8219620dca5d1e85]", "[00238d7ea4c68001]", "0x20")
+ self.binary80_to_bid64("3", "[3b0a8219620dca5d1e85]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("4", "[3b0a8219620dca5d1e85]", "[00238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[3b228b13472c8260fa84]", "[01065f280e451fc9]", "0x20")
+ self.binary80_to_bid64("1", "[3b228b13472c8260fa84]", "[01065f280e451fc8]", "0x20")
+ self.binary80_to_bid64("2", "[3b228b13472c8260fa84]", "[01065f280e451fc9]", "0x20")
+ self.binary80_to_bid64("3", "[3b228b13472c8260fa84]", "[01065f280e451fc8]", "0x20")
+ self.binary80_to_bid64("4", "[3b228b13472c8260fa84]", "[01065f280e451fc9]", "0x20")
+ self.binary80_to_bid64("0", "[3b3caa2b2e5f1c55a21e]", "[02053b624e83eb9c]", "0x20")
+ self.binary80_to_bid64("1", "[3b3caa2b2e5f1c55a21e]", "[02053b624e83eb9c]", "0x20")
+ self.binary80_to_bid64("2", "[3b3caa2b2e5f1c55a21e]", "[02053b624e83eb9d]", "0x20")
+ self.binary80_to_bid64("3", "[3b3caa2b2e5f1c55a21e]", "[02053b624e83eb9c]", "0x20")
+ self.binary80_to_bid64("4", "[3b3caa2b2e5f1c55a21e]", "[02053b624e83eb9c]", "0x20")
+ self.binary80_to_bid64("0", "[3b56d9dee37bb6bafa26]", "[03047ecfb246820a]", "0x20")
+ self.binary80_to_bid64("1", "[3b56d9dee37bb6bafa26]", "[03047ecfb2468209]", "0x20")
+ self.binary80_to_bid64("2", "[3b56d9dee37bb6bafa26]", "[03047ecfb246820a]", "0x20")
+ self.binary80_to_bid64("3", "[3b56d9dee37bb6bafa26]", "[03047ecfb2468209]", "0x20")
+ self.binary80_to_bid64("4", "[3b56d9dee37bb6bafa26]", "[03047ecfb246820a]", "0x20")
+ self.binary80_to_bid64("0", "[3b70be5c0486d0a8f680]", "[03fa5bc2d0c842dd]", "0x20")
+ self.binary80_to_bid64("1", "[3b70be5c0486d0a8f680]", "[03fa5bc2d0c842dd]", "0x20")
+ self.binary80_to_bid64("2", "[3b70be5c0486d0a8f680]", "[03fa5bc2d0c842de]", "0x20")
+ self.binary80_to_bid64("3", "[3b70be5c0486d0a8f680]", "[03fa5bc2d0c842dd]", "0x20")
+ self.binary80_to_bid64("4", "[3b70be5c0486d0a8f680]", "[03fa5bc2d0c842dd]", "0x20")
+ self.binary80_to_bid64("0", "[3b86c68edda1beac4240]", "[04cb881c76753e6d]", "0x20")
+ self.binary80_to_bid64("1", "[3b86c68edda1beac4240]", "[04cb881c76753e6d]", "0x20")
+ self.binary80_to_bid64("2", "[3b86c68edda1beac4240]", "[04cb881c76753e6e]", "0x20")
+ self.binary80_to_bid64("3", "[3b86c68edda1beac4240]", "[04cb881c76753e6d]", "0x20")
+ self.binary80_to_bid64("4", "[3b86c68edda1beac4240]", "[04cb881c76753e6d]", "0x20")
+ self.binary80_to_bid64("0", "[3ba4dc7c57c7910ecc95]", "[05edbfdc607c8ab2]", "0x20")
+ self.binary80_to_bid64("1", "[3ba4dc7c57c7910ecc95]", "[05edbfdc607c8ab2]", "0x20")
+ self.binary80_to_bid64("2", "[3ba4dc7c57c7910ecc95]", "[05edbfdc607c8ab3]", "0x20")
+ self.binary80_to_bid64("3", "[3ba4dc7c57c7910ecc95]", "[05edbfdc607c8ab2]", "0x20")
+ self.binary80_to_bid64("4", "[3ba4dc7c57c7910ecc95]", "[05edbfdc607c8ab2]", "0x20")
+ self.binary80_to_bid64("0", "[3bbd95b09d832c311636]", "[06df526514c527f0]", "0x20")
+ self.binary80_to_bid64("1", "[3bbd95b09d832c311636]", "[06df526514c527ef]", "0x20")
+ self.binary80_to_bid64("2", "[3bbd95b09d832c311636]", "[06df526514c527f0]", "0x20")
+ self.binary80_to_bid64("3", "[3bbd95b09d832c311636]", "[06df526514c527ef]", "0x20")
+ self.binary80_to_bid64("4", "[3bbd95b09d832c311636]", "[06df526514c527f0]", "0x20")
+ self.binary80_to_bid64("0", "[3bd8eb169d0d55b9dc1f]", "[07e69a31007c48af]", "0x20")
+ self.binary80_to_bid64("1", "[3bd8eb169d0d55b9dc1f]", "[07e69a31007c48af]", "0x20")
+ self.binary80_to_bid64("2", "[3bd8eb169d0d55b9dc1f]", "[07e69a31007c48b0]", "0x20")
+ self.binary80_to_bid64("3", "[3bd8eb169d0d55b9dc1f]", "[07e69a31007c48af]", "0x20")
+ self.binary80_to_bid64("4", "[3bd8eb169d0d55b9dc1f]", "[07e69a31007c48af]", "0x20")
+ self.binary80_to_bid64("0", "[3bf1828a8a66a3c3ade0]", "[08cc4d36debc101a]", "0x20")
+ self.binary80_to_bid64("1", "[3bf1828a8a66a3c3ade0]", "[08cc4d36debc101a]", "0x20")
+ self.binary80_to_bid64("2", "[3bf1828a8a66a3c3ade0]", "[08cc4d36debc101b]", "0x20")
+ self.binary80_to_bid64("3", "[3bf1828a8a66a3c3ade0]", "[08cc4d36debc101a]", "0x20")
+ self.binary80_to_bid64("4", "[3bf1828a8a66a3c3ade0]", "[08cc4d36debc101a]", "0x20")
+ self.binary80_to_bid64("0", "[3c0ba4b88f8d7381c89c]", "[09ca6ac1bb258907]", "0x20")
+ self.binary80_to_bid64("1", "[3c0ba4b88f8d7381c89c]", "[09ca6ac1bb258906]", "0x20")
+ self.binary80_to_bid64("2", "[3c0ba4b88f8d7381c89c]", "[09ca6ac1bb258907]", "0x20")
+ self.binary80_to_bid64("3", "[3c0ba4b88f8d7381c89c]", "[09ca6ac1bb258906]", "0x20")
+ self.binary80_to_bid64("4", "[3c0ba4b88f8d7381c89c]", "[09ca6ac1bb258907]", "0x20")
+ self.binary80_to_bid64("0", "[3c22bffafe9ada475290]", "[0aaa2f3e2dff48c6]", "0x20")
+ self.binary80_to_bid64("1", "[3c22bffafe9ada475290]", "[0aaa2f3e2dff48c6]", "0x20")
+ self.binary80_to_bid64("2", "[3c22bffafe9ada475290]", "[0aaa2f3e2dff48c7]", "0x20")
+ self.binary80_to_bid64("3", "[3c22bffafe9ada475290]", "[0aaa2f3e2dff48c6]", "0x20")
+ self.binary80_to_bid64("4", "[3c22bffafe9ada475290]", "[0aaa2f3e2dff48c6]", "0x20")
+ self.binary80_to_bid64("0", "[3c3bdeb8e0a97b8b5e20]", "[0ba3f6ef21dd5cd0]", "0x20")
+ self.binary80_to_bid64("1", "[3c3bdeb8e0a97b8b5e20]", "[0ba3f6ef21dd5cd0]", "0x20")
+ self.binary80_to_bid64("2", "[3c3bdeb8e0a97b8b5e20]", "[0ba3f6ef21dd5cd1]", "0x20")
+ self.binary80_to_bid64("3", "[3c3bdeb8e0a97b8b5e20]", "[0ba3f6ef21dd5cd0]", "0x20")
+ self.binary80_to_bid64("4", "[3c3bdeb8e0a97b8b5e20]", "[0ba3f6ef21dd5cd0]", "0x20")
+ self.binary80_to_bid64("0", "[3c568f1c4c7967daa9f0]", "[632230faa822ffeb]", "0x20")
+ self.binary80_to_bid64("1", "[3c568f1c4c7967daa9f0]", "[632230faa822ffeb]", "0x20")
+ self.binary80_to_bid64("2", "[3c568f1c4c7967daa9f0]", "[632230faa822ffec]", "0x20")
+ self.binary80_to_bid64("3", "[3c568f1c4c7967daa9f0]", "[632230faa822ffeb]", "0x20")
+ self.binary80_to_bid64("4", "[3c568f1c4c7967daa9f0]", "[632230faa822ffeb]", "0x20")
+ self.binary80_to_bid64("0", "[3c70ce7e49ec3cb0b9d0]", "[63611b9818a0a8c3]", "0x20")
+ self.binary80_to_bid64("1", "[3c70ce7e49ec3cb0b9d0]", "[63611b9818a0a8c2]", "0x20")
+ self.binary80_to_bid64("2", "[3c70ce7e49ec3cb0b9d0]", "[63611b9818a0a8c3]", "0x20")
+ self.binary80_to_bid64("3", "[3c70ce7e49ec3cb0b9d0]", "[63611b9818a0a8c2]", "0x20")
+ self.binary80_to_bid64("4", "[3c70ce7e49ec3cb0b9d0]", "[63611b9818a0a8c3]", "0x20")
+ self.binary80_to_bid64("0", "[3c86e1094b5b41903900]", "[0e6f2226e5557ef8]", "0x20")
+ self.binary80_to_bid64("1", "[3c86e1094b5b41903900]", "[0e6f2226e5557ef8]", "0x20")
+ self.binary80_to_bid64("2", "[3c86e1094b5b41903900]", "[0e6f2226e5557ef9]", "0x20")
+ self.binary80_to_bid64("3", "[3c86e1094b5b41903900]", "[0e6f2226e5557ef8]", "0x20")
+ self.binary80_to_bid64("4", "[3c86e1094b5b41903900]", "[0e6f2226e5557ef8]", "0x20")
+ self.binary80_to_bid64("0", "[3ca5b97aca56fc870ab4]", "[0f9ac940d7cec47a]", "0x20")
+ self.binary80_to_bid64("1", "[3ca5b97aca56fc870ab4]", "[0f9ac940d7cec47a]", "0x20")
+ self.binary80_to_bid64("2", "[3ca5b97aca56fc870ab4]", "[0f9ac940d7cec47b]", "0x20")
+ self.binary80_to_bid64("3", "[3ca5b97aca56fc870ab4]", "[0f9ac940d7cec47a]", "0x20")
+ self.binary80_to_bid64("4", "[3ca5b97aca56fc870ab4]", "[0f9ac940d7cec47a]", "0x20")
+ self.binary80_to_bid64("0", "[3cbfb1080775580797ac]", "[109128382afbdba0]", "0x20")
+ self.binary80_to_bid64("1", "[3cbfb1080775580797ac]", "[109128382afbdb9f]", "0x20")
+ self.binary80_to_bid64("2", "[3cbfb1080775580797ac]", "[109128382afbdba0]", "0x20")
+ self.binary80_to_bid64("3", "[3cbfb1080775580797ac]", "[109128382afbdb9f]", "0x20")
+ self.binary80_to_bid64("4", "[3cbfb1080775580797ac]", "[109128382afbdba0]", "0x20")
+ self.binary80_to_bid64("0", "[3cdbd9b6564b6799fd09]", "[11a5a9f639611c84]", "0x20")
+ self.binary80_to_bid64("1", "[3cdbd9b6564b6799fd09]", "[11a5a9f639611c83]", "0x20")
+ self.binary80_to_bid64("2", "[3cdbd9b6564b6799fd09]", "[11a5a9f639611c84]", "0x20")
+ self.binary80_to_bid64("3", "[3cdbd9b6564b6799fd09]", "[11a5a9f639611c83]", "0x20")
+ self.binary80_to_bid64("4", "[3cdbd9b6564b6799fd09]", "[11a5a9f639611c84]", "0x20")
+ self.binary80_to_bid64("0", "[3cf390d881febcaf0078]", "[1286527334ca282d]", "0x20")
+ self.binary80_to_bid64("1", "[3cf390d881febcaf0078]", "[1286527334ca282d]", "0x20")
+ self.binary80_to_bid64("2", "[3cf390d881febcaf0078]", "[1286527334ca282e]", "0x20")
+ self.binary80_to_bid64("3", "[3cf390d881febcaf0078]", "[1286527334ca282d]", "0x20")
+ self.binary80_to_bid64("4", "[3cf390d881febcaf0078]", "[1286527334ca282d]", "0x20")
+ self.binary80_to_bid64("0", "[3d0a8136dec12a865960]", "[1364bb23b9d681bf]", "0x20")
+ self.binary80_to_bid64("1", "[3d0a8136dec12a865960]", "[1364bb23b9d681be]", "0x20")
+ self.binary80_to_bid64("2", "[3d0a8136dec12a865960]", "[1364bb23b9d681bf]", "0x20")
+ self.binary80_to_bid64("3", "[3d0a8136dec12a865960]", "[1364bb23b9d681be]", "0x20")
+ self.binary80_to_bid64("4", "[3d0a8136dec12a865960]", "[1364bb23b9d681bf]", "0x20")
+ self.binary80_to_bid64("0", "[3d248936678a00726520]", "[6511b6eb980020e3]", "0x20")
+ self.binary80_to_bid64("1", "[3d248936678a00726520]", "[6511b6eb980020e3]", "0x20")
+ self.binary80_to_bid64("2", "[3d248936678a00726520]", "[6511b6eb980020e4]", "0x20")
+ self.binary80_to_bid64("3", "[3d248936678a00726520]", "[6511b6eb980020e3]", "0x20")
+ self.binary80_to_bid64("4", "[3d248936678a00726520]", "[6511b6eb980020e3]", "0x20")
+ self.binary80_to_bid64("0", "[3d3ef5071f162d2f1de0]", "[15640a5431dcd9e6]", "0x20")
+ self.binary80_to_bid64("1", "[3d3ef5071f162d2f1de0]", "[15640a5431dcd9e5]", "0x20")
+ self.binary80_to_bid64("2", "[3d3ef5071f162d2f1de0]", "[15640a5431dcd9e6]", "0x20")
+ self.binary80_to_bid64("3", "[3d3ef5071f162d2f1de0]", "[15640a5431dcd9e5]", "0x20")
+ self.binary80_to_bid64("4", "[3d3ef5071f162d2f1de0]", "[15640a5431dcd9e6]", "0x20")
+ self.binary80_to_bid64("0", "[3d5cf1143441b0ceee77]", "[168444b41ed55afa]", "0x20")
+ self.binary80_to_bid64("1", "[3d5cf1143441b0ceee77]", "[168444b41ed55af9]", "0x20")
+ self.binary80_to_bid64("2", "[3d5cf1143441b0ceee77]", "[168444b41ed55afa]", "0x20")
+ self.binary80_to_bid64("3", "[3d5cf1143441b0ceee77]", "[168444b41ed55af9]", "0x20")
+ self.binary80_to_bid64("4", "[3d5cf1143441b0ceee77]", "[168444b41ed55afa]", "0x20")
+ self.binary80_to_bid64("0", "[3d75bee0ec5b00d77c26]", "[176b57058c4bdf54]", "0x20")
+ self.binary80_to_bid64("1", "[3d75bee0ec5b00d77c26]", "[176b57058c4bdf54]", "0x20")
+ self.binary80_to_bid64("2", "[3d75bee0ec5b00d77c26]", "[176b57058c4bdf55]", "0x20")
+ self.binary80_to_bid64("3", "[3d75bee0ec5b00d77c26]", "[176b57058c4bdf54]", "0x20")
+ self.binary80_to_bid64("4", "[3d75bee0ec5b00d77c26]", "[176b57058c4bdf54]", "0x20")
+ self.binary80_to_bid64("0", "[3d909cb0f7a460b2c378]", "[186c7e8297928a1f]", "0x20")
+ self.binary80_to_bid64("1", "[3d909cb0f7a460b2c378]", "[186c7e8297928a1e]", "0x20")
+ self.binary80_to_bid64("2", "[3d909cb0f7a460b2c378]", "[186c7e8297928a1f]", "0x20")
+ self.binary80_to_bid64("3", "[3d909cb0f7a460b2c378]", "[186c7e8297928a1e]", "0x20")
+ self.binary80_to_bid64("4", "[3d909cb0f7a460b2c378]", "[186c7e8297928a1f]", "0x20")
+ self.binary80_to_bid64("0", "[3daaf9b4a3169b1d5763]", "[196d5cab5b6fe328]", "0x20")
+ self.binary80_to_bid64("1", "[3daaf9b4a3169b1d5763]", "[196d5cab5b6fe327]", "0x20")
+ self.binary80_to_bid64("2", "[3daaf9b4a3169b1d5763]", "[196d5cab5b6fe328]", "0x20")
+ self.binary80_to_bid64("3", "[3daaf9b4a3169b1d5763]", "[196d5cab5b6fe327]", "0x20")
+ self.binary80_to_bid64("4", "[3daaf9b4a3169b1d5763]", "[196d5cab5b6fe328]", "0x20")
+ self.binary80_to_bid64("0", "[3dc2a2a54ebce111696c]", "[1a4e9a0d5cdecfe2]", "0x20")
+ self.binary80_to_bid64("1", "[3dc2a2a54ebce111696c]", "[1a4e9a0d5cdecfe1]", "0x20")
+ self.binary80_to_bid64("2", "[3dc2a2a54ebce111696c]", "[1a4e9a0d5cdecfe2]", "0x20")
+ self.binary80_to_bid64("3", "[3dc2a2a54ebce111696c]", "[1a4e9a0d5cdecfe1]", "0x20")
+ self.binary80_to_bid64("4", "[3dc2a2a54ebce111696c]", "[1a4e9a0d5cdecfe2]", "0x20")
+ self.binary80_to_bid64("0", "[3dde82d395e66f0cea3b]", "[1b5f873427cf3c19]", "0x20")
+ self.binary80_to_bid64("1", "[3dde82d395e66f0cea3b]", "[1b5f873427cf3c19]", "0x20")
+ self.binary80_to_bid64("2", "[3dde82d395e66f0cea3b]", "[1b5f873427cf3c1a]", "0x20")
+ self.binary80_to_bid64("3", "[3dde82d395e66f0cea3b]", "[1b5f873427cf3c19]", "0x20")
+ self.binary80_to_bid64("4", "[3dde82d395e66f0cea3b]", "[1b5f873427cf3c19]", "0x20")
+ self.binary80_to_bid64("0", "[3df6ad05b43d75122d04]", "[1c46fedf2e1c9949]", "0x20")
+ self.binary80_to_bid64("1", "[3df6ad05b43d75122d04]", "[1c46fedf2e1c9948]", "0x20")
+ self.binary80_to_bid64("2", "[3df6ad05b43d75122d04]", "[1c46fedf2e1c9949]", "0x20")
+ self.binary80_to_bid64("3", "[3df6ad05b43d75122d04]", "[1c46fedf2e1c9948]", "0x20")
+ self.binary80_to_bid64("4", "[3df6ad05b43d75122d04]", "[1c46fedf2e1c9949]", "0x20")
+ self.binary80_to_bid64("0", "[3e0dc411d2bd6df7c400]", "[1d26a66777b1cab2]", "0x20")
+ self.binary80_to_bid64("1", "[3e0dc411d2bd6df7c400]", "[1d26a66777b1cab2]", "0x20")
+ self.binary80_to_bid64("2", "[3e0dc411d2bd6df7c400]", "[1d26a66777b1cab3]", "0x20")
+ self.binary80_to_bid64("3", "[3e0dc411d2bd6df7c400]", "[1d26a66777b1cab2]", "0x20")
+ self.binary80_to_bid64("4", "[3e0dc411d2bd6df7c400]", "[1d26a66777b1cab2]", "0x20")
+ self.binary80_to_bid64("0", "[3e2adc09b1391d4eb10c]", "[1e4401b2c620674a]", "0x20")
+ self.binary80_to_bid64("1", "[3e2adc09b1391d4eb10c]", "[1e4401b2c6206749]", "0x20")
+ self.binary80_to_bid64("2", "[3e2adc09b1391d4eb10c]", "[1e4401b2c620674a]", "0x20")
+ self.binary80_to_bid64("3", "[3e2adc09b1391d4eb10c]", "[1e4401b2c6206749]", "0x20")
+ self.binary80_to_bid64("4", "[3e2adc09b1391d4eb10c]", "[1e4401b2c620674a]", "0x20")
+ self.binary80_to_bid64("0", "[3e44f2d67f6c2dc41406]", "[1f3dac9678e22808]", "0x20")
+ self.binary80_to_bid64("1", "[3e44f2d67f6c2dc41406]", "[1f3dac9678e22808]", "0x20")
+ self.binary80_to_bid64("2", "[3e44f2d67f6c2dc41406]", "[1f3dac9678e22809]", "0x20")
+ self.binary80_to_bid64("3", "[3e44f2d67f6c2dc41406]", "[1f3dac9678e22808]", "0x20")
+ self.binary80_to_bid64("4", "[3e44f2d67f6c2dc41406]", "[1f3dac9678e22808]", "0x20")
+ self.binary80_to_bid64("0", "[3e5f9cc57a73e26f9da1]", "[2039b651584e8b20]", "0x20")
+ self.binary80_to_bid64("1", "[3e5f9cc57a73e26f9da1]", "[2039b651584e8b20]", "0x20")
+ self.binary80_to_bid64("2", "[3e5f9cc57a73e26f9da1]", "[2039b651584e8b21]", "0x20")
+ self.binary80_to_bid64("3", "[3e5f9cc57a73e26f9da1]", "[2039b651584e8b20]", "0x20")
+ self.binary80_to_bid64("4", "[3e5f9cc57a73e26f9da1]", "[2039b651584e8b20]", "0x20")
+ self.binary80_to_bid64("0", "[3e78b8487e6b1dcf6b10]", "[212a2441a920084f]", "0x20")
+ self.binary80_to_bid64("1", "[3e78b8487e6b1dcf6b10]", "[212a2441a920084e]", "0x20")
+ self.binary80_to_bid64("2", "[3e78b8487e6b1dcf6b10]", "[212a2441a920084f]", "0x20")
+ self.binary80_to_bid64("3", "[3e78b8487e6b1dcf6b10]", "[212a2441a920084e]", "0x20")
+ self.binary80_to_bid64("4", "[3e78b8487e6b1dcf6b10]", "[212a2441a920084f]", "0x20")
+ self.binary80_to_bid64("0", "[3e91f1f20e7c88bfec08]", "[222477bed95d0d9b]", "0x20")
+ self.binary80_to_bid64("1", "[3e91f1f20e7c88bfec08]", "[222477bed95d0d9b]", "0x20")
+ self.binary80_to_bid64("2", "[3e91f1f20e7c88bfec08]", "[222477bed95d0d9c]", "0x20")
+ self.binary80_to_bid64("3", "[3e91f1f20e7c88bfec08]", "[222477bed95d0d9b]", "0x20")
+ self.binary80_to_bid64("4", "[3e91f1f20e7c88bfec08]", "[222477bed95d0d9b]", "0x20")
+ self.binary80_to_bid64("0", "[3eabb6e1b45682a843e4]", "[2316a9c9a2ae9ddd]", "0x20")
+ self.binary80_to_bid64("1", "[3eabb6e1b45682a843e4]", "[2316a9c9a2ae9ddc]", "0x20")
+ self.binary80_to_bid64("2", "[3eabb6e1b45682a843e4]", "[2316a9c9a2ae9ddd]", "0x20")
+ self.binary80_to_bid64("3", "[3eabb6e1b45682a843e4]", "[2316a9c9a2ae9ddc]", "0x20")
+ self.binary80_to_bid64("4", "[3eabb6e1b45682a843e4]", "[2316a9c9a2ae9ddd]", "0x20")
+ self.binary80_to_bid64("0", "[3ec3d7e2f4d4d254b470]", "[24047d0b99d405af]", "0x20")
+ self.binary80_to_bid64("1", "[3ec3d7e2f4d4d254b470]", "[24047d0b99d405af]", "0x20")
+ self.binary80_to_bid64("2", "[3ec3d7e2f4d4d254b470]", "[24047d0b99d405b0]", "0x20")
+ self.binary80_to_bid64("3", "[3ec3d7e2f4d4d254b470]", "[24047d0b99d405af]", "0x20")
+ self.binary80_to_bid64("4", "[3ec3d7e2f4d4d254b470]", "[24047d0b99d405af]", "0x20")
+ self.binary80_to_bid64("0", "[3edee8168b5d136f10b8]", "[250679f5f8271159]", "0x20")
+ self.binary80_to_bid64("1", "[3edee8168b5d136f10b8]", "[250679f5f8271159]", "0x20")
+ self.binary80_to_bid64("2", "[3edee8168b5d136f10b8]", "[250679f5f827115a]", "0x20")
+ self.binary80_to_bid64("3", "[3edee8168b5d136f10b8]", "[250679f5f8271159]", "0x20")
+ self.binary80_to_bid64("4", "[3edee8168b5d136f10b8]", "[250679f5f8271159]", "0x20")
+ self.binary80_to_bid64("0", "[3efaf94244b1a34779b2]", "[2612abd30b4e0cd6]", "0x20")
+ self.binary80_to_bid64("1", "[3efaf94244b1a34779b2]", "[2612abd30b4e0cd6]", "0x20")
+ self.binary80_to_bid64("2", "[3efaf94244b1a34779b2]", "[2612abd30b4e0cd7]", "0x20")
+ self.binary80_to_bid64("3", "[3efaf94244b1a34779b2]", "[2612abd30b4e0cd6]", "0x20")
+ self.binary80_to_bid64("4", "[3efaf94244b1a34779b2]", "[2612abd30b4e0cd6]", "0x20")
+ self.binary80_to_bid64("0", "[3f14d11edbef3c154254]", "[270a83266d07ca3a]", "0x20")
+ self.binary80_to_bid64("1", "[3f14d11edbef3c154254]", "[270a83266d07ca39]", "0x20")
+ self.binary80_to_bid64("2", "[3f14d11edbef3c154254]", "[270a83266d07ca3a]", "0x20")
+ self.binary80_to_bid64("3", "[3f14d11edbef3c154254]", "[270a83266d07ca39]", "0x20")
+ self.binary80_to_bid64("4", "[3f14d11edbef3c154254]", "[270a83266d07ca3a]", "0x20")
+ self.binary80_to_bid64("0", "[3f2ef83ca7a570751409]", "[28085fd0e51791d3]", "0x20")
+ self.binary80_to_bid64("1", "[3f2ef83ca7a570751409]", "[28085fd0e51791d2]", "0x20")
+ self.binary80_to_bid64("2", "[3f2ef83ca7a570751409]", "[28085fd0e51791d3]", "0x20")
+ self.binary80_to_bid64("3", "[3f2ef83ca7a570751409]", "[28085fd0e51791d2]", "0x20")
+ self.binary80_to_bid64("4", "[3f2ef83ca7a570751409]", "[28085fd0e51791d3]", "0x20")
+ self.binary80_to_bid64("0", "[3f429aacd69dd35d0680]", "[28c578b042b65c2c]", "0x20")
+ self.binary80_to_bid64("1", "[3f429aacd69dd35d0680]", "[28c578b042b65c2c]", "0x20")
+ self.binary80_to_bid64("2", "[3f429aacd69dd35d0680]", "[28c578b042b65c2d]", "0x20")
+ self.binary80_to_bid64("3", "[3f429aacd69dd35d0680]", "[28c578b042b65c2c]", "0x20")
+ self.binary80_to_bid64("4", "[3f429aacd69dd35d0680]", "[28c578b042b65c2c]", "0x20")
+ self.binary80_to_bid64("0", "[3f62fedc6bd977277097]", "[2a03df40a4dfd101]", "0x20")
+ self.binary80_to_bid64("1", "[3f62fedc6bd977277097]", "[2a03df40a4dfd100]", "0x20")
+ self.binary80_to_bid64("2", "[3f62fedc6bd977277097]", "[2a03df40a4dfd101]", "0x20")
+ self.binary80_to_bid64("3", "[3f62fedc6bd977277097]", "[2a03df40a4dfd100]", "0x20")
+ self.binary80_to_bid64("4", "[3f62fedc6bd977277097]", "[2a03df40a4dfd101]", "0x20")
+ self.binary80_to_bid64("0", "[3f7adb362ef81e20b47c]", "[2ae5966c3bbd2e75]", "0x20")
+ self.binary80_to_bid64("1", "[3f7adb362ef81e20b47c]", "[2ae5966c3bbd2e75]", "0x20")
+ self.binary80_to_bid64("2", "[3f7adb362ef81e20b47c]", "[2ae5966c3bbd2e76]", "0x20")
+ self.binary80_to_bid64("3", "[3f7adb362ef81e20b47c]", "[2ae5966c3bbd2e75]", "0x20")
+ self.binary80_to_bid64("4", "[3f7adb362ef81e20b47c]", "[2ae5966c3bbd2e75]", "0x20")
+ self.binary80_to_bid64("0", "[3f90b9d479db56fff600]", "[2bb3de005bd620df]", "0x20")
+ self.binary80_to_bid64("1", "[3f90b9d479db56fff600]", "[2bb3de005bd620de]", "0x20")
+ self.binary80_to_bid64("2", "[3f90b9d479db56fff600]", "[2bb3de005bd620df]", "0x20")
+ self.binary80_to_bid64("3", "[3f90b9d479db56fff600]", "[2bb3de005bd620de]", "0x20")
+ self.binary80_to_bid64("4", "[3f90b9d479db56fff600]", "[2bb3de005bd620df]", "0x20")
+ self.binary80_to_bid64("0", "[3facdfc26528b497be50]", "[2cc66bec930b8a75]", "0x20")
+ self.binary80_to_bid64("1", "[3facdfc26528b497be50]", "[2cc66bec930b8a75]", "0x20")
+ self.binary80_to_bid64("2", "[3facdfc26528b497be50]", "[2cc66bec930b8a76]", "0x20")
+ self.binary80_to_bid64("3", "[3facdfc26528b497be50]", "[2cc66bec930b8a75]", "0x20")
+ self.binary80_to_bid64("4", "[3facdfc26528b497be50]", "[2cc66bec930b8a75]", "0x20")
+ self.binary80_to_bid64("0", "[3fc990ca36dde8ce8a1d]", "[2dd64ef45e853920]", "0x20")
+ self.binary80_to_bid64("1", "[3fc990ca36dde8ce8a1d]", "[2dd64ef45e85391f]", "0x20")
+ self.binary80_to_bid64("2", "[3fc990ca36dde8ce8a1d]", "[2dd64ef45e853920]", "0x20")
+ self.binary80_to_bid64("3", "[3fc990ca36dde8ce8a1d]", "[2dd64ef45e85391f]", "0x20")
+ self.binary80_to_bid64("4", "[3fc990ca36dde8ce8a1d]", "[2dd64ef45e853920]", "0x20")
+ self.binary80_to_bid64("0", "[3fe3e27000aa265fb237]", "[2ed769c040af40fc]", "0x20")
+ self.binary80_to_bid64("1", "[3fe3e27000aa265fb237]", "[2ed769c040af40fb]", "0x20")
+ self.binary80_to_bid64("2", "[3fe3e27000aa265fb237]", "[2ed769c040af40fc]", "0x20")
+ self.binary80_to_bid64("3", "[3fe3e27000aa265fb237]", "[2ed769c040af40fb]", "0x20")
+ self.binary80_to_bid64("4", "[3fe3e27000aa265fb237]", "[2ed769c040af40fc]", "0x20")
+ self.binary80_to_bid64("0", "[3ffad000000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("1", "[3ffad000000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("2", "[3ffad000000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("3", "[3ffad000000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("4", "[3ffad000000000000000]", "[30c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("0", "[3ffdffff2ebe83265fbf]", "[2fd1c36ab2bf3dd2]", "0x20")
+ self.binary80_to_bid64("1", "[3ffdffff2ebe83265fbf]", "[2fd1c36ab2bf3dd1]", "0x20")
+ self.binary80_to_bid64("2", "[3ffdffff2ebe83265fbf]", "[2fd1c36ab2bf3dd2]", "0x20")
+ self.binary80_to_bid64("3", "[3ffdffff2ebe83265fbf]", "[2fd1c36ab2bf3dd1]", "0x20")
+ self.binary80_to_bid64("4", "[3ffdffff2ebe83265fbf]", "[2fd1c36ab2bf3dd2]", "0x20")
+ self.binary80_to_bid64("0", "[3fff8000000000000000]", "[31c0000000000001]", "0x00")
+ self.binary80_to_bid64("1", "[3fff8000000000000000]", "[31c0000000000001]", "0x00")
+ self.binary80_to_bid64("2", "[3fff8000000000000000]", "[31c0000000000001]", "0x00")
+ self.binary80_to_bid64("3", "[3fff8000000000000000]", "[31c0000000000001]", "0x00")
+ self.binary80_to_bid64("4", "[3fff8000000000000000]", "[31c0000000000001]", "0x00")
+ self.binary80_to_bid64("0", "[3fffc000000000000000]", "[31a000000000000f]", "0x00")
+ self.binary80_to_bid64("1", "[3fffc000000000000000]", "[31a000000000000f]", "0x00")
+ self.binary80_to_bid64("2", "[3fffc000000000000000]", "[31a000000000000f]", "0x00")
+ self.binary80_to_bid64("3", "[3fffc000000000000000]", "[31a000000000000f]", "0x00")
+ self.binary80_to_bid64("4", "[3fffc000000000000000]", "[31a000000000000f]", "0x00")
+ self.binary80_to_bid64("0", "[40058000000000000000]", "[31c0000000000040]", "0x00")
+ self.binary80_to_bid64("1", "[40058000000000000000]", "[31c0000000000040]", "0x00")
+ self.binary80_to_bid64("2", "[40058000000000000000]", "[31c0000000000040]", "0x00")
+ self.binary80_to_bid64("3", "[40058000000000000000]", "[31c0000000000040]", "0x00")
+ self.binary80_to_bid64("4", "[40058000000000000000]", "[31c0000000000040]", "0x00")
+ self.binary80_to_bid64("0", "[4008f9c0000000000000]", "[31c00000000003e7]", "0x00")
+ self.binary80_to_bid64("1", "[4008f9c0000000000000]", "[31c00000000003e7]", "0x00")
+ self.binary80_to_bid64("2", "[4008f9c0000000000000]", "[31c00000000003e7]", "0x00")
+ self.binary80_to_bid64("3", "[4008f9c0000000000000]", "[31c00000000003e7]", "0x00")
+ self.binary80_to_bid64("4", "[4008f9c0000000000000]", "[31c00000000003e7]", "0x00")
+ self.binary80_to_bid64("0", "[4008fa00000000000000]", "[31c00000000003e8]", "0x00")
+ self.binary80_to_bid64("1", "[4008fa00000000000000]", "[31c00000000003e8]", "0x00")
+ self.binary80_to_bid64("2", "[4008fa00000000000000]", "[31c00000000003e8]", "0x00")
+ self.binary80_to_bid64("3", "[4008fa00000000000000]", "[31c00000000003e8]", "0x00")
+ self.binary80_to_bid64("4", "[4008fa00000000000000]", "[31c00000000003e8]", "0x00")
+ self.binary80_to_bid64("0", "[4017ffffffffdd16f1df]", "[30cbebc1fffe5fd6]", "0x20")
+ self.binary80_to_bid64("1", "[4017ffffffffdd16f1df]", "[30cbebc1fffe5fd5]", "0x20")
+ self.binary80_to_bid64("2", "[4017ffffffffdd16f1df]", "[30cbebc1fffe5fd6]", "0x20")
+ self.binary80_to_bid64("3", "[4017ffffffffdd16f1df]", "[30cbebc1fffe5fd5]", "0x20")
+ self.binary80_to_bid64("4", "[4017ffffffffdd16f1df]", "[30cbebc1fffe5fd6]", "0x20")
+ self.binary80_to_bid64("0", "[4031e35fa9319ffff333]", "[31c71afd498d0000]", "0x20")
+ self.binary80_to_bid64("1", "[4031e35fa9319ffff333]", "[31c71afd498cffff]", "0x20")
+ self.binary80_to_bid64("2", "[4031e35fa9319ffff333]", "[31c71afd498d0000]", "0x20")
+ self.binary80_to_bid64("3", "[4031e35fa9319ffff333]", "[31c71afd498cffff]", "0x20")
+ self.binary80_to_bid64("4", "[4031e35fa9319ffff333]", "[31c71afd498d0000]", "0x20")
+ self.binary80_to_bid64("0", "[404bffffffffffff2fb3]", "[32c55e63b88c230a]", "0x20")
+ self.binary80_to_bid64("1", "[404bffffffffffff2fb3]", "[32c55e63b88c230a]", "0x20")
+ self.binary80_to_bid64("2", "[404bffffffffffff2fb3]", "[32c55e63b88c230b]", "0x20")
+ self.binary80_to_bid64("3", "[404bffffffffffff2fb3]", "[32c55e63b88c230a]", "0x20")
+ self.binary80_to_bid64("4", "[404bffffffffffff2fb3]", "[32c55e63b88c230a]", "0x20")
+ self.binary80_to_bid64("0", "[4063c9f2c9cc4aaac6bc]", "[33a71afd49867709]", "0x20")
+ self.binary80_to_bid64("1", "[4063c9f2c9cc4aaac6bc]", "[33a71afd49867708]", "0x20")
+ self.binary80_to_bid64("2", "[4063c9f2c9cc4aaac6bc]", "[33a71afd49867709]", "0x20")
+ self.binary80_to_bid64("3", "[4063c9f2c9cc4aaac6bc]", "[33a71afd49867708]", "0x20")
+ self.binary80_to_bid64("4", "[4063c9f2c9cc4aaac6bc]", "[33a71afd49867709]", "0x20")
+ self.binary80_to_bid64("0", "[407af0912a5886ac9e40]", "[348719ac5a847489]", "0x20")
+ self.binary80_to_bid64("1", "[407af0912a5886ac9e40]", "[348719ac5a847489]", "0x20")
+ self.binary80_to_bid64("2", "[407af0912a5886ac9e40]", "[348719ac5a84748a]", "0x20")
+ self.binary80_to_bid64("3", "[407af0912a5886ac9e40]", "[348719ac5a847489]", "0x20")
+ self.binary80_to_bid64("4", "[407af0912a5886ac9e40]", "[348719ac5a847489]", "0x20")
+ self.binary80_to_bid64("0", "[4098ea076240a41c5bff]", "[35a76aaae3f4a7cc]", "0x20")
+ self.binary80_to_bid64("1", "[4098ea076240a41c5bff]", "[35a76aaae3f4a7cb]", "0x20")
+ self.binary80_to_bid64("2", "[4098ea076240a41c5bff]", "[35a76aaae3f4a7cc]", "0x20")
+ self.binary80_to_bid64("3", "[4098ea076240a41c5bff]", "[35a76aaae3f4a7cb]", "0x20")
+ self.binary80_to_bid64("4", "[4098ea076240a41c5bff]", "[35a76aaae3f4a7cc]", "0x20")
+ self.binary80_to_bid64("0", "[40b2d6c2e9668daaf5e3]", "[36a49145aad95a50]", "0x20")
+ self.binary80_to_bid64("1", "[40b2d6c2e9668daaf5e3]", "[36a49145aad95a50]", "0x20")
+ self.binary80_to_bid64("2", "[40b2d6c2e9668daaf5e3]", "[36a49145aad95a51]", "0x20")
+ self.binary80_to_bid64("3", "[40b2d6c2e9668daaf5e3]", "[36a49145aad95a50]", "0x20")
+ self.binary80_to_bid64("4", "[40b2d6c2e9668daaf5e3]", "[36a49145aad95a50]", "0x20")
+ self.binary80_to_bid64("0", "[40ccf48babfea1959ba6]", "[6de2e7183912c82e]", "0x20")
+ self.binary80_to_bid64("1", "[40ccf48babfea1959ba6]", "[6de2e7183912c82e]", "0x20")
+ self.binary80_to_bid64("2", "[40ccf48babfea1959ba6]", "[6de2e7183912c82f]", "0x20")
+ self.binary80_to_bid64("3", "[40ccf48babfea1959ba6]", "[6de2e7183912c82e]", "0x20")
+ self.binary80_to_bid64("4", "[40ccf48babfea1959ba6]", "[6de2e7183912c82e]", "0x20")
+ self.binary80_to_bid64("0", "[40e5debed34ce4fe857c]", "[388aaad9ce1cd339]", "0x20")
+ self.binary80_to_bid64("1", "[40e5debed34ce4fe857c]", "[388aaad9ce1cd338]", "0x20")
+ self.binary80_to_bid64("2", "[40e5debed34ce4fe857c]", "[388aaad9ce1cd339]", "0x20")
+ self.binary80_to_bid64("3", "[40e5debed34ce4fe857c]", "[388aaad9ce1cd338]", "0x20")
+ self.binary80_to_bid64("4", "[40e5debed34ce4fe857c]", "[388aaad9ce1cd339]", "0x20")
+ self.binary80_to_bid64("0", "[40ffc1dc4d025f934e96]", "[39863afdf9d06726]", "0x20")
+ self.binary80_to_bid64("1", "[40ffc1dc4d025f934e96]", "[39863afdf9d06726]", "0x20")
+ self.binary80_to_bid64("2", "[40ffc1dc4d025f934e96]", "[39863afdf9d06727]", "0x20")
+ self.binary80_to_bid64("3", "[40ffc1dc4d025f934e96]", "[39863afdf9d06726]", "0x20")
+ self.binary80_to_bid64("4", "[40ffc1dc4d025f934e96]", "[39863afdf9d06726]", "0x20")
+ self.binary80_to_bid64("0", "[411a8f9e46057ca398ef]", "[3a8631f263ed14d9]", "0x20")
+ self.binary80_to_bid64("1", "[411a8f9e46057ca398ef]", "[3a8631f263ed14d9]", "0x20")
+ self.binary80_to_bid64("2", "[411a8f9e46057ca398ef]", "[3a8631f263ed14da]", "0x20")
+ self.binary80_to_bid64("3", "[411a8f9e46057ca398ef]", "[3a8631f263ed14d9]", "0x20")
+ self.binary80_to_bid64("4", "[411a8f9e46057ca398ef]", "[3a8631f263ed14d9]", "0x20")
+ self.binary80_to_bid64("0", "[412ef3db81ba85b06740]", "[3b4b07ad24ad8cd5]", "0x20")
+ self.binary80_to_bid64("1", "[412ef3db81ba85b06740]", "[3b4b07ad24ad8cd4]", "0x20")
+ self.binary80_to_bid64("2", "[412ef3db81ba85b06740]", "[3b4b07ad24ad8cd5]", "0x20")
+ self.binary80_to_bid64("3", "[412ef3db81ba85b06740]", "[3b4b07ad24ad8cd4]", "0x20")
+ self.binary80_to_bid64("4", "[412ef3db81ba85b06740]", "[3b4b07ad24ad8cd5]", "0x20")
+ self.binary80_to_bid64("0", "[414aee5aa258929b7af0]", "[3c5cf0b009fae285]", "0x20")
+ self.binary80_to_bid64("1", "[414aee5aa258929b7af0]", "[3c5cf0b009fae285]", "0x20")
+ self.binary80_to_bid64("2", "[414aee5aa258929b7af0]", "[3c5cf0b009fae286]", "0x20")
+ self.binary80_to_bid64("3", "[414aee5aa258929b7af0]", "[3c5cf0b009fae285]", "0x20")
+ self.binary80_to_bid64("4", "[414aee5aa258929b7af0]", "[3c5cf0b009fae285]", "0x20")
+ self.binary80_to_bid64("0", "[4166fbb2a2869142619a]", "[3d68341738bcdb68]", "0x20")
+ self.binary80_to_bid64("1", "[4166fbb2a2869142619a]", "[3d68341738bcdb67]", "0x20")
+ self.binary80_to_bid64("2", "[4166fbb2a2869142619a]", "[3d68341738bcdb68]", "0x20")
+ self.binary80_to_bid64("3", "[4166fbb2a2869142619a]", "[3d68341738bcdb67]", "0x20")
+ self.binary80_to_bid64("4", "[4166fbb2a2869142619a]", "[3d68341738bcdb68]", "0x20")
+ self.binary80_to_bid64("0", "[4181ad23162b6823b1a2]", "[3e6792ea003766ce]", "0x20")
+ self.binary80_to_bid64("1", "[4181ad23162b6823b1a2]", "[3e6792ea003766cd]", "0x20")
+ self.binary80_to_bid64("2", "[4181ad23162b6823b1a2]", "[3e6792ea003766ce]", "0x20")
+ self.binary80_to_bid64("3", "[4181ad23162b6823b1a2]", "[3e6792ea003766cd]", "0x20")
+ self.binary80_to_bid64("4", "[4181ad23162b6823b1a2]", "[3e6792ea003766ce]", "0x20")
+ self.binary80_to_bid64("0", "[419be3604ebc94172967]", "[3f66accf0137f63b]", "0x20")
+ self.binary80_to_bid64("1", "[419be3604ebc94172967]", "[3f66accf0137f63b]", "0x20")
+ self.binary80_to_bid64("2", "[419be3604ebc94172967]", "[3f66accf0137f63c]", "0x20")
+ self.binary80_to_bid64("3", "[419be3604ebc94172967]", "[3f66accf0137f63b]", "0x20")
+ self.binary80_to_bid64("4", "[419be3604ebc94172967]", "[3f66accf0137f63b]", "0x20")
+ self.binary80_to_bid64("0", "[41b5fb1911d7ca02f950]", "[4064f266cc325999]", "0x20")
+ self.binary80_to_bid64("1", "[41b5fb1911d7ca02f950]", "[4064f266cc325998]", "0x20")
+ self.binary80_to_bid64("2", "[41b5fb1911d7ca02f950]", "[4064f266cc325999]", "0x20")
+ self.binary80_to_bid64("3", "[41b5fb1911d7ca02f950]", "[4064f266cc325998]", "0x20")
+ self.binary80_to_bid64("4", "[41b5fb1911d7ca02f950]", "[4064f266cc325999]", "0x20")
+ self.binary80_to_bid64("0", "[41cee5e485662e089182]", "[414f327b2513f8f6]", "0x20")
+ self.binary80_to_bid64("1", "[41cee5e485662e089182]", "[414f327b2513f8f6]", "0x20")
+ self.binary80_to_bid64("2", "[41cee5e485662e089182]", "[414f327b2513f8f7]", "0x20")
+ self.binary80_to_bid64("3", "[41cee5e485662e089182]", "[414f327b2513f8f6]", "0x20")
+ self.binary80_to_bid64("4", "[41cee5e485662e089182]", "[414f327b2513f8f6]", "0x20")
+ self.binary80_to_bid64("0", "[41e5dab5e103aea5f990]", "[422c20d42cfe1be1]", "0x20")
+ self.binary80_to_bid64("1", "[41e5dab5e103aea5f990]", "[422c20d42cfe1be1]", "0x20")
+ self.binary80_to_bid64("2", "[41e5dab5e103aea5f990]", "[422c20d42cfe1be2]", "0x20")
+ self.binary80_to_bid64("3", "[41e5dab5e103aea5f990]", "[422c20d42cfe1be1]", "0x20")
+ self.binary80_to_bid64("4", "[41e5dab5e103aea5f990]", "[422c20d42cfe1be1]", "0x20")
+ self.binary80_to_bid64("0", "[41ffb6bae33c19ec2cd0]", "[4326ccd611248133]", "0x20")
+ self.binary80_to_bid64("1", "[41ffb6bae33c19ec2cd0]", "[4326ccd611248133]", "0x20")
+ self.binary80_to_bid64("2", "[41ffb6bae33c19ec2cd0]", "[4326ccd611248134]", "0x20")
+ self.binary80_to_bid64("3", "[41ffb6bae33c19ec2cd0]", "[4326ccd611248133]", "0x20")
+ self.binary80_to_bid64("4", "[41ffb6bae33c19ec2cd0]", "[4326ccd611248133]", "0x20")
+ self.binary80_to_bid64("0", "[421a808f96b988b7a000]", "[44266bde0590da38]", "0x20")
+ self.binary80_to_bid64("1", "[421a808f96b988b7a000]", "[44266bde0590da38]", "0x20")
+ self.binary80_to_bid64("2", "[421a808f96b988b7a000]", "[44266bde0590da39]", "0x20")
+ self.binary80_to_bid64("3", "[421a808f96b988b7a000]", "[44266bde0590da38]", "0x20")
+ self.binary80_to_bid64("4", "[421a808f96b988b7a000]", "[44266bde0590da38]", "0x20")
+ self.binary80_to_bid64("0", "[42349f940b1d1201cbb8]", "[4525595743d96006]", "0x20")
+ self.binary80_to_bid64("1", "[42349f940b1d1201cbb8]", "[4525595743d96006]", "0x20")
+ self.binary80_to_bid64("2", "[42349f940b1d1201cbb8]", "[4525595743d96007]", "0x20")
+ self.binary80_to_bid64("3", "[42349f940b1d1201cbb8]", "[4525595743d96006]", "0x20")
+ self.binary80_to_bid64("4", "[42349f940b1d1201cbb8]", "[4525595743d96006]", "0x20")
+ self.binary80_to_bid64("0", "[4250a1ec36e9538932f5]", "[462e91cc7da819ea]", "0x20")
+ self.binary80_to_bid64("1", "[4250a1ec36e9538932f5]", "[462e91cc7da819ea]", "0x20")
+ self.binary80_to_bid64("2", "[4250a1ec36e9538932f5]", "[462e91cc7da819eb]", "0x20")
+ self.binary80_to_bid64("3", "[4250a1ec36e9538932f5]", "[462e91cc7da819ea]", "0x20")
+ self.binary80_to_bid64("4", "[4250a1ec36e9538932f5]", "[462e91cc7da819ea]", "0x20")
+ self.binary80_to_bid64("0", "[4266ef46d22441be8e90]", "[470907bbe25e6d30]", "0x20")
+ self.binary80_to_bid64("1", "[4266ef46d22441be8e90]", "[470907bbe25e6d30]", "0x20")
+ self.binary80_to_bid64("2", "[4266ef46d22441be8e90]", "[470907bbe25e6d31]", "0x20")
+ self.binary80_to_bid64("3", "[4266ef46d22441be8e90]", "[470907bbe25e6d30]", "0x20")
+ self.binary80_to_bid64("4", "[4266ef46d22441be8e90]", "[470907bbe25e6d30]", "0x20")
+ self.binary80_to_bid64("0", "[428490dd1e4a4fb57ede]", "[4825dec9308b0287]", "0x20")
+ self.binary80_to_bid64("1", "[428490dd1e4a4fb57ede]", "[4825dec9308b0286]", "0x20")
+ self.binary80_to_bid64("2", "[428490dd1e4a4fb57ede]", "[4825dec9308b0287]", "0x20")
+ self.binary80_to_bid64("3", "[428490dd1e4a4fb57ede]", "[4825dec9308b0286]", "0x20")
+ self.binary80_to_bid64("4", "[428490dd1e4a4fb57ede]", "[4825dec9308b0287]", "0x20")
+ self.binary80_to_bid64("0", "[429ecf256d88c1a57033]", "[4925a218a8db6ad2]", "0x20")
+ self.binary80_to_bid64("1", "[429ecf256d88c1a57033]", "[4925a218a8db6ad2]", "0x20")
+ self.binary80_to_bid64("2", "[429ecf256d88c1a57033]", "[4925a218a8db6ad3]", "0x20")
+ self.binary80_to_bid64("3", "[429ecf256d88c1a57033]", "[4925a218a8db6ad2]", "0x20")
+ self.binary80_to_bid64("4", "[429ecf256d88c1a57033]", "[4925a218a8db6ad2]", "0x20")
+ self.binary80_to_bid64("0", "[42b586c89ba512509910]", "[49febf42e134cc8e]", "0x20")
+ self.binary80_to_bid64("1", "[42b586c89ba512509910]", "[49febf42e134cc8d]", "0x20")
+ self.binary80_to_bid64("2", "[42b586c89ba512509910]", "[49febf42e134cc8e]", "0x20")
+ self.binary80_to_bid64("3", "[42b586c89ba512509910]", "[49febf42e134cc8d]", "0x20")
+ self.binary80_to_bid64("4", "[42b586c89ba512509910]", "[49febf42e134cc8e]", "0x20")
+ self.binary80_to_bid64("0", "[42cfcc22bc700e771ab8]", "[4aff404b99afac5e]", "0x20")
+ self.binary80_to_bid64("1", "[42cfcc22bc700e771ab8]", "[4aff404b99afac5d]", "0x20")
+ self.binary80_to_bid64("2", "[42cfcc22bc700e771ab8]", "[4aff404b99afac5e]", "0x20")
+ self.binary80_to_bid64("3", "[42cfcc22bc700e771ab8]", "[4aff404b99afac5d]", "0x20")
+ self.binary80_to_bid64("4", "[42cfcc22bc700e771ab8]", "[4aff404b99afac5e]", "0x20")
+ self.binary80_to_bid64("0", "[42e7dfea80e2008e6860]", "[4be5c04932ac89f6]", "0x20")
+ self.binary80_to_bid64("1", "[42e7dfea80e2008e6860]", "[4be5c04932ac89f5]", "0x20")
+ self.binary80_to_bid64("2", "[42e7dfea80e2008e6860]", "[4be5c04932ac89f6]", "0x20")
+ self.binary80_to_bid64("3", "[42e7dfea80e2008e6860]", "[4be5c04932ac89f5]", "0x20")
+ self.binary80_to_bid64("4", "[42e7dfea80e2008e6860]", "[4be5c04932ac89f6]", "0x20")
+ self.binary80_to_bid64("0", "[43029a28ff9d630c1850]", "[4ce55078554e0b8b]", "0x20")
+ self.binary80_to_bid64("1", "[43029a28ff9d630c1850]", "[4ce55078554e0b8b]", "0x20")
+ self.binary80_to_bid64("2", "[43029a28ff9d630c1850]", "[4ce55078554e0b8c]", "0x20")
+ self.binary80_to_bid64("3", "[43029a28ff9d630c1850]", "[4ce55078554e0b8b]", "0x20")
+ self.binary80_to_bid64("4", "[43029a28ff9d630c1850]", "[4ce55078554e0b8b]", "0x20")
+ self.binary80_to_bid64("0", "[431ff8733f964ce4f2b9]", "[4e0499226ab2079e]", "0x20")
+ self.binary80_to_bid64("1", "[431ff8733f964ce4f2b9]", "[4e0499226ab2079d]", "0x20")
+ self.binary80_to_bid64("2", "[431ff8733f964ce4f2b9]", "[4e0499226ab2079e]", "0x20")
+ self.binary80_to_bid64("3", "[431ff8733f964ce4f2b9]", "[4e0499226ab2079d]", "0x20")
+ self.binary80_to_bid64("4", "[431ff8733f964ce4f2b9]", "[4e0499226ab2079e]", "0x20")
+ self.binary80_to_bid64("0", "[4338f0fa39b871d489be]", "[4eeef701f51e2ccc]", "0x20")
+ self.binary80_to_bid64("1", "[4338f0fa39b871d489be]", "[4eeef701f51e2ccc]", "0x20")
+ self.binary80_to_bid64("2", "[4338f0fa39b871d489be]", "[4eeef701f51e2ccd]", "0x20")
+ self.binary80_to_bid64("3", "[4338f0fa39b871d489be]", "[4eeef701f51e2ccc]", "0x20")
+ self.binary80_to_bid64("4", "[4338f0fa39b871d489be]", "[4eeef701f51e2ccc]", "0x20")
+ self.binary80_to_bid64("0", "[4353ce10afdd855e48ba]", "[4ff12cf22b830b65]", "0x20")
+ self.binary80_to_bid64("1", "[4353ce10afdd855e48ba]", "[4ff12cf22b830b65]", "0x20")
+ self.binary80_to_bid64("2", "[4353ce10afdd855e48ba]", "[4ff12cf22b830b66]", "0x20")
+ self.binary80_to_bid64("3", "[4353ce10afdd855e48ba]", "[4ff12cf22b830b65]", "0x20")
+ self.binary80_to_bid64("4", "[4353ce10afdd855e48ba]", "[4ff12cf22b830b65]", "0x20")
+ self.binary80_to_bid64("0", "[436ca6464d922292e53e]", "[50e4a67b10c63c9c]", "0x20")
+ self.binary80_to_bid64("1", "[436ca6464d922292e53e]", "[50e4a67b10c63c9c]", "0x20")
+ self.binary80_to_bid64("2", "[436ca6464d922292e53e]", "[50e4a67b10c63c9d]", "0x20")
+ self.binary80_to_bid64("3", "[436ca6464d922292e53e]", "[50e4a67b10c63c9c]", "0x20")
+ self.binary80_to_bid64("4", "[436ca6464d922292e53e]", "[50e4a67b10c63c9c]", "0x20")
+ self.binary80_to_bid64("0", "[4386b10b4b44282bf1b8]", "[74713aa28315934b]", "0x20")
+ self.binary80_to_bid64("1", "[4386b10b4b44282bf1b8]", "[74713aa28315934a]", "0x20")
+ self.binary80_to_bid64("2", "[4386b10b4b44282bf1b8]", "[74713aa28315934b]", "0x20")
+ self.binary80_to_bid64("3", "[4386b10b4b44282bf1b8]", "[74713aa28315934a]", "0x20")
+ self.binary80_to_bid64("4", "[4386b10b4b44282bf1b8]", "[74713aa28315934b]", "0x20")
+ self.binary80_to_bid64("0", "[43a1d2830cb891bd34f3]", "[52e54d9269d742d0]", "0x20")
+ self.binary80_to_bid64("1", "[43a1d2830cb891bd34f3]", "[52e54d9269d742d0]", "0x20")
+ self.binary80_to_bid64("2", "[43a1d2830cb891bd34f3]", "[52e54d9269d742d1]", "0x20")
+ self.binary80_to_bid64("3", "[43a1d2830cb891bd34f3]", "[52e54d9269d742d0]", "0x20")
+ self.binary80_to_bid64("4", "[43a1d2830cb891bd34f3]", "[52e54d9269d742d0]", "0x20")
+ self.binary80_to_bid64("0", "[43b9a18c364670f8a8b0]", "[53c6d3dc60b74b14]", "0x20")
+ self.binary80_to_bid64("1", "[43b9a18c364670f8a8b0]", "[53c6d3dc60b74b13]", "0x20")
+ self.binary80_to_bid64("2", "[43b9a18c364670f8a8b0]", "[53c6d3dc60b74b14]", "0x20")
+ self.binary80_to_bid64("3", "[43b9a18c364670f8a8b0]", "[53c6d3dc60b74b13]", "0x20")
+ self.binary80_to_bid64("4", "[43b9a18c364670f8a8b0]", "[53c6d3dc60b74b14]", "0x20")
+ self.binary80_to_bid64("0", "[43d4f67b721d4fa22f21]", "[54cdfb5408e69bfe]", "0x20")
+ self.binary80_to_bid64("1", "[43d4f67b721d4fa22f21]", "[54cdfb5408e69bfe]", "0x20")
+ self.binary80_to_bid64("2", "[43d4f67b721d4fa22f21]", "[54cdfb5408e69bff]", "0x20")
+ self.binary80_to_bid64("3", "[43d4f67b721d4fa22f21]", "[54cdfb5408e69bfe]", "0x20")
+ self.binary80_to_bid64("4", "[43d4f67b721d4fa22f21]", "[54cdfb5408e69bfe]", "0x20")
+ self.binary80_to_bid64("0", "[43ee97e933a1015c4087]", "[55c5c86b7b6310d2]", "0x20")
+ self.binary80_to_bid64("1", "[43ee97e933a1015c4087]", "[55c5c86b7b6310d1]", "0x20")
+ self.binary80_to_bid64("2", "[43ee97e933a1015c4087]", "[55c5c86b7b6310d2]", "0x20")
+ self.binary80_to_bid64("3", "[43ee97e933a1015c4087]", "[55c5c86b7b6310d1]", "0x20")
+ self.binary80_to_bid64("4", "[43ee97e933a1015c4087]", "[55c5c86b7b6310d2]", "0x20")
+ self.binary80_to_bid64("0", "[4408eb769d1d9ba67c1b]", "[56c603ec4c01ae22]", "0x20")
+ self.binary80_to_bid64("1", "[4408eb769d1d9ba67c1b]", "[56c603ec4c01ae22]", "0x20")
+ self.binary80_to_bid64("2", "[4408eb769d1d9ba67c1b]", "[56c603ec4c01ae23]", "0x20")
+ self.binary80_to_bid64("3", "[4408eb769d1d9ba67c1b]", "[56c603ec4c01ae22]", "0x20")
+ self.binary80_to_bid64("4", "[4408eb769d1d9ba67c1b]", "[56c603ec4c01ae22]", "0x20")
+ self.binary80_to_bid64("0", "[441fddcebb01c06bfed0]", "[57a4c0dd1abe1772]", "0x20")
+ self.binary80_to_bid64("1", "[441fddcebb01c06bfed0]", "[57a4c0dd1abe1772]", "0x20")
+ self.binary80_to_bid64("2", "[441fddcebb01c06bfed0]", "[57a4c0dd1abe1773]", "0x20")
+ self.binary80_to_bid64("3", "[441fddcebb01c06bfed0]", "[57a4c0dd1abe1772]", "0x20")
+ self.binary80_to_bid64("4", "[441fddcebb01c06bfed0]", "[57a4c0dd1abe1772]", "0x20")
+ self.binary80_to_bid64("0", "[443bf39d3d8630602a12]", "[58ae03a251cb5127]", "0x20")
+ self.binary80_to_bid64("1", "[443bf39d3d8630602a12]", "[58ae03a251cb5126]", "0x20")
+ self.binary80_to_bid64("2", "[443bf39d3d8630602a12]", "[58ae03a251cb5127]", "0x20")
+ self.binary80_to_bid64("3", "[443bf39d3d8630602a12]", "[58ae03a251cb5126]", "0x20")
+ self.binary80_to_bid64("4", "[443bf39d3d8630602a12]", "[58ae03a251cb5127]", "0x20")
+ self.binary80_to_bid64("0", "[44549821baad85f95eec]", "[599d5d881f4da271]", "0x20")
+ self.binary80_to_bid64("1", "[44549821baad85f95eec]", "[599d5d881f4da270]", "0x20")
+ self.binary80_to_bid64("2", "[44549821baad85f95eec]", "[599d5d881f4da271]", "0x20")
+ self.binary80_to_bid64("3", "[44549821baad85f95eec]", "[599d5d881f4da270]", "0x20")
+ self.binary80_to_bid64("4", "[44549821baad85f95eec]", "[599d5d881f4da271]", "0x20")
+ self.binary80_to_bid64("0", "[446f8f1b5d29c1a1bb08]", "[5aa3b5215926e5b4]", "0x20")
+ self.binary80_to_bid64("1", "[446f8f1b5d29c1a1bb08]", "[5aa3b5215926e5b3]", "0x20")
+ self.binary80_to_bid64("2", "[446f8f1b5d29c1a1bb08]", "[5aa3b5215926e5b4]", "0x20")
+ self.binary80_to_bid64("3", "[446f8f1b5d29c1a1bb08]", "[5aa3b5215926e5b3]", "0x20")
+ self.binary80_to_bid64("4", "[446f8f1b5d29c1a1bb08]", "[5aa3b5215926e5b4]", "0x20")
+ self.binary80_to_bid64("0", "[448799d474fe42151d78]", "[5b86afb17e9ee21c]", "0x20")
+ self.binary80_to_bid64("1", "[448799d474fe42151d78]", "[5b86afb17e9ee21c]", "0x20")
+ self.binary80_to_bid64("2", "[448799d474fe42151d78]", "[5b86afb17e9ee21d]", "0x20")
+ self.binary80_to_bid64("3", "[448799d474fe42151d78]", "[5b86afb17e9ee21c]", "0x20")
+ self.binary80_to_bid64("4", "[448799d474fe42151d78]", "[5b86afb17e9ee21c]", "0x20")
+ self.binary80_to_bid64("0", "[44a1c976f0b06425c008]", "[5c85e066d8de8e2f]", "0x20")
+ self.binary80_to_bid64("1", "[44a1c976f0b06425c008]", "[5c85e066d8de8e2e]", "0x20")
+ self.binary80_to_bid64("2", "[44a1c976f0b06425c008]", "[5c85e066d8de8e2f]", "0x20")
+ self.binary80_to_bid64("3", "[44a1c976f0b06425c008]", "[5c85e066d8de8e2e]", "0x20")
+ self.binary80_to_bid64("4", "[44a1c976f0b06425c008]", "[5c85e066d8de8e2f]", "0x20")
+ self.binary80_to_bid64("0", "[44bce7445a6948bf98a2]", "[5d890dde1930c3da]", "0x20")
+ self.binary80_to_bid64("1", "[44bce7445a6948bf98a2]", "[5d890dde1930c3da]", "0x20")
+ self.binary80_to_bid64("2", "[44bce7445a6948bf98a2]", "[5d890dde1930c3db]", "0x20")
+ self.binary80_to_bid64("3", "[44bce7445a6948bf98a2]", "[5d890dde1930c3da]", "0x20")
+ self.binary80_to_bid64("4", "[44bce7445a6948bf98a2]", "[5d890dde1930c3da]", "0x20")
+ self.binary80_to_bid64("0", "[44d7cb5f2ef66e77f284]", "[5e8aafbeaaed021a]", "0x20")
+ self.binary80_to_bid64("1", "[44d7cb5f2ef66e77f284]", "[5e8aafbeaaed0219]", "0x20")
+ self.binary80_to_bid64("2", "[44d7cb5f2ef66e77f284]", "[5e8aafbeaaed021a]", "0x20")
+ self.binary80_to_bid64("3", "[44d7cb5f2ef66e77f284]", "[5e8aafbeaaed0219]", "0x20")
+ self.binary80_to_bid64("4", "[44d7cb5f2ef66e77f284]", "[5e8aafbeaaed021a]", "0x20")
+ self.binary80_to_bid64("0", "[44fdf5f75bd4dab6cdb0]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("1", "[44fdf5f75bd4dab6cdb0]", "[77fb86f26fc0fffe]", "0x20")
+ self.binary80_to_bid64("2", "[44fdf5f75bd4dab6cdb0]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("3", "[44fdf5f75bd4dab6cdb0]", "[77fb86f26fc0fffe]", "0x20")
+ self.binary80_to_bid64("4", "[44fdf5f75bd4dab6cdb0]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("0", "[44fdf5f75bd4dab6cdb1]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("1", "[44fdf5f75bd4dab6cdb1]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("2", "[44fdf5f75bd4dab6cdb1]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("3", "[44fdf5f75bd4dab6cdb1]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[44fdf5f75bd4dab6cdb1]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("0", "[44fdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[44fdf5f75bd4dab6d49c]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("2", "[44fdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("3", "[44fdf5f75bd4dab6d49c]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[44fdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[44fdf5f75bd4dab6d49d]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[44fdf5f75bd4dab6d49d]", "[77fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("2", "[44fdf5f75bd4dab6d49d]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("3", "[44fdf5f75bd4dab6d49d]", "[77fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("4", "[44fdf5f75bd4dab6d49d]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[7ffeffffffffffffffff]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[7ffeffffffffffffffff]", "[77fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("2", "[7ffeffffffffffffffff]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("3", "[7ffeffffffffffffffff]", "[77fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("4", "[7ffeffffffffffffffff]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[7fff8000000000000000]", "[7800000000000000]", "0x00")
+ self.binary80_to_bid64("1", "[7fff8000000000000000]", "[7800000000000000]", "0x00")
+ self.binary80_to_bid64("2", "[7fff8000000000000000]", "[7800000000000000]", "0x00")
+ self.binary80_to_bid64("3", "[7fff8000000000000000]", "[7800000000000000]", "0x00")
+ self.binary80_to_bid64("4", "[7fff8000000000000000]", "[7800000000000000]", "0x00")
+ self.binary80_to_bid64("0", "[7fffb080000000000000]", "[7c03080000000000]", "0x01")
+ self.binary80_to_bid64("0", "[7ffff080000000000000]", "[7c03080000000000]", "0x00")
+ self.binary80_to_bid64("0", "[80000000000000000001]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("1", "[80000000000000000001]", "[8000000000000001]", "0x32")
+ self.binary80_to_bid64("2", "[80000000000000000001]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("3", "[80000000000000000001]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("4", "[80000000000000000001]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("0", "[80007fffffffffffffff]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("1", "[80007fffffffffffffff]", "[8000000000000001]", "0x32")
+ self.binary80_to_bid64("2", "[80007fffffffffffffff]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("3", "[80007fffffffffffffff]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("4", "[80007fffffffffffffff]", "[8000000000000000]", "0x32")
+ self.binary80_to_bid64("0", "[80018000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("1", "[80018000000000000000]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("2", "[80018000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[80018000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[80018000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[80028000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("1", "[80028000000000000000]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("2", "[80028000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[80028000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[80028000000000000000]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[bacfad267633618a3a0c]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("1", "[bacfad267633618a3a0c]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("2", "[bacfad267633618a3a0c]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[bacfad267633618a3a0c]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[bacfad267633618a3a0c]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("0", "[bad4ea5da4ec2a406826]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("1", "[bad4ea5da4ec2a406826]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("2", "[bad4ea5da4ec2a406826]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("3", "[bad4ea5da4ec2a406826]", "[8000000000000000]", "0x30")
+ self.binary80_to_bid64("4", "[bad4ea5da4ec2a406826]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("0", "[bad4ea5da4ec2a406827]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("1", "[bad4ea5da4ec2a406827]", "[8000000000000002]", "0x30")
+ self.binary80_to_bid64("2", "[bad4ea5da4ec2a406827]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("3", "[bad4ea5da4ec2a406827]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("4", "[bad4ea5da4ec2a406827]", "[8000000000000001]", "0x30")
+ self.binary80_to_bid64("0", "[baefc4aba62571a824d1]", "[8000000006b699bf]", "0x30")
+ self.binary80_to_bid64("1", "[baefc4aba62571a824d1]", "[8000000006b699bf]", "0x30")
+ self.binary80_to_bid64("2", "[baefc4aba62571a824d1]", "[8000000006b699be]", "0x30")
+ self.binary80_to_bid64("3", "[baefc4aba62571a824d1]", "[8000000006b699be]", "0x30")
+ self.binary80_to_bid64("4", "[baefc4aba62571a824d1]", "[8000000006b699bf]", "0x30")
+ self.binary80_to_bid64("0", "[bb008538b653c0e24793]", "[800009184e72a000]", "0x30")
+ self.binary80_to_bid64("1", "[bb008538b653c0e24793]", "[800009184e72a000]", "0x30")
+ self.binary80_to_bid64("2", "[bb008538b653c0e24793]", "[800009184e729fff]", "0x30")
+ self.binary80_to_bid64("3", "[bb008538b653c0e24793]", "[800009184e729fff]", "0x30")
+ self.binary80_to_bid64("4", "[bb008538b653c0e24793]", "[800009184e72a000]", "0x30")
+ self.binary80_to_bid64("0", "[bb008538b653c0e24794]", "[800009184e72a000]", "0x30")
+ self.binary80_to_bid64("1", "[bb008538b653c0e24794]", "[800009184e72a000]", "0x30")
+ self.binary80_to_bid64("2", "[bb008538b653c0e24794]", "[800009184e729fff]", "0x30")
+ self.binary80_to_bid64("3", "[bb008538b653c0e24794]", "[800009184e729fff]", "0x30")
+ self.binary80_to_bid64("4", "[bb008538b653c0e24794]", "[800009184e72a000]", "0x30")
+ self.binary80_to_bid64("0", "[bb03a686e3e8b11ad978]", "[80005af3107a4000]", "0x30")
+ self.binary80_to_bid64("1", "[bb03a686e3e8b11ad978]", "[80005af3107a4000]", "0x30")
+ self.binary80_to_bid64("2", "[bb03a686e3e8b11ad978]", "[80005af3107a3fff]", "0x30")
+ self.binary80_to_bid64("3", "[bb03a686e3e8b11ad978]", "[80005af3107a3fff]", "0x30")
+ self.binary80_to_bid64("4", "[bb03a686e3e8b11ad978]", "[80005af3107a4000]", "0x30")
+ self.binary80_to_bid64("0", "[bb03a686e3e8b11ad979]", "[80005af3107a4000]", "0x30")
+ self.binary80_to_bid64("1", "[bb03a686e3e8b11ad979]", "[80005af3107a4000]", "0x30")
+ self.binary80_to_bid64("2", "[bb03a686e3e8b11ad979]", "[80005af3107a3fff]", "0x30")
+ self.binary80_to_bid64("3", "[bb03a686e3e8b11ad979]", "[80005af3107a3fff]", "0x30")
+ self.binary80_to_bid64("4", "[bb03a686e3e8b11ad979]", "[80005af3107a4000]", "0x30")
+ self.binary80_to_bid64("0", "[bb06d0289ce2dd61ca6d]", "[80038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("1", "[bb06d0289ce2dd61ca6d]", "[80038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("2", "[bb06d0289ce2dd61ca6d]", "[80038d7ea4c67fff]", "0x30")
+ self.binary80_to_bid64("3", "[bb06d0289ce2dd61ca6d]", "[80038d7ea4c67fff]", "0x30")
+ self.binary80_to_bid64("4", "[bb06d0289ce2dd61ca6d]", "[80038d7ea4c68000]", "0x30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("0", "[bb06d0289ce2dd61ca6e]", "[80038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("1", "[bb06d0289ce2dd61ca6e]", "[80038d7ea4c68001]", "0x20")
+ self.binary80_to_bid64("2", "[bb06d0289ce2dd61ca6e]", "[80038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("3", "[bb06d0289ce2dd61ca6e]", "[80038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("4", "[bb06d0289ce2dd61ca6e]", "[80038d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[bb09a6d85597b30af817]", "[8016c7e2e8703024]", "0x20")
+ self.binary80_to_bid64("1", "[bb09a6d85597b30af817]", "[8016c7e2e8703025]", "0x20")
+ self.binary80_to_bid64("2", "[bb09a6d85597b30af817]", "[8016c7e2e8703024]", "0x20")
+ self.binary80_to_bid64("3", "[bb09a6d85597b30af817]", "[8016c7e2e8703024]", "0x20")
+ self.binary80_to_bid64("4", "[bb09a6d85597b30af817]", "[8016c7e2e8703024]", "0x20")
+ self.binary80_to_bid64("0", "[bb0a8219620dca5d1e84]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("1", "[bb0a8219620dca5d1e84]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("2", "[bb0a8219620dca5d1e84]", "[e00386f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("3", "[bb0a8219620dca5d1e84]", "[e00386f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[bb0a8219620dca5d1e84]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[bb0a8219620dca5d1e85]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("1", "[bb0a8219620dca5d1e85]", "[80238d7ea4c68001]", "0x20")
+ self.binary80_to_bid64("2", "[bb0a8219620dca5d1e85]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("3", "[bb0a8219620dca5d1e85]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("4", "[bb0a8219620dca5d1e85]", "[80238d7ea4c68000]", "0x20")
+ self.binary80_to_bid64("0", "[bb228b13472c8260fa84]", "[81065f280e451fc9]", "0x20")
+ self.binary80_to_bid64("1", "[bb228b13472c8260fa84]", "[81065f280e451fc9]", "0x20")
+ self.binary80_to_bid64("2", "[bb228b13472c8260fa84]", "[81065f280e451fc8]", "0x20")
+ self.binary80_to_bid64("3", "[bb228b13472c8260fa84]", "[81065f280e451fc8]", "0x20")
+ self.binary80_to_bid64("4", "[bb228b13472c8260fa84]", "[81065f280e451fc9]", "0x20")
+ self.binary80_to_bid64("0", "[bb3caa2b2e5f1c55a21e]", "[82053b624e83eb9c]", "0x20")
+ self.binary80_to_bid64("1", "[bb3caa2b2e5f1c55a21e]", "[82053b624e83eb9d]", "0x20")
+ self.binary80_to_bid64("2", "[bb3caa2b2e5f1c55a21e]", "[82053b624e83eb9c]", "0x20")
+ self.binary80_to_bid64("3", "[bb3caa2b2e5f1c55a21e]", "[82053b624e83eb9c]", "0x20")
+ self.binary80_to_bid64("4", "[bb3caa2b2e5f1c55a21e]", "[82053b624e83eb9c]", "0x20")
+ self.binary80_to_bid64("0", "[bb56d9dee37bb6bafa26]", "[83047ecfb246820a]", "0x20")
+ self.binary80_to_bid64("1", "[bb56d9dee37bb6bafa26]", "[83047ecfb246820a]", "0x20")
+ self.binary80_to_bid64("2", "[bb56d9dee37bb6bafa26]", "[83047ecfb2468209]", "0x20")
+ self.binary80_to_bid64("3", "[bb56d9dee37bb6bafa26]", "[83047ecfb2468209]", "0x20")
+ self.binary80_to_bid64("4", "[bb56d9dee37bb6bafa26]", "[83047ecfb246820a]", "0x20")
+ self.binary80_to_bid64("0", "[bb70be5c0486d0a8f680]", "[83fa5bc2d0c842dd]", "0x20")
+ self.binary80_to_bid64("1", "[bb70be5c0486d0a8f680]", "[83fa5bc2d0c842de]", "0x20")
+ self.binary80_to_bid64("2", "[bb70be5c0486d0a8f680]", "[83fa5bc2d0c842dd]", "0x20")
+ self.binary80_to_bid64("3", "[bb70be5c0486d0a8f680]", "[83fa5bc2d0c842dd]", "0x20")
+ self.binary80_to_bid64("4", "[bb70be5c0486d0a8f680]", "[83fa5bc2d0c842dd]", "0x20")
+ self.binary80_to_bid64("0", "[bb86c68edda1beac4240]", "[84cb881c76753e6d]", "0x20")
+ self.binary80_to_bid64("1", "[bb86c68edda1beac4240]", "[84cb881c76753e6e]", "0x20")
+ self.binary80_to_bid64("2", "[bb86c68edda1beac4240]", "[84cb881c76753e6d]", "0x20")
+ self.binary80_to_bid64("3", "[bb86c68edda1beac4240]", "[84cb881c76753e6d]", "0x20")
+ self.binary80_to_bid64("4", "[bb86c68edda1beac4240]", "[84cb881c76753e6d]", "0x20")
+ self.binary80_to_bid64("0", "[bba4dc7c57c7910ecc95]", "[85edbfdc607c8ab2]", "0x20")
+ self.binary80_to_bid64("1", "[bba4dc7c57c7910ecc95]", "[85edbfdc607c8ab3]", "0x20")
+ self.binary80_to_bid64("2", "[bba4dc7c57c7910ecc95]", "[85edbfdc607c8ab2]", "0x20")
+ self.binary80_to_bid64("3", "[bba4dc7c57c7910ecc95]", "[85edbfdc607c8ab2]", "0x20")
+ self.binary80_to_bid64("4", "[bba4dc7c57c7910ecc95]", "[85edbfdc607c8ab2]", "0x20")
+ self.binary80_to_bid64("0", "[bbbd95b09d832c311636]", "[86df526514c527f0]", "0x20")
+ self.binary80_to_bid64("1", "[bbbd95b09d832c311636]", "[86df526514c527f0]", "0x20")
+ self.binary80_to_bid64("2", "[bbbd95b09d832c311636]", "[86df526514c527ef]", "0x20")
+ self.binary80_to_bid64("3", "[bbbd95b09d832c311636]", "[86df526514c527ef]", "0x20")
+ self.binary80_to_bid64("4", "[bbbd95b09d832c311636]", "[86df526514c527f0]", "0x20")
+ self.binary80_to_bid64("0", "[bbd8eb169d0d55b9dc1f]", "[87e69a31007c48af]", "0x20")
+ self.binary80_to_bid64("1", "[bbd8eb169d0d55b9dc1f]", "[87e69a31007c48b0]", "0x20")
+ self.binary80_to_bid64("2", "[bbd8eb169d0d55b9dc1f]", "[87e69a31007c48af]", "0x20")
+ self.binary80_to_bid64("3", "[bbd8eb169d0d55b9dc1f]", "[87e69a31007c48af]", "0x20")
+ self.binary80_to_bid64("4", "[bbd8eb169d0d55b9dc1f]", "[87e69a31007c48af]", "0x20")
+ self.binary80_to_bid64("0", "[bbf1828a8a66a3c3ade0]", "[88cc4d36debc101a]", "0x20")
+ self.binary80_to_bid64("1", "[bbf1828a8a66a3c3ade0]", "[88cc4d36debc101b]", "0x20")
+ self.binary80_to_bid64("2", "[bbf1828a8a66a3c3ade0]", "[88cc4d36debc101a]", "0x20")
+ self.binary80_to_bid64("3", "[bbf1828a8a66a3c3ade0]", "[88cc4d36debc101a]", "0x20")
+ self.binary80_to_bid64("4", "[bbf1828a8a66a3c3ade0]", "[88cc4d36debc101a]", "0x20")
+ self.binary80_to_bid64("0", "[bc0ba4b88f8d7381c89c]", "[89ca6ac1bb258907]", "0x20")
+ self.binary80_to_bid64("1", "[bc0ba4b88f8d7381c89c]", "[89ca6ac1bb258907]", "0x20")
+ self.binary80_to_bid64("2", "[bc0ba4b88f8d7381c89c]", "[89ca6ac1bb258906]", "0x20")
+ self.binary80_to_bid64("3", "[bc0ba4b88f8d7381c89c]", "[89ca6ac1bb258906]", "0x20")
+ self.binary80_to_bid64("4", "[bc0ba4b88f8d7381c89c]", "[89ca6ac1bb258907]", "0x20")
+ self.binary80_to_bid64("0", "[bc22bffafe9ada475290]", "[8aaa2f3e2dff48c6]", "0x20")
+ self.binary80_to_bid64("1", "[bc22bffafe9ada475290]", "[8aaa2f3e2dff48c7]", "0x20")
+ self.binary80_to_bid64("2", "[bc22bffafe9ada475290]", "[8aaa2f3e2dff48c6]", "0x20")
+ self.binary80_to_bid64("3", "[bc22bffafe9ada475290]", "[8aaa2f3e2dff48c6]", "0x20")
+ self.binary80_to_bid64("4", "[bc22bffafe9ada475290]", "[8aaa2f3e2dff48c6]", "0x20")
+ self.binary80_to_bid64("0", "[bc3bdeb8e0a97b8b5e20]", "[8ba3f6ef21dd5cd0]", "0x20")
+ self.binary80_to_bid64("1", "[bc3bdeb8e0a97b8b5e20]", "[8ba3f6ef21dd5cd1]", "0x20")
+ self.binary80_to_bid64("2", "[bc3bdeb8e0a97b8b5e20]", "[8ba3f6ef21dd5cd0]", "0x20")
+ self.binary80_to_bid64("3", "[bc3bdeb8e0a97b8b5e20]", "[8ba3f6ef21dd5cd0]", "0x20")
+ self.binary80_to_bid64("4", "[bc3bdeb8e0a97b8b5e20]", "[8ba3f6ef21dd5cd0]", "0x20")
+ self.binary80_to_bid64("0", "[bc568f1c4c7967daa9f0]", "[e32230faa822ffeb]", "0x20")
+ self.binary80_to_bid64("1", "[bc568f1c4c7967daa9f0]", "[e32230faa822ffec]", "0x20")
+ self.binary80_to_bid64("2", "[bc568f1c4c7967daa9f0]", "[e32230faa822ffeb]", "0x20")
+ self.binary80_to_bid64("3", "[bc568f1c4c7967daa9f0]", "[e32230faa822ffeb]", "0x20")
+ self.binary80_to_bid64("4", "[bc568f1c4c7967daa9f0]", "[e32230faa822ffeb]", "0x20")
+ self.binary80_to_bid64("0", "[bc70ce7e49ec3cb0b9d0]", "[e3611b9818a0a8c3]", "0x20")
+ self.binary80_to_bid64("1", "[bc70ce7e49ec3cb0b9d0]", "[e3611b9818a0a8c3]", "0x20")
+ self.binary80_to_bid64("2", "[bc70ce7e49ec3cb0b9d0]", "[e3611b9818a0a8c2]", "0x20")
+ self.binary80_to_bid64("3", "[bc70ce7e49ec3cb0b9d0]", "[e3611b9818a0a8c2]", "0x20")
+ self.binary80_to_bid64("4", "[bc70ce7e49ec3cb0b9d0]", "[e3611b9818a0a8c3]", "0x20")
+ self.binary80_to_bid64("0", "[bc86e1094b5b41903900]", "[8e6f2226e5557ef8]", "0x20")
+ self.binary80_to_bid64("1", "[bc86e1094b5b41903900]", "[8e6f2226e5557ef9]", "0x20")
+ self.binary80_to_bid64("2", "[bc86e1094b5b41903900]", "[8e6f2226e5557ef8]", "0x20")
+ self.binary80_to_bid64("3", "[bc86e1094b5b41903900]", "[8e6f2226e5557ef8]", "0x20")
+ self.binary80_to_bid64("4", "[bc86e1094b5b41903900]", "[8e6f2226e5557ef8]", "0x20")
+ self.binary80_to_bid64("0", "[bca5b97aca56fc870ab4]", "[8f9ac940d7cec47a]", "0x20")
+ self.binary80_to_bid64("1", "[bca5b97aca56fc870ab4]", "[8f9ac940d7cec47b]", "0x20")
+ self.binary80_to_bid64("2", "[bca5b97aca56fc870ab4]", "[8f9ac940d7cec47a]", "0x20")
+ self.binary80_to_bid64("3", "[bca5b97aca56fc870ab4]", "[8f9ac940d7cec47a]", "0x20")
+ self.binary80_to_bid64("4", "[bca5b97aca56fc870ab4]", "[8f9ac940d7cec47a]", "0x20")
+ self.binary80_to_bid64("0", "[bcbfb1080775580797ac]", "[909128382afbdba0]", "0x20")
+ self.binary80_to_bid64("1", "[bcbfb1080775580797ac]", "[909128382afbdba0]", "0x20")
+ self.binary80_to_bid64("2", "[bcbfb1080775580797ac]", "[909128382afbdb9f]", "0x20")
+ self.binary80_to_bid64("3", "[bcbfb1080775580797ac]", "[909128382afbdb9f]", "0x20")
+ self.binary80_to_bid64("4", "[bcbfb1080775580797ac]", "[909128382afbdba0]", "0x20")
+ self.binary80_to_bid64("0", "[bcdbd9b6564b6799fd09]", "[91a5a9f639611c84]", "0x20")
+ self.binary80_to_bid64("1", "[bcdbd9b6564b6799fd09]", "[91a5a9f639611c84]", "0x20")
+ self.binary80_to_bid64("2", "[bcdbd9b6564b6799fd09]", "[91a5a9f639611c83]", "0x20")
+ self.binary80_to_bid64("3", "[bcdbd9b6564b6799fd09]", "[91a5a9f639611c83]", "0x20")
+ self.binary80_to_bid64("4", "[bcdbd9b6564b6799fd09]", "[91a5a9f639611c84]", "0x20")
+ self.binary80_to_bid64("0", "[bcf390d881febcaf0078]", "[9286527334ca282d]", "0x20")
+ self.binary80_to_bid64("1", "[bcf390d881febcaf0078]", "[9286527334ca282e]", "0x20")
+ self.binary80_to_bid64("2", "[bcf390d881febcaf0078]", "[9286527334ca282d]", "0x20")
+ self.binary80_to_bid64("3", "[bcf390d881febcaf0078]", "[9286527334ca282d]", "0x20")
+ self.binary80_to_bid64("4", "[bcf390d881febcaf0078]", "[9286527334ca282d]", "0x20")
+ self.binary80_to_bid64("0", "[bd0a8136dec12a865960]", "[9364bb23b9d681bf]", "0x20")
+ self.binary80_to_bid64("1", "[bd0a8136dec12a865960]", "[9364bb23b9d681bf]", "0x20")
+ self.binary80_to_bid64("2", "[bd0a8136dec12a865960]", "[9364bb23b9d681be]", "0x20")
+ self.binary80_to_bid64("3", "[bd0a8136dec12a865960]", "[9364bb23b9d681be]", "0x20")
+ self.binary80_to_bid64("4", "[bd0a8136dec12a865960]", "[9364bb23b9d681bf]", "0x20")
+ self.binary80_to_bid64("0", "[bd248936678a00726520]", "[e511b6eb980020e3]", "0x20")
+ self.binary80_to_bid64("1", "[bd248936678a00726520]", "[e511b6eb980020e4]", "0x20")
+ self.binary80_to_bid64("2", "[bd248936678a00726520]", "[e511b6eb980020e3]", "0x20")
+ self.binary80_to_bid64("3", "[bd248936678a00726520]", "[e511b6eb980020e3]", "0x20")
+ self.binary80_to_bid64("4", "[bd248936678a00726520]", "[e511b6eb980020e3]", "0x20")
+ self.binary80_to_bid64("0", "[bd3ef5071f162d2f1de0]", "[95640a5431dcd9e6]", "0x20")
+ self.binary80_to_bid64("1", "[bd3ef5071f162d2f1de0]", "[95640a5431dcd9e6]", "0x20")
+ self.binary80_to_bid64("2", "[bd3ef5071f162d2f1de0]", "[95640a5431dcd9e5]", "0x20")
+ self.binary80_to_bid64("3", "[bd3ef5071f162d2f1de0]", "[95640a5431dcd9e5]", "0x20")
+ self.binary80_to_bid64("4", "[bd3ef5071f162d2f1de0]", "[95640a5431dcd9e6]", "0x20")
+ self.binary80_to_bid64("0", "[bd5cf1143441b0ceee77]", "[968444b41ed55afa]", "0x20")
+ self.binary80_to_bid64("1", "[bd5cf1143441b0ceee77]", "[968444b41ed55afa]", "0x20")
+ self.binary80_to_bid64("2", "[bd5cf1143441b0ceee77]", "[968444b41ed55af9]", "0x20")
+ self.binary80_to_bid64("3", "[bd5cf1143441b0ceee77]", "[968444b41ed55af9]", "0x20")
+ self.binary80_to_bid64("4", "[bd5cf1143441b0ceee77]", "[968444b41ed55afa]", "0x20")
+ self.binary80_to_bid64("0", "[bd75bee0ec5b00d77c26]", "[976b57058c4bdf54]", "0x20")
+ self.binary80_to_bid64("1", "[bd75bee0ec5b00d77c26]", "[976b57058c4bdf55]", "0x20")
+ self.binary80_to_bid64("2", "[bd75bee0ec5b00d77c26]", "[976b57058c4bdf54]", "0x20")
+ self.binary80_to_bid64("3", "[bd75bee0ec5b00d77c26]", "[976b57058c4bdf54]", "0x20")
+ self.binary80_to_bid64("4", "[bd75bee0ec5b00d77c26]", "[976b57058c4bdf54]", "0x20")
+ self.binary80_to_bid64("0", "[bd909cb0f7a460b2c378]", "[986c7e8297928a1f]", "0x20")
+ self.binary80_to_bid64("1", "[bd909cb0f7a460b2c378]", "[986c7e8297928a1f]", "0x20")
+ self.binary80_to_bid64("2", "[bd909cb0f7a460b2c378]", "[986c7e8297928a1e]", "0x20")
+ self.binary80_to_bid64("3", "[bd909cb0f7a460b2c378]", "[986c7e8297928a1e]", "0x20")
+ self.binary80_to_bid64("4", "[bd909cb0f7a460b2c378]", "[986c7e8297928a1f]", "0x20")
+ self.binary80_to_bid64("0", "[bdaaf9b4a3169b1d5763]", "[996d5cab5b6fe328]", "0x20")
+ self.binary80_to_bid64("1", "[bdaaf9b4a3169b1d5763]", "[996d5cab5b6fe328]", "0x20")
+ self.binary80_to_bid64("2", "[bdaaf9b4a3169b1d5763]", "[996d5cab5b6fe327]", "0x20")
+ self.binary80_to_bid64("3", "[bdaaf9b4a3169b1d5763]", "[996d5cab5b6fe327]", "0x20")
+ self.binary80_to_bid64("4", "[bdaaf9b4a3169b1d5763]", "[996d5cab5b6fe328]", "0x20")
+ self.binary80_to_bid64("0", "[bdc2a2a54ebce111696c]", "[9a4e9a0d5cdecfe2]", "0x20")
+ self.binary80_to_bid64("1", "[bdc2a2a54ebce111696c]", "[9a4e9a0d5cdecfe2]", "0x20")
+ self.binary80_to_bid64("2", "[bdc2a2a54ebce111696c]", "[9a4e9a0d5cdecfe1]", "0x20")
+ self.binary80_to_bid64("3", "[bdc2a2a54ebce111696c]", "[9a4e9a0d5cdecfe1]", "0x20")
+ self.binary80_to_bid64("4", "[bdc2a2a54ebce111696c]", "[9a4e9a0d5cdecfe2]", "0x20")
+ self.binary80_to_bid64("0", "[bdde82d395e66f0cea3b]", "[9b5f873427cf3c19]", "0x20")
+ self.binary80_to_bid64("1", "[bdde82d395e66f0cea3b]", "[9b5f873427cf3c1a]", "0x20")
+ self.binary80_to_bid64("2", "[bdde82d395e66f0cea3b]", "[9b5f873427cf3c19]", "0x20")
+ self.binary80_to_bid64("3", "[bdde82d395e66f0cea3b]", "[9b5f873427cf3c19]", "0x20")
+ self.binary80_to_bid64("4", "[bdde82d395e66f0cea3b]", "[9b5f873427cf3c19]", "0x20")
+ self.binary80_to_bid64("0", "[bdf6ad05b43d75122d04]", "[9c46fedf2e1c9949]", "0x20")
+ self.binary80_to_bid64("1", "[bdf6ad05b43d75122d04]", "[9c46fedf2e1c9949]", "0x20")
+ self.binary80_to_bid64("2", "[bdf6ad05b43d75122d04]", "[9c46fedf2e1c9948]", "0x20")
+ self.binary80_to_bid64("3", "[bdf6ad05b43d75122d04]", "[9c46fedf2e1c9948]", "0x20")
+ self.binary80_to_bid64("4", "[bdf6ad05b43d75122d04]", "[9c46fedf2e1c9949]", "0x20")
+ self.binary80_to_bid64("0", "[be0dc411d2bd6df7c400]", "[9d26a66777b1cab2]", "0x20")
+ self.binary80_to_bid64("1", "[be0dc411d2bd6df7c400]", "[9d26a66777b1cab3]", "0x20")
+ self.binary80_to_bid64("2", "[be0dc411d2bd6df7c400]", "[9d26a66777b1cab2]", "0x20")
+ self.binary80_to_bid64("3", "[be0dc411d2bd6df7c400]", "[9d26a66777b1cab2]", "0x20")
+ self.binary80_to_bid64("4", "[be0dc411d2bd6df7c400]", "[9d26a66777b1cab2]", "0x20")
+ self.binary80_to_bid64("0", "[be2adc09b1391d4eb10c]", "[9e4401b2c620674a]", "0x20")
+ self.binary80_to_bid64("1", "[be2adc09b1391d4eb10c]", "[9e4401b2c620674a]", "0x20")
+ self.binary80_to_bid64("2", "[be2adc09b1391d4eb10c]", "[9e4401b2c6206749]", "0x20")
+ self.binary80_to_bid64("3", "[be2adc09b1391d4eb10c]", "[9e4401b2c6206749]", "0x20")
+ self.binary80_to_bid64("4", "[be2adc09b1391d4eb10c]", "[9e4401b2c620674a]", "0x20")
+ self.binary80_to_bid64("0", "[be44f2d67f6c2dc41406]", "[9f3dac9678e22808]", "0x20")
+ self.binary80_to_bid64("1", "[be44f2d67f6c2dc41406]", "[9f3dac9678e22809]", "0x20")
+ self.binary80_to_bid64("2", "[be44f2d67f6c2dc41406]", "[9f3dac9678e22808]", "0x20")
+ self.binary80_to_bid64("3", "[be44f2d67f6c2dc41406]", "[9f3dac9678e22808]", "0x20")
+ self.binary80_to_bid64("4", "[be44f2d67f6c2dc41406]", "[9f3dac9678e22808]", "0x20")
+ self.binary80_to_bid64("0", "[be5f9cc57a73e26f9da1]", "[a039b651584e8b20]", "0x20")
+ self.binary80_to_bid64("1", "[be5f9cc57a73e26f9da1]", "[a039b651584e8b21]", "0x20")
+ self.binary80_to_bid64("2", "[be5f9cc57a73e26f9da1]", "[a039b651584e8b20]", "0x20")
+ self.binary80_to_bid64("3", "[be5f9cc57a73e26f9da1]", "[a039b651584e8b20]", "0x20")
+ self.binary80_to_bid64("4", "[be5f9cc57a73e26f9da1]", "[a039b651584e8b20]", "0x20")
+ self.binary80_to_bid64("0", "[be78b8487e6b1dcf6b10]", "[a12a2441a920084f]", "0x20")
+ self.binary80_to_bid64("1", "[be78b8487e6b1dcf6b10]", "[a12a2441a920084f]", "0x20")
+ self.binary80_to_bid64("2", "[be78b8487e6b1dcf6b10]", "[a12a2441a920084e]", "0x20")
+ self.binary80_to_bid64("3", "[be78b8487e6b1dcf6b10]", "[a12a2441a920084e]", "0x20")
+ self.binary80_to_bid64("4", "[be78b8487e6b1dcf6b10]", "[a12a2441a920084f]", "0x20")
+ self.binary80_to_bid64("0", "[be91f1f20e7c88bfec08]", "[a22477bed95d0d9b]", "0x20")
+ self.binary80_to_bid64("1", "[be91f1f20e7c88bfec08]", "[a22477bed95d0d9c]", "0x20")
+ self.binary80_to_bid64("2", "[be91f1f20e7c88bfec08]", "[a22477bed95d0d9b]", "0x20")
+ self.binary80_to_bid64("3", "[be91f1f20e7c88bfec08]", "[a22477bed95d0d9b]", "0x20")
+ self.binary80_to_bid64("4", "[be91f1f20e7c88bfec08]", "[a22477bed95d0d9b]", "0x20")
+ self.binary80_to_bid64("0", "[beabb6e1b45682a843e4]", "[a316a9c9a2ae9ddd]", "0x20")
+ self.binary80_to_bid64("1", "[beabb6e1b45682a843e4]", "[a316a9c9a2ae9ddd]", "0x20")
+ self.binary80_to_bid64("2", "[beabb6e1b45682a843e4]", "[a316a9c9a2ae9ddc]", "0x20")
+ self.binary80_to_bid64("3", "[beabb6e1b45682a843e4]", "[a316a9c9a2ae9ddc]", "0x20")
+ self.binary80_to_bid64("4", "[beabb6e1b45682a843e4]", "[a316a9c9a2ae9ddd]", "0x20")
+ self.binary80_to_bid64("0", "[bec3d7e2f4d4d254b470]", "[a4047d0b99d405af]", "0x20")
+ self.binary80_to_bid64("1", "[bec3d7e2f4d4d254b470]", "[a4047d0b99d405b0]", "0x20")
+ self.binary80_to_bid64("2", "[bec3d7e2f4d4d254b470]", "[a4047d0b99d405af]", "0x20")
+ self.binary80_to_bid64("3", "[bec3d7e2f4d4d254b470]", "[a4047d0b99d405af]", "0x20")
+ self.binary80_to_bid64("4", "[bec3d7e2f4d4d254b470]", "[a4047d0b99d405af]", "0x20")
+ self.binary80_to_bid64("0", "[bedee8168b5d136f10b8]", "[a50679f5f8271159]", "0x20")
+ self.binary80_to_bid64("1", "[bedee8168b5d136f10b8]", "[a50679f5f827115a]", "0x20")
+ self.binary80_to_bid64("2", "[bedee8168b5d136f10b8]", "[a50679f5f8271159]", "0x20")
+ self.binary80_to_bid64("3", "[bedee8168b5d136f10b8]", "[a50679f5f8271159]", "0x20")
+ self.binary80_to_bid64("4", "[bedee8168b5d136f10b8]", "[a50679f5f8271159]", "0x20")
+ self.binary80_to_bid64("0", "[befaf94244b1a34779b2]", "[a612abd30b4e0cd6]", "0x20")
+ self.binary80_to_bid64("1", "[befaf94244b1a34779b2]", "[a612abd30b4e0cd7]", "0x20")
+ self.binary80_to_bid64("2", "[befaf94244b1a34779b2]", "[a612abd30b4e0cd6]", "0x20")
+ self.binary80_to_bid64("3", "[befaf94244b1a34779b2]", "[a612abd30b4e0cd6]", "0x20")
+ self.binary80_to_bid64("4", "[befaf94244b1a34779b2]", "[a612abd30b4e0cd6]", "0x20")
+ self.binary80_to_bid64("0", "[bf14d11edbef3c154254]", "[a70a83266d07ca3a]", "0x20")
+ self.binary80_to_bid64("1", "[bf14d11edbef3c154254]", "[a70a83266d07ca3a]", "0x20")
+ self.binary80_to_bid64("2", "[bf14d11edbef3c154254]", "[a70a83266d07ca39]", "0x20")
+ self.binary80_to_bid64("3", "[bf14d11edbef3c154254]", "[a70a83266d07ca39]", "0x20")
+ self.binary80_to_bid64("4", "[bf14d11edbef3c154254]", "[a70a83266d07ca3a]", "0x20")
+ self.binary80_to_bid64("0", "[bf2ef83ca7a570751409]", "[a8085fd0e51791d3]", "0x20")
+ self.binary80_to_bid64("1", "[bf2ef83ca7a570751409]", "[a8085fd0e51791d3]", "0x20")
+ self.binary80_to_bid64("2", "[bf2ef83ca7a570751409]", "[a8085fd0e51791d2]", "0x20")
+ self.binary80_to_bid64("3", "[bf2ef83ca7a570751409]", "[a8085fd0e51791d2]", "0x20")
+ self.binary80_to_bid64("4", "[bf2ef83ca7a570751409]", "[a8085fd0e51791d3]", "0x20")
+ self.binary80_to_bid64("0", "[bf429aacd69dd35d0680]", "[a8c578b042b65c2c]", "0x20")
+ self.binary80_to_bid64("1", "[bf429aacd69dd35d0680]", "[a8c578b042b65c2d]", "0x20")
+ self.binary80_to_bid64("2", "[bf429aacd69dd35d0680]", "[a8c578b042b65c2c]", "0x20")
+ self.binary80_to_bid64("3", "[bf429aacd69dd35d0680]", "[a8c578b042b65c2c]", "0x20")
+ self.binary80_to_bid64("4", "[bf429aacd69dd35d0680]", "[a8c578b042b65c2c]", "0x20")
+ self.binary80_to_bid64("0", "[bf62fedc6bd977277097]", "[aa03df40a4dfd101]", "0x20")
+ self.binary80_to_bid64("1", "[bf62fedc6bd977277097]", "[aa03df40a4dfd101]", "0x20")
+ self.binary80_to_bid64("2", "[bf62fedc6bd977277097]", "[aa03df40a4dfd100]", "0x20")
+ self.binary80_to_bid64("3", "[bf62fedc6bd977277097]", "[aa03df40a4dfd100]", "0x20")
+ self.binary80_to_bid64("4", "[bf62fedc6bd977277097]", "[aa03df40a4dfd101]", "0x20")
+ self.binary80_to_bid64("0", "[bf7adb362ef81e20b47c]", "[aae5966c3bbd2e75]", "0x20")
+ self.binary80_to_bid64("1", "[bf7adb362ef81e20b47c]", "[aae5966c3bbd2e76]", "0x20")
+ self.binary80_to_bid64("2", "[bf7adb362ef81e20b47c]", "[aae5966c3bbd2e75]", "0x20")
+ self.binary80_to_bid64("3", "[bf7adb362ef81e20b47c]", "[aae5966c3bbd2e75]", "0x20")
+ self.binary80_to_bid64("4", "[bf7adb362ef81e20b47c]", "[aae5966c3bbd2e75]", "0x20")
+ self.binary80_to_bid64("0", "[bf90b9d479db56fff600]", "[abb3de005bd620df]", "0x20")
+ self.binary80_to_bid64("1", "[bf90b9d479db56fff600]", "[abb3de005bd620df]", "0x20")
+ self.binary80_to_bid64("2", "[bf90b9d479db56fff600]", "[abb3de005bd620de]", "0x20")
+ self.binary80_to_bid64("3", "[bf90b9d479db56fff600]", "[abb3de005bd620de]", "0x20")
+ self.binary80_to_bid64("4", "[bf90b9d479db56fff600]", "[abb3de005bd620df]", "0x20")
+ self.binary80_to_bid64("0", "[bfacdfc26528b497be50]", "[acc66bec930b8a75]", "0x20")
+ self.binary80_to_bid64("1", "[bfacdfc26528b497be50]", "[acc66bec930b8a76]", "0x20")
+ self.binary80_to_bid64("2", "[bfacdfc26528b497be50]", "[acc66bec930b8a75]", "0x20")
+ self.binary80_to_bid64("3", "[bfacdfc26528b497be50]", "[acc66bec930b8a75]", "0x20")
+ self.binary80_to_bid64("4", "[bfacdfc26528b497be50]", "[acc66bec930b8a75]", "0x20")
+ self.binary80_to_bid64("0", "[bfc990ca36dde8ce8a1d]", "[add64ef45e853920]", "0x20")
+ self.binary80_to_bid64("1", "[bfc990ca36dde8ce8a1d]", "[add64ef45e853920]", "0x20")
+ self.binary80_to_bid64("2", "[bfc990ca36dde8ce8a1d]", "[add64ef45e85391f]", "0x20")
+ self.binary80_to_bid64("3", "[bfc990ca36dde8ce8a1d]", "[add64ef45e85391f]", "0x20")
+ self.binary80_to_bid64("4", "[bfc990ca36dde8ce8a1d]", "[add64ef45e853920]", "0x20")
+ self.binary80_to_bid64("0", "[bfe3e27000aa265fb237]", "[aed769c040af40fc]", "0x20")
+ self.binary80_to_bid64("1", "[bfe3e27000aa265fb237]", "[aed769c040af40fc]", "0x20")
+ self.binary80_to_bid64("2", "[bfe3e27000aa265fb237]", "[aed769c040af40fb]", "0x20")
+ self.binary80_to_bid64("3", "[bfe3e27000aa265fb237]", "[aed769c040af40fb]", "0x20")
+ self.binary80_to_bid64("4", "[bfe3e27000aa265fb237]", "[aed769c040af40fc]", "0x20")
+ self.binary80_to_bid64("0", "[bffad000000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("1", "[bffad000000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("2", "[bffad000000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("3", "[bffad000000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("4", "[bffad000000000000000]", "[b0c00000004d7c6d]", "0x00")
+ self.binary80_to_bid64("0", "[bffdffff2ebe83265fbf]", "[afd1c36ab2bf3dd2]", "0x20")
+ self.binary80_to_bid64("1", "[bffdffff2ebe83265fbf]", "[afd1c36ab2bf3dd2]", "0x20")
+ self.binary80_to_bid64("2", "[bffdffff2ebe83265fbf]", "[afd1c36ab2bf3dd1]", "0x20")
+ self.binary80_to_bid64("3", "[bffdffff2ebe83265fbf]", "[afd1c36ab2bf3dd1]", "0x20")
+ self.binary80_to_bid64("4", "[bffdffff2ebe83265fbf]", "[afd1c36ab2bf3dd2]", "0x20")
+ self.binary80_to_bid64("0", "[bfff8000000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary80_to_bid64("1", "[bfff8000000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary80_to_bid64("2", "[bfff8000000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary80_to_bid64("3", "[bfff8000000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary80_to_bid64("4", "[bfff8000000000000000]", "[b1c0000000000001]", "0x00")
+ self.binary80_to_bid64("0", "[bfffc000000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary80_to_bid64("1", "[bfffc000000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary80_to_bid64("2", "[bfffc000000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary80_to_bid64("3", "[bfffc000000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary80_to_bid64("4", "[bfffc000000000000000]", "[b1a000000000000f]", "0x00")
+ self.binary80_to_bid64("0", "[c0058000000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary80_to_bid64("1", "[c0058000000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary80_to_bid64("2", "[c0058000000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary80_to_bid64("3", "[c0058000000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary80_to_bid64("4", "[c0058000000000000000]", "[b1c0000000000040]", "0x00")
+ self.binary80_to_bid64("0", "[c008f9c0000000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary80_to_bid64("1", "[c008f9c0000000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary80_to_bid64("2", "[c008f9c0000000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary80_to_bid64("3", "[c008f9c0000000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary80_to_bid64("4", "[c008f9c0000000000000]", "[b1c00000000003e7]", "0x00")
+ self.binary80_to_bid64("0", "[c008fa00000000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary80_to_bid64("1", "[c008fa00000000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary80_to_bid64("2", "[c008fa00000000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary80_to_bid64("3", "[c008fa00000000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary80_to_bid64("4", "[c008fa00000000000000]", "[b1c00000000003e8]", "0x00")
+ self.binary80_to_bid64("0", "[c017ffffffffdd16f1df]", "[b0cbebc1fffe5fd6]", "0x20")
+ self.binary80_to_bid64("1", "[c017ffffffffdd16f1df]", "[b0cbebc1fffe5fd6]", "0x20")
+ self.binary80_to_bid64("2", "[c017ffffffffdd16f1df]", "[b0cbebc1fffe5fd5]", "0x20")
+ self.binary80_to_bid64("3", "[c017ffffffffdd16f1df]", "[b0cbebc1fffe5fd5]", "0x20")
+ self.binary80_to_bid64("4", "[c017ffffffffdd16f1df]", "[b0cbebc1fffe5fd6]", "0x20")
+ self.binary80_to_bid64("0", "[c031e35fa9319ffff333]", "[b1c71afd498d0000]", "0x20")
+ self.binary80_to_bid64("1", "[c031e35fa9319ffff333]", "[b1c71afd498d0000]", "0x20")
+ self.binary80_to_bid64("2", "[c031e35fa9319ffff333]", "[b1c71afd498cffff]", "0x20")
+ self.binary80_to_bid64("3", "[c031e35fa9319ffff333]", "[b1c71afd498cffff]", "0x20")
+ self.binary80_to_bid64("4", "[c031e35fa9319ffff333]", "[b1c71afd498d0000]", "0x20")
+ self.binary80_to_bid64("0", "[c04bffffffffffff2fb3]", "[b2c55e63b88c230a]", "0x20")
+ self.binary80_to_bid64("1", "[c04bffffffffffff2fb3]", "[b2c55e63b88c230b]", "0x20")
+ self.binary80_to_bid64("2", "[c04bffffffffffff2fb3]", "[b2c55e63b88c230a]", "0x20")
+ self.binary80_to_bid64("3", "[c04bffffffffffff2fb3]", "[b2c55e63b88c230a]", "0x20")
+ self.binary80_to_bid64("4", "[c04bffffffffffff2fb3]", "[b2c55e63b88c230a]", "0x20")
+ self.binary80_to_bid64("0", "[c063c9f2c9cc4aaac6bc]", "[b3a71afd49867709]", "0x20")
+ self.binary80_to_bid64("1", "[c063c9f2c9cc4aaac6bc]", "[b3a71afd49867709]", "0x20")
+ self.binary80_to_bid64("2", "[c063c9f2c9cc4aaac6bc]", "[b3a71afd49867708]", "0x20")
+ self.binary80_to_bid64("3", "[c063c9f2c9cc4aaac6bc]", "[b3a71afd49867708]", "0x20")
+ self.binary80_to_bid64("4", "[c063c9f2c9cc4aaac6bc]", "[b3a71afd49867709]", "0x20")
+ self.binary80_to_bid64("0", "[c07af0912a5886ac9e40]", "[b48719ac5a847489]", "0x20")
+ self.binary80_to_bid64("1", "[c07af0912a5886ac9e40]", "[b48719ac5a84748a]", "0x20")
+ self.binary80_to_bid64("2", "[c07af0912a5886ac9e40]", "[b48719ac5a847489]", "0x20")
+ self.binary80_to_bid64("3", "[c07af0912a5886ac9e40]", "[b48719ac5a847489]", "0x20")
+ self.binary80_to_bid64("4", "[c07af0912a5886ac9e40]", "[b48719ac5a847489]", "0x20")
+ self.binary80_to_bid64("0", "[c098ea076240a41c5bff]", "[b5a76aaae3f4a7cc]", "0x20")
+ self.binary80_to_bid64("1", "[c098ea076240a41c5bff]", "[b5a76aaae3f4a7cc]", "0x20")
+ self.binary80_to_bid64("2", "[c098ea076240a41c5bff]", "[b5a76aaae3f4a7cb]", "0x20")
+ self.binary80_to_bid64("3", "[c098ea076240a41c5bff]", "[b5a76aaae3f4a7cb]", "0x20")
+ self.binary80_to_bid64("4", "[c098ea076240a41c5bff]", "[b5a76aaae3f4a7cc]", "0x20")
+ self.binary80_to_bid64("0", "[c0b2d6c2e9668daaf5e3]", "[b6a49145aad95a50]", "0x20")
+ self.binary80_to_bid64("1", "[c0b2d6c2e9668daaf5e3]", "[b6a49145aad95a51]", "0x20")
+ self.binary80_to_bid64("2", "[c0b2d6c2e9668daaf5e3]", "[b6a49145aad95a50]", "0x20")
+ self.binary80_to_bid64("3", "[c0b2d6c2e9668daaf5e3]", "[b6a49145aad95a50]", "0x20")
+ self.binary80_to_bid64("4", "[c0b2d6c2e9668daaf5e3]", "[b6a49145aad95a50]", "0x20")
+ self.binary80_to_bid64("0", "[c0ccf48babfea1959ba6]", "[ede2e7183912c82e]", "0x20")
+ self.binary80_to_bid64("1", "[c0ccf48babfea1959ba6]", "[ede2e7183912c82f]", "0x20")
+ self.binary80_to_bid64("2", "[c0ccf48babfea1959ba6]", "[ede2e7183912c82e]", "0x20")
+ self.binary80_to_bid64("3", "[c0ccf48babfea1959ba6]", "[ede2e7183912c82e]", "0x20")
+ self.binary80_to_bid64("4", "[c0ccf48babfea1959ba6]", "[ede2e7183912c82e]", "0x20")
+ self.binary80_to_bid64("0", "[c0e5debed34ce4fe857c]", "[b88aaad9ce1cd339]", "0x20")
+ self.binary80_to_bid64("1", "[c0e5debed34ce4fe857c]", "[b88aaad9ce1cd339]", "0x20")
+ self.binary80_to_bid64("2", "[c0e5debed34ce4fe857c]", "[b88aaad9ce1cd338]", "0x20")
+ self.binary80_to_bid64("3", "[c0e5debed34ce4fe857c]", "[b88aaad9ce1cd338]", "0x20")
+ self.binary80_to_bid64("4", "[c0e5debed34ce4fe857c]", "[b88aaad9ce1cd339]", "0x20")
+ self.binary80_to_bid64("0", "[c0ffc1dc4d025f934e96]", "[b9863afdf9d06726]", "0x20")
+ self.binary80_to_bid64("1", "[c0ffc1dc4d025f934e96]", "[b9863afdf9d06727]", "0x20")
+ self.binary80_to_bid64("2", "[c0ffc1dc4d025f934e96]", "[b9863afdf9d06726]", "0x20")
+ self.binary80_to_bid64("3", "[c0ffc1dc4d025f934e96]", "[b9863afdf9d06726]", "0x20")
+ self.binary80_to_bid64("4", "[c0ffc1dc4d025f934e96]", "[b9863afdf9d06726]", "0x20")
+ self.binary80_to_bid64("0", "[c11a8f9e46057ca398ef]", "[ba8631f263ed14d9]", "0x20")
+ self.binary80_to_bid64("1", "[c11a8f9e46057ca398ef]", "[ba8631f263ed14da]", "0x20")
+ self.binary80_to_bid64("2", "[c11a8f9e46057ca398ef]", "[ba8631f263ed14d9]", "0x20")
+ self.binary80_to_bid64("3", "[c11a8f9e46057ca398ef]", "[ba8631f263ed14d9]", "0x20")
+ self.binary80_to_bid64("4", "[c11a8f9e46057ca398ef]", "[ba8631f263ed14d9]", "0x20")
+ self.binary80_to_bid64("0", "[c12ef3db81ba85b06740]", "[bb4b07ad24ad8cd5]", "0x20")
+ self.binary80_to_bid64("1", "[c12ef3db81ba85b06740]", "[bb4b07ad24ad8cd5]", "0x20")
+ self.binary80_to_bid64("2", "[c12ef3db81ba85b06740]", "[bb4b07ad24ad8cd4]", "0x20")
+ self.binary80_to_bid64("3", "[c12ef3db81ba85b06740]", "[bb4b07ad24ad8cd4]", "0x20")
+ self.binary80_to_bid64("4", "[c12ef3db81ba85b06740]", "[bb4b07ad24ad8cd5]", "0x20")
+ self.binary80_to_bid64("0", "[c14aee5aa258929b7af0]", "[bc5cf0b009fae285]", "0x20")
+ self.binary80_to_bid64("1", "[c14aee5aa258929b7af0]", "[bc5cf0b009fae286]", "0x20")
+ self.binary80_to_bid64("2", "[c14aee5aa258929b7af0]", "[bc5cf0b009fae285]", "0x20")
+ self.binary80_to_bid64("3", "[c14aee5aa258929b7af0]", "[bc5cf0b009fae285]", "0x20")
+ self.binary80_to_bid64("4", "[c14aee5aa258929b7af0]", "[bc5cf0b009fae285]", "0x20")
+ self.binary80_to_bid64("0", "[c166fbb2a2869142619a]", "[bd68341738bcdb68]", "0x20")
+ self.binary80_to_bid64("1", "[c166fbb2a2869142619a]", "[bd68341738bcdb68]", "0x20")
+ self.binary80_to_bid64("2", "[c166fbb2a2869142619a]", "[bd68341738bcdb67]", "0x20")
+ self.binary80_to_bid64("3", "[c166fbb2a2869142619a]", "[bd68341738bcdb67]", "0x20")
+ self.binary80_to_bid64("4", "[c166fbb2a2869142619a]", "[bd68341738bcdb68]", "0x20")
+ self.binary80_to_bid64("0", "[c181ad23162b6823b1a2]", "[be6792ea003766ce]", "0x20")
+ self.binary80_to_bid64("1", "[c181ad23162b6823b1a2]", "[be6792ea003766ce]", "0x20")
+ self.binary80_to_bid64("2", "[c181ad23162b6823b1a2]", "[be6792ea003766cd]", "0x20")
+ self.binary80_to_bid64("3", "[c181ad23162b6823b1a2]", "[be6792ea003766cd]", "0x20")
+ self.binary80_to_bid64("4", "[c181ad23162b6823b1a2]", "[be6792ea003766ce]", "0x20")
+ self.binary80_to_bid64("0", "[c19be3604ebc94172967]", "[bf66accf0137f63b]", "0x20")
+ self.binary80_to_bid64("1", "[c19be3604ebc94172967]", "[bf66accf0137f63c]", "0x20")
+ self.binary80_to_bid64("2", "[c19be3604ebc94172967]", "[bf66accf0137f63b]", "0x20")
+ self.binary80_to_bid64("3", "[c19be3604ebc94172967]", "[bf66accf0137f63b]", "0x20")
+ self.binary80_to_bid64("4", "[c19be3604ebc94172967]", "[bf66accf0137f63b]", "0x20")
+ self.binary80_to_bid64("0", "[c1b5fb1911d7ca02f950]", "[c064f266cc325999]", "0x20")
+ self.binary80_to_bid64("1", "[c1b5fb1911d7ca02f950]", "[c064f266cc325999]", "0x20")
+ self.binary80_to_bid64("2", "[c1b5fb1911d7ca02f950]", "[c064f266cc325998]", "0x20")
+ self.binary80_to_bid64("3", "[c1b5fb1911d7ca02f950]", "[c064f266cc325998]", "0x20")
+ self.binary80_to_bid64("4", "[c1b5fb1911d7ca02f950]", "[c064f266cc325999]", "0x20")
+ self.binary80_to_bid64("0", "[c1cee5e485662e089182]", "[c14f327b2513f8f6]", "0x20")
+ self.binary80_to_bid64("1", "[c1cee5e485662e089182]", "[c14f327b2513f8f7]", "0x20")
+ self.binary80_to_bid64("2", "[c1cee5e485662e089182]", "[c14f327b2513f8f6]", "0x20")
+ self.binary80_to_bid64("3", "[c1cee5e485662e089182]", "[c14f327b2513f8f6]", "0x20")
+ self.binary80_to_bid64("4", "[c1cee5e485662e089182]", "[c14f327b2513f8f6]", "0x20")
+ self.binary80_to_bid64("0", "[c1e5dab5e103aea5f990]", "[c22c20d42cfe1be1]", "0x20")
+ self.binary80_to_bid64("1", "[c1e5dab5e103aea5f990]", "[c22c20d42cfe1be2]", "0x20")
+ self.binary80_to_bid64("2", "[c1e5dab5e103aea5f990]", "[c22c20d42cfe1be1]", "0x20")
+ self.binary80_to_bid64("3", "[c1e5dab5e103aea5f990]", "[c22c20d42cfe1be1]", "0x20")
+ self.binary80_to_bid64("4", "[c1e5dab5e103aea5f990]", "[c22c20d42cfe1be1]", "0x20")
+ self.binary80_to_bid64("0", "[c1ffb6bae33c19ec2cd0]", "[c326ccd611248133]", "0x20")
+ self.binary80_to_bid64("1", "[c1ffb6bae33c19ec2cd0]", "[c326ccd611248134]", "0x20")
+ self.binary80_to_bid64("2", "[c1ffb6bae33c19ec2cd0]", "[c326ccd611248133]", "0x20")
+ self.binary80_to_bid64("3", "[c1ffb6bae33c19ec2cd0]", "[c326ccd611248133]", "0x20")
+ self.binary80_to_bid64("4", "[c1ffb6bae33c19ec2cd0]", "[c326ccd611248133]", "0x20")
+ self.binary80_to_bid64("0", "[c21a808f96b988b7a000]", "[c4266bde0590da38]", "0x20")
+ self.binary80_to_bid64("1", "[c21a808f96b988b7a000]", "[c4266bde0590da39]", "0x20")
+ self.binary80_to_bid64("2", "[c21a808f96b988b7a000]", "[c4266bde0590da38]", "0x20")
+ self.binary80_to_bid64("3", "[c21a808f96b988b7a000]", "[c4266bde0590da38]", "0x20")
+ self.binary80_to_bid64("4", "[c21a808f96b988b7a000]", "[c4266bde0590da38]", "0x20")
+ self.binary80_to_bid64("0", "[c2349f940b1d1201cbb8]", "[c525595743d96006]", "0x20")
+ self.binary80_to_bid64("1", "[c2349f940b1d1201cbb8]", "[c525595743d96007]", "0x20")
+ self.binary80_to_bid64("2", "[c2349f940b1d1201cbb8]", "[c525595743d96006]", "0x20")
+ self.binary80_to_bid64("3", "[c2349f940b1d1201cbb8]", "[c525595743d96006]", "0x20")
+ self.binary80_to_bid64("4", "[c2349f940b1d1201cbb8]", "[c525595743d96006]", "0x20")
+ self.binary80_to_bid64("0", "[c250a1ec36e9538932f5]", "[c62e91cc7da819ea]", "0x20")
+ self.binary80_to_bid64("1", "[c250a1ec36e9538932f5]", "[c62e91cc7da819eb]", "0x20")
+ self.binary80_to_bid64("2", "[c250a1ec36e9538932f5]", "[c62e91cc7da819ea]", "0x20")
+ self.binary80_to_bid64("3", "[c250a1ec36e9538932f5]", "[c62e91cc7da819ea]", "0x20")
+ self.binary80_to_bid64("4", "[c250a1ec36e9538932f5]", "[c62e91cc7da819ea]", "0x20")
+ self.binary80_to_bid64("0", "[c266ef46d22441be8e90]", "[c70907bbe25e6d30]", "0x20")
+ self.binary80_to_bid64("1", "[c266ef46d22441be8e90]", "[c70907bbe25e6d31]", "0x20")
+ self.binary80_to_bid64("2", "[c266ef46d22441be8e90]", "[c70907bbe25e6d30]", "0x20")
+ self.binary80_to_bid64("3", "[c266ef46d22441be8e90]", "[c70907bbe25e6d30]", "0x20")
+ self.binary80_to_bid64("4", "[c266ef46d22441be8e90]", "[c70907bbe25e6d30]", "0x20")
+ self.binary80_to_bid64("0", "[c28490dd1e4a4fb57ede]", "[c825dec9308b0287]", "0x20")
+ self.binary80_to_bid64("1", "[c28490dd1e4a4fb57ede]", "[c825dec9308b0287]", "0x20")
+ self.binary80_to_bid64("2", "[c28490dd1e4a4fb57ede]", "[c825dec9308b0286]", "0x20")
+ self.binary80_to_bid64("3", "[c28490dd1e4a4fb57ede]", "[c825dec9308b0286]", "0x20")
+ self.binary80_to_bid64("4", "[c28490dd1e4a4fb57ede]", "[c825dec9308b0287]", "0x20")
+ self.binary80_to_bid64("0", "[c29ecf256d88c1a57033]", "[c925a218a8db6ad2]", "0x20")
+ self.binary80_to_bid64("1", "[c29ecf256d88c1a57033]", "[c925a218a8db6ad3]", "0x20")
+ self.binary80_to_bid64("2", "[c29ecf256d88c1a57033]", "[c925a218a8db6ad2]", "0x20")
+ self.binary80_to_bid64("3", "[c29ecf256d88c1a57033]", "[c925a218a8db6ad2]", "0x20")
+ self.binary80_to_bid64("4", "[c29ecf256d88c1a57033]", "[c925a218a8db6ad2]", "0x20")
+ self.binary80_to_bid64("0", "[c2b586c89ba512509910]", "[c9febf42e134cc8e]", "0x20")
+ self.binary80_to_bid64("1", "[c2b586c89ba512509910]", "[c9febf42e134cc8e]", "0x20")
+ self.binary80_to_bid64("2", "[c2b586c89ba512509910]", "[c9febf42e134cc8d]", "0x20")
+ self.binary80_to_bid64("3", "[c2b586c89ba512509910]", "[c9febf42e134cc8d]", "0x20")
+ self.binary80_to_bid64("4", "[c2b586c89ba512509910]", "[c9febf42e134cc8e]", "0x20")
+ self.binary80_to_bid64("0", "[c2cfcc22bc700e771ab8]", "[caff404b99afac5e]", "0x20")
+ self.binary80_to_bid64("1", "[c2cfcc22bc700e771ab8]", "[caff404b99afac5e]", "0x20")
+ self.binary80_to_bid64("2", "[c2cfcc22bc700e771ab8]", "[caff404b99afac5d]", "0x20")
+ self.binary80_to_bid64("3", "[c2cfcc22bc700e771ab8]", "[caff404b99afac5d]", "0x20")
+ self.binary80_to_bid64("4", "[c2cfcc22bc700e771ab8]", "[caff404b99afac5e]", "0x20")
+ self.binary80_to_bid64("0", "[c2e7dfea80e2008e6860]", "[cbe5c04932ac89f6]", "0x20")
+ self.binary80_to_bid64("1", "[c2e7dfea80e2008e6860]", "[cbe5c04932ac89f6]", "0x20")
+ self.binary80_to_bid64("2", "[c2e7dfea80e2008e6860]", "[cbe5c04932ac89f5]", "0x20")
+ self.binary80_to_bid64("3", "[c2e7dfea80e2008e6860]", "[cbe5c04932ac89f5]", "0x20")
+ self.binary80_to_bid64("4", "[c2e7dfea80e2008e6860]", "[cbe5c04932ac89f6]", "0x20")
+ self.binary80_to_bid64("0", "[c3029a28ff9d630c1850]", "[cce55078554e0b8b]", "0x20")
+ self.binary80_to_bid64("1", "[c3029a28ff9d630c1850]", "[cce55078554e0b8c]", "0x20")
+ self.binary80_to_bid64("2", "[c3029a28ff9d630c1850]", "[cce55078554e0b8b]", "0x20")
+ self.binary80_to_bid64("3", "[c3029a28ff9d630c1850]", "[cce55078554e0b8b]", "0x20")
+ self.binary80_to_bid64("4", "[c3029a28ff9d630c1850]", "[cce55078554e0b8b]", "0x20")
+ self.binary80_to_bid64("0", "[c31ff8733f964ce4f2b9]", "[ce0499226ab2079e]", "0x20")
+ self.binary80_to_bid64("1", "[c31ff8733f964ce4f2b9]", "[ce0499226ab2079e]", "0x20")
+ self.binary80_to_bid64("2", "[c31ff8733f964ce4f2b9]", "[ce0499226ab2079d]", "0x20")
+ self.binary80_to_bid64("3", "[c31ff8733f964ce4f2b9]", "[ce0499226ab2079d]", "0x20")
+ self.binary80_to_bid64("4", "[c31ff8733f964ce4f2b9]", "[ce0499226ab2079e]", "0x20")
+ self.binary80_to_bid64("0", "[c338f0fa39b871d489be]", "[ceeef701f51e2ccc]", "0x20")
+ self.binary80_to_bid64("1", "[c338f0fa39b871d489be]", "[ceeef701f51e2ccd]", "0x20")
+ self.binary80_to_bid64("2", "[c338f0fa39b871d489be]", "[ceeef701f51e2ccc]", "0x20")
+ self.binary80_to_bid64("3", "[c338f0fa39b871d489be]", "[ceeef701f51e2ccc]", "0x20")
+ self.binary80_to_bid64("4", "[c338f0fa39b871d489be]", "[ceeef701f51e2ccc]", "0x20")
+ self.binary80_to_bid64("0", "[c353ce10afdd855e48ba]", "[cff12cf22b830b65]", "0x20")
+ self.binary80_to_bid64("1", "[c353ce10afdd855e48ba]", "[cff12cf22b830b66]", "0x20")
+ self.binary80_to_bid64("2", "[c353ce10afdd855e48ba]", "[cff12cf22b830b65]", "0x20")
+ self.binary80_to_bid64("3", "[c353ce10afdd855e48ba]", "[cff12cf22b830b65]", "0x20")
+ self.binary80_to_bid64("4", "[c353ce10afdd855e48ba]", "[cff12cf22b830b65]", "0x20")
+ self.binary80_to_bid64("0", "[c36ca6464d922292e53e]", "[d0e4a67b10c63c9c]", "0x20")
+ self.binary80_to_bid64("1", "[c36ca6464d922292e53e]", "[d0e4a67b10c63c9d]", "0x20")
+ self.binary80_to_bid64("2", "[c36ca6464d922292e53e]", "[d0e4a67b10c63c9c]", "0x20")
+ self.binary80_to_bid64("3", "[c36ca6464d922292e53e]", "[d0e4a67b10c63c9c]", "0x20")
+ self.binary80_to_bid64("4", "[c36ca6464d922292e53e]", "[d0e4a67b10c63c9c]", "0x20")
+ self.binary80_to_bid64("0", "[c386b10b4b44282bf1b8]", "[f4713aa28315934b]", "0x20")
+ self.binary80_to_bid64("1", "[c386b10b4b44282bf1b8]", "[f4713aa28315934b]", "0x20")
+ self.binary80_to_bid64("2", "[c386b10b4b44282bf1b8]", "[f4713aa28315934a]", "0x20")
+ self.binary80_to_bid64("3", "[c386b10b4b44282bf1b8]", "[f4713aa28315934a]", "0x20")
+ self.binary80_to_bid64("4", "[c386b10b4b44282bf1b8]", "[f4713aa28315934b]", "0x20")
+ self.binary80_to_bid64("0", "[c3a1d2830cb891bd34f3]", "[d2e54d9269d742d0]", "0x20")
+ self.binary80_to_bid64("1", "[c3a1d2830cb891bd34f3]", "[d2e54d9269d742d1]", "0x20")
+ self.binary80_to_bid64("2", "[c3a1d2830cb891bd34f3]", "[d2e54d9269d742d0]", "0x20")
+ self.binary80_to_bid64("3", "[c3a1d2830cb891bd34f3]", "[d2e54d9269d742d0]", "0x20")
+ self.binary80_to_bid64("4", "[c3a1d2830cb891bd34f3]", "[d2e54d9269d742d0]", "0x20")
+ self.binary80_to_bid64("0", "[c3b9a18c364670f8a8b0]", "[d3c6d3dc60b74b14]", "0x20")
+ self.binary80_to_bid64("1", "[c3b9a18c364670f8a8b0]", "[d3c6d3dc60b74b14]", "0x20")
+ self.binary80_to_bid64("2", "[c3b9a18c364670f8a8b0]", "[d3c6d3dc60b74b13]", "0x20")
+ self.binary80_to_bid64("3", "[c3b9a18c364670f8a8b0]", "[d3c6d3dc60b74b13]", "0x20")
+ self.binary80_to_bid64("4", "[c3b9a18c364670f8a8b0]", "[d3c6d3dc60b74b14]", "0x20")
+ self.binary80_to_bid64("0", "[c3d4f67b721d4fa22f21]", "[d4cdfb5408e69bfe]", "0x20")
+ self.binary80_to_bid64("1", "[c3d4f67b721d4fa22f21]", "[d4cdfb5408e69bff]", "0x20")
+ self.binary80_to_bid64("2", "[c3d4f67b721d4fa22f21]", "[d4cdfb5408e69bfe]", "0x20")
+ self.binary80_to_bid64("3", "[c3d4f67b721d4fa22f21]", "[d4cdfb5408e69bfe]", "0x20")
+ self.binary80_to_bid64("4", "[c3d4f67b721d4fa22f21]", "[d4cdfb5408e69bfe]", "0x20")
+ self.binary80_to_bid64("0", "[c3ee97e933a1015c4087]", "[d5c5c86b7b6310d2]", "0x20")
+ self.binary80_to_bid64("1", "[c3ee97e933a1015c4087]", "[d5c5c86b7b6310d2]", "0x20")
+ self.binary80_to_bid64("2", "[c3ee97e933a1015c4087]", "[d5c5c86b7b6310d1]", "0x20")
+ self.binary80_to_bid64("3", "[c3ee97e933a1015c4087]", "[d5c5c86b7b6310d1]", "0x20")
+ self.binary80_to_bid64("4", "[c3ee97e933a1015c4087]", "[d5c5c86b7b6310d2]", "0x20")
+ self.binary80_to_bid64("0", "[c408eb769d1d9ba67c1b]", "[d6c603ec4c01ae22]", "0x20")
+ self.binary80_to_bid64("1", "[c408eb769d1d9ba67c1b]", "[d6c603ec4c01ae23]", "0x20")
+ self.binary80_to_bid64("2", "[c408eb769d1d9ba67c1b]", "[d6c603ec4c01ae22]", "0x20")
+ self.binary80_to_bid64("3", "[c408eb769d1d9ba67c1b]", "[d6c603ec4c01ae22]", "0x20")
+ self.binary80_to_bid64("4", "[c408eb769d1d9ba67c1b]", "[d6c603ec4c01ae22]", "0x20")
+ self.binary80_to_bid64("0", "[c41fddcebb01c06bfed0]", "[d7a4c0dd1abe1772]", "0x20")
+ self.binary80_to_bid64("1", "[c41fddcebb01c06bfed0]", "[d7a4c0dd1abe1773]", "0x20")
+ self.binary80_to_bid64("2", "[c41fddcebb01c06bfed0]", "[d7a4c0dd1abe1772]", "0x20")
+ self.binary80_to_bid64("3", "[c41fddcebb01c06bfed0]", "[d7a4c0dd1abe1772]", "0x20")
+ self.binary80_to_bid64("4", "[c41fddcebb01c06bfed0]", "[d7a4c0dd1abe1772]", "0x20")
+ self.binary80_to_bid64("0", "[c43bf39d3d8630602a12]", "[d8ae03a251cb5127]", "0x20")
+ self.binary80_to_bid64("1", "[c43bf39d3d8630602a12]", "[d8ae03a251cb5127]", "0x20")
+ self.binary80_to_bid64("2", "[c43bf39d3d8630602a12]", "[d8ae03a251cb5126]", "0x20")
+ self.binary80_to_bid64("3", "[c43bf39d3d8630602a12]", "[d8ae03a251cb5126]", "0x20")
+ self.binary80_to_bid64("4", "[c43bf39d3d8630602a12]", "[d8ae03a251cb5127]", "0x20")
+ self.binary80_to_bid64("0", "[c4549821baad85f95eec]", "[d99d5d881f4da271]", "0x20")
+ self.binary80_to_bid64("1", "[c4549821baad85f95eec]", "[d99d5d881f4da271]", "0x20")
+ self.binary80_to_bid64("2", "[c4549821baad85f95eec]", "[d99d5d881f4da270]", "0x20")
+ self.binary80_to_bid64("3", "[c4549821baad85f95eec]", "[d99d5d881f4da270]", "0x20")
+ self.binary80_to_bid64("4", "[c4549821baad85f95eec]", "[d99d5d881f4da271]", "0x20")
+ self.binary80_to_bid64("0", "[c46f8f1b5d29c1a1bb08]", "[daa3b5215926e5b4]", "0x20")
+ self.binary80_to_bid64("1", "[c46f8f1b5d29c1a1bb08]", "[daa3b5215926e5b4]", "0x20")
+ self.binary80_to_bid64("2", "[c46f8f1b5d29c1a1bb08]", "[daa3b5215926e5b3]", "0x20")
+ self.binary80_to_bid64("3", "[c46f8f1b5d29c1a1bb08]", "[daa3b5215926e5b3]", "0x20")
+ self.binary80_to_bid64("4", "[c46f8f1b5d29c1a1bb08]", "[daa3b5215926e5b4]", "0x20")
+ self.binary80_to_bid64("0", "[c48799d474fe42151d78]", "[db86afb17e9ee21c]", "0x20")
+ self.binary80_to_bid64("1", "[c48799d474fe42151d78]", "[db86afb17e9ee21d]", "0x20")
+ self.binary80_to_bid64("2", "[c48799d474fe42151d78]", "[db86afb17e9ee21c]", "0x20")
+ self.binary80_to_bid64("3", "[c48799d474fe42151d78]", "[db86afb17e9ee21c]", "0x20")
+ self.binary80_to_bid64("4", "[c48799d474fe42151d78]", "[db86afb17e9ee21c]", "0x20")
+ self.binary80_to_bid64("0", "[c4a1c976f0b06425c008]", "[dc85e066d8de8e2f]", "0x20")
+ self.binary80_to_bid64("1", "[c4a1c976f0b06425c008]", "[dc85e066d8de8e2f]", "0x20")
+ self.binary80_to_bid64("2", "[c4a1c976f0b06425c008]", "[dc85e066d8de8e2e]", "0x20")
+ self.binary80_to_bid64("3", "[c4a1c976f0b06425c008]", "[dc85e066d8de8e2e]", "0x20")
+ self.binary80_to_bid64("4", "[c4a1c976f0b06425c008]", "[dc85e066d8de8e2f]", "0x20")
+ self.binary80_to_bid64("0", "[c4bce7445a6948bf98a2]", "[dd890dde1930c3da]", "0x20")
+ self.binary80_to_bid64("1", "[c4bce7445a6948bf98a2]", "[dd890dde1930c3db]", "0x20")
+ self.binary80_to_bid64("2", "[c4bce7445a6948bf98a2]", "[dd890dde1930c3da]", "0x20")
+ self.binary80_to_bid64("3", "[c4bce7445a6948bf98a2]", "[dd890dde1930c3da]", "0x20")
+ self.binary80_to_bid64("4", "[c4bce7445a6948bf98a2]", "[dd890dde1930c3da]", "0x20")
+ self.binary80_to_bid64("0", "[c4d7cb5f2ef66e77f284]", "[de8aafbeaaed021a]", "0x20")
+ self.binary80_to_bid64("1", "[c4d7cb5f2ef66e77f284]", "[de8aafbeaaed021a]", "0x20")
+ self.binary80_to_bid64("2", "[c4d7cb5f2ef66e77f284]", "[de8aafbeaaed0219]", "0x20")
+ self.binary80_to_bid64("3", "[c4d7cb5f2ef66e77f284]", "[de8aafbeaaed0219]", "0x20")
+ self.binary80_to_bid64("4", "[c4d7cb5f2ef66e77f284]", "[de8aafbeaaed021a]", "0x20")
+ self.binary80_to_bid64("0", "[c4fdf5f75bd4dab6cdb0]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("1", "[c4fdf5f75bd4dab6cdb0]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("2", "[c4fdf5f75bd4dab6cdb0]", "[f7fb86f26fc0fffe]", "0x20")
+ self.binary80_to_bid64("3", "[c4fdf5f75bd4dab6cdb0]", "[f7fb86f26fc0fffe]", "0x20")
+ self.binary80_to_bid64("4", "[c4fdf5f75bd4dab6cdb0]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("0", "[c4fdf5f75bd4dab6cdb1]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("1", "[c4fdf5f75bd4dab6cdb1]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("2", "[c4fdf5f75bd4dab6cdb1]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("3", "[c4fdf5f75bd4dab6cdb1]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[c4fdf5f75bd4dab6cdb1]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("0", "[c4fdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[c4fdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("2", "[c4fdf5f75bd4dab6d49c]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("3", "[c4fdf5f75bd4dab6d49c]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[c4fdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[c4fdf5f75bd4dab6d49d]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[c4fdf5f75bd4dab6d49d]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("2", "[c4fdf5f75bd4dab6d49d]", "[f7fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("3", "[c4fdf5f75bd4dab6d49d]", "[f7fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("4", "[c4fdf5f75bd4dab6d49d]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[fffeffffffffffffffff]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[fffeffffffffffffffff]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("2", "[fffeffffffffffffffff]", "[f7fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("3", "[fffeffffffffffffffff]", "[f7fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("4", "[fffeffffffffffffffff]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[ffff8000000000000000]", "[f800000000000000]", "0x00")
+ self.binary80_to_bid64("1", "[ffff8000000000000000]", "[f800000000000000]", "0x00")
+ self.binary80_to_bid64("2", "[ffff8000000000000000]", "[f800000000000000]", "0x00")
+ self.binary80_to_bid64("3", "[ffff8000000000000000]", "[f800000000000000]", "0x00")
+ self.binary80_to_bid64("4", "[ffff8000000000000000]", "[f800000000000000]", "0x00")
+ self.binary80_to_bid64("0", "[3B06D0289CE2DD61CA6D]", "[00038D7EA4C68000]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("0", "[BB06D0289CE2DD61CA6D]", "[80038D7EA4C68000]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("1", "[BB06D0289CE2DD61CA6D]", "[80038D7EA4C68000]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("2", "[3B06D0289CE2DD61CA6D]", "[00038D7EA4C68000]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("4", "[3B06D0289CE2DD61CA6D]", "[00038D7EA4C68000]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("4", "[BB06D0289CE2DD61CA6D]", "[80038D7EA4C68000]", "30", underflowBeforeOnly: true)
+ self.binary80_to_bid64("0", "[000000000000000000A5]", "[0000000000000000]", "32")
+ self.binary80_to_bid64("0", "[4ffdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[4ffdf5f75bd4dab6d49c]", "[77fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("2", "[4ffdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("3", "[4ffdf5f75bd4dab6d49c]", "[77fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("4", "[4ffdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[44fdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[44fdf5f75bd4dab6d49c]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("2", "[44fdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("3", "[44fdf5f75bd4dab6d49c]", "[77fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[44fdf5f75bd4dab6d49c]", "[7800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[cffdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[cffdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("2", "[cffdf5f75bd4dab6d49c]", "[f7fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("3", "[cffdf5f75bd4dab6d49c]", "[f7fb86f26fc0ffff]", "0x28")
+ self.binary80_to_bid64("4", "[cffdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("0", "[c4fdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("1", "[c4fdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ self.binary80_to_bid64("2", "[c4fdf5f75bd4dab6d49c]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("3", "[c4fdf5f75bd4dab6d49c]", "[f7fb86f26fc0ffff]", "0x20")
+ self.binary80_to_bid64("4", "[c4fdf5f75bd4dab6d49c]", "[f800000000000000]", "0x28")
+ }
+
+ private func binary80_to_bid64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseFloat80(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+
+#endif
+ }
+
+ func test_binary80_to_bid128() {
+ self.binary80_to_bid128("0", "[00000000000000000000]", "[30400000000000000000000000000000]", "00")
+ self.binary80_to_bid128("0", "[00000000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("0", "[00000000000000000001]", "[0950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("0", "[00000000000000000001]", "[0950B3B8E2EDA91A232DD950102978DC]", "22")
+ self.binary80_to_bid128("0", "[00004000000000000000]", "[097652E1DA94B165DD74C8548F55748C]", "22")
+ self.binary80_to_bid128("0", "[00018000000000000000]", "[0976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("0", "[00018000000000000000]", "[0976A5C3B52962CBBAE990A91EAAE919]", "20")
+ self.binary80_to_bid128("0", "[00028000000000000000]", "[09774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("0", "[04e19393b549a78034a8]", "[0c665ca05b102d2fcc11b4aef95cdb21]", "0x20")
+ self.binary80_to_bid128("0", "[0a00b35662cec5f89960]", "[0f7c32510d874deed83d53fd28c14700]", "0x20")
+ self.binary80_to_bid128("0", "[0f23a18e82a04ae2b8d8]", "[129344328e3449a3645b2f7d5ee02971]", "0x20")
+ self.binary80_to_bid128("0", "[1446d65ee9c512be49fe]", "[15ab33ad398584d26cfca7f2ee4397c7]", "0x20")
+ self.binary80_to_bid128("0", "[1967ba42223153fad4ee]", "[18c1de00522b7aecf5c68bc7f9b80ca5]", "0x20")
+ self.binary80_to_bid128("0", "[1e889a643786823a5d0a]", "[1bd846d8cf58032cb950df80ca86fd6f]", "0x20")
+ self.binary80_to_bid128("0", "[23aa91ab9a310597c7d1]", "[1eeeef0bfdc90864ac7be69ac04271e0]", "0x20")
+ self.binary80_to_bid128("0", "[28cbf5b09c19c8cb5218]", "[220648176686dc8783a503720fe9e7a3]", "0x20")
+ self.binary80_to_bid128("0", "[2deaa7b9dc76b2556774]", "[251adbffc808f5e007a4890b55689444]", "0x20")
+ self.binary80_to_bid128("0", "[330cc1dcfbc95b84116c]", "[28325aef512bcb5a0967ac82b26c4d09]", "0x20")
+ self.binary80_to_bid128("0", "[382e9366fc8dbf6a2815]", "[2b48f7427db49db2cf9d567cc0f10b2c]", "0x20")
+ self.binary80_to_bid128("0", "[3d4fef86b1981a4132df]", "[2e6047d7e3d1fde4374a1630ce325c6e]", "0x20")
+ self.binary80_to_bid128("0", "[3ffad000000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("0", "[3FFE8000000000000000]", "[303E0000000000000000000000000005]", "00")
+ self.binary80_to_bid128("0", "[3fff8000000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("0", "[3fffc000000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("0", "[40008000000000000000]", "[30400000000000000000000000000002]", "00")
+ self.binary80_to_bid128("0", "[40058000000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("0", "[4008f9c0000000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("0", "[4008fa00000000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("0", "[426fc4ac44da0d37a920]", "[317634bd32c9f870d5a3497528b563de]", "0x20")
+ self.binary80_to_bid128("0", "[4791c7df7e02dcba60d5]", "[348cbfabc1ec7a6f64ada730609ac542]", "0x20")
+ self.binary80_to_bid128("0", "[4caffd2ff7b6667c2140]", "[37a236446fa2149b7955354ddd97d788]", "0x20")
+ self.binary80_to_bid128("0", "[51d0f74aa9b9e0f22cf0]", "[3ab85ec63274c3ed060f08b3bce85013]", "0x20")
+ self.binary80_to_bid128("0", "[56f0bf43925a09add4a0]", "[3dce4188c2b3a53bbde7cd42b4aa46ed]", "0x20")
+ self.binary80_to_bid128("0", "[5c13913b559b7cb46a58]", "[40e563e91f0c79693c13524008c2c715]", "0x20")
+ self.binary80_to_bid128("0", "[6137dc213e875258d12b]", "[43fe4d2acb90d6843d61baf6d678a5a7]", "0x20")
+ self.binary80_to_bid128("0", "[6657b876b73880dc45ac]", "[471439cfe73f2243be2fbb0bf50bae84]", "0x20")
+ self.binary80_to_bid128("0", "[6b77e7c16a27d5f9135c]", "[4a2a40efe0492837e5e9fbd4042ceaf2]", "0x20")
+ self.binary80_to_bid128("0", "[709aedad06bca6e8a236]", "[4d41dc4fe81488cbcf3a48b7e1f1832d]", "0x20")
+ self.binary80_to_bid128("0", "[75bbb371cfb37c91b8f7]", "[5058404d2fbd0a22217e9df4853d7806]", "0x20")
+ self.binary80_to_bid128("0", "[7adcdccf512e14945c48]", "[536e8d7ac13b77d59fa305b1e4f7e349]", "0x20")
+ self.binary80_to_bid128("0", "[7ffeffffffffffffffff]", "[56863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("0", "[7fff0000000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("0", "[7fff8000000000000000]", "[78000000000000000000000000000000]", "00")
+ self.binary80_to_bid128("0", "[7fff8000000000000001]", "[7C000000000000000001000000000000]", "01")
+ self.binary80_to_bid128("0", "[7fffa000000000000000]", "[7C002000000000000000000000000000]", "01")
+ self.binary80_to_bid128("0", "[7FFFB14DC6448D9338C1]", "[7C00314DC6448D9338C1000000000000]", "01")
+ self.binary80_to_bid128("0", "[7FFFB14DC6448D9338C2]", "[7C000000000000000000000000000000]", "01")
+ self.binary80_to_bid128("0", "[7fffbfffffffffffffff]", "[7C000000000000000000000000000000]", "01")
+ self.binary80_to_bid128("0", "[7fffc000000000000001]", "[7C000000000000000001000000000000]", "00")
+ self.binary80_to_bid128("0", "[7fffe000000000000000]", "[7C002000000000000000000000000000]", "00")
+ self.binary80_to_bid128("0", "[7FFFF14DC6448D9338C1]", "[7C00314DC6448D9338C1000000000000]", "00")
+ self.binary80_to_bid128("0", "[7FFFF14DC6448D9338C2]", "[7C000000000000000000000000000000]", "00")
+ self.binary80_to_bid128("0", "[7fffffffffffffffffff]", "[7C000000000000000000000000000000]", "00")
+ self.binary80_to_bid128("0", "[80000000000000000000]", "[b0400000000000000000000000000000]", "00")
+ self.binary80_to_bid128("0", "[80000000000000000001]", "[8950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("0", "[80018000000000000000]", "[8976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("0", "[80028000000000000000]", "[89774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("0", "[84e19393b549a78034a8]", "[8c665ca05b102d2fcc11b4aef95cdb21]", "0x20")
+ self.binary80_to_bid128("0", "[8a00b35662cec5f89960]", "[8f7c32510d874deed83d53fd28c14700]", "0x20")
+ self.binary80_to_bid128("0", "[8f23a18e82a04ae2b8d8]", "[929344328e3449a3645b2f7d5ee02971]", "0x20")
+ self.binary80_to_bid128("0", "[9446d65ee9c512be49fe]", "[95ab33ad398584d26cfca7f2ee4397c7]", "0x20")
+ self.binary80_to_bid128("0", "[9967ba42223153fad4ee]", "[98c1de00522b7aecf5c68bc7f9b80ca5]", "0x20")
+ self.binary80_to_bid128("0", "[9e889a643786823a5d0a]", "[9bd846d8cf58032cb950df80ca86fd6f]", "0x20")
+ self.binary80_to_bid128("0", "[a3aa91ab9a310597c7d1]", "[9eeeef0bfdc90864ac7be69ac04271e0]", "0x20")
+ self.binary80_to_bid128("0", "[a8cbf5b09c19c8cb5218]", "[a20648176686dc8783a503720fe9e7a3]", "0x20")
+ self.binary80_to_bid128("0", "[adeaa7b9dc76b2556774]", "[a51adbffc808f5e007a4890b55689444]", "0x20")
+ self.binary80_to_bid128("0", "[b30cc1dcfbc95b84116c]", "[a8325aef512bcb5a0967ac82b26c4d09]", "0x20")
+ self.binary80_to_bid128("0", "[b82e9366fc8dbf6a2815]", "[ab48f7427db49db2cf9d567cc0f10b2c]", "0x20")
+ self.binary80_to_bid128("0", "[bd4fef86b1981a4132df]", "[ae6047d7e3d1fde4374a1630ce325c6e]", "0x20")
+ self.binary80_to_bid128("0", "[bffad000000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("0", "[bfff8000000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("0", "[bfffc000000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("0", "[c0058000000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("0", "[c008f9c0000000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("0", "[c008fa00000000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("0", "[c26fc4ac44da0d37a920]", "[b17634bd32c9f870d5a3497528b563de]", "0x20")
+ self.binary80_to_bid128("0", "[c791c7df7e02dcba60d5]", "[b48cbfabc1ec7a6f64ada730609ac542]", "0x20")
+ self.binary80_to_bid128("0", "[ccaffd2ff7b6667c2140]", "[b7a236446fa2149b7955354ddd97d788]", "0x20")
+ self.binary80_to_bid128("0", "[d1d0f74aa9b9e0f22cf0]", "[bab85ec63274c3ed060f08b3bce85013]", "0x20")
+ self.binary80_to_bid128("0", "[d6f0bf43925a09add4a0]", "[bdce4188c2b3a53bbde7cd42b4aa46ed]", "0x20")
+ self.binary80_to_bid128("0", "[dc13913b559b7cb46a58]", "[c0e563e91f0c79693c13524008c2c715]", "0x20")
+ self.binary80_to_bid128("0", "[e137dc213e875258d12b]", "[c3fe4d2acb90d6843d61baf6d678a5a7]", "0x20")
+ self.binary80_to_bid128("0", "[e657b876b73880dc45ac]", "[c71439cfe73f2243be2fbb0bf50bae84]", "0x20")
+ self.binary80_to_bid128("0", "[eb77e7c16a27d5f9135c]", "[ca2a40efe0492837e5e9fbd4042ceaf2]", "0x20")
+ self.binary80_to_bid128("0", "[f09aedad06bca6e8a236]", "[cd41dc4fe81488cbcf3a48b7e1f1832d]", "0x20")
+ self.binary80_to_bid128("0", "[f5bbb371cfb37c91b8f7]", "[d058404d2fbd0a22217e9df4853d7806]", "0x20")
+ self.binary80_to_bid128("0", "[fadcdccf512e14945c48]", "[d36e8d7ac13b77d59fa305b1e4f7e349]", "0x20")
+ self.binary80_to_bid128("0", "[fffeffffffffffffffff]", "[d6863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("0", "[ffff0000000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("0", "[ffff8000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.binary80_to_bid128("1", "[00000000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("1", "[00000000000000000001]", "[0950b3b8e2eda91a232dd950102978db]", "0x22")
+ self.binary80_to_bid128("1", "[00018000000000000000]", "[0976a5c3b52962cbbae990a91eaae918]", "0x20")
+ self.binary80_to_bid128("1", "[00028000000000000000]", "[09774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("1", "[04e19393b549a78034a8]", "[0c665ca05b102d2fcc11b4aef95cdb20]", "0x20")
+ self.binary80_to_bid128("1", "[0a00b35662cec5f89960]", "[0f7c32510d874deed83d53fd28c146ff]", "0x20")
+ self.binary80_to_bid128("1", "[0f23a18e82a04ae2b8d8]", "[129344328e3449a3645b2f7d5ee02971]", "0x20")
+ self.binary80_to_bid128("1", "[1446d65ee9c512be49fe]", "[15ab33ad398584d26cfca7f2ee4397c6]", "0x20")
+ self.binary80_to_bid128("1", "[1967ba42223153fad4ee]", "[18c1de00522b7aecf5c68bc7f9b80ca5]", "0x20")
+ self.binary80_to_bid128("1", "[1e889a643786823a5d0a]", "[1bd846d8cf58032cb950df80ca86fd6f]", "0x20")
+ self.binary80_to_bid128("1", "[23aa91ab9a310597c7d1]", "[1eeeef0bfdc90864ac7be69ac04271e0]", "0x20")
+ self.binary80_to_bid128("1", "[28cbf5b09c19c8cb5218]", "[220648176686dc8783a503720fe9e7a2]", "0x20")
+ self.binary80_to_bid128("1", "[2deaa7b9dc76b2556774]", "[251adbffc808f5e007a4890b55689443]", "0x20")
+ self.binary80_to_bid128("1", "[330cc1dcfbc95b84116c]", "[28325aef512bcb5a0967ac82b26c4d09]", "0x20")
+ self.binary80_to_bid128("1", "[382e9366fc8dbf6a2815]", "[2b48f7427db49db2cf9d567cc0f10b2b]", "0x20")
+ self.binary80_to_bid128("1", "[3d4fef86b1981a4132df]", "[2e6047d7e3d1fde4374a1630ce325c6d]", "0x20")
+ self.binary80_to_bid128("1", "[3ffad000000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("1", "[3fff8000000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("1", "[3fffc000000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("1", "[40058000000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("1", "[4008f9c0000000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("1", "[4008fa00000000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("1", "[426fc4ac44da0d37a920]", "[317634bd32c9f870d5a3497528b563dd]", "0x20")
+ self.binary80_to_bid128("1", "[4791c7df7e02dcba60d5]", "[348cbfabc1ec7a6f64ada730609ac541]", "0x20")
+ self.binary80_to_bid128("1", "[4caffd2ff7b6667c2140]", "[37a236446fa2149b7955354ddd97d788]", "0x20")
+ self.binary80_to_bid128("1", "[51d0f74aa9b9e0f22cf0]", "[3ab85ec63274c3ed060f08b3bce85013]", "0x20")
+ self.binary80_to_bid128("1", "[56f0bf43925a09add4a0]", "[3dce4188c2b3a53bbde7cd42b4aa46ed]", "0x20")
+ self.binary80_to_bid128("1", "[5c13913b559b7cb46a58]", "[40e563e91f0c79693c13524008c2c715]", "0x20")
+ self.binary80_to_bid128("1", "[6137dc213e875258d12b]", "[43fe4d2acb90d6843d61baf6d678a5a7]", "0x20")
+ self.binary80_to_bid128("1", "[6657b876b73880dc45ac]", "[471439cfe73f2243be2fbb0bf50bae83]", "0x20")
+ self.binary80_to_bid128("1", "[6b77e7c16a27d5f9135c]", "[4a2a40efe0492837e5e9fbd4042ceaf1]", "0x20")
+ self.binary80_to_bid128("1", "[709aedad06bca6e8a236]", "[4d41dc4fe81488cbcf3a48b7e1f1832c]", "0x20")
+ self.binary80_to_bid128("1", "[75bbb371cfb37c91b8f7]", "[5058404d2fbd0a22217e9df4853d7805]", "0x20")
+ self.binary80_to_bid128("1", "[7adcdccf512e14945c48]", "[536e8d7ac13b77d59fa305b1e4f7e348]", "0x20")
+ self.binary80_to_bid128("1", "[7ffeffffffffffffffff]", "[56863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("1", "[7fff0000000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("1", "[80000000000000000001]", "[8950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("1", "[80018000000000000000]", "[8976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("1", "[80028000000000000000]", "[89774b876a52c59775d321523d55d232]", "0x20")
+ self.binary80_to_bid128("1", "[84e19393b549a78034a8]", "[8c665ca05b102d2fcc11b4aef95cdb21]", "0x20")
+ self.binary80_to_bid128("1", "[8a00b35662cec5f89960]", "[8f7c32510d874deed83d53fd28c14700]", "0x20")
+ self.binary80_to_bid128("1", "[8f23a18e82a04ae2b8d8]", "[929344328e3449a3645b2f7d5ee02972]", "0x20")
+ self.binary80_to_bid128("1", "[9446d65ee9c512be49fe]", "[95ab33ad398584d26cfca7f2ee4397c7]", "0x20")
+ self.binary80_to_bid128("1", "[9967ba42223153fad4ee]", "[98c1de00522b7aecf5c68bc7f9b80ca6]", "0x20")
+ self.binary80_to_bid128("1", "[9e889a643786823a5d0a]", "[9bd846d8cf58032cb950df80ca86fd70]", "0x20")
+ self.binary80_to_bid128("1", "[a3aa91ab9a310597c7d1]", "[9eeeef0bfdc90864ac7be69ac04271e1]", "0x20")
+ self.binary80_to_bid128("1", "[a8cbf5b09c19c8cb5218]", "[a20648176686dc8783a503720fe9e7a3]", "0x20")
+ self.binary80_to_bid128("1", "[adeaa7b9dc76b2556774]", "[a51adbffc808f5e007a4890b55689444]", "0x20")
+ self.binary80_to_bid128("1", "[b30cc1dcfbc95b84116c]", "[a8325aef512bcb5a0967ac82b26c4d0a]", "0x20")
+ self.binary80_to_bid128("1", "[b82e9366fc8dbf6a2815]", "[ab48f7427db49db2cf9d567cc0f10b2c]", "0x20")
+ self.binary80_to_bid128("1", "[bd4fef86b1981a4132df]", "[ae6047d7e3d1fde4374a1630ce325c6e]", "0x20")
+ self.binary80_to_bid128("1", "[bffad000000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("1", "[bfff8000000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("1", "[bfffc000000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("1", "[c0058000000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("1", "[c008f9c0000000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("1", "[c008fa00000000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("1", "[c26fc4ac44da0d37a920]", "[b17634bd32c9f870d5a3497528b563de]", "0x20")
+ self.binary80_to_bid128("1", "[c791c7df7e02dcba60d5]", "[b48cbfabc1ec7a6f64ada730609ac542]", "0x20")
+ self.binary80_to_bid128("1", "[ccaffd2ff7b6667c2140]", "[b7a236446fa2149b7955354ddd97d789]", "0x20")
+ self.binary80_to_bid128("1", "[d1d0f74aa9b9e0f22cf0]", "[bab85ec63274c3ed060f08b3bce85014]", "0x20")
+ self.binary80_to_bid128("1", "[d6f0bf43925a09add4a0]", "[bdce4188c2b3a53bbde7cd42b4aa46ee]", "0x20")
+ self.binary80_to_bid128("1", "[dc13913b559b7cb46a58]", "[c0e563e91f0c79693c13524008c2c716]", "0x20")
+ self.binary80_to_bid128("1", "[e137dc213e875258d12b]", "[c3fe4d2acb90d6843d61baf6d678a5a8]", "0x20")
+ self.binary80_to_bid128("1", "[e657b876b73880dc45ac]", "[c71439cfe73f2243be2fbb0bf50bae84]", "0x20")
+ self.binary80_to_bid128("1", "[eb77e7c16a27d5f9135c]", "[ca2a40efe0492837e5e9fbd4042ceaf2]", "0x20")
+ self.binary80_to_bid128("1", "[f09aedad06bca6e8a236]", "[cd41dc4fe81488cbcf3a48b7e1f1832d]", "0x20")
+ self.binary80_to_bid128("1", "[f5bbb371cfb37c91b8f7]", "[d058404d2fbd0a22217e9df4853d7806]", "0x20")
+ self.binary80_to_bid128("1", "[fadcdccf512e14945c48]", "[d36e8d7ac13b77d59fa305b1e4f7e349]", "0x20")
+ self.binary80_to_bid128("1", "[fffeffffffffffffffff]", "[d6863aa885cb1a6cecf38634ccf08e3b]", "0x20")
+ self.binary80_to_bid128("1", "[ffff0000000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("2", "[00000000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("2", "[00000000000000000001]", "[0950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("2", "[00018000000000000000]", "[0976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("2", "[00028000000000000000]", "[09774b876a52c59775d321523d55d232]", "0x20")
+ self.binary80_to_bid128("2", "[04e19393b549a78034a8]", "[0c665ca05b102d2fcc11b4aef95cdb21]", "0x20")
+ self.binary80_to_bid128("2", "[0a00b35662cec5f89960]", "[0f7c32510d874deed83d53fd28c14700]", "0x20")
+ self.binary80_to_bid128("2", "[0f23a18e82a04ae2b8d8]", "[129344328e3449a3645b2f7d5ee02972]", "0x20")
+ self.binary80_to_bid128("2", "[1446d65ee9c512be49fe]", "[15ab33ad398584d26cfca7f2ee4397c7]", "0x20")
+ self.binary80_to_bid128("2", "[1967ba42223153fad4ee]", "[18c1de00522b7aecf5c68bc7f9b80ca6]", "0x20")
+ self.binary80_to_bid128("2", "[1e889a643786823a5d0a]", "[1bd846d8cf58032cb950df80ca86fd70]", "0x20")
+ self.binary80_to_bid128("2", "[23aa91ab9a310597c7d1]", "[1eeeef0bfdc90864ac7be69ac04271e1]", "0x20")
+ self.binary80_to_bid128("2", "[28cbf5b09c19c8cb5218]", "[220648176686dc8783a503720fe9e7a3]", "0x20")
+ self.binary80_to_bid128("2", "[2deaa7b9dc76b2556774]", "[251adbffc808f5e007a4890b55689444]", "0x20")
+ self.binary80_to_bid128("2", "[330cc1dcfbc95b84116c]", "[28325aef512bcb5a0967ac82b26c4d0a]", "0x20")
+ self.binary80_to_bid128("2", "[382e9366fc8dbf6a2815]", "[2b48f7427db49db2cf9d567cc0f10b2c]", "0x20")
+ self.binary80_to_bid128("2", "[3d4fef86b1981a4132df]", "[2e6047d7e3d1fde4374a1630ce325c6e]", "0x20")
+ self.binary80_to_bid128("2", "[3ffad000000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("2", "[3fff8000000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("2", "[3fffc000000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("2", "[40058000000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("2", "[4008f9c0000000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("2", "[4008fa00000000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("2", "[426fc4ac44da0d37a920]", "[317634bd32c9f870d5a3497528b563de]", "0x20")
+ self.binary80_to_bid128("2", "[4791c7df7e02dcba60d5]", "[348cbfabc1ec7a6f64ada730609ac542]", "0x20")
+ self.binary80_to_bid128("2", "[4caffd2ff7b6667c2140]", "[37a236446fa2149b7955354ddd97d789]", "0x20")
+ self.binary80_to_bid128("2", "[51d0f74aa9b9e0f22cf0]", "[3ab85ec63274c3ed060f08b3bce85014]", "0x20")
+ self.binary80_to_bid128("2", "[56f0bf43925a09add4a0]", "[3dce4188c2b3a53bbde7cd42b4aa46ee]", "0x20")
+ self.binary80_to_bid128("2", "[5c13913b559b7cb46a58]", "[40e563e91f0c79693c13524008c2c716]", "0x20")
+ self.binary80_to_bid128("2", "[6137dc213e875258d12b]", "[43fe4d2acb90d6843d61baf6d678a5a8]", "0x20")
+ self.binary80_to_bid128("2", "[6657b876b73880dc45ac]", "[471439cfe73f2243be2fbb0bf50bae84]", "0x20")
+ self.binary80_to_bid128("2", "[6b77e7c16a27d5f9135c]", "[4a2a40efe0492837e5e9fbd4042ceaf2]", "0x20")
+ self.binary80_to_bid128("2", "[709aedad06bca6e8a236]", "[4d41dc4fe81488cbcf3a48b7e1f1832d]", "0x20")
+ self.binary80_to_bid128("2", "[75bbb371cfb37c91b8f7]", "[5058404d2fbd0a22217e9df4853d7806]", "0x20")
+ self.binary80_to_bid128("2", "[7adcdccf512e14945c48]", "[536e8d7ac13b77d59fa305b1e4f7e349]", "0x20")
+ self.binary80_to_bid128("2", "[7ffeffffffffffffffff]", "[56863aa885cb1a6cecf38634ccf08e3b]", "0x20")
+ self.binary80_to_bid128("2", "[7fff0000000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("2", "[80000000000000000001]", "[8950b3b8e2eda91a232dd950102978db]", "0x22")
+ self.binary80_to_bid128("2", "[80018000000000000000]", "[8976a5c3b52962cbbae990a91eaae918]", "0x20")
+ self.binary80_to_bid128("2", "[80028000000000000000]", "[89774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("2", "[84e19393b549a78034a8]", "[8c665ca05b102d2fcc11b4aef95cdb20]", "0x20")
+ self.binary80_to_bid128("2", "[8a00b35662cec5f89960]", "[8f7c32510d874deed83d53fd28c146ff]", "0x20")
+ self.binary80_to_bid128("2", "[8f23a18e82a04ae2b8d8]", "[929344328e3449a3645b2f7d5ee02971]", "0x20")
+ self.binary80_to_bid128("2", "[9446d65ee9c512be49fe]", "[95ab33ad398584d26cfca7f2ee4397c6]", "0x20")
+ self.binary80_to_bid128("2", "[9967ba42223153fad4ee]", "[98c1de00522b7aecf5c68bc7f9b80ca5]", "0x20")
+ self.binary80_to_bid128("2", "[9e889a643786823a5d0a]", "[9bd846d8cf58032cb950df80ca86fd6f]", "0x20")
+ self.binary80_to_bid128("2", "[a3aa91ab9a310597c7d1]", "[9eeeef0bfdc90864ac7be69ac04271e0]", "0x20")
+ self.binary80_to_bid128("2", "[a8cbf5b09c19c8cb5218]", "[a20648176686dc8783a503720fe9e7a2]", "0x20")
+ self.binary80_to_bid128("2", "[adeaa7b9dc76b2556774]", "[a51adbffc808f5e007a4890b55689443]", "0x20")
+ self.binary80_to_bid128("2", "[b30cc1dcfbc95b84116c]", "[a8325aef512bcb5a0967ac82b26c4d09]", "0x20")
+ self.binary80_to_bid128("2", "[b82e9366fc8dbf6a2815]", "[ab48f7427db49db2cf9d567cc0f10b2b]", "0x20")
+ self.binary80_to_bid128("2", "[bd4fef86b1981a4132df]", "[ae6047d7e3d1fde4374a1630ce325c6d]", "0x20")
+ self.binary80_to_bid128("2", "[bffad000000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("2", "[bfff8000000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("2", "[bfffc000000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("2", "[c0058000000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("2", "[c008f9c0000000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("2", "[c008fa00000000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("2", "[c26fc4ac44da0d37a920]", "[b17634bd32c9f870d5a3497528b563dd]", "0x20")
+ self.binary80_to_bid128("2", "[c791c7df7e02dcba60d5]", "[b48cbfabc1ec7a6f64ada730609ac541]", "0x20")
+ self.binary80_to_bid128("2", "[ccaffd2ff7b6667c2140]", "[b7a236446fa2149b7955354ddd97d788]", "0x20")
+ self.binary80_to_bid128("2", "[d1d0f74aa9b9e0f22cf0]", "[bab85ec63274c3ed060f08b3bce85013]", "0x20")
+ self.binary80_to_bid128("2", "[d6f0bf43925a09add4a0]", "[bdce4188c2b3a53bbde7cd42b4aa46ed]", "0x20")
+ self.binary80_to_bid128("2", "[dc13913b559b7cb46a58]", "[c0e563e91f0c79693c13524008c2c715]", "0x20")
+ self.binary80_to_bid128("2", "[e137dc213e875258d12b]", "[c3fe4d2acb90d6843d61baf6d678a5a7]", "0x20")
+ self.binary80_to_bid128("2", "[e657b876b73880dc45ac]", "[c71439cfe73f2243be2fbb0bf50bae83]", "0x20")
+ self.binary80_to_bid128("2", "[eb77e7c16a27d5f9135c]", "[ca2a40efe0492837e5e9fbd4042ceaf1]", "0x20")
+ self.binary80_to_bid128("2", "[f09aedad06bca6e8a236]", "[cd41dc4fe81488cbcf3a48b7e1f1832c]", "0x20")
+ self.binary80_to_bid128("2", "[f5bbb371cfb37c91b8f7]", "[d058404d2fbd0a22217e9df4853d7805]", "0x20")
+ self.binary80_to_bid128("2", "[fadcdccf512e14945c48]", "[d36e8d7ac13b77d59fa305b1e4f7e348]", "0x20")
+ self.binary80_to_bid128("2", "[fffeffffffffffffffff]", "[d6863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("2", "[ffff0000000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("3", "[00000000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("3", "[00000000000000000001]", "[0950b3b8e2eda91a232dd950102978db]", "0x22")
+ self.binary80_to_bid128("3", "[00018000000000000000]", "[0976a5c3b52962cbbae990a91eaae918]", "0x20")
+ self.binary80_to_bid128("3", "[00028000000000000000]", "[09774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("3", "[04e19393b549a78034a8]", "[0c665ca05b102d2fcc11b4aef95cdb20]", "0x20")
+ self.binary80_to_bid128("3", "[0a00b35662cec5f89960]", "[0f7c32510d874deed83d53fd28c146ff]", "0x20")
+ self.binary80_to_bid128("3", "[0f23a18e82a04ae2b8d8]", "[129344328e3449a3645b2f7d5ee02971]", "0x20")
+ self.binary80_to_bid128("3", "[1446d65ee9c512be49fe]", "[15ab33ad398584d26cfca7f2ee4397c6]", "0x20")
+ self.binary80_to_bid128("3", "[1967ba42223153fad4ee]", "[18c1de00522b7aecf5c68bc7f9b80ca5]", "0x20")
+ self.binary80_to_bid128("3", "[1e889a643786823a5d0a]", "[1bd846d8cf58032cb950df80ca86fd6f]", "0x20")
+ self.binary80_to_bid128("3", "[23aa91ab9a310597c7d1]", "[1eeeef0bfdc90864ac7be69ac04271e0]", "0x20")
+ self.binary80_to_bid128("3", "[28cbf5b09c19c8cb5218]", "[220648176686dc8783a503720fe9e7a2]", "0x20")
+ self.binary80_to_bid128("3", "[2deaa7b9dc76b2556774]", "[251adbffc808f5e007a4890b55689443]", "0x20")
+ self.binary80_to_bid128("3", "[330cc1dcfbc95b84116c]", "[28325aef512bcb5a0967ac82b26c4d09]", "0x20")
+ self.binary80_to_bid128("3", "[382e9366fc8dbf6a2815]", "[2b48f7427db49db2cf9d567cc0f10b2b]", "0x20")
+ self.binary80_to_bid128("3", "[3d4fef86b1981a4132df]", "[2e6047d7e3d1fde4374a1630ce325c6d]", "0x20")
+ self.binary80_to_bid128("3", "[3ffad000000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("3", "[3fff8000000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("3", "[3fffc000000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("3", "[40058000000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("3", "[4008f9c0000000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("3", "[4008fa00000000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("3", "[426fc4ac44da0d37a920]", "[317634bd32c9f870d5a3497528b563dd]", "0x20")
+ self.binary80_to_bid128("3", "[4791c7df7e02dcba60d5]", "[348cbfabc1ec7a6f64ada730609ac541]", "0x20")
+ self.binary80_to_bid128("3", "[4caffd2ff7b6667c2140]", "[37a236446fa2149b7955354ddd97d788]", "0x20")
+ self.binary80_to_bid128("3", "[51d0f74aa9b9e0f22cf0]", "[3ab85ec63274c3ed060f08b3bce85013]", "0x20")
+ self.binary80_to_bid128("3", "[56f0bf43925a09add4a0]", "[3dce4188c2b3a53bbde7cd42b4aa46ed]", "0x20")
+ self.binary80_to_bid128("3", "[5c13913b559b7cb46a58]", "[40e563e91f0c79693c13524008c2c715]", "0x20")
+ self.binary80_to_bid128("3", "[6137dc213e875258d12b]", "[43fe4d2acb90d6843d61baf6d678a5a7]", "0x20")
+ self.binary80_to_bid128("3", "[6657b876b73880dc45ac]", "[471439cfe73f2243be2fbb0bf50bae83]", "0x20")
+ self.binary80_to_bid128("3", "[6b77e7c16a27d5f9135c]", "[4a2a40efe0492837e5e9fbd4042ceaf1]", "0x20")
+ self.binary80_to_bid128("3", "[709aedad06bca6e8a236]", "[4d41dc4fe81488cbcf3a48b7e1f1832c]", "0x20")
+ self.binary80_to_bid128("3", "[75bbb371cfb37c91b8f7]", "[5058404d2fbd0a22217e9df4853d7805]", "0x20")
+ self.binary80_to_bid128("3", "[7adcdccf512e14945c48]", "[536e8d7ac13b77d59fa305b1e4f7e348]", "0x20")
+ self.binary80_to_bid128("3", "[7ffeffffffffffffffff]", "[56863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("3", "[7fff0000000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("3", "[80000000000000000001]", "[8950b3b8e2eda91a232dd950102978db]", "0x22")
+ self.binary80_to_bid128("3", "[80018000000000000000]", "[8976a5c3b52962cbbae990a91eaae918]", "0x20")
+ self.binary80_to_bid128("3", "[80028000000000000000]", "[89774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("3", "[84e19393b549a78034a8]", "[8c665ca05b102d2fcc11b4aef95cdb20]", "0x20")
+ self.binary80_to_bid128("3", "[8a00b35662cec5f89960]", "[8f7c32510d874deed83d53fd28c146ff]", "0x20")
+ self.binary80_to_bid128("3", "[8f23a18e82a04ae2b8d8]", "[929344328e3449a3645b2f7d5ee02971]", "0x20")
+ self.binary80_to_bid128("3", "[9446d65ee9c512be49fe]", "[95ab33ad398584d26cfca7f2ee4397c6]", "0x20")
+ self.binary80_to_bid128("3", "[9967ba42223153fad4ee]", "[98c1de00522b7aecf5c68bc7f9b80ca5]", "0x20")
+ self.binary80_to_bid128("3", "[9e889a643786823a5d0a]", "[9bd846d8cf58032cb950df80ca86fd6f]", "0x20")
+ self.binary80_to_bid128("3", "[a3aa91ab9a310597c7d1]", "[9eeeef0bfdc90864ac7be69ac04271e0]", "0x20")
+ self.binary80_to_bid128("3", "[a8cbf5b09c19c8cb5218]", "[a20648176686dc8783a503720fe9e7a2]", "0x20")
+ self.binary80_to_bid128("3", "[adeaa7b9dc76b2556774]", "[a51adbffc808f5e007a4890b55689443]", "0x20")
+ self.binary80_to_bid128("3", "[b30cc1dcfbc95b84116c]", "[a8325aef512bcb5a0967ac82b26c4d09]", "0x20")
+ self.binary80_to_bid128("3", "[b82e9366fc8dbf6a2815]", "[ab48f7427db49db2cf9d567cc0f10b2b]", "0x20")
+ self.binary80_to_bid128("3", "[bd4fef86b1981a4132df]", "[ae6047d7e3d1fde4374a1630ce325c6d]", "0x20")
+ self.binary80_to_bid128("3", "[bffad000000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("3", "[bfff8000000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("3", "[bfffc000000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("3", "[c0058000000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("3", "[c008f9c0000000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("3", "[c008fa00000000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("3", "[c26fc4ac44da0d37a920]", "[b17634bd32c9f870d5a3497528b563dd]", "0x20")
+ self.binary80_to_bid128("3", "[c791c7df7e02dcba60d5]", "[b48cbfabc1ec7a6f64ada730609ac541]", "0x20")
+ self.binary80_to_bid128("3", "[ccaffd2ff7b6667c2140]", "[b7a236446fa2149b7955354ddd97d788]", "0x20")
+ self.binary80_to_bid128("3", "[d1d0f74aa9b9e0f22cf0]", "[bab85ec63274c3ed060f08b3bce85013]", "0x20")
+ self.binary80_to_bid128("3", "[d6f0bf43925a09add4a0]", "[bdce4188c2b3a53bbde7cd42b4aa46ed]", "0x20")
+ self.binary80_to_bid128("3", "[dc13913b559b7cb46a58]", "[c0e563e91f0c79693c13524008c2c715]", "0x20")
+ self.binary80_to_bid128("3", "[e137dc213e875258d12b]", "[c3fe4d2acb90d6843d61baf6d678a5a7]", "0x20")
+ self.binary80_to_bid128("3", "[e657b876b73880dc45ac]", "[c71439cfe73f2243be2fbb0bf50bae83]", "0x20")
+ self.binary80_to_bid128("3", "[eb77e7c16a27d5f9135c]", "[ca2a40efe0492837e5e9fbd4042ceaf1]", "0x20")
+ self.binary80_to_bid128("3", "[f09aedad06bca6e8a236]", "[cd41dc4fe81488cbcf3a48b7e1f1832c]", "0x20")
+ self.binary80_to_bid128("3", "[f5bbb371cfb37c91b8f7]", "[d058404d2fbd0a22217e9df4853d7805]", "0x20")
+ self.binary80_to_bid128("3", "[fadcdccf512e14945c48]", "[d36e8d7ac13b77d59fa305b1e4f7e348]", "0x20")
+ self.binary80_to_bid128("3", "[fffeffffffffffffffff]", "[d6863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("3", "[ffff0000000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("4", "[00000000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("4", "[00000000000000000001]", "[0950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("4", "[00018000000000000000]", "[0976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("4", "[00028000000000000000]", "[09774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("4", "[04e19393b549a78034a8]", "[0c665ca05b102d2fcc11b4aef95cdb21]", "0x20")
+ self.binary80_to_bid128("4", "[0a00b35662cec5f89960]", "[0f7c32510d874deed83d53fd28c14700]", "0x20")
+ self.binary80_to_bid128("4", "[0f23a18e82a04ae2b8d8]", "[129344328e3449a3645b2f7d5ee02971]", "0x20")
+ self.binary80_to_bid128("4", "[1446d65ee9c512be49fe]", "[15ab33ad398584d26cfca7f2ee4397c7]", "0x20")
+ self.binary80_to_bid128("4", "[1967ba42223153fad4ee]", "[18c1de00522b7aecf5c68bc7f9b80ca5]", "0x20")
+ self.binary80_to_bid128("4", "[1e889a643786823a5d0a]", "[1bd846d8cf58032cb950df80ca86fd6f]", "0x20")
+ self.binary80_to_bid128("4", "[23aa91ab9a310597c7d1]", "[1eeeef0bfdc90864ac7be69ac04271e0]", "0x20")
+ self.binary80_to_bid128("4", "[28cbf5b09c19c8cb5218]", "[220648176686dc8783a503720fe9e7a3]", "0x20")
+ self.binary80_to_bid128("4", "[2deaa7b9dc76b2556774]", "[251adbffc808f5e007a4890b55689444]", "0x20")
+ self.binary80_to_bid128("4", "[330cc1dcfbc95b84116c]", "[28325aef512bcb5a0967ac82b26c4d09]", "0x20")
+ self.binary80_to_bid128("4", "[382e9366fc8dbf6a2815]", "[2b48f7427db49db2cf9d567cc0f10b2c]", "0x20")
+ self.binary80_to_bid128("4", "[3d4fef86b1981a4132df]", "[2e6047d7e3d1fde4374a1630ce325c6e]", "0x20")
+ self.binary80_to_bid128("4", "[3ffad000000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("4", "[3fff8000000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("4", "[3fffc000000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("4", "[40058000000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("4", "[4008f9c0000000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("4", "[4008fa00000000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("4", "[426fc4ac44da0d37a920]", "[317634bd32c9f870d5a3497528b563de]", "0x20")
+ self.binary80_to_bid128("4", "[4791c7df7e02dcba60d5]", "[348cbfabc1ec7a6f64ada730609ac542]", "0x20")
+ self.binary80_to_bid128("4", "[4caffd2ff7b6667c2140]", "[37a236446fa2149b7955354ddd97d788]", "0x20")
+ self.binary80_to_bid128("4", "[51d0f74aa9b9e0f22cf0]", "[3ab85ec63274c3ed060f08b3bce85013]", "0x20")
+ self.binary80_to_bid128("4", "[56f0bf43925a09add4a0]", "[3dce4188c2b3a53bbde7cd42b4aa46ed]", "0x20")
+ self.binary80_to_bid128("4", "[5c13913b559b7cb46a58]", "[40e563e91f0c79693c13524008c2c715]", "0x20")
+ self.binary80_to_bid128("4", "[6137dc213e875258d12b]", "[43fe4d2acb90d6843d61baf6d678a5a7]", "0x20")
+ self.binary80_to_bid128("4", "[6657b876b73880dc45ac]", "[471439cfe73f2243be2fbb0bf50bae84]", "0x20")
+ self.binary80_to_bid128("4", "[6b77e7c16a27d5f9135c]", "[4a2a40efe0492837e5e9fbd4042ceaf2]", "0x20")
+ self.binary80_to_bid128("4", "[709aedad06bca6e8a236]", "[4d41dc4fe81488cbcf3a48b7e1f1832d]", "0x20")
+ self.binary80_to_bid128("4", "[75bbb371cfb37c91b8f7]", "[5058404d2fbd0a22217e9df4853d7806]", "0x20")
+ self.binary80_to_bid128("4", "[7adcdccf512e14945c48]", "[536e8d7ac13b77d59fa305b1e4f7e349]", "0x20")
+ self.binary80_to_bid128("4", "[7ffeffffffffffffffff]", "[56863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("4", "[7fff0000000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("4", "[80000000000000000001]", "[8950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("4", "[80018000000000000000]", "[8976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("4", "[80028000000000000000]", "[89774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("4", "[84e19393b549a78034a8]", "[8c665ca05b102d2fcc11b4aef95cdb21]", "0x20")
+ self.binary80_to_bid128("4", "[8a00b35662cec5f89960]", "[8f7c32510d874deed83d53fd28c14700]", "0x20")
+ self.binary80_to_bid128("4", "[8f23a18e82a04ae2b8d8]", "[929344328e3449a3645b2f7d5ee02971]", "0x20")
+ self.binary80_to_bid128("4", "[9446d65ee9c512be49fe]", "[95ab33ad398584d26cfca7f2ee4397c7]", "0x20")
+ self.binary80_to_bid128("4", "[9967ba42223153fad4ee]", "[98c1de00522b7aecf5c68bc7f9b80ca5]", "0x20")
+ self.binary80_to_bid128("4", "[9e889a643786823a5d0a]", "[9bd846d8cf58032cb950df80ca86fd6f]", "0x20")
+ self.binary80_to_bid128("4", "[a3aa91ab9a310597c7d1]", "[9eeeef0bfdc90864ac7be69ac04271e0]", "0x20")
+ self.binary80_to_bid128("4", "[a8cbf5b09c19c8cb5218]", "[a20648176686dc8783a503720fe9e7a3]", "0x20")
+ self.binary80_to_bid128("4", "[adeaa7b9dc76b2556774]", "[a51adbffc808f5e007a4890b55689444]", "0x20")
+ self.binary80_to_bid128("4", "[b30cc1dcfbc95b84116c]", "[a8325aef512bcb5a0967ac82b26c4d09]", "0x20")
+ self.binary80_to_bid128("4", "[b82e9366fc8dbf6a2815]", "[ab48f7427db49db2cf9d567cc0f10b2c]", "0x20")
+ self.binary80_to_bid128("4", "[bd4fef86b1981a4132df]", "[ae6047d7e3d1fde4374a1630ce325c6e]", "0x20")
+ self.binary80_to_bid128("4", "[bffad000000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("4", "[bfff8000000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("4", "[bfffc000000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("4", "[c0058000000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("4", "[c008f9c0000000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("4", "[c008fa00000000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("4", "[c26fc4ac44da0d37a920]", "[b17634bd32c9f870d5a3497528b563de]", "0x20")
+ self.binary80_to_bid128("4", "[c791c7df7e02dcba60d5]", "[b48cbfabc1ec7a6f64ada730609ac542]", "0x20")
+ self.binary80_to_bid128("4", "[ccaffd2ff7b6667c2140]", "[b7a236446fa2149b7955354ddd97d788]", "0x20")
+ self.binary80_to_bid128("4", "[d1d0f74aa9b9e0f22cf0]", "[bab85ec63274c3ed060f08b3bce85013]", "0x20")
+ self.binary80_to_bid128("4", "[d6f0bf43925a09add4a0]", "[bdce4188c2b3a53bbde7cd42b4aa46ed]", "0x20")
+ self.binary80_to_bid128("4", "[dc13913b559b7cb46a58]", "[c0e563e91f0c79693c13524008c2c715]", "0x20")
+ self.binary80_to_bid128("4", "[e137dc213e875258d12b]", "[c3fe4d2acb90d6843d61baf6d678a5a7]", "0x20")
+ self.binary80_to_bid128("4", "[e657b876b73880dc45ac]", "[c71439cfe73f2243be2fbb0bf50bae84]", "0x20")
+ self.binary80_to_bid128("4", "[eb77e7c16a27d5f9135c]", "[ca2a40efe0492837e5e9fbd4042ceaf2]", "0x20")
+ self.binary80_to_bid128("4", "[f09aedad06bca6e8a236]", "[cd41dc4fe81488cbcf3a48b7e1f1832d]", "0x20")
+ self.binary80_to_bid128("4", "[f5bbb371cfb37c91b8f7]", "[d058404d2fbd0a22217e9df4853d7806]", "0x20")
+ self.binary80_to_bid128("4", "[fadcdccf512e14945c48]", "[d36e8d7ac13b77d59fa305b1e4f7e349]", "0x20")
+ self.binary80_to_bid128("4", "[fffeffffffffffffffff]", "[d6863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("4", "[ffff0000000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("0", "[407d3e74e92ab4e828a0]", "[304a3e68aa1edea0c76f2a5a469d7343]", "0x20")
+ self.binary80_to_bid128("0", "[00000000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("1", "[00000000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("2", "[00000000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("3", "[00000000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("4", "[00000000000000000000]", "[30400000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("0", "[00000000000000000001]", "[0950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("1", "[00000000000000000001]", "[0950b3b8e2eda91a232dd950102978db]", "0x22")
+ self.binary80_to_bid128("2", "[00000000000000000001]", "[0950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("3", "[00000000000000000001]", "[0950b3b8e2eda91a232dd950102978db]", "0x22")
+ self.binary80_to_bid128("4", "[00000000000000000001]", "[0950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("0", "[00007fffffffffffffff]", "[0976a5c3b52962cbbae84521b4582381]", "0x22")
+ self.binary80_to_bid128("1", "[00007fffffffffffffff]", "[0976a5c3b52962cbbae84521b4582381]", "0x22")
+ self.binary80_to_bid128("2", "[00007fffffffffffffff]", "[0976a5c3b52962cbbae84521b4582382]", "0x22")
+ self.binary80_to_bid128("3", "[00007fffffffffffffff]", "[0976a5c3b52962cbbae84521b4582381]", "0x22")
+ self.binary80_to_bid128("4", "[00007fffffffffffffff]", "[0976a5c3b52962cbbae84521b4582381]", "0x22")
+ self.binary80_to_bid128("0", "[00018000000000000000]", "[0976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("1", "[00018000000000000000]", "[0976a5c3b52962cbbae990a91eaae918]", "0x20")
+ self.binary80_to_bid128("2", "[00018000000000000000]", "[0976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("3", "[00018000000000000000]", "[0976a5c3b52962cbbae990a91eaae918]", "0x20")
+ self.binary80_to_bid128("4", "[00018000000000000000]", "[0976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("0", "[00028000000000000000]", "[09774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("1", "[00028000000000000000]", "[09774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("2", "[00028000000000000000]", "[09774b876a52c59775d321523d55d232]", "0x20")
+ self.binary80_to_bid128("3", "[00028000000000000000]", "[09774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("4", "[00028000000000000000]", "[09774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("0", "[0107f971fec270a0cfe0]", "[0a14ef6534ff86e0e0edae30f1b7f47b]", "0x20")
+ self.binary80_to_bid128("1", "[0107f971fec270a0cfe0]", "[0a14ef6534ff86e0e0edae30f1b7f47b]", "0x20")
+ self.binary80_to_bid128("2", "[0107f971fec270a0cfe0]", "[0a14ef6534ff86e0e0edae30f1b7f47c]", "0x20")
+ self.binary80_to_bid128("3", "[0107f971fec270a0cfe0]", "[0a14ef6534ff86e0e0edae30f1b7f47b]", "0x20")
+ self.binary80_to_bid128("4", "[0107f971fec270a0cfe0]", "[0a14ef6534ff86e0e0edae30f1b7f47b]", "0x20")
+ self.binary80_to_bid128("0", "[02528192efa2988edea6]", "[0adc3666024ac759adbf20fdbe55be20]", "0x20")
+ self.binary80_to_bid128("1", "[02528192efa2988edea6]", "[0adc3666024ac759adbf20fdbe55be20]", "0x20")
+ self.binary80_to_bid128("2", "[02528192efa2988edea6]", "[0adc3666024ac759adbf20fdbe55be21]", "0x20")
+ self.binary80_to_bid128("3", "[02528192efa2988edea6]", "[0adc3666024ac759adbf20fdbe55be20]", "0x20")
+ self.binary80_to_bid128("4", "[02528192efa2988edea6]", "[0adc3666024ac759adbf20fdbe55be20]", "0x20")
+ self.binary80_to_bid128("0", "[039bf29cee4be2d0c072]", "[0ba26f6431cfe6615746b0d43ecd2743]", "0x20")
+ self.binary80_to_bid128("1", "[039bf29cee4be2d0c072]", "[0ba26f6431cfe6615746b0d43ecd2742]", "0x20")
+ self.binary80_to_bid128("2", "[039bf29cee4be2d0c072]", "[0ba26f6431cfe6615746b0d43ecd2743]", "0x20")
+ self.binary80_to_bid128("3", "[039bf29cee4be2d0c072]", "[0ba26f6431cfe6615746b0d43ecd2742]", "0x20")
+ self.binary80_to_bid128("4", "[039bf29cee4be2d0c072]", "[0ba26f6431cfe6615746b0d43ecd2743]", "0x20")
+ self.binary80_to_bid128("0", "[04e3e59d439169634ae0]", "[0c6839a59354d273c602f8f3219866ae]", "0x20")
+ self.binary80_to_bid128("1", "[04e3e59d439169634ae0]", "[0c6839a59354d273c602f8f3219866ae]", "0x20")
+ self.binary80_to_bid128("2", "[04e3e59d439169634ae0]", "[0c6839a59354d273c602f8f3219866af]", "0x20")
+ self.binary80_to_bid128("3", "[04e3e59d439169634ae0]", "[0c6839a59354d273c602f8f3219866ae]", "0x20")
+ self.binary80_to_bid128("4", "[04e3e59d439169634ae0]", "[0c6839a59354d273c602f8f3219866ae]", "0x20")
+ self.binary80_to_bid128("0", "[062a8a867f1163fff4d4]", "[0d2c5f15df5101e4ea828b1b6b77deea]", "0x20")
+ self.binary80_to_bid128("1", "[062a8a867f1163fff4d4]", "[0d2c5f15df5101e4ea828b1b6b77deea]", "0x20")
+ self.binary80_to_bid128("2", "[062a8a867f1163fff4d4]", "[0d2c5f15df5101e4ea828b1b6b77deeb]", "0x20")
+ self.binary80_to_bid128("3", "[062a8a867f1163fff4d4]", "[0d2c5f15df5101e4ea828b1b6b77deea]", "0x20")
+ self.binary80_to_bid128("4", "[062a8a867f1163fff4d4]", "[0d2c5f15df5101e4ea828b1b6b77deea]", "0x20")
+ self.binary80_to_bid128("0", "[0772f323b31074d976c0]", "[0df25b4276dd3c3bd3fa2ad70493238d]", "0x20")
+ self.binary80_to_bid128("1", "[0772f323b31074d976c0]", "[0df25b4276dd3c3bd3fa2ad70493238d]", "0x20")
+ self.binary80_to_bid128("2", "[0772f323b31074d976c0]", "[0df25b4276dd3c3bd3fa2ad70493238e]", "0x20")
+ self.binary80_to_bid128("3", "[0772f323b31074d976c0]", "[0df25b4276dd3c3bd3fa2ad70493238d]", "0x20")
+ self.binary80_to_bid128("4", "[0772f323b31074d976c0]", "[0df25b4276dd3c3bd3fa2ad70493238d]", "0x20")
+ self.binary80_to_bid128("0", "[08bbaa7439f5a1705c9e]", "[0eb845f7ca8082cabd975d01433d6c7e]", "0x20")
+ self.binary80_to_bid128("1", "[08bbaa7439f5a1705c9e]", "[0eb845f7ca8082cabd975d01433d6c7e]", "0x20")
+ self.binary80_to_bid128("2", "[08bbaa7439f5a1705c9e]", "[0eb845f7ca8082cabd975d01433d6c7f]", "0x20")
+ self.binary80_to_bid128("3", "[08bbaa7439f5a1705c9e]", "[0eb845f7ca8082cabd975d01433d6c7e]", "0x20")
+ self.binary80_to_bid128("4", "[08bbaa7439f5a1705c9e]", "[0eb845f7ca8082cabd975d01433d6c7e]", "0x20")
+ self.binary80_to_bid128("0", "[0a04fc80b214410492b3]", "[0f7e7159edf7a05637b9cb35cbbed567]", "0x20")
+ self.binary80_to_bid128("1", "[0a04fc80b214410492b3]", "[0f7e7159edf7a05637b9cb35cbbed567]", "0x20")
+ self.binary80_to_bid128("2", "[0a04fc80b214410492b3]", "[0f7e7159edf7a05637b9cb35cbbed568]", "0x20")
+ self.binary80_to_bid128("3", "[0a04fc80b214410492b3]", "[0f7e7159edf7a05637b9cb35cbbed567]", "0x20")
+ self.binary80_to_bid128("4", "[0a04fc80b214410492b3]", "[0f7e7159edf7a05637b9cb35cbbed567]", "0x20")
+ self.binary80_to_bid128("0", "[0b4ce2b9064ca8f796f2]", "[104437a7593a6c2152893ae0f12d981a]", "0x20")
+ self.binary80_to_bid128("1", "[0b4ce2b9064ca8f796f2]", "[104437a7593a6c2152893ae0f12d9819]", "0x20")
+ self.binary80_to_bid128("2", "[0b4ce2b9064ca8f796f2]", "[104437a7593a6c2152893ae0f12d981a]", "0x20")
+ self.binary80_to_bid128("3", "[0b4ce2b9064ca8f796f2]", "[104437a7593a6c2152893ae0f12d9819]", "0x20")
+ self.binary80_to_bid128("4", "[0b4ce2b9064ca8f796f2]", "[104437a7593a6c2152893ae0f12d981a]", "0x20")
+ self.binary80_to_bid128("0", "[0c91f7f3738feb64e410]", "[1107a004ec05f0a45a497a9195be2693]", "0x20")
+ self.binary80_to_bid128("1", "[0c91f7f3738feb64e410]", "[1107a004ec05f0a45a497a9195be2692]", "0x20")
+ self.binary80_to_bid128("2", "[0c91f7f3738feb64e410]", "[1107a004ec05f0a45a497a9195be2693]", "0x20")
+ self.binary80_to_bid128("3", "[0c91f7f3738feb64e410]", "[1107a004ec05f0a45a497a9195be2692]", "0x20")
+ self.binary80_to_bid128("4", "[0c91f7f3738feb64e410]", "[1107a004ec05f0a45a497a9195be2693]", "0x20")
+ self.binary80_to_bid128("0", "[0ddbc2a1e3a7d560ff14]", "[11ce476d432ccc57dc079bbfdff31608]", "0x20")
+ self.binary80_to_bid128("1", "[0ddbc2a1e3a7d560ff14]", "[11ce476d432ccc57dc079bbfdff31608]", "0x20")
+ self.binary80_to_bid128("2", "[0ddbc2a1e3a7d560ff14]", "[11ce476d432ccc57dc079bbfdff31609]", "0x20")
+ self.binary80_to_bid128("3", "[0ddbc2a1e3a7d560ff14]", "[11ce476d432ccc57dc079bbfdff31608]", "0x20")
+ self.binary80_to_bid128("4", "[0ddbc2a1e3a7d560ff14]", "[11ce476d432ccc57dc079bbfdff31608]", "0x20")
+ self.binary80_to_bid128("0", "[0f24a59e55aa447b7dca]", "[129442783c83ddf1ef8ddcd4ab2f8695]", "0x20")
+ self.binary80_to_bid128("1", "[0f24a59e55aa447b7dca]", "[129442783c83ddf1ef8ddcd4ab2f8694]", "0x20")
+ self.binary80_to_bid128("2", "[0f24a59e55aa447b7dca]", "[129442783c83ddf1ef8ddcd4ab2f8695]", "0x20")
+ self.binary80_to_bid128("3", "[0f24a59e55aa447b7dca]", "[129442783c83ddf1ef8ddcd4ab2f8694]", "0x20")
+ self.binary80_to_bid128("4", "[0f24a59e55aa447b7dca]", "[129442783c83ddf1ef8ddcd4ab2f8695]", "0x20")
+ self.binary80_to_bid128("0", "[106df34ccf5bd6938378]", "[135a6ac9eae42e771b8b2d80bd0b0549]", "0x20")
+ self.binary80_to_bid128("1", "[106df34ccf5bd6938378]", "[135a6ac9eae42e771b8b2d80bd0b0548]", "0x20")
+ self.binary80_to_bid128("2", "[106df34ccf5bd6938378]", "[135a6ac9eae42e771b8b2d80bd0b0549]", "0x20")
+ self.binary80_to_bid128("3", "[106df34ccf5bd6938378]", "[135a6ac9eae42e771b8b2d80bd0b0548]", "0x20")
+ self.binary80_to_bid128("4", "[106df34ccf5bd6938378]", "[135a6ac9eae42e771b8b2d80bd0b0549]", "0x20")
+ self.binary80_to_bid128("0", "[11b1c63999669c4b87b0]", "[141d295842ad895fd2cd6d047ce29818]", "0x20")
+ self.binary80_to_bid128("1", "[11b1c63999669c4b87b0]", "[141d295842ad895fd2cd6d047ce29817]", "0x20")
+ self.binary80_to_bid128("2", "[11b1c63999669c4b87b0]", "[141d295842ad895fd2cd6d047ce29818]", "0x20")
+ self.binary80_to_bid128("3", "[11b1c63999669c4b87b0]", "[141d295842ad895fd2cd6d047ce29817]", "0x20")
+ self.binary80_to_bid128("4", "[11b1c63999669c4b87b0]", "[141d295842ad895fd2cd6d047ce29818]", "0x20")
+ self.binary80_to_bid128("0", "[12fc8e7ff1d6717079d0]", "[14e45d81d23144bab98b4935e299b887]", "0x20")
+ self.binary80_to_bid128("1", "[12fc8e7ff1d6717079d0]", "[14e45d81d23144bab98b4935e299b886]", "0x20")
+ self.binary80_to_bid128("2", "[12fc8e7ff1d6717079d0]", "[14e45d81d23144bab98b4935e299b887]", "0x20")
+ self.binary80_to_bid128("3", "[12fc8e7ff1d6717079d0]", "[14e45d81d23144bab98b4935e299b886]", "0x20")
+ self.binary80_to_bid128("4", "[12fc8e7ff1d6717079d0]", "[14e45d81d23144bab98b4935e299b887]", "0x20")
+ self.binary80_to_bid128("0", "[1444e204e0a9e0d2fcd4]", "[15aa511946a002db0b518a4923c0ae67]", "0x20")
+ self.binary80_to_bid128("1", "[1444e204e0a9e0d2fcd4]", "[15aa511946a002db0b518a4923c0ae66]", "0x20")
+ self.binary80_to_bid128("2", "[1444e204e0a9e0d2fcd4]", "[15aa511946a002db0b518a4923c0ae67]", "0x20")
+ self.binary80_to_bid128("3", "[1444e204e0a9e0d2fcd4]", "[15aa511946a002db0b518a4923c0ae66]", "0x20")
+ self.binary80_to_bid128("4", "[1444e204e0a9e0d2fcd4]", "[15aa511946a002db0b518a4923c0ae67]", "0x20")
+ self.binary80_to_bid128("0", "[158dda38f07c1fbcbb38]", "[167055a1d611606c78ef1b0f5d5d0d8a]", "0x20")
+ self.binary80_to_bid128("1", "[158dda38f07c1fbcbb38]", "[167055a1d611606c78ef1b0f5d5d0d8a]", "0x20")
+ self.binary80_to_bid128("2", "[158dda38f07c1fbcbb38]", "[167055a1d611606c78ef1b0f5d5d0d8b]", "0x20")
+ self.binary80_to_bid128("3", "[158dda38f07c1fbcbb38]", "[167055a1d611606c78ef1b0f5d5d0d8a]", "0x20")
+ self.binary80_to_bid128("4", "[158dda38f07c1fbcbb38]", "[167055a1d611606c78ef1b0f5d5d0d8a]", "0x20")
+ self.binary80_to_bid128("0", "[16d6fbcdfe681f04a558]", "[17366c0fad4a4a0f652d6624358983b9]", "0x20")
+ self.binary80_to_bid128("1", "[16d6fbcdfe681f04a558]", "[17366c0fad4a4a0f652d6624358983b9]", "0x20")
+ self.binary80_to_bid128("2", "[16d6fbcdfe681f04a558]", "[17366c0fad4a4a0f652d6624358983ba]", "0x20")
+ self.binary80_to_bid128("3", "[16d6fbcdfe681f04a558]", "[17366c0fad4a4a0f652d6624358983b9]", "0x20")
+ self.binary80_to_bid128("4", "[16d6fbcdfe681f04a558]", "[17366c0fad4a4a0f652d6624358983b9]", "0x20")
+ self.binary80_to_bid128("0", "[181d907f4b755a94b7b4]", "[17faa98a74343f11bfc0b21ea4913ffc]", "0x20")
+ self.binary80_to_bid128("1", "[181d907f4b755a94b7b4]", "[17faa98a74343f11bfc0b21ea4913ffc]", "0x20")
+ self.binary80_to_bid128("2", "[181d907f4b755a94b7b4]", "[17faa98a74343f11bfc0b21ea4913ffd]", "0x20")
+ self.binary80_to_bid128("3", "[181d907f4b755a94b7b4]", "[17faa98a74343f11bfc0b21ea4913ffc]", "0x20")
+ self.binary80_to_bid128("4", "[181d907f4b755a94b7b4]", "[17faa98a74343f11bfc0b21ea4913ffc]", "0x20")
+ self.binary80_to_bid128("0", "[1964d516f0d44994b268]", "[18c0445b7f5db38c14ed6aaad2d0aaa7]", "0x20")
+ self.binary80_to_bid128("1", "[1964d516f0d44994b268]", "[18c0445b7f5db38c14ed6aaad2d0aaa7]", "0x20")
+ self.binary80_to_bid128("2", "[1964d516f0d44994b268]", "[18c0445b7f5db38c14ed6aaad2d0aaa8]", "0x20")
+ self.binary80_to_bid128("3", "[1964d516f0d44994b268]", "[18c0445b7f5db38c14ed6aaad2d0aaa7]", "0x20")
+ self.binary80_to_bid128("4", "[1964d516f0d44994b268]", "[18c0445b7f5db38c14ed6aaad2d0aaa7]", "0x20")
+ self.binary80_to_bid128("0", "[1aadfe43721ead2a0060]", "[19865933c758cfc7b1944845aa607398]", "0x20")
+ self.binary80_to_bid128("1", "[1aadfe43721ead2a0060]", "[19865933c758cfc7b1944845aa607398]", "0x20")
+ self.binary80_to_bid128("2", "[1aadfe43721ead2a0060]", "[19865933c758cfc7b1944845aa607399]", "0x20")
+ self.binary80_to_bid128("3", "[1aadfe43721ead2a0060]", "[19865933c758cfc7b1944845aa607398]", "0x20")
+ self.binary80_to_bid128("4", "[1aadfe43721ead2a0060]", "[19865933c758cfc7b1944845aa607398]", "0x20")
+ self.binary80_to_bid128("0", "[1bf58c13f99af4a07e28]", "[1a4b0cb866ae37998a137adc819dcc82]", "0x20")
+ self.binary80_to_bid128("1", "[1bf58c13f99af4a07e28]", "[1a4b0cb866ae37998a137adc819dcc82]", "0x20")
+ self.binary80_to_bid128("2", "[1bf58c13f99af4a07e28]", "[1a4b0cb866ae37998a137adc819dcc83]", "0x20")
+ self.binary80_to_bid128("3", "[1bf58c13f99af4a07e28]", "[1a4b0cb866ae37998a137adc819dcc82]", "0x20")
+ self.binary80_to_bid128("4", "[1bf58c13f99af4a07e28]", "[1a4b0cb866ae37998a137adc819dcc82]", "0x20")
+ self.binary80_to_bid128("0", "[1d3c94501df0fda8c6f0]", "[1b104dc9fb9462246c66a78b2a6a140a]", "0x20")
+ self.binary80_to_bid128("1", "[1d3c94501df0fda8c6f0]", "[1b104dc9fb9462246c66a78b2a6a140a]", "0x20")
+ self.binary80_to_bid128("2", "[1d3c94501df0fda8c6f0]", "[1b104dc9fb9462246c66a78b2a6a140b]", "0x20")
+ self.binary80_to_bid128("3", "[1d3c94501df0fda8c6f0]", "[1b104dc9fb9462246c66a78b2a6a140a]", "0x20")
+ self.binary80_to_bid128("4", "[1d3c94501df0fda8c6f0]", "[1b104dc9fb9462246c66a78b2a6a140a]", "0x20")
+ self.binary80_to_bid128("0", "[1e87f62f539bba60ca7b]", "[1bd8387c05a5618a059838bc2ea826ac]", "0x20")
+ self.binary80_to_bid128("1", "[1e87f62f539bba60ca7b]", "[1bd8387c05a5618a059838bc2ea826ac]", "0x20")
+ self.binary80_to_bid128("2", "[1e87f62f539bba60ca7b]", "[1bd8387c05a5618a059838bc2ea826ad]", "0x20")
+ self.binary80_to_bid128("3", "[1e87f62f539bba60ca7b]", "[1bd8387c05a5618a059838bc2ea826ac]", "0x20")
+ self.binary80_to_bid128("4", "[1e87f62f539bba60ca7b]", "[1bd8387c05a5618a059838bc2ea826ac]", "0x20")
+ self.binary80_to_bid128("0", "[1fce90cd3bb087f93e14]", "[1c9c5ad594601d8eb5ea931dd2b9d9e7]", "0x20")
+ self.binary80_to_bid128("1", "[1fce90cd3bb087f93e14]", "[1c9c5ad594601d8eb5ea931dd2b9d9e7]", "0x20")
+ self.binary80_to_bid128("2", "[1fce90cd3bb087f93e14]", "[1c9c5ad594601d8eb5ea931dd2b9d9e8]", "0x20")
+ self.binary80_to_bid128("3", "[1fce90cd3bb087f93e14]", "[1c9c5ad594601d8eb5ea931dd2b9d9e7]", "0x20")
+ self.binary80_to_bid128("4", "[1fce90cd3bb087f93e14]", "[1c9c5ad594601d8eb5ea931dd2b9d9e7]", "0x20")
+ self.binary80_to_bid128("0", "[2116e6e57f95928a45dc]", "[1d624f3385e4dd97b2d271a7d3f31e87]", "0x20")
+ self.binary80_to_bid128("1", "[2116e6e57f95928a45dc]", "[1d624f3385e4dd97b2d271a7d3f31e86]", "0x20")
+ self.binary80_to_bid128("2", "[2116e6e57f95928a45dc]", "[1d624f3385e4dd97b2d271a7d3f31e87]", "0x20")
+ self.binary80_to_bid128("3", "[2116e6e57f95928a45dc]", "[1d624f3385e4dd97b2d271a7d3f31e86]", "0x20")
+ self.binary80_to_bid128("4", "[2116e6e57f95928a45dc]", "[1d624f3385e4dd97b2d271a7d3f31e87]", "0x20")
+ self.binary80_to_bid128("0", "[2260e60dd861fa8f00eb]", "[1e28ac99db1df6da699a374eadcb96f2]", "0x20")
+ self.binary80_to_bid128("1", "[2260e60dd861fa8f00eb]", "[1e28ac99db1df6da699a374eadcb96f1]", "0x20")
+ self.binary80_to_bid128("2", "[2260e60dd861fa8f00eb]", "[1e28ac99db1df6da699a374eadcb96f2]", "0x20")
+ self.binary80_to_bid128("3", "[2260e60dd861fa8f00eb]", "[1e28ac99db1df6da699a374eadcb96f1]", "0x20")
+ self.binary80_to_bid128("4", "[2260e60dd861fa8f00eb]", "[1e28ac99db1df6da699a374eadcb96f2]", "0x20")
+ self.binary80_to_bid128("0", "[23a891ab9a310597c7d1]", "[1eee3bc2ff7242192b1ef9a6b0109c78]", "0x20")
+ self.binary80_to_bid128("1", "[23a891ab9a310597c7d1]", "[1eee3bc2ff7242192b1ef9a6b0109c78]", "0x20")
+ self.binary80_to_bid128("2", "[23a891ab9a310597c7d1]", "[1eee3bc2ff7242192b1ef9a6b0109c79]", "0x20")
+ self.binary80_to_bid128("3", "[23a891ab9a310597c7d1]", "[1eee3bc2ff7242192b1ef9a6b0109c78]", "0x20")
+ self.binary80_to_bid128("4", "[23a891ab9a310597c7d1]", "[1eee3bc2ff7242192b1ef9a6b0109c78]", "0x20")
+ self.binary80_to_bid128("0", "[24f086e5a1ec8430faec]", "[1fb32e9ddc91f97ba97ec4fc587a04fc]", "0x20")
+ self.binary80_to_bid128("1", "[24f086e5a1ec8430faec]", "[1fb32e9ddc91f97ba97ec4fc587a04fb]", "0x20")
+ self.binary80_to_bid128("2", "[24f086e5a1ec8430faec]", "[1fb32e9ddc91f97ba97ec4fc587a04fc]", "0x20")
+ self.binary80_to_bid128("3", "[24f086e5a1ec8430faec]", "[1fb32e9ddc91f97ba97ec4fc587a04fb]", "0x20")
+ self.binary80_to_bid128("4", "[24f086e5a1ec8430faec]", "[1fb32e9ddc91f97ba97ec4fc587a04fc]", "0x20")
+ self.binary80_to_bid128("0", "[26379e5f36d4fc11a49c]", "[20786122a64c7fa373376b9726a98e2d]", "0x20")
+ self.binary80_to_bid128("1", "[26379e5f36d4fc11a49c]", "[20786122a64c7fa373376b9726a98e2c]", "0x20")
+ self.binary80_to_bid128("2", "[26379e5f36d4fc11a49c]", "[20786122a64c7fa373376b9726a98e2d]", "0x20")
+ self.binary80_to_bid128("3", "[26379e5f36d4fc11a49c]", "[20786122a64c7fa373376b9726a98e2c]", "0x20")
+ self.binary80_to_bid128("4", "[26379e5f36d4fc11a49c]", "[20786122a64c7fa373376b9726a98e2d]", "0x20")
+ self.binary80_to_bid128("0", "[277f872c4dad3472b74c]", "[213dc5580d02e45573952c45198f9df6]", "0x20")
+ self.binary80_to_bid128("1", "[277f872c4dad3472b74c]", "[213dc5580d02e45573952c45198f9df5]", "0x20")
+ self.binary80_to_bid128("2", "[277f872c4dad3472b74c]", "[213dc5580d02e45573952c45198f9df6]", "0x20")
+ self.binary80_to_bid128("3", "[277f872c4dad3472b74c]", "[213dc5580d02e45573952c45198f9df5]", "0x20")
+ self.binary80_to_bid128("4", "[277f872c4dad3472b74c]", "[213dc5580d02e45573952c45198f9df6]", "0x20")
+ self.binary80_to_bid128("0", "[28c9c75bd27de1c7cb45]", "[2204923de3cc059b621ccf19a282ee7e]", "0x20")
+ self.binary80_to_bid128("1", "[28c9c75bd27de1c7cb45]", "[2204923de3cc059b621ccf19a282ee7e]", "0x20")
+ self.binary80_to_bid128("2", "[28c9c75bd27de1c7cb45]", "[2204923de3cc059b621ccf19a282ee7f]", "0x20")
+ self.binary80_to_bid128("3", "[28c9c75bd27de1c7cb45]", "[2204923de3cc059b621ccf19a282ee7e]", "0x20")
+ self.binary80_to_bid128("4", "[28c9c75bd27de1c7cb45]", "[2204923de3cc059b621ccf19a282ee7e]", "0x20")
+ self.binary80_to_bid128("0", "[2a11fe5770b0b87ead67]", "[22ca66058808fc9f11d194f5a07048ce]", "0x20")
+ self.binary80_to_bid128("1", "[2a11fe5770b0b87ead67]", "[22ca66058808fc9f11d194f5a07048ce]", "0x20")
+ self.binary80_to_bid128("2", "[2a11fe5770b0b87ead67]", "[22ca66058808fc9f11d194f5a07048cf]", "0x20")
+ self.binary80_to_bid128("3", "[2a11fe5770b0b87ead67]", "[22ca66058808fc9f11d194f5a07048ce]", "0x20")
+ self.binary80_to_bid128("4", "[2a11fe5770b0b87ead67]", "[22ca66058808fc9f11d194f5a07048ce]", "0x20")
+ self.binary80_to_bid128("0", "[2b589d05b8cc07df58ce]", "[238eac34641fb5e8abc0e9045211b5ac]", "0x20")
+ self.binary80_to_bid128("1", "[2b589d05b8cc07df58ce]", "[238eac34641fb5e8abc0e9045211b5ac]", "0x20")
+ self.binary80_to_bid128("2", "[2b589d05b8cc07df58ce]", "[238eac34641fb5e8abc0e9045211b5ad]", "0x20")
+ self.binary80_to_bid128("3", "[2b589d05b8cc07df58ce]", "[238eac34641fb5e8abc0e9045211b5ac]", "0x20")
+ self.binary80_to_bid128("4", "[2b589d05b8cc07df58ce]", "[238eac34641fb5e8abc0e9045211b5ac]", "0x20")
+ self.binary80_to_bid128("0", "[2c9cfd14c99a5cf3f900]", "[24525edaf909665f2b540e7a9e9e9a9d]", "0x20")
+ self.binary80_to_bid128("1", "[2c9cfd14c99a5cf3f900]", "[24525edaf909665f2b540e7a9e9e9a9d]", "0x20")
+ self.binary80_to_bid128("2", "[2c9cfd14c99a5cf3f900]", "[24525edaf909665f2b540e7a9e9e9a9e]", "0x20")
+ self.binary80_to_bid128("3", "[2c9cfd14c99a5cf3f900]", "[24525edaf909665f2b540e7a9e9e9a9d]", "0x20")
+ self.binary80_to_bid128("4", "[2c9cfd14c99a5cf3f900]", "[24525edaf909665f2b540e7a9e9e9a9d]", "0x20")
+ self.binary80_to_bid128("0", "[2de8edf95ac951a4b308]", "[251a4e08fe280a6f663ebe2279dc563e]", "0x20")
+ self.binary80_to_bid128("1", "[2de8edf95ac951a4b308]", "[251a4e08fe280a6f663ebe2279dc563e]", "0x20")
+ self.binary80_to_bid128("2", "[2de8edf95ac951a4b308]", "[251a4e08fe280a6f663ebe2279dc563f]", "0x20")
+ self.binary80_to_bid128("3", "[2de8edf95ac951a4b308]", "[251a4e08fe280a6f663ebe2279dc563e]", "0x20")
+ self.binary80_to_bid128("4", "[2de8edf95ac951a4b308]", "[251a4e08fe280a6f663ebe2279dc563e]", "0x20")
+ self.binary80_to_bid128("0", "[2f32fd948860275b4800]", "[25e0b5e02876f59290cab87f49c2e66d]", "0x20")
+ self.binary80_to_bid128("1", "[2f32fd948860275b4800]", "[25e0b5e02876f59290cab87f49c2e66d]", "0x20")
+ self.binary80_to_bid128("2", "[2f32fd948860275b4800]", "[25e0b5e02876f59290cab87f49c2e66e]", "0x20")
+ self.binary80_to_bid128("3", "[2f32fd948860275b4800]", "[25e0b5e02876f59290cab87f49c2e66d]", "0x20")
+ self.binary80_to_bid128("4", "[2f32fd948860275b4800]", "[25e0b5e02876f59290cab87f49c2e66d]", "0x20")
+ self.binary80_to_bid128("0", "[3079818e1c54179c0d52]", "[26a4fe0d43651b8d9df1a1a5d7de7586]", "0x20")
+ self.binary80_to_bid128("1", "[3079818e1c54179c0d52]", "[26a4fe0d43651b8d9df1a1a5d7de7586]", "0x20")
+ self.binary80_to_bid128("2", "[3079818e1c54179c0d52]", "[26a4fe0d43651b8d9df1a1a5d7de7587]", "0x20")
+ self.binary80_to_bid128("3", "[3079818e1c54179c0d52]", "[26a4fe0d43651b8d9df1a1a5d7de7586]", "0x20")
+ self.binary80_to_bid128("4", "[3079818e1c54179c0d52]", "[26a4fe0d43651b8d9df1a1a5d7de7586]", "0x20")
+ self.binary80_to_bid128("0", "[31c2a41fd1530d0cdff5]", "[276b5ff90b69d7c1dc88e5913530a12c]", "0x20")
+ self.binary80_to_bid128("1", "[31c2a41fd1530d0cdff5]", "[276b5ff90b69d7c1dc88e5913530a12b]", "0x20")
+ self.binary80_to_bid128("2", "[31c2a41fd1530d0cdff5]", "[276b5ff90b69d7c1dc88e5913530a12c]", "0x20")
+ self.binary80_to_bid128("3", "[31c2a41fd1530d0cdff5]", "[276b5ff90b69d7c1dc88e5913530a12b]", "0x20")
+ self.binary80_to_bid128("4", "[31c2a41fd1530d0cdff5]", "[276b5ff90b69d7c1dc88e5913530a12c]", "0x20")
+ self.binary80_to_bid128("0", "[33099e3ed76308864e84]", "[28305cc8df4553d5104f3cdf16f2eaca]", "0x20")
+ self.binary80_to_bid128("1", "[33099e3ed76308864e84]", "[28305cc8df4553d5104f3cdf16f2eaca]", "0x20")
+ self.binary80_to_bid128("2", "[33099e3ed76308864e84]", "[28305cc8df4553d5104f3cdf16f2eacb]", "0x20")
+ self.binary80_to_bid128("3", "[33099e3ed76308864e84]", "[28305cc8df4553d5104f3cdf16f2eaca]", "0x20")
+ self.binary80_to_bid128("4", "[33099e3ed76308864e84]", "[28305cc8df4553d5104f3cdf16f2eaca]", "0x20")
+ self.binary80_to_bid128("0", "[3450ad1983d5e0b33f00]", "[28f5157dd2f67b20d76b446d5678f9bd]", "0x20")
+ self.binary80_to_bid128("1", "[3450ad1983d5e0b33f00]", "[28f5157dd2f67b20d76b446d5678f9bd]", "0x20")
+ self.binary80_to_bid128("2", "[3450ad1983d5e0b33f00]", "[28f5157dd2f67b20d76b446d5678f9be]", "0x20")
+ self.binary80_to_bid128("3", "[3450ad1983d5e0b33f00]", "[28f5157dd2f67b20d76b446d5678f9bd]", "0x20")
+ self.binary80_to_bid128("4", "[3450ad1983d5e0b33f00]", "[28f5157dd2f67b20d76b446d5678f9bd]", "0x20")
+ self.binary80_to_bid128("0", "[359ae09fded3074d15fe]", "[29bc4ec2b80c0580ab900615eefacb8c]", "0x20")
+ self.binary80_to_bid128("1", "[359ae09fded3074d15fe]", "[29bc4ec2b80c0580ab900615eefacb8c]", "0x20")
+ self.binary80_to_bid128("2", "[359ae09fded3074d15fe]", "[29bc4ec2b80c0580ab900615eefacb8d]", "0x20")
+ self.binary80_to_bid128("3", "[359ae09fded3074d15fe]", "[29bc4ec2b80c0580ab900615eefacb8c]", "0x20")
+ self.binary80_to_bid128("4", "[359ae09fded3074d15fe]", "[29bc4ec2b80c0580ab900615eefacb8c]", "0x20")
+ self.binary80_to_bid128("0", "[36e3fa8abc0d1aa09da4]", "[2a826012ab3c5568c8c748e2ed93253a]", "0x20")
+ self.binary80_to_bid128("1", "[36e3fa8abc0d1aa09da4]", "[2a826012ab3c5568c8c748e2ed93253a]", "0x20")
+ self.binary80_to_bid128("2", "[36e3fa8abc0d1aa09da4]", "[2a826012ab3c5568c8c748e2ed93253b]", "0x20")
+ self.binary80_to_bid128("3", "[36e3fa8abc0d1aa09da4]", "[2a826012ab3c5568c8c748e2ed93253a]", "0x20")
+ self.binary80_to_bid128("4", "[36e3fa8abc0d1aa09da4]", "[2a826012ab3c5568c8c748e2ed93253a]", "0x20")
+ self.binary80_to_bid128("0", "[382bff228e4568e85b77]", "[2b48357f39686b6face0be5d6b7c0efc]", "0x20")
+ self.binary80_to_bid128("1", "[382bff228e4568e85b77]", "[2b48357f39686b6face0be5d6b7c0efc]", "0x20")
+ self.binary80_to_bid128("2", "[382bff228e4568e85b77]", "[2b48357f39686b6face0be5d6b7c0efd]", "0x20")
+ self.binary80_to_bid128("3", "[382bff228e4568e85b77]", "[2b48357f39686b6face0be5d6b7c0efc]", "0x20")
+ self.binary80_to_bid128("4", "[382bff228e4568e85b77]", "[2b48357f39686b6face0be5d6b7c0efc]", "0x20")
+ self.binary80_to_bid128("0", "[39728293290235b5693c]", "[2c0c4adb2a33023fa3d07203c9019c90]", "0x20")
+ self.binary80_to_bid128("1", "[39728293290235b5693c]", "[2c0c4adb2a33023fa3d07203c9019c8f]", "0x20")
+ self.binary80_to_bid128("2", "[39728293290235b5693c]", "[2c0c4adb2a33023fa3d07203c9019c90]", "0x20")
+ self.binary80_to_bid128("3", "[39728293290235b5693c]", "[2c0c4adb2a33023fa3d07203c9019c8f]", "0x20")
+ self.binary80_to_bid128("4", "[39728293290235b5693c]", "[2c0c4adb2a33023fa3d07203c9019c90]", "0x20")
+ self.binary80_to_bid128("0", "[3ab9c38cd4b87cade0f8]", "[2cd13280b673dd1e11999fa614e81c0c]", "0x20")
+ self.binary80_to_bid128("1", "[3ab9c38cd4b87cade0f8]", "[2cd13280b673dd1e11999fa614e81c0b]", "0x20")
+ self.binary80_to_bid128("2", "[3ab9c38cd4b87cade0f8]", "[2cd13280b673dd1e11999fa614e81c0c]", "0x20")
+ self.binary80_to_bid128("3", "[3ab9c38cd4b87cade0f8]", "[2cd13280b673dd1e11999fa614e81c0b]", "0x20")
+ self.binary80_to_bid128("4", "[3ab9c38cd4b87cade0f8]", "[2cd13280b673dd1e11999fa614e81c0c]", "0x20")
+ self.binary80_to_bid128("0", "[3c04e57990fc48c28f58]", "[2d989d571f384cb653c49237b3160037]", "0x20")
+ self.binary80_to_bid128("1", "[3c04e57990fc48c28f58]", "[2d989d571f384cb653c49237b3160037]", "0x20")
+ self.binary80_to_bid128("2", "[3c04e57990fc48c28f58]", "[2d989d571f384cb653c49237b3160038]", "0x20")
+ self.binary80_to_bid128("3", "[3c04e57990fc48c28f58]", "[2d989d571f384cb653c49237b3160037]", "0x20")
+ self.binary80_to_bid128("4", "[3c04e57990fc48c28f58]", "[2d989d571f384cb653c49237b3160037]", "0x20")
+ self.binary80_to_bid128("0", "[3d4bea083260b0b07e14]", "[2e5db6b8a9cdb90911c6148d0c2f71fc]", "0x20")
+ self.binary80_to_bid128("1", "[3d4bea083260b0b07e14]", "[2e5db6b8a9cdb90911c6148d0c2f71fc]", "0x20")
+ self.binary80_to_bid128("2", "[3d4bea083260b0b07e14]", "[2e5db6b8a9cdb90911c6148d0c2f71fd]", "0x20")
+ self.binary80_to_bid128("3", "[3d4bea083260b0b07e14]", "[2e5db6b8a9cdb90911c6148d0c2f71fc]", "0x20")
+ self.binary80_to_bid128("4", "[3d4bea083260b0b07e14]", "[2e5db6b8a9cdb90911c6148d0c2f71fc]", "0x20")
+ self.binary80_to_bid128("0", "[3e949d71e353fdc566e5]", "[2f2342c86f47d6565a304182af9f6b98]", "0x20")
+ self.binary80_to_bid128("1", "[3e949d71e353fdc566e5]", "[2f2342c86f47d6565a304182af9f6b97]", "0x20")
+ self.binary80_to_bid128("2", "[3e949d71e353fdc566e5]", "[2f2342c86f47d6565a304182af9f6b98]", "0x20")
+ self.binary80_to_bid128("3", "[3e949d71e353fdc566e5]", "[2f2342c86f47d6565a304182af9f6b97]", "0x20")
+ self.binary80_to_bid128("4", "[3e949d71e353fdc566e5]", "[2f2342c86f47d6565a304182af9f6b98]", "0x20")
+ self.binary80_to_bid128("0", "[3fdbafc849d391eb470c]", "[2fe8628788b46b512140fce2a094ea89]", "0x20")
+ self.binary80_to_bid128("1", "[3fdbafc849d391eb470c]", "[2fe8628788b46b512140fce2a094ea88]", "0x20")
+ self.binary80_to_bid128("2", "[3fdbafc849d391eb470c]", "[2fe8628788b46b512140fce2a094ea89]", "0x20")
+ self.binary80_to_bid128("3", "[3fdbafc849d391eb470c]", "[2fe8628788b46b512140fce2a094ea88]", "0x20")
+ self.binary80_to_bid128("4", "[3fdbafc849d391eb470c]", "[2fe8628788b46b512140fce2a094ea89]", "0x20")
+ self.binary80_to_bid128("0", "[3ffad000000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("1", "[3ffad000000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("2", "[3ffad000000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("3", "[3ffad000000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("4", "[3ffad000000000000000]", "[303000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("0", "[3fff8000000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("1", "[3fff8000000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("2", "[3fff8000000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("3", "[3fff8000000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("4", "[3fff8000000000000000]", "[30400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("0", "[3fffc000000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("1", "[3fffc000000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("2", "[3fffc000000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("3", "[3fffc000000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("4", "[3fffc000000000000000]", "[303e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("0", "[40058000000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("1", "[40058000000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("2", "[40058000000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("3", "[40058000000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("4", "[40058000000000000000]", "[30400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("0", "[4008f9c0000000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("1", "[4008f9c0000000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("2", "[4008f9c0000000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("3", "[4008f9c0000000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("4", "[4008f9c0000000000000]", "[304000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("0", "[4008fa00000000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("1", "[4008fa00000000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("2", "[4008fa00000000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("3", "[4008fa00000000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("4", "[4008fa00000000000000]", "[304000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("0", "[4121a26d6b3b37bd06c0]", "[30ac7c75ab6481dda6bca4ffbe05e57f]", "0x20")
+ self.binary80_to_bid128("1", "[4121a26d6b3b37bd06c0]", "[30ac7c75ab6481dda6bca4ffbe05e57e]", "0x20")
+ self.binary80_to_bid128("2", "[4121a26d6b3b37bd06c0]", "[30ac7c75ab6481dda6bca4ffbe05e57f]", "0x20")
+ self.binary80_to_bid128("3", "[4121a26d6b3b37bd06c0]", "[30ac7c75ab6481dda6bca4ffbe05e57e]", "0x20")
+ self.binary80_to_bid128("4", "[4121a26d6b3b37bd06c0]", "[30ac7c75ab6481dda6bca4ffbe05e57f]", "0x20")
+ self.binary80_to_bid128("0", "[426df0c64fe1d212722f]", "[3174a169bb81af25df1153c111ccfbcb]", "0x20")
+ self.binary80_to_bid128("1", "[426df0c64fe1d212722f]", "[3174a169bb81af25df1153c111ccfbca]", "0x20")
+ self.binary80_to_bid128("2", "[426df0c64fe1d212722f]", "[3174a169bb81af25df1153c111ccfbcb]", "0x20")
+ self.binary80_to_bid128("3", "[426df0c64fe1d212722f]", "[3174a169bb81af25df1153c111ccfbca]", "0x20")
+ self.binary80_to_bid128("4", "[426df0c64fe1d212722f]", "[3174a169bb81af25df1153c111ccfbcb]", "0x20")
+ self.binary80_to_bid128("0", "[43b5eb101a827a2a82d2]", "[323a562b3be061abad5397f44cbfdac2]", "0x20")
+ self.binary80_to_bid128("1", "[43b5eb101a827a2a82d2]", "[323a562b3be061abad5397f44cbfdac1]", "0x20")
+ self.binary80_to_bid128("2", "[43b5eb101a827a2a82d2]", "[323a562b3be061abad5397f44cbfdac2]", "0x20")
+ self.binary80_to_bid128("3", "[43b5eb101a827a2a82d2]", "[323a562b3be061abad5397f44cbfdac1]", "0x20")
+ self.binary80_to_bid128("4", "[43b5eb101a827a2a82d2]", "[323a562b3be061abad5397f44cbfdac2]", "0x20")
+ self.binary80_to_bid128("0", "[44fde62db6a3aed71652]", "[32ffcd6449ab9ba53296b7caf257a22c]", "0x20")
+ self.binary80_to_bid128("1", "[44fde62db6a3aed71652]", "[32ffcd6449ab9ba53296b7caf257a22c]", "0x20")
+ self.binary80_to_bid128("2", "[44fde62db6a3aed71652]", "[32ffcd6449ab9ba53296b7caf257a22d]", "0x20")
+ self.binary80_to_bid128("3", "[44fde62db6a3aed71652]", "[32ffcd6449ab9ba53296b7caf257a22c]", "0x20")
+ self.binary80_to_bid128("4", "[44fde62db6a3aed71652]", "[32ffcd6449ab9ba53296b7caf257a22c]", "0x20")
+ self.binary80_to_bid128("0", "[4643f73e86c82535d3c0]", "[33c443c00442a031732845fd1134f5e3]", "0x20")
+ self.binary80_to_bid128("1", "[4643f73e86c82535d3c0]", "[33c443c00442a031732845fd1134f5e2]", "0x20")
+ self.binary80_to_bid128("2", "[4643f73e86c82535d3c0]", "[33c443c00442a031732845fd1134f5e3]", "0x20")
+ self.binary80_to_bid128("3", "[4643f73e86c82535d3c0]", "[33c443c00442a031732845fd1134f5e2]", "0x20")
+ self.binary80_to_bid128("4", "[4643f73e86c82535d3c0]", "[33c443c00442a031732845fd1134f5e3]", "0x20")
+ self.binary80_to_bid128("0", "[478d96f10234c8f5459a]", "[348a5a7792b554507226f387f32a3149]", "0x20")
+ self.binary80_to_bid128("1", "[478d96f10234c8f5459a]", "[348a5a7792b554507226f387f32a3149]", "0x20")
+ self.binary80_to_bid128("2", "[478d96f10234c8f5459a]", "[348a5a7792b554507226f387f32a314a]", "0x20")
+ self.binary80_to_bid128("3", "[478d96f10234c8f5459a]", "[348a5a7792b554507226f387f32a3149]", "0x20")
+ self.binary80_to_bid128("4", "[478d96f10234c8f5459a]", "[348a5a7792b554507226f387f32a3149]", "0x20")
+ self.binary80_to_bid128("0", "[48d589b0973b357efcde]", "[354fc341659838a363c081ac3a5bb122]", "0x20")
+ self.binary80_to_bid128("1", "[48d589b0973b357efcde]", "[354fc341659838a363c081ac3a5bb122]", "0x20")
+ self.binary80_to_bid128("2", "[48d589b0973b357efcde]", "[354fc341659838a363c081ac3a5bb123]", "0x20")
+ self.binary80_to_bid128("3", "[48d589b0973b357efcde]", "[354fc341659838a363c081ac3a5bb122]", "0x20")
+ self.binary80_to_bid128("4", "[48d589b0973b357efcde]", "[354fc341659838a363c081ac3a5bb122]", "0x20")
+ self.binary80_to_bid128("0", "[4a1eb272eba3c732d27d]", "[36163ff58f4690eee7dada53270a0972]", "0x20")
+ self.binary80_to_bid128("1", "[4a1eb272eba3c732d27d]", "[36163ff58f4690eee7dada53270a0972]", "0x20")
+ self.binary80_to_bid128("2", "[4a1eb272eba3c732d27d]", "[36163ff58f4690eee7dada53270a0973]", "0x20")
+ self.binary80_to_bid128("3", "[4a1eb272eba3c732d27d]", "[36163ff58f4690eee7dada53270a0972]", "0x20")
+ self.binary80_to_bid128("4", "[4a1eb272eba3c732d27d]", "[36163ff58f4690eee7dada53270a0972]", "0x20")
+ self.binary80_to_bid128("0", "[4b66fbe22374349e657c]", "[36dc315dad59d50cecb256f24ab6643a]", "0x20")
+ self.binary80_to_bid128("1", "[4b66fbe22374349e657c]", "[36dc315dad59d50cecb256f24ab6643a]", "0x20")
+ self.binary80_to_bid128("2", "[4b66fbe22374349e657c]", "[36dc315dad59d50cecb256f24ab6643b]", "0x20")
+ self.binary80_to_bid128("3", "[4b66fbe22374349e657c]", "[36dc315dad59d50cecb256f24ab6643a]", "0x20")
+ self.binary80_to_bid128("4", "[4b66fbe22374349e657c]", "[36dc315dad59d50cecb256f24ab6643a]", "0x20")
+ self.binary80_to_bid128("0", "[4cacb6a16d4821970d18]", "[379fe94e264208287294e60a5a823c7a]", "0x20")
+ self.binary80_to_bid128("1", "[4cacb6a16d4821970d18]", "[379fe94e264208287294e60a5a823c79]", "0x20")
+ self.binary80_to_bid128("2", "[4cacb6a16d4821970d18]", "[379fe94e264208287294e60a5a823c7a]", "0x20")
+ self.binary80_to_bid128("3", "[4cacb6a16d4821970d18]", "[379fe94e264208287294e60a5a823c79]", "0x20")
+ self.binary80_to_bid128("4", "[4cacb6a16d4821970d18]", "[379fe94e264208287294e60a5a823c7a]", "0x20")
+ self.binary80_to_bid128("0", "[4df684842818bba6ca46]", "[38664da7e4931945186d1a7a6ae220c5]", "0x20")
+ self.binary80_to_bid128("1", "[4df684842818bba6ca46]", "[38664da7e4931945186d1a7a6ae220c4]", "0x20")
+ self.binary80_to_bid128("2", "[4df684842818bba6ca46]", "[38664da7e4931945186d1a7a6ae220c5]", "0x20")
+ self.binary80_to_bid128("3", "[4df684842818bba6ca46]", "[38664da7e4931945186d1a7a6ae220c4]", "0x20")
+ self.binary80_to_bid128("4", "[4df684842818bba6ca46]", "[38664da7e4931945186d1a7a6ae220c5]", "0x20")
+ self.binary80_to_bid128("0", "[4f3fc5fd3ad9de2d640b]", "[392c7ee2e9d39fe2883fb775b7c2593f]", "0x20")
+ self.binary80_to_bid128("1", "[4f3fc5fd3ad9de2d640b]", "[392c7ee2e9d39fe2883fb775b7c2593f]", "0x20")
+ self.binary80_to_bid128("2", "[4f3fc5fd3ad9de2d640b]", "[392c7ee2e9d39fe2883fb775b7c25940]", "0x20")
+ self.binary80_to_bid128("3", "[4f3fc5fd3ad9de2d640b]", "[392c7ee2e9d39fe2883fb775b7c2593f]", "0x20")
+ self.binary80_to_bid128("4", "[4f3fc5fd3ad9de2d640b]", "[392c7ee2e9d39fe2883fb775b7c2593f]", "0x20")
+ self.binary80_to_bid128("0", "[5087c8839079a3c8f91d]", "[39f2464491d1ea81d1aebf524fbd8148]", "0x20")
+ self.binary80_to_bid128("1", "[5087c8839079a3c8f91d]", "[39f2464491d1ea81d1aebf524fbd8148]", "0x20")
+ self.binary80_to_bid128("2", "[5087c8839079a3c8f91d]", "[39f2464491d1ea81d1aebf524fbd8149]", "0x20")
+ self.binary80_to_bid128("3", "[5087c8839079a3c8f91d]", "[39f2464491d1ea81d1aebf524fbd8148]", "0x20")
+ self.binary80_to_bid128("4", "[5087c8839079a3c8f91d]", "[39f2464491d1ea81d1aebf524fbd8148]", "0x20")
+ self.binary80_to_bid128("0", "[51ccc5d55494b3f4f0c0]", "[3ab5d9defc47d3a11e4b2b82b0899061]", "0x20")
+ self.binary80_to_bid128("1", "[51ccc5d55494b3f4f0c0]", "[3ab5d9defc47d3a11e4b2b82b0899061]", "0x20")
+ self.binary80_to_bid128("2", "[51ccc5d55494b3f4f0c0]", "[3ab5d9defc47d3a11e4b2b82b0899062]", "0x20")
+ self.binary80_to_bid128("3", "[51ccc5d55494b3f4f0c0]", "[3ab5d9defc47d3a11e4b2b82b0899061]", "0x20")
+ self.binary80_to_bid128("4", "[51ccc5d55494b3f4f0c0]", "[3ab5d9defc47d3a11e4b2b82b0899061]", "0x20")
+ self.binary80_to_bid128("0", "[5315e2a110c1fb1f86c0]", "[3b7c3b5df3941d1dc62955852fcba29d]", "0x20")
+ self.binary80_to_bid128("1", "[5315e2a110c1fb1f86c0]", "[3b7c3b5df3941d1dc62955852fcba29c]", "0x20")
+ self.binary80_to_bid128("2", "[5315e2a110c1fb1f86c0]", "[3b7c3b5df3941d1dc62955852fcba29d]", "0x20")
+ self.binary80_to_bid128("3", "[5315e2a110c1fb1f86c0]", "[3b7c3b5df3941d1dc62955852fcba29c]", "0x20")
+ self.binary80_to_bid128("4", "[5315e2a110c1fb1f86c0]", "[3b7c3b5df3941d1dc62955852fcba29d]", "0x20")
+ self.binary80_to_bid128("0", "[545ec3debf2bc7c72034]", "[3c42381d030a548eef6f59127052b34b]", "0x20")
+ self.binary80_to_bid128("1", "[545ec3debf2bc7c72034]", "[3c42381d030a548eef6f59127052b34b]", "0x20")
+ self.binary80_to_bid128("2", "[545ec3debf2bc7c72034]", "[3c42381d030a548eef6f59127052b34c]", "0x20")
+ self.binary80_to_bid128("3", "[545ec3debf2bc7c72034]", "[3c42381d030a548eef6f59127052b34b]", "0x20")
+ self.binary80_to_bid128("4", "[545ec3debf2bc7c72034]", "[3c42381d030a548eef6f59127052b34b]", "0x20")
+ self.binary80_to_bid128("0", "[55a89a5eba73624703af]", "[3d0860bac7ad1db7c876f8be2311ae5f]", "0x20")
+ self.binary80_to_bid128("1", "[55a89a5eba73624703af]", "[3d0860bac7ad1db7c876f8be2311ae5e]", "0x20")
+ self.binary80_to_bid128("2", "[55a89a5eba73624703af]", "[3d0860bac7ad1db7c876f8be2311ae5f]", "0x20")
+ self.binary80_to_bid128("3", "[55a89a5eba73624703af]", "[3d0860bac7ad1db7c876f8be2311ae5e]", "0x20")
+ self.binary80_to_bid128("4", "[55a89a5eba73624703af]", "[3d0860bac7ad1db7c876f8be2311ae5f]", "0x20")
+ self.binary80_to_bid128("0", "[56eebd56b7e40ad395d4]", "[3dcca22fb9e53ab86e57f576a2e7e7d8]", "0x20")
+ self.binary80_to_bid128("1", "[56eebd56b7e40ad395d4]", "[3dcca22fb9e53ab86e57f576a2e7e7d7]", "0x20")
+ self.binary80_to_bid128("2", "[56eebd56b7e40ad395d4]", "[3dcca22fb9e53ab86e57f576a2e7e7d8]", "0x20")
+ self.binary80_to_bid128("3", "[56eebd56b7e40ad395d4]", "[3dcca22fb9e53ab86e57f576a2e7e7d7]", "0x20")
+ self.binary80_to_bid128("4", "[56eebd56b7e40ad395d4]", "[3dcca22fb9e53ab86e57f576a2e7e7d8]", "0x20")
+ self.binary80_to_bid128("0", "[583389ad73b1c4d8f9c0]", "[3e90509c0e59cdc6c43722df036bf141]", "0x20")
+ self.binary80_to_bid128("1", "[583389ad73b1c4d8f9c0]", "[3e90509c0e59cdc6c43722df036bf141]", "0x20")
+ self.binary80_to_bid128("2", "[583389ad73b1c4d8f9c0]", "[3e90509c0e59cdc6c43722df036bf142]", "0x20")
+ self.binary80_to_bid128("3", "[583389ad73b1c4d8f9c0]", "[3e90509c0e59cdc6c43722df036bf141]", "0x20")
+ self.binary80_to_bid128("4", "[583389ad73b1c4d8f9c0]", "[3e90509c0e59cdc6c43722df036bf141]", "0x20")
+ self.binary80_to_bid128("0", "[597ed3ea0a068fc7bd98]", "[3f583646cc46f0e90f99c4f3f9824854]", "0x20")
+ self.binary80_to_bid128("1", "[597ed3ea0a068fc7bd98]", "[3f583646cc46f0e90f99c4f3f9824854]", "0x20")
+ self.binary80_to_bid128("2", "[597ed3ea0a068fc7bd98]", "[3f583646cc46f0e90f99c4f3f9824855]", "0x20")
+ self.binary80_to_bid128("3", "[597ed3ea0a068fc7bd98]", "[3f583646cc46f0e90f99c4f3f9824854]", "0x20")
+ self.binary80_to_bid128("4", "[597ed3ea0a068fc7bd98]", "[3f583646cc46f0e90f99c4f3f9824854]", "0x20")
+ self.binary80_to_bid128("0", "[5ac597181ee7019a5790]", "[401c69ce3b37622a30368275093dd9e7]", "0x20")
+ self.binary80_to_bid128("1", "[5ac597181ee7019a5790]", "[401c69ce3b37622a30368275093dd9e6]", "0x20")
+ self.binary80_to_bid128("2", "[5ac597181ee7019a5790]", "[401c69ce3b37622a30368275093dd9e7]", "0x20")
+ self.binary80_to_bid128("3", "[5ac597181ee7019a5790]", "[401c69ce3b37622a30368275093dd9e6]", "0x20")
+ self.binary80_to_bid128("4", "[5ac597181ee7019a5790]", "[401c69ce3b37622a30368275093dd9e7]", "0x20")
+ self.binary80_to_bid128("0", "[5c0eae720e3808c7cc18]", "[40e285983d449d63157168ad783b8674]", "0x20")
+ self.binary80_to_bid128("1", "[5c0eae720e3808c7cc18]", "[40e285983d449d63157168ad783b8673]", "0x20")
+ self.binary80_to_bid128("2", "[5c0eae720e3808c7cc18]", "[40e285983d449d63157168ad783b8674]", "0x20")
+ self.binary80_to_bid128("3", "[5c0eae720e3808c7cc18]", "[40e285983d449d63157168ad783b8673]", "0x20")
+ self.binary80_to_bid128("4", "[5c0eae720e3808c7cc18]", "[40e285983d449d63157168ad783b8674]", "0x20")
+ self.binary80_to_bid128("0", "[5d57fdcf9ca8e5843c8c]", "[41a8d492b7341d9227ac8f1d618feb54]", "0x20")
+ self.binary80_to_bid128("1", "[5d57fdcf9ca8e5843c8c]", "[41a8d492b7341d9227ac8f1d618feb53]", "0x20")
+ self.binary80_to_bid128("2", "[5d57fdcf9ca8e5843c8c]", "[41a8d492b7341d9227ac8f1d618feb54]", "0x20")
+ self.binary80_to_bid128("3", "[5d57fdcf9ca8e5843c8c]", "[41a8d492b7341d9227ac8f1d618feb53]", "0x20")
+ self.binary80_to_bid128("4", "[5d57fdcf9ca8e5843c8c]", "[41a8d492b7341d9227ac8f1d618feb54]", "0x20")
+ self.binary80_to_bid128("0", "[5e9fadf706ae10d27258]", "[426e4fabae2ee06ca7b54c92417bb4a5]", "0x20")
+ self.binary80_to_bid128("1", "[5e9fadf706ae10d27258]", "[426e4fabae2ee06ca7b54c92417bb4a5]", "0x20")
+ self.binary80_to_bid128("2", "[5e9fadf706ae10d27258]", "[426e4fabae2ee06ca7b54c92417bb4a6]", "0x20")
+ self.binary80_to_bid128("3", "[5e9fadf706ae10d27258]", "[426e4fabae2ee06ca7b54c92417bb4a5]", "0x20")
+ self.binary80_to_bid128("4", "[5e9fadf706ae10d27258]", "[426e4fabae2ee06ca7b54c92417bb4a5]", "0x20")
+ self.binary80_to_bid128("0", "[5fe7ebdd246ffb85b400]", "[43343b10db3ec11f815748529df8b6b4]", "0x20")
+ self.binary80_to_bid128("1", "[5fe7ebdd246ffb85b400]", "[43343b10db3ec11f815748529df8b6b4]", "0x20")
+ self.binary80_to_bid128("2", "[5fe7ebdd246ffb85b400]", "[43343b10db3ec11f815748529df8b6b5]", "0x20")
+ self.binary80_to_bid128("3", "[5fe7ebdd246ffb85b400]", "[43343b10db3ec11f815748529df8b6b4]", "0x20")
+ self.binary80_to_bid128("4", "[5fe7ebdd246ffb85b400]", "[43343b10db3ec11f815748529df8b6b4]", "0x20")
+ self.binary80_to_bid128("0", "[61319df6e8f16c4a985a]", "[43fa5685f76dcbc6012663fa70463b3d]", "0x20")
+ self.binary80_to_bid128("1", "[61319df6e8f16c4a985a]", "[43fa5685f76dcbc6012663fa70463b3c]", "0x20")
+ self.binary80_to_bid128("2", "[61319df6e8f16c4a985a]", "[43fa5685f76dcbc6012663fa70463b3d]", "0x20")
+ self.binary80_to_bid128("3", "[61319df6e8f16c4a985a]", "[43fa5685f76dcbc6012663fa70463b3c]", "0x20")
+ self.binary80_to_bid128("4", "[61319df6e8f16c4a985a]", "[43fa5685f76dcbc6012663fa70463b3d]", "0x20")
+ self.binary80_to_bid128("0", "[627a894fa6c7d78faea3]", "[44c0524095cccf371ca966df35492baf]", "0x20")
+ self.binary80_to_bid128("1", "[627a894fa6c7d78faea3]", "[44c0524095cccf371ca966df35492bae]", "0x20")
+ self.binary80_to_bid128("2", "[627a894fa6c7d78faea3]", "[44c0524095cccf371ca966df35492baf]", "0x20")
+ self.binary80_to_bid128("3", "[627a894fa6c7d78faea3]", "[44c0524095cccf371ca966df35492bae]", "0x20")
+ self.binary80_to_bid128("4", "[627a894fa6c7d78faea3]", "[44c0524095cccf371ca966df35492baf]", "0x20")
+ self.binary80_to_bid128("0", "[63c2a0199bb352038d29]", "[45863470ef2ebe8536f75305f7be8c70]", "0x20")
+ self.binary80_to_bid128("1", "[63c2a0199bb352038d29]", "[45863470ef2ebe8536f75305f7be8c6f]", "0x20")
+ self.binary80_to_bid128("2", "[63c2a0199bb352038d29]", "[45863470ef2ebe8536f75305f7be8c70]", "0x20")
+ self.binary80_to_bid128("3", "[63c2a0199bb352038d29]", "[45863470ef2ebe8536f75305f7be8c6f]", "0x20")
+ self.binary80_to_bid128("4", "[63c2a0199bb352038d29]", "[45863470ef2ebe8536f75305f7be8c70]", "0x20")
+ self.binary80_to_bid128("0", "[6508cb491b57eb8f2f98]", "[464a5b06ae6b6fa64e2f3323eb87293e]", "0x20")
+ self.binary80_to_bid128("1", "[6508cb491b57eb8f2f98]", "[464a5b06ae6b6fa64e2f3323eb87293d]", "0x20")
+ self.binary80_to_bid128("2", "[6508cb491b57eb8f2f98]", "[464a5b06ae6b6fa64e2f3323eb87293e]", "0x20")
+ self.binary80_to_bid128("3", "[6508cb491b57eb8f2f98]", "[464a5b06ae6b6fa64e2f3323eb87293d]", "0x20")
+ self.binary80_to_bid128("4", "[6508cb491b57eb8f2f98]", "[464a5b06ae6b6fa64e2f3323eb87293e]", "0x20")
+ self.binary80_to_bid128("0", "[6651c72747e144bc8234]", "[4710618663736503665ad1dbb83474e5]", "0x20")
+ self.binary80_to_bid128("1", "[6651c72747e144bc8234]", "[4710618663736503665ad1dbb83474e5]", "0x20")
+ self.binary80_to_bid128("2", "[6651c72747e144bc8234]", "[4710618663736503665ad1dbb83474e6]", "0x20")
+ self.binary80_to_bid128("3", "[6651c72747e144bc8234]", "[4710618663736503665ad1dbb83474e5]", "0x20")
+ self.binary80_to_bid128("4", "[6651c72747e144bc8234]", "[4710618663736503665ad1dbb83474e5]", "0x20")
+ self.binary80_to_bid128("0", "[6795eb1090bdb83554c0]", "[47d389664f96aec01615db7b4a4b00e2]", "0x20")
+ self.binary80_to_bid128("1", "[6795eb1090bdb83554c0]", "[47d389664f96aec01615db7b4a4b00e2]", "0x20")
+ self.binary80_to_bid128("2", "[6795eb1090bdb83554c0]", "[47d389664f96aec01615db7b4a4b00e3]", "0x20")
+ self.binary80_to_bid128("3", "[6795eb1090bdb83554c0]", "[47d389664f96aec01615db7b4a4b00e2]", "0x20")
+ self.binary80_to_bid128("4", "[6795eb1090bdb83554c0]", "[47d389664f96aec01615db7b4a4b00e2]", "0x20")
+ self.binary80_to_bid128("0", "[68e3fb846800e3dc4a3d]", "[489c934f68e3a896d31c1955740d3a1a]", "0x20")
+ self.binary80_to_bid128("1", "[68e3fb846800e3dc4a3d]", "[489c934f68e3a896d31c1955740d3a1a]", "0x20")
+ self.binary80_to_bid128("2", "[68e3fb846800e3dc4a3d]", "[489c934f68e3a896d31c1955740d3a1b]", "0x20")
+ self.binary80_to_bid128("3", "[68e3fb846800e3dc4a3d]", "[489c934f68e3a896d31c1955740d3a1a]", "0x20")
+ self.binary80_to_bid128("4", "[68e3fb846800e3dc4a3d]", "[489c934f68e3a896d31c1955740d3a1a]", "0x20")
+ self.binary80_to_bid128("0", "[6a2bc08c57014ec2d60f]", "[49623daa6668bbcea49589ae540c9312]", "0x20")
+ self.binary80_to_bid128("1", "[6a2bc08c57014ec2d60f]", "[49623daa6668bbcea49589ae540c9311]", "0x20")
+ self.binary80_to_bid128("2", "[6a2bc08c57014ec2d60f]", "[49623daa6668bbcea49589ae540c9312]", "0x20")
+ self.binary80_to_bid128("3", "[6a2bc08c57014ec2d60f]", "[49623daa6668bbcea49589ae540c9311]", "0x20")
+ self.binary80_to_bid128("4", "[6a2bc08c57014ec2d60f]", "[49623daa6668bbcea49589ae540c9312]", "0x20")
+ self.binary80_to_bid128("0", "[6b70b1392db38c7dbb80]", "[4a2583f29e30ec869ce349697e7fe8ed]", "0x20")
+ self.binary80_to_bid128("1", "[6b70b1392db38c7dbb80]", "[4a2583f29e30ec869ce349697e7fe8ed]", "0x20")
+ self.binary80_to_bid128("2", "[6b70b1392db38c7dbb80]", "[4a2583f29e30ec869ce349697e7fe8ee]", "0x20")
+ self.binary80_to_bid128("3", "[6b70b1392db38c7dbb80]", "[4a2583f29e30ec869ce349697e7fe8ed]", "0x20")
+ self.binary80_to_bid128("4", "[6b70b1392db38c7dbb80]", "[4a2583f29e30ec869ce349697e7fe8ed]", "0x20")
+ self.binary80_to_bid128("0", "[6cb8adf47ecb7d800160]", "[4aead038fd86241761a6b4a7599b186b]", "0x20")
+ self.binary80_to_bid128("1", "[6cb8adf47ecb7d800160]", "[4aead038fd86241761a6b4a7599b186b]", "0x20")
+ self.binary80_to_bid128("2", "[6cb8adf47ecb7d800160]", "[4aead038fd86241761a6b4a7599b186c]", "0x20")
+ self.binary80_to_bid128("3", "[6cb8adf47ecb7d800160]", "[4aead038fd86241761a6b4a7599b186b]", "0x20")
+ self.binary80_to_bid128("4", "[6cb8adf47ecb7d800160]", "[4aead038fd86241761a6b4a7599b186b]", "0x20")
+ self.binary80_to_bid128("0", "[6e038fb17759e098ede6]", "[4bb24b3dbf2853938b946e61fdce3549]", "0x20")
+ self.binary80_to_bid128("1", "[6e038fb17759e098ede6]", "[4bb24b3dbf2853938b946e61fdce3548]", "0x20")
+ self.binary80_to_bid128("2", "[6e038fb17759e098ede6]", "[4bb24b3dbf2853938b946e61fdce3549]", "0x20")
+ self.binary80_to_bid128("3", "[6e038fb17759e098ede6]", "[4bb24b3dbf2853938b946e61fdce3548]", "0x20")
+ self.binary80_to_bid128("4", "[6e038fb17759e098ede6]", "[4bb24b3dbf2853938b946e61fdce3549]", "0x20")
+ self.binary80_to_bid128("0", "[6f4cd1f8c293cb3aa37d]", "[4c78783d6d3d8719eb6eed42337b5488]", "0x20")
+ self.binary80_to_bid128("1", "[6f4cd1f8c293cb3aa37d]", "[4c78783d6d3d8719eb6eed42337b5488]", "0x20")
+ self.binary80_to_bid128("2", "[6f4cd1f8c293cb3aa37d]", "[4c78783d6d3d8719eb6eed42337b5489]", "0x20")
+ self.binary80_to_bid128("3", "[6f4cd1f8c293cb3aa37d]", "[4c78783d6d3d8719eb6eed42337b5488]", "0x20")
+ self.binary80_to_bid128("4", "[6f4cd1f8c293cb3aa37d]", "[4c78783d6d3d8719eb6eed42337b5488]", "0x20")
+ self.binary80_to_bid128("0", "[7094ad75efca170018ca]", "[4d3e3650e41a1c61e2720cc39f265d5a]", "0x20")
+ self.binary80_to_bid128("1", "[7094ad75efca170018ca]", "[4d3e3650e41a1c61e2720cc39f265d5a]", "0x20")
+ self.binary80_to_bid128("2", "[7094ad75efca170018ca]", "[4d3e3650e41a1c61e2720cc39f265d5b]", "0x20")
+ self.binary80_to_bid128("3", "[7094ad75efca170018ca]", "[4d3e3650e41a1c61e2720cc39f265d5a]", "0x20")
+ self.binary80_to_bid128("4", "[7094ad75efca170018ca]", "[4d3e3650e41a1c61e2720cc39f265d5a]", "0x20")
+ self.binary80_to_bid128("0", "[71d9ef57b8bfa4d07a10]", "[4e02333a0061d6f9886c5051d47ee702]", "0x20")
+ self.binary80_to_bid128("1", "[71d9ef57b8bfa4d07a10]", "[4e02333a0061d6f9886c5051d47ee702]", "0x20")
+ self.binary80_to_bid128("2", "[71d9ef57b8bfa4d07a10]", "[4e02333a0061d6f9886c5051d47ee703]", "0x20")
+ self.binary80_to_bid128("3", "[71d9ef57b8bfa4d07a10]", "[4e02333a0061d6f9886c5051d47ee702]", "0x20")
+ self.binary80_to_bid128("4", "[71d9ef57b8bfa4d07a10]", "[4e02333a0061d6f9886c5051d47ee702]", "0x20")
+ self.binary80_to_bid128("0", "[7322c7a2a63d8d923220]", "[4ec7d348c5f0c06b301c58c3b98ed2bd]", "0x20")
+ self.binary80_to_bid128("1", "[7322c7a2a63d8d923220]", "[4ec7d348c5f0c06b301c58c3b98ed2bd]", "0x20")
+ self.binary80_to_bid128("2", "[7322c7a2a63d8d923220]", "[4ec7d348c5f0c06b301c58c3b98ed2be]", "0x20")
+ self.binary80_to_bid128("3", "[7322c7a2a63d8d923220]", "[4ec7d348c5f0c06b301c58c3b98ed2bd]", "0x20")
+ self.binary80_to_bid128("4", "[7322c7a2a63d8d923220]", "[4ec7d348c5f0c06b301c58c3b98ed2bd]", "0x20")
+ self.binary80_to_bid128("0", "[7468e8c18b2519753860]", "[4f8c4a7a28b39b1c587c02944ba5941a]", "0x20")
+ self.binary80_to_bid128("1", "[7468e8c18b2519753860]", "[4f8c4a7a28b39b1c587c02944ba59419]", "0x20")
+ self.binary80_to_bid128("2", "[7468e8c18b2519753860]", "[4f8c4a7a28b39b1c587c02944ba5941a]", "0x20")
+ self.binary80_to_bid128("3", "[7468e8c18b2519753860]", "[4f8c4a7a28b39b1c587c02944ba59419]", "0x20")
+ self.binary80_to_bid128("4", "[7468e8c18b2519753860]", "[4f8c4a7a28b39b1c587c02944ba5941a]", "0x20")
+ self.binary80_to_bid128("0", "[75b5fd9fda40e6735121]", "[50548e012338dcf31fb2c41f151ec453]", "0x20")
+ self.binary80_to_bid128("1", "[75b5fd9fda40e6735121]", "[50548e012338dcf31fb2c41f151ec453]", "0x20")
+ self.binary80_to_bid128("2", "[75b5fd9fda40e6735121]", "[50548e012338dcf31fb2c41f151ec454]", "0x20")
+ self.binary80_to_bid128("3", "[75b5fd9fda40e6735121]", "[50548e012338dcf31fb2c41f151ec453]", "0x20")
+ self.binary80_to_bid128("4", "[75b5fd9fda40e6735121]", "[50548e012338dcf31fb2c41f151ec453]", "0x20")
+ self.binary80_to_bid128("0", "[76fd951bfa84506ea301]", "[5119c883988e9bf6d2480c50ed8d559c]", "0x20")
+ self.binary80_to_bid128("1", "[76fd951bfa84506ea301]", "[5119c883988e9bf6d2480c50ed8d559b]", "0x20")
+ self.binary80_to_bid128("2", "[76fd951bfa84506ea301]", "[5119c883988e9bf6d2480c50ed8d559c]", "0x20")
+ self.binary80_to_bid128("3", "[76fd951bfa84506ea301]", "[5119c883988e9bf6d2480c50ed8d559b]", "0x20")
+ self.binary80_to_bid128("4", "[76fd951bfa84506ea301]", "[5119c883988e9bf6d2480c50ed8d559c]", "0x20")
+ self.binary80_to_bid128("0", "[7842ed5066466c127bd0]", "[51de31a9648e7e85ece8223f7dd0658e]", "0x20")
+ self.binary80_to_bid128("1", "[7842ed5066466c127bd0]", "[51de31a9648e7e85ece8223f7dd0658d]", "0x20")
+ self.binary80_to_bid128("2", "[7842ed5066466c127bd0]", "[51de31a9648e7e85ece8223f7dd0658e]", "0x20")
+ self.binary80_to_bid128("3", "[7842ed5066466c127bd0]", "[51de31a9648e7e85ece8223f7dd0658d]", "0x20")
+ self.binary80_to_bid128("4", "[7842ed5066466c127bd0]", "[51de31a9648e7e85ece8223f7dd0658e]", "0x20")
+ self.binary80_to_bid128("0", "[798b92199560f5cbdc88]", "[52a34e5c9d8feaf1d0866a2a267ba502]", "0x20")
+ self.binary80_to_bid128("1", "[798b92199560f5cbdc88]", "[52a34e5c9d8feaf1d0866a2a267ba502]", "0x20")
+ self.binary80_to_bid128("2", "[798b92199560f5cbdc88]", "[52a34e5c9d8feaf1d0866a2a267ba503]", "0x20")
+ self.binary80_to_bid128("3", "[798b92199560f5cbdc88]", "[52a34e5c9d8feaf1d0866a2a267ba502]", "0x20")
+ self.binary80_to_bid128("4", "[798b92199560f5cbdc88]", "[52a34e5c9d8feaf1d0866a2a267ba502]", "0x20")
+ self.binary80_to_bid128("0", "[7ad5a0275fe11b5b8d06]", "[536a502b12da3bd3ab85bd102486f38d]", "0x20")
+ self.binary80_to_bid128("1", "[7ad5a0275fe11b5b8d06]", "[536a502b12da3bd3ab85bd102486f38c]", "0x20")
+ self.binary80_to_bid128("2", "[7ad5a0275fe11b5b8d06]", "[536a502b12da3bd3ab85bd102486f38d]", "0x20")
+ self.binary80_to_bid128("3", "[7ad5a0275fe11b5b8d06]", "[536a502b12da3bd3ab85bd102486f38c]", "0x20")
+ self.binary80_to_bid128("4", "[7ad5a0275fe11b5b8d06]", "[536a502b12da3bd3ab85bd102486f38d]", "0x20")
+ self.binary80_to_bid128("0", "[7c1eef1caea67b62323f]", "[543082e60e5fce6c4b14ca551fc50792]", "0x20")
+ self.binary80_to_bid128("1", "[7c1eef1caea67b62323f]", "[543082e60e5fce6c4b14ca551fc50792]", "0x20")
+ self.binary80_to_bid128("2", "[7c1eef1caea67b62323f]", "[543082e60e5fce6c4b14ca551fc50793]", "0x20")
+ self.binary80_to_bid128("3", "[7c1eef1caea67b62323f]", "[543082e60e5fce6c4b14ca551fc50792]", "0x20")
+ self.binary80_to_bid128("4", "[7c1eef1caea67b62323f]", "[543082e60e5fce6c4b14ca551fc50792]", "0x20")
+ self.binary80_to_bid128("0", "[7d62ea2542cadf4c67b0]", "[54f3b6108f9d54096b454cae5aa385d8]", "0x20")
+ self.binary80_to_bid128("1", "[7d62ea2542cadf4c67b0]", "[54f3b6108f9d54096b454cae5aa385d7]", "0x20")
+ self.binary80_to_bid128("2", "[7d62ea2542cadf4c67b0]", "[54f3b6108f9d54096b454cae5aa385d8]", "0x20")
+ self.binary80_to_bid128("3", "[7d62ea2542cadf4c67b0]", "[54f3b6108f9d54096b454cae5aa385d7]", "0x20")
+ self.binary80_to_bid128("4", "[7d62ea2542cadf4c67b0]", "[54f3b6108f9d54096b454cae5aa385d8]", "0x20")
+ self.binary80_to_bid128("0", "[7eaab5af54587177ac40]", "[55b8b9dec3c22374ceca90b3c34cf915]", "0x20")
+ self.binary80_to_bid128("1", "[7eaab5af54587177ac40]", "[55b8b9dec3c22374ceca90b3c34cf914]", "0x20")
+ self.binary80_to_bid128("2", "[7eaab5af54587177ac40]", "[55b8b9dec3c22374ceca90b3c34cf915]", "0x20")
+ self.binary80_to_bid128("3", "[7eaab5af54587177ac40]", "[55b8b9dec3c22374ceca90b3c34cf914]", "0x20")
+ self.binary80_to_bid128("4", "[7eaab5af54587177ac40]", "[55b8b9dec3c22374ceca90b3c34cf915]", "0x20")
+ self.binary80_to_bid128("0", "[7ffeffffffffffffffff]", "[56863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("1", "[7ffeffffffffffffffff]", "[56863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("2", "[7ffeffffffffffffffff]", "[56863aa885cb1a6cecf38634ccf08e3b]", "0x20")
+ self.binary80_to_bid128("3", "[7ffeffffffffffffffff]", "[56863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("4", "[7ffeffffffffffffffff]", "[56863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("0", "[7fff8000000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("1", "[7fff8000000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("2", "[7fff8000000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("3", "[7fff8000000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("4", "[7fff8000000000000000]", "[78000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("0", "[7fffb080000000000000]", "[7c003080000000000000000000000000]", "0x01")
+ self.binary80_to_bid128("0", "[7ffff080000000000000]", "[7c003080000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("0", "[80000000000000000001]", "[8950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("1", "[80000000000000000001]", "[8950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("2", "[80000000000000000001]", "[8950b3b8e2eda91a232dd950102978db]", "0x22")
+ self.binary80_to_bid128("3", "[80000000000000000001]", "[8950b3b8e2eda91a232dd950102978db]", "0x22")
+ self.binary80_to_bid128("4", "[80000000000000000001]", "[8950b3b8e2eda91a232dd950102978dc]", "0x22")
+ self.binary80_to_bid128("0", "[80007fffffffffffffff]", "[8976a5c3b52962cbbae84521b4582381]", "0x22")
+ self.binary80_to_bid128("1", "[80007fffffffffffffff]", "[8976a5c3b52962cbbae84521b4582382]", "0x22")
+ self.binary80_to_bid128("2", "[80007fffffffffffffff]", "[8976a5c3b52962cbbae84521b4582381]", "0x22")
+ self.binary80_to_bid128("3", "[80007fffffffffffffff]", "[8976a5c3b52962cbbae84521b4582381]", "0x22")
+ self.binary80_to_bid128("4", "[80007fffffffffffffff]", "[8976a5c3b52962cbbae84521b4582381]", "0x22")
+ self.binary80_to_bid128("0", "[80018000000000000000]", "[8976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("1", "[80018000000000000000]", "[8976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("2", "[80018000000000000000]", "[8976a5c3b52962cbbae990a91eaae918]", "0x20")
+ self.binary80_to_bid128("3", "[80018000000000000000]", "[8976a5c3b52962cbbae990a91eaae918]", "0x20")
+ self.binary80_to_bid128("4", "[80018000000000000000]", "[8976a5c3b52962cbbae990a91eaae919]", "0x20")
+ self.binary80_to_bid128("0", "[80028000000000000000]", "[89774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("1", "[80028000000000000000]", "[89774b876a52c59775d321523d55d232]", "0x20")
+ self.binary80_to_bid128("2", "[80028000000000000000]", "[89774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("3", "[80028000000000000000]", "[89774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("4", "[80028000000000000000]", "[89774b876a52c59775d321523d55d231]", "0x20")
+ self.binary80_to_bid128("0", "[8107f971fec270a0cfe0]", "[8a14ef6534ff86e0e0edae30f1b7f47b]", "0x20")
+ self.binary80_to_bid128("1", "[8107f971fec270a0cfe0]", "[8a14ef6534ff86e0e0edae30f1b7f47c]", "0x20")
+ self.binary80_to_bid128("2", "[8107f971fec270a0cfe0]", "[8a14ef6534ff86e0e0edae30f1b7f47b]", "0x20")
+ self.binary80_to_bid128("3", "[8107f971fec270a0cfe0]", "[8a14ef6534ff86e0e0edae30f1b7f47b]", "0x20")
+ self.binary80_to_bid128("4", "[8107f971fec270a0cfe0]", "[8a14ef6534ff86e0e0edae30f1b7f47b]", "0x20")
+ self.binary80_to_bid128("0", "[82528192efa2988edea6]", "[8adc3666024ac759adbf20fdbe55be20]", "0x20")
+ self.binary80_to_bid128("1", "[82528192efa2988edea6]", "[8adc3666024ac759adbf20fdbe55be21]", "0x20")
+ self.binary80_to_bid128("2", "[82528192efa2988edea6]", "[8adc3666024ac759adbf20fdbe55be20]", "0x20")
+ self.binary80_to_bid128("3", "[82528192efa2988edea6]", "[8adc3666024ac759adbf20fdbe55be20]", "0x20")
+ self.binary80_to_bid128("4", "[82528192efa2988edea6]", "[8adc3666024ac759adbf20fdbe55be20]", "0x20")
+ self.binary80_to_bid128("0", "[839bf29cee4be2d0c072]", "[8ba26f6431cfe6615746b0d43ecd2743]", "0x20")
+ self.binary80_to_bid128("1", "[839bf29cee4be2d0c072]", "[8ba26f6431cfe6615746b0d43ecd2743]", "0x20")
+ self.binary80_to_bid128("2", "[839bf29cee4be2d0c072]", "[8ba26f6431cfe6615746b0d43ecd2742]", "0x20")
+ self.binary80_to_bid128("3", "[839bf29cee4be2d0c072]", "[8ba26f6431cfe6615746b0d43ecd2742]", "0x20")
+ self.binary80_to_bid128("4", "[839bf29cee4be2d0c072]", "[8ba26f6431cfe6615746b0d43ecd2743]", "0x20")
+ self.binary80_to_bid128("0", "[84e3e59d439169634ae0]", "[8c6839a59354d273c602f8f3219866ae]", "0x20")
+ self.binary80_to_bid128("1", "[84e3e59d439169634ae0]", "[8c6839a59354d273c602f8f3219866af]", "0x20")
+ self.binary80_to_bid128("2", "[84e3e59d439169634ae0]", "[8c6839a59354d273c602f8f3219866ae]", "0x20")
+ self.binary80_to_bid128("3", "[84e3e59d439169634ae0]", "[8c6839a59354d273c602f8f3219866ae]", "0x20")
+ self.binary80_to_bid128("4", "[84e3e59d439169634ae0]", "[8c6839a59354d273c602f8f3219866ae]", "0x20")
+ self.binary80_to_bid128("0", "[862a8a867f1163fff4d4]", "[8d2c5f15df5101e4ea828b1b6b77deea]", "0x20")
+ self.binary80_to_bid128("1", "[862a8a867f1163fff4d4]", "[8d2c5f15df5101e4ea828b1b6b77deeb]", "0x20")
+ self.binary80_to_bid128("2", "[862a8a867f1163fff4d4]", "[8d2c5f15df5101e4ea828b1b6b77deea]", "0x20")
+ self.binary80_to_bid128("3", "[862a8a867f1163fff4d4]", "[8d2c5f15df5101e4ea828b1b6b77deea]", "0x20")
+ self.binary80_to_bid128("4", "[862a8a867f1163fff4d4]", "[8d2c5f15df5101e4ea828b1b6b77deea]", "0x20")
+ self.binary80_to_bid128("0", "[8772f323b31074d976c0]", "[8df25b4276dd3c3bd3fa2ad70493238d]", "0x20")
+ self.binary80_to_bid128("1", "[8772f323b31074d976c0]", "[8df25b4276dd3c3bd3fa2ad70493238e]", "0x20")
+ self.binary80_to_bid128("2", "[8772f323b31074d976c0]", "[8df25b4276dd3c3bd3fa2ad70493238d]", "0x20")
+ self.binary80_to_bid128("3", "[8772f323b31074d976c0]", "[8df25b4276dd3c3bd3fa2ad70493238d]", "0x20")
+ self.binary80_to_bid128("4", "[8772f323b31074d976c0]", "[8df25b4276dd3c3bd3fa2ad70493238d]", "0x20")
+ self.binary80_to_bid128("0", "[88bbaa7439f5a1705c9e]", "[8eb845f7ca8082cabd975d01433d6c7e]", "0x20")
+ self.binary80_to_bid128("1", "[88bbaa7439f5a1705c9e]", "[8eb845f7ca8082cabd975d01433d6c7f]", "0x20")
+ self.binary80_to_bid128("2", "[88bbaa7439f5a1705c9e]", "[8eb845f7ca8082cabd975d01433d6c7e]", "0x20")
+ self.binary80_to_bid128("3", "[88bbaa7439f5a1705c9e]", "[8eb845f7ca8082cabd975d01433d6c7e]", "0x20")
+ self.binary80_to_bid128("4", "[88bbaa7439f5a1705c9e]", "[8eb845f7ca8082cabd975d01433d6c7e]", "0x20")
+ self.binary80_to_bid128("0", "[8a04fc80b214410492b3]", "[8f7e7159edf7a05637b9cb35cbbed567]", "0x20")
+ self.binary80_to_bid128("1", "[8a04fc80b214410492b3]", "[8f7e7159edf7a05637b9cb35cbbed568]", "0x20")
+ self.binary80_to_bid128("2", "[8a04fc80b214410492b3]", "[8f7e7159edf7a05637b9cb35cbbed567]", "0x20")
+ self.binary80_to_bid128("3", "[8a04fc80b214410492b3]", "[8f7e7159edf7a05637b9cb35cbbed567]", "0x20")
+ self.binary80_to_bid128("4", "[8a04fc80b214410492b3]", "[8f7e7159edf7a05637b9cb35cbbed567]", "0x20")
+ self.binary80_to_bid128("0", "[8b4ce2b9064ca8f796f2]", "[904437a7593a6c2152893ae0f12d981a]", "0x20")
+ self.binary80_to_bid128("1", "[8b4ce2b9064ca8f796f2]", "[904437a7593a6c2152893ae0f12d981a]", "0x20")
+ self.binary80_to_bid128("2", "[8b4ce2b9064ca8f796f2]", "[904437a7593a6c2152893ae0f12d9819]", "0x20")
+ self.binary80_to_bid128("3", "[8b4ce2b9064ca8f796f2]", "[904437a7593a6c2152893ae0f12d9819]", "0x20")
+ self.binary80_to_bid128("4", "[8b4ce2b9064ca8f796f2]", "[904437a7593a6c2152893ae0f12d981a]", "0x20")
+ self.binary80_to_bid128("0", "[8c91f7f3738feb64e410]", "[9107a004ec05f0a45a497a9195be2693]", "0x20")
+ self.binary80_to_bid128("1", "[8c91f7f3738feb64e410]", "[9107a004ec05f0a45a497a9195be2693]", "0x20")
+ self.binary80_to_bid128("2", "[8c91f7f3738feb64e410]", "[9107a004ec05f0a45a497a9195be2692]", "0x20")
+ self.binary80_to_bid128("3", "[8c91f7f3738feb64e410]", "[9107a004ec05f0a45a497a9195be2692]", "0x20")
+ self.binary80_to_bid128("4", "[8c91f7f3738feb64e410]", "[9107a004ec05f0a45a497a9195be2693]", "0x20")
+ self.binary80_to_bid128("0", "[8ddbc2a1e3a7d560ff14]", "[91ce476d432ccc57dc079bbfdff31608]", "0x20")
+ self.binary80_to_bid128("1", "[8ddbc2a1e3a7d560ff14]", "[91ce476d432ccc57dc079bbfdff31609]", "0x20")
+ self.binary80_to_bid128("2", "[8ddbc2a1e3a7d560ff14]", "[91ce476d432ccc57dc079bbfdff31608]", "0x20")
+ self.binary80_to_bid128("3", "[8ddbc2a1e3a7d560ff14]", "[91ce476d432ccc57dc079bbfdff31608]", "0x20")
+ self.binary80_to_bid128("4", "[8ddbc2a1e3a7d560ff14]", "[91ce476d432ccc57dc079bbfdff31608]", "0x20")
+ self.binary80_to_bid128("0", "[8f24a59e55aa447b7dca]", "[929442783c83ddf1ef8ddcd4ab2f8695]", "0x20")
+ self.binary80_to_bid128("1", "[8f24a59e55aa447b7dca]", "[929442783c83ddf1ef8ddcd4ab2f8695]", "0x20")
+ self.binary80_to_bid128("2", "[8f24a59e55aa447b7dca]", "[929442783c83ddf1ef8ddcd4ab2f8694]", "0x20")
+ self.binary80_to_bid128("3", "[8f24a59e55aa447b7dca]", "[929442783c83ddf1ef8ddcd4ab2f8694]", "0x20")
+ self.binary80_to_bid128("4", "[8f24a59e55aa447b7dca]", "[929442783c83ddf1ef8ddcd4ab2f8695]", "0x20")
+ self.binary80_to_bid128("0", "[906df34ccf5bd6938378]", "[935a6ac9eae42e771b8b2d80bd0b0549]", "0x20")
+ self.binary80_to_bid128("1", "[906df34ccf5bd6938378]", "[935a6ac9eae42e771b8b2d80bd0b0549]", "0x20")
+ self.binary80_to_bid128("2", "[906df34ccf5bd6938378]", "[935a6ac9eae42e771b8b2d80bd0b0548]", "0x20")
+ self.binary80_to_bid128("3", "[906df34ccf5bd6938378]", "[935a6ac9eae42e771b8b2d80bd0b0548]", "0x20")
+ self.binary80_to_bid128("4", "[906df34ccf5bd6938378]", "[935a6ac9eae42e771b8b2d80bd0b0549]", "0x20")
+ self.binary80_to_bid128("0", "[91b1c63999669c4b87b0]", "[941d295842ad895fd2cd6d047ce29818]", "0x20")
+ self.binary80_to_bid128("1", "[91b1c63999669c4b87b0]", "[941d295842ad895fd2cd6d047ce29818]", "0x20")
+ self.binary80_to_bid128("2", "[91b1c63999669c4b87b0]", "[941d295842ad895fd2cd6d047ce29817]", "0x20")
+ self.binary80_to_bid128("3", "[91b1c63999669c4b87b0]", "[941d295842ad895fd2cd6d047ce29817]", "0x20")
+ self.binary80_to_bid128("4", "[91b1c63999669c4b87b0]", "[941d295842ad895fd2cd6d047ce29818]", "0x20")
+ self.binary80_to_bid128("0", "[92fc8e7ff1d6717079d0]", "[94e45d81d23144bab98b4935e299b887]", "0x20")
+ self.binary80_to_bid128("1", "[92fc8e7ff1d6717079d0]", "[94e45d81d23144bab98b4935e299b887]", "0x20")
+ self.binary80_to_bid128("2", "[92fc8e7ff1d6717079d0]", "[94e45d81d23144bab98b4935e299b886]", "0x20")
+ self.binary80_to_bid128("3", "[92fc8e7ff1d6717079d0]", "[94e45d81d23144bab98b4935e299b886]", "0x20")
+ self.binary80_to_bid128("4", "[92fc8e7ff1d6717079d0]", "[94e45d81d23144bab98b4935e299b887]", "0x20")
+ self.binary80_to_bid128("0", "[9444e204e0a9e0d2fcd4]", "[95aa511946a002db0b518a4923c0ae67]", "0x20")
+ self.binary80_to_bid128("1", "[9444e204e0a9e0d2fcd4]", "[95aa511946a002db0b518a4923c0ae67]", "0x20")
+ self.binary80_to_bid128("2", "[9444e204e0a9e0d2fcd4]", "[95aa511946a002db0b518a4923c0ae66]", "0x20")
+ self.binary80_to_bid128("3", "[9444e204e0a9e0d2fcd4]", "[95aa511946a002db0b518a4923c0ae66]", "0x20")
+ self.binary80_to_bid128("4", "[9444e204e0a9e0d2fcd4]", "[95aa511946a002db0b518a4923c0ae67]", "0x20")
+ self.binary80_to_bid128("0", "[958dda38f07c1fbcbb38]", "[967055a1d611606c78ef1b0f5d5d0d8a]", "0x20")
+ self.binary80_to_bid128("1", "[958dda38f07c1fbcbb38]", "[967055a1d611606c78ef1b0f5d5d0d8b]", "0x20")
+ self.binary80_to_bid128("2", "[958dda38f07c1fbcbb38]", "[967055a1d611606c78ef1b0f5d5d0d8a]", "0x20")
+ self.binary80_to_bid128("3", "[958dda38f07c1fbcbb38]", "[967055a1d611606c78ef1b0f5d5d0d8a]", "0x20")
+ self.binary80_to_bid128("4", "[958dda38f07c1fbcbb38]", "[967055a1d611606c78ef1b0f5d5d0d8a]", "0x20")
+ self.binary80_to_bid128("0", "[96d6fbcdfe681f04a558]", "[97366c0fad4a4a0f652d6624358983b9]", "0x20")
+ self.binary80_to_bid128("1", "[96d6fbcdfe681f04a558]", "[97366c0fad4a4a0f652d6624358983ba]", "0x20")
+ self.binary80_to_bid128("2", "[96d6fbcdfe681f04a558]", "[97366c0fad4a4a0f652d6624358983b9]", "0x20")
+ self.binary80_to_bid128("3", "[96d6fbcdfe681f04a558]", "[97366c0fad4a4a0f652d6624358983b9]", "0x20")
+ self.binary80_to_bid128("4", "[96d6fbcdfe681f04a558]", "[97366c0fad4a4a0f652d6624358983b9]", "0x20")
+ self.binary80_to_bid128("0", "[981d907f4b755a94b7b4]", "[97faa98a74343f11bfc0b21ea4913ffc]", "0x20")
+ self.binary80_to_bid128("1", "[981d907f4b755a94b7b4]", "[97faa98a74343f11bfc0b21ea4913ffd]", "0x20")
+ self.binary80_to_bid128("2", "[981d907f4b755a94b7b4]", "[97faa98a74343f11bfc0b21ea4913ffc]", "0x20")
+ self.binary80_to_bid128("3", "[981d907f4b755a94b7b4]", "[97faa98a74343f11bfc0b21ea4913ffc]", "0x20")
+ self.binary80_to_bid128("4", "[981d907f4b755a94b7b4]", "[97faa98a74343f11bfc0b21ea4913ffc]", "0x20")
+ self.binary80_to_bid128("0", "[9964d516f0d44994b268]", "[98c0445b7f5db38c14ed6aaad2d0aaa7]", "0x20")
+ self.binary80_to_bid128("1", "[9964d516f0d44994b268]", "[98c0445b7f5db38c14ed6aaad2d0aaa8]", "0x20")
+ self.binary80_to_bid128("2", "[9964d516f0d44994b268]", "[98c0445b7f5db38c14ed6aaad2d0aaa7]", "0x20")
+ self.binary80_to_bid128("3", "[9964d516f0d44994b268]", "[98c0445b7f5db38c14ed6aaad2d0aaa7]", "0x20")
+ self.binary80_to_bid128("4", "[9964d516f0d44994b268]", "[98c0445b7f5db38c14ed6aaad2d0aaa7]", "0x20")
+ self.binary80_to_bid128("0", "[9aadfe43721ead2a0060]", "[99865933c758cfc7b1944845aa607398]", "0x20")
+ self.binary80_to_bid128("1", "[9aadfe43721ead2a0060]", "[99865933c758cfc7b1944845aa607399]", "0x20")
+ self.binary80_to_bid128("2", "[9aadfe43721ead2a0060]", "[99865933c758cfc7b1944845aa607398]", "0x20")
+ self.binary80_to_bid128("3", "[9aadfe43721ead2a0060]", "[99865933c758cfc7b1944845aa607398]", "0x20")
+ self.binary80_to_bid128("4", "[9aadfe43721ead2a0060]", "[99865933c758cfc7b1944845aa607398]", "0x20")
+ self.binary80_to_bid128("0", "[9bf58c13f99af4a07e28]", "[9a4b0cb866ae37998a137adc819dcc82]", "0x20")
+ self.binary80_to_bid128("1", "[9bf58c13f99af4a07e28]", "[9a4b0cb866ae37998a137adc819dcc83]", "0x20")
+ self.binary80_to_bid128("2", "[9bf58c13f99af4a07e28]", "[9a4b0cb866ae37998a137adc819dcc82]", "0x20")
+ self.binary80_to_bid128("3", "[9bf58c13f99af4a07e28]", "[9a4b0cb866ae37998a137adc819dcc82]", "0x20")
+ self.binary80_to_bid128("4", "[9bf58c13f99af4a07e28]", "[9a4b0cb866ae37998a137adc819dcc82]", "0x20")
+ self.binary80_to_bid128("0", "[9d3c94501df0fda8c6f0]", "[9b104dc9fb9462246c66a78b2a6a140a]", "0x20")
+ self.binary80_to_bid128("1", "[9d3c94501df0fda8c6f0]", "[9b104dc9fb9462246c66a78b2a6a140b]", "0x20")
+ self.binary80_to_bid128("2", "[9d3c94501df0fda8c6f0]", "[9b104dc9fb9462246c66a78b2a6a140a]", "0x20")
+ self.binary80_to_bid128("3", "[9d3c94501df0fda8c6f0]", "[9b104dc9fb9462246c66a78b2a6a140a]", "0x20")
+ self.binary80_to_bid128("4", "[9d3c94501df0fda8c6f0]", "[9b104dc9fb9462246c66a78b2a6a140a]", "0x20")
+ self.binary80_to_bid128("0", "[9e87f62f539bba60ca7b]", "[9bd8387c05a5618a059838bc2ea826ac]", "0x20")
+ self.binary80_to_bid128("1", "[9e87f62f539bba60ca7b]", "[9bd8387c05a5618a059838bc2ea826ad]", "0x20")
+ self.binary80_to_bid128("2", "[9e87f62f539bba60ca7b]", "[9bd8387c05a5618a059838bc2ea826ac]", "0x20")
+ self.binary80_to_bid128("3", "[9e87f62f539bba60ca7b]", "[9bd8387c05a5618a059838bc2ea826ac]", "0x20")
+ self.binary80_to_bid128("4", "[9e87f62f539bba60ca7b]", "[9bd8387c05a5618a059838bc2ea826ac]", "0x20")
+ self.binary80_to_bid128("0", "[9fce90cd3bb087f93e14]", "[9c9c5ad594601d8eb5ea931dd2b9d9e7]", "0x20")
+ self.binary80_to_bid128("1", "[9fce90cd3bb087f93e14]", "[9c9c5ad594601d8eb5ea931dd2b9d9e8]", "0x20")
+ self.binary80_to_bid128("2", "[9fce90cd3bb087f93e14]", "[9c9c5ad594601d8eb5ea931dd2b9d9e7]", "0x20")
+ self.binary80_to_bid128("3", "[9fce90cd3bb087f93e14]", "[9c9c5ad594601d8eb5ea931dd2b9d9e7]", "0x20")
+ self.binary80_to_bid128("4", "[9fce90cd3bb087f93e14]", "[9c9c5ad594601d8eb5ea931dd2b9d9e7]", "0x20")
+ self.binary80_to_bid128("0", "[a116e6e57f95928a45dc]", "[9d624f3385e4dd97b2d271a7d3f31e87]", "0x20")
+ self.binary80_to_bid128("1", "[a116e6e57f95928a45dc]", "[9d624f3385e4dd97b2d271a7d3f31e87]", "0x20")
+ self.binary80_to_bid128("2", "[a116e6e57f95928a45dc]", "[9d624f3385e4dd97b2d271a7d3f31e86]", "0x20")
+ self.binary80_to_bid128("3", "[a116e6e57f95928a45dc]", "[9d624f3385e4dd97b2d271a7d3f31e86]", "0x20")
+ self.binary80_to_bid128("4", "[a116e6e57f95928a45dc]", "[9d624f3385e4dd97b2d271a7d3f31e87]", "0x20")
+ self.binary80_to_bid128("0", "[a260e60dd861fa8f00eb]", "[9e28ac99db1df6da699a374eadcb96f2]", "0x20")
+ self.binary80_to_bid128("1", "[a260e60dd861fa8f00eb]", "[9e28ac99db1df6da699a374eadcb96f2]", "0x20")
+ self.binary80_to_bid128("2", "[a260e60dd861fa8f00eb]", "[9e28ac99db1df6da699a374eadcb96f1]", "0x20")
+ self.binary80_to_bid128("3", "[a260e60dd861fa8f00eb]", "[9e28ac99db1df6da699a374eadcb96f1]", "0x20")
+ self.binary80_to_bid128("4", "[a260e60dd861fa8f00eb]", "[9e28ac99db1df6da699a374eadcb96f2]", "0x20")
+ self.binary80_to_bid128("0", "[a3a891ab9a310597c7d1]", "[9eee3bc2ff7242192b1ef9a6b0109c78]", "0x20")
+ self.binary80_to_bid128("1", "[a3a891ab9a310597c7d1]", "[9eee3bc2ff7242192b1ef9a6b0109c79]", "0x20")
+ self.binary80_to_bid128("2", "[a3a891ab9a310597c7d1]", "[9eee3bc2ff7242192b1ef9a6b0109c78]", "0x20")
+ self.binary80_to_bid128("3", "[a3a891ab9a310597c7d1]", "[9eee3bc2ff7242192b1ef9a6b0109c78]", "0x20")
+ self.binary80_to_bid128("4", "[a3a891ab9a310597c7d1]", "[9eee3bc2ff7242192b1ef9a6b0109c78]", "0x20")
+ self.binary80_to_bid128("0", "[a4f086e5a1ec8430faec]", "[9fb32e9ddc91f97ba97ec4fc587a04fc]", "0x20")
+ self.binary80_to_bid128("1", "[a4f086e5a1ec8430faec]", "[9fb32e9ddc91f97ba97ec4fc587a04fc]", "0x20")
+ self.binary80_to_bid128("2", "[a4f086e5a1ec8430faec]", "[9fb32e9ddc91f97ba97ec4fc587a04fb]", "0x20")
+ self.binary80_to_bid128("3", "[a4f086e5a1ec8430faec]", "[9fb32e9ddc91f97ba97ec4fc587a04fb]", "0x20")
+ self.binary80_to_bid128("4", "[a4f086e5a1ec8430faec]", "[9fb32e9ddc91f97ba97ec4fc587a04fc]", "0x20")
+ self.binary80_to_bid128("0", "[a6379e5f36d4fc11a49c]", "[a0786122a64c7fa373376b9726a98e2d]", "0x20")
+ self.binary80_to_bid128("1", "[a6379e5f36d4fc11a49c]", "[a0786122a64c7fa373376b9726a98e2d]", "0x20")
+ self.binary80_to_bid128("2", "[a6379e5f36d4fc11a49c]", "[a0786122a64c7fa373376b9726a98e2c]", "0x20")
+ self.binary80_to_bid128("3", "[a6379e5f36d4fc11a49c]", "[a0786122a64c7fa373376b9726a98e2c]", "0x20")
+ self.binary80_to_bid128("4", "[a6379e5f36d4fc11a49c]", "[a0786122a64c7fa373376b9726a98e2d]", "0x20")
+ self.binary80_to_bid128("0", "[a77f872c4dad3472b74c]", "[a13dc5580d02e45573952c45198f9df6]", "0x20")
+ self.binary80_to_bid128("1", "[a77f872c4dad3472b74c]", "[a13dc5580d02e45573952c45198f9df6]", "0x20")
+ self.binary80_to_bid128("2", "[a77f872c4dad3472b74c]", "[a13dc5580d02e45573952c45198f9df5]", "0x20")
+ self.binary80_to_bid128("3", "[a77f872c4dad3472b74c]", "[a13dc5580d02e45573952c45198f9df5]", "0x20")
+ self.binary80_to_bid128("4", "[a77f872c4dad3472b74c]", "[a13dc5580d02e45573952c45198f9df6]", "0x20")
+ self.binary80_to_bid128("0", "[a8c9c75bd27de1c7cb45]", "[a204923de3cc059b621ccf19a282ee7e]", "0x20")
+ self.binary80_to_bid128("1", "[a8c9c75bd27de1c7cb45]", "[a204923de3cc059b621ccf19a282ee7f]", "0x20")
+ self.binary80_to_bid128("2", "[a8c9c75bd27de1c7cb45]", "[a204923de3cc059b621ccf19a282ee7e]", "0x20")
+ self.binary80_to_bid128("3", "[a8c9c75bd27de1c7cb45]", "[a204923de3cc059b621ccf19a282ee7e]", "0x20")
+ self.binary80_to_bid128("4", "[a8c9c75bd27de1c7cb45]", "[a204923de3cc059b621ccf19a282ee7e]", "0x20")
+ self.binary80_to_bid128("0", "[aa11fe5770b0b87ead67]", "[a2ca66058808fc9f11d194f5a07048ce]", "0x20")
+ self.binary80_to_bid128("1", "[aa11fe5770b0b87ead67]", "[a2ca66058808fc9f11d194f5a07048cf]", "0x20")
+ self.binary80_to_bid128("2", "[aa11fe5770b0b87ead67]", "[a2ca66058808fc9f11d194f5a07048ce]", "0x20")
+ self.binary80_to_bid128("3", "[aa11fe5770b0b87ead67]", "[a2ca66058808fc9f11d194f5a07048ce]", "0x20")
+ self.binary80_to_bid128("4", "[aa11fe5770b0b87ead67]", "[a2ca66058808fc9f11d194f5a07048ce]", "0x20")
+ self.binary80_to_bid128("0", "[ab589d05b8cc07df58ce]", "[a38eac34641fb5e8abc0e9045211b5ac]", "0x20")
+ self.binary80_to_bid128("1", "[ab589d05b8cc07df58ce]", "[a38eac34641fb5e8abc0e9045211b5ad]", "0x20")
+ self.binary80_to_bid128("2", "[ab589d05b8cc07df58ce]", "[a38eac34641fb5e8abc0e9045211b5ac]", "0x20")
+ self.binary80_to_bid128("3", "[ab589d05b8cc07df58ce]", "[a38eac34641fb5e8abc0e9045211b5ac]", "0x20")
+ self.binary80_to_bid128("4", "[ab589d05b8cc07df58ce]", "[a38eac34641fb5e8abc0e9045211b5ac]", "0x20")
+ self.binary80_to_bid128("0", "[ac9cfd14c99a5cf3f900]", "[a4525edaf909665f2b540e7a9e9e9a9d]", "0x20")
+ self.binary80_to_bid128("1", "[ac9cfd14c99a5cf3f900]", "[a4525edaf909665f2b540e7a9e9e9a9e]", "0x20")
+ self.binary80_to_bid128("2", "[ac9cfd14c99a5cf3f900]", "[a4525edaf909665f2b540e7a9e9e9a9d]", "0x20")
+ self.binary80_to_bid128("3", "[ac9cfd14c99a5cf3f900]", "[a4525edaf909665f2b540e7a9e9e9a9d]", "0x20")
+ self.binary80_to_bid128("4", "[ac9cfd14c99a5cf3f900]", "[a4525edaf909665f2b540e7a9e9e9a9d]", "0x20")
+ self.binary80_to_bid128("0", "[ade8edf95ac951a4b308]", "[a51a4e08fe280a6f663ebe2279dc563e]", "0x20")
+ self.binary80_to_bid128("1", "[ade8edf95ac951a4b308]", "[a51a4e08fe280a6f663ebe2279dc563f]", "0x20")
+ self.binary80_to_bid128("2", "[ade8edf95ac951a4b308]", "[a51a4e08fe280a6f663ebe2279dc563e]", "0x20")
+ self.binary80_to_bid128("3", "[ade8edf95ac951a4b308]", "[a51a4e08fe280a6f663ebe2279dc563e]", "0x20")
+ self.binary80_to_bid128("4", "[ade8edf95ac951a4b308]", "[a51a4e08fe280a6f663ebe2279dc563e]", "0x20")
+ self.binary80_to_bid128("0", "[af32fd948860275b4800]", "[a5e0b5e02876f59290cab87f49c2e66d]", "0x20")
+ self.binary80_to_bid128("1", "[af32fd948860275b4800]", "[a5e0b5e02876f59290cab87f49c2e66e]", "0x20")
+ self.binary80_to_bid128("2", "[af32fd948860275b4800]", "[a5e0b5e02876f59290cab87f49c2e66d]", "0x20")
+ self.binary80_to_bid128("3", "[af32fd948860275b4800]", "[a5e0b5e02876f59290cab87f49c2e66d]", "0x20")
+ self.binary80_to_bid128("4", "[af32fd948860275b4800]", "[a5e0b5e02876f59290cab87f49c2e66d]", "0x20")
+ self.binary80_to_bid128("0", "[b079818e1c54179c0d52]", "[a6a4fe0d43651b8d9df1a1a5d7de7586]", "0x20")
+ self.binary80_to_bid128("1", "[b079818e1c54179c0d52]", "[a6a4fe0d43651b8d9df1a1a5d7de7587]", "0x20")
+ self.binary80_to_bid128("2", "[b079818e1c54179c0d52]", "[a6a4fe0d43651b8d9df1a1a5d7de7586]", "0x20")
+ self.binary80_to_bid128("3", "[b079818e1c54179c0d52]", "[a6a4fe0d43651b8d9df1a1a5d7de7586]", "0x20")
+ self.binary80_to_bid128("4", "[b079818e1c54179c0d52]", "[a6a4fe0d43651b8d9df1a1a5d7de7586]", "0x20")
+ self.binary80_to_bid128("0", "[b1c2a41fd1530d0cdff5]", "[a76b5ff90b69d7c1dc88e5913530a12c]", "0x20")
+ self.binary80_to_bid128("1", "[b1c2a41fd1530d0cdff5]", "[a76b5ff90b69d7c1dc88e5913530a12c]", "0x20")
+ self.binary80_to_bid128("2", "[b1c2a41fd1530d0cdff5]", "[a76b5ff90b69d7c1dc88e5913530a12b]", "0x20")
+ self.binary80_to_bid128("3", "[b1c2a41fd1530d0cdff5]", "[a76b5ff90b69d7c1dc88e5913530a12b]", "0x20")
+ self.binary80_to_bid128("4", "[b1c2a41fd1530d0cdff5]", "[a76b5ff90b69d7c1dc88e5913530a12c]", "0x20")
+ self.binary80_to_bid128("0", "[b3099e3ed76308864e84]", "[a8305cc8df4553d5104f3cdf16f2eaca]", "0x20")
+ self.binary80_to_bid128("1", "[b3099e3ed76308864e84]", "[a8305cc8df4553d5104f3cdf16f2eacb]", "0x20")
+ self.binary80_to_bid128("2", "[b3099e3ed76308864e84]", "[a8305cc8df4553d5104f3cdf16f2eaca]", "0x20")
+ self.binary80_to_bid128("3", "[b3099e3ed76308864e84]", "[a8305cc8df4553d5104f3cdf16f2eaca]", "0x20")
+ self.binary80_to_bid128("4", "[b3099e3ed76308864e84]", "[a8305cc8df4553d5104f3cdf16f2eaca]", "0x20")
+ self.binary80_to_bid128("0", "[b450ad1983d5e0b33f00]", "[a8f5157dd2f67b20d76b446d5678f9bd]", "0x20")
+ self.binary80_to_bid128("1", "[b450ad1983d5e0b33f00]", "[a8f5157dd2f67b20d76b446d5678f9be]", "0x20")
+ self.binary80_to_bid128("2", "[b450ad1983d5e0b33f00]", "[a8f5157dd2f67b20d76b446d5678f9bd]", "0x20")
+ self.binary80_to_bid128("3", "[b450ad1983d5e0b33f00]", "[a8f5157dd2f67b20d76b446d5678f9bd]", "0x20")
+ self.binary80_to_bid128("4", "[b450ad1983d5e0b33f00]", "[a8f5157dd2f67b20d76b446d5678f9bd]", "0x20")
+ self.binary80_to_bid128("0", "[b59ae09fded3074d15fe]", "[a9bc4ec2b80c0580ab900615eefacb8c]", "0x20")
+ self.binary80_to_bid128("1", "[b59ae09fded3074d15fe]", "[a9bc4ec2b80c0580ab900615eefacb8d]", "0x20")
+ self.binary80_to_bid128("2", "[b59ae09fded3074d15fe]", "[a9bc4ec2b80c0580ab900615eefacb8c]", "0x20")
+ self.binary80_to_bid128("3", "[b59ae09fded3074d15fe]", "[a9bc4ec2b80c0580ab900615eefacb8c]", "0x20")
+ self.binary80_to_bid128("4", "[b59ae09fded3074d15fe]", "[a9bc4ec2b80c0580ab900615eefacb8c]", "0x20")
+ self.binary80_to_bid128("0", "[b6e3fa8abc0d1aa09da4]", "[aa826012ab3c5568c8c748e2ed93253a]", "0x20")
+ self.binary80_to_bid128("1", "[b6e3fa8abc0d1aa09da4]", "[aa826012ab3c5568c8c748e2ed93253b]", "0x20")
+ self.binary80_to_bid128("2", "[b6e3fa8abc0d1aa09da4]", "[aa826012ab3c5568c8c748e2ed93253a]", "0x20")
+ self.binary80_to_bid128("3", "[b6e3fa8abc0d1aa09da4]", "[aa826012ab3c5568c8c748e2ed93253a]", "0x20")
+ self.binary80_to_bid128("4", "[b6e3fa8abc0d1aa09da4]", "[aa826012ab3c5568c8c748e2ed93253a]", "0x20")
+ self.binary80_to_bid128("0", "[b82bff228e4568e85b77]", "[ab48357f39686b6face0be5d6b7c0efc]", "0x20")
+ self.binary80_to_bid128("1", "[b82bff228e4568e85b77]", "[ab48357f39686b6face0be5d6b7c0efd]", "0x20")
+ self.binary80_to_bid128("2", "[b82bff228e4568e85b77]", "[ab48357f39686b6face0be5d6b7c0efc]", "0x20")
+ self.binary80_to_bid128("3", "[b82bff228e4568e85b77]", "[ab48357f39686b6face0be5d6b7c0efc]", "0x20")
+ self.binary80_to_bid128("4", "[b82bff228e4568e85b77]", "[ab48357f39686b6face0be5d6b7c0efc]", "0x20")
+ self.binary80_to_bid128("0", "[b9728293290235b5693c]", "[ac0c4adb2a33023fa3d07203c9019c90]", "0x20")
+ self.binary80_to_bid128("1", "[b9728293290235b5693c]", "[ac0c4adb2a33023fa3d07203c9019c90]", "0x20")
+ self.binary80_to_bid128("2", "[b9728293290235b5693c]", "[ac0c4adb2a33023fa3d07203c9019c8f]", "0x20")
+ self.binary80_to_bid128("3", "[b9728293290235b5693c]", "[ac0c4adb2a33023fa3d07203c9019c8f]", "0x20")
+ self.binary80_to_bid128("4", "[b9728293290235b5693c]", "[ac0c4adb2a33023fa3d07203c9019c90]", "0x20")
+ self.binary80_to_bid128("0", "[bab9c38cd4b87cade0f8]", "[acd13280b673dd1e11999fa614e81c0c]", "0x20")
+ self.binary80_to_bid128("1", "[bab9c38cd4b87cade0f8]", "[acd13280b673dd1e11999fa614e81c0c]", "0x20")
+ self.binary80_to_bid128("2", "[bab9c38cd4b87cade0f8]", "[acd13280b673dd1e11999fa614e81c0b]", "0x20")
+ self.binary80_to_bid128("3", "[bab9c38cd4b87cade0f8]", "[acd13280b673dd1e11999fa614e81c0b]", "0x20")
+ self.binary80_to_bid128("4", "[bab9c38cd4b87cade0f8]", "[acd13280b673dd1e11999fa614e81c0c]", "0x20")
+ self.binary80_to_bid128("0", "[bc04e57990fc48c28f58]", "[ad989d571f384cb653c49237b3160037]", "0x20")
+ self.binary80_to_bid128("1", "[bc04e57990fc48c28f58]", "[ad989d571f384cb653c49237b3160038]", "0x20")
+ self.binary80_to_bid128("2", "[bc04e57990fc48c28f58]", "[ad989d571f384cb653c49237b3160037]", "0x20")
+ self.binary80_to_bid128("3", "[bc04e57990fc48c28f58]", "[ad989d571f384cb653c49237b3160037]", "0x20")
+ self.binary80_to_bid128("4", "[bc04e57990fc48c28f58]", "[ad989d571f384cb653c49237b3160037]", "0x20")
+ self.binary80_to_bid128("0", "[bd4bea083260b0b07e14]", "[ae5db6b8a9cdb90911c6148d0c2f71fc]", "0x20")
+ self.binary80_to_bid128("1", "[bd4bea083260b0b07e14]", "[ae5db6b8a9cdb90911c6148d0c2f71fd]", "0x20")
+ self.binary80_to_bid128("2", "[bd4bea083260b0b07e14]", "[ae5db6b8a9cdb90911c6148d0c2f71fc]", "0x20")
+ self.binary80_to_bid128("3", "[bd4bea083260b0b07e14]", "[ae5db6b8a9cdb90911c6148d0c2f71fc]", "0x20")
+ self.binary80_to_bid128("4", "[bd4bea083260b0b07e14]", "[ae5db6b8a9cdb90911c6148d0c2f71fc]", "0x20")
+ self.binary80_to_bid128("0", "[be949d71e353fdc566e5]", "[af2342c86f47d6565a304182af9f6b98]", "0x20")
+ self.binary80_to_bid128("1", "[be949d71e353fdc566e5]", "[af2342c86f47d6565a304182af9f6b98]", "0x20")
+ self.binary80_to_bid128("2", "[be949d71e353fdc566e5]", "[af2342c86f47d6565a304182af9f6b97]", "0x20")
+ self.binary80_to_bid128("3", "[be949d71e353fdc566e5]", "[af2342c86f47d6565a304182af9f6b97]", "0x20")
+ self.binary80_to_bid128("4", "[be949d71e353fdc566e5]", "[af2342c86f47d6565a304182af9f6b98]", "0x20")
+ self.binary80_to_bid128("0", "[bfdbafc849d391eb470c]", "[afe8628788b46b512140fce2a094ea89]", "0x20")
+ self.binary80_to_bid128("1", "[bfdbafc849d391eb470c]", "[afe8628788b46b512140fce2a094ea89]", "0x20")
+ self.binary80_to_bid128("2", "[bfdbafc849d391eb470c]", "[afe8628788b46b512140fce2a094ea88]", "0x20")
+ self.binary80_to_bid128("3", "[bfdbafc849d391eb470c]", "[afe8628788b46b512140fce2a094ea88]", "0x20")
+ self.binary80_to_bid128("4", "[bfdbafc849d391eb470c]", "[afe8628788b46b512140fce2a094ea89]", "0x20")
+ self.binary80_to_bid128("0", "[bffad000000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("1", "[bffad000000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("2", "[bffad000000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("3", "[bffad000000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("4", "[bffad000000000000000]", "[b03000000000000000000000004d7c6d]", "0x00")
+ self.binary80_to_bid128("0", "[bfff8000000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("1", "[bfff8000000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("2", "[bfff8000000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("3", "[bfff8000000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("4", "[bfff8000000000000000]", "[b0400000000000000000000000000001]", "0x00")
+ self.binary80_to_bid128("0", "[bfffc000000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("1", "[bfffc000000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("2", "[bfffc000000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("3", "[bfffc000000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("4", "[bfffc000000000000000]", "[b03e000000000000000000000000000f]", "0x00")
+ self.binary80_to_bid128("0", "[c0058000000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("1", "[c0058000000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("2", "[c0058000000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("3", "[c0058000000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("4", "[c0058000000000000000]", "[b0400000000000000000000000000040]", "0x00")
+ self.binary80_to_bid128("0", "[c008f9c0000000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("1", "[c008f9c0000000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("2", "[c008f9c0000000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("3", "[c008f9c0000000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("4", "[c008f9c0000000000000]", "[b04000000000000000000000000003e7]", "0x00")
+ self.binary80_to_bid128("0", "[c008fa00000000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("1", "[c008fa00000000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("2", "[c008fa00000000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("3", "[c008fa00000000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("4", "[c008fa00000000000000]", "[b04000000000000000000000000003e8]", "0x00")
+ self.binary80_to_bid128("0", "[c121a26d6b3b37bd06c0]", "[b0ac7c75ab6481dda6bca4ffbe05e57f]", "0x20")
+ self.binary80_to_bid128("1", "[c121a26d6b3b37bd06c0]", "[b0ac7c75ab6481dda6bca4ffbe05e57f]", "0x20")
+ self.binary80_to_bid128("2", "[c121a26d6b3b37bd06c0]", "[b0ac7c75ab6481dda6bca4ffbe05e57e]", "0x20")
+ self.binary80_to_bid128("3", "[c121a26d6b3b37bd06c0]", "[b0ac7c75ab6481dda6bca4ffbe05e57e]", "0x20")
+ self.binary80_to_bid128("4", "[c121a26d6b3b37bd06c0]", "[b0ac7c75ab6481dda6bca4ffbe05e57f]", "0x20")
+ self.binary80_to_bid128("0", "[c26df0c64fe1d212722f]", "[b174a169bb81af25df1153c111ccfbcb]", "0x20")
+ self.binary80_to_bid128("1", "[c26df0c64fe1d212722f]", "[b174a169bb81af25df1153c111ccfbcb]", "0x20")
+ self.binary80_to_bid128("2", "[c26df0c64fe1d212722f]", "[b174a169bb81af25df1153c111ccfbca]", "0x20")
+ self.binary80_to_bid128("3", "[c26df0c64fe1d212722f]", "[b174a169bb81af25df1153c111ccfbca]", "0x20")
+ self.binary80_to_bid128("4", "[c26df0c64fe1d212722f]", "[b174a169bb81af25df1153c111ccfbcb]", "0x20")
+ self.binary80_to_bid128("0", "[c3b5eb101a827a2a82d2]", "[b23a562b3be061abad5397f44cbfdac2]", "0x20")
+ self.binary80_to_bid128("1", "[c3b5eb101a827a2a82d2]", "[b23a562b3be061abad5397f44cbfdac2]", "0x20")
+ self.binary80_to_bid128("2", "[c3b5eb101a827a2a82d2]", "[b23a562b3be061abad5397f44cbfdac1]", "0x20")
+ self.binary80_to_bid128("3", "[c3b5eb101a827a2a82d2]", "[b23a562b3be061abad5397f44cbfdac1]", "0x20")
+ self.binary80_to_bid128("4", "[c3b5eb101a827a2a82d2]", "[b23a562b3be061abad5397f44cbfdac2]", "0x20")
+ self.binary80_to_bid128("0", "[c4fde62db6a3aed71652]", "[b2ffcd6449ab9ba53296b7caf257a22c]", "0x20")
+ self.binary80_to_bid128("1", "[c4fde62db6a3aed71652]", "[b2ffcd6449ab9ba53296b7caf257a22d]", "0x20")
+ self.binary80_to_bid128("2", "[c4fde62db6a3aed71652]", "[b2ffcd6449ab9ba53296b7caf257a22c]", "0x20")
+ self.binary80_to_bid128("3", "[c4fde62db6a3aed71652]", "[b2ffcd6449ab9ba53296b7caf257a22c]", "0x20")
+ self.binary80_to_bid128("4", "[c4fde62db6a3aed71652]", "[b2ffcd6449ab9ba53296b7caf257a22c]", "0x20")
+ self.binary80_to_bid128("0", "[c643f73e86c82535d3c0]", "[b3c443c00442a031732845fd1134f5e3]", "0x20")
+ self.binary80_to_bid128("1", "[c643f73e86c82535d3c0]", "[b3c443c00442a031732845fd1134f5e3]", "0x20")
+ self.binary80_to_bid128("2", "[c643f73e86c82535d3c0]", "[b3c443c00442a031732845fd1134f5e2]", "0x20")
+ self.binary80_to_bid128("3", "[c643f73e86c82535d3c0]", "[b3c443c00442a031732845fd1134f5e2]", "0x20")
+ self.binary80_to_bid128("4", "[c643f73e86c82535d3c0]", "[b3c443c00442a031732845fd1134f5e3]", "0x20")
+ self.binary80_to_bid128("0", "[c78d96f10234c8f5459a]", "[b48a5a7792b554507226f387f32a3149]", "0x20")
+ self.binary80_to_bid128("1", "[c78d96f10234c8f5459a]", "[b48a5a7792b554507226f387f32a314a]", "0x20")
+ self.binary80_to_bid128("2", "[c78d96f10234c8f5459a]", "[b48a5a7792b554507226f387f32a3149]", "0x20")
+ self.binary80_to_bid128("3", "[c78d96f10234c8f5459a]", "[b48a5a7792b554507226f387f32a3149]", "0x20")
+ self.binary80_to_bid128("4", "[c78d96f10234c8f5459a]", "[b48a5a7792b554507226f387f32a3149]", "0x20")
+ self.binary80_to_bid128("0", "[c8d589b0973b357efcde]", "[b54fc341659838a363c081ac3a5bb122]", "0x20")
+ self.binary80_to_bid128("1", "[c8d589b0973b357efcde]", "[b54fc341659838a363c081ac3a5bb123]", "0x20")
+ self.binary80_to_bid128("2", "[c8d589b0973b357efcde]", "[b54fc341659838a363c081ac3a5bb122]", "0x20")
+ self.binary80_to_bid128("3", "[c8d589b0973b357efcde]", "[b54fc341659838a363c081ac3a5bb122]", "0x20")
+ self.binary80_to_bid128("4", "[c8d589b0973b357efcde]", "[b54fc341659838a363c081ac3a5bb122]", "0x20")
+ self.binary80_to_bid128("0", "[ca1eb272eba3c732d27d]", "[b6163ff58f4690eee7dada53270a0972]", "0x20")
+ self.binary80_to_bid128("1", "[ca1eb272eba3c732d27d]", "[b6163ff58f4690eee7dada53270a0973]", "0x20")
+ self.binary80_to_bid128("2", "[ca1eb272eba3c732d27d]", "[b6163ff58f4690eee7dada53270a0972]", "0x20")
+ self.binary80_to_bid128("3", "[ca1eb272eba3c732d27d]", "[b6163ff58f4690eee7dada53270a0972]", "0x20")
+ self.binary80_to_bid128("4", "[ca1eb272eba3c732d27d]", "[b6163ff58f4690eee7dada53270a0972]", "0x20")
+ self.binary80_to_bid128("0", "[cb66fbe22374349e657c]", "[b6dc315dad59d50cecb256f24ab6643a]", "0x20")
+ self.binary80_to_bid128("1", "[cb66fbe22374349e657c]", "[b6dc315dad59d50cecb256f24ab6643b]", "0x20")
+ self.binary80_to_bid128("2", "[cb66fbe22374349e657c]", "[b6dc315dad59d50cecb256f24ab6643a]", "0x20")
+ self.binary80_to_bid128("3", "[cb66fbe22374349e657c]", "[b6dc315dad59d50cecb256f24ab6643a]", "0x20")
+ self.binary80_to_bid128("4", "[cb66fbe22374349e657c]", "[b6dc315dad59d50cecb256f24ab6643a]", "0x20")
+ self.binary80_to_bid128("0", "[ccacb6a16d4821970d18]", "[b79fe94e264208287294e60a5a823c7a]", "0x20")
+ self.binary80_to_bid128("1", "[ccacb6a16d4821970d18]", "[b79fe94e264208287294e60a5a823c7a]", "0x20")
+ self.binary80_to_bid128("2", "[ccacb6a16d4821970d18]", "[b79fe94e264208287294e60a5a823c79]", "0x20")
+ self.binary80_to_bid128("3", "[ccacb6a16d4821970d18]", "[b79fe94e264208287294e60a5a823c79]", "0x20")
+ self.binary80_to_bid128("4", "[ccacb6a16d4821970d18]", "[b79fe94e264208287294e60a5a823c7a]", "0x20")
+ self.binary80_to_bid128("0", "[cdf684842818bba6ca46]", "[b8664da7e4931945186d1a7a6ae220c5]", "0x20")
+ self.binary80_to_bid128("1", "[cdf684842818bba6ca46]", "[b8664da7e4931945186d1a7a6ae220c5]", "0x20")
+ self.binary80_to_bid128("2", "[cdf684842818bba6ca46]", "[b8664da7e4931945186d1a7a6ae220c4]", "0x20")
+ self.binary80_to_bid128("3", "[cdf684842818bba6ca46]", "[b8664da7e4931945186d1a7a6ae220c4]", "0x20")
+ self.binary80_to_bid128("4", "[cdf684842818bba6ca46]", "[b8664da7e4931945186d1a7a6ae220c5]", "0x20")
+ self.binary80_to_bid128("0", "[cf3fc5fd3ad9de2d640b]", "[b92c7ee2e9d39fe2883fb775b7c2593f]", "0x20")
+ self.binary80_to_bid128("1", "[cf3fc5fd3ad9de2d640b]", "[b92c7ee2e9d39fe2883fb775b7c25940]", "0x20")
+ self.binary80_to_bid128("2", "[cf3fc5fd3ad9de2d640b]", "[b92c7ee2e9d39fe2883fb775b7c2593f]", "0x20")
+ self.binary80_to_bid128("3", "[cf3fc5fd3ad9de2d640b]", "[b92c7ee2e9d39fe2883fb775b7c2593f]", "0x20")
+ self.binary80_to_bid128("4", "[cf3fc5fd3ad9de2d640b]", "[b92c7ee2e9d39fe2883fb775b7c2593f]", "0x20")
+ self.binary80_to_bid128("0", "[d087c8839079a3c8f91d]", "[b9f2464491d1ea81d1aebf524fbd8148]", "0x20")
+ self.binary80_to_bid128("1", "[d087c8839079a3c8f91d]", "[b9f2464491d1ea81d1aebf524fbd8149]", "0x20")
+ self.binary80_to_bid128("2", "[d087c8839079a3c8f91d]", "[b9f2464491d1ea81d1aebf524fbd8148]", "0x20")
+ self.binary80_to_bid128("3", "[d087c8839079a3c8f91d]", "[b9f2464491d1ea81d1aebf524fbd8148]", "0x20")
+ self.binary80_to_bid128("4", "[d087c8839079a3c8f91d]", "[b9f2464491d1ea81d1aebf524fbd8148]", "0x20")
+ self.binary80_to_bid128("0", "[d1ccc5d55494b3f4f0c0]", "[bab5d9defc47d3a11e4b2b82b0899061]", "0x20")
+ self.binary80_to_bid128("1", "[d1ccc5d55494b3f4f0c0]", "[bab5d9defc47d3a11e4b2b82b0899062]", "0x20")
+ self.binary80_to_bid128("2", "[d1ccc5d55494b3f4f0c0]", "[bab5d9defc47d3a11e4b2b82b0899061]", "0x20")
+ self.binary80_to_bid128("3", "[d1ccc5d55494b3f4f0c0]", "[bab5d9defc47d3a11e4b2b82b0899061]", "0x20")
+ self.binary80_to_bid128("4", "[d1ccc5d55494b3f4f0c0]", "[bab5d9defc47d3a11e4b2b82b0899061]", "0x20")
+ self.binary80_to_bid128("0", "[d315e2a110c1fb1f86c0]", "[bb7c3b5df3941d1dc62955852fcba29d]", "0x20")
+ self.binary80_to_bid128("1", "[d315e2a110c1fb1f86c0]", "[bb7c3b5df3941d1dc62955852fcba29d]", "0x20")
+ self.binary80_to_bid128("2", "[d315e2a110c1fb1f86c0]", "[bb7c3b5df3941d1dc62955852fcba29c]", "0x20")
+ self.binary80_to_bid128("3", "[d315e2a110c1fb1f86c0]", "[bb7c3b5df3941d1dc62955852fcba29c]", "0x20")
+ self.binary80_to_bid128("4", "[d315e2a110c1fb1f86c0]", "[bb7c3b5df3941d1dc62955852fcba29d]", "0x20")
+ self.binary80_to_bid128("0", "[d45ec3debf2bc7c72034]", "[bc42381d030a548eef6f59127052b34b]", "0x20")
+ self.binary80_to_bid128("1", "[d45ec3debf2bc7c72034]", "[bc42381d030a548eef6f59127052b34c]", "0x20")
+ self.binary80_to_bid128("2", "[d45ec3debf2bc7c72034]", "[bc42381d030a548eef6f59127052b34b]", "0x20")
+ self.binary80_to_bid128("3", "[d45ec3debf2bc7c72034]", "[bc42381d030a548eef6f59127052b34b]", "0x20")
+ self.binary80_to_bid128("4", "[d45ec3debf2bc7c72034]", "[bc42381d030a548eef6f59127052b34b]", "0x20")
+ self.binary80_to_bid128("0", "[d5a89a5eba73624703af]", "[bd0860bac7ad1db7c876f8be2311ae5f]", "0x20")
+ self.binary80_to_bid128("1", "[d5a89a5eba73624703af]", "[bd0860bac7ad1db7c876f8be2311ae5f]", "0x20")
+ self.binary80_to_bid128("2", "[d5a89a5eba73624703af]", "[bd0860bac7ad1db7c876f8be2311ae5e]", "0x20")
+ self.binary80_to_bid128("3", "[d5a89a5eba73624703af]", "[bd0860bac7ad1db7c876f8be2311ae5e]", "0x20")
+ self.binary80_to_bid128("4", "[d5a89a5eba73624703af]", "[bd0860bac7ad1db7c876f8be2311ae5f]", "0x20")
+ self.binary80_to_bid128("0", "[d6eebd56b7e40ad395d4]", "[bdcca22fb9e53ab86e57f576a2e7e7d8]", "0x20")
+ self.binary80_to_bid128("1", "[d6eebd56b7e40ad395d4]", "[bdcca22fb9e53ab86e57f576a2e7e7d8]", "0x20")
+ self.binary80_to_bid128("2", "[d6eebd56b7e40ad395d4]", "[bdcca22fb9e53ab86e57f576a2e7e7d7]", "0x20")
+ self.binary80_to_bid128("3", "[d6eebd56b7e40ad395d4]", "[bdcca22fb9e53ab86e57f576a2e7e7d7]", "0x20")
+ self.binary80_to_bid128("4", "[d6eebd56b7e40ad395d4]", "[bdcca22fb9e53ab86e57f576a2e7e7d8]", "0x20")
+ self.binary80_to_bid128("0", "[d83389ad73b1c4d8f9c0]", "[be90509c0e59cdc6c43722df036bf141]", "0x20")
+ self.binary80_to_bid128("1", "[d83389ad73b1c4d8f9c0]", "[be90509c0e59cdc6c43722df036bf142]", "0x20")
+ self.binary80_to_bid128("2", "[d83389ad73b1c4d8f9c0]", "[be90509c0e59cdc6c43722df036bf141]", "0x20")
+ self.binary80_to_bid128("3", "[d83389ad73b1c4d8f9c0]", "[be90509c0e59cdc6c43722df036bf141]", "0x20")
+ self.binary80_to_bid128("4", "[d83389ad73b1c4d8f9c0]", "[be90509c0e59cdc6c43722df036bf141]", "0x20")
+ self.binary80_to_bid128("0", "[d97ed3ea0a068fc7bd98]", "[bf583646cc46f0e90f99c4f3f9824854]", "0x20")
+ self.binary80_to_bid128("1", "[d97ed3ea0a068fc7bd98]", "[bf583646cc46f0e90f99c4f3f9824855]", "0x20")
+ self.binary80_to_bid128("2", "[d97ed3ea0a068fc7bd98]", "[bf583646cc46f0e90f99c4f3f9824854]", "0x20")
+ self.binary80_to_bid128("3", "[d97ed3ea0a068fc7bd98]", "[bf583646cc46f0e90f99c4f3f9824854]", "0x20")
+ self.binary80_to_bid128("4", "[d97ed3ea0a068fc7bd98]", "[bf583646cc46f0e90f99c4f3f9824854]", "0x20")
+ self.binary80_to_bid128("0", "[dac597181ee7019a5790]", "[c01c69ce3b37622a30368275093dd9e7]", "0x20")
+ self.binary80_to_bid128("1", "[dac597181ee7019a5790]", "[c01c69ce3b37622a30368275093dd9e7]", "0x20")
+ self.binary80_to_bid128("2", "[dac597181ee7019a5790]", "[c01c69ce3b37622a30368275093dd9e6]", "0x20")
+ self.binary80_to_bid128("3", "[dac597181ee7019a5790]", "[c01c69ce3b37622a30368275093dd9e6]", "0x20")
+ self.binary80_to_bid128("4", "[dac597181ee7019a5790]", "[c01c69ce3b37622a30368275093dd9e7]", "0x20")
+ self.binary80_to_bid128("0", "[dc0eae720e3808c7cc18]", "[c0e285983d449d63157168ad783b8674]", "0x20")
+ self.binary80_to_bid128("1", "[dc0eae720e3808c7cc18]", "[c0e285983d449d63157168ad783b8674]", "0x20")
+ self.binary80_to_bid128("2", "[dc0eae720e3808c7cc18]", "[c0e285983d449d63157168ad783b8673]", "0x20")
+ self.binary80_to_bid128("3", "[dc0eae720e3808c7cc18]", "[c0e285983d449d63157168ad783b8673]", "0x20")
+ self.binary80_to_bid128("4", "[dc0eae720e3808c7cc18]", "[c0e285983d449d63157168ad783b8674]", "0x20")
+ self.binary80_to_bid128("0", "[dd57fdcf9ca8e5843c8c]", "[c1a8d492b7341d9227ac8f1d618feb54]", "0x20")
+ self.binary80_to_bid128("1", "[dd57fdcf9ca8e5843c8c]", "[c1a8d492b7341d9227ac8f1d618feb54]", "0x20")
+ self.binary80_to_bid128("2", "[dd57fdcf9ca8e5843c8c]", "[c1a8d492b7341d9227ac8f1d618feb53]", "0x20")
+ self.binary80_to_bid128("3", "[dd57fdcf9ca8e5843c8c]", "[c1a8d492b7341d9227ac8f1d618feb53]", "0x20")
+ self.binary80_to_bid128("4", "[dd57fdcf9ca8e5843c8c]", "[c1a8d492b7341d9227ac8f1d618feb54]", "0x20")
+ self.binary80_to_bid128("0", "[de9fadf706ae10d27258]", "[c26e4fabae2ee06ca7b54c92417bb4a5]", "0x20")
+ self.binary80_to_bid128("1", "[de9fadf706ae10d27258]", "[c26e4fabae2ee06ca7b54c92417bb4a6]", "0x20")
+ self.binary80_to_bid128("2", "[de9fadf706ae10d27258]", "[c26e4fabae2ee06ca7b54c92417bb4a5]", "0x20")
+ self.binary80_to_bid128("3", "[de9fadf706ae10d27258]", "[c26e4fabae2ee06ca7b54c92417bb4a5]", "0x20")
+ self.binary80_to_bid128("4", "[de9fadf706ae10d27258]", "[c26e4fabae2ee06ca7b54c92417bb4a5]", "0x20")
+ self.binary80_to_bid128("0", "[dfe7ebdd246ffb85b400]", "[c3343b10db3ec11f815748529df8b6b4]", "0x20")
+ self.binary80_to_bid128("1", "[dfe7ebdd246ffb85b400]", "[c3343b10db3ec11f815748529df8b6b5]", "0x20")
+ self.binary80_to_bid128("2", "[dfe7ebdd246ffb85b400]", "[c3343b10db3ec11f815748529df8b6b4]", "0x20")
+ self.binary80_to_bid128("3", "[dfe7ebdd246ffb85b400]", "[c3343b10db3ec11f815748529df8b6b4]", "0x20")
+ self.binary80_to_bid128("4", "[dfe7ebdd246ffb85b400]", "[c3343b10db3ec11f815748529df8b6b4]", "0x20")
+ self.binary80_to_bid128("0", "[e1319df6e8f16c4a985a]", "[c3fa5685f76dcbc6012663fa70463b3d]", "0x20")
+ self.binary80_to_bid128("1", "[e1319df6e8f16c4a985a]", "[c3fa5685f76dcbc6012663fa70463b3d]", "0x20")
+ self.binary80_to_bid128("2", "[e1319df6e8f16c4a985a]", "[c3fa5685f76dcbc6012663fa70463b3c]", "0x20")
+ self.binary80_to_bid128("3", "[e1319df6e8f16c4a985a]", "[c3fa5685f76dcbc6012663fa70463b3c]", "0x20")
+ self.binary80_to_bid128("4", "[e1319df6e8f16c4a985a]", "[c3fa5685f76dcbc6012663fa70463b3d]", "0x20")
+ self.binary80_to_bid128("0", "[e27a894fa6c7d78faea3]", "[c4c0524095cccf371ca966df35492baf]", "0x20")
+ self.binary80_to_bid128("1", "[e27a894fa6c7d78faea3]", "[c4c0524095cccf371ca966df35492baf]", "0x20")
+ self.binary80_to_bid128("2", "[e27a894fa6c7d78faea3]", "[c4c0524095cccf371ca966df35492bae]", "0x20")
+ self.binary80_to_bid128("3", "[e27a894fa6c7d78faea3]", "[c4c0524095cccf371ca966df35492bae]", "0x20")
+ self.binary80_to_bid128("4", "[e27a894fa6c7d78faea3]", "[c4c0524095cccf371ca966df35492baf]", "0x20")
+ self.binary80_to_bid128("0", "[e3c2a0199bb352038d29]", "[c5863470ef2ebe8536f75305f7be8c70]", "0x20")
+ self.binary80_to_bid128("1", "[e3c2a0199bb352038d29]", "[c5863470ef2ebe8536f75305f7be8c70]", "0x20")
+ self.binary80_to_bid128("2", "[e3c2a0199bb352038d29]", "[c5863470ef2ebe8536f75305f7be8c6f]", "0x20")
+ self.binary80_to_bid128("3", "[e3c2a0199bb352038d29]", "[c5863470ef2ebe8536f75305f7be8c6f]", "0x20")
+ self.binary80_to_bid128("4", "[e3c2a0199bb352038d29]", "[c5863470ef2ebe8536f75305f7be8c70]", "0x20")
+ self.binary80_to_bid128("0", "[e508cb491b57eb8f2f98]", "[c64a5b06ae6b6fa64e2f3323eb87293e]", "0x20")
+ self.binary80_to_bid128("1", "[e508cb491b57eb8f2f98]", "[c64a5b06ae6b6fa64e2f3323eb87293e]", "0x20")
+ self.binary80_to_bid128("2", "[e508cb491b57eb8f2f98]", "[c64a5b06ae6b6fa64e2f3323eb87293d]", "0x20")
+ self.binary80_to_bid128("3", "[e508cb491b57eb8f2f98]", "[c64a5b06ae6b6fa64e2f3323eb87293d]", "0x20")
+ self.binary80_to_bid128("4", "[e508cb491b57eb8f2f98]", "[c64a5b06ae6b6fa64e2f3323eb87293e]", "0x20")
+ self.binary80_to_bid128("0", "[e651c72747e144bc8234]", "[c710618663736503665ad1dbb83474e5]", "0x20")
+ self.binary80_to_bid128("1", "[e651c72747e144bc8234]", "[c710618663736503665ad1dbb83474e6]", "0x20")
+ self.binary80_to_bid128("2", "[e651c72747e144bc8234]", "[c710618663736503665ad1dbb83474e5]", "0x20")
+ self.binary80_to_bid128("3", "[e651c72747e144bc8234]", "[c710618663736503665ad1dbb83474e5]", "0x20")
+ self.binary80_to_bid128("4", "[e651c72747e144bc8234]", "[c710618663736503665ad1dbb83474e5]", "0x20")
+ self.binary80_to_bid128("0", "[e795eb1090bdb83554c0]", "[c7d389664f96aec01615db7b4a4b00e2]", "0x20")
+ self.binary80_to_bid128("1", "[e795eb1090bdb83554c0]", "[c7d389664f96aec01615db7b4a4b00e3]", "0x20")
+ self.binary80_to_bid128("2", "[e795eb1090bdb83554c0]", "[c7d389664f96aec01615db7b4a4b00e2]", "0x20")
+ self.binary80_to_bid128("3", "[e795eb1090bdb83554c0]", "[c7d389664f96aec01615db7b4a4b00e2]", "0x20")
+ self.binary80_to_bid128("4", "[e795eb1090bdb83554c0]", "[c7d389664f96aec01615db7b4a4b00e2]", "0x20")
+ self.binary80_to_bid128("0", "[e8e3fb846800e3dc4a3d]", "[c89c934f68e3a896d31c1955740d3a1a]", "0x20")
+ self.binary80_to_bid128("1", "[e8e3fb846800e3dc4a3d]", "[c89c934f68e3a896d31c1955740d3a1b]", "0x20")
+ self.binary80_to_bid128("2", "[e8e3fb846800e3dc4a3d]", "[c89c934f68e3a896d31c1955740d3a1a]", "0x20")
+ self.binary80_to_bid128("3", "[e8e3fb846800e3dc4a3d]", "[c89c934f68e3a896d31c1955740d3a1a]", "0x20")
+ self.binary80_to_bid128("4", "[e8e3fb846800e3dc4a3d]", "[c89c934f68e3a896d31c1955740d3a1a]", "0x20")
+ self.binary80_to_bid128("0", "[ea2bc08c57014ec2d60f]", "[c9623daa6668bbcea49589ae540c9312]", "0x20")
+ self.binary80_to_bid128("1", "[ea2bc08c57014ec2d60f]", "[c9623daa6668bbcea49589ae540c9312]", "0x20")
+ self.binary80_to_bid128("2", "[ea2bc08c57014ec2d60f]", "[c9623daa6668bbcea49589ae540c9311]", "0x20")
+ self.binary80_to_bid128("3", "[ea2bc08c57014ec2d60f]", "[c9623daa6668bbcea49589ae540c9311]", "0x20")
+ self.binary80_to_bid128("4", "[ea2bc08c57014ec2d60f]", "[c9623daa6668bbcea49589ae540c9312]", "0x20")
+ self.binary80_to_bid128("0", "[eb70b1392db38c7dbb80]", "[ca2583f29e30ec869ce349697e7fe8ed]", "0x20")
+ self.binary80_to_bid128("1", "[eb70b1392db38c7dbb80]", "[ca2583f29e30ec869ce349697e7fe8ee]", "0x20")
+ self.binary80_to_bid128("2", "[eb70b1392db38c7dbb80]", "[ca2583f29e30ec869ce349697e7fe8ed]", "0x20")
+ self.binary80_to_bid128("3", "[eb70b1392db38c7dbb80]", "[ca2583f29e30ec869ce349697e7fe8ed]", "0x20")
+ self.binary80_to_bid128("4", "[eb70b1392db38c7dbb80]", "[ca2583f29e30ec869ce349697e7fe8ed]", "0x20")
+ self.binary80_to_bid128("0", "[ecb8adf47ecb7d800160]", "[caead038fd86241761a6b4a7599b186b]", "0x20")
+ self.binary80_to_bid128("1", "[ecb8adf47ecb7d800160]", "[caead038fd86241761a6b4a7599b186c]", "0x20")
+ self.binary80_to_bid128("2", "[ecb8adf47ecb7d800160]", "[caead038fd86241761a6b4a7599b186b]", "0x20")
+ self.binary80_to_bid128("3", "[ecb8adf47ecb7d800160]", "[caead038fd86241761a6b4a7599b186b]", "0x20")
+ self.binary80_to_bid128("4", "[ecb8adf47ecb7d800160]", "[caead038fd86241761a6b4a7599b186b]", "0x20")
+ self.binary80_to_bid128("0", "[ee038fb17759e098ede6]", "[cbb24b3dbf2853938b946e61fdce3549]", "0x20")
+ self.binary80_to_bid128("1", "[ee038fb17759e098ede6]", "[cbb24b3dbf2853938b946e61fdce3549]", "0x20")
+ self.binary80_to_bid128("2", "[ee038fb17759e098ede6]", "[cbb24b3dbf2853938b946e61fdce3548]", "0x20")
+ self.binary80_to_bid128("3", "[ee038fb17759e098ede6]", "[cbb24b3dbf2853938b946e61fdce3548]", "0x20")
+ self.binary80_to_bid128("4", "[ee038fb17759e098ede6]", "[cbb24b3dbf2853938b946e61fdce3549]", "0x20")
+ self.binary80_to_bid128("0", "[ef4cd1f8c293cb3aa37d]", "[cc78783d6d3d8719eb6eed42337b5488]", "0x20")
+ self.binary80_to_bid128("1", "[ef4cd1f8c293cb3aa37d]", "[cc78783d6d3d8719eb6eed42337b5489]", "0x20")
+ self.binary80_to_bid128("2", "[ef4cd1f8c293cb3aa37d]", "[cc78783d6d3d8719eb6eed42337b5488]", "0x20")
+ self.binary80_to_bid128("3", "[ef4cd1f8c293cb3aa37d]", "[cc78783d6d3d8719eb6eed42337b5488]", "0x20")
+ self.binary80_to_bid128("4", "[ef4cd1f8c293cb3aa37d]", "[cc78783d6d3d8719eb6eed42337b5488]", "0x20")
+ self.binary80_to_bid128("0", "[f094ad75efca170018ca]", "[cd3e3650e41a1c61e2720cc39f265d5a]", "0x20")
+ self.binary80_to_bid128("1", "[f094ad75efca170018ca]", "[cd3e3650e41a1c61e2720cc39f265d5b]", "0x20")
+ self.binary80_to_bid128("2", "[f094ad75efca170018ca]", "[cd3e3650e41a1c61e2720cc39f265d5a]", "0x20")
+ self.binary80_to_bid128("3", "[f094ad75efca170018ca]", "[cd3e3650e41a1c61e2720cc39f265d5a]", "0x20")
+ self.binary80_to_bid128("4", "[f094ad75efca170018ca]", "[cd3e3650e41a1c61e2720cc39f265d5a]", "0x20")
+ self.binary80_to_bid128("0", "[f1d9ef57b8bfa4d07a10]", "[ce02333a0061d6f9886c5051d47ee702]", "0x20")
+ self.binary80_to_bid128("1", "[f1d9ef57b8bfa4d07a10]", "[ce02333a0061d6f9886c5051d47ee703]", "0x20")
+ self.binary80_to_bid128("2", "[f1d9ef57b8bfa4d07a10]", "[ce02333a0061d6f9886c5051d47ee702]", "0x20")
+ self.binary80_to_bid128("3", "[f1d9ef57b8bfa4d07a10]", "[ce02333a0061d6f9886c5051d47ee702]", "0x20")
+ self.binary80_to_bid128("4", "[f1d9ef57b8bfa4d07a10]", "[ce02333a0061d6f9886c5051d47ee702]", "0x20")
+ self.binary80_to_bid128("0", "[f322c7a2a63d8d923220]", "[cec7d348c5f0c06b301c58c3b98ed2bd]", "0x20")
+ self.binary80_to_bid128("1", "[f322c7a2a63d8d923220]", "[cec7d348c5f0c06b301c58c3b98ed2be]", "0x20")
+ self.binary80_to_bid128("2", "[f322c7a2a63d8d923220]", "[cec7d348c5f0c06b301c58c3b98ed2bd]", "0x20")
+ self.binary80_to_bid128("3", "[f322c7a2a63d8d923220]", "[cec7d348c5f0c06b301c58c3b98ed2bd]", "0x20")
+ self.binary80_to_bid128("4", "[f322c7a2a63d8d923220]", "[cec7d348c5f0c06b301c58c3b98ed2bd]", "0x20")
+ self.binary80_to_bid128("0", "[f468e8c18b2519753860]", "[cf8c4a7a28b39b1c587c02944ba5941a]", "0x20")
+ self.binary80_to_bid128("1", "[f468e8c18b2519753860]", "[cf8c4a7a28b39b1c587c02944ba5941a]", "0x20")
+ self.binary80_to_bid128("2", "[f468e8c18b2519753860]", "[cf8c4a7a28b39b1c587c02944ba59419]", "0x20")
+ self.binary80_to_bid128("3", "[f468e8c18b2519753860]", "[cf8c4a7a28b39b1c587c02944ba59419]", "0x20")
+ self.binary80_to_bid128("4", "[f468e8c18b2519753860]", "[cf8c4a7a28b39b1c587c02944ba5941a]", "0x20")
+ self.binary80_to_bid128("0", "[f5b5fd9fda40e6735121]", "[d0548e012338dcf31fb2c41f151ec453]", "0x20")
+ self.binary80_to_bid128("1", "[f5b5fd9fda40e6735121]", "[d0548e012338dcf31fb2c41f151ec454]", "0x20")
+ self.binary80_to_bid128("2", "[f5b5fd9fda40e6735121]", "[d0548e012338dcf31fb2c41f151ec453]", "0x20")
+ self.binary80_to_bid128("3", "[f5b5fd9fda40e6735121]", "[d0548e012338dcf31fb2c41f151ec453]", "0x20")
+ self.binary80_to_bid128("4", "[f5b5fd9fda40e6735121]", "[d0548e012338dcf31fb2c41f151ec453]", "0x20")
+ self.binary80_to_bid128("0", "[f6fd951bfa84506ea301]", "[d119c883988e9bf6d2480c50ed8d559c]", "0x20")
+ self.binary80_to_bid128("1", "[f6fd951bfa84506ea301]", "[d119c883988e9bf6d2480c50ed8d559c]", "0x20")
+ self.binary80_to_bid128("2", "[f6fd951bfa84506ea301]", "[d119c883988e9bf6d2480c50ed8d559b]", "0x20")
+ self.binary80_to_bid128("3", "[f6fd951bfa84506ea301]", "[d119c883988e9bf6d2480c50ed8d559b]", "0x20")
+ self.binary80_to_bid128("4", "[f6fd951bfa84506ea301]", "[d119c883988e9bf6d2480c50ed8d559c]", "0x20")
+ self.binary80_to_bid128("0", "[f842ed5066466c127bd0]", "[d1de31a9648e7e85ece8223f7dd0658e]", "0x20")
+ self.binary80_to_bid128("1", "[f842ed5066466c127bd0]", "[d1de31a9648e7e85ece8223f7dd0658e]", "0x20")
+ self.binary80_to_bid128("2", "[f842ed5066466c127bd0]", "[d1de31a9648e7e85ece8223f7dd0658d]", "0x20")
+ self.binary80_to_bid128("3", "[f842ed5066466c127bd0]", "[d1de31a9648e7e85ece8223f7dd0658d]", "0x20")
+ self.binary80_to_bid128("4", "[f842ed5066466c127bd0]", "[d1de31a9648e7e85ece8223f7dd0658e]", "0x20")
+ self.binary80_to_bid128("0", "[f98b92199560f5cbdc88]", "[d2a34e5c9d8feaf1d0866a2a267ba502]", "0x20")
+ self.binary80_to_bid128("1", "[f98b92199560f5cbdc88]", "[d2a34e5c9d8feaf1d0866a2a267ba503]", "0x20")
+ self.binary80_to_bid128("2", "[f98b92199560f5cbdc88]", "[d2a34e5c9d8feaf1d0866a2a267ba502]", "0x20")
+ self.binary80_to_bid128("3", "[f98b92199560f5cbdc88]", "[d2a34e5c9d8feaf1d0866a2a267ba502]", "0x20")
+ self.binary80_to_bid128("4", "[f98b92199560f5cbdc88]", "[d2a34e5c9d8feaf1d0866a2a267ba502]", "0x20")
+ self.binary80_to_bid128("0", "[fad5a0275fe11b5b8d06]", "[d36a502b12da3bd3ab85bd102486f38d]", "0x20")
+ self.binary80_to_bid128("1", "[fad5a0275fe11b5b8d06]", "[d36a502b12da3bd3ab85bd102486f38d]", "0x20")
+ self.binary80_to_bid128("2", "[fad5a0275fe11b5b8d06]", "[d36a502b12da3bd3ab85bd102486f38c]", "0x20")
+ self.binary80_to_bid128("3", "[fad5a0275fe11b5b8d06]", "[d36a502b12da3bd3ab85bd102486f38c]", "0x20")
+ self.binary80_to_bid128("4", "[fad5a0275fe11b5b8d06]", "[d36a502b12da3bd3ab85bd102486f38d]", "0x20")
+ self.binary80_to_bid128("0", "[fc1eef1caea67b62323f]", "[d43082e60e5fce6c4b14ca551fc50792]", "0x20")
+ self.binary80_to_bid128("1", "[fc1eef1caea67b62323f]", "[d43082e60e5fce6c4b14ca551fc50793]", "0x20")
+ self.binary80_to_bid128("2", "[fc1eef1caea67b62323f]", "[d43082e60e5fce6c4b14ca551fc50792]", "0x20")
+ self.binary80_to_bid128("3", "[fc1eef1caea67b62323f]", "[d43082e60e5fce6c4b14ca551fc50792]", "0x20")
+ self.binary80_to_bid128("4", "[fc1eef1caea67b62323f]", "[d43082e60e5fce6c4b14ca551fc50792]", "0x20")
+ self.binary80_to_bid128("0", "[fd62ea2542cadf4c67b0]", "[d4f3b6108f9d54096b454cae5aa385d8]", "0x20")
+ self.binary80_to_bid128("1", "[fd62ea2542cadf4c67b0]", "[d4f3b6108f9d54096b454cae5aa385d8]", "0x20")
+ self.binary80_to_bid128("2", "[fd62ea2542cadf4c67b0]", "[d4f3b6108f9d54096b454cae5aa385d7]", "0x20")
+ self.binary80_to_bid128("3", "[fd62ea2542cadf4c67b0]", "[d4f3b6108f9d54096b454cae5aa385d7]", "0x20")
+ self.binary80_to_bid128("4", "[fd62ea2542cadf4c67b0]", "[d4f3b6108f9d54096b454cae5aa385d8]", "0x20")
+ self.binary80_to_bid128("0", "[feaab5af54587177ac40]", "[d5b8b9dec3c22374ceca90b3c34cf915]", "0x20")
+ self.binary80_to_bid128("1", "[feaab5af54587177ac40]", "[d5b8b9dec3c22374ceca90b3c34cf915]", "0x20")
+ self.binary80_to_bid128("2", "[feaab5af54587177ac40]", "[d5b8b9dec3c22374ceca90b3c34cf914]", "0x20")
+ self.binary80_to_bid128("3", "[feaab5af54587177ac40]", "[d5b8b9dec3c22374ceca90b3c34cf914]", "0x20")
+ self.binary80_to_bid128("4", "[feaab5af54587177ac40]", "[d5b8b9dec3c22374ceca90b3c34cf915]", "0x20")
+ self.binary80_to_bid128("0", "[fffeffffffffffffffff]", "[d6863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("1", "[fffeffffffffffffffff]", "[d6863aa885cb1a6cecf38634ccf08e3b]", "0x20")
+ self.binary80_to_bid128("2", "[fffeffffffffffffffff]", "[d6863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("3", "[fffeffffffffffffffff]", "[d6863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("4", "[fffeffffffffffffffff]", "[d6863aa885cb1a6cecf38634ccf08e3a]", "0x20")
+ self.binary80_to_bid128("0", "[ffff8000000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("1", "[ffff8000000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("2", "[ffff8000000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("3", "[ffff8000000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("4", "[ffff8000000000000000]", "[f8000000000000000000000000000000]", "0x00")
+ self.binary80_to_bid128("0", "[000000000000000000A5]", "6014579227606083094171869790472043E-4982", "22")
+ self.binary80_to_bid128("0", "[40739a130b963a6c115c]", "+9999999999999999999787144856784077E+1", "0x20")
+ self.binary80_to_bid128("0", "[40739a130b963a6c115d]", "+1000000000000000000068786478225818E+2", "0x20")
+ self.binary80_to_bid128("1", "[40739a130b963a6c115c]", "+9999999999999999999787144856784076E+1", "0x20")
+ self.binary80_to_bid128("1", "[40739a130b963a6c115d]", "+1000000000000000000068786478225817E+2", "0x20")
+ self.binary80_to_bid128("2", "[40739a130b963a6c115c]", "+9999999999999999999787144856784077E+1", "0x20")
+ self.binary80_to_bid128("2", "[40739a130b963a6c115d]", "+1000000000000000000068786478225818E+2", "0x20")
+ self.binary80_to_bid128("3", "[40739a130b963a6c115c]", "+9999999999999999999787144856784076E+1", "0x20")
+ self.binary80_to_bid128("3", "[40739a130b963a6c115d]", "+1000000000000000000068786478225817E+2", "0x20")
+ self.binary80_to_bid128("4", "[40739a130b963a6c115c]", "+9999999999999999999787144856784077E+1", "0x20")
+ self.binary80_to_bid128("4", "[40739a130b963a6c115d]", "+1000000000000000000068786478225818E+2", "0x20")
+ self.binary80_to_bid128("0", "[406ff684df56c3e01bc6]", "[3041ed09bead87c0378c000000000000]", "00")
+ self.binary80_to_bid128("1", "[406ff684df56c3e01bc6]", "[3041ed09bead87c0378c000000000000]", "00")
+ self.binary80_to_bid128("2", "[406ff684df56c3e01bc6]", "[3041ed09bead87c0378c000000000000]", "00")
+ self.binary80_to_bid128("3", "[406ff684df56c3e01bc6]", "[3041ed09bead87c0378c000000000000]", "00")
+ self.binary80_to_bid128("4", "[406ff684df56c3e01bc6]", "[3041ed09bead87c0378c000000000000]", "00")
+ self.binary80_to_bid128("0", "[407396FF33D4AAC3D365000000000000]", "9.800258121033847252293949123985408e+34", "00")
+ self.binary80_to_bid128("1", "[407396FF33D4AAC3D365000000000000]", "9.800258121033847252293949123985408e+34", "00")
+ self.binary80_to_bid128("2", "[407396FF33D4AAC3D365000000000000]", "9.800258121033847252293949123985408e+34", "00")
+ self.binary80_to_bid128("3", "[407396FF33D4AAC3D365000000000000]", "9.800258121033847252293949123985408e+34", "00")
+ self.binary80_to_bid128("4", "[407396FF33D4AAC3D365000000000000]", "9.800258121033847252293949123985408e+34", "00")
+ }
+
+ private func binary80_to_bid128(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseFloat80(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+
+#endif
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelFromDecimalTests.swift b/Tests/DecimalTests/Intel - generated/IntelFromDecimalTests.swift
new file mode 100644
index 0000000..d293818
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelFromDecimalTests.swift
@@ -0,0 +1,605 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelFromDecimalTests: XCTestCase, IntelMixin {
+
+ func test_bid32_to_bid64() {
+ self.bid32_to_bid64("0", "[00000000]", "[2520000000000000]", "00")
+ self.bid32_to_bid64("0", "[00000001]", "[2520000000000001]", "00")
+ self.bid32_to_bid64("0", "[00000066]", "[2520000000000066]", "00")
+ self.bid32_to_bid64("0", "[00001231]", "[2520000000001231]", "00")
+ self.bid32_to_bid64("0", "[000027db]", "[25200000000027db]", "00")
+ self.bid32_to_bid64("0", "[000f1b60]", "[25200000000f1b60]", "00")
+ self.bid32_to_bid64("0", "[0012d687]", "[252000000012d687]", "00")
+ self.bid32_to_bid64("0", "[02800000]", "[25c0000000000000]", "00")
+ self.bid32_to_bid64("0", "[02800001]", "[25c0000000000001]", "00")
+ self.bid32_to_bid64("0", "[2f8f4240]", "[31000000000f4240]", "00")
+ self.bid32_to_bid64("0", "[2f9e8480]", "[31000000001e8480]", "00")
+ self.bid32_to_bid64("0", "[300186a0]", "[31200000000186a0]", "00")
+ self.bid32_to_bid64("0", "[30030d40]", "[3120000000030d40]", "00")
+ self.bid32_to_bid64("0", "[30802710]", "[3140000000002710]", "00")
+ self.bid32_to_bid64("0", "[30804e20]", "[3140000000004e20]", "00")
+ self.bid32_to_bid64("0", "[310003e8]", "[31600000000003e8]", "00")
+ self.bid32_to_bid64("0", "[310007d0]", "[31600000000007d0]", "00")
+ self.bid32_to_bid64("0", "[31800064]", "[3180000000000064]", "00")
+ self.bid32_to_bid64("0", "[318000c8]", "[31800000000000c8]", "00")
+ self.bid32_to_bid64("0", "[3200000a]", "[31a000000000000a]", "00")
+ self.bid32_to_bid64("0", "[32000014]", "[31a0000000000014]", "00")
+ self.bid32_to_bid64("0", "[32800001]", "[31c0000000000001]", "00")
+ self.bid32_to_bid64("0", "[32800002]", "[31c0000000000002]", "00")
+ self.bid32_to_bid64("0", "[32800003]", "[31c0000000000003]", "00")
+ self.bid32_to_bid64("0", "[32800004]", "[31c0000000000004]", "00")
+ self.bid32_to_bid64("0", "[32800008]", "[31c0000000000008]", "00")
+ self.bid32_to_bid64("0", "[32800010]", "[31c0000000000010]", "00")
+ self.bid32_to_bid64("0", "[32800020]", "[31c0000000000020]", "00")
+ self.bid32_to_bid64("0", "[32800040]", "[31c0000000000040]", "00")
+ self.bid32_to_bid64("0", "[32800080]", "[31c0000000000080]", "00")
+ self.bid32_to_bid64("0", "[32800100]", "[31c0000000000100]", "00")
+ self.bid32_to_bid64("0", "[32800200]", "[31c0000000000200]", "00")
+ self.bid32_to_bid64("0", "[32800400]", "[31c0000000000400]", "00")
+ self.bid32_to_bid64("0", "[32800800]", "[31c0000000000800]", "00")
+ self.bid32_to_bid64("0", "[32801000]", "[31c0000000001000]", "00")
+ self.bid32_to_bid64("0", "[32802000]", "[31c0000000002000]", "00")
+ self.bid32_to_bid64("0", "[32804000]", "[31c0000000004000]", "00")
+ self.bid32_to_bid64("0", "[32808000]", "[31c0000000008000]", "00")
+ self.bid32_to_bid64("0", "[32810000]", "[31c0000000010000]", "00")
+ self.bid32_to_bid64("0", "[32820000]", "[31c0000000020000]", "00")
+ self.bid32_to_bid64("0", "[32840000]", "[31c0000000040000]", "00")
+ self.bid32_to_bid64("0", "[32880000]", "[31c0000000080000]", "00")
+ self.bid32_to_bid64("0", "[32900000]", "[31c0000000100000]", "00")
+ self.bid32_to_bid64("0", "[32a00000]", "[31c0000000200000]", "00")
+ self.bid32_to_bid64("0", "[32c00000]", "[31c0000000400000]", "00")
+ self.bid32_to_bid64("0", "[3319999a]", "[31e000000019999a]", "00")
+ self.bid32_to_bid64("0", "[33333333]", "[31e0000000333333]", "00")
+ self.bid32_to_bid64("0", "[33666666]", "[31e0000000666666]", "00")
+ self.bid32_to_bid64("0", "[33947ae1]", "[3200000000147ae1]", "00")
+ self.bid32_to_bid64("0", "[33a8f5c3]", "[320000000028f5c3]", "00")
+ self.bid32_to_bid64("0", "[5f000000]", "[3ce0000000000000]", "00")
+ self.bid32_to_bid64("0", "[5f000001]", "[3ce0000000000001]", "00")
+ self.bid32_to_bid64("0", "[5f12d687]", "[3ce000000012d687]", "00")
+ self.bid32_to_bid64("0", "[5f800000]", "[3d00000000000000]", "00")
+ self.bid32_to_bid64("0", "[5f800001]", "[3d00000000000001]", "00")
+ self.bid32_to_bid64("0", "[5f8f4241]", "[3d000000000f4241]", "00")
+ self.bid32_to_bid64("0", "[5f92d687]", "[3d0000000012d687]", "00")
+ self.bid32_to_bid64("0", "[6018967f]", "[252000000098967f]", "00")
+ self.bid32_to_bid64("0", "[607fffff]", "[2580000000000000]", "00")
+ self.bid32_to_bid64("0", "[658c3437]", "[2aa00000008c3437]", "00")
+ self.bid32_to_bid64("0", "[6ca00000]", "[31c0000000800000]", "00")
+ self.bid32_to_bid64("0", "[77eae409]", "[3d000000008ae409]", "00")
+ self.bid32_to_bid64("0", "[77f8967e]", "[3d0000000098967e]", "00")
+ self.bid32_to_bid64("0", "[77f8967f]", "[3d0000000098967f]", "00")
+ self.bid32_to_bid64("0", "[78000000]", "[7800000000000000]", "00")
+ self.bid32_to_bid64("0", "[78000001]", "[7800000000000000]", "00")
+ self.bid32_to_bid64("0", "[78001000]", "[7800000000000000]", "00")
+ self.bid32_to_bid64("0", "[780fffff]", "[7800000000000000]", "00")
+ self.bid32_to_bid64("0", "[78f00000]", "[7800000000000000]", "00")
+ self.bid32_to_bid64("0", "[78f00001]", "[7800000000000000]", "00")
+ self.bid32_to_bid64("0", "[78ffffff]", "[7800000000000000]", "00")
+ self.bid32_to_bid64("0", "[7c000000]", "[7c00000000000000]", "00")
+ self.bid32_to_bid64("0", "[7c000001]", "[7c0000003b9aca00]", "00")
+ self.bid32_to_bid64("0", "[7c000100]", "[7c00003b9aca0000]", "00")
+ self.bid32_to_bid64("0", "[7c001000]", "[7c0003b9aca00000]", "00")
+ self.bid32_to_bid64("0", "[7c0fffff]", "[7c00000000000000]", "00")
+ self.bid32_to_bid64("0", "[7cf00000]", "[7c00000000000000]", "00")
+ self.bid32_to_bid64("0", "[7cf00001]", "[7c0000003b9aca00]", "00")
+ self.bid32_to_bid64("0", "[7cffffff]", "[7c00000000000000]", "00")
+ self.bid32_to_bid64("0", "[7e000000]", "[7c00000000000000]", "01")
+ self.bid32_to_bid64("0", "[7e000001]", "[7c0000003b9aca00]", "01")
+ self.bid32_to_bid64("0", "[7e000100]", "[7c00003b9aca0000]", "01")
+ self.bid32_to_bid64("0", "[7e0fffff]", "[7c00000000000000]", "01")
+ self.bid32_to_bid64("0", "[7ef00000]", "[7c00000000000000]", "01")
+ self.bid32_to_bid64("0", "[7ef00001]", "[7c0000003b9aca00]", "01")
+ self.bid32_to_bid64("0", "[7effffff]", "[7c00000000000000]", "01")
+ self.bid32_to_bid64("0", "[80000000]", "[a520000000000000]", "00")
+ self.bid32_to_bid64("0", "[80000001]", "[a520000000000001]", "00")
+ self.bid32_to_bid64("0", "[800007d0]", "[a5200000000007d0]", "00")
+ self.bid32_to_bid64("0", "[800027db]", "[a5200000000027db]", "00")
+ self.bid32_to_bid64("0", "[808000c8]", "[a5400000000000c8]", "00")
+ self.bid32_to_bid64("0", "[81000014]", "[a560000000000014]", "00")
+ self.bid32_to_bid64("0", "[81800002]", "[a580000000000002]", "00")
+ self.bid32_to_bid64("0", "[df8f4241]", "[bd000000000f4241]", "00")
+ self.bid32_to_bid64("0", "[df92d687]", "[bd0000000012d687]", "00")
+ self.bid32_to_bid64("0", "[f420b31f]", "[b94000000080b31f]", "00")
+ self.bid32_to_bid64("0", "[f71fffff]", "[bc20000000000000]", "00")
+ self.bid32_to_bid64("0", "[f7f8967e]", "[bd0000000098967e]", "00")
+ self.bid32_to_bid64("0", "[f7f8967f]", "[bd0000000098967f]", "00")
+ self.bid32_to_bid64("0", "[f8000000]", "[f800000000000000]", "00")
+ self.bid32_to_bid64("0", "[f8000001]", "[f800000000000000]", "00")
+ self.bid32_to_bid64("0", "[f8001000]", "[f800000000000000]", "00")
+ self.bid32_to_bid64("0", "[f80fffff]", "[f800000000000000]", "00")
+ self.bid32_to_bid64("0", "[f8f00000]", "[f800000000000000]", "00")
+ self.bid32_to_bid64("0", "[f8f00001]", "[f800000000000000]", "00")
+ self.bid32_to_bid64("0", "[f8ffffff]", "[f800000000000000]", "00")
+ self.bid32_to_bid64("0", "[fc000000]", "[fc00000000000000]", "00")
+ self.bid32_to_bid64("0", "[fc000001]", "[fc0000003b9aca00]", "00")
+ self.bid32_to_bid64("0", "[fc001000]", "[fc0003b9aca00000]", "00")
+ self.bid32_to_bid64("0", "[fc0fffff]", "[fc00000000000000]", "00")
+ self.bid32_to_bid64("0", "[fcf00000]", "[fc00000000000000]", "00")
+ self.bid32_to_bid64("0", "[fcf00001]", "[fc0000003b9aca00]", "00")
+ self.bid32_to_bid64("0", "[fcffffff]", "[fc00000000000000]", "00")
+ self.bid32_to_bid64("0", "[fe000000]", "[fc00000000000000]", "01")
+ self.bid32_to_bid64("0", "[fe000001]", "[fc0000003b9aca00]", "01")
+ self.bid32_to_bid64("0", "[fe000100]", "[fc00003b9aca0000]", "01")
+ self.bid32_to_bid64("0", "[fe0fffff]", "[fc00000000000000]", "01")
+ self.bid32_to_bid64("0", "[fef00000]", "[fc00000000000000]", "01")
+ self.bid32_to_bid64("0", "[fef00001]", "[fc0000003b9aca00]", "01")
+ self.bid32_to_bid64("0", "[feffffff]", "[fc00000000000000]", "01")
+ }
+
+ private func bid32_to_bid64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64(arg0)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_bid128() {
+ self.bid32_to_bid128("0", "[3d000000]", "[306a0000000000000000000000000000]", "00")
+ self.bid32_to_bid128("0", "[7c000100]", "[7c0000033b2e3c9fd0803ce800000000]", "00")
+ self.bid32_to_bid128("0", "[92229c08]", "[afbe0000000000000000000000229c08]", "00")
+ self.bid32_to_bid128("0", "[e5c005c3]", "[afd200000000000000000000008005c3]", "00")
+ self.bid32_to_bid128("0", "[fe000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid32_to_bid128("0", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ }
+
+ private func bid32_to_bid128(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128(arg0)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_bid32() {
+ self.bid64_to_bid32("0", "[0000000002081018]", "[00000000]", "30")
+ self.bid64_to_bid32("0", "[0000000004000001]", "[00000000]", "30")
+ self.bid64_to_bid32("0", "[00009405c2420001]", "[00000000]", "30")
+ self.bid64_to_bid32("0", "[2401080102d11508]", "[00046de3]", "30")
+ self.bid64_to_bid32("0", "[4040000000008000]", "[78000000]", "28")
+ self.bid64_to_bid32("0", "[45e3aa726bf8c1af]", "[78000000]", "28")
+ self.bid64_to_bid32("0", "[68fb86f234263601]", "[000f4240]", "30")
+ self.bid64_to_bid32("0", "[7c00003b9aca0000]", "[7c000100]", "00")
+ self.bid64_to_bid32("0", "[7e73e8f4c9c3c3b8]", "[7c000000]", "01")
+ self.bid64_to_bid32("0", "9.999999999999999E+384", "[78000000]", "28")
+ self.bid64_to_bid32("0", "[b563ebfdfefd7e36]", "[c590d81d]", "20")
+ self.bid64_to_bid32("0", "[e895d1a75bc418c6]", "[80000000]", "00")
+ self.bid64_to_bid32("0", "[e8fb86f234263601]", "[800f4240]", "30")
+ self.bid64_to_bid32("0", "[ec60334bd86bec30]", "[ed8a4cb0]", "20")
+ self.bid64_to_bid32("0", "[f7effbbfeffff6ff]", "[df800000]", "00")
+ self.bid64_to_bid32("0", "[f8e033e5145dcea9]", "[f8000000]", "00")
+ self.bid64_to_bid32("1", "[0000000002081018]", "[00000000]", "30")
+ self.bid64_to_bid32("1", "[00009405c2420001]", "[00000000]", "30")
+ self.bid64_to_bid32("1", "[45e3aa726bf8c1af]", "[77f8967f]", "28")
+ self.bid64_to_bid32("1", "[68fb86f234263601]", "[000f423f]", "30")
+ self.bid64_to_bid32("1", "[8409fa41e971c020]", "[80000001]", "30")
+ self.bid64_to_bid32("1", "[e8fb86f234263601]", "[800f4240]", "30", underflowBeforeOnly: true)
+ self.bid64_to_bid32("2", "[0000000002081018]", "[00000001]", "30")
+ self.bid64_to_bid32("2", "[00009405c2420001]", "[00000001]", "30")
+ self.bid64_to_bid32("2", "[45e3aa726bf8c1af]", "[78000000]", "28")
+ self.bid64_to_bid32("2", "[68fb86f234263601]", "[000f4240]", "30", underflowBeforeOnly: true)
+ self.bid64_to_bid32("2", "[8a6d66b1506ee969]", "[80000000]", "30")
+ self.bid64_to_bid32("2", "[d7d0e396fb4bffa3]", "[f7f8967f]", "28")
+ self.bid64_to_bid32("2", "[e8fb86f234263601]", "[800f423f]", "30")
+ self.bid64_to_bid32("3", "[45e3aa726bf8c1af]", "[77f8967f]", "28")
+ self.bid64_to_bid32("3", "[68fb86f234263601]", "[000f423f]", "30")
+ self.bid64_to_bid32("3", "[e8fb86f234263601]", "[800f423f]", "30")
+ self.bid64_to_bid32("4", "[68fb86f234263601]", "[000f4240]", "30")
+ self.bid64_to_bid32("4", "[e8fb86f234263601]", "[800f4240]", "30")
+ }
+
+ private func bid64_to_bid32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_bid128() {
+ self.bid64_to_bid128("0", "[0000000000000000]", "[2d240000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[0000000000000001]", "[2d240000000000000000000000000001]", "00")
+ self.bid64_to_bid128("0", "[0000000000000064]", "[2d240000000000000000000000000064]", "00")
+ self.bid64_to_bid128("0", "[0000000000989e50]", "[2d240000000000000000000000989e50]", "00")
+ self.bid64_to_bid128("0", "[00001231276e5fb2]", "[2d2400000000000000001231276e5fb2]", "00")
+ self.bid64_to_bid128("0", "[000462d53c8abac0]", "[2d24000000000000000462d53c8abac0]", "00")
+ self.bid64_to_bid128("0", "[00071b33671d6160]", "[2d2400000000000000071b33671d6160]", "00")
+ self.bid64_to_bid128("0", "[0020000000000000]", "[2d260000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[002462d53c8abac0]", "[2d26000000000000000462d53c8abac0]", "00")
+ self.bid64_to_bid128("0", "[0040000005f62f23]", "[2d280000000000000000000005f62f23]", "00")
+ self.bid64_to_bid128("0", "[00a0000005f62f23]", "[2d2e0000000000000000000005f62f23]", "00")
+ self.bid64_to_bid128("0", "[01a0000000000000]", "[2d3e0000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[01a0000000000001]", "[2d3e0000000000000000000000000001]", "00")
+ self.bid64_to_bid128("0", "[2fe71afd498d0000]", "[302200000000000000071afd498d0000]", "00")
+ self.bid64_to_bid128("0", "[3000b5e620f48000]", "[30240000000000000000b5e620f48000]", "00")
+ self.bid64_to_bid128("0", "[302012309ce54000]", "[3026000000000000000012309ce54000]", "00")
+ self.bid64_to_bid128("0", "[304001d1a94a2000]", "[3028000000000000000001d1a94a2000]", "00")
+ self.bid64_to_bid128("0", "[3060002e90edd000]", "[302a0000000000000000002e90edd000]", "00")
+ self.bid64_to_bid128("0", "[30800004a817c800]", "[302c00000000000000000004a817c800]", "00")
+ self.bid64_to_bid128("0", "[30a0000077359400]", "[302e0000000000000000000077359400]", "00")
+ self.bid64_to_bid128("0", "[30c000000bebc200]", "[3030000000000000000000000bebc200]", "00")
+ self.bid64_to_bid128("0", "[30e0000001312d00]", "[30320000000000000000000001312d00]", "00")
+ self.bid64_to_bid128("0", "[31000000001e8480]", "[303400000000000000000000001e8480]", "00")
+ self.bid64_to_bid128("0", "[3120000000030d40]", "[30360000000000000000000000030d40]", "00")
+ self.bid64_to_bid128("0", "[3140000000004e20]", "[30380000000000000000000000004e20]", "00")
+ self.bid64_to_bid128("0", "[31600000000007d0]", "[303a00000000000000000000000007d0]", "00")
+ self.bid64_to_bid128("0", "[31800000000000c8]", "[303c00000000000000000000000000c8]", "00")
+ self.bid64_to_bid128("0", "[31a0000000000014]", "[303e0000000000000000000000000014]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000001]", "[30400000000000000000000000000001]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000002]", "[30400000000000000000000000000002]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000003]", "[30400000000000000000000000000003]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000004]", "[30400000000000000000000000000004]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000008]", "[30400000000000000000000000000008]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000010]", "[30400000000000000000000000000010]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000020]", "[30400000000000000000000000000020]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000040]", "[30400000000000000000000000000040]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000080]", "[30400000000000000000000000000080]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000100]", "[30400000000000000000000000000100]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000200]", "[30400000000000000000000000000200]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000400]", "[30400000000000000000000000000400]", "00")
+ self.bid64_to_bid128("0", "[31c0000000000800]", "[30400000000000000000000000000800]", "00")
+ self.bid64_to_bid128("0", "[31c0000000001000]", "[30400000000000000000000000001000]", "00")
+ self.bid64_to_bid128("0", "[31c0000000002000]", "[30400000000000000000000000002000]", "00")
+ self.bid64_to_bid128("0", "[31c0000000004000]", "[30400000000000000000000000004000]", "00")
+ self.bid64_to_bid128("0", "[31c0000000008000]", "[30400000000000000000000000008000]", "00")
+ self.bid64_to_bid128("0", "[31c0000000010000]", "[30400000000000000000000000010000]", "00")
+ self.bid64_to_bid128("0", "[31c0000000020000]", "[30400000000000000000000000020000]", "00")
+ self.bid64_to_bid128("0", "[31c0000000040000]", "[30400000000000000000000000040000]", "00")
+ self.bid64_to_bid128("0", "[31c0000000080000]", "[30400000000000000000000000080000]", "00")
+ self.bid64_to_bid128("0", "[31c0000000100000]", "[30400000000000000000000000100000]", "00")
+ self.bid64_to_bid128("0", "[31c0000000200000]", "[30400000000000000000000000200000]", "00")
+ self.bid64_to_bid128("0", "[31c0000000400000]", "[30400000000000000000000000400000]", "00")
+ self.bid64_to_bid128("0", "[31c0000000800000]", "[30400000000000000000000000800000]", "00")
+ self.bid64_to_bid128("0", "[31c0000001000000]", "[30400000000000000000000001000000]", "00")
+ self.bid64_to_bid128("0", "[31c0000002000000]", "[30400000000000000000000002000000]", "00")
+ self.bid64_to_bid128("0", "[31c0000004000000]", "[30400000000000000000000004000000]", "00")
+ self.bid64_to_bid128("0", "[31c0000008000000]", "[30400000000000000000000008000000]", "00")
+ self.bid64_to_bid128("0", "[31c0000010000000]", "[30400000000000000000000010000000]", "00")
+ self.bid64_to_bid128("0", "[31c0000020000000]", "[30400000000000000000000020000000]", "00")
+ self.bid64_to_bid128("0", "[31c0000040000000]", "[30400000000000000000000040000000]", "00")
+ self.bid64_to_bid128("0", "[31c0000080000000]", "[30400000000000000000000080000000]", "00")
+ self.bid64_to_bid128("0", "[31c0000100000000]", "[30400000000000000000000100000000]", "00")
+ self.bid64_to_bid128("0", "[31c0000200000000]", "[30400000000000000000000200000000]", "00")
+ self.bid64_to_bid128("0", "[31c0000400000000]", "[30400000000000000000000400000000]", "00")
+ self.bid64_to_bid128("0", "[31c0000800000000]", "[30400000000000000000000800000000]", "00")
+ self.bid64_to_bid128("0", "[31c0001000000000]", "[30400000000000000000001000000000]", "00")
+ self.bid64_to_bid128("0", "[31c0002000000000]", "[30400000000000000000002000000000]", "00")
+ self.bid64_to_bid128("0", "[31c0004000000000]", "[30400000000000000000004000000000]", "00")
+ self.bid64_to_bid128("0", "[31c0008000000000]", "[30400000000000000000008000000000]", "00")
+ self.bid64_to_bid128("0", "[31c0010000000000]", "[30400000000000000000010000000000]", "00")
+ self.bid64_to_bid128("0", "[31c0020000000000]", "[30400000000000000000020000000000]", "00")
+ self.bid64_to_bid128("0", "[31c0040000000000]", "[30400000000000000000040000000000]", "00")
+ self.bid64_to_bid128("0", "[31c0080000000000]", "[30400000000000000000080000000000]", "00")
+ self.bid64_to_bid128("0", "[31c0100000000000]", "[30400000000000000000100000000000]", "00")
+ self.bid64_to_bid128("0", "[31c0200000000000]", "[30400000000000000000200000000000]", "00")
+ self.bid64_to_bid128("0", "[31c0400000000000]", "[30400000000000000000400000000000]", "00")
+ self.bid64_to_bid128("0", "[31c0800000000000]", "[30400000000000000000800000000000]", "00")
+ self.bid64_to_bid128("0", "[31c1000000000000]", "[30400000000000000001000000000000]", "00")
+ self.bid64_to_bid128("0", "[31c2000000000000]", "[30400000000000000002000000000000]", "00")
+ self.bid64_to_bid128("0", "[31c4000000000000]", "[30400000000000000004000000000000]", "00")
+ self.bid64_to_bid128("0", "[31c8000000000000]", "[30400000000000000008000000000000]", "00")
+ self.bid64_to_bid128("0", "[31d0000000000000]", "[30400000000000000010000000000000]", "00")
+ self.bid64_to_bid128("0", "[3c671afd498d0000]", "[30ea00000000000000071afd498d0000]", "00")
+ self.bid64_to_bid128("0", "[3c80b5e620f48000]", "[30ec0000000000000000b5e620f48000]", "00")
+ self.bid64_to_bid128("0", "[3ca012309ce54000]", "[30ee000000000000000012309ce54000]", "00")
+ self.bid64_to_bid128("0", "[3cc001d1a94a2000]", "[30f0000000000000000001d1a94a2000]", "00")
+ self.bid64_to_bid128("0", "[3ce0002e90edd000]", "[30f20000000000000000002e90edd000]", "00")
+ self.bid64_to_bid128("0", "[3d000004a817c800]", "[30f400000000000000000004a817c800]", "00")
+ self.bid64_to_bid128("0", "[3d20000077359400]", "[30f60000000000000000000077359400]", "00")
+ self.bid64_to_bid128("0", "[3d4000000bebc200]", "[30f8000000000000000000000bebc200]", "00")
+ self.bid64_to_bid128("0", "[3d60000001312d00]", "[30fa0000000000000000000001312d00]", "00")
+ self.bid64_to_bid128("0", "[3d800000001e8480]", "[30fc00000000000000000000001e8480]", "00")
+ self.bid64_to_bid128("0", "[3da0000000030d40]", "[30fe0000000000000000000000030d40]", "00")
+ self.bid64_to_bid128("0", "[3dc0000000004e20]", "[31000000000000000000000000004e20]", "00")
+ self.bid64_to_bid128("0", "[3de00000000007d0]", "[310200000000000000000000000007d0]", "00")
+ self.bid64_to_bid128("0", "[3e000000000000c8]", "[310400000000000000000000000000c8]", "00")
+ self.bid64_to_bid128("0", "[3e20000000000014]", "[31060000000000000000000000000014]", "00")
+ self.bid64_to_bid128("0", "[3e40000000000002]", "[31080000000000000000000000000002]", "00")
+ self.bid64_to_bid128("0", "[5fa0000000000000]", "[331e0000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[5fa0000000000001]", "[331e0000000000000000000000000001]", "00")
+ self.bid64_to_bid128("0", "[5fc0000000000000]", "[33200000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[5fc462d53c8abac0]", "[3320000000000000000462d53c8abac0]", "00")
+ self.bid64_to_bid128("0", "[5fe0000000000000]", "[33220000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[5fe71b33671d6160]", "[332200000000000000071b33671d6160]", "00")
+ self.bid64_to_bid128("0", "[5fe841f5e8ceedc0]", "[3322000000000000000841f5e8ceedc0]", "00")
+ self.bid64_to_bid128("0", "[6002b75d7734cd9e]", "[2d240000000000000022b75d7734cd9e]", "00")
+ self.bid64_to_bid128("0", "[6003b75d7734cd9e]", "[2d240000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[69dbb75d7734cd9e]", "[2f9a0000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[6c70000000000000]", "[30400000000000000020000000000000]", "00")
+ self.bid64_to_bid128("0", "[77fb81c8f23c4dc0]", "[3322000000000000002381c8f23c4dc0]", "00")
+ self.bid64_to_bid128("0", "[77fb86f26fc0fffe]", "[3322000000000000002386f26fc0fffe]", "00")
+ self.bid64_to_bid128("0", "[77fb86f26fc0ffff]", "[3322000000000000002386f26fc0ffff]", "00")
+ self.bid64_to_bid128("0", "[7800000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[7800000000000001]", "[78000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[7800000100000000]", "[78000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[7803ffffffffffff]", "[78000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[78f0000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[78f0000000000001]", "[78000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[78f3ffffffffffff]", "[78000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[7c00000000000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[7c00000000000001]", "[7c000000000000000de0b6b3a7640000]", "00")
+ self.bid64_to_bid128("0", "[7c00000100000000]", "[7c0000000de0b6b3a764000000000000]", "00")
+ self.bid64_to_bid128("0", "[7c00003b9aca0000]", "[7c0000033b2e3c9fd0803ce800000000]", "00")
+ self.bid64_to_bid128("0", "[7c03ffffffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[7cf0000000000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[7cf0000000000001]", "[7c000000000000000de0b6b3a7640000]", "00")
+ self.bid64_to_bid128("0", "[7cf3ffffffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[7e00000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid64_to_bid128("0", "[7e00000000000001]", "[7c000000000000000de0b6b3a7640000]", "01")
+ self.bid64_to_bid128("0", "[7e00000100000000]", "[7c0000000de0b6b3a764000000000000]", "01")
+ self.bid64_to_bid128("0", "[7e03ffffffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid64_to_bid128("0", "[7ef0000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid64_to_bid128("0", "[7ef0000000000001]", "[7c000000000000000de0b6b3a7640000]", "01")
+ self.bid64_to_bid128("0", "[7ef3ffffffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid64_to_bid128("0", "[8000000000000001]", "[ad240000000000000000000000000001]", "00")
+ self.bid64_to_bid128("0", "[800000000000000c]", "[ad24000000000000000000000000000c]", "00")
+ self.bid64_to_bid128("0", "[800000000bebc200]", "[ad24000000000000000000000bebc200]", "00")
+ self.bid64_to_bid128("0", "[8020000001312d00]", "[ad260000000000000000000001312d00]", "00")
+ self.bid64_to_bid128("0", "[80400000001e8480]", "[ad2800000000000000000000001e8480]", "00")
+ self.bid64_to_bid128("0", "[8060000000030d40]", "[ad2a0000000000000000000000030d40]", "00")
+ self.bid64_to_bid128("0", "[8080000000004e20]", "[ad2c0000000000000000000000004e20]", "00")
+ self.bid64_to_bid128("0", "[80a00000000007d0]", "[ad2e00000000000000000000000007d0]", "00")
+ self.bid64_to_bid128("0", "[80c00000000000c8]", "[ad3000000000000000000000000000c8]", "00")
+ self.bid64_to_bid128("0", "[80e0000000000014]", "[ad320000000000000000000000000014]", "00")
+ self.bid64_to_bid128("0", "[8100000000000002]", "[ad340000000000000000000000000002]", "00")
+ self.bid64_to_bid128("0", "[dfc0000000000000]", "[b3200000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[dfc0000000000001]", "[b3200000000000000000000000000001]", "00")
+ self.bid64_to_bid128("0", "[dfe462d53c8abac0]", "[b322000000000000000462d53c8abac0]", "00")
+ self.bid64_to_bid128("0", "[e002b75d7734cd9e]", "[ad240000000000000022b75d7734cd9e]", "00")
+ self.bid64_to_bid128("0", "[e003b75d7734cd9e]", "[ad240000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[e9dbb75d7734cd9e]", "[af9a0000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[f7fb86f26fc0ffff]", "[b322000000000000002386f26fc0ffff]", "00")
+ self.bid64_to_bid128("0", "[f800000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[f800000000000001]", "[f8000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[f800000100000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[f803ffffffffffff]", "[f8000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[f8f0000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[f8f0000000000001]", "[f8000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[f8f3ffffffffffff]", "[f8000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[fc00000000000000]", "[fc000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[fc00000000000001]", "[fc000000000000000de0b6b3a7640000]", "00")
+ self.bid64_to_bid128("0", "[fc00000100000000]", "[fc0000000de0b6b3a764000000000000]", "00")
+ self.bid64_to_bid128("0", "[fc03ffffffffffff]", "[fc000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[fcf0000000000000]", "[fc000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[fcf0000000000001]", "[fc000000000000000de0b6b3a7640000]", "00")
+ self.bid64_to_bid128("0", "[fcf3ffffffffffff]", "[fc000000000000000000000000000000]", "00")
+ self.bid64_to_bid128("0", "[fe00000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid64_to_bid128("0", "[fe00000000000001]", "[fc000000000000000de0b6b3a7640000]", "01")
+ self.bid64_to_bid128("0", "[fe00000100000000]", "[fc0000000de0b6b3a764000000000000]", "01")
+ self.bid64_to_bid128("0", "[fe03ffffffffffff]", "[fc000000000000000000000000000000]", "01")
+ self.bid64_to_bid128("0", "[fef0000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid64_to_bid128("0", "[fef0000000000001]", "[fc000000000000000de0b6b3a7640000]", "01")
+ self.bid64_to_bid128("0", "[fef3ffffffffffff]", "[fc000000000000000000000000000000]", "01")
+ }
+
+ private func bid64_to_bid128(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128(arg0)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_bid32() {
+ self.bid128_to_bid32("0", "[0000000000000000,0000000001200200]", "[00000000]", "30")
+ self.bid128_to_bid32("0", "-0.000000000011000000000E5137", "[f8000000]", "28")
+ self.bid128_to_bid32("0", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000]", "30")
+ self.bid128_to_bid32("0", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000]", "00")
+ self.bid128_to_bid32("0", "[0100021000040045,80010040a2408000]", "[00000000]", "30")
+ self.bid128_to_bid32("0", "-1000.101000E-1885", "[80000000]", "30")
+ self.bid128_to_bid32("0", "1E+367", "[78000000]", "28")
+ self.bid128_to_bid32("0", "[2000000000080c00,a4870413f5a4ffe8]", "[00000000]", "30")
+ self.bid128_to_bid32("0", "[2cffed09bead87c0378d8e63ffffffff]", "[00000000]", "30")
+ self.bid128_to_bid32("0", "[2f720000000000000000000005f5e0fb]", "[000f4240]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid32("0", "[69857aaa11d2057e,596109f05958a963]", "[00000000]", "00")
+ self.bid128_to_bid32("0", "[7c0000033b2e3c9fd0803ce800000000]", "[7c000100]", "00")
+ self.bid128_to_bid32("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000]", "00")
+ self.bid128_to_bid32("0", "[7c003fffffffffff38c15b0affffffff]", "[7c000000]", "00")
+ self.bid128_to_bid32("0", "[7c916e845d860ed7,82a65a666200660d]", "[7c0e6575]", "00")
+ self.bid128_to_bid32("0", "9.999999999999999E+384", "[78000000]", "28")
+ self.bid128_to_bid32("0", "[9b5bfd3199ec9622,da0bec09de4f1828]", "[80000000]", "00")
+ self.bid128_to_bid32("0", "[9e903b074149442e,8a6d32abd27f38ac]", "[80000000]", "30")
+ self.bid128_to_bid32("0", "[acffed09bead87c0378d8e63ffffffff]", "[80000000]", "30")
+ self.bid128_to_bid32("0", "[af3b0381239bdaba,3825cb8cb3b608b7]", "[8000148f]", "30")
+ self.bid128_to_bid32("0", "[af720000000000000000000005f5e0fb]", "[800f4240]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid32("0", "[afd9b62ab9362555,1e55f1f5559b9527]", "[e9879b28]", "20")
+ self.bid128_to_bid32("0", "[f5e98b6f9f5afe7e,0400422022000040]", "[df800000]", "00")
+ self.bid128_to_bid32("0", "[fb17407129ade7dd,f95f73ccd42c5a59]", "[f8000000]", "00")
+ self.bid128_to_bid32("0", "[feffffefffffefef,b7d58ddefda6ff82]", "[fc000000]", "01")
+ self.bid128_to_bid32("1", "-0.000000000011000000000E5137", "[f8000000]", "28")
+ self.bid128_to_bid32("1", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000]", "30")
+ self.bid128_to_bid32("1", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000]", "00")
+ self.bid128_to_bid32("1", "-100000000000000000000000000000.000000E2100", "[f8000000]", "28")
+ self.bid128_to_bid32("1", "[2cffed09bead87c0378d8e63ffffffff]", "[00000000]", "30")
+ self.bid128_to_bid32("1", "[2f720000000000000000000005f5e0fb]", "[000f423f]", "30")
+ self.bid128_to_bid32("1", "[4002080001080000,0dff45cfdaffa585]", "[77f8967f]", "28")
+ self.bid128_to_bid32("1", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000]", "00")
+ self.bid128_to_bid32("1", "[7c003fffffffffff38c15b0affffffff]", "[7c000000]", "00")
+ self.bid128_to_bid32("1", "[acffed09bead87c0378d8e63ffffffff]", "[80000001]", "30")
+ self.bid128_to_bid32("1", "[af720000000000000000000005f5e0fb]", "[800f4240]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid32("1", "[dd030482e0a24502,e7f42fa8dffbafdf]", "[f8000000]", "28")
+ self.bid128_to_bid32("2", "[0001ed09bead87c0378d8e62ffffffff]", "[00000001]", "30")
+ self.bid128_to_bid32("2", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000]", "00")
+ self.bid128_to_bid32("2", "[2cffed09bead87c0378d8e63ffffffff]", "[00000001]", "30")
+ self.bid128_to_bid32("2", "[2f720000000000000000000005f5e0fb]", "[000f4240]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid32("2", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000]", "00")
+ self.bid128_to_bid32("2", "[7c003fffffffffff38c15b0affffffff]", "[7c000000]", "00")
+ self.bid128_to_bid32("2", "[9e903b074149442e,8a6d32abd27f38ac]", "[80000000]", "30")
+ self.bid128_to_bid32("2", "[acffed09bead87c0378d8e63ffffffff]", "[80000000]", "30")
+ self.bid128_to_bid32("2", "[af720000000000000000000005f5e0fb]", "[800f423f]", "30")
+ self.bid128_to_bid32("2", "[c8211f3889c7ddf4,4c0ae01390392c44]", "[f7f8967f]", "28")
+ self.bid128_to_bid32("3", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000]", "30")
+ self.bid128_to_bid32("3", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000]", "00")
+ self.bid128_to_bid32("3", "[2cffed09bead87c0378d8e63ffffffff]", "[00000000]", "30")
+ self.bid128_to_bid32("3", "[2f720000000000000000000005f5e0fb]", "[000f423f]", "30")
+ self.bid128_to_bid32("3", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000]", "00")
+ self.bid128_to_bid32("3", "[7c003fffffffffff38c15b0affffffff]", "[7c000000]", "00")
+ self.bid128_to_bid32("3", "[acffed09bead87c0378d8e63ffffffff]", "[80000000]", "30")
+ self.bid128_to_bid32("3", "[af720000000000000000000005f5e0fb]", "[800f423f]", "30")
+ self.bid128_to_bid32("3", "[c8211f3889c7ddf4,4c0ae01390392c44]", "[f7f8967f]", "28")
+ self.bid128_to_bid32("4", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000]", "30")
+ self.bid128_to_bid32("4", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000]", "00")
+ self.bid128_to_bid32("4", "[2cffed09bead87c0378d8e63ffffffff]", "[00000000]", "30")
+ self.bid128_to_bid32("4", "[2f720000000000000000000005f5e0fb]", "[000f4240]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid32("4", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000]", "00")
+ self.bid128_to_bid32("4", "[7c003fffffffffff38c15b0affffffff]", "[7c000000]", "00")
+ self.bid128_to_bid32("4", "[acffed09bead87c0378d8e63ffffffff]", "[80000000]", "30")
+ self.bid128_to_bid32("4", "[af720000000000000000000005f5e0fb]", "[800f4240]", "30", underflowBeforeOnly: true)
+ }
+
+ private func bid128_to_bid32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_bid64() {
+ self.bid128_to_bid64("0", "[0000000000000000,0080100000800080]", "[0000000000000000]", "30")
+ self.bid128_to_bid64("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0000000000000000]", "30")
+ self.bid128_to_bid64("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0000000000000000]", "00")
+ self.bid128_to_bid64("0", "1.234567890123456E-397", "[000000000000000c]", "30")
+ self.bid128_to_bid64("0", "1.234567890123456E-398", "[0000000000000001]", "30")
+ self.bid128_to_bid64("0", "[2ce1230b00900000,002a008000c20080]", "[0000000000000001]", "30")
+ self.bid128_to_bid64("0", "[2cffed09bead87c0378d8e63ffffffff]", "[00038d7ea4c68000]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid64("0", "[2d1e0000000000000de0b6b3a763ffa1]", "[00038d7ea4c68000]", "30")
+ self.bid128_to_bid64("0", "[2d20000000000000016345785d89fffb]", "[00038d7ea4c68000]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid64("0", "[2f720000000000000000000005f5e0fb]", "[24e0000005f5e0fb]", "00")
+ self.bid128_to_bid64("0", "[4000000000000000,009010e002120858]", "[7800000000000000]", "28")
+ self.bid128_to_bid64("0", "[4e37fa4093c6d5fa,7eff7fef7f7afff6]", "[5fe0000000000000]", "00")
+ self.bid128_to_bid64("0", "[7c0000033b2e3c9fd0803ce800000000]", "[7c00003b9aca0000]", "00")
+ self.bid128_to_bid64("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c00000000000000]", "00")
+ self.bid128_to_bid64("0", "[7c003fffffffffff38c15b0affffffff]", "[7c00000000000000]", "00")
+ self.bid128_to_bid64("0", "[acffed09bead87c0378d8e63ffffffff]", "[80038d7ea4c68000]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid64("0", "[af720000000000000000000005f5e0fb]", "[a4e0000005f5e0fb]", "00")
+ self.bid128_to_bid64("0", "[e3396e4f8d790fc9,b5c7464701b29b6b]", "[8000000000000000]", "00")
+ self.bid128_to_bid64("0", "[ffffff7fffffffff,ffc77fffff3fffdf]", "[fc00000000000000]", "01")
+ self.bid128_to_bid64("1", "[0001ed09bead87c0378d8e62ffffffff]", "[0000000000000000]", "30")
+ self.bid128_to_bid64("1", "[0001ed09bead87c0378d8e64ffffffff]", "[0000000000000000]", "00")
+ self.bid128_to_bid64("1", "[2cffed09bead87c0378d8e63ffffffff]", "[00038d7ea4c67fff]", "30")
+ self.bid128_to_bid64("1", "[2d1e0000000000000de0b6b3a763ffa1]", "[00038d7ea4c67fff]", "30")
+ self.bid128_to_bid64("1", "[2d20000000000000016345785d89fffb]", "[00038d7ea4c67fff]", "30")
+ self.bid128_to_bid64("1", "[2f720000000000000000000005f5e0fb]", "[24e0000005f5e0fb]", "00")
+ self.bid128_to_bid64("1", "[7c003fffffffffff38c15b08ffffffff]", "[7c00000000000000]", "00")
+ self.bid128_to_bid64("1", "[7c003fffffffffff38c15b0affffffff]", "[7c00000000000000]", "00")
+ self.bid128_to_bid64("1", "[acffed09bead87c0378d8e63ffffffff]", "[80038d7ea4c68000]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid64("1", "[af720000000000000000000005f5e0fb]", "[a4e0000005f5e0fb]", "00")
+ self.bid128_to_bid64("2", "[0001ed09bead87c0378d8e62ffffffff]", "[0000000000000001]", "30")
+ self.bid128_to_bid64("2", "[0001ed09bead87c0378d8e64ffffffff]", "[0000000000000000]", "00")
+ self.bid128_to_bid64("2", "[2cffed09bead87c0378d8e63ffffffff]", "[00038d7ea4c68000]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid64("2", "[2d1e0000000000000de0b6b3a763ffa1]", "[00038d7ea4c68000]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid64("2", "[2d20000000000000016345785d89fffb]", "[00038d7ea4c68000]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid64("2", "[2f720000000000000000000005f5e0fb]", "[24e0000005f5e0fb]", "00")
+ self.bid128_to_bid64("2", "[7c003fffffffffff38c15b08ffffffff]", "[7c00000000000000]", "00")
+ self.bid128_to_bid64("2", "[7c003fffffffffff38c15b0affffffff]", "[7c00000000000000]", "00")
+ self.bid128_to_bid64("2", "[8ee8068322a31587,b7a0d168b1fee707]", "[8000000000000000]", "30")
+ self.bid128_to_bid64("2", "[acffed09bead87c0378d8e63ffffffff]", "[80038d7ea4c67fff]", "30")
+ self.bid128_to_bid64("2", "[af720000000000000000000005f5e0fb]", "[a4e0000005f5e0fb]", "00")
+ self.bid128_to_bid64("3", "[0001ed09bead87c0378d8e62ffffffff]", "[0000000000000000]", "30")
+ self.bid128_to_bid64("3", "[0001ed09bead87c0378d8e64ffffffff]", "[0000000000000000]", "00")
+ self.bid128_to_bid64("3", "[2cffed09bead87c0378d8e63ffffffff]", "[00038d7ea4c67fff]", "30")
+ self.bid128_to_bid64("3", "[2d1e0000000000000de0b6b3a763ffa1]", "[00038d7ea4c67fff]", "30")
+ self.bid128_to_bid64("3", "[2d20000000000000016345785d89fffb]", "[00038d7ea4c67fff]", "30")
+ self.bid128_to_bid64("3", "[2f720000000000000000000005f5e0fb]", "[24e0000005f5e0fb]", "00")
+ self.bid128_to_bid64("3", "[7c003fffffffffff38c15b08ffffffff]", "[7c00000000000000]", "00")
+ self.bid128_to_bid64("3", "[7c003fffffffffff38c15b0affffffff]", "[7c00000000000000]", "00")
+ self.bid128_to_bid64("3", "[acffed09bead87c0378d8e63ffffffff]", "[80038d7ea4c67fff]", "30")
+ self.bid128_to_bid64("3", "[af720000000000000000000005f5e0fb]", "[a4e0000005f5e0fb]", "00")
+ self.bid128_to_bid64("4", "[0001ed09bead87c0378d8e62ffffffff]", "[0000000000000000]", "30")
+ self.bid128_to_bid64("4", "[0001ed09bead87c0378d8e64ffffffff]", "[0000000000000000]", "00")
+ self.bid128_to_bid64("4", "[2cffed09bead87c0378d8e63ffffffff]", "[00038d7ea4c68000]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid64("4", "[2d1e0000000000000de0b6b3a763ffa1]", "[00038d7ea4c68000]", "30")
+ self.bid128_to_bid64("4", "[2d20000000000000016345785d89fffb]", "[00038d7ea4c68000]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid64("4", "[2f720000000000000000000005f5e0fb]", "[24e0000005f5e0fb]", "00")
+ self.bid128_to_bid64("4", "[7c003fffffffffff38c15b08ffffffff]", "[7c00000000000000]", "00")
+ self.bid128_to_bid64("4", "[7c003fffffffffff38c15b0affffffff]", "[7c00000000000000]", "00")
+ self.bid128_to_bid64("4", "[acffed09bead87c0378d8e63ffffffff]", "[80038d7ea4c68000]", "30", underflowBeforeOnly: true)
+ self.bid128_to_bid64("4", "[af720000000000000000000005f5e0fb]", "[a4e0000005f5e0fb]", "00")
+ }
+
+ private func bid128_to_bid64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64(arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_decimalToDecimal(arg0, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelFromDenselyPackedDecimalTests.swift b/Tests/DecimalTests/Intel - generated/IntelFromDenselyPackedDecimalTests.swift
new file mode 100644
index 0000000..c98959e
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelFromDenselyPackedDecimalTests.swift
@@ -0,0 +1,511 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelFromDenselyPackedDecimalTests: XCTestCase, IntelMixin {
+
+ func test_bid_dpd_to_bid32() {
+ self.bid_dpd_to_bid32("0", "[00000000]", "[00000000]", "00")
+ self.bid_dpd_to_bid32("0", "[00000001]", "[00000001]", "00")
+ self.bid_dpd_to_bid32("0", "[00000082]", "[00000066]", "00")
+ self.bid_dpd_to_bid32("0", "[00000800]", "[000007d0]", "00")
+ self.bid_dpd_to_bid32("0", "[00001357]", "[00001231]", "00")
+ self.bid_dpd_to_bid32("0", "[00004103]", "[000027db]", "00")
+ self.bid_dpd_to_bid32("0", "[00027848]", "[000f1b60]", "00")
+ self.bid_dpd_to_bid32("0", "[00028e57]", "[0001e241]", "00")
+ self.bid_dpd_to_bid32("0", "[00300000]", "[01800000]", "00")
+ self.bid_dpd_to_bid32("0", "[00500000]", "[02800000]", "00")
+ self.bid_dpd_to_bid32("0", "[00500001]", "[02800001]", "00")
+ self.bid_dpd_to_bid32("0", "[0404d2e7]", "[0012d687]", "00")
+ self.bid_dpd_to_bid32("0", "[08004000]", "[001eab90]", "00")
+ self.bid_dpd_to_bid32("0", "1E-102", "[00000000]", "00")
+ self.bid_dpd_to_bid32("0", "[22020000]", "[300186a0]", "00")
+ self.bid_dpd_to_bid32("0", "[22040000]", "[30030d40]", "00")
+ self.bid_dpd_to_bid32("0", "[22104000]", "[30802710]", "00")
+ self.bid_dpd_to_bid32("0", "[22108000]", "[30804e20]", "00")
+ self.bid_dpd_to_bid32("0", "[22200400]", "[310003e8]", "00")
+ self.bid_dpd_to_bid32("0", "[22200800]", "[310007d0]", "00")
+ self.bid_dpd_to_bid32("0", "[22300080]", "[31800064]", "00")
+ self.bid_dpd_to_bid32("0", "[22300100]", "[318000c8]", "00")
+ self.bid_dpd_to_bid32("0", "[22400010]", "[3200000a]", "00")
+ self.bid_dpd_to_bid32("0", "[22400020]", "[32000014]", "00")
+ self.bid_dpd_to_bid32("0", "[22500001]", "[32800001]", "00")
+ self.bid_dpd_to_bid32("0", "[22500002]", "[32800002]", "00")
+ self.bid_dpd_to_bid32("0", "[22500003]", "[32800003]", "00")
+ self.bid_dpd_to_bid32("0", "[22500004]", "[32800004]", "00")
+ self.bid_dpd_to_bid32("0", "[22500008]", "[32800008]", "00")
+ self.bid_dpd_to_bid32("0", "[22500016]", "[32800010]", "00")
+ self.bid_dpd_to_bid32("0", "[22500032]", "[32800020]", "00")
+ self.bid_dpd_to_bid32("0", "[22500064]", "[32800040]", "00")
+ self.bid_dpd_to_bid32("0", "[225000a8]", "[32800080]", "00")
+ self.bid_dpd_to_bid32("0", "[22500156]", "[32800100]", "00")
+ self.bid_dpd_to_bid32("0", "[22500292]", "[32800200]", "00")
+ self.bid_dpd_to_bid32("0", "[22500424]", "[32800400]", "00")
+ self.bid_dpd_to_bid32("0", "[22500848]", "[32800800]", "00")
+ self.bid_dpd_to_bid32("0", "[2250107a]", "[32801000]", "00")
+ self.bid_dpd_to_bid32("0", "[225020ba]", "[32802000]", "00")
+ self.bid_dpd_to_bid32("0", "[225059ca]", "[32804000]", "00")
+ self.bid_dpd_to_bid32("0", "[2250cbe8]", "[32808000]", "00")
+ self.bid_dpd_to_bid32("0", "[225196b6]", "[32810000]", "00")
+ self.bid_dpd_to_bid32("0", "[2252c472]", "[32820000]", "00")
+ self.bid_dpd_to_bid32("0", "[225588c4]", "[32840000]", "00")
+ self.bid_dpd_to_bid32("0", "[225a914e]", "[32880000]", "00")
+ self.bid_dpd_to_bid32("0", "[25f00000]", "[2f8f4240]", "00")
+ self.bid_dpd_to_bid32("0", "[265122f6]", "[32900000]", "00")
+ self.bid_dpd_to_bid32("0", "[266ddfa2]", "[3319999a]", "00")
+ self.bid_dpd_to_bid32("0", "[267708f7]", "[33947ae1]", "00")
+ self.bid_dpd_to_bid32("0", "[29f00000]", "[2f9e8480]", "00")
+ self.bid_dpd_to_bid32("0", "[2a51ecd2]", "[32a00000]", "00")
+ self.bid_dpd_to_bid32("0", "[2a7d29d5]", "[33a8f5c3]", "00")
+ self.bid_dpd_to_bid32("0", "[2e675643]", "[33333333]", "00")
+ self.bid_dpd_to_bid32("0", "[32536984]", "[32c00000]", "00")
+ self.bid_dpd_to_bid32("0", "[3a6e430e]", "[33666666]", "00")
+ self.bid_dpd_to_bid32("0", "[43e00000]", "[5f000000]", "00")
+ self.bid_dpd_to_bid32("0", "[43e00001]", "[5f000001]", "00")
+ self.bid_dpd_to_bid32("0", "[43f00000]", "[5f800000]", "00")
+ self.bid_dpd_to_bid32("0", "[43f00001]", "[5f800001]", "00")
+ self.bid_dpd_to_bid32("0", "[47e4d2e7]", "[5f12d687]", "00")
+ self.bid_dpd_to_bid32("0", "[47f00001]", "[5f8f4241]", "00")
+ self.bid_dpd_to_bid32("0", "[47f4d2e7]", "[5f92d687]", "00")
+ self.bid_dpd_to_bid32("0", "[6403fcff]", "[6018967f]", "00")
+ self.bid_dpd_to_bid32("0", "[66c33a07]", "[658c3437]", "00")
+ self.bid_dpd_to_bid32("0", "[6a573b08]", "[6ca00000]", "00")
+ self.bid_dpd_to_bid32("0", "[77f209c5]", "[77eae409]", "00")
+ self.bid_dpd_to_bid32("0", "[77f3fcfe]", "[77f8967e]", "00")
+ self.bid_dpd_to_bid32("0", "[77f3fcff]", "[77f8967f]", "00")
+ self.bid_dpd_to_bid32("0", "[78000000]", "[78000000]", "00")
+ self.bid_dpd_to_bid32("0", "[7c000000]", "[7c000000]", "00")
+ self.bid_dpd_to_bid32("0", "[7c000001]", "[7c000001]", "00")
+ self.bid_dpd_to_bid32("0", "[7c00107a]", "[7c001000]", "00")
+ self.bid_dpd_to_bid32("0", "[7e000000]", "[7e000000]", "00")
+ self.bid_dpd_to_bid32("0", "[7e000001]", "[7e000001]", "00")
+ self.bid_dpd_to_bid32("0", "[7e000156]", "[7e000100]", "00")
+ self.bid_dpd_to_bid32("0", "[80000000]", "[80000000]", "00")
+ self.bid_dpd_to_bid32("0", "[80000001]", "[80000001]", "00")
+ self.bid_dpd_to_bid32("0", "[80000800]", "[800007d0]", "00")
+ self.bid_dpd_to_bid32("0", "[80004103]", "[800027db]", "00")
+ self.bid_dpd_to_bid32("0", "[80100100]", "[808000c8]", "00")
+ self.bid_dpd_to_bid32("0", "[80200020]", "[81000014]", "00")
+ self.bid_dpd_to_bid32("0", "[80300002]", "[81800002]", "00")
+ self.bid_dpd_to_bid32("0", "[c3800000]", "[dc000000]", "00")
+ self.bid_dpd_to_bid32("0", "[c7f00001]", "[df8f4241]", "00")
+ self.bid_dpd_to_bid32("0", "[c7f4d2e7]", "[df92d687]", "00")
+ self.bid_dpd_to_bid32("0", "[f218d263]", "[f420b31f]", "00")
+ self.bid_dpd_to_bid32("0", "[f64034bb]", "[f4958de9]", "00")
+ self.bid_dpd_to_bid32("0", "[f7f3fcfe]", "[f7f8967e]", "00")
+ self.bid_dpd_to_bid32("0", "[f7f3fcff]", "[f7f8967f]", "00")
+ self.bid_dpd_to_bid32("0", "[f8000000]", "[f8000000]", "00")
+ self.bid_dpd_to_bid32("0", "[fc000000]", "[fc000000]", "00")
+ self.bid_dpd_to_bid32("0", "[fc000001]", "[fc000001]", "00")
+ self.bid_dpd_to_bid32("0", "[fc00107a]", "[fc001000]", "00")
+ self.bid_dpd_to_bid32("0", "[fe000000]", "[fe000000]", "00")
+ self.bid_dpd_to_bid32("0", "[fe000001]", "[fe000001]", "00")
+ self.bid_dpd_to_bid32("0", "[fe000156]", "[fe000100]", "00")
+ }
+
+ private func bid_dpd_to_bid32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDenselyPackedDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+
+ let result = Decimal32(decimalEncoding: arg0)
+ let expected2 = self.toIntel_initFromDecimalEncoding(expected: expected)
+ self.assertEqual(result, expected2, .fuzzyStatus, file, line)
+ }
+
+ func test_bid_dpd_to_bid64() {
+ self.bid_dpd_to_bid64("0", "[0000000000000000]", "[0000000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[0000000000000001]", "[0000000000000001]", "00")
+ self.bid_dpd_to_bid64("0", "[0000000000000080]", "[0000000000000064]", "00")
+ self.bid_dpd_to_bid64("0", "[0000000001000800]", "[0000000000989e50]", "00")
+ self.bid_dpd_to_bid64("0", "[000020009a4509d4]", "[00001231276e5fb2]", "00")
+ self.bid_dpd_to_bid64("0", "[0004000000000000]", "[0020000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[0008000008008003]", "[0040000005f62f23]", "00")
+ self.bid_dpd_to_bid64("0", "[0014000008008003]", "[00a0000005f62f23]", "00")
+ self.bid_dpd_to_bid64("0", "[0034000000000000]", "[01a0000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[0034000000000001]", "[01a0000000000001]", "00")
+ self.bid_dpd_to_bid64("0", "[040134b9c1e28e56]", "[000462d53c8abac0]", "00")
+ self.bid_dpd_to_bid64("0", "[040534b9c1e28e56]", "[002462d53c8abac0]", "00")
+ self.bid_dpd_to_bid64("0", "[0800004ca244d5e0]", "[00071b33671d6160]", "00")
+ self.bid_dpd_to_bid64("0", "[20ec000000000000]", "[2760000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[2201000000000000]", "[3000b5e620f48000]", "00")
+ self.bid_dpd_to_bid64("0", "[2204200000000000]", "[302012309ce54000]", "00")
+ self.bid_dpd_to_bid64("0", "[2208020000000000]", "[304001d1a94a2000]", "00")
+ self.bid_dpd_to_bid64("0", "[220c004000000000]", "[3060002e90edd000]", "00")
+ self.bid_dpd_to_bid64("0", "[2210000800000000]", "[30800004a817c800]", "00")
+ self.bid_dpd_to_bid64("0", "[2214000080000000]", "[30a0000077359400]", "00")
+ self.bid_dpd_to_bid64("0", "[2218000010000000]", "[30c000000bebc200]", "00")
+ self.bid_dpd_to_bid64("0", "[221c000002000000]", "[30e0000001312d00]", "00")
+ self.bid_dpd_to_bid64("0", "[2220000000200000]", "[31000000001e8480]", "00")
+ self.bid_dpd_to_bid64("0", "[2224000000040000]", "[3120000000030d40]", "00")
+ self.bid_dpd_to_bid64("0", "[2228000000008000]", "[3140000000004e20]", "00")
+ self.bid_dpd_to_bid64("0", "[222c000000000800]", "[31600000000007d0]", "00")
+ self.bid_dpd_to_bid64("0", "[2230000000000100]", "[31800000000000c8]", "00")
+ self.bid_dpd_to_bid64("0", "[2234000000000020]", "[31a0000000000014]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000001]", "[31c0000000000001]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000002]", "[31c0000000000002]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000003]", "[31c0000000000003]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000004]", "[31c0000000000004]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000008]", "[31c0000000000008]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000016]", "[31c0000000000010]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000032]", "[31c0000000000020]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000064]", "[31c0000000000040]", "00")
+ self.bid_dpd_to_bid64("0", "[22380000000000a8]", "[31c0000000000080]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000156]", "[31c0000000000100]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000292]", "[31c0000000000200]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000424]", "[31c0000000000400]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000000848]", "[31c0000000000800]", "00")
+ self.bid_dpd_to_bid64("0", "[223800000000107a]", "[31c0000000001000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380000000020ba]", "[31c0000000002000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380000000059ca]", "[31c0000000004000]", "00")
+ self.bid_dpd_to_bid64("0", "[223800000000cbe8]", "[31c0000000008000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380000000196b6]", "[31c0000000010000]", "00")
+ self.bid_dpd_to_bid64("0", "[223800000002c472]", "[31c0000000020000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380000000588c4]", "[31c0000000040000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380000000a914e]", "[31c0000000080000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380000001122f6]", "[31c0000000100000]", "00")
+ self.bid_dpd_to_bid64("0", "[223800000021ecd2]", "[31c0000000200000]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000436984]", "[31c0000000400000]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000000873b08]", "[31c0000000800000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380000016fdd16]", "[31c0000001000000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380000033b5232]", "[31c0000002000000]", "00")
+ self.bid_dpd_to_bid64("0", "[223800000672226c]", "[31c0000004000000]", "00")
+ self.bid_dpd_to_bid64("0", "[223800000b445fa8]", "[31c0000008000000]", "00")
+ self.bid_dpd_to_bid64("0", "[223800001688d656]", "[31c0000010000000]", "00")
+ self.bid_dpd_to_bid64("0", "[223800002b61f19c]", "[31c0000020000000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380000473f062c]", "[31c0000040000000]", "00")
+ self.bid_dpd_to_bid64("0", "[223800008c78af48]", "[31c0000080000000]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000115afb57a]", "[31c0000100000000]", "00")
+ self.bid_dpd_to_bid64("0", "[223800022cfaf2ba]", "[31c0000200000000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380005cf9cbcca]", "[31c0000400000000]", "00")
+ self.bid_dpd_to_bid64("0", "[2238000d1d9ee1e8]", "[31c0000800000000]", "00")
+ self.bid_dpd_to_bid64("0", "[2238001a3999dbb6]", "[31c0001000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[2238002de3877672]", "[31c0002000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[2238005d37de32cc]", "[31c0004000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[223800b27d54746e]", "[31c0008000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380117e91c9ff6]", "[31c0010000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380237c23556d2]", "[31c0020000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[22380477846a4484]", "[31c0040000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[223808fe83b08908]", "[31c0080000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[223817ae8ea11216]", "[31c0100000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[223835329f21393c]", "[31c0200000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[2238707a3c43df64]", "[31c0400000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[2238c0ede4e755a8]", "[31c0800000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[22390b9d3fce4356]", "[31c1000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[223ae2abddd88592]", "[31c2000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[2391000000000000]", "[3c80b5e620f48000]", "00")
+ self.bid_dpd_to_bid64("0", "[2394200000000000]", "[3ca012309ce54000]", "00")
+ self.bid_dpd_to_bid64("0", "[2398020000000000]", "[3cc001d1a94a2000]", "00")
+ self.bid_dpd_to_bid64("0", "[239c004000000000]", "[3ce0002e90edd000]", "00")
+ self.bid_dpd_to_bid64("0", "[23a0000800000000]", "[3d000004a817c800]", "00")
+ self.bid_dpd_to_bid64("0", "[23a4000080000000]", "[3d20000077359400]", "00")
+ self.bid_dpd_to_bid64("0", "[23a8000010000000]", "[3d4000000bebc200]", "00")
+ self.bid_dpd_to_bid64("0", "[23ac000002000000]", "[3d60000001312d00]", "00")
+ self.bid_dpd_to_bid64("0", "[23b0000000200000]", "[3d800000001e8480]", "00")
+ self.bid_dpd_to_bid64("0", "[23b4000000040000]", "[3da0000000030d40]", "00")
+ self.bid_dpd_to_bid64("0", "[23b8000000008000]", "[3dc0000000004e20]", "00")
+ self.bid_dpd_to_bid64("0", "[23bc000000000800]", "[3de00000000007d0]", "00")
+ self.bid_dpd_to_bid64("0", "[23c0000000000100]", "[3e000000000000c8]", "00")
+ self.bid_dpd_to_bid64("0", "[23c4000000000020]", "[3e20000000000014]", "00")
+ self.bid_dpd_to_bid64("0", "[23c8000000000002]", "[3e40000000000002]", "00")
+ self.bid_dpd_to_bid64("0", "[2638a51ff8c53324]", "[31c4000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[29fc000000000000]", "[2fe71afd498d0000]", "00")
+ self.bid_dpd_to_bid64("0", "[2a3951f7d1dd2d48]", "[31c8000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[2b8c000000000000]", "[3c671afd498d0000]", "00")
+ self.bid_dpd_to_bid64("0", "[323a83b7f277c27a]", "[31d0000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[43f4000000000000]", "[5fa0000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[43f4000000000001]", "[5fa0000000000001]", "00")
+ self.bid_dpd_to_bid64("0", "[43f8000000000000]", "[5fc0000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[43fc000000000000]", "[5fe0000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[47f934b9c1e28e56]", "[5fc462d53c8abac0]", "00")
+ self.bid_dpd_to_bid64("0", "[4bfc004ca244d5e0]", "[5fe71b33671d6160]", "00")
+ self.bid_dpd_to_bid64("0", "[4bfda46914274f00]", "[5fe841f5e8ceedc0]", "00")
+ self.bid_dpd_to_bid64("0", "[6403f1f856777454]", "[6002b75d7734cd9e]", "00")
+ self.bid_dpd_to_bid64("0", "[6e380737d54f019e]", "[6c70000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[77fcff3fcff3fcfe]", "[77fb86f26fc0fffe]", "00")
+ self.bid_dpd_to_bid64("0", "[77fcff3fcff3fcff]", "[77fb86f26fc0ffff]", "00")
+ self.bid_dpd_to_bid64("0", "[77fe9e6914274f00]", "[77fb81c8f23c4dc0]", "00")
+ self.bid_dpd_to_bid64("0", "[7800000000000000]", "[7800000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[78ad564b7cd4bc25]", "[7800000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[7c00000000000000]", "[7c00000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[7c00000000000001]", "[7c00000000000001]", "00")
+ self.bid_dpd_to_bid64("0", "[7c00000115afb57a]", "[7c00000100000000]", "00")
+ self.bid_dpd_to_bid64("0", "[7e00000000000000]", "[7e00000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[7e00000000000001]", "[7e00000000000001]", "00")
+ self.bid_dpd_to_bid64("0", "[7e00000115afb57a]", "[7e00000100000000]", "00")
+ self.bid_dpd_to_bid64("0", "[8000000000000000]", "[8000000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[8000000000000001]", "[8000000000000001]", "00")
+ self.bid_dpd_to_bid64("0", "[8000000000000012]", "[800000000000000c]", "00")
+ self.bid_dpd_to_bid64("0", "[8000000010000000]", "[800000000bebc200]", "00")
+ self.bid_dpd_to_bid64("0", "[8004000002000000]", "[8020000001312d00]", "00")
+ self.bid_dpd_to_bid64("0", "[8008000000200000]", "[80400000001e8480]", "00")
+ self.bid_dpd_to_bid64("0", "[800c000000040000]", "[8060000000030d40]", "00")
+ self.bid_dpd_to_bid64("0", "[8010000000008000]", "[8080000000004e20]", "00")
+ self.bid_dpd_to_bid64("0", "[8014000000000800]", "[80a00000000007d0]", "00")
+ self.bid_dpd_to_bid64("0", "[8018000000000100]", "[80c00000000000c8]", "00")
+ self.bid_dpd_to_bid64("0", "[801c000000000020]", "[80e0000000000014]", "00")
+ self.bid_dpd_to_bid64("0", "[8020000000000002]", "[8100000000000002]", "00")
+ self.bid_dpd_to_bid64("0", "[9fc456c0d4b14cec]", "[9e3911f17c206208]", "00")
+ self.bid_dpd_to_bid64("0", "[a0ec000000000000]", "[a760000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[c3f8000000000000]", "[dfc0000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[c3f8000000000001]", "[dfc0000000000001]", "00")
+ self.bid_dpd_to_bid64("0", "[c7fd34b9c1e28e56]", "[dfe462d53c8abac0]", "00")
+ self.bid_dpd_to_bid64("0", "[e23fbf5f02e2ccd7]", "[91ffe72590db6225]", "00")
+ self.bid_dpd_to_bid64("0", "[e403f1f856777454]", "[e002b75d7734cd9e]", "00")
+ self.bid_dpd_to_bid64("0", "[f7fcff3fcff3fcff]", "[f7fb86f26fc0ffff]", "00")
+ self.bid_dpd_to_bid64("0", "[f800000000000000]", "[f800000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[fc00000000000000]", "[fc00000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[fc00000000000001]", "[fc00000000000001]", "00")
+ self.bid_dpd_to_bid64("0", "[fc00000115afb57a]", "[fc00000100000000]", "00")
+ self.bid_dpd_to_bid64("0", "[fe00000000000000]", "[fe00000000000000]", "00")
+ self.bid_dpd_to_bid64("0", "[fe00000000000001]", "[fe00000000000001]", "00")
+ self.bid_dpd_to_bid64("0", "[fe00000115afb57a]", "[fe00000100000000]", "00")
+ self.bid_dpd_to_bid64("0", "[fffffffff7ffbdff]", "[ffe38d7e9ed077ef]", "00")
+ }
+
+ private func bid_dpd_to_bid64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDenselyPackedDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = Decimal64(decimalEncoding: arg0)
+ let expected2 = self.toIntel_initFromDecimalEncoding(expected: expected)
+ self.assertEqual(result, expected2, .fuzzyStatus, file, line)
+ }
+
+ func test_bid_dpd_to_bid128() {
+ self.bid_dpd_to_bid128("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[00000000000000000000000000000010]", "[0000000000000000000000000000000a]", "00")
+ self.bid_dpd_to_bid128("0", "[000000000000000000000000000049c6]", "[0000000000000000000000000000303a]", "00")
+ self.bid_dpd_to_bid128("0", "[00000000000000000049c5de08d4d2e8]", "[0000000000000000002bdc545d6b4b88]", "00")
+ self.bid_dpd_to_bid128("0", "[00000a395bcf049c5de08d4d2e7078a3]", "[000006163e665beb7ca6a2e1a64244cb]", "00")
+ self.bid_dpd_to_bid128("0", "[00001e8ff7d63e0618f9a649ec13de30]", "[00001231276e5fb21234567890123456]", "00")
+ self.bid_dpd_to_bid128("0", "[0000c000000000000000000008008003]", "[00060000000000000000000005f62f23]", "00")
+ self.bid_dpd_to_bid128("0", "[0001c000000000000000000000000000]", "[000e0000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[0007c000000000000000000000000000]", "[003e0000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[0400134b9c1e28e56f3c127177823534]", "[00003cde6fff9732de825cd07e96aff2]", "00")
+ self.bid_dpd_to_bid128("0", "[0800186243fc2493c62c9171ab3bce45]", "[000071b33671d6160123456789012345]", "00")
+ self.bid_dpd_to_bid128("0", "[0851aa829c4095c2,0000000100008800]", "[028c7ca57309efe67e0288d4addb7df0]", "00")
+ self.bid_dpd_to_bid128("0", "[20edc000000000000000000000000000]", "[276e0000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[21a0c00000000000000534b9c1e28e56]", "[2d06000000000000000462d53c8abac0]", "00")
+ self.bid_dpd_to_bid128("0", "[21a1000000000000000534b9c1e28e56]", "[2d08000000000000000462d53c8abac0]", "00")
+ self.bid_dpd_to_bid128("0", "[21a48000000000000000000000000000]", "[2d240000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[21a4c000000000000000000000000000]", "[2d260000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[21a4c00000000000000534b9c1e28e56]", "[2d26000000000000000462d53c8abac0]", "00")
+ self.bid_dpd_to_bid128("0", "[21a7c000000000000000000000000000]", "[2d3e0000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22044000000000000004000000000000]", "[302200000000000000038d7ea4c68000]", "00")
+ self.bid_dpd_to_bid128("0", "[22048000000000000000800000000000]", "[302400000000000000005af3107a4000]", "00")
+ self.bid_dpd_to_bid128("0", "[2204c000000000000000100000000000]", "[3026000000000000000009184e72a000]", "00")
+ self.bid_dpd_to_bid128("0", "[22050000000000000000010000000000]", "[3028000000000000000000e8d4a51000]", "00")
+ self.bid_dpd_to_bid128("0", "[22054000000000000000002000000000]", "[302a000000000000000000174876e800]", "00")
+ self.bid_dpd_to_bid128("0", "[22058000000000000000000400000000]", "[302c00000000000000000002540be400]", "00")
+ self.bid_dpd_to_bid128("0", "[2205c000000000000000000040000000]", "[302e000000000000000000003b9aca00]", "00")
+ self.bid_dpd_to_bid128("0", "[22060000000000000000000008000000]", "[30300000000000000000000005f5e100]", "00")
+ self.bid_dpd_to_bid128("0", "[22064000000000000000000001000000]", "[30320000000000000000000000989680]", "00")
+ self.bid_dpd_to_bid128("0", "[22068000000000000000000000100000]", "[303400000000000000000000000f4240]", "00")
+ self.bid_dpd_to_bid128("0", "[2206c000000000000000000000020000]", "[303600000000000000000000000186a0]", "00")
+ self.bid_dpd_to_bid128("0", "[22070000000000000000000000004000]", "[30380000000000000000000000002710]", "00")
+ self.bid_dpd_to_bid128("0", "[22074000000000000000000000000400]", "[303a00000000000000000000000003e8]", "00")
+ self.bid_dpd_to_bid128("0", "[22078000000000000000000000000080]", "[303c0000000000000000000000000064]", "00")
+ self.bid_dpd_to_bid128("0", "[2207c000000000000000000000000010]", "[303e000000000000000000000000000a]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000000001]", "[30400000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000000002]", "[30400000000000000000000000000002]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000000004]", "[30400000000000000000000000000004]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000000008]", "[30400000000000000000000000000008]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000000016]", "[30400000000000000000000000000010]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000000032]", "[30400000000000000000000000000020]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000000064]", "[30400000000000000000000000000040]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000000000000a8]", "[30400000000000000000000000000080]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000000156]", "[30400000000000000000000000000100]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000000292]", "[30400000000000000000000000000200]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000000424]", "[30400000000000000000000000000400]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000000848]", "[30400000000000000000000000000800]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000000000000107a]", "[30400000000000000000000000001000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000000000020ba]", "[30400000000000000000000000002000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000000000059ca]", "[30400000000000000000000000004000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000000000000cbe8]", "[30400000000000000000000000008000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000000000196b6]", "[30400000000000000000000000010000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000000000002c472]", "[30400000000000000000000000020000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000000000588c4]", "[30400000000000000000000000040000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000000000a914e]", "[30400000000000000000000000080000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000000001122f6]", "[30400000000000000000000000100000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000000000021ecd2]", "[30400000000000000000000000200000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000436984]", "[30400000000000000000000000400000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000000873b08]", "[30400000000000000000000000800000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000000016fdd16]", "[30400000000000000000000001000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000000033b5232]", "[30400000000000000000000002000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000000000672226c]", "[30400000000000000000000004000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000000000b445fa8]", "[30400000000000000000000008000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000000001688d656]", "[30400000000000000000000010000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000000002b61f19c]", "[30400000000000000000000020000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000000473f062c]", "[30400000000000000000000040000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000000008c78af48]", "[30400000000000000000000080000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000115afb57a]", "[30400000000000000000000100000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000000022cfaf2ba]", "[30400000000000000000000200000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000005cf9cbcca]", "[30400000000000000000000400000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000000d1d9ee1e8]", "[30400000000000000000000800000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000001a3999dbb6]", "[30400000000000000000001000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000002de3877672]", "[30400000000000000000002000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000005d37de32cc]", "[30400000000000000000004000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000000b27d54746e]", "[30400000000000000000008000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000117e91c9ff6]", "[30400000000000000000010000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000237c23556d2]", "[30400000000000000000020000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000000477846a4484]", "[30400000000000000000040000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000008fe83b08908]", "[30400000000000000000080000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000017ae8ea11216]", "[30400000000000000000100000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000035329f21393c]", "[30400000000000000000200000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000707a3c43df64]", "[30400000000000000000400000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000000c0ede4e755a8]", "[30400000000000000000800000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000010b9d3fce4356]", "[30400000000000000001000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000002e2abddd88592]", "[30400000000000000002000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000004a51ff8c53324]", "[30400000000000000004000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000000951f7d1dd2d48]", "[30400000000000000008000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000001283b7f277c27a]", "[30400000000000000010000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000240737d54f019e]", "[30400000000000000020000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000601477a8982e8e]", "[30400000000000000040000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000000d828fec187b7ae]", "[30400000000000000080000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000001c857b6837eb7bc]", "[30400000000000000100000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000031095338759757c]", "[30400000000000000200000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000539307d8d1e47c4]", "[30400000000000000400000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000000bda60f498388e4e]", "[30400000000000000800000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000001348ada1306d33fc]", "[30400000000000001000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000026154d02513ceddc]", "[30400000000000002000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000004c476a062277ae8c]", "[30400000000000004000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000000948df20da5cfd42e]", "[30400000000000008000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000001891bc41cf89b4716]", "[30400000000000010000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000003647e4e31e1920d32]", "[30400000000000020000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000000073fabfc5693e41a64]", "[30400000000000040000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000000c7bcddcb3f76849ae]", "[30400000000000080000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000015b31e8d3e5d28b75c]", "[30400000000000100000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000029a56c1c76385d4792]", "[30400000000000200000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000048aa6f20e5e1160e24]", "[30400000000000400000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000009e12ad418d12cc1a2e]", "[30400000000000800000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000013a279a2acbf4544f7a]", "[30400000000001000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000002644ecaedee51a89dba]", "[30400000000002000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000606f994bd9e28a973ca]", "[30400000000004000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000000dff82f56cf74e1e26e8]", "[30400000000008000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000001d6d75b7a5a71a3864b6]", "[30400000000010000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000034495e9e514bb464f972]", "[30400000000020000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000609319518dd5d3bddac4]", "[30400000000040000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000000c12622bf0d652eb74c4e]", "[30400000000080000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000001422ad0ff14ca4f4e18f6]", "[30400000000100000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000000285c5dce529561c9849d2]", "[30400000000200000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000048f7835e258a5b5e8b384]", "[30400000000400000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000009dc606b5b9d0cdfbd2608]", "[30400000000800000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000197091d24e3c19bdb57b1c]", "[30400000001000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000038d2f2649f682ce9abef32]", "[30400000002000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000777c552955b659c8b36d64]", "[30400000004000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000000d4f0a8427372ad1e266aa8]", "[30400000008000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000018992c090b5c51a3a4e2c56]", "[30400000010000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000003183f019d0b1a2de49b8892]", "[30400000020000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000005373303952d8a5d07f29124]", "[30400000040000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800000a7503878bc3e0b27de52248]", "[30400000080000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000010ddf80d7306a117efa9eb1e]", "[30400000100000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000258da81944ac4237cba67fba]", "[30400000200000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000670d10328b984a779cbe3eca]", "[30400000400000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080000e71402d572c8e8febf1bf4e8]", "[30400000800000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080001e52838a94591b7aeec3371b6]", "[30400001000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080003625669428aa3753ac6b23372]", "[30400002000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080006599cd405715dd07d0f5035c4]", "[30400004000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208000cce2d6009425380f21d1c0b4e]", "[30400008000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800159f50c01284a6019eb83415f6]", "[30400010000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208002ad581402569610c67e06843d2]", "[30400020000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080051c3028019ce7705e391c0b684]", "[30400040000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[220800b2a73885306c2f5bf3c0531064]", "[30400400000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208010305040362d8f5117f725d0c08]", "[30400080000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080204aa09c0f51dc223f35515a816]", "[30400100000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2208040b903f41d837034d87a82bc832]", "[30400200000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22080e2565764bd1378d9bbe010538a8]", "[30400800000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22081a4a62d3d6226e9bab35820bd956]", "[30401000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22083490dc876595d94ee66484134a92]", "[30402000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2263c000000000000000000000000000]", "[331e0000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[2263c000000000000000000000000001]", "[331e0000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[22640000000000000000000000000000]", "[33200000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[22640000000000000000000000000001]", "[33200000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[2264000000000000000534b9c1e28e56]", "[3320000000000000000462d53c8abac0]", "00")
+ self.bid_dpd_to_bid128("0", "[22640000000000000040000000000000]", "[3320000000000000002386f26fc10000]", "00")
+ self.bid_dpd_to_bid128("0", "[22644000000000000000000000000000]", "[33220000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[30000000000000000000000000000001]", "[2000c5371912364ce3056c2800000001]", "00")
+ self.bid_dpd_to_bid128("0", "[40000000000000000000000000000001]", "[40000000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[43ff4000000000000000000000000000]", "[5ffa0000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[43ff4000000000000000000000000001]", "[5ffa0000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[43ff8000000000000000000000000000]", "[5ffc0000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[43ff8000000000000000000000000001]", "[5ffc0000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[47ff934b9c1e28e56f3c127177823534]", "[5ffc3cde6fff9732de825cd07e96aff2]", "00")
+ self.bid_dpd_to_bid128("0", "[47ffd34b9c1e28e56f3c127177823534]", "[5ffe3cde6fff9732de825cd07e96aff2]", "00")
+ self.bid_dpd_to_bid128("0", "[50000000000000000000000000000001]", "[4000c5371912364ce3056c2800000001]", "00")
+ self.bid_dpd_to_bid128("0", "[60000000000000000000000000000001]", "[00018a6e32246c99c60ad85000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[64000000000000000000000000000011]", "[0001bbbbf868fa2cfecc335a0000000b]", "00")
+ self.bid_dpd_to_bid128("0", "[64000ff3fcff3fcff3fcff3fcff3fcff]", "[0001ed09bead87c0378d8e63ffffffff]", "00")
+ self.bid_dpd_to_bid128("0", "[68000000000000000000000000000101]", "[20018a6e32246c99c60ad850000000c9]", "00")
+ self.bid_dpd_to_bid128("0", "[70000000000000000000000000001001]", "[40018a6e32246c99c60ad85000000fa1]", "00")
+ self.bid_dpd_to_bid128("0", "[77ffcff3fcff3fcff3fcff3fcff3fcfe]", "[5fffed09bead87c0378d8e63fffffffe]", "00")
+ self.bid_dpd_to_bid128("0", "[77ffcff3fcff3fcff3fcff3fcff3fcff]", "[5fffed09bead87c0378d8e63ffffffff]", "00")
+ self.bid_dpd_to_bid128("0", "[78000000000000000000000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[7c000000000000000000000000000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[7c000000000000000000000000000001]", "[7c000000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[7c000001e52838a94591b7aeec3371b6]", "[7c000001000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[7e000000000000000000000000000000]", "[7e000000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[7e000000000000000000000000000001]", "[7e000000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[7e000001e52838a94591b7aeec3371b6]", "[7e000001000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[80000000000000000000000000000000]", "[80000000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[80000000000000000000000000000001]", "[80000000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[800000000000000000000000000049c6]", "[8000000000000000000000000000303a]", "00")
+ self.bid_dpd_to_bid128("0", "[80000a395bcf049c5de08d4d2e7078a3]", "[800006163e665beb7ca6a2e1a64244cb]", "00")
+ self.bid_dpd_to_bid128("0", "[8001c000000000000000000000000000]", "[800e0000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[a0edc000000000000000000000000000]", "[a76e0000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[a1a48000000000000000000000000000]", "[ad240000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[a1a4800000000000000534b9c1e28e56]", "[ad24000000000000000462d53c8abac0]", "00")
+ self.bid_dpd_to_bid128("0", "[a1a4c000000000000000000000000000]", "[ad260000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[a1a4c000000000000000000000000001]", "[ad260000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[a1a7c000000000000000000000000000]", "[ad3e0000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[a2640000000000000000000000000000]", "[b3200000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[a2640000000000000040000000000000]", "[b320000000000000002386f26fc10000]", "00")
+ self.bid_dpd_to_bid128("0", "[a2644000000000000000000000000000]", "[b3220000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[c7ff934b9c1e28e56f3c127177823534]", "[dffc3cde6fff9732de825cd07e96aff2]", "00")
+ self.bid_dpd_to_bid128("0", "[f797bbcaf7f325d9,fddb7ebcff32ffdf]", "[dcbde9edc32bb534b77d29c425c75637]", "00")
+ self.bid_dpd_to_bid128("0", "[f7ffcff3fcff3fcff3fcff3fcff3fcff]", "[dfffed09bead87c0378d8e63ffffffff]", "00")
+ self.bid_dpd_to_bid128("0", "[f8000000000000000000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[fb7d291aa1368e3c,4e6c2e8aabc4543b]", "[f8000000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[fc000000000000000000000000000000]", "[fc000000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[fc000000000000000000000000000001]", "[fc000000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[fc000001e52838a94591b7aeec3371b6]", "[fc000001000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[fe000000000000000000000000000000]", "[fe000000000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[fe000000000000000000000000000001]", "[fe000000000000000000000000000001]", "00")
+ self.bid_dpd_to_bid128("0", "[fe000001e52838a94591b7aeec3371b6]", "[fe000001000000000000000000000000]", "00")
+ self.bid_dpd_to_bid128("0", "[ff7ffdffbff9fdf7,ae633d73ef56fef7]", "[fe0027714a64129af3c6894ed77165f9]", "00")
+ }
+
+ private func bid_dpd_to_bid128(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDenselyPackedDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = Decimal128(decimalEncoding: arg0)
+ let expected2 = self.toIntel_initFromDecimalEncoding(expected: expected)
+ self.assertEqual(result, expected2, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelFromIntTests.swift b/Tests/DecimalTests/Intel - generated/IntelFromIntTests.swift
new file mode 100644
index 0000000..393874d
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelFromIntTests.swift
@@ -0,0 +1,1082 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelFromIntTests: XCTestCase, IntelMixin {
+
+ func test_bid32_from_int32() {
+ self.bid32_from_int32("0", "0", "[32800000]", "00")
+ self.bid32_from_int32("0", "100000000", "[338f4240]", "00")
+ self.bid32_from_int32("0", "11111111", "[3310f447]", "20")
+ self.bid32_from_int32("0", "1", "[32800001]", "00")
+ self.bid32_from_int32("0", "-1", "[b2800001]", "00")
+ self.bid32_from_int32("0", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_int32("0", "-2147483648", "[b420c49c]", "20")
+ self.bid32_from_int32("0", "32767", "[32807fff]", "00")
+ self.bid32_from_int32("0", "-32767", "[b2807fff]", "00")
+ self.bid32_from_int32("0", "32768", "[32808000]", "00")
+ self.bid32_from_int32("0", "-32768", "[b2808000]", "00")
+ self.bid32_from_int32("0", "32769", "[32808001]", "00")
+ self.bid32_from_int32("0", "-32769", "[b2808001]", "00")
+ self.bid32_from_int32("0", "65534", "[3280fffe]", "00")
+ self.bid32_from_int32("0", "-65534", "[b280fffe]", "00")
+ self.bid32_from_int32("0", "65535", "[3280ffff]", "00")
+ self.bid32_from_int32("0", "-65535", "[b280ffff]", "00")
+ self.bid32_from_int32("0", "65536", "[32810000]", "00")
+ self.bid32_from_int32("0", "-65536", "[b2810000]", "00")
+ self.bid32_from_int32("0", "693127475", "[33e9c34b]", "20")
+ self.bid32_from_int32("0", "-937230081", "[ecef028d]", "20")
+ self.bid32_from_int32("0", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int32("0", "999999980", "[340f4240]", "20")
+ self.bid32_from_int32("1", "0", "[32800000]", "00")
+ self.bid32_from_int32("1", "100000000", "[338f4240]", "00")
+ self.bid32_from_int32("1", "11111111", "[3310f447]", "20")
+ self.bid32_from_int32("1", "1", "[32800001]", "00")
+ self.bid32_from_int32("1", "-1", "[b2800001]", "00")
+ self.bid32_from_int32("1", "2147483647", "[3420c49b]", "20")
+ self.bid32_from_int32("1", "-2147483648", "[b420c49c]", "20")
+ self.bid32_from_int32("1", "32767", "[32807fff]", "00")
+ self.bid32_from_int32("1", "-32767", "[b2807fff]", "00")
+ self.bid32_from_int32("1", "32768", "[32808000]", "00")
+ self.bid32_from_int32("1", "-32768", "[b2808000]", "00")
+ self.bid32_from_int32("1", "32769", "[32808001]", "00")
+ self.bid32_from_int32("1", "-32769", "[b2808001]", "00")
+ self.bid32_from_int32("1", "65534", "[3280fffe]", "00")
+ self.bid32_from_int32("1", "-65534", "[b280fffe]", "00")
+ self.bid32_from_int32("1", "65535", "[3280ffff]", "00")
+ self.bid32_from_int32("1", "-65535", "[b280ffff]", "00")
+ self.bid32_from_int32("1", "65536", "[32810000]", "00")
+ self.bid32_from_int32("1", "-65536", "[b2810000]", "00")
+ self.bid32_from_int32("1", "693127475", "[33e9c34a]", "20")
+ self.bid32_from_int32("1", "-937230081", "[ecef028d]", "20")
+ self.bid32_from_int32("1", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int32("1", "999999980", "[6cf8967f]", "20")
+ self.bid32_from_int32("2", "0", "[32800000]", "00")
+ self.bid32_from_int32("2", "100000000", "[338f4240]", "00")
+ self.bid32_from_int32("2", "11111111", "[3310f448]", "20")
+ self.bid32_from_int32("2", "1", "[32800001]", "00")
+ self.bid32_from_int32("2", "-1", "[b2800001]", "00")
+ self.bid32_from_int32("2", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_int32("2", "-2147483648", "[b420c49b]", "20")
+ self.bid32_from_int32("2", "32767", "[32807fff]", "00")
+ self.bid32_from_int32("2", "-32767", "[b2807fff]", "00")
+ self.bid32_from_int32("2", "32768", "[32808000]", "00")
+ self.bid32_from_int32("2", "-32768", "[b2808000]", "00")
+ self.bid32_from_int32("2", "32769", "[32808001]", "00")
+ self.bid32_from_int32("2", "-32769", "[b2808001]", "00")
+ self.bid32_from_int32("2", "65534", "[3280fffe]", "00")
+ self.bid32_from_int32("2", "-65534", "[b280fffe]", "00")
+ self.bid32_from_int32("2", "65535", "[3280ffff]", "00")
+ self.bid32_from_int32("2", "-65535", "[b280ffff]", "00")
+ self.bid32_from_int32("2", "65536", "[32810000]", "00")
+ self.bid32_from_int32("2", "-65536", "[b2810000]", "00")
+ self.bid32_from_int32("2", "693127475", "[33e9c34b]", "20")
+ self.bid32_from_int32("2", "-937230081", "[ecef028c]", "20")
+ self.bid32_from_int32("2", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int32("2", "999999980", "[340f4240]", "20")
+ self.bid32_from_int32("3", "0", "[32800000]", "00")
+ self.bid32_from_int32("3", "100000000", "[338f4240]", "00")
+ self.bid32_from_int32("3", "11111111", "[3310f447]", "20")
+ self.bid32_from_int32("3", "1", "[32800001]", "00")
+ self.bid32_from_int32("3", "-1", "[b2800001]", "00")
+ self.bid32_from_int32("3", "2147483647", "[3420c49b]", "20")
+ self.bid32_from_int32("3", "-2147483648", "[b420c49b]", "20")
+ self.bid32_from_int32("3", "32767", "[32807fff]", "00")
+ self.bid32_from_int32("3", "-32767", "[b2807fff]", "00")
+ self.bid32_from_int32("3", "32768", "[32808000]", "00")
+ self.bid32_from_int32("3", "-32768", "[b2808000]", "00")
+ self.bid32_from_int32("3", "32769", "[32808001]", "00")
+ self.bid32_from_int32("3", "-32769", "[b2808001]", "00")
+ self.bid32_from_int32("3", "65534", "[3280fffe]", "00")
+ self.bid32_from_int32("3", "-65534", "[b280fffe]", "00")
+ self.bid32_from_int32("3", "65535", "[3280ffff]", "00")
+ self.bid32_from_int32("3", "-65535", "[b280ffff]", "00")
+ self.bid32_from_int32("3", "65536", "[32810000]", "00")
+ self.bid32_from_int32("3", "-65536", "[b2810000]", "00")
+ self.bid32_from_int32("3", "693127475", "[33e9c34a]", "20")
+ self.bid32_from_int32("3", "-937230081", "[ecef028c]", "20")
+ self.bid32_from_int32("3", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int32("3", "999999980", "[6cf8967f]", "20")
+ self.bid32_from_int32("4", "0", "[32800000]", "00")
+ self.bid32_from_int32("4", "100000000", "[338f4240]", "00")
+ self.bid32_from_int32("4", "11111111", "[3310f447]", "20")
+ self.bid32_from_int32("4", "1", "[32800001]", "00")
+ self.bid32_from_int32("4", "-1", "[b2800001]", "00")
+ self.bid32_from_int32("4", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_int32("4", "-2147483648", "[b420c49c]", "20")
+ self.bid32_from_int32("4", "32767", "[32807fff]", "00")
+ self.bid32_from_int32("4", "-32767", "[b2807fff]", "00")
+ self.bid32_from_int32("4", "32768", "[32808000]", "00")
+ self.bid32_from_int32("4", "-32768", "[b2808000]", "00")
+ self.bid32_from_int32("4", "32769", "[32808001]", "00")
+ self.bid32_from_int32("4", "-32769", "[b2808001]", "00")
+ self.bid32_from_int32("4", "65534", "[3280fffe]", "00")
+ self.bid32_from_int32("4", "-65534", "[b280fffe]", "00")
+ self.bid32_from_int32("4", "65535", "[3280ffff]", "00")
+ self.bid32_from_int32("4", "-65535", "[b280ffff]", "00")
+ self.bid32_from_int32("4", "65536", "[32810000]", "00")
+ self.bid32_from_int32("4", "-65536", "[b2810000]", "00")
+ self.bid32_from_int32("4", "693127475", "[33e9c34b]", "20")
+ self.bid32_from_int32("4", "-937230081", "[ecef028d]", "20")
+ self.bid32_from_int32("4", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int32("4", "999999980", "[340f4240]", "20")
+ self.bid32_from_int32("0", "999999950", "[340f4240]", "20")
+ self.bid32_from_int32("1", "999999950", "[6cf8967f]", "20")
+ self.bid32_from_int32("2", "999999950", "[340f4240]", "20")
+ self.bid32_from_int32("3", "999999950", "[6cf8967f]", "20")
+ self.bid32_from_int32("4", "999999950", "[340f4240]", "20")
+ self.bid32_from_int32("0", "-999999950", "[b40f4240]", "20")
+ self.bid32_from_int32("1", "-999999950", "[b40f4240]", "20")
+ self.bid32_from_int32("2", "-999999950", "[ecf8967f]", "20")
+ self.bid32_from_int32("3", "-999999950", "[ecf8967f]", "20")
+ self.bid32_from_int32("4", "-999999950", "[b40f4240]", "20")
+ }
+
+ private func bid32_from_int32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseInt32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_from_int64() {
+ self.bid32_from_int64("0", "0", "[32800000]", "00")
+ self.bid32_from_int64("0", "10000000000000000", "[378f4240]", "00")
+ self.bid32_from_int64("0", "1000000000000000", "[370f4240]", "00")
+ self.bid32_from_int64("0", "100000000000000", "[368f4240]", "00")
+ self.bid32_from_int64("0", "10000000000000", "[360f4240]", "00")
+ self.bid32_from_int64("0", "1000000000000", "[358f4240]", "00")
+ self.bid32_from_int64("0", "100000000000", "[350f4240]", "00")
+ self.bid32_from_int64("0", "10000000000", "[348f4240]", "00")
+ self.bid32_from_int64("0", "100000000", "[338f4240]", "00")
+ self.bid32_from_int64("0", "11111111", "[3310f447]", "20")
+ self.bid32_from_int64("0", "1", "[32800001]", "00")
+ self.bid32_from_int64("0", "-134217729", "[b3947ae1]", "20")
+ self.bid32_from_int64("0", "-17592722915393", "[b61ad828]", "20")
+ self.bid32_from_int64("0", "-1", "[b2800001]", "00")
+ self.bid32_from_int64("0", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_int64("0", "2147483648", "[3420c49c]", "20")
+ self.bid32_from_int64("0", "-2147483648", "[b420c49c]", "20")
+ self.bid32_from_int64("0", "-22523495699198977", "[b7a25e3e]", "20")
+ self.bid32_from_int64("0", "32767", "[32807fff]", "00")
+ self.bid32_from_int64("0", "-32767", "[b2807fff]", "00")
+ self.bid32_from_int64("0", "32768", "[32808000]", "00")
+ self.bid32_from_int64("0", "-32768", "[b2808000]", "00")
+ self.bid32_from_int64("0", "32769", "[32808001]", "00")
+ self.bid32_from_int64("0", "-32769", "[b2808001]", "00")
+ self.bid32_from_int64("0", "34368127232", "[34b4710d]", "20")
+ self.bid32_from_int64("0", "362540080113918042", "[383751b9]", "20")
+ self.bid32_from_int64("0", "4294967295", "[34418937]", "20")
+ self.bid32_from_int64("0", "-4294967295", "[b4418937]", "20")
+ self.bid32_from_int64("0", "4294967297", "[34418937]", "20")
+ self.bid32_from_int64("0", "-4294967297", "[b4418937]", "20")
+ self.bid32_from_int64("0", "-4398205899137", "[b5c31c7e]", "20")
+ self.bid32_from_int64("0", "-4503599628435553", "[b744b830]", "20")
+ self.bid32_from_int64("0", "-493149287878913", "[b6cb3fa5]", "20")
+ self.bid32_from_int64("0", "-549755814017", "[b553e2d6]", "20")
+ self.bid32_from_int64("0", "65534", "[3280fffe]", "00")
+ self.bid32_from_int64("0", "-65534", "[b280fffe]", "00")
+ self.bid32_from_int64("0", "65535", "[3280ffff]", "00")
+ self.bid32_from_int64("0", "-65535", "[b280ffff]", "00")
+ self.bid32_from_int64("0", "65536", "[32810000]", "00")
+ self.bid32_from_int64("0", "-65536", "[b2810000]", "00")
+ self.bid32_from_int64("0", "9223372036854775806", "[6e2cbccc]", "20")
+ self.bid32_from_int64("0", "-9223372036854775806", "[ee2cbccc]", "20")
+ self.bid32_from_int64("0", "9223372036854775807", "[6e2cbccc]", "20")
+ self.bid32_from_int64("0", "-9223372036854775807", "[ee2cbccc]", "20")
+ self.bid32_from_int64("0", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int64("1", "0", "[32800000]", "00")
+ self.bid32_from_int64("1", "11111111", "[3310f447]", "20")
+ self.bid32_from_int64("1", "1", "[32800001]", "00")
+ self.bid32_from_int64("1", "-1", "[b2800001]", "00")
+ self.bid32_from_int64("1", "2147483647", "[3420c49b]", "20")
+ self.bid32_from_int64("1", "2147483648", "[3420c49b]", "20")
+ self.bid32_from_int64("1", "-2147483648", "[b420c49c]", "20")
+ self.bid32_from_int64("1", "4294967295", "[34418937]", "20")
+ self.bid32_from_int64("1", "-4294967295", "[b4418938]", "20")
+ self.bid32_from_int64("1", "4294967297", "[34418937]", "20")
+ self.bid32_from_int64("1", "-4294967297", "[b4418938]", "20")
+ self.bid32_from_int64("1", "9223372036854775806", "[6e2cbccc]", "20")
+ self.bid32_from_int64("1", "-9223372036854775806", "[ee2cbccd]", "20")
+ self.bid32_from_int64("1", "9223372036854775807", "[6e2cbccc]", "20")
+ self.bid32_from_int64("1", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int64("2", "0", "[32800000]", "00")
+ self.bid32_from_int64("2", "11111111", "[3310f448]", "20")
+ self.bid32_from_int64("2", "1", "[32800001]", "00")
+ self.bid32_from_int64("2", "-1", "[b2800001]", "00")
+ self.bid32_from_int64("2", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_int64("2", "2147483648", "[3420c49c]", "20")
+ self.bid32_from_int64("2", "-2147483648", "[b420c49b]", "20")
+ self.bid32_from_int64("2", "4294967295", "[34418938]", "20")
+ self.bid32_from_int64("2", "-4294967295", "[b4418937]", "20")
+ self.bid32_from_int64("2", "4294967297", "[34418938]", "20")
+ self.bid32_from_int64("2", "-4294967297", "[b4418937]", "20")
+ self.bid32_from_int64("2", "9223372036854775806", "[6e2cbccd]", "20")
+ self.bid32_from_int64("2", "-9223372036854775806", "[ee2cbccc]", "20")
+ self.bid32_from_int64("2", "9223372036854775807", "[6e2cbccd]", "20")
+ self.bid32_from_int64("2", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int64("3", "0", "[32800000]", "00")
+ self.bid32_from_int64("3", "11111111", "[3310f447]", "20")
+ self.bid32_from_int64("3", "1", "[32800001]", "00")
+ self.bid32_from_int64("3", "-1", "[b2800001]", "00")
+ self.bid32_from_int64("3", "2147483647", "[3420c49b]", "20")
+ self.bid32_from_int64("3", "2147483648", "[3420c49b]", "20")
+ self.bid32_from_int64("3", "-2147483648", "[b420c49b]", "20")
+ self.bid32_from_int64("3", "4294967295", "[34418937]", "20")
+ self.bid32_from_int64("3", "-4294967295", "[b4418937]", "20")
+ self.bid32_from_int64("3", "4294967297", "[34418937]", "20")
+ self.bid32_from_int64("3", "-4294967297", "[b4418937]", "20")
+ self.bid32_from_int64("3", "9223372036854775806", "[6e2cbccc]", "20")
+ self.bid32_from_int64("3", "-9223372036854775806", "[ee2cbccc]", "20")
+ self.bid32_from_int64("3", "9223372036854775807", "[6e2cbccc]", "20")
+ self.bid32_from_int64("3", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int64("4", "0", "[32800000]", "00")
+ self.bid32_from_int64("4", "11111111", "[3310f447]", "20")
+ self.bid32_from_int64("4", "1", "[32800001]", "00")
+ self.bid32_from_int64("4", "-1", "[b2800001]", "00")
+ self.bid32_from_int64("4", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_int64("4", "2147483648", "[3420c49c]", "20")
+ self.bid32_from_int64("4", "-2147483648", "[b420c49c]", "20")
+ self.bid32_from_int64("4", "4294967295", "[34418937]", "20")
+ self.bid32_from_int64("4", "-4294967295", "[b4418937]", "20")
+ self.bid32_from_int64("4", "4294967297", "[34418937]", "20")
+ self.bid32_from_int64("4", "-4294967297", "[b4418937]", "20")
+ self.bid32_from_int64("4", "9223372036854775806", "[6e2cbccc]", "20")
+ self.bid32_from_int64("4", "-9223372036854775806", "[ee2cbccc]", "20")
+ self.bid32_from_int64("4", "9223372036854775807", "[6e2cbccc]", "20")
+ self.bid32_from_int64("4", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int64("0", "10000001", "[330f4240]", "20")
+ self.bid32_from_int64("0", "10000000", "[330f4240]", "00")
+ self.bid32_from_int64("0", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int64("2", "10000001", "[330f4241]", "20")
+ self.bid32_from_int64("2", "10000000", "[330f4240]", "00")
+ self.bid32_from_int64("2", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int64("4", "10000001", "[330f4240]", "20")
+ self.bid32_from_int64("4", "10000000", "[330f4240]", "00")
+ self.bid32_from_int64("4", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int64("3", "10000001", "[330f4240]", "20")
+ self.bid32_from_int64("3", "10000000", "[330f4240]", "00")
+ self.bid32_from_int64("3", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_int64("1", "10000001", "[330f4240]", "20")
+ self.bid32_from_int64("1", "10000000", "[330f4240]", "00")
+ self.bid32_from_int64("1", "9999999", "[6cb8967f]", "00")
+ }
+
+ private func bid32_from_int64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseInt64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_from_uint32() {
+ self.bid32_from_uint32("0", "0", "[32800000]", "00")
+ self.bid32_from_uint32("0", "100000000", "[338f4240]", "00")
+ self.bid32_from_uint32("0", "11111111", "[3310f447]", "20")
+ self.bid32_from_uint32("0", "1", "[32800001]", "00")
+ self.bid32_from_uint32("0", "-1", "[34418937]", "20")
+ self.bid32_from_uint32("0", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_uint32("0", "2147483648", "[3420c49c]", "20")
+ self.bid32_from_uint32("0", "32767", "[32807fff]", "00")
+ self.bid32_from_uint32("0", "-32767", "[34418917]", "20")
+ self.bid32_from_uint32("0", "32768", "[32808000]", "00")
+ self.bid32_from_uint32("0", "-32768", "[34418917]", "20")
+ self.bid32_from_uint32("0", "32769", "[32808001]", "00")
+ self.bid32_from_uint32("0", "-32769", "[34418917]", "20")
+ self.bid32_from_uint32("0", "4294967295", "[34418937]", "20")
+ self.bid32_from_uint32("0", "467012619", "[33c742ae]", "20")
+ self.bid32_from_uint32("0", "65534", "[3280fffe]", "00")
+ self.bid32_from_uint32("0", "-65534", "[344188f6]", "20")
+ self.bid32_from_uint32("0", "65535", "[3280ffff]", "00")
+ self.bid32_from_uint32("0", "-65535", "[344188f6]", "20")
+ self.bid32_from_uint32("0", "65536", "[32810000]", "00")
+ self.bid32_from_uint32("0", "-65536", "[344188f6]", "20")
+ self.bid32_from_uint32("0", "986328055", "[6cf68071]", "20")
+ self.bid32_from_uint32("0", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_uint32("0", "999999980", "[340f4240]", "20")
+ self.bid32_from_uint32("1", "0", "[32800000]", "00")
+ self.bid32_from_uint32("1", "100000000", "[338f4240]", "00")
+ self.bid32_from_uint32("1", "11111111", "[3310f447]", "20")
+ self.bid32_from_uint32("1", "1", "[32800001]", "00")
+ self.bid32_from_uint32("1", "-1", "[34418937]", "20")
+ self.bid32_from_uint32("1", "2147483647", "[3420c49b]", "20")
+ self.bid32_from_uint32("1", "2147483648", "[3420c49b]", "20")
+ self.bid32_from_uint32("1", "32767", "[32807fff]", "00")
+ self.bid32_from_uint32("1", "-32767", "[34418916]", "20")
+ self.bid32_from_uint32("1", "32768", "[32808000]", "00")
+ self.bid32_from_uint32("1", "-32768", "[34418916]", "20")
+ self.bid32_from_uint32("1", "32769", "[32808001]", "00")
+ self.bid32_from_uint32("1", "-32769", "[34418916]", "20")
+ self.bid32_from_uint32("1", "4294967295", "[34418937]", "20")
+ self.bid32_from_uint32("1", "467012619", "[33c742ae]", "20")
+ self.bid32_from_uint32("1", "65534", "[3280fffe]", "00")
+ self.bid32_from_uint32("1", "-65534", "[344188f5]", "20")
+ self.bid32_from_uint32("1", "65535", "[3280ffff]", "00")
+ self.bid32_from_uint32("1", "-65535", "[344188f5]", "20")
+ self.bid32_from_uint32("1", "65536", "[32810000]", "00")
+ self.bid32_from_uint32("1", "-65536", "[344188f5]", "20")
+ self.bid32_from_uint32("1", "986328055", "[6cf68070]", "20")
+ self.bid32_from_uint32("1", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_uint32("1", "999999980", "[6cf8967f]", "20")
+ self.bid32_from_uint32("2", "0", "[32800000]", "00")
+ self.bid32_from_uint32("2", "100000000", "[338f4240]", "00")
+ self.bid32_from_uint32("2", "11111111", "[3310f448]", "20")
+ self.bid32_from_uint32("2", "1", "[32800001]", "00")
+ self.bid32_from_uint32("2", "-1", "[34418938]", "20")
+ self.bid32_from_uint32("2", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_uint32("2", "2147483648", "[3420c49c]", "20")
+ self.bid32_from_uint32("2", "32767", "[32807fff]", "00")
+ self.bid32_from_uint32("2", "-32767", "[34418917]", "20")
+ self.bid32_from_uint32("2", "32768", "[32808000]", "00")
+ self.bid32_from_uint32("2", "-32768", "[34418917]", "20")
+ self.bid32_from_uint32("2", "32769", "[32808001]", "00")
+ self.bid32_from_uint32("2", "-32769", "[34418917]", "20")
+ self.bid32_from_uint32("2", "4294967295", "[34418938]", "20")
+ self.bid32_from_uint32("2", "467012619", "[33c742af]", "20")
+ self.bid32_from_uint32("2", "65534", "[3280fffe]", "00")
+ self.bid32_from_uint32("2", "-65534", "[344188f6]", "20")
+ self.bid32_from_uint32("2", "65535", "[3280ffff]", "00")
+ self.bid32_from_uint32("2", "-65535", "[344188f6]", "20")
+ self.bid32_from_uint32("2", "65536", "[32810000]", "00")
+ self.bid32_from_uint32("2", "-65536", "[344188f6]", "20")
+ self.bid32_from_uint32("2", "986328055", "[6cf68071]", "20")
+ self.bid32_from_uint32("2", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_uint32("2", "999999980", "[340f4240]", "20")
+ self.bid32_from_uint32("3", "0", "[32800000]", "00")
+ self.bid32_from_uint32("3", "100000000", "[338f4240]", "00")
+ self.bid32_from_uint32("3", "11111111", "[3310f447]", "20")
+ self.bid32_from_uint32("3", "1", "[32800001]", "00")
+ self.bid32_from_uint32("3", "-1", "[34418937]", "20")
+ self.bid32_from_uint32("3", "2147483647", "[3420c49b]", "20")
+ self.bid32_from_uint32("3", "2147483648", "[3420c49b]", "20")
+ self.bid32_from_uint32("3", "32767", "[32807fff]", "00")
+ self.bid32_from_uint32("3", "-32767", "[34418916]", "20")
+ self.bid32_from_uint32("3", "32768", "[32808000]", "00")
+ self.bid32_from_uint32("3", "-32768", "[34418916]", "20")
+ self.bid32_from_uint32("3", "32769", "[32808001]", "00")
+ self.bid32_from_uint32("3", "-32769", "[34418916]", "20")
+ self.bid32_from_uint32("3", "4294967295", "[34418937]", "20")
+ self.bid32_from_uint32("3", "467012619", "[33c742ae]", "20")
+ self.bid32_from_uint32("3", "65534", "[3280fffe]", "00")
+ self.bid32_from_uint32("3", "-65534", "[344188f5]", "20")
+ self.bid32_from_uint32("3", "65535", "[3280ffff]", "00")
+ self.bid32_from_uint32("3", "-65535", "[344188f5]", "20")
+ self.bid32_from_uint32("3", "65536", "[32810000]", "00")
+ self.bid32_from_uint32("3", "-65536", "[344188f5]", "20")
+ self.bid32_from_uint32("3", "986328055", "[6cf68070]", "20")
+ self.bid32_from_uint32("3", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_uint32("3", "999999980", "[6cf8967f]", "20")
+ self.bid32_from_uint32("4", "0", "[32800000]", "00")
+ self.bid32_from_uint32("4", "100000000", "[338f4240]", "00")
+ self.bid32_from_uint32("4", "11111111", "[3310f447]", "20")
+ self.bid32_from_uint32("4", "1", "[32800001]", "00")
+ self.bid32_from_uint32("4", "-1", "[34418937]", "20")
+ self.bid32_from_uint32("4", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_uint32("4", "2147483648", "[3420c49c]", "20")
+ self.bid32_from_uint32("4", "32767", "[32807fff]", "00")
+ self.bid32_from_uint32("4", "-32767", "[34418917]", "20")
+ self.bid32_from_uint32("4", "32768", "[32808000]", "00")
+ self.bid32_from_uint32("4", "-32768", "[34418917]", "20")
+ self.bid32_from_uint32("4", "32769", "[32808001]", "00")
+ self.bid32_from_uint32("4", "-32769", "[34418917]", "20")
+ self.bid32_from_uint32("4", "4294967295", "[34418937]", "20")
+ self.bid32_from_uint32("4", "467012619", "[33c742ae]", "20")
+ self.bid32_from_uint32("4", "65534", "[3280fffe]", "00")
+ self.bid32_from_uint32("4", "-65534", "[344188f6]", "20")
+ self.bid32_from_uint32("4", "65535", "[3280ffff]", "00")
+ self.bid32_from_uint32("4", "-65535", "[344188f6]", "20")
+ self.bid32_from_uint32("4", "65536", "[32810000]", "00")
+ self.bid32_from_uint32("4", "-65536", "[344188f6]", "20")
+ self.bid32_from_uint32("4", "986328055", "[6cf68071]", "20")
+ self.bid32_from_uint32("4", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_uint32("4", "999999980", "[340f4240]", "20")
+ }
+
+ private func bid32_from_uint32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseUInt32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_from_uint64() {
+ self.bid32_from_uint64("0", "0", "[32800000]", "00")
+ self.bid32_from_uint64("0", "10000000000000000", "[378f4240]", "00")
+ self.bid32_from_uint64("0", "1000000000000000", "[370f4240]", "00")
+ self.bid32_from_uint64("0", "100000000000000", "[368f4240]", "00")
+ self.bid32_from_uint64("0", "10000000000000", "[360f4240]", "00")
+ self.bid32_from_uint64("0", "1000000000000", "[358f4240]", "00")
+ self.bid32_from_uint64("0", "100000000000", "[350f4240]", "00")
+ self.bid32_from_uint64("0", "10000000000", "[348f4240]", "00")
+ self.bid32_from_uint64("0", "100000000", "[338f4240]", "00")
+ self.bid32_from_uint64("0", "11111111", "[3310f447]", "20")
+ self.bid32_from_uint64("0", "1125917090906112", "[37112e1d]", "20")
+ self.bid32_from_uint64("0", "1", "[32800001]", "00")
+ self.bid32_from_uint64("0", "-1", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "14285512277852680", "[3795cc47]", "20")
+ self.bid32_from_uint64("0", "167505177871812998", "[38198f2c]", "20")
+ self.bid32_from_uint64("0", "17179869184", "[349a36e3]", "20")
+ self.bid32_from_uint64("0", "17592186044416", "[361ad7f3]", "20")
+ self.bid32_from_uint64("0", "18446744069414584319", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "18446744069414584321", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "18446744071562067968", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "18446744073709551614", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "18446744073709551615", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_uint64("0", "2147483648", "[3420c49c]", "20")
+ self.bid32_from_uint64("0", "2203855273985", "[35a1a0cf]", "20")
+ self.bid32_from_uint64("0", "32767", "[32807fff]", "00")
+ self.bid32_from_uint64("0", "-32767", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "32768", "[32808000]", "00")
+ self.bid32_from_uint64("0", "-32768", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "32769", "[32808001]", "00")
+ self.bid32_from_uint64("0", "-32769", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "4294967295", "[34418937]", "20")
+ self.bid32_from_uint64("0", "4294967297", "[34418937]", "20")
+ self.bid32_from_uint64("0", "566935687204", "[355681ed]", "20")
+ self.bid32_from_uint64("0", "586045133422592", "[36d96c63]", "20")
+ self.bid32_from_uint64("0", "65534", "[3280fffe]", "00")
+ self.bid32_from_uint64("0", "-65534", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "65535", "[3280ffff]", "00")
+ self.bid32_from_uint64("0", "-65535", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "65536", "[32810000]", "00")
+ self.bid32_from_uint64("0", "-65536", "[391c25c2]", "20")
+ self.bid32_from_uint64("0", "805308424", "[33fae15c]", "20")
+ self.bid32_from_uint64("0", "9223372036854775806", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("0", "-9223372036854775807", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("0", "9223372036854775807", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("0", "-9223372036854775808", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("0", "9223372036854775808", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("0", "-9223372036854775809", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("0", "9223372036854775809", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("0", "9223372036854775810", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("0", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_uint64("1", "0", "[32800000]", "00")
+ self.bid32_from_uint64("1", "11111111", "[3310f447]", "20")
+ self.bid32_from_uint64("1", "1", "[32800001]", "00")
+ self.bid32_from_uint64("1", "18446744069414584319", "[391c25c2]", "20")
+ self.bid32_from_uint64("1", "18446744069414584321", "[391c25c2]", "20")
+ self.bid32_from_uint64("1", "18446744071562067968", "[391c25c2]", "20")
+ self.bid32_from_uint64("1", "18446744073709551615", "[391c25c2]", "20")
+ self.bid32_from_uint64("1", "2147483647", "[3420c49b]", "20")
+ self.bid32_from_uint64("1", "2147483648", "[3420c49b]", "20")
+ self.bid32_from_uint64("1", "4294967295", "[34418937]", "20")
+ self.bid32_from_uint64("1", "4294967297", "[34418937]", "20")
+ self.bid32_from_uint64("1", "9223372036854775806", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("1", "9223372036854775807", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("1", "9223372036854775810", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("1", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_uint64("2", "0", "[32800000]", "00")
+ self.bid32_from_uint64("2", "11111111", "[3310f448]", "20")
+ self.bid32_from_uint64("2", "1", "[32800001]", "00")
+ self.bid32_from_uint64("2", "18446744069414584319", "[391c25c3]", "20")
+ self.bid32_from_uint64("2", "18446744069414584321", "[391c25c3]", "20")
+ self.bid32_from_uint64("2", "18446744071562067968", "[391c25c3]", "20")
+ self.bid32_from_uint64("2", "18446744073709551615", "[391c25c3]", "20")
+ self.bid32_from_uint64("2", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_uint64("2", "2147483648", "[3420c49c]", "20")
+ self.bid32_from_uint64("2", "4294967295", "[34418938]", "20")
+ self.bid32_from_uint64("2", "4294967297", "[34418938]", "20")
+ self.bid32_from_uint64("2", "9223372036854775806", "[6e2cbccd]", "20")
+ self.bid32_from_uint64("2", "9223372036854775807", "[6e2cbccd]", "20")
+ self.bid32_from_uint64("2", "9223372036854775810", "[6e2cbccd]", "20")
+ self.bid32_from_uint64("2", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_uint64("3", "0", "[32800000]", "00")
+ self.bid32_from_uint64("3", "11111111", "[3310f447]", "20")
+ self.bid32_from_uint64("3", "1", "[32800001]", "00")
+ self.bid32_from_uint64("3", "18446744069414584319", "[391c25c2]", "20")
+ self.bid32_from_uint64("3", "18446744069414584321", "[391c25c2]", "20")
+ self.bid32_from_uint64("3", "18446744071562067968", "[391c25c2]", "20")
+ self.bid32_from_uint64("3", "18446744073709551615", "[391c25c2]", "20")
+ self.bid32_from_uint64("3", "2147483647", "[3420c49b]", "20")
+ self.bid32_from_uint64("3", "2147483648", "[3420c49b]", "20")
+ self.bid32_from_uint64("3", "4294967295", "[34418937]", "20")
+ self.bid32_from_uint64("3", "4294967297", "[34418937]", "20")
+ self.bid32_from_uint64("3", "9223372036854775806", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("3", "9223372036854775807", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("3", "9223372036854775810", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("3", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_uint64("4", "0", "[32800000]", "00")
+ self.bid32_from_uint64("4", "11111111", "[3310f447]", "20")
+ self.bid32_from_uint64("4", "1", "[32800001]", "00")
+ self.bid32_from_uint64("4", "18446744069414584319", "[391c25c2]", "20")
+ self.bid32_from_uint64("4", "18446744069414584321", "[391c25c2]", "20")
+ self.bid32_from_uint64("4", "18446744071562067968", "[391c25c2]", "20")
+ self.bid32_from_uint64("4", "18446744073709551615", "[391c25c2]", "20")
+ self.bid32_from_uint64("4", "2147483647", "[3420c49c]", "20")
+ self.bid32_from_uint64("4", "2147483648", "[3420c49c]", "20")
+ self.bid32_from_uint64("4", "4294967295", "[34418937]", "20")
+ self.bid32_from_uint64("4", "4294967297", "[34418937]", "20")
+ self.bid32_from_uint64("4", "9223372036854775806", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("4", "9223372036854775807", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("4", "9223372036854775810", "[6e2cbccc]", "20")
+ self.bid32_from_uint64("4", "9999999", "[6cb8967f]", "00")
+ self.bid32_from_uint64("2", "9999999325122695203", "[390f4240]", "20")
+ self.bid32_from_uint64("0", "9999999999978258726", "[390f4240]", "20")
+ self.bid32_from_uint64("1", "9999999999978258726", "[6e38967f]", "20")
+ }
+
+ private func bid32_from_uint64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseUInt64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_from_int32() {
+ self.bid64_from_int32("0", "1151048260", "[31c00000449b9a44]", "00")
+ self.bid64_from_int32("0", "1238620169", "[31c0000049d3d809]", "00")
+ self.bid64_from_int32("0", "1300695084", "[31c000004d87082c]", "00")
+ self.bid64_from_int32("0", "-1321821308", "[b1c000004ec9647c]", "00")
+ self.bid64_from_int32("0", "-1409558545", "[b1c0000054042811]", "00")
+ self.bid64_from_int32("0", "-1411393610", "[b1c000005420284a]", "00")
+ self.bid64_from_int32("0", "-1558551822", "[b1c000005ce59d0e]", "00")
+ self.bid64_from_int32("0", "-1680014258", "[b1c000006422fbb2]", "00")
+ self.bid64_from_int32("0", "1850397233", "[31c000006e4ad231]", "00")
+ self.bid64_from_int32("0", "1961604583", "[31c0000074ebb5e7]", "00")
+ self.bid64_from_int32("0", "1965388277", "[31c00000752571f5]", "00")
+ self.bid64_from_int32("0", "1983979873", "[31c0000076412161]", "00")
+ self.bid64_from_int32("0", "2042218777", "[31c0000079b9c919]", "00")
+ self.bid64_from_int32("0", "-2132132449", "[b1c000007f15c261]", "00")
+ self.bid64_from_int32("0", "-647085063", "[b1c000002691bc07]", "00")
+ self.bid64_from_int32("0", "665889169", "[31c0000027b0a991]", "00")
+ self.bid64_from_int32("0", "753240669", "[31c000002ce58a5d]", "00")
+ self.bid64_from_int32("0", "-765857262", "[b1c000002da60dee]", "00")
+ self.bid64_from_int32("0", "-768244481", "[b1c000002dca7b01]", "00")
+ self.bid64_from_int32("0", "988813101", "[31c000003af0172d]", "00")
+ }
+
+ private func bid64_from_int32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseInt32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = Decimal64(arg0)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_from_int64() {
+ self.bid64_from_int64("0", "1139264871891773575", "[32240c27c5fe833e]", "20")
+ self.bid64_from_int64("0", "-1750062212783916257", "[b22637ac1c871f2c]", "20")
+ self.bid64_from_int64("0", "-17891329", "[b1c0000001110001]", "00")
+ self.bid64_from_int64("0", "2097835747362605220", "[322773f87284c72d]", "20")
+ self.bid64_from_int64("0", "239600704763147600", "[32088327dcf41274]", "00")
+ self.bid64_from_int64("0", "-3699397591305768705", "[b22d24951f500e29]", "20")
+ self.bid64_from_int64("0", "-4021596677842024000", "[b22e499ef169a468]", "00")
+ self.bid64_from_int64("0", "5456652339267465168", "[323362cbe0584789]", "20")
+ self.bid64_from_int64("0", "-5681820659447707127", "[b2342f95f615779b]", "20")
+ self.bid64_from_int64("0", "589782372181576380", "[3214f40a17e2fed4]", "20")
+ self.bid64_from_int64("0", "-6247827353969653838", "[b236325daa0d23f6]", "20")
+ self.bid64_from_int64("0", "-6251581962144061921", "[b23635c7da23493e]", "20")
+ self.bid64_from_int64("0", "-6277401661671197000", "[b2364d437828071d]", "00")
+ self.bid64_from_int64("0", "63716561664156733", "[31f6a2fcce6e1d39]", "20")
+ self.bid64_from_int64("0", "6987444851531894805", "[3238d30b48436077]", "20")
+ self.bid64_from_int64("0", "-7058028164498851412", "[b239133d3d8f45a3]", "20")
+ self.bid64_from_int64("0", "-791485443906179333", "[b21c1e84a74a0921]", "20")
+ self.bid64_from_int64("0", "-7999593679867525011", "[b23c6b968ba2ce85]", "20")
+ self.bid64_from_int64("0", "875842350099016200", "[321f1dbd6191a6d2]", "00")
+ self.bid64_from_int64("0", "8840994672450821792", "[323f68d67ae99d06]", "20")
+ self.bid64_from_int64("0", "931846679491469800", "[6c811b189f29838a]", "00")
+ self.bid64_from_int64("0", "9781575579355265", "[6c72c04a89c04881]", "00")
+ self.bid64_from_int64("1", "1139264871891773575", "[32240c27c5fe833d]", "20")
+ self.bid64_from_int64("1", "-1750062212783916257", "[b22637ac1c871f2d]", "20")
+ self.bid64_from_int64("1", "2097835747362605220", "[322773f87284c72d]", "20")
+ self.bid64_from_int64("1", "239600704763147600", "[32088327dcf41274]", "00")
+ self.bid64_from_int64("1", "-3699397591305768705", "[b22d24951f500e29]", "20")
+ self.bid64_from_int64("1", "-4021596677842024000", "[b22e499ef169a468]", "00")
+ self.bid64_from_int64("1", "5456652339267465168", "[323362cbe0584789]", "20")
+ self.bid64_from_int64("1", "-5681820659447707127", "[b2342f95f615779c]", "20")
+ self.bid64_from_int64("1", "589782372181576380", "[3214f40a17e2fed3]", "20")
+ self.bid64_from_int64("1", "-6247827353969653838", "[b236325daa0d23f6]", "20")
+ self.bid64_from_int64("1", "-6251581962144061921", "[b23635c7da23493e]", "20")
+ self.bid64_from_int64("1", "-6277401661671197000", "[b2364d437828071d]", "00")
+ self.bid64_from_int64("1", "63716561664156733", "[31f6a2fcce6e1d39]", "20")
+ self.bid64_from_int64("1", "6987444851531894805", "[3238d30b48436076]", "20")
+ self.bid64_from_int64("1", "-7058028164498851412", "[b239133d3d8f45a4]", "20")
+ self.bid64_from_int64("1", "-791485443906179333", "[b21c1e84a74a0922]", "20")
+ self.bid64_from_int64("1", "-7999593679867525011", "[b23c6b968ba2ce86]", "20")
+ self.bid64_from_int64("1", "875842350099016200", "[321f1dbd6191a6d2]", "00")
+ self.bid64_from_int64("1", "8840994672450821792", "[323f68d67ae99d05]", "20")
+ self.bid64_from_int64("1", "931846679491469800", "[6c811b189f29838a]", "00")
+ self.bid64_from_int64("2", "1139264871891773575", "[32240c27c5fe833e]", "20")
+ self.bid64_from_int64("2", "-1750062212783916257", "[b22637ac1c871f2c]", "20")
+ self.bid64_from_int64("2", "2097835747362605220", "[322773f87284c72e]", "20")
+ self.bid64_from_int64("2", "239600704763147600", "[32088327dcf41274]", "00")
+ self.bid64_from_int64("2", "-3699397591305768705", "[b22d24951f500e28]", "20")
+ self.bid64_from_int64("2", "-4021596677842024000", "[b22e499ef169a468]", "00")
+ self.bid64_from_int64("2", "5456652339267465168", "[323362cbe058478a]", "20")
+ self.bid64_from_int64("2", "-5681820659447707127", "[b2342f95f615779b]", "20")
+ self.bid64_from_int64("2", "589782372181576380", "[3214f40a17e2fed4]", "20")
+ self.bid64_from_int64("2", "-6247827353969653838", "[b236325daa0d23f5]", "20")
+ self.bid64_from_int64("2", "-6251581962144061921", "[b23635c7da23493d]", "20")
+ self.bid64_from_int64("2", "-6277401661671197000", "[b2364d437828071d]", "00")
+ self.bid64_from_int64("2", "63716561664156733", "[31f6a2fcce6e1d3a]", "20")
+ self.bid64_from_int64("2", "6987444851531894805", "[3238d30b48436077]", "20")
+ self.bid64_from_int64("2", "-7058028164498851412", "[b239133d3d8f45a3]", "20")
+ self.bid64_from_int64("2", "-791485443906179333", "[b21c1e84a74a0921]", "20")
+ self.bid64_from_int64("2", "-7999593679867525011", "[b23c6b968ba2ce85]", "20")
+ self.bid64_from_int64("2", "875842350099016200", "[321f1dbd6191a6d2]", "00")
+ self.bid64_from_int64("2", "8840994672450821792", "[323f68d67ae99d06]", "20")
+ self.bid64_from_int64("2", "931846679491469800", "[6c811b189f29838a]", "00")
+ self.bid64_from_int64("3", "1139264871891773575", "[32240c27c5fe833d]", "20")
+ self.bid64_from_int64("3", "-1750062212783916257", "[b22637ac1c871f2c]", "20")
+ self.bid64_from_int64("3", "2097835747362605220", "[322773f87284c72d]", "20")
+ self.bid64_from_int64("3", "239600704763147600", "[32088327dcf41274]", "00")
+ self.bid64_from_int64("3", "-3699397591305768705", "[b22d24951f500e28]", "20")
+ self.bid64_from_int64("3", "-4021596677842024000", "[b22e499ef169a468]", "00")
+ self.bid64_from_int64("3", "5456652339267465168", "[323362cbe0584789]", "20")
+ self.bid64_from_int64("3", "-5681820659447707127", "[b2342f95f615779b]", "20")
+ self.bid64_from_int64("3", "589782372181576380", "[3214f40a17e2fed3]", "20")
+ self.bid64_from_int64("3", "-6247827353969653838", "[b236325daa0d23f5]", "20")
+ self.bid64_from_int64("3", "-6251581962144061921", "[b23635c7da23493d]", "20")
+ self.bid64_from_int64("3", "-6277401661671197000", "[b2364d437828071d]", "00")
+ self.bid64_from_int64("3", "63716561664156733", "[31f6a2fcce6e1d39]", "20")
+ self.bid64_from_int64("3", "6987444851531894805", "[3238d30b48436076]", "20")
+ self.bid64_from_int64("3", "-7058028164498851412", "[b239133d3d8f45a3]", "20")
+ self.bid64_from_int64("3", "-791485443906179333", "[b21c1e84a74a0921]", "20")
+ self.bid64_from_int64("3", "-7999593679867525011", "[b23c6b968ba2ce85]", "20")
+ self.bid64_from_int64("3", "875842350099016200", "[321f1dbd6191a6d2]", "00")
+ self.bid64_from_int64("3", "8840994672450821792", "[323f68d67ae99d05]", "20")
+ self.bid64_from_int64("3", "931846679491469800", "[6c811b189f29838a]", "00")
+ self.bid64_from_int64("4", "1139264871891773575", "[32240c27c5fe833e]", "20")
+ self.bid64_from_int64("4", "-1750062212783916257", "[b22637ac1c871f2c]", "20")
+ self.bid64_from_int64("4", "2097835747362605220", "[322773f87284c72d]", "20")
+ self.bid64_from_int64("4", "239600704763147600", "[32088327dcf41274]", "00")
+ self.bid64_from_int64("4", "-3699397591305768705", "[b22d24951f500e29]", "20")
+ self.bid64_from_int64("4", "-4021596677842024000", "[b22e499ef169a468]", "00")
+ self.bid64_from_int64("4", "5456652339267465168", "[323362cbe0584789]", "20")
+ self.bid64_from_int64("4", "-5681820659447707127", "[b2342f95f615779b]", "20")
+ self.bid64_from_int64("4", "589782372181576380", "[3214f40a17e2fed4]", "20")
+ self.bid64_from_int64("4", "-6247827353969653838", "[b236325daa0d23f6]", "20")
+ self.bid64_from_int64("4", "-6251581962144061921", "[b23635c7da23493e]", "20")
+ self.bid64_from_int64("4", "-6277401661671197000", "[b2364d437828071d]", "00")
+ self.bid64_from_int64("4", "63716561664156733", "[31f6a2fcce6e1d39]", "20")
+ self.bid64_from_int64("4", "6987444851531894805", "[3238d30b48436077]", "20")
+ self.bid64_from_int64("4", "-7058028164498851412", "[b239133d3d8f45a3]", "20")
+ self.bid64_from_int64("4", "-791485443906179333", "[b21c1e84a74a0921]", "20")
+ self.bid64_from_int64("4", "-7999593679867525011", "[b23c6b968ba2ce85]", "20")
+ self.bid64_from_int64("4", "875842350099016200", "[321f1dbd6191a6d2]", "00")
+ self.bid64_from_int64("4", "8840994672450821792", "[323f68d67ae99d06]", "20")
+ self.bid64_from_int64("4", "931846679491469800", "[6c811b189f29838a]", "00")
+ self.bid64_from_int64("0", "999999999999999999", "[32238d7ea4c68000]", "20")
+ self.bid64_from_int64("0", "99999999999999995", "[32038d7ea4c68000]", "20")
+ self.bid64_from_int64("0", "-99999999999999999", "[b2038d7ea4c68000]", "20")
+ self.bid64_from_int64("0", "-99999999999999995", "[b2038d7ea4c68000]", "20")
+ self.bid64_from_int64("1", "999999999999999999", "[6c8386f26fc0ffff]", "20")
+ self.bid64_from_int64("1", "99999999999999995", "[6c7b86f26fc0ffff]", "20")
+ self.bid64_from_int64("1", "-99999999999999999", "[b2038d7ea4c68000]", "20")
+ self.bid64_from_int64("1", "-99999999999999995", "[b2038d7ea4c68000]", "20")
+ self.bid64_from_int64("2", "999999999999999999", "[32238d7ea4c68000]", "20")
+ self.bid64_from_int64("2", "99999999999999995", "[32038d7ea4c68000]", "20")
+ self.bid64_from_int64("2", "-99999999999999999", "[ec7b86f26fc0ffff]", "20")
+ self.bid64_from_int64("2", "-99999999999999995", "[ec7b86f26fc0ffff]", "20")
+ self.bid64_from_int64("3", "999999999999999999", "[6c8386f26fc0ffff]", "20")
+ self.bid64_from_int64("3", "99999999999999995", "[6c7b86f26fc0ffff]", "20")
+ self.bid64_from_int64("3", "-99999999999999999", "[ec7b86f26fc0ffff]", "20")
+ self.bid64_from_int64("3", "-99999999999999995", "[ec7b86f26fc0ffff]", "20")
+ self.bid64_from_int64("4", "999999999999999999", "[32238d7ea4c68000]", "20")
+ self.bid64_from_int64("4", "99999999999999995", "[32038d7ea4c68000]", "20")
+ self.bid64_from_int64("4", "-99999999999999999", "[b2038d7ea4c68000]", "20")
+ self.bid64_from_int64("4", "-99999999999999995", "[b2038d7ea4c68000]", "20")
+ }
+
+ private func bid64_from_int64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseInt64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_from_uint32() {
+ self.bid64_from_uint32("0", "1043759789", "[31c000003e3682ad]", "00")
+ self.bid64_from_uint32("0", "1358431605", "[31c0000050f80575]", "00")
+ self.bid64_from_uint32("0", "1444948445", "[31c00000562029dd]", "00")
+ self.bid64_from_uint32("0", "1547363995", "[31c000005c3ae69b]", "00")
+ self.bid64_from_uint32("0", "1589394791", "[31c000005ebc3d67]", "00")
+ self.bid64_from_uint32("0", "2145346476", "[31c000007fdf63ac]", "00")
+ self.bid64_from_uint32("0", "2157129534", "[31c0000080932f3e]", "00")
+ self.bid64_from_uint32("0", "2209767582", "[31c0000083b6609e]", "00")
+ self.bid64_from_uint32("0", "2231149582", "[31c0000084fca40e]", "00")
+ self.bid64_from_uint32("0", "2333504895", "[31c000008b16757f]", "00")
+ self.bid64_from_uint32("0", "3016223950", "[31c00000b3c7ecce]", "00")
+ self.bid64_from_uint32("0", "3285489315", "[31c00000c3d496a3]", "00")
+ self.bid64_from_uint32("0", "3481845618", "[31c00000cf88bf72]", "00")
+ self.bid64_from_uint32("0", "3543999599", "[31c00000d33d246f]", "00")
+ self.bid64_from_uint32("0", "3773691030", "[31c00000e0edf496]", "00")
+ self.bid64_from_uint32("0", "546176994", "[31c00000208dffe2]", "00")
+ self.bid64_from_uint32("0", "637658463", "[31c000002601e55f]", "00")
+ self.bid64_from_uint32("0", "651472848", "[31c0000026d4afd0]", "00")
+ self.bid64_from_uint32("0", "694329569", "[31c000002962a0e1]", "00")
+ self.bid64_from_uint32("0", "876367805", "[31c00000343c4fbd]", "00")
+ }
+
+ private func bid64_from_uint32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseUInt32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = Decimal64(arg0)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_from_uint64() {
+ self.bid64_from_uint64("0", "10789262222447919566", "[3243d54716373bb8]", "20")
+ self.bid64_from_uint64("0", "11490364541146872629", "[3244150ae5ae757f]", "20")
+ self.bid64_from_uint64("0", "12066744217364604752", "[32444976c844640c]", "20")
+ self.bid64_from_uint64("0", "14506243576798722737", "[32452755cd8ac300]", "20")
+ self.bid64_from_uint64("0", "14775268902804503408", "[32453fcd8970f602]", "20")
+ self.bid64_from_uint64("0", "18152794317206311497", "[324672fcadb21eb7]", "20")
+ self.bid64_from_uint64("0", "2209388159661393197", "[3227d96d446d7551]", "20")
+ self.bid64_from_uint64("0", "3019588970190590771", "[322aba4cd7ef96ff]", "20")
+ self.bid64_from_uint64("0", "3099099504327532098", "[322b029d55143b6c]", "20")
+ self.bid64_from_uint64("0", "318054556378635000", "[320b4cb078857c6e]", "00")
+ self.bid64_from_uint64("0", "4399244053147070808", "[322fa116d3116dbf]", "20")
+ self.bid64_from_uint64("0", "4417719154392039", "[31cfb1e464ea3be7]", "00")
+ self.bid64_from_uint64("0", "5039469199127399108", "[3231e75edb787367]", "20")
+ self.bid64_from_uint64("0", "519118078830965726", "[32127159f6da1e99]", "20")
+ self.bid64_from_uint64("0", "6204429330282677880", "[32360ae54643f8b6]", "20")
+ self.bid64_from_uint64("0", "631528707223501400", "[32166fb85a985e06]", "00")
+ self.bid64_from_uint64("0", "81786902633381280", "[31fd0e79b7dfcc90]", "00")
+ self.bid64_from_uint64("0", "833178641504860600", "[321d99b7319d079e]", "00")
+ self.bid64_from_uint64("0", "9007199254740994", "[6c70000000000002]", "00")
+ self.bid64_from_uint64("0", "9279938340154311000", "[6c88f80e044d6bc7]", "00")
+ self.bid64_from_uint64("0", "9830691346977087921", "[6c8aecf631a21140]", "20")
+ self.bid64_from_uint64("1", "10789262222447919566", "[3243d54716373bb7]", "20")
+ self.bid64_from_uint64("1", "11490364541146872629", "[3244150ae5ae757f]", "20")
+ self.bid64_from_uint64("1", "12066744217364604752", "[32444976c844640c]", "20")
+ self.bid64_from_uint64("1", "14506243576798722737", "[32452755cd8ac300]", "20")
+ self.bid64_from_uint64("1", "14775268902804503408", "[32453fcd8970f602]", "20")
+ self.bid64_from_uint64("1", "18152794317206311497", "[324672fcadb21eb7]", "20")
+ self.bid64_from_uint64("1", "2209388159661393197", "[3227d96d446d7551]", "20")
+ self.bid64_from_uint64("1", "3019588970190590771", "[322aba4cd7ef96fe]", "20")
+ self.bid64_from_uint64("1", "3099099504327532098", "[322b029d55143b6c]", "20")
+ self.bid64_from_uint64("1", "318054556378635000", "[320b4cb078857c6e]", "00")
+ self.bid64_from_uint64("1", "4399244053147070808", "[322fa116d3116dbe]", "20")
+ self.bid64_from_uint64("1", "4417719154392039", "[31cfb1e464ea3be7]", "00")
+ self.bid64_from_uint64("1", "5039469199127399108", "[3231e75edb787367]", "20")
+ self.bid64_from_uint64("1", "519118078830965726", "[32127159f6da1e99]", "20")
+ self.bid64_from_uint64("1", "6204429330282677880", "[32360ae54643f8b5]", "20")
+ self.bid64_from_uint64("1", "631528707223501400", "[32166fb85a985e06]", "00")
+ self.bid64_from_uint64("1", "81786902633381280", "[31fd0e79b7dfcc90]", "00")
+ self.bid64_from_uint64("1", "833178641504860600", "[321d99b7319d079e]", "00")
+ self.bid64_from_uint64("1", "9279938340154311000", "[6c88f80e044d6bc7]", "00")
+ self.bid64_from_uint64("1", "9830691346977087921", "[6c8aecf631a2113f]", "20")
+ self.bid64_from_uint64("2", "10789262222447919566", "[3243d54716373bb8]", "20")
+ self.bid64_from_uint64("2", "11490364541146872629", "[3244150ae5ae7580]", "20")
+ self.bid64_from_uint64("2", "12066744217364604752", "[32444976c844640d]", "20")
+ self.bid64_from_uint64("2", "14506243576798722737", "[32452755cd8ac301]", "20")
+ self.bid64_from_uint64("2", "14775268902804503408", "[32453fcd8970f603]", "20")
+ self.bid64_from_uint64("2", "18152794317206311497", "[324672fcadb21eb8]", "20")
+ self.bid64_from_uint64("2", "2209388159661393197", "[3227d96d446d7552]", "20")
+ self.bid64_from_uint64("2", "3019588970190590771", "[322aba4cd7ef96ff]", "20")
+ self.bid64_from_uint64("2", "3099099504327532098", "[322b029d55143b6d]", "20")
+ self.bid64_from_uint64("2", "318054556378635000", "[320b4cb078857c6e]", "00")
+ self.bid64_from_uint64("2", "4399244053147070808", "[322fa116d3116dbf]", "20")
+ self.bid64_from_uint64("2", "4417719154392039", "[31cfb1e464ea3be7]", "00")
+ self.bid64_from_uint64("2", "5039469199127399108", "[3231e75edb787368]", "20")
+ self.bid64_from_uint64("2", "519118078830965726", "[32127159f6da1e9a]", "20")
+ self.bid64_from_uint64("2", "6204429330282677880", "[32360ae54643f8b6]", "20")
+ self.bid64_from_uint64("2", "631528707223501400", "[32166fb85a985e06]", "00")
+ self.bid64_from_uint64("2", "81786902633381280", "[31fd0e79b7dfcc90]", "00")
+ self.bid64_from_uint64("2", "833178641504860600", "[321d99b7319d079e]", "00")
+ self.bid64_from_uint64("2", "9279938340154311000", "[6c88f80e044d6bc7]", "00")
+ self.bid64_from_uint64("2", "9830691346977087921", "[6c8aecf631a21140]", "20")
+ self.bid64_from_uint64("3", "10789262222447919566", "[3243d54716373bb7]", "20")
+ self.bid64_from_uint64("3", "11490364541146872629", "[3244150ae5ae757f]", "20")
+ self.bid64_from_uint64("3", "12066744217364604752", "[32444976c844640c]", "20")
+ self.bid64_from_uint64("3", "14506243576798722737", "[32452755cd8ac300]", "20")
+ self.bid64_from_uint64("3", "14775268902804503408", "[32453fcd8970f602]", "20")
+ self.bid64_from_uint64("3", "18152794317206311497", "[324672fcadb21eb7]", "20")
+ self.bid64_from_uint64("3", "2209388159661393197", "[3227d96d446d7551]", "20")
+ self.bid64_from_uint64("3", "3019588970190590771", "[322aba4cd7ef96fe]", "20")
+ self.bid64_from_uint64("3", "3099099504327532098", "[322b029d55143b6c]", "20")
+ self.bid64_from_uint64("3", "318054556378635000", "[320b4cb078857c6e]", "00")
+ self.bid64_from_uint64("3", "4399244053147070808", "[322fa116d3116dbe]", "20")
+ self.bid64_from_uint64("3", "4417719154392039", "[31cfb1e464ea3be7]", "00")
+ self.bid64_from_uint64("3", "5039469199127399108", "[3231e75edb787367]", "20")
+ self.bid64_from_uint64("3", "519118078830965726", "[32127159f6da1e99]", "20")
+ self.bid64_from_uint64("3", "6204429330282677880", "[32360ae54643f8b5]", "20")
+ self.bid64_from_uint64("3", "631528707223501400", "[32166fb85a985e06]", "00")
+ self.bid64_from_uint64("3", "81786902633381280", "[31fd0e79b7dfcc90]", "00")
+ self.bid64_from_uint64("3", "833178641504860600", "[321d99b7319d079e]", "00")
+ self.bid64_from_uint64("3", "9279938340154311000", "[6c88f80e044d6bc7]", "00")
+ self.bid64_from_uint64("3", "9830691346977087921", "[6c8aecf631a2113f]", "20")
+ self.bid64_from_uint64("4", "10789262222447919566", "[3243d54716373bb8]", "20")
+ self.bid64_from_uint64("4", "11490364541146872629", "[3244150ae5ae757f]", "20")
+ self.bid64_from_uint64("4", "12066744217364604752", "[32444976c844640c]", "20")
+ self.bid64_from_uint64("4", "14506243576798722737", "[32452755cd8ac300]", "20")
+ self.bid64_from_uint64("4", "14775268902804503408", "[32453fcd8970f602]", "20")
+ self.bid64_from_uint64("4", "18152794317206311497", "[324672fcadb21eb7]", "20")
+ self.bid64_from_uint64("4", "2209388159661393197", "[3227d96d446d7551]", "20")
+ self.bid64_from_uint64("4", "3019588970190590771", "[322aba4cd7ef96ff]", "20")
+ self.bid64_from_uint64("4", "3099099504327532098", "[322b029d55143b6c]", "20")
+ self.bid64_from_uint64("4", "318054556378635000", "[320b4cb078857c6e]", "00")
+ self.bid64_from_uint64("4", "4399244053147070808", "[322fa116d3116dbf]", "20")
+ self.bid64_from_uint64("4", "4417719154392039", "[31cfb1e464ea3be7]", "00")
+ self.bid64_from_uint64("4", "5039469199127399108", "[3231e75edb787367]", "20")
+ self.bid64_from_uint64("4", "519118078830965726", "[32127159f6da1e99]", "20")
+ self.bid64_from_uint64("4", "6204429330282677880", "[32360ae54643f8b6]", "20")
+ self.bid64_from_uint64("4", "631528707223501400", "[32166fb85a985e06]", "00")
+ self.bid64_from_uint64("4", "81786902633381280", "[31fd0e79b7dfcc90]", "00")
+ self.bid64_from_uint64("4", "833178641504860600", "[321d99b7319d079e]", "00")
+ self.bid64_from_uint64("4", "9279938340154311000", "[6c88f80e044d6bc7]", "00")
+ self.bid64_from_uint64("4", "9830691346977087921", "[6c8aecf631a21140]", "20")
+ self.bid64_from_uint64("0", "9999999999999999999", "[32438d7ea4c68000]", "20")
+ self.bid64_from_uint64("0", "99999999999999995", "[32038d7ea4c68000]", "20")
+ self.bid64_from_uint64("1", "9999999999999999999", "[6c8b86f26fc0ffff]", "20")
+ self.bid64_from_uint64("1", "99999999999999995", "[6c7b86f26fc0ffff]", "20")
+ self.bid64_from_uint64("2", "9999999999999999999", "[32438d7ea4c68000]", "20")
+ self.bid64_from_uint64("2", "99999999999999995", "[32038d7ea4c68000]", "20")
+ self.bid64_from_uint64("3", "9999999999999999999", "[6c8b86f26fc0ffff]", "20")
+ self.bid64_from_uint64("3", "99999999999999995", "[6c7b86f26fc0ffff]", "20")
+ self.bid64_from_uint64("4", "9999999999999999999", "[32438d7ea4c68000]", "20")
+ self.bid64_from_uint64("4", "99999999999999995", "[32038d7ea4c68000]", "20")
+ }
+
+ private func bid64_from_uint64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseUInt64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64(arg0, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_from_int32() {
+ self.bid128_from_int32("0", "-1250716900", "[b040000000000000000000004a8c6ce4]", "00")
+ self.bid128_from_int32("0", "-1375453304", "[b0400000000000000000000051fbc078]", "00")
+ self.bid128_from_int32("0", "1450740614", "[30400000000000000000000056788b86]", "00")
+ self.bid128_from_int32("0", "-1834423832", "[b040000000000000000000006d571618]", "00")
+ self.bid128_from_int32("0", "1930174213", "[304000000000000000000000730c1f05]", "00")
+ self.bid128_from_int32("0", "1947153827", "[304000000000000000000000740f35a3]", "00")
+ self.bid128_from_int32("0", "206409795", "[3040000000000000000000000c4d9043]", "00")
+ self.bid128_from_int32("0", "2103044481", "[3040000000000000000000007d59e981]", "00")
+ self.bid128_from_int32("0", "-244968231", "[b040000000000000000000000e99eb27]", "00")
+ self.bid128_from_int32("0", "-328472007", "[b04000000000000000000000139415c7]", "00")
+ self.bid128_from_int32("0", "-430827320", "[b0400000000000000000000019ade738]", "00")
+ self.bid128_from_int32("0", "472411624", "[3040000000000000000000001c286de8]", "00")
+ self.bid128_from_int32("0", "-503478515", "[b040000000000000000000001e0278f3]", "00")
+ self.bid128_from_int32("0", "620564199", "[30400000000000000000000024fd0ee7]", "00")
+ self.bid128_from_int32("0", "648685195", "[30400000000000000000000026aa268b]", "00")
+ self.bid128_from_int32("0", "734426893", "[3040000000000000000000002bc6770d]", "00")
+ self.bid128_from_int32("0", "774990435", "[3040000000000000000000002e316a63]", "00")
+ self.bid128_from_int32("0", "797130594", "[3040000000000000000000002f833f62]", "00")
+ self.bid128_from_int32("0", "-893748152", "[b04000000000000000000000354583b8]", "00")
+ self.bid128_from_int32("0", "-958871488", "[b04000000000000000000000392737c0]", "00")
+ }
+
+ private func bid128_from_int32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseInt32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = Decimal128(arg0)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_from_int64() {
+ self.bid128_from_int64("0", "-1297714641311568497", "[b0400000000000001202689737331271]", "00")
+ self.bid128_from_int64("0", "-1382533918512158604", "[b040000000000000132fbf461ed8978c]", "00")
+ self.bid128_from_int64("0", "1991200058281483048", "[30400000000000001ba229e7369adb28]", "00")
+ self.bid128_from_int64("0", "-1998782831704824207", "[b0400000000000001bbd1a653aea598f]", "00")
+ self.bid128_from_int64("0", "2081344241858484150", "[30400000000000001ce26b8f7f4797b6]", "00")
+ self.bid128_from_int64("0", "-3494168784785967941", "[b040000000000000307dc7ff326d0b45]", "00")
+ self.bid128_from_int64("0", "-3623475514305027548", "[b04000000000000032492bc8427a1ddc]", "00")
+ self.bid128_from_int64("0", "-3719337100671242603", "[b040000000000000339dbd631d70d16b]", "00")
+ self.bid128_from_int64("0", "4134085355817711631", "[3040000000000000395f38ba50a8b80f]", "00")
+ self.bid128_from_int64("0", "-4543384426972292615", "[b0400000000000003f0d58107fb9a607]", "00")
+ self.bid128_from_int64("0", "-456313642285820771", "[b040000000000000065526d70a9c6b63]", "00")
+ self.bid128_from_int64("0", "572333114425411975", "[304000000000000007f155ef6a850987]", "00")
+ self.bid128_from_int64("0", "-5896812445967530814", "[b04000000000000051d5afad4cff3b3e]", "00")
+ self.bid128_from_int64("0", "6084829525942336602", "[30400000000000005471a8370c99fc5a]", "00")
+ self.bid128_from_int64("0", "6343298205297819548", "[30400000000000005807ec1c07263f9c]", "00")
+ self.bid128_from_int64("0", "-640590259490231037", "[b04000000000000008e3d5726f7d92fd]", "00")
+ self.bid128_from_int64("0", "7071067091834809443", "[304000000000000062217a0e4fc4ac63]", "00")
+ self.bid128_from_int64("0", "7575924962073745274", "[30400000000000006923179d316b977a]", "00")
+ self.bid128_from_int64("0", "-8534495841839544214", "[b04000000000000076709ec01de4f796]", "00")
+ self.bid128_from_int64("0", "945634496444636363", "[30400000000000000d1f919077f01ccb]", "00")
+ }
+
+ private func bid128_from_int64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseInt64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = Decimal128(arg0)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_from_uint32() {
+ self.bid128_from_uint32("0", "103397952", "[3040000000000000000000000629ba40]", "00")
+ self.bid128_from_uint32("0", "1330244968", "[3040000000000000000000004f49ed68]", "00")
+ self.bid128_from_uint32("0", "147908358", "[30400000000000000000000008d0e706]", "00")
+ self.bid128_from_uint32("0", "1557964421", "[3040000000000000000000005cdca685]", "00")
+ self.bid128_from_uint32("0", "1701773569", "[304000000000000000000000656f0101]", "00")
+ self.bid128_from_uint32("0", "1726400552", "[30400000000000000000000066e6c828]", "00")
+ self.bid128_from_uint32("0", "1970394217", "[3040000000000000000000007571d469]", "00")
+ self.bid128_from_uint32("0", "2069079581", "[3040000000000000000000007b53a61d]", "00")
+ self.bid128_from_uint32("0", "2252194484", "[304000000000000000000000863dc2b4]", "00")
+ self.bid128_from_uint32("0", "2302595981", "[304000000000000000000000893ed38d]", "00")
+ self.bid128_from_uint32("0", "2670922056", "[3040000000000000000000009f330948]", "00")
+ self.bid128_from_uint32("0", "2799702556", "[304000000000000000000000a6e0121c]", "00")
+ self.bid128_from_uint32("0", "3112874904", "[304000000000000000000000b98ab398]", "00")
+ self.bid128_from_uint32("0", "3346272456", "[304000000000000000000000c77410c8]", "00")
+ self.bid128_from_uint32("0", "3493448917", "[304000000000000000000000d039ccd5]", "00")
+ self.bid128_from_uint32("0", "3526470664", "[304000000000000000000000d231ac08]", "00")
+ self.bid128_from_uint32("0", "3688739202", "[304000000000000000000000dbddb182]", "00")
+ self.bid128_from_uint32("0", "3965430364", "[304000000000000000000000ec5baa5c]", "00")
+ self.bid128_from_uint32("0", "4081525952", "[304000000000000000000000f34724c0]", "00")
+ self.bid128_from_uint32("0", "898117571", "[30400000000000000000000035882fc3]", "00")
+ }
+
+ private func bid128_from_uint32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseUInt32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = Decimal128(arg0)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_from_uint64() {
+ self.bid128_from_uint64("0", "12838043691698676900", "[3040000000000000b229e4b7fea4e4a4]", "00")
+ self.bid128_from_uint64("0", "13039381436817401260", "[3040000000000000b4f53054c852e5ac]", "00")
+ self.bid128_from_uint64("0", "14329515802341157305", "[3040000000000000c6dcaab381e429b9]", "00")
+ self.bid128_from_uint64("0", "14891321118899701533", "[3040000000000000cea899a8f84a071d]", "00")
+ self.bid128_from_uint64("0", "15299397707630953249", "[3040000000000000d4526127c8c4c321]", "00")
+ self.bid128_from_uint64("0", "155043678304746152", "[30400000000000000226d3676a063aa8]", "00")
+ self.bid128_from_uint64("0", "15813025721173857557", "[3040000000000000db73271cc6aed515]", "00")
+ self.bid128_from_uint64("0", "15951128221084643628", "[3040000000000000dd5dca9ab875712c]", "00")
+ self.bid128_from_uint64("0", "16512022100427752653", "[3040000000000000e5267c9dab6544cd]", "00")
+ self.bid128_from_uint64("0", "17242795393441160067", "[3040000000000000ef4ab70dd8cd5b83]", "00")
+ self.bid128_from_uint64("0", "17470592975898584298", "[3040000000000000f27403bf97dea4ea]", "00")
+ self.bid128_from_uint64("0", "18144984012892654914", "[3040000000000000fbcfeed2cf9bcd42]", "00")
+ self.bid128_from_uint64("0", "2714021962226553302", "[304000000000000025aa24985b1f51d6]", "00")
+ self.bid128_from_uint64("0", "2858886672715936018", "[304000000000000027acce482454f112]", "00")
+ self.bid128_from_uint64("0", "2973717257055240449", "[30400000000000002944c417013a0101]", "00")
+ self.bid128_from_uint64("0", "3783918067584438023", "[304000000000000034832d6f358d8f07]", "00")
+ self.bid128_from_uint64("0", "6135131516986689308", "[304000000000000055245d9c004b871c]", "00")
+ self.bid128_from_uint64("0", "6826231342173745096", "[30400000000000005ebba53d20e76fc8]", "00")
+ self.bid128_from_uint64("0", "8530537025811641231", "[304000000000000076628e3a6ed1f38f]", "00")
+ self.bid128_from_uint64("0", "9069128140613606892", "[30400000000000007ddc03fe5bc5ddec]", "00")
+ }
+
+ private func bid128_from_uint64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseUInt64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = Decimal128(arg0)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelFromStringTests.swift b/Tests/DecimalTests/Intel - generated/IntelFromStringTests.swift
new file mode 100644
index 0000000..c7884ce
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelFromStringTests.swift
@@ -0,0 +1,303 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelFromStringTests: XCTestCase, IntelMixin {
+
+ func test_bid32_from_string() {
+ self.bid32_from_string("0", "1.0000015", "[2f8f4242]", "20")
+ self.bid32_from_string("0", "1.0", "[3200000a]", "00")
+ self.bid32_from_string("0", "-1.0", "[b200000a]", "00")
+ self.bid32_from_string("0", "1.0e-96", "[0200000a]", "00")
+ self.bid32_from_string("0", "-1.0e-96", "[8200000a]", "00")
+ self.bid32_from_string("0", "9.999999e-95", "[6018967f]", "00")
+ self.bid32_from_string("0", "-9.999999e-95", "[e018967f]", "00")
+ self.bid32_from_string("0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_from_string("0", "-9.999999e96", "[f7f8967f]", "00")
+ self.bid32_from_string("0", "+inf", "[78000000]", "00")
+ self.bid32_from_string("0", "+Inf", "[78000000]", "00")
+ self.bid32_from_string("0", "+INF", "[78000000]", "00")
+ self.bid32_from_string("0", "+NaN", "[7c000000]", "00")
+ self.bid32_from_string("0", "+NAN", "[7c000000]", "00")
+ self.bid32_from_string("0", "-nan", "[fc000000]", "00")
+ self.bid32_from_string("0", "+SNaN", "[7e000000]", "00")
+ self.bid32_from_string("0", "+SNAN", "[7e000000]", "00")
+ self.bid32_from_string("0", "-snan", "[fe000000]", "00")
+ self.bid32_from_string("1", "1.0000015", "[2f8f4241]", "20")
+ self.bid32_from_string("2", "1.0000015", "[2f8f4242]", "20")
+ self.bid32_from_string("3", "1.0000015", "[2f8f4241]", "20")
+ self.bid32_from_string("4", "1.0000015", "[2f8f4242]", "20")
+ self.bid32_from_string("2", "-9.9999995", "[ebf8967f]", "20")
+ self.bid32_from_string("1", "-9.9999995", "[b00f4240]", "20")
+ self.bid32_from_string("0", "9.9999995", "[300f4240]", "20")
+ self.bid32_from_string("2", "9.9999995", "[300f4240]", "20")
+ self.bid32_from_string("4", "9.9999995", "[300f4240]", "20")
+ self.bid32_from_string("3", "9.9999995", "[6bf8967f]", "20")
+ self.bid32_from_string("1", "9.9999995", "[6bf8967f]", "20")
+ self.bid32_from_string("0", ".0", "[32000000]", "00")
+ self.bid32_from_string("0", "000.0", "[32000000]", "00")
+ self.bid32_from_string("0", "0.0000000000000000000000000000000000001001", "[1e8003e9]", "00")
+ self.bid32_from_string("1", "0.0000000000000000000000000000000000001001", "[1e8003e9]", "00")
+ self.bid32_from_string("0", "0.", "[32800000]", "00")
+ self.bid32_from_string("0", "1.", "[32800001]", "00")
+ self.bid32_from_string("0", "a", "[7c000000]", "00")
+ self.bid32_from_string("0", "..", "[7c000000]", "00")
+ self.bid32_from_string("0", "1..", "[7c000000]", "00")
+ self.bid32_from_string("0", "0.0.", "[7c000000]", "00")
+ self.bid32_from_string("0", "1.0000005", "[2f8f4240]", "20")
+ self.bid32_from_string("2", "1.0000005", "[2f8f4241]", "20")
+ self.bid32_from_string("4", "1.0000005", "[2f8f4241]", "20")
+ self.bid32_from_string("3", "1.0000005", "[2f8f4240]", "20")
+ self.bid32_from_string("1", "1.0000005", "[2f8f4240]", "20")
+ self.bid32_from_string("0", "1.00000051", "[2f8f4241]", "20")
+ self.bid32_from_string("2", "1.00000051", "[2f8f4241]", "20")
+ self.bid32_from_string("4", "1.00000051", "[2f8f4241]", "20")
+ self.bid32_from_string("3", "1.00000051", "[2f8f4240]", "20")
+ self.bid32_from_string("1", "1.00000051", "[2f8f4240]", "20")
+ self.bid32_from_string("0", "1.0000004999999999999999", "[2f8f4240]", "20")
+ self.bid32_from_string("2", "1.0000004999999999999999", "[2f8f4241]", "20")
+ self.bid32_from_string("1", "1.0000004999999999999999", "[2f8f4240]", "20")
+ self.bid32_from_string("4", "1.0000004999999999999999", "[2f8f4240]", "20")
+ self.bid32_from_string("3", "1.0000004999999999999999", "[2f8f4240]", "20")
+ self.bid32_from_string("0", "1.1E2", "[3300000b]", "00")
+ self.bid32_from_string("0", "1.1P2", "[7c000000]", "00")
+ self.bid32_from_string("0", "1.1EE", "[7c000000]", "00")
+ self.bid32_from_string("0", "1.1P-2", "[7c000000]", "00")
+ self.bid32_from_string("0", "1.1E-2E", "[7c000000]", "00")
+ self.bid32_from_string("0", "1.0000015", "[2f8f4242]", "20")
+ self.bid32_from_string("2", "1.0000015", "[2f8f4242]", "20")
+ self.bid32_from_string("4", "1.0000015", "[2f8f4242]", "20")
+ self.bid32_from_string("3", "1.0000015", "[2f8f4241]", "20")
+ self.bid32_from_string("1", "1.0000015", "[2f8f4241]", "20")
+ self.bid32_from_string("0", "+INF", "[78000000]", "00")
+ self.bid32_from_string("0", "+INFi", "[7c000000]", "00")
+ self.bid32_from_string("0", "+NAN", "[7c000000]", "00")
+ self.bid32_from_string("0", "+SNAN", "[7e000000]", "00")
+ self.bid32_from_string("0", "+SNAN", "[7e000000]", "00")
+ self.bid32_from_string("0", "+inf", "[78000000]", "00")
+ self.bid32_from_string("0", "+nan", "[7c000000]", "00")
+ self.bid32_from_string("0", "+snan", "[7e000000]", "00")
+ self.bid32_from_string("0", "+INFINITY", "[78000000]", "00")
+ self.bid32_from_string("0", "+infinity", "[78000000]", "00")
+ self.bid32_from_string("0", "+INFiNITY", "[78000000]", "00")
+ self.bid32_from_string("0", "+INFINITYi", "[7c000000]", "00")
+ self.bid32_from_string("0", "INF", "[78000000]", "00")
+ self.bid32_from_string("0", "INFi", "[7c000000]", "00")
+ self.bid32_from_string("0", "NAN", "[7c000000]", "00")
+ self.bid32_from_string("0", "SNAN", "[7e000000]", "00")
+ self.bid32_from_string("0", "SNAN", "[7e000000]", "00")
+ self.bid32_from_string("0", "inf", "[78000000]", "00")
+ self.bid32_from_string("0", "nan", "[7c000000]", "00")
+ self.bid32_from_string("0", "snan", "[7e000000]", "00")
+ self.bid32_from_string("0", "INFINITY", "[78000000]", "00")
+ self.bid32_from_string("0", "infinity", "[78000000]", "00")
+ self.bid32_from_string("0", "INFiNITY", "[78000000]", "00")
+ self.bid32_from_string("0", "INFINITYi", "[7c000000]", "00")
+ self.bid32_from_string("0", "1E-102", "[00000000]", "30")
+ }
+
+ private func bid32_from_string(
+ _ _rounding: String,
+ _ arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_parse(arg0, rounding, &status, result: result)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_from_string() {
+ self.bid64_from_string("0", "12345678901234565", "1234567890123456e1", "20")
+ self.bid64_from_string("0", "+Inf", "[7800000000000000]", "00")
+ self.bid64_from_string("0", "+NaN", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "+SNaN", "[7e00000000000000]", "00")
+ self.bid64_from_string("1", "12345678901234565", "1234567890123456e1", "20")
+ self.bid64_from_string("2", "12345678901234565", "1234567890123457e1", "20")
+ self.bid64_from_string("3", "12345678901234565", "1234567890123456e1", "20")
+ self.bid64_from_string("4", "12345678901234565", "1234567890123457e1", "20")
+ self.bid64_from_string("2", "-9.9999999999999995", "[ebfb86f26fc0ffff]", "20")
+ self.bid64_from_string("1", "-9.9999999999999995", "[b0038d7ea4c68000]", "20")
+ self.bid64_from_string("0", "9.9999999999999995", "[30038d7ea4c68000]", "20")
+ self.bid64_from_string("2", "9.9999999999999995", "[30038d7ea4c68000]", "20")
+ self.bid64_from_string("4", "9.9999999999999995", "[30038d7ea4c68000]", "20")
+ self.bid64_from_string("3", "9.9999999999999995", "[6bfb86f26fc0ffff]", "20")
+ self.bid64_from_string("1", "9.9999999999999995", "[6bfb86f26fc0ffff]", "20")
+ self.bid64_from_string("0", "1.0000000000000015", "[2fe38d7ea4c68002]", "20")
+ self.bid64_from_string("2", "1.0000000000000015", "[2fe38d7ea4c68002]", "20")
+ self.bid64_from_string("4", "1.0000000000000015", "[2fe38d7ea4c68002]", "20")
+ self.bid64_from_string("3", "1.0000000000000015", "[2fe38d7ea4c68001]", "20")
+ self.bid64_from_string("1", "1.0000000000000015", "[2fe38d7ea4c68001]", "20")
+ self.bid64_from_string("1", "000.0", "[31a0000000000000]", "00")
+ self.bid64_from_string("1", "0.0000000000000000000000000000000000000000000001001", "[2ba00000000003e9]", "00")
+ self.bid64_from_string("1", "0.0000000000000000000000000000000000000000000001001", "[2ba00000000003e9]", "00")
+ self.bid64_from_string("0", "0.", "[31c0000000000000]", "00")
+ self.bid64_from_string("0", "1.", "[31c0000000000001]", "00")
+ self.bid64_from_string("0", "1..", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "1.0000000000000005", "[2fe38d7ea4c68000]", "20")
+ self.bid64_from_string("2", "1.0000000000000005", "[2fe38d7ea4c68001]", "20")
+ self.bid64_from_string("4", "1.0000000000000005", "[2fe38d7ea4c68001]", "20")
+ self.bid64_from_string("3", "1.0000000000000005", "[2fe38d7ea4c68000]", "20")
+ self.bid64_from_string("1", "1.0000000000000005", "[2fe38d7ea4c68000]", "20")
+ self.bid64_from_string("0", "1.00000000000000051", "[2fe38d7ea4c68001]", "20")
+ self.bid64_from_string("2", "1.00000000000000051", "[2fe38d7ea4c68001]", "20")
+ self.bid64_from_string("4", "1.00000000000000051", "[2fe38d7ea4c68001]", "20")
+ self.bid64_from_string("3", "1.00000000000000051", "[2fe38d7ea4c68000]", "20")
+ self.bid64_from_string("1", "1.00000000000000051", "[2fe38d7ea4c68000]", "20")
+ self.bid64_from_string("0", "1.0000000000000004999999999999999", "[2fe38d7ea4c68000]", "20")
+ self.bid64_from_string("2", "1.0000000000000004999999999999999", "[2fe38d7ea4c68001]", "20")
+ self.bid64_from_string("1", "1.0000000000000004999999999999999", "[2fe38d7ea4c68000]", "20")
+ self.bid64_from_string("4", "1.0000000000000004999999999999999", "[2fe38d7ea4c68000]", "20")
+ self.bid64_from_string("3", "1.0000000000000004999999999999999", "[2fe38d7ea4c68000]", "20")
+ self.bid64_from_string("0", "1.1E2", "[31e000000000000b]", "00")
+ self.bid64_from_string("0", "1.1P2", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "1.1EE", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "1.1P-2", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "1.1E-2E", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "+INF", "[7800000000000000]", "00")
+ self.bid64_from_string("0", "+INFi", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "+NAN", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "+SNAN", "[7e00000000000000]", "00")
+ self.bid64_from_string("0", "+SNAN", "[7e00000000000000]", "00")
+ self.bid64_from_string("0", "+inf", "[7800000000000000]", "00")
+ self.bid64_from_string("0", "+nan", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "+snan", "[7e00000000000000]", "00")
+ self.bid64_from_string("0", "+INFINITY", "[7800000000000000]", "00")
+ self.bid64_from_string("0", "+infinity", "[7800000000000000]", "00")
+ self.bid64_from_string("0", "+INFiNITY", "[7800000000000000]", "00")
+ self.bid64_from_string("0", "+INFINITYi", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "INF", "[7800000000000000]", "00")
+ self.bid64_from_string("0", "INFi", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "NAN", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "SNAN", "[7e00000000000000]", "00")
+ self.bid64_from_string("0", "SNAN", "[7e00000000000000]", "00")
+ self.bid64_from_string("0", "inf", "[7800000000000000]", "00")
+ self.bid64_from_string("0", "nan", "[7c00000000000000]", "00")
+ self.bid64_from_string("0", "snan", "[7e00000000000000]", "00")
+ self.bid64_from_string("0", "INFINITY", "[7800000000000000]", "00")
+ self.bid64_from_string("0", "infinity", "[7800000000000000]", "00")
+ self.bid64_from_string("0", "INFiNITY", "[7800000000000000]", "00")
+ self.bid64_from_string("0", "INFINITYi", "[7c00000000000000]", "00")
+ }
+
+ private func bid64_from_string(
+ _ _rounding: String,
+ _ arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64(arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_parse(arg0, rounding, &status, result: result)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_from_string() {
+ self.bid128_from_string("0", "0e6176", "0e6111", "00")
+ self.bid128_from_string("0", "12345678901234567890123456789012345", "1234567890123456789012345678901234e1", "20")
+ self.bid128_from_string("1", "12345678901234567890123456789012345", "1234567890123456789012345678901234e1", "20")
+ self.bid128_from_string("2", "12345678901234567890123456789012345", "1234567890123456789012345678901235e1", "20")
+ self.bid128_from_string("3", "12345678901234567890123456789012345", "1234567890123456789012345678901234e1", "20")
+ self.bid128_from_string("4", "12345678901234567890123456789012345", "1234567890123456789012345678901235e1", "20")
+ self.bid128_from_string("2", "-9.9999999999999999999999999999999995", "[afffed09bead87c0378d8e63ffffffff]", "20")
+ self.bid128_from_string("1", "-9.9999999999999999999999999999999995", "[b000314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_from_string("0", "9.9999999999999999999999999999999995", "[3000314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_from_string("2", "9.9999999999999999999999999999999995", "[3000314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_from_string("4", "9.9999999999999999999999999999999995", "[3000314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_from_string("3", "9.9999999999999999999999999999999995", "[2fffed09bead87c0378d8e63ffffffff]", "20")
+ self.bid128_from_string("1", "9.9999999999999999999999999999999995", "[2fffed09bead87c0378d8e63ffffffff]", "20")
+ self.bid128_from_string("0", "1.0000000000000000000000000000000015", "[2ffe314dc6448d9338c15b0a00000002]", "20")
+ self.bid128_from_string("2", "1.0000000000000000000000000000000015", "[2ffe314dc6448d9338c15b0a00000002]", "20")
+ self.bid128_from_string("4", "1.0000000000000000000000000000000015", "[2ffe314dc6448d9338c15b0a00000002]", "20")
+ self.bid128_from_string("3", "1.0000000000000000000000000000000015", "[2ffe314dc6448d9338c15b0a00000001]", "20")
+ self.bid128_from_string("1", "1.0000000000000000000000000000000015", "[2ffe314dc6448d9338c15b0a00000001]", "20")
+ self.bid128_from_string("1", "000.0", "[303e0000000000000000000000000000]", "00")
+ self.bid128_from_string("1", "0.0000000000000000000000000000000000000000000000000000000000000001001", "[2fba00000000000000000000000003e9]", "00")
+ self.bid128_from_string("1", "0.0000000000000000000000000000000000000000000000000000000000000001001", "[2fba00000000000000000000000003e9]", "00")
+ self.bid128_from_string("0", "0.", "[30400000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "1.", "[30400000000000000000000000000001]", "00")
+ self.bid128_from_string("0", "1..", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "1.0000000000000000000000000000000005", "[2ffe314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_from_string("2", "1.0000000000000000000000000000000005", "[2ffe314dc6448d9338c15b0a00000001]", "20")
+ self.bid128_from_string("4", "1.0000000000000000000000000000000005", "[2ffe314dc6448d9338c15b0a00000001]", "20")
+ self.bid128_from_string("3", "1.0000000000000000000000000000000005", "[2ffe314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_from_string("1", "1.0000000000000000000000000000000005", "[2ffe314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_from_string("0", "1.00000000000000000000000000000000051", "[2ffe314dc6448d9338c15b0a00000001]", "20")
+ self.bid128_from_string("2", "1.00000000000000000000000000000000051", "[2ffe314dc6448d9338c15b0a00000001]", "20")
+ self.bid128_from_string("4", "1.00000000000000000000000000000000051", "[2ffe314dc6448d9338c15b0a00000001]", "20")
+ self.bid128_from_string("3", "1.00000000000000000000000000000000051", "[2ffe314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_from_string("1", "1.00000000000000000000000000000000051", "[2ffe314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_from_string("0", "1.9999999999999999999999999990000004999999999999999", "[2ffe629b8c891b267182b613fff0bdc0]", "20")
+ self.bid128_from_string("2", "1.9999999999999999999999999990000004999999999999999", "[2ffe629b8c891b267182b613fff0bdc1]", "20")
+ self.bid128_from_string("1", "1.9999999999999999999999999990000004999999999999999", "[2ffe629b8c891b267182b613fff0bdc0]", "20")
+ self.bid128_from_string("4", "1.9999999999999999999999999990000004999999999999999", "[2ffe629b8c891b267182b613fff0bdc0]", "20")
+ self.bid128_from_string("3", "1.9999999999999999999999999990000004999999999999999", "[2ffe629b8c891b267182b613fff0bdc0]", "20")
+ self.bid128_from_string("0", "1.1E2", "[3042000000000000000000000000000b]", "00")
+ self.bid128_from_string("0", "1.1P2", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "1.1EE", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "1.1P-2", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "1.1E-2E", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+INF", "[78000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+INFi", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+NAN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+SNAN", "[7e000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+SNAN", "[7e000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+inf", "[78000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+nan", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+snan", "[7e000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+INFINITY", "[78000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+INFiNITY", "[78000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "+INFINITYi", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "INF", "[78000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "INFi", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "NAN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "SNAN", "[7e000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "SNAN", "[7e000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "inf", "[78000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "nan", "[7c000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "snan", "[7e000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "INFINITY", "[78000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "INFiNITY", "[78000000000000000000000000000000]", "00")
+ self.bid128_from_string("0", "INFINITYi", "[7c000000000000000000000000000000]", "00")
+ }
+
+ private func bid128_from_string(
+ _ _rounding: String,
+ _ arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128(arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_parse(arg0, rounding, &status, result: result)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelFusedMultiplyAddTests.swift b/Tests/DecimalTests/Intel - generated/IntelFusedMultiplyAddTests.swift
new file mode 100644
index 0000000..b363726
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelFusedMultiplyAddTests.swift
@@ -0,0 +1,1536 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelFusedMultiplyAddTests: XCTestCase, IntelMixin {
+
+ func test_bid32_fma() {
+ self.bid32_fma("0", "[00444088]", "[ba3ca7db]", "[04620600]", "[8b1b218f]", "20")
+ self.bid32_fma("0", "[01408466]", "[a6838f31]", "[08100064]", "[08100064]", "20")
+ self.bid32_fma("0", "[014930e4]", "[3c3a1855]", "[a0803b0c]", "[9f9710b0]", "20")
+ self.bid32_fma("0", "[030ab023]", "[2b260b0c]", "[10090200]", "[0fda1400]", "20")
+ self.bid32_fma("0", "[04436437]", "[971895d0]", "[00000001]", "[00000001]", "30")
+ self.bid32_fma("0", "[05cc9cb1]", "[800420a2]", "[00001000]", "[00001000]", "30")
+ self.bid32_fma("0", "[08000005]", "[de5fffbb]", "[80104000]", "[b42fffde]", "20")
+ self.bid32_fma("0", "[0821c0aa]", "[a4428cc5]", "[bf800000]", "[80000001]", "30")
+ self.bid32_fma("0", "[0a322811]", "[818440c9]", "[93688ed3]", "[93688ed3]", "20")
+ self.bid32_fma("0", "[0c21add3]", "[24da1505]", "[04004120]", "[03197597]", "20")
+ self.bid32_fma("0", "-0", "-Infinity", "-Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "-0", "-Infinity", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "0", "-Infinity", "QNaN", "[7c000000]", "00")
+ self.bid32_fma("0", "0", "Infinity", "QNaN", "[7c000000]", "00")
+ self.bid32_fma("0", "0", "QNaN", "-0", "[7c000000]", "00")
+ self.bid32_fma("0", "-0", "SNaN", "SNaN", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "1.00001", "1.00001", "[2f9e849e]", "20")
+ self.bid32_fma("0", "1.00001", "1.00001", "1.0e-96", "[2f8f4254]", "20")
+ self.bid32_fma("0", "1.00001", "1.00001", "[6098967e]", "[2f8f4254]", "20")
+ self.bid32_fma("0", "1.00001", "1.00001", "[60989680]", "[2f8f4254]", "20")
+ self.bid32_fma("0", "1.00001", "1.00001", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "1.00001", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "1.00001", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "1.00001", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "1.00001", "1.0e-96", "1.00001", "[2f8f424a]", "20")
+ self.bid32_fma("0", "1.00001", "1.0e-96", "1.0e-96", "[00030d41]", "00")
+ self.bid32_fma("0", "1.00001", "1.0e-96", "[6098967e]", "[028f4241]", "20")
+ self.bid32_fma("0", "1.00001", "1.0e-96", "[60989680]", "[000186a1]", "00")
+ self.bid32_fma("0", "1.00001", "1.0e-96", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "1.0e-96", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "1.0e-96", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "1.0e-96", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "1.00001", "[6098967e]", "1.00001", "[2f8f424a]", "20")
+ self.bid32_fma("0", "1.00001", "[6098967e]", "1.0e-96", "[028f424b]", "20")
+ self.bid32_fma("0", "1.00001", "[6098967e]", "[6098967e]", "[029e848a]", "20")
+ self.bid32_fma("0", "1.00001", "[6098967e]", "[60989680]", "[028f424a]", "20")
+ self.bid32_fma("0", "1.00001", "[6098967e]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "[6098967e]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "[6098967e]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "[6098967e]", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "1.00001", "[60989680]", "1.00001", "[2f8f424a]", "00")
+ self.bid32_fma("0", "1.00001", "[60989680]", "1.0e-96", "[000186a0]", "00")
+ self.bid32_fma("0", "1.00001", "[60989680]", "[6098967e]", "[6098967e]", "00")
+ self.bid32_fma("0", "1.00001", "[60989680]", "[60989680]", "[00000000]", "00")
+ self.bid32_fma("0", "1.00001", "[60989680]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "[60989680]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "[60989680]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "[60989680]", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f423f]", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f423f]", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f423f]", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f423f]", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f423f]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f423f]", "[7c8f4240]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "1.00001", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f4240]", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f4240]", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f4240]", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f4240]", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f4240]", "[7c8f423f]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f4240]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "[7c8f4240]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "[7c8f4240]", "Infinity", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "[7e100000]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "[7e100000]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "[7e100000]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "[7e100000]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "[7e100000]", "[7c8f423f]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "[7e100000]", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "[7e100000]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "[7e100000]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "Infinity", "1.00001", "[78000000]", "00")
+ self.bid32_fma("0", "1.00001", "Infinity", "1.0e-96", "[78000000]", "00")
+ self.bid32_fma("0", "1.00001", "Infinity", "[6098967e]", "[78000000]", "00")
+ self.bid32_fma("0", "1.00001", "Infinity", "[60989680]", "[78000000]", "00")
+ self.bid32_fma("0", "1.00001", "Infinity", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.00001", "Infinity", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.00001", "Infinity", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.00001", "Infinity", "Inf", "[78000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "1.00001", "1.00001", "[2f8f424a]", "20")
+ self.bid32_fma("0", "1.0e-96", "1.00001", "1.0e-96", "[00030d41]", "00")
+ self.bid32_fma("0", "1.0e-96", "1.00001", "[6098967e]", "[028f4241]", "20")
+ self.bid32_fma("0", "1.0e-96", "1.00001", "[60989680]", "[000186a1]", "00")
+ self.bid32_fma("0", "1.0e-96", "1.00001", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "1.00001", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "1.00001", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "1.00001", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "1.0e-96", "1.00001", "[2f8f424a]", "20")
+ self.bid32_fma("0", "1.0e-96", "1.0e-96", "1.0e-96", "[000186a0]", "30")
+ self.bid32_fma("0", "1.0e-96", "1.0e-96", "[6098967e]", "[6098967e]", "20")
+ self.bid32_fma("0", "1.0e-96", "1.0e-96", "[60989680]", "[00000000]", "30")
+ self.bid32_fma("0", "1.0e-96", "1.0e-96", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "1.0e-96", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "1.0e-96", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "1.0e-96", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[6098967e]", "1.00001", "[2f8f424a]", "20")
+ self.bid32_fma("0", "1.0e-96", "[6098967e]", "1.0e-96", "[000186a0]", "30")
+ self.bid32_fma("0", "1.0e-96", "[6098967e]", "[6098967e]", "[6098967e]", "20")
+ self.bid32_fma("0", "1.0e-96", "[6098967e]", "[60989680]", "[00000000]", "30")
+ self.bid32_fma("0", "1.0e-96", "[6098967e]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "[6098967e]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[6098967e]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "[6098967e]", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[60989680]", "1.00001", "[2f8f424a]", "00")
+ self.bid32_fma("0", "1.0e-96", "[60989680]", "1.0e-96", "[000186a0]", "00")
+ self.bid32_fma("0", "1.0e-96", "[60989680]", "[6098967e]", "[6098967e]", "00")
+ self.bid32_fma("0", "1.0e-96", "[60989680]", "[60989680]", "[00000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[60989680]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "[60989680]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[60989680]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "[60989680]", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f423f]", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f423f]", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f423f]", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f423f]", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f423f]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f423f]", "[7c8f4240]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "1.0e-96", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f4240]", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f4240]", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f4240]", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f4240]", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f4240]", "[7c8f423f]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f4240]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7c8f4240]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "[7c8f4240]", "Infinity", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "[7e100000]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "[7e100000]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "[7e100000]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "[7e100000]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "[7e100000]", "[7c8f423f]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "[7e100000]", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "[7e100000]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "[7e100000]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "Infinity", "1.00001", "[78000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "Infinity", "1.0e-96", "[78000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "Infinity", "[6098967e]", "[78000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "Infinity", "[60989680]", "[78000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "Infinity", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "1.0e-96", "Infinity", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "1.0e-96", "Infinity", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "1.0e-96", "Infinity", "Inf", "[78000000]", "00")
+ self.bid32_fma("0", "[18e18d3c]", "[1667d383]", "[00020409]", "[0008a74d]", "30")
+ self.bid32_fma("0", "[1a322130]", "[d8f3fdf3]", "[3f000000]", "[c3a61b57]", "20")
+ self.bid32_fma("0", "[1eab1805]", "[104007a0]", "[00000000]", "[0001ceef]", "30")
+ self.bid32_fma("0", "[29314e22]", "[00000462]", "[89102128]", "[89102128]", "20")
+ self.bid32_fma("0", "[37fdefff]", "[2627ca65]", "[2cd194d7]", "[2ea0d95e]", "20")
+ self.bid32_fma("0", "[3de1a7d1]", "[20010465]", "[9fe7fd9f]", "[2dc11921]", "20")
+ self.bid32_fma("0", "[451460c6]", "[a571fa44]", "[cbff6dcf]", "[cbff6dcf]", "20")
+ self.bid32_fma("0", "[4cc0e205]", "[40000082]", "[b251a991]", "[5b545906]", "20")
+ self.bid32_fma("0", "[6098967e]", "1.00001", "1.00001", "[2f8f424a]", "20")
+ self.bid32_fma("0", "[6098967e]", "1.00001", "1.0e-96", "[028f424b]", "20")
+ self.bid32_fma("0", "[6098967e]", "1.00001", "[6098967e]", "[029e848a]", "20")
+ self.bid32_fma("0", "[6098967e]", "1.00001", "[60989680]", "[028f424a]", "20")
+ self.bid32_fma("0", "[6098967e]", "1.00001", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "1.00001", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "1.00001", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "1.00001", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "1.0e-96", "1.00001", "[2f8f424a]", "20")
+ self.bid32_fma("0", "[6098967e]", "1.0e-96", "1.0e-96", "[000186a0]", "30")
+ self.bid32_fma("0", "[6098967e]", "1.0e-96", "[6098967e]", "[6098967e]", "20")
+ self.bid32_fma("0", "[6098967e]", "1.0e-96", "[60989680]", "[00000000]", "30")
+ self.bid32_fma("0", "[6098967e]", "1.0e-96", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "1.0e-96", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "1.0e-96", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "1.0e-96", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[6098967e]", "1.00001", "[2f8f424a]", "20")
+ self.bid32_fma("0", "[6098967e]", "[6098967e]", "1.0e-96", "[000186a0]", "30")
+ self.bid32_fma("0", "[6098967e]", "[6098967e]", "[6098967e]", "[6098967e]", "20")
+ self.bid32_fma("0", "[6098967e]", "[6098967e]", "[60989680]", "[00000000]", "30")
+ self.bid32_fma("0", "[6098967e]", "[6098967e]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "[6098967e]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[6098967e]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "[6098967e]", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[60989680]", "1.00001", "[2f8f424a]", "00")
+ self.bid32_fma("0", "[6098967e]", "[60989680]", "1.0e-96", "[000186a0]", "00")
+ self.bid32_fma("0", "[6098967e]", "[60989680]", "[6098967e]", "[6098967e]", "00")
+ self.bid32_fma("0", "[6098967e]", "[60989680]", "[60989680]", "[00000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[60989680]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "[60989680]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[60989680]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "[60989680]", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f423f]", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f423f]", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f423f]", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f423f]", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f423f]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f423f]", "[7c8f4240]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[6098967e]", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f4240]", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f4240]", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f4240]", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f4240]", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f4240]", "[7c8f423f]", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f4240]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7c8f4240]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "[7c8f4240]", "Infinity", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "[7e100000]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "[7e100000]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "[7e100000]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "[7e100000]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "[7e100000]", "[7c8f423f]", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "[7e100000]", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "[7e100000]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "[7e100000]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "Infinity", "1.00001", "[78000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "Infinity", "1.0e-96", "[78000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "Infinity", "[6098967e]", "[78000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "Infinity", "[60989680]", "[78000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "Infinity", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[6098967e]", "Infinity", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[6098967e]", "Infinity", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[6098967e]", "Infinity", "Inf", "[78000000]", "00")
+ self.bid32_fma("0", "[60989680]", "1.00001", "1.00001", "[2f8f424a]", "00")
+ self.bid32_fma("0", "[60989680]", "1.00001", "1.0e-96", "[000186a0]", "00")
+ self.bid32_fma("0", "[60989680]", "1.00001", "[6098967e]", "[6098967e]", "00")
+ self.bid32_fma("0", "[60989680]", "1.00001", "[60989680]", "[00000000]", "00")
+ self.bid32_fma("0", "[60989680]", "1.00001", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "1.00001", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "1.00001", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "1.00001", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "[60989680]", "1.0e-96", "1.00001", "[2f8f424a]", "00")
+ self.bid32_fma("0", "[60989680]", "1.0e-96", "1.0e-96", "[000186a0]", "00")
+ self.bid32_fma("0", "[60989680]", "1.0e-96", "[6098967e]", "[6098967e]", "00")
+ self.bid32_fma("0", "[60989680]", "1.0e-96", "[60989680]", "[00000000]", "00")
+ self.bid32_fma("0", "[60989680]", "1.0e-96", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "1.0e-96", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "1.0e-96", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "1.0e-96", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[6098967e]", "1.00001", "[2f8f424a]", "00")
+ self.bid32_fma("0", "[60989680]", "[6098967e]", "1.0e-96", "[000186a0]", "00")
+ self.bid32_fma("0", "[60989680]", "[6098967e]", "[6098967e]", "[6098967e]", "00")
+ self.bid32_fma("0", "[60989680]", "[6098967e]", "[60989680]", "[00000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[6098967e]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "[6098967e]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[6098967e]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "[6098967e]", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[60989680]", "1.00001", "[2f8f424a]", "00")
+ self.bid32_fma("0", "[60989680]", "[60989680]", "1.0e-96", "[000186a0]", "00")
+ self.bid32_fma("0", "[60989680]", "[60989680]", "[6098967e]", "[6098967e]", "00")
+ self.bid32_fma("0", "[60989680]", "[60989680]", "[60989680]", "[00000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[60989680]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "[60989680]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[60989680]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "[60989680]", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f423f]", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f423f]", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f423f]", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f423f]", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f423f]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f423f]", "[7c8f4240]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[60989680]", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f4240]", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f4240]", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f4240]", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f4240]", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f4240]", "[7c8f423f]", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f4240]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[7c8f4240]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "[7c8f4240]", "Infinity", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "[7e100000]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "[7e100000]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "[7e100000]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "[7e100000]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "[7e100000]", "[7c8f423f]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "[7e100000]", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "[7e100000]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "[7e100000]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "Infinity", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "Infinity", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "Infinity", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "Infinity", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "Infinity", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[60989680]", "Infinity", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[60989680]", "Infinity", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[60989680]", "Infinity", "Inf", "[7c000000]", "01")
+ self.bid32_fma("0", "[6fe1778a]", "[01000800]", "[9cf533af]", "[9cf533af]", "20")
+ self.bid32_fma("0", "[7093c63d]", "[37edb46c]", "[dbfb7fff]", "[dbfb7fff]", "20")
+ self.bid32_fma("0", "[7c8f423f]", "1.00001", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.00001", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.00001", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.00001", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.00001", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.00001", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.00001", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "1.00001", "Infinity", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.0e-96", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.0e-96", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.0e-96", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.0e-96", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.0e-96", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.0e-96", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "1.0e-96", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "1.0e-96", "Infinity", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[6098967e]", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[6098967e]", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[6098967e]", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[6098967e]", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[6098967e]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[6098967e]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[6098967e]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "[6098967e]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[60989680]", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[60989680]", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[60989680]", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[60989680]", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[60989680]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[60989680]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[60989680]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "[60989680]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f423f]", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f423f]", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f423f]", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f423f]", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f423f]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f423f]", "[7c8f4240]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f4240]", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f4240]", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f4240]", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f4240]", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f4240]", "[7c8f423f]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f4240]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f4240]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "[7c8f4240]", "Infinity", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "[7e100000]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "[7e100000]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "[7e100000]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "[7e100000]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "[7e100000]", "[7c8f423f]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "[7e100000]", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "[7e100000]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "[7e100000]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "Infinity", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "Infinity", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "Infinity", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "Infinity", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "Infinity", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "Infinity", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f423f]", "Infinity", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f423f]", "Infinity", "Inf", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.00001", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.00001", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.00001", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.00001", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.00001", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.00001", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.00001", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "1.00001", "Infinity", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.0e-96", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.0e-96", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.0e-96", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.0e-96", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.0e-96", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.0e-96", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "1.0e-96", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "1.0e-96", "Infinity", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[6098967e]", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[6098967e]", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[6098967e]", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[6098967e]", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[6098967e]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[6098967e]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[6098967e]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "[6098967e]", "Infinity", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[60989680]", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[60989680]", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[60989680]", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[60989680]", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[60989680]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[60989680]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[60989680]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "[60989680]", "Infinity", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f423f]", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f423f]", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f423f]", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f423f]", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f423f]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f423f]", "[7c8f4240]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f4240]", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f4240]", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f4240]", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f4240]", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f4240]", "[7c8f423f]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f4240]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f4240]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "[7c8f4240]", "Infinity", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "[7e100000]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "[7e100000]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "[7e100000]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "[7e100000]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "[7e100000]", "[7c8f423f]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "[7e100000]", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "[7e100000]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "[7e100000]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "Infinity", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "Infinity", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "Infinity", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "Infinity", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "Infinity", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "Infinity", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "[7c8f4240]", "Infinity", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7c8f4240]", "Infinity", "Inf", "[7c000000]", "00")
+ self.bid32_fma("0", "[7e100000]", "1.00001", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.00001", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.00001", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.00001", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.00001", "[7c8f423f]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.00001", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.00001", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.00001", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.0e-96", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.0e-96", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.0e-96", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.0e-96", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.0e-96", "[7c8f423f]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.0e-96", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.0e-96", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "1.0e-96", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[6098967e]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[6098967e]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[6098967e]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[6098967e]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[6098967e]", "[7c8f423f]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "[6098967e]", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[6098967e]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[6098967e]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[60989680]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[60989680]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[60989680]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[60989680]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[60989680]", "[7c8f423f]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "[60989680]", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[60989680]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[60989680]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f423f]", "1.00001", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f423f]", "1.0e-96", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f423f]", "[6098967e]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f423f]", "[60989680]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f423f]", "[7c8f423f]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f423f]", "[7c8f4240]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f423f]", "Infinity", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f4240]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f4240]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f4240]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f4240]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f4240]", "[7c8f423f]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f4240]", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f4240]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7c8f4240]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7e100000]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7e100000]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7e100000]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7e100000]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7e100000]", "[7c8f423f]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7e100000]", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7e100000]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "[7e100000]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "Infinity", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "Infinity", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "Infinity", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "Infinity", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "Infinity", "[7c8f423f]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "[7e100000]", "Infinity", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "Infinity", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[7e100000]", "Infinity", "Inf", "[7c000000]", "01")
+ self.bid32_fma("0", "[8346a4e1]", "[3bbfbefa]", "[68080128]", "[68080128]", "20")
+ self.bid32_fma("0", "[8a0a12a8]", "[2556e6bf]", "[00800000]", "[8005bc96]", "30")
+ self.bid32_fma("0", "[8b72fbee]", "[60e92948]", "[03000001]", "[000f4240]", "30", underflowBeforeOnly: true)
+ self.bid32_fma("0", "[9e951bd8]", "[9108e931]", "[00010020]", "[000d53e4]", "30")
+ self.bid32_fma("0", "[9fca5489]", "[00001010]", "[0000000a]", "[0000000a]", "30")
+ self.bid32_fma("0", "[a0f048c1]", "[82021240]", "[84000000]", "[00000000]", "30")
+ self.bid32_fma("0", "[a2bc202e]", "[d7ff3fcd]", "[3c41374e]", "[4b322429]", "20")
+ self.bid32_fma("0", "[a45bef89]", "[8824bae8]", "[00000000]", "[00000001]", "30")
+ self.bid32_fma("0", "[bab75018]", "[6f6e1473]", "[72458bf5]", "[49520b01]", "20")
+ self.bid32_fma("0", "[caeaaf9f]", "[51604098]", "[36521fa9]", "[f8000000]", "28")
+ self.bid32_fma("0", "[d0800007]", "[bffdeffb]", "[10a8288a]", "[5e5827fd]", "20")
+ self.bid32_fma("0", "[d7f90d31]", "[0884444a]", "[68a37ca5]", "[b0a1d962]", "20")
+ self.bid32_fma("0", "[d8c6127d]", "[31000000]", "[4a2001ca]", "[4a2001ca]", "00")
+ self.bid32_fma("0", "[df800000]", "[55966da3]", "[20000000]", "[20000000]", "00")
+ self.bid32_fma("0", "[dfdf7fff]", "[00000004]", "[2d3f7445]", "[ad9fdac6]", "20")
+ self.bid32_fma("0", "[ea0e4040]", "[83ac1a7e]", "[3f800000]", "[00000000]", "30")
+ self.bid32_fma("0", "[ec37be9b]", "[20800005]", "[0a684d6d]", "[9f4bdf4d]", "20")
+ self.bid32_fma("0", "[f27649b3]", "[1d49b92b]", "[35412c03]", "[b7c89c85]", "20")
+ self.bid32_fma("0", "[f5ed2297]", "[91526503]", "[ee4389c2]", "[39bf0e76]", "20")
+ self.bid32_fma("0", "[f8000000]", "[d298d6bd]", "[f8000000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[f8000000]", "[f8000000]", "[f8000000]", "[7c000000]", "01")
+ self.bid32_fma("0", "-Infinity", "0", "-0", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "1.00001", "1.00001", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "1.00001", "1.0e-96", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "1.00001", "[6098967e]", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "1.00001", "[60989680]", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "1.00001", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "1.00001", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "1.00001", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "1.00001", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "1.0e-96", "1.00001", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "1.0e-96", "1.0e-96", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "1.0e-96", "[6098967e]", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "1.0e-96", "[60989680]", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "1.0e-96", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "1.0e-96", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "1.0e-96", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "1.0e-96", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "[6098967e]", "1.00001", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "[6098967e]", "1.0e-96", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "[6098967e]", "[6098967e]", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "[6098967e]", "[60989680]", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "[6098967e]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "[6098967e]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "[6098967e]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[6098967e]", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "[60989680]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[60989680]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[60989680]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[60989680]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[60989680]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "[60989680]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "[60989680]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[60989680]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[7c8f423f]", "1.00001", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f423f]", "1.0e-96", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f423f]", "[6098967e]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f423f]", "[60989680]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f423f]", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f423f]", "[7c8f4240]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_fma("0", "Infinity", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f4240]", "1.00001", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f4240]", "1.0e-96", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f4240]", "[6098967e]", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f4240]", "[60989680]", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f4240]", "[7c8f423f]", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f4240]", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "[7c8f4240]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[7c8f4240]", "Infinity", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "[7e100000]", "1.00001", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[7e100000]", "1.0e-96", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[7e100000]", "[6098967e]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[7e100000]", "[60989680]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[7e100000]", "[7c8f423f]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[7e100000]", "[7c8f4240]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[7e100000]", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "[7e100000]", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "Inf", "1.00001", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "Inf", "1.0e-96", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "Inf", "[6098967e]", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "Inf", "[60989680]", "[78000000]", "00")
+ self.bid32_fma("0", "Infinity", "Inf", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_fma("0", "Infinity", "Inf", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_fma("0", "Infinity", "Inf", "[7e100000]", "[7c000000]", "01")
+ self.bid32_fma("0", "Infinity", "Inf", "Infinity", "[78000000]", "00")
+ self.bid32_fma("0", "QNaN", "-Infinity", "SNaN", "[7c000000]", "01")
+ self.bid32_fma("0", "SNaN", "0", "0", "[7c000000]", "01")
+ self.bid32_fma("0", "SNaN", "0", "Infinity", "[7c000000]", "01")
+ self.bid32_fma("0", "SNaN", "+56858.E0", "SNaN", "[7c000000]", "01")
+ self.bid32_fma("0", "SNaN", "-Infinity", "QNaN", "[7c000000]", "01")
+ self.bid32_fma("1", "[00000010]", "[8f464f29]", "[40000001]", "[6f38967f]", "20")
+ self.bid32_fma("1", "-0", "0", "SNaN", "[7c000000]", "01")
+ self.bid32_fma("1", "[812f6fda]", "[175cbe7d]", "[3ffaffff]", "[3ffafffe]", "20")
+ self.bid32_fma("1", "[df800000]", "[55966da3]", "[20000000]", "[a0000000]", "00")
+ self.bid32_fma("2", "[04436437]", "[971895d0]", "[00000001]", "[00000001]", "30")
+ self.bid32_fma("2", "[05cc9cb1]", "[800420a2]", "[00001000]", "[00001000]", "30")
+ self.bid32_fma("2", "[80104200]", "[a1480040]", "[264b785d]", "[264b785e]", "20")
+ self.bid32_fma("4", "[030ab023]", "[2b260b0c]", "[10090200]", "[0fda1400]", "20")
+ self.bid32_fma("4", "[29314e22]", "[00000462]", "[89102128]", "[89102128]", "20")
+ self.bid32_fma("4", "[3de1a7d1]", "[20010465]", "[9fe7fd9f]", "[2dc11921]", "20")
+ self.bid32_fma("4", "[40890002]", "[02800028]", "[90db8353]", "[111ad94d]", "20")
+ self.bid32_fma("4", "[8000000b]", "[07e8eaec]", "[0280000a]", "[000f4240]", "30", underflowBeforeOnly: true)
+ self.bid32_fma("4", "[80000a0a]", "[86080300]", "[a3800000]", "[00000000]", "30")
+ self.bid32_fma("4", "[a2bc202e]", "[d7ff3fcd]", "[3c41374e]", "[4b322429]", "20")
+ self.bid32_fma("4", "[bab75018]", "[6f6e1473]", "[72458bf5]", "[49520b01]", "20")
+ self.bid32_fma("2", "[494dc31e]", "[008c4d08]", "[beff957e]", "[beff957d]", "20")
+ self.bid32_fma("1", "[1a77cfa1]", "[ca8de047]", "[af800000]", "[b56cf443]", "20")
+ self.bid32_fma("0", "[bd800000]", "[3930f198]", "[bf51c5b5]", "[bf51c5b5]", "00")
+ self.bid32_fma("0", "[d3f3c27f]", "[f8000000]", "[f8000000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[00000000]", "[dffff9fc]", "[2e002240]", "[2d0d6100]", "00")
+ self.bid32_fma("0", "[f7cfb7fa]", "[08000001]", "[83800000]", "[ed2fb7fa]", "00")
+ self.bid32_fma("1", "[f7cfb7fa]", "[08000001]", "[83800000]", "[ed2fb7fa]", "00")
+ self.bid32_fma("1", "[c2abe93b]", "[00000100]", "[1091390e]", "[916eb0a5]", "00")
+ self.bid32_fma("0", "[40000302]", "[c90b2a4d]", "[9a000000]", "[d7d5f8ea]", "20")
+ self.bid32_fma("2", "[8d7f75e7]", "[100000c0]", "[03000001]", "[000f4240]", "30", underflowBeforeOnly: true)
+ self.bid32_fma("2", "[494dc31e]", "[008c4d08]", "[beff957e]", "[beff957d]", "20")
+ self.bid32_fma("1", "[1a77cfa1]", "[ca8de047]", "[af800000]", "[b56cf443]", "20")
+ self.bid32_fma("0", "[bd800000]", "[3930f198]", "[bf51c5b5]", "[bf51c5b5]", "00")
+ self.bid32_fma("0", "[d3f3c27f]", "[f8000000]", "[f8000000]", "[7c000000]", "01")
+ self.bid32_fma("0", "[00000000]", "[dffff9fc]", "[2e002240]", "[2d0d6100]", "00")
+ self.bid32_fma("0", "[f7cfb7fa]", "[08000001]", "[83800000]", "[ed2fb7fa]", "00")
+ self.bid32_fma("1", "[f7cfb7fa]", "[08000001]", "[83800000]", "[ed2fb7fa]", "00")
+ self.bid32_fma("1", "[c2abe93b]", "[00000100]", "[1091390e]", "[916eb0a5]", "00")
+ self.bid32_fma("0", "[40000302]", "[c90b2a4d]", "[9a000000]", "[d7d5f8ea]", "20")
+ self.bid32_fma("0", "[aae192ae]", "[00000104]", "[03000001]", "[000f4240]", "30", underflowBeforeOnly: true)
+ self.bid32_fma("0", "1010101E-95", "99E-8", "-0", "1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_fma("1", "1010101E-95", "99E-8", "0", "999999E-101", "0x30")
+ self.bid32_fma("2", "1010101E-95", "99E-8", "0", "1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_fma("3", "1010101E-95", "99E-8", "-0", "999999E-101", "0x30")
+ self.bid32_fma("4", "1010101E-95", "99E-8", "-0", "1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_fma("0", "-5e-10", "1e-93", "1e-95", "1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_fma("1", "-5e-10", "1e-93", "1e-95", "999999E-101", "0x30")
+ self.bid32_fma("2", "-5e-10", "1e-93", "1e-95", "1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_fma("3", "-5e-10", "1e-93", "1e-95", "999999E-101", "0x30")
+ self.bid32_fma("4", "-5e-10", "1e-93", "1e-95", "1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_fma("0", "5e-10", "1e-93", "-1e-95", "-1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_fma("1", "5e-10", "1e-93", "-1e-95", "-1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_fma("2", "5e-10", "1e-93", "-1e-95", "-999999E-101", "0x30")
+ self.bid32_fma("3", "5e-10", "1e-93", "-1e-95", "-999999E-101", "0x30")
+ self.bid32_fma("4", "5e-10", "1e-93", "-1e-95", "-1000000E-101", "0x30", underflowBeforeOnly: true)
+ }
+
+ private func bid32_fma(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _arg2: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let arg2 = self.parseDecimal32(_arg2, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg2.addingProduct(arg0, arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_fma() {
+ self.bid64_fma("0", "[00238d7ea4c68001]", "[6bf386f26fc0fff6]", "[81e0000000000009]", "[00038d7ea4c68000]", "30")
+ self.bid64_fma("2", "[00238d7ea4c68001]", "[6bf386f26fc0fff6]", "[81e0000000000009]", "[00038d7ea4c68000]", "30")
+ self.bid64_fma("4", "[00238d7ea4c68001]", "[6bf386f26fc0fff6]", "[81e0000000000009]", "[00038d7ea4c68000]", "30")
+ self.bid64_fma("0", "[0000000000000000]", "[00d0400101510600]", "[0020000210a2430a]", "[00000014a6569e64]", "00")
+ self.bid64_fma("0", "[0000000000000000]", "[010879c99167ba41]", "[0000000000000000]", "[0000000000000000]", "00")
+ self.bid64_fma("0", "[0000000000000000]", "[fbfdffdffdfff6ff]", "[ff777d7cffffdff7]", "[fc037d7cffffdff7]", "01")
+ self.bid64_fma("0", "[0000000000000002]", "[0000200008000000]", "[e624226f21bd67b4]", "[0000000000000000]", "30")
+ self.bid64_fma("0", "[0000000000000002]", "[39b4ddb9e2f83460]", "[0800008010080020]", "[08042cd870a00a9a]", "20")
+ self.bid64_fma("0", "[0000000000000020]", "[e502e9c91be94db0]", "[0000001400100112]", "[0000001400100112]", "30")
+ self.bid64_fma("0", "[0000000000000100]", "[4c1306322ddf8000]", "[9a409f33969deb6b]", "[1aa4de9c69086b07]", "20")
+ self.bid64_fma("0", "[0000000000000400]", "[50000028010c0008]", "[696d7f7bd6fe7f66]", "[1e40a00430002000]", "00")
+ self.bid64_fma("0", "[0000000000010000]", "[f5eebfdc791c23b7]", "[3eff5b15cf1ffef7]", "[3eff5b15cf1ffef7]", "00")
+ self.bid64_fma("0", "[0000000004000000]", "[300234c8f1d4c108]", "[0050000000000000]", "[00500000003f96d1]", "20")
+ self.bid64_fma("0", "[0000212020010000]", "[7bfe87ffbfcbff37]", "[ffed6fdb626e4ad3]", "[fc016fdb626e4ad3]", "01")
+ self.bid64_fma("0", "[0001000000008020]", "[7bf705feff8ebfff]", "[22092015234b6048]", "[7800000000000000]", "00")
+ self.bid64_fma("0", "[00180081c0008000]", "[4044000000000000]", "[80409002001000a2]", "[107b0619843fbdda]", "20")
+ self.bid64_fma("0", "-0", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "-0.101111000011E-271", "-98.9989988999E331", "+0.000E-1998", "[37838e64dc87afee]", "20")
+ self.bid64_fma("0", "[01a0000000000001]", "[30005af3107a4000]", "[81a0000000000001]", "[0000000000000000]", "00")
+ self.bid64_fma("0", "+0.1E2167", "+99888998988889998.889899899989999E1387", "-7776567.96595796889999599997575989899887E-3096", "[7800000000000000]", "00")
+ self.bid64_fma("0", "[044cdee64742a8ce]", "[169ff4aa153c0a98]", "[53c0000000000000]", "[0000000000000000]", "30")
+ self.bid64_fma("0", "[05002042003c8302]", "[38aa1a158f37eb1f]", "[d8c33303a474a943]", "[d8bffe246c8e9c9e]", "20")
+ self.bid64_fma("0", "[06686268fe77a9df]", "[28000a4040000004]", "[0000000100000000]", "[000000010000001b]", "30")
+ self.bid64_fma("0", "[08000884a28200a4]", "[60110412000000c8]", "[9903beed5d1ac2c4]", "[9903beed5d1ac2c4]", "20")
+ self.bid64_fma("0", "[086c63d816e5963d]", "[b1440640373e5484]", "[08c30041885810a0]", "[89ce08fa891e7ee7]", "20")
+ self.bid64_fma("0", "[0aee000000000000]", "[00a0000000000000]", "[733b16cad14044a1]", "[733b16cad14044a1]", "00")
+ self.bid64_fma("0", "[0be5000000000000]", "[55a9de340797b9c9]", "[ae2dd44cb79d04d1]", "[31ade350a34fa74f]", "20")
+ self.bid64_fma("0", "[0e45000000000000]", "[0f512df7108ecb14]", "[8d1ea59449a41dac]", "[8d1ea59449a41dac]", "20")
+ self.bid64_fma("0", "-0", "-Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "-0", "-Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "0", "-Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_fma("0", "0", "Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_fma("0", "0", "QNaN", "-0", "[7c00000000000000]", "00")
+ self.bid64_fma("0", "-0", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "-1000000.00E-198", "+55.86898859557879567887558857876986965876E2515", "-6999699.7885768575965965588757588E-2899", "[f800000000000000]", "00")
+ self.bid64_fma("0", "+10101010.0111000011E-228", "+989587665895777579797998.76677669577E300", "-8922342.E-1600", "[6f2b8328ada4fc5c]", "20")
+ self.bid64_fma("0", "+110000000010.0000001000000000100E3597", "-9867789.776597E1391", "-89988888989989898.89E1544", "[f800000000000000]", "00")
+ self.bid64_fma("0", "-11.0010001111001E382", "-9.E191", "+8677.9E-1415", "[7800000000000000]", "28")
+ self.bid64_fma("0", "-1100101.10001011000100100000000101E3419", "-1110001.001100E-3563", "+7795597699996956896798785.E-1805", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "[1102716d2a6e6ac5]", "[1a0ca98b2c90efe1]", "[e13e317f5d25b939]", "[0000000000000000]", "30")
+ self.bid64_fma("0", "+11100000.01000011E2758", "+7875.78779995965695E499", "-6687578.675565878E336", "[7800000000000000]", "00")
+ self.bid64_fma("0", "[1c5a1b3a4aa0a5f6]", "[8bf5534c5dd1aae0]", "[ffdfbf7effbfff77]", "[fc00000000000000]", "01")
+ self.bid64_fma("0", "[1f8ecaf50db921d8]", "[cea9e9211235b2ed]", "[ab2d40787f01205f]", "[be642069266fbf92]", "20")
+ self.bid64_fma("0", "[2020a57510008844]", "[9f123d52f3201ec5]", "[1080000000104208]", "[63d28907cc19c5ce]", "20")
+ self.bid64_fma("0", "[2480000000000000]", "[d5183d74e9ae8977]", "[d7897b705774214c]", "[d7897b705774214c]", "00")
+ self.bid64_fma("0", "[2780000000000000]", "[0e7d574b10e2f988]", "[48e58a6e466cc162]", "[48e58a6e466cc162]", "00")
+ self.bid64_fma("0", "[2a00000306053544]", "[0040000000002201]", "[af0b5f75f94f4895]", "[af0b5f75f94f4895]", "20")
+ self.bid64_fma("0", "[3000400200500203]", "[4000000000000008]", "[3d82029e7224e682]", "[3e3400a16a435ba5]", "20")
+ self.bid64_fma("0", "-326329.E0", "-11101101.101111E0", "-0", "[316cdebee7001c04]", "20")
+ self.bid64_fma("0", "[353056894e1c8385]", "[3487d2873e6ae31f]", "[37ee3c19d2caf7ea]", "[39e398e983ebbf0f]", "20")
+ self.bid64_fma("0", "+365.2683758E0", "+8.8898988E0", "-0", "[304b894f68b18161]", "20")
+ self.bid64_fma("0", "[37b2914bed9892a5]", "[9195cf876c473226]", "[1c7773649ba05d00]", "[1c7773649ba05d00]", "20")
+ self.bid64_fma("0", "[4050800311200b05]", "[518a6ff586fd963f]", "[a01844083283a151]", "[7800000000000000]", "28")
+ self.bid64_fma("0", "[408400010c600000]", "[0000000000000004]", "[8d3a48e479b391a3]", "[0ed00004317ffd1c]", "20")
+ self.bid64_fma("0", "[41859cab5336dc80]", "[688ffda2ba09adbf]", "[6e149be1f305451c]", "[31e0000000000000]", "00")
+ self.bid64_fma("0", "+42577.8664943686864229E-1299", "-79998598895657755889.688985875E-2213", "-0.00000001000E-1418", "[8000000000000000]", "00")
+ self.bid64_fma("0", "-45.E-131", "-1110101100000101101001.111010110110E-285", "-1110110111001111000.110E-2623", "[000000000000c323]", "30")
+ self.bid64_fma("0", "-45.E-2952", "+9.988988898E-1156", "-0.000000100E239", "[cce38d7ea4c68000]", "00")
+ self.bid64_fma("0", "[4716710536974a10]", "[b78f93aaed91a5bb]", "[17e217d0c6ef1375]", "[cec9d6e58e6d2854]", "20")
+ self.bid64_fma("0", "+49.86E-314", "-8988999.888898E-78", "-9999.88E-383", "[80838d8648f30a26]", "20")
+ self.bid64_fma("0", "[49e87bc4b82ae3d8]", "[4b93057177b088e1]", "[1d46296d0dff2eb2]", "[7800000000000000]", "28")
+ self.bid64_fma("0", "[4a20000003020000]", "[0000000000002000]", "[97d0b1109f594743]", "[17ed047589aa45ac]", "20")
+ self.bid64_fma("0", "[4d5400880c250068]", "[4253d58e976af92c]", "[dffffbdefb37f5df]", "[dffede0013ede543]", "20")
+ self.bid64_fma("0", "[4e4de48132cf9cff]", "[765ec07d1780dec7]", "[49d341d321da20eb]", "[49d341d321da20eb]", "00")
+ self.bid64_fma("0", "[5000414808005009]", "[0000000000000020]", "[dd62233b2b20dbf3]", "[dd55604faf48977e]", "20")
+ self.bid64_fma("0", "[51c46477bf75efe7]", "[c48e3181143e8cab]", "[3711407bd7e3541f]", "[f800000000000000]", "28")
+ self.bid64_fma("0", "[525013de42785593]", "[f78aa8a55a308acc]", "[6031ffec661217c4]", "[f800000000000000]", "28")
+ self.bid64_fma("0", "+5353472838896522543377.E-228", "+0.1E265", "-89889999889898898999999899889999.9E60", "[bb5fef72a73acfc2]", "20")
+ self.bid64_fma("0", "+56465267.E377", "+110000010000000.000011000000000000000000E50", "+767.E70", "[7800000000000000]", "28")
+ self.bid64_fma("0", "+56658585.5987986E128", "+0.1011100101110E361", "+228993.E-1026", "[7800000000000000]", "28")
+ self.bid64_fma("0", "[588a69b291fd275a]", "[b68adb297e26220b]", "[dd4ee225f93102eb]", "[df3fd1a0c5a9931e]", "20")
+ self.bid64_fma("0", "-5895787759566.8568676785875687668E-3586", "-110010100110.1101100E-3798", "+6.7798666866E-3033", "[0000000000000000]", "00")
+ self.bid64_fma("0", "-596999886.9E-374", "+589648.385E-26", "+1.0000E-379", "[601b86f19def0200]", "20")
+ self.bid64_fma("0", "+655633969724693.E-1504", "-1000000000000100000000.00000000E-221", "+1111110010111.0E2177", "[7800000000000000]", "00")
+ self.bid64_fma("0", "+65659.55968875568E-129", "+9988899899988989898998998988989889.89888E-303", "-56985588.8E-437", "[0000000000010033]", "30")
+ self.bid64_fma("0", "+65677855.7959655555E0", "+100110000001.100001E0", "0", "[32375befd8042396]", "20")
+ self.bid64_fma("0", "-6588795998878667888757.9686576E-2896", "-89889.88988888898888999899E-3903", "-8.899899E1116", "[f800000000000000]", "00")
+ self.bid64_fma("0", "-699.76578678875598965578686688965E-3208", "+5.79767569577558E2557", "-98989.9998898E-161", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "[6bfeeaa31884393f]", "[210757ad7710355d]", "[202000000040408a]", "[1f217ef8eecb4a00]", "00")
+ self.bid64_fma("0", "[6fed7fffdff3efbf]", "[2053800102000773]", "[afbfd2fcf317714b]", "[afbfd2fcf317714b]", "00")
+ self.bid64_fma("0", "[6ff7fc29cbfbfdff]", "[9dd03c2be5c8456d]", "[e8483dd66caf3ca9]", "[e8483dd66caf3ca9]", "00")
+ self.bid64_fma("0", "[70f2e6141f197b31]", "[8d28bbf7f5949a31]", "[e85215502e02869e]", "[e852f0f484f54bd2]", "20")
+ self.bid64_fma("0", "-7575.866768897E765", "+6776634485838.5844462777436274E-3953", "-99998898.8989999899988999888898E1771", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "[76a26b16ca880e82]", "[532634af9dfd0a7e]", "[b5b3283b46229614]", "[7800000000000000]", "28")
+ self.bid64_fma("0", "-79587.578569697596E2883", "-8899.898898899988888E672", "-99988898.9989998999999988889899989888989E1697", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "[799b13bfc74dd3cc]", "[5779ffd6f8bff6bb]", "[7fffffffffffffea]", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "[7b8415f5015dc808]", "[fd7bfdff3b7fefff]", "[48338f0525c89531]", "[fc00000000000000]", "00")
+ self.bid64_fma("0", "[7bb324bb6b22696d]", "[0000000000000000]", "[fffffeffff9ffffb]", "[fc00000000000000]", "01")
+ self.bid64_fma("0", "[80d5d7e06ef5290a]", "[afa4b1e4aeff4f08]", "[00130b9008284012]", "[009cde20d8540778]", "20")
+ self.bid64_fma("0", "[81c0000000000000]", "[19b74526664b3842]", "[e680c8b0cef64c6f]", "[e680c8b0cef64c6f]", "00")
+ self.bid64_fma("0", "-828.64832E3917", "+110010110101.1101E-2003", "-567.69E-2577", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "-86987676.9558595E0", "+0.01101001E0", "-0", "[ec22068d03c5bb13]", "20")
+ self.bid64_fma("0", "[874d5036a44f4bcd]", "[0e15000000000000]", "[3bd60c8d9236d98e]", "[3bd60c8d9236d98e]", "20")
+ self.bid64_fma("0", "-87.7E0", "-26757.854527644E0", "0", "[30a8564740b6cf0b]", "20")
+ self.bid64_fma("0", "-8857.78555E3909", "-7759755569.88988E3403", "-0.1101E-2963", "[7800000000000000]", "00")
+ self.bid64_fma("0", "+8889989989.899E-365", "+26858538265655946599822795973789292.E-331", "+78869768569785878579778587856765798.6787E-3243", "[0000000000000000]", "30")
+ self.bid64_fma("0", "[891d87e54574a5a0]", "[214191950a290d55]", "[5600000000000000]", "[8000000000000000]", "30")
+ self.bid64_fma("0", "+8.988989898988899889988899898898998E2553", "-85877686689857987686968786877687.76E-2851", "-4.56E961", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "-89988.9E311", "-1001.1011101110E164", "-88759569597678767695566.55659E-1447", "[7800000000000000]", "28")
+ self.bid64_fma("0", "+8998989889988998999988998.8899E-2814", "-98998.888998899998989899E2343", "-0.011001011111000E3441", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "[8c1cec0046d39321]", "[2341b8329a600007]", "[001110020004c042]", "[00110ff8d3800a00]", "20")
+ self.bid64_fma("0", "[8e3f278ee9c4e669]", "[3b4acfebb8528492]", "[9b857bc3e226884f]", "[9b857bc3e2268852]", "20")
+ self.bid64_fma("0", "[92cfc8303ab2031e]", "[2808081190058ec1]", "[0ac886bbd988ed04]", "[e2bad343c504a510]", "20")
+ self.bid64_fma("0", "[9508bf6bf7c59797]", "[5d1cb1acab0b7e64]", "[43a0f3e053281008]", "[438986c33f8d977b]", "20")
+ self.bid64_fma("0", "+957876778.566865796E234", "+10.0000111000E324", "-10000000000000000.00000000E-2315", "[7800000000000000]", "28")
+ self.bid64_fma("0", "-9597.56757698559786E0", "-26.87623444E0", "-0", "[30892a0270e1914d]", "20")
+ self.bid64_fma("0", "[9626c2f864aba8e7]", "[9451d8944a4bf287]", "[9960000000000000]", "[0000000000000000]", "30")
+ self.bid64_fma("0", "-9699.6955766868969879586956798E139", "-1000.10001110111101000110001E344", "+93499387558657577225565.338744922886848E-3769", "[7800000000000000]", "28")
+ self.bid64_fma("0", "[96b40f6ca5493264]", "[0c5e000000000000]", "[0400000000000000]", "[8000000000000000]", "30")
+ self.bid64_fma("0", "+97.42E249", "-69558557765795767855.56778667876557767E31", "-59676.7886558886E-2632", "[d598131856ce1090]", "20")
+ self.bid64_fma("0", "+9758786597.697876697E0", "+101000011.100E0", "-0", "[6c830452433eeec8]", "20")
+ self.bid64_fma("0", "[9f7849c620634412]", "[406c3ab426c1d82a]", "[409ead39681471c0]", "[409ead39681471c0]", "20")
+ self.bid64_fma("0", "[a1e63281a0601c22]", "[12685f51e462a159]", "[200000000000000a]", "[1e438d7ea4c68000]", "20")
+ self.bid64_fma("0", "[a340012fe8e804dd]", "[085a000000000000]", "[813bf6b7cdef90a5]", "[813bf6b7cdef90a5]", "20")
+ self.bid64_fma("0", "[a40ffbf72fa26b95]", "[fadbffffbd43fdfe]", "[fdffdfdffffeb5bb]", "[fc00000000000000]", "00")
+ self.bid64_fma("0", "[aa9ffa9b39179b2b]", "[b3f91aaf8f42d0d5]", "[39de64b67b2be906]", "[39de64b67b2be906]", "20")
+ self.bid64_fma("0", "[abf4c8cff7ffabf4]", "[fabdf7fba36c7efe]", "[fbfff3f7ffffffff]", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "[ad89b51c88af69cf]", "[0103000100120c00]", "[0000000000000008]", "[8000000000005a19]", "30")
+ self.bid64_fma("0", "[aeb6b2cbbe69af6f]", "[fdfbfcfbfbfeeffc]", "[ffffffffffffffff]", "[fc00000000000000]", "01")
+ self.bid64_fma("0", "[b960000000000000]", "[6c81bd06d1bc69f0]", "[1cbc0699f519b029]", "[1cbc0699f519b029]", "00")
+ self.bid64_fma("0", "[bfffffffff4fc6fd]", "[9b5d725ce93b4155]", "[2b7003da4fc61171]", "[2b8440fb0bb03765]", "20")
+ self.bid64_fma("0", "[c060002107151a06]", "[0100000000008870]", "[b7e3ce5fcca69f1f]", "[b7e3ce5fcca69f1f]", "20")
+ self.bid64_fma("0", "[c12008b07ce1429e]", "[df386f30acf77614]", "[035d246c0e445f84]", "[7800000000000000]", "28")
+ self.bid64_fma("0", "[c299c69761718b54]", "[0439000848301168]", "[44e04aa10048201b]", "[44bd26e41c2c8a8c]", "20")
+ self.bid64_fma("0", "[c6dc9204e1504427]", "[fff9ffffffdfffff]", "[0300011000001100]", "[fc01ffffffdfffff]", "01")
+ self.bid64_fma("0", "[c720000000000000]", "[ce24af51f46fefcd]", "[cddb16689ad47de7]", "[cddb16689ad47de7]", "00")
+ self.bid64_fma("0", "[cae8279978177853]", "[01e0000000000000]", "[4de0000000000000]", "[1b00000000000000]", "00")
+ self.bid64_fma("0", "[d10c967487431deb]", "[222dde52f60ed558]", "[5023dc7b6fa46108]", "[5023dc7b6fa46108]", "20")
+ self.bid64_fma("0", "[d1cb49ab4261aacd]", "[5f94f0fc918c4a6e]", "[1a8947c94c2dbf5b]", "[f800000000000000]", "28")
+ self.bid64_fma("0", "[d2fdca892420c735]", "[d28d4938435cb5b5]", "[bda7f323437d7c9f]", "[7800000000000000]", "28")
+ self.bid64_fma("0", "[d94c0f24a80dd3a7]", "[6b9d4f6b6cf4d4a7]", "[0000000000000000]", "[0000000000000000]", "00")
+ self.bid64_fma("0", "[da05b8744546a5f0]", "[ca2d387e8c751657]", "[a511527ac20869f3]", "[7800000000000000]", "28")
+ self.bid64_fma("0", "[e40c48889230bcc1]", "[0080940108140400]", "[0000000010000001]", "[0000000010000001]", "00")
+ self.bid64_fma("0", "[eda10de61003dc4f]", "[dd179f310b113ff7]", "[3145f5c82f90ec6f]", "[7800000000000000]", "28")
+ self.bid64_fma("0", "[ef8c695dfcbffd4a]", "[f5f7aff79faf7fff]", "[8029eab262894a6c]", "[8029eab262894a6c]", "00")
+ self.bid64_fma("0", "[f6f17a6f96d5746b]", "[c73d5c78e572caab]", "[c0e12a578ad1f74e]", "[7800000000000000]", "28")
+ self.bid64_fma("0", "[f7d287f6ddd7d7ef]", "[71a60c09282b4c38]", "[0000000000000000]", "[0000000000000000]", "00")
+ self.bid64_fma("0", "[fb1739f7d7b1ffbe]", "[ffffffffffdeffff]", "[53d603218f418842]", "[fc00000000000000]", "01")
+ self.bid64_fma("0", "[fb3d3d9a25f13fee]", "[d6efdbbbfeff6eff]", "[fbb78bee99ff5df6]", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "[fbbfffe2ffefdfef]", "[ab8c5db7fc8ecea2]", "[6fa56692f7ded68f]", "[7800000000000000]", "00")
+ self.bid64_fma("0", "[fdf7ef4f9f5bf7f7]", "[0e03009004900080]", "[85432de72c393e91]", "[fc00000000000000]", "00")
+ self.bid64_fma("0", "[ffb54afb6edff98e]", "[0000000000020000]", "[5dffdff9dfbd7f9f]", "[fc014afb6edff98e]", "01")
+ self.bid64_fma("0", "[ffffffffffffffff]", "[bbfeaaf7dbff63dd]", "[3f970dd472e7f7fe]", "[fc00000000000000]", "01")
+ self.bid64_fma("0", "-Infinity", "0", "-0", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "QNaN", "-Infinity", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "SNaN", "0", "0", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "SNaN", "0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "SNaN", "+5596858.E0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "SNaN", "-Infinity", "QNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "[0000000000000000]", "[00d0400101510600]", "[0020000210a2430a]", "[00000014a6569e64]", "00")
+ self.bid64_fma("1", "-0", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "-0.101111000011E-271", "-98.9989988999E331", "+0.000E-1998", "[37838e64dc87afed]", "20")
+ self.bid64_fma("1", "[01a0000000000001]", "[30005af3107a4000]", "[81a0000000000001]", "[8000000000000000]", "00")
+ self.bid64_fma("1", "+0.1E2167", "+99888998988889998.889899899989999E1387", "-7776567.96595796889999599997575989899887E-3096", "[7800000000000000]", "00")
+ self.bid64_fma("1", "[044cdee64742a8ce]", "[169ff4aa153c0a98]", "[53c0000000000000]", "[0000000000000000]", "30")
+ self.bid64_fma("1", "[0aee000000000000]", "[00a0000000000000]", "[733b16cad14044a1]", "[733b16cad14044a1]", "00")
+ self.bid64_fma("1", "[0be5000000000000]", "[55a9de340797b9c9]", "[ae2dd44cb79d04d1]", "[31ade350a34fa74e]", "20")
+ self.bid64_fma("1", "[0e45000000000000]", "[0f512df7108ecb14]", "[8d1ea59449a41dac]", "[8d1ea59449a41dac]", "20")
+ self.bid64_fma("1", "-0", "-Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "-0", "-Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "0", "-Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_fma("1", "0", "Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_fma("1", "0", "QNaN", "-0", "[7c00000000000000]", "00")
+ self.bid64_fma("1", "-0", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "-1000000.00E-198", "+55.86898859557879567887558857876986965876E2515", "-6999699.7885768575965965588757588E-2899", "[f800000000000000]", "00")
+ self.bid64_fma("1", "+10101010.0111000011E-228", "+989587665895777579797998.76677669577E300", "-8922342.E-1600", "[6f2b8328ada4fc5b]", "20")
+ self.bid64_fma("1", "+110000000010.0000001000000000100E3597", "-9867789.776597E1391", "-89988888989989898.89E1544", "[f800000000000000]", "00")
+ self.bid64_fma("1", "-11.0010001111001E382", "-9.E191", "+8677.9E-1415", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "-1100101.10001011000100100000000101E3419", "-1110001.001100E-3563", "+7795597699996956896798785.E-1805", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "+11100000.01000011E2758", "+7875.78779995965695E499", "-6687578.675565878E336", "[7800000000000000]", "00")
+ self.bid64_fma("1", "[1f8ecaf50db921d8]", "[cea9e9211235b2ed]", "[ab2d40787f01205f]", "[be642069266fbf92]", "20")
+ self.bid64_fma("1", "[2480000000000000]", "[d5183d74e9ae8977]", "[d7897b705774214c]", "[d7897b705774214c]", "00")
+ self.bid64_fma("1", "[2780000000000000]", "[0e7d574b10e2f988]", "[48e58a6e466cc162]", "[48e58a6e466cc162]", "00")
+ self.bid64_fma("1", "-326329.E0", "-11101101.101111E0", "-0", "[316cdebee7001c03]", "20")
+ self.bid64_fma("1", "+365.2683758E0", "+8.8898988E0", "-0", "[304b894f68b18161]", "20")
+ self.bid64_fma("1", "[37b2914bed9892a5]", "[9195cf876c473226]", "[1c7773649ba05d00]", "[1c7773649ba05cff]", "20")
+ self.bid64_fma("1", "[408400010c600000]", "[0000000000000004]", "[8d3a48e479b391a3]", "[0ed00004317ffd1c]", "20")
+ self.bid64_fma("1", "+42577.8664943686864229E-1299", "-79998598895657755889.688985875E-2213", "-0.00000001000E-1418", "[8000000000000000]", "00")
+ self.bid64_fma("1", "-45.E-131", "-1110101100000101101001.111010110110E-285", "-1110110111001111000.110E-2623", "[000000000000c322]", "30")
+ self.bid64_fma("1", "-45.E-2952", "+9.988988898E-1156", "-0.000000100E239", "[cce38d7ea4c68000]", "00")
+ self.bid64_fma("1", "[49e87bc4b82ae3d8]", "[4b93057177b088e1]", "[1d46296d0dff2eb2]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "[51c46477bf75efe7]", "[c48e3181143e8cab]", "[3711407bd7e3541f]", "[f800000000000000]", "28")
+ self.bid64_fma("1", "[525013de42785593]", "[f78aa8a55a308acc]", "[6031ffec661217c4]", "[f800000000000000]", "28")
+ self.bid64_fma("1", "+5353472838896522543377.E-228", "+0.1E265", "-89889999889898898999999899889999.9E60", "[bb5fef72a73acfc2]", "20")
+ self.bid64_fma("1", "+56465267.E377", "+110000010000000.000011000000000000000000E50", "+767.E70", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "+56658585.5987986E128", "+0.1011100101110E361", "+228993.E-1026", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "-5895787759566.8568676785875687668E-3586", "-110010100110.1101100E-3798", "+6.7798666866E-3033", "[0000000000000000]", "00")
+ self.bid64_fma("1", "+655633969724693.E-1504", "-1000000000000100000000.00000000E-221", "+1111110010111.0E2177", "[7800000000000000]", "00")
+ self.bid64_fma("1", "+65659.55968875568E-129", "+9988899899988989898998998988989889.89888E-303", "-56985588.8E-437", "[0000000000010032]", "30")
+ self.bid64_fma("1", "+65677855.7959655555E0", "+100110000001.100001E0", "0", "[32375befd8042395]", "20")
+ self.bid64_fma("1", "-6588795998878667888757.9686576E-2896", "-89889.88988888898888999899E-3903", "-8.899899E1116", "[f800000000000000]", "00")
+ self.bid64_fma("1", "-699.76578678875598965578686688965E-3208", "+5.79767569577558E2557", "-98989.9998898E-161", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "-7575.866768897E765", "+6776634485838.5844462777436274E-3953", "-99998898.8989999899988999888898E1771", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "[76a26b16ca880e82]", "[532634af9dfd0a7e]", "[b5b3283b46229614]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "-79587.578569697596E2883", "-8899.898898899988888E672", "-99988898.9989998999999988889899989888989E1697", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "[81c0000000000000]", "[19b74526664b3842]", "[e680c8b0cef64c6f]", "[e680c8b0cef64c6f]", "00")
+ self.bid64_fma("1", "-828.64832E3917", "+110010110101.1101E-2003", "-567.69E-2577", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "-86987676.9558595E0", "+0.01101001E0", "-0", "[ec22068d03c5bb13]", "20")
+ self.bid64_fma("1", "[874d5036a44f4bcd]", "[0e15000000000000]", "[3bd60c8d9236d98e]", "[3bd60c8d9236d98d]", "20")
+ self.bid64_fma("1", "-87.7E0", "-26757.854527644E0", "0", "[30a8564740b6cf0a]", "20")
+ self.bid64_fma("1", "[8800000000000040]", "[000000500e000100]", "[ed7390ffbb99fe8f]", "[8000000000000001]", "30")
+ self.bid64_fma("1", "-8857.78555E3909", "-7759755569.88988E3403", "-0.1101E-2963", "[7800000000000000]", "00")
+ self.bid64_fma("1", "+8889989989.899E-365", "+26858538265655946599822795973789292.E-331", "+78869768569785878579778587856765798.6787E-3243", "[0000000000000000]", "30")
+ self.bid64_fma("1", "[891d87e54574a5a0]", "[214191950a290d55]", "[5600000000000000]", "[8000000000000001]", "30")
+ self.bid64_fma("1", "+8.988989898988899889988899898898998E2553", "-85877686689857987686968786877687.76E-2851", "-4.56E961", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "-89988.9E311", "-1001.1011101110E164", "-88759569597678767695566.55659E-1447", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "+8998989889988998999988998.8899E-2814", "-98998.888998899998989899E2343", "-0.011001011111000E3441", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "[8cf9356a90cc9005]", "[0005000080000000]", "[0800000000000001]", "[618386f26fc0ffff]", "20")
+ self.bid64_fma("1", "[8e3f278ee9c4e669]", "[3b4acfebb8528492]", "[9b857bc3e226884f]", "[9b857bc3e2268852]", "20")
+ self.bid64_fma("1", "+957876778.566865796E234", "+10.0000111000E324", "-10000000000000000.00000000E-2315", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "-9597.56757698559786E0", "-26.87623444E0", "-0", "[30892a0270e1914c]", "20")
+ self.bid64_fma("1", "[9626c2f864aba8e7]", "[9451d8944a4bf287]", "[9960000000000000]", "[0000000000000000]", "30")
+ self.bid64_fma("1", "-9699.6955766868969879586956798E139", "-1000.10001110111101000110001E344", "+93499387558657577225565.338744922886848E-3769", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "[96b40f6ca5493264]", "[0c5e000000000000]", "[0400000000000000]", "[8000000000000001]", "30")
+ self.bid64_fma("1", "+97.42E249", "-69558557765795767855.56778667876557767E31", "-59676.7886558886E-2632", "[d598131856ce1090]", "20")
+ self.bid64_fma("1", "+9758786597.697876697E0", "+101000011.100E0", "-0", "[6c830452433eeec8]", "20")
+ self.bid64_fma("1", "[9f7849c620634412]", "[406c3ab426c1d82a]", "[409ead39681471c0]", "[409ead39681471bf]", "20")
+ self.bid64_fma("1", "[a340012fe8e804dd]", "[085a000000000000]", "[813bf6b7cdef90a5]", "[813bf6b7cdef90a6]", "20")
+ self.bid64_fma("1", "[aa9ffa9b39179b2b]", "[b3f91aaf8f42d0d5]", "[39de64b67b2be906]", "[39de64b67b2be906]", "20")
+ self.bid64_fma("1", "[b960000000000000]", "[6c81bd06d1bc69f0]", "[1cbc0699f519b029]", "[1cbc0699f519b029]", "00")
+ self.bid64_fma("1", "[bfffffffff4fc6fd]", "[9b5d725ce93b4155]", "[2b7003da4fc61171]", "[2b8440fb0bb03764]", "20")
+ self.bid64_fma("1", "[c0c09514e19044f1]", "[0200000000000004]", "[392ecd038d588c91]", "[392ecd038d588c90]", "20")
+ self.bid64_fma("1", "[c12008b07ce1429e]", "[df386f30acf77614]", "[035d246c0e445f84]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "[c720000000000000]", "[ce24af51f46fefcd]", "[cddb16689ad47de7]", "[cddb16689ad47de7]", "00")
+ self.bid64_fma("1", "[cae8279978177853]", "[01e0000000000000]", "[4de0000000000000]", "[9b00000000000000]", "00")
+ self.bid64_fma("1", "[d1cb49ab4261aacd]", "[5f94f0fc918c4a6e]", "[1a8947c94c2dbf5b]", "[f800000000000000]", "28")
+ self.bid64_fma("1", "[d2fdca892420c735]", "[d28d4938435cb5b5]", "[bda7f323437d7c9f]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "[d94c0f24a80dd3a7]", "[6b9d4f6b6cf4d4a7]", "[0000000000000000]", "[8000000000000000]", "00")
+ self.bid64_fma("1", "[da05b8744546a5f0]", "[ca2d387e8c751657]", "[a511527ac20869f3]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "[eda10de61003dc4f]", "[dd179f310b113ff7]", "[3145f5c82f90ec6f]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "[f6f17a6f96d5746b]", "[c73d5c78e572caab]", "[c0e12a578ad1f74e]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("1", "-Infinity", "0", "-0", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "QNaN", "-Infinity", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "SNaN", "0", "0", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "SNaN", "0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "SNaN", "+5596858.E0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("1", "SNaN", "-Infinity", "QNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "[0000000000000000]", "[00d0400101510600]", "[0020000210a2430a]", "[00000014a6569e64]", "00")
+ self.bid64_fma("2", "[0000000000000000]", "[9b172504dc3f3a04]", "[8000824080280d50]", "[8000824080280d50]", "00")
+ self.bid64_fma("2", "[0000000000000002]", "[0000200008000000]", "[e624226f21bd67b4]", "[0000000000000001]", "30")
+ self.bid64_fma("2", "[0000000000000002]", "[db6e1916d82d44e5]", "[ab6ff4a3cec93add]", "[ab6ff4a3cec93b2c]", "20")
+ self.bid64_fma("2", "-0", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "-0.101111000011E-271", "-98.9989988999E331", "+0.000E-1998", "[37838e64dc87afee]", "20")
+ self.bid64_fma("2", "[01a0000000000001]", "[30005af3107a4000]", "[81a0000000000001]", "[0000000000000000]", "00")
+ self.bid64_fma("2", "+0.1E2167", "+99888998988889998.889899899989999E1387", "-7776567.96595796889999599997575989899887E-3096", "[7800000000000000]", "00")
+ self.bid64_fma("2", "[044cdee64742a8ce]", "[169ff4aa153c0a98]", "[53c0000000000000]", "[0000000000000001]", "30")
+ self.bid64_fma("2", "[086c63d816e5963d]", "[b1440640373e5484]", "[08c30041885810a0]", "[89ce08fa891e7ee6]", "20")
+ self.bid64_fma("2", "[0aee000000000000]", "[00a0000000000000]", "[733b16cad14044a1]", "[733b16cad14044a1]", "00")
+ self.bid64_fma("2", "[0be5000000000000]", "[55a9de340797b9c9]", "[ae2dd44cb79d04d1]", "[31ade350a34fa74f]", "20")
+ self.bid64_fma("2", "[0e45000000000000]", "[0f512df7108ecb14]", "[8d1ea59449a41dac]", "[8d1ea59449a41dab]", "20")
+ self.bid64_fma("2", "-0", "-Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "-0", "-Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "0", "-Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_fma("2", "0", "Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_fma("2", "0", "QNaN", "-0", "[7c00000000000000]", "00")
+ self.bid64_fma("2", "-0", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "-1000000.00E-198", "+55.86898859557879567887558857876986965876E2515", "-6999699.7885768575965965588757588E-2899", "[f800000000000000]", "00")
+ self.bid64_fma("2", "+10101010.0111000011E-228", "+989587665895777579797998.76677669577E300", "-8922342.E-1600", "[6f2b8328ada4fc5c]", "20")
+ self.bid64_fma("2", "+110000000010.0000001000000000100E3597", "-9867789.776597E1391", "-89988888989989898.89E1544", "[f800000000000000]", "00")
+ self.bid64_fma("2", "-11.0010001111001E382", "-9.E191", "+8677.9E-1415", "[7800000000000000]", "28")
+ self.bid64_fma("2", "-1100101.10001011000100100000000101E3419", "-1110001.001100E-3563", "+7795597699996956896798785.E-1805", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "+11100000.01000011E2758", "+7875.78779995965695E499", "-6687578.675565878E336", "[7800000000000000]", "00")
+ self.bid64_fma("2", "[1be97bd4237b54b0]", "[1324849ee5798891]", "[8000000080000000]", "[800000006bc40331]", "30")
+ self.bid64_fma("2", "[1f8ecaf50db921d8]", "[cea9e9211235b2ed]", "[ab2d40787f01205f]", "[be642069266fbf91]", "20")
+ self.bid64_fma("2", "[2480000000000000]", "[d5183d74e9ae8977]", "[d7897b705774214c]", "[d7897b705774214c]", "00")
+ self.bid64_fma("2", "[2780000000000000]", "[0e7d574b10e2f988]", "[48e58a6e466cc162]", "[48e58a6e466cc162]", "00")
+ self.bid64_fma("2", "-326329.E0", "-11101101.101111E0", "-0", "[316cdebee7001c04]", "20")
+ self.bid64_fma("2", "[326b500aa831fc00]", "[ccae07d6b3d4bf9c]", "[cb6f57b77fbffbec]", "[cf4477b97d44da02]", "20")
+ self.bid64_fma("2", "+365.2683758E0", "+8.8898988E0", "-0", "[304b894f68b18162]", "20")
+ self.bid64_fma("2", "[37b2914bed9892a5]", "[9195cf876c473226]", "[1c7773649ba05d00]", "[1c7773649ba05d00]", "20")
+ self.bid64_fma("2", "[408400010c600000]", "[0000000000000004]", "[8d3a48e479b391a3]", "[0ed00004317ffd1d]", "20")
+ self.bid64_fma("2", "+42577.8664943686864229E-1299", "-79998598895657755889.688985875E-2213", "-0.00000001000E-1418", "[8000000000000000]", "00")
+ self.bid64_fma("2", "-45.E-131", "-1110101100000101101001.111010110110E-285", "-1110110111001111000.110E-2623", "[000000000000c323]", "30")
+ self.bid64_fma("2", "-45.E-2952", "+9.988988898E-1156", "-0.000000100E239", "[cce38d7ea4c68000]", "00")
+ self.bid64_fma("2", "[49e87bc4b82ae3d8]", "[4b93057177b088e1]", "[1d46296d0dff2eb2]", "[7800000000000000]", "28")
+ self.bid64_fma("2", "[51c46477bf75efe7]", "[c48e3181143e8cab]", "[3711407bd7e3541f]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_fma("2", "[525013de42785593]", "[f78aa8a55a308acc]", "[6031ffec661217c4]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_fma("2", "+5353472838896522543377.E-228", "+0.1E265", "-89889999889898898999999899889999.9E60", "[bb5fef72a73acfc1]", "20")
+ self.bid64_fma("2", "+56465267.E377", "+110000010000000.000011000000000000000000E50", "+767.E70", "[7800000000000000]", "28")
+ self.bid64_fma("2", "+56658585.5987986E128", "+0.1011100101110E361", "+228993.E-1026", "[7800000000000000]", "28")
+ self.bid64_fma("2", "-5895787759566.8568676785875687668E-3586", "-110010100110.1101100E-3798", "+6.7798666866E-3033", "[0000000000000000]", "00")
+ self.bid64_fma("2", "+655633969724693.E-1504", "-1000000000000100000000.00000000E-221", "+1111110010111.0E2177", "[7800000000000000]", "00")
+ self.bid64_fma("2", "+65659.55968875568E-129", "+9988899899988989898998998988989889.89888E-303", "-56985588.8E-437", "[0000000000010033]", "30")
+ self.bid64_fma("2", "+65677855.7959655555E0", "+100110000001.100001E0", "0", "[32375befd8042396]", "20")
+ self.bid64_fma("2", "-6588795998878667888757.9686576E-2896", "-89889.88988888898888999899E-3903", "-8.899899E1116", "[f800000000000000]", "00")
+ self.bid64_fma("2", "-699.76578678875598965578686688965E-3208", "+5.79767569577558E2557", "-98989.9998898E-161", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "-7575.866768897E765", "+6776634485838.5844462777436274E-3953", "-99998898.8989999899988999888898E1771", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "[76a26b16ca880e82]", "[532634af9dfd0a7e]", "[b5b3283b46229614]", "[7800000000000000]", "28")
+ self.bid64_fma("2", "-79587.578569697596E2883", "-8899.898898899988888E672", "-99988898.9989998999999988889899989888989E1697", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "[81c0000000000000]", "[19b74526664b3842]", "[e680c8b0cef64c6f]", "[e680c8b0cef64c6f]", "00")
+ self.bid64_fma("2", "-828.64832E3917", "+110010110101.1101E-2003", "-567.69E-2577", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "-86987676.9558595E0", "+0.01101001E0", "-0", "[ec22068d03c5bb12]", "20")
+ self.bid64_fma("2", "[874d5036a44f4bcd]", "[0e15000000000000]", "[3bd60c8d9236d98e]", "[3bd60c8d9236d98e]", "20")
+ self.bid64_fma("2", "-87.7E0", "-26757.854527644E0", "0", "[30a8564740b6cf0b]", "20")
+ self.bid64_fma("2", "-8857.78555E3909", "-7759755569.88988E3403", "-0.1101E-2963", "[7800000000000000]", "00")
+ self.bid64_fma("2", "+8889989989.899E-365", "+26858538265655946599822795973789292.E-331", "+78869768569785878579778587856765798.6787E-3243", "[0000000000000001]", "30")
+ self.bid64_fma("2", "[891d87e54574a5a0]", "[214191950a290d55]", "[5600000000000000]", "[8000000000000000]", "30")
+ self.bid64_fma("2", "+8.988989898988899889988899898898998E2553", "-85877686689857987686968786877687.76E-2851", "-4.56E961", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "-89988.9E311", "-1001.1011101110E164", "-88759569597678767695566.55659E-1447", "[7800000000000000]", "28")
+ self.bid64_fma("2", "+8998989889988998999988998.8899E-2814", "-98998.888998899998989899E2343", "-0.011001011111000E3441", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "[8e3f278ee9c4e669]", "[3b4acfebb8528492]", "[9b857bc3e226884f]", "[9b857bc3e2268851]", "20")
+ self.bid64_fma("2", "+957876778.566865796E234", "+10.0000111000E324", "-10000000000000000.00000000E-2315", "[7800000000000000]", "28")
+ self.bid64_fma("2", "-9597.56757698559786E0", "-26.87623444E0", "-0", "[30892a0270e1914d]", "20")
+ self.bid64_fma("2", "[9626c2f864aba8e7]", "[9451d8944a4bf287]", "[9960000000000000]", "[0000000000000001]", "30")
+ self.bid64_fma("2", "-9699.6955766868969879586956798E139", "-1000.10001110111101000110001E344", "+93499387558657577225565.338744922886848E-3769", "[7800000000000000]", "28")
+ self.bid64_fma("2", "[96b40f6ca5493264]", "[0c5e000000000000]", "[0400000000000000]", "[8000000000000000]", "30")
+ self.bid64_fma("2", "+97.42E249", "-69558557765795767855.56778667876557767E31", "-59676.7886558886E-2632", "[d598131856ce108f]", "20")
+ self.bid64_fma("2", "+9758786597.697876697E0", "+101000011.100E0", "-0", "[6c830452433eeec9]", "20")
+ self.bid64_fma("2", "[9f7849c620634412]", "[406c3ab426c1d82a]", "[409ead39681471c0]", "[409ead39681471c0]", "20")
+ self.bid64_fma("2", "[a340012fe8e804dd]", "[085a000000000000]", "[813bf6b7cdef90a5]", "[813bf6b7cdef90a5]", "20")
+ self.bid64_fma("2", "[aa9ffa9b39179b2b]", "[b3f91aaf8f42d0d5]", "[39de64b67b2be906]", "[39de64b67b2be907]", "20")
+ self.bid64_fma("2", "[b960000000000000]", "[6c81bd06d1bc69f0]", "[1cbc0699f519b029]", "[1cbc0699f519b029]", "00")
+ self.bid64_fma("2", "[bfffffffff4fc6fd]", "[9b5d725ce93b4155]", "[2b7003da4fc61171]", "[2b8440fb0bb03765]", "20")
+ self.bid64_fma("2", "[c12008b07ce1429e]", "[df386f30acf77614]", "[035d246c0e445f84]", "[7800000000000000]", "28")
+ self.bid64_fma("2", "[c720000000000000]", "[ce24af51f46fefcd]", "[cddb16689ad47de7]", "[cddb16689ad47de7]", "00")
+ self.bid64_fma("2", "[cae8279978177853]", "[01e0000000000000]", "[4de0000000000000]", "[1b00000000000000]", "00")
+ self.bid64_fma("2", "[cc53077b376ebbb5]", "[4400010000401000]", "[63993af82938c24d]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_fma("2", "[d1cb49ab4261aacd]", "[5f94f0fc918c4a6e]", "[1a8947c94c2dbf5b]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_fma("2", "[d2fdca892420c735]", "[d28d4938435cb5b5]", "[bda7f323437d7c9f]", "[7800000000000000]", "28")
+ self.bid64_fma("2", "[da05b8744546a5f0]", "[ca2d387e8c751657]", "[a511527ac20869f3]", "[7800000000000000]", "28")
+ self.bid64_fma("2", "[eda10de61003dc4f]", "[dd179f310b113ff7]", "[3145f5c82f90ec6f]", "[7800000000000000]", "28")
+ self.bid64_fma("2", "[f6f17a6f96d5746b]", "[c73d5c78e572caab]", "[c0e12a578ad1f74e]", "[7800000000000000]", "28")
+ self.bid64_fma("2", "-Infinity", "0", "-0", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "QNaN", "-Infinity", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "SNaN", "0", "0", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "SNaN", "0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "SNaN", "+5596858.E0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("2", "SNaN", "-Infinity", "QNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "-0", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "-0.101111000011E-271", "-98.9989988999E331", "+0.000E-1998", "[37838e64dc87afed]", "20")
+ self.bid64_fma("3", "[01a0000000000001]", "[30005af3107a4000]", "[81a0000000000001]", "[0000000000000000]", "00")
+ self.bid64_fma("3", "+0.1E2167", "+99888998988889998.889899899989999E1387", "-7776567.96595796889999599997575989899887E-3096", "[7800000000000000]", "00")
+ self.bid64_fma("3", "[044cdee64742a8ce]", "[169ff4aa153c0a98]", "[53c0000000000000]", "[0000000000000000]", "30")
+ self.bid64_fma("3", "[0aee000000000000]", "[00a0000000000000]", "[733b16cad14044a1]", "[733b16cad14044a1]", "00")
+ self.bid64_fma("3", "[0be5000000000000]", "[55a9de340797b9c9]", "[ae2dd44cb79d04d1]", "[31ade350a34fa74e]", "20")
+ self.bid64_fma("3", "[0e45000000000000]", "[0f512df7108ecb14]", "[8d1ea59449a41dac]", "[8d1ea59449a41dab]", "20")
+ self.bid64_fma("3", "-0", "-Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "-0", "-Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "0", "-Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_fma("3", "0", "Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_fma("3", "0", "QNaN", "-0", "[7c00000000000000]", "00")
+ self.bid64_fma("3", "-0", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "-1000000.00E-198", "+55.86898859557879567887558857876986965876E2515", "-6999699.7885768575965965588757588E-2899", "[f800000000000000]", "00")
+ self.bid64_fma("3", "+10101010.0111000011E-228", "+989587665895777579797998.76677669577E300", "-8922342.E-1600", "[6f2b8328ada4fc5b]", "20")
+ self.bid64_fma("3", "+110000000010.0000001000000000100E3597", "-9867789.776597E1391", "-89988888989989898.89E1544", "[f800000000000000]", "00")
+ self.bid64_fma("3", "-11.0010001111001E382", "-9.E191", "+8677.9E-1415", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "-1100101.10001011000100100000000101E3419", "-1110001.001100E-3563", "+7795597699996956896798785.E-1805", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "+11100000.01000011E2758", "+7875.78779995965695E499", "-6687578.675565878E336", "[7800000000000000]", "00")
+ self.bid64_fma("3", "[1f8ecaf50db921d8]", "[cea9e9211235b2ed]", "[ab2d40787f01205f]", "[be642069266fbf91]", "20")
+ self.bid64_fma("3", "[2480000000000000]", "[d5183d74e9ae8977]", "[d7897b705774214c]", "[d7897b705774214c]", "00")
+ self.bid64_fma("3", "[2780000000000000]", "[0e7d574b10e2f988]", "[48e58a6e466cc162]", "[48e58a6e466cc162]", "00")
+ self.bid64_fma("3", "-326329.E0", "-11101101.101111E0", "-0", "[316cdebee7001c03]", "20")
+ self.bid64_fma("3", "+365.2683758E0", "+8.8898988E0", "-0", "[304b894f68b18161]", "20")
+ self.bid64_fma("3", "[37b2914bed9892a5]", "[9195cf876c473226]", "[1c7773649ba05d00]", "[1c7773649ba05cff]", "20")
+ self.bid64_fma("3", "+42577.8664943686864229E-1299", "-79998598895657755889.688985875E-2213", "-0.00000001000E-1418", "[8000000000000000]", "00")
+ self.bid64_fma("3", "-45.E-131", "-1110101100000101101001.111010110110E-285", "-1110110111001111000.110E-2623", "[000000000000c322]", "30")
+ self.bid64_fma("3", "-45.E-2952", "+9.988988898E-1156", "-0.000000100E239", "[cce38d7ea4c68000]", "00")
+ self.bid64_fma("3", "[49e87bc4b82ae3d8]", "[4b93057177b088e1]", "[1d46296d0dff2eb2]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "[51c46477bf75efe7]", "[c48e3181143e8cab]", "[3711407bd7e3541f]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "[525013de42785593]", "[f78aa8a55a308acc]", "[6031ffec661217c4]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "+5353472838896522543377.E-228", "+0.1E265", "-89889999889898898999999899889999.9E60", "[bb5fef72a73acfc1]", "20")
+ self.bid64_fma("3", "+56465267.E377", "+110000010000000.000011000000000000000000E50", "+767.E70", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "+56658585.5987986E128", "+0.1011100101110E361", "+228993.E-1026", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "-5895787759566.8568676785875687668E-3586", "-110010100110.1101100E-3798", "+6.7798666866E-3033", "[0000000000000000]", "00")
+ self.bid64_fma("3", "+655633969724693.E-1504", "-1000000000000100000000.00000000E-221", "+1111110010111.0E2177", "[7800000000000000]", "00")
+ self.bid64_fma("3", "+65659.55968875568E-129", "+9988899899988989898998998988989889.89888E-303", "-56985588.8E-437", "[0000000000010032]", "30")
+ self.bid64_fma("3", "+65677855.7959655555E0", "+100110000001.100001E0", "0", "[32375befd8042395]", "20")
+ self.bid64_fma("3", "-6588795998878667888757.9686576E-2896", "-89889.88988888898888999899E-3903", "-8.899899E1116", "[f800000000000000]", "00")
+ self.bid64_fma("3", "-699.76578678875598965578686688965E-3208", "+5.79767569577558E2557", "-98989.9998898E-161", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "-7575.866768897E765", "+6776634485838.5844462777436274E-3953", "-99998898.8989999899988999888898E1771", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "[76a26b16ca880e82]", "[532634af9dfd0a7e]", "[b5b3283b46229614]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "-79587.578569697596E2883", "-8899.898898899988888E672", "-99988898.9989998999999988889899989888989E1697", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "[81c0000000000000]", "[19b74526664b3842]", "[e680c8b0cef64c6f]", "[e680c8b0cef64c6f]", "00")
+ self.bid64_fma("3", "-828.64832E3917", "+110010110101.1101E-2003", "-567.69E-2577", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "-86987676.9558595E0", "+0.01101001E0", "-0", "[ec22068d03c5bb12]", "20")
+ self.bid64_fma("3", "[874d5036a44f4bcd]", "[0e15000000000000]", "[3bd60c8d9236d98e]", "[3bd60c8d9236d98d]", "20")
+ self.bid64_fma("3", "-87.7E0", "-26757.854527644E0", "0", "[30a8564740b6cf0a]", "20")
+ self.bid64_fma("3", "-8857.78555E3909", "-7759755569.88988E3403", "-0.1101E-2963", "[7800000000000000]", "00")
+ self.bid64_fma("3", "+8889989989.899E-365", "+26858538265655946599822795973789292.E-331", "+78869768569785878579778587856765798.6787E-3243", "[0000000000000000]", "30")
+ self.bid64_fma("3", "[891d87e54574a5a0]", "[214191950a290d55]", "[5600000000000000]", "[8000000000000000]", "30")
+ self.bid64_fma("3", "+8.988989898988899889988899898898998E2553", "-85877686689857987686968786877687.76E-2851", "-4.56E961", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "-89988.9E311", "-1001.1011101110E164", "-88759569597678767695566.55659E-1447", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "+8998989889988998999988998.8899E-2814", "-98998.888998899998989899E2343", "-0.011001011111000E3441", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "[8e3f278ee9c4e669]", "[3b4acfebb8528492]", "[9b857bc3e226884f]", "[9b857bc3e2268851]", "20")
+ self.bid64_fma("3", "+957876778.566865796E234", "+10.0000111000E324", "-10000000000000000.00000000E-2315", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "-9597.56757698559786E0", "-26.87623444E0", "-0", "[30892a0270e1914c]", "20")
+ self.bid64_fma("3", "[9626c2f864aba8e7]", "[9451d8944a4bf287]", "[9960000000000000]", "[0000000000000000]", "30")
+ self.bid64_fma("3", "-9699.6955766868969879586956798E139", "-1000.10001110111101000110001E344", "+93499387558657577225565.338744922886848E-3769", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "[96b40f6ca5493264]", "[0c5e000000000000]", "[0400000000000000]", "[8000000000000000]", "30")
+ self.bid64_fma("3", "+97.42E249", "-69558557765795767855.56778667876557767E31", "-59676.7886558886E-2632", "[d598131856ce108f]", "20")
+ self.bid64_fma("3", "+9758786597.697876697E0", "+101000011.100E0", "-0", "[6c830452433eeec8]", "20")
+ self.bid64_fma("3", "[9f7849c620634412]", "[406c3ab426c1d82a]", "[409ead39681471c0]", "[409ead39681471bf]", "20")
+ self.bid64_fma("3", "[a340012fe8e804dd]", "[085a000000000000]", "[813bf6b7cdef90a5]", "[813bf6b7cdef90a5]", "20")
+ self.bid64_fma("3", "[aa9ffa9b39179b2b]", "[b3f91aaf8f42d0d5]", "[39de64b67b2be906]", "[39de64b67b2be906]", "20")
+ self.bid64_fma("3", "[b960000000000000]", "[6c81bd06d1bc69f0]", "[1cbc0699f519b029]", "[1cbc0699f519b029]", "00")
+ self.bid64_fma("3", "[c12008b07ce1429e]", "[df386f30acf77614]", "[035d246c0e445f84]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "[c720000000000000]", "[ce24af51f46fefcd]", "[cddb16689ad47de7]", "[cddb16689ad47de7]", "00")
+ self.bid64_fma("3", "[cae8279978177853]", "[01e0000000000000]", "[4de0000000000000]", "[1b00000000000000]", "00")
+ self.bid64_fma("3", "[d1cb49ab4261aacd]", "[5f94f0fc918c4a6e]", "[1a8947c94c2dbf5b]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "[d2fdca892420c735]", "[d28d4938435cb5b5]", "[bda7f323437d7c9f]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "[da05b8744546a5f0]", "[ca2d387e8c751657]", "[a511527ac20869f3]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "[eda10de61003dc4f]", "[dd179f310b113ff7]", "[3145f5c82f90ec6f]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "[f6f17a6f96d5746b]", "[c73d5c78e572caab]", "[c0e12a578ad1f74e]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_fma("3", "-Infinity", "0", "-0", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "QNaN", "-Infinity", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "SNaN", "0", "0", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "SNaN", "0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "SNaN", "+5596858.E0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("3", "SNaN", "-Infinity", "QNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "-0", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "-0.101111000011E-271", "-98.9989988999E331", "+0.000E-1998", "[37838e64dc87afee]", "20")
+ self.bid64_fma("4", "[01a0000000000001]", "[30005af3107a4000]", "[81a0000000000001]", "[0000000000000000]", "00")
+ self.bid64_fma("4", "+0.1E2167", "+99888998988889998.889899899989999E1387", "-7776567.96595796889999599997575989899887E-3096", "[7800000000000000]", "00")
+ self.bid64_fma("4", "[044cdee64742a8ce]", "[169ff4aa153c0a98]", "[53c0000000000000]", "[0000000000000000]", "30")
+ self.bid64_fma("4", "[0aee000000000000]", "[00a0000000000000]", "[733b16cad14044a1]", "[733b16cad14044a1]", "00")
+ self.bid64_fma("4", "[0be5000000000000]", "[55a9de340797b9c9]", "[ae2dd44cb79d04d1]", "[31ade350a34fa74f]", "20")
+ self.bid64_fma("4", "[0e45000000000000]", "[0f512df7108ecb14]", "[8d1ea59449a41dac]", "[8d1ea59449a41dac]", "20")
+ self.bid64_fma("4", "-0", "-Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "-0", "-Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "0", "-Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_fma("4", "0", "Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_fma("4", "0", "QNaN", "-0", "[7c00000000000000]", "00")
+ self.bid64_fma("4", "-0", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "-1000000.00E-198", "+55.86898859557879567887558857876986965876E2515", "-6999699.7885768575965965588757588E-2899", "[f800000000000000]", "00")
+ self.bid64_fma("4", "+10101010.0111000011E-228", "+989587665895777579797998.76677669577E300", "-8922342.E-1600", "[6f2b8328ada4fc5c]", "20")
+ self.bid64_fma("4", "+110000000010.0000001000000000100E3597", "-9867789.776597E1391", "-89988888989989898.89E1544", "[f800000000000000]", "00")
+ self.bid64_fma("4", "-11.0010001111001E382", "-9.E191", "+8677.9E-1415", "[7800000000000000]", "28")
+ self.bid64_fma("4", "-1100101.10001011000100100000000101E3419", "-1110001.001100E-3563", "+7795597699996956896798785.E-1805", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "+11100000.01000011E2758", "+7875.78779995965695E499", "-6687578.675565878E336", "[7800000000000000]", "00")
+ self.bid64_fma("4", "[1f8ecaf50db921d8]", "[cea9e9211235b2ed]", "[ab2d40787f01205f]", "[be642069266fbf92]", "20")
+ self.bid64_fma("4", "[2480000000000000]", "[d5183d74e9ae8977]", "[d7897b705774214c]", "[d7897b705774214c]", "00")
+ self.bid64_fma("4", "[2780000000000000]", "[0e7d574b10e2f988]", "[48e58a6e466cc162]", "[48e58a6e466cc162]", "00")
+ self.bid64_fma("4", "-326329.E0", "-11101101.101111E0", "-0", "[316cdebee7001c04]", "20")
+ self.bid64_fma("4", "+365.2683758E0", "+8.8898988E0", "-0", "[304b894f68b18161]", "20")
+ self.bid64_fma("4", "[37b2914bed9892a5]", "[9195cf876c473226]", "[1c7773649ba05d00]", "[1c7773649ba05d00]", "20")
+ self.bid64_fma("4", "+42577.8664943686864229E-1299", "-79998598895657755889.688985875E-2213", "-0.00000001000E-1418", "[8000000000000000]", "00")
+ self.bid64_fma("4", "-45.E-131", "-1110101100000101101001.111010110110E-285", "-1110110111001111000.110E-2623", "[000000000000c323]", "30")
+ self.bid64_fma("4", "-45.E-2952", "+9.988988898E-1156", "-0.000000100E239", "[cce38d7ea4c68000]", "00")
+ self.bid64_fma("4", "[49e87bc4b82ae3d8]", "[4b93057177b088e1]", "[1d46296d0dff2eb2]", "[7800000000000000]", "28")
+ self.bid64_fma("4", "[51c46477bf75efe7]", "[c48e3181143e8cab]", "[3711407bd7e3541f]", "[f800000000000000]", "28")
+ self.bid64_fma("4", "[525013de42785593]", "[f78aa8a55a308acc]", "[6031ffec661217c4]", "[f800000000000000]", "28")
+ self.bid64_fma("4", "+5353472838896522543377.E-228", "+0.1E265", "-89889999889898898999999899889999.9E60", "[bb5fef72a73acfc2]", "20")
+ self.bid64_fma("4", "+56465267.E377", "+110000010000000.000011000000000000000000E50", "+767.E70", "[7800000000000000]", "28")
+ self.bid64_fma("4", "+56658585.5987986E128", "+0.1011100101110E361", "+228993.E-1026", "[7800000000000000]", "28")
+ self.bid64_fma("4", "-5895787759566.8568676785875687668E-3586", "-110010100110.1101100E-3798", "+6.7798666866E-3033", "[0000000000000000]", "00")
+ self.bid64_fma("4", "+655633969724693.E-1504", "-1000000000000100000000.00000000E-221", "+1111110010111.0E2177", "[7800000000000000]", "00")
+ self.bid64_fma("4", "+65659.55968875568E-129", "+9988899899988989898998998988989889.89888E-303", "-56985588.8E-437", "[0000000000010033]", "30")
+ self.bid64_fma("4", "+65677855.7959655555E0", "+100110000001.100001E0", "0", "[32375befd8042396]", "20")
+ self.bid64_fma("4", "-6588795998878667888757.9686576E-2896", "-89889.88988888898888999899E-3903", "-8.899899E1116", "[f800000000000000]", "00")
+ self.bid64_fma("4", "-699.76578678875598965578686688965E-3208", "+5.79767569577558E2557", "-98989.9998898E-161", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "-7575.866768897E765", "+6776634485838.5844462777436274E-3953", "-99998898.8989999899988999888898E1771", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "[76a26b16ca880e82]", "[532634af9dfd0a7e]", "[b5b3283b46229614]", "[7800000000000000]", "28")
+ self.bid64_fma("4", "-79587.578569697596E2883", "-8899.898898899988888E672", "-99988898.9989998999999988889899989888989E1697", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "[81c0000000000000]", "[19b74526664b3842]", "[e680c8b0cef64c6f]", "[e680c8b0cef64c6f]", "00")
+ self.bid64_fma("4", "-828.64832E3917", "+110010110101.1101E-2003", "-567.69E-2577", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "-86987676.9558595E0", "+0.01101001E0", "-0", "[ec22068d03c5bb13]", "20")
+ self.bid64_fma("4", "[874d5036a44f4bcd]", "[0e15000000000000]", "[3bd60c8d9236d98e]", "[3bd60c8d9236d98e]", "20")
+ self.bid64_fma("4", "-87.7E0", "-26757.854527644E0", "0", "[30a8564740b6cf0b]", "20")
+ self.bid64_fma("4", "-8857.78555E3909", "-7759755569.88988E3403", "-0.1101E-2963", "[7800000000000000]", "00")
+ self.bid64_fma("4", "+8889989989.899E-365", "+26858538265655946599822795973789292.E-331", "+78869768569785878579778587856765798.6787E-3243", "[0000000000000000]", "30")
+ self.bid64_fma("4", "[891d87e54574a5a0]", "[214191950a290d55]", "[5600000000000000]", "[8000000000000000]", "30")
+ self.bid64_fma("4", "+8.988989898988899889988899898898998E2553", "-85877686689857987686968786877687.76E-2851", "-4.56E961", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "-89988.9E311", "-1001.1011101110E164", "-88759569597678767695566.55659E-1447", "[7800000000000000]", "28")
+ self.bid64_fma("4", "+8998989889988998999988998.8899E-2814", "-98998.888998899998989899E2343", "-0.011001011111000E3441", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "[8e3f278ee9c4e669]", "[3b4acfebb8528492]", "[9b857bc3e226884f]", "[9b857bc3e2268852]", "20")
+ self.bid64_fma("4", "+957876778.566865796E234", "+10.0000111000E324", "-10000000000000000.00000000E-2315", "[7800000000000000]", "28")
+ self.bid64_fma("4", "-9597.56757698559786E0", "-26.87623444E0", "-0", "[30892a0270e1914d]", "20")
+ self.bid64_fma("4", "[9626c2f864aba8e7]", "[9451d8944a4bf287]", "[9960000000000000]", "[0000000000000000]", "30")
+ self.bid64_fma("4", "-9699.6955766868969879586956798E139", "-1000.10001110111101000110001E344", "+93499387558657577225565.338744922886848E-3769", "[7800000000000000]", "28")
+ self.bid64_fma("4", "[96b40f6ca5493264]", "[0c5e000000000000]", "[0400000000000000]", "[8000000000000000]", "30")
+ self.bid64_fma("4", "+97.42E249", "-69558557765795767855.56778667876557767E31", "-59676.7886558886E-2632", "[d598131856ce1090]", "20")
+ self.bid64_fma("4", "+9758786597.697876697E0", "+101000011.100E0", "-0", "[6c830452433eeec8]", "20")
+ self.bid64_fma("4", "[9f7849c620634412]", "[406c3ab426c1d82a]", "[409ead39681471c0]", "[409ead39681471c0]", "20")
+ self.bid64_fma("4", "[a340012fe8e804dd]", "[085a000000000000]", "[813bf6b7cdef90a5]", "[813bf6b7cdef90a5]", "20")
+ self.bid64_fma("4", "[aa9ffa9b39179b2b]", "[b3f91aaf8f42d0d5]", "[39de64b67b2be906]", "[39de64b67b2be906]", "20")
+ self.bid64_fma("4", "[b960000000000000]", "[6c81bd06d1bc69f0]", "[1cbc0699f519b029]", "[1cbc0699f519b029]", "00")
+ self.bid64_fma("4", "[c12008b07ce1429e]", "[df386f30acf77614]", "[035d246c0e445f84]", "[7800000000000000]", "28")
+ self.bid64_fma("4", "[c720000000000000]", "[ce24af51f46fefcd]", "[cddb16689ad47de7]", "[cddb16689ad47de7]", "00")
+ self.bid64_fma("4", "[cae8279978177853]", "[01e0000000000000]", "[4de0000000000000]", "[1b00000000000000]", "00")
+ self.bid64_fma("4", "[d1cb49ab4261aacd]", "[5f94f0fc918c4a6e]", "[1a8947c94c2dbf5b]", "[f800000000000000]", "28")
+ self.bid64_fma("4", "[d2fdca892420c735]", "[d28d4938435cb5b5]", "[bda7f323437d7c9f]", "[7800000000000000]", "28")
+ self.bid64_fma("4", "[da05b8744546a5f0]", "[ca2d387e8c751657]", "[a511527ac20869f3]", "[7800000000000000]", "28")
+ self.bid64_fma("4", "[eda10de61003dc4f]", "[dd179f310b113ff7]", "[3145f5c82f90ec6f]", "[7800000000000000]", "28")
+ self.bid64_fma("4", "[f6f17a6f96d5746b]", "[c73d5c78e572caab]", "[c0e12a578ad1f74e]", "[7800000000000000]", "28")
+ self.bid64_fma("4", "-Infinity", "0", "-0", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "QNaN", "-Infinity", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "SNaN", "0", "0", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "SNaN", "0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "SNaN", "+5596858.E0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("4", "SNaN", "-Infinity", "QNaN", "[7c00000000000000]", "01")
+ self.bid64_fma("0", "1001001001001001E-383", "999E-18", "0.0", "1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_fma("1", "1001001001001001E-383", "999E-18", "0.0", "999999999999999E-398", "0x30")
+ self.bid64_fma("2", "1001001001001001E-383", "999E-18", "0.0", "1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_fma("3", "1001001001001001E-383", "999E-18", "0.0", "999999999999999E-398", "0x30")
+ self.bid64_fma("4", "1001001001001001E-383", "999E-18", "0.0", "1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_fma("0", "5e-101", "-1e-299", "1e-383", "1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_fma("1", "5e-101", "-1e-299", "1e-383", "999999999999999E-398", "0x30")
+ self.bid64_fma("2", "5e-101", "-1e-299", "1e-383", "1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_fma("3", "5e-101", "-1e-299", "1e-383", "999999999999999E-398", "0x30")
+ self.bid64_fma("4", "5e-101", "-1e-299", "1e-383", "1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_fma("0", "5e-101", "1e-299", "-1e-383", "-1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_fma("1", "5e-101", "1e-299", "-1e-383", "-1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_fma("2", "5e-101", "1e-299", "-1e-383", "-999999999999999E-398", "0x30")
+ self.bid64_fma("3", "5e-101", "1e-299", "-1e-383", "-999999999999999E-398", "0x30")
+ self.bid64_fma("4", "5e-101", "1e-299", "-1e-383", "-1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_fma("1", "123456789877675", "333444", "1E+10", "4116592585397146E+4", "20")
+ self.bid64_fma("0", "12345678987767", "707", "1E+10", "8728405044351269", "00")
+ self.bid64_fma("0", "[18e000000098967f]", "[18c0000000989681]", "[01a0000000000063]", "+1000000000000000E-398", "30")
+ self.bid64_fma("4", "[18e000000098967f]", "[18c0000000989681]", "[01a0000000000063]", "+1000000000000000E-398", "30")
+ self.bid64_fma("1", "[18e000000098967f]", "[18c0000000989681]", "[01a0000000000063]", "+999999999999999E-398", "30")
+ self.bid64_fma("2", "[18e000000098967f]", "[18c0000000989681]", "[01a0000000000063]", "+1000000000000000E-398", "30")
+ self.bid64_fma("3", "[18e000000098967f]", "[18c0000000989681]", "[01a0000000000063]", "+999999999999999E-398", "30")
+ self.bid64_fma("1", "1", "1E+78", "-56", "9999999999999999E+62", "20")
+ self.bid64_fma("3", "1", "1E+78", "-56", "9999999999999999E+62", "20")
+ self.bid64_fma("2", "1", "1", "9999999999999999E+34", "1000000000000000E+35", "20")
+ self.bid64_fma("0", "1000000000000000", "1E+17", "-5000000000000001", "9999999999999999E+16", "20")
+ self.bid64_fma("0", "1", "1", "22E+16", "2200000000000000E+2", "20")
+ self.bid64_fma("0", "1", "1", "22E+17", "2200000000000000E+3", "20")
+ self.bid64_fma("0", "1", "1", "-22E+17", "-2200000000000000E+3", "20")
+ self.bid64_fma("1", "1", "1", "-22E+17", "-2200000000000000E+3", "20")
+ self.bid64_fma("2", "1", "1", "-22E+17", "-2199999999999999E+3", "20")
+ self.bid64_fma("3", "1", "1", "-22E+17", "-2199999999999999E+3", "20")
+ self.bid64_fma("4", "1", "1", "-22E+17", "-2200000000000000E+3", "20")
+ self.bid64_fma("0", "1", "1", "10000E+15", "+1000000000000000E+4", "20")
+ self.bid64_fma("0", "1", "9999999999999999", "9999999999999999E+16", "+1000000000000000E+17", "20")
+ self.bid64_fma("0", "1", "9999999999999999", "999999999999999E+16", "+1000000000000000E+16", "20")
+ self.bid64_fma("0", "1", "1000000000000000", "1000000000000000E+15", "+1000000000000001E+15", "00")
+ self.bid64_fma("1", "1E-200", "1E-300", "-1000000000000000E-398", "-1000000000000000E-398", "30", underflowBeforeOnly: true)
+ self.bid64_fma("2", "1E-200", "1E-300", "-1000000000000000E-398", "-999999999999999E-398", "30")
+ self.bid64_fma("0", "300", "-100000000000000", "3000000000000000E+1", "+0", "00")
+ self.bid64_fma("1", "300", "-100000000000000", "3000000000000000E+1", "-0", "00")
+ }
+
+ private func bid64_fma(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _arg2: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let arg2 = self.parseDecimal64(_arg2, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg2.addingProduct(arg0, arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_fma() {
+ self.bid128_fma("0", "[0000000000000000,220000a480610200]", "[a08000209c004320,ffffffff2ffeffff]", "[7192831a08d0ead7,5e4dab7f4f3b760d]", "[80000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[0000000000000000,25abea48f47fe490]", "[4c493a7c969bad2b,76a1b56533e260a8]", "[8ccd463902069400,525c91ee7cbe925d]", "[1c2e555e3947c2cb3aa3c216a272ab41]", "20")
+ self.bid128_fma("0", "[0000000000000000,7a3bbf3b7ffdff35]", "[b4c6038b34628801,202de043e0a17141]", "[044c85c8418a08a1,d023e78301809c08]", "[84a938212a8f117840e57cf17f8ae7f5]", "20")
+ self.bid128_fma("0", "[0000000000000000,99668468cd5c98f0]", "[0000000000000000,49f7e1fa6bc500e3]", "[bb54f9792e19d089,1adbc73c3ee90671]", "[bb54f9792e19d0891adbc73c3ee90671]", "20")
+ self.bid128_fma("0", "[0000000040100000,0914807100168068]", "[42388d980a0d182f,fdf7fb9fffb77fbf]", "[120e0840804c2000,9795fef6efbf5da3]", "[123118bac0a6c56c28427200d14258e4]", "20")
+ self.bid128_fma("0", "+0.000000101000000000000000000000000E-4535", "+576965797975755539.592559457375275E3867", "-9889.8889899889E-5217", "[2adb1f4f8e1a22f123ed587be9653ee5]", "20")
+ self.bid128_fma("0", "[0000080000200000,fb77fff7ebaffe77]", "[344000260314504d,9ff6ef7e7effffef]", "[83efae20f633be83,59dcdc469300c40e]", "[043af0ee0ebefd545fbe344c03f90b93]", "20")
+ self.bid128_fma("0", "[0000401020812000,75984b28706bfc2c]", "[0004100010001400,fffffff5ffbff7df]", "[0000000000000000,5989600342128d40]", "[00000000000000005989600342128d40]", "30")
+ self.bid128_fma("0", "+0.001100000000000000000000000000000E4244", "-55795556875596897.79877787878755655E2565", "-11010.0111101E-2213", "[f8000000000000000000000000000000]", "28")
+ self.bid128_fma("0", "[0002200004001000,8dcff22cd7b7cc64]", "[afcefb9772509edf,100000a010c00028]", "[8000130222000008,6ecdbe911690cb5d]", "[80001302220000086ecdbe98cca6e05e]", "30")
+ self.bid128_fma("0", "+0.01100E-1478", "-1000.000E-4692", "-795978769977867786895765698.9675988E-6199", "[80000000000000000000000000a7f7d8]", "00")
+ self.bid128_fma("0", "[0040000000000000,d7ff7e5fc7ffafeb]", "[a7fa213d8e6dc4bb,ffffff7fffffffff]", "[75ed386a07c300ff,f60dac4c6b68a087]", "[80000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[0080000000000000,888a48a201dd2400]", "[0000000000000000,00180102804618b0]", "[bffffdffffffffff,9220f4331f637e3d]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[0080000000004001,215b954e09a0b40d]", "[dd7d8ff5ff6fbcf8,95bdb9ad66407ed3]", "[2e31e8b329d06f83,709bac119d4088b6]", "[2e31e8b329d06f83709bac119d4088b6]", "20")
+ self.bid128_fma("0", "[011c2e380536f031,465bbaf1ba3084fd]", "[30fde49094274b7b,d9462a2e21676b35]", "[dd5637abd709b8c8,55623880c2539dbf]", "[dd5637abd709b8c855623880c2539dbf]", "20")
+ self.bid128_fma("0", "[023ee0350f61c530,af68e419164e427f]", "[2b8188689b483b77,adefb812c46ebbab]", "[1dd8000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[0264836a011bfb20,e2bb99925ff56d43]", "[1761e368e28ecb57,b50f9319de6bff51]", "[93ee000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[0400000000010040,6d7a72e7789fe9bd]", "[0000000000000000,0000010000200048]", "[0000000000000200,29684c8cb658368b]", "[000000000000020029684c8cb658368b]", "30")
+ self.bid128_fma("0", "[07587000f0d76149,acf8789122da23e2]", "[7e0002fae97029cb,b43750add58239a3]", "[92bf6da1794a81ea,6d4fdc10cf7dbb50]", "[7c0002fae97029cbb43750add58239a3]", "01")
+ self.bid128_fma("0", "[0800004010000200,0080100000000000]", "[0000000000053000,5fef5fffd7f7ebb7]", "[c360e34dfbfc835e,11af409d669f0570]", "[c360e34dfbfc835e11af409d669f0570]", "20")
+ self.bid128_fma("0", "[088d9e17db426087,7679fbaeeeedfae9]", "[0001010270000080,efffffffdfffffff]", "[32d882284508c86c,0000000000000000]", "[32d882284508c86c0000000000000000]", "20")
+ self.bid128_fma("0", "[0c0280001728229e,ffffffffdfffffff]", "[ceb42f3d4c1b801d,d643c645f168910b]", "[2b0000c03aa0000c,ffffff7fffffffff]", "[2afc4b16e6800513ffffcdffffffff9c]", "20")
+ self.bid128_fma("0", "[0da8fa89ea07e703,d61966756ccbae8c]", "[99ecf2da4f3e1ae4,f88bbf3c86362aac]", "[8118000000000000,0000000000000000]", "[80000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[0fa285fc05be99df,dfffbffffffffffe]", "[201860622000394d,2018359b50204a10]", "[0000080800202000,0000000000000000]", "[00000808002020000000000000000001]", "30")
+ self.bid128_fma("0", "0", "-Infinity", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("0", "-0", "QNaN", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "-0", "QNaN", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "0", "QNaN", "Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "-100000000000000000000.00000000E2167", "+10.000000E3773", "+6678687.855785968795988795878658777E-749", "[de90314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_fma("0", "+10000010.00000E-5366", "+100110000001.11110101100111111000110E4155", "-1000000000.E-1168", "[a6efed09bead87c0378d8e63ffffffff]", "20")
+ self.bid128_fma("0", "[1004b480741c9c08,4aee821f26256ca3]", "[2004000005200004,ffeff7fbcfefff7f]", "[77aa31dbe0102f81,14c356fff7b77741]", "[00001ca12c2dda105e0fcfdb9bd744c2]", "30")
+ self.bid128_fma("0", "+10.0E-1", "+1.1E1", "-20.E-1", "[303c0000000000000000000000000384]", "00")
+ self.bid128_fma("0", "[10388820b0a00800,0464098490c04800]", "[8cdc81bc2be3b23e,1aa48bf8404d0b9a]", "[1004100000400000,19c71021241c89e5]", "[1002a0000280000101c6a14b691d62f2]", "20")
+ self.bid128_fma("0", "[1040000000000000,011202c00c804084]", "[0000000000000000,2040261404280a10]", "[bcbb3b9e98630b10,d6a3e6a102814081]", "[bcbb3b9e98630b10d6a3e6a102814081]", "20")
+ self.bid128_fma("0", "[104a00045a100800,c042526032000000]", "[9f86f051cca9ce08,fc8291475dc13210]", "[0000080040018008,56183e30152990d9]", "[000008004001800856183e3014292165]", "30")
+ self.bid128_fma("0", "+11000000000000000000000000000.000E5271", "-4943746.727789239794842E-1749", "-9988988989988889889989989888.899888888E-2596", "[cbc70c1ebdef427bdccf7f0dcaf33000]", "20")
+ self.bid128_fma("0", "[1218040ca862a0a0,0008026902009009]", "[0000000000000000,0000000000800000]", "[6f4b337fbfdfddfc,bfdbb7ffbfbfedfd]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[1349b121abe70d2e,b7df5ffb7058df8a]", "[14ed579819a76ee1,107a1635ff64fe38]", "[c1f41ae4bfed1783,62d31b4f411fb77f]", "[c1f30cef7f42eb21dc3f11188b3d2af6]", "20")
+ self.bid128_fma("0", "+1E-6176", "-1E-6176", "+1E-6143", "[0000314dc6448d9338c15b0a00000000]", "30", underflowBeforeOnly: true)
+ self.bid128_fma("0", "[20007458818bf9ac,ffffffffffffffff]", "[1020000000004061,02c0109140000004]", "[0000000100000080,ad8921e30a37c621]", "[000f61b72639bbe0cc3d29c992ba941f]", "20")
+ self.bid128_fma("0", "[203aba8c5a6ee974,bfeff7dfff7bdfff]", "[b0040811a4088824,0005000000000000]", "[1fbddefbd73b3ef6,dfdfddb757ed7fbf]", "[a03f314c93d92f156df64b42c0a54577]", "20")
+ self.bid128_fma("0", "[206b194fdf736ae4,d4e00ad4b67d2e3a]", "[2009405504934002,0000000100080000]", "[9050f56ce5c2cc1f,4e7aeac90b7d3734]", "[1076b6c57b795d21918b96ed0568fde7]", "20")
+ self.bid128_fma("0", "[24cf6abfe3bc6b9d,c835980765032032]", "[0b05adc604240103,0200111000009000]", "[114ff7e5d6a97556,4fc9d1a37811250d]", "[0000000000000000000005d53a0f7af9]", "30")
+ self.bid128_fma("0", "[24f36694072c1d7a,4447a8b238c24b9f]", "[0930d2fb85019e18,455c6db9c669581c]", "[9544000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[25be000000000000,0000000000000000]", "[b79d4e2334682abd,4371058eb371c01a]", "[fe0026e6bb7d55ff,3f5b897fc59c6678]", "[fc0026e6bb7d55ff3f5b897fc59c6678]", "01")
+ self.bid128_fma("0", "[25c20d0d39a936dc,438e988854c72fdf]", "[fe000ededd967152,bd551922ab686931]", "[d1adba17f45a07c7,323a547ae8e9a798]", "[fc000ededd967152bd551922ab686931]", "01")
+ self.bid128_fma("0", "[2728d1aea6511cb3,bafc2dafdfd1fbb7]", "[8678327ca23873e1,405f50961d5d8f80]", "[8a72000000000000,0000000000000000]", "[80000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[280b09d60c0b1392,0000100600000100]", "[0290000960002001,2138008050c201c4]", "[662c51ef43a76380,39261be7597e894c]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[2910000000008080,b25b9eade6abab45]", "[2d06488fc020bd06,e7992dd24b55fd6b]", "[57ecd5b9f7f5fb7b,01c093ca4c31b4c2]", "[57ecd5b9f7f5fb7b01c093ca4c31b4c2]", "20")
+ self.bid128_fma("0", "[2f54000000000000,0000000000000000]", "[7800000000000000,0000000000000000]", "[98efae3d556790f7,505f623790b90633]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("0", "[30cb4e8d6dcbe8a9,0000840510200032]", "[8000080000c40222,40a0122048253016]", "[80bda55a4a8bc4ed,c4ee8f26e756e102]", "[80cc3648c967129840027d75dfd2332d]", "20")
+ self.bid128_fma("0", "[320a2ab1e0a11645,aff744967dfbe84e]", "[30b05583a6085d72,126c5cd4e39d51e6]", "[b2c30b72fdd3a837,68b6fd0da7d57d80]", "[b2c30b6008cb05e6faa9ff663fc90346]", "20")
+ self.bid128_fma("0", "[3320000000000000,0000000000000005]", "[2ffc000000000000,000000000000000a]", "[b322000000000000,000000000000000a]", "[b2e2314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_fma("0", "[3b808456804a8375,0010000085000000]", "[01146d5b83848339,ffdfedafffbdffdf]", "[0cda343b9ca56bfd,3dc98475f258233b]", "[0cda343b9ca56bfd3dc98475f258233c]", "20")
+ self.bid128_fma("0", "[3bbd5fbfd0e58d5b,2815dce19cc4e872]", "[d444dffde1cf1e70,c05240004800c088]", "[dfe76db3caee69f5,e5ffdfbff75ade16]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_fma("0", "[4000000000000000,00080d8220131004]", "[00a0000000000000,b247a0c78546f03b]", "[0280708000800404,0400091004404034]", "[10628f908736046317ab92ab92733e7e]", "20")
+ self.bid128_fma("0", "[4808000c21040138,021a308421000b20]", "[aa1d4ef2ed41c213,cd2b5c54d8942679]", "[4221202400040001,8993f85ed5cfbe5d]", "[c21f514e10232ae7e620f81dfb793f97]", "20")
+ self.bid128_fma("0", "[5120002c01000408,ff7775908ebb0ddd]", "[00c0000000000000,1ececb0ed3a9ca3c]", "[abaf099322b3452e,9442d19a96a78ce1]", "[abaf099322b3452e9442d19a96a78ce1]", "20")
+ self.bid128_fma("0", "[521466c7594ec344,2fa18e99f765a11d]", "[0000000000004000,0048d450201a0808]", "[2206b5204994202a,000002480002001c]", "[2206b83b7fcb3e2ed601d7ac666497ac]", "20")
+ self.bid128_fma("0", "-567599796678575.79666E0", "+392.7947253589822E0", "-0", "[b0206dec45b1bf99af192e3d5568b4db]", "20")
+ self.bid128_fma("0", "-65667597795869578895.E4697", "+10000000110.0001100000000E-1197", "-797685.59758578985997596576596959E-417", "[cb9143c42974b7dee2e0884b6cd76df1]", "20")
+ self.bid128_fma("0", "[6cb03862d2de13ce,0c9296b43238de70]", "[f2e3cf43f34cf338,3164bb2ecd8e707d]", "[aec77ef8cb71bc3e,76e1e18f65703224]", "[aec77ef8cb71bc3e76e1e18f65703224]", "00")
+ self.bid128_fma("0", "+78979.98959E2234", "-100.001E3889", "+0.0E-2318", "[dfe18567c23390a170eee5750a980000]", "00")
+ self.bid128_fma("0", "[7b3adfc036c74686,5e892b3388cfb488]", "[fbd0f9955efefdff,ffffffffff77ffff]", "[fbeeff7fef7fffbf,efffffffffdfffff]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "[7f06536efdedf3ef,a00d0c0a84122060]", "[0008101000000000,8c6de2c3707e636c]", "[fd1f7eefdffff377,023b4c28d1de82a0]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_fma("0", "[8200080220020040,0404000401002010]", "[adbbbffd7bdd3aff,900af9a200a3b400]", "[f7fdff9fffffefff,b68bd40ea2c4474e]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[87b6dfcc7a5ab7be,a522677e4ab1668c]", "[9bc9417a84186a90,ad9120f71b542aa9]", "[160e000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "+8888.8998998998E-2235", "-1.10E-3931", "-0.000000E-6132", "[8000000000000000000058edb0ee45d2]", "30")
+ self.bid128_fma("0", "-888889999.8E5727", "-6.68E407", "+0.0000000000000E-366", "[5ffd24c162bdd6d51128095d9d000000]", "00")
+ self.bid128_fma("0", "-8965987698956675.78656555E4539", "-1.000000000010000E3821", "-110010011100011.010110110001111101011E2821", "[78000000000000000000000000000000]", "28")
+ self.bid128_fma("0", "+8986696985789675.56557795678657567758978E-5901", "-8.E2812", "+969866.55766779558876696986978678768E-3084", "[97fd627653e77aa19a3a418d30850075]", "20")
+ self.bid128_fma("0", "-89988899988998.898989999988898899888E2320", "-8.E-1226", "+933948225566767374852856.47E1058", "[38a762f19171451591c353e839655c91]", "20")
+ self.bid128_fma("0", "[8aabe6c73b7f72dd,8d4c38f2543b8fd8]", "[b89b8951e940fe90,a2bf73fbf713f220]", "[8fe6000000000000,0000000000000000]", "[1349845382b7174c0250d072c749f709]", "20")
+ self.bid128_fma("0", "[8d76c8ff6073591e,4ea62c39f4a16b91]", "[2284908808000080,8d20400201465a08]", "[0000000100000000,6676f7f4f677c7ca]", "[800005e362c4334fb471d1ebc2a0aee6]", "30")
+ self.bid128_fma("0", "[8fdf13f67c7cdcf7,0000004000800000]", "[9fdbb991e1fbc494,17960991d803e935]", "[da6ff7fd75fffe77,0000000000080040]", "[00000000000000000000000000000001]", "30")
+ self.bid128_fma("0", "[90091b37072242aa,c068cf75fbe76df7]", "[0000000000004000,d16da245a419a5e8]", "[0000400000000080,fefbfff9effddff7]", "[0000400000000080fefbfff9effddff7]", "20")
+ self.bid128_fma("0", "[908004200021a020,0020000002004020]", "[9f7f5d5fffe9feff,164494884e3e3299]", "[0000000400040200,1018782a006831d8]", "[00001d3efef13522df9eb8340d30796d]", "30")
+ self.bid128_fma("0", "[921e5c5d6e51ce1c,85362f63605fabbc]", "[d1b7931c81504ef6,0020008400800ac5]", "[338c840fc8f18a12,080826a8c3910200]", "[33d84b84ab2ab2dcb6df3784a4e7be67]", "20")
+ self.bid128_fma("0", "[940ea6ce1bb0babb,e358a2ea8a3794f5]", "[8ab6ef64d6b7638b,eac8a3d8f63b93f0]", "[8f12000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "+96558957998.5567E4207", "-110011101101111101.01011000000100101001E-6193", "+88898888998899898989988889998999889888.99E-2959", "[a0b1dc128a0a790abf0c6656f7180000]", "20")
+ self.bid128_fma("0", "[974b45d9220fb162,8c1ff71d1a44d956]", "[7e000dbeb7afd343,7629e0c7b7cce431]", "[f800000000000000,0000000000000000]", "[7c000dbeb7afd3437629e0c7b7cce431]", "01")
+ self.bid128_fma("0", "-9.888889999998889998889899998988888899E-6176", "-988.E-688", "-0.E-5743", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[9d697e38848d99c3,1476240e2c312c44]", "[92857ccc4d332c41,33a8330cbdd2fa40]", "[0000000000000000,0001000080020000]", "[0000000000318719835177086dbc43a3]", "30")
+ self.bid128_fma("0", "[a1de023203305ca2,2c2333cdcccd6174]", "[8c113f1c1519804b,63499c934364022e]", "[398e000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("0", "[a239a05cb57f471a,822eaf7adcb33834]", "[a4f10f7d2372ede2,62f84f8ebecf2de2]", "[a89203f658d1d000,ffffffffffffffff]", "[a88f8c3ab1f54063ffffffffffffff9c]", "20")
+ self.bid128_fma("0", "[afff35977ed62e26,3d57de395afcdbcd]", "[0000001000000000,ef7dfb4efd46744f]", "[8000102420800291,fffffffffcfffebe]", "[800010889860f8aa04adbfca04ad3922]", "30")
+ self.bid128_fma("0", "[afff7f8dddf3eb0e,0040000000004042]", "[0000010000800000,1bbb0166edaba774]", "[efbfffdf7dbff7ff,2000000002402400]", "[800007c78ad3e2f47a2e418addfd98b2]", "30")
+ self.bid128_fma("0", "[b046702787309820,0019002c58108800]", "[0000080080040800,0404b38005c04000]", "[0000000000000000,0040000208080800]", "[8046b6067e38332e590a5ce83e9fceec]", "20")
+ self.bid128_fma("0", "[b26d133cc2f13a0d,08352fa313b75236]", "[0000000000000000,0000000000000002]", "[0000100000002000,58ae1d46c390c472]", "[822e370c26fd0b9c34d76fed6a57dd3e]", "20")
+ self.bid128_fma("0", "[b4f4017e848cc4b1,4d9666c0dbdc8d17]", "[55a8d80fd057e484,0010b00808221048]", "[b3b3e06015f0c266,b7533eb939cf5069]", "[da9c417ae5e491ea694787c13a1e3894]", "20")
+ self.bid128_fma("0", "[b85e84be77cf60a1,2bf7ab8d507f8925]", "[2404a009a0002480,ffeffff7fbffffff]", "[718d015ce73f5ff1,ccf0cb6495d3872b]", "[ac65aee153e61b6dc0953e144e195e78]", "20")
+ self.bid128_fma("0", "[bd45f1613a3b066f,d3f2bd0cc0ab54e1]", "[8a13d1006086088d,ffffffffffffffff]", "[0050011200128986,f9fe8ffffbfffff7]", "[0050011200128986f9fe8ffffbfffff7]", "00")
+ self.bid128_fma("0", "[bfffbfffdffdffff,2098334482806221]", "[4b27dd14dd41009e,d0f761ff8f2232dc]", "[5abd1fe3248ca8d3,1b67f1c9b661579d]", "[db29b18024f29576f8c27aa882e97043]", "20")
+ self.bid128_fma("0", "[c0593cfc80c72ae0,2b95cd109a0d3d9f]", "[0d63e5a54d1b0b8c,179ac8272cf1bfbf]", "[33022fdb8eedaa61,87bfa1e67ac51980]", "[3301de939548a7cf4d7c5300cbb2ff00]", "20")
+ self.bid128_fma("0", "[c455b23f804f241c,cf7c7abfebfc5ac5]", "[4c24412154988d88,b80ce42042544dd8]", "[5ffc8a4301474e19,fbfffceb357ce9f6]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_fma("0", "[c857dd443bc45b51,46b5bad2fc9dcde3]", "[4a701eb4dcc93b31,c2628078263200ca]", "[a692000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_fma("0", "[c8a1aa2a121eddbe,e7e518e33059bf37]", "[26e285b27c92b33c,2cf53bed83c8fc98]", "[7c002a2dd2f64c6c,fb29cb591cc3d1e0]", "[7c002a2dd2f64c6cfb29cb591cc3d1e0]", "00")
+ self.bid128_fma("0", "[c9536305e2a3c290,b4685165c494854f]", "[d3e71355d5881525,aab21ff84e015dee]", "[74bb8930c8b2a6e7,15b3fe9a820019a5]", "[78000000000000000000000000000000]", "28")
+ self.bid128_fma("0", "[d40867b86edb7f50,94a697639522963f]", "[0000000001000000,d0da500018004009]", "[2400080409000700,b3aeafaab0bc7d7e]", "[23fde093b6309a4436a21480979ad16c]", "20")
+ self.bid128_fma("0", "[d55615e19227dc60,b3c379f997cfb974]", "[d631b242b4c9827a,b2fe330e854c7514]", "[9d1e3d8fd79bf231,2e076889cf2d6ceb]", "[78000000000000000000000000000000]", "28")
+ self.bid128_fma("0", "[dee055ad47047aca,c30443750ee9b191]", "[b788816975ffd623,7e9fcfd3b41122af]", "[4208004006120804,ffffffffffffffff]", "[78000000000000000000000000000000]", "28")
+ self.bid128_fma("0", "[f5effbfeffedffe7,fffffedbccffbff9]", "[fbf7fbfffbd5fffa,fb719bbdedc2b74e]", "[64a4a22c20f00f80,fbbbebca6fcd6bdf]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("0", "[f80710f038edcc94,ef7befbffe57eebf]", "[0030400100000220,effffdf7ffbf7fef]", "[5c97a17608cb251f,27a5e427e2251693]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "[f97e9ca2428b69e9,2c9857212fadacd3]", "[c85b55222f34bdb9,c144ee8a247690f3]", "[7877c36966fd2e2f,40d8b2242e861e28]", "[78000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "[f9af5c782be8a88b,87b89e945c7ca2cb]", "[fadefffbdc8a6df2,ff7fffffffeff7fd]", "[471299a6af9d13b3,70d7cb7f89fbbbe7]", "[78000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "[fb7fff78dfbffdb7,ffbdfffffbffffff]", "[5941abb66e7762fa,ff4424e30299b1ce]", "[79d93d96ce7fbd00,1b37d26eeb5c1695]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("0", "[fbad56bdeffed1be,96777dfff1fbfdfe]", "[5751fdfbe14f1ea9,4454410a92a0c109]", "[722aecd714446ba2,d4c0c04fa6ed9788]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("0", "[fbf69c3097bddfa8,fdfde7ffffffbffc]", "[f888e8609c62d930,fd965bdad1bfdbba]", "[fafdffbfbfbfd9f7,c01434c00de8e5d0]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("0", "[fdffdfffffffffff,a7bef49c752ffd97]", "[f2caa5a1b3f1f64a,e688915bc85b9c69]", "[2e82bdaf814c3911,b65b110a2c217198]", "[fc001fffffffffffa7bef49c752ffd97]", "00")
+ self.bid128_fma("0", "[fff7fe7c9dde567b,0000000000000000]", "[9a794a42db3ef194,1000000020010000]", "[328ee0a456f0a240,fffff37f7bfbffdb]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_fma("0", "Infinity", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "Infinity", "-Infinity", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "QNaN", "-Infinity", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "QNaN", "Infinity", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "QNaN", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("1", "[011c2e380536f031,465bbaf1ba3084fd]", "[30fde49094274b7b,d9462a2e21676b35]", "[dd5637abd709b8c8,55623880c2539dbf]", "[dd5637abd709b8c855623880c2539dbf]", "20")
+ self.bid128_fma("1", "[023ee0350f61c530,af68e419164e427f]", "[2b8188689b483b77,adefb812c46ebbab]", "[1dd8000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("1", "[0264836a011bfb20,e2bb99925ff56d43]", "[1761e368e28ecb57,b50f9319de6bff51]", "[93ee000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("1", "[07587000f0d76149,acf8789122da23e2]", "[7e0002fae97029cb,b43750add58239a3]", "[92bf6da1794a81ea,6d4fdc10cf7dbb50]", "[7c0002fae97029cbb43750add58239a3]", "01")
+ self.bid128_fma("1", "[0da8fa89ea07e703,d61966756ccbae8c]", "[99ecf2da4f3e1ae4,f88bbf3c86362aac]", "[8118000000000000,0000000000000000]", "[80000000000000000000000000000001]", "30")
+ self.bid128_fma("1", "0", "-Infinity", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("1", "-0", "QNaN", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("1", "-0", "QNaN", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("1", "0", "QNaN", "Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("1", "[1349b121abe70d2e,b7df5ffb7058df8a]", "[14ed579819a76ee1,107a1635ff64fe38]", "[c1f41ae4bfed1783,62d31b4f411fb77f]", "[c1f30cef7f42eb21dc3f11188b3d2af6]", "20")
+ self.bid128_fma("1", "[24f36694072c1d7a,4447a8b238c24b9f]", "[0930d2fb85019e18,455c6db9c669581c]", "[9544000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("1", "[25be000000000000,0000000000000000]", "[b79d4e2334682abd,4371058eb371c01a]", "[fe0026e6bb7d55ff,3f5b897fc59c6678]", "[fc0026e6bb7d55ff3f5b897fc59c6678]", "01")
+ self.bid128_fma("1", "[25c20d0d39a936dc,438e988854c72fdf]", "[fe000ededd967152,bd551922ab686931]", "[d1adba17f45a07c7,323a547ae8e9a798]", "[fc000ededd967152bd551922ab686931]", "01")
+ self.bid128_fma("1", "[2728d1aea6511cb3,bafc2dafdfd1fbb7]", "[8678327ca23873e1,405f50961d5d8f80]", "[8a72000000000000,0000000000000000]", "[80000000000000000000000000000001]", "30")
+ self.bid128_fma("1", "[2f54000000000000,0000000000000000]", "[7800000000000000,0000000000000000]", "[98efae3d556790f7,505f623790b90633]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("1", "[3320000000000000,0000000000000005]", "[2ffc000000000000,000000000000000a]", "[b322000000000000,000000000000000a]", "[b2e2314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_fma("1", "-567599796678575.79666E0", "+392.7947253589822E0", "-0", "[b0206dec45b1bf99af192e3d5568b4db]", "20")
+ self.bid128_fma("1", "[87b6dfcc7a5ab7be,a522677e4ab1668c]", "[9bc9417a84186a90,ad9120f71b542aa9]", "[160e000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("1", "[8aabe6c73b7f72dd,8d4c38f2543b8fd8]", "[b89b8951e940fe90,a2bf73fbf713f220]", "[8fe6000000000000,0000000000000000]", "[1349845382b7174c0250d072c749f709]", "20")
+ self.bid128_fma("1", "[940ea6ce1bb0babb,e358a2ea8a3794f5]", "[8ab6ef64d6b7638b,eac8a3d8f63b93f0]", "[8f12000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("1", "[974b45d9220fb162,8c1ff71d1a44d956]", "[7e000dbeb7afd343,7629e0c7b7cce431]", "[f800000000000000,0000000000000000]", "[7c000dbeb7afd3437629e0c7b7cce431]", "01")
+ self.bid128_fma("1", "[a1de023203305ca2,2c2333cdcccd6174]", "[8c113f1c1519804b,63499c934364022e]", "[398e000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("1", "[b01e000000000000000462d53c8abac0]", "[80000000000000000000000000000001]", "[8000000000000000000000000000000a]", "[8000000000000000000000000000000a]", "30")
+ self.bid128_fma("1", "[c0593cfc80c72ae0,2b95cd109a0d3d9f]", "[0d63e5a54d1b0b8c,179ac8272cf1bfbf]", "[33022fdb8eedaa61,87bfa1e67ac51980]", "[3301de939548a7cf4d7c5300cbb2feff]", "20")
+ self.bid128_fma("1", "[c857dd443bc45b51,46b5bad2fc9dcde3]", "[4a701eb4dcc93b31,c2628078263200ca]", "[a692000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_fma("1", "[c8a1aa2a121eddbe,e7e518e33059bf37]", "[26e285b27c92b33c,2cf53bed83c8fc98]", "[7c002a2dd2f64c6c,fb29cb591cc3d1e0]", "[7c002a2dd2f64c6cfb29cb591cc3d1e0]", "00")
+ self.bid128_fma("1", "[c9536305e2a3c290,b4685165c494854f]", "[d3e71355d5881525,aab21ff84e015dee]", "[74bb8930c8b2a6e7,15b3fe9a820019a5]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_fma("1", "[d55615e19227dc60,b3c379f997cfb974]", "[d631b242b4c9827a,b2fe330e854c7514]", "[9d1e3d8fd79bf231,2e076889cf2d6ceb]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_fma("1", "Infinity", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_fma("1", "Infinity", "-Infinity", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_fma("1", "QNaN", "-Infinity", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("1", "QNaN", "Infinity", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("1", "QNaN", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("2", "[011c2e380536f031,465bbaf1ba3084fd]", "[30fde49094274b7b,d9462a2e21676b35]", "[dd5637abd709b8c8,55623880c2539dbf]", "[dd5637abd709b8c855623880c2539dbe]", "20")
+ self.bid128_fma("2", "[023ee0350f61c530,af68e419164e427f]", "[2b8188689b483b77,adefb812c46ebbab]", "[1dd8000000000000,0000000000000000]", "[00000000000000000000000000000001]", "30")
+ self.bid128_fma("2", "[0264836a011bfb20,e2bb99925ff56d43]", "[1761e368e28ecb57,b50f9319de6bff51]", "[93ee000000000000,0000000000000000]", "[00000000000000000000000000000001]", "30")
+ self.bid128_fma("2", "[07587000f0d76149,acf8789122da23e2]", "[7e0002fae97029cb,b43750add58239a3]", "[92bf6da1794a81ea,6d4fdc10cf7dbb50]", "[7c0002fae97029cbb43750add58239a3]", "01")
+ self.bid128_fma("2", "[0da8fa89ea07e703,d61966756ccbae8c]", "[99ecf2da4f3e1ae4,f88bbf3c86362aac]", "[8118000000000000,0000000000000000]", "[80000000000000000000000000000000]", "30")
+ self.bid128_fma("2", "0", "-Infinity", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("2", "-0", "QNaN", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("2", "-0", "QNaN", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("2", "0", "QNaN", "Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("2", "[1349b121abe70d2e,b7df5ffb7058df8a]", "[14ed579819a76ee1,107a1635ff64fe38]", "[c1f41ae4bfed1783,62d31b4f411fb77f]", "[c1f30cef7f42eb21dc3f11188b3d2af5]", "20")
+ self.bid128_fma("2", "[24f36694072c1d7a,4447a8b238c24b9f]", "[0930d2fb85019e18,455c6db9c669581c]", "[9544000000000000,0000000000000000]", "[00000000000000000000000000000001]", "30")
+ self.bid128_fma("2", "[25be000000000000,0000000000000000]", "[b79d4e2334682abd,4371058eb371c01a]", "[fe0026e6bb7d55ff,3f5b897fc59c6678]", "[fc0026e6bb7d55ff3f5b897fc59c6678]", "01")
+ self.bid128_fma("2", "[25c20d0d39a936dc,438e988854c72fdf]", "[fe000ededd967152,bd551922ab686931]", "[d1adba17f45a07c7,323a547ae8e9a798]", "[fc000ededd967152bd551922ab686931]", "01")
+ self.bid128_fma("2", "[2728d1aea6511cb3,bafc2dafdfd1fbb7]", "[8678327ca23873e1,405f50961d5d8f80]", "[8a72000000000000,0000000000000000]", "[80000000000000000000000000000000]", "30")
+ self.bid128_fma("2", "[2f54000000000000,0000000000000000]", "[7800000000000000,0000000000000000]", "[98efae3d556790f7,505f623790b90633]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("2", "[3320000000000000,0000000000000005]", "[2ffc000000000000,000000000000000a]", "[b322000000000000,000000000000000a]", "[b2e1ed09bead87c0378d8e63ffffffff]", "20")
+ self.bid128_fma("2", "-567599796678575.79666E0", "+392.7947253589822E0", "-0", "[b0206dec45b1bf99af192e3d5568b4da]", "20")
+ self.bid128_fma("2", "[87b6dfcc7a5ab7be,a522677e4ab1668c]", "[9bc9417a84186a90,ad9120f71b542aa9]", "[160e000000000000,0000000000000000]", "[00000000000000000000000000000001]", "30")
+ self.bid128_fma("2", "[8aabe6c73b7f72dd,8d4c38f2543b8fd8]", "[b89b8951e940fe90,a2bf73fbf713f220]", "[8fe6000000000000,0000000000000000]", "[1349845382b7174c0250d072c749f70a]", "20")
+ self.bid128_fma("2", "[940ea6ce1bb0babb,e358a2ea8a3794f5]", "[8ab6ef64d6b7638b,eac8a3d8f63b93f0]", "[8f12000000000000,0000000000000000]", "[00000000000000000000000000000001]", "30")
+ self.bid128_fma("2", "[974b45d9220fb162,8c1ff71d1a44d956]", "[7e000dbeb7afd343,7629e0c7b7cce431]", "[f800000000000000,0000000000000000]", "[7c000dbeb7afd3437629e0c7b7cce431]", "01")
+ self.bid128_fma("2", "[a1de023203305ca2,2c2333cdcccd6174]", "[8c113f1c1519804b,63499c934364022e]", "[398e000000000000,0000000000000000]", "[00000000000000000000000000000001]", "30")
+ self.bid128_fma("2", "[b01e000000000000000462d53c8abac0]", "[80000000000000000000000000000001]", "[8000000000000000000000000000000a]", "[80000000000000000000000000000009]", "30")
+ self.bid128_fma("2", "[c0593cfc80c72ae0,2b95cd109a0d3d9f]", "[0d63e5a54d1b0b8c,179ac8272cf1bfbf]", "[33022fdb8eedaa61,87bfa1e67ac51980]", "[3301de939548a7cf4d7c5300cbb2ff00]", "20")
+ self.bid128_fma("2", "[c857dd443bc45b51,46b5bad2fc9dcde3]", "[4a701eb4dcc93b31,c2628078263200ca]", "[a692000000000000,0000000000000000]", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_fma("2", "[c8a1aa2a121eddbe,e7e518e33059bf37]", "[26e285b27c92b33c,2cf53bed83c8fc98]", "[7c002a2dd2f64c6c,fb29cb591cc3d1e0]", "[7c002a2dd2f64c6cfb29cb591cc3d1e0]", "00")
+ self.bid128_fma("2", "[d55615e19227dc60,b3c379f997cfb974]", "[d631b242b4c9827a,b2fe330e854c7514]", "[9d1e3d8fd79bf231,2e076889cf2d6ceb]", "[78000000000000000000000000000000]", "28")
+ self.bid128_fma("2", "[dbf77cf61bbadf7f,405981baeb2cc536]", "[42505b0209000c10,0050140602011520]", "[0000000008000000,08bd4468929e708a]", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_fma("2", "Infinity", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_fma("2", "Infinity", "-Infinity", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_fma("2", "QNaN", "-Infinity", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("2", "QNaN", "Infinity", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("2", "QNaN", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("3", "[011c2e380536f031,465bbaf1ba3084fd]", "[30fde49094274b7b,d9462a2e21676b35]", "[dd5637abd709b8c8,55623880c2539dbf]", "[dd5637abd709b8c855623880c2539dbe]", "20")
+ self.bid128_fma("3", "[023ee0350f61c530,af68e419164e427f]", "[2b8188689b483b77,adefb812c46ebbab]", "[1dd8000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("3", "[0264836a011bfb20,e2bb99925ff56d43]", "[1761e368e28ecb57,b50f9319de6bff51]", "[93ee000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("3", "[07587000f0d76149,acf8789122da23e2]", "[7e0002fae97029cb,b43750add58239a3]", "[92bf6da1794a81ea,6d4fdc10cf7dbb50]", "[7c0002fae97029cbb43750add58239a3]", "01")
+ self.bid128_fma("3", "[0da8fa89ea07e703,d61966756ccbae8c]", "[99ecf2da4f3e1ae4,f88bbf3c86362aac]", "[8118000000000000,0000000000000000]", "[80000000000000000000000000000000]", "30")
+ self.bid128_fma("3", "0", "-Infinity", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("3", "-0", "QNaN", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("3", "-0", "QNaN", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("3", "0", "QNaN", "Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("3", "[1349b121abe70d2e,b7df5ffb7058df8a]", "[14ed579819a76ee1,107a1635ff64fe38]", "[c1f41ae4bfed1783,62d31b4f411fb77f]", "[c1f30cef7f42eb21dc3f11188b3d2af5]", "20")
+ self.bid128_fma("3", "[24f36694072c1d7a,4447a8b238c24b9f]", "[0930d2fb85019e18,455c6db9c669581c]", "[9544000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("3", "[25be000000000000,0000000000000000]", "[b79d4e2334682abd,4371058eb371c01a]", "[fe0026e6bb7d55ff,3f5b897fc59c6678]", "[fc0026e6bb7d55ff3f5b897fc59c6678]", "01")
+ self.bid128_fma("3", "[25c20d0d39a936dc,438e988854c72fdf]", "[fe000ededd967152,bd551922ab686931]", "[d1adba17f45a07c7,323a547ae8e9a798]", "[fc000ededd967152bd551922ab686931]", "01")
+ self.bid128_fma("3", "[2728d1aea6511cb3,bafc2dafdfd1fbb7]", "[8678327ca23873e1,405f50961d5d8f80]", "[8a72000000000000,0000000000000000]", "[80000000000000000000000000000000]", "30")
+ self.bid128_fma("3", "[2f54000000000000,0000000000000000]", "[7800000000000000,0000000000000000]", "[98efae3d556790f7,505f623790b90633]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("3", "[3320000000000000,0000000000000005]", "[2ffc000000000000,000000000000000a]", "[b322000000000000,000000000000000a]", "[b2e1ed09bead87c0378d8e63ffffffff]", "20")
+ self.bid128_fma("3", "-567599796678575.79666E0", "+392.7947253589822E0", "-0", "[b0206dec45b1bf99af192e3d5568b4da]", "20")
+ self.bid128_fma("3", "[87b6dfcc7a5ab7be,a522677e4ab1668c]", "[9bc9417a84186a90,ad9120f71b542aa9]", "[160e000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("3", "[8aabe6c73b7f72dd,8d4c38f2543b8fd8]", "[b89b8951e940fe90,a2bf73fbf713f220]", "[8fe6000000000000,0000000000000000]", "[1349845382b7174c0250d072c749f709]", "20")
+ self.bid128_fma("3", "[940ea6ce1bb0babb,e358a2ea8a3794f5]", "[8ab6ef64d6b7638b,eac8a3d8f63b93f0]", "[8f12000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("3", "[974b45d9220fb162,8c1ff71d1a44d956]", "[7e000dbeb7afd343,7629e0c7b7cce431]", "[f800000000000000,0000000000000000]", "[7c000dbeb7afd3437629e0c7b7cce431]", "01")
+ self.bid128_fma("3", "[a1de023203305ca2,2c2333cdcccd6174]", "[8c113f1c1519804b,63499c934364022e]", "[398e000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("3", "[c0593cfc80c72ae0,2b95cd109a0d3d9f]", "[0d63e5a54d1b0b8c,179ac8272cf1bfbf]", "[33022fdb8eedaa61,87bfa1e67ac51980]", "[3301de939548a7cf4d7c5300cbb2feff]", "20")
+ self.bid128_fma("3", "[c857dd443bc45b51,46b5bad2fc9dcde3]", "[4a701eb4dcc93b31,c2628078263200ca]", "[a692000000000000,0000000000000000]", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_fma("3", "[c8a1aa2a121eddbe,e7e518e33059bf37]", "[26e285b27c92b33c,2cf53bed83c8fc98]", "[7c002a2dd2f64c6c,fb29cb591cc3d1e0]", "[7c002a2dd2f64c6cfb29cb591cc3d1e0]", "00")
+ self.bid128_fma("3", "[d55615e19227dc60,b3c379f997cfb974]", "[d631b242b4c9827a,b2fe330e854c7514]", "[9d1e3d8fd79bf231,2e076889cf2d6ceb]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_fma("3", "Infinity", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_fma("3", "Infinity", "-Infinity", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_fma("3", "QNaN", "-Infinity", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("3", "QNaN", "Infinity", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("3", "QNaN", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("3", "+181E5421", "-5E-3046", "+100000000000000000000000000000009E2377", "+9999999999999999999999999999999995E+2375", "00")
+ self.bid128_fma("4", "[011c2e380536f031,465bbaf1ba3084fd]", "[30fde49094274b7b,d9462a2e21676b35]", "[dd5637abd709b8c8,55623880c2539dbf]", "[dd5637abd709b8c855623880c2539dbf]", "20")
+ self.bid128_fma("4", "[023ee0350f61c530,af68e419164e427f]", "[2b8188689b483b77,adefb812c46ebbab]", "[1dd8000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("4", "[0264836a011bfb20,e2bb99925ff56d43]", "[1761e368e28ecb57,b50f9319de6bff51]", "[93ee000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("4", "[07587000f0d76149,acf8789122da23e2]", "[7e0002fae97029cb,b43750add58239a3]", "[92bf6da1794a81ea,6d4fdc10cf7dbb50]", "[7c0002fae97029cbb43750add58239a3]", "01")
+ self.bid128_fma("4", "[0da8fa89ea07e703,d61966756ccbae8c]", "[99ecf2da4f3e1ae4,f88bbf3c86362aac]", "[8118000000000000,0000000000000000]", "[80000000000000000000000000000000]", "30")
+ self.bid128_fma("4", "0", "-Infinity", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("4", "-0", "QNaN", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("4", "-0", "QNaN", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("4", "0", "QNaN", "Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("4", "[1349b121abe70d2e,b7df5ffb7058df8a]", "[14ed579819a76ee1,107a1635ff64fe38]", "[c1f41ae4bfed1783,62d31b4f411fb77f]", "[c1f30cef7f42eb21dc3f11188b3d2af6]", "20")
+ self.bid128_fma("4", "[24f36694072c1d7a,4447a8b238c24b9f]", "[0930d2fb85019e18,455c6db9c669581c]", "[9544000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("4", "[25be000000000000,0000000000000000]", "[b79d4e2334682abd,4371058eb371c01a]", "[fe0026e6bb7d55ff,3f5b897fc59c6678]", "[fc0026e6bb7d55ff3f5b897fc59c6678]", "01")
+ self.bid128_fma("4", "[25c20d0d39a936dc,438e988854c72fdf]", "[fe000ededd967152,bd551922ab686931]", "[d1adba17f45a07c7,323a547ae8e9a798]", "[fc000ededd967152bd551922ab686931]", "01")
+ self.bid128_fma("4", "[2728d1aea6511cb3,bafc2dafdfd1fbb7]", "[8678327ca23873e1,405f50961d5d8f80]", "[8a72000000000000,0000000000000000]", "[80000000000000000000000000000000]", "30")
+ self.bid128_fma("4", "[2f54000000000000,0000000000000000]", "[7800000000000000,0000000000000000]", "[98efae3d556790f7,505f623790b90633]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_fma("4", "[3320000000000000,0000000000000005]", "[2ffc000000000000,000000000000000a]", "[b322000000000000,000000000000000a]", "[b2e2314dc6448d9338c15b0a00000000]", "20")
+ self.bid128_fma("4", "-567599796678575.79666E0", "+392.7947253589822E0", "-0", "[b0206dec45b1bf99af192e3d5568b4db]", "20")
+ self.bid128_fma("4", "+5689655.8E5001", "+11111011.100111E3859", "-10111.E4813", "[78000000000000000000000000000000]", "28")
+ self.bid128_fma("4", "[87b6dfcc7a5ab7be,a522677e4ab1668c]", "[9bc9417a84186a90,ad9120f71b542aa9]", "[160e000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("4", "-8.97E5706", "+76595776858988.85E3094", "+11100001011.01000011110011E3855", "[f8000000000000000000000000000000]", "28")
+ self.bid128_fma("4", "[8aabe6c73b7f72dd,8d4c38f2543b8fd8]", "[b89b8951e940fe90,a2bf73fbf713f220]", "[8fe6000000000000,0000000000000000]", "[1349845382b7174c0250d072c749f709]", "20")
+ self.bid128_fma("4", "[921e5c5d6e51ce1c,85362f63605fabbc]", "[d1b7931c81504ef6,0020008400800ac5]", "[338c840fc8f18a12,080826a8c3910200]", "[33d84b84ab2ab2dcb6df3784a4e7be67]", "20")
+ self.bid128_fma("4", "[940ea6ce1bb0babb,e358a2ea8a3794f5]", "[8ab6ef64d6b7638b,eac8a3d8f63b93f0]", "[8f12000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("4", "[974b45d9220fb162,8c1ff71d1a44d956]", "[7e000dbeb7afd343,7629e0c7b7cce431]", "[f800000000000000,0000000000000000]", "[7c000dbeb7afd3437629e0c7b7cce431]", "01")
+ self.bid128_fma("4", "-988889.9899E4623", "+0.001E1797", "+9868876655866695.75669757E1847", "[f8000000000000000000000000000000]", "28")
+ self.bid128_fma("4", "[9d697e38848d99c3,1476240e2c312c44]", "[92857ccc4d332c41,33a8330cbdd2fa40]", "[0000000000000000,0001000080020000]", "[0000000000318719835177086dbc43a3]", "30")
+ self.bid128_fma("4", "[a1de023203305ca2,2c2333cdcccd6174]", "[8c113f1c1519804b,63499c934364022e]", "[398e000000000000,0000000000000000]", "[00000000000000000000000000000000]", "30")
+ self.bid128_fma("4", "[b4f4017e848cc4b1,4d9666c0dbdc8d17]", "[55a8d80fd057e484,0010b00808221048]", "[b3b3e06015f0c266,b7533eb939cf5069]", "[da9c417ae5e491ea694787c13a1e3894]", "20")
+ self.bid128_fma("4", "[c0593cfc80c72ae0,2b95cd109a0d3d9f]", "[0d63e5a54d1b0b8c,179ac8272cf1bfbf]", "[33022fdb8eedaa61,87bfa1e67ac51980]", "[3301de939548a7cf4d7c5300cbb2ff00]", "20")
+ self.bid128_fma("4", "[c857dd443bc45b51,46b5bad2fc9dcde3]", "[4a701eb4dcc93b31,c2628078263200ca]", "[a692000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_fma("4", "[c8a1aa2a121eddbe,e7e518e33059bf37]", "[26e285b27c92b33c,2cf53bed83c8fc98]", "[7c002a2dd2f64c6c,fb29cb591cc3d1e0]", "[7c002a2dd2f64c6cfb29cb591cc3d1e0]", "00")
+ self.bid128_fma("4", "[c9536305e2a3c290,b4685165c494854f]", "[d3e71355d5881525,aab21ff84e015dee]", "[74bb8930c8b2a6e7,15b3fe9a820019a5]", "[78000000000000000000000000000000]", "28")
+ self.bid128_fma("4", "[d55615e19227dc60,b3c379f997cfb974]", "[d631b242b4c9827a,b2fe330e854c7514]", "[9d1e3d8fd79bf231,2e076889cf2d6ceb]", "[78000000000000000000000000000000]", "28")
+ self.bid128_fma("4", "[dbf77cf61bbadf7f,405981baeb2cc536]", "[42505b0209000c10,0050140602011520]", "[0000000008000000,08bd4468929e708a]", "[f8000000000000000000000000000000]", "28")
+ self.bid128_fma("4", "Infinity", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_fma("4", "Infinity", "-Infinity", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_fma("4", "QNaN", "-Infinity", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("4", "QNaN", "Infinity", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("4", "QNaN", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_fma("0", "+1E-6176", "-1E-6176", "+1E-6143", "+1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("1", "+1E-6176", "-1E-6176", "+1E-6143", "+999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_fma("2", "+1E-6176", "-1E-6176", "+1E-6143", "+1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("3", "+1E-6176", "-1E-6176", "+1E-6143", "+999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_fma("4", "+1E-6176", "-1E-6176", "+1E-6143", "+1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("0", "1001001001001001001001001001001001E-6143", "999E-36", "0", "1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("1", "1001001001001001001001001001001001E-6143", "999E-36", "-0", "999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_fma("2", "1001001001001001001001001001001001E-6143", "999E-36", "-0", "1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("3", "1001001001001001001001001001001001E-6143", "999E-36", "0", "999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_fma("4", "1001001001001001001001001001001001E-6143", "999E-36", "0", "1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("0", "5e-1001", "-1e-5177", "1e-6143", "1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("1", "5e-1001", "-1e-5177", "1e-6143", "999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_fma("2", "5e-1001", "-1e-5177", "1e-6143", "1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("3", "5e-1001", "-1e-5177", "1e-6143", "999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_fma("4", "5e-1001", "-1e-5177", "1e-6143", "1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("0", "5e-1001", "1e-5177", "-1e-6143", "-1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("1", "5e-1001", "1e-5177", "-1e-6143", "-1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("2", "5e-1001", "1e-5177", "-1e-6143", "-999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_fma("3", "5e-1001", "1e-5177", "-1e-6143", "-999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_fma("4", "5e-1001", "1e-5177", "-1e-6143", "-1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_fma("0", "[0840000900000280fffffffefbdffeff]", "[27abe8b86b5768a66fb7eece7f7ddffd]", "[80006c0313412f263f3a2efd3d3dceef]", "[80006c0313412effee47f9ed5742db1b]", "20")
+ self.bid128_fma("0", "[8000000000001010,bdc0d4579fcef167]", "[3003c61a2cbabe5f,7c6fe27eefdfb62f]", "[00020880502c698f,0004040001000000]", "[00005503218252e4fedd61bfac5cd2d4]", "20")
+ self.bid128_fma("0", "1", "[7c00314dc6448d9338c15b19ffffffff]", "1.0", "Nan", "00")
+ self.bid128_fma("0", "[7c00314dc6448d9338c15b19ffffffff]", "1", "1.0", "Nan", "00")
+ self.bid128_fma("0", "1", "1", "[7c00314dc6448d9338c15b19ffffffff]", "Nan", "00")
+ self.bid128_fma("0", "5421010862427522170", "18446744073709551616", "-312600448599326720", "9999999999999999999900000000000000E+4", "00")
+ self.bid128_fma("0", "99999999999999999999", "9999999999999999999", "-890000000000000000001", "9999999999999999990000000000000000E+5", "00")
+ self.bid128_fma("0", "54210108624275221700", "18446744073709551616", "-3126004485993267200", "9999999999999999999900000000000000E+5", "00")
+ self.bid128_fma("0", "5421010862427522170037264004349708", "184467440737095516160000", "1", "9999999999999999999999999999999999E+23", "20")
+ self.bid128_fma("0", "1000000000000000E+1", "100000000000000E+6111", "0", "1000000000000000000000000000000000E+6108", "00")
+ self.bid128_fma("0", "5", "18446744073709551616", "0", "92233720368547758080", "00")
+ self.bid128_fma("0", "1e-10", "99999999999999999E-6176", "0", "10000000E-6176", "30", underflowBeforeOnly: true)
+ self.bid128_fma("0", "999999999999999999999999999999999", "1000000", "-9999999999000000", "9999999999999999999999900000000000E+5", "00")
+ self.bid128_fma("0", "9999999999999999999999999999999999", "18446744073709551615", "1", "1844674407370955161500000000000000E+20", "20")
+ self.bid128_fma("0", "50000000000000000000e-20", "1E-6176", "0", "0E-6176", "30")
+ self.bid128_fma("0", "2593925811412816019587072", "385516037351637580807246919245163", "0", "1000000000000000000000000000000000E+24", "20")
+ self.bid128_fma("0", "1506773898878058061137280976037787", "6636695795862927642198016", "0", "1000000000000000000000000000000000E+25", "20")
+ self.bid128_fma("0", "1010101010101010101010101010101E-3000", "99E-3177", "99E-6145", "+1000000000000000000000000000000000E-6176", "30")
+ self.bid128_fma("1", "1010101010101010101010101010101E-3000", "99E-3177", "99E-6145", "+999999999999999999999999999999999E-6176", "30")
+ self.bid128_fma("2", "1010101010101010101010101010101E-3000", "99E-3177", "99E-6145", "+1000000000000000000000000000000000E-6176", "30")
+ self.bid128_fma("3", "1010101010101010101010101010101E-3000", "99E-3177", "99E-6145", "+999999999999999999999999999999999E-6176", "30")
+ self.bid128_fma("4", "1010101010101010101010101010101E-3000", "99E-3177", "99E-6145", "+1000000000000000000000000000000000E-6176", "30")
+ self.bid128_fma("0", "1.0", "-1500000000000000000000000000000000E-66", "+5000000000000000000000000000000000E-100", "-1500000000000000000000000000000000E-66", "20")
+ self.bid128_fma("1", "1.0", "-1500000000000000000000000000000000E-66", "+5000000000000000000000000000000000E-100", "-1500000000000000000000000000000000E-66", "20")
+ self.bid128_fma("2", "1.0", "-1500000000000000000000000000000000E-66", "+5000000000000000000000000000000000E-100", "-1499999999999999999999999999999999E-66", "20")
+ self.bid128_fma("3", "1.0", "-1500000000000000000000000000000000E-66", "+5000000000000000000000000000000000E-100", "-1499999999999999999999999999999999E-66", "20")
+ self.bid128_fma("4", "1.0", "-1500000000000000000000000000000000E-66", "+5000000000000000000000000000000000E-100", "-1500000000000000000000000000000000E-66", "20")
+ }
+
+ private func bid128_fma(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _arg2: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let arg2 = self.parseDecimal128(_arg2, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg2.addingProduct(arg0, arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelLogScaleTests.swift b/Tests/DecimalTests/Intel - generated/IntelLogScaleTests.swift
new file mode 100644
index 0000000..91b41c1
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelLogScaleTests.swift
@@ -0,0 +1,2124 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelLogScaleTests: XCTestCase, IntelMixin {
+
+ func test_bid32_frexp() {
+ self.bid32_frexp("0", "[78000000]", "0", "[78000000]", "00")
+ self.bid32_frexp("0", "[7c000000]", "0", "[7c000000]", "00")
+ self.bid32_frexp("0", "[f8000000]", "0", "[f8000000]", "00")
+ self.bid32_frexp("0", "[fc000000]", "0", "[fc000000]", "00")
+ self.bid32_frexp("0", "[00000001]", "-100", "[32000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("0", "[03000001]", "-94", "[32000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("0", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("0", "[77F8967F]", "97", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("0", "[80000001]", "-100", "[B2000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("0", "[83000001]", "-94", "[B2000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("0", "[EBD8967F]", "0", "[EBD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("0", "[F7F8967F]", "97", "[EBD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("1", "[00000001]", "-100", "[32000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("1", "[03000001]", "-94", "[32000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("1", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("1", "[77F8967F]", "97", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("1", "[80000001]", "-100", "[B2000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("1", "[83000001]", "-94", "[B2000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("1", "[EBD8967F]", "0", "[EBD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("1", "[F7F8967F]", "97", "[EBD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("2", "[00000001]", "-100", "[32000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("2", "[03000001]", "-94", "[32000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("2", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("2", "[77F8967F]", "97", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("2", "[80000001]", "-100", "[B2000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("2", "[83000001]", "-94", "[B2000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("2", "[EBD8967F]", "0", "[EBD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("2", "[F7F8967F]", "97", "[EBD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("3", "[00000001]", "-100", "[32000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("3", "[03000001]", "-94", "[32000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("3", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("3", "[77F8967F]", "97", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("3", "[80000001]", "-100", "[B2000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("3", "[83000001]", "-94", "[B2000001]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("3", "[EBD8967F]", "0", "[EBD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("3", "[F7F8967F]", "97", "[EBD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_frexp("0", "[00000000]", "0", "[00000000]", "00")
+ self.bid32_frexp("0", "[7e000000]", "0", "[7c000000]", "00")
+ self.bid32_frexp("0", "[80000000]", "0", "[80000000]", "00")
+ self.bid32_frexp("0", "[fe000000]", "0", "[fc000000]", "00")
+ self.bid32_frexp("0", "[0401c880]", "-87", "[2f81c880]", "00")
+ self.bid32_frexp("0", "[0401c880]", "-87", "[2f81c880]", "00")
+ self.bid32_frexp("0", "[7c8f423f]", "0", "[7c8f423f]", "00")
+ self.bid32_frexp("0", "[7c8f4240]", "0", "[7c8f4240]", "00")
+ self.bid32_frexp("0", "[7c8f4241]", "0", "[7c8f4241]", "00")
+ self.bid32_frexp("0", "[607fffff]", "0", "[01800000]", "00")
+ self.bid32_frexp("0", "[f71fffff]", "0", "[dc000000]", "00")
+ self.bid32_frexp("0", "[f420b31f]", "67", "[ebc0b31f]", "00")
+ self.bid32_frexp("0", "[658c3437]", "-50", "[6bcc3437]", "00")
+ }
+
+ private func bid32_frexp(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseInt32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ let exponent = arg0.exponent(status: &status)
+ let significand = arg0.significand
+ let intel = self.toIntel_frexp(arg0, exponent: exponent, significand: significand)
+
+ // 'arg1' is the expected exponent
+ self.assertInt(intel.exponent, arg1, file, line, "Exponent")
+ self.assertEqual(intel.significand, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line, "Significand")
+
+ if arg0._isFinite && !arg0.isZero {
+ // We have to exclude 0, because it does not guarantee exponent preservation
+ // ('0.exponent' returns 'Int.min').
+ // Rounding should not matter
+ let restored = Decimal32(sign: arg0.sign, exponent: exponent, significand: significand, rounding: .towardZero)
+ self.assertEqual(restored, arg0, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line, "Decimal32(sign:exponent:significand:)")
+ }
+
+ // 'frexp' does not signal any exceptions
+ status = DecimalStatus()
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_ilogb() {
+ self.bid32_ilogb("0", "[00000001]", "-101", "00")
+ self.bid32_ilogb("0", "[00000001]", "-101", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("0", "[00080001]", "-96", "00")
+ self.bid32_ilogb("0", "[03000001]", "-95", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("0", "-1.0", "0", "00")
+ self.bid32_ilogb("0", "1.0", "0", "00")
+ self.bid32_ilogb("0", "-1.0e-96", "-96", "00")
+ self.bid32_ilogb("0", "1.0e-96", "-96", "00")
+ self.bid32_ilogb("0", "[6098967f]", "-91", "00")
+ self.bid32_ilogb("0", "[60989680]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[609896ff]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[6BD8967F]", "-1", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("0", "[77F8967F]", "96", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("0", "[78000000]", "2147483647", "01")
+ self.bid32_ilogb("0", "[78801000]", "2147483647", "01")
+ self.bid32_ilogb("0", "[7c000000]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7c000001]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7c8f423f]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7c8f4240]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7c8f4241]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7c8ffeff]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7e000000]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7e000100]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7e100000]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7e100100]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7e8f423f]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7e8f4240]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[7e8ffeff]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[80000001]", "-101", "00")
+ self.bid32_ilogb("0", "[80000001]", "-101", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("0", "[83000001]", "-95", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("0", "-9.999999e-95", "-95", "00")
+ self.bid32_ilogb("0", "9.999999e-95", "-95", "00")
+ self.bid32_ilogb("0", "-9.999999e96", "96", "00")
+ self.bid32_ilogb("0", "9.999999e96", "96", "00")
+ self.bid32_ilogb("0", "[EBD8967F]", "-1", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("0", "[F7F8967F]", "96", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("0", "[f8000000]", "2147483647", "01")
+ self.bid32_ilogb("0", "[f8801000]", "2147483647", "01")
+ self.bid32_ilogb("0", "[fc000000]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[fc000001]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[fc100000]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[fc100100]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[fe000000]", "-2147483648", "01")
+ self.bid32_ilogb("0", "[fe000100]", "-2147483648", "01")
+ self.bid32_ilogb("1", "[00000000]", "-2147483648", "01", ulp: "0.0000000000")
+ self.bid32_ilogb("1", "[00000001]", "-101", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("1", "[03000001]", "-95", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("1", "[6BD8967F]", "-1", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("1", "[77F8967F]", "96", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("1", "[80000001]", "-101", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("1", "[83000001]", "-95", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("1", "[EBD8967F]", "-1", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("1", "[F7F8967F]", "96", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("2", "[00000000]", "-2147483648", "01", ulp: "0.0000000000")
+ self.bid32_ilogb("2", "[00000001]", "-101", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("2", "[03000001]", "-95", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("2", "[6BD8967F]", "-1", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("2", "[77F8967F]", "96", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("2", "[80000001]", "-101", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("2", "[83000001]", "-95", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("2", "[EBD8967F]", "-1", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("2", "[F7F8967F]", "96", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("3", "[00000000]", "-2147483648", "01", ulp: "0.0000000000")
+ self.bid32_ilogb("3", "[00000001]", "-101", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("3", "[03000001]", "-95", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("3", "[6BD8967F]", "-1", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("3", "[77F8967F]", "96", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("3", "[80000001]", "-101", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("3", "[83000001]", "-95", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("3", "[EBD8967F]", "-1", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("3", "[F7F8967F]", "96", "00", ulp: "0.0000000000")
+ self.bid32_ilogb("0", "[00000000]", "-2147483648", "01", ulp: "0.0000000000")
+ }
+
+ private func bid32_ilogb(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ assert(ulp?.isZero ?? true) // 'ulp' does not make sense in this test
+ let result = arg0.exponent(status: &status)
+ let resultIntel = self.toIntel_logB(arg0, result: result)
+ self.assertInt(resultIntel, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_scalbln() {
+ self.bid32_scalbln("0", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("0", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("0", "[00000001]", "-1", "[00000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid32_scalbln("0", "[00000001]", "-1", "[00000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid32_scalbln("0", "[00000005]", "-1", "[00000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid32_scalbln("0", "[00000005]", "-1", "[00000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid32_scalbln("0", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("0", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("0", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("0", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("0", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("0", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("0", "[6BD8967F]", "2147483647", "[78000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("0", "[6BD8967F]", "2147483647", "[78000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("0", "[6BD8967F]", "-2147483648", "[00000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid32_scalbln("0", "[6BD8967F]", "-2147483648", "[00000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid32_scalbln("0", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("0", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("0", "[77F8967F]", "1", "[78000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid32_scalbln("0", "[77F8967F]", "1", "[78000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid32_scalbln("0", "[78000000]", "0", "[78000000]", "00", longIntSize: "00")
+ self.bid32_scalbln("0", "[78000000]", "0", "[78000000]", "00", longIntSize: "00")
+ self.bid32_scalbln("0", "[78000000]", "-1", "[78000000]", "00", longIntSize: "00")
+ self.bid32_scalbln("0", "[78000000]", "1", "[78000000]", "00", longIntSize: "00")
+ self.bid32_scalbln("0", "[78000000]", "-1", "[78000000]", "00", longIntSize: "00")
+ self.bid32_scalbln("0", "[78000000]", "1", "[78000000]", "00", longIntSize: "00")
+ self.bid32_scalbln("0", "[7c000000]", "0", "[7c000000]", "00", longIntSize: "00")
+ self.bid32_scalbln("0", "[7c000000]", "0", "[7c000000]", "00", longIntSize: "00")
+ self.bid32_scalbln("0", "[7e000000]", "0", "[7c000000]", "01", longIntSize: "01")
+ self.bid32_scalbln("0", "[7e000000]", "0", "[7c000000]", "01", longIntSize: "01")
+ self.bid32_scalbln("1", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("1", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("1", "[00000001]", "-1", "[00000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid32_scalbln("1", "[00000001]", "-1", "[00000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid32_scalbln("1", "[00000005]", "-1", "[00000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid32_scalbln("1", "[00000005]", "-1", "[00000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid32_scalbln("1", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("1", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("1", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("1", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("1", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("1", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("1", "[6BD8967F]", "2147483647", "[77F8967F]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("1", "[6BD8967F]", "2147483647", "[77F8967F]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("1", "[6BD8967F]", "-2147483648", "[00000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid32_scalbln("1", "[6BD8967F]", "-2147483648", "[00000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid32_scalbln("1", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("1", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("1", "[77F8967F]", "1", "[77F8967F]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid32_scalbln("1", "[77F8967F]", "1", "[77F8967F]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid32_scalbln("2", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("2", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("2", "[00000001]", "-1", "[00000001]", "30", ulp: "-.9000000000", longIntSize: "30")
+ self.bid32_scalbln("2", "[00000001]", "-1", "[00000001]", "30", ulp: "-.9000000000", longIntSize: "30")
+ self.bid32_scalbln("2", "[00000005]", "-1", "[00000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid32_scalbln("2", "[00000005]", "-1", "[00000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid32_scalbln("2", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("2", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("2", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("2", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("2", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("2", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("2", "[6BD8967F]", "2147483647", "[78000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("2", "[6BD8967F]", "2147483647", "[78000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("2", "[6BD8967F]", "-2147483648", "[00000001]", "30", ulp: "-1.000000000", longIntSize: "30")
+ self.bid32_scalbln("2", "[6BD8967F]", "-2147483648", "[00000001]", "30", ulp: "-1.000000000", longIntSize: "30")
+ self.bid32_scalbln("2", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("2", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("2", "[77F8967F]", "1", "[78000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid32_scalbln("2", "[77F8967F]", "1", "[78000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid32_scalbln("3", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("3", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("3", "[00000001]", "-1", "[00000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid32_scalbln("3", "[00000001]", "-1", "[00000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid32_scalbln("3", "[00000005]", "-1", "[00000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid32_scalbln("3", "[00000005]", "-1", "[00000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid32_scalbln("3", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("3", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("3", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("3", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("3", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("3", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("3", "[6BD8967F]", "2147483647", "[77F8967F]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("3", "[6BD8967F]", "2147483647", "[77F8967F]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("3", "[6BD8967F]", "-2147483648", "[00000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid32_scalbln("3", "[6BD8967F]", "-2147483648", "[00000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid32_scalbln("3", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("3", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid32_scalbln("3", "[77F8967F]", "1", "[77F8967F]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid32_scalbln("3", "[77F8967F]", "1", "[77F8967F]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid32_scalbln("4", "[00000005]", "-1", "[00000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid32_scalbln("4", "[00000005]", "-1", "[00000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid32_scalbln("0", "[6BD8967F]", "9223372036854775807", "[78000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("0", "[6BD8967F]", "-9223372036854775808", "[00000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid32_scalbln("1", "[6BD8967F]", "9223372036854775807", "[77F8967F]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("1", "[6BD8967F]", "-9223372036854775808", "[00000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid32_scalbln("2", "[6BD8967F]", "9223372036854775807", "[78000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("2", "[6BD8967F]", "-9223372036854775808", "[00000001]", "30", ulp: "-1.000000000", longIntSize: "30")
+ self.bid32_scalbln("3", "[6BD8967F]", "9223372036854775807", "[77F8967F]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid32_scalbln("3", "[6BD8967F]", "-9223372036854775808", "[00000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ }
+
+ private func bid32_scalbln(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ longIntSize _longIntSize: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseInt(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+ guard let longIntSize = self.parseLongIntSize(_longIntSize, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(sign: .plus, exponent: arg1, significand: arg0, rounding: rounding, status: &status)
+ _ = longIntSize // Never used; silence compiler warning
+ let resultIntel = self.toIntel_scaleB(arg0, arg1, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_scalbn() {
+ self.bid32_scalbn("0", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("0", "[00000001]", "-1", "[00000000]", "30", ulp: ".1000000000")
+ self.bid32_scalbn("0", "[00000001]", "1.0", "[00800001]", "00")
+ self.bid32_scalbn("0", "[00000005]", "-1", "[00000000]", "30", ulp: ".5000000000")
+ self.bid32_scalbn("0", "[00080001]", "1.0", "[00880001]", "00")
+ self.bid32_scalbn("0", "1.0", "[00000001]", "[3280000a]", "00")
+ self.bid32_scalbn("0", "1.0", "[00080001]", "[78000000]", "28")
+ self.bid32_scalbn("0", "1.0", "-1.0", "[3180000a]", "00")
+ self.bid32_scalbn("0", "1.0", "1.0", "[3280000a]", "00")
+ self.bid32_scalbn("0", "-1.0", "1.0", "[b280000a]", "00")
+ self.bid32_scalbn("0", "1.0", "-1.0e-96", "[3180000a]", "00")
+ self.bid32_scalbn("0", "1.0", "1.0e-96", "[3280000a]", "00")
+ self.bid32_scalbn("0", "1.0", "[6098967f]", "[78000000]", "28")
+ self.bid32_scalbn("0", "1.0", "[60989680]", "[78000000]", "28")
+ self.bid32_scalbn("0", "1.0", "[7c000000]", "[78000000]", "28")
+ self.bid32_scalbn("0", "1.0", "[7c8f423f]", "[78000000]", "28")
+ self.bid32_scalbn("0", "1.0", "[7c8f4240]", "[78000000]", "28")
+ self.bid32_scalbn("0", "1.0", "[7e100000]", "[78000000]", "28")
+ self.bid32_scalbn("0", "1.0", "[7e100100]", "[78000000]", "28")
+ self.bid32_scalbn("0", "1.0", "[7e8f423f]", "[78000000]", "28")
+ self.bid32_scalbn("0", "1.0", "[7e8f4240]", "[78000000]", "28")
+ self.bid32_scalbn("0", "1.0", "[80000001]", "[00000000]", "30")
+ self.bid32_scalbn("0", "1.0", "-9.999999e-95", "[2d80000a]", "00")
+ self.bid32_scalbn("0", "1.0", "9.999999e-95", "[3680000a]", "00")
+ self.bid32_scalbn("0", "1.0", "-9.999999e96", "[2d80000a]", "00")
+ self.bid32_scalbn("0", "1.0", "9.999999e96", "[3680000a]", "00")
+ self.bid32_scalbn("0", "1.0e-96", "1.0", "[0280000a]", "00")
+ self.bid32_scalbn("0", "-1.0e-96", "1.0", "[8280000a]", "00")
+ self.bid32_scalbn("0", "1.0", "[fc100000]", "[00000000]", "30")
+ self.bid32_scalbn("0", "1.0", "[fc100100]", "[00000000]", "30")
+ self.bid32_scalbn("0", "1.0", "[fe000000]", "[00000000]", "30")
+ self.bid32_scalbn("0", "1E+89", "2", "[5f80000a]", "00")
+ self.bid32_scalbn("0", "[6098967f]", "1.0", "[60b8967f]", "00")
+ self.bid32_scalbn("0", "[60989680]", "1.0", "[02800000]", "00")
+ self.bid32_scalbn("0", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("0", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("0", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("0", "[6BD8967F]", "2147483647", "[78000000]", "28", ulp: "0.00000")
+ self.bid32_scalbn("0", "[6BD8967F]", "-2147483648", "[00000000]", "30", ulp: "0.0000000000")
+ self.bid32_scalbn("0", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("0", "[77F8967F]", "1", "[78000000]", "28", ulp: "0.0000000000")
+ self.bid32_scalbn("0", "[78000000]", "0", "[78000000]", "00")
+ self.bid32_scalbn("0", "[78000000]", "12328804", "[78000000]", "00")
+ self.bid32_scalbn("0", "[78000000]", "-1", "[78000000]", "00")
+ self.bid32_scalbn("0", "[78000000]", "1", "[78000000]", "00")
+ self.bid32_scalbn("0", "[78a00000]", "0", "[78000000]", "00")
+ self.bid32_scalbn("0", "[78a00000]", "12328804", "[78000000]", "00")
+ self.bid32_scalbn("0", "[78a00000]", "-1", "[78000000]", "00")
+ self.bid32_scalbn("0", "[78a00000]", "1", "[78000000]", "00")
+ self.bid32_scalbn("0", "[7c000000]", "0", "[7c000000]", "00")
+ self.bid32_scalbn("0", "[7c000000]", "1.0", "[7c000000]", "00")
+ self.bid32_scalbn("0", "[7c000000]", "12328804", "[7c000000]", "00")
+ self.bid32_scalbn("0", "[7c000000]", "-1", "[7c000000]", "00")
+ self.bid32_scalbn("0", "[7c000000]", "1", "[7c000000]", "00")
+ self.bid32_scalbn("0", "[7c8f423f]", "1.0", "[7c0f423f]", "00")
+ self.bid32_scalbn("0", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "00")
+ self.bid32_scalbn("0", "[7c8f4240]", "1.0", "[7c000000]", "00")
+ self.bid32_scalbn("0", "[7c8f4241]", "0", "[7c000000]", "00")
+ self.bid32_scalbn("0", "[7c8f4241]", "12328804", "[7c000000]", "00")
+ self.bid32_scalbn("0", "[7c8f4241]", "-1", "[7c000000]", "00")
+ self.bid32_scalbn("0", "[7c8f4241]", "1", "[7c000000]", "00")
+ self.bid32_scalbn("0", "[7e000000]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7e000000]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7e000000]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7e000000]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7e100000]", "1.0", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7e100100]", "1.0", "[7c000100]", "01")
+ self.bid32_scalbn("0", "[7e8f423f]", "1.0", "[7c0f423f]", "01")
+ self.bid32_scalbn("0", "[7e8f4240]", "1.0", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7ea00000]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7ea00000]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7ea00000]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7ea00000]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7effffff]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7effffff]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7effffff]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[7effffff]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("0", "[80000001]", "1.0", "[80800001]", "00")
+ self.bid32_scalbn("0", "9.999999e-95", "1.0", "[6038967f]", "00")
+ self.bid32_scalbn("0", "-9.999999e-95", "1.0", "[e038967f]", "00")
+ self.bid32_scalbn("0", "9.999999e96", "1.0", "[78000000]", "28")
+ self.bid32_scalbn("0", "-9.999999e96", "1.0", "[f8000000]", "28")
+ self.bid32_scalbn("0", "[a0020002]", "128", "[df940014]", "00")
+ self.bid32_scalbn("0", "[fc100000]", "1.0", "[fc000000]", "00")
+ self.bid32_scalbn("0", "[fc100100]", "1.0", "[fc000100]", "00")
+ self.bid32_scalbn("0", "[fe000000]", "1.0", "[fc000000]", "01")
+ self.bid32_scalbn("1", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("1", "[00000001]", "-1", "[00000000]", "30", ulp: ".1000000000")
+ self.bid32_scalbn("1", "[00000005]", "-1", "[00000000]", "30", ulp: ".5000000000")
+ self.bid32_scalbn("1", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("1", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("1", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("1", "[6BD8967F]", "2147483647", "[77F8967F]", "28", ulp: "0.00000")
+ self.bid32_scalbn("1", "[6BD8967F]", "-2147483648", "[00000000]", "30", ulp: "0.0000000000")
+ self.bid32_scalbn("1", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("1", "[77F8967F]", "1", "[77F8967F]", "28", ulp: "0.0000000000")
+ self.bid32_scalbn("1", "[78000000]", "0", "[78000000]", "00")
+ self.bid32_scalbn("1", "[78000000]", "12328804", "[78000000]", "00")
+ self.bid32_scalbn("1", "[78000000]", "-1", "[78000000]", "00")
+ self.bid32_scalbn("1", "[78000000]", "1", "[78000000]", "00")
+ self.bid32_scalbn("1", "[78a00000]", "0", "[78000000]", "00")
+ self.bid32_scalbn("1", "[78a00000]", "12328804", "[78000000]", "00")
+ self.bid32_scalbn("1", "[78a00000]", "-1", "[78000000]", "00")
+ self.bid32_scalbn("1", "[78a00000]", "1", "[78000000]", "00")
+ self.bid32_scalbn("1", "[7c000000]", "0", "[7c000000]", "00")
+ self.bid32_scalbn("1", "[7c000000]", "12328804", "[7c000000]", "00")
+ self.bid32_scalbn("1", "[7c000000]", "-1", "[7c000000]", "00")
+ self.bid32_scalbn("1", "[7c000000]", "1", "[7c000000]", "00")
+ self.bid32_scalbn("1", "[7c8f4241]", "0", "[7c000000]", "00")
+ self.bid32_scalbn("1", "[7c8f4241]", "12328804", "[7c000000]", "00")
+ self.bid32_scalbn("1", "[7c8f4241]", "-1", "[7c000000]", "00")
+ self.bid32_scalbn("1", "[7c8f4241]", "1", "[7c000000]", "00")
+ self.bid32_scalbn("1", "[7e000000]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("1", "[7e000000]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("1", "[7e000000]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("1", "[7e000000]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("1", "[7ea00000]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("1", "[7ea00000]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("1", "[7ea00000]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("1", "[7ea00000]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("1", "[7effffff]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("1", "[7effffff]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("1", "[7effffff]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("1", "[7effffff]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("2", "[00000001]", "-1", "[00000001]", "30", ulp: "-.9000000000")
+ self.bid32_scalbn("2", "[00000005]", "-1", "[00000001]", "30", ulp: "-.500000000")
+ self.bid32_scalbn("2", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("2", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("2", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("2", "[6BD8967F]", "2147483647", "[78000000]", "28", ulp: "0.00000")
+ self.bid32_scalbn("2", "[6BD8967F]", "-2147483648", "[00000001]", "30", ulp: "-1.000000000")
+ self.bid32_scalbn("2", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("2", "[77F8967F]", "1", "[78000000]", "28", ulp: "0.0000000000")
+ self.bid32_scalbn("2", "[78000000]", "0", "[78000000]", "00")
+ self.bid32_scalbn("2", "[78000000]", "12328804", "[78000000]", "00")
+ self.bid32_scalbn("2", "[78000000]", "-1", "[78000000]", "00")
+ self.bid32_scalbn("2", "[78000000]", "1", "[78000000]", "00")
+ self.bid32_scalbn("2", "[78a00000]", "0", "[78000000]", "00")
+ self.bid32_scalbn("2", "[78a00000]", "12328804", "[78000000]", "00")
+ self.bid32_scalbn("2", "[78a00000]", "-1", "[78000000]", "00")
+ self.bid32_scalbn("2", "[78a00000]", "1", "[78000000]", "00")
+ self.bid32_scalbn("2", "[7c000000]", "0", "[7c000000]", "00")
+ self.bid32_scalbn("2", "[7c000000]", "12328804", "[7c000000]", "00")
+ self.bid32_scalbn("2", "[7c000000]", "-1", "[7c000000]", "00")
+ self.bid32_scalbn("2", "[7c000000]", "1", "[7c000000]", "00")
+ self.bid32_scalbn("2", "[7c8f4241]", "0", "[7c000000]", "00")
+ self.bid32_scalbn("2", "[7c8f4241]", "12328804", "[7c000000]", "00")
+ self.bid32_scalbn("2", "[7c8f4241]", "-1", "[7c000000]", "00")
+ self.bid32_scalbn("2", "[7c8f4241]", "1", "[7c000000]", "00")
+ self.bid32_scalbn("2", "[7e000000]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[7e000000]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[7e000000]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[7e000000]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[7ea00000]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[7ea00000]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[7ea00000]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[7ea00000]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[7effffff]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[7effffff]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[7effffff]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("2", "[7effffff]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[00000001]", "0", "[00000001]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("3", "[00000001]", "-1", "[00000000]", "30", ulp: ".1000000000")
+ self.bid32_scalbn("3", "[00000005]", "-1", "[00000000]", "30", ulp: ".5000000000")
+ self.bid32_scalbn("3", "[6BD8967F]", "0", "[6BD8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("3", "[6BD8967F]", "-1", "[6BB8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("3", "[6BD8967F]", "1", "[6BF8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("3", "[6BD8967F]", "2147483647", "[77F8967F]", "28", ulp: "0.00000")
+ self.bid32_scalbn("3", "[6BD8967F]", "-2147483648", "[00000000]", "30", ulp: "0.0000000000")
+ self.bid32_scalbn("3", "[77F8967F]", "0", "[77F8967F]", "00", ulp: "0.0000000000")
+ self.bid32_scalbn("3", "[77F8967F]", "1", "[77F8967F]", "28", ulp: "0.0000000000")
+ self.bid32_scalbn("3", "[78000000]", "0", "[78000000]", "00")
+ self.bid32_scalbn("3", "[78000000]", "12328804", "[78000000]", "00")
+ self.bid32_scalbn("3", "[78000000]", "-1", "[78000000]", "00")
+ self.bid32_scalbn("3", "[78000000]", "1", "[78000000]", "00")
+ self.bid32_scalbn("3", "[78a00000]", "0", "[78000000]", "00")
+ self.bid32_scalbn("3", "[78a00000]", "12328804", "[78000000]", "00")
+ self.bid32_scalbn("3", "[78a00000]", "-1", "[78000000]", "00")
+ self.bid32_scalbn("3", "[78a00000]", "1", "[78000000]", "00")
+ self.bid32_scalbn("3", "[7c000000]", "0", "[7c000000]", "00")
+ self.bid32_scalbn("3", "[7c000000]", "12328804", "[7c000000]", "00")
+ self.bid32_scalbn("3", "[7c000000]", "-1", "[7c000000]", "00")
+ self.bid32_scalbn("3", "[7c000000]", "1", "[7c000000]", "00")
+ self.bid32_scalbn("3", "[7c8f4241]", "0", "[7c000000]", "00")
+ self.bid32_scalbn("3", "[7c8f4241]", "12328804", "[7c000000]", "00")
+ self.bid32_scalbn("3", "[7c8f4241]", "-1", "[7c000000]", "00")
+ self.bid32_scalbn("3", "[7c8f4241]", "1", "[7c000000]", "00")
+ self.bid32_scalbn("3", "[7e000000]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[7e000000]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[7e000000]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[7e000000]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[7ea00000]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[7ea00000]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[7ea00000]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[7ea00000]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[7effffff]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[7effffff]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[7effffff]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("3", "[7effffff]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[00000005]", "-1", "[00000001]", "30", ulp: "-.500000000")
+ self.bid32_scalbn("4", "[78000000]", "0", "[78000000]", "00")
+ self.bid32_scalbn("4", "[78000000]", "12328804", "[78000000]", "00")
+ self.bid32_scalbn("4", "[78000000]", "-1", "[78000000]", "00")
+ self.bid32_scalbn("4", "[78000000]", "1", "[78000000]", "00")
+ self.bid32_scalbn("4", "[78a00000]", "0", "[78000000]", "00")
+ self.bid32_scalbn("4", "[78a00000]", "12328804", "[78000000]", "00")
+ self.bid32_scalbn("4", "[78a00000]", "-1", "[78000000]", "00")
+ self.bid32_scalbn("4", "[78a00000]", "1", "[78000000]", "00")
+ self.bid32_scalbn("4", "[7c000000]", "0", "[7c000000]", "00")
+ self.bid32_scalbn("4", "[7c000000]", "12328804", "[7c000000]", "00")
+ self.bid32_scalbn("4", "[7c000000]", "-1", "[7c000000]", "00")
+ self.bid32_scalbn("4", "[7c000000]", "1", "[7c000000]", "00")
+ self.bid32_scalbn("4", "[7c8f4241]", "0", "[7c000000]", "00")
+ self.bid32_scalbn("4", "[7c8f4241]", "12328804", "[7c000000]", "00")
+ self.bid32_scalbn("4", "[7c8f4241]", "-1", "[7c000000]", "00")
+ self.bid32_scalbn("4", "[7c8f4241]", "1", "[7c000000]", "00")
+ self.bid32_scalbn("4", "[7e000000]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[7e000000]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[7e000000]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[7e000000]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[7ea00000]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[7ea00000]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[7ea00000]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[7ea00000]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[7effffff]", "0", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[7effffff]", "12328804", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[7effffff]", "-1", "[7c000000]", "01")
+ self.bid32_scalbn("4", "[7effffff]", "1", "[7c000000]", "01")
+ self.bid32_scalbn("0", "0.0e10", "-50", "[1e000000]", "00")
+ }
+
+ private func bid32_scalbn(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseInt32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32(sign: .plus, exponent: Int(arg1), significand: arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_scaleB(arg0, Int(arg1), result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_frexp() {
+ self.bid64_frexp("0", "[7800000000000000]", "0", "[7800000000000000]", "00")
+ self.bid64_frexp("0", "[7c00000000000000]", "0", "[7c00000000000000]", "00")
+ self.bid64_frexp("0", "[f800000000000000]", "0", "[f800000000000000]", "00")
+ self.bid64_frexp("0", "[fc00000000000000]", "0", "[fc00000000000000]", "00")
+ self.bid64_frexp("0", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("0", "[EBF386F26FC0FFFF]", "0", "[EBF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("1", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("1", "[EBF386F26FC0FFFF]", "0", "[EBF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("2", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("2", "[EBF386F26FC0FFFF]", "0", "[EBF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("3", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("3", "[EBF386F26FC0FFFF]", "0", "[EBF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("0", "[0000000000000000]", "0", "[0000000000000000]", "00")
+ self.bid64_frexp("0", "[0000000000000001]", "-397", "[31A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("0", "[01E0000000000001]", "-382", "[31A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("0", "[77FB86F26FC0FFFF]", "385", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("0", "[7e00000000000000]", "0", "[7c00000000000000]", "00")
+ self.bid64_frexp("0", "[8000000000000000]", "0", "[8000000000000000]", "00")
+ self.bid64_frexp("0", "[8000000000000001]", "-397", "[B1A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("0", "[81E0000000000001]", "-382", "[B1A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("0", "[F7FB86F26FC0FFFF]", "385", "[EBF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("0", "[fe00000000000000]", "0", "[fc00000000000000]", "00")
+ self.bid64_frexp("1", "[0000000000000001]", "-397", "[31A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("1", "[01E0000000000001]", "-382", "[31A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("1", "[77FB86F26FC0FFFF]", "385", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("1", "[8000000000000001]", "-397", "[B1A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("1", "[81E0000000000001]", "-382", "[B1A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("1", "[F7FB86F26FC0FFFF]", "385", "[EBF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("2", "[0000000000000001]", "-397", "[31A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("2", "[01E0000000000001]", "-382", "[31A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("2", "[77FB86F26FC0FFFF]", "385", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("2", "[8000000000000001]", "-397", "[B1A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("2", "[81E0000000000001]", "-382", "[B1A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("2", "[F7FB86F26FC0FFFF]", "385", "[EBF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("3", "[0000000000000001]", "-397", "[31A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("3", "[01E0000000000001]", "-382", "[31A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("3", "[77FB86F26FC0FFFF]", "385", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("3", "[8000000000000001]", "-397", "[B1A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("3", "[81E0000000000001]", "-382", "[B1A0000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("3", "[F7FB86F26FC0FFFF]", "385", "[EBF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_frexp("0", "[002000a008200080]", "-385", "[304000a008200080]", "00")
+ self.bid64_frexp("0", "[618f00fe4935c48a]", "0", "[0620000000000000]", "00")
+ self.bid64_frexp("0", "[2383cd3f15c1076a]", "-98", "[2fc3cd3f15c1076a]", "00")
+ self.bid64_frexp("0", "[002000a008200080]", "-385", "[304000a008200080]", "00")
+ self.bid64_frexp("0", "[618f00fe4935c48a]", "0", "[0620000000000000]", "00")
+ }
+
+ private func bid64_frexp(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseInt32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ let exponent = arg0.exponent(status: &status)
+ let significand = arg0.significand
+ let intel = self.toIntel_frexp(arg0, exponent: exponent, significand: significand)
+
+ // 'arg1' is the expected exponent
+ self.assertInt(intel.exponent, arg1, file, line, "Exponent")
+ self.assertEqual(intel.significand, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line, "Significand")
+
+ if arg0._isFinite && !arg0.isZero {
+ // We have to exclude 0, because it does not guarantee exponent preservation
+ // ('0.exponent' returns 'Int.min').
+ // Rounding should not matter
+ let restored = Decimal64(sign: arg0.sign, exponent: exponent, significand: significand, rounding: .towardZero)
+ self.assertEqual(restored, arg0, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line, "Decimal64(sign:exponent:significand:)")
+ }
+
+ // 'frexp' does not signal any exceptions
+ status = DecimalStatus()
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_ilogb() {
+ self.bid64_ilogb("0", "[0000000000000000]", "-2147483648", "01", ulp: "0.0000000000")
+ self.bid64_ilogb("0", "[0000000000000001]", "-398", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("0", "[01E0000000000001]", "-383", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("0", "[05c0000000000000]", "[80000000]", "01")
+ self.bid64_ilogb("0", "-0", "[80000000]", "01")
+ self.bid64_ilogb("0", "0", "[80000000]", "01")
+ self.bid64_ilogb("0", "[1200000000000000]", "[80000000]", "01")
+ self.bid64_ilogb("0", "[3580000000000000]", "[80000000]", "01")
+ self.bid64_ilogb("0", "[3a60000000000000]", "[80000000]", "01")
+ self.bid64_ilogb("0", "[4000190410201c00]", "[0007f]", "00")
+ self.bid64_ilogb("0", "[5860000000000000]", "[80000000]", "01")
+ self.bid64_ilogb("0", "[69dbb75d7734cd9e]", "-2147483648", "01")
+ self.bid64_ilogb("0", "[6BF386F26FC0FFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("0", "[77FB86F26FC0FFFF]", "384", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("0", "[7800000000000000]", "2147483647", "01")
+ self.bid64_ilogb("0", "[7810000100000000]", "2147483647", "01")
+ self.bid64_ilogb("0", "[7c00000000000000]", "-2147483648", "01")
+ self.bid64_ilogb("0", "[7c00000000000001]", "-2147483648", "01")
+ self.bid64_ilogb("0", "[7e00000000000000]", "-2147483648", "01")
+ self.bid64_ilogb("0", "[7ef0000000000000]", "-2147483648", "01")
+ self.bid64_ilogb("0", "[7effffffffefffff]", "-2147483648", "01")
+ self.bid64_ilogb("0", "[8000000000000001]", "-398", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("0", "[81E0000000000001]", "-383", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("0", "[877f265d6129acc4]", "[FFFFFEBC]", "00")
+ self.bid64_ilogb("0", "[8e60000000000000]", "[80000000]", "01")
+ self.bid64_ilogb("0", "[a8b7e5186aa06c67]", "[FFFFFFC6]", "00")
+ self.bid64_ilogb("0", "[b54b05813dfa685d]", "[002b]", "00")
+ self.bid64_ilogb("0", "[ba337e6a6a0ab070]", "[0052]", "00")
+ self.bid64_ilogb("0", "[d14062208c339e33]", "266", "00")
+ self.bid64_ilogb("0", "[e003b75d7734cd9e]", "-2147483648", "01")
+ self.bid64_ilogb("0", "[e6b63ababd5d04d2]", "[80000000]", "01")
+ self.bid64_ilogb("0", "[EBF386F26FC0FFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("0", "[F7FB86F26FC0FFFF]", "384", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("0", "[f800000000000000]", "2147483647", "01")
+ self.bid64_ilogb("0", "[f810000100000000]", "2147483647", "01")
+ self.bid64_ilogb("0", "[fbedefba9d5c7fdd]", "[7fffffff]", "01")
+ self.bid64_ilogb("0", "[fc00000000000000]", "-2147483648", "01")
+ self.bid64_ilogb("0", "[fc00000000000001]", "-2147483648", "01")
+ self.bid64_ilogb("0", "[fde7ff7ffdffbff9]", "[80000000]", "01")
+ self.bid64_ilogb("0", "[fe00000000000000]", "-2147483648", "01")
+ self.bid64_ilogb("0", "[fef0000000000000]", "-2147483648", "01")
+ self.bid64_ilogb("0", "[feffffffffefffff]", "-2147483648", "01")
+ self.bid64_ilogb("0", "-Infinity", "[7fffffff]", "01")
+ self.bid64_ilogb("0", "QNaN", "[80000000]", "01")
+ self.bid64_ilogb("0", "SNaN", "[80000000]", "01")
+ self.bid64_ilogb("1", "[0000000000000000]", "-2147483648", "01", ulp: "0.0000000000")
+ self.bid64_ilogb("1", "[0000000000000001]", "-398", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("1", "[01E0000000000001]", "-383", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("1", "[6BF386F26FC0FFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("1", "[77FB86F26FC0FFFF]", "384", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("1", "[8000000000000001]", "-398", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("1", "[81E0000000000001]", "-383", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("1", "[EBF386F26FC0FFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("1", "[F7FB86F26FC0FFFF]", "384", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("2", "[0000000000000000]", "-2147483648", "01", ulp: "0.0000000000")
+ self.bid64_ilogb("2", "[0000000000000001]", "-398", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("2", "[01E0000000000001]", "-383", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("2", "[6BF386F26FC0FFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("2", "[77FB86F26FC0FFFF]", "384", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("2", "[8000000000000001]", "-398", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("2", "[81E0000000000001]", "-383", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("2", "[EBF386F26FC0FFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("2", "[F7FB86F26FC0FFFF]", "384", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("3", "[0000000000000000]", "-2147483648", "01", ulp: "0.0000000000")
+ self.bid64_ilogb("3", "[0000000000000001]", "-398", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("3", "[01E0000000000001]", "-383", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("3", "[6BF386F26FC0FFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("3", "[77FB86F26FC0FFFF]", "384", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("3", "[8000000000000001]", "-398", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("3", "[81E0000000000001]", "-383", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("3", "[EBF386F26FC0FFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid64_ilogb("3", "[F7FB86F26FC0FFFF]", "384", "00", ulp: "0.0000000000")
+ }
+
+ private func bid64_ilogb(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ assert(ulp?.isZero ?? true) // 'ulp' does not make sense in this test
+ let result = arg0.exponent(status: &status)
+ let resultIntel = self.toIntel_logB(arg0, result: result)
+ self.assertInt(resultIntel, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_scalbln() {
+ self.bid64_scalbln("0", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("0", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("0", "[0000000000000001]", "-1", "[0000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid64_scalbln("0", "[0000000000000001]", "-1", "[0000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid64_scalbln("0", "[0000000000000005]", "-1", "[0000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid64_scalbln("0", "[0000000000000005]", "-1", "[0000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "2147483647", "[7800000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "2147483647", "[7800000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid64_scalbln("0", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("0", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("0", "[77FB86F26FC0FFFF]", "1", "[7800000000000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid64_scalbln("0", "[77FB86F26FC0FFFF]", "1", "[7800000000000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid64_scalbln("0", "[7800000000000000]", "0", "[7800000000000000]", "00", longIntSize: "00")
+ self.bid64_scalbln("0", "[7800000000000000]", "0", "[7800000000000000]", "00", longIntSize: "00")
+ self.bid64_scalbln("0", "[7800000000000000]", "-1", "[7800000000000000]", "00", longIntSize: "00")
+ self.bid64_scalbln("0", "[7800000000000000]", "1", "[7800000000000000]", "00", longIntSize: "00")
+ self.bid64_scalbln("0", "[7800000000000000]", "-1", "[7800000000000000]", "00", longIntSize: "00")
+ self.bid64_scalbln("0", "[7800000000000000]", "1", "[7800000000000000]", "00", longIntSize: "00")
+ self.bid64_scalbln("0", "[7c00000000000000]", "0", "[7c00000000000000]", "00", longIntSize: "00")
+ self.bid64_scalbln("0", "[7c00000000000000]", "0", "[7c00000000000000]", "00", longIntSize: "00")
+ self.bid64_scalbln("0", "[7e00000000000000]", "0", "[7c00000000000000]", "01", longIntSize: "01")
+ self.bid64_scalbln("0", "[7e00000000000000]", "0", "[7c00000000000000]", "01", longIntSize: "01")
+ self.bid64_scalbln("1", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("1", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("1", "[0000000000000001]", "-1", "[0000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid64_scalbln("1", "[0000000000000001]", "-1", "[0000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid64_scalbln("1", "[0000000000000005]", "-1", "[0000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid64_scalbln("1", "[0000000000000005]", "-1", "[0000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "2147483647", "[77FB86F26FC0FFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "2147483647", "[77FB86F26FC0FFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid64_scalbln("1", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("1", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("1", "[77FB86F26FC0FFFF]", "1", "[77FB86F26FC0FFFF]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid64_scalbln("1", "[77FB86F26FC0FFFF]", "1", "[77FB86F26FC0FFFF]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid64_scalbln("2", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("2", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("2", "[0000000000000001]", "-1", "[0000000000000001]", "30", ulp: "-.9000000000", longIntSize: "30")
+ self.bid64_scalbln("2", "[0000000000000001]", "-1", "[0000000000000001]", "30", ulp: "-.9000000000", longIntSize: "30")
+ self.bid64_scalbln("2", "[0000000000000005]", "-1", "[0000000000000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid64_scalbln("2", "[0000000000000005]", "-1", "[0000000000000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "2147483647", "[7800000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "2147483647", "[7800000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000001]", "30", ulp: "-1.000000000", longIntSize: "30")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000001]", "30", ulp: "-1.000000000", longIntSize: "30")
+ self.bid64_scalbln("2", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("2", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("2", "[77FB86F26FC0FFFF]", "1", "[7800000000000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid64_scalbln("2", "[77FB86F26FC0FFFF]", "1", "[7800000000000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid64_scalbln("3", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("3", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("3", "[0000000000000001]", "-1", "[0000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid64_scalbln("3", "[0000000000000001]", "-1", "[0000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid64_scalbln("3", "[0000000000000005]", "-1", "[0000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid64_scalbln("3", "[0000000000000005]", "-1", "[0000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "2147483647", "[77FB86F26FC0FFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "2147483647", "[77FB86F26FC0FFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid64_scalbln("3", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("3", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid64_scalbln("3", "[77FB86F26FC0FFFF]", "1", "[77FB86F26FC0FFFF]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid64_scalbln("3", "[77FB86F26FC0FFFF]", "1", "[77FB86F26FC0FFFF]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid64_scalbln("4", "[0000000000000005]", "-1", "[0000000000000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid64_scalbln("4", "[0000000000000005]", "-1", "[0000000000000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "9223372036854775807", "[7800000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("0", "[6BF386F26FC0FFFF]", "-9223372036854775808", "[0000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "9223372036854775807", "[77FB86F26FC0FFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("1", "[6BF386F26FC0FFFF]", "-9223372036854775808", "[0000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "9223372036854775807", "[7800000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("2", "[6BF386F26FC0FFFF]", "-9223372036854775808", "[0000000000000001]", "30", ulp: "-1.000000000", longIntSize: "30")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "9223372036854775807", "[77FB86F26FC0FFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid64_scalbln("3", "[6BF386F26FC0FFFF]", "-9223372036854775808", "[0000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ }
+
+ private func bid64_scalbln(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ longIntSize _longIntSize: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseInt(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+ guard let longIntSize = self.parseLongIntSize(_longIntSize, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64(sign: .plus, exponent: arg1, significand: arg0, rounding: rounding, status: &status)
+ _ = longIntSize // Never used; silence compiler warning
+ let resultIntel = self.toIntel_scaleB(arg0, arg1, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_scalbn() {
+ self.bid64_scalbn("0", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("0", "[0000000000000001]", "-1", "[0000000000000000]", "30", ulp: ".1000000000")
+ self.bid64_scalbn("0", "[0000000000000005]", "-1", "[0000000000000000]", "30", ulp: ".5000000000")
+ self.bid64_scalbn("0", "[0000004280001000]", "-1", "[00000006a6666800]", "00")
+ self.bid64_scalbn("0", "[0001000000000000]", "768", "[5fea000000000000]", "00")
+ self.bid64_scalbn("0", "[0010b00010108004]", "-6", "[0000000117f84557]", "30")
+ self.bid64_scalbn("0", "0", "0", "[31c0000000000000]", "00")
+ self.bid64_scalbn("0", "-0", "0", "[b1c0000000000000]", "00")
+ self.bid64_scalbn("0", "[00be3e41a7d69e11]", "1", "[00de3e41a7d69e11]", "00")
+ self.bid64_scalbn("0", "0", "-1", "[31a0000000000000]", "00")
+ self.bid64_scalbn("0", "0", "1", "[31e0000000000000]", "00")
+ self.bid64_scalbn("0", "0.1", "-382", "[01e0000000000001]", "00")
+ self.bid64_scalbn("0", "-0.1", "-382", "[81e0000000000001]", "00")
+ self.bid64_scalbn("0", "0.1", "-383", "[01c0000000000001]", "00")
+ self.bid64_scalbn("0", "0.1", "383", "[5fe009184e72a000]", "00")
+ self.bid64_scalbn("0", "-0.1", "-383", "[81c0000000000001]", "00")
+ self.bid64_scalbn("0", "-0.1", "383", "[dfe009184e72a000]", "00")
+ self.bid64_scalbn("0", "0.1", "-384", "[01a0000000000001]", "00")
+ self.bid64_scalbn("0", "0.1", "384", "[5fe05af3107a4000]", "00")
+ self.bid64_scalbn("0", "-0.1", "-384", "[81a0000000000001]", "00")
+ self.bid64_scalbn("0", "-0.1", "384", "[dfe05af3107a4000]", "00")
+ self.bid64_scalbn("0", "0.1", "385", "[5fe38d7ea4c68000]", "00")
+ self.bid64_scalbn("0", "-0.1", "385", "[dfe38d7ea4c68000]", "00")
+ self.bid64_scalbn("0", "-0", "-1", "[b1a0000000000000]", "00")
+ self.bid64_scalbn("0", "-0", "1", "[b1e0000000000000]", "00")
+ self.bid64_scalbn("0", "[0200940c0a114000]", "-2", "[01c0940c0a114000]", "00")
+ self.bid64_scalbn("0", "[0e17000000000000]", "2", "[0e57000000000000]", "00")
+ self.bid64_scalbn("0", "[10002403080400c0]", "640", "[5fe1681e50280780]", "00")
+ self.bid64_scalbn("0", "[168004250b068840]", "24047", "[7800000000000000]", "28")
+ self.bid64_scalbn("0", "[1c40400019043020]", "201392160", "[7800000000000000]", "28")
+ self.bid64_scalbn("0", "[2000842084014008]", "-1141906699", "[0000000000000000]", "30")
+ self.bid64_scalbn("0", "[2c2d0133540b49f4]", "335544833", "[7800000000000000]", "28")
+ self.bid64_scalbn("0", "[2ec61b056786554d]", "3", "[2f261b056786554d]", "00")
+ self.bid64_scalbn("0", "[45cf7777611b47c5]", "4", "[464f7777611b47c5]", "00")
+ self.bid64_scalbn("0", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("0", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("0", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("0", "[6BF386F26FC0FFFF]", "2147483647", "[7800000000000000]", "28", ulp: "0.00000")
+ self.bid64_scalbn("0", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000000]", "30", ulp: "0.0000000000")
+ self.bid64_scalbn("0", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("0", "[77FB86F26FC0FFFF]", "1", "[7800000000000000]", "28", ulp: "0.0000000000")
+ self.bid64_scalbn("0", "[7800000000000000]", "0", "[7800000000000000]", "00")
+ self.bid64_scalbn("0", "[7800000000000000]", "12325632", "[7800000000000000]", "00")
+ self.bid64_scalbn("0", "[7800000000000000]", "-1", "[7800000000000000]", "00")
+ self.bid64_scalbn("0", "[7800000000000000]", "1", "[7800000000000000]", "00")
+ self.bid64_scalbn("0", "[78f0000000000000]", "0", "[7800000000000000]", "00")
+ self.bid64_scalbn("0", "[78f0000000000000]", "12325632", "[7800000000000000]", "00")
+ self.bid64_scalbn("0", "[78f0000000000000]", "-1", "[7800000000000000]", "00")
+ self.bid64_scalbn("0", "[78f0000000000000]", "1", "[7800000000000000]", "00")
+ self.bid64_scalbn("0", "[7c00000000000000]", "0", "[7c00000000000000]", "00")
+ self.bid64_scalbn("0", "[7c00000000000000]", "12325632", "[7c00000000000000]", "00")
+ self.bid64_scalbn("0", "[7c00000000000000]", "-1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("0", "[7c00000000000000]", "1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("0", "[7e00000000000000]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[7e00000000000000]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[7e00000000000000]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[7e00000000000000]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[7ef0000000000000]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[7ef0000000000000]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[7ef0000000000000]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[7ef0000000000000]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[7effffffffefffff]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[7effffffffefffff]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[7effffffffefffff]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[7effffffffefffff]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "[801bc107f3b6cbf5]", "-1", "[8002c680cb924798]", "30")
+ self.bid64_scalbn("0", "[9c85d9a5a3dfada5]", "36", "[a105d9a5a3dfada5]", "00")
+ self.bid64_scalbn("0", "[a720000000000000]", "5", "[a7c0000000000000]", "00")
+ self.bid64_scalbn("0", "[ac3f9361f3311903]", "6", "[acff9361f3311903]", "00")
+ self.bid64_scalbn("0", "[b67af9fd533fabff]", "0", "[b67af9fd533fabff]", "00")
+ self.bid64_scalbn("0", "[bb56f5d503636a0c]", "7", "[bc36f5d503636a0c]", "00")
+ self.bid64_scalbn("0", "[bbe6809560fc8bbe]", "8", "[bce6809560fc8bbe]", "00")
+ self.bid64_scalbn("0", "[c6457c02fc84a38a]", "9", "[c7657c02fc84a38a]", "00")
+ self.bid64_scalbn("0", "[dbff63dd3bfebef7]", "21520", "[f800000000000000]", "28")
+ self.bid64_scalbn("0", "[e53804fdedf68481]", "10", "[e58804fdedf68481]", "00")
+ self.bid64_scalbn("0", "[ea5e5fde262f578d]", "1048592", "[dfe0000000000000]", "00")
+ self.bid64_scalbn("0", "[eea50bcafe743fea]", "18100", "[dfe0000000000000]", "00")
+ self.bid64_scalbn("0", "[f5ac66ed9e697678]", "-4", "[d620000000000000]", "00")
+ self.bid64_scalbn("0", "[fbffefde9fbfffbf]", "-3", "[f800000000000000]", "00")
+ self.bid64_scalbn("0", "[fd3c49edeff968d2]", "-1238194967", "[fc0049edeff968d2]", "00")
+ self.bid64_scalbn("0", "[fdc106235688bc22]", "-6148", "[fc0106235688bc22]", "00")
+ self.bid64_scalbn("0", "Infinity", "0", "[7800000000000000]", "00")
+ self.bid64_scalbn("0", "-Infinity", "0", "[f800000000000000]", "00")
+ self.bid64_scalbn("0", "Infinity", "-1", "[7800000000000000]", "00")
+ self.bid64_scalbn("0", "Infinity", "1", "[7800000000000000]", "00")
+ self.bid64_scalbn("0", "-Infinity", "-1", "[f800000000000000]", "00")
+ self.bid64_scalbn("0", "-Infinity", "1", "[f800000000000000]", "00")
+ self.bid64_scalbn("0", "QNaN", "0", "[7c00000000000000]", "00")
+ self.bid64_scalbn("0", "QNaN", "-1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("0", "QNaN", "1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("0", "SNaN", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "SNaN", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "SNaN", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("1", "[0000000000000001]", "-1", "[0000000000000000]", "30", ulp: ".1000000000")
+ self.bid64_scalbn("1", "[0000000000000005]", "-1", "[0000000000000000]", "30", ulp: ".5000000000")
+ self.bid64_scalbn("1", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("1", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("1", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("1", "[6BF386F26FC0FFFF]", "2147483647", "[77FB86F26FC0FFFF]", "28", ulp: "0.00000")
+ self.bid64_scalbn("1", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000000]", "30", ulp: "0.0000000000")
+ self.bid64_scalbn("1", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("1", "[77FB86F26FC0FFFF]", "1", "[77FB86F26FC0FFFF]", "28", ulp: "0.0000000000")
+ self.bid64_scalbn("1", "[7800000000000000]", "0", "[7800000000000000]", "00")
+ self.bid64_scalbn("1", "[7800000000000000]", "12325632", "[7800000000000000]", "00")
+ self.bid64_scalbn("1", "[7800000000000000]", "-1", "[7800000000000000]", "00")
+ self.bid64_scalbn("1", "[7800000000000000]", "1", "[7800000000000000]", "00")
+ self.bid64_scalbn("1", "[78f0000000000000]", "0", "[7800000000000000]", "00")
+ self.bid64_scalbn("1", "[78f0000000000000]", "12325632", "[7800000000000000]", "00")
+ self.bid64_scalbn("1", "[78f0000000000000]", "-1", "[7800000000000000]", "00")
+ self.bid64_scalbn("1", "[78f0000000000000]", "1", "[7800000000000000]", "00")
+ self.bid64_scalbn("1", "[7c00000000000000]", "0", "[7c00000000000000]", "00")
+ self.bid64_scalbn("1", "[7c00000000000000]", "12325632", "[7c00000000000000]", "00")
+ self.bid64_scalbn("1", "[7c00000000000000]", "-1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("1", "[7c00000000000000]", "1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("1", "[7e00000000000000]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[7e00000000000000]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[7e00000000000000]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[7e00000000000000]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[7ef0000000000000]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[7ef0000000000000]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[7ef0000000000000]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[7ef0000000000000]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[7effffffffefffff]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[7effffffffefffff]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[7effffffffefffff]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("1", "[7effffffffefffff]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("2", "[0000000000000001]", "-1", "[0000000000000001]", "30", ulp: "-.9000000000")
+ self.bid64_scalbn("2", "[0000000000000005]", "-1", "[0000000000000001]", "30", ulp: "-.500000000")
+ self.bid64_scalbn("2", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("2", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("2", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("2", "[6BF386F26FC0FFFF]", "2147483647", "[7800000000000000]", "28", ulp: "0.00000")
+ self.bid64_scalbn("2", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000001]", "30", ulp: "-1.000000000")
+ self.bid64_scalbn("2", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("2", "[77FB86F26FC0FFFF]", "1", "[7800000000000000]", "28", ulp: "0.0000000000")
+ self.bid64_scalbn("2", "[7800000000000000]", "0", "[7800000000000000]", "00")
+ self.bid64_scalbn("2", "[7800000000000000]", "12325632", "[7800000000000000]", "00")
+ self.bid64_scalbn("2", "[7800000000000000]", "-1", "[7800000000000000]", "00")
+ self.bid64_scalbn("2", "[7800000000000000]", "1", "[7800000000000000]", "00")
+ self.bid64_scalbn("2", "[78f0000000000000]", "0", "[7800000000000000]", "00")
+ self.bid64_scalbn("2", "[78f0000000000000]", "12325632", "[7800000000000000]", "00")
+ self.bid64_scalbn("2", "[78f0000000000000]", "-1", "[7800000000000000]", "00")
+ self.bid64_scalbn("2", "[78f0000000000000]", "1", "[7800000000000000]", "00")
+ self.bid64_scalbn("2", "[7c00000000000000]", "0", "[7c00000000000000]", "00")
+ self.bid64_scalbn("2", "[7c00000000000000]", "12325632", "[7c00000000000000]", "00")
+ self.bid64_scalbn("2", "[7c00000000000000]", "-1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("2", "[7c00000000000000]", "1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("2", "[7e00000000000000]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[7e00000000000000]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[7e00000000000000]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[7e00000000000000]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[7ef0000000000000]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[7ef0000000000000]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[7ef0000000000000]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[7ef0000000000000]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[7effffffffefffff]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[7effffffffefffff]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[7effffffffefffff]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("2", "[7effffffffefffff]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[0000000000000001]", "0", "[0000000000000001]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("3", "[0000000000000001]", "-1", "[0000000000000000]", "30", ulp: ".1000000000")
+ self.bid64_scalbn("3", "[0000000000000005]", "-1", "[0000000000000000]", "30", ulp: ".5000000000")
+ self.bid64_scalbn("3", "[6BF386F26FC0FFFF]", "0", "[6BF386F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("3", "[6BF386F26FC0FFFF]", "-1", "[6BEB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("3", "[6BF386F26FC0FFFF]", "1", "[6BFB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("3", "[6BF386F26FC0FFFF]", "2147483647", "[77FB86F26FC0FFFF]", "28", ulp: "0.00000")
+ self.bid64_scalbn("3", "[6BF386F26FC0FFFF]", "-2147483648", "[0000000000000000]", "30", ulp: "0.0000000000")
+ self.bid64_scalbn("3", "[77FB86F26FC0FFFF]", "0", "[77FB86F26FC0FFFF]", "00", ulp: "0.0000000000")
+ self.bid64_scalbn("3", "[77FB86F26FC0FFFF]", "1", "[77FB86F26FC0FFFF]", "28", ulp: "0.0000000000")
+ self.bid64_scalbn("3", "[7800000000000000]", "0", "[7800000000000000]", "00")
+ self.bid64_scalbn("3", "[7800000000000000]", "12325632", "[7800000000000000]", "00")
+ self.bid64_scalbn("3", "[7800000000000000]", "-1", "[7800000000000000]", "00")
+ self.bid64_scalbn("3", "[7800000000000000]", "1", "[7800000000000000]", "00")
+ self.bid64_scalbn("3", "[78f0000000000000]", "0", "[7800000000000000]", "00")
+ self.bid64_scalbn("3", "[78f0000000000000]", "12325632", "[7800000000000000]", "00")
+ self.bid64_scalbn("3", "[78f0000000000000]", "-1", "[7800000000000000]", "00")
+ self.bid64_scalbn("3", "[78f0000000000000]", "1", "[7800000000000000]", "00")
+ self.bid64_scalbn("3", "[7c00000000000000]", "0", "[7c00000000000000]", "00")
+ self.bid64_scalbn("3", "[7c00000000000000]", "12325632", "[7c00000000000000]", "00")
+ self.bid64_scalbn("3", "[7c00000000000000]", "-1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("3", "[7c00000000000000]", "1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("3", "[7e00000000000000]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[7e00000000000000]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[7e00000000000000]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[7e00000000000000]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[7ef0000000000000]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[7ef0000000000000]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[7ef0000000000000]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[7ef0000000000000]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[7effffffffefffff]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[7effffffffefffff]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[7effffffffefffff]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("3", "[7effffffffefffff]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[0000000000000005]", "-1", "[0000000000000001]", "30", ulp: "-.500000000")
+ self.bid64_scalbn("4", "[7800000000000000]", "0", "[7800000000000000]", "00")
+ self.bid64_scalbn("4", "[7800000000000000]", "12325632", "[7800000000000000]", "00")
+ self.bid64_scalbn("4", "[7800000000000000]", "-1", "[7800000000000000]", "00")
+ self.bid64_scalbn("4", "[7800000000000000]", "1", "[7800000000000000]", "00")
+ self.bid64_scalbn("4", "[78f0000000000000]", "0", "[7800000000000000]", "00")
+ self.bid64_scalbn("4", "[78f0000000000000]", "12325632", "[7800000000000000]", "00")
+ self.bid64_scalbn("4", "[78f0000000000000]", "-1", "[7800000000000000]", "00")
+ self.bid64_scalbn("4", "[78f0000000000000]", "1", "[7800000000000000]", "00")
+ self.bid64_scalbn("4", "[7c00000000000000]", "0", "[7c00000000000000]", "00")
+ self.bid64_scalbn("4", "[7c00000000000000]", "12325632", "[7c00000000000000]", "00")
+ self.bid64_scalbn("4", "[7c00000000000000]", "-1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("4", "[7c00000000000000]", "1", "[7c00000000000000]", "00")
+ self.bid64_scalbn("4", "[7e00000000000000]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[7e00000000000000]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[7e00000000000000]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[7e00000000000000]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[7ef0000000000000]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[7ef0000000000000]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[7ef0000000000000]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[7ef0000000000000]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[7effffffffefffff]", "0", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[7effffffffefffff]", "12325632", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[7effffffffefffff]", "-1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("4", "[7effffffffefffff]", "1", "[7c00000000000000]", "01")
+ self.bid64_scalbn("0", "0.0e10", "-50", "[2ca0000000000000]", "00")
+ }
+
+ private func bid64_scalbn(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseInt32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64(sign: .plus, exponent: Int(arg1), significand: arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_scaleB(arg0, Int(arg1), result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_frexp() {
+ self.bid128_frexp("0", "[78000000000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_frexp("0", "[7c000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_frexp("0", "[f8000000000000000000000000000000]", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_frexp("0", "[fc000000000000000000000000000000]", "0", "[fc000000000000000000000000000000]", "00")
+ self.bid128_frexp("0", "[00000000000000000000000000000001]", "-6175", "[303E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("0", "[00420000000000000000000000000001]", "-6142", "[303E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "6145", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("0", "[80000000000000000000000000000001]", "-6175", "[B03E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("0", "[80420000000000000000000000000001]", "-6142", "[B03E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("0", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("0", "[DFFFED09BEAD87C0378D8E63FFFFFFFF]", "6145", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("1", "[00000000000000000000000000000001]", "-6175", "[303E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("1", "[00420000000000000000000000000001]", "-6142", "[303E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "6145", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("1", "[80000000000000000000000000000001]", "-6175", "[B03E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("1", "[80420000000000000000000000000001]", "-6142", "[B03E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("1", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("1", "[DFFFED09BEAD87C0378D8E63FFFFFFFF]", "6145", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("2", "[00000000000000000000000000000001]", "-6175", "[303E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("2", "[00420000000000000000000000000001]", "-6142", "[303E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("2", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "6145", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("2", "[80000000000000000000000000000001]", "-6175", "[B03E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("2", "[80420000000000000000000000000001]", "-6142", "[B03E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("2", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("2", "[DFFFED09BEAD87C0378D8E63FFFFFFFF]", "6145", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("3", "[00000000000000000000000000000001]", "-6175", "[303E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("3", "[00420000000000000000000000000001]", "-6142", "[303E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("3", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "6145", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("3", "[80000000000000000000000000000001]", "-6175", "[B03E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("3", "[80420000000000000000000000000001]", "-6142", "[B03E0000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("3", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("3", "[DFFFED09BEAD87C0378D8E63FFFFFFFF]", "6145", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_frexp("0", "[00000000000000000000000000000000]", "0", "[00000000000000000000000000000000]", "00")
+ self.bid128_frexp("0", "[7e000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_frexp("0", "[80000000000000000000000000000000]", "0", "[80000000000000000000000000000000]", "00")
+ self.bid128_frexp("0", "[fe000000000000000000000000000000]", "0", "[fc000000000000000000000000000000]", "00")
+ self.bid128_frexp("0", "[481432060a2e154f,d148002010000018]", "3084", "[2ffc32060a2e154fd148002010000018]", "00")
+ self.bid128_frexp("0", "[68d8f80c42c232ff,c59ac8aa0a9a9cf1]", "0", "[23620000000000000000000000000000]", "00")
+ self.bid128_frexp("0", "[0000000000000000,08004a4900205082]", "-6158", "[301c00000000000008004a4900205082]", "00")
+ self.bid128_frexp("0", "[481432060a2e154f,d148002010000018]", "3084", "[2ffc32060a2e154fd148002010000018]", "00")
+ self.bid128_frexp("0", "[68d8f80c42c232ff,c59ac8aa0a9a9cf1]", "0", "[23620000000000000000000000000000]", "00")
+ self.bid128_frexp("0", "[0000000000000000,08004a4900205082]", "-6158", "[301c00000000000008004a4900205082]", "00")
+ self.bid128_frexp("0", "[3040000000000000,0000000000000001]", "1", "[303e0000000000000000000000000001]", "00")
+ }
+
+ private func bid128_frexp(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseInt32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ let exponent = arg0.exponent(status: &status)
+ let significand = arg0.significand
+ let intel = self.toIntel_frexp(arg0, exponent: exponent, significand: significand)
+
+ // 'arg1' is the expected exponent
+ self.assertInt(intel.exponent, arg1, file, line, "Exponent")
+ self.assertEqual(intel.significand, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line, "Significand")
+
+ if arg0._isFinite && !arg0.isZero {
+ // We have to exclude 0, because it does not guarantee exponent preservation
+ // ('0.exponent' returns 'Int.min').
+ // Rounding should not matter
+ let restored = Decimal128(sign: arg0.sign, exponent: exponent, significand: significand, rounding: .towardZero)
+ self.assertEqual(restored, arg0, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line, "Decimal128(sign:exponent:significand:)")
+ }
+
+ // 'frexp' does not signal any exceptions
+ status = DecimalStatus()
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_ilogb() {
+ self.bid128_ilogb("0", "[00000000000000000000000000000000]", "-2147483648", "01", ulp: "0.0000000000")
+ self.bid128_ilogb("0", "[00000000000000000000000000000001]", "-6176", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("0", "[0001ed09bead87c0378d8e62ffffffff]", "-6143", "00")
+ self.bid128_ilogb("0", "[0001ed09bead87c0378d8e64ffffffff]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[00420000000000000000000000000001]", "-6143", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("0", "[0492000000000000,0000000000000000]", "[80000000]", "01")
+ self.bid128_ilogb("0", "-0", "[80000000]", "01")
+ self.bid128_ilogb("0", "0", "[80000000]", "01")
+ self.bid128_ilogb("0", "[15ae000000000000,0000000000000000]", "[80000000]", "01")
+ self.bid128_ilogb("0", "[1a38000000000000,0000000000000000]", "[80000000]", "01")
+ self.bid128_ilogb("0", "[2fd0000000000000,0000000000000000]", "[80000000]", "01")
+ self.bid128_ilogb("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("0", "[4024471a24b9c094,eb33e24e51e6e393]", "[0000813]", "00")
+ self.bid128_ilogb("0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "6144", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("0", "[6003b75d7734cd9e1234567890123456]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[69dbb75d7734cd9e1234567890123456]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[78000000000000000000000000000000]", "2147483647", "01")
+ self.bid128_ilogb("0", "[7800000000000000,0000000000000000]", "[7fffffff]", "01")
+ self.bid128_ilogb("0", "[78000001000000000000000000000000]", "2147483647", "01")
+ self.bid128_ilogb("0", "[7c000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[7c000001000000000000000000000000]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[7cff3fffffffefffffffffffffffffff]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[7e000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[7e003fffffffefffffffffffffffffff]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[7ef00000000000000000000000000001]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[80000000000000000000000000000001]", "-6176", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("0", "[80420000000000000000000000000001]", "-6143", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("0", "[86211d476ec3ab4d,e58a9dd24de85615]", "[FFFFEB11]", "00")
+ self.bid128_ilogb("0", "[9fbfff2ffbffef5e,80e117d6820566eb]", "[80000000]", "01")
+ self.bid128_ilogb("0", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("0", "[bb37c0485fa81f15,3392bf3090a40397]", "[0059c]", "00")
+ self.bid128_ilogb("0", "[c992000000000000,0000000000000000]", "[80000000]", "01")
+ self.bid128_ilogb("0", "[d5ab94f9589fa6cc,7008a05cc89061b5]", "[0012d6]", "00")
+ self.bid128_ilogb("0", "[dc2e000000000000,0000000000000000]", "[80000000]", "01")
+ self.bid128_ilogb("0", "[dcca37edb647a616,cafcb0077b828448]", "[0001666]", "00")
+ self.bid128_ilogb("0", "[DFFFED09BEAD87C0378D8E63FFFFFFFF]", "6144", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("0", "[e003b75d7734cd9e1234567890123456]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[e9dbb75d7734cd9e1234567890123456]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[f4c89c03d9863bc3,4e53a7c4bb2d8399]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[f8000000000000000000000000000000]", "2147483647", "01")
+ self.bid128_ilogb("0", "[f8000001000000000000000000000000]", "2147483647", "01")
+ self.bid128_ilogb("0", "[fbff3fff6f997ffe,8680117040495b03]", "[7fffffff]", "01")
+ self.bid128_ilogb("0", "[fc000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[fc000001000000000000000000000000]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[fe000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[fef00000000000000000000000000001]", "-2147483648", "01")
+ self.bid128_ilogb("0", "[ffffffffffffffff,2c9a250808583608]", "[80000000]", "01")
+ self.bid128_ilogb("0", "-Infinity", "[7fffffff]", "01")
+ self.bid128_ilogb("0", "Infinity", "[7fffffff]", "01")
+ self.bid128_ilogb("1", "[00000000000000000000000000000000]", "-2147483648", "01", ulp: "0.0000000000")
+ self.bid128_ilogb("1", "[00000000000000000000000000000001]", "-6176", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("1", "[00420000000000000000000000000001]", "-6143", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "6144", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("1", "[80000000000000000000000000000001]", "-6176", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("1", "[80420000000000000000000000000001]", "-6143", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("1", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("1", "[DFFFED09BEAD87C0378D8E63FFFFFFFF]", "6144", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("2", "[00000000000000000000000000000000]", "-2147483648", "01", ulp: "0.0000000000")
+ self.bid128_ilogb("2", "[00000000000000000000000000000001]", "-6176", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("2", "[00420000000000000000000000000001]", "-6143", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("2", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "6144", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("2", "[80000000000000000000000000000001]", "-6176", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("2", "[80420000000000000000000000000001]", "-6143", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("2", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("2", "[DFFFED09BEAD87C0378D8E63FFFFFFFF]", "6144", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("3", "[00000000000000000000000000000000]", "-2147483648", "01", ulp: "0.0000000000")
+ self.bid128_ilogb("3", "[00000000000000000000000000000001]", "-6176", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("3", "[00420000000000000000000000000001]", "-6143", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("3", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "6144", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("3", "[80000000000000000000000000000001]", "-6176", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("3", "[80420000000000000000000000000001]", "-6143", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("3", "[AFFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "00", ulp: "0.0000000000")
+ self.bid128_ilogb("3", "[DFFFED09BEAD87C0378D8E63FFFFFFFF]", "6144", "00", ulp: "0.0000000000")
+ }
+
+ private func bid128_ilogb(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ assert(ulp?.isZero ?? true) // 'ulp' does not make sense in this test
+ let result = arg0.exponent(status: &status)
+ let resultIntel = self.toIntel_logB(arg0, result: result)
+ self.assertInt(resultIntel, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_scalbln() {
+ self.bid128_scalbln("0", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("0", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("0", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid128_scalbln("0", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid128_scalbln("0", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid128_scalbln("0", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[78000000000000000000000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[78000000000000000000000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid128_scalbln("0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[78000000000000000000000000000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid128_scalbln("0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[78000000000000000000000000000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid128_scalbln("0", "[69dbb75d7734cd9e1234567890123456]", "0", "[276e0000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[69dbb75d7734cd9e1234567890123456]", "0", "[276e0000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[69dbb75d7734cd9e1234567890123456]", "1", "[27700000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[69dbb75d7734cd9e1234567890123456]", "1", "[27700000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[78000000000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[78000000000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[78000000000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[78000000000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[78000000000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[78000000000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[7c000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[7c000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[7e000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "01", longIntSize: "01")
+ self.bid128_scalbln("0", "[7e000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "01", longIntSize: "01")
+ self.bid128_scalbln("1", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("1", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("1", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid128_scalbln("1", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid128_scalbln("1", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid128_scalbln("1", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid128_scalbln("1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid128_scalbln("1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid128_scalbln("2", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("2", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("2", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000001]", "30", ulp: "-.9000000000", longIntSize: "30")
+ self.bid128_scalbln("2", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000001]", "30", ulp: "-.9000000000", longIntSize: "30")
+ self.bid128_scalbln("2", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid128_scalbln("2", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[78000000000000000000000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[78000000000000000000000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000001]", "30", ulp: "-1.000000000", longIntSize: "30")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000001]", "30", ulp: "-1.000000000", longIntSize: "30")
+ self.bid128_scalbln("2", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("2", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("2", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[78000000000000000000000000000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid128_scalbln("2", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[78000000000000000000000000000000]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid128_scalbln("3", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("3", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("3", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid128_scalbln("3", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".1000000000", longIntSize: "30")
+ self.bid128_scalbln("3", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid128_scalbln("3", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".5000000000", longIntSize: "30")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid128_scalbln("3", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("3", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000", longIntSize: "00")
+ self.bid128_scalbln("3", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid128_scalbln("3", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.0000000000", longIntSize: "28")
+ self.bid128_scalbln("4", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid128_scalbln("4", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000001]", "30", ulp: "-.500000000", longIntSize: "30")
+ self.bid128_scalbln("0", "[69dbb75d7734cd9e1234567890123456]", "-1", "[276c0000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "9223372036854775807", "[78000000000000000000000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-9223372036854775808", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid128_scalbln("0", "[69dbb75d7734cd9e1234567890123456]", "-1", "[276c0000000000000000000000000000]", "00", longIntSize: "00")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "9223372036854775807", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-9223372036854775808", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "9223372036854775807", "[78000000000000000000000000000000]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-9223372036854775808", "[00000000000000000000000000000001]", "30", ulp: "-1.000000000", longIntSize: "30")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "9223372036854775807", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.00000", longIntSize: "28")
+ self.bid128_scalbln("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-9223372036854775808", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000", longIntSize: "30")
+ }
+
+ private func bid128_scalbln(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ longIntSize _longIntSize: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseInt(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+ guard let longIntSize = self.parseLongIntSize(_longIntSize, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128(sign: .plus, exponent: arg1, significand: arg0, rounding: rounding, status: &status)
+ _ = longIntSize // Never used; silence compiler warning
+ let resultIntel = self.toIntel_scaleB(arg0, arg1, result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_scalbn() {
+ self.bid128_scalbn("0", "[00000000000000000000000000000000]", "0", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[00000000000000000000000000000000]", "-1", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[00000000000000000000000000000000]", "1", "[00020000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[00000000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("0", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".1000000000")
+ self.bid128_scalbn("0", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".5000000000")
+ self.bid128_scalbn("0", "[0000000000200100,e182301364080782]", "12288", "[5ffe000001400a08cf15e0c1e8504b14]", "00")
+ self.bid128_scalbn("0", "[000000028a080400,8002020024000000]", "-9", "[000000000000000ae7dcfc24a9355432]", "30")
+ self.bid128_scalbn("0", "[0000010080430040,ffffeffffefdffff]", "12288", "[5ffe0a05029e0289ffff5ffff5ebfff6]", "00")
+ self.bid128_scalbn("0", "[0000020800082090,030240316cee002b]", "-1", "[000000340000d00e66b36cd1be17ccd1]", "30")
+ self.bid128_scalbn("0", "[0000200254078246,91f4f05931970480]", "-1", "[000003336ecd8d070e987e6f51c24d40]", "00")
+ self.bid128_scalbn("0", "[0001020004108020,dbdfbfffbffceefd]", "-1", "[000019cccd34d99ce2c993332ccc7e4c]", "30")
+ self.bid128_scalbn("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[0001ed09bead87c0378d8e64ffffffff]", "-1", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[0001ed09bead87c0378d8e64ffffffff]", "1", "[00020000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[0001ed09bead87c0378d8e64ffffffff]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[0008400000000844,77fd35f51eecefe5]", "-33", "[000000000000000000000000000032b5]", "30")
+ self.bid128_scalbn("0", "0", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[003e0000000000000000000000000000]", "0", "[003e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[003e0000000000000000000000000000]", "-1", "[003c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[003e0000000000000000000000000000]", "1", "[00400000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[003e0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[0042000880060802,0c1c1242400c0800]", "-2", "[003e0008800608020c1c1242400c0800]", "00")
+ self.bid128_scalbn("0", "[00840000000000000000000000000000]", "0", "[00840000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[00840000000000000000000000000000]", "-1", "[00820000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[00840000000000000000000000000000]", "1", "[00860000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[00840000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "-0", "0", "[b0400000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "0", "-1", "[303e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "0", "1", "[30420000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "-0", "-1", "[b03e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "-0", "1", "[b0420000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "0.9", "-6142", "[00420000000000000000000000000009]", "00")
+ self.bid128_scalbn("0", "-0.9", "-6142", "[80420000000000000000000000000009]", "00")
+ self.bid128_scalbn("0", "0.9", "-6143", "[00400000000000000000000000000009]", "00")
+ self.bid128_scalbn("0", "0.9", "6143", "[5ffe046ff5af2138c51ba45a80000000]", "00")
+ self.bid128_scalbn("0", "-0.9", "-6143", "[80400000000000000000000000000009]", "00")
+ self.bid128_scalbn("0", "-0.9", "6143", "[dffe046ff5af2138c51ba45a80000000]", "00")
+ self.bid128_scalbn("0", "0.9", "-6144", "[003e0000000000000000000000000009]", "00")
+ self.bid128_scalbn("0", "0.9", "6144", "[5ffe2c5f98d74c37b3146b8900000000]", "00")
+ self.bid128_scalbn("0", "-0.9", "-6144", "[803e0000000000000000000000000009]", "00")
+ self.bid128_scalbn("0", "-0.9", "6144", "[dffe2c5f98d74c37b3146b8900000000]", "00")
+ self.bid128_scalbn("0", "0.9", "6145", "[5fffbbbbf868fa2cfecc335a00000000]", "00")
+ self.bid128_scalbn("0", "-0.9", "6145", "[dfffbbbbf868fa2cfecc335a00000000]", "00")
+ self.bid128_scalbn("0", "[13550b41aa4c2e9e,f231457a40faf6d8]", "1", "[13570b41aa4c2e9ef231457a40faf6d8]", "00")
+ self.bid128_scalbn("0", "[2d240000000000000000000000000000]", "0", "[2d240000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2d240000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2d240000000000000000000000000000]", "-1", "[2d220000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2d240000000000000000000000000000]", "1", "[2d260000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2d260000000000000000000000000000]", "0", "[2d260000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2d260000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2d260000000000000000000000000000]", "-1", "[2d240000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2d260000000000000000000000000000]", "1", "[2d280000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2ecb3d459012b202,f6b1e4f48fe58388]", "2", "[2ecf3d459012b202f6b1e4f48fe58388]", "00")
+ self.bid128_scalbn("0", "[2ffc0000000000000000000000000000]", "0", "[2ffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2ffc0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2ffc0000000000000000000000000000]", "-1", "[2ffa0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2ffc0000000000000000000000000000]", "1", "[2ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[78000000000000000000000000000000]", "28", ulp: "0.00000")
+ self.bid128_scalbn("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000")
+ self.bid128_scalbn("0", "[30200000000000000000000000000000]", "0", "[30200000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[30200000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[30200000000000000000000000000000]", "-1", "[301e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[30200000000000000000000000000000]", "1", "[30220000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[33200000000000000000000000000000]", "0", "[33200000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[33200000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[33200000000000000000000000000000]", "-1", "[331e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[33200000000000000000000000000000]", "1", "[33220000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[33220000000000000000000000000000]", "0", "[33220000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[33220000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[33220000000000000000000000000000]", "-1", "[33200000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[33220000000000000000000000000000]", "1", "[33240000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[4f779f771e5fffaa,edf7aceef9df5ff7]", "-2145631211", "[00000000000000000000000000000000]", "30")
+ self.bid128_scalbn("0", "[5ffa0000000000000000000000000000]", "0", "[5ffa0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[5ffa0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[5ffa0000000000000000000000000000]", "-1", "[5ff80000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[5ffa0000000000000000000000000000]", "1", "[5ffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[78000000000000000000000000000000]", "28", ulp: "0.0000000000")
+ self.bid128_scalbn("0", "[6003b75d7734cd9e1234567890123456]", "0", "[000e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[6003b75d7734cd9e1234567890123456]", "-1", "[000c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[6003b75d7734cd9e1234567890123456]", "1", "[00100000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[6003b75d7734cd9e1234567890123456]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[6391054cd8a752b2,04d6af0f04a61d9a]", "-16393", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[69dbb75d7734cd9e1234567890123456]", "0", "[276e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[69dbb75d7734cd9e1234567890123456]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[69dbb75d7734cd9e1234567890123456]", "-1", "[276c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[69dbb75d7734cd9e1234567890123456]", "1", "[27700000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[717fc712e3bbadf2,96bf11120cc8c450]", "1903172", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[78000000000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[78000000000000000000000000000000]", "12336256", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[78000000000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[78000000000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[78000001000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[78000001000000000000000000000000]", "12336256", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[78000001000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[78000001000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[7c000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[7c000000000000000000000000000000]", "12336256", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[7c000000000000000000000000000000]", "-1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[7c000000000000000000000000000000]", "1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[7c000001000000000000000000000000]", "0", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[7c000001000000000000000000000000]", "12336256", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[7c000001000000000000000000000000]", "-1", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[7c000001000000000000000000000000]", "1", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[7cd6fc74f7789725,0100881028204800]", "-4", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[7e000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("0", "[7e000000000000000000000000000000]", "12336256", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("0", "[7e000000000000000000000000000000]", "-1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("0", "[7e000000000000000000000000000000]", "1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("0", "[7e003fffffffefffffffffffffffffff]", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("0", "[7e003fffffffefffffffffffffffffff]", "12336256", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("0", "[7e003fffffffefffffffffffffffffff]", "-1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("0", "[7e003fffffffefffffffffffffffffff]", "1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("0", "[7ef00000000000000000000000000001]", "0", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("0", "[7ef00000000000000000000000000001]", "12336256", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("0", "[7ef00000000000000000000000000001]", "-1", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("0", "[7ef00000000000000000000000000001]", "1", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("0", "[80000000000000000000000000000000]", "0", "[80000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[80000000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[80000000000000000000000000000000]", "-1", "[80000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[80000000000000000000000000000000]", "1", "[80020000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[80d2a758cbb72db8,3c0e29333b2efd9c]", "3", "[80d8a758cbb72db83c0e29333b2efd9c]", "00")
+ self.bid128_scalbn("0", "[858c4e0a5a309c7d,edfd4c77f5d9c834]", "4", "[85944e0a5a309c7dedfd4c77f5d9c834]", "00")
+ self.bid128_scalbn("0", "[8ac4a5b732a274fc,40e4b26944e0497f]", "5", "[8acea5b732a274fc40e4b26944e0497f]", "00")
+ self.bid128_scalbn("0", "[9020020000028104,9e997b9ecdb7cbf9]", "122330526", "[f8000000000000000000000000000000]", "28")
+ self.bid128_scalbn("0", "[94b9588fa6ccd5a3,a25c6a9031747040]", "1024", "[9cb9588fa6ccd5a3a25c6a9031747040]", "00")
+ self.bid128_scalbn("0", "[96121006972502c3,0000000000000000]", "31510", "[f8000000000000000000000000000000]", "28")
+ self.bid128_scalbn("0", "[ab0cd0d34b2dc8d6,feacbb4bef0e29ae]", "6", "[ab18d0d34b2dc8d6feacbb4bef0e29ae]", "00")
+ self.bid128_scalbn("0", "[ad240000000000000000000000000000]", "0", "[ad240000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[ad240000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[ad240000000000000000000000000000]", "-1", "[ad220000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[ad240000000000000000000000000000]", "1", "[ad260000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[ad3e0000000000000000000000000000]", "0", "[ad3e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[ad3e0000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[ad3e0000000000000000000000000000]", "-1", "[ad3c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[ad3e0000000000000000000000000000]", "1", "[ad400000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[b0200000000000000000000000000000]", "0", "[b0200000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[b0200000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[b0200000000000000000000000000000]", "-1", "[b01e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[b0200000000000000000000000000000]", "1", "[b0220000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[b2fcd8c588549ea4,fd444665ac926911]", "-2113", "[a27ad8c588549ea4fd444665ac926911]", "00")
+ self.bid128_scalbn("0", "[b3200000000000000000000000000000]", "0", "[b3200000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[b3200000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[b3200000000000000000000000000000]", "-1", "[b31e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[b3200000000000000000000000000000]", "1", "[b3220000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[b3d315add1ca40a2,684e604fcabb441b]", "7", "[b3e115add1ca40a2684e604fcabb441b]", "00")
+ self.bid128_scalbn("0", "[b8639436278b64df,d2855c810025a646]", "8", "[b8739436278b64dfd2855c810025a646]", "00")
+ self.bid128_scalbn("0", "[bb26000000000000,0000000000000000]", "9", "[bb380000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[deffffffffbfff7f,fcfbffdd4f8fbfe3]", "289410051", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[dffe0000000000000000000000000000]", "0", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[dffe0000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[dffe0000000000000000000000000000]", "-1", "[dffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[dffe0000000000000000000000000000]", "1", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[e9e5febd78263143,0000000004000000]", "-3", "[a7900000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[fc00000000000000,0000000000000000]", "10", "[fc000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "[ffb7cbffdfa5fef7,f7aff9ffb37fdbff]", "134480896", "[fc000bffdfa5fef7f7aff9ffb37fdbff]", "01")
+ self.bid128_scalbn("0", "[fffff7fbefffe7ff,975f0be6ccd6a23f]", "-2", "[fc000000000000000000000000000000]", "01")
+ self.bid128_scalbn("0", "Infinity", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "-Infinity", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "Infinity", "-1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "Infinity", "1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "-Infinity", "-1", "[f8000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "-Infinity", "1", "[f8000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "QNaN", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "QNaN", "-1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "QNaN", "1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("0", "SNaN", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("0", "SNaN", "-1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("0", "SNaN", "1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("1", "[00000000000000000000000000000000]", "0", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[00000000000000000000000000000000]", "-1", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[00000000000000000000000000000000]", "1", "[00020000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[00000000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("1", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".1000000000")
+ self.bid128_scalbn("1", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".5000000000")
+ self.bid128_scalbn("1", "[0001ed09bead87c0378d8e64ffffffff]", "0", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[0001ed09bead87c0378d8e64ffffffff]", "-1", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[0001ed09bead87c0378d8e64ffffffff]", "1", "[00020000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[0001ed09bead87c0378d8e64ffffffff]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[003e0000000000000000000000000000]", "0", "[003e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[003e0000000000000000000000000000]", "-1", "[003c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[003e0000000000000000000000000000]", "1", "[00400000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[003e0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[00840000000000000000000000000000]", "0", "[00840000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[00840000000000000000000000000000]", "-1", "[00820000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[00840000000000000000000000000000]", "1", "[00860000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[00840000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2d240000000000000000000000000000]", "0", "[2d240000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2d240000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2d240000000000000000000000000000]", "-1", "[2d220000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2d240000000000000000000000000000]", "1", "[2d260000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2d260000000000000000000000000000]", "0", "[2d260000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2d260000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2d260000000000000000000000000000]", "-1", "[2d240000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2d260000000000000000000000000000]", "1", "[2d280000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2ffc0000000000000000000000000000]", "0", "[2ffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2ffc0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2ffc0000000000000000000000000000]", "-1", "[2ffa0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2ffc0000000000000000000000000000]", "1", "[2ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.00000")
+ self.bid128_scalbn("1", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000")
+ self.bid128_scalbn("1", "[30200000000000000000000000000000]", "0", "[30200000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[30200000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[30200000000000000000000000000000]", "-1", "[301e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[30200000000000000000000000000000]", "1", "[30220000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[33200000000000000000000000000000]", "0", "[33200000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[33200000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[33200000000000000000000000000000]", "-1", "[331e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[33200000000000000000000000000000]", "1", "[33220000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[33220000000000000000000000000000]", "0", "[33220000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[33220000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[33220000000000000000000000000000]", "-1", "[33200000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[33220000000000000000000000000000]", "1", "[33240000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[5ffa0000000000000000000000000000]", "0", "[5ffa0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[5ffa0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[5ffa0000000000000000000000000000]", "-1", "[5ff80000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[5ffa0000000000000000000000000000]", "1", "[5ffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.0000000000")
+ self.bid128_scalbn("1", "[6003b75d7734cd9e1234567890123456]", "0", "[000e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[6003b75d7734cd9e1234567890123456]", "-1", "[000c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[6003b75d7734cd9e1234567890123456]", "1", "[00100000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[6003b75d7734cd9e1234567890123456]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[69dbb75d7734cd9e1234567890123456]", "0", "[276e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[69dbb75d7734cd9e1234567890123456]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[69dbb75d7734cd9e1234567890123456]", "-1", "[276c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[69dbb75d7734cd9e1234567890123456]", "1", "[27700000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[78000000000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[78000000000000000000000000000000]", "12336256", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[78000000000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[78000000000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[78000001000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[78000001000000000000000000000000]", "12336256", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[78000001000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[78000001000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[7c000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[7c000000000000000000000000000000]", "12336256", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[7c000000000000000000000000000000]", "-1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[7c000000000000000000000000000000]", "1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[7c000001000000000000000000000000]", "0", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[7c000001000000000000000000000000]", "12336256", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[7c000001000000000000000000000000]", "-1", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[7c000001000000000000000000000000]", "1", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[7e000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("1", "[7e000000000000000000000000000000]", "12336256", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("1", "[7e000000000000000000000000000000]", "-1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("1", "[7e000000000000000000000000000000]", "1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("1", "[7e003fffffffefffffffffffffffffff]", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("1", "[7e003fffffffefffffffffffffffffff]", "12336256", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("1", "[7e003fffffffefffffffffffffffffff]", "-1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("1", "[7e003fffffffefffffffffffffffffff]", "1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("1", "[7ef00000000000000000000000000001]", "0", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("1", "[7ef00000000000000000000000000001]", "12336256", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("1", "[7ef00000000000000000000000000001]", "-1", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("1", "[7ef00000000000000000000000000001]", "1", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("1", "[80000000000000000000000000000000]", "0", "[80000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[80000000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[80000000000000000000000000000000]", "-1", "[80000000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[80000000000000000000000000000000]", "1", "[80020000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[ad240000000000000000000000000000]", "0", "[ad240000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[ad240000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[ad240000000000000000000000000000]", "-1", "[ad220000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[ad240000000000000000000000000000]", "1", "[ad260000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[ad3e0000000000000000000000000000]", "0", "[ad3e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[ad3e0000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[ad3e0000000000000000000000000000]", "-1", "[ad3c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[ad3e0000000000000000000000000000]", "1", "[ad400000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[b0200000000000000000000000000000]", "0", "[b0200000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[b0200000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[b0200000000000000000000000000000]", "-1", "[b01e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[b0200000000000000000000000000000]", "1", "[b0220000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[b3200000000000000000000000000000]", "0", "[b3200000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[b3200000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[b3200000000000000000000000000000]", "-1", "[b31e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[b3200000000000000000000000000000]", "1", "[b3220000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[dffe0000000000000000000000000000]", "0", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[dffe0000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[dffe0000000000000000000000000000]", "-1", "[dffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("1", "[dffe0000000000000000000000000000]", "1", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[00000000000000000000000000000000]", "0", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[00000000000000000000000000000000]", "-1", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[00000000000000000000000000000000]", "1", "[00020000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[00000000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("2", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000001]", "30", ulp: "-.9000000000")
+ self.bid128_scalbn("2", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000001]", "30", ulp: "-.500000000")
+ self.bid128_scalbn("2", "[0001ed09bead87c0378d8e64ffffffff]", "0", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[0001ed09bead87c0378d8e64ffffffff]", "-1", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[0001ed09bead87c0378d8e64ffffffff]", "1", "[00020000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[0001ed09bead87c0378d8e64ffffffff]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[003e0000000000000000000000000000]", "0", "[003e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[003e0000000000000000000000000000]", "-1", "[003c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[003e0000000000000000000000000000]", "1", "[00400000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[003e0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[00840000000000000000000000000000]", "0", "[00840000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[00840000000000000000000000000000]", "-1", "[00820000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[00840000000000000000000000000000]", "1", "[00860000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[00840000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2d240000000000000000000000000000]", "0", "[2d240000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2d240000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2d240000000000000000000000000000]", "-1", "[2d220000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2d240000000000000000000000000000]", "1", "[2d260000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2d260000000000000000000000000000]", "0", "[2d260000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2d260000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2d260000000000000000000000000000]", "-1", "[2d240000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2d260000000000000000000000000000]", "1", "[2d280000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2ffc0000000000000000000000000000]", "0", "[2ffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2ffc0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2ffc0000000000000000000000000000]", "-1", "[2ffa0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2ffc0000000000000000000000000000]", "1", "[2ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[78000000000000000000000000000000]", "28", ulp: "0.00000")
+ self.bid128_scalbn("2", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000001]", "30", ulp: "-1.000000000")
+ self.bid128_scalbn("2", "[30200000000000000000000000000000]", "0", "[30200000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[30200000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[30200000000000000000000000000000]", "-1", "[301e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[30200000000000000000000000000000]", "1", "[30220000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[33200000000000000000000000000000]", "0", "[33200000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[33200000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[33200000000000000000000000000000]", "-1", "[331e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[33200000000000000000000000000000]", "1", "[33220000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[33220000000000000000000000000000]", "0", "[33220000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[33220000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[33220000000000000000000000000000]", "-1", "[33200000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[33220000000000000000000000000000]", "1", "[33240000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[5ffa0000000000000000000000000000]", "0", "[5ffa0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[5ffa0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[5ffa0000000000000000000000000000]", "-1", "[5ff80000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[5ffa0000000000000000000000000000]", "1", "[5ffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("2", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[78000000000000000000000000000000]", "28", ulp: "0.0000000000")
+ self.bid128_scalbn("2", "[6003b75d7734cd9e1234567890123456]", "0", "[000e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[6003b75d7734cd9e1234567890123456]", "-1", "[000c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[6003b75d7734cd9e1234567890123456]", "1", "[00100000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[6003b75d7734cd9e1234567890123456]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[69dbb75d7734cd9e1234567890123456]", "0", "[276e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[69dbb75d7734cd9e1234567890123456]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[69dbb75d7734cd9e1234567890123456]", "-1", "[276c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[69dbb75d7734cd9e1234567890123456]", "1", "[27700000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[78000000000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[78000000000000000000000000000000]", "12336256", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[78000000000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[78000000000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[78000001000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[78000001000000000000000000000000]", "12336256", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[78000001000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[78000001000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[7c000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[7c000000000000000000000000000000]", "12336256", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[7c000000000000000000000000000000]", "-1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[7c000000000000000000000000000000]", "1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[7c000001000000000000000000000000]", "0", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[7c000001000000000000000000000000]", "12336256", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[7c000001000000000000000000000000]", "-1", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[7c000001000000000000000000000000]", "1", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[7e000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("2", "[7e000000000000000000000000000000]", "12336256", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("2", "[7e000000000000000000000000000000]", "-1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("2", "[7e000000000000000000000000000000]", "1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("2", "[7e003fffffffefffffffffffffffffff]", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("2", "[7e003fffffffefffffffffffffffffff]", "12336256", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("2", "[7e003fffffffefffffffffffffffffff]", "-1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("2", "[7e003fffffffefffffffffffffffffff]", "1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("2", "[7ef00000000000000000000000000001]", "0", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("2", "[7ef00000000000000000000000000001]", "12336256", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("2", "[7ef00000000000000000000000000001]", "-1", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("2", "[7ef00000000000000000000000000001]", "1", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("2", "[80000000000000000000000000000000]", "0", "[80000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[80000000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[80000000000000000000000000000000]", "-1", "[80000000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[80000000000000000000000000000000]", "1", "[80020000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[ad240000000000000000000000000000]", "0", "[ad240000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[ad240000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[ad240000000000000000000000000000]", "-1", "[ad220000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[ad240000000000000000000000000000]", "1", "[ad260000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[ad3e0000000000000000000000000000]", "0", "[ad3e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[ad3e0000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[ad3e0000000000000000000000000000]", "-1", "[ad3c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[ad3e0000000000000000000000000000]", "1", "[ad400000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[b0200000000000000000000000000000]", "0", "[b0200000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[b0200000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[b0200000000000000000000000000000]", "-1", "[b01e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[b0200000000000000000000000000000]", "1", "[b0220000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[b3200000000000000000000000000000]", "0", "[b3200000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[b3200000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[b3200000000000000000000000000000]", "-1", "[b31e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[b3200000000000000000000000000000]", "1", "[b3220000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[dffe0000000000000000000000000000]", "0", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[dffe0000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[dffe0000000000000000000000000000]", "-1", "[dffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("2", "[dffe0000000000000000000000000000]", "1", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[00000000000000000000000000000000]", "0", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[00000000000000000000000000000000]", "-1", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[00000000000000000000000000000000]", "1", "[00020000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[00000000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[00000000000000000000000000000001]", "0", "[00000000000000000000000000000001]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("3", "[00000000000000000000000000000001]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".1000000000")
+ self.bid128_scalbn("3", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000000]", "30", ulp: ".5000000000")
+ self.bid128_scalbn("3", "[0001ed09bead87c0378d8e64ffffffff]", "0", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[0001ed09bead87c0378d8e64ffffffff]", "-1", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[0001ed09bead87c0378d8e64ffffffff]", "1", "[00020000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[0001ed09bead87c0378d8e64ffffffff]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[003e0000000000000000000000000000]", "0", "[003e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[003e0000000000000000000000000000]", "-1", "[003c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[003e0000000000000000000000000000]", "1", "[00400000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[003e0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[00840000000000000000000000000000]", "0", "[00840000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[00840000000000000000000000000000]", "-1", "[00820000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[00840000000000000000000000000000]", "1", "[00860000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[00840000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2d240000000000000000000000000000]", "0", "[2d240000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2d240000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2d240000000000000000000000000000]", "-1", "[2d220000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2d240000000000000000000000000000]", "1", "[2d260000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2d260000000000000000000000000000]", "0", "[2d260000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2d260000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2d260000000000000000000000000000]", "-1", "[2d240000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2d260000000000000000000000000000]", "1", "[2d280000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2ffc0000000000000000000000000000]", "0", "[2ffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2ffc0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2ffc0000000000000000000000000000]", "-1", "[2ffa0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2ffc0000000000000000000000000000]", "1", "[2ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-1", "[2FFBED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "1", "[2FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "2147483647", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.00000")
+ self.bid128_scalbn("3", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "-2147483648", "[00000000000000000000000000000000]", "30", ulp: "0.0000000000")
+ self.bid128_scalbn("3", "[30200000000000000000000000000000]", "0", "[30200000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[30200000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[30200000000000000000000000000000]", "-1", "[301e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[30200000000000000000000000000000]", "1", "[30220000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[33200000000000000000000000000000]", "0", "[33200000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[33200000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[33200000000000000000000000000000]", "-1", "[331e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[33200000000000000000000000000000]", "1", "[33220000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[33220000000000000000000000000000]", "0", "[33220000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[33220000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[33220000000000000000000000000000]", "-1", "[33200000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[33220000000000000000000000000000]", "1", "[33240000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[5ffa0000000000000000000000000000]", "0", "[5ffa0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[5ffa0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[5ffa0000000000000000000000000000]", "-1", "[5ff80000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[5ffa0000000000000000000000000000]", "1", "[5ffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "00", ulp: "0.0000000000")
+ self.bid128_scalbn("3", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "28", ulp: "0.0000000000")
+ self.bid128_scalbn("3", "[6003b75d7734cd9e1234567890123456]", "0", "[000e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[6003b75d7734cd9e1234567890123456]", "-1", "[000c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[6003b75d7734cd9e1234567890123456]", "1", "[00100000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[6003b75d7734cd9e1234567890123456]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[69dbb75d7734cd9e1234567890123456]", "0", "[276e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[69dbb75d7734cd9e1234567890123456]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[69dbb75d7734cd9e1234567890123456]", "-1", "[276c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[69dbb75d7734cd9e1234567890123456]", "1", "[27700000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[78000000000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[78000000000000000000000000000000]", "12336256", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[78000000000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[78000000000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[78000001000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[78000001000000000000000000000000]", "12336256", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[78000001000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[78000001000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[7c000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[7c000000000000000000000000000000]", "12336256", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[7c000000000000000000000000000000]", "-1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[7c000000000000000000000000000000]", "1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[7c000001000000000000000000000000]", "0", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[7c000001000000000000000000000000]", "12336256", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[7c000001000000000000000000000000]", "-1", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[7c000001000000000000000000000000]", "1", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[7e000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("3", "[7e000000000000000000000000000000]", "12336256", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("3", "[7e000000000000000000000000000000]", "-1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("3", "[7e000000000000000000000000000000]", "1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("3", "[7e003fffffffefffffffffffffffffff]", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("3", "[7e003fffffffefffffffffffffffffff]", "12336256", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("3", "[7e003fffffffefffffffffffffffffff]", "-1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("3", "[7e003fffffffefffffffffffffffffff]", "1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("3", "[7ef00000000000000000000000000001]", "0", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("3", "[7ef00000000000000000000000000001]", "12336256", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("3", "[7ef00000000000000000000000000001]", "-1", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("3", "[7ef00000000000000000000000000001]", "1", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("3", "[80000000000000000000000000000000]", "0", "[80000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[80000000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[80000000000000000000000000000000]", "-1", "[80000000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[80000000000000000000000000000000]", "1", "[80020000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[ad240000000000000000000000000000]", "0", "[ad240000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[ad240000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[ad240000000000000000000000000000]", "-1", "[ad220000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[ad240000000000000000000000000000]", "1", "[ad260000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[ad3e0000000000000000000000000000]", "0", "[ad3e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[ad3e0000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[ad3e0000000000000000000000000000]", "-1", "[ad3c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[ad3e0000000000000000000000000000]", "1", "[ad400000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[b0200000000000000000000000000000]", "0", "[b0200000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[b0200000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[b0200000000000000000000000000000]", "-1", "[b01e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[b0200000000000000000000000000000]", "1", "[b0220000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[b3200000000000000000000000000000]", "0", "[b3200000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[b3200000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[b3200000000000000000000000000000]", "-1", "[b31e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[b3200000000000000000000000000000]", "1", "[b3220000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[dffe0000000000000000000000000000]", "0", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[dffe0000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[dffe0000000000000000000000000000]", "-1", "[dffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("3", "[dffe0000000000000000000000000000]", "1", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[00000000000000000000000000000000]", "0", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[00000000000000000000000000000000]", "-1", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[00000000000000000000000000000000]", "1", "[00020000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[00000000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[00000000000000000000000000000005]", "-1", "[00000000000000000000000000000001]", "30", ulp: "-.500000000")
+ self.bid128_scalbn("4", "[0001ed09bead87c0378d8e64ffffffff]", "0", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[0001ed09bead87c0378d8e64ffffffff]", "-1", "[00000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[0001ed09bead87c0378d8e64ffffffff]", "1", "[00020000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[0001ed09bead87c0378d8e64ffffffff]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[003e0000000000000000000000000000]", "0", "[003e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[003e0000000000000000000000000000]", "-1", "[003c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[003e0000000000000000000000000000]", "1", "[00400000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[003e0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[00840000000000000000000000000000]", "0", "[00840000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[00840000000000000000000000000000]", "-1", "[00820000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[00840000000000000000000000000000]", "1", "[00860000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[00840000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2d240000000000000000000000000000]", "0", "[2d240000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2d240000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2d240000000000000000000000000000]", "-1", "[2d220000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2d240000000000000000000000000000]", "1", "[2d260000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2d260000000000000000000000000000]", "0", "[2d260000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2d260000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2d260000000000000000000000000000]", "-1", "[2d240000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2d260000000000000000000000000000]", "1", "[2d280000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2ffc0000000000000000000000000000]", "0", "[2ffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2ffc0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2ffc0000000000000000000000000000]", "-1", "[2ffa0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[2ffc0000000000000000000000000000]", "1", "[2ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[30200000000000000000000000000000]", "0", "[30200000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[30200000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[30200000000000000000000000000000]", "-1", "[301e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[30200000000000000000000000000000]", "1", "[30220000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[33200000000000000000000000000000]", "0", "[33200000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[33200000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[33200000000000000000000000000000]", "-1", "[331e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[33200000000000000000000000000000]", "1", "[33220000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[33220000000000000000000000000000]", "0", "[33220000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[33220000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[33220000000000000000000000000000]", "-1", "[33200000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[33220000000000000000000000000000]", "1", "[33240000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[5ffa0000000000000000000000000000]", "0", "[5ffa0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[5ffa0000000000000000000000000000]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[5ffa0000000000000000000000000000]", "-1", "[5ff80000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[5ffa0000000000000000000000000000]", "1", "[5ffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[6003b75d7734cd9e1234567890123456]", "0", "[000e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[6003b75d7734cd9e1234567890123456]", "-1", "[000c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[6003b75d7734cd9e1234567890123456]", "1", "[00100000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[6003b75d7734cd9e1234567890123456]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[69dbb75d7734cd9e1234567890123456]", "0", "[276e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[69dbb75d7734cd9e1234567890123456]", "12336256", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[69dbb75d7734cd9e1234567890123456]", "-1", "[276c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[69dbb75d7734cd9e1234567890123456]", "1", "[27700000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[78000000000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[78000000000000000000000000000000]", "12336256", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[78000000000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[78000000000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[78000001000000000000000000000000]", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[78000001000000000000000000000000]", "12336256", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[78000001000000000000000000000000]", "-1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[78000001000000000000000000000000]", "1", "[78000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[7c000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[7c000000000000000000000000000000]", "12336256", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[7c000000000000000000000000000000]", "-1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[7c000000000000000000000000000000]", "1", "[7c000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[7c000001000000000000000000000000]", "0", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[7c000001000000000000000000000000]", "12336256", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[7c000001000000000000000000000000]", "-1", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[7c000001000000000000000000000000]", "1", "[7c000001000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[7e000000000000000000000000000000]", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("4", "[7e000000000000000000000000000000]", "12336256", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("4", "[7e000000000000000000000000000000]", "-1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("4", "[7e000000000000000000000000000000]", "1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("4", "[7e003fffffffefffffffffffffffffff]", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("4", "[7e003fffffffefffffffffffffffffff]", "12336256", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("4", "[7e003fffffffefffffffffffffffffff]", "-1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("4", "[7e003fffffffefffffffffffffffffff]", "1", "[7c000000000000000000000000000000]", "01")
+ self.bid128_scalbn("4", "[7ef00000000000000000000000000001]", "0", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("4", "[7ef00000000000000000000000000001]", "12336256", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("4", "[7ef00000000000000000000000000001]", "-1", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("4", "[7ef00000000000000000000000000001]", "1", "[7c000000000000000000000000000001]", "01")
+ self.bid128_scalbn("4", "[80000000000000000000000000000000]", "0", "[80000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[80000000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[80000000000000000000000000000000]", "-1", "[80000000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[80000000000000000000000000000000]", "1", "[80020000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[ad240000000000000000000000000000]", "0", "[ad240000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[ad240000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[ad240000000000000000000000000000]", "-1", "[ad220000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[ad240000000000000000000000000000]", "1", "[ad260000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[ad3e0000000000000000000000000000]", "0", "[ad3e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[ad3e0000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[ad3e0000000000000000000000000000]", "-1", "[ad3c0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[ad3e0000000000000000000000000000]", "1", "[ad400000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[b0200000000000000000000000000000]", "0", "[b0200000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[b0200000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[b0200000000000000000000000000000]", "-1", "[b01e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[b0200000000000000000000000000000]", "1", "[b0220000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[b3200000000000000000000000000000]", "0", "[b3200000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[b3200000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[b3200000000000000000000000000000]", "-1", "[b31e0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[b3200000000000000000000000000000]", "1", "[b3220000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[dffe0000000000000000000000000000]", "0", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[dffe0000000000000000000000000000]", "12336256", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[dffe0000000000000000000000000000]", "-1", "[dffc0000000000000000000000000000]", "00")
+ self.bid128_scalbn("4", "[dffe0000000000000000000000000000]", "1", "[dffe0000000000000000000000000000]", "00")
+ }
+
+ private func bid128_scalbn(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseInt32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128(sign: .plus, exponent: Int(arg1), significand: arg0, rounding: rounding, status: &status)
+ let resultIntel = self.toIntel_scaleB(arg0, Int(arg1), result: result, status: &status)
+ self.assertEqual(resultIntel, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelMinMaxNumberTests.swift b/Tests/DecimalTests/Intel - generated/IntelMinMaxNumberTests.swift
new file mode 100644
index 0000000..ecf7b06
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelMinMaxNumberTests.swift
@@ -0,0 +1,1313 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelMinMaxNumberTests: XCTestCase, IntelMixin {
+
+ func test_bid32_maxnum() {
+ self.bid32_maxnum("0", "[00000001]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "[00080001]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "[00000001]", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "[00080001]", "[3200000a]", "00")
+ self.bid32_maxnum("0", "-1.0", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "-1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "-1.0e-96", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "1.0e-96", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "[6098967f]", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "[60989680]", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "[7c000000]", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "[7c8f423f]", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "[7c8f4240]", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_maxnum("0", "1.0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_maxnum("0", "1.0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_maxnum("0", "1.0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_maxnum("0", "1.0", "[80000001]", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "-9.999999e-95", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "9.999999e-95", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "-9.999999e96", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_maxnum("0", "-1.0e-96", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0e-96", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "[fc100000]", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "[fc100100]", "[3200000a]", "00")
+ self.bid32_maxnum("0", "1.0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_maxnum("0", "[6098967f]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "[60989680]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "[7c000000]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "[7c8f423f]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_maxnum("0", "[7c8f423f]", "Infinity", "[78000000]", "00")
+ self.bid32_maxnum("0", "[7c8f4240]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "[7e100000]", "1.0", "[7c000000]", "01")
+ self.bid32_maxnum("0", "[7e100100]", "1.0", "[7c000100]", "01")
+ self.bid32_maxnum("0", "[7e8f423f]", "1.0", "[7c0f423f]", "01")
+ self.bid32_maxnum("0", "[7e8f4240]", "1.0", "[7c000000]", "01")
+ self.bid32_maxnum("0", "[80000001]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "-9.999999e-95", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "9.999999e-95", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "-9.999999e96", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "9.999999e96", "1.0", "[77f8967f]", "00")
+ self.bid32_maxnum("0", "[fc100000]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "[fc100100]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum("0", "[fe000000]", "1.0", "[fc000000]", "01")
+ self.bid32_maxnum("0", "Infinity", "NaN", "[78000000]", "00")
+ self.bid32_maxnum("0", "[20918020]", "[f8000000]", "[20918020]", "00")
+ self.bid32_maxnum("0", "[78000000]", "[08040000]", "[78000000]", "00")
+ self.bid32_maxnum("0", "[f8000000]", "[bc9e308c]", "[bc9e308c]", "00")
+ self.bid32_maxnum("0", "[1bbbce0c]", "[1a7882c9]", "[1bbbce0c]", "00")
+ self.bid32_maxnum("0", "[a4a26102]", "[a680097d]", "[a4a26102]", "00")
+ self.bid32_maxnum("0", "[df800000]", "[5e800000]", "[5e800000]", "00")
+ self.bid32_maxnum("0", "[00005000]", "[00800800]", "[00800800]", "00")
+ self.bid32_maxnum("0", "[10800001]", "[1000000a]", "[10800001]", "00")
+ self.bid32_maxnum("0", "[20918020]", "[f8000000]", "[20918020]", "00")
+ self.bid32_maxnum("0", "[78000000]", "[08040000]", "[78000000]", "00")
+ self.bid32_maxnum("0", "[f8000000]", "[bc9e308c]", "[bc9e308c]", "00")
+ self.bid32_maxnum("0", "[1bbbce0c]", "[1a7882c9]", "[1bbbce0c]", "00")
+ self.bid32_maxnum("0", "[a4a26102]", "[a680097d]", "[a4a26102]", "00")
+ self.bid32_maxnum("0", "[df800000]", "[5e800000]", "[5e800000]", "00")
+ self.bid32_maxnum("0", "[00005000]", "[00800800]", "[00800800]", "00")
+ self.bid32_maxnum("0", "[10800001]", "[1000000a]", "[10800001]", "00")
+ self.bid32_maxnum("0", "+Inf", "-Inf", "+Inf", "00")
+ self.bid32_maxnum("0", "1", "+Inf", "+Inf", "00")
+ self.bid32_maxnum("0", "0", "-1", "0", "00")
+ self.bid32_maxnum("0", "-1", "0", "0", "00")
+ }
+
+ private func bid32_maxnum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32.maximum(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+
+ func test_bid32_maxnum_mag() {
+ self.bid32_maxnum_mag("0", "[00000001]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "[00080001]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "[00000001]", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "[00080001]", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "-1.0", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "-1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "-1.0e-96", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "1.0e-96", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "[6098967f]", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "[60989680]", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "[7c000000]", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "[7c8f423f]", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "[7c8f4240]", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_maxnum_mag("0", "1.0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_maxnum_mag("0", "1.0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_maxnum_mag("0", "1.0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_maxnum_mag("0", "1.0", "[80000001]", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "-9.999999e-95", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "9.999999e-95", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "-9.999999e96", "[f7f8967f]", "00")
+ self.bid32_maxnum_mag("0", "-1.0e-96", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0e-96", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "[fc100000]", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "[fc100100]", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "1.0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_maxnum_mag("0", "[6098967f]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "[60989680]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "[7c000000]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "[7c8f423f]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_maxnum_mag("0", "[7c8f423f]", "Infinity", "[78000000]", "00")
+ self.bid32_maxnum_mag("0", "[7c8f4240]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "[7e100000]", "1.0", "[7c000000]", "01")
+ self.bid32_maxnum_mag("0", "[7e100100]", "1.0", "[7c000100]", "01")
+ self.bid32_maxnum_mag("0", "[7e8f423f]", "1.0", "[7c0f423f]", "01")
+ self.bid32_maxnum_mag("0", "[7e8f4240]", "1.0", "[7c000000]", "01")
+ self.bid32_maxnum_mag("0", "[80000001]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "-9.999999e-95", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "9.999999e-95", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "9.999999e96", "1.0", "[77f8967f]", "00")
+ self.bid32_maxnum_mag("0", "-9.999999e96", "1.0", "[f7f8967f]", "00")
+ self.bid32_maxnum_mag("0", "[fc100000]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "[fc100100]", "1.0", "[3200000a]", "00")
+ self.bid32_maxnum_mag("0", "[fe000000]", "1.0", "[fc000000]", "01")
+ self.bid32_maxnum_mag("0", "Infinity", "NaN", "[78000000]", "00")
+ self.bid32_maxnum_mag("0", "[78000000]", "[07028184]", "[78000000]", "00")
+ self.bid32_maxnum_mag("0", "[d2949d6a]", "[d0eb84e9]", "[d2949d6a]", "00")
+ self.bid32_maxnum_mag("0", "[f34326b1]", "[cff08d4f]", "[cff08d4f]", "00")
+ self.bid32_maxnum_mag("0", "[06f43bb3]", "[f8000000]", "[f8000000]", "00")
+ self.bid32_maxnum_mag("0", "[00800080]", "[00000500]", "[00000500]", "00")
+ self.bid32_maxnum_mag("0", "[78000000]", "[07028184]", "[78000000]", "00")
+ self.bid32_maxnum_mag("0", "[d2949d6a]", "[d0eb84e9]", "[d2949d6a]", "00")
+ self.bid32_maxnum_mag("0", "[f34326b1]", "[cff08d4f]", "[cff08d4f]", "00")
+ self.bid32_maxnum_mag("0", "[06f43bb3]", "[f8000000]", "[f8000000]", "00")
+ self.bid32_maxnum_mag("0", "-Inf", "+Inf", "+Inf", "00")
+ }
+
+ private func bid32_maxnum_mag(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32.maximumMagnitude(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+
+ func test_bid32_minnum() {
+ self.bid32_minnum("0", "[00000001]", "1.0", "[00000001]", "00")
+ self.bid32_minnum("0", "[00080001]", "1.0", "[00080001]", "00")
+ self.bid32_minnum("0", "1.0", "[00000001]", "[00000001]", "00")
+ self.bid32_minnum("0", "1.0", "[00080001]", "[00080001]", "00")
+ self.bid32_minnum("0", "1.0", "1.0", "[3200000a]", "00")
+ self.bid32_minnum("0", "-1.0", "1.0", "[b200000a]", "00")
+ self.bid32_minnum("0", "1.0", "-1.0", "[b200000a]", "00")
+ self.bid32_minnum("0", "1.0", "1.0e-96", "[0200000a]", "00")
+ self.bid32_minnum("0", "1.0", "-1.0e-96", "[8200000a]", "00")
+ self.bid32_minnum("0", "1.0", "[6098967f]", "[6098967f]", "00")
+ self.bid32_minnum("0", "1.0", "[60989680]", "[02000000]", "00")
+ self.bid32_minnum("0", "1.0", "[7c000000]", "[3200000a]", "00")
+ self.bid32_minnum("0", "1.0", "[7c8f423f]", "[3200000a]", "00")
+ self.bid32_minnum("0", "1.0", "[7c8f4240]", "[3200000a]", "00")
+ self.bid32_minnum("0", "1.0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_minnum("0", "1.0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_minnum("0", "1.0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_minnum("0", "1.0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_minnum("0", "1.0", "[80000001]", "[80000001]", "00")
+ self.bid32_minnum("0", "1.0", "9.999999e-95", "[6018967f]", "00")
+ self.bid32_minnum("0", "1.0", "-9.999999e-95", "[e018967f]", "00")
+ self.bid32_minnum("0", "1.0", "9.999999e96", "[3200000a]", "00")
+ self.bid32_minnum("0", "1.0", "-9.999999e96", "[f7f8967f]", "00")
+ self.bid32_minnum("0", "1.0e-96", "1.0", "[0200000a]", "00")
+ self.bid32_minnum("0", "-1.0e-96", "1.0", "[8200000a]", "00")
+ self.bid32_minnum("0", "1.0", "[fc100000]", "[3200000a]", "00")
+ self.bid32_minnum("0", "1.0", "[fc100100]", "[3200000a]", "00")
+ self.bid32_minnum("0", "1.0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_minnum("0", "[6098967f]", "1.0", "[6098967f]", "00")
+ self.bid32_minnum("0", "[60989680]", "1.0", "[02000000]", "00")
+ self.bid32_minnum("0", "[7c000000]", "1.0", "[3200000a]", "00")
+ self.bid32_minnum("0", "[7c8f423f]", "1.0", "[3200000a]", "00")
+ self.bid32_minnum("0", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_minnum("0", "[7c8f423f]", "Infinity", "[78000000]", "00")
+ self.bid32_minnum("0", "[7c8f4240]", "1.0", "[3200000a]", "00")
+ self.bid32_minnum("0", "[7e100000]", "1.0", "[7c000000]", "01")
+ self.bid32_minnum("0", "[7e100100]", "1.0", "[7c000100]", "01")
+ self.bid32_minnum("0", "[7e8f423f]", "1.0", "[7c0f423f]", "01")
+ self.bid32_minnum("0", "[7e8f4240]", "1.0", "[7c000000]", "01")
+ self.bid32_minnum("0", "[80000001]", "1.0", "[80000001]", "00")
+ self.bid32_minnum("0", "9.999999e-95", "1.0", "[6018967f]", "00")
+ self.bid32_minnum("0", "-9.999999e-95", "1.0", "[e018967f]", "00")
+ self.bid32_minnum("0", "9.999999e96", "1.0", "[3200000a]", "00")
+ self.bid32_minnum("0", "-9.999999e96", "1.0", "[f7f8967f]", "00")
+ self.bid32_minnum("0", "[fc100000]", "1.0", "[3200000a]", "00")
+ self.bid32_minnum("0", "[fc100100]", "1.0", "[3200000a]", "00")
+ self.bid32_minnum("0", "[fe000000]", "1.0", "[fc000000]", "01")
+ self.bid32_minnum("0", "Infinity", "NaN", "[78000000]", "00")
+ self.bid32_minnum("0", "[3f800000]", "[3f000000]", "[3f000000]", "00")
+ self.bid32_minnum("0", "[bfe7ffff]", "[f8000000]", "[f8000000]", "00")
+ self.bid32_minnum("0", "[027931e1]", "[04109660]", "[027931e1]", "00")
+ self.bid32_minnum("0", "[78000000]", "[403bbfa6]", "[403bbfa6]", "00")
+ self.bid32_minnum("0", "[f8000000]", "[ebf05dae]", "[f8000000]", "00")
+ self.bid32_minnum("0", "[bbcdf375]", "[bafdf93f]", "[bbcdf375]", "00")
+ self.bid32_minnum("0", "[00800002]", "[00000014]", "[00000014]", "00")
+ self.bid32_minnum("0", "[00280000]", "[00840000]", "[00840000]", "00")
+ self.bid32_minnum("0", "[3f800000]", "[3f000000]", "[3f000000]", "00")
+ self.bid32_minnum("0", "[bfe7ffff]", "[f8000000]", "[f8000000]", "00")
+ self.bid32_minnum("0", "[027931e1]", "[04109660]", "[027931e1]", "00")
+ self.bid32_minnum("0", "[78000000]", "[403bbfa6]", "[403bbfa6]", "00")
+ self.bid32_minnum("0", "[f8000000]", "[ebf05dae]", "[f8000000]", "00")
+ self.bid32_minnum("0", "[bbcdf375]", "[bafdf93f]", "[bbcdf375]", "00")
+ self.bid32_minnum("0", "0E+89", "[7e0f423f]", "[7c0f423f]", "01")
+ self.bid32_minnum("0", "1", "+Inf", "1", "00")
+ self.bid32_minnum("0", "0", "-1", "-1", "00")
+ self.bid32_minnum("0", "-1", "0", "-1", "00")
+ }
+
+ private func bid32_minnum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32.minimum(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+
+ func test_bid32_minnum_mag() {
+ self.bid32_minnum_mag("0", "[00000001]", "1.0", "[00000001]", "00")
+ self.bid32_minnum_mag("0", "[00080001]", "1.0", "[00080001]", "00")
+ self.bid32_minnum_mag("0", "1.0", "[00000001]", "[00000001]", "00")
+ self.bid32_minnum_mag("0", "1.0", "[00080001]", "[00080001]", "00")
+ self.bid32_minnum_mag("0", "1.0", "1.0", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "-1.0", "1.0", "[b200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0", "-1.0", "[b200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0", "1.0e-96", "[0200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0", "-1.0e-96", "[8200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0", "[6098967f]", "[6098967f]", "00")
+ self.bid32_minnum_mag("0", "1.0", "[60989680]", "[02000000]", "00")
+ self.bid32_minnum_mag("0", "1.0", "[7c000000]", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0", "[7c8f423f]", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0", "[7c8f4240]", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_minnum_mag("0", "1.0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_minnum_mag("0", "1.0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_minnum_mag("0", "1.0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_minnum_mag("0", "1.0", "[80000001]", "[80000001]", "00")
+ self.bid32_minnum_mag("0", "1.0", "9.999999e-95", "[6018967f]", "00")
+ self.bid32_minnum_mag("0", "1.0", "-9.999999e-95", "[e018967f]", "00")
+ self.bid32_minnum_mag("0", "1.0", "-9.999999e96", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0", "9.999999e96", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0e-96", "1.0", "[0200000a]", "00")
+ self.bid32_minnum_mag("0", "-1.0e-96", "1.0", "[8200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0", "[fc100000]", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0", "[fc100100]", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "1.0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_minnum_mag("0", "[6098967f]", "1.0", "[6098967f]", "00")
+ self.bid32_minnum_mag("0", "[60989680]", "1.0", "[02000000]", "00")
+ self.bid32_minnum_mag("0", "[7c000000]", "1.0", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "[7c8f423f]", "1.0", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_minnum_mag("0", "[7c8f423f]", "Infinity", "[78000000]", "00")
+ self.bid32_minnum_mag("0", "[7c8f4240]", "1.0", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "[7e100000]", "1.0", "[7c000000]", "01")
+ self.bid32_minnum_mag("0", "[7e100100]", "1.0", "[7c000100]", "01")
+ self.bid32_minnum_mag("0", "[7e8f423f]", "1.0", "[7c0f423f]", "01")
+ self.bid32_minnum_mag("0", "[7e8f4240]", "1.0", "[7c000000]", "01")
+ self.bid32_minnum_mag("0", "[80000001]", "1.0", "[80000001]", "00")
+ self.bid32_minnum_mag("0", "9.999999e-95", "1.0", "[6018967f]", "00")
+ self.bid32_minnum_mag("0", "-9.999999e-95", "1.0", "[e018967f]", "00")
+ self.bid32_minnum_mag("0", "-9.999999e96", "1.0", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "9.999999e96", "1.0", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "[fc100000]", "1.0", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "[fc100100]", "1.0", "[3200000a]", "00")
+ self.bid32_minnum_mag("0", "[fe000000]", "1.0", "[fc000000]", "01")
+ self.bid32_minnum_mag("0", "Infinity", "NaN", "[78000000]", "00")
+ self.bid32_minnum_mag("0", "[af966d03]", "[aecc6e7a]", "[aecc6e7a]", "00")
+ self.bid32_minnum_mag("0", "[4a9615c3]", "[78000000]", "[4a9615c3]", "00")
+ self.bid32_minnum_mag("0", "[f8000000]", "[00040000]", "[00040000]", "00")
+ self.bid32_minnum_mag("0", "[11400600]", "[921615b0]", "[11400600]", "00")
+ self.bid32_minnum_mag("0", "[80800200]", "[00001400]", "[80800200]", "00")
+ self.bid32_minnum_mag("0", "[af966d03]", "[aecc6e7a]", "[aecc6e7a]", "00")
+ self.bid32_minnum_mag("0", "[4a9615c3]", "[78000000]", "[4a9615c3]", "00")
+ self.bid32_minnum_mag("0", "[f8000000]", "[00040000]", "[00040000]", "00")
+ self.bid32_minnum_mag("0", "[11400600]", "[921615b0]", "[11400600]", "00")
+ self.bid32_minnum_mag("0", "[80800200]", "[00001400]", "[80800200]", "00")
+ self.bid32_minnum_mag("0", "-Inf", "+Inf", "-Inf", "00")
+ }
+
+ private func bid32_minnum_mag(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal32.minimumMagnitude(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+
+ func test_bid64_maxnum() {
+ self.bid64_maxnum("0", "[0000000000000000]", "[0000000000000000]", "[0000000000000000]", "00")
+ self.bid64_maxnum("0", "[0000020000800000]", "[f99058c093cca73f]", "[0000020000800000]", "00")
+ self.bid64_maxnum("0", "[0020000000040000]", "[0000800000024001]", "[0000800000024001]", "00")
+ self.bid64_maxnum("0", "0", "-0", "[31c0000000000000]", "00")
+ self.bid64_maxnum("0", "[0080000200902000]", "[fffeffebcbffbffa]", "[fc02ffebcbffbffa]", "01")
+ self.bid64_maxnum("0", "[0b533d3ba956d943]", "[cdc0000000000000]", "[0b533d3ba956d943]", "00")
+ self.bid64_maxnum("0", "0", "QNaN", "[31c0000000000000]", "00")
+ self.bid64_maxnum("0", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_maxnum("0", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_maxnum("0", "1.0", "1", "[31c0000000000001]", "00")
+ self.bid64_maxnum("0", "1", "1.0", "[31a000000000000a]", "00")
+ self.bid64_maxnum("0", "[1440000000000000]", "[0fddb3e37a109c2b]", "[0fddb3e37a109c2b]", "00")
+ self.bid64_maxnum("0", "[26e4a7b427b8e564]", "[e483411f0d084cb3]", "[26e4a7b427b8e564]", "00")
+ self.bid64_maxnum("0", "[2980000000000000]", "[55c426ce97ece09b]", "[55c426ce97ece09b]", "00")
+ self.bid64_maxnum("0", "[2bfe35c7f0620dd9]", "[3557694ef3566909]", "[3557694ef3566909]", "00")
+ self.bid64_maxnum("0", "+3.3792759E0", "QNaN", "[30e000000203a2f7]", "00")
+ self.bid64_maxnum("0", "[3b4b06f7fe3c2971]", "[6fc2e17c366869ca]", "[6fc2e17c366869ca]", "00")
+ self.bid64_maxnum("0", "[4f564ec94dc32551]", "[c3e0000000000000]", "[4f564ec94dc32551]", "00")
+ self.bid64_maxnum("0", "[7210413870ec6c6a]", "[3660c27411705811]", "[7210413870ec6c6a]", "00")
+ self.bid64_maxnum("0", "[7418274fca169ec1]", "[39855702dad705e9]", "[7418274fca169ec1]", "00")
+ self.bid64_maxnum("0", "[7af88b3587c40cd0]", "[0210488000f21c48]", "[7800000000000000]", "00")
+ self.bid64_maxnum("0", "[8068480040403300]", "[6dbc6c4d89046655]", "[36e0000000000000]", "00")
+ self.bid64_maxnum("0", "[84960f8899a2a954]", "[fffff8bebfaf7fff]", "[fc00000000000000]", "01")
+ self.bid64_maxnum("0", "[8b311194bc4dfa48]", "[93b7bda5d2f877a7]", "[8b311194bc4dfa48]", "00")
+ self.bid64_maxnum("0", "[958731d297d11a7a]", "[730346031c275709]", "[730346031c275709]", "00")
+ self.bid64_maxnum("0", "[990530201c404020]", "[8bffecf7f67f9f5f]", "[8bffecf7f67f9f5f]", "00")
+ self.bid64_maxnum("0", "[b380000000000000]", "[28b11c100bbe6602]", "[28b11c100bbe6602]", "00")
+ self.bid64_maxnum("0", "[c401410824008420]", "[0000000000000802]", "[0000000000000802]", "00")
+ self.bid64_maxnum("0", "[cf7bfd3ef3ddff1f]", "[cfbbfcd6e3eff7bd]", "[cf7bfd3ef3ddff1f]", "00")
+ self.bid64_maxnum("0", "[d7ffffffffffeefd]", "[a0a81fb301c809cb]", "[a0a81fb301c809cb]", "00")
+ self.bid64_maxnum("0", "[e5b02c7e30fced8d]", "[33067bf3f66f79ae]", "[33067bf3f66f79ae]", "00")
+ self.bid64_maxnum("0", "[e87feffe1ebfffe9]", "[2dcd33d4dd29ef5b]", "[2dcd33d4dd29ef5b]", "00")
+ self.bid64_maxnum("0", "[eb1dba35683dc7b3]", "[f7ff7ffddfffffdf]", "[ac60000000000000]", "00")
+ self.bid64_maxnum("0", "[fbb1c1e9ff332ed2]", "[0000000200000808]", "[0000000200000808]", "00")
+ self.bid64_maxnum("0", "[fdbbfbdabffff1af]", "[7f5fffd5eeefffff]", "[fc00000000000000]", "01")
+ self.bid64_maxnum("0", "[fff96edafd3c69ed]", "[6fdf593749e5dbc6]", "[fc016edafd3c69ed]", "01")
+ self.bid64_maxnum("0", "[ffffffffffffffdd]", "[dfbff7ffffffbeee]", "[fc00000000000000]", "01")
+ self.bid64_maxnum("0", "Infinity", "-0.0E0", "[7800000000000000]", "00")
+ self.bid64_maxnum("0", "Infinity", "-Infinity", "[7800000000000000]", "00")
+ self.bid64_maxnum("0", "Infinity", "QNaN", "[7800000000000000]", "00")
+ self.bid64_maxnum("0", "QNaN", "Infinity", "[7800000000000000]", "00")
+ self.bid64_maxnum("0", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_maxnum("0", "SNaN", "QNaN", "[7c00000000000000]", "01")
+ self.bid64_maxnum("0", "0E+368", "[7e00000000000001]", "[7c00000000000001]", "01")
+ self.bid64_maxnum("0", "0", "+Inf", "+Inf", "00")
+ self.bid64_maxnum("0", "0", "-1", "0", "00")
+ }
+
+ private func bid64_maxnum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64.maximum(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+
+ func test_bid64_maxnum_mag() {
+ self.bid64_maxnum_mag("0", "[0000000000000000]", "[0000000000000000]", "[0000000000000000]", "00")
+ self.bid64_maxnum_mag("0", "[000100009615c242]", "[0080000800000100]", "[0080000800000100]", "00")
+ self.bid64_maxnum_mag("0", "[0020110228000000]", "[0964590078006811]", "[0964590078006811]", "00")
+ self.bid64_maxnum_mag("0", "-0", "0", "[31c0000000000000]", "00")
+ self.bid64_maxnum_mag("0", "[0c0c000000000000]", "[f57a943bb0592f02]", "[f57a943bb0592f02]", "00")
+ self.bid64_maxnum_mag("0", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_maxnum_mag("0", "1", "1.0", "[31a000000000000a]", "00")
+ self.bid64_maxnum_mag("0", "1E+368", "-1E+368", "[5fc0000000000001]", "00")
+ self.bid64_maxnum_mag("0", "[1ee9a6663dcde953]", "[4cae1f9dcd4a1f1a]", "[4cae1f9dcd4a1f1a]", "00")
+ self.bid64_maxnum_mag("0", "[223882ca03fd113c]", "[5d6353623934b3dd]", "[5d6353623934b3dd]", "00")
+ self.bid64_maxnum_mag("0", "[3490608500810a16]", "[81dc9d7a7b0ff956]", "[3490608500810a16]", "00")
+ self.bid64_maxnum_mag("0", "[35eecb63164c6e9d]", "[3c126f76001d3424]", "[3c126f76001d3424]", "00")
+ self.bid64_maxnum_mag("0", "[48482649305d020b]", "[e773708a21b418d1]", "[48482649305d020b]", "00")
+ self.bid64_maxnum_mag("0", "[52aec83531ef30d2]", "[cf7fbb95875b776c]", "[52aec83531ef30d2]", "00")
+ self.bid64_maxnum_mag("0", "[6509b96fe0fd306c]", "[14b0f5065f3d92b0]", "[14b0f5065f3d92b0]", "00")
+ self.bid64_maxnum_mag("0", "[6948700a0300c232]", "[e68f647eebfbfe5f]", "[6948700a0300c232]", "00")
+ self.bid64_maxnum_mag("0", "[73b2c3e4af2b0536]", "[592f6a05d0dc851c]", "[592f6a05d0dc851c]", "00")
+ self.bid64_maxnum_mag("0", "[78506d8cdb179eb2]", "[42998267a357340c]", "[7800000000000000]", "00")
+ self.bid64_maxnum_mag("0", "[92f923aff9f52270]", "[188ca3ee50aeeb53]", "[188ca3ee50aeeb53]", "00")
+ self.bid64_maxnum_mag("0", "[aed022f6c1dfb22a]", "[2e5fc108e3815354]", "[aed022f6c1dfb22a]", "00")
+ self.bid64_maxnum_mag("0", "[c969460a93e48631]", "[947dc53e73d68448]", "[c969460a93e48631]", "00")
+ self.bid64_maxnum_mag("0", "[cdd9f5d1eaa026a3]", "[0040512c04403e12]", "[cdd9f5d1eaa026a3]", "00")
+ self.bid64_maxnum_mag("0", "[cffe41856c902478]", "[fffffdfffb8f6fff]", "[fc00000000000000]", "01")
+ self.bid64_maxnum_mag("0", "[d060000000000000]", "[bc40000000000000]", "[bc40000000000000]", "00")
+ self.bid64_maxnum_mag("0", "[d944925925d56e79]", "[e1f3c8cc81cd2429]", "[d944925925d56e79]", "00")
+ self.bid64_maxnum_mag("0", "[e1a02055b0887299]", "[f9df7ff7edf7effe]", "[f800000000000000]", "00")
+ self.bid64_maxnum_mag("0", "[e8ca116aaf44f1d6]", "[d1075f3ca03743af]", "[d1075f3ca03743af]", "00")
+ self.bid64_maxnum_mag("0", "[eafe7fdfbf7ff7bf]", "[289a27ba5f0a24d6]", "[289a27ba5f0a24d6]", "00")
+ self.bid64_maxnum_mag("0", "[fdcff7f7ffff37fd]", "[369ed9554f4bb23b]", "[369ed9554f4bb23b]", "00")
+ self.bid64_maxnum_mag("0", "[fdfdedffffff7fde]", "[ffbe79edeff968fa]", "[fc01edffffff7fde]", "01")
+ self.bid64_maxnum_mag("0", "Infinity", "-0", "[7800000000000000]", "00")
+ self.bid64_maxnum_mag("0", "-Infinity", "-0", "[f800000000000000]", "00")
+ self.bid64_maxnum_mag("0", "-Infinity", "0", "[f800000000000000]", "00")
+ self.bid64_maxnum_mag("0", "-Infinity", "QNaN", "[f800000000000000]", "00")
+ self.bid64_maxnum_mag("0", "-Infinity", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_maxnum_mag("0", "QNaN", "0", "[31c0000000000000]", "00")
+ self.bid64_maxnum_mag("0", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_maxnum_mag("0", "SNaN", "QNaN", "[7c00000000000000]", "01")
+ self.bid64_maxnum_mag("0", "-Inf", "+Inf", "+Inf", "00")
+ }
+
+ private func bid64_maxnum_mag(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64.maximumMagnitude(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+
+ func test_bid64_minnum() {
+ self.bid64_minnum("0", "[0000000000000000]", "[0000000000000000]", "[0000000000000000]", "00")
+ self.bid64_minnum("0", "[0010800b0003b004]", "[0020000240002020]", "[0020000240002020]", "00")
+ self.bid64_minnum("0", "-0", "0", "[31c0000000000000]", "00")
+ self.bid64_minnum("0", "0", "-0", "[b1c0000000000000]", "00")
+ self.bid64_minnum("0", "[02e2ced7e23fbf5f]", "[4000000040006080]", "[02e2ced7e23fbf5f]", "00")
+ self.bid64_minnum("0", "[08284035080cda26]", "[ffbffaabff77fffb]", "[fc00000000000000]", "01")
+ self.bid64_minnum("0", "0E+368", "[7e00000000000001]", "[7c00000000000001]", "01")
+ self.bid64_minnum("0", "[0fdd000000000000]", "[d13d5855034cfaad]", "[d13d5855034cfaad]", "00")
+ self.bid64_minnum("0", "0", "-Infinity", "[f800000000000000]", "00")
+ self.bid64_minnum("0", "0", "QNaN", "[31c0000000000000]", "00")
+ self.bid64_minnum("0", "1.0", "1", "[31c0000000000001]", "00")
+ self.bid64_minnum("0", "1", "1.0", "[31a000000000000a]", "00")
+ self.bid64_minnum("0", "[2220000000000000]", "[5edd32eedeadc280]", "[2220000000000000]", "00")
+ self.bid64_minnum("0", "[2330aaa3da6f4ec7]", "[6dc18833341366fb]", "[2330aaa3da6f4ec7]", "00")
+ self.bid64_minnum("0", "[2a4b0cfcc5dad0ad]", "[293ee11762a0329d]", "[293ee11762a0329d]", "00")
+ self.bid64_minnum("0", "[2d0af79737c00fc1]", "[792b5d0217888c2d]", "[2d0af79737c00fc1]", "00")
+ self.bid64_minnum("0", "[3509fd6262a3a3af]", "[9100000000000000]", "[9100000000000000]", "00")
+ self.bid64_minnum("0", "[3bd5eff14a5ccf14]", "[9c3edd435d5309f8]", "[9c3edd435d5309f8]", "00")
+ self.bid64_minnum("0", "[487038270329c74a]", "[d22caa52c7dd1d59]", "[d22caa52c7dd1d59]", "00")
+ self.bid64_minnum("0", "[5899620238809653]", "[9c854fe13bf0c757]", "[9c854fe13bf0c757]", "00")
+ self.bid64_minnum("0", "[5a0ce61bd4f0ca0a]", "[c479f7ab8d183803]", "[c479f7ab8d183803]", "00")
+ self.bid64_minnum("0", "[725b098e343fb10e]", "[565b14c74a8dc901]", "[725b098e343fb10e]", "00")
+ self.bid64_minnum("0", "[7808681108641902]", "[8244882018000000]", "[8244882018000000]", "00")
+ self.bid64_minnum("0", "[9bae6e9430b27930]", "[92f2cb7c58da1de9]", "[9bae6e9430b27930]", "00")
+ self.bid64_minnum("0", "[b730a0795f1d3eea]", "[6b5f979bfbabdd6d]", "[b730a0795f1d3eea]", "00")
+ self.bid64_minnum("0", "[b777c225b8bf4840]", "[fffeffff7bfafd7f]", "[fc02ffff7bfafd7f]", "01")
+ self.bid64_minnum("0", "[bd6ffbfdfffffe3f]", "[d3d54c44305622fb]", "[d3d54c44305622fb]", "00")
+ self.bid64_minnum("0", "[dabf738aac2ee784]", "[86a0000000000000]", "[dabf738aac2ee784]", "00")
+ self.bid64_minnum("0", "[eab2b7ebfdf9fdf7]", "[e3e26637f7758ba2]", "[eab2b7ebfdf9fdf7]", "00")
+ self.bid64_minnum("0", "[f172bc74c872d709]", "[03175329779bec5b]", "[f172bc74c872d709]", "00")
+ self.bid64_minnum("0", "[f3ed3f6c68d8bbe8]", "[effffafdfeefffdf]", "[cfa0000000000000]", "00")
+ self.bid64_minnum("0", "[f5ff6bf3f5eebfff]", "[83ac8f15de936c6f]", "[83ac8f15de936c6f]", "00")
+ self.bid64_minnum("0", "[fbffafcffef6fe9f]", "[a68020305462c446]", "[f800000000000000]", "00")
+ self.bid64_minnum("0", "[fd37ffffff5ebf44]", "[0000804000000100]", "[0000804000000100]", "00")
+ self.bid64_minnum("0", "[fdaf7fe7b37ff7ff]", "[ffaf5f47f76dd261]", "[fc037fe7b37ff7ff]", "01")
+ self.bid64_minnum("0", "[fdfdffffffffffff]", "[1e0000b882221c41]", "[1e0000b882221c41]", "00")
+ self.bid64_minnum("0", "[ffffff6dfffff7ff]", "[c0efa908efc00dd2]", "[fc00000000000000]", "01")
+ self.bid64_minnum("0", "Infinity", "Infinity", "[7800000000000000]", "00")
+ self.bid64_minnum("0", "-Infinity", "Infinity", "[f800000000000000]", "00")
+ self.bid64_minnum("0", "QNaN", "0", "[31c0000000000000]", "00")
+ self.bid64_minnum("0", "QNaN", "-0", "[b1c0000000000000]", "00")
+ self.bid64_minnum("0", "QNaN", "QNaN", "[7c00000000000000]", "00")
+ }
+
+ private func bid64_minnum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64.minimum(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+
+ func test_bid64_minnum_mag() {
+ self.bid64_minnum_mag("0", "[0000000000000000]", "[0000000000000000]", "[0000000000000000]", "00")
+ self.bid64_minnum_mag("0", "[0000000000000400]", "[8000000000000400]", "[8000000000000400]", "00")
+ self.bid64_minnum_mag("0", "[002428458000c920]", "[80a20020c2000200]", "[002428458000c920]", "00")
+ self.bid64_minnum_mag("0", "-0", "-0", "[b1c0000000000000]", "00")
+ self.bid64_minnum_mag("0", "-0", "0", "[b1c0000000000000]", "00")
+ self.bid64_minnum_mag("0", "[04b4480902012080]", "[fbf7f7cff5ffdfff]", "[04b4480902012080]", "00")
+ self.bid64_minnum_mag("0", "[080cda2608684035]", "[ff77fffbfddffab9]", "[fc00000000000000]", "01")
+ self.bid64_minnum_mag("0", "[0a4e000000000000]", "[87737f64386c30dc]", "[87737f64386c30dc]", "00")
+ self.bid64_minnum_mag("0", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_minnum_mag("0", "1", "1.0", "[31c0000000000001]", "00")
+ self.bid64_minnum_mag("0", "[1539cf097274e8b2]", "[13ba6e820829bf4e]", "[13ba6e820829bf4e]", "00")
+ self.bid64_minnum_mag("0", "[1964590afa4ce873]", "[a059d26b9ae84aa2]", "[1964590afa4ce873]", "00")
+ self.bid64_minnum_mag("0", "[2052c02ebf103c8d]", "[b5556bf75aaecd51]", "[2052c02ebf103c8d]", "00")
+ self.bid64_minnum_mag("0", "[2208110000101102]", "[0a3bc6ad95a271bf]", "[0a3bc6ad95a271bf]", "00")
+ self.bid64_minnum_mag("0", "[2a546b06a7405933]", "[7008a85ccab061b5]", "[2a546b06a7405933]", "00")
+ self.bid64_minnum_mag("0", "[2c259d582f763563]", "[0da6000000000000]", "[0da6000000000000]", "00")
+ self.bid64_minnum_mag("0", "[6911c64334f05a22]", "[edfdbffffffcf3e5]", "[b7e0000000000000]", "00")
+ self.bid64_minnum_mag("0", "[729ea634923a2ad6]", "[b1a64fa74f28981f]", "[4a60000000000000]", "00")
+ self.bid64_minnum_mag("0", "[7a294d1af9573eda]", "[0004080124000000]", "[0004080124000000]", "00")
+ self.bid64_minnum_mag("0", "[8104102210241401]", "[83202b8579e35d70]", "[8104102210241401]", "00")
+ self.bid64_minnum_mag("0", "[8cdc4f1e76bbe9b2]", "[296f9ecbbf5bfcae]", "[8cdc4f1e76bbe9b2]", "00")
+ self.bid64_minnum_mag("0", "[970df44594bd8127]", "[89a48da4f30a2912]", "[89a48da4f30a2912]", "00")
+ self.bid64_minnum_mag("0", "[9f5d40ba8527378d]", "[0c3e000000000000]", "[0c3e000000000000]", "00")
+ self.bid64_minnum_mag("0", "[b3e11a50f028223c]", "[3660000000000000]", "[3660000000000000]", "00")
+ self.bid64_minnum_mag("0", "[b980000000000000]", "[9000d9c727cc4bcc]", "[b980000000000000]", "00")
+ self.bid64_minnum_mag("0", "[bdd56c3a57e3e7e7]", "[834eb1c09dad5912]", "[834eb1c09dad5912]", "00")
+ self.bid64_minnum_mag("0", "[bebeab1242fe8000]", "[b255253f35124e6c]", "[b255253f35124e6c]", "00")
+ self.bid64_minnum_mag("0", "[dcb37b49acb9ead8]", "[02590b0f4d8995c0]", "[02590b0f4d8995c0]", "00")
+ self.bid64_minnum_mag("0", "[fd4b3c75426f39c0]", "[ffffffffeeffffbf]", "[fc033c75426f39c0]", "01")
+ self.bid64_minnum_mag("0", "[fdfffffffafbffff]", "[2006022e14094814]", "[2006022e14094814]", "00")
+ self.bid64_minnum_mag("0", "Infinity", "0", "[31c0000000000000]", "00")
+ self.bid64_minnum_mag("0", "-Infinity", "Infinity", "[f800000000000000]", "00")
+ self.bid64_minnum_mag("0", "Infinity", "-Infinity", "[f800000000000000]", "00")
+ self.bid64_minnum_mag("0", "-Infinity", "QNaN", "[f800000000000000]", "00")
+ self.bid64_minnum_mag("0", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_minnum_mag("0", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_minnum_mag(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal64.minimumMagnitude(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+
+ func test_bid128_maxnum() {
+ self.bid128_maxnum("0", "[0000000000000000,ffffffffffffffff]", "[0000000000000000,ffffffffffffffff]", "[0000000000000000ffffffffffffffff]", "00")
+ self.bid128_maxnum("0", "[0000000000002082,9420040221e302a2]", "[0000040000002000,e67ffb6edeecc9f9]", "[0000040000002000e67ffb6edeecc9f9]", "00")
+ self.bid128_maxnum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "0", "-0", "[30400000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[0040020300400080,ab5be031c4007c10]", "[00163e6d0cc03c41,fffffff7fffafff1]", "[0040020300400080ab5be031c4007c10]", "00")
+ self.bid128_maxnum("0", "-0", "-0", "[b0400000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[027f6444824c75d3,de55c70f25ad47ab]", "[0000040030001802,bb3ade90d6a702af]", "[027f6444824c75d3de55c70f25ad47ab]", "00")
+ self.bid128_maxnum("0", "0", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[1b6ede4dc1b5e81a,733ddf9a6de69324]", "[257d26a6df028622,c403c0276e44511d]", "[257d26a6df028622c403c0276e44511d]", "00")
+ self.bid128_maxnum("0", "[215019291413a80c,ee1a640242280804]", "[2138c03624008097,445a9e7a579c27c0]", "[215019291413a80cee1a640242280804]", "00")
+ self.bid128_maxnum("0", "[25f6000000000000,0000000000000000]", "[8018000000000000,0000000000000000]", "[25f60000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[3b2a1ed8bc22e8ae,38a99edede5d22ee]", "[ffd71d5dfd76b593,519e76769ef19ecb]", "[fc001d5dfd76b593519e76769ef19ecb]", "01")
+ self.bid128_maxnum("0", "[3ff99c3bcad0177f,ed783d3dc068938f]", "[4000400204000100,a4c0281a10100c8a]", "[4000400204000100a4c0281a10100c8a]", "00")
+ self.bid128_maxnum("0", "[405a000000000000,0000000000000000]", "[ae537b161246a75e,8f1ba5a2fd65fce8]", "[405a0000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[53e82c96831cd96a,8108f41a069e4e4f]", "[542000008001a000,1124318113641030]", "[542000008001a0001124318113641030]", "00")
+ self.bid128_maxnum("0", "[5f0912d3d8af5cf7,431cde8f1e967a76]", "[1b9826915241fe6d,b7fb5f5b7b25d766]", "[5f0912d3d8af5cf7431cde8f1e967a76]", "00")
+ self.bid128_maxnum("0", "[7800000000000000,0000000000000000]", "[a1a2bcedb041a13b,2aece9ce6b8f7ceb]", "[78000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[82406741d5d9af36,391d155de3af7fee]", "[c7146777abc6a6cc,01cd589112372927]", "[82406741d5d9af36391d155de3af7fee]", "00")
+ self.bid128_maxnum("0", "[865fa9ff29f69374,8c76a9e2c56435a2]", "[cea0611bf6cc6e22,69370457b658a21f]", "[865fa9ff29f693748c76a9e2c56435a2]", "00")
+ self.bid128_maxnum("0", "[99ef6fd089ffacc4,4e22505adb104c92]", "[c7dbe3240b4d2035,3530230f89cd799a]", "[99ef6fd089ffacc44e22505adb104c92]", "00")
+ self.bid128_maxnum("0", "[9bdfd9430a17fe3c,0000000000000020]", "[5fda1838be350be0,7c1fe63201a8ad03]", "[5fda1838be350be07c1fe63201a8ad03]", "00")
+ self.bid128_maxnum("0", "[9fffedfbdbdff5ff,7fade4e377eb3a1f]", "[30e75607ff5597e3,e2a629ee50397f1b]", "[30e75607ff5597e3e2a629ee50397f1b]", "00")
+ self.bid128_maxnum("0", "[aba4b9598f96ca54,bf5e83af6fde2bb7]", "[ffffff9dfffdfff7,00d7a59508e03740]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_maxnum("0", "[bfacea0a6a0da117,7298837e0a6750a2]", "[d1a2a0ee075d6de3,8968fc6d27031281]", "[bfacea0a6a0da1177298837e0a6750a2]", "00")
+ self.bid128_maxnum("0", "[caf9ce3f6fe65ecf,7c421830890c8c4c]", "[ed5c9ffd57ce63ff,2048100280002000]", "[b5720000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[cff874f326ef65b3,de41e92cabb02763]", "[cd01519cca19f40a,20c1449a43cd5854]", "[cd01519cca19f40a20c1449a43cd5854]", "00")
+ self.bid128_maxnum("0", "[dbf2000000000000,0000000000000000]", "[9e06000000000000,0000000000000000]", "[dbf20000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[ef9e6eea5c3fd81d,f6b70f9d0a2dbfff]", "[dbdfffff7ffefffb,759ffd3c7efeabfd]", "[be780000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[f265d1006ac5a9d3,0a1cc11ad4580129]", "[f9f7feff7ffffcfd,1061d8014f438130]", "[c9960000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[f800000000000000,0000000000000000]", "[a85e3f33929cbe16,9fba91212c46fa36]", "[a85e3f33929cbe169fba91212c46fa36]", "00")
+ self.bid128_maxnum("0", "[fbffebfe6eff7fff,5482556b2a27b09c]", "[d68ecc41811c43d7,0000000000000000]", "[d68ecc41811c43d70000000000000000]", "00")
+ self.bid128_maxnum("0", "[fc0007f4f1066ee9,42f47fcbdf9ce7d2]", "[ab22000000000000,0000000000000000]", "[ab220000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[fdbfb44dff6faffb,7fffdfdbfddbffff]", "[ff999ebef9fa7dad,7fe1ae9ff6d7afc7]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_maxnum("0", "[fde7bf7f3d7bafd8,ffffbefffff7fffe]", "[a8cdbc16ba0a4d59,3374576f6aeb0a73]", "[a8cdbc16ba0a4d593374576f6aeb0a73]", "00")
+ self.bid128_maxnum("0", "-Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "-Infinity", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "-Infinity", "QNaN", "[f8000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "SNaN", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_maxnum("0", "SNaN", "QNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_maxnum("0", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123457]", "[59dbb75d7734cd9e1234567890123457]", "00")
+ self.bid128_maxnum("0", "[59dbb75d7734cd9e1234567890123457]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123457]", "00")
+ self.bid128_maxnum("0", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000e95", "[30fe000000000000000000000001b198]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000e92", "[30f800000000000000000000069db9c0]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000e89", "[30f200000000000000000019d81d9600]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000000e86", "[30ec000000000000000064f43391f000]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000000000e83", "[30e6000000000000018a59e972118000]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000000000000e80", "[30e0000000000006046f37e5945c0000]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000000000000000000000e71", "[30ce000166a90c494b679a6898000000]", "00")
+ self.bid128_maxnum("0", "1.11e100", "11100000000000000000000000000000000e66", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111e100", "[3108000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000e100", "[3108000000000000000000000001b198]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000e100", "[310800000000000000000000069db9c0]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000e100", "[310800000000000000000019d81d9600]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000000e100", "[3108000000000000000064f43391f000]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000000000e100", "[3108000000000000018a59e972118000]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000000000000e100", "[3108000000000006046f37e5945c0000]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000000000000000000000e100", "[3108000166a90c494b679a6898000000]", "00")
+ self.bid128_maxnum("0", "1.11e100", "11100000000000000000000000000000000e100", "[310a36ba2b6fef117eff95b180000000]", "00")
+ self.bid128_maxnum("0", "111e100", "1.11e100", "[3108000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "111000e100", "1.11e100", "[3108000000000000000000000001b198]", "00")
+ self.bid128_maxnum("0", "111000000e100", "1.11e100", "[310800000000000000000000069db9c0]", "00")
+ self.bid128_maxnum("0", "111000000000e100", "1.11e100", "[310800000000000000000019d81d9600]", "00")
+ self.bid128_maxnum("0", "111000000000000e100", "1.11e100", "[3108000000000000000064f43391f000]", "00")
+ self.bid128_maxnum("0", "111000000000000000e100", "1.11e100", "[3108000000000000018a59e972118000]", "00")
+ self.bid128_maxnum("0", "111000000000000000000e100", "1.11e100", "[3108000000000006046f37e5945c0000]", "00")
+ self.bid128_maxnum("0", "111000000000000000000000000000e100", "1.11e100", "[3108000166a90c494b679a6898000000]", "00")
+ self.bid128_maxnum("0", "11100000000000000000000000000000000e100", "1.11e100", "[310a36ba2b6fef117eff95b180000000]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111001e95", "[30fe000000000000000000000001b199]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000001e92", "[30f800000000000000000000069db9c1]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000001e89", "[30f200000000000000000019d81d9601]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000001e86", "[30ec000000000000000064f43391f001]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000000001e83", "[30e6000000000000018a59e972118001]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000000000001e80", "[30e0000000000006046f37e5945c0001]", "00")
+ self.bid128_maxnum("0", "1.11e100", "111000000000000000000000000001e71", "[30ce000166a90c494b679a6898000001]", "00")
+ self.bid128_maxnum("0", "1.11e100", "11100000000000000000000000000000001e66", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_maxnum("0", "1.11e101", "111e98", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e101", "111001e95", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e101", "111000001e92", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e101", "111000000001e89", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e101", "111000000000001e86", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e101", "111000000000000001e83", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e101", "111000000000000000001e80", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e101", "111000000000000000000000000001e71", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e101", "11100000000000000000000000000000001e66", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "111e98", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "111001e95", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "111000001e92", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "111000000001e89", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "111000000000001e86", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "111000000000000001e83", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "111000000000000000001e80", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "111000000000000000000000000001e71", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "11100000000000000000000000000000001e66", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "111e98", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "111001e95", "1.11e100", "[30fe000000000000000000000001b199]", "00")
+ self.bid128_maxnum("0", "111000001e92", "1.11e100", "[30f800000000000000000000069db9c1]", "00")
+ self.bid128_maxnum("0", "111000000001e89", "1.11e100", "[30f200000000000000000019d81d9601]", "00")
+ self.bid128_maxnum("0", "111000000000001e86", "1.11e100", "[30ec000000000000000064f43391f001]", "00")
+ self.bid128_maxnum("0", "111000000000000001e83", "1.11e100", "[30e6000000000000018a59e972118001]", "00")
+ self.bid128_maxnum("0", "111000000000000000001e80", "1.11e100", "[30e0000000000006046f37e5945c0001]", "00")
+ self.bid128_maxnum("0", "111000000000000000000000000001e71", "1.11e100", "[30ce000166a90c494b679a6898000001]", "00")
+ self.bid128_maxnum("0", "11100000000000000000000000000000001e66", "1.11e100", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_maxnum("0", "-1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e100", "-111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "-1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "-1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e100", "-111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "-1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "-1.11e100", "-111000000000000000000e80", "[b104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "-1.11e100", "-11100000000000000000000000000000000e66", "[b104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "-1.11e100", "111000000000000000000e80", "[30e0000000000006046f37e5945c0000]", "00")
+ self.bid128_maxnum("0", "-1.11e100", "11100000000000000000000000000000000e66", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_maxnum("0", "1.11e100", "-111000000000000000000e80", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "1.11e100", "-11100000000000000000000000000000000e66", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum("0", "[30540000000000000000000000000000]", "1.0e11", "[3054000000000000000000000000000a]", "00")
+ self.bid128_maxnum("0", "[30540000000000000000000000000000]", "-1.0e11", "[30540000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[b0540000000000000000000000000000]", "-1.0e11", "[b0540000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[b0540000000000000000000000000000]", "1.0e11", "[3054000000000000000000000000000a]", "00")
+ self.bid128_maxnum("0", "1.0e11", "[30540000000000000000000000000000]", "[3054000000000000000000000000000a]", "00")
+ self.bid128_maxnum("0", "-1.0e11", "[30540000000000000000000000000000]", "[30540000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "-1.0e11", "[b0540000000000000000000000000000]", "[b0540000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "1.0e11", "[b0540000000000000000000000000000]", "[3054000000000000000000000000000a]", "00")
+ self.bid128_maxnum("0", "[7c00314dc6448d9338c15b0a00000000]", "[fc00314dc6448d9338c15b0a00000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c00314dc6448d9338c15b09ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b0a00000000]", "[7c00314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_maxnum("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b09fffffffe]", "[7c00314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_maxnum("0", "[69dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b0a00000000]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[69dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b09fffffffe]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[59dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b09fffffffe]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_maxnum("0", "[59dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b0a00000000]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_maxnum("0", "[7c00314dc6448d9338c15b0a00000000]", "[69dbb75d7734cd9e1234567890123456]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[7c00314dc6448d9338c15b09fffffffe]", "[69dbb75d7734cd9e1234567890123456]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_maxnum("0", "[7c00314dc6448d9338c15b09fffffffe]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_maxnum("0", "[7c00314dc6448d9338c15b0a00000000]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_maxnum("0", "0E+368", "[7e000000000000000000000000000001]", "[7c000000000000000000000000000001]", "01")
+ }
+
+ private func bid128_maxnum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128.maximum(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+
+ func test_bid128_maxnum_mag() {
+ self.bid128_maxnum_mag("0", "[0000000000200000,ff7edfdffedffb57]", "[0020000000000000,f3454c8a69445b00]", "[0020000000000000f3454c8a69445b00]", "00")
+ self.bid128_maxnum_mag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum_mag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum_mag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum_mag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum_mag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum_mag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[0064104080004000,2a6a5fff4d5880f7]", "[1492b2a830342900,5232b369c08c105e]", "[1492b2a8303429005232b369c08c105e]", "00")
+ self.bid128_maxnum_mag("0", "[0100020000800208,d1c8ecb1200aa485]", "[00d104002c010804,df143eeff57f7ccb]", "[0100020000800208d1c8ecb1200aa485]", "00")
+ self.bid128_maxnum_mag("0", "[0400000000040000,fffffbbeffff65cb]", "[fdcfbd08a3b4cb8b,41c82e9545c0d73e]", "[0400000000040000fffffbbeffff65cb]", "00")
+ self.bid128_maxnum_mag("0", "[0ad6000000000000,0000000000000000]", "[a3f2000000000000,0000000000000000]", "[a3f20000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_maxnum_mag("0", "[1bad4f2097138a19,d7dffb19891d90c3]", "[fe00000000000000,0000000000000000]", "[fc00000000000000,0000000000000000]", "01")
+ self.bid128_maxnum_mag("0", "[1c39130e40988123,efdffeebfffffffd]", "[f41fac9a7b40a5f7,16262844df37aff6]", "[1c39130e40988123efdffeebfffffffd]", "00")
+ self.bid128_maxnum_mag("0", "-1E+368", "1E+368", "[33200000000000000000000000000001]", "00")
+ self.bid128_maxnum_mag("0", "1E+368", "-1E+368", "[33200000000000000000000000000001]", "00")
+ self.bid128_maxnum_mag("0", "[263ba2e601bd6329,922ebd7e19ef4fab]", "[9608e71859649bdf,01b36c8d541279f1]", "[263ba2e601bd6329922ebd7e19ef4fab]", "00")
+ self.bid128_maxnum_mag("0", "[30082881a0811245,420a832140010600]", "[afffdcb77ffbea5e,1b7a8d1e6b697dcc]", "[30082881a0811245420a832140010600]", "00")
+ self.bid128_maxnum_mag("0", "[5092b89a95eeab5c,f0c77fcc135a96e8]", "[4ed48fe33b6a99fa,509dfec6e9bdbae8]", "[5092b89a95eeab5cf0c77fcc135a96e8]", "00")
+ self.bid128_maxnum_mag("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum_mag("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_maxnum_mag("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[7ca3c7ffff7e79dd,7fefbffffffed79f]", "[ff77f777fffddbf9,105c11204826e019]", "[7c0007ffff7e79dd7fefbffffffed79f]", "01")
+ self.bid128_maxnum_mag("0", "[7e00000000000000,0000000000000000]", "[89f2000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_maxnum_mag("0", "[8fffff7ffffefcfd,2120800112880208]", "[ffffbfffffffffff,040808fc20488028]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_maxnum_mag("0", "[964987cd3157314f,10cffc876bc0ff0b]", "[29f6ac72eee04871,20de712326112596]", "[29f6ac72eee0487120de712326112596]", "00")
+ self.bid128_maxnum_mag("0", "[970e0b1b56280b01,c973c0208469fa41]", "[2100000000000000,f874b7b6d8b6cfa2]", "[2100000000000000f874b7b6d8b6cfa2]", "00")
+ self.bid128_maxnum_mag("0", "-9.9E0", "-0", "[b03e0000000000000000000000000063]", "00")
+ self.bid128_maxnum_mag("0", "[9c8a931fd008e65e,a9873b88f8bac160]", "[1cc492d33fe2a5df,e71df7407adb8472]", "[1cc492d33fe2a5dfe71df7407adb8472]", "00")
+ self.bid128_maxnum_mag("0", "[9d53d8013b6b8f8d,894ed536acddb85f]", "[a814000000000000,0000000000000000]", "[9d53d8013b6b8f8d894ed536acddb85f]", "00")
+ self.bid128_maxnum_mag("0", "[a5bdb86d21ef6ec6,374d060f857c2b7f]", "[7e00000000000000,0000000000000000]", "[7c00000000000000,0000000000000000]", "01")
+ self.bid128_maxnum_mag("0", "[a7c95f791bc72f21,385c495d72fbab94]", "[b7fbf7ddffdfbfff,4ff9fffff37fa7ff]", "[a7c95f791bc72f21385c495d72fbab94]", "00")
+ self.bid128_maxnum_mag("0", "[b5d5a074ef82398f,ca1ff8b6c84317ce]", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[b6fa9cf8706c4a61,172cc79d6309288c]", "[c63eea6ca209d7f0,5851bdb535e1ebf6]", "[c63eea6ca209d7f05851bdb535e1ebf6]", "00")
+ self.bid128_maxnum_mag("0", "[b83e7213dd517504,265b3c55420186ce]", "[281d2910e41774e4,8cdef786c7039cd4]", "[b83e7213dd517504265b3c55420186ce]", "00")
+ self.bid128_maxnum_mag("0", "[d367780f595ae7f5,8bbbf16219e97237]", "[99147f1e68296d7a,4001028001000000]", "[d367780f595ae7f58bbbf16219e97237]", "00")
+ self.bid128_maxnum_mag("0", "[e9aa72710a5910ff,0480304010000800]", "[7bff7fffffd37f3e,1ca2094318943dd8]", "[78000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[f7fb7f5759fc7c9f,47fefffbfffffbd6]", "[f68ce1d1ae8eb67b,e1e26d91cb2c5ae8]", "[da320000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[fbbd5b9d8573bcbf,f77b63fbeebef67e]", "[3e79bbbaef7ecf7a,1000200229481244]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[fffffffffffffffe,d3420083088d9e17]", "[f6efdff976f9ffef,1000011000800441]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_maxnum_mag("0", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "-Infinity", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_maxnum_mag("0", "QNaN", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "QNaN", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "SNaN", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_maxnum_mag("0", "SNaN", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_maxnum_mag("0", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123457]", "[59dbb75d7734cd9e1234567890123457]", "00")
+ self.bid128_maxnum_mag("0", "[59dbb75d7734cd9e1234567890123457]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123457]", "00")
+ self.bid128_maxnum_mag("0", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000e95", "[30fe000000000000000000000001b198]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000e92", "[30f800000000000000000000069db9c0]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000e89", "[30f200000000000000000019d81d9600]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000000e86", "[30ec000000000000000064f43391f000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000000000e83", "[30e6000000000000018a59e972118000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000000000000e80", "[30e0000000000006046f37e5945c0000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000000000000000000000e71", "[30ce000166a90c494b679a6898000000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "11100000000000000000000000000000000e66", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111e100", "[3108000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000e100", "[3108000000000000000000000001b198]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000e100", "[310800000000000000000000069db9c0]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000e100", "[310800000000000000000019d81d9600]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000000e100", "[3108000000000000000064f43391f000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000000000e100", "[3108000000000000018a59e972118000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000000000000e100", "[3108000000000006046f37e5945c0000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000000000000000000000e100", "[3108000166a90c494b679a6898000000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "11100000000000000000000000000000000e100", "[310a36ba2b6fef117eff95b180000000]", "00")
+ self.bid128_maxnum_mag("0", "111e100", "1.11e100", "[3108000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "111000e100", "1.11e100", "[3108000000000000000000000001b198]", "00")
+ self.bid128_maxnum_mag("0", "111000000e100", "1.11e100", "[310800000000000000000000069db9c0]", "00")
+ self.bid128_maxnum_mag("0", "111000000000e100", "1.11e100", "[310800000000000000000019d81d9600]", "00")
+ self.bid128_maxnum_mag("0", "111000000000000e100", "1.11e100", "[3108000000000000000064f43391f000]", "00")
+ self.bid128_maxnum_mag("0", "111000000000000000e100", "1.11e100", "[3108000000000000018a59e972118000]", "00")
+ self.bid128_maxnum_mag("0", "111000000000000000000e100", "1.11e100", "[3108000000000006046f37e5945c0000]", "00")
+ self.bid128_maxnum_mag("0", "111000000000000000000000000000e100", "1.11e100", "[3108000166a90c494b679a6898000000]", "00")
+ self.bid128_maxnum_mag("0", "11100000000000000000000000000000000e100", "1.11e100", "[310a36ba2b6fef117eff95b180000000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111001e95", "[30fe000000000000000000000001b199]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000001e92", "[30f800000000000000000000069db9c1]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000001e89", "[30f200000000000000000019d81d9601]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000001e86", "[30ec000000000000000064f43391f001]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000000001e83", "[30e6000000000000018a59e972118001]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000000000001e80", "[30e0000000000006046f37e5945c0001]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "111000000000000000000000000001e71", "[30ce000166a90c494b679a6898000001]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "11100000000000000000000000000000001e66", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e101", "111e98", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e101", "111001e95", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e101", "111000001e92", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e101", "111000000001e89", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e101", "111000000000001e86", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e101", "111000000000000001e83", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e101", "111000000000000000001e80", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e101", "111000000000000000000000000001e71", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e101", "11100000000000000000000000000000001e66", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "111e98", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "111001e95", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "111000001e92", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "111000000001e89", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "111000000000001e86", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "111000000000000001e83", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "111000000000000000001e80", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "111000000000000000000000000001e71", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "11100000000000000000000000000000001e66", "1.11e101", "[3106000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "111e98", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "111001e95", "1.11e100", "[30fe000000000000000000000001b199]", "00")
+ self.bid128_maxnum_mag("0", "111000001e92", "1.11e100", "[30f800000000000000000000069db9c1]", "00")
+ self.bid128_maxnum_mag("0", "111000000001e89", "1.11e100", "[30f200000000000000000019d81d9601]", "00")
+ self.bid128_maxnum_mag("0", "111000000000001e86", "1.11e100", "[30ec000000000000000064f43391f001]", "00")
+ self.bid128_maxnum_mag("0", "111000000000000001e83", "1.11e100", "[30e6000000000000018a59e972118001]", "00")
+ self.bid128_maxnum_mag("0", "111000000000000000001e80", "1.11e100", "[30e0000000000006046f37e5945c0001]", "00")
+ self.bid128_maxnum_mag("0", "111000000000000000000000000001e71", "1.11e100", "[30ce000166a90c494b679a6898000001]", "00")
+ self.bid128_maxnum_mag("0", "11100000000000000000000000000000001e66", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "-1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "-111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "-1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "-1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "-111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "-1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "-1.11e100", "-111000000000000000000e80", "[b104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "-1.11e100", "-11100000000000000000000000000000000e66", "[b104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "-1.11e100", "111000000000000000000e80", "[30e0000000000006046f37e5945c0000]", "00")
+ self.bid128_maxnum_mag("0", "-1.11e100", "11100000000000000000000000000000000e66", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "-111000000000000000000e80", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "1.11e100", "-11100000000000000000000000000000000e66", "[3104000000000000000000000000006f]", "00")
+ self.bid128_maxnum_mag("0", "[30540000000000000000000000000000]", "1.0e11", "[3054000000000000000000000000000a]", "00")
+ self.bid128_maxnum_mag("0", "[30540000000000000000000000000000]", "-1.0e11", "[b054000000000000000000000000000a]", "00")
+ self.bid128_maxnum_mag("0", "[b0540000000000000000000000000000]", "-1.0e11", "[b054000000000000000000000000000a]", "00")
+ self.bid128_maxnum_mag("0", "[b0540000000000000000000000000000]", "1.0e11", "[3054000000000000000000000000000a]", "00")
+ self.bid128_maxnum_mag("0", "1.0e11", "[30540000000000000000000000000000]", "[3054000000000000000000000000000a]", "00")
+ self.bid128_maxnum_mag("0", "-1.0e11", "[30540000000000000000000000000000]", "[b054000000000000000000000000000a]", "00")
+ self.bid128_maxnum_mag("0", "-1.0e11", "[b0540000000000000000000000000000]", "[b054000000000000000000000000000a]", "00")
+ self.bid128_maxnum_mag("0", "1.0e11", "[b0540000000000000000000000000000]", "[3054000000000000000000000000000a]", "00")
+ self.bid128_maxnum_mag("0", "[7c00314dc6448d9338c15b0a00000000]", "[fc00314dc6448d9338c15b0a00000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c00314dc6448d9338c15b09ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b0a00000000]", "[7c00314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_maxnum_mag("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b09fffffffe]", "[7c00314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_maxnum_mag("0", "[69dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b0a00000000]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[69dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b09fffffffe]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[59dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b09fffffffe]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_maxnum_mag("0", "[59dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b0a00000000]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_maxnum_mag("0", "[7c00314dc6448d9338c15b0a00000000]", "[69dbb75d7734cd9e1234567890123456]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[7c00314dc6448d9338c15b09fffffffe]", "[69dbb75d7734cd9e1234567890123456]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_maxnum_mag("0", "[7c00314dc6448d9338c15b09fffffffe]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_maxnum_mag("0", "[7c00314dc6448d9338c15b0a00000000]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_maxnum_mag("0", "1.0", "1", "[30400000000000000000000000000001]", "00")
+ }
+
+ private func bid128_maxnum_mag(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128.maximumMagnitude(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+
+ func test_bid128_minnum() {
+ self.bid128_minnum("0", "[00009005c2420001,088d8a13d1000082]", "[8006001009102004,1399074b7522c59f]", "[80060010091020041399074b7522c59f]", "00")
+ self.bid128_minnum("0", "[0001000000600004,f7ffffffffd6bfff]", "[0000000080000000,0004000a30030402]", "[00000000800000000004000a30030402]", "00")
+ self.bid128_minnum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_minnum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_minnum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_minnum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[0020184028006090,0000000040002001]", "[0000000000800000,40c0810000001002]", "[000000000080000040c0810000001002]", "00")
+ self.bid128_minnum("0", "[0040000000000040,bfdffeffb7f7ee59]", "[0000400000000000,0200000000002000]", "[00004000000000000200000000002000]", "00")
+ self.bid128_minnum("0", "-0", "0", "[b0400000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[0100050400000000,2100804858904c40]", "[0112000da2b95024,371d1c8656d3d2c0]", "[01000504000000002100804858904c40]", "00")
+ self.bid128_minnum("0", "[0200018008120000,0010480002000004]", "[ff7dffffffffefdf,b442019805eb1075]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_minnum("0", "[0347dcdae0aaa652,bbd2de6cba73a4f2]", "[52239323eede5d29,9760d59a8000ff63]", "[0347dcdae0aaa652bbd2de6cba73a4f2]", "00")
+ self.bid128_minnum("0", "0E+368", "[7e000000000000000000000000000001]", "[7c000000000000000000000000000001]", "01")
+ self.bid128_minnum("0", "0", "Infinity", "[30400000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "0", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[151002b72b02c794,9e4bf55b377dcfdf]", "[fbb7487169ace7fd,f95f7bcedc2cda5b]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[160ec932727f1a8c,e5dbc0c211dc7256]", "[4d48a0f72a685fff,3024391054b0b2e8]", "[160ec932727f1a8ce5dbc0c211dc7256]", "00")
+ self.bid128_minnum("0", "[1710000000000000,0000000000000000]", "[28e70922e9e42604,65ef3156f4c20245]", "[17100000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[193be6702b02cd81,24da4a01ff19b553]", "[7800000000000000,0000000000000000]", "[193be6702b02cd8124da4a01ff19b553]", "00")
+ self.bid128_minnum("0", "[207feb4a0291e950,68960d1470150f01]", "[32da000000000000,0000000000000000]", "[32da0000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[28ddaa9ae994f895,27f6092238ba55d7]", "[245d7ab762584311,65701913c7d62199]", "[245d7ab76258431165701913c7d62199]", "00")
+ self.bid128_minnum("0", "[485438cb0caf54fb,5c69ce43c092baf1]", "[d2c8e350f918d0f9,7ed9db13f3aec63e]", "[d2c8e350f918d0f97ed9db13f3aec63e]", "00")
+ self.bid128_minnum("0", "[5178ff58cf9c6b1d,f53d798156303c9d]", "[2b4acbd19c035603,4528f560b2f4fea6]", "[2b4acbd19c0356034528f560b2f4fea6]", "00")
+ self.bid128_minnum("0", "[54ac946b7cce1b31,d781d5d450b98464]", "[27bea255e5d59b55,fe13d14eed812927]", "[27bea255e5d59b55fe13d14eed812927]", "00")
+ self.bid128_minnum("0", "[58a19f4b9621dbaa,8556a1e254a2f5c9]", "[7800000000000000,0000000000000000]", "[58a19f4b9621dbaa8556a1e254a2f5c9]", "00")
+ self.bid128_minnum("0", "[7bf8bdfffffff6ef,0048000000000008]", "[1080010000000000,ffff77fffff7ffff]", "[1080010000000000ffff77fffff7ffff]", "00")
+ self.bid128_minnum("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_minnum("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_minnum("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[7e001dbfd43a3ca7,e1d31c445bea1a55]", "[26fcf2597c7ac88d,8b7e9433fb8c38f5]", "[7c001dbfd43a3ca7,e1d31c445bea1a55]", "01")
+ self.bid128_minnum("0", "[7fff36f7ffff4fd9,fffffff9ffffbfbf]", "[e178bad63da08f9c,7f1f6ff77fffcfff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_minnum("0", "[85f5cb23db101aef,8125da3f63ae0bf6]", "[5538000000000000,0000000000000000]", "[85f5cb23db101aef8125da3f63ae0bf6]", "00")
+ self.bid128_minnum("0", "[97bffdffdffff5bf,3fade4e373e93a1f]", "[0008051800201004,dd9ffedeb7efdd1f]", "[97be0000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[a000808835003541,cc84a0402298f360]", "[a040010000001820,e40d252e62046500]", "[a040010000001820e40d252e62046500]", "00")
+ self.bid128_minnum("0", "[a26d84695a88fd76,8d0d14ba3d2218b3]", "[effae7ffffffffdd,9800000000000000]", "[a26d84695a88fd768d0d14ba3d2218b3]", "00")
+ self.bid128_minnum("0", "[a3f162b44e10e521,0402042201084014]", "[bf676edce3c6ece8,0410400000000000]", "[bf676edce3c6ece80410400000000000]", "00")
+ self.bid128_minnum("0", "[bd06800640810209,8169fde394089040]", "[801415810d030f52,2845a5229800c0c2]", "[bd068006408102098169fde394089040]", "00")
+ self.bid128_minnum("0", "[e7eff4f3b9f5f53f,001000045c085002]", "[577dfca9df2e3ffd,015810910100081a]", "[9fbe0000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[e9ffffff7fdefd3d,0002000200000000]", "[7dfdeffd6cfafffe,0000000000000000]", "[a7fe0000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[fde79787ce96db86,b57efff7ffe5fb7f]", "[fc30a1e8452c7bf9,4b3ea385d72b4677]", "[fc001787ce96db86b57efff7ffe5fb7f]", "00")
+ self.bid128_minnum("0", "[fdef778e7defeeff,0004129008282120]", "[fffffffffcefffbf,01000c1100022800]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_minnum("0", "-Infinity", "-0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "-Infinity", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "Infinity", "QNaN", "[78000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "-Infinity", "QNaN", "[f8000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "QNaN", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "SNaN", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_minnum("0", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123457]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum("0", "[59dbb75d7734cd9e1234567890123457]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum("0", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum("0", "1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000e95", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000e92", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000e89", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000000e86", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000000000e83", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000000000000e80", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000000000000000000000e71", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "11100000000000000000000000000000000e66", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000000000000000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "11100000000000000000000000000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000000000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000000000000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000000000000000000000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "11100000000000000000000000000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111001e95", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000001e92", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000001e89", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000001e86", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000000001e83", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000000000001e80", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "111000000000000000000000000001e71", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "11100000000000000000000000000000001e66", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e101", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e101", "111001e95", "[30fe000000000000000000000001b199]", "00")
+ self.bid128_minnum("0", "1.11e101", "111000001e92", "[30f800000000000000000000069db9c1]", "00")
+ self.bid128_minnum("0", "1.11e101", "111000000001e89", "[30f200000000000000000019d81d9601]", "00")
+ self.bid128_minnum("0", "1.11e101", "111000000000001e86", "[30ec000000000000000064f43391f001]", "00")
+ self.bid128_minnum("0", "1.11e101", "111000000000000001e83", "[30e6000000000000018a59e972118001]", "00")
+ self.bid128_minnum("0", "1.11e101", "111000000000000000001e80", "[30e0000000000006046f37e5945c0001]", "00")
+ self.bid128_minnum("0", "1.11e101", "111000000000000000000000000001e71", "[30ce000166a90c494b679a6898000001]", "00")
+ self.bid128_minnum("0", "1.11e101", "11100000000000000000000000000000001e66", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_minnum("0", "111e98", "1.11e101", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111001e95", "1.11e101", "[30fe000000000000000000000001b199]", "00")
+ self.bid128_minnum("0", "111000001e92", "1.11e101", "[30f800000000000000000000069db9c1]", "00")
+ self.bid128_minnum("0", "111000000001e89", "1.11e101", "[30f200000000000000000019d81d9601]", "00")
+ self.bid128_minnum("0", "111000000000001e86", "1.11e101", "[30ec000000000000000064f43391f001]", "00")
+ self.bid128_minnum("0", "111000000000000001e83", "1.11e101", "[30e6000000000000018a59e972118001]", "00")
+ self.bid128_minnum("0", "111000000000000000001e80", "1.11e101", "[30e0000000000006046f37e5945c0001]", "00")
+ self.bid128_minnum("0", "111000000000000000000000000001e71", "1.11e101", "[30ce000166a90c494b679a6898000001]", "00")
+ self.bid128_minnum("0", "11100000000000000000000000000000001e66", "1.11e101", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_minnum("0", "111e98", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111001e95", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000001e92", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000000001e89", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000000000001e86", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000000000000001e83", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000000000000000001e80", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "111000000000000000000000000001e71", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "11100000000000000000000000000000001e66", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "-1.11e100", "111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "-1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "-1.11e100", "111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "-1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "-1.11e100", "-111000000000000000000e80", "[b0e0000000000006046f37e5945c0000]", "00")
+ self.bid128_minnum("0", "-1.11e100", "-11100000000000000000000000000000000e66", "[b0c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_minnum("0", "-1.11e100", "111000000000000000000e80", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "-1.11e100", "11100000000000000000000000000000000e66", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum("0", "1.11e100", "-111000000000000000000e80", "[b0e0000000000006046f37e5945c0000]", "00")
+ self.bid128_minnum("0", "1.11e100", "-11100000000000000000000000000000000e66", "[b0c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_minnum("0", "[30540000000000000000000000000000]", "1.0e11", "[30540000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[30540000000000000000000000000000]", "-1.0e11", "[b054000000000000000000000000000a]", "00")
+ self.bid128_minnum("0", "[b0540000000000000000000000000000]", "-1.0e11", "[b054000000000000000000000000000a]", "00")
+ self.bid128_minnum("0", "[b0540000000000000000000000000000]", "1.0e11", "[b0540000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "1.0e11", "[30540000000000000000000000000000]", "[30540000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "-1.0e11", "[30540000000000000000000000000000]", "[b054000000000000000000000000000a]", "00")
+ self.bid128_minnum("0", "-1.0e11", "[b0540000000000000000000000000000]", "[b054000000000000000000000000000a]", "00")
+ self.bid128_minnum("0", "1.0e11", "[b0540000000000000000000000000000]", "[b0540000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[7c00314dc6448d9338c15b0a00000000]", "[fc00314dc6448d9338c15b0a00000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c00314dc6448d9338c15b09ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b0a00000000]", "[7c00314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_minnum("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b09fffffffe]", "[7c00314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_minnum("0", "[69dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b0a00000000]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[69dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b09fffffffe]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[59dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b09fffffffe]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum("0", "[59dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b0a00000000]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum("0", "[7c00314dc6448d9338c15b0a00000000]", "[69dbb75d7734cd9e1234567890123456]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[7c00314dc6448d9338c15b09fffffffe]", "[69dbb75d7734cd9e1234567890123456]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_minnum("0", "[7c00314dc6448d9338c15b09fffffffe]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum("0", "[7c00314dc6448d9338c15b0a00000000]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ }
+
+ private func bid128_minnum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128.minimum(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+
+ func test_bid128_minnum_mag() {
+ self.bid128_minnum_mag("0", "[0000000028a00004,0a000119004400c0]", "[983c84fa67f5f4db,4e9f51bc0bcfab38]", "[0000000028a000040a000119004400c0]", "00")
+ self.bid128_minnum_mag("0", "[0000090000a20000,810002401188e008]", "[fbeedeacf6faf7da,ca40ce2042238080]", "[0000090000a20000810002401188e008]", "00")
+ self.bid128_minnum_mag("0", "[0000800000000010,dfb7ffdfffffff7f]", "[0002240000010584,edff77bfefdbfdff]", "[0000800000000010dfb7ffdfffffff7f]", "00")
+ self.bid128_minnum_mag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_minnum_mag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_minnum_mag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_minnum_mag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[001c000061000005,ffffffffffffffff]", "[00120009b100014b,14940ba296c0b000]", "[00120009b100014b14940ba296c0b000]", "00")
+ self.bid128_minnum_mag("0", "[0838000000000000,0000000000000000]", "[0e6495e998f0e763,2ad98fe54ccbd0c9]", "[08380000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[09101000582780e8,ff6ffc8f7ffdb3be]", "[004a49800c50ec40,0000000000000000]", "[004a49800c50ec400000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[14019400e2110802,760388a9ddeca130]", "[bbffffffffffffff,904c01892209498e]", "[bbfe0000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "-1E+368", "1E+368", "[b3200000000000000000000000000001]", "00")
+ self.bid128_minnum_mag("0", "1E+368", "-1E+368", "[b3200000000000000000000000000001]", "00")
+ self.bid128_minnum_mag("0", "[2dd0000000000000,0000000000000000]", "[560e023e84c82e28,77e8d6dbc599a595]", "[2dd00000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[3ffb7ff7fbffbdf7,9e97fffeff7e5ffd]", "[0000080000002009,7fee5fd77ee97dd6]", "[00000800000020097fee5fd77ee97dd6]", "00")
+ self.bid128_minnum_mag("0", "[4a29fdd3add4507a,b6884d65b20ee626]", "[ed47f4a2ed981eb5,fe78fff8fbfd7fed]", "[4a280000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[54bf6c1bec4051ed,5270a069ab2f5d6e]", "[cd13a7b99da396da,28ded6d9e9b064d7]", "[cd13a7b99da396da28ded6d9e9b064d7]", "00")
+ self.bid128_minnum_mag("0", "[54bfe027e57ffeae,0020008000000000]", "[54ef062f8e6ec874,2c00561a6d69014c]", "[54bfe027e57ffeae0020008000000000]", "00")
+ self.bid128_minnum_mag("0", "[73e403cd92524802,ffdffff7eef7f578]", "[04d0042382040a11,3b28bdf7e0acf044]", "[4f900000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[7a7d77d79bcb7ac5,4040008000040002]", "[24a2100005400541,3fbb6efbf9efbdff]", "[24a21000054005413fbb6efbf9efbdff]", "00")
+ self.bid128_minnum_mag("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_minnum_mag("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_minnum_mag("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[80c8339dda223cb0,5a365edd5da934fa]", "[8158505728f286b6,9ebd240393503610]", "[80c8339dda223cb05a365edd5da934fa]", "00")
+ self.bid128_minnum_mag("0", "[8cacc47873ddc344,7ba430d5ad2201a0]", "[d720feb385616567,42f63de744ed22b0]", "[8cacc47873ddc3447ba430d5ad2201a0]", "00")
+ self.bid128_minnum_mag("0", "[8eaa0c92f3eb92b8,bb59bd398219fae6]", "[fffffffbfdfd7fbf,fffffffffefbdbff]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_minnum_mag("0", "[93b6fb3240336f43,1418bcd005435397]", "[11d0e3034b009131,ff0d21a63dfee067]", "[11d0e3034b009131ff0d21a63dfee067]", "00")
+ self.bid128_minnum_mag("0", "[ab8dc8c6ab487b28,696d44b545efab1b]", "[4d18000000000000,0000000000000000]", "[4d180000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[aeded18284d2f520,f8fe7c087c6fc392]", "[c1bf74edcb6a9910,aaeae4cdf8f8521b]", "[aeded18284d2f520f8fe7c087c6fc392]", "00")
+ self.bid128_minnum_mag("0", "[cabd42170215e9bd,4c1d830f132661c3]", "[570ccd8da603bfd0,42e6b693917ffb46]", "[cabd42170215e9bd4c1d830f132661c3]", "00")
+ self.bid128_minnum_mag("0", "[cb6404c5613c11d4,5a303248435ee06e]", "[21f9cabbd92950a2,38fab390fae2c7f7]", "[21f9cabbd92950a238fab390fae2c7f7]", "00")
+ self.bid128_minnum_mag("0", "[d3420083088d9e17,1910200689060010]", "[634cf4dedb290900,85c80bacac675afd]", "[0d320000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[dcce5b6605bb31aa,51b2488103b952ee]", "[dca2701d5c075220,020280000004a002]", "[dca2701d5c075220020280000004a002]", "00")
+ self.bid128_minnum_mag("0", "[de16000000000000,0000000000000000]", "[25fe36562e4193c6,056e01ccaec5e99d]", "[de160000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[f9ddddddafd6b7eb,4191828030714083]", "[f84fc15c6f294648,11fc3c799a25713a]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[ffd7dbf6fdf797ef,fe97ffefffffffdf]", "[1acfe5e77ec8d6c3,d48944eb4f933f97]", "[fc001bf6fdf797effe97ffefffffffdf]", "01")
+ self.bid128_minnum_mag("0", "[ffffffffffffffff,886eb9414b0ee367]", "[e4fd782140bcac5a,de8408ad4d60e62d]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_minnum_mag("0", "-Infinity", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "Infinity", "-0", "[b0400000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "Infinity", "QNaN", "[78000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "-Infinity", "QNaN", "[f8000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "Infinity", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_minnum_mag("0", "QNaN", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "QNaN", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_minnum_mag("0", "SNaN", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_minnum_mag("0", "SNaN", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_minnum_mag("0", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123457]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum_mag("0", "[59dbb75d7734cd9e1234567890123457]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum_mag("0", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000e95", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000e92", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000e89", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000000e86", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000000000e83", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000000000000e80", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000000000000000000000e71", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "11100000000000000000000000000000000e66", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000000000000000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "11100000000000000000000000000000000e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000000000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000000000000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000000000000000000000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "11100000000000000000000000000000000e100", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111001e95", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000001e92", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000001e89", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000001e86", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000000001e83", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000000000001e80", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "111000000000000000000000000001e71", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "11100000000000000000000000000000001e66", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e101", "111e98", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e101", "111001e95", "[30fe000000000000000000000001b199]", "00")
+ self.bid128_minnum_mag("0", "1.11e101", "111000001e92", "[30f800000000000000000000069db9c1]", "00")
+ self.bid128_minnum_mag("0", "1.11e101", "111000000001e89", "[30f200000000000000000019d81d9601]", "00")
+ self.bid128_minnum_mag("0", "1.11e101", "111000000000001e86", "[30ec000000000000000064f43391f001]", "00")
+ self.bid128_minnum_mag("0", "1.11e101", "111000000000000001e83", "[30e6000000000000018a59e972118001]", "00")
+ self.bid128_minnum_mag("0", "1.11e101", "111000000000000000001e80", "[30e0000000000006046f37e5945c0001]", "00")
+ self.bid128_minnum_mag("0", "1.11e101", "111000000000000000000000000001e71", "[30ce000166a90c494b679a6898000001]", "00")
+ self.bid128_minnum_mag("0", "1.11e101", "11100000000000000000000000000000001e66", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_minnum_mag("0", "111e98", "1.11e101", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111001e95", "1.11e101", "[30fe000000000000000000000001b199]", "00")
+ self.bid128_minnum_mag("0", "111000001e92", "1.11e101", "[30f800000000000000000000069db9c1]", "00")
+ self.bid128_minnum_mag("0", "111000000001e89", "1.11e101", "[30f200000000000000000019d81d9601]", "00")
+ self.bid128_minnum_mag("0", "111000000000001e86", "1.11e101", "[30ec000000000000000064f43391f001]", "00")
+ self.bid128_minnum_mag("0", "111000000000000001e83", "1.11e101", "[30e6000000000000018a59e972118001]", "00")
+ self.bid128_minnum_mag("0", "111000000000000000001e80", "1.11e101", "[30e0000000000006046f37e5945c0001]", "00")
+ self.bid128_minnum_mag("0", "111000000000000000000000000001e71", "1.11e101", "[30ce000166a90c494b679a6898000001]", "00")
+ self.bid128_minnum_mag("0", "11100000000000000000000000000000001e66", "1.11e101", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_minnum_mag("0", "111e98", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111001e95", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000001e92", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000000001e89", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000000000001e86", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000000000000001e83", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000000000000000001e80", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "111000000000000000000000000001e71", "1.11e100", "[3104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "11100000000000000000000000000000001e66", "1.11e100", "[30c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_minnum_mag("0", "-1.11e100", "111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "-1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "-1.11e100", "111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "-1.11e100", "-111e98", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "-1.11e100", "-111000000000000000000e80", "[b0e0000000000006046f37e5945c0000]", "00")
+ self.bid128_minnum_mag("0", "-1.11e100", "-11100000000000000000000000000000000e66", "[b0c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_minnum_mag("0", "-1.11e100", "111000000000000000000e80", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "-1.11e100", "11100000000000000000000000000000000e66", "[b104000000000000000000000000006f]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "-111000000000000000000e80", "[b0e0000000000006046f37e5945c0000]", "00")
+ self.bid128_minnum_mag("0", "1.11e100", "-11100000000000000000000000000000000e66", "[b0c636ba2b6fef117eff95b180000000]", "00")
+ self.bid128_minnum_mag("0", "[30540000000000000000000000000000]", "1.0e11", "[30540000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[30540000000000000000000000000000]", "-1.0e11", "[30540000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[b0540000000000000000000000000000]", "-1.0e11", "[b0540000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[b0540000000000000000000000000000]", "1.0e11", "[b0540000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "1.0e11", "[30540000000000000000000000000000]", "[30540000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "-1.0e11", "[30540000000000000000000000000000]", "[30540000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "-1.0e11", "[b0540000000000000000000000000000]", "[b0540000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "1.0e11", "[b0540000000000000000000000000000]", "[b0540000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[7c00314dc6448d9338c15b0a00000000]", "[fc00314dc6448d9338c15b0a00000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c00314dc6448d9338c15b09ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b0a00000000]", "[7c00314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_minnum_mag("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b09fffffffe]", "[7c00314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_minnum_mag("0", "[69dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b0a00000000]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[69dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b09fffffffe]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[59dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b09fffffffe]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum_mag("0", "[59dbb75d7734cd9e1234567890123456]", "[7c00314dc6448d9338c15b0a00000000]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum_mag("0", "[7c00314dc6448d9338c15b0a00000000]", "[69dbb75d7734cd9e1234567890123456]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[7c00314dc6448d9338c15b09fffffffe]", "[69dbb75d7734cd9e1234567890123456]", "[276e0000000000000000000000000000]", "00")
+ self.bid128_minnum_mag("0", "[7c00314dc6448d9338c15b09fffffffe]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum_mag("0", "[7c00314dc6448d9338c15b0a00000000]", "[59dbb75d7734cd9e1234567890123456]", "[59dbb75d7734cd9e1234567890123456]", "00")
+ self.bid128_minnum_mag("0", "1.0", "1", "[303e000000000000000000000000000a]", "00")
+ }
+
+ private func bid128_minnum_mag(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Decimal128.minimumMagnitude(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, .equalStatus, file, line)
+ self.assertStatus(status, expectedStatus, .equalStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelMulTests.swift b/Tests/DecimalTests/Intel - generated/IntelMulTests.swift
new file mode 100644
index 0000000..bdaa442
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelMulTests.swift
@@ -0,0 +1,663 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelMulTests: XCTestCase, IntelMixin {
+
+ func test_bid32_mul() {
+ self.bid32_mul("0", "[00000001]", "1.0", "[00000001]", "00")
+ self.bid32_mul("0", "[00080001]", "1.0", "[00080001]", "00")
+ self.bid32_mul("0", "1.0", "[00000001]", "[00000001]", "00")
+ self.bid32_mul("0", "1.0", "[00080001]", "[00080001]", "00")
+ self.bid32_mul("0", "1.0", "1.0", "[31800064]", "00")
+ self.bid32_mul("0", "-1.0", "1.0", "[b1800064]", "00")
+ self.bid32_mul("0", "1.0", "-1.0", "[b1800064]", "00")
+ self.bid32_mul("0", "1.0", "1.0e-96", "[01800064]", "00")
+ self.bid32_mul("0", "1.0", "-1.0e-96", "[81800064]", "00")
+ self.bid32_mul("0", "1.0", "[6098967f]", "[6098967f]", "00")
+ self.bid32_mul("0", "1.0", "[60989680]", "[01800000]", "00")
+ self.bid32_mul("0", "1.0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_mul("0", "1.0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_mul("0", "1.0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_mul("0", "1.0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_mul("0", "1.0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_mul("0", "1.0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_mul("0", "1.0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_mul("0", "1.0", "[80000001]", "[80000001]", "00")
+ self.bid32_mul("0", "1.0", "9.999999e-95", "[6018967f]", "00")
+ self.bid32_mul("0", "1.0", "-9.999999e-95", "[e018967f]", "00")
+ self.bid32_mul("0", "1.0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_mul("0", "1.0", "-9.999999e96", "[f7f8967f]", "00")
+ self.bid32_mul("0", "1.0e-96", "1.0", "[01800064]", "00")
+ self.bid32_mul("0", "-1.0e-96", "1.0", "[81800064]", "00")
+ self.bid32_mul("0", "1.0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_mul("0", "1.0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_mul("0", "1.0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_mul("0", "[6098967f]", "1.0", "[6098967f]", "00")
+ self.bid32_mul("0", "[60989680]", "1.0", "[01800000]", "00")
+ self.bid32_mul("0", "[7c000000]", "1.0", "[7c000000]", "00")
+ self.bid32_mul("0", "[7c8f423f]", "1.0", "[7c0f423f]", "00")
+ self.bid32_mul("0", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_mul("0", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_mul("0", "[7c8f4240]", "1.0", "[7c000000]", "00")
+ self.bid32_mul("0", "[7e100000]", "1.0", "[7c000000]", "01")
+ self.bid32_mul("0", "[7e100100]", "1.0", "[7c000100]", "01")
+ self.bid32_mul("0", "[7e8f423f]", "1.0", "[7c0f423f]", "01")
+ self.bid32_mul("0", "[7e8f4240]", "1.0", "[7c000000]", "01")
+ self.bid32_mul("0", "[80000001]", "1.0", "[80000001]", "00")
+ self.bid32_mul("0", "9.999999e-95", "1.0", "[6018967f]", "00")
+ self.bid32_mul("0", "-9.999999e-95", "1.0", "[e018967f]", "00")
+ self.bid32_mul("0", "9.999999e96", "1.0", "[77f8967f]", "00")
+ self.bid32_mul("0", "-9.999999e96", "1.0", "[f7f8967f]", "00")
+ self.bid32_mul("0", "[fc100000]", "1.0", "[fc000000]", "00")
+ self.bid32_mul("0", "[fc100100]", "1.0", "[fc000100]", "00")
+ self.bid32_mul("0", "[fe000000]", "1.0", "[fc000000]", "01")
+ self.bid32_mul("0", "Infinity", "NaN", "[7c000000]", "00")
+ self.bid32_mul("0", "[07040000]", "[a7cce69c]", "[8000339b]", "30")
+ self.bid32_mul("2", "[07040000]", "[a7cce69c]", "[8000339b]", "30")
+ self.bid32_mul("0", "[a09d5d70]", "[78000000]", "[f8000000]", "00")
+ self.bid32_mul("0", "[04000000]", "[1a172eeb]", "[00000000]", "00")
+ self.bid32_mul("0", "[78000000]", "[3fff3da3]", "[78000000]", "00")
+ self.bid32_mul("0", "[00000902]", "[00000000]", "[00000000]", "00")
+ self.bid32_mul("0", "[df800000]", "[d5c6cad1]", "[5f800000]", "00")
+ self.bid32_mul("0", "[4e47fa32]", "[d7800000]", "[df800000]", "00")
+ self.bid32_mul("0", "[5b800000]", "[6be1f78a]", "[58800000]", "00")
+ self.bid32_mul("0", "[1f800000]", "[78000000]", "[7c000000]", "01")
+ self.bid32_mul("0", "[f8000000]", "[00000000]", "[7c000000]", "01")
+ self.bid32_mul("0", "[b186347f]", "[3200014a]", "[b2147a0a]", "20")
+ self.bid32_mul("0", "[07040000]", "[a7cce69c]", "[8000339b]", "30")
+ self.bid32_mul("2", "[07040000]", "[a7cce69c]", "[8000339b]", "30")
+ self.bid32_mul("0", "[a09d5d70]", "[78000000]", "[f8000000]", "00")
+ self.bid32_mul("0", "[04000000]", "[1a172eeb]", "[00000000]", "00")
+ self.bid32_mul("0", "[78000000]", "[3fff3da3]", "[78000000]", "00")
+ self.bid32_mul("0", "[00000902]", "[00000000]", "[00000000]", "00")
+ self.bid32_mul("0", "[df800000]", "[d5c6cad1]", "[5f800000]", "00")
+ self.bid32_mul("0", "[4e47fa32]", "[d7800000]", "[df800000]", "00")
+ self.bid32_mul("0", "[5b800000]", "[6be1f78a]", "[58800000]", "00")
+ self.bid32_mul("0", "[1f800000]", "[78000000]", "[7c000000]", "01")
+ self.bid32_mul("0", "[f8000000]", "[00000000]", "[7c000000]", "01")
+ self.bid32_mul("0", "[b186347f]", "[3200014a]", "[b2147a0a]", "20")
+ self.bid32_mul("0", "1010101E-95", "99E-8", "1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_mul("1", "1010101E-95", "99E-8", "999999E-101", "0x30")
+ self.bid32_mul("2", "1010101E-95", "99E-8", "1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_mul("3", "1010101E-95", "99E-8", "999999E-101", "0x30")
+ self.bid32_mul("4", "1010101E-95", "99E-8", "1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_mul("0", "1010101E-95", "-99E-8", "-1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_mul("1", "1010101E-95", "-99E-8", "-1000000E-101", "0x30", underflowBeforeOnly: true)
+ self.bid32_mul("2", "1010101E-95", "-99E-8", "-999999E-101", "0x30")
+ self.bid32_mul("3", "1010101E-95", "-99E-8", "-999999E-101", "0x30")
+ self.bid32_mul("4", "1010101E-95", "-99E-8", "-1000000E-101", "0x30", underflowBeforeOnly: true)
+ }
+
+ private func bid32_mul(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.multiplied(by: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_mul() {
+ self.bid64_mul("0", "[0000000000000000]", "[fa77ffd7fb7ffeff]", "[7c00000000000000]", "01")
+ self.bid64_mul("0", "[0000000000000001]", "[b47ef9e1dfcdf74f]", "[82bef9e1dfcdf74f]", "00")
+ self.bid64_mul("0", "+0.0000000010000001E0", "+9.98899988898E0", "[6bb37cf181954935]", "20")
+ self.bid64_mul("0", "[0000180010010480]", "[0080000000000008]", "[0000000000000000]", "30")
+ self.bid64_mul("0", "+0.10100101E0", "+78856868956686.76857E0", "[317c4bc8652066a2]", "20")
+ self.bid64_mul("0", "[0200000024100020]", "[2e2decc4d27751cf]", "[0000003736b70285]", "30")
+ self.bid64_mul("0", "[026257043da3cab4]", "[aac09120242a5d73]", "[8000000000000000]", "30")
+ self.bid64_mul("0", "[05d7bc2220347f5e]", "[9ac38cb88cbcf19a]", "[8000000000000000]", "30")
+ self.bid64_mul("0", "[0c56d96b2c498e14]", "[a24ee9407ee8aaf1]", "[8000000000041e71]", "30")
+ self.bid64_mul("0", "[0ec0000000000000]", "[0a07000000000000]", "[0000000000000000]", "00")
+ self.bid64_mul("0", "-0", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("0", "0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("0", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_mul("0", "[1020600000400400]", "[325ef3990b52a9f6]", "[6498ab9ad1a44cf9]", "20")
+ self.bid64_mul("0", "+110.0E0", "-779489732.5773635E0", "[b13e765c0ec79b96]", "20")
+ self.bid64_mul("0", "-110101.10101011000100E0", "+0.01110111000011E0", "[b044579ff548c635]", "20")
+ self.bid64_mul("0", "[1285ce3d5e554edd]", "[b03f12388438cb91]", "[92e513d44eb4a545]", "20")
+ self.bid64_mul("0", "[1a26179823b801ff]", "[15080003c46324e3]", "[00000000e6283adf]", "30")
+ self.bid64_mul("0", "1E+367", "1E+367", "[7800000000000000]", "28")
+ self.bid64_mul("0", "1E-385", "0.01234567890123456", "[0000001cbe991a14]", "30")
+ self.bid64_mul("0", "1E-385", "1.00000000000000", "[000009184e72a000]", "00")
+ self.bid64_mul("0", "1E-385", "5E-14", "[0000000000000000]", "30")
+ self.bid64_mul("0", "[20a5553a8f593806]", "[8f253b091aaac14e]", "[8000c900279cb838]", "30")
+ self.bid64_mul("0", "[2202c49001000286]", "[f47ffcfbbaebff4c]", "[c220000000000000]", "00")
+ self.bid64_mul("0", "[4000000000202010]", "[0000000100000200]", "[6390201040402000]", "00")
+ self.bid64_mul("0", "[41c0000000000000]", "[be4f13604a161cab]", "[ce40000000000000]", "00")
+ self.bid64_mul("0", "[458086aa80268140]", "[0000000000000008]", "[13c4355401340a00]", "00")
+ self.bid64_mul("0", "[48079159c9eac95b]", "[545376029f038b88]", "[7800000000000000]", "28")
+ self.bid64_mul("0", "[500a39140c1df476]", "[deac4dd1e8ab47dc]", "[f800000000000000]", "28")
+ self.bid64_mul("0", "[5116ed44f7c97723]", "[c0fcd59940767bc0]", "[f800000000000000]", "28")
+ self.bid64_mul("0", "[527f62bd1287a67d]", "[d9f7dbf5fff7ffe7]", "[f800000000000000]", "28")
+ self.bid64_mul("0", "-5555569769.8E0", "-789566.58268669636224E0", "[31cf957dcfa837c7]", "20")
+ self.bid64_mul("0", "[58794c51b6e2faf6]", "[96e0000000000000]", "[bd80000000000000]", "00")
+ self.bid64_mul("0", "[595163ac73c75073]", "[710046ab8fdfd911]", "[7800000000000000]", "28")
+ self.bid64_mul("0", "[59f5506a9ce84d22]", "[0000000000030002]", "[28e430c939e366ec]", "20")
+ self.bid64_mul("0", "[5c3ae0636c30449b]", "[eed07305b12f0c3d]", "[f800000000000000]", "28")
+ self.bid64_mul("0", "[5d330a9955f87cf6]", "[0000000000000002]", "[2b83ceeb779818fe]", "00")
+ self.bid64_mul("0", "[6006000883025200]", "[6942ba8cd0b77b3c]", "[0000000000000000]", "00")
+ self.bid64_mul("0", "[621ff7ee477869bf]", "[0e1000000008021c]", "[0000000000000000]", "00")
+ self.bid64_mul("0", "[74320a65f9b6e261]", "[2200000000000032]", "[41510532fcdb7130]", "20")
+ self.bid64_mul("0", "-8998.89989899E0", "-58956575778996.8E0", "[3212d945c39720ea]", "20")
+ self.bid64_mul("0", "-8.E0", "-888.898999989899889E0", "[305943976915b45f]", "20")
+ self.bid64_mul("0", "[8ef670032d030ee8]", "[e7cdaf6b7fc63bcf]", "[0000000000000000]", "00")
+ self.bid64_mul("0", "[8fbf5da3956fce8b]", "[8000a0a55508c595]", "[0000000000000000]", "30")
+ self.bid64_mul("0", "-959.8997E0", "+68.7967799599E0", "[b077761f33802eaa]", "20")
+ self.bid64_mul("0", "[972784165db43c3e]", "[044fbff56a929dd2]", "[8000000000000000]", "30")
+ self.bid64_mul("0", "[ada0000000000000]", "[b8dcfe7aaece2955]", "[34a0000000000000]", "00")
+ self.bid64_mul("0", "[bdffffffffffffbd]", "[fbfffff7ffffeeff]", "[7800000000000000]", "00")
+ self.bid64_mul("0", "[ca1cf8617309a4d8]", "[dd9fc98585dc262c]", "[7800000000000000]", "28")
+ self.bid64_mul("0", "[ccd968a05ded12b2]", "[43d400cb75bbaff6]", "[f800000000000000]", "28")
+ self.bid64_mul("0", "[cfbd2d3cc1eddbb3]", "[3ac37a5a859aeea7]", "[da9c900a7142bc37]", "20")
+ self.bid64_mul("0", "[d22eaca87ee95446]", "[481abdd75f3e0f3b]", "[f800000000000000]", "28")
+ self.bid64_mul("0", "[d2a5e1c1f5080291]", "[7f3d1f59baff37f0]", "[7c011f59baff37f0]", "01")
+ self.bid64_mul("0", "[d8da80f354325818]", "[6ffff9fffffffd17]", "[dfe0000000000000]", "00")
+ self.bid64_mul("0", "[d8e0bf668018d8fc]", "[d702a94af9b02adb]", "[7800000000000000]", "28")
+ self.bid64_mul("0", "[dc55a2268eb5ea2a]", "[d6777f6e4e953049]", "[7800000000000000]", "28")
+ self.bid64_mul("0", "[ec36b39006e026e7]", "[13ec432af5323c3c]", "[92e0000000000000]", "00")
+ self.bid64_mul("0", "[f5bffee6d71bff2b]", "[5c7a97577637e7ad]", "[dfe0000000000000]", "00")
+ self.bid64_mul("0", "[f9bdcffff5fbdff7]", "[0000000000000000]", "[7c00000000000000]", "01")
+ self.bid64_mul("0", "[fa445b3431f42001]", "[ffe63bfd1d36bfdd]", "[fc023bfd1d36bfdd]", "01")
+ self.bid64_mul("0", "[fbffffbffffffdff]", "[a0b608081a304820]", "[7800000000000000]", "00")
+ self.bid64_mul("0", "[fffcfbfffbfbbdff]", "[5434090a2e000648]", "[fc00fbfffbfbbdff]", "01")
+ self.bid64_mul("0", "[fffffdfdffffffff]", "[fffffffffefffef7]", "[fc00000000000000]", "01")
+ self.bid64_mul("0", "-Infinity", "-0", "[7c00000000000000]", "01")
+ self.bid64_mul("0", "-Infinity", "-Infinity", "[7800000000000000]", "00")
+ self.bid64_mul("0", "Infinity", "Infinity", "[7800000000000000]", "00")
+ self.bid64_mul("0", "QNaN", "-Infinity", "[7c00000000000000]", "00")
+ self.bid64_mul("0", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_mul("0", "SNaN", "0", "[7c00000000000000]", "01")
+ self.bid64_mul("0", "SNaN", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("1", "+0.0000000010000001E0", "+9.98899988898E0", "[6bb37cf181954934]", "20")
+ self.bid64_mul("1", "+0.10100101E0", "+78856868956686.76857E0", "[317c4bc8652066a2]", "20")
+ self.bid64_mul("1", "[026257043da3cab4]", "[aac09120242a5d73]", "[8000000000000001]", "30")
+ self.bid64_mul("1", "[05d7bc2220347f5e]", "[9ac38cb88cbcf19a]", "[8000000000000001]", "30")
+ self.bid64_mul("1", "[0c56d96b2c498e14]", "[a24ee9407ee8aaf1]", "[8000000000041e72]", "30")
+ self.bid64_mul("1", "[0ec0000000000000]", "[0a07000000000000]", "[0000000000000000]", "00")
+ self.bid64_mul("1", "-0", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("1", "0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("1", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_mul("1", "[1020600000400400]", "[325ef3990b52a9f6]", "[6498ab9ad1a44cf8]", "20")
+ self.bid64_mul("1", "+110.0E0", "-779489732.5773635E0", "[b13e765c0ec79b97]", "20")
+ self.bid64_mul("1", "-110101.10101011000100E0", "+0.01110111000011E0", "[b044579ff548c636]", "20")
+ self.bid64_mul("1", "[1285ce3d5e554edd]", "[b03f12388438cb91]", "[92e513d44eb4a545]", "20")
+ self.bid64_mul("1", "1E+367", "1E+367", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("1", "1E-385", "1.00000000000000", "[000009184e72a000]", "00")
+ self.bid64_mul("1", "[41c0000000000000]", "[be4f13604a161cab]", "[ce40000000000000]", "00")
+ self.bid64_mul("1", "[48079159c9eac95b]", "[545376029f038b88]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("1", "[500a39140c1df476]", "[deac4dd1e8ab47dc]", "[f800000000000000]", "28")
+ self.bid64_mul("1", "[5116ed44f7c97723]", "[c0fcd59940767bc0]", "[f800000000000000]", "28")
+ self.bid64_mul("1", "-5555569769.8E0", "-789566.58268669636224E0", "[31cf957dcfa837c6]", "20")
+ self.bid64_mul("1", "[58794c51b6e2faf6]", "[96e0000000000000]", "[bd80000000000000]", "00")
+ self.bid64_mul("1", "[595163ac73c75073]", "[710046ab8fdfd911]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("1", "[5c3ae0636c30449b]", "[eed07305b12f0c3d]", "[f800000000000000]", "28")
+ self.bid64_mul("1", "[5d330a9955f87cf6]", "[0000000000000002]", "[2b83ceeb779818fe]", "00")
+ self.bid64_mul("1", "-8998.89989899E0", "-58956575778996.8E0", "[3212d945c39720e9]", "20")
+ self.bid64_mul("1", "-8.E0", "-888.898999989899889E0", "[305943976915b45f]", "20")
+ self.bid64_mul("1", "[91c056424001a844]", "[0000000000000012]", "[8000000000000001]", "30")
+ self.bid64_mul("1", "-959.8997E0", "+68.7967799599E0", "[b077761f33802eab]", "20")
+ self.bid64_mul("1", "[972784165db43c3e]", "[044fbff56a929dd2]", "[8000000000000001]", "30")
+ self.bid64_mul("1", "[ada0000000000000]", "[b8dcfe7aaece2955]", "[34a0000000000000]", "00")
+ self.bid64_mul("1", "[ca1cf8617309a4d8]", "[dd9fc98585dc262c]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("1", "[ccd968a05ded12b2]", "[43d400cb75bbaff6]", "[f800000000000000]", "28")
+ self.bid64_mul("1", "[cfbd2d3cc1eddbb3]", "[3ac37a5a859aeea7]", "[da9c900a7142bc38]", "20")
+ self.bid64_mul("1", "[d22eaca87ee95446]", "[481abdd75f3e0f3b]", "[f800000000000000]", "28")
+ self.bid64_mul("1", "[d8e0bf668018d8fc]", "[d702a94af9b02adb]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("1", "[dc55a2268eb5ea2a]", "[d6777f6e4e953049]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("1", "-Infinity", "-0", "[7c00000000000000]", "01")
+ self.bid64_mul("1", "-Infinity", "-Infinity", "[7800000000000000]", "00")
+ self.bid64_mul("1", "Infinity", "Infinity", "[7800000000000000]", "00")
+ self.bid64_mul("1", "QNaN", "-Infinity", "[7c00000000000000]", "00")
+ self.bid64_mul("1", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_mul("1", "SNaN", "0", "[7c00000000000000]", "01")
+ self.bid64_mul("1", "SNaN", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("2", "+0.0000000010000001E0", "+9.98899988898E0", "[6bb37cf181954935]", "20")
+ self.bid64_mul("2", "[0000180010010480]", "[0080000000000008]", "[0000000000000001]", "30")
+ self.bid64_mul("2", "+0.10100101E0", "+78856868956686.76857E0", "[317c4bc8652066a3]", "20")
+ self.bid64_mul("2", "[026257043da3cab4]", "[aac09120242a5d73]", "[8000000000000000]", "30")
+ self.bid64_mul("2", "[05d7bc2220347f5e]", "[9ac38cb88cbcf19a]", "[8000000000000000]", "30")
+ self.bid64_mul("2", "[0c56d96b2c498e14]", "[a24ee9407ee8aaf1]", "[8000000000041e71]", "30")
+ self.bid64_mul("2", "[0ec0000000000000]", "[0a07000000000000]", "[0000000000000000]", "00")
+ self.bid64_mul("2", "-0", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("2", "0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("2", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_mul("2", "[1020600000400400]", "[325ef3990b52a9f6]", "[6498ab9ad1a44cf9]", "20")
+ self.bid64_mul("2", "+110.0E0", "-779489732.5773635E0", "[b13e765c0ec79b96]", "20")
+ self.bid64_mul("2", "-110101.10101011000100E0", "+0.01110111000011E0", "[b044579ff548c635]", "20")
+ self.bid64_mul("2", "[1285ce3d5e554edd]", "[b03f12388438cb91]", "[92e513d44eb4a544]", "20")
+ self.bid64_mul("2", "1E+367", "1E+367", "[7800000000000000]", "28")
+ self.bid64_mul("2", "1E+367", "-1E+368", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("2", "1E-385", "1.00000000000000", "[000009184e72a000]", "00")
+ self.bid64_mul("2", "1E-385", "-9.00000000000000", "[800051dac207a000]", "00")
+ self.bid64_mul("2", "[41c0000000000000]", "[be4f13604a161cab]", "[ce40000000000000]", "00")
+ self.bid64_mul("2", "[48079159c9eac95b]", "[545376029f038b88]", "[7800000000000000]", "28")
+ self.bid64_mul("2", "[500a39140c1df476]", "[deac4dd1e8ab47dc]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("2", "[5116ed44f7c97723]", "[c0fcd59940767bc0]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("2", "[527f62bd1287a67d]", "[d9f7dbf5fff7ffe7]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("2", "-5555569769.8E0", "-789566.58268669636224E0", "[31cf957dcfa837c7]", "20")
+ self.bid64_mul("2", "[58794c51b6e2faf6]", "[96e0000000000000]", "[bd80000000000000]", "00")
+ self.bid64_mul("2", "[595163ac73c75073]", "[710046ab8fdfd911]", "[7800000000000000]", "28")
+ self.bid64_mul("2", "[5c3ae0636c30449b]", "[eed07305b12f0c3d]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("2", "[5d330a9955f87cf6]", "[0000000000000002]", "[2b83ceeb779818fe]", "00")
+ self.bid64_mul("2", "-8998.89989899E0", "-58956575778996.8E0", "[3212d945c39720ea]", "20")
+ self.bid64_mul("2", "-8.E0", "-888.898999989899889E0", "[305943976915b460]", "20")
+ self.bid64_mul("2", "[8fbf5da3956fce8b]", "[8000a0a55508c595]", "[0000000000000001]", "30")
+ self.bid64_mul("2", "-959.8997E0", "+68.7967799599E0", "[b077761f33802eaa]", "20")
+ self.bid64_mul("2", "[972784165db43c3e]", "[044fbff56a929dd2]", "[8000000000000000]", "30")
+ self.bid64_mul("2", "[ada0000000000000]", "[b8dcfe7aaece2955]", "[34a0000000000000]", "00")
+ self.bid64_mul("2", "[ca1cf8617309a4d8]", "[dd9fc98585dc262c]", "[7800000000000000]", "28")
+ self.bid64_mul("2", "[ccd968a05ded12b2]", "[43d400cb75bbaff6]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("2", "[cfbd2d3cc1eddbb3]", "[3ac37a5a859aeea7]", "[da9c900a7142bc37]", "20")
+ self.bid64_mul("2", "[d22eaca87ee95446]", "[481abdd75f3e0f3b]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("2", "[d8e0bf668018d8fc]", "[d702a94af9b02adb]", "[7800000000000000]", "28")
+ self.bid64_mul("2", "[dc55a2268eb5ea2a]", "[d6777f6e4e953049]", "[7800000000000000]", "28")
+ self.bid64_mul("2", "-Infinity", "-0", "[7c00000000000000]", "01")
+ self.bid64_mul("2", "-Infinity", "-Infinity", "[7800000000000000]", "00")
+ self.bid64_mul("2", "Infinity", "Infinity", "[7800000000000000]", "00")
+ self.bid64_mul("2", "QNaN", "-Infinity", "[7c00000000000000]", "00")
+ self.bid64_mul("2", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_mul("2", "SNaN", "0", "[7c00000000000000]", "01")
+ self.bid64_mul("2", "SNaN", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("3", "+0.0000000010000001E0", "+9.98899988898E0", "[6bb37cf181954934]", "20")
+ self.bid64_mul("3", "+0.10100101E0", "+78856868956686.76857E0", "[317c4bc8652066a2]", "20")
+ self.bid64_mul("3", "[026257043da3cab4]", "[aac09120242a5d73]", "[8000000000000000]", "30")
+ self.bid64_mul("3", "[05d7bc2220347f5e]", "[9ac38cb88cbcf19a]", "[8000000000000000]", "30")
+ self.bid64_mul("3", "[0c56d96b2c498e14]", "[a24ee9407ee8aaf1]", "[8000000000041e71]", "30")
+ self.bid64_mul("3", "[0ec0000000000000]", "[0a07000000000000]", "[0000000000000000]", "00")
+ self.bid64_mul("3", "-0", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("3", "0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("3", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_mul("3", "+110.0E0", "-779489732.5773635E0", "[b13e765c0ec79b96]", "20")
+ self.bid64_mul("3", "-110101.10101011000100E0", "+0.01110111000011E0", "[b044579ff548c635]", "20")
+ self.bid64_mul("3", "[1285ce3d5e554edd]", "[b03f12388438cb91]", "[92e513d44eb4a544]", "20")
+ self.bid64_mul("3", "1E+367", "1E+367", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("3", "[41c0000000000000]", "[be4f13604a161cab]", "[ce40000000000000]", "00")
+ self.bid64_mul("3", "[48079159c9eac95b]", "[545376029f038b88]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("3", "[500a39140c1df476]", "[deac4dd1e8ab47dc]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("3", "[5116ed44f7c97723]", "[c0fcd59940767bc0]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("3", "-5555569769.8E0", "-789566.58268669636224E0", "[31cf957dcfa837c6]", "20")
+ self.bid64_mul("3", "[58794c51b6e2faf6]", "[96e0000000000000]", "[bd80000000000000]", "00")
+ self.bid64_mul("3", "[595163ac73c75073]", "[710046ab8fdfd911]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("3", "[5c3ae0636c30449b]", "[eed07305b12f0c3d]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("3", "-8998.89989899E0", "-58956575778996.8E0", "[3212d945c39720e9]", "20")
+ self.bid64_mul("3", "-8.E0", "-888.898999989899889E0", "[305943976915b45f]", "20")
+ self.bid64_mul("3", "-959.8997E0", "+68.7967799599E0", "[b077761f33802eaa]", "20")
+ self.bid64_mul("3", "[972784165db43c3e]", "[044fbff56a929dd2]", "[8000000000000000]", "30")
+ self.bid64_mul("3", "[ada0000000000000]", "[b8dcfe7aaece2955]", "[34a0000000000000]", "00")
+ self.bid64_mul("3", "[ca1cf8617309a4d8]", "[dd9fc98585dc262c]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("3", "[ccd968a05ded12b2]", "[43d400cb75bbaff6]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("3", "[cfbd2d3cc1eddbb3]", "[3ac37a5a859aeea7]", "[da9c900a7142bc37]", "20")
+ self.bid64_mul("3", "[d22eaca87ee95446]", "[481abdd75f3e0f3b]", "[f7fb86f26fc0ffff]", "28")
+ self.bid64_mul("3", "[d8e0bf668018d8fc]", "[d702a94af9b02adb]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("3", "[dc55a2268eb5ea2a]", "[d6777f6e4e953049]", "[77fb86f26fc0ffff]", "28")
+ self.bid64_mul("3", "-Infinity", "-0", "[7c00000000000000]", "01")
+ self.bid64_mul("3", "-Infinity", "-Infinity", "[7800000000000000]", "00")
+ self.bid64_mul("3", "Infinity", "Infinity", "[7800000000000000]", "00")
+ self.bid64_mul("3", "QNaN", "-Infinity", "[7c00000000000000]", "00")
+ self.bid64_mul("3", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_mul("3", "SNaN", "0", "[7c00000000000000]", "01")
+ self.bid64_mul("3", "SNaN", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("4", "+0.0000000010000001E0", "+9.98899988898E0", "[6bb37cf181954935]", "20")
+ self.bid64_mul("4", "+0.10100101E0", "+78856868956686.76857E0", "[317c4bc8652066a2]", "20")
+ self.bid64_mul("4", "[026257043da3cab4]", "[aac09120242a5d73]", "[8000000000000000]", "30")
+ self.bid64_mul("4", "[05d7bc2220347f5e]", "[9ac38cb88cbcf19a]", "[8000000000000000]", "30")
+ self.bid64_mul("4", "[0c56d96b2c498e14]", "[a24ee9407ee8aaf1]", "[8000000000041e71]", "30")
+ self.bid64_mul("4", "[0ec0000000000000]", "[0a07000000000000]", "[0000000000000000]", "00")
+ self.bid64_mul("4", "-0", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("4", "0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("4", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_mul("4", "+110.0E0", "-779489732.5773635E0", "[b13e765c0ec79b97]", "20")
+ self.bid64_mul("4", "-110101.10101011000100E0", "+0.01110111000011E0", "[b044579ff548c635]", "20")
+ self.bid64_mul("4", "[1285ce3d5e554edd]", "[b03f12388438cb91]", "[92e513d44eb4a545]", "20")
+ self.bid64_mul("4", "[41c0000000000000]", "[be4f13604a161cab]", "[ce40000000000000]", "00")
+ self.bid64_mul("4", "[48079159c9eac95b]", "[545376029f038b88]", "[7800000000000000]", "28")
+ self.bid64_mul("4", "[500a39140c1df476]", "[deac4dd1e8ab47dc]", "[f800000000000000]", "28")
+ self.bid64_mul("4", "[5116ed44f7c97723]", "[c0fcd59940767bc0]", "[f800000000000000]", "28")
+ self.bid64_mul("4", "-5555569769.8E0", "-789566.58268669636224E0", "[31cf957dcfa837c7]", "20")
+ self.bid64_mul("4", "[58794c51b6e2faf6]", "[96e0000000000000]", "[bd80000000000000]", "00")
+ self.bid64_mul("4", "[595163ac73c75073]", "[710046ab8fdfd911]", "[7800000000000000]", "28")
+ self.bid64_mul("4", "[5c3ae0636c30449b]", "[eed07305b12f0c3d]", "[f800000000000000]", "28")
+ self.bid64_mul("4", "-8998.89989899E0", "-58956575778996.8E0", "[3212d945c39720ea]", "20")
+ self.bid64_mul("4", "-8.E0", "-888.898999989899889E0", "[305943976915b45f]", "20")
+ self.bid64_mul("4", "-959.8997E0", "+68.7967799599E0", "[b077761f33802eaa]", "20")
+ self.bid64_mul("4", "[972784165db43c3e]", "[044fbff56a929dd2]", "[8000000000000000]", "30")
+ self.bid64_mul("4", "[ada0000000000000]", "[b8dcfe7aaece2955]", "[34a0000000000000]", "00")
+ self.bid64_mul("4", "[ca1cf8617309a4d8]", "[dd9fc98585dc262c]", "[7800000000000000]", "28")
+ self.bid64_mul("4", "[ccd968a05ded12b2]", "[43d400cb75bbaff6]", "[f800000000000000]", "28")
+ self.bid64_mul("4", "[cfbd2d3cc1eddbb3]", "[3ac37a5a859aeea7]", "[da9c900a7142bc37]", "20")
+ self.bid64_mul("4", "[d22eaca87ee95446]", "[481abdd75f3e0f3b]", "[f800000000000000]", "28")
+ self.bid64_mul("4", "[d8e0bf668018d8fc]", "[d702a94af9b02adb]", "[7800000000000000]", "28")
+ self.bid64_mul("4", "[dc55a2268eb5ea2a]", "[d6777f6e4e953049]", "[7800000000000000]", "28")
+ self.bid64_mul("4", "-Infinity", "-0", "[7c00000000000000]", "01")
+ self.bid64_mul("4", "-Infinity", "-Infinity", "[7800000000000000]", "00")
+ self.bid64_mul("4", "Infinity", "Infinity", "[7800000000000000]", "00")
+ self.bid64_mul("4", "QNaN", "-Infinity", "[7c00000000000000]", "00")
+ self.bid64_mul("4", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_mul("4", "SNaN", "0", "[7c00000000000000]", "01")
+ self.bid64_mul("4", "SNaN", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_mul("0", "1001001001001001E-383", "999E-18", "1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_mul("1", "1001001001001001E-383", "999E-18", "999999999999999E-398", "0x30")
+ self.bid64_mul("2", "1001001001001001E-383", "999E-18", "1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_mul("3", "1001001001001001E-383", "999E-18", "999999999999999E-398", "0x30")
+ self.bid64_mul("4", "1001001001001001E-383", "999E-18", "1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_mul("0", "1001001001001001E-383", "-999E-18", "-1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_mul("1", "1001001001001001E-383", "-999E-18", "-1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_mul("2", "1001001001001001E-383", "-999E-18", "-999999999999999E-398", "0x30")
+ self.bid64_mul("3", "1001001001001001E-383", "-999E-18", "-999999999999999E-398", "0x30")
+ self.bid64_mul("4", "1001001001001001E-383", "-999E-18", "-1000000000000000E-398", "0x30", underflowBeforeOnly: true)
+ self.bid64_mul("1", "[6000000000000000]", "1E-1", "900719925474099E-398", "30")
+ self.bid64_mul("0", "[6000000000000000]", "1E-1", "900719925474099E-398", "30")
+ self.bid64_mul("1", "123456789877675", "333444", "4116592584397146E+4", "20")
+ self.bid64_mul("0", "12345678987767", "707", "8728395044351269", "00")
+ self.bid64_mul("0", "123456789877700", "4899992", "6049372827464110E+5", "20")
+ self.bid64_mul("0", "111111111111111", "7078", "7864444444444437E+2", "20")
+ }
+
+ private func bid64_mul(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.multiplied(by: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_mul() {
+ self.bid128_mul("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[006a563a06a04c0a,ef3a3c23e2d36044]", "[07dce5d3ce823c76,e4dfa77086711c61]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("0", "[03ac000000000000,0000000000000000]", "[51ab2723d21d4c91,6b5f75f600dcbbe2]", "[25160000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[0aabe0d152074dfb,112a9edce0e067c9]", "[8d13a79968c6b31c,a569c623cd4fc5e6]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("0", "[0d12f8e176524a70,cc5defb99c48f4be]", "[10ed50c9b1ac645e,def7136ee58dd67b]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("0", "[0f15be3dcaa7dfc9,95b386b7eb810dc4]", "[039d2ae0bcc67eee,830d4ecc5e2b577e]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("0", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "-1000101110110110011.1E0", "-972.2639553368233236E0", "[3027df695f2b352e7e7a36cc2c3b9415]", "20")
+ self.bid128_mul("0", "-110011000.010110111E0", "-47356549229256.67778E0", "[302900dc2e26fe4ef5b7b8b43afa0f7a]", "20")
+ self.bid128_mul("0", "[133152f5bc6f288c,89983ce0c603cf36]", "[904132dac1cc5c56,519f7db3adbbbfe8]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("0", "[150a2e0d6728de4e,95595bd43d654036]", "[c47aef17e9919a55,69aaaf503275e8f4]", "[a986df536afc692da7504914a519abd5]", "20")
+ self.bid128_mul("0", "[26493373d8eb14f4,ef1a0b294d6f0687]", "[5ffdffbfe34e8bfd,f3c1551d20d58048]", "[56040000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[2f427234502eb9d5,ef1e471739109d17]", "[88371ed9f0bc3751,ff9136d91da9f3d9]", "[877c4271caf1beb185e97c4d7d084dba]", "20")
+ self.bid128_mul("0", "[31155f3baa6a49f6,8431049cfbdab6c9]", "[5054e9c9e2631401,d383b4964f87e05e]", "[516ca68c2d79d4b93e54601d1a8780b6]", "20")
+ self.bid128_mul("0", "[40e2000000000000,0000000000000000]", "[4db862ab3b7a3a4a,872d344e3263ff63]", "[5e5a0000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[46f8c66750b4255e,e5f50c08bb2dec23]", "[b0739679b9d6a42f,d261a9d744b1adb8]", "[c76ea391e575aec63c18ab5068cb6cbd]", "20")
+ self.bid128_mul("0", "[4a66000000000000,0000000000000000]", "[dd74000000000000,0000000000000000]", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[4db6022c6ac90c12,2f31f9e027c0cb3c]", "[5e5a3663fad59572,b27d2f9994f1ed2e]", "[78000000000000000000000000000000]", "28")
+ self.bid128_mul("0", "[530919f1e09dd59f,9b951f8183574016]", "[169eef000f7a5d77,61d331242cf44747]", "[39aa88ac3b2436ed02af1c1b7c6e9d9f]", "20")
+ self.bid128_mul("0", "[565a000000000000,0000000000000000]", "[d91854823ba2af95,2bb97cf8f2d4c083]", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[57125da9a5b8c9a3,39046f20cf22c152]", "[3f1f0ae34f231d87,4f1ff6ae8d5b03c7]", "[78000000000000000000000000000000]", "28")
+ self.bid128_mul("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[807368e46255ca5d,588cfe473c254563]", "[1f59d74176b6df4a,76db4cfb2788b807]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("0", "[82a4531e6dfac724,7b2af5f3554e7e83]", "[b99d5e676c84d32e,12a6af7cb2f61a3c]", "[0c443b12a8dbc75006fa90a2aa727872]", "20")
+ self.bid128_mul("0", "[8ec7a09091dc32b2,bce36c840a1e3b09]", "[89b040fc053bf28c,09fc7bd2902fe28d]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("0", "[93b156741e396100,9422ad67ad806698]", "[99f7d2c00d96a0ec,38b3e16736b0c3fa]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("0", "[94c7d1f889198a96,842e29d55cb821c0]", "[588efd2cd70a1fde,9da7dc0ddb569cf9]", "[bd58ef46b08263af9b9e88771ea06911]", "20")
+ self.bid128_mul("0", "[95a56f957b5afdf7,8e550ab858bed620]", "[0f8f316b321a1c2d,9c72537f9bed8d45]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("0", "[970c000000000000,0000000000000000]", "[d7d9186750ca2288,2d23d2cb53e46703]", "[3ea40000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[9c727f7fae575afc,5334029e9553a602]", "[a560000000000000,0000000000000000]", "[11920000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[9f8ca44956311f86,4a91e13c61ad8be4]", "[129fd783cd14dbf5,f6d01c8e3d4956e6]", "[822e9d1d5ab22c4d8a4fbfa6c7d1f6c6]", "20")
+ self.bid128_mul("0", "[aaf5c59f39cce565,b3f956ea0bb0026e]", "[cd5fd6c6a1d24cc0,f4a7617f943b3b70]", "[4857b123bb020f02a66c16f22ea8ade6]", "20")
+ self.bid128_mul("0", "[ae7f324e2487cef3,d04046b7603dbc92]", "[7800000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[babfff55ea0a5aa6,ad4249db9b4b1dbc]", "[9008a18408344020,fff7d5d8f197db7a]", "[1a860000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[bdea1d8a96ef0987,ed743f875d54d67f]", "[82a53be053aa524e,95c2f33fc529cb60]", "[1090bd437c2250979afeb07cd0f09dd3]", "20")
+ self.bid128_mul("0", "[d261e79d08c12070,d5c241f3d7f02504]", "[d0ec877840c4d496,3b42037ee877ec03]", "[78000000000000000000000000000000]", "28")
+ self.bid128_mul("0", "[d4c641b3a7a0d36f,7c58e0915a454073]", "[aace000000000000,0000000000000000]", "[4f540000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[d6809c5dae6efdc4,92ee1f5fcc48dc7d]", "[7e003009107549d6,ebea61d422a3f73c]", "[7c003009107549d6ebea61d422a3f73c]", "01")
+ self.bid128_mul("0", "[d6fb2c0a9edd8b13,a888a98ad171d726]", "[7e0015e5379f538d,ac0b835438210c04]", "[7c0015e5379f538dac0b835438210c04]", "01")
+ self.bid128_mul("0", "[ddfefff37ff3ffff,fdf7f9d21892719e]", "[f0896903e59e3315,53444a8769ee3c3a]", "[5ffe0000000000000000000000000000]", "00")
+ self.bid128_mul("0", "[f400db8a14302097,0000010010810001]", "[efc9687ca77e0eaf,ffffffff73fefd7b]", "[5ee60000000000000000000000000000]", "00")
+ self.bid128_mul("0", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "QNaN", "Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("0", "SNaN", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_mul("1", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("1", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("1", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("1", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("1", "[006a563a06a04c0a,ef3a3c23e2d36044]", "[07dce5d3ce823c76,e4dfa77086711c61]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("1", "[03ac000000000000,0000000000000000]", "[51ab2723d21d4c91,6b5f75f600dcbbe2]", "[25160000000000000000000000000000]", "00")
+ self.bid128_mul("1", "[0aabe0d152074dfb,112a9edce0e067c9]", "[8d13a79968c6b31c,a569c623cd4fc5e6]", "[80000000000000000000000000000001]", "30")
+ self.bid128_mul("1", "[0d12f8e176524a70,cc5defb99c48f4be]", "[10ed50c9b1ac645e,def7136ee58dd67b]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("1", "[0f15be3dcaa7dfc9,95b386b7eb810dc4]", "[039d2ae0bcc67eee,830d4ecc5e2b577e]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("1", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("1", "0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("1", "-1000101110110110011.1E0", "-972.2639553368233236E0", "[3027df695f2b352e7e7a36cc2c3b9414]", "20")
+ self.bid128_mul("1", "-110011000.010110111E0", "-47356549229256.67778E0", "[302900dc2e26fe4ef5b7b8b43afa0f79]", "20")
+ self.bid128_mul("1", "[133152f5bc6f288c,89983ce0c603cf36]", "[904132dac1cc5c56,519f7db3adbbbfe8]", "[80000000000000000000000000000001]", "30")
+ self.bid128_mul("1", "[150a2e0d6728de4e,95595bd43d654036]", "[c47aef17e9919a55,69aaaf503275e8f4]", "[a986df536afc692da7504914a519abd5]", "20")
+ self.bid128_mul("1", "[31155f3baa6a49f6,8431049cfbdab6c9]", "[5054e9c9e2631401,d383b4964f87e05e]", "[516ca68c2d79d4b93e54601d1a8780b5]", "20")
+ self.bid128_mul("1", "[40e2000000000000,0000000000000000]", "[4db862ab3b7a3a4a,872d344e3263ff63]", "[5e5a0000000000000000000000000000]", "00")
+ self.bid128_mul("1", "[46f8c66750b4255e,e5f50c08bb2dec23]", "[b0739679b9d6a42f,d261a9d744b1adb8]", "[c76ea391e575aec63c18ab5068cb6cbe]", "20")
+ self.bid128_mul("1", "[4a66000000000000,0000000000000000]", "[dd74000000000000,0000000000000000]", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_mul("1", "[4db6022c6ac90c12,2f31f9e027c0cb3c]", "[5e5a3663fad59572,b27d2f9994f1ed2e]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_mul("1", "[530919f1e09dd59f,9b951f8183574016]", "[169eef000f7a5d77,61d331242cf44747]", "[39aa88ac3b2436ed02af1c1b7c6e9d9f]", "20")
+ self.bid128_mul("1", "[565a000000000000,0000000000000000]", "[d91854823ba2af95,2bb97cf8f2d4c083]", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_mul("1", "[57125da9a5b8c9a3,39046f20cf22c152]", "[3f1f0ae34f231d87,4f1ff6ae8d5b03c7]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_mul("1", "[82a4531e6dfac724,7b2af5f3554e7e83]", "[b99d5e676c84d32e,12a6af7cb2f61a3c]", "[0c443b12a8dbc75006fa90a2aa727872]", "20")
+ self.bid128_mul("1", "[8ec7a09091dc32b2,bce36c840a1e3b09]", "[89b040fc053bf28c,09fc7bd2902fe28d]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("1", "[93b156741e396100,9422ad67ad806698]", "[99f7d2c00d96a0ec,38b3e16736b0c3fa]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("1", "[94c7d1f889198a96,842e29d55cb821c0]", "[588efd2cd70a1fde,9da7dc0ddb569cf9]", "[bd58ef46b08263af9b9e88771ea06911]", "20")
+ self.bid128_mul("1", "[95a56f957b5afdf7,8e550ab858bed620]", "[0f8f316b321a1c2d,9c72537f9bed8d45]", "[80000000000000000000000000000001]", "30")
+ self.bid128_mul("1", "[970c000000000000,0000000000000000]", "[d7d9186750ca2288,2d23d2cb53e46703]", "[3ea40000000000000000000000000000]", "00")
+ self.bid128_mul("1", "[9c727f7fae575afc,5334029e9553a602]", "[a560000000000000,0000000000000000]", "[11920000000000000000000000000000]", "00")
+ self.bid128_mul("1", "[9f8ca44956311f86,4a91e13c61ad8be4]", "[129fd783cd14dbf5,f6d01c8e3d4956e6]", "[822e9d1d5ab22c4d8a4fbfa6c7d1f6c6]", "20")
+ self.bid128_mul("1", "[aaf5c59f39cce565,b3f956ea0bb0026e]", "[cd5fd6c6a1d24cc0,f4a7617f943b3b70]", "[4857b123bb020f02a66c16f22ea8ade6]", "20")
+ self.bid128_mul("1", "[ae7f324e2487cef3,d04046b7603dbc92]", "[7800000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_mul("1", "[bdea1d8a96ef0987,ed743f875d54d67f]", "[82a53be053aa524e,95c2f33fc529cb60]", "[1090bd437c2250979afeb07cd0f09dd3]", "20")
+ self.bid128_mul("1", "[d261e79d08c12070,d5c241f3d7f02504]", "[d0ec877840c4d496,3b42037ee877ec03]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_mul("1", "[d4c641b3a7a0d36f,7c58e0915a454073]", "[aace000000000000,0000000000000000]", "[4f540000000000000000000000000000]", "00")
+ self.bid128_mul("1", "[d6809c5dae6efdc4,92ee1f5fcc48dc7d]", "[7e003009107549d6,ebea61d422a3f73c]", "[7c003009107549d6ebea61d422a3f73c]", "01")
+ self.bid128_mul("1", "[d6fb2c0a9edd8b13,a888a98ad171d726]", "[7e0015e5379f538d,ac0b835438210c04]", "[7c0015e5379f538dac0b835438210c04]", "01")
+ self.bid128_mul("1", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_mul("1", "Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("1", "QNaN", "Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("1", "SNaN", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_mul("2", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000001]", "30")
+ self.bid128_mul("2", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("2", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("2", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("2", "[006a563a06a04c0a,ef3a3c23e2d36044]", "[07dce5d3ce823c76,e4dfa77086711c61]", "[00000000000000000000000000000001]", "30")
+ self.bid128_mul("2", "[03ac000000000000,0000000000000000]", "[51ab2723d21d4c91,6b5f75f600dcbbe2]", "[25160000000000000000000000000000]", "00")
+ self.bid128_mul("2", "[0aabe0d152074dfb,112a9edce0e067c9]", "[8d13a79968c6b31c,a569c623cd4fc5e6]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("2", "[0d12f8e176524a70,cc5defb99c48f4be]", "[10ed50c9b1ac645e,def7136ee58dd67b]", "[00000000000000000000000000000001]", "30")
+ self.bid128_mul("2", "[0f15be3dcaa7dfc9,95b386b7eb810dc4]", "[039d2ae0bcc67eee,830d4ecc5e2b577e]", "[00000000000000000000000000000001]", "30")
+ self.bid128_mul("2", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("2", "0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("2", "-1000101110110110011.1E0", "-972.2639553368233236E0", "[3027df695f2b352e7e7a36cc2c3b9415]", "20")
+ self.bid128_mul("2", "-110011000.010110111E0", "-47356549229256.67778E0", "[302900dc2e26fe4ef5b7b8b43afa0f7a]", "20")
+ self.bid128_mul("2", "[133152f5bc6f288c,89983ce0c603cf36]", "[904132dac1cc5c56,519f7db3adbbbfe8]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("2", "[150a2e0d6728de4e,95595bd43d654036]", "[c47aef17e9919a55,69aaaf503275e8f4]", "[a986df536afc692da7504914a519abd4]", "20")
+ self.bid128_mul("2", "[31155f3baa6a49f6,8431049cfbdab6c9]", "[5054e9c9e2631401,d383b4964f87e05e]", "[516ca68c2d79d4b93e54601d1a8780b6]", "20")
+ self.bid128_mul("2", "[40e2000000000000,0000000000000000]", "[4db862ab3b7a3a4a,872d344e3263ff63]", "[5e5a0000000000000000000000000000]", "00")
+ self.bid128_mul("2", "[46f8c66750b4255e,e5f50c08bb2dec23]", "[b0739679b9d6a42f,d261a9d744b1adb8]", "[c76ea391e575aec63c18ab5068cb6cbd]", "20")
+ self.bid128_mul("2", "[4a66000000000000,0000000000000000]", "[dd74000000000000,0000000000000000]", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_mul("2", "[4db6022c6ac90c12,2f31f9e027c0cb3c]", "[5e5a3663fad59572,b27d2f9994f1ed2e]", "[78000000000000000000000000000000]", "28")
+ self.bid128_mul("2", "[530919f1e09dd59f,9b951f8183574016]", "[169eef000f7a5d77,61d331242cf44747]", "[39aa88ac3b2436ed02af1c1b7c6e9da0]", "20")
+ self.bid128_mul("2", "[565a000000000000,0000000000000000]", "[d91854823ba2af95,2bb97cf8f2d4c083]", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_mul("2", "[57125da9a5b8c9a3,39046f20cf22c152]", "[3f1f0ae34f231d87,4f1ff6ae8d5b03c7]", "[78000000000000000000000000000000]", "28")
+ self.bid128_mul("2", "[82a4531e6dfac724,7b2af5f3554e7e83]", "[b99d5e676c84d32e,12a6af7cb2f61a3c]", "[0c443b12a8dbc75006fa90a2aa727873]", "20")
+ self.bid128_mul("2", "[8ec7a09091dc32b2,bce36c840a1e3b09]", "[89b040fc053bf28c,09fc7bd2902fe28d]", "[00000000000000000000000000000001]", "30")
+ self.bid128_mul("2", "[93b156741e396100,9422ad67ad806698]", "[99f7d2c00d96a0ec,38b3e16736b0c3fa]", "[00000000000000000000000000000001]", "30")
+ self.bid128_mul("2", "[94c7d1f889198a96,842e29d55cb821c0]", "[588efd2cd70a1fde,9da7dc0ddb569cf9]", "[bd58ef46b08263af9b9e88771ea06910]", "20")
+ self.bid128_mul("2", "[95a56f957b5afdf7,8e550ab858bed620]", "[0f8f316b321a1c2d,9c72537f9bed8d45]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("2", "[970c000000000000,0000000000000000]", "[d7d9186750ca2288,2d23d2cb53e46703]", "[3ea40000000000000000000000000000]", "00")
+ self.bid128_mul("2", "[9c727f7fae575afc,5334029e9553a602]", "[a560000000000000,0000000000000000]", "[11920000000000000000000000000000]", "00")
+ self.bid128_mul("2", "[9f8ca44956311f86,4a91e13c61ad8be4]", "[129fd783cd14dbf5,f6d01c8e3d4956e6]", "[822e9d1d5ab22c4d8a4fbfa6c7d1f6c5]", "20")
+ self.bid128_mul("2", "[aaf5c59f39cce565,b3f956ea0bb0026e]", "[cd5fd6c6a1d24cc0,f4a7617f943b3b70]", "[4857b123bb020f02a66c16f22ea8ade7]", "20")
+ self.bid128_mul("2", "[ae7f324e2487cef3,d04046b7603dbc92]", "[7800000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_mul("2", "[bdea1d8a96ef0987,ed743f875d54d67f]", "[82a53be053aa524e,95c2f33fc529cb60]", "[1090bd437c2250979afeb07cd0f09dd4]", "20")
+ self.bid128_mul("2", "[d261e79d08c12070,d5c241f3d7f02504]", "[d0ec877840c4d496,3b42037ee877ec03]", "[78000000000000000000000000000000]", "28")
+ self.bid128_mul("2", "[d4c641b3a7a0d36f,7c58e0915a454073]", "[aace000000000000,0000000000000000]", "[4f540000000000000000000000000000]", "00")
+ self.bid128_mul("2", "[d6809c5dae6efdc4,92ee1f5fcc48dc7d]", "[7e003009107549d6,ebea61d422a3f73c]", "[7c003009107549d6ebea61d422a3f73c]", "01")
+ self.bid128_mul("2", "[d6fb2c0a9edd8b13,a888a98ad171d726]", "[7e0015e5379f538d,ac0b835438210c04]", "[7c0015e5379f538dac0b835438210c04]", "01")
+ self.bid128_mul("2", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_mul("2", "Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("2", "QNaN", "Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("2", "SNaN", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_mul("3", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("3", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("3", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("3", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("3", "[006a563a06a04c0a,ef3a3c23e2d36044]", "[07dce5d3ce823c76,e4dfa77086711c61]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("3", "[03ac000000000000,0000000000000000]", "[51ab2723d21d4c91,6b5f75f600dcbbe2]", "[25160000000000000000000000000000]", "00")
+ self.bid128_mul("3", "[0aabe0d152074dfb,112a9edce0e067c9]", "[8d13a79968c6b31c,a569c623cd4fc5e6]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("3", "[0d12f8e176524a70,cc5defb99c48f4be]", "[10ed50c9b1ac645e,def7136ee58dd67b]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("3", "[0f15be3dcaa7dfc9,95b386b7eb810dc4]", "[039d2ae0bcc67eee,830d4ecc5e2b577e]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("3", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("3", "0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("3", "-1000101110110110011.1E0", "-972.2639553368233236E0", "[3027df695f2b352e7e7a36cc2c3b9414]", "20")
+ self.bid128_mul("3", "-110011000.010110111E0", "-47356549229256.67778E0", "[302900dc2e26fe4ef5b7b8b43afa0f79]", "20")
+ self.bid128_mul("3", "[133152f5bc6f288c,89983ce0c603cf36]", "[904132dac1cc5c56,519f7db3adbbbfe8]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("3", "[150a2e0d6728de4e,95595bd43d654036]", "[c47aef17e9919a55,69aaaf503275e8f4]", "[a986df536afc692da7504914a519abd4]", "20")
+ self.bid128_mul("3", "[31155f3baa6a49f6,8431049cfbdab6c9]", "[5054e9c9e2631401,d383b4964f87e05e]", "[516ca68c2d79d4b93e54601d1a8780b5]", "20")
+ self.bid128_mul("3", "[40e2000000000000,0000000000000000]", "[4db862ab3b7a3a4a,872d344e3263ff63]", "[5e5a0000000000000000000000000000]", "00")
+ self.bid128_mul("3", "[46f8c66750b4255e,e5f50c08bb2dec23]", "[b0739679b9d6a42f,d261a9d744b1adb8]", "[c76ea391e575aec63c18ab5068cb6cbd]", "20")
+ self.bid128_mul("3", "[4a66000000000000,0000000000000000]", "[dd74000000000000,0000000000000000]", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_mul("3", "[4db6022c6ac90c12,2f31f9e027c0cb3c]", "[5e5a3663fad59572,b27d2f9994f1ed2e]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_mul("3", "[530919f1e09dd59f,9b951f8183574016]", "[169eef000f7a5d77,61d331242cf44747]", "[39aa88ac3b2436ed02af1c1b7c6e9d9f]", "20")
+ self.bid128_mul("3", "[565a000000000000,0000000000000000]", "[d91854823ba2af95,2bb97cf8f2d4c083]", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_mul("3", "[57125da9a5b8c9a3,39046f20cf22c152]", "[3f1f0ae34f231d87,4f1ff6ae8d5b03c7]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_mul("3", "[82a4531e6dfac724,7b2af5f3554e7e83]", "[b99d5e676c84d32e,12a6af7cb2f61a3c]", "[0c443b12a8dbc75006fa90a2aa727872]", "20")
+ self.bid128_mul("3", "[8ec7a09091dc32b2,bce36c840a1e3b09]", "[89b040fc053bf28c,09fc7bd2902fe28d]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("3", "[93b156741e396100,9422ad67ad806698]", "[99f7d2c00d96a0ec,38b3e16736b0c3fa]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("3", "[94c7d1f889198a96,842e29d55cb821c0]", "[588efd2cd70a1fde,9da7dc0ddb569cf9]", "[bd58ef46b08263af9b9e88771ea06910]", "20")
+ self.bid128_mul("3", "[95a56f957b5afdf7,8e550ab858bed620]", "[0f8f316b321a1c2d,9c72537f9bed8d45]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("3", "[970c000000000000,0000000000000000]", "[d7d9186750ca2288,2d23d2cb53e46703]", "[3ea40000000000000000000000000000]", "00")
+ self.bid128_mul("3", "[9c727f7fae575afc,5334029e9553a602]", "[a560000000000000,0000000000000000]", "[11920000000000000000000000000000]", "00")
+ self.bid128_mul("3", "[9f8ca44956311f86,4a91e13c61ad8be4]", "[129fd783cd14dbf5,f6d01c8e3d4956e6]", "[822e9d1d5ab22c4d8a4fbfa6c7d1f6c5]", "20")
+ self.bid128_mul("3", "[aaf5c59f39cce565,b3f956ea0bb0026e]", "[cd5fd6c6a1d24cc0,f4a7617f943b3b70]", "[4857b123bb020f02a66c16f22ea8ade6]", "20")
+ self.bid128_mul("3", "[ae7f324e2487cef3,d04046b7603dbc92]", "[7800000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_mul("3", "[bdea1d8a96ef0987,ed743f875d54d67f]", "[82a53be053aa524e,95c2f33fc529cb60]", "[1090bd437c2250979afeb07cd0f09dd3]", "20")
+ self.bid128_mul("3", "[d261e79d08c12070,d5c241f3d7f02504]", "[d0ec877840c4d496,3b42037ee877ec03]", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_mul("3", "[d4c641b3a7a0d36f,7c58e0915a454073]", "[aace000000000000,0000000000000000]", "[4f540000000000000000000000000000]", "00")
+ self.bid128_mul("3", "[d6809c5dae6efdc4,92ee1f5fcc48dc7d]", "[7e003009107549d6,ebea61d422a3f73c]", "[7c003009107549d6ebea61d422a3f73c]", "01")
+ self.bid128_mul("3", "[d6fb2c0a9edd8b13,a888a98ad171d726]", "[7e0015e5379f538d,ac0b835438210c04]", "[7c0015e5379f538dac0b835438210c04]", "01")
+ self.bid128_mul("3", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_mul("3", "Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("3", "QNaN", "Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("3", "SNaN", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_mul("4", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("4", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("4", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("4", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_mul("4", "[006a563a06a04c0a,ef3a3c23e2d36044]", "[07dce5d3ce823c76,e4dfa77086711c61]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("4", "[03ac000000000000,0000000000000000]", "[51ab2723d21d4c91,6b5f75f600dcbbe2]", "[25160000000000000000000000000000]", "00")
+ self.bid128_mul("4", "[0aabe0d152074dfb,112a9edce0e067c9]", "[8d13a79968c6b31c,a569c623cd4fc5e6]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("4", "[0d12f8e176524a70,cc5defb99c48f4be]", "[10ed50c9b1ac645e,def7136ee58dd67b]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("4", "[0f15be3dcaa7dfc9,95b386b7eb810dc4]", "[039d2ae0bcc67eee,830d4ecc5e2b577e]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("4", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("4", "0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("4", "-1000101110110110011.1E0", "-972.2639553368233236E0", "[3027df695f2b352e7e7a36cc2c3b9415]", "20")
+ self.bid128_mul("4", "-110011000.010110111E0", "-47356549229256.67778E0", "[302900dc2e26fe4ef5b7b8b43afa0f7a]", "20")
+ self.bid128_mul("4", "[133152f5bc6f288c,89983ce0c603cf36]", "[904132dac1cc5c56,519f7db3adbbbfe8]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("4", "[150a2e0d6728de4e,95595bd43d654036]", "[c47aef17e9919a55,69aaaf503275e8f4]", "[a986df536afc692da7504914a519abd5]", "20")
+ self.bid128_mul("4", "[31155f3baa6a49f6,8431049cfbdab6c9]", "[5054e9c9e2631401,d383b4964f87e05e]", "[516ca68c2d79d4b93e54601d1a8780b6]", "20")
+ self.bid128_mul("4", "[40e2000000000000,0000000000000000]", "[4db862ab3b7a3a4a,872d344e3263ff63]", "[5e5a0000000000000000000000000000]", "00")
+ self.bid128_mul("4", "[46f8c66750b4255e,e5f50c08bb2dec23]", "[b0739679b9d6a42f,d261a9d744b1adb8]", "[c76ea391e575aec63c18ab5068cb6cbd]", "20")
+ self.bid128_mul("4", "[4a66000000000000,0000000000000000]", "[dd74000000000000,0000000000000000]", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_mul("4", "[4db6022c6ac90c12,2f31f9e027c0cb3c]", "[5e5a3663fad59572,b27d2f9994f1ed2e]", "[78000000000000000000000000000000]", "28")
+ self.bid128_mul("4", "[530919f1e09dd59f,9b951f8183574016]", "[169eef000f7a5d77,61d331242cf44747]", "[39aa88ac3b2436ed02af1c1b7c6e9d9f]", "20")
+ self.bid128_mul("4", "[565a000000000000,0000000000000000]", "[d91854823ba2af95,2bb97cf8f2d4c083]", "[dffe0000000000000000000000000000]", "00")
+ self.bid128_mul("4", "[57125da9a5b8c9a3,39046f20cf22c152]", "[3f1f0ae34f231d87,4f1ff6ae8d5b03c7]", "[78000000000000000000000000000000]", "28")
+ self.bid128_mul("4", "[82a4531e6dfac724,7b2af5f3554e7e83]", "[b99d5e676c84d32e,12a6af7cb2f61a3c]", "[0c443b12a8dbc75006fa90a2aa727872]", "20")
+ self.bid128_mul("4", "[8ec7a09091dc32b2,bce36c840a1e3b09]", "[89b040fc053bf28c,09fc7bd2902fe28d]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("4", "[93b156741e396100,9422ad67ad806698]", "[99f7d2c00d96a0ec,38b3e16736b0c3fa]", "[00000000000000000000000000000000]", "30")
+ self.bid128_mul("4", "[94c7d1f889198a96,842e29d55cb821c0]", "[588efd2cd70a1fde,9da7dc0ddb569cf9]", "[bd58ef46b08263af9b9e88771ea06911]", "20")
+ self.bid128_mul("4", "[95a56f957b5afdf7,8e550ab858bed620]", "[0f8f316b321a1c2d,9c72537f9bed8d45]", "[80000000000000000000000000000000]", "30")
+ self.bid128_mul("4", "[970c000000000000,0000000000000000]", "[d7d9186750ca2288,2d23d2cb53e46703]", "[3ea40000000000000000000000000000]", "00")
+ self.bid128_mul("4", "[9c727f7fae575afc,5334029e9553a602]", "[a560000000000000,0000000000000000]", "[11920000000000000000000000000000]", "00")
+ self.bid128_mul("4", "[9f8ca44956311f86,4a91e13c61ad8be4]", "[129fd783cd14dbf5,f6d01c8e3d4956e6]", "[822e9d1d5ab22c4d8a4fbfa6c7d1f6c6]", "20")
+ self.bid128_mul("4", "[aaf5c59f39cce565,b3f956ea0bb0026e]", "[cd5fd6c6a1d24cc0,f4a7617f943b3b70]", "[4857b123bb020f02a66c16f22ea8ade6]", "20")
+ self.bid128_mul("4", "[ae7f324e2487cef3,d04046b7603dbc92]", "[7800000000000000,0000000000000000]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_mul("4", "[bdea1d8a96ef0987,ed743f875d54d67f]", "[82a53be053aa524e,95c2f33fc529cb60]", "[1090bd437c2250979afeb07cd0f09dd3]", "20")
+ self.bid128_mul("4", "[d261e79d08c12070,d5c241f3d7f02504]", "[d0ec877840c4d496,3b42037ee877ec03]", "[78000000000000000000000000000000]", "28")
+ self.bid128_mul("4", "[d4c641b3a7a0d36f,7c58e0915a454073]", "[aace000000000000,0000000000000000]", "[4f540000000000000000000000000000]", "00")
+ self.bid128_mul("4", "[d6809c5dae6efdc4,92ee1f5fcc48dc7d]", "[7e003009107549d6,ebea61d422a3f73c]", "[7c003009107549d6ebea61d422a3f73c]", "01")
+ self.bid128_mul("4", "[d6fb2c0a9edd8b13,a888a98ad171d726]", "[7e0015e5379f538d,ac0b835438210c04]", "[7c0015e5379f538dac0b835438210c04]", "01")
+ self.bid128_mul("4", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_mul("4", "Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("4", "QNaN", "Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_mul("4", "SNaN", "0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_mul("0", "[0000314dc6448d93,38c15b09ffffffff]", "[2ffe314dc6448d93,38c15b0a00000001]", "+1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_mul("1", "[0000314dc6448d93,38c15b09ffffffff]", "[2ffe314dc6448d93,38c15b0a00000001]", "+999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_mul("2", "[0000314dc6448d93,38c15b09ffffffff]", "[2ffe314dc6448d93,38c15b0a00000001]", "+1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_mul("3", "[0000314dc6448d93,38c15b09ffffffff]", "[2ffe314dc6448d93,38c15b0a00000001]", "+999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_mul("4", "[0000314dc6448d93,38c15b09ffffffff]", "[2ffe314dc6448d93,38c15b0a00000001]", "+1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_mul("0", "1001001001001001001001001001001001E-6143", "999E-36", "1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_mul("1", "1001001001001001001001001001001001E-6143", "999E-36", "999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_mul("2", "1001001001001001001001001001001001E-6143", "999E-36", "1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_mul("3", "1001001001001001001001001001001001E-6143", "999E-36", "999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_mul("4", "1001001001001001001001001001001001E-6143", "999E-36", "1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_mul("0", "1001001001001001001001001001001001E-6143", "-999E-36", "-1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_mul("1", "1001001001001001001001001001001001E-6143", "-999E-36", "-1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ self.bid128_mul("2", "1001001001001001001001001001001001E-6143", "-999E-36", "-999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_mul("3", "1001001001001001001001001001001001E-6143", "-999E-36", "-999999999999999999999999999999999E-6176", "0x30")
+ self.bid128_mul("4", "1001001001001001001001001001001001E-6143", "-999E-36", "-1000000000000000000000000000000000E-6176", "0x30", underflowBeforeOnly: true)
+ }
+
+ private func bid128_mul(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ underflowBeforeOnly: Bool = false,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.multiplied(by: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelNextTests.swift b/Tests/DecimalTests/Intel - generated/IntelNextTests.swift
new file mode 100644
index 0000000..dc8cf46
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelNextTests.swift
@@ -0,0 +1,301 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelNextTests: XCTestCase, IntelMixin {
+
+ func test_bid32_nextdown() {
+ self.bid32_nextdown("0", "[00000001]", "[00000000]", "00")
+ self.bid32_nextdown("0", "[00080001]", "[00080000]", "00")
+ self.bid32_nextdown("0", "1.0", "[6bd8967f]", "00")
+ self.bid32_nextdown("0", "-1.0", "[af8f4241]", "00")
+ self.bid32_nextdown("0", "1.0e-96", "[0001869f]", "00")
+ self.bid32_nextdown("0", "-1.0e-96", "[800186a1]", "00")
+ self.bid32_nextdown("0", "[6098967f]", "[6098967e]", "00")
+ self.bid32_nextdown("0", "[60989680]", "[80000001]", "00")
+ self.bid32_nextdown("0", "[78000000]", "[77f8967f]", "00")
+ self.bid32_nextdown("0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_nextdown("0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_nextdown("0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_nextdown("0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_nextdown("0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_nextdown("0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_nextdown("0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_nextdown("0", "[80000001]", "[80000002]", "00")
+ self.bid32_nextdown("0", "9.999999e-95", "[6018967e]", "00")
+ self.bid32_nextdown("0", "-9.999999e-95", "[808f4240]", "00")
+ self.bid32_nextdown("0", "9.999999e96", "[77f8967e]", "00")
+ self.bid32_nextdown("0", "-9.999999e96", "[f8000000]", "00")
+ self.bid32_nextdown("0", "[f8000000]", "[f8000000]", "00")
+ self.bid32_nextdown("0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_nextdown("0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_nextdown("0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_nextdown("0", "-Infinity", "[f8000000]", "00")
+ }
+
+ private func bid32_nextdown(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.nextDown(status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_nextup() {
+ self.bid32_nextup("0", "[00000001]", "[00000002]", "00")
+ self.bid32_nextup("0", "[00080001]", "[00080002]", "00")
+ self.bid32_nextup("0", "1.0", "[2f8f4241]", "00")
+ self.bid32_nextup("0", "1.0e-96", "[000186a1]", "00")
+ self.bid32_nextup("0", "-1.0e-96", "[8001869f]", "00")
+ self.bid32_nextup("0", "-1.0", "[ebd8967f]", "00")
+ self.bid32_nextup("0", "[6098967f]", "[028f4240]", "00")
+ self.bid32_nextup("0", "[60989680]", "[00000001]", "00")
+ self.bid32_nextup("0", "[78000000]", "[78000000]", "00")
+ self.bid32_nextup("0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_nextup("0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_nextup("0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_nextup("0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_nextup("0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_nextup("0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_nextup("0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_nextup("0", "[80000001]", "[80000000]", "00")
+ self.bid32_nextup("0", "9.999999e-95", "[008f4240]", "00")
+ self.bid32_nextup("0", "-9.999999e-95", "[e018967e]", "00")
+ self.bid32_nextup("0", "9.999999e96", "[78000000]", "00")
+ self.bid32_nextup("0", "-9.999999e96", "[f7f8967e]", "00")
+ self.bid32_nextup("0", "[f8000000]", "[f7f8967f]", "00")
+ self.bid32_nextup("0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_nextup("0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_nextup("0", "[fe000000]", "[fc000000]", "01")
+ }
+
+ private func bid32_nextup(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.nextUp(status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_nextdown() {
+ self.bid64_nextdown("0", "0", "[8000000000000001]", "00")
+ self.bid64_nextdown("0", "[0c1d000000000000]", "[0c1cffffffffffff]", "00")
+ self.bid64_nextdown("0", "[0d75000000000000]", "[0d74ffffffffffff]", "00")
+ self.bid64_nextdown("0", "[27516c0657ef1ffd]", "[27516c0657ef1ffc]", "00")
+ self.bid64_nextdown("0", "[416c58fc2e4160da]", "[416c58fc2e4160d9]", "00")
+ self.bid64_nextdown("0", "[50386843f6afe19e]", "[50386843f6afe19d]", "00")
+ self.bid64_nextdown("0", "[62882f9275e02fc3]", "[62882f9275e02fc2]", "00")
+ self.bid64_nextdown("0", "-9.999999999999999E+384", "[f800000000000000]", "00")
+ self.bid64_nextdown("0", "[c9843e391c357fde]", "[c9843e391c357fdf]", "00")
+ self.bid64_nextdown("0", "[d240000000000000]", "[8000000000000001]", "00")
+ self.bid64_nextdown("0", "[d31486bbc8fec197]", "[d31486bbc8fec198]", "00")
+ self.bid64_nextdown("0", "[e532f9fe51c8a6a8]", "[e532f9fe51c8a6a9]", "00")
+ self.bid64_nextdown("0", "[e5dbffffbfcef7ff]", "[8000000000000001]", "00")
+ self.bid64_nextdown("0", "[f9eeffffffffffff]", "[f800000000000000]", "00")
+ self.bid64_nextdown("0", "[fdede6ef9ff97778]", "[fc01e6ef9ff97778]", "00")
+ self.bid64_nextdown("0", "[ff9fbf177bffff3f]", "[fc00000000000000]", "01")
+ self.bid64_nextdown("0", "Infinity", "[77fb86f26fc0ffff]", "00")
+ self.bid64_nextdown("0", "SNaN", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_nextdown(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.nextDown(status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_nextup() {
+ self.bid64_nextup("0", "-0", "[0000000000000001]", "00")
+ self.bid64_nextup("0", "0", "[0000000000000001]", "00")
+ self.bid64_nextup("0", "[0a8f000000000000]", "[0a8f000000000001]", "00")
+ self.bid64_nextup("0", "[13db565cac306fea]", "[13db565cac306feb]", "00")
+ self.bid64_nextup("0", "[17f282113bf9676e]", "[17f282113bf9676f]", "00")
+ self.bid64_nextup("0", "[31053b4613944f66]", "[31053b4613944f67]", "00")
+ self.bid64_nextup("0", "[69b57008e85ecab0]", "[0000000000000001]", "00")
+ self.bid64_nextup("0", "[7a8fa7f2780e1ad1]", "[7800000000000000]", "00")
+ self.bid64_nextup("0", "[8000000000000001]", "[8000000000000000]", "00")
+ self.bid64_nextup("0", "[8a2dcc9108ec7029]", "[8a2dcc9108ec7028]", "00")
+ self.bid64_nextup("0", "[9400000000000001]", "[e48386f26fc0ffff]", "00")
+ self.bid64_nextup("0", "9.999999999999999E-383", "[00238d7ea4c68000]", "00")
+ self.bid64_nextup("0", "9.999999999999999E+384", "[7800000000000000]", "00")
+ self.bid64_nextup("0", "[b200000000000000]", "[0000000000000001]", "00")
+ self.bid64_nextup("0", "[bd1e154561fbf070]", "[bd1e154561fbf06f]", "00")
+ self.bid64_nextup("0", "[dc3ce68178886155]", "[dc3ce68178886154]", "00")
+ self.bid64_nextup("0", "[de5a53458d01e348]", "[de5a53458d01e347]", "00")
+ self.bid64_nextup("0", "[f15905fd8cfcf93f]", "[f15905fd8cfcf93e]", "00")
+ self.bid64_nextup("0", "[fdeddfdff9ffde5f]", "[fc01dfdff9ffde5f]", "00")
+ self.bid64_nextup("0", "[ff3e59edeff968f2]", "[fc0259edeff968f2]", "01")
+ self.bid64_nextup("0", "[fffffffffeffffff]", "[fc00000000000000]", "01")
+ self.bid64_nextup("0", "SNaN", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_nextup(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.nextUp(status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_nextdown() {
+ self.bid128_nextdown("0", "[0000000000000000,0000000000000001]", "[00000000000000000000000000000000]", "00")
+ self.bid128_nextdown("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62fffffffe]", "00")
+ self.bid128_nextdown("0", "[0001ed09bead87c0378d8e64ffffffff]", "[80000000000000000000000000000001]", "00")
+ self.bid128_nextdown("0", "[0040000000000000,0000000000000002]", "[000009dc5ada82b70b59df01ffffffff]", "00")
+ self.bid128_nextdown("0", "[0080000000000000,0000000000000001]", "[003ded09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_nextdown("0", "-0", "[80000000000000000000000000000001]", "00")
+ self.bid128_nextdown("0", "0", "[80000000000000000000000000000001]", "00")
+ self.bid128_nextdown("0", "[1dc2205f885182d0,5c4d7fcc63056120]", "[1dc143bb532f1c239b06fdfbde35cb3f]", "00")
+ self.bid128_nextdown("0", "[2297188ee5995a16,571813d4cb7ca060]", "[2297188ee5995a16571813d4cb7ca05f]", "00")
+ self.bid128_nextdown("0", "[380a24e29845b5f2,60cd9cf82855437a]", "[380970d9f2b91b77c80821b19354a2c3]", "00")
+ self.bid128_nextdown("0", "[380bcf9425550818,1807cc6de69fcee7]", "[380bcf94255508181807cc6de69fcee6]", "00")
+ self.bid128_nextdown("0", "[6ffff2fd7eefff9f,5801404100000401]", "[80000000000000000000000000000001]", "00")
+ self.bid128_nextdown("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextdown("0", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextdown("0", "[7e00000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_nextdown("0", "[7e000b4bdd5ec3e2,4d174387ac15f085]", "[7c000b4bdd5ec3e24d174387ac15f085]", "01")
+ self.bid128_nextdown("0", "[8bae000000000000,0000000000000000]", "[80000000000000000000000000000001]", "00")
+ self.bid128_nextdown("0", "-9.999999999999999999999999999999999E+6144", "[f8000000000000000000000000000000]", "00")
+ self.bid128_nextdown("0", "[f8fa90e5dcfb4727,540dba68bc2a5f7d]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_nextdown("0", "[fdbffffd9ff7c3ff,7ff3be5e87fe7747]", "[fc000000000000000000000000000000]", "00")
+ self.bid128_nextdown("0", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_nextdown("0", "[fe000574f7d3802a,d93137567a500098]", "[fc000574f7d3802ad93137567a500098]", "01")
+ self.bid128_nextdown("0", "[fe00243684088649,0784a9055dbc2753]", "[fc002436840886490784a9055dbc2753]", "01")
+ self.bid128_nextdown("0", "[ffffbfffffffffff,fa8cdfac7ffefdf7]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_nextdown("0", "Infinity", "[5fffed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_nextdown("0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextdown("0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_nextdown("0", "1", "[2ffded09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_nextdown("0", "[7c00314dc6448d9338c15b0a00000001]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextdown("0", "[7c00314dc6448d9338c15b0a00000001]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextdown("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_nextdown("0", "[7c00314dc6448d9338c15b0a00000001]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextdown("0", "4294967296", "[3010d3c21bcecceda0ffffffffffffff]", "00")
+ self.bid128_nextdown("0", "4294967296", "[3010d3c21bcecceda0ffffffffffffff]", "00")
+ self.bid128_nextdown("0", "4294967295", "[3010d3c21bcdf92b853133125effffff]", "00")
+ self.bid128_nextdown("0", "4294967295", "[3010d3c21bcdf92b853133125effffff]", "00")
+ }
+
+ private func bid128_nextdown(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.nextDown(status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_nextup() {
+ self.bid128_nextup("0", "-0", "[00000000000000000000000000000001]", "00")
+ self.bid128_nextup("0", "0", "[00000000000000000000000000000001]", "00")
+ self.bid128_nextup("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e6300000000]", "00")
+ self.bid128_nextup("0", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000001]", "00")
+ self.bid128_nextup("0", "[0028000000000000,0000008000000000]", "[000002b5e3af16b18800000000000001]", "00")
+ self.bid128_nextup("0", "[1dc2205f885182d0,5c4d7fcc63056120]", "[1dc143bb532f1c239b06fdfbde35cb41]", "00")
+ self.bid128_nextup("0", "[2297188ee5995a16,571813d4cb7ca060]", "[2297188ee5995a16571813d4cb7ca061]", "00")
+ self.bid128_nextup("0", "[380a24e29845b5f2,60cd9cf82855437a]", "[380970d9f2b91b77c80821b19354a2c5]", "00")
+ self.bid128_nextup("0", "[380bcf9425550818,1807cc6de69fcee7]", "[380bcf94255508181807cc6de69fcee8]", "00")
+ self.bid128_nextup("0", "[3aadf9ad6b4fdbf5,f79bfcb6fdeb8fd8]", "[00000000000000000000000000000001]", "00")
+ self.bid128_nextup("0", "[782d2f94d69006ec,2196c0c64c5c5d60]", "[78000000000000000000000000000000]", "00")
+ self.bid128_nextup("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextup("0", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextup("0", "[7e00000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_nextup("0", "[7e000b4bdd5ec3e2,4d174387ac15f085]", "[7c000b4bdd5ec3e24d174387ac15f085]", "01")
+ self.bid128_nextup("0", "[8000000000000000,0000000000000001]", "[80000000000000000000000000000000]", "00")
+ self.bid128_nextup("0", "[8080000000000000,0000000000000001]", "[803ded09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_nextup("0", "[8bae000000000000,0000000000000000]", "[00000000000000000000000000000001]", "00")
+ self.bid128_nextup("0", "9.999999999999999999999999999999999E-6143", "[0002314dc6448d9338c15b0a00000000]", "00")
+ self.bid128_nextup("0", "9.999999999999999999999999999999999E+6144", "[78000000000000000000000000000000]", "00")
+ self.bid128_nextup("0", "[fdffb5e7ffbbaf77,a4dd7e5ad5fed731]", "[fc000000000000000000000000000000]", "00")
+ self.bid128_nextup("0", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_nextup("0", "[fe000574f7d3802a,d93137567a500098]", "[fc000574f7d3802ad93137567a500098]", "01")
+ self.bid128_nextup("0", "[fe00243684088649,0784a9055dbc2753]", "[fc002436840886490784a9055dbc2753]", "01")
+ self.bid128_nextup("0", "[fffffffff77fffff,ffffffffdfffff7b]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_nextup("0", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_nextup("0", "-Infinity", "[dfffed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_nextup("0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextup("0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_nextup("0", "1", "[2ffe314dc6448d9338c15b0a00000001]", "00")
+ self.bid128_nextup("0", "[7c00314dc6448d9338c15b0a00000001]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextup("0", "[7c00314dc6448d9338c15b0a00000001]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextup("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_nextup("0", "[7c00314dc6448d9338c15b0a00000001]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nextup("0", "4294967296", "[3010d3c21bcecceda100000000000001]", "00")
+ self.bid128_nextup("0", "4294967296", "[3010d3c21bcecceda100000000000001]", "00")
+ self.bid128_nextup("0", "4294967295", "[3010d3c21bcdf92b853133125f000001]", "00")
+ self.bid128_nextup("0", "4294967295", "[3010d3c21bcdf92b853133125f000001]", "00")
+ }
+
+ private func bid128_nextup(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.nextUp(status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelOtherTests.swift b/Tests/DecimalTests/Intel - generated/IntelOtherTests.swift
new file mode 100644
index 0000000..17874d8
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelOtherTests.swift
@@ -0,0 +1,505 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelOtherTests: XCTestCase, IntelMixin {
+
+ func test_bid32_copy() {
+ self.bid32_copy("0", "[00000001]", "[00000001]", "00")
+ self.bid32_copy("0", "[00080001]", "[00080001]", "00")
+ self.bid32_copy("0", "1.0", "[3200000a]", "00")
+ self.bid32_copy("0", "-1.0", "[b200000a]", "00")
+ self.bid32_copy("0", "1.0e-96", "[0200000a]", "00")
+ self.bid32_copy("0", "-1.0e-96", "[8200000a]", "00")
+ self.bid32_copy("0", "[6098967f]", "[6098967f]", "00")
+ self.bid32_copy("0", "[60989680]", "[60989680]", "00")
+ self.bid32_copy("0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_copy("0", "[7c8f423f]", "[7c8f423f]", "00")
+ self.bid32_copy("0", "[7c8f4240]", "[7c8f4240]", "00")
+ self.bid32_copy("0", "[7e100000]", "[7e100000]", "00")
+ self.bid32_copy("0", "[7e100100]", "[7e100100]", "00")
+ self.bid32_copy("0", "[7e8f423f]", "[7e8f423f]", "00")
+ self.bid32_copy("0", "[7e8f4240]", "[7e8f4240]", "00")
+ self.bid32_copy("0", "[80000001]", "[80000001]", "00")
+ self.bid32_copy("0", "9.999999e-95", "[6018967f]", "00")
+ self.bid32_copy("0", "-9.999999e-95", "[e018967f]", "00")
+ self.bid32_copy("0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_copy("0", "-9.999999e96", "[f7f8967f]", "00")
+ self.bid32_copy("0", "[fc100000]", "[fc100000]", "00")
+ self.bid32_copy("0", "[fc100100]", "[fc100100]", "00")
+ self.bid32_copy("0", "[fe000000]", "[fe000000]", "00")
+ }
+
+ private func bid32_copy(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+
+ let result = arg0
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_copySign() {
+ self.bid32_copySign("0", "[00000001]", "1.0", "[00000001]", "00")
+ self.bid32_copySign("0", "[00080001]", "1.0", "[00080001]", "00")
+ self.bid32_copySign("0", "1.0", "[00000001]", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[00080001]", "[3200000a]", "00")
+ self.bid32_copySign("0", "-1.0", "1.0", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "1.0", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "-1.0", "[b200000a]", "00")
+ self.bid32_copySign("0", "1.0", "1.0e-96", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "-1.0e-96", "[b200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[6098967f]", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[60989680]", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[7c000000]", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[7c8f423f]", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[7c8f4240]", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[7e100000]", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[7e100100]", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[7e8f423f]", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[7e8f4240]", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[80000001]", "[b200000a]", "00")
+ self.bid32_copySign("0", "1.0", "9.999999e-95", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "-9.999999e-95", "[b200000a]", "00")
+ self.bid32_copySign("0", "1.0", "9.999999e96", "[3200000a]", "00")
+ self.bid32_copySign("0", "1.0", "-9.999999e96", "[b200000a]", "00")
+ self.bid32_copySign("0", "-1.0e-96", "1.0", "[0200000a]", "00")
+ self.bid32_copySign("0", "1.0e-96", "1.0", "[0200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[fc100000]", "[b200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[fc100100]", "[b200000a]", "00")
+ self.bid32_copySign("0", "1.0", "[fe000000]", "[b200000a]", "00")
+ self.bid32_copySign("0", "[6098967f]", "1.0", "[6098967f]", "00")
+ self.bid32_copySign("0", "[60989680]", "1.0", "[60989680]", "00")
+ self.bid32_copySign("0", "[7c000000]", "1.0", "[7c000000]", "00")
+ self.bid32_copySign("0", "[7c8f423f]", "1.0", "[7c8f423f]", "00")
+ self.bid32_copySign("0", "[7c8f423f]", "[7e100000]", "[7c8f423f]", "00")
+ self.bid32_copySign("0", "[7c8f423f]", "Infinity", "[7c8f423f]", "00")
+ self.bid32_copySign("0", "[7c8f4240]", "1.0", "[7c8f4240]", "00")
+ self.bid32_copySign("0", "[7e100000]", "1.0", "[7e100000]", "00")
+ self.bid32_copySign("0", "[7e100100]", "1.0", "[7e100100]", "00")
+ self.bid32_copySign("0", "[7e8f423f]", "1.0", "[7e8f423f]", "00")
+ self.bid32_copySign("0", "[7e8f4240]", "1.0", "[7e8f4240]", "00")
+ self.bid32_copySign("0", "[80000001]", "1.0", "[00000001]", "00")
+ self.bid32_copySign("0", "-9.999999e-95", "1.0", "[6018967f]", "00")
+ self.bid32_copySign("0", "9.999999e-95", "1.0", "[6018967f]", "00")
+ self.bid32_copySign("0", "-9.999999e96", "1.0", "[77f8967f]", "00")
+ self.bid32_copySign("0", "9.999999e96", "1.0", "[77f8967f]", "00")
+ self.bid32_copySign("0", "[fc100000]", "1.0", "[7c100000]", "00")
+ self.bid32_copySign("0", "[fc100100]", "1.0", "[7c100100]", "00")
+ self.bid32_copySign("0", "[fe000000]", "1.0", "[7e000000]", "00")
+ self.bid32_copySign("0", "Infinity", "NaN", "[78000000]", "00")
+ }
+
+ private func bid32_copySign(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+
+ let result = Decimal32(signOf: arg1, magnitudeOf: arg0)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_inf() {
+ self.bid32_inf("0", "0", "[78000000]", "00")
+ }
+
+ private func bid32_inf(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseInt32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Dummy use for 'arg0, rounding, status', so that the compiler does not complain.
+ _ = (arg0, rounding)
+ // Dummy assign 'status', so that the compiler does not complain.
+ status = DecimalStatus()
+
+ let result = Decimal32.infinity
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_nan() {
+ self.bid32_nan("0", "0", "[7c000000]", "00")
+ self.bid32_nan("0", "1", "[7c000001]", "00")
+ self.bid32_nan("0", "NULL", "[7c000000]", "00")
+ }
+
+ private func bid32_nan(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+
+ let payload = arg0.bid & Decimal32.nanPayloadMask
+ let result = Decimal32(nan: payload, signaling: false)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_radix() {
+ self.bid32_radix("0", "[00000000]", "10", "00")
+ self.bid32_radix("0", "1.0", "10", "00")
+ }
+
+ private func bid32_radix(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ // Dummy use for 'arg0', so that the compiler does not complain.
+ _ = arg0
+
+ let result = Decimal32.radix
+ self.assertInt(result, Int(expected), file, line)
+ }
+
+ func test_bid64_copy() {
+ self.bid64_copy("0", "0", "[31c0000000000000]", "00")
+ self.bid64_copy("0", "-0", "[b1c0000000000000]", "00")
+ self.bid64_copy("0", "[0b3b000000000000]", "[0b3b000000000000]", "00")
+ self.bid64_copy("0", "[1bf1eb878bd92f90]", "[1bf1eb878bd92f90]", "00")
+ self.bid64_copy("0", "[2ebc30b0f5d6db60]", "[2ebc30b0f5d6db60]", "00")
+ self.bid64_copy("0", "[39924d7d31b3d9af]", "[39924d7d31b3d9af]", "00")
+ self.bid64_copy("0", "[56a6a32dd0a507da]", "[56a6a32dd0a507da]", "00")
+ self.bid64_copy("0", "[91a5e22e38f2f4eb]", "[91a5e22e38f2f4eb]", "00")
+ self.bid64_copy("0", "[995a75bdbe299504]", "[995a75bdbe299504]", "00")
+ self.bid64_copy("0", "[9a60000000000000]", "[9a60000000000000]", "00")
+ self.bid64_copy("0", "[9d410f21af28e834]", "[9d410f21af28e834]", "00")
+ self.bid64_copy("0", "[bebab2a41b98f61a]", "[bebab2a41b98f61a]", "00")
+ self.bid64_copy("0", "[e118d2eb2d0c4469]", "[e118d2eb2d0c4469]", "00")
+ self.bid64_copy("0", "Infinity", "[7800000000000000]", "00")
+ self.bid64_copy("0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_copy("0", "SNaN", "[7e00000000000000]", "00")
+ }
+
+ private func bid64_copy(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = arg0
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_copySign() {
+ self.bid64_copySign("0", "[0520000000000000]", "[1b127dee53a469e7]", "[0520000000000000]", "00")
+ self.bid64_copySign("0", "-0", "QNaN", "[31c0000000000000]", "00")
+ self.bid64_copySign("0", "0", "QNaN", "[31c0000000000000]", "00")
+ self.bid64_copySign("0", "[2299f520e7149a87]", "[373c94e68d2e26db]", "[2299f520e7149a87]", "00")
+ self.bid64_copySign("0", "[23a8cd8f9e2eac0c]", "[0774b2d5ad18740f]", "[23a8cd8f9e2eac0c]", "00")
+ self.bid64_copySign("0", "[4def6a1c2cfef4d2]", "[db9829abdc4561c6]", "[cdef6a1c2cfef4d2]", "00")
+ self.bid64_copySign("0", "[5b8cc119deccf705]", "[a3c0000000000000]", "[db8cc119deccf705]", "00")
+ self.bid64_copySign("0", "[5ca6fcf6e6e84a72]", "[60c99559452e440e]", "[5ca6fcf6e6e84a72]", "00")
+ self.bid64_copySign("0", "[5fdf3f7ff7bfea7e]", "[00211954a0720132]", "[5fdf3f7ff7bfea7e]", "00")
+ self.bid64_copySign("0", "[8fbca9a831fcc222]", "[114fcafa66dfc639]", "[0fbca9a831fcc222]", "00")
+ self.bid64_copySign("0", "[9b591709bbde6727]", "[a0b602281de43389]", "[9b591709bbde6727]", "00")
+ self.bid64_copySign("0", "[a54ec523c670fa31]", "[05fe0fd2309b9c45]", "[254ec523c670fa31]", "00")
+ self.bid64_copySign("0", "[e0e370966e25bd0d]", "[0da875a1d84f564d]", "[60e370966e25bd0d]", "00")
+ self.bid64_copySign("0", "Infinity", "QNaN", "[7800000000000000]", "00")
+ self.bid64_copySign("0", "QNaN", "-0", "[fc00000000000000]", "00")
+ self.bid64_copySign("0", "QNaN", "Infinity", "[7c00000000000000]", "00")
+ self.bid64_copySign("0", "QNaN", "-Infinity", "[fc00000000000000]", "00")
+ self.bid64_copySign("0", "SNaN", "-0", "[fe00000000000000]", "00")
+ self.bid64_copySign("0", "SNaN", "SNaN", "[7e00000000000000]", "00")
+ }
+
+ private func bid64_copySign(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = Decimal64(signOf: arg1, magnitudeOf: arg0)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_inf() {
+ self.bid64_inf("0", "0", "[7800000000000000]", "00")
+ }
+
+ private func bid64_inf(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseInt32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Dummy use for 'arg0, rounding, status', so that the compiler does not complain.
+ _ = (arg0, rounding)
+ // Dummy assign 'status', so that the compiler does not complain.
+ status = DecimalStatus()
+
+ let result = Decimal64.infinity
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_nan() {
+ self.bid64_nan("0", "0", "[7c00000000000000]", "00")
+ self.bid64_nan("0", "1", "[7c00000000000001]", "00")
+ self.bid64_nan("0", "NULL", "[7c00000000000000]", "00")
+ }
+
+ private func bid64_nan(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let payload = arg0.bid & Decimal64.nanPayloadMask
+ let result = Decimal64(nan: payload, signaling: false)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_radix() {
+ self.bid64_radix("0", "[0000000000000000]", "10", "00")
+ self.bid64_radix("0", "1.0", "10", "00")
+ }
+
+ private func bid64_radix(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ // Dummy use for 'arg0', so that the compiler does not complain.
+ _ = arg0
+
+ let result = Decimal64.radix
+ self.assertInt(result, Int(expected), file, line)
+ }
+
+ func test_bid128_copy() {
+ self.bid128_copy("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_copy("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "00")
+ self.bid128_copy("0", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_copy("0", "[0ab55d45ba5c2626,b47ddbc6aa021c95]", "[0ab55d45ba5c2626b47ddbc6aa021c95]", "00")
+ self.bid128_copy("0", "-0", "[b0400000000000000000000000000000]", "00")
+ self.bid128_copy("0", "[29443c736a0efa8b,a221e17adf1c9fc9]", "[29443c736a0efa8ba221e17adf1c9fc9]", "00")
+ self.bid128_copy("0", "[4794000000000000,0000000000000000]", "[47940000000000000000000000000000]", "00")
+ self.bid128_copy("0", "[7c0009caa3e842ab,b29f72dd820c15dc]", "[7c0009caa3e842abb29f72dd820c15dc]", "00")
+ self.bid128_copy("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "00")
+ self.bid128_copy("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "00")
+ self.bid128_copy("0", "[88e252f2cc9f2c3f,6e07569844058777]", "[88e252f2cc9f2c3f6e07569844058777]", "00")
+ self.bid128_copy("0", "[93a0000000000000,0000000000000000]", "[93a00000000000000000000000000000]", "00")
+ self.bid128_copy("0", "[93cfd2202869ccd5,379d5f0716254290]", "[93cfd2202869ccd5379d5f0716254290]", "00")
+ self.bid128_copy("0", "[ac891470e69092a1,6c8bb59894765b3d]", "[ac891470e69092a16c8bb59894765b3d]", "00")
+ self.bid128_copy("0", "[cb5a000000000000,0000000000000000]", "[cb5a0000000000000000000000000000]", "00")
+ self.bid128_copy("0", "[d3bb2e1467023578,a75d9f49ed048a17]", "[d3bb2e1467023578a75d9f49ed048a17]", "00")
+ self.bid128_copy("0", "[fde7bf7f3dfbafd8,ffffbefbfff7fffe]", "[fde7bf7f3dfbafd8ffffbefbfff7fffe]", "00")
+ self.bid128_copy("0", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_copy("0", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_copy("0", "SNaN", "[7e000000000000000000000000000000]", "00")
+ }
+
+ private func bid128_copy(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = arg0
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_copySign() {
+ self.bid128_copySign("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_copySign("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_copySign("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_copySign("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_copySign("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "00")
+ self.bid128_copySign("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "00")
+ self.bid128_copySign("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "00")
+ self.bid128_copySign("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "00")
+ self.bid128_copySign("0", "-0", "-0", "[b0400000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "-0", "-Infinity", "[b0400000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "[190c000000000000,0000000000000000]", "[b4ee000000000000,0000000000000000]", "[990c0000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "[24e465fbb1822777,803774e51267ccf2]", "[0662000000000000,0000000000000000]", "[24e465fbb1822777803774e51267ccf2]", "00")
+ self.bid128_copySign("0", "[2e88000000000000,0000000000000000]", "[8dbfdda66712e3e7,fd5ff95b33eeb55c]", "[ae880000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "00")
+ self.bid128_copySign("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "00")
+ self.bid128_copySign("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "00")
+ self.bid128_copySign("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "00")
+ self.bid128_copySign("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "00")
+ self.bid128_copySign("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "00")
+ self.bid128_copySign("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "00")
+ self.bid128_copySign("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "00")
+ self.bid128_copySign("0", "[885a000000000000,0000000000000000]", "[55c2000000000000,0000000000000000]", "[085a0000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "[8c78cd86d1408bbf,9c58c58d5f149b91]", "[5f58000000000000,0000000000000000]", "[0c78cd86d1408bbf9c58c58d5f149b91]", "00")
+ self.bid128_copySign("0", "[b7eaa93ab4ec09af,34c13cdee30f13a9]", "[29efeb164e8e506f,4f310fb5b0c9f682]", "[37eaa93ab4ec09af34c13cdee30f13a9]", "00")
+ self.bid128_copySign("0", "[bfcf3787f5c05b56,d1475745c9d0a484]", "[bcb7ddb5c38dac85,9dd421ddbc349c64]", "[bfcf3787f5c05b56d1475745c9d0a484]", "00")
+ self.bid128_copySign("0", "[c92c000000000000,0000000000000000]", "[c64f7d71753ab941,57aac934ceffcb9e]", "[c92c0000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "[cf1cf4acfdffb59c,d1931d42e614aba5]", "[c17d0dc7cab49359,4e57a66491e7955e]", "[cf1cf4acfdffb59cd1931d42e614aba5]", "00")
+ self.bid128_copySign("0", "[d2e4000000000000,0000000000000000]", "[4780757d59815b86,f86c2ca4c77a9fd7]", "[52e40000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "[f69a5c09a7fbd669,b109e139b2b3490f]", "[7ceafd3f733f8d07,4820a5f60c181a30]", "[769a5c09a7fbd669b109e139b2b3490f]", "00")
+ self.bid128_copySign("0", "-Infinity", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "Infinity", "0", "[78000000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "-Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "-Infinity", "QNaN", "[78000000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "Infinity", "QNaN", "[78000000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "QNaN", "SNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_copySign("0", "SNaN", "-Infinity", "[fe000000000000000000000000000000]", "00")
+ }
+
+ private func bid128_copySign(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = Decimal128(signOf: arg1, magnitudeOf: arg0)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_inf() {
+ self.bid128_inf("0", "0", "[78000000000000000000000000000000]", "00")
+ }
+
+ private func bid128_inf(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseInt32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Dummy use for 'arg0, rounding, status', so that the compiler does not complain.
+ _ = (arg0, rounding)
+ // Dummy assign 'status', so that the compiler does not complain.
+ status = DecimalStatus()
+
+ let result = Decimal128.infinity
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_nan() {
+ self.bid128_nan("0", "0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_nan("0", "1", "[7c000000000000000000000000000001]", "00")
+ self.bid128_nan("0", "NULL", "[7c000000000000000000000000000000]", "00")
+ }
+
+ private func bid128_nan(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let payload = arg0.bid & Decimal128.nanPayloadMask
+ let result = Decimal128(nan: payload, signaling: false)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_radix() {
+ self.bid128_radix("0", "1.0", "10", "00")
+ self.bid128_radix("0", "[7c000000000000000000000000000000]", "10", "00")
+ }
+
+ private func bid128_radix(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ // Dummy use for 'arg0', so that the compiler does not complain.
+ _ = arg0
+
+ let result = Decimal128.radix
+ self.assertInt(result, Int(expected), file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelPropertyTests.swift b/Tests/DecimalTests/Intel - generated/IntelPropertyTests.swift
new file mode 100644
index 0000000..c637d5a
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelPropertyTests.swift
@@ -0,0 +1,1416 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelPropertyTests: XCTestCase, IntelMixin {
+
+ func test_bid32_abs() {
+ self.bid32_abs("0", "[00000001]", "[00000001]", "00")
+ self.bid32_abs("0", "[00080001]", "[00080001]", "00")
+ self.bid32_abs("0", "-1.0", "[3200000a]", "00")
+ self.bid32_abs("0", "1.0", "[3200000a]", "00")
+ self.bid32_abs("0", "-1.0e-96", "[0200000a]", "00")
+ self.bid32_abs("0", "1.0e-96", "[0200000a]", "00")
+ self.bid32_abs("0", "[6098967f]", "[6098967f]", "00")
+ self.bid32_abs("0", "[60989680]", "[60989680]", "00")
+ self.bid32_abs("0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_abs("0", "[7c8f423f]", "[7c8f423f]", "00")
+ self.bid32_abs("0", "[7c8f4240]", "[7c8f4240]", "00")
+ self.bid32_abs("0", "[7e100000]", "[7e100000]", "00")
+ self.bid32_abs("0", "[7e100100]", "[7e100100]", "00")
+ self.bid32_abs("0", "[7e8f423f]", "[7e8f423f]", "00")
+ self.bid32_abs("0", "[7e8f4240]", "[7e8f4240]", "00")
+ self.bid32_abs("0", "[80000001]", "[00000001]", "00")
+ self.bid32_abs("0", "-9.999999e-95", "[6018967f]", "00")
+ self.bid32_abs("0", "9.999999e-95", "[6018967f]", "00")
+ self.bid32_abs("0", "-9.999999e96", "[77f8967f]", "00")
+ self.bid32_abs("0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_abs("0", "[fc100000]", "[7c100000]", "00")
+ self.bid32_abs("0", "[fc100100]", "[7c100100]", "00")
+ self.bid32_abs("0", "[fe000000]", "[7e000000]", "00")
+ }
+
+ private func bid32_abs(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+
+ let result = arg0.magnitude
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_class() {
+ self.bid32_class("0", "[00082041]", "7", "00")
+ self.bid32_class("0", "[27000000]", "6", "00")
+ self.bid32_class("0", "[328f423f]", "8", "00")
+ self.bid32_class("0", "[607fffff]", "6", "00")
+ self.bid32_class("0", "[658c3437]", "8", "00")
+ self.bid32_class("0", "[78000000]", "9", "00")
+ self.bid32_class("0", "[78000001]", "9", "00")
+ self.bid32_class("0", "[78001000]", "9", "00")
+ self.bid32_class("0", "[780fffff]", "9", "00")
+ self.bid32_class("0", "[78f00000]", "9", "00")
+ self.bid32_class("0", "[78f00001]", "9", "00")
+ self.bid32_class("0", "[78ffffff]", "9", "00")
+ self.bid32_class("0", "[7c000000]", "1", "00")
+ self.bid32_class("0", "[7c000001]", "1", "00")
+ self.bid32_class("0", "[7c001000]", "1", "00")
+ self.bid32_class("0", "[7c0f4240]", "1", "00")
+ self.bid32_class("0", "[7c0fffff]", "1", "00")
+ self.bid32_class("0", "[7c8f423f]", "1", "00")
+ self.bid32_class("0", "[7c8f4240]", "1", "00")
+ self.bid32_class("0", "[7c8f4241]", "1", "00")
+ self.bid32_class("0", "[7cf00000]", "1", "00")
+ self.bid32_class("0", "[7cf00001]", "1", "00")
+ self.bid32_class("0", "[7cffffff]", "1", "00")
+ self.bid32_class("0", "[7e000000]", "0", "00")
+ self.bid32_class("0", "[7e000001]", "0", "00")
+ self.bid32_class("0", "[7e000100]", "0", "00")
+ self.bid32_class("0", "[7e0f4240]", "0", "00")
+ self.bid32_class("0", "[7e0fffff]", "0", "00")
+ self.bid32_class("0", "[7e8f423f]", "0", "00")
+ self.bid32_class("0", "[7e8f4240]", "0", "00")
+ self.bid32_class("0", "[7e8f4241]", "0", "00")
+ self.bid32_class("0", "[7ef00000]", "0", "00")
+ self.bid32_class("0", "[7ef00001]", "0", "00")
+ self.bid32_class("0", "[7effffff]", "0", "00")
+ self.bid32_class("0", "[8298e75f]", "3", "00")
+ self.bid32_class("0", "[f420b31f]", "3", "00")
+ self.bid32_class("0", "[f71fffff]", "5", "00")
+ self.bid32_class("0", "[f8000000]", "2", "00")
+ self.bid32_class("0", "[f8000001]", "2", "00")
+ self.bid32_class("0", "[f8001000]", "2", "00")
+ self.bid32_class("0", "[f80fffff]", "2", "00")
+ self.bid32_class("0", "[f8f00000]", "2", "00")
+ self.bid32_class("0", "[f8f00001]", "2", "00")
+ self.bid32_class("0", "[f8ffffff]", "2", "00")
+ self.bid32_class("0", "[fc000000]", "1", "00")
+ self.bid32_class("0", "[fc000001]", "1", "00")
+ self.bid32_class("0", "[fc001000]", "1", "00")
+ self.bid32_class("0", "[fc0f4240]", "1", "00")
+ self.bid32_class("0", "[fc0fffff]", "1", "00")
+ self.bid32_class("0", "[fc8f423f]", "1", "00")
+ self.bid32_class("0", "[fc8f4240]", "1", "00")
+ self.bid32_class("0", "[fc8f4241]", "1", "00")
+ self.bid32_class("0", "[fcf00000]", "1", "00")
+ self.bid32_class("0", "[fcf00001]", "1", "00")
+ self.bid32_class("0", "[fcffffff]", "1", "00")
+ self.bid32_class("0", "[fe000000]", "0", "00")
+ self.bid32_class("0", "[fe000001]", "0", "00")
+ self.bid32_class("0", "[fe000100]", "0", "00")
+ self.bid32_class("0", "[fe0fffff]", "0", "00")
+ self.bid32_class("0", "[fe8f423f]", "0", "00")
+ self.bid32_class("0", "[fe8f4240]", "0", "00")
+ self.bid32_class("0", "[fe8f4241]", "0", "00")
+ self.bid32_class("0", "[fef00000]", "0", "00")
+ self.bid32_class("0", "[fef00001]", "0", "00")
+ self.bid32_class("0", "[feffffff]", "0", "00")
+ self.bid32_class("0", "[00000000]", "6", "00")
+ self.bid32_class("0", "[80000000]", "5", "00")
+ self.bid32_class("0", "[00000001]", "7", "00")
+ self.bid32_class("0", "[80000001]", "4", "00")
+ }
+
+ private func bid32_class(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.floatingPointClass
+ self.assertFloatingPointClass(result, expected, file, line)
+ }
+
+ func test_bid32_isCanonical() {
+ self.bid32_isCanonical("0", "[00000001]", "1", "00")
+ self.bid32_isCanonical("0", "[00080001]", "1", "00")
+ self.bid32_isCanonical("0", "-1.0", "1", "00")
+ self.bid32_isCanonical("0", "1.0", "1", "00")
+ self.bid32_isCanonical("0", "-1.0e-96", "1", "00")
+ self.bid32_isCanonical("0", "1.0e-96", "1", "00")
+ self.bid32_isCanonical("0", "[6098967f]", "1", "00")
+ self.bid32_isCanonical("0", "[60989680]", "0", "00")
+ self.bid32_isCanonical("0", "[7c000000]", "1", "00")
+ self.bid32_isCanonical("0", "[7c8f423f]", "0", "00")
+ self.bid32_isCanonical("0", "[7c8f4240]", "0", "00")
+ self.bid32_isCanonical("0", "[7e100000]", "0", "00")
+ self.bid32_isCanonical("0", "[7e100100]", "0", "00")
+ self.bid32_isCanonical("0", "[7e8f423f]", "0", "00")
+ self.bid32_isCanonical("0", "[7e8f4240]", "0", "00")
+ self.bid32_isCanonical("0", "[80000001]", "1", "00")
+ self.bid32_isCanonical("0", "-9.999999e-95", "1", "00")
+ self.bid32_isCanonical("0", "9.999999e-95", "1", "00")
+ self.bid32_isCanonical("0", "-9.999999e96", "1", "00")
+ self.bid32_isCanonical("0", "9.999999e96", "1", "00")
+ self.bid32_isCanonical("0", "[f8000000]", "1", "00")
+ self.bid32_isCanonical("0", "[f8001000]", "0", "00")
+ self.bid32_isCanonical("0", "[f8400000]", "0", "00")
+ self.bid32_isCanonical("0", "[fc100000]", "0", "00")
+ self.bid32_isCanonical("0", "[fc100100]", "0", "00")
+ self.bid32_isCanonical("0", "[fe000000]", "1", "00")
+ self.bid32_isCanonical("0", "[7c0F4240]", "0", "00")
+ }
+
+ private func bid32_isCanonical(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isCanonical
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid32_isFinite() {
+ self.bid32_isFinite("0", "[00000001]", "1", "00")
+ self.bid32_isFinite("0", "[00080001]", "1", "00")
+ self.bid32_isFinite("0", "-1.0", "1", "00")
+ self.bid32_isFinite("0", "1.0", "1", "00")
+ self.bid32_isFinite("0", "-1.0e-96", "1", "00")
+ self.bid32_isFinite("0", "1.0e-96", "1", "00")
+ self.bid32_isFinite("0", "[6098967f]", "1", "00")
+ self.bid32_isFinite("0", "[60989680]", "1", "00")
+ self.bid32_isFinite("0", "[7c000000]", "0", "00")
+ self.bid32_isFinite("0", "[7c8f423f]", "0", "00")
+ self.bid32_isFinite("0", "[7c8f4240]", "0", "00")
+ self.bid32_isFinite("0", "[7e100000]", "0", "00")
+ self.bid32_isFinite("0", "[7e100100]", "0", "00")
+ self.bid32_isFinite("0", "[7e8f423f]", "0", "00")
+ self.bid32_isFinite("0", "[7e8f4240]", "0", "00")
+ self.bid32_isFinite("0", "[80000001]", "1", "00")
+ self.bid32_isFinite("0", "-9.999999e-95", "1", "00")
+ self.bid32_isFinite("0", "9.999999e-95", "1", "00")
+ self.bid32_isFinite("0", "-9.999999e96", "1", "00")
+ self.bid32_isFinite("0", "9.999999e96", "1", "00")
+ self.bid32_isFinite("0", "[fc100000]", "0", "00")
+ self.bid32_isFinite("0", "[fc100100]", "0", "00")
+ self.bid32_isFinite("0", "[fe000000]", "0", "00")
+ }
+
+ private func bid32_isFinite(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isFinite
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid32_isInf() {
+ self.bid32_isInf("0", "[00000001]", "0", "00")
+ self.bid32_isInf("0", "[00080001]", "0", "00")
+ self.bid32_isInf("0", "-1.0", "0", "00")
+ self.bid32_isInf("0", "1.0", "0", "00")
+ self.bid32_isInf("0", "-1.0e-96", "0", "00")
+ self.bid32_isInf("0", "1.0e-96", "0", "00")
+ self.bid32_isInf("0", "[6098967f]", "0", "00")
+ self.bid32_isInf("0", "[60989680]", "0", "00")
+ self.bid32_isInf("0", "[7c000000]", "0", "00")
+ self.bid32_isInf("0", "[7c8f423f]", "0", "00")
+ self.bid32_isInf("0", "[7c8f4240]", "0", "00")
+ self.bid32_isInf("0", "[7e100000]", "0", "00")
+ self.bid32_isInf("0", "[7e100100]", "0", "00")
+ self.bid32_isInf("0", "[7e8f423f]", "0", "00")
+ self.bid32_isInf("0", "[7e8f4240]", "0", "00")
+ self.bid32_isInf("0", "[80000001]", "0", "00")
+ self.bid32_isInf("0", "-9.999999e-95", "0", "00")
+ self.bid32_isInf("0", "9.999999e-95", "0", "00")
+ self.bid32_isInf("0", "-9.999999e96", "0", "00")
+ self.bid32_isInf("0", "9.999999e96", "0", "00")
+ self.bid32_isInf("0", "[fc100000]", "0", "00")
+ self.bid32_isInf("0", "[fc100100]", "0", "00")
+ self.bid32_isInf("0", "[fe000000]", "0", "00")
+ }
+
+ private func bid32_isInf(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isInfinite
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid32_isNaN() {
+ self.bid32_isNaN("0", "[00000001]", "0", "00")
+ self.bid32_isNaN("0", "[00080001]", "0", "00")
+ self.bid32_isNaN("0", "-1.0", "0", "00")
+ self.bid32_isNaN("0", "1.0", "0", "00")
+ self.bid32_isNaN("0", "-1.0e-96", "0", "00")
+ self.bid32_isNaN("0", "1.0e-96", "0", "00")
+ self.bid32_isNaN("0", "[6098967f]", "0", "00")
+ self.bid32_isNaN("0", "[60989680]", "0", "00")
+ self.bid32_isNaN("0", "[7c000000]", "1", "00")
+ self.bid32_isNaN("0", "[7c8f423f]", "1", "00")
+ self.bid32_isNaN("0", "[7c8f4240]", "1", "00")
+ self.bid32_isNaN("0", "[7e100000]", "1", "00")
+ self.bid32_isNaN("0", "[7e100100]", "1", "00")
+ self.bid32_isNaN("0", "[7e8f423f]", "1", "00")
+ self.bid32_isNaN("0", "[7e8f4240]", "1", "00")
+ self.bid32_isNaN("0", "[80000001]", "0", "00")
+ self.bid32_isNaN("0", "-9.999999e-95", "0", "00")
+ self.bid32_isNaN("0", "9.999999e-95", "0", "00")
+ self.bid32_isNaN("0", "-9.999999e96", "0", "00")
+ self.bid32_isNaN("0", "9.999999e96", "0", "00")
+ self.bid32_isNaN("0", "[fc100000]", "1", "00")
+ self.bid32_isNaN("0", "[fc100100]", "1", "00")
+ self.bid32_isNaN("0", "[fe000000]", "1", "00")
+ }
+
+ private func bid32_isNaN(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isNaN
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid32_isNormal() {
+ self.bid32_isNormal("0", "[00000001]", "0", "00")
+ self.bid32_isNormal("0", "[00080001]", "0", "00")
+ self.bid32_isNormal("0", "[029259a6]", "1", "00")
+ self.bid32_isNormal("0", "[02f69ec8]", "1", "00")
+ self.bid32_isNormal("0", "[0a800000]", "0", "00")
+ self.bid32_isNormal("0", "-1.0", "1", "00")
+ self.bid32_isNormal("0", "1.0", "1", "00")
+ self.bid32_isNormal("0", "-1.0e-96", "0", "00")
+ self.bid32_isNormal("0", "1.0e-96", "0", "00")
+ self.bid32_isNormal("0", "[6098967f]", "1", "00")
+ self.bid32_isNormal("0", "[60989680]", "0", "00")
+ self.bid32_isNormal("0", "[7c000000]", "0", "00")
+ self.bid32_isNormal("0", "[7c8f423f]", "0", "00")
+ self.bid32_isNormal("0", "[7c8f4240]", "0", "00")
+ self.bid32_isNormal("0", "[7e100000]", "0", "00")
+ self.bid32_isNormal("0", "[7e100100]", "0", "00")
+ self.bid32_isNormal("0", "[7e8f423f]", "0", "00")
+ self.bid32_isNormal("0", "[7e8f4240]", "0", "00")
+ self.bid32_isNormal("0", "[80000001]", "0", "00")
+ self.bid32_isNormal("0", "[82f69ec3]", "1", "00")
+ self.bid32_isNormal("0", "[82f69ec8]", "1", "00")
+ self.bid32_isNormal("0", "-9.999999e-95", "1", "00")
+ self.bid32_isNormal("0", "9.999999e-95", "1", "00")
+ self.bid32_isNormal("0", "-9.999999e96", "1", "00")
+ self.bid32_isNormal("0", "9.999999e96", "1", "00")
+ self.bid32_isNormal("0", "[fc100000]", "0", "00")
+ self.bid32_isNormal("0", "[fc100100]", "0", "00")
+ self.bid32_isNormal("0", "[fe000000]", "0", "00")
+ }
+
+ private func bid32_isNormal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isNormal
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid32_isSignaling() {
+ self.bid32_isSignaling("0", "[00000001]", "0", "00")
+ self.bid32_isSignaling("0", "[00080001]", "0", "00")
+ self.bid32_isSignaling("0", "-1.0", "0", "00")
+ self.bid32_isSignaling("0", "1.0", "0", "00")
+ self.bid32_isSignaling("0", "-1.0e-96", "0", "00")
+ self.bid32_isSignaling("0", "1.0e-96", "0", "00")
+ self.bid32_isSignaling("0", "[6098967f]", "0", "00")
+ self.bid32_isSignaling("0", "[60989680]", "0", "00")
+ self.bid32_isSignaling("0", "[7c000000]", "0", "00")
+ self.bid32_isSignaling("0", "[7c8f423f]", "0", "00")
+ self.bid32_isSignaling("0", "[7c8f4240]", "0", "00")
+ self.bid32_isSignaling("0", "[7e100000]", "1", "00")
+ self.bid32_isSignaling("0", "[7e100100]", "1", "00")
+ self.bid32_isSignaling("0", "[7e8f423f]", "1", "00")
+ self.bid32_isSignaling("0", "[7e8f4240]", "1", "00")
+ self.bid32_isSignaling("0", "[80000001]", "0", "00")
+ self.bid32_isSignaling("0", "-9.999999e-95", "0", "00")
+ self.bid32_isSignaling("0", "9.999999e-95", "0", "00")
+ self.bid32_isSignaling("0", "-9.999999e96", "0", "00")
+ self.bid32_isSignaling("0", "9.999999e96", "0", "00")
+ self.bid32_isSignaling("0", "[fc100000]", "0", "00")
+ self.bid32_isSignaling("0", "[fc100100]", "0", "00")
+ self.bid32_isSignaling("0", "[fe000000]", "1", "00")
+ }
+
+ private func bid32_isSignaling(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isSignalingNaN
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid32_isSigned() {
+ self.bid32_isSigned("0", "[00000001]", "0", "00")
+ self.bid32_isSigned("0", "[00080001]", "0", "00")
+ self.bid32_isSigned("0", "1.0", "0", "00")
+ self.bid32_isSigned("0", "-1.0", "1", "00")
+ self.bid32_isSigned("0", "1.0e-96", "0", "00")
+ self.bid32_isSigned("0", "-1.0e-96", "1", "00")
+ self.bid32_isSigned("0", "[6098967f]", "0", "00")
+ self.bid32_isSigned("0", "[60989680]", "0", "00")
+ self.bid32_isSigned("0", "[7c000000]", "0", "00")
+ self.bid32_isSigned("0", "[7c8f423f]", "0", "00")
+ self.bid32_isSigned("0", "[7c8f4240]", "0", "00")
+ self.bid32_isSigned("0", "[7e100000]", "0", "00")
+ self.bid32_isSigned("0", "[7e100100]", "0", "00")
+ self.bid32_isSigned("0", "[7e8f423f]", "0", "00")
+ self.bid32_isSigned("0", "[7e8f4240]", "0", "00")
+ self.bid32_isSigned("0", "[80000001]", "1", "00")
+ self.bid32_isSigned("0", "9.999999e-95", "0", "00")
+ self.bid32_isSigned("0", "-9.999999e-95", "1", "00")
+ self.bid32_isSigned("0", "9.999999e96", "0", "00")
+ self.bid32_isSigned("0", "-9.999999e96", "1", "00")
+ self.bid32_isSigned("0", "[fc100000]", "1", "00")
+ self.bid32_isSigned("0", "[fc100100]", "1", "00")
+ self.bid32_isSigned("0", "[fe000000]", "1", "00")
+ }
+
+ private func bid32_isSigned(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.sign
+ self.assertSign(result, expected, file, line)
+ }
+
+ func test_bid32_isSubnormal() {
+ self.bid32_isSubnormal("0", "[00000001]", "1", "00")
+ self.bid32_isSubnormal("0", "[00080001]", "1", "00")
+ self.bid32_isSubnormal("0", "[0292599f]", "0", "00")
+ self.bid32_isSubnormal("0", "[029259a4]", "0", "00")
+ self.bid32_isSubnormal("0", "[029259a6]", "0", "00")
+ self.bid32_isSubnormal("0", "[02f69ec8]", "0", "00")
+ self.bid32_isSubnormal("0", "-1.0", "0", "00")
+ self.bid32_isSubnormal("0", "1.0", "0", "00")
+ self.bid32_isSubnormal("0", "-1.0e-96", "1", "00")
+ self.bid32_isSubnormal("0", "1.0e-96", "1", "00")
+ self.bid32_isSubnormal("0", "[6098967f]", "0", "00")
+ self.bid32_isSubnormal("0", "[60989680]", "0", "00")
+ self.bid32_isSubnormal("0", "[7c000000]", "0", "00")
+ self.bid32_isSubnormal("0", "[7c8f423f]", "0", "00")
+ self.bid32_isSubnormal("0", "[7c8f4240]", "0", "00")
+ self.bid32_isSubnormal("0", "[7e100000]", "0", "00")
+ self.bid32_isSubnormal("0", "[7e100100]", "0", "00")
+ self.bid32_isSubnormal("0", "[7e8f423f]", "0", "00")
+ self.bid32_isSubnormal("0", "[7e8f4240]", "0", "00")
+ self.bid32_isSubnormal("0", "[80000001]", "1", "00")
+ self.bid32_isSubnormal("0", "-9.999999e-95", "0", "00")
+ self.bid32_isSubnormal("0", "9.999999e-95", "0", "00")
+ self.bid32_isSubnormal("0", "-9.999999e96", "0", "00")
+ self.bid32_isSubnormal("0", "9.999999e96", "0", "00")
+ self.bid32_isSubnormal("0", "[bf800000]", "0", "00")
+ self.bid32_isSubnormal("0", "[fc100000]", "0", "00")
+ self.bid32_isSubnormal("0", "[fc100100]", "0", "00")
+ self.bid32_isSubnormal("0", "[fe000000]", "0", "00")
+ }
+
+ private func bid32_isSubnormal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isSubnormal
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid32_isZero() {
+ self.bid32_isZero("0", "[00000001]", "0", "00")
+ self.bid32_isZero("0", "[00080001]", "0", "00")
+ self.bid32_isZero("0", "-1.0", "0", "00")
+ self.bid32_isZero("0", "1.0", "0", "00")
+ self.bid32_isZero("0", "-1.0e-96", "0", "00")
+ self.bid32_isZero("0", "1.0e-96", "0", "00")
+ self.bid32_isZero("0", "[6098967f]", "0", "00")
+ self.bid32_isZero("0", "[60989680]", "1", "00")
+ self.bid32_isZero("0", "[7c000000]", "0", "00")
+ self.bid32_isZero("0", "[7c8f423f]", "0", "00")
+ self.bid32_isZero("0", "[7c8f4240]", "0", "00")
+ self.bid32_isZero("0", "[7e100000]", "0", "00")
+ self.bid32_isZero("0", "[7e100100]", "0", "00")
+ self.bid32_isZero("0", "[7e8f423f]", "0", "00")
+ self.bid32_isZero("0", "[7e8f4240]", "0", "00")
+ self.bid32_isZero("0", "[80000001]", "0", "00")
+ self.bid32_isZero("0", "-9.999999e-95", "0", "00")
+ self.bid32_isZero("0", "9.999999e-95", "0", "00")
+ self.bid32_isZero("0", "-9.999999e96", "0", "00")
+ self.bid32_isZero("0", "9.999999e96", "0", "00")
+ self.bid32_isZero("0", "[fc100000]", "0", "00")
+ self.bid32_isZero("0", "[fc100100]", "0", "00")
+ self.bid32_isZero("0", "[fe000000]", "0", "00")
+ }
+
+ private func bid32_isZero(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isZero
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid64_abs() {
+ self.bid64_abs("0", "-0", "[31c0000000000000]", "00")
+ self.bid64_abs("0", "[0c2f000000000000]", "[0c2f000000000000]", "00")
+ self.bid64_abs("0", "[0eada90166c6c0e3]", "[0eada90166c6c0e3]", "00")
+ self.bid64_abs("0", "[3a52266e9c893405]", "[3a52266e9c893405]", "00")
+ self.bid64_abs("0", "[4820000000000000]", "[4820000000000000]", "00")
+ self.bid64_abs("0", "[4c25e2eef8bedf06]", "[4c25e2eef8bedf06]", "00")
+ self.bid64_abs("0", "[5972aa2ec1ca6dac]", "[5972aa2ec1ca6dac]", "00")
+ self.bid64_abs("0", "[673828de6d87f005]", "[673828de6d87f005]", "00")
+ self.bid64_abs("0", "[6efa41c0e86b768b]", "[6efa41c0e86b768b]", "00")
+ self.bid64_abs("0", "[e15b6196405c5cd9]", "[615b6196405c5cd9]", "00")
+ self.bid64_abs("0", "[edfb16881efb7901]", "[6dfb16881efb7901]", "00")
+ self.bid64_abs("0", "[f4724d2349d55f24]", "[74724d2349d55f24]", "00")
+ self.bid64_abs("0", "Infinity", "[7800000000000000]", "00")
+ self.bid64_abs("0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_abs("0", "SNaN", "[7e00000000000000]", "00")
+ }
+
+ private func bid64_abs(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = arg0.magnitude
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_class() {
+ self.bid64_class("0", "[0000000040100000]", "7", "00")
+ self.bid64_class("0", "-0", "5", "00")
+ self.bid64_class("0", "0", "6", "00")
+ self.bid64_class("0", "[069a36c8f9c09818]", "8", "00")
+ self.bid64_class("0", "[1000000000000000]", "6", "00")
+ self.bid64_class("0", "[18ebf0eb84027607]", "8", "00")
+ self.bid64_class("0", "[2407f5972ed7b76b]", "8", "00")
+ self.bid64_class("0", "[3e2a85a98df1a62e]", "8", "00")
+ self.bid64_class("0", "[72bb05ed5f217403]", "8", "00")
+ self.bid64_class("0", "[73dc9f0cefef8aef]", "6", "00")
+ self.bid64_class("0", "[74a23c8f2229106a]", "8", "00")
+ self.bid64_class("0", "[79fffade57fabf5b]", "9", "00")
+ self.bid64_class("0", "[8c32d9f830270c43]", "3", "00")
+ self.bid64_class("0", "[97c4180a6666476d]", "3", "00")
+ self.bid64_class("0", "[a5247757cbba3ba7]", "3", "00")
+ self.bid64_class("0", "[b61b100697ed86c3]", "3", "00")
+ self.bid64_class("0", "[b6ee2fa4068519a5]", "3", "00")
+ self.bid64_class("0", "[c1e50e97c4a1cb96]", "3", "00")
+ self.bid64_class("0", "[f0c3ae213f30b8d8]", "5", "00")
+ self.bid64_class("0", "[fbfffefffffffeff]", "2", "00")
+ self.bid64_class("0", "[fde7bf7f3d7bafd8]", "1", "00")
+ self.bid64_class("0", "[fffefffffffffeff]", "0", "00")
+ self.bid64_class("0", "-Infinity", "2", "00")
+ self.bid64_class("0", "Infinity", "9", "00")
+ self.bid64_class("0", "QNaN", "1", "00")
+ self.bid64_class("0", "SNaN", "0", "00")
+ self.bid64_class("0", "[8000000040100000]", "4", "00")
+ }
+
+ private func bid64_class(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.floatingPointClass
+ self.assertFloatingPointClass(result, expected, file, line)
+ }
+
+ func test_bid64_isCanonical() {
+ self.bid64_isCanonical("0", "-0", "1", "00")
+ self.bid64_isCanonical("0", "0", "1", "00")
+ self.bid64_isCanonical("0", "0E-83", "1", "00")
+ self.bid64_isCanonical("0", "[2811086419027808]", "1", "00")
+ self.bid64_isCanonical("0", "[292fc3f6cda18948]", "1", "00")
+ self.bid64_isCanonical("0", "[5473faef406b0fcd]", "1", "00")
+ self.bid64_isCanonical("0", "[68e3435409c48c01]", "1", "00")
+ self.bid64_isCanonical("0", "[75ab31f57ab709dd]", "1", "00")
+ self.bid64_isCanonical("0", "[79d06c1de91c42f2]", "0", "00")
+ self.bid64_isCanonical("0", "[7e03f3e1e4c85d17]", "0", "00")
+ self.bid64_isCanonical("0", "[a802003113f8e3a6]", "1", "00")
+ self.bid64_isCanonical("0", "[b58bfd8821f2492a]", "1", "00")
+ self.bid64_isCanonical("0", "[b9a0e346782c737f]", "1", "00")
+ self.bid64_isCanonical("0", "[c1eef72624bcf3e9]", "1", "00")
+ self.bid64_isCanonical("0", "[c22931d2363b48da]", "1", "00")
+ self.bid64_isCanonical("0", "[ddc28edd86a0e0dc]", "1", "00")
+ self.bid64_isCanonical("0", "[e125a4d69af506a9]", "0", "00")
+ self.bid64_isCanonical("0", "[f800000000000000]", "1", "00")
+ self.bid64_isCanonical("0", "[f800000001000000]", "0", "00")
+ self.bid64_isCanonical("0", "[f810000000000000]", "0", "00")
+ self.bid64_isCanonical("0", "[fe00c3d109f0dda6]", "1", "00")
+ self.bid64_isCanonical("0", "[fffffeffffffffff]", "0", "00")
+ self.bid64_isCanonical("0", "-Infinity", "1", "00")
+ self.bid64_isCanonical("0", "Infinity", "1", "00")
+ self.bid64_isCanonical("0", "QNaN", "1", "00")
+ self.bid64_isCanonical("0", "SNaN", "1", "00")
+ }
+
+ private func bid64_isCanonical(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isCanonical
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid64_isFinite() {
+ self.bid64_isFinite("0", "-0", "1", "00")
+ self.bid64_isFinite("0", "0", "1", "00")
+ self.bid64_isFinite("0", "[1608af5cb4593bf4]", "1", "00")
+ self.bid64_isFinite("0", "[2a166dfc84e76865]", "1", "00")
+ self.bid64_isFinite("0", "[54c0000000000000]", "1", "00")
+ self.bid64_isFinite("0", "[85c107f0c960db7e]", "1", "00")
+ self.bid64_isFinite("0", "[99b52df1feac4415]", "1", "00")
+ self.bid64_isFinite("0", "[a5d5d70134196a1a]", "1", "00")
+ self.bid64_isFinite("0", "[af20000000000000]", "1", "00")
+ self.bid64_isFinite("0", "[bec96a9433a05fc7]", "1", "00")
+ self.bid64_isFinite("0", "[c235bf6d4565f8c4]", "1", "00")
+ self.bid64_isFinite("0", "[dc5055f8523440b9]", "1", "00")
+ self.bid64_isFinite("0", "[e8fd289d8852613a]", "1", "00")
+ self.bid64_isFinite("0", "-Infinity", "0", "00")
+ self.bid64_isFinite("0", "QNaN", "0", "00")
+ self.bid64_isFinite("0", "SNaN", "0", "00")
+ }
+
+ private func bid64_isFinite(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isFinite
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid64_isInf() {
+ self.bid64_isInf("0", "-0", "0", "00")
+ self.bid64_isInf("0", "0", "0", "00")
+ self.bid64_isInf("0", "[0e2a000000000000]", "0", "00")
+ self.bid64_isInf("0", "[426bd93b6d5a55ff]", "0", "00")
+ self.bid64_isInf("0", "[452ed318d6be629d]", "0", "00")
+ self.bid64_isInf("0", "[83b9dd4ef6f10188]", "0", "00")
+ self.bid64_isInf("0", "[8b5d556f8b318648]", "0", "00")
+ self.bid64_isInf("0", "[931f66ce5754afaa]", "0", "00")
+ self.bid64_isInf("0", "[9840000000000000]", "0", "00")
+ self.bid64_isInf("0", "[9e2fe80093f4056b]", "0", "00")
+ self.bid64_isInf("0", "[c57708cdda260a7c]", "0", "00")
+ self.bid64_isInf("0", "[dc929d20fa722a17]", "0", "00")
+ self.bid64_isInf("0", "[ddaedd7658bad294]", "0", "00")
+ self.bid64_isInf("0", "Infinity", "1", "00")
+ self.bid64_isInf("0", "QNaN", "0", "00")
+ self.bid64_isInf("0", "SNaN", "0", "00")
+ }
+
+ private func bid64_isInf(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isInfinite
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid64_isNaN() {
+ self.bid64_isNaN("0", "0", "0", "00")
+ self.bid64_isNaN("0", "[2437f7cf38a63db8]", "0", "00")
+ self.bid64_isNaN("0", "[2d8cedba6d10597e]", "0", "00")
+ self.bid64_isNaN("0", "[385ba1cbb8c2bcf9]", "0", "00")
+ self.bid64_isNaN("0", "[6031b795cfce0912]", "0", "00")
+ self.bid64_isNaN("0", "[81c72ce22dc94c5d]", "0", "00")
+ self.bid64_isNaN("0", "[bd673245d19d51eb]", "0", "00")
+ self.bid64_isNaN("0", "[d11909bcbc0ef969]", "0", "00")
+ self.bid64_isNaN("0", "[d6124b4e9e27cf82]", "0", "00")
+ self.bid64_isNaN("0", "[db70d6ecf4cea09e]", "0", "00")
+ self.bid64_isNaN("0", "[e649f50970cd7b28]", "0", "00")
+ self.bid64_isNaN("0", "-Infinity", "0", "00")
+ self.bid64_isNaN("0", "Infinity", "0", "00")
+ self.bid64_isNaN("0", "QNaN", "1", "00")
+ }
+
+ private func bid64_isNaN(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isNaN
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid64_isNormal() {
+ self.bid64_isNormal("0", "0", "0", "00")
+ self.bid64_isNormal("0", "[0000000000000000]", "0", "00")
+ self.bid64_isNormal("0", "[0000000220000880]", "0", "00")
+ self.bid64_isNormal("0", "[0042000880060800]", "1", "00")
+ self.bid64_isNormal("0", "[0f19eda8ce8d0d7c]", "1", "00")
+ self.bid64_isNormal("0", "[1240000000000000]", "0", "00")
+ self.bid64_isNormal("0", "[176ca85dbd0e3ed8]", "1", "00")
+ self.bid64_isNormal("0", "[1b77fad26e664ee7]", "1", "00")
+ self.bid64_isNormal("0", "[20f6514fb338a22c]", "1", "00")
+ self.bid64_isNormal("0", "[56867713cac397e3]", "1", "00")
+ self.bid64_isNormal("0", "[6489214a172fbc88]", "1", "00")
+ self.bid64_isNormal("0", "[6eaba7a5b910bc03]", "0", "00")
+ self.bid64_isNormal("0", "[94206ef326033fa3]", "1", "00")
+ self.bid64_isNormal("0", "[bbdd8c9fffac1f7b]", "1", "00")
+ self.bid64_isNormal("0", "[c3bdd7e750efbf92]", "1", "00")
+ self.bid64_isNormal("0", "[e97982db520f3b12]", "1", "00")
+ self.bid64_isNormal("0", "[f56adf1cb46269c8]", "1", "00")
+ self.bid64_isNormal("0", "[fdeffefd7c367377]", "0", "00")
+ self.bid64_isNormal("0", "-Infinity", "0", "00")
+ self.bid64_isNormal("0", "Infinity", "0", "00")
+ self.bid64_isNormal("0", "QNaN", "0", "00")
+ }
+
+ private func bid64_isNormal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isNormal
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid64_isSignaling() {
+ self.bid64_isSignaling("0", "-0", "0", "00")
+ self.bid64_isSignaling("0", "0", "0", "00")
+ self.bid64_isSignaling("0", "[15ad2a086b455100]", "0", "00")
+ self.bid64_isSignaling("0", "[4781bd5bd459fb0e]", "0", "00")
+ self.bid64_isSignaling("0", "[55dc18613ae0c22c]", "0", "00")
+ self.bid64_isSignaling("0", "[57c9b7b52a49a843]", "0", "00")
+ self.bid64_isSignaling("0", "[7e00000000000000]", "1", "00")
+ self.bid64_isSignaling("0", "[7e00000100000000]", "1", "00")
+ self.bid64_isSignaling("0", "[7e03ffffffffffff]", "1", "00")
+ self.bid64_isSignaling("0", "[92943f53462b5700]", "0", "00")
+ self.bid64_isSignaling("0", "[975027601b33db1d]", "0", "00")
+ self.bid64_isSignaling("0", "[9e80000000000000]", "0", "00")
+ self.bid64_isSignaling("0", "[a920000000000000]", "0", "00")
+ self.bid64_isSignaling("0", "[ac40000000000000]", "0", "00")
+ self.bid64_isSignaling("0", "[bcba996cf19c6391]", "0", "00")
+ self.bid64_isSignaling("0", "[fe00000000000000]", "1", "00")
+ self.bid64_isSignaling("0", "[fef0000000000000]", "1", "00")
+ self.bid64_isSignaling("0", "-Infinity", "0", "00")
+ self.bid64_isSignaling("0", "Infinity", "0", "00")
+ self.bid64_isSignaling("0", "QNaN", "0", "00")
+ }
+
+ private func bid64_isSignaling(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isSignalingNaN
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid64_isSigned() {
+ self.bid64_isSigned("0", "0", "0", "00")
+ self.bid64_isSigned("0", "[0000000000000000]", "0", "00")
+ self.bid64_isSigned("0", "-0", "1", "00")
+ self.bid64_isSigned("0", "[09ef000000000000]", "0", "00")
+ self.bid64_isSigned("0", "[0e651dcf38049e2c]", "0", "00")
+ self.bid64_isSigned("0", "[18f64159f3d889fe]", "0", "00")
+ self.bid64_isSigned("0", "[57c0000000000000]", "0", "00")
+ self.bid64_isSigned("0", "[8550e8a519089ef9]", "1", "00")
+ self.bid64_isSigned("0", "[8fad471547a7465b]", "1", "00")
+ self.bid64_isSigned("0", "[b2e180325c4db3a2]", "1", "00")
+ self.bid64_isSigned("0", "[c0563045a9951137]", "1", "00")
+ self.bid64_isSigned("0", "[c600000000000000]", "1", "00")
+ self.bid64_isSigned("0", "[d5c48a1beee6bc7f]", "1", "00")
+ self.bid64_isSigned("0", "Infinity", "0", "00")
+ self.bid64_isSigned("0", "-Infinity", "1", "00")
+ self.bid64_isSigned("0", "SNaN", "0", "00")
+ }
+
+ private func bid64_isSigned(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.sign
+ self.assertSign(result, expected, file, line)
+ }
+
+ func test_bid64_isSubnormal() {
+ self.bid64_isSubnormal("0", "-0", "0", "00")
+ self.bid64_isSubnormal("0", "[0000000000000000]", "0", "00")
+ self.bid64_isSubnormal("0", "[0000010000200040]", "1", "00")
+ self.bid64_isSubnormal("0", "[01c306b99e03c3d7]", "0", "00")
+ self.bid64_isSubnormal("0", "[0ababb959e64802b]", "0", "00")
+ self.bid64_isSubnormal("0", "[480968bfcbd60383]", "0", "00")
+ self.bid64_isSubnormal("0", "[59b702267f365f3e]", "0", "00")
+ self.bid64_isSubnormal("0", "[6041008000280000]", "0", "00")
+ self.bid64_isSubnormal("0", "[a9e07f5c486a9a54]", "0", "00")
+ self.bid64_isSubnormal("0", "[c1b9fe97c57e987d]", "0", "00")
+ self.bid64_isSubnormal("0", "[ceae0a0b6eb9fdfd]", "0", "00")
+ self.bid64_isSubnormal("0", "[cfab61eda6d26c24]", "0", "00")
+ self.bid64_isSubnormal("0", "[d609b99364c503d0]", "0", "00")
+ self.bid64_isSubnormal("0", "[d612fd2145e1c711]", "0", "00")
+ self.bid64_isSubnormal("0", "[de7b2a9a4ac39479]", "0", "00")
+ self.bid64_isSubnormal("0", "[e33f4bdedd9ec7e9]", "0", "00")
+ self.bid64_isSubnormal("0", "[f04a0d0a231ac1dc]", "0", "00")
+ self.bid64_isSubnormal("0", "[fffffffffffffbff]", "0", "00")
+ self.bid64_isSubnormal("0", "-Infinity", "0", "00")
+ self.bid64_isSubnormal("0", "Infinity", "0", "00")
+ self.bid64_isSubnormal("0", "QNaN", "0", "00")
+ self.bid64_isSubnormal("0", "SNaN", "0", "00")
+ }
+
+ private func bid64_isSubnormal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isSubnormal
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid64_isZero() {
+ self.bid64_isZero("0", "[0040000000400100]", "0", "00")
+ self.bid64_isZero("0", "-0", "1", "00")
+ self.bid64_isZero("0", "0", "1", "00")
+ self.bid64_isZero("0", "[24bc3644801d9a0b]", "0", "00")
+ self.bid64_isZero("0", "[37da90406448ed2e]", "0", "00")
+ self.bid64_isZero("0", "+5296735256349.E0", "0", "00")
+ self.bid64_isZero("0", "[5d19e6a9d4638f11]", "0", "00")
+ self.bid64_isZero("0", "[602386F26FC0FFFE]", "0", "00")
+ self.bid64_isZero("0", "[602386f26fc0ffff]", "0", "00")
+ self.bid64_isZero("0", "[602386f26fc10000]", "1", "00")
+ self.bid64_isZero("0", "[602386f26fc1ffff]", "1", "00")
+ self.bid64_isZero("0", "[6810002824290208]", "0", "00")
+ self.bid64_isZero("0", "[81ffe75f5a52a8ff]", "0", "00")
+ self.bid64_isZero("0", "[833dc51c3126fa2c]", "0", "00")
+ self.bid64_isZero("0", "[930d09c739e98afe]", "0", "00")
+ self.bid64_isZero("0", "[97eb0dbbc170e5b7]", "0", "00")
+ self.bid64_isZero("0", "[a765d9338f33beea]", "0", "00")
+ self.bid64_isZero("0", "[e3d27d04304a8332]", "0", "00")
+ self.bid64_isZero("0", "[ee7b7a44bc674485]", "0", "00")
+ self.bid64_isZero("0", "[ffffffffffffffff]", "0", "00")
+ self.bid64_isZero("0", "-Infinity", "0", "00")
+ self.bid64_isZero("0", "Infinity", "0", "00")
+ self.bid64_isZero("0", "QNaN", "0", "00")
+ self.bid64_isZero("0", "SNaN", "0", "00")
+ }
+
+ private func bid64_isZero(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isZero
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid128_abs() {
+ self.bid128_abs("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_abs("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "00")
+ self.bid128_abs("0", "-0", "[30400000000000000000000000000000]", "00")
+ self.bid128_abs("0", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_abs("0", "[20491165061c532a,535089a5c8f9da39]", "[20491165061c532a535089a5c8f9da39]", "00")
+ self.bid128_abs("0", "[21213a1853ae801d,a7a83cd1c3bfc8cb]", "[21213a1853ae801da7a83cd1c3bfc8cb]", "00")
+ self.bid128_abs("0", "[3577621b973eb09d,7e1681d2fc2fd1a3]", "[3577621b973eb09d7e1681d2fc2fd1a3]", "00")
+ self.bid128_abs("0", "[3d78000000000000,0000000000000000]", "[3d780000000000000000000000000000]", "00")
+ self.bid128_abs("0", "[3f62000000000000,0000000000000000]", "[3f620000000000000000000000000000]", "00")
+ self.bid128_abs("0", "[54f99570af8fbdf8,9052e356786395d7]", "[54f99570af8fbdf89052e356786395d7]", "00")
+ self.bid128_abs("0", "[59170c2b2d753371,caddbeb2aa9e9d19]", "[59170c2b2d753371caddbeb2aa9e9d19]", "00")
+ self.bid128_abs("0", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid128_abs("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "00")
+ self.bid128_abs("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "00")
+ self.bid128_abs("0", "[812c000000000000,0000000000000000]", "[012c0000000000000000000000000000]", "00")
+ self.bid128_abs("0", "[a050785cc4df5814,4acbb40b269da9e3]", "[2050785cc4df58144acbb40b269da9e3]", "00")
+ self.bid128_abs("0", "[bc92000000000000,0000000000000000]", "[3c920000000000000000000000000000]", "00")
+ self.bid128_abs("0", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_abs("0", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_abs("0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_abs("0", "SNaN", "[7e000000000000000000000000000000]", "00")
+ }
+
+ private func bid128_abs(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = arg0.magnitude
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_class() {
+ self.bid128_class("0", "[0001ed09bead87c0378d8e62ffffffff]", "8", "00")
+ self.bid128_class("0", "[0001ed09bead87c0378d8e64ffffffff]", "6", "00")
+ self.bid128_class("0", "[0029314dc6448d9338c15b09ffffffff]", "8", "00")
+ self.bid128_class("0", "[0029314dc6448d9338c15b0a00000000]", "8", "00")
+ self.bid128_class("0", "[002a0000000000000000000000000000]", "6", "00")
+ self.bid128_class("0", "[002a000000000000000009184E729FFF]", "8", "00")
+ self.bid128_class("0", "[002a000000000000000009184E72A000]", "8", "00")
+ self.bid128_class("0", "-0E-15", "5", "00")
+ self.bid128_class("0", "0E-15", "6", "00")
+ self.bid128_class("0", "-0E+368", "5", "00")
+ self.bid128_class("0", "0E+368", "6", "00")
+ self.bid128_class("0", "0E+6110", "6", "00")
+ self.bid128_class("0", "-0E+6111", "5", "00")
+ self.bid128_class("0", "-1.2345678901234568E-6160", "4", "00")
+ self.bid128_class("0", "1.2345678901234568E-6160", "7", "00")
+ self.bid128_class("0", "-1.234567890123456E+383", "3", "00")
+ self.bid128_class("0", "1.234567890123456E+383", "8", "00")
+ self.bid128_class("0", "1E+367", "8", "00")
+ self.bid128_class("0", "-1E+368", "3", "00")
+ self.bid128_class("0", "-1E+6109", "3", "00")
+ self.bid128_class("0", "1E+6109", "8", "00")
+ self.bid128_class("0", "-1E-6176", "4", "00")
+ self.bid128_class("0", "1E-6176", "7", "00")
+ self.bid128_class("0", "[60000000000000000000000000000000]", "6", "00")
+ self.bid128_class("0", "[6003b75d7734cd9e1234567890123456]", "6", "00")
+ self.bid128_class("0", "[69dbb75d7734cd9e1234567890123456]", "6", "00")
+ self.bid128_class("0", "[78000000000000000000000000000000]", "9", "00")
+ self.bid128_class("0", "[78000000000000000000000000000001]", "9", "00")
+ self.bid128_class("0", "[7c000000000000000000000000000000]", "1", "00")
+ self.bid128_class("0", "[7c000000000000000000000000000001]", "1", "00")
+ self.bid128_class("0", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_class("0", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_class("0", "[7e000000000000000000000000000000]", "0", "00")
+ self.bid128_class("0", "[7e000000000000000000000000000001]", "0", "00")
+ self.bid128_class("0", "[e0000000000000000000000000000001]", "5", "00")
+ self.bid128_class("0", "[e003b75d7734cd9e1234567890123456]", "5", "00")
+ self.bid128_class("0", "[e9dbb75d7734cd9e1234567890123456]", "5", "00")
+ self.bid128_class("0", "[f8000000000000000000000000000000]", "2", "00")
+ self.bid128_class("0", "[fc000000000000000000000000000000]", "1", "00")
+ self.bid128_class("0", "[fc000000000000000000000000000001]", "1", "00")
+ self.bid128_class("0", "[fe000000000000000000000000000000]", "0", "00")
+ self.bid128_class("0", "[fe000000000000000000000000000001]", "0", "00")
+ self.bid128_class("0", "-Infinity", "2", "00")
+ self.bid128_class("0", "Infinity", "9", "00")
+ self.bid128_class("0", "[0040000000000000,0000000000000001]", "7", "00")
+ self.bid128_class("0", "[0000314DC6448D93FFFFFFFFFFFFFFFF]", "8", "00")
+ self.bid128_class("0", "[0000314DC6448D93ffffffff00000000]", "8", "00")
+ self.bid128_class("0", "[002A000000000000FFFFFFFFFFFFFFFF]", "8", "00")
+ self.bid128_class("0", "[0028000000000000FFFFFFFFFFFFFFFF]", "8", "00")
+ self.bid128_class("0", "[002A000000000000000000E8D4A51000]", "8", "00")
+ self.bid128_class("0", "[002A000000000000000000E8D4A51001]", "8", "00")
+ self.bid128_class("0", "[002A000000000000000000E8D4A50FFF]", "7", "00")
+ self.bid128_class("0", "[0000314DC6448D9338C15B0A00000001]", "8", "00")
+ self.bid128_class("0", "[0000314DC6448D9338C15B0A00000000]", "8", "00")
+ self.bid128_class("0", "[0000314DC6448D9338C15B09FFFFFFFF]", "7", "00")
+ self.bid128_class("0", "[802A000000000000000000E8D4A51000]", "3", "00")
+ self.bid128_class("0", "[802A000000000000000000E8D4A51001]", "3", "00")
+ self.bid128_class("0", "[802A000000000000000000E8D4A50FFF]", "4", "00")
+ self.bid128_class("0", "[8000314DC6448D9338C15B0A00000001]", "3", "00")
+ self.bid128_class("0", "[8000314DC6448D9338C15B0A00000000]", "3", "00")
+ self.bid128_class("0", "[8000314DC6448D9338C15B09FFFFFFFF]", "4", "00")
+ }
+
+ private func bid128_class(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.floatingPointClass
+ self.assertFloatingPointClass(result, expected, file, line)
+ }
+
+ func test_bid128_isCanonical() {
+ self.bid128_isCanonical("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_isCanonical("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_isCanonical("0", "-0", "1", "00")
+ self.bid128_isCanonical("0", "0", "1", "00")
+ self.bid128_isCanonical("0", "[171dc93a3a721a43,b58542fdde27b555]", "1", "00")
+ self.bid128_isCanonical("0", "[23155fa1ce3b63e7,054decfe550b4e45]", "1", "00")
+ self.bid128_isCanonical("0", "[3a2e024cc9d0b53e,05182193ee969dbd]", "1", "00")
+ self.bid128_isCanonical("0", "[4089bca971360a7d,5aeff4e6bf411c39]", "1", "00")
+ self.bid128_isCanonical("0", "[5dbb7d927efefd2f,f33f8f17fefffdff]", "1", "00")
+ self.bid128_isCanonical("0", "[6085008102161490,ffdffeeff7ffbfff]", "0", "00")
+ self.bid128_isCanonical("0", "[7c0013e87ada0359,835044d68d872147]", "1", "00")
+ self.bid128_isCanonical("0", "[7c00314dc6448d9338c15b09ffffffff]", "1", "00")
+ self.bid128_isCanonical("0", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_isCanonical("0", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_isCanonical("0", "[816d4d6ec11d6302,5b6461da887f2291]", "1", "00")
+ self.bid128_isCanonical("0", "[94ac069b0f87925b,e19b1e3d5736e4b3]", "1", "00")
+ self.bid128_isCanonical("0", "[a1d3aac268268694,dcad90cc10d00253]", "1", "00")
+ self.bid128_isCanonical("0", "[be362574fcd0f5ab,f3a57ff131f5cfdb]", "1", "00")
+ self.bid128_isCanonical("0", "[c9816c991a0af8f1,270fa52aebd97dcc]", "1", "00")
+ self.bid128_isCanonical("0", "[d8c92b6df1c41607,55a964589af7ae58]", "1", "00")
+ self.bid128_isCanonical("0", "[f800000000000000,0000000000000000]", "1", "00")
+ self.bid128_isCanonical("0", "[f800000001000000,0000000000000000]", "0", "00")
+ self.bid128_isCanonical("0", "[f810000000000000,0000000000000000]", "0", "00")
+ self.bid128_isCanonical("0", "[fa79d291c68723e9,bf36ffd4dbefc63f]", "0", "00")
+ self.bid128_isCanonical("0", "[fe00381d0020a920,ff6f3fff9ff3cd7e]", "0", "00")
+ self.bid128_isCanonical("0", "[ffffffffffffffff,1000000000000000]", "0", "00")
+ self.bid128_isCanonical("0", "-Infinity", "1", "00")
+ self.bid128_isCanonical("0", "Infinity", "1", "00")
+ self.bid128_isCanonical("0", "QNaN", "1", "00")
+ self.bid128_isCanonical("0", "SNaN", "1", "00")
+ }
+
+ private func bid128_isCanonical(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isCanonical
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid128_isFinite() {
+ self.bid128_isFinite("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_isFinite("0", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_isFinite("0", "-0", "1", "00")
+ self.bid128_isFinite("0", "0", "1", "00")
+ self.bid128_isFinite("0", "[069ebbde47cecaf6,46be7beaba7b59b2]", "1", "00")
+ self.bid128_isFinite("0", "[0e3676b062a501d1,0b09be374b9584af]", "1", "00")
+ self.bid128_isFinite("0", "[0e89a019d51dfb52,6d3d4f5cec95045e]", "1", "00")
+ self.bid128_isFinite("0", "[2fc2e6f5db986999,e05bf17d978fe530]", "1", "00")
+ self.bid128_isFinite("0", "[38f8c0be302ea603,57e8f20e5933296f]", "1", "00")
+ self.bid128_isFinite("0", "+5296735256349.E0", "1", "00")
+ self.bid128_isFinite("0", "[587840394b1e4028,1e9750988e309c82]", "1", "00")
+ self.bid128_isFinite("0", "[7c0013fea80d776e,4da30049fb4205a6]", "0", "00")
+ self.bid128_isFinite("0", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_isFinite("0", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_isFinite("0", "[a34647a87b5d409d,0b81a865d0b81418]", "1", "00")
+ self.bid128_isFinite("0", "[b1a03c62cd15d1e3,984fecd726ec37f2]", "1", "00")
+ self.bid128_isFinite("0", "[b1cc5b6aee8fe1c3,d7ba66922fd8e8d7]", "1", "00")
+ self.bid128_isFinite("0", "[b596000000000000,0000000000000000]", "1", "00")
+ self.bid128_isFinite("0", "-Infinity", "0", "00")
+ self.bid128_isFinite("0", "Infinity", "0", "00")
+ self.bid128_isFinite("0", "QNaN", "0", "00")
+ self.bid128_isFinite("0", "SNaN", "0", "00")
+ }
+
+ private func bid128_isFinite(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isFinite
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid128_isInf() {
+ self.bid128_isInf("0", "-0", "0", "00")
+ self.bid128_isInf("0", "0", "0", "00")
+ self.bid128_isInf("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_isInf("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_isInf("0", "[0a57e401d7f2f4bf,1a0275159b396b2a]", "0", "00")
+ self.bid128_isInf("0", "[3737d5460658b655,02508fbbc30ff543]", "0", "00")
+ self.bid128_isInf("0", "[5902fa4ce8711964,0b0601200002a041]", "0", "00")
+ self.bid128_isInf("0", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_isInf("0", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_isInf("0", "[8cd4ffbce0ecd8e2,7cba342f141e4231]", "0", "00")
+ self.bid128_isInf("0", "[8dd84ed793886329,1f6560ffe1332f11]", "0", "00")
+ self.bid128_isInf("0", "[935d9c0d11b20b30,9b8116fd41f5394f]", "0", "00")
+ self.bid128_isInf("0", "[94bc000000000000,0000000000000000]", "0", "00")
+ self.bid128_isInf("0", "[9b6e000000000000,0000000000000000]", "0", "00")
+ self.bid128_isInf("0", "[a9a7b8e122afeacc,d57a83774becaedb]", "0", "00")
+ self.bid128_isInf("0", "[b05fafc0064a7b31,37c23276a8be7ed3]", "0", "00")
+ self.bid128_isInf("0", "[be42bd49b8cd1d75,9da62cb45a360a56]", "0", "00")
+ self.bid128_isInf("0", "Infinity", "1", "00")
+ self.bid128_isInf("0", "QNaN", "0", "00")
+ self.bid128_isInf("0", "SNaN", "0", "00")
+ }
+
+ private func bid128_isInf(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isInfinite
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid128_isNaN() {
+ self.bid128_isNaN("0", "-0", "0", "00")
+ self.bid128_isNaN("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_isNaN("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_isNaN("0", "[21e4000000000000,0000000000000000]", "0", "00")
+ self.bid128_isNaN("0", "[2a21676f21ef0401,08e2139097e4f45c]", "0", "00")
+ self.bid128_isNaN("0", "[4194000000000000,0000000000000000]", "0", "00")
+ self.bid128_isNaN("0", "[7800000000000000,0000000000000000]", "0", "00")
+ self.bid128_isNaN("0", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_isNaN("0", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_isNaN("0", "[80ed2b9d1a450027,32c4bfcbb8b15c1b]", "0", "00")
+ self.bid128_isNaN("0", "[95165ea3a5f0caf6,6ba829819d59b6e2]", "0", "00")
+ self.bid128_isNaN("0", "[b0a9c89c8400622c,4764c72807e8a958]", "0", "00")
+ self.bid128_isNaN("0", "[cacbd04a2ef781fd,33f2c1bcab363a74]", "0", "00")
+ self.bid128_isNaN("0", "[da34655b3c4627e7,f91a483887abf433]", "0", "00")
+ self.bid128_isNaN("0", "-Infinity", "0", "00")
+ self.bid128_isNaN("0", "Infinity", "0", "00")
+ self.bid128_isNaN("0", "QNaN", "1", "00")
+ }
+
+ private func bid128_isNaN(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isNaN
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid128_isNormal() {
+ self.bid128_isNormal("0", "-0", "0", "00")
+ self.bid128_isNormal("0", "0", "0", "00")
+ self.bid128_isNormal("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_isNormal("0", "[0000000000000000,ff7eff7efde9eb6f]", "0", "00")
+ self.bid128_isNormal("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_isNormal("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_isNormal("0", "[0040000000000000,0010040010214040]", "1", "00")
+ self.bid128_isNormal("0", "[03f4000000000000,0000000000000000]", "0", "00")
+ self.bid128_isNormal("0", "[0978000000000000,0000000000000000]", "0", "00")
+ self.bid128_isNormal("0", "[1a6a000000000000,0000000000000000]", "0", "00")
+ self.bid128_isNormal("0", "[25d9f797bbcaf773,fffffddf7efcfff2]", "0", "00")
+ self.bid128_isNormal("0", "[35ace066c705811c,32d5b5ac007a79e4]", "1", "00")
+ self.bid128_isNormal("0", "[42ec000000000000,0000000000000000]", "0", "00")
+ self.bid128_isNormal("0", "[49580caebdff5a96,16f246996cb5d380]", "1", "00")
+ self.bid128_isNormal("0", "[4f2e07ed4464f530,f2b733c46e098dfa]", "1", "00")
+ self.bid128_isNormal("0", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_isNormal("0", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_isNormal("0", "[818260b7152cc2d1,e918ef83f6aaf170]", "1", "00")
+ self.bid128_isNormal("0", "[83c9ce9c16120142,5481842016081200]", "1", "00")
+ self.bid128_isNormal("0", "[9d083f98b8a95884,16a840ca162eead0]", "1", "00")
+ self.bid128_isNormal("0", "[9f777faa7f240d67,872dedfcdfe2fa8e]", "1", "00")
+ self.bid128_isNormal("0", "[a9634862e4a48380,9e678b2e978fb31c]", "1", "00")
+ self.bid128_isNormal("0", "[fffdffffffbffff7,fffbf7fcf7f5edf7]", "0", "00")
+ self.bid128_isNormal("0", "-Infinity", "0", "00")
+ self.bid128_isNormal("0", "Infinity", "0", "00")
+ self.bid128_isNormal("0", "QNaN", "0", "00")
+ self.bid128_isNormal("0", "SNaN", "0", "00")
+ }
+
+ private func bid128_isNormal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isNormal
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid128_isSignaling() {
+ self.bid128_isSignaling("0", "-0", "0", "00")
+ self.bid128_isSignaling("0", "0", "0", "00")
+ self.bid128_isSignaling("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_isSignaling("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_isSignaling("0", "[041044f2703fe2d8,fd85989865ebe87b]", "0", "00")
+ self.bid128_isSignaling("0", "[13aa000000000000,0000000000000000]", "0", "00")
+ self.bid128_isSignaling("0", "[3664db3ee13f5c05,0db8edd219ca964c]", "0", "00")
+ self.bid128_isSignaling("0", "[7c00061ccb0a291e,65f549f4dc5e31c4]", "0", "00")
+ self.bid128_isSignaling("0", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_isSignaling("0", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_isSignaling("0", "[82b17468499ab719,19d2bb2c0fb23df0]", "0", "00")
+ self.bid128_isSignaling("0", "[858a2ae1be255ac2,e5c96a599c35a1e2]", "0", "00")
+ self.bid128_isSignaling("0", "[86d4c3261d14ad32,41fa2f426682032a]", "0", "00")
+ self.bid128_isSignaling("0", "[a294a762989a4354,3e8759e80229fe58]", "0", "00")
+ self.bid128_isSignaling("0", "[a3ea377d806481be,43653c96237e2c57]", "0", "00")
+ self.bid128_isSignaling("0", "[fe00000000000000,0000000000000000]", "1", "00")
+ self.bid128_isSignaling("0", "-Infinity", "0", "00")
+ self.bid128_isSignaling("0", "Infinity", "0", "00")
+ self.bid128_isSignaling("0", "SNaN", "1", "00")
+ }
+
+ private func bid128_isSignaling(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isSignalingNaN
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid128_isSigned() {
+ self.bid128_isSigned("0", "0", "0", "00")
+ self.bid128_isSigned("0", "[0d1b4a11dd2b2c2d,4d69c430aae5a351]", "0", "00")
+ self.bid128_isSigned("0", "[1010080201c40408,0200000808020000]", "0", "00")
+ self.bid128_isSigned("0", "[1da7727000019412,043034285964b3e5]", "0", "00")
+ self.bid128_isSigned("0", "[291faf7540e31c98,a37ad09f66370b5c]", "0", "00")
+ self.bid128_isSigned("0", "[32ed04cf2a6dd797,3b5689f82fd08e7b]", "0", "00")
+ self.bid128_isSigned("0", "[4f33bb3daf404b48,2895c9fcdd30262f]", "0", "00")
+ self.bid128_isSigned("0", "[5bd983e54f226f4e,447f2d30f6d2853d]", "0", "00")
+ self.bid128_isSigned("0", "[5d037a9f76ec79f3,169e495eb8705c03]", "0", "00")
+ self.bid128_isSigned("0", "[7800000000000000,0000000000000000]", "0", "00")
+ self.bid128_isSigned("0", "[d4aa000000000000,0000000000000000]", "1", "00")
+ self.bid128_isSigned("0", "[dabc266156593af8,4fd97dc923bc7064]", "1", "00")
+ self.bid128_isSigned("0", "Infinity", "0", "00")
+ self.bid128_isSigned("0", "-Infinity", "1", "00")
+ self.bid128_isSigned("0", "QNaN", "0", "00")
+ }
+
+ private func bid128_isSigned(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.sign
+ self.assertSign(result, expected, file, line)
+ }
+
+ func test_bid128_isSubnormal() {
+ self.bid128_isSubnormal("0", "-0", "0", "00")
+ self.bid128_isSubnormal("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_isSubnormal("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_isSubnormal("0", "[0002000000000000,07a63158fbd6b32f]", "1", "00")
+ self.bid128_isSubnormal("0", "[0008000000000000,0002000000000000]", "1", "00")
+ self.bid128_isSubnormal("0", "[001020104460001d,09012838901080cd]", "0", "00")
+ self.bid128_isSubnormal("0", "[0820000000000000,0000000000000000]", "0", "00")
+ self.bid128_isSubnormal("0", "[1b0b59df37c84a5a,5ca7168a8feedcb1]", "0", "00")
+ self.bid128_isSubnormal("0", "[1b4cc22b9c3e09bd,8a09c2efa4609a41]", "0", "00")
+ self.bid128_isSubnormal("0", "[238f2cfa1d644f69,5cf1e547007227bd]", "0", "00")
+ self.bid128_isSubnormal("0", "[247e394a27efd967,381010001400081c]", "0", "00")
+ self.bid128_isSubnormal("0", "[264a000000000000,0000000000000000]", "0", "00")
+ self.bid128_isSubnormal("0", "[402afbe261e6cd8a,65a1629af55f94be]", "0", "00")
+ self.bid128_isSubnormal("0", "[4636000000000000,0000000000000000]", "0", "00")
+ self.bid128_isSubnormal("0", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_isSubnormal("0", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_isSubnormal("0", "[8000001400000004,ffffffffffffffef]", "1", "00")
+ self.bid128_isSubnormal("0", "[92a9700a58e271c4,5f52b6c080f12c07]", "0", "00")
+ self.bid128_isSubnormal("0", "[a83e000000000000,0000000000000000]", "0", "00")
+ self.bid128_isSubnormal("0", "[befbefbfaf5bdfdd,addfe727ecde7d3b]", "0", "00")
+ self.bid128_isSubnormal("0", "[d754ce3bc22f555f,79c8815335535001]", "0", "00")
+ self.bid128_isSubnormal("0", "[d900000000000000,0000000000000000]", "0", "00")
+ self.bid128_isSubnormal("0", "[fdfdf7ff7ffdf7bf,ffffefffffffffaf]", "0", "00")
+ self.bid128_isSubnormal("0", "-Infinity", "0", "00")
+ self.bid128_isSubnormal("0", "Infinity", "0", "00")
+ self.bid128_isSubnormal("0", "QNaN", "0", "00")
+ self.bid128_isSubnormal("0", "SNaN", "0", "00")
+ }
+
+ private func bid128_isSubnormal(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isSubnormal
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid128_isZero() {
+ self.bid128_isZero("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_isZero("0", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_isZero("0", "-0", "1", "00")
+ self.bid128_isZero("0", "0", "1", "00")
+ self.bid128_isZero("0", "[0ee8000000000000,0000000000000000]", "1", "00")
+ self.bid128_isZero("0", "[13ee9ca2e80fd3a8,07c0d8414c535392]", "0", "00")
+ self.bid128_isZero("0", "[31de9b1749a9038c,04b0b67e429838c2]", "0", "00")
+ self.bid128_isZero("0", "[3b6ffefffd79ddfd,3304651402b7cb82]", "1", "00")
+ self.bid128_isZero("0", "[789b88be70d10384,ffffffffffffffff]", "0", "00")
+ self.bid128_isZero("0", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_isZero("0", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_isZero("0", "[7e0028d5f55d1b90,cd0683a16d4f6440]", "0", "00")
+ self.bid128_isZero("0", "[892747418097592c,11a5167c09ca2055]", "0", "00")
+ self.bid128_isZero("0", "[8aa0c8dafc695d02,42fb6071b7550296]", "0", "00")
+ self.bid128_isZero("0", "[9ee35adc537f2993,21571042d581776a]", "0", "00")
+ self.bid128_isZero("0", "[af52000000000000,0000000000000000]", "1", "00")
+ self.bid128_isZero("0", "[b37ef809e2d1f6a6,2badece51a0eddd9]", "0", "00")
+ self.bid128_isZero("0", "[b8249c80a0002a5e,9fc635c5912fb958]", "0", "00")
+ self.bid128_isZero("0", "[d8e96a50ff859c40,1b0d91d7b39d89c8]", "0", "00")
+ self.bid128_isZero("0", "-Infinity", "0", "00")
+ self.bid128_isZero("0", "Infinity", "0", "00")
+ self.bid128_isZero("0", "QNaN", "0", "00")
+ self.bid128_isZero("0", "SNaN", "0", "00")
+ }
+
+ private func bid128_isZero(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isZero
+ self.assertBool(result, expected, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelQuantumTests.swift b/Tests/DecimalTests/Intel - generated/IntelQuantumTests.swift
new file mode 100644
index 0000000..694a0bd
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelQuantumTests.swift
@@ -0,0 +1,575 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelQuantumTests: XCTestCase, IntelMixin {
+
+ func test_bid32_quantize() {
+ self.bid32_quantize("0", "[00000001]", "1.0", "[32000000]", "20")
+ self.bid32_quantize("0", "[00080001]", "1.0", "[32000000]", "20")
+ self.bid32_quantize("0", "0.05", "1.0", "[32000000]", "20")
+ self.bid32_quantize("0", "1.0", "[00000001]", "[7c000000]", "01")
+ self.bid32_quantize("0", "1.0", "[00080001]", "[7c000000]", "01")
+ self.bid32_quantize("0", "1.0", "-1.0", "[3200000a]", "00")
+ self.bid32_quantize("0", "1.0", "1.0", "[3200000a]", "00")
+ self.bid32_quantize("0", "-1.0", "1.0", "[b200000a]", "00")
+ self.bid32_quantize("0", "1.0", "-1.0e-96", "[7c000000]", "01")
+ self.bid32_quantize("0", "1.0", "1.0e-96", "[7c000000]", "01")
+ self.bid32_quantize("0", "1.0", "[6098967f]", "[7c000000]", "01")
+ self.bid32_quantize("0", "1.0", "[60989680]", "[7c000000]", "01")
+ self.bid32_quantize("0", "1.0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_quantize("0", "1.0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_quantize("0", "1.0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_quantize("0", "1.0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_quantize("0", "1.0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_quantize("0", "1.0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_quantize("0", "1.0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_quantize("0", "1.0", "[80000001]", "[7c000000]", "01")
+ self.bid32_quantize("0", "1.0", "-9.999999e-95", "[7c000000]", "01")
+ self.bid32_quantize("0", "1.0", "9.999999e-95", "[7c000000]", "01")
+ self.bid32_quantize("0", "1.0", "-9.999999e96", "[5f800000]", "20")
+ self.bid32_quantize("0", "1.0", "9.999999e96", "[5f800000]", "20")
+ self.bid32_quantize("0", "1.0e-96", "1.0", "[32000000]", "20")
+ self.bid32_quantize("0", "-1.0e-96", "1.0", "[b2000000]", "20")
+ self.bid32_quantize("0", "1.0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_quantize("0", "1.0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_quantize("0", "1.0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_quantize("0", "[6098967f]", "1.0", "[32000000]", "20")
+ self.bid32_quantize("0", "[60989680]", "1.0", "[32000000]", "00")
+ self.bid32_quantize("0", "[7c000000]", "1.0", "[7c000000]", "00")
+ self.bid32_quantize("0", "[7c8f423f]", "1.0", "[7c0f423f]", "00")
+ self.bid32_quantize("0", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_quantize("0", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_quantize("0", "[7c8f4240]", "1.0", "[7c000000]", "00")
+ self.bid32_quantize("0", "[7e0f423f]", "0E+89", "[7c0f423f]", "01")
+ self.bid32_quantize("0", "[7e100000]", "1.0", "[7c000000]", "01")
+ self.bid32_quantize("0", "[7e100100]", "1.0", "[7c000100]", "01")
+ self.bid32_quantize("0", "[7e8f423f]", "1.0", "[7c0f423f]", "01")
+ self.bid32_quantize("0", "[7e8f4240]", "1.0", "[7c000000]", "01")
+ self.bid32_quantize("0", "[80000001]", "1.0", "[b2000000]", "20")
+ self.bid32_quantize("0", "9.999999e-95", "1.0", "[32000000]", "20")
+ self.bid32_quantize("0", "-9.999999e-95", "1.0", "[b2000000]", "20")
+ self.bid32_quantize("0", "-9.999999e96", "1.0", "[7c000000]", "01")
+ self.bid32_quantize("0", "9.999999e96", "1.0", "[7c000000]", "01")
+ self.bid32_quantize("0", "[f8000000]", "[b5000000]", "[7c000000]", "01")
+ self.bid32_quantize("0", "[fc100000]", "1.0", "[fc000000]", "00")
+ self.bid32_quantize("0", "[fc100100]", "1.0", "[fc000100]", "00")
+ self.bid32_quantize("0", "[fe000000]", "1.0", "[fc000000]", "01")
+ self.bid32_quantize("0", "[fe0dffbf]", "[f8000000]", "[fc0dffbf]", "01")
+ self.bid32_quantize("0", "Infinity", "0E+89", "[7c000000]", "01")
+ self.bid32_quantize("0", "Infinity", "Infinity", "[78000000]", "00")
+ self.bid32_quantize("0", "Infinity", "NaN", "[7c000000]", "00")
+ self.bid32_quantize("1", "[9304bb8a]", "[25d5e160]", "[a5800001]", "20")
+ self.bid32_quantize("2", "1E-100", "0E+89", "[5f000001]", "20")
+ self.bid32_quantize("2", "-1E-101", "0E-100", "[80800000]", "20")
+ self.bid32_quantize("2", "-1E-96", "0E+89", "[df000000]", "20")
+ self.bid32_quantize("2", "[9304bb8a]", "[25d5e160]", "[a5800000]", "20")
+ self.bid32_quantize("2", "[98876a97]", "[e66dfaac]", "[998012fc]", "20")
+ self.bid32_quantize("0", "1", "inf", "[7c000000]", "01")
+ }
+
+ private func bid32_quantize(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.quantized(to: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_quantum() {
+ self.bid32_quantum("0", "[35803039]", "[35800001]", "00")
+ self.bid32_quantum("0", "[B5803039]", "[35800001]", "00")
+ self.bid32_quantum("0", "[2D803039]", "[2D800001]", "00")
+ self.bid32_quantum("0", "[AD803039]", "[2D800001]", "00")
+ self.bid32_quantum("0", "[30003039]", "[30000001]", "00")
+ self.bid32_quantum("0", "[B0003039]", "[30000001]", "00")
+ self.bid32_quantum("0", "[3201E23A]", "[32000001]", "00")
+ self.bid32_quantum("0", "[5F8F4240]", "[5F800001]", "00")
+ self.bid32_quantum("0", "[DF8F4240]", "[5F800001]", "00")
+ self.bid32_quantum("0", "[32800000]", "[32800001]", "00")
+ self.bid32_quantum("0", "[B2800000]", "[32800001]", "00")
+ self.bid32_quantum("0", "[00000001]", "[00000001]", "00")
+ self.bid32_quantum("0", "[80000001]", "[00000001]", "00")
+ self.bid32_quantum("0", "[00000000]", "[00000001]", "00")
+ self.bid32_quantum("0", "[78000000]", "[78000000]", "00")
+ }
+
+ private func bid32_quantum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+
+ let result = arg0.quantum
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_sameQuantum() {
+ self.bid32_sameQuantum("0", "[00000001]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[00080001]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[08005235]", "[f8000000]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[00000001]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[00080001]", "0", "00")
+ self.bid32_sameQuantum("0", "-1.0", "1.0", "1", "00")
+ self.bid32_sameQuantum("0", "1.0", "-1.0", "1", "00")
+ self.bid32_sameQuantum("0", "1.0", "1.0", "1", "00")
+ self.bid32_sameQuantum("0", "1.0", "-1.0e-96", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "1.0e-96", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[6098967f]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[60989680]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[7c000000]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[7c8f423f]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[7c8f4240]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[7e100000]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[7e100100]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[7e8f423f]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[7e8f4240]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[80000001]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "-9.999999e-95", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "9.999999e-95", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "-9.999999e96", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "9.999999e96", "0", "00")
+ self.bid32_sameQuantum("0", "-1.0e-96", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "1.0e-96", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[fc100000]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[fc100100]", "0", "00")
+ self.bid32_sameQuantum("0", "1.0", "[fe000000]", "0", "00")
+ self.bid32_sameQuantum("0", "[6098967f]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[60989680]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[7c000000]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[7c8f423f]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[7c8f423f]", "[7e100000]", "1", "00")
+ self.bid32_sameQuantum("0", "[7c8f423f]", "Infinity", "0", "00")
+ self.bid32_sameQuantum("0", "[7c8f4240]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[7e100000]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[7e100100]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[7e8f423f]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[7e8f4240]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[80000001]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "-9.999999e-95", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "9.999999e-95", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "-9.999999e96", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "9.999999e96", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[fc100000]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[fc100100]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "[fe000000]", "1.0", "0", "00")
+ self.bid32_sameQuantum("0", "Infinity", "NaN", "0", "00")
+ self.bid32_sameQuantum("0", "Inf", "Inf", "1", "00")
+ }
+
+ private func bid32_sameQuantum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.sameQuantum(as: arg1)
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid64_quantize() {
+ self.bid64_quantize("0", "[0010000000008840]", "[0008200000000000]", "[0010000000008840]", "00")
+ self.bid64_quantize("0", "+0.100000000000000E0", "0", "[31c0000000000000]", "20")
+ self.bid64_quantize("0", "[0167328ec74f5201]", "[0d32c63ff6c58ba1]", "[0d20000000000000]", "20")
+ self.bid64_quantize("0", "[03e6e9b66952848c]", "[0400242300900000]", "[0400b0f8a421da0e]", "00")
+ self.bid64_quantize("0", "[0485504280bb0225]", "[85f3d5406802cad2]", "[05e0000000003a6c]", "20")
+ self.bid64_quantize("0", "[0b6d7dab3757f95c]", "[0f1a000000000000]", "[0f00000000000000]", "20")
+ self.bid64_quantize("0", "-0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_quantize("0", "0", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_quantize("0", "+10000.001E0", "0", "[31c0000000002710]", "20")
+ self.bid64_quantize("0", "[110a535b742fee25]", "[0aa0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_quantize("0", "+11100.0111E0", "-0", "[31c0000000002b5c]", "20")
+ self.bid64_quantize("0", "[17000f3000025e50]", "[5b3c7bbf7fffff77]", "[5b20000000000000]", "20")
+ self.bid64_quantize("0", "[2af0b487dd543b7c]", "[5a20000000000000]", "[5a20000000000000]", "20")
+ self.bid64_quantize("0", "[3382796ae8b5f696]", "[a718b8eccb75970d]", "[7c00000000000000]", "01")
+ self.bid64_quantize("0", "-44789898.69E0", "-0", "[b1c0000002ab708b]", "20")
+ self.bid64_quantize("0", "[54b861b448ed7806]", "[76d8e792243cb35a]", "[5b60000000000000]", "20")
+ self.bid64_quantize("0", "+577897888665.59E0", "-0", "[31c000868d65fb9a]", "20")
+ self.bid64_quantize("0", "+69.667775E0", "-0", "[31c0000000000046]", "20")
+ self.bid64_quantize("0", "[6cde250888583608]", "[9fdbfffa18e44757]", "[1fc0000000000000]", "00")
+ self.bid64_quantize("0", "[6e6139b93f663de3]", "[39933e55842625b8]", "[6e6139b93f663de3]", "00")
+ self.bid64_quantize("0", "[70ab1534b98dc139]", "[c273ea4f5b38e5dd]", "[7c00000000000000]", "01")
+ self.bid64_quantize("0", "[7741a8b50a4fc84f]", "[0000000000000000]", "[7c00000000000000]", "01")
+ self.bid64_quantize("0", "[7800000000000000]", "[7800000000000001]", "[7800000000000000]", "00")
+ self.bid64_quantize("0", "[7800000000000000]", "[7800000000000001]", "Infinity", "00")
+ self.bid64_quantize("0", "[7800000000000001]", "[7800000000000000]", "[7800000000000000]", "00")
+ self.bid64_quantize("0", "[87e8242e00822b4d]", "[0811f662040a12af]", "[8800d06b000d0454]", "20")
+ self.bid64_quantize("0", "+889988989.89E0", "0", "[31c00000350c277e]", "20")
+ self.bid64_quantize("0", "-89.9E0", "0", "[b1c000000000005a]", "20")
+ self.bid64_quantize("0", "-998888.8E0", "0", "[b1c00000000f3de9]", "20")
+ self.bid64_quantize("0", "+99989998.8E0", "-0", "[31c0000005f5b9ef]", "20")
+ self.bid64_quantize("0", "[99eb9b73a3a105fb]", "[3bf36ab52824feaf]", "[bbe0000000000000]", "20")
+ self.bid64_quantize("0", "[9b06bd679787ce84]", "[deddf11e9df0da97]", "[dec0000000000000]", "20")
+ self.bid64_quantize("0", "[ac40000000000000]", "[23d0f641a05e8f21]", "[a3c0000000000000]", "00")
+ self.bid64_quantize("0", "[afffefb7fffbfdff]", "[300838292921e020]", "[b00331926665ffcd]", "20")
+ self.bid64_quantize("0", "[d7ea632b148b7c26]", "[41c0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_quantize("0", "[f800000000000001]", "[7800000000000000]", "[f800000000000000]", "00")
+ self.bid64_quantize("0", "[fbfffffffffffffd]", "[09000c1046401000]", "[7c00000000000000]", "01")
+ self.bid64_quantize("0", "[fffffbffffffffff]", "[ffffffffffffffff]", "[fc00000000000000]", "01")
+ self.bid64_quantize("0", "-Infinity", "-0", "[7c00000000000000]", "01")
+ self.bid64_quantize("0", "Infinity", "0", "[7c00000000000000]", "01")
+ self.bid64_quantize("0", "Infinity", "Infinity", "[7800000000000000]", "00")
+ self.bid64_quantize("0", "-Infinity", "Infinity", "[f800000000000000]", "00")
+ self.bid64_quantize("0", "-Infinity", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_quantize("0", "QNaN", "0", "[7c00000000000000]", "00")
+ self.bid64_quantize("0", "QNaN", "Infinity", "[7c00000000000000]", "00")
+ self.bid64_quantize("0", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_quantize("0", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_quantize("1", "[91b300e0d5222151]", "[11effd5a146da9fe]", "[91e030a6169c8056]", "20")
+ self.bid64_quantize("1", "[bfb7e5bcbdde7fac]", "[bfdffffffffefffb]", "[bfc263c612fca65e]", "00")
+ self.bid64_quantize("2", "[0000403100001024]", "[c192e20b1f4c8c3b]", "[4180000000000001]", "20")
+ self.bid64_quantize("2", "[91b300e0d5222151]", "[11effd5a146da9fe]", "[91e030a6169c8055]", "20")
+ self.bid64_quantize("2", "[b1a9ff477a0846d9]", "[45efeb47474a92dd]", "[c5e0000000000000]", "20")
+ self.bid64_quantize("2", "[bfb7e5bcbdde7fac]", "[bfdffffffffefffb]", "[bfc263c612fca65e]", "00")
+ }
+
+ private func bid64_quantize(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.quantized(to: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_quantum() {
+ self.bid64_quantum("0", "[3280000000003039]", "[3280000000000001]", "00")
+ self.bid64_quantum("0", "[B280000000003039]", "[3280000000000001]", "00")
+ self.bid64_quantum("0", "[3080000000003039]", "[3080000000000001]", "00")
+ self.bid64_quantum("0", "[B080000000003039]", "[3080000000000001]", "00")
+ self.bid64_quantum("0", "[3120000000003039]", "[3120000000000001]", "00")
+ self.bid64_quantum("0", "[B120000000003039]", "[3120000000000001]", "00")
+ self.bid64_quantum("0", "[31A000000001E23A]", "[31A0000000000001]", "00")
+ self.bid64_quantum("0", "[5FE38D7EA4C68000]", "[5FE0000000000001]", "00")
+ self.bid64_quantum("0", "[DFE38D7EA4C68000]", "[5FE0000000000001]", "00")
+ self.bid64_quantum("0", "[31C0000000000000]", "[31C0000000000001]", "00")
+ self.bid64_quantum("0", "[B1C0000000000000]", "[31C0000000000001]", "00")
+ self.bid64_quantum("0", "[0000000000000001]", "[0000000000000001]", "00")
+ self.bid64_quantum("0", "[8000000000000001]", "[0000000000000001]", "00")
+ self.bid64_quantum("0", "[0000000000000000]", "[0000000000000001]", "00")
+ self.bid64_quantum("0", "[7800000000000000]", "[7800000000000000]", "00")
+ }
+
+ private func bid64_quantum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = arg0.quantum
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_sameQuantum() {
+ self.bid64_sameQuantum("0", "[0000000000000000]", "[698d80a4efe33f69]", "0", "00")
+ self.bid64_sameQuantum("0", "0", "-0", "1", "00")
+ self.bid64_sameQuantum("0", "-0", "SNaN", "0", "00")
+ self.bid64_sameQuantum("0", "+1000000010.000000E0", "0", "0", "00")
+ self.bid64_sameQuantum("0", "[29c95cda703c6a50]", "[97db1cf7f4ee8859]", "0", "00")
+ self.bid64_sameQuantum("0", "[2dcb525f907dee77]", "[d93546fbedfc552e]", "0", "00")
+ self.bid64_sameQuantum("0", "[471850f138942eeb]", "[5d7c6bc158b0b732]", "0", "00")
+ self.bid64_sameQuantum("0", "[7c00000000000000]", "[fef3ffffffffffff]", "1", "00")
+ self.bid64_sameQuantum("0", "[7e00000000000000]", "[7cf3ffffffffffff]", "1", "00")
+ self.bid64_sameQuantum("0", "[7e2697ccba10d426]", "[fa2571792acbc717]", "0", "00")
+ self.bid64_sameQuantum("0", "[8b7c50916fc999f4]", "[20909cda923baf84]", "0", "00")
+ self.bid64_sameQuantum("0", "[8c9dce6f7b8ed1a6]", "[990793fa2ca53a1a]", "0", "00")
+ self.bid64_sameQuantum("0", "[9920000000000000]", "[08c5000000000000]", "0", "00")
+ self.bid64_sameQuantum("0", "[9ae0000000000000]", "[0e9c000000000000]", "0", "00")
+ self.bid64_sameQuantum("0", "[a1926dee3ae9ff0a]", "[ba60000000000000]", "0", "00")
+ self.bid64_sameQuantum("0", "[a23f9f5f02e2ccd6]", "[2f8167c39503829d]", "0", "00")
+ self.bid64_sameQuantum("0", "[cbfc15ab001e11cc]", "[072486c8f96be096]", "0", "00")
+ self.bid64_sameQuantum("0", "[d880000000000000]", "[c6bd8171578f2264]", "0", "00")
+ self.bid64_sameQuantum("0", "[f4e4b9fff4ff6bf3]", "[3ccf6b9605feb0ac]", "0", "00")
+ self.bid64_sameQuantum("0", "[fae73b5bf373db7f]", "[a9ceaee4c5dc851a]", "0", "00")
+ self.bid64_sameQuantum("0", "Infinity", "-0.E0", "0", "00")
+ self.bid64_sameQuantum("0", "Infinity", "Infinity", "1", "00")
+ self.bid64_sameQuantum("0", "QNaN", "0", "0", "00")
+ self.bid64_sameQuantum("0", "QNaN", "-Infinity", "0", "00")
+ self.bid64_sameQuantum("0", "QNaN", "Infinity", "0", "00")
+ }
+
+ private func bid64_sameQuantum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.sameQuantum(as: arg1)
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid128_quantize() {
+ self.bid128_quantize("0", "[0000000000000000,0000100060000000]", "[820566eb80e01394,18f566ef868385d2]", "[02040000000000000000000000000000]", "20")
+ self.bid128_quantize("0", "[0000000000000000,1610200006222111]", "[0002401020100241,fffff7f7efffffff]", "[00020000000000000234d000009d034e]", "20")
+ self.bid128_quantize("0", "[0000074c00400450ffffffffffffffff]", "[8012011e02800364ed11b512401fe044]", "[0012000000001f5700cb7221e4090718]", "20")
+ self.bid128_quantize("0", "[0000082810280a10,ffffffffffffffff]", "[00408000acdd28c0,f8ece02f0f48244c]", "[00400000000000000000000000000002]", "20")
+ self.bid128_quantize("0", "[0000580481282100,6d42034c46a1f61f]", "[8000800100100200,d3f9dfb2c5cef66d]", "[00005804812821006d42034c46a1f61f]", "00")
+ self.bid128_quantize("0", "[0000600000200002,0240010000080000]", "[0002500800100040,8018a69708d9bb40]", "[00020999999ccccd003999b333340000]", "00")
+ self.bid128_quantize("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_quantize("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_quantize("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[001c1a6704b88825,dbfb7bfe86a7fbbe]", "[804a9f3bc0032f0c,2a802e4d7ed4eb0d]", "[004a000000000000000000013f2f84e3]", "20")
+ self.bid128_quantize("0", "[0048340020520108,fffffff7ffffffff]", "[bfc05700cd8d2603,fadf57fabf5b59ff]", "[3fc00000000000000000000000000000]", "20")
+ self.bid128_quantize("0", "[01008424932b4901,3e84000801198090]", "[fefdbfbb77bef7d5,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_quantize("0", "[0317ad53a2f38658,ac702810b78c8969]", "[7c000da427cacaa0,2adb73ee8e5b5d09]", "[7c000da427cacaa02adb73ee8e5b5d09]", "00")
+ self.bid128_quantize("0", "[07a616f2d04f7332,fb0032afc8539c88]", "[8bd82f907f0b9928,4046d547d95d54b8]", "[0bd80000000000000000000000000000]", "20")
+ self.bid128_quantize("0", "[0e46000000000000,0000000000000000]", "[55b099499050918f,94d2a72b47746a89]", "[55b00000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "-0", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("0", "0", "Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("0", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "-110000.0010E0", "-0", "[b040000000000000000000000001adb0]", "20")
+ self.bid128_quantize("0", "+110.1110E0", "-0", "[3040000000000000000000000000006e]", "20")
+ self.bid128_quantize("0", "[127ca4be7ad5bbfd,4498c20609a39545]", "[b2b4b68ea656aae4,143c13c5d6c97f46]", "[32b40000000000000000000000000000]", "20")
+ self.bid128_quantize("0", "[1460000000000000,0000000000000000]", "[15dc000000000000,0000000000000000]", "[15dc0000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[1542000000000000,0000000000000000]", "[5396e39f16ea88ac,86f61f04eb8a5f62]", "[53960000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[18658478fea66991,01929d3e1993abce]", "[9885acebc94b8554,aba2db078fcc5b91]", "[18840000000000000aef3d876944ddf5]", "20")
+ self.bid128_quantize("0", "[2008800040004000416a159ca87aab48]", "[2013000008000422698d7b970a5c01b2]", "[2012000053e3001522a71ed3e683aaca]", "20")
+ self.bid128_quantize("0", "-235966.842464759E0", "-0", "[b04000000000000000000000000399bf]", "20")
+ self.bid128_quantize("0", "[2512000000000000,0000000000000000]", "[c390d9185dbc4017,026b514940e3dc94]", "[43900000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[258cf530be36efed,e87019c05db9b066]", "[ad0cc6f7d9582c43,4eed3d8189fc2cab]", "[2d0c0000000000000000000000000000]", "20")
+ self.bid128_quantize("0", "[278d4bdeb45d6a1b,3bd2aef591340174]", "[097eecb487fc4396,34d6bf3c517b9b96]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("0", "[2f4a000000000000,0000000000000000]", "[497b8bb3a24afd37,bafe778ff9d91e43]", "[497a0000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "+3536258257868.3E0", "0", "[304000000000000000000337596ad3cc]", "20")
+ self.bid128_quantize("0", "[36ca000000000000,0000000000000000]", "[9dec000000000000,0000000000000000]", "[1dec0000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[378d6995f3537d4c,b953fe8ffaa04ec6]", "[3c6cc5622e19c4b4,8fa2cd1f88e4bb1f]", "[3c6c0000000000000000000000000000]", "20")
+ self.bid128_quantize("0", "[3ebfbba58edd28f9,28da2fee723c8d53]", "[5585386f13b2c6eb,c74b158f64409529]", "[55840000000000000000000000000000]", "20")
+ self.bid128_quantize("0", "[4174000000000000,0000000000000000]", "[20983d15325e37cb,eb5d58cb61ee040c]", "[20980000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[487bd6cf88f54ebde851a54b7da97092]", "[f225cd5df9e39929249bcd1a45b817b2]", "[48960000000000052d36d9de86fb410f]", "20")
+ self.bid128_quantize("0", "[48f355a706021ca0,4d48e40b3146118a]", "[eff968b27ffe5ded,9020a0c036120428]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("0", "[5b11554467e1276f,3694dc660d713588]", "[7c0004df5c25ce73,a780ffdfbcdb9ca7]", "[7c0004df5c25ce73a780ffdfbcdb9ca7]", "00")
+ self.bid128_quantize("0", "[6ffe7fbffffeffff,8e15c3020082088d]", "[f2bfa228d36adfab,320db63346df258f]", "[4afe0000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[78000000000000000000000000000000]", "[5ffe04ee2d6d415b85acef8100000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("0", "[78000000000000000000000000000000]", "[78000000000000000000000000000001]", "[78000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[78000000000000000000000000000001]", "[78000000000000000000000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[79a1e0a3be2f5c99,ff9ebfe374274b5f]", "[fbc19fe3ed75fa7d,0000244020800084]", "[78000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[7ebfbeccd7abf7fd,ffffeffffffffefb]", "[fdfff7fdfdff9ffb,154f9e0a8fb757a1]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("0", "+88.898E0", "0", "[30400000000000000000000000000059]", "20")
+ self.bid128_quantize("0", "+8989.88E0", "0", "[3040000000000000000000000000231e]", "20")
+ self.bid128_quantize("0", "[8e339aa49d88979a,5467866bb6b67349]", "[a298000000000000,0000000000000000]", "[a2980000000000000000000000000000]", "20")
+ self.bid128_quantize("0", "+96997.5E0", "0", "[30400000000000000000000000017ae6]", "20")
+ self.bid128_quantize("0", "[a711835bb7fbf4fcfffef7ffbfffbfff]", "[69c9dbd1f8569db059f2b08e18c3d94a]", "[a7260000000010a30c9e15558eea132f]", "20")
+ self.bid128_quantize("0", "[adff85b190fcaaac,5219533da67d59cf]", "[bbbd44f5451646d7,938da7fca7369c84]", "[bbbc0000000000000000000000000000]", "20")
+ self.bid128_quantize("0", "[ba549782656c1244,c82f4821be74a47c]", "[592516a2289ab46b,6c9615a262c38a5a]", "[d9240000000000000000000000000000]", "20")
+ self.bid128_quantize("0", "[bcbffbbddbdf9f73,0040000000420000]", "[808100001c041301,0000000000000040]", "[80800000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[cf839565fa9f7d3c,c86ab6eb6cd6c617]", "[50ff156783a76f70,15d42d741a58546a]", "[d0fe0000000000000000000000000000]", "20")
+ self.bid128_quantize("0", "[d5d00499b55b2e23,eb11e80ebb7222f9]", "[fb01cf5383329669,0040002000008008]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("0", "[fbcfe6e7fef79d7f,fffffbfffffbf7ff]", "[cb9f7dabefcfa7ee,d9c39e5bfadc3fd7]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("0", "[fc00000000000000,0000000000000000]", "[51cb36ec6afc888d,ae06b38c3248f1ad]", "[fc000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "[ff7ddffffffdff7f,a6fdfbefdf686fff]", "[e130acd3a2a5938e,3f3bf4afc37a18d2]", "[fc001ffffffdff7fa6fdfbefdf686fff]", "01")
+ self.bid128_quantize("0", "Infinity", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "QNaN", "-0", "[7c000000000000000000000000000000]", "00")
+ self.bid128_quantize("0", "SNaN", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("0", "SNaN", "QNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("0", "SNaN", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("1", "[0000008000004000,0fa4fae5db1944d8]", "[0040404041060000,2046024420006000]", "[00400000000000000000000000000000]", "20")
+ self.bid128_quantize("1", "[0000074c00400450ffffffffffffffff]", "[8012011e02800364ed11b512401fe044]", "[0012000000001f5700cb7221e4090718]", "20")
+ self.bid128_quantize("1", "[2008800040004000416a159ca87aab48]", "[2013000008000422698d7b970a5c01b2]", "[2012000053e3001522a71ed3e683aaca]", "20")
+ self.bid128_quantize("1", "[487bd6cf88f54ebde851a54b7da97092]", "[f225cd5df9e39929249bcd1a45b817b2]", "[48960000000000052d36d9de86fb410e]", "20")
+ self.bid128_quantize("1", "[78000000000000000000000000000000]", "[5ffe04ee2d6d415b85acef8100000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("1", "[8828fab4bc1daddd,70227c1045808242]", "[882ab42214100200,502c5007a28f9582]", "[882a191212cfc49624d03f9b3a26736d]", "00")
+ self.bid128_quantize("1", "[a711835bb7fbf4fcfffef7ffbfffbfff]", "[69c9dbd1f8569db059f2b08e18c3d94a]", "[a7260000000010a30c9e15558eea132f]", "20")
+ self.bid128_quantize("1", "[a76363b853b50105,af79156d828f06cb]", "[f7f7ffdbfff367fd,0040000000080004]", "[dfde0000000000000000000000000001]", "20")
+ self.bid128_quantize("2", "[0000008000004000,0fa4fae5db1944d8]", "[0040404041060000,2046024420006000]", "[00400000000000000000000000000001]", "20")
+ self.bid128_quantize("2", "[0000074c00400450ffffffffffffffff]", "[8012011e02800364ed11b512401fe044]", "[0012000000001f5700cb7221e4090719]", "20")
+ self.bid128_quantize("2", "[00028040800a2040,5ddfffbfbf75ffff]", "[0010114024388c81,8bd73bd596f311cc]", "[0010000000d72bcb70e256688cb0e7ff]", "20")
+ self.bid128_quantize("2", "[2008800040004000416a159ca87aab48]", "[2013000008000422698d7b970a5c01b2]", "[2012000053e3001522a71ed3e683aacb]", "20")
+ self.bid128_quantize("2", "[487bd6cf88f54ebde851a54b7da97092]", "[f225cd5df9e39929249bcd1a45b817b2]", "[48960000000000052d36d9de86fb410f]", "20")
+ self.bid128_quantize("2", "[78000000000000000000000000000000]", "[5ffe04ee2d6d415b85acef8100000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("2", "[8828fab4bc1daddd,70227c1045808242]", "[882ab42214100200,502c5007a28f9582]", "[882a191212cfc49624d03f9b3a26736d]", "00")
+ self.bid128_quantize("2", "[a711835bb7fbf4fcfffef7ffbfffbfff]", "[69c9dbd1f8569db059f2b08e18c3d94a]", "[a7260000000010a30c9e15558eea132e]", "20")
+ self.bid128_quantize("2", "[a76363b853b50105,af79156d828f06cb]", "[f7f7ffdbfff367fd,0040000000080004]", "[dfde0000000000000000000000000000]", "20")
+ self.bid128_quantize("2", "[b366e0e4b7f9d218,7631d010364abdcf]", "[33a3c57766f0455b,b37286067a508e5b]", "[b3a200000000000000000000000011d1]", "20")
+ self.bid128_quantize("3", "[0000074c00400450ffffffffffffffff]", "[8012011e02800364ed11b512401fe044]", "[0012000000001f5700cb7221e4090718]", "20")
+ self.bid128_quantize("3", "[2008800040004000416a159ca87aab48]", "[2013000008000422698d7b970a5c01b2]", "[2012000053e3001522a71ed3e683aaca]", "20")
+ self.bid128_quantize("3", "[487bd6cf88f54ebde851a54b7da97092]", "[f225cd5df9e39929249bcd1a45b817b2]", "[48960000000000052d36d9de86fb410e]", "20")
+ self.bid128_quantize("3", "[78000000000000000000000000000000]", "[5ffe04ee2d6d415b85acef8100000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("3", "[a711835bb7fbf4fcfffef7ffbfffbfff]", "[69c9dbd1f8569db059f2b08e18c3d94a]", "[a7260000000010a30c9e15558eea132e]", "20")
+ self.bid128_quantize("4", "[0000074c00400450ffffffffffffffff]", "[8012011e02800364ed11b512401fe044]", "[0012000000001f5700cb7221e4090718]", "20")
+ self.bid128_quantize("4", "[2008800040004000416a159ca87aab48]", "[2013000008000422698d7b970a5c01b2]", "[2012000053e3001522a71ed3e683aaca]", "20")
+ self.bid128_quantize("4", "[487bd6cf88f54ebde851a54b7da97092]", "[f225cd5df9e39929249bcd1a45b817b2]", "[48960000000000052d36d9de86fb410f]", "20")
+ self.bid128_quantize("4", "[78000000000000000000000000000000]", "[5ffe04ee2d6d415b85acef8100000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_quantize("4", "[a711835bb7fbf4fcfffef7ffbfffbfff]", "[69c9dbd1f8569db059f2b08e18c3d94a]", "[a7260000000010a30c9e15558eea132f]", "20")
+ }
+
+ private func bid128_quantize(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.quantized(to: arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_quantum() {
+ self.bid128_quantum("0", "[304C0000000000000000000000003039]", "[304C0000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[B04C0000000000000000000000003039]", "[304C0000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[302C0000000000000000000000003039]", "[302C0000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[B02C0000000000000000000000003039]", "[302C0000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[30360000000000000000000000003039]", "[30360000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[B0360000000000000000000000003039]", "[30360000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[303E000000000000000000000001E23A]", "[303E0000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[5FFE314DC6448D9338C15B0A00000000]", "[5FFE0000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[DFFE314DC6448D9338C15B0A00000000]", "[5FFE0000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[30400000000000000000000000000000]", "[30400000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[B0400000000000000000000000000000]", "[30400000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[00000000000000000000000000000001]", "[00000000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[80000000000000000000000000000001]", "[00000000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[00000000000000000000000000000000]", "[00000000000000000000000000000001]", "00")
+ self.bid128_quantum("0", "[78000000000000000000000000000000]", "[78000000000000000000000000000000]", "00")
+ }
+
+ private func bid128_quantum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = arg0.quantum
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_sameQuantum() {
+ self.bid128_sameQuantum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_sameQuantum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_sameQuantum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_sameQuantum("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_sameQuantum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_sameQuantum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_sameQuantum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "0", "00")
+ self.bid128_sameQuantum("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "0", "00")
+ self.bid128_sameQuantum("0", "0", "-0", "1", "00")
+ self.bid128_sameQuantum("0", "0", "0", "1", "00")
+ self.bid128_sameQuantum("0", "[051c74281ad2cdb5,f119577a273dfe79]", "[df176c57b1339503,66495a5a3b54eda9]", "0", "00")
+ self.bid128_sameQuantum("0", "[08d06098f22341df,7f5d008240ff8dd0]", "[3cecd8ccc6f2442c,d093bdbd23f43799]", "0", "00")
+ self.bid128_sameQuantum("0", "-0", "SNaN", "0", "00")
+ self.bid128_sameQuantum("0", "0", "SNaN", "0", "00")
+ self.bid128_sameQuantum("0", "[17881f4ee218bad9,82f3e7c1878d47ef]", "[1f72000000000000,0000000000000000]", "0", "00")
+ self.bid128_sameQuantum("0", "[3ccfe12d62401d52,1b5f04ac64412a34]", "[441e000000000000,0000000000000000]", "0", "00")
+ self.bid128_sameQuantum("0", "[536290ca09fb8b86,52123b3cdeaf6c90]", "[bb8f2d13f90ccbb4,78d152167e7c5279]", "0", "00")
+ self.bid128_sameQuantum("0", "[6ff7b7fff73fd3aa,fff7cdfff6ff5bcf]", "[efb9bc0e0d423190,ee325a636805251f]", "0", "00")
+ self.bid128_sameQuantum("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_sameQuantum("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_sameQuantum("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_sameQuantum("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_sameQuantum("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_sameQuantum("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_sameQuantum("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_sameQuantum("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_sameQuantum("0", "[7f5925b54c3d9dd6,c4414022fb251949]", "[a1d68282f8c99254,5101110280002040]", "0", "00")
+ self.bid128_sameQuantum("0", "[8cd7b9b8bc4f202a,d2d914b2ed4bd0c4]", "[09654b47455a90b2,53a2421194503a32]", "0", "00")
+ self.bid128_sameQuantum("0", "[8d8c53ded1fe4b28,b83e18a73f3dcc9f]", "[98624a824286a1b5,5dd6844c9d9f588b]", "0", "00")
+ self.bid128_sameQuantum("0", "[9165bf5333bf3231,ce13539fd9473752]", "[f9aeaeedfaed7673,7cf58ad73712ed66]", "0", "00")
+ self.bid128_sameQuantum("0", "[c5eac98dc305e7e2,3d40f5b48e2e469c]", "[35f8e672f8527b48,b69adb8222fcb612]", "0", "00")
+ self.bid128_sameQuantum("0", "[c9d8803897920d28,05f51fbb0724ac1c]", "[a26c23a0e28474fa,27057eab64dc55d7]", "0", "00")
+ self.bid128_sameQuantum("0", "[ce7ab182e60ef9f6,e7878a50950422c2]", "[196109cfaa417d79,727b4abe4cb75a32]", "0", "00")
+ self.bid128_sameQuantum("0", "[d4ddaae62ab05fda,ea8d6cf791bf223d]", "[d9d55e041a032419,a0c2a34f3ee1bed7]", "0", "00")
+ self.bid128_sameQuantum("0", "[e256138caf1cd6cf,fbffa5ffdfffdfff]", "[2000000000001a20,3feffa463c7b507f]", "0", "00")
+ self.bid128_sameQuantum("0", "-Infinity", "-0", "0", "00")
+ self.bid128_sameQuantum("0", "-Infinity", "0", "0", "00")
+ self.bid128_sameQuantum("0", "Infinity", "Infinity", "1", "00")
+ self.bid128_sameQuantum("0", "-Infinity", "QNaN", "0", "00")
+ self.bid128_sameQuantum("0", "SNaN", "Infinity", "0", "00")
+ }
+
+ private func bid128_sameQuantum(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.sameQuantum(as: arg1)
+ self.assertBool(result, expected, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelRemTests.swift b/Tests/DecimalTests/Intel - generated/IntelRemTests.swift
new file mode 100644
index 0000000..e5542b1
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelRemTests.swift
@@ -0,0 +1,414 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelRemTests: XCTestCase, IntelMixin {
+
+ func test_bid32_rem() {
+ self.bid32_rem("0", "[00000001]", "1.0", "[00000001]", "00")
+ self.bid32_rem("0", "[00000800]", "[80000207]", "[8000001c]", "00")
+ self.bid32_rem("0", "[00080001]", "1.0", "[00080001]", "00")
+ self.bid32_rem("0", "0E+89", "1E-96", "[02800000]", "00")
+ self.bid32_rem("0", "0E+89", "9.999999E+96", "[5f000000]", "00")
+ self.bid32_rem("0", "0E+89", "Infinity", "[5f000000]", "00")
+ self.bid32_rem("0", "1.0", "[00000001]", "[00000000]", "00")
+ self.bid32_rem("0", "1.0", "[00080001]", "[80032a8c]", "00")
+ self.bid32_rem("0", "1.0", "-1.0", "[32000000]", "00")
+ self.bid32_rem("0", "1.0", "1.0", "[32000000]", "00")
+ self.bid32_rem("0", "-1.0", "1.0", "[b2000000]", "00")
+ self.bid32_rem("0", "1.0", "-1.0e-96", "[02000000]", "00")
+ self.bid32_rem("0", "1.0", "1.0e-96", "[02000000]", "00")
+ self.bid32_rem("0", "1.0", "[6098967f]", "[020f4240]", "00")
+ self.bid32_rem("0", "1.0", "[60989680]", "[7c000000]", "01")
+ self.bid32_rem("0", "1.0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_rem("0", "1.0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_rem("0", "1.0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_rem("0", "1.0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_rem("0", "1.0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_rem("0", "1.0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_rem("0", "1.0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_rem("0", "1.0", "[80000001]", "[00000000]", "00")
+ self.bid32_rem("0", "1.0", "-9.999999e-95", "[000003e8]", "00")
+ self.bid32_rem("0", "1.0", "9.999999e-95", "[000003e8]", "00")
+ self.bid32_rem("0", "1.0", "-9.999999e96", "[3200000a]", "00")
+ self.bid32_rem("0", "1.0", "9.999999e96", "[3200000a]", "00")
+ self.bid32_rem("0", "1.0e-96", "1.0", "[0200000a]", "00")
+ self.bid32_rem("0", "-1.0e-96", "1.0", "[8200000a]", "00")
+ self.bid32_rem("0", "1.0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_rem("0", "1.0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_rem("0", "1.0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_rem("0", "1.234567E+95", "1E+90", "[df000003]", "00")
+ self.bid32_rem("0", "1E+89", "1E+90", "[5f000001]", "00")
+ self.bid32_rem("0", "[2f6bcdb3]", "[ebf7fe2f]", "[2f6bcdb3]", "00")
+ self.bid32_rem("0", "[3c000000]", "[866d2bef]", "[06000000]", "00")
+ self.bid32_rem("0", "[6098967f]", "1.0", "[6098967f]", "00")
+ self.bid32_rem("0", "[60989680]", "1.0", "[02000000]", "00")
+ self.bid32_rem("0", "[78000000]", "[0796bd0c]", "[7c000000]", "01")
+ self.bid32_rem("0", "[7c000000]", "1.0", "[7c000000]", "00")
+ self.bid32_rem("0", "[7c8f423f]", "1.0", "[7c0f423f]", "00")
+ self.bid32_rem("0", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_rem("0", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_rem("0", "[7c8f4240]", "1.0", "[7c000000]", "00")
+ self.bid32_rem("0", "[7e100000]", "1.0", "[7c000000]", "01")
+ self.bid32_rem("0", "[7e100100]", "1.0", "[7c000100]", "01")
+ self.bid32_rem("0", "[7e8f423f]", "1.0", "[7c0f423f]", "01")
+ self.bid32_rem("0", "[7e8f4240]", "1.0", "[7c000000]", "01")
+ self.bid32_rem("0", "[80000001]", "1.0", "[80000001]", "00")
+ self.bid32_rem("0", "9.999999e-95", "1.0", "[6018967f]", "00")
+ self.bid32_rem("0", "-9.999999e-95", "1.0", "[e018967f]", "00")
+ self.bid32_rem("0", "9.999999e96", "1.0", "[32000000]", "00")
+ self.bid32_rem("0", "-9.999999e96", "1.0", "[b2000000]", "00")
+ self.bid32_rem("0", "[db800000]", "[77f06aff]", "[db800000]", "00")
+ self.bid32_rem("0", "[debfe57f]", "[f8000000]", "[debfe57f]", "00")
+ self.bid32_rem("0", "[fc100000]", "1.0", "[fc000000]", "00")
+ self.bid32_rem("0", "[fc100100]", "1.0", "[fc000100]", "00")
+ self.bid32_rem("0", "[fe000000]", "1.0", "[fc000000]", "01")
+ self.bid32_rem("0", "Infinity", "0E+89", "[7c000000]", "01")
+ self.bid32_rem("0", "Infinity", "NaN", "[7c000000]", "00")
+ }
+
+ private func bid32_rem(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.remainder(dividingBy: arg1, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+
+ let result2 = self.remainderFromTruncatingRemainder(arg0, dividingBy: arg1)
+ self.assertEqual(result2, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_rem() {
+ self.bid64_rem("0", "[0000400000000000]", "[0000002180400729]", "[0000000205b252af]", "00")
+ self.bid64_rem("0", "-0", "0", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "0", "-0", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[00cd1505de2b28ef]", "[79ea3cfdff7ff7f7]", "[00cd1505de2b28ef]", "00")
+ self.bid64_rem("0", "[08cd000000000000]", "[9446e2ab9830b5ea]", "[08cd000000000000]", "00")
+ self.bid64_rem("0", "[08df000000000000]", "[19a0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[09f7000000000000]", "[c460000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[0c5e124ac21e0813]", "[662800c290a8d383]", "[0c5e124ac21e0813]", "00")
+ self.bid64_rem("0", "+0.E0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_rem("0", "[0e8e26762eb6381c]", "[6ac6b8ae924112db]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "0", "Infinity", "[31c0000000000000]", "00")
+ self.bid64_rem("0", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[10d5ec568879c7f0]", "[a2e0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[238ce60ca6074db3]", "[7ffff4f5f9d7f4fe]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[2fbd095f29c987f4]", "[899d711b92e3e213]", "[098c994ddddf3df7]", "00")
+ self.bid64_rem("0", "[4353d1d8a93c5ef9]", "[4390503cd8b20c4e]", "[4353d1d8a93c5ef9]", "00")
+ self.bid64_rem("0", "[498aff06888ef77e]", "[1740000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[4d7bf08237c1ea3c]", "[5dceaba82e5bb7ee]", "[4d7bf08237c1ea3c]", "00")
+ self.bid64_rem("0", "[5d030482e0a24502]", "[06dac3bbaa189e4e]", "[86c9e499bd65bf52]", "00")
+ self.bid64_rem("0", "[6fdffdfffffd7eff]", "[0100042000483400]", "[0100000000000000]", "00")
+ self.bid64_rem("0", "[75be35dff5dcf9bf]", "[edff6fedffc6e5df]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[8d40000000000000]", "[5f80000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[a48805a0f2caf9f8]", "[c360000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[afb236d07e3effc6]", "[5240000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[d34e2038ec42ae38]", "[0000100000000000]", "[8000000000000000]", "00")
+ self.bid64_rem("0", "[da0793cd0c6c3581]", "[5940000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[dffdfffd7f7fffcd]", "[dfe52f777d5fe9df]", "[5fe11ccf70bf7b6d]", "00")
+ self.bid64_rem("0", "[ec3a5d024e224441]", "[fab38185513508ad]", "[ec3a5d024e224441]", "00")
+ self.bid64_rem("0", "[ed85b2c7ffaadfae]", "[63099bb2b1f32d17]", "[8c20000000000000]", "00")
+ self.bid64_rem("0", "[f6ffb9f5f57fffef]", "[fdfba3f7afbdefff]", "[fc00000000000000]", "00")
+ self.bid64_rem("0", "[fb1e6454d100e9d9]", "[00a30b0000040410]", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "[fefffdeffffbffba]", "[80010000a2408000]", "[fc00000000000000]", "01")
+ self.bid64_rem("0", "[ffffeffff7effff7]", "[ffbdffffbd7dffff]", "[fc00000000000000]", "01")
+ self.bid64_rem("0", "-Infinity", "-0", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "SNaN", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_rem("0", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "-0", "0", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "0", "-0", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "[08cd000000000000]", "[9446e2ab9830b5ea]", "[08cd000000000000]", "00")
+ self.bid64_rem("1", "[08df000000000000]", "[19a0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "[09f7000000000000]", "[c460000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "+0.E0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_rem("1", "0", "Infinity", "[31c0000000000000]", "00")
+ self.bid64_rem("1", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "[10d5ec568879c7f0]", "[a2e0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "[498aff06888ef77e]", "[1740000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "[4d7bf08237c1ea3c]", "[5dceaba82e5bb7ee]", "[4d7bf08237c1ea3c]", "00")
+ self.bid64_rem("1", "[8d40000000000000]", "[5f80000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "[a48805a0f2caf9f8]", "[c360000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "[afb236d07e3effc6]", "[5240000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "[da0793cd0c6c3581]", "[5940000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "-Infinity", "-0", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "SNaN", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_rem("1", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "-0", "0", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "0", "-0", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "[08cd000000000000]", "[9446e2ab9830b5ea]", "[08cd000000000000]", "00")
+ self.bid64_rem("2", "[08df000000000000]", "[19a0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "[09f7000000000000]", "[c460000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "+0.E0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_rem("2", "0", "Infinity", "[31c0000000000000]", "00")
+ self.bid64_rem("2", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "[10d5ec568879c7f0]", "[a2e0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "[498aff06888ef77e]", "[1740000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "[4d7bf08237c1ea3c]", "[5dceaba82e5bb7ee]", "[4d7bf08237c1ea3c]", "00")
+ self.bid64_rem("2", "[8d40000000000000]", "[5f80000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "[a48805a0f2caf9f8]", "[c360000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "[afb236d07e3effc6]", "[5240000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "[da0793cd0c6c3581]", "[5940000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "-Infinity", "-0", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "SNaN", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_rem("2", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "-0", "0", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "0", "-0", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "[08cd000000000000]", "[9446e2ab9830b5ea]", "[08cd000000000000]", "00")
+ self.bid64_rem("3", "[08df000000000000]", "[19a0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "[09f7000000000000]", "[c460000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "+0.E0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_rem("3", "0", "Infinity", "[31c0000000000000]", "00")
+ self.bid64_rem("3", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "[10d5ec568879c7f0]", "[a2e0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "[498aff06888ef77e]", "[1740000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "[4d7bf08237c1ea3c]", "[5dceaba82e5bb7ee]", "[4d7bf08237c1ea3c]", "00")
+ self.bid64_rem("3", "[8d40000000000000]", "[5f80000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "[a48805a0f2caf9f8]", "[c360000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "[afb236d07e3effc6]", "[5240000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "[da0793cd0c6c3581]", "[5940000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "-Infinity", "-0", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "SNaN", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_rem("3", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "-0", "0", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "0", "-0", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "[08cd000000000000]", "[9446e2ab9830b5ea]", "[08cd000000000000]", "00")
+ self.bid64_rem("4", "[08df000000000000]", "[19a0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "[09f7000000000000]", "[c460000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "+0.E0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_rem("4", "0", "Infinity", "[31c0000000000000]", "00")
+ self.bid64_rem("4", "-0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "[10d5ec568879c7f0]", "[a2e0000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "[498aff06888ef77e]", "[1740000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "[4d7bf08237c1ea3c]", "[5dceaba82e5bb7ee]", "[4d7bf08237c1ea3c]", "00")
+ self.bid64_rem("4", "[8d40000000000000]", "[5f80000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "[a48805a0f2caf9f8]", "[c360000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "[afb236d07e3effc6]", "[5240000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "[da0793cd0c6c3581]", "[5940000000000000]", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "-Infinity", "-0", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "Infinity", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "SNaN", "Infinity", "[7c00000000000000]", "01")
+ self.bid64_rem("4", "SNaN", "SNaN", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_rem(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.remainder(dividingBy: arg1, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+
+ let result2 = self.remainderFromTruncatingRemainder(arg0, dividingBy: arg1)
+ self.assertEqual(result2, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_rem() {
+ self.bid128_rem("0", "[0000008002452014,5e7ff56d67eb67a5]", "[000000c100000020,d277330430a0ee20]", "[80000040fdbae00c73f73d96c8b5867b]", "00")
+ self.bid128_rem("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[0065420a01b95380,dfae38016de45fb4]", "[96b1104022ac3cca,72c2b81d8fec995e]", "[0065420a01b95380dfae38016de45fb4]", "00")
+ self.bid128_rem("0", "-0", "-0.E0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "[010009020c420002,5ff98fbff95edf7e]", "[0104102400200020,f7ffffdef5efffff]", "[010009020c4200025ff98fbff95edf7e]", "00")
+ self.bid128_rem("0", "[020000001320124c,79a07e3c04b31fb0]", "[ffffffffffffffff,9056a2027e3103c0]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "0", "-Infinity", "[30400000000000000000000000000000]", "00")
+ self.bid128_rem("0", "-0", "-Infinity", "[b0400000000000000000000000000000]", "00")
+ self.bid128_rem("0", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "-0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "[2000020002083001,af1b166bffda5dde]", "[2000000404224000,0000000000000000]", "[20000001f50a7001af1b166bffda5dde]", "00")
+ self.bid128_rem("0", "[2000040000002200,f7fffffffd7fffff]", "[0100000000000000,0000000000000001]", "[01000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[25765e1113026459,e37ff77afe7ffdff]", "[fbffdff7bfb7ffa7,201a7081325d1c12]", "[25765e1113026459e37ff77afe7ffdff]", "00")
+ self.bid128_rem("0", "[26741c0590811072,ffffffff6ef7ffff]", "[0000000000000000,0300040220100840]", "[8000000000000000015515ab6c6033c0]", "00")
+ self.bid128_rem("0", "[397cdc9a254ff562,99bc2af7b316f57c]", "[268d807293a0dcac,afddbd631e831cbb]", "[a68c1d3c3991cbb19eee601c8bdcb12c]", "00")
+ self.bid128_rem("0", "[3a1db514f8af9733,fefeffefffffffff]", "[c48ac2bddb9295e8,0110484000234290]", "[3a1db514f8af9733fefeffefffffffff]", "00")
+ self.bid128_rem("0", "[3a46a1388afe6e50,5418c8e8d3d4bd4b]", "[7e0016f259f8f0aa,f6426a11cf634d38]", "[7c0016f259f8f0aaf6426a11cf634d38]", "01")
+ self.bid128_rem("0", "[3aaf3f4db47ae4f2,3b2705d283e3d160]", "[c6626c7f2d14a3a1,0d507aea3bae04b8]", "[3aaf3f4db47ae4f23b2705d283e3d160]", "00")
+ self.bid128_rem("0", "[4082000215010400,1f7dbeffb7fdff7d]", "[bfffbfff7ffa7fbf,240c30b8380ad037]", "[bffe0708356252ac4b444f585a0c6d93]", "00")
+ self.bid128_rem("0", "[4dbc000000000000,0000000000000000]", "[4d138600f520137d,2001e957c4b7cc57]", "[4d120000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[55401804998161f1,6b735f43ecd46f95]", "[7800000000000000,0000000000000000]", "[55401804998161f16b735f43ecd46f95]", "00")
+ self.bid128_rem("0", "[623df7ae457861bf,0e300840402b221c]", "[632cddb83f415035,db7e6ff75558f103]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[8000000000000000,f8ba388cd7bc1c1b]", "[8040280400c45401,fefd71fd65bbeffd]", "[8000000000000000f8ba388cd7bc1c1b]", "00")
+ self.bid128_rem("0", "[80060803004a1208,bde3f7effba3efbd]", "[3691feee73b72bd9,614cbbcb3aadc4f3]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "[97f3ca2bca3dcd34,321ba8822721f58f]", "[8000000000000000,bae106a1402505d6]", "[000000000000000025bf9a7041265ffe]", "00")
+ self.bid128_rem("0", "[9a00000000000000,0000000000000000]", "[bc58000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "[9c5f9589d6c5fa51,caa6dcb43a12852e]", "[0080000000000000,0001000000000000]", "[80800000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[a1a32dc578f676e4,5bfb68dece45b7d8]", "[bc46000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "[a7f734b7f7e7a516,229ddcc454df042c]", "[0000000000000002,9fc80ebfc7fed6d1]", "[800000000000000118eb45cf8f8cc645]", "00")
+ self.bid128_rem("0", "[a9f8000000000000,0000000000000000]", "[419ecd52cafad77c,1c15d4445e2c728b]", "[a9f80000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[d75fff7bffffffff,084410100a41019d]", "[fe37efefde7bf7d7,c000906283812080]", "[fc002fefde7bf7d7c000906283812080]", "01")
+ self.bid128_rem("0", "[f2c66c7b3c127bf9,0210014041804890]", "[838123dae0852091,0000000000000008]", "[83800000000000000000000000000000]", "00")
+ self.bid128_rem("0", "[f363427e81567740,1012e9212556b005]", "[0200000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "[f800000000000000,0000000000000000]", "[dabe000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "[fade065e7bff6fbf,805415821d030f92]", "[a8c595b58b10f056,fdbeaf79d6fbbf9f]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "[ffae1f7bbbdfac9f,a1d2e802c5278780]", "[d0434d8a6060e814,0302011024001300]", "[fc001f7bbbdfac9fa1d2e802c5278780]", "01")
+ self.bid128_rem("0", "-Infinity", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("0", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "QNaN", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("1", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_rem("1", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("1", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_rem("1", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("1", "[0065420a01b95380,dfae38016de45fb4]", "[96b1104022ac3cca,72c2b81d8fec995e]", "[0065420a01b95380dfae38016de45fb4]", "00")
+ self.bid128_rem("1", "-0", "-0.E0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("1", "0", "-Infinity", "[30400000000000000000000000000000]", "00")
+ self.bid128_rem("1", "-0", "-Infinity", "[b0400000000000000000000000000000]", "00")
+ self.bid128_rem("1", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("1", "-0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("1", "[397cdc9a254ff562,99bc2af7b316f57c]", "[268d807293a0dcac,afddbd631e831cbb]", "[a68c1d3c3991cbb19eee601c8bdcb12c]", "00")
+ self.bid128_rem("1", "[3a46a1388afe6e50,5418c8e8d3d4bd4b]", "[7e0016f259f8f0aa,f6426a11cf634d38]", "[7c0016f259f8f0aaf6426a11cf634d38]", "01")
+ self.bid128_rem("1", "[3aaf3f4db47ae4f2,3b2705d283e3d160]", "[c6626c7f2d14a3a1,0d507aea3bae04b8]", "[3aaf3f4db47ae4f23b2705d283e3d160]", "00")
+ self.bid128_rem("1", "[4dbc000000000000,0000000000000000]", "[4d138600f520137d,2001e957c4b7cc57]", "[4d120000000000000000000000000000]", "00")
+ self.bid128_rem("1", "[55401804998161f1,6b735f43ecd46f95]", "[7800000000000000,0000000000000000]", "[55401804998161f16b735f43ecd46f95]", "00")
+ self.bid128_rem("1", "[9a00000000000000,0000000000000000]", "[bc58000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("1", "[a1a32dc578f676e4,5bfb68dece45b7d8]", "[bc46000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("1", "[a9f8000000000000,0000000000000000]", "[419ecd52cafad77c,1c15d4445e2c728b]", "[a9f80000000000000000000000000000]", "00")
+ self.bid128_rem("1", "[f800000000000000,0000000000000000]", "[dabe000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("1", "-Infinity", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("1", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("1", "Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("1", "QNaN", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("2", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_rem("2", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("2", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_rem("2", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("2", "[0065420a01b95380,dfae38016de45fb4]", "[96b1104022ac3cca,72c2b81d8fec995e]", "[0065420a01b95380dfae38016de45fb4]", "00")
+ self.bid128_rem("2", "-0", "-0.E0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("2", "0", "-Infinity", "[30400000000000000000000000000000]", "00")
+ self.bid128_rem("2", "-0", "-Infinity", "[b0400000000000000000000000000000]", "00")
+ self.bid128_rem("2", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("2", "-0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("2", "[397cdc9a254ff562,99bc2af7b316f57c]", "[268d807293a0dcac,afddbd631e831cbb]", "[a68c1d3c3991cbb19eee601c8bdcb12c]", "00")
+ self.bid128_rem("2", "[3a46a1388afe6e50,5418c8e8d3d4bd4b]", "[7e0016f259f8f0aa,f6426a11cf634d38]", "[7c0016f259f8f0aaf6426a11cf634d38]", "01")
+ self.bid128_rem("2", "[3aaf3f4db47ae4f2,3b2705d283e3d160]", "[c6626c7f2d14a3a1,0d507aea3bae04b8]", "[3aaf3f4db47ae4f23b2705d283e3d160]", "00")
+ self.bid128_rem("2", "[4dbc000000000000,0000000000000000]", "[4d138600f520137d,2001e957c4b7cc57]", "[4d120000000000000000000000000000]", "00")
+ self.bid128_rem("2", "[55401804998161f1,6b735f43ecd46f95]", "[7800000000000000,0000000000000000]", "[55401804998161f16b735f43ecd46f95]", "00")
+ self.bid128_rem("2", "[9a00000000000000,0000000000000000]", "[bc58000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("2", "[a1a32dc578f676e4,5bfb68dece45b7d8]", "[bc46000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("2", "[a9f8000000000000,0000000000000000]", "[419ecd52cafad77c,1c15d4445e2c728b]", "[a9f80000000000000000000000000000]", "00")
+ self.bid128_rem("2", "[f800000000000000,0000000000000000]", "[dabe000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("2", "-Infinity", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("2", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("2", "Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("2", "QNaN", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("3", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_rem("3", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("3", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_rem("3", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("3", "[0065420a01b95380,dfae38016de45fb4]", "[96b1104022ac3cca,72c2b81d8fec995e]", "[0065420a01b95380dfae38016de45fb4]", "00")
+ self.bid128_rem("3", "-0", "-0.E0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("3", "0", "-Infinity", "[30400000000000000000000000000000]", "00")
+ self.bid128_rem("3", "-0", "-Infinity", "[b0400000000000000000000000000000]", "00")
+ self.bid128_rem("3", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("3", "-0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("3", "[397cdc9a254ff562,99bc2af7b316f57c]", "[268d807293a0dcac,afddbd631e831cbb]", "[a68c1d3c3991cbb19eee601c8bdcb12c]", "00")
+ self.bid128_rem("3", "[3a46a1388afe6e50,5418c8e8d3d4bd4b]", "[7e0016f259f8f0aa,f6426a11cf634d38]", "[7c0016f259f8f0aaf6426a11cf634d38]", "01")
+ self.bid128_rem("3", "[3aaf3f4db47ae4f2,3b2705d283e3d160]", "[c6626c7f2d14a3a1,0d507aea3bae04b8]", "[3aaf3f4db47ae4f23b2705d283e3d160]", "00")
+ self.bid128_rem("3", "[4dbc000000000000,0000000000000000]", "[4d138600f520137d,2001e957c4b7cc57]", "[4d120000000000000000000000000000]", "00")
+ self.bid128_rem("3", "[55401804998161f1,6b735f43ecd46f95]", "[7800000000000000,0000000000000000]", "[55401804998161f16b735f43ecd46f95]", "00")
+ self.bid128_rem("3", "[9a00000000000000,0000000000000000]", "[bc58000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("3", "[a1a32dc578f676e4,5bfb68dece45b7d8]", "[bc46000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("3", "[a9f8000000000000,0000000000000000]", "[419ecd52cafad77c,1c15d4445e2c728b]", "[a9f80000000000000000000000000000]", "00")
+ self.bid128_rem("3", "[f800000000000000,0000000000000000]", "[dabe000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("3", "-Infinity", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("3", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("3", "Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("3", "QNaN", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("4", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_rem("4", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("4", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_rem("4", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("4", "[0065420a01b95380,dfae38016de45fb4]", "[96b1104022ac3cca,72c2b81d8fec995e]", "[0065420a01b95380dfae38016de45fb4]", "00")
+ self.bid128_rem("4", "-0", "-0.E0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("4", "0", "-Infinity", "[30400000000000000000000000000000]", "00")
+ self.bid128_rem("4", "-0", "-Infinity", "[b0400000000000000000000000000000]", "00")
+ self.bid128_rem("4", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("4", "-0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("4", "[397cdc9a254ff562,99bc2af7b316f57c]", "[268d807293a0dcac,afddbd631e831cbb]", "[a68c1d3c3991cbb19eee601c8bdcb12c]", "00")
+ self.bid128_rem("4", "[3a46a1388afe6e50,5418c8e8d3d4bd4b]", "[7e0016f259f8f0aa,f6426a11cf634d38]", "[7c0016f259f8f0aaf6426a11cf634d38]", "01")
+ self.bid128_rem("4", "[3aaf3f4db47ae4f2,3b2705d283e3d160]", "[c6626c7f2d14a3a1,0d507aea3bae04b8]", "[3aaf3f4db47ae4f23b2705d283e3d160]", "00")
+ self.bid128_rem("4", "[4dbc000000000000,0000000000000000]", "[4d138600f520137d,2001e957c4b7cc57]", "[4d120000000000000000000000000000]", "00")
+ self.bid128_rem("4", "[55401804998161f1,6b735f43ecd46f95]", "[7800000000000000,0000000000000000]", "[55401804998161f16b735f43ecd46f95]", "00")
+ self.bid128_rem("4", "[9a00000000000000,0000000000000000]", "[bc58000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("4", "[a1a32dc578f676e4,5bfb68dece45b7d8]", "[bc46000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("4", "[a9f8000000000000,0000000000000000]", "[419ecd52cafad77c,1c15d4445e2c728b]", "[a9f80000000000000000000000000000]", "00")
+ self.bid128_rem("4", "[f800000000000000,0000000000000000]", "[dabe000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("4", "-Infinity", "-0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_rem("4", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("4", "Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("4", "QNaN", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_rem("0", "99", "66", "-33", "00")
+ }
+
+ private func bid128_rem(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.remainder(dividingBy: arg1, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+
+ let result2 = self.remainderFromTruncatingRemainder(arg0, dividingBy: arg1)
+ self.assertEqual(result2, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelRoundTests.swift b/Tests/DecimalTests/Intel - generated/IntelRoundTests.swift
new file mode 100644
index 0000000..feec75a
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelRoundTests.swift
@@ -0,0 +1,1302 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelRoundTests: XCTestCase, IntelMixin {
+
+ func test_bid32_round_integral_exact() {
+ self.bid32_round_integral_exact("0", "[00000001]", "[32800000]", "20")
+ self.bid32_round_integral_exact("0", "[00080001]", "[32800000]", "20")
+ self.bid32_round_integral_exact("0", "1.0", "[32800001]", "00")
+ self.bid32_round_integral_exact("0", "-1.0", "[b2800001]", "00")
+ self.bid32_round_integral_exact("0", "1.0e-96", "[32800000]", "20")
+ self.bid32_round_integral_exact("0", "-1.0e-96", "[b2800000]", "20")
+ self.bid32_round_integral_exact("0", "[6098967f]", "[32800000]", "20")
+ self.bid32_round_integral_exact("0", "[60989680]", "[32800000]", "00")
+ self.bid32_round_integral_exact("0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_round_integral_exact("0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_round_integral_exact("0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_round_integral_exact("0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_round_integral_exact("0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_round_integral_exact("0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_round_integral_exact("0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_round_integral_exact("0", "[80000001]", "[b2800000]", "20")
+ self.bid32_round_integral_exact("0", "9.999999e-95", "[32800000]", "20")
+ self.bid32_round_integral_exact("0", "-9.999999e-95", "[b2800000]", "20")
+ self.bid32_round_integral_exact("0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_round_integral_exact("0", "-9.999999e96", "[f7f8967f]", "00")
+ self.bid32_round_integral_exact("0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_round_integral_exact("0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_round_integral_exact("0", "[fe000000]", "[fc000000]", "01")
+ }
+
+ private func bid32_round_integral_exact(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_round_integral_nearest_away() {
+ self.bid32_round_integral_nearest_away("0", "[00000001]", "[32800000]", "00")
+ self.bid32_round_integral_nearest_away("0", "[00080001]", "[32800000]", "00")
+ self.bid32_round_integral_nearest_away("0", "1.0", "[32800001]", "00")
+ self.bid32_round_integral_nearest_away("0", "-1.0", "[b2800001]", "00")
+ self.bid32_round_integral_nearest_away("0", "1.0e-96", "[32800000]", "00")
+ self.bid32_round_integral_nearest_away("0", "-1.0e-96", "[b2800000]", "00")
+ self.bid32_round_integral_nearest_away("0", "[6098967f]", "[32800000]", "00")
+ self.bid32_round_integral_nearest_away("0", "[60989680]", "[32800000]", "00")
+ self.bid32_round_integral_nearest_away("0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_round_integral_nearest_away("0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_round_integral_nearest_away("0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_round_integral_nearest_away("0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_round_integral_nearest_away("0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_round_integral_nearest_away("0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_round_integral_nearest_away("0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_round_integral_nearest_away("0", "[80000001]", "[b2800000]", "00")
+ self.bid32_round_integral_nearest_away("0", "9.999999e-95", "[32800000]", "00")
+ self.bid32_round_integral_nearest_away("0", "-9.999999e-95", "[b2800000]", "00")
+ self.bid32_round_integral_nearest_away("0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_round_integral_nearest_away("0", "-9.999999e96", "[f7f8967f]", "00")
+ self.bid32_round_integral_nearest_away("0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_round_integral_nearest_away("0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_round_integral_nearest_away("0", "[fe000000]", "[fc000000]", "01")
+ }
+
+ private func bid32_round_integral_nearest_away(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.toNearestOrAwayFromZero, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_round_integral_nearest_even() {
+ self.bid32_round_integral_nearest_even("0", "[00000001]", "[32800000]", "00")
+ self.bid32_round_integral_nearest_even("0", "[00080001]", "[32800000]", "00")
+ self.bid32_round_integral_nearest_even("0", "1.0", "[32800001]", "00")
+ self.bid32_round_integral_nearest_even("0", "-1.0", "[b2800001]", "00")
+ self.bid32_round_integral_nearest_even("0", "1.0e-96", "[32800000]", "00")
+ self.bid32_round_integral_nearest_even("0", "-1.0e-96", "[b2800000]", "00")
+ self.bid32_round_integral_nearest_even("0", "[6098967f]", "[32800000]", "00")
+ self.bid32_round_integral_nearest_even("0", "[60989680]", "[32800000]", "00")
+ self.bid32_round_integral_nearest_even("0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_round_integral_nearest_even("0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_round_integral_nearest_even("0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_round_integral_nearest_even("0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_round_integral_nearest_even("0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_round_integral_nearest_even("0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_round_integral_nearest_even("0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_round_integral_nearest_even("0", "[80000001]", "[b2800000]", "00")
+ self.bid32_round_integral_nearest_even("0", "9.999999e-95", "[32800000]", "00")
+ self.bid32_round_integral_nearest_even("0", "-9.999999e-95", "[b2800000]", "00")
+ self.bid32_round_integral_nearest_even("0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_round_integral_nearest_even("0", "-9.999999e96", "[f7f8967f]", "00")
+ self.bid32_round_integral_nearest_even("0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_round_integral_nearest_even("0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_round_integral_nearest_even("0", "[fe000000]", "[fc000000]", "01")
+ }
+
+ private func bid32_round_integral_nearest_even(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.toNearestOrEven, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_round_integral_negative() {
+ self.bid32_round_integral_negative("0", "[00000001]", "[32800000]", "00")
+ self.bid32_round_integral_negative("0", "[00080001]", "[32800000]", "00")
+ self.bid32_round_integral_negative("0", "1.0", "[32800001]", "00")
+ self.bid32_round_integral_negative("0", "-1.0", "[b2800001]", "00")
+ self.bid32_round_integral_negative("0", "1.0e-96", "[32800000]", "00")
+ self.bid32_round_integral_negative("0", "-1.0e-96", "[b2800001]", "00")
+ self.bid32_round_integral_negative("0", "[6098967f]", "[32800000]", "00")
+ self.bid32_round_integral_negative("0", "[60989680]", "[32800000]", "00")
+ self.bid32_round_integral_negative("0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_round_integral_negative("0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_round_integral_negative("0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_round_integral_negative("0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_round_integral_negative("0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_round_integral_negative("0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_round_integral_negative("0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_round_integral_negative("0", "[80000001]", "[b2800001]", "00")
+ self.bid32_round_integral_negative("0", "9.999999e-95", "[32800000]", "00")
+ self.bid32_round_integral_negative("0", "-9.999999e-95", "[b2800001]", "00")
+ self.bid32_round_integral_negative("0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_round_integral_negative("0", "-9.999999e96", "[f7f8967f]", "00")
+ self.bid32_round_integral_negative("0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_round_integral_negative("0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_round_integral_negative("0", "[fe000000]", "[fc000000]", "01")
+ }
+
+ private func bid32_round_integral_negative(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.down, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_round_integral_positive() {
+ self.bid32_round_integral_positive("0", "[00000001]", "[32800001]", "00")
+ self.bid32_round_integral_positive("0", "[00080001]", "[32800001]", "00")
+ self.bid32_round_integral_positive("0", "1.0", "[32800001]", "00")
+ self.bid32_round_integral_positive("0", "-1.0", "[b2800001]", "00")
+ self.bid32_round_integral_positive("0", "1.0e-96", "[32800001]", "00")
+ self.bid32_round_integral_positive("0", "-1.0e-96", "[b2800000]", "00")
+ self.bid32_round_integral_positive("0", "[6098967f]", "[32800001]", "00")
+ self.bid32_round_integral_positive("0", "[60989680]", "[32800000]", "00")
+ self.bid32_round_integral_positive("0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_round_integral_positive("0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_round_integral_positive("0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_round_integral_positive("0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_round_integral_positive("0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_round_integral_positive("0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_round_integral_positive("0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_round_integral_positive("0", "[80000001]", "[b2800000]", "00")
+ self.bid32_round_integral_positive("0", "9.999999e-95", "[32800001]", "00")
+ self.bid32_round_integral_positive("0", "-9.999999e-95", "[b2800000]", "00")
+ self.bid32_round_integral_positive("0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_round_integral_positive("0", "-9.999999e96", "[f7f8967f]", "00")
+ self.bid32_round_integral_positive("0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_round_integral_positive("0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_round_integral_positive("0", "[fe000000]", "[fc000000]", "01")
+ }
+
+ private func bid32_round_integral_positive(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.up, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_round_integral_zero() {
+ self.bid32_round_integral_zero("0", "[00000001]", "[32800000]", "00")
+ self.bid32_round_integral_zero("0", "[00080001]", "[32800000]", "00")
+ self.bid32_round_integral_zero("0", "1.0", "[32800001]", "00")
+ self.bid32_round_integral_zero("0", "-1.0", "[b2800001]", "00")
+ self.bid32_round_integral_zero("0", "1.0e-96", "[32800000]", "00")
+ self.bid32_round_integral_zero("0", "-1.0e-96", "[b2800000]", "00")
+ self.bid32_round_integral_zero("0", "[6098967f]", "[32800000]", "00")
+ self.bid32_round_integral_zero("0", "[60989680]", "[32800000]", "00")
+ self.bid32_round_integral_zero("0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_round_integral_zero("0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_round_integral_zero("0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_round_integral_zero("0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_round_integral_zero("0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_round_integral_zero("0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_round_integral_zero("0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_round_integral_zero("0", "[80000001]", "[b2800000]", "00")
+ self.bid32_round_integral_zero("0", "9.999999e-95", "[32800000]", "00")
+ self.bid32_round_integral_zero("0", "-9.999999e-95", "[b2800000]", "00")
+ self.bid32_round_integral_zero("0", "9.999999e96", "[77f8967f]", "00")
+ self.bid32_round_integral_zero("0", "-9.999999e96", "[f7f8967f]", "00")
+ self.bid32_round_integral_zero("0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_round_integral_zero("0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_round_integral_zero("0", "[fe000000]", "[fc000000]", "01")
+ }
+
+ private func bid32_round_integral_zero(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.towardZero, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_round_integral_exact() {
+ self.bid64_round_integral_exact("0", "[0000000000000000]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_exact("0", "[008f2530eb6db2a1]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("0", "-0", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_exact("0", "[19361b3b0211add7]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("0", "[2a0492c0be73d94b]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("0", "[30b0c259a51afc52]", "[31c000000047faea]", "20")
+ self.bid64_round_integral_exact("0", "[31a2c800c054c05b]", "[31c04733466ee009]", "20")
+ self.bid64_round_integral_exact("0", "[31a6fef2b97fbb45]", "[31c0b31845bff920]", "20")
+ self.bid64_round_integral_exact("0", "-3548.867894472667E0", "[b1c0000000000ddd]", "20")
+ self.bid64_round_integral_exact("0", "+38863664.57647E0", "[31c0000002510331]", "20")
+ self.bid64_round_integral_exact("0", "[3a6cf1ef71ca14ba]", "[3a6cf1ef71ca14ba]", "00")
+ self.bid64_round_integral_exact("0", "[3d40000000000000]", "[3d40000000000000]", "00")
+ self.bid64_round_integral_exact("0", "[68cfd1541eb6185b]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_exact("0", "[7288138c89db4604]", "[7288138c89db4604]", "00")
+ self.bid64_round_integral_exact("0", "[8040000100009001]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("0", "[96bee03b9a3f8c6b]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("0", "-9.989989988998E0", "[b1c000000000000a]", "20")
+ self.bid64_round_integral_exact("0", "-9.99999E0", "[b1c000000000000a]", "20")
+ self.bid64_round_integral_exact("0", "[9d3c1033181234e4]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("0", "[a441ee3e74f4e7fa]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("0", "[a5ccb6d4ce793502]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("0", "[b00000090100a806]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("0", "[b1b7a5f91cfda896]", "[b1c25d65b6195da9]", "20")
+ self.bid64_round_integral_exact("0", "[c08fc338e9a8d033]", "[c08fc338e9a8d033]", "00")
+ self.bid64_round_integral_exact("0", "[c2559f8764346614]", "[c2559f8764346614]", "00")
+ self.bid64_round_integral_exact("0", "[c3e3e893b025b31a]", "[c3e3e893b025b31a]", "00")
+ self.bid64_round_integral_exact("0", "[ec02f18088363b22]", "[b1c0000000000062]", "20")
+ self.bid64_round_integral_exact("0", "[fbbfc9f9e9bdfffd]", "[f800000000000000]", "00")
+ self.bid64_round_integral_exact("0", "[fd7fefedfeffda52]", "[fc00000000000000]", "00")
+ self.bid64_round_integral_exact("0", "[ffffffffffffffff]", "[fc00000000000000]", "01")
+ self.bid64_round_integral_exact("0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_round_integral_exact("1", "[008f2530eb6db2a1]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("1", "-0", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_exact("1", "[1025090a2e144640]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("1", "[19361b3b0211add7]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("1", "[2a0492c0be73d94b]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("1", "[300011811304a942]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("1", "[30b0c259a51afc52]", "[31c000000047fae9]", "20")
+ self.bid64_round_integral_exact("1", "-3548.867894472667E0", "[b1c0000000000ddd]", "20")
+ self.bid64_round_integral_exact("1", "+38863664.57647E0", "[31c0000002510330]", "20")
+ self.bid64_round_integral_exact("1", "[3a6cf1ef71ca14ba]", "[3a6cf1ef71ca14ba]", "00")
+ self.bid64_round_integral_exact("1", "[3d40000000000000]", "[3d40000000000000]", "00")
+ self.bid64_round_integral_exact("1", "[8040000100009001]", "[b1c0000000000001]", "20")
+ self.bid64_round_integral_exact("1", "[96bee03b9a3f8c6b]", "[b1c0000000000001]", "20")
+ self.bid64_round_integral_exact("1", "-9.989989988998E0", "[b1c000000000000a]", "20")
+ self.bid64_round_integral_exact("1", "-9.99999E0", "[b1c000000000000a]", "20")
+ self.bid64_round_integral_exact("1", "[9d3c1033181234e4]", "[b1c0000000000001]", "20")
+ self.bid64_round_integral_exact("1", "[a441ee3e74f4e7fa]", "[b1c0000000000001]", "20")
+ self.bid64_round_integral_exact("1", "[a5ccb6d4ce793502]", "[b1c0000000000001]", "20")
+ self.bid64_round_integral_exact("1", "[b00000090100a806]", "[b1c0000000000001]", "20")
+ self.bid64_round_integral_exact("1", "[b1b7a5f91cfda896]", "[b1c25d65b6195da9]", "20")
+ self.bid64_round_integral_exact("1", "[c08fc338e9a8d033]", "[c08fc338e9a8d033]", "00")
+ self.bid64_round_integral_exact("1", "[c2559f8764346614]", "[c2559f8764346614]", "00")
+ self.bid64_round_integral_exact("1", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_round_integral_exact("2", "[008f2530eb6db2a1]", "[31c0000000000001]", "20")
+ self.bid64_round_integral_exact("2", "-0", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_exact("2", "[1025090a2e144640]", "[31c0000000000001]", "20")
+ self.bid64_round_integral_exact("2", "[19361b3b0211add7]", "[31c0000000000001]", "20")
+ self.bid64_round_integral_exact("2", "[2a0492c0be73d94b]", "[31c0000000000001]", "20")
+ self.bid64_round_integral_exact("2", "[300011811304a942]", "[31c0000000000001]", "20")
+ self.bid64_round_integral_exact("2", "[30b0c259a51afc52]", "[31c000000047faea]", "20")
+ self.bid64_round_integral_exact("2", "-3548.867894472667E0", "[b1c0000000000ddc]", "20")
+ self.bid64_round_integral_exact("2", "+38863664.57647E0", "[31c0000002510331]", "20")
+ self.bid64_round_integral_exact("2", "[3a6cf1ef71ca14ba]", "[3a6cf1ef71ca14ba]", "00")
+ self.bid64_round_integral_exact("2", "[3d40000000000000]", "[3d40000000000000]", "00")
+ self.bid64_round_integral_exact("2", "[8040000100009001]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("2", "[96bee03b9a3f8c6b]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("2", "-9.989989988998E0", "[b1c0000000000009]", "20")
+ self.bid64_round_integral_exact("2", "-9.99999E0", "[b1c0000000000009]", "20")
+ self.bid64_round_integral_exact("2", "[9d3c1033181234e4]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("2", "[a441ee3e74f4e7fa]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("2", "[a5ccb6d4ce793502]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("2", "[b00000090100a806]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("2", "[b1b7a5f91cfda896]", "[b1c25d65b6195da8]", "20")
+ self.bid64_round_integral_exact("2", "[c08fc338e9a8d033]", "[c08fc338e9a8d033]", "00")
+ self.bid64_round_integral_exact("2", "[c2559f8764346614]", "[c2559f8764346614]", "00")
+ self.bid64_round_integral_exact("2", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_round_integral_exact("3", "[008f2530eb6db2a1]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("3", "-0", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_exact("3", "[19361b3b0211add7]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("3", "[2a0492c0be73d94b]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("3", "[30b0c259a51afc52]", "[31c000000047fae9]", "20")
+ self.bid64_round_integral_exact("3", "-3548.867894472667E0", "[b1c0000000000ddc]", "20")
+ self.bid64_round_integral_exact("3", "+38863664.57647E0", "[31c0000002510330]", "20")
+ self.bid64_round_integral_exact("3", "[3a6cf1ef71ca14ba]", "[3a6cf1ef71ca14ba]", "00")
+ self.bid64_round_integral_exact("3", "[3d40000000000000]", "[3d40000000000000]", "00")
+ self.bid64_round_integral_exact("3", "[8040000100009001]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("3", "[96bee03b9a3f8c6b]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("3", "-9.989989988998E0", "[b1c0000000000009]", "20")
+ self.bid64_round_integral_exact("3", "-9.99999E0", "[b1c0000000000009]", "20")
+ self.bid64_round_integral_exact("3", "[9d3c1033181234e4]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("3", "[a441ee3e74f4e7fa]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("3", "[a5ccb6d4ce793502]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("3", "[b00000090100a806]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("3", "[b1b7a5f91cfda896]", "[b1c25d65b6195da8]", "20")
+ self.bid64_round_integral_exact("3", "[c08fc338e9a8d033]", "[c08fc338e9a8d033]", "00")
+ self.bid64_round_integral_exact("3", "[c2559f8764346614]", "[c2559f8764346614]", "00")
+ self.bid64_round_integral_exact("3", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_round_integral_exact("4", "[008f2530eb6db2a1]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("4", "-0", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_exact("4", "[19361b3b0211add7]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("4", "[2a0492c0be73d94b]", "[31c0000000000000]", "20")
+ self.bid64_round_integral_exact("4", "[30b0c259a51afc52]", "[31c000000047faea]", "20")
+ self.bid64_round_integral_exact("4", "[31a2c800c054c05b]", "[31c04733466ee009]", "20")
+ self.bid64_round_integral_exact("4", "-3548.867894472667E0", "[b1c0000000000ddd]", "20")
+ self.bid64_round_integral_exact("4", "+38863664.57647E0", "[31c0000002510331]", "20")
+ self.bid64_round_integral_exact("4", "[3a6cf1ef71ca14ba]", "[3a6cf1ef71ca14ba]", "00")
+ self.bid64_round_integral_exact("4", "[3d40000000000000]", "[3d40000000000000]", "00")
+ self.bid64_round_integral_exact("4", "[96bee03b9a3f8c6b]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("4", "-9.989989988998E0", "[b1c000000000000a]", "20")
+ self.bid64_round_integral_exact("4", "-9.99999E0", "[b1c000000000000a]", "20")
+ self.bid64_round_integral_exact("4", "[9d3c1033181234e4]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("4", "[a441ee3e74f4e7fa]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("4", "[a5ccb6d4ce793502]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("4", "[b00000090100a806]", "[b1c0000000000000]", "20")
+ self.bid64_round_integral_exact("4", "[b1b7a5f91cfda896]", "[b1c25d65b6195da9]", "20")
+ self.bid64_round_integral_exact("4", "[c2559f8764346614]", "[c2559f8764346614]", "00")
+ self.bid64_round_integral_exact("4", "[ec02f18088363b22]", "[b1c0000000000062]", "20")
+ self.bid64_round_integral_exact("4", "SNaN", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_round_integral_exact(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_round_integral_nearest_away() {
+ self.bid64_round_integral_nearest_away("0", "[0000000000000000]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "[001040000000140c]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "0", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "[0ebf000000000000]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "[3000042000096042]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "[318ad42b83214976]", "[31c01bb8c14fb160]", "00")
+ self.bid64_round_integral_nearest_away("0", "[344d663e925522bd]", "[344d663e925522bd]", "00")
+ self.bid64_round_integral_nearest_away("0", "[352287c45d071d0f]", "[352287c45d071d0f]", "00")
+ self.bid64_round_integral_nearest_away("0", "[38191e30b4b7f718]", "[38191e30b4b7f718]", "00")
+ self.bid64_round_integral_nearest_away("0", "[42e06477388fc706]", "[42e06477388fc706]", "00")
+ self.bid64_round_integral_nearest_away("0", "[44d139ed5c11b67e]", "[44d139ed5c11b67e]", "00")
+ self.bid64_round_integral_nearest_away("0", "[65315f0102f71959]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "[ae7ce2cf6b3dec4b]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "[b11650001088834b]", "[b1c0000176577647]", "00")
+ self.bid64_round_integral_nearest_away("0", "[b1a0000000000000]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "[b840000000000000]", "[b840000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "[c46d127074d850c9]", "[c46d127074d850c9]", "00")
+ self.bid64_round_integral_nearest_away("0", "[c59e55d5feef1bfe]", "[c59e55d5feef1bfe]", "00")
+ self.bid64_round_integral_nearest_away("0", "[e9884af887152ee2]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "[ecf9bf677edce7ce]", "[ecf9bf677edce7ce]", "00")
+ self.bid64_round_integral_nearest_away("0", "[f2f5d1ebb9b6abc8]", "[cbc0000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "[ffffffffffffffff]", "[fc00000000000000]", "01")
+ self.bid64_round_integral_nearest_away("0", "Infinity", "[7800000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_round_integral_nearest_away("0", "SNaN", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_round_integral_nearest_away(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.toNearestOrAwayFromZero, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_round_integral_nearest_even() {
+ self.bid64_round_integral_nearest_even("0", "[0000000000000000]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "[01c0409004000000]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "0", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "[122f3ec26c27b361]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "[1966790cc80a1b3a]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "[298800870a018249]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "[317a83d36ac8f188]", "[31c006c9aef46cc9]", "00")
+ self.bid64_round_integral_nearest_even("0", "[3c23b3355cc7ef47]", "[3c23b3355cc7ef47]", "00")
+ self.bid64_round_integral_nearest_even("0", "[3ff1f7fcf3a1edb5]", "[3ff1f7fcf3a1edb5]", "00")
+ self.bid64_round_integral_nearest_even("0", "[5b7366576d65013c]", "[5b7366576d65013c]", "00")
+ self.bid64_round_integral_nearest_even("0", "[5bd9b8c6ef328b2d]", "[5bd9b8c6ef328b2d]", "00")
+ self.bid64_round_integral_nearest_even("0", "[5f20000000000000]", "[5f20000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "[9520000000000000]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "[a65cf4be4d29a63d]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "[b000080120100a00]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "[b0659b9f04fb2cb8]", "[b1c0000000003da9]", "00")
+ self.bid64_round_integral_nearest_even("0", "[b1bf3cbdefdffd7d]", "[b1c31fac97fccc8c]", "00")
+ self.bid64_round_integral_nearest_even("0", "[bdc2f88bb868c381]", "[bdc2f88bb868c381]", "00")
+ self.bid64_round_integral_nearest_even("0", "[c061cab98a3cb4df]", "[c061cab98a3cb4df]", "00")
+ self.bid64_round_integral_nearest_even("0", "[c21fc0e99bd80e06]", "[c21fc0e99bd80e06]", "00")
+ self.bid64_round_integral_nearest_even("0", "[ef2dc5ade35a42ad]", "[bca0000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "[f7f261ea3cbdff7e]", "[f7f261ea3cbdff7e]", "00")
+ self.bid64_round_integral_nearest_even("0", "[fa4eb56f810680a4]", "[f800000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "[fffff6fbefffe7ff]", "[fc00000000000000]", "01")
+ self.bid64_round_integral_nearest_even("0", "Infinity", "[7800000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "-Infinity", "[f800000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_round_integral_nearest_even("0", "SNaN", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_round_integral_nearest_even(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.toNearestOrEven, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_round_integral_negative() {
+ self.bid64_round_integral_negative("0", "[0000000000000000]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_negative("0", "[1698b6c95a90f99f]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_negative("0", "[2000009001000200]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_negative("0", "[30004914028800b8]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_negative("0", "[3118016000000808]", "[31c0000192be48a5]", "00")
+ self.bid64_round_integral_negative("0", "[34600b6036223007]", "[34600b6036223007]", "00")
+ self.bid64_round_integral_negative("0", "[3749dc7f132d3d0a]", "[3749dc7f132d3d0a]", "00")
+ self.bid64_round_integral_negative("0", "[44f487fdb8b4c243]", "[44f487fdb8b4c243]", "00")
+ self.bid64_round_integral_negative("0", "[6c60335ab86bec39]", "[31c0526efcb96633]", "00")
+ self.bid64_round_integral_negative("0", "[6d38b17f82fad382]", "[6d38b17f82fad382]", "00")
+ self.bid64_round_integral_negative("0", "[8c00000000000000]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_negative("0", "[8dc0508521cd5127]", "[b1c0000000000001]", "00")
+ self.bid64_round_integral_negative("0", "[9946650664f4f9e3]", "[b1c0000000000001]", "00")
+ self.bid64_round_integral_negative("0", "[9b0a451b3665f421]", "[b1c0000000000001]", "00")
+ self.bid64_round_integral_negative("0", "[9c409dc20851aa82]", "[b1c0000000000001]", "00")
+ self.bid64_round_integral_negative("0", "[aa20000000000000]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_negative("0", "[b000381285510401]", "[b1c0000000000001]", "00")
+ self.bid64_round_integral_negative("0", "[b136af255daae29d]", "[b1c0000eddc56bd6]", "00")
+ self.bid64_round_integral_negative("0", "[b3d4e28068cf485d]", "[b3d4e28068cf485d]", "00")
+ self.bid64_round_integral_negative("0", "[bb7ef9b05c9e0cd4]", "[bb7ef9b05c9e0cd4]", "00")
+ self.bid64_round_integral_negative("0", "[ca9ded372218bb92]", "[ca9ded372218bb92]", "00")
+ self.bid64_round_integral_negative("0", "[cda2c902b15861e0]", "[cda2c902b15861e0]", "00")
+ self.bid64_round_integral_negative("0", "[e5faab2e7bfde8f7]", "[b1c0000000000001]", "00")
+ self.bid64_round_integral_negative("0", "[ea4c5fde262f578d]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_negative("0", "[f986cc74d2071536]", "[f800000000000000]", "00")
+ self.bid64_round_integral_negative("0", "[fe3effdfdb433b5f]", "[fc02ffdfdb433b5f]", "01")
+ self.bid64_round_integral_negative("0", "[fffffffffffffdff]", "[fc00000000000000]", "01")
+ self.bid64_round_integral_negative("0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_round_integral_negative("0", "SNaN", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_round_integral_negative(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.down, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_round_integral_positive() {
+ self.bid64_round_integral_positive("0", "[0000000000000000]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_positive("0", "[0040040010100800]", "[31c0000000000001]", "00")
+ self.bid64_round_integral_positive("0", "[01aca948242e8ce9]", "[31c0000000000001]", "00")
+ self.bid64_round_integral_positive("0", "0", "[31c0000000000000]", "00")
+ self.bid64_round_integral_positive("0", "[08c1000000000000]", "[31c0000000000001]", "00")
+ self.bid64_round_integral_positive("0", "-0", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_positive("0", "[3000182000200204]", "[31c0000000000001]", "00")
+ self.bid64_round_integral_positive("0", "[318fffee5cb1f7cb]", "[31c028f595682e00]", "00")
+ self.bid64_round_integral_positive("0", "[38e3152cbfc0d32e]", "[38e3152cbfc0d32e]", "00")
+ self.bid64_round_integral_positive("0", "[3ba0000000000000]", "[3ba0000000000000]", "00")
+ self.bid64_round_integral_positive("0", "[41fecceb44f309d5]", "[41fecceb44f309d5]", "00")
+ self.bid64_round_integral_positive("0", "[4ae3a0950988606c]", "[4ae3a0950988606c]", "00")
+ self.bid64_round_integral_positive("0", "[557d63bf6a3df7ae]", "[557d63bf6a3df7ae]", "00")
+ self.bid64_round_integral_positive("0", "[8b61791ce8584f32]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_positive("0", "[94c0000000000000]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_positive("0", "[a7ddebcc9a46edc1]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_positive("0", "[b00041b61a454101]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_positive("0", "[b02050acaed32bff]", "[b1c0000000000008]", "00")
+ self.bid64_round_integral_positive("0", "[bc9faa0346fd925b]", "[bc9faa0346fd925b]", "00")
+ self.bid64_round_integral_positive("0", "[c7e1158478b3e876]", "[c7e1158478b3e876]", "00")
+ self.bid64_round_integral_positive("0", "[dae29979b6bc48ce]", "[dae29979b6bc48ce]", "00")
+ self.bid64_round_integral_positive("0", "[e043498baef72083]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_positive("0", "[ecaa15bc91e764ec]", "[ecaa15bc91e764ec]", "00")
+ self.bid64_round_integral_positive("0", "[f6465d2110be89d5]", "[d900000000000000]", "00")
+ self.bid64_round_integral_positive("0", "[fd39ef5fbdcf73d4]", "[fc01ef5fbdcf73d4]", "00")
+ self.bid64_round_integral_positive("0", "[ffdbfff73ffbffb7]", "[fc00000000000000]", "01")
+ self.bid64_round_integral_positive("0", "Infinity", "[7800000000000000]", "00")
+ self.bid64_round_integral_positive("0", "-Infinity", "[f800000000000000]", "00")
+ self.bid64_round_integral_positive("0", "SNaN", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_round_integral_positive(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.up, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_round_integral_zero() {
+ self.bid64_round_integral_zero("0", "[0000000000000000]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[00e0000000000000]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "0", "[31c0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "+10011001001110000.010E0", "[31e38e7ec7da0a98]", "00")
+ self.bid64_round_integral_zero("0", "[12f48c419c7c162c]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[1c7c77621629c5c1]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[2004000040600010]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[300008313e021000]", "[31c0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[3044020248482608]", "[31c0000000000468]", "00")
+ self.bid64_round_integral_zero("0", "[3ba71f380a6bd963]", "[3ba71f380a6bd963]", "00")
+ self.bid64_round_integral_zero("0", "[3dc0000000000000]", "[3dc0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[72f8031406c00cd0]", "[72f8031406c00cd0]", "00")
+ self.bid64_round_integral_zero("0", "[97380e63bd57041b]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[a80231d6acd74f18]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[aea9db49a45d7aaf]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[b1bc6ea70343d80e]", "[b1c2d7dd8053959b]", "00")
+ self.bid64_round_integral_zero("0", "[b3c3f729d481bb82]", "[b3c3f729d481bb82]", "00")
+ self.bid64_round_integral_zero("0", "[b44956b0e6f1d142]", "[b44956b0e6f1d142]", "00")
+ self.bid64_round_integral_zero("0", "[bd1807d37267366f]", "[bd1807d37267366f]", "00")
+ self.bid64_round_integral_zero("0", "[c7998a089b34fdcc]", "[c7998a089b34fdcc]", "00")
+ self.bid64_round_integral_zero("0", "[d582a26bd30897ec]", "[d582a26bd30897ec]", "00")
+ self.bid64_round_integral_zero("0", "[eabafffbfdfdffff]", "[b1c0000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[ede38ae279475ae0]", "[b780000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[fdbfe96ffbdff9e7]", "[fc00000000000000]", "00")
+ self.bid64_round_integral_zero("0", "[ff7ffffffffffeff]", "[fc00000000000000]", "01")
+ self.bid64_round_integral_zero("0", "-Infinity", "[f800000000000000]", "00")
+ self.bid64_round_integral_zero("0", "SNaN", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_round_integral_zero(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.towardZero, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_round_integral_exact() {
+ self.bid128_round_integral_exact("0", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("0", "[0001ed09bead87c0378d8e64ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[08ba054b6c1ab0d6,309b227aa7c22b95]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("0", "+110001010110.1011011E0", "[3040000000000000000000199c9235be]", "20")
+ self.bid128_round_integral_exact("0", "[1e5c1f24c0fe8797,defcac74117b0cc9]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("0", "[24ae17bee0e3ca29,e64a0dd36e6d274d]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("0", "-28997.76477725255E0", "[b0400000000000000000000000007146]", "20")
+ self.bid128_round_integral_exact("0", "[2ffebe978c67d78e,ffffffffffffffff]", "[30400000000000000000000000000004]", "20")
+ self.bid128_round_integral_exact("0", "[2fff7ebfbfde27ef,1f9dbff5fff6feb7]", "[30400000000000000000000000000008]", "20")
+ self.bid128_round_integral_exact("0", "[3000001100644834,dff2f3fda57dffbf]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("0", "[30000124185042ce,0005010802580040]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("0", "[3021102400604230,7dffffffffffffff]", "[304000000000000007a8fadb5278e2ff]", "20")
+ self.bid128_round_integral_exact("0", "[3085ED09BEAD87C0378D8E63ffffffff]", "[3085ed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_exact("0", "[3085ED09BEAD87C0378D8E6400000000]", "[30840000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "+339.94496647435E0", "[30400000000000000000000000000154]", "20")
+ self.bid128_round_integral_exact("0", "[34d177895e82ee6c,266dce427f0e636b]", "[34d177895e82ee6c266dce427f0e636b]", "00")
+ self.bid128_round_integral_exact("0", "[34f2000000000000,0000000000000000]", "[34f20000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[38b6683c503065eb,bd416fdde5141f1f]", "[38b6683c503065ebbd416fdde5141f1f]", "00")
+ self.bid128_round_integral_exact("0", "[3CB2314DC6448D9338C15B09ffffffff]", "[3cb2314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_round_integral_exact("0", "[3CB2314DC6448D9338C15B0A00000000]", "[3cb2314dc6448d9338c15b0a00000000]", "00")
+ self.bid128_round_integral_exact("0", "[4000000000000000,0000000000000000]", "[40000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[4000000000000000,0010000001000000]", "[40000000000000000010000001000000]", "00")
+ self.bid128_round_integral_exact("0", "[4000000000000000,c4338043a5414cb2]", "[4000000000000000c4338043a5414cb2]", "00")
+ self.bid128_round_integral_exact("0", "[5380000000000000,0000000000000000]", "[53800000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[549324c31ab70f16,ab9398820d688392]", "[549324c31ab70f16ab9398820d688392]", "00")
+ self.bid128_round_integral_exact("0", "[5580000000000000,0000000000000000]", "[55800000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[5dcd49df3e7d88e2,78ce9b3144080941]", "[5dcd49df3e7d88e278ce9b3144080941]", "00")
+ self.bid128_round_integral_exact("0", "-6.86E0", "[b0400000000000000000000000000007]", "20")
+ self.bid128_round_integral_exact("0", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "+7899.8E0", "[30400000000000000000000000001edc]", "20")
+ self.bid128_round_integral_exact("0", "[7b7fff3fffffffd7,0000000100200010]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[7c7c1b7f2fbf6d99,a4eee97fed89bfb6]", "[7c001b7f2fbf6d99a4eee97fed89bfb6]", "00")
+ self.bid128_round_integral_exact("0", "[7e001610a0331c9f,4c52387d7a6b092d]", "[7c001610a0331c9f4c52387d7a6b092d]", "01")
+ self.bid128_round_integral_exact("0", "[7e0030a6ef58ac7b,fb4a59d4957d7c8c]", "[7c0030a6ef58ac7bfb4a59d4957d7c8c]", "01")
+ self.bid128_round_integral_exact("0", "[7fdefd3de9edfff9,1000000100000002]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_exact("0", "[8074365d65a03590,252713e848731924]", "[b0400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("0", "+87657877775585.88988E0", "[304000000000000000004fb970aaa4e2]", "20")
+ self.bid128_round_integral_exact("0", "+8898.89989998888988E0", "[304000000000000000000000000022c3]", "20")
+ self.bid128_round_integral_exact("0", "[abdf5533fa4ac286,c708ee91b4212b7d]", "[b0400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("0", "[b028d1f599126efe,f0c55b88759cfb19]", "[b0400000000000e6da4ed3e24b169cca]", "20")
+ self.bid128_round_integral_exact("0", "[b03c6412434c7aa9,94478c5d88208396]", "[b04001002ec0c3c96033ea5d1866b9a3]", "20")
+ self.bid128_round_integral_exact("0", "[b03f1641bd51ed55,86ded64d39546dd3]", "[b0401bd35fbb64888d7caf07b8eed7c8]", "20")
+ self.bid128_round_integral_exact("0", "[b03f1d0e64018455,1400c80004404001]", "[b0401c8170668d3bb533473333a00666]", "20")
+ self.bid128_round_integral_exact("0", "[ced23192100d01a8,0000000000010000]", "[ced23192100d01a80000000000010000]", "00")
+ self.bid128_round_integral_exact("0", "[cf7857626020a415,2b8c08f3b3977709]", "[cf7857626020a4152b8c08f3b3977709]", "00")
+ self.bid128_round_integral_exact("0", "[d017240c70b8180a,fffdefffffffcfff]", "[d017240c70b8180afffdefffffffcfff]", "00")
+ self.bid128_round_integral_exact("0", "[d0c6000000000000,0000000000000000]", "[d0c60000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[DF7FED09BEAD87C0378D8E63ffffffff]", "[df7fed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_exact("0", "[DF7FED09BEAD87C0378D8E6400000000]", "[df7e0000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[dffdffeffffffffe,b41cc7d64bac9de5]", "[dffc0000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[e6090373da40c483,645c658f35bfda55]", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[f7bfea5e5fdf372f,7fedffdfffdeeeff]", "[defe0000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[f9af9232acad6ed4,64d3b9942770a269]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("0", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_exact("0", "[fe001704d5fba551,de2b0f3945b66e3d]", "[fc001704d5fba551de2b0f3945b66e3d]", "01")
+ self.bid128_round_integral_exact("0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_exact("1", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("1", "[0001ed09bead87c0378d8e64ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("1", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("1", "[08ba054b6c1ab0d6,309b227aa7c22b95]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("1", "+110001010110.1011011E0", "[3040000000000000000000199c9235be]", "20")
+ self.bid128_round_integral_exact("1", "[1e5c1f24c0fe8797,defcac74117b0cc9]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("1", "[24ae17bee0e3ca29,e64a0dd36e6d274d]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("1", "-28997.76477725255E0", "[b0400000000000000000000000007146]", "20")
+ self.bid128_round_integral_exact("1", "[30000124185042ce,0005010802580040]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("1", "[301040a630c04022,63eed167206e394e]", "[3040000000000000000000004e27f3d9]", "20")
+ self.bid128_round_integral_exact("1", "+339.94496647435E0", "[30400000000000000000000000000153]", "20")
+ self.bid128_round_integral_exact("1", "[34d177895e82ee6c,266dce427f0e636b]", "[34d177895e82ee6c266dce427f0e636b]", "00")
+ self.bid128_round_integral_exact("1", "[34f2000000000000,0000000000000000]", "[34f20000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("1", "[38b6683c503065eb,bd416fdde5141f1f]", "[38b6683c503065ebbd416fdde5141f1f]", "00")
+ self.bid128_round_integral_exact("1", "[5380000000000000,0000000000000000]", "[53800000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("1", "[549324c31ab70f16,ab9398820d688392]", "[549324c31ab70f16ab9398820d688392]", "00")
+ self.bid128_round_integral_exact("1", "[5580000000000000,0000000000000000]", "[55800000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("1", "[5dcd49df3e7d88e2,78ce9b3144080941]", "[5dcd49df3e7d88e278ce9b3144080941]", "00")
+ self.bid128_round_integral_exact("1", "-6.86E0", "[b0400000000000000000000000000007]", "20")
+ self.bid128_round_integral_exact("1", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("1", "+7899.8E0", "[30400000000000000000000000001edb]", "20")
+ self.bid128_round_integral_exact("1", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("1", "[7e001610a0331c9f,4c52387d7a6b092d]", "[7c001610a0331c9f4c52387d7a6b092d]", "01")
+ self.bid128_round_integral_exact("1", "[7e0030a6ef58ac7b,fb4a59d4957d7c8c]", "[7c0030a6ef58ac7bfb4a59d4957d7c8c]", "01")
+ self.bid128_round_integral_exact("1", "[8074365d65a03590,252713e848731924]", "[b0400000000000000000000000000001]", "20")
+ self.bid128_round_integral_exact("1", "+87657877775585.88988E0", "[304000000000000000004fb970aaa4e1]", "20")
+ self.bid128_round_integral_exact("1", "+8898.89989998888988E0", "[304000000000000000000000000022c2]", "20")
+ self.bid128_round_integral_exact("1", "[9b7985c933695132,f4b17f880577399d]", "[b0400000000000000000000000000001]", "20")
+ self.bid128_round_integral_exact("1", "[abdf5533fa4ac286,c708ee91b4212b7d]", "[b0400000000000000000000000000001]", "20")
+ self.bid128_round_integral_exact("1", "[b00000402048c240,7fef7f3fefb4f7f7]", "[b0400000000000000000000000000001]", "20")
+ self.bid128_round_integral_exact("1", "[b00d71b799eb740d,92e00060000850cc]", "[b0400000000000000000000004783824]", "20")
+ self.bid128_round_integral_exact("1", "[b028d1f599126efe,f0c55b88759cfb19]", "[b0400000000000e6da4ed3e24b169ccb]", "20")
+ self.bid128_round_integral_exact("1", "[b03c6412434c7aa9,94478c5d88208396]", "[b04001002ec0c3c96033ea5d1866b9a3]", "20")
+ self.bid128_round_integral_exact("1", "[cf7857626020a415,2b8c08f3b3977709]", "[cf7857626020a4152b8c08f3b3977709]", "00")
+ self.bid128_round_integral_exact("1", "[d0c6000000000000,0000000000000000]", "[d0c60000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("1", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_exact("1", "[fe001704d5fba551,de2b0f3945b66e3d]", "[fc001704d5fba551de2b0f3945b66e3d]", "01")
+ self.bid128_round_integral_exact("1", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_exact("2", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000001]", "20")
+ self.bid128_round_integral_exact("2", "[0001ed09bead87c0378d8e64ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("2", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("2", "[08ba054b6c1ab0d6,309b227aa7c22b95]", "[30400000000000000000000000000001]", "20")
+ self.bid128_round_integral_exact("2", "+110001010110.1011011E0", "[3040000000000000000000199c9235bf]", "20")
+ self.bid128_round_integral_exact("2", "[1e5c1f24c0fe8797,defcac74117b0cc9]", "[30400000000000000000000000000001]", "20")
+ self.bid128_round_integral_exact("2", "[24ae17bee0e3ca29,e64a0dd36e6d274d]", "[30400000000000000000000000000001]", "20")
+ self.bid128_round_integral_exact("2", "-28997.76477725255E0", "[b0400000000000000000000000007145]", "20")
+ self.bid128_round_integral_exact("2", "[30000124185042ce,0005010802580040]", "[30400000000000000000000000000001]", "20")
+ self.bid128_round_integral_exact("2", "[301040a630c04022,63eed167206e394e]", "[3040000000000000000000004e27f3da]", "20")
+ self.bid128_round_integral_exact("2", "[3021102400604230,7dffffffffffffff]", "[304000000000000007a8fadb5278e2ff]", "20")
+ self.bid128_round_integral_exact("2", "[303a95000928d000,651051d10c4c1500]", "[3040002624df876041a3169c1cf0b752]", "20")
+ self.bid128_round_integral_exact("2", "+339.94496647435E0", "[30400000000000000000000000000154]", "20")
+ self.bid128_round_integral_exact("2", "[34d177895e82ee6c,266dce427f0e636b]", "[34d177895e82ee6c266dce427f0e636b]", "00")
+ self.bid128_round_integral_exact("2", "[34f2000000000000,0000000000000000]", "[34f20000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("2", "[38b6683c503065eb,bd416fdde5141f1f]", "[38b6683c503065ebbd416fdde5141f1f]", "00")
+ self.bid128_round_integral_exact("2", "[5380000000000000,0000000000000000]", "[53800000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("2", "[549324c31ab70f16,ab9398820d688392]", "[549324c31ab70f16ab9398820d688392]", "00")
+ self.bid128_round_integral_exact("2", "[5580000000000000,0000000000000000]", "[55800000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("2", "[5dcd49df3e7d88e2,78ce9b3144080941]", "[5dcd49df3e7d88e278ce9b3144080941]", "00")
+ self.bid128_round_integral_exact("2", "-6.86E0", "[b0400000000000000000000000000006]", "20")
+ self.bid128_round_integral_exact("2", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("2", "+7899.8E0", "[30400000000000000000000000001edc]", "20")
+ self.bid128_round_integral_exact("2", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("2", "[7e001610a0331c9f,4c52387d7a6b092d]", "[7c001610a0331c9f4c52387d7a6b092d]", "01")
+ self.bid128_round_integral_exact("2", "[7e0030a6ef58ac7b,fb4a59d4957d7c8c]", "[7c0030a6ef58ac7bfb4a59d4957d7c8c]", "01")
+ self.bid128_round_integral_exact("2", "[8074365d65a03590,252713e848731924]", "[b0400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("2", "+87657877775585.88988E0", "[304000000000000000004fb970aaa4e2]", "20")
+ self.bid128_round_integral_exact("2", "+8898.89989998888988E0", "[304000000000000000000000000022c3]", "20")
+ self.bid128_round_integral_exact("2", "[9b7985c933695132,f4b17f880577399d]", "[b0400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("2", "[abdf5533fa4ac286,c708ee91b4212b7d]", "[b0400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("2", "[b00000402048c240,7fef7f3fefb4f7f7]", "[b0400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("2", "[b028d1f599126efe,f0c55b88759cfb19]", "[b0400000000000e6da4ed3e24b169cca]", "20")
+ self.bid128_round_integral_exact("2", "[b03c6412434c7aa9,94478c5d88208396]", "[b04001002ec0c3c96033ea5d1866b9a2]", "20")
+ self.bid128_round_integral_exact("2", "[cf7857626020a415,2b8c08f3b3977709]", "[cf7857626020a4152b8c08f3b3977709]", "00")
+ self.bid128_round_integral_exact("2", "[d0c6000000000000,0000000000000000]", "[d0c60000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("2", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_exact("2", "[fe001704d5fba551,de2b0f3945b66e3d]", "[fc001704d5fba551de2b0f3945b66e3d]", "01")
+ self.bid128_round_integral_exact("2", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_exact("3", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("3", "[0001ed09bead87c0378d8e64ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("3", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("3", "[08ba054b6c1ab0d6,309b227aa7c22b95]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("3", "+110001010110.1011011E0", "[3040000000000000000000199c9235be]", "20")
+ self.bid128_round_integral_exact("3", "[1e5c1f24c0fe8797,defcac74117b0cc9]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("3", "[24ae17bee0e3ca29,e64a0dd36e6d274d]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("3", "-28997.76477725255E0", "[b0400000000000000000000000007145]", "20")
+ self.bid128_round_integral_exact("3", "[30000124185042ce,0005010802580040]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("3", "[301040a630c04022,63eed167206e394e]", "[3040000000000000000000004e27f3d9]", "20")
+ self.bid128_round_integral_exact("3", "+339.94496647435E0", "[30400000000000000000000000000153]", "20")
+ self.bid128_round_integral_exact("3", "[34d177895e82ee6c,266dce427f0e636b]", "[34d177895e82ee6c266dce427f0e636b]", "00")
+ self.bid128_round_integral_exact("3", "[34f2000000000000,0000000000000000]", "[34f20000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("3", "[38b6683c503065eb,bd416fdde5141f1f]", "[38b6683c503065ebbd416fdde5141f1f]", "00")
+ self.bid128_round_integral_exact("3", "[5380000000000000,0000000000000000]", "[53800000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("3", "[549324c31ab70f16,ab9398820d688392]", "[549324c31ab70f16ab9398820d688392]", "00")
+ self.bid128_round_integral_exact("3", "[5580000000000000,0000000000000000]", "[55800000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("3", "[5dcd49df3e7d88e2,78ce9b3144080941]", "[5dcd49df3e7d88e278ce9b3144080941]", "00")
+ self.bid128_round_integral_exact("3", "-6.86E0", "[b0400000000000000000000000000006]", "20")
+ self.bid128_round_integral_exact("3", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("3", "+7899.8E0", "[30400000000000000000000000001edb]", "20")
+ self.bid128_round_integral_exact("3", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("3", "[7e001610a0331c9f,4c52387d7a6b092d]", "[7c001610a0331c9f4c52387d7a6b092d]", "01")
+ self.bid128_round_integral_exact("3", "[7e0030a6ef58ac7b,fb4a59d4957d7c8c]", "[7c0030a6ef58ac7bfb4a59d4957d7c8c]", "01")
+ self.bid128_round_integral_exact("3", "[8074365d65a03590,252713e848731924]", "[b0400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("3", "+87657877775585.88988E0", "[304000000000000000004fb970aaa4e1]", "20")
+ self.bid128_round_integral_exact("3", "+8898.89989998888988E0", "[304000000000000000000000000022c2]", "20")
+ self.bid128_round_integral_exact("3", "[abdf5533fa4ac286,c708ee91b4212b7d]", "[b0400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("3", "[b028d1f599126efe,f0c55b88759cfb19]", "[b0400000000000e6da4ed3e24b169cca]", "20")
+ self.bid128_round_integral_exact("3", "[b03c6412434c7aa9,94478c5d88208396]", "[b04001002ec0c3c96033ea5d1866b9a2]", "20")
+ self.bid128_round_integral_exact("3", "[cf7857626020a415,2b8c08f3b3977709]", "[cf7857626020a4152b8c08f3b3977709]", "00")
+ self.bid128_round_integral_exact("3", "[d0c6000000000000,0000000000000000]", "[d0c60000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("3", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_exact("3", "[fe001704d5fba551,de2b0f3945b66e3d]", "[fc001704d5fba551de2b0f3945b66e3d]", "01")
+ self.bid128_round_integral_exact("3", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_exact("4", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("4", "[0001ed09bead87c0378d8e64ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("4", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("4", "[08ba054b6c1ab0d6,309b227aa7c22b95]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("4", "+110001010110.1011011E0", "[3040000000000000000000199c9235be]", "20")
+ self.bid128_round_integral_exact("4", "[24ae17bee0e3ca29,e64a0dd36e6d274d]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("4", "-28997.76477725255E0", "[b0400000000000000000000000007146]", "20")
+ self.bid128_round_integral_exact("4", "[2ffebe978c67d78e,ffffffffffffffff]", "[30400000000000000000000000000004]", "20")
+ self.bid128_round_integral_exact("4", "[2fff7ebfbfde27ef,1f9dbff5fff6feb7]", "[30400000000000000000000000000008]", "20")
+ self.bid128_round_integral_exact("4", "[3000001100644834,dff2f3fda57dffbf]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("4", "[30000124185042ce,0005010802580040]", "[30400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("4", "[3021102400604230,7dffffffffffffff]", "[304000000000000007a8fadb5278e2ff]", "20")
+ self.bid128_round_integral_exact("4", "+339.94496647435E0", "[30400000000000000000000000000154]", "20")
+ self.bid128_round_integral_exact("4", "[34d177895e82ee6c,266dce427f0e636b]", "[34d177895e82ee6c266dce427f0e636b]", "00")
+ self.bid128_round_integral_exact("4", "[34f2000000000000,0000000000000000]", "[34f20000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("4", "[38b6683c503065eb,bd416fdde5141f1f]", "[38b6683c503065ebbd416fdde5141f1f]", "00")
+ self.bid128_round_integral_exact("4", "[5380000000000000,0000000000000000]", "[53800000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("4", "[549324c31ab70f16,ab9398820d688392]", "[549324c31ab70f16ab9398820d688392]", "00")
+ self.bid128_round_integral_exact("4", "[5580000000000000,0000000000000000]", "[55800000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("4", "[5dcd49df3e7d88e2,78ce9b3144080941]", "[5dcd49df3e7d88e278ce9b3144080941]", "00")
+ self.bid128_round_integral_exact("4", "-6.86E0", "[b0400000000000000000000000000007]", "20")
+ self.bid128_round_integral_exact("4", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("4", "+7899.8E0", "[30400000000000000000000000001edc]", "20")
+ self.bid128_round_integral_exact("4", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("4", "[7e001610a0331c9f,4c52387d7a6b092d]", "[7c001610a0331c9f4c52387d7a6b092d]", "01")
+ self.bid128_round_integral_exact("4", "[7e0030a6ef58ac7b,fb4a59d4957d7c8c]", "[7c0030a6ef58ac7bfb4a59d4957d7c8c]", "01")
+ self.bid128_round_integral_exact("4", "[8074365d65a03590,252713e848731924]", "[b0400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("4", "+87657877775585.88988E0", "[304000000000000000004fb970aaa4e2]", "20")
+ self.bid128_round_integral_exact("4", "+8898.89989998888988E0", "[304000000000000000000000000022c3]", "20")
+ self.bid128_round_integral_exact("4", "[abdf5533fa4ac286,c708ee91b4212b7d]", "[b0400000000000000000000000000000]", "20")
+ self.bid128_round_integral_exact("4", "[b028d1f599126efe,f0c55b88759cfb19]", "[b0400000000000e6da4ed3e24b169cca]", "20")
+ self.bid128_round_integral_exact("4", "[b03c6412434c7aa9,94478c5d88208396]", "[b04001002ec0c3c96033ea5d1866b9a3]", "20")
+ self.bid128_round_integral_exact("4", "[b03f1641bd51ed55,86ded64d39546dd3]", "[b0401bd35fbb64888d7caf07b8eed7c8]", "20")
+ self.bid128_round_integral_exact("4", "[cf7857626020a415,2b8c08f3b3977709]", "[cf7857626020a4152b8c08f3b3977709]", "00")
+ self.bid128_round_integral_exact("4", "[d0c6000000000000,0000000000000000]", "[d0c60000000000000000000000000000]", "00")
+ self.bid128_round_integral_exact("4", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_exact("4", "[fe001704d5fba551,de2b0f3945b66e3d]", "[fc001704d5fba551de2b0f3945b66e3d]", "01")
+ self.bid128_round_integral_exact("4", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_exact("0", "18446744073709551616500E-3", "18446744073709551616E+0", "20")
+ self.bid128_round_integral_exact("0", "18446744073709551616000E-3", "18446744073709551616E+0", "00")
+ self.bid128_round_integral_exact("1", "18446744073709551616500E-3", "18446744073709551616E+0", "20")
+ self.bid128_round_integral_exact("2", "18446744073709551616500E-3", "18446744073709551617E+0", "20")
+ self.bid128_round_integral_exact("3", "18446744073709551616500E-3", "18446744073709551616E+0", "20")
+ self.bid128_round_integral_exact("1", "18446744073709551616000E-3", "18446744073709551616E+0", "00")
+ self.bid128_round_integral_exact("2", "18446744073709551616000E-3", "18446744073709551616E+0", "00")
+ self.bid128_round_integral_exact("3", "18446744073709551616000E-3", "18446744073709551616E+0", "00")
+ self.bid128_round_integral_exact("0", "91E-1", "9", "20")
+ self.bid128_round_integral_exact("1", "91E-1", "9", "20")
+ self.bid128_round_integral_exact("2", "91E-1", "10", "20")
+ self.bid128_round_integral_exact("3", "91E-1", "9", "20")
+ self.bid128_round_integral_exact("0", "90001E-4", "9", "20")
+ self.bid128_round_integral_exact("1", "90001E-4", "9", "20")
+ self.bid128_round_integral_exact("2", "90001E-4", "10", "20")
+ self.bid128_round_integral_exact("3", "90001E-4", "9", "20")
+ self.bid128_round_integral_exact("0", "96000000000000000000008778781E-23", "960000", "20")
+ self.bid128_round_integral_exact("0", "900000000000000000000001E-23", "9", "20")
+ self.bid128_round_integral_exact("1", "96000000000000000000008778781E-23", "960000", "20")
+ self.bid128_round_integral_exact("1", "900000000000000000000001E-23", "9", "20")
+ self.bid128_round_integral_exact("2", "900000000000000000000001E-23", "10", "20")
+ self.bid128_round_integral_exact("2", "96000000000000000000008778781E-23", "960001", "20")
+ self.bid128_round_integral_exact("3", "900000000000000000000001E-23", "9", "20")
+ self.bid128_round_integral_exact("3", "96000000000000000000008778781E-23", "960000", "20")
+ self.bid128_round_integral_exact("4", "900000000000000000000001E-23", "9", "20")
+ self.bid128_round_integral_exact("4", "96000000000000000000008778781E-23", "960000", "20")
+ self.bid128_round_integral_exact("4", "91E-1", "9", "20")
+ self.bid128_round_integral_exact("4", "90001E-4", "9", "20")
+ self.bid128_round_integral_exact("4", "18446744073709551616500E-3", "18446744073709551617E+0", "20")
+ self.bid128_round_integral_exact("4", "18446744073709551616000E-3", "18446744073709551616E+0", "00")
+ self.bid128_round_integral_exact("0", "205000E-4", "20", "20")
+ self.bid128_round_integral_exact("0", "205001E-4", "21", "20")
+ self.bid128_round_integral_exact("0", "2050000000000000000000000E-23", "20", "20")
+ }
+
+ private func bid128_round_integral_exact(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_round_integral_nearest_away() {
+ self.bid128_round_integral_nearest_away("0", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[0001ed09bead87c0378d8e64ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "-0", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[2302c79015100297,0880000400000022]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[3000000403046800,001a0b3a1e13586c]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[300a7b92c29201de,583800049020c098]", "[30400000000000000000000000263e7c]", "00")
+ self.bid128_round_integral_nearest_away("0", "[303b546416c082af,75718cb88378ed1e]", "[3040005723dcdd508f38b08654197705]", "00")
+ self.bid128_round_integral_nearest_away("0", "[3085ED09BEAD87C0378D8E63ffffffff]", "[3085ed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_nearest_away("0", "[3085ED09BEAD87C0378D8E6400000000]", "[30840000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[3CB2314DC6448D9338C15B09ffffffff]", "[3cb2314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_round_integral_nearest_away("0", "[3CB2314DC6448D9338C15B0A00000000]", "[3cb2314dc6448d9338c15b0a00000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[4000000000000000,0000000000000000]", "[40000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[4040000180208800,70348ac055972310]", "[404000018020880070348ac055972310]", "00")
+ self.bid128_round_integral_nearest_away("0", "[4080000000000000,0040903404480000]", "[40800000000000000040903404480000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[4400000000000000,0010800000400000]", "[44000000000000000010800000400000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[78e7382cdde6bfe9,1d9aa291ad44b335]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[7e00000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_nearest_away("0", "[7e001413f2933444,97bf81501d92e628]", "[7c001413f293344497bf81501d92e628]", "01")
+ self.bid128_round_integral_nearest_away("0", "[7e001e7001298e7e,45efdd84925ef8fa]", "[7c001e7001298e7e45efdd84925ef8fa]", "01")
+ self.bid128_round_integral_nearest_away("0", "[7e00217e424424d0,276223680476b578]", "[7c00217e424424d0276223680476b578]", "01")
+ self.bid128_round_integral_nearest_away("0", "[7e002bcf6d09c0b6,cd4a95361d2d757d]", "[7c002bcf6d09c0b6cd4a95361d2d757d]", "01")
+ self.bid128_round_integral_nearest_away("0", "[afff7fbfdffff3eb,6d8e1e34f5e0bbe4]", "[b0400000000000000000000000000008]", "00")
+ self.bid128_round_integral_nearest_away("0", "[b025683257a4c0b2,e968c6dafbb4a1ac]", "[b040000000000003f5dd0a28364c1ca2]", "00")
+ self.bid128_round_integral_nearest_away("0", "[c82ed9104de96110,8746987bd570811c]", "[c82ed9104de961108746987bd570811c]", "00")
+ self.bid128_round_integral_nearest_away("0", "[db9b13d408c7fee1,a1e472f7fc304ae6]", "[db9b13d408c7fee1a1e472f7fc304ae6]", "00")
+ self.bid128_round_integral_nearest_away("0", "[DF7FED09BEAD87C0378D8E63ffffffff]", "[df7fed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_nearest_away("0", "[DF7FED09BEAD87C0378D8E6400000000]", "[df7e0000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[dfa5f9b538f9441d,4f03792cbde10b60]", "[dfa40000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[e002a2f5a825ddc4,a1063108080c8c28]", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[fbe86f74adfb5fad,088284ea23902252]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[fddff79fc5bcbffd,fffeffefdff7ffff]", "[fc000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "[fe00133f591b479b,c7c6516e558528d1]", "[fc00133f591b479bc7c6516e558528d1]", "01")
+ self.bid128_round_integral_nearest_away("0", "[fe002371a21bfd42,548f4f6b11c2ceba]", "[fc002371a21bfd42548f4f6b11c2ceba]", "01")
+ self.bid128_round_integral_nearest_away("0", "[fe002e75147f7853,0af4f9fc56a3e25f]", "[fc002e75147f78530af4f9fc56a3e25f]", "01")
+ self.bid128_round_integral_nearest_away("0", "[fe002ff8ab0c9174,2bd0b3760bb4d665]", "[fc002ff8ab0c91742bd0b3760bb4d665]", "01")
+ self.bid128_round_integral_nearest_away("0", "[ffeffbffffe6ffef,2000000000040000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_nearest_away("0", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_away("0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_nearest_away("0", "18446744073709551616500E-3", "18446744073709551617E+0", "00")
+ self.bid128_round_integral_nearest_away("0", "900000000000000000000001E-23", "9", "00")
+ }
+
+ private func bid128_round_integral_nearest_away(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.toNearestOrAwayFromZero, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_round_integral_nearest_even() {
+ self.bid128_round_integral_nearest_even("0", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[0001ed09bead87c0378d8e64ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "-0", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[3000000060081000,658c42208884a010]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[3001400000002010,ffffe8e77ffbfdf7]", "[30400000000000000000000000000041]", "00")
+ self.bid128_round_integral_nearest_even("0", "[303c84a9c4090924,a881e505a7542dd8]", "[304001539e1ecf73910b89f86064ae8a]", "00")
+ self.bid128_round_integral_nearest_even("0", "[303e81c2d0398347,dcafe585defb1fe5]", "[30400cf9e19f59ed961196f3c97f8330]", "00")
+ self.bid128_round_integral_nearest_even("0", "[3085ED09BEAD87C0378D8E63ffffffff]", "[3085ed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_nearest_even("0", "[3085ED09BEAD87C0378D8E6400000000]", "[30840000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[3CB2314DC6448D9338C15B09ffffffff]", "[3cb2314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_round_integral_nearest_even("0", "[3CB2314DC6448D9338C15B0A00000000]", "[3cb2314dc6448d9338c15b0a00000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[3f4836d53889b4b0,b9e6c9ff6fe5fff7]", "[3f4836d53889b4b0b9e6c9ff6fe5fff7]", "00")
+ self.bid128_round_integral_nearest_even("0", "[4000000000000000,0000000000000000]", "[40000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[4000000000000000,0c3522204a902821]", "[40000000000000000c3522204a902821]", "00")
+ self.bid128_round_integral_nearest_even("0", "[4140000000000000,0004400000001800]", "[41400000000000000004400000001800]", "00")
+ self.bid128_round_integral_nearest_even("0", "[488080c21440030a,45c352ae05f7ca95]", "[488080c21440030a45c352ae05f7ca95]", "00")
+ self.bid128_round_integral_nearest_even("0", "[7acdf567db3a6915,9a859ae63a9f889c]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[7e000c337e6ca979,447968a6af3e155b]", "[7c000c337e6ca979447968a6af3e155b]", "01")
+ self.bid128_round_integral_nearest_even("0", "[7e002667f89f6fe4,105a8b590ab81f56]", "[7c002667f89f6fe4105a8b590ab81f56]", "01")
+ self.bid128_round_integral_nearest_even("0", "[7e0029d324b819ac,59f16667ff456c9b]", "[7c0029d324b819ac59f16667ff456c9b]", "01")
+ self.bid128_round_integral_nearest_even("0", "[8229809401845ed0,249944e50c2c4e3e]", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[b02ec313a85b8cea,3f1a65dfb58b4ebf]", "[b0400000000345d932451cf442781680]", "00")
+ self.bid128_round_integral_nearest_even("0", "[bd080ae6518374eb,e3b6da828802961c]", "[bd080ae6518374ebe3b6da828802961c]", "00")
+ self.bid128_round_integral_nearest_even("0", "[d77fffeeffbedfff,fffffffffffffbff]", "[d77e0000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[d8ffb23fee9786e2,fefbeb7fb7f99fb6]", "[d8ffb23fee9786e2fefbeb7fb7f99fb6]", "00")
+ self.bid128_round_integral_nearest_even("0", "[DF7FED09BEAD87C0378D8E63ffffffff]", "[df7fed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_nearest_even("0", "[DF7FED09BEAD87C0378D8E6400000000]", "[df7e0000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[ebfdfefd7e36b163,e8c7e4baa92e7bdc]", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[fa918e40178d2389,6abfea84476d92c1]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "[fdff5ff7fffffefb,7d7d87364da34f2d]", "[fc001ff7fffffefb7d7d87364da34f2d]", "00")
+ self.bid128_round_integral_nearest_even("0", "[fe0002b7e26df762,35ab7f58a136d72a]", "[fc0002b7e26df76235ab7f58a136d72a]", "01")
+ self.bid128_round_integral_nearest_even("0", "[fe00126fba1c1afc,d27b58d7b26d9855]", "[fc00126fba1c1afcd27b58d7b26d9855]", "01")
+ self.bid128_round_integral_nearest_even("0", "[fe001b8b5af30648,e03fb062625ec69d]", "[fc001b8b5af30648e03fb062625ec69d]", "01")
+ self.bid128_round_integral_nearest_even("0", "[fe0022c25476ccf7,e52dea461f294667]", "[fc0022c25476ccf7e52dea461f294667]", "01")
+ self.bid128_round_integral_nearest_even("0", "[fe002517a20f5706,ce416fbe679dcfbc]", "[fc002517a20f5706ce416fbe679dcfbc]", "01")
+ self.bid128_round_integral_nearest_even("0", "[fe002fbbf6ad3928,d23ec1161e3218b1]", "[fc002fbbf6ad3928d23ec1161e3218b1]", "01")
+ self.bid128_round_integral_nearest_even("0", "[ffbfeafe7fffbf7f,882000a020209850]", "[fc002afe7fffbf7f882000a020209850]", "01")
+ self.bid128_round_integral_nearest_even("0", "[fffdbfffffffffbf,feff9effa5faacdd]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_nearest_even("0", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_nearest_even("0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_nearest_even("0", "18446744073709551616500E-3", "18446744073709551616E+0", "00")
+ self.bid128_round_integral_nearest_even("0", "91E-1", "9", "00")
+ self.bid128_round_integral_nearest_even("1", "91E-1", "9", "00")
+ self.bid128_round_integral_nearest_even("2", "91E-1", "9", "00")
+ self.bid128_round_integral_nearest_even("3", "91E-1", "9", "00")
+ self.bid128_round_integral_nearest_even("0", "90001E-4", "9", "00")
+ self.bid128_round_integral_nearest_even("1", "90001E-4", "9", "00")
+ self.bid128_round_integral_nearest_even("2", "90001E-4", "9", "00")
+ self.bid128_round_integral_nearest_even("3", "90001E-4", "9", "00")
+ self.bid128_round_integral_nearest_even("0", "96000000000000000000008778781E-23", "960000", "00")
+ self.bid128_round_integral_nearest_even("0", "900000000000000000000001E-23", "9", "00")
+ self.bid128_round_integral_nearest_even("0", "205000E-4", "20", "00")
+ self.bid128_round_integral_nearest_even("0", "205001E-4", "21", "00")
+ self.bid128_round_integral_nearest_even("0", "2050000000000000000000000E-23", "20", "00")
+ self.bid128_round_integral_nearest_even("0", "96E-1", "10", "00")
+ }
+
+ private func bid128_round_integral_nearest_even(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.toNearestOrEven, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_round_integral_negative() {
+ self.bid128_round_integral_negative("0", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[0001ed09bead87c0378d8e64ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "-0", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[2e356032ef374a1e,f5c18b58d399db18]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[3000000062020000,7ffffcfffff7bfcd]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[303c50a05d300f59,044b8170c010c4e1]", "[304000ce6754f5e9d9a498559b8549a6]", "00")
+ self.bid128_round_integral_negative("0", "[3085ED09BEAD87C0378D8E63ffffffff]", "[3085ed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_negative("0", "[3085ED09BEAD87C0378D8E6400000000]", "[30840000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[3CB2314DC6448D9338C15B09ffffffff]", "[3cb2314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_round_integral_negative("0", "[3CB2314DC6448D9338C15B0A00000000]", "[3cb2314dc6448d9338c15b0a00000000]", "00")
+ self.bid128_round_integral_negative("0", "[4000000000000000,0008202000000010]", "[40000000000000000008202000000010]", "00")
+ self.bid128_round_integral_negative("0", "[4000000000000000,7842d7d33f5ceefa]", "[40000000000000007842d7d33f5ceefa]", "00")
+ self.bid128_round_integral_negative("0", "[4040000000000000,0000000000000000]", "[40400000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[4b97bef1c61c8d7d,62beb8870c3e5a1e]", "[4b97bef1c61c8d7d62beb8870c3e5a1e]", "00")
+ self.bid128_round_integral_negative("0", "[50803f0e5867db6a,e10832b0bce6cf06]", "[50803f0e5867db6ae10832b0bce6cf06]", "00")
+ self.bid128_round_integral_negative("0", "[7a1d7af6782abeba,ce4a15e54f6dfed8]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[7c0565465f077246,16e83dcb6ad99200]", "[7c0025465f07724616e83dcb6ad99200]", "00")
+ self.bid128_round_integral_negative("0", "[7e00000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_negative("0", "[7e00241b05c9feb6,d734042769d02c5b]", "[7c00241b05c9feb6d734042769d02c5b]", "01")
+ self.bid128_round_integral_negative("0", "[a16faece37bfee32,636cd40894ffd68c]", "[b0400000000000000000000000000001]", "00")
+ self.bid128_round_integral_negative("0", "[b000040305101002,a7cdedb5e6cdb867]", "[b0400000000000000000000000000001]", "00")
+ self.bid128_round_integral_negative("0", "[b011563badf876dc,84bb2c08fc0eb1c3]", "[b040000000000000000000019dbc0584]", "00")
+ self.bid128_round_integral_negative("0", "[b0165915736885ac,d0e5bd967af7e273]", "[b040000000000000000001a4afb2510a]", "00")
+ self.bid128_round_integral_negative("0", "[b03e647f5c4e49b4,5b5269f8727019ec]", "[b0400a0cbc6e3a920921d765a50b35cb]", "00")
+ self.bid128_round_integral_negative("0", "[bea827b3ca5b5a1d,8134b2004751a05f]", "[bea827b3ca5b5a1d8134b2004751a05f]", "00")
+ self.bid128_round_integral_negative("0", "[d47a91fd09312878,789b88bf70d14784]", "[d47a91fd09312878789b88bf70d14784]", "00")
+ self.bid128_round_integral_negative("0", "[d4c64d1faca949b1,856d026daa624159]", "[d4c64d1faca949b1856d026daa624159]", "00")
+ self.bid128_round_integral_negative("0", "[DF7FED09BEAD87C0378D8E63ffffffff]", "[df7fed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_negative("0", "[DF7FED09BEAD87C0378D8E6400000000]", "[df7e0000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[dfc7ee97ff8effef,ffbfdff5bfffff7f]", "[dfc60000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[eab3a9be174202d2,3bafe9fb9b748a30]", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[f2f5d1ebb9b6abc8,030df3ffb920c07b]", "[cbd60000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[f9fde572f9d4e39d,ffff3dae53c71fad]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_negative("0", "[fe000ff3d59a5d91,e4d0467d3a915507]", "[fc000ff3d59a5d91e4d0467d3a915507]", "01")
+ self.bid128_round_integral_negative("0", "[fe001698682e86aa,57b2178fa9c3d382]", "[fc001698682e86aa57b2178fa9c3d382]", "01")
+ self.bid128_round_integral_negative("0", "[ff6ffffffdffdfff,3f7fffffff79fdfd]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_negative("0", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_negative("0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_negative("0", "-91E-1", "-10", "00")
+ self.bid128_round_integral_negative("0", "-90001E-4", "-10", "00")
+ self.bid128_round_integral_negative("0", "900000000000000000000001E-23", "9", "00")
+ self.bid128_round_integral_negative("0", "-9600000000000000000000000E-23", "-96", "00")
+ self.bid128_round_integral_negative("0", "-900000000000000000000001E-23", "-10", "00")
+ }
+
+ private func bid128_round_integral_negative(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.down, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_round_integral_positive() {
+ self.bid128_round_integral_positive("0", "[0000013228000800,5abfeffcfdab9cf9]", "[30400000000000000000000000000001]", "00")
+ self.bid128_round_integral_positive("0", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000001]", "00")
+ self.bid128_round_integral_positive("0", "[0001ed09bead87c0378d8e64ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "0", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "-0", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[144d870e00169404,3c9f5f5597637768]", "[30400000000000000000000000000001]", "00")
+ self.bid128_round_integral_positive("0", "[1f6aefe24c11d374,ba7425c25f9c9cfb]", "[30400000000000000000000000000001]", "00")
+ self.bid128_round_integral_positive("0", "[230ae00c50234d59,84b43c93d47ddb1d]", "[30400000000000000000000000000001]", "00")
+ self.bid128_round_integral_positive("0", "[30000092000a0601,4688a5a1a0869764]", "[30400000000000000000000000000001]", "00")
+ self.bid128_round_integral_positive("0", "[30000c1e1274dac8,8201763020002400]", "[30400000000000000000000000000003]", "00")
+ self.bid128_round_integral_positive("0", "[30218c1808010000,8203000000000060]", "[30400000000000000b26283a94e63700]", "00")
+ self.bid128_round_integral_positive("0", "[303b65bebb06e334,efffbfdffbffedff]", "[3040005b952dd4b50b81061472af1a9c]", "00")
+ self.bid128_round_integral_positive("0", "[303f7eae427fdfe3,ffffffffffffffff]", "[30402644a03ffcca0000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[3085ED09BEAD87C0378D8E63ffffffff]", "[3085ed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_positive("0", "[3085ED09BEAD87C0378D8E6400000000]", "[30840000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[3CB2314DC6448D9338C15B09ffffffff]", "[3cb2314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_round_integral_positive("0", "[3CB2314DC6448D9338C15B0A00000000]", "[3cb2314dc6448d9338c15b0a00000000]", "00")
+ self.bid128_round_integral_positive("0", "[4000000000000000,0000000000000000]", "[40000000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[4000000000000000,b3c02053e084c426]", "[4000000000000000b3c02053e084c426]", "00")
+ self.bid128_round_integral_positive("0", "[4008000000000000,0003400080000002]", "[40080000000000000003400080000002]", "00")
+ self.bid128_round_integral_positive("0", "[400a042801020ec0,2105a1c861202064]", "[400a042801020ec02105a1c861202064]", "00")
+ self.bid128_round_integral_positive("0", "[524096290ce6c59f,4d1bf826a836324f]", "[524096290ce6c59f4d1bf826a836324f]", "00")
+ self.bid128_round_integral_positive("0", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[7a4044a1606f738b,e482a60ca002b521]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[7dd1c6d9c9f5ebf3,de9dce62137a6f68]", "[7c0006d9c9f5ebf3de9dce62137a6f68]", "00")
+ self.bid128_round_integral_positive("0", "[7e000466e2af7726,ac13727a266a84f3]", "[7c000466e2af7726ac13727a266a84f3]", "01")
+ self.bid128_round_integral_positive("0", "[7e002a20d924994a,ad08dc73e845f988]", "[7c002a20d924994aad08dc73e845f988]", "01")
+ self.bid128_round_integral_positive("0", "[840476e3e0e003d0,ed7a9b12fffe7ab9]", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[91785bbb00ce5c43,81e70483653d7dc7]", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[a95a2e2078a547b7,a5a1d77ceb55286b]", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[b000000a8104a108,ef7b67bfbafb9bbe]", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[b4683219a7b1d2fb,2c042824b39685d8]", "[b4683219a7b1d2fb2c042824b39685d8]", "00")
+ self.bid128_round_integral_positive("0", "[c1666d0c2c12d6ef,d9bae4a380161961]", "[c1666d0c2c12d6efd9bae4a380161961]", "00")
+ self.bid128_round_integral_positive("0", "[cdf9f5d1eab026a3,ff33aed2fba1c1e9]", "[cdf80000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[d41c000000000000,0000000000000000]", "[d41c0000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[DF7FED09BEAD87C0378D8E63ffffffff]", "[df7fed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_positive("0", "[DF7FED09BEAD87C0378D8E6400000000]", "[df7e0000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[e6dfaef705bb178c,a8410b0600200002]", "[b0400000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[f6ffb9f7f57fffef,0008000000001800]", "[dbfe0000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[fbd2a56cbeeebbb7,3bb45f0fee418e90]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "[fffb3cddd2bf4eff,0000000009200801]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_positive("0", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_positive("0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_positive("0", "18446744073709551616500E-3", "18446744073709551617E+0", "00")
+ self.bid128_round_integral_positive("0", "18446744073709551616000E-3", "18446744073709551616E+0", "00")
+ self.bid128_round_integral_positive("0", "91E-1", "10", "00")
+ self.bid128_round_integral_positive("0", "90001E-4", "10", "00")
+ self.bid128_round_integral_positive("0", "900000000000000000000001E-23", "10", "00")
+ self.bid128_round_integral_positive("0", "9600000000000000000000000E-23", "96", "00")
+ }
+
+ private func bid128_round_integral_positive(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.up, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_round_integral_zero() {
+ self.bid128_round_integral_zero("0", "[0001ed09bead87c0378d8e62ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[0001ed09bead87c0378d8e64ffffffff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[00fe000000000000,0000000000000000]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[2492beeb9d818053,fadd8970151c961a]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[27a38809decba00c,cc0598806ece1d9a]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[2dc3a5281c1849a2,4f461b5ebca8dd1e]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[300000060168010c,9dffdc62bffcfdff]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[3030000030020000,05c8c405674035c0]", "[30400000000000080deb7b0eb5c64be5]", "00")
+ self.bid128_round_integral_zero("0", "[3085ED09BEAD87C0378D8E63ffffffff]", "[3085ed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_zero("0", "[3085ED09BEAD87C0378D8E6400000000]", "[30840000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[3bce6aaf63364afd,867250e924da783c]", "[3bce6aaf63364afd867250e924da783c]", "00")
+ self.bid128_round_integral_zero("0", "[3CB2314DC6448D9338C15B09ffffffff]", "[3cb2314dc6448d9338c15b09ffffffff]", "00")
+ self.bid128_round_integral_zero("0", "[3CB2314DC6448D9338C15B0A00000000]", "[3cb2314dc6448d9338c15b0a00000000]", "00")
+ self.bid128_round_integral_zero("0", "[4040000000000000,66220a61d0b92ae1]", "[404000000000000066220a61d0b92ae1]", "00")
+ self.bid128_round_integral_zero("0", "[40e0e8defd166f7d,713a2065cb6900c1]", "[40e0e8defd166f7d713a2065cb6900c1]", "00")
+ self.bid128_round_integral_zero("0", "[4800000000000000,0008020380402048]", "[48000000000000000008020380402048]", "00")
+ self.bid128_round_integral_zero("0", "[4bc1ad7fe049e6d7,a36c954ebdadd082]", "[4bc1ad7fe049e6d7a36c954ebdadd082]", "00")
+ self.bid128_round_integral_zero("0", "[5008000000000000,0000000000000000]", "[50080000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[5090051000a02440,5dadbe8e7ff9a4de]", "[5090051000a024405dadbe8e7ff9a4de]", "00")
+ self.bid128_round_integral_zero("0", "[54baf41602df4c7d,5181ede05fd46419]", "[54baf41602df4c7d5181ede05fd46419]", "00")
+ self.bid128_round_integral_zero("0", "[690468555ed4f0f7,d9922fd589adef8f]", "[30400000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[793f338fb569875d,9bcfc4a588776b15]", "[78000000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[7e00000000000000,0000000000000000]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_zero("0", "[7e00058b1d247b3c,0aea9b0ae91383b4]", "[7c00058b1d247b3c0aea9b0ae91383b4]", "01")
+ self.bid128_round_integral_zero("0", "[7e0009cfe015573e,0113c46b265de9cd]", "[7c0009cfe015573e0113c46b265de9cd]", "01")
+ self.bid128_round_integral_zero("0", "[7e000b1e271ef7e0,ca5a6e6fa8843815]", "[7c000b1e271ef7e0ca5a6e6fa8843815]", "01")
+ self.bid128_round_integral_zero("0", "[7e00116e883f67b1,a6ad2561d94e47ab]", "[7c00116e883f67b1a6ad2561d94e47ab]", "01")
+ self.bid128_round_integral_zero("0", "[7e0024f56b1a83cf,2f341fcb73df6e9c]", "[7c0024f56b1a83cf2f341fcb73df6e9c]", "01")
+ self.bid128_round_integral_zero("0", "[afff767edef7bdff,bafcb11eee5ecff2]", "[b0400000000000000000000000000007]", "00")
+ self.bid128_round_integral_zero("0", "[b03c503938e36cdb,6a313861c9b75003]", "[b04000cd5f49f449dfc82c15753797d7]", "00")
+ self.bid128_round_integral_zero("0", "[b6ccc46c69e989c2,359f45f752afa94c]", "[b6ccc46c69e989c2359f45f752afa94c]", "00")
+ self.bid128_round_integral_zero("0", "[b96dfc6073fc763d,fd73e6c85c99363f]", "[b96c0000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[c2769a11a18238f0,7684855ad8d00fdc]", "[c2769a11a18238f07684855ad8d00fdc]", "00")
+ self.bid128_round_integral_zero("0", "[c8d61646db2d3907,eef4c54a43c62ebd]", "[c8d61646db2d3907eef4c54a43c62ebd]", "00")
+ self.bid128_round_integral_zero("0", "[d307801862a1a51b,67fdd7704d99d231]", "[d307801862a1a51b67fdd7704d99d231]", "00")
+ self.bid128_round_integral_zero("0", "[dd03e68cc977e82c,3eb804abab546268]", "[dd03e68cc977e82c3eb804abab546268]", "00")
+ self.bid128_round_integral_zero("0", "[DF7FED09BEAD87C0378D8E63ffffffff]", "[df7fed09bead87c0378d8e63ffffffff]", "00")
+ self.bid128_round_integral_zero("0", "[DF7FED09BEAD87C0378D8E6400000000]", "[df7e0000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[f7fcfc7dfffefff9,fffffeffffffffee]", "[dff20000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[fb7fbf5dfffdeafc,3fad1f7bbadf27f2]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "[fdbecffbffebf53f,0905800000008000]", "[fc000ffbffebf53f0905800000008000]", "00")
+ self.bid128_round_integral_zero("0", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_zero("0", "[fe001c1551ff726e,85f8d5226cf76148]", "[fc001c1551ff726e85f8d5226cf76148]", "01")
+ self.bid128_round_integral_zero("0", "[fff77ff9f7fcffbd,fdffffffffffffff]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_round_integral_zero("0", "-Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_round_integral_zero("0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_round_integral_zero("0", "18446744073709551616500E-3", "18446744073709551616E+0", "00")
+ }
+
+ private func bid128_round_integral_zero(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(.towardZero, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.toIntel_round(status: &status)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelSquareRootTests.swift b/Tests/DecimalTests/Intel - generated/IntelSquareRootTests.swift
new file mode 100644
index 0000000..1a9f70b
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelSquareRootTests.swift
@@ -0,0 +1,534 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelSquareRootTests: XCTestCase, IntelMixin {
+
+ func test_bid32_sqrt() {
+ self.bid32_sqrt("0", "[00000001]", "[163040A6]", "20", ulp: "-3.3983162067e-01")
+ self.bid32_sqrt("0", "[00000001]", "[163040a6]", "20", ulp: "-3.398316e-01")
+ self.bid32_sqrt("0", "[00000003]", "[1653936A]", "20", ulp: "-4.2494833887e-01")
+ self.bid32_sqrt("0", "[00051615]", "[179BDBCD]", "20", ulp: "-5.4520603682e-02")
+ self.bid32_sqrt("0", "[00080001]", "[17a2f048]", "20", ulp: "-2.073811e-01")
+ self.bid32_sqrt("0", "[03000001]", "[17B040A6]", "20", ulp: "-3.3983162067e-01")
+ self.bid32_sqrt("0", "[03000003]", "[17D3936A]", "20", ulp: "-4.2494833887e-01")
+ self.bid32_sqrt("0", "1.0", "[3200000a]", "00", ulp: "0.000000e-01")
+ self.bid32_sqrt("0", "-1.0", "[7c000000]", "01")
+ self.bid32_sqrt("0", "1.0e-96", "[1a00000a]", "00", ulp: "0.000000e-01")
+ self.bid32_sqrt("0", "-1.0e-96", "[7c000000]", "01")
+ self.bid32_sqrt("0", "1.1000E+94", "[471000e9]", "20", ulp: "-1.518298e-01")
+ self.bid32_sqrt("0", "[3180013A]", "[2F9B09E5]", "20", ulp: "-4.8533306496e-01")
+ self.bid32_sqrt("0", "[3180013B]", "[2F9B14E8]", "20", ulp: "-6.5070115187e-02")
+ self.bid32_sqrt("0", "4.000001", "[2f9e8480]", "20", ulp: "2.500000e-01")
+ self.bid32_sqrt("0", "4.0", "[32000014]", "00", ulp: "0.000000e-01")
+ self.bid32_sqrt("0", "[5FB2DCD5]", "[479BDBCE]", "20", ulp: "-2.3293654149e-01")
+ self.bid32_sqrt("0", "[6098967f]", "[6638967f]", "20", ulp: "5.000000e-01")
+ self.bid32_sqrt("0", "[60989680]", "[1a000000]", "00", ulp: "0.000000e-01")
+ self.bid32_sqrt("0", "[6BD8967F]", "[6BD8967F]", "20", ulp: "4.9999998750e-01")
+ self.bid32_sqrt("0", "[77F8967F]", "[47B040A6]", "20", ulp: "-4.9794550763e-01")
+ self.bid32_sqrt("0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_sqrt("0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_sqrt("0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_sqrt("0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_sqrt("0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_sqrt("0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_sqrt("0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_sqrt("0", "[80000001]", "[7c000000]", "01")
+ self.bid32_sqrt("0", "9.999999e-95", "[65f8967f]", "20", ulp: "5.000000e-01")
+ self.bid32_sqrt("0", "-9.999999e-95", "[7c000000]", "01")
+ self.bid32_sqrt("0", "9.999999e96", "[47b040a6]", "20", ulp: "-4.979455e-01")
+ self.bid32_sqrt("0", "-9.999999e96", "[7c000000]", "01")
+ self.bid32_sqrt("0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_sqrt("0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_sqrt("0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_sqrt("1", "[00000001]", "[163040A5]", "20", ulp: "6.6016837933e-01")
+ self.bid32_sqrt("1", "[00000003]", "[16539369]", "20", ulp: "5.7505166113e-01")
+ self.bid32_sqrt("1", "[00051615]", "[179BDBCC]", "20", ulp: "9.4547939632e-01")
+ self.bid32_sqrt("1", "[03000001]", "[17B040A5]", "20", ulp: "6.6016837933e-01")
+ self.bid32_sqrt("1", "[03000003]", "[17D39369]", "20", ulp: "5.7505166113e-01")
+ self.bid32_sqrt("1", "1.1000E+94", "[471000e8]", "20", ulp: "8.481702e-01")
+ self.bid32_sqrt("1", "[3180013A]", "[2F9B09E4]", "20", ulp: "5.1466693504e-01")
+ self.bid32_sqrt("1", "[3180013B]", "[2F9B14E7]", "20", ulp: "9.3492988481e-01")
+ self.bid32_sqrt("1", "4.000001", "[2f9e8480]", "20", ulp: "2.500000e-01")
+ self.bid32_sqrt("1", "4.0", "[32000014]", "00", ulp: "0.000000e-01")
+ self.bid32_sqrt("1", "[5FB2DCD5]", "[479BDBCD]", "20", ulp: "7.6706345851e-01")
+ self.bid32_sqrt("1", "[77F8967F]", "[47B040A5]", "20", ulp: "5.0205449237e-01")
+ self.bid32_sqrt("2", "[00000001]", "[163040A6]", "20", ulp: "-3.3983162067e-01")
+ self.bid32_sqrt("2", "[00000003]", "[1653936A]", "20", ulp: "-4.2494833887e-01")
+ self.bid32_sqrt("2", "[00051615]", "[179BDBCD]", "20", ulp: "-5.4520603682e-02")
+ self.bid32_sqrt("2", "[03000001]", "[17B040A6]", "20", ulp: "-3.3983162067e-01")
+ self.bid32_sqrt("2", "[03000003]", "[17D3936A]", "20", ulp: "-4.2494833887e-01")
+ self.bid32_sqrt("2", "1.1000E+94", "[471000e9]", "20", ulp: "-1.518298e-01")
+ self.bid32_sqrt("2", "[3180013A]", "[2F9B09E5]", "20", ulp: "-4.8533306496e-01")
+ self.bid32_sqrt("2", "[3180013B]", "[2F9B14E8]", "20", ulp: "-6.5070115187e-02")
+ self.bid32_sqrt("2", "4.000001", "[2f9e8481]", "20", ulp: "-7.500000e-01")
+ self.bid32_sqrt("2", "4.0", "[32000014]", "00", ulp: "0.000000e-01")
+ self.bid32_sqrt("2", "[5FB2DCD5]", "[479BDBCE]", "20", ulp: "-2.3293654149e-01")
+ self.bid32_sqrt("2", "[77F8967F]", "[47B040A6]", "20", ulp: "-4.9794550763e-01")
+ self.bid32_sqrt("3", "[00000001]", "[163040A5]", "20", ulp: "6.6016837933e-01")
+ self.bid32_sqrt("3", "[00000003]", "[16539369]", "20", ulp: "5.7505166113e-01")
+ self.bid32_sqrt("3", "[00051616]", "[179BDBCF]", "20", ulp: "6.8409149919e-01")
+ self.bid32_sqrt("3", "[03000001]", "[17B040A5]", "20", ulp: "6.6016837933e-01")
+ self.bid32_sqrt("3", "[03000003]", "[17D39369]", "20", ulp: "5.7505166113e-01")
+ self.bid32_sqrt("3", "1.1000E+94", "[471000e8]", "20", ulp: "8.481702e-01")
+ self.bid32_sqrt("3", "[3180013A]", "[2F9B09E4]", "20", ulp: "5.1466693504e-01")
+ self.bid32_sqrt("3", "[3180013B]", "[2F9B14E7]", "20", ulp: "9.3492988481e-01")
+ self.bid32_sqrt("3", "4.000001", "[2f9e8480]", "20", ulp: "2.500000e-01")
+ self.bid32_sqrt("3", "4.0", "[32000014]", "00", ulp: "0.000000e-01")
+ self.bid32_sqrt("3", "[5FB2DCD5]", "[479BDBCD]", "20", ulp: "7.6706345851e-01")
+ self.bid32_sqrt("3", "[77F8967F]", "[47B040A5]", "20", ulp: "5.0205449237e-01")
+ self.bid32_sqrt("4", "1.1000E+94", "[471000e9]", "20", ulp: "-1.518298e-01")
+ self.bid32_sqrt("4", "4.000001", "[2f9e8480]", "20", ulp: "2.500000e-01")
+ self.bid32_sqrt("4", "4.0", "[32000014]", "00", ulp: "0.000000e-01")
+ self.bid32_sqrt("0", "-Infinity", "[7c000000]", "01")
+ self.bid32_sqrt("2", "9999999E+7", "1000000E+1", "20")
+ }
+
+ private func bid32_sqrt(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.squareRoot(rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_sqrt() {
+ self.bid64_sqrt("0", "[0000000000000001]", "[18E0000000000001]", "00", ulp: "0.0000000000e-01")
+ self.bid64_sqrt("0", "[0000000000000003]", "[1706274A811E39ED]", "20", ulp: "2.9352744634e-01")
+ self.bid64_sqrt("0", "[0000000000400000]", "[18e0000000000800]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "[00012F2A36ECD555]", "[17E67C80A6EB25D9]", "20", ulp: "-2.0134769657e-01")
+ self.bid64_sqrt("0", "[01E0000000000001]", "[17EB3C13249D90BB]", "20", ulp: "3.3199889354e-01")
+ self.bid64_sqrt("0", "[01E0000000000003]", "[17F37581F4C1718D]", "20", ulp: "1.3456969783e-01")
+ self.bid64_sqrt("0", "0", "[31c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "[0720617360886d18]", "[1b6ba1181170ccbb]", "20", ulp: "-2.394166e-01")
+ self.bid64_sqrt("0", "[0760000000000000]", "[1c80000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "[0b1b56280b01950c]", "[1d7f29f6049c7784]", "20", ulp: "2.875489e-01")
+ self.bid64_sqrt("0", "-0", "[b1c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "-1", "[7c00000000000000]", "01")
+ self.bid64_sqrt("0", "[1a1d795b5ecb4196]", "[69385bff77084369]", "20", ulp: "-6.975172e-02")
+ self.bid64_sqrt("0", "[253dc7edf441a1b4]", "[2a8a493c02bf701d]", "20", ulp: "-1.445805e-01")
+ self.bid64_sqrt("0", "[318000000000013A]", "[2FE64BA0F3A319B7]", "20", ulp: "4.0199112510e-02")
+ self.bid64_sqrt("0", "[318000000000013B]", "[2FE64E31662E2BDD]", "20", ulp: "-1.8722980151e-01")
+ self.bid64_sqrt("0", "[3480000000000000]", "[3320000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "[3ee0000000000000]", "[3840000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "4", "[31c0000000000002]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "[5600000000000000]", "[43e0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "[57e0000000000000]", "[44c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "[5FEBD7A625405555]", "[47E67C80A6EB25DA]", "20", ulp: "-3.7976386031e-01")
+ self.bid64_sqrt("0", "[6BF386F26FC0FFFF]", "[6BF386F26FC0FFFF]", "20", ulp: "5.0000000000e-01")
+ self.bid64_sqrt("0", "[77FB86F26FC0FFFF]", "[47EB3C13249D90BB]", "20", ulp: "1.7388501054e-01")
+ self.bid64_sqrt("0", "[8511027ffb80d6da]", "[7c00000000000000]", "01")
+ self.bid64_sqrt("0", "+8898998.8898989999E0", "[304a992183892dd9]", "20", ulp: "2.349778e-01")
+ self.bid64_sqrt("0", "+8.9889E0", "[2feaa6cd0fb67ec9]", "20", ulp: "8.604776e-03")
+ self.bid64_sqrt("0", "9", "[31c0000000000003]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "9999999800000001", "[31c0000005f5e0ff]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "9999999800000002", "[6c3386f269cb1f01]", "20", ulp: "-5.000000e-01")
+ self.bid64_sqrt("0", "[99c0000000000000]", "[a5c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "[aa80000000000000]", "[ae20000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "[d580000000000000]", "[c3a0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "[d9d5eb5e012dd27b]", "[7c00000000000000]", "01")
+ self.bid64_sqrt("0", "[f7b797a7ed6edeff]", "[c840000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("0", "[f800000000000000]", "[7c00000000000000]", "01")
+ self.bid64_sqrt("0", "[ffffffffffffffff]", "[fc00000000000000]", "01")
+ self.bid64_sqrt("0", "Infinity", "[7800000000000000]", "00")
+ self.bid64_sqrt("0", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_sqrt("0", "qnan", "[7c00000000000000]", "00")
+ self.bid64_sqrt("0", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_sqrt("0", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_sqrt("1", "[0000000000000003]", "[1706274A811E39ED]", "20", ulp: "2.9352744634e-01")
+ self.bid64_sqrt("1", "[00012F2A36ECD555]", "[17E67C80A6EB25D8]", "20", ulp: "7.9865230343e-01")
+ self.bid64_sqrt("1", "[01E0000000000001]", "[17EB3C13249D90BB]", "20", ulp: "3.3199889354e-01")
+ self.bid64_sqrt("1", "[01E0000000000003]", "[17F37581F4C1718D]", "20", ulp: "1.3456969783e-01")
+ self.bid64_sqrt("1", "0", "[31c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("1", "[0760000000000000]", "[1c80000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("1", "-0", "[b1c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("1", "[1a1d795b5ecb4196]", "[69385bff77084368]", "20", ulp: "9.302483e-01")
+ self.bid64_sqrt("1", "[318000000000013A]", "[2FE64BA0F3A319B7]", "20", ulp: "4.0199112510e-02")
+ self.bid64_sqrt("1", "[318000000000013B]", "[2FE64E31662E2BDC]", "20", ulp: "8.1277019849e-01")
+ self.bid64_sqrt("1", "[3480000000000000]", "[3320000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("1", "[3ee0000000000000]", "[3840000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("1", "[5600000000000000]", "[43e0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("1", "[57e0000000000000]", "[44c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("1", "[5FEBD7A625405555]", "[47E67C80A6EB25D9]", "20", ulp: "6.2023613969e-01")
+ self.bid64_sqrt("1", "[77FB86F26FC0FFFF]", "[47EB3C13249D90BB]", "20", ulp: "1.7388501054e-01")
+ self.bid64_sqrt("1", "[8511027ffb80d6da]", "[7c00000000000000]", "01")
+ self.bid64_sqrt("1", "+8898998.8898989999E0", "[304a992183892dd9]", "20", ulp: "2.349778e-01")
+ self.bid64_sqrt("1", "+8.9889E0", "[2feaa6cd0fb67ec9]", "20", ulp: "8.604776e-03")
+ self.bid64_sqrt("1", "[99c0000000000000]", "[a5c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("1", "[aa80000000000000]", "[ae20000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("1", "[d580000000000000]", "[c3a0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("1", "Infinity", "[7800000000000000]", "00")
+ self.bid64_sqrt("1", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_sqrt("1", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_sqrt("1", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_sqrt("2", "[0000000000000003]", "[1706274A811E39EE]", "20", ulp: "-7.0647255366e-01")
+ self.bid64_sqrt("2", "[00012F2A36ECD555]", "[17E67C80A6EB25D9]", "20", ulp: "-2.0134769657e-01")
+ self.bid64_sqrt("2", "[01E0000000000001]", "[17EB3C13249D90BC]", "20", ulp: "-6.6800110646e-01")
+ self.bid64_sqrt("2", "[01E0000000000003]", "[17F37581F4C1718E]", "20", ulp: "-8.6543030217e-01")
+ self.bid64_sqrt("2", "0", "[31c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "[0760000000000000]", "[1c80000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "[0b1b56280b01950c]", "[1d7f29f6049c7785]", "20", ulp: "-7.124511e-01")
+ self.bid64_sqrt("2", "-0", "[b1c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "-1", "[7c00000000000000]", "01")
+ self.bid64_sqrt("2", "[1a1d795b5ecb4196]", "[69385bff77084369]", "20", ulp: "-6.975172e-02")
+ self.bid64_sqrt("2", "[318000000000013A]", "[2FE64BA0F3A319B8]", "20", ulp: "-9.5980088749e-01")
+ self.bid64_sqrt("2", "[318000000000013B]", "[2FE64E31662E2BDD]", "20", ulp: "-1.8722980151e-01")
+ self.bid64_sqrt("2", "[3480000000000000]", "[3320000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "[3ee0000000000000]", "[3840000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "4", "[31c0000000000002]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "[5600000000000000]", "[43e0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "[57e0000000000000]", "[44c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "[5FEBD7A625405555]", "[47E67C80A6EB25DA]", "20", ulp: "-3.7976386031e-01")
+ self.bid64_sqrt("2", "[77FB86F26FC0FFFF]", "[47EB3C13249D90BC]", "20", ulp: "-8.2611498946e-01")
+ self.bid64_sqrt("2", "[8511027ffb80d6da]", "[7c00000000000000]", "01")
+ self.bid64_sqrt("2", "+8898998.8898989999E0", "[304a992183892dda]", "20", ulp: "-7.650222e-01")
+ self.bid64_sqrt("2", "+8.9889E0", "[2feaa6cd0fb67eca]", "20", ulp: "-9.913952e-01")
+ self.bid64_sqrt("2", "9", "[31c0000000000003]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "9999999800000001", "[31c0000005f5e0ff]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "9999999800000002", "[6c3386f269cb1f01]", "20", ulp: "-5.000000e-01")
+ self.bid64_sqrt("2", "9.999999999999999E-383", "[18038d7ea4c68000]", "20", ulp: "-5.000000e-02")
+ self.bid64_sqrt("2", "[99c0000000000000]", "[a5c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "[aa80000000000000]", "[ae20000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "[d580000000000000]", "[c3a0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("2", "Infinity", "[7800000000000000]", "00")
+ self.bid64_sqrt("2", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_sqrt("2", "qnan", "[7c00000000000000]", "00")
+ self.bid64_sqrt("2", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_sqrt("2", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_sqrt("3", "[0000000000000003]", "[1706274A811E39ED]", "20", ulp: "2.9352744634e-01")
+ self.bid64_sqrt("3", "[00012F2A36ECD556]", "[17E67C80A6EB25DB]", "20", ulp: "5.3726509096e-01")
+ self.bid64_sqrt("3", "[01E0000000000001]", "[17EB3C13249D90BB]", "20", ulp: "3.3199889354e-01")
+ self.bid64_sqrt("3", "[01E0000000000003]", "[17F37581F4C1718D]", "20", ulp: "1.3456969783e-01")
+ self.bid64_sqrt("3", "0", "[31c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("3", "[0760000000000000]", "[1c80000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("3", "-0", "[b1c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("3", "[1a1d795b5ecb4196]", "[69385bff77084368]", "20", ulp: "9.302483e-01")
+ self.bid64_sqrt("3", "[318000000000013A]", "[2FE64BA0F3A319B7]", "20", ulp: "4.0199112510e-02")
+ self.bid64_sqrt("3", "[318000000000013B]", "[2FE64E31662E2BDC]", "20", ulp: "8.1277019849e-01")
+ self.bid64_sqrt("3", "[3480000000000000]", "[3320000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("3", "[3ee0000000000000]", "[3840000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("3", "[5600000000000000]", "[43e0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("3", "[57e0000000000000]", "[44c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("3", "[5FEBD7A625405555]", "[47E67C80A6EB25D9]", "20", ulp: "6.2023613969e-01")
+ self.bid64_sqrt("3", "[77FB86F26FC0FFFF]", "[47EB3C13249D90BB]", "20", ulp: "1.7388501054e-01")
+ self.bid64_sqrt("3", "[8511027ffb80d6da]", "[7c00000000000000]", "01")
+ self.bid64_sqrt("3", "+8898998.8898989999E0", "[304a992183892dd9]", "20", ulp: "2.349778e-01")
+ self.bid64_sqrt("3", "+8.9889E0", "[2feaa6cd0fb67ec9]", "20", ulp: "8.604776e-03")
+ self.bid64_sqrt("3", "[99c0000000000000]", "[a5c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("3", "[aa80000000000000]", "[ae20000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("3", "[d580000000000000]", "[c3a0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("3", "Infinity", "[7800000000000000]", "00")
+ self.bid64_sqrt("3", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_sqrt("3", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_sqrt("3", "SNaN", "[7c00000000000000]", "01")
+ self.bid64_sqrt("4", "0", "[31c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("4", "[0760000000000000]", "[1c80000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("4", "-0", "[b1c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("4", "[1a1d795b5ecb4196]", "[69385bff77084369]", "20", ulp: "-6.975172e-02")
+ self.bid64_sqrt("4", "[3480000000000000]", "[3320000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("4", "[3ee0000000000000]", "[3840000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("4", "[5600000000000000]", "[43e0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("4", "[57e0000000000000]", "[44c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("4", "[8511027ffb80d6da]", "[7c00000000000000]", "01")
+ self.bid64_sqrt("4", "+8898998.8898989999E0", "[304a992183892dd9]", "20", ulp: "2.349778e-01")
+ self.bid64_sqrt("4", "+8.9889E0", "[2feaa6cd0fb67ec9]", "20", ulp: "8.604776e-03")
+ self.bid64_sqrt("4", "[99c0000000000000]", "[a5c0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("4", "[aa80000000000000]", "[ae20000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("4", "[d580000000000000]", "[c3a0000000000000]", "00", ulp: "0.000000e-01")
+ self.bid64_sqrt("4", "Infinity", "[7800000000000000]", "00")
+ self.bid64_sqrt("4", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_sqrt("4", "QNaN", "[7c00000000000000]", "00")
+ self.bid64_sqrt("4", "SNaN", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_sqrt(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.squareRoot(rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_sqrt() {
+ self.bid128_sqrt("0", "[00000000000000000000000000000001]", "[18200000000000000000000000000001]", "00", ulp: "0.0000000000e-01")
+ self.bid128_sqrt("0", "[00000000000000000000000000000003]", "[17DE55658DFFFA507518F7F77E975350]", "20", ulp: "3.6694280525e-01")
+ self.bid128_sqrt("0", "[0000000000000031,0000000000000000]", "[18200000000000000000000700000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "[0000002804800000,ffdfffef7fffff7e]", "[17fc57ca4550ef95cbee94388c26e725]", "20", ulp: "4.534828e-01")
+ self.bid128_sqrt("0", "[0000106F4216D9DBBD95C90355555555]", "[17FE5A041A1CC10D9F382CE290E1FAC6]", "20", ulp: "2.0030488647e-01")
+ self.bid128_sqrt("0", "[0001ed09bead87c0378d8e62ffffffff]", "[17ffed09bead87c0378d8e637fffffff]", "20", ulp: "5.000000e-01")
+ self.bid128_sqrt("0", "[0001ed09bead87c0378d8e64ffffffff]", "[18200000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "[00420000000000000000000000000001]", "[17FE9BE98E340036BAA9BAF39995E44F]", "20", ulp: "-4.6628044486e-01")
+ self.bid128_sqrt("0", "[00420000000000000000000000000003]", "[17FF0E0C4E564328DDA886A7B2A5F055]", "20", ulp: "3.3952744695e-01")
+ self.bid128_sqrt("0", "0", "[30400000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "[05038de0f17e426d,6b91004dfd53342c]", "[1a808c0f7a9a44ff095082e7d6367a6b]", "20", ulp: "4.138959e-01")
+ self.bid128_sqrt("0", "[0800000000000000,206400c40a400119]", "[1bf04b52cc1f7db2a58b2a6093509ee7]", "20", ulp: "-4.837270e-01")
+ self.bid128_sqrt("0", "-0", "[b0400000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "[1000000000800420,5e7fdfbddfffbff9]", "[1ff83d55e9c4a323b0e1891566423764]", "20", ulp: "2.073916e-01")
+ self.bid128_sqrt("0", "+10.00000E0", "[2ffe9be98e340036baa9baf39995e44f]", "20", ulp: "-4.662804e-01")
+ self.bid128_sqrt("0", "+10001110.0110111111E0", "[30049bebc548e98eb8be0d51c2e22928]", "20", ulp: "-3.571008e-02")
+ self.bid128_sqrt("0", "[145e000000000000,0000000000000000]", "[224e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "[18b7bfae9b1f4cd3,6e1a58583cb8f429]", "[245a949163c589dbbc0206fd9be4d367]", "20", ulp: "-1.225422e-01")
+ self.bid128_sqrt("0", "[24dc000000000000,0000000000000000]", "[2a8e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "[2FFDED09BEAD87C0378D8E63FFFFFFFF]", "20", ulp: "5.0000000000e-01")
+ self.bid128_sqrt("0", "[303C000000000000000000000000013A]", "[2FFE575DD763E390A4D07752A9EA0920]", "20", ulp: "-4.7492639148e-01")
+ self.bid128_sqrt("0", "[303C000000000000000000000000013B]", "[2FFE57816D6DAB48A232A5AA1ACE89C5]", "20", ulp: "1.1452465037e-01")
+ self.bid128_sqrt("0", "[304a314dc6448d9338c15b0a00000000]", "[3044000000000000016345785d8a0000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "[3b05549e5eeca99c,61e341325bc32858]", "[358199cd65cc7745395cbe07a42f485e]", "20", ulp: "-3.993978e-01")
+ self.bid128_sqrt("0", "[3c83470f45c155ed,f4f0313bcb5f33b1]", "[36407efc41b4c7d38c8adbf7a90e62e2]", "20", ulp: "4.398015e-01")
+ self.bid128_sqrt("0", "[52f2c948b8081147,362e8073cb795f72]", "[4178639e9fef7d9f733b3af0660f14cf]", "20", ulp: "-4.284199e-01")
+ self.bid128_sqrt("0", "[54f235e0f39b4658,eb89eb9c377a8ab3]", "[4278338a5fee08eb37ca8c3ce4bce950]", "20", ulp: "1.587776e-01")
+ self.bid128_sqrt("0", "+5585.897659988886E0", "[3001707db521720fff55a8fe258738cc]", "20", ulp: "3.306138e-01")
+ self.bid128_sqrt("0", "[5FFEA45894E4829567D9DA2155555555]", "[47FE5A041A1CC10D9F382CE290E1FAC7]", "20", ulp: "2.1888722732e-02")
+ self.bid128_sqrt("0", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "[47FE9BE98E340036BAA9BAF39995E44E]", "20", ulp: "3.7560567213e-01")
+ self.bid128_sqrt("0", "-6776897.6567677685E0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "+759.789987598E0", "[300087e705e539e0dc92caf13d8b63bb]", "20", ulp: "-4.545603e-01")
+ self.bid128_sqrt("0", "[761b369c37ee6bb0,c2401bcd0d60fc1e]", "[44560000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "+765986675886.59596E0", "[3009af829bfc2bdc08098c563f768a9e]", "20", ulp: "2.170949e-01")
+ self.bid128_sqrt("0", "+776974289.4239584644E0", "[3006896e42b1c1ddd1d1767e83d51f62]", "20", ulp: "9.169444e-02")
+ self.bid128_sqrt("0", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sqrt("0", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sqrt("0", "[7e36b56bebfdfffd,a96e7bd7e8e7ecb8]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "[8217d61037c6e306,16b21a9dd78f9ab6]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "[88780ea2ea66a0bf,9bc914a1f8d8b0b5]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "[91a35ddd15bc2cff,b23dc8a4458741f4]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "+988889.988E0", "[3003ea4aa56cdf08056860f316867df1]", "20", ulp: "2.089759e-02")
+ self.bid128_sqrt("0", "[a66db51bbbbe0d60,f50294a9ff0610cc]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "[a7e68c6db01481e2,2152385f8f3c9405]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "[aaae000000000000,0000000000000000]", "[ad760000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "[b05e000000000000,0000000000000000]", "[b04e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "[b96ceba4dc910512,57524ab75a1abd0e]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "[bf5595878901bfef,d875802ad9071e5c]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "[bffbffffebce77df,0308040410080c04]", "[b81c0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("0", "[c5881682e2e5fea7,0ef0f6db969cfd22]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "[c6b2dcd4c0a1eec3,b05ef7e90c33c10a]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "[d0b153b167979a38,5ea16a14b9854a20]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "[dc80cc4102f0d532,73ce592590b3e13c]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "[fbbe7f3dfffdfd77,5f61e9fd6e4f670f]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sqrt("0", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sqrt("0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "[00000000000000000000000000000003]", "[17DE55658DFFFA507518F7F77E975350]", "20", ulp: "3.6694280525e-01")
+ self.bid128_sqrt("1", "[0000106F4216D9DBBD95C90355555555]", "[17FE5A041A1CC10D9F382CE290E1FAC6]", "20", ulp: "2.0030488647e-01")
+ self.bid128_sqrt("1", "[0001ed09bead87c0378d8e62ffffffff]", "[17ffed09bead87c0378d8e637fffffff]", "20", ulp: "5.000000e-01")
+ self.bid128_sqrt("1", "[0001ed09bead87c0378d8e64ffffffff]", "[18200000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("1", "[00420000000000000000000000000001]", "[17FE9BE98E340036BAA9BAF39995E44E]", "20", ulp: "5.3371955514e-01")
+ self.bid128_sqrt("1", "[00420000000000000000000000000003]", "[17FF0E0C4E564328DDA886A7B2A5F055]", "20", ulp: "3.3952744695e-01")
+ self.bid128_sqrt("1", "0", "[30400000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("1", "[05038de0f17e426d,6b91004dfd53342c]", "[1a808c0f7a9a44ff095082e7d6367a6b]", "20", ulp: "4.138959e-01")
+ self.bid128_sqrt("1", "-0", "[b0400000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("1", "+10.00000E0", "[2ffe9be98e340036baa9baf39995e44e]", "20", ulp: "5.337196e-01")
+ self.bid128_sqrt("1", "+10001110.0110111111E0", "[30049bebc548e98eb8be0d51c2e22927]", "20", ulp: "9.642899e-01")
+ self.bid128_sqrt("1", "[145e000000000000,0000000000000000]", "[224e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("1", "[24dc000000000000,0000000000000000]", "[2a8e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("1", "[303C000000000000000000000000013A]", "[2FFE575DD763E390A4D07752A9EA091F]", "20", ulp: "5.2507360852e-01")
+ self.bid128_sqrt("1", "[303C000000000000000000000000013B]", "[2FFE57816D6DAB48A232A5AA1ACE89C5]", "20", ulp: "1.1452465037e-01")
+ self.bid128_sqrt("1", "[3b05549e5eeca99c,61e341325bc32858]", "[358199cd65cc7745395cbe07a42f485d]", "20", ulp: "6.006022e-01")
+ self.bid128_sqrt("1", "[3c83470f45c155ed,f4f0313bcb5f33b1]", "[36407efc41b4c7d38c8adbf7a90e62e2]", "20", ulp: "4.398015e-01")
+ self.bid128_sqrt("1", "[52f2c948b8081147,362e8073cb795f72]", "[4178639e9fef7d9f733b3af0660f14ce]", "20", ulp: "5.715801e-01")
+ self.bid128_sqrt("1", "+5585.897659988886E0", "[3001707db521720fff55a8fe258738cc]", "20", ulp: "3.306138e-01")
+ self.bid128_sqrt("1", "[5FFEA45894E4829567D9DA2155555555]", "[47FE5A041A1CC10D9F382CE290E1FAC7]", "20", ulp: "2.1888722732e-02")
+ self.bid128_sqrt("1", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "[47FE9BE98E340036BAA9BAF39995E44E]", "20", ulp: "3.7560567213e-01")
+ self.bid128_sqrt("1", "-6776897.6567677685E0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "+759.789987598E0", "[300087e705e539e0dc92caf13d8b63ba]", "20", ulp: "5.454397e-01")
+ self.bid128_sqrt("1", "+765986675886.59596E0", "[3009af829bfc2bdc08098c563f768a9e]", "20", ulp: "2.170949e-01")
+ self.bid128_sqrt("1", "+776974289.4239584644E0", "[3006896e42b1c1ddd1d1767e83d51f62]", "20", ulp: "9.169444e-02")
+ self.bid128_sqrt("1", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("1", "[8217d61037c6e306,16b21a9dd78f9ab6]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "[91a35ddd15bc2cff,b23dc8a4458741f4]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "+988889.988E0", "[3003ea4aa56cdf08056860f316867df1]", "20", ulp: "2.089759e-02")
+ self.bid128_sqrt("1", "[a66db51bbbbe0d60,f50294a9ff0610cc]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "[a7e68c6db01481e2,2152385f8f3c9405]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "[aaae000000000000,0000000000000000]", "[ad760000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("1", "[b05e000000000000,0000000000000000]", "[b04e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("1", "[b96ceba4dc910512,57524ab75a1abd0e]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "[bf5595878901bfef,d875802ad9071e5c]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "[c5881682e2e5fea7,0ef0f6db969cfd22]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "[c6b2dcd4c0a1eec3,b05ef7e90c33c10a]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "[d0b153b167979a38,5ea16a14b9854a20]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "[dc80cc4102f0d532,73ce592590b3e13c]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sqrt("1", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("1", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sqrt("1", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "[00000000000000000000000000000003]", "[17DE55658DFFFA507518F7F77E975351]", "20", ulp: "-6.3305719475e-01")
+ self.bid128_sqrt("2", "[0000002804800000,ffdfffef7fffff7e]", "[17fc57ca4550ef95cbee94388c26e726]", "20", ulp: "-5.465172e-01")
+ self.bid128_sqrt("2", "[0000106F4216D9DBBD95C90355555555]", "[17FE5A041A1CC10D9F382CE290E1FAC7]", "20", ulp: "-7.9969511353e-01")
+ self.bid128_sqrt("2", "[0001ed09bead87c0378d8e62ffffffff]", "[17ffed09bead87c0378d8e6380000000]", "20", ulp: "-5.000000e-01")
+ self.bid128_sqrt("2", "[0001ed09bead87c0378d8e64ffffffff]", "[18200000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("2", "[00420000000000000000000000000001]", "[17FE9BE98E340036BAA9BAF39995E44F]", "20", ulp: "-4.6628044486e-01")
+ self.bid128_sqrt("2", "[00420000000000000000000000000003]", "[17FF0E0C4E564328DDA886A7B2A5F056]", "20", ulp: "-6.6047255305e-01")
+ self.bid128_sqrt("2", "0", "[30400000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("2", "[05038de0f17e426d,6b91004dfd53342c]", "[1a808c0f7a9a44ff095082e7d6367a6c]", "20", ulp: "-5.861041e-01")
+ self.bid128_sqrt("2", "-0", "[b0400000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("2", "+10.00000E0", "[2ffe9be98e340036baa9baf39995e44f]", "20", ulp: "-4.662804e-01")
+ self.bid128_sqrt("2", "+10001110.0110111111E0", "[30049bebc548e98eb8be0d51c2e22928]", "20", ulp: "-3.571008e-02")
+ self.bid128_sqrt("2", "[145e000000000000,0000000000000000]", "[224e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("2", "[18b7bfae9b1f4cd3,6e1a58583cb8f429]", "[245a949163c589dbbc0206fd9be4d367]", "20", ulp: "-1.225422e-01")
+ self.bid128_sqrt("2", "[24dc000000000000,0000000000000000]", "[2a8e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("2", "[303C000000000000000000000000013A]", "[2FFE575DD763E390A4D07752A9EA0920]", "20", ulp: "-4.7492639148e-01")
+ self.bid128_sqrt("2", "[303C000000000000000000000000013B]", "[2FFE57816D6DAB48A232A5AA1ACE89C6]", "20", ulp: "-8.8547534963e-01")
+ self.bid128_sqrt("2", "[3b05549e5eeca99c,61e341325bc32858]", "[358199cd65cc7745395cbe07a42f485e]", "20", ulp: "-3.993978e-01")
+ self.bid128_sqrt("2", "[3c83470f45c155ed,f4f0313bcb5f33b1]", "[36407efc41b4c7d38c8adbf7a90e62e3]", "20", ulp: "-5.601985e-01")
+ self.bid128_sqrt("2", "[52f2c948b8081147,362e8073cb795f72]", "[4178639e9fef7d9f733b3af0660f14cf]", "20", ulp: "-4.284199e-01")
+ self.bid128_sqrt("2", "+5585.897659988886E0", "[3001707db521720fff55a8fe258738cd]", "20", ulp: "-6.693862e-01")
+ self.bid128_sqrt("2", "[5FFEA45894E4829567D9DA2155555555]", "[47FE5A041A1CC10D9F382CE290E1FAC8]", "20", ulp: "-9.7811127727e-01")
+ self.bid128_sqrt("2", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "[47FE9BE98E340036BAA9BAF39995E44F]", "20", ulp: "-6.2439432787e-01")
+ self.bid128_sqrt("2", "-6776897.6567677685E0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "+759.789987598E0", "[300087e705e539e0dc92caf13d8b63bb]", "20", ulp: "-4.545603e-01")
+ self.bid128_sqrt("2", "+765986675886.59596E0", "[3009af829bfc2bdc08098c563f768a9f]", "20", ulp: "-7.829051e-01")
+ self.bid128_sqrt("2", "+776974289.4239584644E0", "[3006896e42b1c1ddd1d1767e83d51f63]", "20", ulp: "-9.083056e-01")
+ self.bid128_sqrt("2", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("2", "[8217d61037c6e306,16b21a9dd78f9ab6]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "[91a35ddd15bc2cff,b23dc8a4458741f4]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "+988889.988E0", "[3003ea4aa56cdf08056860f316867df2]", "20", ulp: "-9.791024e-01")
+ self.bid128_sqrt("2", "9999999999999999800000000000000001", "[3040000000000000016345785d89ffff]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("2", "9.999999999999999999999999999999999E-6143", "[1800314dc6448d9338c15b0a00000000]", "20", ulp: "-5.000000e-02")
+ self.bid128_sqrt("2", "[a66db51bbbbe0d60,f50294a9ff0610cc]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "[a7e68c6db01481e2,2152385f8f3c9405]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "[aaae000000000000,0000000000000000]", "[ad760000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("2", "[b05e000000000000,0000000000000000]", "[b04e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("2", "[b96ceba4dc910512,57524ab75a1abd0e]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "[bf5595878901bfef,d875802ad9071e5c]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "[c5881682e2e5fea7,0ef0f6db969cfd22]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "[c6b2dcd4c0a1eec3,b05ef7e90c33c10a]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "[d0b153b167979a38,5ea16a14b9854a20]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "[dc80cc4102f0d532,73ce592590b3e13c]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sqrt("2", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sqrt("2", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "[00000000000000000000000000000003]", "[17DE55658DFFFA507518F7F77E975350]", "20", ulp: "3.6694280525e-01")
+ self.bid128_sqrt("3", "[0000106F4216D9DBBD95C90355555556]", "[17FE5A041A1CC10D9F382CE290E1FAC8]", "20", ulp: "9.3891767400e-01")
+ self.bid128_sqrt("3", "[0001ed09bead87c0378d8e62ffffffff]", "[17ffed09bead87c0378d8e637fffffff]", "20", ulp: "5.000000e-01")
+ self.bid128_sqrt("3", "[0001ed09bead87c0378d8e64ffffffff]", "[18200000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("3", "[00420000000000000000000000000001]", "[17FE9BE98E340036BAA9BAF39995E44E]", "20", ulp: "5.3371955514e-01")
+ self.bid128_sqrt("3", "[00420000000000000000000000000003]", "[17FF0E0C4E564328DDA886A7B2A5F055]", "20", ulp: "3.3952744695e-01")
+ self.bid128_sqrt("3", "0", "[30400000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("3", "[05038de0f17e426d,6b91004dfd53342c]", "[1a808c0f7a9a44ff095082e7d6367a6b]", "20", ulp: "4.138959e-01")
+ self.bid128_sqrt("3", "-0", "[b0400000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("3", "+10.00000E0", "[2ffe9be98e340036baa9baf39995e44e]", "20", ulp: "5.337196e-01")
+ self.bid128_sqrt("3", "+10001110.0110111111E0", "[30049bebc548e98eb8be0d51c2e22927]", "20", ulp: "9.642899e-01")
+ self.bid128_sqrt("3", "[145e000000000000,0000000000000000]", "[224e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("3", "[24dc000000000000,0000000000000000]", "[2a8e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("3", "[303C000000000000000000000000013A]", "[2FFE575DD763E390A4D07752A9EA091F]", "20", ulp: "5.2507360852e-01")
+ self.bid128_sqrt("3", "[303C000000000000000000000000013B]", "[2FFE57816D6DAB48A232A5AA1ACE89C5]", "20", ulp: "1.1452465037e-01")
+ self.bid128_sqrt("3", "[3b05549e5eeca99c,61e341325bc32858]", "[358199cd65cc7745395cbe07a42f485d]", "20", ulp: "6.006022e-01")
+ self.bid128_sqrt("3", "[3c83470f45c155ed,f4f0313bcb5f33b1]", "[36407efc41b4c7d38c8adbf7a90e62e2]", "20", ulp: "4.398015e-01")
+ self.bid128_sqrt("3", "[52f2c948b8081147,362e8073cb795f72]", "[4178639e9fef7d9f733b3af0660f14ce]", "20", ulp: "5.715801e-01")
+ self.bid128_sqrt("3", "+5585.897659988886E0", "[3001707db521720fff55a8fe258738cc]", "20", ulp: "3.306138e-01")
+ self.bid128_sqrt("3", "[5FFEA45894E4829567D9DA2155555555]", "[47FE5A041A1CC10D9F382CE290E1FAC7]", "20", ulp: "2.1888722732e-02")
+ self.bid128_sqrt("3", "[5FFFED09BEAD87C0378D8E63FFFFFFFF]", "[47FE9BE98E340036BAA9BAF39995E44E]", "20", ulp: "3.7560567213e-01")
+ self.bid128_sqrt("3", "-6776897.6567677685E0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "+759.789987598E0", "[300087e705e539e0dc92caf13d8b63ba]", "20", ulp: "5.454397e-01")
+ self.bid128_sqrt("3", "+765986675886.59596E0", "[3009af829bfc2bdc08098c563f768a9e]", "20", ulp: "2.170949e-01")
+ self.bid128_sqrt("3", "+776974289.4239584644E0", "[3006896e42b1c1ddd1d1767e83d51f62]", "20", ulp: "9.169444e-02")
+ self.bid128_sqrt("3", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("3", "[8217d61037c6e306,16b21a9dd78f9ab6]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "[91a35ddd15bc2cff,b23dc8a4458741f4]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "+988889.988E0", "[3003ea4aa56cdf08056860f316867df1]", "20", ulp: "2.089759e-02")
+ self.bid128_sqrt("3", "[a66db51bbbbe0d60,f50294a9ff0610cc]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "[a7e68c6db01481e2,2152385f8f3c9405]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "[aaae000000000000,0000000000000000]", "[ad760000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("3", "[b05e000000000000,0000000000000000]", "[b04e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("3", "[b96ceba4dc910512,57524ab75a1abd0e]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "[bf5595878901bfef,d875802ad9071e5c]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "[c5881682e2e5fea7,0ef0f6db969cfd22]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "[c6b2dcd4c0a1eec3,b05ef7e90c33c10a]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "[d0b153b167979a38,5ea16a14b9854a20]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "[dc80cc4102f0d532,73ce592590b3e13c]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sqrt("3", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("3", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sqrt("3", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "[0001ed09bead87c0378d8e62ffffffff]", "[17ffed09bead87c0378d8e637fffffff]", "20", ulp: "5.000000e-01")
+ self.bid128_sqrt("4", "[0001ed09bead87c0378d8e64ffffffff]", "[18200000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("4", "0", "[30400000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("4", "[05038de0f17e426d,6b91004dfd53342c]", "[1a808c0f7a9a44ff095082e7d6367a6b]", "20", ulp: "4.138959e-01")
+ self.bid128_sqrt("4", "-0", "[b0400000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("4", "+10.00000E0", "[2ffe9be98e340036baa9baf39995e44f]", "20", ulp: "-4.662804e-01")
+ self.bid128_sqrt("4", "+10001110.0110111111E0", "[30049bebc548e98eb8be0d51c2e22928]", "20", ulp: "-3.571008e-02")
+ self.bid128_sqrt("4", "[145e000000000000,0000000000000000]", "[224e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("4", "[24dc000000000000,0000000000000000]", "[2a8e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("4", "[3b05549e5eeca99c,61e341325bc32858]", "[358199cd65cc7745395cbe07a42f485e]", "20", ulp: "-3.993978e-01")
+ self.bid128_sqrt("4", "[3c83470f45c155ed,f4f0313bcb5f33b1]", "[36407efc41b4c7d38c8adbf7a90e62e2]", "20", ulp: "4.398015e-01")
+ self.bid128_sqrt("4", "[52f2c948b8081147,362e8073cb795f72]", "[4178639e9fef7d9f733b3af0660f14cf]", "20", ulp: "-4.284199e-01")
+ self.bid128_sqrt("4", "+5585.897659988886E0", "[3001707db521720fff55a8fe258738cc]", "20", ulp: "3.306138e-01")
+ self.bid128_sqrt("4", "-6776897.6567677685E0", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "+759.789987598E0", "[300087e705e539e0dc92caf13d8b63bb]", "20", ulp: "-4.545603e-01")
+ self.bid128_sqrt("4", "+765986675886.59596E0", "[3009af829bfc2bdc08098c563f768a9e]", "20", ulp: "2.170949e-01")
+ self.bid128_sqrt("4", "+776974289.4239584644E0", "[3006896e42b1c1ddd1d1767e83d51f62]", "20", ulp: "9.169444e-02")
+ self.bid128_sqrt("4", "[7800000000000000,0000000000000000]", "[78000000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("4", "[8217d61037c6e306,16b21a9dd78f9ab6]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "[91a35ddd15bc2cff,b23dc8a4458741f4]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "+988889.988E0", "[3003ea4aa56cdf08056860f316867df1]", "20", ulp: "2.089759e-02")
+ self.bid128_sqrt("4", "[a66db51bbbbe0d60,f50294a9ff0610cc]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "[a7e68c6db01481e2,2152385f8f3c9405]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "[aaae000000000000,0000000000000000]", "[ad760000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("4", "[b05e000000000000,0000000000000000]", "[b04e0000000000000000000000000000]", "00", ulp: "0.000000e-01")
+ self.bid128_sqrt("4", "[b96ceba4dc910512,57524ab75a1abd0e]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "[bf5595878901bfef,d875802ad9071e5c]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "[c5881682e2e5fea7,0ef0f6db969cfd22]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "[c6b2dcd4c0a1eec3,b05ef7e90c33c10a]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "[d0b153b167979a38,5ea16a14b9854a20]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "[dc80cc4102f0d532,73ce592590b3e13c]", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sqrt("4", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("4", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sqrt("4", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sqrt("2", "[0001000000000000,0000000000000001]", "[17ff6345785d8a000000000000000001]", "20")
+ self.bid128_sqrt("2", "[0001000000000000,0000000000000001]", "[17ff6345785d8a000000000000000001]", "20")
+ }
+
+ private func bid128_sqrt(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ ulp _ulp: String? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+ guard let ulp = self.parseUlp(_ulp, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.squareRoot(rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, ulp: ulp, rounding: rounding, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelSubTests.swift b/Tests/DecimalTests/Intel - generated/IntelSubTests.swift
new file mode 100644
index 0000000..f739931
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelSubTests.swift
@@ -0,0 +1,592 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelSubTests: XCTestCase, IntelMixin {
+
+ func test_bid32_sub() {
+ self.bid32_sub("0", "[00000001]", "1.0", "[af8f4240]", "20")
+ self.bid32_sub("0", "[00080001]", "1.0", "[af8f4240]", "20")
+ self.bid32_sub("0", "1.0", "[00000001]", "[2f8f4240]", "20")
+ self.bid32_sub("0", "1.0", "[00080001]", "[2f8f4240]", "20")
+ self.bid32_sub("0", "1.0", "1.0", "[32000000]", "00")
+ self.bid32_sub("0", "1.0", "-1.0", "[32000014]", "00")
+ self.bid32_sub("0", "-1.0", "1.0", "[b2000014]", "00")
+ self.bid32_sub("0", "1.0", "-1.0e-96", "[2f8f4240]", "20")
+ self.bid32_sub("0", "1.0", "1.0e-96", "[2f8f4240]", "20")
+ self.bid32_sub("0", "1.0", "[6098967f]", "[2f8f4240]", "20")
+ self.bid32_sub("0", "1.0", "[60989680]", "[2f8f4240]", "00")
+ self.bid32_sub("0", "1.0", "[7c000000]", "[7c000000]", "00")
+ self.bid32_sub("0", "1.0", "[7c8f423f]", "[7c0f423f]", "00")
+ self.bid32_sub("0", "1.0", "[7c8f4240]", "[7c000000]", "00")
+ self.bid32_sub("0", "1.0", "[7e100000]", "[7c000000]", "01")
+ self.bid32_sub("0", "1.0", "[7e100100]", "[7c000100]", "01")
+ self.bid32_sub("0", "1.0", "[7e8f423f]", "[7c0f423f]", "01")
+ self.bid32_sub("0", "1.0", "[7e8f4240]", "[7c000000]", "01")
+ self.bid32_sub("0", "1.0", "[80000001]", "[2f8f4240]", "20")
+ self.bid32_sub("0", "1.0", "-9.999999e-95", "[2f8f4240]", "20")
+ self.bid32_sub("0", "1.0", "9.999999e-95", "[2f8f4240]", "20")
+ self.bid32_sub("0", "1.0", "-9.999999e96", "[77f8967f]", "20")
+ self.bid32_sub("0", "1.0", "9.999999e96", "[f7f8967f]", "20")
+ self.bid32_sub("0", "-1.0e-96", "1.0", "[af8f4240]", "20")
+ self.bid32_sub("0", "1.0e-96", "1.0", "[af8f4240]", "20")
+ self.bid32_sub("0", "1.0", "[fc100000]", "[fc000000]", "00")
+ self.bid32_sub("0", "1.0", "[fc100100]", "[fc000100]", "00")
+ self.bid32_sub("0", "1.0", "[fe000000]", "[fc000000]", "01")
+ self.bid32_sub("0", "[6098967f]", "1.0", "[af8f4240]", "20")
+ self.bid32_sub("0", "[60989680]", "1.0", "[af8f4240]", "00")
+ self.bid32_sub("0", "[7c000000]", "1.0", "[7c000000]", "00")
+ self.bid32_sub("0", "[7c8f423f]", "1.0", "[7c0f423f]", "00")
+ self.bid32_sub("0", "[7c8f423f]", "[7e100000]", "[7c0f423f]", "01")
+ self.bid32_sub("0", "[7c8f423f]", "Infinity", "[7c0f423f]", "00")
+ self.bid32_sub("0", "[7c8f4240]", "1.0", "[7c000000]", "00")
+ self.bid32_sub("0", "[7e100000]", "1.0", "[7c000000]", "01")
+ self.bid32_sub("0", "[7e100100]", "1.0", "[7c000100]", "01")
+ self.bid32_sub("0", "[7e8f423f]", "1.0", "[7c0f423f]", "01")
+ self.bid32_sub("0", "[7e8f4240]", "1.0", "[7c000000]", "01")
+ self.bid32_sub("0", "[80000001]", "1.0", "[af8f4240]", "20")
+ self.bid32_sub("0", "-9.999999e-95", "1.0", "[af8f4240]", "20")
+ self.bid32_sub("0", "9.999999e-95", "1.0", "[af8f4240]", "20")
+ self.bid32_sub("0", "9.999999e96", "1.0", "[77f8967f]", "20")
+ self.bid32_sub("0", "-9.999999e96", "1.0", "[f7f8967f]", "20")
+ self.bid32_sub("0", "[fc100000]", "1.0", "[fc000000]", "00")
+ self.bid32_sub("0", "[fc100100]", "1.0", "[fc000100]", "00")
+ self.bid32_sub("0", "[fe000000]", "1.0", "[fc000000]", "01")
+ self.bid32_sub("0", "Infinity", "NaN", "[7c000000]", "00")
+ }
+
+ private func bid32_sub(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.subtracting(arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_sub() {
+ self.bid64_sub("0", "0", "0", "[31c0000000000000]", "00")
+ self.bid64_sub("0", "[20e0000000000000]", "[617a5e2cb460216b]", "[e17a5e2cb460216b]", "00")
+ self.bid64_sub("0", "[24a0000000000000]", "[04096b81bbbe37e6]", "[84096b81bbbe37e6]", "00")
+ self.bid64_sub("0", "[3240000000000000]", "[e30339faf6bc826c]", "[630339faf6bc826c]", "00")
+ self.bid64_sub("0", "-3263229488685.7997356E0", "-99899.98998E0", "[b16b97e3cc8a0892]", "20")
+ self.bid64_sub("0", "[3c40000000000000]", "[1f15936627c2f870]", "[9f15936627c2f870]", "00")
+ self.bid64_sub("0", "+566858769589697759.E0", "+9.999999899998E0", "[3214238cebfdf992]", "20")
+ self.bid64_sub("0", "-5756665976.99597977E0", "-98.898999888899999988E0", "[b11473a838c12c54]", "20")
+ self.bid64_sub("0", "[59e0000000000000]", "[1fccef3bcde09f5d]", "[9fccef3bcde09f5d]", "00")
+ self.bid64_sub("0", "[68464c7def71f5ed]", "[ffffdffffffffff7]", "[fc00000000000000]", "01")
+ self.bid64_sub("0", "+89889998889.9899E0", "-4.52956365533383E0", "[313fef72a14bfbaa]", "20")
+ self.bid64_sub("0", "-997659856.578E0", "-85898.464563965244E0", "[ec3b70e1de1af618]", "20")
+ self.bid64_sub("0", "+998888998.989889898E0", "-88999999989898.E0", "[319f9e97fc487d23]", "20")
+ self.bid64_sub("0", "[9d7138194236bb0e]", "[9280000000000000]", "[9d7138194236bb0e]", "00")
+ self.bid64_sub("0", "[a1c0000000000000]", "[4f40000000000000]", "[a1c0000000000000]", "00")
+ self.bid64_sub("0", "[baa9845d3648aefc]", "[809864c7ffc047a5]", "[baa9845d3648aefc]", "20")
+ self.bid64_sub("0", "[be40000000000000]", "[43d6aa7bbe6923b8]", "[c3d6aa7bbe6923b8]", "00")
+ self.bid64_sub("0", "[c580000000000000]", "[3287459e3cb504b7]", "[b287459e3cb504b7]", "00")
+ self.bid64_sub("0", "[ff3bf5fffee6d71b]", "[effffffffffbffff]", "[fc00000000000000]", "01")
+ self.bid64_sub("0", "Infinity", "-0", "[7800000000000000]", "00")
+ self.bid64_sub("0", "-Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_sub("0", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_sub("1", "[0000000000000400]", "[0000000000000400]", "[8000000000000000]", "00")
+ self.bid64_sub("1", "0", "0", "[b1c0000000000000]", "00")
+ self.bid64_sub("1", "[20e0000000000000]", "[617a5e2cb460216b]", "[e17a5e2cb460216b]", "00")
+ self.bid64_sub("1", "[24a0000000000000]", "[04096b81bbbe37e6]", "[84096b81bbbe37e6]", "00")
+ self.bid64_sub("1", "[3240000000000000]", "[e30339faf6bc826c]", "[630339faf6bc826c]", "00")
+ self.bid64_sub("1", "-3263229488685.7997356E0", "-99899.98998E0", "[b16b97e3cc8a0893]", "20")
+ self.bid64_sub("1", "[3c40000000000000]", "[1f15936627c2f870]", "[9f15936627c2f870]", "00")
+ self.bid64_sub("1", "+566858769589697759.E0", "+9.999999899998E0", "[3214238cebfdf991]", "20")
+ self.bid64_sub("1", "-5756665976.99597977E0", "-98.898999888899999988E0", "[b11473a838c12c55]", "20")
+ self.bid64_sub("1", "[59e0000000000000]", "[1fccef3bcde09f5d]", "[9fccef3bcde09f5d]", "00")
+ self.bid64_sub("1", "+89889998889.9899E0", "-4.52956365533383E0", "[313fef72a14bfbaa]", "20")
+ self.bid64_sub("1", "-997659856.578E0", "-85898.464563965244E0", "[ec3b70e1de1af619]", "20")
+ self.bid64_sub("1", "+998888998.989889898E0", "-88999999989898.E0", "[319f9e97fc487d22]", "20")
+ self.bid64_sub("1", "[9d7138194236bb0e]", "[9280000000000000]", "[9d7138194236bb0e]", "00")
+ self.bid64_sub("1", "[a1c0000000000000]", "[4f40000000000000]", "[a1c0000000000000]", "00")
+ self.bid64_sub("1", "[baa9845d3648aefc]", "[809864c7ffc047a5]", "[baa9845d3648aefc]", "20")
+ self.bid64_sub("1", "[be40000000000000]", "[43d6aa7bbe6923b8]", "[c3d6aa7bbe6923b8]", "00")
+ self.bid64_sub("1", "[c580000000000000]", "[3287459e3cb504b7]", "[b287459e3cb504b7]", "00")
+ self.bid64_sub("1", "Infinity", "-0", "[7800000000000000]", "00")
+ self.bid64_sub("1", "-Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_sub("1", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_sub("2", "0", "0", "[31c0000000000000]", "00")
+ self.bid64_sub("2", "[0400004200088800]", "[4200000000000001]", "[f00386f26fc0ffff]", "20")
+ self.bid64_sub("2", "[20e0000000000000]", "[617a5e2cb460216b]", "[e17a5e2cb460216b]", "00")
+ self.bid64_sub("2", "[24a0000000000000]", "[04096b81bbbe37e6]", "[84096b81bbbe37e6]", "00")
+ self.bid64_sub("2", "[3240000000000000]", "[e30339faf6bc826c]", "[630339faf6bc826c]", "00")
+ self.bid64_sub("2", "-3263229488685.7997356E0", "-99899.98998E0", "[b16b97e3cc8a0892]", "20")
+ self.bid64_sub("2", "[3c40000000000000]", "[1f15936627c2f870]", "[9f15936627c2f870]", "00")
+ self.bid64_sub("2", "+566858769589697759.E0", "+9.999999899998E0", "[3214238cebfdf992]", "20")
+ self.bid64_sub("2", "-5756665976.99597977E0", "-98.898999888899999988E0", "[b11473a838c12c54]", "20")
+ self.bid64_sub("2", "[59e0000000000000]", "[1fccef3bcde09f5d]", "[9fccef3bcde09f5d]", "00")
+ self.bid64_sub("2", "+89889998889.9899E0", "-4.52956365533383E0", "[313fef72a14bfbab]", "20")
+ self.bid64_sub("2", "-997659856.578E0", "-85898.464563965244E0", "[ec3b70e1de1af618]", "20")
+ self.bid64_sub("2", "+998888998.989889898E0", "-88999999989898.E0", "[319f9e97fc487d23]", "20")
+ self.bid64_sub("2", "[9d7138194236bb0e]", "[9280000000000000]", "[9d7138194236bb0e]", "00")
+ self.bid64_sub("2", "[a1c0000000000000]", "[4f40000000000000]", "[a1c0000000000000]", "00")
+ self.bid64_sub("2", "[baa9845d3648aefc]", "[809864c7ffc047a5]", "[baa9845d3648aefb]", "20")
+ self.bid64_sub("2", "[be40000000000000]", "[43d6aa7bbe6923b8]", "[c3d6aa7bbe6923b8]", "00")
+ self.bid64_sub("2", "[c580000000000000]", "[3287459e3cb504b7]", "[b287459e3cb504b7]", "00")
+ self.bid64_sub("2", "Infinity", "-0", "[7800000000000000]", "00")
+ self.bid64_sub("2", "-Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_sub("2", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_sub("3", "0", "0", "[31c0000000000000]", "00")
+ self.bid64_sub("3", "[20e0000000000000]", "[617a5e2cb460216b]", "[e17a5e2cb460216b]", "00")
+ self.bid64_sub("3", "[24a0000000000000]", "[04096b81bbbe37e6]", "[84096b81bbbe37e6]", "00")
+ self.bid64_sub("3", "[3240000000000000]", "[e30339faf6bc826c]", "[630339faf6bc826c]", "00")
+ self.bid64_sub("3", "-3263229488685.7997356E0", "-99899.98998E0", "[b16b97e3cc8a0892]", "20")
+ self.bid64_sub("3", "[3c40000000000000]", "[1f15936627c2f870]", "[9f15936627c2f870]", "00")
+ self.bid64_sub("3", "+566858769589697759.E0", "+9.999999899998E0", "[3214238cebfdf991]", "20")
+ self.bid64_sub("3", "-5756665976.99597977E0", "-98.898999888899999988E0", "[b11473a838c12c54]", "20")
+ self.bid64_sub("3", "[59e0000000000000]", "[1fccef3bcde09f5d]", "[9fccef3bcde09f5d]", "00")
+ self.bid64_sub("3", "+89889998889.9899E0", "-4.52956365533383E0", "[313fef72a14bfbaa]", "20")
+ self.bid64_sub("3", "-997659856.578E0", "-85898.464563965244E0", "[ec3b70e1de1af618]", "20")
+ self.bid64_sub("3", "+998888998.989889898E0", "-88999999989898.E0", "[319f9e97fc487d22]", "20")
+ self.bid64_sub("3", "[9d7138194236bb0e]", "[9280000000000000]", "[9d7138194236bb0e]", "00")
+ self.bid64_sub("3", "[a1c0000000000000]", "[4f40000000000000]", "[a1c0000000000000]", "00")
+ self.bid64_sub("3", "[baa9845d3648aefc]", "[809864c7ffc047a5]", "[baa9845d3648aefb]", "20")
+ self.bid64_sub("3", "[be40000000000000]", "[43d6aa7bbe6923b8]", "[c3d6aa7bbe6923b8]", "00")
+ self.bid64_sub("3", "[c580000000000000]", "[3287459e3cb504b7]", "[b287459e3cb504b7]", "00")
+ self.bid64_sub("3", "Infinity", "-0", "[7800000000000000]", "00")
+ self.bid64_sub("3", "-Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_sub("3", "SNaN", "-0", "[7c00000000000000]", "01")
+ self.bid64_sub("4", "0", "0", "[31c0000000000000]", "00")
+ self.bid64_sub("4", "[20e0000000000000]", "[617a5e2cb460216b]", "[e17a5e2cb460216b]", "00")
+ self.bid64_sub("4", "[24a0000000000000]", "[04096b81bbbe37e6]", "[84096b81bbbe37e6]", "00")
+ self.bid64_sub("4", "[3240000000000000]", "[e30339faf6bc826c]", "[630339faf6bc826c]", "00")
+ self.bid64_sub("4", "-3263229488685.7997356E0", "-99899.98998E0", "[b16b97e3cc8a0892]", "20")
+ self.bid64_sub("4", "[3c40000000000000]", "[1f15936627c2f870]", "[9f15936627c2f870]", "00")
+ self.bid64_sub("4", "+566858769589697759.E0", "+9.999999899998E0", "[3214238cebfdf992]", "20")
+ self.bid64_sub("4", "-5756665976.99597977E0", "-98.898999888899999988E0", "[b11473a838c12c54]", "20")
+ self.bid64_sub("4", "[59e0000000000000]", "[1fccef3bcde09f5d]", "[9fccef3bcde09f5d]", "00")
+ self.bid64_sub("4", "+89889998889.9899E0", "-4.52956365533383E0", "[313fef72a14bfbaa]", "20")
+ self.bid64_sub("4", "-997659856.578E0", "-85898.464563965244E0", "[ec3b70e1de1af618]", "20")
+ self.bid64_sub("4", "+998888998.989889898E0", "-88999999989898.E0", "[319f9e97fc487d23]", "20")
+ self.bid64_sub("4", "[9d7138194236bb0e]", "[9280000000000000]", "[9d7138194236bb0e]", "00")
+ self.bid64_sub("4", "[a1c0000000000000]", "[4f40000000000000]", "[a1c0000000000000]", "00")
+ self.bid64_sub("4", "[baa9845d3648aefc]", "[809864c7ffc047a5]", "[baa9845d3648aefc]", "20")
+ self.bid64_sub("4", "[be40000000000000]", "[43d6aa7bbe6923b8]", "[c3d6aa7bbe6923b8]", "00")
+ self.bid64_sub("4", "[c580000000000000]", "[3287459e3cb504b7]", "[b287459e3cb504b7]", "00")
+ self.bid64_sub("4", "Infinity", "-0", "[7800000000000000]", "00")
+ self.bid64_sub("4", "-Infinity", "-Infinity", "[7c00000000000000]", "01")
+ self.bid64_sub("4", "SNaN", "-0", "[7c00000000000000]", "01")
+ }
+
+ private func bid64_sub(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.subtracting(arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_sub() {
+ self.bid128_sub("0", "[0000000000000000,572997bd3b8d4dc5]", "[0002000000000000,5e53d92fd7bfde90]", "[8000000000000003581ce42131f163db]", "00")
+ self.bid128_sub("0", "[0000400000000000,0004000840000400]", "[0020000000000000,0603d836132873c6]", "[800095b244d383528ff810d5e245fc00]", "00")
+ self.bid128_sub("0", "[0000408000800010,00c0004003044a00]", "[00004e208a000200,2000000200000000]", "[80000da0898001f01f3fffc1fcfbb600]", "00")
+ self.bid128_sub("0", "[0001028000000000,7fdee7fdfffffdf6]", "[0008008101530698,fdfd5f39b65dfed7]", "[8003de1392b82c067f58e23d5f2b780c]", "20")
+ self.bid128_sub("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_sub("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[8001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_sub("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[0010000000000000,0002402000000000]", "[6000380011038562,2ecd0cd043061c7f]", "[0000000000000d69f8fc200000000000]", "00")
+ self.bid128_sub("0", "0", "-0", "[30400000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[02f23038b71be575,752a085cf7c98bfc]", "[fe001e6be04fc9f4,23e2bdc634781068]", "[fc001e6be04fc9f423e2bdc634781068]", "01")
+ self.bid128_sub("0", "[07419ada2748e8ab,3a7cea4a3f019030]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_sub("0", "0", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "0", "Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("0", "+100000000000000000100000000.01000E6130", "+5965845635432.92E6144", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("0", "-10000000.0E6137", "-59978867886579969868787588.6699E6113", "[dffded08fce02c70eca8ce1d508461c2]", "20")
+ self.bid128_sub("0", "+1000000010000010.0100000E-6192", "+8998898888898999998899999999.988888889E-6026", "[8121bbae128738e463d45adcde9f1499]", "00")
+ self.bid128_sub("0", "-100110101100100001100.0001011011000E6132", "-99999.8889889989E6131", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[1006000000000000,0000000000008001]", "[8fdc816cfbca6754,c2d5d5babcd597ea]", "[0fdc816cfbe5826fcf8272d09b7597ea]", "00")
+ self.bid128_sub("0", "+1011.110111110101010111E6141", "-99867788556556896695.769579997E6125", "[78000000000000000000000000000000]", "28")
+ self.bid128_sub("0", "1.234567890123456789012345678901234E+6143", "1.234567890123456789012345678901234E+6143", "[5ffc0000000000000000000000000000]", "00")
+ self.bid128_sub("0", "1.234567890123456789012345678901234E+6143", "-9.999999999999999999999999999999999E+6144", "[78000000000000000000000000000000]", "28")
+ self.bid128_sub("0", "-1.23456789012345678901234567890123E-6144", "9.999999999999999999999999999999999E-6143", "[800231e9994ec9f79205382090a03a14]", "20")
+ self.bid128_sub("0", "-1.2345678901234568E-6160", "9.999999999999999999999999999999999E-6143", "[8002314dc6448d9338c5bddf3c8abac1]", "20")
+ self.bid128_sub("0", "-1.2346E-6172", "9.999999999999999999999999999999999E-6143", "[8002314dc6448d9338c15b0a000004d2]", "20")
+ self.bid128_sub("0", "[2053e0844426f3e0,91d5cd0205656610]", "[000048006000c004,c346039a6d26bb14]", "[2053e0844426f3e091d5cd0205656610]", "20")
+ self.bid128_sub("0", "[20e0000000000000,0000000000000000]", "[95db0610515601ff,1486b7805e34aa81]", "[15db0610515601ff1486b7805e34aa81]", "00")
+ self.bid128_sub("0", "[24735d7c382c4bdc,90005c08f9cea62c]", "[da18728d04d1b493,ded058957a56537d]", "[5a18728d04d1b493ded058957a56537d]", "20")
+ self.bid128_sub("0", "[2d1939dd5f3e869f,5cfb87be4115ef38]", "[fe000999b3e87ac0,01f8d188efb03dca]", "[fc000999b3e87ac001f8d188efb03dca]", "01")
+ self.bid128_sub("0", "[2fffe8cd29d6ebbf,9befd7a9969e52e4]", "[b000100210008896,20d0660081000aae]", "[300040e360fc6cf616cec85e434312f8]", "00")
+ self.bid128_sub("0", "-3.5683455274892569682E-6180", "-585995965556876996799896595.69576986999E-6080", "[00b320eb16d96ded6f3d36fcda335603]", "00")
+ self.bid128_sub("0", "-3572.256382964983657684955356552E6138", "+100000000000000110000000.0E6149", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[3fa0000000000000,0000000000000000]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_sub("0", "[4000000000000000,0000008000000080]", "[69438c2b359b210d,f824e22e132faadc]", "[3fd50f0cf065ec661064dd5920000000]", "00")
+ self.bid128_sub("0", "[46ec000000000000,0000000000000000]", "[0fe971a0c9873e73,743b68ba57f36359]", "[8fe971a0c9873e73743b68ba57f36359]", "00")
+ self.bid128_sub("0", "+498297578.5666767427627868843989547E-6063", "+76788.8998657667678789778766956768595565E-6021", "[80fd7a9937bad2e4f29ed2e3376c58c6]", "20")
+ self.bid128_sub("0", "-553726224.6633592792375925837327549349E-6027", "-27.865E-6190", "[80f9110213490981517e45abcafaecbd]", "00")
+ self.bid128_sub("0", "-55.575879E-6023", "-7011.010110E-6129", "[80f312029f0370759e4eecf13c000000]", "20")
+ self.bid128_sub("0", "-568799.8958668658556678E6135", "+0.E6144", "[dffe00072de43f0c6b52d67242a24600]", "00")
+ self.bid128_sub("0", "+5955559.97898875E6118", "+885657999765896766866998757566897.9869E6137", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "-64.88977576264648386948E6126", "+11011000100110.00100110010100010E6122", "[dff2000de5d8a26a919288a07d174852]", "00")
+ self.bid128_sub("0", "+65697676856866658887856879665865.99888687E-6096", "-98.9899988988E-6052", "[00b9e80ef1b892c6d1c337225cf05a48]", "20")
+ self.bid128_sub("0", "-664952.38635346E-6171", "-87957877.8E-6179", "[80000000000000000000000f7b6b7a55]", "00")
+ self.bid128_sub("0", "+678985.5988959698995986577775996E6107", "-739.8957893953797E6140", "[5ffb6ccbfa5af989f6444ef948f41a86]", "20")
+ self.bid128_sub("0", "-6.887665E6137", "-4978788.23823299758825346362E6101", "[dff153968de9c2929849971667ffec8d]", "20")
+ self.bid128_sub("0", "-6887699.677676978568668688595675999779E6103", "-11001.111010100010011E6110", "[5fc2363c7c20b1862eaa1fd92a1dd7bb]", "20")
+ self.bid128_sub("0", "-7589858878586667.567669986958696599585E6129", "+888.9989989989898E6142", "[f8000000000000000000000000000000]", "28")
+ self.bid128_sub("0", "-7679.786588685697599698777757867965E6128", "-66796955588778955.9565996878579899E6123", "[5ff549559c2888deda66540f4b3d2dcc]", "20")
+ self.bid128_sub("0", "-77699679799997686.E-6036", "+86488794388326828.72358676468294288764E-6144", "[80f77f16c89936afc7731baf6a9c0000]", "20")
+ self.bid128_sub("0", "+7.92896334E6115", "-1.00E6130", "[5ff600000000152d02c7e14b25c2a34e]", "00")
+ self.bid128_sub("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "[7e000b27d2c29612,e5e557c60a901a37]", "[acec000000000000,0000000000000000]", "[7c000b27d2c29612e5e557c60a901a37]", "01")
+ self.bid128_sub("0", "[7e001167db62b4a1,a691118b31bbabf1]", "[5291ecb6dc41bd25,8e6e6a5619ad43c3]", "[7c001167db62b4a1a691118b31bbabf1]", "01")
+ self.bid128_sub("0", "[7e001c6098638d7e,4f8715a939f6096c]", "[55d73273efb93f3e,492c0674a3bbfae0]", "[7c001c6098638d7e4f8715a939f6096c]", "01")
+ self.bid128_sub("0", "[7e002be141b7a4f5,95330791e0165119]", "[9d1153d782fbb6dc,6fcdc7c9a8447518]", "[7c002be141b7a4f595330791e0165119]", "01")
+ self.bid128_sub("0", "[852bc62a9a3e6c9a,e3065337b1491ffb]", "[377a64cae26a3de5,c8b47a0b44d9036d]", "[b77a64cae26a3de5c8b47a0b44d9036d]", "20")
+ self.bid128_sub("0", "+876677679789.8669965766586E6121", "+9789568868.6877576767768E6143", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "-882.78977E6100", "-66.7E6129", "[5fe348db3c5dba8bba8ecd4f7ff2879a]", "20")
+ self.bid128_sub("0", "+8899999988989988988.988988998998898E6125", "-95.656566577589667E6143", "[78000000000000000000000000000000]", "28")
+ self.bid128_sub("0", "[8b6d0cc927c736b4,b4a594ad1ffd5883]", "[4e9024834bacfa7c,2f878f6b08657c24]", "[ce8f6d20f4c1c8d9db4b9a2e53f6d968]", "20")
+ self.bid128_sub("0", "-965.2299E-6140", "-85693273296373494855.9595248945275289592E-6143", "[0027a6801df5b25dcd6dec5fbc5f74d1]", "00")
+ self.bid128_sub("0", "+97.898978768669599659E6114", "-2.337E6123", "[5fe00000078d1f05297bcfca850f67ab]", "00")
+ self.bid128_sub("0", "+98.8888988898989998999888999E6143", "-9.9988898888898998E6144", "[78000000000000000000000000000000]", "28")
+ self.bid128_sub("0", "+989.9E-6045", "+223888255.584939577596856677857E-6030", "[80fa0002d36c063ef5857c1b960e0901]", "00")
+ self.bid128_sub("0", "[98c11c12c39a443b,88208b27886caaf1]", "[136e000000000000,0000000000000000]", "[98c11c12c39a443b88208b27886caaf1]", "00")
+ self.bid128_sub("0", "-998898999898898889.E6132", "-101000.001001101010000000E6149", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("0", "9.999999999999999999999999999999999E-6143", "-1.2346E-6172", "[0002314dc6448d9338c15b0a000004d2]", "20")
+ self.bid128_sub("0", "[999eda42234f82cb,3c1bf339263fb04d]", "[85eef135b7324203,d3d7d7b5f4f6bdf6]", "[999eda42234f82cb3c1bf339263fb04d]", "20")
+ self.bid128_sub("0", "[af10650a19c0df05,cc2cc5d9f8aff4ab]", "[aa76000000000000,0000000000000000]", "[af10650a19c0df05cc2cc5d9f8aff4ab]", "00")
+ self.bid128_sub("0", "[bee42b26841a6767,ba9d8ed2b5293e97]", "[a75fe61222a8582d,9f775ea51ec57f80]", "[bee3af8129080a0d4a27943b139c71e6]", "20")
+ self.bid128_sub("0", "[bf632467a72240e1,b8d3925d88b50033]", "[7e0014a52b903a46,7fdb73fb9af7345e]", "[7c0014a52b903a467fdb73fb9af7345e]", "01")
+ self.bid128_sub("0", "[c3e2000000000000,0000000000000000]", "[c6e50e3e97a26e37,2b5836b991f2194f]", "[46e50e3e97a26e372b5836b991f2194f]", "00")
+ self.bid128_sub("0", "[d8a02234a25f2dc8,f2221957dc192cbf]", "[0ba4000000000000,0000000000000000]", "[d89f560e57b7c9d97554fd6e98fbbf76]", "00")
+ self.bid128_sub("0", "[fa4fc5f33ab99228,4dee49180e2542d2]", "[9dd71f9f18813cf8,00663dd3cbe27448]", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "-Infinity", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "Infinity", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("0", "SNaN", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("1", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[80000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_sub("1", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[8001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_sub("1", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[80000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "0", "-0", "[30400000000000000000000000000000]", "00")
+ self.bid128_sub("1", "[02f23038b71be575,752a085cf7c98bfc]", "[fe001e6be04fc9f4,23e2bdc634781068]", "[fc001e6be04fc9f423e2bdc634781068]", "01")
+ self.bid128_sub("1", "[07419ada2748e8ab,3a7cea4a3f019030]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_sub("1", "0", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "0", "Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("1", "+100000000000000000100000000.01000E6130", "+5965845635432.92E6144", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("1", "-10000000.0E6137", "-59978867886579969868787588.6699E6113", "[dffded08fce02c70eca8ce1d508461c3]", "20")
+ self.bid128_sub("1", "+1000000010000010.0100000E-6192", "+8998898888898999998899999999.988888889E-6026", "[8121bbae128738e463d45adcde9f1499]", "00")
+ self.bid128_sub("1", "-100110101100100001100.0001011011000E6132", "-99999.8889889989E6131", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "+1011.110111110101010111E6141", "-99867788556556896695.769579997E6125", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_sub("1", "1.234567890123456789012345678901234E+6143", "1.234567890123456789012345678901234E+6143", "[dffc0000000000000000000000000000]", "00")
+ self.bid128_sub("1", "-1.23456789012345678901234567890123E-6144", "9.999999999999999999999999999999999E-6143", "[800231e9994ec9f79205382090a03a15]", "20")
+ self.bid128_sub("1", "[20e0000000000000,0000000000000000]", "[95db0610515601ff,1486b7805e34aa81]", "[15db0610515601ff1486b7805e34aa81]", "00")
+ self.bid128_sub("1", "[24735d7c382c4bdc,90005c08f9cea62c]", "[da18728d04d1b493,ded058957a56537d]", "[5a18728d04d1b493ded058957a56537d]", "20")
+ self.bid128_sub("1", "[2d1939dd5f3e869f,5cfb87be4115ef38]", "[fe000999b3e87ac0,01f8d188efb03dca]", "[fc000999b3e87ac001f8d188efb03dca]", "01")
+ self.bid128_sub("1", "-3.5683455274892569682E-6180", "-585995965556876996799896595.69576986999E-6080", "[00b320eb16d96ded6f3d36fcda335603]", "00")
+ self.bid128_sub("1", "-3572.256382964983657684955356552E6138", "+100000000000000110000000.0E6149", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "[3fa0000000000000,0000000000000000]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_sub("1", "[46ec000000000000,0000000000000000]", "[0fe971a0c9873e73,743b68ba57f36359]", "[8fe971a0c9873e73743b68ba57f36359]", "00")
+ self.bid128_sub("1", "+498297578.5666767427627868843989547E-6063", "+76788.8998657667678789778766956768595565E-6021", "[80fd7a9937bad2e4f29ed2e3376c58c6]", "20")
+ self.bid128_sub("1", "-553726224.6633592792375925837327549349E-6027", "-27.865E-6190", "[80f9110213490981517e45abcafaecbd]", "00")
+ self.bid128_sub("1", "-55.575879E-6023", "-7011.010110E-6129", "[80f312029f0370759e4eecf13c000000]", "20")
+ self.bid128_sub("1", "-568799.8958668658556678E6135", "+0.E6144", "[dffe00072de43f0c6b52d67242a24600]", "00")
+ self.bid128_sub("1", "+5955559.97898875E6118", "+885657999765896766866998757566897.9869E6137", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "-64.88977576264648386948E6126", "+11011000100110.00100110010100010E6122", "[dff2000de5d8a26a919288a07d174852]", "00")
+ self.bid128_sub("1", "+65697676856866658887856879665865.99888687E-6096", "-98.9899988988E-6052", "[00b9e80ef1b892c6d1c337225cf05a47]", "20")
+ self.bid128_sub("1", "-664952.38635346E-6171", "-87957877.8E-6179", "[80000000000000000000000f7b6b7a55]", "00")
+ self.bid128_sub("1", "+678985.5988959698995986577775996E6107", "-739.8957893953797E6140", "[5ffb6ccbfa5af989f6444ef948f41a85]", "20")
+ self.bid128_sub("1", "-6.887665E6137", "-4978788.23823299758825346362E6101", "[dff153968de9c2929849971667ffec8e]", "20")
+ self.bid128_sub("1", "-6887699.677676978568668688595675999779E6103", "-11001.111010100010011E6110", "[5fc2363c7c20b1862eaa1fd92a1dd7bb]", "20")
+ self.bid128_sub("1", "-7589858878586667.567669986958696599585E6129", "+888.9989989989898E6142", "[f8000000000000000000000000000000]", "28")
+ self.bid128_sub("1", "-7679.786588685697599698777757867965E6128", "-66796955588778955.9565996878579899E6123", "[5ff549559c2888deda66540f4b3d2dcc]", "20")
+ self.bid128_sub("1", "-77699679799997686.E-6036", "+86488794388326828.72358676468294288764E-6144", "[80f77f16c89936afc7731baf6a9c0001]", "20")
+ self.bid128_sub("1", "+7.92896334E6115", "-1.00E6130", "[5ff600000000152d02c7e14b25c2a34e]", "00")
+ self.bid128_sub("1", "[7e000b27d2c29612,e5e557c60a901a37]", "[acec000000000000,0000000000000000]", "[7c000b27d2c29612e5e557c60a901a37]", "01")
+ self.bid128_sub("1", "[7e001167db62b4a1,a691118b31bbabf1]", "[5291ecb6dc41bd25,8e6e6a5619ad43c3]", "[7c001167db62b4a1a691118b31bbabf1]", "01")
+ self.bid128_sub("1", "[7e001c6098638d7e,4f8715a939f6096c]", "[55d73273efb93f3e,492c0674a3bbfae0]", "[7c001c6098638d7e4f8715a939f6096c]", "01")
+ self.bid128_sub("1", "[7e002be141b7a4f5,95330791e0165119]", "[9d1153d782fbb6dc,6fcdc7c9a8447518]", "[7c002be141b7a4f595330791e0165119]", "01")
+ self.bid128_sub("1", "[852bc62a9a3e6c9a,e3065337b1491ffb]", "[377a64cae26a3de5,c8b47a0b44d9036d]", "[b77a64cae26a3de5c8b47a0b44d9036e]", "20")
+ self.bid128_sub("1", "+876677679789.8669965766586E6121", "+9789568868.6877576767768E6143", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "-882.78977E6100", "-66.7E6129", "[5fe348db3c5dba8bba8ecd4f7ff2879a]", "20")
+ self.bid128_sub("1", "+8899999988989988988.988988998998898E6125", "-95.656566577589667E6143", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_sub("1", "[8b6d0cc927c736b4,b4a594ad1ffd5883]", "[4e9024834bacfa7c,2f878f6b08657c24]", "[ce8f6d20f4c1c8d9db4b9a2e53f6d969]", "20")
+ self.bid128_sub("1", "-965.2299E-6140", "-85693273296373494855.9595248945275289592E-6143", "[0027a6801df5b25dcd6dec5fbc5f74d1]", "00")
+ self.bid128_sub("1", "+97.898978768669599659E6114", "-2.337E6123", "[5fe00000078d1f05297bcfca850f67ab]", "00")
+ self.bid128_sub("1", "+98.8888988898989998999888999E6143", "-9.9988898888898998E6144", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_sub("1", "+989.9E-6045", "+223888255.584939577596856677857E-6030", "[80fa0002d36c063ef5857c1b960e0901]", "00")
+ self.bid128_sub("1", "[98c11c12c39a443b,88208b27886caaf1]", "[136e000000000000,0000000000000000]", "[98c11c12c39a443b88208b27886caaf1]", "00")
+ self.bid128_sub("1", "-998898999898898889.E6132", "-101000.001001101010000000E6149", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("1", "[999eda42234f82cb,3c1bf339263fb04d]", "[85eef135b7324203,d3d7d7b5f4f6bdf6]", "[999eda42234f82cb3c1bf339263fb04d]", "20")
+ self.bid128_sub("1", "[af10650a19c0df05,cc2cc5d9f8aff4ab]", "[aa76000000000000,0000000000000000]", "[af10650a19c0df05cc2cc5d9f8aff4ab]", "00")
+ self.bid128_sub("1", "[bee42b26841a6767,ba9d8ed2b5293e97]", "[a75fe61222a8582d,9f775ea51ec57f80]", "[bee3af8129080a0d4a27943b139c71e6]", "20")
+ self.bid128_sub("1", "[bf632467a72240e1,b8d3925d88b50033]", "[7e0014a52b903a46,7fdb73fb9af7345e]", "[7c0014a52b903a467fdb73fb9af7345e]", "01")
+ self.bid128_sub("1", "[c3e2000000000000,0000000000000000]", "[c6e50e3e97a26e37,2b5836b991f2194f]", "[46e50e3e97a26e372b5836b991f2194f]", "00")
+ self.bid128_sub("1", "[d8a02234a25f2dc8,f2221957dc192cbf]", "[0ba4000000000000,0000000000000000]", "[d89f560e57b7c9d97554fd6e98fbbf76]", "00")
+ self.bid128_sub("1", "-Infinity", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "Infinity", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("1", "SNaN", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("2", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_sub("2", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[8001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_sub("2", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "0", "-0", "[30400000000000000000000000000000]", "00")
+ self.bid128_sub("2", "[02f23038b71be575,752a085cf7c98bfc]", "[fe001e6be04fc9f4,23e2bdc634781068]", "[fc001e6be04fc9f423e2bdc634781068]", "01")
+ self.bid128_sub("2", "[07419ada2748e8ab,3a7cea4a3f019030]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_sub("2", "0", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "0", "Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("2", "+100000000000000000100000000.01000E6130", "+5965845635432.92E6144", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("2", "-10000000.0E6137", "-59978867886579969868787588.6699E6113", "[dffded08fce02c70eca8ce1d508461c2]", "20")
+ self.bid128_sub("2", "+1000000010000010.0100000E-6192", "+8998898888898999998899999999.988888889E-6026", "[8121bbae128738e463d45adcde9f1499]", "00")
+ self.bid128_sub("2", "-100110101100100001100.0001011011000E6132", "-99999.8889889989E6131", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "+1011.110111110101010111E6141", "-99867788556556896695.769579997E6125", "[78000000000000000000000000000000]", "28")
+ self.bid128_sub("2", "-1.2345678901234568E-6160", "9.999999999999999999999999999999999E-6143", "[8002314dc6448d9338c5bddf3c8abac0]", "20")
+ self.bid128_sub("2", "[20e0000000000000,0000000000000000]", "[95db0610515601ff,1486b7805e34aa81]", "[15db0610515601ff1486b7805e34aa81]", "00")
+ self.bid128_sub("2", "[24735d7c382c4bdc,90005c08f9cea62c]", "[da18728d04d1b493,ded058957a56537d]", "[5a18728d04d1b493ded058957a56537e]", "20")
+ self.bid128_sub("2", "[2d1939dd5f3e869f,5cfb87be4115ef38]", "[fe000999b3e87ac0,01f8d188efb03dca]", "[fc000999b3e87ac001f8d188efb03dca]", "01")
+ self.bid128_sub("2", "-3.5683455274892569682E-6180", "-585995965556876996799896595.69576986999E-6080", "[00b320eb16d96ded6f3d36fcda335603]", "00")
+ self.bid128_sub("2", "-3572.256382964983657684955356552E6138", "+100000000000000110000000.0E6149", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "[3fa0000000000000,0000000000000000]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_sub("2", "[46ec000000000000,0000000000000000]", "[0fe971a0c9873e73,743b68ba57f36359]", "[8fe971a0c9873e73743b68ba57f36359]", "00")
+ self.bid128_sub("2", "+498297578.5666767427627868843989547E-6063", "+76788.8998657667678789778766956768595565E-6021", "[80fd7a9937bad2e4f29ed2e3376c58c5]", "20")
+ self.bid128_sub("2", "-553726224.6633592792375925837327549349E-6027", "-27.865E-6190", "[80f9110213490981517e45abcafaecbd]", "00")
+ self.bid128_sub("2", "-55.575879E-6023", "-7011.010110E-6129", "[80f312029f0370759e4eecf13bffffff]", "20")
+ self.bid128_sub("2", "-568799.8958668658556678E6135", "+0.E6144", "[dffe00072de43f0c6b52d67242a24600]", "00")
+ self.bid128_sub("2", "+5955559.97898875E6118", "+885657999765896766866998757566897.9869E6137", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "-64.88977576264648386948E6126", "+11011000100110.00100110010100010E6122", "[dff2000de5d8a26a919288a07d174852]", "00")
+ self.bid128_sub("2", "+65697676856866658887856879665865.99888687E-6096", "-98.9899988988E-6052", "[00b9e80ef1b892c6d1c337225cf05a48]", "20")
+ self.bid128_sub("2", "-664952.38635346E-6171", "-87957877.8E-6179", "[80000000000000000000000f7b6b7a55]", "00")
+ self.bid128_sub("2", "+678985.5988959698995986577775996E6107", "-739.8957893953797E6140", "[5ffb6ccbfa5af989f6444ef948f41a86]", "20")
+ self.bid128_sub("2", "-6.887665E6137", "-4978788.23823299758825346362E6101", "[dff153968de9c2929849971667ffec8d]", "20")
+ self.bid128_sub("2", "-6887699.677676978568668688595675999779E6103", "-11001.111010100010011E6110", "[5fc2363c7c20b1862eaa1fd92a1dd7bc]", "20")
+ self.bid128_sub("2", "-7589858878586667.567669986958696599585E6129", "+888.9989989989898E6142", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_sub("2", "-7679.786588685697599698777757867965E6128", "-66796955588778955.9565996878579899E6123", "[5ff549559c2888deda66540f4b3d2dcd]", "20")
+ self.bid128_sub("2", "-77699679799997686.E-6036", "+86488794388326828.72358676468294288764E-6144", "[80f77f16c89936afc7731baf6a9c0000]", "20")
+ self.bid128_sub("2", "+7.92896334E6115", "-1.00E6130", "[5ff600000000152d02c7e14b25c2a34e]", "00")
+ self.bid128_sub("2", "[7e000b27d2c29612,e5e557c60a901a37]", "[acec000000000000,0000000000000000]", "[7c000b27d2c29612e5e557c60a901a37]", "01")
+ self.bid128_sub("2", "[7e001167db62b4a1,a691118b31bbabf1]", "[5291ecb6dc41bd25,8e6e6a5619ad43c3]", "[7c001167db62b4a1a691118b31bbabf1]", "01")
+ self.bid128_sub("2", "[7e001c6098638d7e,4f8715a939f6096c]", "[55d73273efb93f3e,492c0674a3bbfae0]", "[7c001c6098638d7e4f8715a939f6096c]", "01")
+ self.bid128_sub("2", "[7e002be141b7a4f5,95330791e0165119]", "[9d1153d782fbb6dc,6fcdc7c9a8447518]", "[7c002be141b7a4f595330791e0165119]", "01")
+ self.bid128_sub("2", "[852bc62a9a3e6c9a,e3065337b1491ffb]", "[377a64cae26a3de5,c8b47a0b44d9036d]", "[b77a64cae26a3de5c8b47a0b44d9036d]", "20")
+ self.bid128_sub("2", "+876677679789.8669965766586E6121", "+9789568868.6877576767768E6143", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "-882.78977E6100", "-66.7E6129", "[5fe348db3c5dba8bba8ecd4f7ff2879b]", "20")
+ self.bid128_sub("2", "+8899999988989988988.988988998998898E6125", "-95.656566577589667E6143", "[78000000000000000000000000000000]", "28")
+ self.bid128_sub("2", "[8b6d0cc927c736b4,b4a594ad1ffd5883]", "[4e9024834bacfa7c,2f878f6b08657c24]", "[ce8f6d20f4c1c8d9db4b9a2e53f6d968]", "20")
+ self.bid128_sub("2", "-965.2299E-6140", "-85693273296373494855.9595248945275289592E-6143", "[0027a6801df5b25dcd6dec5fbc5f74d1]", "00")
+ self.bid128_sub("2", "+97.898978768669599659E6114", "-2.337E6123", "[5fe00000078d1f05297bcfca850f67ab]", "00")
+ self.bid128_sub("2", "+98.8888988898989998999888999E6143", "-9.9988898888898998E6144", "[78000000000000000000000000000000]", "28")
+ self.bid128_sub("2", "+989.9E-6045", "+223888255.584939577596856677857E-6030", "[80fa0002d36c063ef5857c1b960e0901]", "00")
+ self.bid128_sub("2", "[98c11c12c39a443b,88208b27886caaf1]", "[136e000000000000,0000000000000000]", "[98c11c12c39a443b88208b27886caaf1]", "00")
+ self.bid128_sub("2", "-998898999898898889.E6132", "-101000.001001101010000000E6149", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("2", "[999eda42234f82cb,3c1bf339263fb04d]", "[85eef135b7324203,d3d7d7b5f4f6bdf6]", "[999eda42234f82cb3c1bf339263fb04c]", "20")
+ self.bid128_sub("2", "[af10650a19c0df05,cc2cc5d9f8aff4ab]", "[aa76000000000000,0000000000000000]", "[af10650a19c0df05cc2cc5d9f8aff4ab]", "00")
+ self.bid128_sub("2", "[bee42b26841a6767,ba9d8ed2b5293e97]", "[a75fe61222a8582d,9f775ea51ec57f80]", "[bee3af8129080a0d4a27943b139c71e5]", "20")
+ self.bid128_sub("2", "[bf632467a72240e1,b8d3925d88b50033]", "[7e0014a52b903a46,7fdb73fb9af7345e]", "[7c0014a52b903a467fdb73fb9af7345e]", "01")
+ self.bid128_sub("2", "[c3e2000000000000,0000000000000000]", "[c6e50e3e97a26e37,2b5836b991f2194f]", "[46e50e3e97a26e372b5836b991f2194f]", "00")
+ self.bid128_sub("2", "[d8a02234a25f2dc8,f2221957dc192cbf]", "[0ba4000000000000,0000000000000000]", "[d89f560e57b7c9d97554fd6e98fbbf76]", "00")
+ self.bid128_sub("2", "-Infinity", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "Infinity", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("2", "SNaN", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("3", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_sub("3", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[8001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_sub("3", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "0", "-0", "[30400000000000000000000000000000]", "00")
+ self.bid128_sub("3", "[02f23038b71be575,752a085cf7c98bfc]", "[fe001e6be04fc9f4,23e2bdc634781068]", "[fc001e6be04fc9f423e2bdc634781068]", "01")
+ self.bid128_sub("3", "[07419ada2748e8ab,3a7cea4a3f019030]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_sub("3", "0", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "0", "Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("3", "+100000000000000000100000000.01000E6130", "+5965845635432.92E6144", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("3", "-10000000.0E6137", "-59978867886579969868787588.6699E6113", "[dffded08fce02c70eca8ce1d508461c2]", "20")
+ self.bid128_sub("3", "+1000000010000010.0100000E-6192", "+8998898888898999998899999999.988888889E-6026", "[8121bbae128738e463d45adcde9f1499]", "00")
+ self.bid128_sub("3", "-100110101100100001100.0001011011000E6132", "-99999.8889889989E6131", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "+1011.110111110101010111E6141", "-99867788556556896695.769579997E6125", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_sub("3", "[20e0000000000000,0000000000000000]", "[95db0610515601ff,1486b7805e34aa81]", "[15db0610515601ff1486b7805e34aa81]", "00")
+ self.bid128_sub("3", "[24735d7c382c4bdc,90005c08f9cea62c]", "[da18728d04d1b493,ded058957a56537d]", "[5a18728d04d1b493ded058957a56537d]", "20")
+ self.bid128_sub("3", "[2d1939dd5f3e869f,5cfb87be4115ef38]", "[fe000999b3e87ac0,01f8d188efb03dca]", "[fc000999b3e87ac001f8d188efb03dca]", "01")
+ self.bid128_sub("3", "-3.5683455274892569682E-6180", "-585995965556876996799896595.69576986999E-6080", "[00b320eb16d96ded6f3d36fcda335603]", "00")
+ self.bid128_sub("3", "-3572.256382964983657684955356552E6138", "+100000000000000110000000.0E6149", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "[3fa0000000000000,0000000000000000]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_sub("3", "[46ec000000000000,0000000000000000]", "[0fe971a0c9873e73,743b68ba57f36359]", "[8fe971a0c9873e73743b68ba57f36359]", "00")
+ self.bid128_sub("3", "+498297578.5666767427627868843989547E-6063", "+76788.8998657667678789778766956768595565E-6021", "[80fd7a9937bad2e4f29ed2e3376c58c5]", "20")
+ self.bid128_sub("3", "-553726224.6633592792375925837327549349E-6027", "-27.865E-6190", "[80f9110213490981517e45abcafaecbd]", "00")
+ self.bid128_sub("3", "-55.575879E-6023", "-7011.010110E-6129", "[80f312029f0370759e4eecf13bffffff]", "20")
+ self.bid128_sub("3", "-568799.8958668658556678E6135", "+0.E6144", "[dffe00072de43f0c6b52d67242a24600]", "00")
+ self.bid128_sub("3", "+5955559.97898875E6118", "+885657999765896766866998757566897.9869E6137", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "-64.88977576264648386948E6126", "+11011000100110.00100110010100010E6122", "[dff2000de5d8a26a919288a07d174852]", "00")
+ self.bid128_sub("3", "+65697676856866658887856879665865.99888687E-6096", "-98.9899988988E-6052", "[00b9e80ef1b892c6d1c337225cf05a47]", "20")
+ self.bid128_sub("3", "-664952.38635346E-6171", "-87957877.8E-6179", "[80000000000000000000000f7b6b7a55]", "00")
+ self.bid128_sub("3", "+678985.5988959698995986577775996E6107", "-739.8957893953797E6140", "[5ffb6ccbfa5af989f6444ef948f41a85]", "20")
+ self.bid128_sub("3", "-6.887665E6137", "-4978788.23823299758825346362E6101", "[dff153968de9c2929849971667ffec8d]", "20")
+ self.bid128_sub("3", "-6887699.677676978568668688595675999779E6103", "-11001.111010100010011E6110", "[5fc2363c7c20b1862eaa1fd92a1dd7bb]", "20")
+ self.bid128_sub("3", "-7589858878586667.567669986958696599585E6129", "+888.9989989989898E6142", "[dfffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_sub("3", "-7679.786588685697599698777757867965E6128", "-66796955588778955.9565996878579899E6123", "[5ff549559c2888deda66540f4b3d2dcc]", "20")
+ self.bid128_sub("3", "-77699679799997686.E-6036", "+86488794388326828.72358676468294288764E-6144", "[80f77f16c89936afc7731baf6a9c0000]", "20")
+ self.bid128_sub("3", "+7.92896334E6115", "-1.00E6130", "[5ff600000000152d02c7e14b25c2a34e]", "00")
+ self.bid128_sub("3", "[7e000b27d2c29612,e5e557c60a901a37]", "[acec000000000000,0000000000000000]", "[7c000b27d2c29612e5e557c60a901a37]", "01")
+ self.bid128_sub("3", "[7e001167db62b4a1,a691118b31bbabf1]", "[5291ecb6dc41bd25,8e6e6a5619ad43c3]", "[7c001167db62b4a1a691118b31bbabf1]", "01")
+ self.bid128_sub("3", "[7e001c6098638d7e,4f8715a939f6096c]", "[55d73273efb93f3e,492c0674a3bbfae0]", "[7c001c6098638d7e4f8715a939f6096c]", "01")
+ self.bid128_sub("3", "[7e002be141b7a4f5,95330791e0165119]", "[9d1153d782fbb6dc,6fcdc7c9a8447518]", "[7c002be141b7a4f595330791e0165119]", "01")
+ self.bid128_sub("3", "[852bc62a9a3e6c9a,e3065337b1491ffb]", "[377a64cae26a3de5,c8b47a0b44d9036d]", "[b77a64cae26a3de5c8b47a0b44d9036d]", "20")
+ self.bid128_sub("3", "+876677679789.8669965766586E6121", "+9789568868.6877576767768E6143", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "-882.78977E6100", "-66.7E6129", "[5fe348db3c5dba8bba8ecd4f7ff2879a]", "20")
+ self.bid128_sub("3", "+8899999988989988988.988988998998898E6125", "-95.656566577589667E6143", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_sub("3", "[8b6d0cc927c736b4,b4a594ad1ffd5883]", "[4e9024834bacfa7c,2f878f6b08657c24]", "[ce8f6d20f4c1c8d9db4b9a2e53f6d968]", "20")
+ self.bid128_sub("3", "-965.2299E-6140", "-85693273296373494855.9595248945275289592E-6143", "[0027a6801df5b25dcd6dec5fbc5f74d1]", "00")
+ self.bid128_sub("3", "+97.898978768669599659E6114", "-2.337E6123", "[5fe00000078d1f05297bcfca850f67ab]", "00")
+ self.bid128_sub("3", "+98.8888988898989998999888999E6143", "-9.9988898888898998E6144", "[5fffed09bead87c0378d8e63ffffffff]", "28")
+ self.bid128_sub("3", "+989.9E-6045", "+223888255.584939577596856677857E-6030", "[80fa0002d36c063ef5857c1b960e0901]", "00")
+ self.bid128_sub("3", "[98c11c12c39a443b,88208b27886caaf1]", "[136e000000000000,0000000000000000]", "[98c11c12c39a443b88208b27886caaf1]", "00")
+ self.bid128_sub("3", "-998898999898898889.E6132", "-101000.001001101010000000E6149", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("3", "[999eda42234f82cb,3c1bf339263fb04d]", "[85eef135b7324203,d3d7d7b5f4f6bdf6]", "[999eda42234f82cb3c1bf339263fb04c]", "20")
+ self.bid128_sub("3", "[af10650a19c0df05,cc2cc5d9f8aff4ab]", "[aa76000000000000,0000000000000000]", "[af10650a19c0df05cc2cc5d9f8aff4ab]", "00")
+ self.bid128_sub("3", "[bee42b26841a6767,ba9d8ed2b5293e97]", "[a75fe61222a8582d,9f775ea51ec57f80]", "[bee3af8129080a0d4a27943b139c71e5]", "20")
+ self.bid128_sub("3", "[bf632467a72240e1,b8d3925d88b50033]", "[7e0014a52b903a46,7fdb73fb9af7345e]", "[7c0014a52b903a467fdb73fb9af7345e]", "01")
+ self.bid128_sub("3", "[c3e2000000000000,0000000000000000]", "[c6e50e3e97a26e37,2b5836b991f2194f]", "[46e50e3e97a26e372b5836b991f2194f]", "00")
+ self.bid128_sub("3", "[d8a02234a25f2dc8,f2221957dc192cbf]", "[0ba4000000000000,0000000000000000]", "[d89f560e57b7c9d97554fd6e98fbbf76]", "00")
+ self.bid128_sub("3", "-Infinity", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "Infinity", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("3", "SNaN", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("4", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_sub("4", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "[8001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_sub("4", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "0", "-0", "[30400000000000000000000000000000]", "00")
+ self.bid128_sub("4", "[02f23038b71be575,752a085cf7c98bfc]", "[fe001e6be04fc9f4,23e2bdc634781068]", "[fc001e6be04fc9f423e2bdc634781068]", "01")
+ self.bid128_sub("4", "[07419ada2748e8ab,3a7cea4a3f019030]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_sub("4", "0", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "0", "Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "-0", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "0", "SNaN", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("4", "+100000000000000000100000000.01000E6130", "+5965845635432.92E6144", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("4", "-10000000.0E6137", "-59978867886579969868787588.6699E6113", "[dffded08fce02c70eca8ce1d508461c2]", "20")
+ self.bid128_sub("4", "+1000000010000010.0100000E-6192", "+8998898888898999998899999999.988888889E-6026", "[8121bbae128738e463d45adcde9f1499]", "00")
+ self.bid128_sub("4", "-100110101100100001100.0001011011000E6132", "-99999.8889889989E6131", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "+1011.110111110101010111E6141", "-99867788556556896695.769579997E6125", "[78000000000000000000000000000000]", "28")
+ self.bid128_sub("4", "[20e0000000000000,0000000000000000]", "[95db0610515601ff,1486b7805e34aa81]", "[15db0610515601ff1486b7805e34aa81]", "00")
+ self.bid128_sub("4", "[24735d7c382c4bdc,90005c08f9cea62c]", "[da18728d04d1b493,ded058957a56537d]", "[5a18728d04d1b493ded058957a56537d]", "20")
+ self.bid128_sub("4", "[2d1939dd5f3e869f,5cfb87be4115ef38]", "[fe000999b3e87ac0,01f8d188efb03dca]", "[fc000999b3e87ac001f8d188efb03dca]", "01")
+ self.bid128_sub("4", "-3.5683455274892569682E-6180", "-585995965556876996799896595.69576986999E-6080", "[00b320eb16d96ded6f3d36fcda335603]", "00")
+ self.bid128_sub("4", "-3572.256382964983657684955356552E6138", "+100000000000000110000000.0E6149", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "[3fa0000000000000,0000000000000000]", "[fe00000000000000,0000000000000000]", "[fc000000000000000000000000000000]", "01")
+ self.bid128_sub("4", "[46ec000000000000,0000000000000000]", "[0fe971a0c9873e73,743b68ba57f36359]", "[8fe971a0c9873e73743b68ba57f36359]", "00")
+ self.bid128_sub("4", "+498297578.5666767427627868843989547E-6063", "+76788.8998657667678789778766956768595565E-6021", "[80fd7a9937bad2e4f29ed2e3376c58c6]", "20")
+ self.bid128_sub("4", "-553726224.6633592792375925837327549349E-6027", "-27.865E-6190", "[80f9110213490981517e45abcafaecbd]", "00")
+ self.bid128_sub("4", "-55.575879E-6023", "-7011.010110E-6129", "[80f312029f0370759e4eecf13c000000]", "20")
+ self.bid128_sub("4", "-568799.8958668658556678E6135", "+0.E6144", "[dffe00072de43f0c6b52d67242a24600]", "00")
+ self.bid128_sub("4", "+5955559.97898875E6118", "+885657999765896766866998757566897.9869E6137", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "-64.88977576264648386948E6126", "+11011000100110.00100110010100010E6122", "[dff2000de5d8a26a919288a07d174852]", "00")
+ self.bid128_sub("4", "+65697676856866658887856879665865.99888687E-6096", "-98.9899988988E-6052", "[00b9e80ef1b892c6d1c337225cf05a48]", "20")
+ self.bid128_sub("4", "-664952.38635346E-6171", "-87957877.8E-6179", "[80000000000000000000000f7b6b7a55]", "00")
+ self.bid128_sub("4", "+678985.5988959698995986577775996E6107", "-739.8957893953797E6140", "[5ffb6ccbfa5af989f6444ef948f41a86]", "20")
+ self.bid128_sub("4", "-6.887665E6137", "-4978788.23823299758825346362E6101", "[dff153968de9c2929849971667ffec8d]", "20")
+ self.bid128_sub("4", "-6887699.677676978568668688595675999779E6103", "-11001.111010100010011E6110", "[5fc2363c7c20b1862eaa1fd92a1dd7bb]", "20")
+ self.bid128_sub("4", "-7589858878586667.567669986958696599585E6129", "+888.9989989989898E6142", "[f8000000000000000000000000000000]", "28")
+ self.bid128_sub("4", "-7679.786588685697599698777757867965E6128", "-66796955588778955.9565996878579899E6123", "[5ff549559c2888deda66540f4b3d2dcc]", "20")
+ self.bid128_sub("4", "-77699679799997686.E-6036", "+86488794388326828.72358676468294288764E-6144", "[80f77f16c89936afc7731baf6a9c0000]", "20")
+ self.bid128_sub("4", "+7.92896334E6115", "-1.00E6130", "[5ff600000000152d02c7e14b25c2a34e]", "00")
+ self.bid128_sub("4", "[7e000b27d2c29612,e5e557c60a901a37]", "[acec000000000000,0000000000000000]", "[7c000b27d2c29612e5e557c60a901a37]", "01")
+ self.bid128_sub("4", "[7e001167db62b4a1,a691118b31bbabf1]", "[5291ecb6dc41bd25,8e6e6a5619ad43c3]", "[7c001167db62b4a1a691118b31bbabf1]", "01")
+ self.bid128_sub("4", "[7e001c6098638d7e,4f8715a939f6096c]", "[55d73273efb93f3e,492c0674a3bbfae0]", "[7c001c6098638d7e4f8715a939f6096c]", "01")
+ self.bid128_sub("4", "[7e002be141b7a4f5,95330791e0165119]", "[9d1153d782fbb6dc,6fcdc7c9a8447518]", "[7c002be141b7a4f595330791e0165119]", "01")
+ self.bid128_sub("4", "[852bc62a9a3e6c9a,e3065337b1491ffb]", "[377a64cae26a3de5,c8b47a0b44d9036d]", "[b77a64cae26a3de5c8b47a0b44d9036d]", "20")
+ self.bid128_sub("4", "+876677679789.8669965766586E6121", "+9789568868.6877576767768E6143", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "-882.78977E6100", "-66.7E6129", "[5fe348db3c5dba8bba8ecd4f7ff2879a]", "20")
+ self.bid128_sub("4", "+8899999988989988988.988988998998898E6125", "-95.656566577589667E6143", "[78000000000000000000000000000000]", "28")
+ self.bid128_sub("4", "[8b6d0cc927c736b4,b4a594ad1ffd5883]", "[4e9024834bacfa7c,2f878f6b08657c24]", "[ce8f6d20f4c1c8d9db4b9a2e53f6d968]", "20")
+ self.bid128_sub("4", "-965.2299E-6140", "-85693273296373494855.9595248945275289592E-6143", "[0027a6801df5b25dcd6dec5fbc5f74d1]", "00")
+ self.bid128_sub("4", "+97.898978768669599659E6114", "-2.337E6123", "[5fe00000078d1f05297bcfca850f67ab]", "00")
+ self.bid128_sub("4", "+98.8888988898989998999888999E6143", "-9.9988898888898998E6144", "[78000000000000000000000000000000]", "28")
+ self.bid128_sub("4", "+989.9E-6045", "+223888255.584939577596856677857E-6030", "[80fa0002d36c063ef5857c1b960e0901]", "00")
+ self.bid128_sub("4", "[98c11c12c39a443b,88208b27886caaf1]", "[136e000000000000,0000000000000000]", "[98c11c12c39a443b88208b27886caaf1]", "00")
+ self.bid128_sub("4", "-998898999898898889.E6132", "-101000.001001101010000000E6149", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("4", "[999eda42234f82cb,3c1bf339263fb04d]", "[85eef135b7324203,d3d7d7b5f4f6bdf6]", "[999eda42234f82cb3c1bf339263fb04d]", "20")
+ self.bid128_sub("4", "[af10650a19c0df05,cc2cc5d9f8aff4ab]", "[aa76000000000000,0000000000000000]", "[af10650a19c0df05cc2cc5d9f8aff4ab]", "00")
+ self.bid128_sub("4", "[bee42b26841a6767,ba9d8ed2b5293e97]", "[a75fe61222a8582d,9f775ea51ec57f80]", "[bee3af8129080a0d4a27943b139c71e6]", "20")
+ self.bid128_sub("4", "[bf632467a72240e1,b8d3925d88b50033]", "[7e0014a52b903a46,7fdb73fb9af7345e]", "[7c0014a52b903a467fdb73fb9af7345e]", "01")
+ self.bid128_sub("4", "[c3e2000000000000,0000000000000000]", "[c6e50e3e97a26e37,2b5836b991f2194f]", "[46e50e3e97a26e372b5836b991f2194f]", "00")
+ self.bid128_sub("4", "[d8a02234a25f2dc8,f2221957dc192cbf]", "[0ba4000000000000,0000000000000000]", "[d89f560e57b7c9d97554fd6e98fbbf76]", "00")
+ self.bid128_sub("4", "-Infinity", "0", "[f8000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "Infinity", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "-Infinity", "QNaN", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "QNaN", "-Infinity", "[7c000000000000000000000000000000]", "00")
+ self.bid128_sub("4", "SNaN", "-Infinity", "[7c000000000000000000000000000000]", "01")
+ self.bid128_sub("0", "[800230c441000400,f9af3bf37dee171d]", "[0003c0005220403c,fffebffffeffff7e]", "[800431ad41e9a06c98f7cc652617cf10]", "20")
+ self.bid128_sub("2", "[0000000000000000,000a400222480018]", "[8020f41400402000,ffffffffffffffff]", "[0020f414004020010000000000000000]", "20")
+ self.bid128_sub("0", "[800230c441000400,f9af3bf37dee171d]", "[0003c0005220403c,fffebffffeffff7e]", "[800431ad41e9a06c98f7cc652617cf10]", "20")
+ self.bid128_sub("2", "[0000000000000000,000a400222480018]", "[8020f41400402000,ffffffffffffffff]", "[0020f414004020010000000000000000]", "20")
+ self.bid128_sub("0", "[0000008800000200,ffffffffffffffff]", "[0000010000000000,ffffffffffffffff]", "[80000077fffffe000000000000000000]", "00")
+ self.bid128_sub("0", "[ae01cbf566956924,67131a19439520a7]", "[2dff68be032101ef,5da009c86eb48d88]", "[ae02319a70b08d17f434268c35f1ff90]", "20")
+ self.bid128_sub("2", "[a61857066e6da73a,edd2a0bc28137c9d]", "[265a60318c518074,fffffffffffffffe]", "[a65a60318c518074ffffffffffffffff]", "20")
+ }
+
+ private func bid128_sub(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = arg0.subtracting(arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, .fuzzyStatus, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelToBinaryFloatingPointTests.swift b/Tests/DecimalTests/Intel - generated/IntelToBinaryFloatingPointTests.swift
new file mode 100644
index 0000000..67c1ff7
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelToBinaryFloatingPointTests.swift
@@ -0,0 +1,15951 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelToBinaryFloatingPointTests: XCTestCase, IntelMixin {
+
+ func test_bid32_to_binary32() {
+ self.bid32_to_binary32("0", "[00000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("0", "[00000001]", "[00000000]", "30")
+ self.bid32_to_binary32("0", "[00989680]", "[00000000]", "30")
+ self.bid32_to_binary32("0", "[03000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("0", "[03800001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("0", "[189ABA47]", "[00000000]", "30")
+ self.bid32_to_binary32("0", "[189ABA49]", "[00000000]", "30")
+ self.bid32_to_binary32("0", "[18EAE91C]", "[00000000]", "30")
+ self.bid32_to_binary32("0", "[18EAE923]", "[00000001]", "30")
+ self.bid32_to_binary32("0", "[1910095E]", "[00000001]", "30")
+ self.bid32_to_binary32("0", "[191561d2]", "[00000001]", "0x30")
+ self.bid32_to_binary32("0", "[191561D2]", "[00000001]", "30")
+ self.bid32_to_binary32("0", "[191561d3]", "[00000001]", "0x30")
+ self.bid32_to_binary32("0", "[192012BC]", "[00000002]", "30")
+ self.bid32_to_binary32("0", "[1A0036BD]", "[00000001]", "30")
+ self.bid32_to_binary32("0", "[1A6D79F8]", "[00000200]", "30")
+ self.bid32_to_binary32("0", "[1A6D79FF]", "[00000200]", "30")
+ self.bid32_to_binary32("0", "[1aa473d5]", "[000006a9]", "0x30")
+ self.bid32_to_binary32("0", "[1c8f350e]", "[006c85c4]", "0x30")
+ self.bid32_to_binary32("0", "[1c91efc6]", "[007ffffd]", "0x30")
+ self.bid32_to_binary32("0", "[1c91efc7]", "[00800005]", "0x20")
+ self.bid32_to_binary32("0", "[1ca3df8c]", "[00fffffb]", "0x20")
+ self.bid32_to_binary32("0", "[1ca3df8d]", "[01000001]", "0x20")
+ self.bid32_to_binary32("0", "[1DDBD5E3]", "[05000000]", "20")
+ self.bid32_to_binary32("0", "[1df6a83d]", "[0525624c]", "0x20")
+ self.bid32_to_binary32("0", "[1f863bfd]", "[09a9b6ef]", "0x20")
+ self.bid32_to_binary32("0", "[210fc4d3]", "[0f519a99]", "0x20")
+ self.bid32_to_binary32("0", "[22eb6643]", "[15ae43fd]", "0x20")
+ self.bid32_to_binary32("0", "[243fa10d]", "[1a49a610]", "0x20")
+ self.bid32_to_binary32("0", "[2607dc84]", "[1f734c57]", "0x20")
+ self.bid32_to_binary32("0", "[2794fb5b]", "[251e88d1]", "0x20")
+ self.bid32_to_binary32("0", "[296a9c7b]", "[2b44a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[2af5929a]", "[3053ccd2]", "0x20")
+ self.bid32_to_binary32("0", "[2c866feb]", "[34e27cf5]", "0x20")
+ self.bid32_to_binary32("0", "[2e1b16d6]", "[3ae8b1ca]", "0x20")
+ self.bid32_to_binary32("0", "[2ecd7c6d]", "[3d500000]", "0x00")
+ self.bid32_to_binary32("0", "[3200000f]", "[3fc00000]", "0x00")
+ self.bid32_to_binary32("0", "[32800000]", "[00000000]", "0x00")
+ self.bid32_to_binary32("0", "[32800001]", "[3F800000]", "00")
+ self.bid32_to_binary32("0", "[32800001]", "[3f800000]", "0x00")
+ self.bid32_to_binary32("0", "[32800040]", "[42800000]", "0x00")
+ self.bid32_to_binary32("0", "[328003e7]", "[4479c000]", "0x00")
+ self.bid32_to_binary32("0", "[328003e8]", "[447a0000]", "0x00")
+ self.bid32_to_binary32("0", "[3281ffff]", "[47FFFF80]", "00")
+ self.bid32_to_binary32("0", "[3283ffff]", "[487FFFC0]", "00")
+ self.bid32_to_binary32("0", "[3287ffff]", "[48FFFFE0]", "00")
+ self.bid32_to_binary32("0", "[328fffff]", "[497FFFF0]", "00")
+ self.bid32_to_binary32("0", "[3297ffff]", "[49BFFFF8]", "00")
+ self.bid32_to_binary32("0", "[32fffff8]", "[4afffff0]", "0x00")
+ self.bid32_to_binary32("0", "[3319999A]", "[4B800002]", "00")
+ self.bid32_to_binary32("0", "[34b46daf]", "[50ffff90]", "0x20")
+ self.bid32_to_binary32("0", "[3800AFEC]", "[59800001]", "20")
+ self.bid32_to_binary32("0", "[391C25C2]", "[5F7FFFFC]", "20")
+ self.bid32_to_binary32("0", "[3964ab72]", "[6064e57b]", "0x20")
+ self.bid32_to_binary32("0", "[3b281625]", "[665e8658]", "0x20")
+ self.bid32_to_binary32("0", "[3cf57036]", "[6c1f289a]", "0x20")
+ self.bid32_to_binary32("0", "[3e3f69ed]", "[70a7dad8]", "0x20")
+ self.bid32_to_binary32("0", "[3fba1d8a]", "[7596398a]", "0x20")
+ self.bid32_to_binary32("0", "[404F3A69]", "[77800000]", "20")
+ self.bid32_to_binary32("0", "[408FD87B]", "[77FFFFFA]", "20")
+ self.bid32_to_binary32("0", "[42B3DEFD]", "[7F7FBE78]", "20")
+ self.bid32_to_binary32("0", "[42b3ec47]", "[7f7ffffd]", "0x20")
+ self.bid32_to_binary32("0", "[42b3ec48]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("0", "[42CDE26C]", "[7F800000]", "28")
+ self.bid32_to_binary32("0", "[43175D87]", "[7F800000]", "28")
+ self.bid32_to_binary32("0", "[6628c3f7]", "[00000001]", "0x30")
+ self.bid32_to_binary32("0", "[6bf887d3]", "[411ff09c]", "0x20")
+ self.bid32_to_binary32("0", "[6c58962c]", "[461c3faa]", "0x20")
+ self.bid32_to_binary32("0", "[6CA00000]", "[4B000000]", "00")
+ self.bid32_to_binary32("0", "[6CB89680]", "[00000000]", "00")
+ self.bid32_to_binary32("0", "[6d98395b]", "[56b57717]", "0x20")
+ self.bid32_to_binary32("0", "[6DC9705F]", "[5A000000]", "20")
+ self.bid32_to_binary32("0", "[6de25ddb]", "[5b97c448]", "0x20")
+ self.bid32_to_binary32("0", "[6E2CBCCC]", "[5F000000]", "20")
+ self.bid32_to_binary32("0", "[7081CEB3]", "[7E800000]", "20")
+ self.bid32_to_binary32("0", "[77f8967f]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("0", "[77F8967F]", "[7F800000]", "28")
+ self.bid32_to_binary32("0", "[77f89680]", "[00000000]", "00")
+ self.bid32_to_binary32("0", "[78000000]", "[7f800000]", "0x00")
+ self.bid32_to_binary32("0", "[7c000000]", "[7FC00000]", "00")
+ self.bid32_to_binary32("0", "[7c0F423F]", "[7FFD08FC]", "00")
+ self.bid32_to_binary32("0", "[7c0F4240]", "[7FC00000]", "00")
+ self.bid32_to_binary32("0", "[7e000000]", "[7FC00000]", "01")
+ self.bid32_to_binary32("0", "[7e0F423F]", "[7FFD08FC]", "01")
+ self.bid32_to_binary32("0", "[7e0F4240]", "[7FC00000]", "01")
+ self.bid32_to_binary32("0", "[80000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("0", "[83000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("0", "[83800001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("0", "[991561d2]", "[80000001]", "0x30")
+ self.bid32_to_binary32("0", "[991561d3]", "[80000001]", "0x30")
+ self.bid32_to_binary32("0", "[9aa473d5]", "[800006a9]", "0x30")
+ self.bid32_to_binary32("0", "[9c8f350e]", "[806c85c4]", "0x30")
+ self.bid32_to_binary32("0", "[9c91efc6]", "[807ffffd]", "0x30")
+ self.bid32_to_binary32("0", "[9c91efc7]", "[80800005]", "0x20")
+ self.bid32_to_binary32("0", "[9ca3df8c]", "[80fffffb]", "0x20")
+ self.bid32_to_binary32("0", "[9ca3df8d]", "[81000001]", "0x20")
+ self.bid32_to_binary32("0", "[9df6a83d]", "[8525624c]", "0x20")
+ self.bid32_to_binary32("0", "[9f863bfd]", "[89a9b6ef]", "0x20")
+ self.bid32_to_binary32("0", "[a10fc4d3]", "[8f519a99]", "0x20")
+ self.bid32_to_binary32("0", "[a2eb6643]", "[95ae43fd]", "0x20")
+ self.bid32_to_binary32("0", "[a43fa10d]", "[9a49a610]", "0x20")
+ self.bid32_to_binary32("0", "[a607dc84]", "[9f734c57]", "0x20")
+ self.bid32_to_binary32("0", "[a794fb5b]", "[a51e88d1]", "0x20")
+ self.bid32_to_binary32("0", "[a96a9c7b]", "[ab44a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[aaf5929a]", "[b053ccd2]", "0x20")
+ self.bid32_to_binary32("0", "[ac866feb]", "[b4e27cf5]", "0x20")
+ self.bid32_to_binary32("0", "[ae1b16d6]", "[bae8b1ca]", "0x20")
+ self.bid32_to_binary32("0", "[aecd7c6d]", "[bd500000]", "0x00")
+ self.bid32_to_binary32("0", "[b200000f]", "[bfc00000]", "0x00")
+ self.bid32_to_binary32("0", "[b2800001]", "[bf800000]", "0x00")
+ self.bid32_to_binary32("0", "[b2800040]", "[c2800000]", "0x00")
+ self.bid32_to_binary32("0", "[b28003e7]", "[c479c000]", "0x00")
+ self.bid32_to_binary32("0", "[b28003e8]", "[c47a0000]", "0x00")
+ self.bid32_to_binary32("0", "[b2fffff8]", "[cafffff0]", "0x00")
+ self.bid32_to_binary32("0", "[b4b46daf]", "[d0ffff90]", "0x20")
+ self.bid32_to_binary32("0", "[b964ab72]", "[e064e57b]", "0x20")
+ self.bid32_to_binary32("0", "[bb281625]", "[e65e8658]", "0x20")
+ self.bid32_to_binary32("0", "[bcf57036]", "[ec1f289a]", "0x20")
+ self.bid32_to_binary32("0", "[be3f69ed]", "[f0a7dad8]", "0x20")
+ self.bid32_to_binary32("0", "[bfba1d8a]", "[f596398a]", "0x20")
+ self.bid32_to_binary32("0", "[c2b3ec47]", "[ff7ffffd]", "0x20")
+ self.bid32_to_binary32("0", "[c2b3ec48]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("0", "[e628c3f7]", "[80000001]", "0x30")
+ self.bid32_to_binary32("0", "[ebf887d3]", "[c11ff09c]", "0x20")
+ self.bid32_to_binary32("0", "[ec58962c]", "[c61c3faa]", "0x20")
+ self.bid32_to_binary32("0", "[ed98395b]", "[d6b57717]", "0x20")
+ self.bid32_to_binary32("0", "[ede25ddb]", "[db97c448]", "0x20")
+ self.bid32_to_binary32("0", "[f7f8967f]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("0", "[f8000000]", "[ff800000]", "0x00")
+ self.bid32_to_binary32("1", "[00000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("1", "[03000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("1", "[03800001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("1", "[191561d2]", "[00000000]", "0x30")
+ self.bid32_to_binary32("1", "[191561d3]", "[00000001]", "0x30")
+ self.bid32_to_binary32("1", "[1aa473d5]", "[000006a8]", "0x30")
+ self.bid32_to_binary32("1", "[1c8f350e]", "[006c85c4]", "0x30")
+ self.bid32_to_binary32("1", "[1c91efc6]", "[007ffffd]", "0x30")
+ self.bid32_to_binary32("1", "[1c91efc7]", "[00800004]", "0x20")
+ self.bid32_to_binary32("1", "[1ca3df8c]", "[00fffffa]", "0x20")
+ self.bid32_to_binary32("1", "[1ca3df8d]", "[01000001]", "0x20")
+ self.bid32_to_binary32("1", "[1df6a83d]", "[0525624c]", "0x20")
+ self.bid32_to_binary32("1", "[1f863bfd]", "[09a9b6ee]", "0x20")
+ self.bid32_to_binary32("1", "[210fc4d3]", "[0f519a99]", "0x20")
+ self.bid32_to_binary32("1", "[22eb6643]", "[15ae43fd]", "0x20")
+ self.bid32_to_binary32("1", "[243fa10d]", "[1a49a60f]", "0x20")
+ self.bid32_to_binary32("1", "[2607dc84]", "[1f734c57]", "0x20")
+ self.bid32_to_binary32("1", "[2794fb5b]", "[251e88d0]", "0x20")
+ self.bid32_to_binary32("1", "[296a9c7b]", "[2b44a9bd]", "0x20")
+ self.bid32_to_binary32("1", "[2af5929a]", "[3053ccd1]", "0x20")
+ self.bid32_to_binary32("1", "[2c866feb]", "[34e27cf5]", "0x20")
+ self.bid32_to_binary32("1", "[2e1b16d6]", "[3ae8b1c9]", "0x20")
+ self.bid32_to_binary32("1", "[2ecd7c6d]", "[3d500000]", "0x00")
+ self.bid32_to_binary32("1", "[3200000f]", "[3fc00000]", "0x00")
+ self.bid32_to_binary32("1", "[32800000]", "[00000000]", "0x00")
+ self.bid32_to_binary32("1", "[32800001]", "[3f800000]", "0x00")
+ self.bid32_to_binary32("1", "[32800040]", "[42800000]", "0x00")
+ self.bid32_to_binary32("1", "[328003e7]", "[4479c000]", "0x00")
+ self.bid32_to_binary32("1", "[328003e8]", "[447a0000]", "0x00")
+ self.bid32_to_binary32("1", "[32fffff8]", "[4afffff0]", "0x00")
+ self.bid32_to_binary32("1", "[34b46daf]", "[50ffff90]", "0x20")
+ self.bid32_to_binary32("1", "[3964ab72]", "[6064e57b]", "0x20")
+ self.bid32_to_binary32("1", "[3b281625]", "[665e8658]", "0x20")
+ self.bid32_to_binary32("1", "[3cf57036]", "[6c1f289a]", "0x20")
+ self.bid32_to_binary32("1", "[3e3f69ed]", "[70a7dad7]", "0x20")
+ self.bid32_to_binary32("1", "[3fba1d8a]", "[75963989]", "0x20")
+ self.bid32_to_binary32("1", "[42b3ec47]", "[7f7ffffc]", "0x20")
+ self.bid32_to_binary32("1", "[42b3ec48]", "[7f7fffff]", "0x28")
+ self.bid32_to_binary32("1", "[6628c3f7]", "[00000000]", "0x30")
+ self.bid32_to_binary32("1", "[6bf887d3]", "[411ff09c]", "0x20")
+ self.bid32_to_binary32("1", "[6c58962c]", "[461c3fa9]", "0x20")
+ self.bid32_to_binary32("1", "[6d98395b]", "[56b57717]", "0x20")
+ self.bid32_to_binary32("1", "[6de25ddb]", "[5b97c448]", "0x20")
+ self.bid32_to_binary32("1", "[77f8967f]", "[7f7fffff]", "0x28")
+ self.bid32_to_binary32("1", "[78000000]", "[7f800000]", "0x00")
+ self.bid32_to_binary32("1", "[80000001]", "[80000001]", "0x30")
+ self.bid32_to_binary32("1", "[83000001]", "[80000001]", "0x30")
+ self.bid32_to_binary32("1", "[83800001]", "[80000001]", "0x30")
+ self.bid32_to_binary32("1", "[991561d2]", "[80000001]", "0x30")
+ self.bid32_to_binary32("1", "[991561d3]", "[80000002]", "0x30")
+ self.bid32_to_binary32("1", "[9aa473d5]", "[800006a9]", "0x30")
+ self.bid32_to_binary32("1", "[9c8f350e]", "[806c85c5]", "0x30")
+ self.bid32_to_binary32("1", "[9c91efc6]", "[807ffffe]", "0x30")
+ self.bid32_to_binary32("1", "[9c91efc7]", "[80800005]", "0x20")
+ self.bid32_to_binary32("1", "[9ca3df8c]", "[80fffffb]", "0x20")
+ self.bid32_to_binary32("1", "[9ca3df8d]", "[81000002]", "0x20")
+ self.bid32_to_binary32("1", "[9df6a83d]", "[8525624d]", "0x20")
+ self.bid32_to_binary32("1", "[9f863bfd]", "[89a9b6ef]", "0x20")
+ self.bid32_to_binary32("1", "[a10fc4d3]", "[8f519a9a]", "0x20")
+ self.bid32_to_binary32("1", "[a2eb6643]", "[95ae43fe]", "0x20")
+ self.bid32_to_binary32("1", "[a43fa10d]", "[9a49a610]", "0x20")
+ self.bid32_to_binary32("1", "[a607dc84]", "[9f734c58]", "0x20")
+ self.bid32_to_binary32("1", "[a794fb5b]", "[a51e88d1]", "0x20")
+ self.bid32_to_binary32("1", "[a96a9c7b]", "[ab44a9be]", "0x20")
+ self.bid32_to_binary32("1", "[aaf5929a]", "[b053ccd2]", "0x20")
+ self.bid32_to_binary32("1", "[ac866feb]", "[b4e27cf6]", "0x20")
+ self.bid32_to_binary32("1", "[ae1b16d6]", "[bae8b1ca]", "0x20")
+ self.bid32_to_binary32("1", "[aecd7c6d]", "[bd500000]", "0x00")
+ self.bid32_to_binary32("1", "[b200000f]", "[bfc00000]", "0x00")
+ self.bid32_to_binary32("1", "[b2800001]", "[bf800000]", "0x00")
+ self.bid32_to_binary32("1", "[b2800040]", "[c2800000]", "0x00")
+ self.bid32_to_binary32("1", "[b28003e7]", "[c479c000]", "0x00")
+ self.bid32_to_binary32("1", "[b28003e8]", "[c47a0000]", "0x00")
+ self.bid32_to_binary32("1", "[b2fffff8]", "[cafffff0]", "0x00")
+ self.bid32_to_binary32("1", "[b4b46daf]", "[d0ffff91]", "0x20")
+ self.bid32_to_binary32("1", "[b964ab72]", "[e064e57c]", "0x20")
+ self.bid32_to_binary32("1", "[bb281625]", "[e65e8659]", "0x20")
+ self.bid32_to_binary32("1", "[bcf57036]", "[ec1f289b]", "0x20")
+ self.bid32_to_binary32("1", "[be3f69ed]", "[f0a7dad8]", "0x20")
+ self.bid32_to_binary32("1", "[bfba1d8a]", "[f596398a]", "0x20")
+ self.bid32_to_binary32("1", "[c2b3ec47]", "[ff7ffffd]", "0x20")
+ self.bid32_to_binary32("1", "[c2b3ec48]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("1", "[e628c3f7]", "[80000001]", "0x30")
+ self.bid32_to_binary32("1", "[ebf887d3]", "[c11ff09d]", "0x20")
+ self.bid32_to_binary32("1", "[ec58962c]", "[c61c3faa]", "0x20")
+ self.bid32_to_binary32("1", "[ed98395b]", "[d6b57718]", "0x20")
+ self.bid32_to_binary32("1", "[ede25ddb]", "[db97c449]", "0x20")
+ self.bid32_to_binary32("1", "[f7f8967f]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("1", "[f8000000]", "[ff800000]", "0x00")
+ self.bid32_to_binary32("2", "[00000001]", "[00000001]", "0x30")
+ self.bid32_to_binary32("2", "[03000001]", "[00000001]", "0x30")
+ self.bid32_to_binary32("2", "[03800001]", "[00000001]", "0x30")
+ self.bid32_to_binary32("2", "[191561d2]", "[00000001]", "0x30")
+ self.bid32_to_binary32("2", "[191561d3]", "[00000002]", "0x30")
+ self.bid32_to_binary32("2", "[1aa473d5]", "[000006a9]", "0x30")
+ self.bid32_to_binary32("2", "[1c8f350e]", "[006c85c5]", "0x30")
+ self.bid32_to_binary32("2", "[1c91efc6]", "[007ffffe]", "0x30")
+ self.bid32_to_binary32("2", "[1c91efc7]", "[00800005]", "0x20")
+ self.bid32_to_binary32("2", "[1ca3df8c]", "[00fffffb]", "0x20")
+ self.bid32_to_binary32("2", "[1ca3df8d]", "[01000002]", "0x20")
+ self.bid32_to_binary32("2", "[1df6a83d]", "[0525624d]", "0x20")
+ self.bid32_to_binary32("2", "[1f863bfd]", "[09a9b6ef]", "0x20")
+ self.bid32_to_binary32("2", "[210fc4d3]", "[0f519a9a]", "0x20")
+ self.bid32_to_binary32("2", "[22eb6643]", "[15ae43fe]", "0x20")
+ self.bid32_to_binary32("2", "[243fa10d]", "[1a49a610]", "0x20")
+ self.bid32_to_binary32("2", "[2607dc84]", "[1f734c58]", "0x20")
+ self.bid32_to_binary32("2", "[2794fb5b]", "[251e88d1]", "0x20")
+ self.bid32_to_binary32("2", "[296a9c7b]", "[2b44a9be]", "0x20")
+ self.bid32_to_binary32("2", "[2af5929a]", "[3053ccd2]", "0x20")
+ self.bid32_to_binary32("2", "[2c866feb]", "[34e27cf6]", "0x20")
+ self.bid32_to_binary32("2", "[2e1b16d6]", "[3ae8b1ca]", "0x20")
+ self.bid32_to_binary32("2", "[2ecd7c6d]", "[3d500000]", "0x00")
+ self.bid32_to_binary32("2", "[3200000f]", "[3fc00000]", "0x00")
+ self.bid32_to_binary32("2", "[32800000]", "[00000000]", "0x00")
+ self.bid32_to_binary32("2", "[32800001]", "[3f800000]", "0x00")
+ self.bid32_to_binary32("2", "[32800040]", "[42800000]", "0x00")
+ self.bid32_to_binary32("2", "[328003e7]", "[4479c000]", "0x00")
+ self.bid32_to_binary32("2", "[328003e8]", "[447a0000]", "0x00")
+ self.bid32_to_binary32("2", "[32fffff8]", "[4afffff0]", "0x00")
+ self.bid32_to_binary32("2", "[34b46daf]", "[50ffff91]", "0x20")
+ self.bid32_to_binary32("2", "[3964ab72]", "[6064e57c]", "0x20")
+ self.bid32_to_binary32("2", "[3b281625]", "[665e8659]", "0x20")
+ self.bid32_to_binary32("2", "[3cf57036]", "[6c1f289b]", "0x20")
+ self.bid32_to_binary32("2", "[3e3f69ed]", "[70a7dad8]", "0x20")
+ self.bid32_to_binary32("2", "[3fba1d8a]", "[7596398a]", "0x20")
+ self.bid32_to_binary32("2", "[42b3ec47]", "[7f7ffffd]", "0x20")
+ self.bid32_to_binary32("2", "[42b3ec48]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("2", "[6628c3f7]", "[00000001]", "0x30")
+ self.bid32_to_binary32("2", "[6bf887d3]", "[411ff09d]", "0x20")
+ self.bid32_to_binary32("2", "[6c58962c]", "[461c3faa]", "0x20")
+ self.bid32_to_binary32("2", "[6d98395b]", "[56b57718]", "0x20")
+ self.bid32_to_binary32("2", "[6de25ddb]", "[5b97c449]", "0x20")
+ self.bid32_to_binary32("2", "[77f8967f]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("2", "[78000000]", "[7f800000]", "0x00")
+ self.bid32_to_binary32("2", "[80000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("2", "[83000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("2", "[83800001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("2", "[991561d2]", "[80000000]", "0x30")
+ self.bid32_to_binary32("2", "[991561d3]", "[80000001]", "0x30")
+ self.bid32_to_binary32("2", "[9aa473d5]", "[800006a8]", "0x30")
+ self.bid32_to_binary32("2", "[9c8f350e]", "[806c85c4]", "0x30")
+ self.bid32_to_binary32("2", "[9c91efc6]", "[807ffffd]", "0x30")
+ self.bid32_to_binary32("2", "[9c91efc7]", "[80800004]", "0x20")
+ self.bid32_to_binary32("2", "[9ca3df8c]", "[80fffffa]", "0x20")
+ self.bid32_to_binary32("2", "[9ca3df8d]", "[81000001]", "0x20")
+ self.bid32_to_binary32("2", "[9df6a83d]", "[8525624c]", "0x20")
+ self.bid32_to_binary32("2", "[9f863bfd]", "[89a9b6ee]", "0x20")
+ self.bid32_to_binary32("2", "[a10fc4d3]", "[8f519a99]", "0x20")
+ self.bid32_to_binary32("2", "[a2eb6643]", "[95ae43fd]", "0x20")
+ self.bid32_to_binary32("2", "[a43fa10d]", "[9a49a60f]", "0x20")
+ self.bid32_to_binary32("2", "[a607dc84]", "[9f734c57]", "0x20")
+ self.bid32_to_binary32("2", "[a794fb5b]", "[a51e88d0]", "0x20")
+ self.bid32_to_binary32("2", "[a96a9c7b]", "[ab44a9bd]", "0x20")
+ self.bid32_to_binary32("2", "[aaf5929a]", "[b053ccd1]", "0x20")
+ self.bid32_to_binary32("2", "[ac866feb]", "[b4e27cf5]", "0x20")
+ self.bid32_to_binary32("2", "[ae1b16d6]", "[bae8b1c9]", "0x20")
+ self.bid32_to_binary32("2", "[aecd7c6d]", "[bd500000]", "0x00")
+ self.bid32_to_binary32("2", "[b200000f]", "[bfc00000]", "0x00")
+ self.bid32_to_binary32("2", "[b2800001]", "[bf800000]", "0x00")
+ self.bid32_to_binary32("2", "[b2800040]", "[c2800000]", "0x00")
+ self.bid32_to_binary32("2", "[b28003e7]", "[c479c000]", "0x00")
+ self.bid32_to_binary32("2", "[b28003e8]", "[c47a0000]", "0x00")
+ self.bid32_to_binary32("2", "[b2fffff8]", "[cafffff0]", "0x00")
+ self.bid32_to_binary32("2", "[b4b46daf]", "[d0ffff90]", "0x20")
+ self.bid32_to_binary32("2", "[b964ab72]", "[e064e57b]", "0x20")
+ self.bid32_to_binary32("2", "[bb281625]", "[e65e8658]", "0x20")
+ self.bid32_to_binary32("2", "[bcf57036]", "[ec1f289a]", "0x20")
+ self.bid32_to_binary32("2", "[be3f69ed]", "[f0a7dad7]", "0x20")
+ self.bid32_to_binary32("2", "[bfba1d8a]", "[f5963989]", "0x20")
+ self.bid32_to_binary32("2", "[c2b3ec47]", "[ff7ffffc]", "0x20")
+ self.bid32_to_binary32("2", "[c2b3ec48]", "[ff7fffff]", "0x28")
+ self.bid32_to_binary32("2", "[e628c3f7]", "[80000000]", "0x30")
+ self.bid32_to_binary32("2", "[ebf887d3]", "[c11ff09c]", "0x20")
+ self.bid32_to_binary32("2", "[ec58962c]", "[c61c3fa9]", "0x20")
+ self.bid32_to_binary32("2", "[ed98395b]", "[d6b57717]", "0x20")
+ self.bid32_to_binary32("2", "[ede25ddb]", "[db97c448]", "0x20")
+ self.bid32_to_binary32("2", "[f7f8967f]", "[ff7fffff]", "0x28")
+ self.bid32_to_binary32("2", "[f8000000]", "[ff800000]", "0x00")
+ self.bid32_to_binary32("3", "[00000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("3", "[03000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("3", "[03800001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("3", "[191561d2]", "[00000000]", "0x30")
+ self.bid32_to_binary32("3", "[191561d3]", "[00000001]", "0x30")
+ self.bid32_to_binary32("3", "[1aa473d5]", "[000006a8]", "0x30")
+ self.bid32_to_binary32("3", "[1c8f350e]", "[006c85c4]", "0x30")
+ self.bid32_to_binary32("3", "[1c91efc6]", "[007ffffd]", "0x30")
+ self.bid32_to_binary32("3", "[1c91efc7]", "[00800004]", "0x20")
+ self.bid32_to_binary32("3", "[1ca3df8c]", "[00fffffa]", "0x20")
+ self.bid32_to_binary32("3", "[1ca3df8d]", "[01000001]", "0x20")
+ self.bid32_to_binary32("3", "[1df6a83d]", "[0525624c]", "0x20")
+ self.bid32_to_binary32("3", "[1f863bfd]", "[09a9b6ee]", "0x20")
+ self.bid32_to_binary32("3", "[210fc4d3]", "[0f519a99]", "0x20")
+ self.bid32_to_binary32("3", "[22eb6643]", "[15ae43fd]", "0x20")
+ self.bid32_to_binary32("3", "[243fa10d]", "[1a49a60f]", "0x20")
+ self.bid32_to_binary32("3", "[2607dc84]", "[1f734c57]", "0x20")
+ self.bid32_to_binary32("3", "[2794fb5b]", "[251e88d0]", "0x20")
+ self.bid32_to_binary32("3", "[296a9c7b]", "[2b44a9bd]", "0x20")
+ self.bid32_to_binary32("3", "[2af5929a]", "[3053ccd1]", "0x20")
+ self.bid32_to_binary32("3", "[2c866feb]", "[34e27cf5]", "0x20")
+ self.bid32_to_binary32("3", "[2e1b16d6]", "[3ae8b1c9]", "0x20")
+ self.bid32_to_binary32("3", "[2ecd7c6d]", "[3d500000]", "0x00")
+ self.bid32_to_binary32("3", "[3200000f]", "[3fc00000]", "0x00")
+ self.bid32_to_binary32("3", "[32800000]", "[00000000]", "0x00")
+ self.bid32_to_binary32("3", "[32800001]", "[3f800000]", "0x00")
+ self.bid32_to_binary32("3", "[32800040]", "[42800000]", "0x00")
+ self.bid32_to_binary32("3", "[328003e7]", "[4479c000]", "0x00")
+ self.bid32_to_binary32("3", "[328003e8]", "[447a0000]", "0x00")
+ self.bid32_to_binary32("3", "[32fffff8]", "[4afffff0]", "0x00")
+ self.bid32_to_binary32("3", "[34b46daf]", "[50ffff90]", "0x20")
+ self.bid32_to_binary32("3", "[3964ab72]", "[6064e57b]", "0x20")
+ self.bid32_to_binary32("3", "[3b281625]", "[665e8658]", "0x20")
+ self.bid32_to_binary32("3", "[3cf57036]", "[6c1f289a]", "0x20")
+ self.bid32_to_binary32("3", "[3e3f69ed]", "[70a7dad7]", "0x20")
+ self.bid32_to_binary32("3", "[3fba1d8a]", "[75963989]", "0x20")
+ self.bid32_to_binary32("3", "[42b3ec47]", "[7f7ffffc]", "0x20")
+ self.bid32_to_binary32("3", "[42b3ec48]", "[7f7fffff]", "0x28")
+ self.bid32_to_binary32("3", "[6628c3f7]", "[00000000]", "0x30")
+ self.bid32_to_binary32("3", "[6bf887d3]", "[411ff09c]", "0x20")
+ self.bid32_to_binary32("3", "[6c58962c]", "[461c3fa9]", "0x20")
+ self.bid32_to_binary32("3", "[6d98395b]", "[56b57717]", "0x20")
+ self.bid32_to_binary32("3", "[6de25ddb]", "[5b97c448]", "0x20")
+ self.bid32_to_binary32("3", "[77f8967f]", "[7f7fffff]", "0x28")
+ self.bid32_to_binary32("3", "[78000000]", "[7f800000]", "0x00")
+ self.bid32_to_binary32("3", "[80000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("3", "[83000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("3", "[83800001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("3", "[991561d2]", "[80000000]", "0x30")
+ self.bid32_to_binary32("3", "[991561d3]", "[80000001]", "0x30")
+ self.bid32_to_binary32("3", "[9aa473d5]", "[800006a8]", "0x30")
+ self.bid32_to_binary32("3", "[9c8f350e]", "[806c85c4]", "0x30")
+ self.bid32_to_binary32("3", "[9c91efc6]", "[807ffffd]", "0x30")
+ self.bid32_to_binary32("3", "[9c91efc7]", "[80800004]", "0x20")
+ self.bid32_to_binary32("3", "[9ca3df8c]", "[80fffffa]", "0x20")
+ self.bid32_to_binary32("3", "[9ca3df8d]", "[81000001]", "0x20")
+ self.bid32_to_binary32("3", "[9df6a83d]", "[8525624c]", "0x20")
+ self.bid32_to_binary32("3", "[9f863bfd]", "[89a9b6ee]", "0x20")
+ self.bid32_to_binary32("3", "[a10fc4d3]", "[8f519a99]", "0x20")
+ self.bid32_to_binary32("3", "[a2eb6643]", "[95ae43fd]", "0x20")
+ self.bid32_to_binary32("3", "[a43fa10d]", "[9a49a60f]", "0x20")
+ self.bid32_to_binary32("3", "[a607dc84]", "[9f734c57]", "0x20")
+ self.bid32_to_binary32("3", "[a794fb5b]", "[a51e88d0]", "0x20")
+ self.bid32_to_binary32("3", "[a96a9c7b]", "[ab44a9bd]", "0x20")
+ self.bid32_to_binary32("3", "[aaf5929a]", "[b053ccd1]", "0x20")
+ self.bid32_to_binary32("3", "[ac866feb]", "[b4e27cf5]", "0x20")
+ self.bid32_to_binary32("3", "[ae1b16d6]", "[bae8b1c9]", "0x20")
+ self.bid32_to_binary32("3", "[aecd7c6d]", "[bd500000]", "0x00")
+ self.bid32_to_binary32("3", "[b200000f]", "[bfc00000]", "0x00")
+ self.bid32_to_binary32("3", "[b2800001]", "[bf800000]", "0x00")
+ self.bid32_to_binary32("3", "[b2800040]", "[c2800000]", "0x00")
+ self.bid32_to_binary32("3", "[b28003e7]", "[c479c000]", "0x00")
+ self.bid32_to_binary32("3", "[b28003e8]", "[c47a0000]", "0x00")
+ self.bid32_to_binary32("3", "[b2fffff8]", "[cafffff0]", "0x00")
+ self.bid32_to_binary32("3", "[b4b46daf]", "[d0ffff90]", "0x20")
+ self.bid32_to_binary32("3", "[b964ab72]", "[e064e57b]", "0x20")
+ self.bid32_to_binary32("3", "[bb281625]", "[e65e8658]", "0x20")
+ self.bid32_to_binary32("3", "[bcf57036]", "[ec1f289a]", "0x20")
+ self.bid32_to_binary32("3", "[be3f69ed]", "[f0a7dad7]", "0x20")
+ self.bid32_to_binary32("3", "[bfba1d8a]", "[f5963989]", "0x20")
+ self.bid32_to_binary32("3", "[c2b3ec47]", "[ff7ffffc]", "0x20")
+ self.bid32_to_binary32("3", "[c2b3ec48]", "[ff7fffff]", "0x28")
+ self.bid32_to_binary32("3", "[e628c3f7]", "[80000000]", "0x30")
+ self.bid32_to_binary32("3", "[ebf887d3]", "[c11ff09c]", "0x20")
+ self.bid32_to_binary32("3", "[ec58962c]", "[c61c3fa9]", "0x20")
+ self.bid32_to_binary32("3", "[ed98395b]", "[d6b57717]", "0x20")
+ self.bid32_to_binary32("3", "[ede25ddb]", "[db97c448]", "0x20")
+ self.bid32_to_binary32("3", "[f7f8967f]", "[ff7fffff]", "0x28")
+ self.bid32_to_binary32("3", "[f8000000]", "[ff800000]", "0x00")
+ self.bid32_to_binary32("4", "[00000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("4", "[03000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("4", "[03800001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("4", "[191561d2]", "[00000001]", "0x30")
+ self.bid32_to_binary32("4", "[191561d3]", "[00000001]", "0x30")
+ self.bid32_to_binary32("4", "[1aa473d5]", "[000006a9]", "0x30")
+ self.bid32_to_binary32("4", "[1c8f350e]", "[006c85c4]", "0x30")
+ self.bid32_to_binary32("4", "[1c91efc6]", "[007ffffd]", "0x30")
+ self.bid32_to_binary32("4", "[1c91efc7]", "[00800005]", "0x20")
+ self.bid32_to_binary32("4", "[1ca3df8c]", "[00fffffb]", "0x20")
+ self.bid32_to_binary32("4", "[1ca3df8d]", "[01000001]", "0x20")
+ self.bid32_to_binary32("4", "[1df6a83d]", "[0525624c]", "0x20")
+ self.bid32_to_binary32("4", "[1f863bfd]", "[09a9b6ef]", "0x20")
+ self.bid32_to_binary32("4", "[210fc4d3]", "[0f519a99]", "0x20")
+ self.bid32_to_binary32("4", "[22eb6643]", "[15ae43fd]", "0x20")
+ self.bid32_to_binary32("4", "[243fa10d]", "[1a49a610]", "0x20")
+ self.bid32_to_binary32("4", "[2607dc84]", "[1f734c57]", "0x20")
+ self.bid32_to_binary32("4", "[2794fb5b]", "[251e88d1]", "0x20")
+ self.bid32_to_binary32("4", "[296a9c7b]", "[2b44a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[2af5929a]", "[3053ccd2]", "0x20")
+ self.bid32_to_binary32("4", "[2c866feb]", "[34e27cf5]", "0x20")
+ self.bid32_to_binary32("4", "[2e1b16d6]", "[3ae8b1ca]", "0x20")
+ self.bid32_to_binary32("4", "[2ecd7c6d]", "[3d500000]", "0x00")
+ self.bid32_to_binary32("4", "[3200000f]", "[3fc00000]", "0x00")
+ self.bid32_to_binary32("4", "[32800000]", "[00000000]", "0x00")
+ self.bid32_to_binary32("4", "[32800001]", "[3f800000]", "0x00")
+ self.bid32_to_binary32("4", "[32800040]", "[42800000]", "0x00")
+ self.bid32_to_binary32("4", "[328003e7]", "[4479c000]", "0x00")
+ self.bid32_to_binary32("4", "[328003e8]", "[447a0000]", "0x00")
+ self.bid32_to_binary32("4", "[32fffff8]", "[4afffff0]", "0x00")
+ self.bid32_to_binary32("4", "[34b46daf]", "[50ffff90]", "0x20")
+ self.bid32_to_binary32("4", "[3964ab72]", "[6064e57b]", "0x20")
+ self.bid32_to_binary32("4", "[3b281625]", "[665e8658]", "0x20")
+ self.bid32_to_binary32("4", "[3cf57036]", "[6c1f289a]", "0x20")
+ self.bid32_to_binary32("4", "[3e3f69ed]", "[70a7dad8]", "0x20")
+ self.bid32_to_binary32("4", "[3fba1d8a]", "[7596398a]", "0x20")
+ self.bid32_to_binary32("4", "[42b3ec47]", "[7f7ffffd]", "0x20")
+ self.bid32_to_binary32("4", "[42b3ec48]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("4", "[6628c3f7]", "[00000001]", "0x30")
+ self.bid32_to_binary32("4", "[6bf887d3]", "[411ff09c]", "0x20")
+ self.bid32_to_binary32("4", "[6c58962c]", "[461c3faa]", "0x20")
+ self.bid32_to_binary32("4", "[6d98395b]", "[56b57717]", "0x20")
+ self.bid32_to_binary32("4", "[6de25ddb]", "[5b97c448]", "0x20")
+ self.bid32_to_binary32("4", "[77f8967f]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("4", "[78000000]", "[7f800000]", "0x00")
+ self.bid32_to_binary32("4", "[80000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("4", "[83000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("4", "[83800001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("4", "[991561d2]", "[80000001]", "0x30")
+ self.bid32_to_binary32("4", "[991561d3]", "[80000001]", "0x30")
+ self.bid32_to_binary32("4", "[9aa473d5]", "[800006a9]", "0x30")
+ self.bid32_to_binary32("4", "[9c8f350e]", "[806c85c4]", "0x30")
+ self.bid32_to_binary32("4", "[9c91efc6]", "[807ffffd]", "0x30")
+ self.bid32_to_binary32("4", "[9c91efc7]", "[80800005]", "0x20")
+ self.bid32_to_binary32("4", "[9ca3df8c]", "[80fffffb]", "0x20")
+ self.bid32_to_binary32("4", "[9ca3df8d]", "[81000001]", "0x20")
+ self.bid32_to_binary32("4", "[9df6a83d]", "[8525624c]", "0x20")
+ self.bid32_to_binary32("4", "[9f863bfd]", "[89a9b6ef]", "0x20")
+ self.bid32_to_binary32("4", "[a10fc4d3]", "[8f519a99]", "0x20")
+ self.bid32_to_binary32("4", "[a2eb6643]", "[95ae43fd]", "0x20")
+ self.bid32_to_binary32("4", "[a43fa10d]", "[9a49a610]", "0x20")
+ self.bid32_to_binary32("4", "[a607dc84]", "[9f734c57]", "0x20")
+ self.bid32_to_binary32("4", "[a794fb5b]", "[a51e88d1]", "0x20")
+ self.bid32_to_binary32("4", "[a96a9c7b]", "[ab44a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[aaf5929a]", "[b053ccd2]", "0x20")
+ self.bid32_to_binary32("4", "[ac866feb]", "[b4e27cf5]", "0x20")
+ self.bid32_to_binary32("4", "[ae1b16d6]", "[bae8b1ca]", "0x20")
+ self.bid32_to_binary32("4", "[aecd7c6d]", "[bd500000]", "0x00")
+ self.bid32_to_binary32("4", "[b200000f]", "[bfc00000]", "0x00")
+ self.bid32_to_binary32("4", "[b2800001]", "[bf800000]", "0x00")
+ self.bid32_to_binary32("4", "[b2800040]", "[c2800000]", "0x00")
+ self.bid32_to_binary32("4", "[b28003e7]", "[c479c000]", "0x00")
+ self.bid32_to_binary32("4", "[b28003e8]", "[c47a0000]", "0x00")
+ self.bid32_to_binary32("4", "[b2fffff8]", "[cafffff0]", "0x00")
+ self.bid32_to_binary32("4", "[b4b46daf]", "[d0ffff90]", "0x20")
+ self.bid32_to_binary32("4", "[b964ab72]", "[e064e57b]", "0x20")
+ self.bid32_to_binary32("4", "[bb281625]", "[e65e8658]", "0x20")
+ self.bid32_to_binary32("4", "[bcf57036]", "[ec1f289a]", "0x20")
+ self.bid32_to_binary32("4", "[be3f69ed]", "[f0a7dad8]", "0x20")
+ self.bid32_to_binary32("4", "[bfba1d8a]", "[f596398a]", "0x20")
+ self.bid32_to_binary32("4", "[c2b3ec47]", "[ff7ffffd]", "0x20")
+ self.bid32_to_binary32("4", "[c2b3ec48]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("4", "[e628c3f7]", "[80000001]", "0x30")
+ self.bid32_to_binary32("4", "[ebf887d3]", "[c11ff09c]", "0x20")
+ self.bid32_to_binary32("4", "[ec58962c]", "[c61c3faa]", "0x20")
+ self.bid32_to_binary32("4", "[ed98395b]", "[d6b57717]", "0x20")
+ self.bid32_to_binary32("4", "[ede25ddb]", "[db97c448]", "0x20")
+ self.bid32_to_binary32("4", "[f7f8967f]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("4", "[f8000000]", "[ff800000]", "0x00")
+ self.bid32_to_binary32("0", "[00000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("1", "[00000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("2", "[00000001]", "[00000001]", "0x30")
+ self.bid32_to_binary32("3", "[00000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("4", "[00000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("0", "[000f423f]", "[00000000]", "0x30")
+ self.bid32_to_binary32("1", "[000f423f]", "[00000000]", "0x30")
+ self.bid32_to_binary32("2", "[000f423f]", "[00000001]", "0x30")
+ self.bid32_to_binary32("3", "[000f423f]", "[00000000]", "0x30")
+ self.bid32_to_binary32("4", "[000f423f]", "[00000000]", "0x30")
+ self.bid32_to_binary32("0", "[03000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("1", "[03000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("2", "[03000001]", "[00000001]", "0x30")
+ self.bid32_to_binary32("3", "[03000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("4", "[03000001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("0", "[03800001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("1", "[03800001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("2", "[03800001]", "[00000001]", "0x30")
+ self.bid32_to_binary32("3", "[03800001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("4", "[03800001]", "[00000000]", "0x30")
+ self.bid32_to_binary32("0", "[191561d2]", "[00000001]", "0x30")
+ self.bid32_to_binary32("1", "[191561d2]", "[00000000]", "0x30")
+ self.bid32_to_binary32("2", "[191561d2]", "[00000001]", "0x30")
+ self.bid32_to_binary32("3", "[191561d2]", "[00000000]", "0x30")
+ self.bid32_to_binary32("4", "[191561d2]", "[00000001]", "0x30")
+ self.bid32_to_binary32("0", "[191561d3]", "[00000001]", "0x30")
+ self.bid32_to_binary32("1", "[191561d3]", "[00000001]", "0x30")
+ self.bid32_to_binary32("2", "[191561d3]", "[00000002]", "0x30")
+ self.bid32_to_binary32("3", "[191561d3]", "[00000001]", "0x30")
+ self.bid32_to_binary32("4", "[191561d3]", "[00000001]", "0x30")
+ self.bid32_to_binary32("0", "[1a11214b]", "[00000050]", "0x30")
+ self.bid32_to_binary32("1", "[1a11214b]", "[00000050]", "0x30")
+ self.bid32_to_binary32("2", "[1a11214b]", "[00000051]", "0x30")
+ self.bid32_to_binary32("3", "[1a11214b]", "[00000050]", "0x30")
+ self.bid32_to_binary32("4", "[1a11214b]", "[00000050]", "0x30")
+ self.bid32_to_binary32("0", "[1a836d0f]", "[000000a0]", "0x30")
+ self.bid32_to_binary32("1", "[1a836d0f]", "[000000a0]", "0x30")
+ self.bid32_to_binary32("2", "[1a836d0f]", "[000000a1]", "0x30")
+ self.bid32_to_binary32("3", "[1a836d0f]", "[000000a0]", "0x30")
+ self.bid32_to_binary32("4", "[1a836d0f]", "[000000a0]", "0x30")
+ self.bid32_to_binary32("0", "[1b0cc5a9]", "[00001755]", "0x30")
+ self.bid32_to_binary32("1", "[1b0cc5a9]", "[00001755]", "0x30")
+ self.bid32_to_binary32("2", "[1b0cc5a9]", "[00001756]", "0x30")
+ self.bid32_to_binary32("3", "[1b0cc5a9]", "[00001755]", "0x30")
+ self.bid32_to_binary32("4", "[1b0cc5a9]", "[00001755]", "0x30")
+ self.bid32_to_binary32("0", "[1b198b52]", "[00002eab]", "0x30")
+ self.bid32_to_binary32("1", "[1b198b52]", "[00002eaa]", "0x30")
+ self.bid32_to_binary32("2", "[1b198b52]", "[00002eab]", "0x30")
+ self.bid32_to_binary32("3", "[1b198b52]", "[00002eaa]", "0x30")
+ self.bid32_to_binary32("4", "[1b198b52]", "[00002eab]", "0x30")
+ self.bid32_to_binary32("0", "[1b8b47f1]", "[0000ce17]", "0x30")
+ self.bid32_to_binary32("1", "[1b8b47f1]", "[0000ce17]", "0x30")
+ self.bid32_to_binary32("2", "[1b8b47f1]", "[0000ce18]", "0x30")
+ self.bid32_to_binary32("3", "[1b8b47f1]", "[0000ce17]", "0x30")
+ self.bid32_to_binary32("4", "[1b8b47f1]", "[0000ce17]", "0x30")
+ self.bid32_to_binary32("0", "[1bf21b08]", "[00082492]", "0x30")
+ self.bid32_to_binary32("1", "[1bf21b08]", "[00082491]", "0x30")
+ self.bid32_to_binary32("2", "[1bf21b08]", "[00082492]", "0x30")
+ self.bid32_to_binary32("3", "[1bf21b08]", "[00082491]", "0x30")
+ self.bid32_to_binary32("4", "[1bf21b08]", "[00082492]", "0x30")
+ self.bid32_to_binary32("0", "[1c2cd76f]", "[001fffff]", "0x30")
+ self.bid32_to_binary32("1", "[1c2cd76f]", "[001fffff]", "0x30")
+ self.bid32_to_binary32("2", "[1c2cd76f]", "[00200000]", "0x30")
+ self.bid32_to_binary32("3", "[1c2cd76f]", "[001fffff]", "0x30")
+ self.bid32_to_binary32("4", "[1c2cd76f]", "[001fffff]", "0x30")
+ self.bid32_to_binary32("0", "[1c2cd770]", "[00200000]", "0x30")
+ self.bid32_to_binary32("1", "[1c2cd770]", "[00200000]", "0x30")
+ self.bid32_to_binary32("2", "[1c2cd770]", "[00200001]", "0x30")
+ self.bid32_to_binary32("3", "[1c2cd770]", "[00200000]", "0x30")
+ self.bid32_to_binary32("4", "[1c2cd770]", "[00200000]", "0x30")
+ self.bid32_to_binary32("0", "[1c59aedf]", "[003fffff]", "0x30")
+ self.bid32_to_binary32("1", "[1c59aedf]", "[003fffff]", "0x30")
+ self.bid32_to_binary32("2", "[1c59aedf]", "[00400000]", "0x30")
+ self.bid32_to_binary32("3", "[1c59aedf]", "[003fffff]", "0x30")
+ self.bid32_to_binary32("4", "[1c59aedf]", "[003fffff]", "0x30")
+ self.bid32_to_binary32("0", "[1c59aee0]", "[00400000]", "0x30")
+ self.bid32_to_binary32("1", "[1c59aee0]", "[00400000]", "0x30")
+ self.bid32_to_binary32("2", "[1c59aee0]", "[00400001]", "0x30")
+ self.bid32_to_binary32("3", "[1c59aee0]", "[00400000]", "0x30")
+ self.bid32_to_binary32("4", "[1c59aee0]", "[00400000]", "0x30")
+ self.bid32_to_binary32("0", "[1c8f350e]", "[006c85c4]", "0x30")
+ self.bid32_to_binary32("1", "[1c8f350e]", "[006c85c4]", "0x30")
+ self.bid32_to_binary32("2", "[1c8f350e]", "[006c85c5]", "0x30")
+ self.bid32_to_binary32("3", "[1c8f350e]", "[006c85c4]", "0x30")
+ self.bid32_to_binary32("4", "[1c8f350e]", "[006c85c4]", "0x30")
+ self.bid32_to_binary32("0", "[1c91efc6]", "[007ffffd]", "0x30")
+ self.bid32_to_binary32("1", "[1c91efc6]", "[007ffffd]", "0x30")
+ self.bid32_to_binary32("2", "[1c91efc6]", "[007ffffe]", "0x30")
+ self.bid32_to_binary32("3", "[1c91efc6]", "[007ffffd]", "0x30")
+ self.bid32_to_binary32("4", "[1c91efc6]", "[007ffffd]", "0x30")
+ self.bid32_to_binary32("0", "[1c91efc7]", "[00800005]", "0x20")
+ self.bid32_to_binary32("1", "[1c91efc7]", "[00800004]", "0x20")
+ self.bid32_to_binary32("2", "[1c91efc7]", "[00800005]", "0x20")
+ self.bid32_to_binary32("3", "[1c91efc7]", "[00800004]", "0x20")
+ self.bid32_to_binary32("4", "[1c91efc7]", "[00800005]", "0x20")
+ self.bid32_to_binary32("0", "[1c9e6a1c]", "[00d90b88]", "0x20")
+ self.bid32_to_binary32("1", "[1c9e6a1c]", "[00d90b88]", "0x20")
+ self.bid32_to_binary32("2", "[1c9e6a1c]", "[00d90b89]", "0x20")
+ self.bid32_to_binary32("3", "[1c9e6a1c]", "[00d90b88]", "0x20")
+ self.bid32_to_binary32("4", "[1c9e6a1c]", "[00d90b88]", "0x20")
+ self.bid32_to_binary32("0", "[1ca3df8c]", "[00fffffb]", "0x20")
+ self.bid32_to_binary32("1", "[1ca3df8c]", "[00fffffa]", "0x20")
+ self.bid32_to_binary32("2", "[1ca3df8c]", "[00fffffb]", "0x20")
+ self.bid32_to_binary32("3", "[1ca3df8c]", "[00fffffa]", "0x20")
+ self.bid32_to_binary32("4", "[1ca3df8c]", "[00fffffb]", "0x20")
+ self.bid32_to_binary32("0", "[1ca3df8d]", "[01000001]", "0x20")
+ self.bid32_to_binary32("1", "[1ca3df8d]", "[01000001]", "0x20")
+ self.bid32_to_binary32("2", "[1ca3df8d]", "[01000002]", "0x20")
+ self.bid32_to_binary32("3", "[1ca3df8d]", "[01000001]", "0x20")
+ self.bid32_to_binary32("4", "[1ca3df8d]", "[01000001]", "0x20")
+ self.bid32_to_binary32("0", "[1d042f3f]", "[01154f56]", "0x20")
+ self.bid32_to_binary32("1", "[1d042f3f]", "[01154f56]", "0x20")
+ self.bid32_to_binary32("2", "[1d042f3f]", "[01154f57]", "0x20")
+ self.bid32_to_binary32("3", "[1d042f3f]", "[01154f56]", "0x20")
+ self.bid32_to_binary32("4", "[1d042f3f]", "[01154f56]", "0x20")
+ self.bid32_to_binary32("0", "[1da9f7c8]", "[0469fa95]", "0x20")
+ self.bid32_to_binary32("1", "[1da9f7c8]", "[0469fa95]", "0x20")
+ self.bid32_to_binary32("2", "[1da9f7c8]", "[0469fa96]", "0x20")
+ self.bid32_to_binary32("3", "[1da9f7c8]", "[0469fa95]", "0x20")
+ self.bid32_to_binary32("4", "[1da9f7c8]", "[0469fa95]", "0x20")
+ self.bid32_to_binary32("0", "[1e09d7c7]", "[05093092]", "0x20")
+ self.bid32_to_binary32("1", "[1e09d7c7]", "[05093091]", "0x20")
+ self.bid32_to_binary32("2", "[1e09d7c7]", "[05093092]", "0x20")
+ self.bid32_to_binary32("3", "[1e09d7c7]", "[05093091]", "0x20")
+ self.bid32_to_binary32("4", "[1e09d7c7]", "[05093092]", "0x20")
+ self.bid32_to_binary32("0", "[1efe507f]", "[08898b53]", "0x20")
+ self.bid32_to_binary32("1", "[1efe507f]", "[08898b53]", "0x20")
+ self.bid32_to_binary32("2", "[1efe507f]", "[08898b54]", "0x20")
+ self.bid32_to_binary32("3", "[1efe507f]", "[08898b53]", "0x20")
+ self.bid32_to_binary32("4", "[1efe507f]", "[08898b53]", "0x20")
+ self.bid32_to_binary32("0", "[1f2c2ed4]", "[09708e01]", "0x20")
+ self.bid32_to_binary32("1", "[1f2c2ed4]", "[09708e01]", "0x20")
+ self.bid32_to_binary32("2", "[1f2c2ed4]", "[09708e02]", "0x20")
+ self.bid32_to_binary32("3", "[1f2c2ed4]", "[09708e01]", "0x20")
+ self.bid32_to_binary32("4", "[1f2c2ed4]", "[09708e01]", "0x20")
+ self.bid32_to_binary32("0", "[1f863bfd]", "[09a9b6ef]", "0x20")
+ self.bid32_to_binary32("1", "[1f863bfd]", "[09a9b6ee]", "0x20")
+ self.bid32_to_binary32("2", "[1f863bfd]", "[09a9b6ef]", "0x20")
+ self.bid32_to_binary32("3", "[1f863bfd]", "[09a9b6ee]", "0x20")
+ self.bid32_to_binary32("4", "[1f863bfd]", "[09a9b6ef]", "0x20")
+ self.bid32_to_binary32("0", "[1fd221ab]", "[0b8bbd52]", "0x20")
+ self.bid32_to_binary32("1", "[1fd221ab]", "[0b8bbd52]", "0x20")
+ self.bid32_to_binary32("2", "[1fd221ab]", "[0b8bbd53]", "0x20")
+ self.bid32_to_binary32("3", "[1fd221ab]", "[0b8bbd52]", "0x20")
+ self.bid32_to_binary32("4", "[1fd221ab]", "[0b8bbd52]", "0x20")
+ self.bid32_to_binary32("0", "[205221ab]", "[0d2eaca7]", "0x20")
+ self.bid32_to_binary32("1", "[205221ab]", "[0d2eaca6]", "0x20")
+ self.bid32_to_binary32("2", "[205221ab]", "[0d2eaca7]", "0x20")
+ self.bid32_to_binary32("3", "[205221ab]", "[0d2eaca6]", "0x20")
+ self.bid32_to_binary32("4", "[205221ab]", "[0d2eaca7]", "0x20")
+ self.bid32_to_binary32("0", "[2097ef8e]", "[0dfe8756]", "0x20")
+ self.bid32_to_binary32("1", "[2097ef8e]", "[0dfe8756]", "0x20")
+ self.bid32_to_binary32("2", "[2097ef8e]", "[0dfe8757]", "0x20")
+ self.bid32_to_binary32("3", "[2097ef8e]", "[0dfe8756]", "0x20")
+ self.bid32_to_binary32("4", "[2097ef8e]", "[0dfe8756]", "0x20")
+ self.bid32_to_binary32("0", "[2102b8e9]", "[0e10be19]", "0x20")
+ self.bid32_to_binary32("1", "[2102b8e9]", "[0e10be19]", "0x20")
+ self.bid32_to_binary32("2", "[2102b8e9]", "[0e10be1a]", "0x20")
+ self.bid32_to_binary32("3", "[2102b8e9]", "[0e10be19]", "0x20")
+ self.bid32_to_binary32("4", "[2102b8e9]", "[0e10be19]", "0x20")
+ self.bid32_to_binary32("0", "[21649f67]", "[10a73026]", "0x20")
+ self.bid32_to_binary32("1", "[21649f67]", "[10a73026]", "0x20")
+ self.bid32_to_binary32("2", "[21649f67]", "[10a73027]", "0x20")
+ self.bid32_to_binary32("3", "[21649f67]", "[10a73026]", "0x20")
+ self.bid32_to_binary32("4", "[21649f67]", "[10a73026]", "0x20")
+ self.bid32_to_binary32("0", "[21a324b9]", "[1191faec]", "0x20")
+ self.bid32_to_binary32("1", "[21a324b9]", "[1191faec]", "0x20")
+ self.bid32_to_binary32("2", "[21a324b9]", "[1191faed]", "0x20")
+ self.bid32_to_binary32("3", "[21a324b9]", "[1191faec]", "0x20")
+ self.bid32_to_binary32("4", "[21a324b9]", "[1191faec]", "0x20")
+ self.bid32_to_binary32("0", "[22061131]", "[11fc050c]", "0x20")
+ self.bid32_to_binary32("1", "[22061131]", "[11fc050c]", "0x20")
+ self.bid32_to_binary32("2", "[22061131]", "[11fc050d]", "0x20")
+ self.bid32_to_binary32("3", "[22061131]", "[11fc050c]", "0x20")
+ self.bid32_to_binary32("4", "[22061131]", "[11fc050c]", "0x20")
+ self.bid32_to_binary32("0", "[22eb6643]", "[15ae43fd]", "0x20")
+ self.bid32_to_binary32("1", "[22eb6643]", "[15ae43fd]", "0x20")
+ self.bid32_to_binary32("2", "[22eb6643]", "[15ae43fe]", "0x20")
+ self.bid32_to_binary32("3", "[22eb6643]", "[15ae43fd]", "0x20")
+ self.bid32_to_binary32("4", "[22eb6643]", "[15ae43fd]", "0x20")
+ self.bid32_to_binary32("0", "[2307d92a]", "[157eb11a]", "0x20")
+ self.bid32_to_binary32("1", "[2307d92a]", "[157eb119]", "0x20")
+ self.bid32_to_binary32("2", "[2307d92a]", "[157eb11a]", "0x20")
+ self.bid32_to_binary32("3", "[2307d92a]", "[157eb119]", "0x20")
+ self.bid32_to_binary32("4", "[2307d92a]", "[157eb11a]", "0x20")
+ self.bid32_to_binary32("0", "[238436b1]", "[16aaecec]", "0x20")
+ self.bid32_to_binary32("1", "[238436b1]", "[16aaecec]", "0x20")
+ self.bid32_to_binary32("2", "[238436b1]", "[16aaeced]", "0x20")
+ self.bid32_to_binary32("3", "[238436b1]", "[16aaecec]", "0x20")
+ self.bid32_to_binary32("4", "[238436b1]", "[16aaecec]", "0x20")
+ self.bid32_to_binary32("0", "[23d3dac5]", "[18d498ba]", "0x20")
+ self.bid32_to_binary32("1", "[23d3dac5]", "[18d498ba]", "0x20")
+ self.bid32_to_binary32("2", "[23d3dac5]", "[18d498bb]", "0x20")
+ self.bid32_to_binary32("3", "[23d3dac5]", "[18d498ba]", "0x20")
+ self.bid32_to_binary32("4", "[23d3dac5]", "[18d498ba]", "0x20")
+ self.bid32_to_binary32("0", "[244d1cdd]", "[1a74614b]", "0x20")
+ self.bid32_to_binary32("1", "[244d1cdd]", "[1a74614a]", "0x20")
+ self.bid32_to_binary32("2", "[244d1cdd]", "[1a74614b]", "0x20")
+ self.bid32_to_binary32("3", "[244d1cdd]", "[1a74614a]", "0x20")
+ self.bid32_to_binary32("4", "[244d1cdd]", "[1a74614b]", "0x20")
+ self.bid32_to_binary32("0", "[248b60a1]", "[1ab44872]", "0x20")
+ self.bid32_to_binary32("1", "[248b60a1]", "[1ab44872]", "0x20")
+ self.bid32_to_binary32("2", "[248b60a1]", "[1ab44873]", "0x20")
+ self.bid32_to_binary32("3", "[248b60a1]", "[1ab44872]", "0x20")
+ self.bid32_to_binary32("4", "[248b60a1]", "[1ab44872]", "0x20")
+ self.bid32_to_binary32("0", "[24ff421a]", "[1c7c0f94]", "0x20")
+ self.bid32_to_binary32("1", "[24ff421a]", "[1c7c0f93]", "0x20")
+ self.bid32_to_binary32("2", "[24ff421a]", "[1c7c0f94]", "0x20")
+ self.bid32_to_binary32("3", "[24ff421a]", "[1c7c0f93]", "0x20")
+ self.bid32_to_binary32("4", "[24ff421a]", "[1c7c0f94]", "0x20")
+ self.bid32_to_binary32("0", "[2603ee42]", "[1ef34c57]", "0x20")
+ self.bid32_to_binary32("1", "[2603ee42]", "[1ef34c57]", "0x20")
+ self.bid32_to_binary32("2", "[2603ee42]", "[1ef34c58]", "0x20")
+ self.bid32_to_binary32("3", "[2603ee42]", "[1ef34c57]", "0x20")
+ self.bid32_to_binary32("4", "[2603ee42]", "[1ef34c57]", "0x20")
+ self.bid32_to_binary32("0", "[2607dc84]", "[1f734c57]", "0x20")
+ self.bid32_to_binary32("1", "[2607dc84]", "[1f734c57]", "0x20")
+ self.bid32_to_binary32("2", "[2607dc84]", "[1f734c58]", "0x20")
+ self.bid32_to_binary32("3", "[2607dc84]", "[1f734c57]", "0x20")
+ self.bid32_to_binary32("4", "[2607dc84]", "[1f734c57]", "0x20")
+ self.bid32_to_binary32("0", "[26438f4f]", "[2102adfe]", "0x20")
+ self.bid32_to_binary32("1", "[26438f4f]", "[2102adfd]", "0x20")
+ self.bid32_to_binary32("2", "[26438f4f]", "[2102adfe]", "0x20")
+ self.bid32_to_binary32("3", "[26438f4f]", "[2102adfd]", "0x20")
+ self.bid32_to_binary32("4", "[26438f4f]", "[2102adfe]", "0x20")
+ self.bid32_to_binary32("0", "[26d88aaa]", "[22d614a1]", "0x20")
+ self.bid32_to_binary32("1", "[26d88aaa]", "[22d614a1]", "0x20")
+ self.bid32_to_binary32("2", "[26d88aaa]", "[22d614a2]", "0x20")
+ self.bid32_to_binary32("3", "[26d88aaa]", "[22d614a1]", "0x20")
+ self.bid32_to_binary32("4", "[26d88aaa]", "[22d614a1]", "0x20")
+ self.bid32_to_binary32("0", "[2714fb5b]", "[237da7b4]", "0x20")
+ self.bid32_to_binary32("1", "[2714fb5b]", "[237da7b4]", "0x20")
+ self.bid32_to_binary32("2", "[2714fb5b]", "[237da7b5]", "0x20")
+ self.bid32_to_binary32("3", "[2714fb5b]", "[237da7b4]", "0x20")
+ self.bid32_to_binary32("4", "[2714fb5b]", "[237da7b4]", "0x20")
+ self.bid32_to_binary32("0", "[278435d2]", "[23fe7e3d]", "0x20")
+ self.bid32_to_binary32("1", "[278435d2]", "[23fe7e3d]", "0x20")
+ self.bid32_to_binary32("2", "[278435d2]", "[23fe7e3e]", "0x20")
+ self.bid32_to_binary32("3", "[278435d2]", "[23fe7e3d]", "0x20")
+ self.bid32_to_binary32("4", "[278435d2]", "[23fe7e3d]", "0x20")
+ self.bid32_to_binary32("0", "[27e84da5]", "[264505fb]", "0x20")
+ self.bid32_to_binary32("1", "[27e84da5]", "[264505fa]", "0x20")
+ self.bid32_to_binary32("2", "[27e84da5]", "[264505fb]", "0x20")
+ self.bid32_to_binary32("3", "[27e84da5]", "[264505fa]", "0x20")
+ self.bid32_to_binary32("4", "[27e84da5]", "[264505fb]", "0x20")
+ self.bid32_to_binary32("0", "[28043c9d]", "[25a00f88]", "0x20")
+ self.bid32_to_binary32("1", "[28043c9d]", "[25a00f88]", "0x20")
+ self.bid32_to_binary32("2", "[28043c9d]", "[25a00f89]", "0x20")
+ self.bid32_to_binary32("3", "[28043c9d]", "[25a00f88]", "0x20")
+ self.bid32_to_binary32("4", "[28043c9d]", "[25a00f88]", "0x20")
+ self.bid32_to_binary32("0", "[28843c9d]", "[2748136a]", "0x20")
+ self.bid32_to_binary32("1", "[28843c9d]", "[2748136a]", "0x20")
+ self.bid32_to_binary32("2", "[28843c9d]", "[2748136b]", "0x20")
+ self.bid32_to_binary32("3", "[28843c9d]", "[2748136a]", "0x20")
+ self.bid32_to_binary32("4", "[28843c9d]", "[2748136a]", "0x20")
+ self.bid32_to_binary32("0", "[28c79466]", "[29534414]", "0x20")
+ self.bid32_to_binary32("1", "[28c79466]", "[29534413]", "0x20")
+ self.bid32_to_binary32("2", "[28c79466]", "[29534414]", "0x20")
+ self.bid32_to_binary32("3", "[28c79466]", "[29534413]", "0x20")
+ self.bid32_to_binary32("4", "[28c79466]", "[29534414]", "0x20")
+ self.bid32_to_binary32("0", "[296a9c7b]", "[2b44a9bd]", "0x20")
+ self.bid32_to_binary32("1", "[296a9c7b]", "[2b44a9bd]", "0x20")
+ self.bid32_to_binary32("2", "[296a9c7b]", "[2b44a9be]", "0x20")
+ self.bid32_to_binary32("3", "[296a9c7b]", "[2b44a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[296a9c7b]", "[2b44a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[2995527f]", "[2bc4a9bd]", "0x20")
+ self.bid32_to_binary32("1", "[2995527f]", "[2bc4a9bd]", "0x20")
+ self.bid32_to_binary32("2", "[2995527f]", "[2bc4a9be]", "0x20")
+ self.bid32_to_binary32("3", "[2995527f]", "[2bc4a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[2995527f]", "[2bc4a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[2a0443b3]", "[2c44a9bd]", "0x20")
+ self.bid32_to_binary32("1", "[2a0443b3]", "[2c44a9bd]", "0x20")
+ self.bid32_to_binary32("2", "[2a0443b3]", "[2c44a9be]", "0x20")
+ self.bid32_to_binary32("3", "[2a0443b3]", "[2c44a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[2a0443b3]", "[2c44a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[2a6090d9]", "[2e8b2a7f]", "0x20")
+ self.bid32_to_binary32("1", "[2a6090d9]", "[2e8b2a7f]", "0x20")
+ self.bid32_to_binary32("2", "[2a6090d9]", "[2e8b2a80]", "0x20")
+ self.bid32_to_binary32("3", "[2a6090d9]", "[2e8b2a7f]", "0x20")
+ self.bid32_to_binary32("4", "[2a6090d9]", "[2e8b2a7f]", "0x20")
+ self.bid32_to_binary32("0", "[2b057560]", "[2fc4a9bd]", "0x20")
+ self.bid32_to_binary32("1", "[2b057560]", "[2fc4a9bd]", "0x20")
+ self.bid32_to_binary32("2", "[2b057560]", "[2fc4a9be]", "0x20")
+ self.bid32_to_binary32("3", "[2b057560]", "[2fc4a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[2b057560]", "[2fc4a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[2b0aeac0]", "[3044a9bd]", "0x20")
+ self.bid32_to_binary32("1", "[2b0aeac0]", "[3044a9bd]", "0x20")
+ self.bid32_to_binary32("2", "[2b0aeac0]", "[3044a9be]", "0x20")
+ self.bid32_to_binary32("3", "[2b0aeac0]", "[3044a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[2b0aeac0]", "[3044a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[2b29fb19]", "[313d10a0]", "0x20")
+ self.bid32_to_binary32("1", "[2b29fb19]", "[313d10a0]", "0x20")
+ self.bid32_to_binary32("2", "[2b29fb19]", "[313d10a1]", "0x20")
+ self.bid32_to_binary32("3", "[2b29fb19]", "[313d10a0]", "0x20")
+ self.bid32_to_binary32("4", "[2b29fb19]", "[313d10a0]", "0x20")
+ self.bid32_to_binary32("0", "[2bfbf1bd]", "[33ae6fa3]", "0x20")
+ self.bid32_to_binary32("1", "[2bfbf1bd]", "[33ae6fa3]", "0x20")
+ self.bid32_to_binary32("2", "[2bfbf1bd]", "[33ae6fa4]", "0x20")
+ self.bid32_to_binary32("3", "[2bfbf1bd]", "[33ae6fa3]", "0x20")
+ self.bid32_to_binary32("4", "[2bfbf1bd]", "[33ae6fa3]", "0x20")
+ self.bid32_to_binary32("0", "[2c1097af]", "[33e984d5]", "0x20")
+ self.bid32_to_binary32("1", "[2c1097af]", "[33e984d5]", "0x20")
+ self.bid32_to_binary32("2", "[2c1097af]", "[33e984d6]", "0x20")
+ self.bid32_to_binary32("3", "[2c1097af]", "[33e984d5]", "0x20")
+ self.bid32_to_binary32("4", "[2c1097af]", "[33e984d5]", "0x20")
+ self.bid32_to_binary32("0", "[2c866feb]", "[34e27cf5]", "0x20")
+ self.bid32_to_binary32("1", "[2c866feb]", "[34e27cf5]", "0x20")
+ self.bid32_to_binary32("2", "[2c866feb]", "[34e27cf6]", "0x20")
+ self.bid32_to_binary32("3", "[2c866feb]", "[34e27cf5]", "0x20")
+ self.bid32_to_binary32("4", "[2c866feb]", "[34e27cf5]", "0x20")
+ self.bid32_to_binary32("0", "[2cef11e7]", "[36f43ed0]", "0x20")
+ self.bid32_to_binary32("1", "[2cef11e7]", "[36f43ed0]", "0x20")
+ self.bid32_to_binary32("2", "[2cef11e7]", "[36f43ed1]", "0x20")
+ self.bid32_to_binary32("3", "[2cef11e7]", "[36f43ed0]", "0x20")
+ self.bid32_to_binary32("4", "[2cef11e7]", "[36f43ed0]", "0x20")
+ self.bid32_to_binary32("0", "[2d856b1a]", "[3814f05c]", "0x20")
+ self.bid32_to_binary32("1", "[2d856b1a]", "[3814f05b]", "0x20")
+ self.bid32_to_binary32("2", "[2d856b1a]", "[3814f05c]", "0x20")
+ self.bid32_to_binary32("3", "[2d856b1a]", "[3814f05b]", "0x20")
+ self.bid32_to_binary32("4", "[2d856b1a]", "[3814f05c]", "0x20")
+ self.bid32_to_binary32("0", "[2d8ad634]", "[3894f05c]", "0x20")
+ self.bid32_to_binary32("1", "[2d8ad634]", "[3894f05b]", "0x20")
+ self.bid32_to_binary32("2", "[2d8ad634]", "[3894f05c]", "0x20")
+ self.bid32_to_binary32("3", "[2d8ad634]", "[3894f05b]", "0x20")
+ self.bid32_to_binary32("4", "[2d8ad634]", "[3894f05c]", "0x20")
+ self.bid32_to_binary32("0", "[2de1811c]", "[3a2782dc]", "0x20")
+ self.bid32_to_binary32("1", "[2de1811c]", "[3a2782dc]", "0x20")
+ self.bid32_to_binary32("2", "[2de1811c]", "[3a2782dd]", "0x20")
+ self.bid32_to_binary32("3", "[2de1811c]", "[3a2782dc]", "0x20")
+ self.bid32_to_binary32("4", "[2de1811c]", "[3a2782dc]", "0x20")
+ self.bid32_to_binary32("0", "[2ead8bfc]", "[3cf48710]", "0x20")
+ self.bid32_to_binary32("1", "[2ead8bfc]", "[3cf48710]", "0x20")
+ self.bid32_to_binary32("2", "[2ead8bfc]", "[3cf48711]", "0x20")
+ self.bid32_to_binary32("3", "[2ead8bfc]", "[3cf48710]", "0x20")
+ self.bid32_to_binary32("4", "[2ead8bfc]", "[3cf48710]", "0x20")
+ self.bid32_to_binary32("0", "[2ecd7c6d]", "[3d500000]", "0x00")
+ self.bid32_to_binary32("1", "[2ecd7c6d]", "[3d500000]", "0x00")
+ self.bid32_to_binary32("2", "[2ecd7c6d]", "[3d500000]", "0x00")
+ self.bid32_to_binary32("3", "[2ecd7c6d]", "[3d500000]", "0x00")
+ self.bid32_to_binary32("4", "[2ecd7c6d]", "[3d500000]", "0x00")
+ self.bid32_to_binary32("0", "[2f089789]", "[3d66a352]", "0x20")
+ self.bid32_to_binary32("1", "[2f089789]", "[3d66a352]", "0x20")
+ self.bid32_to_binary32("2", "[2f089789]", "[3d66a353]", "0x20")
+ self.bid32_to_binary32("3", "[2f089789]", "[3d66a352]", "0x20")
+ self.bid32_to_binary32("4", "[2f089789]", "[3d66a352]", "0x20")
+ self.bid32_to_binary32("0", "[3030d188]", "[41fff30e]", "0x20")
+ self.bid32_to_binary32("1", "[3030d188]", "[41fff30e]", "0x20")
+ self.bid32_to_binary32("2", "[3030d188]", "[41fff30f]", "0x20")
+ self.bid32_to_binary32("3", "[3030d188]", "[41fff30e]", "0x20")
+ self.bid32_to_binary32("4", "[3030d188]", "[41fff30e]", "0x20")
+ self.bid32_to_binary32("0", "[3089c3f9]", "[427fff48]", "0x20")
+ self.bid32_to_binary32("1", "[3089c3f9]", "[427fff48]", "0x20")
+ self.bid32_to_binary32("2", "[3089c3f9]", "[427fff49]", "0x20")
+ self.bid32_to_binary32("3", "[3089c3f9]", "[427fff48]", "0x20")
+ self.bid32_to_binary32("4", "[3089c3f9]", "[427fff48]", "0x20")
+ self.bid32_to_binary32("0", "[317cffb7]", "[45ffff6a]", "0x20")
+ self.bid32_to_binary32("1", "[317cffb7]", "[45ffff6a]", "0x20")
+ self.bid32_to_binary32("2", "[317cffb7]", "[45ffff6b]", "0x20")
+ self.bid32_to_binary32("3", "[317cffb7]", "[45ffff6a]", "0x20")
+ self.bid32_to_binary32("4", "[317cffb7]", "[45ffff6a]", "0x20")
+ self.bid32_to_binary32("0", "[3198ffe9]", "[467fff14]", "0x20")
+ self.bid32_to_binary32("1", "[3198ffe9]", "[467fff14]", "0x20")
+ self.bid32_to_binary32("2", "[3198ffe9]", "[467fff15]", "0x20")
+ self.bid32_to_binary32("3", "[3198ffe9]", "[467fff14]", "0x20")
+ self.bid32_to_binary32("4", "[3198ffe9]", "[467fff14]", "0x20")
+ self.bid32_to_binary32("0", "[3200000f]", "[3fc00000]", "0x00")
+ self.bid32_to_binary32("1", "[3200000f]", "[3fc00000]", "0x00")
+ self.bid32_to_binary32("2", "[3200000f]", "[3fc00000]", "0x00")
+ self.bid32_to_binary32("3", "[3200000f]", "[3fc00000]", "0x00")
+ self.bid32_to_binary32("4", "[3200000f]", "[3fc00000]", "0x00")
+ self.bid32_to_binary32("0", "[3204fffd]", "[46ffff66]", "0x20")
+ self.bid32_to_binary32("1", "[3204fffd]", "[46ffff66]", "0x20")
+ self.bid32_to_binary32("2", "[3204fffd]", "[46ffff67]", "0x20")
+ self.bid32_to_binary32("3", "[3204fffd]", "[46ffff66]", "0x20")
+ self.bid32_to_binary32("4", "[3204fffd]", "[46ffff66]", "0x20")
+ self.bid32_to_binary32("0", "[32800000]", "[00000000]", "0x00")
+ self.bid32_to_binary32("1", "[32800000]", "[00000000]", "0x00")
+ self.bid32_to_binary32("2", "[32800000]", "[00000000]", "0x00")
+ self.bid32_to_binary32("3", "[32800000]", "[00000000]", "0x00")
+ self.bid32_to_binary32("4", "[32800000]", "[00000000]", "0x00")
+ self.bid32_to_binary32("0", "[32800001]", "[3f800000]", "0x00")
+ self.bid32_to_binary32("1", "[32800001]", "[3f800000]", "0x00")
+ self.bid32_to_binary32("2", "[32800001]", "[3f800000]", "0x00")
+ self.bid32_to_binary32("3", "[32800001]", "[3f800000]", "0x00")
+ self.bid32_to_binary32("4", "[32800001]", "[3f800000]", "0x00")
+ self.bid32_to_binary32("0", "[32800040]", "[42800000]", "0x00")
+ self.bid32_to_binary32("1", "[32800040]", "[42800000]", "0x00")
+ self.bid32_to_binary32("2", "[32800040]", "[42800000]", "0x00")
+ self.bid32_to_binary32("3", "[32800040]", "[42800000]", "0x00")
+ self.bid32_to_binary32("4", "[32800040]", "[42800000]", "0x00")
+ self.bid32_to_binary32("0", "[328003e7]", "[4479c000]", "0x00")
+ self.bid32_to_binary32("1", "[328003e7]", "[4479c000]", "0x00")
+ self.bid32_to_binary32("2", "[328003e7]", "[4479c000]", "0x00")
+ self.bid32_to_binary32("3", "[328003e7]", "[4479c000]", "0x00")
+ self.bid32_to_binary32("4", "[328003e7]", "[4479c000]", "0x00")
+ self.bid32_to_binary32("0", "[328003e8]", "[447a0000]", "0x00")
+ self.bid32_to_binary32("1", "[328003e8]", "[447a0000]", "0x00")
+ self.bid32_to_binary32("2", "[328003e8]", "[447a0000]", "0x00")
+ self.bid32_to_binary32("3", "[328003e8]", "[447a0000]", "0x00")
+ self.bid32_to_binary32("4", "[328003e8]", "[447a0000]", "0x00")
+ self.bid32_to_binary32("0", "[32bfffff]", "[4a7ffffc]", "0x00")
+ self.bid32_to_binary32("1", "[32bfffff]", "[4a7ffffc]", "0x00")
+ self.bid32_to_binary32("2", "[32bfffff]", "[4a7ffffc]", "0x00")
+ self.bid32_to_binary32("3", "[32bfffff]", "[4a7ffffc]", "0x00")
+ self.bid32_to_binary32("4", "[32bfffff]", "[4a7ffffc]", "0x00")
+ self.bid32_to_binary32("0", "[32fffff8]", "[4afffff0]", "0x00")
+ self.bid32_to_binary32("1", "[32fffff8]", "[4afffff0]", "0x00")
+ self.bid32_to_binary32("2", "[32fffff8]", "[4afffff0]", "0x00")
+ self.bid32_to_binary32("3", "[32fffff8]", "[4afffff0]", "0x00")
+ self.bid32_to_binary32("4", "[32fffff8]", "[4afffff0]", "0x00")
+ self.bid32_to_binary32("0", "[3420c49b]", "[4efffffb]", "0x20")
+ self.bid32_to_binary32("1", "[3420c49b]", "[4efffffa]", "0x20")
+ self.bid32_to_binary32("2", "[3420c49b]", "[4efffffb]", "0x20")
+ self.bid32_to_binary32("3", "[3420c49b]", "[4efffffa]", "0x20")
+ self.bid32_to_binary32("4", "[3420c49b]", "[4efffffb]", "0x20")
+ self.bid32_to_binary32("0", "[34418926]", "[4f7fffbc]", "0x20")
+ self.bid32_to_binary32("1", "[34418926]", "[4f7fffbc]", "0x20")
+ self.bid32_to_binary32("2", "[34418926]", "[4f7fffbd]", "0x20")
+ self.bid32_to_binary32("3", "[34418926]", "[4f7fffbc]", "0x20")
+ self.bid32_to_binary32("4", "[34418926]", "[4f7fffbc]", "0x20")
+ self.bid32_to_binary32("0", "[3553e1e3]", "[52fffd1a]", "0x20")
+ self.bid32_to_binary32("1", "[3553e1e3]", "[52fffd19]", "0x20")
+ self.bid32_to_binary32("2", "[3553e1e3]", "[52fffd1a]", "0x20")
+ self.bid32_to_binary32("3", "[3553e1e3]", "[52fffd19]", "0x20")
+ self.bid32_to_binary32("4", "[3553e1e3]", "[52fffd1a]", "0x20")
+ self.bid32_to_binary32("0", "[3590c6c7]", "[537ffd1a]", "0x20")
+ self.bid32_to_binary32("1", "[3590c6c7]", "[537ffd19]", "0x20")
+ self.bid32_to_binary32("2", "[3590c6c7]", "[537ffd1a]", "0x20")
+ self.bid32_to_binary32("3", "[3590c6c7]", "[537ffd19]", "0x20")
+ self.bid32_to_binary32("4", "[3590c6c7]", "[537ffd1a]", "0x20")
+ self.bid32_to_binary32("0", "[36aaf1df]", "[577ff894]", "0x20")
+ self.bid32_to_binary32("1", "[36aaf1df]", "[577ff893]", "0x20")
+ self.bid32_to_binary32("2", "[36aaf1df]", "[577ff894]", "0x20")
+ self.bid32_to_binary32("3", "[36aaf1df]", "[577ff893]", "0x20")
+ self.bid32_to_binary32("4", "[36aaf1df]", "[577ff894]", "0x20")
+ self.bid32_to_binary32("0", "[36d3e3be]", "[57fa02b3]", "0x20")
+ self.bid32_to_binary32("1", "[36d3e3be]", "[57fa02b2]", "0x20")
+ self.bid32_to_binary32("2", "[36d3e3be]", "[57fa02b3]", "0x20")
+ self.bid32_to_binary32("3", "[36d3e3be]", "[57fa02b2]", "0x20")
+ self.bid32_to_binary32("4", "[36d3e3be]", "[57fa02b3]", "0x20")
+ self.bid32_to_binary32("0", "[37b0fa48]", "[5ae411ec]", "0x20")
+ self.bid32_to_binary32("1", "[37b0fa48]", "[5ae411ec]", "0x20")
+ self.bid32_to_binary32("2", "[37b0fa48]", "[5ae411ed]", "0x20")
+ self.bid32_to_binary32("3", "[37b0fa48]", "[5ae411ec]", "0x20")
+ self.bid32_to_binary32("4", "[37b0fa48]", "[5ae411ec]", "0x20")
+ self.bid32_to_binary32("0", "[37e9e0b7]", "[5b768415]", "0x20")
+ self.bid32_to_binary32("1", "[37e9e0b7]", "[5b768414]", "0x20")
+ self.bid32_to_binary32("2", "[37e9e0b7]", "[5b768415]", "0x20")
+ self.bid32_to_binary32("3", "[37e9e0b7]", "[5b768414]", "0x20")
+ self.bid32_to_binary32("4", "[37e9e0b7]", "[5b768415]", "0x20")
+ self.bid32_to_binary32("0", "[38113975]", "[5bc884d6]", "0x20")
+ self.bid32_to_binary32("1", "[38113975]", "[5bc884d6]", "0x20")
+ self.bid32_to_binary32("2", "[38113975]", "[5bc884d7]", "0x20")
+ self.bid32_to_binary32("3", "[38113975]", "[5bc884d6]", "0x20")
+ self.bid32_to_binary32("4", "[38113975]", "[5bc884d6]", "0x20")
+ self.bid32_to_binary32("0", "[38f2b19b]", "[5ed0a073]", "0x20")
+ self.bid32_to_binary32("1", "[38f2b19b]", "[5ed0a073]", "0x20")
+ self.bid32_to_binary32("2", "[38f2b19b]", "[5ed0a074]", "0x20")
+ self.bid32_to_binary32("3", "[38f2b19b]", "[5ed0a073]", "0x20")
+ self.bid32_to_binary32("4", "[38f2b19b]", "[5ed0a073]", "0x20")
+ self.bid32_to_binary32("0", "[393255b9]", "[5fe4e57b]", "0x20")
+ self.bid32_to_binary32("1", "[393255b9]", "[5fe4e57b]", "0x20")
+ self.bid32_to_binary32("2", "[393255b9]", "[5fe4e57c]", "0x20")
+ self.bid32_to_binary32("3", "[393255b9]", "[5fe4e57b]", "0x20")
+ self.bid32_to_binary32("4", "[393255b9]", "[5fe4e57b]", "0x20")
+ self.bid32_to_binary32("0", "[3964ab72]", "[6064e57b]", "0x20")
+ self.bid32_to_binary32("1", "[3964ab72]", "[6064e57b]", "0x20")
+ self.bid32_to_binary32("2", "[3964ab72]", "[6064e57c]", "0x20")
+ self.bid32_to_binary32("3", "[3964ab72]", "[6064e57b]", "0x20")
+ self.bid32_to_binary32("4", "[3964ab72]", "[6064e57b]", "0x20")
+ self.bid32_to_binary32("0", "[39f35a71]", "[6223ed48]", "0x20")
+ self.bid32_to_binary32("1", "[39f35a71]", "[6223ed48]", "0x20")
+ self.bid32_to_binary32("2", "[39f35a71]", "[6223ed49]", "0x20")
+ self.bid32_to_binary32("3", "[39f35a71]", "[6223ed48]", "0x20")
+ self.bid32_to_binary32("4", "[39f35a71]", "[6223ed48]", "0x20")
+ self.bid32_to_binary32("0", "[3a17a214]", "[62a7ec64]", "0x20")
+ self.bid32_to_binary32("1", "[3a17a214]", "[62a7ec63]", "0x20")
+ self.bid32_to_binary32("2", "[3a17a214]", "[62a7ec64]", "0x20")
+ self.bid32_to_binary32("3", "[3a17a214]", "[62a7ec63]", "0x20")
+ self.bid32_to_binary32("4", "[3a17a214]", "[62a7ec64]", "0x20")
+ self.bid32_to_binary32("0", "[3a97a214]", "[6451e77d]", "0x20")
+ self.bid32_to_binary32("1", "[3a97a214]", "[6451e77c]", "0x20")
+ self.bid32_to_binary32("2", "[3a97a214]", "[6451e77d]", "0x20")
+ self.bid32_to_binary32("3", "[3a97a214]", "[6451e77c]", "0x20")
+ self.bid32_to_binary32("4", "[3a97a214]", "[6451e77d]", "0x20")
+ self.bid32_to_binary32("0", "[3bacc6f7]", "[681b5a26]", "0x20")
+ self.bid32_to_binary32("1", "[3bacc6f7]", "[681b5a25]", "0x20")
+ self.bid32_to_binary32("2", "[3bacc6f7]", "[681b5a26]", "0x20")
+ self.bid32_to_binary32("3", "[3bacc6f7]", "[681b5a25]", "0x20")
+ self.bid32_to_binary32("4", "[3bacc6f7]", "[681b5a26]", "0x20")
+ self.bid32_to_binary32("0", "[3be33922]", "[68ac1ff1]", "0x20")
+ self.bid32_to_binary32("1", "[3be33922]", "[68ac1ff0]", "0x20")
+ self.bid32_to_binary32("2", "[3be33922]", "[68ac1ff1]", "0x20")
+ self.bid32_to_binary32("3", "[3be33922]", "[68ac1ff0]", "0x20")
+ self.bid32_to_binary32("4", "[3be33922]", "[68ac1ff1]", "0x20")
+ self.bid32_to_binary32("0", "[3c409f31]", "[6a0c2054]", "0x20")
+ self.bid32_to_binary32("1", "[3c409f31]", "[6a0c2053]", "0x20")
+ self.bid32_to_binary32("2", "[3c409f31]", "[6a0c2054]", "0x20")
+ self.bid32_to_binary32("3", "[3c409f31]", "[6a0c2053]", "0x20")
+ self.bid32_to_binary32("4", "[3c409f31]", "[6a0c2054]", "0x20")
+ self.bid32_to_binary32("0", "[3cf57036]", "[6c1f289a]", "0x20")
+ self.bid32_to_binary32("1", "[3cf57036]", "[6c1f289a]", "0x20")
+ self.bid32_to_binary32("2", "[3cf57036]", "[6c1f289b]", "0x20")
+ self.bid32_to_binary32("3", "[3cf57036]", "[6c1f289a]", "0x20")
+ self.bid32_to_binary32("4", "[3cf57036]", "[6c1f289a]", "0x20")
+ self.bid32_to_binary32("0", "[3d24697b]", "[6cf6bccf]", "0x20")
+ self.bid32_to_binary32("1", "[3d24697b]", "[6cf6bcce]", "0x20")
+ self.bid32_to_binary32("2", "[3d24697b]", "[6cf6bccf]", "0x20")
+ self.bid32_to_binary32("3", "[3d24697b]", "[6cf6bcce]", "0x20")
+ self.bid32_to_binary32("4", "[3d24697b]", "[6cf6bccf]", "0x20")
+ self.bid32_to_binary32("0", "[3d4ad0e4]", "[6d7d7c85]", "0x20")
+ self.bid32_to_binary32("1", "[3d4ad0e4]", "[6d7d7c84]", "0x20")
+ self.bid32_to_binary32("2", "[3d4ad0e4]", "[6d7d7c85]", "0x20")
+ self.bid32_to_binary32("3", "[3d4ad0e4]", "[6d7d7c84]", "0x20")
+ self.bid32_to_binary32("4", "[3d4ad0e4]", "[6d7d7c85]", "0x20")
+ self.bid32_to_binary32("0", "[3e2b67fc]", "[7065ca5b]", "0x20")
+ self.bid32_to_binary32("1", "[3e2b67fc]", "[7065ca5a]", "0x20")
+ self.bid32_to_binary32("2", "[3e2b67fc]", "[7065ca5b]", "0x20")
+ self.bid32_to_binary32("3", "[3e2b67fc]", "[7065ca5a]", "0x20")
+ self.bid32_to_binary32("4", "[3e2b67fc]", "[7065ca5b]", "0x20")
+ self.bid32_to_binary32("0", "[3e7ed3da]", "[7127dad8]", "0x20")
+ self.bid32_to_binary32("1", "[3e7ed3da]", "[7127dad7]", "0x20")
+ self.bid32_to_binary32("2", "[3e7ed3da]", "[7127dad8]", "0x20")
+ self.bid32_to_binary32("3", "[3e7ed3da]", "[7127dad7]", "0x20")
+ self.bid32_to_binary32("4", "[3e7ed3da]", "[7127dad8]", "0x20")
+ self.bid32_to_binary32("0", "[3f741223]", "[74700765]", "0x20")
+ self.bid32_to_binary32("1", "[3f741223]", "[74700765]", "0x20")
+ self.bid32_to_binary32("2", "[3f741223]", "[74700766]", "0x20")
+ self.bid32_to_binary32("3", "[3f741223]", "[74700765]", "0x20")
+ self.bid32_to_binary32("4", "[3f741223]", "[74700765]", "0x20")
+ self.bid32_to_binary32("0", "[3fa4483a]", "[753b9302]", "0x20")
+ self.bid32_to_binary32("1", "[3fa4483a]", "[753b9301]", "0x20")
+ self.bid32_to_binary32("2", "[3fa4483a]", "[753b9302]", "0x20")
+ self.bid32_to_binary32("3", "[3fa4483a]", "[753b9301]", "0x20")
+ self.bid32_to_binary32("4", "[3fa4483a]", "[753b9302]", "0x20")
+ self.bid32_to_binary32("0", "[3fba1d8a]", "[7596398a]", "0x20")
+ self.bid32_to_binary32("1", "[3fba1d8a]", "[75963989]", "0x20")
+ self.bid32_to_binary32("2", "[3fba1d8a]", "[7596398a]", "0x20")
+ self.bid32_to_binary32("3", "[3fba1d8a]", "[75963989]", "0x20")
+ self.bid32_to_binary32("4", "[3fba1d8a]", "[7596398a]", "0x20")
+ self.bid32_to_binary32("0", "[4072a86f]", "[77b93d6a]", "0x20")
+ self.bid32_to_binary32("1", "[4072a86f]", "[77b93d6a]", "0x20")
+ self.bid32_to_binary32("2", "[4072a86f]", "[77b93d6b]", "0x20")
+ self.bid32_to_binary32("3", "[4072a86f]", "[77b93d6a]", "0x20")
+ self.bid32_to_binary32("4", "[4072a86f]", "[77b93d6a]", "0x20")
+ self.bid32_to_binary32("0", "[40b3a48a]", "[78d09555]", "0x20")
+ self.bid32_to_binary32("1", "[40b3a48a]", "[78d09554]", "0x20")
+ self.bid32_to_binary32("2", "[40b3a48a]", "[78d09555]", "0x20")
+ self.bid32_to_binary32("3", "[40b3a48a]", "[78d09554]", "0x20")
+ self.bid32_to_binary32("4", "[40b3a48a]", "[78d09555]", "0x20")
+ self.bid32_to_binary32("0", "[40fe07ca]", "[797e8434]", "0x20")
+ self.bid32_to_binary32("1", "[40fe07ca]", "[797e8434]", "0x20")
+ self.bid32_to_binary32("2", "[40fe07ca]", "[797e8435]", "0x20")
+ self.bid32_to_binary32("3", "[40fe07ca]", "[797e8434]", "0x20")
+ self.bid32_to_binary32("4", "[40fe07ca]", "[797e8434]", "0x20")
+ self.bid32_to_binary32("0", "[412ff378]", "[7a721748]", "0x20")
+ self.bid32_to_binary32("1", "[412ff378]", "[7a721747]", "0x20")
+ self.bid32_to_binary32("2", "[412ff378]", "[7a721748]", "0x20")
+ self.bid32_to_binary32("3", "[412ff378]", "[7a721747]", "0x20")
+ self.bid32_to_binary32("4", "[412ff378]", "[7a721748]", "0x20")
+ self.bid32_to_binary32("0", "[41ea4c5d]", "[7ca7b58a]", "0x20")
+ self.bid32_to_binary32("1", "[41ea4c5d]", "[7ca7b589]", "0x20")
+ self.bid32_to_binary32("2", "[41ea4c5d]", "[7ca7b58a]", "0x20")
+ self.bid32_to_binary32("3", "[41ea4c5d]", "[7ca7b589]", "0x20")
+ self.bid32_to_binary32("4", "[41ea4c5d]", "[7ca7b58a]", "0x20")
+ self.bid32_to_binary32("0", "[42154279]", "[7d27b58a]", "0x20")
+ self.bid32_to_binary32("1", "[42154279]", "[7d27b589]", "0x20")
+ self.bid32_to_binary32("2", "[42154279]", "[7d27b58a]", "0x20")
+ self.bid32_to_binary32("3", "[42154279]", "[7d27b589]", "0x20")
+ self.bid32_to_binary32("4", "[42154279]", "[7d27b58a]", "0x20")
+ self.bid32_to_binary32("0", "[42b3ec47]", "[7f7ffffd]", "0x20")
+ self.bid32_to_binary32("1", "[42b3ec47]", "[7f7ffffc]", "0x20")
+ self.bid32_to_binary32("2", "[42b3ec47]", "[7f7ffffd]", "0x20")
+ self.bid32_to_binary32("3", "[42b3ec47]", "[7f7ffffc]", "0x20")
+ self.bid32_to_binary32("4", "[42b3ec47]", "[7f7ffffd]", "0x20")
+ self.bid32_to_binary32("0", "[42b3ec48]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("1", "[42b3ec48]", "[7f7fffff]", "0x28")
+ self.bid32_to_binary32("2", "[42b3ec48]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("3", "[42b3ec48]", "[7f7fffff]", "0x28")
+ self.bid32_to_binary32("4", "[42b3ec48]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("0", "[6628c3f7]", "[00000001]", "0x30")
+ self.bid32_to_binary32("1", "[6628c3f7]", "[00000000]", "0x30")
+ self.bid32_to_binary32("2", "[6628c3f7]", "[00000001]", "0x30")
+ self.bid32_to_binary32("3", "[6628c3f7]", "[00000000]", "0x30")
+ self.bid32_to_binary32("4", "[6628c3f7]", "[00000001]", "0x30")
+ self.bid32_to_binary32("0", "[6648c3f7]", "[00000006]", "0x30")
+ self.bid32_to_binary32("1", "[6648c3f7]", "[00000006]", "0x30")
+ self.bid32_to_binary32("2", "[6648c3f7]", "[00000007]", "0x30")
+ self.bid32_to_binary32("3", "[6648c3f7]", "[00000006]", "0x30")
+ self.bid32_to_binary32("4", "[6648c3f7]", "[00000006]", "0x30")
+ self.bid32_to_binary32("0", "[6668c3f7]", "[00000040]", "0x30")
+ self.bid32_to_binary32("1", "[6668c3f7]", "[0000003f]", "0x30")
+ self.bid32_to_binary32("2", "[6668c3f7]", "[00000040]", "0x30")
+ self.bid32_to_binary32("3", "[6668c3f7]", "[0000003f]", "0x30")
+ self.bid32_to_binary32("4", "[6668c3f7]", "[00000040]", "0x30")
+ self.bid32_to_binary32("0", "[6757de10]", "[03a9567d]", "0x20")
+ self.bid32_to_binary32("1", "[6757de10]", "[03a9567d]", "0x20")
+ self.bid32_to_binary32("2", "[6757de10]", "[03a9567e]", "0x20")
+ self.bid32_to_binary32("3", "[6757de10]", "[03a9567d]", "0x20")
+ self.bid32_to_binary32("4", "[6757de10]", "[03a9567d]", "0x20")
+ self.bid32_to_binary32("0", "[67980f56]", "[0704767e]", "0x20")
+ self.bid32_to_binary32("1", "[67980f56]", "[0704767d]", "0x20")
+ self.bid32_to_binary32("2", "[67980f56]", "[0704767e]", "0x20")
+ self.bid32_to_binary32("3", "[67980f56]", "[0704767d]", "0x20")
+ self.bid32_to_binary32("4", "[67980f56]", "[0704767e]", "0x20")
+ self.bid32_to_binary32("0", "[6892a415]", "[143e59d0]", "0x20")
+ self.bid32_to_binary32("1", "[6892a415]", "[143e59cf]", "0x20")
+ self.bid32_to_binary32("2", "[6892a415]", "[143e59d0]", "0x20")
+ self.bid32_to_binary32("3", "[6892a415]", "[143e59cf]", "0x20")
+ self.bid32_to_binary32("4", "[6892a415]", "[143e59d0]", "0x20")
+ self.bid32_to_binary32("0", "[69569a05]", "[1e3a6f90]", "0x20")
+ self.bid32_to_binary32("1", "[69569a05]", "[1e3a6f90]", "0x20")
+ self.bid32_to_binary32("2", "[69569a05]", "[1e3a6f91]", "0x20")
+ self.bid32_to_binary32("3", "[69569a05]", "[1e3a6f90]", "0x20")
+ self.bid32_to_binary32("4", "[69569a05]", "[1e3a6f90]", "0x20")
+ self.bid32_to_binary32("0", "[6b8cea0c]", "[3c174e36]", "0x20")
+ self.bid32_to_binary32("1", "[6b8cea0c]", "[3c174e36]", "0x20")
+ self.bid32_to_binary32("2", "[6b8cea0c]", "[3c174e37]", "0x20")
+ self.bid32_to_binary32("3", "[6b8cea0c]", "[3c174e36]", "0x20")
+ self.bid32_to_binary32("4", "[6b8cea0c]", "[3c174e36]", "0x20")
+ self.bid32_to_binary32("0", "[6bd7b98a]", "[3f7e8d4a]", "0x20")
+ self.bid32_to_binary32("1", "[6bd7b98a]", "[3f7e8d49]", "0x20")
+ self.bid32_to_binary32("2", "[6bd7b98a]", "[3f7e8d4a]", "0x20")
+ self.bid32_to_binary32("3", "[6bd7b98a]", "[3f7e8d49]", "0x20")
+ self.bid32_to_binary32("4", "[6bd7b98a]", "[3f7e8d4a]", "0x20")
+ self.bid32_to_binary32("0", "[6bf887d3]", "[411ff09c]", "0x20")
+ self.bid32_to_binary32("1", "[6bf887d3]", "[411ff09c]", "0x20")
+ self.bid32_to_binary32("2", "[6bf887d3]", "[411ff09d]", "0x20")
+ self.bid32_to_binary32("3", "[6bf887d3]", "[411ff09c]", "0x20")
+ self.bid32_to_binary32("4", "[6bf887d3]", "[411ff09c]", "0x20")
+ self.bid32_to_binary32("0", "[6c3894c0]", "[4479fd22]", "0x20")
+ self.bid32_to_binary32("1", "[6c3894c0]", "[4479fd21]", "0x20")
+ self.bid32_to_binary32("2", "[6c3894c0]", "[4479fd22]", "0x20")
+ self.bid32_to_binary32("3", "[6c3894c0]", "[4479fd21]", "0x20")
+ self.bid32_to_binary32("4", "[6c3894c0]", "[4479fd22]", "0x20")
+ self.bid32_to_binary32("0", "[6c98967e]", "[497423fd]", "0x20")
+ self.bid32_to_binary32("1", "[6c98967e]", "[497423fc]", "0x20")
+ self.bid32_to_binary32("2", "[6c98967e]", "[497423fd]", "0x20")
+ self.bid32_to_binary32("3", "[6c98967e]", "[497423fc]", "0x20")
+ self.bid32_to_binary32("4", "[6c98967e]", "[497423fd]", "0x20")
+ self.bid32_to_binary32("0", "[6cd8967b]", "[4cbebc1a]", "0x20")
+ self.bid32_to_binary32("1", "[6cd8967b]", "[4cbebc19]", "0x20")
+ self.bid32_to_binary32("2", "[6cd8967b]", "[4cbebc1a]", "0x20")
+ self.bid32_to_binary32("3", "[6cd8967b]", "[4cbebc19]", "0x20")
+ self.bid32_to_binary32("4", "[6cd8967b]", "[4cbebc1a]", "0x20")
+ self.bid32_to_binary32("0", "[6cf8967f]", "[4e6e6b26]", "0x20")
+ self.bid32_to_binary32("1", "[6cf8967f]", "[4e6e6b26]", "0x20")
+ self.bid32_to_binary32("2", "[6cf8967f]", "[4e6e6b27]", "0x20")
+ self.bid32_to_binary32("3", "[6cf8967f]", "[4e6e6b26]", "0x20")
+ self.bid32_to_binary32("4", "[6cf8967f]", "[4e6e6b26]", "0x20")
+ self.bid32_to_binary32("0", "[6d38956f]", "[51ba426a]", "0x20")
+ self.bid32_to_binary32("1", "[6d38956f]", "[51ba4269]", "0x20")
+ self.bid32_to_binary32("2", "[6d38956f]", "[51ba426a]", "0x20")
+ self.bid32_to_binary32("3", "[6d38956f]", "[51ba4269]", "0x20")
+ self.bid32_to_binary32("4", "[6d38956f]", "[51ba426a]", "0x20")
+ self.bid32_to_binary32("0", "[6d781ec7]", "[551112ba]", "0x20")
+ self.bid32_to_binary32("1", "[6d781ec7]", "[551112b9]", "0x20")
+ self.bid32_to_binary32("2", "[6d781ec7]", "[551112ba]", "0x20")
+ self.bid32_to_binary32("3", "[6d781ec7]", "[551112b9]", "0x20")
+ self.bid32_to_binary32("4", "[6d781ec7]", "[551112ba]", "0x20")
+ self.bid32_to_binary32("0", "[6d98395b]", "[56b57717]", "0x20")
+ self.bid32_to_binary32("1", "[6d98395b]", "[56b57717]", "0x20")
+ self.bid32_to_binary32("2", "[6d98395b]", "[56b57718]", "0x20")
+ self.bid32_to_binary32("3", "[6d98395b]", "[56b57717]", "0x20")
+ self.bid32_to_binary32("4", "[6d98395b]", "[56b57717]", "0x20")
+ self.bid32_to_binary32("0", "[6dd16393]", "[5a07676e]", "0x20")
+ self.bid32_to_binary32("1", "[6dd16393]", "[5a07676d]", "0x20")
+ self.bid32_to_binary32("2", "[6dd16393]", "[5a07676e]", "0x20")
+ self.bid32_to_binary32("3", "[6dd16393]", "[5a07676d]", "0x20")
+ self.bid32_to_binary32("4", "[6dd16393]", "[5a07676e]", "0x20")
+ self.bid32_to_binary32("0", "[6e8afc85]", "[63f6e3b3]", "0x20")
+ self.bid32_to_binary32("1", "[6e8afc85]", "[63f6e3b3]", "0x20")
+ self.bid32_to_binary32("2", "[6e8afc85]", "[63f6e3b4]", "0x20")
+ self.bid32_to_binary32("3", "[6e8afc85]", "[63f6e3b3]", "0x20")
+ self.bid32_to_binary32("4", "[6e8afc85]", "[63f6e3b3]", "0x20")
+ self.bid32_to_binary32("0", "[6ecb2a7f]", "[674121b2]", "0x20")
+ self.bid32_to_binary32("1", "[6ecb2a7f]", "[674121b1]", "0x20")
+ self.bid32_to_binary32("2", "[6ecb2a7f]", "[674121b2]", "0x20")
+ self.bid32_to_binary32("3", "[6ecb2a7f]", "[674121b1]", "0x20")
+ self.bid32_to_binary32("4", "[6ecb2a7f]", "[674121b2]", "0x20")
+ self.bid32_to_binary32("0", "[6f690028]", "[6f910e17]", "0x20")
+ self.bid32_to_binary32("1", "[6f690028]", "[6f910e17]", "0x20")
+ self.bid32_to_binary32("2", "[6f690028]", "[6f910e18]", "0x20")
+ self.bid32_to_binary32("3", "[6f690028]", "[6f910e17]", "0x20")
+ self.bid32_to_binary32("4", "[6f690028]", "[6f910e17]", "0x20")
+ self.bid32_to_binary32("0", "[6f927f20]", "[7141e2f9]", "0x20")
+ self.bid32_to_binary32("1", "[6f927f20]", "[7141e2f8]", "0x20")
+ self.bid32_to_binary32("2", "[6f927f20]", "[7141e2f9]", "0x20")
+ self.bid32_to_binary32("3", "[6f927f20]", "[7141e2f8]", "0x20")
+ self.bid32_to_binary32("4", "[6f927f20]", "[7141e2f9]", "0x20")
+ self.bid32_to_binary32("0", "[77f8967f]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("1", "[77f8967f]", "[7f7fffff]", "0x28")
+ self.bid32_to_binary32("2", "[77f8967f]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("3", "[77f8967f]", "[7f7fffff]", "0x28")
+ self.bid32_to_binary32("4", "[77f8967f]", "[7f800000]", "0x28")
+ self.bid32_to_binary32("0", "[78000000]", "[7f800000]", "0x00")
+ self.bid32_to_binary32("1", "[78000000]", "[7f800000]", "0x00")
+ self.bid32_to_binary32("2", "[78000000]", "[7f800000]", "0x00")
+ self.bid32_to_binary32("3", "[78000000]", "[7f800000]", "0x00")
+ self.bid32_to_binary32("4", "[78000000]", "[7f800000]", "0x00")
+ self.bid32_to_binary32("0", "[7c0c2000]", "[7ff08000]", "0x00")
+ self.bid32_to_binary32("0", "[7e0c2000]", "[7ff08000]", "0x01")
+ self.bid32_to_binary32("0", "[80000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("1", "[80000001]", "[80000001]", "0x30")
+ self.bid32_to_binary32("2", "[80000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("3", "[80000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("4", "[80000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("0", "[800f423f]", "[80000000]", "0x30")
+ self.bid32_to_binary32("1", "[800f423f]", "[80000001]", "0x30")
+ self.bid32_to_binary32("2", "[800f423f]", "[80000000]", "0x30")
+ self.bid32_to_binary32("3", "[800f423f]", "[80000000]", "0x30")
+ self.bid32_to_binary32("4", "[800f423f]", "[80000000]", "0x30")
+ self.bid32_to_binary32("0", "[83000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("1", "[83000001]", "[80000001]", "0x30")
+ self.bid32_to_binary32("2", "[83000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("3", "[83000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("4", "[83000001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("0", "[83800001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("1", "[83800001]", "[80000001]", "0x30")
+ self.bid32_to_binary32("2", "[83800001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("3", "[83800001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("4", "[83800001]", "[80000000]", "0x30")
+ self.bid32_to_binary32("0", "[991561d2]", "[80000001]", "0x30")
+ self.bid32_to_binary32("1", "[991561d2]", "[80000001]", "0x30")
+ self.bid32_to_binary32("2", "[991561d2]", "[80000000]", "0x30")
+ self.bid32_to_binary32("3", "[991561d2]", "[80000000]", "0x30")
+ self.bid32_to_binary32("4", "[991561d2]", "[80000001]", "0x30")
+ self.bid32_to_binary32("0", "[991561d3]", "[80000001]", "0x30")
+ self.bid32_to_binary32("1", "[991561d3]", "[80000002]", "0x30")
+ self.bid32_to_binary32("2", "[991561d3]", "[80000001]", "0x30")
+ self.bid32_to_binary32("3", "[991561d3]", "[80000001]", "0x30")
+ self.bid32_to_binary32("4", "[991561d3]", "[80000001]", "0x30")
+ self.bid32_to_binary32("0", "[9a11214b]", "[80000050]", "0x30")
+ self.bid32_to_binary32("1", "[9a11214b]", "[80000051]", "0x30")
+ self.bid32_to_binary32("2", "[9a11214b]", "[80000050]", "0x30")
+ self.bid32_to_binary32("3", "[9a11214b]", "[80000050]", "0x30")
+ self.bid32_to_binary32("4", "[9a11214b]", "[80000050]", "0x30")
+ self.bid32_to_binary32("0", "[9a836d0f]", "[800000a0]", "0x30")
+ self.bid32_to_binary32("1", "[9a836d0f]", "[800000a1]", "0x30")
+ self.bid32_to_binary32("2", "[9a836d0f]", "[800000a0]", "0x30")
+ self.bid32_to_binary32("3", "[9a836d0f]", "[800000a0]", "0x30")
+ self.bid32_to_binary32("4", "[9a836d0f]", "[800000a0]", "0x30")
+ self.bid32_to_binary32("0", "[9b0cc5a9]", "[80001755]", "0x30")
+ self.bid32_to_binary32("1", "[9b0cc5a9]", "[80001756]", "0x30")
+ self.bid32_to_binary32("2", "[9b0cc5a9]", "[80001755]", "0x30")
+ self.bid32_to_binary32("3", "[9b0cc5a9]", "[80001755]", "0x30")
+ self.bid32_to_binary32("4", "[9b0cc5a9]", "[80001755]", "0x30")
+ self.bid32_to_binary32("0", "[9b198b52]", "[80002eab]", "0x30")
+ self.bid32_to_binary32("1", "[9b198b52]", "[80002eab]", "0x30")
+ self.bid32_to_binary32("2", "[9b198b52]", "[80002eaa]", "0x30")
+ self.bid32_to_binary32("3", "[9b198b52]", "[80002eaa]", "0x30")
+ self.bid32_to_binary32("4", "[9b198b52]", "[80002eab]", "0x30")
+ self.bid32_to_binary32("0", "[9b8b47f1]", "[8000ce17]", "0x30")
+ self.bid32_to_binary32("1", "[9b8b47f1]", "[8000ce18]", "0x30")
+ self.bid32_to_binary32("2", "[9b8b47f1]", "[8000ce17]", "0x30")
+ self.bid32_to_binary32("3", "[9b8b47f1]", "[8000ce17]", "0x30")
+ self.bid32_to_binary32("4", "[9b8b47f1]", "[8000ce17]", "0x30")
+ self.bid32_to_binary32("0", "[9bf21b08]", "[80082492]", "0x30")
+ self.bid32_to_binary32("1", "[9bf21b08]", "[80082492]", "0x30")
+ self.bid32_to_binary32("2", "[9bf21b08]", "[80082491]", "0x30")
+ self.bid32_to_binary32("3", "[9bf21b08]", "[80082491]", "0x30")
+ self.bid32_to_binary32("4", "[9bf21b08]", "[80082492]", "0x30")
+ self.bid32_to_binary32("0", "[9c2cd76f]", "[801fffff]", "0x30")
+ self.bid32_to_binary32("1", "[9c2cd76f]", "[80200000]", "0x30")
+ self.bid32_to_binary32("2", "[9c2cd76f]", "[801fffff]", "0x30")
+ self.bid32_to_binary32("3", "[9c2cd76f]", "[801fffff]", "0x30")
+ self.bid32_to_binary32("4", "[9c2cd76f]", "[801fffff]", "0x30")
+ self.bid32_to_binary32("0", "[9c2cd770]", "[80200000]", "0x30")
+ self.bid32_to_binary32("1", "[9c2cd770]", "[80200001]", "0x30")
+ self.bid32_to_binary32("2", "[9c2cd770]", "[80200000]", "0x30")
+ self.bid32_to_binary32("3", "[9c2cd770]", "[80200000]", "0x30")
+ self.bid32_to_binary32("4", "[9c2cd770]", "[80200000]", "0x30")
+ self.bid32_to_binary32("0", "[9c59aedf]", "[803fffff]", "0x30")
+ self.bid32_to_binary32("1", "[9c59aedf]", "[80400000]", "0x30")
+ self.bid32_to_binary32("2", "[9c59aedf]", "[803fffff]", "0x30")
+ self.bid32_to_binary32("3", "[9c59aedf]", "[803fffff]", "0x30")
+ self.bid32_to_binary32("4", "[9c59aedf]", "[803fffff]", "0x30")
+ self.bid32_to_binary32("0", "[9c59aee0]", "[80400000]", "0x30")
+ self.bid32_to_binary32("1", "[9c59aee0]", "[80400001]", "0x30")
+ self.bid32_to_binary32("2", "[9c59aee0]", "[80400000]", "0x30")
+ self.bid32_to_binary32("3", "[9c59aee0]", "[80400000]", "0x30")
+ self.bid32_to_binary32("4", "[9c59aee0]", "[80400000]", "0x30")
+ self.bid32_to_binary32("0", "[9c8f350e]", "[806c85c4]", "0x30")
+ self.bid32_to_binary32("1", "[9c8f350e]", "[806c85c5]", "0x30")
+ self.bid32_to_binary32("2", "[9c8f350e]", "[806c85c4]", "0x30")
+ self.bid32_to_binary32("3", "[9c8f350e]", "[806c85c4]", "0x30")
+ self.bid32_to_binary32("4", "[9c8f350e]", "[806c85c4]", "0x30")
+ self.bid32_to_binary32("0", "[9c91efc6]", "[807ffffd]", "0x30")
+ self.bid32_to_binary32("1", "[9c91efc6]", "[807ffffe]", "0x30")
+ self.bid32_to_binary32("2", "[9c91efc6]", "[807ffffd]", "0x30")
+ self.bid32_to_binary32("3", "[9c91efc6]", "[807ffffd]", "0x30")
+ self.bid32_to_binary32("4", "[9c91efc6]", "[807ffffd]", "0x30")
+ self.bid32_to_binary32("0", "[9c91efc7]", "[80800005]", "0x20")
+ self.bid32_to_binary32("1", "[9c91efc7]", "[80800005]", "0x20")
+ self.bid32_to_binary32("2", "[9c91efc7]", "[80800004]", "0x20")
+ self.bid32_to_binary32("3", "[9c91efc7]", "[80800004]", "0x20")
+ self.bid32_to_binary32("4", "[9c91efc7]", "[80800005]", "0x20")
+ self.bid32_to_binary32("0", "[9c9e6a1c]", "[80d90b88]", "0x20")
+ self.bid32_to_binary32("1", "[9c9e6a1c]", "[80d90b89]", "0x20")
+ self.bid32_to_binary32("2", "[9c9e6a1c]", "[80d90b88]", "0x20")
+ self.bid32_to_binary32("3", "[9c9e6a1c]", "[80d90b88]", "0x20")
+ self.bid32_to_binary32("4", "[9c9e6a1c]", "[80d90b88]", "0x20")
+ self.bid32_to_binary32("0", "[9ca3df8c]", "[80fffffb]", "0x20")
+ self.bid32_to_binary32("1", "[9ca3df8c]", "[80fffffb]", "0x20")
+ self.bid32_to_binary32("2", "[9ca3df8c]", "[80fffffa]", "0x20")
+ self.bid32_to_binary32("3", "[9ca3df8c]", "[80fffffa]", "0x20")
+ self.bid32_to_binary32("4", "[9ca3df8c]", "[80fffffb]", "0x20")
+ self.bid32_to_binary32("0", "[9ca3df8d]", "[81000001]", "0x20")
+ self.bid32_to_binary32("1", "[9ca3df8d]", "[81000002]", "0x20")
+ self.bid32_to_binary32("2", "[9ca3df8d]", "[81000001]", "0x20")
+ self.bid32_to_binary32("3", "[9ca3df8d]", "[81000001]", "0x20")
+ self.bid32_to_binary32("4", "[9ca3df8d]", "[81000001]", "0x20")
+ self.bid32_to_binary32("0", "[9d042f3f]", "[81154f56]", "0x20")
+ self.bid32_to_binary32("1", "[9d042f3f]", "[81154f57]", "0x20")
+ self.bid32_to_binary32("2", "[9d042f3f]", "[81154f56]", "0x20")
+ self.bid32_to_binary32("3", "[9d042f3f]", "[81154f56]", "0x20")
+ self.bid32_to_binary32("4", "[9d042f3f]", "[81154f56]", "0x20")
+ self.bid32_to_binary32("0", "[9da9f7c8]", "[8469fa95]", "0x20")
+ self.bid32_to_binary32("1", "[9da9f7c8]", "[8469fa96]", "0x20")
+ self.bid32_to_binary32("2", "[9da9f7c8]", "[8469fa95]", "0x20")
+ self.bid32_to_binary32("3", "[9da9f7c8]", "[8469fa95]", "0x20")
+ self.bid32_to_binary32("4", "[9da9f7c8]", "[8469fa95]", "0x20")
+ self.bid32_to_binary32("0", "[9e09d7c7]", "[85093092]", "0x20")
+ self.bid32_to_binary32("1", "[9e09d7c7]", "[85093092]", "0x20")
+ self.bid32_to_binary32("2", "[9e09d7c7]", "[85093091]", "0x20")
+ self.bid32_to_binary32("3", "[9e09d7c7]", "[85093091]", "0x20")
+ self.bid32_to_binary32("4", "[9e09d7c7]", "[85093092]", "0x20")
+ self.bid32_to_binary32("0", "[9efe507f]", "[88898b53]", "0x20")
+ self.bid32_to_binary32("1", "[9efe507f]", "[88898b54]", "0x20")
+ self.bid32_to_binary32("2", "[9efe507f]", "[88898b53]", "0x20")
+ self.bid32_to_binary32("3", "[9efe507f]", "[88898b53]", "0x20")
+ self.bid32_to_binary32("4", "[9efe507f]", "[88898b53]", "0x20")
+ self.bid32_to_binary32("0", "[9f2c2ed4]", "[89708e01]", "0x20")
+ self.bid32_to_binary32("1", "[9f2c2ed4]", "[89708e02]", "0x20")
+ self.bid32_to_binary32("2", "[9f2c2ed4]", "[89708e01]", "0x20")
+ self.bid32_to_binary32("3", "[9f2c2ed4]", "[89708e01]", "0x20")
+ self.bid32_to_binary32("4", "[9f2c2ed4]", "[89708e01]", "0x20")
+ self.bid32_to_binary32("0", "[9f863bfd]", "[89a9b6ef]", "0x20")
+ self.bid32_to_binary32("1", "[9f863bfd]", "[89a9b6ef]", "0x20")
+ self.bid32_to_binary32("2", "[9f863bfd]", "[89a9b6ee]", "0x20")
+ self.bid32_to_binary32("3", "[9f863bfd]", "[89a9b6ee]", "0x20")
+ self.bid32_to_binary32("4", "[9f863bfd]", "[89a9b6ef]", "0x20")
+ self.bid32_to_binary32("0", "[9fd221ab]", "[8b8bbd52]", "0x20")
+ self.bid32_to_binary32("1", "[9fd221ab]", "[8b8bbd53]", "0x20")
+ self.bid32_to_binary32("2", "[9fd221ab]", "[8b8bbd52]", "0x20")
+ self.bid32_to_binary32("3", "[9fd221ab]", "[8b8bbd52]", "0x20")
+ self.bid32_to_binary32("4", "[9fd221ab]", "[8b8bbd52]", "0x20")
+ self.bid32_to_binary32("0", "[a05221ab]", "[8d2eaca7]", "0x20")
+ self.bid32_to_binary32("1", "[a05221ab]", "[8d2eaca7]", "0x20")
+ self.bid32_to_binary32("2", "[a05221ab]", "[8d2eaca6]", "0x20")
+ self.bid32_to_binary32("3", "[a05221ab]", "[8d2eaca6]", "0x20")
+ self.bid32_to_binary32("4", "[a05221ab]", "[8d2eaca7]", "0x20")
+ self.bid32_to_binary32("0", "[a097ef8e]", "[8dfe8756]", "0x20")
+ self.bid32_to_binary32("1", "[a097ef8e]", "[8dfe8757]", "0x20")
+ self.bid32_to_binary32("2", "[a097ef8e]", "[8dfe8756]", "0x20")
+ self.bid32_to_binary32("3", "[a097ef8e]", "[8dfe8756]", "0x20")
+ self.bid32_to_binary32("4", "[a097ef8e]", "[8dfe8756]", "0x20")
+ self.bid32_to_binary32("0", "[a102b8e9]", "[8e10be19]", "0x20")
+ self.bid32_to_binary32("1", "[a102b8e9]", "[8e10be1a]", "0x20")
+ self.bid32_to_binary32("2", "[a102b8e9]", "[8e10be19]", "0x20")
+ self.bid32_to_binary32("3", "[a102b8e9]", "[8e10be19]", "0x20")
+ self.bid32_to_binary32("4", "[a102b8e9]", "[8e10be19]", "0x20")
+ self.bid32_to_binary32("0", "[a1649f67]", "[90a73026]", "0x20")
+ self.bid32_to_binary32("1", "[a1649f67]", "[90a73027]", "0x20")
+ self.bid32_to_binary32("2", "[a1649f67]", "[90a73026]", "0x20")
+ self.bid32_to_binary32("3", "[a1649f67]", "[90a73026]", "0x20")
+ self.bid32_to_binary32("4", "[a1649f67]", "[90a73026]", "0x20")
+ self.bid32_to_binary32("0", "[a1a324b9]", "[9191faec]", "0x20")
+ self.bid32_to_binary32("1", "[a1a324b9]", "[9191faed]", "0x20")
+ self.bid32_to_binary32("2", "[a1a324b9]", "[9191faec]", "0x20")
+ self.bid32_to_binary32("3", "[a1a324b9]", "[9191faec]", "0x20")
+ self.bid32_to_binary32("4", "[a1a324b9]", "[9191faec]", "0x20")
+ self.bid32_to_binary32("0", "[a2061131]", "[91fc050c]", "0x20")
+ self.bid32_to_binary32("1", "[a2061131]", "[91fc050d]", "0x20")
+ self.bid32_to_binary32("2", "[a2061131]", "[91fc050c]", "0x20")
+ self.bid32_to_binary32("3", "[a2061131]", "[91fc050c]", "0x20")
+ self.bid32_to_binary32("4", "[a2061131]", "[91fc050c]", "0x20")
+ self.bid32_to_binary32("0", "[a2eb6643]", "[95ae43fd]", "0x20")
+ self.bid32_to_binary32("1", "[a2eb6643]", "[95ae43fe]", "0x20")
+ self.bid32_to_binary32("2", "[a2eb6643]", "[95ae43fd]", "0x20")
+ self.bid32_to_binary32("3", "[a2eb6643]", "[95ae43fd]", "0x20")
+ self.bid32_to_binary32("4", "[a2eb6643]", "[95ae43fd]", "0x20")
+ self.bid32_to_binary32("0", "[a307d92a]", "[957eb11a]", "0x20")
+ self.bid32_to_binary32("1", "[a307d92a]", "[957eb11a]", "0x20")
+ self.bid32_to_binary32("2", "[a307d92a]", "[957eb119]", "0x20")
+ self.bid32_to_binary32("3", "[a307d92a]", "[957eb119]", "0x20")
+ self.bid32_to_binary32("4", "[a307d92a]", "[957eb11a]", "0x20")
+ self.bid32_to_binary32("0", "[a38436b1]", "[96aaecec]", "0x20")
+ self.bid32_to_binary32("1", "[a38436b1]", "[96aaeced]", "0x20")
+ self.bid32_to_binary32("2", "[a38436b1]", "[96aaecec]", "0x20")
+ self.bid32_to_binary32("3", "[a38436b1]", "[96aaecec]", "0x20")
+ self.bid32_to_binary32("4", "[a38436b1]", "[96aaecec]", "0x20")
+ self.bid32_to_binary32("0", "[a3d3dac5]", "[98d498ba]", "0x20")
+ self.bid32_to_binary32("1", "[a3d3dac5]", "[98d498bb]", "0x20")
+ self.bid32_to_binary32("2", "[a3d3dac5]", "[98d498ba]", "0x20")
+ self.bid32_to_binary32("3", "[a3d3dac5]", "[98d498ba]", "0x20")
+ self.bid32_to_binary32("4", "[a3d3dac5]", "[98d498ba]", "0x20")
+ self.bid32_to_binary32("0", "[a44d1cdd]", "[9a74614b]", "0x20")
+ self.bid32_to_binary32("1", "[a44d1cdd]", "[9a74614b]", "0x20")
+ self.bid32_to_binary32("2", "[a44d1cdd]", "[9a74614a]", "0x20")
+ self.bid32_to_binary32("3", "[a44d1cdd]", "[9a74614a]", "0x20")
+ self.bid32_to_binary32("4", "[a44d1cdd]", "[9a74614b]", "0x20")
+ self.bid32_to_binary32("0", "[a48b60a1]", "[9ab44872]", "0x20")
+ self.bid32_to_binary32("1", "[a48b60a1]", "[9ab44873]", "0x20")
+ self.bid32_to_binary32("2", "[a48b60a1]", "[9ab44872]", "0x20")
+ self.bid32_to_binary32("3", "[a48b60a1]", "[9ab44872]", "0x20")
+ self.bid32_to_binary32("4", "[a48b60a1]", "[9ab44872]", "0x20")
+ self.bid32_to_binary32("0", "[a4ff421a]", "[9c7c0f94]", "0x20")
+ self.bid32_to_binary32("1", "[a4ff421a]", "[9c7c0f94]", "0x20")
+ self.bid32_to_binary32("2", "[a4ff421a]", "[9c7c0f93]", "0x20")
+ self.bid32_to_binary32("3", "[a4ff421a]", "[9c7c0f93]", "0x20")
+ self.bid32_to_binary32("4", "[a4ff421a]", "[9c7c0f94]", "0x20")
+ self.bid32_to_binary32("0", "[a603ee42]", "[9ef34c57]", "0x20")
+ self.bid32_to_binary32("1", "[a603ee42]", "[9ef34c58]", "0x20")
+ self.bid32_to_binary32("2", "[a603ee42]", "[9ef34c57]", "0x20")
+ self.bid32_to_binary32("3", "[a603ee42]", "[9ef34c57]", "0x20")
+ self.bid32_to_binary32("4", "[a603ee42]", "[9ef34c57]", "0x20")
+ self.bid32_to_binary32("0", "[a607dc84]", "[9f734c57]", "0x20")
+ self.bid32_to_binary32("1", "[a607dc84]", "[9f734c58]", "0x20")
+ self.bid32_to_binary32("2", "[a607dc84]", "[9f734c57]", "0x20")
+ self.bid32_to_binary32("3", "[a607dc84]", "[9f734c57]", "0x20")
+ self.bid32_to_binary32("4", "[a607dc84]", "[9f734c57]", "0x20")
+ self.bid32_to_binary32("0", "[a6438f4f]", "[a102adfe]", "0x20")
+ self.bid32_to_binary32("1", "[a6438f4f]", "[a102adfe]", "0x20")
+ self.bid32_to_binary32("2", "[a6438f4f]", "[a102adfd]", "0x20")
+ self.bid32_to_binary32("3", "[a6438f4f]", "[a102adfd]", "0x20")
+ self.bid32_to_binary32("4", "[a6438f4f]", "[a102adfe]", "0x20")
+ self.bid32_to_binary32("0", "[a6d88aaa]", "[a2d614a1]", "0x20")
+ self.bid32_to_binary32("1", "[a6d88aaa]", "[a2d614a2]", "0x20")
+ self.bid32_to_binary32("2", "[a6d88aaa]", "[a2d614a1]", "0x20")
+ self.bid32_to_binary32("3", "[a6d88aaa]", "[a2d614a1]", "0x20")
+ self.bid32_to_binary32("4", "[a6d88aaa]", "[a2d614a1]", "0x20")
+ self.bid32_to_binary32("0", "[a714fb5b]", "[a37da7b4]", "0x20")
+ self.bid32_to_binary32("1", "[a714fb5b]", "[a37da7b5]", "0x20")
+ self.bid32_to_binary32("2", "[a714fb5b]", "[a37da7b4]", "0x20")
+ self.bid32_to_binary32("3", "[a714fb5b]", "[a37da7b4]", "0x20")
+ self.bid32_to_binary32("4", "[a714fb5b]", "[a37da7b4]", "0x20")
+ self.bid32_to_binary32("0", "[a78435d2]", "[a3fe7e3d]", "0x20")
+ self.bid32_to_binary32("1", "[a78435d2]", "[a3fe7e3e]", "0x20")
+ self.bid32_to_binary32("2", "[a78435d2]", "[a3fe7e3d]", "0x20")
+ self.bid32_to_binary32("3", "[a78435d2]", "[a3fe7e3d]", "0x20")
+ self.bid32_to_binary32("4", "[a78435d2]", "[a3fe7e3d]", "0x20")
+ self.bid32_to_binary32("0", "[a7e84da5]", "[a64505fb]", "0x20")
+ self.bid32_to_binary32("1", "[a7e84da5]", "[a64505fb]", "0x20")
+ self.bid32_to_binary32("2", "[a7e84da5]", "[a64505fa]", "0x20")
+ self.bid32_to_binary32("3", "[a7e84da5]", "[a64505fa]", "0x20")
+ self.bid32_to_binary32("4", "[a7e84da5]", "[a64505fb]", "0x20")
+ self.bid32_to_binary32("0", "[a8043c9d]", "[a5a00f88]", "0x20")
+ self.bid32_to_binary32("1", "[a8043c9d]", "[a5a00f89]", "0x20")
+ self.bid32_to_binary32("2", "[a8043c9d]", "[a5a00f88]", "0x20")
+ self.bid32_to_binary32("3", "[a8043c9d]", "[a5a00f88]", "0x20")
+ self.bid32_to_binary32("4", "[a8043c9d]", "[a5a00f88]", "0x20")
+ self.bid32_to_binary32("0", "[a8843c9d]", "[a748136a]", "0x20")
+ self.bid32_to_binary32("1", "[a8843c9d]", "[a748136b]", "0x20")
+ self.bid32_to_binary32("2", "[a8843c9d]", "[a748136a]", "0x20")
+ self.bid32_to_binary32("3", "[a8843c9d]", "[a748136a]", "0x20")
+ self.bid32_to_binary32("4", "[a8843c9d]", "[a748136a]", "0x20")
+ self.bid32_to_binary32("0", "[a8c79466]", "[a9534414]", "0x20")
+ self.bid32_to_binary32("1", "[a8c79466]", "[a9534414]", "0x20")
+ self.bid32_to_binary32("2", "[a8c79466]", "[a9534413]", "0x20")
+ self.bid32_to_binary32("3", "[a8c79466]", "[a9534413]", "0x20")
+ self.bid32_to_binary32("4", "[a8c79466]", "[a9534414]", "0x20")
+ self.bid32_to_binary32("0", "[a96a9c7b]", "[ab44a9bd]", "0x20")
+ self.bid32_to_binary32("1", "[a96a9c7b]", "[ab44a9be]", "0x20")
+ self.bid32_to_binary32("2", "[a96a9c7b]", "[ab44a9bd]", "0x20")
+ self.bid32_to_binary32("3", "[a96a9c7b]", "[ab44a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[a96a9c7b]", "[ab44a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[a995527f]", "[abc4a9bd]", "0x20")
+ self.bid32_to_binary32("1", "[a995527f]", "[abc4a9be]", "0x20")
+ self.bid32_to_binary32("2", "[a995527f]", "[abc4a9bd]", "0x20")
+ self.bid32_to_binary32("3", "[a995527f]", "[abc4a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[a995527f]", "[abc4a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[aa0443b3]", "[ac44a9bd]", "0x20")
+ self.bid32_to_binary32("1", "[aa0443b3]", "[ac44a9be]", "0x20")
+ self.bid32_to_binary32("2", "[aa0443b3]", "[ac44a9bd]", "0x20")
+ self.bid32_to_binary32("3", "[aa0443b3]", "[ac44a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[aa0443b3]", "[ac44a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[aa6090d9]", "[ae8b2a7f]", "0x20")
+ self.bid32_to_binary32("1", "[aa6090d9]", "[ae8b2a80]", "0x20")
+ self.bid32_to_binary32("2", "[aa6090d9]", "[ae8b2a7f]", "0x20")
+ self.bid32_to_binary32("3", "[aa6090d9]", "[ae8b2a7f]", "0x20")
+ self.bid32_to_binary32("4", "[aa6090d9]", "[ae8b2a7f]", "0x20")
+ self.bid32_to_binary32("0", "[ab057560]", "[afc4a9bd]", "0x20")
+ self.bid32_to_binary32("1", "[ab057560]", "[afc4a9be]", "0x20")
+ self.bid32_to_binary32("2", "[ab057560]", "[afc4a9bd]", "0x20")
+ self.bid32_to_binary32("3", "[ab057560]", "[afc4a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[ab057560]", "[afc4a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[ab0aeac0]", "[b044a9bd]", "0x20")
+ self.bid32_to_binary32("1", "[ab0aeac0]", "[b044a9be]", "0x20")
+ self.bid32_to_binary32("2", "[ab0aeac0]", "[b044a9bd]", "0x20")
+ self.bid32_to_binary32("3", "[ab0aeac0]", "[b044a9bd]", "0x20")
+ self.bid32_to_binary32("4", "[ab0aeac0]", "[b044a9bd]", "0x20")
+ self.bid32_to_binary32("0", "[ab29fb19]", "[b13d10a0]", "0x20")
+ self.bid32_to_binary32("1", "[ab29fb19]", "[b13d10a1]", "0x20")
+ self.bid32_to_binary32("2", "[ab29fb19]", "[b13d10a0]", "0x20")
+ self.bid32_to_binary32("3", "[ab29fb19]", "[b13d10a0]", "0x20")
+ self.bid32_to_binary32("4", "[ab29fb19]", "[b13d10a0]", "0x20")
+ self.bid32_to_binary32("0", "[abfbf1bd]", "[b3ae6fa3]", "0x20")
+ self.bid32_to_binary32("1", "[abfbf1bd]", "[b3ae6fa4]", "0x20")
+ self.bid32_to_binary32("2", "[abfbf1bd]", "[b3ae6fa3]", "0x20")
+ self.bid32_to_binary32("3", "[abfbf1bd]", "[b3ae6fa3]", "0x20")
+ self.bid32_to_binary32("4", "[abfbf1bd]", "[b3ae6fa3]", "0x20")
+ self.bid32_to_binary32("0", "[ac1097af]", "[b3e984d5]", "0x20")
+ self.bid32_to_binary32("1", "[ac1097af]", "[b3e984d6]", "0x20")
+ self.bid32_to_binary32("2", "[ac1097af]", "[b3e984d5]", "0x20")
+ self.bid32_to_binary32("3", "[ac1097af]", "[b3e984d5]", "0x20")
+ self.bid32_to_binary32("4", "[ac1097af]", "[b3e984d5]", "0x20")
+ self.bid32_to_binary32("0", "[ac866feb]", "[b4e27cf5]", "0x20")
+ self.bid32_to_binary32("1", "[ac866feb]", "[b4e27cf6]", "0x20")
+ self.bid32_to_binary32("2", "[ac866feb]", "[b4e27cf5]", "0x20")
+ self.bid32_to_binary32("3", "[ac866feb]", "[b4e27cf5]", "0x20")
+ self.bid32_to_binary32("4", "[ac866feb]", "[b4e27cf5]", "0x20")
+ self.bid32_to_binary32("0", "[acef11e7]", "[b6f43ed0]", "0x20")
+ self.bid32_to_binary32("1", "[acef11e7]", "[b6f43ed1]", "0x20")
+ self.bid32_to_binary32("2", "[acef11e7]", "[b6f43ed0]", "0x20")
+ self.bid32_to_binary32("3", "[acef11e7]", "[b6f43ed0]", "0x20")
+ self.bid32_to_binary32("4", "[acef11e7]", "[b6f43ed0]", "0x20")
+ self.bid32_to_binary32("0", "[ad856b1a]", "[b814f05c]", "0x20")
+ self.bid32_to_binary32("1", "[ad856b1a]", "[b814f05c]", "0x20")
+ self.bid32_to_binary32("2", "[ad856b1a]", "[b814f05b]", "0x20")
+ self.bid32_to_binary32("3", "[ad856b1a]", "[b814f05b]", "0x20")
+ self.bid32_to_binary32("4", "[ad856b1a]", "[b814f05c]", "0x20")
+ self.bid32_to_binary32("0", "[ad8ad634]", "[b894f05c]", "0x20")
+ self.bid32_to_binary32("1", "[ad8ad634]", "[b894f05c]", "0x20")
+ self.bid32_to_binary32("2", "[ad8ad634]", "[b894f05b]", "0x20")
+ self.bid32_to_binary32("3", "[ad8ad634]", "[b894f05b]", "0x20")
+ self.bid32_to_binary32("4", "[ad8ad634]", "[b894f05c]", "0x20")
+ self.bid32_to_binary32("0", "[ade1811c]", "[ba2782dc]", "0x20")
+ self.bid32_to_binary32("1", "[ade1811c]", "[ba2782dd]", "0x20")
+ self.bid32_to_binary32("2", "[ade1811c]", "[ba2782dc]", "0x20")
+ self.bid32_to_binary32("3", "[ade1811c]", "[ba2782dc]", "0x20")
+ self.bid32_to_binary32("4", "[ade1811c]", "[ba2782dc]", "0x20")
+ self.bid32_to_binary32("0", "[aead8bfc]", "[bcf48710]", "0x20")
+ self.bid32_to_binary32("1", "[aead8bfc]", "[bcf48711]", "0x20")
+ self.bid32_to_binary32("2", "[aead8bfc]", "[bcf48710]", "0x20")
+ self.bid32_to_binary32("3", "[aead8bfc]", "[bcf48710]", "0x20")
+ self.bid32_to_binary32("4", "[aead8bfc]", "[bcf48710]", "0x20")
+ self.bid32_to_binary32("0", "[aecd7c6d]", "[bd500000]", "0x00")
+ self.bid32_to_binary32("1", "[aecd7c6d]", "[bd500000]", "0x00")
+ self.bid32_to_binary32("2", "[aecd7c6d]", "[bd500000]", "0x00")
+ self.bid32_to_binary32("3", "[aecd7c6d]", "[bd500000]", "0x00")
+ self.bid32_to_binary32("4", "[aecd7c6d]", "[bd500000]", "0x00")
+ self.bid32_to_binary32("0", "[af089789]", "[bd66a352]", "0x20")
+ self.bid32_to_binary32("1", "[af089789]", "[bd66a353]", "0x20")
+ self.bid32_to_binary32("2", "[af089789]", "[bd66a352]", "0x20")
+ self.bid32_to_binary32("3", "[af089789]", "[bd66a352]", "0x20")
+ self.bid32_to_binary32("4", "[af089789]", "[bd66a352]", "0x20")
+ self.bid32_to_binary32("0", "[b030d188]", "[c1fff30e]", "0x20")
+ self.bid32_to_binary32("1", "[b030d188]", "[c1fff30f]", "0x20")
+ self.bid32_to_binary32("2", "[b030d188]", "[c1fff30e]", "0x20")
+ self.bid32_to_binary32("3", "[b030d188]", "[c1fff30e]", "0x20")
+ self.bid32_to_binary32("4", "[b030d188]", "[c1fff30e]", "0x20")
+ self.bid32_to_binary32("0", "[b089c3f9]", "[c27fff48]", "0x20")
+ self.bid32_to_binary32("1", "[b089c3f9]", "[c27fff49]", "0x20")
+ self.bid32_to_binary32("2", "[b089c3f9]", "[c27fff48]", "0x20")
+ self.bid32_to_binary32("3", "[b089c3f9]", "[c27fff48]", "0x20")
+ self.bid32_to_binary32("4", "[b089c3f9]", "[c27fff48]", "0x20")
+ self.bid32_to_binary32("0", "[b17cffb7]", "[c5ffff6a]", "0x20")
+ self.bid32_to_binary32("1", "[b17cffb7]", "[c5ffff6b]", "0x20")
+ self.bid32_to_binary32("2", "[b17cffb7]", "[c5ffff6a]", "0x20")
+ self.bid32_to_binary32("3", "[b17cffb7]", "[c5ffff6a]", "0x20")
+ self.bid32_to_binary32("4", "[b17cffb7]", "[c5ffff6a]", "0x20")
+ self.bid32_to_binary32("0", "[b198ffe9]", "[c67fff14]", "0x20")
+ self.bid32_to_binary32("1", "[b198ffe9]", "[c67fff15]", "0x20")
+ self.bid32_to_binary32("2", "[b198ffe9]", "[c67fff14]", "0x20")
+ self.bid32_to_binary32("3", "[b198ffe9]", "[c67fff14]", "0x20")
+ self.bid32_to_binary32("4", "[b198ffe9]", "[c67fff14]", "0x20")
+ self.bid32_to_binary32("0", "[b200000f]", "[bfc00000]", "0x00")
+ self.bid32_to_binary32("1", "[b200000f]", "[bfc00000]", "0x00")
+ self.bid32_to_binary32("2", "[b200000f]", "[bfc00000]", "0x00")
+ self.bid32_to_binary32("3", "[b200000f]", "[bfc00000]", "0x00")
+ self.bid32_to_binary32("4", "[b200000f]", "[bfc00000]", "0x00")
+ self.bid32_to_binary32("0", "[b204fffd]", "[c6ffff66]", "0x20")
+ self.bid32_to_binary32("1", "[b204fffd]", "[c6ffff67]", "0x20")
+ self.bid32_to_binary32("2", "[b204fffd]", "[c6ffff66]", "0x20")
+ self.bid32_to_binary32("3", "[b204fffd]", "[c6ffff66]", "0x20")
+ self.bid32_to_binary32("4", "[b204fffd]", "[c6ffff66]", "0x20")
+ self.bid32_to_binary32("0", "[b2800001]", "[bf800000]", "0x00")
+ self.bid32_to_binary32("1", "[b2800001]", "[bf800000]", "0x00")
+ self.bid32_to_binary32("2", "[b2800001]", "[bf800000]", "0x00")
+ self.bid32_to_binary32("3", "[b2800001]", "[bf800000]", "0x00")
+ self.bid32_to_binary32("4", "[b2800001]", "[bf800000]", "0x00")
+ self.bid32_to_binary32("0", "[b2800040]", "[c2800000]", "0x00")
+ self.bid32_to_binary32("1", "[b2800040]", "[c2800000]", "0x00")
+ self.bid32_to_binary32("2", "[b2800040]", "[c2800000]", "0x00")
+ self.bid32_to_binary32("3", "[b2800040]", "[c2800000]", "0x00")
+ self.bid32_to_binary32("4", "[b2800040]", "[c2800000]", "0x00")
+ self.bid32_to_binary32("0", "[b28003e7]", "[c479c000]", "0x00")
+ self.bid32_to_binary32("1", "[b28003e7]", "[c479c000]", "0x00")
+ self.bid32_to_binary32("2", "[b28003e7]", "[c479c000]", "0x00")
+ self.bid32_to_binary32("3", "[b28003e7]", "[c479c000]", "0x00")
+ self.bid32_to_binary32("4", "[b28003e7]", "[c479c000]", "0x00")
+ self.bid32_to_binary32("0", "[b28003e8]", "[c47a0000]", "0x00")
+ self.bid32_to_binary32("1", "[b28003e8]", "[c47a0000]", "0x00")
+ self.bid32_to_binary32("2", "[b28003e8]", "[c47a0000]", "0x00")
+ self.bid32_to_binary32("3", "[b28003e8]", "[c47a0000]", "0x00")
+ self.bid32_to_binary32("4", "[b28003e8]", "[c47a0000]", "0x00")
+ self.bid32_to_binary32("0", "[b2bfffff]", "[ca7ffffc]", "0x00")
+ self.bid32_to_binary32("1", "[b2bfffff]", "[ca7ffffc]", "0x00")
+ self.bid32_to_binary32("2", "[b2bfffff]", "[ca7ffffc]", "0x00")
+ self.bid32_to_binary32("3", "[b2bfffff]", "[ca7ffffc]", "0x00")
+ self.bid32_to_binary32("4", "[b2bfffff]", "[ca7ffffc]", "0x00")
+ self.bid32_to_binary32("0", "[b2fffff8]", "[cafffff0]", "0x00")
+ self.bid32_to_binary32("1", "[b2fffff8]", "[cafffff0]", "0x00")
+ self.bid32_to_binary32("2", "[b2fffff8]", "[cafffff0]", "0x00")
+ self.bid32_to_binary32("3", "[b2fffff8]", "[cafffff0]", "0x00")
+ self.bid32_to_binary32("4", "[b2fffff8]", "[cafffff0]", "0x00")
+ self.bid32_to_binary32("0", "[b420c49b]", "[cefffffb]", "0x20")
+ self.bid32_to_binary32("1", "[b420c49b]", "[cefffffb]", "0x20")
+ self.bid32_to_binary32("2", "[b420c49b]", "[cefffffa]", "0x20")
+ self.bid32_to_binary32("3", "[b420c49b]", "[cefffffa]", "0x20")
+ self.bid32_to_binary32("4", "[b420c49b]", "[cefffffb]", "0x20")
+ self.bid32_to_binary32("0", "[b4418926]", "[cf7fffbc]", "0x20")
+ self.bid32_to_binary32("1", "[b4418926]", "[cf7fffbd]", "0x20")
+ self.bid32_to_binary32("2", "[b4418926]", "[cf7fffbc]", "0x20")
+ self.bid32_to_binary32("3", "[b4418926]", "[cf7fffbc]", "0x20")
+ self.bid32_to_binary32("4", "[b4418926]", "[cf7fffbc]", "0x20")
+ self.bid32_to_binary32("0", "[b553e1e3]", "[d2fffd1a]", "0x20")
+ self.bid32_to_binary32("1", "[b553e1e3]", "[d2fffd1a]", "0x20")
+ self.bid32_to_binary32("2", "[b553e1e3]", "[d2fffd19]", "0x20")
+ self.bid32_to_binary32("3", "[b553e1e3]", "[d2fffd19]", "0x20")
+ self.bid32_to_binary32("4", "[b553e1e3]", "[d2fffd1a]", "0x20")
+ self.bid32_to_binary32("0", "[b590c6c7]", "[d37ffd1a]", "0x20")
+ self.bid32_to_binary32("1", "[b590c6c7]", "[d37ffd1a]", "0x20")
+ self.bid32_to_binary32("2", "[b590c6c7]", "[d37ffd19]", "0x20")
+ self.bid32_to_binary32("3", "[b590c6c7]", "[d37ffd19]", "0x20")
+ self.bid32_to_binary32("4", "[b590c6c7]", "[d37ffd1a]", "0x20")
+ self.bid32_to_binary32("0", "[b6aaf1df]", "[d77ff894]", "0x20")
+ self.bid32_to_binary32("1", "[b6aaf1df]", "[d77ff894]", "0x20")
+ self.bid32_to_binary32("2", "[b6aaf1df]", "[d77ff893]", "0x20")
+ self.bid32_to_binary32("3", "[b6aaf1df]", "[d77ff893]", "0x20")
+ self.bid32_to_binary32("4", "[b6aaf1df]", "[d77ff894]", "0x20")
+ self.bid32_to_binary32("0", "[b6d3e3be]", "[d7fa02b3]", "0x20")
+ self.bid32_to_binary32("1", "[b6d3e3be]", "[d7fa02b3]", "0x20")
+ self.bid32_to_binary32("2", "[b6d3e3be]", "[d7fa02b2]", "0x20")
+ self.bid32_to_binary32("3", "[b6d3e3be]", "[d7fa02b2]", "0x20")
+ self.bid32_to_binary32("4", "[b6d3e3be]", "[d7fa02b3]", "0x20")
+ self.bid32_to_binary32("0", "[b7b0fa48]", "[dae411ec]", "0x20")
+ self.bid32_to_binary32("1", "[b7b0fa48]", "[dae411ed]", "0x20")
+ self.bid32_to_binary32("2", "[b7b0fa48]", "[dae411ec]", "0x20")
+ self.bid32_to_binary32("3", "[b7b0fa48]", "[dae411ec]", "0x20")
+ self.bid32_to_binary32("4", "[b7b0fa48]", "[dae411ec]", "0x20")
+ self.bid32_to_binary32("0", "[b7e9e0b7]", "[db768415]", "0x20")
+ self.bid32_to_binary32("1", "[b7e9e0b7]", "[db768415]", "0x20")
+ self.bid32_to_binary32("2", "[b7e9e0b7]", "[db768414]", "0x20")
+ self.bid32_to_binary32("3", "[b7e9e0b7]", "[db768414]", "0x20")
+ self.bid32_to_binary32("4", "[b7e9e0b7]", "[db768415]", "0x20")
+ self.bid32_to_binary32("0", "[b8113975]", "[dbc884d6]", "0x20")
+ self.bid32_to_binary32("1", "[b8113975]", "[dbc884d7]", "0x20")
+ self.bid32_to_binary32("2", "[b8113975]", "[dbc884d6]", "0x20")
+ self.bid32_to_binary32("3", "[b8113975]", "[dbc884d6]", "0x20")
+ self.bid32_to_binary32("4", "[b8113975]", "[dbc884d6]", "0x20")
+ self.bid32_to_binary32("0", "[b8f2b19b]", "[ded0a073]", "0x20")
+ self.bid32_to_binary32("1", "[b8f2b19b]", "[ded0a074]", "0x20")
+ self.bid32_to_binary32("2", "[b8f2b19b]", "[ded0a073]", "0x20")
+ self.bid32_to_binary32("3", "[b8f2b19b]", "[ded0a073]", "0x20")
+ self.bid32_to_binary32("4", "[b8f2b19b]", "[ded0a073]", "0x20")
+ self.bid32_to_binary32("0", "[b93255b9]", "[dfe4e57b]", "0x20")
+ self.bid32_to_binary32("1", "[b93255b9]", "[dfe4e57c]", "0x20")
+ self.bid32_to_binary32("2", "[b93255b9]", "[dfe4e57b]", "0x20")
+ self.bid32_to_binary32("3", "[b93255b9]", "[dfe4e57b]", "0x20")
+ self.bid32_to_binary32("4", "[b93255b9]", "[dfe4e57b]", "0x20")
+ self.bid32_to_binary32("0", "[b964ab72]", "[e064e57b]", "0x20")
+ self.bid32_to_binary32("1", "[b964ab72]", "[e064e57c]", "0x20")
+ self.bid32_to_binary32("2", "[b964ab72]", "[e064e57b]", "0x20")
+ self.bid32_to_binary32("3", "[b964ab72]", "[e064e57b]", "0x20")
+ self.bid32_to_binary32("4", "[b964ab72]", "[e064e57b]", "0x20")
+ self.bid32_to_binary32("0", "[b9f35a71]", "[e223ed48]", "0x20")
+ self.bid32_to_binary32("1", "[b9f35a71]", "[e223ed49]", "0x20")
+ self.bid32_to_binary32("2", "[b9f35a71]", "[e223ed48]", "0x20")
+ self.bid32_to_binary32("3", "[b9f35a71]", "[e223ed48]", "0x20")
+ self.bid32_to_binary32("4", "[b9f35a71]", "[e223ed48]", "0x20")
+ self.bid32_to_binary32("0", "[ba17a214]", "[e2a7ec64]", "0x20")
+ self.bid32_to_binary32("1", "[ba17a214]", "[e2a7ec64]", "0x20")
+ self.bid32_to_binary32("2", "[ba17a214]", "[e2a7ec63]", "0x20")
+ self.bid32_to_binary32("3", "[ba17a214]", "[e2a7ec63]", "0x20")
+ self.bid32_to_binary32("4", "[ba17a214]", "[e2a7ec64]", "0x20")
+ self.bid32_to_binary32("0", "[ba97a214]", "[e451e77d]", "0x20")
+ self.bid32_to_binary32("1", "[ba97a214]", "[e451e77d]", "0x20")
+ self.bid32_to_binary32("2", "[ba97a214]", "[e451e77c]", "0x20")
+ self.bid32_to_binary32("3", "[ba97a214]", "[e451e77c]", "0x20")
+ self.bid32_to_binary32("4", "[ba97a214]", "[e451e77d]", "0x20")
+ self.bid32_to_binary32("0", "[bbacc6f7]", "[e81b5a26]", "0x20")
+ self.bid32_to_binary32("1", "[bbacc6f7]", "[e81b5a26]", "0x20")
+ self.bid32_to_binary32("2", "[bbacc6f7]", "[e81b5a25]", "0x20")
+ self.bid32_to_binary32("3", "[bbacc6f7]", "[e81b5a25]", "0x20")
+ self.bid32_to_binary32("4", "[bbacc6f7]", "[e81b5a26]", "0x20")
+ self.bid32_to_binary32("0", "[bbe33922]", "[e8ac1ff1]", "0x20")
+ self.bid32_to_binary32("1", "[bbe33922]", "[e8ac1ff1]", "0x20")
+ self.bid32_to_binary32("2", "[bbe33922]", "[e8ac1ff0]", "0x20")
+ self.bid32_to_binary32("3", "[bbe33922]", "[e8ac1ff0]", "0x20")
+ self.bid32_to_binary32("4", "[bbe33922]", "[e8ac1ff1]", "0x20")
+ self.bid32_to_binary32("0", "[bc409f31]", "[ea0c2054]", "0x20")
+ self.bid32_to_binary32("1", "[bc409f31]", "[ea0c2054]", "0x20")
+ self.bid32_to_binary32("2", "[bc409f31]", "[ea0c2053]", "0x20")
+ self.bid32_to_binary32("3", "[bc409f31]", "[ea0c2053]", "0x20")
+ self.bid32_to_binary32("4", "[bc409f31]", "[ea0c2054]", "0x20")
+ self.bid32_to_binary32("0", "[bcf57036]", "[ec1f289a]", "0x20")
+ self.bid32_to_binary32("1", "[bcf57036]", "[ec1f289b]", "0x20")
+ self.bid32_to_binary32("2", "[bcf57036]", "[ec1f289a]", "0x20")
+ self.bid32_to_binary32("3", "[bcf57036]", "[ec1f289a]", "0x20")
+ self.bid32_to_binary32("4", "[bcf57036]", "[ec1f289a]", "0x20")
+ self.bid32_to_binary32("0", "[bd24697b]", "[ecf6bccf]", "0x20")
+ self.bid32_to_binary32("1", "[bd24697b]", "[ecf6bccf]", "0x20")
+ self.bid32_to_binary32("2", "[bd24697b]", "[ecf6bcce]", "0x20")
+ self.bid32_to_binary32("3", "[bd24697b]", "[ecf6bcce]", "0x20")
+ self.bid32_to_binary32("4", "[bd24697b]", "[ecf6bccf]", "0x20")
+ self.bid32_to_binary32("0", "[bd4ad0e4]", "[ed7d7c85]", "0x20")
+ self.bid32_to_binary32("1", "[bd4ad0e4]", "[ed7d7c85]", "0x20")
+ self.bid32_to_binary32("2", "[bd4ad0e4]", "[ed7d7c84]", "0x20")
+ self.bid32_to_binary32("3", "[bd4ad0e4]", "[ed7d7c84]", "0x20")
+ self.bid32_to_binary32("4", "[bd4ad0e4]", "[ed7d7c85]", "0x20")
+ self.bid32_to_binary32("0", "[be2b67fc]", "[f065ca5b]", "0x20")
+ self.bid32_to_binary32("1", "[be2b67fc]", "[f065ca5b]", "0x20")
+ self.bid32_to_binary32("2", "[be2b67fc]", "[f065ca5a]", "0x20")
+ self.bid32_to_binary32("3", "[be2b67fc]", "[f065ca5a]", "0x20")
+ self.bid32_to_binary32("4", "[be2b67fc]", "[f065ca5b]", "0x20")
+ self.bid32_to_binary32("0", "[be7ed3da]", "[f127dad8]", "0x20")
+ self.bid32_to_binary32("1", "[be7ed3da]", "[f127dad8]", "0x20")
+ self.bid32_to_binary32("2", "[be7ed3da]", "[f127dad7]", "0x20")
+ self.bid32_to_binary32("3", "[be7ed3da]", "[f127dad7]", "0x20")
+ self.bid32_to_binary32("4", "[be7ed3da]", "[f127dad8]", "0x20")
+ self.bid32_to_binary32("0", "[bf741223]", "[f4700765]", "0x20")
+ self.bid32_to_binary32("1", "[bf741223]", "[f4700766]", "0x20")
+ self.bid32_to_binary32("2", "[bf741223]", "[f4700765]", "0x20")
+ self.bid32_to_binary32("3", "[bf741223]", "[f4700765]", "0x20")
+ self.bid32_to_binary32("4", "[bf741223]", "[f4700765]", "0x20")
+ self.bid32_to_binary32("0", "[bfa4483a]", "[f53b9302]", "0x20")
+ self.bid32_to_binary32("1", "[bfa4483a]", "[f53b9302]", "0x20")
+ self.bid32_to_binary32("2", "[bfa4483a]", "[f53b9301]", "0x20")
+ self.bid32_to_binary32("3", "[bfa4483a]", "[f53b9301]", "0x20")
+ self.bid32_to_binary32("4", "[bfa4483a]", "[f53b9302]", "0x20")
+ self.bid32_to_binary32("0", "[bfba1d8a]", "[f596398a]", "0x20")
+ self.bid32_to_binary32("1", "[bfba1d8a]", "[f596398a]", "0x20")
+ self.bid32_to_binary32("2", "[bfba1d8a]", "[f5963989]", "0x20")
+ self.bid32_to_binary32("3", "[bfba1d8a]", "[f5963989]", "0x20")
+ self.bid32_to_binary32("4", "[bfba1d8a]", "[f596398a]", "0x20")
+ self.bid32_to_binary32("0", "[c072a86f]", "[f7b93d6a]", "0x20")
+ self.bid32_to_binary32("1", "[c072a86f]", "[f7b93d6b]", "0x20")
+ self.bid32_to_binary32("2", "[c072a86f]", "[f7b93d6a]", "0x20")
+ self.bid32_to_binary32("3", "[c072a86f]", "[f7b93d6a]", "0x20")
+ self.bid32_to_binary32("4", "[c072a86f]", "[f7b93d6a]", "0x20")
+ self.bid32_to_binary32("0", "[c0b3a48a]", "[f8d09555]", "0x20")
+ self.bid32_to_binary32("1", "[c0b3a48a]", "[f8d09555]", "0x20")
+ self.bid32_to_binary32("2", "[c0b3a48a]", "[f8d09554]", "0x20")
+ self.bid32_to_binary32("3", "[c0b3a48a]", "[f8d09554]", "0x20")
+ self.bid32_to_binary32("4", "[c0b3a48a]", "[f8d09555]", "0x20")
+ self.bid32_to_binary32("0", "[c0fe07ca]", "[f97e8434]", "0x20")
+ self.bid32_to_binary32("1", "[c0fe07ca]", "[f97e8435]", "0x20")
+ self.bid32_to_binary32("2", "[c0fe07ca]", "[f97e8434]", "0x20")
+ self.bid32_to_binary32("3", "[c0fe07ca]", "[f97e8434]", "0x20")
+ self.bid32_to_binary32("4", "[c0fe07ca]", "[f97e8434]", "0x20")
+ self.bid32_to_binary32("0", "[c12ff378]", "[fa721748]", "0x20")
+ self.bid32_to_binary32("1", "[c12ff378]", "[fa721748]", "0x20")
+ self.bid32_to_binary32("2", "[c12ff378]", "[fa721747]", "0x20")
+ self.bid32_to_binary32("3", "[c12ff378]", "[fa721747]", "0x20")
+ self.bid32_to_binary32("4", "[c12ff378]", "[fa721748]", "0x20")
+ self.bid32_to_binary32("0", "[c1ea4c5d]", "[fca7b58a]", "0x20")
+ self.bid32_to_binary32("1", "[c1ea4c5d]", "[fca7b58a]", "0x20")
+ self.bid32_to_binary32("2", "[c1ea4c5d]", "[fca7b589]", "0x20")
+ self.bid32_to_binary32("3", "[c1ea4c5d]", "[fca7b589]", "0x20")
+ self.bid32_to_binary32("4", "[c1ea4c5d]", "[fca7b58a]", "0x20")
+ self.bid32_to_binary32("0", "[c2154279]", "[fd27b58a]", "0x20")
+ self.bid32_to_binary32("1", "[c2154279]", "[fd27b58a]", "0x20")
+ self.bid32_to_binary32("2", "[c2154279]", "[fd27b589]", "0x20")
+ self.bid32_to_binary32("3", "[c2154279]", "[fd27b589]", "0x20")
+ self.bid32_to_binary32("4", "[c2154279]", "[fd27b58a]", "0x20")
+ self.bid32_to_binary32("0", "[c2b3ec47]", "[ff7ffffd]", "0x20")
+ self.bid32_to_binary32("1", "[c2b3ec47]", "[ff7ffffd]", "0x20")
+ self.bid32_to_binary32("2", "[c2b3ec47]", "[ff7ffffc]", "0x20")
+ self.bid32_to_binary32("3", "[c2b3ec47]", "[ff7ffffc]", "0x20")
+ self.bid32_to_binary32("4", "[c2b3ec47]", "[ff7ffffd]", "0x20")
+ self.bid32_to_binary32("0", "[c2b3ec48]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("1", "[c2b3ec48]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("2", "[c2b3ec48]", "[ff7fffff]", "0x28")
+ self.bid32_to_binary32("3", "[c2b3ec48]", "[ff7fffff]", "0x28")
+ self.bid32_to_binary32("4", "[c2b3ec48]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("0", "[e628c3f7]", "[80000001]", "0x30")
+ self.bid32_to_binary32("1", "[e628c3f7]", "[80000001]", "0x30")
+ self.bid32_to_binary32("2", "[e628c3f7]", "[80000000]", "0x30")
+ self.bid32_to_binary32("3", "[e628c3f7]", "[80000000]", "0x30")
+ self.bid32_to_binary32("4", "[e628c3f7]", "[80000001]", "0x30")
+ self.bid32_to_binary32("0", "[e648c3f7]", "[80000006]", "0x30")
+ self.bid32_to_binary32("1", "[e648c3f7]", "[80000007]", "0x30")
+ self.bid32_to_binary32("2", "[e648c3f7]", "[80000006]", "0x30")
+ self.bid32_to_binary32("3", "[e648c3f7]", "[80000006]", "0x30")
+ self.bid32_to_binary32("4", "[e648c3f7]", "[80000006]", "0x30")
+ self.bid32_to_binary32("0", "[e668c3f7]", "[80000040]", "0x30")
+ self.bid32_to_binary32("1", "[e668c3f7]", "[80000040]", "0x30")
+ self.bid32_to_binary32("2", "[e668c3f7]", "[8000003f]", "0x30")
+ self.bid32_to_binary32("3", "[e668c3f7]", "[8000003f]", "0x30")
+ self.bid32_to_binary32("4", "[e668c3f7]", "[80000040]", "0x30")
+ self.bid32_to_binary32("0", "[e757de10]", "[83a9567d]", "0x20")
+ self.bid32_to_binary32("1", "[e757de10]", "[83a9567e]", "0x20")
+ self.bid32_to_binary32("2", "[e757de10]", "[83a9567d]", "0x20")
+ self.bid32_to_binary32("3", "[e757de10]", "[83a9567d]", "0x20")
+ self.bid32_to_binary32("4", "[e757de10]", "[83a9567d]", "0x20")
+ self.bid32_to_binary32("0", "[e7980f56]", "[8704767e]", "0x20")
+ self.bid32_to_binary32("1", "[e7980f56]", "[8704767e]", "0x20")
+ self.bid32_to_binary32("2", "[e7980f56]", "[8704767d]", "0x20")
+ self.bid32_to_binary32("3", "[e7980f56]", "[8704767d]", "0x20")
+ self.bid32_to_binary32("4", "[e7980f56]", "[8704767e]", "0x20")
+ self.bid32_to_binary32("0", "[e892a415]", "[943e59d0]", "0x20")
+ self.bid32_to_binary32("1", "[e892a415]", "[943e59d0]", "0x20")
+ self.bid32_to_binary32("2", "[e892a415]", "[943e59cf]", "0x20")
+ self.bid32_to_binary32("3", "[e892a415]", "[943e59cf]", "0x20")
+ self.bid32_to_binary32("4", "[e892a415]", "[943e59d0]", "0x20")
+ self.bid32_to_binary32("0", "[e9569a05]", "[9e3a6f90]", "0x20")
+ self.bid32_to_binary32("1", "[e9569a05]", "[9e3a6f91]", "0x20")
+ self.bid32_to_binary32("2", "[e9569a05]", "[9e3a6f90]", "0x20")
+ self.bid32_to_binary32("3", "[e9569a05]", "[9e3a6f90]", "0x20")
+ self.bid32_to_binary32("4", "[e9569a05]", "[9e3a6f90]", "0x20")
+ self.bid32_to_binary32("0", "[eb8cea0c]", "[bc174e36]", "0x20")
+ self.bid32_to_binary32("1", "[eb8cea0c]", "[bc174e37]", "0x20")
+ self.bid32_to_binary32("2", "[eb8cea0c]", "[bc174e36]", "0x20")
+ self.bid32_to_binary32("3", "[eb8cea0c]", "[bc174e36]", "0x20")
+ self.bid32_to_binary32("4", "[eb8cea0c]", "[bc174e36]", "0x20")
+ self.bid32_to_binary32("0", "[ebd7b98a]", "[bf7e8d4a]", "0x20")
+ self.bid32_to_binary32("1", "[ebd7b98a]", "[bf7e8d4a]", "0x20")
+ self.bid32_to_binary32("2", "[ebd7b98a]", "[bf7e8d49]", "0x20")
+ self.bid32_to_binary32("3", "[ebd7b98a]", "[bf7e8d49]", "0x20")
+ self.bid32_to_binary32("4", "[ebd7b98a]", "[bf7e8d4a]", "0x20")
+ self.bid32_to_binary32("0", "[ebf887d3]", "[c11ff09c]", "0x20")
+ self.bid32_to_binary32("1", "[ebf887d3]", "[c11ff09d]", "0x20")
+ self.bid32_to_binary32("2", "[ebf887d3]", "[c11ff09c]", "0x20")
+ self.bid32_to_binary32("3", "[ebf887d3]", "[c11ff09c]", "0x20")
+ self.bid32_to_binary32("4", "[ebf887d3]", "[c11ff09c]", "0x20")
+ self.bid32_to_binary32("0", "[ec3894c0]", "[c479fd22]", "0x20")
+ self.bid32_to_binary32("1", "[ec3894c0]", "[c479fd22]", "0x20")
+ self.bid32_to_binary32("2", "[ec3894c0]", "[c479fd21]", "0x20")
+ self.bid32_to_binary32("3", "[ec3894c0]", "[c479fd21]", "0x20")
+ self.bid32_to_binary32("4", "[ec3894c0]", "[c479fd22]", "0x20")
+ self.bid32_to_binary32("0", "[ec98967e]", "[c97423fd]", "0x20")
+ self.bid32_to_binary32("1", "[ec98967e]", "[c97423fd]", "0x20")
+ self.bid32_to_binary32("2", "[ec98967e]", "[c97423fc]", "0x20")
+ self.bid32_to_binary32("3", "[ec98967e]", "[c97423fc]", "0x20")
+ self.bid32_to_binary32("4", "[ec98967e]", "[c97423fd]", "0x20")
+ self.bid32_to_binary32("0", "[ecd8967b]", "[ccbebc1a]", "0x20")
+ self.bid32_to_binary32("1", "[ecd8967b]", "[ccbebc1a]", "0x20")
+ self.bid32_to_binary32("2", "[ecd8967b]", "[ccbebc19]", "0x20")
+ self.bid32_to_binary32("3", "[ecd8967b]", "[ccbebc19]", "0x20")
+ self.bid32_to_binary32("4", "[ecd8967b]", "[ccbebc1a]", "0x20")
+ self.bid32_to_binary32("0", "[ecf8967f]", "[ce6e6b26]", "0x20")
+ self.bid32_to_binary32("1", "[ecf8967f]", "[ce6e6b27]", "0x20")
+ self.bid32_to_binary32("2", "[ecf8967f]", "[ce6e6b26]", "0x20")
+ self.bid32_to_binary32("3", "[ecf8967f]", "[ce6e6b26]", "0x20")
+ self.bid32_to_binary32("4", "[ecf8967f]", "[ce6e6b26]", "0x20")
+ self.bid32_to_binary32("0", "[ed38956f]", "[d1ba426a]", "0x20")
+ self.bid32_to_binary32("1", "[ed38956f]", "[d1ba426a]", "0x20")
+ self.bid32_to_binary32("2", "[ed38956f]", "[d1ba4269]", "0x20")
+ self.bid32_to_binary32("3", "[ed38956f]", "[d1ba4269]", "0x20")
+ self.bid32_to_binary32("4", "[ed38956f]", "[d1ba426a]", "0x20")
+ self.bid32_to_binary32("0", "[ed781ec7]", "[d51112ba]", "0x20")
+ self.bid32_to_binary32("1", "[ed781ec7]", "[d51112ba]", "0x20")
+ self.bid32_to_binary32("2", "[ed781ec7]", "[d51112b9]", "0x20")
+ self.bid32_to_binary32("3", "[ed781ec7]", "[d51112b9]", "0x20")
+ self.bid32_to_binary32("4", "[ed781ec7]", "[d51112ba]", "0x20")
+ self.bid32_to_binary32("0", "[ed98395b]", "[d6b57717]", "0x20")
+ self.bid32_to_binary32("1", "[ed98395b]", "[d6b57718]", "0x20")
+ self.bid32_to_binary32("2", "[ed98395b]", "[d6b57717]", "0x20")
+ self.bid32_to_binary32("3", "[ed98395b]", "[d6b57717]", "0x20")
+ self.bid32_to_binary32("4", "[ed98395b]", "[d6b57717]", "0x20")
+ self.bid32_to_binary32("0", "[edd16393]", "[da07676e]", "0x20")
+ self.bid32_to_binary32("1", "[edd16393]", "[da07676e]", "0x20")
+ self.bid32_to_binary32("2", "[edd16393]", "[da07676d]", "0x20")
+ self.bid32_to_binary32("3", "[edd16393]", "[da07676d]", "0x20")
+ self.bid32_to_binary32("4", "[edd16393]", "[da07676e]", "0x20")
+ self.bid32_to_binary32("0", "[ee8afc85]", "[e3f6e3b3]", "0x20")
+ self.bid32_to_binary32("1", "[ee8afc85]", "[e3f6e3b4]", "0x20")
+ self.bid32_to_binary32("2", "[ee8afc85]", "[e3f6e3b3]", "0x20")
+ self.bid32_to_binary32("3", "[ee8afc85]", "[e3f6e3b3]", "0x20")
+ self.bid32_to_binary32("4", "[ee8afc85]", "[e3f6e3b3]", "0x20")
+ self.bid32_to_binary32("0", "[eecb2a7f]", "[e74121b2]", "0x20")
+ self.bid32_to_binary32("1", "[eecb2a7f]", "[e74121b2]", "0x20")
+ self.bid32_to_binary32("2", "[eecb2a7f]", "[e74121b1]", "0x20")
+ self.bid32_to_binary32("3", "[eecb2a7f]", "[e74121b1]", "0x20")
+ self.bid32_to_binary32("4", "[eecb2a7f]", "[e74121b2]", "0x20")
+ self.bid32_to_binary32("0", "[ef690028]", "[ef910e17]", "0x20")
+ self.bid32_to_binary32("1", "[ef690028]", "[ef910e18]", "0x20")
+ self.bid32_to_binary32("2", "[ef690028]", "[ef910e17]", "0x20")
+ self.bid32_to_binary32("3", "[ef690028]", "[ef910e17]", "0x20")
+ self.bid32_to_binary32("4", "[ef690028]", "[ef910e17]", "0x20")
+ self.bid32_to_binary32("0", "[ef927f20]", "[f141e2f9]", "0x20")
+ self.bid32_to_binary32("1", "[ef927f20]", "[f141e2f9]", "0x20")
+ self.bid32_to_binary32("2", "[ef927f20]", "[f141e2f8]", "0x20")
+ self.bid32_to_binary32("3", "[ef927f20]", "[f141e2f8]", "0x20")
+ self.bid32_to_binary32("4", "[ef927f20]", "[f141e2f9]", "0x20")
+ self.bid32_to_binary32("0", "[f7f8967f]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("1", "[f7f8967f]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("2", "[f7f8967f]", "[ff7fffff]", "0x28")
+ self.bid32_to_binary32("3", "[f7f8967f]", "[ff7fffff]", "0x28")
+ self.bid32_to_binary32("4", "[f7f8967f]", "[ff800000]", "0x28")
+ self.bid32_to_binary32("0", "[f8000000]", "[ff800000]", "0x00")
+ self.bid32_to_binary32("1", "[f8000000]", "[ff800000]", "0x00")
+ self.bid32_to_binary32("2", "[f8000000]", "[ff800000]", "0x00")
+ self.bid32_to_binary32("3", "[f8000000]", "[ff800000]", "0x00")
+ self.bid32_to_binary32("4", "[f8000000]", "[ff800000]", "0x00")
+ }
+
+ private func bid32_to_binary32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseFloat(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Float(arg0, rounding: rounding, status: &status)
+ self.assertBinaryFloatingPoint(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_binary64() {
+ self.bid32_to_binary64("0", "[00000001]", "[2af665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("0", "[00000001]", "[2AF665BF1D3E6A8D]", "20")
+ self.bid32_to_binary64("0", "[00989680]", "[2C75830F53F56FD4]", "20")
+ self.bid32_to_binary64("0", "[010bcb3b]", "[2c99cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("0", "[03000001]", "[2c355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("0", "[03800001]", "[2c6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("0", "[04f08deb]", "[2e425799582d3bbe]", "0x20")
+ self.bid32_to_binary64("0", "[0881888c]", "[2f87d4b57562e710]", "0x20")
+ self.bid32_to_binary64("0", "[0c8a06d8]", "[315d0681489839d5]", "0x20")
+ self.bid32_to_binary64("0", "[1082384c]", "[32e326cd14f71c23]", "0x20")
+ self.bid32_to_binary64("0", "[1489fdf7]", "[34b00e7db3b3f242]", "0x20")
+ self.bid32_to_binary64("0", "[1871b2b3]", "[365b39ab78718832]", "0x20")
+ self.bid32_to_binary64("0", "[189ABA47]", "[366FFFFFE75B0A51]", "20")
+ self.bid32_to_binary64("0", "[189ABA49]", "[36700001262D4AB6]", "20")
+ self.bid32_to_binary64("0", "[18EAE91C]", "[368FFFFFE75B0A51]", "20")
+ self.bid32_to_binary64("0", "[18EAE923]", "[36900000FFDD5204]", "20")
+ self.bid32_to_binary64("0", "[1910095E]", "[369800003A243920]", "20")
+ self.bid32_to_binary64("0", "[191561D2]", "[369FFFFF4E1B278A]", "20")
+ self.bid32_to_binary64("0", "[192012BC]", "[36A800003A243920]", "20")
+ self.bid32_to_binary64("0", "[1A0036BD]", "[36A00001262D4AB6]", "20")
+ self.bid32_to_binary64("0", "[1A6D79F8]", "[372FFFFFF5B90794]", "20")
+ self.bid32_to_binary64("0", "[1A6D79FF]", "[3730000100C331D9]", "20")
+ self.bid32_to_binary64("0", "[1c37083b]", "[37f3a2d93e5ad254]", "0x20")
+ self.bid32_to_binary64("0", "[2082ffad]", "[398fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("0", "[24033b59]", "[3b047bf052eac347]", "0x20")
+ self.bid32_to_binary64("0", "[2bb057d9]", "[3e61025d42033846]", "0x20")
+ self.bid32_to_binary64("0", "[2ecd7c6d]", "[3faa000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[2ff9ff92]", "[401ffb2b3461309c]", "0x20")
+ self.bid32_to_binary64("0", "[3200000f]", "[3ff8000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[32800000]", "[0000000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[32800001]", "[3FF0000000000000]", "00")
+ self.bid32_to_binary64("0", "[32800001]", "[3ff0000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[32800040]", "[4050000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[328003e7]", "[408f380000000000]", "0x00")
+ self.bid32_to_binary64("0", "[328003e8]", "[408f400000000000]", "0x00")
+ self.bid32_to_binary64("0", "[3281ffff]", "[40FFFFF000000000]", "00")
+ self.bid32_to_binary64("0", "[3283ffff]", "[410FFFF800000000]", "00")
+ self.bid32_to_binary64("0", "[3287ffff]", "[411FFFFC00000000]", "00")
+ self.bid32_to_binary64("0", "[328fffff]", "[412FFFFE00000000]", "00")
+ self.bid32_to_binary64("0", "[3297ffff]", "[4137FFFF00000000]", "00")
+ self.bid32_to_binary64("0", "[3319999A]", "[4170000040000000]", "00")
+ self.bid32_to_binary64("0", "[33a8f5c2]", "[41afffff90000000]", "0x00")
+ self.bid32_to_binary64("0", "[3800AFEC]", "[433000001635E000]", "00")
+ self.bid32_to_binary64("0", "[391C25C2]", "[43EFFFFF89707FA8]", "00")
+ self.bid32_to_binary64("0", "[3b2e1de6]", "[44cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("0", "[3edc99f0]", "[46532645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("0", "[404F3A69]", "[46F00000075046A6]", "20")
+ self.bid32_to_binary64("0", "[408FD87B]", "[46FFFFFF3FD4FE24]", "20")
+ self.bid32_to_binary64("0", "[42B3DEFD]", "[47EFF7CEF1751C53]", "20")
+ self.bid32_to_binary64("0", "[42CDE26C]", "[47F8000027246519]", "20")
+ self.bid32_to_binary64("0", "[43175D87]", "[4812000044CCB73D]", "20")
+ self.bid32_to_binary64("0", "[47140a10]", "[49b70105df3d47cb]", "0x20")
+ self.bid32_to_binary64("0", "[4afda8f2]", "[4b557eb8ad52a5c9]", "0x20")
+ self.bid32_to_binary64("0", "[4e980326]", "[4cd87b809b494507]", "0x20")
+ self.bid32_to_binary64("0", "[5aa9d03d]", "[51e1a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("0", "[69edd92d]", "[3cd0bf1a651525e8]", "0x20")
+ self.bid32_to_binary64("0", "[6CA00000]", "[4160000000000000]", "00")
+ self.bid32_to_binary64("0", "[6CB89680]", "[0000000000000000]", "00")
+ self.bid32_to_binary64("0", "[6dc97056]", "[433ffffdd85fdc00]", "0x00")
+ self.bid32_to_binary64("0", "[6DC9705F]", "[433FFFFFF0D0F600]", "00")
+ self.bid32_to_binary64("0", "[6E2CBCCC]", "[43DFFFFFFDDAD230]", "00")
+ self.bid32_to_binary64("0", "[70c9732f]", "[483a78ce1807f5f8]", "0x20")
+ self.bid32_to_binary64("0", "[74b6e7ac]", "[4eaca897d8932bce]", "0x20")
+ self.bid32_to_binary64("0", "[758a9968]", "[501f60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("0", "[77f8967f]", "[5412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("0", "[77F8967F]", "[5412BA093E5C6114]", "20")
+ self.bid32_to_binary64("0", "[77f89680]", "[0000000000000000]", "00")
+ self.bid32_to_binary64("0", "[78000000]", "[7ff0000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[7c000000]", "[7FF8000000000000]", "00")
+ self.bid32_to_binary64("0", "[7c0F423F]", "[7FFFA11F80000000]", "00")
+ self.bid32_to_binary64("0", "[7c0F4240]", "[7FF8000000000000]", "00")
+ self.bid32_to_binary64("0", "[7e000000]", "[7FF8000000000000]", "01")
+ self.bid32_to_binary64("0", "[7e0F423F]", "[7FFFA11F80000000]", "01")
+ self.bid32_to_binary64("0", "[7e0F4240]", "[7FF8000000000000]", "01")
+ self.bid32_to_binary64("0", "[80000001]", "[aaf665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("0", "[810bcb3b]", "[ac99cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("0", "[83000001]", "[ac355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("0", "[83800001]", "[ac6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("0", "[84f08deb]", "[ae425799582d3bbe]", "0x20")
+ self.bid32_to_binary64("0", "[8881888c]", "[af87d4b57562e710]", "0x20")
+ self.bid32_to_binary64("0", "[8c8a06d8]", "[b15d0681489839d5]", "0x20")
+ self.bid32_to_binary64("0", "[9082384c]", "[b2e326cd14f71c23]", "0x20")
+ self.bid32_to_binary64("0", "[9489fdf7]", "[b4b00e7db3b3f242]", "0x20")
+ self.bid32_to_binary64("0", "[9871b2b3]", "[b65b39ab78718832]", "0x20")
+ self.bid32_to_binary64("0", "[9c37083b]", "[b7f3a2d93e5ad254]", "0x20")
+ self.bid32_to_binary64("0", "[a082ffad]", "[b98fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("0", "[a4033b59]", "[bb047bf052eac347]", "0x20")
+ self.bid32_to_binary64("0", "[abb057d9]", "[be61025d42033846]", "0x20")
+ self.bid32_to_binary64("0", "[aecd7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[aff9ff92]", "[c01ffb2b3461309c]", "0x20")
+ self.bid32_to_binary64("0", "[b200000f]", "[bff8000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[b2800001]", "[bff0000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[b2800040]", "[c050000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[b28003e7]", "[c08f380000000000]", "0x00")
+ self.bid32_to_binary64("0", "[b28003e8]", "[c08f400000000000]", "0x00")
+ self.bid32_to_binary64("0", "[b3a8f5c2]", "[c1afffff90000000]", "0x00")
+ self.bid32_to_binary64("0", "[bb2e1de6]", "[c4cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("0", "[bedc99f0]", "[c6532645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("0", "[c7140a10]", "[c9b70105df3d47cb]", "0x20")
+ self.bid32_to_binary64("0", "[cafda8f2]", "[cb557eb8ad52a5c9]", "0x20")
+ self.bid32_to_binary64("0", "[ce980326]", "[ccd87b809b494507]", "0x20")
+ self.bid32_to_binary64("0", "[daa9d03d]", "[d1e1a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("0", "[e9edd92d]", "[bcd0bf1a651525e8]", "0x20")
+ self.bid32_to_binary64("0", "[edc97056]", "[c33ffffdd85fdc00]", "0x00")
+ self.bid32_to_binary64("0", "[f0c9732f]", "[c83a78ce1807f5f8]", "0x20")
+ self.bid32_to_binary64("0", "[f4b6e7ac]", "[ceaca897d8932bce]", "0x20")
+ self.bid32_to_binary64("0", "[f58a9968]", "[d01f60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("0", "[f7f8967f]", "[d412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("0", "[f8000000]", "[fff0000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[00000001]", "[2af665bf1d3e6a8c]", "0x20")
+ self.bid32_to_binary64("1", "[010bcb3b]", "[2c99cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("1", "[03000001]", "[2c355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("1", "[03800001]", "[2c6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("1", "[04f08deb]", "[2e425799582d3bbd]", "0x20")
+ self.bid32_to_binary64("1", "[0881888c]", "[2f87d4b57562e710]", "0x20")
+ self.bid32_to_binary64("1", "[0c8a06d8]", "[315d0681489839d5]", "0x20")
+ self.bid32_to_binary64("1", "[1082384c]", "[32e326cd14f71c23]", "0x20")
+ self.bid32_to_binary64("1", "[1489fdf7]", "[34b00e7db3b3f241]", "0x20")
+ self.bid32_to_binary64("1", "[1871b2b3]", "[365b39ab78718831]", "0x20")
+ self.bid32_to_binary64("1", "[1c37083b]", "[37f3a2d93e5ad253]", "0x20")
+ self.bid32_to_binary64("1", "[2082ffad]", "[398fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("1", "[24033b59]", "[3b047bf052eac347]", "0x20")
+ self.bid32_to_binary64("1", "[2bb057d9]", "[3e61025d42033846]", "0x20")
+ self.bid32_to_binary64("1", "[2ecd7c6d]", "[3faa000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[2ff9ff92]", "[401ffb2b3461309c]", "0x20")
+ self.bid32_to_binary64("1", "[3200000f]", "[3ff8000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[32800000]", "[0000000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[32800001]", "[3ff0000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[32800040]", "[4050000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[328003e7]", "[408f380000000000]", "0x00")
+ self.bid32_to_binary64("1", "[328003e8]", "[408f400000000000]", "0x00")
+ self.bid32_to_binary64("1", "[33a8f5c2]", "[41afffff90000000]", "0x00")
+ self.bid32_to_binary64("1", "[3b2e1de6]", "[44cffffcd7edc455]", "0x20")
+ self.bid32_to_binary64("1", "[3edc99f0]", "[46532645e1ba93ef]", "0x20")
+ self.bid32_to_binary64("1", "[47140a10]", "[49b70105df3d47cb]", "0x20")
+ self.bid32_to_binary64("1", "[4afda8f2]", "[4b557eb8ad52a5c8]", "0x20")
+ self.bid32_to_binary64("1", "[4e980326]", "[4cd87b809b494507]", "0x20")
+ self.bid32_to_binary64("1", "[5aa9d03d]", "[51e1a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("1", "[69edd92d]", "[3cd0bf1a651525e7]", "0x20")
+ self.bid32_to_binary64("1", "[6dc97056]", "[433ffffdd85fdc00]", "0x00")
+ self.bid32_to_binary64("1", "[70c9732f]", "[483a78ce1807f5f8]", "0x20")
+ self.bid32_to_binary64("1", "[74b6e7ac]", "[4eaca897d8932bce]", "0x20")
+ self.bid32_to_binary64("1", "[758a9968]", "[501f60b4a930ae17]", "0x20")
+ self.bid32_to_binary64("1", "[77f8967f]", "[5412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("1", "[78000000]", "[7ff0000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[80000001]", "[aaf665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("1", "[810bcb3b]", "[ac99cbd06456ee4f]", "0x20")
+ self.bid32_to_binary64("1", "[83000001]", "[ac355c2076bf9a56]", "0x20")
+ self.bid32_to_binary64("1", "[83800001]", "[ac6ab328946f80eb]", "0x20")
+ self.bid32_to_binary64("1", "[84f08deb]", "[ae425799582d3bbe]", "0x20")
+ self.bid32_to_binary64("1", "[8881888c]", "[af87d4b57562e711]", "0x20")
+ self.bid32_to_binary64("1", "[8c8a06d8]", "[b15d0681489839d6]", "0x20")
+ self.bid32_to_binary64("1", "[9082384c]", "[b2e326cd14f71c24]", "0x20")
+ self.bid32_to_binary64("1", "[9489fdf7]", "[b4b00e7db3b3f242]", "0x20")
+ self.bid32_to_binary64("1", "[9871b2b3]", "[b65b39ab78718832]", "0x20")
+ self.bid32_to_binary64("1", "[9c37083b]", "[b7f3a2d93e5ad254]", "0x20")
+ self.bid32_to_binary64("1", "[a082ffad]", "[b98fe3544145e9d9]", "0x20")
+ self.bid32_to_binary64("1", "[a4033b59]", "[bb047bf052eac348]", "0x20")
+ self.bid32_to_binary64("1", "[abb057d9]", "[be61025d42033847]", "0x20")
+ self.bid32_to_binary64("1", "[aecd7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[aff9ff92]", "[c01ffb2b3461309d]", "0x20")
+ self.bid32_to_binary64("1", "[b200000f]", "[bff8000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[b2800001]", "[bff0000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[b2800040]", "[c050000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[b28003e7]", "[c08f380000000000]", "0x00")
+ self.bid32_to_binary64("1", "[b28003e8]", "[c08f400000000000]", "0x00")
+ self.bid32_to_binary64("1", "[b3a8f5c2]", "[c1afffff90000000]", "0x00")
+ self.bid32_to_binary64("1", "[bb2e1de6]", "[c4cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("1", "[bedc99f0]", "[c6532645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("1", "[c7140a10]", "[c9b70105df3d47cc]", "0x20")
+ self.bid32_to_binary64("1", "[cafda8f2]", "[cb557eb8ad52a5c9]", "0x20")
+ self.bid32_to_binary64("1", "[ce980326]", "[ccd87b809b494508]", "0x20")
+ self.bid32_to_binary64("1", "[daa9d03d]", "[d1e1a1d9135cca54]", "0x20")
+ self.bid32_to_binary64("1", "[e9edd92d]", "[bcd0bf1a651525e8]", "0x20")
+ self.bid32_to_binary64("1", "[edc97056]", "[c33ffffdd85fdc00]", "0x00")
+ self.bid32_to_binary64("1", "[f0c9732f]", "[c83a78ce1807f5f9]", "0x20")
+ self.bid32_to_binary64("1", "[f4b6e7ac]", "[ceaca897d8932bcf]", "0x20")
+ self.bid32_to_binary64("1", "[f58a9968]", "[d01f60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("1", "[f7f8967f]", "[d412ba093e5c6115]", "0x20")
+ self.bid32_to_binary64("1", "[f8000000]", "[fff0000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[00000001]", "[2af665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("2", "[010bcb3b]", "[2c99cbd06456ee4f]", "0x20")
+ self.bid32_to_binary64("2", "[03000001]", "[2c355c2076bf9a56]", "0x20")
+ self.bid32_to_binary64("2", "[03800001]", "[2c6ab328946f80eb]", "0x20")
+ self.bid32_to_binary64("2", "[04f08deb]", "[2e425799582d3bbe]", "0x20")
+ self.bid32_to_binary64("2", "[0881888c]", "[2f87d4b57562e711]", "0x20")
+ self.bid32_to_binary64("2", "[0c8a06d8]", "[315d0681489839d6]", "0x20")
+ self.bid32_to_binary64("2", "[1082384c]", "[32e326cd14f71c24]", "0x20")
+ self.bid32_to_binary64("2", "[1489fdf7]", "[34b00e7db3b3f242]", "0x20")
+ self.bid32_to_binary64("2", "[1871b2b3]", "[365b39ab78718832]", "0x20")
+ self.bid32_to_binary64("2", "[1c37083b]", "[37f3a2d93e5ad254]", "0x20")
+ self.bid32_to_binary64("2", "[2082ffad]", "[398fe3544145e9d9]", "0x20")
+ self.bid32_to_binary64("2", "[24033b59]", "[3b047bf052eac348]", "0x20")
+ self.bid32_to_binary64("2", "[2bb057d9]", "[3e61025d42033847]", "0x20")
+ self.bid32_to_binary64("2", "[2ecd7c6d]", "[3faa000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[2ff9ff92]", "[401ffb2b3461309d]", "0x20")
+ self.bid32_to_binary64("2", "[3200000f]", "[3ff8000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[32800000]", "[0000000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[32800001]", "[3ff0000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[32800040]", "[4050000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[328003e7]", "[408f380000000000]", "0x00")
+ self.bid32_to_binary64("2", "[328003e8]", "[408f400000000000]", "0x00")
+ self.bid32_to_binary64("2", "[33a8f5c2]", "[41afffff90000000]", "0x00")
+ self.bid32_to_binary64("2", "[3b2e1de6]", "[44cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("2", "[3edc99f0]", "[46532645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("2", "[47140a10]", "[49b70105df3d47cc]", "0x20")
+ self.bid32_to_binary64("2", "[4afda8f2]", "[4b557eb8ad52a5c9]", "0x20")
+ self.bid32_to_binary64("2", "[4e980326]", "[4cd87b809b494508]", "0x20")
+ self.bid32_to_binary64("2", "[5aa9d03d]", "[51e1a1d9135cca54]", "0x20")
+ self.bid32_to_binary64("2", "[69edd92d]", "[3cd0bf1a651525e8]", "0x20")
+ self.bid32_to_binary64("2", "[6dc97056]", "[433ffffdd85fdc00]", "0x00")
+ self.bid32_to_binary64("2", "[70c9732f]", "[483a78ce1807f5f9]", "0x20")
+ self.bid32_to_binary64("2", "[74b6e7ac]", "[4eaca897d8932bcf]", "0x20")
+ self.bid32_to_binary64("2", "[758a9968]", "[501f60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("2", "[77f8967f]", "[5412ba093e5c6115]", "0x20")
+ self.bid32_to_binary64("2", "[78000000]", "[7ff0000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[80000001]", "[aaf665bf1d3e6a8c]", "0x20")
+ self.bid32_to_binary64("2", "[810bcb3b]", "[ac99cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("2", "[83000001]", "[ac355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("2", "[83800001]", "[ac6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("2", "[84f08deb]", "[ae425799582d3bbd]", "0x20")
+ self.bid32_to_binary64("2", "[8881888c]", "[af87d4b57562e710]", "0x20")
+ self.bid32_to_binary64("2", "[8c8a06d8]", "[b15d0681489839d5]", "0x20")
+ self.bid32_to_binary64("2", "[9082384c]", "[b2e326cd14f71c23]", "0x20")
+ self.bid32_to_binary64("2", "[9489fdf7]", "[b4b00e7db3b3f241]", "0x20")
+ self.bid32_to_binary64("2", "[9871b2b3]", "[b65b39ab78718831]", "0x20")
+ self.bid32_to_binary64("2", "[9c37083b]", "[b7f3a2d93e5ad253]", "0x20")
+ self.bid32_to_binary64("2", "[a082ffad]", "[b98fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("2", "[a4033b59]", "[bb047bf052eac347]", "0x20")
+ self.bid32_to_binary64("2", "[abb057d9]", "[be61025d42033846]", "0x20")
+ self.bid32_to_binary64("2", "[aecd7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[aff9ff92]", "[c01ffb2b3461309c]", "0x20")
+ self.bid32_to_binary64("2", "[b200000f]", "[bff8000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[b2800001]", "[bff0000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[b2800040]", "[c050000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[b28003e7]", "[c08f380000000000]", "0x00")
+ self.bid32_to_binary64("2", "[b28003e8]", "[c08f400000000000]", "0x00")
+ self.bid32_to_binary64("2", "[b3a8f5c2]", "[c1afffff90000000]", "0x00")
+ self.bid32_to_binary64("2", "[bb2e1de6]", "[c4cffffcd7edc455]", "0x20")
+ self.bid32_to_binary64("2", "[bedc99f0]", "[c6532645e1ba93ef]", "0x20")
+ self.bid32_to_binary64("2", "[c7140a10]", "[c9b70105df3d47cb]", "0x20")
+ self.bid32_to_binary64("2", "[cafda8f2]", "[cb557eb8ad52a5c8]", "0x20")
+ self.bid32_to_binary64("2", "[ce980326]", "[ccd87b809b494507]", "0x20")
+ self.bid32_to_binary64("2", "[daa9d03d]", "[d1e1a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("2", "[e9edd92d]", "[bcd0bf1a651525e7]", "0x20")
+ self.bid32_to_binary64("2", "[edc97056]", "[c33ffffdd85fdc00]", "0x00")
+ self.bid32_to_binary64("2", "[f0c9732f]", "[c83a78ce1807f5f8]", "0x20")
+ self.bid32_to_binary64("2", "[f4b6e7ac]", "[ceaca897d8932bce]", "0x20")
+ self.bid32_to_binary64("2", "[f58a9968]", "[d01f60b4a930ae17]", "0x20")
+ self.bid32_to_binary64("2", "[f7f8967f]", "[d412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("2", "[f8000000]", "[fff0000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[00000001]", "[2af665bf1d3e6a8c]", "0x20")
+ self.bid32_to_binary64("3", "[010bcb3b]", "[2c99cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("3", "[03000001]", "[2c355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("3", "[03800001]", "[2c6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("3", "[04f08deb]", "[2e425799582d3bbd]", "0x20")
+ self.bid32_to_binary64("3", "[0881888c]", "[2f87d4b57562e710]", "0x20")
+ self.bid32_to_binary64("3", "[0c8a06d8]", "[315d0681489839d5]", "0x20")
+ self.bid32_to_binary64("3", "[1082384c]", "[32e326cd14f71c23]", "0x20")
+ self.bid32_to_binary64("3", "[1489fdf7]", "[34b00e7db3b3f241]", "0x20")
+ self.bid32_to_binary64("3", "[1871b2b3]", "[365b39ab78718831]", "0x20")
+ self.bid32_to_binary64("3", "[1c37083b]", "[37f3a2d93e5ad253]", "0x20")
+ self.bid32_to_binary64("3", "[2082ffad]", "[398fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("3", "[24033b59]", "[3b047bf052eac347]", "0x20")
+ self.bid32_to_binary64("3", "[2bb057d9]", "[3e61025d42033846]", "0x20")
+ self.bid32_to_binary64("3", "[2ecd7c6d]", "[3faa000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[2ff9ff92]", "[401ffb2b3461309c]", "0x20")
+ self.bid32_to_binary64("3", "[3200000f]", "[3ff8000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[32800000]", "[0000000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[32800001]", "[3ff0000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[32800040]", "[4050000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[328003e7]", "[408f380000000000]", "0x00")
+ self.bid32_to_binary64("3", "[328003e8]", "[408f400000000000]", "0x00")
+ self.bid32_to_binary64("3", "[33a8f5c2]", "[41afffff90000000]", "0x00")
+ self.bid32_to_binary64("3", "[3b2e1de6]", "[44cffffcd7edc455]", "0x20")
+ self.bid32_to_binary64("3", "[3edc99f0]", "[46532645e1ba93ef]", "0x20")
+ self.bid32_to_binary64("3", "[47140a10]", "[49b70105df3d47cb]", "0x20")
+ self.bid32_to_binary64("3", "[4afda8f2]", "[4b557eb8ad52a5c8]", "0x20")
+ self.bid32_to_binary64("3", "[4e980326]", "[4cd87b809b494507]", "0x20")
+ self.bid32_to_binary64("3", "[5aa9d03d]", "[51e1a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("3", "[69edd92d]", "[3cd0bf1a651525e7]", "0x20")
+ self.bid32_to_binary64("3", "[6dc97056]", "[433ffffdd85fdc00]", "0x00")
+ self.bid32_to_binary64("3", "[70c9732f]", "[483a78ce1807f5f8]", "0x20")
+ self.bid32_to_binary64("3", "[74b6e7ac]", "[4eaca897d8932bce]", "0x20")
+ self.bid32_to_binary64("3", "[758a9968]", "[501f60b4a930ae17]", "0x20")
+ self.bid32_to_binary64("3", "[77f8967f]", "[5412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("3", "[78000000]", "[7ff0000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[80000001]", "[aaf665bf1d3e6a8c]", "0x20")
+ self.bid32_to_binary64("3", "[810bcb3b]", "[ac99cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("3", "[83000001]", "[ac355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("3", "[83800001]", "[ac6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("3", "[84f08deb]", "[ae425799582d3bbd]", "0x20")
+ self.bid32_to_binary64("3", "[8881888c]", "[af87d4b57562e710]", "0x20")
+ self.bid32_to_binary64("3", "[8c8a06d8]", "[b15d0681489839d5]", "0x20")
+ self.bid32_to_binary64("3", "[9082384c]", "[b2e326cd14f71c23]", "0x20")
+ self.bid32_to_binary64("3", "[9489fdf7]", "[b4b00e7db3b3f241]", "0x20")
+ self.bid32_to_binary64("3", "[9871b2b3]", "[b65b39ab78718831]", "0x20")
+ self.bid32_to_binary64("3", "[9c37083b]", "[b7f3a2d93e5ad253]", "0x20")
+ self.bid32_to_binary64("3", "[a082ffad]", "[b98fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("3", "[a4033b59]", "[bb047bf052eac347]", "0x20")
+ self.bid32_to_binary64("3", "[abb057d9]", "[be61025d42033846]", "0x20")
+ self.bid32_to_binary64("3", "[aecd7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[aff9ff92]", "[c01ffb2b3461309c]", "0x20")
+ self.bid32_to_binary64("3", "[b200000f]", "[bff8000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[b2800001]", "[bff0000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[b2800040]", "[c050000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[b28003e7]", "[c08f380000000000]", "0x00")
+ self.bid32_to_binary64("3", "[b28003e8]", "[c08f400000000000]", "0x00")
+ self.bid32_to_binary64("3", "[b3a8f5c2]", "[c1afffff90000000]", "0x00")
+ self.bid32_to_binary64("3", "[bb2e1de6]", "[c4cffffcd7edc455]", "0x20")
+ self.bid32_to_binary64("3", "[bedc99f0]", "[c6532645e1ba93ef]", "0x20")
+ self.bid32_to_binary64("3", "[c7140a10]", "[c9b70105df3d47cb]", "0x20")
+ self.bid32_to_binary64("3", "[cafda8f2]", "[cb557eb8ad52a5c8]", "0x20")
+ self.bid32_to_binary64("3", "[ce980326]", "[ccd87b809b494507]", "0x20")
+ self.bid32_to_binary64("3", "[daa9d03d]", "[d1e1a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("3", "[e9edd92d]", "[bcd0bf1a651525e7]", "0x20")
+ self.bid32_to_binary64("3", "[edc97056]", "[c33ffffdd85fdc00]", "0x00")
+ self.bid32_to_binary64("3", "[f0c9732f]", "[c83a78ce1807f5f8]", "0x20")
+ self.bid32_to_binary64("3", "[f4b6e7ac]", "[ceaca897d8932bce]", "0x20")
+ self.bid32_to_binary64("3", "[f58a9968]", "[d01f60b4a930ae17]", "0x20")
+ self.bid32_to_binary64("3", "[f7f8967f]", "[d412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("3", "[f8000000]", "[fff0000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[00000001]", "[2af665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("4", "[010bcb3b]", "[2c99cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("4", "[03000001]", "[2c355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("4", "[03800001]", "[2c6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("4", "[04f08deb]", "[2e425799582d3bbe]", "0x20")
+ self.bid32_to_binary64("4", "[0881888c]", "[2f87d4b57562e710]", "0x20")
+ self.bid32_to_binary64("4", "[0c8a06d8]", "[315d0681489839d5]", "0x20")
+ self.bid32_to_binary64("4", "[1082384c]", "[32e326cd14f71c23]", "0x20")
+ self.bid32_to_binary64("4", "[1489fdf7]", "[34b00e7db3b3f242]", "0x20")
+ self.bid32_to_binary64("4", "[1871b2b3]", "[365b39ab78718832]", "0x20")
+ self.bid32_to_binary64("4", "[1c37083b]", "[37f3a2d93e5ad254]", "0x20")
+ self.bid32_to_binary64("4", "[2082ffad]", "[398fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("4", "[24033b59]", "[3b047bf052eac347]", "0x20")
+ self.bid32_to_binary64("4", "[2bb057d9]", "[3e61025d42033846]", "0x20")
+ self.bid32_to_binary64("4", "[2ecd7c6d]", "[3faa000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[2ff9ff92]", "[401ffb2b3461309c]", "0x20")
+ self.bid32_to_binary64("4", "[3200000f]", "[3ff8000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[32800000]", "[0000000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[32800001]", "[3ff0000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[32800040]", "[4050000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[328003e7]", "[408f380000000000]", "0x00")
+ self.bid32_to_binary64("4", "[328003e8]", "[408f400000000000]", "0x00")
+ self.bid32_to_binary64("4", "[33a8f5c2]", "[41afffff90000000]", "0x00")
+ self.bid32_to_binary64("4", "[3b2e1de6]", "[44cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("4", "[3edc99f0]", "[46532645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("4", "[47140a10]", "[49b70105df3d47cb]", "0x20")
+ self.bid32_to_binary64("4", "[4afda8f2]", "[4b557eb8ad52a5c9]", "0x20")
+ self.bid32_to_binary64("4", "[4e980326]", "[4cd87b809b494507]", "0x20")
+ self.bid32_to_binary64("4", "[5aa9d03d]", "[51e1a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("4", "[69edd92d]", "[3cd0bf1a651525e8]", "0x20")
+ self.bid32_to_binary64("4", "[6dc97056]", "[433ffffdd85fdc00]", "0x00")
+ self.bid32_to_binary64("4", "[70c9732f]", "[483a78ce1807f5f8]", "0x20")
+ self.bid32_to_binary64("4", "[74b6e7ac]", "[4eaca897d8932bce]", "0x20")
+ self.bid32_to_binary64("4", "[758a9968]", "[501f60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("4", "[77f8967f]", "[5412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("4", "[78000000]", "[7ff0000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[80000001]", "[aaf665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("4", "[810bcb3b]", "[ac99cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("4", "[83000001]", "[ac355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("4", "[83800001]", "[ac6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("4", "[84f08deb]", "[ae425799582d3bbe]", "0x20")
+ self.bid32_to_binary64("4", "[8881888c]", "[af87d4b57562e710]", "0x20")
+ self.bid32_to_binary64("4", "[8c8a06d8]", "[b15d0681489839d5]", "0x20")
+ self.bid32_to_binary64("4", "[9082384c]", "[b2e326cd14f71c23]", "0x20")
+ self.bid32_to_binary64("4", "[9489fdf7]", "[b4b00e7db3b3f242]", "0x20")
+ self.bid32_to_binary64("4", "[9871b2b3]", "[b65b39ab78718832]", "0x20")
+ self.bid32_to_binary64("4", "[9c37083b]", "[b7f3a2d93e5ad254]", "0x20")
+ self.bid32_to_binary64("4", "[a082ffad]", "[b98fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("4", "[a4033b59]", "[bb047bf052eac347]", "0x20")
+ self.bid32_to_binary64("4", "[abb057d9]", "[be61025d42033846]", "0x20")
+ self.bid32_to_binary64("4", "[aecd7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[aff9ff92]", "[c01ffb2b3461309c]", "0x20")
+ self.bid32_to_binary64("4", "[b200000f]", "[bff8000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[b2800001]", "[bff0000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[b2800040]", "[c050000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[b28003e7]", "[c08f380000000000]", "0x00")
+ self.bid32_to_binary64("4", "[b28003e8]", "[c08f400000000000]", "0x00")
+ self.bid32_to_binary64("4", "[b3a8f5c2]", "[c1afffff90000000]", "0x00")
+ self.bid32_to_binary64("4", "[bb2e1de6]", "[c4cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("4", "[bedc99f0]", "[c6532645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("4", "[c7140a10]", "[c9b70105df3d47cb]", "0x20")
+ self.bid32_to_binary64("4", "[cafda8f2]", "[cb557eb8ad52a5c9]", "0x20")
+ self.bid32_to_binary64("4", "[ce980326]", "[ccd87b809b494507]", "0x20")
+ self.bid32_to_binary64("4", "[daa9d03d]", "[d1e1a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("4", "[e9edd92d]", "[bcd0bf1a651525e8]", "0x20")
+ self.bid32_to_binary64("4", "[edc97056]", "[c33ffffdd85fdc00]", "0x00")
+ self.bid32_to_binary64("4", "[f0c9732f]", "[c83a78ce1807f5f8]", "0x20")
+ self.bid32_to_binary64("4", "[f4b6e7ac]", "[ceaca897d8932bce]", "0x20")
+ self.bid32_to_binary64("4", "[f58a9968]", "[d01f60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("4", "[f7f8967f]", "[d412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("4", "[f8000000]", "[fff0000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[00000001]", "[2af665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("1", "[00000001]", "[2af665bf1d3e6a8c]", "0x20")
+ self.bid32_to_binary64("2", "[00000001]", "[2af665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("3", "[00000001]", "[2af665bf1d3e6a8c]", "0x20")
+ self.bid32_to_binary64("4", "[00000001]", "[2af665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("0", "[00000007]", "[2b23990739969d3b]", "0x20")
+ self.bid32_to_binary64("1", "[00000007]", "[2b23990739969d3b]", "0x20")
+ self.bid32_to_binary64("2", "[00000007]", "[2b23990739969d3c]", "0x20")
+ self.bid32_to_binary64("3", "[00000007]", "[2b23990739969d3b]", "0x20")
+ self.bid32_to_binary64("4", "[00000007]", "[2b23990739969d3b]", "0x20")
+ self.bid32_to_binary64("0", "[00001d37]", "[2bc472b412fad3d7]", "0x20")
+ self.bid32_to_binary64("1", "[00001d37]", "[2bc472b412fad3d6]", "0x20")
+ self.bid32_to_binary64("2", "[00001d37]", "[2bc472b412fad3d7]", "0x20")
+ self.bid32_to_binary64("3", "[00001d37]", "[2bc472b412fad3d6]", "0x20")
+ self.bid32_to_binary64("4", "[00001d37]", "[2bc472b412fad3d7]", "0x20")
+ self.bid32_to_binary64("0", "[00092148]", "[2c298fa448f6e088]", "0x20")
+ self.bid32_to_binary64("1", "[00092148]", "[2c298fa448f6e087]", "0x20")
+ self.bid32_to_binary64("2", "[00092148]", "[2c298fa448f6e088]", "0x20")
+ self.bid32_to_binary64("3", "[00092148]", "[2c298fa448f6e087]", "0x20")
+ self.bid32_to_binary64("4", "[00092148]", "[2c298fa448f6e088]", "0x20")
+ self.bid32_to_binary64("0", "[000f423f]", "[2c355c1f1063a881]", "0x20")
+ self.bid32_to_binary64("1", "[000f423f]", "[2c355c1f1063a881]", "0x20")
+ self.bid32_to_binary64("2", "[000f423f]", "[2c355c1f1063a882]", "0x20")
+ self.bid32_to_binary64("3", "[000f423f]", "[2c355c1f1063a881]", "0x20")
+ self.bid32_to_binary64("4", "[000f423f]", "[2c355c1f1063a881]", "0x20")
+ self.bid32_to_binary64("0", "[00baf827]", "[2c89cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("1", "[00baf827]", "[2c89cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("2", "[00baf827]", "[2c89cbd06456ee4f]", "0x20")
+ self.bid32_to_binary64("3", "[00baf827]", "[2c89cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("4", "[00baf827]", "[2c89cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("0", "[02f41b1a]", "[2d6f00051b7ba70a]", "0x20")
+ self.bid32_to_binary64("1", "[02f41b1a]", "[2d6f00051b7ba70a]", "0x20")
+ self.bid32_to_binary64("2", "[02f41b1a]", "[2d6f00051b7ba70b]", "0x20")
+ self.bid32_to_binary64("3", "[02f41b1a]", "[2d6f00051b7ba70a]", "0x20")
+ self.bid32_to_binary64("4", "[02f41b1a]", "[2d6f00051b7ba70a]", "0x20")
+ self.bid32_to_binary64("0", "[03000001]", "[2c355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("1", "[03000001]", "[2c355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("2", "[03000001]", "[2c355c2076bf9a56]", "0x20")
+ self.bid32_to_binary64("3", "[03000001]", "[2c355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("4", "[03000001]", "[2c355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("0", "[03800001]", "[2c6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("1", "[03800001]", "[2c6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("2", "[03800001]", "[2c6ab328946f80eb]", "0x20")
+ self.bid32_to_binary64("3", "[03800001]", "[2c6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("4", "[03800001]", "[2c6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("0", "[03bee8cb]", "[2dca3ead732acfe8]", "0x20")
+ self.bid32_to_binary64("1", "[03bee8cb]", "[2dca3ead732acfe7]", "0x20")
+ self.bid32_to_binary64("2", "[03bee8cb]", "[2dca3ead732acfe8]", "0x20")
+ self.bid32_to_binary64("3", "[03bee8cb]", "[2dca3ead732acfe7]", "0x20")
+ self.bid32_to_binary64("4", "[03bee8cb]", "[2dca3ead732acfe8]", "0x20")
+ self.bid32_to_binary64("0", "[04ae5c6b]", "[2e2e38723a5ce17c]", "0x20")
+ self.bid32_to_binary64("1", "[04ae5c6b]", "[2e2e38723a5ce17b]", "0x20")
+ self.bid32_to_binary64("2", "[04ae5c6b]", "[2e2e38723a5ce17c]", "0x20")
+ self.bid32_to_binary64("3", "[04ae5c6b]", "[2e2e38723a5ce17b]", "0x20")
+ self.bid32_to_binary64("4", "[04ae5c6b]", "[2e2e38723a5ce17c]", "0x20")
+ self.bid32_to_binary64("0", "[05928b5e]", "[2e82e347647a0ced]", "0x20")
+ self.bid32_to_binary64("1", "[05928b5e]", "[2e82e347647a0ced]", "0x20")
+ self.bid32_to_binary64("2", "[05928b5e]", "[2e82e347647a0cee]", "0x20")
+ self.bid32_to_binary64("3", "[05928b5e]", "[2e82e347647a0ced]", "0x20")
+ self.bid32_to_binary64("4", "[05928b5e]", "[2e82e347647a0ced]", "0x20")
+ self.bid32_to_binary64("0", "[0693b3d5]", "[2eef5aed7614686b]", "0x20")
+ self.bid32_to_binary64("1", "[0693b3d5]", "[2eef5aed7614686b]", "0x20")
+ self.bid32_to_binary64("2", "[0693b3d5]", "[2eef5aed7614686c]", "0x20")
+ self.bid32_to_binary64("3", "[0693b3d5]", "[2eef5aed7614686b]", "0x20")
+ self.bid32_to_binary64("4", "[0693b3d5]", "[2eef5aed7614686b]", "0x20")
+ self.bid32_to_binary64("0", "[078a165b]", "[2f491553af7b7353]", "0x20")
+ self.bid32_to_binary64("1", "[078a165b]", "[2f491553af7b7352]", "0x20")
+ self.bid32_to_binary64("2", "[078a165b]", "[2f491553af7b7353]", "0x20")
+ self.bid32_to_binary64("3", "[078a165b]", "[2f491553af7b7352]", "0x20")
+ self.bid32_to_binary64("4", "[078a165b]", "[2f491553af7b7353]", "0x20")
+ self.bid32_to_binary64("0", "[08806223]", "[2f67d4b57562e710]", "0x20")
+ self.bid32_to_binary64("1", "[08806223]", "[2f67d4b57562e710]", "0x20")
+ self.bid32_to_binary64("2", "[08806223]", "[2f67d4b57562e711]", "0x20")
+ self.bid32_to_binary64("3", "[08806223]", "[2f67d4b57562e710]", "0x20")
+ self.bid32_to_binary64("4", "[08806223]", "[2f67d4b57562e710]", "0x20")
+ self.bid32_to_binary64("0", "[09831118]", "[30029e2dc3b54485]", "0x20")
+ self.bid32_to_binary64("1", "[09831118]", "[30029e2dc3b54484]", "0x20")
+ self.bid32_to_binary64("2", "[09831118]", "[30029e2dc3b54485]", "0x20")
+ self.bid32_to_binary64("3", "[09831118]", "[30029e2dc3b54484]", "0x20")
+ self.bid32_to_binary64("4", "[09831118]", "[30029e2dc3b54485]", "0x20")
+ self.bid32_to_binary64("0", "[0a0db57d]", "[305a01fb6d8b1a20]", "0x20")
+ self.bid32_to_binary64("1", "[0a0db57d]", "[305a01fb6d8b1a20]", "0x20")
+ self.bid32_to_binary64("2", "[0a0db57d]", "[305a01fb6d8b1a21]", "0x20")
+ self.bid32_to_binary64("3", "[0a0db57d]", "[305a01fb6d8b1a20]", "0x20")
+ self.bid32_to_binary64("4", "[0a0db57d]", "[305a01fb6d8b1a20]", "0x20")
+ self.bid32_to_binary64("0", "[0b2eff07]", "[30e169e9b6071ad8]", "0x20")
+ self.bid32_to_binary64("1", "[0b2eff07]", "[30e169e9b6071ad7]", "0x20")
+ self.bid32_to_binary64("2", "[0b2eff07]", "[30e169e9b6071ad8]", "0x20")
+ self.bid32_to_binary64("3", "[0b2eff07]", "[30e169e9b6071ad7]", "0x20")
+ self.bid32_to_binary64("4", "[0b2eff07]", "[30e169e9b6071ad8]", "0x20")
+ self.bid32_to_binary64("0", "[0c481023]", "[3154dc5ee85b9b6e]", "0x20")
+ self.bid32_to_binary64("1", "[0c481023]", "[3154dc5ee85b9b6d]", "0x20")
+ self.bid32_to_binary64("2", "[0c481023]", "[3154dc5ee85b9b6e]", "0x20")
+ self.bid32_to_binary64("3", "[0c481023]", "[3154dc5ee85b9b6d]", "0x20")
+ self.bid32_to_binary64("4", "[0c481023]", "[3154dc5ee85b9b6e]", "0x20")
+ self.bid32_to_binary64("0", "[0f5a3882]", "[3298e83fe1a3d098]", "0x20")
+ self.bid32_to_binary64("1", "[0f5a3882]", "[3298e83fe1a3d098]", "0x20")
+ self.bid32_to_binary64("2", "[0f5a3882]", "[3298e83fe1a3d099]", "0x20")
+ self.bid32_to_binary64("3", "[0f5a3882]", "[3298e83fe1a3d098]", "0x20")
+ self.bid32_to_binary64("4", "[0f5a3882]", "[3298e83fe1a3d098]", "0x20")
+ self.bid32_to_binary64("0", "[1013aee5]", "[32e0fb2580647d96]", "0x20")
+ self.bid32_to_binary64("1", "[1013aee5]", "[32e0fb2580647d96]", "0x20")
+ self.bid32_to_binary64("2", "[1013aee5]", "[32e0fb2580647d97]", "0x20")
+ self.bid32_to_binary64("3", "[1013aee5]", "[32e0fb2580647d96]", "0x20")
+ self.bid32_to_binary64("4", "[1013aee5]", "[32e0fb2580647d96]", "0x20")
+ self.bid32_to_binary64("0", "[112822cc]", "[335b0d330b7ea470]", "0x20")
+ self.bid32_to_binary64("1", "[112822cc]", "[335b0d330b7ea470]", "0x20")
+ self.bid32_to_binary64("2", "[112822cc]", "[335b0d330b7ea471]", "0x20")
+ self.bid32_to_binary64("3", "[112822cc]", "[335b0d330b7ea470]", "0x20")
+ self.bid32_to_binary64("4", "[112822cc]", "[335b0d330b7ea470]", "0x20")
+ self.bid32_to_binary64("0", "[1214ff06]", "[33b61c8f73bc9e75]", "0x20")
+ self.bid32_to_binary64("1", "[1214ff06]", "[33b61c8f73bc9e74]", "0x20")
+ self.bid32_to_binary64("2", "[1214ff06]", "[33b61c8f73bc9e75]", "0x20")
+ self.bid32_to_binary64("3", "[1214ff06]", "[33b61c8f73bc9e74]", "0x20")
+ self.bid32_to_binary64("4", "[1214ff06]", "[33b61c8f73bc9e75]", "0x20")
+ self.bid32_to_binary64("0", "[130cf727]", "[341555ae28ababee]", "0x20")
+ self.bid32_to_binary64("1", "[130cf727]", "[341555ae28ababed]", "0x20")
+ self.bid32_to_binary64("2", "[130cf727]", "[341555ae28ababee]", "0x20")
+ self.bid32_to_binary64("3", "[130cf727]", "[341555ae28ababed]", "0x20")
+ self.bid32_to_binary64("4", "[130cf727]", "[341555ae28ababee]", "0x20")
+ self.bid32_to_binary64("0", "[140422b9]", "[3465442a5d58f916]", "0x20")
+ self.bid32_to_binary64("1", "[140422b9]", "[3465442a5d58f915]", "0x20")
+ self.bid32_to_binary64("2", "[140422b9]", "[3465442a5d58f916]", "0x20")
+ self.bid32_to_binary64("3", "[140422b9]", "[3465442a5d58f915]", "0x20")
+ self.bid32_to_binary64("4", "[140422b9]", "[3465442a5d58f916]", "0x20")
+ self.bid32_to_binary64("0", "[15055f9a]", "[34d59644266c9f6b]", "0x20")
+ self.bid32_to_binary64("1", "[15055f9a]", "[34d59644266c9f6a]", "0x20")
+ self.bid32_to_binary64("2", "[15055f9a]", "[34d59644266c9f6b]", "0x20")
+ self.bid32_to_binary64("3", "[15055f9a]", "[34d59644266c9f6a]", "0x20")
+ self.bid32_to_binary64("4", "[15055f9a]", "[34d59644266c9f6b]", "0x20")
+ self.bid32_to_binary64("0", "[16034202]", "[35347326e213daf9]", "0x20")
+ self.bid32_to_binary64("1", "[16034202]", "[35347326e213daf8]", "0x20")
+ self.bid32_to_binary64("2", "[16034202]", "[35347326e213daf9]", "0x20")
+ self.bid32_to_binary64("3", "[16034202]", "[35347326e213daf8]", "0x20")
+ self.bid32_to_binary64("4", "[16034202]", "[35347326e213daf9]", "0x20")
+ self.bid32_to_binary64("0", "[1797c30b]", "[3602351e3c9ac5b0]", "0x20")
+ self.bid32_to_binary64("1", "[1797c30b]", "[3602351e3c9ac5b0]", "0x20")
+ self.bid32_to_binary64("2", "[1797c30b]", "[3602351e3c9ac5b1]", "0x20")
+ self.bid32_to_binary64("3", "[1797c30b]", "[3602351e3c9ac5b0]", "0x20")
+ self.bid32_to_binary64("4", "[1797c30b]", "[3602351e3c9ac5b0]", "0x20")
+ self.bid32_to_binary64("0", "[18daf55c]", "[368b39ab78718832]", "0x20")
+ self.bid32_to_binary64("1", "[18daf55c]", "[368b39ab78718831]", "0x20")
+ self.bid32_to_binary64("2", "[18daf55c]", "[368b39ab78718832]", "0x20")
+ self.bid32_to_binary64("3", "[18daf55c]", "[368b39ab78718831]", "0x20")
+ self.bid32_to_binary64("4", "[18daf55c]", "[368b39ab78718832]", "0x20")
+ self.bid32_to_binary64("0", "[1a033de6]", "[36de528bf5efa60c]", "0x20")
+ self.bid32_to_binary64("1", "[1a033de6]", "[36de528bf5efa60b]", "0x20")
+ self.bid32_to_binary64("2", "[1a033de6]", "[36de528bf5efa60c]", "0x20")
+ self.bid32_to_binary64("3", "[1a033de6]", "[36de528bf5efa60b]", "0x20")
+ self.bid32_to_binary64("4", "[1a033de6]", "[36de528bf5efa60c]", "0x20")
+ self.bid32_to_binary64("0", "[1abc1faf]", "[3755f7be21275cb5]", "0x20")
+ self.bid32_to_binary64("1", "[1abc1faf]", "[3755f7be21275cb5]", "0x20")
+ self.bid32_to_binary64("2", "[1abc1faf]", "[3755f7be21275cb6]", "0x20")
+ self.bid32_to_binary64("3", "[1abc1faf]", "[3755f7be21275cb5]", "0x20")
+ self.bid32_to_binary64("4", "[1abc1faf]", "[3755f7be21275cb5]", "0x20")
+ self.bid32_to_binary64("0", "[1bea90e4]", "[37ce6b5150d93206]", "0x20")
+ self.bid32_to_binary64("1", "[1bea90e4]", "[37ce6b5150d93206]", "0x20")
+ self.bid32_to_binary64("2", "[1bea90e4]", "[37ce6b5150d93207]", "0x20")
+ self.bid32_to_binary64("3", "[1bea90e4]", "[37ce6b5150d93206]", "0x20")
+ self.bid32_to_binary64("4", "[1bea90e4]", "[37ce6b5150d93206]", "0x20")
+ self.bid32_to_binary64("0", "[1c974493]", "[3814c17116f185ba]", "0x20")
+ self.bid32_to_binary64("1", "[1c974493]", "[3814c17116f185ba]", "0x20")
+ self.bid32_to_binary64("2", "[1c974493]", "[3814c17116f185bb]", "0x20")
+ self.bid32_to_binary64("3", "[1c974493]", "[3814c17116f185ba]", "0x20")
+ self.bid32_to_binary64("4", "[1c974493]", "[3814c17116f185ba]", "0x20")
+ self.bid32_to_binary64("0", "[1e045d65]", "[388e6b1a754d5157]", "0x20")
+ self.bid32_to_binary64("1", "[1e045d65]", "[388e6b1a754d5157]", "0x20")
+ self.bid32_to_binary64("2", "[1e045d65]", "[388e6b1a754d5158]", "0x20")
+ self.bid32_to_binary64("3", "[1e045d65]", "[388e6b1a754d5157]", "0x20")
+ self.bid32_to_binary64("4", "[1e045d65]", "[388e6b1a754d5157]", "0x20")
+ self.bid32_to_binary64("0", "[1e8f8b66]", "[38e0ed2e61e9fa84]", "0x20")
+ self.bid32_to_binary64("1", "[1e8f8b66]", "[38e0ed2e61e9fa84]", "0x20")
+ self.bid32_to_binary64("2", "[1e8f8b66]", "[38e0ed2e61e9fa85]", "0x20")
+ self.bid32_to_binary64("3", "[1e8f8b66]", "[38e0ed2e61e9fa84]", "0x20")
+ self.bid32_to_binary64("4", "[1e8f8b66]", "[38e0ed2e61e9fa84]", "0x20")
+ self.bid32_to_binary64("0", "[1f921289]", "[394ebfa4445b9dcd]", "0x20")
+ self.bid32_to_binary64("1", "[1f921289]", "[394ebfa4445b9dcc]", "0x20")
+ self.bid32_to_binary64("2", "[1f921289]", "[394ebfa4445b9dcd]", "0x20")
+ self.bid32_to_binary64("3", "[1f921289]", "[394ebfa4445b9dcc]", "0x20")
+ self.bid32_to_binary64("4", "[1f921289]", "[394ebfa4445b9dcd]", "0x20")
+ self.bid32_to_binary64("0", "[2089e611]", "[39aa50b43ab3dff8]", "0x20")
+ self.bid32_to_binary64("1", "[2089e611]", "[39aa50b43ab3dff8]", "0x20")
+ self.bid32_to_binary64("2", "[2089e611]", "[39aa50b43ab3dff9]", "0x20")
+ self.bid32_to_binary64("3", "[2089e611]", "[39aa50b43ab3dff8]", "0x20")
+ self.bid32_to_binary64("4", "[2089e611]", "[39aa50b43ab3dff8]", "0x20")
+ self.bid32_to_binary64("0", "[2187ad40]", "[3a0fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("1", "[2187ad40]", "[3a0fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("2", "[2187ad40]", "[3a0fe3544145e9d9]", "0x20")
+ self.bid32_to_binary64("3", "[2187ad40]", "[3a0fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("4", "[2187ad40]", "[3a0fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("0", "[228167f2]", "[3a52405b773fbdf3]", "0x20")
+ self.bid32_to_binary64("1", "[228167f2]", "[3a52405b773fbdf2]", "0x20")
+ self.bid32_to_binary64("2", "[228167f2]", "[3a52405b773fbdf3]", "0x20")
+ self.bid32_to_binary64("3", "[228167f2]", "[3a52405b773fbdf2]", "0x20")
+ self.bid32_to_binary64("4", "[228167f2]", "[3a52405b773fbdf3]", "0x20")
+ self.bid32_to_binary64("0", "[235d0cc5]", "[3ae7974855c6a628]", "0x20")
+ self.bid32_to_binary64("1", "[235d0cc5]", "[3ae7974855c6a627]", "0x20")
+ self.bid32_to_binary64("2", "[235d0cc5]", "[3ae7974855c6a628]", "0x20")
+ self.bid32_to_binary64("3", "[235d0cc5]", "[3ae7974855c6a627]", "0x20")
+ self.bid32_to_binary64("4", "[235d0cc5]", "[3ae7974855c6a628]", "0x20")
+ self.bid32_to_binary64("0", "[2484c195]", "[3b42d756dfcb1bb4]", "0x20")
+ self.bid32_to_binary64("1", "[2484c195]", "[3b42d756dfcb1bb3]", "0x20")
+ self.bid32_to_binary64("2", "[2484c195]", "[3b42d756dfcb1bb4]", "0x20")
+ self.bid32_to_binary64("3", "[2484c195]", "[3b42d756dfcb1bb3]", "0x20")
+ self.bid32_to_binary64("4", "[2484c195]", "[3b42d756dfcb1bb4]", "0x20")
+ self.bid32_to_binary64("0", "[27706288]", "[3c953a9985dbde6c]", "0x20")
+ self.bid32_to_binary64("1", "[27706288]", "[3c953a9985dbde6b]", "0x20")
+ self.bid32_to_binary64("2", "[27706288]", "[3c953a9985dbde6c]", "0x20")
+ self.bid32_to_binary64("3", "[27706288]", "[3c953a9985dbde6b]", "0x20")
+ self.bid32_to_binary64("4", "[27706288]", "[3c953a9985dbde6c]", "0x20")
+ self.bid32_to_binary64("0", "[28531201]", "[3cf8849dd33c95af]", "0x20")
+ self.bid32_to_binary64("1", "[28531201]", "[3cf8849dd33c95ae]", "0x20")
+ self.bid32_to_binary64("2", "[28531201]", "[3cf8849dd33c95af]", "0x20")
+ self.bid32_to_binary64("3", "[28531201]", "[3cf8849dd33c95ae]", "0x20")
+ self.bid32_to_binary64("4", "[28531201]", "[3cf8849dd33c95af]", "0x20")
+ self.bid32_to_binary64("0", "[2926162b]", "[3d519078a913357e]", "0x20")
+ self.bid32_to_binary64("1", "[2926162b]", "[3d519078a913357d]", "0x20")
+ self.bid32_to_binary64("2", "[2926162b]", "[3d519078a913357e]", "0x20")
+ self.bid32_to_binary64("3", "[2926162b]", "[3d519078a913357d]", "0x20")
+ self.bid32_to_binary64("4", "[2926162b]", "[3d519078a913357e]", "0x20")
+ self.bid32_to_binary64("0", "[2a126b15]", "[3daa8b263af79514]", "0x20")
+ self.bid32_to_binary64("1", "[2a126b15]", "[3daa8b263af79514]", "0x20")
+ self.bid32_to_binary64("2", "[2a126b15]", "[3daa8b263af79515]", "0x20")
+ self.bid32_to_binary64("3", "[2a126b15]", "[3daa8b263af79514]", "0x20")
+ self.bid32_to_binary64("4", "[2a126b15]", "[3daa8b263af79514]", "0x20")
+ self.bid32_to_binary64("0", "[2b12abe1]", "[3e1505aa4b8c33d6]", "0x20")
+ self.bid32_to_binary64("1", "[2b12abe1]", "[3e1505aa4b8c33d5]", "0x20")
+ self.bid32_to_binary64("2", "[2b12abe1]", "[3e1505aa4b8c33d6]", "0x20")
+ self.bid32_to_binary64("3", "[2b12abe1]", "[3e1505aa4b8c33d5]", "0x20")
+ self.bid32_to_binary64("4", "[2b12abe1]", "[3e1505aa4b8c33d6]", "0x20")
+ self.bid32_to_binary64("0", "[2c07ee93]", "[3e6be872a8b30d7d]", "0x20")
+ self.bid32_to_binary64("1", "[2c07ee93]", "[3e6be872a8b30d7c]", "0x20")
+ self.bid32_to_binary64("2", "[2c07ee93]", "[3e6be872a8b30d7d]", "0x20")
+ self.bid32_to_binary64("3", "[2c07ee93]", "[3e6be872a8b30d7c]", "0x20")
+ self.bid32_to_binary64("4", "[2c07ee93]", "[3e6be872a8b30d7d]", "0x20")
+ self.bid32_to_binary64("0", "[2d0333ed]", "[3ec19b96f36ec68b]", "0x20")
+ self.bid32_to_binary64("1", "[2d0333ed]", "[3ec19b96f36ec68b]", "0x20")
+ self.bid32_to_binary64("2", "[2d0333ed]", "[3ec19b96f36ec68c]", "0x20")
+ self.bid32_to_binary64("3", "[2d0333ed]", "[3ec19b96f36ec68b]", "0x20")
+ self.bid32_to_binary64("4", "[2d0333ed]", "[3ec19b96f36ec68b]", "0x20")
+ self.bid32_to_binary64("0", "[2e04b977]", "[3f344a9ca8ba155d]", "0x20")
+ self.bid32_to_binary64("1", "[2e04b977]", "[3f344a9ca8ba155c]", "0x20")
+ self.bid32_to_binary64("2", "[2e04b977]", "[3f344a9ca8ba155d]", "0x20")
+ self.bid32_to_binary64("3", "[2e04b977]", "[3f344a9ca8ba155c]", "0x20")
+ self.bid32_to_binary64("4", "[2e04b977]", "[3f344a9ca8ba155d]", "0x20")
+ self.bid32_to_binary64("0", "[2ecd7c6d]", "[3faa000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[2ecd7c6d]", "[3faa000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[2ecd7c6d]", "[3faa000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[2ecd7c6d]", "[3faa000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[2ecd7c6d]", "[3faa000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[2f03cf77]", "[3f99923bd746a352]", "0x20")
+ self.bid32_to_binary64("1", "[2f03cf77]", "[3f99923bd746a352]", "0x20")
+ self.bid32_to_binary64("2", "[2f03cf77]", "[3f99923bd746a353]", "0x20")
+ self.bid32_to_binary64("3", "[2f03cf77]", "[3f99923bd746a352]", "0x20")
+ self.bid32_to_binary64("4", "[2f03cf77]", "[3f99923bd746a352]", "0x20")
+ self.bid32_to_binary64("0", "[3200000f]", "[3ff8000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[3200000f]", "[3ff8000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[3200000f]", "[3ff8000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[3200000f]", "[3ff8000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[3200000f]", "[3ff8000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[32800000]", "[0000000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[32800000]", "[0000000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[32800000]", "[0000000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[32800000]", "[0000000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[32800000]", "[0000000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[32800001]", "[3ff0000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[32800001]", "[3ff0000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[32800001]", "[3ff0000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[32800001]", "[3ff0000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[32800001]", "[3ff0000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[32800040]", "[4050000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[32800040]", "[4050000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[32800040]", "[4050000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[32800040]", "[4050000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[32800040]", "[4050000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[328003e7]", "[408f380000000000]", "0x00")
+ self.bid32_to_binary64("1", "[328003e7]", "[408f380000000000]", "0x00")
+ self.bid32_to_binary64("2", "[328003e7]", "[408f380000000000]", "0x00")
+ self.bid32_to_binary64("3", "[328003e7]", "[408f380000000000]", "0x00")
+ self.bid32_to_binary64("4", "[328003e7]", "[408f380000000000]", "0x00")
+ self.bid32_to_binary64("0", "[328003e8]", "[408f400000000000]", "0x00")
+ self.bid32_to_binary64("1", "[328003e8]", "[408f400000000000]", "0x00")
+ self.bid32_to_binary64("2", "[328003e8]", "[408f400000000000]", "0x00")
+ self.bid32_to_binary64("3", "[328003e8]", "[408f400000000000]", "0x00")
+ self.bid32_to_binary64("4", "[328003e8]", "[408f400000000000]", "0x00")
+ self.bid32_to_binary64("0", "[330f4240]", "[416312d000000000]", "0x00")
+ self.bid32_to_binary64("1", "[330f4240]", "[416312d000000000]", "0x00")
+ self.bid32_to_binary64("2", "[330f4240]", "[416312d000000000]", "0x00")
+ self.bid32_to_binary64("3", "[330f4240]", "[416312d000000000]", "0x00")
+ self.bid32_to_binary64("4", "[330f4240]", "[416312d000000000]", "0x00")
+ self.bid32_to_binary64("0", "[340f4240]", "[41cdcd6500000000]", "0x00")
+ self.bid32_to_binary64("1", "[340f4240]", "[41cdcd6500000000]", "0x00")
+ self.bid32_to_binary64("2", "[340f4240]", "[41cdcd6500000000]", "0x00")
+ self.bid32_to_binary64("3", "[340f4240]", "[41cdcd6500000000]", "0x00")
+ self.bid32_to_binary64("4", "[340f4240]", "[41cdcd6500000000]", "0x00")
+ self.bid32_to_binary64("0", "[34e8db8b]", "[422fffffcb600000]", "0x00")
+ self.bid32_to_binary64("1", "[34e8db8b]", "[422fffffcb600000]", "0x00")
+ self.bid32_to_binary64("2", "[34e8db8b]", "[422fffffcb600000]", "0x00")
+ self.bid32_to_binary64("3", "[34e8db8b]", "[422fffffcb600000]", "0x00")
+ self.bid32_to_binary64("4", "[34e8db8b]", "[422fffffcb600000]", "0x00")
+ self.bid32_to_binary64("0", "[35c31bde]", "[428fffffc19c0000]", "0x00")
+ self.bid32_to_binary64("1", "[35c31bde]", "[428fffffc19c0000]", "0x00")
+ self.bid32_to_binary64("2", "[35c31bde]", "[428fffffc19c0000]", "0x00")
+ self.bid32_to_binary64("3", "[35c31bde]", "[428fffffc19c0000]", "0x00")
+ self.bid32_to_binary64("4", "[35c31bde]", "[428fffffc19c0000]", "0x00")
+ self.bid32_to_binary64("0", "[36aaf31d]", "[42efffff6dafa000]", "0x00")
+ self.bid32_to_binary64("1", "[36aaf31d]", "[42efffff6dafa000]", "0x00")
+ self.bid32_to_binary64("2", "[36aaf31d]", "[42efffff6dafa000]", "0x00")
+ self.bid32_to_binary64("3", "[36aaf31d]", "[42efffff6dafa000]", "0x00")
+ self.bid32_to_binary64("4", "[36aaf31d]", "[42efffff6dafa000]", "0x00")
+ self.bid32_to_binary64("0", "[379b7cdf]", "[434fffff0265ce00]", "0x00")
+ self.bid32_to_binary64("1", "[379b7cdf]", "[434fffff0265ce00]", "0x00")
+ self.bid32_to_binary64("2", "[379b7cdf]", "[434fffff0265ce00]", "0x00")
+ self.bid32_to_binary64("3", "[379b7cdf]", "[434fffff0265ce00]", "0x00")
+ self.bid32_to_binary64("4", "[379b7cdf]", "[434fffff0265ce00]", "0x00")
+ self.bid32_to_binary64("0", "[38919799]", "[43afffff15062d20]", "0x00")
+ self.bid32_to_binary64("1", "[38919799]", "[43afffff15062d20]", "0x00")
+ self.bid32_to_binary64("2", "[38919799]", "[43afffff15062d20]", "0x00")
+ self.bid32_to_binary64("3", "[38919799]", "[43afffff15062d20]", "0x00")
+ self.bid32_to_binary64("4", "[38919799]", "[43afffff15062d20]", "0x00")
+ self.bid32_to_binary64("0", "[39709702]", "[440ffffdd4e1ca2a]", "0x00")
+ self.bid32_to_binary64("1", "[39709702]", "[440ffffdd4e1ca2a]", "0x00")
+ self.bid32_to_binary64("2", "[39709702]", "[440ffffdd4e1ca2a]", "0x00")
+ self.bid32_to_binary64("3", "[39709702]", "[440ffffdd4e1ca2a]", "0x00")
+ self.bid32_to_binary64("4", "[39709702]", "[440ffffdd4e1ca2a]", "0x00")
+ self.bid32_to_binary64("0", "[3a480eae]", "[446ffff8ae1d5b3d]", "0x20")
+ self.bid32_to_binary64("1", "[3a480eae]", "[446ffff8ae1d5b3d]", "0x20")
+ self.bid32_to_binary64("2", "[3a480eae]", "[446ffff8ae1d5b3e]", "0x20")
+ self.bid32_to_binary64("3", "[3a480eae]", "[446ffff8ae1d5b3d]", "0x20")
+ self.bid32_to_binary64("4", "[3a480eae]", "[446ffff8ae1d5b3d]", "0x20")
+ self.bid32_to_binary64("0", "[3b2e1de6]", "[44cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("1", "[3b2e1de6]", "[44cffffcd7edc455]", "0x20")
+ self.bid32_to_binary64("2", "[3b2e1de6]", "[44cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("3", "[3b2e1de6]", "[44cffffcd7edc455]", "0x20")
+ self.bid32_to_binary64("4", "[3b2e1de6]", "[44cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("0", "[3eae4cf8]", "[46432645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("1", "[3eae4cf8]", "[46432645e1ba93ef]", "0x20")
+ self.bid32_to_binary64("2", "[3eae4cf8]", "[46432645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("3", "[3eae4cf8]", "[46432645e1ba93ef]", "0x20")
+ self.bid32_to_binary64("4", "[3eae4cf8]", "[46432645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("0", "[40339017]", "[46e4d3794ce2fc26]", "0x20")
+ self.bid32_to_binary64("1", "[40339017]", "[46e4d3794ce2fc25]", "0x20")
+ self.bid32_to_binary64("2", "[40339017]", "[46e4d3794ce2fc26]", "0x20")
+ self.bid32_to_binary64("3", "[40339017]", "[46e4d3794ce2fc25]", "0x20")
+ self.bid32_to_binary64("4", "[40339017]", "[46e4d3794ce2fc26]", "0x20")
+ self.bid32_to_binary64("0", "[414f28a1]", "[4758fa63afcbb900]", "0x20")
+ self.bid32_to_binary64("1", "[414f28a1]", "[4758fa63afcbb900]", "0x20")
+ self.bid32_to_binary64("2", "[414f28a1]", "[4758fa63afcbb901]", "0x20")
+ self.bid32_to_binary64("3", "[414f28a1]", "[4758fa63afcbb900]", "0x20")
+ self.bid32_to_binary64("4", "[414f28a1]", "[4758fa63afcbb900]", "0x20")
+ self.bid32_to_binary64("0", "[422f6fcd]", "[47b7635b25f99028]", "0x20")
+ self.bid32_to_binary64("1", "[422f6fcd]", "[47b7635b25f99028]", "0x20")
+ self.bid32_to_binary64("2", "[422f6fcd]", "[47b7635b25f99029]", "0x20")
+ self.bid32_to_binary64("3", "[422f6fcd]", "[47b7635b25f99028]", "0x20")
+ self.bid32_to_binary64("4", "[422f6fcd]", "[47b7635b25f99028]", "0x20")
+ self.bid32_to_binary64("0", "[4325b75d]", "[481d0e38a791f98b]", "0x20")
+ self.bid32_to_binary64("1", "[4325b75d]", "[481d0e38a791f98b]", "0x20")
+ self.bid32_to_binary64("2", "[4325b75d]", "[481d0e38a791f98c]", "0x20")
+ self.bid32_to_binary64("3", "[4325b75d]", "[481d0e38a791f98b]", "0x20")
+ self.bid32_to_binary64("4", "[4325b75d]", "[481d0e38a791f98b]", "0x20")
+ self.bid32_to_binary64("0", "[44180782]", "[487cec9bb224f009]", "0x20")
+ self.bid32_to_binary64("1", "[44180782]", "[487cec9bb224f008]", "0x20")
+ self.bid32_to_binary64("2", "[44180782]", "[487cec9bb224f009]", "0x20")
+ self.bid32_to_binary64("3", "[44180782]", "[487cec9bb224f008]", "0x20")
+ self.bid32_to_binary64("4", "[44180782]", "[487cec9bb224f009]", "0x20")
+ self.bid32_to_binary64("0", "[448fd534]", "[48a7d2950dc76da4]", "0x20")
+ self.bid32_to_binary64("1", "[448fd534]", "[48a7d2950dc76da4]", "0x20")
+ self.bid32_to_binary64("2", "[448fd534]", "[48a7d2950dc76da5]", "0x20")
+ self.bid32_to_binary64("3", "[448fd534]", "[48a7d2950dc76da4]", "0x20")
+ self.bid32_to_binary64("4", "[448fd534]", "[48a7d2950dc76da4]", "0x20")
+ self.bid32_to_binary64("0", "[45e200a2]", "[493ccce2f3f92a20]", "0x20")
+ self.bid32_to_binary64("1", "[45e200a2]", "[493ccce2f3f92a20]", "0x20")
+ self.bid32_to_binary64("2", "[45e200a2]", "[493ccce2f3f92a21]", "0x20")
+ self.bid32_to_binary64("3", "[45e200a2]", "[493ccce2f3f92a20]", "0x20")
+ self.bid32_to_binary64("4", "[45e200a2]", "[493ccce2f3f92a20]", "0x20")
+ self.bid32_to_binary64("0", "[46990c94]", "[49870105df3d47cb]", "0x20")
+ self.bid32_to_binary64("1", "[46990c94]", "[49870105df3d47cb]", "0x20")
+ self.bid32_to_binary64("2", "[46990c94]", "[49870105df3d47cc]", "0x20")
+ self.bid32_to_binary64("3", "[46990c94]", "[49870105df3d47cb]", "0x20")
+ self.bid32_to_binary64("4", "[46990c94]", "[49870105df3d47cb]", "0x20")
+ self.bid32_to_binary64("0", "[475833b0]", "[49d9500d7197e3f2]", "0x20")
+ self.bid32_to_binary64("1", "[475833b0]", "[49d9500d7197e3f2]", "0x20")
+ self.bid32_to_binary64("2", "[475833b0]", "[49d9500d7197e3f3]", "0x20")
+ self.bid32_to_binary64("3", "[475833b0]", "[49d9500d7197e3f2]", "0x20")
+ self.bid32_to_binary64("4", "[475833b0]", "[49d9500d7197e3f2]", "0x20")
+ self.bid32_to_binary64("0", "[48f7761f]", "[4a80bd77ca6bbb84]", "0x20")
+ self.bid32_to_binary64("1", "[48f7761f]", "[4a80bd77ca6bbb83]", "0x20")
+ self.bid32_to_binary64("2", "[48f7761f]", "[4a80bd77ca6bbb84]", "0x20")
+ self.bid32_to_binary64("3", "[48f7761f]", "[4a80bd77ca6bbb83]", "0x20")
+ self.bid32_to_binary64("4", "[48f7761f]", "[4a80bd77ca6bbb84]", "0x20")
+ self.bid32_to_binary64("0", "[4aa33587]", "[4b38174e40cc5cdc]", "0x20")
+ self.bid32_to_binary64("1", "[4aa33587]", "[4b38174e40cc5cdc]", "0x20")
+ self.bid32_to_binary64("2", "[4aa33587]", "[4b38174e40cc5cdd]", "0x20")
+ self.bid32_to_binary64("3", "[4aa33587]", "[4b38174e40cc5cdc]", "0x20")
+ self.bid32_to_binary64("4", "[4aa33587]", "[4b38174e40cc5cdc]", "0x20")
+ self.bid32_to_binary64("0", "[4bd07892]", "[4bb5820c3849fd45]", "0x20")
+ self.bid32_to_binary64("1", "[4bd07892]", "[4bb5820c3849fd45]", "0x20")
+ self.bid32_to_binary64("2", "[4bd07892]", "[4bb5820c3849fd46]", "0x20")
+ self.bid32_to_binary64("3", "[4bd07892]", "[4bb5820c3849fd45]", "0x20")
+ self.bid32_to_binary64("4", "[4bd07892]", "[4bb5820c3849fd45]", "0x20")
+ self.bid32_to_binary64("0", "[4cc6ce43]", "[4c1d91e14e502ba4]", "0x20")
+ self.bid32_to_binary64("1", "[4cc6ce43]", "[4c1d91e14e502ba4]", "0x20")
+ self.bid32_to_binary64("2", "[4cc6ce43]", "[4c1d91e14e502ba5]", "0x20")
+ self.bid32_to_binary64("3", "[4cc6ce43]", "[4c1d91e14e502ba4]", "0x20")
+ self.bid32_to_binary64("4", "[4cc6ce43]", "[4c1d91e14e502ba4]", "0x20")
+ self.bid32_to_binary64("0", "[4dddfe1d]", "[4c8eaaa179d3b169]", "0x20")
+ self.bid32_to_binary64("1", "[4dddfe1d]", "[4c8eaaa179d3b169]", "0x20")
+ self.bid32_to_binary64("2", "[4dddfe1d]", "[4c8eaaa179d3b16a]", "0x20")
+ self.bid32_to_binary64("3", "[4dddfe1d]", "[4c8eaaa179d3b169]", "0x20")
+ self.bid32_to_binary64("4", "[4dddfe1d]", "[4c8eaaa179d3b169]", "0x20")
+ self.bid32_to_binary64("0", "[4eb63e8d]", "[4ceba7376fe9b0b5]", "0x20")
+ self.bid32_to_binary64("1", "[4eb63e8d]", "[4ceba7376fe9b0b5]", "0x20")
+ self.bid32_to_binary64("2", "[4eb63e8d]", "[4ceba7376fe9b0b6]", "0x20")
+ self.bid32_to_binary64("3", "[4eb63e8d]", "[4ceba7376fe9b0b5]", "0x20")
+ self.bid32_to_binary64("4", "[4eb63e8d]", "[4ceba7376fe9b0b5]", "0x20")
+ self.bid32_to_binary64("0", "[4f93259c]", "[4d3e80b6d8e19215]", "0x20")
+ self.bid32_to_binary64("1", "[4f93259c]", "[4d3e80b6d8e19214]", "0x20")
+ self.bid32_to_binary64("2", "[4f93259c]", "[4d3e80b6d8e19215]", "0x20")
+ self.bid32_to_binary64("3", "[4f93259c]", "[4d3e80b6d8e19214]", "0x20")
+ self.bid32_to_binary64("4", "[4f93259c]", "[4d3e80b6d8e19215]", "0x20")
+ self.bid32_to_binary64("0", "[50915f90]", "[4da59f732b2972d8]", "0x20")
+ self.bid32_to_binary64("1", "[50915f90]", "[4da59f732b2972d7]", "0x20")
+ self.bid32_to_binary64("2", "[50915f90]", "[4da59f732b2972d8]", "0x20")
+ self.bid32_to_binary64("3", "[50915f90]", "[4da59f732b2972d7]", "0x20")
+ self.bid32_to_binary64("4", "[50915f90]", "[4da59f732b2972d8]", "0x20")
+ self.bid32_to_binary64("0", "[518fe3b1]", "[4e0ee668761a362d]", "0x20")
+ self.bid32_to_binary64("1", "[518fe3b1]", "[4e0ee668761a362d]", "0x20")
+ self.bid32_to_binary64("2", "[518fe3b1]", "[4e0ee668761a362e]", "0x20")
+ self.bid32_to_binary64("3", "[518fe3b1]", "[4e0ee668761a362d]", "0x20")
+ self.bid32_to_binary64("4", "[518fe3b1]", "[4e0ee668761a362d]", "0x20")
+ self.bid32_to_binary64("0", "[5267acbe]", "[4e6f809f0d2df223]", "0x20")
+ self.bid32_to_binary64("1", "[5267acbe]", "[4e6f809f0d2df223]", "0x20")
+ self.bid32_to_binary64("2", "[5267acbe]", "[4e6f809f0d2df224]", "0x20")
+ self.bid32_to_binary64("3", "[5267acbe]", "[4e6f809f0d2df223]", "0x20")
+ self.bid32_to_binary64("4", "[5267acbe]", "[4e6f809f0d2df223]", "0x20")
+ self.bid32_to_binary64("0", "[533c4ff6]", "[4ecca28f4c04a953]", "0x20")
+ self.bid32_to_binary64("1", "[533c4ff6]", "[4ecca28f4c04a953]", "0x20")
+ self.bid32_to_binary64("2", "[533c4ff6]", "[4ecca28f4c04a954]", "0x20")
+ self.bid32_to_binary64("3", "[533c4ff6]", "[4ecca28f4c04a953]", "0x20")
+ self.bid32_to_binary64("4", "[533c4ff6]", "[4ecca28f4c04a953]", "0x20")
+ self.bid32_to_binary64("0", "[53ba0840]", "[4f0138643a016132]", "0x20")
+ self.bid32_to_binary64("1", "[53ba0840]", "[4f0138643a016131]", "0x20")
+ self.bid32_to_binary64("2", "[53ba0840]", "[4f0138643a016132]", "0x20")
+ self.bid32_to_binary64("3", "[53ba0840]", "[4f0138643a016131]", "0x20")
+ self.bid32_to_binary64("4", "[53ba0840]", "[4f0138643a016132]", "0x20")
+ self.bid32_to_binary64("0", "[555ecc47]", "[4fab7880df2e5188]", "0x20")
+ self.bid32_to_binary64("1", "[555ecc47]", "[4fab7880df2e5187]", "0x20")
+ self.bid32_to_binary64("2", "[555ecc47]", "[4fab7880df2e5188]", "0x20")
+ self.bid32_to_binary64("3", "[555ecc47]", "[4fab7880df2e5187]", "0x20")
+ self.bid32_to_binary64("4", "[555ecc47]", "[4fab7880df2e5188]", "0x20")
+ self.bid32_to_binary64("0", "[5622a65a]", "[4fff60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("1", "[5622a65a]", "[4fff60b4a930ae17]", "0x20")
+ self.bid32_to_binary64("2", "[5622a65a]", "[4fff60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("3", "[5622a65a]", "[4fff60b4a930ae17]", "0x20")
+ self.bid32_to_binary64("4", "[5622a65a]", "[4fff60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("0", "[576ff6af]", "[5083cd885220ea7c]", "0x20")
+ self.bid32_to_binary64("1", "[576ff6af]", "[5083cd885220ea7c]", "0x20")
+ self.bid32_to_binary64("2", "[576ff6af]", "[5083cd885220ea7d]", "0x20")
+ self.bid32_to_binary64("3", "[576ff6af]", "[5083cd885220ea7c]", "0x20")
+ self.bid32_to_binary64("4", "[576ff6af]", "[5083cd885220ea7c]", "0x20")
+ self.bid32_to_binary64("0", "[5969ea91]", "[5156de262e569d42]", "0x20")
+ self.bid32_to_binary64("1", "[5969ea91]", "[5156de262e569d41]", "0x20")
+ self.bid32_to_binary64("2", "[5969ea91]", "[5156de262e569d42]", "0x20")
+ self.bid32_to_binary64("3", "[5969ea91]", "[5156de262e569d41]", "0x20")
+ self.bid32_to_binary64("4", "[5969ea91]", "[5156de262e569d42]", "0x20")
+ self.bid32_to_binary64("0", "[5a5b2e31]", "[51bec27efe8a377d]", "0x20")
+ self.bid32_to_binary64("1", "[5a5b2e31]", "[51bec27efe8a377c]", "0x20")
+ self.bid32_to_binary64("2", "[5a5b2e31]", "[51bec27efe8a377d]", "0x20")
+ self.bid32_to_binary64("3", "[5a5b2e31]", "[51bec27efe8a377c]", "0x20")
+ self.bid32_to_binary64("4", "[5a5b2e31]", "[51bec27efe8a377d]", "0x20")
+ self.bid32_to_binary64("0", "[5b217364]", "[5211a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("1", "[5b217364]", "[5211a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("2", "[5b217364]", "[5211a1d9135cca54]", "0x20")
+ self.bid32_to_binary64("3", "[5b217364]", "[5211a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("4", "[5b217364]", "[5211a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("0", "[5c1ceb38]", "[5277d15bf3186081]", "0x20")
+ self.bid32_to_binary64("1", "[5c1ceb38]", "[5277d15bf3186080]", "0x20")
+ self.bid32_to_binary64("2", "[5c1ceb38]", "[5277d15bf3186081]", "0x20")
+ self.bid32_to_binary64("3", "[5c1ceb38]", "[5277d15bf3186080]", "0x20")
+ self.bid32_to_binary64("4", "[5c1ceb38]", "[5277d15bf3186081]", "0x20")
+ self.bid32_to_binary64("0", "[5cebc132]", "[52cbbbd1aedbf9c0]", "0x20")
+ self.bid32_to_binary64("1", "[5cebc132]", "[52cbbbd1aedbf9bf]", "0x20")
+ self.bid32_to_binary64("2", "[5cebc132]", "[52cbbbd1aedbf9c0]", "0x20")
+ self.bid32_to_binary64("3", "[5cebc132]", "[52cbbbd1aedbf9bf]", "0x20")
+ self.bid32_to_binary64("4", "[5cebc132]", "[52cbbbd1aedbf9c0]", "0x20")
+ self.bid32_to_binary64("0", "[5debc132]", "[5335aabbd09bdb1e]", "0x20")
+ self.bid32_to_binary64("1", "[5debc132]", "[5335aabbd09bdb1d]", "0x20")
+ self.bid32_to_binary64("2", "[5debc132]", "[5335aabbd09bdb1e]", "0x20")
+ self.bid32_to_binary64("3", "[5debc132]", "[5335aabbd09bdb1d]", "0x20")
+ self.bid32_to_binary64("4", "[5debc132]", "[5335aabbd09bdb1e]", "0x20")
+ self.bid32_to_binary64("0", "[5ecfa52e]", "[539905e9b292dc2b]", "0x20")
+ self.bid32_to_binary64("1", "[5ecfa52e]", "[539905e9b292dc2b]", "0x20")
+ self.bid32_to_binary64("2", "[5ecfa52e]", "[539905e9b292dc2c]", "0x20")
+ self.bid32_to_binary64("3", "[5ecfa52e]", "[539905e9b292dc2b]", "0x20")
+ self.bid32_to_binary64("4", "[5ecfa52e]", "[539905e9b292dc2b]", "0x20")
+ self.bid32_to_binary64("0", "[606c26d1]", "[2d07f2ef5801decd]", "0x20")
+ self.bid32_to_binary64("1", "[606c26d1]", "[2d07f2ef5801decc]", "0x20")
+ self.bid32_to_binary64("2", "[606c26d1]", "[2d07f2ef5801decd]", "0x20")
+ self.bid32_to_binary64("3", "[606c26d1]", "[2d07f2ef5801decc]", "0x20")
+ self.bid32_to_binary64("4", "[606c26d1]", "[2d07f2ef5801decd]", "0x20")
+ self.bid32_to_binary64("0", "[6349bc1f]", "[31cf264d8b4a5630]", "0x20")
+ self.bid32_to_binary64("1", "[6349bc1f]", "[31cf264d8b4a562f]", "0x20")
+ self.bid32_to_binary64("2", "[6349bc1f]", "[31cf264d8b4a5630]", "0x20")
+ self.bid32_to_binary64("3", "[6349bc1f]", "[31cf264d8b4a562f]", "0x20")
+ self.bid32_to_binary64("4", "[6349bc1f]", "[31cf264d8b4a5630]", "0x20")
+ self.bid32_to_binary64("0", "[6389bc1f]", "[323855ec94d21355]", "0x20")
+ self.bid32_to_binary64("1", "[6389bc1f]", "[323855ec94d21355]", "0x20")
+ self.bid32_to_binary64("2", "[6389bc1f]", "[323855ec94d21356]", "0x20")
+ self.bid32_to_binary64("3", "[6389bc1f]", "[323855ec94d21355]", "0x20")
+ self.bid32_to_binary64("4", "[6389bc1f]", "[323855ec94d21355]", "0x20")
+ self.bid32_to_binary64("0", "[65b4a326]", "[35c2390ea64283d2]", "0x20")
+ self.bid32_to_binary64("1", "[65b4a326]", "[35c2390ea64283d1]", "0x20")
+ self.bid32_to_binary64("2", "[65b4a326]", "[35c2390ea64283d2]", "0x20")
+ self.bid32_to_binary64("3", "[65b4a326]", "[35c2390ea64283d1]", "0x20")
+ self.bid32_to_binary64("4", "[65b4a326]", "[35c2390ea64283d2]", "0x20")
+ self.bid32_to_binary64("0", "[69402c61]", "[3bc3d5783e85fcf8]", "0x20")
+ self.bid32_to_binary64("1", "[69402c61]", "[3bc3d5783e85fcf7]", "0x20")
+ self.bid32_to_binary64("2", "[69402c61]", "[3bc3d5783e85fcf8]", "0x20")
+ self.bid32_to_binary64("3", "[69402c61]", "[3bc3d5783e85fcf7]", "0x20")
+ self.bid32_to_binary64("4", "[69402c61]", "[3bc3d5783e85fcf8]", "0x20")
+ self.bid32_to_binary64("0", "[6994afb0]", "[3c31f99e11ea0a24]", "0x20")
+ self.bid32_to_binary64("1", "[6994afb0]", "[3c31f99e11ea0a23]", "0x20")
+ self.bid32_to_binary64("2", "[6994afb0]", "[3c31f99e11ea0a24]", "0x20")
+ self.bid32_to_binary64("3", "[6994afb0]", "[3c31f99e11ea0a23]", "0x20")
+ self.bid32_to_binary64("4", "[6994afb0]", "[3c31f99e11ea0a24]", "0x20")
+ self.bid32_to_binary64("0", "[6bf87d22]", "[4023fcacd184c272]", "0x20")
+ self.bid32_to_binary64("1", "[6bf87d22]", "[4023fcacd184c271]", "0x20")
+ self.bid32_to_binary64("2", "[6bf87d22]", "[4023fcacd184c272]", "0x20")
+ self.bid32_to_binary64("3", "[6bf87d22]", "[4023fcacd184c271]", "0x20")
+ self.bid32_to_binary64("4", "[6bf87d22]", "[4023fcacd184c272]", "0x20")
+ self.bid32_to_binary64("0", "[6c3895e6]", "[408f3fe075f6fd22]", "0x20")
+ self.bid32_to_binary64("1", "[6c3895e6]", "[408f3fe075f6fd21]", "0x20")
+ self.bid32_to_binary64("2", "[6c3895e6]", "[408f3fe075f6fd22]", "0x20")
+ self.bid32_to_binary64("3", "[6c3895e6]", "[408f3fe075f6fd21]", "0x20")
+ self.bid32_to_binary64("4", "[6c3895e6]", "[408f3fe075f6fd22]", "0x20")
+ self.bid32_to_binary64("0", "[6c789672]", "[40f869fdc28f5c29]", "0x20")
+ self.bid32_to_binary64("1", "[6c789672]", "[40f869fdc28f5c28]", "0x20")
+ self.bid32_to_binary64("2", "[6c789672]", "[40f869fdc28f5c29]", "0x20")
+ self.bid32_to_binary64("3", "[6c789672]", "[40f869fdc28f5c28]", "0x20")
+ self.bid32_to_binary64("4", "[6c789672]", "[40f869fdc28f5c29]", "0x20")
+ self.bid32_to_binary64("0", "[6f1831eb]", "[4554a053134cb954]", "0x20")
+ self.bid32_to_binary64("1", "[6f1831eb]", "[4554a053134cb953]", "0x20")
+ self.bid32_to_binary64("2", "[6f1831eb]", "[4554a053134cb954]", "0x20")
+ self.bid32_to_binary64("3", "[6f1831eb]", "[4554a053134cb953]", "0x20")
+ self.bid32_to_binary64("4", "[6f1831eb]", "[4554a053134cb954]", "0x20")
+ self.bid32_to_binary64("0", "[6f5372a3]", "[45bf392946d76a98]", "0x20")
+ self.bid32_to_binary64("1", "[6f5372a3]", "[45bf392946d76a97]", "0x20")
+ self.bid32_to_binary64("2", "[6f5372a3]", "[45bf392946d76a98]", "0x20")
+ self.bid32_to_binary64("3", "[6f5372a3]", "[45bf392946d76a97]", "0x20")
+ self.bid32_to_binary64("4", "[6f5372a3]", "[45bf392946d76a98]", "0x20")
+ self.bid32_to_binary64("0", "[6f8c3f94]", "[462733bfae0801fd]", "0x20")
+ self.bid32_to_binary64("1", "[6f8c3f94]", "[462733bfae0801fd]", "0x20")
+ self.bid32_to_binary64("2", "[6f8c3f94]", "[462733bfae0801fe]", "0x20")
+ self.bid32_to_binary64("3", "[6f8c3f94]", "[462733bfae0801fd]", "0x20")
+ self.bid32_to_binary64("4", "[6f8c3f94]", "[462733bfae0801fd]", "0x20")
+ self.bid32_to_binary64("0", "[72749d39]", "[4af0450e3ddd8f31]", "0x20")
+ self.bid32_to_binary64("1", "[72749d39]", "[4af0450e3ddd8f30]", "0x20")
+ self.bid32_to_binary64("2", "[72749d39]", "[4af0450e3ddd8f31]", "0x20")
+ self.bid32_to_binary64("3", "[72749d39]", "[4af0450e3ddd8f30]", "0x20")
+ self.bid32_to_binary64("4", "[72749d39]", "[4af0450e3ddd8f31]", "0x20")
+ self.bid32_to_binary64("0", "[7606b40a]", "[50f29cf5a7177b40]", "0x20")
+ self.bid32_to_binary64("1", "[7606b40a]", "[50f29cf5a7177b3f]", "0x20")
+ self.bid32_to_binary64("2", "[7606b40a]", "[50f29cf5a7177b40]", "0x20")
+ self.bid32_to_binary64("3", "[7606b40a]", "[50f29cf5a7177b3f]", "0x20")
+ self.bid32_to_binary64("4", "[7606b40a]", "[50f29cf5a7177b40]", "0x20")
+ self.bid32_to_binary64("0", "[77f8967f]", "[5412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("1", "[77f8967f]", "[5412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("2", "[77f8967f]", "[5412ba093e5c6115]", "0x20")
+ self.bid32_to_binary64("3", "[77f8967f]", "[5412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("4", "[77f8967f]", "[5412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("0", "[78000000]", "[7ff0000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[78000000]", "[7ff0000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[78000000]", "[7ff0000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[78000000]", "[7ff0000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[78000000]", "[7ff0000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[7c0c2000]", "[7ffe100000000000]", "0x00")
+ self.bid32_to_binary64("0", "[7e0c2000]", "[7ffe100000000000]", "0x01")
+ self.bid32_to_binary64("0", "[80000001]", "[aaf665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("1", "[80000001]", "[aaf665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("2", "[80000001]", "[aaf665bf1d3e6a8c]", "0x20")
+ self.bid32_to_binary64("3", "[80000001]", "[aaf665bf1d3e6a8c]", "0x20")
+ self.bid32_to_binary64("4", "[80000001]", "[aaf665bf1d3e6a8d]", "0x20")
+ self.bid32_to_binary64("0", "[80000007]", "[ab23990739969d3b]", "0x20")
+ self.bid32_to_binary64("1", "[80000007]", "[ab23990739969d3c]", "0x20")
+ self.bid32_to_binary64("2", "[80000007]", "[ab23990739969d3b]", "0x20")
+ self.bid32_to_binary64("3", "[80000007]", "[ab23990739969d3b]", "0x20")
+ self.bid32_to_binary64("4", "[80000007]", "[ab23990739969d3b]", "0x20")
+ self.bid32_to_binary64("0", "[80001d37]", "[abc472b412fad3d7]", "0x20")
+ self.bid32_to_binary64("1", "[80001d37]", "[abc472b412fad3d7]", "0x20")
+ self.bid32_to_binary64("2", "[80001d37]", "[abc472b412fad3d6]", "0x20")
+ self.bid32_to_binary64("3", "[80001d37]", "[abc472b412fad3d6]", "0x20")
+ self.bid32_to_binary64("4", "[80001d37]", "[abc472b412fad3d7]", "0x20")
+ self.bid32_to_binary64("0", "[80092148]", "[ac298fa448f6e088]", "0x20")
+ self.bid32_to_binary64("1", "[80092148]", "[ac298fa448f6e088]", "0x20")
+ self.bid32_to_binary64("2", "[80092148]", "[ac298fa448f6e087]", "0x20")
+ self.bid32_to_binary64("3", "[80092148]", "[ac298fa448f6e087]", "0x20")
+ self.bid32_to_binary64("4", "[80092148]", "[ac298fa448f6e088]", "0x20")
+ self.bid32_to_binary64("0", "[800f423f]", "[ac355c1f1063a881]", "0x20")
+ self.bid32_to_binary64("1", "[800f423f]", "[ac355c1f1063a882]", "0x20")
+ self.bid32_to_binary64("2", "[800f423f]", "[ac355c1f1063a881]", "0x20")
+ self.bid32_to_binary64("3", "[800f423f]", "[ac355c1f1063a881]", "0x20")
+ self.bid32_to_binary64("4", "[800f423f]", "[ac355c1f1063a881]", "0x20")
+ self.bid32_to_binary64("0", "[80baf827]", "[ac89cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("1", "[80baf827]", "[ac89cbd06456ee4f]", "0x20")
+ self.bid32_to_binary64("2", "[80baf827]", "[ac89cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("3", "[80baf827]", "[ac89cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("4", "[80baf827]", "[ac89cbd06456ee4e]", "0x20")
+ self.bid32_to_binary64("0", "[82f41b1a]", "[ad6f00051b7ba70a]", "0x20")
+ self.bid32_to_binary64("1", "[82f41b1a]", "[ad6f00051b7ba70b]", "0x20")
+ self.bid32_to_binary64("2", "[82f41b1a]", "[ad6f00051b7ba70a]", "0x20")
+ self.bid32_to_binary64("3", "[82f41b1a]", "[ad6f00051b7ba70a]", "0x20")
+ self.bid32_to_binary64("4", "[82f41b1a]", "[ad6f00051b7ba70a]", "0x20")
+ self.bid32_to_binary64("0", "[83000001]", "[ac355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("1", "[83000001]", "[ac355c2076bf9a56]", "0x20")
+ self.bid32_to_binary64("2", "[83000001]", "[ac355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("3", "[83000001]", "[ac355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("4", "[83000001]", "[ac355c2076bf9a55]", "0x20")
+ self.bid32_to_binary64("0", "[83800001]", "[ac6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("1", "[83800001]", "[ac6ab328946f80eb]", "0x20")
+ self.bid32_to_binary64("2", "[83800001]", "[ac6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("3", "[83800001]", "[ac6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("4", "[83800001]", "[ac6ab328946f80ea]", "0x20")
+ self.bid32_to_binary64("0", "[83bee8cb]", "[adca3ead732acfe8]", "0x20")
+ self.bid32_to_binary64("1", "[83bee8cb]", "[adca3ead732acfe8]", "0x20")
+ self.bid32_to_binary64("2", "[83bee8cb]", "[adca3ead732acfe7]", "0x20")
+ self.bid32_to_binary64("3", "[83bee8cb]", "[adca3ead732acfe7]", "0x20")
+ self.bid32_to_binary64("4", "[83bee8cb]", "[adca3ead732acfe8]", "0x20")
+ self.bid32_to_binary64("0", "[84ae5c6b]", "[ae2e38723a5ce17c]", "0x20")
+ self.bid32_to_binary64("1", "[84ae5c6b]", "[ae2e38723a5ce17c]", "0x20")
+ self.bid32_to_binary64("2", "[84ae5c6b]", "[ae2e38723a5ce17b]", "0x20")
+ self.bid32_to_binary64("3", "[84ae5c6b]", "[ae2e38723a5ce17b]", "0x20")
+ self.bid32_to_binary64("4", "[84ae5c6b]", "[ae2e38723a5ce17c]", "0x20")
+ self.bid32_to_binary64("0", "[85928b5e]", "[ae82e347647a0ced]", "0x20")
+ self.bid32_to_binary64("1", "[85928b5e]", "[ae82e347647a0cee]", "0x20")
+ self.bid32_to_binary64("2", "[85928b5e]", "[ae82e347647a0ced]", "0x20")
+ self.bid32_to_binary64("3", "[85928b5e]", "[ae82e347647a0ced]", "0x20")
+ self.bid32_to_binary64("4", "[85928b5e]", "[ae82e347647a0ced]", "0x20")
+ self.bid32_to_binary64("0", "[8693b3d5]", "[aeef5aed7614686b]", "0x20")
+ self.bid32_to_binary64("1", "[8693b3d5]", "[aeef5aed7614686c]", "0x20")
+ self.bid32_to_binary64("2", "[8693b3d5]", "[aeef5aed7614686b]", "0x20")
+ self.bid32_to_binary64("3", "[8693b3d5]", "[aeef5aed7614686b]", "0x20")
+ self.bid32_to_binary64("4", "[8693b3d5]", "[aeef5aed7614686b]", "0x20")
+ self.bid32_to_binary64("0", "[878a165b]", "[af491553af7b7353]", "0x20")
+ self.bid32_to_binary64("1", "[878a165b]", "[af491553af7b7353]", "0x20")
+ self.bid32_to_binary64("2", "[878a165b]", "[af491553af7b7352]", "0x20")
+ self.bid32_to_binary64("3", "[878a165b]", "[af491553af7b7352]", "0x20")
+ self.bid32_to_binary64("4", "[878a165b]", "[af491553af7b7353]", "0x20")
+ self.bid32_to_binary64("0", "[88806223]", "[af67d4b57562e710]", "0x20")
+ self.bid32_to_binary64("1", "[88806223]", "[af67d4b57562e711]", "0x20")
+ self.bid32_to_binary64("2", "[88806223]", "[af67d4b57562e710]", "0x20")
+ self.bid32_to_binary64("3", "[88806223]", "[af67d4b57562e710]", "0x20")
+ self.bid32_to_binary64("4", "[88806223]", "[af67d4b57562e710]", "0x20")
+ self.bid32_to_binary64("0", "[89831118]", "[b0029e2dc3b54485]", "0x20")
+ self.bid32_to_binary64("1", "[89831118]", "[b0029e2dc3b54485]", "0x20")
+ self.bid32_to_binary64("2", "[89831118]", "[b0029e2dc3b54484]", "0x20")
+ self.bid32_to_binary64("3", "[89831118]", "[b0029e2dc3b54484]", "0x20")
+ self.bid32_to_binary64("4", "[89831118]", "[b0029e2dc3b54485]", "0x20")
+ self.bid32_to_binary64("0", "[8a0db57d]", "[b05a01fb6d8b1a20]", "0x20")
+ self.bid32_to_binary64("1", "[8a0db57d]", "[b05a01fb6d8b1a21]", "0x20")
+ self.bid32_to_binary64("2", "[8a0db57d]", "[b05a01fb6d8b1a20]", "0x20")
+ self.bid32_to_binary64("3", "[8a0db57d]", "[b05a01fb6d8b1a20]", "0x20")
+ self.bid32_to_binary64("4", "[8a0db57d]", "[b05a01fb6d8b1a20]", "0x20")
+ self.bid32_to_binary64("0", "[8b2eff07]", "[b0e169e9b6071ad8]", "0x20")
+ self.bid32_to_binary64("1", "[8b2eff07]", "[b0e169e9b6071ad8]", "0x20")
+ self.bid32_to_binary64("2", "[8b2eff07]", "[b0e169e9b6071ad7]", "0x20")
+ self.bid32_to_binary64("3", "[8b2eff07]", "[b0e169e9b6071ad7]", "0x20")
+ self.bid32_to_binary64("4", "[8b2eff07]", "[b0e169e9b6071ad8]", "0x20")
+ self.bid32_to_binary64("0", "[8c481023]", "[b154dc5ee85b9b6e]", "0x20")
+ self.bid32_to_binary64("1", "[8c481023]", "[b154dc5ee85b9b6e]", "0x20")
+ self.bid32_to_binary64("2", "[8c481023]", "[b154dc5ee85b9b6d]", "0x20")
+ self.bid32_to_binary64("3", "[8c481023]", "[b154dc5ee85b9b6d]", "0x20")
+ self.bid32_to_binary64("4", "[8c481023]", "[b154dc5ee85b9b6e]", "0x20")
+ self.bid32_to_binary64("0", "[8f5a3882]", "[b298e83fe1a3d098]", "0x20")
+ self.bid32_to_binary64("1", "[8f5a3882]", "[b298e83fe1a3d099]", "0x20")
+ self.bid32_to_binary64("2", "[8f5a3882]", "[b298e83fe1a3d098]", "0x20")
+ self.bid32_to_binary64("3", "[8f5a3882]", "[b298e83fe1a3d098]", "0x20")
+ self.bid32_to_binary64("4", "[8f5a3882]", "[b298e83fe1a3d098]", "0x20")
+ self.bid32_to_binary64("0", "[9013aee5]", "[b2e0fb2580647d96]", "0x20")
+ self.bid32_to_binary64("1", "[9013aee5]", "[b2e0fb2580647d97]", "0x20")
+ self.bid32_to_binary64("2", "[9013aee5]", "[b2e0fb2580647d96]", "0x20")
+ self.bid32_to_binary64("3", "[9013aee5]", "[b2e0fb2580647d96]", "0x20")
+ self.bid32_to_binary64("4", "[9013aee5]", "[b2e0fb2580647d96]", "0x20")
+ self.bid32_to_binary64("0", "[912822cc]", "[b35b0d330b7ea470]", "0x20")
+ self.bid32_to_binary64("1", "[912822cc]", "[b35b0d330b7ea471]", "0x20")
+ self.bid32_to_binary64("2", "[912822cc]", "[b35b0d330b7ea470]", "0x20")
+ self.bid32_to_binary64("3", "[912822cc]", "[b35b0d330b7ea470]", "0x20")
+ self.bid32_to_binary64("4", "[912822cc]", "[b35b0d330b7ea470]", "0x20")
+ self.bid32_to_binary64("0", "[9214ff06]", "[b3b61c8f73bc9e75]", "0x20")
+ self.bid32_to_binary64("1", "[9214ff06]", "[b3b61c8f73bc9e75]", "0x20")
+ self.bid32_to_binary64("2", "[9214ff06]", "[b3b61c8f73bc9e74]", "0x20")
+ self.bid32_to_binary64("3", "[9214ff06]", "[b3b61c8f73bc9e74]", "0x20")
+ self.bid32_to_binary64("4", "[9214ff06]", "[b3b61c8f73bc9e75]", "0x20")
+ self.bid32_to_binary64("0", "[930cf727]", "[b41555ae28ababee]", "0x20")
+ self.bid32_to_binary64("1", "[930cf727]", "[b41555ae28ababee]", "0x20")
+ self.bid32_to_binary64("2", "[930cf727]", "[b41555ae28ababed]", "0x20")
+ self.bid32_to_binary64("3", "[930cf727]", "[b41555ae28ababed]", "0x20")
+ self.bid32_to_binary64("4", "[930cf727]", "[b41555ae28ababee]", "0x20")
+ self.bid32_to_binary64("0", "[940422b9]", "[b465442a5d58f916]", "0x20")
+ self.bid32_to_binary64("1", "[940422b9]", "[b465442a5d58f916]", "0x20")
+ self.bid32_to_binary64("2", "[940422b9]", "[b465442a5d58f915]", "0x20")
+ self.bid32_to_binary64("3", "[940422b9]", "[b465442a5d58f915]", "0x20")
+ self.bid32_to_binary64("4", "[940422b9]", "[b465442a5d58f916]", "0x20")
+ self.bid32_to_binary64("0", "[95055f9a]", "[b4d59644266c9f6b]", "0x20")
+ self.bid32_to_binary64("1", "[95055f9a]", "[b4d59644266c9f6b]", "0x20")
+ self.bid32_to_binary64("2", "[95055f9a]", "[b4d59644266c9f6a]", "0x20")
+ self.bid32_to_binary64("3", "[95055f9a]", "[b4d59644266c9f6a]", "0x20")
+ self.bid32_to_binary64("4", "[95055f9a]", "[b4d59644266c9f6b]", "0x20")
+ self.bid32_to_binary64("0", "[96034202]", "[b5347326e213daf9]", "0x20")
+ self.bid32_to_binary64("1", "[96034202]", "[b5347326e213daf9]", "0x20")
+ self.bid32_to_binary64("2", "[96034202]", "[b5347326e213daf8]", "0x20")
+ self.bid32_to_binary64("3", "[96034202]", "[b5347326e213daf8]", "0x20")
+ self.bid32_to_binary64("4", "[96034202]", "[b5347326e213daf9]", "0x20")
+ self.bid32_to_binary64("0", "[9797c30b]", "[b602351e3c9ac5b0]", "0x20")
+ self.bid32_to_binary64("1", "[9797c30b]", "[b602351e3c9ac5b1]", "0x20")
+ self.bid32_to_binary64("2", "[9797c30b]", "[b602351e3c9ac5b0]", "0x20")
+ self.bid32_to_binary64("3", "[9797c30b]", "[b602351e3c9ac5b0]", "0x20")
+ self.bid32_to_binary64("4", "[9797c30b]", "[b602351e3c9ac5b0]", "0x20")
+ self.bid32_to_binary64("0", "[98daf55c]", "[b68b39ab78718832]", "0x20")
+ self.bid32_to_binary64("1", "[98daf55c]", "[b68b39ab78718832]", "0x20")
+ self.bid32_to_binary64("2", "[98daf55c]", "[b68b39ab78718831]", "0x20")
+ self.bid32_to_binary64("3", "[98daf55c]", "[b68b39ab78718831]", "0x20")
+ self.bid32_to_binary64("4", "[98daf55c]", "[b68b39ab78718832]", "0x20")
+ self.bid32_to_binary64("0", "[9a033de6]", "[b6de528bf5efa60c]", "0x20")
+ self.bid32_to_binary64("1", "[9a033de6]", "[b6de528bf5efa60c]", "0x20")
+ self.bid32_to_binary64("2", "[9a033de6]", "[b6de528bf5efa60b]", "0x20")
+ self.bid32_to_binary64("3", "[9a033de6]", "[b6de528bf5efa60b]", "0x20")
+ self.bid32_to_binary64("4", "[9a033de6]", "[b6de528bf5efa60c]", "0x20")
+ self.bid32_to_binary64("0", "[9abc1faf]", "[b755f7be21275cb5]", "0x20")
+ self.bid32_to_binary64("1", "[9abc1faf]", "[b755f7be21275cb6]", "0x20")
+ self.bid32_to_binary64("2", "[9abc1faf]", "[b755f7be21275cb5]", "0x20")
+ self.bid32_to_binary64("3", "[9abc1faf]", "[b755f7be21275cb5]", "0x20")
+ self.bid32_to_binary64("4", "[9abc1faf]", "[b755f7be21275cb5]", "0x20")
+ self.bid32_to_binary64("0", "[9bea90e4]", "[b7ce6b5150d93206]", "0x20")
+ self.bid32_to_binary64("1", "[9bea90e4]", "[b7ce6b5150d93207]", "0x20")
+ self.bid32_to_binary64("2", "[9bea90e4]", "[b7ce6b5150d93206]", "0x20")
+ self.bid32_to_binary64("3", "[9bea90e4]", "[b7ce6b5150d93206]", "0x20")
+ self.bid32_to_binary64("4", "[9bea90e4]", "[b7ce6b5150d93206]", "0x20")
+ self.bid32_to_binary64("0", "[9c974493]", "[b814c17116f185ba]", "0x20")
+ self.bid32_to_binary64("1", "[9c974493]", "[b814c17116f185bb]", "0x20")
+ self.bid32_to_binary64("2", "[9c974493]", "[b814c17116f185ba]", "0x20")
+ self.bid32_to_binary64("3", "[9c974493]", "[b814c17116f185ba]", "0x20")
+ self.bid32_to_binary64("4", "[9c974493]", "[b814c17116f185ba]", "0x20")
+ self.bid32_to_binary64("0", "[9e045d65]", "[b88e6b1a754d5157]", "0x20")
+ self.bid32_to_binary64("1", "[9e045d65]", "[b88e6b1a754d5158]", "0x20")
+ self.bid32_to_binary64("2", "[9e045d65]", "[b88e6b1a754d5157]", "0x20")
+ self.bid32_to_binary64("3", "[9e045d65]", "[b88e6b1a754d5157]", "0x20")
+ self.bid32_to_binary64("4", "[9e045d65]", "[b88e6b1a754d5157]", "0x20")
+ self.bid32_to_binary64("0", "[9e8f8b66]", "[b8e0ed2e61e9fa84]", "0x20")
+ self.bid32_to_binary64("1", "[9e8f8b66]", "[b8e0ed2e61e9fa85]", "0x20")
+ self.bid32_to_binary64("2", "[9e8f8b66]", "[b8e0ed2e61e9fa84]", "0x20")
+ self.bid32_to_binary64("3", "[9e8f8b66]", "[b8e0ed2e61e9fa84]", "0x20")
+ self.bid32_to_binary64("4", "[9e8f8b66]", "[b8e0ed2e61e9fa84]", "0x20")
+ self.bid32_to_binary64("0", "[9f921289]", "[b94ebfa4445b9dcd]", "0x20")
+ self.bid32_to_binary64("1", "[9f921289]", "[b94ebfa4445b9dcd]", "0x20")
+ self.bid32_to_binary64("2", "[9f921289]", "[b94ebfa4445b9dcc]", "0x20")
+ self.bid32_to_binary64("3", "[9f921289]", "[b94ebfa4445b9dcc]", "0x20")
+ self.bid32_to_binary64("4", "[9f921289]", "[b94ebfa4445b9dcd]", "0x20")
+ self.bid32_to_binary64("0", "[a089e611]", "[b9aa50b43ab3dff8]", "0x20")
+ self.bid32_to_binary64("1", "[a089e611]", "[b9aa50b43ab3dff9]", "0x20")
+ self.bid32_to_binary64("2", "[a089e611]", "[b9aa50b43ab3dff8]", "0x20")
+ self.bid32_to_binary64("3", "[a089e611]", "[b9aa50b43ab3dff8]", "0x20")
+ self.bid32_to_binary64("4", "[a089e611]", "[b9aa50b43ab3dff8]", "0x20")
+ self.bid32_to_binary64("0", "[a187ad40]", "[ba0fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("1", "[a187ad40]", "[ba0fe3544145e9d9]", "0x20")
+ self.bid32_to_binary64("2", "[a187ad40]", "[ba0fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("3", "[a187ad40]", "[ba0fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("4", "[a187ad40]", "[ba0fe3544145e9d8]", "0x20")
+ self.bid32_to_binary64("0", "[a28167f2]", "[ba52405b773fbdf3]", "0x20")
+ self.bid32_to_binary64("1", "[a28167f2]", "[ba52405b773fbdf3]", "0x20")
+ self.bid32_to_binary64("2", "[a28167f2]", "[ba52405b773fbdf2]", "0x20")
+ self.bid32_to_binary64("3", "[a28167f2]", "[ba52405b773fbdf2]", "0x20")
+ self.bid32_to_binary64("4", "[a28167f2]", "[ba52405b773fbdf3]", "0x20")
+ self.bid32_to_binary64("0", "[a35d0cc5]", "[bae7974855c6a628]", "0x20")
+ self.bid32_to_binary64("1", "[a35d0cc5]", "[bae7974855c6a628]", "0x20")
+ self.bid32_to_binary64("2", "[a35d0cc5]", "[bae7974855c6a627]", "0x20")
+ self.bid32_to_binary64("3", "[a35d0cc5]", "[bae7974855c6a627]", "0x20")
+ self.bid32_to_binary64("4", "[a35d0cc5]", "[bae7974855c6a628]", "0x20")
+ self.bid32_to_binary64("0", "[a484c195]", "[bb42d756dfcb1bb4]", "0x20")
+ self.bid32_to_binary64("1", "[a484c195]", "[bb42d756dfcb1bb4]", "0x20")
+ self.bid32_to_binary64("2", "[a484c195]", "[bb42d756dfcb1bb3]", "0x20")
+ self.bid32_to_binary64("3", "[a484c195]", "[bb42d756dfcb1bb3]", "0x20")
+ self.bid32_to_binary64("4", "[a484c195]", "[bb42d756dfcb1bb4]", "0x20")
+ self.bid32_to_binary64("0", "[a7706288]", "[bc953a9985dbde6c]", "0x20")
+ self.bid32_to_binary64("1", "[a7706288]", "[bc953a9985dbde6c]", "0x20")
+ self.bid32_to_binary64("2", "[a7706288]", "[bc953a9985dbde6b]", "0x20")
+ self.bid32_to_binary64("3", "[a7706288]", "[bc953a9985dbde6b]", "0x20")
+ self.bid32_to_binary64("4", "[a7706288]", "[bc953a9985dbde6c]", "0x20")
+ self.bid32_to_binary64("0", "[a8531201]", "[bcf8849dd33c95af]", "0x20")
+ self.bid32_to_binary64("1", "[a8531201]", "[bcf8849dd33c95af]", "0x20")
+ self.bid32_to_binary64("2", "[a8531201]", "[bcf8849dd33c95ae]", "0x20")
+ self.bid32_to_binary64("3", "[a8531201]", "[bcf8849dd33c95ae]", "0x20")
+ self.bid32_to_binary64("4", "[a8531201]", "[bcf8849dd33c95af]", "0x20")
+ self.bid32_to_binary64("0", "[a926162b]", "[bd519078a913357e]", "0x20")
+ self.bid32_to_binary64("1", "[a926162b]", "[bd519078a913357e]", "0x20")
+ self.bid32_to_binary64("2", "[a926162b]", "[bd519078a913357d]", "0x20")
+ self.bid32_to_binary64("3", "[a926162b]", "[bd519078a913357d]", "0x20")
+ self.bid32_to_binary64("4", "[a926162b]", "[bd519078a913357e]", "0x20")
+ self.bid32_to_binary64("0", "[aa126b15]", "[bdaa8b263af79514]", "0x20")
+ self.bid32_to_binary64("1", "[aa126b15]", "[bdaa8b263af79515]", "0x20")
+ self.bid32_to_binary64("2", "[aa126b15]", "[bdaa8b263af79514]", "0x20")
+ self.bid32_to_binary64("3", "[aa126b15]", "[bdaa8b263af79514]", "0x20")
+ self.bid32_to_binary64("4", "[aa126b15]", "[bdaa8b263af79514]", "0x20")
+ self.bid32_to_binary64("0", "[ab12abe1]", "[be1505aa4b8c33d6]", "0x20")
+ self.bid32_to_binary64("1", "[ab12abe1]", "[be1505aa4b8c33d6]", "0x20")
+ self.bid32_to_binary64("2", "[ab12abe1]", "[be1505aa4b8c33d5]", "0x20")
+ self.bid32_to_binary64("3", "[ab12abe1]", "[be1505aa4b8c33d5]", "0x20")
+ self.bid32_to_binary64("4", "[ab12abe1]", "[be1505aa4b8c33d6]", "0x20")
+ self.bid32_to_binary64("0", "[ac07ee93]", "[be6be872a8b30d7d]", "0x20")
+ self.bid32_to_binary64("1", "[ac07ee93]", "[be6be872a8b30d7d]", "0x20")
+ self.bid32_to_binary64("2", "[ac07ee93]", "[be6be872a8b30d7c]", "0x20")
+ self.bid32_to_binary64("3", "[ac07ee93]", "[be6be872a8b30d7c]", "0x20")
+ self.bid32_to_binary64("4", "[ac07ee93]", "[be6be872a8b30d7d]", "0x20")
+ self.bid32_to_binary64("0", "[ad0333ed]", "[bec19b96f36ec68b]", "0x20")
+ self.bid32_to_binary64("1", "[ad0333ed]", "[bec19b96f36ec68c]", "0x20")
+ self.bid32_to_binary64("2", "[ad0333ed]", "[bec19b96f36ec68b]", "0x20")
+ self.bid32_to_binary64("3", "[ad0333ed]", "[bec19b96f36ec68b]", "0x20")
+ self.bid32_to_binary64("4", "[ad0333ed]", "[bec19b96f36ec68b]", "0x20")
+ self.bid32_to_binary64("0", "[ae04b977]", "[bf344a9ca8ba155d]", "0x20")
+ self.bid32_to_binary64("1", "[ae04b977]", "[bf344a9ca8ba155d]", "0x20")
+ self.bid32_to_binary64("2", "[ae04b977]", "[bf344a9ca8ba155c]", "0x20")
+ self.bid32_to_binary64("3", "[ae04b977]", "[bf344a9ca8ba155c]", "0x20")
+ self.bid32_to_binary64("4", "[ae04b977]", "[bf344a9ca8ba155d]", "0x20")
+ self.bid32_to_binary64("0", "[aecd7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[aecd7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[aecd7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[aecd7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[aecd7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[af03cf77]", "[bf99923bd746a352]", "0x20")
+ self.bid32_to_binary64("1", "[af03cf77]", "[bf99923bd746a353]", "0x20")
+ self.bid32_to_binary64("2", "[af03cf77]", "[bf99923bd746a352]", "0x20")
+ self.bid32_to_binary64("3", "[af03cf77]", "[bf99923bd746a352]", "0x20")
+ self.bid32_to_binary64("4", "[af03cf77]", "[bf99923bd746a352]", "0x20")
+ self.bid32_to_binary64("0", "[b200000f]", "[bff8000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[b200000f]", "[bff8000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[b200000f]", "[bff8000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[b200000f]", "[bff8000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[b200000f]", "[bff8000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[b2800001]", "[bff0000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[b2800001]", "[bff0000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[b2800001]", "[bff0000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[b2800001]", "[bff0000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[b2800001]", "[bff0000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[b2800040]", "[c050000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[b2800040]", "[c050000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[b2800040]", "[c050000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[b2800040]", "[c050000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[b2800040]", "[c050000000000000]", "0x00")
+ self.bid32_to_binary64("0", "[b28003e7]", "[c08f380000000000]", "0x00")
+ self.bid32_to_binary64("1", "[b28003e7]", "[c08f380000000000]", "0x00")
+ self.bid32_to_binary64("2", "[b28003e7]", "[c08f380000000000]", "0x00")
+ self.bid32_to_binary64("3", "[b28003e7]", "[c08f380000000000]", "0x00")
+ self.bid32_to_binary64("4", "[b28003e7]", "[c08f380000000000]", "0x00")
+ self.bid32_to_binary64("0", "[b28003e8]", "[c08f400000000000]", "0x00")
+ self.bid32_to_binary64("1", "[b28003e8]", "[c08f400000000000]", "0x00")
+ self.bid32_to_binary64("2", "[b28003e8]", "[c08f400000000000]", "0x00")
+ self.bid32_to_binary64("3", "[b28003e8]", "[c08f400000000000]", "0x00")
+ self.bid32_to_binary64("4", "[b28003e8]", "[c08f400000000000]", "0x00")
+ self.bid32_to_binary64("0", "[b30f4240]", "[c16312d000000000]", "0x00")
+ self.bid32_to_binary64("1", "[b30f4240]", "[c16312d000000000]", "0x00")
+ self.bid32_to_binary64("2", "[b30f4240]", "[c16312d000000000]", "0x00")
+ self.bid32_to_binary64("3", "[b30f4240]", "[c16312d000000000]", "0x00")
+ self.bid32_to_binary64("4", "[b30f4240]", "[c16312d000000000]", "0x00")
+ self.bid32_to_binary64("0", "[b40f4240]", "[c1cdcd6500000000]", "0x00")
+ self.bid32_to_binary64("1", "[b40f4240]", "[c1cdcd6500000000]", "0x00")
+ self.bid32_to_binary64("2", "[b40f4240]", "[c1cdcd6500000000]", "0x00")
+ self.bid32_to_binary64("3", "[b40f4240]", "[c1cdcd6500000000]", "0x00")
+ self.bid32_to_binary64("4", "[b40f4240]", "[c1cdcd6500000000]", "0x00")
+ self.bid32_to_binary64("0", "[b4e8db8b]", "[c22fffffcb600000]", "0x00")
+ self.bid32_to_binary64("1", "[b4e8db8b]", "[c22fffffcb600000]", "0x00")
+ self.bid32_to_binary64("2", "[b4e8db8b]", "[c22fffffcb600000]", "0x00")
+ self.bid32_to_binary64("3", "[b4e8db8b]", "[c22fffffcb600000]", "0x00")
+ self.bid32_to_binary64("4", "[b4e8db8b]", "[c22fffffcb600000]", "0x00")
+ self.bid32_to_binary64("0", "[b5c31bde]", "[c28fffffc19c0000]", "0x00")
+ self.bid32_to_binary64("1", "[b5c31bde]", "[c28fffffc19c0000]", "0x00")
+ self.bid32_to_binary64("2", "[b5c31bde]", "[c28fffffc19c0000]", "0x00")
+ self.bid32_to_binary64("3", "[b5c31bde]", "[c28fffffc19c0000]", "0x00")
+ self.bid32_to_binary64("4", "[b5c31bde]", "[c28fffffc19c0000]", "0x00")
+ self.bid32_to_binary64("0", "[b6aaf31d]", "[c2efffff6dafa000]", "0x00")
+ self.bid32_to_binary64("1", "[b6aaf31d]", "[c2efffff6dafa000]", "0x00")
+ self.bid32_to_binary64("2", "[b6aaf31d]", "[c2efffff6dafa000]", "0x00")
+ self.bid32_to_binary64("3", "[b6aaf31d]", "[c2efffff6dafa000]", "0x00")
+ self.bid32_to_binary64("4", "[b6aaf31d]", "[c2efffff6dafa000]", "0x00")
+ self.bid32_to_binary64("0", "[b79b7cdf]", "[c34fffff0265ce00]", "0x00")
+ self.bid32_to_binary64("1", "[b79b7cdf]", "[c34fffff0265ce00]", "0x00")
+ self.bid32_to_binary64("2", "[b79b7cdf]", "[c34fffff0265ce00]", "0x00")
+ self.bid32_to_binary64("3", "[b79b7cdf]", "[c34fffff0265ce00]", "0x00")
+ self.bid32_to_binary64("4", "[b79b7cdf]", "[c34fffff0265ce00]", "0x00")
+ self.bid32_to_binary64("0", "[b8919799]", "[c3afffff15062d20]", "0x00")
+ self.bid32_to_binary64("1", "[b8919799]", "[c3afffff15062d20]", "0x00")
+ self.bid32_to_binary64("2", "[b8919799]", "[c3afffff15062d20]", "0x00")
+ self.bid32_to_binary64("3", "[b8919799]", "[c3afffff15062d20]", "0x00")
+ self.bid32_to_binary64("4", "[b8919799]", "[c3afffff15062d20]", "0x00")
+ self.bid32_to_binary64("0", "[b9709702]", "[c40ffffdd4e1ca2a]", "0x00")
+ self.bid32_to_binary64("1", "[b9709702]", "[c40ffffdd4e1ca2a]", "0x00")
+ self.bid32_to_binary64("2", "[b9709702]", "[c40ffffdd4e1ca2a]", "0x00")
+ self.bid32_to_binary64("3", "[b9709702]", "[c40ffffdd4e1ca2a]", "0x00")
+ self.bid32_to_binary64("4", "[b9709702]", "[c40ffffdd4e1ca2a]", "0x00")
+ self.bid32_to_binary64("0", "[ba480eae]", "[c46ffff8ae1d5b3d]", "0x20")
+ self.bid32_to_binary64("1", "[ba480eae]", "[c46ffff8ae1d5b3e]", "0x20")
+ self.bid32_to_binary64("2", "[ba480eae]", "[c46ffff8ae1d5b3d]", "0x20")
+ self.bid32_to_binary64("3", "[ba480eae]", "[c46ffff8ae1d5b3d]", "0x20")
+ self.bid32_to_binary64("4", "[ba480eae]", "[c46ffff8ae1d5b3d]", "0x20")
+ self.bid32_to_binary64("0", "[bb2e1de6]", "[c4cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("1", "[bb2e1de6]", "[c4cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("2", "[bb2e1de6]", "[c4cffffcd7edc455]", "0x20")
+ self.bid32_to_binary64("3", "[bb2e1de6]", "[c4cffffcd7edc455]", "0x20")
+ self.bid32_to_binary64("4", "[bb2e1de6]", "[c4cffffcd7edc456]", "0x20")
+ self.bid32_to_binary64("0", "[beae4cf8]", "[c6432645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("1", "[beae4cf8]", "[c6432645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("2", "[beae4cf8]", "[c6432645e1ba93ef]", "0x20")
+ self.bid32_to_binary64("3", "[beae4cf8]", "[c6432645e1ba93ef]", "0x20")
+ self.bid32_to_binary64("4", "[beae4cf8]", "[c6432645e1ba93f0]", "0x20")
+ self.bid32_to_binary64("0", "[c0339017]", "[c6e4d3794ce2fc26]", "0x20")
+ self.bid32_to_binary64("1", "[c0339017]", "[c6e4d3794ce2fc26]", "0x20")
+ self.bid32_to_binary64("2", "[c0339017]", "[c6e4d3794ce2fc25]", "0x20")
+ self.bid32_to_binary64("3", "[c0339017]", "[c6e4d3794ce2fc25]", "0x20")
+ self.bid32_to_binary64("4", "[c0339017]", "[c6e4d3794ce2fc26]", "0x20")
+ self.bid32_to_binary64("0", "[c14f28a1]", "[c758fa63afcbb900]", "0x20")
+ self.bid32_to_binary64("1", "[c14f28a1]", "[c758fa63afcbb901]", "0x20")
+ self.bid32_to_binary64("2", "[c14f28a1]", "[c758fa63afcbb900]", "0x20")
+ self.bid32_to_binary64("3", "[c14f28a1]", "[c758fa63afcbb900]", "0x20")
+ self.bid32_to_binary64("4", "[c14f28a1]", "[c758fa63afcbb900]", "0x20")
+ self.bid32_to_binary64("0", "[c22f6fcd]", "[c7b7635b25f99028]", "0x20")
+ self.bid32_to_binary64("1", "[c22f6fcd]", "[c7b7635b25f99029]", "0x20")
+ self.bid32_to_binary64("2", "[c22f6fcd]", "[c7b7635b25f99028]", "0x20")
+ self.bid32_to_binary64("3", "[c22f6fcd]", "[c7b7635b25f99028]", "0x20")
+ self.bid32_to_binary64("4", "[c22f6fcd]", "[c7b7635b25f99028]", "0x20")
+ self.bid32_to_binary64("0", "[c325b75d]", "[c81d0e38a791f98b]", "0x20")
+ self.bid32_to_binary64("1", "[c325b75d]", "[c81d0e38a791f98c]", "0x20")
+ self.bid32_to_binary64("2", "[c325b75d]", "[c81d0e38a791f98b]", "0x20")
+ self.bid32_to_binary64("3", "[c325b75d]", "[c81d0e38a791f98b]", "0x20")
+ self.bid32_to_binary64("4", "[c325b75d]", "[c81d0e38a791f98b]", "0x20")
+ self.bid32_to_binary64("0", "[c4180782]", "[c87cec9bb224f009]", "0x20")
+ self.bid32_to_binary64("1", "[c4180782]", "[c87cec9bb224f009]", "0x20")
+ self.bid32_to_binary64("2", "[c4180782]", "[c87cec9bb224f008]", "0x20")
+ self.bid32_to_binary64("3", "[c4180782]", "[c87cec9bb224f008]", "0x20")
+ self.bid32_to_binary64("4", "[c4180782]", "[c87cec9bb224f009]", "0x20")
+ self.bid32_to_binary64("0", "[c48fd534]", "[c8a7d2950dc76da4]", "0x20")
+ self.bid32_to_binary64("1", "[c48fd534]", "[c8a7d2950dc76da5]", "0x20")
+ self.bid32_to_binary64("2", "[c48fd534]", "[c8a7d2950dc76da4]", "0x20")
+ self.bid32_to_binary64("3", "[c48fd534]", "[c8a7d2950dc76da4]", "0x20")
+ self.bid32_to_binary64("4", "[c48fd534]", "[c8a7d2950dc76da4]", "0x20")
+ self.bid32_to_binary64("0", "[c5e200a2]", "[c93ccce2f3f92a20]", "0x20")
+ self.bid32_to_binary64("1", "[c5e200a2]", "[c93ccce2f3f92a21]", "0x20")
+ self.bid32_to_binary64("2", "[c5e200a2]", "[c93ccce2f3f92a20]", "0x20")
+ self.bid32_to_binary64("3", "[c5e200a2]", "[c93ccce2f3f92a20]", "0x20")
+ self.bid32_to_binary64("4", "[c5e200a2]", "[c93ccce2f3f92a20]", "0x20")
+ self.bid32_to_binary64("0", "[c6990c94]", "[c9870105df3d47cb]", "0x20")
+ self.bid32_to_binary64("1", "[c6990c94]", "[c9870105df3d47cc]", "0x20")
+ self.bid32_to_binary64("2", "[c6990c94]", "[c9870105df3d47cb]", "0x20")
+ self.bid32_to_binary64("3", "[c6990c94]", "[c9870105df3d47cb]", "0x20")
+ self.bid32_to_binary64("4", "[c6990c94]", "[c9870105df3d47cb]", "0x20")
+ self.bid32_to_binary64("0", "[c75833b0]", "[c9d9500d7197e3f2]", "0x20")
+ self.bid32_to_binary64("1", "[c75833b0]", "[c9d9500d7197e3f3]", "0x20")
+ self.bid32_to_binary64("2", "[c75833b0]", "[c9d9500d7197e3f2]", "0x20")
+ self.bid32_to_binary64("3", "[c75833b0]", "[c9d9500d7197e3f2]", "0x20")
+ self.bid32_to_binary64("4", "[c75833b0]", "[c9d9500d7197e3f2]", "0x20")
+ self.bid32_to_binary64("0", "[c8f7761f]", "[ca80bd77ca6bbb84]", "0x20")
+ self.bid32_to_binary64("1", "[c8f7761f]", "[ca80bd77ca6bbb84]", "0x20")
+ self.bid32_to_binary64("2", "[c8f7761f]", "[ca80bd77ca6bbb83]", "0x20")
+ self.bid32_to_binary64("3", "[c8f7761f]", "[ca80bd77ca6bbb83]", "0x20")
+ self.bid32_to_binary64("4", "[c8f7761f]", "[ca80bd77ca6bbb84]", "0x20")
+ self.bid32_to_binary64("0", "[caa33587]", "[cb38174e40cc5cdc]", "0x20")
+ self.bid32_to_binary64("1", "[caa33587]", "[cb38174e40cc5cdd]", "0x20")
+ self.bid32_to_binary64("2", "[caa33587]", "[cb38174e40cc5cdc]", "0x20")
+ self.bid32_to_binary64("3", "[caa33587]", "[cb38174e40cc5cdc]", "0x20")
+ self.bid32_to_binary64("4", "[caa33587]", "[cb38174e40cc5cdc]", "0x20")
+ self.bid32_to_binary64("0", "[cbd07892]", "[cbb5820c3849fd45]", "0x20")
+ self.bid32_to_binary64("1", "[cbd07892]", "[cbb5820c3849fd46]", "0x20")
+ self.bid32_to_binary64("2", "[cbd07892]", "[cbb5820c3849fd45]", "0x20")
+ self.bid32_to_binary64("3", "[cbd07892]", "[cbb5820c3849fd45]", "0x20")
+ self.bid32_to_binary64("4", "[cbd07892]", "[cbb5820c3849fd45]", "0x20")
+ self.bid32_to_binary64("0", "[ccc6ce43]", "[cc1d91e14e502ba4]", "0x20")
+ self.bid32_to_binary64("1", "[ccc6ce43]", "[cc1d91e14e502ba5]", "0x20")
+ self.bid32_to_binary64("2", "[ccc6ce43]", "[cc1d91e14e502ba4]", "0x20")
+ self.bid32_to_binary64("3", "[ccc6ce43]", "[cc1d91e14e502ba4]", "0x20")
+ self.bid32_to_binary64("4", "[ccc6ce43]", "[cc1d91e14e502ba4]", "0x20")
+ self.bid32_to_binary64("0", "[cdddfe1d]", "[cc8eaaa179d3b169]", "0x20")
+ self.bid32_to_binary64("1", "[cdddfe1d]", "[cc8eaaa179d3b16a]", "0x20")
+ self.bid32_to_binary64("2", "[cdddfe1d]", "[cc8eaaa179d3b169]", "0x20")
+ self.bid32_to_binary64("3", "[cdddfe1d]", "[cc8eaaa179d3b169]", "0x20")
+ self.bid32_to_binary64("4", "[cdddfe1d]", "[cc8eaaa179d3b169]", "0x20")
+ self.bid32_to_binary64("0", "[ceb63e8d]", "[cceba7376fe9b0b5]", "0x20")
+ self.bid32_to_binary64("1", "[ceb63e8d]", "[cceba7376fe9b0b6]", "0x20")
+ self.bid32_to_binary64("2", "[ceb63e8d]", "[cceba7376fe9b0b5]", "0x20")
+ self.bid32_to_binary64("3", "[ceb63e8d]", "[cceba7376fe9b0b5]", "0x20")
+ self.bid32_to_binary64("4", "[ceb63e8d]", "[cceba7376fe9b0b5]", "0x20")
+ self.bid32_to_binary64("0", "[cf93259c]", "[cd3e80b6d8e19215]", "0x20")
+ self.bid32_to_binary64("1", "[cf93259c]", "[cd3e80b6d8e19215]", "0x20")
+ self.bid32_to_binary64("2", "[cf93259c]", "[cd3e80b6d8e19214]", "0x20")
+ self.bid32_to_binary64("3", "[cf93259c]", "[cd3e80b6d8e19214]", "0x20")
+ self.bid32_to_binary64("4", "[cf93259c]", "[cd3e80b6d8e19215]", "0x20")
+ self.bid32_to_binary64("0", "[d0915f90]", "[cda59f732b2972d8]", "0x20")
+ self.bid32_to_binary64("1", "[d0915f90]", "[cda59f732b2972d8]", "0x20")
+ self.bid32_to_binary64("2", "[d0915f90]", "[cda59f732b2972d7]", "0x20")
+ self.bid32_to_binary64("3", "[d0915f90]", "[cda59f732b2972d7]", "0x20")
+ self.bid32_to_binary64("4", "[d0915f90]", "[cda59f732b2972d8]", "0x20")
+ self.bid32_to_binary64("0", "[d18fe3b1]", "[ce0ee668761a362d]", "0x20")
+ self.bid32_to_binary64("1", "[d18fe3b1]", "[ce0ee668761a362e]", "0x20")
+ self.bid32_to_binary64("2", "[d18fe3b1]", "[ce0ee668761a362d]", "0x20")
+ self.bid32_to_binary64("3", "[d18fe3b1]", "[ce0ee668761a362d]", "0x20")
+ self.bid32_to_binary64("4", "[d18fe3b1]", "[ce0ee668761a362d]", "0x20")
+ self.bid32_to_binary64("0", "[d267acbe]", "[ce6f809f0d2df223]", "0x20")
+ self.bid32_to_binary64("1", "[d267acbe]", "[ce6f809f0d2df224]", "0x20")
+ self.bid32_to_binary64("2", "[d267acbe]", "[ce6f809f0d2df223]", "0x20")
+ self.bid32_to_binary64("3", "[d267acbe]", "[ce6f809f0d2df223]", "0x20")
+ self.bid32_to_binary64("4", "[d267acbe]", "[ce6f809f0d2df223]", "0x20")
+ self.bid32_to_binary64("0", "[d33c4ff6]", "[cecca28f4c04a953]", "0x20")
+ self.bid32_to_binary64("1", "[d33c4ff6]", "[cecca28f4c04a954]", "0x20")
+ self.bid32_to_binary64("2", "[d33c4ff6]", "[cecca28f4c04a953]", "0x20")
+ self.bid32_to_binary64("3", "[d33c4ff6]", "[cecca28f4c04a953]", "0x20")
+ self.bid32_to_binary64("4", "[d33c4ff6]", "[cecca28f4c04a953]", "0x20")
+ self.bid32_to_binary64("0", "[d3ba0840]", "[cf0138643a016132]", "0x20")
+ self.bid32_to_binary64("1", "[d3ba0840]", "[cf0138643a016132]", "0x20")
+ self.bid32_to_binary64("2", "[d3ba0840]", "[cf0138643a016131]", "0x20")
+ self.bid32_to_binary64("3", "[d3ba0840]", "[cf0138643a016131]", "0x20")
+ self.bid32_to_binary64("4", "[d3ba0840]", "[cf0138643a016132]", "0x20")
+ self.bid32_to_binary64("0", "[d55ecc47]", "[cfab7880df2e5188]", "0x20")
+ self.bid32_to_binary64("1", "[d55ecc47]", "[cfab7880df2e5188]", "0x20")
+ self.bid32_to_binary64("2", "[d55ecc47]", "[cfab7880df2e5187]", "0x20")
+ self.bid32_to_binary64("3", "[d55ecc47]", "[cfab7880df2e5187]", "0x20")
+ self.bid32_to_binary64("4", "[d55ecc47]", "[cfab7880df2e5188]", "0x20")
+ self.bid32_to_binary64("0", "[d622a65a]", "[cfff60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("1", "[d622a65a]", "[cfff60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("2", "[d622a65a]", "[cfff60b4a930ae17]", "0x20")
+ self.bid32_to_binary64("3", "[d622a65a]", "[cfff60b4a930ae17]", "0x20")
+ self.bid32_to_binary64("4", "[d622a65a]", "[cfff60b4a930ae18]", "0x20")
+ self.bid32_to_binary64("0", "[d76ff6af]", "[d083cd885220ea7c]", "0x20")
+ self.bid32_to_binary64("1", "[d76ff6af]", "[d083cd885220ea7d]", "0x20")
+ self.bid32_to_binary64("2", "[d76ff6af]", "[d083cd885220ea7c]", "0x20")
+ self.bid32_to_binary64("3", "[d76ff6af]", "[d083cd885220ea7c]", "0x20")
+ self.bid32_to_binary64("4", "[d76ff6af]", "[d083cd885220ea7c]", "0x20")
+ self.bid32_to_binary64("0", "[d969ea91]", "[d156de262e569d42]", "0x20")
+ self.bid32_to_binary64("1", "[d969ea91]", "[d156de262e569d42]", "0x20")
+ self.bid32_to_binary64("2", "[d969ea91]", "[d156de262e569d41]", "0x20")
+ self.bid32_to_binary64("3", "[d969ea91]", "[d156de262e569d41]", "0x20")
+ self.bid32_to_binary64("4", "[d969ea91]", "[d156de262e569d42]", "0x20")
+ self.bid32_to_binary64("0", "[da5b2e31]", "[d1bec27efe8a377d]", "0x20")
+ self.bid32_to_binary64("1", "[da5b2e31]", "[d1bec27efe8a377d]", "0x20")
+ self.bid32_to_binary64("2", "[da5b2e31]", "[d1bec27efe8a377c]", "0x20")
+ self.bid32_to_binary64("3", "[da5b2e31]", "[d1bec27efe8a377c]", "0x20")
+ self.bid32_to_binary64("4", "[da5b2e31]", "[d1bec27efe8a377d]", "0x20")
+ self.bid32_to_binary64("0", "[db217364]", "[d211a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("1", "[db217364]", "[d211a1d9135cca54]", "0x20")
+ self.bid32_to_binary64("2", "[db217364]", "[d211a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("3", "[db217364]", "[d211a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("4", "[db217364]", "[d211a1d9135cca53]", "0x20")
+ self.bid32_to_binary64("0", "[dc1ceb38]", "[d277d15bf3186081]", "0x20")
+ self.bid32_to_binary64("1", "[dc1ceb38]", "[d277d15bf3186081]", "0x20")
+ self.bid32_to_binary64("2", "[dc1ceb38]", "[d277d15bf3186080]", "0x20")
+ self.bid32_to_binary64("3", "[dc1ceb38]", "[d277d15bf3186080]", "0x20")
+ self.bid32_to_binary64("4", "[dc1ceb38]", "[d277d15bf3186081]", "0x20")
+ self.bid32_to_binary64("0", "[dcebc132]", "[d2cbbbd1aedbf9c0]", "0x20")
+ self.bid32_to_binary64("1", "[dcebc132]", "[d2cbbbd1aedbf9c0]", "0x20")
+ self.bid32_to_binary64("2", "[dcebc132]", "[d2cbbbd1aedbf9bf]", "0x20")
+ self.bid32_to_binary64("3", "[dcebc132]", "[d2cbbbd1aedbf9bf]", "0x20")
+ self.bid32_to_binary64("4", "[dcebc132]", "[d2cbbbd1aedbf9c0]", "0x20")
+ self.bid32_to_binary64("0", "[ddebc132]", "[d335aabbd09bdb1e]", "0x20")
+ self.bid32_to_binary64("1", "[ddebc132]", "[d335aabbd09bdb1e]", "0x20")
+ self.bid32_to_binary64("2", "[ddebc132]", "[d335aabbd09bdb1d]", "0x20")
+ self.bid32_to_binary64("3", "[ddebc132]", "[d335aabbd09bdb1d]", "0x20")
+ self.bid32_to_binary64("4", "[ddebc132]", "[d335aabbd09bdb1e]", "0x20")
+ self.bid32_to_binary64("0", "[decfa52e]", "[d39905e9b292dc2b]", "0x20")
+ self.bid32_to_binary64("1", "[decfa52e]", "[d39905e9b292dc2c]", "0x20")
+ self.bid32_to_binary64("2", "[decfa52e]", "[d39905e9b292dc2b]", "0x20")
+ self.bid32_to_binary64("3", "[decfa52e]", "[d39905e9b292dc2b]", "0x20")
+ self.bid32_to_binary64("4", "[decfa52e]", "[d39905e9b292dc2b]", "0x20")
+ self.bid32_to_binary64("0", "[e06c26d1]", "[ad07f2ef5801decd]", "0x20")
+ self.bid32_to_binary64("1", "[e06c26d1]", "[ad07f2ef5801decd]", "0x20")
+ self.bid32_to_binary64("2", "[e06c26d1]", "[ad07f2ef5801decc]", "0x20")
+ self.bid32_to_binary64("3", "[e06c26d1]", "[ad07f2ef5801decc]", "0x20")
+ self.bid32_to_binary64("4", "[e06c26d1]", "[ad07f2ef5801decd]", "0x20")
+ self.bid32_to_binary64("0", "[e349bc1f]", "[b1cf264d8b4a5630]", "0x20")
+ self.bid32_to_binary64("1", "[e349bc1f]", "[b1cf264d8b4a5630]", "0x20")
+ self.bid32_to_binary64("2", "[e349bc1f]", "[b1cf264d8b4a562f]", "0x20")
+ self.bid32_to_binary64("3", "[e349bc1f]", "[b1cf264d8b4a562f]", "0x20")
+ self.bid32_to_binary64("4", "[e349bc1f]", "[b1cf264d8b4a5630]", "0x20")
+ self.bid32_to_binary64("0", "[e389bc1f]", "[b23855ec94d21355]", "0x20")
+ self.bid32_to_binary64("1", "[e389bc1f]", "[b23855ec94d21356]", "0x20")
+ self.bid32_to_binary64("2", "[e389bc1f]", "[b23855ec94d21355]", "0x20")
+ self.bid32_to_binary64("3", "[e389bc1f]", "[b23855ec94d21355]", "0x20")
+ self.bid32_to_binary64("4", "[e389bc1f]", "[b23855ec94d21355]", "0x20")
+ self.bid32_to_binary64("0", "[e5b4a326]", "[b5c2390ea64283d2]", "0x20")
+ self.bid32_to_binary64("1", "[e5b4a326]", "[b5c2390ea64283d2]", "0x20")
+ self.bid32_to_binary64("2", "[e5b4a326]", "[b5c2390ea64283d1]", "0x20")
+ self.bid32_to_binary64("3", "[e5b4a326]", "[b5c2390ea64283d1]", "0x20")
+ self.bid32_to_binary64("4", "[e5b4a326]", "[b5c2390ea64283d2]", "0x20")
+ self.bid32_to_binary64("0", "[e9402c61]", "[bbc3d5783e85fcf8]", "0x20")
+ self.bid32_to_binary64("1", "[e9402c61]", "[bbc3d5783e85fcf8]", "0x20")
+ self.bid32_to_binary64("2", "[e9402c61]", "[bbc3d5783e85fcf7]", "0x20")
+ self.bid32_to_binary64("3", "[e9402c61]", "[bbc3d5783e85fcf7]", "0x20")
+ self.bid32_to_binary64("4", "[e9402c61]", "[bbc3d5783e85fcf8]", "0x20")
+ self.bid32_to_binary64("0", "[e994afb0]", "[bc31f99e11ea0a24]", "0x20")
+ self.bid32_to_binary64("1", "[e994afb0]", "[bc31f99e11ea0a24]", "0x20")
+ self.bid32_to_binary64("2", "[e994afb0]", "[bc31f99e11ea0a23]", "0x20")
+ self.bid32_to_binary64("3", "[e994afb0]", "[bc31f99e11ea0a23]", "0x20")
+ self.bid32_to_binary64("4", "[e994afb0]", "[bc31f99e11ea0a24]", "0x20")
+ self.bid32_to_binary64("0", "[ebf87d22]", "[c023fcacd184c272]", "0x20")
+ self.bid32_to_binary64("1", "[ebf87d22]", "[c023fcacd184c272]", "0x20")
+ self.bid32_to_binary64("2", "[ebf87d22]", "[c023fcacd184c271]", "0x20")
+ self.bid32_to_binary64("3", "[ebf87d22]", "[c023fcacd184c271]", "0x20")
+ self.bid32_to_binary64("4", "[ebf87d22]", "[c023fcacd184c272]", "0x20")
+ self.bid32_to_binary64("0", "[ec3895e6]", "[c08f3fe075f6fd22]", "0x20")
+ self.bid32_to_binary64("1", "[ec3895e6]", "[c08f3fe075f6fd22]", "0x20")
+ self.bid32_to_binary64("2", "[ec3895e6]", "[c08f3fe075f6fd21]", "0x20")
+ self.bid32_to_binary64("3", "[ec3895e6]", "[c08f3fe075f6fd21]", "0x20")
+ self.bid32_to_binary64("4", "[ec3895e6]", "[c08f3fe075f6fd22]", "0x20")
+ self.bid32_to_binary64("0", "[ec789672]", "[c0f869fdc28f5c29]", "0x20")
+ self.bid32_to_binary64("1", "[ec789672]", "[c0f869fdc28f5c29]", "0x20")
+ self.bid32_to_binary64("2", "[ec789672]", "[c0f869fdc28f5c28]", "0x20")
+ self.bid32_to_binary64("3", "[ec789672]", "[c0f869fdc28f5c28]", "0x20")
+ self.bid32_to_binary64("4", "[ec789672]", "[c0f869fdc28f5c29]", "0x20")
+ self.bid32_to_binary64("0", "[ef1831eb]", "[c554a053134cb954]", "0x20")
+ self.bid32_to_binary64("1", "[ef1831eb]", "[c554a053134cb954]", "0x20")
+ self.bid32_to_binary64("2", "[ef1831eb]", "[c554a053134cb953]", "0x20")
+ self.bid32_to_binary64("3", "[ef1831eb]", "[c554a053134cb953]", "0x20")
+ self.bid32_to_binary64("4", "[ef1831eb]", "[c554a053134cb954]", "0x20")
+ self.bid32_to_binary64("0", "[ef5372a3]", "[c5bf392946d76a98]", "0x20")
+ self.bid32_to_binary64("1", "[ef5372a3]", "[c5bf392946d76a98]", "0x20")
+ self.bid32_to_binary64("2", "[ef5372a3]", "[c5bf392946d76a97]", "0x20")
+ self.bid32_to_binary64("3", "[ef5372a3]", "[c5bf392946d76a97]", "0x20")
+ self.bid32_to_binary64("4", "[ef5372a3]", "[c5bf392946d76a98]", "0x20")
+ self.bid32_to_binary64("0", "[ef8c3f94]", "[c62733bfae0801fd]", "0x20")
+ self.bid32_to_binary64("1", "[ef8c3f94]", "[c62733bfae0801fe]", "0x20")
+ self.bid32_to_binary64("2", "[ef8c3f94]", "[c62733bfae0801fd]", "0x20")
+ self.bid32_to_binary64("3", "[ef8c3f94]", "[c62733bfae0801fd]", "0x20")
+ self.bid32_to_binary64("4", "[ef8c3f94]", "[c62733bfae0801fd]", "0x20")
+ self.bid32_to_binary64("0", "[f2749d39]", "[caf0450e3ddd8f31]", "0x20")
+ self.bid32_to_binary64("1", "[f2749d39]", "[caf0450e3ddd8f31]", "0x20")
+ self.bid32_to_binary64("2", "[f2749d39]", "[caf0450e3ddd8f30]", "0x20")
+ self.bid32_to_binary64("3", "[f2749d39]", "[caf0450e3ddd8f30]", "0x20")
+ self.bid32_to_binary64("4", "[f2749d39]", "[caf0450e3ddd8f31]", "0x20")
+ self.bid32_to_binary64("0", "[f606b40a]", "[d0f29cf5a7177b40]", "0x20")
+ self.bid32_to_binary64("1", "[f606b40a]", "[d0f29cf5a7177b40]", "0x20")
+ self.bid32_to_binary64("2", "[f606b40a]", "[d0f29cf5a7177b3f]", "0x20")
+ self.bid32_to_binary64("3", "[f606b40a]", "[d0f29cf5a7177b3f]", "0x20")
+ self.bid32_to_binary64("4", "[f606b40a]", "[d0f29cf5a7177b40]", "0x20")
+ self.bid32_to_binary64("0", "[f7f8967f]", "[d412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("1", "[f7f8967f]", "[d412ba093e5c6115]", "0x20")
+ self.bid32_to_binary64("2", "[f7f8967f]", "[d412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("3", "[f7f8967f]", "[d412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("4", "[f7f8967f]", "[d412ba093e5c6114]", "0x20")
+ self.bid32_to_binary64("0", "[f8000000]", "[fff0000000000000]", "0x00")
+ self.bid32_to_binary64("1", "[f8000000]", "[fff0000000000000]", "0x00")
+ self.bid32_to_binary64("2", "[f8000000]", "[fff0000000000000]", "0x00")
+ self.bid32_to_binary64("3", "[f8000000]", "[fff0000000000000]", "0x00")
+ self.bid32_to_binary64("4", "[f8000000]", "[fff0000000000000]", "0x00")
+ }
+
+ private func bid32_to_binary64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDouble(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Double(arg0, rounding: rounding, status: &status)
+ self.assertBinaryFloatingPoint(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_binary80() {
+ self.bid32_to_binary80("0", "[00000001]", "[3eafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("0", "[00000001]", "[3EAFB32DF8E9F3546564]", "20")
+ self.bid32_to_binary80("0", "[00989680]", "[3EC7AC187A9FAB7EA236]", "20")
+ self.bid32_to_binary80("0", "[00e4129b]", "[3ec9af1b73614f0650ac]", "0x20")
+ self.bid32_to_binary80("0", "[03000001]", "[3ec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("0", "[03800001]", "[3ec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("0", "[050c0bbc]", "[3ee49d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("0", "[088ccd5f]", "[3efbc6f6c664e23becec]", "0x20")
+ self.bid32_to_binary80("0", "[0c8286b1]", "[3f13ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("0", "[10807f5e]", "[3f2c895a3da7c43d4654]", "0x20")
+ self.bid32_to_binary80("0", "[140246fb]", "[3f45bb5cd9d5191cd280]", "0x20")
+ self.bid32_to_binary80("0", "[1857cbb0]", "[3f65a82edd1434865215]", "0x20")
+ self.bid32_to_binary80("0", "[189ABA47]", "[3F66FFFFFF3AD8528848]", "20")
+ self.bid32_to_binary80("0", "[189ABA49]", "[3F67800009316A55B12B]", "20")
+ self.bid32_to_binary80("0", "[18EAE91C]", "[3F68FFFFFF3AD8528848]", "20")
+ self.bid32_to_binary80("0", "[18EAE923]", "[3F69800007FEEA90238B]", "20")
+ self.bid32_to_binary80("0", "[1910095E]", "[3F69C00001D121C90178]", "20")
+ self.bid32_to_binary80("0", "[191561D2]", "[3F69FFFFFA70D93C51C4]", "20")
+ self.bid32_to_binary80("0", "[192012BC]", "[3F6AC00001D121C90178]", "20")
+ self.bid32_to_binary80("0", "[1A0036BD]", "[3F6A800009316A55B12B]", "20")
+ self.bid32_to_binary80("0", "[1A6D79F8]", "[3F72FFFFFFADC83C9D64]", "20")
+ self.bid32_to_binary80("0", "[1A6D79FF]", "[3F7380000806198EC4DC]", "20")
+ self.bid32_to_binary80("0", "[1c1199d6]", "[3f7dc8f78d334d80b34a]", "0x20")
+ self.bid32_to_binary80("0", "[20156c3b]", "[3f98b63eac51571dc158]", "0x20")
+ self.bid32_to_binary80("0", "[24023509]", "[3fafdfd55f5573762396]", "0x20")
+ self.bid32_to_binary80("0", "[27ff6d74]", "[3fccf0b42ec84f951e44]", "0x20")
+ self.bid32_to_binary80("0", "[2ecd7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[3200000f]", "[3fffc000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[32800000]", "[00000000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[32800001]", "[3FFF8000000000000000]", "00")
+ self.bid32_to_binary80("0", "[32800001]", "[3fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[32800040]", "[40058000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[328003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[328003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[3281ffff]", "[400FFFFF800000000000]", "00")
+ self.bid32_to_binary80("0", "[3283ffff]", "[4010FFFFC00000000000]", "00")
+ self.bid32_to_binary80("0", "[3287ffff]", "[4011FFFFE00000000000]", "00")
+ self.bid32_to_binary80("0", "[328fffff]", "[4012FFFFF00000000000]", "00")
+ self.bid32_to_binary80("0", "[3297ffff]", "[4013BFFFF80000000000]", "00")
+ self.bid32_to_binary80("0", "[3319999A]", "[40178000020000000000]", "00")
+ self.bid32_to_binary80("0", "[33d1eb85]", "[401bffffffa000000000]", "0x00")
+ self.bid32_to_binary80("0", "[379b7cdf]", "[4034fffff8132e700000]", "0x00")
+ self.bid32_to_binary80("0", "[3800AFEC]", "[4033800000B1AF000000]", "00")
+ self.bid32_to_binary80("0", "[391C25C2]", "[403EFFFFFC4B83FD4000]", "00")
+ self.bid32_to_binary80("0", "[3b5c3bcc]", "[404dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("0", "[404F3A69]", "[406F8000003A82352E2F]", "20")
+ self.bid32_to_binary80("0", "[408FD87B]", "[406FFFFFF9FEA7F11CBD]", "20")
+ self.bid32_to_binary80("0", "[42B3DEFD]", "[407EFFBE778BA8E296D3]", "20")
+ self.bid32_to_binary80("0", "[42CDE26C]", "[407FC00001392328C9D2]", "20")
+ self.bid32_to_binary80("0", "[43175D87]", "[40819000022665B9E7B4]", "20")
+ self.bid32_to_binary80("0", "[434fc428]", "[4082f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("0", "[476737cd]", "[409decfa1245d6a4eca2]", "0x20")
+ self.bid32_to_binary80("0", "[4b24a835]", "[40b6fad159a093311dc5]", "0x20")
+ self.bid32_to_binary80("0", "[4e142f94]", "[40ca83b80547dcf45a10]", "0x20")
+ self.bid32_to_binary80("0", "[52aa1214]", "[40e8ffab862dcceeafa7]", "0x20")
+ self.bid32_to_binary80("0", "[56ac9d4e]", "[4103ca01d5bfa8f62a34]", "0x20")
+ self.bid32_to_binary80("0", "[5a4dd37a]", "[411bd2098824cea0c298]", "0x20")
+ self.bid32_to_binary80("0", "[6ae5a321]", "[3fe7bc13e231080a1125]", "0x20")
+ self.bid32_to_binary80("0", "[6bf860f5]", "[40029fc7db2b3461309c]", "0x20")
+ self.bid32_to_binary80("0", "[6CA00000]", "[40168000000000000000]", "00")
+ self.bid32_to_binary80("0", "[6CB89680]", "[00000000000000000000]", "00")
+ self.bid32_to_binary80("0", "[6DC9705F]", "[4033FFFFFF8687B00000]", "00")
+ self.bid32_to_binary80("0", "[6E2CBCCC]", "[403DFFFFFFEED6918000]", "00")
+ self.bid32_to_binary80("0", "[6fd12853]", "[40699616dfeb83c05434]", "0x20")
+ self.bid32_to_binary80("0", "[77f8967f]", "[414195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("0", "[77F8967F]", "[414195D049F2E308A39B]", "20")
+ self.bid32_to_binary80("0", "[77f89680]", "[00000000000000000000]", "00")
+ self.bid32_to_binary80("0", "[78000000]", "[7fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[7c000000]", "[7FFFC000000000000000]", "00")
+ self.bid32_to_binary80("0", "[7c0F423F]", "[7FFFFD08FC0000000000]", "00")
+ self.bid32_to_binary80("0", "[7c0F4240]", "[7FFFC000000000000000]", "00")
+ self.bid32_to_binary80("0", "[7e000000]", "[7FFFC000000000000000]", "01")
+ self.bid32_to_binary80("0", "[7e0F423F]", "[7FFFFD08FC0000000000]", "01")
+ self.bid32_to_binary80("0", "[7e0F4240]", "[7FFFC000000000000000]", "01")
+ self.bid32_to_binary80("0", "[80000001]", "[beafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("0", "[80e4129b]", "[bec9af1b73614f0650ac]", "0x20")
+ self.bid32_to_binary80("0", "[83000001]", "[bec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("0", "[83800001]", "[bec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("0", "[850c0bbc]", "[bee49d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("0", "[888ccd5f]", "[befbc6f6c664e23becec]", "0x20")
+ self.bid32_to_binary80("0", "[8c8286b1]", "[bf13ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("0", "[90807f5e]", "[bf2c895a3da7c43d4654]", "0x20")
+ self.bid32_to_binary80("0", "[940246fb]", "[bf45bb5cd9d5191cd280]", "0x20")
+ self.bid32_to_binary80("0", "[9857cbb0]", "[bf65a82edd1434865215]", "0x20")
+ self.bid32_to_binary80("0", "[9c1199d6]", "[bf7dc8f78d334d80b34a]", "0x20")
+ self.bid32_to_binary80("0", "[a0156c3b]", "[bf98b63eac51571dc158]", "0x20")
+ self.bid32_to_binary80("0", "[a4023509]", "[bfafdfd55f5573762396]", "0x20")
+ self.bid32_to_binary80("0", "[a7ff6d74]", "[bfccf0b42ec84f951e44]", "0x20")
+ self.bid32_to_binary80("0", "[aecd7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b200000f]", "[bfffc000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b2800001]", "[bfff8000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b2800040]", "[c0058000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b28003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b28003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b3d1eb85]", "[c01bffffffa000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b79b7cdf]", "[c034fffff8132e700000]", "0x00")
+ self.bid32_to_binary80("0", "[bb5c3bcc]", "[c04dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("0", "[c34fc428]", "[c082f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("0", "[c76737cd]", "[c09decfa1245d6a4eca2]", "0x20")
+ self.bid32_to_binary80("0", "[cb24a835]", "[c0b6fad159a093311dc5]", "0x20")
+ self.bid32_to_binary80("0", "[ce142f94]", "[c0ca83b80547dcf45a10]", "0x20")
+ self.bid32_to_binary80("0", "[d2aa1214]", "[c0e8ffab862dcceeafa7]", "0x20")
+ self.bid32_to_binary80("0", "[d6ac9d4e]", "[c103ca01d5bfa8f62a34]", "0x20")
+ self.bid32_to_binary80("0", "[da4dd37a]", "[c11bd2098824cea0c298]", "0x20")
+ self.bid32_to_binary80("0", "[eae5a321]", "[bfe7bc13e231080a1125]", "0x20")
+ self.bid32_to_binary80("0", "[ebf860f5]", "[c0029fc7db2b3461309c]", "0x20")
+ self.bid32_to_binary80("0", "[efd12853]", "[c0699616dfeb83c05434]", "0x20")
+ self.bid32_to_binary80("0", "[f7f8967f]", "[c14195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("0", "[f8000000]", "[ffff8000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[00000001]", "[3eafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("1", "[00e4129b]", "[3ec9af1b73614f0650ac]", "0x20")
+ self.bid32_to_binary80("1", "[03000001]", "[3ec3aae103b5fcd2a881]", "0x20")
+ self.bid32_to_binary80("1", "[03800001]", "[3ec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("1", "[050c0bbc]", "[3ee49d0abd02e3b42e1e]", "0x20")
+ self.bid32_to_binary80("1", "[088ccd5f]", "[3efbc6f6c664e23beceb]", "0x20")
+ self.bid32_to_binary80("1", "[0c8286b1]", "[3f13ea0166331944e65f]", "0x20")
+ self.bid32_to_binary80("1", "[10807f5e]", "[3f2c895a3da7c43d4653]", "0x20")
+ self.bid32_to_binary80("1", "[140246fb]", "[3f45bb5cd9d5191cd280]", "0x20")
+ self.bid32_to_binary80("1", "[1857cbb0]", "[3f65a82edd1434865214]", "0x20")
+ self.bid32_to_binary80("1", "[1c1199d6]", "[3f7dc8f78d334d80b34a]", "0x20")
+ self.bid32_to_binary80("1", "[20156c3b]", "[3f98b63eac51571dc157]", "0x20")
+ self.bid32_to_binary80("1", "[24023509]", "[3fafdfd55f5573762396]", "0x20")
+ self.bid32_to_binary80("1", "[27ff6d74]", "[3fccf0b42ec84f951e43]", "0x20")
+ self.bid32_to_binary80("1", "[2ecd7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[3200000f]", "[3fffc000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[32800000]", "[00000000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[32800001]", "[3fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[32800040]", "[40058000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[328003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[328003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[33d1eb85]", "[401bffffffa000000000]", "0x00")
+ self.bid32_to_binary80("1", "[379b7cdf]", "[4034fffff8132e700000]", "0x00")
+ self.bid32_to_binary80("1", "[3b5c3bcc]", "[404dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("1", "[434fc428]", "[4082f5cc76f1b27895a1]", "0x20")
+ self.bid32_to_binary80("1", "[476737cd]", "[409decfa1245d6a4eca1]", "0x20")
+ self.bid32_to_binary80("1", "[4b24a835]", "[40b6fad159a093311dc5]", "0x20")
+ self.bid32_to_binary80("1", "[4e142f94]", "[40ca83b80547dcf45a10]", "0x20")
+ self.bid32_to_binary80("1", "[52aa1214]", "[40e8ffab862dcceeafa7]", "0x20")
+ self.bid32_to_binary80("1", "[56ac9d4e]", "[4103ca01d5bfa8f62a34]", "0x20")
+ self.bid32_to_binary80("1", "[5a4dd37a]", "[411bd2098824cea0c297]", "0x20")
+ self.bid32_to_binary80("1", "[6ae5a321]", "[3fe7bc13e231080a1125]", "0x20")
+ self.bid32_to_binary80("1", "[6bf860f5]", "[40029fc7db2b3461309c]", "0x20")
+ self.bid32_to_binary80("1", "[6fd12853]", "[40699616dfeb83c05433]", "0x20")
+ self.bid32_to_binary80("1", "[77f8967f]", "[414195d049f2e308a39a]", "0x20")
+ self.bid32_to_binary80("1", "[78000000]", "[7fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[80000001]", "[beafb32df8e9f3546565]", "0x20")
+ self.bid32_to_binary80("1", "[80e4129b]", "[bec9af1b73614f0650ad]", "0x20")
+ self.bid32_to_binary80("1", "[83000001]", "[bec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("1", "[83800001]", "[bec6d59944a37c0752a3]", "0x20")
+ self.bid32_to_binary80("1", "[850c0bbc]", "[bee49d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("1", "[888ccd5f]", "[befbc6f6c664e23becec]", "0x20")
+ self.bid32_to_binary80("1", "[8c8286b1]", "[bf13ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("1", "[90807f5e]", "[bf2c895a3da7c43d4654]", "0x20")
+ self.bid32_to_binary80("1", "[940246fb]", "[bf45bb5cd9d5191cd281]", "0x20")
+ self.bid32_to_binary80("1", "[9857cbb0]", "[bf65a82edd1434865215]", "0x20")
+ self.bid32_to_binary80("1", "[9c1199d6]", "[bf7dc8f78d334d80b34b]", "0x20")
+ self.bid32_to_binary80("1", "[a0156c3b]", "[bf98b63eac51571dc158]", "0x20")
+ self.bid32_to_binary80("1", "[a4023509]", "[bfafdfd55f5573762397]", "0x20")
+ self.bid32_to_binary80("1", "[a7ff6d74]", "[bfccf0b42ec84f951e44]", "0x20")
+ self.bid32_to_binary80("1", "[aecd7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b200000f]", "[bfffc000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b2800001]", "[bfff8000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b2800040]", "[c0058000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b28003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b28003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b3d1eb85]", "[c01bffffffa000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b79b7cdf]", "[c034fffff8132e700000]", "0x00")
+ self.bid32_to_binary80("1", "[bb5c3bcc]", "[c04dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("1", "[c34fc428]", "[c082f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("1", "[c76737cd]", "[c09decfa1245d6a4eca2]", "0x20")
+ self.bid32_to_binary80("1", "[cb24a835]", "[c0b6fad159a093311dc6]", "0x20")
+ self.bid32_to_binary80("1", "[ce142f94]", "[c0ca83b80547dcf45a11]", "0x20")
+ self.bid32_to_binary80("1", "[d2aa1214]", "[c0e8ffab862dcceeafa8]", "0x20")
+ self.bid32_to_binary80("1", "[d6ac9d4e]", "[c103ca01d5bfa8f62a35]", "0x20")
+ self.bid32_to_binary80("1", "[da4dd37a]", "[c11bd2098824cea0c298]", "0x20")
+ self.bid32_to_binary80("1", "[eae5a321]", "[bfe7bc13e231080a1126]", "0x20")
+ self.bid32_to_binary80("1", "[ebf860f5]", "[c0029fc7db2b3461309d]", "0x20")
+ self.bid32_to_binary80("1", "[efd12853]", "[c0699616dfeb83c05434]", "0x20")
+ self.bid32_to_binary80("1", "[f7f8967f]", "[c14195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("1", "[f8000000]", "[ffff8000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[00000001]", "[3eafb32df8e9f3546565]", "0x20")
+ self.bid32_to_binary80("2", "[00e4129b]", "[3ec9af1b73614f0650ad]", "0x20")
+ self.bid32_to_binary80("2", "[03000001]", "[3ec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("2", "[03800001]", "[3ec6d59944a37c0752a3]", "0x20")
+ self.bid32_to_binary80("2", "[050c0bbc]", "[3ee49d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("2", "[088ccd5f]", "[3efbc6f6c664e23becec]", "0x20")
+ self.bid32_to_binary80("2", "[0c8286b1]", "[3f13ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("2", "[10807f5e]", "[3f2c895a3da7c43d4654]", "0x20")
+ self.bid32_to_binary80("2", "[140246fb]", "[3f45bb5cd9d5191cd281]", "0x20")
+ self.bid32_to_binary80("2", "[1857cbb0]", "[3f65a82edd1434865215]", "0x20")
+ self.bid32_to_binary80("2", "[1c1199d6]", "[3f7dc8f78d334d80b34b]", "0x20")
+ self.bid32_to_binary80("2", "[20156c3b]", "[3f98b63eac51571dc158]", "0x20")
+ self.bid32_to_binary80("2", "[24023509]", "[3fafdfd55f5573762397]", "0x20")
+ self.bid32_to_binary80("2", "[27ff6d74]", "[3fccf0b42ec84f951e44]", "0x20")
+ self.bid32_to_binary80("2", "[2ecd7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[3200000f]", "[3fffc000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[32800000]", "[00000000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[32800001]", "[3fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[32800040]", "[40058000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[328003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[328003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[33d1eb85]", "[401bffffffa000000000]", "0x00")
+ self.bid32_to_binary80("2", "[379b7cdf]", "[4034fffff8132e700000]", "0x00")
+ self.bid32_to_binary80("2", "[3b5c3bcc]", "[404dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("2", "[434fc428]", "[4082f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("2", "[476737cd]", "[409decfa1245d6a4eca2]", "0x20")
+ self.bid32_to_binary80("2", "[4b24a835]", "[40b6fad159a093311dc6]", "0x20")
+ self.bid32_to_binary80("2", "[4e142f94]", "[40ca83b80547dcf45a11]", "0x20")
+ self.bid32_to_binary80("2", "[52aa1214]", "[40e8ffab862dcceeafa8]", "0x20")
+ self.bid32_to_binary80("2", "[56ac9d4e]", "[4103ca01d5bfa8f62a35]", "0x20")
+ self.bid32_to_binary80("2", "[5a4dd37a]", "[411bd2098824cea0c298]", "0x20")
+ self.bid32_to_binary80("2", "[6ae5a321]", "[3fe7bc13e231080a1126]", "0x20")
+ self.bid32_to_binary80("2", "[6bf860f5]", "[40029fc7db2b3461309d]", "0x20")
+ self.bid32_to_binary80("2", "[6fd12853]", "[40699616dfeb83c05434]", "0x20")
+ self.bid32_to_binary80("2", "[77f8967f]", "[414195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("2", "[78000000]", "[7fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[80000001]", "[beafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("2", "[80e4129b]", "[bec9af1b73614f0650ac]", "0x20")
+ self.bid32_to_binary80("2", "[83000001]", "[bec3aae103b5fcd2a881]", "0x20")
+ self.bid32_to_binary80("2", "[83800001]", "[bec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("2", "[850c0bbc]", "[bee49d0abd02e3b42e1e]", "0x20")
+ self.bid32_to_binary80("2", "[888ccd5f]", "[befbc6f6c664e23beceb]", "0x20")
+ self.bid32_to_binary80("2", "[8c8286b1]", "[bf13ea0166331944e65f]", "0x20")
+ self.bid32_to_binary80("2", "[90807f5e]", "[bf2c895a3da7c43d4653]", "0x20")
+ self.bid32_to_binary80("2", "[940246fb]", "[bf45bb5cd9d5191cd280]", "0x20")
+ self.bid32_to_binary80("2", "[9857cbb0]", "[bf65a82edd1434865214]", "0x20")
+ self.bid32_to_binary80("2", "[9c1199d6]", "[bf7dc8f78d334d80b34a]", "0x20")
+ self.bid32_to_binary80("2", "[a0156c3b]", "[bf98b63eac51571dc157]", "0x20")
+ self.bid32_to_binary80("2", "[a4023509]", "[bfafdfd55f5573762396]", "0x20")
+ self.bid32_to_binary80("2", "[a7ff6d74]", "[bfccf0b42ec84f951e43]", "0x20")
+ self.bid32_to_binary80("2", "[aecd7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b200000f]", "[bfffc000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b2800001]", "[bfff8000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b2800040]", "[c0058000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b28003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b28003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b3d1eb85]", "[c01bffffffa000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b79b7cdf]", "[c034fffff8132e700000]", "0x00")
+ self.bid32_to_binary80("2", "[bb5c3bcc]", "[c04dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("2", "[c34fc428]", "[c082f5cc76f1b27895a1]", "0x20")
+ self.bid32_to_binary80("2", "[c76737cd]", "[c09decfa1245d6a4eca1]", "0x20")
+ self.bid32_to_binary80("2", "[cb24a835]", "[c0b6fad159a093311dc5]", "0x20")
+ self.bid32_to_binary80("2", "[ce142f94]", "[c0ca83b80547dcf45a10]", "0x20")
+ self.bid32_to_binary80("2", "[d2aa1214]", "[c0e8ffab862dcceeafa7]", "0x20")
+ self.bid32_to_binary80("2", "[d6ac9d4e]", "[c103ca01d5bfa8f62a34]", "0x20")
+ self.bid32_to_binary80("2", "[da4dd37a]", "[c11bd2098824cea0c297]", "0x20")
+ self.bid32_to_binary80("2", "[eae5a321]", "[bfe7bc13e231080a1125]", "0x20")
+ self.bid32_to_binary80("2", "[ebf860f5]", "[c0029fc7db2b3461309c]", "0x20")
+ self.bid32_to_binary80("2", "[efd12853]", "[c0699616dfeb83c05433]", "0x20")
+ self.bid32_to_binary80("2", "[f7f8967f]", "[c14195d049f2e308a39a]", "0x20")
+ self.bid32_to_binary80("2", "[f8000000]", "[ffff8000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[00000001]", "[3eafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("3", "[00e4129b]", "[3ec9af1b73614f0650ac]", "0x20")
+ self.bid32_to_binary80("3", "[03000001]", "[3ec3aae103b5fcd2a881]", "0x20")
+ self.bid32_to_binary80("3", "[03800001]", "[3ec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("3", "[050c0bbc]", "[3ee49d0abd02e3b42e1e]", "0x20")
+ self.bid32_to_binary80("3", "[088ccd5f]", "[3efbc6f6c664e23beceb]", "0x20")
+ self.bid32_to_binary80("3", "[0c8286b1]", "[3f13ea0166331944e65f]", "0x20")
+ self.bid32_to_binary80("3", "[10807f5e]", "[3f2c895a3da7c43d4653]", "0x20")
+ self.bid32_to_binary80("3", "[140246fb]", "[3f45bb5cd9d5191cd280]", "0x20")
+ self.bid32_to_binary80("3", "[1857cbb0]", "[3f65a82edd1434865214]", "0x20")
+ self.bid32_to_binary80("3", "[1c1199d6]", "[3f7dc8f78d334d80b34a]", "0x20")
+ self.bid32_to_binary80("3", "[20156c3b]", "[3f98b63eac51571dc157]", "0x20")
+ self.bid32_to_binary80("3", "[24023509]", "[3fafdfd55f5573762396]", "0x20")
+ self.bid32_to_binary80("3", "[27ff6d74]", "[3fccf0b42ec84f951e43]", "0x20")
+ self.bid32_to_binary80("3", "[2ecd7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[3200000f]", "[3fffc000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[32800000]", "[00000000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[32800001]", "[3fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[32800040]", "[40058000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[328003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[328003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[33d1eb85]", "[401bffffffa000000000]", "0x00")
+ self.bid32_to_binary80("3", "[379b7cdf]", "[4034fffff8132e700000]", "0x00")
+ self.bid32_to_binary80("3", "[3b5c3bcc]", "[404dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("3", "[434fc428]", "[4082f5cc76f1b27895a1]", "0x20")
+ self.bid32_to_binary80("3", "[476737cd]", "[409decfa1245d6a4eca1]", "0x20")
+ self.bid32_to_binary80("3", "[4b24a835]", "[40b6fad159a093311dc5]", "0x20")
+ self.bid32_to_binary80("3", "[4e142f94]", "[40ca83b80547dcf45a10]", "0x20")
+ self.bid32_to_binary80("3", "[52aa1214]", "[40e8ffab862dcceeafa7]", "0x20")
+ self.bid32_to_binary80("3", "[56ac9d4e]", "[4103ca01d5bfa8f62a34]", "0x20")
+ self.bid32_to_binary80("3", "[5a4dd37a]", "[411bd2098824cea0c297]", "0x20")
+ self.bid32_to_binary80("3", "[6ae5a321]", "[3fe7bc13e231080a1125]", "0x20")
+ self.bid32_to_binary80("3", "[6bf860f5]", "[40029fc7db2b3461309c]", "0x20")
+ self.bid32_to_binary80("3", "[6fd12853]", "[40699616dfeb83c05433]", "0x20")
+ self.bid32_to_binary80("3", "[77f8967f]", "[414195d049f2e308a39a]", "0x20")
+ self.bid32_to_binary80("3", "[78000000]", "[7fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[80000001]", "[beafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("3", "[80e4129b]", "[bec9af1b73614f0650ac]", "0x20")
+ self.bid32_to_binary80("3", "[83000001]", "[bec3aae103b5fcd2a881]", "0x20")
+ self.bid32_to_binary80("3", "[83800001]", "[bec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("3", "[850c0bbc]", "[bee49d0abd02e3b42e1e]", "0x20")
+ self.bid32_to_binary80("3", "[888ccd5f]", "[befbc6f6c664e23beceb]", "0x20")
+ self.bid32_to_binary80("3", "[8c8286b1]", "[bf13ea0166331944e65f]", "0x20")
+ self.bid32_to_binary80("3", "[90807f5e]", "[bf2c895a3da7c43d4653]", "0x20")
+ self.bid32_to_binary80("3", "[940246fb]", "[bf45bb5cd9d5191cd280]", "0x20")
+ self.bid32_to_binary80("3", "[9857cbb0]", "[bf65a82edd1434865214]", "0x20")
+ self.bid32_to_binary80("3", "[9c1199d6]", "[bf7dc8f78d334d80b34a]", "0x20")
+ self.bid32_to_binary80("3", "[a0156c3b]", "[bf98b63eac51571dc157]", "0x20")
+ self.bid32_to_binary80("3", "[a4023509]", "[bfafdfd55f5573762396]", "0x20")
+ self.bid32_to_binary80("3", "[a7ff6d74]", "[bfccf0b42ec84f951e43]", "0x20")
+ self.bid32_to_binary80("3", "[aecd7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b200000f]", "[bfffc000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b2800001]", "[bfff8000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b2800040]", "[c0058000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b28003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b28003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b3d1eb85]", "[c01bffffffa000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b79b7cdf]", "[c034fffff8132e700000]", "0x00")
+ self.bid32_to_binary80("3", "[bb5c3bcc]", "[c04dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("3", "[c34fc428]", "[c082f5cc76f1b27895a1]", "0x20")
+ self.bid32_to_binary80("3", "[c76737cd]", "[c09decfa1245d6a4eca1]", "0x20")
+ self.bid32_to_binary80("3", "[cb24a835]", "[c0b6fad159a093311dc5]", "0x20")
+ self.bid32_to_binary80("3", "[ce142f94]", "[c0ca83b80547dcf45a10]", "0x20")
+ self.bid32_to_binary80("3", "[d2aa1214]", "[c0e8ffab862dcceeafa7]", "0x20")
+ self.bid32_to_binary80("3", "[d6ac9d4e]", "[c103ca01d5bfa8f62a34]", "0x20")
+ self.bid32_to_binary80("3", "[da4dd37a]", "[c11bd2098824cea0c297]", "0x20")
+ self.bid32_to_binary80("3", "[eae5a321]", "[bfe7bc13e231080a1125]", "0x20")
+ self.bid32_to_binary80("3", "[ebf860f5]", "[c0029fc7db2b3461309c]", "0x20")
+ self.bid32_to_binary80("3", "[efd12853]", "[c0699616dfeb83c05433]", "0x20")
+ self.bid32_to_binary80("3", "[f7f8967f]", "[c14195d049f2e308a39a]", "0x20")
+ self.bid32_to_binary80("3", "[f8000000]", "[ffff8000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[00000001]", "[3eafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("4", "[00e4129b]", "[3ec9af1b73614f0650ac]", "0x20")
+ self.bid32_to_binary80("4", "[03000001]", "[3ec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("4", "[03800001]", "[3ec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("4", "[050c0bbc]", "[3ee49d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("4", "[088ccd5f]", "[3efbc6f6c664e23becec]", "0x20")
+ self.bid32_to_binary80("4", "[0c8286b1]", "[3f13ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("4", "[10807f5e]", "[3f2c895a3da7c43d4654]", "0x20")
+ self.bid32_to_binary80("4", "[140246fb]", "[3f45bb5cd9d5191cd280]", "0x20")
+ self.bid32_to_binary80("4", "[1857cbb0]", "[3f65a82edd1434865215]", "0x20")
+ self.bid32_to_binary80("4", "[1c1199d6]", "[3f7dc8f78d334d80b34a]", "0x20")
+ self.bid32_to_binary80("4", "[20156c3b]", "[3f98b63eac51571dc158]", "0x20")
+ self.bid32_to_binary80("4", "[24023509]", "[3fafdfd55f5573762396]", "0x20")
+ self.bid32_to_binary80("4", "[27ff6d74]", "[3fccf0b42ec84f951e44]", "0x20")
+ self.bid32_to_binary80("4", "[2ecd7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[3200000f]", "[3fffc000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[32800000]", "[00000000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[32800001]", "[3fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[32800040]", "[40058000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[328003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[328003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[33d1eb85]", "[401bffffffa000000000]", "0x00")
+ self.bid32_to_binary80("4", "[379b7cdf]", "[4034fffff8132e700000]", "0x00")
+ self.bid32_to_binary80("4", "[3b5c3bcc]", "[404dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("4", "[434fc428]", "[4082f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("4", "[476737cd]", "[409decfa1245d6a4eca2]", "0x20")
+ self.bid32_to_binary80("4", "[4b24a835]", "[40b6fad159a093311dc5]", "0x20")
+ self.bid32_to_binary80("4", "[4e142f94]", "[40ca83b80547dcf45a10]", "0x20")
+ self.bid32_to_binary80("4", "[52aa1214]", "[40e8ffab862dcceeafa7]", "0x20")
+ self.bid32_to_binary80("4", "[56ac9d4e]", "[4103ca01d5bfa8f62a34]", "0x20")
+ self.bid32_to_binary80("4", "[5a4dd37a]", "[411bd2098824cea0c298]", "0x20")
+ self.bid32_to_binary80("4", "[6ae5a321]", "[3fe7bc13e231080a1125]", "0x20")
+ self.bid32_to_binary80("4", "[6bf860f5]", "[40029fc7db2b3461309c]", "0x20")
+ self.bid32_to_binary80("4", "[6fd12853]", "[40699616dfeb83c05434]", "0x20")
+ self.bid32_to_binary80("4", "[77f8967f]", "[414195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("4", "[78000000]", "[7fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[80000001]", "[beafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("4", "[80e4129b]", "[bec9af1b73614f0650ac]", "0x20")
+ self.bid32_to_binary80("4", "[83000001]", "[bec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("4", "[83800001]", "[bec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("4", "[850c0bbc]", "[bee49d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("4", "[888ccd5f]", "[befbc6f6c664e23becec]", "0x20")
+ self.bid32_to_binary80("4", "[8c8286b1]", "[bf13ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("4", "[90807f5e]", "[bf2c895a3da7c43d4654]", "0x20")
+ self.bid32_to_binary80("4", "[940246fb]", "[bf45bb5cd9d5191cd280]", "0x20")
+ self.bid32_to_binary80("4", "[9857cbb0]", "[bf65a82edd1434865215]", "0x20")
+ self.bid32_to_binary80("4", "[9c1199d6]", "[bf7dc8f78d334d80b34a]", "0x20")
+ self.bid32_to_binary80("4", "[a0156c3b]", "[bf98b63eac51571dc158]", "0x20")
+ self.bid32_to_binary80("4", "[a4023509]", "[bfafdfd55f5573762396]", "0x20")
+ self.bid32_to_binary80("4", "[a7ff6d74]", "[bfccf0b42ec84f951e44]", "0x20")
+ self.bid32_to_binary80("4", "[aecd7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b200000f]", "[bfffc000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b2800001]", "[bfff8000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b2800040]", "[c0058000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b28003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b28003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b3d1eb85]", "[c01bffffffa000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b79b7cdf]", "[c034fffff8132e700000]", "0x00")
+ self.bid32_to_binary80("4", "[bb5c3bcc]", "[c04dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("4", "[c34fc428]", "[c082f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("4", "[c76737cd]", "[c09decfa1245d6a4eca2]", "0x20")
+ self.bid32_to_binary80("4", "[cb24a835]", "[c0b6fad159a093311dc5]", "0x20")
+ self.bid32_to_binary80("4", "[ce142f94]", "[c0ca83b80547dcf45a10]", "0x20")
+ self.bid32_to_binary80("4", "[d2aa1214]", "[c0e8ffab862dcceeafa7]", "0x20")
+ self.bid32_to_binary80("4", "[d6ac9d4e]", "[c103ca01d5bfa8f62a34]", "0x20")
+ self.bid32_to_binary80("4", "[da4dd37a]", "[c11bd2098824cea0c298]", "0x20")
+ self.bid32_to_binary80("4", "[eae5a321]", "[bfe7bc13e231080a1125]", "0x20")
+ self.bid32_to_binary80("4", "[ebf860f5]", "[c0029fc7db2b3461309c]", "0x20")
+ self.bid32_to_binary80("4", "[efd12853]", "[c0699616dfeb83c05434]", "0x20")
+ self.bid32_to_binary80("4", "[f7f8967f]", "[c14195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("4", "[f8000000]", "[ffff8000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[00000001]", "[3eafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("1", "[00000001]", "[3eafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("2", "[00000001]", "[3eafb32df8e9f3546565]", "0x20")
+ self.bid32_to_binary80("3", "[00000001]", "[3eafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("4", "[00000001]", "[3eafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("0", "[0000002a]", "[3eb4eb2c56b30f5ec514]", "0x20")
+ self.bid32_to_binary80("1", "[0000002a]", "[3eb4eb2c56b30f5ec513]", "0x20")
+ self.bid32_to_binary80("2", "[0000002a]", "[3eb4eb2c56b30f5ec514]", "0x20")
+ self.bid32_to_binary80("3", "[0000002a]", "[3eb4eb2c56b30f5ec513]", "0x20")
+ self.bid32_to_binary80("4", "[0000002a]", "[3eb4eb2c56b30f5ec514]", "0x20")
+ self.bid32_to_binary80("0", "[00002448]", "[3ebccb26df7740226ff5]", "0x20")
+ self.bid32_to_binary80("1", "[00002448]", "[3ebccb26df7740226ff4]", "0x20")
+ self.bid32_to_binary80("2", "[00002448]", "[3ebccb26df7740226ff5]", "0x20")
+ self.bid32_to_binary80("3", "[00002448]", "[3ebccb26df7740226ff4]", "0x20")
+ self.bid32_to_binary80("4", "[00002448]", "[3ebccb26df7740226ff5]", "0x20")
+ self.bid32_to_binary80("0", "[000c94f6]", "[3ec38ce6a6d0bd9715e7]", "0x20")
+ self.bid32_to_binary80("1", "[000c94f6]", "[3ec38ce6a6d0bd9715e6]", "0x20")
+ self.bid32_to_binary80("2", "[000c94f6]", "[3ec38ce6a6d0bd9715e7]", "0x20")
+ self.bid32_to_binary80("3", "[000c94f6]", "[3ec38ce6a6d0bd9715e6]", "0x20")
+ self.bid32_to_binary80("4", "[000c94f6]", "[3ec38ce6a6d0bd9715e7]", "0x20")
+ self.bid32_to_binary80("0", "[000f423f]", "[3ec3aae0f8831d44094d]", "0x20")
+ self.bid32_to_binary80("1", "[000f423f]", "[3ec3aae0f8831d44094c]", "0x20")
+ self.bid32_to_binary80("2", "[000f423f]", "[3ec3aae0f8831d44094d]", "0x20")
+ self.bid32_to_binary80("3", "[000f423f]", "[3ec3aae0f8831d44094c]", "0x20")
+ self.bid32_to_binary80("4", "[000f423f]", "[3ec3aae0f8831d44094d]", "0x20")
+ self.bid32_to_binary80("0", "[00e6fc08]", "[3ec9b433cc13309029b3]", "0x20")
+ self.bid32_to_binary80("1", "[00e6fc08]", "[3ec9b433cc13309029b2]", "0x20")
+ self.bid32_to_binary80("2", "[00e6fc08]", "[3ec9b433cc13309029b3]", "0x20")
+ self.bid32_to_binary80("3", "[00e6fc08]", "[3ec9b433cc13309029b2]", "0x20")
+ self.bid32_to_binary80("4", "[00e6fc08]", "[3ec9b433cc13309029b3]", "0x20")
+ self.bid32_to_binary80("0", "[01f57b63]", "[3ed0a09a01d2e4316a7f]", "0x20")
+ self.bid32_to_binary80("1", "[01f57b63]", "[3ed0a09a01d2e4316a7e]", "0x20")
+ self.bid32_to_binary80("2", "[01f57b63]", "[3ed0a09a01d2e4316a7f]", "0x20")
+ self.bid32_to_binary80("3", "[01f57b63]", "[3ed0a09a01d2e4316a7e]", "0x20")
+ self.bid32_to_binary80("4", "[01f57b63]", "[3ed0a09a01d2e4316a7f]", "0x20")
+ self.bid32_to_binary80("0", "[02bd6196]", "[3ed6831c040ec465338e]", "0x20")
+ self.bid32_to_binary80("1", "[02bd6196]", "[3ed6831c040ec465338d]", "0x20")
+ self.bid32_to_binary80("2", "[02bd6196]", "[3ed6831c040ec465338e]", "0x20")
+ self.bid32_to_binary80("3", "[02bd6196]", "[3ed6831c040ec465338d]", "0x20")
+ self.bid32_to_binary80("4", "[02bd6196]", "[3ed6831c040ec465338e]", "0x20")
+ self.bid32_to_binary80("0", "[03000001]", "[3ec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("1", "[03000001]", "[3ec3aae103b5fcd2a881]", "0x20")
+ self.bid32_to_binary80("2", "[03000001]", "[3ec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("3", "[03000001]", "[3ec3aae103b5fcd2a881]", "0x20")
+ self.bid32_to_binary80("4", "[03000001]", "[3ec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("0", "[03800001]", "[3ec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("1", "[03800001]", "[3ec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("2", "[03800001]", "[3ec6d59944a37c0752a3]", "0x20")
+ self.bid32_to_binary80("3", "[03800001]", "[3ec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("4", "[03800001]", "[3ec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("0", "[0395073f]", "[3edb8c5cf3180c49cc03]", "0x20")
+ self.bid32_to_binary80("1", "[0395073f]", "[3edb8c5cf3180c49cc02]", "0x20")
+ self.bid32_to_binary80("2", "[0395073f]", "[3edb8c5cf3180c49cc03]", "0x20")
+ self.bid32_to_binary80("3", "[0395073f]", "[3edb8c5cf3180c49cc02]", "0x20")
+ self.bid32_to_binary80("4", "[0395073f]", "[3edb8c5cf3180c49cc03]", "0x20")
+ self.bid32_to_binary80("0", "[050302ef]", "[3ee29d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("1", "[050302ef]", "[3ee29d0abd02e3b42e1e]", "0x20")
+ self.bid32_to_binary80("2", "[050302ef]", "[3ee29d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("3", "[050302ef]", "[3ee29d0abd02e3b42e1e]", "0x20")
+ self.bid32_to_binary80("4", "[050302ef]", "[3ee29d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("0", "[0586b551]", "[3ee6daa3c3cc53047868]", "0x20")
+ self.bid32_to_binary80("1", "[0586b551]", "[3ee6daa3c3cc53047868]", "0x20")
+ self.bid32_to_binary80("2", "[0586b551]", "[3ee6daa3c3cc53047869]", "0x20")
+ self.bid32_to_binary80("3", "[0586b551]", "[3ee6daa3c3cc53047868]", "0x20")
+ self.bid32_to_binary80("4", "[0586b551]", "[3ee6daa3c3cc53047868]", "0x20")
+ self.bid32_to_binary80("0", "[06918b6d]", "[3eeedf5e79713b1833a4]", "0x20")
+ self.bid32_to_binary80("1", "[06918b6d]", "[3eeedf5e79713b1833a4]", "0x20")
+ self.bid32_to_binary80("2", "[06918b6d]", "[3eeedf5e79713b1833a5]", "0x20")
+ self.bid32_to_binary80("3", "[06918b6d]", "[3eeedf5e79713b1833a4]", "0x20")
+ self.bid32_to_binary80("4", "[06918b6d]", "[3eeedf5e79713b1833a4]", "0x20")
+ self.bid32_to_binary80("0", "[0782301b]", "[3ef2ae188de76300b570]", "0x20")
+ self.bid32_to_binary80("1", "[0782301b]", "[3ef2ae188de76300b56f]", "0x20")
+ self.bid32_to_binary80("2", "[0782301b]", "[3ef2ae188de76300b570]", "0x20")
+ self.bid32_to_binary80("3", "[0782301b]", "[3ef2ae188de76300b56f]", "0x20")
+ self.bid32_to_binary80("4", "[0782301b]", "[3ef2ae188de76300b570]", "0x20")
+ self.bid32_to_binary80("0", "[08846036]", "[3efa88032edcc5588dbf]", "0x20")
+ self.bid32_to_binary80("1", "[08846036]", "[3efa88032edcc5588dbf]", "0x20")
+ self.bid32_to_binary80("2", "[08846036]", "[3efa88032edcc5588dc0]", "0x20")
+ self.bid32_to_binary80("3", "[08846036]", "[3efa88032edcc5588dbf]", "0x20")
+ self.bid32_to_binary80("4", "[08846036]", "[3efa88032edcc5588dbf]", "0x20")
+ self.bid32_to_binary80("0", "[09835834]", "[3f00a26efaba8e0155a3]", "0x20")
+ self.bid32_to_binary80("1", "[09835834]", "[3f00a26efaba8e0155a2]", "0x20")
+ self.bid32_to_binary80("2", "[09835834]", "[3f00a26efaba8e0155a3]", "0x20")
+ self.bid32_to_binary80("3", "[09835834]", "[3f00a26efaba8e0155a2]", "0x20")
+ self.bid32_to_binary80("4", "[09835834]", "[3f00a26efaba8e0155a3]", "0x20")
+ self.bid32_to_binary80("0", "[0a6bf47e]", "[3f08ccce3a6a6ce1d6a4]", "0x20")
+ self.bid32_to_binary80("1", "[0a6bf47e]", "[3f08ccce3a6a6ce1d6a3]", "0x20")
+ self.bid32_to_binary80("2", "[0a6bf47e]", "[3f08ccce3a6a6ce1d6a4]", "0x20")
+ self.bid32_to_binary80("3", "[0a6bf47e]", "[3f08ccce3a6a6ce1d6a3]", "0x20")
+ self.bid32_to_binary80("4", "[0a6bf47e]", "[3f08ccce3a6a6ce1d6a4]", "0x20")
+ self.bid32_to_binary80("0", "[0b186ea4]", "[3f0d90d8fb12d906b0d8]", "0x20")
+ self.bid32_to_binary80("1", "[0b186ea4]", "[3f0d90d8fb12d906b0d8]", "0x20")
+ self.bid32_to_binary80("2", "[0b186ea4]", "[3f0d90d8fb12d906b0d9]", "0x20")
+ self.bid32_to_binary80("3", "[0b186ea4]", "[3f0d90d8fb12d906b0d8]", "0x20")
+ self.bid32_to_binary80("4", "[0b186ea4]", "[3f0d90d8fb12d906b0d8]", "0x20")
+ self.bid32_to_binary80("0", "[0c0ca175]", "[3f12ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("1", "[0c0ca175]", "[3f12ea0166331944e65f]", "0x20")
+ self.bid32_to_binary80("2", "[0c0ca175]", "[3f12ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("3", "[0c0ca175]", "[3f12ea0166331944e65f]", "0x20")
+ self.bid32_to_binary80("4", "[0c0ca175]", "[3f12ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("0", "[0e5623eb]", "[3f22f383c95544305354]", "0x20")
+ self.bid32_to_binary80("1", "[0e5623eb]", "[3f22f383c95544305354]", "0x20")
+ self.bid32_to_binary80("2", "[0e5623eb]", "[3f22f383c95544305355]", "0x20")
+ self.bid32_to_binary80("3", "[0e5623eb]", "[3f22f383c95544305354]", "0x20")
+ self.bid32_to_binary80("4", "[0e5623eb]", "[3f22f383c95544305354]", "0x20")
+ self.bid32_to_binary80("0", "[0f7195ef]", "[3f29fadc53b7e7c2ebf3]", "0x20")
+ self.bid32_to_binary80("1", "[0f7195ef]", "[3f29fadc53b7e7c2ebf2]", "0x20")
+ self.bid32_to_binary80("2", "[0f7195ef]", "[3f29fadc53b7e7c2ebf3]", "0x20")
+ self.bid32_to_binary80("3", "[0f7195ef]", "[3f29fadc53b7e7c2ebf2]", "0x20")
+ self.bid32_to_binary80("4", "[0f7195ef]", "[3f29fadc53b7e7c2ebf3]", "0x20")
+ self.bid32_to_binary80("0", "[103cb6b8]", "[3f2fd183f3804540fa08]", "0x20")
+ self.bid32_to_binary80("1", "[103cb6b8]", "[3f2fd183f3804540fa07]", "0x20")
+ self.bid32_to_binary80("2", "[103cb6b8]", "[3f2fd183f3804540fa08]", "0x20")
+ self.bid32_to_binary80("3", "[103cb6b8]", "[3f2fd183f3804540fa07]", "0x20")
+ self.bid32_to_binary80("4", "[103cb6b8]", "[3f2fd183f3804540fa08]", "0x20")
+ self.bid32_to_binary80("0", "[111edaba]", "[3f35a65dd9707ceff5b6]", "0x20")
+ self.bid32_to_binary80("1", "[111edaba]", "[3f35a65dd9707ceff5b5]", "0x20")
+ self.bid32_to_binary80("2", "[111edaba]", "[3f35a65dd9707ceff5b6]", "0x20")
+ self.bid32_to_binary80("3", "[111edaba]", "[3f35a65dd9707ceff5b5]", "0x20")
+ self.bid32_to_binary80("4", "[111edaba]", "[3f35a65dd9707ceff5b6]", "0x20")
+ self.bid32_to_binary80("0", "[121d4835]", "[3f3bf6b36b576acfd91f]", "0x20")
+ self.bid32_to_binary80("1", "[121d4835]", "[3f3bf6b36b576acfd91f]", "0x20")
+ self.bid32_to_binary80("2", "[121d4835]", "[3f3bf6b36b576acfd920]", "0x20")
+ self.bid32_to_binary80("3", "[121d4835]", "[3f3bf6b36b576acfd91f]", "0x20")
+ self.bid32_to_binary80("4", "[121d4835]", "[3f3bf6b36b576acfd91f]", "0x20")
+ self.bid32_to_binary80("0", "[1307d52e]", "[3f40ce38845bb7273a85]", "0x20")
+ self.bid32_to_binary80("1", "[1307d52e]", "[3f40ce38845bb7273a84]", "0x20")
+ self.bid32_to_binary80("2", "[1307d52e]", "[3f40ce38845bb7273a85]", "0x20")
+ self.bid32_to_binary80("3", "[1307d52e]", "[3f40ce38845bb7273a84]", "0x20")
+ self.bid32_to_binary80("4", "[1307d52e]", "[3f40ce38845bb7273a85]", "0x20")
+ self.bid32_to_binary80("0", "[140991c8]", "[3f47c4d513e04f2d111a]", "0x20")
+ self.bid32_to_binary80("1", "[140991c8]", "[3f47c4d513e04f2d1119]", "0x20")
+ self.bid32_to_binary80("2", "[140991c8]", "[3f47c4d513e04f2d111a]", "0x20")
+ self.bid32_to_binary80("3", "[140991c8]", "[3f47c4d513e04f2d1119]", "0x20")
+ self.bid32_to_binary80("4", "[140991c8]", "[3f47c4d513e04f2d111a]", "0x20")
+ self.bid32_to_binary80("0", "[1505d9e7]", "[3f4dbc0cb9aa51ffb73c]", "0x20")
+ self.bid32_to_binary80("1", "[1505d9e7]", "[3f4dbc0cb9aa51ffb73b]", "0x20")
+ self.bid32_to_binary80("2", "[1505d9e7]", "[3f4dbc0cb9aa51ffb73c]", "0x20")
+ self.bid32_to_binary80("3", "[1505d9e7]", "[3f4dbc0cb9aa51ffb73b]", "0x20")
+ self.bid32_to_binary80("4", "[1505d9e7]", "[3f4dbc0cb9aa51ffb73c]", "0x20")
+ self.bid32_to_binary80("0", "[1603e05a]", "[3f53c2a8bbd51dfcd6ae]", "0x20")
+ self.bid32_to_binary80("1", "[1603e05a]", "[3f53c2a8bbd51dfcd6ad]", "0x20")
+ self.bid32_to_binary80("2", "[1603e05a]", "[3f53c2a8bbd51dfcd6ae]", "0x20")
+ self.bid32_to_binary80("3", "[1603e05a]", "[3f53c2a8bbd51dfcd6ad]", "0x20")
+ self.bid32_to_binary80("4", "[1603e05a]", "[3f53c2a8bbd51dfcd6ae]", "0x20")
+ self.bid32_to_binary80("0", "[17e0a142]", "[3f629415bcbf18c96ed6]", "0x20")
+ self.bid32_to_binary80("1", "[17e0a142]", "[3f629415bcbf18c96ed6]", "0x20")
+ self.bid32_to_binary80("2", "[17e0a142]", "[3f629415bcbf18c96ed7]", "0x20")
+ self.bid32_to_binary80("3", "[17e0a142]", "[3f629415bcbf18c96ed6]", "0x20")
+ self.bid32_to_binary80("4", "[17e0a142]", "[3f629415bcbf18c96ed6]", "0x20")
+ self.bid32_to_binary80("0", "[18cd3fce]", "[3f68b8f9a5001079be3a]", "0x20")
+ self.bid32_to_binary80("1", "[18cd3fce]", "[3f68b8f9a5001079be39]", "0x20")
+ self.bid32_to_binary80("2", "[18cd3fce]", "[3f68b8f9a5001079be3a]", "0x20")
+ self.bid32_to_binary80("3", "[18cd3fce]", "[3f68b8f9a5001079be39]", "0x20")
+ self.bid32_to_binary80("4", "[18cd3fce]", "[3f68b8f9a5001079be3a]", "0x20")
+ self.bid32_to_binary80("0", "[19c542e5]", "[3f6f8191938060568174]", "0x20")
+ self.bid32_to_binary80("1", "[19c542e5]", "[3f6f8191938060568174]", "0x20")
+ self.bid32_to_binary80("2", "[19c542e5]", "[3f6f8191938060568175]", "0x20")
+ self.bid32_to_binary80("3", "[19c542e5]", "[3f6f8191938060568174]", "0x20")
+ self.bid32_to_binary80("4", "[19c542e5]", "[3f6f8191938060568174]", "0x20")
+ self.bid32_to_binary80("0", "[1bef45e8]", "[3f7cfe1a4f733938064c]", "0x20")
+ self.bid32_to_binary80("1", "[1bef45e8]", "[3f7cfe1a4f733938064b]", "0x20")
+ self.bid32_to_binary80("2", "[1bef45e8]", "[3f7cfe1a4f733938064c]", "0x20")
+ self.bid32_to_binary80("3", "[1bef45e8]", "[3f7cfe1a4f733938064b]", "0x20")
+ self.bid32_to_binary80("4", "[1bef45e8]", "[3f7cfe1a4f733938064c]", "0x20")
+ self.bid32_to_binary80("0", "[1ca03047]", "[3f81e5b49589959db96e]", "0x20")
+ self.bid32_to_binary80("1", "[1ca03047]", "[3f81e5b49589959db96d]", "0x20")
+ self.bid32_to_binary80("2", "[1ca03047]", "[3f81e5b49589959db96e]", "0x20")
+ self.bid32_to_binary80("3", "[1ca03047]", "[3f81e5b49589959db96d]", "0x20")
+ self.bid32_to_binary80("4", "[1ca03047]", "[3f81e5b49589959db96e]", "0x20")
+ self.bid32_to_binary80("0", "[1d836169]", "[3f8596c69530a4f32464]", "0x20")
+ self.bid32_to_binary80("1", "[1d836169]", "[3f8596c69530a4f32463]", "0x20")
+ self.bid32_to_binary80("2", "[1d836169]", "[3f8596c69530a4f32464]", "0x20")
+ self.bid32_to_binary80("3", "[1d836169]", "[3f8596c69530a4f32463]", "0x20")
+ self.bid32_to_binary80("4", "[1d836169]", "[3f8596c69530a4f32464]", "0x20")
+ self.bid32_to_binary80("0", "[1e8ad150]", "[3f8dbc783a7cce2fed7d]", "0x20")
+ self.bid32_to_binary80("1", "[1e8ad150]", "[3f8dbc783a7cce2fed7c]", "0x20")
+ self.bid32_to_binary80("2", "[1e8ad150]", "[3f8dbc783a7cce2fed7d]", "0x20")
+ self.bid32_to_binary80("3", "[1e8ad150]", "[3f8dbc783a7cce2fed7c]", "0x20")
+ self.bid32_to_binary80("4", "[1e8ad150]", "[3f8dbc783a7cce2fed7d]", "0x20")
+ self.bid32_to_binary80("0", "[1f8c94e3]", "[3f94ab40703120836057]", "0x20")
+ self.bid32_to_binary80("1", "[1f8c94e3]", "[3f94ab40703120836056]", "0x20")
+ self.bid32_to_binary80("2", "[1f8c94e3]", "[3f94ab40703120836057]", "0x20")
+ self.bid32_to_binary80("3", "[1f8c94e3]", "[3f94ab40703120836056]", "0x20")
+ self.bid32_to_binary80("4", "[1f8c94e3]", "[3f94ab40703120836057]", "0x20")
+ self.bid32_to_binary80("0", "[2089dc81]", "[3f9ad1ba42a1df9fb3db]", "0x20")
+ self.bid32_to_binary80("1", "[2089dc81]", "[3f9ad1ba42a1df9fb3da]", "0x20")
+ self.bid32_to_binary80("2", "[2089dc81]", "[3f9ad1ba42a1df9fb3db]", "0x20")
+ self.bid32_to_binary80("3", "[2089dc81]", "[3f9ad1ba42a1df9fb3da]", "0x20")
+ self.bid32_to_binary80("4", "[2089dc81]", "[3f9ad1ba42a1df9fb3db]", "0x20")
+ self.bid32_to_binary80("0", "[21863ac2]", "[3fa0cf02eb13dc36e0e9]", "0x20")
+ self.bid32_to_binary80("1", "[21863ac2]", "[3fa0cf02eb13dc36e0e9]", "0x20")
+ self.bid32_to_binary80("2", "[21863ac2]", "[3fa0cf02eb13dc36e0ea]", "0x20")
+ self.bid32_to_binary80("3", "[21863ac2]", "[3fa0cf02eb13dc36e0e9]", "0x20")
+ self.bid32_to_binary80("4", "[21863ac2]", "[3fa0cf02eb13dc36e0e9]", "0x20")
+ self.bid32_to_binary80("0", "[2284ec38]", "[3fa6ff9a4c6ee1a7a327]", "0x20")
+ self.bid32_to_binary80("1", "[2284ec38]", "[3fa6ff9a4c6ee1a7a327]", "0x20")
+ self.bid32_to_binary80("2", "[2284ec38]", "[3fa6ff9a4c6ee1a7a328]", "0x20")
+ self.bid32_to_binary80("3", "[2284ec38]", "[3fa6ff9a4c6ee1a7a327]", "0x20")
+ self.bid32_to_binary80("4", "[2284ec38]", "[3fa6ff9a4c6ee1a7a327]", "0x20")
+ self.bid32_to_binary80("0", "[237ac6d6]", "[3faef9054f11e79e9034]", "0x20")
+ self.bid32_to_binary80("1", "[237ac6d6]", "[3faef9054f11e79e9034]", "0x20")
+ self.bid32_to_binary80("2", "[237ac6d6]", "[3faef9054f11e79e9035]", "0x20")
+ self.bid32_to_binary80("3", "[237ac6d6]", "[3faef9054f11e79e9034]", "0x20")
+ self.bid32_to_binary80("4", "[237ac6d6]", "[3faef9054f11e79e9034]", "0x20")
+ self.bid32_to_binary80("0", "[248d2919]", "[3fb5d0897bbb542b42e2]", "0x20")
+ self.bid32_to_binary80("1", "[248d2919]", "[3fb5d0897bbb542b42e2]", "0x20")
+ self.bid32_to_binary80("2", "[248d2919]", "[3fb5d0897bbb542b42e3]", "0x20")
+ self.bid32_to_binary80("3", "[248d2919]", "[3fb5d0897bbb542b42e2]", "0x20")
+ self.bid32_to_binary80("4", "[248d2919]", "[3fb5d0897bbb542b42e2]", "0x20")
+ self.bid32_to_binary80("0", "[25044c83]", "[3fb7aa4bc2ba05f01120]", "0x20")
+ self.bid32_to_binary80("1", "[25044c83]", "[3fb7aa4bc2ba05f0111f]", "0x20")
+ self.bid32_to_binary80("2", "[25044c83]", "[3fb7aa4bc2ba05f01120]", "0x20")
+ self.bid32_to_binary80("3", "[25044c83]", "[3fb7aa4bc2ba05f0111f]", "0x20")
+ self.bid32_to_binary80("4", "[25044c83]", "[3fb7aa4bc2ba05f01120]", "0x20")
+ self.bid32_to_binary80("0", "[277af9b1]", "[3fc9b9d5c977b2a77193]", "0x20")
+ self.bid32_to_binary80("1", "[277af9b1]", "[3fc9b9d5c977b2a77192]", "0x20")
+ self.bid32_to_binary80("2", "[277af9b1]", "[3fc9b9d5c977b2a77193]", "0x20")
+ self.bid32_to_binary80("3", "[277af9b1]", "[3fc9b9d5c977b2a77192]", "0x20")
+ self.bid32_to_binary80("4", "[277af9b1]", "[3fc9b9d5c977b2a77193]", "0x20")
+ self.bid32_to_binary80("0", "[2868c06d]", "[3fcff7567ec2244a9fdc]", "0x20")
+ self.bid32_to_binary80("1", "[2868c06d]", "[3fcff7567ec2244a9fdb]", "0x20")
+ self.bid32_to_binary80("2", "[2868c06d]", "[3fcff7567ec2244a9fdc]", "0x20")
+ self.bid32_to_binary80("3", "[2868c06d]", "[3fcff7567ec2244a9fdb]", "0x20")
+ self.bid32_to_binary80("4", "[2868c06d]", "[3fcff7567ec2244a9fdc]", "0x20")
+ self.bid32_to_binary80("0", "[2929e692]", "[3fd59a960f3956aea3e9]", "0x20")
+ self.bid32_to_binary80("1", "[2929e692]", "[3fd59a960f3956aea3e9]", "0x20")
+ self.bid32_to_binary80("2", "[2929e692]", "[3fd59a960f3956aea3ea]", "0x20")
+ self.bid32_to_binary80("3", "[2929e692]", "[3fd59a960f3956aea3e9]", "0x20")
+ self.bid32_to_binary80("4", "[2929e692]", "[3fd59a960f3956aea3e9]", "0x20")
+ self.bid32_to_binary80("0", "[2a24dce3]", "[3fdbd47ff2bb76052aca]", "0x20")
+ self.bid32_to_binary80("1", "[2a24dce3]", "[3fdbd47ff2bb76052ac9]", "0x20")
+ self.bid32_to_binary80("2", "[2a24dce3]", "[3fdbd47ff2bb76052aca]", "0x20")
+ self.bid32_to_binary80("3", "[2a24dce3]", "[3fdbd47ff2bb76052ac9]", "0x20")
+ self.bid32_to_binary80("4", "[2a24dce3]", "[3fdbd47ff2bb76052aca]", "0x20")
+ self.bid32_to_binary80("0", "[2b1b9a0d]", "[3fe1f89d53cbf427e7dd]", "0x20")
+ self.bid32_to_binary80("1", "[2b1b9a0d]", "[3fe1f89d53cbf427e7dd]", "0x20")
+ self.bid32_to_binary80("2", "[2b1b9a0d]", "[3fe1f89d53cbf427e7de]", "0x20")
+ self.bid32_to_binary80("3", "[2b1b9a0d]", "[3fe1f89d53cbf427e7dd]", "0x20")
+ self.bid32_to_binary80("4", "[2b1b9a0d]", "[3fe1f89d53cbf427e7dd]", "0x20")
+ self.bid32_to_binary80("0", "[2c047c26]", "[3fe5fc7b02cd09d4aaf6]", "0x20")
+ self.bid32_to_binary80("1", "[2c047c26]", "[3fe5fc7b02cd09d4aaf5]", "0x20")
+ self.bid32_to_binary80("2", "[2c047c26]", "[3fe5fc7b02cd09d4aaf6]", "0x20")
+ self.bid32_to_binary80("3", "[2c047c26]", "[3fe5fc7b02cd09d4aaf5]", "0x20")
+ self.bid32_to_binary80("4", "[2c047c26]", "[3fe5fc7b02cd09d4aaf6]", "0x20")
+ self.bid32_to_binary80("0", "[2d08680d]", "[3fedb8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("1", "[2d08680d]", "[3fedb8dc18dee2e8b1c9]", "0x20")
+ self.bid32_to_binary80("2", "[2d08680d]", "[3fedb8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("3", "[2d08680d]", "[3fedb8dc18dee2e8b1c9]", "0x20")
+ self.bid32_to_binary80("4", "[2d08680d]", "[3fedb8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("0", "[2e056150]", "[3ff3b8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("1", "[2e056150]", "[3ff3b8dc18dee2e8b1c9]", "0x20")
+ self.bid32_to_binary80("2", "[2e056150]", "[3ff3b8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("3", "[2e056150]", "[3ff3b8dc18dee2e8b1c9]", "0x20")
+ self.bid32_to_binary80("4", "[2e056150]", "[3ff3b8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("0", "[2ecd7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[2ecd7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[2ecd7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[2ecd7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[2ecd7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[2f04845c]", "[3ff9f281923bd746a352]", "0x20")
+ self.bid32_to_binary80("1", "[2f04845c]", "[3ff9f281923bd746a352]", "0x20")
+ self.bid32_to_binary80("2", "[2f04845c]", "[3ff9f281923bd746a353]", "0x20")
+ self.bid32_to_binary80("3", "[2f04845c]", "[3ff9f281923bd746a352]", "0x20")
+ self.bid32_to_binary80("4", "[2f04845c]", "[3ff9f281923bd746a352]", "0x20")
+ self.bid32_to_binary80("0", "[30061248]", "[4000fea747d805e5f30e]", "0x20")
+ self.bid32_to_binary80("1", "[30061248]", "[4000fea747d805e5f30e]", "0x20")
+ self.bid32_to_binary80("2", "[30061248]", "[4000fea747d805e5f30f]", "0x20")
+ self.bid32_to_binary80("3", "[30061248]", "[4000fea747d805e5f30e]", "0x20")
+ self.bid32_to_binary80("4", "[30061248]", "[4000fea747d805e5f30e]", "0x20")
+ self.bid32_to_binary80("0", "[3103e7d9]", "[4006fff604189374bc6a]", "0x20")
+ self.bid32_to_binary80("1", "[3103e7d9]", "[4006fff604189374bc6a]", "0x20")
+ self.bid32_to_binary80("2", "[3103e7d9]", "[4006fff604189374bc6b]", "0x20")
+ self.bid32_to_binary80("3", "[3103e7d9]", "[4006fff604189374bc6a]", "0x20")
+ self.bid32_to_binary80("4", "[3103e7d9]", "[4006fff604189374bc6a]", "0x20")
+ self.bid32_to_binary80("0", "[3200000f]", "[3fffc000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[3200000f]", "[3fffc000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[3200000f]", "[3fffc000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[3200000f]", "[3fffc000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[3200000f]", "[3fffc000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[32800000]", "[00000000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[32800000]", "[00000000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[32800000]", "[00000000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[32800000]", "[00000000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[32800000]", "[00000000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[32800001]", "[3fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[32800001]", "[3fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[32800001]", "[3fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[32800001]", "[3fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[32800001]", "[3fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[32800040]", "[40058000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[32800040]", "[40058000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[32800040]", "[40058000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[32800040]", "[40058000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[32800040]", "[40058000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[328003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[328003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[328003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[328003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[328003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[328003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[328003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[328003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[328003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[328003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[330f4240]", "[40169896800000000000]", "0x00")
+ self.bid32_to_binary80("1", "[330f4240]", "[40169896800000000000]", "0x00")
+ self.bid32_to_binary80("2", "[330f4240]", "[40169896800000000000]", "0x00")
+ self.bid32_to_binary80("3", "[330f4240]", "[40169896800000000000]", "0x00")
+ self.bid32_to_binary80("4", "[330f4240]", "[40169896800000000000]", "0x00")
+ self.bid32_to_binary80("0", "[340f4240]", "[401cee6b280000000000]", "0x00")
+ self.bid32_to_binary80("1", "[340f4240]", "[401cee6b280000000000]", "0x00")
+ self.bid32_to_binary80("2", "[340f4240]", "[401cee6b280000000000]", "0x00")
+ self.bid32_to_binary80("3", "[340f4240]", "[401cee6b280000000000]", "0x00")
+ self.bid32_to_binary80("4", "[340f4240]", "[401cee6b280000000000]", "0x00")
+ self.bid32_to_binary80("0", "[350f4240]", "[4023ba43b74000000000]", "0x00")
+ self.bid32_to_binary80("1", "[350f4240]", "[4023ba43b74000000000]", "0x00")
+ self.bid32_to_binary80("2", "[350f4240]", "[4023ba43b74000000000]", "0x00")
+ self.bid32_to_binary80("3", "[350f4240]", "[4023ba43b74000000000]", "0x00")
+ self.bid32_to_binary80("4", "[350f4240]", "[4023ba43b74000000000]", "0x00")
+ self.bid32_to_binary80("0", "[36d5e63b]", "[402ffffffe686d800000]", "0x00")
+ self.bid32_to_binary80("1", "[36d5e63b]", "[402ffffffe686d800000]", "0x00")
+ self.bid32_to_binary80("2", "[36d5e63b]", "[402ffffffe686d800000]", "0x00")
+ self.bid32_to_binary80("3", "[36d5e63b]", "[402ffffffe686d800000]", "0x00")
+ self.bid32_to_binary80("4", "[36d5e63b]", "[402ffffffe686d800000]", "0x00")
+ self.bid32_to_binary80("0", "[37b6f9bf]", "[4035fffffcbb46380000]", "0x00")
+ self.bid32_to_binary80("1", "[37b6f9bf]", "[4035fffffcbb46380000]", "0x00")
+ self.bid32_to_binary80("2", "[37b6f9bf]", "[4035fffffcbb46380000]", "0x00")
+ self.bid32_to_binary80("3", "[37b6f9bf]", "[4035fffffcbb46380000]", "0x00")
+ self.bid32_to_binary80("4", "[37b6f9bf]", "[4035fffffcbb46380000]", "0x00")
+ self.bid32_to_binary80("0", "[38a32f33]", "[403bffffffeed6918000]", "0x00")
+ self.bid32_to_binary80("1", "[38a32f33]", "[403bffffffeed6918000]", "0x00")
+ self.bid32_to_binary80("2", "[38a32f33]", "[403bffffffeed6918000]", "0x00")
+ self.bid32_to_binary80("3", "[38a32f33]", "[403bffffffeed6918000]", "0x00")
+ self.bid32_to_binary80("4", "[38a32f33]", "[403bffffffeed6918000]", "0x00")
+ self.bid32_to_binary80("0", "[3996849b]", "[4041fffffa0570609800]", "0x00")
+ self.bid32_to_binary80("1", "[3996849b]", "[4041fffffa0570609800]", "0x00")
+ self.bid32_to_binary80("2", "[3996849b]", "[4041fffffa0570609800]", "0x00")
+ self.bid32_to_binary80("3", "[3996849b]", "[4041fffffa0570609800]", "0x00")
+ self.bid32_to_binary80("4", "[3996849b]", "[4041fffffa0570609800]", "0x00")
+ self.bid32_to_binary80("0", "[3b5c3bcc]", "[404dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("1", "[3b5c3bcc]", "[404dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("2", "[3b5c3bcc]", "[404dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("3", "[3b5c3bcc]", "[404dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("4", "[3b5c3bcc]", "[404dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("0", "[3c3b0790]", "[4053fffff4a024d65754]", "0x00")
+ self.bid32_to_binary80("1", "[3c3b0790]", "[4053fffff4a024d65754]", "0x00")
+ self.bid32_to_binary80("2", "[3c3b0790]", "[4053fffff4a024d65754]", "0x00")
+ self.bid32_to_binary80("3", "[3c3b0790]", "[4053fffff4a024d65754]", "0x00")
+ self.bid32_to_binary80("4", "[3c3b0790]", "[4053fffff4a024d65754]", "0x00")
+ self.bid32_to_binary80("0", "[413c9dfa]", "[40759904e14fb5e066db]", "0x20")
+ self.bid32_to_binary80("1", "[413c9dfa]", "[40759904e14fb5e066db]", "0x20")
+ self.bid32_to_binary80("2", "[413c9dfa]", "[40759904e14fb5e066dc]", "0x20")
+ self.bid32_to_binary80("3", "[413c9dfa]", "[40759904e14fb5e066db]", "0x20")
+ self.bid32_to_binary80("4", "[413c9dfa]", "[40759904e14fb5e066db]", "0x20")
+ self.bid32_to_binary80("0", "[422ff974]", "[407bbd39ca88ae4dbdcb]", "0x20")
+ self.bid32_to_binary80("1", "[422ff974]", "[407bbd39ca88ae4dbdca]", "0x20")
+ self.bid32_to_binary80("2", "[422ff974]", "[407bbd39ca88ae4dbdcb]", "0x20")
+ self.bid32_to_binary80("3", "[422ff974]", "[407bbd39ca88ae4dbdca]", "0x20")
+ self.bid32_to_binary80("4", "[422ff974]", "[407bbd39ca88ae4dbdcb]", "0x20")
+ self.bid32_to_binary80("0", "[4313f10a]", "[4080f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("1", "[4313f10a]", "[4080f5cc76f1b27895a1]", "0x20")
+ self.bid32_to_binary80("2", "[4313f10a]", "[4080f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("3", "[4313f10a]", "[4080f5cc76f1b27895a1]", "0x20")
+ self.bid32_to_binary80("4", "[4313f10a]", "[4080f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("0", "[442d405d]", "[4088d9e0ae29c8496a57]", "0x20")
+ self.bid32_to_binary80("1", "[442d405d]", "[4088d9e0ae29c8496a56]", "0x20")
+ self.bid32_to_binary80("2", "[442d405d]", "[4088d9e0ae29c8496a57]", "0x20")
+ self.bid32_to_binary80("3", "[442d405d]", "[4088d9e0ae29c8496a56]", "0x20")
+ self.bid32_to_binary80("4", "[442d405d]", "[4088d9e0ae29c8496a57]", "0x20")
+ self.bid32_to_binary80("0", "[46de06f0]", "[409aacb3546b8b93fd11]", "0x20")
+ self.bid32_to_binary80("1", "[46de06f0]", "[409aacb3546b8b93fd11]", "0x20")
+ self.bid32_to_binary80("2", "[46de06f0]", "[409aacb3546b8b93fd12]", "0x20")
+ self.bid32_to_binary80("3", "[46de06f0]", "[409aacb3546b8b93fd11]", "0x20")
+ self.bid32_to_binary80("4", "[46de06f0]", "[409aacb3546b8b93fd11]", "0x20")
+ self.bid32_to_binary80("0", "[4793e462]", "[409ee459b0121faa0082]", "0x20")
+ self.bid32_to_binary80("1", "[4793e462]", "[409ee459b0121faa0081]", "0x20")
+ self.bid32_to_binary80("2", "[4793e462]", "[409ee459b0121faa0082]", "0x20")
+ self.bid32_to_binary80("3", "[4793e462]", "[409ee459b0121faa0081]", "0x20")
+ self.bid32_to_binary80("4", "[4793e462]", "[409ee459b0121faa0082]", "0x20")
+ self.bid32_to_binary80("0", "[48a8b2a2]", "[40a6b67ec3eb98ab8e81]", "0x20")
+ self.bid32_to_binary80("1", "[48a8b2a2]", "[40a6b67ec3eb98ab8e80]", "0x20")
+ self.bid32_to_binary80("2", "[48a8b2a2]", "[40a6b67ec3eb98ab8e81]", "0x20")
+ self.bid32_to_binary80("3", "[48a8b2a2]", "[40a6b67ec3eb98ab8e80]", "0x20")
+ self.bid32_to_binary80("4", "[48a8b2a2]", "[40a6b67ec3eb98ab8e81]", "0x20")
+ self.bid32_to_binary80("0", "[49b6e3cd]", "[40adc04aeac9a5faa3a0]", "0x20")
+ self.bid32_to_binary80("1", "[49b6e3cd]", "[40adc04aeac9a5faa3a0]", "0x20")
+ self.bid32_to_binary80("2", "[49b6e3cd]", "[40adc04aeac9a5faa3a1]", "0x20")
+ self.bid32_to_binary80("3", "[49b6e3cd]", "[40adc04aeac9a5faa3a0]", "0x20")
+ self.bid32_to_binary80("4", "[49b6e3cd]", "[40adc04aeac9a5faa3a0]", "0x20")
+ self.bid32_to_binary80("0", "[4ac9506a]", "[40b4c8a77ae6dc274b04]", "0x20")
+ self.bid32_to_binary80("1", "[4ac9506a]", "[40b4c8a77ae6dc274b04]", "0x20")
+ self.bid32_to_binary80("2", "[4ac9506a]", "[40b4c8a77ae6dc274b05]", "0x20")
+ self.bid32_to_binary80("3", "[4ac9506a]", "[40b4c8a77ae6dc274b04]", "0x20")
+ self.bid32_to_binary80("4", "[4ac9506a]", "[40b4c8a77ae6dc274b04]", "0x20")
+ self.bid32_to_binary80("0", "[4b9a6697]", "[40b9e1cd2f739e889e80]", "0x20")
+ self.bid32_to_binary80("1", "[4b9a6697]", "[40b9e1cd2f739e889e7f]", "0x20")
+ self.bid32_to_binary80("2", "[4b9a6697]", "[40b9e1cd2f739e889e80]", "0x20")
+ self.bid32_to_binary80("3", "[4b9a6697]", "[40b9e1cd2f739e889e7f]", "0x20")
+ self.bid32_to_binary80("4", "[4b9a6697]", "[40b9e1cd2f739e889e80]", "0x20")
+ self.bid32_to_binary80("0", "[4c9a6697]", "[40c0b0684d1253dabbd4]", "0x20")
+ self.bid32_to_binary80("1", "[4c9a6697]", "[40c0b0684d1253dabbd3]", "0x20")
+ self.bid32_to_binary80("2", "[4c9a6697]", "[40c0b0684d1253dabbd4]", "0x20")
+ self.bid32_to_binary80("3", "[4c9a6697]", "[40c0b0684d1253dabbd3]", "0x20")
+ self.bid32_to_binary80("4", "[4c9a6697]", "[40c0b0684d1253dabbd4]", "0x20")
+ self.bid32_to_binary80("0", "[4de2d61a]", "[40c980fcc884b7a737d3]", "0x20")
+ self.bid32_to_binary80("1", "[4de2d61a]", "[40c980fcc884b7a737d3]", "0x20")
+ self.bid32_to_binary80("2", "[4de2d61a]", "[40c980fcc884b7a737d4]", "0x20")
+ self.bid32_to_binary80("3", "[4de2d61a]", "[40c980fcc884b7a737d3]", "0x20")
+ self.bid32_to_binary80("4", "[4de2d61a]", "[40c980fcc884b7a737d3]", "0x20")
+ self.bid32_to_binary80("0", "[4ecc8d0f]", "[40cf9c197deb8c9856ac]", "0x20")
+ self.bid32_to_binary80("1", "[4ecc8d0f]", "[40cf9c197deb8c9856ac]", "0x20")
+ self.bid32_to_binary80("2", "[4ecc8d0f]", "[40cf9c197deb8c9856ad]", "0x20")
+ self.bid32_to_binary80("3", "[4ecc8d0f]", "[40cf9c197deb8c9856ac]", "0x20")
+ self.bid32_to_binary80("4", "[4ecc8d0f]", "[40cf9c197deb8c9856ac]", "0x20")
+ self.bid32_to_binary80("0", "[4fb82a11]", "[40d5b2f3299ec7be0c0a]", "0x20")
+ self.bid32_to_binary80("1", "[4fb82a11]", "[40d5b2f3299ec7be0c09]", "0x20")
+ self.bid32_to_binary80("2", "[4fb82a11]", "[40d5b2f3299ec7be0c0a]", "0x20")
+ self.bid32_to_binary80("3", "[4fb82a11]", "[40d5b2f3299ec7be0c09]", "0x20")
+ self.bid32_to_binary80("4", "[4fb82a11]", "[40d5b2f3299ec7be0c0a]", "0x20")
+ self.bid32_to_binary80("0", "[50acee74]", "[40dbdfaff40679ad8f0c]", "0x20")
+ self.bid32_to_binary80("1", "[50acee74]", "[40dbdfaff40679ad8f0c]", "0x20")
+ self.bid32_to_binary80("2", "[50acee74]", "[40dbdfaff40679ad8f0d]", "0x20")
+ self.bid32_to_binary80("3", "[50acee74]", "[40dbdfaff40679ad8f0c]", "0x20")
+ self.bid32_to_binary80("4", "[50acee74]", "[40dbdfaff40679ad8f0c]", "0x20")
+ self.bid32_to_binary80("0", "[519e2c6b]", "[40e1eab676baf37301a8]", "0x20")
+ self.bid32_to_binary80("1", "[519e2c6b]", "[40e1eab676baf37301a8]", "0x20")
+ self.bid32_to_binary80("2", "[519e2c6b]", "[40e1eab676baf37301a9]", "0x20")
+ self.bid32_to_binary80("3", "[519e2c6b]", "[40e1eab676baf37301a8]", "0x20")
+ self.bid32_to_binary80("4", "[519e2c6b]", "[40e1eab676baf37301a8]", "0x20")
+ self.bid32_to_binary80("0", "[528fdb2b]", "[40e7c0b8742478c6f622]", "0x20")
+ self.bid32_to_binary80("1", "[528fdb2b]", "[40e7c0b8742478c6f621]", "0x20")
+ self.bid32_to_binary80("2", "[528fdb2b]", "[40e7c0b8742478c6f622]", "0x20")
+ self.bid32_to_binary80("3", "[528fdb2b]", "[40e7c0b8742478c6f621]", "0x20")
+ self.bid32_to_binary80("4", "[528fdb2b]", "[40e7c0b8742478c6f622]", "0x20")
+ self.bid32_to_binary80("0", "[536f4abe]", "[40edd35b278e3553c20e]", "0x20")
+ self.bid32_to_binary80("1", "[536f4abe]", "[40edd35b278e3553c20e]", "0x20")
+ self.bid32_to_binary80("2", "[536f4abe]", "[40edd35b278e3553c20f]", "0x20")
+ self.bid32_to_binary80("3", "[536f4abe]", "[40edd35b278e3553c20e]", "0x20")
+ self.bid32_to_binary80("4", "[536f4abe]", "[40edd35b278e3553c20e]", "0x20")
+ self.bid32_to_binary80("0", "[543446e4]", "[40f39b1feb90aa8ea134]", "0x20")
+ self.bid32_to_binary80("1", "[543446e4]", "[40f39b1feb90aa8ea133]", "0x20")
+ self.bid32_to_binary80("2", "[543446e4]", "[40f39b1feb90aa8ea134]", "0x20")
+ self.bid32_to_binary80("3", "[543446e4]", "[40f39b1feb90aa8ea133]", "0x20")
+ self.bid32_to_binary80("4", "[543446e4]", "[40f39b1feb90aa8ea134]", "0x20")
+ self.bid32_to_binary80("0", "[551f6e68]", "[40f991bb397504579b75]", "0x20")
+ self.bid32_to_binary80("1", "[551f6e68]", "[40f991bb397504579b74]", "0x20")
+ self.bid32_to_binary80("2", "[551f6e68]", "[40f991bb397504579b75]", "0x20")
+ self.bid32_to_binary80("3", "[551f6e68]", "[40f991bb397504579b74]", "0x20")
+ self.bid32_to_binary80("4", "[551f6e68]", "[40f991bb397504579b75]", "0x20")
+ self.bid32_to_binary80("0", "[56164ea7]", "[40ffa19b116620c4ee90]", "0x20")
+ self.bid32_to_binary80("1", "[56164ea7]", "[40ffa19b116620c4ee90]", "0x20")
+ self.bid32_to_binary80("2", "[56164ea7]", "[40ffa19b116620c4ee91]", "0x20")
+ self.bid32_to_binary80("3", "[56164ea7]", "[40ffa19b116620c4ee90]", "0x20")
+ self.bid32_to_binary80("4", "[56164ea7]", "[40ffa19b116620c4ee90]", "0x20")
+ self.bid32_to_binary80("0", "[574def7f]", "[4107dc8cbba9515359d0]", "0x20")
+ self.bid32_to_binary80("1", "[574def7f]", "[4107dc8cbba9515359d0]", "0x20")
+ self.bid32_to_binary80("2", "[574def7f]", "[4107dc8cbba9515359d1]", "0x20")
+ self.bid32_to_binary80("3", "[574def7f]", "[4107dc8cbba9515359d0]", "0x20")
+ self.bid32_to_binary80("4", "[574def7f]", "[4107dc8cbba9515359d0]", "0x20")
+ self.bid32_to_binary80("0", "[5846b52f]", "[410e9c532ad92698f0b2]", "0x20")
+ self.bid32_to_binary80("1", "[5846b52f]", "[410e9c532ad92698f0b1]", "0x20")
+ self.bid32_to_binary80("2", "[5846b52f]", "[410e9c532ad92698f0b2]", "0x20")
+ self.bid32_to_binary80("3", "[5846b52f]", "[410e9c532ad92698f0b1]", "0x20")
+ self.bid32_to_binary80("4", "[5846b52f]", "[410e9c532ad92698f0b2]", "0x20")
+ self.bid32_to_binary80("0", "[59119c63]", "[4112f3584cd8d30fb548]", "0x20")
+ self.bid32_to_binary80("1", "[59119c63]", "[4112f3584cd8d30fb548]", "0x20")
+ self.bid32_to_binary80("2", "[59119c63]", "[4112f3584cd8d30fb549]", "0x20")
+ self.bid32_to_binary80("3", "[59119c63]", "[4112f3584cd8d30fb548]", "0x20")
+ self.bid32_to_binary80("4", "[59119c63]", "[4112f3584cd8d30fb548]", "0x20")
+ self.bid32_to_binary80("0", "[5b73172b]", "[4122f2a94f4bec46b2bb]", "0x20")
+ self.bid32_to_binary80("1", "[5b73172b]", "[4122f2a94f4bec46b2ba]", "0x20")
+ self.bid32_to_binary80("2", "[5b73172b]", "[4122f2a94f4bec46b2bb]", "0x20")
+ self.bid32_to_binary80("3", "[5b73172b]", "[4122f2a94f4bec46b2ba]", "0x20")
+ self.bid32_to_binary80("4", "[5b73172b]", "[4122f2a94f4bec46b2bb]", "0x20")
+ self.bid32_to_binary80("0", "[5c48d46a]", "[4128efeed8495e3a70d4]", "0x20")
+ self.bid32_to_binary80("1", "[5c48d46a]", "[4128efeed8495e3a70d3]", "0x20")
+ self.bid32_to_binary80("2", "[5c48d46a]", "[4128efeed8495e3a70d4]", "0x20")
+ self.bid32_to_binary80("3", "[5c48d46a]", "[4128efeed8495e3a70d3]", "0x20")
+ self.bid32_to_binary80("4", "[5c48d46a]", "[4128efeed8495e3a70d4]", "0x20")
+ self.bid32_to_binary80("0", "[5d28d834]", "[412ed23fe862820d7b7f]", "0x20")
+ self.bid32_to_binary80("1", "[5d28d834]", "[412ed23fe862820d7b7e]", "0x20")
+ self.bid32_to_binary80("2", "[5d28d834]", "[412ed23fe862820d7b7f]", "0x20")
+ self.bid32_to_binary80("3", "[5d28d834]", "[412ed23fe862820d7b7e]", "0x20")
+ self.bid32_to_binary80("4", "[5d28d834]", "[412ed23fe862820d7b7f]", "0x20")
+ self.bid32_to_binary80("0", "[5e1f60e1]", "[4134fc60eab62f36d222]", "0x20")
+ self.bid32_to_binary80("1", "[5e1f60e1]", "[4134fc60eab62f36d222]", "0x20")
+ self.bid32_to_binary80("2", "[5e1f60e1]", "[4134fc60eab62f36d223]", "0x20")
+ self.bid32_to_binary80("3", "[5e1f60e1]", "[4134fc60eab62f36d222]", "0x20")
+ self.bid32_to_binary80("4", "[5e1f60e1]", "[4134fc60eab62f36d222]", "0x20")
+ self.bid32_to_binary80("0", "[6349ac2f]", "[3f1cf915969b6d3a1c1a]", "0x20")
+ self.bid32_to_binary80("1", "[6349ac2f]", "[3f1cf915969b6d3a1c1a]", "0x20")
+ self.bid32_to_binary80("2", "[6349ac2f]", "[3f1cf915969b6d3a1c1b]", "0x20")
+ self.bid32_to_binary80("3", "[6349ac2f]", "[3f1cf915969b6d3a1c1a]", "0x20")
+ self.bid32_to_binary80("4", "[6349ac2f]", "[3f1cf915969b6d3a1c1a]", "0x20")
+ self.bid32_to_binary80("0", "[65b39ec0]", "[3f5c90c90f4bd7dd19a2]", "0x20")
+ self.bid32_to_binary80("1", "[65b39ec0]", "[3f5c90c90f4bd7dd19a2]", "0x20")
+ self.bid32_to_binary80("2", "[65b39ec0]", "[3f5c90c90f4bd7dd19a3]", "0x20")
+ self.bid32_to_binary80("3", "[65b39ec0]", "[3f5c90c90f4bd7dd19a2]", "0x20")
+ self.bid32_to_binary80("4", "[65b39ec0]", "[3f5c90c90f4bd7dd19a2]", "0x20")
+ self.bid32_to_binary80("0", "[66a7add2]", "[3f76c64b8906a24ae471]", "0x20")
+ self.bid32_to_binary80("1", "[66a7add2]", "[3f76c64b8906a24ae471]", "0x20")
+ self.bid32_to_binary80("2", "[66a7add2]", "[3f76c64b8906a24ae472]", "0x20")
+ self.bid32_to_binary80("3", "[66a7add2]", "[3f76c64b8906a24ae471]", "0x20")
+ self.bid32_to_binary80("4", "[66a7add2]", "[3f76c64b8906a24ae471]", "0x20")
+ self.bid32_to_binary80("0", "[6981c887]", "[3fc2fb099512f5dc2b76]", "0x20")
+ self.bid32_to_binary80("1", "[6981c887]", "[3fc2fb099512f5dc2b75]", "0x20")
+ self.bid32_to_binary80("2", "[6981c887]", "[3fc2fb099512f5dc2b76]", "0x20")
+ self.bid32_to_binary80("3", "[6981c887]", "[3fc2fb099512f5dc2b75]", "0x20")
+ self.bid32_to_binary80("4", "[6981c887]", "[3fc2fb099512f5dc2b76]", "0x20")
+ self.bid32_to_binary80("0", "[6c789675]", "[400fc34ff1eb851eb852]", "0x20")
+ self.bid32_to_binary80("1", "[6c789675]", "[400fc34ff1eb851eb851]", "0x20")
+ self.bid32_to_binary80("2", "[6c789675]", "[400fc34ff1eb851eb852]", "0x20")
+ self.bid32_to_binary80("3", "[6c789675]", "[400fc34ff1eb851eb851]", "0x20")
+ self.bid32_to_binary80("4", "[6c789675]", "[400fc34ff1eb851eb852]", "0x20")
+ self.bid32_to_binary80("0", "[6d6637bd]", "[4029fffffff528000000]", "0x00")
+ self.bid32_to_binary80("1", "[6d6637bd]", "[4029fffffff528000000]", "0x00")
+ self.bid32_to_binary80("2", "[6d6637bd]", "[4029fffffff528000000]", "0x00")
+ self.bid32_to_binary80("3", "[6d6637bd]", "[4029fffffff528000000]", "0x00")
+ self.bid32_to_binary80("4", "[6d6637bd]", "[4029fffffff528000000]", "0x00")
+ self.bid32_to_binary80("0", "[6e901d7a]", "[4047fffffabb56818c80]", "0x00")
+ self.bid32_to_binary80("1", "[6e901d7a]", "[4047fffffabb56818c80]", "0x00")
+ self.bid32_to_binary80("2", "[6e901d7a]", "[4047fffffabb56818c80]", "0x00")
+ self.bid32_to_binary80("3", "[6e901d7a]", "[4047fffffabb56818c80]", "0x00")
+ self.bid32_to_binary80("4", "[6e901d7a]", "[4047fffffabb56818c80]", "0x00")
+ self.bid32_to_binary80("0", "[6f5892a3]", "[405c813bf3c1c802b3d0]", "0x20")
+ self.bid32_to_binary80("1", "[6f5892a3]", "[405c813bf3c1c802b3cf]", "0x20")
+ self.bid32_to_binary80("2", "[6f5892a3]", "[405c813bf3c1c802b3d0]", "0x20")
+ self.bid32_to_binary80("3", "[6f5892a3]", "[405c813bf3c1c802b3cf]", "0x20")
+ self.bid32_to_binary80("4", "[6f5892a3]", "[405c813bf3c1c802b3d0]", "0x20")
+ self.bid32_to_binary80("0", "[6f98701b]", "[4062c9bff93a48227eac]", "0x20")
+ self.bid32_to_binary80("1", "[6f98701b]", "[4062c9bff93a48227eab]", "0x20")
+ self.bid32_to_binary80("2", "[6f98701b]", "[4062c9bff93a48227eac]", "0x20")
+ self.bid32_to_binary80("3", "[6f98701b]", "[4062c9bff93a48227eab]", "0x20")
+ self.bid32_to_binary80("4", "[6f98701b]", "[4062c9bff93a48227eac]", "0x20")
+ self.bid32_to_binary80("0", "[6fd52853]", "[40699a39aa768dc0f859]", "0x20")
+ self.bid32_to_binary80("1", "[6fd52853]", "[40699a39aa768dc0f858]", "0x20")
+ self.bid32_to_binary80("2", "[6fd52853]", "[40699a39aa768dc0f859]", "0x20")
+ self.bid32_to_binary80("3", "[6fd52853]", "[40699a39aa768dc0f858]", "0x20")
+ self.bid32_to_binary80("4", "[6fd52853]", "[40699a39aa768dc0f859]", "0x20")
+ self.bid32_to_binary80("0", "[700a494b]", "[406fdf69df99fddd33be]", "0x20")
+ self.bid32_to_binary80("1", "[700a494b]", "[406fdf69df99fddd33bd]", "0x20")
+ self.bid32_to_binary80("2", "[700a494b]", "[406fdf69df99fddd33be]", "0x20")
+ self.bid32_to_binary80("3", "[700a494b]", "[406fdf69df99fddd33bd]", "0x20")
+ self.bid32_to_binary80("4", "[700a494b]", "[406fdf69df99fddd33be]", "0x20")
+ self.bid32_to_binary80("0", "[71296142]", "[408dceb4d1593d6fc040]", "0x20")
+ self.bid32_to_binary80("1", "[71296142]", "[408dceb4d1593d6fc040]", "0x20")
+ self.bid32_to_binary80("2", "[71296142]", "[408dceb4d1593d6fc041]", "0x20")
+ self.bid32_to_binary80("3", "[71296142]", "[408dceb4d1593d6fc040]", "0x20")
+ self.bid32_to_binary80("4", "[71296142]", "[408dceb4d1593d6fc040]", "0x20")
+ self.bid32_to_binary80("0", "[71696142]", "[4094a17d438db7ff4e32]", "0x20")
+ self.bid32_to_binary80("1", "[71696142]", "[4094a17d438db7ff4e32]", "0x20")
+ self.bid32_to_binary80("2", "[71696142]", "[4094a17d438db7ff4e33]", "0x20")
+ self.bid32_to_binary80("3", "[71696142]", "[4094a17d438db7ff4e32]", "0x20")
+ self.bid32_to_binary80("4", "[71696142]", "[4094a17d438db7ff4e32]", "0x20")
+ self.bid32_to_binary80("0", "[7691cf0c]", "[411cc4c12abd32cdc49e]", "0x20")
+ self.bid32_to_binary80("1", "[7691cf0c]", "[411cc4c12abd32cdc49d]", "0x20")
+ self.bid32_to_binary80("2", "[7691cf0c]", "[411cc4c12abd32cdc49e]", "0x20")
+ self.bid32_to_binary80("3", "[7691cf0c]", "[411cc4c12abd32cdc49d]", "0x20")
+ self.bid32_to_binary80("4", "[7691cf0c]", "[411cc4c12abd32cdc49e]", "0x20")
+ self.bid32_to_binary80("0", "[77f8967f]", "[414195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("1", "[77f8967f]", "[414195d049f2e308a39a]", "0x20")
+ self.bid32_to_binary80("2", "[77f8967f]", "[414195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("3", "[77f8967f]", "[414195d049f2e308a39a]", "0x20")
+ self.bid32_to_binary80("4", "[77f8967f]", "[414195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("0", "[78000000]", "[7fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[78000000]", "[7fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[78000000]", "[7fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[78000000]", "[7fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[78000000]", "[7fff8000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[7c0c2000]", "[7ffff080000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[7e0c2000]", "[7ffff080000000000000]", "0x01")
+ self.bid32_to_binary80("0", "[80000001]", "[beafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("1", "[80000001]", "[beafb32df8e9f3546565]", "0x20")
+ self.bid32_to_binary80("2", "[80000001]", "[beafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("3", "[80000001]", "[beafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("4", "[80000001]", "[beafb32df8e9f3546564]", "0x20")
+ self.bid32_to_binary80("0", "[8000002a]", "[beb4eb2c56b30f5ec514]", "0x20")
+ self.bid32_to_binary80("1", "[8000002a]", "[beb4eb2c56b30f5ec514]", "0x20")
+ self.bid32_to_binary80("2", "[8000002a]", "[beb4eb2c56b30f5ec513]", "0x20")
+ self.bid32_to_binary80("3", "[8000002a]", "[beb4eb2c56b30f5ec513]", "0x20")
+ self.bid32_to_binary80("4", "[8000002a]", "[beb4eb2c56b30f5ec514]", "0x20")
+ self.bid32_to_binary80("0", "[80002448]", "[bebccb26df7740226ff5]", "0x20")
+ self.bid32_to_binary80("1", "[80002448]", "[bebccb26df7740226ff5]", "0x20")
+ self.bid32_to_binary80("2", "[80002448]", "[bebccb26df7740226ff4]", "0x20")
+ self.bid32_to_binary80("3", "[80002448]", "[bebccb26df7740226ff4]", "0x20")
+ self.bid32_to_binary80("4", "[80002448]", "[bebccb26df7740226ff5]", "0x20")
+ self.bid32_to_binary80("0", "[800c94f6]", "[bec38ce6a6d0bd9715e7]", "0x20")
+ self.bid32_to_binary80("1", "[800c94f6]", "[bec38ce6a6d0bd9715e7]", "0x20")
+ self.bid32_to_binary80("2", "[800c94f6]", "[bec38ce6a6d0bd9715e6]", "0x20")
+ self.bid32_to_binary80("3", "[800c94f6]", "[bec38ce6a6d0bd9715e6]", "0x20")
+ self.bid32_to_binary80("4", "[800c94f6]", "[bec38ce6a6d0bd9715e7]", "0x20")
+ self.bid32_to_binary80("0", "[800f423f]", "[bec3aae0f8831d44094d]", "0x20")
+ self.bid32_to_binary80("1", "[800f423f]", "[bec3aae0f8831d44094d]", "0x20")
+ self.bid32_to_binary80("2", "[800f423f]", "[bec3aae0f8831d44094c]", "0x20")
+ self.bid32_to_binary80("3", "[800f423f]", "[bec3aae0f8831d44094c]", "0x20")
+ self.bid32_to_binary80("4", "[800f423f]", "[bec3aae0f8831d44094d]", "0x20")
+ self.bid32_to_binary80("0", "[80e6fc08]", "[bec9b433cc13309029b3]", "0x20")
+ self.bid32_to_binary80("1", "[80e6fc08]", "[bec9b433cc13309029b3]", "0x20")
+ self.bid32_to_binary80("2", "[80e6fc08]", "[bec9b433cc13309029b2]", "0x20")
+ self.bid32_to_binary80("3", "[80e6fc08]", "[bec9b433cc13309029b2]", "0x20")
+ self.bid32_to_binary80("4", "[80e6fc08]", "[bec9b433cc13309029b3]", "0x20")
+ self.bid32_to_binary80("0", "[81f57b63]", "[bed0a09a01d2e4316a7f]", "0x20")
+ self.bid32_to_binary80("1", "[81f57b63]", "[bed0a09a01d2e4316a7f]", "0x20")
+ self.bid32_to_binary80("2", "[81f57b63]", "[bed0a09a01d2e4316a7e]", "0x20")
+ self.bid32_to_binary80("3", "[81f57b63]", "[bed0a09a01d2e4316a7e]", "0x20")
+ self.bid32_to_binary80("4", "[81f57b63]", "[bed0a09a01d2e4316a7f]", "0x20")
+ self.bid32_to_binary80("0", "[82bd6196]", "[bed6831c040ec465338e]", "0x20")
+ self.bid32_to_binary80("1", "[82bd6196]", "[bed6831c040ec465338e]", "0x20")
+ self.bid32_to_binary80("2", "[82bd6196]", "[bed6831c040ec465338d]", "0x20")
+ self.bid32_to_binary80("3", "[82bd6196]", "[bed6831c040ec465338d]", "0x20")
+ self.bid32_to_binary80("4", "[82bd6196]", "[bed6831c040ec465338e]", "0x20")
+ self.bid32_to_binary80("0", "[83000001]", "[bec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("1", "[83000001]", "[bec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("2", "[83000001]", "[bec3aae103b5fcd2a881]", "0x20")
+ self.bid32_to_binary80("3", "[83000001]", "[bec3aae103b5fcd2a881]", "0x20")
+ self.bid32_to_binary80("4", "[83000001]", "[bec3aae103b5fcd2a882]", "0x20")
+ self.bid32_to_binary80("0", "[83800001]", "[bec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("1", "[83800001]", "[bec6d59944a37c0752a3]", "0x20")
+ self.bid32_to_binary80("2", "[83800001]", "[bec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("3", "[83800001]", "[bec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("4", "[83800001]", "[bec6d59944a37c0752a2]", "0x20")
+ self.bid32_to_binary80("0", "[8395073f]", "[bedb8c5cf3180c49cc03]", "0x20")
+ self.bid32_to_binary80("1", "[8395073f]", "[bedb8c5cf3180c49cc03]", "0x20")
+ self.bid32_to_binary80("2", "[8395073f]", "[bedb8c5cf3180c49cc02]", "0x20")
+ self.bid32_to_binary80("3", "[8395073f]", "[bedb8c5cf3180c49cc02]", "0x20")
+ self.bid32_to_binary80("4", "[8395073f]", "[bedb8c5cf3180c49cc03]", "0x20")
+ self.bid32_to_binary80("0", "[850302ef]", "[bee29d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("1", "[850302ef]", "[bee29d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("2", "[850302ef]", "[bee29d0abd02e3b42e1e]", "0x20")
+ self.bid32_to_binary80("3", "[850302ef]", "[bee29d0abd02e3b42e1e]", "0x20")
+ self.bid32_to_binary80("4", "[850302ef]", "[bee29d0abd02e3b42e1f]", "0x20")
+ self.bid32_to_binary80("0", "[8586b551]", "[bee6daa3c3cc53047868]", "0x20")
+ self.bid32_to_binary80("1", "[8586b551]", "[bee6daa3c3cc53047869]", "0x20")
+ self.bid32_to_binary80("2", "[8586b551]", "[bee6daa3c3cc53047868]", "0x20")
+ self.bid32_to_binary80("3", "[8586b551]", "[bee6daa3c3cc53047868]", "0x20")
+ self.bid32_to_binary80("4", "[8586b551]", "[bee6daa3c3cc53047868]", "0x20")
+ self.bid32_to_binary80("0", "[86918b6d]", "[beeedf5e79713b1833a4]", "0x20")
+ self.bid32_to_binary80("1", "[86918b6d]", "[beeedf5e79713b1833a5]", "0x20")
+ self.bid32_to_binary80("2", "[86918b6d]", "[beeedf5e79713b1833a4]", "0x20")
+ self.bid32_to_binary80("3", "[86918b6d]", "[beeedf5e79713b1833a4]", "0x20")
+ self.bid32_to_binary80("4", "[86918b6d]", "[beeedf5e79713b1833a4]", "0x20")
+ self.bid32_to_binary80("0", "[8782301b]", "[bef2ae188de76300b570]", "0x20")
+ self.bid32_to_binary80("1", "[8782301b]", "[bef2ae188de76300b570]", "0x20")
+ self.bid32_to_binary80("2", "[8782301b]", "[bef2ae188de76300b56f]", "0x20")
+ self.bid32_to_binary80("3", "[8782301b]", "[bef2ae188de76300b56f]", "0x20")
+ self.bid32_to_binary80("4", "[8782301b]", "[bef2ae188de76300b570]", "0x20")
+ self.bid32_to_binary80("0", "[88846036]", "[befa88032edcc5588dbf]", "0x20")
+ self.bid32_to_binary80("1", "[88846036]", "[befa88032edcc5588dc0]", "0x20")
+ self.bid32_to_binary80("2", "[88846036]", "[befa88032edcc5588dbf]", "0x20")
+ self.bid32_to_binary80("3", "[88846036]", "[befa88032edcc5588dbf]", "0x20")
+ self.bid32_to_binary80("4", "[88846036]", "[befa88032edcc5588dbf]", "0x20")
+ self.bid32_to_binary80("0", "[89835834]", "[bf00a26efaba8e0155a3]", "0x20")
+ self.bid32_to_binary80("1", "[89835834]", "[bf00a26efaba8e0155a3]", "0x20")
+ self.bid32_to_binary80("2", "[89835834]", "[bf00a26efaba8e0155a2]", "0x20")
+ self.bid32_to_binary80("3", "[89835834]", "[bf00a26efaba8e0155a2]", "0x20")
+ self.bid32_to_binary80("4", "[89835834]", "[bf00a26efaba8e0155a3]", "0x20")
+ self.bid32_to_binary80("0", "[8a6bf47e]", "[bf08ccce3a6a6ce1d6a4]", "0x20")
+ self.bid32_to_binary80("1", "[8a6bf47e]", "[bf08ccce3a6a6ce1d6a4]", "0x20")
+ self.bid32_to_binary80("2", "[8a6bf47e]", "[bf08ccce3a6a6ce1d6a3]", "0x20")
+ self.bid32_to_binary80("3", "[8a6bf47e]", "[bf08ccce3a6a6ce1d6a3]", "0x20")
+ self.bid32_to_binary80("4", "[8a6bf47e]", "[bf08ccce3a6a6ce1d6a4]", "0x20")
+ self.bid32_to_binary80("0", "[8b186ea4]", "[bf0d90d8fb12d906b0d8]", "0x20")
+ self.bid32_to_binary80("1", "[8b186ea4]", "[bf0d90d8fb12d906b0d9]", "0x20")
+ self.bid32_to_binary80("2", "[8b186ea4]", "[bf0d90d8fb12d906b0d8]", "0x20")
+ self.bid32_to_binary80("3", "[8b186ea4]", "[bf0d90d8fb12d906b0d8]", "0x20")
+ self.bid32_to_binary80("4", "[8b186ea4]", "[bf0d90d8fb12d906b0d8]", "0x20")
+ self.bid32_to_binary80("0", "[8c0ca175]", "[bf12ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("1", "[8c0ca175]", "[bf12ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("2", "[8c0ca175]", "[bf12ea0166331944e65f]", "0x20")
+ self.bid32_to_binary80("3", "[8c0ca175]", "[bf12ea0166331944e65f]", "0x20")
+ self.bid32_to_binary80("4", "[8c0ca175]", "[bf12ea0166331944e660]", "0x20")
+ self.bid32_to_binary80("0", "[8e5623eb]", "[bf22f383c95544305354]", "0x20")
+ self.bid32_to_binary80("1", "[8e5623eb]", "[bf22f383c95544305355]", "0x20")
+ self.bid32_to_binary80("2", "[8e5623eb]", "[bf22f383c95544305354]", "0x20")
+ self.bid32_to_binary80("3", "[8e5623eb]", "[bf22f383c95544305354]", "0x20")
+ self.bid32_to_binary80("4", "[8e5623eb]", "[bf22f383c95544305354]", "0x20")
+ self.bid32_to_binary80("0", "[8f7195ef]", "[bf29fadc53b7e7c2ebf3]", "0x20")
+ self.bid32_to_binary80("1", "[8f7195ef]", "[bf29fadc53b7e7c2ebf3]", "0x20")
+ self.bid32_to_binary80("2", "[8f7195ef]", "[bf29fadc53b7e7c2ebf2]", "0x20")
+ self.bid32_to_binary80("3", "[8f7195ef]", "[bf29fadc53b7e7c2ebf2]", "0x20")
+ self.bid32_to_binary80("4", "[8f7195ef]", "[bf29fadc53b7e7c2ebf3]", "0x20")
+ self.bid32_to_binary80("0", "[903cb6b8]", "[bf2fd183f3804540fa08]", "0x20")
+ self.bid32_to_binary80("1", "[903cb6b8]", "[bf2fd183f3804540fa08]", "0x20")
+ self.bid32_to_binary80("2", "[903cb6b8]", "[bf2fd183f3804540fa07]", "0x20")
+ self.bid32_to_binary80("3", "[903cb6b8]", "[bf2fd183f3804540fa07]", "0x20")
+ self.bid32_to_binary80("4", "[903cb6b8]", "[bf2fd183f3804540fa08]", "0x20")
+ self.bid32_to_binary80("0", "[911edaba]", "[bf35a65dd9707ceff5b6]", "0x20")
+ self.bid32_to_binary80("1", "[911edaba]", "[bf35a65dd9707ceff5b6]", "0x20")
+ self.bid32_to_binary80("2", "[911edaba]", "[bf35a65dd9707ceff5b5]", "0x20")
+ self.bid32_to_binary80("3", "[911edaba]", "[bf35a65dd9707ceff5b5]", "0x20")
+ self.bid32_to_binary80("4", "[911edaba]", "[bf35a65dd9707ceff5b6]", "0x20")
+ self.bid32_to_binary80("0", "[921d4835]", "[bf3bf6b36b576acfd91f]", "0x20")
+ self.bid32_to_binary80("1", "[921d4835]", "[bf3bf6b36b576acfd920]", "0x20")
+ self.bid32_to_binary80("2", "[921d4835]", "[bf3bf6b36b576acfd91f]", "0x20")
+ self.bid32_to_binary80("3", "[921d4835]", "[bf3bf6b36b576acfd91f]", "0x20")
+ self.bid32_to_binary80("4", "[921d4835]", "[bf3bf6b36b576acfd91f]", "0x20")
+ self.bid32_to_binary80("0", "[9307d52e]", "[bf40ce38845bb7273a85]", "0x20")
+ self.bid32_to_binary80("1", "[9307d52e]", "[bf40ce38845bb7273a85]", "0x20")
+ self.bid32_to_binary80("2", "[9307d52e]", "[bf40ce38845bb7273a84]", "0x20")
+ self.bid32_to_binary80("3", "[9307d52e]", "[bf40ce38845bb7273a84]", "0x20")
+ self.bid32_to_binary80("4", "[9307d52e]", "[bf40ce38845bb7273a85]", "0x20")
+ self.bid32_to_binary80("0", "[940991c8]", "[bf47c4d513e04f2d111a]", "0x20")
+ self.bid32_to_binary80("1", "[940991c8]", "[bf47c4d513e04f2d111a]", "0x20")
+ self.bid32_to_binary80("2", "[940991c8]", "[bf47c4d513e04f2d1119]", "0x20")
+ self.bid32_to_binary80("3", "[940991c8]", "[bf47c4d513e04f2d1119]", "0x20")
+ self.bid32_to_binary80("4", "[940991c8]", "[bf47c4d513e04f2d111a]", "0x20")
+ self.bid32_to_binary80("0", "[9505d9e7]", "[bf4dbc0cb9aa51ffb73c]", "0x20")
+ self.bid32_to_binary80("1", "[9505d9e7]", "[bf4dbc0cb9aa51ffb73c]", "0x20")
+ self.bid32_to_binary80("2", "[9505d9e7]", "[bf4dbc0cb9aa51ffb73b]", "0x20")
+ self.bid32_to_binary80("3", "[9505d9e7]", "[bf4dbc0cb9aa51ffb73b]", "0x20")
+ self.bid32_to_binary80("4", "[9505d9e7]", "[bf4dbc0cb9aa51ffb73c]", "0x20")
+ self.bid32_to_binary80("0", "[9603e05a]", "[bf53c2a8bbd51dfcd6ae]", "0x20")
+ self.bid32_to_binary80("1", "[9603e05a]", "[bf53c2a8bbd51dfcd6ae]", "0x20")
+ self.bid32_to_binary80("2", "[9603e05a]", "[bf53c2a8bbd51dfcd6ad]", "0x20")
+ self.bid32_to_binary80("3", "[9603e05a]", "[bf53c2a8bbd51dfcd6ad]", "0x20")
+ self.bid32_to_binary80("4", "[9603e05a]", "[bf53c2a8bbd51dfcd6ae]", "0x20")
+ self.bid32_to_binary80("0", "[97e0a142]", "[bf629415bcbf18c96ed6]", "0x20")
+ self.bid32_to_binary80("1", "[97e0a142]", "[bf629415bcbf18c96ed7]", "0x20")
+ self.bid32_to_binary80("2", "[97e0a142]", "[bf629415bcbf18c96ed6]", "0x20")
+ self.bid32_to_binary80("3", "[97e0a142]", "[bf629415bcbf18c96ed6]", "0x20")
+ self.bid32_to_binary80("4", "[97e0a142]", "[bf629415bcbf18c96ed6]", "0x20")
+ self.bid32_to_binary80("0", "[98cd3fce]", "[bf68b8f9a5001079be3a]", "0x20")
+ self.bid32_to_binary80("1", "[98cd3fce]", "[bf68b8f9a5001079be3a]", "0x20")
+ self.bid32_to_binary80("2", "[98cd3fce]", "[bf68b8f9a5001079be39]", "0x20")
+ self.bid32_to_binary80("3", "[98cd3fce]", "[bf68b8f9a5001079be39]", "0x20")
+ self.bid32_to_binary80("4", "[98cd3fce]", "[bf68b8f9a5001079be3a]", "0x20")
+ self.bid32_to_binary80("0", "[99c542e5]", "[bf6f8191938060568174]", "0x20")
+ self.bid32_to_binary80("1", "[99c542e5]", "[bf6f8191938060568175]", "0x20")
+ self.bid32_to_binary80("2", "[99c542e5]", "[bf6f8191938060568174]", "0x20")
+ self.bid32_to_binary80("3", "[99c542e5]", "[bf6f8191938060568174]", "0x20")
+ self.bid32_to_binary80("4", "[99c542e5]", "[bf6f8191938060568174]", "0x20")
+ self.bid32_to_binary80("0", "[9bef45e8]", "[bf7cfe1a4f733938064c]", "0x20")
+ self.bid32_to_binary80("1", "[9bef45e8]", "[bf7cfe1a4f733938064c]", "0x20")
+ self.bid32_to_binary80("2", "[9bef45e8]", "[bf7cfe1a4f733938064b]", "0x20")
+ self.bid32_to_binary80("3", "[9bef45e8]", "[bf7cfe1a4f733938064b]", "0x20")
+ self.bid32_to_binary80("4", "[9bef45e8]", "[bf7cfe1a4f733938064c]", "0x20")
+ self.bid32_to_binary80("0", "[9ca03047]", "[bf81e5b49589959db96e]", "0x20")
+ self.bid32_to_binary80("1", "[9ca03047]", "[bf81e5b49589959db96e]", "0x20")
+ self.bid32_to_binary80("2", "[9ca03047]", "[bf81e5b49589959db96d]", "0x20")
+ self.bid32_to_binary80("3", "[9ca03047]", "[bf81e5b49589959db96d]", "0x20")
+ self.bid32_to_binary80("4", "[9ca03047]", "[bf81e5b49589959db96e]", "0x20")
+ self.bid32_to_binary80("0", "[9d836169]", "[bf8596c69530a4f32464]", "0x20")
+ self.bid32_to_binary80("1", "[9d836169]", "[bf8596c69530a4f32464]", "0x20")
+ self.bid32_to_binary80("2", "[9d836169]", "[bf8596c69530a4f32463]", "0x20")
+ self.bid32_to_binary80("3", "[9d836169]", "[bf8596c69530a4f32463]", "0x20")
+ self.bid32_to_binary80("4", "[9d836169]", "[bf8596c69530a4f32464]", "0x20")
+ self.bid32_to_binary80("0", "[9e8ad150]", "[bf8dbc783a7cce2fed7d]", "0x20")
+ self.bid32_to_binary80("1", "[9e8ad150]", "[bf8dbc783a7cce2fed7d]", "0x20")
+ self.bid32_to_binary80("2", "[9e8ad150]", "[bf8dbc783a7cce2fed7c]", "0x20")
+ self.bid32_to_binary80("3", "[9e8ad150]", "[bf8dbc783a7cce2fed7c]", "0x20")
+ self.bid32_to_binary80("4", "[9e8ad150]", "[bf8dbc783a7cce2fed7d]", "0x20")
+ self.bid32_to_binary80("0", "[9f8c94e3]", "[bf94ab40703120836057]", "0x20")
+ self.bid32_to_binary80("1", "[9f8c94e3]", "[bf94ab40703120836057]", "0x20")
+ self.bid32_to_binary80("2", "[9f8c94e3]", "[bf94ab40703120836056]", "0x20")
+ self.bid32_to_binary80("3", "[9f8c94e3]", "[bf94ab40703120836056]", "0x20")
+ self.bid32_to_binary80("4", "[9f8c94e3]", "[bf94ab40703120836057]", "0x20")
+ self.bid32_to_binary80("0", "[a089dc81]", "[bf9ad1ba42a1df9fb3db]", "0x20")
+ self.bid32_to_binary80("1", "[a089dc81]", "[bf9ad1ba42a1df9fb3db]", "0x20")
+ self.bid32_to_binary80("2", "[a089dc81]", "[bf9ad1ba42a1df9fb3da]", "0x20")
+ self.bid32_to_binary80("3", "[a089dc81]", "[bf9ad1ba42a1df9fb3da]", "0x20")
+ self.bid32_to_binary80("4", "[a089dc81]", "[bf9ad1ba42a1df9fb3db]", "0x20")
+ self.bid32_to_binary80("0", "[a1863ac2]", "[bfa0cf02eb13dc36e0e9]", "0x20")
+ self.bid32_to_binary80("1", "[a1863ac2]", "[bfa0cf02eb13dc36e0ea]", "0x20")
+ self.bid32_to_binary80("2", "[a1863ac2]", "[bfa0cf02eb13dc36e0e9]", "0x20")
+ self.bid32_to_binary80("3", "[a1863ac2]", "[bfa0cf02eb13dc36e0e9]", "0x20")
+ self.bid32_to_binary80("4", "[a1863ac2]", "[bfa0cf02eb13dc36e0e9]", "0x20")
+ self.bid32_to_binary80("0", "[a284ec38]", "[bfa6ff9a4c6ee1a7a327]", "0x20")
+ self.bid32_to_binary80("1", "[a284ec38]", "[bfa6ff9a4c6ee1a7a328]", "0x20")
+ self.bid32_to_binary80("2", "[a284ec38]", "[bfa6ff9a4c6ee1a7a327]", "0x20")
+ self.bid32_to_binary80("3", "[a284ec38]", "[bfa6ff9a4c6ee1a7a327]", "0x20")
+ self.bid32_to_binary80("4", "[a284ec38]", "[bfa6ff9a4c6ee1a7a327]", "0x20")
+ self.bid32_to_binary80("0", "[a37ac6d6]", "[bfaef9054f11e79e9034]", "0x20")
+ self.bid32_to_binary80("1", "[a37ac6d6]", "[bfaef9054f11e79e9035]", "0x20")
+ self.bid32_to_binary80("2", "[a37ac6d6]", "[bfaef9054f11e79e9034]", "0x20")
+ self.bid32_to_binary80("3", "[a37ac6d6]", "[bfaef9054f11e79e9034]", "0x20")
+ self.bid32_to_binary80("4", "[a37ac6d6]", "[bfaef9054f11e79e9034]", "0x20")
+ self.bid32_to_binary80("0", "[a48d2919]", "[bfb5d0897bbb542b42e2]", "0x20")
+ self.bid32_to_binary80("1", "[a48d2919]", "[bfb5d0897bbb542b42e3]", "0x20")
+ self.bid32_to_binary80("2", "[a48d2919]", "[bfb5d0897bbb542b42e2]", "0x20")
+ self.bid32_to_binary80("3", "[a48d2919]", "[bfb5d0897bbb542b42e2]", "0x20")
+ self.bid32_to_binary80("4", "[a48d2919]", "[bfb5d0897bbb542b42e2]", "0x20")
+ self.bid32_to_binary80("0", "[a5044c83]", "[bfb7aa4bc2ba05f01120]", "0x20")
+ self.bid32_to_binary80("1", "[a5044c83]", "[bfb7aa4bc2ba05f01120]", "0x20")
+ self.bid32_to_binary80("2", "[a5044c83]", "[bfb7aa4bc2ba05f0111f]", "0x20")
+ self.bid32_to_binary80("3", "[a5044c83]", "[bfb7aa4bc2ba05f0111f]", "0x20")
+ self.bid32_to_binary80("4", "[a5044c83]", "[bfb7aa4bc2ba05f01120]", "0x20")
+ self.bid32_to_binary80("0", "[a77af9b1]", "[bfc9b9d5c977b2a77193]", "0x20")
+ self.bid32_to_binary80("1", "[a77af9b1]", "[bfc9b9d5c977b2a77193]", "0x20")
+ self.bid32_to_binary80("2", "[a77af9b1]", "[bfc9b9d5c977b2a77192]", "0x20")
+ self.bid32_to_binary80("3", "[a77af9b1]", "[bfc9b9d5c977b2a77192]", "0x20")
+ self.bid32_to_binary80("4", "[a77af9b1]", "[bfc9b9d5c977b2a77193]", "0x20")
+ self.bid32_to_binary80("0", "[a868c06d]", "[bfcff7567ec2244a9fdc]", "0x20")
+ self.bid32_to_binary80("1", "[a868c06d]", "[bfcff7567ec2244a9fdc]", "0x20")
+ self.bid32_to_binary80("2", "[a868c06d]", "[bfcff7567ec2244a9fdb]", "0x20")
+ self.bid32_to_binary80("3", "[a868c06d]", "[bfcff7567ec2244a9fdb]", "0x20")
+ self.bid32_to_binary80("4", "[a868c06d]", "[bfcff7567ec2244a9fdc]", "0x20")
+ self.bid32_to_binary80("0", "[a929e692]", "[bfd59a960f3956aea3e9]", "0x20")
+ self.bid32_to_binary80("1", "[a929e692]", "[bfd59a960f3956aea3ea]", "0x20")
+ self.bid32_to_binary80("2", "[a929e692]", "[bfd59a960f3956aea3e9]", "0x20")
+ self.bid32_to_binary80("3", "[a929e692]", "[bfd59a960f3956aea3e9]", "0x20")
+ self.bid32_to_binary80("4", "[a929e692]", "[bfd59a960f3956aea3e9]", "0x20")
+ self.bid32_to_binary80("0", "[aa24dce3]", "[bfdbd47ff2bb76052aca]", "0x20")
+ self.bid32_to_binary80("1", "[aa24dce3]", "[bfdbd47ff2bb76052aca]", "0x20")
+ self.bid32_to_binary80("2", "[aa24dce3]", "[bfdbd47ff2bb76052ac9]", "0x20")
+ self.bid32_to_binary80("3", "[aa24dce3]", "[bfdbd47ff2bb76052ac9]", "0x20")
+ self.bid32_to_binary80("4", "[aa24dce3]", "[bfdbd47ff2bb76052aca]", "0x20")
+ self.bid32_to_binary80("0", "[ab1b9a0d]", "[bfe1f89d53cbf427e7dd]", "0x20")
+ self.bid32_to_binary80("1", "[ab1b9a0d]", "[bfe1f89d53cbf427e7de]", "0x20")
+ self.bid32_to_binary80("2", "[ab1b9a0d]", "[bfe1f89d53cbf427e7dd]", "0x20")
+ self.bid32_to_binary80("3", "[ab1b9a0d]", "[bfe1f89d53cbf427e7dd]", "0x20")
+ self.bid32_to_binary80("4", "[ab1b9a0d]", "[bfe1f89d53cbf427e7dd]", "0x20")
+ self.bid32_to_binary80("0", "[ac047c26]", "[bfe5fc7b02cd09d4aaf6]", "0x20")
+ self.bid32_to_binary80("1", "[ac047c26]", "[bfe5fc7b02cd09d4aaf6]", "0x20")
+ self.bid32_to_binary80("2", "[ac047c26]", "[bfe5fc7b02cd09d4aaf5]", "0x20")
+ self.bid32_to_binary80("3", "[ac047c26]", "[bfe5fc7b02cd09d4aaf5]", "0x20")
+ self.bid32_to_binary80("4", "[ac047c26]", "[bfe5fc7b02cd09d4aaf6]", "0x20")
+ self.bid32_to_binary80("0", "[ad08680d]", "[bfedb8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("1", "[ad08680d]", "[bfedb8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("2", "[ad08680d]", "[bfedb8dc18dee2e8b1c9]", "0x20")
+ self.bid32_to_binary80("3", "[ad08680d]", "[bfedb8dc18dee2e8b1c9]", "0x20")
+ self.bid32_to_binary80("4", "[ad08680d]", "[bfedb8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("0", "[ae056150]", "[bff3b8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("1", "[ae056150]", "[bff3b8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("2", "[ae056150]", "[bff3b8dc18dee2e8b1c9]", "0x20")
+ self.bid32_to_binary80("3", "[ae056150]", "[bff3b8dc18dee2e8b1c9]", "0x20")
+ self.bid32_to_binary80("4", "[ae056150]", "[bff3b8dc18dee2e8b1ca]", "0x20")
+ self.bid32_to_binary80("0", "[aecd7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[aecd7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[aecd7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[aecd7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[aecd7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[af04845c]", "[bff9f281923bd746a352]", "0x20")
+ self.bid32_to_binary80("1", "[af04845c]", "[bff9f281923bd746a353]", "0x20")
+ self.bid32_to_binary80("2", "[af04845c]", "[bff9f281923bd746a352]", "0x20")
+ self.bid32_to_binary80("3", "[af04845c]", "[bff9f281923bd746a352]", "0x20")
+ self.bid32_to_binary80("4", "[af04845c]", "[bff9f281923bd746a352]", "0x20")
+ self.bid32_to_binary80("0", "[b0061248]", "[c000fea747d805e5f30e]", "0x20")
+ self.bid32_to_binary80("1", "[b0061248]", "[c000fea747d805e5f30f]", "0x20")
+ self.bid32_to_binary80("2", "[b0061248]", "[c000fea747d805e5f30e]", "0x20")
+ self.bid32_to_binary80("3", "[b0061248]", "[c000fea747d805e5f30e]", "0x20")
+ self.bid32_to_binary80("4", "[b0061248]", "[c000fea747d805e5f30e]", "0x20")
+ self.bid32_to_binary80("0", "[b103e7d9]", "[c006fff604189374bc6a]", "0x20")
+ self.bid32_to_binary80("1", "[b103e7d9]", "[c006fff604189374bc6b]", "0x20")
+ self.bid32_to_binary80("2", "[b103e7d9]", "[c006fff604189374bc6a]", "0x20")
+ self.bid32_to_binary80("3", "[b103e7d9]", "[c006fff604189374bc6a]", "0x20")
+ self.bid32_to_binary80("4", "[b103e7d9]", "[c006fff604189374bc6a]", "0x20")
+ self.bid32_to_binary80("0", "[b200000f]", "[bfffc000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b200000f]", "[bfffc000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b200000f]", "[bfffc000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b200000f]", "[bfffc000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b200000f]", "[bfffc000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b2800001]", "[bfff8000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b2800001]", "[bfff8000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b2800001]", "[bfff8000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b2800001]", "[bfff8000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b2800001]", "[bfff8000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b2800040]", "[c0058000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b2800040]", "[c0058000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b2800040]", "[c0058000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b2800040]", "[c0058000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b2800040]", "[c0058000000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b28003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b28003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b28003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b28003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b28003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b28003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b28003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b28003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b28003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b28003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b30f4240]", "[c0169896800000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b30f4240]", "[c0169896800000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b30f4240]", "[c0169896800000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b30f4240]", "[c0169896800000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b30f4240]", "[c0169896800000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b40f4240]", "[c01cee6b280000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b40f4240]", "[c01cee6b280000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b40f4240]", "[c01cee6b280000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b40f4240]", "[c01cee6b280000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b40f4240]", "[c01cee6b280000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b50f4240]", "[c023ba43b74000000000]", "0x00")
+ self.bid32_to_binary80("1", "[b50f4240]", "[c023ba43b74000000000]", "0x00")
+ self.bid32_to_binary80("2", "[b50f4240]", "[c023ba43b74000000000]", "0x00")
+ self.bid32_to_binary80("3", "[b50f4240]", "[c023ba43b74000000000]", "0x00")
+ self.bid32_to_binary80("4", "[b50f4240]", "[c023ba43b74000000000]", "0x00")
+ self.bid32_to_binary80("0", "[b6d5e63b]", "[c02ffffffe686d800000]", "0x00")
+ self.bid32_to_binary80("1", "[b6d5e63b]", "[c02ffffffe686d800000]", "0x00")
+ self.bid32_to_binary80("2", "[b6d5e63b]", "[c02ffffffe686d800000]", "0x00")
+ self.bid32_to_binary80("3", "[b6d5e63b]", "[c02ffffffe686d800000]", "0x00")
+ self.bid32_to_binary80("4", "[b6d5e63b]", "[c02ffffffe686d800000]", "0x00")
+ self.bid32_to_binary80("0", "[b7b6f9bf]", "[c035fffffcbb46380000]", "0x00")
+ self.bid32_to_binary80("1", "[b7b6f9bf]", "[c035fffffcbb46380000]", "0x00")
+ self.bid32_to_binary80("2", "[b7b6f9bf]", "[c035fffffcbb46380000]", "0x00")
+ self.bid32_to_binary80("3", "[b7b6f9bf]", "[c035fffffcbb46380000]", "0x00")
+ self.bid32_to_binary80("4", "[b7b6f9bf]", "[c035fffffcbb46380000]", "0x00")
+ self.bid32_to_binary80("0", "[b8a32f33]", "[c03bffffffeed6918000]", "0x00")
+ self.bid32_to_binary80("1", "[b8a32f33]", "[c03bffffffeed6918000]", "0x00")
+ self.bid32_to_binary80("2", "[b8a32f33]", "[c03bffffffeed6918000]", "0x00")
+ self.bid32_to_binary80("3", "[b8a32f33]", "[c03bffffffeed6918000]", "0x00")
+ self.bid32_to_binary80("4", "[b8a32f33]", "[c03bffffffeed6918000]", "0x00")
+ self.bid32_to_binary80("0", "[b996849b]", "[c041fffffa0570609800]", "0x00")
+ self.bid32_to_binary80("1", "[b996849b]", "[c041fffffa0570609800]", "0x00")
+ self.bid32_to_binary80("2", "[b996849b]", "[c041fffffa0570609800]", "0x00")
+ self.bid32_to_binary80("3", "[b996849b]", "[c041fffffa0570609800]", "0x00")
+ self.bid32_to_binary80("4", "[b996849b]", "[c041fffffa0570609800]", "0x00")
+ self.bid32_to_binary80("0", "[bb5c3bcc]", "[c04dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("1", "[bb5c3bcc]", "[c04dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("2", "[bb5c3bcc]", "[c04dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("3", "[bb5c3bcc]", "[c04dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("4", "[bb5c3bcc]", "[c04dffffe6bf6e22aff0]", "0x00")
+ self.bid32_to_binary80("0", "[bc3b0790]", "[c053fffff4a024d65754]", "0x00")
+ self.bid32_to_binary80("1", "[bc3b0790]", "[c053fffff4a024d65754]", "0x00")
+ self.bid32_to_binary80("2", "[bc3b0790]", "[c053fffff4a024d65754]", "0x00")
+ self.bid32_to_binary80("3", "[bc3b0790]", "[c053fffff4a024d65754]", "0x00")
+ self.bid32_to_binary80("4", "[bc3b0790]", "[c053fffff4a024d65754]", "0x00")
+ self.bid32_to_binary80("0", "[c13c9dfa]", "[c0759904e14fb5e066db]", "0x20")
+ self.bid32_to_binary80("1", "[c13c9dfa]", "[c0759904e14fb5e066dc]", "0x20")
+ self.bid32_to_binary80("2", "[c13c9dfa]", "[c0759904e14fb5e066db]", "0x20")
+ self.bid32_to_binary80("3", "[c13c9dfa]", "[c0759904e14fb5e066db]", "0x20")
+ self.bid32_to_binary80("4", "[c13c9dfa]", "[c0759904e14fb5e066db]", "0x20")
+ self.bid32_to_binary80("0", "[c22ff974]", "[c07bbd39ca88ae4dbdcb]", "0x20")
+ self.bid32_to_binary80("1", "[c22ff974]", "[c07bbd39ca88ae4dbdcb]", "0x20")
+ self.bid32_to_binary80("2", "[c22ff974]", "[c07bbd39ca88ae4dbdca]", "0x20")
+ self.bid32_to_binary80("3", "[c22ff974]", "[c07bbd39ca88ae4dbdca]", "0x20")
+ self.bid32_to_binary80("4", "[c22ff974]", "[c07bbd39ca88ae4dbdcb]", "0x20")
+ self.bid32_to_binary80("0", "[c313f10a]", "[c080f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("1", "[c313f10a]", "[c080f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("2", "[c313f10a]", "[c080f5cc76f1b27895a1]", "0x20")
+ self.bid32_to_binary80("3", "[c313f10a]", "[c080f5cc76f1b27895a1]", "0x20")
+ self.bid32_to_binary80("4", "[c313f10a]", "[c080f5cc76f1b27895a2]", "0x20")
+ self.bid32_to_binary80("0", "[c42d405d]", "[c088d9e0ae29c8496a57]", "0x20")
+ self.bid32_to_binary80("1", "[c42d405d]", "[c088d9e0ae29c8496a57]", "0x20")
+ self.bid32_to_binary80("2", "[c42d405d]", "[c088d9e0ae29c8496a56]", "0x20")
+ self.bid32_to_binary80("3", "[c42d405d]", "[c088d9e0ae29c8496a56]", "0x20")
+ self.bid32_to_binary80("4", "[c42d405d]", "[c088d9e0ae29c8496a57]", "0x20")
+ self.bid32_to_binary80("0", "[c6de06f0]", "[c09aacb3546b8b93fd11]", "0x20")
+ self.bid32_to_binary80("1", "[c6de06f0]", "[c09aacb3546b8b93fd12]", "0x20")
+ self.bid32_to_binary80("2", "[c6de06f0]", "[c09aacb3546b8b93fd11]", "0x20")
+ self.bid32_to_binary80("3", "[c6de06f0]", "[c09aacb3546b8b93fd11]", "0x20")
+ self.bid32_to_binary80("4", "[c6de06f0]", "[c09aacb3546b8b93fd11]", "0x20")
+ self.bid32_to_binary80("0", "[c793e462]", "[c09ee459b0121faa0082]", "0x20")
+ self.bid32_to_binary80("1", "[c793e462]", "[c09ee459b0121faa0082]", "0x20")
+ self.bid32_to_binary80("2", "[c793e462]", "[c09ee459b0121faa0081]", "0x20")
+ self.bid32_to_binary80("3", "[c793e462]", "[c09ee459b0121faa0081]", "0x20")
+ self.bid32_to_binary80("4", "[c793e462]", "[c09ee459b0121faa0082]", "0x20")
+ self.bid32_to_binary80("0", "[c8a8b2a2]", "[c0a6b67ec3eb98ab8e81]", "0x20")
+ self.bid32_to_binary80("1", "[c8a8b2a2]", "[c0a6b67ec3eb98ab8e81]", "0x20")
+ self.bid32_to_binary80("2", "[c8a8b2a2]", "[c0a6b67ec3eb98ab8e80]", "0x20")
+ self.bid32_to_binary80("3", "[c8a8b2a2]", "[c0a6b67ec3eb98ab8e80]", "0x20")
+ self.bid32_to_binary80("4", "[c8a8b2a2]", "[c0a6b67ec3eb98ab8e81]", "0x20")
+ self.bid32_to_binary80("0", "[c9b6e3cd]", "[c0adc04aeac9a5faa3a0]", "0x20")
+ self.bid32_to_binary80("1", "[c9b6e3cd]", "[c0adc04aeac9a5faa3a1]", "0x20")
+ self.bid32_to_binary80("2", "[c9b6e3cd]", "[c0adc04aeac9a5faa3a0]", "0x20")
+ self.bid32_to_binary80("3", "[c9b6e3cd]", "[c0adc04aeac9a5faa3a0]", "0x20")
+ self.bid32_to_binary80("4", "[c9b6e3cd]", "[c0adc04aeac9a5faa3a0]", "0x20")
+ self.bid32_to_binary80("0", "[cac9506a]", "[c0b4c8a77ae6dc274b04]", "0x20")
+ self.bid32_to_binary80("1", "[cac9506a]", "[c0b4c8a77ae6dc274b05]", "0x20")
+ self.bid32_to_binary80("2", "[cac9506a]", "[c0b4c8a77ae6dc274b04]", "0x20")
+ self.bid32_to_binary80("3", "[cac9506a]", "[c0b4c8a77ae6dc274b04]", "0x20")
+ self.bid32_to_binary80("4", "[cac9506a]", "[c0b4c8a77ae6dc274b04]", "0x20")
+ self.bid32_to_binary80("0", "[cb9a6697]", "[c0b9e1cd2f739e889e80]", "0x20")
+ self.bid32_to_binary80("1", "[cb9a6697]", "[c0b9e1cd2f739e889e80]", "0x20")
+ self.bid32_to_binary80("2", "[cb9a6697]", "[c0b9e1cd2f739e889e7f]", "0x20")
+ self.bid32_to_binary80("3", "[cb9a6697]", "[c0b9e1cd2f739e889e7f]", "0x20")
+ self.bid32_to_binary80("4", "[cb9a6697]", "[c0b9e1cd2f739e889e80]", "0x20")
+ self.bid32_to_binary80("0", "[cc9a6697]", "[c0c0b0684d1253dabbd4]", "0x20")
+ self.bid32_to_binary80("1", "[cc9a6697]", "[c0c0b0684d1253dabbd4]", "0x20")
+ self.bid32_to_binary80("2", "[cc9a6697]", "[c0c0b0684d1253dabbd3]", "0x20")
+ self.bid32_to_binary80("3", "[cc9a6697]", "[c0c0b0684d1253dabbd3]", "0x20")
+ self.bid32_to_binary80("4", "[cc9a6697]", "[c0c0b0684d1253dabbd4]", "0x20")
+ self.bid32_to_binary80("0", "[cde2d61a]", "[c0c980fcc884b7a737d3]", "0x20")
+ self.bid32_to_binary80("1", "[cde2d61a]", "[c0c980fcc884b7a737d4]", "0x20")
+ self.bid32_to_binary80("2", "[cde2d61a]", "[c0c980fcc884b7a737d3]", "0x20")
+ self.bid32_to_binary80("3", "[cde2d61a]", "[c0c980fcc884b7a737d3]", "0x20")
+ self.bid32_to_binary80("4", "[cde2d61a]", "[c0c980fcc884b7a737d3]", "0x20")
+ self.bid32_to_binary80("0", "[cecc8d0f]", "[c0cf9c197deb8c9856ac]", "0x20")
+ self.bid32_to_binary80("1", "[cecc8d0f]", "[c0cf9c197deb8c9856ad]", "0x20")
+ self.bid32_to_binary80("2", "[cecc8d0f]", "[c0cf9c197deb8c9856ac]", "0x20")
+ self.bid32_to_binary80("3", "[cecc8d0f]", "[c0cf9c197deb8c9856ac]", "0x20")
+ self.bid32_to_binary80("4", "[cecc8d0f]", "[c0cf9c197deb8c9856ac]", "0x20")
+ self.bid32_to_binary80("0", "[cfb82a11]", "[c0d5b2f3299ec7be0c0a]", "0x20")
+ self.bid32_to_binary80("1", "[cfb82a11]", "[c0d5b2f3299ec7be0c0a]", "0x20")
+ self.bid32_to_binary80("2", "[cfb82a11]", "[c0d5b2f3299ec7be0c09]", "0x20")
+ self.bid32_to_binary80("3", "[cfb82a11]", "[c0d5b2f3299ec7be0c09]", "0x20")
+ self.bid32_to_binary80("4", "[cfb82a11]", "[c0d5b2f3299ec7be0c0a]", "0x20")
+ self.bid32_to_binary80("0", "[d0acee74]", "[c0dbdfaff40679ad8f0c]", "0x20")
+ self.bid32_to_binary80("1", "[d0acee74]", "[c0dbdfaff40679ad8f0d]", "0x20")
+ self.bid32_to_binary80("2", "[d0acee74]", "[c0dbdfaff40679ad8f0c]", "0x20")
+ self.bid32_to_binary80("3", "[d0acee74]", "[c0dbdfaff40679ad8f0c]", "0x20")
+ self.bid32_to_binary80("4", "[d0acee74]", "[c0dbdfaff40679ad8f0c]", "0x20")
+ self.bid32_to_binary80("0", "[d19e2c6b]", "[c0e1eab676baf37301a8]", "0x20")
+ self.bid32_to_binary80("1", "[d19e2c6b]", "[c0e1eab676baf37301a9]", "0x20")
+ self.bid32_to_binary80("2", "[d19e2c6b]", "[c0e1eab676baf37301a8]", "0x20")
+ self.bid32_to_binary80("3", "[d19e2c6b]", "[c0e1eab676baf37301a8]", "0x20")
+ self.bid32_to_binary80("4", "[d19e2c6b]", "[c0e1eab676baf37301a8]", "0x20")
+ self.bid32_to_binary80("0", "[d28fdb2b]", "[c0e7c0b8742478c6f622]", "0x20")
+ self.bid32_to_binary80("1", "[d28fdb2b]", "[c0e7c0b8742478c6f622]", "0x20")
+ self.bid32_to_binary80("2", "[d28fdb2b]", "[c0e7c0b8742478c6f621]", "0x20")
+ self.bid32_to_binary80("3", "[d28fdb2b]", "[c0e7c0b8742478c6f621]", "0x20")
+ self.bid32_to_binary80("4", "[d28fdb2b]", "[c0e7c0b8742478c6f622]", "0x20")
+ self.bid32_to_binary80("0", "[d36f4abe]", "[c0edd35b278e3553c20e]", "0x20")
+ self.bid32_to_binary80("1", "[d36f4abe]", "[c0edd35b278e3553c20f]", "0x20")
+ self.bid32_to_binary80("2", "[d36f4abe]", "[c0edd35b278e3553c20e]", "0x20")
+ self.bid32_to_binary80("3", "[d36f4abe]", "[c0edd35b278e3553c20e]", "0x20")
+ self.bid32_to_binary80("4", "[d36f4abe]", "[c0edd35b278e3553c20e]", "0x20")
+ self.bid32_to_binary80("0", "[d43446e4]", "[c0f39b1feb90aa8ea134]", "0x20")
+ self.bid32_to_binary80("1", "[d43446e4]", "[c0f39b1feb90aa8ea134]", "0x20")
+ self.bid32_to_binary80("2", "[d43446e4]", "[c0f39b1feb90aa8ea133]", "0x20")
+ self.bid32_to_binary80("3", "[d43446e4]", "[c0f39b1feb90aa8ea133]", "0x20")
+ self.bid32_to_binary80("4", "[d43446e4]", "[c0f39b1feb90aa8ea134]", "0x20")
+ self.bid32_to_binary80("0", "[d51f6e68]", "[c0f991bb397504579b75]", "0x20")
+ self.bid32_to_binary80("1", "[d51f6e68]", "[c0f991bb397504579b75]", "0x20")
+ self.bid32_to_binary80("2", "[d51f6e68]", "[c0f991bb397504579b74]", "0x20")
+ self.bid32_to_binary80("3", "[d51f6e68]", "[c0f991bb397504579b74]", "0x20")
+ self.bid32_to_binary80("4", "[d51f6e68]", "[c0f991bb397504579b75]", "0x20")
+ self.bid32_to_binary80("0", "[d6164ea7]", "[c0ffa19b116620c4ee90]", "0x20")
+ self.bid32_to_binary80("1", "[d6164ea7]", "[c0ffa19b116620c4ee91]", "0x20")
+ self.bid32_to_binary80("2", "[d6164ea7]", "[c0ffa19b116620c4ee90]", "0x20")
+ self.bid32_to_binary80("3", "[d6164ea7]", "[c0ffa19b116620c4ee90]", "0x20")
+ self.bid32_to_binary80("4", "[d6164ea7]", "[c0ffa19b116620c4ee90]", "0x20")
+ self.bid32_to_binary80("0", "[d74def7f]", "[c107dc8cbba9515359d0]", "0x20")
+ self.bid32_to_binary80("1", "[d74def7f]", "[c107dc8cbba9515359d1]", "0x20")
+ self.bid32_to_binary80("2", "[d74def7f]", "[c107dc8cbba9515359d0]", "0x20")
+ self.bid32_to_binary80("3", "[d74def7f]", "[c107dc8cbba9515359d0]", "0x20")
+ self.bid32_to_binary80("4", "[d74def7f]", "[c107dc8cbba9515359d0]", "0x20")
+ self.bid32_to_binary80("0", "[d846b52f]", "[c10e9c532ad92698f0b2]", "0x20")
+ self.bid32_to_binary80("1", "[d846b52f]", "[c10e9c532ad92698f0b2]", "0x20")
+ self.bid32_to_binary80("2", "[d846b52f]", "[c10e9c532ad92698f0b1]", "0x20")
+ self.bid32_to_binary80("3", "[d846b52f]", "[c10e9c532ad92698f0b1]", "0x20")
+ self.bid32_to_binary80("4", "[d846b52f]", "[c10e9c532ad92698f0b2]", "0x20")
+ self.bid32_to_binary80("0", "[d9119c63]", "[c112f3584cd8d30fb548]", "0x20")
+ self.bid32_to_binary80("1", "[d9119c63]", "[c112f3584cd8d30fb549]", "0x20")
+ self.bid32_to_binary80("2", "[d9119c63]", "[c112f3584cd8d30fb548]", "0x20")
+ self.bid32_to_binary80("3", "[d9119c63]", "[c112f3584cd8d30fb548]", "0x20")
+ self.bid32_to_binary80("4", "[d9119c63]", "[c112f3584cd8d30fb548]", "0x20")
+ self.bid32_to_binary80("0", "[db73172b]", "[c122f2a94f4bec46b2bb]", "0x20")
+ self.bid32_to_binary80("1", "[db73172b]", "[c122f2a94f4bec46b2bb]", "0x20")
+ self.bid32_to_binary80("2", "[db73172b]", "[c122f2a94f4bec46b2ba]", "0x20")
+ self.bid32_to_binary80("3", "[db73172b]", "[c122f2a94f4bec46b2ba]", "0x20")
+ self.bid32_to_binary80("4", "[db73172b]", "[c122f2a94f4bec46b2bb]", "0x20")
+ self.bid32_to_binary80("0", "[dc48d46a]", "[c128efeed8495e3a70d4]", "0x20")
+ self.bid32_to_binary80("1", "[dc48d46a]", "[c128efeed8495e3a70d4]", "0x20")
+ self.bid32_to_binary80("2", "[dc48d46a]", "[c128efeed8495e3a70d3]", "0x20")
+ self.bid32_to_binary80("3", "[dc48d46a]", "[c128efeed8495e3a70d3]", "0x20")
+ self.bid32_to_binary80("4", "[dc48d46a]", "[c128efeed8495e3a70d4]", "0x20")
+ self.bid32_to_binary80("0", "[dd28d834]", "[c12ed23fe862820d7b7f]", "0x20")
+ self.bid32_to_binary80("1", "[dd28d834]", "[c12ed23fe862820d7b7f]", "0x20")
+ self.bid32_to_binary80("2", "[dd28d834]", "[c12ed23fe862820d7b7e]", "0x20")
+ self.bid32_to_binary80("3", "[dd28d834]", "[c12ed23fe862820d7b7e]", "0x20")
+ self.bid32_to_binary80("4", "[dd28d834]", "[c12ed23fe862820d7b7f]", "0x20")
+ self.bid32_to_binary80("0", "[de1f60e1]", "[c134fc60eab62f36d222]", "0x20")
+ self.bid32_to_binary80("1", "[de1f60e1]", "[c134fc60eab62f36d223]", "0x20")
+ self.bid32_to_binary80("2", "[de1f60e1]", "[c134fc60eab62f36d222]", "0x20")
+ self.bid32_to_binary80("3", "[de1f60e1]", "[c134fc60eab62f36d222]", "0x20")
+ self.bid32_to_binary80("4", "[de1f60e1]", "[c134fc60eab62f36d222]", "0x20")
+ self.bid32_to_binary80("0", "[e349ac2f]", "[bf1cf915969b6d3a1c1a]", "0x20")
+ self.bid32_to_binary80("1", "[e349ac2f]", "[bf1cf915969b6d3a1c1b]", "0x20")
+ self.bid32_to_binary80("2", "[e349ac2f]", "[bf1cf915969b6d3a1c1a]", "0x20")
+ self.bid32_to_binary80("3", "[e349ac2f]", "[bf1cf915969b6d3a1c1a]", "0x20")
+ self.bid32_to_binary80("4", "[e349ac2f]", "[bf1cf915969b6d3a1c1a]", "0x20")
+ self.bid32_to_binary80("0", "[e5b39ec0]", "[bf5c90c90f4bd7dd19a2]", "0x20")
+ self.bid32_to_binary80("1", "[e5b39ec0]", "[bf5c90c90f4bd7dd19a3]", "0x20")
+ self.bid32_to_binary80("2", "[e5b39ec0]", "[bf5c90c90f4bd7dd19a2]", "0x20")
+ self.bid32_to_binary80("3", "[e5b39ec0]", "[bf5c90c90f4bd7dd19a2]", "0x20")
+ self.bid32_to_binary80("4", "[e5b39ec0]", "[bf5c90c90f4bd7dd19a2]", "0x20")
+ self.bid32_to_binary80("0", "[e6a7add2]", "[bf76c64b8906a24ae471]", "0x20")
+ self.bid32_to_binary80("1", "[e6a7add2]", "[bf76c64b8906a24ae472]", "0x20")
+ self.bid32_to_binary80("2", "[e6a7add2]", "[bf76c64b8906a24ae471]", "0x20")
+ self.bid32_to_binary80("3", "[e6a7add2]", "[bf76c64b8906a24ae471]", "0x20")
+ self.bid32_to_binary80("4", "[e6a7add2]", "[bf76c64b8906a24ae471]", "0x20")
+ self.bid32_to_binary80("0", "[e981c887]", "[bfc2fb099512f5dc2b76]", "0x20")
+ self.bid32_to_binary80("1", "[e981c887]", "[bfc2fb099512f5dc2b76]", "0x20")
+ self.bid32_to_binary80("2", "[e981c887]", "[bfc2fb099512f5dc2b75]", "0x20")
+ self.bid32_to_binary80("3", "[e981c887]", "[bfc2fb099512f5dc2b75]", "0x20")
+ self.bid32_to_binary80("4", "[e981c887]", "[bfc2fb099512f5dc2b76]", "0x20")
+ self.bid32_to_binary80("0", "[ec789675]", "[c00fc34ff1eb851eb852]", "0x20")
+ self.bid32_to_binary80("1", "[ec789675]", "[c00fc34ff1eb851eb852]", "0x20")
+ self.bid32_to_binary80("2", "[ec789675]", "[c00fc34ff1eb851eb851]", "0x20")
+ self.bid32_to_binary80("3", "[ec789675]", "[c00fc34ff1eb851eb851]", "0x20")
+ self.bid32_to_binary80("4", "[ec789675]", "[c00fc34ff1eb851eb852]", "0x20")
+ self.bid32_to_binary80("0", "[ed6637bd]", "[c029fffffff528000000]", "0x00")
+ self.bid32_to_binary80("1", "[ed6637bd]", "[c029fffffff528000000]", "0x00")
+ self.bid32_to_binary80("2", "[ed6637bd]", "[c029fffffff528000000]", "0x00")
+ self.bid32_to_binary80("3", "[ed6637bd]", "[c029fffffff528000000]", "0x00")
+ self.bid32_to_binary80("4", "[ed6637bd]", "[c029fffffff528000000]", "0x00")
+ self.bid32_to_binary80("0", "[ee901d7a]", "[c047fffffabb56818c80]", "0x00")
+ self.bid32_to_binary80("1", "[ee901d7a]", "[c047fffffabb56818c80]", "0x00")
+ self.bid32_to_binary80("2", "[ee901d7a]", "[c047fffffabb56818c80]", "0x00")
+ self.bid32_to_binary80("3", "[ee901d7a]", "[c047fffffabb56818c80]", "0x00")
+ self.bid32_to_binary80("4", "[ee901d7a]", "[c047fffffabb56818c80]", "0x00")
+ self.bid32_to_binary80("0", "[ef5892a3]", "[c05c813bf3c1c802b3d0]", "0x20")
+ self.bid32_to_binary80("1", "[ef5892a3]", "[c05c813bf3c1c802b3d0]", "0x20")
+ self.bid32_to_binary80("2", "[ef5892a3]", "[c05c813bf3c1c802b3cf]", "0x20")
+ self.bid32_to_binary80("3", "[ef5892a3]", "[c05c813bf3c1c802b3cf]", "0x20")
+ self.bid32_to_binary80("4", "[ef5892a3]", "[c05c813bf3c1c802b3d0]", "0x20")
+ self.bid32_to_binary80("0", "[ef98701b]", "[c062c9bff93a48227eac]", "0x20")
+ self.bid32_to_binary80("1", "[ef98701b]", "[c062c9bff93a48227eac]", "0x20")
+ self.bid32_to_binary80("2", "[ef98701b]", "[c062c9bff93a48227eab]", "0x20")
+ self.bid32_to_binary80("3", "[ef98701b]", "[c062c9bff93a48227eab]", "0x20")
+ self.bid32_to_binary80("4", "[ef98701b]", "[c062c9bff93a48227eac]", "0x20")
+ self.bid32_to_binary80("0", "[efd52853]", "[c0699a39aa768dc0f859]", "0x20")
+ self.bid32_to_binary80("1", "[efd52853]", "[c0699a39aa768dc0f859]", "0x20")
+ self.bid32_to_binary80("2", "[efd52853]", "[c0699a39aa768dc0f858]", "0x20")
+ self.bid32_to_binary80("3", "[efd52853]", "[c0699a39aa768dc0f858]", "0x20")
+ self.bid32_to_binary80("4", "[efd52853]", "[c0699a39aa768dc0f859]", "0x20")
+ self.bid32_to_binary80("0", "[f00a494b]", "[c06fdf69df99fddd33be]", "0x20")
+ self.bid32_to_binary80("1", "[f00a494b]", "[c06fdf69df99fddd33be]", "0x20")
+ self.bid32_to_binary80("2", "[f00a494b]", "[c06fdf69df99fddd33bd]", "0x20")
+ self.bid32_to_binary80("3", "[f00a494b]", "[c06fdf69df99fddd33bd]", "0x20")
+ self.bid32_to_binary80("4", "[f00a494b]", "[c06fdf69df99fddd33be]", "0x20")
+ self.bid32_to_binary80("0", "[f1296142]", "[c08dceb4d1593d6fc040]", "0x20")
+ self.bid32_to_binary80("1", "[f1296142]", "[c08dceb4d1593d6fc041]", "0x20")
+ self.bid32_to_binary80("2", "[f1296142]", "[c08dceb4d1593d6fc040]", "0x20")
+ self.bid32_to_binary80("3", "[f1296142]", "[c08dceb4d1593d6fc040]", "0x20")
+ self.bid32_to_binary80("4", "[f1296142]", "[c08dceb4d1593d6fc040]", "0x20")
+ self.bid32_to_binary80("0", "[f1696142]", "[c094a17d438db7ff4e32]", "0x20")
+ self.bid32_to_binary80("1", "[f1696142]", "[c094a17d438db7ff4e33]", "0x20")
+ self.bid32_to_binary80("2", "[f1696142]", "[c094a17d438db7ff4e32]", "0x20")
+ self.bid32_to_binary80("3", "[f1696142]", "[c094a17d438db7ff4e32]", "0x20")
+ self.bid32_to_binary80("4", "[f1696142]", "[c094a17d438db7ff4e32]", "0x20")
+ self.bid32_to_binary80("0", "[f691cf0c]", "[c11cc4c12abd32cdc49e]", "0x20")
+ self.bid32_to_binary80("1", "[f691cf0c]", "[c11cc4c12abd32cdc49e]", "0x20")
+ self.bid32_to_binary80("2", "[f691cf0c]", "[c11cc4c12abd32cdc49d]", "0x20")
+ self.bid32_to_binary80("3", "[f691cf0c]", "[c11cc4c12abd32cdc49d]", "0x20")
+ self.bid32_to_binary80("4", "[f691cf0c]", "[c11cc4c12abd32cdc49e]", "0x20")
+ self.bid32_to_binary80("0", "[f7f8967f]", "[c14195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("1", "[f7f8967f]", "[c14195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("2", "[f7f8967f]", "[c14195d049f2e308a39a]", "0x20")
+ self.bid32_to_binary80("3", "[f7f8967f]", "[c14195d049f2e308a39a]", "0x20")
+ self.bid32_to_binary80("4", "[f7f8967f]", "[c14195d049f2e308a39b]", "0x20")
+ self.bid32_to_binary80("0", "[f8000000]", "[ffff8000000000000000]", "0x00")
+ self.bid32_to_binary80("1", "[f8000000]", "[ffff8000000000000000]", "0x00")
+ self.bid32_to_binary80("2", "[f8000000]", "[ffff8000000000000000]", "0x00")
+ self.bid32_to_binary80("3", "[f8000000]", "[ffff8000000000000000]", "0x00")
+ self.bid32_to_binary80("4", "[f8000000]", "[ffff8000000000000000]", "0x00")
+ }
+
+ private func bid32_to_binary80(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseFloat80(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Float80(arg0, rounding: rounding, status: &status)
+ self.assertBinaryFloatingPoint(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+
+#endif
+ }
+
+ func test_bid64_to_binary32() {
+ self.bid64_to_binary32("0", "[0000000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("0", "[0000000000000001]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[002386F26FC10000]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[01e0000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("0", "[0200000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("0", "[0755F0E047737E1E]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[0755F0E1B78F093B]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[0768C6C01C9498D9]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[0768C6C0AFD2D07E]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[076D2A202ADEE545]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[07718D80392931B1]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[07718D815FA5A0FC]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[077A544055BDCA8A]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[07C8FCAC257558EE]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[07C8FCACBC3C39D9]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[2A263917877CEC05]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[2A263917EFE491AE]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[2a319c03c40b2180]", "[00000000]", "0x30")
+ self.bid64_to_binary32("0", "[2A38E45E1DF3B015]", "[00000000]", "30")
+ self.bid64_to_binary32("0", "[2A38E45FBF9246B7]", "[00000001]", "30")
+ self.bid64_to_binary32("0", "[2A43BBDAEAE48D9D]", "[00000001]", "30")
+ self.bid64_to_binary32("0", "[2a44fa793930bcd1]", "[00000001]", "0x30")
+ self.bid64_to_binary32("0", "[2A44FA793930BCD1]", "[00000001]", "30")
+ self.bid64_to_binary32("0", "[2a44fa793930bcd2]", "[00000001]", "0x30")
+ self.bid64_to_binary32("0", "[2A44FA798CB6DAF1]", "[00000001]", "30")
+ self.bid64_to_binary32("0", "[2A4777B5D5C91B3A]", "[00000002]", "30")
+ self.bid64_to_binary32("0", "[2A997D4DF19D6057]", "[00000200]", "30")
+ self.bid64_to_binary32("0", "[2A997D4F9D41D1A1]", "[00000200]", "30")
+ self.bid64_to_binary32("0", "[2aa3affb0f2905fd]", "[000002e5]", "0x30")
+ self.bid64_to_binary32("0", "[2b158c3cf6ba79d1]", "[00420b38]", "0x30")
+ self.bid64_to_binary32("0", "[2B242D1B170a4800]", "[00800000]", "30")
+ self.bid64_to_binary32("0", "[2b242d1b1b375b8f]", "[00800000]", "0x20")
+ self.bid64_to_binary32("0", "[2b242d1b1b375b90]", "[00800000]", "0x20")
+ self.bid64_to_binary32("0", "[2b285a36366eb71f]", "[01000000]", "0x20")
+ self.bid64_to_binary32("0", "[2b285a36366eb720]", "[01000000]", "0x20")
+ self.bid64_to_binary32("0", "[2be1345d833d6b0b]", "[098cd61c]", "0x20")
+ self.bid64_to_binary32("0", "[2c442f5df29aeee1]", "[0f6eec3e]", "0x20")
+ self.bid64_to_binary32("0", "[2cb70105df3d47cb]", "[15a05080]", "0x20")
+ self.bid64_to_binary32("0", "[2d814c1d40d23351]", "[1f2c718f]", "0x20")
+ self.bid64_to_binary32("0", "[2de2ec6b64bf3205]", "[24bdbf34]", "0x20")
+ self.bid64_to_binary32("0", "[2e5100e91aa27c10]", "[2b06b750]", "0x20")
+ self.bid64_to_binary32("0", "[2ea132645e1ba93f]", "[2e142980]", "0x20")
+ self.bid64_to_binary32("0", "[2f20fe93dea50b6c]", "[349646ae]", "0x20")
+ self.bid64_to_binary32("0", "[2f86ecf96983918e]", "[3aff8334]", "0x20")
+ self.bid64_to_binary32("0", "[3040000000000001]", "[2B8CBCCC]", "20")
+ self.bid64_to_binary32("0", "[30400001ffffffff]", "[3C0CBCCC]", "20")
+ self.bid64_to_binary32("0", "[30400003ffffffff]", "[3C8CBCCC]", "20")
+ self.bid64_to_binary32("0", "[30400007ffffffff]", "[3D0CBCCC]", "20")
+ self.bid64_to_binary32("0", "[3040000fffffffff]", "[3D8CBCCC]", "20")
+ self.bid64_to_binary32("0", "[3041ffffffffffff]", "[440CBCCC]", "20")
+ self.bid64_to_binary32("0", "[304fffffffffffff]", "[458CBCCC]", "20")
+ self.bid64_to_binary32("0", "[30c00000004d7c6d]", "[3d500000]", "0x00")
+ self.bid64_to_binary32("0", "[30c2faf07fffffff]", "[4b000000]", "0x20")
+ self.bid64_to_binary32("0", "[312c34ffffffffff]", "[51000000]", "0x20")
+ self.bid64_to_binary32("0", "[31a000000000000f]", "[3fc00000]", "0x00")
+ self.bid64_to_binary32("0", "[31c0000000000000]", "[00000000]", "0x00")
+ self.bid64_to_binary32("0", "[31c0000000000001]", "[3f800000]", "0x00")
+ self.bid64_to_binary32("0", "[31c0000000000040]", "[42800000]", "0x00")
+ self.bid64_to_binary32("0", "[31c00000000003e7]", "[4479c000]", "0x00")
+ self.bid64_to_binary32("0", "[31c00000000003e8]", "[447a0000]", "0x00")
+ self.bid64_to_binary32("0", "[325a369f8a0902de]", "[607ffd6e]", "0x20")
+ self.bid64_to_binary32("0", "[32cab8b4dd16f1df]", "[667f9ee7]", "0x20")
+ self.bid64_to_binary32("0", "[33319b96f36ec68b]", "[6bccfb40]", "0x20")
+ self.bid64_to_binary32("0", "[3391025d42033846]", "[70c15f64]", "0x20")
+ self.bid64_to_binary32("0", "[33d608e7907c5218]", "[7443b54c]", "0x20")
+ self.bid64_to_binary32("0", "[34AC13C157F0C34F]", "[7F7FBE77]", "20")
+ self.bid64_to_binary32("0", "[34ac16d993f27f88]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("0", "[34ac16d993f27f89]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("0", "[34ac16d9a0095928]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("0", "[34ac16d9a0095929]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("0", "[34B22246700E05BD]", "[7F800000]", "28")
+ self.bid64_to_binary32("0", "[34C570AEBB37681F]", "[7F800000]", "28")
+ self.bid64_to_binary32("0", "[5666615B7DDB9FDE]", "[7F800000]", "28")
+ self.bid64_to_binary32("0", "[5669947D1313F3E2]", "[7F800000]", "28")
+ self.bid64_to_binary32("0", "[567CBD77393BDBA6]", "[7F800000]", "28")
+ self.bid64_to_binary32("0", "[6ad840293ad68f5b]", "[05410ff2]", "0x20")
+ self.bid64_to_binary32("0", "[6b426a519502caeb]", "[1aea37ec]", "0x20")
+ self.bid64_to_binary32("0", "[6bfb86ebe2df8032]", "[411fffe2]", "0x20")
+ self.bid64_to_binary32("0", "[6c1386f26fc0ffff]", "[461c4000]", "0x20")
+ self.bid64_to_binary32("0", "[6c6386f258ffffff]", "[56b5e620]", "0x20")
+ self.bid64_to_binary32("0", "[6C7386F26FC10000]", "[00000000]", "00")
+ self.bid64_to_binary32("0", "[6c7b86f133333333]", "[5bb1a2b6]", "0x20")
+ self.bid64_to_binary32("0", "[77fb86f26fc0ffff]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("0", "[77FB86F26FC0FFFF]", "[7F800000]", "28")
+ self.bid64_to_binary32("0", "[77fb86f26fc10000]", "[00000000]", "00")
+ self.bid64_to_binary32("0", "[7800000000000000]", "[7f800000]", "0x00")
+ self.bid64_to_binary32("0", "[7c00000000000000]", "[7FC00000]", "00")
+ self.bid64_to_binary32("0", "[7c038D7EA4C67FFF]", "[7FF8D7EA]", "00")
+ self.bid64_to_binary32("0", "[7c038D7EA4C68000]", "[7FC00000]", "00")
+ self.bid64_to_binary32("0", "[7e00000000000000]", "[7FC00000]", "01")
+ self.bid64_to_binary32("0", "[7e038D7EA4C67FFF]", "[7FF8D7EA]", "01")
+ self.bid64_to_binary32("0", "[7e038D7EA4C68000]", "[7FC00000]", "01")
+ self.bid64_to_binary32("0", "[8000000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("0", "[81e0000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("0", "[8200000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("0", "[aa319c03c40b2180]", "[80000000]", "0x30")
+ self.bid64_to_binary32("0", "[aa44fa793930bcd1]", "[80000001]", "0x30")
+ self.bid64_to_binary32("0", "[aa44fa793930bcd2]", "[80000001]", "0x30")
+ self.bid64_to_binary32("0", "[aaa3affb0f2905fd]", "[800002e5]", "0x30")
+ self.bid64_to_binary32("0", "[ab158c3cf6ba79d1]", "[80420b38]", "0x30")
+ self.bid64_to_binary32("0", "[ab242d1b1b375b8f]", "[80800000]", "0x20")
+ self.bid64_to_binary32("0", "[ab242d1b1b375b90]", "[80800000]", "0x20")
+ self.bid64_to_binary32("0", "[ab285a36366eb71f]", "[81000000]", "0x20")
+ self.bid64_to_binary32("0", "[ab285a36366eb720]", "[81000000]", "0x20")
+ self.bid64_to_binary32("0", "[abe1345d833d6b0b]", "[898cd61c]", "0x20")
+ self.bid64_to_binary32("0", "[ac442f5df29aeee1]", "[8f6eec3e]", "0x20")
+ self.bid64_to_binary32("0", "[acb70105df3d47cb]", "[95a05080]", "0x20")
+ self.bid64_to_binary32("0", "[ad814c1d40d23351]", "[9f2c718f]", "0x20")
+ self.bid64_to_binary32("0", "[ade2ec6b64bf3205]", "[a4bdbf34]", "0x20")
+ self.bid64_to_binary32("0", "[ae5100e91aa27c10]", "[ab06b750]", "0x20")
+ self.bid64_to_binary32("0", "[aea132645e1ba93f]", "[ae142980]", "0x20")
+ self.bid64_to_binary32("0", "[af20fe93dea50b6c]", "[b49646ae]", "0x20")
+ self.bid64_to_binary32("0", "[af86ecf96983918e]", "[baff8334]", "0x20")
+ self.bid64_to_binary32("0", "[b0c00000004d7c6d]", "[bd500000]", "0x00")
+ self.bid64_to_binary32("0", "[b0c2faf07fffffff]", "[cb000000]", "0x20")
+ self.bid64_to_binary32("0", "[b12c34ffffffffff]", "[d1000000]", "0x20")
+ self.bid64_to_binary32("0", "[b1a000000000000f]", "[bfc00000]", "0x00")
+ self.bid64_to_binary32("0", "[b1c0000000000001]", "[bf800000]", "0x00")
+ self.bid64_to_binary32("0", "[b1c0000000000040]", "[c2800000]", "0x00")
+ self.bid64_to_binary32("0", "[b1c00000000003e7]", "[c479c000]", "0x00")
+ self.bid64_to_binary32("0", "[b1c00000000003e8]", "[c47a0000]", "0x00")
+ self.bid64_to_binary32("0", "[b25a369f8a0902de]", "[e07ffd6e]", "0x20")
+ self.bid64_to_binary32("0", "[b2cab8b4dd16f1df]", "[e67f9ee7]", "0x20")
+ self.bid64_to_binary32("0", "[b3319b96f36ec68b]", "[ebccfb40]", "0x20")
+ self.bid64_to_binary32("0", "[b391025d42033846]", "[f0c15f64]", "0x20")
+ self.bid64_to_binary32("0", "[b3d608e7907c5218]", "[f443b54c]", "0x20")
+ self.bid64_to_binary32("0", "[b4ac16d993f27f88]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("0", "[b4ac16d993f27f89]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("0", "[b4ac16d9a0095928]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("0", "[b4ac16d9a0095929]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("0", "[ead840293ad68f5b]", "[85410ff2]", "0x20")
+ self.bid64_to_binary32("0", "[eb426a519502caeb]", "[9aea37ec]", "0x20")
+ self.bid64_to_binary32("0", "[ebfb86ebe2df8032]", "[c11fffe2]", "0x20")
+ self.bid64_to_binary32("0", "[ec1386f26fc0ffff]", "[c61c4000]", "0x20")
+ self.bid64_to_binary32("0", "[ec6386f258ffffff]", "[d6b5e620]", "0x20")
+ self.bid64_to_binary32("0", "[ec7b86f133333333]", "[dbb1a2b6]", "0x20")
+ self.bid64_to_binary32("0", "[f7fb86f26fc0ffff]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("0", "[f800000000000000]", "[ff800000]", "0x00")
+ self.bid64_to_binary32("1", "[0000000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("1", "[01e0000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("1", "[0200000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("1", "[2a319c03c40b2180]", "[00000000]", "0x30")
+ self.bid64_to_binary32("1", "[2a44fa793930bcd1]", "[00000000]", "0x30")
+ self.bid64_to_binary32("1", "[2a44fa793930bcd2]", "[00000001]", "0x30")
+ self.bid64_to_binary32("1", "[2aa3affb0f2905fd]", "[000002e4]", "0x30")
+ self.bid64_to_binary32("1", "[2b158c3cf6ba79d1]", "[00420b38]", "0x30")
+ self.bid64_to_binary32("1", "[2b242d1b1b375b8f]", "[007fffff]", "0x30")
+ self.bid64_to_binary32("1", "[2b242d1b1b375b90]", "[00800000]", "0x20")
+ self.bid64_to_binary32("1", "[2b285a36366eb71f]", "[00ffffff]", "0x20")
+ self.bid64_to_binary32("1", "[2b285a36366eb720]", "[01000000]", "0x20")
+ self.bid64_to_binary32("1", "[2be1345d833d6b0b]", "[098cd61b]", "0x20")
+ self.bid64_to_binary32("1", "[2c442f5df29aeee1]", "[0f6eec3e]", "0x20")
+ self.bid64_to_binary32("1", "[2cb70105df3d47cb]", "[15a0507f]", "0x20")
+ self.bid64_to_binary32("1", "[2d814c1d40d23351]", "[1f2c718e]", "0x20")
+ self.bid64_to_binary32("1", "[2de2ec6b64bf3205]", "[24bdbf33]", "0x20")
+ self.bid64_to_binary32("1", "[2e5100e91aa27c10]", "[2b06b74f]", "0x20")
+ self.bid64_to_binary32("1", "[2ea132645e1ba93f]", "[2e142980]", "0x20")
+ self.bid64_to_binary32("1", "[2f20fe93dea50b6c]", "[349646ae]", "0x20")
+ self.bid64_to_binary32("1", "[2f86ecf96983918e]", "[3aff8334]", "0x20")
+ self.bid64_to_binary32("1", "[30c00000004d7c6d]", "[3d500000]", "0x00")
+ self.bid64_to_binary32("1", "[30c2faf07fffffff]", "[4affffff]", "0x20")
+ self.bid64_to_binary32("1", "[312c34ffffffffff]", "[50ffffff]", "0x20")
+ self.bid64_to_binary32("1", "[31a000000000000f]", "[3fc00000]", "0x00")
+ self.bid64_to_binary32("1", "[31c0000000000000]", "[00000000]", "0x00")
+ self.bid64_to_binary32("1", "[31c0000000000001]", "[3f800000]", "0x00")
+ self.bid64_to_binary32("1", "[31c0000000000040]", "[42800000]", "0x00")
+ self.bid64_to_binary32("1", "[31c00000000003e7]", "[4479c000]", "0x00")
+ self.bid64_to_binary32("1", "[31c00000000003e8]", "[447a0000]", "0x00")
+ self.bid64_to_binary32("1", "[325a369f8a0902de]", "[607ffd6d]", "0x20")
+ self.bid64_to_binary32("1", "[32cab8b4dd16f1df]", "[667f9ee6]", "0x20")
+ self.bid64_to_binary32("1", "[33319b96f36ec68b]", "[6bccfb3f]", "0x20")
+ self.bid64_to_binary32("1", "[3391025d42033846]", "[70c15f63]", "0x20")
+ self.bid64_to_binary32("1", "[33d608e7907c5218]", "[7443b54c]", "0x20")
+ self.bid64_to_binary32("1", "[34ac16d993f27f88]", "[7f7ffffe]", "0x20")
+ self.bid64_to_binary32("1", "[34ac16d993f27f89]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("1", "[34ac16d9a0095928]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("1", "[34ac16d9a0095929]", "[7f7fffff]", "0x28")
+ self.bid64_to_binary32("1", "[6ad840293ad68f5b]", "[05410ff2]", "0x20")
+ self.bid64_to_binary32("1", "[6b426a519502caeb]", "[1aea37eb]", "0x20")
+ self.bid64_to_binary32("1", "[6bfb86ebe2df8032]", "[411fffe2]", "0x20")
+ self.bid64_to_binary32("1", "[6c1386f26fc0ffff]", "[461c3fff]", "0x20")
+ self.bid64_to_binary32("1", "[6c6386f258ffffff]", "[56b5e620]", "0x20")
+ self.bid64_to_binary32("1", "[6c7b86f133333333]", "[5bb1a2b5]", "0x20")
+ self.bid64_to_binary32("1", "[77fb86f26fc0ffff]", "[7f7fffff]", "0x28")
+ self.bid64_to_binary32("1", "[7800000000000000]", "[7f800000]", "0x00")
+ self.bid64_to_binary32("1", "[8000000000000001]", "[80000001]", "0x30")
+ self.bid64_to_binary32("1", "[81e0000000000001]", "[80000001]", "0x30")
+ self.bid64_to_binary32("1", "[8200000000000001]", "[80000001]", "0x30")
+ self.bid64_to_binary32("1", "[aa319c03c40b2180]", "[80000001]", "0x30")
+ self.bid64_to_binary32("1", "[aa44fa793930bcd1]", "[80000001]", "0x30")
+ self.bid64_to_binary32("1", "[aa44fa793930bcd2]", "[80000002]", "0x30")
+ self.bid64_to_binary32("1", "[aaa3affb0f2905fd]", "[800002e5]", "0x30")
+ self.bid64_to_binary32("1", "[ab158c3cf6ba79d1]", "[80420b39]", "0x30")
+ self.bid64_to_binary32("1", "[ab242d1b1b375b8f]", "[80800000]", "0x20")
+ self.bid64_to_binary32("1", "[ab242d1b1b375b90]", "[80800001]", "0x20")
+ self.bid64_to_binary32("1", "[ab285a36366eb71f]", "[81000000]", "0x20")
+ self.bid64_to_binary32("1", "[ab285a36366eb720]", "[81000001]", "0x20")
+ self.bid64_to_binary32("1", "[abe1345d833d6b0b]", "[898cd61c]", "0x20")
+ self.bid64_to_binary32("1", "[ac442f5df29aeee1]", "[8f6eec3f]", "0x20")
+ self.bid64_to_binary32("1", "[acb70105df3d47cb]", "[95a05080]", "0x20")
+ self.bid64_to_binary32("1", "[ad814c1d40d23351]", "[9f2c718f]", "0x20")
+ self.bid64_to_binary32("1", "[ade2ec6b64bf3205]", "[a4bdbf34]", "0x20")
+ self.bid64_to_binary32("1", "[ae5100e91aa27c10]", "[ab06b750]", "0x20")
+ self.bid64_to_binary32("1", "[aea132645e1ba93f]", "[ae142981]", "0x20")
+ self.bid64_to_binary32("1", "[af20fe93dea50b6c]", "[b49646af]", "0x20")
+ self.bid64_to_binary32("1", "[af86ecf96983918e]", "[baff8335]", "0x20")
+ self.bid64_to_binary32("1", "[b0c00000004d7c6d]", "[bd500000]", "0x00")
+ self.bid64_to_binary32("1", "[b0c2faf07fffffff]", "[cb000000]", "0x20")
+ self.bid64_to_binary32("1", "[b12c34ffffffffff]", "[d1000000]", "0x20")
+ self.bid64_to_binary32("1", "[b1a000000000000f]", "[bfc00000]", "0x00")
+ self.bid64_to_binary32("1", "[b1c0000000000001]", "[bf800000]", "0x00")
+ self.bid64_to_binary32("1", "[b1c0000000000040]", "[c2800000]", "0x00")
+ self.bid64_to_binary32("1", "[b1c00000000003e7]", "[c479c000]", "0x00")
+ self.bid64_to_binary32("1", "[b1c00000000003e8]", "[c47a0000]", "0x00")
+ self.bid64_to_binary32("1", "[b25a369f8a0902de]", "[e07ffd6e]", "0x20")
+ self.bid64_to_binary32("1", "[b2cab8b4dd16f1df]", "[e67f9ee7]", "0x20")
+ self.bid64_to_binary32("1", "[b3319b96f36ec68b]", "[ebccfb40]", "0x20")
+ self.bid64_to_binary32("1", "[b391025d42033846]", "[f0c15f64]", "0x20")
+ self.bid64_to_binary32("1", "[b3d608e7907c5218]", "[f443b54d]", "0x20")
+ self.bid64_to_binary32("1", "[b4ac16d993f27f88]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("1", "[b4ac16d993f27f89]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("1", "[b4ac16d9a0095928]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("1", "[b4ac16d9a0095929]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("1", "[ead840293ad68f5b]", "[85410ff3]", "0x20")
+ self.bid64_to_binary32("1", "[eb426a519502caeb]", "[9aea37ec]", "0x20")
+ self.bid64_to_binary32("1", "[ebfb86ebe2df8032]", "[c11fffe3]", "0x20")
+ self.bid64_to_binary32("1", "[ec1386f26fc0ffff]", "[c61c4000]", "0x20")
+ self.bid64_to_binary32("1", "[ec6386f258ffffff]", "[d6b5e621]", "0x20")
+ self.bid64_to_binary32("1", "[ec7b86f133333333]", "[dbb1a2b6]", "0x20")
+ self.bid64_to_binary32("1", "[f7fb86f26fc0ffff]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("1", "[f800000000000000]", "[ff800000]", "0x00")
+ self.bid64_to_binary32("2", "[0000000000000001]", "[00000001]", "0x30")
+ self.bid64_to_binary32("2", "[01e0000000000001]", "[00000001]", "0x30")
+ self.bid64_to_binary32("2", "[0200000000000001]", "[00000001]", "0x30")
+ self.bid64_to_binary32("2", "[2a319c03c40b2180]", "[00000001]", "0x30")
+ self.bid64_to_binary32("2", "[2a44fa793930bcd1]", "[00000001]", "0x30")
+ self.bid64_to_binary32("2", "[2a44fa793930bcd2]", "[00000002]", "0x30")
+ self.bid64_to_binary32("2", "[2aa3affb0f2905fd]", "[000002e5]", "0x30")
+ self.bid64_to_binary32("2", "[2b158c3cf6ba79d1]", "[00420b39]", "0x30")
+ self.bid64_to_binary32("2", "[2b242d1b1b375b8f]", "[00800000]", "0x20")
+ self.bid64_to_binary32("2", "[2b242d1b1b375b90]", "[00800001]", "0x20")
+ self.bid64_to_binary32("2", "[2b285a36366eb71f]", "[01000000]", "0x20")
+ self.bid64_to_binary32("2", "[2b285a36366eb720]", "[01000001]", "0x20")
+ self.bid64_to_binary32("2", "[2be1345d833d6b0b]", "[098cd61c]", "0x20")
+ self.bid64_to_binary32("2", "[2c442f5df29aeee1]", "[0f6eec3f]", "0x20")
+ self.bid64_to_binary32("2", "[2cb70105df3d47cb]", "[15a05080]", "0x20")
+ self.bid64_to_binary32("2", "[2d814c1d40d23351]", "[1f2c718f]", "0x20")
+ self.bid64_to_binary32("2", "[2de2ec6b64bf3205]", "[24bdbf34]", "0x20")
+ self.bid64_to_binary32("2", "[2e5100e91aa27c10]", "[2b06b750]", "0x20")
+ self.bid64_to_binary32("2", "[2ea132645e1ba93f]", "[2e142981]", "0x20")
+ self.bid64_to_binary32("2", "[2f20fe93dea50b6c]", "[349646af]", "0x20")
+ self.bid64_to_binary32("2", "[2f86ecf96983918e]", "[3aff8335]", "0x20")
+ self.bid64_to_binary32("2", "[30c00000004d7c6d]", "[3d500000]", "0x00")
+ self.bid64_to_binary32("2", "[30c2faf07fffffff]", "[4b000000]", "0x20")
+ self.bid64_to_binary32("2", "[312c34ffffffffff]", "[51000000]", "0x20")
+ self.bid64_to_binary32("2", "[31a000000000000f]", "[3fc00000]", "0x00")
+ self.bid64_to_binary32("2", "[31c0000000000000]", "[00000000]", "0x00")
+ self.bid64_to_binary32("2", "[31c0000000000001]", "[3f800000]", "0x00")
+ self.bid64_to_binary32("2", "[31c0000000000040]", "[42800000]", "0x00")
+ self.bid64_to_binary32("2", "[31c00000000003e7]", "[4479c000]", "0x00")
+ self.bid64_to_binary32("2", "[31c00000000003e8]", "[447a0000]", "0x00")
+ self.bid64_to_binary32("2", "[325a369f8a0902de]", "[607ffd6e]", "0x20")
+ self.bid64_to_binary32("2", "[32cab8b4dd16f1df]", "[667f9ee7]", "0x20")
+ self.bid64_to_binary32("2", "[33319b96f36ec68b]", "[6bccfb40]", "0x20")
+ self.bid64_to_binary32("2", "[3391025d42033846]", "[70c15f64]", "0x20")
+ self.bid64_to_binary32("2", "[33d608e7907c5218]", "[7443b54d]", "0x20")
+ self.bid64_to_binary32("2", "[34ac16d993f27f88]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("2", "[34ac16d993f27f89]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("2", "[34ac16d9a0095928]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("2", "[34ac16d9a0095929]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("2", "[6ad840293ad68f5b]", "[05410ff3]", "0x20")
+ self.bid64_to_binary32("2", "[6b426a519502caeb]", "[1aea37ec]", "0x20")
+ self.bid64_to_binary32("2", "[6bfb86ebe2df8032]", "[411fffe3]", "0x20")
+ self.bid64_to_binary32("2", "[6c1386f26fc0ffff]", "[461c4000]", "0x20")
+ self.bid64_to_binary32("2", "[6c6386f258ffffff]", "[56b5e621]", "0x20")
+ self.bid64_to_binary32("2", "[6c7b86f133333333]", "[5bb1a2b6]", "0x20")
+ self.bid64_to_binary32("2", "[77fb86f26fc0ffff]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("2", "[7800000000000000]", "[7f800000]", "0x00")
+ self.bid64_to_binary32("2", "[8000000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("2", "[81e0000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("2", "[8200000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("2", "[aa319c03c40b2180]", "[80000000]", "0x30")
+ self.bid64_to_binary32("2", "[aa44fa793930bcd1]", "[80000000]", "0x30")
+ self.bid64_to_binary32("2", "[aa44fa793930bcd2]", "[80000001]", "0x30")
+ self.bid64_to_binary32("2", "[aaa3affb0f2905fd]", "[800002e4]", "0x30")
+ self.bid64_to_binary32("2", "[ab158c3cf6ba79d1]", "[80420b38]", "0x30")
+ self.bid64_to_binary32("2", "[ab242d1b1b375b8f]", "[807fffff]", "0x30")
+ self.bid64_to_binary32("2", "[ab242d1b1b375b90]", "[80800000]", "0x20")
+ self.bid64_to_binary32("2", "[ab285a36366eb71f]", "[80ffffff]", "0x20")
+ self.bid64_to_binary32("2", "[ab285a36366eb720]", "[81000000]", "0x20")
+ self.bid64_to_binary32("2", "[abe1345d833d6b0b]", "[898cd61b]", "0x20")
+ self.bid64_to_binary32("2", "[ac442f5df29aeee1]", "[8f6eec3e]", "0x20")
+ self.bid64_to_binary32("2", "[acb70105df3d47cb]", "[95a0507f]", "0x20")
+ self.bid64_to_binary32("2", "[ad814c1d40d23351]", "[9f2c718e]", "0x20")
+ self.bid64_to_binary32("2", "[ade2ec6b64bf3205]", "[a4bdbf33]", "0x20")
+ self.bid64_to_binary32("2", "[ae5100e91aa27c10]", "[ab06b74f]", "0x20")
+ self.bid64_to_binary32("2", "[aea132645e1ba93f]", "[ae142980]", "0x20")
+ self.bid64_to_binary32("2", "[af20fe93dea50b6c]", "[b49646ae]", "0x20")
+ self.bid64_to_binary32("2", "[af86ecf96983918e]", "[baff8334]", "0x20")
+ self.bid64_to_binary32("2", "[b0c00000004d7c6d]", "[bd500000]", "0x00")
+ self.bid64_to_binary32("2", "[b0c2faf07fffffff]", "[caffffff]", "0x20")
+ self.bid64_to_binary32("2", "[b12c34ffffffffff]", "[d0ffffff]", "0x20")
+ self.bid64_to_binary32("2", "[b1a000000000000f]", "[bfc00000]", "0x00")
+ self.bid64_to_binary32("2", "[b1c0000000000001]", "[bf800000]", "0x00")
+ self.bid64_to_binary32("2", "[b1c0000000000040]", "[c2800000]", "0x00")
+ self.bid64_to_binary32("2", "[b1c00000000003e7]", "[c479c000]", "0x00")
+ self.bid64_to_binary32("2", "[b1c00000000003e8]", "[c47a0000]", "0x00")
+ self.bid64_to_binary32("2", "[b25a369f8a0902de]", "[e07ffd6d]", "0x20")
+ self.bid64_to_binary32("2", "[b2cab8b4dd16f1df]", "[e67f9ee6]", "0x20")
+ self.bid64_to_binary32("2", "[b3319b96f36ec68b]", "[ebccfb3f]", "0x20")
+ self.bid64_to_binary32("2", "[b391025d42033846]", "[f0c15f63]", "0x20")
+ self.bid64_to_binary32("2", "[b3d608e7907c5218]", "[f443b54c]", "0x20")
+ self.bid64_to_binary32("2", "[b4ac16d993f27f88]", "[ff7ffffe]", "0x20")
+ self.bid64_to_binary32("2", "[b4ac16d993f27f89]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("2", "[b4ac16d9a0095928]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("2", "[b4ac16d9a0095929]", "[ff7fffff]", "0x28")
+ self.bid64_to_binary32("2", "[ead840293ad68f5b]", "[85410ff2]", "0x20")
+ self.bid64_to_binary32("2", "[eb426a519502caeb]", "[9aea37eb]", "0x20")
+ self.bid64_to_binary32("2", "[ebfb86ebe2df8032]", "[c11fffe2]", "0x20")
+ self.bid64_to_binary32("2", "[ec1386f26fc0ffff]", "[c61c3fff]", "0x20")
+ self.bid64_to_binary32("2", "[ec6386f258ffffff]", "[d6b5e620]", "0x20")
+ self.bid64_to_binary32("2", "[ec7b86f133333333]", "[dbb1a2b5]", "0x20")
+ self.bid64_to_binary32("2", "[f7fb86f26fc0ffff]", "[ff7fffff]", "0x28")
+ self.bid64_to_binary32("2", "[f800000000000000]", "[ff800000]", "0x00")
+ self.bid64_to_binary32("3", "[0000000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("3", "[01e0000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("3", "[0200000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("3", "[2a319c03c40b2180]", "[00000000]", "0x30")
+ self.bid64_to_binary32("3", "[2a44fa793930bcd1]", "[00000000]", "0x30")
+ self.bid64_to_binary32("3", "[2a44fa793930bcd2]", "[00000001]", "0x30")
+ self.bid64_to_binary32("3", "[2aa3affb0f2905fd]", "[000002e4]", "0x30")
+ self.bid64_to_binary32("3", "[2b158c3cf6ba79d1]", "[00420b38]", "0x30")
+ self.bid64_to_binary32("3", "[2b242d1b1b375b8f]", "[007fffff]", "0x30")
+ self.bid64_to_binary32("3", "[2b242d1b1b375b90]", "[00800000]", "0x20")
+ self.bid64_to_binary32("3", "[2b285a36366eb71f]", "[00ffffff]", "0x20")
+ self.bid64_to_binary32("3", "[2b285a36366eb720]", "[01000000]", "0x20")
+ self.bid64_to_binary32("3", "[2be1345d833d6b0b]", "[098cd61b]", "0x20")
+ self.bid64_to_binary32("3", "[2c442f5df29aeee1]", "[0f6eec3e]", "0x20")
+ self.bid64_to_binary32("3", "[2cb70105df3d47cb]", "[15a0507f]", "0x20")
+ self.bid64_to_binary32("3", "[2d814c1d40d23351]", "[1f2c718e]", "0x20")
+ self.bid64_to_binary32("3", "[2de2ec6b64bf3205]", "[24bdbf33]", "0x20")
+ self.bid64_to_binary32("3", "[2e5100e91aa27c10]", "[2b06b74f]", "0x20")
+ self.bid64_to_binary32("3", "[2ea132645e1ba93f]", "[2e142980]", "0x20")
+ self.bid64_to_binary32("3", "[2f20fe93dea50b6c]", "[349646ae]", "0x20")
+ self.bid64_to_binary32("3", "[2f86ecf96983918e]", "[3aff8334]", "0x20")
+ self.bid64_to_binary32("3", "[30c00000004d7c6d]", "[3d500000]", "0x00")
+ self.bid64_to_binary32("3", "[30c2faf07fffffff]", "[4affffff]", "0x20")
+ self.bid64_to_binary32("3", "[312c34ffffffffff]", "[50ffffff]", "0x20")
+ self.bid64_to_binary32("3", "[31a000000000000f]", "[3fc00000]", "0x00")
+ self.bid64_to_binary32("3", "[31c0000000000000]", "[00000000]", "0x00")
+ self.bid64_to_binary32("3", "[31c0000000000001]", "[3f800000]", "0x00")
+ self.bid64_to_binary32("3", "[31c0000000000040]", "[42800000]", "0x00")
+ self.bid64_to_binary32("3", "[31c00000000003e7]", "[4479c000]", "0x00")
+ self.bid64_to_binary32("3", "[31c00000000003e8]", "[447a0000]", "0x00")
+ self.bid64_to_binary32("3", "[325a369f8a0902de]", "[607ffd6d]", "0x20")
+ self.bid64_to_binary32("3", "[32cab8b4dd16f1df]", "[667f9ee6]", "0x20")
+ self.bid64_to_binary32("3", "[33319b96f36ec68b]", "[6bccfb3f]", "0x20")
+ self.bid64_to_binary32("3", "[3391025d42033846]", "[70c15f63]", "0x20")
+ self.bid64_to_binary32("3", "[33d608e7907c5218]", "[7443b54c]", "0x20")
+ self.bid64_to_binary32("3", "[34ac16d993f27f88]", "[7f7ffffe]", "0x20")
+ self.bid64_to_binary32("3", "[34ac16d993f27f89]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("3", "[34ac16d9a0095928]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("3", "[34ac16d9a0095929]", "[7f7fffff]", "0x28")
+ self.bid64_to_binary32("3", "[6ad840293ad68f5b]", "[05410ff2]", "0x20")
+ self.bid64_to_binary32("3", "[6b426a519502caeb]", "[1aea37eb]", "0x20")
+ self.bid64_to_binary32("3", "[6bfb86ebe2df8032]", "[411fffe2]", "0x20")
+ self.bid64_to_binary32("3", "[6c1386f26fc0ffff]", "[461c3fff]", "0x20")
+ self.bid64_to_binary32("3", "[6c6386f258ffffff]", "[56b5e620]", "0x20")
+ self.bid64_to_binary32("3", "[6c7b86f133333333]", "[5bb1a2b5]", "0x20")
+ self.bid64_to_binary32("3", "[77fb86f26fc0ffff]", "[7f7fffff]", "0x28")
+ self.bid64_to_binary32("3", "[7800000000000000]", "[7f800000]", "0x00")
+ self.bid64_to_binary32("3", "[8000000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[81e0000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[8200000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[aa319c03c40b2180]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[aa44fa793930bcd1]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[aa44fa793930bcd2]", "[80000001]", "0x30")
+ self.bid64_to_binary32("3", "[aaa3affb0f2905fd]", "[800002e4]", "0x30")
+ self.bid64_to_binary32("3", "[ab158c3cf6ba79d1]", "[80420b38]", "0x30")
+ self.bid64_to_binary32("3", "[ab242d1b1b375b8f]", "[807fffff]", "0x30")
+ self.bid64_to_binary32("3", "[ab242d1b1b375b90]", "[80800000]", "0x20")
+ self.bid64_to_binary32("3", "[ab285a36366eb71f]", "[80ffffff]", "0x20")
+ self.bid64_to_binary32("3", "[ab285a36366eb720]", "[81000000]", "0x20")
+ self.bid64_to_binary32("3", "[abe1345d833d6b0b]", "[898cd61b]", "0x20")
+ self.bid64_to_binary32("3", "[ac442f5df29aeee1]", "[8f6eec3e]", "0x20")
+ self.bid64_to_binary32("3", "[acb70105df3d47cb]", "[95a0507f]", "0x20")
+ self.bid64_to_binary32("3", "[ad814c1d40d23351]", "[9f2c718e]", "0x20")
+ self.bid64_to_binary32("3", "[ade2ec6b64bf3205]", "[a4bdbf33]", "0x20")
+ self.bid64_to_binary32("3", "[ae5100e91aa27c10]", "[ab06b74f]", "0x20")
+ self.bid64_to_binary32("3", "[aea132645e1ba93f]", "[ae142980]", "0x20")
+ self.bid64_to_binary32("3", "[af20fe93dea50b6c]", "[b49646ae]", "0x20")
+ self.bid64_to_binary32("3", "[af86ecf96983918e]", "[baff8334]", "0x20")
+ self.bid64_to_binary32("3", "[b0c00000004d7c6d]", "[bd500000]", "0x00")
+ self.bid64_to_binary32("3", "[b0c2faf07fffffff]", "[caffffff]", "0x20")
+ self.bid64_to_binary32("3", "[b12c34ffffffffff]", "[d0ffffff]", "0x20")
+ self.bid64_to_binary32("3", "[b1a000000000000f]", "[bfc00000]", "0x00")
+ self.bid64_to_binary32("3", "[b1c0000000000001]", "[bf800000]", "0x00")
+ self.bid64_to_binary32("3", "[b1c0000000000040]", "[c2800000]", "0x00")
+ self.bid64_to_binary32("3", "[b1c00000000003e7]", "[c479c000]", "0x00")
+ self.bid64_to_binary32("3", "[b1c00000000003e8]", "[c47a0000]", "0x00")
+ self.bid64_to_binary32("3", "[b25a369f8a0902de]", "[e07ffd6d]", "0x20")
+ self.bid64_to_binary32("3", "[b2cab8b4dd16f1df]", "[e67f9ee6]", "0x20")
+ self.bid64_to_binary32("3", "[b3319b96f36ec68b]", "[ebccfb3f]", "0x20")
+ self.bid64_to_binary32("3", "[b391025d42033846]", "[f0c15f63]", "0x20")
+ self.bid64_to_binary32("3", "[b3d608e7907c5218]", "[f443b54c]", "0x20")
+ self.bid64_to_binary32("3", "[b4ac16d993f27f88]", "[ff7ffffe]", "0x20")
+ self.bid64_to_binary32("3", "[b4ac16d993f27f89]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("3", "[b4ac16d9a0095928]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("3", "[b4ac16d9a0095929]", "[ff7fffff]", "0x28")
+ self.bid64_to_binary32("3", "[ead840293ad68f5b]", "[85410ff2]", "0x20")
+ self.bid64_to_binary32("3", "[eb426a519502caeb]", "[9aea37eb]", "0x20")
+ self.bid64_to_binary32("3", "[ebfb86ebe2df8032]", "[c11fffe2]", "0x20")
+ self.bid64_to_binary32("3", "[ec1386f26fc0ffff]", "[c61c3fff]", "0x20")
+ self.bid64_to_binary32("3", "[ec6386f258ffffff]", "[d6b5e620]", "0x20")
+ self.bid64_to_binary32("3", "[ec7b86f133333333]", "[dbb1a2b5]", "0x20")
+ self.bid64_to_binary32("3", "[f7fb86f26fc0ffff]", "[ff7fffff]", "0x28")
+ self.bid64_to_binary32("3", "[f800000000000000]", "[ff800000]", "0x00")
+ self.bid64_to_binary32("4", "[0000000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("4", "[01e0000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("4", "[0200000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("4", "[2a319c03c40b2180]", "[00000000]", "0x30")
+ self.bid64_to_binary32("4", "[2a44fa793930bcd1]", "[00000001]", "0x30")
+ self.bid64_to_binary32("4", "[2a44fa793930bcd2]", "[00000001]", "0x30")
+ self.bid64_to_binary32("4", "[2aa3affb0f2905fd]", "[000002e5]", "0x30")
+ self.bid64_to_binary32("4", "[2b158c3cf6ba79d1]", "[00420b38]", "0x30")
+ self.bid64_to_binary32("4", "[2b242d1b1b375b8f]", "[00800000]", "0x20")
+ self.bid64_to_binary32("4", "[2b242d1b1b375b90]", "[00800000]", "0x20")
+ self.bid64_to_binary32("4", "[2b285a36366eb71f]", "[01000000]", "0x20")
+ self.bid64_to_binary32("4", "[2b285a36366eb720]", "[01000000]", "0x20")
+ self.bid64_to_binary32("4", "[2be1345d833d6b0b]", "[098cd61c]", "0x20")
+ self.bid64_to_binary32("4", "[2c442f5df29aeee1]", "[0f6eec3e]", "0x20")
+ self.bid64_to_binary32("4", "[2cb70105df3d47cb]", "[15a05080]", "0x20")
+ self.bid64_to_binary32("4", "[2d814c1d40d23351]", "[1f2c718f]", "0x20")
+ self.bid64_to_binary32("4", "[2de2ec6b64bf3205]", "[24bdbf34]", "0x20")
+ self.bid64_to_binary32("4", "[2e5100e91aa27c10]", "[2b06b750]", "0x20")
+ self.bid64_to_binary32("4", "[2ea132645e1ba93f]", "[2e142980]", "0x20")
+ self.bid64_to_binary32("4", "[2f20fe93dea50b6c]", "[349646ae]", "0x20")
+ self.bid64_to_binary32("4", "[2f86ecf96983918e]", "[3aff8334]", "0x20")
+ self.bid64_to_binary32("4", "[30c00000004d7c6d]", "[3d500000]", "0x00")
+ self.bid64_to_binary32("4", "[30c2faf07fffffff]", "[4b000000]", "0x20")
+ self.bid64_to_binary32("4", "[312c34ffffffffff]", "[51000000]", "0x20")
+ self.bid64_to_binary32("4", "[31a000000000000f]", "[3fc00000]", "0x00")
+ self.bid64_to_binary32("4", "[31c0000000000000]", "[00000000]", "0x00")
+ self.bid64_to_binary32("4", "[31c0000000000001]", "[3f800000]", "0x00")
+ self.bid64_to_binary32("4", "[31c0000000000040]", "[42800000]", "0x00")
+ self.bid64_to_binary32("4", "[31c00000000003e7]", "[4479c000]", "0x00")
+ self.bid64_to_binary32("4", "[31c00000000003e8]", "[447a0000]", "0x00")
+ self.bid64_to_binary32("4", "[325a369f8a0902de]", "[607ffd6e]", "0x20")
+ self.bid64_to_binary32("4", "[32cab8b4dd16f1df]", "[667f9ee7]", "0x20")
+ self.bid64_to_binary32("4", "[33319b96f36ec68b]", "[6bccfb40]", "0x20")
+ self.bid64_to_binary32("4", "[3391025d42033846]", "[70c15f64]", "0x20")
+ self.bid64_to_binary32("4", "[33d608e7907c5218]", "[7443b54c]", "0x20")
+ self.bid64_to_binary32("4", "[34ac16d993f27f88]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[34ac16d993f27f89]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[34ac16d9a0095928]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("4", "[34ac16d9a0095929]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("4", "[6ad840293ad68f5b]", "[05410ff2]", "0x20")
+ self.bid64_to_binary32("4", "[6b426a519502caeb]", "[1aea37ec]", "0x20")
+ self.bid64_to_binary32("4", "[6bfb86ebe2df8032]", "[411fffe2]", "0x20")
+ self.bid64_to_binary32("4", "[6c1386f26fc0ffff]", "[461c4000]", "0x20")
+ self.bid64_to_binary32("4", "[6c6386f258ffffff]", "[56b5e620]", "0x20")
+ self.bid64_to_binary32("4", "[6c7b86f133333333]", "[5bb1a2b6]", "0x20")
+ self.bid64_to_binary32("4", "[77fb86f26fc0ffff]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("4", "[7800000000000000]", "[7f800000]", "0x00")
+ self.bid64_to_binary32("4", "[8000000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("4", "[81e0000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("4", "[8200000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("4", "[aa319c03c40b2180]", "[80000000]", "0x30")
+ self.bid64_to_binary32("4", "[aa44fa793930bcd1]", "[80000001]", "0x30")
+ self.bid64_to_binary32("4", "[aa44fa793930bcd2]", "[80000001]", "0x30")
+ self.bid64_to_binary32("4", "[aaa3affb0f2905fd]", "[800002e5]", "0x30")
+ self.bid64_to_binary32("4", "[ab158c3cf6ba79d1]", "[80420b38]", "0x30")
+ self.bid64_to_binary32("4", "[ab242d1b1b375b8f]", "[80800000]", "0x20")
+ self.bid64_to_binary32("4", "[ab242d1b1b375b90]", "[80800000]", "0x20")
+ self.bid64_to_binary32("4", "[ab285a36366eb71f]", "[81000000]", "0x20")
+ self.bid64_to_binary32("4", "[ab285a36366eb720]", "[81000000]", "0x20")
+ self.bid64_to_binary32("4", "[abe1345d833d6b0b]", "[898cd61c]", "0x20")
+ self.bid64_to_binary32("4", "[ac442f5df29aeee1]", "[8f6eec3e]", "0x20")
+ self.bid64_to_binary32("4", "[acb70105df3d47cb]", "[95a05080]", "0x20")
+ self.bid64_to_binary32("4", "[ad814c1d40d23351]", "[9f2c718f]", "0x20")
+ self.bid64_to_binary32("4", "[ade2ec6b64bf3205]", "[a4bdbf34]", "0x20")
+ self.bid64_to_binary32("4", "[ae5100e91aa27c10]", "[ab06b750]", "0x20")
+ self.bid64_to_binary32("4", "[aea132645e1ba93f]", "[ae142980]", "0x20")
+ self.bid64_to_binary32("4", "[af20fe93dea50b6c]", "[b49646ae]", "0x20")
+ self.bid64_to_binary32("4", "[af86ecf96983918e]", "[baff8334]", "0x20")
+ self.bid64_to_binary32("4", "[b0c00000004d7c6d]", "[bd500000]", "0x00")
+ self.bid64_to_binary32("4", "[b0c2faf07fffffff]", "[cb000000]", "0x20")
+ self.bid64_to_binary32("4", "[b12c34ffffffffff]", "[d1000000]", "0x20")
+ self.bid64_to_binary32("4", "[b1a000000000000f]", "[bfc00000]", "0x00")
+ self.bid64_to_binary32("4", "[b1c0000000000001]", "[bf800000]", "0x00")
+ self.bid64_to_binary32("4", "[b1c0000000000040]", "[c2800000]", "0x00")
+ self.bid64_to_binary32("4", "[b1c00000000003e7]", "[c479c000]", "0x00")
+ self.bid64_to_binary32("4", "[b1c00000000003e8]", "[c47a0000]", "0x00")
+ self.bid64_to_binary32("4", "[b25a369f8a0902de]", "[e07ffd6e]", "0x20")
+ self.bid64_to_binary32("4", "[b2cab8b4dd16f1df]", "[e67f9ee7]", "0x20")
+ self.bid64_to_binary32("4", "[b3319b96f36ec68b]", "[ebccfb40]", "0x20")
+ self.bid64_to_binary32("4", "[b391025d42033846]", "[f0c15f64]", "0x20")
+ self.bid64_to_binary32("4", "[b3d608e7907c5218]", "[f443b54c]", "0x20")
+ self.bid64_to_binary32("4", "[b4ac16d993f27f88]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[b4ac16d993f27f89]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[b4ac16d9a0095928]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("4", "[b4ac16d9a0095929]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("4", "[ead840293ad68f5b]", "[85410ff2]", "0x20")
+ self.bid64_to_binary32("4", "[eb426a519502caeb]", "[9aea37ec]", "0x20")
+ self.bid64_to_binary32("4", "[ebfb86ebe2df8032]", "[c11fffe2]", "0x20")
+ self.bid64_to_binary32("4", "[ec1386f26fc0ffff]", "[c61c4000]", "0x20")
+ self.bid64_to_binary32("4", "[ec6386f258ffffff]", "[d6b5e620]", "0x20")
+ self.bid64_to_binary32("4", "[ec7b86f133333333]", "[dbb1a2b6]", "0x20")
+ self.bid64_to_binary32("4", "[f7fb86f26fc0ffff]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("4", "[f800000000000000]", "[ff800000]", "0x00")
+ self.bid64_to_binary32("0", "[0000000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("1", "[0000000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("2", "[0000000000000001]", "[00000001]", "0x30")
+ self.bid64_to_binary32("3", "[0000000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("4", "[0000000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("0", "[00038d7ea4c67fff]", "[00000000]", "0x30")
+ self.bid64_to_binary32("1", "[00038d7ea4c67fff]", "[00000000]", "0x30")
+ self.bid64_to_binary32("2", "[00038d7ea4c67fff]", "[00000001]", "0x30")
+ self.bid64_to_binary32("3", "[00038d7ea4c67fff]", "[00000000]", "0x30")
+ self.bid64_to_binary32("4", "[00038d7ea4c67fff]", "[00000000]", "0x30")
+ self.bid64_to_binary32("0", "[01e0000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("1", "[01e0000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("2", "[01e0000000000001]", "[00000001]", "0x30")
+ self.bid64_to_binary32("3", "[01e0000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("4", "[01e0000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("0", "[0200000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("1", "[0200000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("2", "[0200000000000001]", "[00000001]", "0x30")
+ self.bid64_to_binary32("3", "[0200000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("4", "[0200000000000001]", "[00000000]", "0x30")
+ self.bid64_to_binary32("0", "[2a319c03c40b2180]", "[00000000]", "0x30")
+ self.bid64_to_binary32("1", "[2a319c03c40b2180]", "[00000000]", "0x30")
+ self.bid64_to_binary32("2", "[2a319c03c40b2180]", "[00000001]", "0x30")
+ self.bid64_to_binary32("3", "[2a319c03c40b2180]", "[00000000]", "0x30")
+ self.bid64_to_binary32("4", "[2a319c03c40b2180]", "[00000000]", "0x30")
+ self.bid64_to_binary32("0", "[2a44f1aa50561d26]", "[00000001]", "0x30")
+ self.bid64_to_binary32("1", "[2a44f1aa50561d26]", "[00000000]", "0x30")
+ self.bid64_to_binary32("2", "[2a44f1aa50561d26]", "[00000001]", "0x30")
+ self.bid64_to_binary32("3", "[2a44f1aa50561d26]", "[00000000]", "0x30")
+ self.bid64_to_binary32("4", "[2a44f1aa50561d26]", "[00000001]", "0x30")
+ self.bid64_to_binary32("0", "[2a44fa793930bcd1]", "[00000001]", "0x30")
+ self.bid64_to_binary32("1", "[2a44fa793930bcd1]", "[00000000]", "0x30")
+ self.bid64_to_binary32("2", "[2a44fa793930bcd1]", "[00000001]", "0x30")
+ self.bid64_to_binary32("3", "[2a44fa793930bcd1]", "[00000000]", "0x30")
+ self.bid64_to_binary32("4", "[2a44fa793930bcd1]", "[00000001]", "0x30")
+ self.bid64_to_binary32("0", "[2a44fa793930bcd2]", "[00000001]", "0x30")
+ self.bid64_to_binary32("1", "[2a44fa793930bcd2]", "[00000001]", "0x30")
+ self.bid64_to_binary32("2", "[2a44fa793930bcd2]", "[00000002]", "0x30")
+ self.bid64_to_binary32("3", "[2a44fa793930bcd2]", "[00000001]", "0x30")
+ self.bid64_to_binary32("4", "[2a44fa793930bcd2]", "[00000001]", "0x30")
+ self.bid64_to_binary32("0", "[2a6e94fa71ab1db7]", "[0000001d]", "0x30")
+ self.bid64_to_binary32("1", "[2a6e94fa71ab1db7]", "[0000001d]", "0x30")
+ self.bid64_to_binary32("2", "[2a6e94fa71ab1db7]", "[0000001e]", "0x30")
+ self.bid64_to_binary32("3", "[2a6e94fa71ab1db7]", "[0000001d]", "0x30")
+ self.bid64_to_binary32("4", "[2a6e94fa71ab1db7]", "[0000001d]", "0x30")
+ self.bid64_to_binary32("0", "[2a81ed766d11001d]", "[00000027]", "0x30")
+ self.bid64_to_binary32("1", "[2a81ed766d11001d]", "[00000026]", "0x30")
+ self.bid64_to_binary32("2", "[2a81ed766d11001d]", "[00000027]", "0x30")
+ self.bid64_to_binary32("3", "[2a81ed766d11001d]", "[00000026]", "0x30")
+ self.bid64_to_binary32("4", "[2a81ed766d11001d]", "[00000027]", "0x30")
+ self.bid64_to_binary32("0", "[2aa141af412d1729]", "[000000fc]", "0x30")
+ self.bid64_to_binary32("1", "[2aa141af412d1729]", "[000000fc]", "0x30")
+ self.bid64_to_binary32("2", "[2aa141af412d1729]", "[000000fd]", "0x30")
+ self.bid64_to_binary32("3", "[2aa141af412d1729]", "[000000fc]", "0x30")
+ self.bid64_to_binary32("4", "[2aa141af412d1729]", "[000000fc]", "0x30")
+ self.bid64_to_binary32("0", "[2aa75ff61e520bfa]", "[000005c9]", "0x30")
+ self.bid64_to_binary32("1", "[2aa75ff61e520bfa]", "[000005c9]", "0x30")
+ self.bid64_to_binary32("2", "[2aa75ff61e520bfa]", "[000005ca]", "0x30")
+ self.bid64_to_binary32("3", "[2aa75ff61e520bfa]", "[000005c9]", "0x30")
+ self.bid64_to_binary32("4", "[2aa75ff61e520bfa]", "[000005c9]", "0x30")
+ self.bid64_to_binary32("0", "[2ac75ff61e520bfa]", "[000039de]", "0x30")
+ self.bid64_to_binary32("1", "[2ac75ff61e520bfa]", "[000039dd]", "0x30")
+ self.bid64_to_binary32("2", "[2ac75ff61e520bfa]", "[000039de]", "0x30")
+ self.bid64_to_binary32("3", "[2ac75ff61e520bfa]", "[000039dd]", "0x30")
+ self.bid64_to_binary32("4", "[2ac75ff61e520bfa]", "[000039de]", "0x30")
+ self.bid64_to_binary32("0", "[2ae123cc906326f3]", "[00005970]", "0x30")
+ self.bid64_to_binary32("1", "[2ae123cc906326f3]", "[0000596f]", "0x30")
+ self.bid64_to_binary32("2", "[2ae123cc906326f3]", "[00005970]", "0x30")
+ self.bid64_to_binary32("3", "[2ae123cc906326f3]", "[0000596f]", "0x30")
+ self.bid64_to_binary32("4", "[2ae123cc906326f3]", "[00005970]", "0x30")
+ self.bid64_to_binary32("0", "[2ae48f32418c9bcc]", "[000165bf]", "0x30")
+ self.bid64_to_binary32("1", "[2ae48f32418c9bcc]", "[000165be]", "0x30")
+ self.bid64_to_binary32("2", "[2ae48f32418c9bcc]", "[000165bf]", "0x30")
+ self.bid64_to_binary32("3", "[2ae48f32418c9bcc]", "[000165be]", "0x30")
+ self.bid64_to_binary32("4", "[2ae48f32418c9bcc]", "[000165bf]", "0x30")
+ self.bid64_to_binary32("0", "[2b0a70c3af28dd5e]", "[00200000]", "0x30")
+ self.bid64_to_binary32("1", "[2b0a70c3af28dd5e]", "[001fffff]", "0x30")
+ self.bid64_to_binary32("2", "[2b0a70c3af28dd5e]", "[00200000]", "0x30")
+ self.bid64_to_binary32("3", "[2b0a70c3af28dd5e]", "[001fffff]", "0x30")
+ self.bid64_to_binary32("4", "[2b0a70c3af28dd5e]", "[00200000]", "0x30")
+ self.bid64_to_binary32("0", "[2b0a70c3af28dd5f]", "[00200000]", "0x30")
+ self.bid64_to_binary32("1", "[2b0a70c3af28dd5f]", "[001fffff]", "0x30")
+ self.bid64_to_binary32("2", "[2b0a70c3af28dd5f]", "[00200000]", "0x30")
+ self.bid64_to_binary32("3", "[2b0a70c3af28dd5f]", "[001fffff]", "0x30")
+ self.bid64_to_binary32("4", "[2b0a70c3af28dd5f]", "[00200000]", "0x30")
+ self.bid64_to_binary32("0", "[2b14e1875e51babd]", "[003fffff]", "0x30")
+ self.bid64_to_binary32("1", "[2b14e1875e51babd]", "[003fffff]", "0x30")
+ self.bid64_to_binary32("2", "[2b14e1875e51babd]", "[00400000]", "0x30")
+ self.bid64_to_binary32("3", "[2b14e1875e51babd]", "[003fffff]", "0x30")
+ self.bid64_to_binary32("4", "[2b14e1875e51babd]", "[003fffff]", "0x30")
+ self.bid64_to_binary32("0", "[2b14e1875e51babe]", "[00400000]", "0x30")
+ self.bid64_to_binary32("1", "[2b14e1875e51babe]", "[003fffff]", "0x30")
+ self.bid64_to_binary32("2", "[2b14e1875e51babe]", "[00400000]", "0x30")
+ self.bid64_to_binary32("3", "[2b14e1875e51babe]", "[003fffff]", "0x30")
+ self.bid64_to_binary32("4", "[2b14e1875e51babe]", "[00400000]", "0x30")
+ self.bid64_to_binary32("0", "[2b158c3cf6ba79d1]", "[00420b38]", "0x30")
+ self.bid64_to_binary32("1", "[2b158c3cf6ba79d1]", "[00420b38]", "0x30")
+ self.bid64_to_binary32("2", "[2b158c3cf6ba79d1]", "[00420b39]", "0x30")
+ self.bid64_to_binary32("3", "[2b158c3cf6ba79d1]", "[00420b38]", "0x30")
+ self.bid64_to_binary32("4", "[2b158c3cf6ba79d1]", "[00420b38]", "0x30")
+ self.bid64_to_binary32("0", "[2b242d1b1b375b8f]", "[00800000]", "0x20")
+ self.bid64_to_binary32("1", "[2b242d1b1b375b8f]", "[007fffff]", "0x30")
+ self.bid64_to_binary32("2", "[2b242d1b1b375b8f]", "[00800000]", "0x20")
+ self.bid64_to_binary32("3", "[2b242d1b1b375b8f]", "[007fffff]", "0x30")
+ self.bid64_to_binary32("4", "[2b242d1b1b375b8f]", "[00800000]", "0x20")
+ self.bid64_to_binary32("0", "[2b242d1b1b375b90]", "[00800000]", "0x20")
+ self.bid64_to_binary32("1", "[2b242d1b1b375b90]", "[00800000]", "0x20")
+ self.bid64_to_binary32("2", "[2b242d1b1b375b90]", "[00800001]", "0x20")
+ self.bid64_to_binary32("3", "[2b242d1b1b375b90]", "[00800000]", "0x20")
+ self.bid64_to_binary32("4", "[2b242d1b1b375b90]", "[00800000]", "0x20")
+ self.bid64_to_binary32("0", "[2b27b50e5594de5e]", "[00ec39fe]", "0x20")
+ self.bid64_to_binary32("1", "[2b27b50e5594de5e]", "[00ec39fd]", "0x20")
+ self.bid64_to_binary32("2", "[2b27b50e5594de5e]", "[00ec39fe]", "0x20")
+ self.bid64_to_binary32("3", "[2b27b50e5594de5e]", "[00ec39fd]", "0x20")
+ self.bid64_to_binary32("4", "[2b27b50e5594de5e]", "[00ec39fe]", "0x20")
+ self.bid64_to_binary32("0", "[2b285a36366eb71f]", "[01000000]", "0x20")
+ self.bid64_to_binary32("1", "[2b285a36366eb71f]", "[00ffffff]", "0x20")
+ self.bid64_to_binary32("2", "[2b285a36366eb71f]", "[01000000]", "0x20")
+ self.bid64_to_binary32("3", "[2b285a36366eb71f]", "[00ffffff]", "0x20")
+ self.bid64_to_binary32("4", "[2b285a36366eb71f]", "[01000000]", "0x20")
+ self.bid64_to_binary32("0", "[2b285a36366eb720]", "[01000000]", "0x20")
+ self.bid64_to_binary32("1", "[2b285a36366eb720]", "[01000000]", "0x20")
+ self.bid64_to_binary32("2", "[2b285a36366eb720]", "[01000001]", "0x20")
+ self.bid64_to_binary32("3", "[2b285a36366eb720]", "[01000000]", "0x20")
+ self.bid64_to_binary32("4", "[2b285a36366eb720]", "[01000000]", "0x20")
+ self.bid64_to_binary32("0", "[2b4050960200d375]", "[00607b87]", "0x30")
+ self.bid64_to_binary32("1", "[2b4050960200d375]", "[00607b87]", "0x30")
+ self.bid64_to_binary32("2", "[2b4050960200d375]", "[00607b88]", "0x30")
+ self.bid64_to_binary32("3", "[2b4050960200d375]", "[00607b87]", "0x30")
+ self.bid64_to_binary32("4", "[2b4050960200d375]", "[00607b87]", "0x30")
+ self.bid64_to_binary32("0", "[2b4ec8f0a72815d2]", "[030d9c86]", "0x20")
+ self.bid64_to_binary32("1", "[2b4ec8f0a72815d2]", "[030d9c85]", "0x20")
+ self.bid64_to_binary32("2", "[2b4ec8f0a72815d2]", "[030d9c86]", "0x20")
+ self.bid64_to_binary32("3", "[2b4ec8f0a72815d2]", "[030d9c85]", "0x20")
+ self.bid64_to_binary32("4", "[2b4ec8f0a72815d2]", "[030d9c86]", "0x20")
+ self.bid64_to_binary32("0", "[2b6ec8f0a72815d2]", "[04b103a7]", "0x20")
+ self.bid64_to_binary32("1", "[2b6ec8f0a72815d2]", "[04b103a7]", "0x20")
+ self.bid64_to_binary32("2", "[2b6ec8f0a72815d2]", "[04b103a8]", "0x20")
+ self.bid64_to_binary32("3", "[2b6ec8f0a72815d2]", "[04b103a7]", "0x20")
+ self.bid64_to_binary32("4", "[2b6ec8f0a72815d2]", "[04b103a7]", "0x20")
+ self.bid64_to_binary32("0", "[2b840854fc62021f]", "[05716699]", "0x20")
+ self.bid64_to_binary32("1", "[2b840854fc62021f]", "[05716699]", "0x20")
+ self.bid64_to_binary32("2", "[2b840854fc62021f]", "[0571669a]", "0x20")
+ self.bid64_to_binary32("3", "[2b840854fc62021f]", "[05716699]", "0x20")
+ self.bid64_to_binary32("4", "[2b840854fc62021f]", "[05716699]", "0x20")
+ self.bid64_to_binary32("0", "[2b95820c3849fd45]", "[06a0f124]", "0x20")
+ self.bid64_to_binary32("1", "[2b95820c3849fd45]", "[06a0f123]", "0x20")
+ self.bid64_to_binary32("2", "[2b95820c3849fd45]", "[06a0f124]", "0x20")
+ self.bid64_to_binary32("3", "[2b95820c3849fd45]", "[06a0f123]", "0x20")
+ self.bid64_to_binary32("4", "[2b95820c3849fd45]", "[06a0f124]", "0x20")
+ self.bid64_to_binary32("0", "[2bace6f69f948677]", "[07f15d44]", "0x20")
+ self.bid64_to_binary32("1", "[2bace6f69f948677]", "[07f15d44]", "0x20")
+ self.bid64_to_binary32("2", "[2bace6f69f948677]", "[07f15d45]", "0x20")
+ self.bid64_to_binary32("3", "[2bace6f69f948677]", "[07f15d44]", "0x20")
+ self.bid64_to_binary32("4", "[2bace6f69f948677]", "[07f15d44]", "0x20")
+ self.bid64_to_binary32("0", "[2bc9766517e3ced7]", "[095d4558]", "0x20")
+ self.bid64_to_binary32("1", "[2bc9766517e3ced7]", "[095d4558]", "0x20")
+ self.bid64_to_binary32("2", "[2bc9766517e3ced7]", "[095d4559]", "0x20")
+ self.bid64_to_binary32("3", "[2bc9766517e3ced7]", "[095d4558]", "0x20")
+ self.bid64_to_binary32("4", "[2bc9766517e3ced7]", "[095d4558]", "0x20")
+ self.bid64_to_binary32("0", "[2be1345d833d6b0b]", "[098cd61c]", "0x20")
+ self.bid64_to_binary32("1", "[2be1345d833d6b0b]", "[098cd61b]", "0x20")
+ self.bid64_to_binary32("2", "[2be1345d833d6b0b]", "[098cd61c]", "0x20")
+ self.bid64_to_binary32("3", "[2be1345d833d6b0b]", "[098cd61b]", "0x20")
+ self.bid64_to_binary32("4", "[2be1345d833d6b0b]", "[098cd61c]", "0x20")
+ self.bid64_to_binary32("0", "[2c1ae83da9c69d5e]", "[0d75c7d8]", "0x20")
+ self.bid64_to_binary32("1", "[2c1ae83da9c69d5e]", "[0d75c7d8]", "0x20")
+ self.bid64_to_binary32("2", "[2c1ae83da9c69d5e]", "[0d75c7d9]", "0x20")
+ self.bid64_to_binary32("3", "[2c1ae83da9c69d5e]", "[0d75c7d8]", "0x20")
+ self.bid64_to_binary32("4", "[2c1ae83da9c69d5e]", "[0d75c7d8]", "0x20")
+ self.bid64_to_binary32("0", "[2c23a7842d2b655f]", "[0da6e6d5]", "0x20")
+ self.bid64_to_binary32("1", "[2c23a7842d2b655f]", "[0da6e6d4]", "0x20")
+ self.bid64_to_binary32("2", "[2c23a7842d2b655f]", "[0da6e6d5]", "0x20")
+ self.bid64_to_binary32("3", "[2c23a7842d2b655f]", "[0da6e6d4]", "0x20")
+ self.bid64_to_binary32("4", "[2c23a7842d2b655f]", "[0da6e6d5]", "0x20")
+ self.bid64_to_binary32("0", "[2c4043ece2b7c4c1]", "[0d725d9e]", "0x20")
+ self.bid64_to_binary32("1", "[2c4043ece2b7c4c1]", "[0d725d9e]", "0x20")
+ self.bid64_to_binary32("2", "[2c4043ece2b7c4c1]", "[0d725d9f]", "0x20")
+ self.bid64_to_binary32("3", "[2c4043ece2b7c4c1]", "[0d725d9e]", "0x20")
+ self.bid64_to_binary32("4", "[2c4043ece2b7c4c1]", "[0d725d9e]", "0x20")
+ self.bid64_to_binary32("0", "[2c6d6149635c502d]", "[11eeb528]", "0x20")
+ self.bid64_to_binary32("1", "[2c6d6149635c502d]", "[11eeb528]", "0x20")
+ self.bid64_to_binary32("2", "[2c6d6149635c502d]", "[11eeb529]", "0x20")
+ self.bid64_to_binary32("3", "[2c6d6149635c502d]", "[11eeb528]", "0x20")
+ self.bid64_to_binary32("4", "[2c6d6149635c502d]", "[11eeb528]", "0x20")
+ self.bid64_to_binary32("0", "[2c82b33b9106354f]", "[1270dc04]", "0x20")
+ self.bid64_to_binary32("1", "[2c82b33b9106354f]", "[1270dc04]", "0x20")
+ self.bid64_to_binary32("2", "[2c82b33b9106354f]", "[1270dc05]", "0x20")
+ self.bid64_to_binary32("3", "[2c82b33b9106354f]", "[1270dc04]", "0x20")
+ self.bid64_to_binary32("4", "[2c82b33b9106354f]", "[1270dc04]", "0x20")
+ self.bid64_to_binary32("0", "[2c9d94aec9819007]", "[1424eb1e]", "0x20")
+ self.bid64_to_binary32("1", "[2c9d94aec9819007]", "[1424eb1e]", "0x20")
+ self.bid64_to_binary32("2", "[2c9d94aec9819007]", "[1424eb1f]", "0x20")
+ self.bid64_to_binary32("3", "[2c9d94aec9819007]", "[1424eb1e]", "0x20")
+ self.bid64_to_binary32("4", "[2c9d94aec9819007]", "[1424eb1e]", "0x20")
+ self.bid64_to_binary32("0", "[2cb70105df3d47cb]", "[15a05080]", "0x20")
+ self.bid64_to_binary32("1", "[2cb70105df3d47cb]", "[15a0507f]", "0x20")
+ self.bid64_to_binary32("2", "[2cb70105df3d47cb]", "[15a05080]", "0x20")
+ self.bid64_to_binary32("3", "[2cb70105df3d47cb]", "[15a0507f]", "0x20")
+ self.bid64_to_binary32("4", "[2cb70105df3d47cb]", "[15a05080]", "0x20")
+ self.bid64_to_binary32("0", "[2cc3192f36748489]", "[15d7ece3]", "0x20")
+ self.bid64_to_binary32("1", "[2cc3192f36748489]", "[15d7ece2]", "0x20")
+ self.bid64_to_binary32("2", "[2cc3192f36748489]", "[15d7ece3]", "0x20")
+ self.bid64_to_binary32("3", "[2cc3192f36748489]", "[15d7ece2]", "0x20")
+ self.bid64_to_binary32("4", "[2cc3192f36748489]", "[15d7ece3]", "0x20")
+ self.bid64_to_binary32("0", "[2ce05b4a5dae2c19]", "[15f88430]", "0x20")
+ self.bid64_to_binary32("1", "[2ce05b4a5dae2c19]", "[15f8842f]", "0x20")
+ self.bid64_to_binary32("2", "[2ce05b4a5dae2c19]", "[15f88430]", "0x20")
+ self.bid64_to_binary32("3", "[2ce05b4a5dae2c19]", "[15f8842f]", "0x20")
+ self.bid64_to_binary32("4", "[2ce05b4a5dae2c19]", "[15f88430]", "0x20")
+ self.bid64_to_binary32("0", "[2cf70105df3d47cb]", "[18fa7dc8]", "0x20")
+ self.bid64_to_binary32("1", "[2cf70105df3d47cb]", "[18fa7dc7]", "0x20")
+ self.bid64_to_binary32("2", "[2cf70105df3d47cb]", "[18fa7dc8]", "0x20")
+ self.bid64_to_binary32("3", "[2cf70105df3d47cb]", "[18fa7dc7]", "0x20")
+ self.bid64_to_binary32("4", "[2cf70105df3d47cb]", "[18fa7dc8]", "0x20")
+ self.bid64_to_binary32("0", "[2d11d5274fe72614]", "[1a72b9a7]", "0x20")
+ self.bid64_to_binary32("1", "[2d11d5274fe72614]", "[1a72b9a6]", "0x20")
+ self.bid64_to_binary32("2", "[2d11d5274fe72614]", "[1a72b9a7]", "0x20")
+ self.bid64_to_binary32("3", "[2d11d5274fe72614]", "[1a72b9a6]", "0x20")
+ self.bid64_to_binary32("4", "[2d11d5274fe72614]", "[1a72b9a7]", "0x20")
+ self.bid64_to_binary32("0", "[2d2108c61caad38b]", "[1a0cc727]", "0x20")
+ self.bid64_to_binary32("1", "[2d2108c61caad38b]", "[1a0cc726]", "0x20")
+ self.bid64_to_binary32("2", "[2d2108c61caad38b]", "[1a0cc727]", "0x20")
+ self.bid64_to_binary32("3", "[2d2108c61caad38b]", "[1a0cc726]", "0x20")
+ self.bid64_to_binary32("4", "[2d2108c61caad38b]", "[1a0cc727]", "0x20")
+ self.bid64_to_binary32("0", "[2d3e75a79609be4a]", "[1c818f8e]", "0x20")
+ self.bid64_to_binary32("1", "[2d3e75a79609be4a]", "[1c818f8e]", "0x20")
+ self.bid64_to_binary32("2", "[2d3e75a79609be4a]", "[1c818f8f]", "0x20")
+ self.bid64_to_binary32("3", "[2d3e75a79609be4a]", "[1c818f8e]", "0x20")
+ self.bid64_to_binary32("4", "[2d3e75a79609be4a]", "[1c818f8e]", "0x20")
+ self.bid64_to_binary32("0", "[2d548590cda34c17]", "[1dda397e]", "0x20")
+ self.bid64_to_binary32("1", "[2d548590cda34c17]", "[1dda397e]", "0x20")
+ self.bid64_to_binary32("2", "[2d548590cda34c17]", "[1dda397f]", "0x20")
+ self.bid64_to_binary32("3", "[2d548590cda34c17]", "[1dda397e]", "0x20")
+ self.bid64_to_binary32("4", "[2d548590cda34c17]", "[1dda397e]", "0x20")
+ self.bid64_to_binary32("0", "[2d66c088c46f932b]", "[1eb38052]", "0x20")
+ self.bid64_to_binary32("1", "[2d66c088c46f932b]", "[1eb38052]", "0x20")
+ self.bid64_to_binary32("2", "[2d66c088c46f932b]", "[1eb38053]", "0x20")
+ self.bid64_to_binary32("3", "[2d66c088c46f932b]", "[1eb38052]", "0x20")
+ self.bid64_to_binary32("4", "[2d66c088c46f932b]", "[1eb38052]", "0x20")
+ self.bid64_to_binary32("0", "[2d814c1d40d23351]", "[1f2c718f]", "0x20")
+ self.bid64_to_binary32("1", "[2d814c1d40d23351]", "[1f2c718e]", "0x20")
+ self.bid64_to_binary32("2", "[2d814c1d40d23351]", "[1f2c718f]", "0x20")
+ self.bid64_to_binary32("3", "[2d814c1d40d23351]", "[1f2c718e]", "0x20")
+ self.bid64_to_binary32("4", "[2d814c1d40d23351]", "[1f2c718f]", "0x20")
+ self.bid64_to_binary32("0", "[2db7f43203347727]", "[22f8c05c]", "0x20")
+ self.bid64_to_binary32("1", "[2db7f43203347727]", "[22f8c05b]", "0x20")
+ self.bid64_to_binary32("2", "[2db7f43203347727]", "[22f8c05c]", "0x20")
+ self.bid64_to_binary32("3", "[2db7f43203347727]", "[22f8c05b]", "0x20")
+ self.bid64_to_binary32("4", "[2db7f43203347727]", "[22f8c05c]", "0x20")
+ self.bid64_to_binary32("0", "[2dc4ca70670a7e3b]", "[2378c05c]", "0x20")
+ self.bid64_to_binary32("1", "[2dc4ca70670a7e3b]", "[2378c05b]", "0x20")
+ self.bid64_to_binary32("2", "[2dc4ca70670a7e3b]", "[2378c05c]", "0x20")
+ self.bid64_to_binary32("3", "[2dc4ca70670a7e3b]", "[2378c05b]", "0x20")
+ self.bid64_to_binary32("4", "[2dc4ca70670a7e3b]", "[2378c05c]", "0x20")
+ self.bid64_to_binary32("0", "[2de0cf9e9fd76667]", "[23d28d23]", "0x20")
+ self.bid64_to_binary32("1", "[2de0cf9e9fd76667]", "[23d28d23]", "0x20")
+ self.bid64_to_binary32("2", "[2de0cf9e9fd76667]", "[23d28d24]", "0x20")
+ self.bid64_to_binary32("3", "[2de0cf9e9fd76667]", "[23d28d23]", "0x20")
+ self.bid64_to_binary32("4", "[2de0cf9e9fd76667]", "[23d28d23]", "0x20")
+ self.bid64_to_binary32("0", "[2de5d8d6c97e640a]", "[253dbf34]", "0x20")
+ self.bid64_to_binary32("1", "[2de5d8d6c97e640a]", "[253dbf33]", "0x20")
+ self.bid64_to_binary32("2", "[2de5d8d6c97e640a]", "[253dbf34]", "0x20")
+ self.bid64_to_binary32("3", "[2de5d8d6c97e640a]", "[253dbf33]", "0x20")
+ self.bid64_to_binary32("4", "[2de5d8d6c97e640a]", "[253dbf34]", "0x20")
+ self.bid64_to_binary32("0", "[2e05d8d6c97e640a]", "[26ed2f01]", "0x20")
+ self.bid64_to_binary32("1", "[2e05d8d6c97e640a]", "[26ed2f00]", "0x20")
+ self.bid64_to_binary32("2", "[2e05d8d6c97e640a]", "[26ed2f01]", "0x20")
+ self.bid64_to_binary32("3", "[2e05d8d6c97e640a]", "[26ed2f00]", "0x20")
+ self.bid64_to_binary32("4", "[2e05d8d6c97e640a]", "[26ed2f01]", "0x20")
+ self.bid64_to_binary32("0", "[2e20888df12b9d45]", "[26d86112]", "0x20")
+ self.bid64_to_binary32("1", "[2e20888df12b9d45]", "[26d86111]", "0x20")
+ self.bid64_to_binary32("2", "[2e20888df12b9d45]", "[26d86112]", "0x20")
+ self.bid64_to_binary32("3", "[2e20888df12b9d45]", "[26d86111]", "0x20")
+ self.bid64_to_binary32("4", "[2e20888df12b9d45]", "[26d86112]", "0x20")
+ self.bid64_to_binary32("0", "[2e5100e91aa27c10]", "[2b06b750]", "0x20")
+ self.bid64_to_binary32("1", "[2e5100e91aa27c10]", "[2b06b74f]", "0x20")
+ self.bid64_to_binary32("2", "[2e5100e91aa27c10]", "[2b06b750]", "0x20")
+ self.bid64_to_binary32("3", "[2e5100e91aa27c10]", "[2b06b74f]", "0x20")
+ self.bid64_to_binary32("4", "[2e5100e91aa27c10]", "[2b06b750]", "0x20")
+ self.bid64_to_binary32("0", "[2e63d29032408016]", "[2b976ce3]", "0x20")
+ self.bid64_to_binary32("1", "[2e63d29032408016]", "[2b976ce2]", "0x20")
+ self.bid64_to_binary32("2", "[2e63d29032408016]", "[2b976ce3]", "0x20")
+ self.bid64_to_binary32("3", "[2e63d29032408016]", "[2b976ce2]", "0x20")
+ self.bid64_to_binary32("4", "[2e63d29032408016]", "[2b976ce3]", "0x20")
+ self.bid64_to_binary32("0", "[2e808db8d9fce5fb]", "[2bdb4de6]", "0x20")
+ self.bid64_to_binary32("1", "[2e808db8d9fce5fb]", "[2bdb4de5]", "0x20")
+ self.bid64_to_binary32("2", "[2e808db8d9fce5fb]", "[2bdb4de6]", "0x20")
+ self.bid64_to_binary32("3", "[2e808db8d9fce5fb]", "[2bdb4de5]", "0x20")
+ self.bid64_to_binary32("4", "[2e808db8d9fce5fb]", "[2bdb4de6]", "0x20")
+ self.bid64_to_binary32("0", "[2e9daf06ecb15bd6]", "[2eb7bbb3]", "0x20")
+ self.bid64_to_binary32("1", "[2e9daf06ecb15bd6]", "[2eb7bbb2]", "0x20")
+ self.bid64_to_binary32("2", "[2e9daf06ecb15bd6]", "[2eb7bbb3]", "0x20")
+ self.bid64_to_binary32("3", "[2e9daf06ecb15bd6]", "[2eb7bbb2]", "0x20")
+ self.bid64_to_binary32("4", "[2e9daf06ecb15bd6]", "[2eb7bbb3]", "0x20")
+ self.bid64_to_binary32("0", "[2ea132645e1ba93f]", "[2e142980]", "0x20")
+ self.bid64_to_binary32("1", "[2ea132645e1ba93f]", "[2e142980]", "0x20")
+ self.bid64_to_binary32("2", "[2ea132645e1ba93f]", "[2e142981]", "0x20")
+ self.bid64_to_binary32("3", "[2ea132645e1ba93f]", "[2e142980]", "0x20")
+ self.bid64_to_binary32("4", "[2ea132645e1ba93f]", "[2e142980]", "0x20")
+ self.bid64_to_binary32("0", "[2ec132645e1ba93f]", "[2fb933e0]", "0x20")
+ self.bid64_to_binary32("1", "[2ec132645e1ba93f]", "[2fb933e0]", "0x20")
+ self.bid64_to_binary32("2", "[2ec132645e1ba93f]", "[2fb933e1]", "0x20")
+ self.bid64_to_binary32("3", "[2ec132645e1ba93f]", "[2fb933e0]", "0x20")
+ self.bid64_to_binary32("4", "[2ec132645e1ba93f]", "[2fb933e0]", "0x20")
+ self.bid64_to_binary32("0", "[2ec264c8bc37527e]", "[303933e0]", "0x20")
+ self.bid64_to_binary32("1", "[2ec264c8bc37527e]", "[303933e0]", "0x20")
+ self.bid64_to_binary32("2", "[2ec264c8bc37527e]", "[303933e1]", "0x20")
+ self.bid64_to_binary32("3", "[2ec264c8bc37527e]", "[303933e0]", "0x20")
+ self.bid64_to_binary32("4", "[2ec264c8bc37527e]", "[303933e0]", "0x20")
+ self.bid64_to_binary32("0", "[2f06139ec6ef984b]", "[3437a7bc]", "0x20")
+ self.bid64_to_binary32("1", "[2f06139ec6ef984b]", "[3437a7bc]", "0x20")
+ self.bid64_to_binary32("2", "[2f06139ec6ef984b]", "[3437a7bd]", "0x20")
+ self.bid64_to_binary32("3", "[2f06139ec6ef984b]", "[3437a7bc]", "0x20")
+ self.bid64_to_binary32("4", "[2f06139ec6ef984b]", "[3437a7bc]", "0x20")
+ self.bid64_to_binary32("0", "[2f20fe93dea50b6c]", "[349646ae]", "0x20")
+ self.bid64_to_binary32("1", "[2f20fe93dea50b6c]", "[349646ae]", "0x20")
+ self.bid64_to_binary32("2", "[2f20fe93dea50b6c]", "[349646af]", "0x20")
+ self.bid64_to_binary32("3", "[2f20fe93dea50b6c]", "[349646ae]", "0x20")
+ self.bid64_to_binary32("4", "[2f20fe93dea50b6c]", "[349646ae]", "0x20")
+ self.bid64_to_binary32("0", "[2f55a1ae8f631b44]", "[387f6168]", "0x20")
+ self.bid64_to_binary32("1", "[2f55a1ae8f631b44]", "[387f6168]", "0x20")
+ self.bid64_to_binary32("2", "[2f55a1ae8f631b44]", "[387f6169]", "0x20")
+ self.bid64_to_binary32("3", "[2f55a1ae8f631b44]", "[387f6168]", "0x20")
+ self.bid64_to_binary32("4", "[2f55a1ae8f631b44]", "[387f6168]", "0x20")
+ self.bid64_to_binary32("0", "[2f6448ca2ed1de44]", "[38fce70a]", "0x20")
+ self.bid64_to_binary32("1", "[2f6448ca2ed1de44]", "[38fce70a]", "0x20")
+ self.bid64_to_binary32("2", "[2f6448ca2ed1de44]", "[38fce70b]", "0x20")
+ self.bid64_to_binary32("3", "[2f6448ca2ed1de44]", "[38fce70a]", "0x20")
+ self.bid64_to_binary32("4", "[2f6448ca2ed1de44]", "[38fce70a]", "0x20")
+ self.bid64_to_binary32("0", "[2fab197a685a3dae]", "[3cfff006]", "0x20")
+ self.bid64_to_binary32("1", "[2fab197a685a3dae]", "[3cfff006]", "0x20")
+ self.bid64_to_binary32("2", "[2fab197a685a3dae]", "[3cfff007]", "0x20")
+ self.bid64_to_binary32("3", "[2fab197a685a3dae]", "[3cfff006]", "0x20")
+ self.bid64_to_binary32("4", "[2fab197a685a3dae]", "[3cfff006]", "0x20")
+ self.bid64_to_binary32("0", "[2fc2384be833bcb2]", "[3d7ff020]", "0x20")
+ self.bid64_to_binary32("1", "[2fc2384be833bcb2]", "[3d7ff020]", "0x20")
+ self.bid64_to_binary32("2", "[2fc2384be833bcb2]", "[3d7ff021]", "0x20")
+ self.bid64_to_binary32("3", "[2fc2384be833bcb2]", "[3d7ff020]", "0x20")
+ self.bid64_to_binary32("4", "[2fc2384be833bcb2]", "[3d7ff020]", "0x20")
+ self.bid64_to_binary32("0", "[300b5e61319787d6]", "[41ffffec]", "0x20")
+ self.bid64_to_binary32("1", "[300b5e61319787d6]", "[41ffffec]", "0x20")
+ self.bid64_to_binary32("2", "[300b5e61319787d6]", "[41ffffed]", "0x20")
+ self.bid64_to_binary32("3", "[300b5e61319787d6]", "[41ffffec]", "0x20")
+ self.bid64_to_binary32("4", "[300b5e61319787d6]", "[41ffffec]", "0x20")
+ self.bid64_to_binary32("0", "[30224613993ee295]", "[427ffffe]", "0x20")
+ self.bid64_to_binary32("1", "[30224613993ee295]", "[427ffffe]", "0x20")
+ self.bid64_to_binary32("2", "[30224613993ee295]", "[427fffff]", "0x20")
+ self.bid64_to_binary32("3", "[30224613993ee295]", "[427ffffe]", "0x20")
+ self.bid64_to_binary32("4", "[30224613993ee295]", "[427ffffe]", "0x20")
+ self.bid64_to_binary32("0", "[305d1a94a1ffffff]", "[46000000]", "0x20")
+ self.bid64_to_binary32("1", "[305d1a94a1ffffff]", "[45ffffff]", "0x20")
+ self.bid64_to_binary32("2", "[305d1a94a1ffffff]", "[46000000]", "0x20")
+ self.bid64_to_binary32("3", "[305d1a94a1ffffff]", "[45ffffff]", "0x20")
+ self.bid64_to_binary32("4", "[305d1a94a1ffffff]", "[46000000]", "0x20")
+ self.bid64_to_binary32("0", "[3065d21db9ffffff]", "[46800000]", "0x20")
+ self.bid64_to_binary32("1", "[3065d21db9ffffff]", "[467fffff]", "0x20")
+ self.bid64_to_binary32("2", "[3065d21db9ffffff]", "[46800000]", "0x20")
+ self.bid64_to_binary32("3", "[3065d21db9ffffff]", "[467fffff]", "0x20")
+ self.bid64_to_binary32("4", "[3065d21db9ffffff]", "[46800000]", "0x20")
+ self.bid64_to_binary32("0", "[30812a05f1ffffff]", "[47000000]", "0x20")
+ self.bid64_to_binary32("1", "[30812a05f1ffffff]", "[46ffffff]", "0x20")
+ self.bid64_to_binary32("2", "[30812a05f1ffffff]", "[47000000]", "0x20")
+ self.bid64_to_binary32("3", "[30812a05f1ffffff]", "[46ffffff]", "0x20")
+ self.bid64_to_binary32("4", "[30812a05f1ffffff]", "[47000000]", "0x20")
+ self.bid64_to_binary32("0", "[30aee6b27fffffff]", "[4a800000]", "0x20")
+ self.bid64_to_binary32("1", "[30aee6b27fffffff]", "[4a7fffff]", "0x20")
+ self.bid64_to_binary32("2", "[30aee6b27fffffff]", "[4a800000]", "0x20")
+ self.bid64_to_binary32("3", "[30aee6b27fffffff]", "[4a7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[30aee6b27fffffff]", "[4a800000]", "0x20")
+ self.bid64_to_binary32("0", "[30c00000004d7c6d]", "[3d500000]", "0x00")
+ self.bid64_to_binary32("1", "[30c00000004d7c6d]", "[3d500000]", "0x00")
+ self.bid64_to_binary32("2", "[30c00000004d7c6d]", "[3d500000]", "0x00")
+ self.bid64_to_binary32("3", "[30c00000004d7c6d]", "[3d500000]", "0x00")
+ self.bid64_to_binary32("4", "[30c00000004d7c6d]", "[3d500000]", "0x00")
+ self.bid64_to_binary32("0", "[30c2faf07fffffff]", "[4b000000]", "0x20")
+ self.bid64_to_binary32("1", "[30c2faf07fffffff]", "[4affffff]", "0x20")
+ self.bid64_to_binary32("2", "[30c2faf07fffffff]", "[4b000000]", "0x20")
+ self.bid64_to_binary32("3", "[30c2faf07fffffff]", "[4affffff]", "0x20")
+ self.bid64_to_binary32("4", "[30c2faf07fffffff]", "[4b000000]", "0x20")
+ self.bid64_to_binary32("0", "[3107a11fffffffff]", "[4f000000]", "0x20")
+ self.bid64_to_binary32("1", "[3107a11fffffffff]", "[4effffff]", "0x20")
+ self.bid64_to_binary32("2", "[3107a11fffffffff]", "[4f000000]", "0x20")
+ self.bid64_to_binary32("3", "[3107a11fffffffff]", "[4effffff]", "0x20")
+ self.bid64_to_binary32("4", "[3107a11fffffffff]", "[4f000000]", "0x20")
+ self.bid64_to_binary32("0", "[3121869fffffffff]", "[4f800000]", "0x20")
+ self.bid64_to_binary32("1", "[3121869fffffffff]", "[4f7fffff]", "0x20")
+ self.bid64_to_binary32("2", "[3121869fffffffff]", "[4f800000]", "0x20")
+ self.bid64_to_binary32("3", "[3121869fffffffff]", "[4f7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[3121869fffffffff]", "[4f800000]", "0x20")
+ self.bid64_to_binary32("0", "[315387ffffffffff]", "[53000000]", "0x20")
+ self.bid64_to_binary32("1", "[315387ffffffffff]", "[52ffffff]", "0x20")
+ self.bid64_to_binary32("2", "[315387ffffffffff]", "[53000000]", "0x20")
+ self.bid64_to_binary32("3", "[315387ffffffffff]", "[52ffffff]", "0x20")
+ self.bid64_to_binary32("4", "[315387ffffffffff]", "[53000000]", "0x20")
+ self.bid64_to_binary32("0", "[3163e7ffffffffff]", "[53800000]", "0x20")
+ self.bid64_to_binary32("1", "[3163e7ffffffffff]", "[537fffff]", "0x20")
+ self.bid64_to_binary32("2", "[3163e7ffffffffff]", "[53800000]", "0x20")
+ self.bid64_to_binary32("3", "[3163e7ffffffffff]", "[537fffff]", "0x20")
+ self.bid64_to_binary32("4", "[3163e7ffffffffff]", "[53800000]", "0x20")
+ self.bid64_to_binary32("0", "[31a000000000000f]", "[3fc00000]", "0x00")
+ self.bid64_to_binary32("1", "[31a000000000000f]", "[3fc00000]", "0x00")
+ self.bid64_to_binary32("2", "[31a000000000000f]", "[3fc00000]", "0x00")
+ self.bid64_to_binary32("3", "[31a000000000000f]", "[3fc00000]", "0x00")
+ self.bid64_to_binary32("4", "[31a000000000000f]", "[3fc00000]", "0x00")
+ self.bid64_to_binary32("0", "[31a9ffffffffffff]", "[57800000]", "0x20")
+ self.bid64_to_binary32("1", "[31a9ffffffffffff]", "[577fffff]", "0x20")
+ self.bid64_to_binary32("2", "[31a9ffffffffffff]", "[57800000]", "0x20")
+ self.bid64_to_binary32("3", "[31a9ffffffffffff]", "[577fffff]", "0x20")
+ self.bid64_to_binary32("4", "[31a9ffffffffffff]", "[57800000]", "0x20")
+ self.bid64_to_binary32("0", "[31c0000000000000]", "[00000000]", "0x00")
+ self.bid64_to_binary32("1", "[31c0000000000000]", "[00000000]", "0x00")
+ self.bid64_to_binary32("2", "[31c0000000000000]", "[00000000]", "0x00")
+ self.bid64_to_binary32("3", "[31c0000000000000]", "[00000000]", "0x00")
+ self.bid64_to_binary32("4", "[31c0000000000000]", "[00000000]", "0x00")
+ self.bid64_to_binary32("0", "[31c0000000000001]", "[3f800000]", "0x00")
+ self.bid64_to_binary32("1", "[31c0000000000001]", "[3f800000]", "0x00")
+ self.bid64_to_binary32("2", "[31c0000000000001]", "[3f800000]", "0x00")
+ self.bid64_to_binary32("3", "[31c0000000000001]", "[3f800000]", "0x00")
+ self.bid64_to_binary32("4", "[31c0000000000001]", "[3f800000]", "0x00")
+ self.bid64_to_binary32("0", "[31c0000000000040]", "[42800000]", "0x00")
+ self.bid64_to_binary32("1", "[31c0000000000040]", "[42800000]", "0x00")
+ self.bid64_to_binary32("2", "[31c0000000000040]", "[42800000]", "0x00")
+ self.bid64_to_binary32("3", "[31c0000000000040]", "[42800000]", "0x00")
+ self.bid64_to_binary32("4", "[31c0000000000040]", "[42800000]", "0x00")
+ self.bid64_to_binary32("0", "[31c00000000003e7]", "[4479c000]", "0x00")
+ self.bid64_to_binary32("1", "[31c00000000003e7]", "[4479c000]", "0x00")
+ self.bid64_to_binary32("2", "[31c00000000003e7]", "[4479c000]", "0x00")
+ self.bid64_to_binary32("3", "[31c00000000003e7]", "[4479c000]", "0x00")
+ self.bid64_to_binary32("4", "[31c00000000003e7]", "[4479c000]", "0x00")
+ self.bid64_to_binary32("0", "[31c00000000003e8]", "[447a0000]", "0x00")
+ self.bid64_to_binary32("1", "[31c00000000003e8]", "[447a0000]", "0x00")
+ self.bid64_to_binary32("2", "[31c00000000003e8]", "[447a0000]", "0x00")
+ self.bid64_to_binary32("3", "[31c00000000003e8]", "[447a0000]", "0x00")
+ self.bid64_to_binary32("4", "[31c00000000003e8]", "[447a0000]", "0x00")
+ self.bid64_to_binary32("0", "[31c1ffffffffffff]", "[58000000]", "0x20")
+ self.bid64_to_binary32("1", "[31c1ffffffffffff]", "[57ffffff]", "0x20")
+ self.bid64_to_binary32("2", "[31c1ffffffffffff]", "[58000000]", "0x20")
+ self.bid64_to_binary32("3", "[31c1ffffffffffff]", "[57ffffff]", "0x20")
+ self.bid64_to_binary32("4", "[31c1ffffffffffff]", "[58000000]", "0x20")
+ self.bid64_to_binary32("0", "[31f9999973333333]", "[5b7ffffe]", "0x20")
+ self.bid64_to_binary32("1", "[31f9999973333333]", "[5b7ffffe]", "0x20")
+ self.bid64_to_binary32("2", "[31f9999973333333]", "[5b7fffff]", "0x20")
+ self.bid64_to_binary32("3", "[31f9999973333333]", "[5b7ffffe]", "0x20")
+ self.bid64_to_binary32("4", "[31f9999973333333]", "[5b7ffffe]", "0x20")
+ self.bid64_to_binary32("0", "[32051eb83d70a3d7]", "[5bfffffc]", "0x20")
+ self.bid64_to_binary32("1", "[32051eb83d70a3d7]", "[5bfffffb]", "0x20")
+ self.bid64_to_binary32("2", "[32051eb83d70a3d7]", "[5bfffffc]", "0x20")
+ self.bid64_to_binary32("3", "[32051eb83d70a3d7]", "[5bfffffb]", "0x20")
+ self.bid64_to_binary32("4", "[32051eb83d70a3d7]", "[5bfffffc]", "0x20")
+ self.bid64_to_binary32("0", "[320a3d707ae147ae]", "[5c7ffffc]", "0x20")
+ self.bid64_to_binary32("1", "[320a3d707ae147ae]", "[5c7ffffb]", "0x20")
+ self.bid64_to_binary32("2", "[320a3d707ae147ae]", "[5c7ffffc]", "0x20")
+ self.bid64_to_binary32("3", "[320a3d707ae147ae]", "[5c7ffffb]", "0x20")
+ self.bid64_to_binary32("4", "[320a3d707ae147ae]", "[5c7ffffc]", "0x20")
+ self.bid64_to_binary32("0", "[324d1b6fc504816f]", "[5fffffdf]", "0x20")
+ self.bid64_to_binary32("1", "[324d1b6fc504816f]", "[5fffffde]", "0x20")
+ self.bid64_to_binary32("2", "[324d1b6fc504816f]", "[5fffffdf]", "0x20")
+ self.bid64_to_binary32("3", "[324d1b6fc504816f]", "[5fffffde]", "0x20")
+ self.bid64_to_binary32("4", "[324d1b6fc504816f]", "[5fffffdf]", "0x20")
+ self.bid64_to_binary32("0", "[325a369f8a0902de]", "[607ffd6e]", "0x20")
+ self.bid64_to_binary32("1", "[325a369f8a0902de]", "[607ffd6d]", "0x20")
+ self.bid64_to_binary32("2", "[325a369f8a0902de]", "[607ffd6e]", "0x20")
+ self.bid64_to_binary32("3", "[325a369f8a0902de]", "[607ffd6d]", "0x20")
+ self.bid64_to_binary32("4", "[325a369f8a0902de]", "[607ffd6e]", "0x20")
+ self.bid64_to_binary32("0", "[32a6b3885172b95b]", "[647fa25f]", "0x20")
+ self.bid64_to_binary32("1", "[32a6b3885172b95b]", "[647fa25e]", "0x20")
+ self.bid64_to_binary32("2", "[32a6b3885172b95b]", "[647fa25f]", "0x20")
+ self.bid64_to_binary32("3", "[32a6b3885172b95b]", "[647fa25e]", "0x20")
+ self.bid64_to_binary32("4", "[32a6b3885172b95b]", "[647fa25f]", "0x20")
+ self.bid64_to_binary32("0", "[32ad4f10a2e572b6]", "[64fdd89b]", "0x20")
+ self.bid64_to_binary32("1", "[32ad4f10a2e572b6]", "[64fdd89b]", "0x20")
+ self.bid64_to_binary32("2", "[32ad4f10a2e572b6]", "[64fdd89c]", "0x20")
+ self.bid64_to_binary32("3", "[32ad4f10a2e572b6]", "[64fdd89b]", "0x20")
+ self.bid64_to_binary32("4", "[32ad4f10a2e572b6]", "[64fdd89b]", "0x20")
+ self.bid64_to_binary32("0", "[32f031bdc5d16393]", "[6871505c]", "0x20")
+ self.bid64_to_binary32("1", "[32f031bdc5d16393]", "[6871505b]", "0x20")
+ self.bid64_to_binary32("2", "[32f031bdc5d16393]", "[6871505c]", "0x20")
+ self.bid64_to_binary32("3", "[32f031bdc5d16393]", "[6871505b]", "0x20")
+ self.bid64_to_binary32("4", "[32f031bdc5d16393]", "[6871505c]", "0x20")
+ self.bid64_to_binary32("0", "[32fe637b8ba2c726]", "[68e269a9]", "0x20")
+ self.bid64_to_binary32("1", "[32fe637b8ba2c726]", "[68e269a9]", "0x20")
+ self.bid64_to_binary32("2", "[32fe637b8ba2c726]", "[68e269aa]", "0x20")
+ self.bid64_to_binary32("3", "[32fe637b8ba2c726]", "[68e269a9]", "0x20")
+ self.bid64_to_binary32("4", "[32fe637b8ba2c726]", "[68e269a9]", "0x20")
+ self.bid64_to_binary32("0", "[331809f2c129e0b7]", "[6a5fe11c]", "0x20")
+ self.bid64_to_binary32("1", "[331809f2c129e0b7]", "[6a5fe11b]", "0x20")
+ self.bid64_to_binary32("2", "[331809f2c129e0b7]", "[6a5fe11c]", "0x20")
+ self.bid64_to_binary32("3", "[331809f2c129e0b7]", "[6a5fe11b]", "0x20")
+ self.bid64_to_binary32("4", "[331809f2c129e0b7]", "[6a5fe11c]", "0x20")
+ self.bid64_to_binary32("0", "[3326bdf1d70a1fe4]", "[6b1cf948]", "0x20")
+ self.bid64_to_binary32("1", "[3326bdf1d70a1fe4]", "[6b1cf947]", "0x20")
+ self.bid64_to_binary32("2", "[3326bdf1d70a1fe4]", "[6b1cf948]", "0x20")
+ self.bid64_to_binary32("3", "[3326bdf1d70a1fe4]", "[6b1cf947]", "0x20")
+ self.bid64_to_binary32("4", "[3326bdf1d70a1fe4]", "[6b1cf948]", "0x20")
+ self.bid64_to_binary32("0", "[33319b96f36ec68b]", "[6bccfb40]", "0x20")
+ self.bid64_to_binary32("1", "[33319b96f36ec68b]", "[6bccfb3f]", "0x20")
+ self.bid64_to_binary32("2", "[33319b96f36ec68b]", "[6bccfb40]", "0x20")
+ self.bid64_to_binary32("3", "[33319b96f36ec68b]", "[6bccfb3f]", "0x20")
+ self.bid64_to_binary32("4", "[33319b96f36ec68b]", "[6bccfb40]", "0x20")
+ self.bid64_to_binary32("0", "[3345c1c39ea07d62]", "[6ca78c2f]", "0x20")
+ self.bid64_to_binary32("1", "[3345c1c39ea07d62]", "[6ca78c2e]", "0x20")
+ self.bid64_to_binary32("2", "[3345c1c39ea07d62]", "[6ca78c2f]", "0x20")
+ self.bid64_to_binary32("3", "[3345c1c39ea07d62]", "[6ca78c2e]", "0x20")
+ self.bid64_to_binary32("4", "[3345c1c39ea07d62]", "[6ca78c2f]", "0x20")
+ self.bid64_to_binary32("0", "[336bf881dc671d64]", "[6ed9bf10]", "0x20")
+ self.bid64_to_binary32("1", "[336bf881dc671d64]", "[6ed9bf10]", "0x20")
+ self.bid64_to_binary32("2", "[336bf881dc671d64]", "[6ed9bf11]", "0x20")
+ self.bid64_to_binary32("3", "[336bf881dc671d64]", "[6ed9bf10]", "0x20")
+ self.bid64_to_binary32("4", "[336bf881dc671d64]", "[6ed9bf10]", "0x20")
+ self.bid64_to_binary32("0", "[33719b96f36ec68b]", "[6f20244a]", "0x20")
+ self.bid64_to_binary32("1", "[33719b96f36ec68b]", "[6f202449]", "0x20")
+ self.bid64_to_binary32("2", "[33719b96f36ec68b]", "[6f20244a]", "0x20")
+ self.bid64_to_binary32("3", "[33719b96f36ec68b]", "[6f202449]", "0x20")
+ self.bid64_to_binary32("4", "[33719b96f36ec68b]", "[6f20244a]", "0x20")
+ self.bid64_to_binary32("0", "[338bf881dc671d64]", "[7088176a]", "0x20")
+ self.bid64_to_binary32("1", "[338bf881dc671d64]", "[7088176a]", "0x20")
+ self.bid64_to_binary32("2", "[338bf881dc671d64]", "[7088176b]", "0x20")
+ self.bid64_to_binary32("3", "[338bf881dc671d64]", "[7088176a]", "0x20")
+ self.bid64_to_binary32("4", "[338bf881dc671d64]", "[7088176a]", "0x20")
+ self.bid64_to_binary32("0", "[33919b96f36ec68b]", "[70c82d5c]", "0x20")
+ self.bid64_to_binary32("1", "[33919b96f36ec68b]", "[70c82d5c]", "0x20")
+ self.bid64_to_binary32("2", "[33919b96f36ec68b]", "[70c82d5d]", "0x20")
+ self.bid64_to_binary32("3", "[33919b96f36ec68b]", "[70c82d5c]", "0x20")
+ self.bid64_to_binary32("4", "[33919b96f36ec68b]", "[70c82d5c]", "0x20")
+ self.bid64_to_binary32("0", "[33ce5f9eb18201d8]", "[73ff532e]", "0x20")
+ self.bid64_to_binary32("1", "[33ce5f9eb18201d8]", "[73ff532e]", "0x20")
+ self.bid64_to_binary32("2", "[33ce5f9eb18201d8]", "[73ff532f]", "0x20")
+ self.bid64_to_binary32("3", "[33ce5f9eb18201d8]", "[73ff532e]", "0x20")
+ self.bid64_to_binary32("4", "[33ce5f9eb18201d8]", "[73ff532e]", "0x20")
+ self.bid64_to_binary32("0", "[33d608e7907c5218]", "[7443b54c]", "0x20")
+ self.bid64_to_binary32("1", "[33d608e7907c5218]", "[7443b54c]", "0x20")
+ self.bid64_to_binary32("2", "[33d608e7907c5218]", "[7443b54d]", "0x20")
+ self.bid64_to_binary32("3", "[33d608e7907c5218]", "[7443b54c]", "0x20")
+ self.bid64_to_binary32("4", "[33d608e7907c5218]", "[7443b54c]", "0x20")
+ self.bid64_to_binary32("0", "[33e6a2c98ebde545]", "[751358a8]", "0x20")
+ self.bid64_to_binary32("1", "[33e6a2c98ebde545]", "[751358a7]", "0x20")
+ self.bid64_to_binary32("2", "[33e6a2c98ebde545]", "[751358a8]", "0x20")
+ self.bid64_to_binary32("3", "[33e6a2c98ebde545]", "[751358a7]", "0x20")
+ self.bid64_to_binary32("4", "[33e6a2c98ebde545]", "[751358a8]", "0x20")
+ self.bid64_to_binary32("0", "[341a8b263af79514]", "[77b82ed2]", "0x20")
+ self.bid64_to_binary32("1", "[341a8b263af79514]", "[77b82ed1]", "0x20")
+ self.bid64_to_binary32("2", "[341a8b263af79514]", "[77b82ed2]", "0x20")
+ self.bid64_to_binary32("3", "[341a8b263af79514]", "[77b82ed1]", "0x20")
+ self.bid64_to_binary32("4", "[341a8b263af79514]", "[77b82ed2]", "0x20")
+ self.bid64_to_binary32("0", "[3431f55b23c8bf2d]", "[791bc3b5]", "0x20")
+ self.bid64_to_binary32("1", "[3431f55b23c8bf2d]", "[791bc3b4]", "0x20")
+ self.bid64_to_binary32("2", "[3431f55b23c8bf2d]", "[791bc3b5]", "0x20")
+ self.bid64_to_binary32("3", "[3431f55b23c8bf2d]", "[791bc3b4]", "0x20")
+ self.bid64_to_binary32("4", "[3431f55b23c8bf2d]", "[791bc3b5]", "0x20")
+ self.bid64_to_binary32("0", "[344577623ce08817]", "[79ed1099]", "0x20")
+ self.bid64_to_binary32("1", "[344577623ce08817]", "[79ed1098]", "0x20")
+ self.bid64_to_binary32("2", "[344577623ce08817]", "[79ed1099]", "0x20")
+ self.bid64_to_binary32("3", "[344577623ce08817]", "[79ed1098]", "0x20")
+ self.bid64_to_binary32("4", "[344577623ce08817]", "[79ed1099]", "0x20")
+ self.bid64_to_binary32("0", "[344aeec479c1102e]", "[7a6d1099]", "0x20")
+ self.bid64_to_binary32("1", "[344aeec479c1102e]", "[7a6d1098]", "0x20")
+ self.bid64_to_binary32("2", "[344aeec479c1102e]", "[7a6d1099]", "0x20")
+ self.bid64_to_binary32("3", "[344aeec479c1102e]", "[7a6d1098]", "0x20")
+ self.bid64_to_binary32("4", "[344aeec479c1102e]", "[7a6d1099]", "0x20")
+ self.bid64_to_binary32("0", "[3478849dd33c95af]", "[7ca62402]", "0x20")
+ self.bid64_to_binary32("1", "[3478849dd33c95af]", "[7ca62402]", "0x20")
+ self.bid64_to_binary32("2", "[3478849dd33c95af]", "[7ca62403]", "0x20")
+ self.bid64_to_binary32("3", "[3478849dd33c95af]", "[7ca62402]", "0x20")
+ self.bid64_to_binary32("4", "[3478849dd33c95af]", "[7ca62402]", "0x20")
+ self.bid64_to_binary32("0", "[34842fc69945497a]", "[7d0dd92d]", "0x20")
+ self.bid64_to_binary32("1", "[34842fc69945497a]", "[7d0dd92d]", "0x20")
+ self.bid64_to_binary32("2", "[34842fc69945497a]", "[7d0dd92e]", "0x20")
+ self.bid64_to_binary32("3", "[34842fc69945497a]", "[7d0dd92d]", "0x20")
+ self.bid64_to_binary32("4", "[34842fc69945497a]", "[7d0dd92d]", "0x20")
+ self.bid64_to_binary32("0", "[34ac16d993f27f88]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("1", "[34ac16d993f27f88]", "[7f7ffffe]", "0x20")
+ self.bid64_to_binary32("2", "[34ac16d993f27f88]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("3", "[34ac16d993f27f88]", "[7f7ffffe]", "0x20")
+ self.bid64_to_binary32("4", "[34ac16d993f27f88]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("0", "[34ac16d993f27f89]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("1", "[34ac16d993f27f89]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("2", "[34ac16d993f27f89]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("3", "[34ac16d993f27f89]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[34ac16d993f27f89]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("0", "[34ac16d9a0095928]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("1", "[34ac16d9a0095928]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("2", "[34ac16d9a0095928]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("3", "[34ac16d9a0095928]", "[7f7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[34ac16d9a0095928]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("0", "[34ac16d9a0095929]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("1", "[34ac16d9a0095929]", "[7f7fffff]", "0x28")
+ self.bid64_to_binary32("2", "[34ac16d9a0095929]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("3", "[34ac16d9a0095929]", "[7f7fffff]", "0x28")
+ self.bid64_to_binary32("4", "[34ac16d9a0095929]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("0", "[6af98a5fcdb8d437]", "[0bf51900]", "0x20")
+ self.bid64_to_binary32("1", "[6af98a5fcdb8d437]", "[0bf51900]", "0x20")
+ self.bid64_to_binary32("2", "[6af98a5fcdb8d437]", "[0bf51901]", "0x20")
+ self.bid64_to_binary32("3", "[6af98a5fcdb8d437]", "[0bf51900]", "0x20")
+ self.bid64_to_binary32("4", "[6af98a5fcdb8d437]", "[0bf51900]", "0x20")
+ self.bid64_to_binary32("0", "[6b116b7f5bf619d9]", "[10ee7e12]", "0x20")
+ self.bid64_to_binary32("1", "[6b116b7f5bf619d9]", "[10ee7e11]", "0x20")
+ self.bid64_to_binary32("2", "[6b116b7f5bf619d9]", "[10ee7e12]", "0x20")
+ self.bid64_to_binary32("3", "[6b116b7f5bf619d9]", "[10ee7e11]", "0x20")
+ self.bid64_to_binary32("4", "[6b116b7f5bf619d9]", "[10ee7e12]", "0x20")
+ self.bid64_to_binary32("0", "[6b6206a25682726d]", "[218d568f]", "0x20")
+ self.bid64_to_binary32("1", "[6b6206a25682726d]", "[218d568e]", "0x20")
+ self.bid64_to_binary32("2", "[6b6206a25682726d]", "[218d568f]", "0x20")
+ self.bid64_to_binary32("3", "[6b6206a25682726d]", "[218d568e]", "0x20")
+ self.bid64_to_binary32("4", "[6b6206a25682726d]", "[218d568f]", "0x20")
+ self.bid64_to_binary32("0", "[6b8b0fc62594fa4f]", "[29de3aba]", "0x20")
+ self.bid64_to_binary32("1", "[6b8b0fc62594fa4f]", "[29de3aba]", "0x20")
+ self.bid64_to_binary32("2", "[6b8b0fc62594fa4f]", "[29de3abb]", "0x20")
+ self.bid64_to_binary32("3", "[6b8b0fc62594fa4f]", "[29de3aba]", "0x20")
+ self.bid64_to_binary32("4", "[6b8b0fc62594fa4f]", "[29de3aba]", "0x20")
+ self.bid64_to_binary32("0", "[6bbb2bab5b1c9e73]", "[33d497d7]", "0x20")
+ self.bid64_to_binary32("1", "[6bbb2bab5b1c9e73]", "[33d497d7]", "0x20")
+ self.bid64_to_binary32("2", "[6bbb2bab5b1c9e73]", "[33d497d8]", "0x20")
+ self.bid64_to_binary32("3", "[6bbb2bab5b1c9e73]", "[33d497d7]", "0x20")
+ self.bid64_to_binary32("4", "[6bbb2bab5b1c9e73]", "[33d497d7]", "0x20")
+ self.bid64_to_binary32("0", "[6bcad86484f1bcbb]", "[37248d5d]", "0x20")
+ self.bid64_to_binary32("1", "[6bcad86484f1bcbb]", "[37248d5c]", "0x20")
+ self.bid64_to_binary32("2", "[6bcad86484f1bcbb]", "[37248d5d]", "0x20")
+ self.bid64_to_binary32("3", "[6bcad86484f1bcbb]", "[37248d5c]", "0x20")
+ self.bid64_to_binary32("4", "[6bcad86484f1bcbb]", "[37248d5d]", "0x20")
+ self.bid64_to_binary32("0", "[6bdb783cd788d689]", "[3a82dc2a]", "0x20")
+ self.bid64_to_binary32("1", "[6bdb783cd788d689]", "[3a82dc29]", "0x20")
+ self.bid64_to_binary32("2", "[6bdb783cd788d689]", "[3a82dc2a]", "0x20")
+ self.bid64_to_binary32("3", "[6bdb783cd788d689]", "[3a82dc29]", "0x20")
+ self.bid64_to_binary32("4", "[6bdb783cd788d689]", "[3a82dc2a]", "0x20")
+ self.bid64_to_binary32("0", "[6be3861d8e3c7ded]", "[3c23d334]", "0x20")
+ self.bid64_to_binary32("1", "[6be3861d8e3c7ded]", "[3c23d334]", "0x20")
+ self.bid64_to_binary32("2", "[6be3861d8e3c7ded]", "[3c23d335]", "0x20")
+ self.bid64_to_binary32("3", "[6be3861d8e3c7ded]", "[3c23d334]", "0x20")
+ self.bid64_to_binary32("4", "[6be3861d8e3c7ded]", "[3c23d334]", "0x20")
+ self.bid64_to_binary32("0", "[6bf386e0f355acff]", "[3f7fff82]", "0x20")
+ self.bid64_to_binary32("1", "[6bf386e0f355acff]", "[3f7fff81]", "0x20")
+ self.bid64_to_binary32("2", "[6bf386e0f355acff]", "[3f7fff82]", "0x20")
+ self.bid64_to_binary32("3", "[6bf386e0f355acff]", "[3f7fff81]", "0x20")
+ self.bid64_to_binary32("4", "[6bf386e0f355acff]", "[3f7fff82]", "0x20")
+ self.bid64_to_binary32("0", "[6bfb86ebe2df8032]", "[411fffe2]", "0x20")
+ self.bid64_to_binary32("1", "[6bfb86ebe2df8032]", "[411fffe2]", "0x20")
+ self.bid64_to_binary32("2", "[6bfb86ebe2df8032]", "[411fffe3]", "0x20")
+ self.bid64_to_binary32("3", "[6bfb86ebe2df8032]", "[411fffe2]", "0x20")
+ self.bid64_to_binary32("4", "[6bfb86ebe2df8032]", "[411fffe2]", "0x20")
+ self.bid64_to_binary32("0", "[6c0b86f26fc0ffff]", "[447a0000]", "0x20")
+ self.bid64_to_binary32("1", "[6c0b86f26fc0ffff]", "[4479ffff]", "0x20")
+ self.bid64_to_binary32("2", "[6c0b86f26fc0ffff]", "[447a0000]", "0x20")
+ self.bid64_to_binary32("3", "[6c0b86f26fc0ffff]", "[4479ffff]", "0x20")
+ self.bid64_to_binary32("4", "[6c0b86f26fc0ffff]", "[447a0000]", "0x20")
+ self.bid64_to_binary32("0", "[6c2386f26fc0ffff]", "[49742400]", "0x20")
+ self.bid64_to_binary32("1", "[6c2386f26fc0ffff]", "[497423ff]", "0x20")
+ self.bid64_to_binary32("2", "[6c2386f26fc0ffff]", "[49742400]", "0x20")
+ self.bid64_to_binary32("3", "[6c2386f26fc0ffff]", "[497423ff]", "0x20")
+ self.bid64_to_binary32("4", "[6c2386f26fc0ffff]", "[49742400]", "0x20")
+ self.bid64_to_binary32("0", "[6c3386f26fc0ffff]", "[4cbebc20]", "0x20")
+ self.bid64_to_binary32("1", "[6c3386f26fc0ffff]", "[4cbebc1f]", "0x20")
+ self.bid64_to_binary32("2", "[6c3386f26fc0ffff]", "[4cbebc20]", "0x20")
+ self.bid64_to_binary32("3", "[6c3386f26fc0ffff]", "[4cbebc1f]", "0x20")
+ self.bid64_to_binary32("4", "[6c3386f26fc0ffff]", "[4cbebc20]", "0x20")
+ self.bid64_to_binary32("0", "[6c3b86f26fc0ffff]", "[4e6e6b28]", "0x20")
+ self.bid64_to_binary32("1", "[6c3b86f26fc0ffff]", "[4e6e6b27]", "0x20")
+ self.bid64_to_binary32("2", "[6c3b86f26fc0ffff]", "[4e6e6b28]", "0x20")
+ self.bid64_to_binary32("3", "[6c3b86f26fc0ffff]", "[4e6e6b27]", "0x20")
+ self.bid64_to_binary32("4", "[6c3b86f26fc0ffff]", "[4e6e6b28]", "0x20")
+ self.bid64_to_binary32("0", "[6c4b86f2638bffff]", "[51ba43b7]", "0x20")
+ self.bid64_to_binary32("1", "[6c4b86f2638bffff]", "[51ba43b6]", "0x20")
+ self.bid64_to_binary32("2", "[6c4b86f2638bffff]", "[51ba43b7]", "0x20")
+ self.bid64_to_binary32("3", "[6c4b86f2638bffff]", "[51ba43b6]", "0x20")
+ self.bid64_to_binary32("4", "[6c4b86f2638bffff]", "[51ba43b7]", "0x20")
+ self.bid64_to_binary32("0", "[6c5b86f226ffffff]", "[551184e6]", "0x20")
+ self.bid64_to_binary32("1", "[6c5b86f226ffffff]", "[551184e5]", "0x20")
+ self.bid64_to_binary32("2", "[6c5b86f226ffffff]", "[551184e6]", "0x20")
+ self.bid64_to_binary32("3", "[6c5b86f226ffffff]", "[551184e5]", "0x20")
+ self.bid64_to_binary32("4", "[6c5b86f226ffffff]", "[551184e6]", "0x20")
+ self.bid64_to_binary32("0", "[6c6386f258ffffff]", "[56b5e620]", "0x20")
+ self.bid64_to_binary32("1", "[6c6386f258ffffff]", "[56b5e620]", "0x20")
+ self.bid64_to_binary32("2", "[6c6386f258ffffff]", "[56b5e621]", "0x20")
+ self.bid64_to_binary32("3", "[6c6386f258ffffff]", "[56b5e620]", "0x20")
+ self.bid64_to_binary32("4", "[6c6386f258ffffff]", "[56b5e620]", "0x20")
+ self.bid64_to_binary32("0", "[6c7386f23fffffff]", "[5a0e1bc9]", "0x20")
+ self.bid64_to_binary32("1", "[6c7386f23fffffff]", "[5a0e1bc8]", "0x20")
+ self.bid64_to_binary32("2", "[6c7386f23fffffff]", "[5a0e1bc9]", "0x20")
+ self.bid64_to_binary32("3", "[6c7386f23fffffff]", "[5a0e1bc8]", "0x20")
+ self.bid64_to_binary32("4", "[6c7386f23fffffff]", "[5a0e1bc9]", "0x20")
+ self.bid64_to_binary32("0", "[6c8b86eed916872b]", "[5f0ac715]", "0x20")
+ self.bid64_to_binary32("1", "[6c8b86eed916872b]", "[5f0ac714]", "0x20")
+ self.bid64_to_binary32("2", "[6c8b86eed916872b]", "[5f0ac715]", "0x20")
+ self.bid64_to_binary32("3", "[6c8b86eed916872b]", "[5f0ac714]", "0x20")
+ self.bid64_to_binary32("4", "[6c8b86eed916872b]", "[5f0ac715]", "0x20")
+ self.bid64_to_binary32("0", "[6c9b844ff43419e3]", "[6258c712]", "0x20")
+ self.bid64_to_binary32("1", "[6c9b844ff43419e3]", "[6258c711]", "0x20")
+ self.bid64_to_binary32("2", "[6c9b844ff43419e3]", "[6258c712]", "0x20")
+ self.bid64_to_binary32("3", "[6c9b844ff43419e3]", "[6258c711]", "0x20")
+ self.bid64_to_binary32("4", "[6c9b844ff43419e3]", "[6258c712]", "0x20")
+ self.bid64_to_binary32("0", "[6ca18da9973d9ec7]", "[63fffdec]", "0x20")
+ self.bid64_to_binary32("1", "[6ca18da9973d9ec7]", "[63fffdec]", "0x20")
+ self.bid64_to_binary32("2", "[6ca18da9973d9ec7]", "[63fffded]", "0x20")
+ self.bid64_to_binary32("3", "[6ca18da9973d9ec7]", "[63fffdec]", "0x20")
+ self.bid64_to_binary32("4", "[6ca18da9973d9ec7]", "[63fffdec]", "0x20")
+ self.bid64_to_binary32("0", "[6cb2f8b4dd16f1df]", "[6750724a]", "0x20")
+ self.bid64_to_binary32("1", "[6cb2f8b4dd16f1df]", "[67507249]", "0x20")
+ self.bid64_to_binary32("2", "[6cb2f8b4dd16f1df]", "[6750724a]", "0x20")
+ self.bid64_to_binary32("3", "[6cb2f8b4dd16f1df]", "[67507249]", "0x20")
+ self.bid64_to_binary32("4", "[6cb2f8b4dd16f1df]", "[6750724a]", "0x20")
+ self.bid64_to_binary32("0", "[77fb86f26fc0ffff]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("1", "[77fb86f26fc0ffff]", "[7f7fffff]", "0x28")
+ self.bid64_to_binary32("2", "[77fb86f26fc0ffff]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("3", "[77fb86f26fc0ffff]", "[7f7fffff]", "0x28")
+ self.bid64_to_binary32("4", "[77fb86f26fc0ffff]", "[7f800000]", "0x28")
+ self.bid64_to_binary32("0", "[7800000000000000]", "[7f800000]", "0x00")
+ self.bid64_to_binary32("1", "[7800000000000000]", "[7f800000]", "0x00")
+ self.bid64_to_binary32("2", "[7800000000000000]", "[7f800000]", "0x00")
+ self.bid64_to_binary32("3", "[7800000000000000]", "[7f800000]", "0x00")
+ self.bid64_to_binary32("4", "[7800000000000000]", "[7f800000]", "0x00")
+ self.bid64_to_binary32("0", "[7c03080000000000]", "[7ff08000]", "0x00")
+ self.bid64_to_binary32("0", "[7e03080000000000]", "[7ff08000]", "0x01")
+ self.bid64_to_binary32("0", "[8000000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("1", "[8000000000000001]", "[80000001]", "0x30")
+ self.bid64_to_binary32("2", "[8000000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[8000000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("4", "[8000000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("0", "[80038d7ea4c67fff]", "[80000000]", "0x30")
+ self.bid64_to_binary32("1", "[80038d7ea4c67fff]", "[80000001]", "0x30")
+ self.bid64_to_binary32("2", "[80038d7ea4c67fff]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[80038d7ea4c67fff]", "[80000000]", "0x30")
+ self.bid64_to_binary32("4", "[80038d7ea4c67fff]", "[80000000]", "0x30")
+ self.bid64_to_binary32("0", "[81e0000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("1", "[81e0000000000001]", "[80000001]", "0x30")
+ self.bid64_to_binary32("2", "[81e0000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[81e0000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("4", "[81e0000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("0", "[8200000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("1", "[8200000000000001]", "[80000001]", "0x30")
+ self.bid64_to_binary32("2", "[8200000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[8200000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("4", "[8200000000000001]", "[80000000]", "0x30")
+ self.bid64_to_binary32("0", "[aa319c03c40b2180]", "[80000000]", "0x30")
+ self.bid64_to_binary32("1", "[aa319c03c40b2180]", "[80000001]", "0x30")
+ self.bid64_to_binary32("2", "[aa319c03c40b2180]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[aa319c03c40b2180]", "[80000000]", "0x30")
+ self.bid64_to_binary32("4", "[aa319c03c40b2180]", "[80000000]", "0x30")
+ self.bid64_to_binary32("0", "[aa44f1aa50561d26]", "[80000001]", "0x30")
+ self.bid64_to_binary32("1", "[aa44f1aa50561d26]", "[80000001]", "0x30")
+ self.bid64_to_binary32("2", "[aa44f1aa50561d26]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[aa44f1aa50561d26]", "[80000000]", "0x30")
+ self.bid64_to_binary32("4", "[aa44f1aa50561d26]", "[80000001]", "0x30")
+ self.bid64_to_binary32("0", "[aa44fa793930bcd1]", "[80000001]", "0x30")
+ self.bid64_to_binary32("1", "[aa44fa793930bcd1]", "[80000001]", "0x30")
+ self.bid64_to_binary32("2", "[aa44fa793930bcd1]", "[80000000]", "0x30")
+ self.bid64_to_binary32("3", "[aa44fa793930bcd1]", "[80000000]", "0x30")
+ self.bid64_to_binary32("4", "[aa44fa793930bcd1]", "[80000001]", "0x30")
+ self.bid64_to_binary32("0", "[aa44fa793930bcd2]", "[80000001]", "0x30")
+ self.bid64_to_binary32("1", "[aa44fa793930bcd2]", "[80000002]", "0x30")
+ self.bid64_to_binary32("2", "[aa44fa793930bcd2]", "[80000001]", "0x30")
+ self.bid64_to_binary32("3", "[aa44fa793930bcd2]", "[80000001]", "0x30")
+ self.bid64_to_binary32("4", "[aa44fa793930bcd2]", "[80000001]", "0x30")
+ self.bid64_to_binary32("0", "[aa6e94fa71ab1db7]", "[8000001d]", "0x30")
+ self.bid64_to_binary32("1", "[aa6e94fa71ab1db7]", "[8000001e]", "0x30")
+ self.bid64_to_binary32("2", "[aa6e94fa71ab1db7]", "[8000001d]", "0x30")
+ self.bid64_to_binary32("3", "[aa6e94fa71ab1db7]", "[8000001d]", "0x30")
+ self.bid64_to_binary32("4", "[aa6e94fa71ab1db7]", "[8000001d]", "0x30")
+ self.bid64_to_binary32("0", "[aa81ed766d11001d]", "[80000027]", "0x30")
+ self.bid64_to_binary32("1", "[aa81ed766d11001d]", "[80000027]", "0x30")
+ self.bid64_to_binary32("2", "[aa81ed766d11001d]", "[80000026]", "0x30")
+ self.bid64_to_binary32("3", "[aa81ed766d11001d]", "[80000026]", "0x30")
+ self.bid64_to_binary32("4", "[aa81ed766d11001d]", "[80000027]", "0x30")
+ self.bid64_to_binary32("0", "[aaa141af412d1729]", "[800000fc]", "0x30")
+ self.bid64_to_binary32("1", "[aaa141af412d1729]", "[800000fd]", "0x30")
+ self.bid64_to_binary32("2", "[aaa141af412d1729]", "[800000fc]", "0x30")
+ self.bid64_to_binary32("3", "[aaa141af412d1729]", "[800000fc]", "0x30")
+ self.bid64_to_binary32("4", "[aaa141af412d1729]", "[800000fc]", "0x30")
+ self.bid64_to_binary32("0", "[aaa75ff61e520bfa]", "[800005c9]", "0x30")
+ self.bid64_to_binary32("1", "[aaa75ff61e520bfa]", "[800005ca]", "0x30")
+ self.bid64_to_binary32("2", "[aaa75ff61e520bfa]", "[800005c9]", "0x30")
+ self.bid64_to_binary32("3", "[aaa75ff61e520bfa]", "[800005c9]", "0x30")
+ self.bid64_to_binary32("4", "[aaa75ff61e520bfa]", "[800005c9]", "0x30")
+ self.bid64_to_binary32("0", "[aac75ff61e520bfa]", "[800039de]", "0x30")
+ self.bid64_to_binary32("1", "[aac75ff61e520bfa]", "[800039de]", "0x30")
+ self.bid64_to_binary32("2", "[aac75ff61e520bfa]", "[800039dd]", "0x30")
+ self.bid64_to_binary32("3", "[aac75ff61e520bfa]", "[800039dd]", "0x30")
+ self.bid64_to_binary32("4", "[aac75ff61e520bfa]", "[800039de]", "0x30")
+ self.bid64_to_binary32("0", "[aae123cc906326f3]", "[80005970]", "0x30")
+ self.bid64_to_binary32("1", "[aae123cc906326f3]", "[80005970]", "0x30")
+ self.bid64_to_binary32("2", "[aae123cc906326f3]", "[8000596f]", "0x30")
+ self.bid64_to_binary32("3", "[aae123cc906326f3]", "[8000596f]", "0x30")
+ self.bid64_to_binary32("4", "[aae123cc906326f3]", "[80005970]", "0x30")
+ self.bid64_to_binary32("0", "[aae48f32418c9bcc]", "[800165bf]", "0x30")
+ self.bid64_to_binary32("1", "[aae48f32418c9bcc]", "[800165bf]", "0x30")
+ self.bid64_to_binary32("2", "[aae48f32418c9bcc]", "[800165be]", "0x30")
+ self.bid64_to_binary32("3", "[aae48f32418c9bcc]", "[800165be]", "0x30")
+ self.bid64_to_binary32("4", "[aae48f32418c9bcc]", "[800165bf]", "0x30")
+ self.bid64_to_binary32("0", "[ab0a70c3af28dd5e]", "[80200000]", "0x30")
+ self.bid64_to_binary32("1", "[ab0a70c3af28dd5e]", "[80200000]", "0x30")
+ self.bid64_to_binary32("2", "[ab0a70c3af28dd5e]", "[801fffff]", "0x30")
+ self.bid64_to_binary32("3", "[ab0a70c3af28dd5e]", "[801fffff]", "0x30")
+ self.bid64_to_binary32("4", "[ab0a70c3af28dd5e]", "[80200000]", "0x30")
+ self.bid64_to_binary32("0", "[ab0a70c3af28dd5f]", "[80200000]", "0x30")
+ self.bid64_to_binary32("1", "[ab0a70c3af28dd5f]", "[80200000]", "0x30")
+ self.bid64_to_binary32("2", "[ab0a70c3af28dd5f]", "[801fffff]", "0x30")
+ self.bid64_to_binary32("3", "[ab0a70c3af28dd5f]", "[801fffff]", "0x30")
+ self.bid64_to_binary32("4", "[ab0a70c3af28dd5f]", "[80200000]", "0x30")
+ self.bid64_to_binary32("0", "[ab14e1875e51babd]", "[803fffff]", "0x30")
+ self.bid64_to_binary32("1", "[ab14e1875e51babd]", "[80400000]", "0x30")
+ self.bid64_to_binary32("2", "[ab14e1875e51babd]", "[803fffff]", "0x30")
+ self.bid64_to_binary32("3", "[ab14e1875e51babd]", "[803fffff]", "0x30")
+ self.bid64_to_binary32("4", "[ab14e1875e51babd]", "[803fffff]", "0x30")
+ self.bid64_to_binary32("0", "[ab14e1875e51babe]", "[80400000]", "0x30")
+ self.bid64_to_binary32("1", "[ab14e1875e51babe]", "[80400000]", "0x30")
+ self.bid64_to_binary32("2", "[ab14e1875e51babe]", "[803fffff]", "0x30")
+ self.bid64_to_binary32("3", "[ab14e1875e51babe]", "[803fffff]", "0x30")
+ self.bid64_to_binary32("4", "[ab14e1875e51babe]", "[80400000]", "0x30")
+ self.bid64_to_binary32("0", "[ab158c3cf6ba79d1]", "[80420b38]", "0x30")
+ self.bid64_to_binary32("1", "[ab158c3cf6ba79d1]", "[80420b39]", "0x30")
+ self.bid64_to_binary32("2", "[ab158c3cf6ba79d1]", "[80420b38]", "0x30")
+ self.bid64_to_binary32("3", "[ab158c3cf6ba79d1]", "[80420b38]", "0x30")
+ self.bid64_to_binary32("4", "[ab158c3cf6ba79d1]", "[80420b38]", "0x30")
+ self.bid64_to_binary32("0", "[ab242d1b1b375b8f]", "[80800000]", "0x20")
+ self.bid64_to_binary32("1", "[ab242d1b1b375b8f]", "[80800000]", "0x20")
+ self.bid64_to_binary32("2", "[ab242d1b1b375b8f]", "[807fffff]", "0x30")
+ self.bid64_to_binary32("3", "[ab242d1b1b375b8f]", "[807fffff]", "0x30")
+ self.bid64_to_binary32("4", "[ab242d1b1b375b8f]", "[80800000]", "0x20")
+ self.bid64_to_binary32("0", "[ab242d1b1b375b90]", "[80800000]", "0x20")
+ self.bid64_to_binary32("1", "[ab242d1b1b375b90]", "[80800001]", "0x20")
+ self.bid64_to_binary32("2", "[ab242d1b1b375b90]", "[80800000]", "0x20")
+ self.bid64_to_binary32("3", "[ab242d1b1b375b90]", "[80800000]", "0x20")
+ self.bid64_to_binary32("4", "[ab242d1b1b375b90]", "[80800000]", "0x20")
+ self.bid64_to_binary32("0", "[ab27b50e5594de5e]", "[80ec39fe]", "0x20")
+ self.bid64_to_binary32("1", "[ab27b50e5594de5e]", "[80ec39fe]", "0x20")
+ self.bid64_to_binary32("2", "[ab27b50e5594de5e]", "[80ec39fd]", "0x20")
+ self.bid64_to_binary32("3", "[ab27b50e5594de5e]", "[80ec39fd]", "0x20")
+ self.bid64_to_binary32("4", "[ab27b50e5594de5e]", "[80ec39fe]", "0x20")
+ self.bid64_to_binary32("0", "[ab285a36366eb71f]", "[81000000]", "0x20")
+ self.bid64_to_binary32("1", "[ab285a36366eb71f]", "[81000000]", "0x20")
+ self.bid64_to_binary32("2", "[ab285a36366eb71f]", "[80ffffff]", "0x20")
+ self.bid64_to_binary32("3", "[ab285a36366eb71f]", "[80ffffff]", "0x20")
+ self.bid64_to_binary32("4", "[ab285a36366eb71f]", "[81000000]", "0x20")
+ self.bid64_to_binary32("0", "[ab285a36366eb720]", "[81000000]", "0x20")
+ self.bid64_to_binary32("1", "[ab285a36366eb720]", "[81000001]", "0x20")
+ self.bid64_to_binary32("2", "[ab285a36366eb720]", "[81000000]", "0x20")
+ self.bid64_to_binary32("3", "[ab285a36366eb720]", "[81000000]", "0x20")
+ self.bid64_to_binary32("4", "[ab285a36366eb720]", "[81000000]", "0x20")
+ self.bid64_to_binary32("0", "[ab4050960200d375]", "[80607b87]", "0x30")
+ self.bid64_to_binary32("1", "[ab4050960200d375]", "[80607b88]", "0x30")
+ self.bid64_to_binary32("2", "[ab4050960200d375]", "[80607b87]", "0x30")
+ self.bid64_to_binary32("3", "[ab4050960200d375]", "[80607b87]", "0x30")
+ self.bid64_to_binary32("4", "[ab4050960200d375]", "[80607b87]", "0x30")
+ self.bid64_to_binary32("0", "[ab4ec8f0a72815d2]", "[830d9c86]", "0x20")
+ self.bid64_to_binary32("1", "[ab4ec8f0a72815d2]", "[830d9c86]", "0x20")
+ self.bid64_to_binary32("2", "[ab4ec8f0a72815d2]", "[830d9c85]", "0x20")
+ self.bid64_to_binary32("3", "[ab4ec8f0a72815d2]", "[830d9c85]", "0x20")
+ self.bid64_to_binary32("4", "[ab4ec8f0a72815d2]", "[830d9c86]", "0x20")
+ self.bid64_to_binary32("0", "[ab6ec8f0a72815d2]", "[84b103a7]", "0x20")
+ self.bid64_to_binary32("1", "[ab6ec8f0a72815d2]", "[84b103a8]", "0x20")
+ self.bid64_to_binary32("2", "[ab6ec8f0a72815d2]", "[84b103a7]", "0x20")
+ self.bid64_to_binary32("3", "[ab6ec8f0a72815d2]", "[84b103a7]", "0x20")
+ self.bid64_to_binary32("4", "[ab6ec8f0a72815d2]", "[84b103a7]", "0x20")
+ self.bid64_to_binary32("0", "[ab840854fc62021f]", "[85716699]", "0x20")
+ self.bid64_to_binary32("1", "[ab840854fc62021f]", "[8571669a]", "0x20")
+ self.bid64_to_binary32("2", "[ab840854fc62021f]", "[85716699]", "0x20")
+ self.bid64_to_binary32("3", "[ab840854fc62021f]", "[85716699]", "0x20")
+ self.bid64_to_binary32("4", "[ab840854fc62021f]", "[85716699]", "0x20")
+ self.bid64_to_binary32("0", "[ab95820c3849fd45]", "[86a0f124]", "0x20")
+ self.bid64_to_binary32("1", "[ab95820c3849fd45]", "[86a0f124]", "0x20")
+ self.bid64_to_binary32("2", "[ab95820c3849fd45]", "[86a0f123]", "0x20")
+ self.bid64_to_binary32("3", "[ab95820c3849fd45]", "[86a0f123]", "0x20")
+ self.bid64_to_binary32("4", "[ab95820c3849fd45]", "[86a0f124]", "0x20")
+ self.bid64_to_binary32("0", "[abace6f69f948677]", "[87f15d44]", "0x20")
+ self.bid64_to_binary32("1", "[abace6f69f948677]", "[87f15d45]", "0x20")
+ self.bid64_to_binary32("2", "[abace6f69f948677]", "[87f15d44]", "0x20")
+ self.bid64_to_binary32("3", "[abace6f69f948677]", "[87f15d44]", "0x20")
+ self.bid64_to_binary32("4", "[abace6f69f948677]", "[87f15d44]", "0x20")
+ self.bid64_to_binary32("0", "[abc9766517e3ced7]", "[895d4558]", "0x20")
+ self.bid64_to_binary32("1", "[abc9766517e3ced7]", "[895d4559]", "0x20")
+ self.bid64_to_binary32("2", "[abc9766517e3ced7]", "[895d4558]", "0x20")
+ self.bid64_to_binary32("3", "[abc9766517e3ced7]", "[895d4558]", "0x20")
+ self.bid64_to_binary32("4", "[abc9766517e3ced7]", "[895d4558]", "0x20")
+ self.bid64_to_binary32("0", "[abe1345d833d6b0b]", "[898cd61c]", "0x20")
+ self.bid64_to_binary32("1", "[abe1345d833d6b0b]", "[898cd61c]", "0x20")
+ self.bid64_to_binary32("2", "[abe1345d833d6b0b]", "[898cd61b]", "0x20")
+ self.bid64_to_binary32("3", "[abe1345d833d6b0b]", "[898cd61b]", "0x20")
+ self.bid64_to_binary32("4", "[abe1345d833d6b0b]", "[898cd61c]", "0x20")
+ self.bid64_to_binary32("0", "[ac1ae83da9c69d5e]", "[8d75c7d8]", "0x20")
+ self.bid64_to_binary32("1", "[ac1ae83da9c69d5e]", "[8d75c7d9]", "0x20")
+ self.bid64_to_binary32("2", "[ac1ae83da9c69d5e]", "[8d75c7d8]", "0x20")
+ self.bid64_to_binary32("3", "[ac1ae83da9c69d5e]", "[8d75c7d8]", "0x20")
+ self.bid64_to_binary32("4", "[ac1ae83da9c69d5e]", "[8d75c7d8]", "0x20")
+ self.bid64_to_binary32("0", "[ac23a7842d2b655f]", "[8da6e6d5]", "0x20")
+ self.bid64_to_binary32("1", "[ac23a7842d2b655f]", "[8da6e6d5]", "0x20")
+ self.bid64_to_binary32("2", "[ac23a7842d2b655f]", "[8da6e6d4]", "0x20")
+ self.bid64_to_binary32("3", "[ac23a7842d2b655f]", "[8da6e6d4]", "0x20")
+ self.bid64_to_binary32("4", "[ac23a7842d2b655f]", "[8da6e6d5]", "0x20")
+ self.bid64_to_binary32("0", "[ac4043ece2b7c4c1]", "[8d725d9e]", "0x20")
+ self.bid64_to_binary32("1", "[ac4043ece2b7c4c1]", "[8d725d9f]", "0x20")
+ self.bid64_to_binary32("2", "[ac4043ece2b7c4c1]", "[8d725d9e]", "0x20")
+ self.bid64_to_binary32("3", "[ac4043ece2b7c4c1]", "[8d725d9e]", "0x20")
+ self.bid64_to_binary32("4", "[ac4043ece2b7c4c1]", "[8d725d9e]", "0x20")
+ self.bid64_to_binary32("0", "[ac6d6149635c502d]", "[91eeb528]", "0x20")
+ self.bid64_to_binary32("1", "[ac6d6149635c502d]", "[91eeb529]", "0x20")
+ self.bid64_to_binary32("2", "[ac6d6149635c502d]", "[91eeb528]", "0x20")
+ self.bid64_to_binary32("3", "[ac6d6149635c502d]", "[91eeb528]", "0x20")
+ self.bid64_to_binary32("4", "[ac6d6149635c502d]", "[91eeb528]", "0x20")
+ self.bid64_to_binary32("0", "[ac82b33b9106354f]", "[9270dc04]", "0x20")
+ self.bid64_to_binary32("1", "[ac82b33b9106354f]", "[9270dc05]", "0x20")
+ self.bid64_to_binary32("2", "[ac82b33b9106354f]", "[9270dc04]", "0x20")
+ self.bid64_to_binary32("3", "[ac82b33b9106354f]", "[9270dc04]", "0x20")
+ self.bid64_to_binary32("4", "[ac82b33b9106354f]", "[9270dc04]", "0x20")
+ self.bid64_to_binary32("0", "[ac9d94aec9819007]", "[9424eb1e]", "0x20")
+ self.bid64_to_binary32("1", "[ac9d94aec9819007]", "[9424eb1f]", "0x20")
+ self.bid64_to_binary32("2", "[ac9d94aec9819007]", "[9424eb1e]", "0x20")
+ self.bid64_to_binary32("3", "[ac9d94aec9819007]", "[9424eb1e]", "0x20")
+ self.bid64_to_binary32("4", "[ac9d94aec9819007]", "[9424eb1e]", "0x20")
+ self.bid64_to_binary32("0", "[acb70105df3d47cb]", "[95a05080]", "0x20")
+ self.bid64_to_binary32("1", "[acb70105df3d47cb]", "[95a05080]", "0x20")
+ self.bid64_to_binary32("2", "[acb70105df3d47cb]", "[95a0507f]", "0x20")
+ self.bid64_to_binary32("3", "[acb70105df3d47cb]", "[95a0507f]", "0x20")
+ self.bid64_to_binary32("4", "[acb70105df3d47cb]", "[95a05080]", "0x20")
+ self.bid64_to_binary32("0", "[acc3192f36748489]", "[95d7ece3]", "0x20")
+ self.bid64_to_binary32("1", "[acc3192f36748489]", "[95d7ece3]", "0x20")
+ self.bid64_to_binary32("2", "[acc3192f36748489]", "[95d7ece2]", "0x20")
+ self.bid64_to_binary32("3", "[acc3192f36748489]", "[95d7ece2]", "0x20")
+ self.bid64_to_binary32("4", "[acc3192f36748489]", "[95d7ece3]", "0x20")
+ self.bid64_to_binary32("0", "[ace05b4a5dae2c19]", "[95f88430]", "0x20")
+ self.bid64_to_binary32("1", "[ace05b4a5dae2c19]", "[95f88430]", "0x20")
+ self.bid64_to_binary32("2", "[ace05b4a5dae2c19]", "[95f8842f]", "0x20")
+ self.bid64_to_binary32("3", "[ace05b4a5dae2c19]", "[95f8842f]", "0x20")
+ self.bid64_to_binary32("4", "[ace05b4a5dae2c19]", "[95f88430]", "0x20")
+ self.bid64_to_binary32("0", "[acf70105df3d47cb]", "[98fa7dc8]", "0x20")
+ self.bid64_to_binary32("1", "[acf70105df3d47cb]", "[98fa7dc8]", "0x20")
+ self.bid64_to_binary32("2", "[acf70105df3d47cb]", "[98fa7dc7]", "0x20")
+ self.bid64_to_binary32("3", "[acf70105df3d47cb]", "[98fa7dc7]", "0x20")
+ self.bid64_to_binary32("4", "[acf70105df3d47cb]", "[98fa7dc8]", "0x20")
+ self.bid64_to_binary32("0", "[ad11d5274fe72614]", "[9a72b9a7]", "0x20")
+ self.bid64_to_binary32("1", "[ad11d5274fe72614]", "[9a72b9a7]", "0x20")
+ self.bid64_to_binary32("2", "[ad11d5274fe72614]", "[9a72b9a6]", "0x20")
+ self.bid64_to_binary32("3", "[ad11d5274fe72614]", "[9a72b9a6]", "0x20")
+ self.bid64_to_binary32("4", "[ad11d5274fe72614]", "[9a72b9a7]", "0x20")
+ self.bid64_to_binary32("0", "[ad2108c61caad38b]", "[9a0cc727]", "0x20")
+ self.bid64_to_binary32("1", "[ad2108c61caad38b]", "[9a0cc727]", "0x20")
+ self.bid64_to_binary32("2", "[ad2108c61caad38b]", "[9a0cc726]", "0x20")
+ self.bid64_to_binary32("3", "[ad2108c61caad38b]", "[9a0cc726]", "0x20")
+ self.bid64_to_binary32("4", "[ad2108c61caad38b]", "[9a0cc727]", "0x20")
+ self.bid64_to_binary32("0", "[ad3e75a79609be4a]", "[9c818f8e]", "0x20")
+ self.bid64_to_binary32("1", "[ad3e75a79609be4a]", "[9c818f8f]", "0x20")
+ self.bid64_to_binary32("2", "[ad3e75a79609be4a]", "[9c818f8e]", "0x20")
+ self.bid64_to_binary32("3", "[ad3e75a79609be4a]", "[9c818f8e]", "0x20")
+ self.bid64_to_binary32("4", "[ad3e75a79609be4a]", "[9c818f8e]", "0x20")
+ self.bid64_to_binary32("0", "[ad548590cda34c17]", "[9dda397e]", "0x20")
+ self.bid64_to_binary32("1", "[ad548590cda34c17]", "[9dda397f]", "0x20")
+ self.bid64_to_binary32("2", "[ad548590cda34c17]", "[9dda397e]", "0x20")
+ self.bid64_to_binary32("3", "[ad548590cda34c17]", "[9dda397e]", "0x20")
+ self.bid64_to_binary32("4", "[ad548590cda34c17]", "[9dda397e]", "0x20")
+ self.bid64_to_binary32("0", "[ad66c088c46f932b]", "[9eb38052]", "0x20")
+ self.bid64_to_binary32("1", "[ad66c088c46f932b]", "[9eb38053]", "0x20")
+ self.bid64_to_binary32("2", "[ad66c088c46f932b]", "[9eb38052]", "0x20")
+ self.bid64_to_binary32("3", "[ad66c088c46f932b]", "[9eb38052]", "0x20")
+ self.bid64_to_binary32("4", "[ad66c088c46f932b]", "[9eb38052]", "0x20")
+ self.bid64_to_binary32("0", "[ad814c1d40d23351]", "[9f2c718f]", "0x20")
+ self.bid64_to_binary32("1", "[ad814c1d40d23351]", "[9f2c718f]", "0x20")
+ self.bid64_to_binary32("2", "[ad814c1d40d23351]", "[9f2c718e]", "0x20")
+ self.bid64_to_binary32("3", "[ad814c1d40d23351]", "[9f2c718e]", "0x20")
+ self.bid64_to_binary32("4", "[ad814c1d40d23351]", "[9f2c718f]", "0x20")
+ self.bid64_to_binary32("0", "[adb7f43203347727]", "[a2f8c05c]", "0x20")
+ self.bid64_to_binary32("1", "[adb7f43203347727]", "[a2f8c05c]", "0x20")
+ self.bid64_to_binary32("2", "[adb7f43203347727]", "[a2f8c05b]", "0x20")
+ self.bid64_to_binary32("3", "[adb7f43203347727]", "[a2f8c05b]", "0x20")
+ self.bid64_to_binary32("4", "[adb7f43203347727]", "[a2f8c05c]", "0x20")
+ self.bid64_to_binary32("0", "[adc4ca70670a7e3b]", "[a378c05c]", "0x20")
+ self.bid64_to_binary32("1", "[adc4ca70670a7e3b]", "[a378c05c]", "0x20")
+ self.bid64_to_binary32("2", "[adc4ca70670a7e3b]", "[a378c05b]", "0x20")
+ self.bid64_to_binary32("3", "[adc4ca70670a7e3b]", "[a378c05b]", "0x20")
+ self.bid64_to_binary32("4", "[adc4ca70670a7e3b]", "[a378c05c]", "0x20")
+ self.bid64_to_binary32("0", "[ade0cf9e9fd76667]", "[a3d28d23]", "0x20")
+ self.bid64_to_binary32("1", "[ade0cf9e9fd76667]", "[a3d28d24]", "0x20")
+ self.bid64_to_binary32("2", "[ade0cf9e9fd76667]", "[a3d28d23]", "0x20")
+ self.bid64_to_binary32("3", "[ade0cf9e9fd76667]", "[a3d28d23]", "0x20")
+ self.bid64_to_binary32("4", "[ade0cf9e9fd76667]", "[a3d28d23]", "0x20")
+ self.bid64_to_binary32("0", "[ade5d8d6c97e640a]", "[a53dbf34]", "0x20")
+ self.bid64_to_binary32("1", "[ade5d8d6c97e640a]", "[a53dbf34]", "0x20")
+ self.bid64_to_binary32("2", "[ade5d8d6c97e640a]", "[a53dbf33]", "0x20")
+ self.bid64_to_binary32("3", "[ade5d8d6c97e640a]", "[a53dbf33]", "0x20")
+ self.bid64_to_binary32("4", "[ade5d8d6c97e640a]", "[a53dbf34]", "0x20")
+ self.bid64_to_binary32("0", "[ae05d8d6c97e640a]", "[a6ed2f01]", "0x20")
+ self.bid64_to_binary32("1", "[ae05d8d6c97e640a]", "[a6ed2f01]", "0x20")
+ self.bid64_to_binary32("2", "[ae05d8d6c97e640a]", "[a6ed2f00]", "0x20")
+ self.bid64_to_binary32("3", "[ae05d8d6c97e640a]", "[a6ed2f00]", "0x20")
+ self.bid64_to_binary32("4", "[ae05d8d6c97e640a]", "[a6ed2f01]", "0x20")
+ self.bid64_to_binary32("0", "[ae20888df12b9d45]", "[a6d86112]", "0x20")
+ self.bid64_to_binary32("1", "[ae20888df12b9d45]", "[a6d86112]", "0x20")
+ self.bid64_to_binary32("2", "[ae20888df12b9d45]", "[a6d86111]", "0x20")
+ self.bid64_to_binary32("3", "[ae20888df12b9d45]", "[a6d86111]", "0x20")
+ self.bid64_to_binary32("4", "[ae20888df12b9d45]", "[a6d86112]", "0x20")
+ self.bid64_to_binary32("0", "[ae5100e91aa27c10]", "[ab06b750]", "0x20")
+ self.bid64_to_binary32("1", "[ae5100e91aa27c10]", "[ab06b750]", "0x20")
+ self.bid64_to_binary32("2", "[ae5100e91aa27c10]", "[ab06b74f]", "0x20")
+ self.bid64_to_binary32("3", "[ae5100e91aa27c10]", "[ab06b74f]", "0x20")
+ self.bid64_to_binary32("4", "[ae5100e91aa27c10]", "[ab06b750]", "0x20")
+ self.bid64_to_binary32("0", "[ae63d29032408016]", "[ab976ce3]", "0x20")
+ self.bid64_to_binary32("1", "[ae63d29032408016]", "[ab976ce3]", "0x20")
+ self.bid64_to_binary32("2", "[ae63d29032408016]", "[ab976ce2]", "0x20")
+ self.bid64_to_binary32("3", "[ae63d29032408016]", "[ab976ce2]", "0x20")
+ self.bid64_to_binary32("4", "[ae63d29032408016]", "[ab976ce3]", "0x20")
+ self.bid64_to_binary32("0", "[ae808db8d9fce5fb]", "[abdb4de6]", "0x20")
+ self.bid64_to_binary32("1", "[ae808db8d9fce5fb]", "[abdb4de6]", "0x20")
+ self.bid64_to_binary32("2", "[ae808db8d9fce5fb]", "[abdb4de5]", "0x20")
+ self.bid64_to_binary32("3", "[ae808db8d9fce5fb]", "[abdb4de5]", "0x20")
+ self.bid64_to_binary32("4", "[ae808db8d9fce5fb]", "[abdb4de6]", "0x20")
+ self.bid64_to_binary32("0", "[ae9daf06ecb15bd6]", "[aeb7bbb3]", "0x20")
+ self.bid64_to_binary32("1", "[ae9daf06ecb15bd6]", "[aeb7bbb3]", "0x20")
+ self.bid64_to_binary32("2", "[ae9daf06ecb15bd6]", "[aeb7bbb2]", "0x20")
+ self.bid64_to_binary32("3", "[ae9daf06ecb15bd6]", "[aeb7bbb2]", "0x20")
+ self.bid64_to_binary32("4", "[ae9daf06ecb15bd6]", "[aeb7bbb3]", "0x20")
+ self.bid64_to_binary32("0", "[aea132645e1ba93f]", "[ae142980]", "0x20")
+ self.bid64_to_binary32("1", "[aea132645e1ba93f]", "[ae142981]", "0x20")
+ self.bid64_to_binary32("2", "[aea132645e1ba93f]", "[ae142980]", "0x20")
+ self.bid64_to_binary32("3", "[aea132645e1ba93f]", "[ae142980]", "0x20")
+ self.bid64_to_binary32("4", "[aea132645e1ba93f]", "[ae142980]", "0x20")
+ self.bid64_to_binary32("0", "[aec132645e1ba93f]", "[afb933e0]", "0x20")
+ self.bid64_to_binary32("1", "[aec132645e1ba93f]", "[afb933e1]", "0x20")
+ self.bid64_to_binary32("2", "[aec132645e1ba93f]", "[afb933e0]", "0x20")
+ self.bid64_to_binary32("3", "[aec132645e1ba93f]", "[afb933e0]", "0x20")
+ self.bid64_to_binary32("4", "[aec132645e1ba93f]", "[afb933e0]", "0x20")
+ self.bid64_to_binary32("0", "[aec264c8bc37527e]", "[b03933e0]", "0x20")
+ self.bid64_to_binary32("1", "[aec264c8bc37527e]", "[b03933e1]", "0x20")
+ self.bid64_to_binary32("2", "[aec264c8bc37527e]", "[b03933e0]", "0x20")
+ self.bid64_to_binary32("3", "[aec264c8bc37527e]", "[b03933e0]", "0x20")
+ self.bid64_to_binary32("4", "[aec264c8bc37527e]", "[b03933e0]", "0x20")
+ self.bid64_to_binary32("0", "[af06139ec6ef984b]", "[b437a7bc]", "0x20")
+ self.bid64_to_binary32("1", "[af06139ec6ef984b]", "[b437a7bd]", "0x20")
+ self.bid64_to_binary32("2", "[af06139ec6ef984b]", "[b437a7bc]", "0x20")
+ self.bid64_to_binary32("3", "[af06139ec6ef984b]", "[b437a7bc]", "0x20")
+ self.bid64_to_binary32("4", "[af06139ec6ef984b]", "[b437a7bc]", "0x20")
+ self.bid64_to_binary32("0", "[af20fe93dea50b6c]", "[b49646ae]", "0x20")
+ self.bid64_to_binary32("1", "[af20fe93dea50b6c]", "[b49646af]", "0x20")
+ self.bid64_to_binary32("2", "[af20fe93dea50b6c]", "[b49646ae]", "0x20")
+ self.bid64_to_binary32("3", "[af20fe93dea50b6c]", "[b49646ae]", "0x20")
+ self.bid64_to_binary32("4", "[af20fe93dea50b6c]", "[b49646ae]", "0x20")
+ self.bid64_to_binary32("0", "[af55a1ae8f631b44]", "[b87f6168]", "0x20")
+ self.bid64_to_binary32("1", "[af55a1ae8f631b44]", "[b87f6169]", "0x20")
+ self.bid64_to_binary32("2", "[af55a1ae8f631b44]", "[b87f6168]", "0x20")
+ self.bid64_to_binary32("3", "[af55a1ae8f631b44]", "[b87f6168]", "0x20")
+ self.bid64_to_binary32("4", "[af55a1ae8f631b44]", "[b87f6168]", "0x20")
+ self.bid64_to_binary32("0", "[af6448ca2ed1de44]", "[b8fce70a]", "0x20")
+ self.bid64_to_binary32("1", "[af6448ca2ed1de44]", "[b8fce70b]", "0x20")
+ self.bid64_to_binary32("2", "[af6448ca2ed1de44]", "[b8fce70a]", "0x20")
+ self.bid64_to_binary32("3", "[af6448ca2ed1de44]", "[b8fce70a]", "0x20")
+ self.bid64_to_binary32("4", "[af6448ca2ed1de44]", "[b8fce70a]", "0x20")
+ self.bid64_to_binary32("0", "[afab197a685a3dae]", "[bcfff006]", "0x20")
+ self.bid64_to_binary32("1", "[afab197a685a3dae]", "[bcfff007]", "0x20")
+ self.bid64_to_binary32("2", "[afab197a685a3dae]", "[bcfff006]", "0x20")
+ self.bid64_to_binary32("3", "[afab197a685a3dae]", "[bcfff006]", "0x20")
+ self.bid64_to_binary32("4", "[afab197a685a3dae]", "[bcfff006]", "0x20")
+ self.bid64_to_binary32("0", "[afc2384be833bcb2]", "[bd7ff020]", "0x20")
+ self.bid64_to_binary32("1", "[afc2384be833bcb2]", "[bd7ff021]", "0x20")
+ self.bid64_to_binary32("2", "[afc2384be833bcb2]", "[bd7ff020]", "0x20")
+ self.bid64_to_binary32("3", "[afc2384be833bcb2]", "[bd7ff020]", "0x20")
+ self.bid64_to_binary32("4", "[afc2384be833bcb2]", "[bd7ff020]", "0x20")
+ self.bid64_to_binary32("0", "[b00b5e61319787d6]", "[c1ffffec]", "0x20")
+ self.bid64_to_binary32("1", "[b00b5e61319787d6]", "[c1ffffed]", "0x20")
+ self.bid64_to_binary32("2", "[b00b5e61319787d6]", "[c1ffffec]", "0x20")
+ self.bid64_to_binary32("3", "[b00b5e61319787d6]", "[c1ffffec]", "0x20")
+ self.bid64_to_binary32("4", "[b00b5e61319787d6]", "[c1ffffec]", "0x20")
+ self.bid64_to_binary32("0", "[b0224613993ee295]", "[c27ffffe]", "0x20")
+ self.bid64_to_binary32("1", "[b0224613993ee295]", "[c27fffff]", "0x20")
+ self.bid64_to_binary32("2", "[b0224613993ee295]", "[c27ffffe]", "0x20")
+ self.bid64_to_binary32("3", "[b0224613993ee295]", "[c27ffffe]", "0x20")
+ self.bid64_to_binary32("4", "[b0224613993ee295]", "[c27ffffe]", "0x20")
+ self.bid64_to_binary32("0", "[b05d1a94a1ffffff]", "[c6000000]", "0x20")
+ self.bid64_to_binary32("1", "[b05d1a94a1ffffff]", "[c6000000]", "0x20")
+ self.bid64_to_binary32("2", "[b05d1a94a1ffffff]", "[c5ffffff]", "0x20")
+ self.bid64_to_binary32("3", "[b05d1a94a1ffffff]", "[c5ffffff]", "0x20")
+ self.bid64_to_binary32("4", "[b05d1a94a1ffffff]", "[c6000000]", "0x20")
+ self.bid64_to_binary32("0", "[b065d21db9ffffff]", "[c6800000]", "0x20")
+ self.bid64_to_binary32("1", "[b065d21db9ffffff]", "[c6800000]", "0x20")
+ self.bid64_to_binary32("2", "[b065d21db9ffffff]", "[c67fffff]", "0x20")
+ self.bid64_to_binary32("3", "[b065d21db9ffffff]", "[c67fffff]", "0x20")
+ self.bid64_to_binary32("4", "[b065d21db9ffffff]", "[c6800000]", "0x20")
+ self.bid64_to_binary32("0", "[b0812a05f1ffffff]", "[c7000000]", "0x20")
+ self.bid64_to_binary32("1", "[b0812a05f1ffffff]", "[c7000000]", "0x20")
+ self.bid64_to_binary32("2", "[b0812a05f1ffffff]", "[c6ffffff]", "0x20")
+ self.bid64_to_binary32("3", "[b0812a05f1ffffff]", "[c6ffffff]", "0x20")
+ self.bid64_to_binary32("4", "[b0812a05f1ffffff]", "[c7000000]", "0x20")
+ self.bid64_to_binary32("0", "[b0aee6b27fffffff]", "[ca800000]", "0x20")
+ self.bid64_to_binary32("1", "[b0aee6b27fffffff]", "[ca800000]", "0x20")
+ self.bid64_to_binary32("2", "[b0aee6b27fffffff]", "[ca7fffff]", "0x20")
+ self.bid64_to_binary32("3", "[b0aee6b27fffffff]", "[ca7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[b0aee6b27fffffff]", "[ca800000]", "0x20")
+ self.bid64_to_binary32("0", "[b0c00000004d7c6d]", "[bd500000]", "0x00")
+ self.bid64_to_binary32("1", "[b0c00000004d7c6d]", "[bd500000]", "0x00")
+ self.bid64_to_binary32("2", "[b0c00000004d7c6d]", "[bd500000]", "0x00")
+ self.bid64_to_binary32("3", "[b0c00000004d7c6d]", "[bd500000]", "0x00")
+ self.bid64_to_binary32("4", "[b0c00000004d7c6d]", "[bd500000]", "0x00")
+ self.bid64_to_binary32("0", "[b0c2faf07fffffff]", "[cb000000]", "0x20")
+ self.bid64_to_binary32("1", "[b0c2faf07fffffff]", "[cb000000]", "0x20")
+ self.bid64_to_binary32("2", "[b0c2faf07fffffff]", "[caffffff]", "0x20")
+ self.bid64_to_binary32("3", "[b0c2faf07fffffff]", "[caffffff]", "0x20")
+ self.bid64_to_binary32("4", "[b0c2faf07fffffff]", "[cb000000]", "0x20")
+ self.bid64_to_binary32("0", "[b107a11fffffffff]", "[cf000000]", "0x20")
+ self.bid64_to_binary32("1", "[b107a11fffffffff]", "[cf000000]", "0x20")
+ self.bid64_to_binary32("2", "[b107a11fffffffff]", "[ceffffff]", "0x20")
+ self.bid64_to_binary32("3", "[b107a11fffffffff]", "[ceffffff]", "0x20")
+ self.bid64_to_binary32("4", "[b107a11fffffffff]", "[cf000000]", "0x20")
+ self.bid64_to_binary32("0", "[b121869fffffffff]", "[cf800000]", "0x20")
+ self.bid64_to_binary32("1", "[b121869fffffffff]", "[cf800000]", "0x20")
+ self.bid64_to_binary32("2", "[b121869fffffffff]", "[cf7fffff]", "0x20")
+ self.bid64_to_binary32("3", "[b121869fffffffff]", "[cf7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[b121869fffffffff]", "[cf800000]", "0x20")
+ self.bid64_to_binary32("0", "[b15387ffffffffff]", "[d3000000]", "0x20")
+ self.bid64_to_binary32("1", "[b15387ffffffffff]", "[d3000000]", "0x20")
+ self.bid64_to_binary32("2", "[b15387ffffffffff]", "[d2ffffff]", "0x20")
+ self.bid64_to_binary32("3", "[b15387ffffffffff]", "[d2ffffff]", "0x20")
+ self.bid64_to_binary32("4", "[b15387ffffffffff]", "[d3000000]", "0x20")
+ self.bid64_to_binary32("0", "[b163e7ffffffffff]", "[d3800000]", "0x20")
+ self.bid64_to_binary32("1", "[b163e7ffffffffff]", "[d3800000]", "0x20")
+ self.bid64_to_binary32("2", "[b163e7ffffffffff]", "[d37fffff]", "0x20")
+ self.bid64_to_binary32("3", "[b163e7ffffffffff]", "[d37fffff]", "0x20")
+ self.bid64_to_binary32("4", "[b163e7ffffffffff]", "[d3800000]", "0x20")
+ self.bid64_to_binary32("0", "[b1a000000000000f]", "[bfc00000]", "0x00")
+ self.bid64_to_binary32("1", "[b1a000000000000f]", "[bfc00000]", "0x00")
+ self.bid64_to_binary32("2", "[b1a000000000000f]", "[bfc00000]", "0x00")
+ self.bid64_to_binary32("3", "[b1a000000000000f]", "[bfc00000]", "0x00")
+ self.bid64_to_binary32("4", "[b1a000000000000f]", "[bfc00000]", "0x00")
+ self.bid64_to_binary32("0", "[b1a9ffffffffffff]", "[d7800000]", "0x20")
+ self.bid64_to_binary32("1", "[b1a9ffffffffffff]", "[d7800000]", "0x20")
+ self.bid64_to_binary32("2", "[b1a9ffffffffffff]", "[d77fffff]", "0x20")
+ self.bid64_to_binary32("3", "[b1a9ffffffffffff]", "[d77fffff]", "0x20")
+ self.bid64_to_binary32("4", "[b1a9ffffffffffff]", "[d7800000]", "0x20")
+ self.bid64_to_binary32("0", "[b1c0000000000001]", "[bf800000]", "0x00")
+ self.bid64_to_binary32("1", "[b1c0000000000001]", "[bf800000]", "0x00")
+ self.bid64_to_binary32("2", "[b1c0000000000001]", "[bf800000]", "0x00")
+ self.bid64_to_binary32("3", "[b1c0000000000001]", "[bf800000]", "0x00")
+ self.bid64_to_binary32("4", "[b1c0000000000001]", "[bf800000]", "0x00")
+ self.bid64_to_binary32("0", "[b1c0000000000040]", "[c2800000]", "0x00")
+ self.bid64_to_binary32("1", "[b1c0000000000040]", "[c2800000]", "0x00")
+ self.bid64_to_binary32("2", "[b1c0000000000040]", "[c2800000]", "0x00")
+ self.bid64_to_binary32("3", "[b1c0000000000040]", "[c2800000]", "0x00")
+ self.bid64_to_binary32("4", "[b1c0000000000040]", "[c2800000]", "0x00")
+ self.bid64_to_binary32("0", "[b1c00000000003e7]", "[c479c000]", "0x00")
+ self.bid64_to_binary32("1", "[b1c00000000003e7]", "[c479c000]", "0x00")
+ self.bid64_to_binary32("2", "[b1c00000000003e7]", "[c479c000]", "0x00")
+ self.bid64_to_binary32("3", "[b1c00000000003e7]", "[c479c000]", "0x00")
+ self.bid64_to_binary32("4", "[b1c00000000003e7]", "[c479c000]", "0x00")
+ self.bid64_to_binary32("0", "[b1c00000000003e8]", "[c47a0000]", "0x00")
+ self.bid64_to_binary32("1", "[b1c00000000003e8]", "[c47a0000]", "0x00")
+ self.bid64_to_binary32("2", "[b1c00000000003e8]", "[c47a0000]", "0x00")
+ self.bid64_to_binary32("3", "[b1c00000000003e8]", "[c47a0000]", "0x00")
+ self.bid64_to_binary32("4", "[b1c00000000003e8]", "[c47a0000]", "0x00")
+ self.bid64_to_binary32("0", "[b1c1ffffffffffff]", "[d8000000]", "0x20")
+ self.bid64_to_binary32("1", "[b1c1ffffffffffff]", "[d8000000]", "0x20")
+ self.bid64_to_binary32("2", "[b1c1ffffffffffff]", "[d7ffffff]", "0x20")
+ self.bid64_to_binary32("3", "[b1c1ffffffffffff]", "[d7ffffff]", "0x20")
+ self.bid64_to_binary32("4", "[b1c1ffffffffffff]", "[d8000000]", "0x20")
+ self.bid64_to_binary32("0", "[b1f9999973333333]", "[db7ffffe]", "0x20")
+ self.bid64_to_binary32("1", "[b1f9999973333333]", "[db7fffff]", "0x20")
+ self.bid64_to_binary32("2", "[b1f9999973333333]", "[db7ffffe]", "0x20")
+ self.bid64_to_binary32("3", "[b1f9999973333333]", "[db7ffffe]", "0x20")
+ self.bid64_to_binary32("4", "[b1f9999973333333]", "[db7ffffe]", "0x20")
+ self.bid64_to_binary32("0", "[b2051eb83d70a3d7]", "[dbfffffc]", "0x20")
+ self.bid64_to_binary32("1", "[b2051eb83d70a3d7]", "[dbfffffc]", "0x20")
+ self.bid64_to_binary32("2", "[b2051eb83d70a3d7]", "[dbfffffb]", "0x20")
+ self.bid64_to_binary32("3", "[b2051eb83d70a3d7]", "[dbfffffb]", "0x20")
+ self.bid64_to_binary32("4", "[b2051eb83d70a3d7]", "[dbfffffc]", "0x20")
+ self.bid64_to_binary32("0", "[b20a3d707ae147ae]", "[dc7ffffc]", "0x20")
+ self.bid64_to_binary32("1", "[b20a3d707ae147ae]", "[dc7ffffc]", "0x20")
+ self.bid64_to_binary32("2", "[b20a3d707ae147ae]", "[dc7ffffb]", "0x20")
+ self.bid64_to_binary32("3", "[b20a3d707ae147ae]", "[dc7ffffb]", "0x20")
+ self.bid64_to_binary32("4", "[b20a3d707ae147ae]", "[dc7ffffc]", "0x20")
+ self.bid64_to_binary32("0", "[b24d1b6fc504816f]", "[dfffffdf]", "0x20")
+ self.bid64_to_binary32("1", "[b24d1b6fc504816f]", "[dfffffdf]", "0x20")
+ self.bid64_to_binary32("2", "[b24d1b6fc504816f]", "[dfffffde]", "0x20")
+ self.bid64_to_binary32("3", "[b24d1b6fc504816f]", "[dfffffde]", "0x20")
+ self.bid64_to_binary32("4", "[b24d1b6fc504816f]", "[dfffffdf]", "0x20")
+ self.bid64_to_binary32("0", "[b25a369f8a0902de]", "[e07ffd6e]", "0x20")
+ self.bid64_to_binary32("1", "[b25a369f8a0902de]", "[e07ffd6e]", "0x20")
+ self.bid64_to_binary32("2", "[b25a369f8a0902de]", "[e07ffd6d]", "0x20")
+ self.bid64_to_binary32("3", "[b25a369f8a0902de]", "[e07ffd6d]", "0x20")
+ self.bid64_to_binary32("4", "[b25a369f8a0902de]", "[e07ffd6e]", "0x20")
+ self.bid64_to_binary32("0", "[b2a6b3885172b95b]", "[e47fa25f]", "0x20")
+ self.bid64_to_binary32("1", "[b2a6b3885172b95b]", "[e47fa25f]", "0x20")
+ self.bid64_to_binary32("2", "[b2a6b3885172b95b]", "[e47fa25e]", "0x20")
+ self.bid64_to_binary32("3", "[b2a6b3885172b95b]", "[e47fa25e]", "0x20")
+ self.bid64_to_binary32("4", "[b2a6b3885172b95b]", "[e47fa25f]", "0x20")
+ self.bid64_to_binary32("0", "[b2ad4f10a2e572b6]", "[e4fdd89b]", "0x20")
+ self.bid64_to_binary32("1", "[b2ad4f10a2e572b6]", "[e4fdd89c]", "0x20")
+ self.bid64_to_binary32("2", "[b2ad4f10a2e572b6]", "[e4fdd89b]", "0x20")
+ self.bid64_to_binary32("3", "[b2ad4f10a2e572b6]", "[e4fdd89b]", "0x20")
+ self.bid64_to_binary32("4", "[b2ad4f10a2e572b6]", "[e4fdd89b]", "0x20")
+ self.bid64_to_binary32("0", "[b2f031bdc5d16393]", "[e871505c]", "0x20")
+ self.bid64_to_binary32("1", "[b2f031bdc5d16393]", "[e871505c]", "0x20")
+ self.bid64_to_binary32("2", "[b2f031bdc5d16393]", "[e871505b]", "0x20")
+ self.bid64_to_binary32("3", "[b2f031bdc5d16393]", "[e871505b]", "0x20")
+ self.bid64_to_binary32("4", "[b2f031bdc5d16393]", "[e871505c]", "0x20")
+ self.bid64_to_binary32("0", "[b2fe637b8ba2c726]", "[e8e269a9]", "0x20")
+ self.bid64_to_binary32("1", "[b2fe637b8ba2c726]", "[e8e269aa]", "0x20")
+ self.bid64_to_binary32("2", "[b2fe637b8ba2c726]", "[e8e269a9]", "0x20")
+ self.bid64_to_binary32("3", "[b2fe637b8ba2c726]", "[e8e269a9]", "0x20")
+ self.bid64_to_binary32("4", "[b2fe637b8ba2c726]", "[e8e269a9]", "0x20")
+ self.bid64_to_binary32("0", "[b31809f2c129e0b7]", "[ea5fe11c]", "0x20")
+ self.bid64_to_binary32("1", "[b31809f2c129e0b7]", "[ea5fe11c]", "0x20")
+ self.bid64_to_binary32("2", "[b31809f2c129e0b7]", "[ea5fe11b]", "0x20")
+ self.bid64_to_binary32("3", "[b31809f2c129e0b7]", "[ea5fe11b]", "0x20")
+ self.bid64_to_binary32("4", "[b31809f2c129e0b7]", "[ea5fe11c]", "0x20")
+ self.bid64_to_binary32("0", "[b326bdf1d70a1fe4]", "[eb1cf948]", "0x20")
+ self.bid64_to_binary32("1", "[b326bdf1d70a1fe4]", "[eb1cf948]", "0x20")
+ self.bid64_to_binary32("2", "[b326bdf1d70a1fe4]", "[eb1cf947]", "0x20")
+ self.bid64_to_binary32("3", "[b326bdf1d70a1fe4]", "[eb1cf947]", "0x20")
+ self.bid64_to_binary32("4", "[b326bdf1d70a1fe4]", "[eb1cf948]", "0x20")
+ self.bid64_to_binary32("0", "[b3319b96f36ec68b]", "[ebccfb40]", "0x20")
+ self.bid64_to_binary32("1", "[b3319b96f36ec68b]", "[ebccfb40]", "0x20")
+ self.bid64_to_binary32("2", "[b3319b96f36ec68b]", "[ebccfb3f]", "0x20")
+ self.bid64_to_binary32("3", "[b3319b96f36ec68b]", "[ebccfb3f]", "0x20")
+ self.bid64_to_binary32("4", "[b3319b96f36ec68b]", "[ebccfb40]", "0x20")
+ self.bid64_to_binary32("0", "[b345c1c39ea07d62]", "[eca78c2f]", "0x20")
+ self.bid64_to_binary32("1", "[b345c1c39ea07d62]", "[eca78c2f]", "0x20")
+ self.bid64_to_binary32("2", "[b345c1c39ea07d62]", "[eca78c2e]", "0x20")
+ self.bid64_to_binary32("3", "[b345c1c39ea07d62]", "[eca78c2e]", "0x20")
+ self.bid64_to_binary32("4", "[b345c1c39ea07d62]", "[eca78c2f]", "0x20")
+ self.bid64_to_binary32("0", "[b36bf881dc671d64]", "[eed9bf10]", "0x20")
+ self.bid64_to_binary32("1", "[b36bf881dc671d64]", "[eed9bf11]", "0x20")
+ self.bid64_to_binary32("2", "[b36bf881dc671d64]", "[eed9bf10]", "0x20")
+ self.bid64_to_binary32("3", "[b36bf881dc671d64]", "[eed9bf10]", "0x20")
+ self.bid64_to_binary32("4", "[b36bf881dc671d64]", "[eed9bf10]", "0x20")
+ self.bid64_to_binary32("0", "[b3719b96f36ec68b]", "[ef20244a]", "0x20")
+ self.bid64_to_binary32("1", "[b3719b96f36ec68b]", "[ef20244a]", "0x20")
+ self.bid64_to_binary32("2", "[b3719b96f36ec68b]", "[ef202449]", "0x20")
+ self.bid64_to_binary32("3", "[b3719b96f36ec68b]", "[ef202449]", "0x20")
+ self.bid64_to_binary32("4", "[b3719b96f36ec68b]", "[ef20244a]", "0x20")
+ self.bid64_to_binary32("0", "[b38bf881dc671d64]", "[f088176a]", "0x20")
+ self.bid64_to_binary32("1", "[b38bf881dc671d64]", "[f088176b]", "0x20")
+ self.bid64_to_binary32("2", "[b38bf881dc671d64]", "[f088176a]", "0x20")
+ self.bid64_to_binary32("3", "[b38bf881dc671d64]", "[f088176a]", "0x20")
+ self.bid64_to_binary32("4", "[b38bf881dc671d64]", "[f088176a]", "0x20")
+ self.bid64_to_binary32("0", "[b3919b96f36ec68b]", "[f0c82d5c]", "0x20")
+ self.bid64_to_binary32("1", "[b3919b96f36ec68b]", "[f0c82d5d]", "0x20")
+ self.bid64_to_binary32("2", "[b3919b96f36ec68b]", "[f0c82d5c]", "0x20")
+ self.bid64_to_binary32("3", "[b3919b96f36ec68b]", "[f0c82d5c]", "0x20")
+ self.bid64_to_binary32("4", "[b3919b96f36ec68b]", "[f0c82d5c]", "0x20")
+ self.bid64_to_binary32("0", "[b3ce5f9eb18201d8]", "[f3ff532e]", "0x20")
+ self.bid64_to_binary32("1", "[b3ce5f9eb18201d8]", "[f3ff532f]", "0x20")
+ self.bid64_to_binary32("2", "[b3ce5f9eb18201d8]", "[f3ff532e]", "0x20")
+ self.bid64_to_binary32("3", "[b3ce5f9eb18201d8]", "[f3ff532e]", "0x20")
+ self.bid64_to_binary32("4", "[b3ce5f9eb18201d8]", "[f3ff532e]", "0x20")
+ self.bid64_to_binary32("0", "[b3d608e7907c5218]", "[f443b54c]", "0x20")
+ self.bid64_to_binary32("1", "[b3d608e7907c5218]", "[f443b54d]", "0x20")
+ self.bid64_to_binary32("2", "[b3d608e7907c5218]", "[f443b54c]", "0x20")
+ self.bid64_to_binary32("3", "[b3d608e7907c5218]", "[f443b54c]", "0x20")
+ self.bid64_to_binary32("4", "[b3d608e7907c5218]", "[f443b54c]", "0x20")
+ self.bid64_to_binary32("0", "[b3e6a2c98ebde545]", "[f51358a8]", "0x20")
+ self.bid64_to_binary32("1", "[b3e6a2c98ebde545]", "[f51358a8]", "0x20")
+ self.bid64_to_binary32("2", "[b3e6a2c98ebde545]", "[f51358a7]", "0x20")
+ self.bid64_to_binary32("3", "[b3e6a2c98ebde545]", "[f51358a7]", "0x20")
+ self.bid64_to_binary32("4", "[b3e6a2c98ebde545]", "[f51358a8]", "0x20")
+ self.bid64_to_binary32("0", "[b41a8b263af79514]", "[f7b82ed2]", "0x20")
+ self.bid64_to_binary32("1", "[b41a8b263af79514]", "[f7b82ed2]", "0x20")
+ self.bid64_to_binary32("2", "[b41a8b263af79514]", "[f7b82ed1]", "0x20")
+ self.bid64_to_binary32("3", "[b41a8b263af79514]", "[f7b82ed1]", "0x20")
+ self.bid64_to_binary32("4", "[b41a8b263af79514]", "[f7b82ed2]", "0x20")
+ self.bid64_to_binary32("0", "[b431f55b23c8bf2d]", "[f91bc3b5]", "0x20")
+ self.bid64_to_binary32("1", "[b431f55b23c8bf2d]", "[f91bc3b5]", "0x20")
+ self.bid64_to_binary32("2", "[b431f55b23c8bf2d]", "[f91bc3b4]", "0x20")
+ self.bid64_to_binary32("3", "[b431f55b23c8bf2d]", "[f91bc3b4]", "0x20")
+ self.bid64_to_binary32("4", "[b431f55b23c8bf2d]", "[f91bc3b5]", "0x20")
+ self.bid64_to_binary32("0", "[b44577623ce08817]", "[f9ed1099]", "0x20")
+ self.bid64_to_binary32("1", "[b44577623ce08817]", "[f9ed1099]", "0x20")
+ self.bid64_to_binary32("2", "[b44577623ce08817]", "[f9ed1098]", "0x20")
+ self.bid64_to_binary32("3", "[b44577623ce08817]", "[f9ed1098]", "0x20")
+ self.bid64_to_binary32("4", "[b44577623ce08817]", "[f9ed1099]", "0x20")
+ self.bid64_to_binary32("0", "[b44aeec479c1102e]", "[fa6d1099]", "0x20")
+ self.bid64_to_binary32("1", "[b44aeec479c1102e]", "[fa6d1099]", "0x20")
+ self.bid64_to_binary32("2", "[b44aeec479c1102e]", "[fa6d1098]", "0x20")
+ self.bid64_to_binary32("3", "[b44aeec479c1102e]", "[fa6d1098]", "0x20")
+ self.bid64_to_binary32("4", "[b44aeec479c1102e]", "[fa6d1099]", "0x20")
+ self.bid64_to_binary32("0", "[b478849dd33c95af]", "[fca62402]", "0x20")
+ self.bid64_to_binary32("1", "[b478849dd33c95af]", "[fca62403]", "0x20")
+ self.bid64_to_binary32("2", "[b478849dd33c95af]", "[fca62402]", "0x20")
+ self.bid64_to_binary32("3", "[b478849dd33c95af]", "[fca62402]", "0x20")
+ self.bid64_to_binary32("4", "[b478849dd33c95af]", "[fca62402]", "0x20")
+ self.bid64_to_binary32("0", "[b4842fc69945497a]", "[fd0dd92d]", "0x20")
+ self.bid64_to_binary32("1", "[b4842fc69945497a]", "[fd0dd92e]", "0x20")
+ self.bid64_to_binary32("2", "[b4842fc69945497a]", "[fd0dd92d]", "0x20")
+ self.bid64_to_binary32("3", "[b4842fc69945497a]", "[fd0dd92d]", "0x20")
+ self.bid64_to_binary32("4", "[b4842fc69945497a]", "[fd0dd92d]", "0x20")
+ self.bid64_to_binary32("0", "[b4ac16d993f27f88]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("1", "[b4ac16d993f27f88]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("2", "[b4ac16d993f27f88]", "[ff7ffffe]", "0x20")
+ self.bid64_to_binary32("3", "[b4ac16d993f27f88]", "[ff7ffffe]", "0x20")
+ self.bid64_to_binary32("4", "[b4ac16d993f27f88]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("0", "[b4ac16d993f27f89]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("1", "[b4ac16d993f27f89]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("2", "[b4ac16d993f27f89]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("3", "[b4ac16d993f27f89]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[b4ac16d993f27f89]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("0", "[b4ac16d9a0095928]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("1", "[b4ac16d9a0095928]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("2", "[b4ac16d9a0095928]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("3", "[b4ac16d9a0095928]", "[ff7fffff]", "0x20")
+ self.bid64_to_binary32("4", "[b4ac16d9a0095928]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("0", "[b4ac16d9a0095929]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("1", "[b4ac16d9a0095929]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("2", "[b4ac16d9a0095929]", "[ff7fffff]", "0x28")
+ self.bid64_to_binary32("3", "[b4ac16d9a0095929]", "[ff7fffff]", "0x28")
+ self.bid64_to_binary32("4", "[b4ac16d9a0095929]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("0", "[eaf98a5fcdb8d437]", "[8bf51900]", "0x20")
+ self.bid64_to_binary32("1", "[eaf98a5fcdb8d437]", "[8bf51901]", "0x20")
+ self.bid64_to_binary32("2", "[eaf98a5fcdb8d437]", "[8bf51900]", "0x20")
+ self.bid64_to_binary32("3", "[eaf98a5fcdb8d437]", "[8bf51900]", "0x20")
+ self.bid64_to_binary32("4", "[eaf98a5fcdb8d437]", "[8bf51900]", "0x20")
+ self.bid64_to_binary32("0", "[eb116b7f5bf619d9]", "[90ee7e12]", "0x20")
+ self.bid64_to_binary32("1", "[eb116b7f5bf619d9]", "[90ee7e12]", "0x20")
+ self.bid64_to_binary32("2", "[eb116b7f5bf619d9]", "[90ee7e11]", "0x20")
+ self.bid64_to_binary32("3", "[eb116b7f5bf619d9]", "[90ee7e11]", "0x20")
+ self.bid64_to_binary32("4", "[eb116b7f5bf619d9]", "[90ee7e12]", "0x20")
+ self.bid64_to_binary32("0", "[eb6206a25682726d]", "[a18d568f]", "0x20")
+ self.bid64_to_binary32("1", "[eb6206a25682726d]", "[a18d568f]", "0x20")
+ self.bid64_to_binary32("2", "[eb6206a25682726d]", "[a18d568e]", "0x20")
+ self.bid64_to_binary32("3", "[eb6206a25682726d]", "[a18d568e]", "0x20")
+ self.bid64_to_binary32("4", "[eb6206a25682726d]", "[a18d568f]", "0x20")
+ self.bid64_to_binary32("0", "[eb8b0fc62594fa4f]", "[a9de3aba]", "0x20")
+ self.bid64_to_binary32("1", "[eb8b0fc62594fa4f]", "[a9de3abb]", "0x20")
+ self.bid64_to_binary32("2", "[eb8b0fc62594fa4f]", "[a9de3aba]", "0x20")
+ self.bid64_to_binary32("3", "[eb8b0fc62594fa4f]", "[a9de3aba]", "0x20")
+ self.bid64_to_binary32("4", "[eb8b0fc62594fa4f]", "[a9de3aba]", "0x20")
+ self.bid64_to_binary32("0", "[ebbb2bab5b1c9e73]", "[b3d497d7]", "0x20")
+ self.bid64_to_binary32("1", "[ebbb2bab5b1c9e73]", "[b3d497d8]", "0x20")
+ self.bid64_to_binary32("2", "[ebbb2bab5b1c9e73]", "[b3d497d7]", "0x20")
+ self.bid64_to_binary32("3", "[ebbb2bab5b1c9e73]", "[b3d497d7]", "0x20")
+ self.bid64_to_binary32("4", "[ebbb2bab5b1c9e73]", "[b3d497d7]", "0x20")
+ self.bid64_to_binary32("0", "[ebcad86484f1bcbb]", "[b7248d5d]", "0x20")
+ self.bid64_to_binary32("1", "[ebcad86484f1bcbb]", "[b7248d5d]", "0x20")
+ self.bid64_to_binary32("2", "[ebcad86484f1bcbb]", "[b7248d5c]", "0x20")
+ self.bid64_to_binary32("3", "[ebcad86484f1bcbb]", "[b7248d5c]", "0x20")
+ self.bid64_to_binary32("4", "[ebcad86484f1bcbb]", "[b7248d5d]", "0x20")
+ self.bid64_to_binary32("0", "[ebdb783cd788d689]", "[ba82dc2a]", "0x20")
+ self.bid64_to_binary32("1", "[ebdb783cd788d689]", "[ba82dc2a]", "0x20")
+ self.bid64_to_binary32("2", "[ebdb783cd788d689]", "[ba82dc29]", "0x20")
+ self.bid64_to_binary32("3", "[ebdb783cd788d689]", "[ba82dc29]", "0x20")
+ self.bid64_to_binary32("4", "[ebdb783cd788d689]", "[ba82dc2a]", "0x20")
+ self.bid64_to_binary32("0", "[ebe3861d8e3c7ded]", "[bc23d334]", "0x20")
+ self.bid64_to_binary32("1", "[ebe3861d8e3c7ded]", "[bc23d335]", "0x20")
+ self.bid64_to_binary32("2", "[ebe3861d8e3c7ded]", "[bc23d334]", "0x20")
+ self.bid64_to_binary32("3", "[ebe3861d8e3c7ded]", "[bc23d334]", "0x20")
+ self.bid64_to_binary32("4", "[ebe3861d8e3c7ded]", "[bc23d334]", "0x20")
+ self.bid64_to_binary32("0", "[ebf386e0f355acff]", "[bf7fff82]", "0x20")
+ self.bid64_to_binary32("1", "[ebf386e0f355acff]", "[bf7fff82]", "0x20")
+ self.bid64_to_binary32("2", "[ebf386e0f355acff]", "[bf7fff81]", "0x20")
+ self.bid64_to_binary32("3", "[ebf386e0f355acff]", "[bf7fff81]", "0x20")
+ self.bid64_to_binary32("4", "[ebf386e0f355acff]", "[bf7fff82]", "0x20")
+ self.bid64_to_binary32("0", "[ebfb86ebe2df8032]", "[c11fffe2]", "0x20")
+ self.bid64_to_binary32("1", "[ebfb86ebe2df8032]", "[c11fffe3]", "0x20")
+ self.bid64_to_binary32("2", "[ebfb86ebe2df8032]", "[c11fffe2]", "0x20")
+ self.bid64_to_binary32("3", "[ebfb86ebe2df8032]", "[c11fffe2]", "0x20")
+ self.bid64_to_binary32("4", "[ebfb86ebe2df8032]", "[c11fffe2]", "0x20")
+ self.bid64_to_binary32("0", "[ec0b86f26fc0ffff]", "[c47a0000]", "0x20")
+ self.bid64_to_binary32("1", "[ec0b86f26fc0ffff]", "[c47a0000]", "0x20")
+ self.bid64_to_binary32("2", "[ec0b86f26fc0ffff]", "[c479ffff]", "0x20")
+ self.bid64_to_binary32("3", "[ec0b86f26fc0ffff]", "[c479ffff]", "0x20")
+ self.bid64_to_binary32("4", "[ec0b86f26fc0ffff]", "[c47a0000]", "0x20")
+ self.bid64_to_binary32("0", "[ec2386f26fc0ffff]", "[c9742400]", "0x20")
+ self.bid64_to_binary32("1", "[ec2386f26fc0ffff]", "[c9742400]", "0x20")
+ self.bid64_to_binary32("2", "[ec2386f26fc0ffff]", "[c97423ff]", "0x20")
+ self.bid64_to_binary32("3", "[ec2386f26fc0ffff]", "[c97423ff]", "0x20")
+ self.bid64_to_binary32("4", "[ec2386f26fc0ffff]", "[c9742400]", "0x20")
+ self.bid64_to_binary32("0", "[ec3386f26fc0ffff]", "[ccbebc20]", "0x20")
+ self.bid64_to_binary32("1", "[ec3386f26fc0ffff]", "[ccbebc20]", "0x20")
+ self.bid64_to_binary32("2", "[ec3386f26fc0ffff]", "[ccbebc1f]", "0x20")
+ self.bid64_to_binary32("3", "[ec3386f26fc0ffff]", "[ccbebc1f]", "0x20")
+ self.bid64_to_binary32("4", "[ec3386f26fc0ffff]", "[ccbebc20]", "0x20")
+ self.bid64_to_binary32("0", "[ec3b86f26fc0ffff]", "[ce6e6b28]", "0x20")
+ self.bid64_to_binary32("1", "[ec3b86f26fc0ffff]", "[ce6e6b28]", "0x20")
+ self.bid64_to_binary32("2", "[ec3b86f26fc0ffff]", "[ce6e6b27]", "0x20")
+ self.bid64_to_binary32("3", "[ec3b86f26fc0ffff]", "[ce6e6b27]", "0x20")
+ self.bid64_to_binary32("4", "[ec3b86f26fc0ffff]", "[ce6e6b28]", "0x20")
+ self.bid64_to_binary32("0", "[ec4b86f2638bffff]", "[d1ba43b7]", "0x20")
+ self.bid64_to_binary32("1", "[ec4b86f2638bffff]", "[d1ba43b7]", "0x20")
+ self.bid64_to_binary32("2", "[ec4b86f2638bffff]", "[d1ba43b6]", "0x20")
+ self.bid64_to_binary32("3", "[ec4b86f2638bffff]", "[d1ba43b6]", "0x20")
+ self.bid64_to_binary32("4", "[ec4b86f2638bffff]", "[d1ba43b7]", "0x20")
+ self.bid64_to_binary32("0", "[ec5b86f226ffffff]", "[d51184e6]", "0x20")
+ self.bid64_to_binary32("1", "[ec5b86f226ffffff]", "[d51184e6]", "0x20")
+ self.bid64_to_binary32("2", "[ec5b86f226ffffff]", "[d51184e5]", "0x20")
+ self.bid64_to_binary32("3", "[ec5b86f226ffffff]", "[d51184e5]", "0x20")
+ self.bid64_to_binary32("4", "[ec5b86f226ffffff]", "[d51184e6]", "0x20")
+ self.bid64_to_binary32("0", "[ec6386f258ffffff]", "[d6b5e620]", "0x20")
+ self.bid64_to_binary32("1", "[ec6386f258ffffff]", "[d6b5e621]", "0x20")
+ self.bid64_to_binary32("2", "[ec6386f258ffffff]", "[d6b5e620]", "0x20")
+ self.bid64_to_binary32("3", "[ec6386f258ffffff]", "[d6b5e620]", "0x20")
+ self.bid64_to_binary32("4", "[ec6386f258ffffff]", "[d6b5e620]", "0x20")
+ self.bid64_to_binary32("0", "[ec7386f23fffffff]", "[da0e1bc9]", "0x20")
+ self.bid64_to_binary32("1", "[ec7386f23fffffff]", "[da0e1bc9]", "0x20")
+ self.bid64_to_binary32("2", "[ec7386f23fffffff]", "[da0e1bc8]", "0x20")
+ self.bid64_to_binary32("3", "[ec7386f23fffffff]", "[da0e1bc8]", "0x20")
+ self.bid64_to_binary32("4", "[ec7386f23fffffff]", "[da0e1bc9]", "0x20")
+ self.bid64_to_binary32("0", "[ec8b86eed916872b]", "[df0ac715]", "0x20")
+ self.bid64_to_binary32("1", "[ec8b86eed916872b]", "[df0ac715]", "0x20")
+ self.bid64_to_binary32("2", "[ec8b86eed916872b]", "[df0ac714]", "0x20")
+ self.bid64_to_binary32("3", "[ec8b86eed916872b]", "[df0ac714]", "0x20")
+ self.bid64_to_binary32("4", "[ec8b86eed916872b]", "[df0ac715]", "0x20")
+ self.bid64_to_binary32("0", "[ec9b844ff43419e3]", "[e258c712]", "0x20")
+ self.bid64_to_binary32("1", "[ec9b844ff43419e3]", "[e258c712]", "0x20")
+ self.bid64_to_binary32("2", "[ec9b844ff43419e3]", "[e258c711]", "0x20")
+ self.bid64_to_binary32("3", "[ec9b844ff43419e3]", "[e258c711]", "0x20")
+ self.bid64_to_binary32("4", "[ec9b844ff43419e3]", "[e258c712]", "0x20")
+ self.bid64_to_binary32("0", "[eca18da9973d9ec7]", "[e3fffdec]", "0x20")
+ self.bid64_to_binary32("1", "[eca18da9973d9ec7]", "[e3fffded]", "0x20")
+ self.bid64_to_binary32("2", "[eca18da9973d9ec7]", "[e3fffdec]", "0x20")
+ self.bid64_to_binary32("3", "[eca18da9973d9ec7]", "[e3fffdec]", "0x20")
+ self.bid64_to_binary32("4", "[eca18da9973d9ec7]", "[e3fffdec]", "0x20")
+ self.bid64_to_binary32("0", "[ecb2f8b4dd16f1df]", "[e750724a]", "0x20")
+ self.bid64_to_binary32("1", "[ecb2f8b4dd16f1df]", "[e750724a]", "0x20")
+ self.bid64_to_binary32("2", "[ecb2f8b4dd16f1df]", "[e7507249]", "0x20")
+ self.bid64_to_binary32("3", "[ecb2f8b4dd16f1df]", "[e7507249]", "0x20")
+ self.bid64_to_binary32("4", "[ecb2f8b4dd16f1df]", "[e750724a]", "0x20")
+ self.bid64_to_binary32("0", "[f7fb86f26fc0ffff]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("1", "[f7fb86f26fc0ffff]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("2", "[f7fb86f26fc0ffff]", "[ff7fffff]", "0x28")
+ self.bid64_to_binary32("3", "[f7fb86f26fc0ffff]", "[ff7fffff]", "0x28")
+ self.bid64_to_binary32("4", "[f7fb86f26fc0ffff]", "[ff800000]", "0x28")
+ self.bid64_to_binary32("0", "[f800000000000000]", "[ff800000]", "0x00")
+ self.bid64_to_binary32("1", "[f800000000000000]", "[ff800000]", "0x00")
+ self.bid64_to_binary32("2", "[f800000000000000]", "[ff800000]", "0x00")
+ self.bid64_to_binary32("3", "[f800000000000000]", "[ff800000]", "0x00")
+ self.bid64_to_binary32("4", "[f800000000000000]", "[ff800000]", "0x00")
+ }
+
+ private func bid64_to_binary32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseFloat(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Float(arg0, rounding: rounding, status: &status)
+ self.assertBinaryFloatingPoint(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_binary64() {
+ self.bid64_to_binary64("0", "[0000000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[0000000000000001]", "[0000000000000000]", "30")
+ self.bid64_to_binary64("0", "[002386F26FC10000]", "[0000000000000000]", "30")
+ self.bid64_to_binary64("0", "[01e0000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[0200000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[0755F0E047737E1E]", "[0000000000000000]", "30")
+ self.bid64_to_binary64("0", "[0755F0E1B78F093B]", "[0000000000000000]", "30")
+ self.bid64_to_binary64("0", "[07674569785223d2]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[0768C6C01C9498D9]", "[0000000000000001]", "30")
+ self.bid64_to_binary64("0", "[0768C6C0AFD2D07E]", "[0000000000000001]", "30")
+ self.bid64_to_binary64("0", "[076D2A202ADEE545]", "[0000000000000001]", "30")
+ self.bid64_to_binary64("0", "[07718d80392931b1]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("0", "[07718D80392931B1]", "[0000000000000001]", "30")
+ self.bid64_to_binary64("0", "[07718d80392931b2]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("0", "[07718D815FA5A0FC]", "[0000000000000001]", "30")
+ self.bid64_to_binary64("0", "[077A544055BDCA8A]", "[0000000000000001]", "30")
+ self.bid64_to_binary64("0", "[07C8FCAC257558EE]", "[0000000000000200]", "30")
+ self.bid64_to_binary64("0", "[07C8FCACBC3C39D9]", "[0000000000000200]", "30")
+ self.bid64_to_binary64("0", "[0967E7B160EF71C0]", "[000FFFFFFFFFFFFD]", "30")
+ self.bid64_to_binary64("0", "[0967e7b160ef71c1]", "[000fffffffffffff]", "0x30")
+ self.bid64_to_binary64("0", "[0967E7B160EF71C1]", "[000FFFFFFFFFFFFF]", "30")
+ self.bid64_to_binary64("0", "[0967e7b160ef71c2]", "[0010000000000001]", "0x20")
+ self.bid64_to_binary64("0", "[0967E7B160EF71C2]", "[0010000000000001]", "20")
+ self.bid64_to_binary64("0", "[096fcf62c1dee382]", "[001ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("0", "[096fcf62c1dee383]", "[0020000000000000]", "0x20")
+ self.bid64_to_binary64("0", "[0a97365796617f83]", "[0205e0b5e88edcac]", "0x20")
+ self.bid64_to_binary64("0", "[0dc10dbea1eb65e6]", "[0724897e27bfee55]", "0x20")
+ self.bid64_to_binary64("0", "[10ec8294d1bdbf11]", "[0c8f83a32f69f129]", "0x20")
+ self.bid64_to_binary64("0", "[14068f76c44a7dcf]", "[11b1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("0", "[1739ab8261990292]", "[17014894813761f2]", "0x20")
+ self.bid64_to_binary64("0", "[1a6202c6bc0e7a35]", "[1c2bff78226c56a7]", "0x20")
+ self.bid64_to_binary64("0", "[1d88e19000389faf]", "[217ff6d970238791]", "0x20")
+ self.bid64_to_binary64("0", "[20bf3cbdc494bf4b]", "[26cd0fcbf97f8d11]", "0x20")
+ self.bid64_to_binary64("0", "[2700e16c4aa51b83]", "[31118452f93667d3]", "0x20")
+ self.bid64_to_binary64("0", "[2a255a6f69795a8b]", "[366b870de5d9326f]", "0x20")
+ self.bid64_to_binary64("0", "[2A263917877CEC05]", "[366FFFFFFFFFFFFE]", "20")
+ self.bid64_to_binary64("0", "[2A263917EFE491AE]", "[367000010C6F7A0C]", "20")
+ self.bid64_to_binary64("0", "[2A38E45E1DF3B015]", "[3690000000000000]", "20")
+ self.bid64_to_binary64("0", "[2A38E45FBF9246B7]", "[369000010C6F7A0B]", "20")
+ self.bid64_to_binary64("0", "[2A43BBDAEAE48D9D]", "[3698000000000001]", "20")
+ self.bid64_to_binary64("0", "[2A44FA793930BCD1]", "[36A0000000000000]", "20")
+ self.bid64_to_binary64("0", "[2A44FA798CB6DAF1]", "[36A000010C6F7A0A]", "20")
+ self.bid64_to_binary64("0", "[2A4777B5D5C91B3A]", "[36A8000000000001]", "20")
+ self.bid64_to_binary64("0", "[2A997D4DF19D6057]", "[372FFFFFFFFFFFFF]", "20")
+ self.bid64_to_binary64("0", "[2A997D4F9D41D1A1]", "[373000010C6F7A0C]", "20")
+ self.bid64_to_binary64("0", "[2B242d1b1b375b8f]", "[380FFFFFFFFFFFFC]", "20")
+ self.bid64_to_binary64("0", "[2d515b57b7912b6b]", "[3bb7123726f69593]", "0x20")
+ self.bid64_to_binary64("0", "[3040000000000001]", "[3D719799812DEA11]", "20")
+ self.bid64_to_binary64("0", "[30400001ffffffff]", "[3F81979981251E44]", "20")
+ self.bid64_to_binary64("0", "[30400003ffffffff]", "[3F9197998129842B]", "20")
+ self.bid64_to_binary64("0", "[30400007ffffffff]", "[3FA19799812BB71E]", "20")
+ self.bid64_to_binary64("0", "[3040000fffffffff]", "[3FB19799812CD098]", "20")
+ self.bid64_to_binary64("0", "[3041ffffffffffff]", "[40819799812DEA08]", "20")
+ self.bid64_to_binary64("0", "[304fffffffffffff]", "[40B19799812DEA10]", "20")
+ self.bid64_to_binary64("0", "[30c00000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31a000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31c0000000000000]", "[0000000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31c0000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31c0000000000040]", "[4050000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31c00000000003e7]", "[408f380000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31c00000000003e8]", "[408f400000000000]", "0x00")
+ self.bid64_to_binary64("0", "[338b424d5d7eb34e]", "[460ffffede9c4cbb]", "0x20")
+ self.bid64_to_binary64("0", "[34AC13C157F0C34F]", "[47EFF7CED916872A]", "20")
+ self.bid64_to_binary64("0", "[34B22246700E05BD]", "[47F8000000000000]", "20")
+ self.bid64_to_binary64("0", "[34C570AEBB37681F]", "[4812000000000000]", "20")
+ self.bid64_to_binary64("0", "[36c394f170eed7db]", "[4b5a50a259963ca6]", "0x20")
+ self.bid64_to_binary64("0", "[39e4c7680bf36616]", "[509226c684c87261]", "0x20")
+ self.bid64_to_binary64("0", "[3d0bf1cc3c8b534f]", "[55d77467f4a92f6c]", "0x20")
+ self.bid64_to_binary64("0", "[43477ac00b6ce36c]", "[602f6768b6321b82]", "0x20")
+ self.bid64_to_binary64("0", "[468a88caf33b1fc1]", "[659c9548eab35381]", "0x20")
+ self.bid64_to_binary64("0", "[4ccdb676714ca307]", "[7003e3a32c6f9728]", "0x20")
+ self.bid64_to_binary64("0", "[4ff46d10f9119672]", "[753ea2039a1fa248]", "0x20")
+ self.bid64_to_binary64("0", "[53277b95cded4e66]", "[7a8d020192cc2618]", "0x20")
+ self.bid64_to_binary64("0", "[5666615B7DDB9FDE]", "[7FEFF7CED916872D]", "20")
+ self.bid64_to_binary64("0", "[566662fe0cb7f7eb]", "[7feffffffffffffb]", "0x20")
+ self.bid64_to_binary64("0", "[566662fe0cb7f7ec]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("0", "[5669947D1313F3E2]", "[7FF0000000000000]", "28")
+ self.bid64_to_binary64("0", "[567CBD77393BDBA6]", "[7FF0000000000000]", "28")
+ self.bid64_to_binary64("0", "[68f1f5a9e5a7fc7a]", "[2c00557dd789805b]", "0x20")
+ self.bid64_to_binary64("0", "[6c1b86f26dab4575]", "[40f869fffe913975]", "0x20")
+ self.bid64_to_binary64("0", "[6C7386F26FC10000]", "[0000000000000000]", "00")
+ self.bid64_to_binary64("0", "[700a8ebab81862f2]", "[5b218a7f36172332]", "0x20")
+ self.bid64_to_binary64("0", "[726b181fdc73eb71]", "[6ae89d46b1fa3164]", "0x20")
+ self.bid64_to_binary64("0", "[75137407EB641FFF]", "[7C90000000000000]", "20")
+ self.bid64_to_binary64("0", "[77fb86f26fc0ffff]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("0", "[77FB86F26FC0FFFF]", "[7FF0000000000000]", "28")
+ self.bid64_to_binary64("0", "[77fb86f26fc10000]", "[0000000000000000]", "00")
+ self.bid64_to_binary64("0", "[7800000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[7c00000000000000]", "[7FF8000000000000]", "00")
+ self.bid64_to_binary64("0", "[7c038D7EA4C67FFF]", "[7FFF1AFD498CFFFE]", "00")
+ self.bid64_to_binary64("0", "[7c038D7EA4C68000]", "[7FF8000000000000]", "00")
+ self.bid64_to_binary64("0", "[7e00000000000000]", "[7FF8000000000000]", "01")
+ self.bid64_to_binary64("0", "[7e038D7EA4C67FFF]", "[7FFF1AFD498CFFFE]", "01")
+ self.bid64_to_binary64("0", "[7e038D7EA4C68000]", "[7FF8000000000000]", "01")
+ self.bid64_to_binary64("0", "[8000000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[81e0000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[8200000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[87674569785223d2]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[87718d80392931b1]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("0", "[87718d80392931b2]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("0", "[8967e7b160ef71c1]", "[800fffffffffffff]", "0x30")
+ self.bid64_to_binary64("0", "[8967e7b160ef71c2]", "[8010000000000001]", "0x20")
+ self.bid64_to_binary64("0", "[896fcf62c1dee382]", "[801ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("0", "[896fcf62c1dee383]", "[8020000000000000]", "0x20")
+ self.bid64_to_binary64("0", "[8a97365796617f83]", "[8205e0b5e88edcac]", "0x20")
+ self.bid64_to_binary64("0", "[8dc10dbea1eb65e6]", "[8724897e27bfee55]", "0x20")
+ self.bid64_to_binary64("0", "[90ec8294d1bdbf11]", "[8c8f83a32f69f129]", "0x20")
+ self.bid64_to_binary64("0", "[94068f76c44a7dcf]", "[91b1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("0", "[9739ab8261990292]", "[97014894813761f2]", "0x20")
+ self.bid64_to_binary64("0", "[9a6202c6bc0e7a35]", "[9c2bff78226c56a7]", "0x20")
+ self.bid64_to_binary64("0", "[9d88e19000389faf]", "[a17ff6d970238791]", "0x20")
+ self.bid64_to_binary64("0", "[a0bf3cbdc494bf4b]", "[a6cd0fcbf97f8d11]", "0x20")
+ self.bid64_to_binary64("0", "[a700e16c4aa51b83]", "[b1118452f93667d3]", "0x20")
+ self.bid64_to_binary64("0", "[aa255a6f69795a8b]", "[b66b870de5d9326f]", "0x20")
+ self.bid64_to_binary64("0", "[ad515b57b7912b6b]", "[bbb7123726f69593]", "0x20")
+ self.bid64_to_binary64("0", "[b0c00000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b1a000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b1c0000000000001]", "[bff0000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b1c0000000000040]", "[c050000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b1c00000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b1c00000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b38b424d5d7eb34e]", "[c60ffffede9c4cbb]", "0x20")
+ self.bid64_to_binary64("0", "[b6c394f170eed7db]", "[cb5a50a259963ca6]", "0x20")
+ self.bid64_to_binary64("0", "[b9e4c7680bf36616]", "[d09226c684c87261]", "0x20")
+ self.bid64_to_binary64("0", "[bd0bf1cc3c8b534f]", "[d5d77467f4a92f6c]", "0x20")
+ self.bid64_to_binary64("0", "[c3477ac00b6ce36c]", "[e02f6768b6321b82]", "0x20")
+ self.bid64_to_binary64("0", "[c68a88caf33b1fc1]", "[e59c9548eab35381]", "0x20")
+ self.bid64_to_binary64("0", "[cccdb676714ca307]", "[f003e3a32c6f9728]", "0x20")
+ self.bid64_to_binary64("0", "[cff46d10f9119672]", "[f53ea2039a1fa248]", "0x20")
+ self.bid64_to_binary64("0", "[d3277b95cded4e66]", "[fa8d020192cc2618]", "0x20")
+ self.bid64_to_binary64("0", "[d66662fe0cb7f7eb]", "[ffeffffffffffffb]", "0x20")
+ self.bid64_to_binary64("0", "[d66662fe0cb7f7ec]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("0", "[e8f1f5a9e5a7fc7a]", "[ac00557dd789805b]", "0x20")
+ self.bid64_to_binary64("0", "[ec1b86f26dab4575]", "[c0f869fffe913975]", "0x20")
+ self.bid64_to_binary64("0", "[f00a8ebab81862f2]", "[db218a7f36172332]", "0x20")
+ self.bid64_to_binary64("0", "[f26b181fdc73eb71]", "[eae89d46b1fa3164]", "0x20")
+ self.bid64_to_binary64("0", "[f7fb86f26fc0ffff]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("0", "[f800000000000000]", "[fff0000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[0000000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[01e0000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[0200000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[07674569785223d2]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[07718d80392931b1]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[07718d80392931b2]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[0967e7b160ef71c1]", "[000fffffffffffff]", "0x30")
+ self.bid64_to_binary64("1", "[0967E7B160EF71C1]", "[000fffffffffffff]", "30")
+ self.bid64_to_binary64("1", "[0967e7b160ef71c2]", "[0010000000000001]", "0x20")
+ self.bid64_to_binary64("1", "[096fcf62c1dee382]", "[001ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("1", "[096fcf62c1dee383]", "[0020000000000000]", "0x20")
+ self.bid64_to_binary64("1", "[0a97365796617f83]", "[0205e0b5e88edcac]", "0x20")
+ self.bid64_to_binary64("1", "[0dc10dbea1eb65e6]", "[0724897e27bfee55]", "0x20")
+ self.bid64_to_binary64("1", "[10ec8294d1bdbf11]", "[0c8f83a32f69f129]", "0x20")
+ self.bid64_to_binary64("1", "[14068f76c44a7dcf]", "[11b1167cf9686bf5]", "0x20")
+ self.bid64_to_binary64("1", "[1739ab8261990292]", "[17014894813761f1]", "0x20")
+ self.bid64_to_binary64("1", "[1a6202c6bc0e7a35]", "[1c2bff78226c56a7]", "0x20")
+ self.bid64_to_binary64("1", "[1d88e19000389faf]", "[217ff6d970238790]", "0x20")
+ self.bid64_to_binary64("1", "[20bf3cbdc494bf4b]", "[26cd0fcbf97f8d10]", "0x20")
+ self.bid64_to_binary64("1", "[2700e16c4aa51b83]", "[31118452f93667d2]", "0x20")
+ self.bid64_to_binary64("1", "[2a255a6f69795a8b]", "[366b870de5d9326f]", "0x20")
+ self.bid64_to_binary64("1", "[2d515b57b7912b6b]", "[3bb7123726f69592]", "0x20")
+ self.bid64_to_binary64("1", "[30c00000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31a000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31c0000000000000]", "[0000000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31c0000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31c0000000000040]", "[4050000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31c00000000003e7]", "[408f380000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31c00000000003e8]", "[408f400000000000]", "0x00")
+ self.bid64_to_binary64("1", "[338b424d5d7eb34e]", "[460ffffede9c4cbb]", "0x20")
+ self.bid64_to_binary64("1", "[36c394f170eed7db]", "[4b5a50a259963ca5]", "0x20")
+ self.bid64_to_binary64("1", "[39e4c7680bf36616]", "[509226c684c87260]", "0x20")
+ self.bid64_to_binary64("1", "[3d0bf1cc3c8b534f]", "[55d77467f4a92f6c]", "0x20")
+ self.bid64_to_binary64("1", "[43477ac00b6ce36c]", "[602f6768b6321b81]", "0x20")
+ self.bid64_to_binary64("1", "[468a88caf33b1fc1]", "[659c9548eab35381]", "0x20")
+ self.bid64_to_binary64("1", "[4ccdb676714ca307]", "[7003e3a32c6f9727]", "0x20")
+ self.bid64_to_binary64("1", "[4ff46d10f9119672]", "[753ea2039a1fa248]", "0x20")
+ self.bid64_to_binary64("1", "[53277b95cded4e66]", "[7a8d020192cc2617]", "0x20")
+ self.bid64_to_binary64("1", "[566662fe0cb7f7eb]", "[7feffffffffffffb]", "0x20")
+ self.bid64_to_binary64("1", "[566662fe0cb7f7ec]", "[7fefffffffffffff]", "0x28")
+ self.bid64_to_binary64("1", "[68f1f5a9e5a7fc7a]", "[2c00557dd789805a]", "0x20")
+ self.bid64_to_binary64("1", "[6c1b86f26dab4575]", "[40f869fffe913974]", "0x20")
+ self.bid64_to_binary64("1", "[700a8ebab81862f2]", "[5b218a7f36172332]", "0x20")
+ self.bid64_to_binary64("1", "[726b181fdc73eb71]", "[6ae89d46b1fa3164]", "0x20")
+ self.bid64_to_binary64("1", "[77fb86f26fc0ffff]", "[7fefffffffffffff]", "0x28")
+ self.bid64_to_binary64("1", "[7800000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[8000000000000001]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[81e0000000000001]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[8200000000000001]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[87674569785223d2]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[87718d80392931b1]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[87718d80392931b2]", "[8000000000000002]", "0x30")
+ self.bid64_to_binary64("1", "[8967e7b160ef71c1]", "[8010000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[8967E7B160EF71C1]", "[8010000000000000]", "30")
+ self.bid64_to_binary64("1", "[8967e7b160ef71c2]", "[8010000000000002]", "0x20")
+ self.bid64_to_binary64("1", "[896fcf62c1dee382]", "[801fffffffffffff]", "0x20")
+ self.bid64_to_binary64("1", "[896fcf62c1dee383]", "[8020000000000001]", "0x20")
+ self.bid64_to_binary64("1", "[8a97365796617f83]", "[8205e0b5e88edcad]", "0x20")
+ self.bid64_to_binary64("1", "[8dc10dbea1eb65e6]", "[8724897e27bfee56]", "0x20")
+ self.bid64_to_binary64("1", "[90ec8294d1bdbf11]", "[8c8f83a32f69f12a]", "0x20")
+ self.bid64_to_binary64("1", "[94068f76c44a7dcf]", "[91b1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("1", "[9739ab8261990292]", "[97014894813761f2]", "0x20")
+ self.bid64_to_binary64("1", "[9a6202c6bc0e7a35]", "[9c2bff78226c56a8]", "0x20")
+ self.bid64_to_binary64("1", "[9d88e19000389faf]", "[a17ff6d970238791]", "0x20")
+ self.bid64_to_binary64("1", "[a0bf3cbdc494bf4b]", "[a6cd0fcbf97f8d11]", "0x20")
+ self.bid64_to_binary64("1", "[a700e16c4aa51b83]", "[b1118452f93667d3]", "0x20")
+ self.bid64_to_binary64("1", "[aa255a6f69795a8b]", "[b66b870de5d93270]", "0x20")
+ self.bid64_to_binary64("1", "[ad515b57b7912b6b]", "[bbb7123726f69593]", "0x20")
+ self.bid64_to_binary64("1", "[b0c00000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b1a000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b1c0000000000001]", "[bff0000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b1c0000000000040]", "[c050000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b1c00000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b1c00000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b38b424d5d7eb34e]", "[c60ffffede9c4cbc]", "0x20")
+ self.bid64_to_binary64("1", "[b6c394f170eed7db]", "[cb5a50a259963ca6]", "0x20")
+ self.bid64_to_binary64("1", "[b9e4c7680bf36616]", "[d09226c684c87261]", "0x20")
+ self.bid64_to_binary64("1", "[bd0bf1cc3c8b534f]", "[d5d77467f4a92f6d]", "0x20")
+ self.bid64_to_binary64("1", "[c3477ac00b6ce36c]", "[e02f6768b6321b82]", "0x20")
+ self.bid64_to_binary64("1", "[c68a88caf33b1fc1]", "[e59c9548eab35382]", "0x20")
+ self.bid64_to_binary64("1", "[cccdb676714ca307]", "[f003e3a32c6f9728]", "0x20")
+ self.bid64_to_binary64("1", "[cff46d10f9119672]", "[f53ea2039a1fa249]", "0x20")
+ self.bid64_to_binary64("1", "[d3277b95cded4e66]", "[fa8d020192cc2618]", "0x20")
+ self.bid64_to_binary64("1", "[d66662fe0cb7f7eb]", "[ffeffffffffffffc]", "0x20")
+ self.bid64_to_binary64("1", "[d66662fe0cb7f7ec]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("1", "[e8f1f5a9e5a7fc7a]", "[ac00557dd789805b]", "0x20")
+ self.bid64_to_binary64("1", "[ec1b86f26dab4575]", "[c0f869fffe913975]", "0x20")
+ self.bid64_to_binary64("1", "[f00a8ebab81862f2]", "[db218a7f36172333]", "0x20")
+ self.bid64_to_binary64("1", "[f26b181fdc73eb71]", "[eae89d46b1fa3165]", "0x20")
+ self.bid64_to_binary64("1", "[f7fb86f26fc0ffff]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("1", "[f800000000000000]", "[fff0000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[0000000000000001]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[01e0000000000001]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[0200000000000001]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[07674569785223d2]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[07718d80392931b1]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[07718d80392931b2]", "[0000000000000002]", "0x30")
+ self.bid64_to_binary64("2", "[0967e7b160ef71c1]", "[0010000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[0967E7B160EF71C1]", "[0010000000000000]", "30")
+ self.bid64_to_binary64("2", "[0967e7b160ef71c2]", "[0010000000000002]", "0x20")
+ self.bid64_to_binary64("2", "[096fcf62c1dee382]", "[001fffffffffffff]", "0x20")
+ self.bid64_to_binary64("2", "[096fcf62c1dee383]", "[0020000000000001]", "0x20")
+ self.bid64_to_binary64("2", "[0a97365796617f83]", "[0205e0b5e88edcad]", "0x20")
+ self.bid64_to_binary64("2", "[0dc10dbea1eb65e6]", "[0724897e27bfee56]", "0x20")
+ self.bid64_to_binary64("2", "[10ec8294d1bdbf11]", "[0c8f83a32f69f12a]", "0x20")
+ self.bid64_to_binary64("2", "[14068f76c44a7dcf]", "[11b1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("2", "[1739ab8261990292]", "[17014894813761f2]", "0x20")
+ self.bid64_to_binary64("2", "[1a6202c6bc0e7a35]", "[1c2bff78226c56a8]", "0x20")
+ self.bid64_to_binary64("2", "[1d88e19000389faf]", "[217ff6d970238791]", "0x20")
+ self.bid64_to_binary64("2", "[20bf3cbdc494bf4b]", "[26cd0fcbf97f8d11]", "0x20")
+ self.bid64_to_binary64("2", "[2700e16c4aa51b83]", "[31118452f93667d3]", "0x20")
+ self.bid64_to_binary64("2", "[2a255a6f69795a8b]", "[366b870de5d93270]", "0x20")
+ self.bid64_to_binary64("2", "[2d515b57b7912b6b]", "[3bb7123726f69593]", "0x20")
+ self.bid64_to_binary64("2", "[30c00000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31a000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31c0000000000000]", "[0000000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31c0000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31c0000000000040]", "[4050000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31c00000000003e7]", "[408f380000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31c00000000003e8]", "[408f400000000000]", "0x00")
+ self.bid64_to_binary64("2", "[338b424d5d7eb34e]", "[460ffffede9c4cbc]", "0x20")
+ self.bid64_to_binary64("2", "[36c394f170eed7db]", "[4b5a50a259963ca6]", "0x20")
+ self.bid64_to_binary64("2", "[39e4c7680bf36616]", "[509226c684c87261]", "0x20")
+ self.bid64_to_binary64("2", "[3d0bf1cc3c8b534f]", "[55d77467f4a92f6d]", "0x20")
+ self.bid64_to_binary64("2", "[43477ac00b6ce36c]", "[602f6768b6321b82]", "0x20")
+ self.bid64_to_binary64("2", "[468a88caf33b1fc1]", "[659c9548eab35382]", "0x20")
+ self.bid64_to_binary64("2", "[4ccdb676714ca307]", "[7003e3a32c6f9728]", "0x20")
+ self.bid64_to_binary64("2", "[4ff46d10f9119672]", "[753ea2039a1fa249]", "0x20")
+ self.bid64_to_binary64("2", "[53277b95cded4e66]", "[7a8d020192cc2618]", "0x20")
+ self.bid64_to_binary64("2", "[566662fe0cb7f7eb]", "[7feffffffffffffc]", "0x20")
+ self.bid64_to_binary64("2", "[566662fe0cb7f7ec]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("2", "[68f1f5a9e5a7fc7a]", "[2c00557dd789805b]", "0x20")
+ self.bid64_to_binary64("2", "[6c1b86f26dab4575]", "[40f869fffe913975]", "0x20")
+ self.bid64_to_binary64("2", "[700a8ebab81862f2]", "[5b218a7f36172333]", "0x20")
+ self.bid64_to_binary64("2", "[726b181fdc73eb71]", "[6ae89d46b1fa3165]", "0x20")
+ self.bid64_to_binary64("2", "[77fb86f26fc0ffff]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("2", "[7800000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[8000000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[81e0000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[8200000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[87674569785223d2]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[87718d80392931b1]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[87718d80392931b2]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[8967e7b160ef71c1]", "[800fffffffffffff]", "0x30")
+ self.bid64_to_binary64("2", "[8967E7B160EF71C1]", "[800fffffffffffff]", "30")
+ self.bid64_to_binary64("2", "[8967e7b160ef71c2]", "[8010000000000001]", "0x20")
+ self.bid64_to_binary64("2", "[896fcf62c1dee382]", "[801ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("2", "[896fcf62c1dee383]", "[8020000000000000]", "0x20")
+ self.bid64_to_binary64("2", "[8a97365796617f83]", "[8205e0b5e88edcac]", "0x20")
+ self.bid64_to_binary64("2", "[8dc10dbea1eb65e6]", "[8724897e27bfee55]", "0x20")
+ self.bid64_to_binary64("2", "[90ec8294d1bdbf11]", "[8c8f83a32f69f129]", "0x20")
+ self.bid64_to_binary64("2", "[94068f76c44a7dcf]", "[91b1167cf9686bf5]", "0x20")
+ self.bid64_to_binary64("2", "[9739ab8261990292]", "[97014894813761f1]", "0x20")
+ self.bid64_to_binary64("2", "[9a6202c6bc0e7a35]", "[9c2bff78226c56a7]", "0x20")
+ self.bid64_to_binary64("2", "[9d88e19000389faf]", "[a17ff6d970238790]", "0x20")
+ self.bid64_to_binary64("2", "[a0bf3cbdc494bf4b]", "[a6cd0fcbf97f8d10]", "0x20")
+ self.bid64_to_binary64("2", "[a700e16c4aa51b83]", "[b1118452f93667d2]", "0x20")
+ self.bid64_to_binary64("2", "[aa255a6f69795a8b]", "[b66b870de5d9326f]", "0x20")
+ self.bid64_to_binary64("2", "[ad515b57b7912b6b]", "[bbb7123726f69592]", "0x20")
+ self.bid64_to_binary64("2", "[b0c00000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b1a000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b1c0000000000001]", "[bff0000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b1c0000000000040]", "[c050000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b1c00000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b1c00000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b38b424d5d7eb34e]", "[c60ffffede9c4cbb]", "0x20")
+ self.bid64_to_binary64("2", "[b6c394f170eed7db]", "[cb5a50a259963ca5]", "0x20")
+ self.bid64_to_binary64("2", "[b9e4c7680bf36616]", "[d09226c684c87260]", "0x20")
+ self.bid64_to_binary64("2", "[bd0bf1cc3c8b534f]", "[d5d77467f4a92f6c]", "0x20")
+ self.bid64_to_binary64("2", "[c3477ac00b6ce36c]", "[e02f6768b6321b81]", "0x20")
+ self.bid64_to_binary64("2", "[c68a88caf33b1fc1]", "[e59c9548eab35381]", "0x20")
+ self.bid64_to_binary64("2", "[cccdb676714ca307]", "[f003e3a32c6f9727]", "0x20")
+ self.bid64_to_binary64("2", "[cff46d10f9119672]", "[f53ea2039a1fa248]", "0x20")
+ self.bid64_to_binary64("2", "[d3277b95cded4e66]", "[fa8d020192cc2617]", "0x20")
+ self.bid64_to_binary64("2", "[d66662fe0cb7f7eb]", "[ffeffffffffffffb]", "0x20")
+ self.bid64_to_binary64("2", "[d66662fe0cb7f7ec]", "[ffefffffffffffff]", "0x28")
+ self.bid64_to_binary64("2", "[e8f1f5a9e5a7fc7a]", "[ac00557dd789805a]", "0x20")
+ self.bid64_to_binary64("2", "[ec1b86f26dab4575]", "[c0f869fffe913974]", "0x20")
+ self.bid64_to_binary64("2", "[f00a8ebab81862f2]", "[db218a7f36172332]", "0x20")
+ self.bid64_to_binary64("2", "[f26b181fdc73eb71]", "[eae89d46b1fa3164]", "0x20")
+ self.bid64_to_binary64("2", "[f7fb86f26fc0ffff]", "[ffefffffffffffff]", "0x28")
+ self.bid64_to_binary64("2", "[f800000000000000]", "[fff0000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[0000000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[01e0000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[0200000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[07674569785223d2]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[07718d80392931b1]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[07718d80392931b2]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("3", "[0967e7b160ef71c1]", "[000fffffffffffff]", "0x30")
+ self.bid64_to_binary64("3", "[0967e7b160ef71c2]", "[0010000000000001]", "0x20")
+ self.bid64_to_binary64("3", "[096fcf62c1dee382]", "[001ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("3", "[096fcf62c1dee383]", "[0020000000000000]", "0x20")
+ self.bid64_to_binary64("3", "[0a97365796617f83]", "[0205e0b5e88edcac]", "0x20")
+ self.bid64_to_binary64("3", "[0dc10dbea1eb65e6]", "[0724897e27bfee55]", "0x20")
+ self.bid64_to_binary64("3", "[10ec8294d1bdbf11]", "[0c8f83a32f69f129]", "0x20")
+ self.bid64_to_binary64("3", "[14068f76c44a7dcf]", "[11b1167cf9686bf5]", "0x20")
+ self.bid64_to_binary64("3", "[1739ab8261990292]", "[17014894813761f1]", "0x20")
+ self.bid64_to_binary64("3", "[1a6202c6bc0e7a35]", "[1c2bff78226c56a7]", "0x20")
+ self.bid64_to_binary64("3", "[1d88e19000389faf]", "[217ff6d970238790]", "0x20")
+ self.bid64_to_binary64("3", "[20bf3cbdc494bf4b]", "[26cd0fcbf97f8d10]", "0x20")
+ self.bid64_to_binary64("3", "[2700e16c4aa51b83]", "[31118452f93667d2]", "0x20")
+ self.bid64_to_binary64("3", "[2a255a6f69795a8b]", "[366b870de5d9326f]", "0x20")
+ self.bid64_to_binary64("3", "[2d515b57b7912b6b]", "[3bb7123726f69592]", "0x20")
+ self.bid64_to_binary64("3", "[30c00000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31a000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31c0000000000000]", "[0000000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31c0000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31c0000000000040]", "[4050000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31c00000000003e7]", "[408f380000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31c00000000003e8]", "[408f400000000000]", "0x00")
+ self.bid64_to_binary64("3", "[338b424d5d7eb34e]", "[460ffffede9c4cbb]", "0x20")
+ self.bid64_to_binary64("3", "[36c394f170eed7db]", "[4b5a50a259963ca5]", "0x20")
+ self.bid64_to_binary64("3", "[39e4c7680bf36616]", "[509226c684c87260]", "0x20")
+ self.bid64_to_binary64("3", "[3d0bf1cc3c8b534f]", "[55d77467f4a92f6c]", "0x20")
+ self.bid64_to_binary64("3", "[43477ac00b6ce36c]", "[602f6768b6321b81]", "0x20")
+ self.bid64_to_binary64("3", "[468a88caf33b1fc1]", "[659c9548eab35381]", "0x20")
+ self.bid64_to_binary64("3", "[4ccdb676714ca307]", "[7003e3a32c6f9727]", "0x20")
+ self.bid64_to_binary64("3", "[4ff46d10f9119672]", "[753ea2039a1fa248]", "0x20")
+ self.bid64_to_binary64("3", "[53277b95cded4e66]", "[7a8d020192cc2617]", "0x20")
+ self.bid64_to_binary64("3", "[566662fe0cb7f7eb]", "[7feffffffffffffb]", "0x20")
+ self.bid64_to_binary64("3", "[566662fe0cb7f7ec]", "[7fefffffffffffff]", "0x28")
+ self.bid64_to_binary64("3", "[68f1f5a9e5a7fc7a]", "[2c00557dd789805a]", "0x20")
+ self.bid64_to_binary64("3", "[6c1b86f26dab4575]", "[40f869fffe913974]", "0x20")
+ self.bid64_to_binary64("3", "[700a8ebab81862f2]", "[5b218a7f36172332]", "0x20")
+ self.bid64_to_binary64("3", "[726b181fdc73eb71]", "[6ae89d46b1fa3164]", "0x20")
+ self.bid64_to_binary64("3", "[77fb86f26fc0ffff]", "[7fefffffffffffff]", "0x28")
+ self.bid64_to_binary64("3", "[7800000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[8000000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[81e0000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[8200000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[87674569785223d2]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[87718d80392931b1]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[87718d80392931b2]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("3", "[8967e7b160ef71c1]", "[800fffffffffffff]", "0x30")
+ self.bid64_to_binary64("3", "[8967e7b160ef71c2]", "[8010000000000001]", "0x20")
+ self.bid64_to_binary64("3", "[896fcf62c1dee382]", "[801ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("3", "[896fcf62c1dee383]", "[8020000000000000]", "0x20")
+ self.bid64_to_binary64("3", "[8a97365796617f83]", "[8205e0b5e88edcac]", "0x20")
+ self.bid64_to_binary64("3", "[8dc10dbea1eb65e6]", "[8724897e27bfee55]", "0x20")
+ self.bid64_to_binary64("3", "[90ec8294d1bdbf11]", "[8c8f83a32f69f129]", "0x20")
+ self.bid64_to_binary64("3", "[94068f76c44a7dcf]", "[91b1167cf9686bf5]", "0x20")
+ self.bid64_to_binary64("3", "[9739ab8261990292]", "[97014894813761f1]", "0x20")
+ self.bid64_to_binary64("3", "[9a6202c6bc0e7a35]", "[9c2bff78226c56a7]", "0x20")
+ self.bid64_to_binary64("3", "[9d88e19000389faf]", "[a17ff6d970238790]", "0x20")
+ self.bid64_to_binary64("3", "[a0bf3cbdc494bf4b]", "[a6cd0fcbf97f8d10]", "0x20")
+ self.bid64_to_binary64("3", "[a700e16c4aa51b83]", "[b1118452f93667d2]", "0x20")
+ self.bid64_to_binary64("3", "[aa255a6f69795a8b]", "[b66b870de5d9326f]", "0x20")
+ self.bid64_to_binary64("3", "[ad515b57b7912b6b]", "[bbb7123726f69592]", "0x20")
+ self.bid64_to_binary64("3", "[b0c00000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b1a000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b1c0000000000001]", "[bff0000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b1c0000000000040]", "[c050000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b1c00000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b1c00000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b38b424d5d7eb34e]", "[c60ffffede9c4cbb]", "0x20")
+ self.bid64_to_binary64("3", "[b6c394f170eed7db]", "[cb5a50a259963ca5]", "0x20")
+ self.bid64_to_binary64("3", "[b9e4c7680bf36616]", "[d09226c684c87260]", "0x20")
+ self.bid64_to_binary64("3", "[bd0bf1cc3c8b534f]", "[d5d77467f4a92f6c]", "0x20")
+ self.bid64_to_binary64("3", "[c3477ac00b6ce36c]", "[e02f6768b6321b81]", "0x20")
+ self.bid64_to_binary64("3", "[c68a88caf33b1fc1]", "[e59c9548eab35381]", "0x20")
+ self.bid64_to_binary64("3", "[cccdb676714ca307]", "[f003e3a32c6f9727]", "0x20")
+ self.bid64_to_binary64("3", "[cff46d10f9119672]", "[f53ea2039a1fa248]", "0x20")
+ self.bid64_to_binary64("3", "[d3277b95cded4e66]", "[fa8d020192cc2617]", "0x20")
+ self.bid64_to_binary64("3", "[d66662fe0cb7f7eb]", "[ffeffffffffffffb]", "0x20")
+ self.bid64_to_binary64("3", "[d66662fe0cb7f7ec]", "[ffefffffffffffff]", "0x28")
+ self.bid64_to_binary64("3", "[e8f1f5a9e5a7fc7a]", "[ac00557dd789805a]", "0x20")
+ self.bid64_to_binary64("3", "[ec1b86f26dab4575]", "[c0f869fffe913974]", "0x20")
+ self.bid64_to_binary64("3", "[f00a8ebab81862f2]", "[db218a7f36172332]", "0x20")
+ self.bid64_to_binary64("3", "[f26b181fdc73eb71]", "[eae89d46b1fa3164]", "0x20")
+ self.bid64_to_binary64("3", "[f7fb86f26fc0ffff]", "[ffefffffffffffff]", "0x28")
+ self.bid64_to_binary64("3", "[f800000000000000]", "[fff0000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[0000000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[01e0000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[0200000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[07674569785223d2]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[07718d80392931b1]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("4", "[07718d80392931b2]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("4", "[0967e7b160ef71c1]", "[000fffffffffffff]", "0x30")
+ self.bid64_to_binary64("4", "[0967e7b160ef71c2]", "[0010000000000001]", "0x20")
+ self.bid64_to_binary64("4", "[096fcf62c1dee382]", "[001ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("4", "[096fcf62c1dee383]", "[0020000000000000]", "0x20")
+ self.bid64_to_binary64("4", "[0a97365796617f83]", "[0205e0b5e88edcac]", "0x20")
+ self.bid64_to_binary64("4", "[0dc10dbea1eb65e6]", "[0724897e27bfee55]", "0x20")
+ self.bid64_to_binary64("4", "[10ec8294d1bdbf11]", "[0c8f83a32f69f129]", "0x20")
+ self.bid64_to_binary64("4", "[14068f76c44a7dcf]", "[11b1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("4", "[1739ab8261990292]", "[17014894813761f2]", "0x20")
+ self.bid64_to_binary64("4", "[1a6202c6bc0e7a35]", "[1c2bff78226c56a7]", "0x20")
+ self.bid64_to_binary64("4", "[1d88e19000389faf]", "[217ff6d970238791]", "0x20")
+ self.bid64_to_binary64("4", "[20bf3cbdc494bf4b]", "[26cd0fcbf97f8d11]", "0x20")
+ self.bid64_to_binary64("4", "[2700e16c4aa51b83]", "[31118452f93667d3]", "0x20")
+ self.bid64_to_binary64("4", "[2a255a6f69795a8b]", "[366b870de5d9326f]", "0x20")
+ self.bid64_to_binary64("4", "[2d515b57b7912b6b]", "[3bb7123726f69593]", "0x20")
+ self.bid64_to_binary64("4", "[30c00000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31a000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31c0000000000000]", "[0000000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31c0000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31c0000000000040]", "[4050000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31c00000000003e7]", "[408f380000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31c00000000003e8]", "[408f400000000000]", "0x00")
+ self.bid64_to_binary64("4", "[338b424d5d7eb34e]", "[460ffffede9c4cbb]", "0x20")
+ self.bid64_to_binary64("4", "[36c394f170eed7db]", "[4b5a50a259963ca6]", "0x20")
+ self.bid64_to_binary64("4", "[39e4c7680bf36616]", "[509226c684c87261]", "0x20")
+ self.bid64_to_binary64("4", "[3d0bf1cc3c8b534f]", "[55d77467f4a92f6c]", "0x20")
+ self.bid64_to_binary64("4", "[43477ac00b6ce36c]", "[602f6768b6321b82]", "0x20")
+ self.bid64_to_binary64("4", "[468a88caf33b1fc1]", "[659c9548eab35381]", "0x20")
+ self.bid64_to_binary64("4", "[4ccdb676714ca307]", "[7003e3a32c6f9728]", "0x20")
+ self.bid64_to_binary64("4", "[4ff46d10f9119672]", "[753ea2039a1fa248]", "0x20")
+ self.bid64_to_binary64("4", "[53277b95cded4e66]", "[7a8d020192cc2618]", "0x20")
+ self.bid64_to_binary64("4", "[566662fe0cb7f7eb]", "[7feffffffffffffb]", "0x20")
+ self.bid64_to_binary64("4", "[566662fe0cb7f7ec]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("4", "[68f1f5a9e5a7fc7a]", "[2c00557dd789805b]", "0x20")
+ self.bid64_to_binary64("4", "[6c1b86f26dab4575]", "[40f869fffe913975]", "0x20")
+ self.bid64_to_binary64("4", "[700a8ebab81862f2]", "[5b218a7f36172332]", "0x20")
+ self.bid64_to_binary64("4", "[726b181fdc73eb71]", "[6ae89d46b1fa3164]", "0x20")
+ self.bid64_to_binary64("4", "[77fb86f26fc0ffff]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("4", "[7800000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[8000000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[81e0000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[8200000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[87674569785223d2]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[87718d80392931b1]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("4", "[87718d80392931b2]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("4", "[8967e7b160ef71c1]", "[800fffffffffffff]", "0x30")
+ self.bid64_to_binary64("4", "[8967e7b160ef71c2]", "[8010000000000001]", "0x20")
+ self.bid64_to_binary64("4", "[896fcf62c1dee382]", "[801ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("4", "[896fcf62c1dee383]", "[8020000000000000]", "0x20")
+ self.bid64_to_binary64("4", "[8a97365796617f83]", "[8205e0b5e88edcac]", "0x20")
+ self.bid64_to_binary64("4", "[8dc10dbea1eb65e6]", "[8724897e27bfee55]", "0x20")
+ self.bid64_to_binary64("4", "[90ec8294d1bdbf11]", "[8c8f83a32f69f129]", "0x20")
+ self.bid64_to_binary64("4", "[94068f76c44a7dcf]", "[91b1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("4", "[9739ab8261990292]", "[97014894813761f2]", "0x20")
+ self.bid64_to_binary64("4", "[9a6202c6bc0e7a35]", "[9c2bff78226c56a7]", "0x20")
+ self.bid64_to_binary64("4", "[9d88e19000389faf]", "[a17ff6d970238791]", "0x20")
+ self.bid64_to_binary64("4", "[a0bf3cbdc494bf4b]", "[a6cd0fcbf97f8d11]", "0x20")
+ self.bid64_to_binary64("4", "[a700e16c4aa51b83]", "[b1118452f93667d3]", "0x20")
+ self.bid64_to_binary64("4", "[aa255a6f69795a8b]", "[b66b870de5d9326f]", "0x20")
+ self.bid64_to_binary64("4", "[ad515b57b7912b6b]", "[bbb7123726f69593]", "0x20")
+ self.bid64_to_binary64("4", "[b0c00000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b1a000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b1c0000000000001]", "[bff0000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b1c0000000000040]", "[c050000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b1c00000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b1c00000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b38b424d5d7eb34e]", "[c60ffffede9c4cbb]", "0x20")
+ self.bid64_to_binary64("4", "[b6c394f170eed7db]", "[cb5a50a259963ca6]", "0x20")
+ self.bid64_to_binary64("4", "[b9e4c7680bf36616]", "[d09226c684c87261]", "0x20")
+ self.bid64_to_binary64("4", "[bd0bf1cc3c8b534f]", "[d5d77467f4a92f6c]", "0x20")
+ self.bid64_to_binary64("4", "[c3477ac00b6ce36c]", "[e02f6768b6321b82]", "0x20")
+ self.bid64_to_binary64("4", "[c68a88caf33b1fc1]", "[e59c9548eab35381]", "0x20")
+ self.bid64_to_binary64("4", "[cccdb676714ca307]", "[f003e3a32c6f9728]", "0x20")
+ self.bid64_to_binary64("4", "[cff46d10f9119672]", "[f53ea2039a1fa248]", "0x20")
+ self.bid64_to_binary64("4", "[d3277b95cded4e66]", "[fa8d020192cc2618]", "0x20")
+ self.bid64_to_binary64("4", "[d66662fe0cb7f7eb]", "[ffeffffffffffffb]", "0x20")
+ self.bid64_to_binary64("4", "[d66662fe0cb7f7ec]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("4", "[e8f1f5a9e5a7fc7a]", "[ac00557dd789805b]", "0x20")
+ self.bid64_to_binary64("4", "[ec1b86f26dab4575]", "[c0f869fffe913975]", "0x20")
+ self.bid64_to_binary64("4", "[f00a8ebab81862f2]", "[db218a7f36172332]", "0x20")
+ self.bid64_to_binary64("4", "[f26b181fdc73eb71]", "[eae89d46b1fa3164]", "0x20")
+ self.bid64_to_binary64("4", "[f7fb86f26fc0ffff]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("4", "[f800000000000000]", "[fff0000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[0000000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[0000000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[0000000000000001]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("3", "[0000000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[0000000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[00038d7ea4c67fff]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[00038d7ea4c67fff]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[00038d7ea4c67fff]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("3", "[00038d7ea4c67fff]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[00038d7ea4c67fff]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[01e0000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[01e0000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[01e0000000000001]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("3", "[01e0000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[01e0000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[0200000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[0200000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[0200000000000001]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("3", "[0200000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[0200000000000001]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[07674569785223d2]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[07674569785223d2]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[07674569785223d2]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("3", "[07674569785223d2]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[07674569785223d2]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[07718d80392931b1]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[07718d80392931b1]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[07718d80392931b1]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("3", "[07718d80392931b1]", "[0000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[07718d80392931b1]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("0", "[07718d80392931b2]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[07718d80392931b2]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[07718d80392931b2]", "[0000000000000002]", "0x30")
+ self.bid64_to_binary64("3", "[07718d80392931b2]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("4", "[07718d80392931b2]", "[0000000000000001]", "0x30")
+ self.bid64_to_binary64("0", "[084032920461e7a6]", "[000000000001b79d]", "0x30")
+ self.bid64_to_binary64("1", "[084032920461e7a6]", "[000000000001b79d]", "0x30")
+ self.bid64_to_binary64("2", "[084032920461e7a6]", "[000000000001b79e]", "0x30")
+ self.bid64_to_binary64("3", "[084032920461e7a6]", "[000000000001b79d]", "0x30")
+ self.bid64_to_binary64("4", "[084032920461e7a6]", "[000000000001b79d]", "0x30")
+ self.bid64_to_binary64("0", "[0902262b1e95004c]", "[0000011d11d469c5]", "0x30")
+ self.bid64_to_binary64("1", "[0902262b1e95004c]", "[0000011d11d469c4]", "0x30")
+ self.bid64_to_binary64("2", "[0902262b1e95004c]", "[0000011d11d469c5]", "0x30")
+ self.bid64_to_binary64("3", "[0902262b1e95004c]", "[0000011d11d469c4]", "0x30")
+ self.bid64_to_binary64("4", "[0902262b1e95004c]", "[0000011d11d469c5]", "0x30")
+ self.bid64_to_binary64("0", "[0953c33b72569c62]", "[0004000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[0953c33b72569c62]", "[0003ffffffffffff]", "0x30")
+ self.bid64_to_binary64("2", "[0953c33b72569c62]", "[0004000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[0953c33b72569c62]", "[0003ffffffffffff]", "0x30")
+ self.bid64_to_binary64("4", "[0953c33b72569c62]", "[0004000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[0953c33b72569c63]", "[0004000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[0953c33b72569c63]", "[0003ffffffffffff]", "0x30")
+ self.bid64_to_binary64("2", "[0953c33b72569c63]", "[0004000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[0953c33b72569c63]", "[0003ffffffffffff]", "0x30")
+ self.bid64_to_binary64("4", "[0953c33b72569c63]", "[0004000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[0963f3d8b077b8e1]", "[0008000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[0963f3d8b077b8e1]", "[0008000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[0963f3d8b077b8e1]", "[0008000000000001]", "0x30")
+ self.bid64_to_binary64("3", "[0963f3d8b077b8e1]", "[0008000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[0963f3d8b077b8e1]", "[0008000000000001]", "0x30")
+ self.bid64_to_binary64("0", "[0967e7b160ef71c1]", "[000fffffffffffff]", "0x30")
+ self.bid64_to_binary64("1", "[0967e7b160ef71c1]", "[000fffffffffffff]", "0x30")
+ self.bid64_to_binary64("2", "[0967e7b160ef71c1]", "[0010000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[0967e7b160ef71c1]", "[000fffffffffffff]", "0x30")
+ self.bid64_to_binary64("4", "[0967e7b160ef71c1]", "[000fffffffffffff]", "0x30")
+ self.bid64_to_binary64("0", "[0967e7b160ef71c2]", "[0010000000000001]", "0x20")
+ self.bid64_to_binary64("1", "[0967e7b160ef71c2]", "[0010000000000001]", "0x20")
+ self.bid64_to_binary64("2", "[0967e7b160ef71c2]", "[0010000000000002]", "0x20")
+ self.bid64_to_binary64("3", "[0967e7b160ef71c2]", "[0010000000000001]", "0x20")
+ self.bid64_to_binary64("4", "[0967e7b160ef71c2]", "[0010000000000001]", "0x20")
+ self.bid64_to_binary64("0", "[096fcf62c1dee382]", "[001ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("1", "[096fcf62c1dee382]", "[001ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("2", "[096fcf62c1dee382]", "[001fffffffffffff]", "0x20")
+ self.bid64_to_binary64("3", "[096fcf62c1dee382]", "[001ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("4", "[096fcf62c1dee382]", "[001ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("0", "[096fcf62c1dee383]", "[0020000000000000]", "0x20")
+ self.bid64_to_binary64("1", "[096fcf62c1dee383]", "[0020000000000000]", "0x20")
+ self.bid64_to_binary64("2", "[096fcf62c1dee383]", "[0020000000000001]", "0x20")
+ self.bid64_to_binary64("3", "[096fcf62c1dee383]", "[0020000000000000]", "0x20")
+ self.bid64_to_binary64("4", "[096fcf62c1dee383]", "[0020000000000000]", "0x20")
+ self.bid64_to_binary64("0", "[09a00a1e53af46f8]", "[0007ffffffffffff]", "0x30")
+ self.bid64_to_binary64("1", "[09a00a1e53af46f8]", "[0007fffffffffffe]", "0x30")
+ self.bid64_to_binary64("2", "[09a00a1e53af46f8]", "[0007ffffffffffff]", "0x30")
+ self.bid64_to_binary64("3", "[09a00a1e53af46f8]", "[0007fffffffffffe]", "0x30")
+ self.bid64_to_binary64("4", "[09a00a1e53af46f8]", "[0007ffffffffffff]", "0x30")
+ self.bid64_to_binary64("0", "[09c951d35341d6a3]", "[00b26bc92333a617]", "0x20")
+ self.bid64_to_binary64("1", "[09c951d35341d6a3]", "[00b26bc92333a617]", "0x20")
+ self.bid64_to_binary64("2", "[09c951d35341d6a3]", "[00b26bc92333a618]", "0x20")
+ self.bid64_to_binary64("3", "[09c951d35341d6a3]", "[00b26bc92333a617]", "0x20")
+ self.bid64_to_binary64("4", "[09c951d35341d6a3]", "[00b26bc92333a617]", "0x20")
+ self.bid64_to_binary64("0", "[0a93f518b145d1a7]", "[0202cf5e7bb9a312]", "0x20")
+ self.bid64_to_binary64("1", "[0a93f518b145d1a7]", "[0202cf5e7bb9a311]", "0x20")
+ self.bid64_to_binary64("2", "[0a93f518b145d1a7]", "[0202cf5e7bb9a312]", "0x20")
+ self.bid64_to_binary64("3", "[0a93f518b145d1a7]", "[0202cf5e7bb9a311]", "0x20")
+ self.bid64_to_binary64("4", "[0a93f518b145d1a7]", "[0202cf5e7bb9a312]", "0x20")
+ self.bid64_to_binary64("0", "[0b6043ba42fd29c2]", "[03130622f599bb7d]", "0x20")
+ self.bid64_to_binary64("1", "[0b6043ba42fd29c2]", "[03130622f599bb7c]", "0x20")
+ self.bid64_to_binary64("2", "[0b6043ba42fd29c2]", "[03130622f599bb7d]", "0x20")
+ self.bid64_to_binary64("3", "[0b6043ba42fd29c2]", "[03130622f599bb7c]", "0x20")
+ self.bid64_to_binary64("4", "[0b6043ba42fd29c2]", "[03130622f599bb7d]", "0x20")
+ self.bid64_to_binary64("0", "[0c2377b788355de1]", "[048db99211b097a6]", "0x20")
+ self.bid64_to_binary64("1", "[0c2377b788355de1]", "[048db99211b097a5]", "0x20")
+ self.bid64_to_binary64("2", "[0c2377b788355de1]", "[048db99211b097a6]", "0x20")
+ self.bid64_to_binary64("3", "[0c2377b788355de1]", "[048db99211b097a5]", "0x20")
+ self.bid64_to_binary64("4", "[0c2377b788355de1]", "[048db99211b097a6]", "0x20")
+ self.bid64_to_binary64("0", "[0d016dcd3fefdd80]", "[05ed3409dfbca26f]", "0x20")
+ self.bid64_to_binary64("1", "[0d016dcd3fefdd80]", "[05ed3409dfbca26f]", "0x20")
+ self.bid64_to_binary64("2", "[0d016dcd3fefdd80]", "[05ed3409dfbca270]", "0x20")
+ self.bid64_to_binary64("3", "[0d016dcd3fefdd80]", "[05ed3409dfbca26f]", "0x20")
+ self.bid64_to_binary64("4", "[0d016dcd3fefdd80]", "[05ed3409dfbca26f]", "0x20")
+ self.bid64_to_binary64("0", "[0da62a52ed86615b]", "[07180881446f8c64]", "0x20")
+ self.bid64_to_binary64("1", "[0da62a52ed86615b]", "[07180881446f8c63]", "0x20")
+ self.bid64_to_binary64("2", "[0da62a52ed86615b]", "[07180881446f8c64]", "0x20")
+ self.bid64_to_binary64("3", "[0da62a52ed86615b]", "[07180881446f8c63]", "0x20")
+ self.bid64_to_binary64("4", "[0da62a52ed86615b]", "[07180881446f8c64]", "0x20")
+ self.bid64_to_binary64("0", "[0e6c32b9e6650875]", "[0866ac6eeaf26238]", "0x20")
+ self.bid64_to_binary64("1", "[0e6c32b9e6650875]", "[0866ac6eeaf26238]", "0x20")
+ self.bid64_to_binary64("2", "[0e6c32b9e6650875]", "[0866ac6eeaf26239]", "0x20")
+ self.bid64_to_binary64("3", "[0e6c32b9e6650875]", "[0866ac6eeaf26238]", "0x20")
+ self.bid64_to_binary64("4", "[0e6c32b9e6650875]", "[0866ac6eeaf26238]", "0x20")
+ self.bid64_to_binary64("0", "[0f418e7988380eb1]", "[09ab979c828dc5db]", "0x20")
+ self.bid64_to_binary64("1", "[0f418e7988380eb1]", "[09ab979c828dc5db]", "0x20")
+ self.bid64_to_binary64("2", "[0f418e7988380eb1]", "[09ab979c828dc5dc]", "0x20")
+ self.bid64_to_binary64("3", "[0f418e7988380eb1]", "[09ab979c828dc5db]", "0x20")
+ self.bid64_to_binary64("4", "[0f418e7988380eb1]", "[09ab979c828dc5db]", "0x20")
+ self.bid64_to_binary64("0", "[1000b1bcd739e247]", "[0ad7797619b14480]", "0x20")
+ self.bid64_to_binary64("1", "[1000b1bcd739e247]", "[0ad7797619b1447f]", "0x20")
+ self.bid64_to_binary64("2", "[1000b1bcd739e247]", "[0ad7797619b14480]", "0x20")
+ self.bid64_to_binary64("3", "[1000b1bcd739e247]", "[0ad7797619b1447f]", "0x20")
+ self.bid64_to_binary64("4", "[1000b1bcd739e247]", "[0ad7797619b14480]", "0x20")
+ self.bid64_to_binary64("0", "[10d8aa591e997f2d]", "[0c68da99f7a4eabf]", "0x20")
+ self.bid64_to_binary64("1", "[10d8aa591e997f2d]", "[0c68da99f7a4eabe]", "0x20")
+ self.bid64_to_binary64("2", "[10d8aa591e997f2d]", "[0c68da99f7a4eabf]", "0x20")
+ self.bid64_to_binary64("3", "[10d8aa591e997f2d]", "[0c68da99f7a4eabe]", "0x20")
+ self.bid64_to_binary64("4", "[10d8aa591e997f2d]", "[0c68da99f7a4eabf]", "0x20")
+ self.bid64_to_binary64("0", "[11869461670b3ada]", "[0d894a80ea17c1d0]", "0x20")
+ self.bid64_to_binary64("1", "[11869461670b3ada]", "[0d894a80ea17c1d0]", "0x20")
+ self.bid64_to_binary64("2", "[11869461670b3ada]", "[0d894a80ea17c1d1]", "0x20")
+ self.bid64_to_binary64("3", "[11869461670b3ada]", "[0d894a80ea17c1d0]", "0x20")
+ self.bid64_to_binary64("4", "[11869461670b3ada]", "[0d894a80ea17c1d0]", "0x20")
+ self.bid64_to_binary64("0", "[1262e2f7926738a9]", "[0eea7439edbb8d62]", "0x20")
+ self.bid64_to_binary64("1", "[1262e2f7926738a9]", "[0eea7439edbb8d61]", "0x20")
+ self.bid64_to_binary64("2", "[1262e2f7926738a9]", "[0eea7439edbb8d62]", "0x20")
+ self.bid64_to_binary64("3", "[1262e2f7926738a9]", "[0eea7439edbb8d61]", "0x20")
+ self.bid64_to_binary64("4", "[1262e2f7926738a9]", "[0eea7439edbb8d62]", "0x20")
+ self.bid64_to_binary64("0", "[132e511fd727e31b]", "[104f48347c60a1bd]", "0x20")
+ self.bid64_to_binary64("1", "[132e511fd727e31b]", "[104f48347c60a1bd]", "0x20")
+ self.bid64_to_binary64("2", "[132e511fd727e31b]", "[104f48347c60a1be]", "0x20")
+ self.bid64_to_binary64("3", "[132e511fd727e31b]", "[104f48347c60a1bd]", "0x20")
+ self.bid64_to_binary64("4", "[132e511fd727e31b]", "[104f48347c60a1bd]", "0x20")
+ self.bid64_to_binary64("0", "[14bbf51de62602b9]", "[12dbc764e4f07200]", "0x20")
+ self.bid64_to_binary64("1", "[14bbf51de62602b9]", "[12dbc764e4f07200]", "0x20")
+ self.bid64_to_binary64("2", "[14bbf51de62602b9]", "[12dbc764e4f07201]", "0x20")
+ self.bid64_to_binary64("3", "[14bbf51de62602b9]", "[12dbc764e4f07200]", "0x20")
+ self.bid64_to_binary64("4", "[14bbf51de62602b9]", "[12dbc764e4f07200]", "0x20")
+ self.bid64_to_binary64("0", "[15832ee933c4afad]", "[141e29f2bb04a5b6]", "0x20")
+ self.bid64_to_binary64("1", "[15832ee933c4afad]", "[141e29f2bb04a5b6]", "0x20")
+ self.bid64_to_binary64("2", "[15832ee933c4afad]", "[141e29f2bb04a5b7]", "0x20")
+ self.bid64_to_binary64("3", "[15832ee933c4afad]", "[141e29f2bb04a5b6]", "0x20")
+ self.bid64_to_binary64("4", "[15832ee933c4afad]", "[141e29f2bb04a5b6]", "0x20")
+ self.bid64_to_binary64("0", "[16405d95b55d4beb]", "[152a6db0b81fd170]", "0x20")
+ self.bid64_to_binary64("1", "[16405d95b55d4beb]", "[152a6db0b81fd170]", "0x20")
+ self.bid64_to_binary64("2", "[16405d95b55d4beb]", "[152a6db0b81fd171]", "0x20")
+ self.bid64_to_binary64("3", "[16405d95b55d4beb]", "[152a6db0b81fd170]", "0x20")
+ self.bid64_to_binary64("4", "[16405d95b55d4beb]", "[152a6db0b81fd170]", "0x20")
+ self.bid64_to_binary64("0", "[1716ff406c702454]", "[16c8c631a5471f27]", "0x20")
+ self.bid64_to_binary64("1", "[1716ff406c702454]", "[16c8c631a5471f27]", "0x20")
+ self.bid64_to_binary64("2", "[1716ff406c702454]", "[16c8c631a5471f28]", "0x20")
+ self.bid64_to_binary64("3", "[1716ff406c702454]", "[16c8c631a5471f27]", "0x20")
+ self.bid64_to_binary64("4", "[1716ff406c702454]", "[16c8c631a5471f27]", "0x20")
+ self.bid64_to_binary64("0", "[17d1752aa924e55d]", "[1801ef7d320fffa0]", "0x20")
+ self.bid64_to_binary64("1", "[17d1752aa924e55d]", "[1801ef7d320fffa0]", "0x20")
+ self.bid64_to_binary64("2", "[17d1752aa924e55d]", "[1801ef7d320fffa1]", "0x20")
+ self.bid64_to_binary64("3", "[17d1752aa924e55d]", "[1801ef7d320fffa0]", "0x20")
+ self.bid64_to_binary64("4", "[17d1752aa924e55d]", "[1801ef7d320fffa0]", "0x20")
+ self.bid64_to_binary64("0", "[18a31a6cdc57b822]", "[194e6797d38da244]", "0x20")
+ self.bid64_to_binary64("1", "[18a31a6cdc57b822]", "[194e6797d38da244]", "0x20")
+ self.bid64_to_binary64("2", "[18a31a6cdc57b822]", "[194e6797d38da245]", "0x20")
+ self.bid64_to_binary64("3", "[18a31a6cdc57b822]", "[194e6797d38da244]", "0x20")
+ self.bid64_to_binary64("4", "[18a31a6cdc57b822]", "[194e6797d38da244]", "0x20")
+ self.bid64_to_binary64("0", "[1965c7ac69ce79eb]", "[1a9b00f1cf2d5ad8]", "0x20")
+ self.bid64_to_binary64("1", "[1965c7ac69ce79eb]", "[1a9b00f1cf2d5ad8]", "0x20")
+ self.bid64_to_binary64("2", "[1965c7ac69ce79eb]", "[1a9b00f1cf2d5ad9]", "0x20")
+ self.bid64_to_binary64("3", "[1965c7ac69ce79eb]", "[1a9b00f1cf2d5ad8]", "0x20")
+ self.bid64_to_binary64("4", "[1965c7ac69ce79eb]", "[1a9b00f1cf2d5ad8]", "0x20")
+ self.bid64_to_binary64("0", "[1a3b575d01088b9c]", "[1bfe746e367600fb]", "0x20")
+ self.bid64_to_binary64("1", "[1a3b575d01088b9c]", "[1bfe746e367600fb]", "0x20")
+ self.bid64_to_binary64("2", "[1a3b575d01088b9c]", "[1bfe746e367600fc]", "0x20")
+ self.bid64_to_binary64("3", "[1a3b575d01088b9c]", "[1bfe746e367600fb]", "0x20")
+ self.bid64_to_binary64("4", "[1a3b575d01088b9c]", "[1bfe746e367600fb]", "0x20")
+ self.bid64_to_binary64("0", "[1bc2d40b08dcee27]", "[1e7ca7079534ef8e]", "0x20")
+ self.bid64_to_binary64("1", "[1bc2d40b08dcee27]", "[1e7ca7079534ef8d]", "0x20")
+ self.bid64_to_binary64("2", "[1bc2d40b08dcee27]", "[1e7ca7079534ef8e]", "0x20")
+ self.bid64_to_binary64("3", "[1bc2d40b08dcee27]", "[1e7ca7079534ef8d]", "0x20")
+ self.bid64_to_binary64("4", "[1bc2d40b08dcee27]", "[1e7ca7079534ef8e]", "0x20")
+ self.bid64_to_binary64("0", "[1c88f72bf0709241]", "[1fd5a79c4e71d028]", "0x20")
+ self.bid64_to_binary64("1", "[1c88f72bf0709241]", "[1fd5a79c4e71d027]", "0x20")
+ self.bid64_to_binary64("2", "[1c88f72bf0709241]", "[1fd5a79c4e71d028]", "0x20")
+ self.bid64_to_binary64("3", "[1c88f72bf0709241]", "[1fd5a79c4e71d027]", "0x20")
+ self.bid64_to_binary64("4", "[1c88f72bf0709241]", "[1fd5a79c4e71d028]", "0x20")
+ self.bid64_to_binary64("0", "[1d541717ab11a367]", "[21272369916132a9]", "0x20")
+ self.bid64_to_binary64("1", "[1d541717ab11a367]", "[21272369916132a9]", "0x20")
+ self.bid64_to_binary64("2", "[1d541717ab11a367]", "[21272369916132aa]", "0x20")
+ self.bid64_to_binary64("3", "[1d541717ab11a367]", "[21272369916132a9]", "0x20")
+ self.bid64_to_binary64("4", "[1d541717ab11a367]", "[21272369916132a9]", "0x20")
+ self.bid64_to_binary64("0", "[1ee10c35312de9d1]", "[2395f2df5e675a0f]", "0x20")
+ self.bid64_to_binary64("1", "[1ee10c35312de9d1]", "[2395f2df5e675a0f]", "0x20")
+ self.bid64_to_binary64("2", "[1ee10c35312de9d1]", "[2395f2df5e675a10]", "0x20")
+ self.bid64_to_binary64("3", "[1ee10c35312de9d1]", "[2395f2df5e675a0f]", "0x20")
+ self.bid64_to_binary64("4", "[1ee10c35312de9d1]", "[2395f2df5e675a0f]", "0x20")
+ self.bid64_to_binary64("0", "[1fa688c5ef991edf]", "[25005194f202b111]", "0x20")
+ self.bid64_to_binary64("1", "[1fa688c5ef991edf]", "[25005194f202b111]", "0x20")
+ self.bid64_to_binary64("2", "[1fa688c5ef991edf]", "[25005194f202b112]", "0x20")
+ self.bid64_to_binary64("3", "[1fa688c5ef991edf]", "[25005194f202b111]", "0x20")
+ self.bid64_to_binary64("4", "[1fa688c5ef991edf]", "[25005194f202b111]", "0x20")
+ self.bid64_to_binary64("0", "[212135b288f43676]", "[2755fb806a1e9340]", "0x20")
+ self.bid64_to_binary64("1", "[212135b288f43676]", "[2755fb806a1e933f]", "0x20")
+ self.bid64_to_binary64("2", "[212135b288f43676]", "[2755fb806a1e9340]", "0x20")
+ self.bid64_to_binary64("3", "[212135b288f43676]", "[2755fb806a1e933f]", "0x20")
+ self.bid64_to_binary64("4", "[212135b288f43676]", "[2755fb806a1e9340]", "0x20")
+ self.bid64_to_binary64("0", "[222022bcebe955bd]", "[28cd64c29852639b]", "0x20")
+ self.bid64_to_binary64("1", "[222022bcebe955bd]", "[28cd64c29852639b]", "0x20")
+ self.bid64_to_binary64("2", "[222022bcebe955bd]", "[28cd64c29852639c]", "0x20")
+ self.bid64_to_binary64("3", "[222022bcebe955bd]", "[28cd64c29852639b]", "0x20")
+ self.bid64_to_binary64("4", "[222022bcebe955bd]", "[28cd64c29852639b]", "0x20")
+ self.bid64_to_binary64("0", "[22cbfb13ad3c7481]", "[2a3eeff57768f88b]", "0x20")
+ self.bid64_to_binary64("1", "[22cbfb13ad3c7481]", "[2a3eeff57768f88b]", "0x20")
+ self.bid64_to_binary64("2", "[22cbfb13ad3c7481]", "[2a3eeff57768f88c]", "0x20")
+ self.bid64_to_binary64("3", "[22cbfb13ad3c7481]", "[2a3eeff57768f88b]", "0x20")
+ self.bid64_to_binary64("4", "[22cbfb13ad3c7481]", "[2a3eeff57768f88b]", "0x20")
+ self.bid64_to_binary64("0", "[238382dea4888745]", "[2b614b289f08fcc8]", "0x20")
+ self.bid64_to_binary64("1", "[238382dea4888745]", "[2b614b289f08fcc8]", "0x20")
+ self.bid64_to_binary64("2", "[238382dea4888745]", "[2b614b289f08fcc9]", "0x20")
+ self.bid64_to_binary64("3", "[238382dea4888745]", "[2b614b289f08fcc8]", "0x20")
+ self.bid64_to_binary64("4", "[238382dea4888745]", "[2b614b289f08fcc8]", "0x20")
+ self.bid64_to_binary64("0", "[25223443606e7eae]", "[2e08af070ea2513b]", "0x20")
+ self.bid64_to_binary64("1", "[25223443606e7eae]", "[2e08af070ea2513b]", "0x20")
+ self.bid64_to_binary64("2", "[25223443606e7eae]", "[2e08af070ea2513c]", "0x20")
+ self.bid64_to_binary64("3", "[25223443606e7eae]", "[2e08af070ea2513b]", "0x20")
+ self.bid64_to_binary64("4", "[25223443606e7eae]", "[2e08af070ea2513b]", "0x20")
+ self.bid64_to_binary64("0", "[25e440088f15f335]", "[2f56b210327f4071]", "0x20")
+ self.bid64_to_binary64("1", "[25e440088f15f335]", "[2f56b210327f4071]", "0x20")
+ self.bid64_to_binary64("2", "[25e440088f15f335]", "[2f56b210327f4072]", "0x20")
+ self.bid64_to_binary64("3", "[25e440088f15f335]", "[2f56b210327f4071]", "0x20")
+ self.bid64_to_binary64("4", "[25e440088f15f335]", "[2f56b210327f4071]", "0x20")
+ self.bid64_to_binary64("0", "[26a961c32eaa12f8]", "[30a7e3987916a69e]", "0x20")
+ self.bid64_to_binary64("1", "[26a961c32eaa12f8]", "[30a7e3987916a69d]", "0x20")
+ self.bid64_to_binary64("2", "[26a961c32eaa12f8]", "[30a7e3987916a69e]", "0x20")
+ self.bid64_to_binary64("3", "[26a961c32eaa12f8]", "[30a7e3987916a69d]", "0x20")
+ self.bid64_to_binary64("4", "[26a961c32eaa12f8]", "[30a7e3987916a69e]", "0x20")
+ self.bid64_to_binary64("0", "[277a7aee9d901bd7]", "[32001361a3c7cdec]", "0x20")
+ self.bid64_to_binary64("1", "[277a7aee9d901bd7]", "[32001361a3c7cdeb]", "0x20")
+ self.bid64_to_binary64("2", "[277a7aee9d901bd7]", "[32001361a3c7cdec]", "0x20")
+ self.bid64_to_binary64("3", "[277a7aee9d901bd7]", "[32001361a3c7cdeb]", "0x20")
+ self.bid64_to_binary64("4", "[277a7aee9d901bd7]", "[32001361a3c7cdec]", "0x20")
+ self.bid64_to_binary64("0", "[2841ef57f0b861f7]", "[333667afa252e8dd]", "0x20")
+ self.bid64_to_binary64("1", "[2841ef57f0b861f7]", "[333667afa252e8dc]", "0x20")
+ self.bid64_to_binary64("2", "[2841ef57f0b861f7]", "[333667afa252e8dd]", "0x20")
+ self.bid64_to_binary64("3", "[2841ef57f0b861f7]", "[333667afa252e8dc]", "0x20")
+ self.bid64_to_binary64("4", "[2841ef57f0b861f7]", "[333667afa252e8dd]", "0x20")
+ self.bid64_to_binary64("0", "[2901f80f19d050c5]", "[3475be383a7b9b0a]", "0x20")
+ self.bid64_to_binary64("1", "[2901f80f19d050c5]", "[3475be383a7b9b0a]", "0x20")
+ self.bid64_to_binary64("2", "[2901f80f19d050c5]", "[3475be383a7b9b0b]", "0x20")
+ self.bid64_to_binary64("3", "[2901f80f19d050c5]", "[3475be383a7b9b0a]", "0x20")
+ self.bid64_to_binary64("4", "[2901f80f19d050c5]", "[3475be383a7b9b0a]", "0x20")
+ self.bid64_to_binary64("0", "[29d226c684c87261]", "[35e7e5083bc0fe6e]", "0x20")
+ self.bid64_to_binary64("1", "[29d226c684c87261]", "[35e7e5083bc0fe6e]", "0x20")
+ self.bid64_to_binary64("2", "[29d226c684c87261]", "[35e7e5083bc0fe6f]", "0x20")
+ self.bid64_to_binary64("3", "[29d226c684c87261]", "[35e7e5083bc0fe6e]", "0x20")
+ self.bid64_to_binary64("4", "[29d226c684c87261]", "[35e7e5083bc0fe6e]", "0x20")
+ self.bid64_to_binary64("0", "[2a9a203af992bfed]", "[373066452ee269aa]", "0x20")
+ self.bid64_to_binary64("1", "[2a9a203af992bfed]", "[373066452ee269a9]", "0x20")
+ self.bid64_to_binary64("2", "[2a9a203af992bfed]", "[373066452ee269aa]", "0x20")
+ self.bid64_to_binary64("3", "[2a9a203af992bfed]", "[373066452ee269a9]", "0x20")
+ self.bid64_to_binary64("4", "[2a9a203af992bfed]", "[373066452ee269aa]", "0x20")
+ self.bid64_to_binary64("0", "[2b61f4dd458b7eb7]", "[38676ca8be2021d6]", "0x20")
+ self.bid64_to_binary64("1", "[2b61f4dd458b7eb7]", "[38676ca8be2021d5]", "0x20")
+ self.bid64_to_binary64("2", "[2b61f4dd458b7eb7]", "[38676ca8be2021d6]", "0x20")
+ self.bid64_to_binary64("3", "[2b61f4dd458b7eb7]", "[38676ca8be2021d5]", "0x20")
+ self.bid64_to_binary64("4", "[2b61f4dd458b7eb7]", "[38676ca8be2021d6]", "0x20")
+ self.bid64_to_binary64("0", "[2c2b34c69d8a1d85]", "[39cffce84b6dbad8]", "0x20")
+ self.bid64_to_binary64("1", "[2c2b34c69d8a1d85]", "[39cffce84b6dbad7]", "0x20")
+ self.bid64_to_binary64("2", "[2c2b34c69d8a1d85]", "[39cffce84b6dbad8]", "0x20")
+ self.bid64_to_binary64("3", "[2c2b34c69d8a1d85]", "[39cffce84b6dbad7]", "0x20")
+ self.bid64_to_binary64("4", "[2c2b34c69d8a1d85]", "[39cffce84b6dbad8]", "0x20")
+ self.bid64_to_binary64("0", "[2cf253acb830bcdf]", "[3b18f1fa06dd6a7e]", "0x20")
+ self.bid64_to_binary64("1", "[2cf253acb830bcdf]", "[3b18f1fa06dd6a7d]", "0x20")
+ self.bid64_to_binary64("2", "[2cf253acb830bcdf]", "[3b18f1fa06dd6a7e]", "0x20")
+ self.bid64_to_binary64("3", "[2cf253acb830bcdf]", "[3b18f1fa06dd6a7d]", "0x20")
+ self.bid64_to_binary64("4", "[2cf253acb830bcdf]", "[3b18f1fa06dd6a7e]", "0x20")
+ self.bid64_to_binary64("0", "[2dba04f802bebb6d]", "[3c60e337464faa08]", "0x20")
+ self.bid64_to_binary64("1", "[2dba04f802bebb6d]", "[3c60e337464faa07]", "0x20")
+ self.bid64_to_binary64("2", "[2dba04f802bebb6d]", "[3c60e337464faa08]", "0x20")
+ self.bid64_to_binary64("3", "[2dba04f802bebb6d]", "[3c60e337464faa07]", "0x20")
+ self.bid64_to_binary64("4", "[2dba04f802bebb6d]", "[3c60e337464faa08]", "0x20")
+ self.bid64_to_binary64("0", "[2e81c24cc5617549]", "[3d95c6714def374c]", "0x20")
+ self.bid64_to_binary64("1", "[2e81c24cc5617549]", "[3d95c6714def374c]", "0x20")
+ self.bid64_to_binary64("2", "[2e81c24cc5617549]", "[3d95c6714def374d]", "0x20")
+ self.bid64_to_binary64("3", "[2e81c24cc5617549]", "[3d95c6714def374c]", "0x20")
+ self.bid64_to_binary64("4", "[2e81c24cc5617549]", "[3d95c6714def374c]", "0x20")
+ self.bid64_to_binary64("0", "[2f4ad2c1ce56c0eb]", "[3efff1d4d6ef6168]", "0x20")
+ self.bid64_to_binary64("1", "[2f4ad2c1ce56c0eb]", "[3efff1d4d6ef6168]", "0x20")
+ self.bid64_to_binary64("2", "[2f4ad2c1ce56c0eb]", "[3efff1d4d6ef6169]", "0x20")
+ self.bid64_to_binary64("3", "[2f4ad2c1ce56c0eb]", "[3efff1d4d6ef6168]", "0x20")
+ self.bid64_to_binary64("4", "[2f4ad2c1ce56c0eb]", "[3efff1d4d6ef6168]", "0x20")
+ self.bid64_to_binary64("0", "[30c00000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[30c00000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[30c00000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[30c00000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[30c00000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31a000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31a000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31a000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31a000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31a000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31a27ffffffffffe]", "[42cfffffffffffe6]", "0x20")
+ self.bid64_to_binary64("1", "[31a27ffffffffffe]", "[42cfffffffffffe6]", "0x20")
+ self.bid64_to_binary64("2", "[31a27ffffffffffe]", "[42cfffffffffffe7]", "0x20")
+ self.bid64_to_binary64("3", "[31a27ffffffffffe]", "[42cfffffffffffe6]", "0x20")
+ self.bid64_to_binary64("4", "[31a27ffffffffffe]", "[42cfffffffffffe6]", "0x20")
+ self.bid64_to_binary64("0", "[31c0000000000000]", "[0000000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31c0000000000000]", "[0000000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31c0000000000000]", "[0000000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31c0000000000000]", "[0000000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31c0000000000000]", "[0000000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31c0000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31c0000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31c0000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31c0000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31c0000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31c0000000000040]", "[4050000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31c0000000000040]", "[4050000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31c0000000000040]", "[4050000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31c0000000000040]", "[4050000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31c0000000000040]", "[4050000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31c00000000003e7]", "[408f380000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31c00000000003e7]", "[408f380000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31c00000000003e7]", "[408f380000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31c00000000003e7]", "[408f380000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31c00000000003e7]", "[408f380000000000]", "0x00")
+ self.bid64_to_binary64("0", "[31c00000000003e8]", "[408f400000000000]", "0x00")
+ self.bid64_to_binary64("1", "[31c00000000003e8]", "[408f400000000000]", "0x00")
+ self.bid64_to_binary64("2", "[31c00000000003e8]", "[408f400000000000]", "0x00")
+ self.bid64_to_binary64("3", "[31c00000000003e8]", "[408f400000000000]", "0x00")
+ self.bid64_to_binary64("4", "[31c00000000003e8]", "[408f400000000000]", "0x00")
+ self.bid64_to_binary64("0", "[326a7c5ac471b3e3]", "[442ffffffffffe38]", "0x20")
+ self.bid64_to_binary64("1", "[326a7c5ac471b3e3]", "[442ffffffffffe38]", "0x20")
+ self.bid64_to_binary64("2", "[326a7c5ac471b3e3]", "[442ffffffffffe39]", "0x20")
+ self.bid64_to_binary64("3", "[326a7c5ac471b3e3]", "[442ffffffffffe38]", "0x20")
+ self.bid64_to_binary64("4", "[326a7c5ac471b3e3]", "[442ffffffffffe38]", "0x20")
+ self.bid64_to_binary64("0", "[34b79e9a5073c06c]", "[47ff429cb67eb075]", "0x20")
+ self.bid64_to_binary64("1", "[34b79e9a5073c06c]", "[47ff429cb67eb075]", "0x20")
+ self.bid64_to_binary64("2", "[34b79e9a5073c06c]", "[47ff429cb67eb076]", "0x20")
+ self.bid64_to_binary64("3", "[34b79e9a5073c06c]", "[47ff429cb67eb075]", "0x20")
+ self.bid64_to_binary64("4", "[34b79e9a5073c06c]", "[47ff429cb67eb075]", "0x20")
+ self.bid64_to_binary64("0", "[358406840eaecb9f]", "[4949677825a0c0ea]", "0x20")
+ self.bid64_to_binary64("1", "[358406840eaecb9f]", "[4949677825a0c0ea]", "0x20")
+ self.bid64_to_binary64("2", "[358406840eaecb9f]", "[4949677825a0c0eb]", "0x20")
+ self.bid64_to_binary64("3", "[358406840eaecb9f]", "[4949677825a0c0ea]", "0x20")
+ self.bid64_to_binary64("4", "[358406840eaecb9f]", "[4949677825a0c0ea]", "0x20")
+ self.bid64_to_binary64("0", "[36548cddb2fa9a98]", "[4aaeebabe0957af3]", "0x20")
+ self.bid64_to_binary64("1", "[36548cddb2fa9a98]", "[4aaeebabe0957af3]", "0x20")
+ self.bid64_to_binary64("2", "[36548cddb2fa9a98]", "[4aaeebabe0957af4]", "0x20")
+ self.bid64_to_binary64("3", "[36548cddb2fa9a98]", "[4aaeebabe0957af3]", "0x20")
+ self.bid64_to_binary64("4", "[36548cddb2fa9a98]", "[4aaeebabe0957af3]", "0x20")
+ self.bid64_to_binary64("0", "[37096b98447a0285]", "[4bdb08f0094136b0]", "0x20")
+ self.bid64_to_binary64("1", "[37096b98447a0285]", "[4bdb08f0094136af]", "0x20")
+ self.bid64_to_binary64("2", "[37096b98447a0285]", "[4bdb08f0094136b0]", "0x20")
+ self.bid64_to_binary64("3", "[37096b98447a0285]", "[4bdb08f0094136af]", "0x20")
+ self.bid64_to_binary64("4", "[37096b98447a0285]", "[4bdb08f0094136b0]", "0x20")
+ self.bid64_to_binary64("0", "[37cd102e2b854b5e]", "[4d21e05cb2a12026]", "0x20")
+ self.bid64_to_binary64("1", "[37cd102e2b854b5e]", "[4d21e05cb2a12025]", "0x20")
+ self.bid64_to_binary64("2", "[37cd102e2b854b5e]", "[4d21e05cb2a12026]", "0x20")
+ self.bid64_to_binary64("3", "[37cd102e2b854b5e]", "[4d21e05cb2a12025]", "0x20")
+ self.bid64_to_binary64("4", "[37cd102e2b854b5e]", "[4d21e05cb2a12026]", "0x20")
+ self.bid64_to_binary64("0", "[38a5353c9c2f4cf9]", "[4e80fde34c996086]", "0x20")
+ self.bid64_to_binary64("1", "[38a5353c9c2f4cf9]", "[4e80fde34c996085]", "0x20")
+ self.bid64_to_binary64("2", "[38a5353c9c2f4cf9]", "[4e80fde34c996086]", "0x20")
+ self.bid64_to_binary64("3", "[38a5353c9c2f4cf9]", "[4e80fde34c996085]", "0x20")
+ self.bid64_to_binary64("4", "[38a5353c9c2f4cf9]", "[4e80fde34c996086]", "0x20")
+ self.bid64_to_binary64("0", "[3973c1c76091d8ec]", "[4fdebca8a16a5cdf]", "0x20")
+ self.bid64_to_binary64("1", "[3973c1c76091d8ec]", "[4fdebca8a16a5cdf]", "0x20")
+ self.bid64_to_binary64("2", "[3973c1c76091d8ec]", "[4fdebca8a16a5ce0]", "0x20")
+ self.bid64_to_binary64("3", "[3973c1c76091d8ec]", "[4fdebca8a16a5cdf]", "0x20")
+ self.bid64_to_binary64("4", "[3973c1c76091d8ec]", "[4fdebca8a16a5cdf]", "0x20")
+ self.bid64_to_binary64("0", "[3a3c7601883ddded]", "[51251d0f44c0239c]", "0x20")
+ self.bid64_to_binary64("1", "[3a3c7601883ddded]", "[51251d0f44c0239b]", "0x20")
+ self.bid64_to_binary64("2", "[3a3c7601883ddded]", "[51251d0f44c0239c]", "0x20")
+ self.bid64_to_binary64("3", "[3a3c7601883ddded]", "[51251d0f44c0239b]", "0x20")
+ self.bid64_to_binary64("4", "[3a3c7601883ddded]", "[51251d0f44c0239c]", "0x20")
+ self.bid64_to_binary64("0", "[3af5a3c5467f12c2]", "[525e9e7f64376799]", "0x20")
+ self.bid64_to_binary64("1", "[3af5a3c5467f12c2]", "[525e9e7f64376798]", "0x20")
+ self.bid64_to_binary64("2", "[3af5a3c5467f12c2]", "[525e9e7f64376799]", "0x20")
+ self.bid64_to_binary64("3", "[3af5a3c5467f12c2]", "[525e9e7f64376798]", "0x20")
+ self.bid64_to_binary64("4", "[3af5a3c5467f12c2]", "[525e9e7f64376799]", "0x20")
+ self.bid64_to_binary64("0", "[3bc6c81d2c7f1715]", "[53b6e0c94774af95]", "0x20")
+ self.bid64_to_binary64("1", "[3bc6c81d2c7f1715]", "[53b6e0c94774af95]", "0x20")
+ self.bid64_to_binary64("2", "[3bc6c81d2c7f1715]", "[53b6e0c94774af96]", "0x20")
+ self.bid64_to_binary64("3", "[3bc6c81d2c7f1715]", "[53b6e0c94774af95]", "0x20")
+ self.bid64_to_binary64("4", "[3bc6c81d2c7f1715]", "[53b6e0c94774af95]", "0x20")
+ self.bid64_to_binary64("0", "[3d5dbd4dc085903b]", "[5656cfc0c80bda54]", "0x20")
+ self.bid64_to_binary64("1", "[3d5dbd4dc085903b]", "[5656cfc0c80bda54]", "0x20")
+ self.bid64_to_binary64("2", "[3d5dbd4dc085903b]", "[5656cfc0c80bda55]", "0x20")
+ self.bid64_to_binary64("3", "[3d5dbd4dc085903b]", "[5656cfc0c80bda54]", "0x20")
+ self.bid64_to_binary64("4", "[3d5dbd4dc085903b]", "[5656cfc0c80bda54]", "0x20")
+ self.bid64_to_binary64("0", "[3e05ec7ad2ae9964]", "[5771554acd6fab8f]", "0x20")
+ self.bid64_to_binary64("1", "[3e05ec7ad2ae9964]", "[5771554acd6fab8e]", "0x20")
+ self.bid64_to_binary64("2", "[3e05ec7ad2ae9964]", "[5771554acd6fab8f]", "0x20")
+ self.bid64_to_binary64("3", "[3e05ec7ad2ae9964]", "[5771554acd6fab8e]", "0x20")
+ self.bid64_to_binary64("4", "[3e05ec7ad2ae9964]", "[5771554acd6fab8f]", "0x20")
+ self.bid64_to_binary64("0", "[3ee488e6d7ba9343]", "[58dfa2bb0f9ffe0e]", "0x20")
+ self.bid64_to_binary64("1", "[3ee488e6d7ba9343]", "[58dfa2bb0f9ffe0d]", "0x20")
+ self.bid64_to_binary64("2", "[3ee488e6d7ba9343]", "[58dfa2bb0f9ffe0e]", "0x20")
+ self.bid64_to_binary64("3", "[3ee488e6d7ba9343]", "[58dfa2bb0f9ffe0d]", "0x20")
+ self.bid64_to_binary64("4", "[3ee488e6d7ba9343]", "[58dfa2bb0f9ffe0e]", "0x20")
+ self.bid64_to_binary64("0", "[3fbc45fc32b914f1]", "[5a478358811cbc95]", "0x20")
+ self.bid64_to_binary64("1", "[3fbc45fc32b914f1]", "[5a478358811cbc95]", "0x20")
+ self.bid64_to_binary64("2", "[3fbc45fc32b914f1]", "[5a478358811cbc96]", "0x20")
+ self.bid64_to_binary64("3", "[3fbc45fc32b914f1]", "[5a478358811cbc95]", "0x20")
+ self.bid64_to_binary64("4", "[3fbc45fc32b914f1]", "[5a478358811cbc95]", "0x20")
+ self.bid64_to_binary64("0", "[40799418eab49a8b]", "[5b84495736b8d90e]", "0x20")
+ self.bid64_to_binary64("1", "[40799418eab49a8b]", "[5b84495736b8d90d]", "0x20")
+ self.bid64_to_binary64("2", "[40799418eab49a8b]", "[5b84495736b8d90e]", "0x20")
+ self.bid64_to_binary64("3", "[40799418eab49a8b]", "[5b84495736b8d90d]", "0x20")
+ self.bid64_to_binary64("4", "[40799418eab49a8b]", "[5b84495736b8d90e]", "0x20")
+ self.bid64_to_binary64("0", "[4128bf02d472e2b6]", "[5caa760b389de2d6]", "0x20")
+ self.bid64_to_binary64("1", "[4128bf02d472e2b6]", "[5caa760b389de2d6]", "0x20")
+ self.bid64_to_binary64("2", "[4128bf02d472e2b6]", "[5caa760b389de2d7]", "0x20")
+ self.bid64_to_binary64("3", "[4128bf02d472e2b6]", "[5caa760b389de2d6]", "0x20")
+ self.bid64_to_binary64("4", "[4128bf02d472e2b6]", "[5caa760b389de2d6]", "0x20")
+ self.bid64_to_binary64("0", "[42068426f34f8cfb]", "[5e1780695036a67a]", "0x20")
+ self.bid64_to_binary64("1", "[42068426f34f8cfb]", "[5e1780695036a679]", "0x20")
+ self.bid64_to_binary64("2", "[42068426f34f8cfb]", "[5e1780695036a67a]", "0x20")
+ self.bid64_to_binary64("3", "[42068426f34f8cfb]", "[5e1780695036a679]", "0x20")
+ self.bid64_to_binary64("4", "[42068426f34f8cfb]", "[5e1780695036a67a]", "0x20")
+ self.bid64_to_binary64("0", "[42dd0fcbf97f8d11]", "[5f78fd649d43cc3c]", "0x20")
+ self.bid64_to_binary64("1", "[42dd0fcbf97f8d11]", "[5f78fd649d43cc3c]", "0x20")
+ self.bid64_to_binary64("2", "[42dd0fcbf97f8d11]", "[5f78fd649d43cc3d]", "0x20")
+ self.bid64_to_binary64("3", "[42dd0fcbf97f8d11]", "[5f78fd649d43cc3c]", "0x20")
+ self.bid64_to_binary64("4", "[42dd0fcbf97f8d11]", "[5f78fd649d43cc3c]", "0x20")
+ self.bid64_to_binary64("0", "[444dc38f2c7e06b2]", "[61e5874bb0e0b994]", "0x20")
+ self.bid64_to_binary64("1", "[444dc38f2c7e06b2]", "[61e5874bb0e0b994]", "0x20")
+ self.bid64_to_binary64("2", "[444dc38f2c7e06b2]", "[61e5874bb0e0b995]", "0x20")
+ self.bid64_to_binary64("3", "[444dc38f2c7e06b2]", "[61e5874bb0e0b994]", "0x20")
+ self.bid64_to_binary64("4", "[444dc38f2c7e06b2]", "[61e5874bb0e0b994]", "0x20")
+ self.bid64_to_binary64("0", "[4518e6274e4e7450]", "[6332920f96e7f9ef]", "0x20")
+ self.bid64_to_binary64("1", "[4518e6274e4e7450]", "[6332920f96e7f9ef]", "0x20")
+ self.bid64_to_binary64("2", "[4518e6274e4e7450]", "[6332920f96e7f9f0]", "0x20")
+ self.bid64_to_binary64("3", "[4518e6274e4e7450]", "[6332920f96e7f9ef]", "0x20")
+ self.bid64_to_binary64("4", "[4518e6274e4e7450]", "[6332920f96e7f9ef]", "0x20")
+ self.bid64_to_binary64("0", "[45fea70395028db9]", "[64ab40cebf1c8d1f]", "0x20")
+ self.bid64_to_binary64("1", "[45fea70395028db9]", "[64ab40cebf1c8d1e]", "0x20")
+ self.bid64_to_binary64("2", "[45fea70395028db9]", "[64ab40cebf1c8d1f]", "0x20")
+ self.bid64_to_binary64("3", "[45fea70395028db9]", "[64ab40cebf1c8d1e]", "0x20")
+ self.bid64_to_binary64("4", "[45fea70395028db9]", "[64ab40cebf1c8d1f]", "0x20")
+ self.bid64_to_binary64("0", "[46b0f0d091cd4027]", "[65dcba8083b7b568]", "0x20")
+ self.bid64_to_binary64("1", "[46b0f0d091cd4027]", "[65dcba8083b7b568]", "0x20")
+ self.bid64_to_binary64("2", "[46b0f0d091cd4027]", "[65dcba8083b7b569]", "0x20")
+ self.bid64_to_binary64("3", "[46b0f0d091cd4027]", "[65dcba8083b7b568]", "0x20")
+ self.bid64_to_binary64("4", "[46b0f0d091cd4027]", "[65dcba8083b7b568]", "0x20")
+ self.bid64_to_binary64("0", "[476eab61979e30a6]", "[6717b976fd49b8e9]", "0x20")
+ self.bid64_to_binary64("1", "[476eab61979e30a6]", "[6717b976fd49b8e9]", "0x20")
+ self.bid64_to_binary64("2", "[476eab61979e30a6]", "[6717b976fd49b8ea]", "0x20")
+ self.bid64_to_binary64("3", "[476eab61979e30a6]", "[6717b976fd49b8e9]", "0x20")
+ self.bid64_to_binary64("4", "[476eab61979e30a6]", "[6717b976fd49b8e9]", "0x20")
+ self.bid64_to_binary64("0", "[481d925a58adbc4c]", "[68323e731b1eb118]", "0x20")
+ self.bid64_to_binary64("1", "[481d925a58adbc4c]", "[68323e731b1eb118]", "0x20")
+ self.bid64_to_binary64("2", "[481d925a58adbc4c]", "[68323e731b1eb119]", "0x20")
+ self.bid64_to_binary64("3", "[481d925a58adbc4c]", "[68323e731b1eb118]", "0x20")
+ self.bid64_to_binary64("4", "[481d925a58adbc4c]", "[68323e731b1eb118]", "0x20")
+ self.bid64_to_binary64("0", "[4905c8499d093258]", "[69b543619dddb7ea]", "0x20")
+ self.bid64_to_binary64("1", "[4905c8499d093258]", "[69b543619dddb7e9]", "0x20")
+ self.bid64_to_binary64("2", "[4905c8499d093258]", "[69b543619dddb7ea]", "0x20")
+ self.bid64_to_binary64("3", "[4905c8499d093258]", "[69b543619dddb7e9]", "0x20")
+ self.bid64_to_binary64("4", "[4905c8499d093258]", "[69b543619dddb7ea]", "0x20")
+ self.bid64_to_binary64("0", "[49dc43cc45f364e6]", "[6b18c7cbbb955136]", "0x20")
+ self.bid64_to_binary64("1", "[49dc43cc45f364e6]", "[6b18c7cbbb955136]", "0x20")
+ self.bid64_to_binary64("2", "[49dc43cc45f364e6]", "[6b18c7cbbb955137]", "0x20")
+ self.bid64_to_binary64("3", "[49dc43cc45f364e6]", "[6b18c7cbbb955136]", "0x20")
+ self.bid64_to_binary64("4", "[49dc43cc45f364e6]", "[6b18c7cbbb955136]", "0x20")
+ self.bid64_to_binary64("0", "[4a8dfebc08eb1542]", "[6c47671ccdd1fd0f]", "0x20")
+ self.bid64_to_binary64("1", "[4a8dfebc08eb1542]", "[6c47671ccdd1fd0e]", "0x20")
+ self.bid64_to_binary64("2", "[4a8dfebc08eb1542]", "[6c47671ccdd1fd0f]", "0x20")
+ self.bid64_to_binary64("3", "[4a8dfebc08eb1542]", "[6c47671ccdd1fd0e]", "0x20")
+ self.bid64_to_binary64("4", "[4a8dfebc08eb1542]", "[6c47671ccdd1fd0f]", "0x20")
+ self.bid64_to_binary64("0", "[4b4ccb69c4ab2d3a]", "[6d84677812d3a606]", "0x20")
+ self.bid64_to_binary64("1", "[4b4ccb69c4ab2d3a]", "[6d84677812d3a606]", "0x20")
+ self.bid64_to_binary64("2", "[4b4ccb69c4ab2d3a]", "[6d84677812d3a607]", "0x20")
+ self.bid64_to_binary64("3", "[4b4ccb69c4ab2d3a]", "[6d84677812d3a606]", "0x20")
+ self.bid64_to_binary64("4", "[4b4ccb69c4ab2d3a]", "[6d84677812d3a606]", "0x20")
+ self.bid64_to_binary64("0", "[4cfbdf142478c707]", "[704944072c923fc2]", "0x20")
+ self.bid64_to_binary64("1", "[4cfbdf142478c707]", "[704944072c923fc2]", "0x20")
+ self.bid64_to_binary64("2", "[4cfbdf142478c707]", "[704944072c923fc3]", "0x20")
+ self.bid64_to_binary64("3", "[4cfbdf142478c707]", "[704944072c923fc2]", "0x20")
+ self.bid64_to_binary64("4", "[4cfbdf142478c707]", "[704944072c923fc2]", "0x20")
+ self.bid64_to_binary64("0", "[4dac4e5df2ccc036]", "[717547166a3a2b0f]", "0x20")
+ self.bid64_to_binary64("1", "[4dac4e5df2ccc036]", "[717547166a3a2b0f]", "0x20")
+ self.bid64_to_binary64("2", "[4dac4e5df2ccc036]", "[717547166a3a2b10]", "0x20")
+ self.bid64_to_binary64("3", "[4dac4e5df2ccc036]", "[717547166a3a2b0f]", "0x20")
+ self.bid64_to_binary64("4", "[4dac4e5df2ccc036]", "[717547166a3a2b0f]", "0x20")
+ self.bid64_to_binary64("0", "[4e86c82e21e4b3d5]", "[72dbf51de62602b9]", "0x20")
+ self.bid64_to_binary64("1", "[4e86c82e21e4b3d5]", "[72dbf51de62602b8]", "0x20")
+ self.bid64_to_binary64("2", "[4e86c82e21e4b3d5]", "[72dbf51de62602b9]", "0x20")
+ self.bid64_to_binary64("3", "[4e86c82e21e4b3d5]", "[72dbf51de62602b8]", "0x20")
+ self.bid64_to_binary64("4", "[4e86c82e21e4b3d5]", "[72dbf51de62602b9]", "0x20")
+ self.bid64_to_binary64("0", "[4f4e473f6e39be15]", "[742c110e96414eec]", "0x20")
+ self.bid64_to_binary64("1", "[4f4e473f6e39be15]", "[742c110e96414eeb]", "0x20")
+ self.bid64_to_binary64("2", "[4f4e473f6e39be15]", "[742c110e96414eec]", "0x20")
+ self.bid64_to_binary64("3", "[4f4e473f6e39be15]", "[742c110e96414eeb]", "0x20")
+ self.bid64_to_binary64("4", "[4f4e473f6e39be15]", "[742c110e96414eec]", "0x20")
+ self.bid64_to_binary64("0", "[501ffb94728ec1b3]", "[757dfa4dfde9f70e]", "0x20")
+ self.bid64_to_binary64("1", "[501ffb94728ec1b3]", "[757dfa4dfde9f70d]", "0x20")
+ self.bid64_to_binary64("2", "[501ffb94728ec1b3]", "[757dfa4dfde9f70e]", "0x20")
+ self.bid64_to_binary64("3", "[501ffb94728ec1b3]", "[757dfa4dfde9f70d]", "0x20")
+ self.bid64_to_binary64("4", "[501ffb94728ec1b3]", "[757dfa4dfde9f70e]", "0x20")
+ self.bid64_to_binary64("0", "[50c937c7233ad9ca]", "[76a07ac23fca339c]", "0x20")
+ self.bid64_to_binary64("1", "[50c937c7233ad9ca]", "[76a07ac23fca339b]", "0x20")
+ self.bid64_to_binary64("2", "[50c937c7233ad9ca]", "[76a07ac23fca339c]", "0x20")
+ self.bid64_to_binary64("3", "[50c937c7233ad9ca]", "[76a07ac23fca339b]", "0x20")
+ self.bid64_to_binary64("4", "[50c937c7233ad9ca]", "[76a07ac23fca339c]", "0x20")
+ self.bid64_to_binary64("0", "[518edb73058f955a]", "[77e954b88b26687c]", "0x20")
+ self.bid64_to_binary64("1", "[518edb73058f955a]", "[77e954b88b26687c]", "0x20")
+ self.bid64_to_binary64("2", "[518edb73058f955a]", "[77e954b88b26687d]", "0x20")
+ self.bid64_to_binary64("3", "[518edb73058f955a]", "[77e954b88b26687c]", "0x20")
+ self.bid64_to_binary64("4", "[518edb73058f955a]", "[77e954b88b26687c]", "0x20")
+ self.bid64_to_binary64("0", "[527bcc60266a98e1]", "[796c3fe74995d448]", "0x20")
+ self.bid64_to_binary64("1", "[527bcc60266a98e1]", "[796c3fe74995d447]", "0x20")
+ self.bid64_to_binary64("2", "[527bcc60266a98e1]", "[796c3fe74995d448]", "0x20")
+ self.bid64_to_binary64("3", "[527bcc60266a98e1]", "[796c3fe74995d447]", "0x20")
+ self.bid64_to_binary64("4", "[527bcc60266a98e1]", "[796c3fe74995d448]", "0x20")
+ self.bid64_to_binary64("0", "[533cf2a660b312d7]", "[7aac0e1413d40908]", "0x20")
+ self.bid64_to_binary64("1", "[533cf2a660b312d7]", "[7aac0e1413d40907]", "0x20")
+ self.bid64_to_binary64("2", "[533cf2a660b312d7]", "[7aac0e1413d40908]", "0x20")
+ self.bid64_to_binary64("3", "[533cf2a660b312d7]", "[7aac0e1413d40907]", "0x20")
+ self.bid64_to_binary64("4", "[533cf2a660b312d7]", "[7aac0e1413d40908]", "0x20")
+ self.bid64_to_binary64("0", "[53ef589c11503ae2]", "[7bdc5e1c16c19d25]", "0x20")
+ self.bid64_to_binary64("1", "[53ef589c11503ae2]", "[7bdc5e1c16c19d25]", "0x20")
+ self.bid64_to_binary64("2", "[53ef589c11503ae2]", "[7bdc5e1c16c19d26]", "0x20")
+ self.bid64_to_binary64("3", "[53ef589c11503ae2]", "[7bdc5e1c16c19d25]", "0x20")
+ self.bid64_to_binary64("4", "[53ef589c11503ae2]", "[7bdc5e1c16c19d25]", "0x20")
+ self.bid64_to_binary64("0", "[54ac885821cb3e74]", "[7d1617f1418c7316]", "0x20")
+ self.bid64_to_binary64("1", "[54ac885821cb3e74]", "[7d1617f1418c7316]", "0x20")
+ self.bid64_to_binary64("2", "[54ac885821cb3e74]", "[7d1617f1418c7317]", "0x20")
+ self.bid64_to_binary64("3", "[54ac885821cb3e74]", "[7d1617f1418c7316]", "0x20")
+ self.bid64_to_binary64("4", "[54ac885821cb3e74]", "[7d1617f1418c7316]", "0x20")
+ self.bid64_to_binary64("0", "[559ba4e78c319775]", "[7e9d0c2361d7af4b]", "0x20")
+ self.bid64_to_binary64("1", "[559ba4e78c319775]", "[7e9d0c2361d7af4b]", "0x20")
+ self.bid64_to_binary64("2", "[559ba4e78c319775]", "[7e9d0c2361d7af4c]", "0x20")
+ self.bid64_to_binary64("3", "[559ba4e78c319775]", "[7e9d0c2361d7af4b]", "0x20")
+ self.bid64_to_binary64("4", "[559ba4e78c319775]", "[7e9d0c2361d7af4b]", "0x20")
+ self.bid64_to_binary64("0", "[566662fe0cb7f7eb]", "[7feffffffffffffb]", "0x20")
+ self.bid64_to_binary64("1", "[566662fe0cb7f7eb]", "[7feffffffffffffb]", "0x20")
+ self.bid64_to_binary64("2", "[566662fe0cb7f7eb]", "[7feffffffffffffc]", "0x20")
+ self.bid64_to_binary64("3", "[566662fe0cb7f7eb]", "[7feffffffffffffb]", "0x20")
+ self.bid64_to_binary64("4", "[566662fe0cb7f7eb]", "[7feffffffffffffb]", "0x20")
+ self.bid64_to_binary64("0", "[566662fe0cb7f7ec]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("1", "[566662fe0cb7f7ec]", "[7fefffffffffffff]", "0x28")
+ self.bid64_to_binary64("2", "[566662fe0cb7f7ec]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("3", "[566662fe0cb7f7ec]", "[7fefffffffffffff]", "0x28")
+ self.bid64_to_binary64("4", "[566662fe0cb7f7ec]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("0", "[64f8cd51d574750b]", "[11a1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("1", "[64f8cd51d574750b]", "[11a1167cf9686bf5]", "0x20")
+ self.bid64_to_binary64("2", "[64f8cd51d574750b]", "[11a1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("3", "[64f8cd51d574750b]", "[11a1167cf9686bf5]", "0x20")
+ self.bid64_to_binary64("4", "[64f8cd51d574750b]", "[11a1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("0", "[66ba5bcff2af15e5]", "[1d423fca433dcbe4]", "0x20")
+ self.bid64_to_binary64("1", "[66ba5bcff2af15e5]", "[1d423fca433dcbe3]", "0x20")
+ self.bid64_to_binary64("2", "[66ba5bcff2af15e5]", "[1d423fca433dcbe4]", "0x20")
+ self.bid64_to_binary64("3", "[66ba5bcff2af15e5]", "[1d423fca433dcbe3]", "0x20")
+ self.bid64_to_binary64("4", "[66ba5bcff2af15e5]", "[1d423fca433dcbe4]", "0x20")
+ self.bid64_to_binary64("0", "[67825427b548dfc7]", "[2272da500205778a]", "0x20")
+ self.bid64_to_binary64("1", "[67825427b548dfc7]", "[2272da500205778a]", "0x20")
+ self.bid64_to_binary64("2", "[67825427b548dfc7]", "[2272da500205778b]", "0x20")
+ self.bid64_to_binary64("3", "[67825427b548dfc7]", "[2272da500205778a]", "0x20")
+ self.bid64_to_binary64("4", "[67825427b548dfc7]", "[2272da500205778a]", "0x20")
+ self.bid64_to_binary64("0", "[68195b108182b498]", "[2663dc6227de9148]", "0x20")
+ self.bid64_to_binary64("1", "[68195b108182b498]", "[2663dc6227de9148]", "0x20")
+ self.bid64_to_binary64("2", "[68195b108182b498]", "[2663dc6227de9149]", "0x20")
+ self.bid64_to_binary64("3", "[68195b108182b498]", "[2663dc6227de9148]", "0x20")
+ self.bid64_to_binary64("4", "[68195b108182b498]", "[2663dc6227de9148]", "0x20")
+ self.bid64_to_binary64("0", "[6912bc7cefdf17da]", "[2cd46518c19d90ea]", "0x20")
+ self.bid64_to_binary64("1", "[6912bc7cefdf17da]", "[2cd46518c19d90ea]", "0x20")
+ self.bid64_to_binary64("2", "[6912bc7cefdf17da]", "[2cd46518c19d90eb]", "0x20")
+ self.bid64_to_binary64("3", "[6912bc7cefdf17da]", "[2cd46518c19d90ea]", "0x20")
+ self.bid64_to_binary64("4", "[6912bc7cefdf17da]", "[2cd46518c19d90ea]", "0x20")
+ self.bid64_to_binary64("0", "[6c0386f1dcd9db15]", "[4058ffff98a0532c]", "0x20")
+ self.bid64_to_binary64("1", "[6c0386f1dcd9db15]", "[4058ffff98a0532c]", "0x20")
+ self.bid64_to_binary64("2", "[6c0386f1dcd9db15]", "[4058ffff98a0532d]", "0x20")
+ self.bid64_to_binary64("3", "[6c0386f1dcd9db15]", "[4058ffff98a0532c]", "0x20")
+ self.bid64_to_binary64("4", "[6c0386f1dcd9db15]", "[4058ffff98a0532c]", "0x20")
+ self.bid64_to_binary64("0", "[6c3386f26fbe2f2b]", "[4197d783fffe1c42]", "0x20")
+ self.bid64_to_binary64("1", "[6c3386f26fbe2f2b]", "[4197d783fffe1c41]", "0x20")
+ self.bid64_to_binary64("2", "[6c3386f26fbe2f2b]", "[4197d783fffe1c42]", "0x20")
+ self.bid64_to_binary64("3", "[6c3386f26fbe2f2b]", "[4197d783fffe1c41]", "0x20")
+ self.bid64_to_binary64("4", "[6c3386f26fbe2f2b]", "[4197d783fffe1c42]", "0x20")
+ self.bid64_to_binary64("0", "[6ccb86f26f6ec68b]", "[4589d971e4c2b083]", "0x20")
+ self.bid64_to_binary64("1", "[6ccb86f26f6ec68b]", "[4589d971e4c2b082]", "0x20")
+ self.bid64_to_binary64("2", "[6ccb86f26f6ec68b]", "[4589d971e4c2b083]", "0x20")
+ self.bid64_to_binary64("3", "[6ccb86f26f6ec68b]", "[4589d971e4c2b082]", "0x20")
+ self.bid64_to_binary64("4", "[6ccb86f26f6ec68b]", "[4589d971e4c2b083]", "0x20")
+ self.bid64_to_binary64("0", "[6cfb86261a3adff3]", "[46c8a6555940ba70]", "0x20")
+ self.bid64_to_binary64("1", "[6cfb86261a3adff3]", "[46c8a6555940ba6f]", "0x20")
+ self.bid64_to_binary64("2", "[6cfb86261a3adff3]", "[46c8a6555940ba70]", "0x20")
+ self.bid64_to_binary64("3", "[6cfb86261a3adff3]", "[46c8a6555940ba6f]", "0x20")
+ self.bid64_to_binary64("4", "[6cfb86261a3adff3]", "[46c8a6555940ba70]", "0x20")
+ self.bid64_to_binary64("0", "[6f21db37ad7fa007]", "[551b3b180c0ae026]", "0x20")
+ self.bid64_to_binary64("1", "[6f21db37ad7fa007]", "[551b3b180c0ae026]", "0x20")
+ self.bid64_to_binary64("2", "[6f21db37ad7fa007]", "[551b3b180c0ae027]", "0x20")
+ self.bid64_to_binary64("3", "[6f21db37ad7fa007]", "[551b3b180c0ae026]", "0x20")
+ self.bid64_to_binary64("4", "[6f21db37ad7fa007]", "[551b3b180c0ae026]", "0x20")
+ self.bid64_to_binary64("0", "[70dae3657476a586]", "[6086e36058bfb9a0]", "0x20")
+ self.bid64_to_binary64("1", "[70dae3657476a586]", "[6086e36058bfb9a0]", "0x20")
+ self.bid64_to_binary64("2", "[70dae3657476a586]", "[6086e36058bfb9a1]", "0x20")
+ self.bid64_to_binary64("3", "[70dae3657476a586]", "[6086e36058bfb9a0]", "0x20")
+ self.bid64_to_binary64("4", "[70dae3657476a586]", "[6086e36058bfb9a0]", "0x20")
+ self.bid64_to_binary64("0", "[730920d09ebfd32f]", "[6f0f7d6721f7f144]", "0x20")
+ self.bid64_to_binary64("1", "[730920d09ebfd32f]", "[6f0f7d6721f7f143]", "0x20")
+ self.bid64_to_binary64("2", "[730920d09ebfd32f]", "[6f0f7d6721f7f144]", "0x20")
+ self.bid64_to_binary64("3", "[730920d09ebfd32f]", "[6f0f7d6721f7f143]", "0x20")
+ self.bid64_to_binary64("4", "[730920d09ebfd32f]", "[6f0f7d6721f7f144]", "0x20")
+ self.bid64_to_binary64("0", "[77fb86f26fc0ffff]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("1", "[77fb86f26fc0ffff]", "[7fefffffffffffff]", "0x28")
+ self.bid64_to_binary64("2", "[77fb86f26fc0ffff]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("3", "[77fb86f26fc0ffff]", "[7fefffffffffffff]", "0x28")
+ self.bid64_to_binary64("4", "[77fb86f26fc0ffff]", "[7ff0000000000000]", "0x28")
+ self.bid64_to_binary64("0", "[7800000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[7800000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[7800000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[7800000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[7800000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[7c03080000000000]", "[7ffe100000000000]", "0x00")
+ self.bid64_to_binary64("0", "[7e03080000000000]", "[7ffe100000000000]", "0x01")
+ self.bid64_to_binary64("0", "[8000000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[8000000000000001]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[8000000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[8000000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[8000000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[80038d7ea4c67fff]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[80038d7ea4c67fff]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[80038d7ea4c67fff]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[80038d7ea4c67fff]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[80038d7ea4c67fff]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[81e0000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[81e0000000000001]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[81e0000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[81e0000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[81e0000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[8200000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[8200000000000001]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[8200000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[8200000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[8200000000000001]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[87674569785223d2]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[87674569785223d2]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[87674569785223d2]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[87674569785223d2]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[87674569785223d2]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[87718d80392931b1]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[87718d80392931b1]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[87718d80392931b1]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[87718d80392931b1]", "[8000000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[87718d80392931b1]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("0", "[87718d80392931b2]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[87718d80392931b2]", "[8000000000000002]", "0x30")
+ self.bid64_to_binary64("2", "[87718d80392931b2]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("3", "[87718d80392931b2]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("4", "[87718d80392931b2]", "[8000000000000001]", "0x30")
+ self.bid64_to_binary64("0", "[884032920461e7a6]", "[800000000001b79d]", "0x30")
+ self.bid64_to_binary64("1", "[884032920461e7a6]", "[800000000001b79e]", "0x30")
+ self.bid64_to_binary64("2", "[884032920461e7a6]", "[800000000001b79d]", "0x30")
+ self.bid64_to_binary64("3", "[884032920461e7a6]", "[800000000001b79d]", "0x30")
+ self.bid64_to_binary64("4", "[884032920461e7a6]", "[800000000001b79d]", "0x30")
+ self.bid64_to_binary64("0", "[8902262b1e95004c]", "[8000011d11d469c5]", "0x30")
+ self.bid64_to_binary64("1", "[8902262b1e95004c]", "[8000011d11d469c5]", "0x30")
+ self.bid64_to_binary64("2", "[8902262b1e95004c]", "[8000011d11d469c4]", "0x30")
+ self.bid64_to_binary64("3", "[8902262b1e95004c]", "[8000011d11d469c4]", "0x30")
+ self.bid64_to_binary64("4", "[8902262b1e95004c]", "[8000011d11d469c5]", "0x30")
+ self.bid64_to_binary64("0", "[8953c33b72569c62]", "[8004000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[8953c33b72569c62]", "[8004000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[8953c33b72569c62]", "[8003ffffffffffff]", "0x30")
+ self.bid64_to_binary64("3", "[8953c33b72569c62]", "[8003ffffffffffff]", "0x30")
+ self.bid64_to_binary64("4", "[8953c33b72569c62]", "[8004000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[8953c33b72569c63]", "[8004000000000000]", "0x30")
+ self.bid64_to_binary64("1", "[8953c33b72569c63]", "[8004000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[8953c33b72569c63]", "[8003ffffffffffff]", "0x30")
+ self.bid64_to_binary64("3", "[8953c33b72569c63]", "[8003ffffffffffff]", "0x30")
+ self.bid64_to_binary64("4", "[8953c33b72569c63]", "[8004000000000000]", "0x30")
+ self.bid64_to_binary64("0", "[8963f3d8b077b8e1]", "[8008000000000001]", "0x30")
+ self.bid64_to_binary64("1", "[8963f3d8b077b8e1]", "[8008000000000001]", "0x30")
+ self.bid64_to_binary64("2", "[8963f3d8b077b8e1]", "[8008000000000000]", "0x30")
+ self.bid64_to_binary64("3", "[8963f3d8b077b8e1]", "[8008000000000000]", "0x30")
+ self.bid64_to_binary64("4", "[8963f3d8b077b8e1]", "[8008000000000001]", "0x30")
+ self.bid64_to_binary64("0", "[8967e7b160ef71c1]", "[800fffffffffffff]", "0x30")
+ self.bid64_to_binary64("1", "[8967e7b160ef71c1]", "[8010000000000000]", "0x30")
+ self.bid64_to_binary64("2", "[8967e7b160ef71c1]", "[800fffffffffffff]", "0x30")
+ self.bid64_to_binary64("3", "[8967e7b160ef71c1]", "[800fffffffffffff]", "0x30")
+ self.bid64_to_binary64("4", "[8967e7b160ef71c1]", "[800fffffffffffff]", "0x30")
+ self.bid64_to_binary64("0", "[8967e7b160ef71c2]", "[8010000000000001]", "0x20")
+ self.bid64_to_binary64("1", "[8967e7b160ef71c2]", "[8010000000000002]", "0x20")
+ self.bid64_to_binary64("2", "[8967e7b160ef71c2]", "[8010000000000001]", "0x20")
+ self.bid64_to_binary64("3", "[8967e7b160ef71c2]", "[8010000000000001]", "0x20")
+ self.bid64_to_binary64("4", "[8967e7b160ef71c2]", "[8010000000000001]", "0x20")
+ self.bid64_to_binary64("0", "[896fcf62c1dee382]", "[801ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("1", "[896fcf62c1dee382]", "[801fffffffffffff]", "0x20")
+ self.bid64_to_binary64("2", "[896fcf62c1dee382]", "[801ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("3", "[896fcf62c1dee382]", "[801ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("4", "[896fcf62c1dee382]", "[801ffffffffffffe]", "0x20")
+ self.bid64_to_binary64("0", "[896fcf62c1dee383]", "[8020000000000000]", "0x20")
+ self.bid64_to_binary64("1", "[896fcf62c1dee383]", "[8020000000000001]", "0x20")
+ self.bid64_to_binary64("2", "[896fcf62c1dee383]", "[8020000000000000]", "0x20")
+ self.bid64_to_binary64("3", "[896fcf62c1dee383]", "[8020000000000000]", "0x20")
+ self.bid64_to_binary64("4", "[896fcf62c1dee383]", "[8020000000000000]", "0x20")
+ self.bid64_to_binary64("0", "[89a00a1e53af46f8]", "[8007ffffffffffff]", "0x30")
+ self.bid64_to_binary64("1", "[89a00a1e53af46f8]", "[8007ffffffffffff]", "0x30")
+ self.bid64_to_binary64("2", "[89a00a1e53af46f8]", "[8007fffffffffffe]", "0x30")
+ self.bid64_to_binary64("3", "[89a00a1e53af46f8]", "[8007fffffffffffe]", "0x30")
+ self.bid64_to_binary64("4", "[89a00a1e53af46f8]", "[8007ffffffffffff]", "0x30")
+ self.bid64_to_binary64("0", "[89c951d35341d6a3]", "[80b26bc92333a617]", "0x20")
+ self.bid64_to_binary64("1", "[89c951d35341d6a3]", "[80b26bc92333a618]", "0x20")
+ self.bid64_to_binary64("2", "[89c951d35341d6a3]", "[80b26bc92333a617]", "0x20")
+ self.bid64_to_binary64("3", "[89c951d35341d6a3]", "[80b26bc92333a617]", "0x20")
+ self.bid64_to_binary64("4", "[89c951d35341d6a3]", "[80b26bc92333a617]", "0x20")
+ self.bid64_to_binary64("0", "[8a93f518b145d1a7]", "[8202cf5e7bb9a312]", "0x20")
+ self.bid64_to_binary64("1", "[8a93f518b145d1a7]", "[8202cf5e7bb9a312]", "0x20")
+ self.bid64_to_binary64("2", "[8a93f518b145d1a7]", "[8202cf5e7bb9a311]", "0x20")
+ self.bid64_to_binary64("3", "[8a93f518b145d1a7]", "[8202cf5e7bb9a311]", "0x20")
+ self.bid64_to_binary64("4", "[8a93f518b145d1a7]", "[8202cf5e7bb9a312]", "0x20")
+ self.bid64_to_binary64("0", "[8b6043ba42fd29c2]", "[83130622f599bb7d]", "0x20")
+ self.bid64_to_binary64("1", "[8b6043ba42fd29c2]", "[83130622f599bb7d]", "0x20")
+ self.bid64_to_binary64("2", "[8b6043ba42fd29c2]", "[83130622f599bb7c]", "0x20")
+ self.bid64_to_binary64("3", "[8b6043ba42fd29c2]", "[83130622f599bb7c]", "0x20")
+ self.bid64_to_binary64("4", "[8b6043ba42fd29c2]", "[83130622f599bb7d]", "0x20")
+ self.bid64_to_binary64("0", "[8c2377b788355de1]", "[848db99211b097a6]", "0x20")
+ self.bid64_to_binary64("1", "[8c2377b788355de1]", "[848db99211b097a6]", "0x20")
+ self.bid64_to_binary64("2", "[8c2377b788355de1]", "[848db99211b097a5]", "0x20")
+ self.bid64_to_binary64("3", "[8c2377b788355de1]", "[848db99211b097a5]", "0x20")
+ self.bid64_to_binary64("4", "[8c2377b788355de1]", "[848db99211b097a6]", "0x20")
+ self.bid64_to_binary64("0", "[8d016dcd3fefdd80]", "[85ed3409dfbca26f]", "0x20")
+ self.bid64_to_binary64("1", "[8d016dcd3fefdd80]", "[85ed3409dfbca270]", "0x20")
+ self.bid64_to_binary64("2", "[8d016dcd3fefdd80]", "[85ed3409dfbca26f]", "0x20")
+ self.bid64_to_binary64("3", "[8d016dcd3fefdd80]", "[85ed3409dfbca26f]", "0x20")
+ self.bid64_to_binary64("4", "[8d016dcd3fefdd80]", "[85ed3409dfbca26f]", "0x20")
+ self.bid64_to_binary64("0", "[8da62a52ed86615b]", "[87180881446f8c64]", "0x20")
+ self.bid64_to_binary64("1", "[8da62a52ed86615b]", "[87180881446f8c64]", "0x20")
+ self.bid64_to_binary64("2", "[8da62a52ed86615b]", "[87180881446f8c63]", "0x20")
+ self.bid64_to_binary64("3", "[8da62a52ed86615b]", "[87180881446f8c63]", "0x20")
+ self.bid64_to_binary64("4", "[8da62a52ed86615b]", "[87180881446f8c64]", "0x20")
+ self.bid64_to_binary64("0", "[8e6c32b9e6650875]", "[8866ac6eeaf26238]", "0x20")
+ self.bid64_to_binary64("1", "[8e6c32b9e6650875]", "[8866ac6eeaf26239]", "0x20")
+ self.bid64_to_binary64("2", "[8e6c32b9e6650875]", "[8866ac6eeaf26238]", "0x20")
+ self.bid64_to_binary64("3", "[8e6c32b9e6650875]", "[8866ac6eeaf26238]", "0x20")
+ self.bid64_to_binary64("4", "[8e6c32b9e6650875]", "[8866ac6eeaf26238]", "0x20")
+ self.bid64_to_binary64("0", "[8f418e7988380eb1]", "[89ab979c828dc5db]", "0x20")
+ self.bid64_to_binary64("1", "[8f418e7988380eb1]", "[89ab979c828dc5dc]", "0x20")
+ self.bid64_to_binary64("2", "[8f418e7988380eb1]", "[89ab979c828dc5db]", "0x20")
+ self.bid64_to_binary64("3", "[8f418e7988380eb1]", "[89ab979c828dc5db]", "0x20")
+ self.bid64_to_binary64("4", "[8f418e7988380eb1]", "[89ab979c828dc5db]", "0x20")
+ self.bid64_to_binary64("0", "[9000b1bcd739e247]", "[8ad7797619b14480]", "0x20")
+ self.bid64_to_binary64("1", "[9000b1bcd739e247]", "[8ad7797619b14480]", "0x20")
+ self.bid64_to_binary64("2", "[9000b1bcd739e247]", "[8ad7797619b1447f]", "0x20")
+ self.bid64_to_binary64("3", "[9000b1bcd739e247]", "[8ad7797619b1447f]", "0x20")
+ self.bid64_to_binary64("4", "[9000b1bcd739e247]", "[8ad7797619b14480]", "0x20")
+ self.bid64_to_binary64("0", "[90d8aa591e997f2d]", "[8c68da99f7a4eabf]", "0x20")
+ self.bid64_to_binary64("1", "[90d8aa591e997f2d]", "[8c68da99f7a4eabf]", "0x20")
+ self.bid64_to_binary64("2", "[90d8aa591e997f2d]", "[8c68da99f7a4eabe]", "0x20")
+ self.bid64_to_binary64("3", "[90d8aa591e997f2d]", "[8c68da99f7a4eabe]", "0x20")
+ self.bid64_to_binary64("4", "[90d8aa591e997f2d]", "[8c68da99f7a4eabf]", "0x20")
+ self.bid64_to_binary64("0", "[91869461670b3ada]", "[8d894a80ea17c1d0]", "0x20")
+ self.bid64_to_binary64("1", "[91869461670b3ada]", "[8d894a80ea17c1d1]", "0x20")
+ self.bid64_to_binary64("2", "[91869461670b3ada]", "[8d894a80ea17c1d0]", "0x20")
+ self.bid64_to_binary64("3", "[91869461670b3ada]", "[8d894a80ea17c1d0]", "0x20")
+ self.bid64_to_binary64("4", "[91869461670b3ada]", "[8d894a80ea17c1d0]", "0x20")
+ self.bid64_to_binary64("0", "[9262e2f7926738a9]", "[8eea7439edbb8d62]", "0x20")
+ self.bid64_to_binary64("1", "[9262e2f7926738a9]", "[8eea7439edbb8d62]", "0x20")
+ self.bid64_to_binary64("2", "[9262e2f7926738a9]", "[8eea7439edbb8d61]", "0x20")
+ self.bid64_to_binary64("3", "[9262e2f7926738a9]", "[8eea7439edbb8d61]", "0x20")
+ self.bid64_to_binary64("4", "[9262e2f7926738a9]", "[8eea7439edbb8d62]", "0x20")
+ self.bid64_to_binary64("0", "[932e511fd727e31b]", "[904f48347c60a1bd]", "0x20")
+ self.bid64_to_binary64("1", "[932e511fd727e31b]", "[904f48347c60a1be]", "0x20")
+ self.bid64_to_binary64("2", "[932e511fd727e31b]", "[904f48347c60a1bd]", "0x20")
+ self.bid64_to_binary64("3", "[932e511fd727e31b]", "[904f48347c60a1bd]", "0x20")
+ self.bid64_to_binary64("4", "[932e511fd727e31b]", "[904f48347c60a1bd]", "0x20")
+ self.bid64_to_binary64("0", "[94bbf51de62602b9]", "[92dbc764e4f07200]", "0x20")
+ self.bid64_to_binary64("1", "[94bbf51de62602b9]", "[92dbc764e4f07201]", "0x20")
+ self.bid64_to_binary64("2", "[94bbf51de62602b9]", "[92dbc764e4f07200]", "0x20")
+ self.bid64_to_binary64("3", "[94bbf51de62602b9]", "[92dbc764e4f07200]", "0x20")
+ self.bid64_to_binary64("4", "[94bbf51de62602b9]", "[92dbc764e4f07200]", "0x20")
+ self.bid64_to_binary64("0", "[95832ee933c4afad]", "[941e29f2bb04a5b6]", "0x20")
+ self.bid64_to_binary64("1", "[95832ee933c4afad]", "[941e29f2bb04a5b7]", "0x20")
+ self.bid64_to_binary64("2", "[95832ee933c4afad]", "[941e29f2bb04a5b6]", "0x20")
+ self.bid64_to_binary64("3", "[95832ee933c4afad]", "[941e29f2bb04a5b6]", "0x20")
+ self.bid64_to_binary64("4", "[95832ee933c4afad]", "[941e29f2bb04a5b6]", "0x20")
+ self.bid64_to_binary64("0", "[96405d95b55d4beb]", "[952a6db0b81fd170]", "0x20")
+ self.bid64_to_binary64("1", "[96405d95b55d4beb]", "[952a6db0b81fd171]", "0x20")
+ self.bid64_to_binary64("2", "[96405d95b55d4beb]", "[952a6db0b81fd170]", "0x20")
+ self.bid64_to_binary64("3", "[96405d95b55d4beb]", "[952a6db0b81fd170]", "0x20")
+ self.bid64_to_binary64("4", "[96405d95b55d4beb]", "[952a6db0b81fd170]", "0x20")
+ self.bid64_to_binary64("0", "[9716ff406c702454]", "[96c8c631a5471f27]", "0x20")
+ self.bid64_to_binary64("1", "[9716ff406c702454]", "[96c8c631a5471f28]", "0x20")
+ self.bid64_to_binary64("2", "[9716ff406c702454]", "[96c8c631a5471f27]", "0x20")
+ self.bid64_to_binary64("3", "[9716ff406c702454]", "[96c8c631a5471f27]", "0x20")
+ self.bid64_to_binary64("4", "[9716ff406c702454]", "[96c8c631a5471f27]", "0x20")
+ self.bid64_to_binary64("0", "[97d1752aa924e55d]", "[9801ef7d320fffa0]", "0x20")
+ self.bid64_to_binary64("1", "[97d1752aa924e55d]", "[9801ef7d320fffa1]", "0x20")
+ self.bid64_to_binary64("2", "[97d1752aa924e55d]", "[9801ef7d320fffa0]", "0x20")
+ self.bid64_to_binary64("3", "[97d1752aa924e55d]", "[9801ef7d320fffa0]", "0x20")
+ self.bid64_to_binary64("4", "[97d1752aa924e55d]", "[9801ef7d320fffa0]", "0x20")
+ self.bid64_to_binary64("0", "[98a31a6cdc57b822]", "[994e6797d38da244]", "0x20")
+ self.bid64_to_binary64("1", "[98a31a6cdc57b822]", "[994e6797d38da245]", "0x20")
+ self.bid64_to_binary64("2", "[98a31a6cdc57b822]", "[994e6797d38da244]", "0x20")
+ self.bid64_to_binary64("3", "[98a31a6cdc57b822]", "[994e6797d38da244]", "0x20")
+ self.bid64_to_binary64("4", "[98a31a6cdc57b822]", "[994e6797d38da244]", "0x20")
+ self.bid64_to_binary64("0", "[9965c7ac69ce79eb]", "[9a9b00f1cf2d5ad8]", "0x20")
+ self.bid64_to_binary64("1", "[9965c7ac69ce79eb]", "[9a9b00f1cf2d5ad9]", "0x20")
+ self.bid64_to_binary64("2", "[9965c7ac69ce79eb]", "[9a9b00f1cf2d5ad8]", "0x20")
+ self.bid64_to_binary64("3", "[9965c7ac69ce79eb]", "[9a9b00f1cf2d5ad8]", "0x20")
+ self.bid64_to_binary64("4", "[9965c7ac69ce79eb]", "[9a9b00f1cf2d5ad8]", "0x20")
+ self.bid64_to_binary64("0", "[9a3b575d01088b9c]", "[9bfe746e367600fb]", "0x20")
+ self.bid64_to_binary64("1", "[9a3b575d01088b9c]", "[9bfe746e367600fc]", "0x20")
+ self.bid64_to_binary64("2", "[9a3b575d01088b9c]", "[9bfe746e367600fb]", "0x20")
+ self.bid64_to_binary64("3", "[9a3b575d01088b9c]", "[9bfe746e367600fb]", "0x20")
+ self.bid64_to_binary64("4", "[9a3b575d01088b9c]", "[9bfe746e367600fb]", "0x20")
+ self.bid64_to_binary64("0", "[9bc2d40b08dcee27]", "[9e7ca7079534ef8e]", "0x20")
+ self.bid64_to_binary64("1", "[9bc2d40b08dcee27]", "[9e7ca7079534ef8e]", "0x20")
+ self.bid64_to_binary64("2", "[9bc2d40b08dcee27]", "[9e7ca7079534ef8d]", "0x20")
+ self.bid64_to_binary64("3", "[9bc2d40b08dcee27]", "[9e7ca7079534ef8d]", "0x20")
+ self.bid64_to_binary64("4", "[9bc2d40b08dcee27]", "[9e7ca7079534ef8e]", "0x20")
+ self.bid64_to_binary64("0", "[9c88f72bf0709241]", "[9fd5a79c4e71d028]", "0x20")
+ self.bid64_to_binary64("1", "[9c88f72bf0709241]", "[9fd5a79c4e71d028]", "0x20")
+ self.bid64_to_binary64("2", "[9c88f72bf0709241]", "[9fd5a79c4e71d027]", "0x20")
+ self.bid64_to_binary64("3", "[9c88f72bf0709241]", "[9fd5a79c4e71d027]", "0x20")
+ self.bid64_to_binary64("4", "[9c88f72bf0709241]", "[9fd5a79c4e71d028]", "0x20")
+ self.bid64_to_binary64("0", "[9d541717ab11a367]", "[a1272369916132a9]", "0x20")
+ self.bid64_to_binary64("1", "[9d541717ab11a367]", "[a1272369916132aa]", "0x20")
+ self.bid64_to_binary64("2", "[9d541717ab11a367]", "[a1272369916132a9]", "0x20")
+ self.bid64_to_binary64("3", "[9d541717ab11a367]", "[a1272369916132a9]", "0x20")
+ self.bid64_to_binary64("4", "[9d541717ab11a367]", "[a1272369916132a9]", "0x20")
+ self.bid64_to_binary64("0", "[9ee10c35312de9d1]", "[a395f2df5e675a0f]", "0x20")
+ self.bid64_to_binary64("1", "[9ee10c35312de9d1]", "[a395f2df5e675a10]", "0x20")
+ self.bid64_to_binary64("2", "[9ee10c35312de9d1]", "[a395f2df5e675a0f]", "0x20")
+ self.bid64_to_binary64("3", "[9ee10c35312de9d1]", "[a395f2df5e675a0f]", "0x20")
+ self.bid64_to_binary64("4", "[9ee10c35312de9d1]", "[a395f2df5e675a0f]", "0x20")
+ self.bid64_to_binary64("0", "[9fa688c5ef991edf]", "[a5005194f202b111]", "0x20")
+ self.bid64_to_binary64("1", "[9fa688c5ef991edf]", "[a5005194f202b112]", "0x20")
+ self.bid64_to_binary64("2", "[9fa688c5ef991edf]", "[a5005194f202b111]", "0x20")
+ self.bid64_to_binary64("3", "[9fa688c5ef991edf]", "[a5005194f202b111]", "0x20")
+ self.bid64_to_binary64("4", "[9fa688c5ef991edf]", "[a5005194f202b111]", "0x20")
+ self.bid64_to_binary64("0", "[a12135b288f43676]", "[a755fb806a1e9340]", "0x20")
+ self.bid64_to_binary64("1", "[a12135b288f43676]", "[a755fb806a1e9340]", "0x20")
+ self.bid64_to_binary64("2", "[a12135b288f43676]", "[a755fb806a1e933f]", "0x20")
+ self.bid64_to_binary64("3", "[a12135b288f43676]", "[a755fb806a1e933f]", "0x20")
+ self.bid64_to_binary64("4", "[a12135b288f43676]", "[a755fb806a1e9340]", "0x20")
+ self.bid64_to_binary64("0", "[a22022bcebe955bd]", "[a8cd64c29852639b]", "0x20")
+ self.bid64_to_binary64("1", "[a22022bcebe955bd]", "[a8cd64c29852639c]", "0x20")
+ self.bid64_to_binary64("2", "[a22022bcebe955bd]", "[a8cd64c29852639b]", "0x20")
+ self.bid64_to_binary64("3", "[a22022bcebe955bd]", "[a8cd64c29852639b]", "0x20")
+ self.bid64_to_binary64("4", "[a22022bcebe955bd]", "[a8cd64c29852639b]", "0x20")
+ self.bid64_to_binary64("0", "[a2cbfb13ad3c7481]", "[aa3eeff57768f88b]", "0x20")
+ self.bid64_to_binary64("1", "[a2cbfb13ad3c7481]", "[aa3eeff57768f88c]", "0x20")
+ self.bid64_to_binary64("2", "[a2cbfb13ad3c7481]", "[aa3eeff57768f88b]", "0x20")
+ self.bid64_to_binary64("3", "[a2cbfb13ad3c7481]", "[aa3eeff57768f88b]", "0x20")
+ self.bid64_to_binary64("4", "[a2cbfb13ad3c7481]", "[aa3eeff57768f88b]", "0x20")
+ self.bid64_to_binary64("0", "[a38382dea4888745]", "[ab614b289f08fcc8]", "0x20")
+ self.bid64_to_binary64("1", "[a38382dea4888745]", "[ab614b289f08fcc9]", "0x20")
+ self.bid64_to_binary64("2", "[a38382dea4888745]", "[ab614b289f08fcc8]", "0x20")
+ self.bid64_to_binary64("3", "[a38382dea4888745]", "[ab614b289f08fcc8]", "0x20")
+ self.bid64_to_binary64("4", "[a38382dea4888745]", "[ab614b289f08fcc8]", "0x20")
+ self.bid64_to_binary64("0", "[a5223443606e7eae]", "[ae08af070ea2513b]", "0x20")
+ self.bid64_to_binary64("1", "[a5223443606e7eae]", "[ae08af070ea2513c]", "0x20")
+ self.bid64_to_binary64("2", "[a5223443606e7eae]", "[ae08af070ea2513b]", "0x20")
+ self.bid64_to_binary64("3", "[a5223443606e7eae]", "[ae08af070ea2513b]", "0x20")
+ self.bid64_to_binary64("4", "[a5223443606e7eae]", "[ae08af070ea2513b]", "0x20")
+ self.bid64_to_binary64("0", "[a5e440088f15f335]", "[af56b210327f4071]", "0x20")
+ self.bid64_to_binary64("1", "[a5e440088f15f335]", "[af56b210327f4072]", "0x20")
+ self.bid64_to_binary64("2", "[a5e440088f15f335]", "[af56b210327f4071]", "0x20")
+ self.bid64_to_binary64("3", "[a5e440088f15f335]", "[af56b210327f4071]", "0x20")
+ self.bid64_to_binary64("4", "[a5e440088f15f335]", "[af56b210327f4071]", "0x20")
+ self.bid64_to_binary64("0", "[a6a961c32eaa12f8]", "[b0a7e3987916a69e]", "0x20")
+ self.bid64_to_binary64("1", "[a6a961c32eaa12f8]", "[b0a7e3987916a69e]", "0x20")
+ self.bid64_to_binary64("2", "[a6a961c32eaa12f8]", "[b0a7e3987916a69d]", "0x20")
+ self.bid64_to_binary64("3", "[a6a961c32eaa12f8]", "[b0a7e3987916a69d]", "0x20")
+ self.bid64_to_binary64("4", "[a6a961c32eaa12f8]", "[b0a7e3987916a69e]", "0x20")
+ self.bid64_to_binary64("0", "[a77a7aee9d901bd7]", "[b2001361a3c7cdec]", "0x20")
+ self.bid64_to_binary64("1", "[a77a7aee9d901bd7]", "[b2001361a3c7cdec]", "0x20")
+ self.bid64_to_binary64("2", "[a77a7aee9d901bd7]", "[b2001361a3c7cdeb]", "0x20")
+ self.bid64_to_binary64("3", "[a77a7aee9d901bd7]", "[b2001361a3c7cdeb]", "0x20")
+ self.bid64_to_binary64("4", "[a77a7aee9d901bd7]", "[b2001361a3c7cdec]", "0x20")
+ self.bid64_to_binary64("0", "[a841ef57f0b861f7]", "[b33667afa252e8dd]", "0x20")
+ self.bid64_to_binary64("1", "[a841ef57f0b861f7]", "[b33667afa252e8dd]", "0x20")
+ self.bid64_to_binary64("2", "[a841ef57f0b861f7]", "[b33667afa252e8dc]", "0x20")
+ self.bid64_to_binary64("3", "[a841ef57f0b861f7]", "[b33667afa252e8dc]", "0x20")
+ self.bid64_to_binary64("4", "[a841ef57f0b861f7]", "[b33667afa252e8dd]", "0x20")
+ self.bid64_to_binary64("0", "[a901f80f19d050c5]", "[b475be383a7b9b0a]", "0x20")
+ self.bid64_to_binary64("1", "[a901f80f19d050c5]", "[b475be383a7b9b0b]", "0x20")
+ self.bid64_to_binary64("2", "[a901f80f19d050c5]", "[b475be383a7b9b0a]", "0x20")
+ self.bid64_to_binary64("3", "[a901f80f19d050c5]", "[b475be383a7b9b0a]", "0x20")
+ self.bid64_to_binary64("4", "[a901f80f19d050c5]", "[b475be383a7b9b0a]", "0x20")
+ self.bid64_to_binary64("0", "[a9d226c684c87261]", "[b5e7e5083bc0fe6e]", "0x20")
+ self.bid64_to_binary64("1", "[a9d226c684c87261]", "[b5e7e5083bc0fe6f]", "0x20")
+ self.bid64_to_binary64("2", "[a9d226c684c87261]", "[b5e7e5083bc0fe6e]", "0x20")
+ self.bid64_to_binary64("3", "[a9d226c684c87261]", "[b5e7e5083bc0fe6e]", "0x20")
+ self.bid64_to_binary64("4", "[a9d226c684c87261]", "[b5e7e5083bc0fe6e]", "0x20")
+ self.bid64_to_binary64("0", "[aa9a203af992bfed]", "[b73066452ee269aa]", "0x20")
+ self.bid64_to_binary64("1", "[aa9a203af992bfed]", "[b73066452ee269aa]", "0x20")
+ self.bid64_to_binary64("2", "[aa9a203af992bfed]", "[b73066452ee269a9]", "0x20")
+ self.bid64_to_binary64("3", "[aa9a203af992bfed]", "[b73066452ee269a9]", "0x20")
+ self.bid64_to_binary64("4", "[aa9a203af992bfed]", "[b73066452ee269aa]", "0x20")
+ self.bid64_to_binary64("0", "[ab61f4dd458b7eb7]", "[b8676ca8be2021d6]", "0x20")
+ self.bid64_to_binary64("1", "[ab61f4dd458b7eb7]", "[b8676ca8be2021d6]", "0x20")
+ self.bid64_to_binary64("2", "[ab61f4dd458b7eb7]", "[b8676ca8be2021d5]", "0x20")
+ self.bid64_to_binary64("3", "[ab61f4dd458b7eb7]", "[b8676ca8be2021d5]", "0x20")
+ self.bid64_to_binary64("4", "[ab61f4dd458b7eb7]", "[b8676ca8be2021d6]", "0x20")
+ self.bid64_to_binary64("0", "[ac2b34c69d8a1d85]", "[b9cffce84b6dbad8]", "0x20")
+ self.bid64_to_binary64("1", "[ac2b34c69d8a1d85]", "[b9cffce84b6dbad8]", "0x20")
+ self.bid64_to_binary64("2", "[ac2b34c69d8a1d85]", "[b9cffce84b6dbad7]", "0x20")
+ self.bid64_to_binary64("3", "[ac2b34c69d8a1d85]", "[b9cffce84b6dbad7]", "0x20")
+ self.bid64_to_binary64("4", "[ac2b34c69d8a1d85]", "[b9cffce84b6dbad8]", "0x20")
+ self.bid64_to_binary64("0", "[acf253acb830bcdf]", "[bb18f1fa06dd6a7e]", "0x20")
+ self.bid64_to_binary64("1", "[acf253acb830bcdf]", "[bb18f1fa06dd6a7e]", "0x20")
+ self.bid64_to_binary64("2", "[acf253acb830bcdf]", "[bb18f1fa06dd6a7d]", "0x20")
+ self.bid64_to_binary64("3", "[acf253acb830bcdf]", "[bb18f1fa06dd6a7d]", "0x20")
+ self.bid64_to_binary64("4", "[acf253acb830bcdf]", "[bb18f1fa06dd6a7e]", "0x20")
+ self.bid64_to_binary64("0", "[adba04f802bebb6d]", "[bc60e337464faa08]", "0x20")
+ self.bid64_to_binary64("1", "[adba04f802bebb6d]", "[bc60e337464faa08]", "0x20")
+ self.bid64_to_binary64("2", "[adba04f802bebb6d]", "[bc60e337464faa07]", "0x20")
+ self.bid64_to_binary64("3", "[adba04f802bebb6d]", "[bc60e337464faa07]", "0x20")
+ self.bid64_to_binary64("4", "[adba04f802bebb6d]", "[bc60e337464faa08]", "0x20")
+ self.bid64_to_binary64("0", "[ae81c24cc5617549]", "[bd95c6714def374c]", "0x20")
+ self.bid64_to_binary64("1", "[ae81c24cc5617549]", "[bd95c6714def374d]", "0x20")
+ self.bid64_to_binary64("2", "[ae81c24cc5617549]", "[bd95c6714def374c]", "0x20")
+ self.bid64_to_binary64("3", "[ae81c24cc5617549]", "[bd95c6714def374c]", "0x20")
+ self.bid64_to_binary64("4", "[ae81c24cc5617549]", "[bd95c6714def374c]", "0x20")
+ self.bid64_to_binary64("0", "[af4ad2c1ce56c0eb]", "[befff1d4d6ef6168]", "0x20")
+ self.bid64_to_binary64("1", "[af4ad2c1ce56c0eb]", "[befff1d4d6ef6169]", "0x20")
+ self.bid64_to_binary64("2", "[af4ad2c1ce56c0eb]", "[befff1d4d6ef6168]", "0x20")
+ self.bid64_to_binary64("3", "[af4ad2c1ce56c0eb]", "[befff1d4d6ef6168]", "0x20")
+ self.bid64_to_binary64("4", "[af4ad2c1ce56c0eb]", "[befff1d4d6ef6168]", "0x20")
+ self.bid64_to_binary64("0", "[b0c00000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b0c00000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b0c00000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b0c00000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b0c00000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b1a000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b1a000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b1a000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b1a000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b1a000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b1a27ffffffffffe]", "[c2cfffffffffffe6]", "0x20")
+ self.bid64_to_binary64("1", "[b1a27ffffffffffe]", "[c2cfffffffffffe7]", "0x20")
+ self.bid64_to_binary64("2", "[b1a27ffffffffffe]", "[c2cfffffffffffe6]", "0x20")
+ self.bid64_to_binary64("3", "[b1a27ffffffffffe]", "[c2cfffffffffffe6]", "0x20")
+ self.bid64_to_binary64("4", "[b1a27ffffffffffe]", "[c2cfffffffffffe6]", "0x20")
+ self.bid64_to_binary64("0", "[b1c0000000000001]", "[bff0000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b1c0000000000001]", "[bff0000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b1c0000000000001]", "[bff0000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b1c0000000000001]", "[bff0000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b1c0000000000001]", "[bff0000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b1c0000000000040]", "[c050000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b1c0000000000040]", "[c050000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b1c0000000000040]", "[c050000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b1c0000000000040]", "[c050000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b1c0000000000040]", "[c050000000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b1c00000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b1c00000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b1c00000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b1c00000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b1c00000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b1c00000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid64_to_binary64("1", "[b1c00000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid64_to_binary64("2", "[b1c00000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid64_to_binary64("3", "[b1c00000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid64_to_binary64("4", "[b1c00000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid64_to_binary64("0", "[b26a7c5ac471b3e3]", "[c42ffffffffffe38]", "0x20")
+ self.bid64_to_binary64("1", "[b26a7c5ac471b3e3]", "[c42ffffffffffe39]", "0x20")
+ self.bid64_to_binary64("2", "[b26a7c5ac471b3e3]", "[c42ffffffffffe38]", "0x20")
+ self.bid64_to_binary64("3", "[b26a7c5ac471b3e3]", "[c42ffffffffffe38]", "0x20")
+ self.bid64_to_binary64("4", "[b26a7c5ac471b3e3]", "[c42ffffffffffe38]", "0x20")
+ self.bid64_to_binary64("0", "[b4b79e9a5073c06c]", "[c7ff429cb67eb075]", "0x20")
+ self.bid64_to_binary64("1", "[b4b79e9a5073c06c]", "[c7ff429cb67eb076]", "0x20")
+ self.bid64_to_binary64("2", "[b4b79e9a5073c06c]", "[c7ff429cb67eb075]", "0x20")
+ self.bid64_to_binary64("3", "[b4b79e9a5073c06c]", "[c7ff429cb67eb075]", "0x20")
+ self.bid64_to_binary64("4", "[b4b79e9a5073c06c]", "[c7ff429cb67eb075]", "0x20")
+ self.bid64_to_binary64("0", "[b58406840eaecb9f]", "[c949677825a0c0ea]", "0x20")
+ self.bid64_to_binary64("1", "[b58406840eaecb9f]", "[c949677825a0c0eb]", "0x20")
+ self.bid64_to_binary64("2", "[b58406840eaecb9f]", "[c949677825a0c0ea]", "0x20")
+ self.bid64_to_binary64("3", "[b58406840eaecb9f]", "[c949677825a0c0ea]", "0x20")
+ self.bid64_to_binary64("4", "[b58406840eaecb9f]", "[c949677825a0c0ea]", "0x20")
+ self.bid64_to_binary64("0", "[b6548cddb2fa9a98]", "[caaeebabe0957af3]", "0x20")
+ self.bid64_to_binary64("1", "[b6548cddb2fa9a98]", "[caaeebabe0957af4]", "0x20")
+ self.bid64_to_binary64("2", "[b6548cddb2fa9a98]", "[caaeebabe0957af3]", "0x20")
+ self.bid64_to_binary64("3", "[b6548cddb2fa9a98]", "[caaeebabe0957af3]", "0x20")
+ self.bid64_to_binary64("4", "[b6548cddb2fa9a98]", "[caaeebabe0957af3]", "0x20")
+ self.bid64_to_binary64("0", "[b7096b98447a0285]", "[cbdb08f0094136b0]", "0x20")
+ self.bid64_to_binary64("1", "[b7096b98447a0285]", "[cbdb08f0094136b0]", "0x20")
+ self.bid64_to_binary64("2", "[b7096b98447a0285]", "[cbdb08f0094136af]", "0x20")
+ self.bid64_to_binary64("3", "[b7096b98447a0285]", "[cbdb08f0094136af]", "0x20")
+ self.bid64_to_binary64("4", "[b7096b98447a0285]", "[cbdb08f0094136b0]", "0x20")
+ self.bid64_to_binary64("0", "[b7cd102e2b854b5e]", "[cd21e05cb2a12026]", "0x20")
+ self.bid64_to_binary64("1", "[b7cd102e2b854b5e]", "[cd21e05cb2a12026]", "0x20")
+ self.bid64_to_binary64("2", "[b7cd102e2b854b5e]", "[cd21e05cb2a12025]", "0x20")
+ self.bid64_to_binary64("3", "[b7cd102e2b854b5e]", "[cd21e05cb2a12025]", "0x20")
+ self.bid64_to_binary64("4", "[b7cd102e2b854b5e]", "[cd21e05cb2a12026]", "0x20")
+ self.bid64_to_binary64("0", "[b8a5353c9c2f4cf9]", "[ce80fde34c996086]", "0x20")
+ self.bid64_to_binary64("1", "[b8a5353c9c2f4cf9]", "[ce80fde34c996086]", "0x20")
+ self.bid64_to_binary64("2", "[b8a5353c9c2f4cf9]", "[ce80fde34c996085]", "0x20")
+ self.bid64_to_binary64("3", "[b8a5353c9c2f4cf9]", "[ce80fde34c996085]", "0x20")
+ self.bid64_to_binary64("4", "[b8a5353c9c2f4cf9]", "[ce80fde34c996086]", "0x20")
+ self.bid64_to_binary64("0", "[b973c1c76091d8ec]", "[cfdebca8a16a5cdf]", "0x20")
+ self.bid64_to_binary64("1", "[b973c1c76091d8ec]", "[cfdebca8a16a5ce0]", "0x20")
+ self.bid64_to_binary64("2", "[b973c1c76091d8ec]", "[cfdebca8a16a5cdf]", "0x20")
+ self.bid64_to_binary64("3", "[b973c1c76091d8ec]", "[cfdebca8a16a5cdf]", "0x20")
+ self.bid64_to_binary64("4", "[b973c1c76091d8ec]", "[cfdebca8a16a5cdf]", "0x20")
+ self.bid64_to_binary64("0", "[ba3c7601883ddded]", "[d1251d0f44c0239c]", "0x20")
+ self.bid64_to_binary64("1", "[ba3c7601883ddded]", "[d1251d0f44c0239c]", "0x20")
+ self.bid64_to_binary64("2", "[ba3c7601883ddded]", "[d1251d0f44c0239b]", "0x20")
+ self.bid64_to_binary64("3", "[ba3c7601883ddded]", "[d1251d0f44c0239b]", "0x20")
+ self.bid64_to_binary64("4", "[ba3c7601883ddded]", "[d1251d0f44c0239c]", "0x20")
+ self.bid64_to_binary64("0", "[baf5a3c5467f12c2]", "[d25e9e7f64376799]", "0x20")
+ self.bid64_to_binary64("1", "[baf5a3c5467f12c2]", "[d25e9e7f64376799]", "0x20")
+ self.bid64_to_binary64("2", "[baf5a3c5467f12c2]", "[d25e9e7f64376798]", "0x20")
+ self.bid64_to_binary64("3", "[baf5a3c5467f12c2]", "[d25e9e7f64376798]", "0x20")
+ self.bid64_to_binary64("4", "[baf5a3c5467f12c2]", "[d25e9e7f64376799]", "0x20")
+ self.bid64_to_binary64("0", "[bbc6c81d2c7f1715]", "[d3b6e0c94774af95]", "0x20")
+ self.bid64_to_binary64("1", "[bbc6c81d2c7f1715]", "[d3b6e0c94774af96]", "0x20")
+ self.bid64_to_binary64("2", "[bbc6c81d2c7f1715]", "[d3b6e0c94774af95]", "0x20")
+ self.bid64_to_binary64("3", "[bbc6c81d2c7f1715]", "[d3b6e0c94774af95]", "0x20")
+ self.bid64_to_binary64("4", "[bbc6c81d2c7f1715]", "[d3b6e0c94774af95]", "0x20")
+ self.bid64_to_binary64("0", "[bd5dbd4dc085903b]", "[d656cfc0c80bda54]", "0x20")
+ self.bid64_to_binary64("1", "[bd5dbd4dc085903b]", "[d656cfc0c80bda55]", "0x20")
+ self.bid64_to_binary64("2", "[bd5dbd4dc085903b]", "[d656cfc0c80bda54]", "0x20")
+ self.bid64_to_binary64("3", "[bd5dbd4dc085903b]", "[d656cfc0c80bda54]", "0x20")
+ self.bid64_to_binary64("4", "[bd5dbd4dc085903b]", "[d656cfc0c80bda54]", "0x20")
+ self.bid64_to_binary64("0", "[be05ec7ad2ae9964]", "[d771554acd6fab8f]", "0x20")
+ self.bid64_to_binary64("1", "[be05ec7ad2ae9964]", "[d771554acd6fab8f]", "0x20")
+ self.bid64_to_binary64("2", "[be05ec7ad2ae9964]", "[d771554acd6fab8e]", "0x20")
+ self.bid64_to_binary64("3", "[be05ec7ad2ae9964]", "[d771554acd6fab8e]", "0x20")
+ self.bid64_to_binary64("4", "[be05ec7ad2ae9964]", "[d771554acd6fab8f]", "0x20")
+ self.bid64_to_binary64("0", "[bee488e6d7ba9343]", "[d8dfa2bb0f9ffe0e]", "0x20")
+ self.bid64_to_binary64("1", "[bee488e6d7ba9343]", "[d8dfa2bb0f9ffe0e]", "0x20")
+ self.bid64_to_binary64("2", "[bee488e6d7ba9343]", "[d8dfa2bb0f9ffe0d]", "0x20")
+ self.bid64_to_binary64("3", "[bee488e6d7ba9343]", "[d8dfa2bb0f9ffe0d]", "0x20")
+ self.bid64_to_binary64("4", "[bee488e6d7ba9343]", "[d8dfa2bb0f9ffe0e]", "0x20")
+ self.bid64_to_binary64("0", "[bfbc45fc32b914f1]", "[da478358811cbc95]", "0x20")
+ self.bid64_to_binary64("1", "[bfbc45fc32b914f1]", "[da478358811cbc96]", "0x20")
+ self.bid64_to_binary64("2", "[bfbc45fc32b914f1]", "[da478358811cbc95]", "0x20")
+ self.bid64_to_binary64("3", "[bfbc45fc32b914f1]", "[da478358811cbc95]", "0x20")
+ self.bid64_to_binary64("4", "[bfbc45fc32b914f1]", "[da478358811cbc95]", "0x20")
+ self.bid64_to_binary64("0", "[c0799418eab49a8b]", "[db84495736b8d90e]", "0x20")
+ self.bid64_to_binary64("1", "[c0799418eab49a8b]", "[db84495736b8d90e]", "0x20")
+ self.bid64_to_binary64("2", "[c0799418eab49a8b]", "[db84495736b8d90d]", "0x20")
+ self.bid64_to_binary64("3", "[c0799418eab49a8b]", "[db84495736b8d90d]", "0x20")
+ self.bid64_to_binary64("4", "[c0799418eab49a8b]", "[db84495736b8d90e]", "0x20")
+ self.bid64_to_binary64("0", "[c128bf02d472e2b6]", "[dcaa760b389de2d6]", "0x20")
+ self.bid64_to_binary64("1", "[c128bf02d472e2b6]", "[dcaa760b389de2d7]", "0x20")
+ self.bid64_to_binary64("2", "[c128bf02d472e2b6]", "[dcaa760b389de2d6]", "0x20")
+ self.bid64_to_binary64("3", "[c128bf02d472e2b6]", "[dcaa760b389de2d6]", "0x20")
+ self.bid64_to_binary64("4", "[c128bf02d472e2b6]", "[dcaa760b389de2d6]", "0x20")
+ self.bid64_to_binary64("0", "[c2068426f34f8cfb]", "[de1780695036a67a]", "0x20")
+ self.bid64_to_binary64("1", "[c2068426f34f8cfb]", "[de1780695036a67a]", "0x20")
+ self.bid64_to_binary64("2", "[c2068426f34f8cfb]", "[de1780695036a679]", "0x20")
+ self.bid64_to_binary64("3", "[c2068426f34f8cfb]", "[de1780695036a679]", "0x20")
+ self.bid64_to_binary64("4", "[c2068426f34f8cfb]", "[de1780695036a67a]", "0x20")
+ self.bid64_to_binary64("0", "[c2dd0fcbf97f8d11]", "[df78fd649d43cc3c]", "0x20")
+ self.bid64_to_binary64("1", "[c2dd0fcbf97f8d11]", "[df78fd649d43cc3d]", "0x20")
+ self.bid64_to_binary64("2", "[c2dd0fcbf97f8d11]", "[df78fd649d43cc3c]", "0x20")
+ self.bid64_to_binary64("3", "[c2dd0fcbf97f8d11]", "[df78fd649d43cc3c]", "0x20")
+ self.bid64_to_binary64("4", "[c2dd0fcbf97f8d11]", "[df78fd649d43cc3c]", "0x20")
+ self.bid64_to_binary64("0", "[c44dc38f2c7e06b2]", "[e1e5874bb0e0b994]", "0x20")
+ self.bid64_to_binary64("1", "[c44dc38f2c7e06b2]", "[e1e5874bb0e0b995]", "0x20")
+ self.bid64_to_binary64("2", "[c44dc38f2c7e06b2]", "[e1e5874bb0e0b994]", "0x20")
+ self.bid64_to_binary64("3", "[c44dc38f2c7e06b2]", "[e1e5874bb0e0b994]", "0x20")
+ self.bid64_to_binary64("4", "[c44dc38f2c7e06b2]", "[e1e5874bb0e0b994]", "0x20")
+ self.bid64_to_binary64("0", "[c518e6274e4e7450]", "[e332920f96e7f9ef]", "0x20")
+ self.bid64_to_binary64("1", "[c518e6274e4e7450]", "[e332920f96e7f9f0]", "0x20")
+ self.bid64_to_binary64("2", "[c518e6274e4e7450]", "[e332920f96e7f9ef]", "0x20")
+ self.bid64_to_binary64("3", "[c518e6274e4e7450]", "[e332920f96e7f9ef]", "0x20")
+ self.bid64_to_binary64("4", "[c518e6274e4e7450]", "[e332920f96e7f9ef]", "0x20")
+ self.bid64_to_binary64("0", "[c5fea70395028db9]", "[e4ab40cebf1c8d1f]", "0x20")
+ self.bid64_to_binary64("1", "[c5fea70395028db9]", "[e4ab40cebf1c8d1f]", "0x20")
+ self.bid64_to_binary64("2", "[c5fea70395028db9]", "[e4ab40cebf1c8d1e]", "0x20")
+ self.bid64_to_binary64("3", "[c5fea70395028db9]", "[e4ab40cebf1c8d1e]", "0x20")
+ self.bid64_to_binary64("4", "[c5fea70395028db9]", "[e4ab40cebf1c8d1f]", "0x20")
+ self.bid64_to_binary64("0", "[c6b0f0d091cd4027]", "[e5dcba8083b7b568]", "0x20")
+ self.bid64_to_binary64("1", "[c6b0f0d091cd4027]", "[e5dcba8083b7b569]", "0x20")
+ self.bid64_to_binary64("2", "[c6b0f0d091cd4027]", "[e5dcba8083b7b568]", "0x20")
+ self.bid64_to_binary64("3", "[c6b0f0d091cd4027]", "[e5dcba8083b7b568]", "0x20")
+ self.bid64_to_binary64("4", "[c6b0f0d091cd4027]", "[e5dcba8083b7b568]", "0x20")
+ self.bid64_to_binary64("0", "[c76eab61979e30a6]", "[e717b976fd49b8e9]", "0x20")
+ self.bid64_to_binary64("1", "[c76eab61979e30a6]", "[e717b976fd49b8ea]", "0x20")
+ self.bid64_to_binary64("2", "[c76eab61979e30a6]", "[e717b976fd49b8e9]", "0x20")
+ self.bid64_to_binary64("3", "[c76eab61979e30a6]", "[e717b976fd49b8e9]", "0x20")
+ self.bid64_to_binary64("4", "[c76eab61979e30a6]", "[e717b976fd49b8e9]", "0x20")
+ self.bid64_to_binary64("0", "[c81d925a58adbc4c]", "[e8323e731b1eb118]", "0x20")
+ self.bid64_to_binary64("1", "[c81d925a58adbc4c]", "[e8323e731b1eb119]", "0x20")
+ self.bid64_to_binary64("2", "[c81d925a58adbc4c]", "[e8323e731b1eb118]", "0x20")
+ self.bid64_to_binary64("3", "[c81d925a58adbc4c]", "[e8323e731b1eb118]", "0x20")
+ self.bid64_to_binary64("4", "[c81d925a58adbc4c]", "[e8323e731b1eb118]", "0x20")
+ self.bid64_to_binary64("0", "[c905c8499d093258]", "[e9b543619dddb7ea]", "0x20")
+ self.bid64_to_binary64("1", "[c905c8499d093258]", "[e9b543619dddb7ea]", "0x20")
+ self.bid64_to_binary64("2", "[c905c8499d093258]", "[e9b543619dddb7e9]", "0x20")
+ self.bid64_to_binary64("3", "[c905c8499d093258]", "[e9b543619dddb7e9]", "0x20")
+ self.bid64_to_binary64("4", "[c905c8499d093258]", "[e9b543619dddb7ea]", "0x20")
+ self.bid64_to_binary64("0", "[c9dc43cc45f364e6]", "[eb18c7cbbb955136]", "0x20")
+ self.bid64_to_binary64("1", "[c9dc43cc45f364e6]", "[eb18c7cbbb955137]", "0x20")
+ self.bid64_to_binary64("2", "[c9dc43cc45f364e6]", "[eb18c7cbbb955136]", "0x20")
+ self.bid64_to_binary64("3", "[c9dc43cc45f364e6]", "[eb18c7cbbb955136]", "0x20")
+ self.bid64_to_binary64("4", "[c9dc43cc45f364e6]", "[eb18c7cbbb955136]", "0x20")
+ self.bid64_to_binary64("0", "[ca8dfebc08eb1542]", "[ec47671ccdd1fd0f]", "0x20")
+ self.bid64_to_binary64("1", "[ca8dfebc08eb1542]", "[ec47671ccdd1fd0f]", "0x20")
+ self.bid64_to_binary64("2", "[ca8dfebc08eb1542]", "[ec47671ccdd1fd0e]", "0x20")
+ self.bid64_to_binary64("3", "[ca8dfebc08eb1542]", "[ec47671ccdd1fd0e]", "0x20")
+ self.bid64_to_binary64("4", "[ca8dfebc08eb1542]", "[ec47671ccdd1fd0f]", "0x20")
+ self.bid64_to_binary64("0", "[cb4ccb69c4ab2d3a]", "[ed84677812d3a606]", "0x20")
+ self.bid64_to_binary64("1", "[cb4ccb69c4ab2d3a]", "[ed84677812d3a607]", "0x20")
+ self.bid64_to_binary64("2", "[cb4ccb69c4ab2d3a]", "[ed84677812d3a606]", "0x20")
+ self.bid64_to_binary64("3", "[cb4ccb69c4ab2d3a]", "[ed84677812d3a606]", "0x20")
+ self.bid64_to_binary64("4", "[cb4ccb69c4ab2d3a]", "[ed84677812d3a606]", "0x20")
+ self.bid64_to_binary64("0", "[ccfbdf142478c707]", "[f04944072c923fc2]", "0x20")
+ self.bid64_to_binary64("1", "[ccfbdf142478c707]", "[f04944072c923fc3]", "0x20")
+ self.bid64_to_binary64("2", "[ccfbdf142478c707]", "[f04944072c923fc2]", "0x20")
+ self.bid64_to_binary64("3", "[ccfbdf142478c707]", "[f04944072c923fc2]", "0x20")
+ self.bid64_to_binary64("4", "[ccfbdf142478c707]", "[f04944072c923fc2]", "0x20")
+ self.bid64_to_binary64("0", "[cdac4e5df2ccc036]", "[f17547166a3a2b0f]", "0x20")
+ self.bid64_to_binary64("1", "[cdac4e5df2ccc036]", "[f17547166a3a2b10]", "0x20")
+ self.bid64_to_binary64("2", "[cdac4e5df2ccc036]", "[f17547166a3a2b0f]", "0x20")
+ self.bid64_to_binary64("3", "[cdac4e5df2ccc036]", "[f17547166a3a2b0f]", "0x20")
+ self.bid64_to_binary64("4", "[cdac4e5df2ccc036]", "[f17547166a3a2b0f]", "0x20")
+ self.bid64_to_binary64("0", "[ce86c82e21e4b3d5]", "[f2dbf51de62602b9]", "0x20")
+ self.bid64_to_binary64("1", "[ce86c82e21e4b3d5]", "[f2dbf51de62602b9]", "0x20")
+ self.bid64_to_binary64("2", "[ce86c82e21e4b3d5]", "[f2dbf51de62602b8]", "0x20")
+ self.bid64_to_binary64("3", "[ce86c82e21e4b3d5]", "[f2dbf51de62602b8]", "0x20")
+ self.bid64_to_binary64("4", "[ce86c82e21e4b3d5]", "[f2dbf51de62602b9]", "0x20")
+ self.bid64_to_binary64("0", "[cf4e473f6e39be15]", "[f42c110e96414eec]", "0x20")
+ self.bid64_to_binary64("1", "[cf4e473f6e39be15]", "[f42c110e96414eec]", "0x20")
+ self.bid64_to_binary64("2", "[cf4e473f6e39be15]", "[f42c110e96414eeb]", "0x20")
+ self.bid64_to_binary64("3", "[cf4e473f6e39be15]", "[f42c110e96414eeb]", "0x20")
+ self.bid64_to_binary64("4", "[cf4e473f6e39be15]", "[f42c110e96414eec]", "0x20")
+ self.bid64_to_binary64("0", "[d01ffb94728ec1b3]", "[f57dfa4dfde9f70e]", "0x20")
+ self.bid64_to_binary64("1", "[d01ffb94728ec1b3]", "[f57dfa4dfde9f70e]", "0x20")
+ self.bid64_to_binary64("2", "[d01ffb94728ec1b3]", "[f57dfa4dfde9f70d]", "0x20")
+ self.bid64_to_binary64("3", "[d01ffb94728ec1b3]", "[f57dfa4dfde9f70d]", "0x20")
+ self.bid64_to_binary64("4", "[d01ffb94728ec1b3]", "[f57dfa4dfde9f70e]", "0x20")
+ self.bid64_to_binary64("0", "[d0c937c7233ad9ca]", "[f6a07ac23fca339c]", "0x20")
+ self.bid64_to_binary64("1", "[d0c937c7233ad9ca]", "[f6a07ac23fca339c]", "0x20")
+ self.bid64_to_binary64("2", "[d0c937c7233ad9ca]", "[f6a07ac23fca339b]", "0x20")
+ self.bid64_to_binary64("3", "[d0c937c7233ad9ca]", "[f6a07ac23fca339b]", "0x20")
+ self.bid64_to_binary64("4", "[d0c937c7233ad9ca]", "[f6a07ac23fca339c]", "0x20")
+ self.bid64_to_binary64("0", "[d18edb73058f955a]", "[f7e954b88b26687c]", "0x20")
+ self.bid64_to_binary64("1", "[d18edb73058f955a]", "[f7e954b88b26687d]", "0x20")
+ self.bid64_to_binary64("2", "[d18edb73058f955a]", "[f7e954b88b26687c]", "0x20")
+ self.bid64_to_binary64("3", "[d18edb73058f955a]", "[f7e954b88b26687c]", "0x20")
+ self.bid64_to_binary64("4", "[d18edb73058f955a]", "[f7e954b88b26687c]", "0x20")
+ self.bid64_to_binary64("0", "[d27bcc60266a98e1]", "[f96c3fe74995d448]", "0x20")
+ self.bid64_to_binary64("1", "[d27bcc60266a98e1]", "[f96c3fe74995d448]", "0x20")
+ self.bid64_to_binary64("2", "[d27bcc60266a98e1]", "[f96c3fe74995d447]", "0x20")
+ self.bid64_to_binary64("3", "[d27bcc60266a98e1]", "[f96c3fe74995d447]", "0x20")
+ self.bid64_to_binary64("4", "[d27bcc60266a98e1]", "[f96c3fe74995d448]", "0x20")
+ self.bid64_to_binary64("0", "[d33cf2a660b312d7]", "[faac0e1413d40908]", "0x20")
+ self.bid64_to_binary64("1", "[d33cf2a660b312d7]", "[faac0e1413d40908]", "0x20")
+ self.bid64_to_binary64("2", "[d33cf2a660b312d7]", "[faac0e1413d40907]", "0x20")
+ self.bid64_to_binary64("3", "[d33cf2a660b312d7]", "[faac0e1413d40907]", "0x20")
+ self.bid64_to_binary64("4", "[d33cf2a660b312d7]", "[faac0e1413d40908]", "0x20")
+ self.bid64_to_binary64("0", "[d3ef589c11503ae2]", "[fbdc5e1c16c19d25]", "0x20")
+ self.bid64_to_binary64("1", "[d3ef589c11503ae2]", "[fbdc5e1c16c19d26]", "0x20")
+ self.bid64_to_binary64("2", "[d3ef589c11503ae2]", "[fbdc5e1c16c19d25]", "0x20")
+ self.bid64_to_binary64("3", "[d3ef589c11503ae2]", "[fbdc5e1c16c19d25]", "0x20")
+ self.bid64_to_binary64("4", "[d3ef589c11503ae2]", "[fbdc5e1c16c19d25]", "0x20")
+ self.bid64_to_binary64("0", "[d4ac885821cb3e74]", "[fd1617f1418c7316]", "0x20")
+ self.bid64_to_binary64("1", "[d4ac885821cb3e74]", "[fd1617f1418c7317]", "0x20")
+ self.bid64_to_binary64("2", "[d4ac885821cb3e74]", "[fd1617f1418c7316]", "0x20")
+ self.bid64_to_binary64("3", "[d4ac885821cb3e74]", "[fd1617f1418c7316]", "0x20")
+ self.bid64_to_binary64("4", "[d4ac885821cb3e74]", "[fd1617f1418c7316]", "0x20")
+ self.bid64_to_binary64("0", "[d59ba4e78c319775]", "[fe9d0c2361d7af4b]", "0x20")
+ self.bid64_to_binary64("1", "[d59ba4e78c319775]", "[fe9d0c2361d7af4c]", "0x20")
+ self.bid64_to_binary64("2", "[d59ba4e78c319775]", "[fe9d0c2361d7af4b]", "0x20")
+ self.bid64_to_binary64("3", "[d59ba4e78c319775]", "[fe9d0c2361d7af4b]", "0x20")
+ self.bid64_to_binary64("4", "[d59ba4e78c319775]", "[fe9d0c2361d7af4b]", "0x20")
+ self.bid64_to_binary64("0", "[d66662fe0cb7f7eb]", "[ffeffffffffffffb]", "0x20")
+ self.bid64_to_binary64("1", "[d66662fe0cb7f7eb]", "[ffeffffffffffffc]", "0x20")
+ self.bid64_to_binary64("2", "[d66662fe0cb7f7eb]", "[ffeffffffffffffb]", "0x20")
+ self.bid64_to_binary64("3", "[d66662fe0cb7f7eb]", "[ffeffffffffffffb]", "0x20")
+ self.bid64_to_binary64("4", "[d66662fe0cb7f7eb]", "[ffeffffffffffffb]", "0x20")
+ self.bid64_to_binary64("0", "[d66662fe0cb7f7ec]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("1", "[d66662fe0cb7f7ec]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("2", "[d66662fe0cb7f7ec]", "[ffefffffffffffff]", "0x28")
+ self.bid64_to_binary64("3", "[d66662fe0cb7f7ec]", "[ffefffffffffffff]", "0x28")
+ self.bid64_to_binary64("4", "[d66662fe0cb7f7ec]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("0", "[e4f8cd51d574750b]", "[91a1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("1", "[e4f8cd51d574750b]", "[91a1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("2", "[e4f8cd51d574750b]", "[91a1167cf9686bf5]", "0x20")
+ self.bid64_to_binary64("3", "[e4f8cd51d574750b]", "[91a1167cf9686bf5]", "0x20")
+ self.bid64_to_binary64("4", "[e4f8cd51d574750b]", "[91a1167cf9686bf6]", "0x20")
+ self.bid64_to_binary64("0", "[e6ba5bcff2af15e5]", "[9d423fca433dcbe4]", "0x20")
+ self.bid64_to_binary64("1", "[e6ba5bcff2af15e5]", "[9d423fca433dcbe4]", "0x20")
+ self.bid64_to_binary64("2", "[e6ba5bcff2af15e5]", "[9d423fca433dcbe3]", "0x20")
+ self.bid64_to_binary64("3", "[e6ba5bcff2af15e5]", "[9d423fca433dcbe3]", "0x20")
+ self.bid64_to_binary64("4", "[e6ba5bcff2af15e5]", "[9d423fca433dcbe4]", "0x20")
+ self.bid64_to_binary64("0", "[e7825427b548dfc7]", "[a272da500205778a]", "0x20")
+ self.bid64_to_binary64("1", "[e7825427b548dfc7]", "[a272da500205778b]", "0x20")
+ self.bid64_to_binary64("2", "[e7825427b548dfc7]", "[a272da500205778a]", "0x20")
+ self.bid64_to_binary64("3", "[e7825427b548dfc7]", "[a272da500205778a]", "0x20")
+ self.bid64_to_binary64("4", "[e7825427b548dfc7]", "[a272da500205778a]", "0x20")
+ self.bid64_to_binary64("0", "[e8195b108182b498]", "[a663dc6227de9148]", "0x20")
+ self.bid64_to_binary64("1", "[e8195b108182b498]", "[a663dc6227de9149]", "0x20")
+ self.bid64_to_binary64("2", "[e8195b108182b498]", "[a663dc6227de9148]", "0x20")
+ self.bid64_to_binary64("3", "[e8195b108182b498]", "[a663dc6227de9148]", "0x20")
+ self.bid64_to_binary64("4", "[e8195b108182b498]", "[a663dc6227de9148]", "0x20")
+ self.bid64_to_binary64("0", "[e912bc7cefdf17da]", "[acd46518c19d90ea]", "0x20")
+ self.bid64_to_binary64("1", "[e912bc7cefdf17da]", "[acd46518c19d90eb]", "0x20")
+ self.bid64_to_binary64("2", "[e912bc7cefdf17da]", "[acd46518c19d90ea]", "0x20")
+ self.bid64_to_binary64("3", "[e912bc7cefdf17da]", "[acd46518c19d90ea]", "0x20")
+ self.bid64_to_binary64("4", "[e912bc7cefdf17da]", "[acd46518c19d90ea]", "0x20")
+ self.bid64_to_binary64("0", "[ec0386f1dcd9db15]", "[c058ffff98a0532c]", "0x20")
+ self.bid64_to_binary64("1", "[ec0386f1dcd9db15]", "[c058ffff98a0532d]", "0x20")
+ self.bid64_to_binary64("2", "[ec0386f1dcd9db15]", "[c058ffff98a0532c]", "0x20")
+ self.bid64_to_binary64("3", "[ec0386f1dcd9db15]", "[c058ffff98a0532c]", "0x20")
+ self.bid64_to_binary64("4", "[ec0386f1dcd9db15]", "[c058ffff98a0532c]", "0x20")
+ self.bid64_to_binary64("0", "[ec3386f26fbe2f2b]", "[c197d783fffe1c42]", "0x20")
+ self.bid64_to_binary64("1", "[ec3386f26fbe2f2b]", "[c197d783fffe1c42]", "0x20")
+ self.bid64_to_binary64("2", "[ec3386f26fbe2f2b]", "[c197d783fffe1c41]", "0x20")
+ self.bid64_to_binary64("3", "[ec3386f26fbe2f2b]", "[c197d783fffe1c41]", "0x20")
+ self.bid64_to_binary64("4", "[ec3386f26fbe2f2b]", "[c197d783fffe1c42]", "0x20")
+ self.bid64_to_binary64("0", "[eccb86f26f6ec68b]", "[c589d971e4c2b083]", "0x20")
+ self.bid64_to_binary64("1", "[eccb86f26f6ec68b]", "[c589d971e4c2b083]", "0x20")
+ self.bid64_to_binary64("2", "[eccb86f26f6ec68b]", "[c589d971e4c2b082]", "0x20")
+ self.bid64_to_binary64("3", "[eccb86f26f6ec68b]", "[c589d971e4c2b082]", "0x20")
+ self.bid64_to_binary64("4", "[eccb86f26f6ec68b]", "[c589d971e4c2b083]", "0x20")
+ self.bid64_to_binary64("0", "[ecfb86261a3adff3]", "[c6c8a6555940ba70]", "0x20")
+ self.bid64_to_binary64("1", "[ecfb86261a3adff3]", "[c6c8a6555940ba70]", "0x20")
+ self.bid64_to_binary64("2", "[ecfb86261a3adff3]", "[c6c8a6555940ba6f]", "0x20")
+ self.bid64_to_binary64("3", "[ecfb86261a3adff3]", "[c6c8a6555940ba6f]", "0x20")
+ self.bid64_to_binary64("4", "[ecfb86261a3adff3]", "[c6c8a6555940ba70]", "0x20")
+ self.bid64_to_binary64("0", "[ef21db37ad7fa007]", "[d51b3b180c0ae026]", "0x20")
+ self.bid64_to_binary64("1", "[ef21db37ad7fa007]", "[d51b3b180c0ae027]", "0x20")
+ self.bid64_to_binary64("2", "[ef21db37ad7fa007]", "[d51b3b180c0ae026]", "0x20")
+ self.bid64_to_binary64("3", "[ef21db37ad7fa007]", "[d51b3b180c0ae026]", "0x20")
+ self.bid64_to_binary64("4", "[ef21db37ad7fa007]", "[d51b3b180c0ae026]", "0x20")
+ self.bid64_to_binary64("0", "[f0dae3657476a586]", "[e086e36058bfb9a0]", "0x20")
+ self.bid64_to_binary64("1", "[f0dae3657476a586]", "[e086e36058bfb9a1]", "0x20")
+ self.bid64_to_binary64("2", "[f0dae3657476a586]", "[e086e36058bfb9a0]", "0x20")
+ self.bid64_to_binary64("3", "[f0dae3657476a586]", "[e086e36058bfb9a0]", "0x20")
+ self.bid64_to_binary64("4", "[f0dae3657476a586]", "[e086e36058bfb9a0]", "0x20")
+ self.bid64_to_binary64("0", "[f30920d09ebfd32f]", "[ef0f7d6721f7f144]", "0x20")
+ self.bid64_to_binary64("1", "[f30920d09ebfd32f]", "[ef0f7d6721f7f144]", "0x20")
+ self.bid64_to_binary64("2", "[f30920d09ebfd32f]", "[ef0f7d6721f7f143]", "0x20")
+ self.bid64_to_binary64("3", "[f30920d09ebfd32f]", "[ef0f7d6721f7f143]", "0x20")
+ self.bid64_to_binary64("4", "[f30920d09ebfd32f]", "[ef0f7d6721f7f144]", "0x20")
+ self.bid64_to_binary64("0", "[f7fb86f26fc0ffff]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("1", "[f7fb86f26fc0ffff]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("2", "[f7fb86f26fc0ffff]", "[ffefffffffffffff]", "0x28")
+ self.bid64_to_binary64("3", "[f7fb86f26fc0ffff]", "[ffefffffffffffff]", "0x28")
+ self.bid64_to_binary64("4", "[f7fb86f26fc0ffff]", "[fff0000000000000]", "0x28")
+ self.bid64_to_binary64("0", "[f800000000000000]", "[fff0000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[f800000000000000]", "[fff0000000000000]", "0x00")
+ self.bid64_to_binary64("2", "[f800000000000000]", "[fff0000000000000]", "0x00")
+ self.bid64_to_binary64("3", "[f800000000000000]", "[fff0000000000000]", "0x00")
+ self.bid64_to_binary64("4", "[f800000000000000]", "[fff0000000000000]", "0x00")
+ self.bid64_to_binary64("1", "[8967e7b160ef71c1]", "[8010000000000000]", "0x30")
+ }
+
+ private func bid64_to_binary64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDouble(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Double(arg0, rounding: rounding, status: &status)
+ self.assertBinaryFloatingPoint(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_binary80() {
+ self.bid64_to_binary80("0", "[0000000000000001]", "[3ad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("0", "[0000000000000001]", "[3AD4EA5DA4EC2A406827]", "20")
+ self.bid64_to_binary80("0", "[002386F26FC10000]", "[3B0A81299BED14612869]", "20")
+ self.bid64_to_binary80("0", "[01e0000000000001]", "[3b06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("0", "[0200000000000001]", "[3b0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("0", "[02017304a7852948]", "[3b3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("0", "[05e989eed46f5407]", "[3ba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("0", "[0755F0E047737E1E]", "[3BCA8000000000000127]", "20")
+ self.bid64_to_binary80("0", "[0755F0E1B78F093B]", "[3BCA800008637BD05C07]", "20")
+ self.bid64_to_binary80("0", "[0768C6C01C9498D9]", "[3BCC8000000000000412]", "20")
+ self.bid64_to_binary80("0", "[0768C6C0AFD2D07E]", "[3BCC800008637BD05C07]", "20")
+ self.bid64_to_binary80("0", "[076D2A202ADEE545]", "[3BCCBFFFFFFFFFFFFED0]", "20")
+ self.bid64_to_binary80("0", "[07718D80392931B1]", "[3BCCFFFFFFFFFFFFF98F]", "20")
+ self.bid64_to_binary80("0", "[07718D815FA5A0FC]", "[3BCD800008637BD05C07]", "20")
+ self.bid64_to_binary80("0", "[077A544055BDCA8A]", "[3BCDBFFFFFFFFFFFFED0]", "20")
+ self.bid64_to_binary80("0", "[07C8FCAC257558EE]", "[3BD5FFFFFFFFFFFFF747]", "20")
+ self.bid64_to_binary80("0", "[07C8FCACBC3C39D9]", "[3BD6800008637BD05AC6]", "20")
+ self.bid64_to_binary80("0", "[09ca6ac1bb258907]", "[3c0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("0", "[11a16a7d8e584721]", "[3cd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("0", "[1584a79bc956ff3c]", "[3d42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("0", "[19837fa0bfc30bed]", "[3daca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("0", "[1d4d4cceef639565]", "[3e11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("0", "[21603e0f9904bfbf]", "[3e79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("0", "[25410fc0828b9660]", "[3ee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("0", "[2A263917877CEC05]", "[3F66FFFFFFFFFFFFF212]", "20")
+ self.bid64_to_binary80("0", "[2A263917EFE491AE]", "[3F67800008637BD06037]", "20")
+ self.bid64_to_binary80("0", "[2A38E45E1DF3B015]", "[3F68FFFFFFFFFFFFFC5A]", "20")
+ self.bid64_to_binary80("0", "[2A38E45FBF9246B7]", "[3F69800008637BD05B13]", "20")
+ self.bid64_to_binary80("0", "[2A43BBDAEAE48D9D]", "[3F69C000000000000A1F]", "20")
+ self.bid64_to_binary80("0", "[2A44FA793930BCD1]", "[3F69FFFFFFFFFFFFFC5A]", "20")
+ self.bid64_to_binary80("0", "[2A44FA798CB6DAF1]", "[3F6A800008637BD050CA]", "20")
+ self.bid64_to_binary80("0", "[2A4777B5D5C91B3A]", "[3F6AC000000000000A1F]", "20")
+ self.bid64_to_binary80("0", "[2A997D4DF19D6057]", "[3F72FFFFFFFFFFFFFBF4]", "20")
+ self.bid64_to_binary80("0", "[2A997D4F9D41D1A1]", "[3F73800008637BD05C3D]", "20")
+ self.bid64_to_binary80("0", "[2cea34f9eb3fbe09]", "[3fb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("0", "[3040000000000001]", "[3FD78CBCCC096F5088CC]", "20")
+ self.bid64_to_binary80("0", "[30400001ffffffff]", "[3FF88CBCCC0928F222C7]", "20")
+ self.bid64_to_binary80("0", "[30400003ffffffff]", "[3FF98CBCCC094C2155CA]", "20")
+ self.bid64_to_binary80("0", "[30400007ffffffff]", "[3FFA8CBCCC095DB8EF4B]", "20")
+ self.bid64_to_binary80("0", "[3040000fffffffff]", "[3FFB8CBCCC096684BC0B]", "20")
+ self.bid64_to_binary80("0", "[3041ffffffffffff]", "[40088CBCCC096F50426E]", "20")
+ self.bid64_to_binary80("0", "[304fffffffffffff]", "[400B8CBCCC096F508000]", "20")
+ self.bid64_to_binary80("0", "[30c00000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[30e4c4b3ffff3dd0]", "[4019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("0", "[31a000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[31c0000000000000]", "[00000000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[31c0000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[31c0000000000040]", "[40058000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[31c00000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[31c00000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[34AC13C157F0C34F]", "[407EFFBE76C8B43952C5]", "20")
+ self.bid64_to_binary80("0", "[34B22246700E05BD]", "[407FC000000000000082]", "20")
+ self.bid64_to_binary80("0", "[34C570AEBB37681F]", "[40818FFFFFFFFFFFFDBC]", "20")
+ self.bid64_to_binary80("0", "[34d356548405c99f]", "[4082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("0", "[38b6d99681faa149]", "[40ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("0", "[3c89533dd7d11516]", "[414ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("0", "[4078dbd18832f14c]", "[41b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("0", "[4451c3505acd6bf6]", "[421ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("0", "[4c2c78c3a2c70833]", "[42efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("0", "[4ff5cdff60c5392c]", "[435482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("0", "[5404a46ec58033d7]", "[43bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("0", "[5666615B7DDB9FDE]", "[43FEFFBE76C8B439686D]", "20")
+ self.bid64_to_binary80("0", "[5669947D1313F3E2]", "[43FFC0000000000002C6]", "20")
+ self.bid64_to_binary80("0", "[567CBD77393BDBA6]", "[44019000000000000215]", "20")
+ self.bid64_to_binary80("0", "[57fca12a33a33b13]", "[44298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("0", "[63691b9818a0a8c3]", "[3c74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("0", "[6a437445d0d032f1]", "[3f4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("0", "[6C7386F26FC10000]", "[00000000000000000000]", "00")
+ self.bid64_to_binary80("0", "[7212e93d1248086f]", "[428a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("0", "[76f10688c9f158bb]", "[449094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("0", "[77fb86f26fc0ffff]", "[44fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("0", "[77FB86F26FC0FFFF]", "[44FDF5F75BD4DAB6CDB0]", "20")
+ self.bid64_to_binary80("0", "[77fb86f26fc10000]", "[00000000000000000000]", "00")
+ self.bid64_to_binary80("0", "[7800000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[7c00000000000000]", "[7FFFC000000000000000]", "00")
+ self.bid64_to_binary80("0", "[7c038D7EA4C67FFF]", "[7FFFF8D7EA4C67FFF000]", "00")
+ self.bid64_to_binary80("0", "[7c038D7EA4C68000]", "[7FFFC000000000000000]", "00")
+ self.bid64_to_binary80("0", "[7e00000000000000]", "[7FFFC000000000000000]", "01")
+ self.bid64_to_binary80("0", "[7e038D7EA4C67FFF]", "[7FFFF8D7EA4C67FFF000]", "01")
+ self.bid64_to_binary80("0", "[7e038D7EA4C68000]", "[7FFFC000000000000000]", "01")
+ self.bid64_to_binary80("0", "[8000000000000001]", "[bad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("0", "[81e0000000000001]", "[bb06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("0", "[8200000000000001]", "[bb0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("0", "[82017304a7852948]", "[bb3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("0", "[85e989eed46f5407]", "[bba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("0", "[89ca6ac1bb258907]", "[bc0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("0", "[91a16a7d8e584721]", "[bcd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("0", "[9584a79bc956ff3c]", "[bd42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("0", "[99837fa0bfc30bed]", "[bdaca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("0", "[9d4d4cceef639565]", "[be11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("0", "[a1603e0f9904bfbf]", "[be79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("0", "[a5410fc0828b9660]", "[bee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("0", "[acea34f9eb3fbe09]", "[bfb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("0", "[b0c00000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b0e4c4b3ffff3dd0]", "[c019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("0", "[b1a000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b1c0000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b1c0000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b1c00000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b1c00000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b4d356548405c99f]", "[c082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("0", "[b8b6d99681faa149]", "[c0ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("0", "[bc89533dd7d11516]", "[c14ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("0", "[c078dbd18832f14c]", "[c1b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("0", "[c451c3505acd6bf6]", "[c21ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("0", "[cc2c78c3a2c70833]", "[c2efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("0", "[cff5cdff60c5392c]", "[c35482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("0", "[d404a46ec58033d7]", "[c3bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("0", "[d7fca12a33a33b13]", "[c4298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("0", "[e3691b9818a0a8c3]", "[bc74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("0", "[ea437445d0d032f1]", "[bf4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("0", "[f212e93d1248086f]", "[c28a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("0", "[f6f10688c9f158bb]", "[c49094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("0", "[f7fb86f26fc0ffff]", "[c4fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("0", "[f800000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[0000000000000001]", "[3ad4ea5da4ec2a406826]", "0x20")
+ self.bid64_to_binary80("1", "[01e0000000000001]", "[3b06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("1", "[0200000000000001]", "[3b0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("1", "[02017304a7852948]", "[3b3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("1", "[05e989eed46f5407]", "[3ba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("1", "[09ca6ac1bb258907]", "[3c0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("1", "[11a16a7d8e584721]", "[3cd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("1", "[1584a79bc956ff3c]", "[3d42b06ddd5e07671150]", "0x20")
+ self.bid64_to_binary80("1", "[19837fa0bfc30bed]", "[3daca373312d310ae54a]", "0x20")
+ self.bid64_to_binary80("1", "[1d4d4cceef639565]", "[3e11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("1", "[21603e0f9904bfbf]", "[3e79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("1", "[25410fc0828b9660]", "[3ee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("1", "[2cea34f9eb3fbe09]", "[3fb0de49955e01875987]", "0x20")
+ self.bid64_to_binary80("1", "[30c00000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[30e4c4b3ffff3dd0]", "[4019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("1", "[31a000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[31c0000000000000]", "[00000000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[31c0000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[31c0000000000040]", "[40058000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[31c00000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[31c00000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[34d356548405c99f]", "[4082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("1", "[38b6d99681faa149]", "[40ea951a579a230f71c4]", "0x20")
+ self.bid64_to_binary80("1", "[3c89533dd7d11516]", "[414ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("1", "[4078dbd18832f14c]", "[41b89db980c0d09e3935]", "0x20")
+ self.bid64_to_binary80("1", "[4451c3505acd6bf6]", "[421ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("1", "[4c2c78c3a2c70833]", "[42efbdade593f50e030f]", "0x20")
+ self.bid64_to_binary80("1", "[4ff5cdff60c5392c]", "[435482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("1", "[5404a46ec58033d7]", "[43bfaba0cf3dccace590]", "0x20")
+ self.bid64_to_binary80("1", "[57fca12a33a33b13]", "[44298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("1", "[63691b9818a0a8c3]", "[3c74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("1", "[6a437445d0d032f1]", "[3f4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("1", "[7212e93d1248086f]", "[428a869cd892f915530c]", "0x20")
+ self.bid64_to_binary80("1", "[76f10688c9f158bb]", "[449094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("1", "[77fb86f26fc0ffff]", "[44fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("1", "[7800000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[8000000000000001]", "[bad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("1", "[81e0000000000001]", "[bb06d0289ce2dd61ca6e]", "0x20")
+ self.bid64_to_binary80("1", "[8200000000000001]", "[bb0a8219620dca5d1e85]", "0x20")
+ self.bid64_to_binary80("1", "[82017304a7852948]", "[bb3abc8d26a1bf9db4b4]", "0x20")
+ self.bid64_to_binary80("1", "[85e989eed46f5407]", "[bba498f6bc430c01f8eb]", "0x20")
+ self.bid64_to_binary80("1", "[89ca6ac1bb258907]", "[bc0ba4b88f8d7381c89d]", "0x20")
+ self.bid64_to_binary80("1", "[91a16a7d8e584721]", "[bcd9d9b6564b6799fd0a]", "0x20")
+ self.bid64_to_binary80("1", "[9584a79bc956ff3c]", "[bd42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("1", "[99837fa0bfc30bed]", "[bdaca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("1", "[9d4d4cceef639565]", "[be11f516476cc975b501]", "0x20")
+ self.bid64_to_binary80("1", "[a1603e0f9904bfbf]", "[be79dc415b94e220b278]", "0x20")
+ self.bid64_to_binary80("1", "[a5410fc0828b9660]", "[bee2edc1826fbc946764]", "0x20")
+ self.bid64_to_binary80("1", "[acea34f9eb3fbe09]", "[bfb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("1", "[b0c00000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b0e4c4b3ffff3dd0]", "[c019ffffffffd746a353]", "0x20")
+ self.bid64_to_binary80("1", "[b1a000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b1c0000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b1c0000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b1c00000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b1c00000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b4d356548405c99f]", "[c082ffed12e96ae3e1f3]", "0x20")
+ self.bid64_to_binary80("1", "[b8b6d99681faa149]", "[c0ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("1", "[bc89533dd7d11516]", "[c14ff00251426b9d3861]", "0x20")
+ self.bid64_to_binary80("1", "[c078dbd18832f14c]", "[c1b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("1", "[c451c3505acd6bf6]", "[c21ede44a069f8e2bb45]", "0x20")
+ self.bid64_to_binary80("1", "[cc2c78c3a2c70833]", "[c2efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("1", "[cff5cdff60c5392c]", "[c35482cd3744491323e5]", "0x20")
+ self.bid64_to_binary80("1", "[d404a46ec58033d7]", "[c3bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("1", "[d7fca12a33a33b13]", "[c4298276a5a2da731bca]", "0x20")
+ self.bid64_to_binary80("1", "[e3691b9818a0a8c3]", "[bc74810eee33a5ee7423]", "0x20")
+ self.bid64_to_binary80("1", "[ea437445d0d032f1]", "[bf4bc3c1b4a5e472b6c6]", "0x20")
+ self.bid64_to_binary80("1", "[f212e93d1248086f]", "[c28a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("1", "[f6f10688c9f158bb]", "[c49094667517a8a1048b]", "0x20")
+ self.bid64_to_binary80("1", "[f7fb86f26fc0ffff]", "[c4fdf5f75bd4dab6cdb1]", "0x20")
+ self.bid64_to_binary80("1", "[f800000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[0000000000000001]", "[3ad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("2", "[01e0000000000001]", "[3b06d0289ce2dd61ca6e]", "0x20")
+ self.bid64_to_binary80("2", "[0200000000000001]", "[3b0a8219620dca5d1e85]", "0x20")
+ self.bid64_to_binary80("2", "[02017304a7852948]", "[3b3abc8d26a1bf9db4b4]", "0x20")
+ self.bid64_to_binary80("2", "[05e989eed46f5407]", "[3ba498f6bc430c01f8eb]", "0x20")
+ self.bid64_to_binary80("2", "[09ca6ac1bb258907]", "[3c0ba4b88f8d7381c89d]", "0x20")
+ self.bid64_to_binary80("2", "[11a16a7d8e584721]", "[3cd9d9b6564b6799fd0a]", "0x20")
+ self.bid64_to_binary80("2", "[1584a79bc956ff3c]", "[3d42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("2", "[19837fa0bfc30bed]", "[3daca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("2", "[1d4d4cceef639565]", "[3e11f516476cc975b501]", "0x20")
+ self.bid64_to_binary80("2", "[21603e0f9904bfbf]", "[3e79dc415b94e220b278]", "0x20")
+ self.bid64_to_binary80("2", "[25410fc0828b9660]", "[3ee2edc1826fbc946764]", "0x20")
+ self.bid64_to_binary80("2", "[2cea34f9eb3fbe09]", "[3fb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("2", "[30c00000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[30e4c4b3ffff3dd0]", "[4019ffffffffd746a353]", "0x20")
+ self.bid64_to_binary80("2", "[31a000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[31c0000000000000]", "[00000000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[31c0000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[31c0000000000040]", "[40058000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[31c00000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[31c00000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[34d356548405c99f]", "[4082ffed12e96ae3e1f3]", "0x20")
+ self.bid64_to_binary80("2", "[38b6d99681faa149]", "[40ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("2", "[3c89533dd7d11516]", "[414ff00251426b9d3861]", "0x20")
+ self.bid64_to_binary80("2", "[4078dbd18832f14c]", "[41b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("2", "[4451c3505acd6bf6]", "[421ede44a069f8e2bb45]", "0x20")
+ self.bid64_to_binary80("2", "[4c2c78c3a2c70833]", "[42efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("2", "[4ff5cdff60c5392c]", "[435482cd3744491323e5]", "0x20")
+ self.bid64_to_binary80("2", "[5404a46ec58033d7]", "[43bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("2", "[57fca12a33a33b13]", "[44298276a5a2da731bca]", "0x20")
+ self.bid64_to_binary80("2", "[63691b9818a0a8c3]", "[3c74810eee33a5ee7423]", "0x20")
+ self.bid64_to_binary80("2", "[6a437445d0d032f1]", "[3f4bc3c1b4a5e472b6c6]", "0x20")
+ self.bid64_to_binary80("2", "[7212e93d1248086f]", "[428a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("2", "[76f10688c9f158bb]", "[449094667517a8a1048b]", "0x20")
+ self.bid64_to_binary80("2", "[77fb86f26fc0ffff]", "[44fdf5f75bd4dab6cdb1]", "0x20")
+ self.bid64_to_binary80("2", "[7800000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[8000000000000001]", "[bad4ea5da4ec2a406826]", "0x20")
+ self.bid64_to_binary80("2", "[81e0000000000001]", "[bb06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("2", "[8200000000000001]", "[bb0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("2", "[82017304a7852948]", "[bb3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("2", "[85e989eed46f5407]", "[bba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("2", "[89ca6ac1bb258907]", "[bc0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("2", "[91a16a7d8e584721]", "[bcd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("2", "[9584a79bc956ff3c]", "[bd42b06ddd5e07671150]", "0x20")
+ self.bid64_to_binary80("2", "[99837fa0bfc30bed]", "[bdaca373312d310ae54a]", "0x20")
+ self.bid64_to_binary80("2", "[9d4d4cceef639565]", "[be11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("2", "[a1603e0f9904bfbf]", "[be79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("2", "[a5410fc0828b9660]", "[bee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("2", "[acea34f9eb3fbe09]", "[bfb0de49955e01875987]", "0x20")
+ self.bid64_to_binary80("2", "[b0c00000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b0e4c4b3ffff3dd0]", "[c019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("2", "[b1a000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b1c0000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b1c0000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b1c00000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b1c00000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b4d356548405c99f]", "[c082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("2", "[b8b6d99681faa149]", "[c0ea951a579a230f71c4]", "0x20")
+ self.bid64_to_binary80("2", "[bc89533dd7d11516]", "[c14ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("2", "[c078dbd18832f14c]", "[c1b89db980c0d09e3935]", "0x20")
+ self.bid64_to_binary80("2", "[c451c3505acd6bf6]", "[c21ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("2", "[cc2c78c3a2c70833]", "[c2efbdade593f50e030f]", "0x20")
+ self.bid64_to_binary80("2", "[cff5cdff60c5392c]", "[c35482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("2", "[d404a46ec58033d7]", "[c3bfaba0cf3dccace590]", "0x20")
+ self.bid64_to_binary80("2", "[d7fca12a33a33b13]", "[c4298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("2", "[e3691b9818a0a8c3]", "[bc74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("2", "[ea437445d0d032f1]", "[bf4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("2", "[f212e93d1248086f]", "[c28a869cd892f915530c]", "0x20")
+ self.bid64_to_binary80("2", "[f6f10688c9f158bb]", "[c49094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("2", "[f7fb86f26fc0ffff]", "[c4fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("2", "[f800000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[0000000000000001]", "[3ad4ea5da4ec2a406826]", "0x20")
+ self.bid64_to_binary80("3", "[01e0000000000001]", "[3b06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("3", "[0200000000000001]", "[3b0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("3", "[02017304a7852948]", "[3b3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("3", "[05e989eed46f5407]", "[3ba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("3", "[09ca6ac1bb258907]", "[3c0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("3", "[11a16a7d8e584721]", "[3cd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("3", "[1584a79bc956ff3c]", "[3d42b06ddd5e07671150]", "0x20")
+ self.bid64_to_binary80("3", "[19837fa0bfc30bed]", "[3daca373312d310ae54a]", "0x20")
+ self.bid64_to_binary80("3", "[1d4d4cceef639565]", "[3e11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("3", "[21603e0f9904bfbf]", "[3e79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("3", "[25410fc0828b9660]", "[3ee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("3", "[2cea34f9eb3fbe09]", "[3fb0de49955e01875987]", "0x20")
+ self.bid64_to_binary80("3", "[30c00000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[30e4c4b3ffff3dd0]", "[4019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("3", "[31a000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[31c0000000000000]", "[00000000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[31c0000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[31c0000000000040]", "[40058000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[31c00000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[31c00000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[34d356548405c99f]", "[4082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("3", "[38b6d99681faa149]", "[40ea951a579a230f71c4]", "0x20")
+ self.bid64_to_binary80("3", "[3c89533dd7d11516]", "[414ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("3", "[4078dbd18832f14c]", "[41b89db980c0d09e3935]", "0x20")
+ self.bid64_to_binary80("3", "[4451c3505acd6bf6]", "[421ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("3", "[4c2c78c3a2c70833]", "[42efbdade593f50e030f]", "0x20")
+ self.bid64_to_binary80("3", "[4ff5cdff60c5392c]", "[435482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("3", "[5404a46ec58033d7]", "[43bfaba0cf3dccace590]", "0x20")
+ self.bid64_to_binary80("3", "[57fca12a33a33b13]", "[44298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("3", "[63691b9818a0a8c3]", "[3c74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("3", "[6a437445d0d032f1]", "[3f4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("3", "[7212e93d1248086f]", "[428a869cd892f915530c]", "0x20")
+ self.bid64_to_binary80("3", "[76f10688c9f158bb]", "[449094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("3", "[77fb86f26fc0ffff]", "[44fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("3", "[7800000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[8000000000000001]", "[bad4ea5da4ec2a406826]", "0x20")
+ self.bid64_to_binary80("3", "[81e0000000000001]", "[bb06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("3", "[8200000000000001]", "[bb0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("3", "[82017304a7852948]", "[bb3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("3", "[85e989eed46f5407]", "[bba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("3", "[89ca6ac1bb258907]", "[bc0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("3", "[91a16a7d8e584721]", "[bcd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("3", "[9584a79bc956ff3c]", "[bd42b06ddd5e07671150]", "0x20")
+ self.bid64_to_binary80("3", "[99837fa0bfc30bed]", "[bdaca373312d310ae54a]", "0x20")
+ self.bid64_to_binary80("3", "[9d4d4cceef639565]", "[be11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("3", "[a1603e0f9904bfbf]", "[be79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("3", "[a5410fc0828b9660]", "[bee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("3", "[acea34f9eb3fbe09]", "[bfb0de49955e01875987]", "0x20")
+ self.bid64_to_binary80("3", "[b0c00000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b0e4c4b3ffff3dd0]", "[c019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("3", "[b1a000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b1c0000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b1c0000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b1c00000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b1c00000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b4d356548405c99f]", "[c082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("3", "[b8b6d99681faa149]", "[c0ea951a579a230f71c4]", "0x20")
+ self.bid64_to_binary80("3", "[bc89533dd7d11516]", "[c14ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("3", "[c078dbd18832f14c]", "[c1b89db980c0d09e3935]", "0x20")
+ self.bid64_to_binary80("3", "[c451c3505acd6bf6]", "[c21ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("3", "[cc2c78c3a2c70833]", "[c2efbdade593f50e030f]", "0x20")
+ self.bid64_to_binary80("3", "[cff5cdff60c5392c]", "[c35482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("3", "[d404a46ec58033d7]", "[c3bfaba0cf3dccace590]", "0x20")
+ self.bid64_to_binary80("3", "[d7fca12a33a33b13]", "[c4298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("3", "[e3691b9818a0a8c3]", "[bc74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("3", "[ea437445d0d032f1]", "[bf4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("3", "[f212e93d1248086f]", "[c28a869cd892f915530c]", "0x20")
+ self.bid64_to_binary80("3", "[f6f10688c9f158bb]", "[c49094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("3", "[f7fb86f26fc0ffff]", "[c4fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("3", "[f800000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[0000000000000001]", "[3ad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("4", "[01e0000000000001]", "[3b06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("4", "[0200000000000001]", "[3b0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("4", "[02017304a7852948]", "[3b3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("4", "[05e989eed46f5407]", "[3ba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("4", "[09ca6ac1bb258907]", "[3c0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("4", "[11a16a7d8e584721]", "[3cd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("4", "[1584a79bc956ff3c]", "[3d42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("4", "[19837fa0bfc30bed]", "[3daca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("4", "[1d4d4cceef639565]", "[3e11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("4", "[21603e0f9904bfbf]", "[3e79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("4", "[25410fc0828b9660]", "[3ee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("4", "[2cea34f9eb3fbe09]", "[3fb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("4", "[30c00000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[30e4c4b3ffff3dd0]", "[4019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("4", "[31a000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[31c0000000000000]", "[00000000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[31c0000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[31c0000000000040]", "[40058000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[31c00000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[31c00000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[34d356548405c99f]", "[4082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("4", "[38b6d99681faa149]", "[40ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("4", "[3c89533dd7d11516]", "[414ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("4", "[4078dbd18832f14c]", "[41b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("4", "[4451c3505acd6bf6]", "[421ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("4", "[4c2c78c3a2c70833]", "[42efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("4", "[4ff5cdff60c5392c]", "[435482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("4", "[5404a46ec58033d7]", "[43bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("4", "[57fca12a33a33b13]", "[44298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("4", "[63691b9818a0a8c3]", "[3c74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("4", "[6a437445d0d032f1]", "[3f4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("4", "[7212e93d1248086f]", "[428a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("4", "[76f10688c9f158bb]", "[449094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("4", "[77fb86f26fc0ffff]", "[44fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("4", "[7800000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[8000000000000001]", "[bad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("4", "[81e0000000000001]", "[bb06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("4", "[8200000000000001]", "[bb0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("4", "[82017304a7852948]", "[bb3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("4", "[85e989eed46f5407]", "[bba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("4", "[89ca6ac1bb258907]", "[bc0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("4", "[91a16a7d8e584721]", "[bcd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("4", "[9584a79bc956ff3c]", "[bd42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("4", "[99837fa0bfc30bed]", "[bdaca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("4", "[9d4d4cceef639565]", "[be11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("4", "[a1603e0f9904bfbf]", "[be79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("4", "[a5410fc0828b9660]", "[bee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("4", "[acea34f9eb3fbe09]", "[bfb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("4", "[b0c00000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b0e4c4b3ffff3dd0]", "[c019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("4", "[b1a000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b1c0000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b1c0000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b1c00000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b1c00000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b4d356548405c99f]", "[c082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("4", "[b8b6d99681faa149]", "[c0ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("4", "[bc89533dd7d11516]", "[c14ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("4", "[c078dbd18832f14c]", "[c1b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("4", "[c451c3505acd6bf6]", "[c21ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("4", "[cc2c78c3a2c70833]", "[c2efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("4", "[cff5cdff60c5392c]", "[c35482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("4", "[d404a46ec58033d7]", "[c3bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("4", "[d7fca12a33a33b13]", "[c4298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("4", "[e3691b9818a0a8c3]", "[bc74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("4", "[ea437445d0d032f1]", "[bf4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("4", "[f212e93d1248086f]", "[c28a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("4", "[f6f10688c9f158bb]", "[c49094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("4", "[f7fb86f26fc0ffff]", "[c4fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("4", "[f800000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[0000000000000001]", "[3ad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("1", "[0000000000000001]", "[3ad4ea5da4ec2a406826]", "0x20")
+ self.bid64_to_binary80("2", "[0000000000000001]", "[3ad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("3", "[0000000000000001]", "[3ad4ea5da4ec2a406826]", "0x20")
+ self.bid64_to_binary80("4", "[0000000000000001]", "[3ad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("0", "[000000000481e5b5]", "[3aef840c41e88ce51b53]", "0x20")
+ self.bid64_to_binary80("1", "[000000000481e5b5]", "[3aef840c41e88ce51b52]", "0x20")
+ self.bid64_to_binary80("2", "[000000000481e5b5]", "[3aef840c41e88ce51b53]", "0x20")
+ self.bid64_to_binary80("3", "[000000000481e5b5]", "[3aef840c41e88ce51b52]", "0x20")
+ self.bid64_to_binary80("4", "[000000000481e5b5]", "[3aef840c41e88ce51b53]", "0x20")
+ self.bid64_to_binary80("0", "[00038d7ea4c67fff]", "[3b06d0289ce2dd618fd6]", "0x20")
+ self.bid64_to_binary80("1", "[00038d7ea4c67fff]", "[3b06d0289ce2dd618fd6]", "0x20")
+ self.bid64_to_binary80("2", "[00038d7ea4c67fff]", "[3b06d0289ce2dd618fd7]", "0x20")
+ self.bid64_to_binary80("3", "[00038d7ea4c67fff]", "[3b06d0289ce2dd618fd6]", "0x20")
+ self.bid64_to_binary80("4", "[00038d7ea4c67fff]", "[3b06d0289ce2dd618fd6]", "0x20")
+ self.bid64_to_binary80("0", "[00180d0cf395d960]", "[3b09b025d0973e127b8c]", "0x20")
+ self.bid64_to_binary80("1", "[00180d0cf395d960]", "[3b09b025d0973e127b8b]", "0x20")
+ self.bid64_to_binary80("2", "[00180d0cf395d960]", "[3b09b025d0973e127b8c]", "0x20")
+ self.bid64_to_binary80("3", "[00180d0cf395d960]", "[3b09b025d0973e127b8b]", "0x20")
+ self.bid64_to_binary80("4", "[00180d0cf395d960]", "[3b09b025d0973e127b8c]", "0x20")
+ self.bid64_to_binary80("0", "[01065f280e451fc9]", "[3b228b13472c8260fa84]", "0x20")
+ self.bid64_to_binary80("1", "[01065f280e451fc9]", "[3b228b13472c8260fa84]", "0x20")
+ self.bid64_to_binary80("2", "[01065f280e451fc9]", "[3b228b13472c8260fa85]", "0x20")
+ self.bid64_to_binary80("3", "[01065f280e451fc9]", "[3b228b13472c8260fa84]", "0x20")
+ self.bid64_to_binary80("4", "[01065f280e451fc9]", "[3b228b13472c8260fa84]", "0x20")
+ self.bid64_to_binary80("0", "[01e0000000000001]", "[3b06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("1", "[01e0000000000001]", "[3b06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("2", "[01e0000000000001]", "[3b06d0289ce2dd61ca6e]", "0x20")
+ self.bid64_to_binary80("3", "[01e0000000000001]", "[3b06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("4", "[01e0000000000001]", "[3b06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("0", "[0200000000000001]", "[3b0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("1", "[0200000000000001]", "[3b0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("2", "[0200000000000001]", "[3b0a8219620dca5d1e85]", "0x20")
+ self.bid64_to_binary80("3", "[0200000000000001]", "[3b0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("4", "[0200000000000001]", "[3b0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("0", "[02017304a7852948]", "[3b3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("1", "[02017304a7852948]", "[3b3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("2", "[02017304a7852948]", "[3b3abc8d26a1bf9db4b4]", "0x20")
+ self.bid64_to_binary80("3", "[02017304a7852948]", "[3b3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("4", "[02017304a7852948]", "[3b3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("0", "[030122c1071ca197]", "[3b54dc2e667705af5f63]", "0x20")
+ self.bid64_to_binary80("1", "[030122c1071ca197]", "[3b54dc2e667705af5f63]", "0x20")
+ self.bid64_to_binary80("2", "[030122c1071ca197]", "[3b54dc2e667705af5f64]", "0x20")
+ self.bid64_to_binary80("3", "[030122c1071ca197]", "[3b54dc2e667705af5f63]", "0x20")
+ self.bid64_to_binary80("4", "[030122c1071ca197]", "[3b54dc2e667705af5f63]", "0x20")
+ self.bid64_to_binary80("0", "[03fa5bc2d0c842dd]", "[3b70be5c0486d0a8f680]", "0x20")
+ self.bid64_to_binary80("1", "[03fa5bc2d0c842dd]", "[3b70be5c0486d0a8f67f]", "0x20")
+ self.bid64_to_binary80("2", "[03fa5bc2d0c842dd]", "[3b70be5c0486d0a8f680]", "0x20")
+ self.bid64_to_binary80("3", "[03fa5bc2d0c842dd]", "[3b70be5c0486d0a8f67f]", "0x20")
+ self.bid64_to_binary80("4", "[03fa5bc2d0c842dd]", "[3b70be5c0486d0a8f680]", "0x20")
+ self.bid64_to_binary80("0", "[05e989eed46f5407]", "[3ba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("1", "[05e989eed46f5407]", "[3ba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("2", "[05e989eed46f5407]", "[3ba498f6bc430c01f8eb]", "0x20")
+ self.bid64_to_binary80("3", "[05e989eed46f5407]", "[3ba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("4", "[05e989eed46f5407]", "[3ba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("0", "[06e24fee82ff5d07]", "[3bbcdd01df96b18b24a5]", "0x20")
+ self.bid64_to_binary80("1", "[06e24fee82ff5d07]", "[3bbcdd01df96b18b24a5]", "0x20")
+ self.bid64_to_binary80("2", "[06e24fee82ff5d07]", "[3bbcdd01df96b18b24a6]", "0x20")
+ self.bid64_to_binary80("3", "[06e24fee82ff5d07]", "[3bbcdd01df96b18b24a5]", "0x20")
+ self.bid64_to_binary80("4", "[06e24fee82ff5d07]", "[3bbcdd01df96b18b24a5]", "0x20")
+ self.bid64_to_binary80("0", "[07e11aa2b5755dbb]", "[3bd69d3f32f52266da35]", "0x20")
+ self.bid64_to_binary80("1", "[07e11aa2b5755dbb]", "[3bd69d3f32f52266da35]", "0x20")
+ self.bid64_to_binary80("2", "[07e11aa2b5755dbb]", "[3bd69d3f32f52266da36]", "0x20")
+ self.bid64_to_binary80("3", "[07e11aa2b5755dbb]", "[3bd69d3f32f52266da35]", "0x20")
+ self.bid64_to_binary80("4", "[07e11aa2b5755dbb]", "[3bd69d3f32f52266da35]", "0x20")
+ self.bid64_to_binary80("0", "[08c6269b6f5e080d]", "[3bf0828a8a66a3c3ade0]", "0x20")
+ self.bid64_to_binary80("1", "[08c6269b6f5e080d]", "[3bf0828a8a66a3c3addf]", "0x20")
+ self.bid64_to_binary80("2", "[08c6269b6f5e080d]", "[3bf0828a8a66a3c3ade0]", "0x20")
+ self.bid64_to_binary80("3", "[08c6269b6f5e080d]", "[3bf0828a8a66a3c3addf]", "0x20")
+ self.bid64_to_binary80("4", "[08c6269b6f5e080d]", "[3bf0828a8a66a3c3ade0]", "0x20")
+ self.bid64_to_binary80("0", "[09ca6ac1bb258907]", "[3c0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("1", "[09ca6ac1bb258907]", "[3c0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("2", "[09ca6ac1bb258907]", "[3c0ba4b88f8d7381c89d]", "0x20")
+ self.bid64_to_binary80("3", "[09ca6ac1bb258907]", "[3c0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("4", "[09ca6ac1bb258907]", "[3c0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("0", "[0ad039b35ba81aa1]", "[3c26bf283fde4142c8ca]", "0x20")
+ self.bid64_to_binary80("1", "[0ad039b35ba81aa1]", "[3c26bf283fde4142c8c9]", "0x20")
+ self.bid64_to_binary80("2", "[0ad039b35ba81aa1]", "[3c26bf283fde4142c8ca]", "0x20")
+ self.bid64_to_binary80("3", "[0ad039b35ba81aa1]", "[3c26bf283fde4142c8c9]", "0x20")
+ self.bid64_to_binary80("4", "[0ad039b35ba81aa1]", "[3c26bf283fde4142c8ca]", "0x20")
+ self.bid64_to_binary80("0", "[0bc195f940bef1ed]", "[3c3ddeb8e0a97b8b5e20]", "0x20")
+ self.bid64_to_binary80("1", "[0bc195f940bef1ed]", "[3c3ddeb8e0a97b8b5e20]", "0x20")
+ self.bid64_to_binary80("2", "[0bc195f940bef1ed]", "[3c3ddeb8e0a97b8b5e21]", "0x20")
+ self.bid64_to_binary80("3", "[0bc195f940bef1ed]", "[3c3ddeb8e0a97b8b5e20]", "0x20")
+ self.bid64_to_binary80("4", "[0bc195f940bef1ed]", "[3c3ddeb8e0a97b8b5e20]", "0x20")
+ self.bid64_to_binary80("0", "[0cc08717332a5319]", "[3c56dcdf44afe4a8d1ba]", "0x20")
+ self.bid64_to_binary80("1", "[0cc08717332a5319]", "[3c56dcdf44afe4a8d1b9]", "0x20")
+ self.bid64_to_binary80("2", "[0cc08717332a5319]", "[3c56dcdf44afe4a8d1ba]", "0x20")
+ self.bid64_to_binary80("3", "[0cc08717332a5319]", "[3c56dcdf44afe4a8d1b9]", "0x20")
+ self.bid64_to_binary80("4", "[0cc08717332a5319]", "[3c56dcdf44afe4a8d1ba]", "0x20")
+ self.bid64_to_binary80("0", "[0eb1dd4cb546b4dd]", "[3c8dcf897bc99e20a06c]", "0x20")
+ self.bid64_to_binary80("1", "[0eb1dd4cb546b4dd]", "[3c8dcf897bc99e20a06c]", "0x20")
+ self.bid64_to_binary80("2", "[0eb1dd4cb546b4dd]", "[3c8dcf897bc99e20a06d]", "0x20")
+ self.bid64_to_binary80("3", "[0eb1dd4cb546b4dd]", "[3c8dcf897bc99e20a06c]", "0x20")
+ self.bid64_to_binary80("4", "[0eb1dd4cb546b4dd]", "[3c8dcf897bc99e20a06c]", "0x20")
+ self.bid64_to_binary80("0", "[0fbb79d1a45c195d]", "[3ca8edd1c3f2c0bb6acc]", "0x20")
+ self.bid64_to_binary80("1", "[0fbb79d1a45c195d]", "[3ca8edd1c3f2c0bb6acc]", "0x20")
+ self.bid64_to_binary80("2", "[0fbb79d1a45c195d]", "[3ca8edd1c3f2c0bb6acd]", "0x20")
+ self.bid64_to_binary80("3", "[0fbb79d1a45c195d]", "[3ca8edd1c3f2c0bb6acc]", "0x20")
+ self.bid64_to_binary80("4", "[0fbb79d1a45c195d]", "[3ca8edd1c3f2c0bb6acc]", "0x20")
+ self.bid64_to_binary80("0", "[10c015f60a747594]", "[3cbeb1080775580797ac]", "0x20")
+ self.bid64_to_binary80("1", "[10c015f60a747594]", "[3cbeb1080775580797ac]", "0x20")
+ self.bid64_to_binary80("2", "[10c015f60a747594]", "[3cbeb1080775580797ad]", "0x20")
+ self.bid64_to_binary80("3", "[10c015f60a747594]", "[3cbeb1080775580797ac]", "0x20")
+ self.bid64_to_binary80("4", "[10c015f60a747594]", "[3cbeb1080775580797ac]", "0x20")
+ self.bid64_to_binary80("0", "[11a16a7d8e584721]", "[3cd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("1", "[11a16a7d8e584721]", "[3cd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("2", "[11a16a7d8e584721]", "[3cd9d9b6564b6799fd0a]", "0x20")
+ self.bid64_to_binary80("3", "[11a16a7d8e584721]", "[3cd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("4", "[11a16a7d8e584721]", "[3cd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("0", "[12a03a03b9294519]", "[3cf1cfaf227051e5be54]", "0x20")
+ self.bid64_to_binary80("1", "[12a03a03b9294519]", "[3cf1cfaf227051e5be53]", "0x20")
+ self.bid64_to_binary80("2", "[12a03a03b9294519]", "[3cf1cfaf227051e5be54]", "0x20")
+ self.bid64_to_binary80("3", "[12a03a03b9294519]", "[3cf1cfaf227051e5be53]", "0x20")
+ self.bid64_to_binary80("4", "[12a03a03b9294519]", "[3cf1cfaf227051e5be54]", "0x20")
+ self.bid64_to_binary80("0", "[1380f23a585e19f3]", "[3d0b8136dec12a865960]", "0x20")
+ self.bid64_to_binary80("1", "[1380f23a585e19f3]", "[3d0b8136dec12a865960]", "0x20")
+ self.bid64_to_binary80("2", "[1380f23a585e19f3]", "[3d0b8136dec12a865961]", "0x20")
+ self.bid64_to_binary80("3", "[1380f23a585e19f3]", "[3d0b8136dec12a865960]", "0x20")
+ self.bid64_to_binary80("4", "[1380f23a585e19f3]", "[3d0b8136dec12a865960]", "0x20")
+ self.bid64_to_binary80("0", "[1584a79bc956ff3c]", "[3d42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("1", "[1584a79bc956ff3c]", "[3d42b06ddd5e07671150]", "0x20")
+ self.bid64_to_binary80("2", "[1584a79bc956ff3c]", "[3d42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("3", "[1584a79bc956ff3c]", "[3d42b06ddd5e07671150]", "0x20")
+ self.bid64_to_binary80("4", "[1584a79bc956ff3c]", "[3d42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("0", "[1683eac93730957f]", "[3d5cdd3da2157d482b29]", "0x20")
+ self.bid64_to_binary80("1", "[1683eac93730957f]", "[3d5cdd3da2157d482b28]", "0x20")
+ self.bid64_to_binary80("2", "[1683eac93730957f]", "[3d5cdd3da2157d482b29]", "0x20")
+ self.bid64_to_binary80("3", "[1683eac93730957f]", "[3d5cdd3da2157d482b28]", "0x20")
+ self.bid64_to_binary80("4", "[1683eac93730957f]", "[3d5cdd3da2157d482b29]", "0x20")
+ self.bid64_to_binary80("0", "[17809126ad6a3191]", "[3d74bee0ec5b00d77c26]", "0x20")
+ self.bid64_to_binary80("1", "[17809126ad6a3191]", "[3d74bee0ec5b00d77c25]", "0x20")
+ self.bid64_to_binary80("2", "[17809126ad6a3191]", "[3d74bee0ec5b00d77c26]", "0x20")
+ self.bid64_to_binary80("3", "[17809126ad6a3191]", "[3d74bee0ec5b00d77c25]", "0x20")
+ self.bid64_to_binary80("4", "[17809126ad6a3191]", "[3d74bee0ec5b00d77c26]", "0x20")
+ self.bid64_to_binary80("0", "[186c7e8297928a1f]", "[3d909cb0f7a460b2c378]", "0x20")
+ self.bid64_to_binary80("1", "[186c7e8297928a1f]", "[3d909cb0f7a460b2c378]", "0x20")
+ self.bid64_to_binary80("2", "[186c7e8297928a1f]", "[3d909cb0f7a460b2c379]", "0x20")
+ self.bid64_to_binary80("3", "[186c7e8297928a1f]", "[3d909cb0f7a460b2c378]", "0x20")
+ self.bid64_to_binary80("4", "[186c7e8297928a1f]", "[3d909cb0f7a460b2c378]", "0x20")
+ self.bid64_to_binary80("0", "[19837fa0bfc30bed]", "[3daca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("1", "[19837fa0bfc30bed]", "[3daca373312d310ae54a]", "0x20")
+ self.bid64_to_binary80("2", "[19837fa0bfc30bed]", "[3daca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("3", "[19837fa0bfc30bed]", "[3daca373312d310ae54a]", "0x20")
+ self.bid64_to_binary80("4", "[19837fa0bfc30bed]", "[3daca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("0", "[1a674d06ae6f67f1]", "[3dc4cb4ea26c1955c3c7]", "0x20")
+ self.bid64_to_binary80("1", "[1a674d06ae6f67f1]", "[3dc4cb4ea26c1955c3c7]", "0x20")
+ self.bid64_to_binary80("2", "[1a674d06ae6f67f1]", "[3dc4cb4ea26c1955c3c8]", "0x20")
+ self.bid64_to_binary80("3", "[1a674d06ae6f67f1]", "[3dc4cb4ea26c1955c3c7]", "0x20")
+ self.bid64_to_binary80("4", "[1a674d06ae6f67f1]", "[3dc4cb4ea26c1955c3c7]", "0x20")
+ self.bid64_to_binary80("0", "[1b660d25f569a6e3]", "[3ddefb1a261e060ce7f7]", "0x20")
+ self.bid64_to_binary80("1", "[1b660d25f569a6e3]", "[3ddefb1a261e060ce7f7]", "0x20")
+ self.bid64_to_binary80("2", "[1b660d25f569a6e3]", "[3ddefb1a261e060ce7f8]", "0x20")
+ self.bid64_to_binary80("3", "[1b660d25f569a6e3]", "[3ddefb1a261e060ce7f7]", "0x20")
+ self.bid64_to_binary80("4", "[1b660d25f569a6e3]", "[3ddefb1a261e060ce7f7]", "0x20")
+ self.bid64_to_binary80("0", "[1c60e4e58893346a]", "[3df6dd25177c250ec593]", "0x20")
+ self.bid64_to_binary80("1", "[1c60e4e58893346a]", "[3df6dd25177c250ec592]", "0x20")
+ self.bid64_to_binary80("2", "[1c60e4e58893346a]", "[3df6dd25177c250ec593]", "0x20")
+ self.bid64_to_binary80("3", "[1c60e4e58893346a]", "[3df6dd25177c250ec592]", "0x20")
+ self.bid64_to_binary80("4", "[1c60e4e58893346a]", "[3df6dd25177c250ec593]", "0x20")
+ self.bid64_to_binary80("0", "[1d4d4cceef639565]", "[3e11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("1", "[1d4d4cceef639565]", "[3e11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("2", "[1d4d4cceef639565]", "[3e11f516476cc975b501]", "0x20")
+ self.bid64_to_binary80("3", "[1d4d4cceef639565]", "[3e11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("4", "[1d4d4cceef639565]", "[3e11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("0", "[1e51007c76e030d5]", "[3e2ce96ddfbf28fd8460]", "0x20")
+ self.bid64_to_binary80("1", "[1e51007c76e030d5]", "[3e2ce96ddfbf28fd8460]", "0x20")
+ self.bid64_to_binary80("2", "[1e51007c76e030d5]", "[3e2ce96ddfbf28fd8461]", "0x20")
+ self.bid64_to_binary80("3", "[1e51007c76e030d5]", "[3e2ce96ddfbf28fd8460]", "0x20")
+ self.bid64_to_binary80("4", "[1e51007c76e030d5]", "[3e2ce96ddfbf28fd8460]", "0x20")
+ self.bid64_to_binary80("0", "[1f4913f0deea2bdb]", "[3e46b9b8ca1ca9abe1f5]", "0x20")
+ self.bid64_to_binary80("1", "[1f4913f0deea2bdb]", "[3e46b9b8ca1ca9abe1f5]", "0x20")
+ self.bid64_to_binary80("2", "[1f4913f0deea2bdb]", "[3e46b9b8ca1ca9abe1f6]", "0x20")
+ self.bid64_to_binary80("3", "[1f4913f0deea2bdb]", "[3e46b9b8ca1ca9abe1f5]", "0x20")
+ self.bid64_to_binary80("4", "[1f4913f0deea2bdb]", "[3e46b9b8ca1ca9abe1f5]", "0x20")
+ self.bid64_to_binary80("0", "[2042923b55a17450]", "[3e5f9cc57a73e26f9da1]", "0x20")
+ self.bid64_to_binary80("1", "[2042923b55a17450]", "[3e5f9cc57a73e26f9da0]", "0x20")
+ self.bid64_to_binary80("2", "[2042923b55a17450]", "[3e5f9cc57a73e26f9da1]", "0x20")
+ self.bid64_to_binary80("3", "[2042923b55a17450]", "[3e5f9cc57a73e26f9da0]", "0x20")
+ self.bid64_to_binary80("4", "[2042923b55a17450]", "[3e5f9cc57a73e26f9da1]", "0x20")
+ self.bid64_to_binary80("0", "[21603e0f9904bfbf]", "[3e79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("1", "[21603e0f9904bfbf]", "[3e79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("2", "[21603e0f9904bfbf]", "[3e79dc415b94e220b278]", "0x20")
+ self.bid64_to_binary80("3", "[21603e0f9904bfbf]", "[3e79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("4", "[21603e0f9904bfbf]", "[3e79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("0", "[2240759990fa9957]", "[3e91f8c4af9085b92792]", "0x20")
+ self.bid64_to_binary80("1", "[2240759990fa9957]", "[3e91f8c4af9085b92792]", "0x20")
+ self.bid64_to_binary80("2", "[2240759990fa9957]", "[3e91f8c4af9085b92793]", "0x20")
+ self.bid64_to_binary80("3", "[2240759990fa9957]", "[3e91f8c4af9085b92792]", "0x20")
+ self.bid64_to_binary80("4", "[2240759990fa9957]", "[3e91f8c4af9085b92792]", "0x20")
+ self.bid64_to_binary80("0", "[242743748f4e7c51]", "[3ec7da59ba4da57cebb2]", "0x20")
+ self.bid64_to_binary80("1", "[242743748f4e7c51]", "[3ec7da59ba4da57cebb2]", "0x20")
+ self.bid64_to_binary80("2", "[242743748f4e7c51]", "[3ec7da59ba4da57cebb3]", "0x20")
+ self.bid64_to_binary80("3", "[242743748f4e7c51]", "[3ec7da59ba4da57cebb2]", "0x20")
+ self.bid64_to_binary80("4", "[242743748f4e7c51]", "[3ec7da59ba4da57cebb2]", "0x20")
+ self.bid64_to_binary80("0", "[25410fc0828b9660]", "[3ee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("1", "[25410fc0828b9660]", "[3ee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("2", "[25410fc0828b9660]", "[3ee2edc1826fbc946764]", "0x20")
+ self.bid64_to_binary80("3", "[25410fc0828b9660]", "[3ee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("4", "[25410fc0828b9660]", "[3ee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("0", "[2623cbeb33ad5d6e]", "[3efbfd6b2eec96b9337a]", "0x20")
+ self.bid64_to_binary80("1", "[2623cbeb33ad5d6e]", "[3efbfd6b2eec96b9337a]", "0x20")
+ self.bid64_to_binary80("2", "[2623cbeb33ad5d6e]", "[3efbfd6b2eec96b9337b]", "0x20")
+ self.bid64_to_binary80("3", "[2623cbeb33ad5d6e]", "[3efbfd6b2eec96b9337a]", "0x20")
+ self.bid64_to_binary80("4", "[2623cbeb33ad5d6e]", "[3efbfd6b2eec96b9337a]", "0x20")
+ self.bid64_to_binary80("0", "[272124d65a445d2a]", "[3f14e38deba3cea2f10c]", "0x20")
+ self.bid64_to_binary80("1", "[272124d65a445d2a]", "[3f14e38deba3cea2f10c]", "0x20")
+ self.bid64_to_binary80("2", "[272124d65a445d2a]", "[3f14e38deba3cea2f10d]", "0x20")
+ self.bid64_to_binary80("3", "[272124d65a445d2a]", "[3f14e38deba3cea2f10c]", "0x20")
+ self.bid64_to_binary80("4", "[272124d65a445d2a]", "[3f14e38deba3cea2f10c]", "0x20")
+ self.bid64_to_binary80("0", "[280bdff99b6c7f83]", "[3f2fb000a5cbda7f82f0]", "0x20")
+ self.bid64_to_binary80("1", "[280bdff99b6c7f83]", "[3f2fb000a5cbda7f82f0]", "0x20")
+ self.bid64_to_binary80("2", "[280bdff99b6c7f83]", "[3f2fb000a5cbda7f82f1]", "0x20")
+ self.bid64_to_binary80("3", "[280bdff99b6c7f83]", "[3f2fb000a5cbda7f82f0]", "0x20")
+ self.bid64_to_binary80("4", "[280bdff99b6c7f83]", "[3f2fb000a5cbda7f82f0]", "0x20")
+ self.bid64_to_binary80("0", "[2a0bc9f26111b76d]", "[3f64c1fc73b80da40f5e]", "0x20")
+ self.bid64_to_binary80("1", "[2a0bc9f26111b76d]", "[3f64c1fc73b80da40f5d]", "0x20")
+ self.bid64_to_binary80("2", "[2a0bc9f26111b76d]", "[3f64c1fc73b80da40f5e]", "0x20")
+ self.bid64_to_binary80("3", "[2a0bc9f26111b76d]", "[3f64c1fc73b80da40f5d]", "0x20")
+ self.bid64_to_binary80("4", "[2a0bc9f26111b76d]", "[3f64c1fc73b80da40f5e]", "0x20")
+ self.bid64_to_binary80("0", "[2b03fe4ab6bf0f6c]", "[3f7dc3d50be7604908b3]", "0x20")
+ self.bid64_to_binary80("1", "[2b03fe4ab6bf0f6c]", "[3f7dc3d50be7604908b2]", "0x20")
+ self.bid64_to_binary80("2", "[2b03fe4ab6bf0f6c]", "[3f7dc3d50be7604908b3]", "0x20")
+ self.bid64_to_binary80("3", "[2b03fe4ab6bf0f6c]", "[3f7dc3d50be7604908b2]", "0x20")
+ self.bid64_to_binary80("4", "[2b03fe4ab6bf0f6c]", "[3f7dc3d50be7604908b3]", "0x20")
+ self.bid64_to_binary80("0", "[2c0135f19da7d301]", "[3f96b0f256bf2f71da35]", "0x20")
+ self.bid64_to_binary80("1", "[2c0135f19da7d301]", "[3f96b0f256bf2f71da34]", "0x20")
+ self.bid64_to_binary80("2", "[2c0135f19da7d301]", "[3f96b0f256bf2f71da35]", "0x20")
+ self.bid64_to_binary80("3", "[2c0135f19da7d301]", "[3f96b0f256bf2f71da34]", "0x20")
+ self.bid64_to_binary80("4", "[2c0135f19da7d301]", "[3f96b0f256bf2f71da35]", "0x20")
+ self.bid64_to_binary80("0", "[2cea34f9eb3fbe09]", "[3fb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("1", "[2cea34f9eb3fbe09]", "[3fb0de49955e01875987]", "0x20")
+ self.bid64_to_binary80("2", "[2cea34f9eb3fbe09]", "[3fb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("3", "[2cea34f9eb3fbe09]", "[3fb0de49955e01875987]", "0x20")
+ self.bid64_to_binary80("4", "[2cea34f9eb3fbe09]", "[3fb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("0", "[2dff71ffb1056361]", "[3fccff1d5961ac8e2db8]", "0x20")
+ self.bid64_to_binary80("1", "[2dff71ffb1056361]", "[3fccff1d5961ac8e2db8]", "0x20")
+ self.bid64_to_binary80("2", "[2dff71ffb1056361]", "[3fccff1d5961ac8e2db9]", "0x20")
+ self.bid64_to_binary80("3", "[2dff71ffb1056361]", "[3fccff1d5961ac8e2db8]", "0x20")
+ self.bid64_to_binary80("4", "[2dff71ffb1056361]", "[3fccff1d5961ac8e2db8]", "0x20")
+ self.bid64_to_binary80("0", "[2ef3b8b367cbe982]", "[3fe6ee6b0c2cb5f187f2]", "0x20")
+ self.bid64_to_binary80("1", "[2ef3b8b367cbe982]", "[3fe6ee6b0c2cb5f187f2]", "0x20")
+ self.bid64_to_binary80("2", "[2ef3b8b367cbe982]", "[3fe6ee6b0c2cb5f187f3]", "0x20")
+ self.bid64_to_binary80("3", "[2ef3b8b367cbe982]", "[3fe6ee6b0c2cb5f187f2]", "0x20")
+ self.bid64_to_binary80("4", "[2ef3b8b367cbe982]", "[3fe6ee6b0c2cb5f187f2]", "0x20")
+ self.bid64_to_binary80("0", "[2fee35f4166a149b]", "[4000ffff8b23b82010a2]", "0x20")
+ self.bid64_to_binary80("1", "[2fee35f4166a149b]", "[4000ffff8b23b82010a2]", "0x20")
+ self.bid64_to_binary80("2", "[2fee35f4166a149b]", "[4000ffff8b23b82010a3]", "0x20")
+ self.bid64_to_binary80("3", "[2fee35f4166a149b]", "[4000ffff8b23b82010a2]", "0x20")
+ self.bid64_to_binary80("4", "[2fee35f4166a149b]", "[4000ffff8b23b82010a2]", "0x20")
+ self.bid64_to_binary80("0", "[30c00000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[30c00000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[30c00000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[30c00000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[30c00000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[30e4c4b3ffff3dd0]", "[4019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("1", "[30e4c4b3ffff3dd0]", "[4019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("2", "[30e4c4b3ffff3dd0]", "[4019ffffffffd746a353]", "0x20")
+ self.bid64_to_binary80("3", "[30e4c4b3ffff3dd0]", "[4019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("4", "[30e4c4b3ffff3dd0]", "[4019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("0", "[31a000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[31a000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[31a000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[31a000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[31a000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[31c0000000000000]", "[00000000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[31c0000000000000]", "[00000000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[31c0000000000000]", "[00000000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[31c0000000000000]", "[00000000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[31c0000000000000]", "[00000000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[31c0000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[31c0000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[31c0000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[31c0000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[31c0000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[31c0000000000040]", "[40058000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[31c0000000000040]", "[40058000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[31c0000000000040]", "[40058000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[31c0000000000040]", "[40058000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[31c0000000000040]", "[40058000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[31c00000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[31c00000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[31c00000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[31c00000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[31c00000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[31c00000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[31c00000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[31c00000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[31c00000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[31c00000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[31cffffffffffffa]", "[4032ffffffffffffa000]", "0x00")
+ self.bid64_to_binary80("1", "[31cffffffffffffa]", "[4032ffffffffffffa000]", "0x00")
+ self.bid64_to_binary80("2", "[31cffffffffffffa]", "[4032ffffffffffffa000]", "0x00")
+ self.bid64_to_binary80("3", "[31cffffffffffffa]", "[4032ffffffffffffa000]", "0x00")
+ self.bid64_to_binary80("4", "[31cffffffffffffa]", "[4032ffffffffffffa000]", "0x00")
+ self.bid64_to_binary80("0", "[34d356548405c99f]", "[4082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("1", "[34d356548405c99f]", "[4082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("2", "[34d356548405c99f]", "[4082ffed12e96ae3e1f3]", "0x20")
+ self.bid64_to_binary80("3", "[34d356548405c99f]", "[4082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("4", "[34d356548405c99f]", "[4082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("0", "[35bdaaab8fd29f30]", "[409aea076240a41c5bff]", "0x20")
+ self.bid64_to_binary80("1", "[35bdaaab8fd29f30]", "[409aea076240a41c5bff]", "0x20")
+ self.bid64_to_binary80("2", "[35bdaaab8fd29f30]", "[409aea076240a41c5c00]", "0x20")
+ self.bid64_to_binary80("3", "[35bdaaab8fd29f30]", "[409aea076240a41c5bff]", "0x20")
+ self.bid64_to_binary80("4", "[35bdaaab8fd29f30]", "[409aea076240a41c5bff]", "0x20")
+ self.bid64_to_binary80("0", "[36af4ccdd8311634]", "[40b4b3d9cf89a52da479]", "0x20")
+ self.bid64_to_binary80("1", "[36af4ccdd8311634]", "[40b4b3d9cf89a52da479]", "0x20")
+ self.bid64_to_binary80("2", "[36af4ccdd8311634]", "[40b4b3d9cf89a52da47a]", "0x20")
+ self.bid64_to_binary80("3", "[36af4ccdd8311634]", "[40b4b3d9cf89a52da479]", "0x20")
+ self.bid64_to_binary80("4", "[36af4ccdd8311634]", "[40b4b3d9cf89a52da479]", "0x20")
+ self.bid64_to_binary80("0", "[37be6309ea8f3c66]", "[40d08510dc06ea0d20c6]", "0x20")
+ self.bid64_to_binary80("1", "[37be6309ea8f3c66]", "[40d08510dc06ea0d20c6]", "0x20")
+ self.bid64_to_binary80("2", "[37be6309ea8f3c66]", "[40d08510dc06ea0d20c7]", "0x20")
+ self.bid64_to_binary80("3", "[37be6309ea8f3c66]", "[40d08510dc06ea0d20c6]", "0x20")
+ self.bid64_to_binary80("4", "[37be6309ea8f3c66]", "[40d08510dc06ea0d20c6]", "0x20")
+ self.bid64_to_binary80("0", "[38b6d99681faa149]", "[40ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("1", "[38b6d99681faa149]", "[40ea951a579a230f71c4]", "0x20")
+ self.bid64_to_binary80("2", "[38b6d99681faa149]", "[40ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("3", "[38b6d99681faa149]", "[40ea951a579a230f71c4]", "0x20")
+ self.bid64_to_binary80("4", "[38b6d99681faa149]", "[40ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("0", "[3984c0a08a8d6f72]", "[40ff93df7212707c7c50]", "0x20")
+ self.bid64_to_binary80("1", "[3984c0a08a8d6f72]", "[40ff93df7212707c7c4f]", "0x20")
+ self.bid64_to_binary80("2", "[3984c0a08a8d6f72]", "[40ff93df7212707c7c50]", "0x20")
+ self.bid64_to_binary80("3", "[3984c0a08a8d6f72]", "[40ff93df7212707c7c4f]", "0x20")
+ self.bid64_to_binary80("4", "[3984c0a08a8d6f72]", "[40ff93df7212707c7c50]", "0x20")
+ self.bid64_to_binary80("0", "[3aa65c0d9b8829c5]", "[411db84a018c68c4f2ad]", "0x20")
+ self.bid64_to_binary80("1", "[3aa65c0d9b8829c5]", "[411db84a018c68c4f2ad]", "0x20")
+ self.bid64_to_binary80("2", "[3aa65c0d9b8829c5]", "[411db84a018c68c4f2ae]", "0x20")
+ self.bid64_to_binary80("3", "[3aa65c0d9b8829c5]", "[411db84a018c68c4f2ad]", "0x20")
+ self.bid64_to_binary80("4", "[3aa65c0d9b8829c5]", "[411db84a018c68c4f2ad]", "0x20")
+ self.bid64_to_binary80("0", "[3b95ecf21370e88a]", "[4136bd5a5828b57eaec2]", "0x20")
+ self.bid64_to_binary80("1", "[3b95ecf21370e88a]", "[4136bd5a5828b57eaec2]", "0x20")
+ self.bid64_to_binary80("2", "[3b95ecf21370e88a]", "[4136bd5a5828b57eaec3]", "0x20")
+ self.bid64_to_binary80("3", "[3b95ecf21370e88a]", "[4136bd5a5828b57eaec2]", "0x20")
+ self.bid64_to_binary80("4", "[3b95ecf21370e88a]", "[4136bd5a5828b57eaec2]", "0x20")
+ self.bid64_to_binary80("0", "[3c89533dd7d11516]", "[414ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("1", "[3c89533dd7d11516]", "[414ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("2", "[3c89533dd7d11516]", "[414ff00251426b9d3861]", "0x20")
+ self.bid64_to_binary80("3", "[3c89533dd7d11516]", "[414ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("4", "[3c89533dd7d11516]", "[414ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("0", "[3e85df3d86ed8b27]", "[4184a7ca9e6e3da82542]", "0x20")
+ self.bid64_to_binary80("1", "[3e85df3d86ed8b27]", "[4184a7ca9e6e3da82541]", "0x20")
+ self.bid64_to_binary80("2", "[3e85df3d86ed8b27]", "[4184a7ca9e6e3da82542]", "0x20")
+ self.bid64_to_binary80("3", "[3e85df3d86ed8b27]", "[4184a7ca9e6e3da82541]", "0x20")
+ self.bid64_to_binary80("4", "[3e85df3d86ed8b27]", "[4184a7ca9e6e3da82542]", "0x20")
+ self.bid64_to_binary80("0", "[3f8aa4ce7b1a9b39]", "[419fe29a95ab726f3590]", "0x20")
+ self.bid64_to_binary80("1", "[3f8aa4ce7b1a9b39]", "[419fe29a95ab726f358f]", "0x20")
+ self.bid64_to_binary80("2", "[3f8aa4ce7b1a9b39]", "[419fe29a95ab726f3590]", "0x20")
+ self.bid64_to_binary80("3", "[3f8aa4ce7b1a9b39]", "[419fe29a95ab726f358f]", "0x20")
+ self.bid64_to_binary80("4", "[3f8aa4ce7b1a9b39]", "[419fe29a95ab726f3590]", "0x20")
+ self.bid64_to_binary80("0", "[4078dbd18832f14c]", "[41b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("1", "[4078dbd18832f14c]", "[41b89db980c0d09e3935]", "0x20")
+ self.bid64_to_binary80("2", "[4078dbd18832f14c]", "[41b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("3", "[4078dbd18832f14c]", "[41b89db980c0d09e3935]", "0x20")
+ self.bid64_to_binary80("4", "[4078dbd18832f14c]", "[41b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("0", "[416cd531e693deac]", "[41d1f2a836212b3ad5ee]", "0x20")
+ self.bid64_to_binary80("1", "[416cd531e693deac]", "[41d1f2a836212b3ad5ee]", "0x20")
+ self.bid64_to_binary80("2", "[416cd531e693deac]", "[41d1f2a836212b3ad5ef]", "0x20")
+ self.bid64_to_binary80("3", "[416cd531e693deac]", "[41d1f2a836212b3ad5ee]", "0x20")
+ self.bid64_to_binary80("4", "[416cd531e693deac]", "[41d1f2a836212b3ad5ee]", "0x20")
+ self.bid64_to_binary80("0", "[4377f25698022b2f]", "[4207fb5c3529c178d7c1]", "0x20")
+ self.bid64_to_binary80("1", "[4377f25698022b2f]", "[4207fb5c3529c178d7c0]", "0x20")
+ self.bid64_to_binary80("2", "[4377f25698022b2f]", "[4207fb5c3529c178d7c1]", "0x20")
+ self.bid64_to_binary80("3", "[4377f25698022b2f]", "[4207fb5c3529c178d7c0]", "0x20")
+ self.bid64_to_binary80("4", "[4377f25698022b2f]", "[4207fb5c3529c178d7c1]", "0x20")
+ self.bid64_to_binary80("0", "[4451c3505acd6bf6]", "[421ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("1", "[4451c3505acd6bf6]", "[421ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("2", "[4451c3505acd6bf6]", "[421ede44a069f8e2bb45]", "0x20")
+ self.bid64_to_binary80("3", "[4451c3505acd6bf6]", "[421ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("4", "[4451c3505acd6bf6]", "[421ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("0", "[454b41253f1f7042]", "[4238d1d96977c8b18f88]", "0x20")
+ self.bid64_to_binary80("1", "[454b41253f1f7042]", "[4238d1d96977c8b18f88]", "0x20")
+ self.bid64_to_binary80("2", "[454b41253f1f7042]", "[4238d1d96977c8b18f89]", "0x20")
+ self.bid64_to_binary80("3", "[454b41253f1f7042]", "[4238d1d96977c8b18f88]", "0x20")
+ self.bid64_to_binary80("4", "[454b41253f1f7042]", "[4238d1d96977c8b18f88]", "0x20")
+ self.bid64_to_binary80("0", "[464d879135d87d4e]", "[4253bbf4b6f9edb01b34]", "0x20")
+ self.bid64_to_binary80("1", "[464d879135d87d4e]", "[4253bbf4b6f9edb01b34]", "0x20")
+ self.bid64_to_binary80("2", "[464d879135d87d4e]", "[4253bbf4b6f9edb01b35]", "0x20")
+ self.bid64_to_binary80("3", "[464d879135d87d4e]", "[4253bbf4b6f9edb01b34]", "0x20")
+ self.bid64_to_binary80("4", "[464d879135d87d4e]", "[4253bbf4b6f9edb01b34]", "0x20")
+ self.bid64_to_binary80("0", "[4754ec0b28e85fcf]", "[426ed88ddfb51dc5863c]", "0x20")
+ self.bid64_to_binary80("1", "[4754ec0b28e85fcf]", "[426ed88ddfb51dc5863b]", "0x20")
+ self.bid64_to_binary80("2", "[4754ec0b28e85fcf]", "[426ed88ddfb51dc5863c]", "0x20")
+ self.bid64_to_binary80("3", "[4754ec0b28e85fcf]", "[426ed88ddfb51dc5863b]", "0x20")
+ self.bid64_to_binary80("4", "[4754ec0b28e85fcf]", "[426ed88ddfb51dc5863c]", "0x20")
+ self.bid64_to_binary80("0", "[4947c5d69c4d35ec]", "[42a2b2a407a98b637339]", "0x20")
+ self.bid64_to_binary80("1", "[4947c5d69c4d35ec]", "[42a2b2a407a98b637339]", "0x20")
+ self.bid64_to_binary80("2", "[4947c5d69c4d35ec]", "[42a2b2a407a98b63733a]", "0x20")
+ self.bid64_to_binary80("3", "[4947c5d69c4d35ec]", "[42a2b2a407a98b637339]", "0x20")
+ self.bid64_to_binary80("4", "[4947c5d69c4d35ec]", "[42a2b2a407a98b637339]", "0x20")
+ self.bid64_to_binary80("0", "[4a46bd6b3bd66460]", "[42bce6d274f1beb0bcb9]", "0x20")
+ self.bid64_to_binary80("1", "[4a46bd6b3bd66460]", "[42bce6d274f1beb0bcb9]", "0x20")
+ self.bid64_to_binary80("2", "[4a46bd6b3bd66460]", "[42bce6d274f1beb0bcba]", "0x20")
+ self.bid64_to_binary80("3", "[4a46bd6b3bd66460]", "[42bce6d274f1beb0bcb9]", "0x20")
+ self.bid64_to_binary80("4", "[4a46bd6b3bd66460]", "[42bce6d274f1beb0bcb9]", "0x20")
+ self.bid64_to_binary80("0", "[4b2e4f5b8693901a]", "[42d5920db85ccbd3fb97]", "0x20")
+ self.bid64_to_binary80("1", "[4b2e4f5b8693901a]", "[42d5920db85ccbd3fb97]", "0x20")
+ self.bid64_to_binary80("2", "[4b2e4f5b8693901a]", "[42d5920db85ccbd3fb98]", "0x20")
+ self.bid64_to_binary80("3", "[4b2e4f5b8693901a]", "[42d5920db85ccbd3fb97]", "0x20")
+ self.bid64_to_binary80("4", "[4b2e4f5b8693901a]", "[42d5920db85ccbd3fb97]", "0x20")
+ self.bid64_to_binary80("0", "[4c2c78c3a2c70833]", "[42efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("1", "[4c2c78c3a2c70833]", "[42efbdade593f50e030f]", "0x20")
+ self.bid64_to_binary80("2", "[4c2c78c3a2c70833]", "[42efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("3", "[4c2c78c3a2c70833]", "[42efbdade593f50e030f]", "0x20")
+ self.bid64_to_binary80("4", "[4c2c78c3a2c70833]", "[42efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("0", "[4d3ff33e8dcd1212]", "[430bb505194511dcd5cf]", "0x20")
+ self.bid64_to_binary80("1", "[4d3ff33e8dcd1212]", "[430bb505194511dcd5cf]", "0x20")
+ self.bid64_to_binary80("2", "[4d3ff33e8dcd1212]", "[430bb505194511dcd5d0]", "0x20")
+ self.bid64_to_binary80("3", "[4d3ff33e8dcd1212]", "[430bb505194511dcd5cf]", "0x20")
+ self.bid64_to_binary80("4", "[4d3ff33e8dcd1212]", "[430bb505194511dcd5cf]", "0x20")
+ self.bid64_to_binary80("0", "[4e33b37156817df1]", "[4325a6537ac9a87d5dfd]", "0x20")
+ self.bid64_to_binary80("1", "[4e33b37156817df1]", "[4325a6537ac9a87d5dfc]", "0x20")
+ self.bid64_to_binary80("2", "[4e33b37156817df1]", "[4325a6537ac9a87d5dfd]", "0x20")
+ self.bid64_to_binary80("3", "[4e33b37156817df1]", "[4325a6537ac9a87d5dfc]", "0x20")
+ self.bid64_to_binary80("4", "[4e33b37156817df1]", "[4325a6537ac9a87d5dfd]", "0x20")
+ self.bid64_to_binary80("0", "[4f250db878ed7ad3]", "[433dfe4deda3dbd97370]", "0x20")
+ self.bid64_to_binary80("1", "[4f250db878ed7ad3]", "[433dfe4deda3dbd9736f]", "0x20")
+ self.bid64_to_binary80("2", "[4f250db878ed7ad3]", "[433dfe4deda3dbd97370]", "0x20")
+ self.bid64_to_binary80("3", "[4f250db878ed7ad3]", "[433dfe4deda3dbd9736f]", "0x20")
+ self.bid64_to_binary80("4", "[4f250db878ed7ad3]", "[433dfe4deda3dbd97370]", "0x20")
+ self.bid64_to_binary80("0", "[4ff5cdff60c5392c]", "[435482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("1", "[4ff5cdff60c5392c]", "[435482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("2", "[4ff5cdff60c5392c]", "[435482cd3744491323e5]", "0x20")
+ self.bid64_to_binary80("3", "[4ff5cdff60c5392c]", "[435482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("4", "[4ff5cdff60c5392c]", "[435482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("0", "[50ebe619dea131d4]", "[436dd4b9859fba5ce7cc]", "0x20")
+ self.bid64_to_binary80("1", "[50ebe619dea131d4]", "[436dd4b9859fba5ce7cb]", "0x20")
+ self.bid64_to_binary80("2", "[50ebe619dea131d4]", "[436dd4b9859fba5ce7cc]", "0x20")
+ self.bid64_to_binary80("3", "[50ebe619dea131d4]", "[436dd4b9859fba5ce7cb]", "0x20")
+ self.bid64_to_binary80("4", "[50ebe619dea131d4]", "[436dd4b9859fba5ce7cc]", "0x20")
+ self.bid64_to_binary80("0", "[5204a2f4e35d6ccf]", "[438a9a659b03150c0ee0]", "0x20")
+ self.bid64_to_binary80("1", "[5204a2f4e35d6ccf]", "[438a9a659b03150c0ee0]", "0x20")
+ self.bid64_to_binary80("2", "[5204a2f4e35d6ccf]", "[438a9a659b03150c0ee1]", "0x20")
+ self.bid64_to_binary80("3", "[5204a2f4e35d6ccf]", "[438a9a659b03150c0ee0]", "0x20")
+ self.bid64_to_binary80("4", "[5204a2f4e35d6ccf]", "[438a9a659b03150c0ee0]", "0x20")
+ self.bid64_to_binary80("0", "[5404a46ec58033d7]", "[43bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("1", "[5404a46ec58033d7]", "[43bfaba0cf3dccace590]", "0x20")
+ self.bid64_to_binary80("2", "[5404a46ec58033d7]", "[43bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("3", "[5404a46ec58033d7]", "[43bfaba0cf3dccace590]", "0x20")
+ self.bid64_to_binary80("4", "[5404a46ec58033d7]", "[43bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("0", "[55048b70072872e3]", "[43d9fa5df6e9ad0f05dc]", "0x20")
+ self.bid64_to_binary80("1", "[55048b70072872e3]", "[43d9fa5df6e9ad0f05db]", "0x20")
+ self.bid64_to_binary80("2", "[55048b70072872e3]", "[43d9fa5df6e9ad0f05dc]", "0x20")
+ self.bid64_to_binary80("3", "[55048b70072872e3]", "[43d9fa5df6e9ad0f05db]", "0x20")
+ self.bid64_to_binary80("4", "[55048b70072872e3]", "[43d9fa5df6e9ad0f05dc]", "0x20")
+ self.bid64_to_binary80("0", "[55ea57ec51cf7f0c]", "[43f2a9d1fddb420e5400]", "0x20")
+ self.bid64_to_binary80("1", "[55ea57ec51cf7f0c]", "[43f2a9d1fddb420e53ff]", "0x20")
+ self.bid64_to_binary80("2", "[55ea57ec51cf7f0c]", "[43f2a9d1fddb420e5400]", "0x20")
+ self.bid64_to_binary80("3", "[55ea57ec51cf7f0c]", "[43f2a9d1fddb420e53ff]", "0x20")
+ self.bid64_to_binary80("4", "[55ea57ec51cf7f0c]", "[43f2a9d1fddb420e5400]", "0x20")
+ self.bid64_to_binary80("0", "[56eeefbc2ef65193]", "[440db6b5bc630b8b5c04]", "0x20")
+ self.bid64_to_binary80("1", "[56eeefbc2ef65193]", "[440db6b5bc630b8b5c04]", "0x20")
+ self.bid64_to_binary80("2", "[56eeefbc2ef65193]", "[440db6b5bc630b8b5c05]", "0x20")
+ self.bid64_to_binary80("3", "[56eeefbc2ef65193]", "[440db6b5bc630b8b5c04]", "0x20")
+ self.bid64_to_binary80("4", "[56eeefbc2ef65193]", "[440db6b5bc630b8b5c04]", "0x20")
+ self.bid64_to_binary80("0", "[57fca12a33a33b13]", "[44298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("1", "[57fca12a33a33b13]", "[44298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("2", "[57fca12a33a33b13]", "[44298276a5a2da731bca]", "0x20")
+ self.bid64_to_binary80("3", "[57fca12a33a33b13]", "[44298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("4", "[57fca12a33a33b13]", "[44298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("0", "[58cd5b5dc7c3ec12]", "[443f911e1c4a535a9cd4]", "0x20")
+ self.bid64_to_binary80("1", "[58cd5b5dc7c3ec12]", "[443f911e1c4a535a9cd3]", "0x20")
+ self.bid64_to_binary80("2", "[58cd5b5dc7c3ec12]", "[443f911e1c4a535a9cd4]", "0x20")
+ self.bid64_to_binary80("3", "[58cd5b5dc7c3ec12]", "[443f911e1c4a535a9cd3]", "0x20")
+ self.bid64_to_binary80("4", "[58cd5b5dc7c3ec12]", "[443f911e1c4a535a9cd4]", "0x20")
+ self.bid64_to_binary80("0", "[59e5488d49ebd9bf]", "[445bd5d6fe56fa9bba95]", "0x20")
+ self.bid64_to_binary80("1", "[59e5488d49ebd9bf]", "[445bd5d6fe56fa9bba95]", "0x20")
+ self.bid64_to_binary80("2", "[59e5488d49ebd9bf]", "[445bd5d6fe56fa9bba96]", "0x20")
+ self.bid64_to_binary80("3", "[59e5488d49ebd9bf]", "[445bd5d6fe56fa9bba95]", "0x20")
+ self.bid64_to_binary80("4", "[59e5488d49ebd9bf]", "[445bd5d6fe56fa9bba95]", "0x20")
+ self.bid64_to_binary80("0", "[5ad5321af6dfecb2]", "[4474ffaa7e7671435926]", "0x20")
+ self.bid64_to_binary80("1", "[5ad5321af6dfecb2]", "[4474ffaa7e7671435926]", "0x20")
+ self.bid64_to_binary80("2", "[5ad5321af6dfecb2]", "[4474ffaa7e7671435927]", "0x20")
+ self.bid64_to_binary80("3", "[5ad5321af6dfecb2]", "[4474ffaa7e7671435926]", "0x20")
+ self.bid64_to_binary80("4", "[5ad5321af6dfecb2]", "[4474ffaa7e7671435926]", "0x20")
+ self.bid64_to_binary80("0", "[5dc5ab163f1854ce]", "[44c2e2395221721adf2e]", "0x20")
+ self.bid64_to_binary80("1", "[5dc5ab163f1854ce]", "[44c2e2395221721adf2e]", "0x20")
+ self.bid64_to_binary80("2", "[5dc5ab163f1854ce]", "[44c2e2395221721adf2f]", "0x20")
+ self.bid64_to_binary80("3", "[5dc5ab163f1854ce]", "[44c2e2395221721adf2e]", "0x20")
+ self.bid64_to_binary80("4", "[5dc5ab163f1854ce]", "[44c2e2395221721adf2e]", "0x20")
+ self.bid64_to_binary80("0", "[5ec55e9fba7a5f03]", "[44dd9fab1f5b75a5634b]", "0x20")
+ self.bid64_to_binary80("1", "[5ec55e9fba7a5f03]", "[44dd9fab1f5b75a5634a]", "0x20")
+ self.bid64_to_binary80("2", "[5ec55e9fba7a5f03]", "[44dd9fab1f5b75a5634b]", "0x20")
+ self.bid64_to_binary80("3", "[5ec55e9fba7a5f03]", "[44dd9fab1f5b75a5634a]", "0x20")
+ self.bid64_to_binary80("4", "[5ec55e9fba7a5f03]", "[44dd9fab1f5b75a5634b]", "0x20")
+ self.bid64_to_binary80("0", "[61394fb19831a49b]", "[3b8bb33d998ac2157407]", "0x20")
+ self.bid64_to_binary80("1", "[61394fb19831a49b]", "[3b8bb33d998ac2157406]", "0x20")
+ self.bid64_to_binary80("2", "[61394fb19831a49b]", "[3b8bb33d998ac2157407]", "0x20")
+ self.bid64_to_binary80("3", "[61394fb19831a49b]", "[3b8bb33d998ac2157406]", "0x20")
+ self.bid64_to_binary80("4", "[61394fb19831a49b]", "[3b8bb33d998ac2157407]", "0x20")
+ self.bid64_to_binary80("0", "[63691b9818a0a8c3]", "[3c74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("1", "[63691b9818a0a8c3]", "[3c74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("2", "[63691b9818a0a8c3]", "[3c74810eee33a5ee7423]", "0x20")
+ self.bid64_to_binary80("3", "[63691b9818a0a8c3]", "[3c74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("4", "[63691b9818a0a8c3]", "[3c74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("0", "[6521b6eb980020e3]", "[3d2ad66501c7a0b2be02]", "0x20")
+ self.bid64_to_binary80("1", "[6521b6eb980020e3]", "[3d2ad66501c7a0b2be01]", "0x20")
+ self.bid64_to_binary80("2", "[6521b6eb980020e3]", "[3d2ad66501c7a0b2be02]", "0x20")
+ self.bid64_to_binary80("3", "[6521b6eb980020e3]", "[3d2ad66501c7a0b2be01]", "0x20")
+ self.bid64_to_binary80("4", "[6521b6eb980020e3]", "[3d2ad66501c7a0b2be02]", "0x20")
+ self.bid64_to_binary80("0", "[68ca6c944c4c40e3]", "[3eafad9ddce5c92a2c58]", "0x20")
+ self.bid64_to_binary80("1", "[68ca6c944c4c40e3]", "[3eafad9ddce5c92a2c58]", "0x20")
+ self.bid64_to_binary80("2", "[68ca6c944c4c40e3]", "[3eafad9ddce5c92a2c59]", "0x20")
+ self.bid64_to_binary80("3", "[68ca6c944c4c40e3]", "[3eafad9ddce5c92a2c58]", "0x20")
+ self.bid64_to_binary80("4", "[68ca6c944c4c40e3]", "[3eafad9ddce5c92a2c58]", "0x20")
+ self.bid64_to_binary80("0", "[6a437445d0d032f1]", "[3f4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("1", "[6a437445d0d032f1]", "[3f4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("2", "[6a437445d0d032f1]", "[3f4bc3c1b4a5e472b6c6]", "0x20")
+ self.bid64_to_binary80("3", "[6a437445d0d032f1]", "[3f4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("4", "[6a437445d0d032f1]", "[3f4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("0", "[6cb386f26fc0ffdf]", "[404ed3c21bceccecdc4e]", "0x20")
+ self.bid64_to_binary80("1", "[6cb386f26fc0ffdf]", "[404ed3c21bceccecdc4d]", "0x20")
+ self.bid64_to_binary80("2", "[6cb386f26fc0ffdf]", "[404ed3c21bceccecdc4e]", "0x20")
+ self.bid64_to_binary80("3", "[6cb386f26fc0ffdf]", "[404ed3c21bceccecdc4d]", "0x20")
+ self.bid64_to_binary80("4", "[6cb386f26fc0ffdf]", "[404ed3c21bceccecdc4e]", "0x20")
+ self.bid64_to_binary80("0", "[6cf386f26f265fbf]", "[40699dc5ada57cc34f1d]", "0x20")
+ self.bid64_to_binary80("1", "[6cf386f26f265fbf]", "[40699dc5ada57cc34f1d]", "0x20")
+ self.bid64_to_binary80("2", "[6cf386f26f265fbf]", "[40699dc5ada57cc34f1e]", "0x20")
+ self.bid64_to_binary80("3", "[6cf386f26f265fbf]", "[40699dc5ada57cc34f1d]", "0x20")
+ self.bid64_to_binary80("4", "[6cf386f26f265fbf]", "[40699dc5ada57cc34f1d]", "0x20")
+ self.bid64_to_binary80("0", "[6f628329b38d7ebf]", "[416ca574181c021ccdae]", "0x20")
+ self.bid64_to_binary80("1", "[6f628329b38d7ebf]", "[416ca574181c021ccdad]", "0x20")
+ self.bid64_to_binary80("2", "[6f628329b38d7ebf]", "[416ca574181c021ccdae]", "0x20")
+ self.bid64_to_binary80("3", "[6f628329b38d7ebf]", "[416ca574181c021ccdad]", "0x20")
+ self.bid64_to_binary80("4", "[6f628329b38d7ebf]", "[416ca574181c021ccdae]", "0x20")
+ self.bid64_to_binary80("0", "[709924e5b7734c16]", "[41ede9795845525e80ea]", "0x20")
+ self.bid64_to_binary80("1", "[709924e5b7734c16]", "[41ede9795845525e80ea]", "0x20")
+ self.bid64_to_binary80("2", "[709924e5b7734c16]", "[41ede9795845525e80eb]", "0x20")
+ self.bid64_to_binary80("3", "[709924e5b7734c16]", "[41ede9795845525e80ea]", "0x20")
+ self.bid64_to_binary80("4", "[709924e5b7734c16]", "[41ede9795845525e80ea]", "0x20")
+ self.bid64_to_binary80("0", "[7212e93d1248086f]", "[428a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("1", "[7212e93d1248086f]", "[428a869cd892f915530c]", "0x20")
+ self.bid64_to_binary80("2", "[7212e93d1248086f]", "[428a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("3", "[7212e93d1248086f]", "[428a869cd892f915530c]", "0x20")
+ self.bid64_to_binary80("4", "[7212e93d1248086f]", "[428a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("0", "[74c02bb8ac307968]", "[43a7c78ae40727b92580]", "0x20")
+ self.bid64_to_binary80("1", "[74c02bb8ac307968]", "[43a7c78ae40727b9257f]", "0x20")
+ self.bid64_to_binary80("2", "[74c02bb8ac307968]", "[43a7c78ae40727b92580]", "0x20")
+ self.bid64_to_binary80("3", "[74c02bb8ac307968]", "[43a7c78ae40727b9257f]", "0x20")
+ self.bid64_to_binary80("4", "[74c02bb8ac307968]", "[43a7c78ae40727b92580]", "0x20")
+ self.bid64_to_binary80("0", "[76f10688c9f158bb]", "[449094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("1", "[76f10688c9f158bb]", "[449094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("2", "[76f10688c9f158bb]", "[449094667517a8a1048b]", "0x20")
+ self.bid64_to_binary80("3", "[76f10688c9f158bb]", "[449094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("4", "[76f10688c9f158bb]", "[449094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("0", "[77324dfa209ff4e5]", "[44aae5b2b249b1954beb]", "0x20")
+ self.bid64_to_binary80("1", "[77324dfa209ff4e5]", "[44aae5b2b249b1954bea]", "0x20")
+ self.bid64_to_binary80("2", "[77324dfa209ff4e5]", "[44aae5b2b249b1954beb]", "0x20")
+ self.bid64_to_binary80("3", "[77324dfa209ff4e5]", "[44aae5b2b249b1954bea]", "0x20")
+ self.bid64_to_binary80("4", "[77324dfa209ff4e5]", "[44aae5b2b249b1954beb]", "0x20")
+ self.bid64_to_binary80("0", "[77fb86f26fc0ffff]", "[44fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("1", "[77fb86f26fc0ffff]", "[44fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("2", "[77fb86f26fc0ffff]", "[44fdf5f75bd4dab6cdb1]", "0x20")
+ self.bid64_to_binary80("3", "[77fb86f26fc0ffff]", "[44fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("4", "[77fb86f26fc0ffff]", "[44fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("0", "[7800000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[7800000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[7800000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[7800000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[7800000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[7c03080000000000]", "[7ffff080000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[7e03080000000000]", "[7ffff080000000000000]", "0x01")
+ self.bid64_to_binary80("0", "[8000000000000001]", "[bad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("1", "[8000000000000001]", "[bad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("2", "[8000000000000001]", "[bad4ea5da4ec2a406826]", "0x20")
+ self.bid64_to_binary80("3", "[8000000000000001]", "[bad4ea5da4ec2a406826]", "0x20")
+ self.bid64_to_binary80("4", "[8000000000000001]", "[bad4ea5da4ec2a406827]", "0x20")
+ self.bid64_to_binary80("0", "[800000000481e5b5]", "[baef840c41e88ce51b53]", "0x20")
+ self.bid64_to_binary80("1", "[800000000481e5b5]", "[baef840c41e88ce51b53]", "0x20")
+ self.bid64_to_binary80("2", "[800000000481e5b5]", "[baef840c41e88ce51b52]", "0x20")
+ self.bid64_to_binary80("3", "[800000000481e5b5]", "[baef840c41e88ce51b52]", "0x20")
+ self.bid64_to_binary80("4", "[800000000481e5b5]", "[baef840c41e88ce51b53]", "0x20")
+ self.bid64_to_binary80("0", "[80038d7ea4c67fff]", "[bb06d0289ce2dd618fd6]", "0x20")
+ self.bid64_to_binary80("1", "[80038d7ea4c67fff]", "[bb06d0289ce2dd618fd7]", "0x20")
+ self.bid64_to_binary80("2", "[80038d7ea4c67fff]", "[bb06d0289ce2dd618fd6]", "0x20")
+ self.bid64_to_binary80("3", "[80038d7ea4c67fff]", "[bb06d0289ce2dd618fd6]", "0x20")
+ self.bid64_to_binary80("4", "[80038d7ea4c67fff]", "[bb06d0289ce2dd618fd6]", "0x20")
+ self.bid64_to_binary80("0", "[80180d0cf395d960]", "[bb09b025d0973e127b8c]", "0x20")
+ self.bid64_to_binary80("1", "[80180d0cf395d960]", "[bb09b025d0973e127b8c]", "0x20")
+ self.bid64_to_binary80("2", "[80180d0cf395d960]", "[bb09b025d0973e127b8b]", "0x20")
+ self.bid64_to_binary80("3", "[80180d0cf395d960]", "[bb09b025d0973e127b8b]", "0x20")
+ self.bid64_to_binary80("4", "[80180d0cf395d960]", "[bb09b025d0973e127b8c]", "0x20")
+ self.bid64_to_binary80("0", "[81065f280e451fc9]", "[bb228b13472c8260fa84]", "0x20")
+ self.bid64_to_binary80("1", "[81065f280e451fc9]", "[bb228b13472c8260fa85]", "0x20")
+ self.bid64_to_binary80("2", "[81065f280e451fc9]", "[bb228b13472c8260fa84]", "0x20")
+ self.bid64_to_binary80("3", "[81065f280e451fc9]", "[bb228b13472c8260fa84]", "0x20")
+ self.bid64_to_binary80("4", "[81065f280e451fc9]", "[bb228b13472c8260fa84]", "0x20")
+ self.bid64_to_binary80("0", "[81e0000000000001]", "[bb06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("1", "[81e0000000000001]", "[bb06d0289ce2dd61ca6e]", "0x20")
+ self.bid64_to_binary80("2", "[81e0000000000001]", "[bb06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("3", "[81e0000000000001]", "[bb06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("4", "[81e0000000000001]", "[bb06d0289ce2dd61ca6d]", "0x20")
+ self.bid64_to_binary80("0", "[8200000000000001]", "[bb0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("1", "[8200000000000001]", "[bb0a8219620dca5d1e85]", "0x20")
+ self.bid64_to_binary80("2", "[8200000000000001]", "[bb0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("3", "[8200000000000001]", "[bb0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("4", "[8200000000000001]", "[bb0a8219620dca5d1e84]", "0x20")
+ self.bid64_to_binary80("0", "[82017304a7852948]", "[bb3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("1", "[82017304a7852948]", "[bb3abc8d26a1bf9db4b4]", "0x20")
+ self.bid64_to_binary80("2", "[82017304a7852948]", "[bb3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("3", "[82017304a7852948]", "[bb3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("4", "[82017304a7852948]", "[bb3abc8d26a1bf9db4b3]", "0x20")
+ self.bid64_to_binary80("0", "[830122c1071ca197]", "[bb54dc2e667705af5f63]", "0x20")
+ self.bid64_to_binary80("1", "[830122c1071ca197]", "[bb54dc2e667705af5f64]", "0x20")
+ self.bid64_to_binary80("2", "[830122c1071ca197]", "[bb54dc2e667705af5f63]", "0x20")
+ self.bid64_to_binary80("3", "[830122c1071ca197]", "[bb54dc2e667705af5f63]", "0x20")
+ self.bid64_to_binary80("4", "[830122c1071ca197]", "[bb54dc2e667705af5f63]", "0x20")
+ self.bid64_to_binary80("0", "[83fa5bc2d0c842dd]", "[bb70be5c0486d0a8f680]", "0x20")
+ self.bid64_to_binary80("1", "[83fa5bc2d0c842dd]", "[bb70be5c0486d0a8f680]", "0x20")
+ self.bid64_to_binary80("2", "[83fa5bc2d0c842dd]", "[bb70be5c0486d0a8f67f]", "0x20")
+ self.bid64_to_binary80("3", "[83fa5bc2d0c842dd]", "[bb70be5c0486d0a8f67f]", "0x20")
+ self.bid64_to_binary80("4", "[83fa5bc2d0c842dd]", "[bb70be5c0486d0a8f680]", "0x20")
+ self.bid64_to_binary80("0", "[85e989eed46f5407]", "[bba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("1", "[85e989eed46f5407]", "[bba498f6bc430c01f8eb]", "0x20")
+ self.bid64_to_binary80("2", "[85e989eed46f5407]", "[bba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("3", "[85e989eed46f5407]", "[bba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("4", "[85e989eed46f5407]", "[bba498f6bc430c01f8ea]", "0x20")
+ self.bid64_to_binary80("0", "[86e24fee82ff5d07]", "[bbbcdd01df96b18b24a5]", "0x20")
+ self.bid64_to_binary80("1", "[86e24fee82ff5d07]", "[bbbcdd01df96b18b24a6]", "0x20")
+ self.bid64_to_binary80("2", "[86e24fee82ff5d07]", "[bbbcdd01df96b18b24a5]", "0x20")
+ self.bid64_to_binary80("3", "[86e24fee82ff5d07]", "[bbbcdd01df96b18b24a5]", "0x20")
+ self.bid64_to_binary80("4", "[86e24fee82ff5d07]", "[bbbcdd01df96b18b24a5]", "0x20")
+ self.bid64_to_binary80("0", "[87e11aa2b5755dbb]", "[bbd69d3f32f52266da35]", "0x20")
+ self.bid64_to_binary80("1", "[87e11aa2b5755dbb]", "[bbd69d3f32f52266da36]", "0x20")
+ self.bid64_to_binary80("2", "[87e11aa2b5755dbb]", "[bbd69d3f32f52266da35]", "0x20")
+ self.bid64_to_binary80("3", "[87e11aa2b5755dbb]", "[bbd69d3f32f52266da35]", "0x20")
+ self.bid64_to_binary80("4", "[87e11aa2b5755dbb]", "[bbd69d3f32f52266da35]", "0x20")
+ self.bid64_to_binary80("0", "[88c6269b6f5e080d]", "[bbf0828a8a66a3c3ade0]", "0x20")
+ self.bid64_to_binary80("1", "[88c6269b6f5e080d]", "[bbf0828a8a66a3c3ade0]", "0x20")
+ self.bid64_to_binary80("2", "[88c6269b6f5e080d]", "[bbf0828a8a66a3c3addf]", "0x20")
+ self.bid64_to_binary80("3", "[88c6269b6f5e080d]", "[bbf0828a8a66a3c3addf]", "0x20")
+ self.bid64_to_binary80("4", "[88c6269b6f5e080d]", "[bbf0828a8a66a3c3ade0]", "0x20")
+ self.bid64_to_binary80("0", "[89ca6ac1bb258907]", "[bc0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("1", "[89ca6ac1bb258907]", "[bc0ba4b88f8d7381c89d]", "0x20")
+ self.bid64_to_binary80("2", "[89ca6ac1bb258907]", "[bc0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("3", "[89ca6ac1bb258907]", "[bc0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("4", "[89ca6ac1bb258907]", "[bc0ba4b88f8d7381c89c]", "0x20")
+ self.bid64_to_binary80("0", "[8ad039b35ba81aa1]", "[bc26bf283fde4142c8ca]", "0x20")
+ self.bid64_to_binary80("1", "[8ad039b35ba81aa1]", "[bc26bf283fde4142c8ca]", "0x20")
+ self.bid64_to_binary80("2", "[8ad039b35ba81aa1]", "[bc26bf283fde4142c8c9]", "0x20")
+ self.bid64_to_binary80("3", "[8ad039b35ba81aa1]", "[bc26bf283fde4142c8c9]", "0x20")
+ self.bid64_to_binary80("4", "[8ad039b35ba81aa1]", "[bc26bf283fde4142c8ca]", "0x20")
+ self.bid64_to_binary80("0", "[8bc195f940bef1ed]", "[bc3ddeb8e0a97b8b5e20]", "0x20")
+ self.bid64_to_binary80("1", "[8bc195f940bef1ed]", "[bc3ddeb8e0a97b8b5e21]", "0x20")
+ self.bid64_to_binary80("2", "[8bc195f940bef1ed]", "[bc3ddeb8e0a97b8b5e20]", "0x20")
+ self.bid64_to_binary80("3", "[8bc195f940bef1ed]", "[bc3ddeb8e0a97b8b5e20]", "0x20")
+ self.bid64_to_binary80("4", "[8bc195f940bef1ed]", "[bc3ddeb8e0a97b8b5e20]", "0x20")
+ self.bid64_to_binary80("0", "[8cc08717332a5319]", "[bc56dcdf44afe4a8d1ba]", "0x20")
+ self.bid64_to_binary80("1", "[8cc08717332a5319]", "[bc56dcdf44afe4a8d1ba]", "0x20")
+ self.bid64_to_binary80("2", "[8cc08717332a5319]", "[bc56dcdf44afe4a8d1b9]", "0x20")
+ self.bid64_to_binary80("3", "[8cc08717332a5319]", "[bc56dcdf44afe4a8d1b9]", "0x20")
+ self.bid64_to_binary80("4", "[8cc08717332a5319]", "[bc56dcdf44afe4a8d1ba]", "0x20")
+ self.bid64_to_binary80("0", "[8eb1dd4cb546b4dd]", "[bc8dcf897bc99e20a06c]", "0x20")
+ self.bid64_to_binary80("1", "[8eb1dd4cb546b4dd]", "[bc8dcf897bc99e20a06d]", "0x20")
+ self.bid64_to_binary80("2", "[8eb1dd4cb546b4dd]", "[bc8dcf897bc99e20a06c]", "0x20")
+ self.bid64_to_binary80("3", "[8eb1dd4cb546b4dd]", "[bc8dcf897bc99e20a06c]", "0x20")
+ self.bid64_to_binary80("4", "[8eb1dd4cb546b4dd]", "[bc8dcf897bc99e20a06c]", "0x20")
+ self.bid64_to_binary80("0", "[8fbb79d1a45c195d]", "[bca8edd1c3f2c0bb6acc]", "0x20")
+ self.bid64_to_binary80("1", "[8fbb79d1a45c195d]", "[bca8edd1c3f2c0bb6acd]", "0x20")
+ self.bid64_to_binary80("2", "[8fbb79d1a45c195d]", "[bca8edd1c3f2c0bb6acc]", "0x20")
+ self.bid64_to_binary80("3", "[8fbb79d1a45c195d]", "[bca8edd1c3f2c0bb6acc]", "0x20")
+ self.bid64_to_binary80("4", "[8fbb79d1a45c195d]", "[bca8edd1c3f2c0bb6acc]", "0x20")
+ self.bid64_to_binary80("0", "[90c015f60a747594]", "[bcbeb1080775580797ac]", "0x20")
+ self.bid64_to_binary80("1", "[90c015f60a747594]", "[bcbeb1080775580797ad]", "0x20")
+ self.bid64_to_binary80("2", "[90c015f60a747594]", "[bcbeb1080775580797ac]", "0x20")
+ self.bid64_to_binary80("3", "[90c015f60a747594]", "[bcbeb1080775580797ac]", "0x20")
+ self.bid64_to_binary80("4", "[90c015f60a747594]", "[bcbeb1080775580797ac]", "0x20")
+ self.bid64_to_binary80("0", "[91a16a7d8e584721]", "[bcd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("1", "[91a16a7d8e584721]", "[bcd9d9b6564b6799fd0a]", "0x20")
+ self.bid64_to_binary80("2", "[91a16a7d8e584721]", "[bcd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("3", "[91a16a7d8e584721]", "[bcd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("4", "[91a16a7d8e584721]", "[bcd9d9b6564b6799fd09]", "0x20")
+ self.bid64_to_binary80("0", "[92a03a03b9294519]", "[bcf1cfaf227051e5be54]", "0x20")
+ self.bid64_to_binary80("1", "[92a03a03b9294519]", "[bcf1cfaf227051e5be54]", "0x20")
+ self.bid64_to_binary80("2", "[92a03a03b9294519]", "[bcf1cfaf227051e5be53]", "0x20")
+ self.bid64_to_binary80("3", "[92a03a03b9294519]", "[bcf1cfaf227051e5be53]", "0x20")
+ self.bid64_to_binary80("4", "[92a03a03b9294519]", "[bcf1cfaf227051e5be54]", "0x20")
+ self.bid64_to_binary80("0", "[9380f23a585e19f3]", "[bd0b8136dec12a865960]", "0x20")
+ self.bid64_to_binary80("1", "[9380f23a585e19f3]", "[bd0b8136dec12a865961]", "0x20")
+ self.bid64_to_binary80("2", "[9380f23a585e19f3]", "[bd0b8136dec12a865960]", "0x20")
+ self.bid64_to_binary80("3", "[9380f23a585e19f3]", "[bd0b8136dec12a865960]", "0x20")
+ self.bid64_to_binary80("4", "[9380f23a585e19f3]", "[bd0b8136dec12a865960]", "0x20")
+ self.bid64_to_binary80("0", "[9584a79bc956ff3c]", "[bd42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("1", "[9584a79bc956ff3c]", "[bd42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("2", "[9584a79bc956ff3c]", "[bd42b06ddd5e07671150]", "0x20")
+ self.bid64_to_binary80("3", "[9584a79bc956ff3c]", "[bd42b06ddd5e07671150]", "0x20")
+ self.bid64_to_binary80("4", "[9584a79bc956ff3c]", "[bd42b06ddd5e07671151]", "0x20")
+ self.bid64_to_binary80("0", "[9683eac93730957f]", "[bd5cdd3da2157d482b29]", "0x20")
+ self.bid64_to_binary80("1", "[9683eac93730957f]", "[bd5cdd3da2157d482b29]", "0x20")
+ self.bid64_to_binary80("2", "[9683eac93730957f]", "[bd5cdd3da2157d482b28]", "0x20")
+ self.bid64_to_binary80("3", "[9683eac93730957f]", "[bd5cdd3da2157d482b28]", "0x20")
+ self.bid64_to_binary80("4", "[9683eac93730957f]", "[bd5cdd3da2157d482b29]", "0x20")
+ self.bid64_to_binary80("0", "[97809126ad6a3191]", "[bd74bee0ec5b00d77c26]", "0x20")
+ self.bid64_to_binary80("1", "[97809126ad6a3191]", "[bd74bee0ec5b00d77c26]", "0x20")
+ self.bid64_to_binary80("2", "[97809126ad6a3191]", "[bd74bee0ec5b00d77c25]", "0x20")
+ self.bid64_to_binary80("3", "[97809126ad6a3191]", "[bd74bee0ec5b00d77c25]", "0x20")
+ self.bid64_to_binary80("4", "[97809126ad6a3191]", "[bd74bee0ec5b00d77c26]", "0x20")
+ self.bid64_to_binary80("0", "[986c7e8297928a1f]", "[bd909cb0f7a460b2c378]", "0x20")
+ self.bid64_to_binary80("1", "[986c7e8297928a1f]", "[bd909cb0f7a460b2c379]", "0x20")
+ self.bid64_to_binary80("2", "[986c7e8297928a1f]", "[bd909cb0f7a460b2c378]", "0x20")
+ self.bid64_to_binary80("3", "[986c7e8297928a1f]", "[bd909cb0f7a460b2c378]", "0x20")
+ self.bid64_to_binary80("4", "[986c7e8297928a1f]", "[bd909cb0f7a460b2c378]", "0x20")
+ self.bid64_to_binary80("0", "[99837fa0bfc30bed]", "[bdaca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("1", "[99837fa0bfc30bed]", "[bdaca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("2", "[99837fa0bfc30bed]", "[bdaca373312d310ae54a]", "0x20")
+ self.bid64_to_binary80("3", "[99837fa0bfc30bed]", "[bdaca373312d310ae54a]", "0x20")
+ self.bid64_to_binary80("4", "[99837fa0bfc30bed]", "[bdaca373312d310ae54b]", "0x20")
+ self.bid64_to_binary80("0", "[9a674d06ae6f67f1]", "[bdc4cb4ea26c1955c3c7]", "0x20")
+ self.bid64_to_binary80("1", "[9a674d06ae6f67f1]", "[bdc4cb4ea26c1955c3c8]", "0x20")
+ self.bid64_to_binary80("2", "[9a674d06ae6f67f1]", "[bdc4cb4ea26c1955c3c7]", "0x20")
+ self.bid64_to_binary80("3", "[9a674d06ae6f67f1]", "[bdc4cb4ea26c1955c3c7]", "0x20")
+ self.bid64_to_binary80("4", "[9a674d06ae6f67f1]", "[bdc4cb4ea26c1955c3c7]", "0x20")
+ self.bid64_to_binary80("0", "[9b660d25f569a6e3]", "[bddefb1a261e060ce7f7]", "0x20")
+ self.bid64_to_binary80("1", "[9b660d25f569a6e3]", "[bddefb1a261e060ce7f8]", "0x20")
+ self.bid64_to_binary80("2", "[9b660d25f569a6e3]", "[bddefb1a261e060ce7f7]", "0x20")
+ self.bid64_to_binary80("3", "[9b660d25f569a6e3]", "[bddefb1a261e060ce7f7]", "0x20")
+ self.bid64_to_binary80("4", "[9b660d25f569a6e3]", "[bddefb1a261e060ce7f7]", "0x20")
+ self.bid64_to_binary80("0", "[9c60e4e58893346a]", "[bdf6dd25177c250ec593]", "0x20")
+ self.bid64_to_binary80("1", "[9c60e4e58893346a]", "[bdf6dd25177c250ec593]", "0x20")
+ self.bid64_to_binary80("2", "[9c60e4e58893346a]", "[bdf6dd25177c250ec592]", "0x20")
+ self.bid64_to_binary80("3", "[9c60e4e58893346a]", "[bdf6dd25177c250ec592]", "0x20")
+ self.bid64_to_binary80("4", "[9c60e4e58893346a]", "[bdf6dd25177c250ec593]", "0x20")
+ self.bid64_to_binary80("0", "[9d4d4cceef639565]", "[be11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("1", "[9d4d4cceef639565]", "[be11f516476cc975b501]", "0x20")
+ self.bid64_to_binary80("2", "[9d4d4cceef639565]", "[be11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("3", "[9d4d4cceef639565]", "[be11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("4", "[9d4d4cceef639565]", "[be11f516476cc975b500]", "0x20")
+ self.bid64_to_binary80("0", "[9e51007c76e030d5]", "[be2ce96ddfbf28fd8460]", "0x20")
+ self.bid64_to_binary80("1", "[9e51007c76e030d5]", "[be2ce96ddfbf28fd8461]", "0x20")
+ self.bid64_to_binary80("2", "[9e51007c76e030d5]", "[be2ce96ddfbf28fd8460]", "0x20")
+ self.bid64_to_binary80("3", "[9e51007c76e030d5]", "[be2ce96ddfbf28fd8460]", "0x20")
+ self.bid64_to_binary80("4", "[9e51007c76e030d5]", "[be2ce96ddfbf28fd8460]", "0x20")
+ self.bid64_to_binary80("0", "[9f4913f0deea2bdb]", "[be46b9b8ca1ca9abe1f5]", "0x20")
+ self.bid64_to_binary80("1", "[9f4913f0deea2bdb]", "[be46b9b8ca1ca9abe1f6]", "0x20")
+ self.bid64_to_binary80("2", "[9f4913f0deea2bdb]", "[be46b9b8ca1ca9abe1f5]", "0x20")
+ self.bid64_to_binary80("3", "[9f4913f0deea2bdb]", "[be46b9b8ca1ca9abe1f5]", "0x20")
+ self.bid64_to_binary80("4", "[9f4913f0deea2bdb]", "[be46b9b8ca1ca9abe1f5]", "0x20")
+ self.bid64_to_binary80("0", "[a042923b55a17450]", "[be5f9cc57a73e26f9da1]", "0x20")
+ self.bid64_to_binary80("1", "[a042923b55a17450]", "[be5f9cc57a73e26f9da1]", "0x20")
+ self.bid64_to_binary80("2", "[a042923b55a17450]", "[be5f9cc57a73e26f9da0]", "0x20")
+ self.bid64_to_binary80("3", "[a042923b55a17450]", "[be5f9cc57a73e26f9da0]", "0x20")
+ self.bid64_to_binary80("4", "[a042923b55a17450]", "[be5f9cc57a73e26f9da1]", "0x20")
+ self.bid64_to_binary80("0", "[a1603e0f9904bfbf]", "[be79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("1", "[a1603e0f9904bfbf]", "[be79dc415b94e220b278]", "0x20")
+ self.bid64_to_binary80("2", "[a1603e0f9904bfbf]", "[be79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("3", "[a1603e0f9904bfbf]", "[be79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("4", "[a1603e0f9904bfbf]", "[be79dc415b94e220b277]", "0x20")
+ self.bid64_to_binary80("0", "[a240759990fa9957]", "[be91f8c4af9085b92792]", "0x20")
+ self.bid64_to_binary80("1", "[a240759990fa9957]", "[be91f8c4af9085b92793]", "0x20")
+ self.bid64_to_binary80("2", "[a240759990fa9957]", "[be91f8c4af9085b92792]", "0x20")
+ self.bid64_to_binary80("3", "[a240759990fa9957]", "[be91f8c4af9085b92792]", "0x20")
+ self.bid64_to_binary80("4", "[a240759990fa9957]", "[be91f8c4af9085b92792]", "0x20")
+ self.bid64_to_binary80("0", "[a42743748f4e7c51]", "[bec7da59ba4da57cebb2]", "0x20")
+ self.bid64_to_binary80("1", "[a42743748f4e7c51]", "[bec7da59ba4da57cebb3]", "0x20")
+ self.bid64_to_binary80("2", "[a42743748f4e7c51]", "[bec7da59ba4da57cebb2]", "0x20")
+ self.bid64_to_binary80("3", "[a42743748f4e7c51]", "[bec7da59ba4da57cebb2]", "0x20")
+ self.bid64_to_binary80("4", "[a42743748f4e7c51]", "[bec7da59ba4da57cebb2]", "0x20")
+ self.bid64_to_binary80("0", "[a5410fc0828b9660]", "[bee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("1", "[a5410fc0828b9660]", "[bee2edc1826fbc946764]", "0x20")
+ self.bid64_to_binary80("2", "[a5410fc0828b9660]", "[bee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("3", "[a5410fc0828b9660]", "[bee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("4", "[a5410fc0828b9660]", "[bee2edc1826fbc946763]", "0x20")
+ self.bid64_to_binary80("0", "[a623cbeb33ad5d6e]", "[befbfd6b2eec96b9337a]", "0x20")
+ self.bid64_to_binary80("1", "[a623cbeb33ad5d6e]", "[befbfd6b2eec96b9337b]", "0x20")
+ self.bid64_to_binary80("2", "[a623cbeb33ad5d6e]", "[befbfd6b2eec96b9337a]", "0x20")
+ self.bid64_to_binary80("3", "[a623cbeb33ad5d6e]", "[befbfd6b2eec96b9337a]", "0x20")
+ self.bid64_to_binary80("4", "[a623cbeb33ad5d6e]", "[befbfd6b2eec96b9337a]", "0x20")
+ self.bid64_to_binary80("0", "[a72124d65a445d2a]", "[bf14e38deba3cea2f10c]", "0x20")
+ self.bid64_to_binary80("1", "[a72124d65a445d2a]", "[bf14e38deba3cea2f10d]", "0x20")
+ self.bid64_to_binary80("2", "[a72124d65a445d2a]", "[bf14e38deba3cea2f10c]", "0x20")
+ self.bid64_to_binary80("3", "[a72124d65a445d2a]", "[bf14e38deba3cea2f10c]", "0x20")
+ self.bid64_to_binary80("4", "[a72124d65a445d2a]", "[bf14e38deba3cea2f10c]", "0x20")
+ self.bid64_to_binary80("0", "[a80bdff99b6c7f83]", "[bf2fb000a5cbda7f82f0]", "0x20")
+ self.bid64_to_binary80("1", "[a80bdff99b6c7f83]", "[bf2fb000a5cbda7f82f1]", "0x20")
+ self.bid64_to_binary80("2", "[a80bdff99b6c7f83]", "[bf2fb000a5cbda7f82f0]", "0x20")
+ self.bid64_to_binary80("3", "[a80bdff99b6c7f83]", "[bf2fb000a5cbda7f82f0]", "0x20")
+ self.bid64_to_binary80("4", "[a80bdff99b6c7f83]", "[bf2fb000a5cbda7f82f0]", "0x20")
+ self.bid64_to_binary80("0", "[aa0bc9f26111b76d]", "[bf64c1fc73b80da40f5e]", "0x20")
+ self.bid64_to_binary80("1", "[aa0bc9f26111b76d]", "[bf64c1fc73b80da40f5e]", "0x20")
+ self.bid64_to_binary80("2", "[aa0bc9f26111b76d]", "[bf64c1fc73b80da40f5d]", "0x20")
+ self.bid64_to_binary80("3", "[aa0bc9f26111b76d]", "[bf64c1fc73b80da40f5d]", "0x20")
+ self.bid64_to_binary80("4", "[aa0bc9f26111b76d]", "[bf64c1fc73b80da40f5e]", "0x20")
+ self.bid64_to_binary80("0", "[ab03fe4ab6bf0f6c]", "[bf7dc3d50be7604908b3]", "0x20")
+ self.bid64_to_binary80("1", "[ab03fe4ab6bf0f6c]", "[bf7dc3d50be7604908b3]", "0x20")
+ self.bid64_to_binary80("2", "[ab03fe4ab6bf0f6c]", "[bf7dc3d50be7604908b2]", "0x20")
+ self.bid64_to_binary80("3", "[ab03fe4ab6bf0f6c]", "[bf7dc3d50be7604908b2]", "0x20")
+ self.bid64_to_binary80("4", "[ab03fe4ab6bf0f6c]", "[bf7dc3d50be7604908b3]", "0x20")
+ self.bid64_to_binary80("0", "[ac0135f19da7d301]", "[bf96b0f256bf2f71da35]", "0x20")
+ self.bid64_to_binary80("1", "[ac0135f19da7d301]", "[bf96b0f256bf2f71da35]", "0x20")
+ self.bid64_to_binary80("2", "[ac0135f19da7d301]", "[bf96b0f256bf2f71da34]", "0x20")
+ self.bid64_to_binary80("3", "[ac0135f19da7d301]", "[bf96b0f256bf2f71da34]", "0x20")
+ self.bid64_to_binary80("4", "[ac0135f19da7d301]", "[bf96b0f256bf2f71da35]", "0x20")
+ self.bid64_to_binary80("0", "[acea34f9eb3fbe09]", "[bfb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("1", "[acea34f9eb3fbe09]", "[bfb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("2", "[acea34f9eb3fbe09]", "[bfb0de49955e01875987]", "0x20")
+ self.bid64_to_binary80("3", "[acea34f9eb3fbe09]", "[bfb0de49955e01875987]", "0x20")
+ self.bid64_to_binary80("4", "[acea34f9eb3fbe09]", "[bfb0de49955e01875988]", "0x20")
+ self.bid64_to_binary80("0", "[adff71ffb1056361]", "[bfccff1d5961ac8e2db8]", "0x20")
+ self.bid64_to_binary80("1", "[adff71ffb1056361]", "[bfccff1d5961ac8e2db9]", "0x20")
+ self.bid64_to_binary80("2", "[adff71ffb1056361]", "[bfccff1d5961ac8e2db8]", "0x20")
+ self.bid64_to_binary80("3", "[adff71ffb1056361]", "[bfccff1d5961ac8e2db8]", "0x20")
+ self.bid64_to_binary80("4", "[adff71ffb1056361]", "[bfccff1d5961ac8e2db8]", "0x20")
+ self.bid64_to_binary80("0", "[aef3b8b367cbe982]", "[bfe6ee6b0c2cb5f187f2]", "0x20")
+ self.bid64_to_binary80("1", "[aef3b8b367cbe982]", "[bfe6ee6b0c2cb5f187f3]", "0x20")
+ self.bid64_to_binary80("2", "[aef3b8b367cbe982]", "[bfe6ee6b0c2cb5f187f2]", "0x20")
+ self.bid64_to_binary80("3", "[aef3b8b367cbe982]", "[bfe6ee6b0c2cb5f187f2]", "0x20")
+ self.bid64_to_binary80("4", "[aef3b8b367cbe982]", "[bfe6ee6b0c2cb5f187f2]", "0x20")
+ self.bid64_to_binary80("0", "[afee35f4166a149b]", "[c000ffff8b23b82010a2]", "0x20")
+ self.bid64_to_binary80("1", "[afee35f4166a149b]", "[c000ffff8b23b82010a3]", "0x20")
+ self.bid64_to_binary80("2", "[afee35f4166a149b]", "[c000ffff8b23b82010a2]", "0x20")
+ self.bid64_to_binary80("3", "[afee35f4166a149b]", "[c000ffff8b23b82010a2]", "0x20")
+ self.bid64_to_binary80("4", "[afee35f4166a149b]", "[c000ffff8b23b82010a2]", "0x20")
+ self.bid64_to_binary80("0", "[b0c00000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b0c00000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b0c00000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b0c00000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b0c00000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b0e4c4b3ffff3dd0]", "[c019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("1", "[b0e4c4b3ffff3dd0]", "[c019ffffffffd746a353]", "0x20")
+ self.bid64_to_binary80("2", "[b0e4c4b3ffff3dd0]", "[c019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("3", "[b0e4c4b3ffff3dd0]", "[c019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("4", "[b0e4c4b3ffff3dd0]", "[c019ffffffffd746a352]", "0x20")
+ self.bid64_to_binary80("0", "[b1a000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b1a000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b1a000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b1a000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b1a000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b1c0000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b1c0000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b1c0000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b1c0000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b1c0000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b1c0000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b1c0000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b1c0000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b1c0000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b1c0000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b1c00000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b1c00000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b1c00000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b1c00000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b1c00000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b1c00000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[b1c00000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[b1c00000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[b1c00000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[b1c00000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid64_to_binary80("0", "[b1cffffffffffffa]", "[c032ffffffffffffa000]", "0x00")
+ self.bid64_to_binary80("1", "[b1cffffffffffffa]", "[c032ffffffffffffa000]", "0x00")
+ self.bid64_to_binary80("2", "[b1cffffffffffffa]", "[c032ffffffffffffa000]", "0x00")
+ self.bid64_to_binary80("3", "[b1cffffffffffffa]", "[c032ffffffffffffa000]", "0x00")
+ self.bid64_to_binary80("4", "[b1cffffffffffffa]", "[c032ffffffffffffa000]", "0x00")
+ self.bid64_to_binary80("0", "[b4d356548405c99f]", "[c082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("1", "[b4d356548405c99f]", "[c082ffed12e96ae3e1f3]", "0x20")
+ self.bid64_to_binary80("2", "[b4d356548405c99f]", "[c082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("3", "[b4d356548405c99f]", "[c082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("4", "[b4d356548405c99f]", "[c082ffed12e96ae3e1f2]", "0x20")
+ self.bid64_to_binary80("0", "[b5bdaaab8fd29f30]", "[c09aea076240a41c5bff]", "0x20")
+ self.bid64_to_binary80("1", "[b5bdaaab8fd29f30]", "[c09aea076240a41c5c00]", "0x20")
+ self.bid64_to_binary80("2", "[b5bdaaab8fd29f30]", "[c09aea076240a41c5bff]", "0x20")
+ self.bid64_to_binary80("3", "[b5bdaaab8fd29f30]", "[c09aea076240a41c5bff]", "0x20")
+ self.bid64_to_binary80("4", "[b5bdaaab8fd29f30]", "[c09aea076240a41c5bff]", "0x20")
+ self.bid64_to_binary80("0", "[b6af4ccdd8311634]", "[c0b4b3d9cf89a52da479]", "0x20")
+ self.bid64_to_binary80("1", "[b6af4ccdd8311634]", "[c0b4b3d9cf89a52da47a]", "0x20")
+ self.bid64_to_binary80("2", "[b6af4ccdd8311634]", "[c0b4b3d9cf89a52da479]", "0x20")
+ self.bid64_to_binary80("3", "[b6af4ccdd8311634]", "[c0b4b3d9cf89a52da479]", "0x20")
+ self.bid64_to_binary80("4", "[b6af4ccdd8311634]", "[c0b4b3d9cf89a52da479]", "0x20")
+ self.bid64_to_binary80("0", "[b7be6309ea8f3c66]", "[c0d08510dc06ea0d20c6]", "0x20")
+ self.bid64_to_binary80("1", "[b7be6309ea8f3c66]", "[c0d08510dc06ea0d20c7]", "0x20")
+ self.bid64_to_binary80("2", "[b7be6309ea8f3c66]", "[c0d08510dc06ea0d20c6]", "0x20")
+ self.bid64_to_binary80("3", "[b7be6309ea8f3c66]", "[c0d08510dc06ea0d20c6]", "0x20")
+ self.bid64_to_binary80("4", "[b7be6309ea8f3c66]", "[c0d08510dc06ea0d20c6]", "0x20")
+ self.bid64_to_binary80("0", "[b8b6d99681faa149]", "[c0ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("1", "[b8b6d99681faa149]", "[c0ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("2", "[b8b6d99681faa149]", "[c0ea951a579a230f71c4]", "0x20")
+ self.bid64_to_binary80("3", "[b8b6d99681faa149]", "[c0ea951a579a230f71c4]", "0x20")
+ self.bid64_to_binary80("4", "[b8b6d99681faa149]", "[c0ea951a579a230f71c5]", "0x20")
+ self.bid64_to_binary80("0", "[b984c0a08a8d6f72]", "[c0ff93df7212707c7c50]", "0x20")
+ self.bid64_to_binary80("1", "[b984c0a08a8d6f72]", "[c0ff93df7212707c7c50]", "0x20")
+ self.bid64_to_binary80("2", "[b984c0a08a8d6f72]", "[c0ff93df7212707c7c4f]", "0x20")
+ self.bid64_to_binary80("3", "[b984c0a08a8d6f72]", "[c0ff93df7212707c7c4f]", "0x20")
+ self.bid64_to_binary80("4", "[b984c0a08a8d6f72]", "[c0ff93df7212707c7c50]", "0x20")
+ self.bid64_to_binary80("0", "[baa65c0d9b8829c5]", "[c11db84a018c68c4f2ad]", "0x20")
+ self.bid64_to_binary80("1", "[baa65c0d9b8829c5]", "[c11db84a018c68c4f2ae]", "0x20")
+ self.bid64_to_binary80("2", "[baa65c0d9b8829c5]", "[c11db84a018c68c4f2ad]", "0x20")
+ self.bid64_to_binary80("3", "[baa65c0d9b8829c5]", "[c11db84a018c68c4f2ad]", "0x20")
+ self.bid64_to_binary80("4", "[baa65c0d9b8829c5]", "[c11db84a018c68c4f2ad]", "0x20")
+ self.bid64_to_binary80("0", "[bb95ecf21370e88a]", "[c136bd5a5828b57eaec2]", "0x20")
+ self.bid64_to_binary80("1", "[bb95ecf21370e88a]", "[c136bd5a5828b57eaec3]", "0x20")
+ self.bid64_to_binary80("2", "[bb95ecf21370e88a]", "[c136bd5a5828b57eaec2]", "0x20")
+ self.bid64_to_binary80("3", "[bb95ecf21370e88a]", "[c136bd5a5828b57eaec2]", "0x20")
+ self.bid64_to_binary80("4", "[bb95ecf21370e88a]", "[c136bd5a5828b57eaec2]", "0x20")
+ self.bid64_to_binary80("0", "[bc89533dd7d11516]", "[c14ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("1", "[bc89533dd7d11516]", "[c14ff00251426b9d3861]", "0x20")
+ self.bid64_to_binary80("2", "[bc89533dd7d11516]", "[c14ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("3", "[bc89533dd7d11516]", "[c14ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("4", "[bc89533dd7d11516]", "[c14ff00251426b9d3860]", "0x20")
+ self.bid64_to_binary80("0", "[be85df3d86ed8b27]", "[c184a7ca9e6e3da82542]", "0x20")
+ self.bid64_to_binary80("1", "[be85df3d86ed8b27]", "[c184a7ca9e6e3da82542]", "0x20")
+ self.bid64_to_binary80("2", "[be85df3d86ed8b27]", "[c184a7ca9e6e3da82541]", "0x20")
+ self.bid64_to_binary80("3", "[be85df3d86ed8b27]", "[c184a7ca9e6e3da82541]", "0x20")
+ self.bid64_to_binary80("4", "[be85df3d86ed8b27]", "[c184a7ca9e6e3da82542]", "0x20")
+ self.bid64_to_binary80("0", "[bf8aa4ce7b1a9b39]", "[c19fe29a95ab726f3590]", "0x20")
+ self.bid64_to_binary80("1", "[bf8aa4ce7b1a9b39]", "[c19fe29a95ab726f3590]", "0x20")
+ self.bid64_to_binary80("2", "[bf8aa4ce7b1a9b39]", "[c19fe29a95ab726f358f]", "0x20")
+ self.bid64_to_binary80("3", "[bf8aa4ce7b1a9b39]", "[c19fe29a95ab726f358f]", "0x20")
+ self.bid64_to_binary80("4", "[bf8aa4ce7b1a9b39]", "[c19fe29a95ab726f3590]", "0x20")
+ self.bid64_to_binary80("0", "[c078dbd18832f14c]", "[c1b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("1", "[c078dbd18832f14c]", "[c1b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("2", "[c078dbd18832f14c]", "[c1b89db980c0d09e3935]", "0x20")
+ self.bid64_to_binary80("3", "[c078dbd18832f14c]", "[c1b89db980c0d09e3935]", "0x20")
+ self.bid64_to_binary80("4", "[c078dbd18832f14c]", "[c1b89db980c0d09e3936]", "0x20")
+ self.bid64_to_binary80("0", "[c16cd531e693deac]", "[c1d1f2a836212b3ad5ee]", "0x20")
+ self.bid64_to_binary80("1", "[c16cd531e693deac]", "[c1d1f2a836212b3ad5ef]", "0x20")
+ self.bid64_to_binary80("2", "[c16cd531e693deac]", "[c1d1f2a836212b3ad5ee]", "0x20")
+ self.bid64_to_binary80("3", "[c16cd531e693deac]", "[c1d1f2a836212b3ad5ee]", "0x20")
+ self.bid64_to_binary80("4", "[c16cd531e693deac]", "[c1d1f2a836212b3ad5ee]", "0x20")
+ self.bid64_to_binary80("0", "[c377f25698022b2f]", "[c207fb5c3529c178d7c1]", "0x20")
+ self.bid64_to_binary80("1", "[c377f25698022b2f]", "[c207fb5c3529c178d7c1]", "0x20")
+ self.bid64_to_binary80("2", "[c377f25698022b2f]", "[c207fb5c3529c178d7c0]", "0x20")
+ self.bid64_to_binary80("3", "[c377f25698022b2f]", "[c207fb5c3529c178d7c0]", "0x20")
+ self.bid64_to_binary80("4", "[c377f25698022b2f]", "[c207fb5c3529c178d7c1]", "0x20")
+ self.bid64_to_binary80("0", "[c451c3505acd6bf6]", "[c21ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("1", "[c451c3505acd6bf6]", "[c21ede44a069f8e2bb45]", "0x20")
+ self.bid64_to_binary80("2", "[c451c3505acd6bf6]", "[c21ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("3", "[c451c3505acd6bf6]", "[c21ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("4", "[c451c3505acd6bf6]", "[c21ede44a069f8e2bb44]", "0x20")
+ self.bid64_to_binary80("0", "[c54b41253f1f7042]", "[c238d1d96977c8b18f88]", "0x20")
+ self.bid64_to_binary80("1", "[c54b41253f1f7042]", "[c238d1d96977c8b18f89]", "0x20")
+ self.bid64_to_binary80("2", "[c54b41253f1f7042]", "[c238d1d96977c8b18f88]", "0x20")
+ self.bid64_to_binary80("3", "[c54b41253f1f7042]", "[c238d1d96977c8b18f88]", "0x20")
+ self.bid64_to_binary80("4", "[c54b41253f1f7042]", "[c238d1d96977c8b18f88]", "0x20")
+ self.bid64_to_binary80("0", "[c64d879135d87d4e]", "[c253bbf4b6f9edb01b34]", "0x20")
+ self.bid64_to_binary80("1", "[c64d879135d87d4e]", "[c253bbf4b6f9edb01b35]", "0x20")
+ self.bid64_to_binary80("2", "[c64d879135d87d4e]", "[c253bbf4b6f9edb01b34]", "0x20")
+ self.bid64_to_binary80("3", "[c64d879135d87d4e]", "[c253bbf4b6f9edb01b34]", "0x20")
+ self.bid64_to_binary80("4", "[c64d879135d87d4e]", "[c253bbf4b6f9edb01b34]", "0x20")
+ self.bid64_to_binary80("0", "[c754ec0b28e85fcf]", "[c26ed88ddfb51dc5863c]", "0x20")
+ self.bid64_to_binary80("1", "[c754ec0b28e85fcf]", "[c26ed88ddfb51dc5863c]", "0x20")
+ self.bid64_to_binary80("2", "[c754ec0b28e85fcf]", "[c26ed88ddfb51dc5863b]", "0x20")
+ self.bid64_to_binary80("3", "[c754ec0b28e85fcf]", "[c26ed88ddfb51dc5863b]", "0x20")
+ self.bid64_to_binary80("4", "[c754ec0b28e85fcf]", "[c26ed88ddfb51dc5863c]", "0x20")
+ self.bid64_to_binary80("0", "[c947c5d69c4d35ec]", "[c2a2b2a407a98b637339]", "0x20")
+ self.bid64_to_binary80("1", "[c947c5d69c4d35ec]", "[c2a2b2a407a98b63733a]", "0x20")
+ self.bid64_to_binary80("2", "[c947c5d69c4d35ec]", "[c2a2b2a407a98b637339]", "0x20")
+ self.bid64_to_binary80("3", "[c947c5d69c4d35ec]", "[c2a2b2a407a98b637339]", "0x20")
+ self.bid64_to_binary80("4", "[c947c5d69c4d35ec]", "[c2a2b2a407a98b637339]", "0x20")
+ self.bid64_to_binary80("0", "[ca46bd6b3bd66460]", "[c2bce6d274f1beb0bcb9]", "0x20")
+ self.bid64_to_binary80("1", "[ca46bd6b3bd66460]", "[c2bce6d274f1beb0bcba]", "0x20")
+ self.bid64_to_binary80("2", "[ca46bd6b3bd66460]", "[c2bce6d274f1beb0bcb9]", "0x20")
+ self.bid64_to_binary80("3", "[ca46bd6b3bd66460]", "[c2bce6d274f1beb0bcb9]", "0x20")
+ self.bid64_to_binary80("4", "[ca46bd6b3bd66460]", "[c2bce6d274f1beb0bcb9]", "0x20")
+ self.bid64_to_binary80("0", "[cb2e4f5b8693901a]", "[c2d5920db85ccbd3fb97]", "0x20")
+ self.bid64_to_binary80("1", "[cb2e4f5b8693901a]", "[c2d5920db85ccbd3fb98]", "0x20")
+ self.bid64_to_binary80("2", "[cb2e4f5b8693901a]", "[c2d5920db85ccbd3fb97]", "0x20")
+ self.bid64_to_binary80("3", "[cb2e4f5b8693901a]", "[c2d5920db85ccbd3fb97]", "0x20")
+ self.bid64_to_binary80("4", "[cb2e4f5b8693901a]", "[c2d5920db85ccbd3fb97]", "0x20")
+ self.bid64_to_binary80("0", "[cc2c78c3a2c70833]", "[c2efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("1", "[cc2c78c3a2c70833]", "[c2efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("2", "[cc2c78c3a2c70833]", "[c2efbdade593f50e030f]", "0x20")
+ self.bid64_to_binary80("3", "[cc2c78c3a2c70833]", "[c2efbdade593f50e030f]", "0x20")
+ self.bid64_to_binary80("4", "[cc2c78c3a2c70833]", "[c2efbdade593f50e0310]", "0x20")
+ self.bid64_to_binary80("0", "[cd3ff33e8dcd1212]", "[c30bb505194511dcd5cf]", "0x20")
+ self.bid64_to_binary80("1", "[cd3ff33e8dcd1212]", "[c30bb505194511dcd5d0]", "0x20")
+ self.bid64_to_binary80("2", "[cd3ff33e8dcd1212]", "[c30bb505194511dcd5cf]", "0x20")
+ self.bid64_to_binary80("3", "[cd3ff33e8dcd1212]", "[c30bb505194511dcd5cf]", "0x20")
+ self.bid64_to_binary80("4", "[cd3ff33e8dcd1212]", "[c30bb505194511dcd5cf]", "0x20")
+ self.bid64_to_binary80("0", "[ce33b37156817df1]", "[c325a6537ac9a87d5dfd]", "0x20")
+ self.bid64_to_binary80("1", "[ce33b37156817df1]", "[c325a6537ac9a87d5dfd]", "0x20")
+ self.bid64_to_binary80("2", "[ce33b37156817df1]", "[c325a6537ac9a87d5dfc]", "0x20")
+ self.bid64_to_binary80("3", "[ce33b37156817df1]", "[c325a6537ac9a87d5dfc]", "0x20")
+ self.bid64_to_binary80("4", "[ce33b37156817df1]", "[c325a6537ac9a87d5dfd]", "0x20")
+ self.bid64_to_binary80("0", "[cf250db878ed7ad3]", "[c33dfe4deda3dbd97370]", "0x20")
+ self.bid64_to_binary80("1", "[cf250db878ed7ad3]", "[c33dfe4deda3dbd97370]", "0x20")
+ self.bid64_to_binary80("2", "[cf250db878ed7ad3]", "[c33dfe4deda3dbd9736f]", "0x20")
+ self.bid64_to_binary80("3", "[cf250db878ed7ad3]", "[c33dfe4deda3dbd9736f]", "0x20")
+ self.bid64_to_binary80("4", "[cf250db878ed7ad3]", "[c33dfe4deda3dbd97370]", "0x20")
+ self.bid64_to_binary80("0", "[cff5cdff60c5392c]", "[c35482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("1", "[cff5cdff60c5392c]", "[c35482cd3744491323e5]", "0x20")
+ self.bid64_to_binary80("2", "[cff5cdff60c5392c]", "[c35482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("3", "[cff5cdff60c5392c]", "[c35482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("4", "[cff5cdff60c5392c]", "[c35482cd3744491323e4]", "0x20")
+ self.bid64_to_binary80("0", "[d0ebe619dea131d4]", "[c36dd4b9859fba5ce7cc]", "0x20")
+ self.bid64_to_binary80("1", "[d0ebe619dea131d4]", "[c36dd4b9859fba5ce7cc]", "0x20")
+ self.bid64_to_binary80("2", "[d0ebe619dea131d4]", "[c36dd4b9859fba5ce7cb]", "0x20")
+ self.bid64_to_binary80("3", "[d0ebe619dea131d4]", "[c36dd4b9859fba5ce7cb]", "0x20")
+ self.bid64_to_binary80("4", "[d0ebe619dea131d4]", "[c36dd4b9859fba5ce7cc]", "0x20")
+ self.bid64_to_binary80("0", "[d204a2f4e35d6ccf]", "[c38a9a659b03150c0ee0]", "0x20")
+ self.bid64_to_binary80("1", "[d204a2f4e35d6ccf]", "[c38a9a659b03150c0ee1]", "0x20")
+ self.bid64_to_binary80("2", "[d204a2f4e35d6ccf]", "[c38a9a659b03150c0ee0]", "0x20")
+ self.bid64_to_binary80("3", "[d204a2f4e35d6ccf]", "[c38a9a659b03150c0ee0]", "0x20")
+ self.bid64_to_binary80("4", "[d204a2f4e35d6ccf]", "[c38a9a659b03150c0ee0]", "0x20")
+ self.bid64_to_binary80("0", "[d404a46ec58033d7]", "[c3bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("1", "[d404a46ec58033d7]", "[c3bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("2", "[d404a46ec58033d7]", "[c3bfaba0cf3dccace590]", "0x20")
+ self.bid64_to_binary80("3", "[d404a46ec58033d7]", "[c3bfaba0cf3dccace590]", "0x20")
+ self.bid64_to_binary80("4", "[d404a46ec58033d7]", "[c3bfaba0cf3dccace591]", "0x20")
+ self.bid64_to_binary80("0", "[d5048b70072872e3]", "[c3d9fa5df6e9ad0f05dc]", "0x20")
+ self.bid64_to_binary80("1", "[d5048b70072872e3]", "[c3d9fa5df6e9ad0f05dc]", "0x20")
+ self.bid64_to_binary80("2", "[d5048b70072872e3]", "[c3d9fa5df6e9ad0f05db]", "0x20")
+ self.bid64_to_binary80("3", "[d5048b70072872e3]", "[c3d9fa5df6e9ad0f05db]", "0x20")
+ self.bid64_to_binary80("4", "[d5048b70072872e3]", "[c3d9fa5df6e9ad0f05dc]", "0x20")
+ self.bid64_to_binary80("0", "[d5ea57ec51cf7f0c]", "[c3f2a9d1fddb420e5400]", "0x20")
+ self.bid64_to_binary80("1", "[d5ea57ec51cf7f0c]", "[c3f2a9d1fddb420e5400]", "0x20")
+ self.bid64_to_binary80("2", "[d5ea57ec51cf7f0c]", "[c3f2a9d1fddb420e53ff]", "0x20")
+ self.bid64_to_binary80("3", "[d5ea57ec51cf7f0c]", "[c3f2a9d1fddb420e53ff]", "0x20")
+ self.bid64_to_binary80("4", "[d5ea57ec51cf7f0c]", "[c3f2a9d1fddb420e5400]", "0x20")
+ self.bid64_to_binary80("0", "[d6eeefbc2ef65193]", "[c40db6b5bc630b8b5c04]", "0x20")
+ self.bid64_to_binary80("1", "[d6eeefbc2ef65193]", "[c40db6b5bc630b8b5c05]", "0x20")
+ self.bid64_to_binary80("2", "[d6eeefbc2ef65193]", "[c40db6b5bc630b8b5c04]", "0x20")
+ self.bid64_to_binary80("3", "[d6eeefbc2ef65193]", "[c40db6b5bc630b8b5c04]", "0x20")
+ self.bid64_to_binary80("4", "[d6eeefbc2ef65193]", "[c40db6b5bc630b8b5c04]", "0x20")
+ self.bid64_to_binary80("0", "[d7fca12a33a33b13]", "[c4298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("1", "[d7fca12a33a33b13]", "[c4298276a5a2da731bca]", "0x20")
+ self.bid64_to_binary80("2", "[d7fca12a33a33b13]", "[c4298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("3", "[d7fca12a33a33b13]", "[c4298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("4", "[d7fca12a33a33b13]", "[c4298276a5a2da731bc9]", "0x20")
+ self.bid64_to_binary80("0", "[d8cd5b5dc7c3ec12]", "[c43f911e1c4a535a9cd4]", "0x20")
+ self.bid64_to_binary80("1", "[d8cd5b5dc7c3ec12]", "[c43f911e1c4a535a9cd4]", "0x20")
+ self.bid64_to_binary80("2", "[d8cd5b5dc7c3ec12]", "[c43f911e1c4a535a9cd3]", "0x20")
+ self.bid64_to_binary80("3", "[d8cd5b5dc7c3ec12]", "[c43f911e1c4a535a9cd3]", "0x20")
+ self.bid64_to_binary80("4", "[d8cd5b5dc7c3ec12]", "[c43f911e1c4a535a9cd4]", "0x20")
+ self.bid64_to_binary80("0", "[d9e5488d49ebd9bf]", "[c45bd5d6fe56fa9bba95]", "0x20")
+ self.bid64_to_binary80("1", "[d9e5488d49ebd9bf]", "[c45bd5d6fe56fa9bba96]", "0x20")
+ self.bid64_to_binary80("2", "[d9e5488d49ebd9bf]", "[c45bd5d6fe56fa9bba95]", "0x20")
+ self.bid64_to_binary80("3", "[d9e5488d49ebd9bf]", "[c45bd5d6fe56fa9bba95]", "0x20")
+ self.bid64_to_binary80("4", "[d9e5488d49ebd9bf]", "[c45bd5d6fe56fa9bba95]", "0x20")
+ self.bid64_to_binary80("0", "[dad5321af6dfecb2]", "[c474ffaa7e7671435926]", "0x20")
+ self.bid64_to_binary80("1", "[dad5321af6dfecb2]", "[c474ffaa7e7671435927]", "0x20")
+ self.bid64_to_binary80("2", "[dad5321af6dfecb2]", "[c474ffaa7e7671435926]", "0x20")
+ self.bid64_to_binary80("3", "[dad5321af6dfecb2]", "[c474ffaa7e7671435926]", "0x20")
+ self.bid64_to_binary80("4", "[dad5321af6dfecb2]", "[c474ffaa7e7671435926]", "0x20")
+ self.bid64_to_binary80("0", "[ddc5ab163f1854ce]", "[c4c2e2395221721adf2e]", "0x20")
+ self.bid64_to_binary80("1", "[ddc5ab163f1854ce]", "[c4c2e2395221721adf2f]", "0x20")
+ self.bid64_to_binary80("2", "[ddc5ab163f1854ce]", "[c4c2e2395221721adf2e]", "0x20")
+ self.bid64_to_binary80("3", "[ddc5ab163f1854ce]", "[c4c2e2395221721adf2e]", "0x20")
+ self.bid64_to_binary80("4", "[ddc5ab163f1854ce]", "[c4c2e2395221721adf2e]", "0x20")
+ self.bid64_to_binary80("0", "[dec55e9fba7a5f03]", "[c4dd9fab1f5b75a5634b]", "0x20")
+ self.bid64_to_binary80("1", "[dec55e9fba7a5f03]", "[c4dd9fab1f5b75a5634b]", "0x20")
+ self.bid64_to_binary80("2", "[dec55e9fba7a5f03]", "[c4dd9fab1f5b75a5634a]", "0x20")
+ self.bid64_to_binary80("3", "[dec55e9fba7a5f03]", "[c4dd9fab1f5b75a5634a]", "0x20")
+ self.bid64_to_binary80("4", "[dec55e9fba7a5f03]", "[c4dd9fab1f5b75a5634b]", "0x20")
+ self.bid64_to_binary80("0", "[e1394fb19831a49b]", "[bb8bb33d998ac2157407]", "0x20")
+ self.bid64_to_binary80("1", "[e1394fb19831a49b]", "[bb8bb33d998ac2157407]", "0x20")
+ self.bid64_to_binary80("2", "[e1394fb19831a49b]", "[bb8bb33d998ac2157406]", "0x20")
+ self.bid64_to_binary80("3", "[e1394fb19831a49b]", "[bb8bb33d998ac2157406]", "0x20")
+ self.bid64_to_binary80("4", "[e1394fb19831a49b]", "[bb8bb33d998ac2157407]", "0x20")
+ self.bid64_to_binary80("0", "[e3691b9818a0a8c3]", "[bc74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("1", "[e3691b9818a0a8c3]", "[bc74810eee33a5ee7423]", "0x20")
+ self.bid64_to_binary80("2", "[e3691b9818a0a8c3]", "[bc74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("3", "[e3691b9818a0a8c3]", "[bc74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("4", "[e3691b9818a0a8c3]", "[bc74810eee33a5ee7422]", "0x20")
+ self.bid64_to_binary80("0", "[e521b6eb980020e3]", "[bd2ad66501c7a0b2be02]", "0x20")
+ self.bid64_to_binary80("1", "[e521b6eb980020e3]", "[bd2ad66501c7a0b2be02]", "0x20")
+ self.bid64_to_binary80("2", "[e521b6eb980020e3]", "[bd2ad66501c7a0b2be01]", "0x20")
+ self.bid64_to_binary80("3", "[e521b6eb980020e3]", "[bd2ad66501c7a0b2be01]", "0x20")
+ self.bid64_to_binary80("4", "[e521b6eb980020e3]", "[bd2ad66501c7a0b2be02]", "0x20")
+ self.bid64_to_binary80("0", "[e8ca6c944c4c40e3]", "[beafad9ddce5c92a2c58]", "0x20")
+ self.bid64_to_binary80("1", "[e8ca6c944c4c40e3]", "[beafad9ddce5c92a2c59]", "0x20")
+ self.bid64_to_binary80("2", "[e8ca6c944c4c40e3]", "[beafad9ddce5c92a2c58]", "0x20")
+ self.bid64_to_binary80("3", "[e8ca6c944c4c40e3]", "[beafad9ddce5c92a2c58]", "0x20")
+ self.bid64_to_binary80("4", "[e8ca6c944c4c40e3]", "[beafad9ddce5c92a2c58]", "0x20")
+ self.bid64_to_binary80("0", "[ea437445d0d032f1]", "[bf4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("1", "[ea437445d0d032f1]", "[bf4bc3c1b4a5e472b6c6]", "0x20")
+ self.bid64_to_binary80("2", "[ea437445d0d032f1]", "[bf4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("3", "[ea437445d0d032f1]", "[bf4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("4", "[ea437445d0d032f1]", "[bf4bc3c1b4a5e472b6c5]", "0x20")
+ self.bid64_to_binary80("0", "[ecb386f26fc0ffdf]", "[c04ed3c21bceccecdc4e]", "0x20")
+ self.bid64_to_binary80("1", "[ecb386f26fc0ffdf]", "[c04ed3c21bceccecdc4e]", "0x20")
+ self.bid64_to_binary80("2", "[ecb386f26fc0ffdf]", "[c04ed3c21bceccecdc4d]", "0x20")
+ self.bid64_to_binary80("3", "[ecb386f26fc0ffdf]", "[c04ed3c21bceccecdc4d]", "0x20")
+ self.bid64_to_binary80("4", "[ecb386f26fc0ffdf]", "[c04ed3c21bceccecdc4e]", "0x20")
+ self.bid64_to_binary80("0", "[ecf386f26f265fbf]", "[c0699dc5ada57cc34f1d]", "0x20")
+ self.bid64_to_binary80("1", "[ecf386f26f265fbf]", "[c0699dc5ada57cc34f1e]", "0x20")
+ self.bid64_to_binary80("2", "[ecf386f26f265fbf]", "[c0699dc5ada57cc34f1d]", "0x20")
+ self.bid64_to_binary80("3", "[ecf386f26f265fbf]", "[c0699dc5ada57cc34f1d]", "0x20")
+ self.bid64_to_binary80("4", "[ecf386f26f265fbf]", "[c0699dc5ada57cc34f1d]", "0x20")
+ self.bid64_to_binary80("0", "[ef628329b38d7ebf]", "[c16ca574181c021ccdae]", "0x20")
+ self.bid64_to_binary80("1", "[ef628329b38d7ebf]", "[c16ca574181c021ccdae]", "0x20")
+ self.bid64_to_binary80("2", "[ef628329b38d7ebf]", "[c16ca574181c021ccdad]", "0x20")
+ self.bid64_to_binary80("3", "[ef628329b38d7ebf]", "[c16ca574181c021ccdad]", "0x20")
+ self.bid64_to_binary80("4", "[ef628329b38d7ebf]", "[c16ca574181c021ccdae]", "0x20")
+ self.bid64_to_binary80("0", "[f09924e5b7734c16]", "[c1ede9795845525e80ea]", "0x20")
+ self.bid64_to_binary80("1", "[f09924e5b7734c16]", "[c1ede9795845525e80eb]", "0x20")
+ self.bid64_to_binary80("2", "[f09924e5b7734c16]", "[c1ede9795845525e80ea]", "0x20")
+ self.bid64_to_binary80("3", "[f09924e5b7734c16]", "[c1ede9795845525e80ea]", "0x20")
+ self.bid64_to_binary80("4", "[f09924e5b7734c16]", "[c1ede9795845525e80ea]", "0x20")
+ self.bid64_to_binary80("0", "[f212e93d1248086f]", "[c28a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("1", "[f212e93d1248086f]", "[c28a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("2", "[f212e93d1248086f]", "[c28a869cd892f915530c]", "0x20")
+ self.bid64_to_binary80("3", "[f212e93d1248086f]", "[c28a869cd892f915530c]", "0x20")
+ self.bid64_to_binary80("4", "[f212e93d1248086f]", "[c28a869cd892f915530d]", "0x20")
+ self.bid64_to_binary80("0", "[f4c02bb8ac307968]", "[c3a7c78ae40727b92580]", "0x20")
+ self.bid64_to_binary80("1", "[f4c02bb8ac307968]", "[c3a7c78ae40727b92580]", "0x20")
+ self.bid64_to_binary80("2", "[f4c02bb8ac307968]", "[c3a7c78ae40727b9257f]", "0x20")
+ self.bid64_to_binary80("3", "[f4c02bb8ac307968]", "[c3a7c78ae40727b9257f]", "0x20")
+ self.bid64_to_binary80("4", "[f4c02bb8ac307968]", "[c3a7c78ae40727b92580]", "0x20")
+ self.bid64_to_binary80("0", "[f6f10688c9f158bb]", "[c49094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("1", "[f6f10688c9f158bb]", "[c49094667517a8a1048b]", "0x20")
+ self.bid64_to_binary80("2", "[f6f10688c9f158bb]", "[c49094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("3", "[f6f10688c9f158bb]", "[c49094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("4", "[f6f10688c9f158bb]", "[c49094667517a8a1048a]", "0x20")
+ self.bid64_to_binary80("0", "[f7324dfa209ff4e5]", "[c4aae5b2b249b1954beb]", "0x20")
+ self.bid64_to_binary80("1", "[f7324dfa209ff4e5]", "[c4aae5b2b249b1954beb]", "0x20")
+ self.bid64_to_binary80("2", "[f7324dfa209ff4e5]", "[c4aae5b2b249b1954bea]", "0x20")
+ self.bid64_to_binary80("3", "[f7324dfa209ff4e5]", "[c4aae5b2b249b1954bea]", "0x20")
+ self.bid64_to_binary80("4", "[f7324dfa209ff4e5]", "[c4aae5b2b249b1954beb]", "0x20")
+ self.bid64_to_binary80("0", "[f7fb86f26fc0ffff]", "[c4fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("1", "[f7fb86f26fc0ffff]", "[c4fdf5f75bd4dab6cdb1]", "0x20")
+ self.bid64_to_binary80("2", "[f7fb86f26fc0ffff]", "[c4fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("3", "[f7fb86f26fc0ffff]", "[c4fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("4", "[f7fb86f26fc0ffff]", "[c4fdf5f75bd4dab6cdb0]", "0x20")
+ self.bid64_to_binary80("0", "[f800000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid64_to_binary80("1", "[f800000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid64_to_binary80("2", "[f800000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid64_to_binary80("3", "[f800000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid64_to_binary80("4", "[f800000000000000]", "[ffff8000000000000000]", "0x00")
+ }
+
+ private func bid64_to_binary80(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseFloat80(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Float80(arg0, rounding: rounding, status: &status)
+ self.assertBinaryFloatingPoint(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+
+#endif
+ }
+
+ func test_bid128_to_binary32() {
+ self.bid128_to_binary32("0", "[00000000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("0", "[0000000000000000,0000000000000001]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[0001ED09BEAD87C0,378D8E6400000000]", "[00000000]", "00")
+ self.bid128_to_binary32("0", "[00420000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("0", "[00440000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("0", "[09318F1040081B28,879E2C8FEF29B0EE]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[09318F105A2F47BD,C31E591A07AD6A08]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[09329FA0199CD7A9,CFD8DE9FF943E05F]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[09329FA02412E97F,1AD8F070CFDEF736]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[0932EF70266B437E,B7C54DEFF5E5D08F]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[09333F403339AF53,9FB1BD3FF287C0BF]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[09333F404825D2FE,35B1E0E19FBDEE6D]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[09342FE33AE240B2,F18DDC63312DF683]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[0938A374D6A4B3E1,165F193744E1274B]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[0938A374E15B0BC5,BD48A44A8F3A5536]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[094EE0A71BA91360,ABF94FA41433D713]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[094EE0A72A621FA8,E5BC5FB640B5EF2C]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[095059DC775A7310,5BE4F315B37BF945]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[095086CAAA323ED3,9A6262FC0C1F1AA5]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[0950B3B8EEB4E620,B7C9E62B66F7F289]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[095208FC71BF1541,4E8F17AA6735460B]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[095211F8E37E2A82,9D1E2F54CE6A8C16]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[09521AF5553D3FC3,EBAD46FF359FD221]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[09565C048CC36903,2471962D169C66D7]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[09565C0492CB3656,62321FD4AF9992B5]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2D75307DD0849AC8,55240FC6ECDB749F]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2D75307DE4791FA8,7096112138B357B6]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2D7679CBED01D783,55419FE92B8AFB73]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2D7679CBF4FD3FDC,F9D5A073B047BCAF]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2D76F397DA03AF06,AA833FD25715F6E6]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2D76F397E9FA7FB9,F3AB40E7608F795E]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2D776D63C7058689,FFC4DFBB82A0F259]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2D781244FD26AD20,7FFD0B2FC6880C1E]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2D7C7CB83E78AB88,88745A054B4ED46D]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2D7C7CB846A51E94,7491069B54414449]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2FA2565C976C9CBD,FCCB24E161BF83CB]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2FA2565C9D15855B,71F049284D1CE126]", "[00000000]", "30")
+ self.bid128_to_binary32("0", "[2fa3119395a1e4b0f4fbe1685f856220]", "[00000000]", "0x30")
+ self.bid128_to_binary32("0", "[2FA359725DB272F7,F32C938586FE0F2D]", "[00000001]", "30")
+ self.bid128_to_binary32("0", "[2FA359727456156D,C7C124A134738499]", "[00000001]", "30")
+ self.bid128_to_binary32("0", "[2FA433D127A7913E,CAE049540772E8AD]", "[00000001]", "30")
+ self.bid128_to_binary32("0", "[2fa44516df8a16fe63d5b71ab499363c]", "[00000001]", "0x30")
+ self.bid128_to_binary32("0", "[2FA44516DF8A16FE,63D5B71AB499363C]", "[00000001]", "30")
+ self.bid128_to_binary32("0", "[2fa44516df8a16fe63d5b71ab499363d]", "[00000001]", "0x30")
+ self.bid128_to_binary32("0", "[2FA44516E411377C,5B26A0ED0A7D80EB]", "[00000001]", "30")
+ self.bid128_to_binary32("0", "[2FA467A24F4F227D,95C092A80EE5D15A]", "[00000001]", "30")
+ self.bid128_to_binary32("0", "[2FA961BCCA711991,5B50764B4ABE8653]", "[00000200]", "30")
+ self.bid128_to_binary32("0", "[2FA961BCE19FD468,3917B2D2213AE5FD]", "[00000200]", "30")
+ self.bid128_to_binary32("0", "[2fac05a5e6940f007380e6fd849d409b]", "[00000331]", "0x30")
+ self.bid128_to_binary32("0", "[2fb0a6ce1a742b703e123d3fa7937495]", "[0024d703]", "0x30")
+ self.bid128_to_binary32("0", "[2FB239F4D2F92A72,17511836EF2A1C66]", "[00800000]", "30")
+ self.bid128_to_binary32("0", "[2fb239f4d3192a7217511836ef2a1c65]", "[00800000]", "0x20")
+ self.bid128_to_binary32("0", "[2fb239f4d3192a7217511836ef2a1c66]", "[00800000]", "0x20")
+ self.bid128_to_binary32("0", "[2fb273e9a63254e42ea2306dde5438cb]", "[01000000]", "0x20")
+ self.bid128_to_binary32("0", "[2fb273e9a63254e42ea2306dde5438cc]", "[01000000]", "0x20")
+ self.bid128_to_binary32("0", "[2fb7cc088b83067ec0d126ac00ac3664]", "[0546708a]", "0x20")
+ self.bid128_to_binary32("0", "[2fbe18f87bb341923d80b7ba9eac62f0]", "[09d26091]", "0x20")
+ self.bid128_to_binary32("0", "[2fc44e175fb886767aedefd48e0dd137]", "[0fa09fdf]", "0x20")
+ self.bid128_to_binary32("0", "[2fcb4c1eec26f2b12ff1f78190623250]", "[15a6c7ce]", "0x20")
+ self.bid128_to_binary32("0", "[2fd1c3483ccbc86f04f11fedb5b2dc02]", "[1add4ee2]", "0x20")
+ self.bid128_to_binary32("0", "[2fd81a014b7bf56b67ed17e03541348c]", "[1f791438]", "0x20")
+ self.bid128_to_binary32("0", "[2fde36dffa1b5c161d3e16817534f17a]", "[250051d3]", "0x20")
+ self.bid128_to_binary32("0", "[2fe5bbb7bf5e05078cd4ce48c14eddbc]", "[2b7d516c]", "0x20")
+ self.bid128_to_binary32("0", "[2febed084181f631aabb34eb1a70482f]", "[30896ff5]", "0x20")
+ self.bid128_to_binary32("0", "[2ff2178283c6e920239ef6c1837c5be9]", "[34ffffd2]", "0x20")
+ self.bid128_to_binary32("0", "[2ff8604be73de4838ad9a5cf87ffffff]", "[3b000000]", "0x20")
+ self.bid128_to_binary32("0", "[2fffed09bead87c0378d8e63ffffffff]", "[41200000]", "0x20")
+ self.bid128_to_binary32("0", "[3005ed09bead87c0378d8e63ffffffff]", "[461c4000]", "0x20")
+ self.bid128_to_binary32("0", "[300c295be96e64066971ffffffffffff]", "[4b000000]", "0x20")
+ self.bid128_to_binary32("0", "[3012a968163f0a57b3ffffffffffffff]", "[51000000]", "0x20")
+ self.bid128_to_binary32("0", "[3019ed09bd71c1a309b9c3ffffffffff]", "[56b5e620]", "0x20")
+ self.bid128_to_binary32("0", "[301fed09be2bb8000aafffffffffffff]", "[5bb1a2bc]", "0x20")
+ self.bid128_to_binary32("0", "[3026246139ca7fffffffffffffffffff]", "[60800000]", "0x20")
+ self.bid128_to_binary32("0", "[302c9502f8ffffffffffffffffffffff]", "[66800000]", "0x20")
+ self.bid128_to_binary32("0", "[303000000000000000000000004d7c6d]", "[3d500000]", "0x00")
+ self.bid128_to_binary32("0", "[3033ed09be4e45ffffffffffffffffff]", "[6c4ecb8f]", "0x20")
+ self.bid128_to_binary32("0", "[3039ed09ba47ffffffffffffffffffff]", "[7149f2c8]", "0x20")
+ self.bid128_to_binary32("0", "[303e000000000000000000000000000f]", "[3fc00000]", "0x00")
+ self.bid128_to_binary32("0", "[30400000000000000000000000000000]", "[00000000]", "0x00")
+ self.bid128_to_binary32("0", "[3040000000000000,0000000000000001]", "[3F800000]", "00")
+ self.bid128_to_binary32("0", "[30400000000000000000000000000001]", "[3f800000]", "0x00")
+ self.bid128_to_binary32("0", "[30400000000000000000000000000040]", "[42800000]", "0x00")
+ self.bid128_to_binary32("0", "[304000000000000000000000000003e7]", "[4479c000]", "0x00")
+ self.bid128_to_binary32("0", "[304000000000000000000000000003e8]", "[447a0000]", "0x00")
+ self.bid128_to_binary32("0", "[3040000000000000,00000001ffffffff]", "[50000000]", "20")
+ self.bid128_to_binary32("0", "[3040000000000000,0001ffffffffffff]", "[58000000]", "20")
+ self.bid128_to_binary32("0", "[3040000000000000,01ffffffffffffff]", "[5C000000]", "20")
+ self.bid128_to_binary32("0", "[3040000000000000,1fffffffffffffff]", "[5E000000]", "20")
+ self.bid128_to_binary32("0", "[3040000000000000,3fffffffffffffff]", "[5E800000]", "20")
+ self.bid128_to_binary32("0", "[3040000000000000,7fffffffffffffff]", "[5F000000]", "20")
+ self.bid128_to_binary32("0", "[3040000011111111,1111111111111111]", "[6D888889]", "20")
+ self.bid128_to_binary32("0", "[3040111111111111,1111111111111111]", "[75888889]", "20")
+ self.bid128_to_binary32("0", "[30401fffffffffffffffffffffffffff]", "[76000000]", "0x20")
+ self.bid128_to_binary32("0", "[3041111111111111,1111111111111111]", "[77888889]", "20")
+ self.bid128_to_binary32("0", "[3041ED09BEAD87C0,378D8E6400000000]", "[00000000]", "00")
+ self.bid128_to_binary32("0", "[304AA79AB92956E6,6BAF50901058E8A4]", "[7F7FBE77]", "20")
+ self.bid128_to_binary32("0", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("0", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("0", "[304aa7c5ac471b4784230fcf80dc3372]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("0", "[304aa7c5ac471b4784230fcf80dc3373]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("0", "[304AFBA8826AA8EB,463497B7414A4D2B]", "[7F800000]", "28")
+ self.bid128_to_binary32("0", "[304C4B7F5A5332AC,FB762D83C6C97D8D]", "[7F800000]", "28")
+ self.bid128_to_binary32("0", "[3266588B632391BD,FDA5E7310E66AE1C]", "[7F800000]", "28")
+ self.bid128_to_binary32("0", "[326684F31DB2B777,FC77F359CD5BE771]", "[7F800000]", "28")
+ self.bid128_to_binary32("0", "[32678ED959182667,F567DA0D6813B653]", "[7F800000]", "28")
+ self.bid128_to_binary32("0", "[56863A99819046AF,E37FCC3111E1DF03]", "[7F800000]", "28")
+ self.bid128_to_binary32("0", "[568657FCC8B0A7A3,636DA14BFC197CFB]", "[7F800000]", "28")
+ self.bid128_to_binary32("0", "[568707F65A11F6EA,2A48E3E3F44C76F0]", "[7F800000]", "28")
+ self.bid128_to_binary32("0", "[5fffed09bead87c0378d8e63ffffffff]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("0", "[5FFFED09BEAD87C0,378D8E63FFFFFFFF]", "[7F800000]", "28")
+ self.bid128_to_binary32("0", "[6000000000000000,0000000000000000]", "[00000000]", "00")
+ self.bid128_to_binary32("0", "[78000000000000000000000000000000]", "[7f800000]", "0x00")
+ self.bid128_to_binary32("0", "[7c00000000000000,0000000000000000]", "[7FC00000]", "00")
+ self.bid128_to_binary32("0", "[7c00314DC6448D93,38C15B09FFFFFFFF]", "[7FF14DC6]", "00")
+ self.bid128_to_binary32("0", "[7c00314DC6448D93,38C15B0a00000000]", "[7FC00000]", "00")
+ self.bid128_to_binary32("0", "[7c00314DC6448D94,38C15B0a00000000]", "[7FC00000]", "00")
+ self.bid128_to_binary32("0", "[7e00000000000000,0000000000000000]", "[7FC00000]", "01")
+ self.bid128_to_binary32("0", "[7e00314DC6448D93,38C15B09FFFFFFFF]", "[7FF14DC6]", "01")
+ self.bid128_to_binary32("0", "[7e00314DC6448D93,38C15B0a00000000]", "[7FC00000]", "01")
+ self.bid128_to_binary32("0", "[7e00314DC6448D94,38C15B0a00000000]", "[7FC00000]", "01")
+ self.bid128_to_binary32("0", "[80000000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("0", "[80420000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("0", "[80440000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("0", "[afa3119395a1e4b0f4fbe1685f856220]", "[80000000]", "0x30")
+ self.bid128_to_binary32("0", "[afa44516df8a16fe63d5b71ab499363c]", "[80000001]", "0x30")
+ self.bid128_to_binary32("0", "[afa44516df8a16fe63d5b71ab499363d]", "[80000001]", "0x30")
+ self.bid128_to_binary32("0", "[afac05a5e6940f007380e6fd849d409b]", "[80000331]", "0x30")
+ self.bid128_to_binary32("0", "[afb0a6ce1a742b703e123d3fa7937495]", "[8024d703]", "0x30")
+ self.bid128_to_binary32("0", "[afb239f4d3192a7217511836ef2a1c65]", "[80800000]", "0x20")
+ self.bid128_to_binary32("0", "[afb239f4d3192a7217511836ef2a1c66]", "[80800000]", "0x20")
+ self.bid128_to_binary32("0", "[afb273e9a63254e42ea2306dde5438cb]", "[81000000]", "0x20")
+ self.bid128_to_binary32("0", "[afb273e9a63254e42ea2306dde5438cc]", "[81000000]", "0x20")
+ self.bid128_to_binary32("0", "[afb7cc088b83067ec0d126ac00ac3664]", "[8546708a]", "0x20")
+ self.bid128_to_binary32("0", "[afbe18f87bb341923d80b7ba9eac62f0]", "[89d26091]", "0x20")
+ self.bid128_to_binary32("0", "[afc44e175fb886767aedefd48e0dd137]", "[8fa09fdf]", "0x20")
+ self.bid128_to_binary32("0", "[afcb4c1eec26f2b12ff1f78190623250]", "[95a6c7ce]", "0x20")
+ self.bid128_to_binary32("0", "[afd1c3483ccbc86f04f11fedb5b2dc02]", "[9add4ee2]", "0x20")
+ self.bid128_to_binary32("0", "[afd81a014b7bf56b67ed17e03541348c]", "[9f791438]", "0x20")
+ self.bid128_to_binary32("0", "[afde36dffa1b5c161d3e16817534f17a]", "[a50051d3]", "0x20")
+ self.bid128_to_binary32("0", "[afe5bbb7bf5e05078cd4ce48c14eddbc]", "[ab7d516c]", "0x20")
+ self.bid128_to_binary32("0", "[afebed084181f631aabb34eb1a70482f]", "[b0896ff5]", "0x20")
+ self.bid128_to_binary32("0", "[aff2178283c6e920239ef6c1837c5be9]", "[b4ffffd2]", "0x20")
+ self.bid128_to_binary32("0", "[aff8604be73de4838ad9a5cf87ffffff]", "[bb000000]", "0x20")
+ self.bid128_to_binary32("0", "[afffed09bead87c0378d8e63ffffffff]", "[c1200000]", "0x20")
+ self.bid128_to_binary32("0", "[b005ed09bead87c0378d8e63ffffffff]", "[c61c4000]", "0x20")
+ self.bid128_to_binary32("0", "[b00c295be96e64066971ffffffffffff]", "[cb000000]", "0x20")
+ self.bid128_to_binary32("0", "[b012a968163f0a57b3ffffffffffffff]", "[d1000000]", "0x20")
+ self.bid128_to_binary32("0", "[b019ed09bd71c1a309b9c3ffffffffff]", "[d6b5e620]", "0x20")
+ self.bid128_to_binary32("0", "[b01fed09be2bb8000aafffffffffffff]", "[dbb1a2bc]", "0x20")
+ self.bid128_to_binary32("0", "[b026246139ca7fffffffffffffffffff]", "[e0800000]", "0x20")
+ self.bid128_to_binary32("0", "[b02c9502f8ffffffffffffffffffffff]", "[e6800000]", "0x20")
+ self.bid128_to_binary32("0", "[b03000000000000000000000004d7c6d]", "[bd500000]", "0x00")
+ self.bid128_to_binary32("0", "[b033ed09be4e45ffffffffffffffffff]", "[ec4ecb8f]", "0x20")
+ self.bid128_to_binary32("0", "[b039ed09ba47ffffffffffffffffffff]", "[f149f2c8]", "0x20")
+ self.bid128_to_binary32("0", "[b03e000000000000000000000000000f]", "[bfc00000]", "0x00")
+ self.bid128_to_binary32("0", "[b0400000000000000000000000000001]", "[bf800000]", "0x00")
+ self.bid128_to_binary32("0", "[b0400000000000000000000000000040]", "[c2800000]", "0x00")
+ self.bid128_to_binary32("0", "[b04000000000000000000000000003e7]", "[c479c000]", "0x00")
+ self.bid128_to_binary32("0", "[b04000000000000000000000000003e8]", "[c47a0000]", "0x00")
+ self.bid128_to_binary32("0", "[b0401fffffffffffffffffffffffffff]", "[f6000000]", "0x20")
+ self.bid128_to_binary32("0", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("0", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("0", "[b04aa7c5ac471b4784230fcf80dc3372]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("0", "[b04aa7c5ac471b4784230fcf80dc3373]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("0", "[dfffed09bead87c0378d8e63ffffffff]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("0", "[f8000000000000000000000000000000]", "[ff800000]", "0x00")
+ self.bid128_to_binary32("1", "[00000000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("1", "[00420000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("1", "[00440000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("1", "[2fa3119395a1e4b0f4fbe1685f856220]", "[00000000]", "0x30")
+ self.bid128_to_binary32("1", "[2fa44516df8a16fe63d5b71ab499363c]", "[00000000]", "0x30")
+ self.bid128_to_binary32("1", "[2fa44516df8a16fe63d5b71ab499363d]", "[00000001]", "0x30")
+ self.bid128_to_binary32("1", "[2fac05a5e6940f007380e6fd849d409b]", "[00000331]", "0x30")
+ self.bid128_to_binary32("1", "[2fb0a6ce1a742b703e123d3fa7937495]", "[0024d702]", "0x30")
+ self.bid128_to_binary32("1", "[2fb239f4d3192a7217511836ef2a1c65]", "[007fffff]", "0x30")
+ self.bid128_to_binary32("1", "[2fb239f4d3192a7217511836ef2a1c66]", "[00800000]", "0x20")
+ self.bid128_to_binary32("1", "[2fb273e9a63254e42ea2306dde5438cb]", "[00ffffff]", "0x20")
+ self.bid128_to_binary32("1", "[2fb273e9a63254e42ea2306dde5438cc]", "[01000000]", "0x20")
+ self.bid128_to_binary32("1", "[2fb7cc088b83067ec0d126ac00ac3664]", "[0546708a]", "0x20")
+ self.bid128_to_binary32("1", "[2fbe18f87bb341923d80b7ba9eac62f0]", "[09d26090]", "0x20")
+ self.bid128_to_binary32("1", "[2fc44e175fb886767aedefd48e0dd137]", "[0fa09fdf]", "0x20")
+ self.bid128_to_binary32("1", "[2fcb4c1eec26f2b12ff1f78190623250]", "[15a6c7cd]", "0x20")
+ self.bid128_to_binary32("1", "[2fd1c3483ccbc86f04f11fedb5b2dc02]", "[1add4ee2]", "0x20")
+ self.bid128_to_binary32("1", "[2fd81a014b7bf56b67ed17e03541348c]", "[1f791437]", "0x20")
+ self.bid128_to_binary32("1", "[2fde36dffa1b5c161d3e16817534f17a]", "[250051d3]", "0x20")
+ self.bid128_to_binary32("1", "[2fe5bbb7bf5e05078cd4ce48c14eddbc]", "[2b7d516c]", "0x20")
+ self.bid128_to_binary32("1", "[2febed084181f631aabb34eb1a70482f]", "[30896ff4]", "0x20")
+ self.bid128_to_binary32("1", "[2ff2178283c6e920239ef6c1837c5be9]", "[34ffffd2]", "0x20")
+ self.bid128_to_binary32("1", "[2ff8604be73de4838ad9a5cf87ffffff]", "[3affffff]", "0x20")
+ self.bid128_to_binary32("1", "[2fffed09bead87c0378d8e63ffffffff]", "[411fffff]", "0x20")
+ self.bid128_to_binary32("1", "[3005ed09bead87c0378d8e63ffffffff]", "[461c3fff]", "0x20")
+ self.bid128_to_binary32("1", "[300c295be96e64066971ffffffffffff]", "[4affffff]", "0x20")
+ self.bid128_to_binary32("1", "[3012a968163f0a57b3ffffffffffffff]", "[50ffffff]", "0x20")
+ self.bid128_to_binary32("1", "[3019ed09bd71c1a309b9c3ffffffffff]", "[56b5e620]", "0x20")
+ self.bid128_to_binary32("1", "[301fed09be2bb8000aafffffffffffff]", "[5bb1a2bb]", "0x20")
+ self.bid128_to_binary32("1", "[3026246139ca7fffffffffffffffffff]", "[607fffff]", "0x20")
+ self.bid128_to_binary32("1", "[302c9502f8ffffffffffffffffffffff]", "[667fffff]", "0x20")
+ self.bid128_to_binary32("1", "[303000000000000000000000004d7c6d]", "[3d500000]", "0x00")
+ self.bid128_to_binary32("1", "[3033ed09be4e45ffffffffffffffffff]", "[6c4ecb8e]", "0x20")
+ self.bid128_to_binary32("1", "[3039ed09ba47ffffffffffffffffffff]", "[7149f2c7]", "0x20")
+ self.bid128_to_binary32("1", "[303e000000000000000000000000000f]", "[3fc00000]", "0x00")
+ self.bid128_to_binary32("1", "[30400000000000000000000000000000]", "[00000000]", "0x00")
+ self.bid128_to_binary32("1", "[30400000000000000000000000000001]", "[3f800000]", "0x00")
+ self.bid128_to_binary32("1", "[30400000000000000000000000000040]", "[42800000]", "0x00")
+ self.bid128_to_binary32("1", "[304000000000000000000000000003e7]", "[4479c000]", "0x00")
+ self.bid128_to_binary32("1", "[304000000000000000000000000003e8]", "[447a0000]", "0x00")
+ self.bid128_to_binary32("1", "[30401fffffffffffffffffffffffffff]", "[75ffffff]", "0x20")
+ self.bid128_to_binary32("1", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "[7f7ffffe]", "0x20")
+ self.bid128_to_binary32("1", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("1", "[304aa7c5ac471b4784230fcf80dc3372]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("1", "[304aa7c5ac471b4784230fcf80dc3373]", "[7f7fffff]", "0x28")
+ self.bid128_to_binary32("1", "[5fffed09bead87c0378d8e63ffffffff]", "[7f7fffff]", "0x28")
+ self.bid128_to_binary32("1", "[78000000000000000000000000000000]", "[7f800000]", "0x00")
+ self.bid128_to_binary32("1", "[80000000000000000000000000000001]", "[80000001]", "0x30")
+ self.bid128_to_binary32("1", "[80420000000000000000000000000001]", "[80000001]", "0x30")
+ self.bid128_to_binary32("1", "[80440000000000000000000000000001]", "[80000001]", "0x30")
+ self.bid128_to_binary32("1", "[afa3119395a1e4b0f4fbe1685f856220]", "[80000001]", "0x30")
+ self.bid128_to_binary32("1", "[afa44516df8a16fe63d5b71ab499363c]", "[80000001]", "0x30")
+ self.bid128_to_binary32("1", "[afa44516df8a16fe63d5b71ab499363d]", "[80000002]", "0x30")
+ self.bid128_to_binary32("1", "[afac05a5e6940f007380e6fd849d409b]", "[80000332]", "0x30")
+ self.bid128_to_binary32("1", "[afb0a6ce1a742b703e123d3fa7937495]", "[8024d703]", "0x30")
+ self.bid128_to_binary32("1", "[afb239f4d3192a7217511836ef2a1c65]", "[80800000]", "0x20")
+ self.bid128_to_binary32("1", "[afb239f4d3192a7217511836ef2a1c66]", "[80800001]", "0x20")
+ self.bid128_to_binary32("1", "[afb273e9a63254e42ea2306dde5438cb]", "[81000000]", "0x20")
+ self.bid128_to_binary32("1", "[afb273e9a63254e42ea2306dde5438cc]", "[81000001]", "0x20")
+ self.bid128_to_binary32("1", "[afb7cc088b83067ec0d126ac00ac3664]", "[8546708b]", "0x20")
+ self.bid128_to_binary32("1", "[afbe18f87bb341923d80b7ba9eac62f0]", "[89d26091]", "0x20")
+ self.bid128_to_binary32("1", "[afc44e175fb886767aedefd48e0dd137]", "[8fa09fe0]", "0x20")
+ self.bid128_to_binary32("1", "[afcb4c1eec26f2b12ff1f78190623250]", "[95a6c7ce]", "0x20")
+ self.bid128_to_binary32("1", "[afd1c3483ccbc86f04f11fedb5b2dc02]", "[9add4ee3]", "0x20")
+ self.bid128_to_binary32("1", "[afd81a014b7bf56b67ed17e03541348c]", "[9f791438]", "0x20")
+ self.bid128_to_binary32("1", "[afde36dffa1b5c161d3e16817534f17a]", "[a50051d4]", "0x20")
+ self.bid128_to_binary32("1", "[afe5bbb7bf5e05078cd4ce48c14eddbc]", "[ab7d516d]", "0x20")
+ self.bid128_to_binary32("1", "[afebed084181f631aabb34eb1a70482f]", "[b0896ff5]", "0x20")
+ self.bid128_to_binary32("1", "[aff2178283c6e920239ef6c1837c5be9]", "[b4ffffd3]", "0x20")
+ self.bid128_to_binary32("1", "[aff8604be73de4838ad9a5cf87ffffff]", "[bb000000]", "0x20")
+ self.bid128_to_binary32("1", "[afffed09bead87c0378d8e63ffffffff]", "[c1200000]", "0x20")
+ self.bid128_to_binary32("1", "[b005ed09bead87c0378d8e63ffffffff]", "[c61c4000]", "0x20")
+ self.bid128_to_binary32("1", "[b00c295be96e64066971ffffffffffff]", "[cb000000]", "0x20")
+ self.bid128_to_binary32("1", "[b012a968163f0a57b3ffffffffffffff]", "[d1000000]", "0x20")
+ self.bid128_to_binary32("1", "[b019ed09bd71c1a309b9c3ffffffffff]", "[d6b5e621]", "0x20")
+ self.bid128_to_binary32("1", "[b01fed09be2bb8000aafffffffffffff]", "[dbb1a2bc]", "0x20")
+ self.bid128_to_binary32("1", "[b026246139ca7fffffffffffffffffff]", "[e0800000]", "0x20")
+ self.bid128_to_binary32("1", "[b02c9502f8ffffffffffffffffffffff]", "[e6800000]", "0x20")
+ self.bid128_to_binary32("1", "[b03000000000000000000000004d7c6d]", "[bd500000]", "0x00")
+ self.bid128_to_binary32("1", "[b033ed09be4e45ffffffffffffffffff]", "[ec4ecb8f]", "0x20")
+ self.bid128_to_binary32("1", "[b039ed09ba47ffffffffffffffffffff]", "[f149f2c8]", "0x20")
+ self.bid128_to_binary32("1", "[b03e000000000000000000000000000f]", "[bfc00000]", "0x00")
+ self.bid128_to_binary32("1", "[b0400000000000000000000000000001]", "[bf800000]", "0x00")
+ self.bid128_to_binary32("1", "[b0400000000000000000000000000040]", "[c2800000]", "0x00")
+ self.bid128_to_binary32("1", "[b04000000000000000000000000003e7]", "[c479c000]", "0x00")
+ self.bid128_to_binary32("1", "[b04000000000000000000000000003e8]", "[c47a0000]", "0x00")
+ self.bid128_to_binary32("1", "[b0401fffffffffffffffffffffffffff]", "[f6000000]", "0x20")
+ self.bid128_to_binary32("1", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("1", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("1", "[b04aa7c5ac471b4784230fcf80dc3372]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("1", "[b04aa7c5ac471b4784230fcf80dc3373]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("1", "[dfffed09bead87c0378d8e63ffffffff]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("1", "[f8000000000000000000000000000000]", "[ff800000]", "0x00")
+ self.bid128_to_binary32("2", "[00000000000000000000000000000001]", "[00000001]", "0x30")
+ self.bid128_to_binary32("2", "[00420000000000000000000000000001]", "[00000001]", "0x30")
+ self.bid128_to_binary32("2", "[00440000000000000000000000000001]", "[00000001]", "0x30")
+ self.bid128_to_binary32("2", "[2fa3119395a1e4b0f4fbe1685f856220]", "[00000001]", "0x30")
+ self.bid128_to_binary32("2", "[2fa44516df8a16fe63d5b71ab499363c]", "[00000001]", "0x30")
+ self.bid128_to_binary32("2", "[2fa44516df8a16fe63d5b71ab499363d]", "[00000002]", "0x30")
+ self.bid128_to_binary32("2", "[2fac05a5e6940f007380e6fd849d409b]", "[00000332]", "0x30")
+ self.bid128_to_binary32("2", "[2fb0a6ce1a742b703e123d3fa7937495]", "[0024d703]", "0x30")
+ self.bid128_to_binary32("2", "[2fb239f4d3192a7217511836ef2a1c65]", "[00800000]", "0x20")
+ self.bid128_to_binary32("2", "[2fb239f4d3192a7217511836ef2a1c66]", "[00800001]", "0x20")
+ self.bid128_to_binary32("2", "[2fb273e9a63254e42ea2306dde5438cb]", "[01000000]", "0x20")
+ self.bid128_to_binary32("2", "[2fb273e9a63254e42ea2306dde5438cc]", "[01000001]", "0x20")
+ self.bid128_to_binary32("2", "[2fb7cc088b83067ec0d126ac00ac3664]", "[0546708b]", "0x20")
+ self.bid128_to_binary32("2", "[2fbe18f87bb341923d80b7ba9eac62f0]", "[09d26091]", "0x20")
+ self.bid128_to_binary32("2", "[2fc44e175fb886767aedefd48e0dd137]", "[0fa09fe0]", "0x20")
+ self.bid128_to_binary32("2", "[2fcb4c1eec26f2b12ff1f78190623250]", "[15a6c7ce]", "0x20")
+ self.bid128_to_binary32("2", "[2fd1c3483ccbc86f04f11fedb5b2dc02]", "[1add4ee3]", "0x20")
+ self.bid128_to_binary32("2", "[2fd81a014b7bf56b67ed17e03541348c]", "[1f791438]", "0x20")
+ self.bid128_to_binary32("2", "[2fde36dffa1b5c161d3e16817534f17a]", "[250051d4]", "0x20")
+ self.bid128_to_binary32("2", "[2fe5bbb7bf5e05078cd4ce48c14eddbc]", "[2b7d516d]", "0x20")
+ self.bid128_to_binary32("2", "[2febed084181f631aabb34eb1a70482f]", "[30896ff5]", "0x20")
+ self.bid128_to_binary32("2", "[2ff2178283c6e920239ef6c1837c5be9]", "[34ffffd3]", "0x20")
+ self.bid128_to_binary32("2", "[2ff8604be73de4838ad9a5cf87ffffff]", "[3b000000]", "0x20")
+ self.bid128_to_binary32("2", "[2fffed09bead87c0378d8e63ffffffff]", "[41200000]", "0x20")
+ self.bid128_to_binary32("2", "[3005ed09bead87c0378d8e63ffffffff]", "[461c4000]", "0x20")
+ self.bid128_to_binary32("2", "[300c295be96e64066971ffffffffffff]", "[4b000000]", "0x20")
+ self.bid128_to_binary32("2", "[3012a968163f0a57b3ffffffffffffff]", "[51000000]", "0x20")
+ self.bid128_to_binary32("2", "[3019ed09bd71c1a309b9c3ffffffffff]", "[56b5e621]", "0x20")
+ self.bid128_to_binary32("2", "[301fed09be2bb8000aafffffffffffff]", "[5bb1a2bc]", "0x20")
+ self.bid128_to_binary32("2", "[3026246139ca7fffffffffffffffffff]", "[60800000]", "0x20")
+ self.bid128_to_binary32("2", "[302c9502f8ffffffffffffffffffffff]", "[66800000]", "0x20")
+ self.bid128_to_binary32("2", "[303000000000000000000000004d7c6d]", "[3d500000]", "0x00")
+ self.bid128_to_binary32("2", "[3033ed09be4e45ffffffffffffffffff]", "[6c4ecb8f]", "0x20")
+ self.bid128_to_binary32("2", "[3039ed09ba47ffffffffffffffffffff]", "[7149f2c8]", "0x20")
+ self.bid128_to_binary32("2", "[303e000000000000000000000000000f]", "[3fc00000]", "0x00")
+ self.bid128_to_binary32("2", "[30400000000000000000000000000000]", "[00000000]", "0x00")
+ self.bid128_to_binary32("2", "[30400000000000000000000000000001]", "[3f800000]", "0x00")
+ self.bid128_to_binary32("2", "[30400000000000000000000000000040]", "[42800000]", "0x00")
+ self.bid128_to_binary32("2", "[304000000000000000000000000003e7]", "[4479c000]", "0x00")
+ self.bid128_to_binary32("2", "[304000000000000000000000000003e8]", "[447a0000]", "0x00")
+ self.bid128_to_binary32("2", "[30401fffffffffffffffffffffffffff]", "[76000000]", "0x20")
+ self.bid128_to_binary32("2", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("2", "[304aa7c5ac471b4784230fcf80dc3372]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("2", "[304aa7c5ac471b4784230fcf80dc3373]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("2", "[5fffed09bead87c0378d8e63ffffffff]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("2", "[78000000000000000000000000000000]", "[7f800000]", "0x00")
+ self.bid128_to_binary32("2", "[80000000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("2", "[80420000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("2", "[80440000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("2", "[afa3119395a1e4b0f4fbe1685f856220]", "[80000000]", "0x30")
+ self.bid128_to_binary32("2", "[afa44516df8a16fe63d5b71ab499363c]", "[80000000]", "0x30")
+ self.bid128_to_binary32("2", "[afa44516df8a16fe63d5b71ab499363d]", "[80000001]", "0x30")
+ self.bid128_to_binary32("2", "[afac05a5e6940f007380e6fd849d409b]", "[80000331]", "0x30")
+ self.bid128_to_binary32("2", "[afb0a6ce1a742b703e123d3fa7937495]", "[8024d702]", "0x30")
+ self.bid128_to_binary32("2", "[afb239f4d3192a7217511836ef2a1c65]", "[807fffff]", "0x30")
+ self.bid128_to_binary32("2", "[afb239f4d3192a7217511836ef2a1c66]", "[80800000]", "0x20")
+ self.bid128_to_binary32("2", "[afb273e9a63254e42ea2306dde5438cb]", "[80ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[afb273e9a63254e42ea2306dde5438cc]", "[81000000]", "0x20")
+ self.bid128_to_binary32("2", "[afb7cc088b83067ec0d126ac00ac3664]", "[8546708a]", "0x20")
+ self.bid128_to_binary32("2", "[afbe18f87bb341923d80b7ba9eac62f0]", "[89d26090]", "0x20")
+ self.bid128_to_binary32("2", "[afc44e175fb886767aedefd48e0dd137]", "[8fa09fdf]", "0x20")
+ self.bid128_to_binary32("2", "[afcb4c1eec26f2b12ff1f78190623250]", "[95a6c7cd]", "0x20")
+ self.bid128_to_binary32("2", "[afd1c3483ccbc86f04f11fedb5b2dc02]", "[9add4ee2]", "0x20")
+ self.bid128_to_binary32("2", "[afd81a014b7bf56b67ed17e03541348c]", "[9f791437]", "0x20")
+ self.bid128_to_binary32("2", "[afde36dffa1b5c161d3e16817534f17a]", "[a50051d3]", "0x20")
+ self.bid128_to_binary32("2", "[afe5bbb7bf5e05078cd4ce48c14eddbc]", "[ab7d516c]", "0x20")
+ self.bid128_to_binary32("2", "[afebed084181f631aabb34eb1a70482f]", "[b0896ff4]", "0x20")
+ self.bid128_to_binary32("2", "[aff2178283c6e920239ef6c1837c5be9]", "[b4ffffd2]", "0x20")
+ self.bid128_to_binary32("2", "[aff8604be73de4838ad9a5cf87ffffff]", "[baffffff]", "0x20")
+ self.bid128_to_binary32("2", "[afffed09bead87c0378d8e63ffffffff]", "[c11fffff]", "0x20")
+ self.bid128_to_binary32("2", "[b005ed09bead87c0378d8e63ffffffff]", "[c61c3fff]", "0x20")
+ self.bid128_to_binary32("2", "[b00c295be96e64066971ffffffffffff]", "[caffffff]", "0x20")
+ self.bid128_to_binary32("2", "[b012a968163f0a57b3ffffffffffffff]", "[d0ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[b019ed09bd71c1a309b9c3ffffffffff]", "[d6b5e620]", "0x20")
+ self.bid128_to_binary32("2", "[b01fed09be2bb8000aafffffffffffff]", "[dbb1a2bb]", "0x20")
+ self.bid128_to_binary32("2", "[b026246139ca7fffffffffffffffffff]", "[e07fffff]", "0x20")
+ self.bid128_to_binary32("2", "[b02c9502f8ffffffffffffffffffffff]", "[e67fffff]", "0x20")
+ self.bid128_to_binary32("2", "[b03000000000000000000000004d7c6d]", "[bd500000]", "0x00")
+ self.bid128_to_binary32("2", "[b033ed09be4e45ffffffffffffffffff]", "[ec4ecb8e]", "0x20")
+ self.bid128_to_binary32("2", "[b039ed09ba47ffffffffffffffffffff]", "[f149f2c7]", "0x20")
+ self.bid128_to_binary32("2", "[b03e000000000000000000000000000f]", "[bfc00000]", "0x00")
+ self.bid128_to_binary32("2", "[b0400000000000000000000000000001]", "[bf800000]", "0x00")
+ self.bid128_to_binary32("2", "[b0400000000000000000000000000040]", "[c2800000]", "0x00")
+ self.bid128_to_binary32("2", "[b04000000000000000000000000003e7]", "[c479c000]", "0x00")
+ self.bid128_to_binary32("2", "[b04000000000000000000000000003e8]", "[c47a0000]", "0x00")
+ self.bid128_to_binary32("2", "[b0401fffffffffffffffffffffffffff]", "[f5ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "[ff7ffffe]", "0x20")
+ self.bid128_to_binary32("2", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[b04aa7c5ac471b4784230fcf80dc3372]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[b04aa7c5ac471b4784230fcf80dc3373]", "[ff7fffff]", "0x28")
+ self.bid128_to_binary32("2", "[dfffed09bead87c0378d8e63ffffffff]", "[ff7fffff]", "0x28")
+ self.bid128_to_binary32("2", "[f8000000000000000000000000000000]", "[ff800000]", "0x00")
+ self.bid128_to_binary32("3", "[00000000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("3", "[00420000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("3", "[00440000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("3", "[2fa3119395a1e4b0f4fbe1685f856220]", "[00000000]", "0x30")
+ self.bid128_to_binary32("3", "[2fa44516df8a16fe63d5b71ab499363c]", "[00000000]", "0x30")
+ self.bid128_to_binary32("3", "[2fa44516df8a16fe63d5b71ab499363d]", "[00000001]", "0x30")
+ self.bid128_to_binary32("3", "[2fac05a5e6940f007380e6fd849d409b]", "[00000331]", "0x30")
+ self.bid128_to_binary32("3", "[2fb0a6ce1a742b703e123d3fa7937495]", "[0024d702]", "0x30")
+ self.bid128_to_binary32("3", "[2fb239f4d3192a7217511836ef2a1c65]", "[007fffff]", "0x30")
+ self.bid128_to_binary32("3", "[2fb239f4d3192a7217511836ef2a1c66]", "[00800000]", "0x20")
+ self.bid128_to_binary32("3", "[2fb273e9a63254e42ea2306dde5438cb]", "[00ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[2fb273e9a63254e42ea2306dde5438cc]", "[01000000]", "0x20")
+ self.bid128_to_binary32("3", "[2fb7cc088b83067ec0d126ac00ac3664]", "[0546708a]", "0x20")
+ self.bid128_to_binary32("3", "[2fbe18f87bb341923d80b7ba9eac62f0]", "[09d26090]", "0x20")
+ self.bid128_to_binary32("3", "[2fc44e175fb886767aedefd48e0dd137]", "[0fa09fdf]", "0x20")
+ self.bid128_to_binary32("3", "[2fcb4c1eec26f2b12ff1f78190623250]", "[15a6c7cd]", "0x20")
+ self.bid128_to_binary32("3", "[2fd1c3483ccbc86f04f11fedb5b2dc02]", "[1add4ee2]", "0x20")
+ self.bid128_to_binary32("3", "[2fd81a014b7bf56b67ed17e03541348c]", "[1f791437]", "0x20")
+ self.bid128_to_binary32("3", "[2fde36dffa1b5c161d3e16817534f17a]", "[250051d3]", "0x20")
+ self.bid128_to_binary32("3", "[2fe5bbb7bf5e05078cd4ce48c14eddbc]", "[2b7d516c]", "0x20")
+ self.bid128_to_binary32("3", "[2febed084181f631aabb34eb1a70482f]", "[30896ff4]", "0x20")
+ self.bid128_to_binary32("3", "[2ff2178283c6e920239ef6c1837c5be9]", "[34ffffd2]", "0x20")
+ self.bid128_to_binary32("3", "[2ff8604be73de4838ad9a5cf87ffffff]", "[3affffff]", "0x20")
+ self.bid128_to_binary32("3", "[2fffed09bead87c0378d8e63ffffffff]", "[411fffff]", "0x20")
+ self.bid128_to_binary32("3", "[3005ed09bead87c0378d8e63ffffffff]", "[461c3fff]", "0x20")
+ self.bid128_to_binary32("3", "[300c295be96e64066971ffffffffffff]", "[4affffff]", "0x20")
+ self.bid128_to_binary32("3", "[3012a968163f0a57b3ffffffffffffff]", "[50ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[3019ed09bd71c1a309b9c3ffffffffff]", "[56b5e620]", "0x20")
+ self.bid128_to_binary32("3", "[301fed09be2bb8000aafffffffffffff]", "[5bb1a2bb]", "0x20")
+ self.bid128_to_binary32("3", "[3026246139ca7fffffffffffffffffff]", "[607fffff]", "0x20")
+ self.bid128_to_binary32("3", "[302c9502f8ffffffffffffffffffffff]", "[667fffff]", "0x20")
+ self.bid128_to_binary32("3", "[303000000000000000000000004d7c6d]", "[3d500000]", "0x00")
+ self.bid128_to_binary32("3", "[3033ed09be4e45ffffffffffffffffff]", "[6c4ecb8e]", "0x20")
+ self.bid128_to_binary32("3", "[3039ed09ba47ffffffffffffffffffff]", "[7149f2c7]", "0x20")
+ self.bid128_to_binary32("3", "[303e000000000000000000000000000f]", "[3fc00000]", "0x00")
+ self.bid128_to_binary32("3", "[30400000000000000000000000000000]", "[00000000]", "0x00")
+ self.bid128_to_binary32("3", "[30400000000000000000000000000001]", "[3f800000]", "0x00")
+ self.bid128_to_binary32("3", "[30400000000000000000000000000040]", "[42800000]", "0x00")
+ self.bid128_to_binary32("3", "[304000000000000000000000000003e7]", "[4479c000]", "0x00")
+ self.bid128_to_binary32("3", "[304000000000000000000000000003e8]", "[447a0000]", "0x00")
+ self.bid128_to_binary32("3", "[30401fffffffffffffffffffffffffff]", "[75ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "[7f7ffffe]", "0x20")
+ self.bid128_to_binary32("3", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[304aa7c5ac471b4784230fcf80dc3372]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[304aa7c5ac471b4784230fcf80dc3373]", "[7f7fffff]", "0x28")
+ self.bid128_to_binary32("3", "[5fffed09bead87c0378d8e63ffffffff]", "[7f7fffff]", "0x28")
+ self.bid128_to_binary32("3", "[78000000000000000000000000000000]", "[7f800000]", "0x00")
+ self.bid128_to_binary32("3", "[80000000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("3", "[80420000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("3", "[80440000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("3", "[afa3119395a1e4b0f4fbe1685f856220]", "[80000000]", "0x30")
+ self.bid128_to_binary32("3", "[afa44516df8a16fe63d5b71ab499363c]", "[80000000]", "0x30")
+ self.bid128_to_binary32("3", "[afa44516df8a16fe63d5b71ab499363d]", "[80000001]", "0x30")
+ self.bid128_to_binary32("3", "[afac05a5e6940f007380e6fd849d409b]", "[80000331]", "0x30")
+ self.bid128_to_binary32("3", "[afb0a6ce1a742b703e123d3fa7937495]", "[8024d702]", "0x30")
+ self.bid128_to_binary32("3", "[afb239f4d3192a7217511836ef2a1c65]", "[807fffff]", "0x30")
+ self.bid128_to_binary32("3", "[afb239f4d3192a7217511836ef2a1c66]", "[80800000]", "0x20")
+ self.bid128_to_binary32("3", "[afb273e9a63254e42ea2306dde5438cb]", "[80ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[afb273e9a63254e42ea2306dde5438cc]", "[81000000]", "0x20")
+ self.bid128_to_binary32("3", "[afb7cc088b83067ec0d126ac00ac3664]", "[8546708a]", "0x20")
+ self.bid128_to_binary32("3", "[afbe18f87bb341923d80b7ba9eac62f0]", "[89d26090]", "0x20")
+ self.bid128_to_binary32("3", "[afc44e175fb886767aedefd48e0dd137]", "[8fa09fdf]", "0x20")
+ self.bid128_to_binary32("3", "[afcb4c1eec26f2b12ff1f78190623250]", "[95a6c7cd]", "0x20")
+ self.bid128_to_binary32("3", "[afd1c3483ccbc86f04f11fedb5b2dc02]", "[9add4ee2]", "0x20")
+ self.bid128_to_binary32("3", "[afd81a014b7bf56b67ed17e03541348c]", "[9f791437]", "0x20")
+ self.bid128_to_binary32("3", "[afde36dffa1b5c161d3e16817534f17a]", "[a50051d3]", "0x20")
+ self.bid128_to_binary32("3", "[afe5bbb7bf5e05078cd4ce48c14eddbc]", "[ab7d516c]", "0x20")
+ self.bid128_to_binary32("3", "[afebed084181f631aabb34eb1a70482f]", "[b0896ff4]", "0x20")
+ self.bid128_to_binary32("3", "[aff2178283c6e920239ef6c1837c5be9]", "[b4ffffd2]", "0x20")
+ self.bid128_to_binary32("3", "[aff8604be73de4838ad9a5cf87ffffff]", "[baffffff]", "0x20")
+ self.bid128_to_binary32("3", "[afffed09bead87c0378d8e63ffffffff]", "[c11fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b005ed09bead87c0378d8e63ffffffff]", "[c61c3fff]", "0x20")
+ self.bid128_to_binary32("3", "[b00c295be96e64066971ffffffffffff]", "[caffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b012a968163f0a57b3ffffffffffffff]", "[d0ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b019ed09bd71c1a309b9c3ffffffffff]", "[d6b5e620]", "0x20")
+ self.bid128_to_binary32("3", "[b01fed09be2bb8000aafffffffffffff]", "[dbb1a2bb]", "0x20")
+ self.bid128_to_binary32("3", "[b026246139ca7fffffffffffffffffff]", "[e07fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b02c9502f8ffffffffffffffffffffff]", "[e67fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b03000000000000000000000004d7c6d]", "[bd500000]", "0x00")
+ self.bid128_to_binary32("3", "[b033ed09be4e45ffffffffffffffffff]", "[ec4ecb8e]", "0x20")
+ self.bid128_to_binary32("3", "[b039ed09ba47ffffffffffffffffffff]", "[f149f2c7]", "0x20")
+ self.bid128_to_binary32("3", "[b03e000000000000000000000000000f]", "[bfc00000]", "0x00")
+ self.bid128_to_binary32("3", "[b0400000000000000000000000000001]", "[bf800000]", "0x00")
+ self.bid128_to_binary32("3", "[b0400000000000000000000000000040]", "[c2800000]", "0x00")
+ self.bid128_to_binary32("3", "[b04000000000000000000000000003e7]", "[c479c000]", "0x00")
+ self.bid128_to_binary32("3", "[b04000000000000000000000000003e8]", "[c47a0000]", "0x00")
+ self.bid128_to_binary32("3", "[b0401fffffffffffffffffffffffffff]", "[f5ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "[ff7ffffe]", "0x20")
+ self.bid128_to_binary32("3", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b04aa7c5ac471b4784230fcf80dc3372]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b04aa7c5ac471b4784230fcf80dc3373]", "[ff7fffff]", "0x28")
+ self.bid128_to_binary32("3", "[dfffed09bead87c0378d8e63ffffffff]", "[ff7fffff]", "0x28")
+ self.bid128_to_binary32("3", "[f8000000000000000000000000000000]", "[ff800000]", "0x00")
+ self.bid128_to_binary32("4", "[00000000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("4", "[00420000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("4", "[00440000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("4", "[2fa3119395a1e4b0f4fbe1685f856220]", "[00000000]", "0x30")
+ self.bid128_to_binary32("4", "[2fa44516df8a16fe63d5b71ab499363c]", "[00000001]", "0x30")
+ self.bid128_to_binary32("4", "[2fa44516df8a16fe63d5b71ab499363d]", "[00000001]", "0x30")
+ self.bid128_to_binary32("4", "[2fac05a5e6940f007380e6fd849d409b]", "[00000331]", "0x30")
+ self.bid128_to_binary32("4", "[2fb0a6ce1a742b703e123d3fa7937495]", "[0024d703]", "0x30")
+ self.bid128_to_binary32("4", "[2fb239f4d3192a7217511836ef2a1c65]", "[00800000]", "0x20")
+ self.bid128_to_binary32("4", "[2fb239f4d3192a7217511836ef2a1c66]", "[00800000]", "0x20")
+ self.bid128_to_binary32("4", "[2fb273e9a63254e42ea2306dde5438cb]", "[01000000]", "0x20")
+ self.bid128_to_binary32("4", "[2fb273e9a63254e42ea2306dde5438cc]", "[01000000]", "0x20")
+ self.bid128_to_binary32("4", "[2fb7cc088b83067ec0d126ac00ac3664]", "[0546708a]", "0x20")
+ self.bid128_to_binary32("4", "[2fbe18f87bb341923d80b7ba9eac62f0]", "[09d26091]", "0x20")
+ self.bid128_to_binary32("4", "[2fc44e175fb886767aedefd48e0dd137]", "[0fa09fdf]", "0x20")
+ self.bid128_to_binary32("4", "[2fcb4c1eec26f2b12ff1f78190623250]", "[15a6c7ce]", "0x20")
+ self.bid128_to_binary32("4", "[2fd1c3483ccbc86f04f11fedb5b2dc02]", "[1add4ee2]", "0x20")
+ self.bid128_to_binary32("4", "[2fd81a014b7bf56b67ed17e03541348c]", "[1f791438]", "0x20")
+ self.bid128_to_binary32("4", "[2fde36dffa1b5c161d3e16817534f17a]", "[250051d3]", "0x20")
+ self.bid128_to_binary32("4", "[2fe5bbb7bf5e05078cd4ce48c14eddbc]", "[2b7d516c]", "0x20")
+ self.bid128_to_binary32("4", "[2febed084181f631aabb34eb1a70482f]", "[30896ff5]", "0x20")
+ self.bid128_to_binary32("4", "[2ff2178283c6e920239ef6c1837c5be9]", "[34ffffd2]", "0x20")
+ self.bid128_to_binary32("4", "[2ff8604be73de4838ad9a5cf87ffffff]", "[3b000000]", "0x20")
+ self.bid128_to_binary32("4", "[2fffed09bead87c0378d8e63ffffffff]", "[41200000]", "0x20")
+ self.bid128_to_binary32("4", "[3005ed09bead87c0378d8e63ffffffff]", "[461c4000]", "0x20")
+ self.bid128_to_binary32("4", "[300c295be96e64066971ffffffffffff]", "[4b000000]", "0x20")
+ self.bid128_to_binary32("4", "[3012a968163f0a57b3ffffffffffffff]", "[51000000]", "0x20")
+ self.bid128_to_binary32("4", "[3019ed09bd71c1a309b9c3ffffffffff]", "[56b5e620]", "0x20")
+ self.bid128_to_binary32("4", "[301fed09be2bb8000aafffffffffffff]", "[5bb1a2bc]", "0x20")
+ self.bid128_to_binary32("4", "[3026246139ca7fffffffffffffffffff]", "[60800000]", "0x20")
+ self.bid128_to_binary32("4", "[302c9502f8ffffffffffffffffffffff]", "[66800000]", "0x20")
+ self.bid128_to_binary32("4", "[303000000000000000000000004d7c6d]", "[3d500000]", "0x00")
+ self.bid128_to_binary32("4", "[3033ed09be4e45ffffffffffffffffff]", "[6c4ecb8f]", "0x20")
+ self.bid128_to_binary32("4", "[3039ed09ba47ffffffffffffffffffff]", "[7149f2c8]", "0x20")
+ self.bid128_to_binary32("4", "[303e000000000000000000000000000f]", "[3fc00000]", "0x00")
+ self.bid128_to_binary32("4", "[30400000000000000000000000000000]", "[00000000]", "0x00")
+ self.bid128_to_binary32("4", "[30400000000000000000000000000001]", "[3f800000]", "0x00")
+ self.bid128_to_binary32("4", "[30400000000000000000000000000040]", "[42800000]", "0x00")
+ self.bid128_to_binary32("4", "[304000000000000000000000000003e7]", "[4479c000]", "0x00")
+ self.bid128_to_binary32("4", "[304000000000000000000000000003e8]", "[447a0000]", "0x00")
+ self.bid128_to_binary32("4", "[30401fffffffffffffffffffffffffff]", "[76000000]", "0x20")
+ self.bid128_to_binary32("4", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[304aa7c5ac471b4784230fcf80dc3372]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("4", "[304aa7c5ac471b4784230fcf80dc3373]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("4", "[5fffed09bead87c0378d8e63ffffffff]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("4", "[78000000000000000000000000000000]", "[7f800000]", "0x00")
+ self.bid128_to_binary32("4", "[80000000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("4", "[80420000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("4", "[80440000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("4", "[afa3119395a1e4b0f4fbe1685f856220]", "[80000000]", "0x30")
+ self.bid128_to_binary32("4", "[afa44516df8a16fe63d5b71ab499363c]", "[80000001]", "0x30")
+ self.bid128_to_binary32("4", "[afa44516df8a16fe63d5b71ab499363d]", "[80000001]", "0x30")
+ self.bid128_to_binary32("4", "[afac05a5e6940f007380e6fd849d409b]", "[80000331]", "0x30")
+ self.bid128_to_binary32("4", "[afb0a6ce1a742b703e123d3fa7937495]", "[8024d703]", "0x30")
+ self.bid128_to_binary32("4", "[afb239f4d3192a7217511836ef2a1c65]", "[80800000]", "0x20")
+ self.bid128_to_binary32("4", "[afb239f4d3192a7217511836ef2a1c66]", "[80800000]", "0x20")
+ self.bid128_to_binary32("4", "[afb273e9a63254e42ea2306dde5438cb]", "[81000000]", "0x20")
+ self.bid128_to_binary32("4", "[afb273e9a63254e42ea2306dde5438cc]", "[81000000]", "0x20")
+ self.bid128_to_binary32("4", "[afb7cc088b83067ec0d126ac00ac3664]", "[8546708a]", "0x20")
+ self.bid128_to_binary32("4", "[afbe18f87bb341923d80b7ba9eac62f0]", "[89d26091]", "0x20")
+ self.bid128_to_binary32("4", "[afc44e175fb886767aedefd48e0dd137]", "[8fa09fdf]", "0x20")
+ self.bid128_to_binary32("4", "[afcb4c1eec26f2b12ff1f78190623250]", "[95a6c7ce]", "0x20")
+ self.bid128_to_binary32("4", "[afd1c3483ccbc86f04f11fedb5b2dc02]", "[9add4ee2]", "0x20")
+ self.bid128_to_binary32("4", "[afd81a014b7bf56b67ed17e03541348c]", "[9f791438]", "0x20")
+ self.bid128_to_binary32("4", "[afde36dffa1b5c161d3e16817534f17a]", "[a50051d3]", "0x20")
+ self.bid128_to_binary32("4", "[afe5bbb7bf5e05078cd4ce48c14eddbc]", "[ab7d516c]", "0x20")
+ self.bid128_to_binary32("4", "[afebed084181f631aabb34eb1a70482f]", "[b0896ff5]", "0x20")
+ self.bid128_to_binary32("4", "[aff2178283c6e920239ef6c1837c5be9]", "[b4ffffd2]", "0x20")
+ self.bid128_to_binary32("4", "[aff8604be73de4838ad9a5cf87ffffff]", "[bb000000]", "0x20")
+ self.bid128_to_binary32("4", "[afffed09bead87c0378d8e63ffffffff]", "[c1200000]", "0x20")
+ self.bid128_to_binary32("4", "[b005ed09bead87c0378d8e63ffffffff]", "[c61c4000]", "0x20")
+ self.bid128_to_binary32("4", "[b00c295be96e64066971ffffffffffff]", "[cb000000]", "0x20")
+ self.bid128_to_binary32("4", "[b012a968163f0a57b3ffffffffffffff]", "[d1000000]", "0x20")
+ self.bid128_to_binary32("4", "[b019ed09bd71c1a309b9c3ffffffffff]", "[d6b5e620]", "0x20")
+ self.bid128_to_binary32("4", "[b01fed09be2bb8000aafffffffffffff]", "[dbb1a2bc]", "0x20")
+ self.bid128_to_binary32("4", "[b026246139ca7fffffffffffffffffff]", "[e0800000]", "0x20")
+ self.bid128_to_binary32("4", "[b02c9502f8ffffffffffffffffffffff]", "[e6800000]", "0x20")
+ self.bid128_to_binary32("4", "[b03000000000000000000000004d7c6d]", "[bd500000]", "0x00")
+ self.bid128_to_binary32("4", "[b033ed09be4e45ffffffffffffffffff]", "[ec4ecb8f]", "0x20")
+ self.bid128_to_binary32("4", "[b039ed09ba47ffffffffffffffffffff]", "[f149f2c8]", "0x20")
+ self.bid128_to_binary32("4", "[b03e000000000000000000000000000f]", "[bfc00000]", "0x00")
+ self.bid128_to_binary32("4", "[b0400000000000000000000000000001]", "[bf800000]", "0x00")
+ self.bid128_to_binary32("4", "[b0400000000000000000000000000040]", "[c2800000]", "0x00")
+ self.bid128_to_binary32("4", "[b04000000000000000000000000003e7]", "[c479c000]", "0x00")
+ self.bid128_to_binary32("4", "[b04000000000000000000000000003e8]", "[c47a0000]", "0x00")
+ self.bid128_to_binary32("4", "[b0401fffffffffffffffffffffffffff]", "[f6000000]", "0x20")
+ self.bid128_to_binary32("4", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b04aa7c5ac471b4784230fcf80dc3372]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("4", "[b04aa7c5ac471b4784230fcf80dc3373]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("4", "[dfffed09bead87c0378d8e63ffffffff]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("4", "[f8000000000000000000000000000000]", "[ff800000]", "0x00")
+ self.bid128_to_binary32("0", "[7c000001000000000000000000000000]", "[7fc00100]", "00")
+ self.bid128_to_binary32("0", "[00000000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("1", "[00000000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("2", "[00000000000000000000000000000001]", "[00000001]", "0x30")
+ self.bid128_to_binary32("3", "[00000000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("4", "[00000000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("0", "[0000314dc6448d9338c15b09ffffffff]", "[00000000]", "0x30")
+ self.bid128_to_binary32("1", "[0000314dc6448d9338c15b09ffffffff]", "[00000000]", "0x30")
+ self.bid128_to_binary32("2", "[0000314dc6448d9338c15b09ffffffff]", "[00000001]", "0x30")
+ self.bid128_to_binary32("3", "[0000314dc6448d9338c15b09ffffffff]", "[00000000]", "0x30")
+ self.bid128_to_binary32("4", "[0000314dc6448d9338c15b09ffffffff]", "[00000000]", "0x30")
+ self.bid128_to_binary32("0", "[00420000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("1", "[00420000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("2", "[00420000000000000000000000000001]", "[00000001]", "0x30")
+ self.bid128_to_binary32("3", "[00420000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("4", "[00420000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("0", "[00440000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("1", "[00440000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("2", "[00440000000000000000000000000001]", "[00000001]", "0x30")
+ self.bid128_to_binary32("3", "[00440000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("4", "[00440000000000000000000000000001]", "[00000000]", "0x30")
+ self.bid128_to_binary32("0", "[2fa3119395a1e4b0f4fbe1685f856220]", "[00000000]", "0x30")
+ self.bid128_to_binary32("1", "[2fa3119395a1e4b0f4fbe1685f856220]", "[00000000]", "0x30")
+ self.bid128_to_binary32("2", "[2fa3119395a1e4b0f4fbe1685f856220]", "[00000001]", "0x30")
+ self.bid128_to_binary32("3", "[2fa3119395a1e4b0f4fbe1685f856220]", "[00000000]", "0x30")
+ self.bid128_to_binary32("4", "[2fa3119395a1e4b0f4fbe1685f856220]", "[00000000]", "0x30")
+ self.bid128_to_binary32("0", "[2fa44516df8a16fe63d5b71ab499363c]", "[00000001]", "0x30")
+ self.bid128_to_binary32("1", "[2fa44516df8a16fe63d5b71ab499363c]", "[00000000]", "0x30")
+ self.bid128_to_binary32("2", "[2fa44516df8a16fe63d5b71ab499363c]", "[00000001]", "0x30")
+ self.bid128_to_binary32("3", "[2fa44516df8a16fe63d5b71ab499363c]", "[00000000]", "0x30")
+ self.bid128_to_binary32("4", "[2fa44516df8a16fe63d5b71ab499363c]", "[00000001]", "0x30")
+ self.bid128_to_binary32("0", "[2fa44516df8a16fe63d5b71ab499363d]", "[00000001]", "0x30")
+ self.bid128_to_binary32("1", "[2fa44516df8a16fe63d5b71ab499363d]", "[00000001]", "0x30")
+ self.bid128_to_binary32("2", "[2fa44516df8a16fe63d5b71ab499363d]", "[00000002]", "0x30")
+ self.bid128_to_binary32("3", "[2fa44516df8a16fe63d5b71ab499363d]", "[00000001]", "0x30")
+ self.bid128_to_binary32("4", "[2fa44516df8a16fe63d5b71ab499363d]", "[00000001]", "0x30")
+ self.bid128_to_binary32("0", "[2fa5c6fb0f8b73c9353aabc6fd34fff1]", "[00000007]", "0x30")
+ self.bid128_to_binary32("1", "[2fa5c6fb0f8b73c9353aabc6fd34fff1]", "[00000006]", "0x30")
+ self.bid128_to_binary32("2", "[2fa5c6fb0f8b73c9353aabc6fd34fff1]", "[00000007]", "0x30")
+ self.bid128_to_binary32("3", "[2fa5c6fb0f8b73c9353aabc6fd34fff1]", "[00000006]", "0x30")
+ self.bid128_to_binary32("4", "[2fa5c6fb0f8b73c9353aabc6fd34fff1]", "[00000007]", "0x30")
+ self.bid128_to_binary32("0", "[2fa7223f2975b1c066cadd642f7f62e8]", "[0000002a]", "0x30")
+ self.bid128_to_binary32("1", "[2fa7223f2975b1c066cadd642f7f62e8]", "[0000002a]", "0x30")
+ self.bid128_to_binary32("2", "[2fa7223f2975b1c066cadd642f7f62e8]", "[0000002b]", "0x30")
+ self.bid128_to_binary32("3", "[2fa7223f2975b1c066cadd642f7f62e8]", "[0000002a]", "0x30")
+ self.bid128_to_binary32("4", "[2fa7223f2975b1c066cadd642f7f62e8]", "[0000002a]", "0x30")
+ self.bid128_to_binary32("0", "[2fa8564aa0aa1d6662464f9ff5ddeeb5]", "[0000007d]", "0x30")
+ self.bid128_to_binary32("1", "[2fa8564aa0aa1d6662464f9ff5ddeeb5]", "[0000007c]", "0x30")
+ self.bid128_to_binary32("2", "[2fa8564aa0aa1d6662464f9ff5ddeeb5]", "[0000007d]", "0x30")
+ self.bid128_to_binary32("3", "[2fa8564aa0aa1d6662464f9ff5ddeeb5]", "[0000007c]", "0x30")
+ self.bid128_to_binary32("4", "[2fa8564aa0aa1d6662464f9ff5ddeeb5]", "[0000007d]", "0x30")
+ self.bid128_to_binary32("0", "[2faa07d8208ac3a9d79dbfe048c8c4a2]", "[00000072]", "0x30")
+ self.bid128_to_binary32("1", "[2faa07d8208ac3a9d79dbfe048c8c4a2]", "[00000071]", "0x30")
+ self.bid128_to_binary32("2", "[2faa07d8208ac3a9d79dbfe048c8c4a2]", "[00000072]", "0x30")
+ self.bid128_to_binary32("3", "[2faa07d8208ac3a9d79dbfe048c8c4a2]", "[00000071]", "0x30")
+ self.bid128_to_binary32("4", "[2faa07d8208ac3a9d79dbfe048c8c4a2]", "[00000072]", "0x30")
+ self.bid128_to_binary32("0", "[2fab8e800dc2ddc4b231a5dfcf1079e3]", "[00001688]", "0x30")
+ self.bid128_to_binary32("1", "[2fab8e800dc2ddc4b231a5dfcf1079e3]", "[00001687]", "0x30")
+ self.bid128_to_binary32("2", "[2fab8e800dc2ddc4b231a5dfcf1079e3]", "[00001688]", "0x30")
+ self.bid128_to_binary32("3", "[2fab8e800dc2ddc4b231a5dfcf1079e3]", "[00001687]", "0x30")
+ self.bid128_to_binary32("4", "[2fab8e800dc2ddc4b231a5dfcf1079e3]", "[00001688]", "0x30")
+ self.bid128_to_binary32("0", "[2fac5a5e6940f007380e6fd849d409b0]", "[00003318]", "0x30")
+ self.bid128_to_binary32("1", "[2fac5a5e6940f007380e6fd849d409b0]", "[00003317]", "0x30")
+ self.bid128_to_binary32("2", "[2fac5a5e6940f007380e6fd849d409b0]", "[00003318]", "0x30")
+ self.bid128_to_binary32("3", "[2fac5a5e6940f007380e6fd849d409b0]", "[00003317]", "0x30")
+ self.bid128_to_binary32("4", "[2fac5a5e6940f007380e6fd849d409b0]", "[00003318]", "0x30")
+ self.bid128_to_binary32("0", "[2fae197a9066692302014477c9ea78f7]", "[0000900e]", "0x30")
+ self.bid128_to_binary32("1", "[2fae197a9066692302014477c9ea78f7]", "[0000900d]", "0x30")
+ self.bid128_to_binary32("2", "[2fae197a9066692302014477c9ea78f7]", "[0000900e]", "0x30")
+ self.bid128_to_binary32("3", "[2fae197a9066692302014477c9ea78f7]", "[0000900d]", "0x30")
+ self.bid128_to_binary32("4", "[2fae197a9066692302014477c9ea78f7]", "[0000900e]", "0x30")
+ self.bid128_to_binary32("0", "[2faea6ce1a742b703e123d3fa7937495]", "[0003af1a]", "0x30")
+ self.bid128_to_binary32("1", "[2faea6ce1a742b703e123d3fa7937495]", "[0003af19]", "0x30")
+ self.bid128_to_binary32("2", "[2faea6ce1a742b703e123d3fa7937495]", "[0003af1a]", "0x30")
+ self.bid128_to_binary32("3", "[2faea6ce1a742b703e123d3fa7937495]", "[0003af19]", "0x30")
+ self.bid128_to_binary32("4", "[2faea6ce1a742b703e123d3fa7937495]", "[0003af1a]", "0x30")
+ self.bid128_to_binary32("0", "[2fb090e40e9d21fdbc768214c0703452]", "[00200000]", "0x30")
+ self.bid128_to_binary32("1", "[2fb090e40e9d21fdbc768214c0703452]", "[001fffff]", "0x30")
+ self.bid128_to_binary32("2", "[2fb090e40e9d21fdbc768214c0703452]", "[00200000]", "0x30")
+ self.bid128_to_binary32("3", "[2fb090e40e9d21fdbc768214c0703452]", "[001fffff]", "0x30")
+ self.bid128_to_binary32("4", "[2fb090e40e9d21fdbc768214c0703452]", "[00200000]", "0x30")
+ self.bid128_to_binary32("0", "[2fb090e40e9d21fdbc768214c0703453]", "[00200000]", "0x30")
+ self.bid128_to_binary32("1", "[2fb090e40e9d21fdbc768214c0703453]", "[001fffff]", "0x30")
+ self.bid128_to_binary32("2", "[2fb090e40e9d21fdbc768214c0703453]", "[00200000]", "0x30")
+ self.bid128_to_binary32("3", "[2fb090e40e9d21fdbc768214c0703453]", "[001fffff]", "0x30")
+ self.bid128_to_binary32("4", "[2fb090e40e9d21fdbc768214c0703453]", "[00200000]", "0x30")
+ self.bid128_to_binary32("0", "[2fb0a6ce1a742b703e123d3fa7937495]", "[0024d703]", "0x30")
+ self.bid128_to_binary32("1", "[2fb0a6ce1a742b703e123d3fa7937495]", "[0024d702]", "0x30")
+ self.bid128_to_binary32("2", "[2fb0a6ce1a742b703e123d3fa7937495]", "[0024d703]", "0x30")
+ self.bid128_to_binary32("3", "[2fb0a6ce1a742b703e123d3fa7937495]", "[0024d702]", "0x30")
+ self.bid128_to_binary32("4", "[2fb0a6ce1a742b703e123d3fa7937495]", "[0024d703]", "0x30")
+ self.bid128_to_binary32("0", "[2fb121c81d3a43fb78ed042980e068a4]", "[003fffff]", "0x30")
+ self.bid128_to_binary32("1", "[2fb121c81d3a43fb78ed042980e068a4]", "[003fffff]", "0x30")
+ self.bid128_to_binary32("2", "[2fb121c81d3a43fb78ed042980e068a4]", "[00400000]", "0x30")
+ self.bid128_to_binary32("3", "[2fb121c81d3a43fb78ed042980e068a4]", "[003fffff]", "0x30")
+ self.bid128_to_binary32("4", "[2fb121c81d3a43fb78ed042980e068a4]", "[003fffff]", "0x30")
+ self.bid128_to_binary32("0", "[2fb121c81d3a43fb78ed042980e068a5]", "[00400000]", "0x30")
+ self.bid128_to_binary32("1", "[2fb121c81d3a43fb78ed042980e068a5]", "[003fffff]", "0x30")
+ self.bid128_to_binary32("2", "[2fb121c81d3a43fb78ed042980e068a5]", "[00400000]", "0x30")
+ self.bid128_to_binary32("3", "[2fb121c81d3a43fb78ed042980e068a5]", "[003fffff]", "0x30")
+ self.bid128_to_binary32("4", "[2fb121c81d3a43fb78ed042980e068a5]", "[00400000]", "0x30")
+ self.bid128_to_binary32("0", "[2fb239f4d3192a7217511836ef2a1c65]", "[00800000]", "0x20")
+ self.bid128_to_binary32("1", "[2fb239f4d3192a7217511836ef2a1c65]", "[007fffff]", "0x30")
+ self.bid128_to_binary32("2", "[2fb239f4d3192a7217511836ef2a1c65]", "[00800000]", "0x20")
+ self.bid128_to_binary32("3", "[2fb239f4d3192a7217511836ef2a1c65]", "[007fffff]", "0x30")
+ self.bid128_to_binary32("4", "[2fb239f4d3192a7217511836ef2a1c65]", "[00800000]", "0x20")
+ self.bid128_to_binary32("0", "[2fb239f4d3192a7217511836ef2a1c66]", "[00800000]", "0x20")
+ self.bid128_to_binary32("1", "[2fb239f4d3192a7217511836ef2a1c66]", "[00800000]", "0x20")
+ self.bid128_to_binary32("2", "[2fb239f4d3192a7217511836ef2a1c66]", "[00800001]", "0x20")
+ self.bid128_to_binary32("3", "[2fb239f4d3192a7217511836ef2a1c66]", "[00800000]", "0x20")
+ self.bid128_to_binary32("4", "[2fb239f4d3192a7217511836ef2a1c66]", "[00800000]", "0x20")
+ self.bid128_to_binary32("0", "[2fb2659456dea3688adbcb6927ca90d5]", "[00e0581d]", "0x20")
+ self.bid128_to_binary32("1", "[2fb2659456dea3688adbcb6927ca90d5]", "[00e0581d]", "0x20")
+ self.bid128_to_binary32("2", "[2fb2659456dea3688adbcb6927ca90d5]", "[00e0581e]", "0x20")
+ self.bid128_to_binary32("3", "[2fb2659456dea3688adbcb6927ca90d5]", "[00e0581d]", "0x20")
+ self.bid128_to_binary32("4", "[2fb2659456dea3688adbcb6927ca90d5]", "[00e0581d]", "0x20")
+ self.bid128_to_binary32("0", "[2fb273e9a63254e42ea2306dde5438cb]", "[01000000]", "0x20")
+ self.bid128_to_binary32("1", "[2fb273e9a63254e42ea2306dde5438cb]", "[00ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[2fb273e9a63254e42ea2306dde5438cb]", "[01000000]", "0x20")
+ self.bid128_to_binary32("3", "[2fb273e9a63254e42ea2306dde5438cb]", "[00ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[2fb273e9a63254e42ea2306dde5438cb]", "[01000000]", "0x20")
+ self.bid128_to_binary32("0", "[2fb273e9a63254e42ea2306dde5438cc]", "[01000000]", "0x20")
+ self.bid128_to_binary32("1", "[2fb273e9a63254e42ea2306dde5438cc]", "[01000000]", "0x20")
+ self.bid128_to_binary32("2", "[2fb273e9a63254e42ea2306dde5438cc]", "[01000001]", "0x20")
+ self.bid128_to_binary32("3", "[2fb273e9a63254e42ea2306dde5438cc]", "[01000000]", "0x20")
+ self.bid128_to_binary32("4", "[2fb273e9a63254e42ea2306dde5438cc]", "[01000000]", "0x20")
+ self.bid128_to_binary32("0", "[2fb40d0b8d844e67f0a47d2ae65b60c0]", "[01100dfe]", "0x20")
+ self.bid128_to_binary32("1", "[2fb40d0b8d844e67f0a47d2ae65b60c0]", "[01100dfe]", "0x20")
+ self.bid128_to_binary32("2", "[2fb40d0b8d844e67f0a47d2ae65b60c0]", "[01100dff]", "0x20")
+ self.bid128_to_binary32("3", "[2fb40d0b8d844e67f0a47d2ae65b60c0]", "[01100dfe]", "0x20")
+ self.bid128_to_binary32("4", "[2fb40d0b8d844e67f0a47d2ae65b60c0]", "[01100dfe]", "0x20")
+ self.bid128_to_binary32("0", "[2fb5e86d1d7e8229de52278b79819ffc]", "[03a88cb9]", "0x20")
+ self.bid128_to_binary32("1", "[2fb5e86d1d7e8229de52278b79819ffc]", "[03a88cb9]", "0x20")
+ self.bid128_to_binary32("2", "[2fb5e86d1d7e8229de52278b79819ffc]", "[03a88cba]", "0x20")
+ self.bid128_to_binary32("3", "[2fb5e86d1d7e8229de52278b79819ffc]", "[03a88cb9]", "0x20")
+ self.bid128_to_binary32("4", "[2fb5e86d1d7e8229de52278b79819ffc]", "[03a88cb9]", "0x20")
+ self.bid128_to_binary32("0", "[2fb702e3760defe63bf9ab99d81d51dd]", "[04df590e]", "0x20")
+ self.bid128_to_binary32("1", "[2fb702e3760defe63bf9ab99d81d51dd]", "[04df590d]", "0x20")
+ self.bid128_to_binary32("2", "[2fb702e3760defe63bf9ab99d81d51dd]", "[04df590e]", "0x20")
+ self.bid128_to_binary32("3", "[2fb702e3760defe63bf9ab99d81d51dd]", "[04df590d]", "0x20")
+ self.bid128_to_binary32("4", "[2fb702e3760defe63bf9ab99d81d51dd]", "[04df590e]", "0x20")
+ self.bid128_to_binary32("0", "[2fb82e1960d07da56c7e888baca7fb41]", "[0546da53]", "0x20")
+ self.bid128_to_binary32("1", "[2fb82e1960d07da56c7e888baca7fb41]", "[0546da52]", "0x20")
+ self.bid128_to_binary32("2", "[2fb82e1960d07da56c7e888baca7fb41]", "[0546da53]", "0x20")
+ self.bid128_to_binary32("3", "[2fb82e1960d07da56c7e888baca7fb41]", "[0546da52]", "0x20")
+ self.bid128_to_binary32("4", "[2fb82e1960d07da56c7e888baca7fb41]", "[0546da53]", "0x20")
+ self.bid128_to_binary32("0", "[2fb9d5c312079e381334711687cb742d]", "[06fd4b90]", "0x20")
+ self.bid128_to_binary32("1", "[2fb9d5c312079e381334711687cb742d]", "[06fd4b90]", "0x20")
+ self.bid128_to_binary32("2", "[2fb9d5c312079e381334711687cb742d]", "[06fd4b91]", "0x20")
+ self.bid128_to_binary32("3", "[2fb9d5c312079e381334711687cb742d]", "[06fd4b90]", "0x20")
+ self.bid128_to_binary32("4", "[2fb9d5c312079e381334711687cb742d]", "[06fd4b90]", "0x20")
+ self.bid128_to_binary32("0", "[2fba833702e911bf5916302af13d5119]", "[07b0e098]", "0x20")
+ self.bid128_to_binary32("1", "[2fba833702e911bf5916302af13d5119]", "[07b0e097]", "0x20")
+ self.bid128_to_binary32("2", "[2fba833702e911bf5916302af13d5119]", "[07b0e098]", "0x20")
+ self.bid128_to_binary32("3", "[2fba833702e911bf5916302af13d5119]", "[07b0e097]", "0x20")
+ self.bid128_to_binary32("4", "[2fba833702e911bf5916302af13d5119]", "[07b0e098]", "0x20")
+ self.bid128_to_binary32("0", "[2fbc833702e911bf5916302af13d5119]", "[095d18be]", "0x20")
+ self.bid128_to_binary32("1", "[2fbc833702e911bf5916302af13d5119]", "[095d18bd]", "0x20")
+ self.bid128_to_binary32("2", "[2fbc833702e911bf5916302af13d5119]", "[095d18be]", "0x20")
+ self.bid128_to_binary32("3", "[2fbc833702e911bf5916302af13d5119]", "[095d18bd]", "0x20")
+ self.bid128_to_binary32("4", "[2fbc833702e911bf5916302af13d5119]", "[095d18be]", "0x20")
+ self.bid128_to_binary32("0", "[2fbe18f87bb341923d80b7ba9eac62f0]", "[09d26091]", "0x20")
+ self.bid128_to_binary32("1", "[2fbe18f87bb341923d80b7ba9eac62f0]", "[09d26090]", "0x20")
+ self.bid128_to_binary32("2", "[2fbe18f87bb341923d80b7ba9eac62f0]", "[09d26091]", "0x20")
+ self.bid128_to_binary32("3", "[2fbe18f87bb341923d80b7ba9eac62f0]", "[09d26090]", "0x20")
+ self.bid128_to_binary32("4", "[2fbe18f87bb341923d80b7ba9eac62f0]", "[09d26091]", "0x20")
+ self.bid128_to_binary32("0", "[2fbfa9d15ae885d5427295a296b37807]", "[0be03820]", "0x20")
+ self.bid128_to_binary32("1", "[2fbfa9d15ae885d5427295a296b37807]", "[0be0381f]", "0x20")
+ self.bid128_to_binary32("2", "[2fbfa9d15ae885d5427295a296b37807]", "[0be03820]", "0x20")
+ self.bid128_to_binary32("3", "[2fbfa9d15ae885d5427295a296b37807]", "[0be0381f]", "0x20")
+ self.bid128_to_binary32("4", "[2fbfa9d15ae885d5427295a296b37807]", "[0be03820]", "0x20")
+ self.bid128_to_binary32("0", "[2fc218f4bfdae19b19d98e8c5ba60ae9]", "[0d2442dd]", "0x20")
+ self.bid128_to_binary32("1", "[2fc218f4bfdae19b19d98e8c5ba60ae9]", "[0d2442dd]", "0x20")
+ self.bid128_to_binary32("2", "[2fc218f4bfdae19b19d98e8c5ba60ae9]", "[0d2442de]", "0x20")
+ self.bid128_to_binary32("3", "[2fc218f4bfdae19b19d98e8c5ba60ae9]", "[0d2442dd]", "0x20")
+ self.bid128_to_binary32("4", "[2fc218f4bfdae19b19d98e8c5ba60ae9]", "[0d2442dd]", "0x20")
+ self.bid128_to_binary32("0", "[2fc231e97fb5c33633b31d18b74c15d2]", "[0da442dd]", "0x20")
+ self.bid128_to_binary32("1", "[2fc231e97fb5c33633b31d18b74c15d2]", "[0da442dd]", "0x20")
+ self.bid128_to_binary32("2", "[2fc231e97fb5c33633b31d18b74c15d2]", "[0da442de]", "0x20")
+ self.bid128_to_binary32("3", "[2fc231e97fb5c33633b31d18b74c15d2]", "[0da442dd]", "0x20")
+ self.bid128_to_binary32("4", "[2fc231e97fb5c33633b31d18b74c15d2]", "[0da442dd]", "0x20")
+ self.bid128_to_binary32("0", "[2fc40f495f633cab91b5c1fdea52f975]", "[0e7b8ab9]", "0x20")
+ self.bid128_to_binary32("1", "[2fc40f495f633cab91b5c1fdea52f975]", "[0e7b8ab9]", "0x20")
+ self.bid128_to_binary32("2", "[2fc40f495f633cab91b5c1fdea52f975]", "[0e7b8aba]", "0x20")
+ self.bid128_to_binary32("3", "[2fc40f495f633cab91b5c1fdea52f975]", "[0e7b8ab9]", "0x20")
+ self.bid128_to_binary32("4", "[2fc40f495f633cab91b5c1fdea52f975]", "[0e7b8ab9]", "0x20")
+ self.bid128_to_binary32("0", "[2fc5385d7ee219d9ebb7bf52383744dc]", "[10a09fdf]", "0x20")
+ self.bid128_to_binary32("1", "[2fc5385d7ee219d9ebb7bf52383744dc]", "[10a09fdf]", "0x20")
+ self.bid128_to_binary32("2", "[2fc5385d7ee219d9ebb7bf52383744dc]", "[10a09fe0]", "0x20")
+ self.bid128_to_binary32("3", "[2fc5385d7ee219d9ebb7bf52383744dc]", "[10a09fdf]", "0x20")
+ self.bid128_to_binary32("4", "[2fc5385d7ee219d9ebb7bf52383744dc]", "[10a09fdf]", "0x20")
+ self.bid128_to_binary32("0", "[2fc664c8255368dbf2ace77e3a8d0ea6]", "[11818f63]", "0x20")
+ self.bid128_to_binary32("1", "[2fc664c8255368dbf2ace77e3a8d0ea6]", "[11818f63]", "0x20")
+ self.bid128_to_binary32("2", "[2fc664c8255368dbf2ace77e3a8d0ea6]", "[11818f64]", "0x20")
+ self.bid128_to_binary32("3", "[2fc664c8255368dbf2ace77e3a8d0ea6]", "[11818f63]", "0x20")
+ self.bid128_to_binary32("4", "[2fc664c8255368dbf2ace77e3a8d0ea6]", "[11818f63]", "0x20")
+ self.bid128_to_binary32("0", "[2fc80100817d9653cec4e748c0db35b1]", "[0fce1830]", "0x20")
+ self.bid128_to_binary32("1", "[2fc80100817d9653cec4e748c0db35b1]", "[0fce1830]", "0x20")
+ self.bid128_to_binary32("2", "[2fc80100817d9653cec4e748c0db35b1]", "[0fce1831]", "0x20")
+ self.bid128_to_binary32("3", "[2fc80100817d9653cec4e748c0db35b1]", "[0fce1830]", "0x20")
+ self.bid128_to_binary32("4", "[2fc80100817d9653cec4e748c0db35b1]", "[0fce1830]", "0x20")
+ self.bid128_to_binary32("0", "[2fc8c78f47aba51047d0006af363b1ea]", "[13a0570c]", "0x20")
+ self.bid128_to_binary32("1", "[2fc8c78f47aba51047d0006af363b1ea]", "[13a0570b]", "0x20")
+ self.bid128_to_binary32("2", "[2fc8c78f47aba51047d0006af363b1ea]", "[13a0570c]", "0x20")
+ self.bid128_to_binary32("3", "[2fc8c78f47aba51047d0006af363b1ea]", "[13a0570b]", "0x20")
+ self.bid128_to_binary32("4", "[2fc8c78f47aba51047d0006af363b1ea]", "[13a0570c]", "0x20")
+ self.bid128_to_binary32("0", "[2fcb4c1eec26f2b12ff1f78190623250]", "[15a6c7ce]", "0x20")
+ self.bid128_to_binary32("1", "[2fcb4c1eec26f2b12ff1f78190623250]", "[15a6c7cd]", "0x20")
+ self.bid128_to_binary32("2", "[2fcb4c1eec26f2b12ff1f78190623250]", "[15a6c7ce]", "0x20")
+ self.bid128_to_binary32("3", "[2fcb4c1eec26f2b12ff1f78190623250]", "[15a6c7cd]", "0x20")
+ self.bid128_to_binary32("4", "[2fcb4c1eec26f2b12ff1f78190623250]", "[15a6c7ce]", "0x20")
+ self.bid128_to_binary32("0", "[2fcc4fae26141eb38733ca35c62d16e7]", "[16481081]", "0x20")
+ self.bid128_to_binary32("1", "[2fcc4fae26141eb38733ca35c62d16e7]", "[16481080]", "0x20")
+ self.bid128_to_binary32("2", "[2fcc4fae26141eb38733ca35c62d16e7]", "[16481081]", "0x20")
+ self.bid128_to_binary32("3", "[2fcc4fae26141eb38733ca35c62d16e7]", "[16481080]", "0x20")
+ self.bid128_to_binary32("4", "[2fcc4fae26141eb38733ca35c62d16e7]", "[16481081]", "0x20")
+ self.bid128_to_binary32("0", "[2fce129db1fbb7b7b877b82cd92bc91f]", "[16e9b582]", "0x20")
+ self.bid128_to_binary32("1", "[2fce129db1fbb7b7b877b82cd92bc91f]", "[16e9b581]", "0x20")
+ self.bid128_to_binary32("2", "[2fce129db1fbb7b7b877b82cd92bc91f]", "[16e9b582]", "0x20")
+ self.bid128_to_binary32("3", "[2fce129db1fbb7b7b877b82cd92bc91f]", "[16e9b581]", "0x20")
+ self.bid128_to_binary32("4", "[2fce129db1fbb7b7b877b82cd92bc91f]", "[16e9b582]", "0x20")
+ self.bid128_to_binary32("0", "[2fcf29db1fbb7b7b877b82cd92bc91f0]", "[18e9b582]", "0x20")
+ self.bid128_to_binary32("1", "[2fcf29db1fbb7b7b877b82cd92bc91f0]", "[18e9b581]", "0x20")
+ self.bid128_to_binary32("2", "[2fcf29db1fbb7b7b877b82cd92bc91f0]", "[18e9b582]", "0x20")
+ self.bid128_to_binary32("3", "[2fcf29db1fbb7b7b877b82cd92bc91f0]", "[18e9b581]", "0x20")
+ self.bid128_to_binary32("4", "[2fcf29db1fbb7b7b877b82cd92bc91f0]", "[18e9b582]", "0x20")
+ self.bid128_to_binary32("0", "[2fd068b30c6d1323ceca6a27491dfffd]", "[19cd60b5]", "0x20")
+ self.bid128_to_binary32("1", "[2fd068b30c6d1323ceca6a27491dfffd]", "[19cd60b5]", "0x20")
+ self.bid128_to_binary32("2", "[2fd068b30c6d1323ceca6a27491dfffd]", "[19cd60b6]", "0x20")
+ self.bid128_to_binary32("3", "[2fd068b30c6d1323ceca6a27491dfffd]", "[19cd60b5]", "0x20")
+ self.bid128_to_binary32("4", "[2fd068b30c6d1323ceca6a27491dfffd]", "[19cd60b5]", "0x20")
+ self.bid128_to_binary32("0", "[2fd211b10160443d952e22e6334ce9fe]", "[1a2d845b]", "0x20")
+ self.bid128_to_binary32("1", "[2fd211b10160443d952e22e6334ce9fe]", "[1a2d845a]", "0x20")
+ self.bid128_to_binary32("2", "[2fd211b10160443d952e22e6334ce9fe]", "[1a2d845b]", "0x20")
+ self.bid128_to_binary32("3", "[2fd211b10160443d952e22e6334ce9fe]", "[1a2d845a]", "0x20")
+ self.bid128_to_binary32("4", "[2fd211b10160443d952e22e6334ce9fe]", "[1a2d845b]", "0x20")
+ self.bid128_to_binary32("0", "[2fd3286823e6f52dd7311b8fa80d15f9]", "[1c35b264]", "0x20")
+ self.bid128_to_binary32("1", "[2fd3286823e6f52dd7311b8fa80d15f9]", "[1c35b264]", "0x20")
+ self.bid128_to_binary32("2", "[2fd3286823e6f52dd7311b8fa80d15f9]", "[1c35b265]", "0x20")
+ self.bid128_to_binary32("3", "[2fd3286823e6f52dd7311b8fa80d15f9]", "[1c35b264]", "0x20")
+ self.bid128_to_binary32("4", "[2fd3286823e6f52dd7311b8fa80d15f9]", "[1c35b264]", "0x20")
+ self.bid128_to_binary32("0", "[2fd43b48072e31092b09d24fee690465]", "[1cb5b264]", "0x20")
+ self.bid128_to_binary32("1", "[2fd43b48072e31092b09d24fee690465]", "[1cb5b264]", "0x20")
+ self.bid128_to_binary32("2", "[2fd43b48072e31092b09d24fee690465]", "[1cb5b265]", "0x20")
+ self.bid128_to_binary32("3", "[2fd43b48072e31092b09d24fee690465]", "[1cb5b264]", "0x20")
+ self.bid128_to_binary32("4", "[2fd43b48072e31092b09d24fee690465]", "[1cb5b264]", "0x20")
+ self.bid128_to_binary32("0", "[2fd63b48072e31092b09d24fee690465]", "[1e631efd]", "0x20")
+ self.bid128_to_binary32("1", "[2fd63b48072e31092b09d24fee690465]", "[1e631efd]", "0x20")
+ self.bid128_to_binary32("2", "[2fd63b48072e31092b09d24fee690465]", "[1e631efe]", "0x20")
+ self.bid128_to_binary32("3", "[2fd63b48072e31092b09d24fee690465]", "[1e631efd]", "0x20")
+ self.bid128_to_binary32("4", "[2fd63b48072e31092b09d24fee690465]", "[1e631efd]", "0x20")
+ self.bid128_to_binary32("0", "[2fd81a014b7bf56b67ed17e03541348c]", "[1f791438]", "0x20")
+ self.bid128_to_binary32("1", "[2fd81a014b7bf56b67ed17e03541348c]", "[1f791437]", "0x20")
+ self.bid128_to_binary32("2", "[2fd81a014b7bf56b67ed17e03541348c]", "[1f791438]", "0x20")
+ self.bid128_to_binary32("3", "[2fd81a014b7bf56b67ed17e03541348c]", "[1f791437]", "0x20")
+ self.bid128_to_binary32("4", "[2fd81a014b7bf56b67ed17e03541348c]", "[1f791438]", "0x20")
+ self.bid128_to_binary32("0", "[2fda110eaa2207b0ea316209a0bba4fd]", "[20cc386c]", "0x20")
+ self.bid128_to_binary32("1", "[2fda110eaa2207b0ea316209a0bba4fd]", "[20cc386c]", "0x20")
+ self.bid128_to_binary32("2", "[2fda110eaa2207b0ea316209a0bba4fd]", "[20cc386d]", "0x20")
+ self.bid128_to_binary32("3", "[2fda110eaa2207b0ea316209a0bba4fd]", "[20cc386c]", "0x20")
+ self.bid128_to_binary32("4", "[2fda110eaa2207b0ea316209a0bba4fd]", "[20cc386c]", "0x20")
+ self.bid128_to_binary32("0", "[2fda221d54440f61d462c413417749fa]", "[214c386c]", "0x20")
+ self.bid128_to_binary32("1", "[2fda221d54440f61d462c413417749fa]", "[214c386c]", "0x20")
+ self.bid128_to_binary32("2", "[2fda221d54440f61d462c413417749fa]", "[214c386d]", "0x20")
+ self.bid128_to_binary32("3", "[2fda221d54440f61d462c413417749fa]", "[214c386c]", "0x20")
+ self.bid128_to_binary32("4", "[2fda221d54440f61d462c413417749fa]", "[214c386c]", "0x20")
+ self.bid128_to_binary32("0", "[2fdc221d54440f61d462c413417749fa]", "[22ff4687]", "0x20")
+ self.bid128_to_binary32("1", "[2fdc221d54440f61d462c413417749fa]", "[22ff4687]", "0x20")
+ self.bid128_to_binary32("2", "[2fdc221d54440f61d462c413417749fa]", "[22ff4688]", "0x20")
+ self.bid128_to_binary32("3", "[2fdc221d54440f61d462c413417749fa]", "[22ff4687]", "0x20")
+ self.bid128_to_binary32("4", "[2fdc221d54440f61d462c413417749fa]", "[22ff4687]", "0x20")
+ self.bid128_to_binary32("0", "[2fde06ad57366156c5c3b8d286dcd13d]", "[2379d207]", "0x20")
+ self.bid128_to_binary32("1", "[2fde06ad57366156c5c3b8d286dcd13d]", "[2379d207]", "0x20")
+ self.bid128_to_binary32("2", "[2fde06ad57366156c5c3b8d286dcd13d]", "[2379d208]", "0x20")
+ self.bid128_to_binary32("3", "[2fde06ad57366156c5c3b8d286dcd13d]", "[2379d207]", "0x20")
+ self.bid128_to_binary32("4", "[2fde06ad57366156c5c3b8d286dcd13d]", "[2379d207]", "0x20")
+ self.bid128_to_binary32("0", "[2fdfb64530a6b800f2608c150a805807]", "[26801b46]", "0x20")
+ self.bid128_to_binary32("1", "[2fdfb64530a6b800f2608c150a805807]", "[26801b46]", "0x20")
+ self.bid128_to_binary32("2", "[2fdfb64530a6b800f2608c150a805807]", "[26801b47]", "0x20")
+ self.bid128_to_binary32("3", "[2fdfb64530a6b800f2608c150a805807]", "[26801b46]", "0x20")
+ self.bid128_to_binary32("4", "[2fdfb64530a6b800f2608c150a805807]", "[26801b46]", "0x20")
+ self.bid128_to_binary32("0", "[2fe057f2169c9b79c6b35f33a8295985]", "[27008860]", "0x20")
+ self.bid128_to_binary32("1", "[2fe057f2169c9b79c6b35f33a8295985]", "[27008860]", "0x20")
+ self.bid128_to_binary32("2", "[2fe057f2169c9b79c6b35f33a8295985]", "[27008861]", "0x20")
+ self.bid128_to_binary32("3", "[2fe057f2169c9b79c6b35f33a8295985]", "[27008860]", "0x20")
+ self.bid128_to_binary32("4", "[2fe057f2169c9b79c6b35f33a8295985]", "[27008860]", "0x20")
+ self.bid128_to_binary32("0", "[2fe211e177cdc8f85790bca02e17f36b]", "[2782a9e2]", "0x20")
+ self.bid128_to_binary32("1", "[2fe211e177cdc8f85790bca02e17f36b]", "[2782a9e2]", "0x20")
+ self.bid128_to_binary32("2", "[2fe211e177cdc8f85790bca02e17f36b]", "[2782a9e3]", "0x20")
+ self.bid128_to_binary32("3", "[2fe211e177cdc8f85790bca02e17f36b]", "[2782a9e2]", "0x20")
+ self.bid128_to_binary32("4", "[2fe211e177cdc8f85790bca02e17f36b]", "[2782a9e2]", "0x20")
+ self.bid128_to_binary32("0", "[2fe3dec00ec56e4844661f927e5790c9]", "[29daa78a]", "0x20")
+ self.bid128_to_binary32("1", "[2fe3dec00ec56e4844661f927e5790c9]", "[29daa789]", "0x20")
+ self.bid128_to_binary32("2", "[2fe3dec00ec56e4844661f927e5790c9]", "[29daa78a]", "0x20")
+ self.bid128_to_binary32("3", "[2fe3dec00ec56e4844661f927e5790c9]", "[29daa789]", "0x20")
+ self.bid128_to_binary32("4", "[2fe3dec00ec56e4844661f927e5790c9]", "[29daa78a]", "0x20")
+ self.bid128_to_binary32("0", "[2fe5bbb7bf5e05078cd4ce48c14eddbc]", "[2b7d516c]", "0x20")
+ self.bid128_to_binary32("1", "[2fe5bbb7bf5e05078cd4ce48c14eddbc]", "[2b7d516c]", "0x20")
+ self.bid128_to_binary32("2", "[2fe5bbb7bf5e05078cd4ce48c14eddbc]", "[2b7d516d]", "0x20")
+ self.bid128_to_binary32("3", "[2fe5bbb7bf5e05078cd4ce48c14eddbc]", "[2b7d516c]", "0x20")
+ self.bid128_to_binary32("4", "[2fe5bbb7bf5e05078cd4ce48c14eddbc]", "[2b7d516c]", "0x20")
+ self.bid128_to_binary32("0", "[2fe6593072d6dbdf03725a358ff6d3fb]", "[2bfe971e]", "0x20")
+ self.bid128_to_binary32("1", "[2fe6593072d6dbdf03725a358ff6d3fb]", "[2bfe971e]", "0x20")
+ self.bid128_to_binary32("2", "[2fe6593072d6dbdf03725a358ff6d3fb]", "[2bfe971f]", "0x20")
+ self.bid128_to_binary32("3", "[2fe6593072d6dbdf03725a358ff6d3fb]", "[2bfe971e]", "0x20")
+ self.bid128_to_binary32("4", "[2fe6593072d6dbdf03725a358ff6d3fb]", "[2bfe971e]", "0x20")
+ self.bid128_to_binary32("0", "[2fe811b918890527ca689fe6d0e514cc]", "[2c7cf398]", "0x20")
+ self.bid128_to_binary32("1", "[2fe811b918890527ca689fe6d0e514cc]", "[2c7cf398]", "0x20")
+ self.bid128_to_binary32("2", "[2fe811b918890527ca689fe6d0e514cc]", "[2c7cf399]", "0x20")
+ self.bid128_to_binary32("3", "[2fe811b918890527ca689fe6d0e514cc]", "[2c7cf398]", "0x20")
+ self.bid128_to_binary32("4", "[2fe811b918890527ca689fe6d0e514cc]", "[2c7cf398]", "0x20")
+ self.bid128_to_binary32("0", "[2fe9ecc2701d28f557e5bc9d07a5e53f]", "[2edbc731]", "0x20")
+ self.bid128_to_binary32("1", "[2fe9ecc2701d28f557e5bc9d07a5e53f]", "[2edbc730]", "0x20")
+ self.bid128_to_binary32("2", "[2fe9ecc2701d28f557e5bc9d07a5e53f]", "[2edbc731]", "0x20")
+ self.bid128_to_binary32("3", "[2fe9ecc2701d28f557e5bc9d07a5e53f]", "[2edbc730]", "0x20")
+ self.bid128_to_binary32("4", "[2fe9ecc2701d28f557e5bc9d07a5e53f]", "[2edbc731]", "0x20")
+ self.bid128_to_binary32("0", "[2feae58a2483fda6a3221571c297bb47]", "[2ffff1fa]", "0x20")
+ self.bid128_to_binary32("1", "[2feae58a2483fda6a3221571c297bb47]", "[2ffff1fa]", "0x20")
+ self.bid128_to_binary32("2", "[2feae58a2483fda6a3221571c297bb47]", "[2ffff1fb]", "0x20")
+ self.bid128_to_binary32("3", "[2feae58a2483fda6a3221571c297bb47]", "[2ffff1fa]", "0x20")
+ self.bid128_to_binary32("4", "[2feae58a2483fda6a3221571c297bb47]", "[2ffff1fa]", "0x20")
+ self.bid128_to_binary32("0", "[2fec2de9d9195b13eda47f06999d552b]", "[307ff9e4]", "0x20")
+ self.bid128_to_binary32("1", "[2fec2de9d9195b13eda47f06999d552b]", "[307ff9e4]", "0x20")
+ self.bid128_to_binary32("2", "[2fec2de9d9195b13eda47f06999d552b]", "[307ff9e5]", "0x20")
+ self.bid128_to_binary32("3", "[2fec2de9d9195b13eda47f06999d552b]", "[307ff9e4]", "0x20")
+ self.bid128_to_binary32("4", "[2fec2de9d9195b13eda47f06999d552b]", "[307ff9e4]", "0x20")
+ self.bid128_to_binary32("0", "[2feded072d48a130fc31a960828fa184]", "[322bcb92]", "0x20")
+ self.bid128_to_binary32("1", "[2feded072d48a130fc31a960828fa184]", "[322bcb91]", "0x20")
+ self.bid128_to_binary32("2", "[2feded072d48a130fc31a960828fa184]", "[322bcb92]", "0x20")
+ self.bid128_to_binary32("3", "[2feded072d48a130fc31a960828fa184]", "[322bcb91]", "0x20")
+ self.bid128_to_binary32("4", "[2feded072d48a130fc31a960828fa184]", "[322bcb92]", "0x20")
+ self.bid128_to_binary32("0", "[2fefed097907e8143f6e8859ed16cd18]", "[33d6bf76]", "0x20")
+ self.bid128_to_binary32("1", "[2fefed097907e8143f6e8859ed16cd18]", "[33d6bf76]", "0x20")
+ self.bid128_to_binary32("2", "[2fefed097907e8143f6e8859ed16cd18]", "[33d6bf77]", "0x20")
+ self.bid128_to_binary32("3", "[2fefed097907e8143f6e8859ed16cd18]", "[33d6bf76]", "0x20")
+ self.bid128_to_binary32("4", "[2fefed097907e8143f6e8859ed16cd18]", "[33d6bf76]", "0x20")
+ self.bid128_to_binary32("0", "[2ff0758c91f7745123ffeca1940ffbe2]", "[347fffd0]", "0x20")
+ self.bid128_to_binary32("1", "[2ff0758c91f7745123ffeca1940ffbe2]", "[347fffd0]", "0x20")
+ self.bid128_to_binary32("2", "[2ff0758c91f7745123ffeca1940ffbe2]", "[347fffd1]", "0x20")
+ self.bid128_to_binary32("3", "[2ff0758c91f7745123ffeca1940ffbe2]", "[347fffd0]", "0x20")
+ self.bid128_to_binary32("4", "[2ff0758c91f7745123ffeca1940ffbe2]", "[347fffd0]", "0x20")
+ self.bid128_to_binary32("0", "[2ff2178283c6e920239ef6c1837c5be9]", "[34ffffd2]", "0x20")
+ self.bid128_to_binary32("1", "[2ff2178283c6e920239ef6c1837c5be9]", "[34ffffd2]", "0x20")
+ self.bid128_to_binary32("2", "[2ff2178283c6e920239ef6c1837c5be9]", "[34ffffd3]", "0x20")
+ self.bid128_to_binary32("3", "[2ff2178283c6e920239ef6c1837c5be9]", "[34ffffd2]", "0x20")
+ self.bid128_to_binary32("4", "[2ff2178283c6e920239ef6c1837c5be9]", "[34ffffd2]", "0x20")
+ self.bid128_to_binary32("0", "[2ff3ed09baec4020537841bfb021c147]", "[3727c5ab]", "0x20")
+ self.bid128_to_binary32("1", "[2ff3ed09baec4020537841bfb021c147]", "[3727c5aa]", "0x20")
+ self.bid128_to_binary32("2", "[2ff3ed09baec4020537841bfb021c147]", "[3727c5ab]", "0x20")
+ self.bid128_to_binary32("3", "[2ff3ed09baec4020537841bfb021c147]", "[3727c5aa]", "0x20")
+ self.bid128_to_binary32("4", "[2ff3ed09baec4020537841bfb021c147]", "[3727c5ab]", "0x20")
+ self.bid128_to_binary32("0", "[2ff52ced320af381c133189f94ecebbb]", "[387fffff]", "0x20")
+ self.bid128_to_binary32("1", "[2ff52ced320af381c133189f94ecebbb]", "[387fffff]", "0x20")
+ self.bid128_to_binary32("2", "[2ff52ced320af381c133189f94ecebbb]", "[38800000]", "0x20")
+ self.bid128_to_binary32("3", "[2ff52ced320af381c133189f94ecebbb]", "[387fffff]", "0x20")
+ self.bid128_to_binary32("4", "[2ff52ced320af381c133189f94ecebbb]", "[387fffff]", "0x20")
+ self.bid128_to_binary32("0", "[2ff63c2f70689719f3709e8650fc2f25]", "[38ffffff]", "0x20")
+ self.bid128_to_binary32("1", "[2ff63c2f70689719f3709e8650fc2f25]", "[38ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[2ff63c2f70689719f3709e8650fc2f25]", "[39000000]", "0x20")
+ self.bid128_to_binary32("3", "[2ff63c2f70689719f3709e8650fc2f25]", "[38ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[2ff63c2f70689719f3709e8650fc2f25]", "[38ffffff]", "0x20")
+ self.bid128_to_binary32("0", "[2ff7ed09bc73747bbee89823c4535c5f]", "[3a83126e]", "0x20")
+ self.bid128_to_binary32("1", "[2ff7ed09bc73747bbee89823c4535c5f]", "[3a83126d]", "0x20")
+ self.bid128_to_binary32("2", "[2ff7ed09bc73747bbee89823c4535c5f]", "[3a83126e]", "0x20")
+ self.bid128_to_binary32("3", "[2ff7ed09bc73747bbee89823c4535c5f]", "[3a83126d]", "0x20")
+ self.bid128_to_binary32("4", "[2ff7ed09bc73747bbee89823c4535c5f]", "[3a83126e]", "0x20")
+ self.bid128_to_binary32("0", "[2ff9ed09bdf4a418b67aa64f2aea9a7f]", "[3c23d70a]", "0x20")
+ self.bid128_to_binary32("1", "[2ff9ed09bdf4a418b67aa64f2aea9a7f]", "[3c23d709]", "0x20")
+ self.bid128_to_binary32("2", "[2ff9ed09bdf4a418b67aa64f2aea9a7f]", "[3c23d70a]", "0x20")
+ self.bid128_to_binary32("3", "[2ff9ed09bdf4a418b67aa64f2aea9a7f]", "[3c23d709]", "0x20")
+ self.bid128_to_binary32("4", "[2ff9ed09bdf4a418b67aa64f2aea9a7f]", "[3c23d70a]", "0x20")
+ self.bid128_to_binary32("0", "[2ffa9a130b963a6c115c3c7f3fffffff]", "[3d000000]", "0x20")
+ self.bid128_to_binary32("1", "[2ffa9a130b963a6c115c3c7f3fffffff]", "[3cffffff]", "0x20")
+ self.bid128_to_binary32("2", "[2ffa9a130b963a6c115c3c7f3fffffff]", "[3d000000]", "0x20")
+ self.bid128_to_binary32("3", "[2ffa9a130b963a6c115c3c7f3fffffff]", "[3cffffff]", "0x20")
+ self.bid128_to_binary32("4", "[2ffa9a130b963a6c115c3c7f3fffffff]", "[3d000000]", "0x20")
+ self.bid128_to_binary32("0", "[2ffc1ed09bead87c0378d8e63fffffff]", "[3d800000]", "0x20")
+ self.bid128_to_binary32("1", "[2ffc1ed09bead87c0378d8e63fffffff]", "[3d7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[2ffc1ed09bead87c0378d8e63fffffff]", "[3d800000]", "0x20")
+ self.bid128_to_binary32("3", "[2ffc1ed09bead87c0378d8e63fffffff]", "[3d7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[2ffc1ed09bead87c0378d8e63fffffff]", "[3d800000]", "0x20")
+ self.bid128_to_binary32("0", "[2ffded09bead87c0378d8e63ffffffff]", "[3f800000]", "0x20")
+ self.bid128_to_binary32("1", "[2ffded09bead87c0378d8e63ffffffff]", "[3f7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[2ffded09bead87c0378d8e63ffffffff]", "[3f800000]", "0x20")
+ self.bid128_to_binary32("3", "[2ffded09bead87c0378d8e63ffffffff]", "[3f7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[2ffded09bead87c0378d8e63ffffffff]", "[3f800000]", "0x20")
+ self.bid128_to_binary32("0", "[2fffed09bead87c0378d8e63ffffffff]", "[41200000]", "0x20")
+ self.bid128_to_binary32("1", "[2fffed09bead87c0378d8e63ffffffff]", "[411fffff]", "0x20")
+ self.bid128_to_binary32("2", "[2fffed09bead87c0378d8e63ffffffff]", "[41200000]", "0x20")
+ self.bid128_to_binary32("3", "[2fffed09bead87c0378d8e63ffffffff]", "[411fffff]", "0x20")
+ self.bid128_to_binary32("4", "[2fffed09bead87c0378d8e63ffffffff]", "[41200000]", "0x20")
+ self.bid128_to_binary32("0", "[30009dc5ada82b70b59df01fffffffff]", "[42000000]", "0x20")
+ self.bid128_to_binary32("1", "[30009dc5ada82b70b59df01fffffffff]", "[41ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[30009dc5ada82b70b59df01fffffffff]", "[42000000]", "0x20")
+ self.bid128_to_binary32("3", "[30009dc5ada82b70b59df01fffffffff]", "[41ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[30009dc5ada82b70b59df01fffffffff]", "[42000000]", "0x20")
+ self.bid128_to_binary32("0", "[30021f8def8808b02452c99fffffffff]", "[42800000]", "0x20")
+ self.bid128_to_binary32("1", "[30021f8def8808b02452c99fffffffff]", "[427fffff]", "0x20")
+ self.bid128_to_binary32("2", "[30021f8def8808b02452c99fffffffff]", "[42800000]", "0x20")
+ self.bid128_to_binary32("3", "[30021f8def8808b02452c99fffffffff]", "[427fffff]", "0x20")
+ self.bid128_to_binary32("4", "[30021f8def8808b02452c99fffffffff]", "[42800000]", "0x20")
+ self.bid128_to_binary32("0", "[3003ed09bead87c0378d8e63ffffffff]", "[447a0000]", "0x20")
+ self.bid128_to_binary32("1", "[3003ed09bead87c0378d8e63ffffffff]", "[4479ffff]", "0x20")
+ self.bid128_to_binary32("2", "[3003ed09bead87c0378d8e63ffffffff]", "[447a0000]", "0x20")
+ self.bid128_to_binary32("3", "[3003ed09bead87c0378d8e63ffffffff]", "[4479ffff]", "0x20")
+ self.bid128_to_binary32("4", "[3003ed09bead87c0378d8e63ffffffff]", "[447a0000]", "0x20")
+ self.bid128_to_binary32("0", "[300593e5939a08ce9dbd47ffffffffff]", "[46000000]", "0x20")
+ self.bid128_to_binary32("1", "[300593e5939a08ce9dbd47ffffffffff]", "[45ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[300593e5939a08ce9dbd47ffffffffff]", "[46000000]", "0x20")
+ self.bid128_to_binary32("3", "[300593e5939a08ce9dbd47ffffffffff]", "[45ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[300593e5939a08ce9dbd47ffffffffff]", "[46000000]", "0x20")
+ self.bid128_to_binary32("0", "[300650c783eb9b5c85f2a7ffffffffff]", "[46800000]", "0x20")
+ self.bid128_to_binary32("1", "[300650c783eb9b5c85f2a7ffffffffff]", "[467fffff]", "0x20")
+ self.bid128_to_binary32("2", "[300650c783eb9b5c85f2a7ffffffffff]", "[46800000]", "0x20")
+ self.bid128_to_binary32("3", "[300650c783eb9b5c85f2a7ffffffffff]", "[467fffff]", "0x20")
+ self.bid128_to_binary32("4", "[300650c783eb9b5c85f2a7ffffffffff]", "[46800000]", "0x20")
+ self.bid128_to_binary32("0", "[30081027e72f1f12813087ffffffffff]", "[47000000]", "0x20")
+ self.bid128_to_binary32("1", "[30081027e72f1f12813087ffffffffff]", "[46ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[30081027e72f1f12813087ffffffffff]", "[47000000]", "0x20")
+ self.bid128_to_binary32("3", "[30081027e72f1f12813087ffffffffff]", "[46ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[30081027e72f1f12813087ffffffffff]", "[47000000]", "0x20")
+ self.bid128_to_binary32("0", "[3009ed09bead87c0378d8e63ffffffff]", "[49742400]", "0x20")
+ self.bid128_to_binary32("1", "[3009ed09bead87c0378d8e63ffffffff]", "[497423ff]", "0x20")
+ self.bid128_to_binary32("2", "[3009ed09bead87c0378d8e63ffffffff]", "[49742400]", "0x20")
+ self.bid128_to_binary32("3", "[3009ed09bead87c0378d8e63ffffffff]", "[497423ff]", "0x20")
+ self.bid128_to_binary32("4", "[3009ed09bead87c0378d8e63ffffffff]", "[49742400]", "0x20")
+ self.bid128_to_binary32("0", "[300acecb8f27f4200f39ffffffffffff]", "[4a800000]", "0x20")
+ self.bid128_to_binary32("1", "[300acecb8f27f4200f39ffffffffffff]", "[4a7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[300acecb8f27f4200f39ffffffffffff]", "[4a800000]", "0x20")
+ self.bid128_to_binary32("3", "[300acecb8f27f4200f39ffffffffffff]", "[4a7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[300acecb8f27f4200f39ffffffffffff]", "[4a800000]", "0x20")
+ self.bid128_to_binary32("0", "[300c295be96e64066971ffffffffffff]", "[4b000000]", "0x20")
+ self.bid128_to_binary32("1", "[300c295be96e64066971ffffffffffff]", "[4affffff]", "0x20")
+ self.bid128_to_binary32("2", "[300c295be96e64066971ffffffffffff]", "[4b000000]", "0x20")
+ self.bid128_to_binary32("3", "[300c295be96e64066971ffffffffffff]", "[4affffff]", "0x20")
+ self.bid128_to_binary32("4", "[300c295be96e64066971ffffffffffff]", "[4b000000]", "0x20")
+ self.bid128_to_binary32("0", "[300ded09bead87c0378d8e63ffffffff]", "[4cbebc20]", "0x20")
+ self.bid128_to_binary32("1", "[300ded09bead87c0378d8e63ffffffff]", "[4cbebc1f]", "0x20")
+ self.bid128_to_binary32("2", "[300ded09bead87c0378d8e63ffffffff]", "[4cbebc20]", "0x20")
+ self.bid128_to_binary32("3", "[300ded09bead87c0378d8e63ffffffff]", "[4cbebc1f]", "0x20")
+ self.bid128_to_binary32("4", "[300ded09bead87c0378d8e63ffffffff]", "[4cbebc20]", "0x20")
+ self.bid128_to_binary32("0", "[300fed09bead87c0378d8e63ffffffff]", "[4e6e6b28]", "0x20")
+ self.bid128_to_binary32("1", "[300fed09bead87c0378d8e63ffffffff]", "[4e6e6b27]", "0x20")
+ self.bid128_to_binary32("2", "[300fed09bead87c0378d8e63ffffffff]", "[4e6e6b28]", "0x20")
+ self.bid128_to_binary32("3", "[300fed09bead87c0378d8e63ffffffff]", "[4e6e6b27]", "0x20")
+ self.bid128_to_binary32("4", "[300fed09bead87c0378d8e63ffffffff]", "[4e6e6b28]", "0x20")
+ self.bid128_to_binary32("0", "[301069e10de76676d07fffffffffffff]", "[4f000000]", "0x20")
+ self.bid128_to_binary32("1", "[301069e10de76676d07fffffffffffff]", "[4effffff]", "0x20")
+ self.bid128_to_binary32("2", "[301069e10de76676d07fffffffffffff]", "[4f000000]", "0x20")
+ self.bid128_to_binary32("3", "[301069e10de76676d07fffffffffffff]", "[4effffff]", "0x20")
+ self.bid128_to_binary32("4", "[301069e10de76676d07fffffffffffff]", "[4f000000]", "0x20")
+ self.bid128_to_binary32("0", "[3012152d02c7e14af67fffffffffffff]", "[4f800000]", "0x20")
+ self.bid128_to_binary32("1", "[3012152d02c7e14af67fffffffffffff]", "[4f7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[3012152d02c7e14af67fffffffffffff]", "[4f800000]", "0x20")
+ self.bid128_to_binary32("3", "[3012152d02c7e14af67fffffffffffff]", "[4f7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[3012152d02c7e14af67fffffffffffff]", "[4f800000]", "0x20")
+ self.bid128_to_binary32("0", "[3013ed09be041fa9f88336afffffffff]", "[51ba43b7]", "0x20")
+ self.bid128_to_binary32("1", "[3013ed09be041fa9f88336afffffffff]", "[51ba43b6]", "0x20")
+ self.bid128_to_binary32("2", "[3013ed09be041fa9f88336afffffffff]", "[51ba43b7]", "0x20")
+ self.bid128_to_binary32("3", "[3013ed09be041fa9f88336afffffffff]", "[51ba43b6]", "0x20")
+ self.bid128_to_binary32("4", "[3013ed09be041fa9f88336afffffffff]", "[51ba43b7]", "0x20")
+ self.bid128_to_binary32("0", "[30150f0cf064dd591fffffffffffffff]", "[53000000]", "0x20")
+ self.bid128_to_binary32("1", "[30150f0cf064dd591fffffffffffffff]", "[52ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[30150f0cf064dd591fffffffffffffff]", "[53000000]", "0x20")
+ self.bid128_to_binary32("3", "[30150f0cf064dd591fffffffffffffff]", "[52ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[30150f0cf064dd591fffffffffffffff]", "[53000000]", "0x20")
+ self.bid128_to_binary32("0", "[30163635c9adc5de9fffffffffffffff]", "[53800000]", "0x20")
+ self.bid128_to_binary32("1", "[30163635c9adc5de9fffffffffffffff]", "[537fffff]", "0x20")
+ self.bid128_to_binary32("2", "[30163635c9adc5de9fffffffffffffff]", "[53800000]", "0x20")
+ self.bid128_to_binary32("3", "[30163635c9adc5de9fffffffffffffff]", "[537fffff]", "0x20")
+ self.bid128_to_binary32("4", "[30163635c9adc5de9fffffffffffffff]", "[53800000]", "0x20")
+ self.bid128_to_binary32("0", "[3017ed09babbddf3f3083bffffffffff]", "[551184e6]", "0x20")
+ self.bid128_to_binary32("1", "[3017ed09babbddf3f3083bffffffffff]", "[551184e5]", "0x20")
+ self.bid128_to_binary32("2", "[3017ed09babbddf3f3083bffffffffff]", "[551184e6]", "0x20")
+ self.bid128_to_binary32("3", "[3017ed09babbddf3f3083bffffffffff]", "[551184e5]", "0x20")
+ self.bid128_to_binary32("4", "[3017ed09babbddf3f3083bffffffffff]", "[551184e6]", "0x20")
+ self.bid128_to_binary32("0", "[3019ed09bd71c1a309b9c3ffffffffff]", "[56b5e620]", "0x20")
+ self.bid128_to_binary32("1", "[3019ed09bd71c1a309b9c3ffffffffff]", "[56b5e620]", "0x20")
+ self.bid128_to_binary32("2", "[3019ed09bd71c1a309b9c3ffffffffff]", "[56b5e621]", "0x20")
+ self.bid128_to_binary32("3", "[3019ed09bd71c1a309b9c3ffffffffff]", "[56b5e620]", "0x20")
+ self.bid128_to_binary32("4", "[3019ed09bd71c1a309b9c3ffffffffff]", "[56b5e620]", "0x20")
+ self.bid128_to_binary32("0", "[301a8ac7230489e7ffffffffffffffff]", "[57800000]", "0x20")
+ self.bid128_to_binary32("1", "[301a8ac7230489e7ffffffffffffffff]", "[577fffff]", "0x20")
+ self.bid128_to_binary32("2", "[301a8ac7230489e7ffffffffffffffff]", "[57800000]", "0x20")
+ self.bid128_to_binary32("3", "[301a8ac7230489e7ffffffffffffffff]", "[577fffff]", "0x20")
+ self.bid128_to_binary32("4", "[301a8ac7230489e7ffffffffffffffff]", "[57800000]", "0x20")
+ self.bid128_to_binary32("0", "[301c1bc16d674ec7ffffffffffffffff]", "[58000000]", "0x20")
+ self.bid128_to_binary32("1", "[301c1bc16d674ec7ffffffffffffffff]", "[57ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[301c1bc16d674ec7ffffffffffffffff]", "[58000000]", "0x20")
+ self.bid128_to_binary32("3", "[301c1bc16d674ec7ffffffffffffffff]", "[57ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[301c1bc16d674ec7ffffffffffffffff]", "[58000000]", "0x20")
+ self.bid128_to_binary32("0", "[301ded09bc16cfcb7e60ffffffffffff]", "[5a0e1bc9]", "0x20")
+ self.bid128_to_binary32("1", "[301ded09bc16cfcb7e60ffffffffffff]", "[5a0e1bc8]", "0x20")
+ self.bid128_to_binary32("2", "[301ded09bc16cfcb7e60ffffffffffff]", "[5a0e1bc9]", "0x20")
+ self.bid128_to_binary32("3", "[301ded09bc16cfcb7e60ffffffffffff]", "[5a0e1bc8]", "0x20")
+ self.bid128_to_binary32("4", "[301ded09bc16cfcb7e60ffffffffffff]", "[5a0e1bc9]", "0x20")
+ self.bid128_to_binary32("0", "[301f6345785d89ffffffffffffffffff]", "[5b800000]", "0x20")
+ self.bid128_to_binary32("1", "[301f6345785d89ffffffffffffffffff]", "[5b7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[301f6345785d89ffffffffffffffffff]", "[5b800000]", "0x20")
+ self.bid128_to_binary32("3", "[301f6345785d89ffffffffffffffffff]", "[5b7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[301f6345785d89ffffffffffffffffff]", "[5b800000]", "0x20")
+ self.bid128_to_binary32("0", "[3020470de4df81ffffffffffffffffff]", "[5c000000]", "0x20")
+ self.bid128_to_binary32("1", "[3020470de4df81ffffffffffffffffff]", "[5bffffff]", "0x20")
+ self.bid128_to_binary32("2", "[3020470de4df81ffffffffffffffffff]", "[5c000000]", "0x20")
+ self.bid128_to_binary32("3", "[3020470de4df81ffffffffffffffffff]", "[5bffffff]", "0x20")
+ self.bid128_to_binary32("4", "[3020470de4df81ffffffffffffffffff]", "[5c000000]", "0x20")
+ self.bid128_to_binary32("0", "[30220e35fa9319ffffffffffffffffff]", "[5c800000]", "0x20")
+ self.bid128_to_binary32("1", "[30220e35fa9319ffffffffffffffffff]", "[5c7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[30220e35fa9319ffffffffffffffffff]", "[5c800000]", "0x20")
+ self.bid128_to_binary32("3", "[30220e35fa9319ffffffffffffffffff]", "[5c7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[30220e35fa9319ffffffffffffffffff]", "[5c800000]", "0x20")
+ self.bid128_to_binary32("0", "[3023ed09be9d67d4a37fffffffffffff]", "[5f0ac723]", "0x20")
+ self.bid128_to_binary32("1", "[3023ed09be9d67d4a37fffffffffffff]", "[5f0ac722]", "0x20")
+ self.bid128_to_binary32("2", "[3023ed09be9d67d4a37fffffffffffff]", "[5f0ac723]", "0x20")
+ self.bid128_to_binary32("3", "[3023ed09be9d67d4a37fffffffffffff]", "[5f0ac722]", "0x20")
+ self.bid128_to_binary32("4", "[3023ed09be9d67d4a37fffffffffffff]", "[5f0ac723]", "0x20")
+ self.bid128_to_binary32("0", "[3024b5e620f47fffffffffffffffffff]", "[60000000]", "0x20")
+ self.bid128_to_binary32("1", "[3024b5e620f47fffffffffffffffffff]", "[5fffffff]", "0x20")
+ self.bid128_to_binary32("2", "[3024b5e620f47fffffffffffffffffff]", "[60000000]", "0x20")
+ self.bid128_to_binary32("3", "[3024b5e620f47fffffffffffffffffff]", "[5fffffff]", "0x20")
+ self.bid128_to_binary32("4", "[3024b5e620f47fffffffffffffffffff]", "[60000000]", "0x20")
+ self.bid128_to_binary32("0", "[3026246139ca7fffffffffffffffffff]", "[60800000]", "0x20")
+ self.bid128_to_binary32("1", "[3026246139ca7fffffffffffffffffff]", "[607fffff]", "0x20")
+ self.bid128_to_binary32("2", "[3026246139ca7fffffffffffffffffff]", "[60800000]", "0x20")
+ self.bid128_to_binary32("3", "[3026246139ca7fffffffffffffffffff]", "[607fffff]", "0x20")
+ self.bid128_to_binary32("4", "[3026246139ca7fffffffffffffffffff]", "[60800000]", "0x20")
+ self.bid128_to_binary32("0", "[3027ed09bd0d3a58efffffffffffffff]", "[6258d726]", "0x20")
+ self.bid128_to_binary32("1", "[3027ed09bd0d3a58efffffffffffffff]", "[6258d725]", "0x20")
+ self.bid128_to_binary32("2", "[3027ed09bd0d3a58efffffffffffffff]", "[6258d726]", "0x20")
+ self.bid128_to_binary32("3", "[3027ed09bd0d3a58efffffffffffffff]", "[6258d725]", "0x20")
+ self.bid128_to_binary32("4", "[3027ed09bd0d3a58efffffffffffffff]", "[6258d726]", "0x20")
+ self.bid128_to_binary32("0", "[3029d1a94a1fffffffffffffffffffff]", "[64000000]", "0x20")
+ self.bid128_to_binary32("1", "[3029d1a94a1fffffffffffffffffffff]", "[63ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[3029d1a94a1fffffffffffffffffffff]", "[64000000]", "0x20")
+ self.bid128_to_binary32("3", "[3029d1a94a1fffffffffffffffffffff]", "[63ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[3029d1a94a1fffffffffffffffffffff]", "[64000000]", "0x20")
+ self.bid128_to_binary32("0", "[302a5d21db9fffffffffffffffffffff]", "[64800000]", "0x20")
+ self.bid128_to_binary32("1", "[302a5d21db9fffffffffffffffffffff]", "[647fffff]", "0x20")
+ self.bid128_to_binary32("2", "[302a5d21db9fffffffffffffffffffff]", "[64800000]", "0x20")
+ self.bid128_to_binary32("3", "[302a5d21db9fffffffffffffffffffff]", "[647fffff]", "0x20")
+ self.bid128_to_binary32("4", "[302a5d21db9fffffffffffffffffffff]", "[64800000]", "0x20")
+ self.bid128_to_binary32("0", "[302c12a05f1fffffffffffffffffffff]", "[65000000]", "0x20")
+ self.bid128_to_binary32("1", "[302c12a05f1fffffffffffffffffffff]", "[64ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[302c12a05f1fffffffffffffffffffff]", "[65000000]", "0x20")
+ self.bid128_to_binary32("3", "[302c12a05f1fffffffffffffffffffff]", "[64ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[302c12a05f1fffffffffffffffffffff]", "[65000000]", "0x20")
+ self.bid128_to_binary32("0", "[302ded09bccc090bffffffffffffffff]", "[6753c21b]", "0x20")
+ self.bid128_to_binary32("1", "[302ded09bccc090bffffffffffffffff]", "[6753c21a]", "0x20")
+ self.bid128_to_binary32("2", "[302ded09bccc090bffffffffffffffff]", "[6753c21b]", "0x20")
+ self.bid128_to_binary32("3", "[302ded09bccc090bffffffffffffffff]", "[6753c21a]", "0x20")
+ self.bid128_to_binary32("4", "[302ded09bccc090bffffffffffffffff]", "[6753c21b]", "0x20")
+ self.bid128_to_binary32("0", "[302eee6b27ffffffffffffffffffffff]", "[68800000]", "0x20")
+ self.bid128_to_binary32("1", "[302eee6b27ffffffffffffffffffffff]", "[687fffff]", "0x20")
+ self.bid128_to_binary32("2", "[302eee6b27ffffffffffffffffffffff]", "[68800000]", "0x20")
+ self.bid128_to_binary32("3", "[302eee6b27ffffffffffffffffffffff]", "[687fffff]", "0x20")
+ self.bid128_to_binary32("4", "[302eee6b27ffffffffffffffffffffff]", "[68800000]", "0x20")
+ self.bid128_to_binary32("0", "[303000000000000000000000004d7c6d]", "[3d500000]", "0x00")
+ self.bid128_to_binary32("1", "[303000000000000000000000004d7c6d]", "[3d500000]", "0x00")
+ self.bid128_to_binary32("2", "[303000000000000000000000004d7c6d]", "[3d500000]", "0x00")
+ self.bid128_to_binary32("3", "[303000000000000000000000004d7c6d]", "[3d500000]", "0x00")
+ self.bid128_to_binary32("4", "[303000000000000000000000004d7c6d]", "[3d500000]", "0x00")
+ self.bid128_to_binary32("0", "[30302faf07ffffffffffffffffffffff]", "[69000000]", "0x20")
+ self.bid128_to_binary32("1", "[30302faf07ffffffffffffffffffffff]", "[68ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[30302faf07ffffffffffffffffffffff]", "[69000000]", "0x20")
+ self.bid128_to_binary32("3", "[30302faf07ffffffffffffffffffffff]", "[68ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[30302faf07ffffffffffffffffffffff]", "[69000000]", "0x20")
+ self.bid128_to_binary32("0", "[3031ed09b98991ffffffffffffffffff]", "[6aa56fa4]", "0x20")
+ self.bid128_to_binary32("1", "[3031ed09b98991ffffffffffffffffff]", "[6aa56fa3]", "0x20")
+ self.bid128_to_binary32("2", "[3031ed09b98991ffffffffffffffffff]", "[6aa56fa4]", "0x20")
+ self.bid128_to_binary32("3", "[3031ed09b98991ffffffffffffffffff]", "[6aa56fa3]", "0x20")
+ self.bid128_to_binary32("4", "[3031ed09b98991ffffffffffffffffff]", "[6aa56fa4]", "0x20")
+ self.bid128_to_binary32("0", "[3033ed09be4e45ffffffffffffffffff]", "[6c4ecb8f]", "0x20")
+ self.bid128_to_binary32("1", "[3033ed09be4e45ffffffffffffffffff]", "[6c4ecb8e]", "0x20")
+ self.bid128_to_binary32("2", "[3033ed09be4e45ffffffffffffffffff]", "[6c4ecb8f]", "0x20")
+ self.bid128_to_binary32("3", "[3033ed09be4e45ffffffffffffffffff]", "[6c4ecb8e]", "0x20")
+ self.bid128_to_binary32("4", "[3033ed09be4e45ffffffffffffffffff]", "[6c4ecb8f]", "0x20")
+ self.bid128_to_binary32("0", "[30347a11ffffffffffffffffffffffff]", "[6d000000]", "0x20")
+ self.bid128_to_binary32("1", "[30347a11ffffffffffffffffffffffff]", "[6cffffff]", "0x20")
+ self.bid128_to_binary32("2", "[30347a11ffffffffffffffffffffffff]", "[6d000000]", "0x20")
+ self.bid128_to_binary32("3", "[30347a11ffffffffffffffffffffffff]", "[6cffffff]", "0x20")
+ self.bid128_to_binary32("4", "[30347a11ffffffffffffffffffffffff]", "[6d000000]", "0x20")
+ self.bid128_to_binary32("0", "[30361869ffffffffffffffffffffffff]", "[6d800000]", "0x20")
+ self.bid128_to_binary32("1", "[30361869ffffffffffffffffffffffff]", "[6d7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[30361869ffffffffffffffffffffffff]", "[6d800000]", "0x20")
+ self.bid128_to_binary32("3", "[30361869ffffffffffffffffffffffff]", "[6d7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[30361869ffffffffffffffffffffffff]", "[6d800000]", "0x20")
+ self.bid128_to_binary32("0", "[3037ed09bc1cbfffffffffffffffffff]", "[6fa18f07]", "0x20")
+ self.bid128_to_binary32("1", "[3037ed09bc1cbfffffffffffffffffff]", "[6fa18f06]", "0x20")
+ self.bid128_to_binary32("2", "[3037ed09bc1cbfffffffffffffffffff]", "[6fa18f07]", "0x20")
+ self.bid128_to_binary32("3", "[3037ed09bc1cbfffffffffffffffffff]", "[6fa18f06]", "0x20")
+ self.bid128_to_binary32("4", "[3037ed09bc1cbfffffffffffffffffff]", "[6fa18f07]", "0x20")
+ self.bid128_to_binary32("0", "[3039387fffffffffffffffffffffffff]", "[71000000]", "0x20")
+ self.bid128_to_binary32("1", "[3039387fffffffffffffffffffffffff]", "[70ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[3039387fffffffffffffffffffffffff]", "[71000000]", "0x20")
+ self.bid128_to_binary32("3", "[3039387fffffffffffffffffffffffff]", "[70ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[3039387fffffffffffffffffffffffff]", "[71000000]", "0x20")
+ self.bid128_to_binary32("0", "[303a3e7fffffffffffffffffffffffff]", "[71800000]", "0x20")
+ self.bid128_to_binary32("1", "[303a3e7fffffffffffffffffffffffff]", "[717fffff]", "0x20")
+ self.bid128_to_binary32("2", "[303a3e7fffffffffffffffffffffffff]", "[71800000]", "0x20")
+ self.bid128_to_binary32("3", "[303a3e7fffffffffffffffffffffffff]", "[717fffff]", "0x20")
+ self.bid128_to_binary32("4", "[303a3e7fffffffffffffffffffffffff]", "[71800000]", "0x20")
+ self.bid128_to_binary32("0", "[303c0c7fffffffffffffffffffffffff]", "[72000000]", "0x20")
+ self.bid128_to_binary32("1", "[303c0c7fffffffffffffffffffffffff]", "[71ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[303c0c7fffffffffffffffffffffffff]", "[72000000]", "0x20")
+ self.bid128_to_binary32("3", "[303c0c7fffffffffffffffffffffffff]", "[71ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[303c0c7fffffffffffffffffffffffff]", "[72000000]", "0x20")
+ self.bid128_to_binary32("0", "[303ded09be2fffffffffffffffffffff]", "[749dc5ad]", "0x20")
+ self.bid128_to_binary32("1", "[303ded09be2fffffffffffffffffffff]", "[749dc5ad]", "0x20")
+ self.bid128_to_binary32("2", "[303ded09be2fffffffffffffffffffff]", "[749dc5ae]", "0x20")
+ self.bid128_to_binary32("3", "[303ded09be2fffffffffffffffffffff]", "[749dc5ad]", "0x20")
+ self.bid128_to_binary32("4", "[303ded09be2fffffffffffffffffffff]", "[749dc5ad]", "0x20")
+ self.bid128_to_binary32("0", "[303e000000000000000000000000000f]", "[3fc00000]", "0x00")
+ self.bid128_to_binary32("1", "[303e000000000000000000000000000f]", "[3fc00000]", "0x00")
+ self.bid128_to_binary32("2", "[303e000000000000000000000000000f]", "[3fc00000]", "0x00")
+ self.bid128_to_binary32("3", "[303e000000000000000000000000000f]", "[3fc00000]", "0x00")
+ self.bid128_to_binary32("4", "[303e000000000000000000000000000f]", "[3fc00000]", "0x00")
+ self.bid128_to_binary32("0", "[303e9fffffffffffffffffffffffffff]", "[75800000]", "0x20")
+ self.bid128_to_binary32("1", "[303e9fffffffffffffffffffffffffff]", "[757fffff]", "0x20")
+ self.bid128_to_binary32("2", "[303e9fffffffffffffffffffffffffff]", "[75800000]", "0x20")
+ self.bid128_to_binary32("3", "[303e9fffffffffffffffffffffffffff]", "[757fffff]", "0x20")
+ self.bid128_to_binary32("4", "[303e9fffffffffffffffffffffffffff]", "[75800000]", "0x20")
+ self.bid128_to_binary32("0", "[30400000000000000000000000000000]", "[00000000]", "0x00")
+ self.bid128_to_binary32("1", "[30400000000000000000000000000000]", "[00000000]", "0x00")
+ self.bid128_to_binary32("2", "[30400000000000000000000000000000]", "[00000000]", "0x00")
+ self.bid128_to_binary32("3", "[30400000000000000000000000000000]", "[00000000]", "0x00")
+ self.bid128_to_binary32("4", "[30400000000000000000000000000000]", "[00000000]", "0x00")
+ self.bid128_to_binary32("0", "[30400000000000000000000000000001]", "[3f800000]", "0x00")
+ self.bid128_to_binary32("1", "[30400000000000000000000000000001]", "[3f800000]", "0x00")
+ self.bid128_to_binary32("2", "[30400000000000000000000000000001]", "[3f800000]", "0x00")
+ self.bid128_to_binary32("3", "[30400000000000000000000000000001]", "[3f800000]", "0x00")
+ self.bid128_to_binary32("4", "[30400000000000000000000000000001]", "[3f800000]", "0x00")
+ self.bid128_to_binary32("0", "[30400000000000000000000000000040]", "[42800000]", "0x00")
+ self.bid128_to_binary32("1", "[30400000000000000000000000000040]", "[42800000]", "0x00")
+ self.bid128_to_binary32("2", "[30400000000000000000000000000040]", "[42800000]", "0x00")
+ self.bid128_to_binary32("3", "[30400000000000000000000000000040]", "[42800000]", "0x00")
+ self.bid128_to_binary32("4", "[30400000000000000000000000000040]", "[42800000]", "0x00")
+ self.bid128_to_binary32("0", "[304000000000000000000000000003e7]", "[4479c000]", "0x00")
+ self.bid128_to_binary32("1", "[304000000000000000000000000003e7]", "[4479c000]", "0x00")
+ self.bid128_to_binary32("2", "[304000000000000000000000000003e7]", "[4479c000]", "0x00")
+ self.bid128_to_binary32("3", "[304000000000000000000000000003e7]", "[4479c000]", "0x00")
+ self.bid128_to_binary32("4", "[304000000000000000000000000003e7]", "[4479c000]", "0x00")
+ self.bid128_to_binary32("0", "[304000000000000000000000000003e8]", "[447a0000]", "0x00")
+ self.bid128_to_binary32("1", "[304000000000000000000000000003e8]", "[447a0000]", "0x00")
+ self.bid128_to_binary32("2", "[304000000000000000000000000003e8]", "[447a0000]", "0x00")
+ self.bid128_to_binary32("3", "[304000000000000000000000000003e8]", "[447a0000]", "0x00")
+ self.bid128_to_binary32("4", "[304000000000000000000000000003e8]", "[447a0000]", "0x00")
+ self.bid128_to_binary32("0", "[30401fffffffffffffffffffffffffff]", "[76000000]", "0x20")
+ self.bid128_to_binary32("1", "[30401fffffffffffffffffffffffffff]", "[75ffffff]", "0x20")
+ self.bid128_to_binary32("2", "[30401fffffffffffffffffffffffffff]", "[76000000]", "0x20")
+ self.bid128_to_binary32("3", "[30401fffffffffffffffffffffffffff]", "[75ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[30401fffffffffffffffffffffffffff]", "[76000000]", "0x20")
+ self.bid128_to_binary32("0", "[3041ed09bbffffffffffffffffffffff]", "[77f684de]", "0x20")
+ self.bid128_to_binary32("1", "[3041ed09bbffffffffffffffffffffff]", "[77f684dd]", "0x20")
+ self.bid128_to_binary32("2", "[3041ed09bbffffffffffffffffffffff]", "[77f684de]", "0x20")
+ self.bid128_to_binary32("3", "[3041ed09bbffffffffffffffffffffff]", "[77f684dd]", "0x20")
+ self.bid128_to_binary32("4", "[3041ed09bbffffffffffffffffffffff]", "[77f684de]", "0x20")
+ self.bid128_to_binary32("0", "[30439999973333333333333333333333]", "[797ffffe]", "0x20")
+ self.bid128_to_binary32("1", "[30439999973333333333333333333333]", "[797ffffe]", "0x20")
+ self.bid128_to_binary32("2", "[30439999973333333333333333333333]", "[797fffff]", "0x20")
+ self.bid128_to_binary32("3", "[30439999973333333333333333333333]", "[797ffffe]", "0x20")
+ self.bid128_to_binary32("4", "[30439999973333333333333333333333]", "[797ffffe]", "0x20")
+ self.bid128_to_binary32("0", "[304451eb83d70a3d70a3d70a3d70a3d7]", "[79fffffc]", "0x20")
+ self.bid128_to_binary32("1", "[304451eb83d70a3d70a3d70a3d70a3d7]", "[79fffffb]", "0x20")
+ self.bid128_to_binary32("2", "[304451eb83d70a3d70a3d70a3d70a3d7]", "[79fffffc]", "0x20")
+ self.bid128_to_binary32("3", "[304451eb83d70a3d70a3d70a3d70a3d7]", "[79fffffb]", "0x20")
+ self.bid128_to_binary32("4", "[304451eb83d70a3d70a3d70a3d70a3d7]", "[79fffffc]", "0x20")
+ self.bid128_to_binary32("0", "[3044a3d6ffae147ae147ae147ae147ae]", "[7a7fffef]", "0x20")
+ self.bid128_to_binary32("1", "[3044a3d6ffae147ae147ae147ae147ae]", "[7a7fffef]", "0x20")
+ self.bid128_to_binary32("2", "[3044a3d6ffae147ae147ae147ae147ae]", "[7a7ffff0]", "0x20")
+ self.bid128_to_binary32("3", "[3044a3d6ffae147ae147ae147ae147ae]", "[7a7fffef]", "0x20")
+ self.bid128_to_binary32("4", "[3044a3d6ffae147ae147ae147ae147ae]", "[7a7fffef]", "0x20")
+ self.bid128_to_binary32("0", "[3047ed0920c49ba5e353f7ced916872b]", "[7cf0bd75]", "0x20")
+ self.bid128_to_binary32("1", "[3047ed0920c49ba5e353f7ced916872b]", "[7cf0bd74]", "0x20")
+ self.bid128_to_binary32("2", "[3047ed0920c49ba5e353f7ced916872b]", "[7cf0bd75]", "0x20")
+ self.bid128_to_binary32("3", "[3047ed0920c49ba5e353f7ced916872b]", "[7cf0bd74]", "0x20")
+ self.bid128_to_binary32("4", "[3047ed0920c49ba5e353f7ced916872b]", "[7cf0bd75]", "0x20")
+ self.bid128_to_binary32("0", "[3048d1b66cf41f212d77318fc504816f]", "[7dffff30]", "0x20")
+ self.bid128_to_binary32("1", "[3048d1b66cf41f212d77318fc504816f]", "[7dffff2f]", "0x20")
+ self.bid128_to_binary32("2", "[3048d1b66cf41f212d77318fc504816f]", "[7dffff30]", "0x20")
+ self.bid128_to_binary32("3", "[3048d1b66cf41f212d77318fc504816f]", "[7dffff2f]", "0x20")
+ self.bid128_to_binary32("4", "[3048d1b66cf41f212d77318fc504816f]", "[7dffff30]", "0x20")
+ self.bid128_to_binary32("0", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("1", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "[7f7ffffe]", "0x20")
+ self.bid128_to_binary32("2", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "[7f7ffffe]", "0x20")
+ self.bid128_to_binary32("4", "[304aa7c5ab9f559b3d07c84b5dcc63f1]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("0", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("1", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("3", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[304aa7c5ab9f559b3d07c84b5dcc63f2]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("0", "[304aa7c5ac471b4784230fcf80dc3372]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("1", "[304aa7c5ac471b4784230fcf80dc3372]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[304aa7c5ac471b4784230fcf80dc3372]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("3", "[304aa7c5ac471b4784230fcf80dc3372]", "[7f7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[304aa7c5ac471b4784230fcf80dc3372]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("0", "[304aa7c5ac471b4784230fcf80dc3373]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("1", "[304aa7c5ac471b4784230fcf80dc3373]", "[7f7fffff]", "0x28")
+ self.bid128_to_binary32("2", "[304aa7c5ac471b4784230fcf80dc3373]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("3", "[304aa7c5ac471b4784230fcf80dc3373]", "[7f7fffff]", "0x28")
+ self.bid128_to_binary32("4", "[304aa7c5ac471b4784230fcf80dc3373]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("0", "[5fffed09bead87c0378d8e63ffffffff]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("1", "[5fffed09bead87c0378d8e63ffffffff]", "[7f7fffff]", "0x28")
+ self.bid128_to_binary32("2", "[5fffed09bead87c0378d8e63ffffffff]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("3", "[5fffed09bead87c0378d8e63ffffffff]", "[7f7fffff]", "0x28")
+ self.bid128_to_binary32("4", "[5fffed09bead87c0378d8e63ffffffff]", "[7f800000]", "0x28")
+ self.bid128_to_binary32("0", "[78000000000000000000000000000000]", "[7f800000]", "0x00")
+ self.bid128_to_binary32("1", "[78000000000000000000000000000000]", "[7f800000]", "0x00")
+ self.bid128_to_binary32("2", "[78000000000000000000000000000000]", "[7f800000]", "0x00")
+ self.bid128_to_binary32("3", "[78000000000000000000000000000000]", "[7f800000]", "0x00")
+ self.bid128_to_binary32("4", "[78000000000000000000000000000000]", "[7f800000]", "0x00")
+ self.bid128_to_binary32("0", "[7c003080000000000000000000000000]", "[7ff08000]", "0x00")
+ self.bid128_to_binary32("0", "[7e003080000000000000000000000000]", "[7ff08000]", "0x01")
+ self.bid128_to_binary32("0", "[80000000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("1", "[80000000000000000000000000000001]", "[80000001]", "0x30")
+ self.bid128_to_binary32("2", "[80000000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("3", "[80000000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("4", "[80000000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("0", "[8000314dc6448d9338c15b09ffffffff]", "[80000000]", "0x30")
+ self.bid128_to_binary32("1", "[8000314dc6448d9338c15b09ffffffff]", "[80000001]", "0x30")
+ self.bid128_to_binary32("2", "[8000314dc6448d9338c15b09ffffffff]", "[80000000]", "0x30")
+ self.bid128_to_binary32("3", "[8000314dc6448d9338c15b09ffffffff]", "[80000000]", "0x30")
+ self.bid128_to_binary32("4", "[8000314dc6448d9338c15b09ffffffff]", "[80000000]", "0x30")
+ self.bid128_to_binary32("0", "[80420000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("1", "[80420000000000000000000000000001]", "[80000001]", "0x30")
+ self.bid128_to_binary32("2", "[80420000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("3", "[80420000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("4", "[80420000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("0", "[80440000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("1", "[80440000000000000000000000000001]", "[80000001]", "0x30")
+ self.bid128_to_binary32("2", "[80440000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("3", "[80440000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("4", "[80440000000000000000000000000001]", "[80000000]", "0x30")
+ self.bid128_to_binary32("0", "[afa3119395a1e4b0f4fbe1685f856220]", "[80000000]", "0x30")
+ self.bid128_to_binary32("1", "[afa3119395a1e4b0f4fbe1685f856220]", "[80000001]", "0x30")
+ self.bid128_to_binary32("2", "[afa3119395a1e4b0f4fbe1685f856220]", "[80000000]", "0x30")
+ self.bid128_to_binary32("3", "[afa3119395a1e4b0f4fbe1685f856220]", "[80000000]", "0x30")
+ self.bid128_to_binary32("4", "[afa3119395a1e4b0f4fbe1685f856220]", "[80000000]", "0x30")
+ self.bid128_to_binary32("0", "[afa44516df8a16fe63d5b71ab499363c]", "[80000001]", "0x30")
+ self.bid128_to_binary32("1", "[afa44516df8a16fe63d5b71ab499363c]", "[80000001]", "0x30")
+ self.bid128_to_binary32("2", "[afa44516df8a16fe63d5b71ab499363c]", "[80000000]", "0x30")
+ self.bid128_to_binary32("3", "[afa44516df8a16fe63d5b71ab499363c]", "[80000000]", "0x30")
+ self.bid128_to_binary32("4", "[afa44516df8a16fe63d5b71ab499363c]", "[80000001]", "0x30")
+ self.bid128_to_binary32("0", "[afa44516df8a16fe63d5b71ab499363d]", "[80000001]", "0x30")
+ self.bid128_to_binary32("1", "[afa44516df8a16fe63d5b71ab499363d]", "[80000002]", "0x30")
+ self.bid128_to_binary32("2", "[afa44516df8a16fe63d5b71ab499363d]", "[80000001]", "0x30")
+ self.bid128_to_binary32("3", "[afa44516df8a16fe63d5b71ab499363d]", "[80000001]", "0x30")
+ self.bid128_to_binary32("4", "[afa44516df8a16fe63d5b71ab499363d]", "[80000001]", "0x30")
+ self.bid128_to_binary32("0", "[afa5c6fb0f8b73c9353aabc6fd34fff1]", "[80000007]", "0x30")
+ self.bid128_to_binary32("1", "[afa5c6fb0f8b73c9353aabc6fd34fff1]", "[80000007]", "0x30")
+ self.bid128_to_binary32("2", "[afa5c6fb0f8b73c9353aabc6fd34fff1]", "[80000006]", "0x30")
+ self.bid128_to_binary32("3", "[afa5c6fb0f8b73c9353aabc6fd34fff1]", "[80000006]", "0x30")
+ self.bid128_to_binary32("4", "[afa5c6fb0f8b73c9353aabc6fd34fff1]", "[80000007]", "0x30")
+ self.bid128_to_binary32("0", "[afa7223f2975b1c066cadd642f7f62e8]", "[8000002a]", "0x30")
+ self.bid128_to_binary32("1", "[afa7223f2975b1c066cadd642f7f62e8]", "[8000002b]", "0x30")
+ self.bid128_to_binary32("2", "[afa7223f2975b1c066cadd642f7f62e8]", "[8000002a]", "0x30")
+ self.bid128_to_binary32("3", "[afa7223f2975b1c066cadd642f7f62e8]", "[8000002a]", "0x30")
+ self.bid128_to_binary32("4", "[afa7223f2975b1c066cadd642f7f62e8]", "[8000002a]", "0x30")
+ self.bid128_to_binary32("0", "[afa8564aa0aa1d6662464f9ff5ddeeb5]", "[8000007d]", "0x30")
+ self.bid128_to_binary32("1", "[afa8564aa0aa1d6662464f9ff5ddeeb5]", "[8000007d]", "0x30")
+ self.bid128_to_binary32("2", "[afa8564aa0aa1d6662464f9ff5ddeeb5]", "[8000007c]", "0x30")
+ self.bid128_to_binary32("3", "[afa8564aa0aa1d6662464f9ff5ddeeb5]", "[8000007c]", "0x30")
+ self.bid128_to_binary32("4", "[afa8564aa0aa1d6662464f9ff5ddeeb5]", "[8000007d]", "0x30")
+ self.bid128_to_binary32("0", "[afaa07d8208ac3a9d79dbfe048c8c4a2]", "[80000072]", "0x30")
+ self.bid128_to_binary32("1", "[afaa07d8208ac3a9d79dbfe048c8c4a2]", "[80000072]", "0x30")
+ self.bid128_to_binary32("2", "[afaa07d8208ac3a9d79dbfe048c8c4a2]", "[80000071]", "0x30")
+ self.bid128_to_binary32("3", "[afaa07d8208ac3a9d79dbfe048c8c4a2]", "[80000071]", "0x30")
+ self.bid128_to_binary32("4", "[afaa07d8208ac3a9d79dbfe048c8c4a2]", "[80000072]", "0x30")
+ self.bid128_to_binary32("0", "[afab8e800dc2ddc4b231a5dfcf1079e3]", "[80001688]", "0x30")
+ self.bid128_to_binary32("1", "[afab8e800dc2ddc4b231a5dfcf1079e3]", "[80001688]", "0x30")
+ self.bid128_to_binary32("2", "[afab8e800dc2ddc4b231a5dfcf1079e3]", "[80001687]", "0x30")
+ self.bid128_to_binary32("3", "[afab8e800dc2ddc4b231a5dfcf1079e3]", "[80001687]", "0x30")
+ self.bid128_to_binary32("4", "[afab8e800dc2ddc4b231a5dfcf1079e3]", "[80001688]", "0x30")
+ self.bid128_to_binary32("0", "[afac5a5e6940f007380e6fd849d409b0]", "[80003318]", "0x30")
+ self.bid128_to_binary32("1", "[afac5a5e6940f007380e6fd849d409b0]", "[80003318]", "0x30")
+ self.bid128_to_binary32("2", "[afac5a5e6940f007380e6fd849d409b0]", "[80003317]", "0x30")
+ self.bid128_to_binary32("3", "[afac5a5e6940f007380e6fd849d409b0]", "[80003317]", "0x30")
+ self.bid128_to_binary32("4", "[afac5a5e6940f007380e6fd849d409b0]", "[80003318]", "0x30")
+ self.bid128_to_binary32("0", "[afae197a9066692302014477c9ea78f7]", "[8000900e]", "0x30")
+ self.bid128_to_binary32("1", "[afae197a9066692302014477c9ea78f7]", "[8000900e]", "0x30")
+ self.bid128_to_binary32("2", "[afae197a9066692302014477c9ea78f7]", "[8000900d]", "0x30")
+ self.bid128_to_binary32("3", "[afae197a9066692302014477c9ea78f7]", "[8000900d]", "0x30")
+ self.bid128_to_binary32("4", "[afae197a9066692302014477c9ea78f7]", "[8000900e]", "0x30")
+ self.bid128_to_binary32("0", "[afaea6ce1a742b703e123d3fa7937495]", "[8003af1a]", "0x30")
+ self.bid128_to_binary32("1", "[afaea6ce1a742b703e123d3fa7937495]", "[8003af1a]", "0x30")
+ self.bid128_to_binary32("2", "[afaea6ce1a742b703e123d3fa7937495]", "[8003af19]", "0x30")
+ self.bid128_to_binary32("3", "[afaea6ce1a742b703e123d3fa7937495]", "[8003af19]", "0x30")
+ self.bid128_to_binary32("4", "[afaea6ce1a742b703e123d3fa7937495]", "[8003af1a]", "0x30")
+ self.bid128_to_binary32("0", "[afb090e40e9d21fdbc768214c0703452]", "[80200000]", "0x30")
+ self.bid128_to_binary32("1", "[afb090e40e9d21fdbc768214c0703452]", "[80200000]", "0x30")
+ self.bid128_to_binary32("2", "[afb090e40e9d21fdbc768214c0703452]", "[801fffff]", "0x30")
+ self.bid128_to_binary32("3", "[afb090e40e9d21fdbc768214c0703452]", "[801fffff]", "0x30")
+ self.bid128_to_binary32("4", "[afb090e40e9d21fdbc768214c0703452]", "[80200000]", "0x30")
+ self.bid128_to_binary32("0", "[afb090e40e9d21fdbc768214c0703453]", "[80200000]", "0x30")
+ self.bid128_to_binary32("1", "[afb090e40e9d21fdbc768214c0703453]", "[80200000]", "0x30")
+ self.bid128_to_binary32("2", "[afb090e40e9d21fdbc768214c0703453]", "[801fffff]", "0x30")
+ self.bid128_to_binary32("3", "[afb090e40e9d21fdbc768214c0703453]", "[801fffff]", "0x30")
+ self.bid128_to_binary32("4", "[afb090e40e9d21fdbc768214c0703453]", "[80200000]", "0x30")
+ self.bid128_to_binary32("0", "[afb0a6ce1a742b703e123d3fa7937495]", "[8024d703]", "0x30")
+ self.bid128_to_binary32("1", "[afb0a6ce1a742b703e123d3fa7937495]", "[8024d703]", "0x30")
+ self.bid128_to_binary32("2", "[afb0a6ce1a742b703e123d3fa7937495]", "[8024d702]", "0x30")
+ self.bid128_to_binary32("3", "[afb0a6ce1a742b703e123d3fa7937495]", "[8024d702]", "0x30")
+ self.bid128_to_binary32("4", "[afb0a6ce1a742b703e123d3fa7937495]", "[8024d703]", "0x30")
+ self.bid128_to_binary32("0", "[afb121c81d3a43fb78ed042980e068a4]", "[803fffff]", "0x30")
+ self.bid128_to_binary32("1", "[afb121c81d3a43fb78ed042980e068a4]", "[80400000]", "0x30")
+ self.bid128_to_binary32("2", "[afb121c81d3a43fb78ed042980e068a4]", "[803fffff]", "0x30")
+ self.bid128_to_binary32("3", "[afb121c81d3a43fb78ed042980e068a4]", "[803fffff]", "0x30")
+ self.bid128_to_binary32("4", "[afb121c81d3a43fb78ed042980e068a4]", "[803fffff]", "0x30")
+ self.bid128_to_binary32("0", "[afb121c81d3a43fb78ed042980e068a5]", "[80400000]", "0x30")
+ self.bid128_to_binary32("1", "[afb121c81d3a43fb78ed042980e068a5]", "[80400000]", "0x30")
+ self.bid128_to_binary32("2", "[afb121c81d3a43fb78ed042980e068a5]", "[803fffff]", "0x30")
+ self.bid128_to_binary32("3", "[afb121c81d3a43fb78ed042980e068a5]", "[803fffff]", "0x30")
+ self.bid128_to_binary32("4", "[afb121c81d3a43fb78ed042980e068a5]", "[80400000]", "0x30")
+ self.bid128_to_binary32("0", "[afb239f4d3192a7217511836ef2a1c65]", "[80800000]", "0x20")
+ self.bid128_to_binary32("1", "[afb239f4d3192a7217511836ef2a1c65]", "[80800000]", "0x20")
+ self.bid128_to_binary32("2", "[afb239f4d3192a7217511836ef2a1c65]", "[807fffff]", "0x30")
+ self.bid128_to_binary32("3", "[afb239f4d3192a7217511836ef2a1c65]", "[807fffff]", "0x30")
+ self.bid128_to_binary32("4", "[afb239f4d3192a7217511836ef2a1c65]", "[80800000]", "0x20")
+ self.bid128_to_binary32("0", "[afb239f4d3192a7217511836ef2a1c66]", "[80800000]", "0x20")
+ self.bid128_to_binary32("1", "[afb239f4d3192a7217511836ef2a1c66]", "[80800001]", "0x20")
+ self.bid128_to_binary32("2", "[afb239f4d3192a7217511836ef2a1c66]", "[80800000]", "0x20")
+ self.bid128_to_binary32("3", "[afb239f4d3192a7217511836ef2a1c66]", "[80800000]", "0x20")
+ self.bid128_to_binary32("4", "[afb239f4d3192a7217511836ef2a1c66]", "[80800000]", "0x20")
+ self.bid128_to_binary32("0", "[afb2659456dea3688adbcb6927ca90d5]", "[80e0581d]", "0x20")
+ self.bid128_to_binary32("1", "[afb2659456dea3688adbcb6927ca90d5]", "[80e0581e]", "0x20")
+ self.bid128_to_binary32("2", "[afb2659456dea3688adbcb6927ca90d5]", "[80e0581d]", "0x20")
+ self.bid128_to_binary32("3", "[afb2659456dea3688adbcb6927ca90d5]", "[80e0581d]", "0x20")
+ self.bid128_to_binary32("4", "[afb2659456dea3688adbcb6927ca90d5]", "[80e0581d]", "0x20")
+ self.bid128_to_binary32("0", "[afb273e9a63254e42ea2306dde5438cb]", "[81000000]", "0x20")
+ self.bid128_to_binary32("1", "[afb273e9a63254e42ea2306dde5438cb]", "[81000000]", "0x20")
+ self.bid128_to_binary32("2", "[afb273e9a63254e42ea2306dde5438cb]", "[80ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[afb273e9a63254e42ea2306dde5438cb]", "[80ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[afb273e9a63254e42ea2306dde5438cb]", "[81000000]", "0x20")
+ self.bid128_to_binary32("0", "[afb273e9a63254e42ea2306dde5438cc]", "[81000000]", "0x20")
+ self.bid128_to_binary32("1", "[afb273e9a63254e42ea2306dde5438cc]", "[81000001]", "0x20")
+ self.bid128_to_binary32("2", "[afb273e9a63254e42ea2306dde5438cc]", "[81000000]", "0x20")
+ self.bid128_to_binary32("3", "[afb273e9a63254e42ea2306dde5438cc]", "[81000000]", "0x20")
+ self.bid128_to_binary32("4", "[afb273e9a63254e42ea2306dde5438cc]", "[81000000]", "0x20")
+ self.bid128_to_binary32("0", "[afb40d0b8d844e67f0a47d2ae65b60c0]", "[81100dfe]", "0x20")
+ self.bid128_to_binary32("1", "[afb40d0b8d844e67f0a47d2ae65b60c0]", "[81100dff]", "0x20")
+ self.bid128_to_binary32("2", "[afb40d0b8d844e67f0a47d2ae65b60c0]", "[81100dfe]", "0x20")
+ self.bid128_to_binary32("3", "[afb40d0b8d844e67f0a47d2ae65b60c0]", "[81100dfe]", "0x20")
+ self.bid128_to_binary32("4", "[afb40d0b8d844e67f0a47d2ae65b60c0]", "[81100dfe]", "0x20")
+ self.bid128_to_binary32("0", "[afb5e86d1d7e8229de52278b79819ffc]", "[83a88cb9]", "0x20")
+ self.bid128_to_binary32("1", "[afb5e86d1d7e8229de52278b79819ffc]", "[83a88cba]", "0x20")
+ self.bid128_to_binary32("2", "[afb5e86d1d7e8229de52278b79819ffc]", "[83a88cb9]", "0x20")
+ self.bid128_to_binary32("3", "[afb5e86d1d7e8229de52278b79819ffc]", "[83a88cb9]", "0x20")
+ self.bid128_to_binary32("4", "[afb5e86d1d7e8229de52278b79819ffc]", "[83a88cb9]", "0x20")
+ self.bid128_to_binary32("0", "[afb702e3760defe63bf9ab99d81d51dd]", "[84df590e]", "0x20")
+ self.bid128_to_binary32("1", "[afb702e3760defe63bf9ab99d81d51dd]", "[84df590e]", "0x20")
+ self.bid128_to_binary32("2", "[afb702e3760defe63bf9ab99d81d51dd]", "[84df590d]", "0x20")
+ self.bid128_to_binary32("3", "[afb702e3760defe63bf9ab99d81d51dd]", "[84df590d]", "0x20")
+ self.bid128_to_binary32("4", "[afb702e3760defe63bf9ab99d81d51dd]", "[84df590e]", "0x20")
+ self.bid128_to_binary32("0", "[afb82e1960d07da56c7e888baca7fb41]", "[8546da53]", "0x20")
+ self.bid128_to_binary32("1", "[afb82e1960d07da56c7e888baca7fb41]", "[8546da53]", "0x20")
+ self.bid128_to_binary32("2", "[afb82e1960d07da56c7e888baca7fb41]", "[8546da52]", "0x20")
+ self.bid128_to_binary32("3", "[afb82e1960d07da56c7e888baca7fb41]", "[8546da52]", "0x20")
+ self.bid128_to_binary32("4", "[afb82e1960d07da56c7e888baca7fb41]", "[8546da53]", "0x20")
+ self.bid128_to_binary32("0", "[afb9d5c312079e381334711687cb742d]", "[86fd4b90]", "0x20")
+ self.bid128_to_binary32("1", "[afb9d5c312079e381334711687cb742d]", "[86fd4b91]", "0x20")
+ self.bid128_to_binary32("2", "[afb9d5c312079e381334711687cb742d]", "[86fd4b90]", "0x20")
+ self.bid128_to_binary32("3", "[afb9d5c312079e381334711687cb742d]", "[86fd4b90]", "0x20")
+ self.bid128_to_binary32("4", "[afb9d5c312079e381334711687cb742d]", "[86fd4b90]", "0x20")
+ self.bid128_to_binary32("0", "[afba833702e911bf5916302af13d5119]", "[87b0e098]", "0x20")
+ self.bid128_to_binary32("1", "[afba833702e911bf5916302af13d5119]", "[87b0e098]", "0x20")
+ self.bid128_to_binary32("2", "[afba833702e911bf5916302af13d5119]", "[87b0e097]", "0x20")
+ self.bid128_to_binary32("3", "[afba833702e911bf5916302af13d5119]", "[87b0e097]", "0x20")
+ self.bid128_to_binary32("4", "[afba833702e911bf5916302af13d5119]", "[87b0e098]", "0x20")
+ self.bid128_to_binary32("0", "[afbc833702e911bf5916302af13d5119]", "[895d18be]", "0x20")
+ self.bid128_to_binary32("1", "[afbc833702e911bf5916302af13d5119]", "[895d18be]", "0x20")
+ self.bid128_to_binary32("2", "[afbc833702e911bf5916302af13d5119]", "[895d18bd]", "0x20")
+ self.bid128_to_binary32("3", "[afbc833702e911bf5916302af13d5119]", "[895d18bd]", "0x20")
+ self.bid128_to_binary32("4", "[afbc833702e911bf5916302af13d5119]", "[895d18be]", "0x20")
+ self.bid128_to_binary32("0", "[afbe18f87bb341923d80b7ba9eac62f0]", "[89d26091]", "0x20")
+ self.bid128_to_binary32("1", "[afbe18f87bb341923d80b7ba9eac62f0]", "[89d26091]", "0x20")
+ self.bid128_to_binary32("2", "[afbe18f87bb341923d80b7ba9eac62f0]", "[89d26090]", "0x20")
+ self.bid128_to_binary32("3", "[afbe18f87bb341923d80b7ba9eac62f0]", "[89d26090]", "0x20")
+ self.bid128_to_binary32("4", "[afbe18f87bb341923d80b7ba9eac62f0]", "[89d26091]", "0x20")
+ self.bid128_to_binary32("0", "[afbfa9d15ae885d5427295a296b37807]", "[8be03820]", "0x20")
+ self.bid128_to_binary32("1", "[afbfa9d15ae885d5427295a296b37807]", "[8be03820]", "0x20")
+ self.bid128_to_binary32("2", "[afbfa9d15ae885d5427295a296b37807]", "[8be0381f]", "0x20")
+ self.bid128_to_binary32("3", "[afbfa9d15ae885d5427295a296b37807]", "[8be0381f]", "0x20")
+ self.bid128_to_binary32("4", "[afbfa9d15ae885d5427295a296b37807]", "[8be03820]", "0x20")
+ self.bid128_to_binary32("0", "[afc218f4bfdae19b19d98e8c5ba60ae9]", "[8d2442dd]", "0x20")
+ self.bid128_to_binary32("1", "[afc218f4bfdae19b19d98e8c5ba60ae9]", "[8d2442de]", "0x20")
+ self.bid128_to_binary32("2", "[afc218f4bfdae19b19d98e8c5ba60ae9]", "[8d2442dd]", "0x20")
+ self.bid128_to_binary32("3", "[afc218f4bfdae19b19d98e8c5ba60ae9]", "[8d2442dd]", "0x20")
+ self.bid128_to_binary32("4", "[afc218f4bfdae19b19d98e8c5ba60ae9]", "[8d2442dd]", "0x20")
+ self.bid128_to_binary32("0", "[afc231e97fb5c33633b31d18b74c15d2]", "[8da442dd]", "0x20")
+ self.bid128_to_binary32("1", "[afc231e97fb5c33633b31d18b74c15d2]", "[8da442de]", "0x20")
+ self.bid128_to_binary32("2", "[afc231e97fb5c33633b31d18b74c15d2]", "[8da442dd]", "0x20")
+ self.bid128_to_binary32("3", "[afc231e97fb5c33633b31d18b74c15d2]", "[8da442dd]", "0x20")
+ self.bid128_to_binary32("4", "[afc231e97fb5c33633b31d18b74c15d2]", "[8da442dd]", "0x20")
+ self.bid128_to_binary32("0", "[afc40f495f633cab91b5c1fdea52f975]", "[8e7b8ab9]", "0x20")
+ self.bid128_to_binary32("1", "[afc40f495f633cab91b5c1fdea52f975]", "[8e7b8aba]", "0x20")
+ self.bid128_to_binary32("2", "[afc40f495f633cab91b5c1fdea52f975]", "[8e7b8ab9]", "0x20")
+ self.bid128_to_binary32("3", "[afc40f495f633cab91b5c1fdea52f975]", "[8e7b8ab9]", "0x20")
+ self.bid128_to_binary32("4", "[afc40f495f633cab91b5c1fdea52f975]", "[8e7b8ab9]", "0x20")
+ self.bid128_to_binary32("0", "[afc5385d7ee219d9ebb7bf52383744dc]", "[90a09fdf]", "0x20")
+ self.bid128_to_binary32("1", "[afc5385d7ee219d9ebb7bf52383744dc]", "[90a09fe0]", "0x20")
+ self.bid128_to_binary32("2", "[afc5385d7ee219d9ebb7bf52383744dc]", "[90a09fdf]", "0x20")
+ self.bid128_to_binary32("3", "[afc5385d7ee219d9ebb7bf52383744dc]", "[90a09fdf]", "0x20")
+ self.bid128_to_binary32("4", "[afc5385d7ee219d9ebb7bf52383744dc]", "[90a09fdf]", "0x20")
+ self.bid128_to_binary32("0", "[afc664c8255368dbf2ace77e3a8d0ea6]", "[91818f63]", "0x20")
+ self.bid128_to_binary32("1", "[afc664c8255368dbf2ace77e3a8d0ea6]", "[91818f64]", "0x20")
+ self.bid128_to_binary32("2", "[afc664c8255368dbf2ace77e3a8d0ea6]", "[91818f63]", "0x20")
+ self.bid128_to_binary32("3", "[afc664c8255368dbf2ace77e3a8d0ea6]", "[91818f63]", "0x20")
+ self.bid128_to_binary32("4", "[afc664c8255368dbf2ace77e3a8d0ea6]", "[91818f63]", "0x20")
+ self.bid128_to_binary32("0", "[afc80100817d9653cec4e748c0db35b1]", "[8fce1830]", "0x20")
+ self.bid128_to_binary32("1", "[afc80100817d9653cec4e748c0db35b1]", "[8fce1831]", "0x20")
+ self.bid128_to_binary32("2", "[afc80100817d9653cec4e748c0db35b1]", "[8fce1830]", "0x20")
+ self.bid128_to_binary32("3", "[afc80100817d9653cec4e748c0db35b1]", "[8fce1830]", "0x20")
+ self.bid128_to_binary32("4", "[afc80100817d9653cec4e748c0db35b1]", "[8fce1830]", "0x20")
+ self.bid128_to_binary32("0", "[afc8c78f47aba51047d0006af363b1ea]", "[93a0570c]", "0x20")
+ self.bid128_to_binary32("1", "[afc8c78f47aba51047d0006af363b1ea]", "[93a0570c]", "0x20")
+ self.bid128_to_binary32("2", "[afc8c78f47aba51047d0006af363b1ea]", "[93a0570b]", "0x20")
+ self.bid128_to_binary32("3", "[afc8c78f47aba51047d0006af363b1ea]", "[93a0570b]", "0x20")
+ self.bid128_to_binary32("4", "[afc8c78f47aba51047d0006af363b1ea]", "[93a0570c]", "0x20")
+ self.bid128_to_binary32("0", "[afcb4c1eec26f2b12ff1f78190623250]", "[95a6c7ce]", "0x20")
+ self.bid128_to_binary32("1", "[afcb4c1eec26f2b12ff1f78190623250]", "[95a6c7ce]", "0x20")
+ self.bid128_to_binary32("2", "[afcb4c1eec26f2b12ff1f78190623250]", "[95a6c7cd]", "0x20")
+ self.bid128_to_binary32("3", "[afcb4c1eec26f2b12ff1f78190623250]", "[95a6c7cd]", "0x20")
+ self.bid128_to_binary32("4", "[afcb4c1eec26f2b12ff1f78190623250]", "[95a6c7ce]", "0x20")
+ self.bid128_to_binary32("0", "[afcc4fae26141eb38733ca35c62d16e7]", "[96481081]", "0x20")
+ self.bid128_to_binary32("1", "[afcc4fae26141eb38733ca35c62d16e7]", "[96481081]", "0x20")
+ self.bid128_to_binary32("2", "[afcc4fae26141eb38733ca35c62d16e7]", "[96481080]", "0x20")
+ self.bid128_to_binary32("3", "[afcc4fae26141eb38733ca35c62d16e7]", "[96481080]", "0x20")
+ self.bid128_to_binary32("4", "[afcc4fae26141eb38733ca35c62d16e7]", "[96481081]", "0x20")
+ self.bid128_to_binary32("0", "[afce129db1fbb7b7b877b82cd92bc91f]", "[96e9b582]", "0x20")
+ self.bid128_to_binary32("1", "[afce129db1fbb7b7b877b82cd92bc91f]", "[96e9b582]", "0x20")
+ self.bid128_to_binary32("2", "[afce129db1fbb7b7b877b82cd92bc91f]", "[96e9b581]", "0x20")
+ self.bid128_to_binary32("3", "[afce129db1fbb7b7b877b82cd92bc91f]", "[96e9b581]", "0x20")
+ self.bid128_to_binary32("4", "[afce129db1fbb7b7b877b82cd92bc91f]", "[96e9b582]", "0x20")
+ self.bid128_to_binary32("0", "[afcf29db1fbb7b7b877b82cd92bc91f0]", "[98e9b582]", "0x20")
+ self.bid128_to_binary32("1", "[afcf29db1fbb7b7b877b82cd92bc91f0]", "[98e9b582]", "0x20")
+ self.bid128_to_binary32("2", "[afcf29db1fbb7b7b877b82cd92bc91f0]", "[98e9b581]", "0x20")
+ self.bid128_to_binary32("3", "[afcf29db1fbb7b7b877b82cd92bc91f0]", "[98e9b581]", "0x20")
+ self.bid128_to_binary32("4", "[afcf29db1fbb7b7b877b82cd92bc91f0]", "[98e9b582]", "0x20")
+ self.bid128_to_binary32("0", "[afd068b30c6d1323ceca6a27491dfffd]", "[99cd60b5]", "0x20")
+ self.bid128_to_binary32("1", "[afd068b30c6d1323ceca6a27491dfffd]", "[99cd60b6]", "0x20")
+ self.bid128_to_binary32("2", "[afd068b30c6d1323ceca6a27491dfffd]", "[99cd60b5]", "0x20")
+ self.bid128_to_binary32("3", "[afd068b30c6d1323ceca6a27491dfffd]", "[99cd60b5]", "0x20")
+ self.bid128_to_binary32("4", "[afd068b30c6d1323ceca6a27491dfffd]", "[99cd60b5]", "0x20")
+ self.bid128_to_binary32("0", "[afd211b10160443d952e22e6334ce9fe]", "[9a2d845b]", "0x20")
+ self.bid128_to_binary32("1", "[afd211b10160443d952e22e6334ce9fe]", "[9a2d845b]", "0x20")
+ self.bid128_to_binary32("2", "[afd211b10160443d952e22e6334ce9fe]", "[9a2d845a]", "0x20")
+ self.bid128_to_binary32("3", "[afd211b10160443d952e22e6334ce9fe]", "[9a2d845a]", "0x20")
+ self.bid128_to_binary32("4", "[afd211b10160443d952e22e6334ce9fe]", "[9a2d845b]", "0x20")
+ self.bid128_to_binary32("0", "[afd3286823e6f52dd7311b8fa80d15f9]", "[9c35b264]", "0x20")
+ self.bid128_to_binary32("1", "[afd3286823e6f52dd7311b8fa80d15f9]", "[9c35b265]", "0x20")
+ self.bid128_to_binary32("2", "[afd3286823e6f52dd7311b8fa80d15f9]", "[9c35b264]", "0x20")
+ self.bid128_to_binary32("3", "[afd3286823e6f52dd7311b8fa80d15f9]", "[9c35b264]", "0x20")
+ self.bid128_to_binary32("4", "[afd3286823e6f52dd7311b8fa80d15f9]", "[9c35b264]", "0x20")
+ self.bid128_to_binary32("0", "[afd43b48072e31092b09d24fee690465]", "[9cb5b264]", "0x20")
+ self.bid128_to_binary32("1", "[afd43b48072e31092b09d24fee690465]", "[9cb5b265]", "0x20")
+ self.bid128_to_binary32("2", "[afd43b48072e31092b09d24fee690465]", "[9cb5b264]", "0x20")
+ self.bid128_to_binary32("3", "[afd43b48072e31092b09d24fee690465]", "[9cb5b264]", "0x20")
+ self.bid128_to_binary32("4", "[afd43b48072e31092b09d24fee690465]", "[9cb5b264]", "0x20")
+ self.bid128_to_binary32("0", "[afd63b48072e31092b09d24fee690465]", "[9e631efd]", "0x20")
+ self.bid128_to_binary32("1", "[afd63b48072e31092b09d24fee690465]", "[9e631efe]", "0x20")
+ self.bid128_to_binary32("2", "[afd63b48072e31092b09d24fee690465]", "[9e631efd]", "0x20")
+ self.bid128_to_binary32("3", "[afd63b48072e31092b09d24fee690465]", "[9e631efd]", "0x20")
+ self.bid128_to_binary32("4", "[afd63b48072e31092b09d24fee690465]", "[9e631efd]", "0x20")
+ self.bid128_to_binary32("0", "[afd81a014b7bf56b67ed17e03541348c]", "[9f791438]", "0x20")
+ self.bid128_to_binary32("1", "[afd81a014b7bf56b67ed17e03541348c]", "[9f791438]", "0x20")
+ self.bid128_to_binary32("2", "[afd81a014b7bf56b67ed17e03541348c]", "[9f791437]", "0x20")
+ self.bid128_to_binary32("3", "[afd81a014b7bf56b67ed17e03541348c]", "[9f791437]", "0x20")
+ self.bid128_to_binary32("4", "[afd81a014b7bf56b67ed17e03541348c]", "[9f791438]", "0x20")
+ self.bid128_to_binary32("0", "[afda110eaa2207b0ea316209a0bba4fd]", "[a0cc386c]", "0x20")
+ self.bid128_to_binary32("1", "[afda110eaa2207b0ea316209a0bba4fd]", "[a0cc386d]", "0x20")
+ self.bid128_to_binary32("2", "[afda110eaa2207b0ea316209a0bba4fd]", "[a0cc386c]", "0x20")
+ self.bid128_to_binary32("3", "[afda110eaa2207b0ea316209a0bba4fd]", "[a0cc386c]", "0x20")
+ self.bid128_to_binary32("4", "[afda110eaa2207b0ea316209a0bba4fd]", "[a0cc386c]", "0x20")
+ self.bid128_to_binary32("0", "[afda221d54440f61d462c413417749fa]", "[a14c386c]", "0x20")
+ self.bid128_to_binary32("1", "[afda221d54440f61d462c413417749fa]", "[a14c386d]", "0x20")
+ self.bid128_to_binary32("2", "[afda221d54440f61d462c413417749fa]", "[a14c386c]", "0x20")
+ self.bid128_to_binary32("3", "[afda221d54440f61d462c413417749fa]", "[a14c386c]", "0x20")
+ self.bid128_to_binary32("4", "[afda221d54440f61d462c413417749fa]", "[a14c386c]", "0x20")
+ self.bid128_to_binary32("0", "[afdc221d54440f61d462c413417749fa]", "[a2ff4687]", "0x20")
+ self.bid128_to_binary32("1", "[afdc221d54440f61d462c413417749fa]", "[a2ff4688]", "0x20")
+ self.bid128_to_binary32("2", "[afdc221d54440f61d462c413417749fa]", "[a2ff4687]", "0x20")
+ self.bid128_to_binary32("3", "[afdc221d54440f61d462c413417749fa]", "[a2ff4687]", "0x20")
+ self.bid128_to_binary32("4", "[afdc221d54440f61d462c413417749fa]", "[a2ff4687]", "0x20")
+ self.bid128_to_binary32("0", "[afde06ad57366156c5c3b8d286dcd13d]", "[a379d207]", "0x20")
+ self.bid128_to_binary32("1", "[afde06ad57366156c5c3b8d286dcd13d]", "[a379d208]", "0x20")
+ self.bid128_to_binary32("2", "[afde06ad57366156c5c3b8d286dcd13d]", "[a379d207]", "0x20")
+ self.bid128_to_binary32("3", "[afde06ad57366156c5c3b8d286dcd13d]", "[a379d207]", "0x20")
+ self.bid128_to_binary32("4", "[afde06ad57366156c5c3b8d286dcd13d]", "[a379d207]", "0x20")
+ self.bid128_to_binary32("0", "[afdfb64530a6b800f2608c150a805807]", "[a6801b46]", "0x20")
+ self.bid128_to_binary32("1", "[afdfb64530a6b800f2608c150a805807]", "[a6801b47]", "0x20")
+ self.bid128_to_binary32("2", "[afdfb64530a6b800f2608c150a805807]", "[a6801b46]", "0x20")
+ self.bid128_to_binary32("3", "[afdfb64530a6b800f2608c150a805807]", "[a6801b46]", "0x20")
+ self.bid128_to_binary32("4", "[afdfb64530a6b800f2608c150a805807]", "[a6801b46]", "0x20")
+ self.bid128_to_binary32("0", "[afe057f2169c9b79c6b35f33a8295985]", "[a7008860]", "0x20")
+ self.bid128_to_binary32("1", "[afe057f2169c9b79c6b35f33a8295985]", "[a7008861]", "0x20")
+ self.bid128_to_binary32("2", "[afe057f2169c9b79c6b35f33a8295985]", "[a7008860]", "0x20")
+ self.bid128_to_binary32("3", "[afe057f2169c9b79c6b35f33a8295985]", "[a7008860]", "0x20")
+ self.bid128_to_binary32("4", "[afe057f2169c9b79c6b35f33a8295985]", "[a7008860]", "0x20")
+ self.bid128_to_binary32("0", "[afe211e177cdc8f85790bca02e17f36b]", "[a782a9e2]", "0x20")
+ self.bid128_to_binary32("1", "[afe211e177cdc8f85790bca02e17f36b]", "[a782a9e3]", "0x20")
+ self.bid128_to_binary32("2", "[afe211e177cdc8f85790bca02e17f36b]", "[a782a9e2]", "0x20")
+ self.bid128_to_binary32("3", "[afe211e177cdc8f85790bca02e17f36b]", "[a782a9e2]", "0x20")
+ self.bid128_to_binary32("4", "[afe211e177cdc8f85790bca02e17f36b]", "[a782a9e2]", "0x20")
+ self.bid128_to_binary32("0", "[afe3dec00ec56e4844661f927e5790c9]", "[a9daa78a]", "0x20")
+ self.bid128_to_binary32("1", "[afe3dec00ec56e4844661f927e5790c9]", "[a9daa78a]", "0x20")
+ self.bid128_to_binary32("2", "[afe3dec00ec56e4844661f927e5790c9]", "[a9daa789]", "0x20")
+ self.bid128_to_binary32("3", "[afe3dec00ec56e4844661f927e5790c9]", "[a9daa789]", "0x20")
+ self.bid128_to_binary32("4", "[afe3dec00ec56e4844661f927e5790c9]", "[a9daa78a]", "0x20")
+ self.bid128_to_binary32("0", "[afe5bbb7bf5e05078cd4ce48c14eddbc]", "[ab7d516c]", "0x20")
+ self.bid128_to_binary32("1", "[afe5bbb7bf5e05078cd4ce48c14eddbc]", "[ab7d516d]", "0x20")
+ self.bid128_to_binary32("2", "[afe5bbb7bf5e05078cd4ce48c14eddbc]", "[ab7d516c]", "0x20")
+ self.bid128_to_binary32("3", "[afe5bbb7bf5e05078cd4ce48c14eddbc]", "[ab7d516c]", "0x20")
+ self.bid128_to_binary32("4", "[afe5bbb7bf5e05078cd4ce48c14eddbc]", "[ab7d516c]", "0x20")
+ self.bid128_to_binary32("0", "[afe6593072d6dbdf03725a358ff6d3fb]", "[abfe971e]", "0x20")
+ self.bid128_to_binary32("1", "[afe6593072d6dbdf03725a358ff6d3fb]", "[abfe971f]", "0x20")
+ self.bid128_to_binary32("2", "[afe6593072d6dbdf03725a358ff6d3fb]", "[abfe971e]", "0x20")
+ self.bid128_to_binary32("3", "[afe6593072d6dbdf03725a358ff6d3fb]", "[abfe971e]", "0x20")
+ self.bid128_to_binary32("4", "[afe6593072d6dbdf03725a358ff6d3fb]", "[abfe971e]", "0x20")
+ self.bid128_to_binary32("0", "[afe811b918890527ca689fe6d0e514cc]", "[ac7cf398]", "0x20")
+ self.bid128_to_binary32("1", "[afe811b918890527ca689fe6d0e514cc]", "[ac7cf399]", "0x20")
+ self.bid128_to_binary32("2", "[afe811b918890527ca689fe6d0e514cc]", "[ac7cf398]", "0x20")
+ self.bid128_to_binary32("3", "[afe811b918890527ca689fe6d0e514cc]", "[ac7cf398]", "0x20")
+ self.bid128_to_binary32("4", "[afe811b918890527ca689fe6d0e514cc]", "[ac7cf398]", "0x20")
+ self.bid128_to_binary32("0", "[afe9ecc2701d28f557e5bc9d07a5e53f]", "[aedbc731]", "0x20")
+ self.bid128_to_binary32("1", "[afe9ecc2701d28f557e5bc9d07a5e53f]", "[aedbc731]", "0x20")
+ self.bid128_to_binary32("2", "[afe9ecc2701d28f557e5bc9d07a5e53f]", "[aedbc730]", "0x20")
+ self.bid128_to_binary32("3", "[afe9ecc2701d28f557e5bc9d07a5e53f]", "[aedbc730]", "0x20")
+ self.bid128_to_binary32("4", "[afe9ecc2701d28f557e5bc9d07a5e53f]", "[aedbc731]", "0x20")
+ self.bid128_to_binary32("0", "[afeae58a2483fda6a3221571c297bb47]", "[affff1fa]", "0x20")
+ self.bid128_to_binary32("1", "[afeae58a2483fda6a3221571c297bb47]", "[affff1fb]", "0x20")
+ self.bid128_to_binary32("2", "[afeae58a2483fda6a3221571c297bb47]", "[affff1fa]", "0x20")
+ self.bid128_to_binary32("3", "[afeae58a2483fda6a3221571c297bb47]", "[affff1fa]", "0x20")
+ self.bid128_to_binary32("4", "[afeae58a2483fda6a3221571c297bb47]", "[affff1fa]", "0x20")
+ self.bid128_to_binary32("0", "[afec2de9d9195b13eda47f06999d552b]", "[b07ff9e4]", "0x20")
+ self.bid128_to_binary32("1", "[afec2de9d9195b13eda47f06999d552b]", "[b07ff9e5]", "0x20")
+ self.bid128_to_binary32("2", "[afec2de9d9195b13eda47f06999d552b]", "[b07ff9e4]", "0x20")
+ self.bid128_to_binary32("3", "[afec2de9d9195b13eda47f06999d552b]", "[b07ff9e4]", "0x20")
+ self.bid128_to_binary32("4", "[afec2de9d9195b13eda47f06999d552b]", "[b07ff9e4]", "0x20")
+ self.bid128_to_binary32("0", "[afeded072d48a130fc31a960828fa184]", "[b22bcb92]", "0x20")
+ self.bid128_to_binary32("1", "[afeded072d48a130fc31a960828fa184]", "[b22bcb92]", "0x20")
+ self.bid128_to_binary32("2", "[afeded072d48a130fc31a960828fa184]", "[b22bcb91]", "0x20")
+ self.bid128_to_binary32("3", "[afeded072d48a130fc31a960828fa184]", "[b22bcb91]", "0x20")
+ self.bid128_to_binary32("4", "[afeded072d48a130fc31a960828fa184]", "[b22bcb92]", "0x20")
+ self.bid128_to_binary32("0", "[afefed097907e8143f6e8859ed16cd18]", "[b3d6bf76]", "0x20")
+ self.bid128_to_binary32("1", "[afefed097907e8143f6e8859ed16cd18]", "[b3d6bf77]", "0x20")
+ self.bid128_to_binary32("2", "[afefed097907e8143f6e8859ed16cd18]", "[b3d6bf76]", "0x20")
+ self.bid128_to_binary32("3", "[afefed097907e8143f6e8859ed16cd18]", "[b3d6bf76]", "0x20")
+ self.bid128_to_binary32("4", "[afefed097907e8143f6e8859ed16cd18]", "[b3d6bf76]", "0x20")
+ self.bid128_to_binary32("0", "[aff0758c91f7745123ffeca1940ffbe2]", "[b47fffd0]", "0x20")
+ self.bid128_to_binary32("1", "[aff0758c91f7745123ffeca1940ffbe2]", "[b47fffd1]", "0x20")
+ self.bid128_to_binary32("2", "[aff0758c91f7745123ffeca1940ffbe2]", "[b47fffd0]", "0x20")
+ self.bid128_to_binary32("3", "[aff0758c91f7745123ffeca1940ffbe2]", "[b47fffd0]", "0x20")
+ self.bid128_to_binary32("4", "[aff0758c91f7745123ffeca1940ffbe2]", "[b47fffd0]", "0x20")
+ self.bid128_to_binary32("0", "[aff2178283c6e920239ef6c1837c5be9]", "[b4ffffd2]", "0x20")
+ self.bid128_to_binary32("1", "[aff2178283c6e920239ef6c1837c5be9]", "[b4ffffd3]", "0x20")
+ self.bid128_to_binary32("2", "[aff2178283c6e920239ef6c1837c5be9]", "[b4ffffd2]", "0x20")
+ self.bid128_to_binary32("3", "[aff2178283c6e920239ef6c1837c5be9]", "[b4ffffd2]", "0x20")
+ self.bid128_to_binary32("4", "[aff2178283c6e920239ef6c1837c5be9]", "[b4ffffd2]", "0x20")
+ self.bid128_to_binary32("0", "[aff3ed09baec4020537841bfb021c147]", "[b727c5ab]", "0x20")
+ self.bid128_to_binary32("1", "[aff3ed09baec4020537841bfb021c147]", "[b727c5ab]", "0x20")
+ self.bid128_to_binary32("2", "[aff3ed09baec4020537841bfb021c147]", "[b727c5aa]", "0x20")
+ self.bid128_to_binary32("3", "[aff3ed09baec4020537841bfb021c147]", "[b727c5aa]", "0x20")
+ self.bid128_to_binary32("4", "[aff3ed09baec4020537841bfb021c147]", "[b727c5ab]", "0x20")
+ self.bid128_to_binary32("0", "[aff52ced320af381c133189f94ecebbb]", "[b87fffff]", "0x20")
+ self.bid128_to_binary32("1", "[aff52ced320af381c133189f94ecebbb]", "[b8800000]", "0x20")
+ self.bid128_to_binary32("2", "[aff52ced320af381c133189f94ecebbb]", "[b87fffff]", "0x20")
+ self.bid128_to_binary32("3", "[aff52ced320af381c133189f94ecebbb]", "[b87fffff]", "0x20")
+ self.bid128_to_binary32("4", "[aff52ced320af381c133189f94ecebbb]", "[b87fffff]", "0x20")
+ self.bid128_to_binary32("0", "[aff63c2f70689719f3709e8650fc2f25]", "[b8ffffff]", "0x20")
+ self.bid128_to_binary32("1", "[aff63c2f70689719f3709e8650fc2f25]", "[b9000000]", "0x20")
+ self.bid128_to_binary32("2", "[aff63c2f70689719f3709e8650fc2f25]", "[b8ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[aff63c2f70689719f3709e8650fc2f25]", "[b8ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[aff63c2f70689719f3709e8650fc2f25]", "[b8ffffff]", "0x20")
+ self.bid128_to_binary32("0", "[aff7ed09bc73747bbee89823c4535c5f]", "[ba83126e]", "0x20")
+ self.bid128_to_binary32("1", "[aff7ed09bc73747bbee89823c4535c5f]", "[ba83126e]", "0x20")
+ self.bid128_to_binary32("2", "[aff7ed09bc73747bbee89823c4535c5f]", "[ba83126d]", "0x20")
+ self.bid128_to_binary32("3", "[aff7ed09bc73747bbee89823c4535c5f]", "[ba83126d]", "0x20")
+ self.bid128_to_binary32("4", "[aff7ed09bc73747bbee89823c4535c5f]", "[ba83126e]", "0x20")
+ self.bid128_to_binary32("0", "[aff9ed09bdf4a418b67aa64f2aea9a7f]", "[bc23d70a]", "0x20")
+ self.bid128_to_binary32("1", "[aff9ed09bdf4a418b67aa64f2aea9a7f]", "[bc23d70a]", "0x20")
+ self.bid128_to_binary32("2", "[aff9ed09bdf4a418b67aa64f2aea9a7f]", "[bc23d709]", "0x20")
+ self.bid128_to_binary32("3", "[aff9ed09bdf4a418b67aa64f2aea9a7f]", "[bc23d709]", "0x20")
+ self.bid128_to_binary32("4", "[aff9ed09bdf4a418b67aa64f2aea9a7f]", "[bc23d70a]", "0x20")
+ self.bid128_to_binary32("0", "[affa9a130b963a6c115c3c7f3fffffff]", "[bd000000]", "0x20")
+ self.bid128_to_binary32("1", "[affa9a130b963a6c115c3c7f3fffffff]", "[bd000000]", "0x20")
+ self.bid128_to_binary32("2", "[affa9a130b963a6c115c3c7f3fffffff]", "[bcffffff]", "0x20")
+ self.bid128_to_binary32("3", "[affa9a130b963a6c115c3c7f3fffffff]", "[bcffffff]", "0x20")
+ self.bid128_to_binary32("4", "[affa9a130b963a6c115c3c7f3fffffff]", "[bd000000]", "0x20")
+ self.bid128_to_binary32("0", "[affc1ed09bead87c0378d8e63fffffff]", "[bd800000]", "0x20")
+ self.bid128_to_binary32("1", "[affc1ed09bead87c0378d8e63fffffff]", "[bd800000]", "0x20")
+ self.bid128_to_binary32("2", "[affc1ed09bead87c0378d8e63fffffff]", "[bd7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[affc1ed09bead87c0378d8e63fffffff]", "[bd7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[affc1ed09bead87c0378d8e63fffffff]", "[bd800000]", "0x20")
+ self.bid128_to_binary32("0", "[affded09bead87c0378d8e63ffffffff]", "[bf800000]", "0x20")
+ self.bid128_to_binary32("1", "[affded09bead87c0378d8e63ffffffff]", "[bf800000]", "0x20")
+ self.bid128_to_binary32("2", "[affded09bead87c0378d8e63ffffffff]", "[bf7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[affded09bead87c0378d8e63ffffffff]", "[bf7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[affded09bead87c0378d8e63ffffffff]", "[bf800000]", "0x20")
+ self.bid128_to_binary32("0", "[afffed09bead87c0378d8e63ffffffff]", "[c1200000]", "0x20")
+ self.bid128_to_binary32("1", "[afffed09bead87c0378d8e63ffffffff]", "[c1200000]", "0x20")
+ self.bid128_to_binary32("2", "[afffed09bead87c0378d8e63ffffffff]", "[c11fffff]", "0x20")
+ self.bid128_to_binary32("3", "[afffed09bead87c0378d8e63ffffffff]", "[c11fffff]", "0x20")
+ self.bid128_to_binary32("4", "[afffed09bead87c0378d8e63ffffffff]", "[c1200000]", "0x20")
+ self.bid128_to_binary32("0", "[b0009dc5ada82b70b59df01fffffffff]", "[c2000000]", "0x20")
+ self.bid128_to_binary32("1", "[b0009dc5ada82b70b59df01fffffffff]", "[c2000000]", "0x20")
+ self.bid128_to_binary32("2", "[b0009dc5ada82b70b59df01fffffffff]", "[c1ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b0009dc5ada82b70b59df01fffffffff]", "[c1ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b0009dc5ada82b70b59df01fffffffff]", "[c2000000]", "0x20")
+ self.bid128_to_binary32("0", "[b0021f8def8808b02452c99fffffffff]", "[c2800000]", "0x20")
+ self.bid128_to_binary32("1", "[b0021f8def8808b02452c99fffffffff]", "[c2800000]", "0x20")
+ self.bid128_to_binary32("2", "[b0021f8def8808b02452c99fffffffff]", "[c27fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b0021f8def8808b02452c99fffffffff]", "[c27fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b0021f8def8808b02452c99fffffffff]", "[c2800000]", "0x20")
+ self.bid128_to_binary32("0", "[b003ed09bead87c0378d8e63ffffffff]", "[c47a0000]", "0x20")
+ self.bid128_to_binary32("1", "[b003ed09bead87c0378d8e63ffffffff]", "[c47a0000]", "0x20")
+ self.bid128_to_binary32("2", "[b003ed09bead87c0378d8e63ffffffff]", "[c479ffff]", "0x20")
+ self.bid128_to_binary32("3", "[b003ed09bead87c0378d8e63ffffffff]", "[c479ffff]", "0x20")
+ self.bid128_to_binary32("4", "[b003ed09bead87c0378d8e63ffffffff]", "[c47a0000]", "0x20")
+ self.bid128_to_binary32("0", "[b00593e5939a08ce9dbd47ffffffffff]", "[c6000000]", "0x20")
+ self.bid128_to_binary32("1", "[b00593e5939a08ce9dbd47ffffffffff]", "[c6000000]", "0x20")
+ self.bid128_to_binary32("2", "[b00593e5939a08ce9dbd47ffffffffff]", "[c5ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b00593e5939a08ce9dbd47ffffffffff]", "[c5ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b00593e5939a08ce9dbd47ffffffffff]", "[c6000000]", "0x20")
+ self.bid128_to_binary32("0", "[b00650c783eb9b5c85f2a7ffffffffff]", "[c6800000]", "0x20")
+ self.bid128_to_binary32("1", "[b00650c783eb9b5c85f2a7ffffffffff]", "[c6800000]", "0x20")
+ self.bid128_to_binary32("2", "[b00650c783eb9b5c85f2a7ffffffffff]", "[c67fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b00650c783eb9b5c85f2a7ffffffffff]", "[c67fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b00650c783eb9b5c85f2a7ffffffffff]", "[c6800000]", "0x20")
+ self.bid128_to_binary32("0", "[b0081027e72f1f12813087ffffffffff]", "[c7000000]", "0x20")
+ self.bid128_to_binary32("1", "[b0081027e72f1f12813087ffffffffff]", "[c7000000]", "0x20")
+ self.bid128_to_binary32("2", "[b0081027e72f1f12813087ffffffffff]", "[c6ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b0081027e72f1f12813087ffffffffff]", "[c6ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b0081027e72f1f12813087ffffffffff]", "[c7000000]", "0x20")
+ self.bid128_to_binary32("0", "[b009ed09bead87c0378d8e63ffffffff]", "[c9742400]", "0x20")
+ self.bid128_to_binary32("1", "[b009ed09bead87c0378d8e63ffffffff]", "[c9742400]", "0x20")
+ self.bid128_to_binary32("2", "[b009ed09bead87c0378d8e63ffffffff]", "[c97423ff]", "0x20")
+ self.bid128_to_binary32("3", "[b009ed09bead87c0378d8e63ffffffff]", "[c97423ff]", "0x20")
+ self.bid128_to_binary32("4", "[b009ed09bead87c0378d8e63ffffffff]", "[c9742400]", "0x20")
+ self.bid128_to_binary32("0", "[b00acecb8f27f4200f39ffffffffffff]", "[ca800000]", "0x20")
+ self.bid128_to_binary32("1", "[b00acecb8f27f4200f39ffffffffffff]", "[ca800000]", "0x20")
+ self.bid128_to_binary32("2", "[b00acecb8f27f4200f39ffffffffffff]", "[ca7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b00acecb8f27f4200f39ffffffffffff]", "[ca7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b00acecb8f27f4200f39ffffffffffff]", "[ca800000]", "0x20")
+ self.bid128_to_binary32("0", "[b00c295be96e64066971ffffffffffff]", "[cb000000]", "0x20")
+ self.bid128_to_binary32("1", "[b00c295be96e64066971ffffffffffff]", "[cb000000]", "0x20")
+ self.bid128_to_binary32("2", "[b00c295be96e64066971ffffffffffff]", "[caffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b00c295be96e64066971ffffffffffff]", "[caffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b00c295be96e64066971ffffffffffff]", "[cb000000]", "0x20")
+ self.bid128_to_binary32("0", "[b00ded09bead87c0378d8e63ffffffff]", "[ccbebc20]", "0x20")
+ self.bid128_to_binary32("1", "[b00ded09bead87c0378d8e63ffffffff]", "[ccbebc20]", "0x20")
+ self.bid128_to_binary32("2", "[b00ded09bead87c0378d8e63ffffffff]", "[ccbebc1f]", "0x20")
+ self.bid128_to_binary32("3", "[b00ded09bead87c0378d8e63ffffffff]", "[ccbebc1f]", "0x20")
+ self.bid128_to_binary32("4", "[b00ded09bead87c0378d8e63ffffffff]", "[ccbebc20]", "0x20")
+ self.bid128_to_binary32("0", "[b00fed09bead87c0378d8e63ffffffff]", "[ce6e6b28]", "0x20")
+ self.bid128_to_binary32("1", "[b00fed09bead87c0378d8e63ffffffff]", "[ce6e6b28]", "0x20")
+ self.bid128_to_binary32("2", "[b00fed09bead87c0378d8e63ffffffff]", "[ce6e6b27]", "0x20")
+ self.bid128_to_binary32("3", "[b00fed09bead87c0378d8e63ffffffff]", "[ce6e6b27]", "0x20")
+ self.bid128_to_binary32("4", "[b00fed09bead87c0378d8e63ffffffff]", "[ce6e6b28]", "0x20")
+ self.bid128_to_binary32("0", "[b01069e10de76676d07fffffffffffff]", "[cf000000]", "0x20")
+ self.bid128_to_binary32("1", "[b01069e10de76676d07fffffffffffff]", "[cf000000]", "0x20")
+ self.bid128_to_binary32("2", "[b01069e10de76676d07fffffffffffff]", "[ceffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b01069e10de76676d07fffffffffffff]", "[ceffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b01069e10de76676d07fffffffffffff]", "[cf000000]", "0x20")
+ self.bid128_to_binary32("0", "[b012152d02c7e14af67fffffffffffff]", "[cf800000]", "0x20")
+ self.bid128_to_binary32("1", "[b012152d02c7e14af67fffffffffffff]", "[cf800000]", "0x20")
+ self.bid128_to_binary32("2", "[b012152d02c7e14af67fffffffffffff]", "[cf7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b012152d02c7e14af67fffffffffffff]", "[cf7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b012152d02c7e14af67fffffffffffff]", "[cf800000]", "0x20")
+ self.bid128_to_binary32("0", "[b013ed09be041fa9f88336afffffffff]", "[d1ba43b7]", "0x20")
+ self.bid128_to_binary32("1", "[b013ed09be041fa9f88336afffffffff]", "[d1ba43b7]", "0x20")
+ self.bid128_to_binary32("2", "[b013ed09be041fa9f88336afffffffff]", "[d1ba43b6]", "0x20")
+ self.bid128_to_binary32("3", "[b013ed09be041fa9f88336afffffffff]", "[d1ba43b6]", "0x20")
+ self.bid128_to_binary32("4", "[b013ed09be041fa9f88336afffffffff]", "[d1ba43b7]", "0x20")
+ self.bid128_to_binary32("0", "[b0150f0cf064dd591fffffffffffffff]", "[d3000000]", "0x20")
+ self.bid128_to_binary32("1", "[b0150f0cf064dd591fffffffffffffff]", "[d3000000]", "0x20")
+ self.bid128_to_binary32("2", "[b0150f0cf064dd591fffffffffffffff]", "[d2ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b0150f0cf064dd591fffffffffffffff]", "[d2ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b0150f0cf064dd591fffffffffffffff]", "[d3000000]", "0x20")
+ self.bid128_to_binary32("0", "[b0163635c9adc5de9fffffffffffffff]", "[d3800000]", "0x20")
+ self.bid128_to_binary32("1", "[b0163635c9adc5de9fffffffffffffff]", "[d3800000]", "0x20")
+ self.bid128_to_binary32("2", "[b0163635c9adc5de9fffffffffffffff]", "[d37fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b0163635c9adc5de9fffffffffffffff]", "[d37fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b0163635c9adc5de9fffffffffffffff]", "[d3800000]", "0x20")
+ self.bid128_to_binary32("0", "[b017ed09babbddf3f3083bffffffffff]", "[d51184e6]", "0x20")
+ self.bid128_to_binary32("1", "[b017ed09babbddf3f3083bffffffffff]", "[d51184e6]", "0x20")
+ self.bid128_to_binary32("2", "[b017ed09babbddf3f3083bffffffffff]", "[d51184e5]", "0x20")
+ self.bid128_to_binary32("3", "[b017ed09babbddf3f3083bffffffffff]", "[d51184e5]", "0x20")
+ self.bid128_to_binary32("4", "[b017ed09babbddf3f3083bffffffffff]", "[d51184e6]", "0x20")
+ self.bid128_to_binary32("0", "[b019ed09bd71c1a309b9c3ffffffffff]", "[d6b5e620]", "0x20")
+ self.bid128_to_binary32("1", "[b019ed09bd71c1a309b9c3ffffffffff]", "[d6b5e621]", "0x20")
+ self.bid128_to_binary32("2", "[b019ed09bd71c1a309b9c3ffffffffff]", "[d6b5e620]", "0x20")
+ self.bid128_to_binary32("3", "[b019ed09bd71c1a309b9c3ffffffffff]", "[d6b5e620]", "0x20")
+ self.bid128_to_binary32("4", "[b019ed09bd71c1a309b9c3ffffffffff]", "[d6b5e620]", "0x20")
+ self.bid128_to_binary32("0", "[b01a8ac7230489e7ffffffffffffffff]", "[d7800000]", "0x20")
+ self.bid128_to_binary32("1", "[b01a8ac7230489e7ffffffffffffffff]", "[d7800000]", "0x20")
+ self.bid128_to_binary32("2", "[b01a8ac7230489e7ffffffffffffffff]", "[d77fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b01a8ac7230489e7ffffffffffffffff]", "[d77fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b01a8ac7230489e7ffffffffffffffff]", "[d7800000]", "0x20")
+ self.bid128_to_binary32("0", "[b01c1bc16d674ec7ffffffffffffffff]", "[d8000000]", "0x20")
+ self.bid128_to_binary32("1", "[b01c1bc16d674ec7ffffffffffffffff]", "[d8000000]", "0x20")
+ self.bid128_to_binary32("2", "[b01c1bc16d674ec7ffffffffffffffff]", "[d7ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b01c1bc16d674ec7ffffffffffffffff]", "[d7ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b01c1bc16d674ec7ffffffffffffffff]", "[d8000000]", "0x20")
+ self.bid128_to_binary32("0", "[b01ded09bc16cfcb7e60ffffffffffff]", "[da0e1bc9]", "0x20")
+ self.bid128_to_binary32("1", "[b01ded09bc16cfcb7e60ffffffffffff]", "[da0e1bc9]", "0x20")
+ self.bid128_to_binary32("2", "[b01ded09bc16cfcb7e60ffffffffffff]", "[da0e1bc8]", "0x20")
+ self.bid128_to_binary32("3", "[b01ded09bc16cfcb7e60ffffffffffff]", "[da0e1bc8]", "0x20")
+ self.bid128_to_binary32("4", "[b01ded09bc16cfcb7e60ffffffffffff]", "[da0e1bc9]", "0x20")
+ self.bid128_to_binary32("0", "[b01f6345785d89ffffffffffffffffff]", "[db800000]", "0x20")
+ self.bid128_to_binary32("1", "[b01f6345785d89ffffffffffffffffff]", "[db800000]", "0x20")
+ self.bid128_to_binary32("2", "[b01f6345785d89ffffffffffffffffff]", "[db7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b01f6345785d89ffffffffffffffffff]", "[db7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b01f6345785d89ffffffffffffffffff]", "[db800000]", "0x20")
+ self.bid128_to_binary32("0", "[b020470de4df81ffffffffffffffffff]", "[dc000000]", "0x20")
+ self.bid128_to_binary32("1", "[b020470de4df81ffffffffffffffffff]", "[dc000000]", "0x20")
+ self.bid128_to_binary32("2", "[b020470de4df81ffffffffffffffffff]", "[dbffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b020470de4df81ffffffffffffffffff]", "[dbffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b020470de4df81ffffffffffffffffff]", "[dc000000]", "0x20")
+ self.bid128_to_binary32("0", "[b0220e35fa9319ffffffffffffffffff]", "[dc800000]", "0x20")
+ self.bid128_to_binary32("1", "[b0220e35fa9319ffffffffffffffffff]", "[dc800000]", "0x20")
+ self.bid128_to_binary32("2", "[b0220e35fa9319ffffffffffffffffff]", "[dc7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b0220e35fa9319ffffffffffffffffff]", "[dc7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b0220e35fa9319ffffffffffffffffff]", "[dc800000]", "0x20")
+ self.bid128_to_binary32("0", "[b023ed09be9d67d4a37fffffffffffff]", "[df0ac723]", "0x20")
+ self.bid128_to_binary32("1", "[b023ed09be9d67d4a37fffffffffffff]", "[df0ac723]", "0x20")
+ self.bid128_to_binary32("2", "[b023ed09be9d67d4a37fffffffffffff]", "[df0ac722]", "0x20")
+ self.bid128_to_binary32("3", "[b023ed09be9d67d4a37fffffffffffff]", "[df0ac722]", "0x20")
+ self.bid128_to_binary32("4", "[b023ed09be9d67d4a37fffffffffffff]", "[df0ac723]", "0x20")
+ self.bid128_to_binary32("0", "[b024b5e620f47fffffffffffffffffff]", "[e0000000]", "0x20")
+ self.bid128_to_binary32("1", "[b024b5e620f47fffffffffffffffffff]", "[e0000000]", "0x20")
+ self.bid128_to_binary32("2", "[b024b5e620f47fffffffffffffffffff]", "[dfffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b024b5e620f47fffffffffffffffffff]", "[dfffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b024b5e620f47fffffffffffffffffff]", "[e0000000]", "0x20")
+ self.bid128_to_binary32("0", "[b026246139ca7fffffffffffffffffff]", "[e0800000]", "0x20")
+ self.bid128_to_binary32("1", "[b026246139ca7fffffffffffffffffff]", "[e0800000]", "0x20")
+ self.bid128_to_binary32("2", "[b026246139ca7fffffffffffffffffff]", "[e07fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b026246139ca7fffffffffffffffffff]", "[e07fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b026246139ca7fffffffffffffffffff]", "[e0800000]", "0x20")
+ self.bid128_to_binary32("0", "[b027ed09bd0d3a58efffffffffffffff]", "[e258d726]", "0x20")
+ self.bid128_to_binary32("1", "[b027ed09bd0d3a58efffffffffffffff]", "[e258d726]", "0x20")
+ self.bid128_to_binary32("2", "[b027ed09bd0d3a58efffffffffffffff]", "[e258d725]", "0x20")
+ self.bid128_to_binary32("3", "[b027ed09bd0d3a58efffffffffffffff]", "[e258d725]", "0x20")
+ self.bid128_to_binary32("4", "[b027ed09bd0d3a58efffffffffffffff]", "[e258d726]", "0x20")
+ self.bid128_to_binary32("0", "[b029d1a94a1fffffffffffffffffffff]", "[e4000000]", "0x20")
+ self.bid128_to_binary32("1", "[b029d1a94a1fffffffffffffffffffff]", "[e4000000]", "0x20")
+ self.bid128_to_binary32("2", "[b029d1a94a1fffffffffffffffffffff]", "[e3ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b029d1a94a1fffffffffffffffffffff]", "[e3ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b029d1a94a1fffffffffffffffffffff]", "[e4000000]", "0x20")
+ self.bid128_to_binary32("0", "[b02a5d21db9fffffffffffffffffffff]", "[e4800000]", "0x20")
+ self.bid128_to_binary32("1", "[b02a5d21db9fffffffffffffffffffff]", "[e4800000]", "0x20")
+ self.bid128_to_binary32("2", "[b02a5d21db9fffffffffffffffffffff]", "[e47fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b02a5d21db9fffffffffffffffffffff]", "[e47fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b02a5d21db9fffffffffffffffffffff]", "[e4800000]", "0x20")
+ self.bid128_to_binary32("0", "[b02c12a05f1fffffffffffffffffffff]", "[e5000000]", "0x20")
+ self.bid128_to_binary32("1", "[b02c12a05f1fffffffffffffffffffff]", "[e5000000]", "0x20")
+ self.bid128_to_binary32("2", "[b02c12a05f1fffffffffffffffffffff]", "[e4ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b02c12a05f1fffffffffffffffffffff]", "[e4ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b02c12a05f1fffffffffffffffffffff]", "[e5000000]", "0x20")
+ self.bid128_to_binary32("0", "[b02ded09bccc090bffffffffffffffff]", "[e753c21b]", "0x20")
+ self.bid128_to_binary32("1", "[b02ded09bccc090bffffffffffffffff]", "[e753c21b]", "0x20")
+ self.bid128_to_binary32("2", "[b02ded09bccc090bffffffffffffffff]", "[e753c21a]", "0x20")
+ self.bid128_to_binary32("3", "[b02ded09bccc090bffffffffffffffff]", "[e753c21a]", "0x20")
+ self.bid128_to_binary32("4", "[b02ded09bccc090bffffffffffffffff]", "[e753c21b]", "0x20")
+ self.bid128_to_binary32("0", "[b02eee6b27ffffffffffffffffffffff]", "[e8800000]", "0x20")
+ self.bid128_to_binary32("1", "[b02eee6b27ffffffffffffffffffffff]", "[e8800000]", "0x20")
+ self.bid128_to_binary32("2", "[b02eee6b27ffffffffffffffffffffff]", "[e87fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b02eee6b27ffffffffffffffffffffff]", "[e87fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b02eee6b27ffffffffffffffffffffff]", "[e8800000]", "0x20")
+ self.bid128_to_binary32("0", "[b03000000000000000000000004d7c6d]", "[bd500000]", "0x00")
+ self.bid128_to_binary32("1", "[b03000000000000000000000004d7c6d]", "[bd500000]", "0x00")
+ self.bid128_to_binary32("2", "[b03000000000000000000000004d7c6d]", "[bd500000]", "0x00")
+ self.bid128_to_binary32("3", "[b03000000000000000000000004d7c6d]", "[bd500000]", "0x00")
+ self.bid128_to_binary32("4", "[b03000000000000000000000004d7c6d]", "[bd500000]", "0x00")
+ self.bid128_to_binary32("0", "[b0302faf07ffffffffffffffffffffff]", "[e9000000]", "0x20")
+ self.bid128_to_binary32("1", "[b0302faf07ffffffffffffffffffffff]", "[e9000000]", "0x20")
+ self.bid128_to_binary32("2", "[b0302faf07ffffffffffffffffffffff]", "[e8ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b0302faf07ffffffffffffffffffffff]", "[e8ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b0302faf07ffffffffffffffffffffff]", "[e9000000]", "0x20")
+ self.bid128_to_binary32("0", "[b031ed09b98991ffffffffffffffffff]", "[eaa56fa4]", "0x20")
+ self.bid128_to_binary32("1", "[b031ed09b98991ffffffffffffffffff]", "[eaa56fa4]", "0x20")
+ self.bid128_to_binary32("2", "[b031ed09b98991ffffffffffffffffff]", "[eaa56fa3]", "0x20")
+ self.bid128_to_binary32("3", "[b031ed09b98991ffffffffffffffffff]", "[eaa56fa3]", "0x20")
+ self.bid128_to_binary32("4", "[b031ed09b98991ffffffffffffffffff]", "[eaa56fa4]", "0x20")
+ self.bid128_to_binary32("0", "[b033ed09be4e45ffffffffffffffffff]", "[ec4ecb8f]", "0x20")
+ self.bid128_to_binary32("1", "[b033ed09be4e45ffffffffffffffffff]", "[ec4ecb8f]", "0x20")
+ self.bid128_to_binary32("2", "[b033ed09be4e45ffffffffffffffffff]", "[ec4ecb8e]", "0x20")
+ self.bid128_to_binary32("3", "[b033ed09be4e45ffffffffffffffffff]", "[ec4ecb8e]", "0x20")
+ self.bid128_to_binary32("4", "[b033ed09be4e45ffffffffffffffffff]", "[ec4ecb8f]", "0x20")
+ self.bid128_to_binary32("0", "[b0347a11ffffffffffffffffffffffff]", "[ed000000]", "0x20")
+ self.bid128_to_binary32("1", "[b0347a11ffffffffffffffffffffffff]", "[ed000000]", "0x20")
+ self.bid128_to_binary32("2", "[b0347a11ffffffffffffffffffffffff]", "[ecffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b0347a11ffffffffffffffffffffffff]", "[ecffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b0347a11ffffffffffffffffffffffff]", "[ed000000]", "0x20")
+ self.bid128_to_binary32("0", "[b0361869ffffffffffffffffffffffff]", "[ed800000]", "0x20")
+ self.bid128_to_binary32("1", "[b0361869ffffffffffffffffffffffff]", "[ed800000]", "0x20")
+ self.bid128_to_binary32("2", "[b0361869ffffffffffffffffffffffff]", "[ed7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b0361869ffffffffffffffffffffffff]", "[ed7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b0361869ffffffffffffffffffffffff]", "[ed800000]", "0x20")
+ self.bid128_to_binary32("0", "[b037ed09bc1cbfffffffffffffffffff]", "[efa18f07]", "0x20")
+ self.bid128_to_binary32("1", "[b037ed09bc1cbfffffffffffffffffff]", "[efa18f07]", "0x20")
+ self.bid128_to_binary32("2", "[b037ed09bc1cbfffffffffffffffffff]", "[efa18f06]", "0x20")
+ self.bid128_to_binary32("3", "[b037ed09bc1cbfffffffffffffffffff]", "[efa18f06]", "0x20")
+ self.bid128_to_binary32("4", "[b037ed09bc1cbfffffffffffffffffff]", "[efa18f07]", "0x20")
+ self.bid128_to_binary32("0", "[b039387fffffffffffffffffffffffff]", "[f1000000]", "0x20")
+ self.bid128_to_binary32("1", "[b039387fffffffffffffffffffffffff]", "[f1000000]", "0x20")
+ self.bid128_to_binary32("2", "[b039387fffffffffffffffffffffffff]", "[f0ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b039387fffffffffffffffffffffffff]", "[f0ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b039387fffffffffffffffffffffffff]", "[f1000000]", "0x20")
+ self.bid128_to_binary32("0", "[b03a3e7fffffffffffffffffffffffff]", "[f1800000]", "0x20")
+ self.bid128_to_binary32("1", "[b03a3e7fffffffffffffffffffffffff]", "[f1800000]", "0x20")
+ self.bid128_to_binary32("2", "[b03a3e7fffffffffffffffffffffffff]", "[f17fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b03a3e7fffffffffffffffffffffffff]", "[f17fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b03a3e7fffffffffffffffffffffffff]", "[f1800000]", "0x20")
+ self.bid128_to_binary32("0", "[b03c0c7fffffffffffffffffffffffff]", "[f2000000]", "0x20")
+ self.bid128_to_binary32("1", "[b03c0c7fffffffffffffffffffffffff]", "[f2000000]", "0x20")
+ self.bid128_to_binary32("2", "[b03c0c7fffffffffffffffffffffffff]", "[f1ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b03c0c7fffffffffffffffffffffffff]", "[f1ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b03c0c7fffffffffffffffffffffffff]", "[f2000000]", "0x20")
+ self.bid128_to_binary32("0", "[b03ded09be2fffffffffffffffffffff]", "[f49dc5ad]", "0x20")
+ self.bid128_to_binary32("1", "[b03ded09be2fffffffffffffffffffff]", "[f49dc5ae]", "0x20")
+ self.bid128_to_binary32("2", "[b03ded09be2fffffffffffffffffffff]", "[f49dc5ad]", "0x20")
+ self.bid128_to_binary32("3", "[b03ded09be2fffffffffffffffffffff]", "[f49dc5ad]", "0x20")
+ self.bid128_to_binary32("4", "[b03ded09be2fffffffffffffffffffff]", "[f49dc5ad]", "0x20")
+ self.bid128_to_binary32("0", "[b03e000000000000000000000000000f]", "[bfc00000]", "0x00")
+ self.bid128_to_binary32("1", "[b03e000000000000000000000000000f]", "[bfc00000]", "0x00")
+ self.bid128_to_binary32("2", "[b03e000000000000000000000000000f]", "[bfc00000]", "0x00")
+ self.bid128_to_binary32("3", "[b03e000000000000000000000000000f]", "[bfc00000]", "0x00")
+ self.bid128_to_binary32("4", "[b03e000000000000000000000000000f]", "[bfc00000]", "0x00")
+ self.bid128_to_binary32("0", "[b03e9fffffffffffffffffffffffffff]", "[f5800000]", "0x20")
+ self.bid128_to_binary32("1", "[b03e9fffffffffffffffffffffffffff]", "[f5800000]", "0x20")
+ self.bid128_to_binary32("2", "[b03e9fffffffffffffffffffffffffff]", "[f57fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b03e9fffffffffffffffffffffffffff]", "[f57fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b03e9fffffffffffffffffffffffffff]", "[f5800000]", "0x20")
+ self.bid128_to_binary32("0", "[b0400000000000000000000000000001]", "[bf800000]", "0x00")
+ self.bid128_to_binary32("1", "[b0400000000000000000000000000001]", "[bf800000]", "0x00")
+ self.bid128_to_binary32("2", "[b0400000000000000000000000000001]", "[bf800000]", "0x00")
+ self.bid128_to_binary32("3", "[b0400000000000000000000000000001]", "[bf800000]", "0x00")
+ self.bid128_to_binary32("4", "[b0400000000000000000000000000001]", "[bf800000]", "0x00")
+ self.bid128_to_binary32("0", "[b0400000000000000000000000000040]", "[c2800000]", "0x00")
+ self.bid128_to_binary32("1", "[b0400000000000000000000000000040]", "[c2800000]", "0x00")
+ self.bid128_to_binary32("2", "[b0400000000000000000000000000040]", "[c2800000]", "0x00")
+ self.bid128_to_binary32("3", "[b0400000000000000000000000000040]", "[c2800000]", "0x00")
+ self.bid128_to_binary32("4", "[b0400000000000000000000000000040]", "[c2800000]", "0x00")
+ self.bid128_to_binary32("0", "[b04000000000000000000000000003e7]", "[c479c000]", "0x00")
+ self.bid128_to_binary32("1", "[b04000000000000000000000000003e7]", "[c479c000]", "0x00")
+ self.bid128_to_binary32("2", "[b04000000000000000000000000003e7]", "[c479c000]", "0x00")
+ self.bid128_to_binary32("3", "[b04000000000000000000000000003e7]", "[c479c000]", "0x00")
+ self.bid128_to_binary32("4", "[b04000000000000000000000000003e7]", "[c479c000]", "0x00")
+ self.bid128_to_binary32("0", "[b04000000000000000000000000003e8]", "[c47a0000]", "0x00")
+ self.bid128_to_binary32("1", "[b04000000000000000000000000003e8]", "[c47a0000]", "0x00")
+ self.bid128_to_binary32("2", "[b04000000000000000000000000003e8]", "[c47a0000]", "0x00")
+ self.bid128_to_binary32("3", "[b04000000000000000000000000003e8]", "[c47a0000]", "0x00")
+ self.bid128_to_binary32("4", "[b04000000000000000000000000003e8]", "[c47a0000]", "0x00")
+ self.bid128_to_binary32("0", "[b0401fffffffffffffffffffffffffff]", "[f6000000]", "0x20")
+ self.bid128_to_binary32("1", "[b0401fffffffffffffffffffffffffff]", "[f6000000]", "0x20")
+ self.bid128_to_binary32("2", "[b0401fffffffffffffffffffffffffff]", "[f5ffffff]", "0x20")
+ self.bid128_to_binary32("3", "[b0401fffffffffffffffffffffffffff]", "[f5ffffff]", "0x20")
+ self.bid128_to_binary32("4", "[b0401fffffffffffffffffffffffffff]", "[f6000000]", "0x20")
+ self.bid128_to_binary32("0", "[b041ed09bbffffffffffffffffffffff]", "[f7f684de]", "0x20")
+ self.bid128_to_binary32("1", "[b041ed09bbffffffffffffffffffffff]", "[f7f684de]", "0x20")
+ self.bid128_to_binary32("2", "[b041ed09bbffffffffffffffffffffff]", "[f7f684dd]", "0x20")
+ self.bid128_to_binary32("3", "[b041ed09bbffffffffffffffffffffff]", "[f7f684dd]", "0x20")
+ self.bid128_to_binary32("4", "[b041ed09bbffffffffffffffffffffff]", "[f7f684de]", "0x20")
+ self.bid128_to_binary32("0", "[b0439999973333333333333333333333]", "[f97ffffe]", "0x20")
+ self.bid128_to_binary32("1", "[b0439999973333333333333333333333]", "[f97fffff]", "0x20")
+ self.bid128_to_binary32("2", "[b0439999973333333333333333333333]", "[f97ffffe]", "0x20")
+ self.bid128_to_binary32("3", "[b0439999973333333333333333333333]", "[f97ffffe]", "0x20")
+ self.bid128_to_binary32("4", "[b0439999973333333333333333333333]", "[f97ffffe]", "0x20")
+ self.bid128_to_binary32("0", "[b04451eb83d70a3d70a3d70a3d70a3d7]", "[f9fffffc]", "0x20")
+ self.bid128_to_binary32("1", "[b04451eb83d70a3d70a3d70a3d70a3d7]", "[f9fffffc]", "0x20")
+ self.bid128_to_binary32("2", "[b04451eb83d70a3d70a3d70a3d70a3d7]", "[f9fffffb]", "0x20")
+ self.bid128_to_binary32("3", "[b04451eb83d70a3d70a3d70a3d70a3d7]", "[f9fffffb]", "0x20")
+ self.bid128_to_binary32("4", "[b04451eb83d70a3d70a3d70a3d70a3d7]", "[f9fffffc]", "0x20")
+ self.bid128_to_binary32("0", "[b044a3d6ffae147ae147ae147ae147ae]", "[fa7fffef]", "0x20")
+ self.bid128_to_binary32("1", "[b044a3d6ffae147ae147ae147ae147ae]", "[fa7ffff0]", "0x20")
+ self.bid128_to_binary32("2", "[b044a3d6ffae147ae147ae147ae147ae]", "[fa7fffef]", "0x20")
+ self.bid128_to_binary32("3", "[b044a3d6ffae147ae147ae147ae147ae]", "[fa7fffef]", "0x20")
+ self.bid128_to_binary32("4", "[b044a3d6ffae147ae147ae147ae147ae]", "[fa7fffef]", "0x20")
+ self.bid128_to_binary32("0", "[b047ed0920c49ba5e353f7ced916872b]", "[fcf0bd75]", "0x20")
+ self.bid128_to_binary32("1", "[b047ed0920c49ba5e353f7ced916872b]", "[fcf0bd75]", "0x20")
+ self.bid128_to_binary32("2", "[b047ed0920c49ba5e353f7ced916872b]", "[fcf0bd74]", "0x20")
+ self.bid128_to_binary32("3", "[b047ed0920c49ba5e353f7ced916872b]", "[fcf0bd74]", "0x20")
+ self.bid128_to_binary32("4", "[b047ed0920c49ba5e353f7ced916872b]", "[fcf0bd75]", "0x20")
+ self.bid128_to_binary32("0", "[b048d1b66cf41f212d77318fc504816f]", "[fdffff30]", "0x20")
+ self.bid128_to_binary32("1", "[b048d1b66cf41f212d77318fc504816f]", "[fdffff30]", "0x20")
+ self.bid128_to_binary32("2", "[b048d1b66cf41f212d77318fc504816f]", "[fdffff2f]", "0x20")
+ self.bid128_to_binary32("3", "[b048d1b66cf41f212d77318fc504816f]", "[fdffff2f]", "0x20")
+ self.bid128_to_binary32("4", "[b048d1b66cf41f212d77318fc504816f]", "[fdffff30]", "0x20")
+ self.bid128_to_binary32("0", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("1", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("2", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "[ff7ffffe]", "0x20")
+ self.bid128_to_binary32("3", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "[ff7ffffe]", "0x20")
+ self.bid128_to_binary32("4", "[b04aa7c5ab9f559b3d07c84b5dcc63f1]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("0", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("1", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("2", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b04aa7c5ab9f559b3d07c84b5dcc63f2]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("0", "[b04aa7c5ac471b4784230fcf80dc3372]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("1", "[b04aa7c5ac471b4784230fcf80dc3372]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("2", "[b04aa7c5ac471b4784230fcf80dc3372]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("3", "[b04aa7c5ac471b4784230fcf80dc3372]", "[ff7fffff]", "0x20")
+ self.bid128_to_binary32("4", "[b04aa7c5ac471b4784230fcf80dc3372]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("0", "[b04aa7c5ac471b4784230fcf80dc3373]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("1", "[b04aa7c5ac471b4784230fcf80dc3373]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("2", "[b04aa7c5ac471b4784230fcf80dc3373]", "[ff7fffff]", "0x28")
+ self.bid128_to_binary32("3", "[b04aa7c5ac471b4784230fcf80dc3373]", "[ff7fffff]", "0x28")
+ self.bid128_to_binary32("4", "[b04aa7c5ac471b4784230fcf80dc3373]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("0", "[dfffed09bead87c0378d8e63ffffffff]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("1", "[dfffed09bead87c0378d8e63ffffffff]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("2", "[dfffed09bead87c0378d8e63ffffffff]", "[ff7fffff]", "0x28")
+ self.bid128_to_binary32("3", "[dfffed09bead87c0378d8e63ffffffff]", "[ff7fffff]", "0x28")
+ self.bid128_to_binary32("4", "[dfffed09bead87c0378d8e63ffffffff]", "[ff800000]", "0x28")
+ self.bid128_to_binary32("0", "[f8000000000000000000000000000000]", "[ff800000]", "0x00")
+ self.bid128_to_binary32("1", "[f8000000000000000000000000000000]", "[ff800000]", "0x00")
+ self.bid128_to_binary32("2", "[f8000000000000000000000000000000]", "[ff800000]", "0x00")
+ self.bid128_to_binary32("3", "[f8000000000000000000000000000000]", "[ff800000]", "0x00")
+ self.bid128_to_binary32("4", "[f8000000000000000000000000000000]", "[ff800000]", "0x00")
+ self.bid128_to_binary32("1", "[304aa7c5ac471b4784230fcf80dc3373]", "[7f7fffff]", "0x28")
+ }
+
+ private func bid128_to_binary32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseFloat(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Float(arg0, rounding: rounding, status: &status)
+ self.assertBinaryFloatingPoint(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_binary64() {
+ self.bid128_to_binary64("0", "[00000000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[0000000000000000,0000000000000001]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[0001ED09BEAD87C0,378D8E6400000000]", "[0000000000000000]", "00")
+ self.bid128_to_binary64("0", "[00420000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[00440000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[09318F1040081B28,879E2C8FEF29B0EE]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[09318F105A2F47BD,C31E591A07AD6A08]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[09329FA0199CD7A9,CFD8DE9FF943E05F]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[09329FA02412E97F,1AD8F070CFDEF736]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[0932EF70266B437E,B7C54DEFF5E5D08F]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[09333F403339AF53,9FB1BD3FF287C0BF]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[09333F404825D2FE,35B1E0E19FBDEE6D]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[09342FE33AE240B2,F18DDC63312DF683]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[0938A374D6A4B3E1,165F193744E1274B]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[0938A374E15B0BC5,BD48A44A8F3A5536]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[094EE0A71BA91360,ABF94FA41433D713]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[094EE0A72A621FA8,E5BC5FB640B5EF2C]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[095059DC775A7310,5BE4F315B37BF945]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[095086CAAA323ED3,9A6262FC0C1F1AA5]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[0950B3B8EEB4E620,B7C9E62B66F7F289]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[095208FC71BF1541,4E8F17AA6735460B]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[095211F8E37E2A82,9D1E2F54CE6A8C16]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[09521AF5553D3FC3,EBAD46FF359FD221]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[09565C048CC36903,2471962D169C66D7]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[09565C0492CB3656,62321FD4AF9992B5]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[2D75307DD0849AC8,55240FC6ECDB749F]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[2D75307DE4791FA8,7096112138B357B6]", "[0000000000000000]", "30")
+ self.bid128_to_binary64("0", "[2D7679CBED01D783,55419FE92B8AFB73]", "[0000000000000001]", "30")
+ self.bid128_to_binary64("0", "[2D7679CBF4FD3FDC,F9D5A073B047BCAF]", "[0000000000000001]", "30")
+ self.bid128_to_binary64("0", "[2d76f397da03af06aa833fd25715f6e5]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("0", "[2d76f397da03af06aa833fd25715f6e6]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("0", "[2D76F397DA03AF06,AA833FD25715F6E6]", "[0000000000000001]", "30")
+ self.bid128_to_binary64("0", "[2D76F397E9FA7FB9,F3AB40E7608F795E]", "[0000000000000001]", "30")
+ self.bid128_to_binary64("0", "[2D776D63C7058689,FFC4DFBB82A0F259]", "[0000000000000002]", "30")
+ self.bid128_to_binary64("0", "[2d77c5bec99ef12ddfb88fbd71f8bdfa]", "[0000000000000002]", "0x30")
+ self.bid128_to_binary64("0", "[2D781244FD26AD20,7FFD0B2FC6880C1E]", "[0000000000000001]", "30")
+ self.bid128_to_binary64("0", "[2D7C7CB83E78AB88,88745A054B4ED46D]", "[0000000000000200]", "30")
+ self.bid128_to_binary64("0", "[2D7C7CB846A51E94,7491069B54414449]", "[0000000000000200]", "30")
+ self.bid128_to_binary64("0", "[2D966DB461654176,9202D339CC6DCFB4]", "[0010000000000000]", "30")
+ self.bid128_to_binary64("0", "[2d966db4616541769502d339cc6dcfb4]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[2d966db4616541769502d339cc6dcfb5]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[2d96db68c2ca82ed2a05a67398db9f68]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[2d96db68c2ca82ed2a05a67398db9f69]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[2da92630ac048f6287df2cb40b7f0401]", "[0203fadac57f110c]", "0x20")
+ self.bid128_to_binary64("0", "[2ddc2d3560092c22ea77a519d5a60c4f]", "[073fbf19b4210b0e]", "0x20")
+ self.bid128_to_binary64("0", "[2e0e4bcc6cf90681bfd42e542f4eb115]", "[0c7b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("0", "[2e414f7670425731f028e2c9710dd856]", "[11cf7b2c3b477e51]", "0x20")
+ self.bid128_to_binary64("0", "[2e737411eeb6d0301a92be19546dfa93]", "[17020d29f29bab26]", "0x20")
+ self.bid128_to_binary64("0", "[2ea61f3cff830d1cab64c2f948cdb19f]", "[1c2f575191b2d126]", "0x20")
+ self.bid128_to_binary64("0", "[2ed869c7ac45dadef9d42298b4b58099]", "[217b6ef864390f4b]", "0x20")
+ self.bid128_to_binary64("0", "[2f0afed67151fa8e015ebb16ed8ab103]", "[26c11585c5713001]", "0x20")
+ self.bid128_to_binary64("0", "[2f3d887491f763e32d5c4ad17e56c482]", "[2bfb34276c239a8a]", "0x20")
+ self.bid128_to_binary64("0", "[2f7014d40fdec33a5fc76db14c5ed849]", "[311ddb2c49c44ad5]", "0x20")
+ self.bid128_to_binary64("0", "[2fa223345ebcedc44bdcccd817d8a88b]", "[365a16ca9a8568f8]", "0x20")
+ self.bid128_to_binary64("0", "[2FA2565C976C9CBD,FCCB24E161BF83CB]", "[3670000000000000]", "20")
+ self.bid128_to_binary64("0", "[2FA2565C9D15855B,71F049284D1CE126]", "[367000010C6F7A0B]", "20")
+ self.bid128_to_binary64("0", "[2FA359725DB272F7,F32C938586FE0F2D]", "[3690000000000000]", "20")
+ self.bid128_to_binary64("0", "[2FA359727456156D,C7C124A134738499]", "[369000010C6F7A0B]", "20")
+ self.bid128_to_binary64("0", "[2FA433D127A7913E,CAE049540772E8AD]", "[3698000000000000]", "20")
+ self.bid128_to_binary64("0", "[2FA44516DF8A16FE,63D5B71AB499363C]", "[36A0000000000000]", "20")
+ self.bid128_to_binary64("0", "[2FA44516E411377C,5B26A0ED0A7D80EB]", "[36A000010C6F7A0B]", "20")
+ self.bid128_to_binary64("0", "[2FA467A24F4F227D,95C092A80EE5D15A]", "[36A8000000000000]", "20")
+ self.bid128_to_binary64("0", "[2FA961BCCA711991,5B50764B4ABE8653]", "[3730000000000000]", "20")
+ self.bid128_to_binary64("0", "[2FA961BCE19FD468,3917B2D2213AE5FD]", "[373000010C6F7A0B]", "20")
+ self.bid128_to_binary64("0", "[2fd4e74a0c1ea3c217562af890a2d073]", "[3bb6273222ed1413]", "0x20")
+ self.bid128_to_binary64("0", "[3007ed09bead87bffaf7eb734b7a9b8a]", "[40f869fffffffffd]", "0x20")
+ self.bid128_to_binary64("0", "[303000000000000000000000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[303a0f9fffffffffffffffffffffffff]", "[4610000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[303e000000000000000000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[30400000000000000000000000000000]", "[0000000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[3040000000000000,0000000000000001]", "[3FF0000000000000]", "00")
+ self.bid128_to_binary64("0", "[30400000000000000000000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[30400000000000000000000000000040]", "[4050000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[304000000000000000000000000003e7]", "[408f380000000000]", "0x00")
+ self.bid128_to_binary64("0", "[304000000000000000000000000003e8]", "[408f400000000000]", "0x00")
+ self.bid128_to_binary64("0", "[3040000000000000,00000001ffffffff]", "[41FFFFFFFFF00000]", "00")
+ self.bid128_to_binary64("0", "[3040000000000000,0001ffffffffffff]", "[42FFFFFFFFFFFFF0]", "00")
+ self.bid128_to_binary64("0", "[3040000000000000,01ffffffffffffff]", "[4380000000000000]", "20")
+ self.bid128_to_binary64("0", "[3040000000000000,1fffffffffffffff]", "[43C0000000000000]", "20")
+ self.bid128_to_binary64("0", "[3040000000000000,3fffffffffffffff]", "[43D0000000000000]", "20")
+ self.bid128_to_binary64("0", "[3040000000000000,7fffffffffffffff]", "[43E0000000000000]", "20")
+ self.bid128_to_binary64("0", "[3040000011111111,1111111111111111]", "[45B1111111111111]", "20")
+ self.bid128_to_binary64("0", "[3040111111111111,1111111111111111]", "[46B1111111111111]", "20")
+ self.bid128_to_binary64("0", "[3041111111111111,1111111111111111]", "[46F1111111111111]", "20")
+ self.bid128_to_binary64("0", "[3041ED09BEAD87C0,378D8E6400000000]", "[0000000000000000]", "00")
+ self.bid128_to_binary64("0", "[304AA79AB92956E6,6BAF50901058E8A4]", "[47EFF7CED916872B]", "20")
+ self.bid128_to_binary64("0", "[304AFBA8826AA8EB,463497B7414A4D2B]", "[47F8000000000000]", "20")
+ self.bid128_to_binary64("0", "[304C4B7F5A5332AC,FB762D83C6C97D8D]", "[4812000000000000]", "20")
+ self.bid128_to_binary64("0", "[306c3b73c739f1beafd18640e490b087]", "[4b5f794893d283fe]", "0x20")
+ self.bid128_to_binary64("0", "[309e976386b1981708da2983b5785887]", "[50a4b7857b5b31fe]", "0x20")
+ self.bid128_to_binary64("0", "[30d17fe784b911c75e5d113136442004]", "[55eb29078ee59099]", "0x20")
+ self.bid128_to_binary64("0", "[310371e1fa71dd73b133830b14c22032]", "[5b1b0eaf54695bac]", "0x20")
+ self.bid128_to_binary64("0", "[3134b5a12930d46fd7a1c75d4d3dfd70]", "[603b79c54b2fe4ab]", "0x20")
+ self.bid128_to_binary64("0", "[31689bccaecc9bf3939b716f4f8250e4]", "[659e76173af15d37]", "0x20")
+ self.bid128_to_binary64("0", "[319b2c2da625a9e79d3715f6d9aa1f2e]", "[6ade578269e1be07]", "0x20")
+ self.bid128_to_binary64("0", "[31ccef4b9fd069e78cf022f8eda3ecc2]", "[70090276f8c0344c]", "0x20")
+ self.bid128_to_binary64("0", "[31fed38fd6dc96966ff66a2cd49c73a2]", "[7536dcc22318c27a]", "0x20")
+ self.bid128_to_binary64("0", "[322fe5c4b2a57cb2515d37f3bb2f1b60]", "[7a45b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("0", "[3266588B632391BD,FDA5E7310E66AE1C]", "[7FEFF7CED916872B]", "20")
+ self.bid128_to_binary64("0", "[326658a213cc7a4ffae03c4825156fb3]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("0", "[326658a213cc7a4ffae03c4825156fb4]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("0", "[326658a213cc7a4ffda54ce688e7efa0]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[326658a213cc7a4ffda54ce688e7efa1]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[326684F31DB2B777,FC77F359CD5BE771]", "[7FF0000000000000]", "28")
+ self.bid128_to_binary64("0", "[32678ED959182667,F567DA0D6813B653]", "[7FF0000000000000]", "28")
+ self.bid128_to_binary64("0", "[56863A99819046AF,E37FCC3111E1DF03]", "[7FF0000000000000]", "28")
+ self.bid128_to_binary64("0", "[568657FCC8B0A7A3,636DA14BFC197CFB]", "[7FF0000000000000]", "28")
+ self.bid128_to_binary64("0", "[568707F65A11F6EA,2A48E3E3F44C76F0]", "[7FF0000000000000]", "28")
+ self.bid128_to_binary64("0", "[5fffed09bead87c0378d8e63ffffffff]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[5FFFED09BEAD87C0,378D8E63FFFFFFFF]", "[7FF0000000000000]", "28")
+ self.bid128_to_binary64("0", "[6000000000000000,0000000000000000]", "[0000000000000000]", "00")
+ self.bid128_to_binary64("0", "[78000000000000000000000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[7c00000000000000,0000000000000000]", "[7FF8000000000000]", "00")
+ self.bid128_to_binary64("0", "[7c00314DC6448D93,38C15B09FFFFFFFF]", "[7FFE29B8C891B267]", "00")
+ self.bid128_to_binary64("0", "[7c00314DC6448D93,38C15B0a00000000]", "[7FF8000000000000]", "00")
+ self.bid128_to_binary64("0", "[7c00314DC6448D94,38C15B0a00000000]", "[7FF8000000000000]", "00")
+ self.bid128_to_binary64("0", "[7e00000000000000,0000000000000000]", "[7FF8000000000000]", "01")
+ self.bid128_to_binary64("0", "[7e00314DC6448D93,38C15B09FFFFFFFF]", "[7FFE29B8C891B267]", "01")
+ self.bid128_to_binary64("0", "[7e00314DC6448D93,38C15B0a00000000]", "[7FF8000000000000]", "01")
+ self.bid128_to_binary64("0", "[7e00314DC6448D94,38C15B0a00000000]", "[7FF8000000000000]", "01")
+ self.bid128_to_binary64("0", "[80000000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[80420000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[80440000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[ad76f397da03af06aa833fd25715f6e5]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("0", "[ad76f397da03af06aa833fd25715f6e6]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("0", "[ad77c5bec99ef12ddfb88fbd71f8bdfa]", "[8000000000000002]", "0x30")
+ self.bid128_to_binary64("0", "[ad966db4616541769502d339cc6dcfb4]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[ad966db4616541769502d339cc6dcfb5]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[ad96db68c2ca82ed2a05a67398db9f68]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[ad96db68c2ca82ed2a05a67398db9f69]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[ada92630ac048f6287df2cb40b7f0401]", "[8203fadac57f110c]", "0x20")
+ self.bid128_to_binary64("0", "[addc2d3560092c22ea77a519d5a60c4f]", "[873fbf19b4210b0e]", "0x20")
+ self.bid128_to_binary64("0", "[ae0e4bcc6cf90681bfd42e542f4eb115]", "[8c7b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("0", "[ae414f7670425731f028e2c9710dd856]", "[91cf7b2c3b477e51]", "0x20")
+ self.bid128_to_binary64("0", "[ae737411eeb6d0301a92be19546dfa93]", "[97020d29f29bab26]", "0x20")
+ self.bid128_to_binary64("0", "[aea61f3cff830d1cab64c2f948cdb19f]", "[9c2f575191b2d126]", "0x20")
+ self.bid128_to_binary64("0", "[aed869c7ac45dadef9d42298b4b58099]", "[a17b6ef864390f4b]", "0x20")
+ self.bid128_to_binary64("0", "[af0afed67151fa8e015ebb16ed8ab103]", "[a6c11585c5713001]", "0x20")
+ self.bid128_to_binary64("0", "[af3d887491f763e32d5c4ad17e56c482]", "[abfb34276c239a8a]", "0x20")
+ self.bid128_to_binary64("0", "[af7014d40fdec33a5fc76db14c5ed849]", "[b11ddb2c49c44ad5]", "0x20")
+ self.bid128_to_binary64("0", "[afa223345ebcedc44bdcccd817d8a88b]", "[b65a16ca9a8568f8]", "0x20")
+ self.bid128_to_binary64("0", "[afd4e74a0c1ea3c217562af890a2d073]", "[bbb6273222ed1413]", "0x20")
+ self.bid128_to_binary64("0", "[b007ed09bead87bffaf7eb734b7a9b8a]", "[c0f869fffffffffd]", "0x20")
+ self.bid128_to_binary64("0", "[b03000000000000000000000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b03a0f9fffffffffffffffffffffffff]", "[c610000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[b03e000000000000000000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b0400000000000000000000000000001]", "[bff0000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b0400000000000000000000000000040]", "[c050000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b04000000000000000000000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b04000000000000000000000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b06c3b73c739f1beafd18640e490b087]", "[cb5f794893d283fe]", "0x20")
+ self.bid128_to_binary64("0", "[b09e976386b1981708da2983b5785887]", "[d0a4b7857b5b31fe]", "0x20")
+ self.bid128_to_binary64("0", "[b0d17fe784b911c75e5d113136442004]", "[d5eb29078ee59099]", "0x20")
+ self.bid128_to_binary64("0", "[b10371e1fa71dd73b133830b14c22032]", "[db1b0eaf54695bac]", "0x20")
+ self.bid128_to_binary64("0", "[b134b5a12930d46fd7a1c75d4d3dfd70]", "[e03b79c54b2fe4ab]", "0x20")
+ self.bid128_to_binary64("0", "[b1689bccaecc9bf3939b716f4f8250e4]", "[e59e76173af15d37]", "0x20")
+ self.bid128_to_binary64("0", "[b19b2c2da625a9e79d3715f6d9aa1f2e]", "[eade578269e1be07]", "0x20")
+ self.bid128_to_binary64("0", "[b1ccef4b9fd069e78cf022f8eda3ecc2]", "[f0090276f8c0344c]", "0x20")
+ self.bid128_to_binary64("0", "[b1fed38fd6dc96966ff66a2cd49c73a2]", "[f536dcc22318c27a]", "0x20")
+ self.bid128_to_binary64("0", "[b22fe5c4b2a57cb2515d37f3bb2f1b60]", "[fa45b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("0", "[b26658a213cc7a4ffae03c4825156fb3]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("0", "[b26658a213cc7a4ffae03c4825156fb4]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("0", "[b26658a213cc7a4ffda54ce688e7efa0]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[b26658a213cc7a4ffda54ce688e7efa1]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[dfffed09bead87c0378d8e63ffffffff]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[f8000000000000000000000000000000]", "[fff0000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[00000000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[00420000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[00440000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[2d76f397da03af06aa833fd25715f6e5]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[2d76f397da03af06aa833fd25715f6e6]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("1", "[2d77c5bec99ef12ddfb88fbd71f8bdfa]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("1", "[2d966db4616541769502d339cc6dcfb4]", "[000fffffffffffff]", "0x30")
+ self.bid128_to_binary64("1", "[2d966db4616541769502d339cc6dcfb5]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[2d96db68c2ca82ed2a05a67398db9f68]", "[001fffffffffffff]", "0x20")
+ self.bid128_to_binary64("1", "[2d96db68c2ca82ed2a05a67398db9f69]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[2da92630ac048f6287df2cb40b7f0401]", "[0203fadac57f110b]", "0x20")
+ self.bid128_to_binary64("1", "[2ddc2d3560092c22ea77a519d5a60c4f]", "[073fbf19b4210b0e]", "0x20")
+ self.bid128_to_binary64("1", "[2e0e4bcc6cf90681bfd42e542f4eb115]", "[0c7b849b513e88c2]", "0x20")
+ self.bid128_to_binary64("1", "[2e414f7670425731f028e2c9710dd856]", "[11cf7b2c3b477e50]", "0x20")
+ self.bid128_to_binary64("1", "[2e737411eeb6d0301a92be19546dfa93]", "[17020d29f29bab26]", "0x20")
+ self.bid128_to_binary64("1", "[2ea61f3cff830d1cab64c2f948cdb19f]", "[1c2f575191b2d125]", "0x20")
+ self.bid128_to_binary64("1", "[2ed869c7ac45dadef9d42298b4b58099]", "[217b6ef864390f4b]", "0x20")
+ self.bid128_to_binary64("1", "[2f0afed67151fa8e015ebb16ed8ab103]", "[26c11585c5713000]", "0x20")
+ self.bid128_to_binary64("1", "[2f3d887491f763e32d5c4ad17e56c482]", "[2bfb34276c239a89]", "0x20")
+ self.bid128_to_binary64("1", "[2f7014d40fdec33a5fc76db14c5ed849]", "[311ddb2c49c44ad4]", "0x20")
+ self.bid128_to_binary64("1", "[2fa223345ebcedc44bdcccd817d8a88b]", "[365a16ca9a8568f8]", "0x20")
+ self.bid128_to_binary64("1", "[2fd4e74a0c1ea3c217562af890a2d073]", "[3bb6273222ed1413]", "0x20")
+ self.bid128_to_binary64("1", "[3007ed09bead87bffaf7eb734b7a9b8a]", "[40f869fffffffffc]", "0x20")
+ self.bid128_to_binary64("1", "[303000000000000000000000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[303a0f9fffffffffffffffffffffffff]", "[460fffffffffffff]", "0x20")
+ self.bid128_to_binary64("1", "[303e000000000000000000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[30400000000000000000000000000000]", "[0000000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[30400000000000000000000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[30400000000000000000000000000040]", "[4050000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[304000000000000000000000000003e7]", "[408f380000000000]", "0x00")
+ self.bid128_to_binary64("1", "[304000000000000000000000000003e8]", "[408f400000000000]", "0x00")
+ self.bid128_to_binary64("1", "[306c3b73c739f1beafd18640e490b087]", "[4b5f794893d283fd]", "0x20")
+ self.bid128_to_binary64("1", "[309e976386b1981708da2983b5785887]", "[50a4b7857b5b31fd]", "0x20")
+ self.bid128_to_binary64("1", "[30d17fe784b911c75e5d113136442004]", "[55eb29078ee59098]", "0x20")
+ self.bid128_to_binary64("1", "[310371e1fa71dd73b133830b14c22032]", "[5b1b0eaf54695bab]", "0x20")
+ self.bid128_to_binary64("1", "[3134b5a12930d46fd7a1c75d4d3dfd70]", "[603b79c54b2fe4ab]", "0x20")
+ self.bid128_to_binary64("1", "[31689bccaecc9bf3939b716f4f8250e4]", "[659e76173af15d36]", "0x20")
+ self.bid128_to_binary64("1", "[319b2c2da625a9e79d3715f6d9aa1f2e]", "[6ade578269e1be06]", "0x20")
+ self.bid128_to_binary64("1", "[31ccef4b9fd069e78cf022f8eda3ecc2]", "[70090276f8c0344b]", "0x20")
+ self.bid128_to_binary64("1", "[31fed38fd6dc96966ff66a2cd49c73a2]", "[7536dcc22318c27a]", "0x20")
+ self.bid128_to_binary64("1", "[322fe5c4b2a57cb2515d37f3bb2f1b60]", "[7a45b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("1", "[326658a213cc7a4ffae03c4825156fb3]", "[7feffffffffffffe]", "0x20")
+ self.bid128_to_binary64("1", "[326658a213cc7a4ffae03c4825156fb4]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("1", "[326658a213cc7a4ffda54ce688e7efa0]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("1", "[326658a213cc7a4ffda54ce688e7efa1]", "[7fefffffffffffff]", "0x28")
+ self.bid128_to_binary64("1", "[5fffed09bead87c0378d8e63ffffffff]", "[7fefffffffffffff]", "0x28")
+ self.bid128_to_binary64("1", "[78000000000000000000000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[80000000000000000000000000000001]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("1", "[80420000000000000000000000000001]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("1", "[80440000000000000000000000000001]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("1", "[ad76f397da03af06aa833fd25715f6e5]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("1", "[ad76f397da03af06aa833fd25715f6e6]", "[8000000000000002]", "0x30")
+ self.bid128_to_binary64("1", "[ad77c5bec99ef12ddfb88fbd71f8bdfa]", "[8000000000000002]", "0x30")
+ self.bid128_to_binary64("1", "[ad966db4616541769502d339cc6dcfb4]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[ad966db4616541769502d339cc6dcfb5]", "[8010000000000001]", "0x20")
+ self.bid128_to_binary64("1", "[ad96db68c2ca82ed2a05a67398db9f68]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[ad96db68c2ca82ed2a05a67398db9f69]", "[8020000000000001]", "0x20")
+ self.bid128_to_binary64("1", "[ada92630ac048f6287df2cb40b7f0401]", "[8203fadac57f110c]", "0x20")
+ self.bid128_to_binary64("1", "[addc2d3560092c22ea77a519d5a60c4f]", "[873fbf19b4210b0f]", "0x20")
+ self.bid128_to_binary64("1", "[ae0e4bcc6cf90681bfd42e542f4eb115]", "[8c7b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("1", "[ae414f7670425731f028e2c9710dd856]", "[91cf7b2c3b477e51]", "0x20")
+ self.bid128_to_binary64("1", "[ae737411eeb6d0301a92be19546dfa93]", "[97020d29f29bab27]", "0x20")
+ self.bid128_to_binary64("1", "[aea61f3cff830d1cab64c2f948cdb19f]", "[9c2f575191b2d126]", "0x20")
+ self.bid128_to_binary64("1", "[aed869c7ac45dadef9d42298b4b58099]", "[a17b6ef864390f4c]", "0x20")
+ self.bid128_to_binary64("1", "[af0afed67151fa8e015ebb16ed8ab103]", "[a6c11585c5713001]", "0x20")
+ self.bid128_to_binary64("1", "[af3d887491f763e32d5c4ad17e56c482]", "[abfb34276c239a8a]", "0x20")
+ self.bid128_to_binary64("1", "[af7014d40fdec33a5fc76db14c5ed849]", "[b11ddb2c49c44ad5]", "0x20")
+ self.bid128_to_binary64("1", "[afa223345ebcedc44bdcccd817d8a88b]", "[b65a16ca9a8568f9]", "0x20")
+ self.bid128_to_binary64("1", "[afd4e74a0c1ea3c217562af890a2d073]", "[bbb6273222ed1414]", "0x20")
+ self.bid128_to_binary64("1", "[b007ed09bead87bffaf7eb734b7a9b8a]", "[c0f869fffffffffd]", "0x20")
+ self.bid128_to_binary64("1", "[b03000000000000000000000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b03a0f9fffffffffffffffffffffffff]", "[c610000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[b03e000000000000000000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b0400000000000000000000000000001]", "[bff0000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b0400000000000000000000000000040]", "[c050000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b04000000000000000000000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b04000000000000000000000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b06c3b73c739f1beafd18640e490b087]", "[cb5f794893d283fe]", "0x20")
+ self.bid128_to_binary64("1", "[b09e976386b1981708da2983b5785887]", "[d0a4b7857b5b31fe]", "0x20")
+ self.bid128_to_binary64("1", "[b0d17fe784b911c75e5d113136442004]", "[d5eb29078ee59099]", "0x20")
+ self.bid128_to_binary64("1", "[b10371e1fa71dd73b133830b14c22032]", "[db1b0eaf54695bac]", "0x20")
+ self.bid128_to_binary64("1", "[b134b5a12930d46fd7a1c75d4d3dfd70]", "[e03b79c54b2fe4ac]", "0x20")
+ self.bid128_to_binary64("1", "[b1689bccaecc9bf3939b716f4f8250e4]", "[e59e76173af15d37]", "0x20")
+ self.bid128_to_binary64("1", "[b19b2c2da625a9e79d3715f6d9aa1f2e]", "[eade578269e1be07]", "0x20")
+ self.bid128_to_binary64("1", "[b1ccef4b9fd069e78cf022f8eda3ecc2]", "[f0090276f8c0344c]", "0x20")
+ self.bid128_to_binary64("1", "[b1fed38fd6dc96966ff66a2cd49c73a2]", "[f536dcc22318c27b]", "0x20")
+ self.bid128_to_binary64("1", "[b22fe5c4b2a57cb2515d37f3bb2f1b60]", "[fa45b60dd016d6f9]", "0x20")
+ self.bid128_to_binary64("1", "[b26658a213cc7a4ffae03c4825156fb3]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("1", "[b26658a213cc7a4ffae03c4825156fb4]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("1", "[b26658a213cc7a4ffda54ce688e7efa0]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("1", "[b26658a213cc7a4ffda54ce688e7efa1]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("1", "[dfffed09bead87c0378d8e63ffffffff]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("1", "[f8000000000000000000000000000000]", "[fff0000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[00000000000000000000000000000001]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[00420000000000000000000000000001]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[00440000000000000000000000000001]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[2d76f397da03af06aa833fd25715f6e5]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[2d76f397da03af06aa833fd25715f6e6]", "[0000000000000002]", "0x30")
+ self.bid128_to_binary64("2", "[2d77c5bec99ef12ddfb88fbd71f8bdfa]", "[0000000000000002]", "0x30")
+ self.bid128_to_binary64("2", "[2d966db4616541769502d339cc6dcfb4]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("2", "[2d966db4616541769502d339cc6dcfb5]", "[0010000000000001]", "0x20")
+ self.bid128_to_binary64("2", "[2d96db68c2ca82ed2a05a67398db9f68]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("2", "[2d96db68c2ca82ed2a05a67398db9f69]", "[0020000000000001]", "0x20")
+ self.bid128_to_binary64("2", "[2da92630ac048f6287df2cb40b7f0401]", "[0203fadac57f110c]", "0x20")
+ self.bid128_to_binary64("2", "[2ddc2d3560092c22ea77a519d5a60c4f]", "[073fbf19b4210b0f]", "0x20")
+ self.bid128_to_binary64("2", "[2e0e4bcc6cf90681bfd42e542f4eb115]", "[0c7b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("2", "[2e414f7670425731f028e2c9710dd856]", "[11cf7b2c3b477e51]", "0x20")
+ self.bid128_to_binary64("2", "[2e737411eeb6d0301a92be19546dfa93]", "[17020d29f29bab27]", "0x20")
+ self.bid128_to_binary64("2", "[2ea61f3cff830d1cab64c2f948cdb19f]", "[1c2f575191b2d126]", "0x20")
+ self.bid128_to_binary64("2", "[2ed869c7ac45dadef9d42298b4b58099]", "[217b6ef864390f4c]", "0x20")
+ self.bid128_to_binary64("2", "[2f0afed67151fa8e015ebb16ed8ab103]", "[26c11585c5713001]", "0x20")
+ self.bid128_to_binary64("2", "[2f3d887491f763e32d5c4ad17e56c482]", "[2bfb34276c239a8a]", "0x20")
+ self.bid128_to_binary64("2", "[2f7014d40fdec33a5fc76db14c5ed849]", "[311ddb2c49c44ad5]", "0x20")
+ self.bid128_to_binary64("2", "[2fa223345ebcedc44bdcccd817d8a88b]", "[365a16ca9a8568f9]", "0x20")
+ self.bid128_to_binary64("2", "[2fd4e74a0c1ea3c217562af890a2d073]", "[3bb6273222ed1414]", "0x20")
+ self.bid128_to_binary64("2", "[3007ed09bead87bffaf7eb734b7a9b8a]", "[40f869fffffffffd]", "0x20")
+ self.bid128_to_binary64("2", "[303000000000000000000000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[303a0f9fffffffffffffffffffffffff]", "[4610000000000000]", "0x20")
+ self.bid128_to_binary64("2", "[303e000000000000000000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[30400000000000000000000000000000]", "[0000000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[30400000000000000000000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[30400000000000000000000000000040]", "[4050000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[304000000000000000000000000003e7]", "[408f380000000000]", "0x00")
+ self.bid128_to_binary64("2", "[304000000000000000000000000003e8]", "[408f400000000000]", "0x00")
+ self.bid128_to_binary64("2", "[306c3b73c739f1beafd18640e490b087]", "[4b5f794893d283fe]", "0x20")
+ self.bid128_to_binary64("2", "[309e976386b1981708da2983b5785887]", "[50a4b7857b5b31fe]", "0x20")
+ self.bid128_to_binary64("2", "[30d17fe784b911c75e5d113136442004]", "[55eb29078ee59099]", "0x20")
+ self.bid128_to_binary64("2", "[310371e1fa71dd73b133830b14c22032]", "[5b1b0eaf54695bac]", "0x20")
+ self.bid128_to_binary64("2", "[3134b5a12930d46fd7a1c75d4d3dfd70]", "[603b79c54b2fe4ac]", "0x20")
+ self.bid128_to_binary64("2", "[31689bccaecc9bf3939b716f4f8250e4]", "[659e76173af15d37]", "0x20")
+ self.bid128_to_binary64("2", "[319b2c2da625a9e79d3715f6d9aa1f2e]", "[6ade578269e1be07]", "0x20")
+ self.bid128_to_binary64("2", "[31ccef4b9fd069e78cf022f8eda3ecc2]", "[70090276f8c0344c]", "0x20")
+ self.bid128_to_binary64("2", "[31fed38fd6dc96966ff66a2cd49c73a2]", "[7536dcc22318c27b]", "0x20")
+ self.bid128_to_binary64("2", "[322fe5c4b2a57cb2515d37f3bb2f1b60]", "[7a45b60dd016d6f9]", "0x20")
+ self.bid128_to_binary64("2", "[326658a213cc7a4ffae03c4825156fb3]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[326658a213cc7a4ffae03c4825156fb4]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("2", "[326658a213cc7a4ffda54ce688e7efa0]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("2", "[326658a213cc7a4ffda54ce688e7efa1]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("2", "[5fffed09bead87c0378d8e63ffffffff]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("2", "[78000000000000000000000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[80000000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[80420000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[80440000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[ad76f397da03af06aa833fd25715f6e5]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[ad76f397da03af06aa833fd25715f6e6]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[ad77c5bec99ef12ddfb88fbd71f8bdfa]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[ad966db4616541769502d339cc6dcfb4]", "[800fffffffffffff]", "0x30")
+ self.bid128_to_binary64("2", "[ad966db4616541769502d339cc6dcfb5]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("2", "[ad96db68c2ca82ed2a05a67398db9f68]", "[801fffffffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[ad96db68c2ca82ed2a05a67398db9f69]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("2", "[ada92630ac048f6287df2cb40b7f0401]", "[8203fadac57f110b]", "0x20")
+ self.bid128_to_binary64("2", "[addc2d3560092c22ea77a519d5a60c4f]", "[873fbf19b4210b0e]", "0x20")
+ self.bid128_to_binary64("2", "[ae0e4bcc6cf90681bfd42e542f4eb115]", "[8c7b849b513e88c2]", "0x20")
+ self.bid128_to_binary64("2", "[ae414f7670425731f028e2c9710dd856]", "[91cf7b2c3b477e50]", "0x20")
+ self.bid128_to_binary64("2", "[ae737411eeb6d0301a92be19546dfa93]", "[97020d29f29bab26]", "0x20")
+ self.bid128_to_binary64("2", "[aea61f3cff830d1cab64c2f948cdb19f]", "[9c2f575191b2d125]", "0x20")
+ self.bid128_to_binary64("2", "[aed869c7ac45dadef9d42298b4b58099]", "[a17b6ef864390f4b]", "0x20")
+ self.bid128_to_binary64("2", "[af0afed67151fa8e015ebb16ed8ab103]", "[a6c11585c5713000]", "0x20")
+ self.bid128_to_binary64("2", "[af3d887491f763e32d5c4ad17e56c482]", "[abfb34276c239a89]", "0x20")
+ self.bid128_to_binary64("2", "[af7014d40fdec33a5fc76db14c5ed849]", "[b11ddb2c49c44ad4]", "0x20")
+ self.bid128_to_binary64("2", "[afa223345ebcedc44bdcccd817d8a88b]", "[b65a16ca9a8568f8]", "0x20")
+ self.bid128_to_binary64("2", "[afd4e74a0c1ea3c217562af890a2d073]", "[bbb6273222ed1413]", "0x20")
+ self.bid128_to_binary64("2", "[b007ed09bead87bffaf7eb734b7a9b8a]", "[c0f869fffffffffc]", "0x20")
+ self.bid128_to_binary64("2", "[b03000000000000000000000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b03a0f9fffffffffffffffffffffffff]", "[c60fffffffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[b03e000000000000000000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b0400000000000000000000000000001]", "[bff0000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b0400000000000000000000000000040]", "[c050000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b04000000000000000000000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b04000000000000000000000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b06c3b73c739f1beafd18640e490b087]", "[cb5f794893d283fd]", "0x20")
+ self.bid128_to_binary64("2", "[b09e976386b1981708da2983b5785887]", "[d0a4b7857b5b31fd]", "0x20")
+ self.bid128_to_binary64("2", "[b0d17fe784b911c75e5d113136442004]", "[d5eb29078ee59098]", "0x20")
+ self.bid128_to_binary64("2", "[b10371e1fa71dd73b133830b14c22032]", "[db1b0eaf54695bab]", "0x20")
+ self.bid128_to_binary64("2", "[b134b5a12930d46fd7a1c75d4d3dfd70]", "[e03b79c54b2fe4ab]", "0x20")
+ self.bid128_to_binary64("2", "[b1689bccaecc9bf3939b716f4f8250e4]", "[e59e76173af15d36]", "0x20")
+ self.bid128_to_binary64("2", "[b19b2c2da625a9e79d3715f6d9aa1f2e]", "[eade578269e1be06]", "0x20")
+ self.bid128_to_binary64("2", "[b1ccef4b9fd069e78cf022f8eda3ecc2]", "[f0090276f8c0344b]", "0x20")
+ self.bid128_to_binary64("2", "[b1fed38fd6dc96966ff66a2cd49c73a2]", "[f536dcc22318c27a]", "0x20")
+ self.bid128_to_binary64("2", "[b22fe5c4b2a57cb2515d37f3bb2f1b60]", "[fa45b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("2", "[b26658a213cc7a4ffae03c4825156fb3]", "[ffeffffffffffffe]", "0x20")
+ self.bid128_to_binary64("2", "[b26658a213cc7a4ffae03c4825156fb4]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[b26658a213cc7a4ffda54ce688e7efa0]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[b26658a213cc7a4ffda54ce688e7efa1]", "[ffefffffffffffff]", "0x28")
+ self.bid128_to_binary64("2", "[dfffed09bead87c0378d8e63ffffffff]", "[ffefffffffffffff]", "0x28")
+ self.bid128_to_binary64("2", "[f8000000000000000000000000000000]", "[fff0000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[00000000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[00420000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[00440000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[2d76f397da03af06aa833fd25715f6e5]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[2d76f397da03af06aa833fd25715f6e6]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("3", "[2d77c5bec99ef12ddfb88fbd71f8bdfa]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("3", "[2d966db4616541769502d339cc6dcfb4]", "[000fffffffffffff]", "0x30")
+ self.bid128_to_binary64("3", "[2d966db4616541769502d339cc6dcfb5]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("3", "[2d96db68c2ca82ed2a05a67398db9f68]", "[001fffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[2d96db68c2ca82ed2a05a67398db9f69]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("3", "[2da92630ac048f6287df2cb40b7f0401]", "[0203fadac57f110b]", "0x20")
+ self.bid128_to_binary64("3", "[2ddc2d3560092c22ea77a519d5a60c4f]", "[073fbf19b4210b0e]", "0x20")
+ self.bid128_to_binary64("3", "[2e0e4bcc6cf90681bfd42e542f4eb115]", "[0c7b849b513e88c2]", "0x20")
+ self.bid128_to_binary64("3", "[2e414f7670425731f028e2c9710dd856]", "[11cf7b2c3b477e50]", "0x20")
+ self.bid128_to_binary64("3", "[2e737411eeb6d0301a92be19546dfa93]", "[17020d29f29bab26]", "0x20")
+ self.bid128_to_binary64("3", "[2ea61f3cff830d1cab64c2f948cdb19f]", "[1c2f575191b2d125]", "0x20")
+ self.bid128_to_binary64("3", "[2ed869c7ac45dadef9d42298b4b58099]", "[217b6ef864390f4b]", "0x20")
+ self.bid128_to_binary64("3", "[2f0afed67151fa8e015ebb16ed8ab103]", "[26c11585c5713000]", "0x20")
+ self.bid128_to_binary64("3", "[2f3d887491f763e32d5c4ad17e56c482]", "[2bfb34276c239a89]", "0x20")
+ self.bid128_to_binary64("3", "[2f7014d40fdec33a5fc76db14c5ed849]", "[311ddb2c49c44ad4]", "0x20")
+ self.bid128_to_binary64("3", "[2fa223345ebcedc44bdcccd817d8a88b]", "[365a16ca9a8568f8]", "0x20")
+ self.bid128_to_binary64("3", "[2fd4e74a0c1ea3c217562af890a2d073]", "[3bb6273222ed1413]", "0x20")
+ self.bid128_to_binary64("3", "[3007ed09bead87bffaf7eb734b7a9b8a]", "[40f869fffffffffc]", "0x20")
+ self.bid128_to_binary64("3", "[303000000000000000000000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[303a0f9fffffffffffffffffffffffff]", "[460fffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[303e000000000000000000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[30400000000000000000000000000000]", "[0000000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[30400000000000000000000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[30400000000000000000000000000040]", "[4050000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[304000000000000000000000000003e7]", "[408f380000000000]", "0x00")
+ self.bid128_to_binary64("3", "[304000000000000000000000000003e8]", "[408f400000000000]", "0x00")
+ self.bid128_to_binary64("3", "[306c3b73c739f1beafd18640e490b087]", "[4b5f794893d283fd]", "0x20")
+ self.bid128_to_binary64("3", "[309e976386b1981708da2983b5785887]", "[50a4b7857b5b31fd]", "0x20")
+ self.bid128_to_binary64("3", "[30d17fe784b911c75e5d113136442004]", "[55eb29078ee59098]", "0x20")
+ self.bid128_to_binary64("3", "[310371e1fa71dd73b133830b14c22032]", "[5b1b0eaf54695bab]", "0x20")
+ self.bid128_to_binary64("3", "[3134b5a12930d46fd7a1c75d4d3dfd70]", "[603b79c54b2fe4ab]", "0x20")
+ self.bid128_to_binary64("3", "[31689bccaecc9bf3939b716f4f8250e4]", "[659e76173af15d36]", "0x20")
+ self.bid128_to_binary64("3", "[319b2c2da625a9e79d3715f6d9aa1f2e]", "[6ade578269e1be06]", "0x20")
+ self.bid128_to_binary64("3", "[31ccef4b9fd069e78cf022f8eda3ecc2]", "[70090276f8c0344b]", "0x20")
+ self.bid128_to_binary64("3", "[31fed38fd6dc96966ff66a2cd49c73a2]", "[7536dcc22318c27a]", "0x20")
+ self.bid128_to_binary64("3", "[322fe5c4b2a57cb2515d37f3bb2f1b60]", "[7a45b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("3", "[326658a213cc7a4ffae03c4825156fb3]", "[7feffffffffffffe]", "0x20")
+ self.bid128_to_binary64("3", "[326658a213cc7a4ffae03c4825156fb4]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[326658a213cc7a4ffda54ce688e7efa0]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[326658a213cc7a4ffda54ce688e7efa1]", "[7fefffffffffffff]", "0x28")
+ self.bid128_to_binary64("3", "[5fffed09bead87c0378d8e63ffffffff]", "[7fefffffffffffff]", "0x28")
+ self.bid128_to_binary64("3", "[78000000000000000000000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[80000000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[80420000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[80440000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[ad76f397da03af06aa833fd25715f6e5]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[ad76f397da03af06aa833fd25715f6e6]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("3", "[ad77c5bec99ef12ddfb88fbd71f8bdfa]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("3", "[ad966db4616541769502d339cc6dcfb4]", "[800fffffffffffff]", "0x30")
+ self.bid128_to_binary64("3", "[ad966db4616541769502d339cc6dcfb5]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("3", "[ad96db68c2ca82ed2a05a67398db9f68]", "[801fffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[ad96db68c2ca82ed2a05a67398db9f69]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("3", "[ada92630ac048f6287df2cb40b7f0401]", "[8203fadac57f110b]", "0x20")
+ self.bid128_to_binary64("3", "[addc2d3560092c22ea77a519d5a60c4f]", "[873fbf19b4210b0e]", "0x20")
+ self.bid128_to_binary64("3", "[ae0e4bcc6cf90681bfd42e542f4eb115]", "[8c7b849b513e88c2]", "0x20")
+ self.bid128_to_binary64("3", "[ae414f7670425731f028e2c9710dd856]", "[91cf7b2c3b477e50]", "0x20")
+ self.bid128_to_binary64("3", "[ae737411eeb6d0301a92be19546dfa93]", "[97020d29f29bab26]", "0x20")
+ self.bid128_to_binary64("3", "[aea61f3cff830d1cab64c2f948cdb19f]", "[9c2f575191b2d125]", "0x20")
+ self.bid128_to_binary64("3", "[aed869c7ac45dadef9d42298b4b58099]", "[a17b6ef864390f4b]", "0x20")
+ self.bid128_to_binary64("3", "[af0afed67151fa8e015ebb16ed8ab103]", "[a6c11585c5713000]", "0x20")
+ self.bid128_to_binary64("3", "[af3d887491f763e32d5c4ad17e56c482]", "[abfb34276c239a89]", "0x20")
+ self.bid128_to_binary64("3", "[af7014d40fdec33a5fc76db14c5ed849]", "[b11ddb2c49c44ad4]", "0x20")
+ self.bid128_to_binary64("3", "[afa223345ebcedc44bdcccd817d8a88b]", "[b65a16ca9a8568f8]", "0x20")
+ self.bid128_to_binary64("3", "[afd4e74a0c1ea3c217562af890a2d073]", "[bbb6273222ed1413]", "0x20")
+ self.bid128_to_binary64("3", "[b007ed09bead87bffaf7eb734b7a9b8a]", "[c0f869fffffffffc]", "0x20")
+ self.bid128_to_binary64("3", "[b03000000000000000000000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b03a0f9fffffffffffffffffffffffff]", "[c60fffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[b03e000000000000000000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b0400000000000000000000000000001]", "[bff0000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b0400000000000000000000000000040]", "[c050000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b04000000000000000000000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b04000000000000000000000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b06c3b73c739f1beafd18640e490b087]", "[cb5f794893d283fd]", "0x20")
+ self.bid128_to_binary64("3", "[b09e976386b1981708da2983b5785887]", "[d0a4b7857b5b31fd]", "0x20")
+ self.bid128_to_binary64("3", "[b0d17fe784b911c75e5d113136442004]", "[d5eb29078ee59098]", "0x20")
+ self.bid128_to_binary64("3", "[b10371e1fa71dd73b133830b14c22032]", "[db1b0eaf54695bab]", "0x20")
+ self.bid128_to_binary64("3", "[b134b5a12930d46fd7a1c75d4d3dfd70]", "[e03b79c54b2fe4ab]", "0x20")
+ self.bid128_to_binary64("3", "[b1689bccaecc9bf3939b716f4f8250e4]", "[e59e76173af15d36]", "0x20")
+ self.bid128_to_binary64("3", "[b19b2c2da625a9e79d3715f6d9aa1f2e]", "[eade578269e1be06]", "0x20")
+ self.bid128_to_binary64("3", "[b1ccef4b9fd069e78cf022f8eda3ecc2]", "[f0090276f8c0344b]", "0x20")
+ self.bid128_to_binary64("3", "[b1fed38fd6dc96966ff66a2cd49c73a2]", "[f536dcc22318c27a]", "0x20")
+ self.bid128_to_binary64("3", "[b22fe5c4b2a57cb2515d37f3bb2f1b60]", "[fa45b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("3", "[b26658a213cc7a4ffae03c4825156fb3]", "[ffeffffffffffffe]", "0x20")
+ self.bid128_to_binary64("3", "[b26658a213cc7a4ffae03c4825156fb4]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[b26658a213cc7a4ffda54ce688e7efa0]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[b26658a213cc7a4ffda54ce688e7efa1]", "[ffefffffffffffff]", "0x28")
+ self.bid128_to_binary64("3", "[dfffed09bead87c0378d8e63ffffffff]", "[ffefffffffffffff]", "0x28")
+ self.bid128_to_binary64("3", "[f8000000000000000000000000000000]", "[fff0000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[00000000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[00420000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[00440000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[2d76f397da03af06aa833fd25715f6e5]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("4", "[2d76f397da03af06aa833fd25715f6e6]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("4", "[2d77c5bec99ef12ddfb88fbd71f8bdfa]", "[0000000000000002]", "0x30")
+ self.bid128_to_binary64("4", "[2d966db4616541769502d339cc6dcfb4]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[2d966db4616541769502d339cc6dcfb5]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[2d96db68c2ca82ed2a05a67398db9f68]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[2d96db68c2ca82ed2a05a67398db9f69]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[2da92630ac048f6287df2cb40b7f0401]", "[0203fadac57f110c]", "0x20")
+ self.bid128_to_binary64("4", "[2ddc2d3560092c22ea77a519d5a60c4f]", "[073fbf19b4210b0e]", "0x20")
+ self.bid128_to_binary64("4", "[2e0e4bcc6cf90681bfd42e542f4eb115]", "[0c7b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("4", "[2e414f7670425731f028e2c9710dd856]", "[11cf7b2c3b477e51]", "0x20")
+ self.bid128_to_binary64("4", "[2e737411eeb6d0301a92be19546dfa93]", "[17020d29f29bab26]", "0x20")
+ self.bid128_to_binary64("4", "[2ea61f3cff830d1cab64c2f948cdb19f]", "[1c2f575191b2d126]", "0x20")
+ self.bid128_to_binary64("4", "[2ed869c7ac45dadef9d42298b4b58099]", "[217b6ef864390f4b]", "0x20")
+ self.bid128_to_binary64("4", "[2f0afed67151fa8e015ebb16ed8ab103]", "[26c11585c5713001]", "0x20")
+ self.bid128_to_binary64("4", "[2f3d887491f763e32d5c4ad17e56c482]", "[2bfb34276c239a8a]", "0x20")
+ self.bid128_to_binary64("4", "[2f7014d40fdec33a5fc76db14c5ed849]", "[311ddb2c49c44ad5]", "0x20")
+ self.bid128_to_binary64("4", "[2fa223345ebcedc44bdcccd817d8a88b]", "[365a16ca9a8568f8]", "0x20")
+ self.bid128_to_binary64("4", "[2fd4e74a0c1ea3c217562af890a2d073]", "[3bb6273222ed1413]", "0x20")
+ self.bid128_to_binary64("4", "[3007ed09bead87bffaf7eb734b7a9b8a]", "[40f869fffffffffd]", "0x20")
+ self.bid128_to_binary64("4", "[303000000000000000000000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[303a0f9fffffffffffffffffffffffff]", "[4610000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[303e000000000000000000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[30400000000000000000000000000000]", "[0000000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[30400000000000000000000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[30400000000000000000000000000040]", "[4050000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[304000000000000000000000000003e7]", "[408f380000000000]", "0x00")
+ self.bid128_to_binary64("4", "[304000000000000000000000000003e8]", "[408f400000000000]", "0x00")
+ self.bid128_to_binary64("4", "[306c3b73c739f1beafd18640e490b087]", "[4b5f794893d283fe]", "0x20")
+ self.bid128_to_binary64("4", "[309e976386b1981708da2983b5785887]", "[50a4b7857b5b31fe]", "0x20")
+ self.bid128_to_binary64("4", "[30d17fe784b911c75e5d113136442004]", "[55eb29078ee59099]", "0x20")
+ self.bid128_to_binary64("4", "[310371e1fa71dd73b133830b14c22032]", "[5b1b0eaf54695bac]", "0x20")
+ self.bid128_to_binary64("4", "[3134b5a12930d46fd7a1c75d4d3dfd70]", "[603b79c54b2fe4ab]", "0x20")
+ self.bid128_to_binary64("4", "[31689bccaecc9bf3939b716f4f8250e4]", "[659e76173af15d37]", "0x20")
+ self.bid128_to_binary64("4", "[319b2c2da625a9e79d3715f6d9aa1f2e]", "[6ade578269e1be07]", "0x20")
+ self.bid128_to_binary64("4", "[31ccef4b9fd069e78cf022f8eda3ecc2]", "[70090276f8c0344c]", "0x20")
+ self.bid128_to_binary64("4", "[31fed38fd6dc96966ff66a2cd49c73a2]", "[7536dcc22318c27a]", "0x20")
+ self.bid128_to_binary64("4", "[322fe5c4b2a57cb2515d37f3bb2f1b60]", "[7a45b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("4", "[326658a213cc7a4ffae03c4825156fb3]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[326658a213cc7a4ffae03c4825156fb4]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[326658a213cc7a4ffda54ce688e7efa0]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("4", "[326658a213cc7a4ffda54ce688e7efa1]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("4", "[5fffed09bead87c0378d8e63ffffffff]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("4", "[78000000000000000000000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[80000000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[80420000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[80440000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[ad76f397da03af06aa833fd25715f6e5]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("4", "[ad76f397da03af06aa833fd25715f6e6]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("4", "[ad77c5bec99ef12ddfb88fbd71f8bdfa]", "[8000000000000002]", "0x30")
+ self.bid128_to_binary64("4", "[ad966db4616541769502d339cc6dcfb4]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[ad966db4616541769502d339cc6dcfb5]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[ad96db68c2ca82ed2a05a67398db9f68]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[ad96db68c2ca82ed2a05a67398db9f69]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[ada92630ac048f6287df2cb40b7f0401]", "[8203fadac57f110c]", "0x20")
+ self.bid128_to_binary64("4", "[addc2d3560092c22ea77a519d5a60c4f]", "[873fbf19b4210b0e]", "0x20")
+ self.bid128_to_binary64("4", "[ae0e4bcc6cf90681bfd42e542f4eb115]", "[8c7b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("4", "[ae414f7670425731f028e2c9710dd856]", "[91cf7b2c3b477e51]", "0x20")
+ self.bid128_to_binary64("4", "[ae737411eeb6d0301a92be19546dfa93]", "[97020d29f29bab26]", "0x20")
+ self.bid128_to_binary64("4", "[aea61f3cff830d1cab64c2f948cdb19f]", "[9c2f575191b2d126]", "0x20")
+ self.bid128_to_binary64("4", "[aed869c7ac45dadef9d42298b4b58099]", "[a17b6ef864390f4b]", "0x20")
+ self.bid128_to_binary64("4", "[af0afed67151fa8e015ebb16ed8ab103]", "[a6c11585c5713001]", "0x20")
+ self.bid128_to_binary64("4", "[af3d887491f763e32d5c4ad17e56c482]", "[abfb34276c239a8a]", "0x20")
+ self.bid128_to_binary64("4", "[af7014d40fdec33a5fc76db14c5ed849]", "[b11ddb2c49c44ad5]", "0x20")
+ self.bid128_to_binary64("4", "[afa223345ebcedc44bdcccd817d8a88b]", "[b65a16ca9a8568f8]", "0x20")
+ self.bid128_to_binary64("4", "[afd4e74a0c1ea3c217562af890a2d073]", "[bbb6273222ed1413]", "0x20")
+ self.bid128_to_binary64("4", "[b007ed09bead87bffaf7eb734b7a9b8a]", "[c0f869fffffffffd]", "0x20")
+ self.bid128_to_binary64("4", "[b03000000000000000000000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b03a0f9fffffffffffffffffffffffff]", "[c610000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[b03e000000000000000000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b0400000000000000000000000000001]", "[bff0000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b0400000000000000000000000000040]", "[c050000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b04000000000000000000000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b04000000000000000000000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b06c3b73c739f1beafd18640e490b087]", "[cb5f794893d283fe]", "0x20")
+ self.bid128_to_binary64("4", "[b09e976386b1981708da2983b5785887]", "[d0a4b7857b5b31fe]", "0x20")
+ self.bid128_to_binary64("4", "[b0d17fe784b911c75e5d113136442004]", "[d5eb29078ee59099]", "0x20")
+ self.bid128_to_binary64("4", "[b10371e1fa71dd73b133830b14c22032]", "[db1b0eaf54695bac]", "0x20")
+ self.bid128_to_binary64("4", "[b134b5a12930d46fd7a1c75d4d3dfd70]", "[e03b79c54b2fe4ab]", "0x20")
+ self.bid128_to_binary64("4", "[b1689bccaecc9bf3939b716f4f8250e4]", "[e59e76173af15d37]", "0x20")
+ self.bid128_to_binary64("4", "[b19b2c2da625a9e79d3715f6d9aa1f2e]", "[eade578269e1be07]", "0x20")
+ self.bid128_to_binary64("4", "[b1ccef4b9fd069e78cf022f8eda3ecc2]", "[f0090276f8c0344c]", "0x20")
+ self.bid128_to_binary64("4", "[b1fed38fd6dc96966ff66a2cd49c73a2]", "[f536dcc22318c27a]", "0x20")
+ self.bid128_to_binary64("4", "[b22fe5c4b2a57cb2515d37f3bb2f1b60]", "[fa45b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("4", "[b26658a213cc7a4ffae03c4825156fb3]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[b26658a213cc7a4ffae03c4825156fb4]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[b26658a213cc7a4ffda54ce688e7efa0]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("4", "[b26658a213cc7a4ffda54ce688e7efa1]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("4", "[dfffed09bead87c0378d8e63ffffffff]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("4", "[f8000000000000000000000000000000]", "[fff0000000000000]", "0x00")
+ self.bid128_to_binary64("0", "-0E+368", "[8000000000000000]", "00")
+ self.bid128_to_binary64("0", "[00000000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[00000000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[00000000000000000000000000000001]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("3", "[00000000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[00000000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[0000314dc6448d9338c15b09ffffffff]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[0000314dc6448d9338c15b09ffffffff]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[0000314dc6448d9338c15b09ffffffff]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("3", "[0000314dc6448d9338c15b09ffffffff]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[0000314dc6448d9338c15b09ffffffff]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[00420000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[00420000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[00420000000000000000000000000001]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("3", "[00420000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[00420000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[00440000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[00440000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[00440000000000000000000000000001]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("3", "[00440000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[00440000000000000000000000000001]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[2d76f397da03af06aa833fd25715f6e5]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("1", "[2d76f397da03af06aa833fd25715f6e5]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[2d76f397da03af06aa833fd25715f6e5]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("3", "[2d76f397da03af06aa833fd25715f6e5]", "[0000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[2d76f397da03af06aa833fd25715f6e5]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("0", "[2d76f397da03af06aa833fd25715f6e6]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("1", "[2d76f397da03af06aa833fd25715f6e6]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[2d76f397da03af06aa833fd25715f6e6]", "[0000000000000002]", "0x30")
+ self.bid128_to_binary64("3", "[2d76f397da03af06aa833fd25715f6e6]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("4", "[2d76f397da03af06aa833fd25715f6e6]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("0", "[2d77c5bec99ef12ddfb88fbd71f8bdfa]", "[0000000000000002]", "0x30")
+ self.bid128_to_binary64("1", "[2d77c5bec99ef12ddfb88fbd71f8bdfa]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[2d77c5bec99ef12ddfb88fbd71f8bdfa]", "[0000000000000002]", "0x30")
+ self.bid128_to_binary64("3", "[2d77c5bec99ef12ddfb88fbd71f8bdfa]", "[0000000000000001]", "0x30")
+ self.bid128_to_binary64("4", "[2d77c5bec99ef12ddfb88fbd71f8bdfa]", "[0000000000000002]", "0x30")
+ self.bid128_to_binary64("0", "[2d86008eaaa556bae22ecfc1fabf9182]", "[0000000000037dac]", "0x30")
+ self.bid128_to_binary64("1", "[2d86008eaaa556bae22ecfc1fabf9182]", "[0000000000037dab]", "0x30")
+ self.bid128_to_binary64("2", "[2d86008eaaa556bae22ecfc1fabf9182]", "[0000000000037dac]", "0x30")
+ self.bid128_to_binary64("3", "[2d86008eaaa556bae22ecfc1fabf9182]", "[0000000000037dab]", "0x30")
+ self.bid128_to_binary64("4", "[2d86008eaaa556bae22ecfc1fabf9182]", "[0000000000037dac]", "0x30")
+ self.bid128_to_binary64("0", "[2d901c673bed356ff0dfce0e408f91c5]", "[0000010f7bbc8459]", "0x30")
+ self.bid128_to_binary64("1", "[2d901c673bed356ff0dfce0e408f91c5]", "[0000010f7bbc8459]", "0x30")
+ self.bid128_to_binary64("2", "[2d901c673bed356ff0dfce0e408f91c5]", "[0000010f7bbc845a]", "0x30")
+ self.bid128_to_binary64("3", "[2d901c673bed356ff0dfce0e408f91c5]", "[0000010f7bbc8459]", "0x30")
+ self.bid128_to_binary64("4", "[2d901c673bed356ff0dfce0e408f91c5]", "[0000010f7bbc8459]", "0x30")
+ self.bid128_to_binary64("0", "[2d951242f37d23a86362e0d8acd7fff9]", "[0004000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[2d951242f37d23a86362e0d8acd7fff9]", "[0003ffffffffffff]", "0x30")
+ self.bid128_to_binary64("2", "[2d951242f37d23a86362e0d8acd7fff9]", "[0004000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[2d951242f37d23a86362e0d8acd7fff9]", "[0003ffffffffffff]", "0x30")
+ self.bid128_to_binary64("4", "[2d951242f37d23a86362e0d8acd7fff9]", "[0004000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[2d961b6d1859505da389e348de159999]", "[0004000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[2d961b6d1859505da389e348de159999]", "[0003ffffffffffff]", "0x30")
+ self.bid128_to_binary64("2", "[2d961b6d1859505da389e348de159999]", "[0004000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[2d961b6d1859505da389e348de159999]", "[0003ffffffffffff]", "0x30")
+ self.bid128_to_binary64("4", "[2d961b6d1859505da389e348de159999]", "[0004000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[2d9636da30b2a0bb4713c691bc2b3331]", "[0007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("1", "[2d9636da30b2a0bb4713c691bc2b3331]", "[0007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("2", "[2d9636da30b2a0bb4713c691bc2b3331]", "[0008000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[2d9636da30b2a0bb4713c691bc2b3331]", "[0007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("4", "[2d9636da30b2a0bb4713c691bc2b3331]", "[0007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("0", "[2d966db4616541769502d339cc6dcfb4]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[2d966db4616541769502d339cc6dcfb4]", "[000fffffffffffff]", "0x30")
+ self.bid128_to_binary64("2", "[2d966db4616541769502d339cc6dcfb4]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("3", "[2d966db4616541769502d339cc6dcfb4]", "[000fffffffffffff]", "0x30")
+ self.bid128_to_binary64("4", "[2d966db4616541769502d339cc6dcfb4]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[2d966db4616541769502d339cc6dcfb5]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[2d966db4616541769502d339cc6dcfb5]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("2", "[2d966db4616541769502d339cc6dcfb5]", "[0010000000000001]", "0x20")
+ self.bid128_to_binary64("3", "[2d966db4616541769502d339cc6dcfb5]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[2d966db4616541769502d339cc6dcfb5]", "[0010000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[2d96db68c2ca82ed2a05a67398db9f68]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[2d96db68c2ca82ed2a05a67398db9f68]", "[001fffffffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[2d96db68c2ca82ed2a05a67398db9f68]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("3", "[2d96db68c2ca82ed2a05a67398db9f68]", "[001fffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[2d96db68c2ca82ed2a05a67398db9f68]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[2d96db68c2ca82ed2a05a67398db9f69]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[2d96db68c2ca82ed2a05a67398db9f69]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("2", "[2d96db68c2ca82ed2a05a67398db9f69]", "[0020000000000001]", "0x20")
+ self.bid128_to_binary64("3", "[2d96db68c2ca82ed2a05a67398db9f69]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[2d96db68c2ca82ed2a05a67398db9f69]", "[0020000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[2d98057c3811dcdf871b93db5f9deb85]", "[0008000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[2d98057c3811dcdf871b93db5f9deb85]", "[0007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("2", "[2d98057c3811dcdf871b93db5f9deb85]", "[0008000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[2d98057c3811dcdf871b93db5f9deb85]", "[0007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("4", "[2d98057c3811dcdf871b93db5f9deb85]", "[0008000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[2d9cb2d2999f955cdf81368ac9e6cb75]", "[00b97826a5cad2ee]", "0x20")
+ self.bid128_to_binary64("1", "[2d9cb2d2999f955cdf81368ac9e6cb75]", "[00b97826a5cad2ee]", "0x20")
+ self.bid128_to_binary64("2", "[2d9cb2d2999f955cdf81368ac9e6cb75]", "[00b97826a5cad2ef]", "0x20")
+ self.bid128_to_binary64("3", "[2d9cb2d2999f955cdf81368ac9e6cb75]", "[00b97826a5cad2ee]", "0x20")
+ self.bid128_to_binary64("4", "[2d9cb2d2999f955cdf81368ac9e6cb75]", "[00b97826a5cad2ee]", "0x20")
+ self.bid128_to_binary64("0", "[2da90215caf6e6a0d961f85b2acdf423]", "[0201872007ea3ca2]", "0x20")
+ self.bid128_to_binary64("1", "[2da90215caf6e6a0d961f85b2acdf423]", "[0201872007ea3ca1]", "0x20")
+ self.bid128_to_binary64("2", "[2da90215caf6e6a0d961f85b2acdf423]", "[0201872007ea3ca2]", "0x20")
+ self.bid128_to_binary64("3", "[2da90215caf6e6a0d961f85b2acdf423]", "[0201872007ea3ca1]", "0x20")
+ self.bid128_to_binary64("4", "[2da90215caf6e6a0d961f85b2acdf423]", "[0201872007ea3ca2]", "0x20")
+ self.bid128_to_binary64("0", "[2db6082b11e173bef0ef60768d41bedf]", "[0325296fd10f20e6]", "0x20")
+ self.bid128_to_binary64("1", "[2db6082b11e173bef0ef60768d41bedf]", "[0325296fd10f20e6]", "0x20")
+ self.bid128_to_binary64("2", "[2db6082b11e173bef0ef60768d41bedf]", "[0325296fd10f20e7]", "0x20")
+ self.bid128_to_binary64("3", "[2db6082b11e173bef0ef60768d41bedf]", "[0325296fd10f20e6]", "0x20")
+ self.bid128_to_binary64("4", "[2db6082b11e173bef0ef60768d41bedf]", "[0325296fd10f20e6]", "0x20")
+ self.bid128_to_binary64("0", "[2dc2167c808ef8fd1a8cc760d322d643]", "[047bc7621516bcdf]", "0x20")
+ self.bid128_to_binary64("1", "[2dc2167c808ef8fd1a8cc760d322d643]", "[047bc7621516bcde]", "0x20")
+ self.bid128_to_binary64("2", "[2dc2167c808ef8fd1a8cc760d322d643]", "[047bc7621516bcdf]", "0x20")
+ self.bid128_to_binary64("3", "[2dc2167c808ef8fd1a8cc760d322d643]", "[047bc7621516bcde]", "0x20")
+ self.bid128_to_binary64("4", "[2dc2167c808ef8fd1a8cc760d322d643]", "[047bc7621516bcdf]", "0x20")
+ self.bid128_to_binary64("0", "[2dcecd2d889f694320b36d59bf8da236]", "[05ee3747663ce7e6]", "0x20")
+ self.bid128_to_binary64("1", "[2dcecd2d889f694320b36d59bf8da236]", "[05ee3747663ce7e6]", "0x20")
+ self.bid128_to_binary64("2", "[2dcecd2d889f694320b36d59bf8da236]", "[05ee3747663ce7e7]", "0x20")
+ self.bid128_to_binary64("3", "[2dcecd2d889f694320b36d59bf8da236]", "[05ee3747663ce7e6]", "0x20")
+ self.bid128_to_binary64("4", "[2dcecd2d889f694320b36d59bf8da236]", "[05ee3747663ce7e6]", "0x20")
+ self.bid128_to_binary64("0", "[2ddbd0be9ab5e54b315ea78896aad125]", "[0740515725af5b60]", "0x20")
+ self.bid128_to_binary64("1", "[2ddbd0be9ab5e54b315ea78896aad125]", "[0740515725af5b60]", "0x20")
+ self.bid128_to_binary64("2", "[2ddbd0be9ab5e54b315ea78896aad125]", "[0740515725af5b61]", "0x20")
+ self.bid128_to_binary64("3", "[2ddbd0be9ab5e54b315ea78896aad125]", "[0740515725af5b60]", "0x20")
+ self.bid128_to_binary64("4", "[2ddbd0be9ab5e54b315ea78896aad125]", "[0740515725af5b60]", "0x20")
+ self.bid128_to_binary64("0", "[2de80c39997e94db8d59d2486d544c98]", "[08605fbdb9fba0a8]", "0x20")
+ self.bid128_to_binary64("1", "[2de80c39997e94db8d59d2486d544c98]", "[08605fbdb9fba0a7]", "0x20")
+ self.bid128_to_binary64("2", "[2de80c39997e94db8d59d2486d544c98]", "[08605fbdb9fba0a8]", "0x20")
+ self.bid128_to_binary64("3", "[2de80c39997e94db8d59d2486d544c98]", "[08605fbdb9fba0a7]", "0x20")
+ self.bid128_to_binary64("4", "[2de80c39997e94db8d59d2486d544c98]", "[08605fbdb9fba0a8]", "0x20")
+ self.bid128_to_binary64("0", "[2df42d8bd2e5cc8b92b7fded3c9b4141]", "[09bd16c44fbada39]", "0x20")
+ self.bid128_to_binary64("1", "[2df42d8bd2e5cc8b92b7fded3c9b4141]", "[09bd16c44fbada39]", "0x20")
+ self.bid128_to_binary64("2", "[2df42d8bd2e5cc8b92b7fded3c9b4141]", "[09bd16c44fbada3a]", "0x20")
+ self.bid128_to_binary64("3", "[2df42d8bd2e5cc8b92b7fded3c9b4141]", "[09bd16c44fbada39]", "0x20")
+ self.bid128_to_binary64("4", "[2df42d8bd2e5cc8b92b7fded3c9b4141]", "[09bd16c44fbada39]", "0x20")
+ self.bid128_to_binary64("0", "[2e007cc64982b976797302c134f0e947]", "[0b12ffde795f7aa3]", "0x20")
+ self.bid128_to_binary64("1", "[2e007cc64982b976797302c134f0e947]", "[0b12ffde795f7aa3]", "0x20")
+ self.bid128_to_binary64("2", "[2e007cc64982b976797302c134f0e947]", "[0b12ffde795f7aa4]", "0x20")
+ self.bid128_to_binary64("3", "[2e007cc64982b976797302c134f0e947]", "[0b12ffde795f7aa3]", "0x20")
+ self.bid128_to_binary64("4", "[2e007cc64982b976797302c134f0e947]", "[0b12ffde795f7aa3]", "0x20")
+ self.bid128_to_binary64("0", "[2e0d7afe20dd2088bf24e7a4ec897569]", "[0c6b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("1", "[2e0d7afe20dd2088bf24e7a4ec897569]", "[0c6b849b513e88c2]", "0x20")
+ self.bid128_to_binary64("2", "[2e0d7afe20dd2088bf24e7a4ec897569]", "[0c6b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("3", "[2e0d7afe20dd2088bf24e7a4ec897569]", "[0c6b849b513e88c2]", "0x20")
+ self.bid128_to_binary64("4", "[2e0d7afe20dd2088bf24e7a4ec897569]", "[0c6b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("0", "[2e19b68785a0b0efe5d6d0d3a432dc55]", "[0dae5da51f39c9e4]", "0x20")
+ self.bid128_to_binary64("1", "[2e19b68785a0b0efe5d6d0d3a432dc55]", "[0dae5da51f39c9e4]", "0x20")
+ self.bid128_to_binary64("2", "[2e19b68785a0b0efe5d6d0d3a432dc55]", "[0dae5da51f39c9e5]", "0x20")
+ self.bid128_to_binary64("3", "[2e19b68785a0b0efe5d6d0d3a432dc55]", "[0dae5da51f39c9e4]", "0x20")
+ self.bid128_to_binary64("4", "[2e19b68785a0b0efe5d6d0d3a432dc55]", "[0dae5da51f39c9e4]", "0x20")
+ self.bid128_to_binary64("0", "[2e261e3f0cb62c7eff3a6b52a475dc7d]", "[0ee3f94373aa0d1d]", "0x20")
+ self.bid128_to_binary64("1", "[2e261e3f0cb62c7eff3a6b52a475dc7d]", "[0ee3f94373aa0d1c]", "0x20")
+ self.bid128_to_binary64("2", "[2e261e3f0cb62c7eff3a6b52a475dc7d]", "[0ee3f94373aa0d1d]", "0x20")
+ self.bid128_to_binary64("3", "[2e261e3f0cb62c7eff3a6b52a475dc7d]", "[0ee3f94373aa0d1c]", "0x20")
+ self.bid128_to_binary64("4", "[2e261e3f0cb62c7eff3a6b52a475dc7d]", "[0ee3f94373aa0d1d]", "0x20")
+ self.bid128_to_binary64("0", "[2e32ac09dcdc43c9031d4c40967c1e59]", "[104b1620f6fa369c]", "0x20")
+ self.bid128_to_binary64("1", "[2e32ac09dcdc43c9031d4c40967c1e59]", "[104b1620f6fa369b]", "0x20")
+ self.bid128_to_binary64("2", "[2e32ac09dcdc43c9031d4c40967c1e59]", "[104b1620f6fa369c]", "0x20")
+ self.bid128_to_binary64("3", "[2e32ac09dcdc43c9031d4c40967c1e59]", "[104b1620f6fa369b]", "0x20")
+ self.bid128_to_binary64("4", "[2e32ac09dcdc43c9031d4c40967c1e59]", "[104b1620f6fa369c]", "0x20")
+ self.bid128_to_binary64("0", "[2e3ea7bb38212b98f8147164b886ec2b]", "[11892f5695d2cb74]", "0x20")
+ self.bid128_to_binary64("1", "[2e3ea7bb38212b98f8147164b886ec2b]", "[11892f5695d2cb73]", "0x20")
+ self.bid128_to_binary64("2", "[2e3ea7bb38212b98f8147164b886ec2b]", "[11892f5695d2cb74]", "0x20")
+ self.bid128_to_binary64("3", "[2e3ea7bb38212b98f8147164b886ec2b]", "[11892f5695d2cb73]", "0x20")
+ self.bid128_to_binary64("4", "[2e3ea7bb38212b98f8147164b886ec2b]", "[11892f5695d2cb74]", "0x20")
+ self.bid128_to_binary64("0", "[2e4b9318b32984bfcd409037c65830a0]", "[12dcdc5085b81dec]", "0x20")
+ self.bid128_to_binary64("1", "[2e4b9318b32984bfcd409037c65830a0]", "[12dcdc5085b81dec]", "0x20")
+ self.bid128_to_binary64("2", "[2e4b9318b32984bfcd409037c65830a0]", "[12dcdc5085b81ded]", "0x20")
+ self.bid128_to_binary64("3", "[2e4b9318b32984bfcd409037c65830a0]", "[12dcdc5085b81dec]", "0x20")
+ self.bid128_to_binary64("4", "[2e4b9318b32984bfcd409037c65830a0]", "[12dcdc5085b81dec]", "0x20")
+ self.bid128_to_binary64("0", "[2e5810ae8381db3a539ffd5d2e2e9007]", "[1406c7da7c9210a7]", "0x20")
+ self.bid128_to_binary64("1", "[2e5810ae8381db3a539ffd5d2e2e9007]", "[1406c7da7c9210a6]", "0x20")
+ self.bid128_to_binary64("2", "[2e5810ae8381db3a539ffd5d2e2e9007]", "[1406c7da7c9210a7]", "0x20")
+ self.bid128_to_binary64("3", "[2e5810ae8381db3a539ffd5d2e2e9007]", "[1406c7da7c9210a6]", "0x20")
+ self.bid128_to_binary64("4", "[2e5810ae8381db3a539ffd5d2e2e9007]", "[1406c7da7c9210a7]", "0x20")
+ self.bid128_to_binary64("0", "[2e64b222da3b1b4638578295046183ee]", "[157cffd6fd75fe79]", "0x20")
+ self.bid128_to_binary64("1", "[2e64b222da3b1b4638578295046183ee]", "[157cffd6fd75fe78]", "0x20")
+ self.bid128_to_binary64("2", "[2e64b222da3b1b4638578295046183ee]", "[157cffd6fd75fe79]", "0x20")
+ self.bid128_to_binary64("3", "[2e64b222da3b1b4638578295046183ee]", "[157cffd6fd75fe78]", "0x20")
+ self.bid128_to_binary64("4", "[2e64b222da3b1b4638578295046183ee]", "[157cffd6fd75fe79]", "0x20")
+ self.bid128_to_binary64("0", "[2e71d75f84e322f4d411f4441f38f0d5]", "[16d24b9e2fb34390]", "0x20")
+ self.bid128_to_binary64("1", "[2e71d75f84e322f4d411f4441f38f0d5]", "[16d24b9e2fb34390]", "0x20")
+ self.bid128_to_binary64("2", "[2e71d75f84e322f4d411f4441f38f0d5]", "[16d24b9e2fb34391]", "0x20")
+ self.bid128_to_binary64("3", "[2e71d75f84e322f4d411f4441f38f0d5]", "[16d24b9e2fb34390]", "0x20")
+ self.bid128_to_binary64("4", "[2e71d75f84e322f4d411f4441f38f0d5]", "[16d24b9e2fb34390]", "0x20")
+ self.bid128_to_binary64("0", "[2e7dc36774aa42a3e9af576ee439eef1]", "[1810b56c6bba87f6]", "0x20")
+ self.bid128_to_binary64("1", "[2e7dc36774aa42a3e9af576ee439eef1]", "[1810b56c6bba87f5]", "0x20")
+ self.bid128_to_binary64("2", "[2e7dc36774aa42a3e9af576ee439eef1]", "[1810b56c6bba87f6]", "0x20")
+ self.bid128_to_binary64("3", "[2e7dc36774aa42a3e9af576ee439eef1]", "[1810b56c6bba87f5]", "0x20")
+ self.bid128_to_binary64("4", "[2e7dc36774aa42a3e9af576ee439eef1]", "[1810b56c6bba87f6]", "0x20")
+ self.bid128_to_binary64("0", "[2e8a2ca527d6b30fee2c6deb1dc6ac4d]", "[194f85061496747d]", "0x20")
+ self.bid128_to_binary64("1", "[2e8a2ca527d6b30fee2c6deb1dc6ac4d]", "[194f85061496747c]", "0x20")
+ self.bid128_to_binary64("2", "[2e8a2ca527d6b30fee2c6deb1dc6ac4d]", "[194f85061496747d]", "0x20")
+ self.bid128_to_binary64("3", "[2e8a2ca527d6b30fee2c6deb1dc6ac4d]", "[194f85061496747c]", "0x20")
+ self.bid128_to_binary64("4", "[2e8a2ca527d6b30fee2c6deb1dc6ac4d]", "[194f85061496747d]", "0x20")
+ self.bid128_to_binary64("0", "[2e96a6506457aad1b409062fc8d7db63]", "[1aabfea4b95e162c]", "0x20")
+ self.bid128_to_binary64("1", "[2e96a6506457aad1b409062fc8d7db63]", "[1aabfea4b95e162c]", "0x20")
+ self.bid128_to_binary64("2", "[2e96a6506457aad1b409062fc8d7db63]", "[1aabfea4b95e162d]", "0x20")
+ self.bid128_to_binary64("3", "[2e96a6506457aad1b409062fc8d7db63]", "[1aabfea4b95e162c]", "0x20")
+ self.bid128_to_binary64("4", "[2e96a6506457aad1b409062fc8d7db63]", "[1aabfea4b95e162c]", "0x20")
+ self.bid128_to_binary64("0", "[2ea2eb1cb530679d8b3bed084e60e107]", "[1bf2def1ce9ba496]", "0x20")
+ self.bid128_to_binary64("1", "[2ea2eb1cb530679d8b3bed084e60e107]", "[1bf2def1ce9ba496]", "0x20")
+ self.bid128_to_binary64("2", "[2ea2eb1cb530679d8b3bed084e60e107]", "[1bf2def1ce9ba497]", "0x20")
+ self.bid128_to_binary64("3", "[2ea2eb1cb530679d8b3bed084e60e107]", "[1bf2def1ce9ba496]", "0x20")
+ self.bid128_to_binary64("4", "[2ea2eb1cb530679d8b3bed084e60e107]", "[1bf2def1ce9ba496]", "0x20")
+ self.bid128_to_binary64("0", "[2eafc1e170381f503e7b3ea104e2ac4a]", "[1d4137d3476787a2]", "0x20")
+ self.bid128_to_binary64("1", "[2eafc1e170381f503e7b3ea104e2ac4a]", "[1d4137d3476787a1]", "0x20")
+ self.bid128_to_binary64("2", "[2eafc1e170381f503e7b3ea104e2ac4a]", "[1d4137d3476787a2]", "0x20")
+ self.bid128_to_binary64("3", "[2eafc1e170381f503e7b3ea104e2ac4a]", "[1d4137d3476787a1]", "0x20")
+ self.bid128_to_binary64("4", "[2eafc1e170381f503e7b3ea104e2ac4a]", "[1d4137d3476787a2]", "0x20")
+ self.bid128_to_binary64("0", "[2ebc069cf82a5987abc559741b53311d]", "[1e534f6803053fec]", "0x20")
+ self.bid128_to_binary64("1", "[2ebc069cf82a5987abc559741b53311d]", "[1e534f6803053fec]", "0x20")
+ self.bid128_to_binary64("2", "[2ebc069cf82a5987abc559741b53311d]", "[1e534f6803053fed]", "0x20")
+ self.bid128_to_binary64("3", "[2ebc069cf82a5987abc559741b53311d]", "[1e534f6803053fec]", "0x20")
+ self.bid128_to_binary64("4", "[2ebc069cf82a5987abc559741b53311d]", "[1e534f6803053fec]", "0x20")
+ self.bid128_to_binary64("0", "[2ec8b0c55ff7e1f201bdc58e6a04ea81]", "[1fdec40bed0c66bf]", "0x20")
+ self.bid128_to_binary64("1", "[2ec8b0c55ff7e1f201bdc58e6a04ea81]", "[1fdec40bed0c66be]", "0x20")
+ self.bid128_to_binary64("2", "[2ec8b0c55ff7e1f201bdc58e6a04ea81]", "[1fdec40bed0c66bf]", "0x20")
+ self.bid128_to_binary64("3", "[2ec8b0c55ff7e1f201bdc58e6a04ea81]", "[1fdec40bed0c66be]", "0x20")
+ self.bid128_to_binary64("4", "[2ec8b0c55ff7e1f201bdc58e6a04ea81]", "[1fdec40bed0c66bf]", "0x20")
+ self.bid128_to_binary64("0", "[2ed51ec4e5c456509c712378d754e498]", "[2127cc8f295d164b]", "0x20")
+ self.bid128_to_binary64("1", "[2ed51ec4e5c456509c712378d754e498]", "[2127cc8f295d164b]", "0x20")
+ self.bid128_to_binary64("2", "[2ed51ec4e5c456509c712378d754e498]", "[2127cc8f295d164c]", "0x20")
+ self.bid128_to_binary64("3", "[2ed51ec4e5c456509c712378d754e498]", "[2127cc8f295d164b]", "0x20")
+ self.bid128_to_binary64("4", "[2ed51ec4e5c456509c712378d754e498]", "[2127cc8f295d164b]", "0x20")
+ self.bid128_to_binary64("0", "[2ee1644d419fb51b5f8633591e80016d]", "[226c3323be1b02d0]", "0x20")
+ self.bid128_to_binary64("1", "[2ee1644d419fb51b5f8633591e80016d]", "[226c3323be1b02d0]", "0x20")
+ self.bid128_to_binary64("2", "[2ee1644d419fb51b5f8633591e80016d]", "[226c3323be1b02d1]", "0x20")
+ self.bid128_to_binary64("3", "[2ee1644d419fb51b5f8633591e80016d]", "[226c3323be1b02d0]", "0x20")
+ self.bid128_to_binary64("4", "[2ee1644d419fb51b5f8633591e80016d]", "[226c3323be1b02d0]", "0x20")
+ self.bid128_to_binary64("0", "[2eee25db6ceaa190a50245b9d90a5fb5]", "[23ac9303ddbc500f]", "0x20")
+ self.bid128_to_binary64("1", "[2eee25db6ceaa190a50245b9d90a5fb5]", "[23ac9303ddbc500e]", "0x20")
+ self.bid128_to_binary64("2", "[2eee25db6ceaa190a50245b9d90a5fb5]", "[23ac9303ddbc500f]", "0x20")
+ self.bid128_to_binary64("3", "[2eee25db6ceaa190a50245b9d90a5fb5]", "[23ac9303ddbc500e]", "0x20")
+ self.bid128_to_binary64("4", "[2eee25db6ceaa190a50245b9d90a5fb5]", "[23ac9303ddbc500f]", "0x20")
+ self.bid128_to_binary64("0", "[2efa82ee60fc41ef7f67963d7e5024f1]", "[25078fda14be15b4]", "0x20")
+ self.bid128_to_binary64("1", "[2efa82ee60fc41ef7f67963d7e5024f1]", "[25078fda14be15b4]", "0x20")
+ self.bid128_to_binary64("2", "[2efa82ee60fc41ef7f67963d7e5024f1]", "[25078fda14be15b5]", "0x20")
+ self.bid128_to_binary64("3", "[2efa82ee60fc41ef7f67963d7e5024f1]", "[25078fda14be15b4]", "0x20")
+ self.bid128_to_binary64("4", "[2efa82ee60fc41ef7f67963d7e5024f1]", "[25078fda14be15b4]", "0x20")
+ self.bid128_to_binary64("0", "[2f06fed67151fa8e015ebb16ed8ab103]", "[2655de1bde018520]", "0x20")
+ self.bid128_to_binary64("1", "[2f06fed67151fa8e015ebb16ed8ab103]", "[2655de1bde01851f]", "0x20")
+ self.bid128_to_binary64("2", "[2f06fed67151fa8e015ebb16ed8ab103]", "[2655de1bde018520]", "0x20")
+ self.bid128_to_binary64("3", "[2f06fed67151fa8e015ebb16ed8ab103]", "[2655de1bde01851f]", "0x20")
+ self.bid128_to_binary64("4", "[2f06fed67151fa8e015ebb16ed8ab103]", "[2655de1bde018520]", "0x20")
+ self.bid128_to_binary64("0", "[2f13882d3c00a26195cda41f91767521]", "[27a00bfdf710c0ae]", "0x20")
+ self.bid128_to_binary64("1", "[2f13882d3c00a26195cda41f91767521]", "[27a00bfdf710c0ad]", "0x20")
+ self.bid128_to_binary64("2", "[2f13882d3c00a26195cda41f91767521]", "[27a00bfdf710c0ae]", "0x20")
+ self.bid128_to_binary64("3", "[2f13882d3c00a26195cda41f91767521]", "[27a00bfdf710c0ad]", "0x20")
+ self.bid128_to_binary64("4", "[2f13882d3c00a26195cda41f91767521]", "[27a00bfdf710c0ae]", "0x20")
+ self.bid128_to_binary64("0", "[2f201ac72f0bb0583e9dbcda51811e74]", "[28d4e60a3d7c13ab]", "0x20")
+ self.bid128_to_binary64("1", "[2f201ac72f0bb0583e9dbcda51811e74]", "[28d4e60a3d7c13aa]", "0x20")
+ self.bid128_to_binary64("2", "[2f201ac72f0bb0583e9dbcda51811e74]", "[28d4e60a3d7c13ab]", "0x20")
+ self.bid128_to_binary64("3", "[2f201ac72f0bb0583e9dbcda51811e74]", "[28d4e60a3d7c13aa]", "0x20")
+ self.bid128_to_binary64("4", "[2f201ac72f0bb0583e9dbcda51811e74]", "[28d4e60a3d7c13ab]", "0x20")
+ self.bid128_to_binary64("0", "[2f2e0fe06b3e295535bde8792e259941]", "[2a3d8ab17a8449ad]", "0x20")
+ self.bid128_to_binary64("1", "[2f2e0fe06b3e295535bde8792e259941]", "[2a3d8ab17a8449ac]", "0x20")
+ self.bid128_to_binary64("2", "[2f2e0fe06b3e295535bde8792e259941]", "[2a3d8ab17a8449ad]", "0x20")
+ self.bid128_to_binary64("3", "[2f2e0fe06b3e295535bde8792e259941]", "[2a3d8ab17a8449ac]", "0x20")
+ self.bid128_to_binary64("4", "[2f2e0fe06b3e295535bde8792e259941]", "[2a3d8ab17a8449ad]", "0x20")
+ self.bid128_to_binary64("0", "[2f3873ca8239f1c262a4d46ec09eb820]", "[2b748c16b34bc942]", "0x20")
+ self.bid128_to_binary64("1", "[2f3873ca8239f1c262a4d46ec09eb820]", "[2b748c16b34bc942]", "0x20")
+ self.bid128_to_binary64("2", "[2f3873ca8239f1c262a4d46ec09eb820]", "[2b748c16b34bc943]", "0x20")
+ self.bid128_to_binary64("3", "[2f3873ca8239f1c262a4d46ec09eb820]", "[2b748c16b34bc942]", "0x20")
+ self.bid128_to_binary64("4", "[2f3873ca8239f1c262a4d46ec09eb820]", "[2b748c16b34bc942]", "0x20")
+ self.bid128_to_binary64("0", "[2f4490a1ca9ef241794dbeb7cbdd9f78]", "[2cb879e307d62838]", "0x20")
+ self.bid128_to_binary64("1", "[2f4490a1ca9ef241794dbeb7cbdd9f78]", "[2cb879e307d62838]", "0x20")
+ self.bid128_to_binary64("2", "[2f4490a1ca9ef241794dbeb7cbdd9f78]", "[2cb879e307d62839]", "0x20")
+ self.bid128_to_binary64("3", "[2f4490a1ca9ef241794dbeb7cbdd9f78]", "[2cb879e307d62838]", "0x20")
+ self.bid128_to_binary64("4", "[2f4490a1ca9ef241794dbeb7cbdd9f78]", "[2cb879e307d62838]", "0x20")
+ self.bid128_to_binary64("0", "[2f5226843643df11452d0d6a934b4719]", "[2e0f14ba7e452d50]", "0x20")
+ self.bid128_to_binary64("1", "[2f5226843643df11452d0d6a934b4719]", "[2e0f14ba7e452d50]", "0x20")
+ self.bid128_to_binary64("2", "[2f5226843643df11452d0d6a934b4719]", "[2e0f14ba7e452d51]", "0x20")
+ self.bid128_to_binary64("3", "[2f5226843643df11452d0d6a934b4719]", "[2e0f14ba7e452d50]", "0x20")
+ self.bid128_to_binary64("4", "[2f5226843643df11452d0d6a934b4719]", "[2e0f14ba7e452d50]", "0x20")
+ self.bid128_to_binary64("0", "[2f5e5d7bfa494f1a168dba3a74571c41]", "[2f61fc55ea85c508]", "0x20")
+ self.bid128_to_binary64("1", "[2f5e5d7bfa494f1a168dba3a74571c41]", "[2f61fc55ea85c508]", "0x20")
+ self.bid128_to_binary64("2", "[2f5e5d7bfa494f1a168dba3a74571c41]", "[2f61fc55ea85c509]", "0x20")
+ self.bid128_to_binary64("3", "[2f5e5d7bfa494f1a168dba3a74571c41]", "[2f61fc55ea85c508]", "0x20")
+ self.bid128_to_binary64("4", "[2f5e5d7bfa494f1a168dba3a74571c41]", "[2f61fc55ea85c508]", "0x20")
+ self.bid128_to_binary64("0", "[2f6ba02c82e6f6efe9fbc9d870667494]", "[30c31702a3693659]", "0x20")
+ self.bid128_to_binary64("1", "[2f6ba02c82e6f6efe9fbc9d870667494]", "[30c31702a3693658]", "0x20")
+ self.bid128_to_binary64("2", "[2f6ba02c82e6f6efe9fbc9d870667494]", "[30c31702a3693659]", "0x20")
+ self.bid128_to_binary64("3", "[2f6ba02c82e6f6efe9fbc9d870667494]", "[30c31702a3693658]", "0x20")
+ self.bid128_to_binary64("4", "[2f6ba02c82e6f6efe9fbc9d870667494]", "[30c31702a3693659]", "0x20")
+ self.bid128_to_binary64("0", "[2f77271e12b2ee83c1acbd4538471791]", "[31f9d1e0c9e76728]", "0x20")
+ self.bid128_to_binary64("1", "[2f77271e12b2ee83c1acbd4538471791]", "[31f9d1e0c9e76728]", "0x20")
+ self.bid128_to_binary64("2", "[2f77271e12b2ee83c1acbd4538471791]", "[31f9d1e0c9e76729]", "0x20")
+ self.bid128_to_binary64("3", "[2f77271e12b2ee83c1acbd4538471791]", "[31f9d1e0c9e76728]", "0x20")
+ self.bid128_to_binary64("4", "[2f77271e12b2ee83c1acbd4538471791]", "[31f9d1e0c9e76728]", "0x20")
+ self.bid128_to_binary64("0", "[2f841f35161c967735e6d9ccd2cec8af]", "[333a09da7e081265]", "0x20")
+ self.bid128_to_binary64("1", "[2f841f35161c967735e6d9ccd2cec8af]", "[333a09da7e081264]", "0x20")
+ self.bid128_to_binary64("2", "[2f841f35161c967735e6d9ccd2cec8af]", "[333a09da7e081265]", "0x20")
+ self.bid128_to_binary64("3", "[2f841f35161c967735e6d9ccd2cec8af]", "[333a09da7e081264]", "0x20")
+ self.bid128_to_binary64("4", "[2f841f35161c967735e6d9ccd2cec8af]", "[333a09da7e081265]", "0x20")
+ self.bid128_to_binary64("0", "[2f902cee347e6117008476a23440dc3d]", "[3481e04046697b95]", "0x20")
+ self.bid128_to_binary64("1", "[2f902cee347e6117008476a23440dc3d]", "[3481e04046697b95]", "0x20")
+ self.bid128_to_binary64("2", "[2f902cee347e6117008476a23440dc3d]", "[3481e04046697b96]", "0x20")
+ self.bid128_to_binary64("3", "[2f902cee347e6117008476a23440dc3d]", "[3481e04046697b95]", "0x20")
+ self.bid128_to_binary64("4", "[2f902cee347e6117008476a23440dc3d]", "[3481e04046697b95]", "0x20")
+ self.bid128_to_binary64("0", "[2f9de9664cd46e010dbd1c12d06b0b4e]", "[35f736223c92bab7]", "0x20")
+ self.bid128_to_binary64("1", "[2f9de9664cd46e010dbd1c12d06b0b4e]", "[35f736223c92bab6]", "0x20")
+ self.bid128_to_binary64("2", "[2f9de9664cd46e010dbd1c12d06b0b4e]", "[35f736223c92bab7]", "0x20")
+ self.bid128_to_binary64("3", "[2f9de9664cd46e010dbd1c12d06b0b4e]", "[35f736223c92bab6]", "0x20")
+ self.bid128_to_binary64("4", "[2f9de9664cd46e010dbd1c12d06b0b4e]", "[35f736223c92bab7]", "0x20")
+ self.bid128_to_binary64("0", "[2fa8a7225a9797f4f70c4f2328d0e283]", "[371e3d2085becec0]", "0x20")
+ self.bid128_to_binary64("1", "[2fa8a7225a9797f4f70c4f2328d0e283]", "[371e3d2085becebf]", "0x20")
+ self.bid128_to_binary64("2", "[2fa8a7225a9797f4f70c4f2328d0e283]", "[371e3d2085becec0]", "0x20")
+ self.bid128_to_binary64("3", "[2fa8a7225a9797f4f70c4f2328d0e283]", "[371e3d2085becebf]", "0x20")
+ self.bid128_to_binary64("4", "[2fa8a7225a9797f4f70c4f2328d0e283]", "[371e3d2085becec0]", "0x20")
+ self.bid128_to_binary64("0", "[2fb621dc3229ed61e9243064a3d4c0b8]", "[386d36361267d236]", "0x20")
+ self.bid128_to_binary64("1", "[2fb621dc3229ed61e9243064a3d4c0b8]", "[386d36361267d236]", "0x20")
+ self.bid128_to_binary64("2", "[2fb621dc3229ed61e9243064a3d4c0b8]", "[386d36361267d237]", "0x20")
+ self.bid128_to_binary64("3", "[2fb621dc3229ed61e9243064a3d4c0b8]", "[386d36361267d236]", "0x20")
+ self.bid128_to_binary64("4", "[2fb621dc3229ed61e9243064a3d4c0b8]", "[386d36361267d236]", "0x20")
+ self.bid128_to_binary64("0", "[2fc28def7f4805cabb83639497b10967]", "[39cd31c73d385d61]", "0x20")
+ self.bid128_to_binary64("1", "[2fc28def7f4805cabb83639497b10967]", "[39cd31c73d385d60]", "0x20")
+ self.bid128_to_binary64("2", "[2fc28def7f4805cabb83639497b10967]", "[39cd31c73d385d61]", "0x20")
+ self.bid128_to_binary64("3", "[2fc28def7f4805cabb83639497b10967]", "[39cd31c73d385d60]", "0x20")
+ self.bid128_to_binary64("4", "[2fc28def7f4805cabb83639497b10967]", "[39cd31c73d385d61]", "0x20")
+ self.bid128_to_binary64("0", "[2fcf6bb7c3ec8639200122f3e1e1d776]", "[3b21d6300c259438]", "0x20")
+ self.bid128_to_binary64("1", "[2fcf6bb7c3ec8639200122f3e1e1d776]", "[3b21d6300c259437]", "0x20")
+ self.bid128_to_binary64("2", "[2fcf6bb7c3ec8639200122f3e1e1d776]", "[3b21d6300c259438]", "0x20")
+ self.bid128_to_binary64("3", "[2fcf6bb7c3ec8639200122f3e1e1d776]", "[3b21d6300c259437]", "0x20")
+ self.bid128_to_binary64("4", "[2fcf6bb7c3ec8639200122f3e1e1d776]", "[3b21d6300c259438]", "0x20")
+ self.bid128_to_binary64("0", "[2fdbe3f567431813c577f569b9a27aff]", "[3c66a240d06827e6]", "0x20")
+ self.bid128_to_binary64("1", "[2fdbe3f567431813c577f569b9a27aff]", "[3c66a240d06827e5]", "0x20")
+ self.bid128_to_binary64("2", "[2fdbe3f567431813c577f569b9a27aff]", "[3c66a240d06827e6]", "0x20")
+ self.bid128_to_binary64("3", "[2fdbe3f567431813c577f569b9a27aff]", "[3c66a240d06827e5]", "0x20")
+ self.bid128_to_binary64("4", "[2fdbe3f567431813c577f569b9a27aff]", "[3c66a240d06827e6]", "0x20")
+ self.bid128_to_binary64("0", "[2fe823abd2bb811660c1a51458793774]", "[3d9fd1dbc4ccf398]", "0x20")
+ self.bid128_to_binary64("1", "[2fe823abd2bb811660c1a51458793774]", "[3d9fd1dbc4ccf398]", "0x20")
+ self.bid128_to_binary64("2", "[2fe823abd2bb811660c1a51458793774]", "[3d9fd1dbc4ccf399]", "0x20")
+ self.bid128_to_binary64("3", "[2fe823abd2bb811660c1a51458793774]", "[3d9fd1dbc4ccf398]", "0x20")
+ self.bid128_to_binary64("4", "[2fe823abd2bb811660c1a51458793774]", "[3d9fd1dbc4ccf398]", "0x20")
+ self.bid128_to_binary64("0", "[2ff496769829a806b11db166ba7493a4]", "[3effffffc13fe6dc]", "0x20")
+ self.bid128_to_binary64("1", "[2ff496769829a806b11db166ba7493a4]", "[3effffffc13fe6dc]", "0x20")
+ self.bid128_to_binary64("2", "[2ff496769829a806b11db166ba7493a4]", "[3effffffc13fe6dd]", "0x20")
+ self.bid128_to_binary64("3", "[2ff496769829a806b11db166ba7493a4]", "[3effffffc13fe6dc]", "0x20")
+ self.bid128_to_binary64("4", "[2ff496769829a806b11db166ba7493a4]", "[3effffffc13fe6dc]", "0x20")
+ self.bid128_to_binary64("0", "[3001ed09bead85ebde8e5dfd8c1bde79]", "[4058ffffffffe840]", "0x20")
+ self.bid128_to_binary64("1", "[3001ed09bead85ebde8e5dfd8c1bde79]", "[4058ffffffffe840]", "0x20")
+ self.bid128_to_binary64("2", "[3001ed09bead85ebde8e5dfd8c1bde79]", "[4058ffffffffe841]", "0x20")
+ self.bid128_to_binary64("3", "[3001ed09bead85ebde8e5dfd8c1bde79]", "[4058ffffffffe840]", "0x20")
+ self.bid128_to_binary64("4", "[3001ed09bead85ebde8e5dfd8c1bde79]", "[4058ffffffffe840]", "0x20")
+ self.bid128_to_binary64("0", "[300ded09bead87c0378d8e63ffffffff]", "[4197d78400000000]", "0x20")
+ self.bid128_to_binary64("1", "[300ded09bead87c0378d8e63ffffffff]", "[4197d783ffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[300ded09bead87c0378d8e63ffffffff]", "[4197d78400000000]", "0x20")
+ self.bid128_to_binary64("3", "[300ded09bead87c0378d8e63ffffffff]", "[4197d783ffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[300ded09bead87c0378d8e63ffffffff]", "[4197d78400000000]", "0x20")
+ self.bid128_to_binary64("0", "[301a22b1c8c12279ffffffffffffffff]", "[42d0000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[301a22b1c8c12279ffffffffffffffff]", "[42cfffffffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[301a22b1c8c12279ffffffffffffffff]", "[42d0000000000000]", "0x20")
+ self.bid128_to_binary64("3", "[301a22b1c8c12279ffffffffffffffff]", "[42cfffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[301a22b1c8c12279ffffffffffffffff]", "[42d0000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[30269184e729ffffffffffffffffffff]", "[4430000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[30269184e729ffffffffffffffffffff]", "[442fffffffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[30269184e729ffffffffffffffffffff]", "[4430000000000000]", "0x20")
+ self.bid128_to_binary64("3", "[30269184e729ffffffffffffffffffff]", "[442fffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[30269184e729ffffffffffffffffffff]", "[4430000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[303000000000000000000000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[303000000000000000000000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[303000000000000000000000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[303000000000000000000000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[303000000000000000000000004d7c6d]", "[3faa000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[3033ed09bead87c02fdc37ffffffffff]", "[4589d971e4fe8401]", "0x20")
+ self.bid128_to_binary64("1", "[3033ed09bead87c02fdc37ffffffffff]", "[4589d971e4fe8401]", "0x20")
+ self.bid128_to_binary64("2", "[3033ed09bead87c02fdc37ffffffffff]", "[4589d971e4fe8402]", "0x20")
+ self.bid128_to_binary64("3", "[3033ed09bead87c02fdc37ffffffffff]", "[4589d971e4fe8401]", "0x20")
+ self.bid128_to_binary64("4", "[3033ed09bead87c02fdc37ffffffffff]", "[4589d971e4fe8401]", "0x20")
+ self.bid128_to_binary64("0", "[303e000000000000000000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[303e000000000000000000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[303e000000000000000000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[303e000000000000000000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[303e000000000000000000000000000f]", "[3ff8000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[303fed09bead87c02fffffffffffffff]", "[46c8a6e32246c99c]", "0x20")
+ self.bid128_to_binary64("1", "[303fed09bead87c02fffffffffffffff]", "[46c8a6e32246c99b]", "0x20")
+ self.bid128_to_binary64("2", "[303fed09bead87c02fffffffffffffff]", "[46c8a6e32246c99c]", "0x20")
+ self.bid128_to_binary64("3", "[303fed09bead87c02fffffffffffffff]", "[46c8a6e32246c99b]", "0x20")
+ self.bid128_to_binary64("4", "[303fed09bead87c02fffffffffffffff]", "[46c8a6e32246c99c]", "0x20")
+ self.bid128_to_binary64("0", "[30400000000000000000000000000000]", "[0000000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[30400000000000000000000000000000]", "[0000000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[30400000000000000000000000000000]", "[0000000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[30400000000000000000000000000000]", "[0000000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[30400000000000000000000000000000]", "[0000000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[30400000000000000000000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[30400000000000000000000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[30400000000000000000000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[30400000000000000000000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[30400000000000000000000000000001]", "[3ff0000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[30400000000000000000000000000040]", "[4050000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[30400000000000000000000000000040]", "[4050000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[30400000000000000000000000000040]", "[4050000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[30400000000000000000000000000040]", "[4050000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[30400000000000000000000000000040]", "[4050000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[304000000000000000000000000003e7]", "[408f380000000000]", "0x00")
+ self.bid128_to_binary64("1", "[304000000000000000000000000003e7]", "[408f380000000000]", "0x00")
+ self.bid128_to_binary64("2", "[304000000000000000000000000003e7]", "[408f380000000000]", "0x00")
+ self.bid128_to_binary64("3", "[304000000000000000000000000003e7]", "[408f380000000000]", "0x00")
+ self.bid128_to_binary64("4", "[304000000000000000000000000003e7]", "[408f380000000000]", "0x00")
+ self.bid128_to_binary64("0", "[304000000000000000000000000003e8]", "[408f400000000000]", "0x00")
+ self.bid128_to_binary64("1", "[304000000000000000000000000003e8]", "[408f400000000000]", "0x00")
+ self.bid128_to_binary64("2", "[304000000000000000000000000003e8]", "[408f400000000000]", "0x00")
+ self.bid128_to_binary64("3", "[304000000000000000000000000003e8]", "[408f400000000000]", "0x00")
+ self.bid128_to_binary64("4", "[304000000000000000000000000003e8]", "[408f400000000000]", "0x00")
+ self.bid128_to_binary64("0", "[304b4f8b588e364d4562e09fe86833c6]", "[47fffffffffff9ba]", "0x20")
+ self.bid128_to_binary64("1", "[304b4f8b588e364d4562e09fe86833c6]", "[47fffffffffff9ba]", "0x20")
+ self.bid128_to_binary64("2", "[304b4f8b588e364d4562e09fe86833c6]", "[47fffffffffff9bb]", "0x20")
+ self.bid128_to_binary64("3", "[304b4f8b588e364d4562e09fe86833c6]", "[47fffffffffff9ba]", "0x20")
+ self.bid128_to_binary64("4", "[304b4f8b588e364d4562e09fe86833c6]", "[47fffffffffff9ba]", "0x20")
+ self.bid128_to_binary64("0", "[30588cbccbfbf4cbc99d1f1e30afc14f]", "[495ffffffcef7163]", "0x20")
+ self.bid128_to_binary64("1", "[30588cbccbfbf4cbc99d1f1e30afc14f]", "[495ffffffcef7162]", "0x20")
+ self.bid128_to_binary64("2", "[30588cbccbfbf4cbc99d1f1e30afc14f]", "[495ffffffcef7163]", "0x20")
+ self.bid128_to_binary64("3", "[30588cbccbfbf4cbc99d1f1e30afc14f]", "[495ffffffcef7162]", "0x20")
+ self.bid128_to_binary64("4", "[30588cbccbfbf4cbc99d1f1e30afc14f]", "[495ffffffcef7163]", "0x20")
+ self.bid128_to_binary64("0", "[3065ed096477328b3e88c46e053ef997]", "[4ababa4230a33d01]", "0x20")
+ self.bid128_to_binary64("1", "[3065ed096477328b3e88c46e053ef997]", "[4ababa4230a33d01]", "0x20")
+ self.bid128_to_binary64("2", "[3065ed096477328b3e88c46e053ef997]", "[4ababa4230a33d02]", "0x20")
+ self.bid128_to_binary64("3", "[3065ed096477328b3e88c46e053ef997]", "[4ababa4230a33d01]", "0x20")
+ self.bid128_to_binary64("4", "[3065ed096477328b3e88c46e053ef997]", "[4ababa4230a33d01]", "0x20")
+ self.bid128_to_binary64("0", "[30712d5a345b30eb4f54b9521017267c]", "[4bef28bb07d9388c]", "0x20")
+ self.bid128_to_binary64("1", "[30712d5a345b30eb4f54b9521017267c]", "[4bef28bb07d9388b]", "0x20")
+ self.bid128_to_binary64("2", "[30712d5a345b30eb4f54b9521017267c]", "[4bef28bb07d9388c]", "0x20")
+ self.bid128_to_binary64("3", "[30712d5a345b30eb4f54b9521017267c]", "[4bef28bb07d9388b]", "0x20")
+ self.bid128_to_binary64("4", "[30712d5a345b30eb4f54b9521017267c]", "[4bef28bb07d9388c]", "0x20")
+ self.bid128_to_binary64("0", "[307d04dd7d609691fae5a9e6d711bdb8]", "[4d29b929ce859a3d]", "0x20")
+ self.bid128_to_binary64("1", "[307d04dd7d609691fae5a9e6d711bdb8]", "[4d29b929ce859a3d]", "0x20")
+ self.bid128_to_binary64("2", "[307d04dd7d609691fae5a9e6d711bdb8]", "[4d29b929ce859a3e]", "0x20")
+ self.bid128_to_binary64("3", "[307d04dd7d609691fae5a9e6d711bdb8]", "[4d29b929ce859a3d]", "0x20")
+ self.bid128_to_binary64("4", "[307d04dd7d609691fae5a9e6d711bdb8]", "[4d29b929ce859a3d]", "0x20")
+ self.bid128_to_binary64("0", "[308a82fe99d39a8a899e8e04910c4870]", "[4e8ecbf26024178e]", "0x20")
+ self.bid128_to_binary64("1", "[308a82fe99d39a8a899e8e04910c4870]", "[4e8ecbf26024178d]", "0x20")
+ self.bid128_to_binary64("2", "[308a82fe99d39a8a899e8e04910c4870]", "[4e8ecbf26024178e]", "0x20")
+ self.bid128_to_binary64("3", "[308a82fe99d39a8a899e8e04910c4870]", "[4e8ecbf26024178d]", "0x20")
+ self.bid128_to_binary64("4", "[308a82fe99d39a8a899e8e04910c4870]", "[4e8ecbf26024178e]", "0x20")
+ self.bid128_to_binary64("0", "[3097eaf0ee51f33218e16056d600a6e3]", "[4feb84a8ea02ec91]", "0x20")
+ self.bid128_to_binary64("1", "[3097eaf0ee51f33218e16056d600a6e3]", "[4feb84a8ea02ec90]", "0x20")
+ self.bid128_to_binary64("2", "[3097eaf0ee51f33218e16056d600a6e3]", "[4feb84a8ea02ec91]", "0x20")
+ self.bid128_to_binary64("3", "[3097eaf0ee51f33218e16056d600a6e3]", "[4feb84a8ea02ec90]", "0x20")
+ self.bid128_to_binary64("4", "[3097eaf0ee51f33218e16056d600a6e3]", "[4feb84a8ea02ec91]", "0x20")
+ self.bid128_to_binary64("0", "[30a3b7efaeff491fc2a3f230f443aa4a]", "[512784550720cd0a]", "0x20")
+ self.bid128_to_binary64("1", "[30a3b7efaeff491fc2a3f230f443aa4a]", "[512784550720cd0a]", "0x20")
+ self.bid128_to_binary64("2", "[30a3b7efaeff491fc2a3f230f443aa4a]", "[512784550720cd0b]", "0x20")
+ self.bid128_to_binary64("3", "[30a3b7efaeff491fc2a3f230f443aa4a]", "[512784550720cd0a]", "0x20")
+ self.bid128_to_binary64("4", "[30a3b7efaeff491fc2a3f230f443aa4a]", "[512784550720cd0a]", "0x20")
+ self.bid128_to_binary64("0", "[30ae93cc24249799eff459a22ac1c0b6]", "[524e2362ba9aca8f]", "0x20")
+ self.bid128_to_binary64("1", "[30ae93cc24249799eff459a22ac1c0b6]", "[524e2362ba9aca8e]", "0x20")
+ self.bid128_to_binary64("2", "[30ae93cc24249799eff459a22ac1c0b6]", "[524e2362ba9aca8f]", "0x20")
+ self.bid128_to_binary64("3", "[30ae93cc24249799eff459a22ac1c0b6]", "[524e2362ba9aca8e]", "0x20")
+ self.bid128_to_binary64("4", "[30ae93cc24249799eff459a22ac1c0b6]", "[524e2362ba9aca8f]", "0x20")
+ self.bid128_to_binary64("0", "[30ba85afe9a46595b407258b8bb09d32]", "[5389ff7f7377d48c]", "0x20")
+ self.bid128_to_binary64("1", "[30ba85afe9a46595b407258b8bb09d32]", "[5389ff7f7377d48b]", "0x20")
+ self.bid128_to_binary64("2", "[30ba85afe9a46595b407258b8bb09d32]", "[5389ff7f7377d48c]", "0x20")
+ self.bid128_to_binary64("3", "[30ba85afe9a46595b407258b8bb09d32]", "[5389ff7f7377d48b]", "0x20")
+ self.bid128_to_binary64("4", "[30ba85afe9a46595b407258b8bb09d32]", "[5389ff7f7377d48c]", "0x20")
+ self.bid128_to_binary64("0", "[30c99daffad7d9da4427ef19883537cb]", "[5517f9cec61b967f]", "0x20")
+ self.bid128_to_binary64("1", "[30c99daffad7d9da4427ef19883537cb]", "[5517f9cec61b967f]", "0x20")
+ self.bid128_to_binary64("2", "[30c99daffad7d9da4427ef19883537cb]", "[5517f9cec61b9680]", "0x20")
+ self.bid128_to_binary64("3", "[30c99daffad7d9da4427ef19883537cb]", "[5517f9cec61b967f]", "0x20")
+ self.bid128_to_binary64("4", "[30c99daffad7d9da4427ef19883537cb]", "[5517f9cec61b967f]", "0x20")
+ self.bid128_to_binary64("0", "[30d527633b4076e77736a6077de29a31]", "[5650539634e35fcc]", "0x20")
+ self.bid128_to_binary64("1", "[30d527633b4076e77736a6077de29a31]", "[5650539634e35fcc]", "0x20")
+ self.bid128_to_binary64("2", "[30d527633b4076e77736a6077de29a31]", "[5650539634e35fcd]", "0x20")
+ self.bid128_to_binary64("3", "[30d527633b4076e77736a6077de29a31]", "[5650539634e35fcc]", "0x20")
+ self.bid128_to_binary64("4", "[30d527633b4076e77736a6077de29a31]", "[5650539634e35fcc]", "0x20")
+ self.bid128_to_binary64("0", "[30e0db98b1b5c21149bb43ecdefa7dbe]", "[57872679a53c907c]", "0x20")
+ self.bid128_to_binary64("1", "[30e0db98b1b5c21149bb43ecdefa7dbe]", "[57872679a53c907b]", "0x20")
+ self.bid128_to_binary64("2", "[30e0db98b1b5c21149bb43ecdefa7dbe]", "[57872679a53c907c]", "0x20")
+ self.bid128_to_binary64("3", "[30e0db98b1b5c21149bb43ecdefa7dbe]", "[57872679a53c907b]", "0x20")
+ self.bid128_to_binary64("4", "[30e0db98b1b5c21149bb43ecdefa7dbe]", "[57872679a53c907c]", "0x20")
+ self.bid128_to_binary64("0", "[30ee3ac93efcade1e886123d75216291]", "[58dd8d1f846203b0]", "0x20")
+ self.bid128_to_binary64("1", "[30ee3ac93efcade1e886123d75216291]", "[58dd8d1f846203af]", "0x20")
+ self.bid128_to_binary64("2", "[30ee3ac93efcade1e886123d75216291]", "[58dd8d1f846203b0]", "0x20")
+ self.bid128_to_binary64("3", "[30ee3ac93efcade1e886123d75216291]", "[58dd8d1f846203af]", "0x20")
+ self.bid128_to_binary64("4", "[30ee3ac93efcade1e886123d75216291]", "[58dd8d1f846203b0]", "0x20")
+ self.bid128_to_binary64("0", "[30fb4ad80cb1651eb5bef6358602bcf0]", "[5a43d37312d4ba38]", "0x20")
+ self.bid128_to_binary64("1", "[30fb4ad80cb1651eb5bef6358602bcf0]", "[5a43d37312d4ba37]", "0x20")
+ self.bid128_to_binary64("2", "[30fb4ad80cb1651eb5bef6358602bcf0]", "[5a43d37312d4ba38]", "0x20")
+ self.bid128_to_binary64("3", "[30fb4ad80cb1651eb5bef6358602bcf0]", "[5a43d37312d4ba37]", "0x20")
+ self.bid128_to_binary64("4", "[30fb4ad80cb1651eb5bef6358602bcf0]", "[5a43d37312d4ba38]", "0x20")
+ self.bid128_to_binary64("0", "[31077a18e0ed5824c258ff7aff2afe10]", "[5b859ba6e8ea8d62]", "0x20")
+ self.bid128_to_binary64("1", "[31077a18e0ed5824c258ff7aff2afe10]", "[5b859ba6e8ea8d61]", "0x20")
+ self.bid128_to_binary64("2", "[31077a18e0ed5824c258ff7aff2afe10]", "[5b859ba6e8ea8d62]", "0x20")
+ self.bid128_to_binary64("3", "[31077a18e0ed5824c258ff7aff2afe10]", "[5b859ba6e8ea8d61]", "0x20")
+ self.bid128_to_binary64("4", "[31077a18e0ed5824c258ff7aff2afe10]", "[5b859ba6e8ea8d62]", "0x20")
+ self.bid128_to_binary64("0", "[3112f0ce940c0a71f3b06af1fcc7ad24]", "[5cba3fb5a5c41d4e]", "0x20")
+ self.bid128_to_binary64("1", "[3112f0ce940c0a71f3b06af1fcc7ad24]", "[5cba3fb5a5c41d4e]", "0x20")
+ self.bid128_to_binary64("2", "[3112f0ce940c0a71f3b06af1fcc7ad24]", "[5cba3fb5a5c41d4f]", "0x20")
+ self.bid128_to_binary64("3", "[3112f0ce940c0a71f3b06af1fcc7ad24]", "[5cba3fb5a5c41d4e]", "0x20")
+ self.bid128_to_binary64("4", "[3112f0ce940c0a71f3b06af1fcc7ad24]", "[5cba3fb5a5c41d4e]", "0x20")
+ self.bid128_to_binary64("0", "[31204528db37b062641415b942ae355d]", "[5e11f93b1cb58737]", "0x20")
+ self.bid128_to_binary64("1", "[31204528db37b062641415b942ae355d]", "[5e11f93b1cb58736]", "0x20")
+ self.bid128_to_binary64("2", "[31204528db37b062641415b942ae355d]", "[5e11f93b1cb58737]", "0x20")
+ self.bid128_to_binary64("3", "[31204528db37b062641415b942ae355d]", "[5e11f93b1cb58736]", "0x20")
+ self.bid128_to_binary64("4", "[31204528db37b062641415b942ae355d]", "[5e11f93b1cb58737]", "0x20")
+ self.bid128_to_binary64("0", "[312de7201155b0f39cf2f516cd5cba51]", "[5f7e2ed8f12cc30c]", "0x20")
+ self.bid128_to_binary64("1", "[312de7201155b0f39cf2f516cd5cba51]", "[5f7e2ed8f12cc30c]", "0x20")
+ self.bid128_to_binary64("2", "[312de7201155b0f39cf2f516cd5cba51]", "[5f7e2ed8f12cc30d]", "0x20")
+ self.bid128_to_binary64("3", "[312de7201155b0f39cf2f516cd5cba51]", "[5f7e2ed8f12cc30c]", "0x20")
+ self.bid128_to_binary64("4", "[312de7201155b0f39cf2f516cd5cba51]", "[5f7e2ed8f12cc30c]", "0x20")
+ self.bid128_to_binary64("0", "[313969eef0de654f59bbb34aaa5ef4c8]", "[60b5631436f9979e]", "0x20")
+ self.bid128_to_binary64("1", "[313969eef0de654f59bbb34aaa5ef4c8]", "[60b5631436f9979d]", "0x20")
+ self.bid128_to_binary64("2", "[313969eef0de654f59bbb34aaa5ef4c8]", "[60b5631436f9979e]", "0x20")
+ self.bid128_to_binary64("3", "[313969eef0de654f59bbb34aaa5ef4c8]", "[60b5631436f9979d]", "0x20")
+ self.bid128_to_binary64("4", "[313969eef0de654f59bbb34aaa5ef4c8]", "[60b5631436f9979e]", "0x20")
+ self.bid128_to_binary64("0", "[3144ad1423e6455cffa2aeda21b7bdca]", "[61e381d959167517]", "0x20")
+ self.bid128_to_binary64("1", "[3144ad1423e6455cffa2aeda21b7bdca]", "[61e381d959167516]", "0x20")
+ self.bid128_to_binary64("2", "[3144ad1423e6455cffa2aeda21b7bdca]", "[61e381d959167517]", "0x20")
+ self.bid128_to_binary64("3", "[3144ad1423e6455cffa2aeda21b7bdca]", "[61e381d959167516]", "0x20")
+ self.bid128_to_binary64("4", "[3144ad1423e6455cffa2aeda21b7bdca]", "[61e381d959167517]", "0x20")
+ self.bid128_to_binary64("0", "[31526bfd32b145af5da7ace6def04a25]", "[634d04ae3c7548b2]", "0x20")
+ self.bid128_to_binary64("1", "[31526bfd32b145af5da7ace6def04a25]", "[634d04ae3c7548b1]", "0x20")
+ self.bid128_to_binary64("2", "[31526bfd32b145af5da7ace6def04a25]", "[634d04ae3c7548b2]", "0x20")
+ self.bid128_to_binary64("3", "[31526bfd32b145af5da7ace6def04a25]", "[634d04ae3c7548b1]", "0x20")
+ self.bid128_to_binary64("4", "[31526bfd32b145af5da7ace6def04a25]", "[634d04ae3c7548b2]", "0x20")
+ self.bid128_to_binary64("0", "[315e58d0633b5bbf58932ef801892d4d]", "[6486c293dbfcc0b2]", "0x20")
+ self.bid128_to_binary64("1", "[315e58d0633b5bbf58932ef801892d4d]", "[6486c293dbfcc0b1]", "0x20")
+ self.bid128_to_binary64("2", "[315e58d0633b5bbf58932ef801892d4d]", "[6486c293dbfcc0b2]", "0x20")
+ self.bid128_to_binary64("3", "[315e58d0633b5bbf58932ef801892d4d]", "[6486c293dbfcc0b1]", "0x20")
+ self.bid128_to_binary64("4", "[315e58d0633b5bbf58932ef801892d4d]", "[6486c293dbfcc0b2]", "0x20")
+ self.bid128_to_binary64("0", "[316b768b41fcce6487a21ee4bb878155]", "[65e6e25852f5b840]", "0x20")
+ self.bid128_to_binary64("1", "[316b768b41fcce6487a21ee4bb878155]", "[65e6e25852f5b840]", "0x20")
+ self.bid128_to_binary64("2", "[316b768b41fcce6487a21ee4bb878155]", "[65e6e25852f5b841]", "0x20")
+ self.bid128_to_binary64("3", "[316b768b41fcce6487a21ee4bb878155]", "[65e6e25852f5b840]", "0x20")
+ self.bid128_to_binary64("4", "[316b768b41fcce6487a21ee4bb878155]", "[65e6e25852f5b840]", "0x20")
+ self.bid128_to_binary64("0", "[3176f1b3b521714be5d0cafecd53d572]", "[671c2ac87076fe35]", "0x20")
+ self.bid128_to_binary64("1", "[3176f1b3b521714be5d0cafecd53d572]", "[671c2ac87076fe34]", "0x20")
+ self.bid128_to_binary64("2", "[3176f1b3b521714be5d0cafecd53d572]", "[671c2ac87076fe35]", "0x20")
+ self.bid128_to_binary64("3", "[3176f1b3b521714be5d0cafecd53d572]", "[671c2ac87076fe34]", "0x20")
+ self.bid128_to_binary64("4", "[3176f1b3b521714be5d0cafecd53d572]", "[671c2ac87076fe35]", "0x20")
+ self.bid128_to_binary64("0", "[3184490d7ade8edc986916d871a138d9]", "[68744c1c1a4378ae]", "0x20")
+ self.bid128_to_binary64("1", "[3184490d7ade8edc986916d871a138d9]", "[68744c1c1a4378ad]", "0x20")
+ self.bid128_to_binary64("2", "[3184490d7ade8edc986916d871a138d9]", "[68744c1c1a4378ae]", "0x20")
+ self.bid128_to_binary64("3", "[3184490d7ade8edc986916d871a138d9]", "[68744c1c1a4378ad]", "0x20")
+ self.bid128_to_binary64("4", "[3184490d7ade8edc986916d871a138d9]", "[68744c1c1a4378ae]", "0x20")
+ self.bid128_to_binary64("0", "[3191bb13cb68c49028b0cc2d5671c46f]", "[69dd59d6f5acb857]", "0x20")
+ self.bid128_to_binary64("1", "[3191bb13cb68c49028b0cc2d5671c46f]", "[69dd59d6f5acb856]", "0x20")
+ self.bid128_to_binary64("2", "[3191bb13cb68c49028b0cc2d5671c46f]", "[69dd59d6f5acb857]", "0x20")
+ self.bid128_to_binary64("3", "[3191bb13cb68c49028b0cc2d5671c46f]", "[69dd59d6f5acb856]", "0x20")
+ self.bid128_to_binary64("4", "[3191bb13cb68c49028b0cc2d5671c46f]", "[69dd59d6f5acb857]", "0x20")
+ self.bid128_to_binary64("0", "[319b84445f015b4c10ce0fae3da48e1c]", "[6ae39f76078b80d0]", "0x20")
+ self.bid128_to_binary64("1", "[319b84445f015b4c10ce0fae3da48e1c]", "[6ae39f76078b80d0]", "0x20")
+ self.bid128_to_binary64("2", "[319b84445f015b4c10ce0fae3da48e1c]", "[6ae39f76078b80d1]", "0x20")
+ self.bid128_to_binary64("3", "[319b84445f015b4c10ce0fae3da48e1c]", "[6ae39f76078b80d0]", "0x20")
+ self.bid128_to_binary64("4", "[319b84445f015b4c10ce0fae3da48e1c]", "[6ae39f76078b80d0]", "0x20")
+ self.bid128_to_binary64("0", "[31a8b712df8483b063c15f5ece59c6ee]", "[6c460f453ab19c99]", "0x20")
+ self.bid128_to_binary64("1", "[31a8b712df8483b063c15f5ece59c6ee]", "[6c460f453ab19c98]", "0x20")
+ self.bid128_to_binary64("2", "[31a8b712df8483b063c15f5ece59c6ee]", "[6c460f453ab19c99]", "0x20")
+ self.bid128_to_binary64("3", "[31a8b712df8483b063c15f5ece59c6ee]", "[6c460f453ab19c98]", "0x20")
+ self.bid128_to_binary64("4", "[31a8b712df8483b063c15f5ece59c6ee]", "[6c460f453ab19c99]", "0x20")
+ self.bid128_to_binary64("0", "[31b65807a1c8ba040335974c72beb2e7]", "[6da94a253325f0bb]", "0x20")
+ self.bid128_to_binary64("1", "[31b65807a1c8ba040335974c72beb2e7]", "[6da94a253325f0ba]", "0x20")
+ self.bid128_to_binary64("2", "[31b65807a1c8ba040335974c72beb2e7]", "[6da94a253325f0bb]", "0x20")
+ self.bid128_to_binary64("3", "[31b65807a1c8ba040335974c72beb2e7]", "[6da94a253325f0ba]", "0x20")
+ self.bid128_to_binary64("4", "[31b65807a1c8ba040335974c72beb2e7]", "[6da94a253325f0bb]", "0x20")
+ self.bid128_to_binary64("0", "[31c1dc517e49b6ce03eb561e828843e0]", "[6eda1997ec124474]", "0x20")
+ self.bid128_to_binary64("1", "[31c1dc517e49b6ce03eb561e828843e0]", "[6eda1997ec124474]", "0x20")
+ self.bid128_to_binary64("2", "[31c1dc517e49b6ce03eb561e828843e0]", "[6eda1997ec124475]", "0x20")
+ self.bid128_to_binary64("3", "[31c1dc517e49b6ce03eb561e828843e0]", "[6eda1997ec124474]", "0x20")
+ self.bid128_to_binary64("4", "[31c1dc517e49b6ce03eb561e828843e0]", "[6eda1997ec124474]", "0x20")
+ self.bid128_to_binary64("0", "[31cd0191b59ba224b27feb0eba10f9d6]", "[700aeb6368c6a9c0]", "0x20")
+ self.bid128_to_binary64("1", "[31cd0191b59ba224b27feb0eba10f9d6]", "[700aeb6368c6a9c0]", "0x20")
+ self.bid128_to_binary64("2", "[31cd0191b59ba224b27feb0eba10f9d6]", "[700aeb6368c6a9c1]", "0x20")
+ self.bid128_to_binary64("3", "[31cd0191b59ba224b27feb0eba10f9d6]", "[700aeb6368c6a9c0]", "0x20")
+ self.bid128_to_binary64("4", "[31cd0191b59ba224b27feb0eba10f9d6]", "[700aeb6368c6a9c0]", "0x20")
+ self.bid128_to_binary64("0", "[31d910701d4fdd7f09a553277cbba864]", "[714b278827eb5c78]", "0x20")
+ self.bid128_to_binary64("1", "[31d910701d4fdd7f09a553277cbba864]", "[714b278827eb5c78]", "0x20")
+ self.bid128_to_binary64("2", "[31d910701d4fdd7f09a553277cbba864]", "[714b278827eb5c79]", "0x20")
+ self.bid128_to_binary64("3", "[31d910701d4fdd7f09a553277cbba864]", "[714b278827eb5c78]", "0x20")
+ self.bid128_to_binary64("4", "[31d910701d4fdd7f09a553277cbba864]", "[714b278827eb5c78]", "0x20")
+ self.bid128_to_binary64("0", "[31e83e23690a2a02cf1323b065b7ff04]", "[72d27539be4e1f54]", "0x20")
+ self.bid128_to_binary64("1", "[31e83e23690a2a02cf1323b065b7ff04]", "[72d27539be4e1f54]", "0x20")
+ self.bid128_to_binary64("2", "[31e83e23690a2a02cf1323b065b7ff04]", "[72d27539be4e1f55]", "0x20")
+ self.bid128_to_binary64("3", "[31e83e23690a2a02cf1323b065b7ff04]", "[72d27539be4e1f54]", "0x20")
+ self.bid128_to_binary64("4", "[31e83e23690a2a02cf1323b065b7ff04]", "[72d27539be4e1f54]", "0x20")
+ self.bid128_to_binary64("0", "[31f338d4af8a3b5910d266b789b07040]", "[7401b95a8121afac]", "0x20")
+ self.bid128_to_binary64("1", "[31f338d4af8a3b5910d266b789b07040]", "[7401b95a8121afab]", "0x20")
+ self.bid128_to_binary64("2", "[31f338d4af8a3b5910d266b789b07040]", "[7401b95a8121afac]", "0x20")
+ self.bid128_to_binary64("3", "[31f338d4af8a3b5910d266b789b07040]", "[7401b95a8121afab]", "0x20")
+ self.bid128_to_binary64("4", "[31f338d4af8a3b5910d266b789b07040]", "[7401b95a8121afac]", "0x20")
+ self.bid128_to_binary64("0", "[3201657cf6ffee9823c575555320b50b]", "[75782516413443e4]", "0x20")
+ self.bid128_to_binary64("1", "[3201657cf6ffee9823c575555320b50b]", "[75782516413443e4]", "0x20")
+ self.bid128_to_binary64("2", "[3201657cf6ffee9823c575555320b50b]", "[75782516413443e5]", "0x20")
+ self.bid128_to_binary64("3", "[3201657cf6ffee9823c575555320b50b]", "[75782516413443e4]", "0x20")
+ self.bid128_to_binary64("4", "[3201657cf6ffee9823c575555320b50b]", "[75782516413443e4]", "0x20")
+ self.bid128_to_binary64("0", "[320ce68b4e75278f032cbc38c529af78]", "[76adb30aec2398f3]", "0x20")
+ self.bid128_to_binary64("1", "[320ce68b4e75278f032cbc38c529af78]", "[76adb30aec2398f3]", "0x20")
+ self.bid128_to_binary64("2", "[320ce68b4e75278f032cbc38c529af78]", "[76adb30aec2398f4]", "0x20")
+ self.bid128_to_binary64("3", "[320ce68b4e75278f032cbc38c529af78]", "[76adb30aec2398f3]", "0x20")
+ self.bid128_to_binary64("4", "[320ce68b4e75278f032cbc38c529af78]", "[76adb30aec2398f3]", "0x20")
+ self.bid128_to_binary64("0", "[3219d1fd020a1d48b225714e0e1a5d8c]", "[77fc9fe1872df003]", "0x20")
+ self.bid128_to_binary64("1", "[3219d1fd020a1d48b225714e0e1a5d8c]", "[77fc9fe1872df002]", "0x20")
+ self.bid128_to_binary64("2", "[3219d1fd020a1d48b225714e0e1a5d8c]", "[77fc9fe1872df003]", "0x20")
+ self.bid128_to_binary64("3", "[3219d1fd020a1d48b225714e0e1a5d8c]", "[77fc9fe1872df002]", "0x20")
+ self.bid128_to_binary64("4", "[3219d1fd020a1d48b225714e0e1a5d8c]", "[77fc9fe1872df003]", "0x20")
+ self.bid128_to_binary64("0", "[32273c06789757d74b306cbf05de8835]", "[79672446b9de5c0c]", "0x20")
+ self.bid128_to_binary64("1", "[32273c06789757d74b306cbf05de8835]", "[79672446b9de5c0c]", "0x20")
+ self.bid128_to_binary64("2", "[32273c06789757d74b306cbf05de8835]", "[79672446b9de5c0d]", "0x20")
+ self.bid128_to_binary64("3", "[32273c06789757d74b306cbf05de8835]", "[79672446b9de5c0c]", "0x20")
+ self.bid128_to_binary64("4", "[32273c06789757d74b306cbf05de8835]", "[79672446b9de5c0c]", "0x20")
+ self.bid128_to_binary64("0", "[32324db91257eafdcf9408f3cc078980]", "[7a85b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("1", "[32324db91257eafdcf9408f3cc078980]", "[7a85b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("2", "[32324db91257eafdcf9408f3cc078980]", "[7a85b60dd016d6f9]", "0x20")
+ self.bid128_to_binary64("3", "[32324db91257eafdcf9408f3cc078980]", "[7a85b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("4", "[32324db91257eafdcf9408f3cc078980]", "[7a85b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("0", "[323e4435e252dbc8f6564cb9ed392de6]", "[7bc22bd71391c416]", "0x20")
+ self.bid128_to_binary64("1", "[323e4435e252dbc8f6564cb9ed392de6]", "[7bc22bd71391c416]", "0x20")
+ self.bid128_to_binary64("2", "[323e4435e252dbc8f6564cb9ed392de6]", "[7bc22bd71391c417]", "0x20")
+ self.bid128_to_binary64("3", "[323e4435e252dbc8f6564cb9ed392de6]", "[7bc22bd71391c416]", "0x20")
+ self.bid128_to_binary64("4", "[323e4435e252dbc8f6564cb9ed392de6]", "[7bc22bd71391c416]", "0x20")
+ self.bid128_to_binary64("0", "[324c5ee11edf051a8de580aaec8e08fe]", "[7d3e219296a4656f]", "0x20")
+ self.bid128_to_binary64("1", "[324c5ee11edf051a8de580aaec8e08fe]", "[7d3e219296a4656e]", "0x20")
+ self.bid128_to_binary64("2", "[324c5ee11edf051a8de580aaec8e08fe]", "[7d3e219296a4656f]", "0x20")
+ self.bid128_to_binary64("3", "[324c5ee11edf051a8de580aaec8e08fe]", "[7d3e219296a4656e]", "0x20")
+ self.bid128_to_binary64("4", "[324c5ee11edf051a8de580aaec8e08fe]", "[7d3e219296a4656f]", "0x20")
+ self.bid128_to_binary64("0", "[325874f69a8f5f292b9b1747ec1462d1]", "[7e81b63a955f79b1]", "0x20")
+ self.bid128_to_binary64("1", "[325874f69a8f5f292b9b1747ec1462d1]", "[7e81b63a955f79b0]", "0x20")
+ self.bid128_to_binary64("2", "[325874f69a8f5f292b9b1747ec1462d1]", "[7e81b63a955f79b1]", "0x20")
+ self.bid128_to_binary64("3", "[325874f69a8f5f292b9b1747ec1462d1]", "[7e81b63a955f79b0]", "0x20")
+ self.bid128_to_binary64("4", "[325874f69a8f5f292b9b1747ec1462d1]", "[7e81b63a955f79b1]", "0x20")
+ self.bid128_to_binary64("0", "[326658a213cc7a4ffae03c4825156fb3]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("1", "[326658a213cc7a4ffae03c4825156fb3]", "[7feffffffffffffe]", "0x20")
+ self.bid128_to_binary64("2", "[326658a213cc7a4ffae03c4825156fb3]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[326658a213cc7a4ffae03c4825156fb3]", "[7feffffffffffffe]", "0x20")
+ self.bid128_to_binary64("4", "[326658a213cc7a4ffae03c4825156fb3]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("0", "[326658a213cc7a4ffae03c4825156fb4]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("1", "[326658a213cc7a4ffae03c4825156fb4]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[326658a213cc7a4ffae03c4825156fb4]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("3", "[326658a213cc7a4ffae03c4825156fb4]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[326658a213cc7a4ffae03c4825156fb4]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("0", "[326658a213cc7a4ffda54ce688e7efa0]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("1", "[326658a213cc7a4ffda54ce688e7efa0]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[326658a213cc7a4ffda54ce688e7efa0]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("3", "[326658a213cc7a4ffda54ce688e7efa0]", "[7fefffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[326658a213cc7a4ffda54ce688e7efa0]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[326658a213cc7a4ffda54ce688e7efa1]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("1", "[326658a213cc7a4ffda54ce688e7efa1]", "[7fefffffffffffff]", "0x28")
+ self.bid128_to_binary64("2", "[326658a213cc7a4ffda54ce688e7efa1]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("3", "[326658a213cc7a4ffda54ce688e7efa1]", "[7fefffffffffffff]", "0x28")
+ self.bid128_to_binary64("4", "[326658a213cc7a4ffda54ce688e7efa1]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[5fffed09bead87c0378d8e63ffffffff]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("1", "[5fffed09bead87c0378d8e63ffffffff]", "[7fefffffffffffff]", "0x28")
+ self.bid128_to_binary64("2", "[5fffed09bead87c0378d8e63ffffffff]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("3", "[5fffed09bead87c0378d8e63ffffffff]", "[7fefffffffffffff]", "0x28")
+ self.bid128_to_binary64("4", "[5fffed09bead87c0378d8e63ffffffff]", "[7ff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[78000000000000000000000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[78000000000000000000000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[78000000000000000000000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[78000000000000000000000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[78000000000000000000000000000000]", "[7ff0000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[7c003080000000000000000000000000]", "[7ffe100000000000]", "0x00")
+ self.bid128_to_binary64("0", "[7e003080000000000000000000000000]", "[7ffe100000000000]", "0x01")
+ self.bid128_to_binary64("0", "[80000000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[80000000000000000000000000000001]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[80000000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[80000000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[80000000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[8000314dc6448d9338c15b09ffffffff]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[8000314dc6448d9338c15b09ffffffff]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[8000314dc6448d9338c15b09ffffffff]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[8000314dc6448d9338c15b09ffffffff]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[8000314dc6448d9338c15b09ffffffff]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[80420000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[80420000000000000000000000000001]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[80420000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[80420000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[80420000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[80440000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[80440000000000000000000000000001]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[80440000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[80440000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[80440000000000000000000000000001]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[ad76f397da03af06aa833fd25715f6e5]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("1", "[ad76f397da03af06aa833fd25715f6e5]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("2", "[ad76f397da03af06aa833fd25715f6e5]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("3", "[ad76f397da03af06aa833fd25715f6e5]", "[8000000000000000]", "0x30")
+ self.bid128_to_binary64("4", "[ad76f397da03af06aa833fd25715f6e5]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("0", "[ad76f397da03af06aa833fd25715f6e6]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("1", "[ad76f397da03af06aa833fd25715f6e6]", "[8000000000000002]", "0x30")
+ self.bid128_to_binary64("2", "[ad76f397da03af06aa833fd25715f6e6]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("3", "[ad76f397da03af06aa833fd25715f6e6]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("4", "[ad76f397da03af06aa833fd25715f6e6]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("0", "[ad77c5bec99ef12ddfb88fbd71f8bdfa]", "[8000000000000002]", "0x30")
+ self.bid128_to_binary64("1", "[ad77c5bec99ef12ddfb88fbd71f8bdfa]", "[8000000000000002]", "0x30")
+ self.bid128_to_binary64("2", "[ad77c5bec99ef12ddfb88fbd71f8bdfa]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("3", "[ad77c5bec99ef12ddfb88fbd71f8bdfa]", "[8000000000000001]", "0x30")
+ self.bid128_to_binary64("4", "[ad77c5bec99ef12ddfb88fbd71f8bdfa]", "[8000000000000002]", "0x30")
+ self.bid128_to_binary64("0", "[ad86008eaaa556bae22ecfc1fabf9182]", "[8000000000037dac]", "0x30")
+ self.bid128_to_binary64("1", "[ad86008eaaa556bae22ecfc1fabf9182]", "[8000000000037dac]", "0x30")
+ self.bid128_to_binary64("2", "[ad86008eaaa556bae22ecfc1fabf9182]", "[8000000000037dab]", "0x30")
+ self.bid128_to_binary64("3", "[ad86008eaaa556bae22ecfc1fabf9182]", "[8000000000037dab]", "0x30")
+ self.bid128_to_binary64("4", "[ad86008eaaa556bae22ecfc1fabf9182]", "[8000000000037dac]", "0x30")
+ self.bid128_to_binary64("0", "[ad901c673bed356ff0dfce0e408f91c5]", "[8000010f7bbc8459]", "0x30")
+ self.bid128_to_binary64("1", "[ad901c673bed356ff0dfce0e408f91c5]", "[8000010f7bbc845a]", "0x30")
+ self.bid128_to_binary64("2", "[ad901c673bed356ff0dfce0e408f91c5]", "[8000010f7bbc8459]", "0x30")
+ self.bid128_to_binary64("3", "[ad901c673bed356ff0dfce0e408f91c5]", "[8000010f7bbc8459]", "0x30")
+ self.bid128_to_binary64("4", "[ad901c673bed356ff0dfce0e408f91c5]", "[8000010f7bbc8459]", "0x30")
+ self.bid128_to_binary64("0", "[ad951242f37d23a86362e0d8acd7fff9]", "[8004000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[ad951242f37d23a86362e0d8acd7fff9]", "[8004000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[ad951242f37d23a86362e0d8acd7fff9]", "[8003ffffffffffff]", "0x30")
+ self.bid128_to_binary64("3", "[ad951242f37d23a86362e0d8acd7fff9]", "[8003ffffffffffff]", "0x30")
+ self.bid128_to_binary64("4", "[ad951242f37d23a86362e0d8acd7fff9]", "[8004000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[ad961b6d1859505da389e348de159999]", "[8004000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[ad961b6d1859505da389e348de159999]", "[8004000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[ad961b6d1859505da389e348de159999]", "[8003ffffffffffff]", "0x30")
+ self.bid128_to_binary64("3", "[ad961b6d1859505da389e348de159999]", "[8003ffffffffffff]", "0x30")
+ self.bid128_to_binary64("4", "[ad961b6d1859505da389e348de159999]", "[8004000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[ad9636da30b2a0bb4713c691bc2b3331]", "[8007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("1", "[ad9636da30b2a0bb4713c691bc2b3331]", "[8008000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[ad9636da30b2a0bb4713c691bc2b3331]", "[8007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("3", "[ad9636da30b2a0bb4713c691bc2b3331]", "[8007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("4", "[ad9636da30b2a0bb4713c691bc2b3331]", "[8007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("0", "[ad966db4616541769502d339cc6dcfb4]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[ad966db4616541769502d339cc6dcfb4]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("2", "[ad966db4616541769502d339cc6dcfb4]", "[800fffffffffffff]", "0x30")
+ self.bid128_to_binary64("3", "[ad966db4616541769502d339cc6dcfb4]", "[800fffffffffffff]", "0x30")
+ self.bid128_to_binary64("4", "[ad966db4616541769502d339cc6dcfb4]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[ad966db4616541769502d339cc6dcfb5]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[ad966db4616541769502d339cc6dcfb5]", "[8010000000000001]", "0x20")
+ self.bid128_to_binary64("2", "[ad966db4616541769502d339cc6dcfb5]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("3", "[ad966db4616541769502d339cc6dcfb5]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[ad966db4616541769502d339cc6dcfb5]", "[8010000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[ad96db68c2ca82ed2a05a67398db9f68]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[ad96db68c2ca82ed2a05a67398db9f68]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("2", "[ad96db68c2ca82ed2a05a67398db9f68]", "[801fffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[ad96db68c2ca82ed2a05a67398db9f68]", "[801fffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[ad96db68c2ca82ed2a05a67398db9f68]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[ad96db68c2ca82ed2a05a67398db9f69]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[ad96db68c2ca82ed2a05a67398db9f69]", "[8020000000000001]", "0x20")
+ self.bid128_to_binary64("2", "[ad96db68c2ca82ed2a05a67398db9f69]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("3", "[ad96db68c2ca82ed2a05a67398db9f69]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("4", "[ad96db68c2ca82ed2a05a67398db9f69]", "[8020000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[ad98057c3811dcdf871b93db5f9deb85]", "[8008000000000000]", "0x30")
+ self.bid128_to_binary64("1", "[ad98057c3811dcdf871b93db5f9deb85]", "[8008000000000000]", "0x30")
+ self.bid128_to_binary64("2", "[ad98057c3811dcdf871b93db5f9deb85]", "[8007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("3", "[ad98057c3811dcdf871b93db5f9deb85]", "[8007ffffffffffff]", "0x30")
+ self.bid128_to_binary64("4", "[ad98057c3811dcdf871b93db5f9deb85]", "[8008000000000000]", "0x30")
+ self.bid128_to_binary64("0", "[ad9cb2d2999f955cdf81368ac9e6cb75]", "[80b97826a5cad2ee]", "0x20")
+ self.bid128_to_binary64("1", "[ad9cb2d2999f955cdf81368ac9e6cb75]", "[80b97826a5cad2ef]", "0x20")
+ self.bid128_to_binary64("2", "[ad9cb2d2999f955cdf81368ac9e6cb75]", "[80b97826a5cad2ee]", "0x20")
+ self.bid128_to_binary64("3", "[ad9cb2d2999f955cdf81368ac9e6cb75]", "[80b97826a5cad2ee]", "0x20")
+ self.bid128_to_binary64("4", "[ad9cb2d2999f955cdf81368ac9e6cb75]", "[80b97826a5cad2ee]", "0x20")
+ self.bid128_to_binary64("0", "[ada90215caf6e6a0d961f85b2acdf423]", "[8201872007ea3ca2]", "0x20")
+ self.bid128_to_binary64("1", "[ada90215caf6e6a0d961f85b2acdf423]", "[8201872007ea3ca2]", "0x20")
+ self.bid128_to_binary64("2", "[ada90215caf6e6a0d961f85b2acdf423]", "[8201872007ea3ca1]", "0x20")
+ self.bid128_to_binary64("3", "[ada90215caf6e6a0d961f85b2acdf423]", "[8201872007ea3ca1]", "0x20")
+ self.bid128_to_binary64("4", "[ada90215caf6e6a0d961f85b2acdf423]", "[8201872007ea3ca2]", "0x20")
+ self.bid128_to_binary64("0", "[adb6082b11e173bef0ef60768d41bedf]", "[8325296fd10f20e6]", "0x20")
+ self.bid128_to_binary64("1", "[adb6082b11e173bef0ef60768d41bedf]", "[8325296fd10f20e7]", "0x20")
+ self.bid128_to_binary64("2", "[adb6082b11e173bef0ef60768d41bedf]", "[8325296fd10f20e6]", "0x20")
+ self.bid128_to_binary64("3", "[adb6082b11e173bef0ef60768d41bedf]", "[8325296fd10f20e6]", "0x20")
+ self.bid128_to_binary64("4", "[adb6082b11e173bef0ef60768d41bedf]", "[8325296fd10f20e6]", "0x20")
+ self.bid128_to_binary64("0", "[adc2167c808ef8fd1a8cc760d322d643]", "[847bc7621516bcdf]", "0x20")
+ self.bid128_to_binary64("1", "[adc2167c808ef8fd1a8cc760d322d643]", "[847bc7621516bcdf]", "0x20")
+ self.bid128_to_binary64("2", "[adc2167c808ef8fd1a8cc760d322d643]", "[847bc7621516bcde]", "0x20")
+ self.bid128_to_binary64("3", "[adc2167c808ef8fd1a8cc760d322d643]", "[847bc7621516bcde]", "0x20")
+ self.bid128_to_binary64("4", "[adc2167c808ef8fd1a8cc760d322d643]", "[847bc7621516bcdf]", "0x20")
+ self.bid128_to_binary64("0", "[adcecd2d889f694320b36d59bf8da236]", "[85ee3747663ce7e6]", "0x20")
+ self.bid128_to_binary64("1", "[adcecd2d889f694320b36d59bf8da236]", "[85ee3747663ce7e7]", "0x20")
+ self.bid128_to_binary64("2", "[adcecd2d889f694320b36d59bf8da236]", "[85ee3747663ce7e6]", "0x20")
+ self.bid128_to_binary64("3", "[adcecd2d889f694320b36d59bf8da236]", "[85ee3747663ce7e6]", "0x20")
+ self.bid128_to_binary64("4", "[adcecd2d889f694320b36d59bf8da236]", "[85ee3747663ce7e6]", "0x20")
+ self.bid128_to_binary64("0", "[addbd0be9ab5e54b315ea78896aad125]", "[8740515725af5b60]", "0x20")
+ self.bid128_to_binary64("1", "[addbd0be9ab5e54b315ea78896aad125]", "[8740515725af5b61]", "0x20")
+ self.bid128_to_binary64("2", "[addbd0be9ab5e54b315ea78896aad125]", "[8740515725af5b60]", "0x20")
+ self.bid128_to_binary64("3", "[addbd0be9ab5e54b315ea78896aad125]", "[8740515725af5b60]", "0x20")
+ self.bid128_to_binary64("4", "[addbd0be9ab5e54b315ea78896aad125]", "[8740515725af5b60]", "0x20")
+ self.bid128_to_binary64("0", "[ade80c39997e94db8d59d2486d544c98]", "[88605fbdb9fba0a8]", "0x20")
+ self.bid128_to_binary64("1", "[ade80c39997e94db8d59d2486d544c98]", "[88605fbdb9fba0a8]", "0x20")
+ self.bid128_to_binary64("2", "[ade80c39997e94db8d59d2486d544c98]", "[88605fbdb9fba0a7]", "0x20")
+ self.bid128_to_binary64("3", "[ade80c39997e94db8d59d2486d544c98]", "[88605fbdb9fba0a7]", "0x20")
+ self.bid128_to_binary64("4", "[ade80c39997e94db8d59d2486d544c98]", "[88605fbdb9fba0a8]", "0x20")
+ self.bid128_to_binary64("0", "[adf42d8bd2e5cc8b92b7fded3c9b4141]", "[89bd16c44fbada39]", "0x20")
+ self.bid128_to_binary64("1", "[adf42d8bd2e5cc8b92b7fded3c9b4141]", "[89bd16c44fbada3a]", "0x20")
+ self.bid128_to_binary64("2", "[adf42d8bd2e5cc8b92b7fded3c9b4141]", "[89bd16c44fbada39]", "0x20")
+ self.bid128_to_binary64("3", "[adf42d8bd2e5cc8b92b7fded3c9b4141]", "[89bd16c44fbada39]", "0x20")
+ self.bid128_to_binary64("4", "[adf42d8bd2e5cc8b92b7fded3c9b4141]", "[89bd16c44fbada39]", "0x20")
+ self.bid128_to_binary64("0", "[ae007cc64982b976797302c134f0e947]", "[8b12ffde795f7aa3]", "0x20")
+ self.bid128_to_binary64("1", "[ae007cc64982b976797302c134f0e947]", "[8b12ffde795f7aa4]", "0x20")
+ self.bid128_to_binary64("2", "[ae007cc64982b976797302c134f0e947]", "[8b12ffde795f7aa3]", "0x20")
+ self.bid128_to_binary64("3", "[ae007cc64982b976797302c134f0e947]", "[8b12ffde795f7aa3]", "0x20")
+ self.bid128_to_binary64("4", "[ae007cc64982b976797302c134f0e947]", "[8b12ffde795f7aa3]", "0x20")
+ self.bid128_to_binary64("0", "[ae0d7afe20dd2088bf24e7a4ec897569]", "[8c6b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("1", "[ae0d7afe20dd2088bf24e7a4ec897569]", "[8c6b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("2", "[ae0d7afe20dd2088bf24e7a4ec897569]", "[8c6b849b513e88c2]", "0x20")
+ self.bid128_to_binary64("3", "[ae0d7afe20dd2088bf24e7a4ec897569]", "[8c6b849b513e88c2]", "0x20")
+ self.bid128_to_binary64("4", "[ae0d7afe20dd2088bf24e7a4ec897569]", "[8c6b849b513e88c3]", "0x20")
+ self.bid128_to_binary64("0", "[ae19b68785a0b0efe5d6d0d3a432dc55]", "[8dae5da51f39c9e4]", "0x20")
+ self.bid128_to_binary64("1", "[ae19b68785a0b0efe5d6d0d3a432dc55]", "[8dae5da51f39c9e5]", "0x20")
+ self.bid128_to_binary64("2", "[ae19b68785a0b0efe5d6d0d3a432dc55]", "[8dae5da51f39c9e4]", "0x20")
+ self.bid128_to_binary64("3", "[ae19b68785a0b0efe5d6d0d3a432dc55]", "[8dae5da51f39c9e4]", "0x20")
+ self.bid128_to_binary64("4", "[ae19b68785a0b0efe5d6d0d3a432dc55]", "[8dae5da51f39c9e4]", "0x20")
+ self.bid128_to_binary64("0", "[ae261e3f0cb62c7eff3a6b52a475dc7d]", "[8ee3f94373aa0d1d]", "0x20")
+ self.bid128_to_binary64("1", "[ae261e3f0cb62c7eff3a6b52a475dc7d]", "[8ee3f94373aa0d1d]", "0x20")
+ self.bid128_to_binary64("2", "[ae261e3f0cb62c7eff3a6b52a475dc7d]", "[8ee3f94373aa0d1c]", "0x20")
+ self.bid128_to_binary64("3", "[ae261e3f0cb62c7eff3a6b52a475dc7d]", "[8ee3f94373aa0d1c]", "0x20")
+ self.bid128_to_binary64("4", "[ae261e3f0cb62c7eff3a6b52a475dc7d]", "[8ee3f94373aa0d1d]", "0x20")
+ self.bid128_to_binary64("0", "[ae32ac09dcdc43c9031d4c40967c1e59]", "[904b1620f6fa369c]", "0x20")
+ self.bid128_to_binary64("1", "[ae32ac09dcdc43c9031d4c40967c1e59]", "[904b1620f6fa369c]", "0x20")
+ self.bid128_to_binary64("2", "[ae32ac09dcdc43c9031d4c40967c1e59]", "[904b1620f6fa369b]", "0x20")
+ self.bid128_to_binary64("3", "[ae32ac09dcdc43c9031d4c40967c1e59]", "[904b1620f6fa369b]", "0x20")
+ self.bid128_to_binary64("4", "[ae32ac09dcdc43c9031d4c40967c1e59]", "[904b1620f6fa369c]", "0x20")
+ self.bid128_to_binary64("0", "[ae3ea7bb38212b98f8147164b886ec2b]", "[91892f5695d2cb74]", "0x20")
+ self.bid128_to_binary64("1", "[ae3ea7bb38212b98f8147164b886ec2b]", "[91892f5695d2cb74]", "0x20")
+ self.bid128_to_binary64("2", "[ae3ea7bb38212b98f8147164b886ec2b]", "[91892f5695d2cb73]", "0x20")
+ self.bid128_to_binary64("3", "[ae3ea7bb38212b98f8147164b886ec2b]", "[91892f5695d2cb73]", "0x20")
+ self.bid128_to_binary64("4", "[ae3ea7bb38212b98f8147164b886ec2b]", "[91892f5695d2cb74]", "0x20")
+ self.bid128_to_binary64("0", "[ae4b9318b32984bfcd409037c65830a0]", "[92dcdc5085b81dec]", "0x20")
+ self.bid128_to_binary64("1", "[ae4b9318b32984bfcd409037c65830a0]", "[92dcdc5085b81ded]", "0x20")
+ self.bid128_to_binary64("2", "[ae4b9318b32984bfcd409037c65830a0]", "[92dcdc5085b81dec]", "0x20")
+ self.bid128_to_binary64("3", "[ae4b9318b32984bfcd409037c65830a0]", "[92dcdc5085b81dec]", "0x20")
+ self.bid128_to_binary64("4", "[ae4b9318b32984bfcd409037c65830a0]", "[92dcdc5085b81dec]", "0x20")
+ self.bid128_to_binary64("0", "[ae5810ae8381db3a539ffd5d2e2e9007]", "[9406c7da7c9210a7]", "0x20")
+ self.bid128_to_binary64("1", "[ae5810ae8381db3a539ffd5d2e2e9007]", "[9406c7da7c9210a7]", "0x20")
+ self.bid128_to_binary64("2", "[ae5810ae8381db3a539ffd5d2e2e9007]", "[9406c7da7c9210a6]", "0x20")
+ self.bid128_to_binary64("3", "[ae5810ae8381db3a539ffd5d2e2e9007]", "[9406c7da7c9210a6]", "0x20")
+ self.bid128_to_binary64("4", "[ae5810ae8381db3a539ffd5d2e2e9007]", "[9406c7da7c9210a7]", "0x20")
+ self.bid128_to_binary64("0", "[ae64b222da3b1b4638578295046183ee]", "[957cffd6fd75fe79]", "0x20")
+ self.bid128_to_binary64("1", "[ae64b222da3b1b4638578295046183ee]", "[957cffd6fd75fe79]", "0x20")
+ self.bid128_to_binary64("2", "[ae64b222da3b1b4638578295046183ee]", "[957cffd6fd75fe78]", "0x20")
+ self.bid128_to_binary64("3", "[ae64b222da3b1b4638578295046183ee]", "[957cffd6fd75fe78]", "0x20")
+ self.bid128_to_binary64("4", "[ae64b222da3b1b4638578295046183ee]", "[957cffd6fd75fe79]", "0x20")
+ self.bid128_to_binary64("0", "[ae71d75f84e322f4d411f4441f38f0d5]", "[96d24b9e2fb34390]", "0x20")
+ self.bid128_to_binary64("1", "[ae71d75f84e322f4d411f4441f38f0d5]", "[96d24b9e2fb34391]", "0x20")
+ self.bid128_to_binary64("2", "[ae71d75f84e322f4d411f4441f38f0d5]", "[96d24b9e2fb34390]", "0x20")
+ self.bid128_to_binary64("3", "[ae71d75f84e322f4d411f4441f38f0d5]", "[96d24b9e2fb34390]", "0x20")
+ self.bid128_to_binary64("4", "[ae71d75f84e322f4d411f4441f38f0d5]", "[96d24b9e2fb34390]", "0x20")
+ self.bid128_to_binary64("0", "[ae7dc36774aa42a3e9af576ee439eef1]", "[9810b56c6bba87f6]", "0x20")
+ self.bid128_to_binary64("1", "[ae7dc36774aa42a3e9af576ee439eef1]", "[9810b56c6bba87f6]", "0x20")
+ self.bid128_to_binary64("2", "[ae7dc36774aa42a3e9af576ee439eef1]", "[9810b56c6bba87f5]", "0x20")
+ self.bid128_to_binary64("3", "[ae7dc36774aa42a3e9af576ee439eef1]", "[9810b56c6bba87f5]", "0x20")
+ self.bid128_to_binary64("4", "[ae7dc36774aa42a3e9af576ee439eef1]", "[9810b56c6bba87f6]", "0x20")
+ self.bid128_to_binary64("0", "[ae8a2ca527d6b30fee2c6deb1dc6ac4d]", "[994f85061496747d]", "0x20")
+ self.bid128_to_binary64("1", "[ae8a2ca527d6b30fee2c6deb1dc6ac4d]", "[994f85061496747d]", "0x20")
+ self.bid128_to_binary64("2", "[ae8a2ca527d6b30fee2c6deb1dc6ac4d]", "[994f85061496747c]", "0x20")
+ self.bid128_to_binary64("3", "[ae8a2ca527d6b30fee2c6deb1dc6ac4d]", "[994f85061496747c]", "0x20")
+ self.bid128_to_binary64("4", "[ae8a2ca527d6b30fee2c6deb1dc6ac4d]", "[994f85061496747d]", "0x20")
+ self.bid128_to_binary64("0", "[ae96a6506457aad1b409062fc8d7db63]", "[9aabfea4b95e162c]", "0x20")
+ self.bid128_to_binary64("1", "[ae96a6506457aad1b409062fc8d7db63]", "[9aabfea4b95e162d]", "0x20")
+ self.bid128_to_binary64("2", "[ae96a6506457aad1b409062fc8d7db63]", "[9aabfea4b95e162c]", "0x20")
+ self.bid128_to_binary64("3", "[ae96a6506457aad1b409062fc8d7db63]", "[9aabfea4b95e162c]", "0x20")
+ self.bid128_to_binary64("4", "[ae96a6506457aad1b409062fc8d7db63]", "[9aabfea4b95e162c]", "0x20")
+ self.bid128_to_binary64("0", "[aea2eb1cb530679d8b3bed084e60e107]", "[9bf2def1ce9ba496]", "0x20")
+ self.bid128_to_binary64("1", "[aea2eb1cb530679d8b3bed084e60e107]", "[9bf2def1ce9ba497]", "0x20")
+ self.bid128_to_binary64("2", "[aea2eb1cb530679d8b3bed084e60e107]", "[9bf2def1ce9ba496]", "0x20")
+ self.bid128_to_binary64("3", "[aea2eb1cb530679d8b3bed084e60e107]", "[9bf2def1ce9ba496]", "0x20")
+ self.bid128_to_binary64("4", "[aea2eb1cb530679d8b3bed084e60e107]", "[9bf2def1ce9ba496]", "0x20")
+ self.bid128_to_binary64("0", "[aeafc1e170381f503e7b3ea104e2ac4a]", "[9d4137d3476787a2]", "0x20")
+ self.bid128_to_binary64("1", "[aeafc1e170381f503e7b3ea104e2ac4a]", "[9d4137d3476787a2]", "0x20")
+ self.bid128_to_binary64("2", "[aeafc1e170381f503e7b3ea104e2ac4a]", "[9d4137d3476787a1]", "0x20")
+ self.bid128_to_binary64("3", "[aeafc1e170381f503e7b3ea104e2ac4a]", "[9d4137d3476787a1]", "0x20")
+ self.bid128_to_binary64("4", "[aeafc1e170381f503e7b3ea104e2ac4a]", "[9d4137d3476787a2]", "0x20")
+ self.bid128_to_binary64("0", "[aebc069cf82a5987abc559741b53311d]", "[9e534f6803053fec]", "0x20")
+ self.bid128_to_binary64("1", "[aebc069cf82a5987abc559741b53311d]", "[9e534f6803053fed]", "0x20")
+ self.bid128_to_binary64("2", "[aebc069cf82a5987abc559741b53311d]", "[9e534f6803053fec]", "0x20")
+ self.bid128_to_binary64("3", "[aebc069cf82a5987abc559741b53311d]", "[9e534f6803053fec]", "0x20")
+ self.bid128_to_binary64("4", "[aebc069cf82a5987abc559741b53311d]", "[9e534f6803053fec]", "0x20")
+ self.bid128_to_binary64("0", "[aec8b0c55ff7e1f201bdc58e6a04ea81]", "[9fdec40bed0c66bf]", "0x20")
+ self.bid128_to_binary64("1", "[aec8b0c55ff7e1f201bdc58e6a04ea81]", "[9fdec40bed0c66bf]", "0x20")
+ self.bid128_to_binary64("2", "[aec8b0c55ff7e1f201bdc58e6a04ea81]", "[9fdec40bed0c66be]", "0x20")
+ self.bid128_to_binary64("3", "[aec8b0c55ff7e1f201bdc58e6a04ea81]", "[9fdec40bed0c66be]", "0x20")
+ self.bid128_to_binary64("4", "[aec8b0c55ff7e1f201bdc58e6a04ea81]", "[9fdec40bed0c66bf]", "0x20")
+ self.bid128_to_binary64("0", "[aed51ec4e5c456509c712378d754e498]", "[a127cc8f295d164b]", "0x20")
+ self.bid128_to_binary64("1", "[aed51ec4e5c456509c712378d754e498]", "[a127cc8f295d164c]", "0x20")
+ self.bid128_to_binary64("2", "[aed51ec4e5c456509c712378d754e498]", "[a127cc8f295d164b]", "0x20")
+ self.bid128_to_binary64("3", "[aed51ec4e5c456509c712378d754e498]", "[a127cc8f295d164b]", "0x20")
+ self.bid128_to_binary64("4", "[aed51ec4e5c456509c712378d754e498]", "[a127cc8f295d164b]", "0x20")
+ self.bid128_to_binary64("0", "[aee1644d419fb51b5f8633591e80016d]", "[a26c3323be1b02d0]", "0x20")
+ self.bid128_to_binary64("1", "[aee1644d419fb51b5f8633591e80016d]", "[a26c3323be1b02d1]", "0x20")
+ self.bid128_to_binary64("2", "[aee1644d419fb51b5f8633591e80016d]", "[a26c3323be1b02d0]", "0x20")
+ self.bid128_to_binary64("3", "[aee1644d419fb51b5f8633591e80016d]", "[a26c3323be1b02d0]", "0x20")
+ self.bid128_to_binary64("4", "[aee1644d419fb51b5f8633591e80016d]", "[a26c3323be1b02d0]", "0x20")
+ self.bid128_to_binary64("0", "[aeee25db6ceaa190a50245b9d90a5fb5]", "[a3ac9303ddbc500f]", "0x20")
+ self.bid128_to_binary64("1", "[aeee25db6ceaa190a50245b9d90a5fb5]", "[a3ac9303ddbc500f]", "0x20")
+ self.bid128_to_binary64("2", "[aeee25db6ceaa190a50245b9d90a5fb5]", "[a3ac9303ddbc500e]", "0x20")
+ self.bid128_to_binary64("3", "[aeee25db6ceaa190a50245b9d90a5fb5]", "[a3ac9303ddbc500e]", "0x20")
+ self.bid128_to_binary64("4", "[aeee25db6ceaa190a50245b9d90a5fb5]", "[a3ac9303ddbc500f]", "0x20")
+ self.bid128_to_binary64("0", "[aefa82ee60fc41ef7f67963d7e5024f1]", "[a5078fda14be15b4]", "0x20")
+ self.bid128_to_binary64("1", "[aefa82ee60fc41ef7f67963d7e5024f1]", "[a5078fda14be15b5]", "0x20")
+ self.bid128_to_binary64("2", "[aefa82ee60fc41ef7f67963d7e5024f1]", "[a5078fda14be15b4]", "0x20")
+ self.bid128_to_binary64("3", "[aefa82ee60fc41ef7f67963d7e5024f1]", "[a5078fda14be15b4]", "0x20")
+ self.bid128_to_binary64("4", "[aefa82ee60fc41ef7f67963d7e5024f1]", "[a5078fda14be15b4]", "0x20")
+ self.bid128_to_binary64("0", "[af06fed67151fa8e015ebb16ed8ab103]", "[a655de1bde018520]", "0x20")
+ self.bid128_to_binary64("1", "[af06fed67151fa8e015ebb16ed8ab103]", "[a655de1bde018520]", "0x20")
+ self.bid128_to_binary64("2", "[af06fed67151fa8e015ebb16ed8ab103]", "[a655de1bde01851f]", "0x20")
+ self.bid128_to_binary64("3", "[af06fed67151fa8e015ebb16ed8ab103]", "[a655de1bde01851f]", "0x20")
+ self.bid128_to_binary64("4", "[af06fed67151fa8e015ebb16ed8ab103]", "[a655de1bde018520]", "0x20")
+ self.bid128_to_binary64("0", "[af13882d3c00a26195cda41f91767521]", "[a7a00bfdf710c0ae]", "0x20")
+ self.bid128_to_binary64("1", "[af13882d3c00a26195cda41f91767521]", "[a7a00bfdf710c0ae]", "0x20")
+ self.bid128_to_binary64("2", "[af13882d3c00a26195cda41f91767521]", "[a7a00bfdf710c0ad]", "0x20")
+ self.bid128_to_binary64("3", "[af13882d3c00a26195cda41f91767521]", "[a7a00bfdf710c0ad]", "0x20")
+ self.bid128_to_binary64("4", "[af13882d3c00a26195cda41f91767521]", "[a7a00bfdf710c0ae]", "0x20")
+ self.bid128_to_binary64("0", "[af201ac72f0bb0583e9dbcda51811e74]", "[a8d4e60a3d7c13ab]", "0x20")
+ self.bid128_to_binary64("1", "[af201ac72f0bb0583e9dbcda51811e74]", "[a8d4e60a3d7c13ab]", "0x20")
+ self.bid128_to_binary64("2", "[af201ac72f0bb0583e9dbcda51811e74]", "[a8d4e60a3d7c13aa]", "0x20")
+ self.bid128_to_binary64("3", "[af201ac72f0bb0583e9dbcda51811e74]", "[a8d4e60a3d7c13aa]", "0x20")
+ self.bid128_to_binary64("4", "[af201ac72f0bb0583e9dbcda51811e74]", "[a8d4e60a3d7c13ab]", "0x20")
+ self.bid128_to_binary64("0", "[af2e0fe06b3e295535bde8792e259941]", "[aa3d8ab17a8449ad]", "0x20")
+ self.bid128_to_binary64("1", "[af2e0fe06b3e295535bde8792e259941]", "[aa3d8ab17a8449ad]", "0x20")
+ self.bid128_to_binary64("2", "[af2e0fe06b3e295535bde8792e259941]", "[aa3d8ab17a8449ac]", "0x20")
+ self.bid128_to_binary64("3", "[af2e0fe06b3e295535bde8792e259941]", "[aa3d8ab17a8449ac]", "0x20")
+ self.bid128_to_binary64("4", "[af2e0fe06b3e295535bde8792e259941]", "[aa3d8ab17a8449ad]", "0x20")
+ self.bid128_to_binary64("0", "[af3873ca8239f1c262a4d46ec09eb820]", "[ab748c16b34bc942]", "0x20")
+ self.bid128_to_binary64("1", "[af3873ca8239f1c262a4d46ec09eb820]", "[ab748c16b34bc943]", "0x20")
+ self.bid128_to_binary64("2", "[af3873ca8239f1c262a4d46ec09eb820]", "[ab748c16b34bc942]", "0x20")
+ self.bid128_to_binary64("3", "[af3873ca8239f1c262a4d46ec09eb820]", "[ab748c16b34bc942]", "0x20")
+ self.bid128_to_binary64("4", "[af3873ca8239f1c262a4d46ec09eb820]", "[ab748c16b34bc942]", "0x20")
+ self.bid128_to_binary64("0", "[af4490a1ca9ef241794dbeb7cbdd9f78]", "[acb879e307d62838]", "0x20")
+ self.bid128_to_binary64("1", "[af4490a1ca9ef241794dbeb7cbdd9f78]", "[acb879e307d62839]", "0x20")
+ self.bid128_to_binary64("2", "[af4490a1ca9ef241794dbeb7cbdd9f78]", "[acb879e307d62838]", "0x20")
+ self.bid128_to_binary64("3", "[af4490a1ca9ef241794dbeb7cbdd9f78]", "[acb879e307d62838]", "0x20")
+ self.bid128_to_binary64("4", "[af4490a1ca9ef241794dbeb7cbdd9f78]", "[acb879e307d62838]", "0x20")
+ self.bid128_to_binary64("0", "[af5226843643df11452d0d6a934b4719]", "[ae0f14ba7e452d50]", "0x20")
+ self.bid128_to_binary64("1", "[af5226843643df11452d0d6a934b4719]", "[ae0f14ba7e452d51]", "0x20")
+ self.bid128_to_binary64("2", "[af5226843643df11452d0d6a934b4719]", "[ae0f14ba7e452d50]", "0x20")
+ self.bid128_to_binary64("3", "[af5226843643df11452d0d6a934b4719]", "[ae0f14ba7e452d50]", "0x20")
+ self.bid128_to_binary64("4", "[af5226843643df11452d0d6a934b4719]", "[ae0f14ba7e452d50]", "0x20")
+ self.bid128_to_binary64("0", "[af5e5d7bfa494f1a168dba3a74571c41]", "[af61fc55ea85c508]", "0x20")
+ self.bid128_to_binary64("1", "[af5e5d7bfa494f1a168dba3a74571c41]", "[af61fc55ea85c509]", "0x20")
+ self.bid128_to_binary64("2", "[af5e5d7bfa494f1a168dba3a74571c41]", "[af61fc55ea85c508]", "0x20")
+ self.bid128_to_binary64("3", "[af5e5d7bfa494f1a168dba3a74571c41]", "[af61fc55ea85c508]", "0x20")
+ self.bid128_to_binary64("4", "[af5e5d7bfa494f1a168dba3a74571c41]", "[af61fc55ea85c508]", "0x20")
+ self.bid128_to_binary64("0", "[af6ba02c82e6f6efe9fbc9d870667494]", "[b0c31702a3693659]", "0x20")
+ self.bid128_to_binary64("1", "[af6ba02c82e6f6efe9fbc9d870667494]", "[b0c31702a3693659]", "0x20")
+ self.bid128_to_binary64("2", "[af6ba02c82e6f6efe9fbc9d870667494]", "[b0c31702a3693658]", "0x20")
+ self.bid128_to_binary64("3", "[af6ba02c82e6f6efe9fbc9d870667494]", "[b0c31702a3693658]", "0x20")
+ self.bid128_to_binary64("4", "[af6ba02c82e6f6efe9fbc9d870667494]", "[b0c31702a3693659]", "0x20")
+ self.bid128_to_binary64("0", "[af77271e12b2ee83c1acbd4538471791]", "[b1f9d1e0c9e76728]", "0x20")
+ self.bid128_to_binary64("1", "[af77271e12b2ee83c1acbd4538471791]", "[b1f9d1e0c9e76729]", "0x20")
+ self.bid128_to_binary64("2", "[af77271e12b2ee83c1acbd4538471791]", "[b1f9d1e0c9e76728]", "0x20")
+ self.bid128_to_binary64("3", "[af77271e12b2ee83c1acbd4538471791]", "[b1f9d1e0c9e76728]", "0x20")
+ self.bid128_to_binary64("4", "[af77271e12b2ee83c1acbd4538471791]", "[b1f9d1e0c9e76728]", "0x20")
+ self.bid128_to_binary64("0", "[af841f35161c967735e6d9ccd2cec8af]", "[b33a09da7e081265]", "0x20")
+ self.bid128_to_binary64("1", "[af841f35161c967735e6d9ccd2cec8af]", "[b33a09da7e081265]", "0x20")
+ self.bid128_to_binary64("2", "[af841f35161c967735e6d9ccd2cec8af]", "[b33a09da7e081264]", "0x20")
+ self.bid128_to_binary64("3", "[af841f35161c967735e6d9ccd2cec8af]", "[b33a09da7e081264]", "0x20")
+ self.bid128_to_binary64("4", "[af841f35161c967735e6d9ccd2cec8af]", "[b33a09da7e081265]", "0x20")
+ self.bid128_to_binary64("0", "[af902cee347e6117008476a23440dc3d]", "[b481e04046697b95]", "0x20")
+ self.bid128_to_binary64("1", "[af902cee347e6117008476a23440dc3d]", "[b481e04046697b96]", "0x20")
+ self.bid128_to_binary64("2", "[af902cee347e6117008476a23440dc3d]", "[b481e04046697b95]", "0x20")
+ self.bid128_to_binary64("3", "[af902cee347e6117008476a23440dc3d]", "[b481e04046697b95]", "0x20")
+ self.bid128_to_binary64("4", "[af902cee347e6117008476a23440dc3d]", "[b481e04046697b95]", "0x20")
+ self.bid128_to_binary64("0", "[af9de9664cd46e010dbd1c12d06b0b4e]", "[b5f736223c92bab7]", "0x20")
+ self.bid128_to_binary64("1", "[af9de9664cd46e010dbd1c12d06b0b4e]", "[b5f736223c92bab7]", "0x20")
+ self.bid128_to_binary64("2", "[af9de9664cd46e010dbd1c12d06b0b4e]", "[b5f736223c92bab6]", "0x20")
+ self.bid128_to_binary64("3", "[af9de9664cd46e010dbd1c12d06b0b4e]", "[b5f736223c92bab6]", "0x20")
+ self.bid128_to_binary64("4", "[af9de9664cd46e010dbd1c12d06b0b4e]", "[b5f736223c92bab7]", "0x20")
+ self.bid128_to_binary64("0", "[afa8a7225a9797f4f70c4f2328d0e283]", "[b71e3d2085becec0]", "0x20")
+ self.bid128_to_binary64("1", "[afa8a7225a9797f4f70c4f2328d0e283]", "[b71e3d2085becec0]", "0x20")
+ self.bid128_to_binary64("2", "[afa8a7225a9797f4f70c4f2328d0e283]", "[b71e3d2085becebf]", "0x20")
+ self.bid128_to_binary64("3", "[afa8a7225a9797f4f70c4f2328d0e283]", "[b71e3d2085becebf]", "0x20")
+ self.bid128_to_binary64("4", "[afa8a7225a9797f4f70c4f2328d0e283]", "[b71e3d2085becec0]", "0x20")
+ self.bid128_to_binary64("0", "[afb621dc3229ed61e9243064a3d4c0b8]", "[b86d36361267d236]", "0x20")
+ self.bid128_to_binary64("1", "[afb621dc3229ed61e9243064a3d4c0b8]", "[b86d36361267d237]", "0x20")
+ self.bid128_to_binary64("2", "[afb621dc3229ed61e9243064a3d4c0b8]", "[b86d36361267d236]", "0x20")
+ self.bid128_to_binary64("3", "[afb621dc3229ed61e9243064a3d4c0b8]", "[b86d36361267d236]", "0x20")
+ self.bid128_to_binary64("4", "[afb621dc3229ed61e9243064a3d4c0b8]", "[b86d36361267d236]", "0x20")
+ self.bid128_to_binary64("0", "[afc28def7f4805cabb83639497b10967]", "[b9cd31c73d385d61]", "0x20")
+ self.bid128_to_binary64("1", "[afc28def7f4805cabb83639497b10967]", "[b9cd31c73d385d61]", "0x20")
+ self.bid128_to_binary64("2", "[afc28def7f4805cabb83639497b10967]", "[b9cd31c73d385d60]", "0x20")
+ self.bid128_to_binary64("3", "[afc28def7f4805cabb83639497b10967]", "[b9cd31c73d385d60]", "0x20")
+ self.bid128_to_binary64("4", "[afc28def7f4805cabb83639497b10967]", "[b9cd31c73d385d61]", "0x20")
+ self.bid128_to_binary64("0", "[afcf6bb7c3ec8639200122f3e1e1d776]", "[bb21d6300c259438]", "0x20")
+ self.bid128_to_binary64("1", "[afcf6bb7c3ec8639200122f3e1e1d776]", "[bb21d6300c259438]", "0x20")
+ self.bid128_to_binary64("2", "[afcf6bb7c3ec8639200122f3e1e1d776]", "[bb21d6300c259437]", "0x20")
+ self.bid128_to_binary64("3", "[afcf6bb7c3ec8639200122f3e1e1d776]", "[bb21d6300c259437]", "0x20")
+ self.bid128_to_binary64("4", "[afcf6bb7c3ec8639200122f3e1e1d776]", "[bb21d6300c259438]", "0x20")
+ self.bid128_to_binary64("0", "[afdbe3f567431813c577f569b9a27aff]", "[bc66a240d06827e6]", "0x20")
+ self.bid128_to_binary64("1", "[afdbe3f567431813c577f569b9a27aff]", "[bc66a240d06827e6]", "0x20")
+ self.bid128_to_binary64("2", "[afdbe3f567431813c577f569b9a27aff]", "[bc66a240d06827e5]", "0x20")
+ self.bid128_to_binary64("3", "[afdbe3f567431813c577f569b9a27aff]", "[bc66a240d06827e5]", "0x20")
+ self.bid128_to_binary64("4", "[afdbe3f567431813c577f569b9a27aff]", "[bc66a240d06827e6]", "0x20")
+ self.bid128_to_binary64("0", "[afe823abd2bb811660c1a51458793774]", "[bd9fd1dbc4ccf398]", "0x20")
+ self.bid128_to_binary64("1", "[afe823abd2bb811660c1a51458793774]", "[bd9fd1dbc4ccf399]", "0x20")
+ self.bid128_to_binary64("2", "[afe823abd2bb811660c1a51458793774]", "[bd9fd1dbc4ccf398]", "0x20")
+ self.bid128_to_binary64("3", "[afe823abd2bb811660c1a51458793774]", "[bd9fd1dbc4ccf398]", "0x20")
+ self.bid128_to_binary64("4", "[afe823abd2bb811660c1a51458793774]", "[bd9fd1dbc4ccf398]", "0x20")
+ self.bid128_to_binary64("0", "[aff496769829a806b11db166ba7493a4]", "[beffffffc13fe6dc]", "0x20")
+ self.bid128_to_binary64("1", "[aff496769829a806b11db166ba7493a4]", "[beffffffc13fe6dd]", "0x20")
+ self.bid128_to_binary64("2", "[aff496769829a806b11db166ba7493a4]", "[beffffffc13fe6dc]", "0x20")
+ self.bid128_to_binary64("3", "[aff496769829a806b11db166ba7493a4]", "[beffffffc13fe6dc]", "0x20")
+ self.bid128_to_binary64("4", "[aff496769829a806b11db166ba7493a4]", "[beffffffc13fe6dc]", "0x20")
+ self.bid128_to_binary64("0", "[b001ed09bead85ebde8e5dfd8c1bde79]", "[c058ffffffffe840]", "0x20")
+ self.bid128_to_binary64("1", "[b001ed09bead85ebde8e5dfd8c1bde79]", "[c058ffffffffe841]", "0x20")
+ self.bid128_to_binary64("2", "[b001ed09bead85ebde8e5dfd8c1bde79]", "[c058ffffffffe840]", "0x20")
+ self.bid128_to_binary64("3", "[b001ed09bead85ebde8e5dfd8c1bde79]", "[c058ffffffffe840]", "0x20")
+ self.bid128_to_binary64("4", "[b001ed09bead85ebde8e5dfd8c1bde79]", "[c058ffffffffe840]", "0x20")
+ self.bid128_to_binary64("0", "[b00ded09bead87c0378d8e63ffffffff]", "[c197d78400000000]", "0x20")
+ self.bid128_to_binary64("1", "[b00ded09bead87c0378d8e63ffffffff]", "[c197d78400000000]", "0x20")
+ self.bid128_to_binary64("2", "[b00ded09bead87c0378d8e63ffffffff]", "[c197d783ffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[b00ded09bead87c0378d8e63ffffffff]", "[c197d783ffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[b00ded09bead87c0378d8e63ffffffff]", "[c197d78400000000]", "0x20")
+ self.bid128_to_binary64("0", "[b01a22b1c8c12279ffffffffffffffff]", "[c2d0000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[b01a22b1c8c12279ffffffffffffffff]", "[c2d0000000000000]", "0x20")
+ self.bid128_to_binary64("2", "[b01a22b1c8c12279ffffffffffffffff]", "[c2cfffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[b01a22b1c8c12279ffffffffffffffff]", "[c2cfffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[b01a22b1c8c12279ffffffffffffffff]", "[c2d0000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[b0269184e729ffffffffffffffffffff]", "[c430000000000000]", "0x20")
+ self.bid128_to_binary64("1", "[b0269184e729ffffffffffffffffffff]", "[c430000000000000]", "0x20")
+ self.bid128_to_binary64("2", "[b0269184e729ffffffffffffffffffff]", "[c42fffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[b0269184e729ffffffffffffffffffff]", "[c42fffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[b0269184e729ffffffffffffffffffff]", "[c430000000000000]", "0x20")
+ self.bid128_to_binary64("0", "[b03000000000000000000000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b03000000000000000000000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b03000000000000000000000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b03000000000000000000000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b03000000000000000000000004d7c6d]", "[bfaa000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b033ed09bead87c02fdc37ffffffffff]", "[c589d971e4fe8401]", "0x20")
+ self.bid128_to_binary64("1", "[b033ed09bead87c02fdc37ffffffffff]", "[c589d971e4fe8402]", "0x20")
+ self.bid128_to_binary64("2", "[b033ed09bead87c02fdc37ffffffffff]", "[c589d971e4fe8401]", "0x20")
+ self.bid128_to_binary64("3", "[b033ed09bead87c02fdc37ffffffffff]", "[c589d971e4fe8401]", "0x20")
+ self.bid128_to_binary64("4", "[b033ed09bead87c02fdc37ffffffffff]", "[c589d971e4fe8401]", "0x20")
+ self.bid128_to_binary64("0", "[b03e000000000000000000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b03e000000000000000000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b03e000000000000000000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b03e000000000000000000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b03e000000000000000000000000000f]", "[bff8000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b03fed09bead87c02fffffffffffffff]", "[c6c8a6e32246c99c]", "0x20")
+ self.bid128_to_binary64("1", "[b03fed09bead87c02fffffffffffffff]", "[c6c8a6e32246c99c]", "0x20")
+ self.bid128_to_binary64("2", "[b03fed09bead87c02fffffffffffffff]", "[c6c8a6e32246c99b]", "0x20")
+ self.bid128_to_binary64("3", "[b03fed09bead87c02fffffffffffffff]", "[c6c8a6e32246c99b]", "0x20")
+ self.bid128_to_binary64("4", "[b03fed09bead87c02fffffffffffffff]", "[c6c8a6e32246c99c]", "0x20")
+ self.bid128_to_binary64("0", "[b0400000000000000000000000000001]", "[bff0000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b0400000000000000000000000000001]", "[bff0000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b0400000000000000000000000000001]", "[bff0000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b0400000000000000000000000000001]", "[bff0000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b0400000000000000000000000000001]", "[bff0000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b0400000000000000000000000000040]", "[c050000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b0400000000000000000000000000040]", "[c050000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b0400000000000000000000000000040]", "[c050000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b0400000000000000000000000000040]", "[c050000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b0400000000000000000000000000040]", "[c050000000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b04000000000000000000000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b04000000000000000000000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b04000000000000000000000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b04000000000000000000000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b04000000000000000000000000003e7]", "[c08f380000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b04000000000000000000000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid128_to_binary64("1", "[b04000000000000000000000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid128_to_binary64("2", "[b04000000000000000000000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid128_to_binary64("3", "[b04000000000000000000000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid128_to_binary64("4", "[b04000000000000000000000000003e8]", "[c08f400000000000]", "0x00")
+ self.bid128_to_binary64("0", "[b04b4f8b588e364d4562e09fe86833c6]", "[c7fffffffffff9ba]", "0x20")
+ self.bid128_to_binary64("1", "[b04b4f8b588e364d4562e09fe86833c6]", "[c7fffffffffff9bb]", "0x20")
+ self.bid128_to_binary64("2", "[b04b4f8b588e364d4562e09fe86833c6]", "[c7fffffffffff9ba]", "0x20")
+ self.bid128_to_binary64("3", "[b04b4f8b588e364d4562e09fe86833c6]", "[c7fffffffffff9ba]", "0x20")
+ self.bid128_to_binary64("4", "[b04b4f8b588e364d4562e09fe86833c6]", "[c7fffffffffff9ba]", "0x20")
+ self.bid128_to_binary64("0", "[b0588cbccbfbf4cbc99d1f1e30afc14f]", "[c95ffffffcef7163]", "0x20")
+ self.bid128_to_binary64("1", "[b0588cbccbfbf4cbc99d1f1e30afc14f]", "[c95ffffffcef7163]", "0x20")
+ self.bid128_to_binary64("2", "[b0588cbccbfbf4cbc99d1f1e30afc14f]", "[c95ffffffcef7162]", "0x20")
+ self.bid128_to_binary64("3", "[b0588cbccbfbf4cbc99d1f1e30afc14f]", "[c95ffffffcef7162]", "0x20")
+ self.bid128_to_binary64("4", "[b0588cbccbfbf4cbc99d1f1e30afc14f]", "[c95ffffffcef7163]", "0x20")
+ self.bid128_to_binary64("0", "[b065ed096477328b3e88c46e053ef997]", "[cababa4230a33d01]", "0x20")
+ self.bid128_to_binary64("1", "[b065ed096477328b3e88c46e053ef997]", "[cababa4230a33d02]", "0x20")
+ self.bid128_to_binary64("2", "[b065ed096477328b3e88c46e053ef997]", "[cababa4230a33d01]", "0x20")
+ self.bid128_to_binary64("3", "[b065ed096477328b3e88c46e053ef997]", "[cababa4230a33d01]", "0x20")
+ self.bid128_to_binary64("4", "[b065ed096477328b3e88c46e053ef997]", "[cababa4230a33d01]", "0x20")
+ self.bid128_to_binary64("0", "[b0712d5a345b30eb4f54b9521017267c]", "[cbef28bb07d9388c]", "0x20")
+ self.bid128_to_binary64("1", "[b0712d5a345b30eb4f54b9521017267c]", "[cbef28bb07d9388c]", "0x20")
+ self.bid128_to_binary64("2", "[b0712d5a345b30eb4f54b9521017267c]", "[cbef28bb07d9388b]", "0x20")
+ self.bid128_to_binary64("3", "[b0712d5a345b30eb4f54b9521017267c]", "[cbef28bb07d9388b]", "0x20")
+ self.bid128_to_binary64("4", "[b0712d5a345b30eb4f54b9521017267c]", "[cbef28bb07d9388c]", "0x20")
+ self.bid128_to_binary64("0", "[b07d04dd7d609691fae5a9e6d711bdb8]", "[cd29b929ce859a3d]", "0x20")
+ self.bid128_to_binary64("1", "[b07d04dd7d609691fae5a9e6d711bdb8]", "[cd29b929ce859a3e]", "0x20")
+ self.bid128_to_binary64("2", "[b07d04dd7d609691fae5a9e6d711bdb8]", "[cd29b929ce859a3d]", "0x20")
+ self.bid128_to_binary64("3", "[b07d04dd7d609691fae5a9e6d711bdb8]", "[cd29b929ce859a3d]", "0x20")
+ self.bid128_to_binary64("4", "[b07d04dd7d609691fae5a9e6d711bdb8]", "[cd29b929ce859a3d]", "0x20")
+ self.bid128_to_binary64("0", "[b08a82fe99d39a8a899e8e04910c4870]", "[ce8ecbf26024178e]", "0x20")
+ self.bid128_to_binary64("1", "[b08a82fe99d39a8a899e8e04910c4870]", "[ce8ecbf26024178e]", "0x20")
+ self.bid128_to_binary64("2", "[b08a82fe99d39a8a899e8e04910c4870]", "[ce8ecbf26024178d]", "0x20")
+ self.bid128_to_binary64("3", "[b08a82fe99d39a8a899e8e04910c4870]", "[ce8ecbf26024178d]", "0x20")
+ self.bid128_to_binary64("4", "[b08a82fe99d39a8a899e8e04910c4870]", "[ce8ecbf26024178e]", "0x20")
+ self.bid128_to_binary64("0", "[b097eaf0ee51f33218e16056d600a6e3]", "[cfeb84a8ea02ec91]", "0x20")
+ self.bid128_to_binary64("1", "[b097eaf0ee51f33218e16056d600a6e3]", "[cfeb84a8ea02ec91]", "0x20")
+ self.bid128_to_binary64("2", "[b097eaf0ee51f33218e16056d600a6e3]", "[cfeb84a8ea02ec90]", "0x20")
+ self.bid128_to_binary64("3", "[b097eaf0ee51f33218e16056d600a6e3]", "[cfeb84a8ea02ec90]", "0x20")
+ self.bid128_to_binary64("4", "[b097eaf0ee51f33218e16056d600a6e3]", "[cfeb84a8ea02ec91]", "0x20")
+ self.bid128_to_binary64("0", "[b0a3b7efaeff491fc2a3f230f443aa4a]", "[d12784550720cd0a]", "0x20")
+ self.bid128_to_binary64("1", "[b0a3b7efaeff491fc2a3f230f443aa4a]", "[d12784550720cd0b]", "0x20")
+ self.bid128_to_binary64("2", "[b0a3b7efaeff491fc2a3f230f443aa4a]", "[d12784550720cd0a]", "0x20")
+ self.bid128_to_binary64("3", "[b0a3b7efaeff491fc2a3f230f443aa4a]", "[d12784550720cd0a]", "0x20")
+ self.bid128_to_binary64("4", "[b0a3b7efaeff491fc2a3f230f443aa4a]", "[d12784550720cd0a]", "0x20")
+ self.bid128_to_binary64("0", "[b0ae93cc24249799eff459a22ac1c0b6]", "[d24e2362ba9aca8f]", "0x20")
+ self.bid128_to_binary64("1", "[b0ae93cc24249799eff459a22ac1c0b6]", "[d24e2362ba9aca8f]", "0x20")
+ self.bid128_to_binary64("2", "[b0ae93cc24249799eff459a22ac1c0b6]", "[d24e2362ba9aca8e]", "0x20")
+ self.bid128_to_binary64("3", "[b0ae93cc24249799eff459a22ac1c0b6]", "[d24e2362ba9aca8e]", "0x20")
+ self.bid128_to_binary64("4", "[b0ae93cc24249799eff459a22ac1c0b6]", "[d24e2362ba9aca8f]", "0x20")
+ self.bid128_to_binary64("0", "[b0ba85afe9a46595b407258b8bb09d32]", "[d389ff7f7377d48c]", "0x20")
+ self.bid128_to_binary64("1", "[b0ba85afe9a46595b407258b8bb09d32]", "[d389ff7f7377d48c]", "0x20")
+ self.bid128_to_binary64("2", "[b0ba85afe9a46595b407258b8bb09d32]", "[d389ff7f7377d48b]", "0x20")
+ self.bid128_to_binary64("3", "[b0ba85afe9a46595b407258b8bb09d32]", "[d389ff7f7377d48b]", "0x20")
+ self.bid128_to_binary64("4", "[b0ba85afe9a46595b407258b8bb09d32]", "[d389ff7f7377d48c]", "0x20")
+ self.bid128_to_binary64("0", "[b0c99daffad7d9da4427ef19883537cb]", "[d517f9cec61b967f]", "0x20")
+ self.bid128_to_binary64("1", "[b0c99daffad7d9da4427ef19883537cb]", "[d517f9cec61b9680]", "0x20")
+ self.bid128_to_binary64("2", "[b0c99daffad7d9da4427ef19883537cb]", "[d517f9cec61b967f]", "0x20")
+ self.bid128_to_binary64("3", "[b0c99daffad7d9da4427ef19883537cb]", "[d517f9cec61b967f]", "0x20")
+ self.bid128_to_binary64("4", "[b0c99daffad7d9da4427ef19883537cb]", "[d517f9cec61b967f]", "0x20")
+ self.bid128_to_binary64("0", "[b0d527633b4076e77736a6077de29a31]", "[d650539634e35fcc]", "0x20")
+ self.bid128_to_binary64("1", "[b0d527633b4076e77736a6077de29a31]", "[d650539634e35fcd]", "0x20")
+ self.bid128_to_binary64("2", "[b0d527633b4076e77736a6077de29a31]", "[d650539634e35fcc]", "0x20")
+ self.bid128_to_binary64("3", "[b0d527633b4076e77736a6077de29a31]", "[d650539634e35fcc]", "0x20")
+ self.bid128_to_binary64("4", "[b0d527633b4076e77736a6077de29a31]", "[d650539634e35fcc]", "0x20")
+ self.bid128_to_binary64("0", "[b0e0db98b1b5c21149bb43ecdefa7dbe]", "[d7872679a53c907c]", "0x20")
+ self.bid128_to_binary64("1", "[b0e0db98b1b5c21149bb43ecdefa7dbe]", "[d7872679a53c907c]", "0x20")
+ self.bid128_to_binary64("2", "[b0e0db98b1b5c21149bb43ecdefa7dbe]", "[d7872679a53c907b]", "0x20")
+ self.bid128_to_binary64("3", "[b0e0db98b1b5c21149bb43ecdefa7dbe]", "[d7872679a53c907b]", "0x20")
+ self.bid128_to_binary64("4", "[b0e0db98b1b5c21149bb43ecdefa7dbe]", "[d7872679a53c907c]", "0x20")
+ self.bid128_to_binary64("0", "[b0ee3ac93efcade1e886123d75216291]", "[d8dd8d1f846203b0]", "0x20")
+ self.bid128_to_binary64("1", "[b0ee3ac93efcade1e886123d75216291]", "[d8dd8d1f846203b0]", "0x20")
+ self.bid128_to_binary64("2", "[b0ee3ac93efcade1e886123d75216291]", "[d8dd8d1f846203af]", "0x20")
+ self.bid128_to_binary64("3", "[b0ee3ac93efcade1e886123d75216291]", "[d8dd8d1f846203af]", "0x20")
+ self.bid128_to_binary64("4", "[b0ee3ac93efcade1e886123d75216291]", "[d8dd8d1f846203b0]", "0x20")
+ self.bid128_to_binary64("0", "[b0fb4ad80cb1651eb5bef6358602bcf0]", "[da43d37312d4ba38]", "0x20")
+ self.bid128_to_binary64("1", "[b0fb4ad80cb1651eb5bef6358602bcf0]", "[da43d37312d4ba38]", "0x20")
+ self.bid128_to_binary64("2", "[b0fb4ad80cb1651eb5bef6358602bcf0]", "[da43d37312d4ba37]", "0x20")
+ self.bid128_to_binary64("3", "[b0fb4ad80cb1651eb5bef6358602bcf0]", "[da43d37312d4ba37]", "0x20")
+ self.bid128_to_binary64("4", "[b0fb4ad80cb1651eb5bef6358602bcf0]", "[da43d37312d4ba38]", "0x20")
+ self.bid128_to_binary64("0", "[b1077a18e0ed5824c258ff7aff2afe10]", "[db859ba6e8ea8d62]", "0x20")
+ self.bid128_to_binary64("1", "[b1077a18e0ed5824c258ff7aff2afe10]", "[db859ba6e8ea8d62]", "0x20")
+ self.bid128_to_binary64("2", "[b1077a18e0ed5824c258ff7aff2afe10]", "[db859ba6e8ea8d61]", "0x20")
+ self.bid128_to_binary64("3", "[b1077a18e0ed5824c258ff7aff2afe10]", "[db859ba6e8ea8d61]", "0x20")
+ self.bid128_to_binary64("4", "[b1077a18e0ed5824c258ff7aff2afe10]", "[db859ba6e8ea8d62]", "0x20")
+ self.bid128_to_binary64("0", "[b112f0ce940c0a71f3b06af1fcc7ad24]", "[dcba3fb5a5c41d4e]", "0x20")
+ self.bid128_to_binary64("1", "[b112f0ce940c0a71f3b06af1fcc7ad24]", "[dcba3fb5a5c41d4f]", "0x20")
+ self.bid128_to_binary64("2", "[b112f0ce940c0a71f3b06af1fcc7ad24]", "[dcba3fb5a5c41d4e]", "0x20")
+ self.bid128_to_binary64("3", "[b112f0ce940c0a71f3b06af1fcc7ad24]", "[dcba3fb5a5c41d4e]", "0x20")
+ self.bid128_to_binary64("4", "[b112f0ce940c0a71f3b06af1fcc7ad24]", "[dcba3fb5a5c41d4e]", "0x20")
+ self.bid128_to_binary64("0", "[b1204528db37b062641415b942ae355d]", "[de11f93b1cb58737]", "0x20")
+ self.bid128_to_binary64("1", "[b1204528db37b062641415b942ae355d]", "[de11f93b1cb58737]", "0x20")
+ self.bid128_to_binary64("2", "[b1204528db37b062641415b942ae355d]", "[de11f93b1cb58736]", "0x20")
+ self.bid128_to_binary64("3", "[b1204528db37b062641415b942ae355d]", "[de11f93b1cb58736]", "0x20")
+ self.bid128_to_binary64("4", "[b1204528db37b062641415b942ae355d]", "[de11f93b1cb58737]", "0x20")
+ self.bid128_to_binary64("0", "[b12de7201155b0f39cf2f516cd5cba51]", "[df7e2ed8f12cc30c]", "0x20")
+ self.bid128_to_binary64("1", "[b12de7201155b0f39cf2f516cd5cba51]", "[df7e2ed8f12cc30d]", "0x20")
+ self.bid128_to_binary64("2", "[b12de7201155b0f39cf2f516cd5cba51]", "[df7e2ed8f12cc30c]", "0x20")
+ self.bid128_to_binary64("3", "[b12de7201155b0f39cf2f516cd5cba51]", "[df7e2ed8f12cc30c]", "0x20")
+ self.bid128_to_binary64("4", "[b12de7201155b0f39cf2f516cd5cba51]", "[df7e2ed8f12cc30c]", "0x20")
+ self.bid128_to_binary64("0", "[b13969eef0de654f59bbb34aaa5ef4c8]", "[e0b5631436f9979e]", "0x20")
+ self.bid128_to_binary64("1", "[b13969eef0de654f59bbb34aaa5ef4c8]", "[e0b5631436f9979e]", "0x20")
+ self.bid128_to_binary64("2", "[b13969eef0de654f59bbb34aaa5ef4c8]", "[e0b5631436f9979d]", "0x20")
+ self.bid128_to_binary64("3", "[b13969eef0de654f59bbb34aaa5ef4c8]", "[e0b5631436f9979d]", "0x20")
+ self.bid128_to_binary64("4", "[b13969eef0de654f59bbb34aaa5ef4c8]", "[e0b5631436f9979e]", "0x20")
+ self.bid128_to_binary64("0", "[b144ad1423e6455cffa2aeda21b7bdca]", "[e1e381d959167517]", "0x20")
+ self.bid128_to_binary64("1", "[b144ad1423e6455cffa2aeda21b7bdca]", "[e1e381d959167517]", "0x20")
+ self.bid128_to_binary64("2", "[b144ad1423e6455cffa2aeda21b7bdca]", "[e1e381d959167516]", "0x20")
+ self.bid128_to_binary64("3", "[b144ad1423e6455cffa2aeda21b7bdca]", "[e1e381d959167516]", "0x20")
+ self.bid128_to_binary64("4", "[b144ad1423e6455cffa2aeda21b7bdca]", "[e1e381d959167517]", "0x20")
+ self.bid128_to_binary64("0", "[b1526bfd32b145af5da7ace6def04a25]", "[e34d04ae3c7548b2]", "0x20")
+ self.bid128_to_binary64("1", "[b1526bfd32b145af5da7ace6def04a25]", "[e34d04ae3c7548b2]", "0x20")
+ self.bid128_to_binary64("2", "[b1526bfd32b145af5da7ace6def04a25]", "[e34d04ae3c7548b1]", "0x20")
+ self.bid128_to_binary64("3", "[b1526bfd32b145af5da7ace6def04a25]", "[e34d04ae3c7548b1]", "0x20")
+ self.bid128_to_binary64("4", "[b1526bfd32b145af5da7ace6def04a25]", "[e34d04ae3c7548b2]", "0x20")
+ self.bid128_to_binary64("0", "[b15e58d0633b5bbf58932ef801892d4d]", "[e486c293dbfcc0b2]", "0x20")
+ self.bid128_to_binary64("1", "[b15e58d0633b5bbf58932ef801892d4d]", "[e486c293dbfcc0b2]", "0x20")
+ self.bid128_to_binary64("2", "[b15e58d0633b5bbf58932ef801892d4d]", "[e486c293dbfcc0b1]", "0x20")
+ self.bid128_to_binary64("3", "[b15e58d0633b5bbf58932ef801892d4d]", "[e486c293dbfcc0b1]", "0x20")
+ self.bid128_to_binary64("4", "[b15e58d0633b5bbf58932ef801892d4d]", "[e486c293dbfcc0b2]", "0x20")
+ self.bid128_to_binary64("0", "[b16b768b41fcce6487a21ee4bb878155]", "[e5e6e25852f5b840]", "0x20")
+ self.bid128_to_binary64("1", "[b16b768b41fcce6487a21ee4bb878155]", "[e5e6e25852f5b841]", "0x20")
+ self.bid128_to_binary64("2", "[b16b768b41fcce6487a21ee4bb878155]", "[e5e6e25852f5b840]", "0x20")
+ self.bid128_to_binary64("3", "[b16b768b41fcce6487a21ee4bb878155]", "[e5e6e25852f5b840]", "0x20")
+ self.bid128_to_binary64("4", "[b16b768b41fcce6487a21ee4bb878155]", "[e5e6e25852f5b840]", "0x20")
+ self.bid128_to_binary64("0", "[b176f1b3b521714be5d0cafecd53d572]", "[e71c2ac87076fe35]", "0x20")
+ self.bid128_to_binary64("1", "[b176f1b3b521714be5d0cafecd53d572]", "[e71c2ac87076fe35]", "0x20")
+ self.bid128_to_binary64("2", "[b176f1b3b521714be5d0cafecd53d572]", "[e71c2ac87076fe34]", "0x20")
+ self.bid128_to_binary64("3", "[b176f1b3b521714be5d0cafecd53d572]", "[e71c2ac87076fe34]", "0x20")
+ self.bid128_to_binary64("4", "[b176f1b3b521714be5d0cafecd53d572]", "[e71c2ac87076fe35]", "0x20")
+ self.bid128_to_binary64("0", "[b184490d7ade8edc986916d871a138d9]", "[e8744c1c1a4378ae]", "0x20")
+ self.bid128_to_binary64("1", "[b184490d7ade8edc986916d871a138d9]", "[e8744c1c1a4378ae]", "0x20")
+ self.bid128_to_binary64("2", "[b184490d7ade8edc986916d871a138d9]", "[e8744c1c1a4378ad]", "0x20")
+ self.bid128_to_binary64("3", "[b184490d7ade8edc986916d871a138d9]", "[e8744c1c1a4378ad]", "0x20")
+ self.bid128_to_binary64("4", "[b184490d7ade8edc986916d871a138d9]", "[e8744c1c1a4378ae]", "0x20")
+ self.bid128_to_binary64("0", "[b191bb13cb68c49028b0cc2d5671c46f]", "[e9dd59d6f5acb857]", "0x20")
+ self.bid128_to_binary64("1", "[b191bb13cb68c49028b0cc2d5671c46f]", "[e9dd59d6f5acb857]", "0x20")
+ self.bid128_to_binary64("2", "[b191bb13cb68c49028b0cc2d5671c46f]", "[e9dd59d6f5acb856]", "0x20")
+ self.bid128_to_binary64("3", "[b191bb13cb68c49028b0cc2d5671c46f]", "[e9dd59d6f5acb856]", "0x20")
+ self.bid128_to_binary64("4", "[b191bb13cb68c49028b0cc2d5671c46f]", "[e9dd59d6f5acb857]", "0x20")
+ self.bid128_to_binary64("0", "[b19b84445f015b4c10ce0fae3da48e1c]", "[eae39f76078b80d0]", "0x20")
+ self.bid128_to_binary64("1", "[b19b84445f015b4c10ce0fae3da48e1c]", "[eae39f76078b80d1]", "0x20")
+ self.bid128_to_binary64("2", "[b19b84445f015b4c10ce0fae3da48e1c]", "[eae39f76078b80d0]", "0x20")
+ self.bid128_to_binary64("3", "[b19b84445f015b4c10ce0fae3da48e1c]", "[eae39f76078b80d0]", "0x20")
+ self.bid128_to_binary64("4", "[b19b84445f015b4c10ce0fae3da48e1c]", "[eae39f76078b80d0]", "0x20")
+ self.bid128_to_binary64("0", "[b1a8b712df8483b063c15f5ece59c6ee]", "[ec460f453ab19c99]", "0x20")
+ self.bid128_to_binary64("1", "[b1a8b712df8483b063c15f5ece59c6ee]", "[ec460f453ab19c99]", "0x20")
+ self.bid128_to_binary64("2", "[b1a8b712df8483b063c15f5ece59c6ee]", "[ec460f453ab19c98]", "0x20")
+ self.bid128_to_binary64("3", "[b1a8b712df8483b063c15f5ece59c6ee]", "[ec460f453ab19c98]", "0x20")
+ self.bid128_to_binary64("4", "[b1a8b712df8483b063c15f5ece59c6ee]", "[ec460f453ab19c99]", "0x20")
+ self.bid128_to_binary64("0", "[b1b65807a1c8ba040335974c72beb2e7]", "[eda94a253325f0bb]", "0x20")
+ self.bid128_to_binary64("1", "[b1b65807a1c8ba040335974c72beb2e7]", "[eda94a253325f0bb]", "0x20")
+ self.bid128_to_binary64("2", "[b1b65807a1c8ba040335974c72beb2e7]", "[eda94a253325f0ba]", "0x20")
+ self.bid128_to_binary64("3", "[b1b65807a1c8ba040335974c72beb2e7]", "[eda94a253325f0ba]", "0x20")
+ self.bid128_to_binary64("4", "[b1b65807a1c8ba040335974c72beb2e7]", "[eda94a253325f0bb]", "0x20")
+ self.bid128_to_binary64("0", "[b1c1dc517e49b6ce03eb561e828843e0]", "[eeda1997ec124474]", "0x20")
+ self.bid128_to_binary64("1", "[b1c1dc517e49b6ce03eb561e828843e0]", "[eeda1997ec124475]", "0x20")
+ self.bid128_to_binary64("2", "[b1c1dc517e49b6ce03eb561e828843e0]", "[eeda1997ec124474]", "0x20")
+ self.bid128_to_binary64("3", "[b1c1dc517e49b6ce03eb561e828843e0]", "[eeda1997ec124474]", "0x20")
+ self.bid128_to_binary64("4", "[b1c1dc517e49b6ce03eb561e828843e0]", "[eeda1997ec124474]", "0x20")
+ self.bid128_to_binary64("0", "[b1cd0191b59ba224b27feb0eba10f9d6]", "[f00aeb6368c6a9c0]", "0x20")
+ self.bid128_to_binary64("1", "[b1cd0191b59ba224b27feb0eba10f9d6]", "[f00aeb6368c6a9c1]", "0x20")
+ self.bid128_to_binary64("2", "[b1cd0191b59ba224b27feb0eba10f9d6]", "[f00aeb6368c6a9c0]", "0x20")
+ self.bid128_to_binary64("3", "[b1cd0191b59ba224b27feb0eba10f9d6]", "[f00aeb6368c6a9c0]", "0x20")
+ self.bid128_to_binary64("4", "[b1cd0191b59ba224b27feb0eba10f9d6]", "[f00aeb6368c6a9c0]", "0x20")
+ self.bid128_to_binary64("0", "[b1d910701d4fdd7f09a553277cbba864]", "[f14b278827eb5c78]", "0x20")
+ self.bid128_to_binary64("1", "[b1d910701d4fdd7f09a553277cbba864]", "[f14b278827eb5c79]", "0x20")
+ self.bid128_to_binary64("2", "[b1d910701d4fdd7f09a553277cbba864]", "[f14b278827eb5c78]", "0x20")
+ self.bid128_to_binary64("3", "[b1d910701d4fdd7f09a553277cbba864]", "[f14b278827eb5c78]", "0x20")
+ self.bid128_to_binary64("4", "[b1d910701d4fdd7f09a553277cbba864]", "[f14b278827eb5c78]", "0x20")
+ self.bid128_to_binary64("0", "[b1e83e23690a2a02cf1323b065b7ff04]", "[f2d27539be4e1f54]", "0x20")
+ self.bid128_to_binary64("1", "[b1e83e23690a2a02cf1323b065b7ff04]", "[f2d27539be4e1f55]", "0x20")
+ self.bid128_to_binary64("2", "[b1e83e23690a2a02cf1323b065b7ff04]", "[f2d27539be4e1f54]", "0x20")
+ self.bid128_to_binary64("3", "[b1e83e23690a2a02cf1323b065b7ff04]", "[f2d27539be4e1f54]", "0x20")
+ self.bid128_to_binary64("4", "[b1e83e23690a2a02cf1323b065b7ff04]", "[f2d27539be4e1f54]", "0x20")
+ self.bid128_to_binary64("0", "[b1f338d4af8a3b5910d266b789b07040]", "[f401b95a8121afac]", "0x20")
+ self.bid128_to_binary64("1", "[b1f338d4af8a3b5910d266b789b07040]", "[f401b95a8121afac]", "0x20")
+ self.bid128_to_binary64("2", "[b1f338d4af8a3b5910d266b789b07040]", "[f401b95a8121afab]", "0x20")
+ self.bid128_to_binary64("3", "[b1f338d4af8a3b5910d266b789b07040]", "[f401b95a8121afab]", "0x20")
+ self.bid128_to_binary64("4", "[b1f338d4af8a3b5910d266b789b07040]", "[f401b95a8121afac]", "0x20")
+ self.bid128_to_binary64("0", "[b201657cf6ffee9823c575555320b50b]", "[f5782516413443e4]", "0x20")
+ self.bid128_to_binary64("1", "[b201657cf6ffee9823c575555320b50b]", "[f5782516413443e5]", "0x20")
+ self.bid128_to_binary64("2", "[b201657cf6ffee9823c575555320b50b]", "[f5782516413443e4]", "0x20")
+ self.bid128_to_binary64("3", "[b201657cf6ffee9823c575555320b50b]", "[f5782516413443e4]", "0x20")
+ self.bid128_to_binary64("4", "[b201657cf6ffee9823c575555320b50b]", "[f5782516413443e4]", "0x20")
+ self.bid128_to_binary64("0", "[b20ce68b4e75278f032cbc38c529af78]", "[f6adb30aec2398f3]", "0x20")
+ self.bid128_to_binary64("1", "[b20ce68b4e75278f032cbc38c529af78]", "[f6adb30aec2398f4]", "0x20")
+ self.bid128_to_binary64("2", "[b20ce68b4e75278f032cbc38c529af78]", "[f6adb30aec2398f3]", "0x20")
+ self.bid128_to_binary64("3", "[b20ce68b4e75278f032cbc38c529af78]", "[f6adb30aec2398f3]", "0x20")
+ self.bid128_to_binary64("4", "[b20ce68b4e75278f032cbc38c529af78]", "[f6adb30aec2398f3]", "0x20")
+ self.bid128_to_binary64("0", "[b219d1fd020a1d48b225714e0e1a5d8c]", "[f7fc9fe1872df003]", "0x20")
+ self.bid128_to_binary64("1", "[b219d1fd020a1d48b225714e0e1a5d8c]", "[f7fc9fe1872df003]", "0x20")
+ self.bid128_to_binary64("2", "[b219d1fd020a1d48b225714e0e1a5d8c]", "[f7fc9fe1872df002]", "0x20")
+ self.bid128_to_binary64("3", "[b219d1fd020a1d48b225714e0e1a5d8c]", "[f7fc9fe1872df002]", "0x20")
+ self.bid128_to_binary64("4", "[b219d1fd020a1d48b225714e0e1a5d8c]", "[f7fc9fe1872df003]", "0x20")
+ self.bid128_to_binary64("0", "[b2273c06789757d74b306cbf05de8835]", "[f9672446b9de5c0c]", "0x20")
+ self.bid128_to_binary64("1", "[b2273c06789757d74b306cbf05de8835]", "[f9672446b9de5c0d]", "0x20")
+ self.bid128_to_binary64("2", "[b2273c06789757d74b306cbf05de8835]", "[f9672446b9de5c0c]", "0x20")
+ self.bid128_to_binary64("3", "[b2273c06789757d74b306cbf05de8835]", "[f9672446b9de5c0c]", "0x20")
+ self.bid128_to_binary64("4", "[b2273c06789757d74b306cbf05de8835]", "[f9672446b9de5c0c]", "0x20")
+ self.bid128_to_binary64("0", "[b2324db91257eafdcf9408f3cc078980]", "[fa85b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("1", "[b2324db91257eafdcf9408f3cc078980]", "[fa85b60dd016d6f9]", "0x20")
+ self.bid128_to_binary64("2", "[b2324db91257eafdcf9408f3cc078980]", "[fa85b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("3", "[b2324db91257eafdcf9408f3cc078980]", "[fa85b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("4", "[b2324db91257eafdcf9408f3cc078980]", "[fa85b60dd016d6f8]", "0x20")
+ self.bid128_to_binary64("0", "[b23e4435e252dbc8f6564cb9ed392de6]", "[fbc22bd71391c416]", "0x20")
+ self.bid128_to_binary64("1", "[b23e4435e252dbc8f6564cb9ed392de6]", "[fbc22bd71391c417]", "0x20")
+ self.bid128_to_binary64("2", "[b23e4435e252dbc8f6564cb9ed392de6]", "[fbc22bd71391c416]", "0x20")
+ self.bid128_to_binary64("3", "[b23e4435e252dbc8f6564cb9ed392de6]", "[fbc22bd71391c416]", "0x20")
+ self.bid128_to_binary64("4", "[b23e4435e252dbc8f6564cb9ed392de6]", "[fbc22bd71391c416]", "0x20")
+ self.bid128_to_binary64("0", "[b24c5ee11edf051a8de580aaec8e08fe]", "[fd3e219296a4656f]", "0x20")
+ self.bid128_to_binary64("1", "[b24c5ee11edf051a8de580aaec8e08fe]", "[fd3e219296a4656f]", "0x20")
+ self.bid128_to_binary64("2", "[b24c5ee11edf051a8de580aaec8e08fe]", "[fd3e219296a4656e]", "0x20")
+ self.bid128_to_binary64("3", "[b24c5ee11edf051a8de580aaec8e08fe]", "[fd3e219296a4656e]", "0x20")
+ self.bid128_to_binary64("4", "[b24c5ee11edf051a8de580aaec8e08fe]", "[fd3e219296a4656f]", "0x20")
+ self.bid128_to_binary64("0", "[b25874f69a8f5f292b9b1747ec1462d1]", "[fe81b63a955f79b1]", "0x20")
+ self.bid128_to_binary64("1", "[b25874f69a8f5f292b9b1747ec1462d1]", "[fe81b63a955f79b1]", "0x20")
+ self.bid128_to_binary64("2", "[b25874f69a8f5f292b9b1747ec1462d1]", "[fe81b63a955f79b0]", "0x20")
+ self.bid128_to_binary64("3", "[b25874f69a8f5f292b9b1747ec1462d1]", "[fe81b63a955f79b0]", "0x20")
+ self.bid128_to_binary64("4", "[b25874f69a8f5f292b9b1747ec1462d1]", "[fe81b63a955f79b1]", "0x20")
+ self.bid128_to_binary64("0", "[b26658a213cc7a4ffae03c4825156fb3]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("1", "[b26658a213cc7a4ffae03c4825156fb3]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("2", "[b26658a213cc7a4ffae03c4825156fb3]", "[ffeffffffffffffe]", "0x20")
+ self.bid128_to_binary64("3", "[b26658a213cc7a4ffae03c4825156fb3]", "[ffeffffffffffffe]", "0x20")
+ self.bid128_to_binary64("4", "[b26658a213cc7a4ffae03c4825156fb3]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("0", "[b26658a213cc7a4ffae03c4825156fb4]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("1", "[b26658a213cc7a4ffae03c4825156fb4]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("2", "[b26658a213cc7a4ffae03c4825156fb4]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[b26658a213cc7a4ffae03c4825156fb4]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[b26658a213cc7a4ffae03c4825156fb4]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("0", "[b26658a213cc7a4ffda54ce688e7efa0]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("1", "[b26658a213cc7a4ffda54ce688e7efa0]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("2", "[b26658a213cc7a4ffda54ce688e7efa0]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("3", "[b26658a213cc7a4ffda54ce688e7efa0]", "[ffefffffffffffff]", "0x20")
+ self.bid128_to_binary64("4", "[b26658a213cc7a4ffda54ce688e7efa0]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[b26658a213cc7a4ffda54ce688e7efa1]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("1", "[b26658a213cc7a4ffda54ce688e7efa1]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("2", "[b26658a213cc7a4ffda54ce688e7efa1]", "[ffefffffffffffff]", "0x28")
+ self.bid128_to_binary64("3", "[b26658a213cc7a4ffda54ce688e7efa1]", "[ffefffffffffffff]", "0x28")
+ self.bid128_to_binary64("4", "[b26658a213cc7a4ffda54ce688e7efa1]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[dfffed09bead87c0378d8e63ffffffff]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("1", "[dfffed09bead87c0378d8e63ffffffff]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("2", "[dfffed09bead87c0378d8e63ffffffff]", "[ffefffffffffffff]", "0x28")
+ self.bid128_to_binary64("3", "[dfffed09bead87c0378d8e63ffffffff]", "[ffefffffffffffff]", "0x28")
+ self.bid128_to_binary64("4", "[dfffed09bead87c0378d8e63ffffffff]", "[fff0000000000000]", "0x28")
+ self.bid128_to_binary64("0", "[f8000000000000000000000000000000]", "[fff0000000000000]", "0x00")
+ self.bid128_to_binary64("1", "[f8000000000000000000000000000000]", "[fff0000000000000]", "0x00")
+ self.bid128_to_binary64("2", "[f8000000000000000000000000000000]", "[fff0000000000000]", "0x00")
+ self.bid128_to_binary64("3", "[f8000000000000000000000000000000]", "[fff0000000000000]", "0x00")
+ self.bid128_to_binary64("4", "[f8000000000000000000000000000000]", "[fff0000000000000]", "0x00")
+ }
+
+ private func bid128_to_binary64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDouble(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Double(arg0, rounding: rounding, status: &status)
+ self.assertBinaryFloatingPoint(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_binary80() {
+ self.bid128_to_binary80("0", "[00000000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[0000000000000000,0000000000000001]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[0001ED09BEAD87C0,378D8E6400000000]", "[00000000000000000000]", "00")
+ self.bid128_to_binary80("0", "[00420000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[00440000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[09318F1040081B28,879E2C8FEF29B0EE]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[09318F105A2F47BD,C31E591A07AD6A08]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[09329FA0199CD7A9,CFD8DE9FF943E05F]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[09329FA02412E97F,1AD8F070CFDEF736]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[0932EF70266B437E,B7C54DEFF5E5D08F]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[09333F403339AF53,9FB1BD3FF287C0BF]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[09333F404825D2FE,35B1E0E19FBDEE6D]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[09342FE33AE240B2,F18DDC63312DF683]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[0938A374D6A4B3E1,165F193744E1274B]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[0938A374E15B0BC5,BD48A44A8F3A5536]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[094EE0A71BA91360,ABF94FA41433D713]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[094EE0A72A621FA8,E5BC5FB640B5EF2C]", "[00000000000000000000]", "30")
+ self.bid128_to_binary80("0", "[094fea2dc6a2746448fc20afb172c2d1]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[095059DC775A7310,5BE4F315B37BF945]", "[00000000000000000001]", "30")
+ self.bid128_to_binary80("0", "[095086CAAA323ED3,9A6262FC0C1F1AA5]", "[00000000000000000001]", "30")
+ self.bid128_to_binary80("0", "[0950b3b8e2eda91a232dd950102978db]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("0", "[0950B3B8EEB4E620,B7C9E62B66F7F289]", "[00000000000000000001]", "30")
+ self.bid128_to_binary80("0", "[095208FC71BF1541,4E8F17AA6735460B]", "[00000000000000000001]", "30")
+ self.bid128_to_binary80("0", "[095211f8e37e2a829d1e2f54ce6a8c16]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("0", "[095211F8E37E2A82,9D1E2F54CE6A8C16]", "[00000000000000000001]", "30")
+ self.bid128_to_binary80("0", "[09521AF5553D3FC3,EBAD46FF359FD221]", "[00000000000000000002]", "30")
+ self.bid128_to_binary80("0", "[09565C048CC36903,2471962D169C66D7]", "[00000000000000000200]", "30")
+ self.bid128_to_binary80("0", "[09565C0492CB3656,62321FD4AF9992B5]", "[00000000000000000200]", "30")
+ self.bid128_to_binary80("0", "[0976A5C3B52962CB,BAE910A91EAAE917]", "[00018000000000000000]", "30")
+ self.bid128_to_binary80("0", "[0976a5c3b52962cbbae990a91eaae918]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[0976a5c3b52962cbbae990a91eaae919]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[09774b876a52c59775d321523d55d231]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[09774b876a52c59775d321523d55d232]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[0c67ce2730fbbac696382781f5c9be8a]", "[04e3b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("0", "[0f7e0084b2291c1a9edea59d766c2e81]", "[09fd93cc2c4f16ff4510]", "0x20")
+ self.bid128_to_binary80("0", "[1294044198fca138ffe3cb029dcff04e]", "[0f20a9ae28b43e1442bc]", "0x20")
+ self.bid128_to_binary80("0", "[15aab24ae6a964c6696516d82841bff2]", "[1445f872814cb5e30303]", "0x20")
+ self.bid128_to_binary80("0", "[18c1de00522b7aecf5c68bc7f9b80ca5]", "[1967ba42223153fad4ee]", "0x20")
+ self.bid128_to_binary80("0", "[1bd7bd0a7e0c1b4ca56a76def860ab01]", "[1e87c1f811d7bf3233d8]", "0x20")
+ self.bid128_to_binary80("0", "[1eee07785fee48432563df34d602138f]", "[23a591ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("0", "[22045cd4371ac0b00591a738c71c82c4]", "[28c8fd17612b3375d7cd]", "0x20")
+ self.bid128_to_binary80("0", "[251ac5ad27c05d08f889bec276922d7c]", "[2dea96b51093ca032544]", "0x20")
+ self.bid128_to_binary80("0", "[2831c6ac95daf8c22f065e8d7c1d812d]", "[330bc1dcfbc95b84116c]", "0x20")
+ self.bid128_to_binary80("0", "[2b480c5cecaf6e48f0c7ddeca33f408f]", "[3829ebd7fa7c6576a688]", "0x20")
+ self.bid128_to_binary80("0", "[2D75307DD0849AC8,55240FC6ECDB749F]", "[3BCA8000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2D75307DE4791FA8,7096112138B357B6]", "[3BCA800008637BD05AF7]", "20")
+ self.bid128_to_binary80("0", "[2D7679CBED01D783,55419FE92B8AFB73]", "[3BCC8000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2D7679CBF4FD3FDC,F9D5A073B047BCAF]", "[3BCC800008637BD05AF7]", "20")
+ self.bid128_to_binary80("0", "[2D76F397DA03AF06,AA833FD25715F6E6]", "[3BCD8000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2D76F397E9FA7FB9,F3AB40E7608F795E]", "[3BCD800008637BD05AF7]", "20")
+ self.bid128_to_binary80("0", "[2D776D63C7058689,FFC4DFBB82A0F259]", "[3BCDC000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2D781244FD26AD20,7FFD0B2FC6880C1E]", "[3BCCC000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2D7C7CB83E78AB88,88745A054B4ED46D]", "[3BD68000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2D7C7CB846A51E94,7491069B54414449]", "[3BD6800008637BD05AF7]", "20")
+ self.bid128_to_binary80("0", "[2e5e2698174c9d819e82ca8f9f13bcd9]", "[3d4bcde078b94950f8e0]", "0x20")
+ self.bid128_to_binary80("0", "[2FA2565C976C9CBD,FCCB24E161BF83CB]", "[3F678000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2FA2565C9D15855B,71F049284D1CE126]", "[3F67800008637BD05AF7]", "20")
+ self.bid128_to_binary80("0", "[2FA359725DB272F7,F32C938586FE0F2D]", "[3F698000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2FA359727456156D,C7C124A134738499]", "[3F69800008637BD05AF7]", "20")
+ self.bid128_to_binary80("0", "[2FA433D127A7913E,CAE049540772E8AD]", "[3F69C000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2FA44516DF8A16FE,63D5B71AB499363C]", "[3F6A8000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2FA44516E411377C,5B26A0ED0A7D80EB]", "[3F6A800008637BD05AF7]", "20")
+ self.bid128_to_binary80("0", "[2FA467A24F4F227D,95C092A80EE5D15A]", "[3F6AC000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2FA961BCCA711991,5B50764B4ABE8653]", "[3F738000000000000000]", "20")
+ self.bid128_to_binary80("0", "[2FA961BCE19FD468,3917B2D2213AE5FD]", "[3F73800008637BD05AF7]", "20")
+ self.bid128_to_binary80("0", "[303000000000000000000000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[303e000000000000000000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[30400000000000000000000000000000]", "[00000000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[3040000000000000,0000000000000001]", "[3FFF8000000000000000]", "00")
+ self.bid128_to_binary80("0", "[30400000000000000000000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[30400000000000000000000000000040]", "[40058000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[304000000000000000000000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[304000000000000000000000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[3040000000000000,00000001ffffffff]", "[401FFFFFFFFF80000000]", "00")
+ self.bid128_to_binary80("0", "[3040000000000000,0001ffffffffffff]", "[402FFFFFFFFFFFFF8000]", "00")
+ self.bid128_to_binary80("0", "[3040000000000000,01ffffffffffffff]", "[4037FFFFFFFFFFFFFF80]", "00")
+ self.bid128_to_binary80("0", "[3040000000000000,1fffffffffffffff]", "[403BFFFFFFFFFFFFFFF8]", "00")
+ self.bid128_to_binary80("0", "[3040000000000000,3fffffffffffffff]", "[403CFFFFFFFFFFFFFFFC]", "00")
+ self.bid128_to_binary80("0", "[3040000000000000,7fffffffffffffff]", "[403DFFFFFFFFFFFFFFFE]", "00")
+ self.bid128_to_binary80("0", "[3040000011111111,1111111111111111]", "[405B8888888888888889]", "20")
+ self.bid128_to_binary80("0", "[3040111111111111,1111111111111111]", "[406B8888888888888889]", "20")
+ self.bid128_to_binary80("0", "[3041111111111111,1111111111111111]", "[406F8888888888888889]", "20")
+ self.bid128_to_binary80("0", "[3041ED09BEAD87C0,378D8E6400000000]", "[00000000000000000000]", "00")
+ self.bid128_to_binary80("0", "[304AA79AB92956E6,6BAF50901058E8A4]", "[407EFFBE76C8B4395810]", "20")
+ self.bid128_to_binary80("0", "[304AFBA8826AA8EB,463497B7414A4D2B]", "[407FC000000000000000]", "20")
+ self.bid128_to_binary80("0", "[304C4B7F5A5332AC,FB762D83C6C97D8D]", "[40819000000000000000]", "20")
+ self.bid128_to_binary80("0", "[3174a169bb81af25df1153c111ccfbcb]", "[426df0c64fe1d212722f]", "0x20")
+ self.bid128_to_binary80("0", "[3266588B632391BD,FDA5E7310E66AE1C]", "[43FEFFBE76C8B4395810]", "20")
+ self.bid128_to_binary80("0", "[326684F31DB2B777,FC77F359CD5BE771]", "[43FFC000000000000000]", "20")
+ self.bid128_to_binary80("0", "[32678ED959182667,F567DA0D6813B653]", "[44019000000000000000]", "20")
+ self.bid128_to_binary80("0", "[348be2feaa0d0a95cb3aad1844b7d47e]", "[478fc97720dd9a8df783]", "0x20")
+ self.bid128_to_binary80("0", "[37a08072932c07d696e192586e21c818]", "[4cadefb639b79ae7f02d]", "0x20")
+ self.bid128_to_binary80("0", "[3ab72a15700a63867702206c7c91be92]", "[51cf9b8e6911e38500eb]", "0x20")
+ self.bid128_to_binary80("0", "[3dcea57c139cff72472f0cd6e46b7acb]", "[56f1f17c88040aaa1847]", "0x20")
+ self.bid128_to_binary80("0", "[40e5b41143cf3e3e48f0f774ea8017c1]", "[5c13b1f0b845fe59e09c]", "0x20")
+ self.bid128_to_binary80("0", "[43fa7d2b8dfba550b32e8318c588b096]", "[6131e48581c4941330d8]", "0x20")
+ self.bid128_to_binary80("0", "[4710c30cc6e6ca06ccb5a3b77068e9ca]", "[6652c72747e144bc8234]", "0x20")
+ self.bid128_to_binary80("0", "[4a268d00d46c44fccad07466a889c27a]", "[6b72a108a254a087eb4a]", "0x20")
+ self.bid128_to_binary80("0", "[4d3c6ca1c83438c3c4e419873e4cbab4]", "[70928ac4bfd4df334708]", "0x20")
+ self.bid128_to_binary80("0", "[5055c943208a2627b5d3424ef1fe79dd]", "[75b7cc2bd337f5324105]", "0x20")
+ self.bid128_to_binary80("0", "[536758a2ae6f08a7bd5df2fb309bc6d0]", "[7ad0dc50bbb3690c8710]", "0x20")
+ self.bid128_to_binary80("0", "[56863A99819046AF,E37FCC3111E1DF03]", "[7FFEFFBE76C8B4395810]", "20")
+ self.bid128_to_binary80("0", "[56863aa885cb1a6cecf38634ccf08e3a]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("0", "[56863aa885cb1a6cecf38634ccf08e3b]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("0", "[56863aa885cb1a6cecf3c0dd52bba8a7]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[56863aa885cb1a6cecf3c0dd52bba8a8]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[568657FCC8B0A7A3,636DA14BFC197CFB]", "[7FFF8000000000000000]", "28")
+ self.bid128_to_binary80("0", "[568707F65A11F6EA,2A48E3E3F44C76F0]", "[7FFF8000000000000000]", "28")
+ self.bid128_to_binary80("0", "[5fffed09bead87c0378d8e63ffffffff]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[5FFFED09BEAD87C0,378D8E63FFFFFFFF]", "[7FFF8000000000000000]", "28")
+ self.bid128_to_binary80("0", "[6000000000000000,0000000000000000]", "[00000000000000000000]", "00")
+ self.bid128_to_binary80("0", "[78000000000000000000000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[7c00000000000000,0000000000000000]", "[7FFFC000000000000000]", "00")
+ self.bid128_to_binary80("0", "[7c00314DC6448D93,38C15B09FFFFFFFF]", "[7FFFF14DC6448D9338C1]", "00")
+ self.bid128_to_binary80("0", "[7c00314DC6448D93,38C15B0a00000000]", "[7FFFC000000000000000]", "00")
+ self.bid128_to_binary80("0", "[7c00314DC6448D94,38C15B0a00000000]", "[7FFFC000000000000000]", "00")
+ self.bid128_to_binary80("0", "[7e00000000000000,0000000000000000]", "[7FFFC000000000000000]", "01")
+ self.bid128_to_binary80("0", "[7e00314DC6448D93,38C15B09FFFFFFFF]", "[7FFFF14DC6448D9338C1]", "01")
+ self.bid128_to_binary80("0", "[7e00314DC6448D93,38C15B0a00000000]", "[7FFFC000000000000000]", "01")
+ self.bid128_to_binary80("0", "[7e00314DC6448D94,38C15B0a00000000]", "[7FFFC000000000000000]", "01")
+ self.bid128_to_binary80("0", "[80000000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[80420000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[80440000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[894fea2dc6a2746448fc20afb172c2d1]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[8950b3b8e2eda91a232dd950102978db]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("0", "[895211f8e37e2a829d1e2f54ce6a8c16]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("0", "[8976a5c3b52962cbbae990a91eaae918]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[8976a5c3b52962cbbae990a91eaae919]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[89774b876a52c59775d321523d55d231]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[89774b876a52c59775d321523d55d232]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[8c67ce2730fbbac696382781f5c9be8a]", "[84e3b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("0", "[8f7e0084b2291c1a9edea59d766c2e81]", "[89fd93cc2c4f16ff4510]", "0x20")
+ self.bid128_to_binary80("0", "[9294044198fca138ffe3cb029dcff04e]", "[8f20a9ae28b43e1442bc]", "0x20")
+ self.bid128_to_binary80("0", "[95aab24ae6a964c6696516d82841bff2]", "[9445f872814cb5e30303]", "0x20")
+ self.bid128_to_binary80("0", "[98c1de00522b7aecf5c68bc7f9b80ca5]", "[9967ba42223153fad4ee]", "0x20")
+ self.bid128_to_binary80("0", "[9bd7bd0a7e0c1b4ca56a76def860ab01]", "[9e87c1f811d7bf3233d8]", "0x20")
+ self.bid128_to_binary80("0", "[9eee07785fee48432563df34d602138f]", "[a3a591ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("0", "[a2045cd4371ac0b00591a738c71c82c4]", "[a8c8fd17612b3375d7cd]", "0x20")
+ self.bid128_to_binary80("0", "[a51ac5ad27c05d08f889bec276922d7c]", "[adea96b51093ca032544]", "0x20")
+ self.bid128_to_binary80("0", "[a831c6ac95daf8c22f065e8d7c1d812d]", "[b30bc1dcfbc95b84116c]", "0x20")
+ self.bid128_to_binary80("0", "[ab480c5cecaf6e48f0c7ddeca33f408f]", "[b829ebd7fa7c6576a688]", "0x20")
+ self.bid128_to_binary80("0", "[ae5e2698174c9d819e82ca8f9f13bcd9]", "[bd4bcde078b94950f8e0]", "0x20")
+ self.bid128_to_binary80("0", "[b03000000000000000000000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b03e000000000000000000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b0400000000000000000000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b0400000000000000000000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b04000000000000000000000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b04000000000000000000000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b174a169bb81af25df1153c111ccfbcb]", "[c26df0c64fe1d212722f]", "0x20")
+ self.bid128_to_binary80("0", "[b48be2feaa0d0a95cb3aad1844b7d47e]", "[c78fc97720dd9a8df783]", "0x20")
+ self.bid128_to_binary80("0", "[b7a08072932c07d696e192586e21c818]", "[ccadefb639b79ae7f02d]", "0x20")
+ self.bid128_to_binary80("0", "[bab72a15700a63867702206c7c91be92]", "[d1cf9b8e6911e38500eb]", "0x20")
+ self.bid128_to_binary80("0", "[bdcea57c139cff72472f0cd6e46b7acb]", "[d6f1f17c88040aaa1847]", "0x20")
+ self.bid128_to_binary80("0", "[c0e5b41143cf3e3e48f0f774ea8017c1]", "[dc13b1f0b845fe59e09c]", "0x20")
+ self.bid128_to_binary80("0", "[c3fa7d2b8dfba550b32e8318c588b096]", "[e131e48581c4941330d8]", "0x20")
+ self.bid128_to_binary80("0", "[c710c30cc6e6ca06ccb5a3b77068e9ca]", "[e652c72747e144bc8234]", "0x20")
+ self.bid128_to_binary80("0", "[ca268d00d46c44fccad07466a889c27a]", "[eb72a108a254a087eb4a]", "0x20")
+ self.bid128_to_binary80("0", "[cd3c6ca1c83438c3c4e419873e4cbab4]", "[f0928ac4bfd4df334708]", "0x20")
+ self.bid128_to_binary80("0", "[d055c943208a2627b5d3424ef1fe79dd]", "[f5b7cc2bd337f5324105]", "0x20")
+ self.bid128_to_binary80("0", "[d36758a2ae6f08a7bd5df2fb309bc6d0]", "[fad0dc50bbb3690c8710]", "0x20")
+ self.bid128_to_binary80("0", "[d6863aa885cb1a6cecf38634ccf08e3a]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("0", "[d6863aa885cb1a6cecf38634ccf08e3b]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("0", "[d6863aa885cb1a6cecf3c0dd52bba8a7]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[d6863aa885cb1a6cecf3c0dd52bba8a8]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[dfffed09bead87c0378d8e63ffffffff]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[f8000000000000000000000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[00000000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[00420000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[00440000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[094fea2dc6a2746448fc20afb172c2d1]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[0950b3b8e2eda91a232dd950102978db]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[095211f8e37e2a829d1e2f54ce6a8c16]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("1", "[0976a5c3b52962cbbae990a91eaae918]", "[00007fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("1", "[0976a5c3b52962cbbae990a91eaae919]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[09774b876a52c59775d321523d55d231]", "[0001ffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("1", "[09774b876a52c59775d321523d55d232]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[0c67ce2730fbbac696382781f5c9be8a]", "[04e3b814d2bb660b0ba8]", "0x20")
+ self.bid128_to_binary80("1", "[0f7e0084b2291c1a9edea59d766c2e81]", "[09fd93cc2c4f16ff4510]", "0x20")
+ self.bid128_to_binary80("1", "[1294044198fca138ffe3cb029dcff04e]", "[0f20a9ae28b43e1442bc]", "0x20")
+ self.bid128_to_binary80("1", "[15aab24ae6a964c6696516d82841bff2]", "[1445f872814cb5e30303]", "0x20")
+ self.bid128_to_binary80("1", "[18c1de00522b7aecf5c68bc7f9b80ca5]", "[1967ba42223153fad4ed]", "0x20")
+ self.bid128_to_binary80("1", "[1bd7bd0a7e0c1b4ca56a76def860ab01]", "[1e87c1f811d7bf3233d7]", "0x20")
+ self.bid128_to_binary80("1", "[1eee07785fee48432563df34d602138f]", "[23a591ab9a310597c7d0]", "0x20")
+ self.bid128_to_binary80("1", "[22045cd4371ac0b00591a738c71c82c4]", "[28c8fd17612b3375d7cc]", "0x20")
+ self.bid128_to_binary80("1", "[251ac5ad27c05d08f889bec276922d7c]", "[2dea96b51093ca032544]", "0x20")
+ self.bid128_to_binary80("1", "[2831c6ac95daf8c22f065e8d7c1d812d]", "[330bc1dcfbc95b84116b]", "0x20")
+ self.bid128_to_binary80("1", "[2b480c5cecaf6e48f0c7ddeca33f408f]", "[3829ebd7fa7c6576a688]", "0x20")
+ self.bid128_to_binary80("1", "[2e5e2698174c9d819e82ca8f9f13bcd9]", "[3d4bcde078b94950f8e0]", "0x20")
+ self.bid128_to_binary80("1", "[303000000000000000000000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[303e000000000000000000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[30400000000000000000000000000000]", "[00000000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[30400000000000000000000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[30400000000000000000000000000040]", "[40058000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[304000000000000000000000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[304000000000000000000000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[3174a169bb81af25df1153c111ccfbcb]", "[426df0c64fe1d212722f]", "0x20")
+ self.bid128_to_binary80("1", "[348be2feaa0d0a95cb3aad1844b7d47e]", "[478fc97720dd9a8df782]", "0x20")
+ self.bid128_to_binary80("1", "[37a08072932c07d696e192586e21c818]", "[4cadefb639b79ae7f02c]", "0x20")
+ self.bid128_to_binary80("1", "[3ab72a15700a63867702206c7c91be92]", "[51cf9b8e6911e38500ea]", "0x20")
+ self.bid128_to_binary80("1", "[3dcea57c139cff72472f0cd6e46b7acb]", "[56f1f17c88040aaa1846]", "0x20")
+ self.bid128_to_binary80("1", "[40e5b41143cf3e3e48f0f774ea8017c1]", "[5c13b1f0b845fe59e09c]", "0x20")
+ self.bid128_to_binary80("1", "[43fa7d2b8dfba550b32e8318c588b096]", "[6131e48581c4941330d8]", "0x20")
+ self.bid128_to_binary80("1", "[4710c30cc6e6ca06ccb5a3b77068e9ca]", "[6652c72747e144bc8233]", "0x20")
+ self.bid128_to_binary80("1", "[4a268d00d46c44fccad07466a889c27a]", "[6b72a108a254a087eb49]", "0x20")
+ self.bid128_to_binary80("1", "[4d3c6ca1c83438c3c4e419873e4cbab4]", "[70928ac4bfd4df334707]", "0x20")
+ self.bid128_to_binary80("1", "[5055c943208a2627b5d3424ef1fe79dd]", "[75b7cc2bd337f5324104]", "0x20")
+ self.bid128_to_binary80("1", "[536758a2ae6f08a7bd5df2fb309bc6d0]", "[7ad0dc50bbb3690c870f]", "0x20")
+ self.bid128_to_binary80("1", "[56863aa885cb1a6cecf38634ccf08e3a]", "[7ffefffffffffffffffe]", "0x20")
+ self.bid128_to_binary80("1", "[56863aa885cb1a6cecf38634ccf08e3b]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("1", "[56863aa885cb1a6cecf3c0dd52bba8a7]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("1", "[56863aa885cb1a6cecf3c0dd52bba8a8]", "[7ffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("1", "[5fffed09bead87c0378d8e63ffffffff]", "[7ffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("1", "[78000000000000000000000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[80000000000000000000000000000001]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("1", "[80420000000000000000000000000001]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("1", "[80440000000000000000000000000001]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("1", "[894fea2dc6a2746448fc20afb172c2d1]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("1", "[8950b3b8e2eda91a232dd950102978db]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("1", "[895211f8e37e2a829d1e2f54ce6a8c16]", "[80000000000000000002]", "0x30")
+ self.bid128_to_binary80("1", "[8976a5c3b52962cbbae990a91eaae918]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[8976a5c3b52962cbbae990a91eaae919]", "[80018000000000000001]", "0x20")
+ self.bid128_to_binary80("1", "[89774b876a52c59775d321523d55d231]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[89774b876a52c59775d321523d55d232]", "[80028000000000000001]", "0x20")
+ self.bid128_to_binary80("1", "[8c67ce2730fbbac696382781f5c9be8a]", "[84e3b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("1", "[8f7e0084b2291c1a9edea59d766c2e81]", "[89fd93cc2c4f16ff4511]", "0x20")
+ self.bid128_to_binary80("1", "[9294044198fca138ffe3cb029dcff04e]", "[8f20a9ae28b43e1442bd]", "0x20")
+ self.bid128_to_binary80("1", "[95aab24ae6a964c6696516d82841bff2]", "[9445f872814cb5e30304]", "0x20")
+ self.bid128_to_binary80("1", "[98c1de00522b7aecf5c68bc7f9b80ca5]", "[9967ba42223153fad4ee]", "0x20")
+ self.bid128_to_binary80("1", "[9bd7bd0a7e0c1b4ca56a76def860ab01]", "[9e87c1f811d7bf3233d8]", "0x20")
+ self.bid128_to_binary80("1", "[9eee07785fee48432563df34d602138f]", "[a3a591ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("1", "[a2045cd4371ac0b00591a738c71c82c4]", "[a8c8fd17612b3375d7cd]", "0x20")
+ self.bid128_to_binary80("1", "[a51ac5ad27c05d08f889bec276922d7c]", "[adea96b51093ca032545]", "0x20")
+ self.bid128_to_binary80("1", "[a831c6ac95daf8c22f065e8d7c1d812d]", "[b30bc1dcfbc95b84116c]", "0x20")
+ self.bid128_to_binary80("1", "[ab480c5cecaf6e48f0c7ddeca33f408f]", "[b829ebd7fa7c6576a689]", "0x20")
+ self.bid128_to_binary80("1", "[ae5e2698174c9d819e82ca8f9f13bcd9]", "[bd4bcde078b94950f8e1]", "0x20")
+ self.bid128_to_binary80("1", "[b03000000000000000000000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b03e000000000000000000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b0400000000000000000000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b0400000000000000000000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b04000000000000000000000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b04000000000000000000000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b174a169bb81af25df1153c111ccfbcb]", "[c26df0c64fe1d2127230]", "0x20")
+ self.bid128_to_binary80("1", "[b48be2feaa0d0a95cb3aad1844b7d47e]", "[c78fc97720dd9a8df783]", "0x20")
+ self.bid128_to_binary80("1", "[b7a08072932c07d696e192586e21c818]", "[ccadefb639b79ae7f02d]", "0x20")
+ self.bid128_to_binary80("1", "[bab72a15700a63867702206c7c91be92]", "[d1cf9b8e6911e38500eb]", "0x20")
+ self.bid128_to_binary80("1", "[bdcea57c139cff72472f0cd6e46b7acb]", "[d6f1f17c88040aaa1847]", "0x20")
+ self.bid128_to_binary80("1", "[c0e5b41143cf3e3e48f0f774ea8017c1]", "[dc13b1f0b845fe59e09d]", "0x20")
+ self.bid128_to_binary80("1", "[c3fa7d2b8dfba550b32e8318c588b096]", "[e131e48581c4941330d9]", "0x20")
+ self.bid128_to_binary80("1", "[c710c30cc6e6ca06ccb5a3b77068e9ca]", "[e652c72747e144bc8234]", "0x20")
+ self.bid128_to_binary80("1", "[ca268d00d46c44fccad07466a889c27a]", "[eb72a108a254a087eb4a]", "0x20")
+ self.bid128_to_binary80("1", "[cd3c6ca1c83438c3c4e419873e4cbab4]", "[f0928ac4bfd4df334708]", "0x20")
+ self.bid128_to_binary80("1", "[d055c943208a2627b5d3424ef1fe79dd]", "[f5b7cc2bd337f5324105]", "0x20")
+ self.bid128_to_binary80("1", "[d36758a2ae6f08a7bd5df2fb309bc6d0]", "[fad0dc50bbb3690c8710]", "0x20")
+ self.bid128_to_binary80("1", "[d6863aa885cb1a6cecf38634ccf08e3a]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("1", "[d6863aa885cb1a6cecf38634ccf08e3b]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("1", "[d6863aa885cb1a6cecf3c0dd52bba8a7]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("1", "[d6863aa885cb1a6cecf3c0dd52bba8a8]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("1", "[dfffed09bead87c0378d8e63ffffffff]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("1", "[f8000000000000000000000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[00000000000000000000000000000001]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[00420000000000000000000000000001]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[00440000000000000000000000000001]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[094fea2dc6a2746448fc20afb172c2d1]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[0950b3b8e2eda91a232dd950102978db]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[095211f8e37e2a829d1e2f54ce6a8c16]", "[00000000000000000002]", "0x30")
+ self.bid128_to_binary80("2", "[0976a5c3b52962cbbae990a91eaae918]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("2", "[0976a5c3b52962cbbae990a91eaae919]", "[00018000000000000001]", "0x20")
+ self.bid128_to_binary80("2", "[09774b876a52c59775d321523d55d231]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("2", "[09774b876a52c59775d321523d55d232]", "[00028000000000000001]", "0x20")
+ self.bid128_to_binary80("2", "[0c67ce2730fbbac696382781f5c9be8a]", "[04e3b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("2", "[0f7e0084b2291c1a9edea59d766c2e81]", "[09fd93cc2c4f16ff4511]", "0x20")
+ self.bid128_to_binary80("2", "[1294044198fca138ffe3cb029dcff04e]", "[0f20a9ae28b43e1442bd]", "0x20")
+ self.bid128_to_binary80("2", "[15aab24ae6a964c6696516d82841bff2]", "[1445f872814cb5e30304]", "0x20")
+ self.bid128_to_binary80("2", "[18c1de00522b7aecf5c68bc7f9b80ca5]", "[1967ba42223153fad4ee]", "0x20")
+ self.bid128_to_binary80("2", "[1bd7bd0a7e0c1b4ca56a76def860ab01]", "[1e87c1f811d7bf3233d8]", "0x20")
+ self.bid128_to_binary80("2", "[1eee07785fee48432563df34d602138f]", "[23a591ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("2", "[22045cd4371ac0b00591a738c71c82c4]", "[28c8fd17612b3375d7cd]", "0x20")
+ self.bid128_to_binary80("2", "[251ac5ad27c05d08f889bec276922d7c]", "[2dea96b51093ca032545]", "0x20")
+ self.bid128_to_binary80("2", "[2831c6ac95daf8c22f065e8d7c1d812d]", "[330bc1dcfbc95b84116c]", "0x20")
+ self.bid128_to_binary80("2", "[2b480c5cecaf6e48f0c7ddeca33f408f]", "[3829ebd7fa7c6576a689]", "0x20")
+ self.bid128_to_binary80("2", "[2e5e2698174c9d819e82ca8f9f13bcd9]", "[3d4bcde078b94950f8e1]", "0x20")
+ self.bid128_to_binary80("2", "[303000000000000000000000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[303e000000000000000000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[30400000000000000000000000000000]", "[00000000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[30400000000000000000000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[30400000000000000000000000000040]", "[40058000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[304000000000000000000000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[304000000000000000000000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[3174a169bb81af25df1153c111ccfbcb]", "[426df0c64fe1d2127230]", "0x20")
+ self.bid128_to_binary80("2", "[348be2feaa0d0a95cb3aad1844b7d47e]", "[478fc97720dd9a8df783]", "0x20")
+ self.bid128_to_binary80("2", "[37a08072932c07d696e192586e21c818]", "[4cadefb639b79ae7f02d]", "0x20")
+ self.bid128_to_binary80("2", "[3ab72a15700a63867702206c7c91be92]", "[51cf9b8e6911e38500eb]", "0x20")
+ self.bid128_to_binary80("2", "[3dcea57c139cff72472f0cd6e46b7acb]", "[56f1f17c88040aaa1847]", "0x20")
+ self.bid128_to_binary80("2", "[40e5b41143cf3e3e48f0f774ea8017c1]", "[5c13b1f0b845fe59e09d]", "0x20")
+ self.bid128_to_binary80("2", "[43fa7d2b8dfba550b32e8318c588b096]", "[6131e48581c4941330d9]", "0x20")
+ self.bid128_to_binary80("2", "[4710c30cc6e6ca06ccb5a3b77068e9ca]", "[6652c72747e144bc8234]", "0x20")
+ self.bid128_to_binary80("2", "[4a268d00d46c44fccad07466a889c27a]", "[6b72a108a254a087eb4a]", "0x20")
+ self.bid128_to_binary80("2", "[4d3c6ca1c83438c3c4e419873e4cbab4]", "[70928ac4bfd4df334708]", "0x20")
+ self.bid128_to_binary80("2", "[5055c943208a2627b5d3424ef1fe79dd]", "[75b7cc2bd337f5324105]", "0x20")
+ self.bid128_to_binary80("2", "[536758a2ae6f08a7bd5df2fb309bc6d0]", "[7ad0dc50bbb3690c8710]", "0x20")
+ self.bid128_to_binary80("2", "[56863aa885cb1a6cecf38634ccf08e3a]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("2", "[56863aa885cb1a6cecf38634ccf08e3b]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("2", "[56863aa885cb1a6cecf3c0dd52bba8a7]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("2", "[56863aa885cb1a6cecf3c0dd52bba8a8]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("2", "[5fffed09bead87c0378d8e63ffffffff]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("2", "[78000000000000000000000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[80000000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[80420000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[80440000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[894fea2dc6a2746448fc20afb172c2d1]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[8950b3b8e2eda91a232dd950102978db]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[895211f8e37e2a829d1e2f54ce6a8c16]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[8976a5c3b52962cbbae990a91eaae918]", "[80007fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("2", "[8976a5c3b52962cbbae990a91eaae919]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("2", "[89774b876a52c59775d321523d55d231]", "[8001ffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("2", "[89774b876a52c59775d321523d55d232]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("2", "[8c67ce2730fbbac696382781f5c9be8a]", "[84e3b814d2bb660b0ba8]", "0x20")
+ self.bid128_to_binary80("2", "[8f7e0084b2291c1a9edea59d766c2e81]", "[89fd93cc2c4f16ff4510]", "0x20")
+ self.bid128_to_binary80("2", "[9294044198fca138ffe3cb029dcff04e]", "[8f20a9ae28b43e1442bc]", "0x20")
+ self.bid128_to_binary80("2", "[95aab24ae6a964c6696516d82841bff2]", "[9445f872814cb5e30303]", "0x20")
+ self.bid128_to_binary80("2", "[98c1de00522b7aecf5c68bc7f9b80ca5]", "[9967ba42223153fad4ed]", "0x20")
+ self.bid128_to_binary80("2", "[9bd7bd0a7e0c1b4ca56a76def860ab01]", "[9e87c1f811d7bf3233d7]", "0x20")
+ self.bid128_to_binary80("2", "[9eee07785fee48432563df34d602138f]", "[a3a591ab9a310597c7d0]", "0x20")
+ self.bid128_to_binary80("2", "[a2045cd4371ac0b00591a738c71c82c4]", "[a8c8fd17612b3375d7cc]", "0x20")
+ self.bid128_to_binary80("2", "[a51ac5ad27c05d08f889bec276922d7c]", "[adea96b51093ca032544]", "0x20")
+ self.bid128_to_binary80("2", "[a831c6ac95daf8c22f065e8d7c1d812d]", "[b30bc1dcfbc95b84116b]", "0x20")
+ self.bid128_to_binary80("2", "[ab480c5cecaf6e48f0c7ddeca33f408f]", "[b829ebd7fa7c6576a688]", "0x20")
+ self.bid128_to_binary80("2", "[ae5e2698174c9d819e82ca8f9f13bcd9]", "[bd4bcde078b94950f8e0]", "0x20")
+ self.bid128_to_binary80("2", "[b03000000000000000000000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b03e000000000000000000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b0400000000000000000000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b0400000000000000000000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b04000000000000000000000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b04000000000000000000000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b174a169bb81af25df1153c111ccfbcb]", "[c26df0c64fe1d212722f]", "0x20")
+ self.bid128_to_binary80("2", "[b48be2feaa0d0a95cb3aad1844b7d47e]", "[c78fc97720dd9a8df782]", "0x20")
+ self.bid128_to_binary80("2", "[b7a08072932c07d696e192586e21c818]", "[ccadefb639b79ae7f02c]", "0x20")
+ self.bid128_to_binary80("2", "[bab72a15700a63867702206c7c91be92]", "[d1cf9b8e6911e38500ea]", "0x20")
+ self.bid128_to_binary80("2", "[bdcea57c139cff72472f0cd6e46b7acb]", "[d6f1f17c88040aaa1846]", "0x20")
+ self.bid128_to_binary80("2", "[c0e5b41143cf3e3e48f0f774ea8017c1]", "[dc13b1f0b845fe59e09c]", "0x20")
+ self.bid128_to_binary80("2", "[c3fa7d2b8dfba550b32e8318c588b096]", "[e131e48581c4941330d8]", "0x20")
+ self.bid128_to_binary80("2", "[c710c30cc6e6ca06ccb5a3b77068e9ca]", "[e652c72747e144bc8233]", "0x20")
+ self.bid128_to_binary80("2", "[ca268d00d46c44fccad07466a889c27a]", "[eb72a108a254a087eb49]", "0x20")
+ self.bid128_to_binary80("2", "[cd3c6ca1c83438c3c4e419873e4cbab4]", "[f0928ac4bfd4df334707]", "0x20")
+ self.bid128_to_binary80("2", "[d055c943208a2627b5d3424ef1fe79dd]", "[f5b7cc2bd337f5324104]", "0x20")
+ self.bid128_to_binary80("2", "[d36758a2ae6f08a7bd5df2fb309bc6d0]", "[fad0dc50bbb3690c870f]", "0x20")
+ self.bid128_to_binary80("2", "[d6863aa885cb1a6cecf38634ccf08e3a]", "[fffefffffffffffffffe]", "0x20")
+ self.bid128_to_binary80("2", "[d6863aa885cb1a6cecf38634ccf08e3b]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("2", "[d6863aa885cb1a6cecf3c0dd52bba8a7]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("2", "[d6863aa885cb1a6cecf3c0dd52bba8a8]", "[fffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("2", "[dfffed09bead87c0378d8e63ffffffff]", "[fffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("2", "[f8000000000000000000000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[00000000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[00420000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[00440000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[094fea2dc6a2746448fc20afb172c2d1]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[0950b3b8e2eda91a232dd950102978db]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[095211f8e37e2a829d1e2f54ce6a8c16]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("3", "[0976a5c3b52962cbbae990a91eaae918]", "[00007fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("3", "[0976a5c3b52962cbbae990a91eaae919]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("3", "[09774b876a52c59775d321523d55d231]", "[0001ffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("3", "[09774b876a52c59775d321523d55d232]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("3", "[0c67ce2730fbbac696382781f5c9be8a]", "[04e3b814d2bb660b0ba8]", "0x20")
+ self.bid128_to_binary80("3", "[0f7e0084b2291c1a9edea59d766c2e81]", "[09fd93cc2c4f16ff4510]", "0x20")
+ self.bid128_to_binary80("3", "[1294044198fca138ffe3cb029dcff04e]", "[0f20a9ae28b43e1442bc]", "0x20")
+ self.bid128_to_binary80("3", "[15aab24ae6a964c6696516d82841bff2]", "[1445f872814cb5e30303]", "0x20")
+ self.bid128_to_binary80("3", "[18c1de00522b7aecf5c68bc7f9b80ca5]", "[1967ba42223153fad4ed]", "0x20")
+ self.bid128_to_binary80("3", "[1bd7bd0a7e0c1b4ca56a76def860ab01]", "[1e87c1f811d7bf3233d7]", "0x20")
+ self.bid128_to_binary80("3", "[1eee07785fee48432563df34d602138f]", "[23a591ab9a310597c7d0]", "0x20")
+ self.bid128_to_binary80("3", "[22045cd4371ac0b00591a738c71c82c4]", "[28c8fd17612b3375d7cc]", "0x20")
+ self.bid128_to_binary80("3", "[251ac5ad27c05d08f889bec276922d7c]", "[2dea96b51093ca032544]", "0x20")
+ self.bid128_to_binary80("3", "[2831c6ac95daf8c22f065e8d7c1d812d]", "[330bc1dcfbc95b84116b]", "0x20")
+ self.bid128_to_binary80("3", "[2b480c5cecaf6e48f0c7ddeca33f408f]", "[3829ebd7fa7c6576a688]", "0x20")
+ self.bid128_to_binary80("3", "[2e5e2698174c9d819e82ca8f9f13bcd9]", "[3d4bcde078b94950f8e0]", "0x20")
+ self.bid128_to_binary80("3", "[303000000000000000000000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[303e000000000000000000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[30400000000000000000000000000000]", "[00000000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[30400000000000000000000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[30400000000000000000000000000040]", "[40058000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[304000000000000000000000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[304000000000000000000000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[3174a169bb81af25df1153c111ccfbcb]", "[426df0c64fe1d212722f]", "0x20")
+ self.bid128_to_binary80("3", "[348be2feaa0d0a95cb3aad1844b7d47e]", "[478fc97720dd9a8df782]", "0x20")
+ self.bid128_to_binary80("3", "[37a08072932c07d696e192586e21c818]", "[4cadefb639b79ae7f02c]", "0x20")
+ self.bid128_to_binary80("3", "[3ab72a15700a63867702206c7c91be92]", "[51cf9b8e6911e38500ea]", "0x20")
+ self.bid128_to_binary80("3", "[3dcea57c139cff72472f0cd6e46b7acb]", "[56f1f17c88040aaa1846]", "0x20")
+ self.bid128_to_binary80("3", "[40e5b41143cf3e3e48f0f774ea8017c1]", "[5c13b1f0b845fe59e09c]", "0x20")
+ self.bid128_to_binary80("3", "[43fa7d2b8dfba550b32e8318c588b096]", "[6131e48581c4941330d8]", "0x20")
+ self.bid128_to_binary80("3", "[4710c30cc6e6ca06ccb5a3b77068e9ca]", "[6652c72747e144bc8233]", "0x20")
+ self.bid128_to_binary80("3", "[4a268d00d46c44fccad07466a889c27a]", "[6b72a108a254a087eb49]", "0x20")
+ self.bid128_to_binary80("3", "[4d3c6ca1c83438c3c4e419873e4cbab4]", "[70928ac4bfd4df334707]", "0x20")
+ self.bid128_to_binary80("3", "[5055c943208a2627b5d3424ef1fe79dd]", "[75b7cc2bd337f5324104]", "0x20")
+ self.bid128_to_binary80("3", "[536758a2ae6f08a7bd5df2fb309bc6d0]", "[7ad0dc50bbb3690c870f]", "0x20")
+ self.bid128_to_binary80("3", "[56863aa885cb1a6cecf38634ccf08e3a]", "[7ffefffffffffffffffe]", "0x20")
+ self.bid128_to_binary80("3", "[56863aa885cb1a6cecf38634ccf08e3b]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("3", "[56863aa885cb1a6cecf3c0dd52bba8a7]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("3", "[56863aa885cb1a6cecf3c0dd52bba8a8]", "[7ffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("3", "[5fffed09bead87c0378d8e63ffffffff]", "[7ffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("3", "[78000000000000000000000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[80000000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[80420000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[80440000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[894fea2dc6a2746448fc20afb172c2d1]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[8950b3b8e2eda91a232dd950102978db]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[895211f8e37e2a829d1e2f54ce6a8c16]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("3", "[8976a5c3b52962cbbae990a91eaae918]", "[80007fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("3", "[8976a5c3b52962cbbae990a91eaae919]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("3", "[89774b876a52c59775d321523d55d231]", "[8001ffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("3", "[89774b876a52c59775d321523d55d232]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("3", "[8c67ce2730fbbac696382781f5c9be8a]", "[84e3b814d2bb660b0ba8]", "0x20")
+ self.bid128_to_binary80("3", "[8f7e0084b2291c1a9edea59d766c2e81]", "[89fd93cc2c4f16ff4510]", "0x20")
+ self.bid128_to_binary80("3", "[9294044198fca138ffe3cb029dcff04e]", "[8f20a9ae28b43e1442bc]", "0x20")
+ self.bid128_to_binary80("3", "[95aab24ae6a964c6696516d82841bff2]", "[9445f872814cb5e30303]", "0x20")
+ self.bid128_to_binary80("3", "[98c1de00522b7aecf5c68bc7f9b80ca5]", "[9967ba42223153fad4ed]", "0x20")
+ self.bid128_to_binary80("3", "[9bd7bd0a7e0c1b4ca56a76def860ab01]", "[9e87c1f811d7bf3233d7]", "0x20")
+ self.bid128_to_binary80("3", "[9eee07785fee48432563df34d602138f]", "[a3a591ab9a310597c7d0]", "0x20")
+ self.bid128_to_binary80("3", "[a2045cd4371ac0b00591a738c71c82c4]", "[a8c8fd17612b3375d7cc]", "0x20")
+ self.bid128_to_binary80("3", "[a51ac5ad27c05d08f889bec276922d7c]", "[adea96b51093ca032544]", "0x20")
+ self.bid128_to_binary80("3", "[a831c6ac95daf8c22f065e8d7c1d812d]", "[b30bc1dcfbc95b84116b]", "0x20")
+ self.bid128_to_binary80("3", "[ab480c5cecaf6e48f0c7ddeca33f408f]", "[b829ebd7fa7c6576a688]", "0x20")
+ self.bid128_to_binary80("3", "[ae5e2698174c9d819e82ca8f9f13bcd9]", "[bd4bcde078b94950f8e0]", "0x20")
+ self.bid128_to_binary80("3", "[b03000000000000000000000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b03e000000000000000000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b0400000000000000000000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b0400000000000000000000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b04000000000000000000000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b04000000000000000000000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b174a169bb81af25df1153c111ccfbcb]", "[c26df0c64fe1d212722f]", "0x20")
+ self.bid128_to_binary80("3", "[b48be2feaa0d0a95cb3aad1844b7d47e]", "[c78fc97720dd9a8df782]", "0x20")
+ self.bid128_to_binary80("3", "[b7a08072932c07d696e192586e21c818]", "[ccadefb639b79ae7f02c]", "0x20")
+ self.bid128_to_binary80("3", "[bab72a15700a63867702206c7c91be92]", "[d1cf9b8e6911e38500ea]", "0x20")
+ self.bid128_to_binary80("3", "[bdcea57c139cff72472f0cd6e46b7acb]", "[d6f1f17c88040aaa1846]", "0x20")
+ self.bid128_to_binary80("3", "[c0e5b41143cf3e3e48f0f774ea8017c1]", "[dc13b1f0b845fe59e09c]", "0x20")
+ self.bid128_to_binary80("3", "[c3fa7d2b8dfba550b32e8318c588b096]", "[e131e48581c4941330d8]", "0x20")
+ self.bid128_to_binary80("3", "[c710c30cc6e6ca06ccb5a3b77068e9ca]", "[e652c72747e144bc8233]", "0x20")
+ self.bid128_to_binary80("3", "[ca268d00d46c44fccad07466a889c27a]", "[eb72a108a254a087eb49]", "0x20")
+ self.bid128_to_binary80("3", "[cd3c6ca1c83438c3c4e419873e4cbab4]", "[f0928ac4bfd4df334707]", "0x20")
+ self.bid128_to_binary80("3", "[d055c943208a2627b5d3424ef1fe79dd]", "[f5b7cc2bd337f5324104]", "0x20")
+ self.bid128_to_binary80("3", "[d36758a2ae6f08a7bd5df2fb309bc6d0]", "[fad0dc50bbb3690c870f]", "0x20")
+ self.bid128_to_binary80("3", "[d6863aa885cb1a6cecf38634ccf08e3a]", "[fffefffffffffffffffe]", "0x20")
+ self.bid128_to_binary80("3", "[d6863aa885cb1a6cecf38634ccf08e3b]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("3", "[d6863aa885cb1a6cecf3c0dd52bba8a7]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("3", "[d6863aa885cb1a6cecf3c0dd52bba8a8]", "[fffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("3", "[dfffed09bead87c0378d8e63ffffffff]", "[fffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("3", "[f8000000000000000000000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[00000000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[00420000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[00440000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[094fea2dc6a2746448fc20afb172c2d1]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[0950b3b8e2eda91a232dd950102978db]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("4", "[095211f8e37e2a829d1e2f54ce6a8c16]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("4", "[0976a5c3b52962cbbae990a91eaae918]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[0976a5c3b52962cbbae990a91eaae919]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[09774b876a52c59775d321523d55d231]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[09774b876a52c59775d321523d55d232]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[0c67ce2730fbbac696382781f5c9be8a]", "[04e3b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("4", "[0f7e0084b2291c1a9edea59d766c2e81]", "[09fd93cc2c4f16ff4510]", "0x20")
+ self.bid128_to_binary80("4", "[1294044198fca138ffe3cb029dcff04e]", "[0f20a9ae28b43e1442bc]", "0x20")
+ self.bid128_to_binary80("4", "[15aab24ae6a964c6696516d82841bff2]", "[1445f872814cb5e30303]", "0x20")
+ self.bid128_to_binary80("4", "[18c1de00522b7aecf5c68bc7f9b80ca5]", "[1967ba42223153fad4ee]", "0x20")
+ self.bid128_to_binary80("4", "[1bd7bd0a7e0c1b4ca56a76def860ab01]", "[1e87c1f811d7bf3233d8]", "0x20")
+ self.bid128_to_binary80("4", "[1eee07785fee48432563df34d602138f]", "[23a591ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("4", "[22045cd4371ac0b00591a738c71c82c4]", "[28c8fd17612b3375d7cd]", "0x20")
+ self.bid128_to_binary80("4", "[251ac5ad27c05d08f889bec276922d7c]", "[2dea96b51093ca032544]", "0x20")
+ self.bid128_to_binary80("4", "[2831c6ac95daf8c22f065e8d7c1d812d]", "[330bc1dcfbc95b84116c]", "0x20")
+ self.bid128_to_binary80("4", "[2b480c5cecaf6e48f0c7ddeca33f408f]", "[3829ebd7fa7c6576a688]", "0x20")
+ self.bid128_to_binary80("4", "[2e5e2698174c9d819e82ca8f9f13bcd9]", "[3d4bcde078b94950f8e0]", "0x20")
+ self.bid128_to_binary80("4", "[303000000000000000000000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[303e000000000000000000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[30400000000000000000000000000000]", "[00000000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[30400000000000000000000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[30400000000000000000000000000040]", "[40058000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[304000000000000000000000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[304000000000000000000000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[3174a169bb81af25df1153c111ccfbcb]", "[426df0c64fe1d212722f]", "0x20")
+ self.bid128_to_binary80("4", "[348be2feaa0d0a95cb3aad1844b7d47e]", "[478fc97720dd9a8df783]", "0x20")
+ self.bid128_to_binary80("4", "[37a08072932c07d696e192586e21c818]", "[4cadefb639b79ae7f02d]", "0x20")
+ self.bid128_to_binary80("4", "[3ab72a15700a63867702206c7c91be92]", "[51cf9b8e6911e38500eb]", "0x20")
+ self.bid128_to_binary80("4", "[3dcea57c139cff72472f0cd6e46b7acb]", "[56f1f17c88040aaa1847]", "0x20")
+ self.bid128_to_binary80("4", "[40e5b41143cf3e3e48f0f774ea8017c1]", "[5c13b1f0b845fe59e09c]", "0x20")
+ self.bid128_to_binary80("4", "[43fa7d2b8dfba550b32e8318c588b096]", "[6131e48581c4941330d8]", "0x20")
+ self.bid128_to_binary80("4", "[4710c30cc6e6ca06ccb5a3b77068e9ca]", "[6652c72747e144bc8234]", "0x20")
+ self.bid128_to_binary80("4", "[4a268d00d46c44fccad07466a889c27a]", "[6b72a108a254a087eb4a]", "0x20")
+ self.bid128_to_binary80("4", "[4d3c6ca1c83438c3c4e419873e4cbab4]", "[70928ac4bfd4df334708]", "0x20")
+ self.bid128_to_binary80("4", "[5055c943208a2627b5d3424ef1fe79dd]", "[75b7cc2bd337f5324105]", "0x20")
+ self.bid128_to_binary80("4", "[536758a2ae6f08a7bd5df2fb309bc6d0]", "[7ad0dc50bbb3690c8710]", "0x20")
+ self.bid128_to_binary80("4", "[56863aa885cb1a6cecf38634ccf08e3a]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("4", "[56863aa885cb1a6cecf38634ccf08e3b]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("4", "[56863aa885cb1a6cecf3c0dd52bba8a7]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("4", "[56863aa885cb1a6cecf3c0dd52bba8a8]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("4", "[5fffed09bead87c0378d8e63ffffffff]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("4", "[78000000000000000000000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[80000000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[80420000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[80440000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[894fea2dc6a2746448fc20afb172c2d1]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[8950b3b8e2eda91a232dd950102978db]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("4", "[895211f8e37e2a829d1e2f54ce6a8c16]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("4", "[8976a5c3b52962cbbae990a91eaae918]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[8976a5c3b52962cbbae990a91eaae919]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[89774b876a52c59775d321523d55d231]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[89774b876a52c59775d321523d55d232]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[8c67ce2730fbbac696382781f5c9be8a]", "[84e3b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("4", "[8f7e0084b2291c1a9edea59d766c2e81]", "[89fd93cc2c4f16ff4510]", "0x20")
+ self.bid128_to_binary80("4", "[9294044198fca138ffe3cb029dcff04e]", "[8f20a9ae28b43e1442bc]", "0x20")
+ self.bid128_to_binary80("4", "[95aab24ae6a964c6696516d82841bff2]", "[9445f872814cb5e30303]", "0x20")
+ self.bid128_to_binary80("4", "[98c1de00522b7aecf5c68bc7f9b80ca5]", "[9967ba42223153fad4ee]", "0x20")
+ self.bid128_to_binary80("4", "[9bd7bd0a7e0c1b4ca56a76def860ab01]", "[9e87c1f811d7bf3233d8]", "0x20")
+ self.bid128_to_binary80("4", "[9eee07785fee48432563df34d602138f]", "[a3a591ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("4", "[a2045cd4371ac0b00591a738c71c82c4]", "[a8c8fd17612b3375d7cd]", "0x20")
+ self.bid128_to_binary80("4", "[a51ac5ad27c05d08f889bec276922d7c]", "[adea96b51093ca032544]", "0x20")
+ self.bid128_to_binary80("4", "[a831c6ac95daf8c22f065e8d7c1d812d]", "[b30bc1dcfbc95b84116c]", "0x20")
+ self.bid128_to_binary80("4", "[ab480c5cecaf6e48f0c7ddeca33f408f]", "[b829ebd7fa7c6576a688]", "0x20")
+ self.bid128_to_binary80("4", "[ae5e2698174c9d819e82ca8f9f13bcd9]", "[bd4bcde078b94950f8e0]", "0x20")
+ self.bid128_to_binary80("4", "[b03000000000000000000000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b03e000000000000000000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b0400000000000000000000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b0400000000000000000000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b04000000000000000000000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b04000000000000000000000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b174a169bb81af25df1153c111ccfbcb]", "[c26df0c64fe1d212722f]", "0x20")
+ self.bid128_to_binary80("4", "[b48be2feaa0d0a95cb3aad1844b7d47e]", "[c78fc97720dd9a8df783]", "0x20")
+ self.bid128_to_binary80("4", "[b7a08072932c07d696e192586e21c818]", "[ccadefb639b79ae7f02d]", "0x20")
+ self.bid128_to_binary80("4", "[bab72a15700a63867702206c7c91be92]", "[d1cf9b8e6911e38500eb]", "0x20")
+ self.bid128_to_binary80("4", "[bdcea57c139cff72472f0cd6e46b7acb]", "[d6f1f17c88040aaa1847]", "0x20")
+ self.bid128_to_binary80("4", "[c0e5b41143cf3e3e48f0f774ea8017c1]", "[dc13b1f0b845fe59e09c]", "0x20")
+ self.bid128_to_binary80("4", "[c3fa7d2b8dfba550b32e8318c588b096]", "[e131e48581c4941330d8]", "0x20")
+ self.bid128_to_binary80("4", "[c710c30cc6e6ca06ccb5a3b77068e9ca]", "[e652c72747e144bc8234]", "0x20")
+ self.bid128_to_binary80("4", "[ca268d00d46c44fccad07466a889c27a]", "[eb72a108a254a087eb4a]", "0x20")
+ self.bid128_to_binary80("4", "[cd3c6ca1c83438c3c4e419873e4cbab4]", "[f0928ac4bfd4df334708]", "0x20")
+ self.bid128_to_binary80("4", "[d055c943208a2627b5d3424ef1fe79dd]", "[f5b7cc2bd337f5324105]", "0x20")
+ self.bid128_to_binary80("4", "[d36758a2ae6f08a7bd5df2fb309bc6d0]", "[fad0dc50bbb3690c8710]", "0x20")
+ self.bid128_to_binary80("4", "[d6863aa885cb1a6cecf38634ccf08e3a]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("4", "[d6863aa885cb1a6cecf38634ccf08e3b]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("4", "[d6863aa885cb1a6cecf3c0dd52bba8a7]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("4", "[d6863aa885cb1a6cecf3c0dd52bba8a8]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("4", "[dfffed09bead87c0378d8e63ffffffff]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("4", "[f8000000000000000000000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[7c000001000000000000000000000000]", "[7fffc001000000000000]", "00")
+ self.bid128_to_binary80("0", "[00000000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[00000000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[00000000000000000000000000000001]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("3", "[00000000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[00000000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[0000314dc6448d9338c15b09ffffffff]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[0000314dc6448d9338c15b09ffffffff]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[0000314dc6448d9338c15b09ffffffff]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("3", "[0000314dc6448d9338c15b09ffffffff]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[0000314dc6448d9338c15b09ffffffff]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[00420000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[00420000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[00420000000000000000000000000001]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("3", "[00420000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[00420000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[00440000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[00440000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[00440000000000000000000000000001]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("3", "[00440000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[00440000000000000000000000000001]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[094fea2dc6a2746448fc20afb172c2d1]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[094fea2dc6a2746448fc20afb172c2d1]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[094fea2dc6a2746448fc20afb172c2d1]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("3", "[094fea2dc6a2746448fc20afb172c2d1]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[094fea2dc6a2746448fc20afb172c2d1]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[0950b3b8e2eda91a232dd950102978db]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("1", "[0950b3b8e2eda91a232dd950102978db]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[0950b3b8e2eda91a232dd950102978db]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("3", "[0950b3b8e2eda91a232dd950102978db]", "[00000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[0950b3b8e2eda91a232dd950102978db]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("0", "[095211f8e37e2a829d1e2f54ce6a8c16]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("1", "[095211f8e37e2a829d1e2f54ce6a8c16]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[095211f8e37e2a829d1e2f54ce6a8c16]", "[00000000000000000002]", "0x30")
+ self.bid128_to_binary80("3", "[095211f8e37e2a829d1e2f54ce6a8c16]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("4", "[095211f8e37e2a829d1e2f54ce6a8c16]", "[00000000000000000001]", "0x30")
+ self.bid128_to_binary80("0", "[09759e6944e776fd5344acd442dc58c2]", "[00002000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[09759e6944e776fd5344acd442dc58c2]", "[00001fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("2", "[09759e6944e776fd5344acd442dc58c2]", "[00002000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[09759e6944e776fd5344acd442dc58c2]", "[00001fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("4", "[09759e6944e776fd5344acd442dc58c2]", "[00002000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[09759e6944e776fd5344acd442dc58c3]", "[00002000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[09759e6944e776fd5344acd442dc58c3]", "[00001fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("2", "[09759e6944e776fd5344acd442dc58c3]", "[00002000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[09759e6944e776fd5344acd442dc58c3]", "[00001fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("4", "[09759e6944e776fd5344acd442dc58c3]", "[00002000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[097652e1da94b165dd742290da2c11c0]", "[00003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("1", "[097652e1da94b165dd742290da2c11c0]", "[00003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("2", "[097652e1da94b165dd742290da2c11c0]", "[00004000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[097652e1da94b165dd742290da2c11c0]", "[00003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("4", "[097652e1da94b165dd742290da2c11c0]", "[00003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("0", "[097652e1da94b165dd742290da2c11c1]", "[00004000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[097652e1da94b165dd742290da2c11c1]", "[00003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("2", "[097652e1da94b165dd742290da2c11c1]", "[00004000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[097652e1da94b165dd742290da2c11c1]", "[00003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("4", "[097652e1da94b165dd742290da2c11c1]", "[00004000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[0976a5c3b52962cbbae990a91eaae918]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[0976a5c3b52962cbbae990a91eaae918]", "[00007fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("2", "[0976a5c3b52962cbbae990a91eaae918]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("3", "[0976a5c3b52962cbbae990a91eaae918]", "[00007fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("4", "[0976a5c3b52962cbbae990a91eaae918]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[0976a5c3b52962cbbae990a91eaae919]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[0976a5c3b52962cbbae990a91eaae919]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("2", "[0976a5c3b52962cbbae990a91eaae919]", "[00018000000000000001]", "0x20")
+ self.bid128_to_binary80("3", "[0976a5c3b52962cbbae990a91eaae919]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[0976a5c3b52962cbbae990a91eaae919]", "[00018000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[09774b876a52c59775d321523d55d231]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[09774b876a52c59775d321523d55d231]", "[0001ffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("2", "[09774b876a52c59775d321523d55d231]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("3", "[09774b876a52c59775d321523d55d231]", "[0001ffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("4", "[09774b876a52c59775d321523d55d231]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[09774b876a52c59775d321523d55d232]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[09774b876a52c59775d321523d55d232]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("2", "[09774b876a52c59775d321523d55d232]", "[00028000000000000001]", "0x20")
+ self.bid128_to_binary80("3", "[09774b876a52c59775d321523d55d232]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[09774b876a52c59775d321523d55d232]", "[00028000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[0a1608de6e517cec4d063b4033534b93]", "[0106b8d2e601bc949eb4]", "0x20")
+ self.bid128_to_binary80("1", "[0a1608de6e517cec4d063b4033534b93]", "[0106b8d2e601bc949eb4]", "0x20")
+ self.bid128_to_binary80("2", "[0a1608de6e517cec4d063b4033534b93]", "[0106b8d2e601bc949eb5]", "0x20")
+ self.bid128_to_binary80("3", "[0a1608de6e517cec4d063b4033534b93]", "[0106b8d2e601bc949eb4]", "0x20")
+ self.bid128_to_binary80("4", "[0a1608de6e517cec4d063b4033534b93]", "[0106b8d2e601bc949eb4]", "0x20")
+ self.bid128_to_binary80("0", "[0adc140bb4fde03ed98e94048816a20f]", "[0250befdb31cfd5e7899]", "0x20")
+ self.bid128_to_binary80("1", "[0adc140bb4fde03ed98e94048816a20f]", "[0250befdb31cfd5e7899]", "0x20")
+ self.bid128_to_binary80("2", "[0adc140bb4fde03ed98e94048816a20f]", "[0250befdb31cfd5e789a]", "0x20")
+ self.bid128_to_binary80("3", "[0adc140bb4fde03ed98e94048816a20f]", "[0250befdb31cfd5e7899]", "0x20")
+ self.bid128_to_binary80("4", "[0adc140bb4fde03ed98e94048816a20f]", "[0250befdb31cfd5e7899]", "0x20")
+ self.bid128_to_binary80("0", "[0ba0edfa621b083e31ec4093caad1626]", "[0399cf5424ba6f9d8564]", "0x20")
+ self.bid128_to_binary80("1", "[0ba0edfa621b083e31ec4093caad1626]", "[0399cf5424ba6f9d8563]", "0x20")
+ self.bid128_to_binary80("2", "[0ba0edfa621b083e31ec4093caad1626]", "[0399cf5424ba6f9d8564]", "0x20")
+ self.bid128_to_binary80("3", "[0ba0edfa621b083e31ec4093caad1626]", "[0399cf5424ba6f9d8563]", "0x20")
+ self.bid128_to_binary80("4", "[0ba0edfa621b083e31ec4093caad1626]", "[0399cf5424ba6f9d8564]", "0x20")
+ self.bid128_to_binary80("0", "[0c66e713987ddd634b1c13c0fae4df45]", "[04e2b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("1", "[0c66e713987ddd634b1c13c0fae4df45]", "[04e2b814d2bb660b0ba8]", "0x20")
+ self.bid128_to_binary80("2", "[0c66e713987ddd634b1c13c0fae4df45]", "[04e2b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("3", "[0c66e713987ddd634b1c13c0fae4df45]", "[04e2b814d2bb660b0ba8]", "0x20")
+ self.bid128_to_binary80("4", "[0c66e713987ddd634b1c13c0fae4df45]", "[04e2b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("0", "[0d2e0f2f045d5cf8d10333e8e5d8b2a1]", "[062add34123add9d5e92]", "0x20")
+ self.bid128_to_binary80("1", "[0d2e0f2f045d5cf8d10333e8e5d8b2a1]", "[062add34123add9d5e91]", "0x20")
+ self.bid128_to_binary80("2", "[0d2e0f2f045d5cf8d10333e8e5d8b2a1]", "[062add34123add9d5e92]", "0x20")
+ self.bid128_to_binary80("3", "[0d2e0f2f045d5cf8d10333e8e5d8b2a1]", "[062add34123add9d5e91]", "0x20")
+ self.bid128_to_binary80("4", "[0d2e0f2f045d5cf8d10333e8e5d8b2a1]", "[062add34123add9d5e92]", "0x20")
+ self.bid128_to_binary80("0", "[0df205578f8f6ed9fc6160458596b553]", "[076ee3b89e6d10843948]", "0x20")
+ self.bid128_to_binary80("1", "[0df205578f8f6ed9fc6160458596b553]", "[076ee3b89e6d10843948]", "0x20")
+ self.bid128_to_binary80("2", "[0df205578f8f6ed9fc6160458596b553]", "[076ee3b89e6d10843949]", "0x20")
+ self.bid128_to_binary80("3", "[0df205578f8f6ed9fc6160458596b553]", "[076ee3b89e6d10843948]", "0x20")
+ self.bid128_to_binary80("4", "[0df205578f8f6ed9fc6160458596b553]", "[076ee3b89e6d10843948]", "0x20")
+ self.bid128_to_binary80("0", "[0eb802f9ec8444898eea1f25af029070]", "[08b6e805b73d2e2cba82]", "0x20")
+ self.bid128_to_binary80("1", "[0eb802f9ec8444898eea1f25af029070]", "[08b6e805b73d2e2cba82]", "0x20")
+ self.bid128_to_binary80("2", "[0eb802f9ec8444898eea1f25af029070]", "[08b6e805b73d2e2cba83]", "0x20")
+ self.bid128_to_binary80("3", "[0eb802f9ec8444898eea1f25af029070]", "[08b6e805b73d2e2cba82]", "0x20")
+ self.bid128_to_binary80("4", "[0eb802f9ec8444898eea1f25af029070]", "[08b6e805b73d2e2cba82]", "0x20")
+ self.bid128_to_binary80("0", "[0f7de26eb0dca72b9f9b674916a581d4]", "[0a03d6ef38bd8606cb67]", "0x20")
+ self.bid128_to_binary80("1", "[0f7de26eb0dca72b9f9b674916a581d4]", "[0a03d6ef38bd8606cb66]", "0x20")
+ self.bid128_to_binary80("2", "[0f7de26eb0dca72b9f9b674916a581d4]", "[0a03d6ef38bd8606cb67]", "0x20")
+ self.bid128_to_binary80("3", "[0f7de26eb0dca72b9f9b674916a581d4]", "[0a03d6ef38bd8606cb66]", "0x20")
+ self.bid128_to_binary80("4", "[0f7de26eb0dca72b9f9b674916a581d4]", "[0a03d6ef38bd8606cb67]", "0x20")
+ self.bid128_to_binary80("0", "[1043060e4f03be06876c80dee7a4242b]", "[0b4bd583681b8b9265a7]", "0x20")
+ self.bid128_to_binary80("1", "[1043060e4f03be06876c80dee7a4242b]", "[0b4bd583681b8b9265a7]", "0x20")
+ self.bid128_to_binary80("2", "[1043060e4f03be06876c80dee7a4242b]", "[0b4bd583681b8b9265a8]", "0x20")
+ self.bid128_to_binary80("3", "[1043060e4f03be06876c80dee7a4242b]", "[0b4bd583681b8b9265a7]", "0x20")
+ self.bid128_to_binary80("4", "[1043060e4f03be06876c80dee7a4242b]", "[0b4bd583681b8b9265a7]", "0x20")
+ self.bid128_to_binary80("0", "[110a02f64d11564ff06e96056f6785cb]", "[0c91b08b626f4f55a7db]", "0x20")
+ self.bid128_to_binary80("1", "[110a02f64d11564ff06e96056f6785cb]", "[0c91b08b626f4f55a7da]", "0x20")
+ self.bid128_to_binary80("2", "[110a02f64d11564ff06e96056f6785cb]", "[0c91b08b626f4f55a7db]", "0x20")
+ self.bid128_to_binary80("3", "[110a02f64d11564ff06e96056f6785cb]", "[0c91b08b626f4f55a7da]", "0x20")
+ self.bid128_to_binary80("4", "[110a02f64d11564ff06e96056f6785cb]", "[0c91b08b626f4f55a7db]", "0x20")
+ self.bid128_to_binary80("0", "[11ce11d052112d3b66d0ff9f9544ba9f]", "[0dd9c22a0c07443d8509]", "0x20")
+ self.bid128_to_binary80("1", "[11ce11d052112d3b66d0ff9f9544ba9f]", "[0dd9c22a0c07443d8509]", "0x20")
+ self.bid128_to_binary80("2", "[11ce11d052112d3b66d0ff9f9544ba9f]", "[0dd9c22a0c07443d850a]", "0x20")
+ self.bid128_to_binary80("3", "[11ce11d052112d3b66d0ff9f9544ba9f]", "[0dd9c22a0c07443d8509]", "0x20")
+ self.bid128_to_binary80("4", "[11ce11d052112d3b66d0ff9f9544ba9f]", "[0dd9c22a0c07443d8509]", "0x20")
+ self.bid128_to_binary80("0", "[129344328e3449a3645b2f7d5ee02971]", "[0f23a18e82a04ae2b8d8]", "0x20")
+ self.bid128_to_binary80("1", "[129344328e3449a3645b2f7d5ee02971]", "[0f23a18e82a04ae2b8d7]", "0x20")
+ self.bid128_to_binary80("2", "[129344328e3449a3645b2f7d5ee02971]", "[0f23a18e82a04ae2b8d8]", "0x20")
+ self.bid128_to_binary80("3", "[129344328e3449a3645b2f7d5ee02971]", "[0f23a18e82a04ae2b8d7]", "0x20")
+ self.bid128_to_binary80("4", "[129344328e3449a3645b2f7d5ee02971]", "[0f23a18e82a04ae2b8d8]", "0x20")
+ self.bid128_to_binary80("0", "[13593c9c6cc3fe00e27efe252290b994]", "[106c9044d76ea5154292]", "0x20")
+ self.bid128_to_binary80("1", "[13593c9c6cc3fe00e27efe252290b994]", "[106c9044d76ea5154292]", "0x20")
+ self.bid128_to_binary80("2", "[13593c9c6cc3fe00e27efe252290b994]", "[106c9044d76ea5154293]", "0x20")
+ self.bid128_to_binary80("3", "[13593c9c6cc3fe00e27efe252290b994]", "[106c9044d76ea5154292]", "0x20")
+ self.bid128_to_binary80("4", "[13593c9c6cc3fe00e27efe252290b994]", "[106c9044d76ea5154292]", "0x20")
+ self.bid128_to_binary80("0", "[141e2ee30c60a27fe2f19ce2a1a0697e]", "[11b29c492ec2d86bb623]", "0x20")
+ self.bid128_to_binary80("1", "[141e2ee30c60a27fe2f19ce2a1a0697e]", "[11b29c492ec2d86bb623]", "0x20")
+ self.bid128_to_binary80("2", "[141e2ee30c60a27fe2f19ce2a1a0697e]", "[11b29c492ec2d86bb624]", "0x20")
+ self.bid128_to_binary80("3", "[141e2ee30c60a27fe2f19ce2a1a0697e]", "[11b29c492ec2d86bb623]", "0x20")
+ self.bid128_to_binary80("4", "[141e2ee30c60a27fe2f19ce2a1a0697e]", "[11b29c492ec2d86bb623]", "0x20")
+ self.bid128_to_binary80("0", "[14e4086aff02b07b02a142368f48dcc1]", "[12f8cd418f9c6660baa8]", "0x20")
+ self.bid128_to_binary80("1", "[14e4086aff02b07b02a142368f48dcc1]", "[12f8cd418f9c6660baa8]", "0x20")
+ self.bid128_to_binary80("2", "[14e4086aff02b07b02a142368f48dcc1]", "[12f8cd418f9c6660baa9]", "0x20")
+ self.bid128_to_binary80("3", "[14e4086aff02b07b02a142368f48dcc1]", "[12f8cd418f9c6660baa8]", "0x20")
+ self.bid128_to_binary80("4", "[14e4086aff02b07b02a142368f48dcc1]", "[12f8cd418f9c6660baa8]", "0x20")
+ self.bid128_to_binary80("0", "[15a9957e61200e473897b36db2c36801]", "[1443e204e0a9e0d2fcd4]", "0x20")
+ self.bid128_to_binary80("1", "[15a9957e61200e473897b36db2c36801]", "[1443e204e0a9e0d2fcd3]", "0x20")
+ self.bid128_to_binary80("2", "[15a9957e61200e473897b36db2c36801]", "[1443e204e0a9e0d2fcd4]", "0x20")
+ self.bid128_to_binary80("3", "[15a9957e61200e473897b36db2c36801]", "[1443e204e0a9e0d2fcd3]", "0x20")
+ self.bid128_to_binary80("4", "[15a9957e61200e473897b36db2c36801]", "[1443e204e0a9e0d2fcd4]", "0x20")
+ self.bid128_to_binary80("0", "[166eee4f6511994862ab5bda8aaa32e3]", "[158bf2ebc11ec085cb04]", "0x20")
+ self.bid128_to_binary80("1", "[166eee4f6511994862ab5bda8aaa32e3]", "[158bf2ebc11ec085cb04]", "0x20")
+ self.bid128_to_binary80("2", "[166eee4f6511994862ab5bda8aaa32e3]", "[158bf2ebc11ec085cb05]", "0x20")
+ self.bid128_to_binary80("3", "[166eee4f6511994862ab5bda8aaa32e3]", "[158bf2ebc11ec085cb04]", "0x20")
+ self.bid128_to_binary80("4", "[166eee4f6511994862ab5bda8aaa32e3]", "[158bf2ebc11ec085cb04]", "0x20")
+ self.bid128_to_binary80("0", "[173610ded4d35875ad1d344c54d3238f]", "[16d49d3f059751b4dc5b]", "0x20")
+ self.bid128_to_binary80("1", "[173610ded4d35875ad1d344c54d3238f]", "[16d49d3f059751b4dc5b]", "0x20")
+ self.bid128_to_binary80("2", "[173610ded4d35875ad1d344c54d3238f]", "[16d49d3f059751b4dc5c]", "0x20")
+ self.bid128_to_binary80("3", "[173610ded4d35875ad1d344c54d3238f]", "[16d49d3f059751b4dc5b]", "0x20")
+ self.bid128_to_binary80("4", "[173610ded4d35875ad1d344c54d3238f]", "[16d49d3f059751b4dc5b]", "0x20")
+ self.bid128_to_binary80("0", "[17fa144813eb8c22fe4327aeb98d9b88]", "[181a8a4912ba2c69c8c3]", "0x20")
+ self.bid128_to_binary80("1", "[17fa144813eb8c22fe4327aeb98d9b88]", "[181a8a4912ba2c69c8c2]", "0x20")
+ self.bid128_to_binary80("2", "[17fa144813eb8c22fe4327aeb98d9b88]", "[181a8a4912ba2c69c8c3]", "0x20")
+ self.bid128_to_binary80("3", "[17fa144813eb8c22fe4327aeb98d9b88]", "[181a8a4912ba2c69c8c2]", "0x20")
+ self.bid128_to_binary80("4", "[17fa144813eb8c22fe4327aeb98d9b88]", "[181a8a4912ba2c69c8c3]", "0x20")
+ self.bid128_to_binary80("0", "[18c00441b6aab7c984691bb38edd25bb]", "[1960d44f2eb297f795b4]", "0x20")
+ self.bid128_to_binary80("1", "[18c00441b6aab7c984691bb38edd25bb]", "[1960d44f2eb297f795b3]", "0x20")
+ self.bid128_to_binary80("2", "[18c00441b6aab7c984691bb38edd25bb]", "[1960d44f2eb297f795b4]", "0x20")
+ self.bid128_to_binary80("3", "[18c00441b6aab7c984691bb38edd25bb]", "[1960d44f2eb297f795b3]", "0x20")
+ self.bid128_to_binary80("4", "[18c00441b6aab7c984691bb38edd25bb]", "[1960d44f2eb297f795b4]", "0x20")
+ self.bid128_to_binary80("0", "[19858c7d8e608d2c7f7b0920105d0fe6]", "[1aace2084fb2bfb88b3a]", "0x20")
+ self.bid128_to_binary80("1", "[19858c7d8e608d2c7f7b0920105d0fe6]", "[1aace2084fb2bfb88b39]", "0x20")
+ self.bid128_to_binary80("2", "[19858c7d8e608d2c7f7b0920105d0fe6]", "[1aace2084fb2bfb88b3a]", "0x20")
+ self.bid128_to_binary80("3", "[19858c7d8e608d2c7f7b0920105d0fe6]", "[1aace2084fb2bfb88b39]", "0x20")
+ self.bid128_to_binary80("4", "[19858c7d8e608d2c7f7b0920105d0fe6]", "[1aace2084fb2bfb88b3a]", "0x20")
+ self.bid128_to_binary80("0", "[1a4a6bd7c82b340a8e83d565bb0b30ad]", "[1bf3e0dd554106974a8e]", "0x20")
+ self.bid128_to_binary80("1", "[1a4a6bd7c82b340a8e83d565bb0b30ad]", "[1bf3e0dd554106974a8e]", "0x20")
+ self.bid128_to_binary80("2", "[1a4a6bd7c82b340a8e83d565bb0b30ad]", "[1bf3e0dd554106974a8f]", "0x20")
+ self.bid128_to_binary80("3", "[1a4a6bd7c82b340a8e83d565bb0b30ad]", "[1bf3e0dd554106974a8e]", "0x20")
+ self.bid128_to_binary80("4", "[1a4a6bd7c82b340a8e83d565bb0b30ad]", "[1bf3e0dd554106974a8e]", "0x20")
+ self.bid128_to_binary80("0", "[1b102fccec45d00920c1bf226b5d70ec]", "[1d3bb645fa9b8d3d6173]", "0x20")
+ self.bid128_to_binary80("1", "[1b102fccec45d00920c1bf226b5d70ec]", "[1d3bb645fa9b8d3d6172]", "0x20")
+ self.bid128_to_binary80("2", "[1b102fccec45d00920c1bf226b5d70ec]", "[1d3bb645fa9b8d3d6173]", "0x20")
+ self.bid128_to_binary80("3", "[1b102fccec45d00920c1bf226b5d70ec]", "[1d3bb645fa9b8d3d6172]", "0x20")
+ self.bid128_to_binary80("4", "[1b102fccec45d00920c1bf226b5d70ec]", "[1d3bb645fa9b8d3d6173]", "0x20")
+ self.bid128_to_binary80("0", "[1bd615a4163c699a1ac831d4f9e0ab4c]", "[1e8396e9eee3c5394181]", "0x20")
+ self.bid128_to_binary80("1", "[1bd615a4163c699a1ac831d4f9e0ab4c]", "[1e8396e9eee3c5394181]", "0x20")
+ self.bid128_to_binary80("2", "[1bd615a4163c699a1ac831d4f9e0ab4c]", "[1e8396e9eee3c5394182]", "0x20")
+ self.bid128_to_binary80("3", "[1bd615a4163c699a1ac831d4f9e0ab4c]", "[1e8396e9eee3c5394181]", "0x20")
+ self.bid128_to_binary80("4", "[1bd615a4163c699a1ac831d4f9e0ab4c]", "[1e8396e9eee3c5394181]", "0x20")
+ self.bid128_to_binary80("0", "[1c9bc62be5e093c98d94df951da14185]", "[1fcd90cd3bb087f93e14]", "0x20")
+ self.bid128_to_binary80("1", "[1c9bc62be5e093c98d94df951da14185]", "[1fcd90cd3bb087f93e14]", "0x20")
+ self.bid128_to_binary80("2", "[1c9bc62be5e093c98d94df951da14185]", "[1fcd90cd3bb087f93e15]", "0x20")
+ self.bid128_to_binary80("3", "[1c9bc62be5e093c98d94df951da14185]", "[1fcd90cd3bb087f93e14]", "0x20")
+ self.bid128_to_binary80("4", "[1c9bc62be5e093c98d94df951da14185]", "[1fcd90cd3bb087f93e14]", "0x20")
+ self.bid128_to_binary80("0", "[1d618c019d7853f67e1c384723bf98a3]", "[2115e6e57f95928a45dc]", "0x20")
+ self.bid128_to_binary80("1", "[1d618c019d7853f67e1c384723bf98a3]", "[2115e6e57f95928a45dc]", "0x20")
+ self.bid128_to_binary80("2", "[1d618c019d7853f67e1c384723bf98a3]", "[2115e6e57f95928a45dd]", "0x20")
+ self.bid128_to_binary80("3", "[1d618c019d7853f67e1c384723bf98a3]", "[2115e6e57f95928a45dc]", "0x20")
+ self.bid128_to_binary80("4", "[1d618c019d7853f67e1c384723bf98a3]", "[2115e6e57f95928a45dc]", "0x20")
+ self.bid128_to_binary80("0", "[1e26d5814eea163801742cccf29ee933]", "[225de3a8b6d9618be3f4]", "0x20")
+ self.bid128_to_binary80("1", "[1e26d5814eea163801742cccf29ee933]", "[225de3a8b6d9618be3f3]", "0x20")
+ self.bid128_to_binary80("2", "[1e26d5814eea163801742cccf29ee933]", "[225de3a8b6d9618be3f4]", "0x20")
+ self.bid128_to_binary80("3", "[1e26d5814eea163801742cccf29ee933]", "[225de3a8b6d9618be3f3]", "0x20")
+ self.bid128_to_binary80("4", "[1e26d5814eea163801742cccf29ee933]", "[225de3a8b6d9618be3f4]", "0x20")
+ self.bid128_to_binary80("0", "[1eec2559dfa7694fbaf35c082e0a61cb]", "[23a491ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("1", "[1eec2559dfa7694fbaf35c082e0a61cb]", "[23a491ab9a310597c7d0]", "0x20")
+ self.bid128_to_binary80("2", "[1eec2559dfa7694fbaf35c082e0a61cb]", "[23a491ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("3", "[1eec2559dfa7694fbaf35c082e0a61cb]", "[23a491ab9a310597c7d0]", "0x20")
+ self.bid128_to_binary80("4", "[1eec2559dfa7694fbaf35c082e0a61cb]", "[23a491ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("0", "[1fb20bc8ccb8a620dc03628d842c1f96]", "[24eba8196d6804ae101c]", "0x20")
+ self.bid128_to_binary80("1", "[1fb20bc8ccb8a620dc03628d842c1f96]", "[24eba8196d6804ae101b]", "0x20")
+ self.bid128_to_binary80("2", "[1fb20bc8ccb8a620dc03628d842c1f96]", "[24eba8196d6804ae101c]", "0x20")
+ self.bid128_to_binary80("3", "[1fb20bc8ccb8a620dc03628d842c1f96]", "[24eba8196d6804ae101b]", "0x20")
+ self.bid128_to_binary80("4", "[1fb20bc8ccb8a620dc03628d842c1f96]", "[24eba8196d6804ae101c]", "0x20")
+ self.bid128_to_binary80("0", "[20778506af243c233a8ccc79313276c1]", "[2635fdb61154f776da74]", "0x20")
+ self.bid128_to_binary80("1", "[20778506af243c233a8ccc79313276c1]", "[2635fdb61154f776da74]", "0x20")
+ self.bid128_to_binary80("2", "[20778506af243c233a8ccc79313276c1]", "[2635fdb61154f776da75]", "0x20")
+ self.bid128_to_binary80("3", "[20778506af243c233a8ccc79313276c1]", "[2635fdb61154f776da74]", "0x20")
+ self.bid128_to_binary80("4", "[20778506af243c233a8ccc79313276c1]", "[2635fdb61154f776da74]", "0x20")
+ self.bid128_to_binary80("0", "[213d27928eea037c4bd91a1a2198a0b8]", "[277eb042d3aa0dc1fffa]", "0x20")
+ self.bid128_to_binary80("1", "[213d27928eea037c4bd91a1a2198a0b8]", "[277eb042d3aa0dc1fff9]", "0x20")
+ self.bid128_to_binary80("2", "[213d27928eea037c4bd91a1a2198a0b8]", "[277eb042d3aa0dc1fffa]", "0x20")
+ self.bid128_to_binary80("3", "[213d27928eea037c4bd91a1a2198a0b8]", "[277eb042d3aa0dc1fff9]", "0x20")
+ self.bid128_to_binary80("4", "[213d27928eea037c4bd91a1a2198a0b8]", "[277eb042d3aa0dc1fffa]", "0x20")
+ self.bid128_to_binary80("0", "[22026053ffacb2f9b272d15b030897f0]", "[28c5d21aef06f21dcdc6]", "0x20")
+ self.bid128_to_binary80("1", "[22026053ffacb2f9b272d15b030897f0]", "[28c5d21aef06f21dcdc6]", "0x20")
+ self.bid128_to_binary80("2", "[22026053ffacb2f9b272d15b030897f0]", "[28c5d21aef06f21dcdc7]", "0x20")
+ self.bid128_to_binary80("3", "[22026053ffacb2f9b272d15b030897f0]", "[28c5d21aef06f21dcdc6]", "0x20")
+ self.bid128_to_binary80("4", "[22026053ffacb2f9b272d15b030897f0]", "[28c5d21aef06f21dcdc6]", "0x20")
+ self.bid128_to_binary80("0", "[22c81f040c0c0ce48a4f1bffdf81b35f]", "[2a0cf76ef12b2f87b39a]", "0x20")
+ self.bid128_to_binary80("1", "[22c81f040c0c0ce48a4f1bffdf81b35f]", "[2a0cf76ef12b2f87b39a]", "0x20")
+ self.bid128_to_binary80("2", "[22c81f040c0c0ce48a4f1bffdf81b35f]", "[2a0cf76ef12b2f87b39b]", "0x20")
+ self.bid128_to_binary80("3", "[22c81f040c0c0ce48a4f1bffdf81b35f]", "[2a0cf76ef12b2f87b39a]", "0x20")
+ self.bid128_to_binary80("4", "[22c81f040c0c0ce48a4f1bffdf81b35f]", "[2a0cf76ef12b2f87b39a]", "0x20")
+ self.bid128_to_binary80("0", "[238d9e307736485df7386eec30e41269]", "[2b569711acdd4fd11dec]", "0x20")
+ self.bid128_to_binary80("1", "[238d9e307736485df7386eec30e41269]", "[2b569711acdd4fd11dec]", "0x20")
+ self.bid128_to_binary80("2", "[238d9e307736485df7386eec30e41269]", "[2b569711acdd4fd11ded]", "0x20")
+ self.bid128_to_binary80("3", "[238d9e307736485df7386eec30e41269]", "[2b569711acdd4fd11dec]", "0x20")
+ self.bid128_to_binary80("4", "[238d9e307736485df7386eec30e41269]", "[2b569711acdd4fd11dec]", "0x20")
+ self.bid128_to_binary80("0", "[2452784c29ed0c214fddda23cc6ffbb1]", "[2c9da07b3bec008b8716]", "0x20")
+ self.bid128_to_binary80("1", "[2452784c29ed0c214fddda23cc6ffbb1]", "[2c9da07b3bec008b8716]", "0x20")
+ self.bid128_to_binary80("2", "[2452784c29ed0c214fddda23cc6ffbb1]", "[2c9da07b3bec008b8717]", "0x20")
+ self.bid128_to_binary80("3", "[2452784c29ed0c214fddda23cc6ffbb1]", "[2c9da07b3bec008b8716]", "0x20")
+ self.bid128_to_binary80("4", "[2452784c29ed0c214fddda23cc6ffbb1]", "[2c9da07b3bec008b8716]", "0x20")
+ self.bid128_to_binary80("0", "[2518d007d93168d2dc3d4c738e3f84fd]", "[2de6fdc3197909865e04]", "0x20")
+ self.bid128_to_binary80("1", "[2518d007d93168d2dc3d4c738e3f84fd]", "[2de6fdc3197909865e03]", "0x20")
+ self.bid128_to_binary80("2", "[2518d007d93168d2dc3d4c738e3f84fd]", "[2de6fdc3197909865e04]", "0x20")
+ self.bid128_to_binary80("3", "[2518d007d93168d2dc3d4c738e3f84fd]", "[2de6fdc3197909865e03]", "0x20")
+ self.bid128_to_binary80("4", "[2518d007d93168d2dc3d4c738e3f84fd]", "[2de6fdc3197909865e04]", "0x20")
+ self.bid128_to_binary80("0", "[25de373610d172dfb4ad32f50a819928]", "[2f2df65494340f01764e]", "0x20")
+ self.bid128_to_binary80("1", "[25de373610d172dfb4ad32f50a819928]", "[2f2df65494340f01764d]", "0x20")
+ self.bid128_to_binary80("2", "[25de373610d172dfb4ad32f50a819928]", "[2f2df65494340f01764e]", "0x20")
+ self.bid128_to_binary80("3", "[25de373610d172dfb4ad32f50a819928]", "[2f2df65494340f01764d]", "0x20")
+ self.bid128_to_binary80("4", "[25de373610d172dfb4ad32f50a819928]", "[2f2df65494340f01764e]", "0x20")
+ self.bid128_to_binary80("0", "[26a4030878f1c9746bb07dd96f7a8270]", "[3072c5fbb2eb247b1c2a]", "0x20")
+ self.bid128_to_binary80("1", "[26a4030878f1c9746bb07dd96f7a8270]", "[3072c5fbb2eb247b1c2a]", "0x20")
+ self.bid128_to_binary80("2", "[26a4030878f1c9746bb07dd96f7a8270]", "[3072c5fbb2eb247b1c2b]", "0x20")
+ self.bid128_to_binary80("3", "[26a4030878f1c9746bb07dd96f7a8270]", "[3072c5fbb2eb247b1c2a]", "0x20")
+ self.bid128_to_binary80("4", "[26a4030878f1c9746bb07dd96f7a8270]", "[3072c5fbb2eb247b1c2a]", "0x20")
+ self.bid128_to_binary80("0", "[27682c2979e68825a57c2c20753246b1]", "[31bc83cb06c69159bb30]", "0x20")
+ self.bid128_to_binary80("1", "[27682c2979e68825a57c2c20753246b1]", "[31bc83cb06c69159bb2f]", "0x20")
+ self.bid128_to_binary80("2", "[27682c2979e68825a57c2c20753246b1]", "[31bc83cb06c69159bb30]", "0x20")
+ self.bid128_to_binary80("3", "[27682c2979e68825a57c2c20753246b1]", "[31bc83cb06c69159bb2f]", "0x20")
+ self.bid128_to_binary80("4", "[27682c2979e68825a57c2c20753246b1]", "[31bc83cb06c69159bb30]", "0x20")
+ self.bid128_to_binary80("0", "[2830099197db399fc956dc27c27cf593]", "[3306828e8301b763fbdb]", "0x20")
+ self.bid128_to_binary80("1", "[2830099197db399fc956dc27c27cf593]", "[3306828e8301b763fbdb]", "0x20")
+ self.bid128_to_binary80("2", "[2830099197db399fc956dc27c27cf593]", "[3306828e8301b763fbdc]", "0x20")
+ self.bid128_to_binary80("3", "[2830099197db399fc956dc27c27cf593]", "[3306828e8301b763fbdb]", "0x20")
+ self.bid128_to_binary80("4", "[2830099197db399fc956dc27c27cf593]", "[3306828e8301b763fbdb]", "0x20")
+ self.bid128_to_binary80("0", "[28f443871b22b6e5983b0dc7c3a0d009]", "[344ea87ee76d58bb1595]", "0x20")
+ self.bid128_to_binary80("1", "[28f443871b22b6e5983b0dc7c3a0d009]", "[344ea87ee76d58bb1594]", "0x20")
+ self.bid128_to_binary80("2", "[28f443871b22b6e5983b0dc7c3a0d009]", "[344ea87ee76d58bb1595]", "0x20")
+ self.bid128_to_binary80("3", "[28f443871b22b6e5983b0dc7c3a0d009]", "[344ea87ee76d58bb1594]", "0x20")
+ self.bid128_to_binary80("4", "[28f443871b22b6e5983b0dc7c3a0d009]", "[344ea87ee76d58bb1595]", "0x20")
+ self.bid128_to_binary80("0", "[29ba13b0ae0301602ae401857bbeb2e3]", "[3595b3b318a8d2a41198]", "0x20")
+ self.bid128_to_binary80("1", "[29ba13b0ae0301602ae401857bbeb2e3]", "[3595b3b318a8d2a41197]", "0x20")
+ self.bid128_to_binary80("2", "[29ba13b0ae0301602ae401857bbeb2e3]", "[3595b3b318a8d2a41198]", "0x20")
+ self.bid128_to_binary80("3", "[29ba13b0ae0301602ae401857bbeb2e3]", "[3595b3b318a8d2a41197]", "0x20")
+ self.bid128_to_binary80("4", "[29ba13b0ae0301602ae401857bbeb2e3]", "[3595b3b318a8d2a41198]", "0x20")
+ self.bid128_to_binary80("0", "[2a7fc664697fcefed63ba1e610db6274]", "[36dfbd98b381660294ae]", "0x20")
+ self.bid128_to_binary80("1", "[2a7fc664697fcefed63ba1e610db6274]", "[36dfbd98b381660294ae]", "0x20")
+ self.bid128_to_binary80("2", "[2a7fc664697fcefed63ba1e610db6274]", "[36dfbd98b381660294af]", "0x20")
+ self.bid128_to_binary80("3", "[2a7fc664697fcefed63ba1e610db6274]", "[36dfbd98b381660294ae]", "0x20")
+ self.bid128_to_binary80("4", "[2a7fc664697fcefed63ba1e610db6274]", "[36dfbd98b381660294ae]", "0x20")
+ self.bid128_to_binary80("0", "[2b440c5cecaf6e48f0c7ddeca33f408f]", "[382396f0a04f9d18bc80]", "0x20")
+ self.bid128_to_binary80("1", "[2b440c5cecaf6e48f0c7ddeca33f408f]", "[382396f0a04f9d18bc80]", "0x20")
+ self.bid128_to_binary80("2", "[2b440c5cecaf6e48f0c7ddeca33f408f]", "[382396f0a04f9d18bc81]", "0x20")
+ self.bid128_to_binary80("3", "[2b440c5cecaf6e48f0c7ddeca33f408f]", "[382396f0a04f9d18bc80]", "0x20")
+ self.bid128_to_binary80("4", "[2b440c5cecaf6e48f0c7ddeca33f408f]", "[382396f0a04f9d18bc80]", "0x20")
+ self.bid128_to_binary80("0", "[2c0a7e5b6c9663bcb659fd6b206edad5]", "[396fb0540a302e113167]", "0x20")
+ self.bid128_to_binary80("1", "[2c0a7e5b6c9663bcb659fd6b206edad5]", "[396fb0540a302e113167]", "0x20")
+ self.bid128_to_binary80("2", "[2c0a7e5b6c9663bcb659fd6b206edad5]", "[396fb0540a302e113168]", "0x20")
+ self.bid128_to_binary80("3", "[2c0a7e5b6c9663bcb659fd6b206edad5]", "[396fb0540a302e113167]", "0x20")
+ self.bid128_to_binary80("4", "[2c0a7e5b6c9663bcb659fd6b206edad5]", "[396fb0540a302e113167]", "0x20")
+ self.bid128_to_binary80("0", "[2cd0320f3e2946ec33678858858bd4cd]", "[3ab6ff8172f93d237e3a]", "0x20")
+ self.bid128_to_binary80("1", "[2cd0320f3e2946ec33678858858bd4cd]", "[3ab6ff8172f93d237e39]", "0x20")
+ self.bid128_to_binary80("2", "[2cd0320f3e2946ec33678858858bd4cd]", "[3ab6ff8172f93d237e3a]", "0x20")
+ self.bid128_to_binary80("3", "[2cd0320f3e2946ec33678858858bd4cd]", "[3ab6ff8172f93d237e39]", "0x20")
+ self.bid128_to_binary80("4", "[2cd0320f3e2946ec33678858858bd4cd]", "[3ab6ff8172f93d237e3a]", "0x20")
+ self.bid128_to_binary80("0", "[2d9800bf4d92e33eeba496d943e5c091]", "[3bfd8b810bf580ff8d9a]", "0x20")
+ self.bid128_to_binary80("1", "[2d9800bf4d92e33eeba496d943e5c091]", "[3bfd8b810bf580ff8d99]", "0x20")
+ self.bid128_to_binary80("2", "[2d9800bf4d92e33eeba496d943e5c091]", "[3bfd8b810bf580ff8d9a]", "0x20")
+ self.bid128_to_binary80("3", "[2d9800bf4d92e33eeba496d943e5c091]", "[3bfd8b810bf580ff8d99]", "0x20")
+ self.bid128_to_binary80("4", "[2d9800bf4d92e33eeba496d943e5c091]", "[3bfd8b810bf580ff8d9a]", "0x20")
+ self.bid128_to_binary80("0", "[2e5bebfdc3b1be0cf9ee7d5b3af6856a]", "[3d48d1f56e224aa84d0f]", "0x20")
+ self.bid128_to_binary80("1", "[2e5bebfdc3b1be0cf9ee7d5b3af6856a]", "[3d48d1f56e224aa84d0f]", "0x20")
+ self.bid128_to_binary80("2", "[2e5bebfdc3b1be0cf9ee7d5b3af6856a]", "[3d48d1f56e224aa84d10]", "0x20")
+ self.bid128_to_binary80("3", "[2e5bebfdc3b1be0cf9ee7d5b3af6856a]", "[3d48d1f56e224aa84d0f]", "0x20")
+ self.bid128_to_binary80("4", "[2e5bebfdc3b1be0cf9ee7d5b3af6856a]", "[3d48d1f56e224aa84d0f]", "0x20")
+ self.bid128_to_binary80("0", "[2f207f630959cb588a487cbeee6056fd]", "[3e8fc6d5ba5e3a4620ce]", "0x20")
+ self.bid128_to_binary80("1", "[2f207f630959cb588a487cbeee6056fd]", "[3e8fc6d5ba5e3a4620ce]", "0x20")
+ self.bid128_to_binary80("2", "[2f207f630959cb588a487cbeee6056fd]", "[3e8fc6d5ba5e3a4620cf]", "0x20")
+ self.bid128_to_binary80("3", "[2f207f630959cb588a487cbeee6056fd]", "[3e8fc6d5ba5e3a4620ce]", "0x20")
+ self.bid128_to_binary80("4", "[2f207f630959cb588a487cbeee6056fd]", "[3e8fc6d5ba5e3a4620ce]", "0x20")
+ self.bid128_to_binary80("0", "[2fe658f857a00e0c3d88b558f7785ef2]", "[3fd7fdf6f6c58dc2971e]", "0x20")
+ self.bid128_to_binary80("1", "[2fe658f857a00e0c3d88b558f7785ef2]", "[3fd7fdf6f6c58dc2971e]", "0x20")
+ self.bid128_to_binary80("2", "[2fe658f857a00e0c3d88b558f7785ef2]", "[3fd7fdf6f6c58dc2971f]", "0x20")
+ self.bid128_to_binary80("3", "[2fe658f857a00e0c3d88b558f7785ef2]", "[3fd7fdf6f6c58dc2971e]", "0x20")
+ self.bid128_to_binary80("4", "[2fe658f857a00e0c3d88b558f7785ef2]", "[3fd7fdf6f6c58dc2971e]", "0x20")
+ self.bid128_to_binary80("0", "[303000000000000000000000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[303000000000000000000000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[303000000000000000000000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[303000000000000000000000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[303000000000000000000000004d7c6d]", "[3ffad000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[303e000000000000000000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[303e000000000000000000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[303e000000000000000000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[303e000000000000000000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[303e000000000000000000000000000f]", "[3fffc000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[30400000000000000000000000000000]", "[00000000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[30400000000000000000000000000000]", "[00000000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[30400000000000000000000000000000]", "[00000000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[30400000000000000000000000000000]", "[00000000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[30400000000000000000000000000000]", "[00000000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[30400000000000000000000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[30400000000000000000000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[30400000000000000000000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[30400000000000000000000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[30400000000000000000000000000001]", "[3fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[30400000000000000000000000000040]", "[40058000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[30400000000000000000000000000040]", "[40058000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[30400000000000000000000000000040]", "[40058000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[30400000000000000000000000000040]", "[40058000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[30400000000000000000000000000040]", "[40058000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[304000000000000000000000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[304000000000000000000000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[304000000000000000000000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[304000000000000000000000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[304000000000000000000000000003e7]", "[4008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[304000000000000000000000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[304000000000000000000000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[304000000000000000000000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[304000000000000000000000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[304000000000000000000000000003e8]", "[4008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[30ab63a1033d430b732414f8546ae14e]", "[411fb9a5a04a2151b43f]", "0x20")
+ self.bid128_to_binary80("1", "[30ab63a1033d430b732414f8546ae14e]", "[411fb9a5a04a2151b43f]", "0x20")
+ self.bid128_to_binary80("2", "[30ab63a1033d430b732414f8546ae14e]", "[411fb9a5a04a2151b440]", "0x20")
+ self.bid128_to_binary80("3", "[30ab63a1033d430b732414f8546ae14e]", "[411fb9a5a04a2151b43f]", "0x20")
+ self.bid128_to_binary80("4", "[30ab63a1033d430b732414f8546ae14e]", "[411fb9a5a04a2151b43f]", "0x20")
+ self.bid128_to_binary80("0", "[3170512b20b2fa9b1eac8e50f9969bee]", "[42669afa5210ae392423]", "0x20")
+ self.bid128_to_binary80("1", "[3170512b20b2fa9b1eac8e50f9969bee]", "[42669afa5210ae392423]", "0x20")
+ self.bid128_to_binary80("2", "[3170512b20b2fa9b1eac8e50f9969bee]", "[42669afa5210ae392424]", "0x20")
+ self.bid128_to_binary80("3", "[3170512b20b2fa9b1eac8e50f9969bee]", "[42669afa5210ae392423]", "0x20")
+ self.bid128_to_binary80("4", "[3170512b20b2fa9b1eac8e50f9969bee]", "[42669afa5210ae392423]", "0x20")
+ self.bid128_to_binary80("0", "[3236ded461f3956dfe33ce39663a615f]", "[43b0c2843bf1d4f21f0a]", "0x20")
+ self.bid128_to_binary80("1", "[3236ded461f3956dfe33ce39663a615f]", "[43b0c2843bf1d4f21f09]", "0x20")
+ self.bid128_to_binary80("2", "[3236ded461f3956dfe33ce39663a615f]", "[43b0c2843bf1d4f21f0a]", "0x20")
+ self.bid128_to_binary80("3", "[3236ded461f3956dfe33ce39663a615f]", "[43b0c2843bf1d4f21f09]", "0x20")
+ self.bid128_to_binary80("4", "[3236ded461f3956dfe33ce39663a615f]", "[43b0c2843bf1d4f21f0a]", "0x20")
+ self.bid128_to_binary80("0", "[32fcb043ea9c3190e554619eeaa4c12f]", "[44f98cb22f7612e62bbc]", "0x20")
+ self.bid128_to_binary80("1", "[32fcb043ea9c3190e554619eeaa4c12f]", "[44f98cb22f7612e62bbb]", "0x20")
+ self.bid128_to_binary80("2", "[32fcb043ea9c3190e554619eeaa4c12f]", "[44f98cb22f7612e62bbc]", "0x20")
+ self.bid128_to_binary80("3", "[32fcb043ea9c3190e554619eeaa4c12f]", "[44f98cb22f7612e62bbb]", "0x20")
+ self.bid128_to_binary80("4", "[32fcb043ea9c3190e554619eeaa4c12f]", "[44f98cb22f7612e62bbc]", "0x20")
+ self.bid128_to_binary80("0", "[33c24d0c35e844f21dd3fbdca44ac028]", "[4640e0f090a903c3a757]", "0x20")
+ self.bid128_to_binary80("1", "[33c24d0c35e844f21dd3fbdca44ac028]", "[4640e0f090a903c3a756]", "0x20")
+ self.bid128_to_binary80("2", "[33c24d0c35e844f21dd3fbdca44ac028]", "[4640e0f090a903c3a757]", "0x20")
+ self.bid128_to_binary80("3", "[33c24d0c35e844f21dd3fbdca44ac028]", "[4640e0f090a903c3a756]", "0x20")
+ self.bid128_to_binary80("4", "[33c24d0c35e844f21dd3fbdca44ac028]", "[4640e0f090a903c3a757]", "0x20")
+ self.bid128_to_binary80("0", "[3485377251b935cb987220cc3039df08]", "[4785850709ccf9b59c46]", "0x20")
+ self.bid128_to_binary80("1", "[3485377251b935cb987220cc3039df08]", "[4785850709ccf9b59c45]", "0x20")
+ self.bid128_to_binary80("2", "[3485377251b935cb987220cc3039df08]", "[4785850709ccf9b59c46]", "0x20")
+ self.bid128_to_binary80("3", "[3485377251b935cb987220cc3039df08]", "[4785850709ccf9b59c45]", "0x20")
+ self.bid128_to_binary80("4", "[3485377251b935cb987220cc3039df08]", "[4785850709ccf9b59c46]", "0x20")
+ self.bid128_to_binary80("0", "[354d1bc9ea3ba27c3428bbf88be3fb3b]", "[48d18a8bd054f2a87c14]", "0x20")
+ self.bid128_to_binary80("1", "[354d1bc9ea3ba27c3428bbf88be3fb3b]", "[48d18a8bd054f2a87c14]", "0x20")
+ self.bid128_to_binary80("2", "[354d1bc9ea3ba27c3428bbf88be3fb3b]", "[48d18a8bd054f2a87c15]", "0x20")
+ self.bid128_to_binary80("3", "[354d1bc9ea3ba27c3428bbf88be3fb3b]", "[48d18a8bd054f2a87c14]", "0x20")
+ self.bid128_to_binary80("4", "[354d1bc9ea3ba27c3428bbf88be3fb3b]", "[48d18a8bd054f2a87c14]", "0x20")
+ self.bid128_to_binary80("0", "[36126785a41dad61f2bb74d6023e710e]", "[4a18b8da0b44b043febe]", "0x20")
+ self.bid128_to_binary80("1", "[36126785a41dad61f2bb74d6023e710e]", "[4a18b8da0b44b043febd]", "0x20")
+ self.bid128_to_binary80("2", "[36126785a41dad61f2bb74d6023e710e]", "[4a18b8da0b44b043febe]", "0x20")
+ self.bid128_to_binary80("3", "[36126785a41dad61f2bb74d6023e710e]", "[4a18b8da0b44b043febd]", "0x20")
+ self.bid128_to_binary80("4", "[36126785a41dad61f2bb74d6023e710e]", "[4a18b8da0b44b043febe]", "0x20")
+ self.bid128_to_binary80("0", "[36d86f9cf0da1867db67b9d5466ba79a]", "[4b61b63cbbc9bfb1aecf]", "0x20")
+ self.bid128_to_binary80("1", "[36d86f9cf0da1867db67b9d5466ba79a]", "[4b61b63cbbc9bfb1aecf]", "0x20")
+ self.bid128_to_binary80("2", "[36d86f9cf0da1867db67b9d5466ba79a]", "[4b61b63cbbc9bfb1aed0]", "0x20")
+ self.bid128_to_binary80("3", "[36d86f9cf0da1867db67b9d5466ba79a]", "[4b61b63cbbc9bfb1aecf]", "0x20")
+ self.bid128_to_binary80("4", "[36d86f9cf0da1867db67b9d5466ba79a]", "[4b61b63cbbc9bfb1aecf]", "0x20")
+ self.bid128_to_binary80("0", "[379dac6268305aba130709e687761016]", "[4ca8ffd3d6d37590f1c5]", "0x20")
+ self.bid128_to_binary80("1", "[379dac6268305aba130709e687761016]", "[4ca8ffd3d6d37590f1c5]", "0x20")
+ self.bid128_to_binary80("2", "[379dac6268305aba130709e687761016]", "[4ca8ffd3d6d37590f1c6]", "0x20")
+ self.bid128_to_binary80("3", "[379dac6268305aba130709e687761016]", "[4ca8ffd3d6d37590f1c5]", "0x20")
+ self.bid128_to_binary80("4", "[379dac6268305aba130709e687761016]", "[4ca8ffd3d6d37590f1c5]", "0x20")
+ self.bid128_to_binary80("0", "[3863e55954975defd8a9e57d1c054cce]", "[4df284842818bba6ca46]", "0x20")
+ self.bid128_to_binary80("1", "[3863e55954975defd8a9e57d1c054cce]", "[4df284842818bba6ca45]", "0x20")
+ self.bid128_to_binary80("2", "[3863e55954975defd8a9e57d1c054cce]", "[4df284842818bba6ca46]", "0x20")
+ self.bid128_to_binary80("3", "[3863e55954975defd8a9e57d1c054cce]", "[4df284842818bba6ca45]", "0x20")
+ self.bid128_to_binary80("4", "[3863e55954975defd8a9e57d1c054cce]", "[4df284842818bba6ca46]", "0x20")
+ self.bid128_to_binary80("0", "[3929419097d1e7aeb0913d5cf5eb4f9a]", "[4f3aa09014123c1437cb]", "0x20")
+ self.bid128_to_binary80("1", "[3929419097d1e7aeb0913d5cf5eb4f9a]", "[4f3aa09014123c1437ca]", "0x20")
+ self.bid128_to_binary80("2", "[3929419097d1e7aeb0913d5cf5eb4f9a]", "[4f3aa09014123c1437cb]", "0x20")
+ self.bid128_to_binary80("3", "[3929419097d1e7aeb0913d5cf5eb4f9a]", "[4f3aa09014123c1437ca]", "0x20")
+ self.bid128_to_binary80("4", "[3929419097d1e7aeb0913d5cf5eb4f9a]", "[4f3aa09014123c1437cb]", "0x20")
+ self.bid128_to_binary80("0", "[39ef17b1a619acc65db4ac9745998042]", "[5082ff6666ddab9b1b66]", "0x20")
+ self.bid128_to_binary80("1", "[39ef17b1a619acc65db4ac9745998042]", "[5082ff6666ddab9b1b65]", "0x20")
+ self.bid128_to_binary80("2", "[39ef17b1a619acc65db4ac9745998042]", "[5082ff6666ddab9b1b66]", "0x20")
+ self.bid128_to_binary80("3", "[39ef17b1a619acc65db4ac9745998042]", "[5082ff6666ddab9b1b65]", "0x20")
+ self.bid128_to_binary80("4", "[39ef17b1a619acc65db4ac9745998042]", "[5082ff6666ddab9b1b66]", "0x20")
+ self.bid128_to_binary80("0", "[3ab2b88fe0f75055582160f7125ef042]", "[51c7f690aa75b8ff8684]", "0x20")
+ self.bid128_to_binary80("1", "[3ab2b88fe0f75055582160f7125ef042]", "[51c7f690aa75b8ff8683]", "0x20")
+ self.bid128_to_binary80("2", "[3ab2b88fe0f75055582160f7125ef042]", "[51c7f690aa75b8ff8684]", "0x20")
+ self.bid128_to_binary80("3", "[3ab2b88fe0f75055582160f7125ef042]", "[51c7f690aa75b8ff8683]", "0x20")
+ self.bid128_to_binary80("4", "[3ab2b88fe0f75055582160f7125ef042]", "[51c7f690aa75b8ff8684]", "0x20")
+ self.bid128_to_binary80("0", "[3b78c4987c4153eff3d6a75a87bfb668]", "[5310f02818cee2adf0f0]", "0x20")
+ self.bid128_to_binary80("1", "[3b78c4987c4153eff3d6a75a87bfb668]", "[5310f02818cee2adf0ef]", "0x20")
+ self.bid128_to_binary80("2", "[3b78c4987c4153eff3d6a75a87bfb668]", "[5310f02818cee2adf0f0]", "0x20")
+ self.bid128_to_binary80("3", "[3b78c4987c4153eff3d6a75a87bfb668]", "[5310f02818cee2adf0ef]", "0x20")
+ self.bid128_to_binary80("4", "[3b78c4987c4153eff3d6a75a87bfb668]", "[5310f02818cee2adf0f0]", "0x20")
+ self.bid128_to_binary80("0", "[3c3eaf5aa980483eac3bf6599f02704b]", "[5459c3debf2bc7c72034]", "0x20")
+ self.bid128_to_binary80("1", "[3c3eaf5aa980483eac3bf6599f02704b]", "[5459c3debf2bc7c72034]", "0x20")
+ self.bid128_to_binary80("2", "[3c3eaf5aa980483eac3bf6599f02704b]", "[5459c3debf2bc7c72035]", "0x20")
+ self.bid128_to_binary80("3", "[3c3eaf5aa980483eac3bf6599f02704b]", "[5459c3debf2bc7c72034]", "0x20")
+ self.bid128_to_binary80("4", "[3c3eaf5aa980483eac3bf6599f02704b]", "[5459c3debf2bc7c72034]", "0x20")
+ self.bid128_to_binary80("0", "[3d05eabc71c65f70a8f82792c544a17d]", "[55a3fa9ca07d6dfa4cef]", "0x20")
+ self.bid128_to_binary80("1", "[3d05eabc71c65f70a8f82792c544a17d]", "[55a3fa9ca07d6dfa4cee]", "0x20")
+ self.bid128_to_binary80("2", "[3d05eabc71c65f70a8f82792c544a17d]", "[55a3fa9ca07d6dfa4cef]", "0x20")
+ self.bid128_to_binary80("3", "[3d05eabc71c65f70a8f82792c544a17d]", "[55a3fa9ca07d6dfa4cee]", "0x20")
+ self.bid128_to_binary80("4", "[3d05eabc71c65f70a8f82792c544a17d]", "[55a3fa9ca07d6dfa4cef]", "0x20")
+ self.bid128_to_binary80("0", "[3dca812e8c84e96b78d6094ce067db57]", "[56eaf14b3ef83dfaab99]", "0x20")
+ self.bid128_to_binary80("1", "[3dca812e8c84e96b78d6094ce067db57]", "[56eaf14b3ef83dfaab98]", "0x20")
+ self.bid128_to_binary80("2", "[3dca812e8c84e96b78d6094ce067db57]", "[56eaf14b3ef83dfaab99]", "0x20")
+ self.bid128_to_binary80("3", "[3dca812e8c84e96b78d6094ce067db57]", "[56eaf14b3ef83dfaab98]", "0x20")
+ self.bid128_to_binary80("4", "[3dca812e8c84e96b78d6094ce067db57]", "[56eaf14b3ef83dfaab99]", "0x20")
+ self.bid128_to_binary80("0", "[3e8e9aafc539fd28221eeed21638e0d2]", "[5830d35bb22027f1287e]", "0x20")
+ self.bid128_to_binary80("1", "[3e8e9aafc539fd28221eeed21638e0d2]", "[5830d35bb22027f1287d]", "0x20")
+ self.bid128_to_binary80("2", "[3e8e9aafc539fd28221eeed21638e0d2]", "[5830d35bb22027f1287e]", "0x20")
+ self.bid128_to_binary80("3", "[3e8e9aafc539fd28221eeed21638e0d2]", "[5830d35bb22027f1287d]", "0x20")
+ self.bid128_to_binary80("4", "[3e8e9aafc539fd28221eeed21638e0d2]", "[5830d35bb22027f1287e]", "0x20")
+ self.bid128_to_binary80("0", "[3f5536291516172d7310b1be0ec2fbe8]", "[597ac1c16ee51d041724]", "0x20")
+ self.bid128_to_binary80("1", "[3f5536291516172d7310b1be0ec2fbe8]", "[597ac1c16ee51d041723]", "0x20")
+ self.bid128_to_binary80("2", "[3f5536291516172d7310b1be0ec2fbe8]", "[597ac1c16ee51d041724]", "0x20")
+ self.bid128_to_binary80("3", "[3f5536291516172d7310b1be0ec2fbe8]", "[597ac1c16ee51d041723]", "0x20")
+ self.bid128_to_binary80("4", "[3f5536291516172d7310b1be0ec2fbe8]", "[597ac1c16ee51d041724]", "0x20")
+ self.bid128_to_binary80("0", "[401b9d42f2febef649f5af294cd54293]", "[5ac3ec0f9c1d54395f76]", "0x20")
+ self.bid128_to_binary80("1", "[401b9d42f2febef649f5af294cd54293]", "[5ac3ec0f9c1d54395f76]", "0x20")
+ self.bid128_to_binary80("2", "[401b9d42f2febef649f5af294cd54293]", "[5ac3ec0f9c1d54395f77]", "0x20")
+ self.bid128_to_binary80("3", "[401b9d42f2febef649f5af294cd54293]", "[5ac3ec0f9c1d54395f76]", "0x20")
+ self.bid128_to_binary80("4", "[401b9d42f2febef649f5af294cd54293]", "[5ac3ec0f9c1d54395f76]", "0x20")
+ self.bid128_to_binary80("0", "[40e0ee30d2e354402be3eb3bbfeb4a38]", "[5c0bf8d1f2fd4a0d697c]", "0x20")
+ self.bid128_to_binary80("1", "[40e0ee30d2e354402be3eb3bbfeb4a38]", "[5c0bf8d1f2fd4a0d697c]", "0x20")
+ self.bid128_to_binary80("2", "[40e0ee30d2e354402be3eb3bbfeb4a38]", "[5c0bf8d1f2fd4a0d697d]", "0x20")
+ self.bid128_to_binary80("3", "[40e0ee30d2e354402be3eb3bbfeb4a38]", "[5c0bf8d1f2fd4a0d697c]", "0x20")
+ self.bid128_to_binary80("4", "[40e0ee30d2e354402be3eb3bbfeb4a38]", "[5c0bf8d1f2fd4a0d697c]", "0x20")
+ self.bid128_to_binary80("0", "[41a4e42dea0f24820e7e808179f34372]", "[5d51ae5d58d0c27a7751]", "0x20")
+ self.bid128_to_binary80("1", "[41a4e42dea0f24820e7e808179f34372]", "[5d51ae5d58d0c27a7750]", "0x20")
+ self.bid128_to_binary80("2", "[41a4e42dea0f24820e7e808179f34372]", "[5d51ae5d58d0c27a7751]", "0x20")
+ self.bid128_to_binary80("3", "[41a4e42dea0f24820e7e808179f34372]", "[5d51ae5d58d0c27a7750]", "0x20")
+ self.bid128_to_binary80("4", "[41a4e42dea0f24820e7e808179f34372]", "[5d51ae5d58d0c27a7751]", "0x20")
+ self.bid128_to_binary80("0", "[426a37fb18dd6455171972771ad0c1b0]", "[5e989c76a5f34e88d40d]", "0x20")
+ self.bid128_to_binary80("1", "[426a37fb18dd6455171972771ad0c1b0]", "[5e989c76a5f34e88d40d]", "0x20")
+ self.bid128_to_binary80("2", "[426a37fb18dd6455171972771ad0c1b0]", "[5e989c76a5f34e88d40e]", "0x20")
+ self.bid128_to_binary80("3", "[426a37fb18dd6455171972771ad0c1b0]", "[5e989c76a5f34e88d40d]", "0x20")
+ self.bid128_to_binary80("4", "[426a37fb18dd6455171972771ad0c1b0]", "[5e989c76a5f34e88d40d]", "0x20")
+ self.bid128_to_binary80("0", "[4330cfbea16151094b2d5b9cef7a3efd]", "[5fe384bb52e200382bc8]", "0x20")
+ self.bid128_to_binary80("1", "[4330cfbea16151094b2d5b9cef7a3efd]", "[5fe384bb52e200382bc8]", "0x20")
+ self.bid128_to_binary80("2", "[4330cfbea16151094b2d5b9cef7a3efd]", "[5fe384bb52e200382bc9]", "0x20")
+ self.bid128_to_binary80("3", "[4330cfbea16151094b2d5b9cef7a3efd]", "[5fe384bb52e200382bc8]", "0x20")
+ self.bid128_to_binary80("4", "[4330cfbea16151094b2d5b9cef7a3efd]", "[5fe384bb52e200382bc8]", "0x20")
+ self.bid128_to_binary80("0", "[43f7b09dd524fade05bff3e4315f282f]", "[612cfcbe418246ddc090]", "0x20")
+ self.bid128_to_binary80("1", "[43f7b09dd524fade05bff3e4315f282f]", "[612cfcbe418246ddc08f]", "0x20")
+ self.bid128_to_binary80("2", "[43f7b09dd524fade05bff3e4315f282f]", "[612cfcbe418246ddc090]", "0x20")
+ self.bid128_to_binary80("3", "[43f7b09dd524fade05bff3e4315f282f]", "[612cfcbe418246ddc08f]", "0x20")
+ self.bid128_to_binary80("4", "[43f7b09dd524fade05bff3e4315f282f]", "[612cfcbe418246ddc090]", "0x20")
+ self.bid128_to_binary80("0", "[44bc773ddc501fc46aeb827d28b82275]", "[6273fecc3e26e5894dcd]", "0x20")
+ self.bid128_to_binary80("1", "[44bc773ddc501fc46aeb827d28b82275]", "[6273fecc3e26e5894dcc]", "0x20")
+ self.bid128_to_binary80("2", "[44bc773ddc501fc46aeb827d28b82275]", "[6273fecc3e26e5894dcd]", "0x20")
+ self.bid128_to_binary80("3", "[44bc773ddc501fc46aeb827d28b82275]", "[6273fecc3e26e5894dcc]", "0x20")
+ self.bid128_to_binary80("4", "[44bc773ddc501fc46aeb827d28b82275]", "[6273fecc3e26e5894dcd]", "0x20")
+ self.bid128_to_binary80("0", "[45805605bd71f1cc5bccd470aac5ee44]", "[63b986765f815d1d847b]", "0x20")
+ self.bid128_to_binary80("1", "[45805605bd71f1cc5bccd470aac5ee44]", "[63b986765f815d1d847a]", "0x20")
+ self.bid128_to_binary80("2", "[45805605bd71f1cc5bccd470aac5ee44]", "[63b986765f815d1d847b]", "0x20")
+ self.bid128_to_binary80("3", "[45805605bd71f1cc5bccd470aac5ee44]", "[63b986765f815d1d847a]", "0x20")
+ self.bid128_to_binary80("4", "[45805605bd71f1cc5bccd470aac5ee44]", "[63b986765f815d1d847b]", "0x20")
+ self.bid128_to_binary80("0", "[46471c01ae777c8eb082f5ef624dd355]", "[6503caf6c8067e598c64]", "0x20")
+ self.bid128_to_binary80("1", "[46471c01ae777c8eb082f5ef624dd355]", "[6503caf6c8067e598c64]", "0x20")
+ self.bid128_to_binary80("2", "[46471c01ae777c8eb082f5ef624dd355]", "[6503caf6c8067e598c65]", "0x20")
+ self.bid128_to_binary80("3", "[46471c01ae777c8eb082f5ef624dd355]", "[6503caf6c8067e598c64]", "0x20")
+ self.bid128_to_binary80("4", "[46471c01ae777c8eb082f5ef624dd355]", "[6503caf6c8067e598c64]", "0x20")
+ self.bid128_to_binary80("0", "[470d777740eb14c695ddf159c2824812]", "[664cf55a86621697b553]", "0x20")
+ self.bid128_to_binary80("1", "[470d777740eb14c695ddf159c2824812]", "[664cf55a86621697b553]", "0x20")
+ self.bid128_to_binary80("2", "[470d777740eb14c695ddf159c2824812]", "[664cf55a86621697b554]", "0x20")
+ self.bid128_to_binary80("3", "[470d777740eb14c695ddf159c2824812]", "[664cf55a86621697b553]", "0x20")
+ self.bid128_to_binary80("4", "[470d777740eb14c695ddf159c2824812]", "[664cf55a86621697b553]", "0x20")
+ self.bid128_to_binary80("0", "[47d2c4b327cb57600b0aedbda5258071]", "[6794eb1090bdb83554c0]", "0x20")
+ self.bid128_to_binary80("1", "[47d2c4b327cb57600b0aedbda5258071]", "[6794eb1090bdb83554bf]", "0x20")
+ self.bid128_to_binary80("2", "[47d2c4b327cb57600b0aedbda5258071]", "[6794eb1090bdb83554c0]", "0x20")
+ self.bid128_to_binary80("3", "[47d2c4b327cb57600b0aedbda5258071]", "[6794eb1090bdb83554bf]", "0x20")
+ self.bid128_to_binary80("4", "[47d2c4b327cb57600b0aedbda5258071]", "[6794eb1090bdb83554c0]", "0x20")
+ self.bid128_to_binary80("0", "[489532211daeaef2ddc8baff5293207c]", "[68d7d61779e70826c5a8]", "0x20")
+ self.bid128_to_binary80("1", "[489532211daeaef2ddc8baff5293207c]", "[68d7d61779e70826c5a7]", "0x20")
+ self.bid128_to_binary80("2", "[489532211daeaef2ddc8baff5293207c]", "[68d7d61779e70826c5a8]", "0x20")
+ self.bid128_to_binary80("3", "[489532211daeaef2ddc8baff5293207c]", "[68d7d61779e70826c5a7]", "0x20")
+ self.bid128_to_binary80("4", "[489532211daeaef2ddc8baff5293207c]", "[68d7d61779e70826c5a8]", "0x20")
+ self.bid128_to_binary80("0", "[495c74b2faa13f6a8511581c6fe81d94]", "[6a22ba910dc4bb90b1a8]", "0x20")
+ self.bid128_to_binary80("1", "[495c74b2faa13f6a8511581c6fe81d94]", "[6a22ba910dc4bb90b1a8]", "0x20")
+ self.bid128_to_binary80("2", "[495c74b2faa13f6a8511581c6fe81d94]", "[6a22ba910dc4bb90b1a9]", "0x20")
+ self.bid128_to_binary80("3", "[495c74b2faa13f6a8511581c6fe81d94]", "[6a22ba910dc4bb90b1a8]", "0x20")
+ self.bid128_to_binary80("4", "[495c74b2faa13f6a8511581c6fe81d94]", "[6a22ba910dc4bb90b1a8]", "0x20")
+ self.bid128_to_binary80("0", "[4a22e0fbc8d66e501c1086507d4286db]", "[6b6ca471b47aedefecb2]", "0x20")
+ self.bid128_to_binary80("1", "[4a22e0fbc8d66e501c1086507d4286db]", "[6b6ca471b47aedefecb2]", "0x20")
+ self.bid128_to_binary80("2", "[4a22e0fbc8d66e501c1086507d4286db]", "[6b6ca471b47aedefecb3]", "0x20")
+ self.bid128_to_binary80("3", "[4a22e0fbc8d66e501c1086507d4286db]", "[6b6ca471b47aedefecb2]", "0x20")
+ self.bid128_to_binary80("4", "[4a22e0fbc8d66e501c1086507d4286db]", "[6b6ca471b47aedefecb2]", "0x20")
+ self.bid128_to_binary80("0", "[4ae8373faa7de96f61a733b597b7bee7]", "[6cb393b34227b6f7f14e]", "0x20")
+ self.bid128_to_binary80("1", "[4ae8373faa7de96f61a733b597b7bee7]", "[6cb393b34227b6f7f14d]", "0x20")
+ self.bid128_to_binary80("2", "[4ae8373faa7de96f61a733b597b7bee7]", "[6cb393b34227b6f7f14e]", "0x20")
+ self.bid128_to_binary80("3", "[4ae8373faa7de96f61a733b597b7bee7]", "[6cb393b34227b6f7f14d]", "0x20")
+ self.bid128_to_binary80("4", "[4ae8373faa7de96f61a733b597b7bee7]", "[6cb393b34227b6f7f14e]", "0x20")
+ self.bid128_to_binary80("0", "[4bae650be3dbf18f2a2066b3f926bbc0]", "[6dfcf702223c8c38ecc9]", "0x20")
+ self.bid128_to_binary80("1", "[4bae650be3dbf18f2a2066b3f926bbc0]", "[6dfcf702223c8c38ecc8]", "0x20")
+ self.bid128_to_binary80("2", "[4bae650be3dbf18f2a2066b3f926bbc0]", "[6dfcf702223c8c38ecc9]", "0x20")
+ self.bid128_to_binary80("3", "[4bae650be3dbf18f2a2066b3f926bbc0]", "[6dfcf702223c8c38ecc8]", "0x20")
+ self.bid128_to_binary80("4", "[4bae650be3dbf18f2a2066b3f926bbc0]", "[6dfcf702223c8c38ecc9]", "0x20")
+ self.bid128_to_binary80("0", "[4c72b07b6a1371bdb662ebec5b456cfa]", "[6f439dca883570880447]", "0x20")
+ self.bid128_to_binary80("1", "[4c72b07b6a1371bdb662ebec5b456cfa]", "[6f439dca883570880446]", "0x20")
+ self.bid128_to_binary80("2", "[4c72b07b6a1371bdb662ebec5b456cfa]", "[6f439dca883570880447]", "0x20")
+ self.bid128_to_binary80("3", "[4c72b07b6a1371bdb662ebec5b456cfa]", "[6f439dca883570880446]", "0x20")
+ self.bid128_to_binary80("4", "[4c72b07b6a1371bdb662ebec5b456cfa]", "[6f439dca883570880447]", "0x20")
+ self.bid128_to_binary80("0", "[4d370f9474828de96c3a3fd21bbfd2c2]", "[7089b19faddd46a80900]", "0x20")
+ self.bid128_to_binary80("1", "[4d370f9474828de96c3a3fd21bbfd2c2]", "[7089b19faddd46a808ff]", "0x20")
+ self.bid128_to_binary80("2", "[4d370f9474828de96c3a3fd21bbfd2c2]", "[7089b19faddd46a80900]", "0x20")
+ self.bid128_to_binary80("3", "[4d370f9474828de96c3a3fd21bbfd2c2]", "[7089b19faddd46a808ff]", "0x20")
+ self.bid128_to_binary80("4", "[4d370f9474828de96c3a3fd21bbfd2c2]", "[7089b19faddd46a80900]", "0x20")
+ self.bid128_to_binary80("0", "[4dff402a82637f9794a4f5ff701923cf]", "[71d5ef57b8bfa4d07a10]", "0x20")
+ self.bid128_to_binary80("1", "[4dff402a82637f9794a4f5ff701923cf]", "[71d5ef57b8bfa4d07a0f]", "0x20")
+ self.bid128_to_binary80("2", "[4dff402a82637f9794a4f5ff701923cf]", "[71d5ef57b8bfa4d07a10]", "0x20")
+ self.bid128_to_binary80("3", "[4dff402a82637f9794a4f5ff701923cf]", "[71d5ef57b8bfa4d07a0f]", "0x20")
+ self.bid128_to_binary80("4", "[4dff402a82637f9794a4f5ff701923cf]", "[71d5ef57b8bfa4d07a10]", "0x20")
+ self.bid128_to_binary80("0", "[4ec47c4599356081c896d5ba69b1c664]", "[731da9e4f80ff5c067d0]", "0x20")
+ self.bid128_to_binary80("1", "[4ec47c4599356081c896d5ba69b1c664]", "[731da9e4f80ff5c067cf]", "0x20")
+ self.bid128_to_binary80("2", "[4ec47c4599356081c896d5ba69b1c664]", "[731da9e4f80ff5c067d0]", "0x20")
+ self.bid128_to_binary80("3", "[4ec47c4599356081c896d5ba69b1c664]", "[731da9e4f80ff5c067cf]", "0x20")
+ self.bid128_to_binary80("4", "[4ec47c4599356081c896d5ba69b1c664]", "[731da9e4f80ff5c067d0]", "0x20")
+ self.bid128_to_binary80("0", "[4f897462cb82078dba6c0ce57a3be482]", "[7464ba346f50e12a9380]", "0x20")
+ self.bid128_to_binary80("1", "[4f897462cb82078dba6c0ce57a3be482]", "[7464ba346f50e12a9380]", "0x20")
+ self.bid128_to_binary80("2", "[4f897462cb82078dba6c0ce57a3be482]", "[7464ba346f50e12a9381]", "0x20")
+ self.bid128_to_binary80("3", "[4f897462cb82078dba6c0ce57a3be482]", "[7464ba346f50e12a9380]", "0x20")
+ self.bid128_to_binary80("4", "[4f897462cb82078dba6c0ce57a3be482]", "[7464ba346f50e12a9380]", "0x20")
+ self.bid128_to_binary80("0", "[504e778e1bcaaf32a03f3efccf969ac0]", "[75abdaa7668a55975d1b]", "0x20")
+ self.bid128_to_binary80("1", "[504e778e1bcaaf32a03f3efccf969ac0]", "[75abdaa7668a55975d1a]", "0x20")
+ self.bid128_to_binary80("2", "[504e778e1bcaaf32a03f3efccf969ac0]", "[75abdaa7668a55975d1b]", "0x20")
+ self.bid128_to_binary80("3", "[504e778e1bcaaf32a03f3efccf969ac0]", "[75abdaa7668a55975d1a]", "0x20")
+ self.bid128_to_binary80("4", "[504e778e1bcaaf32a03f3efccf969ac0]", "[75abdaa7668a55975d1b]", "0x20")
+ self.bid128_to_binary80("0", "[5114f08334c35878250f1255f56e04b5]", "[76f5c91b83c057e3f92e]", "0x20")
+ self.bid128_to_binary80("1", "[5114f08334c35878250f1255f56e04b5]", "[76f5c91b83c057e3f92e]", "0x20")
+ self.bid128_to_binary80("2", "[5114f08334c35878250f1255f56e04b5]", "[76f5c91b83c057e3f92f]", "0x20")
+ self.bid128_to_binary80("3", "[5114f08334c35878250f1255f56e04b5]", "[76f5c91b83c057e3f92e]", "0x20")
+ self.bid128_to_binary80("4", "[5114f08334c35878250f1255f56e04b5]", "[76f5c91b83c057e3f92e]", "0x20")
+ self.bid128_to_binary80("0", "[51daf5e364ddad2015b2f27a01dd61c4]", "[783ebc0035b92f4371da]", "0x20")
+ self.bid128_to_binary80("1", "[51daf5e364ddad2015b2f27a01dd61c4]", "[783ebc0035b92f4371d9]", "0x20")
+ self.bid128_to_binary80("2", "[51daf5e364ddad2015b2f27a01dd61c4]", "[783ebc0035b92f4371da]", "0x20")
+ self.bid128_to_binary80("3", "[51daf5e364ddad2015b2f27a01dd61c4]", "[783ebc0035b92f4371d9]", "0x20")
+ self.bid128_to_binary80("4", "[51daf5e364ddad2015b2f27a01dd61c4]", "[783ebc0035b92f4371da]", "0x20")
+ self.bid128_to_binary80("0", "[529fb089aefff9c3300a431263dfe7fc]", "[7984f1eae7a5898c207f]", "0x20")
+ self.bid128_to_binary80("1", "[529fb089aefff9c3300a431263dfe7fc]", "[7984f1eae7a5898c207e]", "0x20")
+ self.bid128_to_binary80("2", "[529fb089aefff9c3300a431263dfe7fc]", "[7984f1eae7a5898c207f]", "0x20")
+ self.bid128_to_binary80("3", "[529fb089aefff9c3300a431263dfe7fc]", "[7984f1eae7a5898c207e]", "0x20")
+ self.bid128_to_binary80("4", "[529fb089aefff9c3300a431263dfe7fc]", "[7984f1eae7a5898c207f]", "0x20")
+ self.bid128_to_binary80("0", "[5364aeae349e703dcf4bebdb5548adee]", "[7accb2ab432b3008f867]", "0x20")
+ self.bid128_to_binary80("1", "[5364aeae349e703dcf4bebdb5548adee]", "[7accb2ab432b3008f866]", "0x20")
+ self.bid128_to_binary80("2", "[5364aeae349e703dcf4bebdb5548adee]", "[7accb2ab432b3008f867]", "0x20")
+ self.bid128_to_binary80("3", "[5364aeae349e703dcf4bebdb5548adee]", "[7accb2ab432b3008f866]", "0x20")
+ self.bid128_to_binary80("4", "[5364aeae349e703dcf4bebdb5548adee]", "[7accb2ab432b3008f867]", "0x20")
+ self.bid128_to_binary80("0", "[542b31a44735e52d2105254f770699cd]", "[7c168eedb252b2172a20]", "0x20")
+ self.bid128_to_binary80("1", "[542b31a44735e52d2105254f770699cd]", "[7c168eedb252b2172a20]", "0x20")
+ self.bid128_to_binary80("2", "[542b31a44735e52d2105254f770699cd]", "[7c168eedb252b2172a21]", "0x20")
+ self.bid128_to_binary80("3", "[542b31a44735e52d2105254f770699cd]", "[7c168eedb252b2172a20]", "0x20")
+ self.bid128_to_binary80("4", "[542b31a44735e52d2105254f770699cd]", "[7c168eedb252b2172a20]", "0x20")
+ self.bid128_to_binary80("0", "[54f05f3a50323388fa0769adcabe5231]", "[7d5da2e0a984a3bb1788]", "0x20")
+ self.bid128_to_binary80("1", "[54f05f3a50323388fa0769adcabe5231]", "[7d5da2e0a984a3bb1788]", "0x20")
+ self.bid128_to_binary80("2", "[54f05f3a50323388fa0769adcabe5231]", "[7d5da2e0a984a3bb1789]", "0x20")
+ self.bid128_to_binary80("3", "[54f05f3a50323388fa0769adcabe5231]", "[7d5da2e0a984a3bb1788]", "0x20")
+ self.bid128_to_binary80("4", "[54f05f3a50323388fa0769adcabe5231]", "[7d5da2e0a984a3bb1788]", "0x20")
+ self.bid128_to_binary80("0", "[55b64d78bc4b0f2b680eee7fdc0078bd]", "[7ea5f253b2f233b9b07a]", "0x20")
+ self.bid128_to_binary80("1", "[55b64d78bc4b0f2b680eee7fdc0078bd]", "[7ea5f253b2f233b9b07a]", "0x20")
+ self.bid128_to_binary80("2", "[55b64d78bc4b0f2b680eee7fdc0078bd]", "[7ea5f253b2f233b9b07b]", "0x20")
+ self.bid128_to_binary80("3", "[55b64d78bc4b0f2b680eee7fdc0078bd]", "[7ea5f253b2f233b9b07a]", "0x20")
+ self.bid128_to_binary80("4", "[55b64d78bc4b0f2b680eee7fdc0078bd]", "[7ea5f253b2f233b9b07a]", "0x20")
+ self.bid128_to_binary80("0", "[56863aa885cb1a6cecf38634ccf08e3a]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("1", "[56863aa885cb1a6cecf38634ccf08e3a]", "[7ffefffffffffffffffe]", "0x20")
+ self.bid128_to_binary80("2", "[56863aa885cb1a6cecf38634ccf08e3a]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("3", "[56863aa885cb1a6cecf38634ccf08e3a]", "[7ffefffffffffffffffe]", "0x20")
+ self.bid128_to_binary80("4", "[56863aa885cb1a6cecf38634ccf08e3a]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("0", "[56863aa885cb1a6cecf38634ccf08e3b]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("1", "[56863aa885cb1a6cecf38634ccf08e3b]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("2", "[56863aa885cb1a6cecf38634ccf08e3b]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("3", "[56863aa885cb1a6cecf38634ccf08e3b]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("4", "[56863aa885cb1a6cecf38634ccf08e3b]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("0", "[56863aa885cb1a6cecf3c0dd52bba8a7]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("1", "[56863aa885cb1a6cecf3c0dd52bba8a7]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("2", "[56863aa885cb1a6cecf3c0dd52bba8a7]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("3", "[56863aa885cb1a6cecf3c0dd52bba8a7]", "[7ffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("4", "[56863aa885cb1a6cecf3c0dd52bba8a7]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[56863aa885cb1a6cecf3c0dd52bba8a8]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("1", "[56863aa885cb1a6cecf3c0dd52bba8a8]", "[7ffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("2", "[56863aa885cb1a6cecf3c0dd52bba8a8]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("3", "[56863aa885cb1a6cecf3c0dd52bba8a8]", "[7ffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("4", "[56863aa885cb1a6cecf3c0dd52bba8a8]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[5fffed09bead87c0378d8e63ffffffff]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("1", "[5fffed09bead87c0378d8e63ffffffff]", "[7ffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("2", "[5fffed09bead87c0378d8e63ffffffff]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("3", "[5fffed09bead87c0378d8e63ffffffff]", "[7ffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("4", "[5fffed09bead87c0378d8e63ffffffff]", "[7fff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[78000000000000000000000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[78000000000000000000000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[78000000000000000000000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[78000000000000000000000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[78000000000000000000000000000000]", "[7fff8000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[7c003080000000000000000000000000]", "[7ffff080000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[7e003080000000000000000000000000]", "[7ffff080000000000000]", "0x01")
+ self.bid128_to_binary80("0", "[80000000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[80000000000000000000000000000001]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[80000000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[80000000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[80000000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[8000314dc6448d9338c15b09ffffffff]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[8000314dc6448d9338c15b09ffffffff]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[8000314dc6448d9338c15b09ffffffff]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[8000314dc6448d9338c15b09ffffffff]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[8000314dc6448d9338c15b09ffffffff]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[80420000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[80420000000000000000000000000001]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[80420000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[80420000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[80420000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[80440000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[80440000000000000000000000000001]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[80440000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[80440000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[80440000000000000000000000000001]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[894fea2dc6a2746448fc20afb172c2d1]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[894fea2dc6a2746448fc20afb172c2d1]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[894fea2dc6a2746448fc20afb172c2d1]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[894fea2dc6a2746448fc20afb172c2d1]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[894fea2dc6a2746448fc20afb172c2d1]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[8950b3b8e2eda91a232dd950102978db]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("1", "[8950b3b8e2eda91a232dd950102978db]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("2", "[8950b3b8e2eda91a232dd950102978db]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("3", "[8950b3b8e2eda91a232dd950102978db]", "[80000000000000000000]", "0x30")
+ self.bid128_to_binary80("4", "[8950b3b8e2eda91a232dd950102978db]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("0", "[895211f8e37e2a829d1e2f54ce6a8c16]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("1", "[895211f8e37e2a829d1e2f54ce6a8c16]", "[80000000000000000002]", "0x30")
+ self.bid128_to_binary80("2", "[895211f8e37e2a829d1e2f54ce6a8c16]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("3", "[895211f8e37e2a829d1e2f54ce6a8c16]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("4", "[895211f8e37e2a829d1e2f54ce6a8c16]", "[80000000000000000001]", "0x30")
+ self.bid128_to_binary80("0", "[89759e6944e776fd5344acd442dc58c2]", "[80002000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[89759e6944e776fd5344acd442dc58c2]", "[80002000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[89759e6944e776fd5344acd442dc58c2]", "[80001fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("3", "[89759e6944e776fd5344acd442dc58c2]", "[80001fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("4", "[89759e6944e776fd5344acd442dc58c2]", "[80002000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[89759e6944e776fd5344acd442dc58c3]", "[80002000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[89759e6944e776fd5344acd442dc58c3]", "[80002000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[89759e6944e776fd5344acd442dc58c3]", "[80001fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("3", "[89759e6944e776fd5344acd442dc58c3]", "[80001fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("4", "[89759e6944e776fd5344acd442dc58c3]", "[80002000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[897652e1da94b165dd742290da2c11c0]", "[80003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("1", "[897652e1da94b165dd742290da2c11c0]", "[80004000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[897652e1da94b165dd742290da2c11c0]", "[80003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("3", "[897652e1da94b165dd742290da2c11c0]", "[80003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("4", "[897652e1da94b165dd742290da2c11c0]", "[80003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("0", "[897652e1da94b165dd742290da2c11c1]", "[80004000000000000000]", "0x30")
+ self.bid128_to_binary80("1", "[897652e1da94b165dd742290da2c11c1]", "[80004000000000000000]", "0x30")
+ self.bid128_to_binary80("2", "[897652e1da94b165dd742290da2c11c1]", "[80003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("3", "[897652e1da94b165dd742290da2c11c1]", "[80003fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("4", "[897652e1da94b165dd742290da2c11c1]", "[80004000000000000000]", "0x30")
+ self.bid128_to_binary80("0", "[8976a5c3b52962cbbae990a91eaae918]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[8976a5c3b52962cbbae990a91eaae918]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("2", "[8976a5c3b52962cbbae990a91eaae918]", "[80007fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("3", "[8976a5c3b52962cbbae990a91eaae918]", "[80007fffffffffffffff]", "0x30")
+ self.bid128_to_binary80("4", "[8976a5c3b52962cbbae990a91eaae918]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[8976a5c3b52962cbbae990a91eaae919]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[8976a5c3b52962cbbae990a91eaae919]", "[80018000000000000001]", "0x20")
+ self.bid128_to_binary80("2", "[8976a5c3b52962cbbae990a91eaae919]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("3", "[8976a5c3b52962cbbae990a91eaae919]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[8976a5c3b52962cbbae990a91eaae919]", "[80018000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[89774b876a52c59775d321523d55d231]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[89774b876a52c59775d321523d55d231]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("2", "[89774b876a52c59775d321523d55d231]", "[8001ffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("3", "[89774b876a52c59775d321523d55d231]", "[8001ffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("4", "[89774b876a52c59775d321523d55d231]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[89774b876a52c59775d321523d55d232]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("1", "[89774b876a52c59775d321523d55d232]", "[80028000000000000001]", "0x20")
+ self.bid128_to_binary80("2", "[89774b876a52c59775d321523d55d232]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("3", "[89774b876a52c59775d321523d55d232]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("4", "[89774b876a52c59775d321523d55d232]", "[80028000000000000000]", "0x20")
+ self.bid128_to_binary80("0", "[8a1608de6e517cec4d063b4033534b93]", "[8106b8d2e601bc949eb4]", "0x20")
+ self.bid128_to_binary80("1", "[8a1608de6e517cec4d063b4033534b93]", "[8106b8d2e601bc949eb5]", "0x20")
+ self.bid128_to_binary80("2", "[8a1608de6e517cec4d063b4033534b93]", "[8106b8d2e601bc949eb4]", "0x20")
+ self.bid128_to_binary80("3", "[8a1608de6e517cec4d063b4033534b93]", "[8106b8d2e601bc949eb4]", "0x20")
+ self.bid128_to_binary80("4", "[8a1608de6e517cec4d063b4033534b93]", "[8106b8d2e601bc949eb4]", "0x20")
+ self.bid128_to_binary80("0", "[8adc140bb4fde03ed98e94048816a20f]", "[8250befdb31cfd5e7899]", "0x20")
+ self.bid128_to_binary80("1", "[8adc140bb4fde03ed98e94048816a20f]", "[8250befdb31cfd5e789a]", "0x20")
+ self.bid128_to_binary80("2", "[8adc140bb4fde03ed98e94048816a20f]", "[8250befdb31cfd5e7899]", "0x20")
+ self.bid128_to_binary80("3", "[8adc140bb4fde03ed98e94048816a20f]", "[8250befdb31cfd5e7899]", "0x20")
+ self.bid128_to_binary80("4", "[8adc140bb4fde03ed98e94048816a20f]", "[8250befdb31cfd5e7899]", "0x20")
+ self.bid128_to_binary80("0", "[8ba0edfa621b083e31ec4093caad1626]", "[8399cf5424ba6f9d8564]", "0x20")
+ self.bid128_to_binary80("1", "[8ba0edfa621b083e31ec4093caad1626]", "[8399cf5424ba6f9d8564]", "0x20")
+ self.bid128_to_binary80("2", "[8ba0edfa621b083e31ec4093caad1626]", "[8399cf5424ba6f9d8563]", "0x20")
+ self.bid128_to_binary80("3", "[8ba0edfa621b083e31ec4093caad1626]", "[8399cf5424ba6f9d8563]", "0x20")
+ self.bid128_to_binary80("4", "[8ba0edfa621b083e31ec4093caad1626]", "[8399cf5424ba6f9d8564]", "0x20")
+ self.bid128_to_binary80("0", "[8c66e713987ddd634b1c13c0fae4df45]", "[84e2b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("1", "[8c66e713987ddd634b1c13c0fae4df45]", "[84e2b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("2", "[8c66e713987ddd634b1c13c0fae4df45]", "[84e2b814d2bb660b0ba8]", "0x20")
+ self.bid128_to_binary80("3", "[8c66e713987ddd634b1c13c0fae4df45]", "[84e2b814d2bb660b0ba8]", "0x20")
+ self.bid128_to_binary80("4", "[8c66e713987ddd634b1c13c0fae4df45]", "[84e2b814d2bb660b0ba9]", "0x20")
+ self.bid128_to_binary80("0", "[8d2e0f2f045d5cf8d10333e8e5d8b2a1]", "[862add34123add9d5e92]", "0x20")
+ self.bid128_to_binary80("1", "[8d2e0f2f045d5cf8d10333e8e5d8b2a1]", "[862add34123add9d5e92]", "0x20")
+ self.bid128_to_binary80("2", "[8d2e0f2f045d5cf8d10333e8e5d8b2a1]", "[862add34123add9d5e91]", "0x20")
+ self.bid128_to_binary80("3", "[8d2e0f2f045d5cf8d10333e8e5d8b2a1]", "[862add34123add9d5e91]", "0x20")
+ self.bid128_to_binary80("4", "[8d2e0f2f045d5cf8d10333e8e5d8b2a1]", "[862add34123add9d5e92]", "0x20")
+ self.bid128_to_binary80("0", "[8df205578f8f6ed9fc6160458596b553]", "[876ee3b89e6d10843948]", "0x20")
+ self.bid128_to_binary80("1", "[8df205578f8f6ed9fc6160458596b553]", "[876ee3b89e6d10843949]", "0x20")
+ self.bid128_to_binary80("2", "[8df205578f8f6ed9fc6160458596b553]", "[876ee3b89e6d10843948]", "0x20")
+ self.bid128_to_binary80("3", "[8df205578f8f6ed9fc6160458596b553]", "[876ee3b89e6d10843948]", "0x20")
+ self.bid128_to_binary80("4", "[8df205578f8f6ed9fc6160458596b553]", "[876ee3b89e6d10843948]", "0x20")
+ self.bid128_to_binary80("0", "[8eb802f9ec8444898eea1f25af029070]", "[88b6e805b73d2e2cba82]", "0x20")
+ self.bid128_to_binary80("1", "[8eb802f9ec8444898eea1f25af029070]", "[88b6e805b73d2e2cba83]", "0x20")
+ self.bid128_to_binary80("2", "[8eb802f9ec8444898eea1f25af029070]", "[88b6e805b73d2e2cba82]", "0x20")
+ self.bid128_to_binary80("3", "[8eb802f9ec8444898eea1f25af029070]", "[88b6e805b73d2e2cba82]", "0x20")
+ self.bid128_to_binary80("4", "[8eb802f9ec8444898eea1f25af029070]", "[88b6e805b73d2e2cba82]", "0x20")
+ self.bid128_to_binary80("0", "[8f7de26eb0dca72b9f9b674916a581d4]", "[8a03d6ef38bd8606cb67]", "0x20")
+ self.bid128_to_binary80("1", "[8f7de26eb0dca72b9f9b674916a581d4]", "[8a03d6ef38bd8606cb67]", "0x20")
+ self.bid128_to_binary80("2", "[8f7de26eb0dca72b9f9b674916a581d4]", "[8a03d6ef38bd8606cb66]", "0x20")
+ self.bid128_to_binary80("3", "[8f7de26eb0dca72b9f9b674916a581d4]", "[8a03d6ef38bd8606cb66]", "0x20")
+ self.bid128_to_binary80("4", "[8f7de26eb0dca72b9f9b674916a581d4]", "[8a03d6ef38bd8606cb67]", "0x20")
+ self.bid128_to_binary80("0", "[9043060e4f03be06876c80dee7a4242b]", "[8b4bd583681b8b9265a7]", "0x20")
+ self.bid128_to_binary80("1", "[9043060e4f03be06876c80dee7a4242b]", "[8b4bd583681b8b9265a8]", "0x20")
+ self.bid128_to_binary80("2", "[9043060e4f03be06876c80dee7a4242b]", "[8b4bd583681b8b9265a7]", "0x20")
+ self.bid128_to_binary80("3", "[9043060e4f03be06876c80dee7a4242b]", "[8b4bd583681b8b9265a7]", "0x20")
+ self.bid128_to_binary80("4", "[9043060e4f03be06876c80dee7a4242b]", "[8b4bd583681b8b9265a7]", "0x20")
+ self.bid128_to_binary80("0", "[910a02f64d11564ff06e96056f6785cb]", "[8c91b08b626f4f55a7db]", "0x20")
+ self.bid128_to_binary80("1", "[910a02f64d11564ff06e96056f6785cb]", "[8c91b08b626f4f55a7db]", "0x20")
+ self.bid128_to_binary80("2", "[910a02f64d11564ff06e96056f6785cb]", "[8c91b08b626f4f55a7da]", "0x20")
+ self.bid128_to_binary80("3", "[910a02f64d11564ff06e96056f6785cb]", "[8c91b08b626f4f55a7da]", "0x20")
+ self.bid128_to_binary80("4", "[910a02f64d11564ff06e96056f6785cb]", "[8c91b08b626f4f55a7db]", "0x20")
+ self.bid128_to_binary80("0", "[91ce11d052112d3b66d0ff9f9544ba9f]", "[8dd9c22a0c07443d8509]", "0x20")
+ self.bid128_to_binary80("1", "[91ce11d052112d3b66d0ff9f9544ba9f]", "[8dd9c22a0c07443d850a]", "0x20")
+ self.bid128_to_binary80("2", "[91ce11d052112d3b66d0ff9f9544ba9f]", "[8dd9c22a0c07443d8509]", "0x20")
+ self.bid128_to_binary80("3", "[91ce11d052112d3b66d0ff9f9544ba9f]", "[8dd9c22a0c07443d8509]", "0x20")
+ self.bid128_to_binary80("4", "[91ce11d052112d3b66d0ff9f9544ba9f]", "[8dd9c22a0c07443d8509]", "0x20")
+ self.bid128_to_binary80("0", "[929344328e3449a3645b2f7d5ee02971]", "[8f23a18e82a04ae2b8d8]", "0x20")
+ self.bid128_to_binary80("1", "[929344328e3449a3645b2f7d5ee02971]", "[8f23a18e82a04ae2b8d8]", "0x20")
+ self.bid128_to_binary80("2", "[929344328e3449a3645b2f7d5ee02971]", "[8f23a18e82a04ae2b8d7]", "0x20")
+ self.bid128_to_binary80("3", "[929344328e3449a3645b2f7d5ee02971]", "[8f23a18e82a04ae2b8d7]", "0x20")
+ self.bid128_to_binary80("4", "[929344328e3449a3645b2f7d5ee02971]", "[8f23a18e82a04ae2b8d8]", "0x20")
+ self.bid128_to_binary80("0", "[93593c9c6cc3fe00e27efe252290b994]", "[906c9044d76ea5154292]", "0x20")
+ self.bid128_to_binary80("1", "[93593c9c6cc3fe00e27efe252290b994]", "[906c9044d76ea5154293]", "0x20")
+ self.bid128_to_binary80("2", "[93593c9c6cc3fe00e27efe252290b994]", "[906c9044d76ea5154292]", "0x20")
+ self.bid128_to_binary80("3", "[93593c9c6cc3fe00e27efe252290b994]", "[906c9044d76ea5154292]", "0x20")
+ self.bid128_to_binary80("4", "[93593c9c6cc3fe00e27efe252290b994]", "[906c9044d76ea5154292]", "0x20")
+ self.bid128_to_binary80("0", "[941e2ee30c60a27fe2f19ce2a1a0697e]", "[91b29c492ec2d86bb623]", "0x20")
+ self.bid128_to_binary80("1", "[941e2ee30c60a27fe2f19ce2a1a0697e]", "[91b29c492ec2d86bb624]", "0x20")
+ self.bid128_to_binary80("2", "[941e2ee30c60a27fe2f19ce2a1a0697e]", "[91b29c492ec2d86bb623]", "0x20")
+ self.bid128_to_binary80("3", "[941e2ee30c60a27fe2f19ce2a1a0697e]", "[91b29c492ec2d86bb623]", "0x20")
+ self.bid128_to_binary80("4", "[941e2ee30c60a27fe2f19ce2a1a0697e]", "[91b29c492ec2d86bb623]", "0x20")
+ self.bid128_to_binary80("0", "[94e4086aff02b07b02a142368f48dcc1]", "[92f8cd418f9c6660baa8]", "0x20")
+ self.bid128_to_binary80("1", "[94e4086aff02b07b02a142368f48dcc1]", "[92f8cd418f9c6660baa9]", "0x20")
+ self.bid128_to_binary80("2", "[94e4086aff02b07b02a142368f48dcc1]", "[92f8cd418f9c6660baa8]", "0x20")
+ self.bid128_to_binary80("3", "[94e4086aff02b07b02a142368f48dcc1]", "[92f8cd418f9c6660baa8]", "0x20")
+ self.bid128_to_binary80("4", "[94e4086aff02b07b02a142368f48dcc1]", "[92f8cd418f9c6660baa8]", "0x20")
+ self.bid128_to_binary80("0", "[95a9957e61200e473897b36db2c36801]", "[9443e204e0a9e0d2fcd4]", "0x20")
+ self.bid128_to_binary80("1", "[95a9957e61200e473897b36db2c36801]", "[9443e204e0a9e0d2fcd4]", "0x20")
+ self.bid128_to_binary80("2", "[95a9957e61200e473897b36db2c36801]", "[9443e204e0a9e0d2fcd3]", "0x20")
+ self.bid128_to_binary80("3", "[95a9957e61200e473897b36db2c36801]", "[9443e204e0a9e0d2fcd3]", "0x20")
+ self.bid128_to_binary80("4", "[95a9957e61200e473897b36db2c36801]", "[9443e204e0a9e0d2fcd4]", "0x20")
+ self.bid128_to_binary80("0", "[966eee4f6511994862ab5bda8aaa32e3]", "[958bf2ebc11ec085cb04]", "0x20")
+ self.bid128_to_binary80("1", "[966eee4f6511994862ab5bda8aaa32e3]", "[958bf2ebc11ec085cb05]", "0x20")
+ self.bid128_to_binary80("2", "[966eee4f6511994862ab5bda8aaa32e3]", "[958bf2ebc11ec085cb04]", "0x20")
+ self.bid128_to_binary80("3", "[966eee4f6511994862ab5bda8aaa32e3]", "[958bf2ebc11ec085cb04]", "0x20")
+ self.bid128_to_binary80("4", "[966eee4f6511994862ab5bda8aaa32e3]", "[958bf2ebc11ec085cb04]", "0x20")
+ self.bid128_to_binary80("0", "[973610ded4d35875ad1d344c54d3238f]", "[96d49d3f059751b4dc5b]", "0x20")
+ self.bid128_to_binary80("1", "[973610ded4d35875ad1d344c54d3238f]", "[96d49d3f059751b4dc5c]", "0x20")
+ self.bid128_to_binary80("2", "[973610ded4d35875ad1d344c54d3238f]", "[96d49d3f059751b4dc5b]", "0x20")
+ self.bid128_to_binary80("3", "[973610ded4d35875ad1d344c54d3238f]", "[96d49d3f059751b4dc5b]", "0x20")
+ self.bid128_to_binary80("4", "[973610ded4d35875ad1d344c54d3238f]", "[96d49d3f059751b4dc5b]", "0x20")
+ self.bid128_to_binary80("0", "[97fa144813eb8c22fe4327aeb98d9b88]", "[981a8a4912ba2c69c8c3]", "0x20")
+ self.bid128_to_binary80("1", "[97fa144813eb8c22fe4327aeb98d9b88]", "[981a8a4912ba2c69c8c3]", "0x20")
+ self.bid128_to_binary80("2", "[97fa144813eb8c22fe4327aeb98d9b88]", "[981a8a4912ba2c69c8c2]", "0x20")
+ self.bid128_to_binary80("3", "[97fa144813eb8c22fe4327aeb98d9b88]", "[981a8a4912ba2c69c8c2]", "0x20")
+ self.bid128_to_binary80("4", "[97fa144813eb8c22fe4327aeb98d9b88]", "[981a8a4912ba2c69c8c3]", "0x20")
+ self.bid128_to_binary80("0", "[98c00441b6aab7c984691bb38edd25bb]", "[9960d44f2eb297f795b4]", "0x20")
+ self.bid128_to_binary80("1", "[98c00441b6aab7c984691bb38edd25bb]", "[9960d44f2eb297f795b4]", "0x20")
+ self.bid128_to_binary80("2", "[98c00441b6aab7c984691bb38edd25bb]", "[9960d44f2eb297f795b3]", "0x20")
+ self.bid128_to_binary80("3", "[98c00441b6aab7c984691bb38edd25bb]", "[9960d44f2eb297f795b3]", "0x20")
+ self.bid128_to_binary80("4", "[98c00441b6aab7c984691bb38edd25bb]", "[9960d44f2eb297f795b4]", "0x20")
+ self.bid128_to_binary80("0", "[99858c7d8e608d2c7f7b0920105d0fe6]", "[9aace2084fb2bfb88b3a]", "0x20")
+ self.bid128_to_binary80("1", "[99858c7d8e608d2c7f7b0920105d0fe6]", "[9aace2084fb2bfb88b3a]", "0x20")
+ self.bid128_to_binary80("2", "[99858c7d8e608d2c7f7b0920105d0fe6]", "[9aace2084fb2bfb88b39]", "0x20")
+ self.bid128_to_binary80("3", "[99858c7d8e608d2c7f7b0920105d0fe6]", "[9aace2084fb2bfb88b39]", "0x20")
+ self.bid128_to_binary80("4", "[99858c7d8e608d2c7f7b0920105d0fe6]", "[9aace2084fb2bfb88b3a]", "0x20")
+ self.bid128_to_binary80("0", "[9a4a6bd7c82b340a8e83d565bb0b30ad]", "[9bf3e0dd554106974a8e]", "0x20")
+ self.bid128_to_binary80("1", "[9a4a6bd7c82b340a8e83d565bb0b30ad]", "[9bf3e0dd554106974a8f]", "0x20")
+ self.bid128_to_binary80("2", "[9a4a6bd7c82b340a8e83d565bb0b30ad]", "[9bf3e0dd554106974a8e]", "0x20")
+ self.bid128_to_binary80("3", "[9a4a6bd7c82b340a8e83d565bb0b30ad]", "[9bf3e0dd554106974a8e]", "0x20")
+ self.bid128_to_binary80("4", "[9a4a6bd7c82b340a8e83d565bb0b30ad]", "[9bf3e0dd554106974a8e]", "0x20")
+ self.bid128_to_binary80("0", "[9b102fccec45d00920c1bf226b5d70ec]", "[9d3bb645fa9b8d3d6173]", "0x20")
+ self.bid128_to_binary80("1", "[9b102fccec45d00920c1bf226b5d70ec]", "[9d3bb645fa9b8d3d6173]", "0x20")
+ self.bid128_to_binary80("2", "[9b102fccec45d00920c1bf226b5d70ec]", "[9d3bb645fa9b8d3d6172]", "0x20")
+ self.bid128_to_binary80("3", "[9b102fccec45d00920c1bf226b5d70ec]", "[9d3bb645fa9b8d3d6172]", "0x20")
+ self.bid128_to_binary80("4", "[9b102fccec45d00920c1bf226b5d70ec]", "[9d3bb645fa9b8d3d6173]", "0x20")
+ self.bid128_to_binary80("0", "[9bd615a4163c699a1ac831d4f9e0ab4c]", "[9e8396e9eee3c5394181]", "0x20")
+ self.bid128_to_binary80("1", "[9bd615a4163c699a1ac831d4f9e0ab4c]", "[9e8396e9eee3c5394182]", "0x20")
+ self.bid128_to_binary80("2", "[9bd615a4163c699a1ac831d4f9e0ab4c]", "[9e8396e9eee3c5394181]", "0x20")
+ self.bid128_to_binary80("3", "[9bd615a4163c699a1ac831d4f9e0ab4c]", "[9e8396e9eee3c5394181]", "0x20")
+ self.bid128_to_binary80("4", "[9bd615a4163c699a1ac831d4f9e0ab4c]", "[9e8396e9eee3c5394181]", "0x20")
+ self.bid128_to_binary80("0", "[9c9bc62be5e093c98d94df951da14185]", "[9fcd90cd3bb087f93e14]", "0x20")
+ self.bid128_to_binary80("1", "[9c9bc62be5e093c98d94df951da14185]", "[9fcd90cd3bb087f93e15]", "0x20")
+ self.bid128_to_binary80("2", "[9c9bc62be5e093c98d94df951da14185]", "[9fcd90cd3bb087f93e14]", "0x20")
+ self.bid128_to_binary80("3", "[9c9bc62be5e093c98d94df951da14185]", "[9fcd90cd3bb087f93e14]", "0x20")
+ self.bid128_to_binary80("4", "[9c9bc62be5e093c98d94df951da14185]", "[9fcd90cd3bb087f93e14]", "0x20")
+ self.bid128_to_binary80("0", "[9d618c019d7853f67e1c384723bf98a3]", "[a115e6e57f95928a45dc]", "0x20")
+ self.bid128_to_binary80("1", "[9d618c019d7853f67e1c384723bf98a3]", "[a115e6e57f95928a45dd]", "0x20")
+ self.bid128_to_binary80("2", "[9d618c019d7853f67e1c384723bf98a3]", "[a115e6e57f95928a45dc]", "0x20")
+ self.bid128_to_binary80("3", "[9d618c019d7853f67e1c384723bf98a3]", "[a115e6e57f95928a45dc]", "0x20")
+ self.bid128_to_binary80("4", "[9d618c019d7853f67e1c384723bf98a3]", "[a115e6e57f95928a45dc]", "0x20")
+ self.bid128_to_binary80("0", "[9e26d5814eea163801742cccf29ee933]", "[a25de3a8b6d9618be3f4]", "0x20")
+ self.bid128_to_binary80("1", "[9e26d5814eea163801742cccf29ee933]", "[a25de3a8b6d9618be3f4]", "0x20")
+ self.bid128_to_binary80("2", "[9e26d5814eea163801742cccf29ee933]", "[a25de3a8b6d9618be3f3]", "0x20")
+ self.bid128_to_binary80("3", "[9e26d5814eea163801742cccf29ee933]", "[a25de3a8b6d9618be3f3]", "0x20")
+ self.bid128_to_binary80("4", "[9e26d5814eea163801742cccf29ee933]", "[a25de3a8b6d9618be3f4]", "0x20")
+ self.bid128_to_binary80("0", "[9eec2559dfa7694fbaf35c082e0a61cb]", "[a3a491ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("1", "[9eec2559dfa7694fbaf35c082e0a61cb]", "[a3a491ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("2", "[9eec2559dfa7694fbaf35c082e0a61cb]", "[a3a491ab9a310597c7d0]", "0x20")
+ self.bid128_to_binary80("3", "[9eec2559dfa7694fbaf35c082e0a61cb]", "[a3a491ab9a310597c7d0]", "0x20")
+ self.bid128_to_binary80("4", "[9eec2559dfa7694fbaf35c082e0a61cb]", "[a3a491ab9a310597c7d1]", "0x20")
+ self.bid128_to_binary80("0", "[9fb20bc8ccb8a620dc03628d842c1f96]", "[a4eba8196d6804ae101c]", "0x20")
+ self.bid128_to_binary80("1", "[9fb20bc8ccb8a620dc03628d842c1f96]", "[a4eba8196d6804ae101c]", "0x20")
+ self.bid128_to_binary80("2", "[9fb20bc8ccb8a620dc03628d842c1f96]", "[a4eba8196d6804ae101b]", "0x20")
+ self.bid128_to_binary80("3", "[9fb20bc8ccb8a620dc03628d842c1f96]", "[a4eba8196d6804ae101b]", "0x20")
+ self.bid128_to_binary80("4", "[9fb20bc8ccb8a620dc03628d842c1f96]", "[a4eba8196d6804ae101c]", "0x20")
+ self.bid128_to_binary80("0", "[a0778506af243c233a8ccc79313276c1]", "[a635fdb61154f776da74]", "0x20")
+ self.bid128_to_binary80("1", "[a0778506af243c233a8ccc79313276c1]", "[a635fdb61154f776da75]", "0x20")
+ self.bid128_to_binary80("2", "[a0778506af243c233a8ccc79313276c1]", "[a635fdb61154f776da74]", "0x20")
+ self.bid128_to_binary80("3", "[a0778506af243c233a8ccc79313276c1]", "[a635fdb61154f776da74]", "0x20")
+ self.bid128_to_binary80("4", "[a0778506af243c233a8ccc79313276c1]", "[a635fdb61154f776da74]", "0x20")
+ self.bid128_to_binary80("0", "[a13d27928eea037c4bd91a1a2198a0b8]", "[a77eb042d3aa0dc1fffa]", "0x20")
+ self.bid128_to_binary80("1", "[a13d27928eea037c4bd91a1a2198a0b8]", "[a77eb042d3aa0dc1fffa]", "0x20")
+ self.bid128_to_binary80("2", "[a13d27928eea037c4bd91a1a2198a0b8]", "[a77eb042d3aa0dc1fff9]", "0x20")
+ self.bid128_to_binary80("3", "[a13d27928eea037c4bd91a1a2198a0b8]", "[a77eb042d3aa0dc1fff9]", "0x20")
+ self.bid128_to_binary80("4", "[a13d27928eea037c4bd91a1a2198a0b8]", "[a77eb042d3aa0dc1fffa]", "0x20")
+ self.bid128_to_binary80("0", "[a2026053ffacb2f9b272d15b030897f0]", "[a8c5d21aef06f21dcdc6]", "0x20")
+ self.bid128_to_binary80("1", "[a2026053ffacb2f9b272d15b030897f0]", "[a8c5d21aef06f21dcdc7]", "0x20")
+ self.bid128_to_binary80("2", "[a2026053ffacb2f9b272d15b030897f0]", "[a8c5d21aef06f21dcdc6]", "0x20")
+ self.bid128_to_binary80("3", "[a2026053ffacb2f9b272d15b030897f0]", "[a8c5d21aef06f21dcdc6]", "0x20")
+ self.bid128_to_binary80("4", "[a2026053ffacb2f9b272d15b030897f0]", "[a8c5d21aef06f21dcdc6]", "0x20")
+ self.bid128_to_binary80("0", "[a2c81f040c0c0ce48a4f1bffdf81b35f]", "[aa0cf76ef12b2f87b39a]", "0x20")
+ self.bid128_to_binary80("1", "[a2c81f040c0c0ce48a4f1bffdf81b35f]", "[aa0cf76ef12b2f87b39b]", "0x20")
+ self.bid128_to_binary80("2", "[a2c81f040c0c0ce48a4f1bffdf81b35f]", "[aa0cf76ef12b2f87b39a]", "0x20")
+ self.bid128_to_binary80("3", "[a2c81f040c0c0ce48a4f1bffdf81b35f]", "[aa0cf76ef12b2f87b39a]", "0x20")
+ self.bid128_to_binary80("4", "[a2c81f040c0c0ce48a4f1bffdf81b35f]", "[aa0cf76ef12b2f87b39a]", "0x20")
+ self.bid128_to_binary80("0", "[a38d9e307736485df7386eec30e41269]", "[ab569711acdd4fd11dec]", "0x20")
+ self.bid128_to_binary80("1", "[a38d9e307736485df7386eec30e41269]", "[ab569711acdd4fd11ded]", "0x20")
+ self.bid128_to_binary80("2", "[a38d9e307736485df7386eec30e41269]", "[ab569711acdd4fd11dec]", "0x20")
+ self.bid128_to_binary80("3", "[a38d9e307736485df7386eec30e41269]", "[ab569711acdd4fd11dec]", "0x20")
+ self.bid128_to_binary80("4", "[a38d9e307736485df7386eec30e41269]", "[ab569711acdd4fd11dec]", "0x20")
+ self.bid128_to_binary80("0", "[a452784c29ed0c214fddda23cc6ffbb1]", "[ac9da07b3bec008b8716]", "0x20")
+ self.bid128_to_binary80("1", "[a452784c29ed0c214fddda23cc6ffbb1]", "[ac9da07b3bec008b8717]", "0x20")
+ self.bid128_to_binary80("2", "[a452784c29ed0c214fddda23cc6ffbb1]", "[ac9da07b3bec008b8716]", "0x20")
+ self.bid128_to_binary80("3", "[a452784c29ed0c214fddda23cc6ffbb1]", "[ac9da07b3bec008b8716]", "0x20")
+ self.bid128_to_binary80("4", "[a452784c29ed0c214fddda23cc6ffbb1]", "[ac9da07b3bec008b8716]", "0x20")
+ self.bid128_to_binary80("0", "[a518d007d93168d2dc3d4c738e3f84fd]", "[ade6fdc3197909865e04]", "0x20")
+ self.bid128_to_binary80("1", "[a518d007d93168d2dc3d4c738e3f84fd]", "[ade6fdc3197909865e04]", "0x20")
+ self.bid128_to_binary80("2", "[a518d007d93168d2dc3d4c738e3f84fd]", "[ade6fdc3197909865e03]", "0x20")
+ self.bid128_to_binary80("3", "[a518d007d93168d2dc3d4c738e3f84fd]", "[ade6fdc3197909865e03]", "0x20")
+ self.bid128_to_binary80("4", "[a518d007d93168d2dc3d4c738e3f84fd]", "[ade6fdc3197909865e04]", "0x20")
+ self.bid128_to_binary80("0", "[a5de373610d172dfb4ad32f50a819928]", "[af2df65494340f01764e]", "0x20")
+ self.bid128_to_binary80("1", "[a5de373610d172dfb4ad32f50a819928]", "[af2df65494340f01764e]", "0x20")
+ self.bid128_to_binary80("2", "[a5de373610d172dfb4ad32f50a819928]", "[af2df65494340f01764d]", "0x20")
+ self.bid128_to_binary80("3", "[a5de373610d172dfb4ad32f50a819928]", "[af2df65494340f01764d]", "0x20")
+ self.bid128_to_binary80("4", "[a5de373610d172dfb4ad32f50a819928]", "[af2df65494340f01764e]", "0x20")
+ self.bid128_to_binary80("0", "[a6a4030878f1c9746bb07dd96f7a8270]", "[b072c5fbb2eb247b1c2a]", "0x20")
+ self.bid128_to_binary80("1", "[a6a4030878f1c9746bb07dd96f7a8270]", "[b072c5fbb2eb247b1c2b]", "0x20")
+ self.bid128_to_binary80("2", "[a6a4030878f1c9746bb07dd96f7a8270]", "[b072c5fbb2eb247b1c2a]", "0x20")
+ self.bid128_to_binary80("3", "[a6a4030878f1c9746bb07dd96f7a8270]", "[b072c5fbb2eb247b1c2a]", "0x20")
+ self.bid128_to_binary80("4", "[a6a4030878f1c9746bb07dd96f7a8270]", "[b072c5fbb2eb247b1c2a]", "0x20")
+ self.bid128_to_binary80("0", "[a7682c2979e68825a57c2c20753246b1]", "[b1bc83cb06c69159bb30]", "0x20")
+ self.bid128_to_binary80("1", "[a7682c2979e68825a57c2c20753246b1]", "[b1bc83cb06c69159bb30]", "0x20")
+ self.bid128_to_binary80("2", "[a7682c2979e68825a57c2c20753246b1]", "[b1bc83cb06c69159bb2f]", "0x20")
+ self.bid128_to_binary80("3", "[a7682c2979e68825a57c2c20753246b1]", "[b1bc83cb06c69159bb2f]", "0x20")
+ self.bid128_to_binary80("4", "[a7682c2979e68825a57c2c20753246b1]", "[b1bc83cb06c69159bb30]", "0x20")
+ self.bid128_to_binary80("0", "[a830099197db399fc956dc27c27cf593]", "[b306828e8301b763fbdb]", "0x20")
+ self.bid128_to_binary80("1", "[a830099197db399fc956dc27c27cf593]", "[b306828e8301b763fbdc]", "0x20")
+ self.bid128_to_binary80("2", "[a830099197db399fc956dc27c27cf593]", "[b306828e8301b763fbdb]", "0x20")
+ self.bid128_to_binary80("3", "[a830099197db399fc956dc27c27cf593]", "[b306828e8301b763fbdb]", "0x20")
+ self.bid128_to_binary80("4", "[a830099197db399fc956dc27c27cf593]", "[b306828e8301b763fbdb]", "0x20")
+ self.bid128_to_binary80("0", "[a8f443871b22b6e5983b0dc7c3a0d009]", "[b44ea87ee76d58bb1595]", "0x20")
+ self.bid128_to_binary80("1", "[a8f443871b22b6e5983b0dc7c3a0d009]", "[b44ea87ee76d58bb1595]", "0x20")
+ self.bid128_to_binary80("2", "[a8f443871b22b6e5983b0dc7c3a0d009]", "[b44ea87ee76d58bb1594]", "0x20")
+ self.bid128_to_binary80("3", "[a8f443871b22b6e5983b0dc7c3a0d009]", "[b44ea87ee76d58bb1594]", "0x20")
+ self.bid128_to_binary80("4", "[a8f443871b22b6e5983b0dc7c3a0d009]", "[b44ea87ee76d58bb1595]", "0x20")
+ self.bid128_to_binary80("0", "[a9ba13b0ae0301602ae401857bbeb2e3]", "[b595b3b318a8d2a41198]", "0x20")
+ self.bid128_to_binary80("1", "[a9ba13b0ae0301602ae401857bbeb2e3]", "[b595b3b318a8d2a41198]", "0x20")
+ self.bid128_to_binary80("2", "[a9ba13b0ae0301602ae401857bbeb2e3]", "[b595b3b318a8d2a41197]", "0x20")
+ self.bid128_to_binary80("3", "[a9ba13b0ae0301602ae401857bbeb2e3]", "[b595b3b318a8d2a41197]", "0x20")
+ self.bid128_to_binary80("4", "[a9ba13b0ae0301602ae401857bbeb2e3]", "[b595b3b318a8d2a41198]", "0x20")
+ self.bid128_to_binary80("0", "[aa7fc664697fcefed63ba1e610db6274]", "[b6dfbd98b381660294ae]", "0x20")
+ self.bid128_to_binary80("1", "[aa7fc664697fcefed63ba1e610db6274]", "[b6dfbd98b381660294af]", "0x20")
+ self.bid128_to_binary80("2", "[aa7fc664697fcefed63ba1e610db6274]", "[b6dfbd98b381660294ae]", "0x20")
+ self.bid128_to_binary80("3", "[aa7fc664697fcefed63ba1e610db6274]", "[b6dfbd98b381660294ae]", "0x20")
+ self.bid128_to_binary80("4", "[aa7fc664697fcefed63ba1e610db6274]", "[b6dfbd98b381660294ae]", "0x20")
+ self.bid128_to_binary80("0", "[ab440c5cecaf6e48f0c7ddeca33f408f]", "[b82396f0a04f9d18bc80]", "0x20")
+ self.bid128_to_binary80("1", "[ab440c5cecaf6e48f0c7ddeca33f408f]", "[b82396f0a04f9d18bc81]", "0x20")
+ self.bid128_to_binary80("2", "[ab440c5cecaf6e48f0c7ddeca33f408f]", "[b82396f0a04f9d18bc80]", "0x20")
+ self.bid128_to_binary80("3", "[ab440c5cecaf6e48f0c7ddeca33f408f]", "[b82396f0a04f9d18bc80]", "0x20")
+ self.bid128_to_binary80("4", "[ab440c5cecaf6e48f0c7ddeca33f408f]", "[b82396f0a04f9d18bc80]", "0x20")
+ self.bid128_to_binary80("0", "[ac0a7e5b6c9663bcb659fd6b206edad5]", "[b96fb0540a302e113167]", "0x20")
+ self.bid128_to_binary80("1", "[ac0a7e5b6c9663bcb659fd6b206edad5]", "[b96fb0540a302e113168]", "0x20")
+ self.bid128_to_binary80("2", "[ac0a7e5b6c9663bcb659fd6b206edad5]", "[b96fb0540a302e113167]", "0x20")
+ self.bid128_to_binary80("3", "[ac0a7e5b6c9663bcb659fd6b206edad5]", "[b96fb0540a302e113167]", "0x20")
+ self.bid128_to_binary80("4", "[ac0a7e5b6c9663bcb659fd6b206edad5]", "[b96fb0540a302e113167]", "0x20")
+ self.bid128_to_binary80("0", "[acd0320f3e2946ec33678858858bd4cd]", "[bab6ff8172f93d237e3a]", "0x20")
+ self.bid128_to_binary80("1", "[acd0320f3e2946ec33678858858bd4cd]", "[bab6ff8172f93d237e3a]", "0x20")
+ self.bid128_to_binary80("2", "[acd0320f3e2946ec33678858858bd4cd]", "[bab6ff8172f93d237e39]", "0x20")
+ self.bid128_to_binary80("3", "[acd0320f3e2946ec33678858858bd4cd]", "[bab6ff8172f93d237e39]", "0x20")
+ self.bid128_to_binary80("4", "[acd0320f3e2946ec33678858858bd4cd]", "[bab6ff8172f93d237e3a]", "0x20")
+ self.bid128_to_binary80("0", "[ad9800bf4d92e33eeba496d943e5c091]", "[bbfd8b810bf580ff8d9a]", "0x20")
+ self.bid128_to_binary80("1", "[ad9800bf4d92e33eeba496d943e5c091]", "[bbfd8b810bf580ff8d9a]", "0x20")
+ self.bid128_to_binary80("2", "[ad9800bf4d92e33eeba496d943e5c091]", "[bbfd8b810bf580ff8d99]", "0x20")
+ self.bid128_to_binary80("3", "[ad9800bf4d92e33eeba496d943e5c091]", "[bbfd8b810bf580ff8d99]", "0x20")
+ self.bid128_to_binary80("4", "[ad9800bf4d92e33eeba496d943e5c091]", "[bbfd8b810bf580ff8d9a]", "0x20")
+ self.bid128_to_binary80("0", "[ae5bebfdc3b1be0cf9ee7d5b3af6856a]", "[bd48d1f56e224aa84d0f]", "0x20")
+ self.bid128_to_binary80("1", "[ae5bebfdc3b1be0cf9ee7d5b3af6856a]", "[bd48d1f56e224aa84d10]", "0x20")
+ self.bid128_to_binary80("2", "[ae5bebfdc3b1be0cf9ee7d5b3af6856a]", "[bd48d1f56e224aa84d0f]", "0x20")
+ self.bid128_to_binary80("3", "[ae5bebfdc3b1be0cf9ee7d5b3af6856a]", "[bd48d1f56e224aa84d0f]", "0x20")
+ self.bid128_to_binary80("4", "[ae5bebfdc3b1be0cf9ee7d5b3af6856a]", "[bd48d1f56e224aa84d0f]", "0x20")
+ self.bid128_to_binary80("0", "[af207f630959cb588a487cbeee6056fd]", "[be8fc6d5ba5e3a4620ce]", "0x20")
+ self.bid128_to_binary80("1", "[af207f630959cb588a487cbeee6056fd]", "[be8fc6d5ba5e3a4620cf]", "0x20")
+ self.bid128_to_binary80("2", "[af207f630959cb588a487cbeee6056fd]", "[be8fc6d5ba5e3a4620ce]", "0x20")
+ self.bid128_to_binary80("3", "[af207f630959cb588a487cbeee6056fd]", "[be8fc6d5ba5e3a4620ce]", "0x20")
+ self.bid128_to_binary80("4", "[af207f630959cb588a487cbeee6056fd]", "[be8fc6d5ba5e3a4620ce]", "0x20")
+ self.bid128_to_binary80("0", "[afe658f857a00e0c3d88b558f7785ef2]", "[bfd7fdf6f6c58dc2971e]", "0x20")
+ self.bid128_to_binary80("1", "[afe658f857a00e0c3d88b558f7785ef2]", "[bfd7fdf6f6c58dc2971f]", "0x20")
+ self.bid128_to_binary80("2", "[afe658f857a00e0c3d88b558f7785ef2]", "[bfd7fdf6f6c58dc2971e]", "0x20")
+ self.bid128_to_binary80("3", "[afe658f857a00e0c3d88b558f7785ef2]", "[bfd7fdf6f6c58dc2971e]", "0x20")
+ self.bid128_to_binary80("4", "[afe658f857a00e0c3d88b558f7785ef2]", "[bfd7fdf6f6c58dc2971e]", "0x20")
+ self.bid128_to_binary80("0", "[b03000000000000000000000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b03000000000000000000000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b03000000000000000000000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b03000000000000000000000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b03000000000000000000000004d7c6d]", "[bffad000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b03e000000000000000000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b03e000000000000000000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b03e000000000000000000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b03e000000000000000000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b03e000000000000000000000000000f]", "[bfffc000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b0400000000000000000000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b0400000000000000000000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b0400000000000000000000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b0400000000000000000000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b0400000000000000000000000000001]", "[bfff8000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b0400000000000000000000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b0400000000000000000000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b0400000000000000000000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b0400000000000000000000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b0400000000000000000000000000040]", "[c0058000000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b04000000000000000000000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b04000000000000000000000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b04000000000000000000000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b04000000000000000000000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b04000000000000000000000000003e7]", "[c008f9c0000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b04000000000000000000000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[b04000000000000000000000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[b04000000000000000000000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[b04000000000000000000000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[b04000000000000000000000000003e8]", "[c008fa00000000000000]", "0x00")
+ self.bid128_to_binary80("0", "[b0ab63a1033d430b732414f8546ae14e]", "[c11fb9a5a04a2151b43f]", "0x20")
+ self.bid128_to_binary80("1", "[b0ab63a1033d430b732414f8546ae14e]", "[c11fb9a5a04a2151b440]", "0x20")
+ self.bid128_to_binary80("2", "[b0ab63a1033d430b732414f8546ae14e]", "[c11fb9a5a04a2151b43f]", "0x20")
+ self.bid128_to_binary80("3", "[b0ab63a1033d430b732414f8546ae14e]", "[c11fb9a5a04a2151b43f]", "0x20")
+ self.bid128_to_binary80("4", "[b0ab63a1033d430b732414f8546ae14e]", "[c11fb9a5a04a2151b43f]", "0x20")
+ self.bid128_to_binary80("0", "[b170512b20b2fa9b1eac8e50f9969bee]", "[c2669afa5210ae392423]", "0x20")
+ self.bid128_to_binary80("1", "[b170512b20b2fa9b1eac8e50f9969bee]", "[c2669afa5210ae392424]", "0x20")
+ self.bid128_to_binary80("2", "[b170512b20b2fa9b1eac8e50f9969bee]", "[c2669afa5210ae392423]", "0x20")
+ self.bid128_to_binary80("3", "[b170512b20b2fa9b1eac8e50f9969bee]", "[c2669afa5210ae392423]", "0x20")
+ self.bid128_to_binary80("4", "[b170512b20b2fa9b1eac8e50f9969bee]", "[c2669afa5210ae392423]", "0x20")
+ self.bid128_to_binary80("0", "[b236ded461f3956dfe33ce39663a615f]", "[c3b0c2843bf1d4f21f0a]", "0x20")
+ self.bid128_to_binary80("1", "[b236ded461f3956dfe33ce39663a615f]", "[c3b0c2843bf1d4f21f0a]", "0x20")
+ self.bid128_to_binary80("2", "[b236ded461f3956dfe33ce39663a615f]", "[c3b0c2843bf1d4f21f09]", "0x20")
+ self.bid128_to_binary80("3", "[b236ded461f3956dfe33ce39663a615f]", "[c3b0c2843bf1d4f21f09]", "0x20")
+ self.bid128_to_binary80("4", "[b236ded461f3956dfe33ce39663a615f]", "[c3b0c2843bf1d4f21f0a]", "0x20")
+ self.bid128_to_binary80("0", "[b2fcb043ea9c3190e554619eeaa4c12f]", "[c4f98cb22f7612e62bbc]", "0x20")
+ self.bid128_to_binary80("1", "[b2fcb043ea9c3190e554619eeaa4c12f]", "[c4f98cb22f7612e62bbc]", "0x20")
+ self.bid128_to_binary80("2", "[b2fcb043ea9c3190e554619eeaa4c12f]", "[c4f98cb22f7612e62bbb]", "0x20")
+ self.bid128_to_binary80("3", "[b2fcb043ea9c3190e554619eeaa4c12f]", "[c4f98cb22f7612e62bbb]", "0x20")
+ self.bid128_to_binary80("4", "[b2fcb043ea9c3190e554619eeaa4c12f]", "[c4f98cb22f7612e62bbc]", "0x20")
+ self.bid128_to_binary80("0", "[b3c24d0c35e844f21dd3fbdca44ac028]", "[c640e0f090a903c3a757]", "0x20")
+ self.bid128_to_binary80("1", "[b3c24d0c35e844f21dd3fbdca44ac028]", "[c640e0f090a903c3a757]", "0x20")
+ self.bid128_to_binary80("2", "[b3c24d0c35e844f21dd3fbdca44ac028]", "[c640e0f090a903c3a756]", "0x20")
+ self.bid128_to_binary80("3", "[b3c24d0c35e844f21dd3fbdca44ac028]", "[c640e0f090a903c3a756]", "0x20")
+ self.bid128_to_binary80("4", "[b3c24d0c35e844f21dd3fbdca44ac028]", "[c640e0f090a903c3a757]", "0x20")
+ self.bid128_to_binary80("0", "[b485377251b935cb987220cc3039df08]", "[c785850709ccf9b59c46]", "0x20")
+ self.bid128_to_binary80("1", "[b485377251b935cb987220cc3039df08]", "[c785850709ccf9b59c46]", "0x20")
+ self.bid128_to_binary80("2", "[b485377251b935cb987220cc3039df08]", "[c785850709ccf9b59c45]", "0x20")
+ self.bid128_to_binary80("3", "[b485377251b935cb987220cc3039df08]", "[c785850709ccf9b59c45]", "0x20")
+ self.bid128_to_binary80("4", "[b485377251b935cb987220cc3039df08]", "[c785850709ccf9b59c46]", "0x20")
+ self.bid128_to_binary80("0", "[b54d1bc9ea3ba27c3428bbf88be3fb3b]", "[c8d18a8bd054f2a87c14]", "0x20")
+ self.bid128_to_binary80("1", "[b54d1bc9ea3ba27c3428bbf88be3fb3b]", "[c8d18a8bd054f2a87c15]", "0x20")
+ self.bid128_to_binary80("2", "[b54d1bc9ea3ba27c3428bbf88be3fb3b]", "[c8d18a8bd054f2a87c14]", "0x20")
+ self.bid128_to_binary80("3", "[b54d1bc9ea3ba27c3428bbf88be3fb3b]", "[c8d18a8bd054f2a87c14]", "0x20")
+ self.bid128_to_binary80("4", "[b54d1bc9ea3ba27c3428bbf88be3fb3b]", "[c8d18a8bd054f2a87c14]", "0x20")
+ self.bid128_to_binary80("0", "[b6126785a41dad61f2bb74d6023e710e]", "[ca18b8da0b44b043febe]", "0x20")
+ self.bid128_to_binary80("1", "[b6126785a41dad61f2bb74d6023e710e]", "[ca18b8da0b44b043febe]", "0x20")
+ self.bid128_to_binary80("2", "[b6126785a41dad61f2bb74d6023e710e]", "[ca18b8da0b44b043febd]", "0x20")
+ self.bid128_to_binary80("3", "[b6126785a41dad61f2bb74d6023e710e]", "[ca18b8da0b44b043febd]", "0x20")
+ self.bid128_to_binary80("4", "[b6126785a41dad61f2bb74d6023e710e]", "[ca18b8da0b44b043febe]", "0x20")
+ self.bid128_to_binary80("0", "[b6d86f9cf0da1867db67b9d5466ba79a]", "[cb61b63cbbc9bfb1aecf]", "0x20")
+ self.bid128_to_binary80("1", "[b6d86f9cf0da1867db67b9d5466ba79a]", "[cb61b63cbbc9bfb1aed0]", "0x20")
+ self.bid128_to_binary80("2", "[b6d86f9cf0da1867db67b9d5466ba79a]", "[cb61b63cbbc9bfb1aecf]", "0x20")
+ self.bid128_to_binary80("3", "[b6d86f9cf0da1867db67b9d5466ba79a]", "[cb61b63cbbc9bfb1aecf]", "0x20")
+ self.bid128_to_binary80("4", "[b6d86f9cf0da1867db67b9d5466ba79a]", "[cb61b63cbbc9bfb1aecf]", "0x20")
+ self.bid128_to_binary80("0", "[b79dac6268305aba130709e687761016]", "[cca8ffd3d6d37590f1c5]", "0x20")
+ self.bid128_to_binary80("1", "[b79dac6268305aba130709e687761016]", "[cca8ffd3d6d37590f1c6]", "0x20")
+ self.bid128_to_binary80("2", "[b79dac6268305aba130709e687761016]", "[cca8ffd3d6d37590f1c5]", "0x20")
+ self.bid128_to_binary80("3", "[b79dac6268305aba130709e687761016]", "[cca8ffd3d6d37590f1c5]", "0x20")
+ self.bid128_to_binary80("4", "[b79dac6268305aba130709e687761016]", "[cca8ffd3d6d37590f1c5]", "0x20")
+ self.bid128_to_binary80("0", "[b863e55954975defd8a9e57d1c054cce]", "[cdf284842818bba6ca46]", "0x20")
+ self.bid128_to_binary80("1", "[b863e55954975defd8a9e57d1c054cce]", "[cdf284842818bba6ca46]", "0x20")
+ self.bid128_to_binary80("2", "[b863e55954975defd8a9e57d1c054cce]", "[cdf284842818bba6ca45]", "0x20")
+ self.bid128_to_binary80("3", "[b863e55954975defd8a9e57d1c054cce]", "[cdf284842818bba6ca45]", "0x20")
+ self.bid128_to_binary80("4", "[b863e55954975defd8a9e57d1c054cce]", "[cdf284842818bba6ca46]", "0x20")
+ self.bid128_to_binary80("0", "[b929419097d1e7aeb0913d5cf5eb4f9a]", "[cf3aa09014123c1437cb]", "0x20")
+ self.bid128_to_binary80("1", "[b929419097d1e7aeb0913d5cf5eb4f9a]", "[cf3aa09014123c1437cb]", "0x20")
+ self.bid128_to_binary80("2", "[b929419097d1e7aeb0913d5cf5eb4f9a]", "[cf3aa09014123c1437ca]", "0x20")
+ self.bid128_to_binary80("3", "[b929419097d1e7aeb0913d5cf5eb4f9a]", "[cf3aa09014123c1437ca]", "0x20")
+ self.bid128_to_binary80("4", "[b929419097d1e7aeb0913d5cf5eb4f9a]", "[cf3aa09014123c1437cb]", "0x20")
+ self.bid128_to_binary80("0", "[b9ef17b1a619acc65db4ac9745998042]", "[d082ff6666ddab9b1b66]", "0x20")
+ self.bid128_to_binary80("1", "[b9ef17b1a619acc65db4ac9745998042]", "[d082ff6666ddab9b1b66]", "0x20")
+ self.bid128_to_binary80("2", "[b9ef17b1a619acc65db4ac9745998042]", "[d082ff6666ddab9b1b65]", "0x20")
+ self.bid128_to_binary80("3", "[b9ef17b1a619acc65db4ac9745998042]", "[d082ff6666ddab9b1b65]", "0x20")
+ self.bid128_to_binary80("4", "[b9ef17b1a619acc65db4ac9745998042]", "[d082ff6666ddab9b1b66]", "0x20")
+ self.bid128_to_binary80("0", "[bab2b88fe0f75055582160f7125ef042]", "[d1c7f690aa75b8ff8684]", "0x20")
+ self.bid128_to_binary80("1", "[bab2b88fe0f75055582160f7125ef042]", "[d1c7f690aa75b8ff8684]", "0x20")
+ self.bid128_to_binary80("2", "[bab2b88fe0f75055582160f7125ef042]", "[d1c7f690aa75b8ff8683]", "0x20")
+ self.bid128_to_binary80("3", "[bab2b88fe0f75055582160f7125ef042]", "[d1c7f690aa75b8ff8683]", "0x20")
+ self.bid128_to_binary80("4", "[bab2b88fe0f75055582160f7125ef042]", "[d1c7f690aa75b8ff8684]", "0x20")
+ self.bid128_to_binary80("0", "[bb78c4987c4153eff3d6a75a87bfb668]", "[d310f02818cee2adf0f0]", "0x20")
+ self.bid128_to_binary80("1", "[bb78c4987c4153eff3d6a75a87bfb668]", "[d310f02818cee2adf0f0]", "0x20")
+ self.bid128_to_binary80("2", "[bb78c4987c4153eff3d6a75a87bfb668]", "[d310f02818cee2adf0ef]", "0x20")
+ self.bid128_to_binary80("3", "[bb78c4987c4153eff3d6a75a87bfb668]", "[d310f02818cee2adf0ef]", "0x20")
+ self.bid128_to_binary80("4", "[bb78c4987c4153eff3d6a75a87bfb668]", "[d310f02818cee2adf0f0]", "0x20")
+ self.bid128_to_binary80("0", "[bc3eaf5aa980483eac3bf6599f02704b]", "[d459c3debf2bc7c72034]", "0x20")
+ self.bid128_to_binary80("1", "[bc3eaf5aa980483eac3bf6599f02704b]", "[d459c3debf2bc7c72035]", "0x20")
+ self.bid128_to_binary80("2", "[bc3eaf5aa980483eac3bf6599f02704b]", "[d459c3debf2bc7c72034]", "0x20")
+ self.bid128_to_binary80("3", "[bc3eaf5aa980483eac3bf6599f02704b]", "[d459c3debf2bc7c72034]", "0x20")
+ self.bid128_to_binary80("4", "[bc3eaf5aa980483eac3bf6599f02704b]", "[d459c3debf2bc7c72034]", "0x20")
+ self.bid128_to_binary80("0", "[bd05eabc71c65f70a8f82792c544a17d]", "[d5a3fa9ca07d6dfa4cef]", "0x20")
+ self.bid128_to_binary80("1", "[bd05eabc71c65f70a8f82792c544a17d]", "[d5a3fa9ca07d6dfa4cef]", "0x20")
+ self.bid128_to_binary80("2", "[bd05eabc71c65f70a8f82792c544a17d]", "[d5a3fa9ca07d6dfa4cee]", "0x20")
+ self.bid128_to_binary80("3", "[bd05eabc71c65f70a8f82792c544a17d]", "[d5a3fa9ca07d6dfa4cee]", "0x20")
+ self.bid128_to_binary80("4", "[bd05eabc71c65f70a8f82792c544a17d]", "[d5a3fa9ca07d6dfa4cef]", "0x20")
+ self.bid128_to_binary80("0", "[bdca812e8c84e96b78d6094ce067db57]", "[d6eaf14b3ef83dfaab99]", "0x20")
+ self.bid128_to_binary80("1", "[bdca812e8c84e96b78d6094ce067db57]", "[d6eaf14b3ef83dfaab99]", "0x20")
+ self.bid128_to_binary80("2", "[bdca812e8c84e96b78d6094ce067db57]", "[d6eaf14b3ef83dfaab98]", "0x20")
+ self.bid128_to_binary80("3", "[bdca812e8c84e96b78d6094ce067db57]", "[d6eaf14b3ef83dfaab98]", "0x20")
+ self.bid128_to_binary80("4", "[bdca812e8c84e96b78d6094ce067db57]", "[d6eaf14b3ef83dfaab99]", "0x20")
+ self.bid128_to_binary80("0", "[be8e9aafc539fd28221eeed21638e0d2]", "[d830d35bb22027f1287e]", "0x20")
+ self.bid128_to_binary80("1", "[be8e9aafc539fd28221eeed21638e0d2]", "[d830d35bb22027f1287e]", "0x20")
+ self.bid128_to_binary80("2", "[be8e9aafc539fd28221eeed21638e0d2]", "[d830d35bb22027f1287d]", "0x20")
+ self.bid128_to_binary80("3", "[be8e9aafc539fd28221eeed21638e0d2]", "[d830d35bb22027f1287d]", "0x20")
+ self.bid128_to_binary80("4", "[be8e9aafc539fd28221eeed21638e0d2]", "[d830d35bb22027f1287e]", "0x20")
+ self.bid128_to_binary80("0", "[bf5536291516172d7310b1be0ec2fbe8]", "[d97ac1c16ee51d041724]", "0x20")
+ self.bid128_to_binary80("1", "[bf5536291516172d7310b1be0ec2fbe8]", "[d97ac1c16ee51d041724]", "0x20")
+ self.bid128_to_binary80("2", "[bf5536291516172d7310b1be0ec2fbe8]", "[d97ac1c16ee51d041723]", "0x20")
+ self.bid128_to_binary80("3", "[bf5536291516172d7310b1be0ec2fbe8]", "[d97ac1c16ee51d041723]", "0x20")
+ self.bid128_to_binary80("4", "[bf5536291516172d7310b1be0ec2fbe8]", "[d97ac1c16ee51d041724]", "0x20")
+ self.bid128_to_binary80("0", "[c01b9d42f2febef649f5af294cd54293]", "[dac3ec0f9c1d54395f76]", "0x20")
+ self.bid128_to_binary80("1", "[c01b9d42f2febef649f5af294cd54293]", "[dac3ec0f9c1d54395f77]", "0x20")
+ self.bid128_to_binary80("2", "[c01b9d42f2febef649f5af294cd54293]", "[dac3ec0f9c1d54395f76]", "0x20")
+ self.bid128_to_binary80("3", "[c01b9d42f2febef649f5af294cd54293]", "[dac3ec0f9c1d54395f76]", "0x20")
+ self.bid128_to_binary80("4", "[c01b9d42f2febef649f5af294cd54293]", "[dac3ec0f9c1d54395f76]", "0x20")
+ self.bid128_to_binary80("0", "[c0e0ee30d2e354402be3eb3bbfeb4a38]", "[dc0bf8d1f2fd4a0d697c]", "0x20")
+ self.bid128_to_binary80("1", "[c0e0ee30d2e354402be3eb3bbfeb4a38]", "[dc0bf8d1f2fd4a0d697d]", "0x20")
+ self.bid128_to_binary80("2", "[c0e0ee30d2e354402be3eb3bbfeb4a38]", "[dc0bf8d1f2fd4a0d697c]", "0x20")
+ self.bid128_to_binary80("3", "[c0e0ee30d2e354402be3eb3bbfeb4a38]", "[dc0bf8d1f2fd4a0d697c]", "0x20")
+ self.bid128_to_binary80("4", "[c0e0ee30d2e354402be3eb3bbfeb4a38]", "[dc0bf8d1f2fd4a0d697c]", "0x20")
+ self.bid128_to_binary80("0", "[c1a4e42dea0f24820e7e808179f34372]", "[dd51ae5d58d0c27a7751]", "0x20")
+ self.bid128_to_binary80("1", "[c1a4e42dea0f24820e7e808179f34372]", "[dd51ae5d58d0c27a7751]", "0x20")
+ self.bid128_to_binary80("2", "[c1a4e42dea0f24820e7e808179f34372]", "[dd51ae5d58d0c27a7750]", "0x20")
+ self.bid128_to_binary80("3", "[c1a4e42dea0f24820e7e808179f34372]", "[dd51ae5d58d0c27a7750]", "0x20")
+ self.bid128_to_binary80("4", "[c1a4e42dea0f24820e7e808179f34372]", "[dd51ae5d58d0c27a7751]", "0x20")
+ self.bid128_to_binary80("0", "[c26a37fb18dd6455171972771ad0c1b0]", "[de989c76a5f34e88d40d]", "0x20")
+ self.bid128_to_binary80("1", "[c26a37fb18dd6455171972771ad0c1b0]", "[de989c76a5f34e88d40e]", "0x20")
+ self.bid128_to_binary80("2", "[c26a37fb18dd6455171972771ad0c1b0]", "[de989c76a5f34e88d40d]", "0x20")
+ self.bid128_to_binary80("3", "[c26a37fb18dd6455171972771ad0c1b0]", "[de989c76a5f34e88d40d]", "0x20")
+ self.bid128_to_binary80("4", "[c26a37fb18dd6455171972771ad0c1b0]", "[de989c76a5f34e88d40d]", "0x20")
+ self.bid128_to_binary80("0", "[c330cfbea16151094b2d5b9cef7a3efd]", "[dfe384bb52e200382bc8]", "0x20")
+ self.bid128_to_binary80("1", "[c330cfbea16151094b2d5b9cef7a3efd]", "[dfe384bb52e200382bc9]", "0x20")
+ self.bid128_to_binary80("2", "[c330cfbea16151094b2d5b9cef7a3efd]", "[dfe384bb52e200382bc8]", "0x20")
+ self.bid128_to_binary80("3", "[c330cfbea16151094b2d5b9cef7a3efd]", "[dfe384bb52e200382bc8]", "0x20")
+ self.bid128_to_binary80("4", "[c330cfbea16151094b2d5b9cef7a3efd]", "[dfe384bb52e200382bc8]", "0x20")
+ self.bid128_to_binary80("0", "[c3f7b09dd524fade05bff3e4315f282f]", "[e12cfcbe418246ddc090]", "0x20")
+ self.bid128_to_binary80("1", "[c3f7b09dd524fade05bff3e4315f282f]", "[e12cfcbe418246ddc090]", "0x20")
+ self.bid128_to_binary80("2", "[c3f7b09dd524fade05bff3e4315f282f]", "[e12cfcbe418246ddc08f]", "0x20")
+ self.bid128_to_binary80("3", "[c3f7b09dd524fade05bff3e4315f282f]", "[e12cfcbe418246ddc08f]", "0x20")
+ self.bid128_to_binary80("4", "[c3f7b09dd524fade05bff3e4315f282f]", "[e12cfcbe418246ddc090]", "0x20")
+ self.bid128_to_binary80("0", "[c4bc773ddc501fc46aeb827d28b82275]", "[e273fecc3e26e5894dcd]", "0x20")
+ self.bid128_to_binary80("1", "[c4bc773ddc501fc46aeb827d28b82275]", "[e273fecc3e26e5894dcd]", "0x20")
+ self.bid128_to_binary80("2", "[c4bc773ddc501fc46aeb827d28b82275]", "[e273fecc3e26e5894dcc]", "0x20")
+ self.bid128_to_binary80("3", "[c4bc773ddc501fc46aeb827d28b82275]", "[e273fecc3e26e5894dcc]", "0x20")
+ self.bid128_to_binary80("4", "[c4bc773ddc501fc46aeb827d28b82275]", "[e273fecc3e26e5894dcd]", "0x20")
+ self.bid128_to_binary80("0", "[c5805605bd71f1cc5bccd470aac5ee44]", "[e3b986765f815d1d847b]", "0x20")
+ self.bid128_to_binary80("1", "[c5805605bd71f1cc5bccd470aac5ee44]", "[e3b986765f815d1d847b]", "0x20")
+ self.bid128_to_binary80("2", "[c5805605bd71f1cc5bccd470aac5ee44]", "[e3b986765f815d1d847a]", "0x20")
+ self.bid128_to_binary80("3", "[c5805605bd71f1cc5bccd470aac5ee44]", "[e3b986765f815d1d847a]", "0x20")
+ self.bid128_to_binary80("4", "[c5805605bd71f1cc5bccd470aac5ee44]", "[e3b986765f815d1d847b]", "0x20")
+ self.bid128_to_binary80("0", "[c6471c01ae777c8eb082f5ef624dd355]", "[e503caf6c8067e598c64]", "0x20")
+ self.bid128_to_binary80("1", "[c6471c01ae777c8eb082f5ef624dd355]", "[e503caf6c8067e598c65]", "0x20")
+ self.bid128_to_binary80("2", "[c6471c01ae777c8eb082f5ef624dd355]", "[e503caf6c8067e598c64]", "0x20")
+ self.bid128_to_binary80("3", "[c6471c01ae777c8eb082f5ef624dd355]", "[e503caf6c8067e598c64]", "0x20")
+ self.bid128_to_binary80("4", "[c6471c01ae777c8eb082f5ef624dd355]", "[e503caf6c8067e598c64]", "0x20")
+ self.bid128_to_binary80("0", "[c70d777740eb14c695ddf159c2824812]", "[e64cf55a86621697b553]", "0x20")
+ self.bid128_to_binary80("1", "[c70d777740eb14c695ddf159c2824812]", "[e64cf55a86621697b554]", "0x20")
+ self.bid128_to_binary80("2", "[c70d777740eb14c695ddf159c2824812]", "[e64cf55a86621697b553]", "0x20")
+ self.bid128_to_binary80("3", "[c70d777740eb14c695ddf159c2824812]", "[e64cf55a86621697b553]", "0x20")
+ self.bid128_to_binary80("4", "[c70d777740eb14c695ddf159c2824812]", "[e64cf55a86621697b553]", "0x20")
+ self.bid128_to_binary80("0", "[c7d2c4b327cb57600b0aedbda5258071]", "[e794eb1090bdb83554c0]", "0x20")
+ self.bid128_to_binary80("1", "[c7d2c4b327cb57600b0aedbda5258071]", "[e794eb1090bdb83554c0]", "0x20")
+ self.bid128_to_binary80("2", "[c7d2c4b327cb57600b0aedbda5258071]", "[e794eb1090bdb83554bf]", "0x20")
+ self.bid128_to_binary80("3", "[c7d2c4b327cb57600b0aedbda5258071]", "[e794eb1090bdb83554bf]", "0x20")
+ self.bid128_to_binary80("4", "[c7d2c4b327cb57600b0aedbda5258071]", "[e794eb1090bdb83554c0]", "0x20")
+ self.bid128_to_binary80("0", "[c89532211daeaef2ddc8baff5293207c]", "[e8d7d61779e70826c5a8]", "0x20")
+ self.bid128_to_binary80("1", "[c89532211daeaef2ddc8baff5293207c]", "[e8d7d61779e70826c5a8]", "0x20")
+ self.bid128_to_binary80("2", "[c89532211daeaef2ddc8baff5293207c]", "[e8d7d61779e70826c5a7]", "0x20")
+ self.bid128_to_binary80("3", "[c89532211daeaef2ddc8baff5293207c]", "[e8d7d61779e70826c5a7]", "0x20")
+ self.bid128_to_binary80("4", "[c89532211daeaef2ddc8baff5293207c]", "[e8d7d61779e70826c5a8]", "0x20")
+ self.bid128_to_binary80("0", "[c95c74b2faa13f6a8511581c6fe81d94]", "[ea22ba910dc4bb90b1a8]", "0x20")
+ self.bid128_to_binary80("1", "[c95c74b2faa13f6a8511581c6fe81d94]", "[ea22ba910dc4bb90b1a9]", "0x20")
+ self.bid128_to_binary80("2", "[c95c74b2faa13f6a8511581c6fe81d94]", "[ea22ba910dc4bb90b1a8]", "0x20")
+ self.bid128_to_binary80("3", "[c95c74b2faa13f6a8511581c6fe81d94]", "[ea22ba910dc4bb90b1a8]", "0x20")
+ self.bid128_to_binary80("4", "[c95c74b2faa13f6a8511581c6fe81d94]", "[ea22ba910dc4bb90b1a8]", "0x20")
+ self.bid128_to_binary80("0", "[ca22e0fbc8d66e501c1086507d4286db]", "[eb6ca471b47aedefecb2]", "0x20")
+ self.bid128_to_binary80("1", "[ca22e0fbc8d66e501c1086507d4286db]", "[eb6ca471b47aedefecb3]", "0x20")
+ self.bid128_to_binary80("2", "[ca22e0fbc8d66e501c1086507d4286db]", "[eb6ca471b47aedefecb2]", "0x20")
+ self.bid128_to_binary80("3", "[ca22e0fbc8d66e501c1086507d4286db]", "[eb6ca471b47aedefecb2]", "0x20")
+ self.bid128_to_binary80("4", "[ca22e0fbc8d66e501c1086507d4286db]", "[eb6ca471b47aedefecb2]", "0x20")
+ self.bid128_to_binary80("0", "[cae8373faa7de96f61a733b597b7bee7]", "[ecb393b34227b6f7f14e]", "0x20")
+ self.bid128_to_binary80("1", "[cae8373faa7de96f61a733b597b7bee7]", "[ecb393b34227b6f7f14e]", "0x20")
+ self.bid128_to_binary80("2", "[cae8373faa7de96f61a733b597b7bee7]", "[ecb393b34227b6f7f14d]", "0x20")
+ self.bid128_to_binary80("3", "[cae8373faa7de96f61a733b597b7bee7]", "[ecb393b34227b6f7f14d]", "0x20")
+ self.bid128_to_binary80("4", "[cae8373faa7de96f61a733b597b7bee7]", "[ecb393b34227b6f7f14e]", "0x20")
+ self.bid128_to_binary80("0", "[cbae650be3dbf18f2a2066b3f926bbc0]", "[edfcf702223c8c38ecc9]", "0x20")
+ self.bid128_to_binary80("1", "[cbae650be3dbf18f2a2066b3f926bbc0]", "[edfcf702223c8c38ecc9]", "0x20")
+ self.bid128_to_binary80("2", "[cbae650be3dbf18f2a2066b3f926bbc0]", "[edfcf702223c8c38ecc8]", "0x20")
+ self.bid128_to_binary80("3", "[cbae650be3dbf18f2a2066b3f926bbc0]", "[edfcf702223c8c38ecc8]", "0x20")
+ self.bid128_to_binary80("4", "[cbae650be3dbf18f2a2066b3f926bbc0]", "[edfcf702223c8c38ecc9]", "0x20")
+ self.bid128_to_binary80("0", "[cc72b07b6a1371bdb662ebec5b456cfa]", "[ef439dca883570880447]", "0x20")
+ self.bid128_to_binary80("1", "[cc72b07b6a1371bdb662ebec5b456cfa]", "[ef439dca883570880447]", "0x20")
+ self.bid128_to_binary80("2", "[cc72b07b6a1371bdb662ebec5b456cfa]", "[ef439dca883570880446]", "0x20")
+ self.bid128_to_binary80("3", "[cc72b07b6a1371bdb662ebec5b456cfa]", "[ef439dca883570880446]", "0x20")
+ self.bid128_to_binary80("4", "[cc72b07b6a1371bdb662ebec5b456cfa]", "[ef439dca883570880447]", "0x20")
+ self.bid128_to_binary80("0", "[cd370f9474828de96c3a3fd21bbfd2c2]", "[f089b19faddd46a80900]", "0x20")
+ self.bid128_to_binary80("1", "[cd370f9474828de96c3a3fd21bbfd2c2]", "[f089b19faddd46a80900]", "0x20")
+ self.bid128_to_binary80("2", "[cd370f9474828de96c3a3fd21bbfd2c2]", "[f089b19faddd46a808ff]", "0x20")
+ self.bid128_to_binary80("3", "[cd370f9474828de96c3a3fd21bbfd2c2]", "[f089b19faddd46a808ff]", "0x20")
+ self.bid128_to_binary80("4", "[cd370f9474828de96c3a3fd21bbfd2c2]", "[f089b19faddd46a80900]", "0x20")
+ self.bid128_to_binary80("0", "[cdff402a82637f9794a4f5ff701923cf]", "[f1d5ef57b8bfa4d07a10]", "0x20")
+ self.bid128_to_binary80("1", "[cdff402a82637f9794a4f5ff701923cf]", "[f1d5ef57b8bfa4d07a10]", "0x20")
+ self.bid128_to_binary80("2", "[cdff402a82637f9794a4f5ff701923cf]", "[f1d5ef57b8bfa4d07a0f]", "0x20")
+ self.bid128_to_binary80("3", "[cdff402a82637f9794a4f5ff701923cf]", "[f1d5ef57b8bfa4d07a0f]", "0x20")
+ self.bid128_to_binary80("4", "[cdff402a82637f9794a4f5ff701923cf]", "[f1d5ef57b8bfa4d07a10]", "0x20")
+ self.bid128_to_binary80("0", "[cec47c4599356081c896d5ba69b1c664]", "[f31da9e4f80ff5c067d0]", "0x20")
+ self.bid128_to_binary80("1", "[cec47c4599356081c896d5ba69b1c664]", "[f31da9e4f80ff5c067d0]", "0x20")
+ self.bid128_to_binary80("2", "[cec47c4599356081c896d5ba69b1c664]", "[f31da9e4f80ff5c067cf]", "0x20")
+ self.bid128_to_binary80("3", "[cec47c4599356081c896d5ba69b1c664]", "[f31da9e4f80ff5c067cf]", "0x20")
+ self.bid128_to_binary80("4", "[cec47c4599356081c896d5ba69b1c664]", "[f31da9e4f80ff5c067d0]", "0x20")
+ self.bid128_to_binary80("0", "[cf897462cb82078dba6c0ce57a3be482]", "[f464ba346f50e12a9380]", "0x20")
+ self.bid128_to_binary80("1", "[cf897462cb82078dba6c0ce57a3be482]", "[f464ba346f50e12a9381]", "0x20")
+ self.bid128_to_binary80("2", "[cf897462cb82078dba6c0ce57a3be482]", "[f464ba346f50e12a9380]", "0x20")
+ self.bid128_to_binary80("3", "[cf897462cb82078dba6c0ce57a3be482]", "[f464ba346f50e12a9380]", "0x20")
+ self.bid128_to_binary80("4", "[cf897462cb82078dba6c0ce57a3be482]", "[f464ba346f50e12a9380]", "0x20")
+ self.bid128_to_binary80("0", "[d04e778e1bcaaf32a03f3efccf969ac0]", "[f5abdaa7668a55975d1b]", "0x20")
+ self.bid128_to_binary80("1", "[d04e778e1bcaaf32a03f3efccf969ac0]", "[f5abdaa7668a55975d1b]", "0x20")
+ self.bid128_to_binary80("2", "[d04e778e1bcaaf32a03f3efccf969ac0]", "[f5abdaa7668a55975d1a]", "0x20")
+ self.bid128_to_binary80("3", "[d04e778e1bcaaf32a03f3efccf969ac0]", "[f5abdaa7668a55975d1a]", "0x20")
+ self.bid128_to_binary80("4", "[d04e778e1bcaaf32a03f3efccf969ac0]", "[f5abdaa7668a55975d1b]", "0x20")
+ self.bid128_to_binary80("0", "[d114f08334c35878250f1255f56e04b5]", "[f6f5c91b83c057e3f92e]", "0x20")
+ self.bid128_to_binary80("1", "[d114f08334c35878250f1255f56e04b5]", "[f6f5c91b83c057e3f92f]", "0x20")
+ self.bid128_to_binary80("2", "[d114f08334c35878250f1255f56e04b5]", "[f6f5c91b83c057e3f92e]", "0x20")
+ self.bid128_to_binary80("3", "[d114f08334c35878250f1255f56e04b5]", "[f6f5c91b83c057e3f92e]", "0x20")
+ self.bid128_to_binary80("4", "[d114f08334c35878250f1255f56e04b5]", "[f6f5c91b83c057e3f92e]", "0x20")
+ self.bid128_to_binary80("0", "[d1daf5e364ddad2015b2f27a01dd61c4]", "[f83ebc0035b92f4371da]", "0x20")
+ self.bid128_to_binary80("1", "[d1daf5e364ddad2015b2f27a01dd61c4]", "[f83ebc0035b92f4371da]", "0x20")
+ self.bid128_to_binary80("2", "[d1daf5e364ddad2015b2f27a01dd61c4]", "[f83ebc0035b92f4371d9]", "0x20")
+ self.bid128_to_binary80("3", "[d1daf5e364ddad2015b2f27a01dd61c4]", "[f83ebc0035b92f4371d9]", "0x20")
+ self.bid128_to_binary80("4", "[d1daf5e364ddad2015b2f27a01dd61c4]", "[f83ebc0035b92f4371da]", "0x20")
+ self.bid128_to_binary80("0", "[d29fb089aefff9c3300a431263dfe7fc]", "[f984f1eae7a5898c207f]", "0x20")
+ self.bid128_to_binary80("1", "[d29fb089aefff9c3300a431263dfe7fc]", "[f984f1eae7a5898c207f]", "0x20")
+ self.bid128_to_binary80("2", "[d29fb089aefff9c3300a431263dfe7fc]", "[f984f1eae7a5898c207e]", "0x20")
+ self.bid128_to_binary80("3", "[d29fb089aefff9c3300a431263dfe7fc]", "[f984f1eae7a5898c207e]", "0x20")
+ self.bid128_to_binary80("4", "[d29fb089aefff9c3300a431263dfe7fc]", "[f984f1eae7a5898c207f]", "0x20")
+ self.bid128_to_binary80("0", "[d364aeae349e703dcf4bebdb5548adee]", "[faccb2ab432b3008f867]", "0x20")
+ self.bid128_to_binary80("1", "[d364aeae349e703dcf4bebdb5548adee]", "[faccb2ab432b3008f867]", "0x20")
+ self.bid128_to_binary80("2", "[d364aeae349e703dcf4bebdb5548adee]", "[faccb2ab432b3008f866]", "0x20")
+ self.bid128_to_binary80("3", "[d364aeae349e703dcf4bebdb5548adee]", "[faccb2ab432b3008f866]", "0x20")
+ self.bid128_to_binary80("4", "[d364aeae349e703dcf4bebdb5548adee]", "[faccb2ab432b3008f867]", "0x20")
+ self.bid128_to_binary80("0", "[d42b31a44735e52d2105254f770699cd]", "[fc168eedb252b2172a20]", "0x20")
+ self.bid128_to_binary80("1", "[d42b31a44735e52d2105254f770699cd]", "[fc168eedb252b2172a21]", "0x20")
+ self.bid128_to_binary80("2", "[d42b31a44735e52d2105254f770699cd]", "[fc168eedb252b2172a20]", "0x20")
+ self.bid128_to_binary80("3", "[d42b31a44735e52d2105254f770699cd]", "[fc168eedb252b2172a20]", "0x20")
+ self.bid128_to_binary80("4", "[d42b31a44735e52d2105254f770699cd]", "[fc168eedb252b2172a20]", "0x20")
+ self.bid128_to_binary80("0", "[d4f05f3a50323388fa0769adcabe5231]", "[fd5da2e0a984a3bb1788]", "0x20")
+ self.bid128_to_binary80("1", "[d4f05f3a50323388fa0769adcabe5231]", "[fd5da2e0a984a3bb1789]", "0x20")
+ self.bid128_to_binary80("2", "[d4f05f3a50323388fa0769adcabe5231]", "[fd5da2e0a984a3bb1788]", "0x20")
+ self.bid128_to_binary80("3", "[d4f05f3a50323388fa0769adcabe5231]", "[fd5da2e0a984a3bb1788]", "0x20")
+ self.bid128_to_binary80("4", "[d4f05f3a50323388fa0769adcabe5231]", "[fd5da2e0a984a3bb1788]", "0x20")
+ self.bid128_to_binary80("0", "[d5b64d78bc4b0f2b680eee7fdc0078bd]", "[fea5f253b2f233b9b07a]", "0x20")
+ self.bid128_to_binary80("1", "[d5b64d78bc4b0f2b680eee7fdc0078bd]", "[fea5f253b2f233b9b07b]", "0x20")
+ self.bid128_to_binary80("2", "[d5b64d78bc4b0f2b680eee7fdc0078bd]", "[fea5f253b2f233b9b07a]", "0x20")
+ self.bid128_to_binary80("3", "[d5b64d78bc4b0f2b680eee7fdc0078bd]", "[fea5f253b2f233b9b07a]", "0x20")
+ self.bid128_to_binary80("4", "[d5b64d78bc4b0f2b680eee7fdc0078bd]", "[fea5f253b2f233b9b07a]", "0x20")
+ self.bid128_to_binary80("0", "[d6863aa885cb1a6cecf38634ccf08e3a]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("1", "[d6863aa885cb1a6cecf38634ccf08e3a]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("2", "[d6863aa885cb1a6cecf38634ccf08e3a]", "[fffefffffffffffffffe]", "0x20")
+ self.bid128_to_binary80("3", "[d6863aa885cb1a6cecf38634ccf08e3a]", "[fffefffffffffffffffe]", "0x20")
+ self.bid128_to_binary80("4", "[d6863aa885cb1a6cecf38634ccf08e3a]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("0", "[d6863aa885cb1a6cecf38634ccf08e3b]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("1", "[d6863aa885cb1a6cecf38634ccf08e3b]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("2", "[d6863aa885cb1a6cecf38634ccf08e3b]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("3", "[d6863aa885cb1a6cecf38634ccf08e3b]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("4", "[d6863aa885cb1a6cecf38634ccf08e3b]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("0", "[d6863aa885cb1a6cecf3c0dd52bba8a7]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("1", "[d6863aa885cb1a6cecf3c0dd52bba8a7]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("2", "[d6863aa885cb1a6cecf3c0dd52bba8a7]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("3", "[d6863aa885cb1a6cecf3c0dd52bba8a7]", "[fffeffffffffffffffff]", "0x20")
+ self.bid128_to_binary80("4", "[d6863aa885cb1a6cecf3c0dd52bba8a7]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[d6863aa885cb1a6cecf3c0dd52bba8a8]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("1", "[d6863aa885cb1a6cecf3c0dd52bba8a8]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("2", "[d6863aa885cb1a6cecf3c0dd52bba8a8]", "[fffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("3", "[d6863aa885cb1a6cecf3c0dd52bba8a8]", "[fffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("4", "[d6863aa885cb1a6cecf3c0dd52bba8a8]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[dfffed09bead87c0378d8e63ffffffff]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("1", "[dfffed09bead87c0378d8e63ffffffff]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("2", "[dfffed09bead87c0378d8e63ffffffff]", "[fffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("3", "[dfffed09bead87c0378d8e63ffffffff]", "[fffeffffffffffffffff]", "0x28")
+ self.bid128_to_binary80("4", "[dfffed09bead87c0378d8e63ffffffff]", "[ffff8000000000000000]", "0x28")
+ self.bid128_to_binary80("0", "[f8000000000000000000000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid128_to_binary80("1", "[f8000000000000000000000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[f8000000000000000000000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid128_to_binary80("3", "[f8000000000000000000000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid128_to_binary80("4", "[f8000000000000000000000000000000]", "[ffff8000000000000000]", "0x00")
+ self.bid128_to_binary80("2", "[56863aa885cb1a6cecf38634ccf08e3b]", "[7fff8000000000000000]", "0x28")
+ }
+
+ private func bid128_to_binary80(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ guard let rounding = self.parseRounding(_rounding, file, line) else { return }
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseFloat80(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result = Float80(arg0, rounding: rounding, status: &status)
+ self.assertBinaryFloatingPoint(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+
+#endif
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelToDenselyPackedDecimalTests.swift b/Tests/DecimalTests/Intel - generated/IntelToDenselyPackedDecimalTests.swift
new file mode 100644
index 0000000..78703d1
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelToDenselyPackedDecimalTests.swift
@@ -0,0 +1,112 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelToDenselyPackedDecimalTests: XCTestCase, IntelMixin {
+
+ func test_bid_to_dpd128() {
+ self.bid_to_dpd128("0", "[00018a6e32246c99c60ad85000000001]", "[60000000000000000000000000000001]", "00")
+ self.bid_to_dpd128("0", "[0001bbbbf868fa2cfecc335a0000000b]", "[64000000000000000000000000000011]", "00")
+ self.bid_to_dpd128("0", "[0001ed09bead87c0378d8e62ffffffff]", "[64000ff3fcff3fcff3fcffa7f850cb83]", "00")
+ self.bid_to_dpd128("0", "[0001ed09bead87c0378d8e64ffffffff]", "[00000000000000000000000000000000]", "00")
+ self.bid_to_dpd128("0", "[2000c5371912364ce3056c2800000001]", "[30000000000000000000000000000001]", "00")
+ self.bid_to_dpd128("0", "[20018a6e32246c99c60ad850000000c9]", "[68000000000000000000000000000101]", "00")
+ self.bid_to_dpd128("0", "[40000000000000000000000000000001]", "[40000000000000000000000000000001]", "00")
+ self.bid_to_dpd128("0", "[4000c5371912364ce3056c2800000001]", "[50000000000000000000000000000001]", "00")
+ self.bid_to_dpd128("0", "[40018a6e32246c99c60ad85000000fa1]", "[70000000000000000000000000001001]", "00")
+ self.bid_to_dpd128("0", "[5ffc0000000000000000000000000001]", "[43ff8000000000000000000000000001]", "00")
+ self.bid_to_dpd128("0", "[5fffed09bead87c0378d8e63fffffffe]", "[77ffcff3fcff3fcff3fcff3fcff3fcfe]", "00")
+ self.bid_to_dpd128("0", "[5fffed09bead87c0378d8e63ffffffff]", "[77ffcff3fcff3fcff3fcff3fcff3fcff]", "00")
+ self.bid_to_dpd128("0", "[7c000000000000000000000000000001]", "[7c000000000000000000000000000001]", "00")
+ self.bid_to_dpd128("0", "[7c00314dc6448d9338c15b0b00000000]", "[7c000000000000000000000000000000]", "00")
+ self.bid_to_dpd128("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid_to_dpd128("0", "[7c003fffffffffff38c15b0affffffff]", "[7c000000000000000000000000000000]", "00")
+ self.bid_to_dpd128("0", "[d1ebb9a6abc8f235,0000000000001010]", "[f23d7ddf1f7514dce5d92444fb9ce00c]", "00")
+ self.bid_to_dpd128("0", "[d75ffffbffffffff,000400c000000100]", "[c2ebc000000000000000000000000000]", "00")
+ self.bid_to_dpd128("0", "[e9d2f58ff58a18ae,17828fe467e1f528]", "[a0e94000000000000000000000000000]", "00")
+ self.bid_to_dpd128("0", "[fa8c419c31b4b492,e48b05e2288b0459]", "[f8000000000000000000000000000000]", "00")
+ self.bid_to_dpd128("0", "[fefffdfddffdff6f,eefffd68fdffb87f]", "[fe000000000000000000000000000000]", "00")
+ self.bid_to_dpd128("0", "[7c000000000000000000000000000001]", "[7c000000000000000000000000000001]", "00")
+ }
+
+ private func bid_to_dpd128(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDenselyPackedDecimal128(_expected, file, line) else { return }
+
+ let result = arg0.decimalEncoding
+ self.assertInt(result, expected, file, line)
+ }
+
+ func test_bid_to_dpd32() {
+ self.bid_to_dpd32("0", "[04000000]", "[00800000]", "00")
+ self.bid_to_dpd32("0", "[0fff0000]", "[61f68c72]", "00")
+ self.bid_to_dpd32("0", "[607fffff]", "[00300000]", "00")
+ self.bid_to_dpd32("0", "[60989680]", "[00400000]", "00")
+ self.bid_to_dpd32("0", "[69911d3e]", "[6cca4106]", "00")
+ self.bid_to_dpd32("0", "[78000000]", "[78000000]", "00")
+ self.bid_to_dpd32("0", "[7c000001]", "[7c000001]", "00")
+ self.bid_to_dpd32("0", "[7c0be6ce]", "[7c0fe58e]", "00")
+ self.bid_to_dpd32("0", "[7c0fffff]", "[7c000000]", "00")
+ self.bid_to_dpd32("0", "[7c1f4240]", "[7c000000]", "00")
+ self.bid_to_dpd32("0", "[f1644411]", "[f0bda0f7]", "00")
+ self.bid_to_dpd32("0", "[fe000000]", "[fe000000]", "00")
+ self.bid_to_dpd32("0", "[7c0f423f]", "[7c03fcff]", "00")
+ }
+
+ private func bid_to_dpd32(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDenselyPackedDecimal32(_expected, file, line) else { return }
+
+ let result = arg0.decimalEncoding
+ self.assertInt(result, expected, file, line)
+ }
+
+ func test_bid_to_dpd64() {
+ self.bid_to_dpd64("0", "[0020002800000000]", "[0004003c7dec6c4c]", "00")
+ self.bid_to_dpd64("0", "[002000a000000000]", "[000400dacdaf9de0]", "00")
+ self.bid_to_dpd64("0", "[0060002800000000]", "[000c003c7dec6c4c]", "00")
+ self.bid_to_dpd64("0", "[7c00000000000001]", "[7c00000000000001]", "00")
+ self.bid_to_dpd64("0", "[8c0b7fb109411dd3]", "[8d8136c8c4b062f9]", "00")
+ self.bid_to_dpd64("0", "[cfcd6c91c703bfcc]", "[cdfbf8b206241eae]", "00")
+ self.bid_to_dpd64("0", "[dfff5f7f5fdfa6fb]", "[f3fc3ce91dc02243]", "00")
+ self.bid_to_dpd64("0", "[e943604fa1585191]", "[eca3dda65909d765]", "00")
+ self.bid_to_dpd64("0", "[e9adeffdfbbfc9f9]", "[a0d4000000000000]", "00")
+ self.bid_to_dpd64("0", "[f8779eb18c7a5a7f]", "[f800000000000000]", "00")
+ self.bid_to_dpd64("0", "[ff32ffdbfd0b7aa8]", "[fe024c5c161ea4ec]", "00")
+ self.bid_to_dpd64("0", "[ffffffffffdf3fff]", "[fe00000000000000]", "00")
+ self.bid_to_dpd64("0", "[7c00000000000001]", "[7c00000000000001]", "00")
+ }
+
+ private func bid_to_dpd64(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDenselyPackedDecimal64(_expected, file, line) else { return }
+
+ let result = arg0.decimalEncoding
+ self.assertInt(result, expected, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelToIntTests.swift b/Tests/DecimalTests/Intel - generated/IntelToIntTests.swift
new file mode 100644
index 0000000..dc687fa
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelToIntTests.swift
@@ -0,0 +1,39029 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelToIntTests: XCTestCase, IntelMixin {
+
+ func test_bid32_to_int16_ceil() {
+ self.bid32_to_int16_ceil("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_int16_ceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int16_ceil("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int16_ceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int16_ceil("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_int16_ceil("0", "[310003E7]", "1", "00")
+ self.bid32_to_int16_ceil("0", "[31B1FF6A]", "32767", "00")
+ self.bid32_to_int16_ceil("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_int16_ceil("0", "[31B1FFCE]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[31B20000]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[31B20032]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[31B20064]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[31E3FF9C]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[31E3FFCE]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[31E40000]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[31E40032]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[31E40064]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[32000005]", "1", "00")
+ self.bid32_to_int16_ceil("0", "[3200000F]", "2", "00")
+ self.bid32_to_int16_ceil("0", "[32000BBD]", "301", "00")
+ self.bid32_to_int16_ceil("0", "[3204FFF1]", "32767", "00")
+ self.bid32_to_int16_ceil("0", "[3204FFFB]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[32050005]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[3209FFFB]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[320A0005]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "32767.5", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[32800001]", "1", "00")
+ self.bid32_to_int16_ceil("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_int16_ceil("0", "[32808000]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[32808001]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[3280FFFF]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[32810000]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[32810001]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[33800003]", "300", "00")
+ self.bid32_to_int16_ceil("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int16_ceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int16_ceil("0", "[78000000]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[7c000000]", "-32768", "01")
+ self.bid32_to_int16_ceil("0", "[7e000000]", "-32768", "01")
+ }
+
+ private func bid32_to_int16_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int16_floor() {
+ self.bid32_to_int16_floor("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int16_floor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int16_floor("0", "[2F96E360]", "1", "00")
+ self.bid32_to_int16_floor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int16_floor("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_int16_floor("0", "[310003E7]", "0", "00")
+ self.bid32_to_int16_floor("0", "[31B1FF6A]", "32766", "00")
+ self.bid32_to_int16_floor("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_int16_floor("0", "[31B1FFCE]", "32767", "00")
+ self.bid32_to_int16_floor("0", "[31B20000]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[31B20032]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[31B20064]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[31E3FF9C]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[31E3FFCE]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[31E40000]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[31E40032]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[31E40064]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[32000005]", "0", "00")
+ self.bid32_to_int16_floor("0", "[3200000F]", "1", "00")
+ self.bid32_to_int16_floor("0", "[32000BBD]", "300", "00")
+ self.bid32_to_int16_floor("0", "[3204FFF1]", "32766", "00")
+ self.bid32_to_int16_floor("0", "[3204FFFB]", "32767", "00")
+ self.bid32_to_int16_floor("0", "[32050005]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[3209FFFB]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[320A0005]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "32767.5", "32767", "00")
+ self.bid32_to_int16_floor("0", "[32800001]", "1", "00")
+ self.bid32_to_int16_floor("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_int16_floor("0", "[32808000]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[32808001]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[3280FFFF]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[32810000]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[32810001]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[33800003]", "300", "00")
+ self.bid32_to_int16_floor("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_int16_floor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int16_floor("0", "[78000000]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[7c000000]", "-32768", "01")
+ self.bid32_to_int16_floor("0", "[7e000000]", "-32768", "01")
+ }
+
+ private func bid32_to_int16_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int16_int() {
+ self.bid32_to_int16_int("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int16_int("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int16_int("0", "[2F96E360]", "1", "00")
+ self.bid32_to_int16_int("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int16_int("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_int16_int("0", "[310003E7]", "0", "00")
+ self.bid32_to_int16_int("0", "[31B1FF6A]", "32766", "00")
+ self.bid32_to_int16_int("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_int16_int("0", "[31B1FFCE]", "32767", "00")
+ self.bid32_to_int16_int("0", "[31B20000]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[31B20032]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[31B20064]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[31E3FF9C]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[31E3FFCE]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[31E40000]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[31E40032]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[31E40064]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[32000005]", "0", "00")
+ self.bid32_to_int16_int("0", "[3200000F]", "1", "00")
+ self.bid32_to_int16_int("0", "[32000BBD]", "300", "00")
+ self.bid32_to_int16_int("0", "[3204FFF1]", "32766", "00")
+ self.bid32_to_int16_int("0", "[3204FFFB]", "32767", "00")
+ self.bid32_to_int16_int("0", "[32050005]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[3209FFFB]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[320A0005]", "-32768", "01")
+ self.bid32_to_int16_int("0", "32767.5", "32767", "00")
+ self.bid32_to_int16_int("0", "[32800001]", "1", "00")
+ self.bid32_to_int16_int("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_int16_int("0", "[32808000]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[32808001]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[3280FFFF]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[32810000]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[32810001]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[33800003]", "300", "00")
+ self.bid32_to_int16_int("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_int16_int("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int16_int("0", "[78000000]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[7c000000]", "-32768", "01")
+ self.bid32_to_int16_int("0", "[7e000000]", "-32768", "01")
+ }
+
+ private func bid32_to_int16_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int16_rnint() {
+ self.bid32_to_int16_rnint("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int16_rnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int16_rnint("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int16_rnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int16_rnint("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_int16_rnint("0", "[310003E7]", "1", "00")
+ self.bid32_to_int16_rnint("0", "[31B1FF6A]", "32766", "00")
+ self.bid32_to_int16_rnint("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_int16_rnint("0", "[31B1FFCE]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[31B20000]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[31B20032]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[31B20064]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[31E3FF9C]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[31E3FFCE]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[31E40000]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[31E40032]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[31E40064]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[32000005]", "0", "00")
+ self.bid32_to_int16_rnint("0", "[3200000F]", "2", "00")
+ self.bid32_to_int16_rnint("0", "[32000BBD]", "300", "00")
+ self.bid32_to_int16_rnint("0", "[3204FFF1]", "32766", "00")
+ self.bid32_to_int16_rnint("0", "[3204FFFB]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[32050005]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[3209FFFB]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[320A0005]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "32767.5", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[32800001]", "1", "00")
+ self.bid32_to_int16_rnint("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_int16_rnint("0", "[32808000]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[32808001]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[3280FFFF]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[32810000]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[32810001]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[33800003]", "300", "00")
+ self.bid32_to_int16_rnint("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int16_rnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int16_rnint("0", "[78000000]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[7c000000]", "-32768", "01")
+ self.bid32_to_int16_rnint("0", "[7e000000]", "-32768", "01")
+ }
+
+ private func bid32_to_int16_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int16_rninta() {
+ self.bid32_to_int16_rninta("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_int16_rninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int16_rninta("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int16_rninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int16_rninta("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_int16_rninta("0", "[310003E7]", "1", "00")
+ self.bid32_to_int16_rninta("0", "[31B1FF6A]", "32767", "00")
+ self.bid32_to_int16_rninta("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_int16_rninta("0", "[31B1FFCE]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[31B20000]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[31B20032]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[31B20064]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[31E3FF9C]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[31E3FFCE]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[31E40000]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[31E40032]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[31E40064]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[32000005]", "1", "00")
+ self.bid32_to_int16_rninta("0", "[3200000F]", "2", "00")
+ self.bid32_to_int16_rninta("0", "[32000BBD]", "301", "00")
+ self.bid32_to_int16_rninta("0", "[3204FFF1]", "32767", "00")
+ self.bid32_to_int16_rninta("0", "[3204FFFB]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[32050005]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[3209FFFB]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[320A0005]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "32767.5", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[32800001]", "1", "00")
+ self.bid32_to_int16_rninta("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_int16_rninta("0", "[32808000]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[32808001]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[3280FFFF]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[32810000]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[32810001]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[33800003]", "300", "00")
+ self.bid32_to_int16_rninta("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int16_rninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int16_rninta("0", "[78000000]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[7c000000]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "[7e000000]", "-32768", "01")
+ self.bid32_to_int16_rninta("0", "-9", "-9", "00")
+ }
+
+ private func bid32_to_int16_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int16_xceil() {
+ self.bid32_to_int16_xceil("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_int16_xceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int16_xceil("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int16_xceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int16_xceil("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_int16_xceil("0", "[310003E7]", "1", "20")
+ self.bid32_to_int16_xceil("0", "[31B1FF6A]", "32767", "20")
+ self.bid32_to_int16_xceil("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_int16_xceil("0", "[31B1FFCE]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[31B20000]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[31B20032]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[31B20064]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[31E3FF9C]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[31E3FFCE]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[31E40000]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[31E40032]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[31E40064]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[32000005]", "1", "20")
+ self.bid32_to_int16_xceil("0", "[3200000F]", "2", "20")
+ self.bid32_to_int16_xceil("0", "[32000BBD]", "301", "20")
+ self.bid32_to_int16_xceil("0", "[3204FFF1]", "32767", "20")
+ self.bid32_to_int16_xceil("0", "[3204FFFB]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[32050005]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[3209FFFB]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[320A0005]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "32767.5", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[32800001]", "1", "00")
+ self.bid32_to_int16_xceil("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_int16_xceil("0", "[32808000]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[32808001]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[3280FFFF]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[32810000]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[32810001]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[33800003]", "300", "00")
+ self.bid32_to_int16_xceil("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int16_xceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int16_xceil("0", "[78000000]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[7c000000]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "[7e000000]", "-32768", "01")
+ self.bid32_to_int16_xceil("0", "-1E-96", "0", "20")
+ self.bid32_to_int16_xceil("0", "-9", "-9", "00")
+ }
+
+ private func bid32_to_int16_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int16_xfloor() {
+ self.bid32_to_int16_xfloor("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int16_xfloor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int16_xfloor("0", "[2F96E360]", "1", "20")
+ self.bid32_to_int16_xfloor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int16_xfloor("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_int16_xfloor("0", "[310003E7]", "0", "20")
+ self.bid32_to_int16_xfloor("0", "[31B1FF6A]", "32766", "20")
+ self.bid32_to_int16_xfloor("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_int16_xfloor("0", "[31B1FFCE]", "32767", "20")
+ self.bid32_to_int16_xfloor("0", "[31B20000]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[31B20032]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[31B20064]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[31E3FF9C]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[31E3FFCE]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[31E40000]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[31E40032]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[31E40064]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[32000005]", "0", "20")
+ self.bid32_to_int16_xfloor("0", "[3200000F]", "1", "20")
+ self.bid32_to_int16_xfloor("0", "[32000BBD]", "300", "20")
+ self.bid32_to_int16_xfloor("0", "[3204FFF1]", "32766", "20")
+ self.bid32_to_int16_xfloor("0", "[3204FFFB]", "32767", "20")
+ self.bid32_to_int16_xfloor("0", "[32050005]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[3209FFFB]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[320A0005]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "32767.5", "32767", "20")
+ self.bid32_to_int16_xfloor("0", "[32800001]", "1", "00")
+ self.bid32_to_int16_xfloor("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_int16_xfloor("0", "[32808000]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[32808001]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[3280FFFF]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[32810000]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[32810001]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[33800003]", "300", "00")
+ self.bid32_to_int16_xfloor("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_int16_xfloor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int16_xfloor("0", "[78000000]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[7c000000]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "[7e000000]", "-32768", "01")
+ self.bid32_to_int16_xfloor("0", "-1E-96", "-1", "20")
+ self.bid32_to_int16_xfloor("0", "-9", "-9", "00")
+ }
+
+ private func bid32_to_int16_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int16_xint() {
+ self.bid32_to_int16_xint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int16_xint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int16_xint("0", "[2F96E360]", "1", "20")
+ self.bid32_to_int16_xint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int16_xint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_int16_xint("0", "[310003E7]", "0", "20")
+ self.bid32_to_int16_xint("0", "[31B1FF6A]", "32766", "20")
+ self.bid32_to_int16_xint("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_int16_xint("0", "[31B1FFCE]", "32767", "20")
+ self.bid32_to_int16_xint("0", "[31B20000]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[31B20032]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[31B20064]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[31E3FF9C]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[31E3FFCE]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[31E40000]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[31E40032]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[31E40064]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[32000005]", "0", "20")
+ self.bid32_to_int16_xint("0", "[3200000F]", "1", "20")
+ self.bid32_to_int16_xint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_int16_xint("0", "[3204FFF1]", "32766", "20")
+ self.bid32_to_int16_xint("0", "[3204FFFB]", "32767", "20")
+ self.bid32_to_int16_xint("0", "[32050005]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[3209FFFB]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[320A0005]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "32767.5", "32767", "20")
+ self.bid32_to_int16_xint("0", "[32800001]", "1", "00")
+ self.bid32_to_int16_xint("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_int16_xint("0", "[32808000]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[32808001]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[3280FFFF]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[32810000]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[32810001]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[33800003]", "300", "00")
+ self.bid32_to_int16_xint("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_int16_xint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int16_xint("0", "[78000000]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[7c000000]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "[7e000000]", "-32768", "01")
+ self.bid32_to_int16_xint("0", "-9", "-9", "00")
+ }
+
+ private func bid32_to_int16_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int16_xrnint() {
+ self.bid32_to_int16_xrnint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int16_xrnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int16_xrnint("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int16_xrnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int16_xrnint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_int16_xrnint("0", "[310003E7]", "1", "20")
+ self.bid32_to_int16_xrnint("0", "[31B1FF6A]", "32766", "20")
+ self.bid32_to_int16_xrnint("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_int16_xrnint("0", "[31B1FFCE]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[31B20000]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[31B20032]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[31B20064]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[31E3FF9C]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[31E3FFCE]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[31E40000]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[31E40032]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[31E40064]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[32000005]", "0", "20")
+ self.bid32_to_int16_xrnint("0", "[3200000F]", "2", "20")
+ self.bid32_to_int16_xrnint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_int16_xrnint("0", "[3204FFF1]", "32766", "20")
+ self.bid32_to_int16_xrnint("0", "[3204FFFB]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[32050005]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[3209FFFB]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[320A0005]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "32767.5", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[32800001]", "1", "00")
+ self.bid32_to_int16_xrnint("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_int16_xrnint("0", "[32808000]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[32808001]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[3280FFFF]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[32810000]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[32810001]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[33800003]", "300", "00")
+ self.bid32_to_int16_xrnint("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int16_xrnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int16_xrnint("0", "[78000000]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[7c000000]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "[7e000000]", "-32768", "01")
+ self.bid32_to_int16_xrnint("0", "1E-96", "0", "20")
+ self.bid32_to_int16_xrnint("0", "-9", "-9", "00")
+ self.bid32_to_int16_xrnint("0", "5.05", "5", "20")
+ self.bid32_to_int16_xrnint("0", "5.0005", "5", "20")
+ }
+
+ private func bid32_to_int16_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int16_xrninta() {
+ self.bid32_to_int16_xrninta("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_int16_xrninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int16_xrninta("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int16_xrninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int16_xrninta("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_int16_xrninta("0", "[310003E7]", "1", "20")
+ self.bid32_to_int16_xrninta("0", "[31B1FF6A]", "32767", "20")
+ self.bid32_to_int16_xrninta("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_int16_xrninta("0", "[31B1FFCE]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[31B20000]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[31B20032]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[31B20064]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[31E3FF9C]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[31E3FFCE]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[31E40000]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[31E40032]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[31E40064]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[32000005]", "1", "20")
+ self.bid32_to_int16_xrninta("0", "[3200000F]", "2", "20")
+ self.bid32_to_int16_xrninta("0", "[32000BBD]", "301", "20")
+ self.bid32_to_int16_xrninta("0", "[3204FFF1]", "32767", "20")
+ self.bid32_to_int16_xrninta("0", "[3204FFFB]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[32050005]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[3209FFFB]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[320A0005]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "32767.5", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[32800001]", "1", "00")
+ self.bid32_to_int16_xrninta("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_int16_xrninta("0", "[32808000]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[32808001]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[3280FFFF]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[32810000]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[32810001]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[33800003]", "300", "00")
+ self.bid32_to_int16_xrninta("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int16_xrninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int16_xrninta("0", "[78000000]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[7c000000]", "-32768", "01")
+ self.bid32_to_int16_xrninta("0", "[7e000000]", "-32768", "01")
+ }
+
+ private func bid32_to_int16_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int32_ceil() {
+ self.bid32_to_int32_ceil("0", "1", "1", "00")
+ self.bid32_to_int32_ceil("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_int32_ceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int32_ceil("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int32_ceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int32_ceil("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_int32_ceil("0", "[310003E7]", "1", "00")
+ self.bid32_to_int32_ceil("0", "[32000005]", "1", "00")
+ self.bid32_to_int32_ceil("0", "[3200000F]", "2", "00")
+ self.bid32_to_int32_ceil("0", "[32000BBD]", "301", "00")
+ self.bid32_to_int32_ceil("0", "[32800001]", "1", "00")
+ self.bid32_to_int32_ceil("0", "[33800003]", "300", "00")
+ self.bid32_to_int32_ceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[343D0900]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[344C4B40]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[37000004]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[37000005]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int32_ceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int32_ceil("0", "[78000000]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[7c000000]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[7e000000]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "-99999.51", "-99999", "00")
+ self.bid32_to_int32_ceil("0", "999999.5", "1000000", "00")
+ self.bid32_to_int32_ceil("0", "9.99E+32", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[93c6fc97]", "0", "00")
+ self.bid32_to_int32_ceil("0", "[ecd7924f]", "-99333910", "00")
+ self.bid32_to_int32_ceil("0", "[b452f3e4]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[b2cdad3b]", "-5090619", "00")
+ self.bid32_to_int32_ceil("0", "[93c6fc97]", "0", "00")
+ self.bid32_to_int32_ceil("0", "[ecd7924f]", "-99333910", "00")
+ self.bid32_to_int32_ceil("0", "[b452f3e4]", "-2147483648", "01")
+ self.bid32_to_int32_ceil("0", "[b2cdad3b]", "-5090619", "00")
+ }
+
+ private func bid32_to_int32_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int32_floor() {
+ self.bid32_to_int32_floor("0", "1", "1", "00")
+ self.bid32_to_int32_floor("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int32_floor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int32_floor("0", "[2F96E360]", "1", "00")
+ self.bid32_to_int32_floor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int32_floor("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_int32_floor("0", "[310003E7]", "0", "00")
+ self.bid32_to_int32_floor("0", "[32000005]", "0", "00")
+ self.bid32_to_int32_floor("0", "[3200000F]", "1", "00")
+ self.bid32_to_int32_floor("0", "[32000BBD]", "300", "00")
+ self.bid32_to_int32_floor("0", "[32800001]", "1", "00")
+ self.bid32_to_int32_floor("0", "[33800003]", "300", "00")
+ self.bid32_to_int32_floor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[343D0900]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[344C4B40]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[37000004]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[37000005]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_int32_floor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int32_floor("0", "[78000000]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[7c000000]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[7e000000]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "-99999.51", "-100000", "00")
+ self.bid32_to_int32_floor("0", "999999.5", "999999", "00")
+ self.bid32_to_int32_floor("0", "9.99E+32", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[e5f47fb9]", "-1", "00")
+ self.bid32_to_int32_floor("0", "[b477a242]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[ebefa8cf]", "-10", "00")
+ self.bid32_to_int32_floor("0", "[b4180630]", "-1574448000", "00")
+ self.bid32_to_int32_floor("0", "[eca46618]", "-8676888", "00")
+ self.bid32_to_int32_floor("0", "[e5f47fb9]", "-1", "00")
+ self.bid32_to_int32_floor("0", "[b477a242]", "-2147483648", "01")
+ self.bid32_to_int32_floor("0", "[ebefa8cf]", "-10", "00")
+ self.bid32_to_int32_floor("0", "[b4180630]", "-1574448000", "00")
+ self.bid32_to_int32_floor("0", "[eca46618]", "-8676888", "00")
+ }
+
+ private func bid32_to_int32_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int32_int() {
+ self.bid32_to_int32_int("0", "1", "1", "00")
+ self.bid32_to_int32_int("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int32_int("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int32_int("0", "[2F96E360]", "1", "00")
+ self.bid32_to_int32_int("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int32_int("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_int32_int("0", "[310003E7]", "0", "00")
+ self.bid32_to_int32_int("0", "[32000005]", "0", "00")
+ self.bid32_to_int32_int("0", "[3200000F]", "1", "00")
+ self.bid32_to_int32_int("0", "[32000BBD]", "300", "00")
+ self.bid32_to_int32_int("0", "[32800001]", "1", "00")
+ self.bid32_to_int32_int("0", "[33800003]", "300", "00")
+ self.bid32_to_int32_int("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[343D0900]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[344C4B40]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[37000004]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[37000005]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_int32_int("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int32_int("0", "[78000000]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[7c000000]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[7e000000]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "-99999.51", "-99999", "00")
+ self.bid32_to_int32_int("0", "999999.5", "999999", "00")
+ self.bid32_to_int32_int("0", "9.99E+32", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[b4296e09]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[ecaecdb2]", "-9358770", "00")
+ self.bid32_to_int32_int("0", "[b376a87c]", "-77763800", "00")
+ self.bid32_to_int32_int("0", "[b4296e09]", "-2147483648", "01")
+ self.bid32_to_int32_int("0", "[ecaecdb2]", "-9358770", "00")
+ self.bid32_to_int32_int("0", "[b376a87c]", "-77763800", "00")
+ }
+
+ private func bid32_to_int32_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int32_rnint() {
+ self.bid32_to_int32_rnint("0", "1", "1", "00")
+ self.bid32_to_int32_rnint("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int32_rnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int32_rnint("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int32_rnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int32_rnint("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_int32_rnint("0", "[310003E7]", "1", "00")
+ self.bid32_to_int32_rnint("0", "[32000005]", "0", "00")
+ self.bid32_to_int32_rnint("0", "[3200000F]", "2", "00")
+ self.bid32_to_int32_rnint("0", "[32000BBD]", "300", "00")
+ self.bid32_to_int32_rnint("0", "[32800001]", "1", "00")
+ self.bid32_to_int32_rnint("0", "[33800003]", "300", "00")
+ self.bid32_to_int32_rnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[343D0900]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[344C4B40]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[37000004]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[37000005]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int32_rnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int32_rnint("0", "[78000000]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[7c000000]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[7e000000]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "-99999.51", "-100000", "00")
+ self.bid32_to_int32_rnint("0", "999999.5", "1000000", "00")
+ self.bid32_to_int32_rnint("0", "9.99E+32", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[6097d406]", "0", "00")
+ self.bid32_to_int32_rnint("0", "[b340f2e2]", "-42564820", "00")
+ self.bid32_to_int32_rnint("0", "[af7ee7c4]", "-1", "00")
+ self.bid32_to_int32_rnint("0", "[b28985da]", "-624090", "00")
+ self.bid32_to_int32_rnint("0", "[b42b9828]", "-2147483648", "01")
+ self.bid32_to_int32_rnint("0", "[6097d406]", "0", "00")
+ self.bid32_to_int32_rnint("0", "[b340f2e2]", "-42564820", "00")
+ self.bid32_to_int32_rnint("0", "[af7ee7c4]", "-1", "00")
+ self.bid32_to_int32_rnint("0", "[b28985da]", "-624090", "00")
+ self.bid32_to_int32_rnint("0", "[b42b9828]", "-2147483648", "01")
+ }
+
+ private func bid32_to_int32_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int32_rninta() {
+ self.bid32_to_int32_rninta("0", "1", "1", "00")
+ self.bid32_to_int32_rninta("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_int32_rninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int32_rninta("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int32_rninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int32_rninta("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_int32_rninta("0", "[310003E7]", "1", "00")
+ self.bid32_to_int32_rninta("0", "[32000005]", "1", "00")
+ self.bid32_to_int32_rninta("0", "[3200000F]", "2", "00")
+ self.bid32_to_int32_rninta("0", "[32000BBD]", "301", "00")
+ self.bid32_to_int32_rninta("0", "[32800001]", "1", "00")
+ self.bid32_to_int32_rninta("0", "[33800003]", "300", "00")
+ self.bid32_to_int32_rninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[343D0900]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[344C4B40]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[37000004]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[37000005]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int32_rninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int32_rninta("0", "[78000000]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[7c000000]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[7e000000]", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "-99999.51", "-100000", "00")
+ self.bid32_to_int32_rninta("0", "999999.5", "1000000", "00")
+ self.bid32_to_int32_rninta("0", "9.99E+32", "-2147483648", "01")
+ self.bid32_to_int32_rninta("0", "[9e429fd5]", "0", "00")
+ self.bid32_to_int32_rninta("0", "[af1d57f9]", "0", "00")
+ self.bid32_to_int32_rninta("0", "[9e429fd5]", "0", "00")
+ self.bid32_to_int32_rninta("0", "[af1d57f9]", "0", "00")
+ }
+
+ private func bid32_to_int32_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int32_xceil() {
+ self.bid32_to_int32_xceil("0", "1", "1", "00")
+ self.bid32_to_int32_xceil("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_int32_xceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int32_xceil("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int32_xceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int32_xceil("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_int32_xceil("0", "[310003E7]", "1", "20")
+ self.bid32_to_int32_xceil("0", "[32000005]", "1", "20")
+ self.bid32_to_int32_xceil("0", "[3200000F]", "2", "20")
+ self.bid32_to_int32_xceil("0", "[32000BBD]", "301", "20")
+ self.bid32_to_int32_xceil("0", "[32800001]", "1", "00")
+ self.bid32_to_int32_xceil("0", "[33800003]", "300", "00")
+ self.bid32_to_int32_xceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[343D0900]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[344C4B40]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[37000004]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[37000005]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int32_xceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int32_xceil("0", "[78000000]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[7c000000]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "[7e000000]", "-2147483648", "01")
+ self.bid32_to_int32_xceil("0", "-99999.51", "-99999", "20")
+ self.bid32_to_int32_xceil("0", "999999.5", "1000000", "20")
+ self.bid32_to_int32_xceil("0", "9.99E+32", "-2147483648", "01")
+ }
+
+ private func bid32_to_int32_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int32_xfloor() {
+ self.bid32_to_int32_xfloor("0", "1", "1", "00")
+ self.bid32_to_int32_xfloor("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int32_xfloor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int32_xfloor("0", "[2F96E360]", "1", "20")
+ self.bid32_to_int32_xfloor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int32_xfloor("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_int32_xfloor("0", "[310003E7]", "0", "20")
+ self.bid32_to_int32_xfloor("0", "[32000005]", "0", "20")
+ self.bid32_to_int32_xfloor("0", "[3200000F]", "1", "20")
+ self.bid32_to_int32_xfloor("0", "[32000BBD]", "300", "20")
+ self.bid32_to_int32_xfloor("0", "[32800001]", "1", "00")
+ self.bid32_to_int32_xfloor("0", "[33800003]", "300", "00")
+ self.bid32_to_int32_xfloor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[343D0900]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[344C4B40]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[37000004]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[37000005]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_int32_xfloor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int32_xfloor("0", "[78000000]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[7c000000]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "[7e000000]", "-2147483648", "01")
+ self.bid32_to_int32_xfloor("0", "-99999.51", "-100000", "20")
+ self.bid32_to_int32_xfloor("0", "999999.5", "999999", "20")
+ self.bid32_to_int32_xfloor("0", "9.99E+32", "-2147483648", "01")
+ }
+
+ private func bid32_to_int32_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int32_xint() {
+ self.bid32_to_int32_xint("0", "1", "1", "00")
+ self.bid32_to_int32_xint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int32_xint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int32_xint("0", "[2F96E360]", "1", "20")
+ self.bid32_to_int32_xint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int32_xint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_int32_xint("0", "[310003E7]", "0", "20")
+ self.bid32_to_int32_xint("0", "[32000005]", "0", "20")
+ self.bid32_to_int32_xint("0", "[3200000F]", "1", "20")
+ self.bid32_to_int32_xint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_int32_xint("0", "[32800001]", "1", "00")
+ self.bid32_to_int32_xint("0", "[33800003]", "300", "00")
+ self.bid32_to_int32_xint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[343D0900]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[344C4B40]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[37000004]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[37000005]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_int32_xint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int32_xint("0", "[78000000]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[7c000000]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "[7e000000]", "-2147483648", "01")
+ self.bid32_to_int32_xint("0", "-99999.51", "-99999", "20")
+ self.bid32_to_int32_xint("0", "999999.5", "999999", "20")
+ self.bid32_to_int32_xint("0", "9.99E+32", "-2147483648", "01")
+ }
+
+ private func bid32_to_int32_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int32_xrnint() {
+ self.bid32_to_int32_xrnint("0", "1", "1", "00")
+ self.bid32_to_int32_xrnint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int32_xrnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int32_xrnint("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int32_xrnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int32_xrnint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_int32_xrnint("0", "[310003E7]", "1", "20")
+ self.bid32_to_int32_xrnint("0", "[32000005]", "0", "20")
+ self.bid32_to_int32_xrnint("0", "[3200000F]", "2", "20")
+ self.bid32_to_int32_xrnint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_int32_xrnint("0", "[32800001]", "1", "00")
+ self.bid32_to_int32_xrnint("0", "[33800003]", "300", "00")
+ self.bid32_to_int32_xrnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[343D0900]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[344C4B40]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[37000004]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[37000005]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int32_xrnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int32_xrnint("0", "[78000000]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[7c000000]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "[7e000000]", "-2147483648", "01")
+ self.bid32_to_int32_xrnint("0", "-99999.51", "-100000", "20")
+ self.bid32_to_int32_xrnint("0", "999999.5", "1000000", "20")
+ self.bid32_to_int32_xrnint("0", "9.99E+32", "-2147483648", "01")
+ }
+
+ private func bid32_to_int32_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int32_xrninta() {
+ self.bid32_to_int32_xrninta("0", "1", "1", "00")
+ self.bid32_to_int32_xrninta("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_int32_xrninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int32_xrninta("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int32_xrninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int32_xrninta("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_int32_xrninta("0", "[310003E7]", "1", "20")
+ self.bid32_to_int32_xrninta("0", "[32000005]", "1", "20")
+ self.bid32_to_int32_xrninta("0", "[3200000F]", "2", "20")
+ self.bid32_to_int32_xrninta("0", "[32000BBD]", "301", "20")
+ self.bid32_to_int32_xrninta("0", "[32800001]", "1", "00")
+ self.bid32_to_int32_xrninta("0", "[33800003]", "300", "00")
+ self.bid32_to_int32_xrninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[3420C49C]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[343D0900]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[34418937]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[344C4B40]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[349E8480]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[37000004]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[37000005]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[37800002]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int32_xrninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int32_xrninta("0", "[78000000]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[7c000000]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[7e000000]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "-99999.51", "-100000", "20")
+ self.bid32_to_int32_xrninta("0", "999999.5", "1000000", "20")
+ self.bid32_to_int32_xrninta("0", "9.99E+32", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[83c38f12]", "0", "20")
+ self.bid32_to_int32_xrninta("0", "[ec308823]", "-947", "20")
+ self.bid32_to_int32_xrninta("0", "[b151f5b3]", "-5371", "20")
+ self.bid32_to_int32_xrninta("0", "[b4821111]", "-1354410000", "00")
+ self.bid32_to_int32_xrninta("0", "[b2ba2474]", "-3810420", "00")
+ self.bid32_to_int32_xrninta("0", "[af58924a]", "-1", "20")
+ self.bid32_to_int32_xrninta("0", "[ed02e042]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[af204833]", "0", "20")
+ self.bid32_to_int32_xrninta("0", "[83c38f12]", "0", "20")
+ self.bid32_to_int32_xrninta("0", "[ec308823]", "-947", "20")
+ self.bid32_to_int32_xrninta("0", "[b151f5b3]", "-5371", "20")
+ self.bid32_to_int32_xrninta("0", "[b4821111]", "-1354410000", "00")
+ self.bid32_to_int32_xrninta("0", "[b2ba2474]", "-3810420", "00")
+ self.bid32_to_int32_xrninta("0", "[af58924a]", "-1", "20")
+ self.bid32_to_int32_xrninta("0", "[ed02e042]", "-2147483648", "01")
+ self.bid32_to_int32_xrninta("0", "[af204833]", "0", "20")
+ }
+
+ private func bid32_to_int32_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int64_ceil() {
+ self.bid32_to_int64_ceil("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_int64_ceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int64_ceil("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int64_ceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int64_ceil("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_int64_ceil("0", "[310003E7]", "1", "00")
+ self.bid32_to_int64_ceil("0", "[32000005]", "1", "00")
+ self.bid32_to_int64_ceil("0", "[3200000F]", "2", "00")
+ self.bid32_to_int64_ceil("0", "[32000BBD]", "301", "00")
+ self.bid32_to_int64_ceil("0", "[32800001]", "1", "00")
+ self.bid32_to_int64_ceil("0", "[33800003]", "300", "00")
+ self.bid32_to_int64_ceil("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_int64_ceil("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_int64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_ceil("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_ceil("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_int64_ceil("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_int64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_ceil("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[3916E360]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[391E8480]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[392625A0]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[398F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[3B80000F]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[3B800019]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[3C000002]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[3C800001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int64_ceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[78000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[7c000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[7e000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[9f2a7e77]", "0", "00")
+ self.bid32_to_int64_ceil("0", "[b1e6e4f3]", "-67432", "00")
+ self.bid32_to_int64_ceil("0", "[b7779680]", "-7837312000000000", "00")
+ self.bid32_to_int64_ceil("0", "[b8ad09ed]", "-2951661000000000000", "00")
+ self.bid32_to_int64_ceil("0", "[b2aff7d7]", "-3143639", "00")
+ self.bid32_to_int64_ceil("0", "[390ec0ec]", "-9223372036854775808", "01")
+ self.bid32_to_int64_ceil("0", "[ee2d211a]", "-9223372036854775808", "01")
+ }
+
+ private func bid32_to_int64_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int64_floor() {
+ self.bid32_to_int64_floor("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int64_floor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int64_floor("0", "[2F96E360]", "1", "00")
+ self.bid32_to_int64_floor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int64_floor("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_int64_floor("0", "[310003E7]", "0", "00")
+ self.bid32_to_int64_floor("0", "[32000005]", "0", "00")
+ self.bid32_to_int64_floor("0", "[3200000F]", "1", "00")
+ self.bid32_to_int64_floor("0", "[32000BBD]", "300", "00")
+ self.bid32_to_int64_floor("0", "[32800001]", "1", "00")
+ self.bid32_to_int64_floor("0", "[33800003]", "300", "00")
+ self.bid32_to_int64_floor("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_int64_floor("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_int64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_floor("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_floor("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_int64_floor("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_int64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_floor("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[3916E360]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[391E8480]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[392625A0]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[398F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_floor("0", "[3B80000F]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[3B800019]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[3C000002]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[3C800001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_int64_floor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_floor("0", "[78000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[7c000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[7e000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_int64_floor("0", "[abb6ec5e]", "-1", "00")
+ self.bid32_to_int64_floor("0", "[b573664e]", "-756283000000", "00")
+ self.bid32_to_int64_floor("0", "[aff9a3e7]", "-8", "00")
+ self.bid32_to_int64_floor("0", "[b1468402]", "-4622", "00")
+ self.bid32_to_int64_floor("0", "[b907acb3]", "-5029630000000000000", "00")
+ self.bid32_to_int64_floor("0", "[b2d974f6]", "-5862646", "00")
+ self.bid32_to_int64_floor("0", "[6e2fe37b]", "-9223372036854775808", "01")
+ self.bid32_to_int64_floor("0", "[ee37276b]", "-9223372036854775808", "01")
+ }
+
+ private func bid32_to_int64_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int64_int() {
+ self.bid32_to_int64_int("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int64_int("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int64_int("0", "[2F96E360]", "1", "00")
+ self.bid32_to_int64_int("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int64_int("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_int64_int("0", "[310003E7]", "0", "00")
+ self.bid32_to_int64_int("0", "[32000005]", "0", "00")
+ self.bid32_to_int64_int("0", "[3200000F]", "1", "00")
+ self.bid32_to_int64_int("0", "[32000BBD]", "300", "00")
+ self.bid32_to_int64_int("0", "[32800001]", "1", "00")
+ self.bid32_to_int64_int("0", "[33800003]", "300", "00")
+ self.bid32_to_int64_int("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_int64_int("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_int64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_int("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_int("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_int64_int("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_int64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_int("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[3916E360]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[391E8480]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[392625A0]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[398F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_int("0", "[3B80000F]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[3B800019]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[3C000002]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[3C800001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_int64_int("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_int("0", "[78000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[7c000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[7e000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_int64_int("0", "[b348af10]", "-47634080", "00")
+ self.bid32_to_int64_int("0", "[b8fd0b20]", "-8194848000000000000", "00")
+ self.bid32_to_int64_int("0", "[b118546b]", "-1594", "00")
+ self.bid32_to_int64_int("0", "[b2e373ef]", "-6517743", "00")
+ self.bid32_to_int64_int("0", "[6e37ff6b]", "-9223372036854775808", "01")
+ self.bid32_to_int64_int("0", "[ee34dc83]", "-9223372036854775808", "01")
+ }
+
+ private func bid32_to_int64_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int64_rnint() {
+ self.bid32_to_int64_rnint("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int64_rnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int64_rnint("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int64_rnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int64_rnint("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_int64_rnint("0", "[310003E7]", "1", "00")
+ self.bid32_to_int64_rnint("0", "[32000005]", "0", "00")
+ self.bid32_to_int64_rnint("0", "[3200000F]", "2", "00")
+ self.bid32_to_int64_rnint("0", "[32000BBD]", "300", "00")
+ self.bid32_to_int64_rnint("0", "[32800001]", "1", "00")
+ self.bid32_to_int64_rnint("0", "[33800003]", "300", "00")
+ self.bid32_to_int64_rnint("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_int64_rnint("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_int64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_rnint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_rnint("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_int64_rnint("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_int64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rnint("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[3916E360]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[391E8480]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[392625A0]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[398F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[3B80000F]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[3B800019]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[3C000002]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[3C800001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int64_rnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[78000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[7c000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[7e000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[1a0b8046]", "0", "00")
+ self.bid32_to_int64_rnint("0", "[b6bf79a9]", "-415991300000000", "00")
+ self.bid32_to_int64_rnint("0", "[b1083e83]", "-540", "00")
+ self.bid32_to_int64_rnint("0", "[b8fd527a]", "-8213114000000000000", "00")
+ self.bid32_to_int64_rnint("0", "[6e339763]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[b2d4e02b]", "-5562411", "00")
+ self.bid32_to_int64_rnint("0", "[af79538c]", "-1", "00")
+ self.bid32_to_int64_rnint("0", "[b90e14c3]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rnint("0", "[1a0b8046]", "0", "00")
+ self.bid32_to_int64_rnint("0", "[b6bf79a9]", "-415991300000000", "00")
+ self.bid32_to_int64_rnint("0", "[b1083e83]", "-540", "00")
+ self.bid32_to_int64_rnint("0", "[b8fd527a]", "-8213114000000000000", "00")
+ }
+
+ private func bid32_to_int64_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int64_rninta() {
+ self.bid32_to_int64_rninta("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_int64_rninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int64_rninta("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int64_rninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int64_rninta("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_int64_rninta("0", "[310003E7]", "1", "00")
+ self.bid32_to_int64_rninta("0", "[32000005]", "1", "00")
+ self.bid32_to_int64_rninta("0", "[3200000F]", "2", "00")
+ self.bid32_to_int64_rninta("0", "[32000BBD]", "301", "00")
+ self.bid32_to_int64_rninta("0", "[32800001]", "1", "00")
+ self.bid32_to_int64_rninta("0", "[33800003]", "300", "00")
+ self.bid32_to_int64_rninta("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_int64_rninta("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_int64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_rninta("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_rninta("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_int64_rninta("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_int64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_rninta("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[3916E360]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[391E8480]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[392625A0]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[398F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[3B80000F]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[3B800019]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[3C000002]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[3C800001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int64_rninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[78000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[7c000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[7e000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_int64_rninta("0", "[02150004]", "0", "00")
+ self.bid32_to_int64_rninta("0", "[2f1609ec]", "0", "00")
+ self.bid32_to_int64_rninta("0", "[ee35f9c8]", "-9223372036854775808", "01")
+ self.bid32_to_int64_rninta("0", "[6e2d3f13]", "-9223372036854775808", "01")
+ }
+
+ private func bid32_to_int64_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int64_xceil() {
+ self.bid32_to_int64_xceil("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_int64_xceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int64_xceil("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int64_xceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int64_xceil("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_int64_xceil("0", "[310003E7]", "1", "20")
+ self.bid32_to_int64_xceil("0", "[32000005]", "1", "20")
+ self.bid32_to_int64_xceil("0", "[3200000F]", "2", "20")
+ self.bid32_to_int64_xceil("0", "[32000BBD]", "301", "20")
+ self.bid32_to_int64_xceil("0", "[32800001]", "1", "00")
+ self.bid32_to_int64_xceil("0", "[33800003]", "300", "00")
+ self.bid32_to_int64_xceil("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_int64_xceil("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_int64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_xceil("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_xceil("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_int64_xceil("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_int64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xceil("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[3916E360]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[391E8480]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[392625A0]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[398F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[3B80000F]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[3B800019]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[3C000002]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[3C800001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int64_xceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[78000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[7c000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[7e000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[b7779680]", "-7837312000000000", "00")
+ self.bid32_to_int64_xceil("0", "[b8ad09ed]", "-2951661000000000000", "00")
+ self.bid32_to_int64_xceil("0", "[b2aff7d7]", "-3143639", "00")
+ self.bid32_to_int64_xceil("0", "[390ec0ec]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xceil("0", "[ee2d211a]", "-9223372036854775808", "01")
+ }
+
+ private func bid32_to_int64_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int64_xfloor() {
+ self.bid32_to_int64_xfloor("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int64_xfloor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int64_xfloor("0", "[2F96E360]", "1", "20")
+ self.bid32_to_int64_xfloor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int64_xfloor("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_int64_xfloor("0", "[310003E7]", "0", "20")
+ self.bid32_to_int64_xfloor("0", "[32000005]", "0", "20")
+ self.bid32_to_int64_xfloor("0", "[3200000F]", "1", "20")
+ self.bid32_to_int64_xfloor("0", "[32000BBD]", "300", "20")
+ self.bid32_to_int64_xfloor("0", "[32800001]", "1", "00")
+ self.bid32_to_int64_xfloor("0", "[33800003]", "300", "00")
+ self.bid32_to_int64_xfloor("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_xfloor("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_xfloor("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[3916E360]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[391E8480]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[392625A0]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[398F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[3B80000F]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[3B800019]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[3C000002]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[3C800001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_int64_xfloor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[78000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[7c000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[7e000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[b573664e]", "-756283000000", "00")
+ self.bid32_to_int64_xfloor("0", "[b907acb3]", "-5029630000000000000", "00")
+ self.bid32_to_int64_xfloor("0", "[b2d974f6]", "-5862646", "00")
+ self.bid32_to_int64_xfloor("0", "[6e2fe37b]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xfloor("0", "[ee37276b]", "-9223372036854775808", "01")
+ }
+
+ private func bid32_to_int64_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int64_xint() {
+ self.bid32_to_int64_xint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int64_xint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int64_xint("0", "[2F96E360]", "1", "20")
+ self.bid32_to_int64_xint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int64_xint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_int64_xint("0", "[310003E7]", "0", "20")
+ self.bid32_to_int64_xint("0", "[32000005]", "0", "20")
+ self.bid32_to_int64_xint("0", "[3200000F]", "1", "20")
+ self.bid32_to_int64_xint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_int64_xint("0", "[32800001]", "1", "00")
+ self.bid32_to_int64_xint("0", "[33800003]", "300", "00")
+ self.bid32_to_int64_xint("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_int64_xint("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_int64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_xint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_xint("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_int64_xint("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_int64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xint("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[3916E360]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[391E8480]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[392625A0]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[398F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xint("0", "[3B80000F]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[3B800019]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[3C000002]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[3C800001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_int64_xint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xint("0", "[78000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[7c000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[7e000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_int64_xint("0", "[6e37ff6b]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xint("0", "[ee34dc83]", "-9223372036854775808", "01")
+ }
+
+ private func bid32_to_int64_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int64_xrnint() {
+ self.bid32_to_int64_xrnint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int64_xrnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int64_xrnint("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int64_xrnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int64_xrnint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_int64_xrnint("0", "[310003E7]", "1", "20")
+ self.bid32_to_int64_xrnint("0", "[32000005]", "0", "20")
+ self.bid32_to_int64_xrnint("0", "[3200000F]", "2", "20")
+ self.bid32_to_int64_xrnint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_int64_xrnint("0", "[32800001]", "1", "00")
+ self.bid32_to_int64_xrnint("0", "[33800003]", "300", "00")
+ self.bid32_to_int64_xrnint("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_xrnint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_xrnint("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[3916E360]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[391E8480]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[392625A0]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[398F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[3B80000F]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[3B800019]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[3C000002]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[3C800001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int64_xrnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[78000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[7c000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[7e000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_int64_xrnint("0", "[6e339763]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrnint("0", "[b2d4e02b]", "-5562411", "00")
+ self.bid32_to_int64_xrnint("0", "[b90e14c3]", "-9223372036854775808", "01")
+ }
+
+ private func bid32_to_int64_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int64_xrninta() {
+ self.bid32_to_int64_xrninta("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_int64_xrninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int64_xrninta("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int64_xrninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_int64_xrninta("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_int64_xrninta("0", "[310003E7]", "1", "20")
+ self.bid32_to_int64_xrninta("0", "[32000005]", "1", "20")
+ self.bid32_to_int64_xrninta("0", "[3200000F]", "2", "20")
+ self.bid32_to_int64_xrninta("0", "[32000BBD]", "301", "20")
+ self.bid32_to_int64_xrninta("0", "[32800001]", "1", "00")
+ self.bid32_to_int64_xrninta("0", "[33800003]", "300", "00")
+ self.bid32_to_int64_xrninta("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_xrninta("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_int64_xrninta("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[390F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[3916E360]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[391C25C2]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[391E8480]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[392625A0]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[398F4240]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[3B80000F]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[3B800019]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[3C000001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[3C000002]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[3C800001]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int64_xrninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[78000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[7c000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[7e000000]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[1fa89a0e]", "0", "20")
+ self.bid32_to_int64_xrninta("0", "[b177f37f]", "-7861", "20")
+ self.bid32_to_int64_xrninta("0", "[b72d8189]", "-2982281000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[2f4280fa]", "0", "20")
+ self.bid32_to_int64_xrninta("0", "[eca5614b]", "-8741195", "00")
+ self.bid32_to_int64_xrninta("0", "[3010cc49]", "11", "20")
+ self.bid32_to_int64_xrninta("0", "[af68a852]", "-1", "20")
+ self.bid32_to_int64_xrninta("0", "[b8c7af87]", "-4697991000000000000", "00")
+ self.bid32_to_int64_xrninta("0", "[ee304e41]", "-9223372036854775808", "01")
+ self.bid32_to_int64_xrninta("0", "[6e32dc30]", "-9223372036854775808", "01")
+ }
+
+ private func bid32_to_int64_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int8_ceil() {
+ self.bid32_to_int8_ceil("0", "-126.5", "-126", "00")
+ self.bid32_to_int8_ceil("0", "127.5", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_int8_ceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int8_ceil("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int8_ceil("0", "[30934D68]", "127", "00")
+ self.bid32_to_int8_ceil("0", "[309360F0]", "127", "00")
+ self.bid32_to_int8_ceil("0", "[30937478]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[30938800]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[30939B88]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[3093AF10]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[30A6E8F0]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[30A6FC78]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[30A71000]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[30A72388]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[30A73710]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[30ADC6C0]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[30ADDA48]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[310003E7]", "1", "00")
+ self.bid32_to_int8_ceil("0", "[32000005]", "1", "00")
+ self.bid32_to_int8_ceil("0", "[3200000F]", "2", "00")
+ self.bid32_to_int8_ceil("0", "[320004F1]", "127", "00")
+ self.bid32_to_int8_ceil("0", "[320004FB]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[32000505]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[320009FB]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[32000A05]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[32000BBD]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[32800001]", "1", "00")
+ self.bid32_to_int8_ceil("0", "[3280007F]", "127", "00")
+ self.bid32_to_int8_ceil("0", "[32800080]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[32800081]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[328000FF]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[32800100]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[32800101]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[33800003]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int8_ceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int8_ceil("0", "[78000000]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[7c000000]", "-128", "01")
+ self.bid32_to_int8_ceil("0", "[7e000000]", "-128", "01")
+ }
+
+ private func bid32_to_int8_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int8_floor() {
+ self.bid32_to_int8_floor("0", "-126.5", "-127", "00")
+ self.bid32_to_int8_floor("0", "127.5", "127", "00")
+ self.bid32_to_int8_floor("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int8_floor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int8_floor("0", "[2F96E360]", "1", "00")
+ self.bid32_to_int8_floor("0", "[30934D68]", "126", "00")
+ self.bid32_to_int8_floor("0", "[309360F0]", "127", "00")
+ self.bid32_to_int8_floor("0", "[30937478]", "127", "00")
+ self.bid32_to_int8_floor("0", "[30938800]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[30939B88]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[3093AF10]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[30A6E8F0]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[30A6FC78]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[30A71000]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[30A72388]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[30A73710]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[30ADC6C0]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[30ADDA48]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[310003E7]", "0", "00")
+ self.bid32_to_int8_floor("0", "[32000005]", "0", "00")
+ self.bid32_to_int8_floor("0", "[3200000F]", "1", "00")
+ self.bid32_to_int8_floor("0", "[320004F1]", "126", "00")
+ self.bid32_to_int8_floor("0", "[320004FB]", "127", "00")
+ self.bid32_to_int8_floor("0", "[32000505]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[320009FB]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[32000A05]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[32000BBD]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[32800001]", "1", "00")
+ self.bid32_to_int8_floor("0", "[3280007F]", "127", "00")
+ self.bid32_to_int8_floor("0", "[32800080]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[32800081]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[328000FF]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[32800100]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[32800101]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[33800003]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_int8_floor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int8_floor("0", "[78000000]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[7c000000]", "-128", "01")
+ self.bid32_to_int8_floor("0", "[7e000000]", "-128", "01")
+ }
+
+ private func bid32_to_int8_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int8_int() {
+ self.bid32_to_int8_int("0", "-126.5", "-126", "00")
+ self.bid32_to_int8_int("0", "127.5", "127", "00")
+ self.bid32_to_int8_int("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int8_int("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int8_int("0", "[2F96E360]", "1", "00")
+ self.bid32_to_int8_int("0", "[30934D68]", "126", "00")
+ self.bid32_to_int8_int("0", "[309360F0]", "127", "00")
+ self.bid32_to_int8_int("0", "[30937478]", "127", "00")
+ self.bid32_to_int8_int("0", "[30938800]", "-128", "01")
+ self.bid32_to_int8_int("0", "[30939B88]", "-128", "01")
+ self.bid32_to_int8_int("0", "[3093AF10]", "-128", "01")
+ self.bid32_to_int8_int("0", "[30A6E8F0]", "-128", "01")
+ self.bid32_to_int8_int("0", "[30A6FC78]", "-128", "01")
+ self.bid32_to_int8_int("0", "[30A71000]", "-128", "01")
+ self.bid32_to_int8_int("0", "[30A72388]", "-128", "01")
+ self.bid32_to_int8_int("0", "[30A73710]", "-128", "01")
+ self.bid32_to_int8_int("0", "[30ADC6C0]", "-128", "01")
+ self.bid32_to_int8_int("0", "[30ADDA48]", "-128", "01")
+ self.bid32_to_int8_int("0", "[310003E7]", "0", "00")
+ self.bid32_to_int8_int("0", "[32000005]", "0", "00")
+ self.bid32_to_int8_int("0", "[3200000F]", "1", "00")
+ self.bid32_to_int8_int("0", "[320004F1]", "126", "00")
+ self.bid32_to_int8_int("0", "[320004FB]", "127", "00")
+ self.bid32_to_int8_int("0", "[32000505]", "-128", "01")
+ self.bid32_to_int8_int("0", "[320009FB]", "-128", "01")
+ self.bid32_to_int8_int("0", "[32000A05]", "-128", "01")
+ self.bid32_to_int8_int("0", "[32000BBD]", "-128", "01")
+ self.bid32_to_int8_int("0", "[32800001]", "1", "00")
+ self.bid32_to_int8_int("0", "[3280007F]", "127", "00")
+ self.bid32_to_int8_int("0", "[32800080]", "-128", "01")
+ self.bid32_to_int8_int("0", "[32800081]", "-128", "01")
+ self.bid32_to_int8_int("0", "[328000FF]", "-128", "01")
+ self.bid32_to_int8_int("0", "[32800100]", "-128", "01")
+ self.bid32_to_int8_int("0", "[32800101]", "-128", "01")
+ self.bid32_to_int8_int("0", "[33800003]", "-128", "01")
+ self.bid32_to_int8_int("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_int8_int("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int8_int("0", "[78000000]", "-128", "01")
+ self.bid32_to_int8_int("0", "[7c000000]", "-128", "01")
+ self.bid32_to_int8_int("0", "[7e000000]", "-128", "01")
+ }
+
+ private func bid32_to_int8_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int8_rnint() {
+ self.bid32_to_int8_rnint("0", "-126.5", "-126", "00")
+ self.bid32_to_int8_rnint("0", "127.5", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_int8_rnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int8_rnint("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int8_rnint("0", "[30934D68]", "126", "00")
+ self.bid32_to_int8_rnint("0", "[309360F0]", "127", "00")
+ self.bid32_to_int8_rnint("0", "[30937478]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[30938800]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[30939B88]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[3093AF10]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[30A6E8F0]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[30A6FC78]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[30A71000]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[30A72388]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[30A73710]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[30ADC6C0]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[30ADDA48]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[310003E7]", "1", "00")
+ self.bid32_to_int8_rnint("0", "[32000005]", "0", "00")
+ self.bid32_to_int8_rnint("0", "[3200000F]", "2", "00")
+ self.bid32_to_int8_rnint("0", "[320004F1]", "126", "00")
+ self.bid32_to_int8_rnint("0", "[320004FB]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[32000505]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[320009FB]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[32000A05]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[32000BBD]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[32800001]", "1", "00")
+ self.bid32_to_int8_rnint("0", "[3280007F]", "127", "00")
+ self.bid32_to_int8_rnint("0", "[32800080]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[32800081]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[328000FF]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[32800100]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[32800101]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[33800003]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int8_rnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int8_rnint("0", "[78000000]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[7c000000]", "-128", "01")
+ self.bid32_to_int8_rnint("0", "[7e000000]", "-128", "01")
+ }
+
+ private func bid32_to_int8_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int8_rninta() {
+ self.bid32_to_int8_rninta("0", "-126.5", "-127", "00")
+ self.bid32_to_int8_rninta("0", "127.5", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_int8_rninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int8_rninta("0", "[2F96E360]", "2", "00")
+ self.bid32_to_int8_rninta("0", "[30934D68]", "127", "00")
+ self.bid32_to_int8_rninta("0", "[309360F0]", "127", "00")
+ self.bid32_to_int8_rninta("0", "[30937478]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[30938800]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[30939B88]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[3093AF10]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[30A6E8F0]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[30A6FC78]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[30A71000]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[30A72388]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[30A73710]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[30ADC6C0]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[30ADDA48]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[310003E7]", "1", "00")
+ self.bid32_to_int8_rninta("0", "[32000005]", "1", "00")
+ self.bid32_to_int8_rninta("0", "[3200000F]", "2", "00")
+ self.bid32_to_int8_rninta("0", "[320004F1]", "127", "00")
+ self.bid32_to_int8_rninta("0", "[320004FB]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[32000505]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[320009FB]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[32000A05]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[32000BBD]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[32800001]", "1", "00")
+ self.bid32_to_int8_rninta("0", "[3280007F]", "127", "00")
+ self.bid32_to_int8_rninta("0", "[32800080]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[32800081]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[328000FF]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[32800100]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[32800101]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[33800003]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_int8_rninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int8_rninta("0", "[78000000]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[7c000000]", "-128", "01")
+ self.bid32_to_int8_rninta("0", "[7e000000]", "-128", "01")
+ }
+
+ private func bid32_to_int8_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int8_xceil() {
+ self.bid32_to_int8_xceil("0", "-126.5", "-126", "20")
+ self.bid32_to_int8_xceil("0", "127.5", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_int8_xceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int8_xceil("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int8_xceil("0", "[30934D68]", "127", "20")
+ self.bid32_to_int8_xceil("0", "[309360F0]", "127", "00")
+ self.bid32_to_int8_xceil("0", "[30937478]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[30938800]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[30939B88]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[3093AF10]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[30A6E8F0]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[30A6FC78]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[30A71000]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[30A72388]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[30A73710]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[30ADC6C0]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[30ADDA48]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[310003E7]", "1", "20")
+ self.bid32_to_int8_xceil("0", "[32000005]", "1", "20")
+ self.bid32_to_int8_xceil("0", "[3200000F]", "2", "20")
+ self.bid32_to_int8_xceil("0", "[320004F1]", "127", "20")
+ self.bid32_to_int8_xceil("0", "[320004FB]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[32000505]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[320009FB]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[32000A05]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[32000BBD]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[32800001]", "1", "00")
+ self.bid32_to_int8_xceil("0", "[3280007F]", "127", "00")
+ self.bid32_to_int8_xceil("0", "[32800080]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[32800081]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[328000FF]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[32800100]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[32800101]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[33800003]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int8_xceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int8_xceil("0", "[78000000]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[7c000000]", "-128", "01")
+ self.bid32_to_int8_xceil("0", "[7e000000]", "-128", "01")
+ }
+
+ private func bid32_to_int8_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int8_xfloor() {
+ self.bid32_to_int8_xfloor("0", "-126.5", "-127", "20")
+ self.bid32_to_int8_xfloor("0", "127.5", "127", "20")
+ self.bid32_to_int8_xfloor("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int8_xfloor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int8_xfloor("0", "[2F96E360]", "1", "20")
+ self.bid32_to_int8_xfloor("0", "[30934D68]", "126", "20")
+ self.bid32_to_int8_xfloor("0", "[309360F0]", "127", "00")
+ self.bid32_to_int8_xfloor("0", "[30937478]", "127", "20")
+ self.bid32_to_int8_xfloor("0", "[30938800]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[30939B88]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[3093AF10]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[30A6E8F0]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[30A6FC78]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[30A71000]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[30A72388]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[30A73710]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[30ADC6C0]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[30ADDA48]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[310003E7]", "0", "20")
+ self.bid32_to_int8_xfloor("0", "[32000005]", "0", "20")
+ self.bid32_to_int8_xfloor("0", "[3200000F]", "1", "20")
+ self.bid32_to_int8_xfloor("0", "[320004F1]", "126", "20")
+ self.bid32_to_int8_xfloor("0", "[320004FB]", "127", "20")
+ self.bid32_to_int8_xfloor("0", "[32000505]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[320009FB]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[32000A05]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[32000BBD]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[32800001]", "1", "00")
+ self.bid32_to_int8_xfloor("0", "[3280007F]", "127", "00")
+ self.bid32_to_int8_xfloor("0", "[32800080]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[32800081]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[328000FF]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[32800100]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[32800101]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[33800003]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_int8_xfloor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int8_xfloor("0", "[78000000]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[7c000000]", "-128", "01")
+ self.bid32_to_int8_xfloor("0", "[7e000000]", "-128", "01")
+ }
+
+ private func bid32_to_int8_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int8_xint() {
+ self.bid32_to_int8_xint("0", "-126.5", "-126", "20")
+ self.bid32_to_int8_xint("0", "127.5", "127", "20")
+ self.bid32_to_int8_xint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int8_xint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int8_xint("0", "[2F96E360]", "1", "20")
+ self.bid32_to_int8_xint("0", "[30934D68]", "126", "20")
+ self.bid32_to_int8_xint("0", "[309360F0]", "127", "00")
+ self.bid32_to_int8_xint("0", "[30937478]", "127", "20")
+ self.bid32_to_int8_xint("0", "[30938800]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[30939B88]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[3093AF10]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[30A6E8F0]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[30A6FC78]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[30A71000]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[30A72388]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[30A73710]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[30ADC6C0]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[30ADDA48]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[310003E7]", "0", "20")
+ self.bid32_to_int8_xint("0", "[32000005]", "0", "20")
+ self.bid32_to_int8_xint("0", "[3200000F]", "1", "20")
+ self.bid32_to_int8_xint("0", "[320004F1]", "126", "20")
+ self.bid32_to_int8_xint("0", "[320004FB]", "127", "20")
+ self.bid32_to_int8_xint("0", "[32000505]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[320009FB]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[32000A05]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[32000BBD]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[32800001]", "1", "00")
+ self.bid32_to_int8_xint("0", "[3280007F]", "127", "00")
+ self.bid32_to_int8_xint("0", "[32800080]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[32800081]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[328000FF]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[32800100]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[32800101]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[33800003]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_int8_xint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int8_xint("0", "[78000000]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[7c000000]", "-128", "01")
+ self.bid32_to_int8_xint("0", "[7e000000]", "-128", "01")
+ }
+
+ private func bid32_to_int8_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int8_xrnint() {
+ self.bid32_to_int8_xrnint("0", "-126.5", "-126", "20")
+ self.bid32_to_int8_xrnint("0", "127.5", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_int8_xrnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int8_xrnint("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int8_xrnint("0", "[30934D68]", "126", "20")
+ self.bid32_to_int8_xrnint("0", "[309360F0]", "127", "00")
+ self.bid32_to_int8_xrnint("0", "[30937478]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[30938800]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[30939B88]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[3093AF10]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[30A6E8F0]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[30A6FC78]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[30A71000]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[30A72388]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[30A73710]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[30ADC6C0]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[30ADDA48]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[310003E7]", "1", "20")
+ self.bid32_to_int8_xrnint("0", "[32000005]", "0", "20")
+ self.bid32_to_int8_xrnint("0", "[3200000F]", "2", "20")
+ self.bid32_to_int8_xrnint("0", "[320004F1]", "126", "20")
+ self.bid32_to_int8_xrnint("0", "[320004FB]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[32000505]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[320009FB]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[32000A05]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[32000BBD]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[32800001]", "1", "00")
+ self.bid32_to_int8_xrnint("0", "[3280007F]", "127", "00")
+ self.bid32_to_int8_xrnint("0", "[32800080]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[32800081]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[328000FF]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[32800100]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[32800101]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[33800003]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int8_xrnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int8_xrnint("0", "[78000000]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[7c000000]", "-128", "01")
+ self.bid32_to_int8_xrnint("0", "[7e000000]", "-128", "01")
+ }
+
+ private func bid32_to_int8_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_int8_xrninta() {
+ self.bid32_to_int8_xrninta("0", "-126.5", "-127", "20")
+ self.bid32_to_int8_xrninta("0", "127.5", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_int8_xrninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_int8_xrninta("0", "[2F96E360]", "2", "20")
+ self.bid32_to_int8_xrninta("0", "[30934D68]", "127", "20")
+ self.bid32_to_int8_xrninta("0", "[309360F0]", "127", "00")
+ self.bid32_to_int8_xrninta("0", "[30937478]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[30938800]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[30939B88]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[3093AF10]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[30A6E8F0]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[30A6FC78]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[30A71000]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[30A72388]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[30A73710]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[30ADC6C0]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[30ADDA48]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[310003E7]", "1", "20")
+ self.bid32_to_int8_xrninta("0", "[32000005]", "1", "20")
+ self.bid32_to_int8_xrninta("0", "[3200000F]", "2", "20")
+ self.bid32_to_int8_xrninta("0", "[320004F1]", "127", "20")
+ self.bid32_to_int8_xrninta("0", "[320004FB]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[32000505]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[320009FB]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[32000A05]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[32000BBD]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[32800001]", "1", "00")
+ self.bid32_to_int8_xrninta("0", "[3280007F]", "127", "00")
+ self.bid32_to_int8_xrninta("0", "[32800080]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[32800081]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[328000FF]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[32800100]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[32800101]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[33800003]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_int8_xrninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_int8_xrninta("0", "[78000000]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[7c000000]", "-128", "01")
+ self.bid32_to_int8_xrninta("0", "[7e000000]", "-128", "01")
+ }
+
+ private func bid32_to_int8_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint16_ceil() {
+ self.bid32_to_uint16_ceil("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_uint16_ceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint16_ceil("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint16_ceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint16_ceil("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_uint16_ceil("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint16_ceil("0", "[31B1FF6A]", "32767", "00")
+ self.bid32_to_uint16_ceil("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_uint16_ceil("0", "[31B1FFCE]", "32768", "00")
+ self.bid32_to_uint16_ceil("0", "[31B20000]", "32768", "00")
+ self.bid32_to_uint16_ceil("0", "[31B20032]", "32769", "00")
+ self.bid32_to_uint16_ceil("0", "[31B20064]", "32769", "00")
+ self.bid32_to_uint16_ceil("0", "[31E3FF9C]", "65535", "00")
+ self.bid32_to_uint16_ceil("0", "[31E3FFCE]", "32768", "01")
+ self.bid32_to_uint16_ceil("0", "[31E40000]", "32768", "01")
+ self.bid32_to_uint16_ceil("0", "[31E40032]", "32768", "01")
+ self.bid32_to_uint16_ceil("0", "[31E40064]", "32768", "01")
+ self.bid32_to_uint16_ceil("0", "[32000005]", "1", "00")
+ self.bid32_to_uint16_ceil("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint16_ceil("0", "[32000BBD]", "301", "00")
+ self.bid32_to_uint16_ceil("0", "[3204FFF1]", "32767", "00")
+ self.bid32_to_uint16_ceil("0", "[3204FFFB]", "32768", "00")
+ self.bid32_to_uint16_ceil("0", "[32050005]", "32769", "00")
+ self.bid32_to_uint16_ceil("0", "[3209FFFB]", "32768", "01")
+ self.bid32_to_uint16_ceil("0", "[320A0005]", "32768", "01")
+ self.bid32_to_uint16_ceil("0", "[32800001]", "1", "00")
+ self.bid32_to_uint16_ceil("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_uint16_ceil("0", "[32808000]", "32768", "00")
+ self.bid32_to_uint16_ceil("0", "[32808001]", "32769", "00")
+ self.bid32_to_uint16_ceil("0", "[3280FFFF]", "65535", "00")
+ self.bid32_to_uint16_ceil("0", "[32810000]", "32768", "01")
+ self.bid32_to_uint16_ceil("0", "[32810001]", "32768", "01")
+ self.bid32_to_uint16_ceil("0", "[33800003]", "300", "00")
+ self.bid32_to_uint16_ceil("0", "65534.5", "65535", "00")
+ self.bid32_to_uint16_ceil("0", "65535.5", "32768", "01")
+ self.bid32_to_uint16_ceil("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint16_ceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint16_ceil("0", "[78000000]", "32768", "01")
+ self.bid32_to_uint16_ceil("0", "[7c000000]", "32768", "01")
+ self.bid32_to_uint16_ceil("0", "[7e000000]", "32768", "01")
+ }
+
+ private func bid32_to_uint16_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint16_floor() {
+ self.bid32_to_uint16_floor("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint16_floor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint16_floor("0", "[2F96E360]", "1", "00")
+ self.bid32_to_uint16_floor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint16_floor("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_uint16_floor("0", "[310003E7]", "0", "00")
+ self.bid32_to_uint16_floor("0", "[31B1FF6A]", "32766", "00")
+ self.bid32_to_uint16_floor("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_uint16_floor("0", "[31B1FFCE]", "32767", "00")
+ self.bid32_to_uint16_floor("0", "[31B20000]", "32768", "00")
+ self.bid32_to_uint16_floor("0", "[31B20032]", "32768", "00")
+ self.bid32_to_uint16_floor("0", "[31B20064]", "32769", "00")
+ self.bid32_to_uint16_floor("0", "[31E3FF9C]", "65535", "00")
+ self.bid32_to_uint16_floor("0", "[31E3FFCE]", "65535", "00")
+ self.bid32_to_uint16_floor("0", "[31E40000]", "32768", "01")
+ self.bid32_to_uint16_floor("0", "[31E40032]", "32768", "01")
+ self.bid32_to_uint16_floor("0", "[31E40064]", "32768", "01")
+ self.bid32_to_uint16_floor("0", "[32000005]", "0", "00")
+ self.bid32_to_uint16_floor("0", "[3200000F]", "1", "00")
+ self.bid32_to_uint16_floor("0", "[32000BBD]", "300", "00")
+ self.bid32_to_uint16_floor("0", "[3204FFF1]", "32766", "00")
+ self.bid32_to_uint16_floor("0", "[3204FFFB]", "32767", "00")
+ self.bid32_to_uint16_floor("0", "[32050005]", "32768", "00")
+ self.bid32_to_uint16_floor("0", "[3209FFFB]", "65535", "00")
+ self.bid32_to_uint16_floor("0", "[320A0005]", "32768", "01")
+ self.bid32_to_uint16_floor("0", "[32800001]", "1", "00")
+ self.bid32_to_uint16_floor("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_uint16_floor("0", "[32808000]", "32768", "00")
+ self.bid32_to_uint16_floor("0", "[32808001]", "32769", "00")
+ self.bid32_to_uint16_floor("0", "[3280FFFF]", "65535", "00")
+ self.bid32_to_uint16_floor("0", "[32810000]", "32768", "01")
+ self.bid32_to_uint16_floor("0", "[32810001]", "32768", "01")
+ self.bid32_to_uint16_floor("0", "[33800003]", "300", "00")
+ self.bid32_to_uint16_floor("0", "65534.5", "65534", "00")
+ self.bid32_to_uint16_floor("0", "65535.5", "65535", "00")
+ self.bid32_to_uint16_floor("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_uint16_floor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint16_floor("0", "[78000000]", "32768", "01")
+ self.bid32_to_uint16_floor("0", "[7c000000]", "32768", "01")
+ self.bid32_to_uint16_floor("0", "[7e000000]", "32768", "01")
+ }
+
+ private func bid32_to_uint16_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint16_int() {
+ self.bid32_to_uint16_int("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint16_int("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint16_int("0", "[2F96E360]", "1", "00")
+ self.bid32_to_uint16_int("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint16_int("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_uint16_int("0", "[310003E7]", "0", "00")
+ self.bid32_to_uint16_int("0", "[31B1FF6A]", "32766", "00")
+ self.bid32_to_uint16_int("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_uint16_int("0", "[31B1FFCE]", "32767", "00")
+ self.bid32_to_uint16_int("0", "[31B20000]", "32768", "00")
+ self.bid32_to_uint16_int("0", "[31B20032]", "32768", "00")
+ self.bid32_to_uint16_int("0", "[31B20064]", "32769", "00")
+ self.bid32_to_uint16_int("0", "[31E3FF9C]", "65535", "00")
+ self.bid32_to_uint16_int("0", "[31E3FFCE]", "65535", "00")
+ self.bid32_to_uint16_int("0", "[31E40000]", "32768", "01")
+ self.bid32_to_uint16_int("0", "[31E40032]", "32768", "01")
+ self.bid32_to_uint16_int("0", "[31E40064]", "32768", "01")
+ self.bid32_to_uint16_int("0", "[32000005]", "0", "00")
+ self.bid32_to_uint16_int("0", "[3200000F]", "1", "00")
+ self.bid32_to_uint16_int("0", "[32000BBD]", "300", "00")
+ self.bid32_to_uint16_int("0", "[3204FFF1]", "32766", "00")
+ self.bid32_to_uint16_int("0", "[3204FFFB]", "32767", "00")
+ self.bid32_to_uint16_int("0", "[32050005]", "32768", "00")
+ self.bid32_to_uint16_int("0", "[3209FFFB]", "65535", "00")
+ self.bid32_to_uint16_int("0", "[320A0005]", "32768", "01")
+ self.bid32_to_uint16_int("0", "[32800001]", "1", "00")
+ self.bid32_to_uint16_int("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_uint16_int("0", "[32808000]", "32768", "00")
+ self.bid32_to_uint16_int("0", "[32808001]", "32769", "00")
+ self.bid32_to_uint16_int("0", "[3280FFFF]", "65535", "00")
+ self.bid32_to_uint16_int("0", "[32810000]", "32768", "01")
+ self.bid32_to_uint16_int("0", "[32810001]", "32768", "01")
+ self.bid32_to_uint16_int("0", "[33800003]", "300", "00")
+ self.bid32_to_uint16_int("0", "65534.5", "65534", "00")
+ self.bid32_to_uint16_int("0", "65535.5", "65535", "00")
+ self.bid32_to_uint16_int("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_uint16_int("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint16_int("0", "[78000000]", "32768", "01")
+ self.bid32_to_uint16_int("0", "[7c000000]", "32768", "01")
+ self.bid32_to_uint16_int("0", "[7e000000]", "32768", "01")
+ }
+
+ private func bid32_to_uint16_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint16_rnint() {
+ self.bid32_to_uint16_rnint("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint16_rnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint16_rnint("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint16_rnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint16_rnint("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_uint16_rnint("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint16_rnint("0", "[31B1FF6A]", "32766", "00")
+ self.bid32_to_uint16_rnint("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_uint16_rnint("0", "[31B1FFCE]", "32768", "00")
+ self.bid32_to_uint16_rnint("0", "[31B20000]", "32768", "00")
+ self.bid32_to_uint16_rnint("0", "[31B20032]", "32768", "00")
+ self.bid32_to_uint16_rnint("0", "[31B20064]", "32769", "00")
+ self.bid32_to_uint16_rnint("0", "[31E3FF9C]", "65535", "00")
+ self.bid32_to_uint16_rnint("0", "[31E3FFCE]", "32768", "01")
+ self.bid32_to_uint16_rnint("0", "[31E40000]", "32768", "01")
+ self.bid32_to_uint16_rnint("0", "[31E40032]", "32768", "01")
+ self.bid32_to_uint16_rnint("0", "[31E40064]", "32768", "01")
+ self.bid32_to_uint16_rnint("0", "[32000005]", "0", "00")
+ self.bid32_to_uint16_rnint("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint16_rnint("0", "[32000BBD]", "300", "00")
+ self.bid32_to_uint16_rnint("0", "[3204FFF1]", "32766", "00")
+ self.bid32_to_uint16_rnint("0", "[3204FFFB]", "32768", "00")
+ self.bid32_to_uint16_rnint("0", "[32050005]", "32768", "00")
+ self.bid32_to_uint16_rnint("0", "[3209FFFB]", "32768", "01")
+ self.bid32_to_uint16_rnint("0", "[320A0005]", "32768", "01")
+ self.bid32_to_uint16_rnint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint16_rnint("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_uint16_rnint("0", "[32808000]", "32768", "00")
+ self.bid32_to_uint16_rnint("0", "[32808001]", "32769", "00")
+ self.bid32_to_uint16_rnint("0", "[3280FFFF]", "65535", "00")
+ self.bid32_to_uint16_rnint("0", "[32810000]", "32768", "01")
+ self.bid32_to_uint16_rnint("0", "[32810001]", "32768", "01")
+ self.bid32_to_uint16_rnint("0", "[33800003]", "300", "00")
+ self.bid32_to_uint16_rnint("0", "65534.5", "65534", "00")
+ self.bid32_to_uint16_rnint("0", "65535.5", "32768", "01")
+ self.bid32_to_uint16_rnint("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint16_rnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint16_rnint("0", "[78000000]", "32768", "01")
+ self.bid32_to_uint16_rnint("0", "[7c000000]", "32768", "01")
+ self.bid32_to_uint16_rnint("0", "[7e000000]", "32768", "01")
+ }
+
+ private func bid32_to_uint16_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint16_rninta() {
+ self.bid32_to_uint16_rninta("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_uint16_rninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint16_rninta("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint16_rninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint16_rninta("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_uint16_rninta("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint16_rninta("0", "[31B1FF6A]", "32767", "00")
+ self.bid32_to_uint16_rninta("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_uint16_rninta("0", "[31B1FFCE]", "32768", "00")
+ self.bid32_to_uint16_rninta("0", "[31B20000]", "32768", "00")
+ self.bid32_to_uint16_rninta("0", "[31B20032]", "32769", "00")
+ self.bid32_to_uint16_rninta("0", "[31B20064]", "32769", "00")
+ self.bid32_to_uint16_rninta("0", "[31E3FF9C]", "65535", "00")
+ self.bid32_to_uint16_rninta("0", "[31E3FFCE]", "32768", "01")
+ self.bid32_to_uint16_rninta("0", "[31E40000]", "32768", "01")
+ self.bid32_to_uint16_rninta("0", "[31E40032]", "32768", "01")
+ self.bid32_to_uint16_rninta("0", "[31E40064]", "32768", "01")
+ self.bid32_to_uint16_rninta("0", "[32000005]", "1", "00")
+ self.bid32_to_uint16_rninta("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint16_rninta("0", "[32000BBD]", "301", "00")
+ self.bid32_to_uint16_rninta("0", "[3204FFF1]", "32767", "00")
+ self.bid32_to_uint16_rninta("0", "[3204FFFB]", "32768", "00")
+ self.bid32_to_uint16_rninta("0", "[32050005]", "32769", "00")
+ self.bid32_to_uint16_rninta("0", "[3209FFFB]", "32768", "01")
+ self.bid32_to_uint16_rninta("0", "[320A0005]", "32768", "01")
+ self.bid32_to_uint16_rninta("0", "[32800001]", "1", "00")
+ self.bid32_to_uint16_rninta("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_uint16_rninta("0", "[32808000]", "32768", "00")
+ self.bid32_to_uint16_rninta("0", "[32808001]", "32769", "00")
+ self.bid32_to_uint16_rninta("0", "[3280FFFF]", "65535", "00")
+ self.bid32_to_uint16_rninta("0", "[32810000]", "32768", "01")
+ self.bid32_to_uint16_rninta("0", "[32810001]", "32768", "01")
+ self.bid32_to_uint16_rninta("0", "[33800003]", "300", "00")
+ self.bid32_to_uint16_rninta("0", "65534.5", "65535", "00")
+ self.bid32_to_uint16_rninta("0", "65535.5", "32768", "01")
+ self.bid32_to_uint16_rninta("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint16_rninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint16_rninta("0", "[78000000]", "32768", "01")
+ self.bid32_to_uint16_rninta("0", "[7c000000]", "32768", "01")
+ self.bid32_to_uint16_rninta("0", "[7e000000]", "32768", "01")
+ }
+
+ private func bid32_to_uint16_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint16_xceil() {
+ self.bid32_to_uint16_xceil("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_uint16_xceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint16_xceil("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint16_xceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint16_xceil("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_uint16_xceil("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint16_xceil("0", "[31B1FF6A]", "32767", "20")
+ self.bid32_to_uint16_xceil("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_uint16_xceil("0", "[31B1FFCE]", "32768", "20")
+ self.bid32_to_uint16_xceil("0", "[31B20000]", "32768", "00")
+ self.bid32_to_uint16_xceil("0", "[31B20032]", "32769", "20")
+ self.bid32_to_uint16_xceil("0", "[31B20064]", "32769", "00")
+ self.bid32_to_uint16_xceil("0", "[31E3FF9C]", "65535", "00")
+ self.bid32_to_uint16_xceil("0", "[31E3FFCE]", "32768", "01")
+ self.bid32_to_uint16_xceil("0", "[31E40000]", "32768", "01")
+ self.bid32_to_uint16_xceil("0", "[31E40032]", "32768", "01")
+ self.bid32_to_uint16_xceil("0", "[31E40064]", "32768", "01")
+ self.bid32_to_uint16_xceil("0", "[32000005]", "1", "20")
+ self.bid32_to_uint16_xceil("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint16_xceil("0", "[32000BBD]", "301", "20")
+ self.bid32_to_uint16_xceil("0", "[3204FFF1]", "32767", "20")
+ self.bid32_to_uint16_xceil("0", "[3204FFFB]", "32768", "20")
+ self.bid32_to_uint16_xceil("0", "[32050005]", "32769", "20")
+ self.bid32_to_uint16_xceil("0", "[3209FFFB]", "32768", "01")
+ self.bid32_to_uint16_xceil("0", "[320A0005]", "32768", "01")
+ self.bid32_to_uint16_xceil("0", "[32800001]", "1", "00")
+ self.bid32_to_uint16_xceil("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_uint16_xceil("0", "[32808000]", "32768", "00")
+ self.bid32_to_uint16_xceil("0", "[32808001]", "32769", "00")
+ self.bid32_to_uint16_xceil("0", "[3280FFFF]", "65535", "00")
+ self.bid32_to_uint16_xceil("0", "[32810000]", "32768", "01")
+ self.bid32_to_uint16_xceil("0", "[32810001]", "32768", "01")
+ self.bid32_to_uint16_xceil("0", "[33800003]", "300", "00")
+ self.bid32_to_uint16_xceil("0", "65534.5", "65535", "20")
+ self.bid32_to_uint16_xceil("0", "65535.5", "32768", "01")
+ self.bid32_to_uint16_xceil("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint16_xceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint16_xceil("0", "[78000000]", "32768", "01")
+ self.bid32_to_uint16_xceil("0", "[7c000000]", "32768", "01")
+ self.bid32_to_uint16_xceil("0", "[7e000000]", "32768", "01")
+ }
+
+ private func bid32_to_uint16_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint16_xfloor() {
+ self.bid32_to_uint16_xfloor("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint16_xfloor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint16_xfloor("0", "[2F96E360]", "1", "20")
+ self.bid32_to_uint16_xfloor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint16_xfloor("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_uint16_xfloor("0", "[310003E7]", "0", "20")
+ self.bid32_to_uint16_xfloor("0", "[31B1FF6A]", "32766", "20")
+ self.bid32_to_uint16_xfloor("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_uint16_xfloor("0", "[31B1FFCE]", "32767", "20")
+ self.bid32_to_uint16_xfloor("0", "[31B20000]", "32768", "00")
+ self.bid32_to_uint16_xfloor("0", "[31B20032]", "32768", "20")
+ self.bid32_to_uint16_xfloor("0", "[31B20064]", "32769", "00")
+ self.bid32_to_uint16_xfloor("0", "[31E3FF9C]", "65535", "00")
+ self.bid32_to_uint16_xfloor("0", "[31E3FFCE]", "65535", "20")
+ self.bid32_to_uint16_xfloor("0", "[31E40000]", "32768", "01")
+ self.bid32_to_uint16_xfloor("0", "[31E40032]", "32768", "01")
+ self.bid32_to_uint16_xfloor("0", "[31E40064]", "32768", "01")
+ self.bid32_to_uint16_xfloor("0", "[32000005]", "0", "20")
+ self.bid32_to_uint16_xfloor("0", "[3200000F]", "1", "20")
+ self.bid32_to_uint16_xfloor("0", "[32000BBD]", "300", "20")
+ self.bid32_to_uint16_xfloor("0", "[3204FFF1]", "32766", "20")
+ self.bid32_to_uint16_xfloor("0", "[3204FFFB]", "32767", "20")
+ self.bid32_to_uint16_xfloor("0", "[32050005]", "32768", "20")
+ self.bid32_to_uint16_xfloor("0", "[3209FFFB]", "65535", "20")
+ self.bid32_to_uint16_xfloor("0", "[320A0005]", "32768", "01")
+ self.bid32_to_uint16_xfloor("0", "[32800001]", "1", "00")
+ self.bid32_to_uint16_xfloor("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_uint16_xfloor("0", "[32808000]", "32768", "00")
+ self.bid32_to_uint16_xfloor("0", "[32808001]", "32769", "00")
+ self.bid32_to_uint16_xfloor("0", "[3280FFFF]", "65535", "00")
+ self.bid32_to_uint16_xfloor("0", "[32810000]", "32768", "01")
+ self.bid32_to_uint16_xfloor("0", "[32810001]", "32768", "01")
+ self.bid32_to_uint16_xfloor("0", "[33800003]", "300", "00")
+ self.bid32_to_uint16_xfloor("0", "65534.5", "65534", "20")
+ self.bid32_to_uint16_xfloor("0", "65535.5", "65535", "20")
+ self.bid32_to_uint16_xfloor("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_uint16_xfloor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint16_xfloor("0", "[78000000]", "32768", "01")
+ self.bid32_to_uint16_xfloor("0", "[7c000000]", "32768", "01")
+ self.bid32_to_uint16_xfloor("0", "[7e000000]", "32768", "01")
+ }
+
+ private func bid32_to_uint16_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint16_xint() {
+ self.bid32_to_uint16_xint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint16_xint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint16_xint("0", "[2F96E360]", "1", "20")
+ self.bid32_to_uint16_xint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint16_xint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_uint16_xint("0", "[310003E7]", "0", "20")
+ self.bid32_to_uint16_xint("0", "[31B1FF6A]", "32766", "20")
+ self.bid32_to_uint16_xint("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_uint16_xint("0", "[31B1FFCE]", "32767", "20")
+ self.bid32_to_uint16_xint("0", "[31B20000]", "32768", "00")
+ self.bid32_to_uint16_xint("0", "[31B20032]", "32768", "20")
+ self.bid32_to_uint16_xint("0", "[31B20064]", "32769", "00")
+ self.bid32_to_uint16_xint("0", "[31E3FF9C]", "65535", "00")
+ self.bid32_to_uint16_xint("0", "[31E3FFCE]", "65535", "20")
+ self.bid32_to_uint16_xint("0", "[31E40000]", "32768", "01")
+ self.bid32_to_uint16_xint("0", "[31E40032]", "32768", "01")
+ self.bid32_to_uint16_xint("0", "[31E40064]", "32768", "01")
+ self.bid32_to_uint16_xint("0", "[32000005]", "0", "20")
+ self.bid32_to_uint16_xint("0", "[3200000F]", "1", "20")
+ self.bid32_to_uint16_xint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_uint16_xint("0", "[3204FFF1]", "32766", "20")
+ self.bid32_to_uint16_xint("0", "[3204FFFB]", "32767", "20")
+ self.bid32_to_uint16_xint("0", "[32050005]", "32768", "20")
+ self.bid32_to_uint16_xint("0", "[3209FFFB]", "65535", "20")
+ self.bid32_to_uint16_xint("0", "[320A0005]", "32768", "01")
+ self.bid32_to_uint16_xint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint16_xint("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_uint16_xint("0", "[32808000]", "32768", "00")
+ self.bid32_to_uint16_xint("0", "[32808001]", "32769", "00")
+ self.bid32_to_uint16_xint("0", "[3280FFFF]", "65535", "00")
+ self.bid32_to_uint16_xint("0", "[32810000]", "32768", "01")
+ self.bid32_to_uint16_xint("0", "[32810001]", "32768", "01")
+ self.bid32_to_uint16_xint("0", "[33800003]", "300", "00")
+ self.bid32_to_uint16_xint("0", "65534.5", "65534", "20")
+ self.bid32_to_uint16_xint("0", "65535.5", "65535", "20")
+ self.bid32_to_uint16_xint("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_uint16_xint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint16_xint("0", "[78000000]", "32768", "01")
+ self.bid32_to_uint16_xint("0", "[7c000000]", "32768", "01")
+ self.bid32_to_uint16_xint("0", "[7e000000]", "32768", "01")
+ }
+
+ private func bid32_to_uint16_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint16_xrnint() {
+ self.bid32_to_uint16_xrnint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint16_xrnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint16_xrnint("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint16_xrnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint16_xrnint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_uint16_xrnint("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint16_xrnint("0", "[31B1FF6A]", "32766", "20")
+ self.bid32_to_uint16_xrnint("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_uint16_xrnint("0", "[31B1FFCE]", "32768", "20")
+ self.bid32_to_uint16_xrnint("0", "[31B20000]", "32768", "00")
+ self.bid32_to_uint16_xrnint("0", "[31B20032]", "32768", "20")
+ self.bid32_to_uint16_xrnint("0", "[31B20064]", "32769", "00")
+ self.bid32_to_uint16_xrnint("0", "[31E3FF9C]", "65535", "00")
+ self.bid32_to_uint16_xrnint("0", "[31E3FFCE]", "32768", "01")
+ self.bid32_to_uint16_xrnint("0", "[31E40000]", "32768", "01")
+ self.bid32_to_uint16_xrnint("0", "[31E40032]", "32768", "01")
+ self.bid32_to_uint16_xrnint("0", "[31E40064]", "32768", "01")
+ self.bid32_to_uint16_xrnint("0", "[32000005]", "0", "20")
+ self.bid32_to_uint16_xrnint("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint16_xrnint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_uint16_xrnint("0", "[3204FFF1]", "32766", "20")
+ self.bid32_to_uint16_xrnint("0", "[3204FFFB]", "32768", "20")
+ self.bid32_to_uint16_xrnint("0", "[32050005]", "32768", "20")
+ self.bid32_to_uint16_xrnint("0", "[3209FFFB]", "32768", "01")
+ self.bid32_to_uint16_xrnint("0", "[320A0005]", "32768", "01")
+ self.bid32_to_uint16_xrnint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint16_xrnint("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_uint16_xrnint("0", "[32808000]", "32768", "00")
+ self.bid32_to_uint16_xrnint("0", "[32808001]", "32769", "00")
+ self.bid32_to_uint16_xrnint("0", "[3280FFFF]", "65535", "00")
+ self.bid32_to_uint16_xrnint("0", "[32810000]", "32768", "01")
+ self.bid32_to_uint16_xrnint("0", "[32810001]", "32768", "01")
+ self.bid32_to_uint16_xrnint("0", "[33800003]", "300", "00")
+ self.bid32_to_uint16_xrnint("0", "65534.5", "65534", "20")
+ self.bid32_to_uint16_xrnint("0", "65535.5", "32768", "01")
+ self.bid32_to_uint16_xrnint("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint16_xrnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint16_xrnint("0", "[78000000]", "32768", "01")
+ self.bid32_to_uint16_xrnint("0", "[7c000000]", "32768", "01")
+ self.bid32_to_uint16_xrnint("0", "[7e000000]", "32768", "01")
+ }
+
+ private func bid32_to_uint16_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint16_xrninta() {
+ self.bid32_to_uint16_xrninta("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_uint16_xrninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint16_xrninta("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint16_xrninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint16_xrninta("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_uint16_xrninta("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint16_xrninta("0", "[31B1FF6A]", "32767", "20")
+ self.bid32_to_uint16_xrninta("0", "[31B1FF9C]", "32767", "00")
+ self.bid32_to_uint16_xrninta("0", "[31B1FFCE]", "32768", "20")
+ self.bid32_to_uint16_xrninta("0", "[31B20000]", "32768", "00")
+ self.bid32_to_uint16_xrninta("0", "[31B20032]", "32769", "20")
+ self.bid32_to_uint16_xrninta("0", "[31B20064]", "32769", "00")
+ self.bid32_to_uint16_xrninta("0", "[31E3FF9C]", "65535", "00")
+ self.bid32_to_uint16_xrninta("0", "[31E3FFCE]", "32768", "01")
+ self.bid32_to_uint16_xrninta("0", "[31E40000]", "32768", "01")
+ self.bid32_to_uint16_xrninta("0", "[31E40032]", "32768", "01")
+ self.bid32_to_uint16_xrninta("0", "[31E40064]", "32768", "01")
+ self.bid32_to_uint16_xrninta("0", "[32000005]", "1", "20")
+ self.bid32_to_uint16_xrninta("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint16_xrninta("0", "[32000BBD]", "301", "20")
+ self.bid32_to_uint16_xrninta("0", "[3204FFF1]", "32767", "20")
+ self.bid32_to_uint16_xrninta("0", "[3204FFFB]", "32768", "20")
+ self.bid32_to_uint16_xrninta("0", "[32050005]", "32769", "20")
+ self.bid32_to_uint16_xrninta("0", "[3209FFFB]", "32768", "01")
+ self.bid32_to_uint16_xrninta("0", "[320A0005]", "32768", "01")
+ self.bid32_to_uint16_xrninta("0", "[32800001]", "1", "00")
+ self.bid32_to_uint16_xrninta("0", "[32807FFF]", "32767", "00")
+ self.bid32_to_uint16_xrninta("0", "[32808000]", "32768", "00")
+ self.bid32_to_uint16_xrninta("0", "[32808001]", "32769", "00")
+ self.bid32_to_uint16_xrninta("0", "[3280FFFF]", "65535", "00")
+ self.bid32_to_uint16_xrninta("0", "[32810000]", "32768", "01")
+ self.bid32_to_uint16_xrninta("0", "[32810001]", "32768", "01")
+ self.bid32_to_uint16_xrninta("0", "[33800003]", "300", "00")
+ self.bid32_to_uint16_xrninta("0", "65534.5", "65535", "20")
+ self.bid32_to_uint16_xrninta("0", "65535.5", "32768", "01")
+ self.bid32_to_uint16_xrninta("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint16_xrninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint16_xrninta("0", "[78000000]", "32768", "01")
+ self.bid32_to_uint16_xrninta("0", "[7c000000]", "32768", "01")
+ self.bid32_to_uint16_xrninta("0", "[7e000000]", "32768", "01")
+ }
+
+ private func bid32_to_uint16_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint32_ceil() {
+ self.bid32_to_uint32_ceil("0", "1.1E+90", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_uint32_ceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint32_ceil("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint32_ceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint32_ceil("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_uint32_ceil("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint32_ceil("0", "[32000005]", "1", "00")
+ self.bid32_to_uint32_ceil("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint32_ceil("0", "[32000BBD]", "301", "00")
+ self.bid32_to_uint32_ceil("0", "[32800001]", "1", "00")
+ self.bid32_to_uint32_ceil("0", "[33800003]", "300", "00")
+ self.bid32_to_uint32_ceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_ceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_ceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_ceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_ceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_ceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_ceil("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint32_ceil("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_ceil("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_ceil("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_ceil("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_ceil("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_ceil("0", "[344C4B40]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint32_ceil("0", "[37000005]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint32_ceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint32_ceil("0", "[78000000]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[7c000000]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[7e000000]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "-9.51", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[86021840]", "0", "00")
+ self.bid32_to_uint32_ceil("0", "[b4295201]", "2147483648", "01")
+ self.bid32_to_uint32_ceil("0", "[86021840]", "0", "00")
+ self.bid32_to_uint32_ceil("0", "[b4295201]", "2147483648", "01")
+ }
+
+ private func bid32_to_uint32_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint32_floor() {
+ self.bid32_to_uint32_floor("0", "1.1E+90", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint32_floor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint32_floor("0", "[2F96E360]", "1", "00")
+ self.bid32_to_uint32_floor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint32_floor("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_uint32_floor("0", "[310003E7]", "0", "00")
+ self.bid32_to_uint32_floor("0", "[32000005]", "0", "00")
+ self.bid32_to_uint32_floor("0", "[3200000F]", "1", "00")
+ self.bid32_to_uint32_floor("0", "[32000BBD]", "300", "00")
+ self.bid32_to_uint32_floor("0", "[32800001]", "1", "00")
+ self.bid32_to_uint32_floor("0", "[33800003]", "300", "00")
+ self.bid32_to_uint32_floor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_floor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_floor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_floor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_floor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_floor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_floor("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint32_floor("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_floor("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_floor("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_floor("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_floor("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_floor("0", "[344C4B40]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint32_floor("0", "[37000005]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_uint32_floor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint32_floor("0", "[78000000]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[7c000000]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "[7e000000]", "2147483648", "01")
+ self.bid32_to_uint32_floor("0", "-9.51", "2147483648", "01")
+ }
+
+ private func bid32_to_uint32_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint32_int() {
+ self.bid32_to_uint32_int("0", "1.1E+90", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint32_int("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint32_int("0", "[2F96E360]", "1", "00")
+ self.bid32_to_uint32_int("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint32_int("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_uint32_int("0", "[310003E7]", "0", "00")
+ self.bid32_to_uint32_int("0", "[32000005]", "0", "00")
+ self.bid32_to_uint32_int("0", "[3200000F]", "1", "00")
+ self.bid32_to_uint32_int("0", "[32000BBD]", "300", "00")
+ self.bid32_to_uint32_int("0", "[32800001]", "1", "00")
+ self.bid32_to_uint32_int("0", "[33800003]", "300", "00")
+ self.bid32_to_uint32_int("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_int("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_int("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_int("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_int("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_int("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_int("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint32_int("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_int("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_int("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_int("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_int("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_int("0", "[344C4B40]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint32_int("0", "[37000005]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_uint32_int("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint32_int("0", "[78000000]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[7c000000]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[7e000000]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "-9.51", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[ed053e9b]", "2147483648", "01")
+ self.bid32_to_uint32_int("0", "[ed053e9b]", "2147483648", "01")
+ }
+
+ private func bid32_to_uint32_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint32_rnint() {
+ self.bid32_to_uint32_rnint("0", "1.1E+90", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint32_rnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint32_rnint("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint32_rnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint32_rnint("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_uint32_rnint("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint32_rnint("0", "[32000005]", "0", "00")
+ self.bid32_to_uint32_rnint("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint32_rnint("0", "[32000BBD]", "300", "00")
+ self.bid32_to_uint32_rnint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint32_rnint("0", "[33800003]", "300", "00")
+ self.bid32_to_uint32_rnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rnint("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint32_rnint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_rnint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_rnint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_rnint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_rnint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_rnint("0", "[344C4B40]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint32_rnint("0", "[37000005]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint32_rnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint32_rnint("0", "[78000000]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[7c000000]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[7e000000]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "-9.51", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[21fdc4a0]", "0", "00")
+ self.bid32_to_uint32_rnint("0", "[b44ee7af]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[ebd7fb7f]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[21fdc4a0]", "0", "00")
+ self.bid32_to_uint32_rnint("0", "[b44ee7af]", "2147483648", "01")
+ self.bid32_to_uint32_rnint("0", "[ebd7fb7f]", "2147483648", "01")
+ }
+
+ private func bid32_to_uint32_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint32_rninta() {
+ self.bid32_to_uint32_rninta("0", "1.1E+90", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_uint32_rninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint32_rninta("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint32_rninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint32_rninta("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_uint32_rninta("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint32_rninta("0", "[32000005]", "1", "00")
+ self.bid32_to_uint32_rninta("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint32_rninta("0", "[32000BBD]", "301", "00")
+ self.bid32_to_uint32_rninta("0", "[32800001]", "1", "00")
+ self.bid32_to_uint32_rninta("0", "[33800003]", "300", "00")
+ self.bid32_to_uint32_rninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_rninta("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint32_rninta("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_rninta("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_rninta("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_rninta("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_rninta("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_rninta("0", "[344C4B40]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint32_rninta("0", "[37000005]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint32_rninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint32_rninta("0", "[78000000]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[7c000000]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[7e000000]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "-9.51", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[03686c39]", "0", "00")
+ self.bid32_to_uint32_rninta("0", "[ebcdb7df]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[2f2d9792]", "0", "00")
+ self.bid32_to_uint32_rninta("0", "[b4535b16]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[03686c39]", "0", "00")
+ self.bid32_to_uint32_rninta("0", "[ebcdb7df]", "2147483648", "01")
+ self.bid32_to_uint32_rninta("0", "[2f2d9792]", "0", "00")
+ self.bid32_to_uint32_rninta("0", "[b4535b16]", "2147483648", "01")
+ }
+
+ private func bid32_to_uint32_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint32_xceil() {
+ self.bid32_to_uint32_xceil("0", "1.1E+90", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_uint32_xceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint32_xceil("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint32_xceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint32_xceil("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_uint32_xceil("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint32_xceil("0", "[32000005]", "1", "20")
+ self.bid32_to_uint32_xceil("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint32_xceil("0", "[32000BBD]", "301", "20")
+ self.bid32_to_uint32_xceil("0", "[32800001]", "1", "00")
+ self.bid32_to_uint32_xceil("0", "[33800003]", "300", "00")
+ self.bid32_to_uint32_xceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xceil("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xceil("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint32_xceil("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xceil("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xceil("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xceil("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xceil("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xceil("0", "[344C4B40]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint32_xceil("0", "[37000005]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint32_xceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint32_xceil("0", "[78000000]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[7c000000]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[7e000000]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "-9.51", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[a3448255]", "0", "20")
+ self.bid32_to_uint32_xceil("0", "[b44d64a5]", "2147483648", "01")
+ self.bid32_to_uint32_xceil("0", "[a3448255]", "0", "20")
+ self.bid32_to_uint32_xceil("0", "[b44d64a5]", "2147483648", "01")
+ }
+
+ private func bid32_to_uint32_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint32_xfloor() {
+ self.bid32_to_uint32_xfloor("0", "1.1E+90", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint32_xfloor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint32_xfloor("0", "[2F96E360]", "1", "20")
+ self.bid32_to_uint32_xfloor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint32_xfloor("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_uint32_xfloor("0", "[310003E7]", "0", "20")
+ self.bid32_to_uint32_xfloor("0", "[32000005]", "0", "20")
+ self.bid32_to_uint32_xfloor("0", "[3200000F]", "1", "20")
+ self.bid32_to_uint32_xfloor("0", "[32000BBD]", "300", "20")
+ self.bid32_to_uint32_xfloor("0", "[32800001]", "1", "00")
+ self.bid32_to_uint32_xfloor("0", "[33800003]", "300", "00")
+ self.bid32_to_uint32_xfloor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xfloor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xfloor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xfloor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xfloor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xfloor("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xfloor("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint32_xfloor("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xfloor("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xfloor("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xfloor("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xfloor("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xfloor("0", "[344C4B40]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint32_xfloor("0", "[37000005]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_uint32_xfloor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint32_xfloor("0", "[78000000]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[7c000000]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "[7e000000]", "2147483648", "01")
+ self.bid32_to_uint32_xfloor("0", "-9.51", "2147483648", "01")
+ }
+
+ private func bid32_to_uint32_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint32_xint() {
+ self.bid32_to_uint32_xint("0", "1.1E+90", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint32_xint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint32_xint("0", "[2F96E360]", "1", "20")
+ self.bid32_to_uint32_xint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint32_xint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_uint32_xint("0", "[310003E7]", "0", "20")
+ self.bid32_to_uint32_xint("0", "[32000005]", "0", "20")
+ self.bid32_to_uint32_xint("0", "[3200000F]", "1", "20")
+ self.bid32_to_uint32_xint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_uint32_xint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint32_xint("0", "[33800003]", "300", "00")
+ self.bid32_to_uint32_xint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xint("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint32_xint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xint("0", "[344C4B40]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint32_xint("0", "[37000005]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_uint32_xint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint32_xint("0", "[78000000]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[7c000000]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[7e000000]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "-9.51", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[b41e4f57]", "2147483648", "01")
+ self.bid32_to_uint32_xint("0", "[b41e4f57]", "2147483648", "01")
+ }
+
+ private func bid32_to_uint32_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint32_xrnint() {
+ self.bid32_to_uint32_xrnint("0", "1.1E+90", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint32_xrnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint32_xrnint("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint32_xrnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint32_xrnint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_uint32_xrnint("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint32_xrnint("0", "[32000005]", "0", "20")
+ self.bid32_to_uint32_xrnint("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint32_xrnint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_uint32_xrnint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint32_xrnint("0", "[33800003]", "300", "00")
+ self.bid32_to_uint32_xrnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrnint("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrnint("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint32_xrnint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xrnint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xrnint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xrnint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xrnint("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xrnint("0", "[344C4B40]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint32_xrnint("0", "[37000005]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint32_xrnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint32_xrnint("0", "[78000000]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[7c000000]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[7e000000]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "-9.51", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[0b0b8608]", "0", "20")
+ self.bid32_to_uint32_xrnint("0", "[2fe0399c]", "6", "20")
+ self.bid32_to_uint32_xrnint("0", "[6c4608a8]", "8784", "20")
+ self.bid32_to_uint32_xrnint("0", "[af769c48]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[b41cb2b5]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[0b0b8608]", "0", "20")
+ self.bid32_to_uint32_xrnint("0", "[2fe0399c]", "6", "20")
+ self.bid32_to_uint32_xrnint("0", "[6c4608a8]", "8784", "20")
+ self.bid32_to_uint32_xrnint("0", "[af769c48]", "2147483648", "01")
+ self.bid32_to_uint32_xrnint("0", "[b41cb2b5]", "2147483648", "01")
+ }
+
+ private func bid32_to_uint32_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint32_xrninta() {
+ self.bid32_to_uint32_xrninta("0", "1.1E+90", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_uint32_xrninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint32_xrninta("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint32_xrninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint32_xrninta("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_uint32_xrninta("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint32_xrninta("0", "[32000005]", "1", "20")
+ self.bid32_to_uint32_xrninta("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint32_xrninta("0", "[32000BBD]", "301", "20")
+ self.bid32_to_uint32_xrninta("0", "[32800001]", "1", "00")
+ self.bid32_to_uint32_xrninta("0", "[33800003]", "300", "00")
+ self.bid32_to_uint32_xrninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrninta("0", "[3420C49C]", "2147484000", "00")
+ self.bid32_to_uint32_xrninta("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint32_xrninta("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xrninta("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xrninta("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xrninta("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xrninta("0", "[34418937]", "4294967000", "00")
+ self.bid32_to_uint32_xrninta("0", "[344C4B40]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[349E8480]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint32_xrninta("0", "[37000005]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[37800002]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint32_xrninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint32_xrninta("0", "[78000000]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[7c000000]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[7e000000]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "-9.51", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[22d51bfe]", "0", "20")
+ self.bid32_to_uint32_xrninta("0", "[6c15d82c]", "98", "20")
+ self.bid32_to_uint32_xrninta("0", "[320c8002]", "81920", "20")
+ self.bid32_to_uint32_xrninta("0", "[af77ffdf]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[2f202101]", "0", "20")
+ self.bid32_to_uint32_xrninta("0", "[ed0b7ef9]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[22d51bfe]", "0", "20")
+ self.bid32_to_uint32_xrninta("0", "[6c15d82c]", "98", "20")
+ self.bid32_to_uint32_xrninta("0", "[320c8002]", "81920", "20")
+ self.bid32_to_uint32_xrninta("0", "[af77ffdf]", "2147483648", "01")
+ self.bid32_to_uint32_xrninta("0", "[2f202101]", "0", "20")
+ self.bid32_to_uint32_xrninta("0", "[ed0b7ef9]", "2147483648", "01")
+ }
+
+ private func bid32_to_uint32_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint64_ceil() {
+ self.bid32_to_uint64_ceil("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_uint64_ceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint64_ceil("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint64_ceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint64_ceil("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_uint64_ceil("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint64_ceil("0", "[32000005]", "1", "00")
+ self.bid32_to_uint64_ceil("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint64_ceil("0", "[32000BBD]", "301", "00")
+ self.bid32_to_uint64_ceil("0", "[32800001]", "1", "00")
+ self.bid32_to_uint64_ceil("0", "[33800003]", "300", "00")
+ self.bid32_to_uint64_ceil("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_ceil("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3916E360]", "15000000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[391E8480]", "9223372036854775808", "01")
+ self.bid32_to_uint64_ceil("0", "[392625A0]", "9223372036854775808", "01")
+ self.bid32_to_uint64_ceil("0", "[398F4240]", "9223372036854775808", "01")
+ self.bid32_to_uint64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3B80000F]", "15000000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3B800019]", "9223372036854775808", "01")
+ self.bid32_to_uint64_ceil("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[3C000002]", "9223372036854775808", "01")
+ self.bid32_to_uint64_ceil("0", "[3C800001]", "9223372036854775808", "01")
+ self.bid32_to_uint64_ceil("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint64_ceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[78000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_ceil("0", "[7c000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_ceil("0", "[7e000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_ceil("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_uint64_ceil("0", "[8165906a]", "0", "00")
+ self.bid32_to_uint64_ceil("0", "[b9757a7f]", "9223372036854775808", "01")
+ self.bid32_to_uint64_ceil("0", "[b72b88c4]", "9223372036854775808", "01")
+ }
+
+ private func bid32_to_uint64_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint64_floor() {
+ self.bid32_to_uint64_floor("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint64_floor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint64_floor("0", "[2F96E360]", "1", "00")
+ self.bid32_to_uint64_floor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint64_floor("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_uint64_floor("0", "[310003E7]", "0", "00")
+ self.bid32_to_uint64_floor("0", "[32000005]", "0", "00")
+ self.bid32_to_uint64_floor("0", "[3200000F]", "1", "00")
+ self.bid32_to_uint64_floor("0", "[32000BBD]", "300", "00")
+ self.bid32_to_uint64_floor("0", "[32800001]", "1", "00")
+ self.bid32_to_uint64_floor("0", "[33800003]", "300", "00")
+ self.bid32_to_uint64_floor("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint64_floor("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_uint64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_floor("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_floor("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint64_floor("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_uint64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_floor("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3916E360]", "15000000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[391E8480]", "9223372036854775808", "01")
+ self.bid32_to_uint64_floor("0", "[392625A0]", "9223372036854775808", "01")
+ self.bid32_to_uint64_floor("0", "[398F4240]", "9223372036854775808", "01")
+ self.bid32_to_uint64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3B80000F]", "15000000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3B800019]", "9223372036854775808", "01")
+ self.bid32_to_uint64_floor("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[3C000002]", "9223372036854775808", "01")
+ self.bid32_to_uint64_floor("0", "[3C800001]", "9223372036854775808", "01")
+ self.bid32_to_uint64_floor("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_uint64_floor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[78000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_floor("0", "[7c000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_floor("0", "[7e000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_floor("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_uint64_floor("0", "[c2922102]", "9223372036854775808", "01")
+ }
+
+ private func bid32_to_uint64_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint64_int() {
+ self.bid32_to_uint64_int("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint64_int("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint64_int("0", "[2F96E360]", "1", "00")
+ self.bid32_to_uint64_int("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint64_int("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_uint64_int("0", "[310003E7]", "0", "00")
+ self.bid32_to_uint64_int("0", "[32000005]", "0", "00")
+ self.bid32_to_uint64_int("0", "[3200000F]", "1", "00")
+ self.bid32_to_uint64_int("0", "[32000BBD]", "300", "00")
+ self.bid32_to_uint64_int("0", "[32800001]", "1", "00")
+ self.bid32_to_uint64_int("0", "[33800003]", "300", "00")
+ self.bid32_to_uint64_int("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint64_int("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_uint64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_int("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_int("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint64_int("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_uint64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_int("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[3916E360]", "15000000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_int("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_int("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_int("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_int("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_int("0", "[391E8480]", "9223372036854775808", "01")
+ self.bid32_to_uint64_int("0", "[392625A0]", "9223372036854775808", "01")
+ self.bid32_to_uint64_int("0", "[398F4240]", "9223372036854775808", "01")
+ self.bid32_to_uint64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[3B80000F]", "15000000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[3B800019]", "9223372036854775808", "01")
+ self.bid32_to_uint64_int("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_int("0", "[3C000002]", "9223372036854775808", "01")
+ self.bid32_to_uint64_int("0", "[3C800001]", "9223372036854775808", "01")
+ self.bid32_to_uint64_int("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_uint64_int("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_int("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_int("0", "[78000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_int("0", "[7c000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_int("0", "[7e000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_int("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_uint64_int("0", "[b2195818]", "9223372036854775808", "01")
+ self.bid32_to_uint64_int("0", "[b96c5e41]", "9223372036854775808", "01")
+ }
+
+ private func bid32_to_uint64_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint64_rnint() {
+ self.bid32_to_uint64_rnint("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint64_rnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint64_rnint("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint64_rnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint64_rnint("0", "[30ADDA48]", "300", "00")
+ self.bid32_to_uint64_rnint("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint64_rnint("0", "[32000005]", "0", "00")
+ self.bid32_to_uint64_rnint("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint64_rnint("0", "[32000BBD]", "300", "00")
+ self.bid32_to_uint64_rnint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint64_rnint("0", "[33800003]", "300", "00")
+ self.bid32_to_uint64_rnint("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_rnint("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3916E360]", "15000000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[391E8480]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rnint("0", "[392625A0]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rnint("0", "[398F4240]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3B80000F]", "15000000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3B800019]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rnint("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[3C000002]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rnint("0", "[3C800001]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rnint("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint64_rnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[78000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rnint("0", "[7c000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rnint("0", "[7e000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rnint("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_uint64_rnint("0", "[00000004]", "0", "00")
+ self.bid32_to_uint64_rnint("0", "[edebd600]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rnint("0", "[b978931a]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rnint("0", "[ebc7ffff]", "9223372036854775808", "01")
+ }
+
+ private func bid32_to_uint64_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint64_rninta() {
+ self.bid32_to_uint64_rninta("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_uint64_rninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint64_rninta("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint64_rninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint64_rninta("0", "[30ADDA48]", "301", "00")
+ self.bid32_to_uint64_rninta("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint64_rninta("0", "[32000005]", "1", "00")
+ self.bid32_to_uint64_rninta("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint64_rninta("0", "[32000BBD]", "301", "00")
+ self.bid32_to_uint64_rninta("0", "[32800001]", "1", "00")
+ self.bid32_to_uint64_rninta("0", "[33800003]", "300", "00")
+ self.bid32_to_uint64_rninta("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_rninta("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3916E360]", "15000000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[391E8480]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rninta("0", "[392625A0]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rninta("0", "[398F4240]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3B80000F]", "15000000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3B800019]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rninta("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[3C000002]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rninta("0", "[3C800001]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rninta("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint64_rninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[78000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rninta("0", "[7c000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rninta("0", "[7e000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rninta("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_uint64_rninta("0", "[ebc88f0e]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rninta("0", "[1d457020]", "0", "00")
+ self.bid32_to_uint64_rninta("0", "[b0d21615]", "9223372036854775808", "01")
+ self.bid32_to_uint64_rninta("0", "[3000b2a1]", "0", "00")
+ self.bid32_to_uint64_rninta("0", "[ee516e72]", "9223372036854775808", "01")
+ }
+
+ private func bid32_to_uint64_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint64_xceil() {
+ self.bid32_to_uint64_xceil("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_uint64_xceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint64_xceil("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint64_xceil("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint64_xceil("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_uint64_xceil("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint64_xceil("0", "[32000005]", "1", "20")
+ self.bid32_to_uint64_xceil("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint64_xceil("0", "[32000BBD]", "301", "20")
+ self.bid32_to_uint64_xceil("0", "[32800001]", "1", "00")
+ self.bid32_to_uint64_xceil("0", "[33800003]", "300", "00")
+ self.bid32_to_uint64_xceil("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_xceil("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3916E360]", "15000000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[391E8480]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xceil("0", "[392625A0]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xceil("0", "[398F4240]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3B80000F]", "15000000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3B800019]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xceil("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[3C000002]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xceil("0", "[3C800001]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xceil("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint64_xceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[78000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xceil("0", "[7c000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xceil("0", "[7e000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xceil("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_uint64_xceil("0", "[a3448255]", "0", "20")
+ self.bid32_to_uint64_xceil("0", "[b7b3b050]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xceil("0", "[b9828b73]", "9223372036854775808", "01")
+ }
+
+ private func bid32_to_uint64_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint64_xfloor() {
+ self.bid32_to_uint64_xfloor("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint64_xfloor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint64_xfloor("0", "[2F96E360]", "1", "20")
+ self.bid32_to_uint64_xfloor("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint64_xfloor("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_uint64_xfloor("0", "[310003E7]", "0", "20")
+ self.bid32_to_uint64_xfloor("0", "[32000005]", "0", "20")
+ self.bid32_to_uint64_xfloor("0", "[3200000F]", "1", "20")
+ self.bid32_to_uint64_xfloor("0", "[32000BBD]", "300", "20")
+ self.bid32_to_uint64_xfloor("0", "[32800001]", "1", "00")
+ self.bid32_to_uint64_xfloor("0", "[33800003]", "300", "00")
+ self.bid32_to_uint64_xfloor("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3916E360]", "15000000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[391E8480]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xfloor("0", "[392625A0]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xfloor("0", "[398F4240]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3B80000F]", "15000000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3B800019]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xfloor("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[3C000002]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xfloor("0", "[3C800001]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xfloor("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_uint64_xfloor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[78000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xfloor("0", "[7c000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xfloor("0", "[7e000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xfloor("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_uint64_xfloor("0", "[d514b4a1]", "9223372036854775808", "01")
+ }
+
+ private func bid32_to_uint64_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint64_xint() {
+ self.bid32_to_uint64_xint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint64_xint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint64_xint("0", "[2F96E360]", "1", "20")
+ self.bid32_to_uint64_xint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint64_xint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_uint64_xint("0", "[310003E7]", "0", "20")
+ self.bid32_to_uint64_xint("0", "[32000005]", "0", "20")
+ self.bid32_to_uint64_xint("0", "[3200000F]", "1", "20")
+ self.bid32_to_uint64_xint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_uint64_xint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint64_xint("0", "[33800003]", "300", "00")
+ self.bid32_to_uint64_xint("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint64_xint("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_uint64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_xint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_xint("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint64_xint("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_uint64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xint("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3916E360]", "15000000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[391E8480]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "[392625A0]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "[398F4240]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3B80000F]", "15000000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3B800019]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[3C000002]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "[3C800001]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_uint64_xint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[78000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "[7c000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "[7e000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_uint64_xint("0", "[b8ea7bdb]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "[b9881c6e]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "[b8ea7bdb]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xint("0", "[b9881c6e]", "9223372036854775808", "01")
+ }
+
+ private func bid32_to_uint64_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint64_xrnint() {
+ self.bid32_to_uint64_xrnint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint64_xrnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint64_xrnint("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint64_xrnint("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint64_xrnint("0", "[30ADDA48]", "300", "20")
+ self.bid32_to_uint64_xrnint("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint64_xrnint("0", "[32000005]", "0", "20")
+ self.bid32_to_uint64_xrnint("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint64_xrnint("0", "[32000BBD]", "300", "20")
+ self.bid32_to_uint64_xrnint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint64_xrnint("0", "[33800003]", "300", "00")
+ self.bid32_to_uint64_xrnint("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3916E360]", "15000000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[391E8480]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrnint("0", "[392625A0]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrnint("0", "[398F4240]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3B80000F]", "15000000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3B800019]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrnint("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[3C000002]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrnint("0", "[3C800001]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrnint("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint64_xrnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[78000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrnint("0", "[7c000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrnint("0", "[7e000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrnint("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrnint("0", "[867d69c8]", "0", "20")
+ self.bid32_to_uint64_xrnint("0", "[b17b9175]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrnint("0", "[30607ba3]", "63", "20")
+ self.bid32_to_uint64_xrnint("0", "[31d26497]", "53997", "20")
+ self.bid32_to_uint64_xrnint("0", "[b92f92aa]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrnint("0", "[af77e97d]", "9223372036854775808", "01")
+ }
+
+ private func bid32_to_uint64_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint64_xrninta() {
+ self.bid32_to_uint64_xrninta("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_uint64_xrninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint64_xrninta("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint64_xrninta("0", "[30ADC6C0]", "300", "00")
+ self.bid32_to_uint64_xrninta("0", "[30ADDA48]", "301", "20")
+ self.bid32_to_uint64_xrninta("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint64_xrninta("0", "[32000005]", "1", "20")
+ self.bid32_to_uint64_xrninta("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint64_xrninta("0", "[32000BBD]", "301", "20")
+ self.bid32_to_uint64_xrninta("0", "[32800001]", "1", "00")
+ self.bid32_to_uint64_xrninta("0", "[33800003]", "300", "00")
+ self.bid32_to_uint64_xrninta("0", "[343D0900]", "4000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[344C4B40]", "5000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[349E8480]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3635AFE5]", "35184370000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[37000004]", "4000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[37000005]", "5000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[371E8480]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[37800002]", "20000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[390F4240]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3916E360]", "15000000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[391C25C2]", "18446740000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[391E8480]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "[392625A0]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "[398F4240]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3A000002]", "2000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3B80000F]", "15000000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3B800019]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3C000001]", "10000000000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[3C000002]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "[3C800001]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint64_xrninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[6E2CBCCC]", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[78000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "[7c000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "[7e000000]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "9.223372E+18", "9223372000000000000", "00")
+ self.bid32_to_uint64_xrninta("0", "[12004784]", "0", "20")
+ self.bid32_to_uint64_xrninta("0", "[b77efc23]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "[b9688f1e]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "[af2bfdd3]", "0", "20")
+ self.bid32_to_uint64_xrninta("0", "[ebc2ed92]", "9223372036854775808", "01")
+ self.bid32_to_uint64_xrninta("0", "[31bb3bd1]", "38819", "20")
+ self.bid32_to_uint64_xrninta("0", "[30e41959]", "656", "20")
+ }
+
+ private func bid32_to_uint64_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint8_ceil() {
+ self.bid32_to_uint8_ceil("0", "254.5", "255", "00")
+ self.bid32_to_uint8_ceil("0", "255.5", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_uint8_ceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint8_ceil("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint8_ceil("0", "[30934D68]", "127", "00")
+ self.bid32_to_uint8_ceil("0", "[309360F0]", "127", "00")
+ self.bid32_to_uint8_ceil("0", "[30937478]", "128", "00")
+ self.bid32_to_uint8_ceil("0", "[30938800]", "128", "00")
+ self.bid32_to_uint8_ceil("0", "[30939B88]", "129", "00")
+ self.bid32_to_uint8_ceil("0", "[3093AF10]", "129", "00")
+ self.bid32_to_uint8_ceil("0", "[30A6E8F0]", "255", "00")
+ self.bid32_to_uint8_ceil("0", "[30A6FC78]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[30A71000]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[30A72388]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[30A73710]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[30ADC6C0]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[30ADDA48]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint8_ceil("0", "[32000005]", "1", "00")
+ self.bid32_to_uint8_ceil("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint8_ceil("0", "[320004F1]", "127", "00")
+ self.bid32_to_uint8_ceil("0", "[320004FB]", "128", "00")
+ self.bid32_to_uint8_ceil("0", "[32000505]", "129", "00")
+ self.bid32_to_uint8_ceil("0", "[320009FB]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[32000A05]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[32000BBD]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[32800001]", "1", "00")
+ self.bid32_to_uint8_ceil("0", "[3280007F]", "127", "00")
+ self.bid32_to_uint8_ceil("0", "[32800080]", "128", "00")
+ self.bid32_to_uint8_ceil("0", "[32800081]", "129", "00")
+ self.bid32_to_uint8_ceil("0", "[328000FF]", "255", "00")
+ self.bid32_to_uint8_ceil("0", "[32800100]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[32800101]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[33800003]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint8_ceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint8_ceil("0", "[78000000]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[7c000000]", "128", "01")
+ self.bid32_to_uint8_ceil("0", "[7e000000]", "128", "01")
+ }
+
+ private func bid32_to_uint8_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint8_floor() {
+ self.bid32_to_uint8_floor("0", "254.5", "254", "00")
+ self.bid32_to_uint8_floor("0", "255.5", "255", "00")
+ self.bid32_to_uint8_floor("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint8_floor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint8_floor("0", "[2F96E360]", "1", "00")
+ self.bid32_to_uint8_floor("0", "[30934D68]", "126", "00")
+ self.bid32_to_uint8_floor("0", "[309360F0]", "127", "00")
+ self.bid32_to_uint8_floor("0", "[30937478]", "127", "00")
+ self.bid32_to_uint8_floor("0", "[30938800]", "128", "00")
+ self.bid32_to_uint8_floor("0", "[30939B88]", "128", "00")
+ self.bid32_to_uint8_floor("0", "[3093AF10]", "129", "00")
+ self.bid32_to_uint8_floor("0", "[30A6E8F0]", "255", "00")
+ self.bid32_to_uint8_floor("0", "[30A6FC78]", "255", "00")
+ self.bid32_to_uint8_floor("0", "[30A71000]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[30A72388]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[30A73710]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[30ADC6C0]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[30ADDA48]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[310003E7]", "0", "00")
+ self.bid32_to_uint8_floor("0", "[32000005]", "0", "00")
+ self.bid32_to_uint8_floor("0", "[3200000F]", "1", "00")
+ self.bid32_to_uint8_floor("0", "[320004F1]", "126", "00")
+ self.bid32_to_uint8_floor("0", "[320004FB]", "127", "00")
+ self.bid32_to_uint8_floor("0", "[32000505]", "128", "00")
+ self.bid32_to_uint8_floor("0", "[320009FB]", "255", "00")
+ self.bid32_to_uint8_floor("0", "[32000A05]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[32000BBD]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[32800001]", "1", "00")
+ self.bid32_to_uint8_floor("0", "[3280007F]", "127", "00")
+ self.bid32_to_uint8_floor("0", "[32800080]", "128", "00")
+ self.bid32_to_uint8_floor("0", "[32800081]", "129", "00")
+ self.bid32_to_uint8_floor("0", "[328000FF]", "255", "00")
+ self.bid32_to_uint8_floor("0", "[32800100]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[32800101]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[33800003]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_uint8_floor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint8_floor("0", "[78000000]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[7c000000]", "128", "01")
+ self.bid32_to_uint8_floor("0", "[7e000000]", "128", "01")
+ }
+
+ private func bid32_to_uint8_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint8_int() {
+ self.bid32_to_uint8_int("0", "254.5", "254", "00")
+ self.bid32_to_uint8_int("0", "255.5", "255", "00")
+ self.bid32_to_uint8_int("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint8_int("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint8_int("0", "[2F96E360]", "1", "00")
+ self.bid32_to_uint8_int("0", "[30934D68]", "126", "00")
+ self.bid32_to_uint8_int("0", "[309360F0]", "127", "00")
+ self.bid32_to_uint8_int("0", "[30937478]", "127", "00")
+ self.bid32_to_uint8_int("0", "[30938800]", "128", "00")
+ self.bid32_to_uint8_int("0", "[30939B88]", "128", "00")
+ self.bid32_to_uint8_int("0", "[3093AF10]", "129", "00")
+ self.bid32_to_uint8_int("0", "[30A6E8F0]", "255", "00")
+ self.bid32_to_uint8_int("0", "[30A6FC78]", "255", "00")
+ self.bid32_to_uint8_int("0", "[30A71000]", "128", "01")
+ self.bid32_to_uint8_int("0", "[30A72388]", "128", "01")
+ self.bid32_to_uint8_int("0", "[30A73710]", "128", "01")
+ self.bid32_to_uint8_int("0", "[30ADC6C0]", "128", "01")
+ self.bid32_to_uint8_int("0", "[30ADDA48]", "128", "01")
+ self.bid32_to_uint8_int("0", "[310003E7]", "0", "00")
+ self.bid32_to_uint8_int("0", "[32000005]", "0", "00")
+ self.bid32_to_uint8_int("0", "[3200000F]", "1", "00")
+ self.bid32_to_uint8_int("0", "[320004F1]", "126", "00")
+ self.bid32_to_uint8_int("0", "[320004FB]", "127", "00")
+ self.bid32_to_uint8_int("0", "[32000505]", "128", "00")
+ self.bid32_to_uint8_int("0", "[320009FB]", "255", "00")
+ self.bid32_to_uint8_int("0", "[32000A05]", "128", "01")
+ self.bid32_to_uint8_int("0", "[32000BBD]", "128", "01")
+ self.bid32_to_uint8_int("0", "[32800001]", "1", "00")
+ self.bid32_to_uint8_int("0", "[3280007F]", "127", "00")
+ self.bid32_to_uint8_int("0", "[32800080]", "128", "00")
+ self.bid32_to_uint8_int("0", "[32800081]", "129", "00")
+ self.bid32_to_uint8_int("0", "[328000FF]", "255", "00")
+ self.bid32_to_uint8_int("0", "[32800100]", "128", "01")
+ self.bid32_to_uint8_int("0", "[32800101]", "128", "01")
+ self.bid32_to_uint8_int("0", "[33800003]", "128", "01")
+ self.bid32_to_uint8_int("0", "[6BD86F70]", "0", "00")
+ self.bid32_to_uint8_int("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint8_int("0", "[78000000]", "128", "01")
+ self.bid32_to_uint8_int("0", "[7c000000]", "128", "01")
+ self.bid32_to_uint8_int("0", "[7e000000]", "128", "01")
+ }
+
+ private func bid32_to_uint8_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint8_rnint() {
+ self.bid32_to_uint8_rnint("0", "254.5", "254", "00")
+ self.bid32_to_uint8_rnint("0", "255.5", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[2F4C4B40]", "0", "00")
+ self.bid32_to_uint8_rnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint8_rnint("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint8_rnint("0", "[30934D68]", "126", "00")
+ self.bid32_to_uint8_rnint("0", "[309360F0]", "127", "00")
+ self.bid32_to_uint8_rnint("0", "[30937478]", "128", "00")
+ self.bid32_to_uint8_rnint("0", "[30938800]", "128", "00")
+ self.bid32_to_uint8_rnint("0", "[30939B88]", "128", "00")
+ self.bid32_to_uint8_rnint("0", "[3093AF10]", "129", "00")
+ self.bid32_to_uint8_rnint("0", "[30A6E8F0]", "255", "00")
+ self.bid32_to_uint8_rnint("0", "[30A6FC78]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[30A71000]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[30A72388]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[30A73710]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[30ADC6C0]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[30ADDA48]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint8_rnint("0", "[32000005]", "0", "00")
+ self.bid32_to_uint8_rnint("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint8_rnint("0", "[320004F1]", "126", "00")
+ self.bid32_to_uint8_rnint("0", "[320004FB]", "128", "00")
+ self.bid32_to_uint8_rnint("0", "[32000505]", "128", "00")
+ self.bid32_to_uint8_rnint("0", "[320009FB]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[32000A05]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[32000BBD]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint8_rnint("0", "[3280007F]", "127", "00")
+ self.bid32_to_uint8_rnint("0", "[32800080]", "128", "00")
+ self.bid32_to_uint8_rnint("0", "[32800081]", "129", "00")
+ self.bid32_to_uint8_rnint("0", "[328000FF]", "255", "00")
+ self.bid32_to_uint8_rnint("0", "[32800100]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[32800101]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[33800003]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint8_rnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint8_rnint("0", "[78000000]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[7c000000]", "128", "01")
+ self.bid32_to_uint8_rnint("0", "[7e000000]", "128", "01")
+ }
+
+ private func bid32_to_uint8_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint8_rninta() {
+ self.bid32_to_uint8_rninta("0", "254.5", "255", "00")
+ self.bid32_to_uint8_rninta("0", "255.5", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[2F4C4B40]", "1", "00")
+ self.bid32_to_uint8_rninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint8_rninta("0", "[2F96E360]", "2", "00")
+ self.bid32_to_uint8_rninta("0", "[30934D68]", "127", "00")
+ self.bid32_to_uint8_rninta("0", "[309360F0]", "127", "00")
+ self.bid32_to_uint8_rninta("0", "[30937478]", "128", "00")
+ self.bid32_to_uint8_rninta("0", "[30938800]", "128", "00")
+ self.bid32_to_uint8_rninta("0", "[30939B88]", "129", "00")
+ self.bid32_to_uint8_rninta("0", "[3093AF10]", "129", "00")
+ self.bid32_to_uint8_rninta("0", "[30A6E8F0]", "255", "00")
+ self.bid32_to_uint8_rninta("0", "[30A6FC78]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[30A71000]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[30A72388]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[30A73710]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[30ADC6C0]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[30ADDA48]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[310003E7]", "1", "00")
+ self.bid32_to_uint8_rninta("0", "[32000005]", "1", "00")
+ self.bid32_to_uint8_rninta("0", "[3200000F]", "2", "00")
+ self.bid32_to_uint8_rninta("0", "[320004F1]", "127", "00")
+ self.bid32_to_uint8_rninta("0", "[320004FB]", "128", "00")
+ self.bid32_to_uint8_rninta("0", "[32000505]", "129", "00")
+ self.bid32_to_uint8_rninta("0", "[320009FB]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[32000A05]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[32000BBD]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[32800001]", "1", "00")
+ self.bid32_to_uint8_rninta("0", "[3280007F]", "127", "00")
+ self.bid32_to_uint8_rninta("0", "[32800080]", "128", "00")
+ self.bid32_to_uint8_rninta("0", "[32800081]", "129", "00")
+ self.bid32_to_uint8_rninta("0", "[328000FF]", "255", "00")
+ self.bid32_to_uint8_rninta("0", "[32800100]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[32800101]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[33800003]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[6BD86F70]", "1", "00")
+ self.bid32_to_uint8_rninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint8_rninta("0", "[78000000]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[7c000000]", "128", "01")
+ self.bid32_to_uint8_rninta("0", "[7e000000]", "128", "01")
+ }
+
+ private func bid32_to_uint8_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint8_xceil() {
+ self.bid32_to_uint8_xceil("0", "254.5", "255", "20")
+ self.bid32_to_uint8_xceil("0", "255.5", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_uint8_xceil("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint8_xceil("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint8_xceil("0", "[30934D68]", "127", "20")
+ self.bid32_to_uint8_xceil("0", "[309360F0]", "127", "00")
+ self.bid32_to_uint8_xceil("0", "[30937478]", "128", "20")
+ self.bid32_to_uint8_xceil("0", "[30938800]", "128", "00")
+ self.bid32_to_uint8_xceil("0", "[30939B88]", "129", "20")
+ self.bid32_to_uint8_xceil("0", "[3093AF10]", "129", "00")
+ self.bid32_to_uint8_xceil("0", "[30A6E8F0]", "255", "00")
+ self.bid32_to_uint8_xceil("0", "[30A6FC78]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[30A71000]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[30A72388]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[30A73710]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[30ADC6C0]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[30ADDA48]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint8_xceil("0", "[32000005]", "1", "20")
+ self.bid32_to_uint8_xceil("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint8_xceil("0", "[320004F1]", "127", "20")
+ self.bid32_to_uint8_xceil("0", "[320004FB]", "128", "20")
+ self.bid32_to_uint8_xceil("0", "[32000505]", "129", "20")
+ self.bid32_to_uint8_xceil("0", "[320009FB]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[32000A05]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[32000BBD]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[32800001]", "1", "00")
+ self.bid32_to_uint8_xceil("0", "[3280007F]", "127", "00")
+ self.bid32_to_uint8_xceil("0", "[32800080]", "128", "00")
+ self.bid32_to_uint8_xceil("0", "[32800081]", "129", "00")
+ self.bid32_to_uint8_xceil("0", "[328000FF]", "255", "00")
+ self.bid32_to_uint8_xceil("0", "[32800100]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[32800101]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[33800003]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint8_xceil("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint8_xceil("0", "[78000000]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[7c000000]", "128", "01")
+ self.bid32_to_uint8_xceil("0", "[7e000000]", "128", "01")
+ }
+
+ private func bid32_to_uint8_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint8_xfloor() {
+ self.bid32_to_uint8_xfloor("0", "254.5", "254", "20")
+ self.bid32_to_uint8_xfloor("0", "255.5", "255", "20")
+ self.bid32_to_uint8_xfloor("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint8_xfloor("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint8_xfloor("0", "[2F96E360]", "1", "20")
+ self.bid32_to_uint8_xfloor("0", "[30934D68]", "126", "20")
+ self.bid32_to_uint8_xfloor("0", "[309360F0]", "127", "00")
+ self.bid32_to_uint8_xfloor("0", "[30937478]", "127", "20")
+ self.bid32_to_uint8_xfloor("0", "[30938800]", "128", "00")
+ self.bid32_to_uint8_xfloor("0", "[30939B88]", "128", "20")
+ self.bid32_to_uint8_xfloor("0", "[3093AF10]", "129", "00")
+ self.bid32_to_uint8_xfloor("0", "[30A6E8F0]", "255", "00")
+ self.bid32_to_uint8_xfloor("0", "[30A6FC78]", "255", "20")
+ self.bid32_to_uint8_xfloor("0", "[30A71000]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[30A72388]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[30A73710]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[30ADC6C0]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[30ADDA48]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[310003E7]", "0", "20")
+ self.bid32_to_uint8_xfloor("0", "[32000005]", "0", "20")
+ self.bid32_to_uint8_xfloor("0", "[3200000F]", "1", "20")
+ self.bid32_to_uint8_xfloor("0", "[320004F1]", "126", "20")
+ self.bid32_to_uint8_xfloor("0", "[320004FB]", "127", "20")
+ self.bid32_to_uint8_xfloor("0", "[32000505]", "128", "20")
+ self.bid32_to_uint8_xfloor("0", "[320009FB]", "255", "20")
+ self.bid32_to_uint8_xfloor("0", "[32000A05]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[32000BBD]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[32800001]", "1", "00")
+ self.bid32_to_uint8_xfloor("0", "[3280007F]", "127", "00")
+ self.bid32_to_uint8_xfloor("0", "[32800080]", "128", "00")
+ self.bid32_to_uint8_xfloor("0", "[32800081]", "129", "00")
+ self.bid32_to_uint8_xfloor("0", "[328000FF]", "255", "00")
+ self.bid32_to_uint8_xfloor("0", "[32800100]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[32800101]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[33800003]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_uint8_xfloor("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint8_xfloor("0", "[78000000]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[7c000000]", "128", "01")
+ self.bid32_to_uint8_xfloor("0", "[7e000000]", "128", "01")
+ }
+
+ private func bid32_to_uint8_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint8_xint() {
+ self.bid32_to_uint8_xint("0", "254.5", "254", "20")
+ self.bid32_to_uint8_xint("0", "255.5", "255", "20")
+ self.bid32_to_uint8_xint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint8_xint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint8_xint("0", "[2F96E360]", "1", "20")
+ self.bid32_to_uint8_xint("0", "[30934D68]", "126", "20")
+ self.bid32_to_uint8_xint("0", "[309360F0]", "127", "00")
+ self.bid32_to_uint8_xint("0", "[30937478]", "127", "20")
+ self.bid32_to_uint8_xint("0", "[30938800]", "128", "00")
+ self.bid32_to_uint8_xint("0", "[30939B88]", "128", "20")
+ self.bid32_to_uint8_xint("0", "[3093AF10]", "129", "00")
+ self.bid32_to_uint8_xint("0", "[30A6E8F0]", "255", "00")
+ self.bid32_to_uint8_xint("0", "[30A6FC78]", "255", "20")
+ self.bid32_to_uint8_xint("0", "[30A71000]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[30A72388]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[30A73710]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[30ADC6C0]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[30ADDA48]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[310003E7]", "0", "20")
+ self.bid32_to_uint8_xint("0", "[32000005]", "0", "20")
+ self.bid32_to_uint8_xint("0", "[3200000F]", "1", "20")
+ self.bid32_to_uint8_xint("0", "[320004F1]", "126", "20")
+ self.bid32_to_uint8_xint("0", "[320004FB]", "127", "20")
+ self.bid32_to_uint8_xint("0", "[32000505]", "128", "20")
+ self.bid32_to_uint8_xint("0", "[320009FB]", "255", "20")
+ self.bid32_to_uint8_xint("0", "[32000A05]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[32000BBD]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint8_xint("0", "[3280007F]", "127", "00")
+ self.bid32_to_uint8_xint("0", "[32800080]", "128", "00")
+ self.bid32_to_uint8_xint("0", "[32800081]", "129", "00")
+ self.bid32_to_uint8_xint("0", "[328000FF]", "255", "00")
+ self.bid32_to_uint8_xint("0", "[32800100]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[32800101]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[33800003]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[6BD86F70]", "0", "20")
+ self.bid32_to_uint8_xint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint8_xint("0", "[78000000]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[7c000000]", "128", "01")
+ self.bid32_to_uint8_xint("0", "[7e000000]", "128", "01")
+ }
+
+ private func bid32_to_uint8_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint8_xrnint() {
+ self.bid32_to_uint8_xrnint("0", "254.5", "254", "20")
+ self.bid32_to_uint8_xrnint("0", "255.5", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[2F4C4B40]", "0", "20")
+ self.bid32_to_uint8_xrnint("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint8_xrnint("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint8_xrnint("0", "[30934D68]", "126", "20")
+ self.bid32_to_uint8_xrnint("0", "[309360F0]", "127", "00")
+ self.bid32_to_uint8_xrnint("0", "[30937478]", "128", "20")
+ self.bid32_to_uint8_xrnint("0", "[30938800]", "128", "00")
+ self.bid32_to_uint8_xrnint("0", "[30939B88]", "128", "20")
+ self.bid32_to_uint8_xrnint("0", "[3093AF10]", "129", "00")
+ self.bid32_to_uint8_xrnint("0", "[30A6E8F0]", "255", "00")
+ self.bid32_to_uint8_xrnint("0", "[30A6FC78]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[30A71000]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[30A72388]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[30A73710]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[30ADC6C0]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[30ADDA48]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint8_xrnint("0", "[32000005]", "0", "20")
+ self.bid32_to_uint8_xrnint("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint8_xrnint("0", "[320004F1]", "126", "20")
+ self.bid32_to_uint8_xrnint("0", "[320004FB]", "128", "20")
+ self.bid32_to_uint8_xrnint("0", "[32000505]", "128", "20")
+ self.bid32_to_uint8_xrnint("0", "[320009FB]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[32000A05]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[32000BBD]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[32800001]", "1", "00")
+ self.bid32_to_uint8_xrnint("0", "[3280007F]", "127", "00")
+ self.bid32_to_uint8_xrnint("0", "[32800080]", "128", "00")
+ self.bid32_to_uint8_xrnint("0", "[32800081]", "129", "00")
+ self.bid32_to_uint8_xrnint("0", "[328000FF]", "255", "00")
+ self.bid32_to_uint8_xrnint("0", "[32800100]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[32800101]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[33800003]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint8_xrnint("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint8_xrnint("0", "[78000000]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[7c000000]", "128", "01")
+ self.bid32_to_uint8_xrnint("0", "[7e000000]", "128", "01")
+ }
+
+ private func bid32_to_uint8_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid32_to_uint8_xrninta() {
+ self.bid32_to_uint8_xrninta("0", "254.5", "255", "20")
+ self.bid32_to_uint8_xrninta("0", "255.5", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[2F4C4B40]", "1", "20")
+ self.bid32_to_uint8_xrninta("0", "[2F8F4240]", "1", "00")
+ self.bid32_to_uint8_xrninta("0", "[2F96E360]", "2", "20")
+ self.bid32_to_uint8_xrninta("0", "[30934D68]", "127", "20")
+ self.bid32_to_uint8_xrninta("0", "[309360F0]", "127", "00")
+ self.bid32_to_uint8_xrninta("0", "[30937478]", "128", "20")
+ self.bid32_to_uint8_xrninta("0", "[30938800]", "128", "00")
+ self.bid32_to_uint8_xrninta("0", "[30939B88]", "129", "20")
+ self.bid32_to_uint8_xrninta("0", "[3093AF10]", "129", "00")
+ self.bid32_to_uint8_xrninta("0", "[30A6E8F0]", "255", "00")
+ self.bid32_to_uint8_xrninta("0", "[30A6FC78]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[30A71000]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[30A72388]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[30A73710]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[30ADC6C0]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[30ADDA48]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[310003E7]", "1", "20")
+ self.bid32_to_uint8_xrninta("0", "[32000005]", "1", "20")
+ self.bid32_to_uint8_xrninta("0", "[3200000F]", "2", "20")
+ self.bid32_to_uint8_xrninta("0", "[320004F1]", "127", "20")
+ self.bid32_to_uint8_xrninta("0", "[320004FB]", "128", "20")
+ self.bid32_to_uint8_xrninta("0", "[32000505]", "129", "20")
+ self.bid32_to_uint8_xrninta("0", "[320009FB]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[32000A05]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[32000BBD]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[32800001]", "1", "00")
+ self.bid32_to_uint8_xrninta("0", "[3280007F]", "127", "00")
+ self.bid32_to_uint8_xrninta("0", "[32800080]", "128", "00")
+ self.bid32_to_uint8_xrninta("0", "[32800081]", "129", "00")
+ self.bid32_to_uint8_xrninta("0", "[328000FF]", "255", "00")
+ self.bid32_to_uint8_xrninta("0", "[32800100]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[32800101]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[33800003]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[6BD86F70]", "1", "20")
+ self.bid32_to_uint8_xrninta("0", "[6CB89680]", "0", "00")
+ self.bid32_to_uint8_xrninta("0", "[78000000]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[7c000000]", "128", "01")
+ self.bid32_to_uint8_xrninta("0", "[7e000000]", "128", "01")
+ }
+
+ private func bid32_to_uint8_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int16_ceil() {
+ self.bid64_to_int16_ceil("0", "-1", "-1", "00")
+ self.bid64_to_int16_ceil("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_int16_ceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int16_ceil("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int16_ceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int16_ceil("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_int16_ceil("0", "[306BA418874DA400]", "32767", "00")
+ self.bid64_to_int16_ceil("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_int16_ceil("0", "[306BA42FCFC48C00]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[306BA43B74000000]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[306BA447183B7400]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[306BA452BC76E800]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[3077485F9F891800]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[3077486B43C48C00]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[30774876E8000000]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[307748828C3B7400]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[3077488E3076E800]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int16_ceil("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_int16_ceil("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int16_ceil("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_int16_ceil("0", "[31A000000004FFF1]", "32767", "00")
+ self.bid64_to_int16_ceil("0", "[31A000000004FFFB]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[31A0000000050005]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[31A000000009FFFB]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[31A00000000A0005]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int16_ceil("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_int16_ceil("0", "[31C0000000008000]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[31C0000000008001]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[31C000000000FFFF]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[31C0000000010000]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[31C0000000010001]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int16_ceil("0", "32769", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int16_ceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int16_ceil("0", "[7800000000000000]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[7c00000000000000]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[7e00000000000000]", "-32768", "01")
+ self.bid64_to_int16_ceil("0", "[9fbfff2ffbffef5e]", "0", "00")
+ }
+
+ private func bid64_to_int16_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int16_floor() {
+ self.bid64_to_int16_floor("0", "-1", "-1", "00")
+ self.bid64_to_int16_floor("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int16_floor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int16_floor("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_int16_floor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int16_floor("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_int16_floor("0", "[306BA418874DA400]", "32766", "00")
+ self.bid64_to_int16_floor("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_int16_floor("0", "[306BA42FCFC48C00]", "32767", "00")
+ self.bid64_to_int16_floor("0", "[306BA43B74000000]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[306BA447183B7400]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[306BA452BC76E800]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[3077485F9F891800]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[3077486B43C48C00]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[30774876E8000000]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[307748828C3B7400]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[3077488E3076E800]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_int16_floor("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int16_floor("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_int16_floor("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_int16_floor("0", "[31A000000004FFF1]", "32766", "00")
+ self.bid64_to_int16_floor("0", "[31A000000004FFFB]", "32767", "00")
+ self.bid64_to_int16_floor("0", "[31A0000000050005]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[31A000000009FFFB]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[31A00000000A0005]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int16_floor("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_int16_floor("0", "[31C0000000008000]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[31C0000000008001]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[31C000000000FFFF]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[31C0000000010000]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[31C0000000010001]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int16_floor("0", "32769", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_int16_floor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int16_floor("0", "[7800000000000000]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[7c00000000000000]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[7e00000000000000]", "-32768", "01")
+ self.bid64_to_int16_floor("0", "[b1278aa3ff3b94a0]", "-32768", "01")
+ }
+
+ private func bid64_to_int16_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int16_int() {
+ self.bid64_to_int16_int("0", "-1", "-1", "00")
+ self.bid64_to_int16_int("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int16_int("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int16_int("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_int16_int("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int16_int("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_int16_int("0", "[306BA418874DA400]", "32766", "00")
+ self.bid64_to_int16_int("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_int16_int("0", "[306BA42FCFC48C00]", "32767", "00")
+ self.bid64_to_int16_int("0", "[306BA43B74000000]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[306BA447183B7400]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[306BA452BC76E800]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[3077485F9F891800]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[3077486B43C48C00]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[30774876E8000000]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[307748828C3B7400]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[3077488E3076E800]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_int16_int("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int16_int("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_int16_int("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_int16_int("0", "[31A000000004FFF1]", "32766", "00")
+ self.bid64_to_int16_int("0", "[31A000000004FFFB]", "32767", "00")
+ self.bid64_to_int16_int("0", "[31A0000000050005]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[31A000000009FFFB]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[31A00000000A0005]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int16_int("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_int16_int("0", "[31C0000000008000]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[31C0000000008001]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[31C000000000FFFF]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[31C0000000010000]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[31C0000000010001]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int16_int("0", "32769", "-32768", "01")
+ self.bid64_to_int16_int("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_int16_int("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int16_int("0", "[7800000000000000]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[7c00000000000000]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[7e00000000000000]", "-32768", "01")
+ self.bid64_to_int16_int("0", "[fd2f513b3d127efa]", "-32768", "01")
+ }
+
+ private func bid64_to_int16_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int16_rnint() {
+ self.bid64_to_int16_rnint("0", "-1", "-1", "00")
+ self.bid64_to_int16_rnint("0", "[15528e39ca5af8d1]", "0", "00")
+ self.bid64_to_int16_rnint("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int16_rnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int16_rnint("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int16_rnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int16_rnint("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_int16_rnint("0", "[306BA418874DA400]", "32766", "00")
+ self.bid64_to_int16_rnint("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_int16_rnint("0", "[306BA42FCFC48C00]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[306BA43B74000000]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[306BA447183B7400]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[306BA452BC76E800]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[3077485F9F891800]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[3077486B43C48C00]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[30774876E8000000]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[307748828C3B7400]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[3077488E3076E800]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int16_rnint("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int16_rnint("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int16_rnint("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_int16_rnint("0", "[31A000000004FFF1]", "32766", "00")
+ self.bid64_to_int16_rnint("0", "[31A000000004FFFB]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[31A0000000050005]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[31A000000009FFFB]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[31A00000000A0005]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int16_rnint("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_int16_rnint("0", "[31C0000000008000]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[31C0000000008001]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[31C000000000FFFF]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[31C0000000010000]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[31C0000000010001]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int16_rnint("0", "32769", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int16_rnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int16_rnint("0", "[7800000000000000]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[7c00000000000000]", "-32768", "01")
+ self.bid64_to_int16_rnint("0", "[7e00000000000000]", "-32768", "01")
+ }
+
+ private func bid64_to_int16_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int16_rninta() {
+ self.bid64_to_int16_rninta("0", "[0501800040000000]", "0", "00")
+ self.bid64_to_int16_rninta("0", "-1", "-1", "00")
+ self.bid64_to_int16_rninta("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_int16_rninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int16_rninta("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int16_rninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int16_rninta("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_int16_rninta("0", "[306BA418874DA400]", "32767", "00")
+ self.bid64_to_int16_rninta("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_int16_rninta("0", "[306BA42FCFC48C00]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[306BA43B74000000]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[306BA447183B7400]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[306BA452BC76E800]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[3077485F9F891800]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[3077486B43C48C00]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[30774876E8000000]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[307748828C3B7400]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[3077488E3076E800]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int16_rninta("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_int16_rninta("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int16_rninta("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_int16_rninta("0", "[31A000000004FFF1]", "32767", "00")
+ self.bid64_to_int16_rninta("0", "[31A000000004FFFB]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[31A0000000050005]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[31A000000009FFFB]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[31A00000000A0005]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int16_rninta("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_int16_rninta("0", "[31C0000000008000]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[31C0000000008001]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[31C000000000FFFF]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[31C0000000010000]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[31C0000000010001]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int16_rninta("0", "32769", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int16_rninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int16_rninta("0", "[7800000000000000]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[7c00000000000000]", "-32768", "01")
+ self.bid64_to_int16_rninta("0", "[7e00000000000000]", "-32768", "01")
+ }
+
+ private func bid64_to_int16_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int16_xceil() {
+ self.bid64_to_int16_xceil("0", "-1", "-1", "00")
+ self.bid64_to_int16_xceil("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_int16_xceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int16_xceil("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int16_xceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int16_xceil("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_int16_xceil("0", "[306BA418874DA400]", "32767", "20")
+ self.bid64_to_int16_xceil("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_int16_xceil("0", "[306BA42FCFC48C00]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[306BA43B74000000]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[306BA447183B7400]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[306BA452BC76E800]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[3077485F9F891800]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[3077486B43C48C00]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[30774876E8000000]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[307748828C3B7400]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[3077488E3076E800]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int16_xceil("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_int16_xceil("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int16_xceil("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_int16_xceil("0", "[31A000000004FFF1]", "32767", "20")
+ self.bid64_to_int16_xceil("0", "[31A000000004FFFB]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[31A0000000050005]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[31A000000009FFFB]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[31A00000000A0005]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int16_xceil("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_int16_xceil("0", "[31C0000000008000]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[31C0000000008001]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[31C000000000FFFF]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[31C0000000010000]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[31C0000000010001]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int16_xceil("0", "32769", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int16_xceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int16_xceil("0", "[7800000000000000]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[7bfebef7dfff7bdf]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[7c00000000000000]", "-32768", "01")
+ self.bid64_to_int16_xceil("0", "[7e00000000000000]", "-32768", "01")
+ }
+
+ private func bid64_to_int16_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int16_xfloor() {
+ self.bid64_to_int16_xfloor("0", "-1", "-1", "00")
+ self.bid64_to_int16_xfloor("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int16_xfloor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int16_xfloor("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_int16_xfloor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int16_xfloor("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_int16_xfloor("0", "[306BA418874DA400]", "32766", "20")
+ self.bid64_to_int16_xfloor("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_int16_xfloor("0", "[306BA42FCFC48C00]", "32767", "20")
+ self.bid64_to_int16_xfloor("0", "[306BA43B74000000]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[306BA447183B7400]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[306BA452BC76E800]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[3077485F9F891800]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[3077486B43C48C00]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[30774876E8000000]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[307748828C3B7400]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[3077488E3076E800]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_int16_xfloor("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int16_xfloor("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_int16_xfloor("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_int16_xfloor("0", "[31A000000004FFF1]", "32766", "20")
+ self.bid64_to_int16_xfloor("0", "[31A000000004FFFB]", "32767", "20")
+ self.bid64_to_int16_xfloor("0", "[31A0000000050005]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[31A000000009FFFB]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[31A00000000A0005]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int16_xfloor("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_int16_xfloor("0", "[31C0000000008000]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[31C0000000008001]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[31C000000000FFFF]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[31C0000000010000]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[31C0000000010001]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int16_xfloor("0", "32769", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[4bfec1e3a8113da2]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_int16_xfloor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int16_xfloor("0", "[7800000000000000]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[7c00000000000000]", "-32768", "01")
+ self.bid64_to_int16_xfloor("0", "[7e00000000000000]", "-32768", "01")
+ }
+
+ private func bid64_to_int16_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int16_xint() {
+ self.bid64_to_int16_xint("0", "-1", "-1", "00")
+ self.bid64_to_int16_xint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int16_xint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int16_xint("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_int16_xint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int16_xint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_int16_xint("0", "[306BA418874DA400]", "32766", "20")
+ self.bid64_to_int16_xint("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_int16_xint("0", "[306BA42FCFC48C00]", "32767", "20")
+ self.bid64_to_int16_xint("0", "[306BA43B74000000]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[306BA447183B7400]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[306BA452BC76E800]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[3077485F9F891800]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[3077486B43C48C00]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[30774876E8000000]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[307748828C3B7400]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[3077488E3076E800]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_int16_xint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int16_xint("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_int16_xint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_int16_xint("0", "[31A000000004FFF1]", "32766", "20")
+ self.bid64_to_int16_xint("0", "[31A000000004FFFB]", "32767", "20")
+ self.bid64_to_int16_xint("0", "[31A0000000050005]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[31A000000009FFFB]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[31A00000000A0005]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int16_xint("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_int16_xint("0", "[31C0000000008000]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[31C0000000008001]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[31C000000000FFFF]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[31C0000000010000]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[31C0000000010001]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int16_xint("0", "32769", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_int16_xint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int16_xint("0", "[7800000000000000]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[7c00000000000000]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[7e00000000000000]", "-32768", "01")
+ self.bid64_to_int16_xint("0", "[f7fffebbfbffefef]", "0", "00")
+ }
+
+ private func bid64_to_int16_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int16_xrnint() {
+ self.bid64_to_int16_xrnint("0", "-1", "-1", "00")
+ self.bid64_to_int16_xrnint("0", "[2302c79015100297]", "0", "20")
+ self.bid64_to_int16_xrnint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int16_xrnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int16_xrnint("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int16_xrnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int16_xrnint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_int16_xrnint("0", "[306BA418874DA400]", "32766", "20")
+ self.bid64_to_int16_xrnint("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_int16_xrnint("0", "[306BA42FCFC48C00]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[306BA43B74000000]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[306BA447183B7400]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[306BA452BC76E800]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[3077485F9F891800]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[3077486B43C48C00]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[30774876E8000000]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[307748828C3B7400]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[3077488E3076E800]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int16_xrnint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int16_xrnint("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int16_xrnint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_int16_xrnint("0", "[31A000000004FFF1]", "32766", "20")
+ self.bid64_to_int16_xrnint("0", "[31A000000004FFFB]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[31A0000000050005]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[31A000000009FFFB]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[31A00000000A0005]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int16_xrnint("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_int16_xrnint("0", "[31C0000000008000]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[31C0000000008001]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[31C000000000FFFF]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[31C0000000010000]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[31C0000000010001]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int16_xrnint("0", "32769", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int16_xrnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int16_xrnint("0", "[7800000000000000]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[7c00000000000000]", "-32768", "01")
+ self.bid64_to_int16_xrnint("0", "[7e00000000000000]", "-32768", "01")
+ }
+
+ private func bid64_to_int16_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int16_xrninta() {
+ self.bid64_to_int16_xrninta("0", "[04b043477b368bf6]", "0", "20")
+ self.bid64_to_int16_xrninta("0", "-1", "-1", "00")
+ self.bid64_to_int16_xrninta("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_int16_xrninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int16_xrninta("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int16_xrninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int16_xrninta("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_int16_xrninta("0", "[306BA418874DA400]", "32767", "20")
+ self.bid64_to_int16_xrninta("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_int16_xrninta("0", "[306BA42FCFC48C00]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[306BA43B74000000]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[306BA447183B7400]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[306BA452BC76E800]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[3077485F9F891800]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[3077486B43C48C00]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[30774876E8000000]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[307748828C3B7400]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[3077488E3076E800]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int16_xrninta("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_int16_xrninta("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int16_xrninta("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_int16_xrninta("0", "[31A000000004FFF1]", "32767", "20")
+ self.bid64_to_int16_xrninta("0", "[31A000000004FFFB]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[31A0000000050005]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[31A000000009FFFB]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[31A00000000A0005]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int16_xrninta("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_int16_xrninta("0", "[31C0000000008000]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[31C0000000008001]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[31C000000000FFFF]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[31C0000000010000]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[31C0000000010001]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int16_xrninta("0", "32769", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int16_xrninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int16_xrninta("0", "[7800000000000000]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[7c00000000000000]", "-32768", "01")
+ self.bid64_to_int16_xrninta("0", "[7e00000000000000]", "-32768", "01")
+ }
+
+ private func bid64_to_int16_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int32_ceil() {
+ self.bid64_to_int32_ceil("0", "-0", "0", "00")
+ self.bid64_to_int32_ceil("0", "0", "0", "00")
+ self.bid64_to_int32_ceil("0", "[0140413328540800]", "1", "00")
+ self.bid64_to_int32_ceil("0", "[0932000000000000]", "1", "00")
+ self.bid64_to_int32_ceil("0", "[0d29000000000000]", "1", "00")
+ self.bid64_to_int32_ceil("0", "-11011101.00E2", "-1101110100", "00")
+ self.bid64_to_int32_ceil("0", "+1111000.10E2", "111100010", "00")
+ self.bid64_to_int32_ceil("0", "[130b416e77044c1e]", "1", "00")
+ self.bid64_to_int32_ceil("0", "[16df2c7d036a0ab9]", "1", "00")
+ self.bid64_to_int32_ceil("0", "[1a00000000000000]", "0", "00")
+ self.bid64_to_int32_ceil("0", "[2f431e66cb96fe06]", "1", "00")
+ self.bid64_to_int32_ceil("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_int32_ceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int32_ceil("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int32_ceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int32_ceil("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_int32_ceil("0", "[3090223f540f4c82]", "454126", "00")
+ self.bid64_to_int32_ceil("0", "[3107A11FFFE91CA0]", "2147483647", "00")
+ self.bid64_to_int32_ceil("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_int32_ceil("0", "[3107A11FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[3107A12000000000]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[3107A1200007A120]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[3107A120000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[3108000843282680]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[310E35FA931A0000]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[310F423FFFF0BDC0]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[310F423FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[310F424000000000]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[310F42400007A120]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[310F4240000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[3111C37937E08000]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31271AFD498AB610]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31271AFD498B7960]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31271AFD498C3CB0]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31271AFD498D0000]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31271AFD498DC350]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31271AFD498E86A0]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31271AFD498F49F0]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int32_ceil("0", "[3160008041000080]", "550846334", "00")
+ self.bid64_to_int32_ceil("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_int32_ceil("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int32_ceil("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_int32_ceil("0", "[31A00004FFFFFFF1]", "2147483647", "00")
+ self.bid64_to_int32_ceil("0", "[31A00004FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31A0000500000005]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31A00009FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31A0000A00000005]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31A0002E90EDCFF1]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31A0002E90EDCFFB]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31A0002E90EDD005]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31A0002E90EDD00F]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int32_ceil("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_int32_ceil("0", "[31C0000080000000]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31C0000080000001]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31C00000FFFFFFFF]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31C0000100000000]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31C0000100000001]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31C00004A817C7FF]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[31C00004A817C801]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int32_ceil("0", "[3200000001000000]", "1677721600", "00")
+ self.bid64_to_int32_ceil("0", "[32E0000000000004]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[32E0000000000005]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[3300000000000002]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[4ce7d81f2495efcd]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[4fc00bb9a485bb07]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[51cf874c9df794a1]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[55cdcd0a834292b6]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int32_ceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int32_ceil("0", "[71ea3cfdff7ff7f7]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[7800000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "+7986.9757E0", "7987", "00")
+ self.bid64_to_int32_ceil("0", "[7c00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[7e00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "-8.89888E6", "-8898880", "00")
+ self.bid64_to_int32_ceil("0", "+8898.899899E6", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "-89.E8", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[a400000000000000]", "0", "00")
+ self.bid64_to_int32_ceil("0", "[a6a0d055dab7388e]", "0", "00")
+ self.bid64_to_int32_ceil("0", "[aa8e9ea285cb4414]", "0", "00")
+ self.bid64_to_int32_ceil("0", "[afffebebff25ebef]", "-8", "00")
+ self.bid64_to_int32_ceil("0", "[b11460409610c016]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "[ef7bbb9bffff7fbd]", "0", "00")
+ self.bid64_to_int32_ceil("0", "[fff97fffff3ffbfd]", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "Infinity", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "QNaN", "-2147483648", "01")
+ self.bid64_to_int32_ceil("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid64_to_int32_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int32_floor() {
+ self.bid64_to_int32_floor("0", "-0", "0", "00")
+ self.bid64_to_int32_floor("0", "[00b1d15f537c73eb]", "0", "00")
+ self.bid64_to_int32_floor("0", "[0932000000000000]", "0", "00")
+ self.bid64_to_int32_floor("0", "[0d29000000000000]", "0", "00")
+ self.bid64_to_int32_floor("0", "[16df2c7d036a0ab9]", "0", "00")
+ self.bid64_to_int32_floor("0", "[1a00000000000000]", "0", "00")
+ self.bid64_to_int32_floor("0", "[2f431e66cb96fe06]", "0", "00")
+ self.bid64_to_int32_floor("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int32_floor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int32_floor("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_int32_floor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int32_floor("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_int32_floor("0", "[305988284508c8fe]", "7186", "00")
+ self.bid64_to_int32_floor("0", "[3107A11FFFE91CA0]", "2147483646", "00")
+ self.bid64_to_int32_floor("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_int32_floor("0", "[3107A11FFFF85EE0]", "2147483647", "00")
+ self.bid64_to_int32_floor("0", "[3107A12000000000]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[3107A1200007A120]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[3107A120000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[310E35FA931A0000]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[310F423FFFF0BDC0]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[310F423FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[310F424000000000]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[310F42400007A120]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[310F4240000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[3111C37937E08000]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31271AFD498AB610]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31271AFD498B7960]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31271AFD498C3CB0]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31271AFD498D0000]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31271AFD498DC350]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31271AFD498E86A0]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31271AFD498F49F0]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_int32_floor("0", "[3180000006053480]", "1010044", "00")
+ self.bid64_to_int32_floor("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int32_floor("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_int32_floor("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_int32_floor("0", "[31A00004FFFFFFF1]", "2147483646", "00")
+ self.bid64_to_int32_floor("0", "[31A00004FFFFFFFB]", "2147483647", "00")
+ self.bid64_to_int32_floor("0", "[31A0000500000005]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31A00009FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31A0000A00000005]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31A0002E90EDCFF1]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31A0002E90EDCFFB]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31A0002E90EDD005]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31A0002E90EDD00F]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int32_floor("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_int32_floor("0", "[31C0000080000000]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31C0000080000001]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31C00000FFFFFFFF]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31C0000100000000]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31C0000100000001]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31C00004A817C7FF]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[31C00004A817C801]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int32_floor("0", "[3200000000000008]", "800", "00")
+ self.bid64_to_int32_floor("0", "[3200000004304581]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[32E0000000000004]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[32E0000000000005]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[3300000000000002]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "-47884639932.93E0", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[4ce7d81f2495efcd]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[55cdcd0a834292b6]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "-5669.95866E6", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[5823f170469eb3d4]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[60222407192baaae]", "0", "00")
+ self.bid64_to_int32_floor("0", "-6877.6E4", "-68776000", "00")
+ self.bid64_to_int32_floor("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_int32_floor("0", "[6c42208400068420]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int32_floor("0", "[7800000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[7c00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[7e00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[928506a8c1258496]", "-1", "00")
+ self.bid64_to_int32_floor("0", "-99988.E0", "-99988", "00")
+ self.bid64_to_int32_floor("0", "+9.E0", "9", "00")
+ self.bid64_to_int32_floor("0", "[a400000000000000]", "0", "00")
+ self.bid64_to_int32_floor("0", "[a6a0d055dab7388e]", "-1", "00")
+ self.bid64_to_int32_floor("0", "[aa8e9ea285cb4414]", "-1", "00")
+ self.bid64_to_int32_floor("0", "[afea2992dff5cff7]", "-3", "00")
+ self.bid64_to_int32_floor("0", "[b11ff9fffdf27ffd]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "[b180001010021104]", "-689880477", "00")
+ self.bid64_to_int32_floor("0", "[eb3d3d1935277ccc]", "0", "00")
+ self.bid64_to_int32_floor("0", "[fffffdffffffffff]", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "Infinity", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "QNaN", "-2147483648", "01")
+ self.bid64_to_int32_floor("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid64_to_int32_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int32_int() {
+ self.bid64_to_int32_int("0", "-0", "0", "00")
+ self.bid64_to_int32_int("0", "0", "0", "00")
+ self.bid64_to_int32_int("0", "[07c3a0a0a4d33252]", "0", "00")
+ self.bid64_to_int32_int("0", "[0cc1000000000000]", "0", "00")
+ self.bid64_to_int32_int("0", "[247a05a24ee1620b]", "0", "00")
+ self.bid64_to_int32_int("0", "[295e4ad3badc2965]", "0", "00")
+ self.bid64_to_int32_int("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int32_int("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int32_int("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_int32_int("0", "[3016005814103000]", "61", "00")
+ self.bid64_to_int32_int("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int32_int("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_int32_int("0", "[3107A11FFFE91CA0]", "2147483646", "00")
+ self.bid64_to_int32_int("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_int32_int("0", "[3107A11FFFF85EE0]", "2147483647", "00")
+ self.bid64_to_int32_int("0", "[3107A12000000000]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[3107A1200007A120]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[3107A120000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[310E35FA931A0000]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[310F423FFFF0BDC0]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[310F423FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[310F424000000000]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[310F42400007A120]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[310F4240000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[3110e10026000003]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[3111C37937E08000]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31271AFD498AB610]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31271AFD498B7960]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31271AFD498C3CB0]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31271AFD498D0000]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31271AFD498DC350]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31271AFD498E86A0]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31271AFD498F49F0]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_int32_int("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int32_int("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_int32_int("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_int32_int("0", "[31A00004FFFFFFF1]", "2147483646", "00")
+ self.bid64_to_int32_int("0", "[31A00004FFFFFFFB]", "2147483647", "00")
+ self.bid64_to_int32_int("0", "[31A0000500000005]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31A00009FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31A0000A00000005]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31A0002E90EDCFF1]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31A0002E90EDCFFB]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31A0002E90EDD005]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31A0002E90EDD00F]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int32_int("0", "[31c0000000480000]", "4718592", "00")
+ self.bid64_to_int32_int("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_int32_int("0", "[31C0000080000000]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31C0000080000001]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31C00000FFFFFFFF]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31C0000100000000]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31C0000100000001]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31C00004A817C7FF]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[31C00004A817C801]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int32_int("0", "[3200000001000208]", "1677773600", "00")
+ self.bid64_to_int32_int("0", "[32400000000400b0]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[32E0000000000004]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[32E0000000000005]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[3300000000000002]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[480883688af126aa]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "-58289.26957E5", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[5e0b5ac238120bac]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[61c8b3e34f6b2d09]", "0", "00")
+ self.bid64_to_int32_int("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_int32_int("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int32_int("0", "[6fe1be191be1c6c4]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[7800000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[7c00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[7e00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "-9898.E0", "-9898", "00")
+ self.bid64_to_int32_int("0", "[9da27942aba57bea]", "0", "00")
+ self.bid64_to_int32_int("0", "[a11842cfadac1d41]", "0", "00")
+ self.bid64_to_int32_int("0", "[ace746b3181a629e]", "0", "00")
+ self.bid64_to_int32_int("0", "[af5f105ea4cb4595]", "0", "00")
+ self.bid64_to_int32_int("0", "[b007a8bf4c67ccdd]", "-21", "00")
+ self.bid64_to_int32_int("0", "[b114c5064211a523]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "[b200000000820020]", "-851971200", "00")
+ self.bid64_to_int32_int("0", "[d840000000000000]", "0", "00")
+ self.bid64_to_int32_int("0", "[e7ff9ff9ff7af5fd]", "0", "00")
+ self.bid64_to_int32_int("0", "[f03182a905c4d649]", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "-Infinity", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "Infinity", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "QNaN", "-2147483648", "01")
+ self.bid64_to_int32_int("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid64_to_int32_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int32_rnint() {
+ self.bid64_to_int32_rnint("0", "-0", "0", "00")
+ self.bid64_to_int32_rnint("0", "0", "0", "00")
+ self.bid64_to_int32_rnint("0", "[00556b1c9ea58fd3]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[00713ed54250692f]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[0803004200088006]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[0965000000000000]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[0b874f30ad37d4cc]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[1867f892d8b517ac]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[1e536720a6414578]", "0", "00")
+ self.bid64_to_int32_rnint("0", "-254.465E2", "-25446", "00")
+ self.bid64_to_int32_rnint("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[2fd8fbcef57a5163]", "1", "00")
+ self.bid64_to_int32_rnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int32_rnint("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int32_rnint("0", "[3020040080070010]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int32_rnint("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_int32_rnint("0", "[3040a6026013d8b5]", "183", "00")
+ self.bid64_to_int32_rnint("0", "[3107A11FFFE91CA0]", "2147483646", "00")
+ self.bid64_to_int32_rnint("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_int32_rnint("0", "[3107A11FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[3107A12000000000]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[3107A1200007A120]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[3107A120000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[310E35FA931A0000]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[310F423FFFF0BDC0]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[310F423FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[310F424000000000]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[310F42400007A120]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[310F4240000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[3111C37937E08000]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[3113b081e7466865]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31271AFD498AB610]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31271AFD498B7960]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31271AFD498C3CB0]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31271AFD498D0000]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31271AFD498DC350]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31271AFD498E86A0]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31271AFD498F49F0]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int32_rnint("0", "[3163e9edfebd7c26]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int32_rnint("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_int32_rnint("0", "[31A00004FFFFFFF1]", "2147483646", "00")
+ self.bid64_to_int32_rnint("0", "[31A00004FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31A0000500000005]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31A00009FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31A0000A00000005]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31A0002E90EDCFF1]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31A0002E90EDCFFB]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31A0002E90EDD005]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31A0002E90EDD00F]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int32_rnint("0", "[31c000001a028000]", "436371456", "00")
+ self.bid64_to_int32_rnint("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_int32_rnint("0", "[31C0000080000000]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31C0000080000001]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31C00000FFFFFFFF]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31C0000100000000]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31C0000100000001]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31C00004A817C7FF]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[31C00004A817C801]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int32_rnint("0", "[3200000000200000]", "209715200", "00")
+ self.bid64_to_int32_rnint("0", "[3240000000040000]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[32E0000000000004]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[32E0000000000005]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[3300000000000002]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[3f60c8097eb8b2fd]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[41bbee018c62b328]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[49fc6f0c16bff143]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[51d3b921a0bbbf70]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[6808200108641900]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int32_rnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[7291884bfd8b041a]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[7800000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[7c00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[7e00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[88bb1508298af8b5]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[9646cb89804e3749]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[989a2fa589e716e5]", "0", "00")
+ self.bid64_to_int32_rnint("0", "-9.E0", "-9", "00")
+ self.bid64_to_int32_rnint("0", "[a167db3a9c3230bd]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[afd94de33915a394]", "-1", "00")
+ self.bid64_to_int32_rnint("0", "[b0eb8e6c9425347d]", "-325282174", "00")
+ self.bid64_to_int32_rnint("0", "[b20000000105e818]", "-1716431200", "00")
+ self.bid64_to_int32_rnint("0", "[b200000004140040]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[bdf82e25c6484248]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[ca95fc7e4c003eb0]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[d1517f43400a41a8]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[d76cd0d9a5257216]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[d9ae061421df6415]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[dcbfe7bd2eab8dbc]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[ec4175430ffffd75]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "[f65bcb6b8c024480]", "0", "00")
+ self.bid64_to_int32_rnint("0", "[fba70cb7ffdfaffb]", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "-Infinity", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "Infinity", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "QNaN", "-2147483648", "01")
+ self.bid64_to_int32_rnint("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid64_to_int32_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int32_rninta() {
+ self.bid64_to_int32_rninta("0", "-0", "0", "00")
+ self.bid64_to_int32_rninta("0", "0", "0", "00")
+ self.bid64_to_int32_rninta("0", "+1.0E1", "10", "00")
+ self.bid64_to_int32_rninta("0", "-2.4E2", "-240", "00")
+ self.bid64_to_int32_rninta("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_int32_rninta("0", "[2fd6549be3dfd74e]", "1", "00")
+ self.bid64_to_int32_rninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int32_rninta("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int32_rninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int32_rninta("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_int32_rninta("0", "[30c3447ef4880366]", "9197370", "00")
+ self.bid64_to_int32_rninta("0", "[3107A11FFFE91CA0]", "2147483647", "00")
+ self.bid64_to_int32_rninta("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_int32_rninta("0", "[3107A11FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[3107A12000000000]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[3107A1200007A120]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[3107A120000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[310E35FA931A0000]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[310F423FFFF0BDC0]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[310F423FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[310F424000000000]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[310F42400007A120]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[310F4240000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[311022bd0855552a]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[3111C37937E08000]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31271AFD498AB610]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31271AFD498B7960]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31271AFD498C3CB0]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31271AFD498D0000]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31271AFD498DC350]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31271AFD498E86A0]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31271AFD498F49F0]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int32_rninta("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_int32_rninta("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int32_rninta("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_int32_rninta("0", "[31A00004FFFFFFF1]", "2147483647", "00")
+ self.bid64_to_int32_rninta("0", "[31A00004FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31A0000500000005]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31A00009FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31A0000A00000005]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31A0002E90EDCFF1]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31A0002E90EDCFFB]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31A0002E90EDD005]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31A0002E90EDD00F]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int32_rninta("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_int32_rninta("0", "[31C0000080000000]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31C0000080000001]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31C00000FFFFFFFF]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31C0000100000000]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31C0000100000001]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31C00004A817C7FF]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[31C00004A817C801]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int32_rninta("0", "[3200000000000088]", "13600", "00")
+ self.bid64_to_int32_rninta("0", "[3200000002003080]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[32E0000000000004]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[32E0000000000005]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[3300000000000002]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[4723947ddf830448]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[53684529d34c4161]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int32_rninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int32_rninta("0", "[769a4b541dc616dd]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[7800000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[7c00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[7e00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[8392ceed52887c30]", "0", "00")
+ self.bid64_to_int32_rninta("0", "[8bc0000000000000]", "0", "00")
+ self.bid64_to_int32_rninta("0", "[9271c07d120dc29b]", "0", "00")
+ self.bid64_to_int32_rninta("0", "[98420192411ed2a2]", "0", "00")
+ self.bid64_to_int32_rninta("0", "-999.899E3", "-999899", "00")
+ self.bid64_to_int32_rninta("0", "[a5d54ea86dc0a820]", "0", "00")
+ self.bid64_to_int32_rninta("0", "[abf0289456f7258e]", "0", "00")
+ self.bid64_to_int32_rninta("0", "[afd14ff7fbb53677]", "0", "00")
+ self.bid64_to_int32_rninta("0", "[afdee6e753e7f5bd]", "-1", "00")
+ self.bid64_to_int32_rninta("0", "[b0096c3377841265]", "-27", "00")
+ self.bid64_to_int32_rninta("0", "[b1145840a1019a6a]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[b200000004040040]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[c12a48d5433ce649]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[c52dd7210825084d]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[c6cc1cee0784e37b]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "[f7de7eff7ffffd0a]", "0", "00")
+ self.bid64_to_int32_rninta("0", "[fdffd7efffd7dffe]", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "-Infinity", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "Infinity", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "QNaN", "-2147483648", "01")
+ self.bid64_to_int32_rninta("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid64_to_int32_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int32_xceil() {
+ self.bid64_to_int32_xceil("0", "-0", "0", "00")
+ self.bid64_to_int32_xceil("0", "0", "0", "00")
+ self.bid64_to_int32_xceil("0", "[0000000000a00000]", "1", "20")
+ self.bid64_to_int32_xceil("0", "[00f32a33ff3ab667]", "1", "20")
+ self.bid64_to_int32_xceil("0", "-0.10E0", "0", "20")
+ self.bid64_to_int32_xceil("0", "[01677c9e745f8098]", "1", "20")
+ self.bid64_to_int32_xceil("0", "[09bd28ec18d42bc1]", "1", "20")
+ self.bid64_to_int32_xceil("0", "[0d69000000000000]", "1", "20")
+ self.bid64_to_int32_xceil("0", "-1.001E3", "-1001", "00")
+ self.bid64_to_int32_xceil("0", "-1011011.10111010E0", "-1011011", "20")
+ self.bid64_to_int32_xceil("0", "[281eb39d8dd7956d]", "1", "20")
+ self.bid64_to_int32_xceil("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_int32_xceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int32_xceil("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int32_xceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int32_xceil("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_int32_xceil("0", "[30a2080041581122]", "571748", "20")
+ self.bid64_to_int32_xceil("0", "[3107A11FFFE91CA0]", "2147483647", "20")
+ self.bid64_to_int32_xceil("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_int32_xceil("0", "[3107A11FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[3107A12000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[3107A1200007A120]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[3107A120000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[310E35FA931A0000]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[310F423FFFF0BDC0]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[310F423FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[310F424000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[310F42400007A120]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[310F4240000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[3111C37937E08000]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[311a8c10001e10c4]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31271AFD498AB610]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31271AFD498B7960]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31271AFD498C3CB0]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31271AFD498D0000]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31271AFD498DC350]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31271AFD498E86A0]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31271AFD498F49F0]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int32_xceil("0", "[3180000080004000]", "21475001", "20")
+ self.bid64_to_int32_xceil("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_int32_xceil("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int32_xceil("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_int32_xceil("0", "[31A00004FFFFFFF1]", "2147483647", "20")
+ self.bid64_to_int32_xceil("0", "[31A00004FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31A0000500000005]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31A00009FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31A0000A00000005]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31A0002E90EDCFF1]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31A0002E90EDCFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31A0002E90EDD005]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31A0002E90EDD00F]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int32_xceil("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_int32_xceil("0", "[31C0000080000000]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31C0000080000001]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31C00000FFFFFFFF]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31C0000100000000]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31C0000100000001]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31C00004A817C7FF]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[31C00004A817C801]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int32_xceil("0", "[3200000000001200]", "460800", "00")
+ self.bid64_to_int32_xceil("0", "[3200000002008008]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[32E0000000000004]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[32E0000000000005]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[3300000000000002]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[3f5fffffcfffdf77]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[450df3bc7326acdb]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[4b00e2c6efef7c96]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[506c511e05361f43]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[56bf07d4a85e4a58]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[5ac9a1d8c4a92d63]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int32_xceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int32_xceil("0", "-767623.539E4", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[771ebc1adbe8ed8d]", "0", "00")
+ self.bid64_to_int32_xceil("0", "[7800000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[7c00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[7e00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[8622e8f7d1eb8914]", "0", "20")
+ self.bid64_to_int32_xceil("0", "[8885eb0375c2f17b]", "0", "20")
+ self.bid64_to_int32_xceil("0", "+88.89E2", "8889", "00")
+ self.bid64_to_int32_xceil("0", "+8.96E0", "9", "20")
+ self.bid64_to_int32_xceil("0", "+98.889E0", "99", "20")
+ self.bid64_to_int32_xceil("0", "[a340000000000000]", "0", "00")
+ self.bid64_to_int32_xceil("0", "[a6970a84cf9f9da7]", "0", "20")
+ self.bid64_to_int32_xceil("0", "[ad009f3d20c4aabb]", "0", "20")
+ self.bid64_to_int32_xceil("0", "[b02c1ee77a292229]", "-341", "20")
+ self.bid64_to_int32_xceil("0", "[b110aa409f2b580d]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[b200000000080000]", "-52428800", "00")
+ self.bid64_to_int32_xceil("0", "[b2601d3a3c8865cf]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[bcb495cdf73e32fa]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[cccdea49b1ff8840]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[d560000000000000]", "0", "00")
+ self.bid64_to_int32_xceil("0", "[e7236220bf1d165b]", "0", "20")
+ self.bid64_to_int32_xceil("0", "[e9d176bafbcf8c2d]", "0", "20")
+ self.bid64_to_int32_xceil("0", "[f0d32e64786c841b]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "[f6c2a981c7aa7f69]", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "-Infinity", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "Infinity", "-2147483648", "01")
+ self.bid64_to_int32_xceil("0", "QNaN", "-2147483648", "01")
+ }
+
+ private func bid64_to_int32_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int32_xfloor() {
+ self.bid64_to_int32_xfloor("0", "-0", "0", "00")
+ self.bid64_to_int32_xfloor("0", "0", "0", "00")
+ self.bid64_to_int32_xfloor("0", "-0.00010000E0", "-1", "20")
+ self.bid64_to_int32_xfloor("0", "[0032123020b32729]", "0", "20")
+ self.bid64_to_int32_xfloor("0", "[0103a00008000088]", "0", "20")
+ self.bid64_to_int32_xfloor("0", "-0.11111E8", "-11111000", "00")
+ self.bid64_to_int32_xfloor("0", "[06c4ba07feef6cb7]", "0", "20")
+ self.bid64_to_int32_xfloor("0", "[0aa8573529917dd7]", "0", "20")
+ self.bid64_to_int32_xfloor("0", "-10000.10E0", "-10001", "20")
+ self.bid64_to_int32_xfloor("0", "-11.10E2", "-1110", "00")
+ self.bid64_to_int32_xfloor("0", "[1e550b235691a6e6]", "0", "20")
+ self.bid64_to_int32_xfloor("0", "[1f00000000000000]", "0", "00")
+ self.bid64_to_int32_xfloor("0", "[2040000000000000]", "0", "00")
+ self.bid64_to_int32_xfloor("0", "[2520744bd0a11150]", "0", "20")
+ self.bid64_to_int32_xfloor("0", "+294865.3552249E0", "294865", "20")
+ self.bid64_to_int32_xfloor("0", "[2fa0000000000000]", "0", "00")
+ self.bid64_to_int32_xfloor("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int32_xfloor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int32_xfloor("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_int32_xfloor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int32_xfloor("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_int32_xfloor("0", "[309f33fc03c037f4]", "878288", "20")
+ self.bid64_to_int32_xfloor("0", "[3107A11FFFE91CA0]", "2147483646", "20")
+ self.bid64_to_int32_xfloor("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_int32_xfloor("0", "[3107A11FFFF85EE0]", "2147483647", "20")
+ self.bid64_to_int32_xfloor("0", "[3107A12000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[3107A1200007A120]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[3107A120000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[310E35FA931A0000]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[310F423FFFF0BDC0]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[310F423FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[310F424000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[310F42400007A120]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[310F4240000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[3111C37937E08000]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31271AFD498AB610]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31271AFD498B7960]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31271AFD498C3CB0]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31271AFD498D0000]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31271AFD498DC350]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31271AFD498E86A0]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31271AFD498F49F0]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_int32_xfloor("0", "[3180000010000580]", "2684368", "20")
+ self.bid64_to_int32_xfloor("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int32_xfloor("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_int32_xfloor("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_int32_xfloor("0", "[31A00004FFFFFFF1]", "2147483646", "20")
+ self.bid64_to_int32_xfloor("0", "[31A00004FFFFFFFB]", "2147483647", "20")
+ self.bid64_to_int32_xfloor("0", "[31A0000500000005]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31A00009FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31A0000A00000005]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31A0002E90EDCFF1]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31A0002E90EDCFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31A0002E90EDD005]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31A0002E90EDD00F]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int32_xfloor("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_int32_xfloor("0", "[31C0000080000000]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31C0000080000001]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31C00000FFFFFFFF]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31C0000100000000]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31C0000100000001]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31C00004A817C7FF]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[31C00004A817C801]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int32_xfloor("0", "[3240000000020002]", "1310740000", "00")
+ self.bid64_to_int32_xfloor("0", "[32E0000000000004]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[32E0000000000005]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[3300000000000002]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "+3657.4769E4", "36574769", "00")
+ self.bid64_to_int32_xfloor("0", "[4cc0000000000000]", "0", "00")
+ self.bid64_to_int32_xfloor("0", "-57.555799E8", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[5b80000000000000]", "0", "00")
+ self.bid64_to_int32_xfloor("0", "-6.7958557E0", "-7", "20")
+ self.bid64_to_int32_xfloor("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_int32_xfloor("0", "[6c42733758d0e80f]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int32_xfloor("0", "[6cdafd3c69edeff9]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "+72.775E0", "72", "20")
+ self.bid64_to_int32_xfloor("0", "[7800000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[7c00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[7e00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[850cb429a486df29]", "-1", "20")
+ self.bid64_to_int32_xfloor("0", "+8.89E9", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "+8.9898899999E0", "8", "20")
+ self.bid64_to_int32_xfloor("0", "-89.99898899E0", "-90", "20")
+ self.bid64_to_int32_xfloor("0", "+8.999989989E0", "8", "20")
+ self.bid64_to_int32_xfloor("0", "[8d9dea53aea817a6]", "-1", "20")
+ self.bid64_to_int32_xfloor("0", "-96.55768E0", "-97", "20")
+ self.bid64_to_int32_xfloor("0", "[970c0b1b56280b01]", "-1", "20")
+ self.bid64_to_int32_xfloor("0", "[971c82e8340b9360]", "-1", "20")
+ self.bid64_to_int32_xfloor("0", "[a773550e0d4cd6db]", "-1", "20")
+ self.bid64_to_int32_xfloor("0", "[b080000000000000]", "0", "00")
+ self.bid64_to_int32_xfloor("0", "[b0f71bee5c0d9949]", "-650463503", "20")
+ self.bid64_to_int32_xfloor("0", "[b11e9f4e42fd7075]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[b18000114100a802]", "-741050061", "20")
+ self.bid64_to_int32_xfloor("0", "[b3c0000000000000]", "0", "00")
+ self.bid64_to_int32_xfloor("0", "[c3e0000000000000]", "0", "00")
+ self.bid64_to_int32_xfloor("0", "[c7c0000000000000]", "0", "00")
+ self.bid64_to_int32_xfloor("0", "[d691ac16f30f8b57]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[effffffbfcf97fbf]", "0", "00")
+ self.bid64_to_int32_xfloor("0", "[f3423bf2e6d0b72c]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[f4c916d5df2d9f63]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "[ffffffffffffffff]", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "-Infinity", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "QNaN", "-2147483648", "01")
+ self.bid64_to_int32_xfloor("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid64_to_int32_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int32_xint() {
+ self.bid64_to_int32_xint("0", "-0", "0", "00")
+ self.bid64_to_int32_xint("0", "0", "0", "00")
+ self.bid64_to_int32_xint("0", "[0180000000000000]", "0", "00")
+ self.bid64_to_int32_xint("0", "[0b53000000000000]", "0", "20")
+ self.bid64_to_int32_xint("0", "[0f85000000000000]", "0", "20")
+ self.bid64_to_int32_xint("0", "+1.000010E6", "1000010", "00")
+ self.bid64_to_int32_xint("0", "+11000.1111101101E0", "11000", "20")
+ self.bid64_to_int32_xint("0", "-1101101.1100E3", "-1101101110", "00")
+ self.bid64_to_int32_xint("0", "[1260000000000000]", "0", "00")
+ self.bid64_to_int32_xint("0", "[1a2a613eeb91e5de]", "0", "20")
+ self.bid64_to_int32_xint("0", "[2340000000000000]", "0", "00")
+ self.bid64_to_int32_xint("0", "[270aa85876086cdf]", "0", "20")
+ self.bid64_to_int32_xint("0", "[2742c0399d6c5ff4]", "0", "20")
+ self.bid64_to_int32_xint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int32_xint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int32_xint("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_int32_xint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int32_xint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_int32_xint("0", "[30dad60851522f80]", "75536806", "20")
+ self.bid64_to_int32_xint("0", "[3107A11FFFE91CA0]", "2147483646", "20")
+ self.bid64_to_int32_xint("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_int32_xint("0", "[3107A11FFFF85EE0]", "2147483647", "20")
+ self.bid64_to_int32_xint("0", "[3107A12000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[3107A1200007A120]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[3107A120000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[310E35FA931A0000]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[310F423FFFF0BDC0]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[310F423FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[310F424000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[310F42400007A120]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[310F4240000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31102200c4a20229]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[3111C37937E08000]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31271AFD498AB610]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31271AFD498B7960]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31271AFD498C3CB0]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31271AFD498D0000]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31271AFD498DC350]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31271AFD498E86A0]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31271AFD498F49F0]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_int32_xint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int32_xint("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_int32_xint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_int32_xint("0", "[31A00004FFFFFFF1]", "2147483646", "20")
+ self.bid64_to_int32_xint("0", "[31A00004FFFFFFFB]", "2147483647", "20")
+ self.bid64_to_int32_xint("0", "[31A0000500000005]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31A00009FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31A0000A00000005]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31A0002E90EDCFF1]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31A0002E90EDCFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31A0002E90EDD005]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31A0002E90EDD00F]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int32_xint("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_int32_xint("0", "[31C0000080000000]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31C0000080000001]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31C00000FFFFFFFF]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31C0000100000000]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31C0000100000001]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31C00004A817C7FF]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[31C00004A817C801]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int32_xint("0", "[3200000005000000]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[32E0000000000004]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[32E0000000000005]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[3300000000000002]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[33206241d41c09c1]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[3a60000000000000]", "0", "00")
+ self.bid64_to_int32_xint("0", "[3b0c71795748d4c7]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[3be0000000000000]", "0", "00")
+ self.bid64_to_int32_xint("0", "[3e080dcc8e4a24f4]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[40c0000000000000]", "0", "00")
+ self.bid64_to_int32_xint("0", "[42077b395e5bcb93]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[4480000000000000]", "0", "00")
+ self.bid64_to_int32_xint("0", "[4740000000000000]", "0", "00")
+ self.bid64_to_int32_xint("0", "-4.7E1", "-47", "00")
+ self.bid64_to_int32_xint("0", "[5328406f8f1aedec]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "-577985.767896998966E0", "-577985", "20")
+ self.bid64_to_int32_xint("0", "[57b6594b4f706b50]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "-58.58896E0", "-58", "20")
+ self.bid64_to_int32_xint("0", "+59.755757898986988569E0", "59", "20")
+ self.bid64_to_int32_xint("0", "[5b6235d696f090d7]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_int32_xint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int32_xint("0", "[7800000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "-7.87787577677967E0", "-7", "20")
+ self.bid64_to_int32_xint("0", "[7c00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[7e00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[813d5d5837e2a629]", "0", "20")
+ self.bid64_to_int32_xint("0", "[87018ca12dbe40d0]", "0", "20")
+ self.bid64_to_int32_xint("0", "[8760000000000000]", "0", "00")
+ self.bid64_to_int32_xint("0", "-8.94855589E9", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "+8.99998888989E0", "8", "20")
+ self.bid64_to_int32_xint("0", "-8.E1", "-80", "00")
+ self.bid64_to_int32_xint("0", "[8fc0000000000000]", "0", "00")
+ self.bid64_to_int32_xint("0", "+9758.66E5", "975866000", "00")
+ self.bid64_to_int32_xint("0", "+98898.8E0", "98898", "20")
+ self.bid64_to_int32_xint("0", "+988989.89999898999988E0", "988989", "20")
+ self.bid64_to_int32_xint("0", "[9cc263d7526ceb46]", "0", "20")
+ self.bid64_to_int32_xint("0", "[a22f35a4c7ea013d]", "0", "20")
+ self.bid64_to_int32_xint("0", "[a5586f98e0b3d819]", "0", "20")
+ self.bid64_to_int32_xint("0", "[b087b7b148339b99]", "-217229", "20")
+ self.bid64_to_int32_xint("0", "[b11e9df4dbc7fa5d]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[b1800012108a4d30]", "-775869105", "20")
+ self.bid64_to_int32_xint("0", "[b9ac144a416c0ba0]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[c937285b69b3e887]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[dc4a8539e6abf3fc]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[ddffeafffeffbaff]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[deff513caa22e5e1]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "[e80a9c9c01d51e22]", "0", "20")
+ self.bid64_to_int32_xint("0", "[ea58901582f4316d]", "0", "20")
+ self.bid64_to_int32_xint("0", "[fde79787ce969b86]", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "-Infinity", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "Infinity", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "QNaN", "-2147483648", "01")
+ self.bid64_to_int32_xint("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid64_to_int32_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int32_xrnint() {
+ self.bid64_to_int32_xrnint("0", "-0", "0", "00")
+ self.bid64_to_int32_xrnint("0", "0", "0", "00")
+ self.bid64_to_int32_xrnint("0", "[0000000000000000]", "0", "00")
+ self.bid64_to_int32_xrnint("0", "[1fb65987093bab4f]", "0", "20")
+ self.bid64_to_int32_xrnint("0", "-2.77858893E9", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int32_xrnint("0", "[2fdfe7ffff7b6fff]", "1", "20")
+ self.bid64_to_int32_xrnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int32_xrnint("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int32_xrnint("0", "[3010108100010040]", "45", "20")
+ self.bid64_to_int32_xrnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int32_xrnint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_int32_xrnint("0", "[3107A11FFFE91CA0]", "2147483646", "20")
+ self.bid64_to_int32_xrnint("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_int32_xrnint("0", "[3107A11FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[3107A12000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[3107A1200007A120]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[3107A120000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[310d915e4b127656]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[310E35FA931A0000]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[310F423FFFF0BDC0]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[310F423FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[310F424000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[310F42400007A120]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[310F4240000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[3111C37937E08000]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31271AFD498AB610]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31271AFD498B7960]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31271AFD498C3CB0]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31271AFD498D0000]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31271AFD498DC350]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31271AFD498E86A0]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31271AFD498F49F0]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int32_xrnint("0", "[3180000000802a09]", "83994", "20")
+ self.bid64_to_int32_xrnint("0", "[3180002081010042]", "1396032799", "20")
+ self.bid64_to_int32_xrnint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int32_xrnint("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int32_xrnint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_int32_xrnint("0", "[31A00004FFFFFFF1]", "2147483646", "20")
+ self.bid64_to_int32_xrnint("0", "[31A00004FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31A0000500000005]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31A00009FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31A0000A00000005]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31A0002E90EDCFF1]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31A0002E90EDCFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31A0002E90EDD005]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31A0002E90EDD00F]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int32_xrnint("0", "[31c0000000021560]", "136544", "00")
+ self.bid64_to_int32_xrnint("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_int32_xrnint("0", "[31C0000080000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31C0000080000001]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31C00000FFFFFFFF]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31C0000100000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31C0000100000001]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31C00004A817C7FF]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[31C00004A817C801]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int32_xrnint("0", "[3200000000010000]", "6553600", "00")
+ self.bid64_to_int32_xrnint("0", "[3200000005400020]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[32E0000000000004]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[32E0000000000005]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[3300000000000002]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[3c0de4a11022ddc7]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[3c6b99802239a525]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[54d96b87683b5da1]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[621080c444000464]", "0", "20")
+ self.bid64_to_int32_xrnint("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int32_xrnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int32_xrnint("0", "[7800000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[7c00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[7e00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "-832695.65E1", "-8326956", "20")
+ self.bid64_to_int32_xrnint("0", "-8.8666E4", "-88666", "00")
+ self.bid64_to_int32_xrnint("0", "+8898988.9888988E0", "8898989", "20")
+ self.bid64_to_int32_xrnint("0", "+8899.88988998999E0", "8900", "20")
+ self.bid64_to_int32_xrnint("0", "[8ec0000000000000]", "0", "00")
+ self.bid64_to_int32_xrnint("0", "+95.8699579598E0", "96", "20")
+ self.bid64_to_int32_xrnint("0", "-9.899998998998E0", "-10", "20")
+ self.bid64_to_int32_xrnint("0", "-9978865.5E0", "-9978866", "20")
+ self.bid64_to_int32_xrnint("0", "[9e33d1eaddbb3ace]", "0", "20")
+ self.bid64_to_int32_xrnint("0", "[afc92392d140c574]", "0", "20")
+ self.bid64_to_int32_xrnint("0", "[afd8cbf7cf67c7fd]", "-1", "20")
+ self.bid64_to_int32_xrnint("0", "[b0e9911c9514434a]", "-269282674", "20")
+ self.bid64_to_int32_xrnint("0", "[b11a09637c85151a]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[b200000000126200]", "-120473600", "00")
+ self.bid64_to_int32_xrnint("0", "[c5d62c2d0ada1855]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[c724fe18f91633ca]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[d737dbc90f9b7705]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[dcd9f0d5720258ae]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[de43f32896196321]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[e47c2b25da5d60c2]", "0", "00")
+ self.bid64_to_int32_xrnint("0", "[ec02955bf13511cf]", "-97", "20")
+ self.bid64_to_int32_xrnint("0", "[ef82b296e57c6867]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "[ffd7dbd6fdf797ef]", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "Infinity", "-2147483648", "01")
+ self.bid64_to_int32_xrnint("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid64_to_int32_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int32_xrninta() {
+ self.bid64_to_int32_xrninta("0", "-0", "0", "00")
+ self.bid64_to_int32_xrninta("0", "0", "0", "00")
+ self.bid64_to_int32_xrninta("0", "[08b6000000000000]", "0", "20")
+ self.bid64_to_int32_xrninta("0", "[0914000000000000]", "0", "20")
+ self.bid64_to_int32_xrninta("0", "[09dd000000000000]", "0", "20")
+ self.bid64_to_int32_xrninta("0", "[0f60000000000000]", "0", "00")
+ self.bid64_to_int32_xrninta("0", "-10.100E8", "-1010000000", "00")
+ self.bid64_to_int32_xrninta("0", "-110.1E0", "-110", "20")
+ self.bid64_to_int32_xrninta("0", "[1ce0000000000000]", "0", "00")
+ self.bid64_to_int32_xrninta("0", "[1fff26382d896c76]", "0", "20")
+ self.bid64_to_int32_xrninta("0", "[2222a21c9b4b2735]", "0", "20")
+ self.bid64_to_int32_xrninta("0", "[2c40000000000000]", "0", "00")
+ self.bid64_to_int32_xrninta("0", "[2fc97d43c8c56bf2]", "0", "20")
+ self.bid64_to_int32_xrninta("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_int32_xrninta("0", "[2fdf7fa8afdbf9ff]", "1", "20")
+ self.bid64_to_int32_xrninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int32_xrninta("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int32_xrninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int32_xrninta("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_int32_xrninta("0", "[3098380258273448]", "681698", "20")
+ self.bid64_to_int32_xrninta("0", "[3107A11FFFE91CA0]", "2147483647", "20")
+ self.bid64_to_int32_xrninta("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_int32_xrninta("0", "[3107A11FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[3107A12000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[3107A1200007A120]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[3107A120000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[310E35FA931A0000]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[310F423FFFF0BDC0]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[310F423FFFF85EE0]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[310F424000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[310F42400007A120]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[310F4240000F4240]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[3111C37937E08000]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31271AFD498AB610]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31271AFD498B7960]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31271AFD498C3CB0]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31271AFD498D0000]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31271AFD498DC350]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31271AFD498E86A0]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31271AFD498F49F0]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int32_xrninta("0", "[3180000122800ed8]", "48737850", "20")
+ self.bid64_to_int32_xrninta("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_int32_xrninta("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int32_xrninta("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_int32_xrninta("0", "[31a000020600128c]", "869060264", "20")
+ self.bid64_to_int32_xrninta("0", "[31A00004FFFFFFF1]", "2147483647", "20")
+ self.bid64_to_int32_xrninta("0", "[31A00004FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31A0000500000005]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31A00009FFFFFFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31A0000A00000005]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31A0002E90EDCFF1]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31A0002E90EDCFFB]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31A0002E90EDD005]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31A0002E90EDD00F]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int32_xrninta("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_int32_xrninta("0", "[31C0000080000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31C0000080000001]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31C00000FFFFFFFF]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31C0000100000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31C0000100000001]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31C00004A817C7FF]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[31C00004A817C801]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int32_xrninta("0", "[3200000000401000]", "419840000", "00")
+ self.bid64_to_int32_xrninta("0", "[3200000004003050]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[32E0000000000004]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[32E0000000000005]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[3300000000000002]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[3c60000000000000]", "0", "00")
+ self.bid64_to_int32_xrninta("0", "[4da0000000000000]", "0", "00")
+ self.bid64_to_int32_xrninta("0", "[4e60000000000000]", "0", "00")
+ self.bid64_to_int32_xrninta("0", "+55.556E0", "56", "20")
+ self.bid64_to_int32_xrninta("0", "-555.77548944E7", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "+5.69388896543929283E0", "6", "20")
+ self.bid64_to_int32_xrninta("0", "[5880000000000000]", "0", "00")
+ self.bid64_to_int32_xrninta("0", "[60aa30bb7e65fb6a]", "0", "20")
+ self.bid64_to_int32_xrninta("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int32_xrninta("0", "[6c40608080180449]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int32_xrninta("0", "[738a0527cee05e4f]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "+7.65556958E0", "8", "20")
+ self.bid64_to_int32_xrninta("0", "[7800000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "+78898.6655E4", "788986655", "00")
+ self.bid64_to_int32_xrninta("0", "-7.9E0", "-8", "20")
+ self.bid64_to_int32_xrninta("0", "[7c00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[7e00000000000000]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[85355d97af7271f2]", "0", "20")
+ self.bid64_to_int32_xrninta("0", "+89.98989988898989989E0", "90", "20")
+ self.bid64_to_int32_xrninta("0", "[8f00000000000000]", "0", "00")
+ self.bid64_to_int32_xrninta("0", "[901d148c00947254]", "0", "20")
+ self.bid64_to_int32_xrninta("0", "-9.3E0", "-9", "20")
+ self.bid64_to_int32_xrninta("0", "-9888.E0", "-9888", "00")
+ self.bid64_to_int32_xrninta("0", "+989.88777576677855E0", "990", "20")
+ self.bid64_to_int32_xrninta("0", "-9989.88889999E0", "-9990", "20")
+ self.bid64_to_int32_xrninta("0", "-999889899.988999989E0", "-999889900", "20")
+ self.bid64_to_int32_xrninta("0", "[a479f6c6470cdf97]", "0", "20")
+ self.bid64_to_int32_xrninta("0", "[a603b7e08904c5a8]", "0", "20")
+ self.bid64_to_int32_xrninta("0", "[b060918040e0002e]", "-1600", "20")
+ self.bid64_to_int32_xrninta("0", "[b11a20ce1170dcfd]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[b200000000000020]", "-3200", "00")
+ self.bid64_to_int32_xrninta("0", "[b940000000000000]", "0", "00")
+ self.bid64_to_int32_xrninta("0", "[cbbbaa1e93960e6f]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[cf5477611016e115]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[ebf347c3ef69facc]", "-1", "20")
+ self.bid64_to_int32_xrninta("0", "[eefff6fb7d7ef5ff]", "0", "00")
+ self.bid64_to_int32_xrninta("0", "[f5584a5d6ae4fa24]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "[fafdfdfff777fefd]", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "-Infinity", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "Infinity", "-2147483648", "01")
+ self.bid64_to_int32_xrninta("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid64_to_int32_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int64_ceil() {
+ self.bid64_to_int64_ceil("0", "-0", "0", "00")
+ self.bid64_to_int64_ceil("0", "0", "0", "00")
+ self.bid64_to_int64_ceil("0", "[0000403108001024]", "1", "00")
+ self.bid64_to_int64_ceil("0", "[0a132c5e124ac21e]", "1", "00")
+ self.bid64_to_int64_ceil("0", "[0ed0000000000000]", "1", "00")
+ self.bid64_to_int64_ceil("0", "[0fa7000000000000]", "1", "00")
+ self.bid64_to_int64_ceil("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_int64_ceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int64_ceil("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int64_ceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int64_ceil("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_int64_ceil("0", "[3042c0a800641002]", "775", "00")
+ self.bid64_to_int64_ceil("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_int64_ceil("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_int64_ceil("0", "[31271AFD498AB610]", "19999999999", "00")
+ self.bid64_to_int64_ceil("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_int64_ceil("0", "[31271AFD498C3CB0]", "20000000000", "00")
+ self.bid64_to_int64_ceil("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_int64_ceil("0", "[31271AFD498DC350]", "20000000001", "00")
+ self.bid64_to_int64_ceil("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_int64_ceil("0", "[31271AFD498F49F0]", "20000000002", "00")
+ self.bid64_to_int64_ceil("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int64_ceil("0", "[3174bf0a82c39319]", "5839551398647", "00")
+ self.bid64_to_int64_ceil("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_int64_ceil("0", "[318C800000000032]", "35184372088833", "00")
+ self.bid64_to_int64_ceil("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_int64_ceil("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int64_ceil("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_int64_ceil("0", "[31A0002E90EDCFF1]", "19999999999", "00")
+ self.bid64_to_int64_ceil("0", "[31A0002E90EDCFFB]", "20000000000", "00")
+ self.bid64_to_int64_ceil("0", "[31A0002E90EDD005]", "20000000001", "00")
+ self.bid64_to_int64_ceil("0", "[31A0002E90EDD00F]", "20000000002", "00")
+ self.bid64_to_int64_ceil("0", "[31A1400000000005]", "35184372088833", "00")
+ self.bid64_to_int64_ceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int64_ceil("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_int64_ceil("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_int64_ceil("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_int64_ceil("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_ceil("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_ceil("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_ceil("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_ceil("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_ceil("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_ceil("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_int64_ceil("0", "[31d00e2c78900060]", "4519183791423584", "00")
+ self.bid64_to_int64_ceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int64_ceil("0", "[3220122a19ac2ac0]", "19972028639936000", "00")
+ self.bid64_to_int64_ceil("0", "[324184c460014225]", "4274539358623090000", "00")
+ self.bid64_to_int64_ceil("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[3245543DF729C000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[32471AFD498D0000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[3248E1BC9BF04000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[32638D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_int64_ceil("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_int64_ceil("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_int64_ceil("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_ceil("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_ceil("0", "[340000000000000F]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[3400000000000019]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[3420000000000002]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[3440000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[3644ae07b5b3709a]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[4870c9e767d019fb]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[4e15fad7ee48a8c6]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[5b467c86c0140452]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int64_ceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int64_ceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[6c88ff3db50d3c89]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[70979cde23f232a5]", "0", "00")
+ self.bid64_to_int64_ceil("0", "[7800000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[7c00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[7e00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[907bbc151b32a014]", "0", "00")
+ self.bid64_to_int64_ceil("0", "[9c03d6b911b998d1]", "0", "00")
+ self.bid64_to_int64_ceil("0", "[9d40000000000000]", "0", "00")
+ self.bid64_to_int64_ceil("0", "[b03693316b964e09]", "-635", "00")
+ self.bid64_to_int64_ceil("0", "[b1cb8573cb05801e]", "-3242957117685790", "00")
+ self.bid64_to_int64_ceil("0", "[b213ba688be658c8]", "-555298274399661600", "00")
+ self.bid64_to_int64_ceil("0", "[b2268a5998647a58]", "-1840967273708120000", "00")
+ self.bid64_to_int64_ceil("0", "[b2800912c0061021]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[b521fa3607bca729]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[bd6ffbfdfffffe3f]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[cecf698b54e70d0f]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[de7ac47df985cca3]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[eff968327b3e59e4]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "[fb8c09a571ed2a7d]", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_ceil("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid64_to_int64_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int64_floor() {
+ self.bid64_to_int64_floor("0", "-0", "0", "00")
+ self.bid64_to_int64_floor("0", "0", "0", "00")
+ self.bid64_to_int64_floor("0", "[0003bdb8199ae657]", "0", "00")
+ self.bid64_to_int64_floor("0", "[01908654ff7c193a]", "0", "00")
+ self.bid64_to_int64_floor("0", "[12544c67e7ef5e3b]", "0", "00")
+ self.bid64_to_int64_floor("0", "[1f0ce9181563a975]", "0", "00")
+ self.bid64_to_int64_floor("0", "[202115c020008000]", "0", "00")
+ self.bid64_to_int64_floor("0", "[2e64610626ca4a7e]", "0", "00")
+ self.bid64_to_int64_floor("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int64_floor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int64_floor("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_int64_floor("0", "[301aa8e6045a4814]", "75", "00")
+ self.bid64_to_int64_floor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int64_floor("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_int64_floor("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_int64_floor("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_int64_floor("0", "[31271AFD498AB610]", "19999999998", "00")
+ self.bid64_to_int64_floor("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_int64_floor("0", "[31271AFD498C3CB0]", "19999999999", "00")
+ self.bid64_to_int64_floor("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_int64_floor("0", "[31271AFD498DC350]", "20000000000", "00")
+ self.bid64_to_int64_floor("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_int64_floor("0", "[31271AFD498F49F0]", "20000000001", "00")
+ self.bid64_to_int64_floor("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_int64_floor("0", "[318500c00a40000c]", "14081996892405", "00")
+ self.bid64_to_int64_floor("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_int64_floor("0", "[318C800000000032]", "35184372088832", "00")
+ self.bid64_to_int64_floor("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int64_floor("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_int64_floor("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_int64_floor("0", "[31A0002E90EDCFF1]", "19999999998", "00")
+ self.bid64_to_int64_floor("0", "[31A0002E90EDCFFB]", "19999999999", "00")
+ self.bid64_to_int64_floor("0", "[31A0002E90EDD005]", "20000000000", "00")
+ self.bid64_to_int64_floor("0", "[31A0002E90EDD00F]", "20000000001", "00")
+ self.bid64_to_int64_floor("0", "[31A1400000000005]", "35184372088832", "00")
+ self.bid64_to_int64_floor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int64_floor("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_int64_floor("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_int64_floor("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_int64_floor("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_floor("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_floor("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_floor("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_floor("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_floor("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_floor("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_int64_floor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int64_floor("0", "[321f2be89b6893de]", "877400231775945400", "00")
+ self.bid64_to_int64_floor("0", "[32406b9a1c548075]", "1183096444355730000", "00")
+ self.bid64_to_int64_floor("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[3245543DF729C000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[32471AFD498D0000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[3248E1BC9BF04000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[32638D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_int64_floor("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_int64_floor("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_int64_floor("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_floor("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_floor("0", "[340000000000000F]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[3400000000000019]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[3420000000000002]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[3440000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[45c3cae0151c1e85]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[5d338f7a289e22bd]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_int64_floor("0", "[6c729f684cbef571]", "9745419521160561", "00")
+ self.bid64_to_int64_floor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int64_floor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[6c8b54f931548c74]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[7800000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[7c00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[7e00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[81dd09312878d47a]", "-1", "00")
+ self.bid64_to_int64_floor("0", "[8c4c1c5a999132e8]", "-1", "00")
+ self.bid64_to_int64_floor("0", "[a1848439dcb9ecf7]", "-1", "00")
+ self.bid64_to_int64_floor("0", "[b00094180d253ec0]", "-2", "00")
+ self.bid64_to_int64_floor("0", "[b1cec1b20428cf19]", "-4153619992071961", "00")
+ self.bid64_to_int64_floor("0", "[b2090be9447802ff]", "-254637129439718300", "00")
+ self.bid64_to_int64_floor("0", "[b232e6addcd4fbb4]", "-5320183989468084000", "00")
+ self.bid64_to_int64_floor("0", "[b50491200631004a]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[c463067bfd2e802b]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[d3b74073ef769566]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[dfe0000000000000]", "0", "00")
+ self.bid64_to_int64_floor("0", "[e7448feeb8fb476c]", "0", "00")
+ self.bid64_to_int64_floor("0", "[ec6070c817caf2a3]", "-91312039496875", "00")
+ self.bid64_to_int64_floor("0", "[ec8b17a66e153d37]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[f2e8810500c0aec0]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "[fdffffffff7fbbff]", "-9223372036854775808", "01")
+ self.bid64_to_int64_floor("0", "-Infinity", "-9223372036854775808", "01")
+ }
+
+ private func bid64_to_int64_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int64_int() {
+ self.bid64_to_int64_int("0", "-0", "0", "00")
+ self.bid64_to_int64_int("0", "0", "0", "00")
+ self.bid64_to_int64_int("0", "[0536ffee8552ad2c]", "0", "00")
+ self.bid64_to_int64_int("0", "[09a9000000000000]", "0", "00")
+ self.bid64_to_int64_int("0", "[09b4000000000000]", "0", "00")
+ self.bid64_to_int64_int("0", "[0a7b000000000000]", "0", "00")
+ self.bid64_to_int64_int("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int64_int("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int64_int("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_int64_int("0", "[301cc7d64bac9de5]", "81", "00")
+ self.bid64_to_int64_int("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int64_int("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_int64_int("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_int64_int("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_int64_int("0", "[31271AFD498AB610]", "19999999998", "00")
+ self.bid64_to_int64_int("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_int64_int("0", "[31271AFD498C3CB0]", "19999999999", "00")
+ self.bid64_to_int64_int("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_int64_int("0", "[31271AFD498DC350]", "20000000000", "00")
+ self.bid64_to_int64_int("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_int64_int("0", "[31271AFD498F49F0]", "20000000001", "00")
+ self.bid64_to_int64_int("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_int64_int("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_int64_int("0", "[318C800000000032]", "35184372088832", "00")
+ self.bid64_to_int64_int("0", "[319fb7ced6905c83]", "89278232689614", "00")
+ self.bid64_to_int64_int("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int64_int("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_int64_int("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_int64_int("0", "[31A0002E90EDCFF1]", "19999999998", "00")
+ self.bid64_to_int64_int("0", "[31A0002E90EDCFFB]", "19999999999", "00")
+ self.bid64_to_int64_int("0", "[31A0002E90EDD005]", "20000000000", "00")
+ self.bid64_to_int64_int("0", "[31A0002E90EDD00F]", "20000000001", "00")
+ self.bid64_to_int64_int("0", "[31A1400000000005]", "35184372088832", "00")
+ self.bid64_to_int64_int("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int64_int("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_int64_int("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_int64_int("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_int64_int("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_int("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_int("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_int("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_int("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_int("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_int("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_int64_int("0", "[31dd1a8512fb917a]", "8191933176058234", "00")
+ self.bid64_to_int64_int("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int64_int("0", "[322001c010420000]", "1924418109440000", "00")
+ self.bid64_to_int64_int("0", "[32428c0a9df98813]", "7169271813591230000", "00")
+ self.bid64_to_int64_int("0", "[324378d3842b10c1]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[3245543DF729C000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[32471AFD498D0000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[3248E1BC9BF04000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[32638D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_int64_int("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_int64_int("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_int64_int("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_int("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_int("0", "[340000000000000F]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[3400000000000019]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[3420000000000002]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[3440000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[389a6ba763552363]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[4503e14c0a420c20]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[588fa6ecd5ab94b9]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_int64_int("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int64_int("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[6dc04e2ddc722b0e]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[7800000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[7c00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[7e00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[831f9496c803ddd7]", "0", "00")
+ self.bid64_to_int64_int("0", "[9aaa2e66acede71b]", "0", "00")
+ self.bid64_to_int64_int("0", "[b0886298e1a00055]", "-236020", "00")
+ self.bid64_to_int64_int("0", "[b1dd51408c290120]", "-8252111995863328", "00")
+ self.bid64_to_int64_int("0", "[b1ff91df9bd95bb0]", "-88861138564781280", "00")
+ self.bid64_to_int64_int("0", "[b240c80887e4f049]", "-2199389652214490000", "00")
+ self.bid64_to_int64_int("0", "[c74f4cc92ee5b7c2]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[cb40000000000000]", "0", "00")
+ self.bid64_to_int64_int("0", "[dd41df934541edaf]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[e9fdc0f81946d09e]", "0", "00")
+ self.bid64_to_int64_int("0", "[ec89b045e45499dd]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "[ffffbfbffffffffe]", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "QNaN", "-9223372036854775808", "01")
+ self.bid64_to_int64_int("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid64_to_int64_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int64_rnint() {
+ self.bid64_to_int64_rnint("0", "-0", "0", "00")
+ self.bid64_to_int64_rnint("0", "0", "0", "00")
+ self.bid64_to_int64_rnint("0", "[0a02814041332854]", "0", "00")
+ self.bid64_to_int64_rnint("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int64_rnint("0", "[2fdd67fdf7fbbfff]", "1", "00")
+ self.bid64_to_int64_rnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int64_rnint("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int64_rnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int64_rnint("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_int64_rnint("0", "[3086682404d48224]", "180335", "00")
+ self.bid64_to_int64_rnint("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_int64_rnint("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_int64_rnint("0", "[31271AFD498AB610]", "19999999998", "00")
+ self.bid64_to_int64_rnint("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_int64_rnint("0", "[31271AFD498C3CB0]", "20000000000", "00")
+ self.bid64_to_int64_rnint("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_int64_rnint("0", "[31271AFD498DC350]", "20000000000", "00")
+ self.bid64_to_int64_rnint("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_int64_rnint("0", "[31271AFD498F49F0]", "20000000002", "00")
+ self.bid64_to_int64_rnint("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int64_rnint("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_int64_rnint("0", "[318C800000000032]", "35184372088832", "00")
+ self.bid64_to_int64_rnint("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int64_rnint("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int64_rnint("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_int64_rnint("0", "[31A0002E90EDCFF1]", "19999999998", "00")
+ self.bid64_to_int64_rnint("0", "[31A0002E90EDCFFB]", "20000000000", "00")
+ self.bid64_to_int64_rnint("0", "[31A0002E90EDD005]", "20000000000", "00")
+ self.bid64_to_int64_rnint("0", "[31A0002E90EDD00F]", "20000000002", "00")
+ self.bid64_to_int64_rnint("0", "[31A1400000000005]", "35184372088832", "00")
+ self.bid64_to_int64_rnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int64_rnint("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_int64_rnint("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_int64_rnint("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_int64_rnint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_rnint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_rnint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_rnint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_rnint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_rnint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_rnint("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_int64_rnint("0", "[31deea8114c42ada]", "8702089421400794", "00")
+ self.bid64_to_int64_rnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int64_rnint("0", "[323fbcab7f9edfbc]", "8933169044578236000", "00")
+ self.bid64_to_int64_rnint("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[3245543DF729C000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[32471AFD498D0000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[3248E1BC9BF04000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[32638D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_int64_rnint("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_int64_rnint("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_int64_rnint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_rnint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_rnint("0", "[340000000000000F]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[3400000000000019]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[3420000000000002]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[3440000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[3d532f2eeb016013]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[4ddf58d923f991d9]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[58ccb0f16d60f13e]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[5a80e9386fa718c9]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[6a5aa8a57eb2604e]", "0", "00")
+ self.bid64_to_int64_rnint("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int64_rnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int64_rnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[6c8a495f3e1057b0]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[7798d83fe714e749]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[7800000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[7c00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[7e00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[8903c3572788cf3a]", "0", "00")
+ self.bid64_to_int64_rnint("0", "[8eb2c1c3e07a6690]", "0", "00")
+ self.bid64_to_int64_rnint("0", "-9988.8E0", "-9989", "00")
+ self.bid64_to_int64_rnint("0", "[afdfe1baf83fffbd]", "-1", "00")
+ self.bid64_to_int64_rnint("0", "[b000110400050440]", "0", "00")
+ self.bid64_to_int64_rnint("0", "[b0ac092c7e2554bd]", "-3387786", "00")
+ self.bid64_to_int64_rnint("0", "[b1b27b96a305f94d]", "-520243649118036", "00")
+ self.bid64_to_int64_rnint("0", "[b1c910d0a10b6d8c]", "-2551763031518604", "00")
+ self.bid64_to_int64_rnint("0", "[b1eb9d385dd7d711]", "-32690901619730090", "00")
+ self.bid64_to_int64_rnint("0", "[b240d2fff64ec8d2]", "-2319967908517940000", "00")
+ self.bid64_to_int64_rnint("0", "[b704eec3e4252c1a]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[bf2fbec85607b7d5]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[d510f03151a1b84a]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[def7f7a7c9f7d3a5]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[ea255a8f1b72541f]", "0", "00")
+ self.bid64_to_int64_rnint("0", "[ec88f9c1cf092c18]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[f3eb4405195da811]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "[fdf7d7efffd7dffe]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "QNaN", "-9223372036854775808", "01")
+ self.bid64_to_int64_rnint("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid64_to_int64_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int64_rninta() {
+ self.bid64_to_int64_rninta("0", "-0", "0", "00")
+ self.bid64_to_int64_rninta("0", "0", "0", "00")
+ self.bid64_to_int64_rninta("0", "[0b79489bb5e8d0f2]", "0", "00")
+ self.bid64_to_int64_rninta("0", "[0e000c2142586c21]", "0", "00")
+ self.bid64_to_int64_rninta("0", "[16a392861f30fb2d]", "0", "00")
+ self.bid64_to_int64_rninta("0", "[1d318add0436c356]", "0", "00")
+ self.bid64_to_int64_rninta("0", "[2fce10279743dd56]", "0", "00")
+ self.bid64_to_int64_rninta("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_int64_rninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int64_rninta("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int64_rninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int64_rninta("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_int64_rninta("0", "[310a01102418880c]", "2815918604", "00")
+ self.bid64_to_int64_rninta("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_int64_rninta("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_int64_rninta("0", "[31271AFD498AB610]", "19999999999", "00")
+ self.bid64_to_int64_rninta("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_int64_rninta("0", "[31271AFD498C3CB0]", "20000000000", "00")
+ self.bid64_to_int64_rninta("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_int64_rninta("0", "[31271AFD498DC350]", "20000000001", "00")
+ self.bid64_to_int64_rninta("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_int64_rninta("0", "[31271AFD498F49F0]", "20000000002", "00")
+ self.bid64_to_int64_rninta("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int64_rninta("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_int64_rninta("0", "[318C800000000032]", "35184372088833", "00")
+ self.bid64_to_int64_rninta("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_int64_rninta("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int64_rninta("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_int64_rninta("0", "[31A0002E90EDCFF1]", "19999999999", "00")
+ self.bid64_to_int64_rninta("0", "[31A0002E90EDCFFB]", "20000000000", "00")
+ self.bid64_to_int64_rninta("0", "[31A0002E90EDD005]", "20000000001", "00")
+ self.bid64_to_int64_rninta("0", "[31A0002E90EDD00F]", "20000000002", "00")
+ self.bid64_to_int64_rninta("0", "[31A1400000000005]", "35184372088833", "00")
+ self.bid64_to_int64_rninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int64_rninta("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_int64_rninta("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_int64_rninta("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_int64_rninta("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_rninta("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_rninta("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_rninta("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_rninta("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_rninta("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_rninta("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_int64_rninta("0", "[31d20449b0a6e377]", "5071264123642743", "00")
+ self.bid64_to_int64_rninta("0", "[31ffaf716bf21821]", "89186259552235850", "00")
+ self.bid64_to_int64_rninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int64_rninta("0", "[3241796ff6fb5c55]", "4149967687097170000", "00")
+ self.bid64_to_int64_rninta("0", "[32438afaed8bffbc]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[3245543DF729C000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[32471AFD498D0000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[3248E1BC9BF04000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[32638D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[32937527cbc50a4c]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_int64_rninta("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_int64_rninta("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_int64_rninta("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_rninta("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_rninta("0", "[340000000000000F]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[3400000000000019]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[3420000000000002]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[3440000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[480daff37bf9b464]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[5180000000000000]", "0", "00")
+ self.bid64_to_int64_rninta("0", "[6bf0061650e70773]", "1", "00")
+ self.bid64_to_int64_rninta("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int64_rninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int64_rninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[740b1285d276e0dc]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[7531f0493c160cda]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[7800000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[7c00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[7e00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[7e22f6ced7872b8d]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[800048040000a080]", "0", "00")
+ self.bid64_to_int64_rninta("0", "-8899989888999988889.E0", "-8899989888999989000", "00")
+ self.bid64_to_int64_rninta("0", "[9b80000000000000]", "0", "00")
+ self.bid64_to_int64_rninta("0", "[afd910dfb8abe5ed]", "-1", "00")
+ self.bid64_to_int64_rninta("0", "[b14e3164364e8dec]", "-399495615156", "00")
+ self.bid64_to_int64_rninta("0", "[b1d95c86339f21de]", "-7138605879206366", "00")
+ self.bid64_to_int64_rninta("0", "[b20b5d799afe8b17]", "-319900161661621500", "00")
+ self.bid64_to_int64_rninta("0", "[b420000000000000]", "0", "00")
+ self.bid64_to_int64_rninta("0", "[bc3887ec0d2ec451]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "[d700000000000000]", "0", "00")
+ self.bid64_to_int64_rninta("0", "[e886c527f7e02053]", "0", "00")
+ self.bid64_to_int64_rninta("0", "[ec898948a6a38665]", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "QNaN", "-9223372036854775808", "01")
+ self.bid64_to_int64_rninta("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid64_to_int64_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int64_xceil() {
+ self.bid64_to_int64_xceil("0", "-0", "0", "00")
+ self.bid64_to_int64_xceil("0", "0", "0", "00")
+ self.bid64_to_int64_xceil("0", "-0.1E0", "0", "20")
+ self.bid64_to_int64_xceil("0", "[0800014404001010]", "1", "20")
+ self.bid64_to_int64_xceil("0", "[0d00000000000000]", "0", "00")
+ self.bid64_to_int64_xceil("0", "+11011.01E0", "11012", "20")
+ self.bid64_to_int64_xceil("0", "[2087cd4caba67499]", "1", "20")
+ self.bid64_to_int64_xceil("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_int64_xceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int64_xceil("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int64_xceil("0", "[3020482002041000]", "8", "20")
+ self.bid64_to_int64_xceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int64_xceil("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_int64_xceil("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_int64_xceil("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_int64_xceil("0", "[31271AFD498AB610]", "19999999999", "20")
+ self.bid64_to_int64_xceil("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_int64_xceil("0", "[31271AFD498C3CB0]", "20000000000", "20")
+ self.bid64_to_int64_xceil("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_int64_xceil("0", "[31271AFD498DC350]", "20000000001", "20")
+ self.bid64_to_int64_xceil("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_int64_xceil("0", "[31271AFD498F49F0]", "20000000002", "20")
+ self.bid64_to_int64_xceil("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int64_xceil("0", "[31706b29ca9a4400]", "4621426864310", "20")
+ self.bid64_to_int64_xceil("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_int64_xceil("0", "[318C800000000032]", "35184372088833", "20")
+ self.bid64_to_int64_xceil("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_int64_xceil("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int64_xceil("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_int64_xceil("0", "[31A0002E90EDCFF1]", "19999999999", "20")
+ self.bid64_to_int64_xceil("0", "[31A0002E90EDCFFB]", "20000000000", "20")
+ self.bid64_to_int64_xceil("0", "[31A0002E90EDD005]", "20000000001", "20")
+ self.bid64_to_int64_xceil("0", "[31A0002E90EDD00F]", "20000000002", "20")
+ self.bid64_to_int64_xceil("0", "[31A1400000000005]", "35184372088833", "20")
+ self.bid64_to_int64_xceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int64_xceil("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_int64_xceil("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_int64_xceil("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_int64_xceil("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_xceil("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_xceil("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_xceil("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_xceil("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_xceil("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_xceil("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_int64_xceil("0", "[31c8d4825b43208b]", "2485456155648139", "00")
+ self.bid64_to_int64_xceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int64_xceil("0", "[323014468e002081]", "4525892890009729000", "00")
+ self.bid64_to_int64_xceil("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[3245543DF729C000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[32471AFD498D0000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[3248E1BC9BF04000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[32638D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_int64_xceil("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_int64_xceil("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_int64_xceil("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_xceil("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_xceil("0", "[340000000000000F]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[3400000000000019]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[3420000000000002]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[3440000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[3500000000000000]", "0", "00")
+ self.bid64_to_int64_xceil("0", "[444477422e92930c]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "+479373987.954E0", "479373988", "20")
+ self.bid64_to_int64_xceil("0", "[4be0000000000000]", "0", "00")
+ self.bid64_to_int64_xceil("0", "[4be020c652f100cd]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "+556586.86E0", "556587", "20")
+ self.bid64_to_int64_xceil("0", "+5.758E0", "6", "20")
+ self.bid64_to_int64_xceil("0", "[63f813722bfd6c59]", "1", "20")
+ self.bid64_to_int64_xceil("0", "-653297.5E0", "-653297", "20")
+ self.bid64_to_int64_xceil("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int64_xceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int64_xceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[6c89104a71924123]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "-7578789765.6E0", "-7578789765", "20")
+ self.bid64_to_int64_xceil("0", "[7800000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[7c00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[7e00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "-9756579.78E0", "-9756579", "20")
+ self.bid64_to_int64_xceil("0", "+99.8998888E0", "100", "20")
+ self.bid64_to_int64_xceil("0", "[b19eaf727e9669e8]", "-86371555862389", "20")
+ self.bid64_to_int64_xceil("0", "[b1d51574ee10c061]", "-5934566465388641", "00")
+ self.bid64_to_int64_xceil("0", "[b1e6ffe5ebf648cb]", "-19702128316438510", "00")
+ self.bid64_to_int64_xceil("0", "[b224bf39f5e2828d]", "-1336155566146189000", "00")
+ self.bid64_to_int64_xceil("0", "[b343e2f7a9eac71b]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[d080000000000000]", "0", "00")
+ self.bid64_to_int64_xceil("0", "[de960d7afe0443fa]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[e080442033000043]", "0", "20")
+ self.bid64_to_int64_xceil("0", "[ec8a17ca3db7f965]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[f451a225ec6c7300]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "[f7ae557d63bf7abd]", "0", "00")
+ self.bid64_to_int64_xceil("0", "[fffffffffffafffd]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_xceil("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid64_to_int64_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int64_xfloor() {
+ self.bid64_to_int64_xfloor("0", "-0", "0", "00")
+ self.bid64_to_int64_xfloor("0", "0", "0", "00")
+ self.bid64_to_int64_xfloor("0", "[00800a4001800002]", "0", "20")
+ self.bid64_to_int64_xfloor("0", "[0b9a8d7d3e333781]", "0", "20")
+ self.bid64_to_int64_xfloor("0", "-0.E0", "0", "00")
+ self.bid64_to_int64_xfloor("0", "+111100.01101100E0", "111100", "20")
+ self.bid64_to_int64_xfloor("0", "[2564f58d62cfcf44]", "0", "20")
+ self.bid64_to_int64_xfloor("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int64_xfloor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int64_xfloor("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_int64_xfloor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int64_xfloor("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_int64_xfloor("0", "[30488801e0404208]", "2401", "20")
+ self.bid64_to_int64_xfloor("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_int64_xfloor("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_int64_xfloor("0", "[31271AFD498AB610]", "19999999998", "20")
+ self.bid64_to_int64_xfloor("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_int64_xfloor("0", "[31271AFD498C3CB0]", "19999999999", "20")
+ self.bid64_to_int64_xfloor("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_int64_xfloor("0", "[31271AFD498DC350]", "20000000000", "20")
+ self.bid64_to_int64_xfloor("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_int64_xfloor("0", "[31271AFD498F49F0]", "20000000001", "20")
+ self.bid64_to_int64_xfloor("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_int64_xfloor("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_int64_xfloor("0", "[318C800000000032]", "35184372088832", "20")
+ self.bid64_to_int64_xfloor("0", "[31941d03d8a73597]", "56614018911573", "20")
+ self.bid64_to_int64_xfloor("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int64_xfloor("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_int64_xfloor("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_int64_xfloor("0", "[31A0002E90EDCFF1]", "19999999998", "20")
+ self.bid64_to_int64_xfloor("0", "[31A0002E90EDCFFB]", "19999999999", "20")
+ self.bid64_to_int64_xfloor("0", "[31A0002E90EDD005]", "20000000000", "20")
+ self.bid64_to_int64_xfloor("0", "[31A0002E90EDD00F]", "20000000001", "20")
+ self.bid64_to_int64_xfloor("0", "[31A1400000000005]", "35184372088832", "20")
+ self.bid64_to_int64_xfloor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int64_xfloor("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_int64_xfloor("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_int64_xfloor("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_int64_xfloor("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_xfloor("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_xfloor("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_xfloor("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_xfloor("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_xfloor("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_xfloor("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_int64_xfloor("0", "[31d9a1ec68ea054e]", "7214911162287438", "00")
+ self.bid64_to_int64_xfloor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int64_xfloor("0", "[320f6ca0ba6e4983]", "434156222901696300", "00")
+ self.bid64_to_int64_xfloor("0", "[323819d71eceafc4]", "6783811166580676000", "00")
+ self.bid64_to_int64_xfloor("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[3245543DF729C000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[32471AFD498D0000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[3248E1BC9BF04000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[32638D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_int64_xfloor("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_int64_xfloor("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_int64_xfloor("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_xfloor("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_xfloor("0", "[340000000000000F]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[3400000000000019]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[3420000000000002]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[3440000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "+368973358.9359883394E0", "368973358", "20")
+ self.bid64_to_int64_xfloor("0", "[45652521ceaff8f4]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[47ab89eb19bce2b0]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[53e97a9e140be785]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[590afa4ce8711964]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "+65.7E0", "65", "20")
+ self.bid64_to_int64_xfloor("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_int64_xfloor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int64_xfloor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[6c89c1a9236302c7]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[6d0682c1dbe24356]", "0", "00")
+ self.bid64_to_int64_xfloor("0", "[74e2f6b14a408e3e]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[7800000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[79ebedcdfdedbfe9]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[7c00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[7e00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[8020408008401501]", "-1", "20")
+ self.bid64_to_int64_xfloor("0", "+85758886.896E0", "85758886", "20")
+ self.bid64_to_int64_xfloor("0", "+89.857687586E0", "89", "20")
+ self.bid64_to_int64_xfloor("0", "+898.9898E0", "898", "20")
+ self.bid64_to_int64_xfloor("0", "[94e0000000000000]", "0", "00")
+ self.bid64_to_int64_xfloor("0", "-96757695858.779E0", "-96757695859", "20")
+ self.bid64_to_int64_xfloor("0", "-96997.E0", "-96997", "00")
+ self.bid64_to_int64_xfloor("0", "-9769679.9699766558556E0", "-9769680", "20")
+ self.bid64_to_int64_xfloor("0", "-99989.9888899998888E0", "-99990", "20")
+ self.bid64_to_int64_xfloor("0", "[9af7691d83fe0bd9]", "-1", "20")
+ self.bid64_to_int64_xfloor("0", "[a6a973a915be9d72]", "-1", "20")
+ self.bid64_to_int64_xfloor("0", "[b0c8c50af4c9ed63]", "-24684507", "20")
+ self.bid64_to_int64_xfloor("0", "[b1be8f0adea8b48a]", "-860152614936283", "20")
+ self.bid64_to_int64_xfloor("0", "[b23ff35ebb27f5f9]", "-8993312470463993000", "00")
+ self.bid64_to_int64_xfloor("0", "[c54bfd3e5b7de082]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[d5c0000000000000]", "0", "00")
+ self.bid64_to_int64_xfloor("0", "[ec7364e8127e86d0]", "-9962572090345168", "00")
+ self.bid64_to_int64_xfloor("0", "[ec899f6a73710b2b]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "[f77261e824bd9f78]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "QNaN", "-9223372036854775808", "01")
+ self.bid64_to_int64_xfloor("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid64_to_int64_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int64_xint() {
+ self.bid64_to_int64_xint("0", "-0", "0", "00")
+ self.bid64_to_int64_xint("0", "0", "0", "00")
+ self.bid64_to_int64_xint("0", "+0.10000000E0", "0", "20")
+ self.bid64_to_int64_xint("0", "[0420000000000000]", "0", "00")
+ self.bid64_to_int64_xint("0", "[0d40000000000000]", "0", "00")
+ self.bid64_to_int64_xint("0", "[0d68460f186f575a]", "0", "20")
+ self.bid64_to_int64_xint("0", "[1543a705bc9fbed4]", "0", "20")
+ self.bid64_to_int64_xint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int64_xint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int64_xint("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_int64_xint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int64_xint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_int64_xint("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_int64_xint("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_int64_xint("0", "[3116f39e37ad77d7]", "6460310352", "20")
+ self.bid64_to_int64_xint("0", "[31271AFD498AB610]", "19999999998", "20")
+ self.bid64_to_int64_xint("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_int64_xint("0", "[31271AFD498C3CB0]", "19999999999", "20")
+ self.bid64_to_int64_xint("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_int64_xint("0", "[31271AFD498DC350]", "20000000000", "20")
+ self.bid64_to_int64_xint("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_int64_xint("0", "[31271AFD498F49F0]", "20000000001", "20")
+ self.bid64_to_int64_xint("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_int64_xint("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_int64_xint("0", "[318C800000000032]", "35184372088832", "20")
+ self.bid64_to_int64_xint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int64_xint("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_int64_xint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_int64_xint("0", "[31A0002E90EDCFF1]", "19999999998", "20")
+ self.bid64_to_int64_xint("0", "[31A0002E90EDCFFB]", "19999999999", "20")
+ self.bid64_to_int64_xint("0", "[31A0002E90EDD005]", "20000000000", "20")
+ self.bid64_to_int64_xint("0", "[31A0002E90EDD00F]", "20000000001", "20")
+ self.bid64_to_int64_xint("0", "[31A1400000000005]", "35184372088832", "20")
+ self.bid64_to_int64_xint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int64_xint("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_int64_xint("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_int64_xint("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_int64_xint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_xint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_xint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_xint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_xint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_xint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_xint("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_int64_xint("0", "[31cd5eecedf3a06e]", "3763546394697838", "00")
+ self.bid64_to_int64_xint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int64_xint("0", "[3233018102040bbe]", "5349678153731006000", "00")
+ self.bid64_to_int64_xint("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[3245543DF729C000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[32471AFD498D0000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[3248E1BC9BF04000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[32638D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_int64_xint("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_int64_xint("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_int64_xint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_xint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_xint("0", "[340000000000000F]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[3400000000000019]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[3420000000000002]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[3440000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "+37365888393366.447672E0", "37365888393366", "20")
+ self.bid64_to_int64_xint("0", "[3b80d4073b952c83]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[5b0bad940b309741]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "+65.877856788E0", "65", "20")
+ self.bid64_to_int64_xint("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_int64_xint("0", "[6c59e2bbd7b1e4a0]", "9537970636973", "20")
+ self.bid64_to_int64_xint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int64_xint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[6c893dd88dcba4d9]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "-7675.8987986E0", "-7675", "20")
+ self.bid64_to_int64_xint("0", "[7800000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[7c00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[7e00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[83d9ce9c16120142]", "0", "20")
+ self.bid64_to_int64_xint("0", "+8665888598798.555967E0", "8665888598798", "20")
+ self.bid64_to_int64_xint("0", "[905cacb0af2bac10]", "0", "20")
+ self.bid64_to_int64_xint("0", "-9325278.3E0", "-9325278", "20")
+ self.bid64_to_int64_xint("0", "[b197fd82bf4ca439]", "-67526624613919", "20")
+ self.bid64_to_int64_xint("0", "[b1c4d9bc60976b81]", "-1365303004457857", "00")
+ self.bid64_to_int64_xint("0", "[b1fc99927045463a]", "-80501535757614660", "00")
+ self.bid64_to_int64_xint("0", "[b242bcd407307125]", "-7705687931251570000", "00")
+ self.bid64_to_int64_xint("0", "[b243608db1766425]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[b9ee6e904e018340]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[c060000000000000]", "0", "00")
+ self.bid64_to_int64_xint("0", "[d702d9cb97ee9375]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[d800000000000000]", "0", "00")
+ self.bid64_to_int64_xint("0", "[e6fdd7f7fffff79b]", "0", "00")
+ self.bid64_to_int64_xint("0", "[ebc26e398f2877f5]", "0", "20")
+ self.bid64_to_int64_xint("0", "[f7d9fbf5ffb3effd]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "[ffffffeedef5dff7]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "QNaN", "-9223372036854775808", "01")
+ self.bid64_to_int64_xint("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid64_to_int64_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int64_xrnint() {
+ self.bid64_to_int64_xrnint("0", "-0", "0", "00")
+ self.bid64_to_int64_xrnint("0", "0", "0", "00")
+ self.bid64_to_int64_xrnint("0", "[0000000000000022]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[0d32000000000000]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[106060a238289500]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[1b02c0684f1f0ebf]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[21490ea72d522b84]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[223860673f8c3958]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "+2293.78858528E0", "2294", "20")
+ self.bid64_to_int64_xrnint("0", "-229.644593E0", "-230", "20")
+ self.bid64_to_int64_xrnint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[2fd27f6109a6f835]", "1", "20")
+ self.bid64_to_int64_xrnint("0", "[2fe0fe36448e0f3e]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int64_xrnint("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int64_xrnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int64_xrnint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_int64_xrnint("0", "[310723e0dc9ebd78]", "2009773518", "20")
+ self.bid64_to_int64_xrnint("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_int64_xrnint("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_int64_xrnint("0", "[31271AFD498AB610]", "19999999998", "20")
+ self.bid64_to_int64_xrnint("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_int64_xrnint("0", "[31271AFD498C3CB0]", "20000000000", "20")
+ self.bid64_to_int64_xrnint("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_int64_xrnint("0", "[31271AFD498DC350]", "20000000000", "20")
+ self.bid64_to_int64_xrnint("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_int64_xrnint("0", "[31271AFD498F49F0]", "20000000002", "20")
+ self.bid64_to_int64_xrnint("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int64_xrnint("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_int64_xrnint("0", "[318C800000000032]", "35184372088832", "20")
+ self.bid64_to_int64_xrnint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int64_xrnint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_int64_xrnint("0", "[31A0002E90EDCFF1]", "19999999998", "20")
+ self.bid64_to_int64_xrnint("0", "[31A0002E90EDCFFB]", "20000000000", "20")
+ self.bid64_to_int64_xrnint("0", "[31A0002E90EDD005]", "20000000000", "20")
+ self.bid64_to_int64_xrnint("0", "[31A0002E90EDD00F]", "20000000002", "20")
+ self.bid64_to_int64_xrnint("0", "[31A1400000000005]", "35184372088832", "20")
+ self.bid64_to_int64_xrnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int64_xrnint("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_int64_xrnint("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_int64_xrnint("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_int64_xrnint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_xrnint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_xrnint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_xrnint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_xrnint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_xrnint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_xrnint("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_int64_xrnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int64_xrnint("0", "[32420838e1000c5a]", "5719903394888580000", "00")
+ self.bid64_to_int64_xrnint("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[3245543DF729C000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[32471AFD498D0000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[3248E1BC9BF04000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[32638D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_int64_xrnint("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_int64_xrnint("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_int64_xrnint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_xrnint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_xrnint("0", "[340000000000000F]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[3400000000000019]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[3420000000000002]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[3440000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[38f24f6b28f4a5ea]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "+586.9769668E0", "587", "20")
+ self.bid64_to_int64_xrnint("0", "[5960000000000000]", "0", "00")
+ self.bid64_to_int64_xrnint("0", "[610ce053f330f7be]", "0", "00")
+ self.bid64_to_int64_xrnint("0", "[6a2ada12ab26dbf7]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int64_xrnint("0", "[6c72831f70c88c94]", "9714320267578516", "00")
+ self.bid64_to_int64_xrnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int64_xrnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[6c8906e8c2f14b25]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[7462e9ffb2bd925f]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[7800000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "-79857.5875775E0", "-79858", "20")
+ self.bid64_to_int64_xrnint("0", "[7c00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[7e00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[81c13c2e1d7f03ea]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "+837364244.77E0", "837364245", "20")
+ self.bid64_to_int64_xrnint("0", "-8888989988.88888888E0", "-8888989989", "20")
+ self.bid64_to_int64_xrnint("0", "-89889888899.88889E0", "-89889888900", "20")
+ self.bid64_to_int64_xrnint("0", "[8c854922ae4d3e23]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[961d7b8496bed7eb]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[973621bc738b8434]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "-99888999.9E0", "-99889000", "20")
+ self.bid64_to_int64_xrnint("0", "[a520000000000000]", "0", "00")
+ self.bid64_to_int64_xrnint("0", "[afc327518fbd2f9f]", "0", "20")
+ self.bid64_to_int64_xrnint("0", "[afddfddff7de576f]", "-1", "20")
+ self.bid64_to_int64_xrnint("0", "[afe5a701183a2606]", "-2", "20")
+ self.bid64_to_int64_xrnint("0", "[b00129d090c25209]", "-3", "20")
+ self.bid64_to_int64_xrnint("0", "[b1be0c994f4019bb]", "-845810190045024", "20")
+ self.bid64_to_int64_xrnint("0", "[b1c03b0025924aa0]", "-64871816383136", "00")
+ self.bid64_to_int64_xrnint("0", "[b226c8aef1dcb60d]", "-1909503567902221000", "00")
+ self.bid64_to_int64_xrnint("0", "[ba2a4f6c18fe76eb]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[baf41d3e641a88c8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[bf925b390fe6cb2e]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[bfdffebffffffefb]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[c6f4a24618c58558]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[ccf87a4215ab0a81]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[d26e381ca9752936]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[d63c3aa1aee660f5]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[ec6260a15612ae17]", "-96763952582282", "20")
+ self.bid64_to_int64_xrnint("0", "[ec6af280f6ed58f5]", "-983678492064792", "20")
+ self.bid64_to_int64_xrnint("0", "[ec898da97ec2beb8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "[fcf605fe661cf30a]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "QNaN", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrnint("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid64_to_int64_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int64_xrninta() {
+ self.bid64_to_int64_xrninta("0", "-0", "0", "00")
+ self.bid64_to_int64_xrninta("0", "0", "0", "00")
+ self.bid64_to_int64_xrninta("0", "-0.0000010000E0", "0", "20")
+ self.bid64_to_int64_xrninta("0", "[0002950491200210]", "0", "20")
+ self.bid64_to_int64_xrninta("0", "[0d2f000000000000]", "0", "20")
+ self.bid64_to_int64_xrninta("0", "[0d88000000000000]", "0", "20")
+ self.bid64_to_int64_xrninta("0", "+1011.01E0", "1011", "20")
+ self.bid64_to_int64_xrninta("0", "[28639b4defe21177]", "0", "20")
+ self.bid64_to_int64_xrninta("0", "[2dc4969e8ebb0db5]", "0", "20")
+ self.bid64_to_int64_xrninta("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_int64_xrninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int64_xrninta("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int64_xrninta("0", "[3000409101210088]", "1", "20")
+ self.bid64_to_int64_xrninta("0", "[302021b4aea4dc82]", "4", "20")
+ self.bid64_to_int64_xrninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_int64_xrninta("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_int64_xrninta("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_int64_xrninta("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_int64_xrninta("0", "[31271AFD498AB610]", "19999999999", "20")
+ self.bid64_to_int64_xrninta("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_int64_xrninta("0", "[31271AFD498C3CB0]", "20000000000", "20")
+ self.bid64_to_int64_xrninta("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_int64_xrninta("0", "[31271AFD498DC350]", "20000000001", "20")
+ self.bid64_to_int64_xrninta("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_int64_xrninta("0", "[31271AFD498F49F0]", "20000000002", "20")
+ self.bid64_to_int64_xrninta("0", "[315ee27db5ea0d04]", "869327885212", "20")
+ self.bid64_to_int64_xrninta("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int64_xrninta("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_int64_xrninta("0", "[318C800000000032]", "35184372088833", "20")
+ self.bid64_to_int64_xrninta("0", "[319ab6a3d41f125a]", "75191641492076", "20")
+ self.bid64_to_int64_xrninta("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_int64_xrninta("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int64_xrninta("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_int64_xrninta("0", "[31A0002E90EDCFF1]", "19999999999", "20")
+ self.bid64_to_int64_xrninta("0", "[31A0002E90EDCFFB]", "20000000000", "20")
+ self.bid64_to_int64_xrninta("0", "[31A0002E90EDD005]", "20000000001", "20")
+ self.bid64_to_int64_xrninta("0", "[31A0002E90EDD00F]", "20000000002", "20")
+ self.bid64_to_int64_xrninta("0", "[31A1400000000005]", "35184372088833", "20")
+ self.bid64_to_int64_xrninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int64_xrninta("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_int64_xrninta("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_int64_xrninta("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_int64_xrninta("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_xrninta("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_int64_xrninta("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_xrninta("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_int64_xrninta("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_xrninta("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_int64_xrninta("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_int64_xrninta("0", "[31dc2bf0ca08c4e2]", "7929612529616098", "00")
+ self.bid64_to_int64_xrninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_int64_xrninta("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[32438D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[3245543DF729C000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[32468DB8BAC710CB]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[32471AFD498D0000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[3248E1BC9BF04000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[32638D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_int64_xrninta("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_int64_xrninta("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_int64_xrninta("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_xrninta("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_int64_xrninta("0", "[340000000000000F]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[3400000000000019]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[3420000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[3420000000000002]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[3440000000000001]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "+3542569327.38626882E0", "3542569327", "20")
+ self.bid64_to_int64_xrninta("0", "[576d6c2d099ef6bc]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[5771d12067dde966]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "-5999699.657E0", "-5999700", "20")
+ self.bid64_to_int64_xrninta("0", "[6030924bc6d8512b]", "0", "20")
+ self.bid64_to_int64_xrninta("0", "[698a49e8845e2104]", "0", "20")
+ self.bid64_to_int64_xrninta("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int64_xrninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int64_xrninta("0", "[6c88044e3a7ca610]", "9011933289948688000", "00")
+ self.bid64_to_int64_xrninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[6C88C49BA5E353F8]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[6c89f8ce1dfaffd6]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "-7.7E0", "-8", "20")
+ self.bid64_to_int64_xrninta("0", "[7800000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[7c00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[7e00000000000000]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "-857598.76755587E0", "-857599", "20")
+ self.bid64_to_int64_xrninta("0", "[890b7a79d40da8d8]", "0", "20")
+ self.bid64_to_int64_xrninta("0", "[9160000000000000]", "0", "00")
+ self.bid64_to_int64_xrninta("0", "[9230607ccffec4b1]", "0", "20")
+ self.bid64_to_int64_xrninta("0", "-9999.89989E0", "-10000", "20")
+ self.bid64_to_int64_xrninta("0", "[afc81a477c94e104]", "0", "20")
+ self.bid64_to_int64_xrninta("0", "[afdef7fff7ffbdff]", "-1", "20")
+ self.bid64_to_int64_xrninta("0", "[b04486a524082083]", "-1274", "20")
+ self.bid64_to_int64_xrninta("0", "[b16ddb7e4effbc57]", "-3900510234984", "20")
+ self.bid64_to_int64_xrninta("0", "[b1d3399600c08ec6]", "-5411340977999558", "00")
+ self.bid64_to_int64_xrninta("0", "[b208f6b461404c5a]", "-252305439983522600", "00")
+ self.bid64_to_int64_xrninta("0", "[b23a47a1bc18fa1a]", "-7397109365537306000", "00")
+ self.bid64_to_int64_xrninta("0", "[c9eec2d758189029]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[dfff7fffb7fbffff]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[e983c0a51dd65b61]", "0", "00")
+ self.bid64_to_int64_xrninta("0", "[ec8b7636361f1932]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "[fad992c0e9957657]", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "Infinity", "-9223372036854775808", "01")
+ self.bid64_to_int64_xrninta("0", "QNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid64_to_int64_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int8_ceil() {
+ self.bid64_to_int8_ceil("0", "-1", "-1", "00")
+ self.bid64_to_int8_ceil("0", "129", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_int8_ceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int8_ceil("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int8_ceil("0", "[30247E82C3A41000]", "127", "00")
+ self.bid64_to_int8_ceil("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_int8_ceil("0", "[3024879B1216B000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[30248C2739500000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[302490B360895000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[3024953F87C2A000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[30290F36242D6000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[302913C24B66B000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[3029184E72A00000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[30291CDA99D95000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[30292166C112A000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[302AA87BEE538000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[302AAD08158CD000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int8_ceil("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_int8_ceil("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int8_ceil("0", "[31A00000000004F1]", "127", "00")
+ self.bid64_to_int8_ceil("0", "[31A00000000004FB]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[31A0000000000505]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[31A00000000009FB]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[31A0000000000A05]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[31A0000000000BBD]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int8_ceil("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_int8_ceil("0", "[31C0000000000080]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[31C0000000000081]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[31C00000000000FF]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[31C0000000000100]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[31C0000000000101]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[3200000000000003]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int8_ceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int8_ceil("0", "[7800000000000000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[7c00000000000000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[7e00000000000000]", "-128", "01")
+ self.bid64_to_int8_ceil("0", "[9de20851ba87be40]", "0", "00")
+ }
+
+ private func bid64_to_int8_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int8_floor() {
+ self.bid64_to_int8_floor("0", "-1", "-1", "00")
+ self.bid64_to_int8_floor("0", "129", "-128", "01")
+ self.bid64_to_int8_floor("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int8_floor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int8_floor("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_int8_floor("0", "[30247E82C3A41000]", "126", "00")
+ self.bid64_to_int8_floor("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_int8_floor("0", "[3024879B1216B000]", "127", "00")
+ self.bid64_to_int8_floor("0", "[30248C2739500000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[302490B360895000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[3024953F87C2A000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[30290F36242D6000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[302913C24B66B000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[3029184E72A00000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[30291CDA99D95000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[30292166C112A000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[302AA87BEE538000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[302AAD08158CD000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_int8_floor("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int8_floor("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_int8_floor("0", "[31A00000000004F1]", "126", "00")
+ self.bid64_to_int8_floor("0", "[31A00000000004FB]", "127", "00")
+ self.bid64_to_int8_floor("0", "[31A0000000000505]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[31A00000000009FB]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[31A0000000000A05]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[31A0000000000BBD]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int8_floor("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_int8_floor("0", "[31C0000000000080]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[31C0000000000081]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[31C00000000000FF]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[31C0000000000100]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[31C0000000000101]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[3200000000000003]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_int8_floor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int8_floor("0", "[7800000000000000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[7c00000000000000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[7e00000000000000]", "-128", "01")
+ self.bid64_to_int8_floor("0", "[ffeffffffbffffe7]", "-128", "01")
+ }
+
+ private func bid64_to_int8_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int8_int() {
+ self.bid64_to_int8_int("0", "-1", "-1", "00")
+ self.bid64_to_int8_int("0", "129", "-128", "01")
+ self.bid64_to_int8_int("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int8_int("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int8_int("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_int8_int("0", "[30247E82C3A41000]", "126", "00")
+ self.bid64_to_int8_int("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_int8_int("0", "[3024879B1216B000]", "127", "00")
+ self.bid64_to_int8_int("0", "[30248C2739500000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[302490B360895000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[3024953F87C2A000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[30290F36242D6000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[302913C24B66B000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[3029184E72A00000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[30291CDA99D95000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[30292166C112A000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[302AA87BEE538000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[302AAD08158CD000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_int8_int("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int8_int("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_int8_int("0", "[31A00000000004F1]", "126", "00")
+ self.bid64_to_int8_int("0", "[31A00000000004FB]", "127", "00")
+ self.bid64_to_int8_int("0", "[31A0000000000505]", "-128", "01")
+ self.bid64_to_int8_int("0", "[31A00000000009FB]", "-128", "01")
+ self.bid64_to_int8_int("0", "[31A0000000000A05]", "-128", "01")
+ self.bid64_to_int8_int("0", "[31A0000000000BBD]", "-128", "01")
+ self.bid64_to_int8_int("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int8_int("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_int8_int("0", "[31C0000000000080]", "-128", "01")
+ self.bid64_to_int8_int("0", "[31C0000000000081]", "-128", "01")
+ self.bid64_to_int8_int("0", "[31C00000000000FF]", "-128", "01")
+ self.bid64_to_int8_int("0", "[31C0000000000100]", "-128", "01")
+ self.bid64_to_int8_int("0", "[31C0000000000101]", "-128", "01")
+ self.bid64_to_int8_int("0", "[3200000000000003]", "-128", "01")
+ self.bid64_to_int8_int("0", "[5f1e5fda223b9fff]", "-128", "01")
+ self.bid64_to_int8_int("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_int8_int("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int8_int("0", "[7800000000000000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[7c00000000000000]", "-128", "01")
+ self.bid64_to_int8_int("0", "[7e00000000000000]", "-128", "01")
+ }
+
+ private func bid64_to_int8_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int8_rnint() {
+ self.bid64_to_int8_rnint("0", "-1", "-1", "00")
+ self.bid64_to_int8_rnint("0", "129", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_int8_rnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int8_rnint("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int8_rnint("0", "[30247E82C3A41000]", "126", "00")
+ self.bid64_to_int8_rnint("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_int8_rnint("0", "[3024879B1216B000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[30248C2739500000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[302490B360895000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[3024953F87C2A000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[30290F36242D6000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[302913C24B66B000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[3029184E72A00000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[30291CDA99D95000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[30292166C112A000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[302AA87BEE538000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[302AAD08158CD000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int8_rnint("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_int8_rnint("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int8_rnint("0", "[31A00000000004F1]", "126", "00")
+ self.bid64_to_int8_rnint("0", "[31A00000000004FB]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[31A0000000000505]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[31A00000000009FB]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[31A0000000000A05]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[31A0000000000BBD]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int8_rnint("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_int8_rnint("0", "[31C0000000000080]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[31C0000000000081]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[31C00000000000FF]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[31C0000000000100]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[31C0000000000101]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[3200000000000003]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[4f779f671e5fffaa]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int8_rnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int8_rnint("0", "[7800000000000000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[7c00000000000000]", "-128", "01")
+ self.bid64_to_int8_rnint("0", "[7e00000000000000]", "-128", "01")
+ }
+
+ private func bid64_to_int8_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int8_rninta() {
+ self.bid64_to_int8_rninta("0", "-1", "-1", "00")
+ self.bid64_to_int8_rninta("0", "129", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_int8_rninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int8_rninta("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_int8_rninta("0", "[30247E82C3A41000]", "127", "00")
+ self.bid64_to_int8_rninta("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_int8_rninta("0", "[3024879B1216B000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[30248C2739500000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[302490B360895000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[3024953F87C2A000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[30290F36242D6000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[302913C24B66B000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[3029184E72A00000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[30291CDA99D95000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[30292166C112A000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[302AA87BEE538000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[302AAD08158CD000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_int8_rninta("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_int8_rninta("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_int8_rninta("0", "[31A00000000004F1]", "127", "00")
+ self.bid64_to_int8_rninta("0", "[31A00000000004FB]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[31A0000000000505]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[31A00000000009FB]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[31A0000000000A05]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[31A0000000000BBD]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int8_rninta("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_int8_rninta("0", "[31C0000000000080]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[31C0000000000081]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[31C00000000000FF]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[31C0000000000100]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[31C0000000000101]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[3200000000000003]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_int8_rninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int8_rninta("0", "[7800000000000000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[7c00000000000000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[7e00000000000000]", "-128", "01")
+ self.bid64_to_int8_rninta("0", "[ff7ef7f661ea3cbd]", "-128", "01")
+ }
+
+ private func bid64_to_int8_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int8_xceil() {
+ self.bid64_to_int8_xceil("0", "-1", "-1", "00")
+ self.bid64_to_int8_xceil("0", "129", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_int8_xceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int8_xceil("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int8_xceil("0", "[30247E82C3A41000]", "127", "20")
+ self.bid64_to_int8_xceil("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_int8_xceil("0", "[3024879B1216B000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[30248C2739500000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[302490B360895000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[3024953F87C2A000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[30290F36242D6000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[302913C24B66B000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[3029184E72A00000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[30291CDA99D95000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[30292166C112A000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[302AA87BEE538000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[302AAD08158CD000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int8_xceil("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_int8_xceil("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int8_xceil("0", "[31A00000000004F1]", "127", "20")
+ self.bid64_to_int8_xceil("0", "[31A00000000004FB]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[31A0000000000505]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[31A00000000009FB]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[31A0000000000A05]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[31A0000000000BBD]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int8_xceil("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_int8_xceil("0", "[31C0000000000080]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[31C0000000000081]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[31C00000000000FF]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[31C0000000000100]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[31C0000000000101]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[3200000000000003]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int8_xceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int8_xceil("0", "[7800000000000000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[7c00000000000000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[7e00000000000000]", "-128", "01")
+ self.bid64_to_int8_xceil("0", "[f08f708604fdc8aa]", "0", "00")
+ }
+
+ private func bid64_to_int8_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int8_xfloor() {
+ self.bid64_to_int8_xfloor("0", "-1", "-1", "00")
+ self.bid64_to_int8_xfloor("0", "129", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int8_xfloor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int8_xfloor("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_int8_xfloor("0", "[30247E82C3A41000]", "126", "20")
+ self.bid64_to_int8_xfloor("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_int8_xfloor("0", "[3024879B1216B000]", "127", "20")
+ self.bid64_to_int8_xfloor("0", "[30248C2739500000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[302490B360895000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[3024953F87C2A000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[30290F36242D6000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[302913C24B66B000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[3029184E72A00000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[30291CDA99D95000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[30292166C112A000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[302AA87BEE538000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[302AAD08158CD000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_int8_xfloor("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int8_xfloor("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_int8_xfloor("0", "[31A00000000004F1]", "126", "20")
+ self.bid64_to_int8_xfloor("0", "[31A00000000004FB]", "127", "20")
+ self.bid64_to_int8_xfloor("0", "[31A0000000000505]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[31A00000000009FB]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[31A0000000000A05]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[31A0000000000BBD]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int8_xfloor("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_int8_xfloor("0", "[31C0000000000080]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[31C0000000000081]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[31C00000000000FF]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[31C0000000000100]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[31C0000000000101]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[3200000000000003]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_int8_xfloor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int8_xfloor("0", "[7800000000000000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[7c00000000000000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[7e00000000000000]", "-128", "01")
+ self.bid64_to_int8_xfloor("0", "[8b3b56689b019f0e]", "-1", "20")
+ }
+
+ private func bid64_to_int8_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int8_xint() {
+ self.bid64_to_int8_xint("0", "-1", "-1", "00")
+ self.bid64_to_int8_xint("0", "129", "-128", "01")
+ self.bid64_to_int8_xint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int8_xint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int8_xint("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_int8_xint("0", "[30247E82C3A41000]", "126", "20")
+ self.bid64_to_int8_xint("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_int8_xint("0", "[3024879B1216B000]", "127", "20")
+ self.bid64_to_int8_xint("0", "[30248C2739500000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[302490B360895000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[3024953F87C2A000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[30290F36242D6000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[302913C24B66B000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[3029184E72A00000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[30291CDA99D95000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[30292166C112A000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[302AA87BEE538000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[302AAD08158CD000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_int8_xint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int8_xint("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_int8_xint("0", "[31A00000000004F1]", "126", "20")
+ self.bid64_to_int8_xint("0", "[31A00000000004FB]", "127", "20")
+ self.bid64_to_int8_xint("0", "[31A0000000000505]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[31A00000000009FB]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[31A0000000000A05]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[31A0000000000BBD]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int8_xint("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_int8_xint("0", "[31C0000000000080]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[31C0000000000081]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[31C00000000000FF]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[31C0000000000100]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[31C0000000000101]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[3200000000000003]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_int8_xint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int8_xint("0", "[7800000000000000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[7c00000000000000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[7e00000000000000]", "-128", "01")
+ self.bid64_to_int8_xint("0", "[ffff7fdffffdefff]", "-128", "01")
+ }
+
+ private func bid64_to_int8_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int8_xrnint() {
+ self.bid64_to_int8_xrnint("0", "-1", "-1", "00")
+ self.bid64_to_int8_xrnint("0", "129", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_int8_xrnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int8_xrnint("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int8_xrnint("0", "[30247E82C3A41000]", "126", "20")
+ self.bid64_to_int8_xrnint("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_int8_xrnint("0", "[3024879B1216B000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[30248C2739500000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[302490B360895000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[3024953F87C2A000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[30290F36242D6000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[302913C24B66B000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[3029184E72A00000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[30291CDA99D95000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[30292166C112A000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[302AA87BEE538000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[302AAD08158CD000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int8_xrnint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_int8_xrnint("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int8_xrnint("0", "[31A00000000004F1]", "126", "20")
+ self.bid64_to_int8_xrnint("0", "[31A00000000004FB]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[31A0000000000505]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[31A00000000009FB]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[31A0000000000A05]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[31A0000000000BBD]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int8_xrnint("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_int8_xrnint("0", "[31C0000000000080]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[31C0000000000081]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[31C00000000000FF]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[31C0000000000100]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[31C0000000000101]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[3200000000000003]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int8_xrnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int8_xrnint("0", "[7800000000000000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[7c00000000000000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[7e00000000000000]", "-128", "01")
+ self.bid64_to_int8_xrnint("0", "[e64bf972bed7357b]", "0", "00")
+ }
+
+ private func bid64_to_int8_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_int8_xrninta() {
+ self.bid64_to_int8_xrninta("0", "-1", "-1", "00")
+ self.bid64_to_int8_xrninta("0", "129", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[26bcf5e801c36421]", "0", "20")
+ self.bid64_to_int8_xrninta("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_int8_xrninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_int8_xrninta("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_int8_xrninta("0", "[30247E82C3A41000]", "127", "20")
+ self.bid64_to_int8_xrninta("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_int8_xrninta("0", "[3024879B1216B000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[30248C2739500000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[302490B360895000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[3024953F87C2A000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[30290F36242D6000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[302913C24B66B000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[3029184E72A00000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[30291CDA99D95000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[30292166C112A000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[302AA87BEE538000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[302AAD08158CD000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_int8_xrninta("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_int8_xrninta("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_int8_xrninta("0", "[31A00000000004F1]", "127", "20")
+ self.bid64_to_int8_xrninta("0", "[31A00000000004FB]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[31A0000000000505]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[31A00000000009FB]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[31A0000000000A05]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[31A0000000000BBD]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_int8_xrninta("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_int8_xrninta("0", "[31C0000000000080]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[31C0000000000081]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[31C00000000000FF]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[31C0000000000100]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[31C0000000000101]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[3200000000000003]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_int8_xrninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_int8_xrninta("0", "[7800000000000000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[7c00000000000000]", "-128", "01")
+ self.bid64_to_int8_xrninta("0", "[7e00000000000000]", "-128", "01")
+ }
+
+ private func bid64_to_int8_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint16_ceil() {
+ self.bid64_to_uint16_ceil("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_uint16_ceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint16_ceil("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint16_ceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint16_ceil("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_uint16_ceil("0", "[306BA418874DA400]", "32767", "00")
+ self.bid64_to_uint16_ceil("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_uint16_ceil("0", "[306BA42FCFC48C00]", "32768", "00")
+ self.bid64_to_uint16_ceil("0", "[306BA43B74000000]", "32768", "00")
+ self.bid64_to_uint16_ceil("0", "[306BA447183B7400]", "32769", "00")
+ self.bid64_to_uint16_ceil("0", "[306BA452BC76E800]", "32769", "00")
+ self.bid64_to_uint16_ceil("0", "[3077485F9F891800]", "65535", "00")
+ self.bid64_to_uint16_ceil("0", "[3077486B43C48C00]", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[30774876E8000000]", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[307748828C3B7400]", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[3077488E3076E800]", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint16_ceil("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_uint16_ceil("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint16_ceil("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_uint16_ceil("0", "[31A000000004FFF1]", "32767", "00")
+ self.bid64_to_uint16_ceil("0", "[31A000000004FFFB]", "32768", "00")
+ self.bid64_to_uint16_ceil("0", "[31A0000000050005]", "32769", "00")
+ self.bid64_to_uint16_ceil("0", "[31A000000009FFFB]", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[31A00000000A0005]", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint16_ceil("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_uint16_ceil("0", "[31C0000000008000]", "32768", "00")
+ self.bid64_to_uint16_ceil("0", "[31C0000000008001]", "32769", "00")
+ self.bid64_to_uint16_ceil("0", "[31C000000000FFFF]", "65535", "00")
+ self.bid64_to_uint16_ceil("0", "[31C0000000010000]", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[31C0000000010001]", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint16_ceil("0", "65536", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint16_ceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint16_ceil("0", "[7800000000000000]", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[7a758e58adf1cd48]", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[7c00000000000000]", "32768", "01")
+ self.bid64_to_uint16_ceil("0", "[7e00000000000000]", "32768", "01")
+ }
+
+ private func bid64_to_uint16_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint16_floor() {
+ self.bid64_to_uint16_floor("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint16_floor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint16_floor("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_uint16_floor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint16_floor("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_uint16_floor("0", "[306BA418874DA400]", "32766", "00")
+ self.bid64_to_uint16_floor("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_uint16_floor("0", "[306BA42FCFC48C00]", "32767", "00")
+ self.bid64_to_uint16_floor("0", "[306BA43B74000000]", "32768", "00")
+ self.bid64_to_uint16_floor("0", "[306BA447183B7400]", "32768", "00")
+ self.bid64_to_uint16_floor("0", "[306BA452BC76E800]", "32769", "00")
+ self.bid64_to_uint16_floor("0", "[3077485F9F891800]", "65535", "00")
+ self.bid64_to_uint16_floor("0", "[3077486B43C48C00]", "65535", "00")
+ self.bid64_to_uint16_floor("0", "[30774876E8000000]", "32768", "01")
+ self.bid64_to_uint16_floor("0", "[307748828C3B7400]", "32768", "01")
+ self.bid64_to_uint16_floor("0", "[3077488E3076E800]", "32768", "01")
+ self.bid64_to_uint16_floor("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_uint16_floor("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint16_floor("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_uint16_floor("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_uint16_floor("0", "[31A000000004FFF1]", "32766", "00")
+ self.bid64_to_uint16_floor("0", "[31A000000004FFFB]", "32767", "00")
+ self.bid64_to_uint16_floor("0", "[31A0000000050005]", "32768", "00")
+ self.bid64_to_uint16_floor("0", "[31A000000009FFFB]", "65535", "00")
+ self.bid64_to_uint16_floor("0", "[31A00000000A0005]", "32768", "01")
+ self.bid64_to_uint16_floor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint16_floor("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_uint16_floor("0", "[31C0000000008000]", "32768", "00")
+ self.bid64_to_uint16_floor("0", "[31C0000000008001]", "32769", "00")
+ self.bid64_to_uint16_floor("0", "[31C000000000FFFF]", "65535", "00")
+ self.bid64_to_uint16_floor("0", "[31C0000000010000]", "32768", "01")
+ self.bid64_to_uint16_floor("0", "[31C0000000010001]", "32768", "01")
+ self.bid64_to_uint16_floor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint16_floor("0", "65536", "32768", "01")
+ self.bid64_to_uint16_floor("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_uint16_floor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint16_floor("0", "[7800000000000000]", "32768", "01")
+ self.bid64_to_uint16_floor("0", "[7c00000000000000]", "32768", "01")
+ self.bid64_to_uint16_floor("0", "[7e00000000000000]", "32768", "01")
+ self.bid64_to_uint16_floor("0", "[f13ff2fe3e39ede8]", "0", "00")
+ }
+
+ private func bid64_to_uint16_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint16_int() {
+ self.bid64_to_uint16_int("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint16_int("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint16_int("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_uint16_int("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint16_int("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_uint16_int("0", "[306BA418874DA400]", "32766", "00")
+ self.bid64_to_uint16_int("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_uint16_int("0", "[306BA42FCFC48C00]", "32767", "00")
+ self.bid64_to_uint16_int("0", "[306BA43B74000000]", "32768", "00")
+ self.bid64_to_uint16_int("0", "[306BA447183B7400]", "32768", "00")
+ self.bid64_to_uint16_int("0", "[306BA452BC76E800]", "32769", "00")
+ self.bid64_to_uint16_int("0", "[3077485F9F891800]", "65535", "00")
+ self.bid64_to_uint16_int("0", "[3077486B43C48C00]", "65535", "00")
+ self.bid64_to_uint16_int("0", "[30774876E8000000]", "32768", "01")
+ self.bid64_to_uint16_int("0", "[307748828C3B7400]", "32768", "01")
+ self.bid64_to_uint16_int("0", "[3077488E3076E800]", "32768", "01")
+ self.bid64_to_uint16_int("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_uint16_int("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint16_int("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_uint16_int("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_uint16_int("0", "[31A000000004FFF1]", "32766", "00")
+ self.bid64_to_uint16_int("0", "[31A000000004FFFB]", "32767", "00")
+ self.bid64_to_uint16_int("0", "[31A0000000050005]", "32768", "00")
+ self.bid64_to_uint16_int("0", "[31A000000009FFFB]", "65535", "00")
+ self.bid64_to_uint16_int("0", "[31A00000000A0005]", "32768", "01")
+ self.bid64_to_uint16_int("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint16_int("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_uint16_int("0", "[31C0000000008000]", "32768", "00")
+ self.bid64_to_uint16_int("0", "[31C0000000008001]", "32769", "00")
+ self.bid64_to_uint16_int("0", "[31C000000000FFFF]", "65535", "00")
+ self.bid64_to_uint16_int("0", "[31C0000000010000]", "32768", "01")
+ self.bid64_to_uint16_int("0", "[31C0000000010001]", "32768", "01")
+ self.bid64_to_uint16_int("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint16_int("0", "65536", "32768", "01")
+ self.bid64_to_uint16_int("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_uint16_int("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint16_int("0", "[7800000000000000]", "32768", "01")
+ self.bid64_to_uint16_int("0", "[7c00000000000000]", "32768", "01")
+ self.bid64_to_uint16_int("0", "[7e00000000000000]", "32768", "01")
+ self.bid64_to_uint16_int("0", "[feefdfe7bb9fff62]", "32768", "01")
+ }
+
+ private func bid64_to_uint16_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint16_rnint() {
+ self.bid64_to_uint16_rnint("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint16_rnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint16_rnint("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint16_rnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint16_rnint("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_uint16_rnint("0", "[306BA418874DA400]", "32766", "00")
+ self.bid64_to_uint16_rnint("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_uint16_rnint("0", "[306BA42FCFC48C00]", "32768", "00")
+ self.bid64_to_uint16_rnint("0", "[306BA43B74000000]", "32768", "00")
+ self.bid64_to_uint16_rnint("0", "[306BA447183B7400]", "32768", "00")
+ self.bid64_to_uint16_rnint("0", "[306BA452BC76E800]", "32769", "00")
+ self.bid64_to_uint16_rnint("0", "[3077485F9F891800]", "65535", "00")
+ self.bid64_to_uint16_rnint("0", "[3077486B43C48C00]", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[30774876E8000000]", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[307748828C3B7400]", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[3077488E3076E800]", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint16_rnint("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint16_rnint("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint16_rnint("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_uint16_rnint("0", "[31A000000004FFF1]", "32766", "00")
+ self.bid64_to_uint16_rnint("0", "[31A000000004FFFB]", "32768", "00")
+ self.bid64_to_uint16_rnint("0", "[31A0000000050005]", "32768", "00")
+ self.bid64_to_uint16_rnint("0", "[31A000000009FFFB]", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[31A00000000A0005]", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint16_rnint("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_uint16_rnint("0", "[31C0000000008000]", "32768", "00")
+ self.bid64_to_uint16_rnint("0", "[31C0000000008001]", "32769", "00")
+ self.bid64_to_uint16_rnint("0", "[31C000000000FFFF]", "65535", "00")
+ self.bid64_to_uint16_rnint("0", "[31C0000000010000]", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[31C0000000010001]", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint16_rnint("0", "65536", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint16_rnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint16_rnint("0", "[7800000000000000]", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[7c00000000000000]", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[7e00000000000000]", "32768", "01")
+ self.bid64_to_uint16_rnint("0", "[99ffe80ea695f57b]", "0", "00")
+ }
+
+ private func bid64_to_uint16_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint16_rninta() {
+ self.bid64_to_uint16_rninta("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_uint16_rninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint16_rninta("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint16_rninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint16_rninta("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_uint16_rninta("0", "[306BA418874DA400]", "32767", "00")
+ self.bid64_to_uint16_rninta("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_uint16_rninta("0", "[306BA42FCFC48C00]", "32768", "00")
+ self.bid64_to_uint16_rninta("0", "[306BA43B74000000]", "32768", "00")
+ self.bid64_to_uint16_rninta("0", "[306BA447183B7400]", "32769", "00")
+ self.bid64_to_uint16_rninta("0", "[306BA452BC76E800]", "32769", "00")
+ self.bid64_to_uint16_rninta("0", "[3077485F9F891800]", "65535", "00")
+ self.bid64_to_uint16_rninta("0", "[3077486B43C48C00]", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[30774876E8000000]", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[307748828C3B7400]", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[3077488E3076E800]", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint16_rninta("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_uint16_rninta("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint16_rninta("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_uint16_rninta("0", "[31A000000004FFF1]", "32767", "00")
+ self.bid64_to_uint16_rninta("0", "[31A000000004FFFB]", "32768", "00")
+ self.bid64_to_uint16_rninta("0", "[31A0000000050005]", "32769", "00")
+ self.bid64_to_uint16_rninta("0", "[31A000000009FFFB]", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[31A00000000A0005]", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint16_rninta("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_uint16_rninta("0", "[31C0000000008000]", "32768", "00")
+ self.bid64_to_uint16_rninta("0", "[31C0000000008001]", "32769", "00")
+ self.bid64_to_uint16_rninta("0", "[31C000000000FFFF]", "65535", "00")
+ self.bid64_to_uint16_rninta("0", "[31C0000000010000]", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[31C0000000010001]", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint16_rninta("0", "65536", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint16_rninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint16_rninta("0", "[7800000000000000]", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[7c00000000000000]", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[7e00000000000000]", "32768", "01")
+ self.bid64_to_uint16_rninta("0", "[f900279fddf742b9]", "32768", "01")
+ }
+
+ private func bid64_to_uint16_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint16_xceil() {
+ self.bid64_to_uint16_xceil("0", "[0001000000000020]", "1", "20")
+ self.bid64_to_uint16_xceil("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_uint16_xceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint16_xceil("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint16_xceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint16_xceil("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_uint16_xceil("0", "[306BA418874DA400]", "32767", "20")
+ self.bid64_to_uint16_xceil("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_uint16_xceil("0", "[306BA42FCFC48C00]", "32768", "20")
+ self.bid64_to_uint16_xceil("0", "[306BA43B74000000]", "32768", "00")
+ self.bid64_to_uint16_xceil("0", "[306BA447183B7400]", "32769", "20")
+ self.bid64_to_uint16_xceil("0", "[306BA452BC76E800]", "32769", "00")
+ self.bid64_to_uint16_xceil("0", "[3077485F9F891800]", "65535", "00")
+ self.bid64_to_uint16_xceil("0", "[3077486B43C48C00]", "32768", "01")
+ self.bid64_to_uint16_xceil("0", "[30774876E8000000]", "32768", "01")
+ self.bid64_to_uint16_xceil("0", "[307748828C3B7400]", "32768", "01")
+ self.bid64_to_uint16_xceil("0", "[3077488E3076E800]", "32768", "01")
+ self.bid64_to_uint16_xceil("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint16_xceil("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_uint16_xceil("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint16_xceil("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_uint16_xceil("0", "[31A000000004FFF1]", "32767", "20")
+ self.bid64_to_uint16_xceil("0", "[31A000000004FFFB]", "32768", "20")
+ self.bid64_to_uint16_xceil("0", "[31A0000000050005]", "32769", "20")
+ self.bid64_to_uint16_xceil("0", "[31A000000009FFFB]", "32768", "01")
+ self.bid64_to_uint16_xceil("0", "[31A00000000A0005]", "32768", "01")
+ self.bid64_to_uint16_xceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint16_xceil("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_uint16_xceil("0", "[31C0000000008000]", "32768", "00")
+ self.bid64_to_uint16_xceil("0", "[31C0000000008001]", "32769", "00")
+ self.bid64_to_uint16_xceil("0", "[31C000000000FFFF]", "65535", "00")
+ self.bid64_to_uint16_xceil("0", "[31C0000000010000]", "32768", "01")
+ self.bid64_to_uint16_xceil("0", "[31C0000000010001]", "32768", "01")
+ self.bid64_to_uint16_xceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint16_xceil("0", "65536", "32768", "01")
+ self.bid64_to_uint16_xceil("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint16_xceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint16_xceil("0", "[7800000000000000]", "32768", "01")
+ self.bid64_to_uint16_xceil("0", "[7c00000000000000]", "32768", "01")
+ self.bid64_to_uint16_xceil("0", "[7e00000000000000]", "32768", "01")
+ }
+
+ private func bid64_to_uint16_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint16_xfloor() {
+ self.bid64_to_uint16_xfloor("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint16_xfloor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint16_xfloor("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_uint16_xfloor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint16_xfloor("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_uint16_xfloor("0", "[306BA418874DA400]", "32766", "20")
+ self.bid64_to_uint16_xfloor("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_uint16_xfloor("0", "[306BA42FCFC48C00]", "32767", "20")
+ self.bid64_to_uint16_xfloor("0", "[306BA43B74000000]", "32768", "00")
+ self.bid64_to_uint16_xfloor("0", "[306BA447183B7400]", "32768", "20")
+ self.bid64_to_uint16_xfloor("0", "[306BA452BC76E800]", "32769", "00")
+ self.bid64_to_uint16_xfloor("0", "[3077485F9F891800]", "65535", "00")
+ self.bid64_to_uint16_xfloor("0", "[3077486B43C48C00]", "65535", "20")
+ self.bid64_to_uint16_xfloor("0", "[30774876E8000000]", "32768", "01")
+ self.bid64_to_uint16_xfloor("0", "[307748828C3B7400]", "32768", "01")
+ self.bid64_to_uint16_xfloor("0", "[3077488E3076E800]", "32768", "01")
+ self.bid64_to_uint16_xfloor("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_uint16_xfloor("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint16_xfloor("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_uint16_xfloor("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_uint16_xfloor("0", "[31A000000004FFF1]", "32766", "20")
+ self.bid64_to_uint16_xfloor("0", "[31A000000004FFFB]", "32767", "20")
+ self.bid64_to_uint16_xfloor("0", "[31A0000000050005]", "32768", "20")
+ self.bid64_to_uint16_xfloor("0", "[31A000000009FFFB]", "65535", "20")
+ self.bid64_to_uint16_xfloor("0", "[31A00000000A0005]", "32768", "01")
+ self.bid64_to_uint16_xfloor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint16_xfloor("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_uint16_xfloor("0", "[31C0000000008000]", "32768", "00")
+ self.bid64_to_uint16_xfloor("0", "[31C0000000008001]", "32769", "00")
+ self.bid64_to_uint16_xfloor("0", "[31C000000000FFFF]", "65535", "00")
+ self.bid64_to_uint16_xfloor("0", "[31C0000000010000]", "32768", "01")
+ self.bid64_to_uint16_xfloor("0", "[31C0000000010001]", "32768", "01")
+ self.bid64_to_uint16_xfloor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint16_xfloor("0", "65536", "32768", "01")
+ self.bid64_to_uint16_xfloor("0", "[69ea3cbdfffefff7]", "0", "20")
+ self.bid64_to_uint16_xfloor("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_uint16_xfloor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint16_xfloor("0", "[7800000000000000]", "32768", "01")
+ self.bid64_to_uint16_xfloor("0", "[7c00000000000000]", "32768", "01")
+ self.bid64_to_uint16_xfloor("0", "[7e00000000000000]", "32768", "01")
+ }
+
+ private func bid64_to_uint16_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint16_xint() {
+ self.bid64_to_uint16_xint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint16_xint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint16_xint("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_uint16_xint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint16_xint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_uint16_xint("0", "[306BA418874DA400]", "32766", "20")
+ self.bid64_to_uint16_xint("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_uint16_xint("0", "[306BA42FCFC48C00]", "32767", "20")
+ self.bid64_to_uint16_xint("0", "[306BA43B74000000]", "32768", "00")
+ self.bid64_to_uint16_xint("0", "[306BA447183B7400]", "32768", "20")
+ self.bid64_to_uint16_xint("0", "[306BA452BC76E800]", "32769", "00")
+ self.bid64_to_uint16_xint("0", "[3077485F9F891800]", "65535", "00")
+ self.bid64_to_uint16_xint("0", "[3077486B43C48C00]", "65535", "20")
+ self.bid64_to_uint16_xint("0", "[30774876E8000000]", "32768", "01")
+ self.bid64_to_uint16_xint("0", "[307748828C3B7400]", "32768", "01")
+ self.bid64_to_uint16_xint("0", "[3077488E3076E800]", "32768", "01")
+ self.bid64_to_uint16_xint("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_uint16_xint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint16_xint("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_uint16_xint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_uint16_xint("0", "[31A000000004FFF1]", "32766", "20")
+ self.bid64_to_uint16_xint("0", "[31A000000004FFFB]", "32767", "20")
+ self.bid64_to_uint16_xint("0", "[31A0000000050005]", "32768", "20")
+ self.bid64_to_uint16_xint("0", "[31A000000009FFFB]", "65535", "20")
+ self.bid64_to_uint16_xint("0", "[31A00000000A0005]", "32768", "01")
+ self.bid64_to_uint16_xint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint16_xint("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_uint16_xint("0", "[31C0000000008000]", "32768", "00")
+ self.bid64_to_uint16_xint("0", "[31C0000000008001]", "32769", "00")
+ self.bid64_to_uint16_xint("0", "[31C000000000FFFF]", "65535", "00")
+ self.bid64_to_uint16_xint("0", "[31C0000000010000]", "32768", "01")
+ self.bid64_to_uint16_xint("0", "[31C0000000010001]", "32768", "01")
+ self.bid64_to_uint16_xint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint16_xint("0", "65536", "32768", "01")
+ self.bid64_to_uint16_xint("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_uint16_xint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint16_xint("0", "[7800000000000000]", "32768", "01")
+ self.bid64_to_uint16_xint("0", "[7c00000000000000]", "32768", "01")
+ self.bid64_to_uint16_xint("0", "[7e00000000000000]", "32768", "01")
+ self.bid64_to_uint16_xint("0", "[d7abf7fffeffbecc]", "32768", "01")
+ }
+
+ private func bid64_to_uint16_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint16_xrnint() {
+ self.bid64_to_uint16_xrnint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint16_xrnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint16_xrnint("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint16_xrnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint16_xrnint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_uint16_xrnint("0", "[306BA418874DA400]", "32766", "20")
+ self.bid64_to_uint16_xrnint("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_uint16_xrnint("0", "[306BA42FCFC48C00]", "32768", "20")
+ self.bid64_to_uint16_xrnint("0", "[306BA43B74000000]", "32768", "00")
+ self.bid64_to_uint16_xrnint("0", "[306BA447183B7400]", "32768", "20")
+ self.bid64_to_uint16_xrnint("0", "[306BA452BC76E800]", "32769", "00")
+ self.bid64_to_uint16_xrnint("0", "[3077485F9F891800]", "65535", "00")
+ self.bid64_to_uint16_xrnint("0", "[3077486B43C48C00]", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[30774876E8000000]", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[307748828C3B7400]", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[3077488E3076E800]", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint16_xrnint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint16_xrnint("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint16_xrnint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_uint16_xrnint("0", "[31A000000004FFF1]", "32766", "20")
+ self.bid64_to_uint16_xrnint("0", "[31A000000004FFFB]", "32768", "20")
+ self.bid64_to_uint16_xrnint("0", "[31A0000000050005]", "32768", "20")
+ self.bid64_to_uint16_xrnint("0", "[31A000000009FFFB]", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[31A00000000A0005]", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint16_xrnint("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_uint16_xrnint("0", "[31C0000000008000]", "32768", "00")
+ self.bid64_to_uint16_xrnint("0", "[31C0000000008001]", "32769", "00")
+ self.bid64_to_uint16_xrnint("0", "[31C000000000FFFF]", "65535", "00")
+ self.bid64_to_uint16_xrnint("0", "[31C0000000010000]", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[31C0000000010001]", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint16_xrnint("0", "65536", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint16_xrnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint16_xrnint("0", "[7800000000000000]", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[7c00000000000000]", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[7e00000000000000]", "32768", "01")
+ self.bid64_to_uint16_xrnint("0", "[fffd7fdefd3de9fd]", "32768", "01")
+ }
+
+ private func bid64_to_uint16_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint16_xrninta() {
+ self.bid64_to_uint16_xrninta("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_uint16_xrninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint16_xrninta("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint16_xrninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint16_xrninta("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_uint16_xrninta("0", "[306BA418874DA400]", "32767", "20")
+ self.bid64_to_uint16_xrninta("0", "[306BA4242B891800]", "32767", "00")
+ self.bid64_to_uint16_xrninta("0", "[306BA42FCFC48C00]", "32768", "20")
+ self.bid64_to_uint16_xrninta("0", "[306BA43B74000000]", "32768", "00")
+ self.bid64_to_uint16_xrninta("0", "[306BA447183B7400]", "32769", "20")
+ self.bid64_to_uint16_xrninta("0", "[306BA452BC76E800]", "32769", "00")
+ self.bid64_to_uint16_xrninta("0", "[3077485F9F891800]", "65535", "00")
+ self.bid64_to_uint16_xrninta("0", "[3077486B43C48C00]", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[30774876E8000000]", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[307748828C3B7400]", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[3077488E3076E800]", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint16_xrninta("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_uint16_xrninta("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint16_xrninta("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_uint16_xrninta("0", "[31A000000004FFF1]", "32767", "20")
+ self.bid64_to_uint16_xrninta("0", "[31A000000004FFFB]", "32768", "20")
+ self.bid64_to_uint16_xrninta("0", "[31A0000000050005]", "32769", "20")
+ self.bid64_to_uint16_xrninta("0", "[31A000000009FFFB]", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[31A00000000A0005]", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint16_xrninta("0", "[31C0000000007FFF]", "32767", "00")
+ self.bid64_to_uint16_xrninta("0", "[31C0000000008000]", "32768", "00")
+ self.bid64_to_uint16_xrninta("0", "[31C0000000008001]", "32769", "00")
+ self.bid64_to_uint16_xrninta("0", "[31C000000000FFFF]", "65535", "00")
+ self.bid64_to_uint16_xrninta("0", "[31C0000000010000]", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[31C0000000010001]", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint16_xrninta("0", "65536", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint16_xrninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint16_xrninta("0", "[7800000000000000]", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[7c00000000000000]", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[7e00000000000000]", "32768", "01")
+ self.bid64_to_uint16_xrninta("0", "[f937520dc082ee39]", "32768", "01")
+ }
+
+ private func bid64_to_uint16_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint32_ceil() {
+ self.bid64_to_uint32_ceil("0", "-0", "0", "00")
+ self.bid64_to_uint32_ceil("0", "0", "0", "00")
+ self.bid64_to_uint32_ceil("0", "[0040608004203200]", "1", "00")
+ self.bid64_to_uint32_ceil("0", "[0cd74d2b4da823b5]", "1", "00")
+ self.bid64_to_uint32_ceil("0", "[1870ed62907dff52]", "1", "00")
+ self.bid64_to_uint32_ceil("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_uint32_ceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint32_ceil("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint32_ceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint32_ceil("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_uint32_ceil("0", "[30d4552ed1f373af]", "57231592", "00")
+ self.bid64_to_uint32_ceil("0", "[3107A11FFFE91CA0]", "2147483647", "00")
+ self.bid64_to_uint32_ceil("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_uint32_ceil("0", "[3107A11FFFF85EE0]", "2147483648", "00")
+ self.bid64_to_uint32_ceil("0", "[3107A12000000000]", "2147483648", "00")
+ self.bid64_to_uint32_ceil("0", "[3107A1200007A120]", "2147483649", "00")
+ self.bid64_to_uint32_ceil("0", "[3107A120000F4240]", "2147483649", "00")
+ self.bid64_to_uint32_ceil("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint32_ceil("0", "[310F423FFFF0BDC0]", "4294967295", "00")
+ self.bid64_to_uint32_ceil("0", "[310F423FFFF85EE0]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[310F424000000000]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[310F42400007A120]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[310F4240000F4240]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[3111463c03c9bda5]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[3111C37937E08000]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[3120843080810090]", "1453438493", "00")
+ self.bid64_to_uint32_ceil("0", "[31271AFD498AB610]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31271AFD498B7960]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31271AFD498C3CB0]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31271AFD498D0000]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31271AFD498DC350]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31271AFD498E86A0]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31271AFD498F49F0]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint32_ceil("0", "[3160004110000280]", "279441311", "00")
+ self.bid64_to_uint32_ceil("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_uint32_ceil("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint32_ceil("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_uint32_ceil("0", "[31A00004FFFFFFF1]", "2147483647", "00")
+ self.bid64_to_uint32_ceil("0", "[31A00004FFFFFFFB]", "2147483648", "00")
+ self.bid64_to_uint32_ceil("0", "[31A0000500000005]", "2147483649", "00")
+ self.bid64_to_uint32_ceil("0", "[31A00009FFFFFFFB]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31A0000A00000005]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31A0002E90EDCFF1]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31A0002E90EDCFFB]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31A0002E90EDD005]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31A0002E90EDD00F]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint32_ceil("0", "[31c0000018028000]", "402817024", "00")
+ self.bid64_to_uint32_ceil("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_uint32_ceil("0", "[31C0000080000000]", "2147483648", "00")
+ self.bid64_to_uint32_ceil("0", "[31C0000080000001]", "2147483649", "00")
+ self.bid64_to_uint32_ceil("0", "[31C00000FFFFFFFF]", "4294967295", "00")
+ self.bid64_to_uint32_ceil("0", "[31C0000100000000]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31C0000100000001]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31c0000180410065]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31C00004A817C7FF]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[31C00004A817C801]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint32_ceil("0", "[3200000000080602]", "52582600", "00")
+ self.bid64_to_uint32_ceil("0", "[3200000002219404]", "3575501200", "00")
+ self.bid64_to_uint32_ceil("0", "[3230858555534678]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint32_ceil("0", "[32E0000000000005]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[3300000000000002]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[3d5e6fd8129ef3e3]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[4d9de60827c2283b]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[4fe5858d11e51985]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[54540aaa2a5fa888]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint32_ceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint32_ceil("0", "[6d93752822d94af2]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[7800000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[7c00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[7e00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[b05d32dd64a32c6b]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[b10b708e86602a58]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[b51f164d75483625]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[bb03191453d143ea]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[cc5bad6f533aa2e4]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[d0e7656462c2126e]", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "[e0a24502dd0784c2]", "0", "00")
+ self.bid64_to_uint32_ceil("0", "[e6cecf55c6bcf28c]", "0", "00")
+ self.bid64_to_uint32_ceil("0", "-Infinity", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "QNaN", "2147483648", "01")
+ self.bid64_to_uint32_ceil("0", "SNaN", "2147483648", "01")
+ }
+
+ private func bid64_to_uint32_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint32_floor() {
+ self.bid64_to_uint32_floor("0", "-0", "0", "00")
+ self.bid64_to_uint32_floor("0", "0", "0", "00")
+ self.bid64_to_uint32_floor("0", "[0a1347edb45953a5]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[0a1c000000000000]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[0a4395f2cea00b3b]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[165010030ee0bdcb]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[17e75b3a3feea522]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[22162c2462fb48bf]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[24a90b98b5deb73e]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint32_floor("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_uint32_floor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint32_floor("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_uint32_floor("0", "[30af7c3a1f4d0f32]", "4358713", "00")
+ self.bid64_to_uint32_floor("0", "[3107A11FFFE91CA0]", "2147483646", "00")
+ self.bid64_to_uint32_floor("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_uint32_floor("0", "[3107A11FFFF85EE0]", "2147483647", "00")
+ self.bid64_to_uint32_floor("0", "[3107A12000000000]", "2147483648", "00")
+ self.bid64_to_uint32_floor("0", "[3107A1200007A120]", "2147483648", "00")
+ self.bid64_to_uint32_floor("0", "[3107A120000F4240]", "2147483649", "00")
+ self.bid64_to_uint32_floor("0", "[310982a00b111c00]", "2676898682", "00")
+ self.bid64_to_uint32_floor("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint32_floor("0", "[310F423FFFF0BDC0]", "4294967295", "00")
+ self.bid64_to_uint32_floor("0", "[310F423FFFF85EE0]", "4294967295", "00")
+ self.bid64_to_uint32_floor("0", "[310F424000000000]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[310F42400007A120]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[310F4240000F4240]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[310f64eb00b282a1]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[3111C37937E08000]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31271AFD498AB610]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31271AFD498B7960]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31271AFD498C3CB0]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31271AFD498D0000]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31271AFD498DC350]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31271AFD498E86A0]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31271AFD498F49F0]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_uint32_floor("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_uint32_floor("0", "[31A00004FFFFFFF1]", "2147483646", "00")
+ self.bid64_to_uint32_floor("0", "[31A00004FFFFFFFB]", "2147483647", "00")
+ self.bid64_to_uint32_floor("0", "[31A0000500000005]", "2147483648", "00")
+ self.bid64_to_uint32_floor("0", "[31A00009FFFFFFFB]", "4294967295", "00")
+ self.bid64_to_uint32_floor("0", "[31A0000A00000005]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31A0002E90EDCFF1]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31A0002E90EDCFFB]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31A0002E90EDD005]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31A0002E90EDD00F]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint32_floor("0", "[31c0000000002821]", "10273", "00")
+ self.bid64_to_uint32_floor("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_uint32_floor("0", "[31C0000080000000]", "2147483648", "00")
+ self.bid64_to_uint32_floor("0", "[31C0000080000001]", "2147483649", "00")
+ self.bid64_to_uint32_floor("0", "[31C00000FFFFFFFF]", "4294967295", "00")
+ self.bid64_to_uint32_floor("0", "[31C0000100000000]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31C0000100000001]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31C00004A817C7FF]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[31C00004A817C801]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint32_floor("0", "[3200000000a100c4]", "1055149200", "00")
+ self.bid64_to_uint32_floor("0", "[3200000004080240]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint32_floor("0", "[32E0000000000005]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[3300000000000002]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[4374d7ba142dc4c5]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[45a7141d27257073]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[460a0a8000100900]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[771926b0a40c1218]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[7800000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[7b600d8770a2c6c1]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[7c00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[7e00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[9d60000000000000]", "0", "00")
+ self.bid64_to_uint32_floor("0", "[b0bde95b0b7c86d2]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[cbffffaffeffffbf]", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "[df20000000000000]", "0", "00")
+ self.bid64_to_uint32_floor("0", "-Infinity", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "Infinity", "2147483648", "01")
+ self.bid64_to_uint32_floor("0", "QNaN", "2147483648", "01")
+ }
+
+ private func bid64_to_uint32_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint32_int() {
+ self.bid64_to_uint32_int("0", "0", "0", "00")
+ self.bid64_to_uint32_int("0", "-0.000E0", "0", "00")
+ self.bid64_to_uint32_int("0", "[0100004030000050]", "0", "00")
+ self.bid64_to_uint32_int("0", "[065d5f850dbf0596]", "0", "00")
+ self.bid64_to_uint32_int("0", "[0be1015389fd700f]", "0", "00")
+ self.bid64_to_uint32_int("0", "[0ef8000000000000]", "0", "00")
+ self.bid64_to_uint32_int("0", "[0f83000000000000]", "0", "00")
+ self.bid64_to_uint32_int("0", "[2912e034166b2a53]", "0", "00")
+ self.bid64_to_uint32_int("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint32_int("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint32_int("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_uint32_int("0", "[300202403045a510]", "5", "00")
+ self.bid64_to_uint32_int("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint32_int("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_uint32_int("0", "[3107A11FFFE91CA0]", "2147483646", "00")
+ self.bid64_to_uint32_int("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_uint32_int("0", "[3107A11FFFF85EE0]", "2147483647", "00")
+ self.bid64_to_uint32_int("0", "[3107A12000000000]", "2147483648", "00")
+ self.bid64_to_uint32_int("0", "[3107A1200007A120]", "2147483648", "00")
+ self.bid64_to_uint32_int("0", "[3107A120000F4240]", "2147483649", "00")
+ self.bid64_to_uint32_int("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint32_int("0", "[310F423FFFF0BDC0]", "4294967295", "00")
+ self.bid64_to_uint32_int("0", "[310F423FFFF85EE0]", "4294967295", "00")
+ self.bid64_to_uint32_int("0", "[310F424000000000]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[310F42400007A120]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[310F4240000F4240]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[3111C37937E08000]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[311cf32120d60503]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31271AFD498AB610]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31271AFD498B7960]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31271AFD498C3CB0]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31271AFD498D0000]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31271AFD498DC350]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31271AFD498E86A0]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31271AFD498F49F0]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_uint32_int("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint32_int("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_uint32_int("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_uint32_int("0", "[31A00004FFFFFFF1]", "2147483646", "00")
+ self.bid64_to_uint32_int("0", "[31A00004FFFFFFFB]", "2147483647", "00")
+ self.bid64_to_uint32_int("0", "[31A0000500000005]", "2147483648", "00")
+ self.bid64_to_uint32_int("0", "[31A00009FFFFFFFB]", "4294967295", "00")
+ self.bid64_to_uint32_int("0", "[31A0000A00000005]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31A0002E90EDCFF1]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31A0002E90EDCFFB]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31A0002E90EDD005]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31A0002E90EDD00F]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint32_int("0", "[31c000001e028000]", "503480320", "00")
+ self.bid64_to_uint32_int("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_uint32_int("0", "[31C0000080000000]", "2147483648", "00")
+ self.bid64_to_uint32_int("0", "[31C0000080000001]", "2147483649", "00")
+ self.bid64_to_uint32_int("0", "[31C00000FFFFFFFF]", "4294967295", "00")
+ self.bid64_to_uint32_int("0", "[31C0000100000000]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31C0000100000001]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31C00004A817C7FF]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[31C00004A817C801]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint32_int("0", "[32000000000000a0]", "16000", "00")
+ self.bid64_to_uint32_int("0", "[3200000004010084]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint32_int("0", "[32E0000000000005]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[3300000000000002]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[3c0bc042e540295f]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[3f00000000000000]", "0", "00")
+ self.bid64_to_uint32_int("0", "[43c075645356b2e2]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[556703de2b973296]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[68b77d4bed1ad8ea]", "0", "00")
+ self.bid64_to_uint32_int("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_uint32_int("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint32_int("0", "[7800000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[7c00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[7e00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[94e150e3ea62a117]", "0", "00")
+ self.bid64_to_uint32_int("0", "[b121c11a7dcedba4]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[b26a545ba441bc82]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[b4921dff9a0cb0c4]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[ec29a14e9fab44aa]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "[f5226d1a9ccc49d0]", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "-Infinity", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "Infinity", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "QNaN", "2147483648", "01")
+ self.bid64_to_uint32_int("0", "SNaN", "2147483648", "01")
+ }
+
+ private func bid64_to_uint32_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint32_rnint() {
+ self.bid64_to_uint32_rnint("0", "-0", "0", "00")
+ self.bid64_to_uint32_rnint("0", "0", "0", "00")
+ self.bid64_to_uint32_rnint("0", "[0bdc000000000000]", "0", "00")
+ self.bid64_to_uint32_rnint("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint32_rnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint32_rnint("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint32_rnint("0", "[3002a22046201210]", "7", "00")
+ self.bid64_to_uint32_rnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint32_rnint("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_uint32_rnint("0", "[3107A11FFFE91CA0]", "2147483646", "00")
+ self.bid64_to_uint32_rnint("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_uint32_rnint("0", "[3107A11FFFF85EE0]", "2147483648", "00")
+ self.bid64_to_uint32_rnint("0", "[3107A12000000000]", "2147483648", "00")
+ self.bid64_to_uint32_rnint("0", "[3107A1200007A120]", "2147483648", "00")
+ self.bid64_to_uint32_rnint("0", "[3107A120000F4240]", "2147483649", "00")
+ self.bid64_to_uint32_rnint("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint32_rnint("0", "[310F423FFFF0BDC0]", "4294967295", "00")
+ self.bid64_to_uint32_rnint("0", "[310F423FFFF85EE0]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[310F424000000000]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[310F42400007A120]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[310F4240000F4240]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[3111C37937E08000]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[311838c94bd40627]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31271AFD498AB610]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31271AFD498B7960]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31271AFD498C3CB0]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31271AFD498D0000]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31271AFD498DC350]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31271AFD498E86A0]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31271AFD498F49F0]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint32_rnint("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint32_rnint("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint32_rnint("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_uint32_rnint("0", "[31A00004FFFFFFF1]", "2147483646", "00")
+ self.bid64_to_uint32_rnint("0", "[31A00004FFFFFFFB]", "2147483648", "00")
+ self.bid64_to_uint32_rnint("0", "[31A0000500000005]", "2147483648", "00")
+ self.bid64_to_uint32_rnint("0", "[31A00009FFFFFFFB]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31A0000A00000005]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31a0001200110842]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31A0002E90EDCFF1]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31A0002E90EDCFFB]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31A0002E90EDD005]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31A0002E90EDD00F]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint32_rnint("0", "[31c0000020208800]", "539002880", "00")
+ self.bid64_to_uint32_rnint("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_uint32_rnint("0", "[31C0000080000000]", "2147483648", "00")
+ self.bid64_to_uint32_rnint("0", "[31C0000080000001]", "2147483649", "00")
+ self.bid64_to_uint32_rnint("0", "[31C00000FFFFFFFF]", "4294967295", "00")
+ self.bid64_to_uint32_rnint("0", "[31C0000100000000]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31C0000100000001]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31C00004A817C7FF]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[31C00004A817C801]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint32_rnint("0", "[3200000000800080]", "838873600", "00")
+ self.bid64_to_uint32_rnint("0", "[3240000000020000]", "1310720000", "00")
+ self.bid64_to_uint32_rnint("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint32_rnint("0", "[32E0000000000005]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[3300000000000002]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[3918b3d746755017]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[3c58eb0ec1edf206]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[4576e95ce725795f]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[58a98d8aaee9fa38]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[6bf1ee38bc668ba4]", "1", "00")
+ self.bid64_to_uint32_rnint("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint32_rnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint32_rnint("0", "[71c9ed9627408ad3]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[7800000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[7c00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[7e00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[8043a21ae51c030d]", "0", "00")
+ self.bid64_to_uint32_rnint("0", "[889c4e09b23d45df]", "0", "00")
+ self.bid64_to_uint32_rnint("0", "[aa4651643ea95611]", "0", "00")
+ self.bid64_to_uint32_rnint("0", "[afc9f37a7f55335f]", "0", "00")
+ self.bid64_to_uint32_rnint("0", "[afdb7c8477efcf9f]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[afffdfffb7fff4ea]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[b1048d7b664c5e37]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[b64648d22dd86e85]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[c3fbcab9f88bc074]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[e06559b99f20269b]", "0", "00")
+ self.bid64_to_uint32_rnint("0", "[f592fa8e00efb451]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "[fbfffeef77fd7eda]", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "-Infinity", "2147483648", "01")
+ self.bid64_to_uint32_rnint("0", "SNaN", "2147483648", "01")
+ }
+
+ private func bid64_to_uint32_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint32_rninta() {
+ self.bid64_to_uint32_rninta("0", "-0", "0", "00")
+ self.bid64_to_uint32_rninta("0", "0", "0", "00")
+ self.bid64_to_uint32_rninta("0", "[0100401100540000]", "0", "00")
+ self.bid64_to_uint32_rninta("0", "[2df05962e0a1cb2a]", "0", "00")
+ self.bid64_to_uint32_rninta("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_uint32_rninta("0", "[2fdfabfce77ff9bf]", "1", "00")
+ self.bid64_to_uint32_rninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint32_rninta("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint32_rninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint32_rninta("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_uint32_rninta("0", "[3107A11FFFE91CA0]", "2147483647", "00")
+ self.bid64_to_uint32_rninta("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_uint32_rninta("0", "[3107A11FFFF85EE0]", "2147483648", "00")
+ self.bid64_to_uint32_rninta("0", "[3107A12000000000]", "2147483648", "00")
+ self.bid64_to_uint32_rninta("0", "[3107A1200007A120]", "2147483649", "00")
+ self.bid64_to_uint32_rninta("0", "[3107A120000F4240]", "2147483649", "00")
+ self.bid64_to_uint32_rninta("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint32_rninta("0", "[310F423FFFF0BDC0]", "4294967295", "00")
+ self.bid64_to_uint32_rninta("0", "[310F423FFFF85EE0]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[310F424000000000]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[310F42400007A120]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[310F4240000F4240]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31114892294336c5]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[3111C37937E08000]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31271AFD498AB610]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31271AFD498B7960]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31271AFD498C3CB0]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31271AFD498D0000]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31271AFD498DC350]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31271AFD498E86A0]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31271AFD498F49F0]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint32_rninta("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_uint32_rninta("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint32_rninta("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_uint32_rninta("0", "[31A00004FFFFFFF1]", "2147483647", "00")
+ self.bid64_to_uint32_rninta("0", "[31A00004FFFFFFFB]", "2147483648", "00")
+ self.bid64_to_uint32_rninta("0", "[31A0000500000005]", "2147483649", "00")
+ self.bid64_to_uint32_rninta("0", "[31A00009FFFFFFFB]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31A0000A00000005]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31a00010a0058402]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31A0002E90EDCFF1]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31A0002E90EDCFFB]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31A0002E90EDD005]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31A0002E90EDD00F]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint32_rninta("0", "[31c0000000080011]", "524305", "00")
+ self.bid64_to_uint32_rninta("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_uint32_rninta("0", "[31C0000080000000]", "2147483648", "00")
+ self.bid64_to_uint32_rninta("0", "[31C0000080000001]", "2147483649", "00")
+ self.bid64_to_uint32_rninta("0", "[31C00000FFFFFFFF]", "4294967295", "00")
+ self.bid64_to_uint32_rninta("0", "[31C0000100000000]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31C0000100000001]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31C00004A817C7FF]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[31C00004A817C801]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint32_rninta("0", "[3200000000c31000]", "1278361600", "00")
+ self.bid64_to_uint32_rninta("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint32_rninta("0", "[32E0000000000005]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[3300000000000002]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[4200000305000c14]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[492f7a1b696b464f]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[56d363463d258966]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[57a789f79320d8f5]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[5d8b2b86278cf638]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[5feda7983778e70e]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[616dbb0df1fc7de0]", "0", "00")
+ self.bid64_to_uint32_rninta("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint32_rninta("0", "[6c39202e623d9f3f]", "932405782", "00")
+ self.bid64_to_uint32_rninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint32_rninta("0", "[6df1acdf48b617f2]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[7800000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[7c00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[7e00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[840476e3e0e003d0]", "0", "00")
+ self.bid64_to_uint32_rninta("0", "[ae60000000000000]", "0", "00")
+ self.bid64_to_uint32_rninta("0", "[afcfde6e7fbdb6ed]", "0", "00")
+ self.bid64_to_uint32_rninta("0", "[afd5eb6a73cf8a02]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[b0ee93d94e65ab58]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[b116637842ca2485]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[ba87dda67586c42c]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[c1279fe7c8c7fd19]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[d940e55bbc281ba8]", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "[e7ead64fe78f34da]", "0", "00")
+ self.bid64_to_uint32_rninta("0", "-Infinity", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "Infinity", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "QNaN", "2147483648", "01")
+ self.bid64_to_uint32_rninta("0", "SNaN", "2147483648", "01")
+ }
+
+ private func bid64_to_uint32_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint32_xceil() {
+ self.bid64_to_uint32_xceil("0", "-0", "0", "00")
+ self.bid64_to_uint32_xceil("0", "0", "0", "00")
+ self.bid64_to_uint32_xceil("0", "-0.00001100000E0", "0", "20")
+ self.bid64_to_uint32_xceil("0", "[0bd8000000000000]", "1", "20")
+ self.bid64_to_uint32_xceil("0", "[0dbd000000000000]", "1", "20")
+ self.bid64_to_uint32_xceil("0", "+1001010.11000001110E0", "1001011", "20")
+ self.bid64_to_uint32_xceil("0", "+1001100.01E0", "1001101", "20")
+ self.bid64_to_uint32_xceil("0", "+1.110010111110E0", "2", "20")
+ self.bid64_to_uint32_xceil("0", "[158490f5efd0427f]", "1", "20")
+ self.bid64_to_uint32_xceil("0", "[24b59741963b26bb]", "1", "20")
+ self.bid64_to_uint32_xceil("0", "+2654674.764665E0", "2654675", "20")
+ self.bid64_to_uint32_xceil("0", "[2fbbb3ac898ca96a]", "1", "20")
+ self.bid64_to_uint32_xceil("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_uint32_xceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint32_xceil("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint32_xceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint32_xceil("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_uint32_xceil("0", "[3031521002800c10]", "488", "20")
+ self.bid64_to_uint32_xceil("0", "[3107A11FFFE91CA0]", "2147483647", "20")
+ self.bid64_to_uint32_xceil("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_uint32_xceil("0", "[3107A11FFFF85EE0]", "2147483648", "20")
+ self.bid64_to_uint32_xceil("0", "[3107A12000000000]", "2147483648", "00")
+ self.bid64_to_uint32_xceil("0", "[3107A1200007A120]", "2147483649", "20")
+ self.bid64_to_uint32_xceil("0", "[3107A120000F4240]", "2147483649", "00")
+ self.bid64_to_uint32_xceil("0", "[310b010c4f03fa83]", "3097377121", "20")
+ self.bid64_to_uint32_xceil("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint32_xceil("0", "[310F423FFFF0BDC0]", "4294967295", "00")
+ self.bid64_to_uint32_xceil("0", "[310F423FFFF85EE0]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[310F424000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[310F42400007A120]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[310F4240000F4240]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[3111C37937E08000]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[3118809074406804]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31271AFD498AB610]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31271AFD498B7960]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31271AFD498C3CB0]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31271AFD498D0000]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31271AFD498DC350]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31271AFD498E86A0]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31271AFD498F49F0]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint32_xceil("0", "[316000bc79270184]", "809486452", "20")
+ self.bid64_to_uint32_xceil("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_uint32_xceil("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint32_xceil("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_uint32_xceil("0", "[31A00004FFFFFFF1]", "2147483647", "20")
+ self.bid64_to_uint32_xceil("0", "[31A00004FFFFFFFB]", "2147483648", "20")
+ self.bid64_to_uint32_xceil("0", "[31A0000500000005]", "2147483649", "20")
+ self.bid64_to_uint32_xceil("0", "[31A00009FFFFFFFB]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31A0000A00000005]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31A0002E90EDCFF1]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31A0002E90EDCFFB]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31A0002E90EDD005]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31A0002E90EDD00F]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint32_xceil("0", "[31c0000000021560]", "136544", "00")
+ self.bid64_to_uint32_xceil("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_uint32_xceil("0", "[31C0000080000000]", "2147483648", "00")
+ self.bid64_to_uint32_xceil("0", "[31C0000080000001]", "2147483649", "00")
+ self.bid64_to_uint32_xceil("0", "[31C00000FFFFFFFF]", "4294967295", "00")
+ self.bid64_to_uint32_xceil("0", "[31C0000100000000]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31C0000100000001]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31C00004A817C7FF]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[31C00004A817C801]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint32_xceil("0", "[3200000000048f90]", "29889600", "00")
+ self.bid64_to_uint32_xceil("0", "[3200000004012020]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint32_xceil("0", "[32E0000000000005]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[3300000000000002]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[3b80000000000000]", "0", "00")
+ self.bid64_to_uint32_xceil("0", "[3be6fb7e1da2d7aa]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[4c0066cf3f84ed72]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[52ef28dbfd349db0]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "+55769896.9896E0", "55769897", "20")
+ self.bid64_to_uint32_xceil("0", "[642024bcc5e001c1]", "1", "20")
+ self.bid64_to_uint32_xceil("0", "[69ce6fc2e77f766a]", "0", "00")
+ self.bid64_to_uint32_xceil("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint32_xceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint32_xceil("0", "[7800000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[7c00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[7e00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "+988889.898E0", "988890", "20")
+ self.bid64_to_uint32_xceil("0", "+98898.9E0", "98899", "20")
+ self.bid64_to_uint32_xceil("0", "[9ab03461b68f494d]", "0", "20")
+ self.bid64_to_uint32_xceil("0", "[a2d045c0c7a59ba7]", "0", "20")
+ self.bid64_to_uint32_xceil("0", "[b0d46815aca61ccd]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[b11b101651c42010]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[bfdfe6facfdfe3bf]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "[e5e1b239317952ba]", "0", "20")
+ self.bid64_to_uint32_xceil("0", "[ffeffffba7f7effd]", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "-Infinity", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "Infinity", "2147483648", "01")
+ self.bid64_to_uint32_xceil("0", "SNaN", "2147483648", "01")
+ }
+
+ private func bid64_to_uint32_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint32_xfloor() {
+ self.bid64_to_uint32_xfloor("0", "-0", "0", "00")
+ self.bid64_to_uint32_xfloor("0", "0", "0", "00")
+ self.bid64_to_uint32_xfloor("0", "[000000000000000a]", "0", "20")
+ self.bid64_to_uint32_xfloor("0", "[0680000000000000]", "0", "00")
+ self.bid64_to_uint32_xfloor("0", "[0698f60807896a80]", "0", "20")
+ self.bid64_to_uint32_xfloor("0", "[0a45000000000000]", "0", "20")
+ self.bid64_to_uint32_xfloor("0", "[0bc4000000000000]", "0", "20")
+ self.bid64_to_uint32_xfloor("0", "[1ea0000000000000]", "0", "00")
+ self.bid64_to_uint32_xfloor("0", "[2b20000000000000]", "0", "00")
+ self.bid64_to_uint32_xfloor("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint32_xfloor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint32_xfloor("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_uint32_xfloor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint32_xfloor("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_uint32_xfloor("0", "[302b0f322bb03f7d]", "311", "20")
+ self.bid64_to_uint32_xfloor("0", "[3048350441260471]", "2310", "20")
+ self.bid64_to_uint32_xfloor("0", "[30ba3a2d89e7c7a2]", "7382316", "20")
+ self.bid64_to_uint32_xfloor("0", "[31040b426d847b6f]", "1138279839", "20")
+ self.bid64_to_uint32_xfloor("0", "[3107A11FFFE91CA0]", "2147483646", "20")
+ self.bid64_to_uint32_xfloor("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_uint32_xfloor("0", "[3107A11FFFF85EE0]", "2147483647", "20")
+ self.bid64_to_uint32_xfloor("0", "[3107A12000000000]", "2147483648", "00")
+ self.bid64_to_uint32_xfloor("0", "[3107A1200007A120]", "2147483648", "20")
+ self.bid64_to_uint32_xfloor("0", "[3107A120000F4240]", "2147483649", "00")
+ self.bid64_to_uint32_xfloor("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint32_xfloor("0", "[310F423FFFF0BDC0]", "4294967295", "00")
+ self.bid64_to_uint32_xfloor("0", "[310F423FFFF85EE0]", "4294967295", "20")
+ self.bid64_to_uint32_xfloor("0", "[310F424000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[310F42400007A120]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[310F4240000F4240]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[3111C37937E08000]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31271AFD498AB610]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31271AFD498B7960]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31271AFD498C3CB0]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31271AFD498D0000]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31271AFD498DC350]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31271AFD498E86A0]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31271AFD498F49F0]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[3140400900410804]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_uint32_xfloor("0", "[3180000108000104]", "44291852", "20")
+ self.bid64_to_uint32_xfloor("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint32_xfloor("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_uint32_xfloor("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_uint32_xfloor("0", "[31A00004FFFFFFF1]", "2147483646", "20")
+ self.bid64_to_uint32_xfloor("0", "[31A00004FFFFFFFB]", "2147483647", "20")
+ self.bid64_to_uint32_xfloor("0", "[31A0000500000005]", "2147483648", "20")
+ self.bid64_to_uint32_xfloor("0", "[31A00009FFFFFFFB]", "4294967295", "20")
+ self.bid64_to_uint32_xfloor("0", "[31A0000A00000005]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31A0002E90EDCFF1]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31A0002E90EDCFFB]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31A0002E90EDD005]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31A0002E90EDD00F]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint32_xfloor("0", "[31c0000000208000]", "2129920", "00")
+ self.bid64_to_uint32_xfloor("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_uint32_xfloor("0", "[31C0000080000000]", "2147483648", "00")
+ self.bid64_to_uint32_xfloor("0", "[31C0000080000001]", "2147483649", "00")
+ self.bid64_to_uint32_xfloor("0", "[31C00000FFFFFFFF]", "4294967295", "00")
+ self.bid64_to_uint32_xfloor("0", "[31C0000100000000]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31C0000100000001]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31C00004A817C7FF]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[31C00004A817C801]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint32_xfloor("0", "[3200000000002088]", "832800", "00")
+ self.bid64_to_uint32_xfloor("0", "[3220000000800040]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint32_xfloor("0", "[32E0000000000005]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[3300000000000002]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[3cf926b40efa2c5c]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[54e0000000000000]", "0", "00")
+ self.bid64_to_uint32_xfloor("0", "[56b75c2b65effef4]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[57a9094f01c6e1db]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[5a00000000000000]", "0", "00")
+ self.bid64_to_uint32_xfloor("0", "[5f0df2fed859aea7]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "+696.998568667789E0", "696", "20")
+ self.bid64_to_uint32_xfloor("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_uint32_xfloor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint32_xfloor("0", "[7800000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[7c00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[7e00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "+8867697.7779E0", "8867697", "20")
+ self.bid64_to_uint32_xfloor("0", "+8.98999E0", "8", "20")
+ self.bid64_to_uint32_xfloor("0", "[89f79741994055f7]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[8ffa0fa58757b391]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "+9.998E0", "9", "20")
+ self.bid64_to_uint32_xfloor("0", "[9a724f13fd417cd4]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[9e225f4774d35269]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[a316316825ba0224]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[b9cb43de8d9c8a30]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[ca3113fe94c9c84b]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[d6848824d7e607aa]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[edeff7f5f63bfbf5]", "0", "00")
+ self.bid64_to_uint32_xfloor("0", "[f642d713e72bd43e]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "[fffeffff6bfa3dbd]", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "-Infinity", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "QNaN", "2147483648", "01")
+ self.bid64_to_uint32_xfloor("0", "SNaN", "2147483648", "01")
+ }
+
+ private func bid64_to_uint32_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint32_xint() {
+ self.bid64_to_uint32_xint("0", "-0", "0", "00")
+ self.bid64_to_uint32_xint("0", "[0160000000000000]", "0", "00")
+ self.bid64_to_uint32_xint("0", "[0200000200080080]", "0", "20")
+ self.bid64_to_uint32_xint("0", "+10.10E0", "10", "20")
+ self.bid64_to_uint32_xint("0", "[13b313d04939c429]", "0", "20")
+ self.bid64_to_uint32_xint("0", "[17a0000000000000]", "0", "00")
+ self.bid64_to_uint32_xint("0", "[1e40000000000000]", "0", "00")
+ self.bid64_to_uint32_xint("0", "+224322.22297684E0", "224322", "20")
+ self.bid64_to_uint32_xint("0", "[2b40000000000000]", "0", "00")
+ self.bid64_to_uint32_xint("0", "[2cd536da0765bba9]", "0", "20")
+ self.bid64_to_uint32_xint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint32_xint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint32_xint("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_uint32_xint("0", "[30281cc040a0d91d]", "228", "20")
+ self.bid64_to_uint32_xint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint32_xint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_uint32_xint("0", "[3107A11FFFE91CA0]", "2147483646", "20")
+ self.bid64_to_uint32_xint("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_uint32_xint("0", "[3107A11FFFF85EE0]", "2147483647", "20")
+ self.bid64_to_uint32_xint("0", "[3107A12000000000]", "2147483648", "00")
+ self.bid64_to_uint32_xint("0", "[3107A1200007A120]", "2147483648", "20")
+ self.bid64_to_uint32_xint("0", "[3107A120000F4240]", "2147483649", "00")
+ self.bid64_to_uint32_xint("0", "[310a2fcfdd4ee07a]", "2867319584", "20")
+ self.bid64_to_uint32_xint("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint32_xint("0", "[310F423FFFF0BDC0]", "4294967295", "00")
+ self.bid64_to_uint32_xint("0", "[310F423FFFF85EE0]", "4294967295", "20")
+ self.bid64_to_uint32_xint("0", "[310F424000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[310F42400007A120]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[310F4240000F4240]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[3111C37937E08000]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[311ca08bac8bbe99]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31271AFD498AB610]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31271AFD498B7960]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31271AFD498C3CB0]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31271AFD498D0000]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31271AFD498DC350]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31271AFD498E86A0]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31271AFD498F49F0]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_uint32_xint("0", "[3180000841960712]", "354600896", "20")
+ self.bid64_to_uint32_xint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint32_xint("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_uint32_xint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_uint32_xint("0", "[31A00004FFFFFFF1]", "2147483646", "20")
+ self.bid64_to_uint32_xint("0", "[31A00004FFFFFFFB]", "2147483647", "20")
+ self.bid64_to_uint32_xint("0", "[31A0000500000005]", "2147483648", "20")
+ self.bid64_to_uint32_xint("0", "[31A00009FFFFFFFB]", "4294967295", "20")
+ self.bid64_to_uint32_xint("0", "[31A0000A00000005]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31A0002E90EDCFF1]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31A0002E90EDCFFB]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31A0002E90EDD005]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31A0002E90EDD00F]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint32_xint("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_uint32_xint("0", "[31C0000080000000]", "2147483648", "00")
+ self.bid64_to_uint32_xint("0", "[31C0000080000001]", "2147483649", "00")
+ self.bid64_to_uint32_xint("0", "[31c00000908030c4]", "2424320196", "00")
+ self.bid64_to_uint32_xint("0", "[31C00000FFFFFFFF]", "4294967295", "00")
+ self.bid64_to_uint32_xint("0", "[31C0000100000000]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31C0000100000001]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31C00004A817C7FF]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[31C00004A817C801]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint32_xint("0", "[3200000000000084]", "13200", "00")
+ self.bid64_to_uint32_xint("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint32_xint("0", "[32E0000000000005]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[3300000000000002]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[394b47e276286055]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[4060000000000000]", "0", "00")
+ self.bid64_to_uint32_xint("0", "[415184d3b004bff6]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[48b687c664d1c1fc]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[4960000000000000]", "0", "00")
+ self.bid64_to_uint32_xint("0", "[4ea1f2932e5f8f68]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "+5773.42538679375337E0", "5773", "20")
+ self.bid64_to_uint32_xint("0", "+5.78248974697E0", "5", "20")
+ self.bid64_to_uint32_xint("0", "+57879896.7786686879E0", "57879896", "20")
+ self.bid64_to_uint32_xint("0", "[5a71ed2310ee21d6]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[61f257f032f7a34f]", "0", "20")
+ self.bid64_to_uint32_xint("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_uint32_xint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint32_xint("0", "[7800000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "+7958.6E0", "7958", "20")
+ self.bid64_to_uint32_xint("0", "[7c00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[7e00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[7fdefd3de9fdfff9]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[80e0000000000000]", "0", "00")
+ self.bid64_to_uint32_xint("0", "[84a0000000000000]", "0", "00")
+ self.bid64_to_uint32_xint("0", "[956f4be38b523b51]", "0", "20")
+ self.bid64_to_uint32_xint("0", "+987876.57687899E0", "987876", "20")
+ self.bid64_to_uint32_xint("0", "+9898.9E0", "9898", "20")
+ self.bid64_to_uint32_xint("0", "+99898.8E0", "99898", "20")
+ self.bid64_to_uint32_xint("0", "+99.89E0", "99", "20")
+ self.bid64_to_uint32_xint("0", "[af00000000000000]", "0", "00")
+ self.bid64_to_uint32_xint("0", "[affaa7ffdf63b4ff]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[b106030042008251]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[b7b9c10ff5b86555]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[bbe0000000000000]", "0", "00")
+ self.bid64_to_uint32_xint("0", "[c8ad82655d9a64b8]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[d2f4c7f25ccde843]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[dbe3ed7dfa69fbc5]", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "[f4c6c18af56c00fd]", "0", "00")
+ self.bid64_to_uint32_xint("0", "-Infinity", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "Infinity", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "QNaN", "2147483648", "01")
+ self.bid64_to_uint32_xint("0", "SNaN", "2147483648", "01")
+ }
+
+ private func bid64_to_uint32_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint32_xrnint() {
+ self.bid64_to_uint32_xrnint("0", "-0", "0", "00")
+ self.bid64_to_uint32_xrnint("0", "0", "0", "00")
+ self.bid64_to_uint32_xrnint("0", "[0000000000000000]", "0", "00")
+ self.bid64_to_uint32_xrnint("0", "[0060602b261c0e10]", "0", "20")
+ self.bid64_to_uint32_xrnint("0", "+100.10000E0", "100", "20")
+ self.bid64_to_uint32_xrnint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint32_xrnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint32_xrnint("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint32_xrnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint32_xrnint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_uint32_xrnint("0", "[30beb9176f7f5028]", "8647760", "20")
+ self.bid64_to_uint32_xrnint("0", "[3100000981101402]", "40820", "20")
+ self.bid64_to_uint32_xrnint("0", "[310711689229aca1]", "1989465663", "20")
+ self.bid64_to_uint32_xrnint("0", "[3107A11FFFE91CA0]", "2147483646", "20")
+ self.bid64_to_uint32_xrnint("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_uint32_xrnint("0", "[3107A11FFFF85EE0]", "2147483648", "20")
+ self.bid64_to_uint32_xrnint("0", "[3107A12000000000]", "2147483648", "00")
+ self.bid64_to_uint32_xrnint("0", "[3107A1200007A120]", "2147483648", "20")
+ self.bid64_to_uint32_xrnint("0", "[3107A120000F4240]", "2147483649", "00")
+ self.bid64_to_uint32_xrnint("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint32_xrnint("0", "[310F423FFFF0BDC0]", "4294967295", "00")
+ self.bid64_to_uint32_xrnint("0", "[310F423FFFF85EE0]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[310F424000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[310F42400007A120]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[310F4240000F4240]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[3111C37937E08000]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31271AFD498AB610]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31271AFD498B7960]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31271AFD498C3CB0]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31271AFD498D0000]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31271AFD498DC350]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31271AFD498E86A0]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31271AFD498F49F0]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint32_xrnint("0", "[3160020991811314]", "2240119117", "20")
+ self.bid64_to_uint32_xrnint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint32_xrnint("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint32_xrnint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_uint32_xrnint("0", "[31a0000084406050]", "221881147", "20")
+ self.bid64_to_uint32_xrnint("0", "[31a0000203480215]", "864498536", "20")
+ self.bid64_to_uint32_xrnint("0", "[31A00004FFFFFFF1]", "2147483646", "20")
+ self.bid64_to_uint32_xrnint("0", "[31A00004FFFFFFFB]", "2147483648", "20")
+ self.bid64_to_uint32_xrnint("0", "[31A0000500000005]", "2147483648", "20")
+ self.bid64_to_uint32_xrnint("0", "[31A00009FFFFFFFB]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31A0000A00000005]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31A0002E90EDCFF1]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31A0002E90EDCFFB]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31A0002E90EDD005]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31A0002E90EDD00F]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint32_xrnint("0", "[31c0000000208800]", "2131968", "00")
+ self.bid64_to_uint32_xrnint("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_uint32_xrnint("0", "[31C0000080000000]", "2147483648", "00")
+ self.bid64_to_uint32_xrnint("0", "[31C0000080000001]", "2147483649", "00")
+ self.bid64_to_uint32_xrnint("0", "[31C00000FFFFFFFF]", "4294967295", "00")
+ self.bid64_to_uint32_xrnint("0", "[31C0000100000000]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31C0000100000001]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31C00004A817C7FF]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[31C00004A817C801]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint32_xrnint("0", "[3200000000084001]", "54067300", "00")
+ self.bid64_to_uint32_xrnint("0", "[3200000004203058]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint32_xrnint("0", "[32E0000000000005]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[3300000000000002]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[41330590e91d1731]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[532463e3715b6aba]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[59cebdde0d4f696a]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "+624833426.39852995252439363864754E0", "624833426", "20")
+ self.bid64_to_uint32_xrnint("0", "[6bf26008ead2dde1]", "1", "20")
+ self.bid64_to_uint32_xrnint("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint32_xrnint("0", "[6c409ab98b80b44c]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint32_xrnint("0", "[74c1267c7987e9b8]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[76e8e6c924c80b08]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[7800000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "+78859579.579798967669E0", "78859580", "20")
+ self.bid64_to_uint32_xrnint("0", "[7c00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[7e00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[9563d826744229d3]", "0", "20")
+ self.bid64_to_uint32_xrnint("0", "+969759.9E0", "969760", "20")
+ self.bid64_to_uint32_xrnint("0", "[a19c9debc582736e]", "0", "20")
+ self.bid64_to_uint32_xrnint("0", "[afd9a1a2b0061eb6]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[b0001b0ca85f8026]", "0", "20")
+ self.bid64_to_uint32_xrnint("0", "[b0abedc30e0546df]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[b11613e7b5d43c2f]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[b6044d3965b4319a]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[b7c11619c660799c]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[cc00000000000000]", "0", "00")
+ self.bid64_to_uint32_xrnint("0", "[d72c5897aa71d926]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[dcd98a735a30b11f]", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "[e4c5b75f5e09e3b7]", "0", "00")
+ self.bid64_to_uint32_xrnint("0", "-Infinity", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "Infinity", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "QNaN", "2147483648", "01")
+ self.bid64_to_uint32_xrnint("0", "SNaN", "2147483648", "01")
+ }
+
+ private func bid64_to_uint32_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint32_xrninta() {
+ self.bid64_to_uint32_xrninta("0", "-0", "0", "00")
+ self.bid64_to_uint32_xrninta("0", "0", "0", "00")
+ self.bid64_to_uint32_xrninta("0", "[0000000000010001]", "0", "20")
+ self.bid64_to_uint32_xrninta("0", "[0011e08444205160]", "0", "20")
+ self.bid64_to_uint32_xrninta("0", "[0400680c86040020]", "0", "20")
+ self.bid64_to_uint32_xrninta("0", "-1100011.01011101E0", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_uint32_xrninta("0", "[2fd62a2d03c1587e]", "1", "20")
+ self.bid64_to_uint32_xrninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint32_xrninta("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint32_xrninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint32_xrninta("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_uint32_xrninta("0", "[302dff83ac9337cc]", "394", "20")
+ self.bid64_to_uint32_xrninta("0", "[30da6cd60010b67c]", "74380158", "20")
+ self.bid64_to_uint32_xrninta("0", "[3107A11FFFE91CA0]", "2147483647", "20")
+ self.bid64_to_uint32_xrninta("0", "[3107A11FFFF0BDC0]", "2147483647", "00")
+ self.bid64_to_uint32_xrninta("0", "[3107A11FFFF85EE0]", "2147483648", "20")
+ self.bid64_to_uint32_xrninta("0", "[3107A12000000000]", "2147483648", "00")
+ self.bid64_to_uint32_xrninta("0", "[3107A1200007A120]", "2147483649", "20")
+ self.bid64_to_uint32_xrninta("0", "[3107A120000F4240]", "2147483649", "00")
+ self.bid64_to_uint32_xrninta("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint32_xrninta("0", "[310F423FFFF0BDC0]", "4294967295", "00")
+ self.bid64_to_uint32_xrninta("0", "[310F423FFFF85EE0]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[310F424000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[310F42400007A120]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[310F4240000F4240]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[3111C37937E08000]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[311b345402888323]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31271AFD498AB610]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31271AFD498B7960]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31271AFD498C3CB0]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31271AFD498D0000]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31271AFD498DC350]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31271AFD498E86A0]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31271AFD498F49F0]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint32_xrninta("0", "[3180000800910842]", "343692432", "20")
+ self.bid64_to_uint32_xrninta("0", "[3180004400822a09]", "2920663066", "20")
+ self.bid64_to_uint32_xrninta("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_uint32_xrninta("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint32_xrninta("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_uint32_xrninta("0", "[31A00004FFFFFFF1]", "2147483647", "20")
+ self.bid64_to_uint32_xrninta("0", "[31A00004FFFFFFFB]", "2147483648", "20")
+ self.bid64_to_uint32_xrninta("0", "[31A0000500000005]", "2147483649", "20")
+ self.bid64_to_uint32_xrninta("0", "[31a00009328e1052]", "3950287675", "20")
+ self.bid64_to_uint32_xrninta("0", "[31A00009FFFFFFFB]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31A0000A00000005]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31A0002E90EDCFF1]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31A0002E90EDCFFB]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31A0002E90EDD005]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31A0002E90EDD00F]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint32_xrninta("0", "[31C000007FFFFFFF]", "2147483647", "00")
+ self.bid64_to_uint32_xrninta("0", "[31C0000080000000]", "2147483648", "00")
+ self.bid64_to_uint32_xrninta("0", "[31C0000080000001]", "2147483649", "00")
+ self.bid64_to_uint32_xrninta("0", "[31C00000FFFFFFFF]", "4294967295", "00")
+ self.bid64_to_uint32_xrninta("0", "[31C0000100000000]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31C0000100000001]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31c000021a000100]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31C00004A817C7FF]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[31C00004A817C801]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint32_xrninta("0", "[3200000000901000]", "944128000", "00")
+ self.bid64_to_uint32_xrninta("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint32_xrninta("0", "[32E0000000000005]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[3300000000000002]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[3f6ffefffd79ddfd]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[41330590e91d1731]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[59cebdde0d4f696a]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint32_xrninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint32_xrninta("0", "[74c1267c7987e9b8]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[76e8e6c924c80b08]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[7800000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[7c00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[7e00000000000000]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[9563d826744229d3]", "0", "20")
+ self.bid64_to_uint32_xrninta("0", "+95664773.9E0", "95664774", "20")
+ self.bid64_to_uint32_xrninta("0", "[afc4688f430b55b8]", "0", "20")
+ self.bid64_to_uint32_xrninta("0", "[afd7ffe169523b77]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[b09f4b9771484a50]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[b11cacea85cd8c8a]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[b6044d3965b4319a]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[b7c11619c660799c]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[cc00000000000000]", "0", "00")
+ self.bid64_to_uint32_xrninta("0", "[d72c5897aa71d926]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[dcd98a735a30b11f]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "[ec6cd564e62893f4]", "0", "00")
+ self.bid64_to_uint32_xrninta("0", "[f5d9fbf6b7ebcff9]", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "-Infinity", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "QNaN", "2147483648", "01")
+ self.bid64_to_uint32_xrninta("0", "SNaN", "2147483648", "01")
+ }
+
+ private func bid64_to_uint32_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint64_ceil() {
+ self.bid64_to_uint64_ceil("0", "-0", "0", "00")
+ self.bid64_to_uint64_ceil("0", "0", "0", "00")
+ self.bid64_to_uint64_ceil("0", "+1100001.0000000011E0", "1100002", "00")
+ self.bid64_to_uint64_ceil("0", "[182e2213a080c004]", "1", "00")
+ self.bid64_to_uint64_ceil("0", "[2dacac9c59858fa2]", "1", "00")
+ self.bid64_to_uint64_ceil("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_uint64_ceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint64_ceil("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint64_ceil("0", "[2febc5fbff7ffea7]", "4", "00")
+ self.bid64_to_uint64_ceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint64_ceil("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_uint64_ceil("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[31271AFD498AB610]", "19999999999", "00")
+ self.bid64_to_uint64_ceil("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_uint64_ceil("0", "[31271AFD498C3CB0]", "20000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[31271AFD498DC350]", "20000000001", "00")
+ self.bid64_to_uint64_ceil("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_uint64_ceil("0", "[31271AFD498F49F0]", "20000000002", "00")
+ self.bid64_to_uint64_ceil("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint64_ceil("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_ceil("0", "[318C800000000032]", "35184372088833", "00")
+ self.bid64_to_uint64_ceil("0", "[319445f031b02d2a]", "57063974623102", "00")
+ self.bid64_to_uint64_ceil("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_uint64_ceil("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint64_ceil("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_uint64_ceil("0", "[31A0002E90EDCFF1]", "19999999999", "00")
+ self.bid64_to_uint64_ceil("0", "[31A0002E90EDCFFB]", "20000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[31A0002E90EDD005]", "20000000001", "00")
+ self.bid64_to_uint64_ceil("0", "[31A0002E90EDD00F]", "20000000002", "00")
+ self.bid64_to_uint64_ceil("0", "[31A1400000000005]", "35184372088833", "00")
+ self.bid64_to_uint64_ceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint64_ceil("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_uint64_ceil("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_uint64_ceil("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_ceil("0", "[31c09467eb34a2a9]", "163174048637609", "00")
+ self.bid64_to_uint64_ceil("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_ceil("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_ceil("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_ceil("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_ceil("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_uint64_ceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint64_ceil("0", "[3241842148a399c8]", "4267534641791440000", "00")
+ self.bid64_to_uint64_ceil("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[3245543DF729C000]", "15000000000000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_ceil("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_ceil("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_ceil("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_ceil("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_ceil("0", "[32471AFD498D0000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[3248E1BC9BF04000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[3259dd8fe11a2e42]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[32638D7EA4C68000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[32c0000000000000]", "0", "00")
+ self.bid64_to_uint64_ceil("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[340000000000000F]", "15000000000000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[3400000000000019]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_ceil("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[3440000000000001]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[5abfaeccd5ab94f9]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[69ea3cbdfffefff7]", "1", "00")
+ self.bid64_to_uint64_ceil("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint64_ceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint64_ceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_ceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_ceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_ceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_ceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_ceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_ceil("0", "[779b6cfa543452b9]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[7800000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[7c00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[7e00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[8286c4490b5ccf50]", "0", "00")
+ self.bid64_to_uint64_ceil("0", "[8484197d2b7e59e7]", "0", "00")
+ self.bid64_to_uint64_ceil("0", "[8b03fa15e8d50069]", "0", "00")
+ self.bid64_to_uint64_ceil("0", "[8f8a2b2cc7e5ba26]", "0", "00")
+ self.bid64_to_uint64_ceil("0", "[93cf77dab3d8c1db]", "0", "00")
+ self.bid64_to_uint64_ceil("0", "[a4337fe341efeafe]", "0", "00")
+ self.bid64_to_uint64_ceil("0", "[b1eefd7ff3a6ea5d]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[b24748f0c04f5099]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[c02f47a0f3bbb567]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[ebc5238a182e686d]", "0", "00")
+ self.bid64_to_uint64_ceil("0", "[ec4236933efa7953]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "[fffffffffeffffba]", "9223372036854775808", "01")
+ self.bid64_to_uint64_ceil("0", "QNaN", "9223372036854775808", "01")
+ }
+
+ private func bid64_to_uint64_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint64_floor() {
+ self.bid64_to_uint64_floor("0", "-0", "0", "00")
+ self.bid64_to_uint64_floor("0", "0", "0", "00")
+ self.bid64_to_uint64_floor("0", "[04ff5afd3a618ab8]", "0", "00")
+ self.bid64_to_uint64_floor("0", "-101101.01010010E0", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[2083ec51a119740a]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[2ca0000000000000]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint64_floor("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_uint64_floor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint64_floor("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_uint64_floor("0", "[30e4dacf7a515f0d]", "136648455", "00")
+ self.bid64_to_uint64_floor("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint64_floor("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_uint64_floor("0", "[31271AFD498AB610]", "19999999998", "00")
+ self.bid64_to_uint64_floor("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_uint64_floor("0", "[31271AFD498C3CB0]", "19999999999", "00")
+ self.bid64_to_uint64_floor("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_uint64_floor("0", "[31271AFD498DC350]", "20000000000", "00")
+ self.bid64_to_uint64_floor("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_uint64_floor("0", "[31271AFD498F49F0]", "20000000001", "00")
+ self.bid64_to_uint64_floor("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_floor("0", "[318C800000000032]", "35184372088832", "00")
+ self.bid64_to_uint64_floor("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_uint64_floor("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_uint64_floor("0", "[31A0002E90EDCFF1]", "19999999998", "00")
+ self.bid64_to_uint64_floor("0", "[31A0002E90EDCFFB]", "19999999999", "00")
+ self.bid64_to_uint64_floor("0", "[31A0002E90EDD005]", "20000000000", "00")
+ self.bid64_to_uint64_floor("0", "[31A0002E90EDD00F]", "20000000001", "00")
+ self.bid64_to_uint64_floor("0", "[31A1400000000005]", "35184372088832", "00")
+ self.bid64_to_uint64_floor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint64_floor("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_uint64_floor("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_uint64_floor("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_floor("0", "[31c5f23836279c04]", "1673698124209156", "00")
+ self.bid64_to_uint64_floor("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_floor("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_floor("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_floor("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_floor("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_floor("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_floor("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_uint64_floor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint64_floor("0", "[32419e50b2f2dedb]", "4555444135441550000", "00")
+ self.bid64_to_uint64_floor("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_floor("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_floor("0", "[3245543DF729C000]", "15000000000000000000", "00")
+ self.bid64_to_uint64_floor("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_floor("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_floor("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_floor("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_floor("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_floor("0", "[32471AFD498D0000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[324759735305e4ec]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[3248E1BC9BF04000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[32638D7EA4C68000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint64_floor("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_uint64_floor("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_uint64_floor("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_floor("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_floor("0", "[340000000000000F]", "15000000000000000000", "00")
+ self.bid64_to_uint64_floor("0", "[3400000000000019]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_floor("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_floor("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[3440000000000001]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[34a0000000000000]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[4740fd8a26fe2cf2]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[4d778c661a5fdfa2]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[50e0000000000000]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[61bb575d330cd43c]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[6888b95594874c2f]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_floor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_floor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_floor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_floor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_floor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_floor("0", "[7800000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[7c00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[7e00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[97efffd7dbfefdf7]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[a953afbd88d77883]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[b3e9236afb738c72]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[d3701428cf0a29c7]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[e8c02df11eb3ed5c]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "[f6ffff7fffffefff]", "0", "00")
+ self.bid64_to_uint64_floor("0", "[fefffb8effb7cafb]", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "-Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "QNaN", "9223372036854775808", "01")
+ self.bid64_to_uint64_floor("0", "SNaN", "9223372036854775808", "01")
+ }
+
+ private func bid64_to_uint64_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint64_int() {
+ self.bid64_to_uint64_int("0", "-0", "0", "00")
+ self.bid64_to_uint64_int("0", "0", "0", "00")
+ self.bid64_to_uint64_int("0", "[0000080046080880]", "0", "00")
+ self.bid64_to_uint64_int("0", "[0916000000000000]", "0", "00")
+ self.bid64_to_uint64_int("0", "[0fa1000000000000]", "0", "00")
+ self.bid64_to_uint64_int("0", "[1c63d34722593e99]", "0", "00")
+ self.bid64_to_uint64_int("0", "[2c7d3bb600f33f88]", "0", "00")
+ self.bid64_to_uint64_int("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint64_int("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint64_int("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_uint64_int("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint64_int("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_uint64_int("0", "[302b15f3d7109b6c]", "312", "00")
+ self.bid64_to_uint64_int("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint64_int("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_uint64_int("0", "[31271AFD498AB610]", "19999999998", "00")
+ self.bid64_to_uint64_int("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_uint64_int("0", "[31271AFD498C3CB0]", "19999999999", "00")
+ self.bid64_to_uint64_int("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_uint64_int("0", "[31271AFD498DC350]", "20000000000", "00")
+ self.bid64_to_uint64_int("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_uint64_int("0", "[31271AFD498F49F0]", "20000000001", "00")
+ self.bid64_to_uint64_int("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_uint64_int("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_int("0", "[318C800000000032]", "35184372088832", "00")
+ self.bid64_to_uint64_int("0", "[31958f56369092bf]", "60685749563276", "00")
+ self.bid64_to_uint64_int("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint64_int("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_uint64_int("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_uint64_int("0", "[31A0002E90EDCFF1]", "19999999998", "00")
+ self.bid64_to_uint64_int("0", "[31A0002E90EDCFFB]", "19999999999", "00")
+ self.bid64_to_uint64_int("0", "[31A0002E90EDD005]", "20000000000", "00")
+ self.bid64_to_uint64_int("0", "[31A0002E90EDD00F]", "20000000001", "00")
+ self.bid64_to_uint64_int("0", "[31A1400000000005]", "35184372088832", "00")
+ self.bid64_to_uint64_int("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint64_int("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_uint64_int("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_uint64_int("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_int("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_int("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_int("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_int("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_int("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_int("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_int("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_uint64_int("0", "[31dd7639c7a2a40a]", "8292764859147274", "00")
+ self.bid64_to_uint64_int("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint64_int("0", "[32247e9110000156]", "1265061410636118000", "00")
+ self.bid64_to_uint64_int("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_int("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_int("0", "[3245543DF729C000]", "15000000000000000000", "00")
+ self.bid64_to_uint64_int("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_int("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_int("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_int("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_int("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_int("0", "[3246f47a24b53e1f]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[32471AFD498D0000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[3248E1BC9BF04000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[32638D7EA4C68000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint64_int("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_uint64_int("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_uint64_int("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_int("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_int("0", "[340000000000000F]", "15000000000000000000", "00")
+ self.bid64_to_uint64_int("0", "[3400000000000019]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_int("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_int("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[3440000000000001]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[3855e543ae4d7e45]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[3895eccd7604654d]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[40faa0009216954c]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[42d709eca5e3d3f5]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[488a31b55025daaf]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[4dce523cf657c3e3]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[50d5b3dcb7a604d3]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[6b06a54051332a54]", "0", "00")
+ self.bid64_to_uint64_int("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_uint64_int("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint64_int("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_int("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_int("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_int("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_int("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_int("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_int("0", "[763225e31038dd48]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[7800000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[7c00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[7e00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[8ae09f138f22c63c]", "0", "00")
+ self.bid64_to_uint64_int("0", "[9466aa565fa670b1]", "0", "00")
+ self.bid64_to_uint64_int("0", "[980b441276e7a329]", "0", "00")
+ self.bid64_to_uint64_int("0", "[9900000000000000]", "0", "00")
+ self.bid64_to_uint64_int("0", "[9f8b26e44bca24dc]", "0", "00")
+ self.bid64_to_uint64_int("0", "[b11e9ff4fbc7fa7d]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[b25930b6f3c528b5]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[b480000000000000]", "0", "00")
+ self.bid64_to_uint64_int("0", "[bb985bbaf356a180]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[c89ebd47d3004072]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[db1c3c4336744fa0]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[dffffffffb9efff7]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "[ff6f9f87ce96bb86]", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "-Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "QNaN", "9223372036854775808", "01")
+ self.bid64_to_uint64_int("0", "SNaN", "9223372036854775808", "01")
+ }
+
+ private func bid64_to_uint64_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint64_rnint() {
+ self.bid64_to_uint64_rnint("0", "0", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[0003a500e0024002]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[0b6a000000000000]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[11c0000000000000]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint64_rnint("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint64_rnint("0", "[3000440831001020]", "1", "00")
+ self.bid64_to_uint64_rnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint64_rnint("0", "[302AAD08158CD000]", "300", "00")
+ self.bid64_to_uint64_rnint("0", "[30594c90812219d2]", "7121", "00")
+ self.bid64_to_uint64_rnint("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[31271AFD498AB610]", "19999999998", "00")
+ self.bid64_to_uint64_rnint("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_uint64_rnint("0", "[31271AFD498C3CB0]", "20000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[31271AFD498DC350]", "20000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_uint64_rnint("0", "[31271AFD498F49F0]", "20000000002", "00")
+ self.bid64_to_uint64_rnint("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint64_rnint("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_rnint("0", "[318C800000000032]", "35184372088832", "00")
+ self.bid64_to_uint64_rnint("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint64_rnint("0", "[31A0000000000BBD]", "300", "00")
+ self.bid64_to_uint64_rnint("0", "[31A0002E90EDCFF1]", "19999999998", "00")
+ self.bid64_to_uint64_rnint("0", "[31A0002E90EDCFFB]", "20000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[31A0002E90EDD005]", "20000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[31A0002E90EDD00F]", "20000000002", "00")
+ self.bid64_to_uint64_rnint("0", "[31A1400000000005]", "35184372088832", "00")
+ self.bid64_to_uint64_rnint("0", "[31abcb66674751d1]", "331986542364718", "00")
+ self.bid64_to_uint64_rnint("0", "[31b17777f7cfae7f]", "491643174647770", "00")
+ self.bid64_to_uint64_rnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint64_rnint("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_uint64_rnint("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_uint64_rnint("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_rnint("0", "[31c518e88a625d9c]", "1434761916734876", "00")
+ self.bid64_to_uint64_rnint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_rnint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_rnint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_rnint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_rnint("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_uint64_rnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint64_rnint("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[3245543DF729C000]", "15000000000000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_rnint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_rnint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_rnint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_rnint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_rnint("0", "[32471AFD498D0000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[3248E1BC9BF04000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[32523816aadcf401]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[32638D7EA4C68000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[340000000000000F]", "15000000000000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[3400000000000019]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_rnint("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[3440000000000001]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[4805c2832bb34b61]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[5bf8efa387de2ec7]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint64_rnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[6c810037c0cfc9d9]", "928891368949602500", "00")
+ self.bid64_to_uint64_rnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rnint("0", "[6e7f8bf76c7c00bc]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[7800000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[7c00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[7e00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[943a90eadb43eabb]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[9d5afe2ef1e98b4f]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[a647403ebce8beda]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[a700000000000000]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[afd157b6fbf53737]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[afd2e7a8a21b3fab]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[b15b0b664c4b18f0]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[b25cf37a7dbedfb0]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[bfe34f15a773dc6a]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[cd57ca09b5155a3f]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[d340000000000000]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[d38c7e9eee0eea48]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "[e23ac74d7be2b446]", "0", "00")
+ self.bid64_to_uint64_rnint("0", "[fffffabbfffffdfd]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "QNaN", "9223372036854775808", "01")
+ self.bid64_to_uint64_rnint("0", "SNaN", "9223372036854775808", "01")
+ }
+
+ private func bid64_to_uint64_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint64_rninta() {
+ self.bid64_to_uint64_rninta("0", "-0", "0", "00")
+ self.bid64_to_uint64_rninta("0", "0", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[0f1c792c8550125b]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[177d0a807a950b1e]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[2adc5d1a81c7bf02]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[2fcb7cd7f5af0eef]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_uint64_rninta("0", "[2fdc20f914f33d4b]", "1", "00")
+ self.bid64_to_uint64_rninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint64_rninta("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint64_rninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint64_rninta("0", "[302AAD08158CD000]", "301", "00")
+ self.bid64_to_uint64_rninta("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[31271AFD498AB610]", "19999999999", "00")
+ self.bid64_to_uint64_rninta("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_uint64_rninta("0", "[31271AFD498C3CB0]", "20000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[31271AFD498DC350]", "20000000001", "00")
+ self.bid64_to_uint64_rninta("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_uint64_rninta("0", "[31271AFD498F49F0]", "20000000002", "00")
+ self.bid64_to_uint64_rninta("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint64_rninta("0", "[3160fd2376348070]", "278328748835", "00")
+ self.bid64_to_uint64_rninta("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_rninta("0", "[318C800000000032]", "35184372088833", "00")
+ self.bid64_to_uint64_rninta("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_uint64_rninta("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint64_rninta("0", "[31A0000000000BBD]", "301", "00")
+ self.bid64_to_uint64_rninta("0", "[31A0002E90EDCFF1]", "19999999999", "00")
+ self.bid64_to_uint64_rninta("0", "[31A0002E90EDCFFB]", "20000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[31A0002E90EDD005]", "20000000001", "00")
+ self.bid64_to_uint64_rninta("0", "[31A0002E90EDD00F]", "20000000002", "00")
+ self.bid64_to_uint64_rninta("0", "[31A1400000000005]", "35184372088833", "00")
+ self.bid64_to_uint64_rninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint64_rninta("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_uint64_rninta("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_uint64_rninta("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_rninta("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_rninta("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_rninta("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_rninta("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_rninta("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_uint64_rninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint64_rninta("0", "[3204008140102120]", "112645503242268800", "00")
+ self.bid64_to_uint64_rninta("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[3245543DF729C000]", "15000000000000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_rninta("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_rninta("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_rninta("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_rninta("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_rninta("0", "[32471AFD498D0000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[3248E1BC9BF04000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[32638D7EA4C68000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[340000000000000F]", "15000000000000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[3400000000000019]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_rninta("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[3440000000000001]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[3ae3d621ba5e4712]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[3feddb7740f54c81]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[4077eda80baefc3b]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[484593acef232cde]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[4abbb32ae6fe2a38]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[4b2287e22b686fcc]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[50ea3f8ca7168d0c]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[5200000000000000]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[5300053230488bd9]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[5c17757e001e346d]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint64_rninta("0", "[6c71abae17876945]", "9477438438861125", "00")
+ self.bid64_to_uint64_rninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_rninta("0", "[6c9178bc905ce337]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[7800000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[7c00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[7e00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[81cdee8f7402f84b]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[835437df7df86249]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[94c40563509870ec]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[9dac50e65fbb8d03]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[9f63b3fbde794b5f]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[a0255dc42000a080]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[afc7e76738ab4517]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[afdf47834ab2b3f9]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[affdf7fcb37ff7ff]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[b248135b183407d2]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[c2ce38b23a053b82]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[d5b6bb48b6239080]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[ecaff09c3cc742fe]", "0", "00")
+ self.bid64_to_uint64_rninta("0", "[f2614b0716c24516]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[f5d87d4e00602de9]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "[fffffffffbffffff]", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "-Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "QNaN", "9223372036854775808", "01")
+ self.bid64_to_uint64_rninta("0", "SNaN", "9223372036854775808", "01")
+ }
+
+ private func bid64_to_uint64_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint64_xceil() {
+ self.bid64_to_uint64_xceil("0", "-0", "0", "00")
+ self.bid64_to_uint64_xceil("0", "0", "0", "00")
+ self.bid64_to_uint64_xceil("0", "-0.1E0", "0", "20")
+ self.bid64_to_uint64_xceil("0", "[070c898734bb7b58]", "1", "20")
+ self.bid64_to_uint64_xceil("0", "[0df2000000000000]", "1", "20")
+ self.bid64_to_uint64_xceil("0", "[0f60000000000000]", "0", "00")
+ self.bid64_to_uint64_xceil("0", "+100011.11E0", "100012", "20")
+ self.bid64_to_uint64_xceil("0", "+110.1100011001E0", "111", "20")
+ self.bid64_to_uint64_xceil("0", "[151002b72b82c794]", "1", "20")
+ self.bid64_to_uint64_xceil("0", "[15821ce06a75d529]", "1", "20")
+ self.bid64_to_uint64_xceil("0", "+2888.25866964922939E0", "2889", "20")
+ self.bid64_to_uint64_xceil("0", "[2c40000000000000]", "0", "00")
+ self.bid64_to_uint64_xceil("0", "[2e5f2d98c89e1062]", "1", "20")
+ self.bid64_to_uint64_xceil("0", "[2f718130e73d639b]", "1", "20")
+ self.bid64_to_uint64_xceil("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_uint64_xceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint64_xceil("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint64_xceil("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint64_xceil("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_uint64_xceil("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[31271AFD498AB610]", "19999999999", "20")
+ self.bid64_to_uint64_xceil("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_uint64_xceil("0", "[31271AFD498C3CB0]", "20000000000", "20")
+ self.bid64_to_uint64_xceil("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[31271AFD498DC350]", "20000000001", "20")
+ self.bid64_to_uint64_xceil("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_uint64_xceil("0", "[31271AFD498F49F0]", "20000000002", "20")
+ self.bid64_to_uint64_xceil("0", "[31401109a138546a]", "1873305721", "20")
+ self.bid64_to_uint64_xceil("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint64_xceil("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_xceil("0", "[318C800000000032]", "35184372088833", "20")
+ self.bid64_to_uint64_xceil("0", "[3191d593d36c41a4]", "50199054880773", "20")
+ self.bid64_to_uint64_xceil("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_uint64_xceil("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint64_xceil("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_uint64_xceil("0", "[31A0002E90EDCFF1]", "19999999999", "20")
+ self.bid64_to_uint64_xceil("0", "[31A0002E90EDCFFB]", "20000000000", "20")
+ self.bid64_to_uint64_xceil("0", "[31A0002E90EDD005]", "20000000001", "20")
+ self.bid64_to_uint64_xceil("0", "[31A0002E90EDD00F]", "20000000002", "20")
+ self.bid64_to_uint64_xceil("0", "[31A1400000000005]", "35184372088833", "20")
+ self.bid64_to_uint64_xceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint64_xceil("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_uint64_xceil("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_uint64_xceil("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_xceil("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_xceil("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_xceil("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_xceil("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_xceil("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_uint64_xceil("0", "[31cfdc1b6ff989b8]", "4464135051512248", "00")
+ self.bid64_to_uint64_xceil("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint64_xceil("0", "[3224410a20400020]", "1197411653386272000", "00")
+ self.bid64_to_uint64_xceil("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[3245543DF729C000]", "15000000000000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xceil("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xceil("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xceil("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xceil("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xceil("0", "[32471AFD498D0000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[3248E1BC9BF04000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[32638D7EA4C68000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[340000000000000F]", "15000000000000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[3400000000000019]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xceil("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[3440000000000001]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[46e0000000000000]", "0", "00")
+ self.bid64_to_uint64_xceil("0", "+544762265872293.663E0", "544762265872294", "20")
+ self.bid64_to_uint64_xceil("0", "[59d50606cc4c30b3]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[5d4d408f5835ae34]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[6148dc54f20ed9d9]", "1", "20")
+ self.bid64_to_uint64_xceil("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint64_xceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint64_xceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xceil("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xceil("0", "[6c92c7b25cb8e3ad]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[7118a864e7180325]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[73582a6c25b49fdd]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[7800000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[7c00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[7e00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[85a0000000000000]", "0", "00")
+ self.bid64_to_uint64_xceil("0", "[85a95e72cda97d5f]", "0", "20")
+ self.bid64_to_uint64_xceil("0", "+88898989999998.88E0", "88898989999999", "20")
+ self.bid64_to_uint64_xceil("0", "[9380000000000000]", "0", "00")
+ self.bid64_to_uint64_xceil("0", "[93e0000000000000]", "0", "00")
+ self.bid64_to_uint64_xceil("0", "[b1ce3b2297350024]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[b25e477d2f6ae3be]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[b4a0000000000000]", "0", "00")
+ self.bid64_to_uint64_xceil("0", "[ca9b1ee4bdc56092]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[d0639f6b0a31ac56]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[d6f980d5c5255030]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[d8c1e635b6408402]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[eab0b7a3cdf9f5d1]", "0", "20")
+ self.bid64_to_uint64_xceil("0", "[ec59f8a58d0e15bd]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "[ee34ac1fa561c8db]", "0", "00")
+ self.bid64_to_uint64_xceil("0", "[f9d99f96ca54aba4]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xceil("0", "SNaN", "9223372036854775808", "01")
+ }
+
+ private func bid64_to_uint64_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint64_xfloor() {
+ self.bid64_to_uint64_xfloor("0", "-0", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "0", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "[0042950491200210]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[019d28e410d40a40]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[02054b6a6819eda4]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[0900600290004440]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[0af7000000000000]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[0c410b6a5aab17b1]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[0d5a000000000000]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "+10100.11111111E0", "10100", "20")
+ self.bid64_to_uint64_xfloor("0", "[1eb0baa5f96a9409]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[2008aa522c640cf5]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[245b56d98d24ab5c]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "+2579933.96285E0", "2579933", "20")
+ self.bid64_to_uint64_xfloor("0", "[2660000000000000]", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "[2a80000000000000]", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint64_xfloor("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_uint64_xfloor("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint64_xfloor("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_uint64_xfloor("0", "[3092c7e2d5ff7c8e]", "528632", "20")
+ self.bid64_to_uint64_xfloor("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[31271AFD498AB610]", "19999999998", "20")
+ self.bid64_to_uint64_xfloor("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_uint64_xfloor("0", "[31271AFD498C3CB0]", "19999999999", "20")
+ self.bid64_to_uint64_xfloor("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[31271AFD498DC350]", "20000000000", "20")
+ self.bid64_to_uint64_xfloor("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_uint64_xfloor("0", "[31271AFD498F49F0]", "20000000001", "20")
+ self.bid64_to_uint64_xfloor("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_xfloor("0", "[318C800000000032]", "35184372088832", "20")
+ self.bid64_to_uint64_xfloor("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_uint64_xfloor("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_uint64_xfloor("0", "[31A0002E90EDCFF1]", "19999999998", "20")
+ self.bid64_to_uint64_xfloor("0", "[31A0002E90EDCFFB]", "19999999999", "20")
+ self.bid64_to_uint64_xfloor("0", "[31A0002E90EDD005]", "20000000000", "20")
+ self.bid64_to_uint64_xfloor("0", "[31A0002E90EDD00F]", "20000000001", "20")
+ self.bid64_to_uint64_xfloor("0", "[31A1400000000005]", "35184372088832", "20")
+ self.bid64_to_uint64_xfloor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint64_xfloor("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_uint64_xfloor("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_uint64_xfloor("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_xfloor("0", "[31c5b787bd88e913]", "1609168511887635", "00")
+ self.bid64_to_uint64_xfloor("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_xfloor("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_xfloor("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_xfloor("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_xfloor("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_uint64_xfloor("0", "[31d2226558c0a106]", "5104368256852230", "00")
+ self.bid64_to_uint64_xfloor("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint64_xfloor("0", "[3235241108658112]", "5950630084837650000", "00")
+ self.bid64_to_uint64_xfloor("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[3245543DF729C000]", "15000000000000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xfloor("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xfloor("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xfloor("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xfloor("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xfloor("0", "[32471AFD498D0000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[3248E1BC9BF04000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[325dd624c0c19831]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[32638D7EA4C68000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[340000000000000F]", "15000000000000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[3400000000000019]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xfloor("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[3440000000000001]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[3ad39313cd3315fa]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[3dca2e1446595437]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[3e23059bbe4427ae]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[4aa0000000000000]", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "[67926c0af1b8ea74]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_uint64_xfloor("0", "[6c621c463d72b313]", "96012372123778", "20")
+ self.bid64_to_uint64_xfloor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xfloor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xfloor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xfloor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xfloor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xfloor("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xfloor("0", "[7800000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[7c00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[7e00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[8460000000000000]", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "[87e0000000000000]", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "+9.8999E0", "9", "20")
+ self.bid64_to_uint64_xfloor("0", "[98e0000000000000]", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "[9960000000000000]", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "+9962.46E0", "9962", "20")
+ self.bid64_to_uint64_xfloor("0", "[ac00000000000000]", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "[dbfffff797efffff]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[ee41744db38dcdd4]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[efffffffedfbefbf]", "0", "00")
+ self.bid64_to_uint64_xfloor("0", "[f3f8fc42c3347b5e]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "[ffdfff5ff7dfaf7f]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "-Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "QNaN", "9223372036854775808", "01")
+ self.bid64_to_uint64_xfloor("0", "SNaN", "9223372036854775808", "01")
+ }
+
+ private func bid64_to_uint64_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint64_xint() {
+ self.bid64_to_uint64_xint("0", "-0", "0", "00")
+ self.bid64_to_uint64_xint("0", "0", "0", "00")
+ self.bid64_to_uint64_xint("0", "-0.1101001110E0", "0", "20")
+ self.bid64_to_uint64_xint("0", "+0.11100E0", "0", "20")
+ self.bid64_to_uint64_xint("0", "[090a847091ce1fdf]", "0", "20")
+ self.bid64_to_uint64_xint("0", "[0e96000000000000]", "0", "20")
+ self.bid64_to_uint64_xint("0", "+10100000.01E0", "10100000", "20")
+ self.bid64_to_uint64_xint("0", "+11000111.01111000111E0", "11000111", "20")
+ self.bid64_to_uint64_xint("0", "[196afd96bd974412]", "0", "20")
+ self.bid64_to_uint64_xint("0", "[206ac19b7fe7a3f1]", "0", "20")
+ self.bid64_to_uint64_xint("0", "[2bc509bd29ec18d4]", "0", "20")
+ self.bid64_to_uint64_xint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint64_xint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint64_xint("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_uint64_xint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint64_xint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_uint64_xint("0", "[3034595e60ce1f0c]", "572", "20")
+ self.bid64_to_uint64_xint("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint64_xint("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_uint64_xint("0", "[31271AFD498AB610]", "19999999998", "20")
+ self.bid64_to_uint64_xint("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_uint64_xint("0", "[31271AFD498C3CB0]", "19999999999", "20")
+ self.bid64_to_uint64_xint("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_uint64_xint("0", "[31271AFD498DC350]", "20000000000", "20")
+ self.bid64_to_uint64_xint("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_uint64_xint("0", "[31271AFD498F49F0]", "20000000001", "20")
+ self.bid64_to_uint64_xint("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_uint64_xint("0", "[3188c2727b5ff612]", "24655967656320", "20")
+ self.bid64_to_uint64_xint("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_xint("0", "[318C800000000032]", "35184372088832", "20")
+ self.bid64_to_uint64_xint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint64_xint("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_uint64_xint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_uint64_xint("0", "[31A0002E90EDCFF1]", "19999999998", "20")
+ self.bid64_to_uint64_xint("0", "[31A0002E90EDCFFB]", "19999999999", "20")
+ self.bid64_to_uint64_xint("0", "[31A0002E90EDD005]", "20000000000", "20")
+ self.bid64_to_uint64_xint("0", "[31A0002E90EDD00F]", "20000000001", "20")
+ self.bid64_to_uint64_xint("0", "[31A1400000000005]", "35184372088832", "20")
+ self.bid64_to_uint64_xint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint64_xint("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_uint64_xint("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_uint64_xint("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_xint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_xint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_xint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_xint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_xint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_xint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_xint("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_uint64_xint("0", "[31d39fe5d761f5cf]", "5523834067350991", "00")
+ self.bid64_to_uint64_xint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint64_xint("0", "[320e2e0b93415180]", "399127692399859200", "00")
+ self.bid64_to_uint64_xint("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xint("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xint("0", "[3245543DF729C000]", "15000000000000000000", "00")
+ self.bid64_to_uint64_xint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xint("0", "[32471AFD498D0000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[3248E1BC9BF04000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[325dd18a6796a87e]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[32638D7EA4C68000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint64_xint("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_uint64_xint("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_uint64_xint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_xint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_xint("0", "[340000000000000F]", "15000000000000000000", "00")
+ self.bid64_to_uint64_xint("0", "[3400000000000019]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xint("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xint("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[3440000000000001]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[3b00568d8546cc0c]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "+575.5966587955E0", "575", "20")
+ self.bid64_to_uint64_xint("0", "+647528935975.59E0", "647528935975", "20")
+ self.bid64_to_uint64_xint("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_uint64_xint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint64_xint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xint("0", "[6cf2f7faebc3dc65]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "+7577555996.77556E0", "7577555996", "20")
+ self.bid64_to_uint64_xint("0", "[7800000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[7c00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[7e00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[8560ecb183d76ade]", "0", "20")
+ self.bid64_to_uint64_xint("0", "+8889.8E0", "8889", "20")
+ self.bid64_to_uint64_xint("0", "+89988.888888988E0", "89988", "20")
+ self.bid64_to_uint64_xint("0", "+9.2559E0", "9", "20")
+ self.bid64_to_uint64_xint("0", "[99800ea7d0ec6b97]", "0", "20")
+ self.bid64_to_uint64_xint("0", "[9b00621748880c09]", "0", "20")
+ self.bid64_to_uint64_xint("0", "[ab01740a95f188eb]", "0", "20")
+ self.bid64_to_uint64_xint("0", "[b1762ca0c1cbf793]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[cc80000000000000]", "0", "00")
+ self.bid64_to_uint64_xint("0", "[e6f7bf3ffffb7eff]", "0", "00")
+ self.bid64_to_uint64_xint("0", "[ec928ad0cd979a77]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[f0e1e96a1eb37707]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "[fff3ffefffffffff]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "-Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "QNaN", "9223372036854775808", "01")
+ self.bid64_to_uint64_xint("0", "SNaN", "9223372036854775808", "01")
+ }
+
+ private func bid64_to_uint64_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint64_xrnint() {
+ self.bid64_to_uint64_xrnint("0", "-0", "0", "00")
+ self.bid64_to_uint64_xrnint("0", "0", "0", "00")
+ self.bid64_to_uint64_xrnint("0", "[010800583408205a]", "0", "20")
+ self.bid64_to_uint64_xrnint("0", "[0c40000000000000]", "0", "00")
+ self.bid64_to_uint64_xrnint("0", "+100100111.100E0", "100100111", "20")
+ self.bid64_to_uint64_xrnint("0", "+1110010.01011000E0", "1110010", "20")
+ self.bid64_to_uint64_xrnint("0", "+2.256473E0", "2", "20")
+ self.bid64_to_uint64_xrnint("0", "[2c7d3bb600f33f88]", "0", "20")
+ self.bid64_to_uint64_xrnint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint64_xrnint("0", "[2fd70b0be91aad9b]", "1", "20")
+ self.bid64_to_uint64_xrnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint64_xrnint("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint64_xrnint("0", "[2ff57dff534efeef]", "6", "20")
+ self.bid64_to_uint64_xrnint("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint64_xrnint("0", "[302AAD08158CD000]", "300", "20")
+ self.bid64_to_uint64_xrnint("0", "[3040c81145902134]", "220", "20")
+ self.bid64_to_uint64_xrnint("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[31271AFD498AB610]", "19999999998", "20")
+ self.bid64_to_uint64_xrnint("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_uint64_xrnint("0", "[31271AFD498C3CB0]", "20000000000", "20")
+ self.bid64_to_uint64_xrnint("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[31271AFD498DC350]", "20000000000", "20")
+ self.bid64_to_uint64_xrnint("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_uint64_xrnint("0", "[31271AFD498F49F0]", "20000000002", "20")
+ self.bid64_to_uint64_xrnint("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint64_xrnint("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_xrnint("0", "[318C800000000032]", "35184372088832", "20")
+ self.bid64_to_uint64_xrnint("0", "[31958f56369092bf]", "60685749563276", "20")
+ self.bid64_to_uint64_xrnint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint64_xrnint("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint64_xrnint("0", "[31A0000000000BBD]", "300", "20")
+ self.bid64_to_uint64_xrnint("0", "[31A0002E90EDCFF1]", "19999999998", "20")
+ self.bid64_to_uint64_xrnint("0", "[31A0002E90EDCFFB]", "20000000000", "20")
+ self.bid64_to_uint64_xrnint("0", "[31A0002E90EDD005]", "20000000000", "20")
+ self.bid64_to_uint64_xrnint("0", "[31A0002E90EDD00F]", "20000000002", "20")
+ self.bid64_to_uint64_xrnint("0", "[31A1400000000005]", "35184372088832", "20")
+ self.bid64_to_uint64_xrnint("0", "[31b1ada128861ac7]", "497598228529838", "20")
+ self.bid64_to_uint64_xrnint("0", "[31b8587179b652c0]", "685264383759635", "20")
+ self.bid64_to_uint64_xrnint("0", "[31baa0d48f2ef751]", "749518419020782", "20")
+ self.bid64_to_uint64_xrnint("0", "[31bd2c9a38d8288e]", "821181521488501", "20")
+ self.bid64_to_uint64_xrnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint64_xrnint("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_uint64_xrnint("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_uint64_xrnint("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_xrnint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_xrnint("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_xrnint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_xrnint("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_xrnint("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_uint64_xrnint("0", "[31cec8c8d7043cda]", "4161414600342746", "00")
+ self.bid64_to_uint64_xrnint("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint64_xrnint("0", "[3211485a9a187c4a]", "486462857363361000", "00")
+ self.bid64_to_uint64_xrnint("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[3245543DF729C000]", "15000000000000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xrnint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xrnint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xrnint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xrnint("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xrnint("0", "[32471AFD498D0000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[3248E1BC9BF04000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[325299269918b393]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[32638D7EA4C68000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[340000000000000F]", "15000000000000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[3400000000000019]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xrnint("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[3420000000000008]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[3440000000000001]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[38120bbe5e4bdac2]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[3895eccd7604654d]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[3da0000000000000]", "0", "00")
+ self.bid64_to_uint64_xrnint("0", "[4100000200804082]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "+65967.5E0", "65968", "20")
+ self.bid64_to_uint64_xrnint("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint64_xrnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint64_xrnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrnint("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrnint("0", "[7800000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[7c00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[7e00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "+8889.89E0", "8890", "20")
+ self.bid64_to_uint64_xrnint("0", "[8ee0000000000000]", "0", "00")
+ self.bid64_to_uint64_xrnint("0", "[98e0000000000000]", "0", "00")
+ self.bid64_to_uint64_xrnint("0", "[9900000000000000]", "0", "00")
+ self.bid64_to_uint64_xrnint("0", "+9.9999E0", "10", "20")
+ self.bid64_to_uint64_xrnint("0", "[9f8b26e44bca24dc]", "0", "20")
+ self.bid64_to_uint64_xrnint("0", "[afda66fbaf8fb77f]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[afe06299a8bc6002]", "0", "20")
+ self.bid64_to_uint64_xrnint("0", "[affd37f8b94fe7f3]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[b24fe795a5702a36]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[b480000000000000]", "0", "00")
+ self.bid64_to_uint64_xrnint("0", "[c9e3ec31a0aa9951]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "[e080442033000043]", "0", "20")
+ self.bid64_to_uint64_xrnint("0", "[f25ec74ea5fe000f]", "0", "00")
+ self.bid64_to_uint64_xrnint("0", "[fffffffffbffffff]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "-Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrnint("0", "QNaN", "9223372036854775808", "01")
+ }
+
+ private func bid64_to_uint64_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint64_xrninta() {
+ self.bid64_to_uint64_xrninta("0", "-0", "0", "00")
+ self.bid64_to_uint64_xrninta("0", "0", "0", "00")
+ self.bid64_to_uint64_xrninta("0", "[0810000000000000]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "[09fd000000000000]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "+1001101110.1100E0", "1001101110", "20")
+ self.bid64_to_uint64_xrninta("0", "+110.11E0", "110", "20")
+ self.bid64_to_uint64_xrninta("0", "[14b0365fded566b0]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "[21a39e6eaa098340]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "[2ca572b5745025ab]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "[2fb82450436c8cc4]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "[2fcfff7ffffa6ff9]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_uint64_xrninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint64_xrninta("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint64_xrninta("0", "[3000406508514056]", "1", "20")
+ self.bid64_to_uint64_xrninta("0", "[3026faa6adffddb2]", "196", "20")
+ self.bid64_to_uint64_xrninta("0", "[302a8283c9137123]", "296", "20")
+ self.bid64_to_uint64_xrninta("0", "[302AA87BEE538000]", "300", "00")
+ self.bid64_to_uint64_xrninta("0", "[302AAD08158CD000]", "301", "20")
+ self.bid64_to_uint64_xrninta("0", "[310E35FA931A0000]", "4000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[3111C37937E08000]", "5000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[31271AFD498AB610]", "19999999999", "20")
+ self.bid64_to_uint64_xrninta("0", "[31271AFD498B7960]", "19999999999", "00")
+ self.bid64_to_uint64_xrninta("0", "[31271AFD498C3CB0]", "20000000000", "20")
+ self.bid64_to_uint64_xrninta("0", "[31271AFD498D0000]", "20000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[31271AFD498DC350]", "20000000001", "20")
+ self.bid64_to_uint64_xrninta("0", "[31271AFD498E86A0]", "20000000001", "00")
+ self.bid64_to_uint64_xrninta("0", "[31271AFD498F49F0]", "20000000002", "20")
+ self.bid64_to_uint64_xrninta("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint64_xrninta("0", "[318C800000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_xrninta("0", "[318C800000000032]", "35184372088833", "20")
+ self.bid64_to_uint64_xrninta("0", "[319e7ed3bdb800e9]", "85836971874716", "20")
+ self.bid64_to_uint64_xrninta("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_uint64_xrninta("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint64_xrninta("0", "[31A0000000000BBD]", "301", "20")
+ self.bid64_to_uint64_xrninta("0", "[31A0002E90EDCFF1]", "19999999999", "20")
+ self.bid64_to_uint64_xrninta("0", "[31A0002E90EDCFFB]", "20000000000", "20")
+ self.bid64_to_uint64_xrninta("0", "[31A0002E90EDD005]", "20000000001", "20")
+ self.bid64_to_uint64_xrninta("0", "[31A0002E90EDD00F]", "20000000002", "20")
+ self.bid64_to_uint64_xrninta("0", "[31A1400000000005]", "35184372088833", "20")
+ self.bid64_to_uint64_xrninta("0", "[31a1d11bb87623b3]", "51139196578296", "20")
+ self.bid64_to_uint64_xrninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint64_xrninta("0", "[31C00004A817C7FF]", "19999999999", "00")
+ self.bid64_to_uint64_xrninta("0", "[31C00004A817C801]", "20000000001", "00")
+ self.bid64_to_uint64_xrninta("0", "[31C0200000000000]", "35184372088832", "00")
+ self.bid64_to_uint64_xrninta("0", "[31c136de6c152fe4]", "341803900678116", "00")
+ self.bid64_to_uint64_xrninta("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_xrninta("0", "[31C71AFD498CFFFF]", "1999999999999999", "00")
+ self.bid64_to_uint64_xrninta("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[31C71AFD498D0000]", "2000000000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_xrninta("0", "[31C71AFD498D0001]", "2000000000000001", "00")
+ self.bid64_to_uint64_xrninta("0", "[31C71AFD498D0002]", "2000000000000002", "00")
+ self.bid64_to_uint64_xrninta("0", "[3200000000000003]", "300", "00")
+ self.bid64_to_uint64_xrninta("0", "[32011000500c0002]", "29906850571878600", "00")
+ self.bid64_to_uint64_xrninta("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[32438D7EA4C68000]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[3245543DF729C000]", "15000000000000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xrninta("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xrninta("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xrninta("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xrninta("0", "[32468DB8BAC710CB]", "18446744073709550000", "00")
+ self.bid64_to_uint64_xrninta("0", "[32471AFD498D0000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[32473af96c6dc1c0]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[3248E1BC9BF04000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[32638D7EA4C68000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[32E0000000000004]", "4000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[32E0000000000005]", "5000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[3300000000000002]", "20000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[33A0000000000002]", "2000000000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[340000000000000F]", "15000000000000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[3400000000000019]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[3420000000000001]", "10000000000000000000", "00")
+ self.bid64_to_uint64_xrninta("0", "[3420000000000002]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[3440000000000001]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[3640000000000000]", "0", "00")
+ self.bid64_to_uint64_xrninta("0", "[43202f4854591f6f]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[46aae259bde25032]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[4944a42762a583dd]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[5acfeb973624ed0b]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[64b779d3ef60bc83]", "0", "00")
+ self.bid64_to_uint64_xrninta("0", "+658675889.768689865E0", "658675890", "20")
+ self.bid64_to_uint64_xrninta("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint64_xrninta("0", "[6c3ad5779fcba13e]", "980485897", "20")
+ self.bid64_to_uint64_xrninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint64_xrninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrninta("0", "[6C88C49BA5E353F8]", "9223372036854776000", "00")
+ self.bid64_to_uint64_xrninta("0", "[6e2b2d31a903adf1]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[7800000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[7c00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[7e00000000000000]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[8224b26ac7a84859]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "[823421d0ecd6ae1e]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "+88999998.88889E0", "88999999", "20")
+ self.bid64_to_uint64_xrninta("0", "+8998.889988889888988E0", "8999", "20")
+ self.bid64_to_uint64_xrninta("0", "+99.99888899998E0", "100", "20")
+ self.bid64_to_uint64_xrninta("0", "[9c6458434d340008]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "[a36c00ee8ab70d63]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "[afda469acf7335ae]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[b1d6102484824c01]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[b2612b7bc2977f2c]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[b4e0000000000000]", "0", "00")
+ self.bid64_to_uint64_xrninta("0", "[c26aaf34426a2a05]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[c99f23665f35385d]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[d2d40e58f8c99abc]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[d497acc6fa05f435]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "[e792e91f0a1b4d24]", "0", "20")
+ self.bid64_to_uint64_xrninta("0", "[fd274071324b8300]", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "-Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "Infinity", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "QNaN", "9223372036854775808", "01")
+ self.bid64_to_uint64_xrninta("0", "SNaN", "9223372036854775808", "01")
+ }
+
+ private func bid64_to_uint64_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint8_ceil() {
+ self.bid64_to_uint8_ceil("0", "[0000004000000000]", "1", "00")
+ self.bid64_to_uint8_ceil("0", "257", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_uint8_ceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint8_ceil("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint8_ceil("0", "[30247E82C3A41000]", "127", "00")
+ self.bid64_to_uint8_ceil("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_uint8_ceil("0", "[3024879B1216B000]", "128", "00")
+ self.bid64_to_uint8_ceil("0", "[30248C2739500000]", "128", "00")
+ self.bid64_to_uint8_ceil("0", "[302490B360895000]", "129", "00")
+ self.bid64_to_uint8_ceil("0", "[3024953F87C2A000]", "129", "00")
+ self.bid64_to_uint8_ceil("0", "[30290F36242D6000]", "255", "00")
+ self.bid64_to_uint8_ceil("0", "[302913C24B66B000]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[3029184E72A00000]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[30291CDA99D95000]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[30292166C112A000]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[302AA87BEE538000]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[302AAD08158CD000]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint8_ceil("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_uint8_ceil("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint8_ceil("0", "[31A00000000004F1]", "127", "00")
+ self.bid64_to_uint8_ceil("0", "[31A00000000004FB]", "128", "00")
+ self.bid64_to_uint8_ceil("0", "[31A0000000000505]", "129", "00")
+ self.bid64_to_uint8_ceil("0", "[31A00000000009FB]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[31A0000000000A05]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[31A0000000000BBD]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint8_ceil("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_uint8_ceil("0", "[31C0000000000080]", "128", "00")
+ self.bid64_to_uint8_ceil("0", "[31C0000000000081]", "129", "00")
+ self.bid64_to_uint8_ceil("0", "[31C00000000000FF]", "255", "00")
+ self.bid64_to_uint8_ceil("0", "[31C0000000000100]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[31C0000000000101]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[3200000000000003]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint8_ceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint8_ceil("0", "[7800000000000000]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[7c00000000000000]", "128", "01")
+ self.bid64_to_uint8_ceil("0", "[7e00000000000000]", "128", "01")
+ }
+
+ private func bid64_to_uint8_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint8_floor() {
+ self.bid64_to_uint8_floor("0", "257", "128", "01")
+ self.bid64_to_uint8_floor("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint8_floor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint8_floor("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_uint8_floor("0", "[30247E82C3A41000]", "126", "00")
+ self.bid64_to_uint8_floor("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_uint8_floor("0", "[3024879B1216B000]", "127", "00")
+ self.bid64_to_uint8_floor("0", "[30248C2739500000]", "128", "00")
+ self.bid64_to_uint8_floor("0", "[302490B360895000]", "128", "00")
+ self.bid64_to_uint8_floor("0", "[3024953F87C2A000]", "129", "00")
+ self.bid64_to_uint8_floor("0", "[3028695479e3af15]", "236", "00")
+ self.bid64_to_uint8_floor("0", "[30290F36242D6000]", "255", "00")
+ self.bid64_to_uint8_floor("0", "[302913C24B66B000]", "255", "00")
+ self.bid64_to_uint8_floor("0", "[3029184E72A00000]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[30291CDA99D95000]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[30292166C112A000]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[302AA87BEE538000]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[302AAD08158CD000]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_uint8_floor("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint8_floor("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_uint8_floor("0", "[31A00000000004F1]", "126", "00")
+ self.bid64_to_uint8_floor("0", "[31A00000000004FB]", "127", "00")
+ self.bid64_to_uint8_floor("0", "[31A0000000000505]", "128", "00")
+ self.bid64_to_uint8_floor("0", "[31A00000000009FB]", "255", "00")
+ self.bid64_to_uint8_floor("0", "[31A0000000000A05]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[31A0000000000BBD]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint8_floor("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_uint8_floor("0", "[31C0000000000080]", "128", "00")
+ self.bid64_to_uint8_floor("0", "[31C0000000000081]", "129", "00")
+ self.bid64_to_uint8_floor("0", "[31C00000000000FF]", "255", "00")
+ self.bid64_to_uint8_floor("0", "[31C0000000000100]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[31C0000000000101]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[3200000000000003]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_uint8_floor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint8_floor("0", "[7800000000000000]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[7c00000000000000]", "128", "01")
+ self.bid64_to_uint8_floor("0", "[7e00000000000000]", "128", "01")
+ }
+
+ private func bid64_to_uint8_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint8_int() {
+ self.bid64_to_uint8_int("0", "257", "128", "01")
+ self.bid64_to_uint8_int("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint8_int("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint8_int("0", "[2FE5543DF729C000]", "1", "00")
+ self.bid64_to_uint8_int("0", "[30247E82C3A41000]", "126", "00")
+ self.bid64_to_uint8_int("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_uint8_int("0", "[3024879B1216B000]", "127", "00")
+ self.bid64_to_uint8_int("0", "[30248C2739500000]", "128", "00")
+ self.bid64_to_uint8_int("0", "[302490B360895000]", "128", "00")
+ self.bid64_to_uint8_int("0", "[3024953F87C2A000]", "129", "00")
+ self.bid64_to_uint8_int("0", "[30290F36242D6000]", "255", "00")
+ self.bid64_to_uint8_int("0", "[302913C24B66B000]", "255", "00")
+ self.bid64_to_uint8_int("0", "[3029184E72A00000]", "128", "01")
+ self.bid64_to_uint8_int("0", "[30291CDA99D95000]", "128", "01")
+ self.bid64_to_uint8_int("0", "[30292166C112A000]", "128", "01")
+ self.bid64_to_uint8_int("0", "[302AA87BEE538000]", "128", "01")
+ self.bid64_to_uint8_int("0", "[302AAD08158CD000]", "128", "01")
+ self.bid64_to_uint8_int("0", "[31600000000003E7]", "0", "00")
+ self.bid64_to_uint8_int("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint8_int("0", "[31A000000000000F]", "1", "00")
+ self.bid64_to_uint8_int("0", "[31A00000000004F1]", "126", "00")
+ self.bid64_to_uint8_int("0", "[31A00000000004FB]", "127", "00")
+ self.bid64_to_uint8_int("0", "[31A0000000000505]", "128", "00")
+ self.bid64_to_uint8_int("0", "[31A00000000009FB]", "255", "00")
+ self.bid64_to_uint8_int("0", "[31A0000000000A05]", "128", "01")
+ self.bid64_to_uint8_int("0", "[31A0000000000BBD]", "128", "01")
+ self.bid64_to_uint8_int("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint8_int("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_uint8_int("0", "[31C0000000000080]", "128", "00")
+ self.bid64_to_uint8_int("0", "[31C0000000000081]", "129", "00")
+ self.bid64_to_uint8_int("0", "[31C00000000000FF]", "255", "00")
+ self.bid64_to_uint8_int("0", "[31C0000000000100]", "128", "01")
+ self.bid64_to_uint8_int("0", "[31C0000000000101]", "128", "01")
+ self.bid64_to_uint8_int("0", "[3200000000000003]", "128", "01")
+ self.bid64_to_uint8_int("0", "[6BF37DDA214E6000]", "0", "00")
+ self.bid64_to_uint8_int("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint8_int("0", "[7800000000000000]", "128", "01")
+ self.bid64_to_uint8_int("0", "[7c00000000000000]", "128", "01")
+ self.bid64_to_uint8_int("0", "[7e00000000000000]", "128", "01")
+ self.bid64_to_uint8_int("0", "[7fdefd3de9fdfff9]", "128", "01")
+ }
+
+ private func bid64_to_uint8_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint8_rnint() {
+ self.bid64_to_uint8_rnint("0", "257", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[2FD1C37937E08000]", "0", "00")
+ self.bid64_to_uint8_rnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint8_rnint("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint8_rnint("0", "[30247E82C3A41000]", "126", "00")
+ self.bid64_to_uint8_rnint("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_uint8_rnint("0", "[3024879B1216B000]", "128", "00")
+ self.bid64_to_uint8_rnint("0", "[30248C2739500000]", "128", "00")
+ self.bid64_to_uint8_rnint("0", "[302490B360895000]", "128", "00")
+ self.bid64_to_uint8_rnint("0", "[3024953F87C2A000]", "129", "00")
+ self.bid64_to_uint8_rnint("0", "[30290F36242D6000]", "255", "00")
+ self.bid64_to_uint8_rnint("0", "[302913C24B66B000]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[3029184E72A00000]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[30291CDA99D95000]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[30292166C112A000]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[302AA87BEE538000]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[302AAD08158CD000]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint8_rnint("0", "[31A0000000000005]", "0", "00")
+ self.bid64_to_uint8_rnint("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint8_rnint("0", "[31A00000000004F1]", "126", "00")
+ self.bid64_to_uint8_rnint("0", "[31A00000000004FB]", "128", "00")
+ self.bid64_to_uint8_rnint("0", "[31A0000000000505]", "128", "00")
+ self.bid64_to_uint8_rnint("0", "[31A00000000009FB]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[31A0000000000A05]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[31A0000000000BBD]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint8_rnint("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_uint8_rnint("0", "[31C0000000000080]", "128", "00")
+ self.bid64_to_uint8_rnint("0", "[31C0000000000081]", "129", "00")
+ self.bid64_to_uint8_rnint("0", "[31C00000000000FF]", "255", "00")
+ self.bid64_to_uint8_rnint("0", "[31C0000000000100]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[31C0000000000101]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[3200000000000003]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "5.5", "6", "00")
+ self.bid64_to_uint8_rnint("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint8_rnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint8_rnint("0", "[7800000000000000]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[7c00000000000000]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[7e00000000000000]", "128", "01")
+ self.bid64_to_uint8_rnint("0", "[c75c6f712eb42b46]", "128", "01")
+ }
+
+ private func bid64_to_uint8_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint8_rninta() {
+ self.bid64_to_uint8_rninta("0", "[0040150180004000]", "0", "00")
+ self.bid64_to_uint8_rninta("0", "257", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[2FD1C37937E08000]", "1", "00")
+ self.bid64_to_uint8_rninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint8_rninta("0", "[2FE5543DF729C000]", "2", "00")
+ self.bid64_to_uint8_rninta("0", "[30247E82C3A41000]", "127", "00")
+ self.bid64_to_uint8_rninta("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_uint8_rninta("0", "[3024879B1216B000]", "128", "00")
+ self.bid64_to_uint8_rninta("0", "[30248C2739500000]", "128", "00")
+ self.bid64_to_uint8_rninta("0", "[302490B360895000]", "129", "00")
+ self.bid64_to_uint8_rninta("0", "[3024953F87C2A000]", "129", "00")
+ self.bid64_to_uint8_rninta("0", "[30290F36242D6000]", "255", "00")
+ self.bid64_to_uint8_rninta("0", "[302913C24B66B000]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[3029184E72A00000]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[30291CDA99D95000]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[30292166C112A000]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[302AA87BEE538000]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[302AAD08158CD000]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[31600000000003E7]", "1", "00")
+ self.bid64_to_uint8_rninta("0", "[31A0000000000005]", "1", "00")
+ self.bid64_to_uint8_rninta("0", "[31A000000000000F]", "2", "00")
+ self.bid64_to_uint8_rninta("0", "[31A00000000004F1]", "127", "00")
+ self.bid64_to_uint8_rninta("0", "[31A00000000004FB]", "128", "00")
+ self.bid64_to_uint8_rninta("0", "[31A0000000000505]", "129", "00")
+ self.bid64_to_uint8_rninta("0", "[31A00000000009FB]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[31A0000000000A05]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[31A0000000000BBD]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint8_rninta("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_uint8_rninta("0", "[31C0000000000080]", "128", "00")
+ self.bid64_to_uint8_rninta("0", "[31C0000000000081]", "129", "00")
+ self.bid64_to_uint8_rninta("0", "[31C00000000000FF]", "255", "00")
+ self.bid64_to_uint8_rninta("0", "[31C0000000000100]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[31C0000000000101]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[3200000000000003]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[6BF37DDA214E6000]", "1", "00")
+ self.bid64_to_uint8_rninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint8_rninta("0", "[7800000000000000]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[7c00000000000000]", "128", "01")
+ self.bid64_to_uint8_rninta("0", "[7e00000000000000]", "128", "01")
+ }
+
+ private func bid64_to_uint8_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint8_xceil() {
+ self.bid64_to_uint8_xceil("0", "257", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_uint8_xceil("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint8_xceil("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint8_xceil("0", "[30247E82C3A41000]", "127", "20")
+ self.bid64_to_uint8_xceil("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_uint8_xceil("0", "[3024879B1216B000]", "128", "20")
+ self.bid64_to_uint8_xceil("0", "[30248C2739500000]", "128", "00")
+ self.bid64_to_uint8_xceil("0", "[302490B360895000]", "129", "20")
+ self.bid64_to_uint8_xceil("0", "[3024953F87C2A000]", "129", "00")
+ self.bid64_to_uint8_xceil("0", "[30290F36242D6000]", "255", "00")
+ self.bid64_to_uint8_xceil("0", "[302913C24B66B000]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[3029184E72A00000]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[30291CDA99D95000]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[30292166C112A000]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[302AA87BEE538000]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[302AAD08158CD000]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint8_xceil("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_uint8_xceil("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint8_xceil("0", "[31A00000000004F1]", "127", "20")
+ self.bid64_to_uint8_xceil("0", "[31A00000000004FB]", "128", "20")
+ self.bid64_to_uint8_xceil("0", "[31A0000000000505]", "129", "20")
+ self.bid64_to_uint8_xceil("0", "[31A00000000009FB]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[31A0000000000A05]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[31A0000000000BBD]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint8_xceil("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_uint8_xceil("0", "[31C0000000000080]", "128", "00")
+ self.bid64_to_uint8_xceil("0", "[31C0000000000081]", "129", "00")
+ self.bid64_to_uint8_xceil("0", "[31C00000000000FF]", "255", "00")
+ self.bid64_to_uint8_xceil("0", "[31C0000000000100]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[31C0000000000101]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[3200000000000003]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[593b15e7811c00fa]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint8_xceil("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint8_xceil("0", "[7800000000000000]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[7c00000000000000]", "128", "01")
+ self.bid64_to_uint8_xceil("0", "[7e00000000000000]", "128", "01")
+ }
+
+ private func bid64_to_uint8_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint8_xfloor() {
+ self.bid64_to_uint8_xfloor("0", "257", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint8_xfloor("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint8_xfloor("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_uint8_xfloor("0", "[30247E82C3A41000]", "126", "20")
+ self.bid64_to_uint8_xfloor("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_uint8_xfloor("0", "[3024879B1216B000]", "127", "20")
+ self.bid64_to_uint8_xfloor("0", "[30248C2739500000]", "128", "00")
+ self.bid64_to_uint8_xfloor("0", "[302490B360895000]", "128", "20")
+ self.bid64_to_uint8_xfloor("0", "[3024953F87C2A000]", "129", "00")
+ self.bid64_to_uint8_xfloor("0", "[30290F36242D6000]", "255", "00")
+ self.bid64_to_uint8_xfloor("0", "[302913C24B66B000]", "255", "20")
+ self.bid64_to_uint8_xfloor("0", "[3029184E72A00000]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[30291CDA99D95000]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[30292166C112A000]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[302AA87BEE538000]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[302AAD08158CD000]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_uint8_xfloor("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint8_xfloor("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_uint8_xfloor("0", "[31A00000000004F1]", "126", "20")
+ self.bid64_to_uint8_xfloor("0", "[31A00000000004FB]", "127", "20")
+ self.bid64_to_uint8_xfloor("0", "[31A0000000000505]", "128", "20")
+ self.bid64_to_uint8_xfloor("0", "[31A00000000009FB]", "255", "20")
+ self.bid64_to_uint8_xfloor("0", "[31A0000000000A05]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[31A0000000000BBD]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint8_xfloor("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_uint8_xfloor("0", "[31C0000000000080]", "128", "00")
+ self.bid64_to_uint8_xfloor("0", "[31C0000000000081]", "129", "00")
+ self.bid64_to_uint8_xfloor("0", "[31C00000000000FF]", "255", "00")
+ self.bid64_to_uint8_xfloor("0", "[31C0000000000100]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[31C0000000000101]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[3200000000000003]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_uint8_xfloor("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint8_xfloor("0", "[7800000000000000]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[7c00000000000000]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[7e00000000000000]", "128", "01")
+ self.bid64_to_uint8_xfloor("0", "[ba88f77325d9f597]", "128", "01")
+ }
+
+ private func bid64_to_uint8_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint8_xint() {
+ self.bid64_to_uint8_xint("0", "257", "128", "01")
+ self.bid64_to_uint8_xint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint8_xint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint8_xint("0", "[2FE5543DF729C000]", "1", "20")
+ self.bid64_to_uint8_xint("0", "[30247E82C3A41000]", "126", "20")
+ self.bid64_to_uint8_xint("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_uint8_xint("0", "[3024879B1216B000]", "127", "20")
+ self.bid64_to_uint8_xint("0", "[30248C2739500000]", "128", "00")
+ self.bid64_to_uint8_xint("0", "[302490B360895000]", "128", "20")
+ self.bid64_to_uint8_xint("0", "[3024953F87C2A000]", "129", "00")
+ self.bid64_to_uint8_xint("0", "[30290F36242D6000]", "255", "00")
+ self.bid64_to_uint8_xint("0", "[302913C24B66B000]", "255", "20")
+ self.bid64_to_uint8_xint("0", "[3029184E72A00000]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[30291CDA99D95000]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[30292166C112A000]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[302AA87BEE538000]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[302AAD08158CD000]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[31600000000003E7]", "0", "20")
+ self.bid64_to_uint8_xint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint8_xint("0", "[31A000000000000F]", "1", "20")
+ self.bid64_to_uint8_xint("0", "[31A00000000004F1]", "126", "20")
+ self.bid64_to_uint8_xint("0", "[31A00000000004FB]", "127", "20")
+ self.bid64_to_uint8_xint("0", "[31A0000000000505]", "128", "20")
+ self.bid64_to_uint8_xint("0", "[31A00000000009FB]", "255", "20")
+ self.bid64_to_uint8_xint("0", "[31A0000000000A05]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[31A0000000000BBD]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint8_xint("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_uint8_xint("0", "[31C0000000000080]", "128", "00")
+ self.bid64_to_uint8_xint("0", "[31C0000000000081]", "129", "00")
+ self.bid64_to_uint8_xint("0", "[31C00000000000FF]", "255", "00")
+ self.bid64_to_uint8_xint("0", "[31C0000000000100]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[31C0000000000101]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[31c0000200066846]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[3200000000000003]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[6BF37DDA214E6000]", "0", "20")
+ self.bid64_to_uint8_xint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint8_xint("0", "[7800000000000000]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[7c00000000000000]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[7e00000000000000]", "128", "01")
+ self.bid64_to_uint8_xint("0", "[dfac1f7b3bd90c1f]", "128", "01")
+ }
+
+ private func bid64_to_uint8_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint8_xrnint() {
+ self.bid64_to_uint8_xrnint("0", "257", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[2FD1C37937E08000]", "0", "20")
+ self.bid64_to_uint8_xrnint("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint8_xrnint("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint8_xrnint("0", "[30247E82C3A41000]", "126", "20")
+ self.bid64_to_uint8_xrnint("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_uint8_xrnint("0", "[3024879B1216B000]", "128", "20")
+ self.bid64_to_uint8_xrnint("0", "[30248C2739500000]", "128", "00")
+ self.bid64_to_uint8_xrnint("0", "[302490B360895000]", "128", "20")
+ self.bid64_to_uint8_xrnint("0", "[3024953F87C2A000]", "129", "00")
+ self.bid64_to_uint8_xrnint("0", "[30290F36242D6000]", "255", "00")
+ self.bid64_to_uint8_xrnint("0", "[302913C24B66B000]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[3029184E72A00000]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[30291CDA99D95000]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[30292166C112A000]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[302AA87BEE538000]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[302AAD08158CD000]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint8_xrnint("0", "[31A0000000000005]", "0", "20")
+ self.bid64_to_uint8_xrnint("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint8_xrnint("0", "[31A00000000004F1]", "126", "20")
+ self.bid64_to_uint8_xrnint("0", "[31A00000000004FB]", "128", "20")
+ self.bid64_to_uint8_xrnint("0", "[31A0000000000505]", "128", "20")
+ self.bid64_to_uint8_xrnint("0", "[31A00000000009FB]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[31A0000000000A05]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[31A0000000000BBD]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint8_xrnint("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_uint8_xrnint("0", "[31C0000000000080]", "128", "00")
+ self.bid64_to_uint8_xrnint("0", "[31C0000000000081]", "129", "00")
+ self.bid64_to_uint8_xrnint("0", "[31C00000000000FF]", "255", "00")
+ self.bid64_to_uint8_xrnint("0", "[31C0000000000100]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[31C0000000000101]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[3200000000000003]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint8_xrnint("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint8_xrnint("0", "[7800000000000000]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[7c00000000000000]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[7e00000000000000]", "128", "01")
+ self.bid64_to_uint8_xrnint("0", "[9ca58190ace2edcb]", "0", "20")
+ }
+
+ private func bid64_to_uint8_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_uint8_xrninta() {
+ self.bid64_to_uint8_xrninta("0", "[0440001900100010]", "0", "20")
+ self.bid64_to_uint8_xrninta("0", "257", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[2FD1C37937E08000]", "1", "20")
+ self.bid64_to_uint8_xrninta("0", "[2FE38D7EA4C68000]", "1", "00")
+ self.bid64_to_uint8_xrninta("0", "[2FE5543DF729C000]", "2", "20")
+ self.bid64_to_uint8_xrninta("0", "[30247E82C3A41000]", "127", "20")
+ self.bid64_to_uint8_xrninta("0", "[3024830EEADD6000]", "127", "00")
+ self.bid64_to_uint8_xrninta("0", "[3024879B1216B000]", "128", "20")
+ self.bid64_to_uint8_xrninta("0", "[30248C2739500000]", "128", "00")
+ self.bid64_to_uint8_xrninta("0", "[302490B360895000]", "129", "20")
+ self.bid64_to_uint8_xrninta("0", "[3024953F87C2A000]", "129", "00")
+ self.bid64_to_uint8_xrninta("0", "[30290F36242D6000]", "255", "00")
+ self.bid64_to_uint8_xrninta("0", "[302913C24B66B000]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[3029184E72A00000]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[30291CDA99D95000]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[30292166C112A000]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[302AA87BEE538000]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[302AAD08158CD000]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[31600000000003E7]", "1", "20")
+ self.bid64_to_uint8_xrninta("0", "[31A0000000000005]", "1", "20")
+ self.bid64_to_uint8_xrninta("0", "[31A000000000000F]", "2", "20")
+ self.bid64_to_uint8_xrninta("0", "[31A00000000004F1]", "127", "20")
+ self.bid64_to_uint8_xrninta("0", "[31A00000000004FB]", "128", "20")
+ self.bid64_to_uint8_xrninta("0", "[31A0000000000505]", "129", "20")
+ self.bid64_to_uint8_xrninta("0", "[31A00000000009FB]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[31A0000000000A05]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[31A0000000000BBD]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[31C0000000000001]", "1", "00")
+ self.bid64_to_uint8_xrninta("0", "[31C000000000007F]", "127", "00")
+ self.bid64_to_uint8_xrninta("0", "[31C0000000000080]", "128", "00")
+ self.bid64_to_uint8_xrninta("0", "[31C0000000000081]", "129", "00")
+ self.bid64_to_uint8_xrninta("0", "[31C00000000000FF]", "255", "00")
+ self.bid64_to_uint8_xrninta("0", "[31C0000000000100]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[31C0000000000101]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[31c0000014480202]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[3200000000000003]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[6BF37DDA214E6000]", "1", "20")
+ self.bid64_to_uint8_xrninta("0", "[6C7386F26FC10000]", "0", "00")
+ self.bid64_to_uint8_xrninta("0", "[7800000000000000]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[7c00000000000000]", "128", "01")
+ self.bid64_to_uint8_xrninta("0", "[7e00000000000000]", "128", "01")
+ }
+
+ private func bid64_to_uint8_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int16_ceil() {
+ self.bid128_to_int16_ceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_to_int16_ceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int16_ceil("0", "-1", "-1", "00")
+ self.bid128_to_int16_ceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_int16_ceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int16_ceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int16_ceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int16_ceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int16_ceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_int16_ceil("0", "[3006A18D232A1F3367BA2C5010000000]", "32767", "00")
+ self.bid128_to_int16_ceil("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_int16_ceil("0", "[3006A18E66482EE1D52C441AB0000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[3006A18F07D736B90BE5500000000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[3006A18FA9663E90429E5BE550000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[3006A1904AF54667795767CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[3007431CCC905DC3AA58883560000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[3007431D6E1F659AE111941AB0000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[3007431E0FAE6D7217CAA00000000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[3007431EB13D75494E83ABE550000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[3007431F52CC7D20853CB7CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int16_ceil("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_int16_ceil("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int16_ceil("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_int16_ceil("0", "[303E000000000000000000000004FFF1]", "32767", "00")
+ self.bid128_to_int16_ceil("0", "[303E000000000000000000000004FFFB]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[303E0000000000000000000000050005]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[303E000000000000000000000009FFFB]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[303E00000000000000000000000A0005]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int16_ceil("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_int16_ceil("0", "[30400000000000000000000000008000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[30400000000000000000000000008001]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[3040000000000000000000000000FFFF]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[30400000000000000000000000010000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[30400000000000000000000000010001]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int16_ceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int16_ceil("0", "32769", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[78000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[7c000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[7c003fffffffffff38c15b08ffffffff]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[7c003fffffffffff38c15b0affffffff]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[7e000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_ceil("0", "[ec6cd5e4e62893f4,de1bdc47bf57a63d]", "0", "00")
+ }
+
+ private func bid128_to_int16_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int16_floor() {
+ self.bid128_to_int16_floor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int16_floor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int16_floor("0", "-1", "-1", "00")
+ self.bid128_to_int16_floor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int16_floor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int16_floor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int16_floor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_int16_floor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int16_floor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_int16_floor("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "00")
+ self.bid128_to_int16_floor("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_int16_floor("0", "[3006A18E66482EE1D52C441AB0000000]", "32767", "00")
+ self.bid128_to_int16_floor("0", "[3006A18F07D736B90BE5500000000000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[3006A18FA9663E90429E5BE550000000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[3006A1904AF54667795767CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[3007431CCC905DC3AA58883560000000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[3007431D6E1F659AE111941AB0000000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[3007431E0FAE6D7217CAA00000000000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[3007431EB13D75494E83ABE550000000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[3007431F52CC7D20853CB7CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int16_floor("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int16_floor("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_int16_floor("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_int16_floor("0", "[303E000000000000000000000004FFF1]", "32766", "00")
+ self.bid128_to_int16_floor("0", "[303E000000000000000000000004FFFB]", "32767", "00")
+ self.bid128_to_int16_floor("0", "[303E0000000000000000000000050005]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[303E000000000000000000000009FFFB]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[303E00000000000000000000000A0005]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int16_floor("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_int16_floor("0", "[30400000000000000000000000008000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[30400000000000000000000000008001]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[3040000000000000000000000000FFFF]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[30400000000000000000000000010000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[30400000000000000000000000010001]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int16_floor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int16_floor("0", "32769", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[78000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[7c000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[7c003fffffffffff38c15b08ffffffff]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[7c003fffffffffff38c15b0affffffff]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[7e000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_floor("0", "[fdffffffffffffff,00862202c0800100]", "-32768", "01")
+ }
+
+ private func bid128_to_int16_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int16_int() {
+ self.bid128_to_int16_int("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int16_int("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int16_int("0", "-1", "-1", "00")
+ self.bid128_to_int16_int("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int16_int("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int16_int("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int16_int("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_int16_int("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int16_int("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_int16_int("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "00")
+ self.bid128_to_int16_int("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_int16_int("0", "[3006A18E66482EE1D52C441AB0000000]", "32767", "00")
+ self.bid128_to_int16_int("0", "[3006A18F07D736B90BE5500000000000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[3006A18FA9663E90429E5BE550000000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[3006A1904AF54667795767CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[3007431CCC905DC3AA58883560000000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[3007431D6E1F659AE111941AB0000000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[3007431E0FAE6D7217CAA00000000000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[3007431EB13D75494E83ABE550000000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[3007431F52CC7D20853CB7CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int16_int("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int16_int("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_int16_int("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_int16_int("0", "[303E000000000000000000000004FFF1]", "32766", "00")
+ self.bid128_to_int16_int("0", "[303E000000000000000000000004FFFB]", "32767", "00")
+ self.bid128_to_int16_int("0", "[303E0000000000000000000000050005]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[303E000000000000000000000009FFFB]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[303E00000000000000000000000A0005]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int16_int("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_int16_int("0", "[30400000000000000000000000008000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[30400000000000000000000000008001]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[3040000000000000000000000000FFFF]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[30400000000000000000000000010000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[30400000000000000000000000010001]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int16_int("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int16_int("0", "32769", "-32768", "01")
+ self.bid128_to_int16_int("0", "[78000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[7c000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[7c003fffffffffff38c15b08ffffffff]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[7c003fffffffffff38c15b0affffffff]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[7e000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_int("0", "[d1dfabdfe2855921,ffeeca37bbf39e07]", "-32768", "01")
+ }
+
+ private func bid128_to_int16_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int16_rnint() {
+ self.bid128_to_int16_rnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int16_rnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int16_rnint("0", "-1", "-1", "00")
+ self.bid128_to_int16_rnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int16_rnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int16_rnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int16_rnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int16_rnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int16_rnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_int16_rnint("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "00")
+ self.bid128_to_int16_rnint("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_int16_rnint("0", "[3006A18E66482EE1D52C441AB0000000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[3006A18F07D736B90BE5500000000000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[3006A18FA9663E90429E5BE550000000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[3006A1904AF54667795767CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[3007431CCC905DC3AA58883560000000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[3007431D6E1F659AE111941AB0000000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[3007431E0FAE6D7217CAA00000000000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[3007431EB13D75494E83ABE550000000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[3007431F52CC7D20853CB7CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int16_rnint("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int16_rnint("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int16_rnint("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_int16_rnint("0", "[303E000000000000000000000004FFF1]", "32766", "00")
+ self.bid128_to_int16_rnint("0", "[303E000000000000000000000004FFFB]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[303E0000000000000000000000050005]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[303E000000000000000000000009FFFB]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[303E00000000000000000000000A0005]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int16_rnint("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_int16_rnint("0", "[30400000000000000000000000008000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[30400000000000000000000000008001]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[3040000000000000000000000000FFFF]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[30400000000000000000000000010000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[30400000000000000000000000010001]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int16_rnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int16_rnint("0", "32769", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[6edff9cfffbd6afb,0000004110002000]", "0", "00")
+ self.bid128_to_int16_rnint("0", "[78000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[7c000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[7c003fffffffffff38c15b08ffffffff]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[7c003fffffffffff38c15b0affffffff]", "-32768", "01")
+ self.bid128_to_int16_rnint("0", "[7e000000000000000000000000000000]", "-32768", "01")
+ }
+
+ private func bid128_to_int16_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int16_rninta() {
+ self.bid128_to_int16_rninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int16_rninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int16_rninta("0", "-1", "-1", "00")
+ self.bid128_to_int16_rninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_int16_rninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int16_rninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int16_rninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int16_rninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int16_rninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_int16_rninta("0", "[3006A18D232A1F3367BA2C5010000000]", "32767", "00")
+ self.bid128_to_int16_rninta("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_int16_rninta("0", "[3006A18E66482EE1D52C441AB0000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[3006A18F07D736B90BE5500000000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[3006A18FA9663E90429E5BE550000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[3006A1904AF54667795767CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[3007431CCC905DC3AA58883560000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[3007431D6E1F659AE111941AB0000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[3007431E0FAE6D7217CAA00000000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[3007431EB13D75494E83ABE550000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[3007431F52CC7D20853CB7CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int16_rninta("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_int16_rninta("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int16_rninta("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_int16_rninta("0", "[303E000000000000000000000004FFF1]", "32767", "00")
+ self.bid128_to_int16_rninta("0", "[303E000000000000000000000004FFFB]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[303E0000000000000000000000050005]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[303E000000000000000000000009FFFB]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[303E00000000000000000000000A0005]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int16_rninta("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_int16_rninta("0", "[30400000000000000000000000008000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[30400000000000000000000000008001]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[3040000000000000000000000000FFFF]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[30400000000000000000000000010000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[30400000000000000000000000010001]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int16_rninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int16_rninta("0", "32769", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[78000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[7c000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[7c003fffffffffff38c15b08ffffffff]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[7c003fffffffffff38c15b0affffffff]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[7e000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_rninta("0", "[ffffffff7fdffdff,004ab50411000471]", "-32768", "01")
+ }
+
+ private func bid128_to_int16_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int16_xceil() {
+ self.bid128_to_int16_xceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "20")
+ self.bid128_to_int16_xceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int16_xceil("0", "-1", "-1", "00")
+ self.bid128_to_int16_xceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_int16_xceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int16_xceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int16_xceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int16_xceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int16_xceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_int16_xceil("0", "[3006A18D232A1F3367BA2C5010000000]", "32767", "20")
+ self.bid128_to_int16_xceil("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_int16_xceil("0", "[3006A18E66482EE1D52C441AB0000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[3006A18F07D736B90BE5500000000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[3006A18FA9663E90429E5BE550000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[3006A1904AF54667795767CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[3007431CCC905DC3AA58883560000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[3007431D6E1F659AE111941AB0000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[3007431E0FAE6D7217CAA00000000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[3007431EB13D75494E83ABE550000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[3007431F52CC7D20853CB7CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int16_xceil("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_int16_xceil("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int16_xceil("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_int16_xceil("0", "[303E000000000000000000000004FFF1]", "32767", "20")
+ self.bid128_to_int16_xceil("0", "[303E000000000000000000000004FFFB]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[303E0000000000000000000000050005]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[303E000000000000000000000009FFFB]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[303E00000000000000000000000A0005]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int16_xceil("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_int16_xceil("0", "[30400000000000000000000000008000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[30400000000000000000000000008001]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[3040000000000000000000000000FFFF]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[30400000000000000000000000010000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[30400000000000000000000000010001]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int16_xceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int16_xceil("0", "32769", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[78000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[7c000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[7c003fffffffffff38c15b08ffffffff]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[7c003fffffffffff38c15b0affffffff]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[7e000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xceil("0", "[86f99c8c515c9df2,beaa9a92a7855450]", "0", "20")
+ }
+
+ private func bid128_to_int16_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int16_xfloor() {
+ self.bid128_to_int16_xfloor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int16_xfloor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int16_xfloor("0", "-1", "-1", "00")
+ self.bid128_to_int16_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int16_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int16_xfloor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int16_xfloor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_int16_xfloor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int16_xfloor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_int16_xfloor("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "20")
+ self.bid128_to_int16_xfloor("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_int16_xfloor("0", "[3006A18E66482EE1D52C441AB0000000]", "32767", "20")
+ self.bid128_to_int16_xfloor("0", "[3006A18F07D736B90BE5500000000000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[3006A18FA9663E90429E5BE550000000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[3006A1904AF54667795767CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[3007431CCC905DC3AA58883560000000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[3007431D6E1F659AE111941AB0000000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[3007431E0FAE6D7217CAA00000000000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[3007431EB13D75494E83ABE550000000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[3007431F52CC7D20853CB7CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int16_xfloor("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int16_xfloor("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_int16_xfloor("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_int16_xfloor("0", "[303E000000000000000000000004FFF1]", "32766", "20")
+ self.bid128_to_int16_xfloor("0", "[303E000000000000000000000004FFFB]", "32767", "20")
+ self.bid128_to_int16_xfloor("0", "[303E0000000000000000000000050005]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[303E000000000000000000000009FFFB]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[303E00000000000000000000000A0005]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int16_xfloor("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_int16_xfloor("0", "[30400000000000000000000000008000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[30400000000000000000000000008001]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[3040000000000000000000000000FFFF]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[30400000000000000000000000010000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[30400000000000000000000000010001]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int16_xfloor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int16_xfloor("0", "32769", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[78000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[7c000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[7c003fffffffffff38c15b08ffffffff]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[7c003fffffffffff38c15b0affffffff]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[7e000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xfloor("0", "[d1fd4ec1ed362d0f,2c776389394c4681]", "-32768", "01")
+ }
+
+ private func bid128_to_int16_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int16_xint() {
+ self.bid128_to_int16_xint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int16_xint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int16_xint("0", "-1", "-1", "00")
+ self.bid128_to_int16_xint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int16_xint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int16_xint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int16_xint("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_int16_xint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int16_xint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_int16_xint("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "20")
+ self.bid128_to_int16_xint("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_int16_xint("0", "[3006A18E66482EE1D52C441AB0000000]", "32767", "20")
+ self.bid128_to_int16_xint("0", "[3006A18F07D736B90BE5500000000000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[3006A18FA9663E90429E5BE550000000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[3006A1904AF54667795767CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[3007431CCC905DC3AA58883560000000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[3007431D6E1F659AE111941AB0000000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[3007431E0FAE6D7217CAA00000000000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[3007431EB13D75494E83ABE550000000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[3007431F52CC7D20853CB7CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int16_xint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int16_xint("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_int16_xint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_int16_xint("0", "[303E000000000000000000000004FFF1]", "32766", "20")
+ self.bid128_to_int16_xint("0", "[303E000000000000000000000004FFFB]", "32767", "20")
+ self.bid128_to_int16_xint("0", "[303E0000000000000000000000050005]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[303E000000000000000000000009FFFB]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[303E00000000000000000000000A0005]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int16_xint("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_int16_xint("0", "[30400000000000000000000000008000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[30400000000000000000000000008001]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[3040000000000000000000000000FFFF]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[30400000000000000000000000010000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[30400000000000000000000000010001]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int16_xint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int16_xint("0", "32769", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[78000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[7c000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[7c003fffffffffff38c15b08ffffffff]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[7c003fffffffffff38c15b0affffffff]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[7e000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xint("0", "[7ebfbeccd7abf7fd,2630580322006946]", "-32768", "01")
+ }
+
+ private func bid128_to_int16_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int16_xrnint() {
+ self.bid128_to_int16_xrnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int16_xrnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int16_xrnint("0", "-1", "-1", "00")
+ self.bid128_to_int16_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int16_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int16_xrnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int16_xrnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int16_xrnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int16_xrnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_int16_xrnint("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "20")
+ self.bid128_to_int16_xrnint("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_int16_xrnint("0", "[3006A18E66482EE1D52C441AB0000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[3006A18F07D736B90BE5500000000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[3006A18FA9663E90429E5BE550000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[3006A1904AF54667795767CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[3007431CCC905DC3AA58883560000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[3007431D6E1F659AE111941AB0000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[3007431E0FAE6D7217CAA00000000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[3007431EB13D75494E83ABE550000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[3007431F52CC7D20853CB7CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int16_xrnint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int16_xrnint("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int16_xrnint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_int16_xrnint("0", "[303E000000000000000000000004FFF1]", "32766", "20")
+ self.bid128_to_int16_xrnint("0", "[303E000000000000000000000004FFFB]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[303E0000000000000000000000050005]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[303E000000000000000000000009FFFB]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[303E00000000000000000000000A0005]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int16_xrnint("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_int16_xrnint("0", "[30400000000000000000000000008000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[30400000000000000000000000008001]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[3040000000000000000000000000FFFF]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[30400000000000000000000000010000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[30400000000000000000000000010001]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int16_xrnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int16_xrnint("0", "32769", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[78000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[7c000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[7c003fffffffffff38c15b08ffffffff]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[7c003fffffffffff38c15b0affffffff]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[7e000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[b0180008e0978480,65c06a68ac5e8008]", "-32768", "01")
+ self.bid128_to_int16_xrnint("0", "[f7fff7ffffffffdd,dffff7ffffffffff]", "0", "00")
+ }
+
+ private func bid128_to_int16_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int16_xrninta() {
+ self.bid128_to_int16_xrninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int16_xrninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int16_xrninta("0", "-1", "-1", "00")
+ self.bid128_to_int16_xrninta("0", "[1cd84183b570c9e0,64088e816def2cca]", "0", "20")
+ self.bid128_to_int16_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_int16_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int16_xrninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int16_xrninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int16_xrninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int16_xrninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_int16_xrninta("0", "[3006A18D232A1F3367BA2C5010000000]", "32767", "20")
+ self.bid128_to_int16_xrninta("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_int16_xrninta("0", "[3006A18E66482EE1D52C441AB0000000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[3006A18F07D736B90BE5500000000000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[3006A18FA9663E90429E5BE550000000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[3006A1904AF54667795767CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[3007431CCC905DC3AA58883560000000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[3007431D6E1F659AE111941AB0000000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[3007431E0FAE6D7217CAA00000000000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[3007431EB13D75494E83ABE550000000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[3007431F52CC7D20853CB7CAA0000000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int16_xrninta("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_int16_xrninta("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int16_xrninta("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_int16_xrninta("0", "[303E000000000000000000000004FFF1]", "32767", "20")
+ self.bid128_to_int16_xrninta("0", "[303E000000000000000000000004FFFB]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[303E0000000000000000000000050005]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[303E000000000000000000000009FFFB]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[303E00000000000000000000000A0005]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int16_xrninta("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_int16_xrninta("0", "[30400000000000000000000000008000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[30400000000000000000000000008001]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[3040000000000000000000000000FFFF]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[30400000000000000000000000010000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[30400000000000000000000000010001]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int16_xrninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int16_xrninta("0", "32769", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[78000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[7c000000000000000000000000000000]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[7c003fffffffffff38c15b08ffffffff]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[7c003fffffffffff38c15b0affffffff]", "-32768", "01")
+ self.bid128_to_int16_xrninta("0", "[7e000000000000000000000000000000]", "-32768", "01")
+ }
+
+ private func bid128_to_int16_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int16 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int32_ceil() {
+ self.bid128_to_int32_ceil("0", "-0", "0", "00")
+ self.bid128_to_int32_ceil("0", "0", "0", "00")
+ self.bid128_to_int32_ceil("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[0000000000000000,000114a409a08080]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[0000000000000000,84bf280afe3db8bf]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[00a038000821d448,bf7e1b8d6fe9ea97]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[0b3338a4e395a599,abb6d2370e605859]", "1", "00")
+ self.bid128_to_int32_ceil("0", "1.0", "1", "00")
+ self.bid128_to_int32_ceil("0", "1073741824", "1073741824", "00")
+ self.bid128_to_int32_ceil("0", "1", "1", "00")
+ self.bid128_to_int32_ceil("0", "[1439a12c3261105e,f1b0fb7822655799]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[183fd8eb018ee455,6548a59b00094a36]", "1", "00")
+ self.bid128_to_int32_ceil("0", "2147483648", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[2d35b8e5f582b212,7af6c8d1b9125f70]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[2fc4000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[2FFE314DC6448D9338C15B0A00000001]", "2", "00")
+ self.bid128_to_int32_ceil("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "2", "00")
+ self.bid128_to_int32_ceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int32_ceil("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_int32_ceil("0", "[3000401000032408,fef8f6fc17e9efd2]", "13", "00")
+ self.bid128_to_int32_ceil("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[300293E952CDA8B9AA44111E00000001]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[30040ECA8847C4129106CE8300000001]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[300A0003C95A2F0B4856475FE0000001]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[300C000060EF6B1ABA6F072330000001]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[300c380341004509,1801c14004921108]", "11360728", "00")
+ self.bid128_to_int32_ceil("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[301069E10DE692B4B4B133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE6FC95C29899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE6FC95C29899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE6FC95C29899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE76676D080000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3011124000004208,7fffffffffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301400010042c811,971a8281cc618f2e]", "7930890", "00")
+ self.bid128_to_int32_ceil("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30180002B5E3AF13FBA450E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30180002B5E3AF13FBA450E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[301a000001400068,080c9900409990c0]", "38685819", "00")
+ self.bid128_to_int32_ceil("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[301A000045639181BA2CDCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00004563918244F4000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[301E000000000001A055690D9DB80001]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[302000000000000029A2241AF62C0001]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[3020000000201240,cfaf46ff83ff7fff]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[3024000000000000006A94D74F430001]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[302A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302C000000000000000002BBA7F521FF]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[302C000000000000000002BBA7F52200]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[302C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[302E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[303000000000000000000006FC23AC01]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[303200000000000000000000B2D05E01]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303800000000000000000000002DDA47]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303800000000000000000000002DDA48]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[303A00000000000000000000000495D3]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303A00000000000000000000000495D4]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303C0000000000000000000000007561]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303C0000000000000000000000007562]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int32_ceil("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[303E0000000000000000000000000BB9]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[303E00000000000000000004FFFFFFF1]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[303E00000000000000000004FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[303E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[303E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[303E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[303E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[303E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[303E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[303E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int32_ceil("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int32_ceil("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int32_ceil("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[30400000000000000000000080000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[304000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[304000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[304000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int32_ceil("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int32_ceil("0", "[304200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int32_ceil("0", "[30520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[30540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[4918f959f2e23dc2,68ce9bb9a88e4011]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "5.05", "6", "00")
+ self.bid128_to_int32_ceil("0", "[50afc0fdc842c3ac,34774350084198bb]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "5.5", "6", "00")
+ self.bid128_to_int32_ceil("0", "[6479021868783169,05824ea1600b001a]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[78000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[78485446e5d40a02,c4483688108d3857]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[7c000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[7e000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[9332ad54e6331009,042244ce2a8684f1]", "0", "00")
+ self.bid128_to_int32_ceil("0", "-9", "-9", "00")
+ self.bid128_to_int32_ceil("0", "[a96715f9325a44e1,3f413f0de340cbd3]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int32_ceil("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "00")
+ self.bid128_to_int32_ceil("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "00")
+ self.bid128_to_int32_ceil("0", "[AFFE49F4A966D45CD522088F00000000]", "-1", "00")
+ self.bid128_to_int32_ceil("0", "[AFFE49F4A966D45CD522088F00000001]", "-1", "00")
+ self.bid128_to_int32_ceil("0", "[afff77fab7feedfe,45a2409a9ba02e42]", "-7", "00")
+ self.bid128_to_int32_ceil("0", "[b0017c6d988ec8d1,25b24d469a54f5c6]", "-77", "00")
+ self.bid128_to_int32_ceil("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-299", "00")
+ self.bid128_to_int32_ceil("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B00294286EACB8CB0A8CB6B140000001]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-299", "00")
+ self.bid128_to_int32_ceil("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-299", "00")
+ self.bid128_to_int32_ceil("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-299", "00")
+ self.bid128_to_int32_ceil("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "-2147483646", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "-2147483646", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "-2147483646", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "-2147483646", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE692B4B4B133125F000000]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE692B4B4B133125F000001]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE6FC95C29899892F800000]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE6FC95C29899892F800001]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE76676D080000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE76676D080000000000001]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE7D057DE676676D07FFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE7D057DE676676D0800000]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE7D057DE676676D0800001]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[b0116a00b5002803,d682fff98ffdd5ff]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[b014000044084001,0000080000000020]", "-2105495", "00")
+ self.bid128_to_int32_ceil("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "-2147483646", "00")
+ self.bid128_to_int32_ceil("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "-2147483646", "00")
+ self.bid128_to_int32_ceil("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "-2147483646", "00")
+ self.bid128_to_int32_ceil("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B0180002B5E3AF13FBA450E94E780000]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B0180002B5E3AF13FBA450E94E780001]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B0180002B5E3AF19676BAF16B1880000]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B0180002B5E3AF19676BAF16B1880001]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B01A000045639181BA2CDCFB7617FFFF]", "-2147483646", "00")
+ self.bid128_to_int32_ceil("0", "[B01A000045639181BA2CDCFB76180000]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B01A000045639181BA2CDCFB76180001]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B01A00004563918244F4000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B01A00004563918244F4000000000001]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B01A000045639182CFBB230489E7FFFF]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B01A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B01E000000000001A055690D9DB7FFFF]", "-299", "00")
+ self.bid128_to_int32_ceil("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B01E000000000001A055690D9DB80001]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B02000000000000029A2241AF62BFFFF]", "-299", "00")
+ self.bid128_to_int32_ceil("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B02000000000000029A2241AF62C0001]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[b020000000412100,a00000c000000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B024000000000000006A94D74F42FFFF]", "-299", "00")
+ self.bid128_to_int32_ceil("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B024000000000000006A94D74F430001]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B02A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02C000000000000000002BBA7F521FF]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B02C000000000000000002BBA7F52200]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B02C000000000000000002BBA7F52201]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B02C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B02E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B03000000000000000000006FC23ABFF]", "-299", "00")
+ self.bid128_to_int32_ceil("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03000000000000000000006FC23AC01]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03200000000000000000000B2D05DFF]", "-299", "00")
+ self.bid128_to_int32_ceil("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03200000000000000000000B2D05E01]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03800000000000000000000002DDA47]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03800000000000000000000002DDA48]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03800000000000000000000002DDA49]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[B03A00000000000000000000000495D3]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03A00000000000000000000000495D4]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03A00000000000000000000000495D5]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03C0000000000000000000000007561]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03C0000000000000000000000007562]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03C0000000000000000000000007563]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int32_ceil("0", "[B03E000000000000000000000000000F]", "-1", "00")
+ self.bid128_to_int32_ceil("0", "[B03E0000000000000000000000000BB7]", "-299", "00")
+ self.bid128_to_int32_ceil("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03E0000000000000000000000000BB9]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03E0000000000000000000000000BBD]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B03E00000000000000000004FFFFFFF1]", "-2147483646", "00")
+ self.bid128_to_int32_ceil("0", "[B03E00000000000000000004FFFFFFFB]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B03E0000000000000000000500000005]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B03E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B03E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B03E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B03E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B03E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B03E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int32_ceil("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int32_ceil("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int32_ceil("0", "[B040000000000000000000007FFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_ceil("0", "[B0400000000000000000000080000000]", "-2147483648", "00")
+ self.bid128_to_int32_ceil("0", "[B0400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B04000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B0400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B0400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B04000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B04000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int32_ceil("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int32_ceil("0", "[B04200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B0420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B0420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int32_ceil("0", "[B0520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B0520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[B0540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[c0acaab4903a5d35,2a97091f09a48523]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[c5799e203ad96a11,92d17cb72860e6b3]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[cae587a584dd9610,34721b920398ad2f]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[cfb54af90e99798e,8100000000000014]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[fbd6b77b4b5fdb3e,ff97fa7d5f72ffff]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[fd66946885a384a3,760997164b5e1975]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "[fffbbbefff5df77f,302020b4aea4dc82]", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_int32_ceil("0", "Infinity", "-2147483648", "01")
+ }
+
+ private func bid128_to_int32_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int32_floor() {
+ self.bid128_to_int32_floor("0", "-0", "0", "00")
+ self.bid128_to_int32_floor("0", "0", "0", "00")
+ self.bid128_to_int32_floor("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_floor("0", "[0000000000000000,0000040004000010]", "0", "00")
+ self.bid128_to_int32_floor("0", "[0000000000000000,6610d0133b800304]", "0", "00")
+ self.bid128_to_int32_floor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int32_floor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int32_floor("0", "[0200000200080080,3f73efdafde7ae7b]", "0", "00")
+ self.bid128_to_int32_floor("0", "[0400000000000000,fffffffeffffffff]", "0", "00")
+ self.bid128_to_int32_floor("0", "[075e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_floor("0", "1.0", "1", "00")
+ self.bid128_to_int32_floor("0", "1073741824", "1073741824", "00")
+ self.bid128_to_int32_floor("0", "1", "1", "00")
+ self.bid128_to_int32_floor("0", "2147483648", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_floor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int32_floor("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_int32_floor("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_int32_floor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int32_floor("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_int32_floor("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_floor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int32_floor("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_int32_floor("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_int32_floor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_int32_floor("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "00")
+ self.bid128_to_int32_floor("0", "[2fff9e5fffeadbef,0008724400210002]", "8", "00")
+ self.bid128_to_int32_floor("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "00")
+ self.bid128_to_int32_floor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int32_floor("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_int32_floor("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_int32_floor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_int32_floor("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "00")
+ self.bid128_to_int32_floor("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "00")
+ self.bid128_to_int32_floor("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int32_floor("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_int32_floor("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "00")
+ self.bid128_to_int32_floor("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int32_floor("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_int32_floor("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "00")
+ self.bid128_to_int32_floor("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int32_floor("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_int32_floor("0", "[300e7768669bd191,b6573e76bfb7096f]", "242187822", "00")
+ self.bid128_to_int32_floor("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "00")
+ self.bid128_to_int32_floor("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "00")
+ self.bid128_to_int32_floor("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483646", "00")
+ self.bid128_to_int32_floor("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483646", "00")
+ self.bid128_to_int32_floor("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[301069E10DE6FC95C29899892F800000]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[301069E10DE6FC95C29899892F800001]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[301069E10DE76676D080000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301193a68058f4c2,a100288064021012]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3016000000202031,fffbffff6fffffff]", "38837", "00")
+ self.bid128_to_int32_floor("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "00")
+ self.bid128_to_int32_floor("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "00")
+ self.bid128_to_int32_floor("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483646", "00")
+ self.bid128_to_int32_floor("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[30180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[30180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[30180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3018000c0d141800,ffbf7bffffbffeff]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_int32_floor("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_int32_floor("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "00")
+ self.bid128_to_int32_floor("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483646", "00")
+ self.bid128_to_int32_floor("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[301A00004563918244F4000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[301E000000000001A055690D9DB7FFFF]", "299", "00")
+ self.bid128_to_int32_floor("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int32_floor("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_int32_floor("0", "[302000000000000029A2241AF62BFFFF]", "299", "00")
+ self.bid128_to_int32_floor("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int32_floor("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_int32_floor("0", "[3020000000008000,23724bb255e92dfd]", "60446546", "00")
+ self.bid128_to_int32_floor("0", "[3024000000000000006A94D74F42FFFF]", "299", "00")
+ self.bid128_to_int32_floor("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int32_floor("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_int32_floor("0", "[302A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_int32_floor("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_int32_floor("0", "[302C000000000000000002BBA7F52201]", "300", "00")
+ self.bid128_to_int32_floor("0", "[302C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[302E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[303000000000000000000006FC23ABFF]", "299", "00")
+ self.bid128_to_int32_floor("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303200000000000000000000B2D05DFF]", "299", "00")
+ self.bid128_to_int32_floor("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303800000000000000000000002DDA49]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int32_floor("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303A00000000000000000000000495D5]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303C0000000000000000000000007563]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int32_floor("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_int32_floor("0", "[303E0000000000000000000000000BB7]", "299", "00")
+ self.bid128_to_int32_floor("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_int32_floor("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "00")
+ self.bid128_to_int32_floor("0", "[303E00000000000000000004FFFFFFFB]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[303E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[303E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[303E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[303E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[303E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[303E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[303E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int32_floor("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int32_floor("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int32_floor("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int32_floor("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_floor("0", "[30400000000000000000000080000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[30400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[304000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[30400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[30400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[304000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[304000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int32_floor("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int32_floor("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int32_floor("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int32_floor("0", "[304200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[30420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[30420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int32_floor("0", "[30520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[30520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[30540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[45b4000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_floor("0", "5.05", "5", "00")
+ self.bid128_to_int32_floor("0", "5.5", "5", "00")
+ self.bid128_to_int32_floor("0", "-6.69887795686678786E0", "-7", "00")
+ self.bid128_to_int32_floor("0", "[712e5910a82fe6ba,9f8bf498780c9ad4]", "0", "00")
+ self.bid128_to_int32_floor("0", "[7800000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[78000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[7994c6d5d34928bc,e8d503302f51f278]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[7c000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[7c5e7954ba9123c3,615ecf4a27a20ef6]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[7e00000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[7e000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[7fdefd3de9fdfff9,6efafffe7dfdeffd]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[97a5a7f69948f138,9da2ea208613a566]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[9f0e8b3b56699b01,bf8ebfff7bf705be]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[AFFCF684DF56C3E01BC6C73200000000]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[AFFE314DC6448D9338C15B0A00000001]", "-2", "00")
+ self.bid128_to_int32_floor("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-2", "00")
+ self.bid128_to_int32_floor("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "00")
+ self.bid128_to_int32_floor("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "00")
+ self.bid128_to_int32_floor("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B00293E952CDA8B9AA44111E00000001]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B00294286EACB8CB0A8CB6B140000000]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B0040ECA8847C4129106CE8300000001]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B00A0003C95A2F0B4856475FE0000001]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B00C000060EF6B1ABA6F072330000001]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[b00c59421d179059,e5b2cb6508cc45d6]", "-18103726", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE692B4B4B133125F000000]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE692B4B4B133125F000001]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE6FC95C29899892F800000]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE6FC95C29899892F800001]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE76676D080000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B01069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[b0112c889fb99805,80a048004509e84a]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[b01208a3e7b48298,de66fcd2b776fdc9]", "-1752451766", "00")
+ self.bid128_to_int32_floor("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[b018000200122051,ff77ffafff2fff7f]", "-1584782384", "00")
+ self.bid128_to_int32_floor("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B0180002B5E3AF13FBA450E94E780000]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B0180002B5E3AF13FBA450E94E780001]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B0180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B0180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B01A000045639181BA2CDCFB7617FFFF]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B01A000045639181BA2CDCFB76180000]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B01A000045639181BA2CDCFB76180001]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B01A00004563918244F4000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B01A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B01E000000000001A055690D9DB80001]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B02000000000000029A2241AF62C0001]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B024000000000000006A94D74F42FFFF]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B024000000000000006A94D74F430001]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B02A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02C000000000000000002BBA7F521FF]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B02C000000000000000002BBA7F52200]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B02C000000000000000002BBA7F52201]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B02C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B02E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B03000000000000000000006FC23ABFF]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B03000000000000000000006FC23AC01]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03200000000000000000000B2D05DFF]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B03200000000000000000000B2D05E01]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03800000000000000000000002DDA47]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03800000000000000000000002DDA48]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03800000000000000000000002DDA49]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03A00000000000000000000000003E7]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[B03A00000000000000000000000495D3]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03A00000000000000000000000495D4]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03A00000000000000000000000495D5]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03C0000000000000000000000007561]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03C0000000000000000000000007562]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03C0000000000000000000000007563]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03E0000000000000000000000000005]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[B03E000000000000000000000000000F]", "-2", "00")
+ self.bid128_to_int32_floor("0", "[B03E0000000000000000000000000BB7]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B03E0000000000000000000000000BB9]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03E0000000000000000000000000BBD]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[B03E00000000000000000004FFFFFFF1]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B03E00000000000000000004FFFFFFFB]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B03E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B03E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B03E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B03E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B03E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B03E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B03E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int32_floor("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int32_floor("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int32_floor("0", "[b040000000000000,0000000000006100]", "-24832", "00")
+ self.bid128_to_int32_floor("0", "[B040000000000000000000007FFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_floor("0", "[B0400000000000000000000080000000]", "-2147483648", "00")
+ self.bid128_to_int32_floor("0", "[B0400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B04000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B0400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B0400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B04000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B04000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int32_floor("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int32_floor("0", "[B04200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B0420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B0420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int32_floor("0", "[B0520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B0520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[B0540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[b7881c2dfea4f8a0,a1f42bb168953548]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[c09c634c31f58ebb,7656793ffe3b0660]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[c17ec4d75cfdb9db,dd6db66fce1dad32]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[cb4dd07a1a9a849a,17e3b1bdebd51564]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[cfc40fa61ff4de48,4b1435237d5f3a74]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[dc86ca6974f6083d,89620a1751399443]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[fbefdf6d2fffa6ff,ef5fdff81bff7cf7]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "[fc00000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "QNaN", "-2147483648", "01")
+ self.bid128_to_int32_floor("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_int32_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int32_int() {
+ self.bid128_to_int32_int("0", "-0", "0", "00")
+ self.bid128_to_int32_int("0", "0", "0", "00")
+ self.bid128_to_int32_int("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_int("0", "[0000000000000000,0000002000100000]", "0", "00")
+ self.bid128_to_int32_int("0", "[0000000000000000,cd8842fcb6bc5b7e]", "0", "00")
+ self.bid128_to_int32_int("0", "[0000000001004080,0000000000800000]", "0", "00")
+ self.bid128_to_int32_int("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int32_int("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int32_int("0", "1.0", "1", "00")
+ self.bid128_to_int32_int("0", "1073741824", "1073741824", "00")
+ self.bid128_to_int32_int("0", "1", "1", "00")
+ self.bid128_to_int32_int("0", "[1b7b39ff8d6a089e,87a3e129e01f6c37]", "0", "00")
+ self.bid128_to_int32_int("0", "[1bf97452eb9fbfb8,90e22ee467c25e5b]", "0", "00")
+ self.bid128_to_int32_int("0", "[1c6a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_int("0", "2147483648", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_int("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int32_int("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_int32_int("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_int32_int("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int32_int("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_int32_int("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_int("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int32_int("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_int32_int("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_int32_int("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_int32_int("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "00")
+ self.bid128_to_int32_int("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "00")
+ self.bid128_to_int32_int("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int32_int("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_int32_int("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_int32_int("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_int32_int("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "00")
+ self.bid128_to_int32_int("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "00")
+ self.bid128_to_int32_int("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int32_int("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_int32_int("0", "[3004b32e479d24ad,dcfe149692a5065d]", "3634", "00")
+ self.bid128_to_int32_int("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "00")
+ self.bid128_to_int32_int("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int32_int("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_int32_int("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "00")
+ self.bid128_to_int32_int("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int32_int("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_int32_int("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "00")
+ self.bid128_to_int32_int("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "00")
+ self.bid128_to_int32_int("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483646", "00")
+ self.bid128_to_int32_int("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483646", "00")
+ self.bid128_to_int32_int("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[301069E10DE6FC95C29899892F800000]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[301069E10DE6FC95C29899892F800001]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[301069E10DE76676D080000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3011a40044000004,e2e883e5753ece0f]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3014000000044110,0000000000000000]", "514", "00")
+ self.bid128_to_int32_int("0", "[3014000056101000,fd88bc71eeeae550]", "2663512", "00")
+ self.bid128_to_int32_int("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "00")
+ self.bid128_to_int32_int("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "00")
+ self.bid128_to_int32_int("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483646", "00")
+ self.bid128_to_int32_int("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[30180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_int32_int("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_int32_int("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "00")
+ self.bid128_to_int32_int("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483646", "00")
+ self.bid128_to_int32_int("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[301A00004563918244F4000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[301E000000000001A055690D9DB7FFFF]", "299", "00")
+ self.bid128_to_int32_int("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int32_int("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_int32_int("0", "[302000000000000029A2241AF62BFFFF]", "299", "00")
+ self.bid128_to_int32_int("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int32_int("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_int32_int("0", "[3020000000010000,ff57ffffeffffffd]", "120894421", "00")
+ self.bid128_to_int32_int("0", "[3020000000200040,0408028006040001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3024000000000000006A94D74F42FFFF]", "299", "00")
+ self.bid128_to_int32_int("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int32_int("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_int32_int("0", "[302A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_int32_int("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_int32_int("0", "[302C000000000000000002BBA7F52201]", "300", "00")
+ self.bid128_to_int32_int("0", "[302C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[302E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[303000000000000000000006FC23ABFF]", "299", "00")
+ self.bid128_to_int32_int("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int32_int("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_int32_int("0", "[303200000000000000000000B2D05DFF]", "299", "00")
+ self.bid128_to_int32_int("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int32_int("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_int32_int("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_int32_int("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_int32_int("0", "[303800000000000000000000002DDA49]", "300", "00")
+ self.bid128_to_int32_int("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int32_int("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_int32_int("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_int32_int("0", "[303A00000000000000000000000495D5]", "300", "00")
+ self.bid128_to_int32_int("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_int32_int("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_int32_int("0", "[303C0000000000000000000000007563]", "300", "00")
+ self.bid128_to_int32_int("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int32_int("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_int32_int("0", "[303E0000000000000000000000000BB7]", "299", "00")
+ self.bid128_to_int32_int("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int32_int("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_int32_int("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_int32_int("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "00")
+ self.bid128_to_int32_int("0", "[303E00000000000000000004FFFFFFFB]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[303E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[303E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[303E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[303E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[303E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[303E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[303E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int32_int("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int32_int("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int32_int("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int32_int("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_int("0", "[30400000000000000000000080000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[304000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[304000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[304000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int32_int("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int32_int("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int32_int("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int32_int("0", "[304200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int32_int("0", "[30520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[30d6000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_int("0", "[37ba000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_int("0", "[4a4c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_int("0", "5.5", "5", "00")
+ self.bid128_to_int32_int("0", "[5b1e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_int("0", "[7800000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[78000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[79ffecdee11b1bff,58a3091417010442]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[7c000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[7e000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[923774827bc97c77,823345d217ca41f6]", "0", "00")
+ self.bid128_to_int32_int("0", "-9", "-9", "00")
+ self.bid128_to_int32_int("0", "[99cebb57b0d4f19a,c82e536d4dc6f1f4]", "0", "00")
+ self.bid128_to_int32_int("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_int("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int32_int("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_int32_int("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_int32_int("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int32_int("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_int32_int("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_int("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int32_int("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "00")
+ self.bid128_to_int32_int("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "00")
+ self.bid128_to_int32_int("0", "[AFFE49F4A966D45CD522088F00000000]", "-1", "00")
+ self.bid128_to_int32_int("0", "[AFFE49F4A966D45CD522088F00000001]", "-1", "00")
+ self.bid128_to_int32_int("0", "[afffaf7fbffbfbbb,9928700620089144]", "-8", "00")
+ self.bid128_to_int32_int("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-299", "00")
+ self.bid128_to_int32_int("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B00294286EACB8CB0A8CB6B140000001]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-299", "00")
+ self.bid128_to_int32_int("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-299", "00")
+ self.bid128_to_int32_int("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-299", "00")
+ self.bid128_to_int32_int("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "-2147483646", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "-2147483646", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "-2147483646", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "-2147483646", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE692B4B4B133125F000000]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE692B4B4B133125F000001]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE6FC95C29899892F800000]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE6FC95C29899892F800001]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE76676D080000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE76676D080000000000001]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE7D057DE676676D07FFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE7D057DE676676D0800000]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE7D057DE676676D0800001]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[b01128888b309805,5ffff3ffef7717bf]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "-2147483646", "00")
+ self.bid128_to_int32_int("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "-2147483646", "00")
+ self.bid128_to_int32_int("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "-2147483646", "00")
+ self.bid128_to_int32_int("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B0180002B5E3AF13FBA450E94E780000]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B0180002B5E3AF13FBA450E94E780001]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B0180002B5E3AF19676BAF16B1880000]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B0180002B5E3AF19676BAF16B1880001]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[b0180008e0938680,05c06028201e8008]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B01A000045639181BA2CDCFB7617FFFF]", "-2147483646", "00")
+ self.bid128_to_int32_int("0", "[B01A000045639181BA2CDCFB76180000]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B01A000045639181BA2CDCFB76180001]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B01A00004563918244F4000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B01A00004563918244F4000000000001]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B01A000045639182CFBB230489E7FFFF]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B01A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B01E000000000001A055690D9DB7FFFF]", "-299", "00")
+ self.bid128_to_int32_int("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B01E000000000001A055690D9DB80001]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B02000000000000029A2241AF62BFFFF]", "-299", "00")
+ self.bid128_to_int32_int("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B02000000000000029A2241AF62C0001]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B024000000000000006A94D74F42FFFF]", "-299", "00")
+ self.bid128_to_int32_int("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B024000000000000006A94D74F430001]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B02A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02C000000000000000002BBA7F521FF]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B02C000000000000000002BBA7F52200]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B02C000000000000000002BBA7F52201]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B02C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B02E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B03000000000000000000006FC23ABFF]", "-299", "00")
+ self.bid128_to_int32_int("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03000000000000000000006FC23AC01]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03200000000000000000000B2D05DFF]", "-299", "00")
+ self.bid128_to_int32_int("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03200000000000000000000B2D05E01]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03800000000000000000000002DDA47]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03800000000000000000000002DDA48]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03800000000000000000000002DDA49]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int32_int("0", "[B03A00000000000000000000000495D3]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03A00000000000000000000000495D4]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03A00000000000000000000000495D5]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03C0000000000000000000000007561]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03C0000000000000000000000007562]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03C0000000000000000000000007563]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int32_int("0", "[B03E000000000000000000000000000F]", "-1", "00")
+ self.bid128_to_int32_int("0", "[B03E0000000000000000000000000BB7]", "-299", "00")
+ self.bid128_to_int32_int("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03E0000000000000000000000000BB9]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03E0000000000000000000000000BBD]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B03E00000000000000000004FFFFFFF1]", "-2147483646", "00")
+ self.bid128_to_int32_int("0", "[B03E00000000000000000004FFFFFFFB]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B03E0000000000000000000500000005]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B03E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B03E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B03E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B03E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B03E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B03E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int32_int("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int32_int("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int32_int("0", "[B040000000000000000000007FFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_int("0", "[B0400000000000000000000080000000]", "-2147483648", "00")
+ self.bid128_to_int32_int("0", "[B0400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B04000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B0400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B0400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B04000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B04000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int32_int("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int32_int("0", "[B04200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B0420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B0420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int32_int("0", "[B0520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B0520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[B0540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[bef7dbff6bdf3bfe,b4288d1808034018]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[c7943840d5b8dfdf,31a307e22851f769]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[dfffffffffffbfff,6830012051003800]", "0", "00")
+ self.bid128_to_int32_int("0", "[fafffffa7f7ff1ff,e0a8340008028408]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[fd5681fcbdfa7b5f,ffff7bfaf57ffffe]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "[fffffdfffffffefb,b7ebdff9fdf7efb6]", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "QNaN", "-2147483648", "01")
+ self.bid128_to_int32_int("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_int32_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int32_rnint() {
+ self.bid128_to_int32_rnint("0", "-0", "0", "00")
+ self.bid128_to_int32_rnint("0", "0", "0", "00")
+ self.bid128_to_int32_rnint("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[0000000000000000,0000403108001224]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[0000000000000000,18d42b41099d28ec]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int32_rnint("0", "0.5", "0", "00")
+ self.bid128_to_int32_rnint("0", "[052e40ff260f66e9,e6b58e5d6cb3e000]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[0e00050000058280,9e0ee0bab6221c03]", "0", "00")
+ self.bid128_to_int32_rnint("0", "1073741824", "1073741824", "00")
+ self.bid128_to_int32_rnint("0", "[187a973175f6e870,9d57b091f2e10220]", "0", "00")
+ self.bid128_to_int32_rnint("0", "2147483648", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[2f28819715e6d00c,9eb183d3ee2d6035]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_int32_rnint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_int32_rnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int32_rnint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_int32_rnint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_int32_rnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int32_rnint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_int32_rnint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_int32_rnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int32_rnint("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_int32_rnint("0", "[3000008410000040,18ec9ec0c2803301]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[30003940000a2150,001812a801093a5a]", "12", "00")
+ self.bid128_to_int32_rnint("0", "[3002004030410400,ffffdfffffffffef]", "1", "00")
+ self.bid128_to_int32_rnint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_int32_rnint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "00")
+ self.bid128_to_int32_rnint("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "00")
+ self.bid128_to_int32_rnint("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[301069E10DE6FC95C29899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301069E10DE6FC95C29899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301069E10DE76676D080000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30121e40033104a0,820d6c201d881900]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3018000200000001,c086254821615311]", "1584563251", "00")
+ self.bid128_to_int32_rnint("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "00")
+ self.bid128_to_int32_rnint("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "00")
+ self.bid128_to_int32_rnint("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[30180002B5E3AF13FBA450E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30180002B5E3AF13FBA450E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_int32_rnint("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[301A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A00004563918244F4000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[3020000000000000,211c4d300bcaadd6]", "239", "00")
+ self.bid128_to_int32_rnint("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[302A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_int32_rnint("0", "[302C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[302E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_int32_rnint("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int32_rnint("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_int32_rnint("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_int32_rnint("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int32_rnint("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "00")
+ self.bid128_to_int32_rnint("0", "[303E00000000000000000004FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[303E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[303E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[303E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[303E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[303E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[303E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[303E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int32_rnint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int32_rnint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int32_rnint("0", "[3040000000000000,0000000020000000]", "536870912", "00")
+ self.bid128_to_int32_rnint("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[30400000000000000000000080000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[304000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[304000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[304000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int32_rnint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int32_rnint("0", "[304200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int32_rnint("0", "[30520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[30540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[34b183f22b6458ec,947127aa1a36b4fe]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[356931477136c227,7ddff5ca27e6308e]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[35a68eda63486a6c,1ad6bdd146c4a8a2]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "5.5", "6", "00")
+ self.bid128_to_int32_rnint("0", "[6afb6edffdefffbd,daf99f997f8a4cf7]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[7800000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[78000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[7bdb353dfe7b3b27,e13f4dfe6be7f6fa]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[7c000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[7dfbefdffffffedf,0820080120000010]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[7e000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "-9", "-9", "00")
+ self.bid128_to_int32_rnint("0", "[a23d6f56f5010273,ec362545a53f594a]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[a703ccb60ae9f327,7a2d4589530817dd]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "00")
+ self.bid128_to_int32_rnint("0", "[affd5fbeffbffffd,fdfffffdeb7bffff]", "-1", "00")
+ self.bid128_to_int32_rnint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "00")
+ self.bid128_to_int32_rnint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "00")
+ self.bid128_to_int32_rnint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "00")
+ self.bid128_to_int32_rnint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "00")
+ self.bid128_to_int32_rnint("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int32_rnint("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "00")
+ self.bid128_to_int32_rnint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "00")
+ self.bid128_to_int32_rnint("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "00")
+ self.bid128_to_int32_rnint("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "00")
+ self.bid128_to_int32_rnint("0", "[affe7ffffbafffff,ffffffbffffffbff]", "-3", "00")
+ self.bid128_to_int32_rnint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "00")
+ self.bid128_to_int32_rnint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[b0104bf489bddad0,81f22ddf453e3069]", "-1540555021", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "-2147483646", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "-2147483646", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "-2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE692B4B4B133125F000000]", "-2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE692B4B4B133125F000001]", "-2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE6FC95C29899892F800000]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE6FC95C29899892F800001]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE76676D080000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE76676D080000000000001]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE7D057DE676676D07FFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE7D057DE676676D0800000]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[b0115204083042ac,b049a005c5004083]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "-2147483646", "00")
+ self.bid128_to_int32_rnint("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "-2147483646", "00")
+ self.bid128_to_int32_rnint("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "-2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "-2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[B0180002B5E3AF13FBA450E94E780000]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B0180002B5E3AF13FBA450E94E780001]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B0180002B5E3AF19676BAF16B1880000]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B0180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "00")
+ self.bid128_to_int32_rnint("0", "[B01A000045639181BA2CDCFB7617FFFF]", "-2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[B01A000045639181BA2CDCFB76180000]", "-2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[B01A000045639181BA2CDCFB76180001]", "-2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B01A00004563918244F4000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B01A00004563918244F4000000000001]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B01A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B01E000000000001A055690D9DB80001]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B02000000000000029A2241AF62C0001]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B024000000000000006A94D74F42FFFF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B024000000000000006A94D74F430001]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B02A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02C000000000000000002BBA7F521FF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B02C000000000000000002BBA7F52200]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B02C000000000000000002BBA7F52201]", "-301", "00")
+ self.bid128_to_int32_rnint("0", "[B02C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B02E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B03000000000000000000006FC23ABFF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03000000000000000000006FC23AC01]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03200000000000000000000B2D05DFF]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03200000000000000000000B2D05E01]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03800000000000000000000002DDA47]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03800000000000000000000002DDA48]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03800000000000000000000002DDA49]", "-301", "00")
+ self.bid128_to_int32_rnint("0", "[B03A00000000000000000000000003E7]", "-1", "00")
+ self.bid128_to_int32_rnint("0", "[B03A00000000000000000000000495D3]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03A00000000000000000000000495D4]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03A00000000000000000000000495D5]", "-301", "00")
+ self.bid128_to_int32_rnint("0", "[B03C0000000000000000000000007561]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03C0000000000000000000000007562]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03C0000000000000000000000007563]", "-301", "00")
+ self.bid128_to_int32_rnint("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int32_rnint("0", "[B03E000000000000000000000000000F]", "-2", "00")
+ self.bid128_to_int32_rnint("0", "[B03E0000000000000000000000000BB7]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03E0000000000000000000000000BB9]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03E0000000000000000000000000BBD]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B03E00000000000000000004FFFFFFF1]", "-2147483646", "00")
+ self.bid128_to_int32_rnint("0", "[B03E00000000000000000004FFFFFFFB]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B03E0000000000000000000500000005]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B03E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B03E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B03E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B03E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B03E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B03E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int32_rnint("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int32_rnint("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int32_rnint("0", "[B040000000000000000000007FFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_rnint("0", "[B0400000000000000000000080000000]", "-2147483648", "00")
+ self.bid128_to_int32_rnint("0", "[B0400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B04000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B0400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B0400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B04000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B04000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int32_rnint("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int32_rnint("0", "[B04200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B0420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B0420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int32_rnint("0", "[B0520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B0520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[B0540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[b4218d946c3e7369,d5c286da008b6e03]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[bb2fc9485875b386,1884b06a1c3f63b9]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[cb8b7a2b4c448560,d8200385efe3ffc4]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[fa5e3c7b527f3fff,ea3cc8189049fb54]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "[ffe7fffffffffbff,99fd09212978d07a]", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "Infinity", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "QNaN", "-2147483648", "01")
+ self.bid128_to_int32_rnint("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_int32_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int32_rninta() {
+ self.bid128_to_int32_rninta("0", "-0", "0", "00")
+ self.bid128_to_int32_rninta("0", "0", "0", "00")
+ self.bid128_to_int32_rninta("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[0000000000000000,ffffffffffffffbf]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[0002000000000000,0008000000005000]", "0", "00")
+ self.bid128_to_int32_rninta("0", "0.1", "0", "00")
+ self.bid128_to_int32_rninta("0", "0.5", "1", "00")
+ self.bid128_to_int32_rninta("0", "1", "1", "00")
+ self.bid128_to_int32_rninta("0", "[1ae2de17eb17720e,0d92afec340d6f83]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[1ee4000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[2ffddfaffbdf9dff,0020000000000540]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int32_rninta("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_int32_rninta("0", "[3000014800854020,6ccaf9ed512d36e8]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[300010572a610003,8200000000002180]", "3", "00")
+ self.bid128_to_int32_rninta("0", "[30010081021120a0,0400000000000004]", "52", "00")
+ self.bid128_to_int32_rninta("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "00")
+ self.bid128_to_int32_rninta("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[301069E10DE6FC95C29899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301069E10DE6FC95C29899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301069E10DE76676D080000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012228e34165014,58769c6c977989f7]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "00")
+ self.bid128_to_int32_rninta("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[30180002B5E3AF13FBA450E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30180002B5E3AF13FBA450E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[301A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A00004563918244F4000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[301c000002208c60,dffbf7f7d3ffffff]", "658318564", "00")
+ self.bid128_to_int32_rninta("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[3020000000500200,480ff80130f61059]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[302A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[302C000000000000000002BBA7F52200]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[302C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[302E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303800000000000000000000002DDA48]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303A00000000000000000000000495D4]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303C0000000000000000000000007562]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int32_rninta("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[303E00000000000000000004FFFFFFF1]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[303E00000000000000000004FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[303E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[303E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[303E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[303E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[303E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[303E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[303E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int32_rninta("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int32_rninta("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int32_rninta("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[30400000000000000000000080000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3040000000000000,0000000080000100]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[304000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[304000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[304000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int32_rninta("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int32_rninta("0", "[304200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int32_rninta("0", "[30520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[30540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[55b442b6b3d9863c,fe1df6a10f6ec188]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[5e27675a09185309,fcc433f3b407a0af]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[78000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[7a3f85a4d81a9792,afb73b7dbdbd163a]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[7c00000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[7c000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[7c06bd08350a7445,d2d21d1976e263d3]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[7e000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[80415215ef760404,c3d21c0317be99d2]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[8514000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[949b6e50aa8e8f5c,c4ec8be0d9828800]", "0", "00")
+ self.bid128_to_int32_rninta("0", "-9", "-9", "00")
+ self.bid128_to_int32_rninta("0", "[a360000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[ab211252b59b4156,047c695a9596b259]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[ade6ec3325eb11d1,fb2ae478af3408e3]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[afcc000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[AFFCF684DF56C3E01BC6C73200000000]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "00")
+ self.bid128_to_int32_rninta("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "00")
+ self.bid128_to_int32_rninta("0", "[b000044010821280,c008006062003000]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[b001c7ff702422b8,938108bc1cb4a6d9]", "-92", "00")
+ self.bid128_to_int32_rninta("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B00294286EACB8CB0A8CB6B140000000]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "-2147483646", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE692B4B4B133125F000000]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE692B4B4B133125F000001]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE6FC95C29899892F800000]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE6FC95C29899892F800001]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE76676D080000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE76676D080000000000001]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE7D057DE676676D07FFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[b011dc5449840528,7f3da05c70c3064a]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "-2147483646", "00")
+ self.bid128_to_int32_rninta("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B0180002B5E3AF13FBA450E94E780000]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B0180002B5E3AF13FBA450E94E780001]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B0180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B0180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[b018000418021054,202600c48c264840]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B01A000045639181BA2CDCFB7617FFFF]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B01A000045639181BA2CDCFB76180000]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B01A000045639181BA2CDCFB76180001]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B01A00004563918244F4000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B01A00004563918244F4000000000001]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B01A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B01E000000000001A055690D9DB80001]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B02000000000000029A2241AF62C0001]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B024000000000000006A94D74F42FFFF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B024000000000000006A94D74F430001]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B02A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02C000000000000000002BBA7F521FF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B02C000000000000000002BBA7F52200]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B02C000000000000000002BBA7F52201]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B02C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B02E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B03000000000000000000006FC23ABFF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03000000000000000000006FC23AC01]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03200000000000000000000B2D05DFF]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03200000000000000000000B2D05E01]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03800000000000000000000002DDA47]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03800000000000000000000002DDA48]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B03800000000000000000000002DDA49]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B03A00000000000000000000000003E7]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[B03A00000000000000000000000495D3]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03A00000000000000000000000495D4]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B03A00000000000000000000000495D5]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B03C0000000000000000000000007561]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03C0000000000000000000000007562]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B03C0000000000000000000000007563]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B03E0000000000000000000000000005]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[B03E000000000000000000000000000F]", "-2", "00")
+ self.bid128_to_int32_rninta("0", "[B03E0000000000000000000000000BB7]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03E0000000000000000000000000BB9]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B03E0000000000000000000000000BBD]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B03E00000000000000000004FFFFFFF1]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B03E00000000000000000004FFFFFFFB]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B03E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B03E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B03E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B03E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B03E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B03E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B03E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int32_rninta("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int32_rninta("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int32_rninta("0", "[B040000000000000000000007FFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_rninta("0", "[B0400000000000000000000080000000]", "-2147483648", "00")
+ self.bid128_to_int32_rninta("0", "[B0400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B04000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B0400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B0400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B04000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B04000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int32_rninta("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int32_rninta("0", "[B04200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B0420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B0420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int32_rninta("0", "[B0520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B0520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[B0540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[effffff7ffffffff,201202b65c09d002]", "0", "00")
+ self.bid128_to_int32_rninta("0", "[fb2de79a9d146bdd,0000180906000000]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "[fffffffffb7fffff,93d6d9630e17fa18]", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "Infinity", "-2147483648", "01")
+ self.bid128_to_int32_rninta("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_int32_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int32_xceil() {
+ self.bid128_to_int32_xceil("0", "-0", "0", "00")
+ self.bid128_to_int32_xceil("0", "0", "0", "00")
+ self.bid128_to_int32_xceil("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xceil("0", "[0000000000000000,ffffffffffffffbf]", "1", "20")
+ self.bid128_to_int32_xceil("0", "-0.000101000E0", "0", "20")
+ self.bid128_to_int32_xceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int32_xceil("0", "[04a1cd2e0f15e90c,88abdb064a84e938]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[0800000000000000,0001404000040080]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[09500580610083a7,dffbffffffffffff]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[0dac6b6af61e338d,4c12bd95625254a2]", "1", "20")
+ self.bid128_to_int32_xceil("0", "1.0", "1", "00")
+ self.bid128_to_int32_xceil("0", "1073741824", "1073741824", "00")
+ self.bid128_to_int32_xceil("0", "1", "1", "00")
+ self.bid128_to_int32_xceil("0", "[119886f16393d498,098c9b7305b359c2]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[1c107cf8d8e506e7,364e77490ab8bcd6]", "1", "20")
+ self.bid128_to_int32_xceil("0", "2147483648", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int32_xceil("0", "[2FFE314DC6448D9338C15B0A00000001]", "2", "20")
+ self.bid128_to_int32_xceil("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "2", "20")
+ self.bid128_to_int32_xceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int32_xceil("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_int32_xceil("0", "[3001000020000020,51442091b0193012]", "52", "20")
+ self.bid128_to_int32_xceil("0", "[30018100008a0000,3eb60de6d3f0eb01]", "79", "20")
+ self.bid128_to_int32_xceil("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_int32_xceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[300293E952CDA8B9AA44111E00000001]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_int32_xceil("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[30040ECA8847C4129106CE8300000001]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_int32_xceil("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[300A0003C95A2F0B4856475FE0000001]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_int32_xceil("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[300C000060EF6B1ABA6F072330000001]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[300fd533c593078f,4000004000000000]", "951655189", "20")
+ self.bid128_to_int32_xceil("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_int32_xceil("0", "[301069E10DE692B4B4B133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE6FC95C29899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE6FC95C29899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE6FC95C29899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE76676D080000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3011808c02c419d2,aefd7f444e514bd3]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3018000180001000,fffdfffff7ffdfff]", "1188423194", "20")
+ self.bid128_to_int32_xceil("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30180002B5E3AF13FBA450E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30180002B5E3AF13FBA450E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_int32_xceil("0", "[301A000045639181BA2CDCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00004563918244F4000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_int32_xceil("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[301E000000000001A055690D9DB80001]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_int32_xceil("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[302000000000000029A2241AF62C0001]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_int32_xceil("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[3024000000000000006A94D74F430001]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[302A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302C000000000000000002BBA7F521FF]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[302C000000000000000002BBA7F52200]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[302C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[302E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_int32_xceil("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[303000000000000000000006FC23AC01]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_int32_xceil("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[303200000000000000000000B2D05E01]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303800000000000000000000002DDA47]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303800000000000000000000002DDA48]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[303A00000000000000000000000495D3]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303A00000000000000000000000495D4]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303C0000000000000000000000007561]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303C0000000000000000000000007562]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_int32_xceil("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int32_xceil("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_int32_xceil("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[303E0000000000000000000000000BB9]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_int32_xceil("0", "[303E00000000000000000004FFFFFFF1]", "2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[303E00000000000000000004FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[303E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[303E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[303E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[303E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[303E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[303E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[303E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int32_xceil("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int32_xceil("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int32_xceil("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_xceil("0", "[30400000000000000000000080000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[304000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[304000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[304000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int32_xceil("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int32_xceil("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int32_xceil("0", "[304200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int32_xceil("0", "[30520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[30540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "-35233632.862879E0", "-35233632", "20")
+ self.bid128_to_int32_xceil("0", "[415affab6c50f1c0,bd1be952246a03a0]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[41f8ee12504de401,446b662f54bfd7ac]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[464cbd7bb58431f3,a9fdeff877cb61ca]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "5.05", "6", "20")
+ self.bid128_to_int32_xceil("0", "5.5", "6", "20")
+ self.bid128_to_int32_xceil("0", "[5ac6000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xceil("0", "[7800000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[78000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[79dfefffffdfaebf,2258d2270f190842]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[7c000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[7e000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[7e001b6f5408f507,9fd2a845d887b9fb]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[872ba0641819327c,cb3ce66187aadfcf]", "0", "20")
+ self.bid128_to_int32_xceil("0", "[88ccb5b0e7f6b22c,f20e3e38f79ade66]", "0", "20")
+ self.bid128_to_int32_xceil("0", "-8998.89E0", "-8998", "20")
+ self.bid128_to_int32_xceil("0", "-89.999E0", "-89", "20")
+ self.bid128_to_int32_xceil("0", "[8bfe000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xceil("0", "[9879c6b0b8dad61b,1a9e9aeefe2d2b31]", "0", "20")
+ self.bid128_to_int32_xceil("0", "+989.8889E0", "990", "20")
+ self.bid128_to_int32_xceil("0", "-98.9E0", "-98", "20")
+ self.bid128_to_int32_xceil("0", "-9", "-9", "00")
+ self.bid128_to_int32_xceil("0", "[a247810d0cf268ba,ffa7a4382f8ac956]", "0", "20")
+ self.bid128_to_int32_xceil("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xceil("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int32_xceil("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_int32_xceil("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_int32_xceil("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int32_xceil("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_int32_xceil("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xceil("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int32_xceil("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "20")
+ self.bid128_to_int32_xceil("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "20")
+ self.bid128_to_int32_xceil("0", "[AFFE49F4A966D45CD522088F00000000]", "-1", "20")
+ self.bid128_to_int32_xceil("0", "[AFFE49F4A966D45CD522088F00000001]", "-1", "20")
+ self.bid128_to_int32_xceil("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-299", "20")
+ self.bid128_to_int32_xceil("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B00294286EACB8CB0A8CB6B140000001]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[b003902d21741882,9deb7d75cf397e8f]", "-811", "20")
+ self.bid128_to_int32_xceil("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-299", "20")
+ self.bid128_to_int32_xceil("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-299", "20")
+ self.bid128_to_int32_xceil("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-299", "20")
+ self.bid128_to_int32_xceil("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "-2147483646", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "-2147483646", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE692B4B4B133125F000000]", "-2147483647", "00")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE692B4B4B133125F000001]", "-2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE6FC95C29899892F800000]", "-2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE6FC95C29899892F800001]", "-2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE76676D080000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE76676D080000000000001]", "-2147483648", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE7D057DE676676D07FFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE7D057DE676676D0800000]", "-2147483648", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE7D057DE676676D0800001]", "-2147483648", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[b010a7acf148064d,0ab2df95f8712753]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xceil("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "-2147483646", "20")
+ self.bid128_to_int32_xceil("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "-2147483646", "20")
+ self.bid128_to_int32_xceil("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[B0180002B5E3AF13FBA450E94E780000]", "-2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[B0180002B5E3AF13FBA450E94E780001]", "-2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xceil("0", "[B0180002B5E3AF19676BAF16B1880000]", "-2147483648", "20")
+ self.bid128_to_int32_xceil("0", "[B0180002B5E3AF19676BAF16B1880001]", "-2147483648", "20")
+ self.bid128_to_int32_xceil("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[b0180008e0138000,9a3f9597d7e17ff7]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[b01a000000145040,0184002400200102]", "-2455748", "20")
+ self.bid128_to_int32_xceil("0", "[B01A000045639181BA2CDCFB7617FFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xceil("0", "[B01A000045639181BA2CDCFB76180000]", "-2147483647", "00")
+ self.bid128_to_int32_xceil("0", "[B01A000045639181BA2CDCFB76180001]", "-2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[B01A00004563918244F4000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_xceil("0", "[B01A00004563918244F4000000000001]", "-2147483648", "20")
+ self.bid128_to_int32_xceil("0", "[B01A000045639182CFBB230489E7FFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xceil("0", "[B01A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B01E000000000001A055690D9DB7FFFF]", "-299", "20")
+ self.bid128_to_int32_xceil("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B01E000000000001A055690D9DB80001]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B02000000000000029A2241AF62BFFFF]", "-299", "20")
+ self.bid128_to_int32_xceil("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B02000000000000029A2241AF62C0001]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B024000000000000006A94D74F42FFFF]", "-299", "20")
+ self.bid128_to_int32_xceil("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B024000000000000006A94D74F430001]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B02A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02C000000000000000002BBA7F521FF]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B02C000000000000000002BBA7F52200]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B02C000000000000000002BBA7F52201]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B02C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B02E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B03000000000000000000006FC23ABFF]", "-299", "20")
+ self.bid128_to_int32_xceil("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B03000000000000000000006FC23AC01]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03200000000000000000000B2D05DFF]", "-299", "20")
+ self.bid128_to_int32_xceil("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B03200000000000000000000B2D05E01]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03800000000000000000000002DDA47]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03800000000000000000000002DDA48]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03800000000000000000000002DDA49]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int32_xceil("0", "[B03A00000000000000000000000495D3]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03A00000000000000000000000495D4]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03A00000000000000000000000495D5]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03C0000000000000000000000007561]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03C0000000000000000000000007562]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03C0000000000000000000000007563]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int32_xceil("0", "[B03E000000000000000000000000000F]", "-1", "20")
+ self.bid128_to_int32_xceil("0", "[B03E0000000000000000000000000BB7]", "-299", "20")
+ self.bid128_to_int32_xceil("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B03E0000000000000000000000000BB9]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03E0000000000000000000000000BBD]", "-300", "20")
+ self.bid128_to_int32_xceil("0", "[B03E00000000000000000004FFFFFFF1]", "-2147483646", "20")
+ self.bid128_to_int32_xceil("0", "[B03E00000000000000000004FFFFFFFB]", "-2147483647", "20")
+ self.bid128_to_int32_xceil("0", "[B03E0000000000000000000500000005]", "-2147483648", "20")
+ self.bid128_to_int32_xceil("0", "[B03E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B03E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B03E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B03E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B03E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B03E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int32_xceil("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int32_xceil("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int32_xceil("0", "[B040000000000000000000007FFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_xceil("0", "[B0400000000000000000000080000000]", "-2147483648", "00")
+ self.bid128_to_int32_xceil("0", "[B0400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B04000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B0400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B0400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B04000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B04000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int32_xceil("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int32_xceil("0", "[B04200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B0420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B0420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int32_xceil("0", "[B0520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B0520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[B0540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[b61c3f7462fe28c7,516641a6960d6e13]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[bf5e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xceil("0", "[bf9fffefdffbffff,b7802153e882c527]", "0", "00")
+ self.bid128_to_int32_xceil("0", "[c4ef2543a19e3b77,caa576038b9178f2]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[ccfe000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xceil("0", "[ce54aba4f9dbbff6,6ab5ef9f915dc797]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[d75772ec3359e377,272e0090fbeda12e]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[fb6960ef6c357677,f57f7fe7fddf7bbf]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[fc0018105ab3207d,cdb613525c183b2a]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[fdbb24d7c25debfe,83ecaa434825c284]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[fe000186d07520e1,713d4a07af3bf23c]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "[ffbfefefdffbffdf,0880000082010844]", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "QNaN", "-2147483648", "01")
+ self.bid128_to_int32_xceil("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_int32_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int32_xfloor() {
+ self.bid128_to_int32_xfloor("0", "-0", "0", "00")
+ self.bid128_to_int32_xfloor("0", "0", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[0000000000000020,db86fde797c7ee97]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[0004000000000000,e65edddfbf5fa79d]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[018e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[024e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[0684a3a3f3edb1cb,cc6bd56db12b2312]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[073e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[0880000000000000,0000000008000000]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[1000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "1.0", "1", "00")
+ self.bid128_to_int32_xfloor("0", "-10.11111000011011E0", "-11", "20")
+ self.bid128_to_int32_xfloor("0", "1073741824", "1073741824", "00")
+ self.bid128_to_int32_xfloor("0", "1", "1", "00")
+ self.bid128_to_int32_xfloor("0", "-11.11111101E0", "-12", "20")
+ self.bid128_to_int32_xfloor("0", "2147483648", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[220c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int32_xfloor("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_int32_xfloor("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_int32_xfloor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_int32_xfloor("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "20")
+ self.bid128_to_int32_xfloor("0", "[2fffa7ee73bf0123,8ddce5d756073150]", "8", "20")
+ self.bid128_to_int32_xfloor("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "20")
+ self.bid128_to_int32_xfloor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "20")
+ self.bid128_to_int32_xfloor("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "20")
+ self.bid128_to_int32_xfloor("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "20")
+ self.bid128_to_int32_xfloor("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[3010411245080881,112070e006c3a610]", "1319804095", "20")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "20")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "20")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483646", "20")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483646", "20")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE6FC95C29899892F800000]", "2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE6FC95C29899892F800001]", "2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE76676D080000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3011c40c8948dd2d,ccf04127d8ee69c0]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3014000003004000,41c8ed462ebdcd54]", "92875", "20")
+ self.bid128_to_int32_xfloor("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "20")
+ self.bid128_to_int32_xfloor("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "20")
+ self.bid128_to_int32_xfloor("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483646", "20")
+ self.bid128_to_int32_xfloor("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[30180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30180004a2848111,e65ee913b265b6a9]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483646", "20")
+ self.bid128_to_int32_xfloor("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_int32_xfloor("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[301A00004563918244F4000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[301E000000000001A055690D9DB7FFFF]", "299", "20")
+ self.bid128_to_int32_xfloor("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[302000000000000029A2241AF62BFFFF]", "299", "20")
+ self.bid128_to_int32_xfloor("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[3020000000000000,33a8e1260ca82210]", "372", "20")
+ self.bid128_to_int32_xfloor("0", "[3024000000000000006A94D74F42FFFF]", "299", "20")
+ self.bid128_to_int32_xfloor("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[302A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[302C000000000000000002BBA7F52201]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[302C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[302E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[303000000000000000000006FC23ABFF]", "299", "20")
+ self.bid128_to_int32_xfloor("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303200000000000000000000B2D05DFF]", "299", "20")
+ self.bid128_to_int32_xfloor("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303800000000000000000000002DDA49]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303A00000000000000000000000495D5]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303C0000000000000000000000007563]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int32_xfloor("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_int32_xfloor("0", "[303E0000000000000000000000000BB7]", "299", "20")
+ self.bid128_to_int32_xfloor("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_int32_xfloor("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "20")
+ self.bid128_to_int32_xfloor("0", "[303E00000000000000000004FFFFFFFB]", "2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[303E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[303E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[303E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[303E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[303E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[303E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[303E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int32_xfloor("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int32_xfloor("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int32_xfloor("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_xfloor("0", "[30400000000000000000000080000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[304000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[304000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[304000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int32_xfloor("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int32_xfloor("0", "[304200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int32_xfloor("0", "[30520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[30540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[33f314227e1fba4d,49a2fab8601d2044]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[38b0000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[3e202402edec415c,9ecebc0cd799f7ee]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[3e7407f30110fe11,c634df8f3ceea87f]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[4edf0cee03a53bea,d07ad55c226428fd]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[4f91773cbb52d535,f1643e015d77fec9]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "5.05", "5", "20")
+ self.bid128_to_int32_xfloor("0", "5.5", "5", "20")
+ self.bid128_to_int32_xfloor("0", "[5a2bd858078e46c3,6b42cc34611bcbcc]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "-6.6775588887E0", "-7", "20")
+ self.bid128_to_int32_xfloor("0", "[6c4916f73f1ad9cd,5acd8132d6a7b153]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[78000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[781308be70d10304,fb777bfffd7dfe7f]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[7c000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[7c7ef5f2d734845c,ffffffffffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[7e000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[7edfffaa4f779f7f,d95f5ff7edf78ce6]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[8036000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "-9", "-9", "00")
+ self.bid128_to_int32_xfloor("0", "[a23d53ba4518f0d2,3e957529f629a830]", "-1", "20")
+ self.bid128_to_int32_xfloor("0", "[a64c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "-1", "20")
+ self.bid128_to_int32_xfloor("0", "[AFFCF684DF56C3E01BC6C73200000000]", "-1", "20")
+ self.bid128_to_int32_xfloor("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "20")
+ self.bid128_to_int32_xfloor("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "20")
+ self.bid128_to_int32_xfloor("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "20")
+ self.bid128_to_int32_xfloor("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "20")
+ self.bid128_to_int32_xfloor("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "20")
+ self.bid128_to_int32_xfloor("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int32_xfloor("0", "[AFFE314DC6448D9338C15B0A00000001]", "-2", "20")
+ self.bid128_to_int32_xfloor("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-2", "20")
+ self.bid128_to_int32_xfloor("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "20")
+ self.bid128_to_int32_xfloor("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "20")
+ self.bid128_to_int32_xfloor("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xfloor("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B00293E952CDA8B9AA44111E00000001]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B00294286EACB8CB0A8CB6B140000000]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xfloor("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B0040ECA8847C4129106CE8300000001]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xfloor("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B00A0003C95A2F0B4856475FE0000001]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xfloor("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B00C000060EF6B1ABA6F072330000001]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[b00d1b8721ea88a2,76f12e44e47b4440]", "-57506283", "20")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "-2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "-2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE692B4B4B133125F000000]", "-2147483647", "00")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE692B4B4B133125F000001]", "-2147483648", "20")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE6FC95C29899892F800000]", "-2147483648", "20")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE6FC95C29899892F800001]", "-2147483648", "20")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE76676D080000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[b01134c09010c080,7c88602681621608]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "-2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "-2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xfloor("0", "[B0180002B5E3AF13FBA450E94E780000]", "-2147483648", "20")
+ self.bid128_to_int32_xfloor("0", "[B0180002B5E3AF13FBA450E94E780001]", "-2147483648", "20")
+ self.bid128_to_int32_xfloor("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B0180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B0180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[b018000c0530180a,995bcc442c4c4310]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B01A000045639181BA2CDCFB7617FFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[B01A000045639181BA2CDCFB76180000]", "-2147483647", "00")
+ self.bid128_to_int32_xfloor("0", "[B01A000045639181BA2CDCFB76180001]", "-2147483648", "20")
+ self.bid128_to_int32_xfloor("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xfloor("0", "[B01A00004563918244F4000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_xfloor("0", "[B01A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "20")
+ self.bid128_to_int32_xfloor("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B01E000000000001A055690D9DB80001]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "20")
+ self.bid128_to_int32_xfloor("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B02000000000000029A2241AF62C0001]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B024000000000000006A94D74F42FFFF]", "-300", "20")
+ self.bid128_to_int32_xfloor("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B024000000000000006A94D74F430001]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B02A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02C000000000000000002BBA7F521FF]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B02C000000000000000002BBA7F52200]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B02C000000000000000002BBA7F52201]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B02C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B02E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B03000000000000000000006FC23ABFF]", "-300", "20")
+ self.bid128_to_int32_xfloor("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B03000000000000000000006FC23AC01]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03200000000000000000000B2D05DFF]", "-300", "20")
+ self.bid128_to_int32_xfloor("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B03200000000000000000000B2D05E01]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03800000000000000000000002DDA47]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03800000000000000000000002DDA48]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03800000000000000000000002DDA49]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03A00000000000000000000000003E7]", "-1", "20")
+ self.bid128_to_int32_xfloor("0", "[B03A00000000000000000000000495D3]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03A00000000000000000000000495D4]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03A00000000000000000000000495D5]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03C0000000000000000000000007561]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03C0000000000000000000000007562]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03C0000000000000000000000007563]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03E0000000000000000000000000005]", "-1", "20")
+ self.bid128_to_int32_xfloor("0", "[B03E000000000000000000000000000F]", "-2", "20")
+ self.bid128_to_int32_xfloor("0", "[B03E0000000000000000000000000BB7]", "-300", "20")
+ self.bid128_to_int32_xfloor("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B03E0000000000000000000000000BB9]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03E0000000000000000000000000BBD]", "-301", "20")
+ self.bid128_to_int32_xfloor("0", "[B03E00000000000000000004FFFFFFF1]", "-2147483647", "20")
+ self.bid128_to_int32_xfloor("0", "[B03E00000000000000000004FFFFFFFB]", "-2147483648", "20")
+ self.bid128_to_int32_xfloor("0", "[B03E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B03E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B03E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B03E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B03E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B03E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B03E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int32_xfloor("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int32_xfloor("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int32_xfloor("0", "[B040000000000000000000007FFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_xfloor("0", "[B0400000000000000000000080000000]", "-2147483648", "00")
+ self.bid128_to_int32_xfloor("0", "[B0400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B04000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B0400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B0400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B04000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B04000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int32_xfloor("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int32_xfloor("0", "[B04200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B0420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B0420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int32_xfloor("0", "[B0520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B0520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[B0540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[b18a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[bf78f77261e82cbd,0516898e04511912]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[c9bb781d8d3a3758,ba785dfbd6c4aa49]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[d45c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xfloor("0", "[d4db0f02a04c0757,7c40e50ca150470e]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[f800000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[fb70882315384363,20a45af191fc4235]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "[fc000e603569dec1,7503eeddab20ee32]", "-2147483648", "01")
+ self.bid128_to_int32_xfloor("0", "Infinity", "-2147483648", "01")
+ }
+
+ private func bid128_to_int32_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int32_xint() {
+ self.bid128_to_int32_xint("0", "-0", "0", "00")
+ self.bid128_to_int32_xint("0", "0", "0", "00")
+ self.bid128_to_int32_xint("0", "[0000000000000000,0000000000010000]", "0", "20")
+ self.bid128_to_int32_xint("0", "[0000000000000000,ffbffffebfbc7eff]", "0", "20")
+ self.bid128_to_int32_xint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int32_xint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int32_xint("0", "-10010.0101001011E0", "-10010", "20")
+ self.bid128_to_int32_xint("0", "1.0", "1", "00")
+ self.bid128_to_int32_xint("0", "1073741824", "1073741824", "00")
+ self.bid128_to_int32_xint("0", "1", "1", "00")
+ self.bid128_to_int32_xint("0", "[1183523648dbf555,6db98fc8b4f9d339]", "0", "20")
+ self.bid128_to_int32_xint("0", "[1a34000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xint("0", "[2002000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xint("0", "2147483648", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int32_xint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_int32_xint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_int32_xint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int32_xint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_int32_xint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int32_xint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_int32_xint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_int32_xint("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_int32_xint("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "20")
+ self.bid128_to_int32_xint("0", "[3001034200100008,683f4be6eb49f455]", "52", "20")
+ self.bid128_to_int32_xint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "20")
+ self.bid128_to_int32_xint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int32_xint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_int32_xint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_int32_xint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_int32_xint("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "20")
+ self.bid128_to_int32_xint("0", "[30032010000090c0,fffffffdff7ff7ff]", "584", "20")
+ self.bid128_to_int32_xint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "20")
+ self.bid128_to_int32_xint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int32_xint("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_int32_xint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "20")
+ self.bid128_to_int32_xint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int32_xint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_int32_xint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "20")
+ self.bid128_to_int32_xint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int32_xint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_int32_xint("0", "[301039882d042880,968c705a1b38ce1e]", "1166886309", "20")
+ self.bid128_to_int32_xint("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "20")
+ self.bid128_to_int32_xint("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "20")
+ self.bid128_to_int32_xint("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483646", "20")
+ self.bid128_to_int32_xint("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483646", "20")
+ self.bid128_to_int32_xint("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_int32_xint("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "20")
+ self.bid128_to_int32_xint("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xint("0", "[301069E10DE6FC95C29899892F800000]", "2147483647", "20")
+ self.bid128_to_int32_xint("0", "[301069E10DE6FC95C29899892F800001]", "2147483647", "20")
+ self.bid128_to_int32_xint("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xint("0", "[301069E10DE76676D080000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30111fb9f1b6d1f5,c7e495226c5c54ef]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "20")
+ self.bid128_to_int32_xint("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "20")
+ self.bid128_to_int32_xint("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483646", "20")
+ self.bid128_to_int32_xint("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "20")
+ self.bid128_to_int32_xint("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483647", "20")
+ self.bid128_to_int32_xint("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483647", "20")
+ self.bid128_to_int32_xint("0", "[30180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_int32_xint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_int32_xint("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "20")
+ self.bid128_to_int32_xint("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483646", "20")
+ self.bid128_to_int32_xint("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_int32_xint("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "20")
+ self.bid128_to_int32_xint("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xint("0", "[301A00004563918244F4000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[301E000000000001A055690D9DB7FFFF]", "299", "20")
+ self.bid128_to_int32_xint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int32_xint("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_int32_xint("0", "[302000000000000029A2241AF62BFFFF]", "299", "20")
+ self.bid128_to_int32_xint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int32_xint("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_int32_xint("0", "[3020000000184868,77ffdfeebdfbcc7a]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3024000000000000006A94D74F42FFFF]", "299", "20")
+ self.bid128_to_int32_xint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int32_xint("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_int32_xint("0", "[3024000000001000,0efe4fe5bfd7fffc]", "755589441", "20")
+ self.bid128_to_int32_xint("0", "[302A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_int32_xint("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_int32_xint("0", "[302C000000000000000002BBA7F52201]", "300", "20")
+ self.bid128_to_int32_xint("0", "[302C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[302E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[303000000000000000000006FC23ABFF]", "299", "20")
+ self.bid128_to_int32_xint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int32_xint("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303200000000000000000000B2D05DFF]", "299", "20")
+ self.bid128_to_int32_xint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int32_xint("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303800000000000000000000002DDA49]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int32_xint("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303A00000000000000000000000495D5]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303C0000000000000000000000007563]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int32_xint("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_int32_xint("0", "[303E0000000000000000000000000BB7]", "299", "20")
+ self.bid128_to_int32_xint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int32_xint("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_int32_xint("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "20")
+ self.bid128_to_int32_xint("0", "[303E00000000000000000004FFFFFFFB]", "2147483647", "20")
+ self.bid128_to_int32_xint("0", "[303E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[303E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[303E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[303E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[303E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[303E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[303E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int32_xint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int32_xint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int32_xint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int32_xint("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_xint("0", "[30400000000000000000000080000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[304000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[304000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[304000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int32_xint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int32_xint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int32_xint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int32_xint("0", "[304200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int32_xint("0", "[30520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[30540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[4dad0d604cfd12ec,febd876aad8c197a]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[4e900cf74ee41b13,d633d2bd650087c7]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[4f26000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xint("0", "5.05", "5", "20")
+ self.bid128_to_int32_xint("0", "[523498299d31d1f4,ef0e9e8a082fb528]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "5.5", "5", "20")
+ self.bid128_to_int32_xint("0", "+57.86598966685658E0", "57", "20")
+ self.bid128_to_int32_xint("0", "-59579.585E0", "-59579", "20")
+ self.bid128_to_int32_xint("0", "[5b7ef4916d264c18,3a8fedf23dc4512b]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[7800000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[78000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[799b353c7e733926,efffffffefffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[7c000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[7e000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[844aefb46082e9bf,143c8709d1949f63]", "0", "20")
+ self.bid128_to_int32_xint("0", "[84f4000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xint("0", "+898889.988E0", "898889", "20")
+ self.bid128_to_int32_xint("0", "[8a4f53d703ca99f3,e723ef4d8dea58c7]", "0", "20")
+ self.bid128_to_int32_xint("0", "[93b2e361542c3cf6,1c783c01767545a5]", "0", "20")
+ self.bid128_to_int32_xint("0", "[9660000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xint("0", "-975.98E0", "-975", "20")
+ self.bid128_to_int32_xint("0", "-9", "-9", "00")
+ self.bid128_to_int32_xint("0", "[a00048040000a080,d7da2a1f3efd5d0a]", "0", "20")
+ self.bid128_to_int32_xint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int32_xint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_int32_xint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_int32_xint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int32_xint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_int32_xint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xint("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int32_xint("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "20")
+ self.bid128_to_int32_xint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "20")
+ self.bid128_to_int32_xint("0", "[AFFE49F4A966D45CD522088F00000000]", "-1", "20")
+ self.bid128_to_int32_xint("0", "[AFFE49F4A966D45CD522088F00000001]", "-1", "20")
+ self.bid128_to_int32_xint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-299", "20")
+ self.bid128_to_int32_xint("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B00294286EACB8CB0A8CB6B140000001]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-299", "20")
+ self.bid128_to_int32_xint("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-299", "20")
+ self.bid128_to_int32_xint("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[b00ba4ff9a60824d,f1ccfffa68ee3b6a]", "-8538862", "20")
+ self.bid128_to_int32_xint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-299", "20")
+ self.bid128_to_int32_xint("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "-2147483646", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "-2147483646", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE692B4B4B133125F000000]", "-2147483647", "00")
+ self.bid128_to_int32_xint("0", "[B01069E10DE692B4B4B133125F000001]", "-2147483647", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE6FC95C29899892F800000]", "-2147483647", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE6FC95C29899892F800001]", "-2147483647", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE76676D080000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_xint("0", "[B01069E10DE76676D080000000000001]", "-2147483648", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE7D057DE676676D07FFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE7D057DE676676D0800000]", "-2147483648", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE7D057DE676676D0800001]", "-2147483648", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xint("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[b011b60ac2888b0f,7512d97a116a14bc]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[b014000001012884,422480a081918148]", "-31088", "20")
+ self.bid128_to_int32_xint("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xint("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "-2147483646", "20")
+ self.bid128_to_int32_xint("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "-2147483646", "20")
+ self.bid128_to_int32_xint("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xint("0", "[B0180002B5E3AF13FBA450E94E780000]", "-2147483647", "20")
+ self.bid128_to_int32_xint("0", "[B0180002B5E3AF13FBA450E94E780001]", "-2147483647", "20")
+ self.bid128_to_int32_xint("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xint("0", "[B0180002B5E3AF19676BAF16B1880000]", "-2147483648", "20")
+ self.bid128_to_int32_xint("0", "[B0180002B5E3AF19676BAF16B1880001]", "-2147483648", "20")
+ self.bid128_to_int32_xint("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B01A000045639181BA2CDCFB7617FFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xint("0", "[B01A000045639181BA2CDCFB76180000]", "-2147483647", "00")
+ self.bid128_to_int32_xint("0", "[B01A000045639181BA2CDCFB76180001]", "-2147483647", "20")
+ self.bid128_to_int32_xint("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xint("0", "[B01A00004563918244F4000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_xint("0", "[B01A00004563918244F4000000000001]", "-2147483648", "20")
+ self.bid128_to_int32_xint("0", "[B01A000045639182CFBB230489E7FFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xint("0", "[B01A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[b01a0000f0a08611,1150d1812085a000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B01E000000000001A055690D9DB7FFFF]", "-299", "20")
+ self.bid128_to_int32_xint("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B01E000000000001A055690D9DB80001]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B02000000000000029A2241AF62BFFFF]", "-299", "20")
+ self.bid128_to_int32_xint("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B02000000000000029A2241AF62C0001]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B024000000000000006A94D74F42FFFF]", "-299", "20")
+ self.bid128_to_int32_xint("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B024000000000000006A94D74F430001]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[b024383c37e60fba,624c8999ea86724d]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02C000000000000000002BBA7F521FF]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B02C000000000000000002BBA7F52200]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B02C000000000000000002BBA7F52201]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B02C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B02E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B03000000000000000000006FC23ABFF]", "-299", "20")
+ self.bid128_to_int32_xint("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B03000000000000000000006FC23AC01]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03200000000000000000000B2D05DFF]", "-299", "20")
+ self.bid128_to_int32_xint("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B03200000000000000000000B2D05E01]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03800000000000000000000002DDA47]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03800000000000000000000002DDA48]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03800000000000000000000002DDA49]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int32_xint("0", "[B03A00000000000000000000000495D3]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03A00000000000000000000000495D4]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03A00000000000000000000000495D5]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03C0000000000000000000000007561]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03C0000000000000000000000007562]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03C0000000000000000000000007563]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int32_xint("0", "[B03E000000000000000000000000000F]", "-1", "20")
+ self.bid128_to_int32_xint("0", "[B03E0000000000000000000000000BB7]", "-299", "20")
+ self.bid128_to_int32_xint("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B03E0000000000000000000000000BB9]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03E0000000000000000000000000BBD]", "-300", "20")
+ self.bid128_to_int32_xint("0", "[B03E00000000000000000004FFFFFFF1]", "-2147483646", "20")
+ self.bid128_to_int32_xint("0", "[B03E00000000000000000004FFFFFFFB]", "-2147483647", "20")
+ self.bid128_to_int32_xint("0", "[B03E0000000000000000000500000005]", "-2147483648", "20")
+ self.bid128_to_int32_xint("0", "[B03E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B03E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B03E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B03E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B03E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B03E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int32_xint("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int32_xint("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int32_xint("0", "[B040000000000000000000007FFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_xint("0", "[B0400000000000000000000080000000]", "-2147483648", "00")
+ self.bid128_to_int32_xint("0", "[B0400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B04000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B0400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B0400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B04000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B04000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int32_xint("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int32_xint("0", "[B04200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B0420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B0420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int32_xint("0", "[B0520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B0520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[B0540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[bafa3f2e6cfac5e9,dd6a483d40cc1e81]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[bbf766a597cc86c6,b72e9b02961ff2c5]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[be5b384b10b3bfc5,a94503cc94d8d490]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[c70c36015aac1d9a,129de484f80bc5d2]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[d1d1bc6c97272cf5,e0f9f474b0089ae7]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[d82c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xint("0", "[daca000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xint("0", "[dcbe215c200c4a3a,efc64d5f041d441d]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[f7f4f639fbf4edef,2398101f69432143]", "0", "00")
+ self.bid128_to_int32_xint("0", "[f8dadcdd9d42b5ba,00000c0010042000]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[fdffffffffffefff,a0244a115d959211]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "[fffdeafefbffbffd,0000000200800022]", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "Infinity", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "QNaN", "-2147483648", "01")
+ self.bid128_to_int32_xint("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_int32_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int32_xrnint() {
+ self.bid128_to_int32_xrnint("0", "-0", "0", "00")
+ self.bid128_to_int32_xrnint("0", "0", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[0000000000000000,0000800400021000]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "-0.000010E0", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[0400000000000000,3ad8487f5e2917fd]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "0.5", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[09312878d47281dd,70d14704f89319bf]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "+1.001010010E0", "1", "20")
+ self.bid128_to_int32_xrnint("0", "1.0", "1", "00")
+ self.bid128_to_int32_xrnint("0", "1073741824", "1073741824", "00")
+ self.bid128_to_int32_xrnint("0", "1", "1", "00")
+ self.bid128_to_int32_xrnint("0", "[12e159e71348a046,7f9b7792e493653b]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[1964644cc704e124,3acc322f3ec7d581]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[197173d7fa5c9ca0,9410d762b8f5fd85]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[2082ad8c2be9375e,95db30737e42d995]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "2147483648", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[2b204dd6afa79006,1f427e41a64e1da9]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_int32_xrnint("0", "[2ffd7dd9f7f7bdb8,8e757266c4d548a8]", "1", "20")
+ self.bid128_to_int32_xrnint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_int32_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int32_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_int32_xrnint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_int32_xrnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int32_xrnint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_int32_xrnint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_int32_xrnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int32_xrnint("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_int32_xrnint("0", "[2ffedf7ff2b6757f,10210330080c0084]", "5", "20")
+ self.bid128_to_int32_xrnint("0", "[300000a410024210,e679af471102f6ad]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[3000281880001200,f64ebf491de79cff]", "8", "20")
+ self.bid128_to_int32_xrnint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_int32_xrnint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[30094cd57238fe03,3e1f2a916276af0c]", "675067", "20")
+ self.bid128_to_int32_xrnint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[30104804421145ad,299fa79f950f9f6c]", "1460670851", "20")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "20")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "20")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE6FC95C29899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE6FC95C29899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE76676D080000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010a98821042801,16800000841a2000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30140007089c5110,15ba1fe18a16e0ca]", "55726199", "20")
+ self.bid128_to_int32_xrnint("0", "[30140080006c0200,0217500003081000]", "1014133538", "20")
+ self.bid128_to_int32_xrnint("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "20")
+ self.bid128_to_int32_xrnint("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "20")
+ self.bid128_to_int32_xrnint("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[30180002B5E3AF13FBA450E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30180002B5E3AF13FBA450E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_int32_xrnint("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_int32_xrnint("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[301A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A00004563918244F4000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[3020000000000000,ffffffffffffefb7]", "1845", "20")
+ self.bid128_to_int32_xrnint("0", "[3020000000500050,84a563b86fb9677d]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[302A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_int32_xrnint("0", "[302C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[302E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_int32_xrnint("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int32_xrnint("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_int32_xrnint("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_int32_xrnint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int32_xrnint("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_int32_xrnint("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "20")
+ self.bid128_to_int32_xrnint("0", "[303E00000000000000000004FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[303E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[303E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[303E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[303E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[303E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[303E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[303E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int32_xrnint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int32_xrnint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int32_xrnint("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_xrnint("0", "[30400000000000000000000080000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[304000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[304000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[304000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int32_xrnint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int32_xrnint("0", "[304200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int32_xrnint("0", "[30520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[30540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[3886000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[412db094345f81ed,b0aaf73587ef2621]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[48e6cd306f4cdf48,c1c1cd461e942ef2]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "5.05", "5", "20")
+ self.bid128_to_int32_xrnint("0", "[52ac3467cbc0e4cd,5fefaefd4dfddd69]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "5.5", "6", "20")
+ self.bid128_to_int32_xrnint("0", "+677758.88757977578559E0", "677759", "20")
+ self.bid128_to_int32_xrnint("0", "-69558.666799957E0", "-69559", "20")
+ self.bid128_to_int32_xrnint("0", "+695979986.76578E0", "695979987", "20")
+ self.bid128_to_int32_xrnint("0", "[7800000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[78000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[78b3620c6b5eae70,ee9bcfbf7dfb956f]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[7c000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[7e000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[856a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[8cbc23f62c90b8c4,7a40737ba2d26303]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[8e76ea27b03af84e,400f53fa2cc87162]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "-9", "-9", "00")
+ self.bid128_to_int32_xrnint("0", "[a14d99a44549c361,3d75018813cdbda5]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[a158b78a8e8df208,c161d0722c70922b]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[a858000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[ab10000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "20")
+ self.bid128_to_int32_xrnint("0", "[affd7bf775ffffb4,0030000002000020]", "-1", "20")
+ self.bid128_to_int32_xrnint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "20")
+ self.bid128_to_int32_xrnint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "20")
+ self.bid128_to_int32_xrnint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "20")
+ self.bid128_to_int32_xrnint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "20")
+ self.bid128_to_int32_xrnint("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int32_xrnint("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "20")
+ self.bid128_to_int32_xrnint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "20")
+ self.bid128_to_int32_xrnint("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "20")
+ self.bid128_to_int32_xrnint("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "20")
+ self.bid128_to_int32_xrnint("0", "[afffdff71537dfed,1488400020000004]", "-10", "20")
+ self.bid128_to_int32_xrnint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "20")
+ self.bid128_to_int32_xrnint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "-2147483646", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "-2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE692B4B4B133125F000000]", "-2147483647", "00")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE692B4B4B133125F000001]", "-2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE6FC95C29899892F800000]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE6FC95C29899892F800001]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE76676D080000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE76676D080000000000001]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE7D057DE676676D07FFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE7D057DE676676D0800000]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[b0112c8acfa7b023,6da8aae0534fa699]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xrnint("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "-2147483646", "20")
+ self.bid128_to_int32_xrnint("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "-2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[B0180002B5E3AF13FBA450E94E780000]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B0180002B5E3AF13FBA450E94E780001]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B0180002B5E3AF19676BAF16B1880000]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B0180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "20")
+ self.bid128_to_int32_xrnint("0", "[B01A000045639181BA2CDCFB7617FFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[B01A000045639181BA2CDCFB76180000]", "-2147483647", "00")
+ self.bid128_to_int32_xrnint("0", "[B01A000045639181BA2CDCFB76180001]", "-2147483647", "20")
+ self.bid128_to_int32_xrnint("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B01A00004563918244F4000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_xrnint("0", "[B01A00004563918244F4000000000001]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B01A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B01E000000000001A055690D9DB80001]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B02000000000000029A2241AF62C0001]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B024000000000000006A94D74F42FFFF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B024000000000000006A94D74F430001]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B02A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02C000000000000000002BBA7F521FF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B02C000000000000000002BBA7F52200]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B02C000000000000000002BBA7F52201]", "-301", "20")
+ self.bid128_to_int32_xrnint("0", "[B02C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B02E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B03000000000000000000006FC23ABFF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B03000000000000000000006FC23AC01]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03200000000000000000000B2D05DFF]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B03200000000000000000000B2D05E01]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03800000000000000000000002DDA47]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03800000000000000000000002DDA48]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03800000000000000000000002DDA49]", "-301", "20")
+ self.bid128_to_int32_xrnint("0", "[B03A00000000000000000000000003E7]", "-1", "20")
+ self.bid128_to_int32_xrnint("0", "[B03A00000000000000000000000495D3]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03A00000000000000000000000495D4]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03A00000000000000000000000495D5]", "-301", "20")
+ self.bid128_to_int32_xrnint("0", "[B03C0000000000000000000000007561]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03C0000000000000000000000007562]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03C0000000000000000000000007563]", "-301", "20")
+ self.bid128_to_int32_xrnint("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int32_xrnint("0", "[B03E000000000000000000000000000F]", "-2", "20")
+ self.bid128_to_int32_xrnint("0", "[B03E0000000000000000000000000BB7]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B03E0000000000000000000000000BB9]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03E0000000000000000000000000BBD]", "-300", "20")
+ self.bid128_to_int32_xrnint("0", "[B03E00000000000000000004FFFFFFF1]", "-2147483646", "20")
+ self.bid128_to_int32_xrnint("0", "[B03E00000000000000000004FFFFFFFB]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B03E0000000000000000000500000005]", "-2147483648", "20")
+ self.bid128_to_int32_xrnint("0", "[B03E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B03E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B03E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B03E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B03E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B03E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int32_xrnint("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int32_xrnint("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int32_xrnint("0", "[B040000000000000000000007FFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_xrnint("0", "[B0400000000000000000000080000000]", "-2147483648", "00")
+ self.bid128_to_int32_xrnint("0", "[B0400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B04000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B0400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B0400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B04000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B04000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int32_xrnint("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int32_xrnint("0", "[B04200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B0420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B0420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int32_xrnint("0", "[B0520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B0520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[B0540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[b7ffff7dffffffff,4c81800a1452030a]", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[c0658ef817440763,1cf27bf23ccad1e5]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[c2ca000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[c346000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[d100000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrnint("0", "[d90b8f7a65532781,298648fd32f0e9e5]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[f86214e3a06affef,004cff06ffbd67b1]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[fca76effdfffe7ec,eefb5ffef9effeef]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "[ffdeff5dbbadf9fb,3868950a106062a2]", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "Infinity", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "QNaN", "-2147483648", "01")
+ self.bid128_to_int32_xrnint("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_int32_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int32_xrninta() {
+ self.bid128_to_int32_xrninta("0", "-0", "0", "00")
+ self.bid128_to_int32_xrninta("0", "0", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[0000000000000000,0000020000000080]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "[0000000000000000,fe3fbd6ffbfdffff]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "-0.000010E0", "0", "20")
+ self.bid128_to_int32_xrninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[0020380000205048,40c5e5f698973568]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "0.1", "0", "20")
+ self.bid128_to_int32_xrninta("0", "[0c00000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[0c7c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[0d0a2e1446401427,78f00c00425f7b04]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "+1.001010010E0", "1", "20")
+ self.bid128_to_int32_xrninta("0", "1.0", "1", "00")
+ self.bid128_to_int32_xrninta("0", "1073741824", "1073741824", "00")
+ self.bid128_to_int32_xrninta("0", "1", "1", "00")
+ self.bid128_to_int32_xrninta("0", "[1164000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[1706000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[1e5fffaa4f778d66,0420200012005101]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "2147483648", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[2631b75c991c9650,46b6c7f51244d5fb]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[2ffd6dfff6fffebf,0012000004001000]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int32_xrninta("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int32_xrninta("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_int32_xrninta("0", "[3000009000000480,a248bebbece3fbf3]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "[3000c00808607200,0000020000300104]", "39", "20")
+ self.bid128_to_int32_xrninta("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "20")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE6FC95C29899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE6FC95C29899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE76676D080000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE76676D080000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE7D057DE676676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30111aa0f8d01cc9,5489c4c53380001f]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "20")
+ self.bid128_to_int32_xrninta("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[30180002B5E3AF13FBA450E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30180002B5E3AF13FBA450E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3018000890028000,7f5af4bcfbafc3ef]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_int32_xrninta("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[301A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A00004563918244F4000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A00004563918244F4000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[301c000000000000,082a4414c12a92ab]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[3020000000000102,0000000000000000]", "475926", "20")
+ self.bid128_to_int32_xrninta("0", "[3020000000008000,7ffdffffabfdf7f5]", "60447213", "20")
+ self.bid128_to_int32_xrninta("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[302A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[302C000000000000000002BBA7F52200]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[302C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[302E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[303800000000000000000000002DDA48]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[303A00000000000000000000000495D4]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[303C0000000000000000000000007562]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_int32_xrninta("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int32_xrninta("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_int32_xrninta("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_int32_xrninta("0", "[303E00000000000000000004FFFFFFF1]", "2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[303E00000000000000000004FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[303E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[303E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[303E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[303E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[303E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[303E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[303E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int32_xrninta("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int32_xrninta("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int32_xrninta("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_int32_xrninta("0", "[30400000000000000000000080000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[304000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[304000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[304000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int32_xrninta("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int32_xrninta("0", "[304200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int32_xrninta("0", "[30520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[30540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[31e4000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[3b88000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[45939b4de155e68b,0f314aa0dd7771bb]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "5.05", "5", "20")
+ self.bid128_to_int32_xrninta("0", "[5162000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[5301d2cd3055bac7,1593dc94bd23fe25]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "5.5", "6", "20")
+ self.bid128_to_int32_xrninta("0", "[59b83bca01ef0923,15404b234eb30d35]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "+677758.88757977578559E0", "677759", "20")
+ self.bid128_to_int32_xrninta("0", "-69558.666799957E0", "-69559", "20")
+ self.bid128_to_int32_xrninta("0", "+695979986.76578E0", "695979987", "20")
+ self.bid128_to_int32_xrninta("0", "[78000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[7b4dbbdff5c4f7be,0040000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[7c000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[7e000000000000000000000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[82b4000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "-9", "-9", "00")
+ self.bid128_to_int32_xrninta("0", "[a1b8000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[a2f02624c669655d,309fda457a025819]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "[a7d028586efbde1e,ffd62d649e4def9d]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "[abea26c6965f210b,3c96572bc15ef28a]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int32_xrninta("0", "[AFFCF684DF56C3E01BC6C73200000000]", "-1", "20")
+ self.bid128_to_int32_xrninta("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "20")
+ self.bid128_to_int32_xrninta("0", "[affd5ff7fffffffe,f9cfbdde7ff7f7f9]", "-1", "20")
+ self.bid128_to_int32_xrninta("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "20")
+ self.bid128_to_int32_xrninta("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "20")
+ self.bid128_to_int32_xrninta("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "20")
+ self.bid128_to_int32_xrninta("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "20")
+ self.bid128_to_int32_xrninta("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int32_xrninta("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "20")
+ self.bid128_to_int32_xrninta("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "20")
+ self.bid128_to_int32_xrninta("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "20")
+ self.bid128_to_int32_xrninta("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "20")
+ self.bid128_to_int32_xrninta("0", "[affedbbdcdff7c7d,ce3fd3738aea6ffc]", "-4", "20")
+ self.bid128_to_int32_xrninta("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B00294286EACB8CB0A8CB6B140000000]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "-2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "-2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE692B4B4B133125F000000]", "-2147483647", "00")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE692B4B4B133125F000001]", "-2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE6FC95C29899892F800000]", "-2147483648", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE6FC95C29899892F800001]", "-2147483648", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE76676D080000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE76676D080000000000001]", "-2147483648", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE7D057DE676676D07FFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE7D057DE676676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE7D057DE676676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010C5371912364CE3056C2800000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010C5371912364CE3056C2800000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCDF92B853133125F000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCDF92B853133125F000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCE630C931899892F7FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCE630C931899892F800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCE630C931899892F800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCECCEDA100000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCECCEDA100000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCF36CEAEE76676D0800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCF36CEAEE76676D0800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010F684DF56C3E01BC6C73200000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B010F684DF56C3E01BC6C73200000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[b0118100100e0600,fffbfffbeeedffdf]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C88FB62ED56E4238E400000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C88FB62ED56E4238E400001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C8905F96EBAD4C909800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C8905F96EBAD4C909800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C89108FF01EC56E84C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C89108FF01EC56E84C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C891B267182B613FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C891B267182B61400000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C891B267182B61400000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C893053744A975EF67FFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C893053744A975EF6800000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C893053744A975EF6800001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C893AE9F5AE880471C00000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B012629B8C893AE9F5AE880471C00001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[b014010838c00c00,4000080200480020]", "-2093379823", "20")
+ self.bid128_to_int32_xrninta("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "-2147483646", "20")
+ self.bid128_to_int32_xrninta("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "-2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "-2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[B0180002B5E3AF13FBA450E94E780000]", "-2147483648", "20")
+ self.bid128_to_int32_xrninta("0", "[B0180002B5E3AF13FBA450E94E780001]", "-2147483648", "20")
+ self.bid128_to_int32_xrninta("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xrninta("0", "[B0180002B5E3AF19676BAF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B0180002B5E3AF19676BAF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01800056BC75E2AAD2C50E94E780000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01800056BC75E2AAD2C50E94E780001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01800056BC75E3018F3AF16B187FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01800056BC75E3018F3AF16B1880000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01800056BC75E3018F3AF16B1880001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B01A000045639181BA2CDCFB7617FFFF]", "-2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[B01A000045639181BA2CDCFB76180000]", "-2147483647", "00")
+ self.bid128_to_int32_xrninta("0", "[B01A000045639181BA2CDCFB76180001]", "-2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "-2147483648", "20")
+ self.bid128_to_int32_xrninta("0", "[B01A00004563918244F4000000000000]", "-2147483648", "00")
+ self.bid128_to_int32_xrninta("0", "[B01A00004563918244F4000000000001]", "-2147483648", "20")
+ self.bid128_to_int32_xrninta("0", "[B01A000045639182CFBB230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A000045639182CFBB230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A000045639182CFBB230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A00008AC72303FF20DCFB76180000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A00008AC72303FF20DCFB76180001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A00008AC7230489E8000000000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A00008AC7230489E8000000000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A00008AC7230514AF230489E7FFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A00008AC7230514AF230489E80000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01A00008AC7230514AF230489E80001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B01E000000000001A055690D9DB80001]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B02000000000000029A2241AF62C0001]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[b020000000401028,0010200000800008]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B024000000000000006A94D74F42FFFF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B024000000000000006A94D74F430001]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B02A00000000006C6B935B68D08DA3FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02A00000000006C6B935B68D08DA400]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02A00000000006C6B935B68D08DA401]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02A00000000006C6B935B8019048BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02A00000000006C6B935B8019048C00]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02A00000000006C6B935B8019048C01]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02C000000000000000002BBA7F521FF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B02C000000000000000002BBA7F52200]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B02C000000000000000002BBA7F52201]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B02C00000000000AD78EBC5872141BFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02C00000000000AD78EBC5872141C00]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02C00000000000AD78EBC5872141C01]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02C00000000000AD78EBC5BF025F200]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02C00000000000AD78EBC5BF025F201]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02C00000000000AD78EBC5E4431D600]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02C00000000000AD78EBC5E4431D601]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02E000000000001158E46094F6AC9FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02E000000000001158E46094F6ACA00]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B02E000000000001158E46094F6ACA01]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B03000000000000000000006FC23ABFF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B03000000000000000000006FC23AC01]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B03200000000000000000000B2D05DFF]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B03200000000000000000000B2D05E01]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B03800000000000000000000002DDA47]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B03800000000000000000000002DDA48]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B03800000000000000000000002DDA49]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B03A00000000000000000000000003E7]", "-1", "20")
+ self.bid128_to_int32_xrninta("0", "[B03A00000000000000000000000495D3]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B03A00000000000000000000000495D4]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B03A00000000000000000000000495D5]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B03C0000000000000000000000007561]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B03C0000000000000000000000007562]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B03C0000000000000000000000007563]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B03E0000000000000000000000000005]", "-1", "20")
+ self.bid128_to_int32_xrninta("0", "[B03E000000000000000000000000000F]", "-2", "20")
+ self.bid128_to_int32_xrninta("0", "[B03E0000000000000000000000000BB7]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B03E0000000000000000000000000BB9]", "-300", "20")
+ self.bid128_to_int32_xrninta("0", "[B03E0000000000000000000000000BBD]", "-301", "20")
+ self.bid128_to_int32_xrninta("0", "[B03E00000000000000000004FFFFFFF1]", "-2147483647", "20")
+ self.bid128_to_int32_xrninta("0", "[B03E00000000000000000004FFFFFFFB]", "-2147483648", "20")
+ self.bid128_to_int32_xrninta("0", "[B03E0000000000000000000500000005]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B03E00000000000000000009FFFFFFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B03E0000000000000000000A00000005]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B03E0000000000000000002E90EDCFF1]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B03E0000000000000000002E90EDCFFB]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B03E0000000000000000002E90EDD005]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B03E0000000000000000002E90EDD00F]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int32_xrninta("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int32_xrninta("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int32_xrninta("0", "[B040000000000000000000007FFFFFFF]", "-2147483647", "00")
+ self.bid128_to_int32_xrninta("0", "[B0400000000000000000000080000000]", "-2147483648", "00")
+ self.bid128_to_int32_xrninta("0", "[B0400000000000000000000080000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B04000000000000000000000FFFFFFFF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B0400000000000000000000100000000]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B0400000000000000000000100000001]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B04000000000000000000004A817C7FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B04000000000000000000004A817C801]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int32_xrninta("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int32_xrninta("0", "[B04200000000000000000000773593FF]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B0420000000000000000000077359400]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B0420000000000000000000077359401]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int32_xrninta("0", "[B0520000000000000000000000000004]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B0520000000000000000000000000005]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[B0540000000000000000000000000002]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[baec000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[c854bd58deaabdd1,be52f52fb5f30bac]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[ceee000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int32_xrninta("0", "[d9529328105beb74,1bdf9fc4ae540033]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[da8ef6e3679a9458,5313659fe16c3f11]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[dffefdffffefffd7,bb86ffe79787ce96]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[fbfcfff7bfbfffdf,b410600ae6233809]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[fda236319c5db2cf,d062b9a8e7239c9a]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "[ff6dffffcfeffffb,3800083200110200]", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "Infinity", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "QNaN", "-2147483648", "01")
+ self.bid128_to_int32_xrninta("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_int32_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int32 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int64_ceil() {
+ self.bid128_to_int64_ceil("0", "-0", "0", "00")
+ self.bid128_to_int64_ceil("0", "0", "0", "00")
+ self.bid128_to_int64_ceil("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[0000000000000000,7dfcbfe7b72665f6]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[00192102b40030b0,461f6ee25e8782b9]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[0080000000000000,0000000000044000]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[08213e908a0cb8d0,f831665cc65b92b3]", "1", "00")
+ self.bid128_to_int64_ceil("0", "1.0", "1", "00")
+ self.bid128_to_int64_ceil("0", "1152921504606846976", "1152921504606846976", "00")
+ self.bid128_to_int64_ceil("0", "[228626835af733a6,a29be2235339439d]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[2c0ae043697c8002,114ba25335f8d761]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[2f58dda85d6c3236,6673048ded8b6db2]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[2FFE314DC6448D9338C15B0A00000001]", "2", "00")
+ self.bid128_to_int64_ceil("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "2", "00")
+ self.bid128_to_int64_ceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int64_ceil("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_int64_ceil("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[300293E952CDA8B9AA44111E00000001]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[30040ECA8847C4129106CE8300000001]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[300A0003C95A2F0B4856475FE0000001]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[300C000060EF6B1ABA6F072330000001]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3010C5371912364CE3056C2800000001]", "4000000001", "00")
+ self.bid128_to_int64_ceil("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000001", "00")
+ self.bid128_to_int64_ceil("0", "[3012402563fd6b8c,a5affbc4c524c85d]", "13010366021", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C8905F96EBAD4C909800001]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C891B267182B61400000001]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C893053744A975EF6800001]", "20000000002", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000002", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "00")
+ self.bid128_to_int64_ceil("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "00")
+ self.bid128_to_int64_ceil("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[3018AD78EBC5AC620000000000000001]", "35184372088833", "00")
+ self.bid128_to_int64_ceil("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088833", "00")
+ self.bid128_to_int64_ceil("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088833", "00")
+ self.bid128_to_int64_ceil("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "00")
+ self.bid128_to_int64_ceil("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B2663A1FF60589C0001]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B267182B61400000001]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000002", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000002", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "00")
+ self.bid128_to_int64_ceil("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "00")
+ self.bid128_to_int64_ceil("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[301E000000000001A055690D9DB80001]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088833", "00")
+ self.bid128_to_int64_ceil("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088833", "00")
+ self.bid128_to_int64_ceil("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "00")
+ self.bid128_to_int64_ceil("0", "[301e0381c43897c1,8000202040440003]", "711283892537128", "00")
+ self.bid128_to_int64_ceil("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[302000000000000029A2241AF62C0001]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[3020000470DE4DF82000000000000001]", "35184372088833", "00")
+ self.bid128_to_int64_ceil("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000002", "00")
+ self.bid128_to_int64_ceil("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "00")
+ self.bid128_to_int64_ceil("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "00")
+ self.bid128_to_int64_ceil("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[302200193E5939A08CE4879688D64000]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[302200193E5939A08CE815152D9CBFFF]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3022da5c3348146e,8a89c98d74cda6e4]", "4428870155422022827", "00")
+ self.bid128_to_int64_ceil("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[3023C6BF52633FFFFFFC72815B398001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF526340000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[3024000000000000006A94D74F430001]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[30242def6c04442c,9de84c300d608a5d]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[302449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[302449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[302449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[302A00000000006C6B935B68D08DA400]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[302A00000000006C6B935B8019048BFF]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[302C000000000000000002BBA7F521FF]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[302C000000000000000002BBA7F52200]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[302C00000000000AD78EBC5872141C01]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[302C00000000000AD78EBC5BF025F200]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000002", "00")
+ self.bid128_to_int64_ceil("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "00")
+ self.bid128_to_int64_ceil("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "00")
+ self.bid128_to_int64_ceil("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[302C000000108B2A2C28028E3FF41C01]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[302E000000000001158E46094F6ACA01]", "20000000002", "00")
+ self.bid128_to_int64_ceil("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000002", "00")
+ self.bid128_to_int64_ceil("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[303000000000000000000006FC23AC01]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[303200000000000000000000B2D05E01]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303800000000000000000000002DDA47]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303800000000000000000000002DDA48]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[303A00000000000000000000000495D3]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303A00000000000000000000000495D4]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303C0000000000000000000000007561]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303C0000000000000000000000007562]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int64_ceil("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[303E0000000000000000000000000BB9]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[303E0000000000000000002E90EDCFF1]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[303E0000000000000000002E90EDD005]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "00")
+ self.bid128_to_int64_ceil("0", "[303E0000000000000001400000000005]", "35184372088833", "00")
+ self.bid128_to_int64_ceil("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[303E00000000000000470DE4DF820005]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "00")
+ self.bid128_to_int64_ceil("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[303E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[303E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[303E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int64_ceil("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int64_ceil("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int64_ceil("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[3040000000000000,014b484b6f01d92c]", "93247706113366316", "00")
+ self.bid128_to_int64_ceil("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[30400000000000008000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int64_ceil("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int64_ceil("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_int64_ceil("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_int64_ceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int64_ceil("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_int64_ceil("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_int64_ceil("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[3064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[30680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[494fc3142a6b4416,e8dcc481f82dd6ea]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[4aa33d45170a2135,f2fdf87939668b29]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[526c2ebc6cb9c911,54421db513233a31]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[538a0a9db2f85dab,653a95d98444fded]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[5416e0321f992156,cf31f597055f2890]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "5.5", "6", "00")
+ self.bid128_to_int64_ceil("0", "[78000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[7bfb891c1f9ffc2f,0285608800011546]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[7c000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[7c003fffffffffff38c15b08ffffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[7c003fffffffffff38c15b0affffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[7e000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[924bb9a9c8e95981,9b69ea4f33f7950f]", "0", "00")
+ self.bid128_to_int64_ceil("0", "-9", "-9", "00")
+ self.bid128_to_int64_ceil("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int64_ceil("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "00")
+ self.bid128_to_int64_ceil("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "00")
+ self.bid128_to_int64_ceil("0", "[AFFE49F4A966D45CD522088F00000000]", "-1", "00")
+ self.bid128_to_int64_ceil("0", "[AFFE49F4A966D45CD522088F00000001]", "-1", "00")
+ self.bid128_to_int64_ceil("0", "[afffdffbbbfbf97e,7fffefdfff7feeee]", "-9", "00")
+ self.bid128_to_int64_ceil("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-299", "00")
+ self.bid128_to_int64_ceil("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B00294286EACB8CB0A8CB6B140000001]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-299", "00")
+ self.bid128_to_int64_ceil("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-299", "00")
+ self.bid128_to_int64_ceil("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-299", "00")
+ self.bid128_to_int64_ceil("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-3999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B010C5371912364CE3056C2800000000]", "-4000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B010C5371912364CE3056C2800000001]", "-4000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-4999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B010F684DF56C3E01BC6C73200000000]", "-5000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B010F684DF56C3E01BC6C73200000001]", "-5000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-19999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C88FB62ED56E4238E400000]", "-19999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C88FB62ED56E4238E400001]", "-19999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-19999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C8905F96EBAD4C909800000]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C8905F96EBAD4C909800001]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C89108FF01EC56E84C00000]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C89108FF01EC56E84C00001]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C891B267182B613FFFFFFFF]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C891B267182B61400000000]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C891B267182B61400000001]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C893053744A975EF67FFFFF]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C893053744A975EF6800000]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C893053744A975EF6800001]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C893AE9F5AE880471C00000]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B012629B8C893AE9F5AE880471C00001]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "-35184372088831", "00")
+ self.bid128_to_int64_ceil("0", "[B018AD78EBC5AC620000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B018AD78EBC5AC620000000000000001]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B265CB1A40684EA0000]", "-1999999999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B265CB1A40684EA0001]", "-1999999999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B2663A1FF60589C0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B2663A1FF60589C0001]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B266A925ABA2C4E0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B266A925ABA2C4E0001]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B267182B613FFFFFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B267182B61400000000]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B267182B61400000001]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B267873116DD3B1FFFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B267873116DD3B20000]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B267873116DD3B20001]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B267F636CC7A763FFFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B267F636CC7A7640000]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B267F636CC7A7640001]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B268653C8217B15FFFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B268653C8217B160000]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B01C629B8C891B268653C8217B160001]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B01E000000000001A055690D9DB7FFFF]", "-299", "00")
+ self.bid128_to_int64_ceil("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B01E000000000001A055690D9DB80001]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B02000000000000029A2241AF62BFFFF]", "-299", "00")
+ self.bid128_to_int64_ceil("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B02000000000000029A2241AF62C0001]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "-35184372088831", "00")
+ self.bid128_to_int64_ceil("0", "[B020000470DE4DF82000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B020000470DE4DF82000000000000001]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B02000FC6F7C4045813459C637E07FFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B02000FC6F7C4045813459C637E08000]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B02000FC6F7C4045813459C637E08001]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B02000FC6F7C40458157E0B8A7A18000]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B02000FC6F7C40458157E0B8A7A18001]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B02200193E5939A08CE4879688D63FFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B02200193E5939A08CE4879688D64000]", "-1999999999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B02200193E5939A08CE4879688D64001]", "-1999999999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B02200193E5939A08CE815152D9CBFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B02200193E5939A08CE815152D9CC000]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B02200193E5939A08CE815152D9CC001]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[b023934c023417e2,7df2bfdffbdef7b6]", "-8179833092569662001", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "-9223372036854775806", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF52633FFFFFFAABC208D64000]", "-9223372036854775806", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF52633FFFFFFAABC208D64001]", "-9223372036854775806", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "-9223372036854775806", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF52633FFFFFFC72815B398000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF52633FFFFFFC72815B398001]", "-9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF526340000000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF526340000000000000000001]", "-9223372036854775808", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF526340000001C6BF52634000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF526340000001C6BF52634001]", "-9223372036854775808", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "00")
+ self.bid128_to_int64_ceil("0", "[B023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[b023d90fd29ff672,87f1842ed60e31e4]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B024000000000000006A94D74F42FFFF]", "-299", "00")
+ self.bid128_to_int64_ceil("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B024000000000000006A94D74F430001]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B02449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B02449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B02A00000000006C6B935B68D08DA3FF]", "-19999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B02A00000000006C6B935B68D08DA400]", "-19999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B02A00000000006C6B935B68D08DA401]", "-19999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B02A00000000006C6B935B8019048BFF]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B02A00000000006C6B935B8019048C00]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B02A00000000006C6B935B8019048C01]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B02C000000000000000002BBA7F521FF]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B02C000000000000000002BBA7F52200]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B02C000000000000000002BBA7F52201]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B02C00000000000AD78EBC5872141BFF]", "-19999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B02C00000000000AD78EBC5872141C00]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B02C00000000000AD78EBC5872141C01]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B02C00000000000AD78EBC5BF025F200]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B02C00000000000AD78EBC5BF025F201]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B02C00000000000AD78EBC5E4431D600]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B02C00000000000AD78EBC5E4431D601]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B02C000000108B2A2C28028E3FF41BFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B02C000000108B2A2C28028E3FF41C00]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B02C000000108B2A2C28028E3FF41C01]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B02E000000000001158E46094F6AC9FF]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B02E000000000001158E46094F6ACA00]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B02E000000000001158E46094F6ACA01]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B02E00000001A784379D99DB7D9AC9FF]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B02E00000001A784379D99DB7D9ACA00]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B02E00000001A784379D99DB7D9ACA01]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B03000000000000000000006FC23ABFF]", "-299", "00")
+ self.bid128_to_int64_ceil("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03000000000000000000006FC23AC01]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03200000000000000000000B2D05DFF]", "-299", "00")
+ self.bid128_to_int64_ceil("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03200000000000000000000B2D05E01]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03800000000000000000000002DDA47]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03800000000000000000000002DDA48]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03800000000000000000000002DDA49]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[B03A00000000000000000000000495D3]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03A00000000000000000000000495D4]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03A00000000000000000000000495D5]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03C0000000000000000000000007561]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03C0000000000000000000000007562]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03C0000000000000000000000007563]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[B03E000000000000000000000000000F]", "-1", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000000000000000000BB7]", "-299", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000000000000000000BB9]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000000000000000000BBD]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000000000002E90EDCFF1]", "-19999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000000000002E90EDCFFB]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000000000002E90EDD005]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000000000002E90EDD00F]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000000001400000000005]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B03E00000000000000470DE4DF81FFF1]", "-1999999999999998", "00")
+ self.bid128_to_int64_ceil("0", "[B03E00000000000000470DE4DF81FFFB]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B03E00000000000000470DE4DF820005]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B03E00000000000000470DE4DF82000F]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "-9223372036854775806", "00")
+ self.bid128_to_int64_ceil("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000050000000000000005]", "-9223372036854775808", "00")
+ self.bid128_to_int64_ceil("0", "[B03E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B03E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int64_ceil("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int64_ceil("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int64_ceil("0", "[B04000000000000000000004A817C7FF]", "-19999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B04000000000000000000004A817C801]", "-20000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B0400000000000000000200000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_ceil("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_ceil("0", "[B04000000000000000071AFD498D0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_ceil("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_ceil("0", "[B0400000000000008000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_ceil("0", "[B0400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int64_ceil("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int64_ceil("0", "[B04200000000000000000000773593FF]", "-19999999990", "00")
+ self.bid128_to_int64_ceil("0", "[B0420000000000000000000077359400]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B0420000000000000000000077359401]", "-20000000010", "00")
+ self.bid128_to_int64_ceil("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int64_ceil("0", "[B0520000000000000000000000000004]", "-4000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B0520000000000000000000000000005]", "-5000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B0540000000000000000000000000002]", "-20000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B05E0000000000000000000000000002]", "-2000000000000000", "00")
+ self.bid128_to_int64_ceil("0", "[B064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[B0680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[bcbe622a5bc91149,404719d52907356d]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[cfe6050ef670322b,d85e4279c5c2f476]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[d0176969d97fef0b,8aae75bc2033df3f]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[eabafffbfdfdffff,fbf6b7efdffbfdff]", "0", "00")
+ self.bid128_to_int64_ceil("0", "[fa4ce83119645902,01200042a0410b0e]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[fdfffffff9ffffff,f739a8a8d36fdfa8]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "[ffd4ffefdeffbfbf,f3dcd8ed673f5f77]", "-9223372036854775808", "01")
+ self.bid128_to_int64_ceil("0", "Infinity", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_int64_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int64_floor() {
+ self.bid128_to_int64_floor("0", "-0", "0", "00")
+ self.bid128_to_int64_floor("0", "0", "0", "00")
+ self.bid128_to_int64_floor("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_floor("0", "[0000000000000000,0000002000000000]", "0", "00")
+ self.bid128_to_int64_floor("0", "[0000000000000000,0804100000000000]", "0", "00")
+ self.bid128_to_int64_floor("0", "[0000000000000000,afd59ea57edef575]", "0", "00")
+ self.bid128_to_int64_floor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int64_floor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int64_floor("0", "1.0", "1", "00")
+ self.bid128_to_int64_floor("0", "1152921504606846976", "1152921504606846976", "00")
+ self.bid128_to_int64_floor("0", "[11cd4f45a75a0e18,056e2e9019475f83]", "0", "00")
+ self.bid128_to_int64_floor("0", "[1b18eec278dc2951,9ebed123c533d962]", "0", "00")
+ self.bid128_to_int64_floor("0", "[1d1e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_floor("0", "[240652287b972a53,92e84ab8f917df43]", "0", "00")
+ self.bid128_to_int64_floor("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_floor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int64_floor("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_int64_floor("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_int64_floor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int64_floor("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_int64_floor("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_floor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int64_floor("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_int64_floor("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_int64_floor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_int64_floor("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "00")
+ self.bid128_to_int64_floor("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "00")
+ self.bid128_to_int64_floor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int64_floor("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_int64_floor("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_int64_floor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_int64_floor("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "00")
+ self.bid128_to_int64_floor("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "00")
+ self.bid128_to_int64_floor("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int64_floor("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_int64_floor("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "00")
+ self.bid128_to_int64_floor("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int64_floor("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_int64_floor("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "00")
+ self.bid128_to_int64_floor("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int64_floor("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_int64_floor("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "00")
+ self.bid128_to_int64_floor("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_int64_floor("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_int64_floor("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "4999999999", "00")
+ self.bid128_to_int64_floor("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_int64_floor("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "00")
+ self.bid128_to_int64_floor("0", "[3012328809041443,fbf57ab87f88cd77]", "10248983005", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999998", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999998", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C89108FF01EC56E84C00000]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C89108FF01EC56E84C00001]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C891B267182B613FFFFFFFF]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C891B267182B61400000001]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088831", "00")
+ self.bid128_to_int64_floor("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_int64_floor("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_int64_floor("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999998", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999998", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B266A925ABA2C4E0000]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B266A925ABA2C4E0001]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B267182B613FFFFFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B268653C8217B160000]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[301C629B8C891B268653C8217B160001]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[301E000000000001A055690D9DB7FFFF]", "299", "00")
+ self.bid128_to_int64_floor("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int64_floor("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_int64_floor("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[302000000000000029A2241AF62BFFFF]", "299", "00")
+ self.bid128_to_int64_floor("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int64_floor("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_int64_floor("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088831", "00")
+ self.bid128_to_int64_floor("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "00")
+ self.bid128_to_int64_floor("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "00")
+ self.bid128_to_int64_floor("0", "[302200193E5939A08CE4879688D64001]", "1999999999999998", "00")
+ self.bid128_to_int64_floor("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[302200193E5939A08CE815152D9CC000]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[302200193E5939A08CE815152D9CC001]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[30227426399e455f,c2f4ea96abf32844]", "2355788016182584905", "00")
+ self.bid128_to_int64_floor("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "00")
+ self.bid128_to_int64_floor("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "00")
+ self.bid128_to_int64_floor("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775806", "00")
+ self.bid128_to_int64_floor("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775806", "00")
+ self.bid128_to_int64_floor("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[3023C6BF526340000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3023cbe5f7f0933f,f1c66c03b14ff837]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3024000000000000006A94D74F42FFFF]", "299", "00")
+ self.bid128_to_int64_floor("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int64_floor("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_int64_floor("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[302449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[302449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[302449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "00")
+ self.bid128_to_int64_floor("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "00")
+ self.bid128_to_int64_floor("0", "[302A00000000006C6B935B68D08DA401]", "19999999998", "00")
+ self.bid128_to_int64_floor("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[302A00000000006C6B935B8019048C00]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[302A00000000006C6B935B8019048C01]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_int64_floor("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_int64_floor("0", "[302C000000000000000002BBA7F52201]", "300", "00")
+ self.bid128_to_int64_floor("0", "[302C00000000000AD78EBC5872141BFF]", "19999999998", "00")
+ self.bid128_to_int64_floor("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[302C00000000000AD78EBC5BF025F201]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[302C00000000000AD78EBC5E4431D600]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[302C00000000000AD78EBC5E4431D601]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999998", "00")
+ self.bid128_to_int64_floor("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[302E000000000001158E46094F6AC9FF]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[303000000000000000000006FC23ABFF]", "299", "00")
+ self.bid128_to_int64_floor("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303200000000000000000000B2D05DFF]", "299", "00")
+ self.bid128_to_int64_floor("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303800000000000000000000002DDA49]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int64_floor("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303A00000000000000000000000495D5]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303C0000000000000000000000007563]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int64_floor("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_int64_floor("0", "[303E0000000000000000000000000BB7]", "299", "00")
+ self.bid128_to_int64_floor("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_int64_floor("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "00")
+ self.bid128_to_int64_floor("0", "[303E0000000000000000002E90EDCFFB]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[303E0000000000000000002E90EDD005]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[303E0000000000000000002E90EDD00F]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[303E0000000000000001400000000005]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "00")
+ self.bid128_to_int64_floor("0", "[303E00000000000000470DE4DF81FFFB]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[303E00000000000000470DE4DF82000F]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "00")
+ self.bid128_to_int64_floor("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[303E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[303E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[303E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int64_floor("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int64_floor("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int64_floor("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int64_floor("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_int64_floor("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_int64_floor("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[3040000000000000,0100000009040080]", "72057594189185152", "00")
+ self.bid128_to_int64_floor("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[30400000000000008000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int64_floor("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int64_floor("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int64_floor("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int64_floor("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_int64_floor("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_int64_floor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int64_floor("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_int64_floor("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_int64_floor("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_int64_floor("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[3064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[30680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[353e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_floor("0", "5.5", "5", "00")
+ self.bid128_to_int64_floor("0", "[57e6000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_floor("0", "[5c6daa990c7e9d2a,4b6e971cbb177379]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[768d57ff75df7663,e3b5a513648c8939]", "0", "00")
+ self.bid128_to_int64_floor("0", "[7800000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[78000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[79d0a2f7d9c54c78,85513e2b9f892bc5]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[7c00000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[7c000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[7c003fffffffffff38c15b08ffffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[7c003fffffffffff38c15b0affffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[7dffdfbcfe9fffff,7ef77dc7f9cffa7d]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[7e000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[8040100000040206,ae3068b36208685e]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[976a832080679c98,9646ac6640a2a10f]", "-1", "00")
+ self.bid128_to_int64_floor("0", "-9", "-9", "00")
+ self.bid128_to_int64_floor("0", "[a0ee9059eb92cd6b,fe13087e90c3a73d]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[a49b29393479a403,143d85612bb2e11b]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[AFFCF684DF56C3E01BC6C73200000000]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[AFFE314DC6448D9338C15B0A00000001]", "-2", "00")
+ self.bid128_to_int64_floor("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-2", "00")
+ self.bid128_to_int64_floor("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "00")
+ self.bid128_to_int64_floor("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "00")
+ self.bid128_to_int64_floor("0", "[afff7ff98545f3ca,0d80004690400008]", "-8", "00")
+ self.bid128_to_int64_floor("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B00293E952CDA8B9AA44111E00000001]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B00294286EACB8CB0A8CB6B140000000]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B0040ECA8847C4129106CE8300000001]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B00A0003C95A2F0B4856475FE0000001]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B00C000060EF6B1ABA6F072330000001]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-4000000000", "00")
+ self.bid128_to_int64_floor("0", "[B010C5371912364CE3056C2800000000]", "-4000000000", "00")
+ self.bid128_to_int64_floor("0", "[B010C5371912364CE3056C2800000001]", "-4000000001", "00")
+ self.bid128_to_int64_floor("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-5000000000", "00")
+ self.bid128_to_int64_floor("0", "[B010F684DF56C3E01BC6C73200000000]", "-5000000000", "00")
+ self.bid128_to_int64_floor("0", "[B010F684DF56C3E01BC6C73200000001]", "-5000000001", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C88FB62ED56E4238E400000]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C88FB62ED56E4238E400001]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C8905F96EBAD4C909800000]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C8905F96EBAD4C909800001]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C89108FF01EC56E84C00000]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C89108FF01EC56E84C00001]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C891B267182B613FFFFFFFF]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C891B267182B61400000000]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C891B267182B61400000001]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C893053744A975EF67FFFFF]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C893053744A975EF6800000]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C893053744A975EF6800001]", "-20000000002", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-20000000002", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C893AE9F5AE880471C00000]", "-20000000002", "00")
+ self.bid128_to_int64_floor("0", "[B012629B8C893AE9F5AE880471C00001]", "-20000000002", "00")
+ self.bid128_to_int64_floor("0", "[b015e792ed14b858,f4736de2399e740f]", "-988917416171", "00")
+ self.bid128_to_int64_floor("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[B018AD78EBC5AC620000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[B018AD78EBC5AC620000000000000001]", "-35184372088833", "00")
+ self.bid128_to_int64_floor("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "-35184372088833", "00")
+ self.bid128_to_int64_floor("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "-35184372088833", "00")
+ self.bid128_to_int64_floor("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "-35184372088833", "00")
+ self.bid128_to_int64_floor("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B265CB1A40684EA0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B265CB1A40684EA0001]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B2663A1FF60589C0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B2663A1FF60589C0001]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B266A925ABA2C4E0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B266A925ABA2C4E0001]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B267182B613FFFFFFFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B267182B61400000000]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B267182B61400000001]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B267873116DD3B1FFFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B267873116DD3B20000]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B267873116DD3B20001]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B267F636CC7A763FFFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B267F636CC7A7640000]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B267F636CC7A7640001]", "-2000000000000002", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B268653C8217B15FFFF]", "-2000000000000002", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B268653C8217B160000]", "-2000000000000002", "00")
+ self.bid128_to_int64_floor("0", "[B01C629B8C891B268653C8217B160001]", "-2000000000000002", "00")
+ self.bid128_to_int64_floor("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B01E000000000001A055690D9DB80001]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "-35184372088833", "00")
+ self.bid128_to_int64_floor("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "-35184372088833", "00")
+ self.bid128_to_int64_floor("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "-35184372088833", "00")
+ self.bid128_to_int64_floor("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B02000000000000029A2241AF62C0001]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[B020000470DE4DF82000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[B020000470DE4DF82000000000000001]", "-35184372088833", "00")
+ self.bid128_to_int64_floor("0", "[B02000FC6F7C4045813459C637E07FFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B02000FC6F7C4045813459C637E08000]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B02000FC6F7C4045813459C637E08001]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "-2000000000000002", "00")
+ self.bid128_to_int64_floor("0", "[B02000FC6F7C40458157E0B8A7A18000]", "-2000000000000002", "00")
+ self.bid128_to_int64_floor("0", "[B02000FC6F7C40458157E0B8A7A18001]", "-2000000000000002", "00")
+ self.bid128_to_int64_floor("0", "[B02200193E5939A08CE4879688D63FFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B02200193E5939A08CE4879688D64000]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B02200193E5939A08CE4879688D64001]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B02200193E5939A08CE815152D9CBFFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B02200193E5939A08CE815152D9CC000]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B02200193E5939A08CE815152D9CC001]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[b023b54c2ac54b42,2a0c10410042dc10]", "-8869447574031061027", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF52633FFFFFFAABC208D64000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF52633FFFFFFAABC208D64001]", "-9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF52633FFFFFFC72815B398000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF52633FFFFFFC72815B398001]", "-9223372036854775808", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775808", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF526340000000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_floor("0", "[B023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[b023e3babba2257f,00d7819973b0ce1d]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B024000000000000006A94D74F42FFFF]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B024000000000000006A94D74F430001]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B02449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B02449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B02A00000000006C6B935B68D08DA3FF]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B02A00000000006C6B935B68D08DA400]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B02A00000000006C6B935B68D08DA401]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B02A00000000006C6B935B8019048BFF]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B02A00000000006C6B935B8019048C00]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B02A00000000006C6B935B8019048C01]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B02C000000000000000002BBA7F521FF]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B02C000000000000000002BBA7F52200]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B02C000000000000000002BBA7F52201]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B02C00000000000AD78EBC5872141BFF]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B02C00000000000AD78EBC5872141C00]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B02C00000000000AD78EBC5872141C01]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B02C00000000000AD78EBC5BF025F200]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B02C00000000000AD78EBC5BF025F201]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-20000000002", "00")
+ self.bid128_to_int64_floor("0", "[B02C00000000000AD78EBC5E4431D600]", "-20000000002", "00")
+ self.bid128_to_int64_floor("0", "[B02C00000000000AD78EBC5E4431D601]", "-20000000002", "00")
+ self.bid128_to_int64_floor("0", "[B02C000000108B2A2C28028E3FF41BFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B02C000000108B2A2C28028E3FF41C00]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B02C000000108B2A2C28028E3FF41C01]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B02E000000000001158E46094F6AC9FF]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B02E000000000001158E46094F6ACA00]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B02E000000000001158E46094F6ACA01]", "-20000000002", "00")
+ self.bid128_to_int64_floor("0", "[B02E00000001A784379D99DB7D9AC9FF]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B02E00000001A784379D99DB7D9ACA00]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B02E00000001A784379D99DB7D9ACA01]", "-2000000000000002", "00")
+ self.bid128_to_int64_floor("0", "[B03000000000000000000006FC23ABFF]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B03000000000000000000006FC23AC01]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03200000000000000000000B2D05DFF]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B03200000000000000000000B2D05E01]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03800000000000000000000002DDA47]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03800000000000000000000002DDA48]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03800000000000000000000002DDA49]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03A00000000000000000000000003E7]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[B03A00000000000000000000000495D3]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03A00000000000000000000000495D4]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03A00000000000000000000000495D5]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03C0000000000000000000000007561]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03C0000000000000000000000007562]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03C0000000000000000000000007563]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03E0000000000000000000000000005]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[B03E000000000000000000000000000F]", "-2", "00")
+ self.bid128_to_int64_floor("0", "[B03E0000000000000000000000000BB7]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B03E0000000000000000000000000BB9]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03E0000000000000000000000000BBD]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B03E0000000000000000002E90EDCFF1]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B03E0000000000000000002E90EDCFFB]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B03E0000000000000000002E90EDD005]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B03E0000000000000000002E90EDD00F]", "-20000000002", "00")
+ self.bid128_to_int64_floor("0", "[B03E0000000000000001400000000005]", "-35184372088833", "00")
+ self.bid128_to_int64_floor("0", "[B03E00000000000000470DE4DF81FFF1]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B03E00000000000000470DE4DF81FFFB]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B03E00000000000000470DE4DF820005]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B03E00000000000000470DE4DF82000F]", "-2000000000000002", "00")
+ self.bid128_to_int64_floor("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "-9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "00")
+ self.bid128_to_int64_floor("0", "[B03E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B03E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B03E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int64_floor("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int64_floor("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int64_floor("0", "[B04000000000000000000004A817C7FF]", "-19999999999", "00")
+ self.bid128_to_int64_floor("0", "[B04000000000000000000004A817C801]", "-20000000001", "00")
+ self.bid128_to_int64_floor("0", "[B0400000000000000000200000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_floor("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_floor("0", "[B04000000000000000071AFD498D0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_floor("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_floor("0", "[B0400000000000008000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_floor("0", "[B0400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int64_floor("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int64_floor("0", "[B04200000000000000000000773593FF]", "-19999999990", "00")
+ self.bid128_to_int64_floor("0", "[B0420000000000000000000077359400]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B0420000000000000000000077359401]", "-20000000010", "00")
+ self.bid128_to_int64_floor("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int64_floor("0", "[B0520000000000000000000000000004]", "-4000000000", "00")
+ self.bid128_to_int64_floor("0", "[B0520000000000000000000000000005]", "-5000000000", "00")
+ self.bid128_to_int64_floor("0", "[B0540000000000000000000000000002]", "-20000000000", "00")
+ self.bid128_to_int64_floor("0", "[B05E0000000000000000000000000002]", "-2000000000000000", "00")
+ self.bid128_to_int64_floor("0", "[B064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[B0680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[cf6a234572acfddf,60e6cecb3bc03259]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[d3ce237ccd4ba18c,58b7811bb7b5db0e]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[d51c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_floor("0", "[d9430a17fe1c9bde,f1725e5a5b636742]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[de0c2e5b9aa9a10f,f139c18087a5a22d]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[f800000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[fac96549d4ec7a0d,8c57479fbe2d5f69]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "[ffcddb0ecf7d7e69,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_floor("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_int64_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int64_int() {
+ self.bid128_to_int64_int("0", "-0", "0", "00")
+ self.bid128_to_int64_int("0", "0", "0", "00")
+ self.bid128_to_int64_int("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_int("0", "[0000000000000000,0002000042000010]", "0", "00")
+ self.bid128_to_int64_int("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int64_int("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int64_int("0", "[00badc457922ec8f,0ba9baf2b3e98b9b]", "0", "00")
+ self.bid128_to_int64_int("0", "[031e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_int("0", "[124ad21e0b132e7e,ff3dfd572f7ebff7]", "0", "00")
+ self.bid128_to_int64_int("0", "[12b9e1bd495a0b54,7757630190dcd940]", "0", "00")
+ self.bid128_to_int64_int("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_int("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int64_int("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_int64_int("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_int64_int("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int64_int("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_int64_int("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_int("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int64_int("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_int64_int("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_int64_int("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_int64_int("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "00")
+ self.bid128_to_int64_int("0", "[3000204010002010,d77cffffff7bfb77]", "6", "00")
+ self.bid128_to_int64_int("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "00")
+ self.bid128_to_int64_int("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int64_int("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_int64_int("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_int64_int("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_int64_int("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "00")
+ self.bid128_to_int64_int("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "00")
+ self.bid128_to_int64_int("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int64_int("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_int64_int("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "00")
+ self.bid128_to_int64_int("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int64_int("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_int64_int("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "00")
+ self.bid128_to_int64_int("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int64_int("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_int64_int("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "00")
+ self.bid128_to_int64_int("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_int64_int("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_int64_int("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "4999999999", "00")
+ self.bid128_to_int64_int("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_int64_int("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999998", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999998", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C89108FF01EC56E84C00000]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C89108FF01EC56E84C00001]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C891B267182B613FFFFFFFF]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C891B267182B61400000001]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088831", "00")
+ self.bid128_to_int64_int("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_int64_int("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_int64_int("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B266A925ABA2C4E0000]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B266A925ABA2C4E0001]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B267182B613FFFFFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B268653C8217B160000]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[301C629B8C891B268653C8217B160001]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[301E000000000001A055690D9DB7FFFF]", "299", "00")
+ self.bid128_to_int64_int("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int64_int("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_int64_int("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[302000000000000029A2241AF62BFFFF]", "299", "00")
+ self.bid128_to_int64_int("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int64_int("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_int64_int("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088831", "00")
+ self.bid128_to_int64_int("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[302200193E5939A08CE4879688D64001]", "1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[302200193E5939A08CE815152D9CC000]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[302200193E5939A08CE815152D9CC001]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[30224a0c1253c042,e6e76e8767d72953]", "1501854720599343083", "00")
+ self.bid128_to_int64_int("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "00")
+ self.bid128_to_int64_int("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "00")
+ self.bid128_to_int64_int("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775806", "00")
+ self.bid128_to_int64_int("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775806", "00")
+ self.bid128_to_int64_int("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[3023C6BF526340000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3023e40015023441,d003804304201410]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3024000000000000006A94D74F42FFFF]", "299", "00")
+ self.bid128_to_int64_int("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int64_int("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_int64_int("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[302449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[302449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[302449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "00")
+ self.bid128_to_int64_int("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "00")
+ self.bid128_to_int64_int("0", "[302A00000000006C6B935B68D08DA401]", "19999999998", "00")
+ self.bid128_to_int64_int("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[302A00000000006C6B935B8019048C00]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[302A00000000006C6B935B8019048C01]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_int64_int("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_int64_int("0", "[302C000000000000000002BBA7F52201]", "300", "00")
+ self.bid128_to_int64_int("0", "[302C00000000000AD78EBC5872141BFF]", "19999999998", "00")
+ self.bid128_to_int64_int("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[302C00000000000AD78EBC5BF025F201]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[302C00000000000AD78EBC5E4431D600]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[302C00000000000AD78EBC5E4431D601]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[302E000000000001158E46094F6AC9FF]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[303000000000000000000006FC23ABFF]", "299", "00")
+ self.bid128_to_int64_int("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int64_int("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_int64_int("0", "[303200000000000000000000B2D05DFF]", "299", "00")
+ self.bid128_to_int64_int("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int64_int("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_int64_int("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_int64_int("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_int64_int("0", "[303800000000000000000000002DDA49]", "300", "00")
+ self.bid128_to_int64_int("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int64_int("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_int64_int("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_int64_int("0", "[303A00000000000000000000000495D5]", "300", "00")
+ self.bid128_to_int64_int("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_int64_int("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_int64_int("0", "[303C0000000000000000000000007563]", "300", "00")
+ self.bid128_to_int64_int("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int64_int("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_int64_int("0", "[303E0000000000000000000000000BB7]", "299", "00")
+ self.bid128_to_int64_int("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int64_int("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_int64_int("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_int64_int("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "00")
+ self.bid128_to_int64_int("0", "[303E0000000000000000002E90EDCFFB]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[303E0000000000000000002E90EDD005]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[303E0000000000000000002E90EDD00F]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[303E0000000000000001400000000005]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[303E00000000000000470DE4DF81FFFB]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[303E00000000000000470DE4DF82000F]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "00")
+ self.bid128_to_int64_int("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[303E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[303E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[303E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int64_int("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int64_int("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int64_int("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int64_int("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_int64_int("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_int64_int("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_int64_int("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[3040000000000000,799fd7edfff2b8fe]", "8763960817087592702", "00")
+ self.bid128_to_int64_int("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[30400000000000008000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int64_int("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int64_int("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int64_int("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int64_int("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_int64_int("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_int64_int("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int64_int("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_int64_int("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_int64_int("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_int64_int("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[3064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[30680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[3316093020b04031,a23d22b93a8bfc8e]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[369668c685ffafa5,710ea42d636d3adc]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[4000000000000000,b3c02053e084c426]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[4b2b6121bc44f7bb,8f98b49503b97152]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[58ad74d659492874,e67898635c82326e]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[7800000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[78000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[7bffdff4efff7933,8d6159cb6dcdd5a9]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[7c000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[7c003fffffffffff38c15b08ffffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[7c003fffffffffff38c15b0affffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[7e000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[83c6000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_int("0", "[85d6b76e808146d5,76c6b11942e89daa]", "0", "00")
+ self.bid128_to_int64_int("0", "[8616000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_int("0", "[8c4a5f7dc69db282,de9ab1c630feccde]", "0", "00")
+ self.bid128_to_int64_int("0", "[9c52416e9b44e544,255177fac6a40457]", "0", "00")
+ self.bid128_to_int64_int("0", "[a90f3da616dbe657,3715e70d172dc972]", "0", "00")
+ self.bid128_to_int64_int("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_int("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int64_int("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_int64_int("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_int64_int("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int64_int("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_int64_int("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_int("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int64_int("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "00")
+ self.bid128_to_int64_int("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "00")
+ self.bid128_to_int64_int("0", "[AFFE49F4A966D45CD522088F00000000]", "-1", "00")
+ self.bid128_to_int64_int("0", "[AFFE49F4A966D45CD522088F00000001]", "-1", "00")
+ self.bid128_to_int64_int("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-299", "00")
+ self.bid128_to_int64_int("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B00294286EACB8CB0A8CB6B140000001]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-299", "00")
+ self.bid128_to_int64_int("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "00")
+ self.bid128_to_int64_int("0", "[b006492490129a20,08d87f606705af22]", "-14835", "00")
+ self.bid128_to_int64_int("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-299", "00")
+ self.bid128_to_int64_int("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-299", "00")
+ self.bid128_to_int64_int("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-3999999999", "00")
+ self.bid128_to_int64_int("0", "[B010C5371912364CE3056C2800000000]", "-4000000000", "00")
+ self.bid128_to_int64_int("0", "[B010C5371912364CE3056C2800000001]", "-4000000000", "00")
+ self.bid128_to_int64_int("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-4999999999", "00")
+ self.bid128_to_int64_int("0", "[B010F684DF56C3E01BC6C73200000000]", "-5000000000", "00")
+ self.bid128_to_int64_int("0", "[B010F684DF56C3E01BC6C73200000001]", "-5000000000", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-19999999998", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C88FB62ED56E4238E400000]", "-19999999998", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C88FB62ED56E4238E400001]", "-19999999998", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-19999999998", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C8905F96EBAD4C909800000]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C8905F96EBAD4C909800001]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C89108FF01EC56E84C00000]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C89108FF01EC56E84C00001]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C891B267182B613FFFFFFFF]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C891B267182B61400000000]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C891B267182B61400000001]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C893053744A975EF67FFFFF]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C893053744A975EF6800000]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C893053744A975EF6800001]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C893AE9F5AE880471C00000]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B012629B8C893AE9F5AE880471C00001]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "-35184372088831", "00")
+ self.bid128_to_int64_int("0", "[B018AD78EBC5AC620000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B018AD78EBC5AC620000000000000001]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-300", "00")
+ self.bid128_to_int64_int("0", "[b01b062554b97238,f3b937e6e10a4076]", "-531694897910126", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B265CB1A40684EA0000]", "-1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B265CB1A40684EA0001]", "-1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B2663A1FF60589C0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B2663A1FF60589C0001]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B266A925ABA2C4E0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B266A925ABA2C4E0001]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B267182B613FFFFFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B267182B61400000000]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B267182B61400000001]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B267873116DD3B1FFFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B267873116DD3B20000]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B267873116DD3B20001]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B267F636CC7A763FFFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B267F636CC7A7640000]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B267F636CC7A7640001]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B268653C8217B15FFFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B268653C8217B160000]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B01C629B8C891B268653C8217B160001]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B01E000000000001A055690D9DB7FFFF]", "-299", "00")
+ self.bid128_to_int64_int("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B01E000000000001A055690D9DB80001]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B02000000000000029A2241AF62BFFFF]", "-299", "00")
+ self.bid128_to_int64_int("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B02000000000000029A2241AF62C0001]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "-35184372088831", "00")
+ self.bid128_to_int64_int("0", "[B020000470DE4DF82000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B020000470DE4DF82000000000000001]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B02000FC6F7C4045813459C637E07FFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B02000FC6F7C4045813459C637E08000]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B02000FC6F7C4045813459C637E08001]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B02000FC6F7C40458157E0B8A7A18000]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B02000FC6F7C40458157E0B8A7A18001]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B02200193E5939A08CE4879688D63FFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[B02200193E5939A08CE4879688D64000]", "-1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[B02200193E5939A08CE4879688D64001]", "-1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[B02200193E5939A08CE815152D9CBFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B02200193E5939A08CE815152D9CC000]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B02200193E5939A08CE815152D9CC001]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[b022e5d47ee1683b,e42cb2f98ef763cc]", "-4661507437301034383", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "-9223372036854775806", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF52633FFFFFFAABC208D64000]", "-9223372036854775806", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF52633FFFFFFAABC208D64001]", "-9223372036854775806", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "-9223372036854775806", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF52633FFFFFFC72815B398000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF52633FFFFFFC72815B398001]", "-9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF526340000000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF526340000000000000000001]", "-9223372036854775808", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF526340000001C6BF52634000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF526340000001C6BF52634001]", "-9223372036854775808", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "00")
+ self.bid128_to_int64_int("0", "[B023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[b023d46d1bd3ed40,410f994fca1856e7]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B024000000000000006A94D74F42FFFF]", "-299", "00")
+ self.bid128_to_int64_int("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B024000000000000006A94D74F430001]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B02449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B02449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B02A00000000006C6B935B68D08DA3FF]", "-19999999998", "00")
+ self.bid128_to_int64_int("0", "[B02A00000000006C6B935B68D08DA400]", "-19999999998", "00")
+ self.bid128_to_int64_int("0", "[B02A00000000006C6B935B68D08DA401]", "-19999999998", "00")
+ self.bid128_to_int64_int("0", "[B02A00000000006C6B935B8019048BFF]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B02A00000000006C6B935B8019048C00]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B02A00000000006C6B935B8019048C01]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B02C000000000000000002BBA7F521FF]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B02C000000000000000002BBA7F52200]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B02C000000000000000002BBA7F52201]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B02C00000000000AD78EBC5872141BFF]", "-19999999998", "00")
+ self.bid128_to_int64_int("0", "[B02C00000000000AD78EBC5872141C00]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B02C00000000000AD78EBC5872141C01]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B02C00000000000AD78EBC5BF025F200]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B02C00000000000AD78EBC5BF025F201]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B02C00000000000AD78EBC5E4431D600]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B02C00000000000AD78EBC5E4431D601]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B02C000000108B2A2C28028E3FF41BFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[B02C000000108B2A2C28028E3FF41C00]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B02C000000108B2A2C28028E3FF41C01]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B02E000000000001158E46094F6AC9FF]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B02E000000000001158E46094F6ACA00]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B02E000000000001158E46094F6ACA01]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B02E00000001A784379D99DB7D9AC9FF]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B02E00000001A784379D99DB7D9ACA00]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B02E00000001A784379D99DB7D9ACA01]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B03000000000000000000006FC23ABFF]", "-299", "00")
+ self.bid128_to_int64_int("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03000000000000000000006FC23AC01]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03200000000000000000000B2D05DFF]", "-299", "00")
+ self.bid128_to_int64_int("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03200000000000000000000B2D05E01]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03800000000000000000000002DDA47]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03800000000000000000000002DDA48]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03800000000000000000000002DDA49]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int64_int("0", "[B03A00000000000000000000000495D3]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03A00000000000000000000000495D4]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03A00000000000000000000000495D5]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03C0000000000000000000000007561]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03C0000000000000000000000007562]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03C0000000000000000000000007563]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int64_int("0", "[B03E000000000000000000000000000F]", "-1", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000000000000000000BB7]", "-299", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000000000000000000BB9]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000000000000000000BBD]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000000000002E90EDCFF1]", "-19999999998", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000000000002E90EDCFFB]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000000000002E90EDD005]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000000000002E90EDD00F]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000000001400000000005]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B03E00000000000000470DE4DF81FFF1]", "-1999999999999998", "00")
+ self.bid128_to_int64_int("0", "[B03E00000000000000470DE4DF81FFFB]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B03E00000000000000470DE4DF820005]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B03E00000000000000470DE4DF82000F]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "-9223372036854775806", "00")
+ self.bid128_to_int64_int("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000050000000000000005]", "-9223372036854775808", "00")
+ self.bid128_to_int64_int("0", "[B03E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B03E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int64_int("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int64_int("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int64_int("0", "[B04000000000000000000004A817C7FF]", "-19999999999", "00")
+ self.bid128_to_int64_int("0", "[B04000000000000000000004A817C801]", "-20000000001", "00")
+ self.bid128_to_int64_int("0", "[B0400000000000000000200000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_int("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_int("0", "[B04000000000000000071AFD498D0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_int("0", "[b040000000000000,310f6850b95b60ac]", "-3535158928425574572", "00")
+ self.bid128_to_int64_int("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_int("0", "[B0400000000000008000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_int("0", "[B0400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int64_int("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int64_int("0", "[B04200000000000000000000773593FF]", "-19999999990", "00")
+ self.bid128_to_int64_int("0", "[B0420000000000000000000077359400]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B0420000000000000000000077359401]", "-20000000010", "00")
+ self.bid128_to_int64_int("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int64_int("0", "[B0520000000000000000000000000004]", "-4000000000", "00")
+ self.bid128_to_int64_int("0", "[B0520000000000000000000000000005]", "-5000000000", "00")
+ self.bid128_to_int64_int("0", "[B0540000000000000000000000000002]", "-20000000000", "00")
+ self.bid128_to_int64_int("0", "[B05E0000000000000000000000000002]", "-2000000000000000", "00")
+ self.bid128_to_int64_int("0", "[B064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[B0680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[b2f8000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_int("0", "[bac0cbb9ff19d795,f6919cc8c655551c]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[bb9e02aa5ae2f9cf,93cac171b18e6083]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[c557d31f7e390d76,22de6fc7de996384]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[c913e39a9cfe8b37,474d8d10523108a4]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[d5ee398e68c72353,fd1e440f2f0be2a5]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[f7ff7bfdf7bffdfd,844085c00851a882]", "0", "00")
+ self.bid128_to_int64_int("0", "[f800000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[f8c99000a1c68280,e801225cfb931382]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[fdfdfff7eab2ffeb,30221a26041bd94c]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "[fffffffffffffffd,feffdffffe7f9f3f]", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_int("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_int64_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int64_rnint() {
+ self.bid128_to_int64_rnint("0", "-0", "0", "00")
+ self.bid128_to_int64_rnint("0", "0", "0", "00")
+ self.bid128_to_int64_rnint("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[0400000000000000,3afbdf757637fd75]", "0", "00")
+ self.bid128_to_int64_rnint("0", "0.5", "0", "00")
+ self.bid128_to_int64_rnint("0", "[0671104ab504d126,88fca30a35062742]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[0800000000000000,0000000010001800]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_int64_rnint("0", "[2ffcfdfa6894ddef,4ac820bf6e100b68]", "1", "00")
+ self.bid128_to_int64_rnint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_int64_rnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int64_rnint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_int64_rnint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_int64_rnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int64_rnint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_int64_rnint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_int64_rnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int64_rnint("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_int64_rnint("0", "[3000009000000240,0020010000000000]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[3000200000800000,fcf79dfdedffb9fd]", "6", "00")
+ self.bid128_to_int64_rnint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_int64_rnint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C891B267182B61400000001]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "00")
+ self.bid128_to_int64_rnint("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "00")
+ self.bid128_to_int64_rnint("0", "[3016045834312040,d33fe76f5ffbdcdf]", "88117869326", "00")
+ self.bid128_to_int64_rnint("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "00")
+ self.bid128_to_int64_rnint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "00")
+ self.bid128_to_int64_rnint("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "00")
+ self.bid128_to_int64_rnint("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "00")
+ self.bid128_to_int64_rnint("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "00")
+ self.bid128_to_int64_rnint("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "00")
+ self.bid128_to_int64_rnint("0", "[30203094024c2800,e001a044020a00a2]", "98528214006468404", "00")
+ self.bid128_to_int64_rnint("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "00")
+ self.bid128_to_int64_rnint("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "00")
+ self.bid128_to_int64_rnint("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[30238c3652a32db1,37cc05298519897d]", "8036138098863321296", "00")
+ self.bid128_to_int64_rnint("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "00")
+ self.bid128_to_int64_rnint("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "00")
+ self.bid128_to_int64_rnint("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3023C6BF526340000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3023d6a9330e0ee6,ffffdffffeffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[302449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[302449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[302449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "00")
+ self.bid128_to_int64_rnint("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "00")
+ self.bid128_to_int64_rnint("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_int64_rnint("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "00")
+ self.bid128_to_int64_rnint("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "00")
+ self.bid128_to_int64_rnint("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_int64_rnint("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int64_rnint("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_int64_rnint("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_int64_rnint("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int64_rnint("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "00")
+ self.bid128_to_int64_rnint("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[303E0000000000000000002E90EDD005]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "00")
+ self.bid128_to_int64_rnint("0", "[303E0000000000000001400000000005]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "00")
+ self.bid128_to_int64_rnint("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "00")
+ self.bid128_to_int64_rnint("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "00")
+ self.bid128_to_int64_rnint("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[303E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[303E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[303E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int64_rnint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int64_rnint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int64_rnint("0", "[3040000000000000,0000000301002000]", "12901687296", "00")
+ self.bid128_to_int64_rnint("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[30400000000000008000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3040000000000000,8000c00200000400]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int64_rnint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int64_rnint("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_int64_rnint("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_int64_rnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int64_rnint("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_int64_rnint("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_int64_rnint("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[3064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[30680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[36b0c7b00d24f049,4ddc84f22c6b4570]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[438f05162c6d6d4c,6bf427ae950bce88]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[43ebb89d88797a9d,62cb7c75ab88bae1]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[49173fd9fb37ed11,1637144320ec2a77]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[500329262f4cd9f7,39f1cc85e630d2a2]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "5.5", "6", "00")
+ self.bid128_to_int64_rnint("0", "[56f943d1681e5010,81edac7a982c7dfc]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[5913566d53157b9d,d918e032cc45f239]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[7800000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[78000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[7bdffbefddb3fb7f,bffe37ff5eddc89b]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[7c000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[7c003fffffffffff38c15b08ffffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[7c003fffffffffff38c15b0affffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[7dff4dfb65effdde,a000800040200280]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[7e000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[8040050008112080,ffff7effffff77ff]", "0", "00")
+ self.bid128_to_int64_rnint("0", "+889.988999988999998E0", "890", "00")
+ self.bid128_to_int64_rnint("0", "[918aabf124f3341d,7b8d0a6f0811905c]", "0", "00")
+ self.bid128_to_int64_rnint("0", "-9", "-9", "00")
+ self.bid128_to_int64_rnint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "00")
+ self.bid128_to_int64_rnint("0", "[affda6a3fd7cce7e,09120383ad0c10a3]", "-1", "00")
+ self.bid128_to_int64_rnint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "00")
+ self.bid128_to_int64_rnint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "00")
+ self.bid128_to_int64_rnint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "00")
+ self.bid128_to_int64_rnint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "00")
+ self.bid128_to_int64_rnint("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int64_rnint("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "00")
+ self.bid128_to_int64_rnint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "00")
+ self.bid128_to_int64_rnint("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "00")
+ self.bid128_to_int64_rnint("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "00")
+ self.bid128_to_int64_rnint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "00")
+ self.bid128_to_int64_rnint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-4000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B010C5371912364CE3056C2800000000]", "-4000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B010C5371912364CE3056C2800000001]", "-4000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-5000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B010F684DF56C3E01BC6C73200000000]", "-5000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B010F684DF56C3E01BC6C73200000001]", "-5000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-19999999998", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C88FB62ED56E4238E400000]", "-19999999998", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C88FB62ED56E4238E400001]", "-19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C8905F96EBAD4C909800000]", "-19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C8905F96EBAD4C909800001]", "-19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C89108FF01EC56E84C00000]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C89108FF01EC56E84C00001]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C891B267182B613FFFFFFFF]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C891B267182B61400000000]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C891B267182B61400000001]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C893053744A975EF67FFFFF]", "-20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C893053744A975EF6800000]", "-20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C893053744A975EF6800001]", "-20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C893AE9F5AE880471C00000]", "-20000000002", "00")
+ self.bid128_to_int64_rnint("0", "[B012629B8C893AE9F5AE880471C00001]", "-20000000002", "00")
+ self.bid128_to_int64_rnint("0", "[b013836206c179d4,7f3be86fff7d5fee]", "-78570589673", "00")
+ self.bid128_to_int64_rnint("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B018AD78EBC5AC620000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B018AD78EBC5AC620000000000000001]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "-35184372088833", "00")
+ self.bid128_to_int64_rnint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B265CB1A40684EA0000]", "-1999999999999998", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B265CB1A40684EA0001]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B2663A1FF60589C0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B2663A1FF60589C0001]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B266A925ABA2C4E0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B266A925ABA2C4E0001]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B267182B613FFFFFFFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B267182B61400000000]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B267182B61400000001]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B267873116DD3B1FFFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B267873116DD3B20000]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B267873116DD3B20001]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B267F636CC7A763FFFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B267F636CC7A7640000]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B267F636CC7A7640001]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B268653C8217B15FFFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B268653C8217B160000]", "-2000000000000002", "00")
+ self.bid128_to_int64_rnint("0", "[B01C629B8C891B268653C8217B160001]", "-2000000000000002", "00")
+ self.bid128_to_int64_rnint("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B01E000000000001A055690D9DB80001]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "-35184372088833", "00")
+ self.bid128_to_int64_rnint("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B02000000000000029A2241AF62C0001]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B020000470DE4DF82000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B020000470DE4DF82000000000000001]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B02000FC6F7C4045813459C637E07FFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B02000FC6F7C4045813459C637E08000]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B02000FC6F7C4045813459C637E08001]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B02000FC6F7C40458157E0B8A7A18000]", "-2000000000000002", "00")
+ self.bid128_to_int64_rnint("0", "[B02000FC6F7C40458157E0B8A7A18001]", "-2000000000000002", "00")
+ self.bid128_to_int64_rnint("0", "[B02200193E5939A08CE4879688D63FFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_rnint("0", "[B02200193E5939A08CE4879688D64000]", "-1999999999999998", "00")
+ self.bid128_to_int64_rnint("0", "[B02200193E5939A08CE4879688D64001]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B02200193E5939A08CE815152D9CBFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B02200193E5939A08CE815152D9CC000]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B02200193E5939A08CE815152D9CC001]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "-9223372036854775806", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF52633FFFFFFAABC208D64000]", "-9223372036854775806", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF52633FFFFFFAABC208D64001]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF52633FFFFFFC72815B398000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF52633FFFFFFC72815B398001]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF526340000000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF526340000000000000000001]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF526340000001C6BF52634000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rnint("0", "[B023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B024000000000000006A94D74F42FFFF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B024000000000000006A94D74F430001]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[b024314310050168,7dfe7deaf79d7fef]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B02449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B02449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B02A00000000006C6B935B68D08DA3FF]", "-19999999998", "00")
+ self.bid128_to_int64_rnint("0", "[B02A00000000006C6B935B68D08DA400]", "-19999999998", "00")
+ self.bid128_to_int64_rnint("0", "[B02A00000000006C6B935B68D08DA401]", "-19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B02A00000000006C6B935B8019048BFF]", "-19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B02A00000000006C6B935B8019048C00]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B02A00000000006C6B935B8019048C01]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B02C000000000000000002BBA7F521FF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B02C000000000000000002BBA7F52200]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B02C000000000000000002BBA7F52201]", "-301", "00")
+ self.bid128_to_int64_rnint("0", "[B02C00000000000AD78EBC5872141BFF]", "-19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B02C00000000000AD78EBC5872141C00]", "-19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B02C00000000000AD78EBC5872141C01]", "-19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B02C00000000000AD78EBC5BF025F200]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B02C00000000000AD78EBC5BF025F201]", "-20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B02C00000000000AD78EBC5E4431D600]", "-20000000002", "00")
+ self.bid128_to_int64_rnint("0", "[B02C00000000000AD78EBC5E4431D601]", "-20000000002", "00")
+ self.bid128_to_int64_rnint("0", "[B02C000000108B2A2C28028E3FF41BFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B02C000000108B2A2C28028E3FF41C00]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B02C000000108B2A2C28028E3FF41C01]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B02E000000000001158E46094F6AC9FF]", "-20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B02E000000000001158E46094F6ACA00]", "-20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B02E000000000001158E46094F6ACA01]", "-20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B02E00000001A784379D99DB7D9AC9FF]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B02E00000001A784379D99DB7D9ACA00]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B02E00000001A784379D99DB7D9ACA01]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B03000000000000000000006FC23ABFF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03000000000000000000006FC23AC01]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03200000000000000000000B2D05DFF]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03200000000000000000000B2D05E01]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03800000000000000000000002DDA47]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03800000000000000000000002DDA48]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03800000000000000000000002DDA49]", "-301", "00")
+ self.bid128_to_int64_rnint("0", "[B03A00000000000000000000000003E7]", "-1", "00")
+ self.bid128_to_int64_rnint("0", "[B03A00000000000000000000000495D3]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03A00000000000000000000000495D4]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03A00000000000000000000000495D5]", "-301", "00")
+ self.bid128_to_int64_rnint("0", "[B03C0000000000000000000000007561]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03C0000000000000000000000007562]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03C0000000000000000000000007563]", "-301", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[B03E000000000000000000000000000F]", "-2", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000000000000000000BB7]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000000000000000000BB9]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000000000000000000BBD]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000000000002E90EDCFF1]", "-19999999998", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000000000002E90EDCFFB]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000000000002E90EDD005]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000000000002E90EDD00F]", "-20000000002", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000000001400000000005]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B03E00000000000000470DE4DF81FFF1]", "-1999999999999998", "00")
+ self.bid128_to_int64_rnint("0", "[B03E00000000000000470DE4DF81FFFB]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B03E00000000000000470DE4DF820005]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B03E00000000000000470DE4DF82000F]", "-2000000000000002", "00")
+ self.bid128_to_int64_rnint("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "-9223372036854775806", "00")
+ self.bid128_to_int64_rnint("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000050000000000000005]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rnint("0", "[B03E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B03E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int64_rnint("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int64_rnint("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int64_rnint("0", "[B04000000000000000000004A817C7FF]", "-19999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B04000000000000000000004A817C801]", "-20000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B0400000000000000000200000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_rnint("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rnint("0", "[B04000000000000000071AFD498D0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_rnint("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rnint("0", "[B0400000000000008000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rnint("0", "[B0400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int64_rnint("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int64_rnint("0", "[B04200000000000000000000773593FF]", "-19999999990", "00")
+ self.bid128_to_int64_rnint("0", "[B0420000000000000000000077359400]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B0420000000000000000000077359401]", "-20000000010", "00")
+ self.bid128_to_int64_rnint("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int64_rnint("0", "[B0520000000000000000000000000004]", "-4000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B0520000000000000000000000000005]", "-5000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B0540000000000000000000000000002]", "-20000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B05E0000000000000000000000000002]", "-2000000000000000", "00")
+ self.bid128_to_int64_rnint("0", "[B064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[B0680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[c74ccd978165f2c2,7777b28ece449d3e]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[cfa2322b95767fe5,a170edfcafc7f7e2]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[ef30869f086e838e,7616a72b8e385908]", "0", "00")
+ self.bid128_to_int64_rnint("0", "[fbffff7eefff7fde,01284080e4621016]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "[ffffff6ffffffdff,8b82e784551402b7]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_rnint("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_int64_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int64_rninta() {
+ self.bid128_to_int64_rninta("0", "-0", "0", "00")
+ self.bid128_to_int64_rninta("0", "0", "0", "00")
+ self.bid128_to_int64_rninta("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[0000000000000000,0000146802882012]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[0000000000000000,bffffffffbfe7fff]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[0000000040010000,da2608680574088c]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int64_rninta("0", "0.1", "0", "00")
+ self.bid128_to_int64_rninta("0", "0.5", "1", "00")
+ self.bid128_to_int64_rninta("0", "1152921504606846976", "1152921504606846976", "00")
+ self.bid128_to_int64_rninta("0", "[1902280820000864,5100784068310120]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int64_rninta("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_int64_rninta("0", "[3000040a80945046,0400d18400d00000]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[3002001002000004,dd07f11639f7596b]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C891B267182B61400000001]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "00")
+ self.bid128_to_int64_rninta("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "00")
+ self.bid128_to_int64_rninta("0", "[30162020004ea902,db716b8df7bef3f6]", "651572503612", "00")
+ self.bid128_to_int64_rninta("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088833", "00")
+ self.bid128_to_int64_rninta("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "00")
+ self.bid128_to_int64_rninta("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "00")
+ self.bid128_to_int64_rninta("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "00")
+ self.bid128_to_int64_rninta("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088833", "00")
+ self.bid128_to_int64_rninta("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "00")
+ self.bid128_to_int64_rninta("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "00")
+ self.bid128_to_int64_rninta("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "00")
+ self.bid128_to_int64_rninta("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "00")
+ self.bid128_to_int64_rninta("0", "[302200193E5939A08CE4879688D64000]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3023818c995a18c0,0800000000000400]", "7819867100284595699", "00")
+ self.bid128_to_int64_rninta("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "00")
+ self.bid128_to_int64_rninta("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3023C6BF526340000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[30242e6403d866e2,9415341a986ea96b]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[302449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[302449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[302449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "00")
+ self.bid128_to_int64_rninta("0", "[302A00000000006C6B935B68D08DA400]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[302C000000000000000002BBA7F52200]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[302C00000000000AD78EBC5BF025F200]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "00")
+ self.bid128_to_int64_rninta("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "00")
+ self.bid128_to_int64_rninta("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303800000000000000000000002DDA48]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303A00000000000000000000000495D4]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303C0000000000000000000000007562]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int64_rninta("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[303E0000000000000000002E90EDCFF1]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[303E0000000000000000002E90EDD005]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "00")
+ self.bid128_to_int64_rninta("0", "[303E0000000000000001400000000005]", "35184372088833", "00")
+ self.bid128_to_int64_rninta("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[303E00000000000000470DE4DF820005]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "00")
+ self.bid128_to_int64_rninta("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[303E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[303E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[303E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int64_rninta("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int64_rninta("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int64_rninta("0", "[3040000000000000,0000000200000000]", "8589934592", "00")
+ self.bid128_to_int64_rninta("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[30400000000000008000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int64_rninta("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int64_rninta("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_int64_rninta("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_int64_rninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int64_rninta("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_int64_rninta("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_int64_rninta("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[3064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[30680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[3b3973298eaf846a,91a7e6ba2090264a]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[4585216f0958d510,80c804232410b8c0]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[50059cf74c04f626,2215f71ae83e5868]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[55e732345ce43363,e9d6daa3869460aa]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[78000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[7b89080098369ed0,693fbef9ff36bbff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[7c000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[7c003fffffffffff38c15b08ffffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[7c003fffffffffff38c15b0affffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[7d0e712b68b25e1b,8933e228b54b2e08]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[7e000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[7e3eb56bebfdfffd,5799842a17181b47]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "-9", "-9", "00")
+ self.bid128_to_int64_rninta("0", "[af248e8bc039c941,7c99950ac6726ed8]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[AFFCF684DF56C3E01BC6C73200000000]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[affd7e2fe5dd75ff,efbeef1f4c7e6bb7]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "00")
+ self.bid128_to_int64_rninta("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "00")
+ self.bid128_to_int64_rninta("0", "[b0001a0c205ca026,e65cd8d7119849ff]", "-5", "00")
+ self.bid128_to_int64_rninta("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B00294286EACB8CB0A8CB6B140000000]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-4000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B010C5371912364CE3056C2800000000]", "-4000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B010C5371912364CE3056C2800000001]", "-4000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-5000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B010F684DF56C3E01BC6C73200000000]", "-5000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B010F684DF56C3E01BC6C73200000001]", "-5000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-19999999998", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C88FB62ED56E4238E400000]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C88FB62ED56E4238E400001]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C8905F96EBAD4C909800000]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C8905F96EBAD4C909800001]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C89108FF01EC56E84C00000]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C89108FF01EC56E84C00001]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C891B267182B613FFFFFFFF]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C891B267182B61400000000]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C891B267182B61400000001]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C893053744A975EF67FFFFF]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C893053744A975EF6800000]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C893053744A975EF6800001]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C893AE9F5AE880471C00000]", "-20000000002", "00")
+ self.bid128_to_int64_rninta("0", "[B012629B8C893AE9F5AE880471C00001]", "-20000000002", "00")
+ self.bid128_to_int64_rninta("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[B018AD78EBC5AC620000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[B018AD78EBC5AC620000000000000001]", "-35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "-35184372088833", "00")
+ self.bid128_to_int64_rninta("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "-35184372088833", "00")
+ self.bid128_to_int64_rninta("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B265CB1A40684EA0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B265CB1A40684EA0001]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B2663A1FF60589C0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B2663A1FF60589C0001]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B266A925ABA2C4E0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B266A925ABA2C4E0001]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B267182B613FFFFFFFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B267182B61400000000]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B267182B61400000001]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B267873116DD3B1FFFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B267873116DD3B20000]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B267873116DD3B20001]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B267F636CC7A763FFFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B267F636CC7A7640000]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B267F636CC7A7640001]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B268653C8217B15FFFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B268653C8217B160000]", "-2000000000000002", "00")
+ self.bid128_to_int64_rninta("0", "[B01C629B8C891B268653C8217B160001]", "-2000000000000002", "00")
+ self.bid128_to_int64_rninta("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B01E000000000001A055690D9DB80001]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "-35184372088833", "00")
+ self.bid128_to_int64_rninta("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "-35184372088833", "00")
+ self.bid128_to_int64_rninta("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B02000000000000029A2241AF62C0001]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "-35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[B020000470DE4DF82000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[B020000470DE4DF82000000000000001]", "-35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[B02000FC6F7C4045813459C637E07FFF]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B02000FC6F7C4045813459C637E08000]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B02000FC6F7C4045813459C637E08001]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B02000FC6F7C40458157E0B8A7A18000]", "-2000000000000002", "00")
+ self.bid128_to_int64_rninta("0", "[B02000FC6F7C40458157E0B8A7A18001]", "-2000000000000002", "00")
+ self.bid128_to_int64_rninta("0", "[b020c47709db8c6e,ffffcffddfffffff]", "-398478348443794664", "00")
+ self.bid128_to_int64_rninta("0", "[B02200193E5939A08CE4879688D63FFF]", "-1999999999999998", "00")
+ self.bid128_to_int64_rninta("0", "[B02200193E5939A08CE4879688D64000]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02200193E5939A08CE4879688D64001]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02200193E5939A08CE815152D9CBFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02200193E5939A08CE815152D9CC000]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B02200193E5939A08CE815152D9CC001]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[b022ba38cfdbda29,dc32cae713420290]", "-3777029292562045093", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "-9223372036854775806", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF52633FFFFFFAABC208D64000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF52633FFFFFFAABC208D64001]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF52633FFFFFFC72815B398000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF52633FFFFFFC72815B398001]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF526340000000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF526340000000000000000001]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rninta("0", "[B023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[b023e25670f7a43b,ca7c3f24bb7eacf5]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B024000000000000006A94D74F42FFFF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B024000000000000006A94D74F430001]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B02449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B02449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B02A00000000006C6B935B68D08DA3FF]", "-19999999998", "00")
+ self.bid128_to_int64_rninta("0", "[B02A00000000006C6B935B68D08DA400]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02A00000000006C6B935B68D08DA401]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02A00000000006C6B935B8019048BFF]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02A00000000006C6B935B8019048C00]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B02A00000000006C6B935B8019048C01]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B02C000000000000000002BBA7F521FF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B02C000000000000000002BBA7F52200]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B02C000000000000000002BBA7F52201]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B02C00000000000AD78EBC5872141BFF]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02C00000000000AD78EBC5872141C00]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02C00000000000AD78EBC5872141C01]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B02C00000000000AD78EBC5BF025F200]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B02C00000000000AD78EBC5BF025F201]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B02C00000000000AD78EBC5E4431D600]", "-20000000002", "00")
+ self.bid128_to_int64_rninta("0", "[B02C00000000000AD78EBC5E4431D601]", "-20000000002", "00")
+ self.bid128_to_int64_rninta("0", "[B02C000000108B2A2C28028E3FF41BFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02C000000108B2A2C28028E3FF41C00]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02C000000108B2A2C28028E3FF41C01]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B02E000000000001158E46094F6AC9FF]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B02E000000000001158E46094F6ACA00]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B02E000000000001158E46094F6ACA01]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B02E00000001A784379D99DB7D9AC9FF]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B02E00000001A784379D99DB7D9ACA00]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B02E00000001A784379D99DB7D9ACA01]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B03000000000000000000006FC23ABFF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03000000000000000000006FC23AC01]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03200000000000000000000B2D05DFF]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03200000000000000000000B2D05E01]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03800000000000000000000002DDA47]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03800000000000000000000002DDA48]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B03800000000000000000000002DDA49]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B03A00000000000000000000000003E7]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[B03A00000000000000000000000495D3]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03A00000000000000000000000495D4]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B03A00000000000000000000000495D5]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B03C0000000000000000000000007561]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03C0000000000000000000000007562]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B03C0000000000000000000000007563]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000000000000000000005]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[B03E000000000000000000000000000F]", "-2", "00")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000000000000000000BB7]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000000000000000000BB9]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000000000000000000BBD]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000000000002E90EDCFF1]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000000000002E90EDCFFB]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000000000002E90EDD005]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000000000002E90EDD00F]", "-20000000002", "00")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000000001400000000005]", "-35184372088833", "00")
+ self.bid128_to_int64_rninta("0", "[B03E00000000000000470DE4DF81FFF1]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B03E00000000000000470DE4DF81FFFB]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B03E00000000000000470DE4DF820005]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B03E00000000000000470DE4DF82000F]", "-2000000000000002", "00")
+ self.bid128_to_int64_rninta("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B03E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B03E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int64_rninta("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int64_rninta("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int64_rninta("0", "[B04000000000000000000004A817C7FF]", "-19999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B04000000000000000000004A817C801]", "-20000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B0400000000000000000200000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_rninta("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_rninta("0", "[B04000000000000000071AFD498D0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_rninta("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_rninta("0", "[B0400000000000008000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_rninta("0", "[B0400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int64_rninta("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int64_rninta("0", "[B04200000000000000000000773593FF]", "-19999999990", "00")
+ self.bid128_to_int64_rninta("0", "[B0420000000000000000000077359400]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B0420000000000000000000077359401]", "-20000000010", "00")
+ self.bid128_to_int64_rninta("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int64_rninta("0", "[B0520000000000000000000000000004]", "-4000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B0520000000000000000000000000005]", "-5000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B0540000000000000000000000000002]", "-20000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B05E0000000000000000000000000002]", "-2000000000000000", "00")
+ self.bid128_to_int64_rninta("0", "[B064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[B0680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[b177ae1f0fbaeae6,735166a237469c3f]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[b856000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[c1b604fbb3a0bead,5f22bf982b7183b4]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[c1c20507539924fd,6ea354666ca07f6e]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[d42bb0c423ed7de2,a5d91135f6842bfc]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[da6c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[f7f7fffaff7ffb4b,f7eff5ffdfffdbf7]", "0", "00")
+ self.bid128_to_int64_rninta("0", "[fbbfedfbfdbfeffd,0000008800100802]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "[fc0014f646c84068,6332e0a57568e7c1]", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "QNaN", "-9223372036854775808", "01")
+ self.bid128_to_int64_rninta("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_int64_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int64_xceil() {
+ self.bid128_to_int64_xceil("0", "-0", "0", "00")
+ self.bid128_to_int64_xceil("0", "0", "0", "00")
+ self.bid128_to_int64_xceil("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xceil("0", "[0000000000000000,0009400009002400]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[0000000000000000,0088002000018411]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int64_xceil("0", "-0.0E0", "0", "00")
+ self.bid128_to_int64_xceil("0", "[0572e8f22f54afb6,20ac83f74ccb8d42]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[1000000280c90880,0000010000000008]", "1", "20")
+ self.bid128_to_int64_xceil("0", "-101100101.00011100E0", "-101100101", "20")
+ self.bid128_to_int64_xceil("0", "[14d86f56294bda92,0b323cd92542730a]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[1613cebbb41bcc7d,77ddd9e9fcb01dbf]", "1", "20")
+ self.bid128_to_int64_xceil("0", "+228923669488946.89E0", "228923669488947", "20")
+ self.bid128_to_int64_xceil("0", "-234365483.9874E0", "-234365483", "20")
+ self.bid128_to_int64_xceil("0", "[2da8000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xceil("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int64_xceil("0", "[2FFE314DC6448D9338C15B0A00000001]", "2", "20")
+ self.bid128_to_int64_xceil("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "2", "20")
+ self.bid128_to_int64_xceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int64_xceil("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_int64_xceil("0", "[3000400800000000,f7ec8bb4e98fbddf]", "13", "20")
+ self.bid128_to_int64_xceil("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_int64_xceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[300293E952CDA8B9AA44111E00000001]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_int64_xceil("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[30040ECA8847C4129106CE8300000001]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_int64_xceil("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[300A0003C95A2F0B4856475FE0000001]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_int64_xceil("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[300C000060EF6B1ABA6F072330000001]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "20")
+ self.bid128_to_int64_xceil("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_int64_xceil("0", "[3010C5371912364CE3056C2800000001]", "4000000001", "20")
+ self.bid128_to_int64_xceil("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "20")
+ self.bid128_to_int64_xceil("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_int64_xceil("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000001", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_int64_xceil("0", "[3012629B8C8905F96EBAD4C909800001]", "20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_int64_xceil("0", "[3012629B8C891B267182B61400000001]", "20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_int64_xceil("0", "[3012629B8C893053744A975EF6800001]", "20000000002", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000002", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "20")
+ self.bid128_to_int64_xceil("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "20")
+ self.bid128_to_int64_xceil("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xceil("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xceil("0", "[3018AD78EBC5AC620000000000000001]", "35184372088833", "20")
+ self.bid128_to_int64_xceil("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088833", "20")
+ self.bid128_to_int64_xceil("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088833", "20")
+ self.bid128_to_int64_xceil("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "20")
+ self.bid128_to_int64_xceil("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B2663A1FF60589C0001]", "2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B267182B61400000001]", "2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000002", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000002", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "20")
+ self.bid128_to_int64_xceil("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "20")
+ self.bid128_to_int64_xceil("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_int64_xceil("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[301E000000000001A055690D9DB80001]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088833", "20")
+ self.bid128_to_int64_xceil("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088833", "20")
+ self.bid128_to_int64_xceil("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "20")
+ self.bid128_to_int64_xceil("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_int64_xceil("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[302000000000000029A2241AF62C0001]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xceil("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xceil("0", "[3020000470DE4DF82000000000000001]", "35184372088833", "20")
+ self.bid128_to_int64_xceil("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000002", "20")
+ self.bid128_to_int64_xceil("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "20")
+ self.bid128_to_int64_xceil("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "20")
+ self.bid128_to_int64_xceil("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[302200193E5939A08CE4879688D64000]", "1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[302200193E5939A08CE815152D9CBFFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[3023b6024405801e,dbffffffffffffff]", "8883874914354789289", "20")
+ self.bid128_to_int64_xceil("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775807", "20")
+ self.bid128_to_int64_xceil("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775807", "20")
+ self.bid128_to_int64_xceil("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "20")
+ self.bid128_to_int64_xceil("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "20")
+ self.bid128_to_int64_xceil("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_int64_xceil("0", "[3023C6BF52633FFFFFFC72815B398001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF526340000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_int64_xceil("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[3024000000000000006A94D74F430001]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[30242f526c78c0d7,54653df3938c824c]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[302449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[302449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[302449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[302A00000000006C6B935B68D08DA400]", "19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[302A00000000006C6B935B8019048BFF]", "20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[302C000000000000000002BBA7F521FF]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[302C000000000000000002BBA7F52200]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_int64_xceil("0", "[302C00000000000AD78EBC5872141C01]", "20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[302C00000000000AD78EBC5BF025F200]", "20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000002", "20")
+ self.bid128_to_int64_xceil("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "20")
+ self.bid128_to_int64_xceil("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "20")
+ self.bid128_to_int64_xceil("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_int64_xceil("0", "[302C000000108B2A2C28028E3FF41C01]", "2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_int64_xceil("0", "[302E000000000001158E46094F6ACA01]", "20000000002", "20")
+ self.bid128_to_int64_xceil("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_int64_xceil("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000002", "20")
+ self.bid128_to_int64_xceil("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_int64_xceil("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[303000000000000000000006FC23AC01]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_int64_xceil("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[303200000000000000000000B2D05E01]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303800000000000000000000002DDA47]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303800000000000000000000002DDA48]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[303A00000000000000000000000495D3]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303A00000000000000000000000495D4]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303C0000000000000000000000007561]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303C0000000000000000000000007562]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_int64_xceil("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int64_xceil("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_int64_xceil("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[303E0000000000000000000000000BB9]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_int64_xceil("0", "[303E0000000000000000002E90EDCFF1]", "19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[303E0000000000000000002E90EDD005]", "20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "20")
+ self.bid128_to_int64_xceil("0", "[303E0000000000000001400000000005]", "35184372088833", "20")
+ self.bid128_to_int64_xceil("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[303E00000000000000470DE4DF820005]", "2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "20")
+ self.bid128_to_int64_xceil("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775807", "20")
+ self.bid128_to_int64_xceil("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[303E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[303E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[303E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int64_xceil("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int64_xceil("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int64_xceil("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_int64_xceil("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_int64_xceil("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xceil("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_xceil("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_xceil("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_int64_xceil("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_xceil("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_xceil("0", "[3040000000000000,41420401680c2033]", "4702325365015322675", "00")
+ self.bid128_to_int64_xceil("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_xceil("0", "[30400000000000008000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int64_xceil("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int64_xceil("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int64_xceil("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_int64_xceil("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_int64_xceil("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_int64_xceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int64_xceil("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_int64_xceil("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_int64_xceil("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_int64_xceil("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_int64_xceil("0", "[3064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[30b473bc682c1cf7,3ba84facc5ca42e3]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[3489016e86911b35,bc31f491c174a6bd]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[40083189545b0220,0069002200400626]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[490e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xceil("0", "[4bf4629c1b310fee,ac1ec5d52cb8c0dd]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "-57889.559988968879E0", "-57889", "20")
+ self.bid128_to_int64_xceil("0", "[5c26000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xceil("0", "+7456.59885756E0", "7457", "20")
+ self.bid128_to_int64_xceil("0", "[7800000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[78000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[7b5ffe3effdfdf43,b1c801c364012680]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[7c000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[7c003fffffffffff38c15b08ffffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[7c003fffffffffff38c15b0affffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[7cd026e18b95cdd7,df0ce3b68b649909]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[7e000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "-8988.8988899E0", "-8988", "20")
+ self.bid128_to_int64_xceil("0", "+898.9998E0", "899", "20")
+ self.bid128_to_int64_xceil("0", "[8a54f6092ea8cd09,60db927fb1abc2bd]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[8b1c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xceil("0", "[908f6046080fbea1,fc7f397a12292b2f]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[919fba3f39e3b259,d1540f7046ec10c8]", "0", "20")
+ self.bid128_to_int64_xceil("0", "-9", "-9", "00")
+ self.bid128_to_int64_xceil("0", "[9dda000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xceil("0", "[9e9704ef8fa66d9a,f40512e4285fc635]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[a5288035a92cfbf7,d014b96e8f4e9770]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[a69e79836222374a,c41f5f6728981e31]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[aba823b10d84b4b6,1b8019a3d40c1810]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[afdf816d87347d1f,2c974ad9459c17dd]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int64_xceil("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "20")
+ self.bid128_to_int64_xceil("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "20")
+ self.bid128_to_int64_xceil("0", "[AFFE49F4A966D45CD522088F00000000]", "-1", "20")
+ self.bid128_to_int64_xceil("0", "[AFFE49F4A966D45CD522088F00000001]", "-1", "20")
+ self.bid128_to_int64_xceil("0", "[afff7fdefbfbbbf5,facf7f1d1f6efeff]", "-7", "20")
+ self.bid128_to_int64_xceil("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-299", "20")
+ self.bid128_to_int64_xceil("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B00294286EACB8CB0A8CB6B140000001]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-299", "20")
+ self.bid128_to_int64_xceil("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-299", "20")
+ self.bid128_to_int64_xceil("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-299", "20")
+ self.bid128_to_int64_xceil("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-3999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B010C5371912364CE3056C2800000000]", "-4000000000", "00")
+ self.bid128_to_int64_xceil("0", "[B010C5371912364CE3056C2800000001]", "-4000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-4999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B010F684DF56C3E01BC6C73200000000]", "-5000000000", "00")
+ self.bid128_to_int64_xceil("0", "[B010F684DF56C3E01BC6C73200000001]", "-5000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-19999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C88FB62ED56E4238E400000]", "-19999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C88FB62ED56E4238E400001]", "-19999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-19999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C8905F96EBAD4C909800000]", "-19999999999", "00")
+ self.bid128_to_int64_xceil("0", "[B012629B8C8905F96EBAD4C909800001]", "-19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C89108FF01EC56E84C00000]", "-19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C89108FF01EC56E84C00001]", "-19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C891B267182B613FFFFFFFF]", "-19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C891B267182B61400000000]", "-20000000000", "00")
+ self.bid128_to_int64_xceil("0", "[B012629B8C891B267182B61400000001]", "-20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C893053744A975EF67FFFFF]", "-20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C893053744A975EF6800000]", "-20000000001", "00")
+ self.bid128_to_int64_xceil("0", "[B012629B8C893053744A975EF6800001]", "-20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C893AE9F5AE880471C00000]", "-20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B012629B8C893AE9F5AE880471C00001]", "-20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "-35184372088831", "20")
+ self.bid128_to_int64_xceil("0", "[B018AD78EBC5AC620000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xceil("0", "[B018AD78EBC5AC620000000000000001]", "-35184372088832", "20")
+ self.bid128_to_int64_xceil("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xceil("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "-35184372088832", "20")
+ self.bid128_to_int64_xceil("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "-35184372088832", "20")
+ self.bid128_to_int64_xceil("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B265CB1A40684EA0000]", "-1999999999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B265CB1A40684EA0001]", "-1999999999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B2663A1FF60589C0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B2663A1FF60589C0001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B266A925ABA2C4E0000]", "-1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B266A925ABA2C4E0001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B267182B613FFFFFFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B267182B61400000000]", "-2000000000000000", "00")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B267182B61400000001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B267873116DD3B1FFFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B267873116DD3B20000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B267873116DD3B20001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B267F636CC7A763FFFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B267F636CC7A7640000]", "-2000000000000001", "00")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B267F636CC7A7640001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B268653C8217B15FFFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B268653C8217B160000]", "-2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B01C629B8C891B268653C8217B160001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B01E000000000001A055690D9DB7FFFF]", "-299", "20")
+ self.bid128_to_int64_xceil("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B01E000000000001A055690D9DB80001]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xceil("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "-35184372088832", "20")
+ self.bid128_to_int64_xceil("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "-35184372088832", "20")
+ self.bid128_to_int64_xceil("0", "[B02000000000000029A2241AF62BFFFF]", "-299", "20")
+ self.bid128_to_int64_xceil("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B02000000000000029A2241AF62C0001]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "-35184372088831", "20")
+ self.bid128_to_int64_xceil("0", "[B020000470DE4DF82000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xceil("0", "[B020000470DE4DF82000000000000001]", "-35184372088832", "20")
+ self.bid128_to_int64_xceil("0", "[B02000FC6F7C4045813459C637E07FFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B02000FC6F7C4045813459C637E08000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B02000FC6F7C4045813459C637E08001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B02000FC6F7C40458157E0B8A7A18000]", "-2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B02000FC6F7C40458157E0B8A7A18001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B02200193E5939A08CE4879688D63FFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B02200193E5939A08CE4879688D64000]", "-1999999999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B02200193E5939A08CE4879688D64001]", "-1999999999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B02200193E5939A08CE815152D9CBFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B02200193E5939A08CE815152D9CC000]", "-1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B02200193E5939A08CE815152D9CC001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[b023869e85e24d0c,0080520105180000]", "-7922699230188790318", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF52633FFFFFFAABC208D64000]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF52633FFFFFFAABC208D64001]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF52633FFFFFFC72815B398000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_xceil("0", "[B023C6BF52633FFFFFFC72815B398001]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF526340000000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_xceil("0", "[B023C6BF526340000000000000000001]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF526340000001C6BF52634000]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF526340000001C6BF52634001]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xceil("0", "[B023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[b023e1018a9d34dd,c6a5b3918878bf7c]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B024000000000000006A94D74F42FFFF]", "-299", "20")
+ self.bid128_to_int64_xceil("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B024000000000000006A94D74F430001]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B02449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B02449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B02A00000000006C6B935B68D08DA3FF]", "-19999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B02A00000000006C6B935B68D08DA400]", "-19999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B02A00000000006C6B935B68D08DA401]", "-19999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B02A00000000006C6B935B8019048BFF]", "-19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B02A00000000006C6B935B8019048C00]", "-19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B02A00000000006C6B935B8019048C01]", "-19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B02C000000000000000002BBA7F521FF]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B02C000000000000000002BBA7F52200]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B02C000000000000000002BBA7F52201]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B02C00000000000AD78EBC5872141BFF]", "-19999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B02C00000000000AD78EBC5872141C00]", "-19999999999", "00")
+ self.bid128_to_int64_xceil("0", "[B02C00000000000AD78EBC5872141C01]", "-19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B02C00000000000AD78EBC5BF025F200]", "-20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B02C00000000000AD78EBC5BF025F201]", "-20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B02C00000000000AD78EBC5E4431D600]", "-20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B02C00000000000AD78EBC5E4431D601]", "-20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B02C000000108B2A2C28028E3FF41BFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B02C000000108B2A2C28028E3FF41C00]", "-1999999999999999", "00")
+ self.bid128_to_int64_xceil("0", "[B02C000000108B2A2C28028E3FF41C01]", "-1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B02E000000000001158E46094F6AC9FF]", "-20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B02E000000000001158E46094F6ACA00]", "-20000000001", "00")
+ self.bid128_to_int64_xceil("0", "[B02E000000000001158E46094F6ACA01]", "-20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B02E00000001A784379D99DB7D9AC9FF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B02E00000001A784379D99DB7D9ACA00]", "-2000000000000001", "00")
+ self.bid128_to_int64_xceil("0", "[B02E00000001A784379D99DB7D9ACA01]", "-2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B03000000000000000000006FC23ABFF]", "-299", "20")
+ self.bid128_to_int64_xceil("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B03000000000000000000006FC23AC01]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03200000000000000000000B2D05DFF]", "-299", "20")
+ self.bid128_to_int64_xceil("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B03200000000000000000000B2D05E01]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03800000000000000000000002DDA47]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03800000000000000000000002DDA48]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03800000000000000000000002DDA49]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[B03A00000000000000000000000495D3]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03A00000000000000000000000495D4]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03A00000000000000000000000495D5]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03C0000000000000000000000007561]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03C0000000000000000000000007562]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03C0000000000000000000000007563]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int64_xceil("0", "[B03E000000000000000000000000000F]", "-1", "20")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000000000000000000BB7]", "-299", "20")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000000000000000000BB9]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000000000000000000BBD]", "-300", "20")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000000000002E90EDCFF1]", "-19999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000000000002E90EDCFFB]", "-19999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000000000002E90EDD005]", "-20000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000000000002E90EDD00F]", "-20000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000000001400000000005]", "-35184372088832", "20")
+ self.bid128_to_int64_xceil("0", "[B03E00000000000000470DE4DF81FFF1]", "-1999999999999998", "20")
+ self.bid128_to_int64_xceil("0", "[B03E00000000000000470DE4DF81FFFB]", "-1999999999999999", "20")
+ self.bid128_to_int64_xceil("0", "[B03E00000000000000470DE4DF820005]", "-2000000000000000", "20")
+ self.bid128_to_int64_xceil("0", "[B03E00000000000000470DE4DF82000F]", "-2000000000000001", "20")
+ self.bid128_to_int64_xceil("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xceil("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000050000000000000005]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xceil("0", "[B03E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B03E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int64_xceil("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int64_xceil("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int64_xceil("0", "[B04000000000000000000004A817C7FF]", "-19999999999", "00")
+ self.bid128_to_int64_xceil("0", "[B04000000000000000000004A817C801]", "-20000000001", "00")
+ self.bid128_to_int64_xceil("0", "[B0400000000000000000200000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xceil("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_xceil("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_xceil("0", "[B04000000000000000071AFD498D0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_xceil("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_xceil("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_xceil("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_xceil("0", "[B0400000000000008000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_xceil("0", "[B0400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int64_xceil("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int64_xceil("0", "[B04200000000000000000000773593FF]", "-19999999990", "00")
+ self.bid128_to_int64_xceil("0", "[B0420000000000000000000077359400]", "-20000000000", "00")
+ self.bid128_to_int64_xceil("0", "[B0420000000000000000000077359401]", "-20000000010", "00")
+ self.bid128_to_int64_xceil("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int64_xceil("0", "[B0520000000000000000000000000004]", "-4000000000", "00")
+ self.bid128_to_int64_xceil("0", "[B0520000000000000000000000000005]", "-5000000000", "00")
+ self.bid128_to_int64_xceil("0", "[B0540000000000000000000000000002]", "-20000000000", "00")
+ self.bid128_to_int64_xceil("0", "[B05E0000000000000000000000000002]", "-2000000000000000", "00")
+ self.bid128_to_int64_xceil("0", "[B064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[B0680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[bde53afafb193258,8ada3dcdcc8e2207]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[ef088218cf3e43b1,7e1f5b3043651526]", "0", "00")
+ self.bid128_to_int64_xceil("0", "[fb2b7dcc81a0bd1e,984bef8e8ea90489]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "[fffff7dfeefdd7f7,683109605900fa40]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_xceil("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_int64_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int64_xfloor() {
+ self.bid128_to_int64_xfloor("0", "0", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[0000000000000000,0000000000080002]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[0000000000000000,10800d030a028014]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[03ce000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[0dc0000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[10d88b92c2c9e3e6,7f595982d66d2542]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "+110100.11111E0", "110100", "20")
+ self.bid128_to_int64_xfloor("0", "+111.010011011111001E0", "111", "20")
+ self.bid128_to_int64_xfloor("0", "[1298000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "+2477887763728253.5E0", "2477887763728253", "20")
+ self.bid128_to_int64_xfloor("0", "[2800000000000100,07b797cef69ba6ff]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[2f16000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int64_xfloor("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_int64_xfloor("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_int64_xfloor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_int64_xfloor("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "20")
+ self.bid128_to_int64_xfloor("0", "[3000080200800001,00b4500003a00205]", "1", "20")
+ self.bid128_to_int64_xfloor("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "20")
+ self.bid128_to_int64_xfloor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "20")
+ self.bid128_to_int64_xfloor("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "20")
+ self.bid128_to_int64_xfloor("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "20")
+ self.bid128_to_int64_xfloor("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "4999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C89108FF01EC56E84C00000]", "19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C89108FF01EC56E84C00001]", "19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C891B267182B613FFFFFFFF]", "19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C891B267182B61400000001]", "20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088831", "20")
+ self.bid128_to_int64_xfloor("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xfloor("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "20")
+ self.bid128_to_int64_xfloor("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xfloor("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "20")
+ self.bid128_to_int64_xfloor("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088832", "20")
+ self.bid128_to_int64_xfloor("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B266A925ABA2C4E0000]", "1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B266A925ABA2C4E0001]", "1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B267182B613FFFFFFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B268653C8217B160000]", "2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[301C629B8C891B268653C8217B160001]", "2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[301E000000000001A055690D9DB7FFFF]", "299", "20")
+ self.bid128_to_int64_xfloor("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xfloor("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "20")
+ self.bid128_to_int64_xfloor("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088832", "20")
+ self.bid128_to_int64_xfloor("0", "[302000000000000029A2241AF62BFFFF]", "299", "20")
+ self.bid128_to_int64_xfloor("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088831", "20")
+ self.bid128_to_int64_xfloor("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xfloor("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "20")
+ self.bid128_to_int64_xfloor("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[302200193E5939A08CE4879688D64001]", "1999999999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[302200193E5939A08CE815152D9CC000]", "1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[302200193E5939A08CE815152D9CC001]", "1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "20")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "20")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775806", "20")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775806", "20")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "20")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "20")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775807", "20")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775807", "20")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775807", "20")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF526340000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3023e54996869f35,3e2dd83188183c77]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3024000000000000006A94D74F42FFFF]", "299", "20")
+ self.bid128_to_int64_xfloor("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[302449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[302449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[302449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3026024011101263,b9febff3eeff5bf6]", "4564070228303856186", "20")
+ self.bid128_to_int64_xfloor("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[302A00000000006C6B935B68D08DA401]", "19999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[302A00000000006C6B935B8019048C00]", "19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[302A00000000006C6B935B8019048C01]", "19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[302C000000000000000002BBA7F52201]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[302C00000000000AD78EBC5872141BFF]", "19999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[302C00000000000AD78EBC5BF025F201]", "20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[302C00000000000AD78EBC5E4431D600]", "20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[302C00000000000AD78EBC5E4431D601]", "20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[302E000000000001158E46094F6AC9FF]", "20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[303000000000000000000006FC23ABFF]", "299", "20")
+ self.bid128_to_int64_xfloor("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303200000000000000000000B2D05DFF]", "299", "20")
+ self.bid128_to_int64_xfloor("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303800000000000000000000002DDA49]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303A00000000000000000000000495D5]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303C0000000000000000000000007563]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int64_xfloor("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000000000000000000BB7]", "299", "20")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000000000002E90EDCFFB]", "19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000000000002E90EDD005]", "20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000000000002E90EDD00F]", "20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000000001400000000005]", "35184372088832", "20")
+ self.bid128_to_int64_xfloor("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "20")
+ self.bid128_to_int64_xfloor("0", "[303E00000000000000470DE4DF81FFFB]", "1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[303E00000000000000470DE4DF82000F]", "2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "20")
+ self.bid128_to_int64_xfloor("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775807", "20")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[303E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[303E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int64_xfloor("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int64_xfloor("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int64_xfloor("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xfloor("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[3040000000000000,0038256890002400]", "15803729718551552", "00")
+ self.bid128_to_int64_xfloor("0", "[3040000000000000,6d4d47cdd1ff5e6e]", "7876030272657907310", "00")
+ self.bid128_to_int64_xfloor("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_xfloor("0", "[30400000000000008000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int64_xfloor("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int64_xfloor("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_int64_xfloor("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_int64_xfloor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int64_xfloor("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[3064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[30680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[3163e9edfebd7826,840217081a055491]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[324036b0037ea5b4,2e8a6c20bae27d60]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "+39.22432222297684E0", "39", "20")
+ self.bid128_to_int64_xfloor("0", "[49f34800f0ec0606,ef26e3a8cca1ab70]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[528c125bdaefc3f7,6f91fee2dcd106cd]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[5b36a99f0765fa41,6f076bbf7cecad60]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[69e8cb5d7a50df87,d20a87829725635e]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "+7658.997E0", "7658", "20")
+ self.bid128_to_int64_xfloor("0", "[78000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[78b2bb953a9831e7,33b50c7a9c29f191]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[7c000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[7c003fffffffffff38c15b08ffffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[7c003fffffffffff38c15b0affffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[7e000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[87f6000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "-887598695.897E0", "-887598696", "20")
+ self.bid128_to_int64_xfloor("0", "-898888988998.88889E0", "-898888988999", "20")
+ self.bid128_to_int64_xfloor("0", "-8.9E0", "-9", "20")
+ self.bid128_to_int64_xfloor("0", "[91a8000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[9573a6e484871911,e7f754295aeb9a73]", "-1", "20")
+ self.bid128_to_int64_xfloor("0", "-9", "-9", "00")
+ self.bid128_to_int64_xfloor("0", "-995755778967.56677E0", "-995755778968", "20")
+ self.bid128_to_int64_xfloor("0", "[abe2000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[ade4000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "-1", "20")
+ self.bid128_to_int64_xfloor("0", "[AFFCF684DF56C3E01BC6C73200000000]", "-1", "20")
+ self.bid128_to_int64_xfloor("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "20")
+ self.bid128_to_int64_xfloor("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "20")
+ self.bid128_to_int64_xfloor("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "20")
+ self.bid128_to_int64_xfloor("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "20")
+ self.bid128_to_int64_xfloor("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "20")
+ self.bid128_to_int64_xfloor("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int64_xfloor("0", "[AFFE314DC6448D9338C15B0A00000001]", "-2", "20")
+ self.bid128_to_int64_xfloor("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-2", "20")
+ self.bid128_to_int64_xfloor("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "20")
+ self.bid128_to_int64_xfloor("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "20")
+ self.bid128_to_int64_xfloor("0", "[afff55b2cc4fb712,d9fbcd3da3ca53d1]", "-7", "20")
+ self.bid128_to_int64_xfloor("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xfloor("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B00293E952CDA8B9AA44111E00000001]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B00294286EACB8CB0A8CB6B140000000]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xfloor("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B0040ECA8847C4129106CE8300000001]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xfloor("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B00A0003C95A2F0B4856475FE0000001]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xfloor("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B00C000060EF6B1ABA6F072330000001]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-4000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B010C5371912364CE3056C2800000000]", "-4000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[B010C5371912364CE3056C2800000001]", "-4000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-5000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B010F684DF56C3E01BC6C73200000000]", "-5000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[B010F684DF56C3E01BC6C73200000001]", "-5000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C88FB62ED56E4238E400000]", "-19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C88FB62ED56E4238E400001]", "-19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C8905F96EBAD4C909800000]", "-19999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C8905F96EBAD4C909800001]", "-20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C89108FF01EC56E84C00000]", "-20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C89108FF01EC56E84C00001]", "-20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C891B267182B613FFFFFFFF]", "-20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C891B267182B61400000000]", "-20000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C891B267182B61400000001]", "-20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C893053744A975EF67FFFFF]", "-20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C893053744A975EF6800000]", "-20000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C893053744A975EF6800001]", "-20000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-20000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C893AE9F5AE880471C00000]", "-20000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B012629B8C893AE9F5AE880471C00001]", "-20000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[b017786ee66597f5,d6cdc9959ca3a35a]", "-7634972413221", "20")
+ self.bid128_to_int64_xfloor("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xfloor("0", "[B018AD78EBC5AC620000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xfloor("0", "[B018AD78EBC5AC620000000000000001]", "-35184372088833", "20")
+ self.bid128_to_int64_xfloor("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "-35184372088833", "20")
+ self.bid128_to_int64_xfloor("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "-35184372088833", "20")
+ self.bid128_to_int64_xfloor("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "-35184372088833", "20")
+ self.bid128_to_int64_xfloor("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B265CB1A40684EA0000]", "-1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B265CB1A40684EA0001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B2663A1FF60589C0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B2663A1FF60589C0001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B266A925ABA2C4E0000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B266A925ABA2C4E0001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B267182B613FFFFFFFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B267182B61400000000]", "-2000000000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B267182B61400000001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B267873116DD3B1FFFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B267873116DD3B20000]", "-2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B267873116DD3B20001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B267F636CC7A763FFFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B267F636CC7A7640000]", "-2000000000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B267F636CC7A7640001]", "-2000000000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B268653C8217B15FFFF]", "-2000000000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B268653C8217B160000]", "-2000000000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B01C629B8C891B268653C8217B160001]", "-2000000000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "20")
+ self.bid128_to_int64_xfloor("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B01E000000000001A055690D9DB80001]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "-35184372088833", "20")
+ self.bid128_to_int64_xfloor("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "-35184372088833", "20")
+ self.bid128_to_int64_xfloor("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "-35184372088833", "20")
+ self.bid128_to_int64_xfloor("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "20")
+ self.bid128_to_int64_xfloor("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B02000000000000029A2241AF62C0001]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xfloor("0", "[B020000470DE4DF82000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xfloor("0", "[B020000470DE4DF82000000000000001]", "-35184372088833", "20")
+ self.bid128_to_int64_xfloor("0", "[B02000FC6F7C4045813459C637E07FFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B02000FC6F7C4045813459C637E08000]", "-2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B02000FC6F7C4045813459C637E08001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "-2000000000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B02000FC6F7C40458157E0B8A7A18000]", "-2000000000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B02000FC6F7C40458157E0B8A7A18001]", "-2000000000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B02200193E5939A08CE4879688D63FFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B02200193E5939A08CE4879688D64000]", "-1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B02200193E5939A08CE4879688D64001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B02200193E5939A08CE815152D9CBFFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B02200193E5939A08CE815152D9CC000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B02200193E5939A08CE815152D9CC001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[b0230ee265068413,d73fff9c0cebc8bd]", "-5494187423577440003", "20")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF52633FFFFFFAABC208D64000]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF52633FFFFFFAABC208D64001]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF52633FFFFFFC72815B398000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF52633FFFFFFC72815B398001]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF526340000000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[b023c6f3c7ae9278,301c914978d26d33]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B024000000000000006A94D74F42FFFF]", "-300", "20")
+ self.bid128_to_int64_xfloor("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B024000000000000006A94D74F430001]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B02449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B02449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B02A00000000006C6B935B68D08DA3FF]", "-19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B02A00000000006C6B935B68D08DA400]", "-19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B02A00000000006C6B935B68D08DA401]", "-19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B02A00000000006C6B935B8019048BFF]", "-20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B02A00000000006C6B935B8019048C00]", "-20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B02A00000000006C6B935B8019048C01]", "-20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C000000000000000002BBA7F521FF]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C000000000000000002BBA7F52200]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C000000000000000002BBA7F52201]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C00000000000AD78EBC5872141BFF]", "-19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C00000000000AD78EBC5872141C00]", "-19999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[B02C00000000000AD78EBC5872141C01]", "-20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C00000000000AD78EBC5BF025F200]", "-20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C00000000000AD78EBC5BF025F201]", "-20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-20000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C00000000000AD78EBC5E4431D600]", "-20000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C00000000000AD78EBC5E4431D601]", "-20000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C000000108B2A2C28028E3FF41BFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B02C000000108B2A2C28028E3FF41C00]", "-1999999999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[B02C000000108B2A2C28028E3FF41C01]", "-2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B02E000000000001158E46094F6AC9FF]", "-20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B02E000000000001158E46094F6ACA00]", "-20000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[B02E000000000001158E46094F6ACA01]", "-20000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B02E00000001A784379D99DB7D9AC9FF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B02E00000001A784379D99DB7D9ACA00]", "-2000000000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[B02E00000001A784379D99DB7D9ACA01]", "-2000000000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B03000000000000000000006FC23ABFF]", "-300", "20")
+ self.bid128_to_int64_xfloor("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B03000000000000000000006FC23AC01]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03200000000000000000000B2D05DFF]", "-300", "20")
+ self.bid128_to_int64_xfloor("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B03200000000000000000000B2D05E01]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03800000000000000000000002DDA47]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03800000000000000000000002DDA48]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03800000000000000000000002DDA49]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03A00000000000000000000000003E7]", "-1", "20")
+ self.bid128_to_int64_xfloor("0", "[B03A00000000000000000000000495D3]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03A00000000000000000000000495D4]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03A00000000000000000000000495D5]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03C0000000000000000000000007561]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03C0000000000000000000000007562]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03C0000000000000000000000007563]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000000000000000000005]", "-1", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E000000000000000000000000000F]", "-2", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000000000000000000BB7]", "-300", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000000000000000000BB9]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000000000000000000BBD]", "-301", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000000000002E90EDCFF1]", "-19999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000000000002E90EDCFFB]", "-20000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000000000002E90EDD005]", "-20000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000000000002E90EDD00F]", "-20000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000000001400000000005]", "-35184372088833", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E00000000000000470DE4DF81FFF1]", "-1999999999999999", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E00000000000000470DE4DF81FFFB]", "-2000000000000000", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E00000000000000470DE4DF820005]", "-2000000000000001", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E00000000000000470DE4DF82000F]", "-2000000000000002", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B03E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B03E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int64_xfloor("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int64_xfloor("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int64_xfloor("0", "[B04000000000000000000004A817C7FF]", "-19999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[B04000000000000000000004A817C801]", "-20000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[B0400000000000000000200000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xfloor("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_xfloor("0", "[B04000000000000000071AFD498D0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_xfloor("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_xfloor("0", "[B0400000000000008000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_xfloor("0", "[B0400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int64_xfloor("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int64_xfloor("0", "[B04200000000000000000000773593FF]", "-19999999990", "00")
+ self.bid128_to_int64_xfloor("0", "[B0420000000000000000000077359400]", "-20000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[B0420000000000000000000077359401]", "-20000000010", "00")
+ self.bid128_to_int64_xfloor("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int64_xfloor("0", "[B0520000000000000000000000000004]", "-4000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[B0520000000000000000000000000005]", "-5000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[B0540000000000000000000000000002]", "-20000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[B05E0000000000000000000000000002]", "-2000000000000000", "00")
+ self.bid128_to_int64_xfloor("0", "[B064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[B0680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[c462000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[c50daac0c3475587,64b7dda1eb14db7e]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[c6898d466cd0d689,21eb5accfdab2966]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[c7080724873b5159,4109c436d38e560d]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[d0da000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xfloor("0", "[d4aaef72ae947901,c776ad6a27f3ee25]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[d5cb93fedb80368c,32dde6a3b69b5bd4]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[df4ea61f4cf8f331,7b2982d60e3742dc]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[fab9d9eeffd59ffd,56b6ec177cc2cce2]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[fdffb77ff5bffffb,b7d2019c15fb1077]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "[ffffbfcef7ffefdb,0820002000000800]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "QNaN", "-9223372036854775808", "01")
+ self.bid128_to_int64_xfloor("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_int64_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int64_xint() {
+ self.bid128_to_int64_xint("0", "-0", "0", "00")
+ self.bid128_to_int64_xint("0", "0", "0", "00")
+ self.bid128_to_int64_xint("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xint("0", "[0000000000000000,0000008000000810]", "0", "20")
+ self.bid128_to_int64_xint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int64_xint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int64_xint("0", "[042a79109ddb140a,878aa59ddad35443]", "0", "20")
+ self.bid128_to_int64_xint("0", "[2002000000000000,ffff7ffffffffbff]", "0", "20")
+ self.bid128_to_int64_xint("0", "[285101d9dbffbc06,b1394fae0096b900]", "0", "20")
+ self.bid128_to_int64_xint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int64_xint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_int64_xint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_int64_xint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int64_xint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_int64_xint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int64_xint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_int64_xint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_int64_xint("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_int64_xint("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "20")
+ self.bid128_to_int64_xint("0", "[300041c848908032,e954a1efad5abe7b]", "13", "20")
+ self.bid128_to_int64_xint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "20")
+ self.bid128_to_int64_xint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int64_xint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_int64_xint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_int64_xint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_int64_xint("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "20")
+ self.bid128_to_int64_xint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "20")
+ self.bid128_to_int64_xint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int64_xint("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_int64_xint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "20")
+ self.bid128_to_int64_xint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int64_xint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_int64_xint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "20")
+ self.bid128_to_int64_xint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int64_xint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_int64_xint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "20")
+ self.bid128_to_int64_xint("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_int64_xint("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_int64_xint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "4999999999", "20")
+ self.bid128_to_int64_xint("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_int64_xint("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999998", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999998", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_int64_xint("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C89108FF01EC56E84C00000]", "19999999999", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C89108FF01EC56E84C00001]", "19999999999", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C891B267182B613FFFFFFFF]", "19999999999", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_int64_xint("0", "[3012629B8C891B267182B61400000001]", "20000000000", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000000", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000000", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_int64_xint("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000001", "20")
+ self.bid128_to_int64_xint("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000001", "20")
+ self.bid128_to_int64_xint("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088831", "20")
+ self.bid128_to_int64_xint("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xint("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_int64_xint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_int64_xint("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B266A925ABA2C4E0000]", "1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B266A925ABA2C4E0001]", "1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B267182B613FFFFFFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B268653C8217B160000]", "2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[301C629B8C891B268653C8217B160001]", "2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[301E000000000001A055690D9DB7FFFF]", "299", "20")
+ self.bid128_to_int64_xint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int64_xint("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_int64_xint("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[302000000000000029A2241AF62BFFFF]", "299", "20")
+ self.bid128_to_int64_xint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int64_xint("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_int64_xint("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088831", "20")
+ self.bid128_to_int64_xint("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xint("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[302200193E5939A08CE4879688D64001]", "1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[302200193E5939A08CE815152D9CC000]", "1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[302200193E5939A08CE815152D9CC001]", "1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[302308b591e0042c,62f88832845936d1]", "5368941578924638780", "20")
+ self.bid128_to_int64_xint("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "20")
+ self.bid128_to_int64_xint("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "20")
+ self.bid128_to_int64_xint("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775806", "20")
+ self.bid128_to_int64_xint("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775806", "20")
+ self.bid128_to_int64_xint("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_int64_xint("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[3023C6BF526340000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3023d8409b85085d,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3024000000000000006A94D74F42FFFF]", "299", "20")
+ self.bid128_to_int64_xint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int64_xint("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_int64_xint("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[302449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[302449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[302449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "20")
+ self.bid128_to_int64_xint("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "20")
+ self.bid128_to_int64_xint("0", "[302A00000000006C6B935B68D08DA401]", "19999999998", "20")
+ self.bid128_to_int64_xint("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "20")
+ self.bid128_to_int64_xint("0", "[302A00000000006C6B935B8019048C00]", "19999999999", "20")
+ self.bid128_to_int64_xint("0", "[302A00000000006C6B935B8019048C01]", "19999999999", "20")
+ self.bid128_to_int64_xint("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_int64_xint("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_int64_xint("0", "[302C000000000000000002BBA7F52201]", "300", "20")
+ self.bid128_to_int64_xint("0", "[302C00000000000AD78EBC5872141BFF]", "19999999998", "20")
+ self.bid128_to_int64_xint("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_int64_xint("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "20")
+ self.bid128_to_int64_xint("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "20")
+ self.bid128_to_int64_xint("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "20")
+ self.bid128_to_int64_xint("0", "[302C00000000000AD78EBC5BF025F201]", "20000000000", "20")
+ self.bid128_to_int64_xint("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "20")
+ self.bid128_to_int64_xint("0", "[302C00000000000AD78EBC5E4431D600]", "20000000001", "20")
+ self.bid128_to_int64_xint("0", "[302C00000000000AD78EBC5E4431D601]", "20000000001", "20")
+ self.bid128_to_int64_xint("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_int64_xint("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[302E000000000001158E46094F6AC9FF]", "20000000000", "20")
+ self.bid128_to_int64_xint("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_int64_xint("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "20")
+ self.bid128_to_int64_xint("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_int64_xint("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[303000000000000000000006FC23ABFF]", "299", "20")
+ self.bid128_to_int64_xint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int64_xint("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303200000000000000000000B2D05DFF]", "299", "20")
+ self.bid128_to_int64_xint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int64_xint("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303800000000000000000000002DDA49]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int64_xint("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303A00000000000000000000000495D5]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303C0000000000000000000000007563]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int64_xint("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_int64_xint("0", "[303E0000000000000000000000000BB7]", "299", "20")
+ self.bid128_to_int64_xint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int64_xint("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_int64_xint("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "20")
+ self.bid128_to_int64_xint("0", "[303E0000000000000000002E90EDCFFB]", "19999999999", "20")
+ self.bid128_to_int64_xint("0", "[303E0000000000000000002E90EDD005]", "20000000000", "20")
+ self.bid128_to_int64_xint("0", "[303E0000000000000000002E90EDD00F]", "20000000001", "20")
+ self.bid128_to_int64_xint("0", "[303E0000000000000001400000000005]", "35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[303E00000000000000470DE4DF81FFFB]", "1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[303E00000000000000470DE4DF82000F]", "2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "20")
+ self.bid128_to_int64_xint("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[303E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[303E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[303E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int64_xint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int64_xint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int64_xint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int64_xint("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_int64_xint("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_int64_xint("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_xint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_xint("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_int64_xint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_xint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_xint("0", "[3040000000000000,12f195307644245f]", "1365036197445117023", "00")
+ self.bid128_to_int64_xint("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_xint("0", "[30400000000000008000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int64_xint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int64_xint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int64_xint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int64_xint("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_int64_xint("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_int64_xint("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_int64_xint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int64_xint("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_int64_xint("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_int64_xint("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_int64_xint("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_int64_xint("0", "[3064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[30680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[354c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xint("0", "-466584.39E0", "-466584", "20")
+ self.bid128_to_int64_xint("0", "+4747628878.7846E0", "4747628878", "20")
+ self.bid128_to_int64_xint("0", "[4c06b60bd887fca3,8b6a56816097c0c2]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "-5.9659588676E0", "-5", "20")
+ self.bid128_to_int64_xint("0", "[69113260bdb1cb15,69033de6d564f457]", "0", "00")
+ self.bid128_to_int64_xint("0", "+77989.8577778985E0", "77989", "20")
+ self.bid128_to_int64_xint("0", "[78000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[79e0d7586dc22128,137a65493953def8]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[7c000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[7c003fffffffffff38c15b08ffffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[7c003fffffffffff38c15b0affffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[7e000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "-88.999E0", "-88", "20")
+ self.bid128_to_int64_xint("0", "+8.95957795967E0", "8", "20")
+ self.bid128_to_int64_xint("0", "-8999899998.9E0", "-8999899998", "20")
+ self.bid128_to_int64_xint("0", "[89ff6f777fb662ce,b6587145989a798e]", "0", "20")
+ self.bid128_to_int64_xint("0", "[8b40000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xint("0", "[954d56e73f14b8e5,2ae3a4b01fc9715c]", "0", "20")
+ self.bid128_to_int64_xint("0", "[972e998f51ec9391,0f0f9d6eff850178]", "0", "20")
+ self.bid128_to_int64_xint("0", "+988998889.9E0", "988998889", "20")
+ self.bid128_to_int64_xint("0", "-9", "-9", "00")
+ self.bid128_to_int64_xint("0", "+998.98998999899989E0", "998", "20")
+ self.bid128_to_int64_xint("0", "[a0ec38959ac6ce9a,7ea964682bb93b31]", "0", "20")
+ self.bid128_to_int64_xint("0", "[aec4f2ed810502d0,1c581b3a4ab0a7f6]", "0", "20")
+ self.bid128_to_int64_xint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int64_xint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_int64_xint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_int64_xint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int64_xint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_int64_xint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xint("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int64_xint("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "20")
+ self.bid128_to_int64_xint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "20")
+ self.bid128_to_int64_xint("0", "[AFFE49F4A966D45CD522088F00000000]", "-1", "20")
+ self.bid128_to_int64_xint("0", "[AFFE49F4A966D45CD522088F00000001]", "-1", "20")
+ self.bid128_to_int64_xint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-299", "20")
+ self.bid128_to_int64_xint("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B00294286EACB8CB0A8CB6B140000001]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-299", "20")
+ self.bid128_to_int64_xint("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-299", "20")
+ self.bid128_to_int64_xint("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-299", "20")
+ self.bid128_to_int64_xint("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-3999999999", "20")
+ self.bid128_to_int64_xint("0", "[B010C5371912364CE3056C2800000000]", "-4000000000", "00")
+ self.bid128_to_int64_xint("0", "[B010C5371912364CE3056C2800000001]", "-4000000000", "20")
+ self.bid128_to_int64_xint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-4999999999", "20")
+ self.bid128_to_int64_xint("0", "[B010F684DF56C3E01BC6C73200000000]", "-5000000000", "00")
+ self.bid128_to_int64_xint("0", "[B010F684DF56C3E01BC6C73200000001]", "-5000000000", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-19999999998", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C88FB62ED56E4238E400000]", "-19999999998", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C88FB62ED56E4238E400001]", "-19999999998", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-19999999998", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C8905F96EBAD4C909800000]", "-19999999999", "00")
+ self.bid128_to_int64_xint("0", "[B012629B8C8905F96EBAD4C909800001]", "-19999999999", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-19999999999", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C89108FF01EC56E84C00000]", "-19999999999", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C89108FF01EC56E84C00001]", "-19999999999", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C891B267182B613FFFFFFFF]", "-19999999999", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C891B267182B61400000000]", "-20000000000", "00")
+ self.bid128_to_int64_xint("0", "[B012629B8C891B267182B61400000001]", "-20000000000", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-20000000000", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-20000000000", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-20000000000", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C893053744A975EF67FFFFF]", "-20000000000", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C893053744A975EF6800000]", "-20000000001", "00")
+ self.bid128_to_int64_xint("0", "[B012629B8C893053744A975EF6800001]", "-20000000001", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-20000000001", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C893AE9F5AE880471C00000]", "-20000000001", "20")
+ self.bid128_to_int64_xint("0", "[B012629B8C893AE9F5AE880471C00001]", "-20000000001", "20")
+ self.bid128_to_int64_xint("0", "[b0145004e2271980,ff77f5af2dd3d73f]", "-162297967182", "20")
+ self.bid128_to_int64_xint("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "-35184372088831", "20")
+ self.bid128_to_int64_xint("0", "[B018AD78EBC5AC620000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xint("0", "[B018AD78EBC5AC620000000000000001]", "-35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "-35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "-35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B265CB1A40684EA0000]", "-1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B265CB1A40684EA0001]", "-1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B2663A1FF60589C0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B2663A1FF60589C0001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B266A925ABA2C4E0000]", "-1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B266A925ABA2C4E0001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B267182B613FFFFFFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B267182B61400000000]", "-2000000000000000", "00")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B267182B61400000001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B267873116DD3B1FFFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B267873116DD3B20000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B267873116DD3B20001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B267F636CC7A763FFFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B267F636CC7A7640000]", "-2000000000000001", "00")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B267F636CC7A7640001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B268653C8217B15FFFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B268653C8217B160000]", "-2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[B01C629B8C891B268653C8217B160001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[B01E000000000001A055690D9DB7FFFF]", "-299", "20")
+ self.bid128_to_int64_xint("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B01E000000000001A055690D9DB80001]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "-35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "-35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[B02000000000000029A2241AF62BFFFF]", "-299", "20")
+ self.bid128_to_int64_xint("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B02000000000000029A2241AF62C0001]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "-35184372088831", "20")
+ self.bid128_to_int64_xint("0", "[B020000470DE4DF82000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xint("0", "[B020000470DE4DF82000000000000001]", "-35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[B02000FC6F7C4045813459C637E07FFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[B02000FC6F7C4045813459C637E08000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[B02000FC6F7C4045813459C637E08001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[B02000FC6F7C40458157E0B8A7A18000]", "-2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[B02000FC6F7C40458157E0B8A7A18001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[B02200193E5939A08CE4879688D63FFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[B02200193E5939A08CE4879688D64000]", "-1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[B02200193E5939A08CE4879688D64001]", "-1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[B02200193E5939A08CE815152D9CBFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[B02200193E5939A08CE815152D9CC000]", "-1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[B02200193E5939A08CE815152D9CC001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[b0233ed2d05927dd,5d10088042c9e02c]", "-6466508648753923220", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF52633FFFFFFAABC208D64000]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF52633FFFFFFAABC208D64001]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF52633FFFFFFC72815B398000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_xint("0", "[B023C6BF52633FFFFFFC72815B398001]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF526340000000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_xint("0", "[B023C6BF526340000000000000000001]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF526340000001C6BF52634000]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF526340000001C6BF52634001]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xint("0", "[B023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B024000000000000006A94D74F42FFFF]", "-299", "20")
+ self.bid128_to_int64_xint("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B024000000000000006A94D74F430001]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[b0242e3bb2ad99d7,148952241404808b]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B02449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B02449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B02A00000000006C6B935B68D08DA3FF]", "-19999999998", "20")
+ self.bid128_to_int64_xint("0", "[B02A00000000006C6B935B68D08DA400]", "-19999999998", "20")
+ self.bid128_to_int64_xint("0", "[B02A00000000006C6B935B68D08DA401]", "-19999999998", "20")
+ self.bid128_to_int64_xint("0", "[B02A00000000006C6B935B8019048BFF]", "-19999999999", "20")
+ self.bid128_to_int64_xint("0", "[B02A00000000006C6B935B8019048C00]", "-19999999999", "20")
+ self.bid128_to_int64_xint("0", "[B02A00000000006C6B935B8019048C01]", "-19999999999", "20")
+ self.bid128_to_int64_xint("0", "[B02C000000000000000002BBA7F521FF]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B02C000000000000000002BBA7F52200]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B02C000000000000000002BBA7F52201]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B02C00000000000AD78EBC5872141BFF]", "-19999999998", "20")
+ self.bid128_to_int64_xint("0", "[B02C00000000000AD78EBC5872141C00]", "-19999999999", "00")
+ self.bid128_to_int64_xint("0", "[B02C00000000000AD78EBC5872141C01]", "-19999999999", "20")
+ self.bid128_to_int64_xint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-20000000000", "20")
+ self.bid128_to_int64_xint("0", "[B02C00000000000AD78EBC5BF025F200]", "-20000000000", "20")
+ self.bid128_to_int64_xint("0", "[B02C00000000000AD78EBC5BF025F201]", "-20000000000", "20")
+ self.bid128_to_int64_xint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-20000000001", "20")
+ self.bid128_to_int64_xint("0", "[B02C00000000000AD78EBC5E4431D600]", "-20000000001", "20")
+ self.bid128_to_int64_xint("0", "[B02C00000000000AD78EBC5E4431D601]", "-20000000001", "20")
+ self.bid128_to_int64_xint("0", "[B02C000000108B2A2C28028E3FF41BFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[B02C000000108B2A2C28028E3FF41C00]", "-1999999999999999", "00")
+ self.bid128_to_int64_xint("0", "[B02C000000108B2A2C28028E3FF41C01]", "-1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[B02E000000000001158E46094F6AC9FF]", "-20000000000", "20")
+ self.bid128_to_int64_xint("0", "[B02E000000000001158E46094F6ACA00]", "-20000000001", "00")
+ self.bid128_to_int64_xint("0", "[B02E000000000001158E46094F6ACA01]", "-20000000001", "20")
+ self.bid128_to_int64_xint("0", "[B02E00000001A784379D99DB7D9AC9FF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[B02E00000001A784379D99DB7D9ACA00]", "-2000000000000001", "00")
+ self.bid128_to_int64_xint("0", "[B02E00000001A784379D99DB7D9ACA01]", "-2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[B03000000000000000000006FC23ABFF]", "-299", "20")
+ self.bid128_to_int64_xint("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B03000000000000000000006FC23AC01]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03200000000000000000000B2D05DFF]", "-299", "20")
+ self.bid128_to_int64_xint("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B03200000000000000000000B2D05E01]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03800000000000000000000002DDA47]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03800000000000000000000002DDA48]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03800000000000000000000002DDA49]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int64_xint("0", "[B03A00000000000000000000000495D3]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03A00000000000000000000000495D4]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03A00000000000000000000000495D5]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03C0000000000000000000000007561]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03C0000000000000000000000007562]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03C0000000000000000000000007563]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int64_xint("0", "[B03E000000000000000000000000000F]", "-1", "20")
+ self.bid128_to_int64_xint("0", "[B03E0000000000000000000000000BB7]", "-299", "20")
+ self.bid128_to_int64_xint("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B03E0000000000000000000000000BB9]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03E0000000000000000000000000BBD]", "-300", "20")
+ self.bid128_to_int64_xint("0", "[B03E0000000000000000002E90EDCFF1]", "-19999999998", "20")
+ self.bid128_to_int64_xint("0", "[B03E0000000000000000002E90EDCFFB]", "-19999999999", "20")
+ self.bid128_to_int64_xint("0", "[B03E0000000000000000002E90EDD005]", "-20000000000", "20")
+ self.bid128_to_int64_xint("0", "[B03E0000000000000000002E90EDD00F]", "-20000000001", "20")
+ self.bid128_to_int64_xint("0", "[B03E0000000000000001400000000005]", "-35184372088832", "20")
+ self.bid128_to_int64_xint("0", "[B03E00000000000000470DE4DF81FFF1]", "-1999999999999998", "20")
+ self.bid128_to_int64_xint("0", "[B03E00000000000000470DE4DF81FFFB]", "-1999999999999999", "20")
+ self.bid128_to_int64_xint("0", "[B03E00000000000000470DE4DF820005]", "-2000000000000000", "20")
+ self.bid128_to_int64_xint("0", "[B03E00000000000000470DE4DF82000F]", "-2000000000000001", "20")
+ self.bid128_to_int64_xint("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xint("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xint("0", "[B03E0000000000050000000000000005]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xint("0", "[B03E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B03E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int64_xint("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int64_xint("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int64_xint("0", "[B04000000000000000000004A817C7FF]", "-19999999999", "00")
+ self.bid128_to_int64_xint("0", "[B04000000000000000000004A817C801]", "-20000000001", "00")
+ self.bid128_to_int64_xint("0", "[B0400000000000000000200000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xint("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_xint("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_xint("0", "[B04000000000000000071AFD498D0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_xint("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_xint("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_xint("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_xint("0", "[B0400000000000008000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_xint("0", "[B0400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int64_xint("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int64_xint("0", "[B04200000000000000000000773593FF]", "-19999999990", "00")
+ self.bid128_to_int64_xint("0", "[B0420000000000000000000077359400]", "-20000000000", "00")
+ self.bid128_to_int64_xint("0", "[B0420000000000000000000077359401]", "-20000000010", "00")
+ self.bid128_to_int64_xint("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int64_xint("0", "[B0520000000000000000000000000004]", "-4000000000", "00")
+ self.bid128_to_int64_xint("0", "[B0520000000000000000000000000005]", "-5000000000", "00")
+ self.bid128_to_int64_xint("0", "[B0540000000000000000000000000002]", "-20000000000", "00")
+ self.bid128_to_int64_xint("0", "[B05E0000000000000000000000000002]", "-2000000000000000", "00")
+ self.bid128_to_int64_xint("0", "[B064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[B0680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[cb6faccaeee016c7,8e7ba486cc7060ee]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[cdfb22efe510b884,07fb56aa3753e252]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[f8d74f58fb53517f,00c4624f16f84b75]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[fc000a1213a577a2,892e3e8426eeb56a]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[fdf7ff7ffdffbff9,270a519cc2bc50bd]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "[ffaeffffffffadde,ffe7ffcbffddcfff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_xint("0", "QNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_int64_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int64_xrnint() {
+ self.bid128_to_int64_xrnint("0", "-0", "0", "00")
+ self.bid128_to_int64_xrnint("0", "0", "0", "00")
+ self.bid128_to_int64_xrnint("0", "[0000000000000000,0008504010280cc0]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[0000000000000000,f5aa7b77ff5f06bf]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "+0.00000010E0", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "0.5", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[05de000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "[084232d3cfd0bae5,50b61e42330773cd]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "+10000.00010E0", "10000", "20")
+ self.bid128_to_int64_xrnint("0", "1.0", "1", "00")
+ self.bid128_to_int64_xrnint("0", "1", "1", "00")
+ self.bid128_to_int64_xrnint("0", "1152921504606846976", "1152921504606846976", "00")
+ self.bid128_to_int64_xrnint("0", "[120880060803084a,efbd2de3b46dd993]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[1a0099973af0923a,a3907314573e3303]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[1abf5a8e52ed8cb2,eb1edb5301edc385]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[1bf399993f2ed40b,3254e65792c28ed4]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[26afa4be230241f1,2797c58c8e25aba0]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[2a64482bf3dffb1c,73f9e04106602a18]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[2e84000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "[2f40270899fe2bd8,f91f4fc5929a46ae]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_int64_xrnint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_int64_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int64_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_int64_xrnint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_int64_xrnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int64_xrnint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_int64_xrnint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_int64_xrnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int64_xrnint("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_int64_xrnint("0", "[30000124185042ce,0005010802580040]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[3000080284a0700d,ffbcbfff6f73fdfe]", "2", "20")
+ self.bid128_to_int64_xrnint("0", "[300200408040c1c2,deffee3f96a3f2cd]", "1", "20")
+ self.bid128_to_int64_xrnint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_int64_xrnint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C891B267182B61400000001]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[30146d085b5df0be,ab9ee2e763b4d3b2]", "221144474880", "20")
+ self.bid128_to_int64_xrnint("0", "[30184804000a0518,0008000000000000]", "14606504162263", "20")
+ self.bid128_to_int64_xrnint("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xrnint("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "20")
+ self.bid128_to_int64_xrnint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_int64_xrnint("0", "[301b60c559c745f3,ffed71293306eb15]", "715504391357315", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "20")
+ self.bid128_to_int64_xrnint("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xrnint("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[302249be02f2c91c,74ad28492f38f4ef]", "1495670164424070734", "20")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "20")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "20")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "20")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "20")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "20")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "20")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF526340000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3023cbf534496c01,daffebdfdfefe6bf]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[302449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[302449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[302449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_int64_xrnint("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_int64_xrnint("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int64_xrnint("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_int64_xrnint("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000000000002E90EDD005]", "20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000000001400000000005]", "35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "20")
+ self.bid128_to_int64_xrnint("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[303E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[303E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int64_xrnint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int64_xrnint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int64_xrnint("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xrnint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_xrnint("0", "[30400000000000008000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int64_xrnint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int64_xrnint("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_int64_xrnint("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_int64_xrnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int64_xrnint("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[3064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[30680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "+3436356.59595652964E0", "3436357", "20")
+ self.bid128_to_int64_xrnint("0", "[343a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "[40b4000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "[43b494b934a75113,9833792302d4481a]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[4c88fdfac8e7304c,2c80cd60b68b8ca8]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "5.05", "5", "20")
+ self.bid128_to_int64_xrnint("0", "5.5", "6", "20")
+ self.bid128_to_int64_xrnint("0", "[77bef5fbfffffffd,dfdfdadf939cff52]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "[78000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[79ed97a3838bf371,ffff7fefffefbfef]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[7c000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[7c003fffffffffff38c15b08ffffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[7c003fffffffffff38c15b0affffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[7e000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[8200000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "-896575567755.9E0", "-896575567756", "20")
+ self.bid128_to_int64_xrnint("0", "[8a06000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "[8ea8000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "+9578666975877.57586E0", "9578666975878", "20")
+ self.bid128_to_int64_xrnint("0", "-9", "-9", "00")
+ self.bid128_to_int64_xrnint("0", "[9aaeaf4c29b90acc,9ecac9aeacaa2bf4]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[a47642bcd3be7115,980f9ce2e22260cc]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "20")
+ self.bid128_to_int64_xrnint("0", "[affdd857caec27fe,25f55f3dad77581f]", "-1", "20")
+ self.bid128_to_int64_xrnint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "20")
+ self.bid128_to_int64_xrnint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "20")
+ self.bid128_to_int64_xrnint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "20")
+ self.bid128_to_int64_xrnint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "20")
+ self.bid128_to_int64_xrnint("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int64_xrnint("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "20")
+ self.bid128_to_int64_xrnint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "20")
+ self.bid128_to_int64_xrnint("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "20")
+ self.bid128_to_int64_xrnint("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "20")
+ self.bid128_to_int64_xrnint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B00294286EACB8CB0A8CB6B140000000]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "20")
+ self.bid128_to_int64_xrnint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[b00a3c82bf726a8b,72d1fbc5b4d1e3c1]", "-1227303", "20")
+ self.bid128_to_int64_xrnint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-4000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B010C5371912364CE3056C2800000000]", "-4000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[B010C5371912364CE3056C2800000001]", "-4000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-5000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B010F684DF56C3E01BC6C73200000000]", "-5000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[B010F684DF56C3E01BC6C73200000001]", "-5000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-19999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C88FB62ED56E4238E400000]", "-19999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C88FB62ED56E4238E400001]", "-19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C8905F96EBAD4C909800000]", "-19999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C8905F96EBAD4C909800001]", "-19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C89108FF01EC56E84C00000]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C89108FF01EC56E84C00001]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C891B267182B613FFFFFFFF]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C891B267182B61400000000]", "-20000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C891B267182B61400000001]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C893053744A975EF67FFFFF]", "-20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C893053744A975EF6800000]", "-20000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C893053744A975EF6800001]", "-20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C893AE9F5AE880471C00000]", "-20000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[B012629B8C893AE9F5AE880471C00001]", "-20000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[B018AD78EBC5AC620000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xrnint("0", "[B018AD78EBC5AC620000000000000001]", "-35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "-35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "-35184372088833", "20")
+ self.bid128_to_int64_xrnint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B265CB1A40684EA0000]", "-1999999999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B265CB1A40684EA0001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B2663A1FF60589C0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B2663A1FF60589C0001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B266A925ABA2C4E0000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B266A925ABA2C4E0001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B267182B613FFFFFFFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B267182B61400000000]", "-2000000000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B267182B61400000001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B267873116DD3B1FFFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B267873116DD3B20000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B267873116DD3B20001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B267F636CC7A763FFFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B267F636CC7A7640000]", "-2000000000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B267F636CC7A7640001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B268653C8217B15FFFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B268653C8217B160000]", "-2000000000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[B01C629B8C891B268653C8217B160001]", "-2000000000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B01E000000000001A055690D9DB80001]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "-35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "-35184372088833", "20")
+ self.bid128_to_int64_xrnint("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B02000000000000029A2241AF62C0001]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[B020000470DE4DF82000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xrnint("0", "[B020000470DE4DF82000000000000001]", "-35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[B02000FC6F7C4045813459C637E07FFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B02000FC6F7C4045813459C637E08000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B02000FC6F7C4045813459C637E08001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B02000FC6F7C40458157E0B8A7A18000]", "-2000000000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[B02000FC6F7C40458157E0B8A7A18001]", "-2000000000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[B02200193E5939A08CE4879688D63FFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[B02200193E5939A08CE4879688D64000]", "-1999999999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[B02200193E5939A08CE4879688D64001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B02200193E5939A08CE815152D9CBFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B02200193E5939A08CE815152D9CC000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B02200193E5939A08CE815152D9CC001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF52633FFFFFFAABC208D64000]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF52633FFFFFFAABC208D64001]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF52633FFFFFFC72815B398000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF52633FFFFFFC72815B398001]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF526340000000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF526340000000000000000001]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF526340000001C6BF52634000]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[b023cc38c3331717,750e78e86d750823]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B024000000000000006A94D74F42FFFF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B024000000000000006A94D74F430001]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[b024158501c20110,8b839978b97c5dfb]", "-4364684913127286298", "20")
+ self.bid128_to_int64_xrnint("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B02449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B02449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B02A00000000006C6B935B68D08DA3FF]", "-19999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[B02A00000000006C6B935B68D08DA400]", "-19999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[B02A00000000006C6B935B68D08DA401]", "-19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B02A00000000006C6B935B8019048BFF]", "-19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B02A00000000006C6B935B8019048C00]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B02A00000000006C6B935B8019048C01]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C000000000000000002BBA7F521FF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C000000000000000002BBA7F52200]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C000000000000000002BBA7F52201]", "-301", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C00000000000AD78EBC5872141BFF]", "-19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C00000000000AD78EBC5872141C00]", "-19999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[B02C00000000000AD78EBC5872141C01]", "-19999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C00000000000AD78EBC5BF025F200]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C00000000000AD78EBC5BF025F201]", "-20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C00000000000AD78EBC5E4431D600]", "-20000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C00000000000AD78EBC5E4431D601]", "-20000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C000000108B2A2C28028E3FF41BFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B02C000000108B2A2C28028E3FF41C00]", "-1999999999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[B02C000000108B2A2C28028E3FF41C01]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrnint("0", "[B02E000000000001158E46094F6AC9FF]", "-20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B02E000000000001158E46094F6ACA00]", "-20000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[B02E000000000001158E46094F6ACA01]", "-20000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B02E00000001A784379D99DB7D9AC9FF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B02E00000001A784379D99DB7D9ACA00]", "-2000000000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[B02E00000001A784379D99DB7D9ACA01]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrnint("0", "[B03000000000000000000006FC23ABFF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B03000000000000000000006FC23AC01]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03200000000000000000000B2D05DFF]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B03200000000000000000000B2D05E01]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03800000000000000000000002DDA47]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03800000000000000000000002DDA48]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03800000000000000000000002DDA49]", "-301", "20")
+ self.bid128_to_int64_xrnint("0", "[B03A00000000000000000000000003E7]", "-1", "20")
+ self.bid128_to_int64_xrnint("0", "[B03A00000000000000000000000495D3]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03A00000000000000000000000495D4]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03A00000000000000000000000495D5]", "-301", "20")
+ self.bid128_to_int64_xrnint("0", "[B03C0000000000000000000000007561]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03C0000000000000000000000007562]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03C0000000000000000000000007563]", "-301", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E000000000000000000000000000F]", "-2", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000000000000000000BB7]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000000000000000000BB9]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000000000000000000BBD]", "-300", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000000000002E90EDCFF1]", "-19999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000000000002E90EDCFFB]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000000000002E90EDD005]", "-20000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000000000002E90EDD00F]", "-20000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000000001400000000005]", "-35184372088832", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E00000000000000470DE4DF81FFF1]", "-1999999999999998", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E00000000000000470DE4DF81FFFB]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E00000000000000470DE4DF820005]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E00000000000000470DE4DF82000F]", "-2000000000000002", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000050000000000000005]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrnint("0", "[B03E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B03E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int64_xrnint("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int64_xrnint("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int64_xrnint("0", "[B04000000000000000000004A817C7FF]", "-19999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[B04000000000000000000004A817C801]", "-20000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[B0400000000000000000200000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xrnint("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_xrnint("0", "[B04000000000000000071AFD498D0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_xrnint("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_xrnint("0", "[B0400000000000008000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_xrnint("0", "[B0400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int64_xrnint("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int64_xrnint("0", "[B04200000000000000000000773593FF]", "-19999999990", "00")
+ self.bid128_to_int64_xrnint("0", "[B0420000000000000000000077359400]", "-20000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[B0420000000000000000000077359401]", "-20000000010", "00")
+ self.bid128_to_int64_xrnint("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int64_xrnint("0", "[B0520000000000000000000000000004]", "-4000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[B0520000000000000000000000000005]", "-5000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[B0540000000000000000000000000002]", "-20000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[B05E0000000000000000000000000002]", "-2000000000000000", "00")
+ self.bid128_to_int64_xrnint("0", "[B064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[B0680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[b9e3ea7395533328,271f405a8b60a806]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[c18d2515464bd39c,28880c01929723ec]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[c252000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "[c70e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "[cab6000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrnint("0", "[d4a43f3a558ca6d4,fdbbef6faffffffd]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[fafff7ffb7af33fc,00200d20421a2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[fd7ffeffffffffff,840004c0086062e8]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "[ffbfe6ff97ffdfee,390040089364e862]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "QNaN", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrnint("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_int64_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int64_xrninta() {
+ self.bid128_to_int64_xrninta("0", "-0", "0", "00")
+ self.bid128_to_int64_xrninta("0", "0", "0", "00")
+ self.bid128_to_int64_xrninta("0", "[0000000000000000,0001200400000002]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "-0.0001010000E0", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "[002f399f999eb33d,ebcd47df968376ef]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[007b548d56b3979d,848cbbbf3b390341]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[0080000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "0.1", "0", "20")
+ self.bid128_to_int64_xrninta("0", "0.5", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[1000000000000000,005097c06c820047]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "1.0", "1", "00")
+ self.bid128_to_int64_xrninta("0", "+101111101111101.0011E0", "101111101111101", "20")
+ self.bid128_to_int64_xrninta("0", "[17de000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "[2534ce63fee8f8e0,bb2302e33ba43105]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[27ea035e2b210508,312f19446b65c04c]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[282d36816cb01a31,cb4b1171e32e5697]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[2bfb770df0f82a9d,5b8f03ebf8a156e8]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[2fc6000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[2ffd7ffdfdf6fff7,baa252d9774ffdb2]", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int64_xrninta("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int64_xrninta("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_int64_xrninta("0", "[2fffbd6e53c43e9f,0000000000000000]", "9", "20")
+ self.bid128_to_int64_xrninta("0", "[3000012201000108,05f01e135bdfd488]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[3004112540b82528,0c939a4f444290c0]", "348", "20")
+ self.bid128_to_int64_xrninta("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C891B267182B61400000001]", "20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[30143ac566efa440,fbfbefddeef3dc7f]", "119201956221", "20")
+ self.bid128_to_int64_xrninta("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xrninta("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088833", "20")
+ self.bid128_to_int64_xrninta("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "20")
+ self.bid128_to_int64_xrninta("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088833", "20")
+ self.bid128_to_int64_xrninta("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "20")
+ self.bid128_to_int64_xrninta("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xrninta("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[30208b8004980410,fffdffffffffffff]", "282939756142537495", "20")
+ self.bid128_to_int64_xrninta("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "20")
+ self.bid128_to_int64_xrninta("0", "[302200193E5939A08CE4879688D64000]", "1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[302313fd4fd4fdd5,e6ce98f8a48a5c97]", "5597732072927072397", "20")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "20")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF526340000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF526340000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[30242e6403d866e3,7ffeffffffd3feff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[302449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[302449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[302449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "20")
+ self.bid128_to_int64_xrninta("0", "[302A00000000006C6B935B68D08DA400]", "19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[302C000000000000000002BBA7F52200]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[302C00000000000AD78EBC5BF025F200]", "20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[303800000000000000000000002DDA48]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[303A00000000000000000000000495D4]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[303C0000000000000000000000007562]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_int64_xrninta("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000000000002E90EDCFF1]", "19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000000000002E90EDD005]", "20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000000001400000000005]", "35184372088833", "20")
+ self.bid128_to_int64_xrninta("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[303E00000000000000470DE4DF820005]", "2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[303E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[303E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int64_xrninta("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_int64_xrninta("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_int64_xrninta("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_int64_xrninta("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[3040000000000000,2e00008000203012]", "3314649875502608402", "00")
+ self.bid128_to_int64_xrninta("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_int64_xrninta("0", "[30400000000000008000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_int64_xrninta("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_int64_xrninta("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_int64_xrninta("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_int64_xrninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_int64_xrninta("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[3064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[30680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[3b480b9490aaa168,59b6f18efd8c2354]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[426f41fe4fb2293e,a0c22babe987cccb]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[4d6a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "5.05", "5", "20")
+ self.bid128_to_int64_xrninta("0", "+688776.985E0", "688777", "20")
+ self.bid128_to_int64_xrninta("0", "[78000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[7bdffa7f75bfbfee,098814cb755eb6b4]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[7c000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[7c003fffffffffff38c15b08ffffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[7c003fffffffffff38c15b0affffffff]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[7ddbeffefffff6cf,b0def7cbf64f0faf]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[7e000000000000000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[865d00d951484763,300e79b5c5737df3]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "+89988.88998E0", "89989", "20")
+ self.bid128_to_int64_xrninta("0", "[910400002c100018,3156d6ffdd062af0]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[9874000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "-9", "-9", "00")
+ self.bid128_to_int64_xrninta("0", "[9ef0000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "[a862000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_int64_xrninta("0", "[AFFCF684DF56C3E01BC6C73200000000]", "-1", "20")
+ self.bid128_to_int64_xrninta("0", "[AFFCF684DF56C3E01BC6C73200000001]", "-1", "20")
+ self.bid128_to_int64_xrninta("0", "[affd94a520a07f9c,03fbcb8f8f0ad9d6]", "-1", "20")
+ self.bid128_to_int64_xrninta("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "-1", "20")
+ self.bid128_to_int64_xrninta("0", "[AFFDEC8B86EF679D76FC433D80000000]", "-1", "20")
+ self.bid128_to_int64_xrninta("0", "[AFFDEC8B86EF679D76FC433D80000001]", "-1", "20")
+ self.bid128_to_int64_xrninta("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "-1", "20")
+ self.bid128_to_int64_xrninta("0", "[AFFE314DC6448D9338C15B0A00000000]", "-1", "00")
+ self.bid128_to_int64_xrninta("0", "[AFFE314DC6448D9338C15B0A00000001]", "-1", "20")
+ self.bid128_to_int64_xrninta("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "-1", "20")
+ self.bid128_to_int64_xrninta("0", "[AFFE49F4A966D45CD522088F00000000]", "-2", "20")
+ self.bid128_to_int64_xrninta("0", "[AFFE49F4A966D45CD522088F00000001]", "-2", "20")
+ self.bid128_to_int64_xrninta("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B00293E952CDA8B9AA44111E00000000]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B00293E952CDA8B9AA44111E00000001]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B00294286EACB8CB0A8CB6B140000000]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B00294286EACB8CB0A8CB6B140000001]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B0040ECA8847C4129106CE8300000000]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B0040ECA8847C4129106CE8300000001]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B00A0003C95A2F0B4856475FE0000000]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B00A0003C95A2F0B4856475FE0000001]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[b00a6a83cfdf9da6,c7a021f1a0100013]", "-2160379", "20")
+ self.bid128_to_int64_xrninta("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B00C000060EF6B1ABA6F072330000000]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B00C000060EF6B1ABA6F072330000001]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B010C5371912364CE3056C27FFFFFFFF]", "-4000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B010C5371912364CE3056C2800000000]", "-4000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[B010C5371912364CE3056C2800000001]", "-4000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "-5000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B010F684DF56C3E01BC6C73200000000]", "-5000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[B010F684DF56C3E01BC6C73200000001]", "-5000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "-19999999998", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C88FB62ED56E4238E400000]", "-19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C88FB62ED56E4238E400001]", "-19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "-19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C8905F96EBAD4C909800000]", "-19999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C8905F96EBAD4C909800001]", "-19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "-19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C89108FF01EC56E84C00000]", "-20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C89108FF01EC56E84C00001]", "-20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C891B267182B613FFFFFFFF]", "-20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C891B267182B61400000000]", "-20000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C891B267182B61400000001]", "-20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "-20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C8925BCF2E6A6B97B400000]", "-20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C8925BCF2E6A6B97B400001]", "-20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C893053744A975EF67FFFFF]", "-20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C893053744A975EF6800000]", "-20000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C893053744A975EF6800001]", "-20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "-20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C893AE9F5AE880471C00000]", "-20000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[B012629B8C893AE9F5AE880471C00001]", "-20000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[B018AD78EBC5AC620000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xrninta("0", "[B018AD78EBC5AC620000000000000001]", "-35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "-35184372088833", "20")
+ self.bid128_to_int64_xrninta("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "-35184372088833", "20")
+ self.bid128_to_int64_xrninta("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B01A0000000000A2E6C09AD3E0D40000]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B01A0000000000A2E6C09AD3E0D40001]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B265CB1A40684EA0000]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B265CB1A40684EA0001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B2663A1FF60589C0000]", "-1999999999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B2663A1FF60589C0001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B266A925ABA2C4E0000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B266A925ABA2C4E0001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B267182B613FFFFFFFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B267182B61400000000]", "-2000000000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B267182B61400000001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B267873116DD3B1FFFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B267873116DD3B20000]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B267873116DD3B20001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B267F636CC7A763FFFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B267F636CC7A7640000]", "-2000000000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B267F636CC7A7640001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B268653C8217B15FFFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B268653C8217B160000]", "-2000000000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[B01C629B8C891B268653C8217B160001]", "-2000000000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[B01E000000000001A055690D9DB7FFFF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B01E000000000001A055690D9DB80000]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B01E000000000001A055690D9DB80001]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "-35184372088833", "20")
+ self.bid128_to_int64_xrninta("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "-35184372088833", "20")
+ self.bid128_to_int64_xrninta("0", "[B02000000000000029A2241AF62BFFFF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B02000000000000029A2241AF62C0000]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B02000000000000029A2241AF62C0001]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "-35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[B020000470DE4DF82000000000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xrninta("0", "[B020000470DE4DF82000000000000001]", "-35184372088832", "20")
+ self.bid128_to_int64_xrninta("0", "[B02000FC6F7C4045813459C637E07FFF]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B02000FC6F7C4045813459C637E08000]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B02000FC6F7C4045813459C637E08001]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B02000FC6F7C40458157E0B8A7A18000]", "-2000000000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[B02000FC6F7C40458157E0B8A7A18001]", "-2000000000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[B02200193E5939A08CE4879688D63FFF]", "-1999999999999998", "20")
+ self.bid128_to_int64_xrninta("0", "[B02200193E5939A08CE4879688D64000]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B02200193E5939A08CE4879688D64001]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B02200193E5939A08CE815152D9CBFFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B02200193E5939A08CE815152D9CC000]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B02200193E5939A08CE815152D9CC001]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[b023be33aaee97a4,784b5edf879d5f3a]", "-9050048220408998460", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "-9223372036854775806", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF52633FFFFFFAABC208D64000]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF52633FFFFFFAABC208D64001]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF52633FFFFFFC72815B398000]", "-9223372036854775807", "00")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF52633FFFFFFC72815B398001]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF526340000000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF526340000000000000000001]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF526340000001C6BF52633FFF]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF526340000001C6BF52634000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF526340000001C6BF52634001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF5263400000038D7EA4C67FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF5263400000038D7EA4C68000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B023C6BF5263400000038D7EA4C68001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B024000000000000006A94D74F42FFFF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B024000000000000006A94D74F430000]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B024000000000000006A94D74F430001]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[b024308fac71eb5a,79c77e013f467164]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B024314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B024314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B024314DC6448D9338C18883883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B024314DC6448D9338C18883883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B024314DC6448D9338C18883883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B02449F4A966D45CD522088F00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B02449F4A966D45CD522088F00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A40000000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A40000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A400000002D79883D1FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A400000002D79883D2000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A400000002D79883D2001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A400000005AF3107A3FFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A400000005AF3107A4000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0245AF3107A400000005AF3107A4001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B024629B8C891B267182B613FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B024629B8C891B267182B61400000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B024629B8C891B267182B61400000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0247B426FAB61F00DE3639900000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0247B426FAB61F00DE3639900000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B026314DC6448D9338C15B0A00000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B026314DC6448D9338C15B0A00000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B02A00000000006C6B935B68D08DA3FF]", "-19999999998", "20")
+ self.bid128_to_int64_xrninta("0", "[B02A00000000006C6B935B68D08DA400]", "-19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B02A00000000006C6B935B68D08DA401]", "-19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B02A00000000006C6B935B8019048BFF]", "-19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B02A00000000006C6B935B8019048C00]", "-20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B02A00000000006C6B935B8019048C01]", "-20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C000000000000000002BBA7F521FF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C000000000000000002BBA7F52200]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C000000000000000002BBA7F52201]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C00000000000AD78EBC5872141BFF]", "-19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C00000000000AD78EBC5872141C00]", "-19999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[B02C00000000000AD78EBC5872141C01]", "-19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C00000000000AD78EBC5BF025F1FF]", "-20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C00000000000AD78EBC5BF025F200]", "-20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C00000000000AD78EBC5BF025F201]", "-20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C00000000000AD78EBC5E4431D5FF]", "-20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C00000000000AD78EBC5E4431D600]", "-20000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C00000000000AD78EBC5E4431D601]", "-20000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C000000108B2A2C28028E3FF41BFF]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B02C000000108B2A2C28028E3FF41C00]", "-1999999999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[B02C000000108B2A2C28028E3FF41C01]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B02E000000000001158E46094F6AC9FF]", "-20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B02E000000000001158E46094F6ACA00]", "-20000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[B02E000000000001158E46094F6ACA01]", "-20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B02E00000001A784379D99DB7D9AC9FF]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B02E00000001A784379D99DB7D9ACA00]", "-2000000000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[B02E00000001A784379D99DB7D9ACA01]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B03000000000000000000006FC23ABFF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B03000000000000000000006FC23AC00]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B03000000000000000000006FC23AC01]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B03200000000000000000000B2D05DFF]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B03200000000000000000000B2D05E00]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B03200000000000000000000B2D05E01]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B03800000000000000000000002DDA47]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B03800000000000000000000002DDA48]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B03800000000000000000000002DDA49]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B03A00000000000000000000000003E7]", "-1", "20")
+ self.bid128_to_int64_xrninta("0", "[B03A00000000000000000000000495D3]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B03A00000000000000000000000495D4]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B03A00000000000000000000000495D5]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B03C0000000000000000000000007561]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B03C0000000000000000000000007562]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B03C0000000000000000000000007563]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000000000000000000005]", "-1", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E000000000000000000000000000F]", "-2", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000000000000000000BB7]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000000000000000000BB8]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000000000000000000BB9]", "-300", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000000000000000000BBD]", "-301", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000000000002E90EDCFF1]", "-19999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000000000002E90EDCFFB]", "-20000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000000000002E90EDD005]", "-20000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000000000002E90EDD00F]", "-20000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000000001400000000005]", "-35184372088833", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E00000000000000470DE4DF81FFF1]", "-1999999999999999", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E00000000000000470DE4DF81FFFB]", "-2000000000000000", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E00000000000000470DE4DF820005]", "-2000000000000001", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E00000000000000470DE4DF82000F]", "-2000000000000002", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "-9223372036854775807", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "-9223372036854775808", "20")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000050000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B03E0000000000056BC75E2D63100005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B03E00000000000A0000000000000005]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0400000000000000000000000000001]", "-1", "00")
+ self.bid128_to_int64_xrninta("0", "[B040000000000000000000000000012B]", "-299", "00")
+ self.bid128_to_int64_xrninta("0", "[B040000000000000000000000000012C]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B040000000000000000000000000012D]", "-301", "00")
+ self.bid128_to_int64_xrninta("0", "[B04000000000000000000004A817C7FF]", "-19999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[B04000000000000000000004A817C801]", "-20000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[B0400000000000000000200000000000]", "-35184372088832", "00")
+ self.bid128_to_int64_xrninta("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[B04000000000000000071AFD498CFFFF]", "-1999999999999999", "00")
+ self.bid128_to_int64_xrninta("0", "[B04000000000000000071AFD498D0000]", "-2000000000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[B04000000000000000071AFD498D0001]", "-2000000000000001", "00")
+ self.bid128_to_int64_xrninta("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "-9223372036854775807", "00")
+ self.bid128_to_int64_xrninta("0", "[B0400000000000008000000000000000]", "-9223372036854775808", "00")
+ self.bid128_to_int64_xrninta("0", "[B0400000000000008000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0400000000000010000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0400000000000010000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B042000000000000000000000000001D]", "-290", "00")
+ self.bid128_to_int64_xrninta("0", "[B042000000000000000000000000001E]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B042000000000000000000000000001F]", "-310", "00")
+ self.bid128_to_int64_xrninta("0", "[B04200000000000000000000773593FF]", "-19999999990", "00")
+ self.bid128_to_int64_xrninta("0", "[B0420000000000000000000077359400]", "-20000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[B0420000000000000000000077359401]", "-20000000010", "00")
+ self.bid128_to_int64_xrninta("0", "[B0440000000000000000000000000003]", "-300", "00")
+ self.bid128_to_int64_xrninta("0", "[B0520000000000000000000000000004]", "-4000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[B0520000000000000000000000000005]", "-5000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[B0540000000000000000000000000002]", "-20000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[B05E0000000000000000000000000002]", "-2000000000000000", "00")
+ self.bid128_to_int64_xrninta("0", "[B064000000000000000000000000000F]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0640000000000000000000000000019]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0660000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0660000000000000000000000000002]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[B0680000000000000000000000000001]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[b11a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "[b52c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "[b800000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "[bfd2912ade848dbe,e8f57deca7c2a82d]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[c7c48934d84c9cad,a046b9cff153505c]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[da3cd151b9d193bb,0a1cbb21ba04d44f]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[e084442273e02053,37fd7ada99ef7e2b]", "0", "00")
+ self.bid128_to_int64_xrninta("0", "[f800000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[fa4e3c7b527f3fe7,7fefffef6fff2dfb]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "[fefffdfddffdff6f,1100029502004780]", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "QNaN", "-9223372036854775808", "01")
+ self.bid128_to_int64_xrninta("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_int64_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int64 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int8_ceil() {
+ self.bid128_to_int8_ceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_to_int8_ceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int8_ceil("0", "1.0", "1", "00")
+ self.bid128_to_int8_ceil("0", "1073741824", "-128", "01")
+ self.bid128_to_int8_ceil("0", "-1", "-1", "00")
+ self.bid128_to_int8_ceil("0", "1", "1", "00")
+ self.bid128_to_int8_ceil("0", "129", "-128", "01")
+ self.bid128_to_int8_ceil("0", "2147483648", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_int8_ceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int8_ceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int8_ceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int8_ceil("0", "[30023E5E8B72E12C27CBA28640000000]", "127", "00")
+ self.bid128_to_int8_ceil("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_int8_ceil("0", "[30023EDCC331014EE85CEDACC0000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30023F1BDF10116048A5934000000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30023F5AFAEF2171A8EE38D340000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30023F9A16CE31830936DE6680000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30027DB98662029DD0B9DB5980000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30027DF8A24112AF310280ECC0000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30027E37BE2022C0914B268000000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30027E76D9FF32D1F193CC1340000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30027EB5F5DE42E351DC71A680000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[300293E952CDA8B9AA44111E00000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[300294286EACB8CB0A8CB6B140000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int8_ceil("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_int8_ceil("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int8_ceil("0", "[303E00000000000000000000000004F1]", "127", "00")
+ self.bid128_to_int8_ceil("0", "[303E00000000000000000000000004FB]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[303E0000000000000000000000000505]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[303E00000000000000000000000009FB]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[303E0000000000000000000000000A05]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[303E0000000000000000000000000BBD]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int8_ceil("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_int8_ceil("0", "[30400000000000000000000000000080]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30400000000000000000000000000081]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[304000000000000000000000000000FF]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30400000000000000000000000000100]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[30400000000000000000000000000101]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int8_ceil("0", "[30440000000000000000000000000003]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "5.05", "6", "00")
+ self.bid128_to_int8_ceil("0", "5.5", "6", "00")
+ self.bid128_to_int8_ceil("0", "[78000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[7c000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[7c003fffffffffff38c15b08ffffffff]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[7c003fffffffffff38c15b0affffffff]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "[7e000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_ceil("0", "-9", "-9", "00")
+ self.bid128_to_int8_ceil("0", "[a974f1e9d0a56083,0197e1f74a677259]", "0", "00")
+ }
+
+ private func bid128_to_int8_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int8_floor() {
+ self.bid128_to_int8_floor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int8_floor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int8_floor("0", "1.0", "1", "00")
+ self.bid128_to_int8_floor("0", "1073741824", "-128", "01")
+ self.bid128_to_int8_floor("0", "-1", "-1", "00")
+ self.bid128_to_int8_floor("0", "1", "1", "00")
+ self.bid128_to_int8_floor("0", "129", "-128", "01")
+ self.bid128_to_int8_floor("0", "2147483648", "-128", "01")
+ self.bid128_to_int8_floor("0", "[2e68370cb6e33fa0,f8dd8e56cf5e0c8a]", "0", "00")
+ self.bid128_to_int8_floor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int8_floor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int8_floor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int8_floor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_int8_floor("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "00")
+ self.bid128_to_int8_floor("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_int8_floor("0", "[30023EDCC331014EE85CEDACC0000000]", "127", "00")
+ self.bid128_to_int8_floor("0", "[30023F1BDF10116048A5934000000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[30023F5AFAEF2171A8EE38D340000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[30023F9A16CE31830936DE6680000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[30027DB98662029DD0B9DB5980000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[30027DF8A24112AF310280ECC0000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[30027E37BE2022C0914B268000000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[30027E76D9FF32D1F193CC1340000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[30027EB5F5DE42E351DC71A680000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[300293E952CDA8B9AA44111E00000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[300294286EACB8CB0A8CB6B140000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int8_floor("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int8_floor("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_int8_floor("0", "[303E00000000000000000000000004F1]", "126", "00")
+ self.bid128_to_int8_floor("0", "[303E00000000000000000000000004FB]", "127", "00")
+ self.bid128_to_int8_floor("0", "[303E0000000000000000000000000505]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[303E00000000000000000000000009FB]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[303E0000000000000000000000000A05]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[303E0000000000000000000000000BBD]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int8_floor("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_int8_floor("0", "[30400000000000000000000000000080]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[30400000000000000000000000000081]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[304000000000000000000000000000FF]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[30400000000000000000000000000100]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[30400000000000000000000000000101]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int8_floor("0", "[30440000000000000000000000000003]", "-128", "01")
+ self.bid128_to_int8_floor("0", "5.05", "5", "00")
+ self.bid128_to_int8_floor("0", "5.5", "5", "00")
+ self.bid128_to_int8_floor("0", "[78000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[7c000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[7c003fffffffffff38c15b08ffffffff]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[7c003fffffffffff38c15b0affffffff]", "-128", "01")
+ self.bid128_to_int8_floor("0", "[7e000000000000000000000000000000]", "-128", "01")
+ }
+
+ private func bid128_to_int8_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int8_int() {
+ self.bid128_to_int8_int("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int8_int("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int8_int("0", "1.0", "1", "00")
+ self.bid128_to_int8_int("0", "1073741824", "-128", "01")
+ self.bid128_to_int8_int("0", "-1", "-1", "00")
+ self.bid128_to_int8_int("0", "1", "1", "00")
+ self.bid128_to_int8_int("0", "129", "-128", "01")
+ self.bid128_to_int8_int("0", "2147483648", "-128", "01")
+ self.bid128_to_int8_int("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int8_int("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_int8_int("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int8_int("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_int8_int("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "00")
+ self.bid128_to_int8_int("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_int8_int("0", "[30023EDCC331014EE85CEDACC0000000]", "127", "00")
+ self.bid128_to_int8_int("0", "[30023F1BDF10116048A5934000000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[30023F5AFAEF2171A8EE38D340000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[30023F9A16CE31830936DE6680000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[30027DB98662029DD0B9DB5980000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[30027DF8A24112AF310280ECC0000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[30027E37BE2022C0914B268000000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[30027E76D9FF32D1F193CC1340000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[30027EB5F5DE42E351DC71A680000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[300293E952CDA8B9AA44111E00000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[300294286EACB8CB0A8CB6B140000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_int8_int("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int8_int("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_int8_int("0", "[303E00000000000000000000000004F1]", "126", "00")
+ self.bid128_to_int8_int("0", "[303E00000000000000000000000004FB]", "127", "00")
+ self.bid128_to_int8_int("0", "[303E0000000000000000000000000505]", "-128", "01")
+ self.bid128_to_int8_int("0", "[303E00000000000000000000000009FB]", "-128", "01")
+ self.bid128_to_int8_int("0", "[303E0000000000000000000000000A05]", "-128", "01")
+ self.bid128_to_int8_int("0", "[303E0000000000000000000000000BBD]", "-128", "01")
+ self.bid128_to_int8_int("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int8_int("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_int8_int("0", "[30400000000000000000000000000080]", "-128", "01")
+ self.bid128_to_int8_int("0", "[30400000000000000000000000000081]", "-128", "01")
+ self.bid128_to_int8_int("0", "[304000000000000000000000000000FF]", "-128", "01")
+ self.bid128_to_int8_int("0", "[30400000000000000000000000000100]", "-128", "01")
+ self.bid128_to_int8_int("0", "[30400000000000000000000000000101]", "-128", "01")
+ self.bid128_to_int8_int("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int8_int("0", "[30440000000000000000000000000003]", "-128", "01")
+ self.bid128_to_int8_int("0", "5.5", "5", "00")
+ self.bid128_to_int8_int("0", "[78000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[7c000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "[7c003fffffffffff38c15b08ffffffff]", "-128", "01")
+ self.bid128_to_int8_int("0", "[7c003fffffffffff38c15b0affffffff]", "-128", "01")
+ self.bid128_to_int8_int("0", "[7e000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_int("0", "-9", "-9", "00")
+ self.bid128_to_int8_int("0", "[a5e693bf97361840,1d52284c1e8d682a]", "0", "00")
+ }
+
+ private func bid128_to_int8_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int8_rnint() {
+ self.bid128_to_int8_rnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int8_rnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int8_rnint("0", "0.5", "0", "00")
+ self.bid128_to_int8_rnint("0", "1073741824", "-128", "01")
+ self.bid128_to_int8_rnint("0", "-1", "-1", "00")
+ self.bid128_to_int8_rnint("0", "129", "-128", "01")
+ self.bid128_to_int8_rnint("0", "2147483648", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_int8_rnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int8_rnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int8_rnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int8_rnint("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "00")
+ self.bid128_to_int8_rnint("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_int8_rnint("0", "[30023EDCC331014EE85CEDACC0000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30023F1BDF10116048A5934000000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30023F5AFAEF2171A8EE38D340000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30023F9A16CE31830936DE6680000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30027DB98662029DD0B9DB5980000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30027DF8A24112AF310280ECC0000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30027E37BE2022C0914B268000000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30027E76D9FF32D1F193CC1340000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30027EB5F5DE42E351DC71A680000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[300293E952CDA8B9AA44111E00000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[300294286EACB8CB0A8CB6B140000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int8_rnint("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_int8_rnint("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int8_rnint("0", "[303E00000000000000000000000004F1]", "126", "00")
+ self.bid128_to_int8_rnint("0", "[303E00000000000000000000000004FB]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[303E0000000000000000000000000505]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[303E00000000000000000000000009FB]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[303E0000000000000000000000000A05]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[303E0000000000000000000000000BBD]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int8_rnint("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_int8_rnint("0", "[30400000000000000000000000000080]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30400000000000000000000000000081]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[304000000000000000000000000000FF]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30400000000000000000000000000100]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[30400000000000000000000000000101]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int8_rnint("0", "[30440000000000000000000000000003]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "5.5", "6", "00")
+ self.bid128_to_int8_rnint("0", "[78000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[7c000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[7c003fffffffffff38c15b08ffffffff]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[7c003fffffffffff38c15b0affffffff]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[7e000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "-9", "-9", "00")
+ self.bid128_to_int8_rnint("0", "[b01a0000a0200401,ce872a3e9f5a5cfe]", "-128", "01")
+ self.bid128_to_int8_rnint("0", "[be7b3d7bafd8fde7,109882144099050a]", "-128", "01")
+ }
+
+ private func bid128_to_int8_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int8_rninta() {
+ self.bid128_to_int8_rninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_int8_rninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int8_rninta("0", "0.1", "0", "00")
+ self.bid128_to_int8_rninta("0", "0.5", "1", "00")
+ self.bid128_to_int8_rninta("0", "-1", "-1", "00")
+ self.bid128_to_int8_rninta("0", "1", "1", "00")
+ self.bid128_to_int8_rninta("0", "129", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[1c40400019043020,6d8068bdf4991309]", "0", "00")
+ self.bid128_to_int8_rninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_int8_rninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_int8_rninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int8_rninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_int8_rninta("0", "[30023E5E8B72E12C27CBA28640000000]", "127", "00")
+ self.bid128_to_int8_rninta("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_int8_rninta("0", "[30023EDCC331014EE85CEDACC0000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30023F1BDF10116048A5934000000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30023F5AFAEF2171A8EE38D340000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30023F9A16CE31830936DE6680000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30027DB98662029DD0B9DB5980000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30027DF8A24112AF310280ECC0000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30027E37BE2022C0914B268000000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30027E76D9FF32D1F193CC1340000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30027EB5F5DE42E351DC71A680000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[300293E952CDA8B9AA44111E00000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[300294286EACB8CB0A8CB6B140000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_int8_rninta("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_int8_rninta("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_int8_rninta("0", "[303E00000000000000000000000004F1]", "127", "00")
+ self.bid128_to_int8_rninta("0", "[303E00000000000000000000000004FB]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[303E0000000000000000000000000505]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[303E00000000000000000000000009FB]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[303E0000000000000000000000000A05]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[303E0000000000000000000000000BBD]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int8_rninta("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_int8_rninta("0", "[30400000000000000000000000000080]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30400000000000000000000000000081]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[304000000000000000000000000000FF]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30400000000000000000000000000100]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[30400000000000000000000000000101]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int8_rninta("0", "[30440000000000000000000000000003]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[78000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[7c000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[7c003fffffffffff38c15b08ffffffff]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[7c003fffffffffff38c15b0affffffff]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "[7e000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_rninta("0", "-9", "-9", "00")
+ }
+
+ private func bid128_to_int8_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int8_xceil() {
+ self.bid128_to_int8_xceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "20")
+ self.bid128_to_int8_xceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int8_xceil("0", "1.0", "1", "00")
+ self.bid128_to_int8_xceil("0", "1073741824", "-128", "01")
+ self.bid128_to_int8_xceil("0", "-1", "-1", "00")
+ self.bid128_to_int8_xceil("0", "1", "1", "00")
+ self.bid128_to_int8_xceil("0", "129", "-128", "01")
+ self.bid128_to_int8_xceil("0", "2147483648", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_int8_xceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int8_xceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int8_xceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int8_xceil("0", "[30023E5E8B72E12C27CBA28640000000]", "127", "20")
+ self.bid128_to_int8_xceil("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_int8_xceil("0", "[30023EDCC331014EE85CEDACC0000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30023F1BDF10116048A5934000000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30023F5AFAEF2171A8EE38D340000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30023F9A16CE31830936DE6680000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30027DB98662029DD0B9DB5980000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30027DF8A24112AF310280ECC0000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30027E37BE2022C0914B268000000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30027E76D9FF32D1F193CC1340000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30027EB5F5DE42E351DC71A680000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[300293E952CDA8B9AA44111E00000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[300294286EACB8CB0A8CB6B140000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int8_xceil("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_int8_xceil("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int8_xceil("0", "[303E00000000000000000000000004F1]", "127", "20")
+ self.bid128_to_int8_xceil("0", "[303E00000000000000000000000004FB]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[303E0000000000000000000000000505]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[303E00000000000000000000000009FB]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[303E0000000000000000000000000A05]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[303E0000000000000000000000000BBD]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int8_xceil("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_int8_xceil("0", "[30400000000000000000000000000080]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30400000000000000000000000000081]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[304000000000000000000000000000FF]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30400000000000000000000000000100]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[30400000000000000000000000000101]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int8_xceil("0", "[30440000000000000000000000000003]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "5.05", "6", "20")
+ self.bid128_to_int8_xceil("0", "5.5", "6", "20")
+ self.bid128_to_int8_xceil("0", "[78000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[7c000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[7c003fffffffffff38c15b08ffffffff]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[7c003fffffffffff38c15b0affffffff]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "[7e000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xceil("0", "-9", "-9", "00")
+ self.bid128_to_int8_xceil("0", "[fd1d31281cc040a0,9b0f6cfc9cf78422]", "-128", "01")
+ }
+
+ private func bid128_to_int8_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int8_xfloor() {
+ self.bid128_to_int8_xfloor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int8_xfloor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int8_xfloor("0", "1.0", "1", "00")
+ self.bid128_to_int8_xfloor("0", "1073741824", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "-1", "-1", "00")
+ self.bid128_to_int8_xfloor("0", "1", "1", "00")
+ self.bid128_to_int8_xfloor("0", "129", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "2147483648", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int8_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int8_xfloor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int8_xfloor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_int8_xfloor("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "20")
+ self.bid128_to_int8_xfloor("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_int8_xfloor("0", "[30023EDCC331014EE85CEDACC0000000]", "127", "20")
+ self.bid128_to_int8_xfloor("0", "[30023F1BDF10116048A5934000000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[30023F5AFAEF2171A8EE38D340000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[30023F9A16CE31830936DE6680000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[30027DB98662029DD0B9DB5980000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[30027DF8A24112AF310280ECC0000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[30027E37BE2022C0914B268000000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[30027E76D9FF32D1F193CC1340000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[30027EB5F5DE42E351DC71A680000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[300293E952CDA8B9AA44111E00000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[300294286EACB8CB0A8CB6B140000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int8_xfloor("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int8_xfloor("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_int8_xfloor("0", "[303E00000000000000000000000004F1]", "126", "20")
+ self.bid128_to_int8_xfloor("0", "[303E00000000000000000000000004FB]", "127", "20")
+ self.bid128_to_int8_xfloor("0", "[303E0000000000000000000000000505]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[303E00000000000000000000000009FB]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[303E0000000000000000000000000A05]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[303E0000000000000000000000000BBD]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int8_xfloor("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_int8_xfloor("0", "[30400000000000000000000000000080]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[30400000000000000000000000000081]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[304000000000000000000000000000FF]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[30400000000000000000000000000100]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[30400000000000000000000000000101]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int8_xfloor("0", "[30440000000000000000000000000003]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[441cf160335eb5b1,5734b54721399213]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "5.05", "5", "20")
+ self.bid128_to_int8_xfloor("0", "5.5", "5", "20")
+ self.bid128_to_int8_xfloor("0", "[78000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[7c000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[7c003fffffffffff38c15b08ffffffff]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[7c003fffffffffff38c15b0affffffff]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "[7e000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xfloor("0", "-9", "-9", "00")
+ }
+
+ private func bid128_to_int8_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int8_xint() {
+ self.bid128_to_int8_xint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int8_xint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int8_xint("0", "1.0", "1", "00")
+ self.bid128_to_int8_xint("0", "1073741824", "-128", "01")
+ self.bid128_to_int8_xint("0", "-1", "-1", "00")
+ self.bid128_to_int8_xint("0", "1", "1", "00")
+ self.bid128_to_int8_xint("0", "129", "-128", "01")
+ self.bid128_to_int8_xint("0", "2147483648", "-128", "01")
+ self.bid128_to_int8_xint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int8_xint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_int8_xint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int8_xint("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_int8_xint("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "20")
+ self.bid128_to_int8_xint("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_int8_xint("0", "[30023EDCC331014EE85CEDACC0000000]", "127", "20")
+ self.bid128_to_int8_xint("0", "[30023F1BDF10116048A5934000000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[30023F5AFAEF2171A8EE38D340000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[30023F9A16CE31830936DE6680000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[30027DB98662029DD0B9DB5980000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[30027DF8A24112AF310280ECC0000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[30027E37BE2022C0914B268000000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[30027E76D9FF32D1F193CC1340000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[30027EB5F5DE42E351DC71A680000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[300293E952CDA8B9AA44111E00000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[300294286EACB8CB0A8CB6B140000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_int8_xint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int8_xint("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_int8_xint("0", "[303E00000000000000000000000004F1]", "126", "20")
+ self.bid128_to_int8_xint("0", "[303E00000000000000000000000004FB]", "127", "20")
+ self.bid128_to_int8_xint("0", "[303E0000000000000000000000000505]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[303E00000000000000000000000009FB]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[303E0000000000000000000000000A05]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[303E0000000000000000000000000BBD]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int8_xint("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_int8_xint("0", "[30400000000000000000000000000080]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[30400000000000000000000000000081]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[304000000000000000000000000000FF]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[30400000000000000000000000000100]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[30400000000000000000000000000101]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int8_xint("0", "[30440000000000000000000000000003]", "-128", "01")
+ self.bid128_to_int8_xint("0", "5.05", "5", "20")
+ self.bid128_to_int8_xint("0", "5.5", "5", "20")
+ self.bid128_to_int8_xint("0", "[78000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[7c000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[7c003fffffffffff38c15b08ffffffff]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[7c003fffffffffff38c15b0affffffff]", "-128", "01")
+ self.bid128_to_int8_xint("0", "[7e000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xint("0", "-9", "-9", "00")
+ self.bid128_to_int8_xint("0", "[eabafffbfdfdffff,fba404a3cfd9a5d9]", "0", "00")
+ }
+
+ private func bid128_to_int8_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int8_xrnint() {
+ self.bid128_to_int8_xrnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int8_xrnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int8_xrnint("0", "0.5", "0", "20")
+ self.bid128_to_int8_xrnint("0", "1.0", "1", "00")
+ self.bid128_to_int8_xrnint("0", "1073741824", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "-1", "-1", "00")
+ self.bid128_to_int8_xrnint("0", "1", "1", "00")
+ self.bid128_to_int8_xrnint("0", "129", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[15a1a020d9d08862,ffffffffffffffff]", "0", "20")
+ self.bid128_to_int8_xrnint("0", "2147483648", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_int8_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int8_xrnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int8_xrnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int8_xrnint("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "20")
+ self.bid128_to_int8_xrnint("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_int8_xrnint("0", "[30023EDCC331014EE85CEDACC0000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30023F1BDF10116048A5934000000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30023F5AFAEF2171A8EE38D340000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30023F9A16CE31830936DE6680000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30027DB98662029DD0B9DB5980000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30027DF8A24112AF310280ECC0000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30027E37BE2022C0914B268000000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30027E76D9FF32D1F193CC1340000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30027EB5F5DE42E351DC71A680000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[300293E952CDA8B9AA44111E00000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[300294286EACB8CB0A8CB6B140000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[301c000000000000,0820400401020001]", "1", "20")
+ self.bid128_to_int8_xrnint("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int8_xrnint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_int8_xrnint("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int8_xrnint("0", "[303E00000000000000000000000004F1]", "126", "20")
+ self.bid128_to_int8_xrnint("0", "[303E00000000000000000000000004FB]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[303E0000000000000000000000000505]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[303E00000000000000000000000009FB]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[303E0000000000000000000000000A05]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[303E0000000000000000000000000BBD]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int8_xrnint("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_int8_xrnint("0", "[30400000000000000000000000000080]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30400000000000000000000000000081]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[304000000000000000000000000000FF]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30400000000000000000000000000100]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[30400000000000000000000000000101]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int8_xrnint("0", "[30440000000000000000000000000003]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "5.05", "5", "20")
+ self.bid128_to_int8_xrnint("0", "5.5", "6", "20")
+ self.bid128_to_int8_xrnint("0", "[78000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[7c000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[7c003fffffffffff38c15b08ffffffff]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[7c003fffffffffff38c15b0affffffff]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "[7e000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xrnint("0", "-9", "-9", "00")
+ }
+
+ private func bid128_to_int8_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_int8_xrninta() {
+ self.bid128_to_int8_xrninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_int8_xrninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_int8_xrninta("0", "0.1", "0", "20")
+ self.bid128_to_int8_xrninta("0", "1.0", "1", "00")
+ self.bid128_to_int8_xrninta("0", "1073741824", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "-1", "-1", "00")
+ self.bid128_to_int8_xrninta("0", "1", "1", "00")
+ self.bid128_to_int8_xrninta("0", "129", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "2147483648", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_int8_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_int8_xrninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_int8_xrninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_int8_xrninta("0", "[30023E5E8B72E12C27CBA28640000000]", "127", "20")
+ self.bid128_to_int8_xrninta("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_int8_xrninta("0", "[30023EDCC331014EE85CEDACC0000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30023F1BDF10116048A5934000000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30023F5AFAEF2171A8EE38D340000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30023F9A16CE31830936DE6680000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30027DB98662029DD0B9DB5980000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30027DF8A24112AF310280ECC0000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30027E37BE2022C0914B268000000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30027E76D9FF32D1F193CC1340000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30027EB5F5DE42E351DC71A680000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[300293E952CDA8B9AA44111E00000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[300294286EACB8CB0A8CB6B140000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_int8_xrninta("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_int8_xrninta("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_int8_xrninta("0", "[303E00000000000000000000000004F1]", "127", "20")
+ self.bid128_to_int8_xrninta("0", "[303E00000000000000000000000004FB]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[303E0000000000000000000000000505]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[303E00000000000000000000000009FB]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[303E0000000000000000000000000A05]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[303E0000000000000000000000000BBD]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_int8_xrninta("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_int8_xrninta("0", "[30400000000000000000000000000080]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30400000000000000000000000000081]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[304000000000000000000000000000FF]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30400000000000000000000000000100]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[30400000000000000000000000000101]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_int8_xrninta("0", "[30440000000000000000000000000003]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "5.05", "5", "20")
+ self.bid128_to_int8_xrninta("0", "5.5", "6", "20")
+ self.bid128_to_int8_xrninta("0", "[75bbe59e0d56a987,4e8bdc104f2f5f39]", "0", "00")
+ self.bid128_to_int8_xrninta("0", "[78000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[7c000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[7c003fffffffffff38c15b08ffffffff]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[7c003fffffffffff38c15b0affffffff]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "[7e000000000000000000000000000000]", "-128", "01")
+ self.bid128_to_int8_xrninta("0", "-9", "-9", "00")
+ }
+
+ private func bid128_to_int8_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: Int8 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint16_ceil() {
+ self.bid128_to_uint16_ceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_to_uint16_ceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint16_ceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_uint16_ceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint16_ceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint16_ceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint16_ceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint16_ceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_uint16_ceil("0", "[3006A18D232A1F3367BA2C5010000000]", "32767", "00")
+ self.bid128_to_uint16_ceil("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_uint16_ceil("0", "[3006A18E66482EE1D52C441AB0000000]", "32768", "00")
+ self.bid128_to_uint16_ceil("0", "[3006A18F07D736B90BE5500000000000]", "32768", "00")
+ self.bid128_to_uint16_ceil("0", "[3006A18FA9663E90429E5BE550000000]", "32769", "00")
+ self.bid128_to_uint16_ceil("0", "[3006A1904AF54667795767CAA0000000]", "32769", "00")
+ self.bid128_to_uint16_ceil("0", "[3007431CCC905DC3AA58883560000000]", "65535", "00")
+ self.bid128_to_uint16_ceil("0", "[3007431D6E1F659AE111941AB0000000]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[3007431E0FAE6D7217CAA00000000000]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[3007431EB13D75494E83ABE550000000]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[3007431F52CC7D20853CB7CAA0000000]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint16_ceil("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_uint16_ceil("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint16_ceil("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_uint16_ceil("0", "[303E000000000000000000000004FFF1]", "32767", "00")
+ self.bid128_to_uint16_ceil("0", "[303E000000000000000000000004FFFB]", "32768", "00")
+ self.bid128_to_uint16_ceil("0", "[303E0000000000000000000000050005]", "32769", "00")
+ self.bid128_to_uint16_ceil("0", "[303E000000000000000000000009FFFB]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[303E00000000000000000000000A0005]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint16_ceil("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_uint16_ceil("0", "[30400000000000000000000000008000]", "32768", "00")
+ self.bid128_to_uint16_ceil("0", "[30400000000000000000000000008001]", "32769", "00")
+ self.bid128_to_uint16_ceil("0", "[3040000000000000000000000000FFFF]", "65535", "00")
+ self.bid128_to_uint16_ceil("0", "[30400000000000000000000000010000]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[30400000000000000000000000010001]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint16_ceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint16_ceil("0", "65536", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[78000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[7c000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[7c003fffffffffff38c15b08ffffffff]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[7c003fffffffffff38c15b0affffffff]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[7e000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_ceil("0", "[ae9736082b5a4b32,f18b74561c108f90]", "0", "00")
+ }
+
+ private func bid128_to_uint16_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint16_floor() {
+ self.bid128_to_uint16_floor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint16_floor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint16_floor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint16_floor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint16_floor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint16_floor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_uint16_floor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint16_floor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_uint16_floor("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "00")
+ self.bid128_to_uint16_floor("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_uint16_floor("0", "[3006A18E66482EE1D52C441AB0000000]", "32767", "00")
+ self.bid128_to_uint16_floor("0", "[3006A18F07D736B90BE5500000000000]", "32768", "00")
+ self.bid128_to_uint16_floor("0", "[3006A18FA9663E90429E5BE550000000]", "32768", "00")
+ self.bid128_to_uint16_floor("0", "[3006A1904AF54667795767CAA0000000]", "32769", "00")
+ self.bid128_to_uint16_floor("0", "[3007431CCC905DC3AA58883560000000]", "65535", "00")
+ self.bid128_to_uint16_floor("0", "[3007431D6E1F659AE111941AB0000000]", "65535", "00")
+ self.bid128_to_uint16_floor("0", "[3007431E0FAE6D7217CAA00000000000]", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[3007431EB13D75494E83ABE550000000]", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[3007431F52CC7D20853CB7CAA0000000]", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint16_floor("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint16_floor("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_uint16_floor("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_uint16_floor("0", "[303E000000000000000000000004FFF1]", "32766", "00")
+ self.bid128_to_uint16_floor("0", "[303E000000000000000000000004FFFB]", "32767", "00")
+ self.bid128_to_uint16_floor("0", "[303E0000000000000000000000050005]", "32768", "00")
+ self.bid128_to_uint16_floor("0", "[303E000000000000000000000009FFFB]", "65535", "00")
+ self.bid128_to_uint16_floor("0", "[303E00000000000000000000000A0005]", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint16_floor("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_uint16_floor("0", "[30400000000000000000000000008000]", "32768", "00")
+ self.bid128_to_uint16_floor("0", "[30400000000000000000000000008001]", "32769", "00")
+ self.bid128_to_uint16_floor("0", "[3040000000000000000000000000FFFF]", "65535", "00")
+ self.bid128_to_uint16_floor("0", "[30400000000000000000000000010000]", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[30400000000000000000000000010001]", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint16_floor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint16_floor("0", "65536", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[78000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[7c000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[7c003fffffffffff38c15b08ffffffff]", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[7c003fffffffffff38c15b0affffffff]", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[7e000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_floor("0", "[946ca2de83116bd2,aa1d1219033d6b30]", "32768", "01")
+ }
+
+ private func bid128_to_uint16_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint16_int() {
+ self.bid128_to_uint16_int("0", "[0000000000000000,ff3bfffffefedf1b]", "0", "00")
+ self.bid128_to_uint16_int("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint16_int("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint16_int("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint16_int("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint16_int("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint16_int("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_uint16_int("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint16_int("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_uint16_int("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "00")
+ self.bid128_to_uint16_int("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_uint16_int("0", "[3006A18E66482EE1D52C441AB0000000]", "32767", "00")
+ self.bid128_to_uint16_int("0", "[3006A18F07D736B90BE5500000000000]", "32768", "00")
+ self.bid128_to_uint16_int("0", "[3006A18FA9663E90429E5BE550000000]", "32768", "00")
+ self.bid128_to_uint16_int("0", "[3006A1904AF54667795767CAA0000000]", "32769", "00")
+ self.bid128_to_uint16_int("0", "[3007431CCC905DC3AA58883560000000]", "65535", "00")
+ self.bid128_to_uint16_int("0", "[3007431D6E1F659AE111941AB0000000]", "65535", "00")
+ self.bid128_to_uint16_int("0", "[3007431E0FAE6D7217CAA00000000000]", "32768", "01")
+ self.bid128_to_uint16_int("0", "[3007431EB13D75494E83ABE550000000]", "32768", "01")
+ self.bid128_to_uint16_int("0", "[3007431F52CC7D20853CB7CAA0000000]", "32768", "01")
+ self.bid128_to_uint16_int("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint16_int("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint16_int("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_uint16_int("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_uint16_int("0", "[303E000000000000000000000004FFF1]", "32766", "00")
+ self.bid128_to_uint16_int("0", "[303E000000000000000000000004FFFB]", "32767", "00")
+ self.bid128_to_uint16_int("0", "[303E0000000000000000000000050005]", "32768", "00")
+ self.bid128_to_uint16_int("0", "[303E000000000000000000000009FFFB]", "65535", "00")
+ self.bid128_to_uint16_int("0", "[303E00000000000000000000000A0005]", "32768", "01")
+ self.bid128_to_uint16_int("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint16_int("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_uint16_int("0", "[30400000000000000000000000008000]", "32768", "00")
+ self.bid128_to_uint16_int("0", "[30400000000000000000000000008001]", "32769", "00")
+ self.bid128_to_uint16_int("0", "[3040000000000000000000000000FFFF]", "65535", "00")
+ self.bid128_to_uint16_int("0", "[30400000000000000000000000010000]", "32768", "01")
+ self.bid128_to_uint16_int("0", "[30400000000000000000000000010001]", "32768", "01")
+ self.bid128_to_uint16_int("0", "[3040000000000000,0000000100100022]", "32768", "01")
+ self.bid128_to_uint16_int("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint16_int("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint16_int("0", "65536", "32768", "01")
+ self.bid128_to_uint16_int("0", "[78000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_int("0", "[7c000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_int("0", "[7c003fffffffffff38c15b08ffffffff]", "32768", "01")
+ self.bid128_to_uint16_int("0", "[7c003fffffffffff38c15b0affffffff]", "32768", "01")
+ self.bid128_to_uint16_int("0", "[7e000000000000000000000000000000]", "32768", "01")
+ }
+
+ private func bid128_to_uint16_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint16_rnint() {
+ self.bid128_to_uint16_rnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint16_rnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint16_rnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint16_rnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint16_rnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint16_rnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint16_rnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint16_rnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_uint16_rnint("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "00")
+ self.bid128_to_uint16_rnint("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_uint16_rnint("0", "[3006A18E66482EE1D52C441AB0000000]", "32768", "00")
+ self.bid128_to_uint16_rnint("0", "[3006A18F07D736B90BE5500000000000]", "32768", "00")
+ self.bid128_to_uint16_rnint("0", "[3006A18FA9663E90429E5BE550000000]", "32768", "00")
+ self.bid128_to_uint16_rnint("0", "[3006A1904AF54667795767CAA0000000]", "32769", "00")
+ self.bid128_to_uint16_rnint("0", "[3007431CCC905DC3AA58883560000000]", "65535", "00")
+ self.bid128_to_uint16_rnint("0", "[3007431D6E1F659AE111941AB0000000]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[3007431E0FAE6D7217CAA00000000000]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[3007431EB13D75494E83ABE550000000]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[3007431F52CC7D20853CB7CAA0000000]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[3020000000000000,0004000800000800]", "0", "00")
+ self.bid128_to_uint16_rnint("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint16_rnint("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint16_rnint("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint16_rnint("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_uint16_rnint("0", "[303E000000000000000000000004FFF1]", "32766", "00")
+ self.bid128_to_uint16_rnint("0", "[303E000000000000000000000004FFFB]", "32768", "00")
+ self.bid128_to_uint16_rnint("0", "[303E0000000000000000000000050005]", "32768", "00")
+ self.bid128_to_uint16_rnint("0", "[303E000000000000000000000009FFFB]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[303E00000000000000000000000A0005]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint16_rnint("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_uint16_rnint("0", "[30400000000000000000000000008000]", "32768", "00")
+ self.bid128_to_uint16_rnint("0", "[30400000000000000000000000008001]", "32769", "00")
+ self.bid128_to_uint16_rnint("0", "[3040000000000000000000000000FFFF]", "65535", "00")
+ self.bid128_to_uint16_rnint("0", "[30400000000000000000000000010000]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[30400000000000000000000000010001]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint16_rnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint16_rnint("0", "[6087088f9e17db42,7a6c6476f8a48ecd]", "0", "00")
+ self.bid128_to_uint16_rnint("0", "65536", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[78000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[7c000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[7c003fffffffffff38c15b08ffffffff]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[7c003fffffffffff38c15b0affffffff]", "32768", "01")
+ self.bid128_to_uint16_rnint("0", "[7e000000000000000000000000000000]", "32768", "01")
+ }
+
+ private func bid128_to_uint16_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint16_rninta() {
+ self.bid128_to_uint16_rninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint16_rninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint16_rninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_uint16_rninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint16_rninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint16_rninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint16_rninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint16_rninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_uint16_rninta("0", "[3006A18D232A1F3367BA2C5010000000]", "32767", "00")
+ self.bid128_to_uint16_rninta("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_uint16_rninta("0", "[3006A18E66482EE1D52C441AB0000000]", "32768", "00")
+ self.bid128_to_uint16_rninta("0", "[3006A18F07D736B90BE5500000000000]", "32768", "00")
+ self.bid128_to_uint16_rninta("0", "[3006A18FA9663E90429E5BE550000000]", "32769", "00")
+ self.bid128_to_uint16_rninta("0", "[3006A1904AF54667795767CAA0000000]", "32769", "00")
+ self.bid128_to_uint16_rninta("0", "[3007431CCC905DC3AA58883560000000]", "65535", "00")
+ self.bid128_to_uint16_rninta("0", "[3007431D6E1F659AE111941AB0000000]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[3007431E0FAE6D7217CAA00000000000]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[3007431EB13D75494E83ABE550000000]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[3007431F52CC7D20853CB7CAA0000000]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[3020000000000000,0018004c42002840]", "1", "00")
+ self.bid128_to_uint16_rninta("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint16_rninta("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_uint16_rninta("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint16_rninta("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_uint16_rninta("0", "[303E000000000000000000000004FFF1]", "32767", "00")
+ self.bid128_to_uint16_rninta("0", "[303E000000000000000000000004FFFB]", "32768", "00")
+ self.bid128_to_uint16_rninta("0", "[303E0000000000000000000000050005]", "32769", "00")
+ self.bid128_to_uint16_rninta("0", "[303E000000000000000000000009FFFB]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[303E00000000000000000000000A0005]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint16_rninta("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_uint16_rninta("0", "[30400000000000000000000000008000]", "32768", "00")
+ self.bid128_to_uint16_rninta("0", "[30400000000000000000000000008001]", "32769", "00")
+ self.bid128_to_uint16_rninta("0", "[3040000000000000000000000000FFFF]", "65535", "00")
+ self.bid128_to_uint16_rninta("0", "[30400000000000000000000000010000]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[30400000000000000000000000010001]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint16_rninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint16_rninta("0", "[47183973a40de7a8,477b16a400142056]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "65536", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[78000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[7c000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[7c003fffffffffff38c15b08ffffffff]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[7c003fffffffffff38c15b0affffffff]", "32768", "01")
+ self.bid128_to_uint16_rninta("0", "[7e000000000000000000000000000000]", "32768", "01")
+ }
+
+ private func bid128_to_uint16_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint16_xceil() {
+ self.bid128_to_uint16_xceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "20")
+ self.bid128_to_uint16_xceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint16_xceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_uint16_xceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint16_xceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint16_xceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint16_xceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint16_xceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_uint16_xceil("0", "[3006A18D232A1F3367BA2C5010000000]", "32767", "20")
+ self.bid128_to_uint16_xceil("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_uint16_xceil("0", "[3006A18E66482EE1D52C441AB0000000]", "32768", "20")
+ self.bid128_to_uint16_xceil("0", "[3006A18F07D736B90BE5500000000000]", "32768", "00")
+ self.bid128_to_uint16_xceil("0", "[3006A18FA9663E90429E5BE550000000]", "32769", "20")
+ self.bid128_to_uint16_xceil("0", "[3006A1904AF54667795767CAA0000000]", "32769", "00")
+ self.bid128_to_uint16_xceil("0", "[3007431CCC905DC3AA58883560000000]", "65535", "00")
+ self.bid128_to_uint16_xceil("0", "[3007431D6E1F659AE111941AB0000000]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[3007431E0FAE6D7217CAA00000000000]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[3007431EB13D75494E83ABE550000000]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[3007431F52CC7D20853CB7CAA0000000]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint16_xceil("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_uint16_xceil("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint16_xceil("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_uint16_xceil("0", "[303E000000000000000000000004FFF1]", "32767", "20")
+ self.bid128_to_uint16_xceil("0", "[303E000000000000000000000004FFFB]", "32768", "20")
+ self.bid128_to_uint16_xceil("0", "[303E0000000000000000000000050005]", "32769", "20")
+ self.bid128_to_uint16_xceil("0", "[303E000000000000000000000009FFFB]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[303E00000000000000000000000A0005]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint16_xceil("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_uint16_xceil("0", "[30400000000000000000000000008000]", "32768", "00")
+ self.bid128_to_uint16_xceil("0", "[30400000000000000000000000008001]", "32769", "00")
+ self.bid128_to_uint16_xceil("0", "[3040000000000000000000000000FFFF]", "65535", "00")
+ self.bid128_to_uint16_xceil("0", "[30400000000000000000000000010000]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[30400000000000000000000000010001]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint16_xceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint16_xceil("0", "[61f87ec63af736c5,d5f02c3ffaed3a87]", "0", "00")
+ self.bid128_to_uint16_xceil("0", "65536", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[78000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[7c000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[7c003fffffffffff38c15b08ffffffff]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[7c003fffffffffff38c15b0affffffff]", "32768", "01")
+ self.bid128_to_uint16_xceil("0", "[7e000000000000000000000000000000]", "32768", "01")
+ }
+
+ private func bid128_to_uint16_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint16_xfloor() {
+ self.bid128_to_uint16_xfloor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint16_xfloor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint16_xfloor("0", "[03057305b60a5765,40a762f89a3a1e27]", "0", "20")
+ self.bid128_to_uint16_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint16_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint16_xfloor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint16_xfloor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_uint16_xfloor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint16_xfloor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_uint16_xfloor("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "20")
+ self.bid128_to_uint16_xfloor("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_uint16_xfloor("0", "[3006A18E66482EE1D52C441AB0000000]", "32767", "20")
+ self.bid128_to_uint16_xfloor("0", "[3006A18F07D736B90BE5500000000000]", "32768", "00")
+ self.bid128_to_uint16_xfloor("0", "[3006A18FA9663E90429E5BE550000000]", "32768", "20")
+ self.bid128_to_uint16_xfloor("0", "[3006A1904AF54667795767CAA0000000]", "32769", "00")
+ self.bid128_to_uint16_xfloor("0", "[3007431CCC905DC3AA58883560000000]", "65535", "00")
+ self.bid128_to_uint16_xfloor("0", "[3007431D6E1F659AE111941AB0000000]", "65535", "20")
+ self.bid128_to_uint16_xfloor("0", "[3007431E0FAE6D7217CAA00000000000]", "32768", "01")
+ self.bid128_to_uint16_xfloor("0", "[3007431EB13D75494E83ABE550000000]", "32768", "01")
+ self.bid128_to_uint16_xfloor("0", "[3007431F52CC7D20853CB7CAA0000000]", "32768", "01")
+ self.bid128_to_uint16_xfloor("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint16_xfloor("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint16_xfloor("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_uint16_xfloor("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_uint16_xfloor("0", "[303E000000000000000000000004FFF1]", "32766", "20")
+ self.bid128_to_uint16_xfloor("0", "[303E000000000000000000000004FFFB]", "32767", "20")
+ self.bid128_to_uint16_xfloor("0", "[303E0000000000000000000000050005]", "32768", "20")
+ self.bid128_to_uint16_xfloor("0", "[303E000000000000000000000009FFFB]", "65535", "20")
+ self.bid128_to_uint16_xfloor("0", "[303E00000000000000000000000A0005]", "32768", "01")
+ self.bid128_to_uint16_xfloor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint16_xfloor("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_uint16_xfloor("0", "[30400000000000000000000000008000]", "32768", "00")
+ self.bid128_to_uint16_xfloor("0", "[30400000000000000000000000008001]", "32769", "00")
+ self.bid128_to_uint16_xfloor("0", "[3040000000000000000000000000FFFF]", "65535", "00")
+ self.bid128_to_uint16_xfloor("0", "[30400000000000000000000000010000]", "32768", "01")
+ self.bid128_to_uint16_xfloor("0", "[30400000000000000000000000010001]", "32768", "01")
+ self.bid128_to_uint16_xfloor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint16_xfloor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint16_xfloor("0", "65536", "32768", "01")
+ self.bid128_to_uint16_xfloor("0", "[78000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xfloor("0", "[7c000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xfloor("0", "[7c003fffffffffff38c15b08ffffffff]", "32768", "01")
+ self.bid128_to_uint16_xfloor("0", "[7c003fffffffffff38c15b0affffffff]", "32768", "01")
+ self.bid128_to_uint16_xfloor("0", "[7e000000000000000000000000000000]", "32768", "01")
+ }
+
+ private func bid128_to_uint16_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint16_xint() {
+ self.bid128_to_uint16_xint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint16_xint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint16_xint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint16_xint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint16_xint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint16_xint("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_uint16_xint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint16_xint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_uint16_xint("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "20")
+ self.bid128_to_uint16_xint("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_uint16_xint("0", "[3006A18E66482EE1D52C441AB0000000]", "32767", "20")
+ self.bid128_to_uint16_xint("0", "[3006A18F07D736B90BE5500000000000]", "32768", "00")
+ self.bid128_to_uint16_xint("0", "[3006A18FA9663E90429E5BE550000000]", "32768", "20")
+ self.bid128_to_uint16_xint("0", "[3006A1904AF54667795767CAA0000000]", "32769", "00")
+ self.bid128_to_uint16_xint("0", "[3007431CCC905DC3AA58883560000000]", "65535", "00")
+ self.bid128_to_uint16_xint("0", "[3007431D6E1F659AE111941AB0000000]", "65535", "20")
+ self.bid128_to_uint16_xint("0", "[3007431E0FAE6D7217CAA00000000000]", "32768", "01")
+ self.bid128_to_uint16_xint("0", "[3007431EB13D75494E83ABE550000000]", "32768", "01")
+ self.bid128_to_uint16_xint("0", "[3007431F52CC7D20853CB7CAA0000000]", "32768", "01")
+ self.bid128_to_uint16_xint("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint16_xint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint16_xint("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_uint16_xint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_uint16_xint("0", "[303E000000000000000000000004FFF1]", "32766", "20")
+ self.bid128_to_uint16_xint("0", "[303E000000000000000000000004FFFB]", "32767", "20")
+ self.bid128_to_uint16_xint("0", "[303E0000000000000000000000050005]", "32768", "20")
+ self.bid128_to_uint16_xint("0", "[303E000000000000000000000009FFFB]", "65535", "20")
+ self.bid128_to_uint16_xint("0", "[303E00000000000000000000000A0005]", "32768", "01")
+ self.bid128_to_uint16_xint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint16_xint("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_uint16_xint("0", "[30400000000000000000000000008000]", "32768", "00")
+ self.bid128_to_uint16_xint("0", "[30400000000000000000000000008001]", "32769", "00")
+ self.bid128_to_uint16_xint("0", "[3040000000000000000000000000FFFF]", "65535", "00")
+ self.bid128_to_uint16_xint("0", "[30400000000000000000000000010000]", "32768", "01")
+ self.bid128_to_uint16_xint("0", "[30400000000000000000000000010001]", "32768", "01")
+ self.bid128_to_uint16_xint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint16_xint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint16_xint("0", "[3892d5693a4f6805,c46df9d1bbe9c1c7]", "32768", "01")
+ self.bid128_to_uint16_xint("0", "65536", "32768", "01")
+ self.bid128_to_uint16_xint("0", "[78000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xint("0", "[7c000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xint("0", "[7c003fffffffffff38c15b08ffffffff]", "32768", "01")
+ self.bid128_to_uint16_xint("0", "[7c003fffffffffff38c15b0affffffff]", "32768", "01")
+ self.bid128_to_uint16_xint("0", "[7e000000000000000000000000000000]", "32768", "01")
+ }
+
+ private func bid128_to_uint16_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint16_xrnint() {
+ self.bid128_to_uint16_xrnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint16_xrnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint16_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint16_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint16_xrnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint16_xrnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint16_xrnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint16_xrnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_uint16_xrnint("0", "[3006A18D232A1F3367BA2C5010000000]", "32766", "20")
+ self.bid128_to_uint16_xrnint("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_uint16_xrnint("0", "[3006A18E66482EE1D52C441AB0000000]", "32768", "20")
+ self.bid128_to_uint16_xrnint("0", "[3006A18F07D736B90BE5500000000000]", "32768", "00")
+ self.bid128_to_uint16_xrnint("0", "[3006A18FA9663E90429E5BE550000000]", "32768", "20")
+ self.bid128_to_uint16_xrnint("0", "[3006A1904AF54667795767CAA0000000]", "32769", "00")
+ self.bid128_to_uint16_xrnint("0", "[3007431CCC905DC3AA58883560000000]", "65535", "00")
+ self.bid128_to_uint16_xrnint("0", "[3007431D6E1F659AE111941AB0000000]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[3007431E0FAE6D7217CAA00000000000]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[3007431EB13D75494E83ABE550000000]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[3007431F52CC7D20853CB7CAA0000000]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint16_xrnint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint16_xrnint("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint16_xrnint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_uint16_xrnint("0", "[303E000000000000000000000004FFF1]", "32766", "20")
+ self.bid128_to_uint16_xrnint("0", "[303E000000000000000000000004FFFB]", "32768", "20")
+ self.bid128_to_uint16_xrnint("0", "[303E0000000000000000000000050005]", "32768", "20")
+ self.bid128_to_uint16_xrnint("0", "[303E000000000000000000000009FFFB]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[303E00000000000000000000000A0005]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint16_xrnint("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_uint16_xrnint("0", "[30400000000000000000000000008000]", "32768", "00")
+ self.bid128_to_uint16_xrnint("0", "[30400000000000000000000000008001]", "32769", "00")
+ self.bid128_to_uint16_xrnint("0", "[3040000000000000000000000000FFFF]", "65535", "00")
+ self.bid128_to_uint16_xrnint("0", "[30400000000000000000000000010000]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[30400000000000000000000000010001]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[3040000000000000,0000000008002000]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint16_xrnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint16_xrnint("0", "65536", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[78000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[7c000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[7c003fffffffffff38c15b08ffffffff]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[7c003fffffffffff38c15b0affffffff]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[7e000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xrnint("0", "[bd8ed9dd599388a5,295805a8b8d7a567]", "32768", "01")
+ }
+
+ private func bid128_to_uint16_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint16_xrninta() {
+ self.bid128_to_uint16_xrninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint16_xrninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint16_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_uint16_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint16_xrninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint16_xrninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint16_xrninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint16_xrninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_uint16_xrninta("0", "[3006A18D232A1F3367BA2C5010000000]", "32767", "20")
+ self.bid128_to_uint16_xrninta("0", "[3006A18DC4B9270A9E73383560000000]", "32767", "00")
+ self.bid128_to_uint16_xrninta("0", "[3006A18E66482EE1D52C441AB0000000]", "32768", "20")
+ self.bid128_to_uint16_xrninta("0", "[3006A18F07D736B90BE5500000000000]", "32768", "00")
+ self.bid128_to_uint16_xrninta("0", "[3006A18FA9663E90429E5BE550000000]", "32769", "20")
+ self.bid128_to_uint16_xrninta("0", "[3006A1904AF54667795767CAA0000000]", "32769", "00")
+ self.bid128_to_uint16_xrninta("0", "[3007431CCC905DC3AA58883560000000]", "65535", "00")
+ self.bid128_to_uint16_xrninta("0", "[3007431D6E1F659AE111941AB0000000]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[3007431E0FAE6D7217CAA00000000000]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[3007431EB13D75494E83ABE550000000]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[3007431F52CC7D20853CB7CAA0000000]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint16_xrninta("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_uint16_xrninta("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint16_xrninta("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_uint16_xrninta("0", "[303E000000000000000000000004FFF1]", "32767", "20")
+ self.bid128_to_uint16_xrninta("0", "[303E000000000000000000000004FFFB]", "32768", "20")
+ self.bid128_to_uint16_xrninta("0", "[303E0000000000000000000000050005]", "32769", "20")
+ self.bid128_to_uint16_xrninta("0", "[303E000000000000000000000009FFFB]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[303E00000000000000000000000A0005]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint16_xrninta("0", "[30400000000000000000000000007FFF]", "32767", "00")
+ self.bid128_to_uint16_xrninta("0", "[30400000000000000000000000008000]", "32768", "00")
+ self.bid128_to_uint16_xrninta("0", "[30400000000000000000000000008001]", "32769", "00")
+ self.bid128_to_uint16_xrninta("0", "[3040000000000000000000000000FFFF]", "65535", "00")
+ self.bid128_to_uint16_xrninta("0", "[30400000000000000000000000010000]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[30400000000000000000000000010001]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint16_xrninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint16_xrninta("0", "65536", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[78000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[7c000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[7c003fffffffffff38c15b08ffffffff]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[7c003fffffffffff38c15b0affffffff]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[7e000000000000000000000000000000]", "32768", "01")
+ self.bid128_to_uint16_xrninta("0", "[e3bfbfffe6fbcfdf,f3ffffdffffeffff]", "0", "00")
+ }
+
+ private func bid128_to_uint16_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt16(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt16 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint32_ceil() {
+ self.bid128_to_uint32_ceil("0", "-0", "0", "00")
+ self.bid128_to_uint32_ceil("0", "0", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[0000000000000000,0000000800000004]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[0000000000000000,0800000000c00000]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[0002000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "-0.00E0", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[02aeaa07635f199d,71b27a9a97755c54]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "1.0", "1", "00")
+ self.bid128_to_uint32_ceil("0", "1073741824", "1073741824", "00")
+ self.bid128_to_uint32_ceil("0", "1", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[1aef72b862de61ea,2ecdfc26c9bb0484]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFE314DC6448D9338C15B0A00000001]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[3000202008020004,8cfd5bafd6e8fbc7]", "7", "00")
+ self.bid128_to_uint32_ceil("0", "[3000a49006a10206,dd66dc34f40a6688]", "34", "00")
+ self.bid128_to_uint32_ceil("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[300293E952CDA8B9AA44111E00000001]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[30040ECA8847C4129106CE8300000001]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[300A0003C95A2F0B4856475FE0000001]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[300C000060EF6B1ABA6F072330000001]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE692B4B4B133125F000001]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE6FC95C29899892F800000]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE6FC95C29899892F800001]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE76676D080000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE76676D080000000000001]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE7D057DE676676D07FFFFF]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE7D057DE676676D0800000]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE7D057DE676676D0800001]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE83A38EC4ECCEDA1000000]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[301069E10DE83A38EC4ECCEDA1000001]", "2147483650", "00")
+ self.bid128_to_uint32_ceil("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "00")
+ self.bid128_to_uint32_ceil("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint32_ceil("0", "[3010C5371912364CE3056C2800000001]", "4000000001", "00")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCDF92B853133125F000000]", "4294967295", "00")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[30112ef69b416736,9f9dd27bf0f6102e]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301600000000003627E8F712373BFFFF]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[301600000000003627E8F712373C0000]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[301600000000003627E8F712373C0001]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[30180002B5E3AF19676BAF16B187FFFF]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[30180002B5E3AF19676BAF16B1880000]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[30180002B5E3AF19676BAF16B1880001]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301A0000000000004563918244F3FFFF]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[301A0000000000004563918244F40000]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[301A0000000000004563918244F40001]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[301A0000000000008AC7230489E7FFFF]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[301A0000000000008AC7230489E80000]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[301A0000000000008AC7230489E80001]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[301A000045639181BA2CDCFB76180001]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[301A00004563918244F4000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[301A00004563918244F4000000000001]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[301A000045639182CFBB230489E7FFFF]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[301A000045639182CFBB230489E80000]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[301A000045639182CFBB230489E80001]", "2147483650", "00")
+ self.bid128_to_uint32_ceil("0", "[301A00008AC72303FF20DCFB7617FFFF]", "4294967295", "00")
+ self.bid128_to_uint32_ceil("0", "[301A00008AC72303FF20DCFB76180000]", "4294967295", "00")
+ self.bid128_to_uint32_ceil("0", "[301A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[301C00000000000014D1120D7B15FFFF]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[301C00000000000014D1120D7B160000]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[301C00000000000014D1120D7B160001]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[301E000000000001A055690D9DB80001]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[302000000000000029A2241AF62C0001]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[3020000000020080,3fcfbbff2afbfdfd]", "242021743", "00")
+ self.bid128_to_uint32_ceil("0", "[3020000000110400,36024eb40cc04a02]", "2057063230", "00")
+ self.bid128_to_uint32_ceil("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[3024000000000000006A94D74F430001]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[302A00000000000000000017428106FF]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[302A0000000000000000001742810700]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[302A0000000000000000001742810701]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[302A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302C000000000000000002BBA7F521FF]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[302C000000000000000002BBA7F52200]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[302C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302E000000000000000000001DCD64FF]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[302E000000000000000000001DCD6500]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[302E000000000000000000001DCD6501]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[302E000000000000000000003B9AC9FF]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[302E000000000000000000003B9ACA00]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[302E000000000000000000003B9ACA01]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[302E0000000000000000000059682EFF]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[302E0000000000000000000059682F00]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[302E0000000000000000000059682F01]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[302E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[302E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[303000000000000000000006FC23AC01]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[303200000000000000000000B2D05E01]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303800000000000000000000002DDA47]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303800000000000000000000002DDA48]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[303A00000000000000000000000005DB]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[303A00000000000000000000000005DC]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[303A00000000000000000000000005DD]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[303A00000000000000000000000495D3]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303A00000000000000000000000495D4]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000000000000095]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000000000000096]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000000000000097]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000000000007561]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000000000007562]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303C00000000000000000031FFFFFF69]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[303C00000000000000000031FFFFFF6A]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[303C00000000000000000031FFFFFF6B]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[303C00000000000000000031FFFFFFCD]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[303C00000000000000000031FFFFFFCE]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[303C00000000000000000031FFFFFFCF]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000003200000031]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000003200000032]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000003200000033]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[303C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000000000BB9]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[303E00000000000000000004FFFFFFF1]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[303E00000000000000000004FFFFFFF5]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[303E00000000000000000004FFFFFFF6]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[303E00000000000000000004FFFFFFF7]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[303E00000000000000000004FFFFFFFB]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[303E00000000000000000004FFFFFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000500000000]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000500000001]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000500000005]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000500000009]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[303E000000000000000000050000000A]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[303E000000000000000000050000000B]", "2147483650", "00")
+ self.bid128_to_uint32_ceil("0", "[303E00000000000000000009FFFFFFF5]", "4294967295", "00")
+ self.bid128_to_uint32_ceil("0", "[303E00000000000000000009FFFFFFF6]", "4294967295", "00")
+ self.bid128_to_uint32_ceil("0", "[303E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[303E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint32_ceil("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint32_ceil("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint32_ceil("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_ceil("0", "[30400000000000000000000080000000]", "2147483648", "00")
+ self.bid128_to_uint32_ceil("0", "[30400000000000000000000080000001]", "2147483649", "00")
+ self.bid128_to_uint32_ceil("0", "[304000000000000000000000FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_ceil("0", "[30400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[30400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[304000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[304000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint32_ceil("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint32_ceil("0", "[304200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[30420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[30420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint32_ceil("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint32_ceil("0", "[30520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[30540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3a6bb068121d13a9,23e612a0a4390e37]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3b1e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[3b82972378251bb4,50af71d745f35aa2]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[3ece7f4073f48226,14d32bc20ac7b8d2]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[4000000028040000,dbbaffbdffef4f5f]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "4294967296", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[4e33964fdc08f9c2,6db782de5432043b]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "5.05", "6", "00")
+ self.bid128_to_uint32_ceil("0", "[548521afb3188fff,b0c94c487fb8a066]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "5.5", "6", "00")
+ self.bid128_to_uint32_ceil("0", "[7800000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[78000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[7b7ac75ce02f4f5e,99af41189df4777b]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[7c000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[7d46fdfefffbffff,bdcf7befc7af7ffc]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[7e000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[9861835349750b6d,038765c162797df3]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[aab4000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[AFFE314DC6448D9338C15B0A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[AFFE314DC6448D9338C15B0A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[AFFE49F4A966D45CD522088F00000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[AFFE49F4A966D45CD522088F00000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[afffbfbfe7dff5db,68954a288071c540]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00293E952CDA8B9AA44111E00000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00293E952CDA8B9AA44111E00000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00294286EACB8CB0A8CB6B140000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00294286EACB8CB0A8CB6B140000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0040ECA8847C4129106CE8300000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0040ECA8847C4129106CE8300000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00A0003C95A2F0B4856475FE0000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00A0003C95A2F0B4856475FE0000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00C000060EF6B1ABA6F072330000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B00C000060EF6B1ABA6F072330000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE692B4B4B133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE692B4B4B133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE6FC95C29899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE6FC95C29899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE76676D080000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE76676D080000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE7D057DE676676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE7D057DE676676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE7D057DE676676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010C5371912364CE3056C27FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010C5371912364CE3056C2800000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010C5371912364CE3056C2800000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCDF92B853133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[b011b08b7fcf1834,cfd919015a715722]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01600000000003627E8F712373BFFFF]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B01600000000003627E8F712373C0000]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B01600000000003627E8F712373C0001]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0180002B5E3AF13FBA450E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0180002B5E3AF13FBA450E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0180002B5E3AF19676BAF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0180002B5E3AF19676BAF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A0000000000004563918244F3FFFF]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B01A0000000000004563918244F40000]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B01A0000000000004563918244F40001]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B01A0000000000008AC7230489E7FFFF]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B01A0000000000008AC7230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A0000000000008AC7230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A0000000000A2E6C09AD3E0D40000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A0000000000A2E6C09AD3E0D40001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A000045639181BA2CDCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A000045639181BA2CDCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A000045639181BA2CDCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00004563918244F4000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00004563918244F4000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A000045639182CFBB230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A000045639182CFBB230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A000045639182CFBB230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00008AC72303FF20DCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01C00000000000014D1120D7B15FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01C00000000000014D1120D7B160000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01C00000000000014D1120D7B160001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01E000000000001A055690D9DB7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01E000000000001A055690D9DB80000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B01E000000000001A055690D9DB80001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02000000000000029A2241AF62BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02000000000000029A2241AF62C0000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02000000000000029A2241AF62C0001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B024000000000000006A94D74F42FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B024000000000000006A94D74F430000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B024000000000000006A94D74F430001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02A00000000000000000017428106FF]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B02A0000000000000000001742810700]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B02A0000000000000000001742810701]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B02A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C000000000000000002BBA7F521FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C000000000000000002BBA7F52200]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C000000000000000002BBA7F52201]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02E000000000000000000001DCD64FF]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B02E000000000000000000001DCD6500]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B02E000000000000000000001DCD6501]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B02E000000000000000000003B9AC9FF]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B02E000000000000000000003B9ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02E000000000000000000003B9ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02E0000000000000000000059682EFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02E0000000000000000000059682F00]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02E0000000000000000000059682F01]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B02E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03000000000000000000006FC23ABFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03000000000000000000006FC23AC00]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03000000000000000000006FC23AC01]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03200000000000000000000B2D05DFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03200000000000000000000B2D05E00]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03200000000000000000000B2D05E01]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03800000000000000000000002DDA47]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03800000000000000000000002DDA48]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03800000000000000000000002DDA49]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B03A00000000000000000000000005DB]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03A00000000000000000000000005DC]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03A00000000000000000000000005DD]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03A00000000000000000000000495D3]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03A00000000000000000000000495D4]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03A00000000000000000000000495D5]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000000000000095]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000000000000096]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000000000000097]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000000000007561]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000000000007562]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000000000007563]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C00000000000000000031FFFFFF69]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C00000000000000000031FFFFFF6A]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C00000000000000000031FFFFFF6B]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C00000000000000000031FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C00000000000000000031FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C00000000000000000031FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000003200000031]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000003200000032]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000003200000033]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[B03E000000000000000000000000000F]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000000000BB7]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000000000BB8]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000000000BB9]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000000000BBD]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E00000000000000000004FFFFFFF1]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E00000000000000000004FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E00000000000000000004FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E00000000000000000004FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E00000000000000000004FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E00000000000000000004FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000500000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000500000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000500000005]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000500000009]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E000000000000000000050000000A]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E000000000000000000050000000B]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E00000000000000000009FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E00000000000000000009FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B03E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0400000000000000000000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B040000000000000000000000000012B]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B040000000000000000000000000012C]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B040000000000000000000000000012D]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B040000000000000000000007FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0400000000000000000000080000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0400000000000000000000080000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B04000000000000000000000FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B04000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B04000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B042000000000000000000000000001D]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B042000000000000000000000000001E]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B042000000000000000000000000001F]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B04200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0440000000000000000000000000003]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0520000000000000000000000000004]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[B0540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[b709dd13a7b612da,032c7d4d3f1f36e2]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[d003aca370fe8b26,a6fa81138a7a33cd]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[e7ad543a97427637,2d90f7fc7b7faedf]", "0", "00")
+ self.bid128_to_uint32_ceil("0", "[fadf34e5e86fa5a0,00a0100280000220]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "[ffffffffffffffff,ff3bfffffefedf5b]", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "Infinity", "-2147483648", "01")
+ self.bid128_to_uint32_ceil("0", "QNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_uint32_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint32_floor() {
+ self.bid128_to_uint32_floor("0", "-0", "0", "00")
+ self.bid128_to_uint32_floor("0", "0", "0", "00")
+ self.bid128_to_uint32_floor("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[0000000000000000,dd7de3fffabdf7af]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint32_floor("0", "-0.0E0", "0", "00")
+ self.bid128_to_uint32_floor("0", "[0800000000000000,0000508408080010]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[09102018d470809d,ffded29f6fb566da]", "0", "00")
+ self.bid128_to_uint32_floor("0", "1.0", "1", "00")
+ self.bid128_to_uint32_floor("0", "1073741824", "1073741824", "00")
+ self.bid128_to_uint32_floor("0", "[12f135471286fec9,e314c4f5be90fa3f]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[2bfe8f5c7674db26,d5ad1572f39a24ca]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[2ee4b211a19a6c6d,be7d6e0a96b502ad]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[2f3971aa0847fde7,77747dc5d96fe73b]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[2fff7bf6fffff2be,0272206e98811100]", "7", "00")
+ self.bid128_to_uint32_floor("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "00")
+ self.bid128_to_uint32_floor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "00")
+ self.bid128_to_uint32_floor("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[30050003110cf940,fffefffffffcefff]", "5192", "00")
+ self.bid128_to_uint32_floor("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "00")
+ self.bid128_to_uint32_floor("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "00")
+ self.bid128_to_uint32_floor("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE6FC95C29899892F800000]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE6FC95C29899892F800001]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE76676D080000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE76676D080000000000001]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE7D057DE676676D07FFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE7D057DE676676D0800000]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE7D057DE676676D0800001]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE83A38EC4ECCEDA1000000]", "2147483649", "00")
+ self.bid128_to_uint32_floor("0", "[301069E10DE83A38EC4ECCEDA1000001]", "2147483649", "00")
+ self.bid128_to_uint32_floor("0", "[3010c38b3e9091d0,92a2776756c03c54]", "-328865346", "00")
+ self.bid128_to_uint32_floor("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "00")
+ self.bid128_to_uint32_floor("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint32_floor("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "4294967294", "00")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCDF92B853133125F000000]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCDF92B853133125F000001]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCE630C931899892F7FFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCE630C931899892F800000]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCE630C931899892F800001]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3011ab071a0f4777,f3072100f4f0f41f]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[301600000000003627E8F712373BFFFF]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[301600000000003627E8F712373C0000]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[301600000000003627E8F712373C0001]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[3018000001680214,f4bd23d7c2fffc26]", "4352231", "00")
+ self.bid128_to_uint32_floor("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[30180002B5E3AF19676BAF16B187FFFF]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[30180002B5E3AF19676BAF16B1880000]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[30180002B5E3AF19676BAF16B1880001]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[301800056BC75E2AAD2C50E94E780000]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[301800056BC75E2AAD2C50E94E780001]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[301800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[301800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[301800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[301A0000000000004563918244F3FFFF]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[301A0000000000004563918244F40000]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[301A0000000000004563918244F40001]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[301A0000000000008AC7230489E7FFFF]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[301A0000000000008AC7230489E80000]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[301A0000000000008AC7230489E80001]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[301A00004563918244F4000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[301A00004563918244F4000000000001]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[301A000045639182CFBB230489E7FFFF]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[301A000045639182CFBB230489E80000]", "2147483649", "00")
+ self.bid128_to_uint32_floor("0", "[301A000045639182CFBB230489E80001]", "2147483649", "00")
+ self.bid128_to_uint32_floor("0", "[301A00008AC72303FF20DCFB7617FFFF]", "4294967294", "00")
+ self.bid128_to_uint32_floor("0", "[301A00008AC72303FF20DCFB76180000]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[301A00008AC72303FF20DCFB76180001]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[301A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[301A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[301A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[301A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[301A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[301C00000000000014D1120D7B15FFFF]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[301C00000000000014D1120D7B160000]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[301C00000000000014D1120D7B160001]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[301E000000000001A055690D9DB7FFFF]", "299", "00")
+ self.bid128_to_uint32_floor("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[302000000000000029A2241AF62BFFFF]", "299", "00")
+ self.bid128_to_uint32_floor("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[3020000000110400,c935b14bf23fb5bd]", "2057064289", "00")
+ self.bid128_to_uint32_floor("0", "[3020000000300803,fffdff7bffefbff7]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3024000000000000006A94D74F42FFFF]", "299", "00")
+ self.bid128_to_uint32_floor("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[302A00000000000000000017428106FF]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[302A0000000000000000001742810700]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[302A0000000000000000001742810701]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[302A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[302C000000000000000002BBA7F52201]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[302C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302E000000000000000000001DCD64FF]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[302E000000000000000000001DCD6500]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[302E000000000000000000001DCD6501]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[302E000000000000000000003B9AC9FF]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[302E000000000000000000003B9ACA00]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[302E000000000000000000003B9ACA01]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[302E0000000000000000000059682EFF]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[302E0000000000000000000059682F00]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[302E0000000000000000000059682F01]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[302E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[302E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303000000000000000000006FC23ABFF]", "299", "00")
+ self.bid128_to_uint32_floor("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303200000000000000000000B2D05DFF]", "299", "00")
+ self.bid128_to_uint32_floor("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303800000000000000000000002DDA49]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[303A00000000000000000000000005DB]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[303A00000000000000000000000005DC]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[303A00000000000000000000000005DD]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303A00000000000000000000000495D5]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000000000000095]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000000000000096]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000000000000097]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000000000007563]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303C00000000000000000031FFFFFF69]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[303C00000000000000000031FFFFFF6A]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[303C00000000000000000031FFFFFF6B]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[303C00000000000000000031FFFFFFCD]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[303C00000000000000000031FFFFFFCE]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[303C00000000000000000031FFFFFFCF]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000003200000031]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000003200000032]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000003200000033]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[303C00000000000000000063FFFFFFCD]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[303C00000000000000000063FFFFFFCE]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[303C00000000000000000063FFFFFFCF]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000000000BB7]", "299", "00")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[303E00000000000000000004FFFFFFF5]", "2147483646", "00")
+ self.bid128_to_uint32_floor("0", "[303E00000000000000000004FFFFFFF6]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[303E00000000000000000004FFFFFFF7]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[303E00000000000000000004FFFFFFFB]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[303E00000000000000000004FFFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000500000000]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000500000001]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000500000005]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000500000009]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[303E000000000000000000050000000A]", "2147483649", "00")
+ self.bid128_to_uint32_floor("0", "[303E000000000000000000050000000B]", "2147483649", "00")
+ self.bid128_to_uint32_floor("0", "[303E00000000000000000009FFFFFFF5]", "4294967294", "00")
+ self.bid128_to_uint32_floor("0", "[303E00000000000000000009FFFFFFF6]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[303E00000000000000000009FFFFFFF7]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[303E00000000000000000009FFFFFFFB]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[303E00000000000000000009FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[303E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint32_floor("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint32_floor("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint32_floor("0", "[3040000000000000,0000000000002400]", "9216", "00")
+ self.bid128_to_uint32_floor("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_floor("0", "[30400000000000000000000080000000]", "2147483648", "00")
+ self.bid128_to_uint32_floor("0", "[30400000000000000000000080000001]", "2147483649", "00")
+ self.bid128_to_uint32_floor("0", "[304000000000000000000000FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_floor("0", "[30400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[30400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[304000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[304000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint32_floor("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint32_floor("0", "[304200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[30420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[30420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint32_floor("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint32_floor("0", "[30520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[30540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[323603a80258f582,7b66bef4c14d8e99]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "4294967296", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[4475088cda260868,0000000800000220]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "5.5", "5", "00")
+ self.bid128_to_uint32_floor("0", "[6c92f835c55fc08d,7e7cef3e4c9f1e0f]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[78000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[7bdf3db1f1cf5bae,fffffdfddffdff7f]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[7c000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[7e000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[8f78f5a0efc7b3d2,3e54d018621f326e]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[9e14000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[9ecdde8c308c6c65,40e41414111f97a9]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFCF684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFCF684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFDEC8B86EF679D76FC433D80000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFDEC8B86EF679D76FC433D80000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFE314DC6448D9338C15B0A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFE314DC6448D9338C15B0A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFE49F4A966D45CD522088F00000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[AFFE49F4A966D45CD522088F00000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00293E952CDA8B9AA44111E00000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00293E952CDA8B9AA44111E00000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00294286EACB8CB0A8CB6B140000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00294286EACB8CB0A8CB6B140000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0040ECA8847C4129106CE8300000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0040ECA8847C4129106CE8300000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00A0003C95A2F0B4856475FE0000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00A0003C95A2F0B4856475FE0000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00C000060EF6B1ABA6F072330000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B00C000060EF6B1ABA6F072330000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE692B4B4B133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE692B4B4B133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE6FC95C29899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE6FC95C29899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE76676D080000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE76676D080000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE7D057DE676676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE7D057DE676676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE7D057DE676676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010C5371912364CE3056C27FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010C5371912364CE3056C2800000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010C5371912364CE3056C2800000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCDF92B853133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01600000000003627E8F712373BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01600000000003627E8F712373C0000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01600000000003627E8F712373C0001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0180002B5E3AF13FBA450E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0180002B5E3AF13FBA450E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0180002B5E3AF19676BAF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0180002B5E3AF19676BAF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A0000000000004563918244F3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A0000000000004563918244F40000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A0000000000004563918244F40001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A0000000000008AC7230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A0000000000008AC7230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A0000000000008AC7230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A0000000000A2E6C09AD3E0D40000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A0000000000A2E6C09AD3E0D40001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A000045639181BA2CDCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A000045639181BA2CDCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A000045639181BA2CDCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00004563918244F4000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00004563918244F4000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A000045639182CFBB230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A000045639182CFBB230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A000045639182CFBB230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00008AC72303FF20DCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01C00000000000014D1120D7B15FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01C00000000000014D1120D7B160000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01C00000000000014D1120D7B160001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01E000000000001A055690D9DB7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01E000000000001A055690D9DB80000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B01E000000000001A055690D9DB80001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02000000000000029A2241AF62BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02000000000000029A2241AF62C0000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02000000000000029A2241AF62C0001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B024000000000000006A94D74F42FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B024000000000000006A94D74F430000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B024000000000000006A94D74F430001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02A00000000000000000017428106FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02A0000000000000000001742810700]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02A0000000000000000001742810701]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C000000000000000002BBA7F521FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C000000000000000002BBA7F52200]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C000000000000000002BBA7F52201]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E000000000000000000001DCD64FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E000000000000000000001DCD6500]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E000000000000000000001DCD6501]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E000000000000000000003B9AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E000000000000000000003B9ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E000000000000000000003B9ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E0000000000000000000059682EFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E0000000000000000000059682F00]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E0000000000000000000059682F01]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B02E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03000000000000000000006FC23ABFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03000000000000000000006FC23AC00]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03000000000000000000006FC23AC01]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03200000000000000000000B2D05DFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03200000000000000000000B2D05E00]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03200000000000000000000B2D05E01]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03800000000000000000000002DDA47]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03800000000000000000000002DDA48]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03800000000000000000000002DDA49]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03A00000000000000000000000003E7]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03A00000000000000000000000005DB]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03A00000000000000000000000005DC]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03A00000000000000000000000005DD]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03A00000000000000000000000495D3]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03A00000000000000000000000495D4]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03A00000000000000000000000495D5]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000000000000095]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000000000000096]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000000000000097]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000000000007561]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000000000007562]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000000000007563]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C00000000000000000031FFFFFF69]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C00000000000000000031FFFFFF6A]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C00000000000000000031FFFFFF6B]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C00000000000000000031FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C00000000000000000031FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C00000000000000000031FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000003200000031]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000003200000032]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000003200000033]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E000000000000000000000000000F]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000000000BB7]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000000000BB8]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000000000BB9]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000000000BBD]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E00000000000000000004FFFFFFF1]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E00000000000000000004FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E00000000000000000004FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E00000000000000000004FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E00000000000000000004FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E00000000000000000004FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000500000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000500000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000500000005]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000500000009]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E000000000000000000050000000A]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E000000000000000000050000000B]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E00000000000000000009FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E00000000000000000009FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B03E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0400000000000000000000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B040000000000000000000000000012B]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B040000000000000000000000000012C]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B040000000000000000000000000012D]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B040000000000000000000007FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0400000000000000000000080000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0400000000000000000000080000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B04000000000000000000000FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B04000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B04000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B042000000000000000000000000001D]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B042000000000000000000000000001E]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B042000000000000000000000000001F]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B04200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0440000000000000000000000000003]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0520000000000000000000000000004]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[B0540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[b0a0d7f2d7757191,69d6bed92b7ad8a5]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[cc7c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_floor("0", "[ddcc584f582d7291,fb7f7f61dbfdfff3]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[f9635ffc6bcecafc,0e3775ad76e58e24]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[fd69ddfd386feeff,aea7df82302465b4]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "[ffffffffffffffff,3ad8486f5e29177d]", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_uint32_floor("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_uint32_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint32_int() {
+ self.bid128_to_uint32_int("0", "-0", "0", "00")
+ self.bid128_to_uint32_int("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[0000000000000000,0000002000000000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[0000000000000000,80954a12d8cf2544]", "0", "00")
+ self.bid128_to_uint32_int("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint32_int("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint32_int("0", "[03d277f2c7adefff,fffffbffff7dbeff]", "0", "00")
+ self.bid128_to_uint32_int("0", "1.0", "1", "00")
+ self.bid128_to_uint32_int("0", "1", "1", "00")
+ self.bid128_to_uint32_int("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_uint32_int("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_uint32_int("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint32_int("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_uint32_int("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_uint32_int("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_uint32_int("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "00")
+ self.bid128_to_uint32_int("0", "[30004c451185843c,fffffffbffffffff]", "15", "00")
+ self.bid128_to_uint32_int("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "00")
+ self.bid128_to_uint32_int("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint32_int("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_uint32_int("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_uint32_int("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_uint32_int("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "00")
+ self.bid128_to_uint32_int("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "00")
+ self.bid128_to_uint32_int("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint32_int("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_uint32_int("0", "[3009841c088d0004,8c029d7d883b324a]", "787179", "00")
+ self.bid128_to_uint32_int("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "00")
+ self.bid128_to_uint32_int("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint32_int("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_uint32_int("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "00")
+ self.bid128_to_uint32_int("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint32_int("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE6FC95C29899892F800000]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE6FC95C29899892F800001]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE76676D080000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE76676D080000000000001]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE7D057DE676676D07FFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE7D057DE676676D0800000]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE7D057DE676676D0800001]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE83A38EC4ECCEDA1000000]", "2147483649", "00")
+ self.bid128_to_uint32_int("0", "[301069E10DE83A38EC4ECCEDA1000001]", "2147483649", "00")
+ self.bid128_to_uint32_int("0", "[3010800800228253,3f7bb1bcd7ed5b7e]", "-1698185000", "00")
+ self.bid128_to_uint32_int("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "00")
+ self.bid128_to_uint32_int("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint32_int("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "4294967294", "00")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCDF92B853133125F000000]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCDF92B853133125F000001]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCE630C931899892F7FFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCE630C931899892F800000]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCE630C931899892F800001]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3011211680a4b004,a4df59b1bb3dfbec]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3014000627240a80,0000080002000210]", "48748246", "00")
+ self.bid128_to_uint32_int("0", "[301600000000003627E8F712373BFFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[301600000000003627E8F712373C0000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[301600000000003627E8F712373C0001]", "0", "00")
+ self.bid128_to_uint32_int("0", "[3018000060800120,6e5060152f625961]", "298653087", "00")
+ self.bid128_to_uint32_int("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[30180002B5E3AF19676BAF16B187FFFF]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[30180002B5E3AF19676BAF16B1880000]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[30180002B5E3AF19676BAF16B1880001]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[301800056BC75E2AAD2C50E94E780000]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[301800056BC75E2AAD2C50E94E780001]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[301800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[301800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[301800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3018000800000000,1e6ef3cfe07e77df]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[301A0000000000004563918244F3FFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[301A0000000000004563918244F40000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[301A0000000000004563918244F40001]", "0", "00")
+ self.bid128_to_uint32_int("0", "[301A0000000000008AC7230489E7FFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[301A0000000000008AC7230489E80000]", "1", "00")
+ self.bid128_to_uint32_int("0", "[301A0000000000008AC7230489E80001]", "1", "00")
+ self.bid128_to_uint32_int("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_uint32_int("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_uint32_int("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "00")
+ self.bid128_to_uint32_int("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[301A00004563918244F4000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[301A00004563918244F4000000000001]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[301A000045639182CFBB230489E7FFFF]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[301A000045639182CFBB230489E80000]", "2147483649", "00")
+ self.bid128_to_uint32_int("0", "[301A000045639182CFBB230489E80001]", "2147483649", "00")
+ self.bid128_to_uint32_int("0", "[301A00008AC72303FF20DCFB7617FFFF]", "4294967294", "00")
+ self.bid128_to_uint32_int("0", "[301A00008AC72303FF20DCFB76180000]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[301A00008AC72303FF20DCFB76180001]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[301A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[301A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[301A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[301A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[301A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[301C00000000000014D1120D7B15FFFF]", "1", "00")
+ self.bid128_to_uint32_int("0", "[301C00000000000014D1120D7B160000]", "1", "00")
+ self.bid128_to_uint32_int("0", "[301C00000000000014D1120D7B160001]", "1", "00")
+ self.bid128_to_uint32_int("0", "[301E000000000001A055690D9DB7FFFF]", "299", "00")
+ self.bid128_to_uint32_int("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint32_int("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_uint32_int("0", "[302000000000000029A2241AF62BFFFF]", "299", "00")
+ self.bid128_to_uint32_int("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint32_int("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_uint32_int("0", "[3020000000018b40,9fffffdfb7feffdf]", "186652688", "00")
+ self.bid128_to_uint32_int("0", "[3024000000000000006A94D74F42FFFF]", "299", "00")
+ self.bid128_to_uint32_int("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint32_int("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_uint32_int("0", "[302A00000000000000000017428106FF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[302A0000000000000000001742810700]", "0", "00")
+ self.bid128_to_uint32_int("0", "[302A0000000000000000001742810701]", "0", "00")
+ self.bid128_to_uint32_int("0", "[302A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_uint32_int("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_uint32_int("0", "[302C000000000000000002BBA7F52201]", "300", "00")
+ self.bid128_to_uint32_int("0", "[302C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302E000000000000000000001DCD64FF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[302E000000000000000000001DCD6500]", "0", "00")
+ self.bid128_to_uint32_int("0", "[302E000000000000000000001DCD6501]", "0", "00")
+ self.bid128_to_uint32_int("0", "[302E000000000000000000003B9AC9FF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[302E000000000000000000003B9ACA00]", "1", "00")
+ self.bid128_to_uint32_int("0", "[302E000000000000000000003B9ACA01]", "1", "00")
+ self.bid128_to_uint32_int("0", "[302E0000000000000000000059682EFF]", "1", "00")
+ self.bid128_to_uint32_int("0", "[302E0000000000000000000059682F00]", "1", "00")
+ self.bid128_to_uint32_int("0", "[302E0000000000000000000059682F01]", "1", "00")
+ self.bid128_to_uint32_int("0", "[302E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[302E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303000000000000000000006FC23ABFF]", "299", "00")
+ self.bid128_to_uint32_int("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303200000000000000000000B2D05DFF]", "299", "00")
+ self.bid128_to_uint32_int("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303800000000000000000000002DDA49]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint32_int("0", "[303A00000000000000000000000005DB]", "1", "00")
+ self.bid128_to_uint32_int("0", "[303A00000000000000000000000005DC]", "1", "00")
+ self.bid128_to_uint32_int("0", "[303A00000000000000000000000005DD]", "1", "00")
+ self.bid128_to_uint32_int("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303A00000000000000000000000495D5]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000000000000095]", "1", "00")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000000000000096]", "1", "00")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000000000000097]", "1", "00")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000000000007563]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303C00000000000000000031FFFFFF69]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[303C00000000000000000031FFFFFF6A]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[303C00000000000000000031FFFFFF6B]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[303C00000000000000000031FFFFFFCD]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[303C00000000000000000031FFFFFFCE]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[303C00000000000000000031FFFFFFCF]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000003200000031]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000003200000032]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000003200000033]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[303C00000000000000000063FFFFFFCD]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[303C00000000000000000063FFFFFFCE]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[303C00000000000000000063FFFFFFCF]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint32_int("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000000000BB7]", "299", "00")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_uint32_int("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[303E00000000000000000004FFFFFFF5]", "2147483646", "00")
+ self.bid128_to_uint32_int("0", "[303E00000000000000000004FFFFFFF6]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[303E00000000000000000004FFFFFFF7]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[303E00000000000000000004FFFFFFFB]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[303E00000000000000000004FFFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000500000000]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000500000001]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000500000005]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000500000009]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[303E000000000000000000050000000A]", "2147483649", "00")
+ self.bid128_to_uint32_int("0", "[303E000000000000000000050000000B]", "2147483649", "00")
+ self.bid128_to_uint32_int("0", "[303E00000000000000000009FFFFFFF5]", "4294967294", "00")
+ self.bid128_to_uint32_int("0", "[303E00000000000000000009FFFFFFF6]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[303E00000000000000000009FFFFFFF7]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[303E00000000000000000009FFFFFFFB]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[303E00000000000000000009FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[303E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint32_int("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint32_int("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint32_int("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint32_int("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_int("0", "[30400000000000000000000080000000]", "2147483648", "00")
+ self.bid128_to_uint32_int("0", "[30400000000000000000000080000001]", "2147483649", "00")
+ self.bid128_to_uint32_int("0", "[304000000000000000000000FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_int("0", "[30400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[30400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[304000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[304000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint32_int("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint32_int("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint32_int("0", "[304200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[30420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[30420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint32_int("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint32_int("0", "[30520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[30540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[310cfbebc78c4734,ed170c310ab84ecb]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[35e864bbc55db92f,1474df2439b7e98e]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[42cad3117d413635,54aa1b00e4b840f0]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[434c778b0b7c9688,72543f4d32682c32]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[45d989e0fab6059f,646a6ce6839595d7]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[4bea02e56a91ad86,87e5104d839260f5]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "5.5", "5", "00")
+ self.bid128_to_uint32_int("0", "[59872453c810fe0b,92a624d2a682563c]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[78000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[798791d3d8a0b0ff,cf6940258fca57ca]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[7c000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[7e000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[8526000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[9274e99239e12f47,e6f155aefdd83239]", "0", "00")
+ self.bid128_to_uint32_int("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_uint32_int("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_uint32_int("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[AFFE314DC6448D9338C15B0A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[AFFE314DC6448D9338C15B0A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[AFFE49F4A966D45CD522088F00000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[AFFE49F4A966D45CD522088F00000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[b001608900085022,0100000000000000]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00293E952CDA8B9AA44111E00000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00293E952CDA8B9AA44111E00000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00294286EACB8CB0A8CB6B140000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00294286EACB8CB0A8CB6B140000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0040ECA8847C4129106CE8300000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0040ECA8847C4129106CE8300000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00A0003C95A2F0B4856475FE0000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00A0003C95A2F0B4856475FE0000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00C000060EF6B1ABA6F072330000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B00C000060EF6B1ABA6F072330000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE692B4B4B133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE692B4B4B133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE6FC95C29899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE6FC95C29899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE76676D080000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE76676D080000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE7D057DE676676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE7D057DE676676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE7D057DE676676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010C5371912364CE3056C27FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010C5371912364CE3056C2800000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010C5371912364CE3056C2800000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCDF92B853133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[b0118412a88d2120,7fffffffffffedff]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01600000000003627E8F712373BFFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B01600000000003627E8F712373C0000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B01600000000003627E8F712373C0001]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0180002B5E3AF13FBA450E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0180002B5E3AF13FBA450E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0180002B5E3AF19676BAF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0180002B5E3AF19676BAF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A0000000000004563918244F3FFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B01A0000000000004563918244F40000]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B01A0000000000004563918244F40001]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B01A0000000000008AC7230489E7FFFF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B01A0000000000008AC7230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A0000000000008AC7230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A0000000000A2E6C09AD3E0D40000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A0000000000A2E6C09AD3E0D40001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A000045639181BA2CDCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A000045639181BA2CDCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A000045639181BA2CDCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00004563918244F4000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00004563918244F4000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A000045639182CFBB230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A000045639182CFBB230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A000045639182CFBB230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00008AC72303FF20DCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01C00000000000014D1120D7B15FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01C00000000000014D1120D7B160000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01C00000000000014D1120D7B160001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[b01c00000470c002,0280002400080048]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01E000000000001A055690D9DB7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01E000000000001A055690D9DB80000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B01E000000000001A055690D9DB80001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02000000000000029A2241AF62BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02000000000000029A2241AF62C0000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02000000000000029A2241AF62C0001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B024000000000000006A94D74F42FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B024000000000000006A94D74F430000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B024000000000000006A94D74F430001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02A00000000000000000017428106FF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B02A0000000000000000001742810700]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B02A0000000000000000001742810701]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B02A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C000000000000000002BBA7F521FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C000000000000000002BBA7F52200]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C000000000000000002BBA7F52201]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02E000000000000000000001DCD64FF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B02E000000000000000000001DCD6500]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B02E000000000000000000001DCD6501]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B02E000000000000000000003B9AC9FF]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B02E000000000000000000003B9ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02E000000000000000000003B9ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02E0000000000000000000059682EFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02E0000000000000000000059682F00]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02E0000000000000000000059682F01]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B02E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03000000000000000000006FC23ABFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03000000000000000000006FC23AC00]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03000000000000000000006FC23AC01]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03200000000000000000000B2D05DFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03200000000000000000000B2D05E00]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03200000000000000000000B2D05E01]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03800000000000000000000002DDA47]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03800000000000000000000002DDA48]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03800000000000000000000002DDA49]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B03A00000000000000000000000005DB]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03A00000000000000000000000005DC]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03A00000000000000000000000005DD]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03A00000000000000000000000495D3]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03A00000000000000000000000495D4]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03A00000000000000000000000495D5]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000000000000095]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000000000000096]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000000000000097]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000000000007561]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000000000007562]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000000000007563]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C00000000000000000031FFFFFF69]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C00000000000000000031FFFFFF6A]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C00000000000000000031FFFFFF6B]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C00000000000000000031FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C00000000000000000031FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C00000000000000000031FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000003200000031]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000003200000032]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000003200000033]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint32_int("0", "[B03E000000000000000000000000000F]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000000000BB7]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000000000BB8]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000000000BB9]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000000000BBD]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E00000000000000000004FFFFFFF1]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E00000000000000000004FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E00000000000000000004FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E00000000000000000004FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E00000000000000000004FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E00000000000000000004FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000500000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000500000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000500000005]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000500000009]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E000000000000000000050000000A]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E000000000000000000050000000B]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E00000000000000000009FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E00000000000000000009FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B03E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0400000000000000000000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B040000000000000000000000000012B]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B040000000000000000000000000012C]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B040000000000000000000000000012D]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B040000000000000000000007FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0400000000000000000000080000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0400000000000000000000080000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B04000000000000000000000FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B04000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B04000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B042000000000000000000000000001D]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B042000000000000000000000000001E]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B042000000000000000000000000001F]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B04200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0440000000000000000000000000003]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0520000000000000000000000000004]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[B0540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_int("0", "[b92c270dd545e80b,982ea7f833b475a1]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[cf212dd8e1f72dfc,ee0a5fc98ed97b95]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[d95c32260a2e154f,c1e97f3324d2fbb1]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[e769ca97bf3a1a09,ff9ffbbffffd7fff]", "0", "00")
+ self.bid128_to_uint32_int("0", "[f800000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[fbcbff773ff9ffb7,e9af004f24a807f5]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[fc73c58d6dd7489c,d4791339ffbdb776]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "[ffffffffffffffff,07e9694ef79f5f64]", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "Infinity", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "QNaN", "-2147483648", "01")
+ self.bid128_to_uint32_int("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_uint32_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint32_rnint() {
+ self.bid128_to_uint32_rnint("0", "-0", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[0000000000000000,0000000800001200]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[0000000000000000,a138746e31c01009]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[0120000000000000,7af626f7bf37ce9b]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[081fdfac17793ad8,ffffffff7fffffff]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[0f998fb207514890,eb3cb78b20dd7e7f]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "1073741824", "1073741824", "00")
+ self.bid128_to_uint32_rnint("0", "1", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[173a3b47d6f18423,fffff73ff7aeefff]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[1c46000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[1ccc212c0128566d,dafd7e52499bf035]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[1ef0000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[26bcf5e801c36421,f1725e5a5b636742]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[2ffdb4e937c8d399,0000040000000000]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint32_rnint("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_uint32_rnint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_uint32_rnint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[3006082200890122,dc2fb197063dd1b5]", "1650", "00")
+ self.bid128_to_uint32_rnint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[3010421006b8c602,53380e68050fefa2]", "1339908765", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE6FC95C29899892F800000]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE6FC95C29899892F800001]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE76676D080000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE76676D080000000000001]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE7D057DE676676D07FFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE7D057DE676676D0800000]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE7D057DE676676D0800001]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE83A38EC4ECCEDA1000000]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[301069E10DE83A38EC4ECCEDA1000001]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "00")
+ self.bid128_to_uint32_rnint("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint32_rnint("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCDF92B853133125F000000]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCDF92B853133125F000001]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCE630C931899892F7FFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3011028102430001,ffffffffffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301600000000003627E8F712373BFFFF]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[301600000000003627E8F712373C0000]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[301600000000003627E8F712373C0001]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "00")
+ self.bid128_to_uint32_rnint("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "00")
+ self.bid128_to_uint32_rnint("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[30180002B5E3AF19676BAF16B187FFFF]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[30180002B5E3AF19676BAF16B1880000]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[30180002B5E3AF19676BAF16B1880001]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[301800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301A0000000000004563918244F3FFFF]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[301A0000000000004563918244F40000]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[301A0000000000004563918244F40001]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[301A0000000000008AC7230489E7FFFF]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[301A0000000000008AC7230489E80000]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[301A0000000000008AC7230489E80001]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_uint32_rnint("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[301A00004563918244F4000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[301A00004563918244F4000000000001]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[301A000045639182CFBB230489E7FFFF]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[301A000045639182CFBB230489E80000]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[301A000045639182CFBB230489E80001]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[301A00008AC72303FF20DCFB7617FFFF]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[301A00008AC72303FF20DCFB76180000]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[301A00008AC72303FF20DCFB76180001]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[301C00000000000014D1120D7B15FFFF]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[301C00000000000014D1120D7B160000]", "2", "00")
+ self.bid128_to_uint32_rnint("0", "[301C00000000000014D1120D7B160001]", "2", "00")
+ self.bid128_to_uint32_rnint("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[3020000000214000,28004460c2808304]", "-275288658", "00")
+ self.bid128_to_uint32_rnint("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[302A00000000000000000017428106FF]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[302A0000000000000000001742810700]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[302A0000000000000000001742810701]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[302A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_uint32_rnint("0", "[302C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302E000000000000000000001DCD64FF]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[302E000000000000000000001DCD6500]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[302E000000000000000000001DCD6501]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[302E000000000000000000003B9AC9FF]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[302E000000000000000000003B9ACA00]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[302E000000000000000000003B9ACA01]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[302E0000000000000000000059682EFF]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[302E0000000000000000000059682F00]", "2", "00")
+ self.bid128_to_uint32_rnint("0", "[302E0000000000000000000059682F01]", "2", "00")
+ self.bid128_to_uint32_rnint("0", "[302E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[302E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_uint32_rnint("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[303A00000000000000000000000005DB]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[303A00000000000000000000000005DC]", "2", "00")
+ self.bid128_to_uint32_rnint("0", "[303A00000000000000000000000005DD]", "2", "00")
+ self.bid128_to_uint32_rnint("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000000000000095]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000000000000096]", "2", "00")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000000000000097]", "2", "00")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_uint32_rnint("0", "[303C00000000000000000031FFFFFF69]", "2147483646", "00")
+ self.bid128_to_uint32_rnint("0", "[303C00000000000000000031FFFFFF6A]", "2147483646", "00")
+ self.bid128_to_uint32_rnint("0", "[303C00000000000000000031FFFFFF6B]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[303C00000000000000000031FFFFFFCD]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[303C00000000000000000031FFFFFFCE]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[303C00000000000000000031FFFFFFCF]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000003200000031]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000003200000032]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000003200000033]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[303C00000000000000000063FFFFFFCD]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[303C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "00")
+ self.bid128_to_uint32_rnint("0", "[303E00000000000000000004FFFFFFF5]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[303E00000000000000000004FFFFFFF6]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[303E00000000000000000004FFFFFFF7]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[303E00000000000000000004FFFFFFFB]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[303E00000000000000000004FFFFFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000500000000]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000500000001]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000500000005]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000500000009]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[303E000000000000000000050000000A]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[303E000000000000000000050000000B]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[303E00000000000000000009FFFFFFF5]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[303E00000000000000000009FFFFFFF6]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[303E00000000000000000009FFFFFFF7]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[303E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[303E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint32_rnint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint32_rnint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint32_rnint("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_rnint("0", "[30400000000000000000000080000000]", "2147483648", "00")
+ self.bid128_to_uint32_rnint("0", "[30400000000000000000000080000001]", "2147483649", "00")
+ self.bid128_to_uint32_rnint("0", "[304000000000000000000000FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_rnint("0", "[30400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[30400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[304000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[304000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint32_rnint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint32_rnint("0", "[304200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[30420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[30420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint32_rnint("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint32_rnint("0", "[30520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[30540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[38a80127243d5e39,3f8d670de6e9ff87]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "4294967296", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[49f83dd5788fbf58,76ebde8bb9a40e82]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[53f2000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[544ba795b9bb9926,658c2582b222c055]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "5.5", "6", "00")
+ self.bid128_to_uint32_rnint("0", "[57e91fc2692729d6,8cdb9420d7383914]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[620a256801220ee0,eeee5e779eefd79b]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[78000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[7ae75c2ec2fbf9f7,fffffdbdfe7fff5f]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[7bff7fffaff7fffc,fffffeffffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[7c000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[7e000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[923a2ad67a9ea634,8010000001010401]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[a06bb3c35abf2203,0f3897599156be4e]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[abb6000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[affddfbcffff9dfc,0000412000000020]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[AFFE314DC6448D9338C15B0A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[AFFE314DC6448D9338C15B0A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[AFFE49F4A966D45CD522088F00000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[AFFE49F4A966D45CD522088F00000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[b0000112018a0081,64c08d66a22003ca]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B00293E952CDA8B9AA44111E00000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B00293E952CDA8B9AA44111E00000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B00294286EACB8CB0A8CB6B140000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B00294286EACB8CB0A8CB6B140000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0040ECA8847C4129106CE8300000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0040ECA8847C4129106CE8300000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[b008c84384c1b86e,60d63da585053b7f]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B00A0003C95A2F0B4856475FE0000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B00A0003C95A2F0B4856475FE0000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B00C000060EF6B1ABA6F072330000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B00C000060EF6B1ABA6F072330000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE692B4B4B133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE692B4B4B133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE6FC95C29899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE6FC95C29899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE76676D080000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE76676D080000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE7D057DE676676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE7D057DE676676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE7D057DE676676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[b010a58000004846,be48dd32fd8eebb6]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010C5371912364CE3056C2800000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010C5371912364CE3056C2800000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCDF92B853133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01600000000003627E8F712373BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01600000000003627E8F712373C0000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01600000000003627E8F712373C0001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0180002B5E3AF13FBA450E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0180002B5E3AF13FBA450E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0180002B5E3AF19676BAF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0180002B5E3AF19676BAF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[b018000c00000000,deffffbfddfdfbff]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A0000000000004563918244F3FFFF]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[B01A0000000000004563918244F40000]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[B01A0000000000004563918244F40001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A0000000000008AC7230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A0000000000008AC7230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A0000000000008AC7230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A000045639181BA2CDCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A000045639181BA2CDCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A000045639181BA2CDCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00004563918244F4000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00004563918244F4000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A000045639182CFBB230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A000045639182CFBB230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A000045639182CFBB230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00008AC72303FF20DCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01C00000000000014D1120D7B15FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01C00000000000014D1120D7B160000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01C00000000000014D1120D7B160001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01E000000000001A055690D9DB7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01E000000000001A055690D9DB80000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B01E000000000001A055690D9DB80001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02000000000000029A2241AF62BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02000000000000029A2241AF62C0000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02000000000000029A2241AF62C0001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B024000000000000006A94D74F42FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B024000000000000006A94D74F430000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B024000000000000006A94D74F430001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02A00000000000000000017428106FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02A0000000000000000001742810700]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02A0000000000000000001742810701]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C000000000000000002BBA7F521FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C000000000000000002BBA7F52200]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C000000000000000002BBA7F52201]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02E000000000000000000001DCD64FF]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[B02E000000000000000000001DCD6500]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[B02E000000000000000000001DCD6501]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02E000000000000000000003B9AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02E000000000000000000003B9ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02E000000000000000000003B9ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02E0000000000000000000059682EFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02E0000000000000000000059682F00]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02E0000000000000000000059682F01]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B02E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03000000000000000000006FC23ABFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03000000000000000000006FC23AC00]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03000000000000000000006FC23AC01]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03200000000000000000000B2D05DFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03200000000000000000000B2D05E00]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03200000000000000000000B2D05E01]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03800000000000000000000002DDA47]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03800000000000000000000002DDA48]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03800000000000000000000002DDA49]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03A00000000000000000000000003E7]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03A00000000000000000000000005DB]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03A00000000000000000000000005DC]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03A00000000000000000000000005DD]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03A00000000000000000000000495D3]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03A00000000000000000000000495D4]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03A00000000000000000000000495D5]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000000000000095]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000000000000096]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000000000000097]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000000000007561]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000000000007562]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000000000007563]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C00000000000000000031FFFFFF69]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C00000000000000000031FFFFFF6A]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C00000000000000000031FFFFFF6B]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C00000000000000000031FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C00000000000000000031FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C00000000000000000031FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000003200000031]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000003200000032]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000003200000033]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[B03E000000000000000000000000000F]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000000000BB7]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000000000BB8]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000000000BB9]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000000000BBD]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E00000000000000000004FFFFFFF1]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E00000000000000000004FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E00000000000000000004FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E00000000000000000004FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E00000000000000000004FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E00000000000000000004FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000500000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000500000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000500000005]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000500000009]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E000000000000000000050000000A]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E000000000000000000050000000B]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E00000000000000000009FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E00000000000000000009FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B03E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0400000000000000000000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B040000000000000000000000000012B]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B040000000000000000000000000012C]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B040000000000000000000000000012D]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B040000000000000000000007FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0400000000000000000000080000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0400000000000000000000080000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B04000000000000000000000FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B04000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B04000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B042000000000000000000000000001D]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B042000000000000000000000000001E]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B042000000000000000000000000001F]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B04200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0440000000000000000000000000003]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0520000000000000000000000000004]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[B0540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[b6c25dfe6fec677d,e578aa8aa40f4b1d]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[c024000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[d8749bc1592c0053,92cb8ac564abffa5]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[e453ad749a5880db,ff893a32625017f1]", "0", "00")
+ self.bid128_to_uint32_rnint("0", "[fa2152399330f7fd,42afeb0123ae5dc1]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[fbfbef1e1fbffe2f,0000422200400210]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[fddfffffffffffff,3bfebbef5c91ea5b]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[fdfddffd7f6ffeff,fd48f47fb8fbeaef]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[feffefbfffffeff7,2a97bf5e030d67c8]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "[fffbffffffffffff,ffffffffffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "Infinity", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "QNaN", "-2147483648", "01")
+ self.bid128_to_uint32_rnint("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_uint32_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint32_rninta() {
+ self.bid128_to_uint32_rninta("0", "-0", "0", "00")
+ self.bid128_to_uint32_rninta("0", "0", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[0000000000000000,0000020000200000]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[0000000000000000,2a1b19d72c0b1383]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[0080000000000000,cff3fbdff8fb99b7]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "0.1", "0", "00")
+ self.bid128_to_uint32_rninta("0", "1073741824", "1073741824", "00")
+ self.bid128_to_uint32_rninta("0", "[15fa6b9cd8501a58,c3ef24dc53f33586]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[1a5d25be009d819e,9ca809791e94153a]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint32_rninta("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_uint32_rninta("0", "[3000040002044046,feeef76bfef7f8e6]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[3001000c18040480,feead772bd0f56fe]", "52", "00")
+ self.bid128_to_uint32_rninta("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE6FC95C29899892F800000]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE6FC95C29899892F800001]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE76676D080000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE76676D080000000000001]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE7D057DE676676D07FFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE7D057DE676676D0800000]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE7D057DE676676D0800001]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE83A38EC4ECCEDA1000000]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[301069E10DE83A38EC4ECCEDA1000001]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "00")
+ self.bid128_to_uint32_rninta("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint32_rninta("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCDF92B853133125F000000]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCDF92B853133125F000001]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCE630C931899892F7FFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3011eb808213f788,a80d02528a060181]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3014000800000892,c1dc0154b0131222]", "63382534", "00")
+ self.bid128_to_uint32_rninta("0", "[301600000000003627E8F712373BFFFF]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[301600000000003627E8F712373C0000]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[301600000000003627E8F712373C0001]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "00")
+ self.bid128_to_uint32_rninta("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[30180002B5E3AF19676BAF16B187FFFF]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[30180002B5E3AF19676BAF16B1880000]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[30180002B5E3AF19676BAF16B1880001]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[301800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[301800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[301800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[301800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[301800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[301A0000000000004563918244F3FFFF]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[301A0000000000004563918244F40000]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[301A0000000000004563918244F40001]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[301A0000000000008AC7230489E7FFFF]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[301A0000000000008AC7230489E80000]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[301A0000000000008AC7230489E80001]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[301a000033495600,1000800410490000]", "1587239321", "00")
+ self.bid128_to_uint32_rninta("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[301A00004563918244F4000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[301A00004563918244F4000000000001]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[301A000045639182CFBB230489E7FFFF]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[301A000045639182CFBB230489E80000]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[301A000045639182CFBB230489E80001]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[301A00008AC72303FF20DCFB7617FFFF]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[301A00008AC72303FF20DCFB76180000]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[301A00008AC72303FF20DCFB76180001]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[301A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[301A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[301A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[301A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[301A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[301C00000000000014D1120D7B15FFFF]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[301C00000000000014D1120D7B160000]", "2", "00")
+ self.bid128_to_uint32_rninta("0", "[301C00000000000014D1120D7B160001]", "2", "00")
+ self.bid128_to_uint32_rninta("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[3028000000000030,f47bdaff23a6cfff]", "903060631", "00")
+ self.bid128_to_uint32_rninta("0", "[302A00000000000000000017428106FF]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[302A0000000000000000001742810700]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[302A0000000000000000001742810701]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[302A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[302C000000000000000002BBA7F52200]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[302C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302E000000000000000000001DCD64FF]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[302E000000000000000000001DCD6500]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[302E000000000000000000001DCD6501]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[302E000000000000000000003B9AC9FF]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[302E000000000000000000003B9ACA00]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[302E000000000000000000003B9ACA01]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[302E0000000000000000000059682EFF]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[302E0000000000000000000059682F00]", "2", "00")
+ self.bid128_to_uint32_rninta("0", "[302E0000000000000000000059682F01]", "2", "00")
+ self.bid128_to_uint32_rninta("0", "[302E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[302E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303800000000000000000000002DDA48]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[303A00000000000000000000000005DB]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[303A00000000000000000000000005DC]", "2", "00")
+ self.bid128_to_uint32_rninta("0", "[303A00000000000000000000000005DD]", "2", "00")
+ self.bid128_to_uint32_rninta("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303A00000000000000000000000495D4]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000000000000095]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000000000000096]", "2", "00")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000000000000097]", "2", "00")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000000000007562]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[303C00000000000000000031FFFFFF69]", "2147483646", "00")
+ self.bid128_to_uint32_rninta("0", "[303C00000000000000000031FFFFFF6A]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[303C00000000000000000031FFFFFF6B]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[303C00000000000000000031FFFFFFCD]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[303C00000000000000000031FFFFFFCE]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[303C00000000000000000031FFFFFFCF]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000003200000031]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000003200000032]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000003200000033]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[303C00000000000000000063FFFFFFCD]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[303C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[303E00000000000000000004FFFFFFF1]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[303E00000000000000000004FFFFFFF5]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[303E00000000000000000004FFFFFFF6]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[303E00000000000000000004FFFFFFF7]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[303E00000000000000000004FFFFFFFB]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[303E00000000000000000004FFFFFFFF]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000500000000]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000500000001]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000500000005]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000500000009]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[303E000000000000000000050000000A]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[303E000000000000000000050000000B]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[303E00000000000000000009FFFFFFF5]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[303E00000000000000000009FFFFFFF6]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[303E00000000000000000009FFFFFFF7]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[303E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[303E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint32_rninta("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint32_rninta("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint32_rninta("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_rninta("0", "[30400000000000000000000080000000]", "2147483648", "00")
+ self.bid128_to_uint32_rninta("0", "[30400000000000000000000080000001]", "2147483649", "00")
+ self.bid128_to_uint32_rninta("0", "[304000000000000000000000FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_rninta("0", "[30400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[30400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[304000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[304000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint32_rninta("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint32_rninta("0", "[304200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[30420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[30420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint32_rninta("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint32_rninta("0", "[30520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[30540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[41d2793cc9b1468d,e255fffbbd6034f9]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "4294967296", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[56ea8cbf50624439,44d75b89ef01579d]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[78000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[7b0a03046632505a,447ce3fa7e5dc28e]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[7c000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[7e000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[94a3417cdd393b2c,c9951d5bf3c19838]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[975ed9d4ad3d75f9,b7fca6a13b0e4358]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[9e5fd8e2ef4bbda8,4681491045b79c04]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[affc7bd5caf7dff0,f0676f03cd115c3b]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[AFFCF684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[AFFCF684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[affde0ffefffedad,5cd0bd2e3235dcd5]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[AFFDEC8B86EF679D76FC433D80000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[AFFDEC8B86EF679D76FC433D80000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[AFFE314DC6448D9338C15B0A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[AFFE314DC6448D9338C15B0A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[AFFE49F4A966D45CD522088F00000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[AFFE49F4A966D45CD522088F00000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[afffebebff25aaef,dfbec7f9e37f5fde]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00293E952CDA8B9AA44111E00000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00293E952CDA8B9AA44111E00000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00294286EACB8CB0A8CB6B140000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00294286EACB8CB0A8CB6B140000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0040ECA8847C4129106CE8300000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0040ECA8847C4129106CE8300000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00A0003C95A2F0B4856475FE0000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00A0003C95A2F0B4856475FE0000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00C000060EF6B1ABA6F072330000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B00C000060EF6B1ABA6F072330000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE692B4B4B133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE692B4B4B133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE6FC95C29899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE6FC95C29899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE76676D080000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE76676D080000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE7D057DE676676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE7D057DE676676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE7D057DE676676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010C5371912364CE3056C27FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010C5371912364CE3056C2800000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010C5371912364CE3056C2800000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCDF92B853133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[b011370490728775,003091c11060c048]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01600000000003627E8F712373BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01600000000003627E8F712373C0000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01600000000003627E8F712373C0001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0180002B5E3AF13FBA450E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0180002B5E3AF13FBA450E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0180002B5E3AF19676BAF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0180002B5E3AF19676BAF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[b018000c10000000,2191a0442a117604]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A0000000000004563918244F3FFFF]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[B01A0000000000004563918244F40000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A0000000000004563918244F40001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A0000000000008AC7230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A0000000000008AC7230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A0000000000008AC7230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A0000000000A2E6C09AD3E0D40000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A0000000000A2E6C09AD3E0D40001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A000045639181BA2CDCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A000045639181BA2CDCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A000045639181BA2CDCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00004563918244F4000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00004563918244F4000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A000045639182CFBB230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A000045639182CFBB230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A000045639182CFBB230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00008AC72303FF20DCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01C00000000000014D1120D7B15FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01C00000000000014D1120D7B160000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01C00000000000014D1120D7B160001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01E000000000001A055690D9DB7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01E000000000001A055690D9DB80000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B01E000000000001A055690D9DB80001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02000000000000029A2241AF62BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02000000000000029A2241AF62C0000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02000000000000029A2241AF62C0001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B024000000000000006A94D74F42FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B024000000000000006A94D74F430000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B024000000000000006A94D74F430001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02A00000000000000000017428106FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02A0000000000000000001742810700]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02A0000000000000000001742810701]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C000000000000000002BBA7F521FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C000000000000000002BBA7F52200]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C000000000000000002BBA7F52201]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02E000000000000000000001DCD64FF]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[B02E000000000000000000001DCD6500]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02E000000000000000000001DCD6501]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02E000000000000000000003B9AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02E000000000000000000003B9ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02E000000000000000000003B9ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02E0000000000000000000059682EFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02E0000000000000000000059682F00]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02E0000000000000000000059682F01]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B02E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03000000000000000000006FC23ABFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03000000000000000000006FC23AC00]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03000000000000000000006FC23AC01]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03200000000000000000000B2D05DFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03200000000000000000000B2D05E00]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03200000000000000000000B2D05E01]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03800000000000000000000002DDA47]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03800000000000000000000002DDA48]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03800000000000000000000002DDA49]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03A00000000000000000000000003E7]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03A00000000000000000000000005DB]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03A00000000000000000000000005DC]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03A00000000000000000000000005DD]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03A00000000000000000000000495D3]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03A00000000000000000000000495D4]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03A00000000000000000000000495D5]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000000000000095]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000000000000096]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000000000000097]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000000000007561]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000000000007562]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000000000007563]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C00000000000000000031FFFFFF69]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C00000000000000000031FFFFFF6A]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C00000000000000000031FFFFFF6B]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C00000000000000000031FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C00000000000000000031FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C00000000000000000031FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000003200000031]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000003200000032]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000003200000033]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E000000000000000000000000000F]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000000000BB7]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000000000BB8]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000000000BB9]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000000000BBD]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E00000000000000000004FFFFFFF1]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E00000000000000000004FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E00000000000000000004FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E00000000000000000004FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E00000000000000000004FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E00000000000000000004FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000500000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000500000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000500000005]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000500000009]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E000000000000000000050000000A]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E000000000000000000050000000B]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E00000000000000000009FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E00000000000000000009FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B03E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0400000000000000000000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B040000000000000000000000000012B]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B040000000000000000000000000012C]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B040000000000000000000000000012D]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B040000000000000000000007FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0400000000000000000000080000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0400000000000000000000080000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B04000000000000000000000FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B04000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B04000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B042000000000000000000000000001D]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B042000000000000000000000000001E]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B042000000000000000000000000001F]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B04200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0440000000000000000000000000003]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0520000000000000000000000000004]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[B0540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[c249a2a173ee615d,ffc9caac6a0d2463]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[c7d4b039a4395dbf,3c81c02cb669d1f6]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[d0693a34fece3d44,5c6230e8e9050ccc]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[d71bff3bfffffee6,0000101008400084]", "0", "00")
+ self.bid128_to_uint32_rninta("0", "[dc27defbcb42587b,8d747f6243ca4288]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[de8aa2497972352e,c36e21b31eccc4f1]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[fbffeffff7ffffff,216e0958d5104585]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[fdbfffffffffffff,129565b2ce5ae95a]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "[ffe52eb7ffdff7ff,fbb7fdffffffefff]", "-2147483648", "01")
+ self.bid128_to_uint32_rninta("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_uint32_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint32_xceil() {
+ self.bid128_to_uint32_xceil("0", "-0", "0", "00")
+ self.bid128_to_uint32_xceil("0", "0", "0", "00")
+ self.bid128_to_uint32_xceil("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xceil("0", "[0000000000000000,0000000001010000]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[0000000000000000,43c0251c5d6225ae]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[0000000000000000,fffffeffffff7bff]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "+0.000000000010000E0", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint32_xceil("0", "[0262000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xceil("0", "[0474a2fb3301523c,6e0e252b5c10f781]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[0c0e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xceil("0", "[0f53278c5ecfbed7,7892b934a613368b]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "1073741824", "1073741824", "00")
+ self.bid128_to_uint32_xceil("0", "1", "1", "00")
+ self.bid128_to_uint32_xceil("0", "+110.01E0", "111", "20")
+ self.bid128_to_uint32_xceil("0", "[1ae675b11cdf8b24,26c161e794d9ed88]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[1c9c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xceil("0", "[20052bedec418889,3f8be0a06b33aa41]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[21a06fe6f201ac1c,792be00d63d4f4be]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[25fa0a239b7be1be,797f373779ebebe2]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[2a9b19df6c0b1393,dcc7b75da61dc21a]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[2e1d3e562627d963,6a6f87546d18e1e7]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint32_xceil("0", "[2FFE314DC6448D9338C15B0A00000001]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[300293E952CDA8B9AA44111E00000001]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xceil("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[30040ECA8847C4129106CE8300000001]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[30062cca3a48850e,df5fffffdf3cfff6]", "9085", "20")
+ self.bid128_to_uint32_xceil("0", "[3008000808008278,0008000404100000]", "64", "20")
+ self.bid128_to_uint32_xceil("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xceil("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[300A0003C95A2F0B4856475FE0000001]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xceil("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[300C000060EF6B1ABA6F072330000001]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE692B4B4B133125F000001]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE6FC95C29899892F800000]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE6FC95C29899892F800001]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE76676D080000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE76676D080000000000001]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE7D057DE676676D07FFFFF]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE7D057DE676676D0800000]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE7D057DE676676D0800001]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE83A38EC4ECCEDA1000000]", "2147483649", "00")
+ self.bid128_to_uint32_xceil("0", "[301069E10DE83A38EC4ECCEDA1000001]", "2147483650", "20")
+ self.bid128_to_uint32_xceil("0", "[3010800000010000,0010024502000840]", "-1698818865", "20")
+ self.bid128_to_uint32_xceil("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "20")
+ self.bid128_to_uint32_xceil("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint32_xceil("0", "[3010C5371912364CE3056C2800000001]", "4000000001", "20")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCDF92B853133125F000000]", "4294967295", "00")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[30117e6b61d790ab,7fde7feddde9b97d]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3014000050048499,b045c090e2abc942]", "2476427", "20")
+ self.bid128_to_uint32_xceil("0", "[301600000000003627E8F712373BFFFF]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[301600000000003627E8F712373C0000]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[301600000000003627E8F712373C0001]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[30180002B5E3AF19676BAF16B187FFFF]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[30180002B5E3AF19676BAF16B1880000]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[30180002B5E3AF19676BAF16B1880001]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301A0000000000004563918244F3FFFF]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[301A0000000000004563918244F40000]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[301A0000000000004563918244F40001]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[301A0000000000008AC7230489E7FFFF]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[301A0000000000008AC7230489E80000]", "1", "00")
+ self.bid128_to_uint32_xceil("0", "[301A0000000000008AC7230489E80001]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_uint32_xceil("0", "[301A000045639181BA2CDCFB76180001]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[301A00004563918244F4000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_xceil("0", "[301A00004563918244F4000000000001]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[301A000045639182CFBB230489E7FFFF]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[301A000045639182CFBB230489E80000]", "2147483649", "00")
+ self.bid128_to_uint32_xceil("0", "[301A000045639182CFBB230489E80001]", "2147483650", "20")
+ self.bid128_to_uint32_xceil("0", "[301a000060984001,ffdfbffff7ffffff]", "-1305505302", "20")
+ self.bid128_to_uint32_xceil("0", "[301A00008AC72303FF20DCFB7617FFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xceil("0", "[301A00008AC72303FF20DCFB76180000]", "4294967295", "00")
+ self.bid128_to_uint32_xceil("0", "[301A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[301C00000000000014D1120D7B15FFFF]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[301C00000000000014D1120D7B160000]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[301C00000000000014D1120D7B160001]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_uint32_xceil("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[301E000000000001A055690D9DB80001]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_uint32_xceil("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[302000000000000029A2241AF62C0001]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_uint32_xceil("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[3024000000000000006A94D74F430001]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[302A00000000000000000017428106FF]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[302A0000000000000000001742810700]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[302A0000000000000000001742810701]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[302A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302C000000000000000002BBA7F521FF]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[302C000000000000000002BBA7F52200]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[302C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302E000000000000000000001DCD64FF]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[302E000000000000000000001DCD6500]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[302E000000000000000000001DCD6501]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[302E000000000000000000003B9AC9FF]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[302E000000000000000000003B9ACA00]", "1", "00")
+ self.bid128_to_uint32_xceil("0", "[302E000000000000000000003B9ACA01]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[302E0000000000000000000059682EFF]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[302E0000000000000000000059682F00]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[302E0000000000000000000059682F01]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[302E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[302E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_uint32_xceil("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[303000000000000000000006FC23AC01]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_uint32_xceil("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[303200000000000000000000B2D05E01]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303800000000000000000000002DDA47]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303800000000000000000000002DDA48]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[303A00000000000000000000000005DB]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[303A00000000000000000000000005DC]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[303A00000000000000000000000005DD]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[303A00000000000000000000000495D3]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303A00000000000000000000000495D4]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000000000000095]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000000000000096]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000000000000097]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000000000007561]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000000000007562]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303C00000000000000000031FFFFFF69]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[303C00000000000000000031FFFFFF6A]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[303C00000000000000000031FFFFFF6B]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[303C00000000000000000031FFFFFFCD]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[303C00000000000000000031FFFFFFCE]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[303C00000000000000000031FFFFFFCF]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000003200000031]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000003200000032]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000003200000033]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[303C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_uint32_xceil("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000000000BB9]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_uint32_xceil("0", "[303E00000000000000000004FFFFFFF1]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[303E00000000000000000004FFFFFFF5]", "2147483647", "20")
+ self.bid128_to_uint32_xceil("0", "[303E00000000000000000004FFFFFFF6]", "2147483647", "00")
+ self.bid128_to_uint32_xceil("0", "[303E00000000000000000004FFFFFFF7]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[303E00000000000000000004FFFFFFFB]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[303E00000000000000000004FFFFFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000500000000]", "2147483648", "00")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000500000001]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000500000005]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000500000009]", "2147483649", "20")
+ self.bid128_to_uint32_xceil("0", "[303E000000000000000000050000000A]", "2147483649", "00")
+ self.bid128_to_uint32_xceil("0", "[303E000000000000000000050000000B]", "2147483650", "20")
+ self.bid128_to_uint32_xceil("0", "[303E00000000000000000009FFFFFFF5]", "4294967295", "20")
+ self.bid128_to_uint32_xceil("0", "[303E00000000000000000009FFFFFFF6]", "4294967295", "00")
+ self.bid128_to_uint32_xceil("0", "[303E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[303E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint32_xceil("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint32_xceil("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint32_xceil("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_xceil("0", "[30400000000000000000000080000000]", "2147483648", "00")
+ self.bid128_to_uint32_xceil("0", "[30400000000000000000000080000001]", "2147483649", "00")
+ self.bid128_to_uint32_xceil("0", "[304000000000000000000000FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_xceil("0", "[30400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[30400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[304000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[304000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint32_xceil("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint32_xceil("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint32_xceil("0", "[304200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[30420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[30420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint32_xceil("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint32_xceil("0", "[30520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[30540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "+366357.9E0", "366358", "20")
+ self.bid128_to_uint32_xceil("0", "4294967296", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "5.5", "6", "20")
+ self.bid128_to_uint32_xceil("0", "[78000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[7abc96128723e075,2a9c59be63a0b0b1]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[7c000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[7e000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[8114000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xceil("0", "[88706b5e5b030866,96d36db713235d0f]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "+8989.9988898888898898E0", "8990", "20")
+ self.bid128_to_uint32_xceil("0", "[8eae000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xceil("0", "[8fa7e9e139ece090,809eba3f42ed437f]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[951e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xceil("0", "+9989998.8889E0", "9989999", "20")
+ self.bid128_to_uint32_xceil("0", "[ac51e543dce9466a,fd0768f76a4915a8]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[acea5fa5d3686f74,62a1235048c0c5e2]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[AFFE314DC6448D9338C15B0A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[AFFE314DC6448D9338C15B0A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[AFFE49F4A966D45CD522088F00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[AFFE49F4A966D45CD522088F00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00293E952CDA8B9AA44111E00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00293E952CDA8B9AA44111E00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00294286EACB8CB0A8CB6B140000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00294286EACB8CB0A8CB6B140000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0040ECA8847C4129106CE8300000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0040ECA8847C4129106CE8300000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[b009a1c2e3ca9de6,7b6473eac5baecad]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00A0003C95A2F0B4856475FE0000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00A0003C95A2F0B4856475FE0000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00C000060EF6B1ABA6F072330000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B00C000060EF6B1ABA6F072330000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE692B4B4B133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE692B4B4B133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE6FC95C29899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE6FC95C29899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE76676D080000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE76676D080000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE7D057DE676676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE7D057DE676676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE7D057DE676676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010C5371912364CE3056C27FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010C5371912364CE3056C2800000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010C5371912364CE3056C2800000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCDF92B853133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[b0117b0f91e6d11b,b013b25a401cd49c]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01600000000003627E8F712373BFFFF]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B01600000000003627E8F712373C0000]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B01600000000003627E8F712373C0001]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0180002B5E3AF13FBA450E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0180002B5E3AF13FBA450E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0180002B5E3AF19676BAF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0180002B5E3AF19676BAF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A0000000000004563918244F3FFFF]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B01A0000000000004563918244F40000]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B01A0000000000004563918244F40001]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B01A0000000000008AC7230489E7FFFF]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B01A0000000000008AC7230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A0000000000008AC7230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A0000000000A2E6C09AD3E0D40000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A0000000000A2E6C09AD3E0D40001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A000045639181BA2CDCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A000045639181BA2CDCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A000045639181BA2CDCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00004563918244F4000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00004563918244F4000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A000045639182CFBB230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A000045639182CFBB230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A000045639182CFBB230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00008AC72303FF20DCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01C00000000000014D1120D7B15FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01C00000000000014D1120D7B160000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01C00000000000014D1120D7B160001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01E000000000001A055690D9DB7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01E000000000001A055690D9DB80000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B01E000000000001A055690D9DB80001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02000000000000029A2241AF62BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02000000000000029A2241AF62C0000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02000000000000029A2241AF62C0001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[b020000000401004,cf4ef3fea7eff1eb]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B024000000000000006A94D74F42FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B024000000000000006A94D74F430000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B024000000000000006A94D74F430001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02A00000000000000000017428106FF]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B02A0000000000000000001742810700]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B02A0000000000000000001742810701]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B02A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C000000000000000002BBA7F521FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C000000000000000002BBA7F52200]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C000000000000000002BBA7F52201]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02E000000000000000000001DCD64FF]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B02E000000000000000000001DCD6500]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B02E000000000000000000001DCD6501]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B02E000000000000000000003B9AC9FF]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B02E000000000000000000003B9ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02E000000000000000000003B9ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02E0000000000000000000059682EFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02E0000000000000000000059682F00]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02E0000000000000000000059682F01]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B02E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03000000000000000000006FC23ABFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03000000000000000000006FC23AC00]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03000000000000000000006FC23AC01]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03200000000000000000000B2D05DFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03200000000000000000000B2D05E00]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03200000000000000000000B2D05E01]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03800000000000000000000002DDA47]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03800000000000000000000002DDA48]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03800000000000000000000002DDA49]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B03A00000000000000000000000005DB]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03A00000000000000000000000005DC]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03A00000000000000000000000005DD]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03A00000000000000000000000495D3]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03A00000000000000000000000495D4]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03A00000000000000000000000495D5]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000000000000095]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000000000000096]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000000000000097]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000000000007561]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000000000007562]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000000000007563]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C00000000000000000031FFFFFF69]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C00000000000000000031FFFFFF6A]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C00000000000000000031FFFFFF6B]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C00000000000000000031FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C00000000000000000031FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C00000000000000000031FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000003200000031]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000003200000032]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000003200000033]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint32_xceil("0", "[B03E000000000000000000000000000F]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000000000BB7]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000000000BB8]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000000000BB9]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000000000BBD]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E00000000000000000004FFFFFFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E00000000000000000004FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E00000000000000000004FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E00000000000000000004FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E00000000000000000004FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E00000000000000000004FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000500000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000500000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000500000005]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000500000009]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E000000000000000000050000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E000000000000000000050000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E00000000000000000009FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E00000000000000000009FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B03E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0400000000000000000000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B040000000000000000000000000012B]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B040000000000000000000000000012C]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B040000000000000000000000000012D]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B040000000000000000000007FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0400000000000000000000080000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0400000000000000000000080000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B04000000000000000000000FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B04000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B04000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B042000000000000000000000000001D]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B042000000000000000000000000001E]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B042000000000000000000000000001F]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B04200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0440000000000000000000000000003]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0520000000000000000000000000004]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[B0540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[bd1c000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xceil("0", "[bec79e4270af2494,fb32ee4dc039e51b]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[becd63e40053c304,6b69c96d4805d810]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[c078f7eb8d183803,fe7ffdbfffefffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[ca92039e6933c679,8cac1c431e599b3d]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[e084440051600011,2000c006b3802042]", "0", "00")
+ self.bid128_to_uint32_xceil("0", "[fada7fffed29bfef,2412528009e0b6dc]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[fdfffff7dff7ffff,995987966a5caba5]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "[ffffffffffffcfbf,5120dc2d800d0002]", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_uint32_xceil("0", "Infinity", "-2147483648", "01")
+ }
+
+ private func bid128_to_uint32_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint32_xfloor() {
+ self.bid128_to_uint32_xfloor("0", "-0", "0", "00")
+ self.bid128_to_uint32_xfloor("0", "0", "0", "00")
+ self.bid128_to_uint32_xfloor("0", "[0000000000000000,ad7fffe5e47c9ff1]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint32_xfloor("0", "[0002000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xfloor("0", "[0208000000000000,0000000040000000]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "1.0", "1", "00")
+ self.bid128_to_uint32_xfloor("0", "[1904100018004000,d01930281cc000a0]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[2a2d6371e8cb5053,dbf7cb9f39e2eb5f]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint32_xfloor("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[2fff3feeffffffbf,0000000000000000]", "6", "20")
+ self.bid128_to_uint32_xfloor("0", "[2fff4f7ffdffb7ed,0600000090088040]", "6", "20")
+ self.bid128_to_uint32_xfloor("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "20")
+ self.bid128_to_uint32_xfloor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "20")
+ self.bid128_to_uint32_xfloor("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[3007000008100021,f3dfbb9efff7d7cf]", "51922", "20")
+ self.bid128_to_uint32_xfloor("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "20")
+ self.bid128_to_uint32_xfloor("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "20")
+ self.bid128_to_uint32_xfloor("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[3010552d04901900,fff63af7ff7bbfbf]", "1727571495", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE6FC95C29899892F800000]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE6FC95C29899892F800001]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE76676D080000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE76676D080000000000001]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE7D057DE676676D07FFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE7D057DE676676D0800000]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE7D057DE676676D0800001]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE83A38EC4ECCEDA1000000]", "2147483649", "00")
+ self.bid128_to_uint32_xfloor("0", "[301069E10DE83A38EC4ECCEDA1000001]", "2147483649", "20")
+ self.bid128_to_uint32_xfloor("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "20")
+ self.bid128_to_uint32_xfloor("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint32_xfloor("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "4294967294", "20")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCDF92B853133125F000000]", "4294967295", "00")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCDF92B853133125F000001]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCE630C931899892F7FFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCE630C931899892F800000]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCE630C931899892F800001]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3011670020105820,5703a6194e04e4bb]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3014000b86420501,91eb289508194018]", "91306059", "20")
+ self.bid128_to_uint32_xfloor("0", "[3014020000240040,0000000000040000]", "-238481024", "20")
+ self.bid128_to_uint32_xfloor("0", "[301600000000003627E8F712373BFFFF]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[301600000000003627E8F712373C0000]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[301600000000003627E8F712373C0001]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[30180002B5E3AF19676BAF16B187FFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[30180002B5E3AF19676BAF16B1880000]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[30180002B5E3AF19676BAF16B1880001]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[301800056BC75E2AAD2C50E94E780000]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[301800056BC75E2AAD2C50E94E780001]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[301800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[301800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[301800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3018000886801000,fdfdfffffffffffd]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[301A0000000000004563918244F3FFFF]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A0000000000004563918244F40000]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A0000000000004563918244F40001]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A0000000000008AC7230489E7FFFF]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A0000000000008AC7230489E80000]", "1", "00")
+ self.bid128_to_uint32_xfloor("0", "[301A0000000000008AC7230489E80001]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_uint32_xfloor("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A00004563918244F4000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_xfloor("0", "[301A00004563918244F4000000000001]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A000045639182CFBB230489E7FFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A000045639182CFBB230489E80000]", "2147483649", "00")
+ self.bid128_to_uint32_xfloor("0", "[301A000045639182CFBB230489E80001]", "2147483649", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A00008AC72303FF20DCFB7617FFFF]", "4294967294", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A00008AC72303FF20DCFB76180000]", "4294967295", "00")
+ self.bid128_to_uint32_xfloor("0", "[301A00008AC72303FF20DCFB76180001]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[301A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[301A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[301A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[301A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[301A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[301C00000000000014D1120D7B15FFFF]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[301C00000000000014D1120D7B160000]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[301C00000000000014D1120D7B160001]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[301E000000000001A055690D9DB7FFFF]", "299", "20")
+ self.bid128_to_uint32_xfloor("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[302000000000000029A2241AF62BFFFF]", "299", "20")
+ self.bid128_to_uint32_xfloor("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[3020000000000000,612d150849c54208]", "700", "20")
+ self.bid128_to_uint32_xfloor("0", "[3024000000000000006A94D74F42FFFF]", "299", "20")
+ self.bid128_to_uint32_xfloor("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[302A00000000000000000017428106FF]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[302A0000000000000000001742810700]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[302A0000000000000000001742810701]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[302A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[302C000000000000000002BBA7F52201]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[302C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302E000000000000000000001DCD64FF]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[302E000000000000000000001DCD6500]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[302E000000000000000000001DCD6501]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[302E000000000000000000003B9AC9FF]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[302E000000000000000000003B9ACA00]", "1", "00")
+ self.bid128_to_uint32_xfloor("0", "[302E000000000000000000003B9ACA01]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[302E0000000000000000000059682EFF]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[302E0000000000000000000059682F00]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[302E0000000000000000000059682F01]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[302E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[302E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303000000000000000000006FC23ABFF]", "299", "20")
+ self.bid128_to_uint32_xfloor("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303200000000000000000000B2D05DFF]", "299", "20")
+ self.bid128_to_uint32_xfloor("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303800000000000000000000002DDA49]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[303A00000000000000000000000005DB]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[303A00000000000000000000000005DC]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[303A00000000000000000000000005DD]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303A00000000000000000000000495D5]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000000000000095]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000000000000096]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000000000000097]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000000000007563]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C00000000000000000031FFFFFF69]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C00000000000000000031FFFFFF6A]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C00000000000000000031FFFFFF6B]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C00000000000000000031FFFFFFCD]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C00000000000000000031FFFFFFCE]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C00000000000000000031FFFFFFCF]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000003200000031]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000003200000032]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000003200000033]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C00000000000000000063FFFFFFCD]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C00000000000000000063FFFFFFCE]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C00000000000000000063FFFFFFCF]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000000000BB7]", "299", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E00000000000000000004FFFFFFF5]", "2147483646", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E00000000000000000004FFFFFFF6]", "2147483647", "00")
+ self.bid128_to_uint32_xfloor("0", "[303E00000000000000000004FFFFFFF7]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E00000000000000000004FFFFFFFB]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E00000000000000000004FFFFFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000500000000]", "2147483648", "00")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000500000001]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000500000005]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000500000009]", "2147483648", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E000000000000000000050000000A]", "2147483649", "00")
+ self.bid128_to_uint32_xfloor("0", "[303E000000000000000000050000000B]", "2147483649", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E00000000000000000009FFFFFFF5]", "4294967294", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E00000000000000000009FFFFFFF6]", "4294967295", "00")
+ self.bid128_to_uint32_xfloor("0", "[303E00000000000000000009FFFFFFF7]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E00000000000000000009FFFFFFFB]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E00000000000000000009FFFFFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[303E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint32_xfloor("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint32_xfloor("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint32_xfloor("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_xfloor("0", "[3040000000000000,0000000080000000]", "-2147483648", "00")
+ self.bid128_to_uint32_xfloor("0", "[30400000000000000000000080000000]", "2147483648", "00")
+ self.bid128_to_uint32_xfloor("0", "[30400000000000000000000080000001]", "2147483649", "00")
+ self.bid128_to_uint32_xfloor("0", "[304000000000000000000000FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_xfloor("0", "[30400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[30400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[304000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[304000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint32_xfloor("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint32_xfloor("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint32_xfloor("0", "[304200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[30420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[30420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint32_xfloor("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint32_xfloor("0", "[30520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[30540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "4294967296", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[4b2db667f824ef88,376542d57019d1b8]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "5.05", "5", "20")
+ self.bid128_to_uint32_xfloor("0", "[50a4000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xfloor("0", "[5145bb8560dfd574,8201165dc7769c43]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "5.5", "5", "20")
+ self.bid128_to_uint32_xfloor("0", "+75768587.877575778979E0", "75768587", "20")
+ self.bid128_to_uint32_xfloor("0", "[78000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[79a6cf39c887f92d,7d1f9c3fb2b0316a]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[7c000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[7e000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "+8.72858427458277826E0", "8", "20")
+ self.bid128_to_uint32_xfloor("0", "+88988.8898999889899E0", "88988", "20")
+ self.bid128_to_uint32_xfloor("0", "+8988.899E0", "8988", "20")
+ self.bid128_to_uint32_xfloor("0", "[8d5142ff9bcb8b7d,13ac67f81e65992b]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[904a667e28ecca67,0737e894469a6b92]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[942e9ded505c54d1,708c6c6c098eab79]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "+9.88E0", "9", "20")
+ self.bid128_to_uint32_xfloor("0", "[aec7e6995c749961,086e505c0a9ff5e1]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[afcd9863c741069d,edb49e58cadd9a3e]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFCF684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFCF684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFDEC8B86EF679D76FC433D80000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFDEC8B86EF679D76FC433D80000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFE314DC6448D9338C15B0A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFE314DC6448D9338C15B0A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFE49F4A966D45CD522088F00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[AFFE49F4A966D45CD522088F00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00293E952CDA8B9AA44111E00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00293E952CDA8B9AA44111E00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00294286EACB8CB0A8CB6B140000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00294286EACB8CB0A8CB6B140000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0040ECA8847C4129106CE8300000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0040ECA8847C4129106CE8300000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00A0003C95A2F0B4856475FE0000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00A0003C95A2F0B4856475FE0000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00C000060EF6B1ABA6F072330000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B00C000060EF6B1ABA6F072330000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE692B4B4B133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE692B4B4B133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE6FC95C29899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE6FC95C29899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE76676D080000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE76676D080000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE7D057DE676676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE7D057DE676676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE7D057DE676676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010C5371912364CE3056C27FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010C5371912364CE3056C2800000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010C5371912364CE3056C2800000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCDF92B853133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01600000000003627E8F712373BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01600000000003627E8F712373C0000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01600000000003627E8F712373C0001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0180002B5E3AF13FBA450E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0180002B5E3AF13FBA450E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0180002B5E3AF19676BAF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0180002B5E3AF19676BAF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A0000000000004563918244F3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A0000000000004563918244F40000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A0000000000004563918244F40001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A0000000000008AC7230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A0000000000008AC7230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A0000000000008AC7230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A0000000000A2E6C09AD3E0D40000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A0000000000A2E6C09AD3E0D40001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A000045639181BA2CDCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A000045639181BA2CDCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A000045639181BA2CDCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00004563918244F4000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00004563918244F4000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A000045639182CFBB230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A000045639182CFBB230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A000045639182CFBB230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00008AC72303FF20DCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01C00000000000014D1120D7B15FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01C00000000000014D1120D7B160000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01C00000000000014D1120D7B160001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01E000000000001A055690D9DB7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01E000000000001A055690D9DB80000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B01E000000000001A055690D9DB80001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02000000000000029A2241AF62BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02000000000000029A2241AF62C0000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02000000000000029A2241AF62C0001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B024000000000000006A94D74F42FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B024000000000000006A94D74F430000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B024000000000000006A94D74F430001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02A00000000000000000017428106FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02A0000000000000000001742810700]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02A0000000000000000001742810701]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C000000000000000002BBA7F521FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C000000000000000002BBA7F52200]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C000000000000000002BBA7F52201]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E000000000000000000001DCD64FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E000000000000000000001DCD6500]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E000000000000000000001DCD6501]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E000000000000000000003B9AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E000000000000000000003B9ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E000000000000000000003B9ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E0000000000000000000059682EFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E0000000000000000000059682F00]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E0000000000000000000059682F01]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B02E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03000000000000000000006FC23ABFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03000000000000000000006FC23AC00]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03000000000000000000006FC23AC01]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03200000000000000000000B2D05DFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03200000000000000000000B2D05E00]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03200000000000000000000B2D05E01]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03800000000000000000000002DDA47]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03800000000000000000000002DDA48]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03800000000000000000000002DDA49]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03A00000000000000000000000003E7]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03A00000000000000000000000005DB]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03A00000000000000000000000005DC]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03A00000000000000000000000005DD]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03A00000000000000000000000495D3]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03A00000000000000000000000495D4]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03A00000000000000000000000495D5]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000000000000095]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000000000000096]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000000000000097]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000000000007561]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000000000007562]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000000000007563]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C00000000000000000031FFFFFF69]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C00000000000000000031FFFFFF6A]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C00000000000000000031FFFFFF6B]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C00000000000000000031FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C00000000000000000031FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C00000000000000000031FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000003200000031]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000003200000032]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000003200000033]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E000000000000000000000000000F]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000000000BB7]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000000000BB8]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000000000BB9]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000000000BBD]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E00000000000000000004FFFFFFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E00000000000000000004FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E00000000000000000004FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E00000000000000000004FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E00000000000000000004FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E00000000000000000004FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000500000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000500000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000500000005]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000500000009]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E000000000000000000050000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E000000000000000000050000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E00000000000000000009FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E00000000000000000009FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B03E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0400000000000000000000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B040000000000000000000000000012B]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B040000000000000000000000000012C]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B040000000000000000000000000012D]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B040000000000000000000007FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0400000000000000000000080000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0400000000000000000000080000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B04000000000000000000000FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B04000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B04000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B042000000000000000000000000001D]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B042000000000000000000000000001E]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B042000000000000000000000000001F]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B04200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0440000000000000000000000000003]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0520000000000000000000000000004]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[B0540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[cfa2f974b7b6d9b6,000215318c204105]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[d6e33c41da033558,7dca5cdf53114a37]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[e68640cdc2f46e19,bc59861e4d97e33f]", "0", "00")
+ self.bid128_to_uint32_xfloor("0", "[f800000000000000,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[fbeedbdf79dd5fdb,fdffff7fffedffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[fc09872e2fed566d,0080000000080000]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "[fffffdfdbffff9fb,d03d1c818b97b637]", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "Infinity", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "QNaN", "-2147483648", "01")
+ self.bid128_to_uint32_xfloor("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_uint32_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint32_xint() {
+ self.bid128_to_uint32_xint("0", "-0", "0", "00")
+ self.bid128_to_uint32_xint("0", "0", "0", "00")
+ self.bid128_to_uint32_xint("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint32_xint("0", "[0040000000000000,cdffffffef77eeee]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[013aca97c65584b4,f3370a551ac49502]", "0", "20")
+ self.bid128_to_uint32_xint("0", "+0.1E0", "0", "20")
+ self.bid128_to_uint32_xint("0", "[02bc3823f528ac3a,5ae912b01b7c2dca]", "0", "20")
+ self.bid128_to_uint32_xint("0", "+10.00000000000010000E0", "10", "20")
+ self.bid128_to_uint32_xint("0", "1.0", "1", "00")
+ self.bid128_to_uint32_xint("0", "1073741824", "1073741824", "00")
+ self.bid128_to_uint32_xint("0", "1", "1", "00")
+ self.bid128_to_uint32_xint("0", "+110.1000111E0", "110", "20")
+ self.bid128_to_uint32_xint("0", "[2040000000000000,0000000010000002]", "0", "20")
+ self.bid128_to_uint32_xint("0", "+24256236.597649E0", "24256236", "20")
+ self.bid128_to_uint32_xint("0", "[269c25d4832a52e2,1c7df302fc64396c]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint32_xint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "20")
+ self.bid128_to_uint32_xint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "20")
+ self.bid128_to_uint32_xint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[3004880000371240,288c029108140a0a]", "2758", "20")
+ self.bid128_to_uint32_xint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "20")
+ self.bid128_to_uint32_xint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "20")
+ self.bid128_to_uint32_xint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_uint32_xint("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE6FC95C29899892F800000]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE6FC95C29899892F800001]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE76676D080000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_xint("0", "[301069E10DE76676D080000000000001]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE7D057DE676676D07FFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE7D057DE676676D0800000]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE7D057DE676676D0800001]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[301069E10DE83A38EC4ECCEDA1000000]", "2147483649", "00")
+ self.bid128_to_uint32_xint("0", "[301069E10DE83A38EC4ECCEDA1000001]", "2147483649", "20")
+ self.bid128_to_uint32_xint("0", "[3010ab1629028504,ffbff77ffaf77dff]", "-824919543", "20")
+ self.bid128_to_uint32_xint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "20")
+ self.bid128_to_uint32_xint("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint32_xint("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "4294967294", "20")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCDF92B853133125F000000]", "4294967295", "00")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCDF92B853133125F000001]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCE630C931899892F7FFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCE630C931899892F800000]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCE630C931899892F800001]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3011d88100b80253,f7f5cde1ff85fcfe]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[301600000000003627E8F712373BFFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[301600000000003627E8F712373C0000]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[301600000000003627E8F712373C0001]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[30180002B5E3AF19676BAF16B187FFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[30180002B5E3AF19676BAF16B1880000]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[30180002B5E3AF19676BAF16B1880001]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[301800056BC75E2AAD2C50E94E780000]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[301800056BC75E2AAD2C50E94E780001]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[301800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[301800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[301800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[301A0000000000004563918244F3FFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[301A0000000000004563918244F40000]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[301A0000000000004563918244F40001]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[301A0000000000008AC7230489E7FFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[301A0000000000008AC7230489E80000]", "1", "00")
+ self.bid128_to_uint32_xint("0", "[301A0000000000008AC7230489E80001]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_uint32_xint("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[301A00004563918244F4000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_xint("0", "[301A00004563918244F4000000000001]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[301A000045639182CFBB230489E7FFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[301A000045639182CFBB230489E80000]", "2147483649", "00")
+ self.bid128_to_uint32_xint("0", "[301A000045639182CFBB230489E80001]", "2147483649", "20")
+ self.bid128_to_uint32_xint("0", "[301A00008AC72303FF20DCFB7617FFFF]", "4294967294", "20")
+ self.bid128_to_uint32_xint("0", "[301A00008AC72303FF20DCFB76180000]", "4294967295", "00")
+ self.bid128_to_uint32_xint("0", "[301A00008AC72303FF20DCFB76180001]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[301A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[301A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[301A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[301A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[301A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[301C00000000000014D1120D7B15FFFF]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[301C00000000000014D1120D7B160000]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[301C00000000000014D1120D7B160001]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[301E000000000001A055690D9DB7FFFF]", "299", "20")
+ self.bid128_to_uint32_xint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[302000000000000029A2241AF62BFFFF]", "299", "20")
+ self.bid128_to_uint32_xint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[3020000000000000,7fffbfffffffffe7]", "922", "20")
+ self.bid128_to_uint32_xint("0", "[3020000000108004,fefffaf7fff5ffef]", "1994736818", "20")
+ self.bid128_to_uint32_xint("0", "[3024000000000000006A94D74F42FFFF]", "299", "20")
+ self.bid128_to_uint32_xint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[302A00000000000000000017428106FF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[302A0000000000000000001742810700]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[302A0000000000000000001742810701]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[302A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[302C000000000000000002BBA7F52201]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[302C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302E000000000000000000001DCD64FF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[302E000000000000000000001DCD6500]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[302E000000000000000000001DCD6501]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[302E000000000000000000003B9AC9FF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[302E000000000000000000003B9ACA00]", "1", "00")
+ self.bid128_to_uint32_xint("0", "[302E000000000000000000003B9ACA01]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[302E0000000000000000000059682EFF]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[302E0000000000000000000059682F00]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[302E0000000000000000000059682F01]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[302E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[302E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303000000000000000000006FC23ABFF]", "299", "20")
+ self.bid128_to_uint32_xint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303200000000000000000000B2D05DFF]", "299", "20")
+ self.bid128_to_uint32_xint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303800000000000000000000002DDA49]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[303A00000000000000000000000005DB]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[303A00000000000000000000000005DC]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[303A00000000000000000000000005DD]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303A00000000000000000000000495D5]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000000000000095]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000000000000096]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000000000000097]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000000000007563]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303C00000000000000000031FFFFFF69]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[303C00000000000000000031FFFFFF6A]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[303C00000000000000000031FFFFFF6B]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[303C00000000000000000031FFFFFFCD]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[303C00000000000000000031FFFFFFCE]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[303C00000000000000000031FFFFFFCF]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000003200000031]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000003200000032]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000003200000033]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[303C00000000000000000063FFFFFFCD]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[303C00000000000000000063FFFFFFCE]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[303C00000000000000000063FFFFFFCF]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000000000BB7]", "299", "20")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_uint32_xint("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[303E00000000000000000004FFFFFFF5]", "2147483646", "20")
+ self.bid128_to_uint32_xint("0", "[303E00000000000000000004FFFFFFF6]", "2147483647", "00")
+ self.bid128_to_uint32_xint("0", "[303E00000000000000000004FFFFFFF7]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[303E00000000000000000004FFFFFFFB]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[303E00000000000000000004FFFFFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000500000000]", "2147483648", "00")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000500000001]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000500000005]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000500000009]", "2147483648", "20")
+ self.bid128_to_uint32_xint("0", "[303E000000000000000000050000000A]", "2147483649", "00")
+ self.bid128_to_uint32_xint("0", "[303E000000000000000000050000000B]", "2147483649", "20")
+ self.bid128_to_uint32_xint("0", "[303E00000000000000000009FFFFFFF5]", "4294967294", "20")
+ self.bid128_to_uint32_xint("0", "[303E00000000000000000009FFFFFFF6]", "4294967295", "00")
+ self.bid128_to_uint32_xint("0", "[303E00000000000000000009FFFFFFF7]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[303E00000000000000000009FFFFFFFB]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[303E00000000000000000009FFFFFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[303E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint32_xint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint32_xint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint32_xint("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_xint("0", "[30400000000000000000000080000000]", "2147483648", "00")
+ self.bid128_to_uint32_xint("0", "[30400000000000000000000080000001]", "2147483649", "00")
+ self.bid128_to_uint32_xint("0", "[304000000000000000000000FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_xint("0", "[30400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[30400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[304000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[304000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint32_xint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint32_xint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint32_xint("0", "[304200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[30420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[30420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint32_xint("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint32_xint("0", "[30520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[30540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[31c0000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xint("0", "[36fe000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xint("0", "4294967296", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[438f05162c6d6d4c,6bf427ae950bce88]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[43ebb89d88797a9d,62cb7c75ab88bae1]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "5.05", "5", "20")
+ self.bid128_to_uint32_xint("0", "5.5", "5", "20")
+ self.bid128_to_uint32_xint("0", "+58867.98687879696999E0", "58867", "20")
+ self.bid128_to_uint32_xint("0", "[597ad56ddb577840,b0a46c4e01b0c82a]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "+658.5E0", "658", "20")
+ self.bid128_to_uint32_xint("0", "+6.8E0", "6", "20")
+ self.bid128_to_uint32_xint("0", "[71198fa75ea3a4e6,af28c490c5a27622]", "0", "00")
+ self.bid128_to_uint32_xint("0", "[78000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[7bfffb2fe79a9d16,102206021809062a]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[7c000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[7e000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "+856696.5568779E0", "856696", "20")
+ self.bid128_to_uint32_xint("0", "+8898888.998988E0", "8898888", "20")
+ self.bid128_to_uint32_xint("0", "[8fbe000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xint("0", "[918aabf124f3341d,7b8d0a6f0811905c]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[93ce000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xint("0", "+98989.99889889888E0", "98989", "20")
+ self.bid128_to_uint32_xint("0", "[a571e9d766268215,e433418e42edf5e0]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[AFFE314DC6448D9338C15B0A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[AFFE314DC6448D9338C15B0A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[AFFE49F4A966D45CD522088F00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[AFFE49F4A966D45CD522088F00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00293E952CDA8B9AA44111E00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00293E952CDA8B9AA44111E00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00294286EACB8CB0A8CB6B140000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00294286EACB8CB0A8CB6B140000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0040ECA8847C4129106CE8300000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0040ECA8847C4129106CE8300000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[b006202050400228,2678d0de6951d884]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00A0003C95A2F0B4856475FE0000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00A0003C95A2F0B4856475FE0000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00C000060EF6B1ABA6F072330000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B00C000060EF6B1ABA6F072330000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE692B4B4B133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE692B4B4B133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE6FC95C29899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE6FC95C29899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE76676D080000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE76676D080000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE7D057DE676676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE7D057DE676676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE7D057DE676676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010C5371912364CE3056C2800000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010C5371912364CE3056C2800000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCDF92B853133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[b01129d7f720598e,53405deb29db5098]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01600000000003627E8F712373BFFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B01600000000003627E8F712373C0000]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B01600000000003627E8F712373C0001]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0180002B5E3AF13FBA450E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0180002B5E3AF13FBA450E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0180002B5E3AF19676BAF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0180002B5E3AF19676BAF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A0000000000004563918244F3FFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B01A0000000000004563918244F40000]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B01A0000000000004563918244F40001]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B01A0000000000008AC7230489E7FFFF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B01A0000000000008AC7230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A0000000000008AC7230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A000045639181BA2CDCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A000045639181BA2CDCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A000045639181BA2CDCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00004563918244F4000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00004563918244F4000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A000045639182CFBB230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A000045639182CFBB230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A000045639182CFBB230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00008AC72303FF20DCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[b01a0000f0a08611,eeaf3e7edf7e5fff]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01C00000000000014D1120D7B15FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01C00000000000014D1120D7B160000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01C00000000000014D1120D7B160001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01E000000000001A055690D9DB7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01E000000000001A055690D9DB80000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B01E000000000001A055690D9DB80001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02000000000000029A2241AF62BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02000000000000029A2241AF62C0000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02000000000000029A2241AF62C0001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B024000000000000006A94D74F42FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B024000000000000006A94D74F430000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B024000000000000006A94D74F430001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02A00000000000000000017428106FF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B02A0000000000000000001742810700]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B02A0000000000000000001742810701]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B02A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C000000000000000002BBA7F521FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C000000000000000002BBA7F52200]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C000000000000000002BBA7F52201]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02E000000000000000000001DCD64FF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B02E000000000000000000001DCD6500]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B02E000000000000000000001DCD6501]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B02E000000000000000000003B9AC9FF]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B02E000000000000000000003B9ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02E000000000000000000003B9ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02E0000000000000000000059682EFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02E0000000000000000000059682F00]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02E0000000000000000000059682F01]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B02E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03000000000000000000006FC23ABFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03000000000000000000006FC23AC00]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03000000000000000000006FC23AC01]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03200000000000000000000B2D05DFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03200000000000000000000B2D05E00]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03200000000000000000000B2D05E01]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03800000000000000000000002DDA47]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03800000000000000000000002DDA48]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03800000000000000000000002DDA49]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B03A00000000000000000000000005DB]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03A00000000000000000000000005DC]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03A00000000000000000000000005DD]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03A00000000000000000000000495D3]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03A00000000000000000000000495D4]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03A00000000000000000000000495D5]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000000000000095]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000000000000096]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000000000000097]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000000000007561]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000000000007562]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000000000007563]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C00000000000000000031FFFFFF69]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C00000000000000000031FFFFFF6A]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C00000000000000000031FFFFFF6B]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C00000000000000000031FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C00000000000000000031FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C00000000000000000031FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000003200000031]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000003200000032]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000003200000033]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint32_xint("0", "[B03E000000000000000000000000000F]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000000000BB7]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000000000BB8]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000000000BB9]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000000000BBD]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E00000000000000000004FFFFFFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E00000000000000000004FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E00000000000000000004FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E00000000000000000004FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E00000000000000000004FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E00000000000000000004FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000500000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000500000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000500000005]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000500000009]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E000000000000000000050000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E000000000000000000050000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E00000000000000000009FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E00000000000000000009FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B03E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0400000000000000000000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B040000000000000000000000000012B]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B040000000000000000000000000012C]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B040000000000000000000000000012D]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B040000000000000000000007FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0400000000000000000000080000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0400000000000000000000080000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B04000000000000000000000FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B04000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B04000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B042000000000000000000000000001D]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B042000000000000000000000000001E]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B042000000000000000000000000001F]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B04200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0440000000000000000000000000003]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0520000000000000000000000000004]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[B0540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[c74ccd978165f2c2,7777b28ece449d3e]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[d75a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xint("0", "[fbf6d2ffffbb7e7d,fdffc3fd7ff9bffe]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[fd2f6f492805eafe,d0fd9559c8a82056]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "[fffff3bfcfffffff,a7f61c581a384ab0]", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "-Infinity", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "QNaN", "-2147483648", "01")
+ self.bid128_to_uint32_xint("0", "SNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_uint32_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint32_xrnint() {
+ self.bid128_to_uint32_xrnint("0", "-0", "0", "00")
+ self.bid128_to_uint32_xrnint("0", "0", "0", "00")
+ self.bid128_to_uint32_xrnint("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrnint("0", "[0000000000000000,0004800000400240]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[0000000000000000,c5e001c1642024bc]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint32_xrnint("0", "-0.010000E0", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "0.5", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "1.0", "1", "00")
+ self.bid128_to_uint32_xrnint("0", "1073741824", "1073741824", "00")
+ self.bid128_to_uint32_xrnint("0", "[15c6000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrnint("0", "[1bfd2eeeb735fb6b,ea2f2aa6451ced3f]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[2668c771764a3741,b84243484e28e598]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[28b2ee110bac8d31,edfd67c1339f1126]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint32_xrnint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint32_xrnint("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_uint32_xrnint("0", "[3000010101004002,038dc21270840121]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[3000041419005348,22edfeecbc7fc39f]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_uint32_xrnint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[30053c008769219e,caa4b23e9a4d9152]", "6409", "20")
+ self.bid128_to_uint32_xrnint("0", "[30084401b0d42b26,ffffefffffefefff]", "137934", "20")
+ self.bid128_to_uint32_xrnint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483646", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE6FC95C29899892F800000]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE6FC95C29899892F800001]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE76676D080000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE76676D080000000000001]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE7D057DE676676D07FFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE7D057DE676676D0800000]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE7D057DE676676D0800001]", "2147483649", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483649", "20")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE83A38EC4ECCEDA1000000]", "2147483649", "00")
+ self.bid128_to_uint32_xrnint("0", "[301069E10DE83A38EC4ECCEDA1000001]", "2147483649", "20")
+ self.bid128_to_uint32_xrnint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "20")
+ self.bid128_to_uint32_xrnint("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint32_xrnint("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCDF92B853133125F000000]", "4294967295", "00")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCDF92B853133125F000001]", "4294967295", "20")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCE630C931899892F7FFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010e72d1cf40f8d,4f62671a6639eb87]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3014008000062410,0000080120000040]", "1014121223", "20")
+ self.bid128_to_uint32_xrnint("0", "[301600000000003627E8F712373BFFFF]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[301600000000003627E8F712373C0000]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[301600000000003627E8F712373C0001]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xrnint("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483646", "20")
+ self.bid128_to_uint32_xrnint("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[30180002B5E3AF19676BAF16B187FFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[30180002B5E3AF19676BAF16B1880000]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[30180002B5E3AF19676BAF16B1880001]", "2147483649", "20")
+ self.bid128_to_uint32_xrnint("0", "[3018000428041000,4030800242740210]", "-1001997679", "20")
+ self.bid128_to_uint32_xrnint("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xrnint("0", "[301800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[301800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[301800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[301800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[301800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[301A0000000000004563918244F3FFFF]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A0000000000004563918244F40000]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A0000000000004563918244F40001]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A0000000000008AC7230489E7FFFF]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A0000000000008AC7230489E80000]", "1", "00")
+ self.bid128_to_uint32_xrnint("0", "[301A0000000000008AC7230489E80001]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_uint32_xrnint("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A00004563918244F4000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_xrnint("0", "[301A00004563918244F4000000000001]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A000045639182CFBB230489E7FFFF]", "2147483649", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A000045639182CFBB230489E80000]", "2147483649", "00")
+ self.bid128_to_uint32_xrnint("0", "[301A000045639182CFBB230489E80001]", "2147483649", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A00008AC72303FF20DCFB7617FFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A00008AC72303FF20DCFB76180000]", "4294967295", "00")
+ self.bid128_to_uint32_xrnint("0", "[301A00008AC72303FF20DCFB76180001]", "4294967295", "20")
+ self.bid128_to_uint32_xrnint("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[301A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[301A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[301A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[301A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[301A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[301C00000000000014D1120D7B15FFFF]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[301C00000000000014D1120D7B160000]", "2", "20")
+ self.bid128_to_uint32_xrnint("0", "[301C00000000000014D1120D7B160001]", "2", "20")
+ self.bid128_to_uint32_xrnint("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[30200000000d8000,c8a048091b082c90]", "1632051302", "20")
+ self.bid128_to_uint32_xrnint("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[302A00000000000000000017428106FF]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[302A0000000000000000001742810700]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[302A0000000000000000001742810701]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[302A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_uint32_xrnint("0", "[302C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302E000000000000000000001DCD64FF]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[302E000000000000000000001DCD6500]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[302E000000000000000000001DCD6501]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[302E000000000000000000003B9AC9FF]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[302E000000000000000000003B9ACA00]", "1", "00")
+ self.bid128_to_uint32_xrnint("0", "[302E000000000000000000003B9ACA01]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[302E0000000000000000000059682EFF]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[302E0000000000000000000059682F00]", "2", "20")
+ self.bid128_to_uint32_xrnint("0", "[302E0000000000000000000059682F01]", "2", "20")
+ self.bid128_to_uint32_xrnint("0", "[302E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[302E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_uint32_xrnint("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[303A00000000000000000000000005DB]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[303A00000000000000000000000005DC]", "2", "20")
+ self.bid128_to_uint32_xrnint("0", "[303A00000000000000000000000005DD]", "2", "20")
+ self.bid128_to_uint32_xrnint("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000000000000095]", "1", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000000000000096]", "2", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000000000000097]", "2", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C00000000000000000031FFFFFF69]", "2147483646", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C00000000000000000031FFFFFF6A]", "2147483646", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C00000000000000000031FFFFFF6B]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C00000000000000000031FFFFFFCD]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C00000000000000000031FFFFFFCE]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C00000000000000000031FFFFFFCF]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000003200000031]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000003200000032]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000003200000033]", "2147483649", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C00000000000000000063FFFFFFCD]", "4294967295", "20")
+ self.bid128_to_uint32_xrnint("0", "[303C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E00000000000000000004FFFFFFF1]", "2147483646", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E00000000000000000004FFFFFFF5]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E00000000000000000004FFFFFFF6]", "2147483647", "00")
+ self.bid128_to_uint32_xrnint("0", "[303E00000000000000000004FFFFFFF7]", "2147483647", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E00000000000000000004FFFFFFFB]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E00000000000000000004FFFFFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000500000000]", "2147483648", "00")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000500000001]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000500000005]", "2147483648", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000500000009]", "2147483649", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E000000000000000000050000000A]", "2147483649", "00")
+ self.bid128_to_uint32_xrnint("0", "[303E000000000000000000050000000B]", "2147483649", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E00000000000000000009FFFFFFF5]", "4294967295", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E00000000000000000009FFFFFFF6]", "4294967295", "00")
+ self.bid128_to_uint32_xrnint("0", "[303E00000000000000000009FFFFFFF7]", "4294967295", "20")
+ self.bid128_to_uint32_xrnint("0", "[303E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[303E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint32_xrnint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint32_xrnint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint32_xrnint("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_xrnint("0", "[30400000000000000000000080000000]", "2147483648", "00")
+ self.bid128_to_uint32_xrnint("0", "[30400000000000000000000080000001]", "2147483649", "00")
+ self.bid128_to_uint32_xrnint("0", "[304000000000000000000000FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_xrnint("0", "[30400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[30400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[304000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[304000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint32_xrnint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint32_xrnint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint32_xrnint("0", "[304200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[30420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[30420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint32_xrnint("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint32_xrnint("0", "[30520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[30540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[31137992c82dfa30,904e47f43474c13c]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[33295dc068a0fd1d,6effdcf7eca2db0f]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[34d6000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrnint("0", "[3ffc6eab32f92445,d26885ec84651280]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "4294967296", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[4c5a1ed5806e5e9e,78460e676affaefa]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "5.05", "5", "20")
+ self.bid128_to_uint32_xrnint("0", "5.5", "6", "20")
+ self.bid128_to_uint32_xrnint("0", "+5.79687658866E0", "6", "20")
+ self.bid128_to_uint32_xrnint("0", "+645.998779699833E0", "646", "20")
+ self.bid128_to_uint32_xrnint("0", "[78000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[79287d94e9bbb302,4a84faae0db013e6]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "+79.996E0", "80", "20")
+ self.bid128_to_uint32_xrnint("0", "[7c000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[7e000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[7efefdaf5dbb7f9a,fcebf83ff32f8d07]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "+83434528.3347255453E0", "83434528", "20")
+ self.bid128_to_uint32_xrnint("0", "+869.7E0", "870", "20")
+ self.bid128_to_uint32_xrnint("0", "[86ec000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrnint("0", "[87091bc4eb60d59e,93b7f97337f9cf1a]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[93e1df4364b54550,021c26ab78dbc06a]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[9573084da604d0d7,c4db20ae2d56f98e]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "+989856.7689868587E0", "989857", "20")
+ self.bid128_to_uint32_xrnint("0", "+98998.899989888889E0", "98999", "20")
+ self.bid128_to_uint32_xrnint("0", "+9998888.988988889899E0", "9998889", "20")
+ self.bid128_to_uint32_xrnint("0", "[9eccb73a5fbc057a,0d5ca35d57a91546]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[affd6ff5bff7bf16,80234928005e91e1]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[AFFE314DC6448D9338C15B0A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[AFFE314DC6448D9338C15B0A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[AFFE49F4A966D45CD522088F00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[AFFE49F4A966D45CD522088F00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[afffbefbffef7cff,fe7f5cffefff7fdf]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00293E952CDA8B9AA44111E00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00293E952CDA8B9AA44111E00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00294286EACB8CB0A8CB6B140000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00294286EACB8CB0A8CB6B140000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0040ECA8847C4129106CE8300000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0040ECA8847C4129106CE8300000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00A0003C95A2F0B4856475FE0000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00A0003C95A2F0B4856475FE0000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00C000060EF6B1ABA6F072330000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B00C000060EF6B1ABA6F072330000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE692B4B4B133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE692B4B4B133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE6FC95C29899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE6FC95C29899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE76676D080000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE76676D080000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE7D057DE676676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE7D057DE676676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE7D057DE676676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010C5371912364CE3056C2800000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010C5371912364CE3056C2800000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCDF92B853133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[b01208a3e7b18e98,fe76fef32ff2ffc9]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01600000000003627E8F712373BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01600000000003627E8F712373C0000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01600000000003627E8F712373C0001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0180002B5E3AF13FBA450E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0180002B5E3AF13FBA450E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0180002B5E3AF19676BAF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0180002B5E3AF19676BAF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A0000000000004563918244F3FFFF]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[B01A0000000000004563918244F40000]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[B01A0000000000004563918244F40001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A0000000000008AC7230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A0000000000008AC7230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A0000000000008AC7230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A000045639181BA2CDCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A000045639181BA2CDCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A000045639181BA2CDCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00004563918244F4000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00004563918244F4000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A000045639182CFBB230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A000045639182CFBB230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A000045639182CFBB230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00008AC72303FF20DCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01C00000000000014D1120D7B15FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01C00000000000014D1120D7B160000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01C00000000000014D1120D7B160001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01E000000000001A055690D9DB7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01E000000000001A055690D9DB80000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B01E000000000001A055690D9DB80001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02000000000000029A2241AF62BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02000000000000029A2241AF62C0000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02000000000000029A2241AF62C0001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[b020000000412002,4f479e2fbde2de66]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B024000000000000006A94D74F42FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B024000000000000006A94D74F430000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B024000000000000006A94D74F430001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02A00000000000000000017428106FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02A0000000000000000001742810700]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02A0000000000000000001742810701]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C000000000000000002BBA7F521FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C000000000000000002BBA7F52200]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C000000000000000002BBA7F52201]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02E000000000000000000001DCD64FF]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[B02E000000000000000000001DCD6500]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[B02E000000000000000000001DCD6501]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02E000000000000000000003B9AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02E000000000000000000003B9ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02E000000000000000000003B9ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02E0000000000000000000059682EFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02E0000000000000000000059682F00]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02E0000000000000000000059682F01]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B02E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03000000000000000000006FC23ABFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03000000000000000000006FC23AC00]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03000000000000000000006FC23AC01]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03200000000000000000000B2D05DFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03200000000000000000000B2D05E00]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03200000000000000000000B2D05E01]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03800000000000000000000002DDA47]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03800000000000000000000002DDA48]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03800000000000000000000002DDA49]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03A00000000000000000000000003E7]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03A00000000000000000000000005DB]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03A00000000000000000000000005DC]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03A00000000000000000000000005DD]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03A00000000000000000000000495D3]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03A00000000000000000000000495D4]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03A00000000000000000000000495D5]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000000000000095]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000000000000096]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000000000000097]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000000000007561]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000000000007562]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000000000007563]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C00000000000000000031FFFFFF69]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C00000000000000000031FFFFFF6A]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C00000000000000000031FFFFFF6B]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C00000000000000000031FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C00000000000000000031FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C00000000000000000031FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000003200000031]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000003200000032]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000003200000033]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint32_xrnint("0", "[B03E000000000000000000000000000F]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000000000BB7]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000000000BB8]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000000000BB9]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000000000BBD]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E00000000000000000004FFFFFFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E00000000000000000004FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E00000000000000000004FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E00000000000000000004FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E00000000000000000004FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E00000000000000000004FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000500000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000500000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000500000005]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000500000009]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E000000000000000000050000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E000000000000000000050000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E00000000000000000009FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E00000000000000000009FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B03E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0400000000000000000000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B040000000000000000000000000012B]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B040000000000000000000000000012C]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B040000000000000000000000000012D]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B040000000000000000000007FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0400000000000000000000080000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0400000000000000000000080000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B04000000000000000000000FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B04000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B04000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B042000000000000000000000000001D]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B042000000000000000000000000001E]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B042000000000000000000000000001F]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B04200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0440000000000000000000000000003]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0520000000000000000000000000004]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[B0540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[b86e40313bdcf3b1,8bf2e862ecd83058]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[b9d3bed8dfd2e396,3e65857960f1088e]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[c4c63a657aa7c264,dc768fe75ac39724]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[c598000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrnint("0", "[d066000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrnint("0", "[dce9a8ca5f15fe33,dece47b3f700926e]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[e84c73da98b2cbb1,0190bf4968090349]", "0", "00")
+ self.bid128_to_uint32_xrnint("0", "[fb7edfbfefd7ff3f,0480804218159181]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[fc001e83aef59fe0,b55cc1b9b9aeea13]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "[fc5febee6cfbd29c,42fe2faf7c07aea6]", "-2147483648", "01")
+ self.bid128_to_uint32_xrnint("0", "QNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_uint32_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint32_xrninta() {
+ self.bid128_to_uint32_xrninta("0", "-0", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "0", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "[0000000000000000,0000002000080800]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[0000000000000000,7fbffefdf27fc3fe]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[000034108c020033,5110e100182660c9]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "-0.01000E0", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "0.1", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "0.5", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[05c08ebfc8fbba42,a8e546929d4f9620]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[0ce20aab07e9368a,95f6b8d42db96383]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[0fce000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "1.0", "1", "00")
+ self.bid128_to_uint32_xrninta("0", "1073741824", "1073741824", "00")
+ self.bid128_to_uint32_xrninta("0", "1", "1", "00")
+ self.bid128_to_uint32_xrninta("0", "+1.11111000E0", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[1418000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "[1df2000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint32_xrninta("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint32_xrninta("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_uint32_xrninta("0", "[3000102000000128,f7ffb8feb7bffb7f]", "3", "20")
+ self.bid128_to_uint32_xrninta("0", "[3002004811041a08,02c428a42f80025b]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[300a086808110000,a327c113bda6a500]", "170502", "20")
+ self.bid128_to_uint32_xrninta("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE628D3A6C9CC9B8E800000]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE628D3A6C9CC9B8E800001]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE692B4B4B133125EFFFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE692B4B4B133125F000000]", "2147483647", "00")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE692B4B4B133125F000001]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE6FC95C29899892F7FFFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE6FC95C29899892F800000]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE6FC95C29899892F800001]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE76676D080000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE76676D080000000000001]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE7D057DE676676D07FFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE7D057DE676676D0800000]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE7D057DE676676D0800001]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE83A38EC4ECCEDA1000000]", "2147483649", "00")
+ self.bid128_to_uint32_xrninta("0", "[301069E10DE83A38EC4ECCEDA1000001]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "20")
+ self.bid128_to_uint32_xrninta("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint32_xrninta("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCDF92B853133125EFFFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCDF92B853133125F000000]", "4294967295", "00")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCDF92B853133125F000001]", "4294967295", "20")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCE630C931899892F7FFFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301128041a080e06,e07bf3e0fba69fdd]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3014020880100000,97325a8c63670c8d]", "-171139503", "20")
+ self.bid128_to_uint32_xrninta("0", "[301600000000003627E8F712373BFFFF]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[301600000000003627E8F712373C0000]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[301600000000003627E8F712373C0001]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[30180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483646", "20")
+ self.bid128_to_uint32_xrninta("0", "[30180002B5E3AF0E8FDCF2BBEB680000]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[30180002B5E3AF0E8FDCF2BBEB680001]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[30180002B5E3AF13FBA450E94E77FFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[30180002B5E3AF13FBA450E94E780000]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[30180002B5E3AF13FBA450E94E780001]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[30180002B5E3AF19676BAF16B187FFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[30180002B5E3AF19676BAF16B1880000]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[30180002B5E3AF19676BAF16B1880001]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[301800040d001000,66b67bbbf3b3bcef]", "-1085606989", "20")
+ self.bid128_to_uint32_xrninta("0", "[301800056BC75E2AAD2C50E94E77FFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xrninta("0", "[301800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301A0000000000004563918244F3FFFF]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A0000000000004563918244F40000]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A0000000000004563918244F40001]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A0000000000008AC7230489E7FFFF]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A0000000000008AC7230489E80000]", "1", "00")
+ self.bid128_to_uint32_xrninta("0", "[301A0000000000008AC7230489E80001]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A000045639181BA2CDCFB7617FFFF]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A000045639181BA2CDCFB76180000]", "2147483647", "00")
+ self.bid128_to_uint32_xrninta("0", "[301A000045639181BA2CDCFB76180001]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A00004563918244F3FFFFFFFFFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A00004563918244F4000000000000]", "2147483648", "00")
+ self.bid128_to_uint32_xrninta("0", "[301A00004563918244F4000000000001]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A000045639182CFBB230489E7FFFF]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A000045639182CFBB230489E80000]", "2147483649", "00")
+ self.bid128_to_uint32_xrninta("0", "[301A000045639182CFBB230489E80001]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A00008AC72303FF20DCFB7617FFFF]", "4294967295", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A00008AC72303FF20DCFB76180000]", "4294967295", "00")
+ self.bid128_to_uint32_xrninta("0", "[301A00008AC72303FF20DCFB76180001]", "4294967295", "20")
+ self.bid128_to_uint32_xrninta("0", "[301A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[301C00000000000014D1120D7B15FFFF]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[301C00000000000014D1120D7B160000]", "2", "20")
+ self.bid128_to_uint32_xrninta("0", "[301C00000000000014D1120D7B160001]", "2", "20")
+ self.bid128_to_uint32_xrninta("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[3020000000040000,0d4bcce1909a232a]", "483570424", "20")
+ self.bid128_to_uint32_xrninta("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[302A00000000000000000017428106FF]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[302A0000000000000000001742810700]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[302A0000000000000000001742810701]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[302A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[302C000000000000000002BBA7F52200]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[302C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302E000000000000000000001DCD64FF]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[302E000000000000000000001DCD6500]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[302E000000000000000000001DCD6501]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[302E000000000000000000003B9AC9FF]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[302E000000000000000000003B9ACA00]", "1", "00")
+ self.bid128_to_uint32_xrninta("0", "[302E000000000000000000003B9ACA01]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[302E0000000000000000000059682EFF]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[302E0000000000000000000059682F00]", "2", "20")
+ self.bid128_to_uint32_xrninta("0", "[302E0000000000000000000059682F01]", "2", "20")
+ self.bid128_to_uint32_xrninta("0", "[302E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[302E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[303800000000000000000000002DDA48]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[303A00000000000000000000000005DB]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[303A00000000000000000000000005DC]", "2", "20")
+ self.bid128_to_uint32_xrninta("0", "[303A00000000000000000000000005DD]", "2", "20")
+ self.bid128_to_uint32_xrninta("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[303A00000000000000000000000495D4]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000000000000095]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000000000000096]", "2", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000000000000097]", "2", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000000000007562]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C00000000000000000031FFFFFF69]", "2147483646", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C00000000000000000031FFFFFF6A]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C00000000000000000031FFFFFF6B]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C00000000000000000031FFFFFFCD]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C00000000000000000031FFFFFFCE]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C00000000000000000031FFFFFFCF]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000003200000031]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000003200000032]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000003200000033]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C00000000000000000063FFFFFFCD]", "4294967295", "20")
+ self.bid128_to_uint32_xrninta("0", "[303C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E00000000000000000004FFFFFFF1]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E00000000000000000004FFFFFFF5]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E00000000000000000004FFFFFFF6]", "2147483647", "00")
+ self.bid128_to_uint32_xrninta("0", "[303E00000000000000000004FFFFFFF7]", "2147483647", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E00000000000000000004FFFFFFFB]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E00000000000000000004FFFFFFFF]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000500000000]", "2147483648", "00")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000500000001]", "2147483648", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000500000005]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000500000009]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E000000000000000000050000000A]", "2147483649", "00")
+ self.bid128_to_uint32_xrninta("0", "[303E000000000000000000050000000B]", "2147483649", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E00000000000000000009FFFFFFF5]", "4294967295", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E00000000000000000009FFFFFFF6]", "4294967295", "00")
+ self.bid128_to_uint32_xrninta("0", "[303E00000000000000000009FFFFFFF7]", "4294967295", "20")
+ self.bid128_to_uint32_xrninta("0", "[303E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[303E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint32_xrninta("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint32_xrninta("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint32_xrninta("0", "[3040000000000000000000007FFFFFFF]", "2147483647", "00")
+ self.bid128_to_uint32_xrninta("0", "[30400000000000000000000080000000]", "2147483648", "00")
+ self.bid128_to_uint32_xrninta("0", "[30400000000000000000000080000001]", "2147483649", "00")
+ self.bid128_to_uint32_xrninta("0", "[304000000000000000000000FFFFFFFF]", "4294967295", "00")
+ self.bid128_to_uint32_xrninta("0", "[30400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[30400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[304000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[304000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint32_xrninta("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint32_xrninta("0", "[304200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[30420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[30420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint32_xrninta("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint32_xrninta("0", "[30520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[30540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[310684325cc8616f,9318d60769df9596]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[3c00000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "[3e670503b2dce865,f60e58bdf99542b6]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "4294967296", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[440c220d5cc400b4,0a994f35994354aa]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[4546000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "[502a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "5.05", "5", "20")
+ self.bid128_to_uint32_xrninta("0", "[5358000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "[544ca06677d8f254,7075b42461ea503d]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[5516000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "+5.575669595855E0", "6", "20")
+ self.bid128_to_uint32_xrninta("0", "[59332a546b06a770,35f47048a2ddea90]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[5d2036e29a48d538,8ed8157a4a9378a8]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "+67887.6597666885E0", "67888", "20")
+ self.bid128_to_uint32_xrninta("0", "+777.55858E0", "778", "20")
+ self.bid128_to_uint32_xrninta("0", "[78000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "+796579.2527637E0", "796579", "20")
+ self.bid128_to_uint32_xrninta("0", "[7b8382c5060d098b,0000000000000000]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[7c000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[7c003fffffffffff38c15b08ffffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[7c003fffffffffff38c15b0affffffff]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[7e000000000000000000000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[7f835cfddaf9dfbd,c98d334f91461f5a]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "+8899898.8E0", "8899899", "20")
+ self.bid128_to_uint32_xrninta("0", "[8f5bdada414a292d,9f06c1664a6091f0]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[956952cf117c3d67,a494caf20def6d50]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[96ec000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "+988898898.89889998E0", "988898899", "20")
+ self.bid128_to_uint32_xrninta("0", "[9c6f2bf6b31ab797,036dde78044524a0]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[9d19586b73ffa501,78481becb0f0f509]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[a06ac49406efa080,7646edbec45fadf2]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[a1c2000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "[a3016dfbe181bf38,0ef45737708c0f4f]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[a6af0fa847e4d6b4,e2f22d47240a4486]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[a869dbb96f458019,2500ef2e9ffb5a8d]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[a953045064499e02,d2e329d369f1b9a8]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[AFFCF684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[AFFCF684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[affdb6bff65fdfff,154003700142001a]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[AFFDEC8B86EF679D76FC433D80000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[AFFDEC8B86EF679D76FC433D80000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[AFFE314DC6448D9338C15B0A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[AFFE314DC6448D9338C15B0A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[AFFE49F4A966D45CD522088F00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[AFFE49F4A966D45CD522088F00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[b000008141000040,0a10800000060000]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B00293E952CDA8B9AA44111E00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B00293E952CDA8B9AA44111E00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B00294286EACB8CB0A8CB6B140000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B00294286EACB8CB0A8CB6B140000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[b0032b7d201e69e7,5482dc7f79b305a0]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0040ECA8847C4129106CE8300000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0040ECA8847C4129106CE8300000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B00A0003C95A2F0B4856475FE0000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B00A0003C95A2F0B4856475FE0000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B00C000060EF6B1ABA6F072330000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B00C000060EF6B1ABA6F072330000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE628D3A6C9CC9B8E7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE628D3A6C9CC9B8E800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE628D3A6C9CC9B8E800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE692B4B4B133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE692B4B4B133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE692B4B4B133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE6FC95C29899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE6FC95C29899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE6FC95C29899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE76676D07FFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE76676D080000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE76676D080000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE7D057DE676676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE7D057DE676676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE7D057DE676676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE83A38EC4ECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE83A38EC4ECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01069E10DE83A38EC4ECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010C5371912364CE3056C27FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010C5371912364CE3056C2800000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010C5371912364CE3056C2800000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCDF92B853133125EFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCDF92B853133125F000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCDF92B853133125F000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCE630C931899892F7FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCE630C931899892F800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCE630C931899892F800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCECCEDA0FFFFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCECCEDA100000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCECCEDA100000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCF36CEAEE76676D07FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCF36CEAEE76676D0800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCF36CEAEE76676D0800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCFA0AFBCCECCEDA0FFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCFA0AFBCCECCEDA1000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010D3C21BCFA0AFBCCECCEDA1000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010F684DF56C3E01BC6C73200000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B010F684DF56C3E01BC6C73200000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[b01198c8829cb0dd,d631a06392c381e6]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C88FB62ED56E4238E400000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C88FB62ED56E4238E400001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C8905F96EBAD4C909800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C8905F96EBAD4C909800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C89108FF01EC56E84C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C89108FF01EC56E84C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C891B267182B613FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C891B267182B61400000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C891B267182B61400000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C8925BCF2E6A6B97B400000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C8925BCF2E6A6B97B400001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C893053744A975EF67FFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C893053744A975EF6800000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C893053744A975EF6800001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C893AE9F5AE880471C00000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B012629B8C893AE9F5AE880471C00001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01600000000003627E8F712373BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01600000000003627E8F712373C0000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01600000000003627E8F712373C0001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[b018000190402642,cffbfdfffff6dfff]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0180002B5E3AF0E8FDCF2BBEB67FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0180002B5E3AF0E8FDCF2BBEB680000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0180002B5E3AF0E8FDCF2BBEB680001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0180002B5E3AF13FBA450E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0180002B5E3AF13FBA450E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0180002B5E3AF13FBA450E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0180002B5E3AF19676BAF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0180002B5E3AF19676BAF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0180002B5E3AF19676BAF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01800056BC75E2AAD2C50E94E77FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01800056BC75E2AAD2C50E94E780000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01800056BC75E2AAD2C50E94E780001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01800056BC75E3018F3AF16B187FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01800056BC75E3018F3AF16B1880000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01800056BC75E3018F3AF16B1880001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A0000000000004563918244F3FFFF]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[B01A0000000000004563918244F40000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A0000000000004563918244F40001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A0000000000008AC7230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A0000000000008AC7230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A0000000000008AC7230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A0000000000A2E6C09AD3E0D40000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A0000000000A2E6C09AD3E0D40001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A000045639181BA2CDCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A000045639181BA2CDCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A000045639181BA2CDCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00004563918244F3FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00004563918244F4000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00004563918244F4000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A000045639182CFBB230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A000045639182CFBB230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A000045639182CFBB230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00008AC72303FF20DCFB7617FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00008AC72303FF20DCFB76180000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00008AC72303FF20DCFB76180001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00008AC7230489E7FFFFFFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00008AC7230489E8000000000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00008AC7230489E8000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00008AC7230514AF230489E7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00008AC7230514AF230489E80000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01A00008AC7230514AF230489E80001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01C00000000000014D1120D7B15FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01C00000000000014D1120D7B160000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01C00000000000014D1120D7B160001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01E000000000001A055690D9DB7FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01E000000000001A055690D9DB80000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B01E000000000001A055690D9DB80001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02000000000000029A2241AF62BFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02000000000000029A2241AF62C0000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02000000000000029A2241AF62C0001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B024000000000000006A94D74F42FFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B024000000000000006A94D74F430000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B024000000000000006A94D74F430001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02A00000000000000000017428106FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02A0000000000000000001742810700]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02A0000000000000000001742810701]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02A00000000006C6B935B68D08DA3FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02A00000000006C6B935B68D08DA400]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02A00000000006C6B935B68D08DA401]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02A00000000006C6B935B8019048BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02A00000000006C6B935B8019048C00]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02A00000000006C6B935B8019048C01]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C000000000000000002BBA7F521FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C000000000000000002BBA7F52200]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C000000000000000002BBA7F52201]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C00000000000AD78EBC5872141BFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C00000000000AD78EBC5872141C00]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C00000000000AD78EBC5872141C01]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C00000000000AD78EBC5BF025F1FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C00000000000AD78EBC5BF025F200]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C00000000000AD78EBC5BF025F201]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C00000000000AD78EBC5E4431D5FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C00000000000AD78EBC5E4431D600]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02C00000000000AD78EBC5E4431D601]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02E000000000000000000001DCD64FF]", "0", "20")
+ self.bid128_to_uint32_xrninta("0", "[B02E000000000000000000001DCD6500]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02E000000000000000000001DCD6501]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02E000000000000000000003B9AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02E000000000000000000003B9ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02E000000000000000000003B9ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02E0000000000000000000059682EFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02E0000000000000000000059682F00]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02E0000000000000000000059682F01]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02E000000000001158E46094F6AC9FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02E000000000001158E46094F6ACA00]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B02E000000000001158E46094F6ACA01]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03000000000000000000006FC23ABFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03000000000000000000006FC23AC00]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03000000000000000000006FC23AC01]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03200000000000000000000B2D05DFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03200000000000000000000B2D05E00]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03200000000000000000000B2D05E01]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03800000000000000000000002DDA47]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03800000000000000000000002DDA48]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03800000000000000000000002DDA49]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03A00000000000000000000000003E7]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03A00000000000000000000000005DB]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03A00000000000000000000000005DC]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03A00000000000000000000000005DD]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03A00000000000000000000000495D3]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03A00000000000000000000000495D4]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03A00000000000000000000000495D5]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000000000000095]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000000000000096]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000000000000097]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000000000007561]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000000000007562]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000000000007563]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C00000000000000000031FFFFFF69]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C00000000000000000031FFFFFF6A]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C00000000000000000031FFFFFF6B]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C00000000000000000031FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C00000000000000000031FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C00000000000000000031FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000003200000031]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000003200000032]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000003200000033]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C00000000000000000063FFFFFFCD]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C00000000000000000063FFFFFFCE]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C00000000000000000063FFFFFFCF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000006400000031]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000006400000032]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03C0000000000000000006400000033]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E000000000000000000000000000F]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000000000BB7]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000000000BB8]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000000000BB9]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000000000BBD]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E00000000000000000004FFFFFFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E00000000000000000004FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E00000000000000000004FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E00000000000000000004FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E00000000000000000004FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E00000000000000000004FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000500000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000500000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000500000005]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000500000009]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E000000000000000000050000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E000000000000000000050000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E00000000000000000009FFFFFFF5]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E00000000000000000009FFFFFFF6]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E00000000000000000009FFFFFFF7]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E00000000000000000009FFFFFFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E00000000000000000009FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000A00000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000A00000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000A00000005]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000A00000009]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000A0000000A]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000000A0000000B]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000002E90EDCFF1]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000002E90EDCFFB]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000002E90EDD005]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B03E0000000000000000002E90EDD00F]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0400000000000000000000000000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B040000000000000000000000000012B]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B040000000000000000000000000012C]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B040000000000000000000000000012D]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B040000000000000000000007FFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0400000000000000000000080000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0400000000000000000000080000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B04000000000000000000000FFFFFFFF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0400000000000000000000100000000]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0400000000000000000000100000001]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B04000000000000000000004A817C7FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B04000000000000000000004A817C801]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B042000000000000000000000000001D]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B042000000000000000000000000001E]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B042000000000000000000000000001F]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B04200000000000000000000773593FF]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0420000000000000000000077359400]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0420000000000000000000077359401]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0440000000000000000000000000003]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0520000000000000000000000000004]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0520000000000000000000000000005]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[B0540000000000000000000000000002]", "2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[caff92e24129d1e6,058c8f313c03ef44]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[cbffffaffeffffbf,89f79370dbf777a7]", "0", "00")
+ self.bid128_to_uint32_xrninta("0", "[cd2833bce77d892a,3543b570982cf57e]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[ce682273c7dd244e,aa945d14deab1e41]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[d22f59c4a430bc8d,05a23e4238ad815c]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[d762038b2d7888e8,b5a7b0215f1b1930]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[f8b5ae2fb7a77f9b,72da1288def1ab84]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "[fdffffffffdfffff,0001000004000000]", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "Infinity", "-2147483648", "01")
+ self.bid128_to_uint32_xrninta("0", "QNaN", "-2147483648", "01")
+ }
+
+ private func bid128_to_uint32_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt32(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt32 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint64_ceil() {
+ self.bid128_to_uint64_ceil("0", "-0", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[0000000000000000,0a00400202000840]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[0042000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[0ef813273386a4c2,3a074fe19f41f24e]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "1.0", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[10f8000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[15bf2793b8abf833,f63523aa1d31bbc7]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[28e400d40a40011d,3637e78d5c7a9757]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFE314DC6448D9338C15B0A00000001]", "2", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "2", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint64_ceil("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_uint64_ceil("0", "[3002280404460006,3f96ff8d85eb6af7]", "82", "00")
+ self.bid128_to_uint64_ceil("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[300293E952CDA8B9AA44111E00000001]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[30040ECA8847C4129106CE8300000001]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[300A0003C95A2F0B4856475FE0000001]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[300C000060EF6B1ABA6F072330000001]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3010C5371912364CE3056C2800000001]", "4000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C8905F96EBAD4C909800001]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C891B267182B61400000001]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C893053744A975EF6800001]", "20000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_ceil("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_ceil("0", "[3018AD78EBC5AC620000000000000001]", "35184372088833", "00")
+ self.bid128_to_uint64_ceil("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088833", "00")
+ self.bid128_to_uint64_ceil("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088833", "00")
+ self.bid128_to_uint64_ceil("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "00")
+ self.bid128_to_uint64_ceil("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B2663A1FF60589C0001]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B267182B61400000001]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[301E000000000001A055690D9DB80001]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088833", "00")
+ self.bid128_to_uint64_ceil("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088833", "00")
+ self.bid128_to_uint64_ceil("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "00")
+ self.bid128_to_uint64_ceil("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[302000000000000029A2241AF62C0001]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_ceil("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_ceil("0", "[3020000470DE4DF82000000000000001]", "35184372088833", "00")
+ self.bid128_to_uint64_ceil("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[302200193E5939A08CE4879688D64000]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[302200193E5939A08CE815152D9CBFFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[30235814c7ca909a,fffffffffeffffff]", "6978795299309309942", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF526340000000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF526340000000000000000001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF526340000001C6BF52633FFF]", "9223372036854775809", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF526340000001C6BF52634000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF526340000001C6BF52634001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF5263400000038D7EA4C67FFF]", "9223372036854775809", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF5263400000038D7EA4C68000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_ceil("0", "[3023C6BF5263400000038D7EA4C68001]", "9223372036854775810", "00")
+ self.bid128_to_uint64_ceil("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[3024000000000000006A94D74F430001]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "10000000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3024314DC6448D9338C15B0A00000000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3024314DC6448D9338C15B0A00000001]", "10000000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[3024314DC6448D9338C18883883D1FFF]", "10000000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[3024314DC6448D9338C18883883D2000]", "10000000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[3024314DC6448D9338C18883883D2001]", "10000000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[302449F4A966D45CD522088EFFFFFFFF]", "15000000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[302449F4A966D45CD522088F00000000]", "15000000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[302449F4A966D45CD522088F00000001]", "15000000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[3024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[3024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[3024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30251efa8718e043,5dbcf90b07eccdae]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[3026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[3026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[302A00000000006C6B935B68D08DA400]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[302A00000000006C6B935B8019048BFF]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[302C000000000000000002BBA7F521FF]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[302C000000000000000002BBA7F52200]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[302C00000000000AD78EBC5872141C01]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[302C00000000000AD78EBC5BF025F200]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[302C000000108B2A2C28028E3FF41C01]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[302E000000000001158E46094F6ACA01]", "20000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[303000000000000000000006FC23AC01]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[303200000000000000000000B2D05E01]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303800000000000000000000002DDA47]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303800000000000000000000002DDA48]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[303A00000000000000000000000495D3]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303A00000000000000000000000495D4]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303C0000000000000000000000007561]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303C0000000000000000000000007562]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000000000000000000BB9]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000000000002E90EDCFF1]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000000000002E90EDD005]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000000001400000000005]", "35184372088833", "00")
+ self.bid128_to_uint64_ceil("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[303E00000000000000470DE4DF820005]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "00")
+ self.bid128_to_uint64_ceil("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775807", "00")
+ self.bid128_to_uint64_ceil("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000050000000000000005]", "9223372036854775809", "00")
+ self.bid128_to_uint64_ceil("0", "[303E0000000000056BC75E2D63100005]", "10000000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[303E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint64_ceil("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint64_ceil("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint64_ceil("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_ceil("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_ceil("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_ceil("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_ceil("0", "[30400000000000008000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_ceil("0", "[30400000000000008000000000000001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_ceil("0", "[3040000000000000,c8081a8a00200615]", "14413799787409180181", "00")
+ self.bid128_to_uint64_ceil("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_ceil("0", "[30400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[3040000000000001,427421855c060bb7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint64_ceil("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint64_ceil("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_uint64_ceil("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_uint64_ceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint64_ceil("0", "[3044000000000000,079daace9339feba]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[3064000000000000000000000000000F]", "15000000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[30640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30660000000000000000000000000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_ceil("0", "[30660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[30680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[3175e6cf9a5b5f66,c7f922c6c8d7d2a2]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[460e79e2adf9dc78,9890b1e0341e9144]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[4bdc2e1af54b4809,84bc63a496961020]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[4fcaa517c408305d,c2a26ec011e55363]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "5.5", "6", "00")
+ self.bid128_to_uint64_ceil("0", "[78000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[79fffdafffff3f7f,8044000400000004]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[7c000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[7c003fffffffffff38c15b08ffffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[7c003fffffffffff38c15b0affffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[7df7ffeeefffbfff,dfb7effff725fffd]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[7e000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[8504912002100002,dfffbffdfb9eefb7]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "+877.5868765976E0", "878", "00")
+ self.bid128_to_uint64_ceil("0", "[8a763f5d86ef5be6,87600e556d7e2bc6]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[9cb42ee99e011398,0a02b4c241c1a472]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[a7ddc3954c23d30d,8fcbddd2953a1308]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[AFFE314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[AFFE314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[AFFE49F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[AFFE49F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00293E952CDA8B9AA44111E00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00293E952CDA8B9AA44111E00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00294286EACB8CB0A8CB6B140000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00294286EACB8CB0A8CB6B140000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0040ECA8847C4129106CE8300000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0040ECA8847C4129106CE8300000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00A0003C95A2F0B4856475FE0000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00A0003C95A2F0B4856475FE0000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00C000060EF6B1ABA6F072330000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B00C000060EF6B1ABA6F072330000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B010C5371912364CE3056C27FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B010C5371912364CE3056C2800000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B010C5371912364CE3056C2800000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B010F684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B010F684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C88FB62ED56E4238E400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C88FB62ED56E4238E400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C8905F96EBAD4C909800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C8905F96EBAD4C909800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C89108FF01EC56E84C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C89108FF01EC56E84C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C8925BCF2E6A6B97B400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C8925BCF2E6A6B97B400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C893053744A975EF67FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C893053744A975EF6800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C893053744A975EF6800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C893AE9F5AE880471C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B012629B8C893AE9F5AE880471C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B018AD78EBC5AC620000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B018AD78EBC5AC620000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01A0000000000A2E6C09AD3E0D40000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01A0000000000A2E6C09AD3E0D40001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B265CB1A40684EA0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B265CB1A40684EA0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B2663A1FF60589C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B2663A1FF60589C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B266A925ABA2C4E0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B266A925ABA2C4E0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B267873116DD3B1FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B267873116DD3B20000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B267873116DD3B20001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B267F636CC7A763FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B267F636CC7A7640000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B267F636CC7A7640001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B268653C8217B15FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B268653C8217B160000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01C629B8C891B268653C8217B160001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01E000000000001A055690D9DB7FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01E000000000001A055690D9DB80000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01E000000000001A055690D9DB80001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02000000000000029A2241AF62BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02000000000000029A2241AF62C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02000000000000029A2241AF62C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B020000470DE4DF82000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B020000470DE4DF82000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02000FC6F7C4045813459C637E07FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02000FC6F7C4045813459C637E08000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02000FC6F7C4045813459C637E08001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02000FC6F7C40458157E0B8A7A18000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02000FC6F7C40458157E0B8A7A18001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02200193E5939A08CE4879688D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02200193E5939A08CE4879688D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02200193E5939A08CE4879688D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02200193E5939A08CE815152D9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02200193E5939A08CE815152D9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02200193E5939A08CE815152D9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[b0238236842f6292,0cec9a530c0bacc4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF52633FFFFFFAABC208D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF52633FFFFFFAABC208D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF52633FFFFFFC72815B398000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF526340000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF526340000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF526340000001C6BF52634000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF526340000001C6BF52634001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF5263400000038D7EA4C68000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B023C6BF5263400000038D7EA4C68001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024000000000000006A94D74F42FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024000000000000006A94D74F430000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024000000000000006A94D74F430001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024314DC6448D9338C18883883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024314DC6448D9338C18883883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024314DC6448D9338C18883883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02449F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02449F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[b024c185a8364957,96fdc57cdbb294c8]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02A00000000006C6B935B68D08DA3FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02A00000000006C6B935B68D08DA400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02A00000000006C6B935B68D08DA401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02A00000000006C6B935B8019048BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02A00000000006C6B935B8019048C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02A00000000006C6B935B8019048C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C000000000000000002BBA7F521FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C000000000000000002BBA7F52200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C000000000000000002BBA7F52201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C00000000000AD78EBC5872141BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C00000000000AD78EBC5872141C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C00000000000AD78EBC5872141C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C00000000000AD78EBC5BF025F1FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C00000000000AD78EBC5BF025F200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C00000000000AD78EBC5BF025F201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C00000000000AD78EBC5E4431D5FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C00000000000AD78EBC5E4431D600]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C00000000000AD78EBC5E4431D601]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C000000108B2A2C28028E3FF41BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C000000108B2A2C28028E3FF41C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02C000000108B2A2C28028E3FF41C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02E000000000001158E46094F6AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02E000000000001158E46094F6ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02E000000000001158E46094F6ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02E00000001A784379D99DB7D9AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02E00000001A784379D99DB7D9ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B02E00000001A784379D99DB7D9ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03000000000000000000006FC23ABFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03000000000000000000006FC23AC00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03000000000000000000006FC23AC01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03200000000000000000000B2D05DFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03200000000000000000000B2D05E00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03200000000000000000000B2D05E01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03800000000000000000000002DDA47]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03800000000000000000000002DDA48]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03800000000000000000000002DDA49]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[B03A00000000000000000000000495D3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03A00000000000000000000000495D4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03A00000000000000000000000495D5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03C0000000000000000000000007561]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03C0000000000000000000000007562]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03C0000000000000000000000007563]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[B03E000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000000000000000000BB7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000000000000000000BB8]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000000000000000000BB9]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000000000000000000BBD]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000000000002E90EDCFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000000000002E90EDCFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000000000002E90EDD005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000000000002E90EDD00F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000000001400000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E00000000000000470DE4DF81FFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E00000000000000470DE4DF81FFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E00000000000000470DE4DF820005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E00000000000000470DE4DF82000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000050000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E0000000000056BC75E2D63100005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B03E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0400000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B040000000000000000000000000012B]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B040000000000000000000000000012C]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B040000000000000000000000000012D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B04000000000000000000004A817C7FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B04000000000000000000004A817C801]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0400000000000000000200000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B04000000000000000071AFD498D0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0400000000000008000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0400000000000008000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B042000000000000000000000000001D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B042000000000000000000000000001E]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B042000000000000000000000000001F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B04200000000000000000000773593FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0420000000000000000000077359400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0420000000000000000000077359401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0440000000000000000000000000003]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0520000000000000000000000000004]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0520000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0540000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B05E0000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B064000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0660000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[B0680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[c108000000000000,0000001000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[c1af51d64433ae73,5e41cf3d037d765f]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[de02b4a550ecd953,01fb94e82648c3e2]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[def9dfbd7f8b5cff,fefdfffff777fffd]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[f77061e824bd9f78,ffffffffffffffff]", "0", "00")
+ self.bid128_to_uint64_ceil("0", "[fbffdfe7f7bdeebf,00000000000c0102]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "[ffaa4f779f773e5f,a41f121c57118638]", "9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "QNaN", "-9223372036854775808", "01")
+ self.bid128_to_uint64_ceil("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_uint64_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint64_floor() {
+ self.bid128_to_uint64_floor("0", "-0", "0", "00")
+ self.bid128_to_uint64_floor("0", "0", "0", "00")
+ self.bid128_to_uint64_floor("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[0000000000000000,0000008000000900]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[0000000000000000,3edfffab4f779f77]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[0e8d4e4356b056fc,10d319a8e2da70b2]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[168c37a46c8208c9,c8f43daef4c2fb5a]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[1a47b95cd8e4d47c,df7d6a24ae5e140e]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[1f29dc745a4dd479,a6b317f1da236110]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[22e78f1912141c9c,9cc933dbfab88045]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[2439020868300168,bf9eff6fdfa7cff4]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[244e99e348816aaf,56f89963a896e058]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[259a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint64_floor("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_uint64_floor("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_uint64_floor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_uint64_floor("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "00")
+ self.bid128_to_uint64_floor("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "00")
+ self.bid128_to_uint64_floor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "00")
+ self.bid128_to_uint64_floor("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[3008808422040050,57c409c11090c07c]", "260661", "00")
+ self.bid128_to_uint64_floor("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "00")
+ self.bid128_to_uint64_floor("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "00")
+ self.bid128_to_uint64_floor("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "00")
+ self.bid128_to_uint64_floor("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "4999999999", "00")
+ self.bid128_to_uint64_floor("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999998", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999998", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C89108FF01EC56E84C00000]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C89108FF01EC56E84C00001]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C891B267182B613FFFFFFFF]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C891B267182B61400000001]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[301810a381140984,25e7797582109d5c]", "3374726919379", "00")
+ self.bid128_to_uint64_floor("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088831", "00")
+ self.bid128_to_uint64_floor("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999998", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B266A925ABA2C4E0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B266A925ABA2C4E0001]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B267182B613FFFFFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B268653C8217B160000]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[301C629B8C891B268653C8217B160001]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[301E000000000001A055690D9DB7FFFF]", "299", "00")
+ self.bid128_to_uint64_floor("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[302000000000000029A2241AF62BFFFF]", "299", "00")
+ self.bid128_to_uint64_floor("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088831", "00")
+ self.bid128_to_uint64_floor("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_floor("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "00")
+ self.bid128_to_uint64_floor("0", "[302200193E5939A08CE4879688D64001]", "1999999999999998", "00")
+ self.bid128_to_uint64_floor("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[302200193E5939A08CE815152D9CC000]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[302200193E5939A08CE815152D9CC001]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775806", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775806", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775807", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF526340000000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF526340000000000000000001]", "9223372036854775808", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF526340000001C6BF52634000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF526340000001C6BF52634001]", "9223372036854775808", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF5263400000038D7EA4C68000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_floor("0", "[3023C6BF5263400000038D7EA4C68001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_floor("0", "[3024000000000000006A94D74F42FFFF]", "299", "00")
+ self.bid128_to_uint64_floor("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "9999999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[3024314DC6448D9338C15B0A00000000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3024314DC6448D9338C15B0A00000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3024314DC6448D9338C18883883D1FFF]", "10000000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3024314DC6448D9338C18883883D2000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3024314DC6448D9338C18883883D2001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[302449F4A966D45CD522088EFFFFFFFF]", "14999999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[302449F4A966D45CD522088F00000000]", "15000000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[302449F4A966D45CD522088F00000001]", "15000000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "18446744073709551614", "00")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "18446744073709551615", "00")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "18446744073709551615", "00")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[3024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[3024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[3024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[3025333a988b2913,59d561199cdcd926]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[3026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[3026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "00")
+ self.bid128_to_uint64_floor("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "00")
+ self.bid128_to_uint64_floor("0", "[302A00000000006C6B935B68D08DA401]", "19999999998", "00")
+ self.bid128_to_uint64_floor("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[302A00000000006C6B935B8019048C00]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[302A00000000006C6B935B8019048C01]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[302C000000000000000002BBA7F52201]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[302C00000000000AD78EBC5872141BFF]", "19999999998", "00")
+ self.bid128_to_uint64_floor("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[302C00000000000AD78EBC5BF025F201]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[302C00000000000AD78EBC5E4431D600]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[302C00000000000AD78EBC5E4431D601]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_floor("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[302E000000000001158E46094F6AC9FF]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[303000000000000000000006FC23ABFF]", "299", "00")
+ self.bid128_to_uint64_floor("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303200000000000000000000B2D05DFF]", "299", "00")
+ self.bid128_to_uint64_floor("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303800000000000000000000002DDA49]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303A00000000000000000000000495D5]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303C0000000000000000000000007563]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000000000000000000BB7]", "299", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000000000002E90EDCFFB]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000000000002E90EDD005]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000000000002E90EDD00F]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000000001400000000005]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "00")
+ self.bid128_to_uint64_floor("0", "[303E00000000000000470DE4DF81FFFB]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[303E00000000000000470DE4DF82000F]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "00")
+ self.bid128_to_uint64_floor("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775807", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000050000000000000005]", "9223372036854775808", "00")
+ self.bid128_to_uint64_floor("0", "[303E0000000000056BC75E2D63100005]", "10000000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "18446744073709551615", "00")
+ self.bid128_to_uint64_floor("0", "[303E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint64_floor("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint64_floor("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint64_floor("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_uint64_floor("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_uint64_floor("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_floor("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_floor("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_floor("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_floor("0", "[30400000000000008000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_floor("0", "[30400000000000008000000000000001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_floor("0", "[3040000000000000,d080e8dfdac05e2a]", "15024264405053365802", "00")
+ self.bid128_to_uint64_floor("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_floor("0", "[30400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[3040000000000004,0080058010001200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint64_floor("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint64_floor("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_uint64_floor("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_uint64_floor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint64_floor("0", "[3048000000000000,0000004012000000]", "2751798968320000", "00")
+ self.bid128_to_uint64_floor("0", "[3048000000000000,001c00048c080002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint64_floor("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_uint64_floor("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_uint64_floor("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[3064000000000000000000000000000F]", "15000000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[30640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30660000000000000000000000000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_floor("0", "[30660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[30680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[5264b657a34bd852,e5325e84f7d383b0]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[78000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[7bee97ff212e7bd7,0000000000008000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[7c000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[7c003fffffffffff38c15b08ffffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[7c003fffffffffff38c15b0affffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[7e000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "+877.5868765976E0", "877", "00")
+ self.bid128_to_uint64_floor("0", "[8991b1788f8200b7,2f0727835fc77a9e]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[8d9e53a207a9e14d,e91224d9c119a4d3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[901a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[AFFCF684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[AFFCF684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[AFFDEC8B86EF679D76FC433D80000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[AFFDEC8B86EF679D76FC433D80000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[AFFE314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[AFFE314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[AFFE49F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[AFFE49F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00293E952CDA8B9AA44111E00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00293E952CDA8B9AA44111E00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00294286EACB8CB0A8CB6B140000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00294286EACB8CB0A8CB6B140000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0040ECA8847C4129106CE8300000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0040ECA8847C4129106CE8300000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00A0003C95A2F0B4856475FE0000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00A0003C95A2F0B4856475FE0000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00C000060EF6B1ABA6F072330000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B00C000060EF6B1ABA6F072330000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B010C5371912364CE3056C27FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B010C5371912364CE3056C2800000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B010C5371912364CE3056C2800000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B010F684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B010F684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C88FB62ED56E4238E400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C88FB62ED56E4238E400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C8905F96EBAD4C909800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C8905F96EBAD4C909800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C89108FF01EC56E84C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C89108FF01EC56E84C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C8925BCF2E6A6B97B400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C8925BCF2E6A6B97B400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C893053744A975EF67FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C893053744A975EF6800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C893053744A975EF6800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C893AE9F5AE880471C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B012629B8C893AE9F5AE880471C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B018AD78EBC5AC620000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B018AD78EBC5AC620000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01A0000000000A2E6C09AD3E0D40000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01A0000000000A2E6C09AD3E0D40001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B265CB1A40684EA0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B265CB1A40684EA0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B2663A1FF60589C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B2663A1FF60589C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B266A925ABA2C4E0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B266A925ABA2C4E0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B267873116DD3B1FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B267873116DD3B20000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B267873116DD3B20001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B267F636CC7A763FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B267F636CC7A7640000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B267F636CC7A7640001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B268653C8217B15FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B268653C8217B160000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01C629B8C891B268653C8217B160001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01E000000000001A055690D9DB7FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01E000000000001A055690D9DB80000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01E000000000001A055690D9DB80001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02000000000000029A2241AF62BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02000000000000029A2241AF62C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02000000000000029A2241AF62C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B020000470DE4DF82000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B020000470DE4DF82000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02000FC6F7C4045813459C637E07FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02000FC6F7C4045813459C637E08000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02000FC6F7C4045813459C637E08001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02000FC6F7C40458157E0B8A7A18000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02000FC6F7C40458157E0B8A7A18001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02200193E5939A08CE4879688D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02200193E5939A08CE4879688D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02200193E5939A08CE4879688D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02200193E5939A08CE815152D9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02200193E5939A08CE815152D9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02200193E5939A08CE815152D9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF52633FFFFFFAABC208D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF52633FFFFFFAABC208D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF52633FFFFFFC72815B398000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF526340000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF526340000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF526340000001C6BF52634000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF526340000001C6BF52634001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF5263400000038D7EA4C68000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B023C6BF5263400000038D7EA4C68001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024000000000000006A94D74F42FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024000000000000006A94D74F430000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024000000000000006A94D74F430001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024314DC6448D9338C18883883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024314DC6448D9338C18883883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024314DC6448D9338C18883883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02449F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02449F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02A00000000006C6B935B68D08DA3FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02A00000000006C6B935B68D08DA400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02A00000000006C6B935B68D08DA401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02A00000000006C6B935B8019048BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02A00000000006C6B935B8019048C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02A00000000006C6B935B8019048C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C000000000000000002BBA7F521FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C000000000000000002BBA7F52200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C000000000000000002BBA7F52201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C00000000000AD78EBC5872141BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C00000000000AD78EBC5872141C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C00000000000AD78EBC5872141C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C00000000000AD78EBC5BF025F1FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C00000000000AD78EBC5BF025F200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C00000000000AD78EBC5BF025F201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C00000000000AD78EBC5E4431D5FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C00000000000AD78EBC5E4431D600]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C00000000000AD78EBC5E4431D601]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C000000108B2A2C28028E3FF41BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C000000108B2A2C28028E3FF41C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02C000000108B2A2C28028E3FF41C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02E000000000001158E46094F6AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02E000000000001158E46094F6ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02E000000000001158E46094F6ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02E00000001A784379D99DB7D9AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02E00000001A784379D99DB7D9ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B02E00000001A784379D99DB7D9ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03000000000000000000006FC23ABFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03000000000000000000006FC23AC00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03000000000000000000006FC23AC01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03200000000000000000000B2D05DFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03200000000000000000000B2D05E00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03200000000000000000000B2D05E01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03800000000000000000000002DDA47]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03800000000000000000000002DDA48]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03800000000000000000000002DDA49]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03A00000000000000000000000003E7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03A00000000000000000000000495D3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03A00000000000000000000000495D4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03A00000000000000000000000495D5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03C0000000000000000000000007561]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03C0000000000000000000000007562]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03C0000000000000000000000007563]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000000000000000000BB7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000000000000000000BB8]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000000000000000000BB9]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000000000000000000BBD]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000000000002E90EDCFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000000000002E90EDCFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000000000002E90EDD005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000000000002E90EDD00F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000000001400000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E00000000000000470DE4DF81FFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E00000000000000470DE4DF81FFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E00000000000000470DE4DF820005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E00000000000000470DE4DF82000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000050000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E0000000000056BC75E2D63100005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B03E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0400000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B040000000000000000000000000012B]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B040000000000000000000000000012C]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B040000000000000000000000000012D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B04000000000000000000004A817C7FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B04000000000000000000004A817C801]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0400000000000000000200000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B04000000000000000071AFD498D0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0400000000000008000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0400000000000008000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B042000000000000000000000000001D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B042000000000000000000000000001E]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B042000000000000000000000000001F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B04200000000000000000000773593FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0420000000000000000000077359400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0420000000000000000000077359401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0440000000000000000000000000003]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0520000000000000000000000000004]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0520000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0540000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B05E0000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B064000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0660000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[B0680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[be5e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[c1ec000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[f2f5f3ebb9bfefdc,f7ffd1fffdf6bbef]", "0", "00")
+ self.bid128_to_uint64_floor("0", "[f8e35fe7f479b2fb,f73ef23bf7b660d5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[fc30ba5b08697140,ffeadbf25fff9f9d]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "[fffeffff6ffa3dbd,fffffff77deebfff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_floor("0", "QNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_uint64_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint64_int() {
+ self.bid128_to_uint64_int("0", "-0", "0", "00")
+ self.bid128_to_uint64_int("0", "0", "0", "00")
+ self.bid128_to_uint64_int("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_int("0", "[0000000000000000,0000002001000000]", "0", "00")
+ self.bid128_to_uint64_int("0", "[0000000000000000,ca64bdddefe2ef15]", "0", "00")
+ self.bid128_to_uint64_int("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint64_int("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint64_int("0", "[1500040000000002,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_int("0", "[26e8d736657a78ab,f83277e8cc2686ef]", "0", "00")
+ self.bid128_to_uint64_int("0", "[2e83c9a566372622,4cf1ef3e3b84e571]", "0", "00")
+ self.bid128_to_uint64_int("0", "[2ed9f98ecfb54afb,2042806000002004]", "0", "00")
+ self.bid128_to_uint64_int("0", "[2fc1ddf3c8d8a2e2,3038ddf1b38ad14f]", "0", "00")
+ self.bid128_to_uint64_int("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_int("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint64_int("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_uint64_int("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_uint64_int("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint64_int("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_uint64_int("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_int("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint64_int("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_uint64_int("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_uint64_int("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_uint64_int("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "00")
+ self.bid128_to_uint64_int("0", "[3000400000408180,effffffffbffbeff]", "12", "00")
+ self.bid128_to_uint64_int("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "00")
+ self.bid128_to_uint64_int("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint64_int("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_uint64_int("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_uint64_int("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_uint64_int("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "00")
+ self.bid128_to_uint64_int("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "00")
+ self.bid128_to_uint64_int("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint64_int("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_uint64_int("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "00")
+ self.bid128_to_uint64_int("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint64_int("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_uint64_int("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "00")
+ self.bid128_to_uint64_int("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint64_int("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_uint64_int("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "00")
+ self.bid128_to_uint64_int("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint64_int("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_uint64_int("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "4999999999", "00")
+ self.bid128_to_uint64_int("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_uint64_int("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999998", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999998", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C89108FF01EC56E84C00000]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C89108FF01EC56E84C00001]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C891B267182B613FFFFFFFF]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C891B267182B61400000001]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[3018032000002007,182c184d873500ac]", "633825301626", "00")
+ self.bid128_to_uint64_int("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088831", "00")
+ self.bid128_to_uint64_int("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_uint64_int("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_uint64_int("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999998", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B266A925ABA2C4E0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B266A925ABA2C4E0001]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B267182B613FFFFFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B268653C8217B160000]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[301C629B8C891B268653C8217B160001]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[301E000000000001A055690D9DB7FFFF]", "299", "00")
+ self.bid128_to_uint64_int("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint64_int("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_uint64_int("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[302000000000000029A2241AF62BFFFF]", "299", "00")
+ self.bid128_to_uint64_int("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint64_int("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_uint64_int("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088831", "00")
+ self.bid128_to_uint64_int("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_int("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "00")
+ self.bid128_to_uint64_int("0", "[302200193E5939A08CE4879688D64001]", "1999999999999998", "00")
+ self.bid128_to_uint64_int("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[302200193E5939A08CE815152D9CC000]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[302200193E5939A08CE815152D9CC001]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775806", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775806", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775807", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF526340000000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF526340000000000000000001]", "9223372036854775808", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF526340000001C6BF52634000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF526340000001C6BF52634001]", "9223372036854775808", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF5263400000038D7EA4C68000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_int("0", "[3023C6BF5263400000038D7EA4C68001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_int("0", "[3024000000000000006A94D74F42FFFF]", "299", "00")
+ self.bid128_to_uint64_int("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint64_int("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_uint64_int("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "9999999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[3024314DC6448D9338C15B0A00000000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[3024314DC6448D9338C15B0A00000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[3024314DC6448D9338C18883883D1FFF]", "10000000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[3024314DC6448D9338C18883883D2000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[3024314DC6448D9338C18883883D2001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[302449F4A966D45CD522088EFFFFFFFF]", "14999999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[302449F4A966D45CD522088F00000000]", "15000000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[302449F4A966D45CD522088F00000001]", "15000000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "18446744073709551614", "00")
+ self.bid128_to_uint64_int("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_int("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "18446744073709551615", "00")
+ self.bid128_to_uint64_int("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_int("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_int("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "18446744073709551615", "00")
+ self.bid128_to_uint64_int("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_int("0", "[30245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[3024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[3024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[3024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30254681edf33dd9,711466b1fc811871]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[3026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[3026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "00")
+ self.bid128_to_uint64_int("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "00")
+ self.bid128_to_uint64_int("0", "[302A00000000006C6B935B68D08DA401]", "19999999998", "00")
+ self.bid128_to_uint64_int("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[302A00000000006C6B935B8019048C00]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[302A00000000006C6B935B8019048C01]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_uint64_int("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_uint64_int("0", "[302C000000000000000002BBA7F52201]", "300", "00")
+ self.bid128_to_uint64_int("0", "[302C00000000000AD78EBC5872141BFF]", "19999999998", "00")
+ self.bid128_to_uint64_int("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[302C00000000000AD78EBC5BF025F201]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[302C00000000000AD78EBC5E4431D600]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[302C00000000000AD78EBC5E4431D601]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_int("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[302E000000000001158E46094F6AC9FF]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[303000000000000000000006FC23ABFF]", "299", "00")
+ self.bid128_to_uint64_int("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303200000000000000000000B2D05DFF]", "299", "00")
+ self.bid128_to_uint64_int("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303800000000000000000000002DDA49]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint64_int("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303A00000000000000000000000495D5]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303C0000000000000000000000007563]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint64_int("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000000000000000000BB7]", "299", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000000000002E90EDCFFB]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000000000002E90EDD005]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000000000002E90EDD00F]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000000001400000000005]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "00")
+ self.bid128_to_uint64_int("0", "[303E00000000000000470DE4DF81FFFB]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[303E00000000000000470DE4DF82000F]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "00")
+ self.bid128_to_uint64_int("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775807", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000050000000000000005]", "9223372036854775808", "00")
+ self.bid128_to_uint64_int("0", "[303E0000000000056BC75E2D63100005]", "10000000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "18446744073709551615", "00")
+ self.bid128_to_uint64_int("0", "[303E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint64_int("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint64_int("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint64_int("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint64_int("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_uint64_int("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_uint64_int("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_int("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_int("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_int("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_int("0", "[30400000000000008000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_int("0", "[30400000000000008000000000000001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_int("0", "[3040000000000000,80002a2101009000]", "9223418358093877248", "00")
+ self.bid128_to_uint64_int("0", "[3040000000000000,ffbfffffff7bfffd]", "18428729675191418877", "00")
+ self.bid128_to_uint64_int("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_int("0", "[30400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[3040000000000001,6fffefefbffff6fe]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint64_int("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint64_int("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint64_int("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint64_int("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_uint64_int("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_uint64_int("0", "[3042000000000000,837b83db3d3bf4cc]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint64_int("0", "[3050000000000000,0000000401200000]", "1719874355200000000", "00")
+ self.bid128_to_uint64_int("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint64_int("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_uint64_int("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_uint64_int("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[3064000000000000000000000000000F]", "15000000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[30640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30660000000000000000000000000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_int("0", "[30660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[30680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[42d2000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_int("0", "[5aa361903d24889f,7950d5f74f19f213]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[78000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[7afffffffffff7ff,1024402e0012c02e]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[7c000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[7c003fffffffffff38c15b08ffffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[7c003fffffffffff38c15b0affffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[7e000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[860892bb45bd3fcc,3f5eddb689126e98]", "0", "00")
+ self.bid128_to_uint64_int("0", "[8d4605c06190a0dc,c538dcbc3e609f23]", "0", "00")
+ self.bid128_to_uint64_int("0", "[9165e49e2ed0ee61,0abb1f0eb80240f3]", "0", "00")
+ self.bid128_to_uint64_int("0", "[a67ca021a3b7c1e6,c386a2d0a030d319]", "0", "00")
+ self.bid128_to_uint64_int("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_int("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint64_int("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "00")
+ self.bid128_to_uint64_int("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "00")
+ self.bid128_to_uint64_int("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint64_int("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "00")
+ self.bid128_to_uint64_int("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_int("0", "[AFFE314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[AFFE314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[AFFE49F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[AFFE49F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[afffdfff15b7dfec,0000000800800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00293E952CDA8B9AA44111E00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00293E952CDA8B9AA44111E00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00294286EACB8CB0A8CB6B140000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00294286EACB8CB0A8CB6B140000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0040ECA8847C4129106CE8300000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0040ECA8847C4129106CE8300000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00A0003C95A2F0B4856475FE0000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00A0003C95A2F0B4856475FE0000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00C000060EF6B1ABA6F072330000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B00C000060EF6B1ABA6F072330000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B010C5371912364CE3056C27FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B010C5371912364CE3056C2800000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B010C5371912364CE3056C2800000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B010F684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B010F684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C88FB62ED56E4238E400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C88FB62ED56E4238E400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C8905F96EBAD4C909800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C8905F96EBAD4C909800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C89108FF01EC56E84C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C89108FF01EC56E84C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C8925BCF2E6A6B97B400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C8925BCF2E6A6B97B400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C893053744A975EF67FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C893053744A975EF6800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C893053744A975EF6800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C893AE9F5AE880471C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B012629B8C893AE9F5AE880471C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B018AD78EBC5AC620000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B018AD78EBC5AC620000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01A0000000000A2E6C09AD3E0D40000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01A0000000000A2E6C09AD3E0D40001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B265CB1A40684EA0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B265CB1A40684EA0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B2663A1FF60589C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B2663A1FF60589C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B266A925ABA2C4E0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B266A925ABA2C4E0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B267873116DD3B1FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B267873116DD3B20000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B267873116DD3B20001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B267F636CC7A763FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B267F636CC7A7640000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B267F636CC7A7640001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B268653C8217B15FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B268653C8217B160000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01C629B8C891B268653C8217B160001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01E000000000001A055690D9DB7FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01E000000000001A055690D9DB80000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01E000000000001A055690D9DB80001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02000000000000029A2241AF62BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02000000000000029A2241AF62C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02000000000000029A2241AF62C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B020000470DE4DF82000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B020000470DE4DF82000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02000FC6F7C4045813459C637E07FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02000FC6F7C4045813459C637E08000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02000FC6F7C4045813459C637E08001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02000FC6F7C40458157E0B8A7A18000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02000FC6F7C40458157E0B8A7A18001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02200193E5939A08CE4879688D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02200193E5939A08CE4879688D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02200193E5939A08CE4879688D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02200193E5939A08CE815152D9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02200193E5939A08CE815152D9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02200193E5939A08CE815152D9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF52633FFFFFFAABC208D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF52633FFFFFFAABC208D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF52633FFFFFFC72815B398000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF526340000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF526340000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF526340000001C6BF52634000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF526340000001C6BF52634001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF5263400000038D7EA4C68000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B023C6BF5263400000038D7EA4C68001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024000000000000006A94D74F42FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024000000000000006A94D74F430000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024000000000000006A94D74F430001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024314DC6448D9338C18883883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024314DC6448D9338C18883883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024314DC6448D9338C18883883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02449F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02449F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[b0262dd0d75425d5,208c7efab4f6e5b1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02A00000000006C6B935B68D08DA3FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02A00000000006C6B935B68D08DA400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02A00000000006C6B935B68D08DA401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02A00000000006C6B935B8019048BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02A00000000006C6B935B8019048C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02A00000000006C6B935B8019048C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C000000000000000002BBA7F521FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C000000000000000002BBA7F52200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C000000000000000002BBA7F52201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C00000000000AD78EBC5872141BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C00000000000AD78EBC5872141C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C00000000000AD78EBC5872141C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C00000000000AD78EBC5BF025F1FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C00000000000AD78EBC5BF025F200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C00000000000AD78EBC5BF025F201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C00000000000AD78EBC5E4431D5FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C00000000000AD78EBC5E4431D600]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C00000000000AD78EBC5E4431D601]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C000000108B2A2C28028E3FF41BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C000000108B2A2C28028E3FF41C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02C000000108B2A2C28028E3FF41C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02E000000000001158E46094F6AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02E000000000001158E46094F6ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02E000000000001158E46094F6ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02E00000001A784379D99DB7D9AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02E00000001A784379D99DB7D9ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B02E00000001A784379D99DB7D9ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03000000000000000000006FC23ABFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03000000000000000000006FC23AC00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03000000000000000000006FC23AC01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03200000000000000000000B2D05DFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03200000000000000000000B2D05E00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03200000000000000000000B2D05E01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03800000000000000000000002DDA47]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03800000000000000000000002DDA48]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03800000000000000000000002DDA49]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint64_int("0", "[B03A00000000000000000000000495D3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03A00000000000000000000000495D4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03A00000000000000000000000495D5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03C0000000000000000000000007561]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03C0000000000000000000000007562]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03C0000000000000000000000007563]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint64_int("0", "[B03E000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000000000000000000BB7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000000000000000000BB8]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000000000000000000BB9]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000000000000000000BBD]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000000000002E90EDCFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000000000002E90EDCFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000000000002E90EDD005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000000000002E90EDD00F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000000001400000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E00000000000000470DE4DF81FFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E00000000000000470DE4DF81FFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E00000000000000470DE4DF820005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E00000000000000470DE4DF82000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000050000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E0000000000056BC75E2D63100005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B03E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0400000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B040000000000000000000000000012B]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B040000000000000000000000000012C]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B040000000000000000000000000012D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B04000000000000000000004A817C7FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B04000000000000000000004A817C801]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0400000000000000000200000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B04000000000000000071AFD498D0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0400000000000008000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0400000000000008000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B042000000000000000000000000001D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B042000000000000000000000000001E]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B042000000000000000000000000001F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B04200000000000000000000773593FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0420000000000000000000077359400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0420000000000000000000077359401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0440000000000000000000000000003]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0520000000000000000000000000004]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0520000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0540000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B05E0000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B064000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0660000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[B0680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[ddc46000a0e1a025,7ad75ef9ccaff7de]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[f95137437392e365,3bc1d3dbc488576a]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[fc00240a135b2407,4611120c1a3be577]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[fdef6aff3df37fee,3ff77ff7efffddf3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "[ffcfdc2cda5bf95f,0821080080020000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "QNaN", "-9223372036854775808", "01")
+ self.bid128_to_uint64_int("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_uint64_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint64_rnint() {
+ self.bid128_to_uint64_rnint("0", "-0", "0", "00")
+ self.bid128_to_uint64_rnint("0", "0", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[0000000000000000,0000100000000000]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[0002000000000000,2310040289876000]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[0340bc4546bcdee6,f19e64da6ac16f25]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[09e3959734bfe434,b5340aa5c56532f7]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[1518000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[1864000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[28443ed1117945fa,2c6a0fd15e1959ae]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[2ffc9b0d3f43fff7,eefd57eff3f9f757]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint64_rnint("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_uint64_rnint("0", "[3000040c10010155,13beaffd59ddd5ee]", "1", "00")
+ self.bid128_to_uint64_rnint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_uint64_rnint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[30108a011c0832a3,104aa030ec00324a]", "2799060429", "00")
+ self.bid128_to_uint64_rnint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C891B267182B61400000001]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "00")
+ self.bid128_to_uint64_rnint("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "00")
+ self.bid128_to_uint64_rnint("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "00")
+ self.bid128_to_uint64_rnint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "00")
+ self.bid128_to_uint64_rnint("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "00")
+ self.bid128_to_uint64_rnint("0", "[301de0294c3a5170,ffffffffffffffff]", "9738828555778927", "00")
+ self.bid128_to_uint64_rnint("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "00")
+ self.bid128_to_uint64_rnint("0", "[3020000000000000,0008000000000080]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "00")
+ self.bid128_to_uint64_rnint("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "00")
+ self.bid128_to_uint64_rnint("0", "[3021a5000c0e040d,cc9630a8ab120906]", "853889817390157659", "00")
+ self.bid128_to_uint64_rnint("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_rnint("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "00")
+ self.bid128_to_uint64_rnint("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF526340000000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF526340000000000000000001]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF526340000001C6BF52634000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF526340000001C6BF52634001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF5263400000038D7EA4C67FFF]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF5263400000038D7EA4C68000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rnint("0", "[3023C6BF5263400000038D7EA4C68001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rnint("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3024314DC6448D9338C15B0A00000000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3024314DC6448D9338C15B0A00000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3024314DC6448D9338C18883883D1FFF]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3024314DC6448D9338C18883883D2000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3024314DC6448D9338C18883883D2001]", "10000000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[302449F4A966D45CD522088EFFFFFFFF]", "15000000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[302449F4A966D45CD522088F00000000]", "15000000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[302449F4A966D45CD522088F00000001]", "15000000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "18446744073709551615", "00")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[3024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[3024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[3024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[3025ad997ee43dd2,9073762f1af96d79]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[3026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[3026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "00")
+ self.bid128_to_uint64_rnint("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "00")
+ self.bid128_to_uint64_rnint("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[302C000000000000000002BBA7F52200]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_uint64_rnint("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "00")
+ self.bid128_to_uint64_rnint("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "00")
+ self.bid128_to_uint64_rnint("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303800000000000000000000002DDA48]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_uint64_rnint("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint64_rnint("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303A00000000000000000000000495D4]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_uint64_rnint("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303C0000000000000000000000007562]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000000000000000000BBD]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000000000002E90EDD005]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000000001400000000005]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "00")
+ self.bid128_to_uint64_rnint("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "00")
+ self.bid128_to_uint64_rnint("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "00")
+ self.bid128_to_uint64_rnint("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000050000000000000005]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rnint("0", "[303E0000000000056BC75E2D63100005]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[303E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint64_rnint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint64_rnint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint64_rnint("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_rnint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rnint("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_rnint("0", "[3040000000000000,213820e0e8610a58]", "2393699352290855512", "00")
+ self.bid128_to_uint64_rnint("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rnint("0", "[30400000000000008000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rnint("0", "[30400000000000008000000000000001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rnint("0", "[3040000000000000,9880c16d00028024]", "10988995764679770148", "00")
+ self.bid128_to_uint64_rnint("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_rnint("0", "[30400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[3040000000000001,6fffcfefbffff6fe]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint64_rnint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint64_rnint("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_uint64_rnint("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_uint64_rnint("0", "[3042000000000000,330c9196100190cb]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint64_rnint("0", "[3044000000000000,0002400000400000]", "63331870179328000", "00")
+ self.bid128_to_uint64_rnint("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[3064000000000000000000000000000F]", "15000000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[30640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30660000000000000000000000000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rnint("0", "[30660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[30680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[467a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[476cddc117a76c80,d48f39d585728aaf]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[48c03e31a9bc4009,dd7ca6152fccdfef]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[52df24db15547294,c67f7b2eab961e08]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "5.5", "6", "00")
+ self.bid128_to_uint64_rnint("0", "[5e1d3b2309d99b11,cec079443ce1f447]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "+6.7E0", "7", "00")
+ self.bid128_to_uint64_rnint("0", "[78000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[78a01828d54810e0,e5f69816156840c5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[7c000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[7c003fffffffffff38c15b08ffffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[7c003fffffffffff38c15b0affffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[7e000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[8ffc6f10bb0971ca,52be0c0c01ae10a1]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[9ca40f6d5d6a8c0c,0e6e886ac6542991]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[a12cda6840ba4c32,54c5374c039e41c7]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[a3b431215a7a29e2,68bc661f23b9b8c0]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[affd73ffb57f2ffd,ffefff7ffc6ff6fe]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[AFFE314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[AFFE314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[AFFE49F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[AFFE49F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[afffaae765c81c5c,14c64dda8cfc0cf3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00293E952CDA8B9AA44111E00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00293E952CDA8B9AA44111E00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00294286EACB8CB0A8CB6B140000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00294286EACB8CB0A8CB6B140000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0040ECA8847C4129106CE8300000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0040ECA8847C4129106CE8300000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00A0003C95A2F0B4856475FE0000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00A0003C95A2F0B4856475FE0000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00C000060EF6B1ABA6F072330000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B00C000060EF6B1ABA6F072330000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B010C5371912364CE3056C2800000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B010C5371912364CE3056C2800000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B010F684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B010F684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C88FB62ED56E4238E400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C88FB62ED56E4238E400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C8905F96EBAD4C909800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C8905F96EBAD4C909800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C89108FF01EC56E84C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C89108FF01EC56E84C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C893053744A975EF67FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C893053744A975EF6800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C893053744A975EF6800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C893AE9F5AE880471C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B012629B8C893AE9F5AE880471C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B018AD78EBC5AC620000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B018AD78EBC5AC620000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B265CB1A40684EA0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B265CB1A40684EA0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B2663A1FF60589C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B2663A1FF60589C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B266A925ABA2C4E0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B266A925ABA2C4E0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B267873116DD3B1FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B267873116DD3B20000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B267873116DD3B20001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B267F636CC7A763FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B267F636CC7A7640000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B267F636CC7A7640001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B268653C8217B15FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B268653C8217B160000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01C629B8C891B268653C8217B160001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01E000000000001A055690D9DB7FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01E000000000001A055690D9DB80000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01E000000000001A055690D9DB80001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02000000000000029A2241AF62BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02000000000000029A2241AF62C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02000000000000029A2241AF62C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B020000470DE4DF82000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B020000470DE4DF82000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02000FC6F7C4045813459C637E07FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02000FC6F7C4045813459C637E08000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02000FC6F7C4045813459C637E08001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02000FC6F7C40458157E0B8A7A18000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02000FC6F7C40458157E0B8A7A18001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02200193E5939A08CE4879688D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02200193E5939A08CE4879688D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02200193E5939A08CE4879688D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02200193E5939A08CE815152D9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02200193E5939A08CE815152D9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02200193E5939A08CE815152D9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF52633FFFFFFAABC208D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF52633FFFFFFAABC208D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF52633FFFFFFC72815B398000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF526340000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF526340000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF526340000001C6BF52634000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF526340000001C6BF52634001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF5263400000038D7EA4C68000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B023C6BF5263400000038D7EA4C68001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024000000000000006A94D74F42FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024000000000000006A94D74F430000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024000000000000006A94D74F430001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024314DC6448D9338C18883883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024314DC6448D9338C18883883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024314DC6448D9338C18883883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02449F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02449F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[b02453d68e5b736f,bcc8364d4a91ab9e]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02A00000000006C6B935B68D08DA3FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02A00000000006C6B935B68D08DA400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02A00000000006C6B935B68D08DA401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02A00000000006C6B935B8019048BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02A00000000006C6B935B8019048C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02A00000000006C6B935B8019048C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C000000000000000002BBA7F521FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C000000000000000002BBA7F52200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C000000000000000002BBA7F52201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C00000000000AD78EBC5872141BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C00000000000AD78EBC5872141C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C00000000000AD78EBC5872141C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C00000000000AD78EBC5BF025F200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C00000000000AD78EBC5BF025F201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C00000000000AD78EBC5E4431D600]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C00000000000AD78EBC5E4431D601]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C000000108B2A2C28028E3FF41BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C000000108B2A2C28028E3FF41C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02C000000108B2A2C28028E3FF41C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02E000000000001158E46094F6AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02E000000000001158E46094F6ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02E000000000001158E46094F6ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02E00000001A784379D99DB7D9AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02E00000001A784379D99DB7D9ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B02E00000001A784379D99DB7D9ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03000000000000000000006FC23ABFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03000000000000000000006FC23AC00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03000000000000000000006FC23AC01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03200000000000000000000B2D05DFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03200000000000000000000B2D05E00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03200000000000000000000B2D05E01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03800000000000000000000002DDA47]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03800000000000000000000002DDA48]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03800000000000000000000002DDA49]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03A00000000000000000000000003E7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03A00000000000000000000000495D3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03A00000000000000000000000495D4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03A00000000000000000000000495D5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03C0000000000000000000000007561]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03C0000000000000000000000007562]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03C0000000000000000000000007563]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[B03E000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000000000000000000BB7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000000000000000000BB8]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000000000000000000BB9]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000000000000000000BBD]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000000000002E90EDCFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000000000002E90EDCFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000000000002E90EDD005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000000000002E90EDD00F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000000001400000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E00000000000000470DE4DF81FFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E00000000000000470DE4DF81FFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E00000000000000470DE4DF820005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E00000000000000470DE4DF82000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000050000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E0000000000056BC75E2D63100005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B03E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0400000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B040000000000000000000000000012B]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B040000000000000000000000000012C]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B040000000000000000000000000012D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B04000000000000000000004A817C7FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B04000000000000000000004A817C801]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0400000000000000000200000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B04000000000000000071AFD498D0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0400000000000008000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0400000000000008000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B042000000000000000000000000001D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B042000000000000000000000000001E]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B042000000000000000000000000001F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B04200000000000000000000773593FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0420000000000000000000077359400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0420000000000000000000077359401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0440000000000000000000000000003]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0520000000000000000000000000004]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0520000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0540000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B05E0000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B064000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0660000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[B0680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[b2979257937951f0,aaa65418b1a1c2cf]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[b2b54f28ed2bc610,0362fb3b5add830d]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[b37da2076695b91a,370078c237b0d1b9]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[c17d8a93d411b09a,132a951c151118f6]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[c5c11647b624c05f,eebbdcb4f0ad7f51]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[ccdc000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[d6709120f0f0854f,26c19bc59ba46c0a]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[e3fbdaabe4715744,467fc2a19671303a]", "0", "00")
+ self.bid128_to_uint64_rnint("0", "[fbb7ec716daee7fd,06a0843023d32504]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[fc00000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[fdf797cffe97dbd6,ffefdfe7efdeff8e]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[fe00000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "[ffffefbf6ff7ff7f,affffffffffffdcf]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rnint("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_uint64_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint64_rninta() {
+ self.bid128_to_uint64_rninta("0", "0", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[0000000000000000,4010000008000218]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[0002000000000000,0001400000840500]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "0.1", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[0400468035808c00,1d0e9d47f1eb1e9c]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[059cb11fdaa4da67,8e99ba5d58bfac5f]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[0a08054000200830,2234290614274083]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[2f45621cc5fc8053,9e5303648ca3a644]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint64_rninta("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "00")
+ self.bid128_to_uint64_rninta("0", "[3000040411000480,868149fd3410c130]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[300293E952CDA8B9AA44111E00000001]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[30040ECA8847C4129106CE8300000001]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[300802a1488fa688,04009ac84d152000]", "5334", "00")
+ self.bid128_to_uint64_rninta("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[300C000060EF6B1ABA6F072330000001]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C891B267182B61400000001]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "00")
+ self.bid128_to_uint64_rninta("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "00")
+ self.bid128_to_uint64_rninta("0", "[301450250a182818,3d39c9efbf13cdf9]", "162552733436", "00")
+ self.bid128_to_uint64_rninta("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_rninta("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_rninta("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "00")
+ self.bid128_to_uint64_rninta("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_rninta("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088833", "00")
+ self.bid128_to_uint64_rninta("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "00")
+ self.bid128_to_uint64_rninta("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[301afa8fe9edcbf0,fffd0df6a2d4213d]", "508200442563825", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "00")
+ self.bid128_to_uint64_rninta("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "00")
+ self.bid128_to_uint64_rninta("0", "[301E000000000001A055690D9DB7FFFF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[301E000000000001A055690D9DB80001]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_rninta("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088833", "00")
+ self.bid128_to_uint64_rninta("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "00")
+ self.bid128_to_uint64_rninta("0", "[3020000000000000,0020000016801084]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[302000000000000029A2241AF62BFFFF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[302000000000000029A2241AF62C0001]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "00")
+ self.bid128_to_uint64_rninta("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_rninta("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "00")
+ self.bid128_to_uint64_rninta("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "00")
+ self.bid128_to_uint64_rninta("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "00")
+ self.bid128_to_uint64_rninta("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "00")
+ self.bid128_to_uint64_rninta("0", "[302200193E5939A08CE4879688D64000]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF526340000000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF526340000000000000000001]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF526340000001C6BF52634000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF526340000001C6BF52634001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF5263400000038D7EA4C67FFF]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF5263400000038D7EA4C68000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rninta("0", "[3023C6BF5263400000038D7EA4C68001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rninta("0", "[3024000000000000006A94D74F42FFFF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[3024000000000000006A94D74F430001]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3024314DC6448D9338C15B0A00000000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3024314DC6448D9338C15B0A00000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3024314DC6448D9338C18883883D1FFF]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3024314DC6448D9338C18883883D2000]", "10000000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[3024314DC6448D9338C18883883D2001]", "10000000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302449F4A966D45CD522088EFFFFFFFF]", "15000000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[302449F4A966D45CD522088F00000000]", "15000000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[302449F4A966D45CD522088F00000001]", "15000000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "18446744073709551615", "00")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[3024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[3024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[3024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[3026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[3026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[3028014008200011,67f8d2ff4b6a6969]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "00")
+ self.bid128_to_uint64_rninta("0", "[302A00000000006C6B935B68D08DA400]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[302C000000000000000002BBA7F521FF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[302C000000000000000002BBA7F52200]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[302C000000000000000002BBA7F52201]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[302C00000000000AD78EBC5BF025F200]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "00")
+ self.bid128_to_uint64_rninta("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "00")
+ self.bid128_to_uint64_rninta("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[303000000000000000000006FC23ABFF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303000000000000000000006FC23AC01]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303200000000000000000000B2D05DFF]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303200000000000000000000B2D05E01]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303800000000000000000000002DDA47]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303800000000000000000000002DDA48]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[303800000000000000000000002DDA49]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[303A00000000000000000000000495D3]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303A00000000000000000000000495D4]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[303A00000000000000000000000495D5]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[303C0000000000000000000000007561]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303C0000000000000000000000007562]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[303C0000000000000000000000007563]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000000000000000000BB7]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000000000000000000BB9]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000000000000000000BBD]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000000000002E90EDCFF1]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000000000002E90EDD005]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000000001400000000005]", "35184372088833", "00")
+ self.bid128_to_uint64_rninta("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[303E00000000000000470DE4DF820005]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "00")
+ self.bid128_to_uint64_rninta("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rninta("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000050000000000000005]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rninta("0", "[303E0000000000056BC75E2D63100005]", "10000000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[303E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint64_rninta("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint64_rninta("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint64_rninta("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_rninta("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_rninta("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_rninta("0", "[3040000000000000,7fa93d1df7ef58eb]", "9198950912803952875", "00")
+ self.bid128_to_uint64_rninta("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_rninta("0", "[30400000000000008000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_rninta("0", "[30400000000000008000000000000001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_rninta("0", "[3040000000000000,c8b7fde5cfac1f5d]", "14463307891797139293", "00")
+ self.bid128_to_uint64_rninta("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_rninta("0", "[30400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[3040000000000004,00884df110011209]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint64_rninta("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint64_rninta("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_uint64_rninta("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_uint64_rninta("0", "[3042000000000000,1386939e2034703c]", "14069742409542820440", "00")
+ self.bid128_to_uint64_rninta("0", "[3042000000000000,7c003c20c2440300]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint64_rninta("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[3064000000000000000000000000000F]", "15000000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[30640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30660000000000000000000000000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_rninta("0", "[30660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[30680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[4db70d3b1dc80f97,9f964c79f531dabb]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[4e02502995db4cce,acb87f7b46d87dfd]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[5e72aafb44a90506,380460cce663dff7]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[6ca4f3b5d0bd58a4,1a352b4b2f44556e]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[78000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[78f12fcdc421a071,5fb16b25db258108]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[7c000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[7c003fffffffffff38c15b08ffffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[7c003fffffffffff38c15b0affffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[7e000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[885ca658c8f3ecca,c529d6a9179820e9]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[AFFCF684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[AFFCF684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[AFFDEC8B86EF679D76FC433D80000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[AFFDEC8B86EF679D76FC433D80000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[AFFE314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[AFFE314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[AFFE49F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[AFFE49F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[b002004000000002,bfffe7ffbffff7ff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00293E952CDA8B9AA44111E00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00293E952CDA8B9AA44111E00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00294286EACB8CB0A8CB6B140000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00294286EACB8CB0A8CB6B140000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[b0040003b2043802,c30318af8e5313c2]", "0", "00")
+ self.bid128_to_uint64_rninta("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0040ECA8847C4129106CE8300000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0040ECA8847C4129106CE8300000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[b008230412034102,322a518006095c2d]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00A0003C95A2F0B4856475FE0000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00A0003C95A2F0B4856475FE0000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00C000060EF6B1ABA6F072330000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B00C000060EF6B1ABA6F072330000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B010C5371912364CE3056C27FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B010C5371912364CE3056C2800000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B010C5371912364CE3056C2800000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B010F684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B010F684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C88FB62ED56E4238E400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C88FB62ED56E4238E400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C8905F96EBAD4C909800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C8905F96EBAD4C909800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C89108FF01EC56E84C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C89108FF01EC56E84C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C8925BCF2E6A6B97B400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C8925BCF2E6A6B97B400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C893053744A975EF67FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C893053744A975EF6800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C893053744A975EF6800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C893AE9F5AE880471C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B012629B8C893AE9F5AE880471C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B018AD78EBC5AC620000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B018AD78EBC5AC620000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01A0000000000A2E6C09AD3E0D40000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01A0000000000A2E6C09AD3E0D40001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B265CB1A40684EA0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B265CB1A40684EA0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B2663A1FF60589C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B2663A1FF60589C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B266A925ABA2C4E0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B266A925ABA2C4E0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B267873116DD3B1FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B267873116DD3B20000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B267873116DD3B20001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B267F636CC7A763FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B267F636CC7A7640000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B267F636CC7A7640001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B268653C8217B15FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B268653C8217B160000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01C629B8C891B268653C8217B160001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01E000000000001A055690D9DB7FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01E000000000001A055690D9DB80000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01E000000000001A055690D9DB80001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02000000000000029A2241AF62BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02000000000000029A2241AF62C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02000000000000029A2241AF62C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B020000470DE4DF82000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B020000470DE4DF82000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02000FC6F7C4045813459C637E07FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02000FC6F7C4045813459C637E08000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02000FC6F7C4045813459C637E08001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02000FC6F7C40458157E0B8A7A18000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02000FC6F7C40458157E0B8A7A18001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02200193E5939A08CE4879688D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02200193E5939A08CE4879688D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02200193E5939A08CE4879688D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02200193E5939A08CE815152D9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02200193E5939A08CE815152D9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02200193E5939A08CE815152D9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF52633FFFFFFAABC208D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF52633FFFFFFAABC208D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF52633FFFFFFC72815B398000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF526340000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF526340000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF526340000001C6BF52634000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF526340000001C6BF52634001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF5263400000038D7EA4C68000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B023C6BF5263400000038D7EA4C68001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024000000000000006A94D74F42FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024000000000000006A94D74F430000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024000000000000006A94D74F430001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024314DC6448D9338C18883883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024314DC6448D9338C18883883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024314DC6448D9338C18883883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02449F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02449F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[b025b74167db600a,3eb5559357e939a4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02A00000000006C6B935B68D08DA3FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02A00000000006C6B935B68D08DA400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02A00000000006C6B935B68D08DA401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02A00000000006C6B935B8019048BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02A00000000006C6B935B8019048C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02A00000000006C6B935B8019048C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C000000000000000002BBA7F521FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C000000000000000002BBA7F52200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C000000000000000002BBA7F52201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C00000000000AD78EBC5872141BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C00000000000AD78EBC5872141C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C00000000000AD78EBC5872141C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C00000000000AD78EBC5BF025F1FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C00000000000AD78EBC5BF025F200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C00000000000AD78EBC5BF025F201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C00000000000AD78EBC5E4431D5FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C00000000000AD78EBC5E4431D600]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C00000000000AD78EBC5E4431D601]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C000000108B2A2C28028E3FF41BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C000000108B2A2C28028E3FF41C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02C000000108B2A2C28028E3FF41C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02E000000000001158E46094F6AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02E000000000001158E46094F6ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02E000000000001158E46094F6ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02E00000001A784379D99DB7D9AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02E00000001A784379D99DB7D9ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B02E00000001A784379D99DB7D9ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03000000000000000000006FC23ABFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03000000000000000000006FC23AC00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03000000000000000000006FC23AC01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03200000000000000000000B2D05DFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03200000000000000000000B2D05E00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03200000000000000000000B2D05E01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03800000000000000000000002DDA47]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03800000000000000000000002DDA48]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03800000000000000000000002DDA49]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03A00000000000000000000000003E7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03A00000000000000000000000495D3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03A00000000000000000000000495D4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03A00000000000000000000000495D5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03C0000000000000000000000007561]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03C0000000000000000000000007562]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03C0000000000000000000000007563]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000000000000000000BB7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000000000000000000BB8]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000000000000000000BB9]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000000000000000000BBD]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000000000002E90EDCFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000000000002E90EDCFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000000000002E90EDD005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000000000002E90EDD00F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000000001400000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E00000000000000470DE4DF81FFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E00000000000000470DE4DF81FFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E00000000000000470DE4DF820005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E00000000000000470DE4DF82000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000050000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E0000000000056BC75E2D63100005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B03E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0400000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B040000000000000000000000000012B]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B040000000000000000000000000012C]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B040000000000000000000000000012D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B04000000000000000000004A817C7FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B04000000000000000000004A817C801]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0400000000000000000200000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B04000000000000000071AFD498D0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0400000000000008000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0400000000000008000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B042000000000000000000000000001D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B042000000000000000000000000001E]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B042000000000000000000000000001F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B04200000000000000000000773593FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0420000000000000000000077359400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0420000000000000000000077359401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0440000000000000000000000000003]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0520000000000000000000000000004]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0520000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0540000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B05E0000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B064000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0660000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[B0680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[c3104410925d9944,1477f401c22bf49d]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[cb35c989af20f43b,cae53403a9d4353b]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[cfab3428f9eb0f95,362e34dbf45a677b]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[d1ebb9a6abc8f2b5,fbffbfb4f5fb878f]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[d5bebc365c509eb0,14c10ed131982712]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[f9ff9ffbfb7ff7ff,5c7cf9a5b8e148c0]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[fdb0b1946f8fae3b,bfe7fbd93e98e251]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "[fff1fffff5ffefff,000004804c040050]", "9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "QNaN", "-9223372036854775808", "01")
+ self.bid128_to_uint64_rninta("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_uint64_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint64_xceil() {
+ self.bid128_to_uint64_xceil("0", "0", "0", "00")
+ self.bid128_to_uint64_xceil("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xceil("0", "[0000000000000000,ffffffffffffffff]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint64_xceil("0", "[0055a08860808120,dfffedff8ce69f5f]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "+0.0E0", "0", "00")
+ self.bid128_to_uint64_xceil("0", "[0200000000000000,0000000040220228]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[089499c102c4c52e,546f41be0f804c47]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[0e0460b266cfb52d,202b4af818fb27ff]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[0eb64bdd6acc0d04,5d3b78f4bddd3e2d]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "+11.1000000E0", "12", "20")
+ self.bid128_to_uint64_xceil("0", "[142f3516b76237ab,cca99f0cd8412258]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[160d0691f4137c8e,0c008e028f55f9b4]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[1794a1c05bd50fb0,a2b6db1e45b1f4c9]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[233a3a46e7da5997,af83347e3e9a1d7b]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[283388393d569c3c,8c438dd65126d612]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint64_xceil("0", "[2FFE314DC6448D9338C15B0A00000001]", "2", "20")
+ self.bid128_to_uint64_xceil("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "2", "20")
+ self.bid128_to_uint64_xceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint64_xceil("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_uint64_xceil("0", "[3001000400040800,ffef7ffffdffffff]", "52", "20")
+ self.bid128_to_uint64_xceil("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xceil("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[300293E952CDA8B9AA44111E00000001]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xceil("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[30040ECA8847C4129106CE8300000001]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xceil("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[300A0003C95A2F0B4856475FE0000001]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xceil("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[300C000060EF6B1ABA6F072330000001]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[3010C5371912364CE3056C2800000001]", "4000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C8905F96EBAD4C909800001]", "20000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "20000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C891B267182B61400000001]", "20000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C893053744A975EF6800001]", "20000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xceil("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xceil("0", "[3018AD78EBC5AC620000000000000001]", "35184372088833", "20")
+ self.bid128_to_uint64_xceil("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088833", "20")
+ self.bid128_to_uint64_xceil("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088833", "20")
+ self.bid128_to_uint64_xceil("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "20")
+ self.bid128_to_uint64_xceil("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B2663A1FF60589C0001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B267182B61400000001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_uint64_xceil("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[301E000000000001A055690D9DB80001]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088833", "20")
+ self.bid128_to_uint64_xceil("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088833", "20")
+ self.bid128_to_uint64_xceil("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "20")
+ self.bid128_to_uint64_xceil("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_uint64_xceil("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[302000000000000029A2241AF62C0001]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xceil("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xceil("0", "[3020000470DE4DF82000000000000001]", "35184372088833", "20")
+ self.bid128_to_uint64_xceil("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[302200193E5939A08CE4879688D64000]", "1999999999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[302200193E5939A08CE815152D9CBFFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[302296a903040ce2,8711e6504d221ba4]", "3055751933364241074", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF526340000000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF526340000000000000000001]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF526340000001C6BF52633FFF]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF526340000001C6BF52634000]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF526340000001C6BF52634001]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF5263400000038D7EA4C67FFF]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF5263400000038D7EA4C68000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_xceil("0", "[3023C6BF5263400000038D7EA4C68001]", "9223372036854775810", "20")
+ self.bid128_to_uint64_xceil("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_uint64_xceil("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[3024000000000000006A94D74F430001]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[3024314DC6448D9338C15B0A00000000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[3024314DC6448D9338C15B0A00000001]", "10000000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[3024314DC6448D9338C18883883D1FFF]", "10000000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[3024314DC6448D9338C18883883D2000]", "10000000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[3024314DC6448D9338C18883883D2001]", "10000000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[302449F4A966D45CD522088EFFFFFFFF]", "15000000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[302449F4A966D45CD522088F00000000]", "15000000000000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[302449F4A966D45CD522088F00000001]", "15000000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[3024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[3024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[3024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[3024b0020a408691,effffff3ffd77e7f]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[3026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[3026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[302A00000000006C6B935B68D08DA400]", "19999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[302A00000000006C6B935B8019048BFF]", "20000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[302C000000000000000002BBA7F521FF]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[302C000000000000000002BBA7F52200]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_uint64_xceil("0", "[302C00000000000AD78EBC5872141C01]", "20000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[302C00000000000AD78EBC5BF025F200]", "20000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_uint64_xceil("0", "[302C000000108B2A2C28028E3FF41C01]", "2000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_uint64_xceil("0", "[302E000000000001158E46094F6ACA01]", "20000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_uint64_xceil("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_uint64_xceil("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[303000000000000000000006FC23AC01]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_uint64_xceil("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[303200000000000000000000B2D05E01]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303800000000000000000000002DDA47]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303800000000000000000000002DDA48]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[303A00000000000000000000000495D3]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303A00000000000000000000000495D4]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303C0000000000000000000000007561]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303C0000000000000000000000007562]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_uint64_xceil("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000000000000000000BB9]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000000000002E90EDCFF1]", "19999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000000000002E90EDD005]", "20000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000000001400000000005]", "35184372088833", "20")
+ self.bid128_to_uint64_xceil("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999999", "20")
+ self.bid128_to_uint64_xceil("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "20")
+ self.bid128_to_uint64_xceil("0", "[303E00000000000000470DE4DF820005]", "2000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "20")
+ self.bid128_to_uint64_xceil("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xceil("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000050000000000000005]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xceil("0", "[303E0000000000056BC75E2D63100005]", "10000000000000000001", "20")
+ self.bid128_to_uint64_xceil("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[303E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint64_xceil("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint64_xceil("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint64_xceil("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_uint64_xceil("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_uint64_xceil("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xceil("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_xceil("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_xceil("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_xceil("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_xceil("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_xceil("0", "[30400000000000008000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_xceil("0", "[30400000000000008000000000000001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_xceil("0", "[3040000000000000,a828e71e40526000]", "12117188914554494976", "00")
+ self.bid128_to_uint64_xceil("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_xceil("0", "[30400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[3040000000000004,5b1f1bcddfcfa7bd]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint64_xceil("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint64_xceil("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint64_xceil("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_uint64_xceil("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_uint64_xceil("0", "[3042000000000000,0002110003010840]", "5816417014928000", "00")
+ self.bid128_to_uint64_xceil("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint64_xceil("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[3064000000000000000000000000000F]", "15000000000000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[30640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30660000000000000000000000000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_xceil("0", "[30660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30c0b20d1475c601,2641dafc3800111a]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[30e7d7ba456ba07f,b88c0d9c6dd25a00]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[34d019b16bca9412,af53e8c37d049b5e]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[3b1a000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xceil("0", "[43802776a60f6889,853d27aba79d43e0]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[59264c702c8dfa2a,53de37658c568604]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "+66.747E0", "67", "20")
+ self.bid128_to_uint64_xceil("0", "[66daefcef29f6fb5,0020701100040893]", "0", "00")
+ self.bid128_to_uint64_xceil("0", "+693468453.825E0", "693468454", "20")
+ self.bid128_to_uint64_xceil("0", "[7800000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[78000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[7acbd2a1b3f5acb1,1fffd0726dd68d14]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[7c000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[7c003fffffffffff38c15b08ffffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[7c003fffffffffff38c15b0affffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[7c540e44930f5c11,fffdffff7ceffefb]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[7e000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[8f5ae105235255a2,1d8b2f93513a581a]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[a025ddc4e000a0e5,0820000000020250]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[a75feb5b943d6d49,a4f7d60d578c4080]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[AFFE314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[AFFE314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[AFFE49F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[AFFE49F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[b000888407012008,20010100000098b2]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00293E952CDA8B9AA44111E00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00293E952CDA8B9AA44111E00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00294286EACB8CB0A8CB6B140000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00294286EACB8CB0A8CB6B140000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0040ECA8847C4129106CE8300000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0040ECA8847C4129106CE8300000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00A0003C95A2F0B4856475FE0000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00A0003C95A2F0B4856475FE0000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00C000060EF6B1ABA6F072330000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B00C000060EF6B1ABA6F072330000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B010C5371912364CE3056C27FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B010C5371912364CE3056C2800000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B010C5371912364CE3056C2800000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B010F684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B010F684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C88FB62ED56E4238E400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C88FB62ED56E4238E400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C8905F96EBAD4C909800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C8905F96EBAD4C909800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C89108FF01EC56E84C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C89108FF01EC56E84C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C8925BCF2E6A6B97B400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C8925BCF2E6A6B97B400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C893053744A975EF67FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C893053744A975EF6800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C893053744A975EF6800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C893AE9F5AE880471C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B012629B8C893AE9F5AE880471C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B018AD78EBC5AC620000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B018AD78EBC5AC620000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01A0000000000A2E6C09AD3E0D40000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01A0000000000A2E6C09AD3E0D40001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B265CB1A40684EA0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B265CB1A40684EA0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B2663A1FF60589C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B2663A1FF60589C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B266A925ABA2C4E0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B266A925ABA2C4E0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B267873116DD3B1FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B267873116DD3B20000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B267873116DD3B20001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B267F636CC7A763FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B267F636CC7A7640000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B267F636CC7A7640001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B268653C8217B15FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B268653C8217B160000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01C629B8C891B268653C8217B160001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01E000000000001A055690D9DB7FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01E000000000001A055690D9DB80000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01E000000000001A055690D9DB80001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02000000000000029A2241AF62BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02000000000000029A2241AF62C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02000000000000029A2241AF62C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B020000470DE4DF82000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B020000470DE4DF82000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02000FC6F7C4045813459C637E07FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02000FC6F7C4045813459C637E08000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02000FC6F7C4045813459C637E08001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02000FC6F7C40458157E0B8A7A18000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02000FC6F7C40458157E0B8A7A18001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02200193E5939A08CE4879688D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02200193E5939A08CE4879688D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02200193E5939A08CE4879688D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02200193E5939A08CE815152D9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02200193E5939A08CE815152D9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02200193E5939A08CE815152D9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF52633FFFFFFAABC208D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF52633FFFFFFAABC208D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF52633FFFFFFC72815B398000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF526340000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF526340000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF526340000001C6BF52634000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF526340000001C6BF52634001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF5263400000038D7EA4C68000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B023C6BF5263400000038D7EA4C68001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024000000000000006A94D74F42FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024000000000000006A94D74F430000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024000000000000006A94D74F430001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024314DC6448D9338C18883883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024314DC6448D9338C18883883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024314DC6448D9338C18883883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02449F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02449F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[b0246dcc187a49e9,1fad2dbae07bc819]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02A00000000006C6B935B68D08DA3FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02A00000000006C6B935B68D08DA400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02A00000000006C6B935B68D08DA401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02A00000000006C6B935B8019048BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02A00000000006C6B935B8019048C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02A00000000006C6B935B8019048C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C000000000000000002BBA7F521FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C000000000000000002BBA7F52200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C000000000000000002BBA7F52201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C00000000000AD78EBC5872141BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C00000000000AD78EBC5872141C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C00000000000AD78EBC5872141C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C00000000000AD78EBC5BF025F1FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C00000000000AD78EBC5BF025F200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C00000000000AD78EBC5BF025F201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C00000000000AD78EBC5E4431D5FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C00000000000AD78EBC5E4431D600]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C00000000000AD78EBC5E4431D601]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C000000108B2A2C28028E3FF41BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C000000108B2A2C28028E3FF41C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02C000000108B2A2C28028E3FF41C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02E000000000001158E46094F6AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02E000000000001158E46094F6ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02E000000000001158E46094F6ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02E00000001A784379D99DB7D9AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02E00000001A784379D99DB7D9ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B02E00000001A784379D99DB7D9ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03000000000000000000006FC23ABFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03000000000000000000006FC23AC00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03000000000000000000006FC23AC01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03200000000000000000000B2D05DFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03200000000000000000000B2D05E00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03200000000000000000000B2D05E01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03800000000000000000000002DDA47]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03800000000000000000000002DDA48]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03800000000000000000000002DDA49]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[B03A00000000000000000000000495D3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03A00000000000000000000000495D4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03A00000000000000000000000495D5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03C0000000000000000000000007561]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03C0000000000000000000000007562]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03C0000000000000000000000007563]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint64_xceil("0", "[B03E000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000000000000000000BB7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000000000000000000BB8]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000000000000000000BB9]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000000000000000000BBD]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000000000002E90EDCFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000000000002E90EDCFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000000000002E90EDD005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000000000002E90EDD00F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000000001400000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E00000000000000470DE4DF81FFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E00000000000000470DE4DF81FFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E00000000000000470DE4DF820005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E00000000000000470DE4DF82000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000050000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E0000000000056BC75E2D63100005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B03E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0400000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B040000000000000000000000000012B]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B040000000000000000000000000012C]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B040000000000000000000000000012D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B04000000000000000000004A817C7FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B04000000000000000000004A817C801]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0400000000000000000200000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B04000000000000000071AFD498D0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0400000000000008000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0400000000000008000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B042000000000000000000000000001D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B042000000000000000000000000001E]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B042000000000000000000000000001F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B04200000000000000000000773593FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0420000000000000000000077359400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0420000000000000000000077359401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0440000000000000000000000000003]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0520000000000000000000000000004]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0520000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0540000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B05E0000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B064000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0660000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[B0680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[b47e4d159d7770e9,34429211edfa338b]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[bdae728ede1c9207,459dfefbe69b9b06]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[c1bfc444135ab0c4,2187e8ef63ab9048]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[c9e8000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xceil("0", "[fa4b7fbfcffbb7d9,40720602886c0130]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "[ffe2ffefdfeffb9f,809c090020081000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xceil("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_uint64_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint64_xfloor() {
+ self.bid128_to_uint64_xfloor("0", "-0", "0", "00")
+ self.bid128_to_uint64_xfloor("0", "0", "0", "00")
+ self.bid128_to_uint64_xfloor("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xfloor("0", "[0000000000000000,0f6af87edfcae647]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint64_xfloor("0", "[0083088d9e15c342,9fe97679ffede6ed]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[115b8da73e0bb83e,67cb1d36e172afbd]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[14c4b07c70757d2a,631f3a5c6052f735]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[1eb674ab8c9b0e16,5fc838d1e88d547c]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[1f2cd762e927f4f9,1c348c896ecfb10f]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[22967b5ae61c6259,c249bbdcb3bbbf25]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[2568fb3b1f1bafee,4fdc2b44703f65a5]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[2aa78a4a61adae1c,d9ca61c5fc2836ce]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[2b4a862fa9abea87,85bc199bb4737651]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint64_xfloor("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_uint64_xfloor("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_uint64_xfloor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_uint64_xfloor("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "20")
+ self.bid128_to_uint64_xfloor("0", "[3000b5dfc2db6800,ea8a09542b8114c2]", "36", "20")
+ self.bid128_to_uint64_xfloor("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "20")
+ self.bid128_to_uint64_xfloor("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "20")
+ self.bid128_to_uint64_xfloor("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "20")
+ self.bid128_to_uint64_xfloor("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "20")
+ self.bid128_to_uint64_xfloor("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "4999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C89108FF01EC56E84C00000]", "19999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C89108FF01EC56E84C00001]", "19999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C891B267182B613FFFFFFFF]", "19999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C891B267182B61400000001]", "20000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088831", "20")
+ self.bid128_to_uint64_xfloor("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xfloor("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "20")
+ self.bid128_to_uint64_xfloor("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xfloor("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "20")
+ self.bid128_to_uint64_xfloor("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088832", "20")
+ self.bid128_to_uint64_xfloor("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B266A925ABA2C4E0000]", "1999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B266A925ABA2C4E0001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B267182B613FFFFFFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B268653C8217B160000]", "2000000000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[301C629B8C891B268653C8217B160001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[301E000000000001A055690D9DB7FFFF]", "299", "20")
+ self.bid128_to_uint64_xfloor("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xfloor("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "20")
+ self.bid128_to_uint64_xfloor("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088832", "20")
+ self.bid128_to_uint64_xfloor("0", "[302000000000000029A2241AF62BFFFF]", "299", "20")
+ self.bid128_to_uint64_xfloor("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088831", "20")
+ self.bid128_to_uint64_xfloor("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xfloor("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "20")
+ self.bid128_to_uint64_xfloor("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[302200193E5939A08CE4879688D64001]", "1999999999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[302200193E5939A08CE815152D9CC000]", "1999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[302200193E5939A08CE815152D9CC001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF526340000000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF526340000000000000000001]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF526340000001C6BF52634000]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF526340000001C6BF52634001]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF5263400000038D7EA4C68000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_xfloor("0", "[3023C6BF5263400000038D7EA4C68001]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xfloor("0", "[3024000000000000006A94D74F42FFFF]", "299", "20")
+ self.bid128_to_uint64_xfloor("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[30241006b049aa01,0000008000040010]", "3250484810496464502", "20")
+ self.bid128_to_uint64_xfloor("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "9999999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[3024314DC6448D9338C15B0A00000000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[3024314DC6448D9338C15B0A00000001]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[3024314DC6448D9338C18883883D1FFF]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[3024314DC6448D9338C18883883D2000]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[3024314DC6448D9338C18883883D2001]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[3024441059464800,4040210020800010]", "13804991327792383074", "20")
+ self.bid128_to_uint64_xfloor("0", "[302449F4A966D45CD522088EFFFFFFFF]", "14999999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[302449F4A966D45CD522088F00000000]", "15000000000000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[302449F4A966D45CD522088F00000001]", "15000000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "18446744073709551614", "20")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[3024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[3024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[3024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[3026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[3026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[3028040900000000,1000010008000880]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[302A00000000006C6B935B68D08DA401]", "19999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[302A00000000006C6B935B8019048C00]", "19999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[302A00000000006C6B935B8019048C01]", "19999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C000000000000000002BBA7F52201]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C00000000000AD78EBC5872141BFF]", "19999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_uint64_xfloor("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C00000000000AD78EBC5BF025F201]", "20000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C00000000000AD78EBC5E4431D600]", "20000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C00000000000AD78EBC5E4431D601]", "20000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_uint64_xfloor("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[302E000000000001158E46094F6AC9FF]", "20000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_uint64_xfloor("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_uint64_xfloor("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[303000000000000000000006FC23ABFF]", "299", "20")
+ self.bid128_to_uint64_xfloor("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303200000000000000000000B2D05DFF]", "299", "20")
+ self.bid128_to_uint64_xfloor("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303800000000000000000000002DDA49]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303A00000000000000000000000495D5]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303C0000000000000000000000007563]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000000000000000000BB7]", "299", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000000000002E90EDCFFB]", "19999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000000000002E90EDD005]", "20000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000000000002E90EDD00F]", "20000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000000001400000000005]", "35184372088832", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E00000000000000470DE4DF81FFFB]", "1999999999999999", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E00000000000000470DE4DF82000F]", "2000000000000001", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000050000000000000005]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E0000000000056BC75E2D63100005]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xfloor("0", "[303E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint64_xfloor("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint64_xfloor("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint64_xfloor("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_uint64_xfloor("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_uint64_xfloor("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xfloor("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_xfloor("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_xfloor("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_xfloor("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_xfloor("0", "[3040000000000000,677fbedafffd7fdf]", "7457889355755782111", "00")
+ self.bid128_to_uint64_xfloor("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_xfloor("0", "[30400000000000008000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_xfloor("0", "[30400000000000008000000000000001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_xfloor("0", "[3040000000000000,f7fbffbfffffffff]", "17869157146621378559", "00")
+ self.bid128_to_uint64_xfloor("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_xfloor("0", "[30400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[3040000000000004,12171b4ddfc786bd]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint64_xfloor("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint64_xfloor("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint64_xfloor("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_uint64_xfloor("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_uint64_xfloor("0", "[3042000000000000,19680cc042942096]", "18307272684163646940", "00")
+ self.bid128_to_uint64_xfloor("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint64_xfloor("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[3064000000000000000000000000000F]", "15000000000000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[30640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30660000000000000000000000000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_xfloor("0", "[30660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[30680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[3850000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xfloor("0", "[4000000000000000,0000000002000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "+466244598.4239E0", "466244598", "20")
+ self.bid128_to_uint64_xfloor("0", "[47774d4773ad1748,e24cfddd568f92f6]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[78000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[7ae44324652bd41d,fe3fb77fbfbdf7f5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[7c000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[7c003fffffffffff38c15b08ffffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[7c003fffffffffff38c15b0affffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[7e000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "+87966779.8E0", "87966779", "20")
+ self.bid128_to_uint64_xfloor("0", "[8b24238945c0e64d,f5bff3ca7f26f9d3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "+98.9E0", "98", "20")
+ self.bid128_to_uint64_xfloor("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[AFFCF684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[AFFCF684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[AFFDEC8B86EF679D76FC433D80000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[AFFDEC8B86EF679D76FC433D80000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[AFFE314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[AFFE314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[AFFE49F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[AFFE49F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00293E952CDA8B9AA44111E00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00293E952CDA8B9AA44111E00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00294286EACB8CB0A8CB6B140000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00294286EACB8CB0A8CB6B140000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0040ECA8847C4129106CE8300000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0040ECA8847C4129106CE8300000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00A0003C95A2F0B4856475FE0000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00A0003C95A2F0B4856475FE0000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00C000060EF6B1ABA6F072330000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B00C000060EF6B1ABA6F072330000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B010C5371912364CE3056C27FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B010C5371912364CE3056C2800000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B010C5371912364CE3056C2800000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B010F684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B010F684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C88FB62ED56E4238E400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C88FB62ED56E4238E400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C8905F96EBAD4C909800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C8905F96EBAD4C909800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C89108FF01EC56E84C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C89108FF01EC56E84C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C8925BCF2E6A6B97B400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C8925BCF2E6A6B97B400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C893053744A975EF67FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C893053744A975EF6800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C893053744A975EF6800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C893AE9F5AE880471C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B012629B8C893AE9F5AE880471C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B018AD78EBC5AC620000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B018AD78EBC5AC620000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01A0000000000A2E6C09AD3E0D40000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01A0000000000A2E6C09AD3E0D40001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B265CB1A40684EA0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B265CB1A40684EA0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B2663A1FF60589C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B2663A1FF60589C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B266A925ABA2C4E0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B266A925ABA2C4E0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B267873116DD3B1FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B267873116DD3B20000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B267873116DD3B20001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B267F636CC7A763FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B267F636CC7A7640000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B267F636CC7A7640001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B268653C8217B15FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B268653C8217B160000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01C629B8C891B268653C8217B160001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01E000000000001A055690D9DB7FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01E000000000001A055690D9DB80000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01E000000000001A055690D9DB80001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02000000000000029A2241AF62BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02000000000000029A2241AF62C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02000000000000029A2241AF62C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B020000470DE4DF82000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B020000470DE4DF82000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02000FC6F7C4045813459C637E07FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02000FC6F7C4045813459C637E08000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02000FC6F7C4045813459C637E08001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02000FC6F7C40458157E0B8A7A18000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02000FC6F7C40458157E0B8A7A18001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02200193E5939A08CE4879688D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02200193E5939A08CE4879688D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02200193E5939A08CE4879688D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02200193E5939A08CE815152D9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02200193E5939A08CE815152D9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02200193E5939A08CE815152D9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF52633FFFFFFAABC208D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF52633FFFFFFAABC208D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF52633FFFFFFC72815B398000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF526340000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF526340000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF526340000001C6BF52634000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF526340000001C6BF52634001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF5263400000038D7EA4C68000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B023C6BF5263400000038D7EA4C68001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024000000000000006A94D74F42FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024000000000000006A94D74F430000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024000000000000006A94D74F430001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024314DC6448D9338C18883883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024314DC6448D9338C18883883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024314DC6448D9338C18883883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02449F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02449F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02A00000000006C6B935B68D08DA3FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02A00000000006C6B935B68D08DA400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02A00000000006C6B935B68D08DA401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02A00000000006C6B935B8019048BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02A00000000006C6B935B8019048C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02A00000000006C6B935B8019048C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C000000000000000002BBA7F521FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C000000000000000002BBA7F52200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C000000000000000002BBA7F52201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C00000000000AD78EBC5872141BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C00000000000AD78EBC5872141C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C00000000000AD78EBC5872141C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C00000000000AD78EBC5BF025F1FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C00000000000AD78EBC5BF025F200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C00000000000AD78EBC5BF025F201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C00000000000AD78EBC5E4431D5FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C00000000000AD78EBC5E4431D600]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C00000000000AD78EBC5E4431D601]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C000000108B2A2C28028E3FF41BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C000000108B2A2C28028E3FF41C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02C000000108B2A2C28028E3FF41C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02E000000000001158E46094F6AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02E000000000001158E46094F6ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02E000000000001158E46094F6ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02E00000001A784379D99DB7D9AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02E00000001A784379D99DB7D9ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B02E00000001A784379D99DB7D9ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03000000000000000000006FC23ABFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03000000000000000000006FC23AC00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03000000000000000000006FC23AC01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03200000000000000000000B2D05DFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03200000000000000000000B2D05E00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03200000000000000000000B2D05E01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03800000000000000000000002DDA47]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03800000000000000000000002DDA48]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03800000000000000000000002DDA49]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03A00000000000000000000000003E7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03A00000000000000000000000495D3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03A00000000000000000000000495D4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03A00000000000000000000000495D5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03C0000000000000000000000007561]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03C0000000000000000000000007562]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03C0000000000000000000000007563]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000000000000000000BB7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000000000000000000BB8]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000000000000000000BB9]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000000000000000000BBD]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000000000002E90EDCFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000000000002E90EDCFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000000000002E90EDD005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000000000002E90EDD00F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000000001400000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E00000000000000470DE4DF81FFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E00000000000000470DE4DF81FFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E00000000000000470DE4DF820005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E00000000000000470DE4DF82000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000050000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E0000000000056BC75E2D63100005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B03E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0400000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B040000000000000000000000000012B]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B040000000000000000000000000012C]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B040000000000000000000000000012D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B04000000000000000000004A817C7FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B04000000000000000000004A817C801]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0400000000000000000200000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B04000000000000000071AFD498D0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0400000000000008000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0400000000000008000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B042000000000000000000000000001D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B042000000000000000000000000001E]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B042000000000000000000000000001F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B04200000000000000000000773593FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0420000000000000000000077359400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0420000000000000000000077359401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0440000000000000000000000000003]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0520000000000000000000000000004]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0520000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0540000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B05E0000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B064000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0660000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[B0680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[ce1f3e8adc9abefe,65bf5c45bd9d343a]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[f77ffffff7ffb9f7,42401810030c0802]", "0", "00")
+ self.bid128_to_uint64_xfloor("0", "[fbddd9eb86ef7f2f,0000000010004000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[fd9bdaf6ffff7ffd,0000042222104300]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "[ffdfff77ffbfffbd,a442680403400400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xfloor("0", "Infinity", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_uint64_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint64_xint() {
+ self.bid128_to_uint64_xint("0", "-0", "0", "00")
+ self.bid128_to_uint64_xint("0", "0", "0", "00")
+ self.bid128_to_uint64_xint("0", "[0000000000000000,0000000000a00000]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[0000000000000000,2050011200210014]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[0000000001804080,e9edfebd78267153]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint64_xint("0", "[0020000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xint("0", "+0.11010E0", "0", "20")
+ self.bid128_to_uint64_xint("0", "[023fe32efa697bd4,943d0809cf6ba316]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[0348e7ca86e385e0,f76be5374bd7590b]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[0a87de44d4aef2e8,9f2d6ae798deb121]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[0ce6000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xint("0", "+11010010000.10001E0", "11010010000", "20")
+ self.bid128_to_uint64_xint("0", "[241038c000c80003,fefd7ffffff7f3dd]", "0", "20")
+ self.bid128_to_uint64_xint("0", "+26693.73E0", "26693", "20")
+ self.bid128_to_uint64_xint("0", "[281fcbeed7f66e1b,9d6ba1dfb5a704cb]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[2d00d8aec8581f61,2da6a6f398ca20bc]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint64_xint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_uint64_xint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_uint64_xint("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_uint64_xint("0", "[2FFE49F4A966D45CD522088F00000001]", "1", "20")
+ self.bid128_to_uint64_xint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "299", "20")
+ self.bid128_to_uint64_xint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[300294286EACB8CB0A8CB6B140000001]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "299", "20")
+ self.bid128_to_uint64_xint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "299", "20")
+ self.bid128_to_uint64_xint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "299", "20")
+ self.bid128_to_uint64_xint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "3999999999", "20")
+ self.bid128_to_uint64_xint("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint64_xint("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_uint64_xint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "4999999999", "20")
+ self.bid128_to_uint64_xint("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_uint64_xint("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "20")
+ self.bid128_to_uint64_xint("0", "[30120007421c43d0,f9dfdebfffbf7ffd]", "5750573", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999998", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999998", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_uint64_xint("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C89108FF01EC56E84C00000]", "19999999999", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C89108FF01EC56E84C00001]", "19999999999", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C891B267182B613FFFFFFFF]", "19999999999", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_uint64_xint("0", "[3012629B8C891B267182B61400000001]", "20000000000", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000000", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000000", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_uint64_xint("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000001", "20")
+ self.bid128_to_uint64_xint("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000001", "20")
+ self.bid128_to_uint64_xint("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088831", "20")
+ self.bid128_to_uint64_xint("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xint("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "20")
+ self.bid128_to_uint64_xint("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xint("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "20")
+ self.bid128_to_uint64_xint("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088832", "20")
+ self.bid128_to_uint64_xint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[301A0000000000A2E6C09AD3E0D40001]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999998", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B266A925ABA2C4E0000]", "1999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B266A925ABA2C4E0001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B267182B613FFFFFFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B268653C8217B160000]", "2000000000000001", "20")
+ self.bid128_to_uint64_xint("0", "[301C629B8C891B268653C8217B160001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xint("0", "[301E000000000001A055690D9DB7FFFF]", "299", "20")
+ self.bid128_to_uint64_xint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xint("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "20")
+ self.bid128_to_uint64_xint("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088832", "20")
+ self.bid128_to_uint64_xint("0", "[302000000000000029A2241AF62BFFFF]", "299", "20")
+ self.bid128_to_uint64_xint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088831", "20")
+ self.bid128_to_uint64_xint("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xint("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "20")
+ self.bid128_to_uint64_xint("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xint("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000001", "20")
+ self.bid128_to_uint64_xint("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xint("0", "[3020014001334010,1214209284062110]", "2535338344731911", "20")
+ self.bid128_to_uint64_xint("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xint("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "20")
+ self.bid128_to_uint64_xint("0", "[302200193E5939A08CE4879688D64001]", "1999999999999998", "20")
+ self.bid128_to_uint64_xint("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[302200193E5939A08CE815152D9CC000]", "1999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[302200193E5939A08CE815152D9CC001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_xint("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF526340000000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_xint("0", "[3023C6BF526340000000000000000001]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF526340000001C6BF52634000]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF526340000001C6BF52634001]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xint("0", "[3023C6BF5263400000038D7EA4C68000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_xint("0", "[3023C6BF5263400000038D7EA4C68001]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xint("0", "[3024000000000000006A94D74F42FFFF]", "299", "20")
+ self.bid128_to_uint64_xint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "9999999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[3024314DC6448D9338C15B0A00000000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_xint("0", "[3024314DC6448D9338C15B0A00000001]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[3024314DC6448D9338C18883883D1FFF]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[3024314DC6448D9338C18883883D2000]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[3024314DC6448D9338C18883883D2001]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[302449F4A966D45CD522088EFFFFFFFF]", "14999999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[302449F4A966D45CD522088F00000000]", "15000000000000000000", "00")
+ self.bid128_to_uint64_xint("0", "[302449F4A966D45CD522088F00000001]", "15000000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "18446744073709551614", "20")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[3024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[3024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[3024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[3026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[3026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[302802040000cc28,24808250a042040f]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "20")
+ self.bid128_to_uint64_xint("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "20")
+ self.bid128_to_uint64_xint("0", "[302A00000000006C6B935B68D08DA401]", "19999999998", "20")
+ self.bid128_to_uint64_xint("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "20")
+ self.bid128_to_uint64_xint("0", "[302A00000000006C6B935B8019048C00]", "19999999999", "20")
+ self.bid128_to_uint64_xint("0", "[302A00000000006C6B935B8019048C01]", "19999999999", "20")
+ self.bid128_to_uint64_xint("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[302C000000000000000002BBA7F52201]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[302C00000000000AD78EBC5872141BFF]", "19999999998", "20")
+ self.bid128_to_uint64_xint("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_uint64_xint("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "20")
+ self.bid128_to_uint64_xint("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "20")
+ self.bid128_to_uint64_xint("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "20")
+ self.bid128_to_uint64_xint("0", "[302C00000000000AD78EBC5BF025F201]", "20000000000", "20")
+ self.bid128_to_uint64_xint("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "20")
+ self.bid128_to_uint64_xint("0", "[302C00000000000AD78EBC5E4431D600]", "20000000001", "20")
+ self.bid128_to_uint64_xint("0", "[302C00000000000AD78EBC5E4431D601]", "20000000001", "20")
+ self.bid128_to_uint64_xint("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xint("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_uint64_xint("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[302E000000000001158E46094F6AC9FF]", "20000000000", "20")
+ self.bid128_to_uint64_xint("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_uint64_xint("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "20")
+ self.bid128_to_uint64_xint("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_uint64_xint("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "20")
+ self.bid128_to_uint64_xint("0", "[303000000000000000000006FC23ABFF]", "299", "20")
+ self.bid128_to_uint64_xint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303200000000000000000000B2D05DFF]", "299", "20")
+ self.bid128_to_uint64_xint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303800000000000000000000002DDA49]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303A00000000000000000000000495D5]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303C0000000000000000000000007563]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_uint64_xint("0", "[303E0000000000000000000000000BB7]", "299", "20")
+ self.bid128_to_uint64_xint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_uint64_xint("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "20")
+ self.bid128_to_uint64_xint("0", "[303E0000000000000000002E90EDCFFB]", "19999999999", "20")
+ self.bid128_to_uint64_xint("0", "[303E0000000000000000002E90EDD005]", "20000000000", "20")
+ self.bid128_to_uint64_xint("0", "[303E0000000000000000002E90EDD00F]", "20000000001", "20")
+ self.bid128_to_uint64_xint("0", "[303E0000000000000001400000000005]", "35184372088832", "20")
+ self.bid128_to_uint64_xint("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "20")
+ self.bid128_to_uint64_xint("0", "[303E00000000000000470DE4DF81FFFB]", "1999999999999999", "20")
+ self.bid128_to_uint64_xint("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[303E00000000000000470DE4DF82000F]", "2000000000000001", "20")
+ self.bid128_to_uint64_xint("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xint("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xint("0", "[303E0000000000050000000000000005]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xint("0", "[303E0000000000056BC75E2D63100005]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xint("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xint("0", "[303E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint64_xint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint64_xint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint64_xint("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_uint64_xint("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_uint64_xint("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_xint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_xint("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_xint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_xint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_xint("0", "[3040000000000000,004240022d014100]", "18647726552072448", "00")
+ self.bid128_to_uint64_xint("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_xint("0", "[30400000000000008000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_xint("0", "[30400000000000008000000000000001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_xint("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_xint("0", "[30400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[3040000000000001,ffffffffffffbdff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint64_xint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint64_xint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint64_xint("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_uint64_xint("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_uint64_xint("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_uint64_xint("0", "[3042000000000000,19680cc042942092]", "18307272684163646900", "00")
+ self.bid128_to_uint64_xint("0", "[3042000000000000,6f7f65f7dcfd2537]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint64_xint("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint64_xint("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_uint64_xint("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_uint64_xint("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_uint64_xint("0", "[3064000000000000000000000000000F]", "15000000000000000000", "00")
+ self.bid128_to_uint64_xint("0", "[30640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30660000000000000000000000000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_xint("0", "[30660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[30680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[586b3c856f883c72,f58d64436a8c6881]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[5920e8d28f569904,7a62f8f8a0220143]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[5b74000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xint("0", "+6995656557565987.58E0", "6995656557565987", "20")
+ self.bid128_to_uint64_xint("0", "[78000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[7bb7fd776fe77ff3,ff7ffbfbffffffbf]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[7c000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[7c003fffffffffff38c15b08ffffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[7c003fffffffffff38c15b0affffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[7ca6b6c3c2a24ece,146ab4b7027c107f]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[7e000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[7fdffefffffffffb,8040004040000480]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[83f5ebaecd1a5275,ae8bae97a8caaa83]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[8f950fe5c1b191b3,109519dd94687945]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[9d76000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xint("0", "[ad00000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[AFFE314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[AFFE314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[AFFE49F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[AFFE49F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00293E952CDA8B9AA44111E00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00293E952CDA8B9AA44111E00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00294286EACB8CB0A8CB6B140000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00294286EACB8CB0A8CB6B140000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0040ECA8847C4129106CE8300000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0040ECA8847C4129106CE8300000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00A0003C95A2F0B4856475FE0000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00A0003C95A2F0B4856475FE0000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00C000060EF6B1ABA6F072330000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B00C000060EF6B1ABA6F072330000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B010C5371912364CE3056C2800000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B010C5371912364CE3056C2800000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B010F684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B010F684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C88FB62ED56E4238E400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C88FB62ED56E4238E400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C8905F96EBAD4C909800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C8905F96EBAD4C909800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C89108FF01EC56E84C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C89108FF01EC56E84C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C893053744A975EF67FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C893053744A975EF6800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C893053744A975EF6800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C893AE9F5AE880471C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B012629B8C893AE9F5AE880471C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B018AD78EBC5AC620000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B018AD78EBC5AC620000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[b019d603f00404e2,67e1578884cc3400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B265CB1A40684EA0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B265CB1A40684EA0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B2663A1FF60589C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B2663A1FF60589C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B266A925ABA2C4E0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B266A925ABA2C4E0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B267873116DD3B1FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B267873116DD3B20000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B267873116DD3B20001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B267F636CC7A763FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B267F636CC7A7640000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B267F636CC7A7640001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B268653C8217B15FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B268653C8217B160000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01C629B8C891B268653C8217B160001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01E000000000001A055690D9DB7FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01E000000000001A055690D9DB80000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01E000000000001A055690D9DB80001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02000000000000029A2241AF62BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02000000000000029A2241AF62C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02000000000000029A2241AF62C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B020000470DE4DF82000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B020000470DE4DF82000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02000FC6F7C4045813459C637E07FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02000FC6F7C4045813459C637E08000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02000FC6F7C4045813459C637E08001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02000FC6F7C40458157E0B8A7A18000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02000FC6F7C40458157E0B8A7A18001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02200193E5939A08CE4879688D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02200193E5939A08CE4879688D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02200193E5939A08CE4879688D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02200193E5939A08CE815152D9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02200193E5939A08CE815152D9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02200193E5939A08CE815152D9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF52633FFFFFFAABC208D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF52633FFFFFFAABC208D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF52633FFFFFFC72815B398000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF526340000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF526340000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF526340000001C6BF52634000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF526340000001C6BF52634001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF5263400000038D7EA4C68000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B023C6BF5263400000038D7EA4C68001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024000000000000006A94D74F42FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024000000000000006A94D74F430000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024000000000000006A94D74F430001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024314DC6448D9338C18883883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024314DC6448D9338C18883883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024314DC6448D9338C18883883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02449F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02449F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[b024b20298195393,21112dae35409a00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02A00000000006C6B935B68D08DA3FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02A00000000006C6B935B68D08DA400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02A00000000006C6B935B68D08DA401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02A00000000006C6B935B8019048BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02A00000000006C6B935B8019048C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02A00000000006C6B935B8019048C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C000000000000000002BBA7F521FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C000000000000000002BBA7F52200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C000000000000000002BBA7F52201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C00000000000AD78EBC5872141BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C00000000000AD78EBC5872141C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C00000000000AD78EBC5872141C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C00000000000AD78EBC5BF025F200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C00000000000AD78EBC5BF025F201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C00000000000AD78EBC5E4431D600]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C00000000000AD78EBC5E4431D601]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C000000108B2A2C28028E3FF41BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C000000108B2A2C28028E3FF41C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02C000000108B2A2C28028E3FF41C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02E000000000001158E46094F6AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02E000000000001158E46094F6ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02E000000000001158E46094F6ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02E00000001A784379D99DB7D9AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02E00000001A784379D99DB7D9ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B02E00000001A784379D99DB7D9ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03000000000000000000006FC23ABFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03000000000000000000006FC23AC00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03000000000000000000006FC23AC01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03200000000000000000000B2D05DFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03200000000000000000000B2D05E00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03200000000000000000000B2D05E01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03800000000000000000000002DDA47]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03800000000000000000000002DDA48]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03800000000000000000000002DDA49]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[B03A00000000000000000000000495D3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03A00000000000000000000000495D4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03A00000000000000000000000495D5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03C0000000000000000000000007561]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03C0000000000000000000000007562]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03C0000000000000000000000007563]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint64_xint("0", "[B03E000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000000000000000000BB7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000000000000000000BB8]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000000000000000000BB9]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000000000000000000BBD]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000000000002E90EDCFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000000000002E90EDCFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000000000002E90EDD005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000000000002E90EDD00F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000000001400000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E00000000000000470DE4DF81FFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E00000000000000470DE4DF81FFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E00000000000000470DE4DF820005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E00000000000000470DE4DF82000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000050000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E0000000000056BC75E2D63100005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B03E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0400000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B040000000000000000000000000012B]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B040000000000000000000000000012C]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B040000000000000000000000000012D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B04000000000000000000004A817C7FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B04000000000000000000004A817C801]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0400000000000000000200000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B04000000000000000071AFD498D0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0400000000000008000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0400000000000008000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B042000000000000000000000000001D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B042000000000000000000000000001E]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B042000000000000000000000000001F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B04200000000000000000000773593FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0420000000000000000000077359400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0420000000000000000000077359401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0440000000000000000000000000003]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0520000000000000000000000000004]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0520000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0540000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B05E0000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B064000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0660000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[B0680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[bef7dbff7bdf3bfe,f7eb8d182803c078]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[c478000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xint("0", "[d1488b16616b03a7,7bd1bc6606f001e1]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[d1de0d0783240f57,f8eea7a9b7178635]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[d2241506dcc4a9ae,b5a5fb7fbe2566ad]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[d43c825ed6251f15,20acc921d1f9945b]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[d7aa000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xint("0", "[d9d0000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xint("0", "[e8733964590afb4c,fffffffffeffffff]", "0", "00")
+ self.bid128_to_uint64_xint("0", "[f800000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "[fb7a20cb8a6531a6,166bd7a90b0b5660]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "QNaN", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xint("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_uint64_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint64_xrnint() {
+ self.bid128_to_uint64_xrnint("0", "0", "0", "00")
+ self.bid128_to_uint64_xrnint("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrnint("0", "[0000000000000000,0000000000000020]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[0000000000000000,040410e1e0400190]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint64_xrnint("0", "[09503cd77e46d4a0,d751c3ec02aa773f]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "+101000111010100.10E0", "101000111010100", "20")
+ self.bid128_to_uint64_xrnint("0", "[10be000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrnint("0", "[14bd1e0fd03a9d29,047599ce25bc9369]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[15f2b42fc60cd8e5,9faab5545495aa46]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[177630c2db73b005,b61833b53af4ddcb]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[1c202a896acbaec7,934698fa73e6d328]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[1d27b5f7b69a5f3c,2efc102cd216a7cb]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[26de93d972142942,dc03bcec5f9aa514]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_uint64_xrnint("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_uint64_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint64_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_uint64_xrnint("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_uint64_xrnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint64_xrnint("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_uint64_xrnint("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_uint64_xrnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint64_xrnint("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_uint64_xrnint("0", "[30000108000a0108,4000800400000000]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[300004201890e010,1fbda7d5feffd9fd]", "1", "20")
+ self.bid128_to_uint64_xrnint("0", "[3000763301809019,3ffffff7baed6cce]", "24", "20")
+ self.bid128_to_uint64_xrnint("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[300294286EACB8CB0A8CB6B140000000]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_uint64_xrnint("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[300ca1bf3db1f880,9f1897301a5e8c72]", "32806196", "20")
+ self.bid128_to_uint64_xrnint("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999998", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C891B267182B61400000001]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "20")
+ self.bid128_to_uint64_xrnint("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "20")
+ self.bid128_to_uint64_xrnint("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xrnint("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xrnint("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "20")
+ self.bid128_to_uint64_xrnint("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xrnint("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088832", "20")
+ self.bid128_to_uint64_xrnint("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "20")
+ self.bid128_to_uint64_xrnint("0", "[301a000000000000,84100010002044a0]", "1", "20")
+ self.bid128_to_uint64_xrnint("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[301A0000000000A2E6C09AD3E0D40000]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999998", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "20")
+ self.bid128_to_uint64_xrnint("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "20")
+ self.bid128_to_uint64_xrnint("0", "[301c88d1a000434d,deafdbfe1bbfafb7]", "2775015909981515", "20")
+ self.bid128_to_uint64_xrnint("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xrnint("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088832", "20")
+ self.bid128_to_uint64_xrnint("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "20")
+ self.bid128_to_uint64_xrnint("0", "[3020000000000000,0010524000000000]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xrnint("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xrnint("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "20")
+ self.bid128_to_uint64_xrnint("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "20")
+ self.bid128_to_uint64_xrnint("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "20")
+ self.bid128_to_uint64_xrnint("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xrnint("0", "[302200193E5939A08CE4879688D64000]", "1999999999999998", "20")
+ self.bid128_to_uint64_xrnint("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF526340000000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF526340000000000000000001]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF526340000001C6BF52634000]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF526340000001C6BF52634001]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF5263400000038D7EA4C67FFF]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF5263400000038D7EA4C68000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_xrnint("0", "[3023C6BF5263400000038D7EA4C68001]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xrnint("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[30242af2723fd83d,c0e9d531fc953d2d]", "8710697771564387091", "20")
+ self.bid128_to_uint64_xrnint("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3024314DC6448D9338C15B0A00000000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[3024314DC6448D9338C15B0A00000001]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3024314DC6448D9338C18883883D1FFF]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3024314DC6448D9338C18883883D2000]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[3024314DC6448D9338C18883883D2001]", "10000000000000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[302449F4A966D45CD522088EFFFFFFFF]", "15000000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[302449F4A966D45CD522088F00000000]", "15000000000000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[302449F4A966D45CD522088F00000001]", "15000000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[3024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[3024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[3024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[3024be403efcefe1,6a74460324453390]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[3026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[3026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "20")
+ self.bid128_to_uint64_xrnint("0", "[302A00000000006C6B935B68D08DA400]", "19999999998", "20")
+ self.bid128_to_uint64_xrnint("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C000000000000000002BBA7F52200]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_uint64_xrnint("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C00000000000AD78EBC5BF025F200]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_uint64_xrnint("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrnint("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_uint64_xrnint("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_uint64_xrnint("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrnint("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303800000000000000000000002DDA48]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_uint64_xrnint("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint64_xrnint("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303A00000000000000000000000495D4]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_uint64_xrnint("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303C0000000000000000000000007562]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000000000000000000BBD]", "300", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000000000002E90EDCFF1]", "19999999998", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000000000002E90EDD005]", "20000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000000001400000000005]", "35184372088832", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999998", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E00000000000000470DE4DF820005]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000050000000000000005]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E0000000000056BC75E2D63100005]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xrnint("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[303E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint64_xrnint("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint64_xrnint("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint64_xrnint("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_uint64_xrnint("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_uint64_xrnint("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xrnint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_xrnint("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_xrnint("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_xrnint("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_xrnint("0", "[3040000000000000,0b0448a4bfc6a849]", "793839306753353801", "00")
+ self.bid128_to_uint64_xrnint("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_xrnint("0", "[30400000000000008000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_xrnint("0", "[30400000000000008000000000000001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_xrnint("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_xrnint("0", "[30400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[3040000000000001,7ffffffffffff7ff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[3040000000000001,e3ddcfbbbb0be7ff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint64_xrnint("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint64_xrnint("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint64_xrnint("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_uint64_xrnint("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_uint64_xrnint("0", "[3042000000000000,83ffc3df3dbbfcfd]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint64_xrnint("0", "[3050000000000000,0000000401200000]", "1719874355200000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[305c7d0196141b2f,42a989810e25be1a]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[3064000000000000000000000000000F]", "15000000000000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[30640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30660000000000000000000000000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_xrnint("0", "[30660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[30680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[34ba000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrnint("0", "[45f98804228a3858,2bc15f10714df8b9]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "5.5", "6", "20")
+ self.bid128_to_uint64_xrnint("0", "[5b5536cfab05199b,b428ebf84ed3fa67]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[78000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[7af80b34a7f40cd0,fcf5b37e7f3de3bd]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[7c000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[7c003fffffffffff38c15b08ffffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[7c003fffffffffff38c15b0affffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[7e000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[8657af280cd75cae,69ef7f1b4112e075]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[89bfc67e8cd54589,367913c1270e4318]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[914d0c8d7cd51603,5f80ba851d9841a1]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[9bb8eee450181616,bc29a8d331a562df]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[a2743547f4a9031e,1af80aaa76d5a81c]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[ac6e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrnint("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[AFFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[AFFCF684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[affd7dbbddfdef9f,821f4ecf8f63eab4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[AFFDEC8B86EF679D76FC433D80000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[AFFDEC8B86EF679D76FC433D80000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[AFFE314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[AFFE314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[AFFE49F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[AFFE49F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00293E952CDA8B9AA44111E00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00293E952CDA8B9AA44111E00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00294286EACB8CB0A8CB6B140000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00294286EACB8CB0A8CB6B140000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0040ECA8847C4129106CE8300000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0040ECA8847C4129106CE8300000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[b005c6d8bb5bcc85,fffff7ffffefb7ff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00A0003C95A2F0B4856475FE0000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00A0003C95A2F0B4856475FE0000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00C000060EF6B1ABA6F072330000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B00C000060EF6B1ABA6F072330000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B010C5371912364CE3056C27FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B010C5371912364CE3056C2800000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B010C5371912364CE3056C2800000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B010F684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B010F684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C88FB62ED56E4238E400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C88FB62ED56E4238E400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C8905F96EBAD4C909800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C8905F96EBAD4C909800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C89108FF01EC56E84C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C89108FF01EC56E84C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C8925BCF2E6A6B97B400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C8925BCF2E6A6B97B400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C893053744A975EF67FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C893053744A975EF6800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C893053744A975EF6800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C893AE9F5AE880471C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B012629B8C893AE9F5AE880471C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B018AD78EBC5AC620000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B018AD78EBC5AC620000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01A0000000000A2E6C09AD3E0D40000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01A0000000000A2E6C09AD3E0D40001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B265CB1A40684EA0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B265CB1A40684EA0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B2663A1FF60589C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B2663A1FF60589C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B266A925ABA2C4E0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B266A925ABA2C4E0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B267873116DD3B1FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B267873116DD3B20000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B267873116DD3B20001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B267F636CC7A763FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B267F636CC7A7640000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B267F636CC7A7640001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B268653C8217B15FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B268653C8217B160000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01C629B8C891B268653C8217B160001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01E000000000001A055690D9DB7FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01E000000000001A055690D9DB80000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01E000000000001A055690D9DB80001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02000000000000029A2241AF62BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02000000000000029A2241AF62C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02000000000000029A2241AF62C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B020000470DE4DF82000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B020000470DE4DF82000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02000FC6F7C4045813459C637E07FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02000FC6F7C4045813459C637E08000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02000FC6F7C4045813459C637E08001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02000FC6F7C40458157E0B8A7A18000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02000FC6F7C40458157E0B8A7A18001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02200193E5939A08CE4879688D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02200193E5939A08CE4879688D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02200193E5939A08CE4879688D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02200193E5939A08CE815152D9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02200193E5939A08CE815152D9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02200193E5939A08CE815152D9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF52633FFFFFFAABC208D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF52633FFFFFFAABC208D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF52633FFFFFFC72815B398000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF526340000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF526340000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF526340000001C6BF52634000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF526340000001C6BF52634001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF5263400000038D7EA4C68000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B023C6BF5263400000038D7EA4C68001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024000000000000006A94D74F42FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024000000000000006A94D74F430000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024000000000000006A94D74F430001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024314DC6448D9338C18883883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024314DC6448D9338C18883883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024314DC6448D9338C18883883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02449F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02449F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[b0280468c1020073,0020002000021000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02A00000000006C6B935B68D08DA3FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02A00000000006C6B935B68D08DA400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02A00000000006C6B935B68D08DA401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02A00000000006C6B935B8019048BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02A00000000006C6B935B8019048C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02A00000000006C6B935B8019048C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C000000000000000002BBA7F521FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C000000000000000002BBA7F52200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C000000000000000002BBA7F52201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C00000000000AD78EBC5872141BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C00000000000AD78EBC5872141C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C00000000000AD78EBC5872141C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C00000000000AD78EBC5BF025F1FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C00000000000AD78EBC5BF025F200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C00000000000AD78EBC5BF025F201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C00000000000AD78EBC5E4431D5FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C00000000000AD78EBC5E4431D600]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C00000000000AD78EBC5E4431D601]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C000000108B2A2C28028E3FF41BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C000000108B2A2C28028E3FF41C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02C000000108B2A2C28028E3FF41C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02E000000000001158E46094F6AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02E000000000001158E46094F6ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02E000000000001158E46094F6ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02E00000001A784379D99DB7D9AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02E00000001A784379D99DB7D9ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B02E00000001A784379D99DB7D9ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03000000000000000000006FC23ABFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03000000000000000000006FC23AC00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03000000000000000000006FC23AC01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03200000000000000000000B2D05DFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03200000000000000000000B2D05E00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03200000000000000000000B2D05E01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03800000000000000000000002DDA47]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03800000000000000000000002DDA48]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03800000000000000000000002DDA49]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03A00000000000000000000000003E7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03A00000000000000000000000495D3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03A00000000000000000000000495D4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03A00000000000000000000000495D5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03C0000000000000000000000007561]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03C0000000000000000000000007562]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03C0000000000000000000000007563]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint64_xrnint("0", "[B03E000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000000000000000000BB7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000000000000000000BB8]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000000000000000000BB9]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000000000000000000BBD]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000000000002E90EDCFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000000000002E90EDCFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000000000002E90EDD005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000000000002E90EDD00F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000000001400000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E00000000000000470DE4DF81FFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E00000000000000470DE4DF81FFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E00000000000000470DE4DF820005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E00000000000000470DE4DF82000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000050000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E0000000000056BC75E2D63100005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B03E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0400000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B040000000000000000000000000012B]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B040000000000000000000000000012C]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B040000000000000000000000000012D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B04000000000000000000004A817C7FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B04000000000000000000004A817C801]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0400000000000000000200000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B04000000000000000071AFD498D0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0400000000000008000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0400000000000008000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B042000000000000000000000000001D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B042000000000000000000000000001E]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B042000000000000000000000000001F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B04200000000000000000000773593FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0420000000000000000000077359400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0420000000000000000000077359401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0440000000000000000000000000003]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0520000000000000000000000000004]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0520000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0540000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B05E0000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B064000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0660000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[B0680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[b344fab8a18bfd6d,f3a2cd02b0d8c4dd]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[ce9c1612010283c9,842217081a055491]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[f236c9c916900ccd,d3c013af0c55839a]", "0", "00")
+ self.bid128_to_uint64_xrnint("0", "[f812d8630b9c5e82,a8b03f0fc861645c]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[fc00000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[fc0019003fbb2c35,627b30b61c33f5ff]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[fcf5b1804ba8bcd7,33beb5408ab2064a]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[fe002d0e4aee9999,edf6252866e5f201]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "[fedf77bd47bef4f1,ec6310ad202025a9]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrnint("0", "SNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_uint64_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint64_xrninta() {
+ self.bid128_to_uint64_xrninta("0", "0", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "[0000000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "[0000000000000000,0000040000000008]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[0000000000000000,f797bbcaf77325d9]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "[0055b0887299e1a0,dfffffffbeffffdf]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "0.5", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[0635ccebb2a31518,cd40d646f85a09a4]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[0e40000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "[0f1ecde64b3d143b,d7f1ccdf80b47ac2]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "1.0", "1", "00")
+ self.bid128_to_uint64_xrninta("0", "[16499bd1f31eb28d,07b0be8c01ea7bf8]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[247dd47d7db7c553,ae5fb8a2573df345]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[2920acdfc0e36d8a,02bb30e1a9abef3a]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[2FFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000001]", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[2FFDEC8B86EF679D76FC433D7FFFFFFF]", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000001]", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[2FFE314DC6448D9338C15B09FFFFFFFF]", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint64_xrninta("0", "[2FFE314DC6448D9338C15B0A00000001]", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[2FFE49F4A966D45CD522088EFFFFFFFF]", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint64_xrninta("0", "[2FFE49F4A966D45CD522088F00000001]", "2", "20")
+ self.bid128_to_uint64_xrninta("0", "[3000008280082014,0100080000286442]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[300002c406000040,02e1c31058e09354]", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[3000ca1128168d02,ffffffefdff7fffb]", "41", "20")
+ self.bid128_to_uint64_xrninta("0", "[300293E952CDA8B9AA44111DFFFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[300293E952CDA8B9AA44111E00000000]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[300293E952CDA8B9AA44111E00000001]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[300294286EACB8CB0A8CB6B13FFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[300294286EACB8CB0A8CB6B140000000]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[300294286EACB8CB0A8CB6B140000001]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[30040ECA8847C4129106CE82FFFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[30040ECA8847C4129106CE8300000000]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[30040ECA8847C4129106CE8300000001]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[300A0003C95A2F0B4856475FDFFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[300A0003C95A2F0B4856475FE0000000]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[300A0003C95A2F0B4856475FE0000001]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[300C000060EF6B1ABA6F07232FFFFFFF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[300C000060EF6B1ABA6F072330000000]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[300C000060EF6B1ABA6F072330000001]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[30108201140c32a2,afb557cf13ffcdb4]", "2636798681", "20")
+ self.bid128_to_uint64_xrninta("0", "[3010C5371912364CE3056C27FFFFFFFF]", "4000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3010C5371912364CE3056C2800000000]", "4000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[3010C5371912364CE3056C2800000001]", "4000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3010F684DF56C3E01BC6C731FFFFFFFF]", "5000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3010F684DF56C3E01BC6C73200000000]", "5000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[3010F684DF56C3E01BC6C73200000001]", "5000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C88FB62ED56E4238E3FFFFF]", "19999999998", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C88FB62ED56E4238E400000]", "19999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C88FB62ED56E4238E400001]", "19999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C8905F96EBAD4C9097FFFFF]", "19999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C8905F96EBAD4C909800000]", "19999999999", "00")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C8905F96EBAD4C909800001]", "19999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C89108FF01EC56E84BFFFFF]", "19999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C89108FF01EC56E84C00000]", "20000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C89108FF01EC56E84C00001]", "20000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C891B267182B613FFFFFFFF]", "20000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C891B267182B61400000000]", "20000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C891B267182B61400000001]", "20000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C8925BCF2E6A6B97B3FFFFF]", "20000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C8925BCF2E6A6B97B400000]", "20000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C8925BCF2E6A6B97B400001]", "20000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C893053744A975EF67FFFFF]", "20000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C893053744A975EF6800000]", "20000000001", "00")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C893053744A975EF6800001]", "20000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C893AE9F5AE880471BFFFFF]", "20000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C893AE9F5AE880471C00000]", "20000000002", "20")
+ self.bid128_to_uint64_xrninta("0", "[3012629B8C893AE9F5AE880471C00001]", "20000000002", "20")
+ self.bid128_to_uint64_xrninta("0", "[3015802cb4c00002,cc00010003869d21]", "779198726637", "20")
+ self.bid128_to_uint64_xrninta("0", "[3018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xrninta("0", "[3018AD78EBC5AC620000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xrninta("0", "[3018AD78EBC5AC620000000000000001]", "35184372088832", "20")
+ self.bid128_to_uint64_xrninta("0", "[3018AD78EBC5AC64B5E3AF16B187FFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xrninta("0", "[3018AD78EBC5AC64B5E3AF16B1880000]", "35184372088833", "20")
+ self.bid128_to_uint64_xrninta("0", "[3018AD78EBC5AC64B5E3AF16B1880001]", "35184372088833", "20")
+ self.bid128_to_uint64_xrninta("0", "[301A0000000000A2E6C09AD3E0D3FFFF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[301A0000000000A2E6C09AD3E0D40000]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[301A0000000000A2E6C09AD3E0D40001]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B265CB1A40684E9FFFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B265CB1A40684EA0000]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B265CB1A40684EA0001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B2663A1FF60589BFFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B2663A1FF60589C0000]", "1999999999999999", "00")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B2663A1FF60589C0001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B266A925ABA2C4DFFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B266A925ABA2C4E0000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B266A925ABA2C4E0001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B267182B613FFFFFFFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B267182B61400000000]", "2000000000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B267182B61400000001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B267873116DD3B1FFFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B267873116DD3B20000]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B267873116DD3B20001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B267F636CC7A763FFFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B267F636CC7A7640000]", "2000000000000001", "00")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B267F636CC7A7640001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B268653C8217B15FFFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B268653C8217B160000]", "2000000000000002", "20")
+ self.bid128_to_uint64_xrninta("0", "[301C629B8C891B268653C8217B160001]", "2000000000000002", "20")
+ self.bid128_to_uint64_xrninta("0", "[301E000000000001A055690D9DB7FFFF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[301E000000000001A055690D9DB80000]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[301E000000000001A055690D9DB80001]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[301E002C68AF0BB140B1A2BC2EC4FFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xrninta("0", "[301E002C68AF0BB140B1A2BC2EC50000]", "35184372088833", "20")
+ self.bid128_to_uint64_xrninta("0", "[301E002C68AF0BB140B1A2BC2EC50001]", "35184372088833", "20")
+ self.bid128_to_uint64_xrninta("0", "[302000000000000029A2241AF62BFFFF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[302000000000000029A2241AF62C0000]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[302000000000000029A2241AF62C0001]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[3020000470DE4DF81FFFFFFFFFFFFFFF]", "35184372088832", "20")
+ self.bid128_to_uint64_xrninta("0", "[3020000470DE4DF82000000000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xrninta("0", "[3020000470DE4DF82000000000000001]", "35184372088832", "20")
+ self.bid128_to_uint64_xrninta("0", "[302000FC6F7C4045813459C637E07FFF]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[302000FC6F7C4045813459C637E08000]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[302000FC6F7C4045813459C637E08001]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[302000FC6F7C40458157E0B8A7A17FFF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[302000FC6F7C40458157E0B8A7A18000]", "2000000000000002", "20")
+ self.bid128_to_uint64_xrninta("0", "[302000FC6F7C40458157E0B8A7A18001]", "2000000000000002", "20")
+ self.bid128_to_uint64_xrninta("0", "[302032251c80000c,ffeffbfebfffffdf]", "101706074251863101", "20")
+ self.bid128_to_uint64_xrninta("0", "[302200193E5939A08CE4879688D63FFF]", "1999999999999998", "20")
+ self.bid128_to_uint64_xrninta("0", "[302200193E5939A08CE4879688D64000]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[302200193E5939A08CE4879688D64001]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[302200193E5939A08CE815152D9CBFFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[302200193E5939A08CE815152D9CC000]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[302200193E5939A08CE815152D9CC001]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775806", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF52633FFFFFFAABC208D64000]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF52633FFFFFFAABC208D64001]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF52633FFFFFFC72815B398000]", "9223372036854775807", "00")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF52633FFFFFFC72815B398001]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF526340000000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF526340000000000000000001]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF526340000001C6BF52634000]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF526340000001C6BF52634001]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF5263400000038D7EA4C67FFF]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF5263400000038D7EA4C68000]", "9223372036854775809", "00")
+ self.bid128_to_uint64_xrninta("0", "[3023C6BF5263400000038D7EA4C68001]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xrninta("0", "[3024000000000000006A94D74F42FFFF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[3024000000000000006A94D74F430000]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[3024000000000000006A94D74F430001]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[3024314DC6448D9338C15B09FFFFFFFF]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3024314DC6448D9338C15B0A00000000]", "10000000000000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[3024314DC6448D9338C15B0A00000001]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3024314DC6448D9338C18883883D1FFF]", "10000000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[3024314DC6448D9338C18883883D2000]", "10000000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[3024314DC6448D9338C18883883D2001]", "10000000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[302449F4A966D45CD522088EFFFFFFFF]", "15000000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[302449F4A966D45CD522088F00000000]", "15000000000000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[302449F4A966D45CD522088F00000001]", "15000000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A3FFFFFFFA50CEF85BFFF]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A3FFFFFFFA50CEF85C000]", "18446744073709551615", "00")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A3FFFFFFFA50CEF85C001]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A3FFFFFFFD28677C2DFFF]", "18446744073709551615", "20")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[3024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[3024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[3024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[3025080819254040,053200f004801000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[3026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[3026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[3026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[302A00000000006C6B935B68D08DA3FF]", "19999999998", "20")
+ self.bid128_to_uint64_xrninta("0", "[302A00000000006C6B935B68D08DA400]", "19999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[302A00000000006C6B935B68D08DA401]", "19999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[302A00000000006C6B935B8019048BFF]", "19999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[302A00000000006C6B935B8019048C00]", "20000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[302A00000000006C6B935B8019048C01]", "20000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C000000000000000002BBA7F521FF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C000000000000000002BBA7F52200]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C000000000000000002BBA7F52201]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C00000000000AD78EBC5872141BFF]", "19999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C00000000000AD78EBC5872141C00]", "19999999999", "00")
+ self.bid128_to_uint64_xrninta("0", "[302C00000000000AD78EBC5872141C01]", "19999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C00000000000AD78EBC5BF025F1FF]", "20000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C00000000000AD78EBC5BF025F200]", "20000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C00000000000AD78EBC5BF025F201]", "20000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C00000000000AD78EBC5E4431D5FF]", "20000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C00000000000AD78EBC5E4431D600]", "20000000002", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C00000000000AD78EBC5E4431D601]", "20000000002", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C000000108B2A2C28028E3FF41BFF]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[302C000000108B2A2C28028E3FF41C00]", "1999999999999999", "00")
+ self.bid128_to_uint64_xrninta("0", "[302C000000108B2A2C28028E3FF41C01]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[302E000000000001158E46094F6AC9FF]", "20000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[302E000000000001158E46094F6ACA00]", "20000000001", "00")
+ self.bid128_to_uint64_xrninta("0", "[302E000000000001158E46094F6ACA01]", "20000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[302E00000001A784379D99DB7D9AC9FF]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[302E00000001A784379D99DB7D9ACA00]", "2000000000000001", "00")
+ self.bid128_to_uint64_xrninta("0", "[302E00000001A784379D99DB7D9ACA01]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[303000000000000000000006FC23ABFF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[303000000000000000000006FC23AC00]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[303000000000000000000006FC23AC01]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[303200000000000000000000B2D05DFF]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[303200000000000000000000B2D05E00]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[303200000000000000000000B2D05E01]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[303800000000000000000000002DDA47]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[303800000000000000000000002DDA48]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[303800000000000000000000002DDA49]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[303A00000000000000000000000495D3]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[303A00000000000000000000000495D4]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[303A00000000000000000000000495D5]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[303C0000000000000000000000007561]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[303C0000000000000000000000007562]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[303C0000000000000000000000007563]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000000000000000000BB7]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000000000000000000BB8]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000000000000000000BB9]", "300", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000000000000000000BBD]", "301", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000000000002E90EDCFF1]", "19999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000000000002E90EDCFFB]", "20000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000000000002E90EDD005]", "20000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000000000002E90EDD00F]", "20000000002", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000000001400000000005]", "35184372088833", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E00000000000000470DE4DF81FFF1]", "1999999999999999", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E00000000000000470DE4DF81FFFB]", "2000000000000000", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E00000000000000470DE4DF820005]", "2000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E00000000000000470DE4DF82000F]", "2000000000000002", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775807", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000050000000000000005]", "9223372036854775809", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E0000000000056BC75E2D63100005]", "10000000000000000001", "20")
+ self.bid128_to_uint64_xrninta("0", "[303E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[303E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint64_xrninta("0", "[3040000000000000000000000000012B]", "299", "00")
+ self.bid128_to_uint64_xrninta("0", "[3040000000000000000000000000012C]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[3040000000000000000000000000012D]", "301", "00")
+ self.bid128_to_uint64_xrninta("0", "[304000000000000000000004A817C7FF]", "19999999999", "00")
+ self.bid128_to_uint64_xrninta("0", "[304000000000000000000004A817C801]", "20000000001", "00")
+ self.bid128_to_uint64_xrninta("0", "[30400000000000000000200000000000]", "35184372088832", "00")
+ self.bid128_to_uint64_xrninta("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_xrninta("0", "[304000000000000000071AFD498CFFFF]", "1999999999999999", "00")
+ self.bid128_to_uint64_xrninta("0", "[304000000000000000071AFD498D0000]", "2000000000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_xrninta("0", "[304000000000000000071AFD498D0001]", "2000000000000001", "00")
+ self.bid128_to_uint64_xrninta("0", "[30400000000000007FFFFFFFFFFFFFFF]", "9223372036854775807", "00")
+ self.bid128_to_uint64_xrninta("0", "[30400000000000008000000000000000]", "9223372036854775808", "00")
+ self.bid128_to_uint64_xrninta("0", "[30400000000000008000000000000001]", "9223372036854775809", "00")
+ self.bid128_to_uint64_xrninta("0", "[3040000000000000,ffbf7ff7ffff7fff]", "18428588903351943167", "00")
+ self.bid128_to_uint64_xrninta("0", "[3040000000000000FFFFFFFFFFFFFFFF]", "18446744073709551615", "00")
+ self.bid128_to_uint64_xrninta("0", "[30400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[3040000000000004,1048190002800222]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "[3042000000000000000000000000001D]", "290", "00")
+ self.bid128_to_uint64_xrninta("0", "[3042000000000000000000000000001E]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[3042000000000000000000000000001F]", "310", "00")
+ self.bid128_to_uint64_xrninta("0", "[304200000000000000000000773593FF]", "19999999990", "00")
+ self.bid128_to_uint64_xrninta("0", "[30420000000000000000000077359400]", "20000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[30420000000000000000000077359401]", "20000000010", "00")
+ self.bid128_to_uint64_xrninta("0", "[30440000000000000000000000000003]", "300", "00")
+ self.bid128_to_uint64_xrninta("0", "[3044000000000000,0000008008000020]", "54989003164800", "00")
+ self.bid128_to_uint64_xrninta("0", "[3048000000000000,001c0004ac080002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30520000000000000000000000000004]", "4000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[30520000000000000000000000000005]", "5000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[30540000000000000000000000000002]", "20000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[305E0000000000000000000000000002]", "2000000000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[3064000000000000000000000000000F]", "15000000000000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[30640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30660000000000000000000000000001]", "10000000000000000000", "00")
+ self.bid128_to_uint64_xrninta("0", "[30660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[30680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[3806327eeb130c94,796fbb90b523eb90]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[4f14000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "5.05", "5", "20")
+ self.bid128_to_uint64_xrninta("0", "[53ba000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "+57669697.75595796559E0", "57669698", "20")
+ self.bid128_to_uint64_xrninta("0", "[57da22131efd5d0a,e7f373d75ffdeef7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "+65698.878E0", "65699", "20")
+ self.bid128_to_uint64_xrninta("0", "[6afb6edffdefffbd,dff99f997f9ecdf7]", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "[78000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[7b92c29201de300a,0000900040985008]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[7c00000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[7c000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[7c003fffffffffff38c15b08ffffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[7c003fffffffffff38c15b0affffffff]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[7e000000000000000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[94ce000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "[9706000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "[99c78f9556ff47e7,50f3cc9049825694]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[a3ac65f8a1525075,15a717f6760b363c]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[a3f06ee251e5c009,15e5d28ba57c6bfe]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[a73e4e0329f7bf65,8ac69125fa691fc1]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[AFFCF684DF56C3E01BC6C731FFFFFFFF]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[AFFCF684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[AFFCF684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[affdaf7dffe7fbff,dffd7e47d5bfeff7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[AFFDEC8B86EF679D76FC433D7FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[AFFDEC8B86EF679D76FC433D80000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[AFFDEC8B86EF679D76FC433D80000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[AFFE314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[AFFE314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[AFFE314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[AFFE49F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[AFFE49F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[AFFE49F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[afffa6747f2eb7d7,6918589488500000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00293E952CDA8B9AA44111DFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00293E952CDA8B9AA44111E00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00293E952CDA8B9AA44111E00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00294286EACB8CB0A8CB6B13FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00294286EACB8CB0A8CB6B140000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00294286EACB8CB0A8CB6B140000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0040ECA8847C4129106CE82FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0040ECA8847C4129106CE8300000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0040ECA8847C4129106CE8300000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00A0003C95A2F0B4856475FDFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00A0003C95A2F0B4856475FE0000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00A0003C95A2F0B4856475FE0000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00C000060EF6B1ABA6F07232FFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00C000060EF6B1ABA6F072330000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B00C000060EF6B1ABA6F072330000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B010C5371912364CE3056C27FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B010C5371912364CE3056C2800000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B010C5371912364CE3056C2800000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B010F684DF56C3E01BC6C731FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B010F684DF56C3E01BC6C73200000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B010F684DF56C3E01BC6C73200000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C88FB62ED56E4238E3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C88FB62ED56E4238E400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C88FB62ED56E4238E400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C8905F96EBAD4C9097FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C8905F96EBAD4C909800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C8905F96EBAD4C909800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C89108FF01EC56E84BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C89108FF01EC56E84C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C89108FF01EC56E84C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C8925BCF2E6A6B97B3FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C8925BCF2E6A6B97B400000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C8925BCF2E6A6B97B400001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C893053744A975EF67FFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C893053744A975EF6800000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C893053744A975EF6800001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C893AE9F5AE880471BFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C893AE9F5AE880471C00000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B012629B8C893AE9F5AE880471C00001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B018AD78EBC5AC61FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B018AD78EBC5AC620000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B018AD78EBC5AC620000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B018AD78EBC5AC64B5E3AF16B187FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B018AD78EBC5AC64B5E3AF16B1880000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B018AD78EBC5AC64B5E3AF16B1880001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01A0000000000A2E6C09AD3E0D3FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01A0000000000A2E6C09AD3E0D40000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01A0000000000A2E6C09AD3E0D40001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B265CB1A40684E9FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B265CB1A40684EA0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B265CB1A40684EA0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B2663A1FF60589BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B2663A1FF60589C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B2663A1FF60589C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B266A925ABA2C4DFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B266A925ABA2C4E0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B266A925ABA2C4E0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B267873116DD3B1FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B267873116DD3B20000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B267873116DD3B20001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B267F636CC7A763FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B267F636CC7A7640000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B267F636CC7A7640001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B268653C8217B15FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B268653C8217B160000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01C629B8C891B268653C8217B160001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01E000000000001A055690D9DB7FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01E000000000001A055690D9DB80000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01E000000000001A055690D9DB80001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01E002C68AF0BB140B1A2BC2EC4FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01E002C68AF0BB140B1A2BC2EC50000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B01E002C68AF0BB140B1A2BC2EC50001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[b020000000000000,0010000800010200]", "0", "20")
+ self.bid128_to_uint64_xrninta("0", "[B02000000000000029A2241AF62BFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02000000000000029A2241AF62C0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02000000000000029A2241AF62C0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B020000470DE4DF81FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B020000470DE4DF82000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B020000470DE4DF82000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02000FC6F7C4045813459C637E07FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02000FC6F7C4045813459C637E08000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02000FC6F7C4045813459C637E08001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02000FC6F7C40458157E0B8A7A17FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02000FC6F7C40458157E0B8A7A18000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02000FC6F7C40458157E0B8A7A18001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02200193E5939A08CE4879688D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02200193E5939A08CE4879688D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02200193E5939A08CE4879688D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02200193E5939A08CE815152D9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02200193E5939A08CE815152D9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02200193E5939A08CE815152D9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF52633FFFFFFAABC208D63FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF52633FFFFFFAABC208D64000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF52633FFFFFFAABC208D64001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF52633FFFFFFC72815B397FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF52633FFFFFFC72815B398000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF52633FFFFFFC72815B398001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF52633FFFFFFE3940AD9CBFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF52633FFFFFFE3940AD9CC000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF52633FFFFFFE3940AD9CC001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF52633FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF526340000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF526340000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF526340000001C6BF52633FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF526340000001C6BF52634000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF526340000001C6BF52634001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF5263400000038D7EA4C67FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF5263400000038D7EA4C68000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B023C6BF5263400000038D7EA4C68001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024000000000000006A94D74F42FFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024000000000000006A94D74F430000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024000000000000006A94D74F430001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024314DC6448D9338C18883883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024314DC6448D9338C18883883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024314DC6448D9338C18883883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02449F4A966D45CD522088EFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02449F4A966D45CD522088F00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02449F4A966D45CD522088F00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A3FFFFFFFA50CEF85BFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A3FFFFFFFA50CEF85C000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A3FFFFFFFA50CEF85C001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A3FFFFFFFD28677C2DFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A3FFFFFFFD28677C2E000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A3FFFFFFFD28677C2E001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A3FFFFFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A40000000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A40000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A400000002D79883D1FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A400000002D79883D2000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A400000002D79883D2001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A400000005AF3107A3FFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A400000005AF3107A4000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0245AF3107A400000005AF3107A4001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024629B8C891B267182B613FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024629B8C891B267182B61400000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B024629B8C891B267182B61400000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0247B426FAB61F00DE36398FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0247B426FAB61F00DE3639900000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0247B426FAB61F00DE3639900000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[b02617f4371881a1,2b90da44d41edadf]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B026314DC6448D9338C15B09FFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B026314DC6448D9338C15B0A00000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B026314DC6448D9338C15B0A00000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02A00000000006C6B935B68D08DA3FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02A00000000006C6B935B68D08DA400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02A00000000006C6B935B68D08DA401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02A00000000006C6B935B8019048BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02A00000000006C6B935B8019048C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02A00000000006C6B935B8019048C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C000000000000000002BBA7F521FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C000000000000000002BBA7F52200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C000000000000000002BBA7F52201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C00000000000AD78EBC5872141BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C00000000000AD78EBC5872141C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C00000000000AD78EBC5872141C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C00000000000AD78EBC5BF025F1FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C00000000000AD78EBC5BF025F200]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C00000000000AD78EBC5BF025F201]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C00000000000AD78EBC5E4431D5FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C00000000000AD78EBC5E4431D600]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C00000000000AD78EBC5E4431D601]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C000000108B2A2C28028E3FF41BFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C000000108B2A2C28028E3FF41C00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02C000000108B2A2C28028E3FF41C01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02E000000000001158E46094F6AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02E000000000001158E46094F6ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02E000000000001158E46094F6ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02E00000001A784379D99DB7D9AC9FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02E00000001A784379D99DB7D9ACA00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B02E00000001A784379D99DB7D9ACA01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03000000000000000000006FC23ABFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03000000000000000000006FC23AC00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03000000000000000000006FC23AC01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03200000000000000000000B2D05DFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03200000000000000000000B2D05E00]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03200000000000000000000B2D05E01]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03800000000000000000000002DDA47]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03800000000000000000000002DDA48]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03800000000000000000000002DDA49]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03A00000000000000000000000003E7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03A00000000000000000000000495D3]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03A00000000000000000000000495D4]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03A00000000000000000000000495D5]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03C0000000000000000000000007561]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03C0000000000000000000000007562]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03C0000000000000000000000007563]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000000000000000000BB7]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000000000000000000BB8]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000000000000000000BB9]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000000000000000000BBD]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000000000002E90EDCFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000000000002E90EDCFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000000000002E90EDD005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000000000002E90EDD00F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000000001400000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E00000000000000470DE4DF81FFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E00000000000000470DE4DF81FFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E00000000000000470DE4DF820005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E00000000000000470DE4DF82000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E000000000004FFFFFFFFFFFFFFF1]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E000000000004FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000050000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E0000000000056BC75E2D63100005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E000000000009FFFFFFFFFFFFFFFB]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B03E00000000000A0000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0400000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B040000000000000000000000000012B]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B040000000000000000000000000012C]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B040000000000000000000000000012D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B04000000000000000000004A817C7FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B04000000000000000000004A817C801]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0400000000000000000200000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B04000000000000000071AFD498CFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B04000000000000000071AFD498D0000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B04000000000000000071AFD498D0001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0400000000000007FFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0400000000000008000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0400000000000008000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B040000000000000FFFFFFFFFFFFFFFF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0400000000000010000000000000000]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0400000000000010000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B042000000000000000000000000001D]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B042000000000000000000000000001E]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B042000000000000000000000000001F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B04200000000000000000000773593FF]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0420000000000000000000077359400]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0420000000000000000000077359401]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0440000000000000000000000000003]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0520000000000000000000000000004]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0520000000000000000000000000005]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0540000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B05E0000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B064000000000000000000000000000F]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0640000000000000000000000000019]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0660000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0660000000000000000000000000002]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[B0680000000000000000000000000001]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[b46e000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "[ceaa000000000000,0000000000000000]", "0", "00")
+ self.bid128_to_uint64_xrninta("0", "[cfc15711e32450bf,edfee4b31378532a]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[f800000000000000,0000000000000000]", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[fafdf9ff7773fefd,6ffbe2a5b6f6ddb0]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[fdfffffedffefffe,0398000841402140]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "[fffafffed7dfffbd,19237031474498db]", "9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "-Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "Infinity", "-9223372036854775808", "01")
+ self.bid128_to_uint64_xrninta("0", "QNaN", "-9223372036854775808", "01")
+ }
+
+ private func bid128_to_uint64_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt64(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt64 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint8_ceil() {
+ self.bid128_to_uint8_ceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_to_uint8_ceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint8_ceil("0", "1.0", "1", "00")
+ self.bid128_to_uint8_ceil("0", "1073741824", "128", "01")
+ self.bid128_to_uint8_ceil("0", "1", "1", "00")
+ self.bid128_to_uint8_ceil("0", "257", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_uint8_ceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint8_ceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint8_ceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint8_ceil("0", "[30023E5E8B72E12C27CBA28640000000]", "127", "00")
+ self.bid128_to_uint8_ceil("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_uint8_ceil("0", "[30023EDCC331014EE85CEDACC0000000]", "128", "00")
+ self.bid128_to_uint8_ceil("0", "[30023F1BDF10116048A5934000000000]", "128", "00")
+ self.bid128_to_uint8_ceil("0", "[30023F5AFAEF2171A8EE38D340000000]", "129", "00")
+ self.bid128_to_uint8_ceil("0", "[30023F9A16CE31830936DE6680000000]", "129", "00")
+ self.bid128_to_uint8_ceil("0", "[30027DB98662029DD0B9DB5980000000]", "255", "00")
+ self.bid128_to_uint8_ceil("0", "[30027DF8A24112AF310280ECC0000000]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[30027E37BE2022C0914B268000000000]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[30027E76D9FF32D1F193CC1340000000]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[30027EB5F5DE42E351DC71A680000000]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[300293E952CDA8B9AA44111E00000000]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[300294286EACB8CB0A8CB6B140000000]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint8_ceil("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_uint8_ceil("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint8_ceil("0", "[303E00000000000000000000000004F1]", "127", "00")
+ self.bid128_to_uint8_ceil("0", "[303E00000000000000000000000004FB]", "128", "00")
+ self.bid128_to_uint8_ceil("0", "[303E0000000000000000000000000505]", "129", "00")
+ self.bid128_to_uint8_ceil("0", "[303E00000000000000000000000009FB]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[303E0000000000000000000000000A05]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[303E0000000000000000000000000BBD]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint8_ceil("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_uint8_ceil("0", "[30400000000000000000000000000080]", "128", "00")
+ self.bid128_to_uint8_ceil("0", "[30400000000000000000000000000081]", "129", "00")
+ self.bid128_to_uint8_ceil("0", "[304000000000000000000000000000FF]", "255", "00")
+ self.bid128_to_uint8_ceil("0", "[30400000000000000000000000000100]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[30400000000000000000000000000101]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint8_ceil("0", "[30440000000000000000000000000003]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "4294967296", "128", "01")
+ self.bid128_to_uint8_ceil("0", "5.05", "6", "00")
+ self.bid128_to_uint8_ceil("0", "5.5", "6", "00")
+ self.bid128_to_uint8_ceil("0", "[78000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[7c000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[7c003fffffffffff38c15b08ffffffff]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[7c003fffffffffff38c15b0affffffff]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[7e000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[b018000200230b10,1f052320005000b6]", "128", "01")
+ self.bid128_to_uint8_ceil("0", "[fc2f7bfb8d1c1fbf,1084000104080080]", "128", "01")
+ }
+
+ private func bid128_to_uint8_ceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint8_floor() {
+ self.bid128_to_uint8_floor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint8_floor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint8_floor("0", "1.0", "1", "00")
+ self.bid128_to_uint8_floor("0", "1073741824", "128", "01")
+ self.bid128_to_uint8_floor("0", "257", "128", "01")
+ self.bid128_to_uint8_floor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint8_floor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint8_floor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint8_floor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_uint8_floor("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "00")
+ self.bid128_to_uint8_floor("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_uint8_floor("0", "[30023EDCC331014EE85CEDACC0000000]", "127", "00")
+ self.bid128_to_uint8_floor("0", "[30023F1BDF10116048A5934000000000]", "128", "00")
+ self.bid128_to_uint8_floor("0", "[30023F5AFAEF2171A8EE38D340000000]", "128", "00")
+ self.bid128_to_uint8_floor("0", "[30023F9A16CE31830936DE6680000000]", "129", "00")
+ self.bid128_to_uint8_floor("0", "[30027DB98662029DD0B9DB5980000000]", "255", "00")
+ self.bid128_to_uint8_floor("0", "[30027DF8A24112AF310280ECC0000000]", "255", "00")
+ self.bid128_to_uint8_floor("0", "[30027E37BE2022C0914B268000000000]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[30027E76D9FF32D1F193CC1340000000]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[30027EB5F5DE42E351DC71A680000000]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[300293E952CDA8B9AA44111E00000000]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[300294286EACB8CB0A8CB6B140000000]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint8_floor("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint8_floor("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_uint8_floor("0", "[303E00000000000000000000000004F1]", "126", "00")
+ self.bid128_to_uint8_floor("0", "[303E00000000000000000000000004FB]", "127", "00")
+ self.bid128_to_uint8_floor("0", "[303E0000000000000000000000000505]", "128", "00")
+ self.bid128_to_uint8_floor("0", "[303E00000000000000000000000009FB]", "255", "00")
+ self.bid128_to_uint8_floor("0", "[303E0000000000000000000000000A05]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[303E0000000000000000000000000BBD]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint8_floor("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_uint8_floor("0", "[30400000000000000000000000000080]", "128", "00")
+ self.bid128_to_uint8_floor("0", "[30400000000000000000000000000081]", "129", "00")
+ self.bid128_to_uint8_floor("0", "[304000000000000000000000000000FF]", "255", "00")
+ self.bid128_to_uint8_floor("0", "[30400000000000000000000000000100]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[30400000000000000000000000000101]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint8_floor("0", "[30440000000000000000000000000003]", "128", "01")
+ self.bid128_to_uint8_floor("0", "4294967296", "128", "01")
+ self.bid128_to_uint8_floor("0", "5.5", "5", "00")
+ self.bid128_to_uint8_floor("0", "[78000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[7c000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[7c003fffffffffff38c15b08ffffffff]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[7c003fffffffffff38c15b0affffffff]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[7e000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_floor("0", "[efde9fbfffaffbff,9f3d7ffffeeffffb]", "0", "00")
+ }
+
+ private func bid128_to_uint8_floor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint8_int() {
+ self.bid128_to_uint8_int("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint8_int("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint8_int("0", "1.0", "1", "00")
+ self.bid128_to_uint8_int("0", "1", "1", "00")
+ self.bid128_to_uint8_int("0", "257", "128", "01")
+ self.bid128_to_uint8_int("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint8_int("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "00")
+ self.bid128_to_uint8_int("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint8_int("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "00")
+ self.bid128_to_uint8_int("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "00")
+ self.bid128_to_uint8_int("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_uint8_int("0", "[30023EDCC331014EE85CEDACC0000000]", "127", "00")
+ self.bid128_to_uint8_int("0", "[30023F1BDF10116048A5934000000000]", "128", "00")
+ self.bid128_to_uint8_int("0", "[30023F5AFAEF2171A8EE38D340000000]", "128", "00")
+ self.bid128_to_uint8_int("0", "[30023F9A16CE31830936DE6680000000]", "129", "00")
+ self.bid128_to_uint8_int("0", "[30027DB98662029DD0B9DB5980000000]", "255", "00")
+ self.bid128_to_uint8_int("0", "[30027DF8A24112AF310280ECC0000000]", "255", "00")
+ self.bid128_to_uint8_int("0", "[30027E37BE2022C0914B268000000000]", "128", "01")
+ self.bid128_to_uint8_int("0", "[30027E76D9FF32D1F193CC1340000000]", "128", "01")
+ self.bid128_to_uint8_int("0", "[30027EB5F5DE42E351DC71A680000000]", "128", "01")
+ self.bid128_to_uint8_int("0", "[300293E952CDA8B9AA44111E00000000]", "128", "01")
+ self.bid128_to_uint8_int("0", "[300294286EACB8CB0A8CB6B140000000]", "128", "01")
+ self.bid128_to_uint8_int("0", "[303A00000000000000000000000003E7]", "0", "00")
+ self.bid128_to_uint8_int("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint8_int("0", "[303E000000000000000000000000000F]", "1", "00")
+ self.bid128_to_uint8_int("0", "[303E00000000000000000000000004F1]", "126", "00")
+ self.bid128_to_uint8_int("0", "[303E00000000000000000000000004FB]", "127", "00")
+ self.bid128_to_uint8_int("0", "[303E0000000000000000000000000505]", "128", "00")
+ self.bid128_to_uint8_int("0", "[303E00000000000000000000000009FB]", "255", "00")
+ self.bid128_to_uint8_int("0", "[303E0000000000000000000000000A05]", "128", "01")
+ self.bid128_to_uint8_int("0", "[303E0000000000000000000000000BBD]", "128", "01")
+ self.bid128_to_uint8_int("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint8_int("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_uint8_int("0", "[30400000000000000000000000000080]", "128", "00")
+ self.bid128_to_uint8_int("0", "[30400000000000000000000000000081]", "129", "00")
+ self.bid128_to_uint8_int("0", "[304000000000000000000000000000FF]", "255", "00")
+ self.bid128_to_uint8_int("0", "[30400000000000000000000000000100]", "128", "01")
+ self.bid128_to_uint8_int("0", "[30400000000000000000000000000101]", "128", "01")
+ self.bid128_to_uint8_int("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint8_int("0", "[30440000000000000000000000000003]", "128", "01")
+ self.bid128_to_uint8_int("0", "[4000190410001c00,00a0d01930081cc0]", "128", "01")
+ self.bid128_to_uint8_int("0", "5.5", "5", "00")
+ self.bid128_to_uint8_int("0", "[78000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_int("0", "[7c000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_int("0", "[7c003fffffffffff38c15b08ffffffff]", "128", "01")
+ self.bid128_to_uint8_int("0", "[7c003fffffffffff38c15b0affffffff]", "128", "01")
+ self.bid128_to_uint8_int("0", "[7e000000000000000000000000000000]", "128", "01")
+ }
+
+ private func bid128_to_uint8_int(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint8_rnint() {
+ self.bid128_to_uint8_rnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint8_rnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint8_rnint("0", "1073741824", "128", "01")
+ self.bid128_to_uint8_rnint("0", "1", "1", "00")
+ self.bid128_to_uint8_rnint("0", "257", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "00")
+ self.bid128_to_uint8_rnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint8_rnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint8_rnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint8_rnint("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "00")
+ self.bid128_to_uint8_rnint("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_uint8_rnint("0", "[30023EDCC331014EE85CEDACC0000000]", "128", "00")
+ self.bid128_to_uint8_rnint("0", "[30023F1BDF10116048A5934000000000]", "128", "00")
+ self.bid128_to_uint8_rnint("0", "[30023F5AFAEF2171A8EE38D340000000]", "128", "00")
+ self.bid128_to_uint8_rnint("0", "[30023F9A16CE31830936DE6680000000]", "129", "00")
+ self.bid128_to_uint8_rnint("0", "[30027DB98662029DD0B9DB5980000000]", "255", "00")
+ self.bid128_to_uint8_rnint("0", "[30027DF8A24112AF310280ECC0000000]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[30027E37BE2022C0914B268000000000]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[30027E76D9FF32D1F193CC1340000000]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[30027EB5F5DE42E351DC71A680000000]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[300293E952CDA8B9AA44111E00000000]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[300294286EACB8CB0A8CB6B140000000]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[301c000000000000,0820400401220001]", "1", "00")
+ self.bid128_to_uint8_rnint("0", "[30281cc040a0d91d,fcfffeffbf7f9bff]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint8_rnint("0", "[303E0000000000000000000000000005]", "0", "00")
+ self.bid128_to_uint8_rnint("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint8_rnint("0", "[303E00000000000000000000000004F1]", "126", "00")
+ self.bid128_to_uint8_rnint("0", "[303E00000000000000000000000004FB]", "128", "00")
+ self.bid128_to_uint8_rnint("0", "[303E0000000000000000000000000505]", "128", "00")
+ self.bid128_to_uint8_rnint("0", "[303E00000000000000000000000009FB]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[303E0000000000000000000000000A05]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[303E0000000000000000000000000BBD]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint8_rnint("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_uint8_rnint("0", "[30400000000000000000000000000080]", "128", "00")
+ self.bid128_to_uint8_rnint("0", "[30400000000000000000000000000081]", "129", "00")
+ self.bid128_to_uint8_rnint("0", "[304000000000000000000000000000FF]", "255", "00")
+ self.bid128_to_uint8_rnint("0", "[30400000000000000000000000000100]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[30400000000000000000000000000101]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint8_rnint("0", "[30440000000000000000000000000003]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "4294967296", "128", "01")
+ self.bid128_to_uint8_rnint("0", "5.5", "6", "00")
+ self.bid128_to_uint8_rnint("0", "[78000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[7c000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[7c003fffffffffff38c15b08ffffffff]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[7c003fffffffffff38c15b0affffffff]", "128", "01")
+ self.bid128_to_uint8_rnint("0", "[7e000000000000000000000000000000]", "128", "01")
+ }
+
+ private func bid128_to_uint8_rnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint8_rninta() {
+ self.bid128_to_uint8_rninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_to_uint8_rninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint8_rninta("0", "0.1", "0", "00")
+ self.bid128_to_uint8_rninta("0", "1073741824", "128", "01")
+ self.bid128_to_uint8_rninta("0", "257", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "00")
+ self.bid128_to_uint8_rninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "00")
+ self.bid128_to_uint8_rninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint8_rninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "00")
+ self.bid128_to_uint8_rninta("0", "[30023E5E8B72E12C27CBA28640000000]", "127", "00")
+ self.bid128_to_uint8_rninta("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_uint8_rninta("0", "[30023EDCC331014EE85CEDACC0000000]", "128", "00")
+ self.bid128_to_uint8_rninta("0", "[30023F1BDF10116048A5934000000000]", "128", "00")
+ self.bid128_to_uint8_rninta("0", "[30023F5AFAEF2171A8EE38D340000000]", "129", "00")
+ self.bid128_to_uint8_rninta("0", "[30023F9A16CE31830936DE6680000000]", "129", "00")
+ self.bid128_to_uint8_rninta("0", "[30027DB98662029DD0B9DB5980000000]", "255", "00")
+ self.bid128_to_uint8_rninta("0", "[30027DF8A24112AF310280ECC0000000]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[30027E37BE2022C0914B268000000000]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[30027E76D9FF32D1F193CC1340000000]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[30027EB5F5DE42E351DC71A680000000]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[300293E952CDA8B9AA44111E00000000]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[300294286EACB8CB0A8CB6B140000000]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[303A00000000000000000000000003E7]", "1", "00")
+ self.bid128_to_uint8_rninta("0", "[303E0000000000000000000000000005]", "1", "00")
+ self.bid128_to_uint8_rninta("0", "[303E000000000000000000000000000F]", "2", "00")
+ self.bid128_to_uint8_rninta("0", "[303E00000000000000000000000004F1]", "127", "00")
+ self.bid128_to_uint8_rninta("0", "[303E00000000000000000000000004FB]", "128", "00")
+ self.bid128_to_uint8_rninta("0", "[303E0000000000000000000000000505]", "129", "00")
+ self.bid128_to_uint8_rninta("0", "[303E00000000000000000000000009FB]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[303E0000000000000000000000000A05]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[303E0000000000000000000000000BBD]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint8_rninta("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_uint8_rninta("0", "[30400000000000000000000000000080]", "128", "00")
+ self.bid128_to_uint8_rninta("0", "[30400000000000000000000000000081]", "129", "00")
+ self.bid128_to_uint8_rninta("0", "[304000000000000000000000000000FF]", "255", "00")
+ self.bid128_to_uint8_rninta("0", "[30400000000000000000000000000100]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[30400000000000000000000000000101]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[3040000000000000,0000000000000800]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint8_rninta("0", "[30440000000000000000000000000003]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "4294967296", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[484fc27881ae19c4,fb9ad475cb0b1992]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[78000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[7c000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[7c003fffffffffff38c15b08ffffffff]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[7c003fffffffffff38c15b0affffffff]", "128", "01")
+ self.bid128_to_uint8_rninta("0", "[7e000000000000000000000000000000]", "128", "01")
+ }
+
+ private func bid128_to_uint8_rninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint8_xceil() {
+ self.bid128_to_uint8_xceil("0", "[0001ed09bead87c0378d8e62ffffffff]", "1", "20")
+ self.bid128_to_uint8_xceil("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint8_xceil("0", "1073741824", "128", "01")
+ self.bid128_to_uint8_xceil("0", "1", "1", "00")
+ self.bid128_to_uint8_xceil("0", "257", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_uint8_xceil("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint8_xceil("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint8_xceil("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint8_xceil("0", "[30023E5E8B72E12C27CBA28640000000]", "127", "20")
+ self.bid128_to_uint8_xceil("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_uint8_xceil("0", "[30023EDCC331014EE85CEDACC0000000]", "128", "20")
+ self.bid128_to_uint8_xceil("0", "[30023F1BDF10116048A5934000000000]", "128", "00")
+ self.bid128_to_uint8_xceil("0", "[30023F5AFAEF2171A8EE38D340000000]", "129", "20")
+ self.bid128_to_uint8_xceil("0", "[30023F9A16CE31830936DE6680000000]", "129", "00")
+ self.bid128_to_uint8_xceil("0", "[30027DB98662029DD0B9DB5980000000]", "255", "00")
+ self.bid128_to_uint8_xceil("0", "[30027DF8A24112AF310280ECC0000000]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[30027E37BE2022C0914B268000000000]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[30027E76D9FF32D1F193CC1340000000]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[30027EB5F5DE42E351DC71A680000000]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[300293E952CDA8B9AA44111E00000000]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[300294286EACB8CB0A8CB6B140000000]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint8_xceil("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_uint8_xceil("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint8_xceil("0", "[303E00000000000000000000000004F1]", "127", "20")
+ self.bid128_to_uint8_xceil("0", "[303E00000000000000000000000004FB]", "128", "20")
+ self.bid128_to_uint8_xceil("0", "[303E0000000000000000000000000505]", "129", "20")
+ self.bid128_to_uint8_xceil("0", "[303E00000000000000000000000009FB]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[303E0000000000000000000000000A05]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[303E0000000000000000000000000BBD]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint8_xceil("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_uint8_xceil("0", "[30400000000000000000000000000080]", "128", "00")
+ self.bid128_to_uint8_xceil("0", "[30400000000000000000000000000081]", "129", "00")
+ self.bid128_to_uint8_xceil("0", "[304000000000000000000000000000FF]", "255", "00")
+ self.bid128_to_uint8_xceil("0", "[30400000000000000000000000000100]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[30400000000000000000000000000101]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint8_xceil("0", "[30440000000000000000000000000003]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "4294967296", "128", "01")
+ self.bid128_to_uint8_xceil("0", "5.5", "6", "20")
+ self.bid128_to_uint8_xceil("0", "[78000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[7c000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[7c003fffffffffff38c15b08ffffffff]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[7c003fffffffffff38c15b0affffffff]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[7e000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xceil("0", "[c1b53e2dc5d0fa64,4c2d7a4f6c063532]", "128", "01")
+ }
+
+ private func bid128_to_uint8_xceil(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .up, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint8_xfloor() {
+ self.bid128_to_uint8_xfloor("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint8_xfloor("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint8_xfloor("0", "1.0", "1", "00")
+ self.bid128_to_uint8_xfloor("0", "257", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint8_xfloor("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint8_xfloor("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint8_xfloor("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_uint8_xfloor("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "20")
+ self.bid128_to_uint8_xfloor("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_uint8_xfloor("0", "[30023EDCC331014EE85CEDACC0000000]", "127", "20")
+ self.bid128_to_uint8_xfloor("0", "[30023F1BDF10116048A5934000000000]", "128", "00")
+ self.bid128_to_uint8_xfloor("0", "[30023F5AFAEF2171A8EE38D340000000]", "128", "20")
+ self.bid128_to_uint8_xfloor("0", "[30023F9A16CE31830936DE6680000000]", "129", "00")
+ self.bid128_to_uint8_xfloor("0", "[30027DB98662029DD0B9DB5980000000]", "255", "00")
+ self.bid128_to_uint8_xfloor("0", "[30027DF8A24112AF310280ECC0000000]", "255", "20")
+ self.bid128_to_uint8_xfloor("0", "[30027E37BE2022C0914B268000000000]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[30027E76D9FF32D1F193CC1340000000]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[30027EB5F5DE42E351DC71A680000000]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[300293E952CDA8B9AA44111E00000000]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[300294286EACB8CB0A8CB6B140000000]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint8_xfloor("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint8_xfloor("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_uint8_xfloor("0", "[303E00000000000000000000000004F1]", "126", "20")
+ self.bid128_to_uint8_xfloor("0", "[303E00000000000000000000000004FB]", "127", "20")
+ self.bid128_to_uint8_xfloor("0", "[303E0000000000000000000000000505]", "128", "20")
+ self.bid128_to_uint8_xfloor("0", "[303E00000000000000000000000009FB]", "255", "20")
+ self.bid128_to_uint8_xfloor("0", "[303E0000000000000000000000000A05]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[303E0000000000000000000000000BBD]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint8_xfloor("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_uint8_xfloor("0", "[30400000000000000000000000000080]", "128", "00")
+ self.bid128_to_uint8_xfloor("0", "[30400000000000000000000000000081]", "129", "00")
+ self.bid128_to_uint8_xfloor("0", "[304000000000000000000000000000FF]", "255", "00")
+ self.bid128_to_uint8_xfloor("0", "[30400000000000000000000000000100]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[30400000000000000000000000000101]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint8_xfloor("0", "[30440000000000000000000000000003]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "4294967296", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "5.05", "5", "20")
+ self.bid128_to_uint8_xfloor("0", "5.5", "5", "20")
+ self.bid128_to_uint8_xfloor("0", "[78000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[7c000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[7c003fffffffffff38c15b08ffffffff]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[7c003fffffffffff38c15b0affffffff]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[7e000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xfloor("0", "[84b5615691ad8181,bbe707cefc0d4763]", "128", "01")
+ }
+
+ private func bid128_to_uint8_xfloor(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .down, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint8_xint() {
+ self.bid128_to_uint8_xint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint8_xint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint8_xint("0", "[0008200000008000,4000000084200001]", "0", "20")
+ self.bid128_to_uint8_xint("0", "1.0", "1", "00")
+ self.bid128_to_uint8_xint("0", "1073741824", "128", "01")
+ self.bid128_to_uint8_xint("0", "1", "1", "00")
+ self.bid128_to_uint8_xint("0", "257", "128", "01")
+ self.bid128_to_uint8_xint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint8_xint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "0", "20")
+ self.bid128_to_uint8_xint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint8_xint("0", "[2FFE49F4A966D45CD522088F00000000]", "1", "20")
+ self.bid128_to_uint8_xint("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "20")
+ self.bid128_to_uint8_xint("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_uint8_xint("0", "[30023EDCC331014EE85CEDACC0000000]", "127", "20")
+ self.bid128_to_uint8_xint("0", "[30023F1BDF10116048A5934000000000]", "128", "00")
+ self.bid128_to_uint8_xint("0", "[30023F5AFAEF2171A8EE38D340000000]", "128", "20")
+ self.bid128_to_uint8_xint("0", "[30023F9A16CE31830936DE6680000000]", "129", "00")
+ self.bid128_to_uint8_xint("0", "[30027DB98662029DD0B9DB5980000000]", "255", "00")
+ self.bid128_to_uint8_xint("0", "[30027DF8A24112AF310280ECC0000000]", "255", "20")
+ self.bid128_to_uint8_xint("0", "[30027E37BE2022C0914B268000000000]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[30027E76D9FF32D1F193CC1340000000]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[30027EB5F5DE42E351DC71A680000000]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[300293E952CDA8B9AA44111E00000000]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[300294286EACB8CB0A8CB6B140000000]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[303A00000000000000000000000003E7]", "0", "20")
+ self.bid128_to_uint8_xint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint8_xint("0", "[303E000000000000000000000000000F]", "1", "20")
+ self.bid128_to_uint8_xint("0", "[303E00000000000000000000000004F1]", "126", "20")
+ self.bid128_to_uint8_xint("0", "[303E00000000000000000000000004FB]", "127", "20")
+ self.bid128_to_uint8_xint("0", "[303E0000000000000000000000000505]", "128", "20")
+ self.bid128_to_uint8_xint("0", "[303E00000000000000000000000009FB]", "255", "20")
+ self.bid128_to_uint8_xint("0", "[303E0000000000000000000000000A05]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[303E0000000000000000000000000BBD]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint8_xint("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_uint8_xint("0", "[30400000000000000000000000000080]", "128", "00")
+ self.bid128_to_uint8_xint("0", "[30400000000000000000000000000081]", "129", "00")
+ self.bid128_to_uint8_xint("0", "[304000000000000000000000000000FF]", "255", "00")
+ self.bid128_to_uint8_xint("0", "[30400000000000000000000000000100]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[30400000000000000000000000000101]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint8_xint("0", "[30440000000000000000000000000003]", "128", "01")
+ self.bid128_to_uint8_xint("0", "4294967296", "128", "01")
+ self.bid128_to_uint8_xint("0", "5.05", "5", "20")
+ self.bid128_to_uint8_xint("0", "5.5", "5", "20")
+ self.bid128_to_uint8_xint("0", "[78000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[7c000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[7c003fffffffffff38c15b08ffffffff]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[7c003fffffffffff38c15b0affffffff]", "128", "01")
+ self.bid128_to_uint8_xint("0", "[7e000000000000000000000000000000]", "128", "01")
+ }
+
+ private func bid128_to_uint8_xint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .towardZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint8_xrnint() {
+ self.bid128_to_uint8_xrnint("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint8_xrnint("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint8_xrnint("0", "0.5", "0", "20")
+ self.bid128_to_uint8_xrnint("0", "1.0", "1", "00")
+ self.bid128_to_uint8_xrnint("0", "1073741824", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "257", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[2FFCF684DF56C3E01BC6C73200000000]", "0", "20")
+ self.bid128_to_uint8_xrnint("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint8_xrnint("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint8_xrnint("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint8_xrnint("0", "[30023E5E8B72E12C27CBA28640000000]", "126", "20")
+ self.bid128_to_uint8_xrnint("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_uint8_xrnint("0", "[30023EDCC331014EE85CEDACC0000000]", "128", "20")
+ self.bid128_to_uint8_xrnint("0", "[30023F1BDF10116048A5934000000000]", "128", "00")
+ self.bid128_to_uint8_xrnint("0", "[30023F5AFAEF2171A8EE38D340000000]", "128", "20")
+ self.bid128_to_uint8_xrnint("0", "[30023F9A16CE31830936DE6680000000]", "129", "00")
+ self.bid128_to_uint8_xrnint("0", "[30027DB98662029DD0B9DB5980000000]", "255", "00")
+ self.bid128_to_uint8_xrnint("0", "[30027DF8A24112AF310280ECC0000000]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[30027E37BE2022C0914B268000000000]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[30027E76D9FF32D1F193CC1340000000]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[30027EB5F5DE42E351DC71A680000000]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[300293E952CDA8B9AA44111E00000000]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[300294286EACB8CB0A8CB6B140000000]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint8_xrnint("0", "[303E0000000000000000000000000005]", "0", "20")
+ self.bid128_to_uint8_xrnint("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint8_xrnint("0", "[303E00000000000000000000000004F1]", "126", "20")
+ self.bid128_to_uint8_xrnint("0", "[303E00000000000000000000000004FB]", "128", "20")
+ self.bid128_to_uint8_xrnint("0", "[303E0000000000000000000000000505]", "128", "20")
+ self.bid128_to_uint8_xrnint("0", "[303E00000000000000000000000009FB]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[303E0000000000000000000000000A05]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[303E0000000000000000000000000BBD]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint8_xrnint("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_uint8_xrnint("0", "[30400000000000000000000000000080]", "128", "00")
+ self.bid128_to_uint8_xrnint("0", "[30400000000000000000000000000081]", "129", "00")
+ self.bid128_to_uint8_xrnint("0", "[304000000000000000000000000000FF]", "255", "00")
+ self.bid128_to_uint8_xrnint("0", "[30400000000000000000000000000100]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[30400000000000000000000000000101]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint8_xrnint("0", "[30440000000000000000000000000003]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "4294967296", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "5.05", "5", "20")
+ self.bid128_to_uint8_xrnint("0", "5.5", "6", "20")
+ self.bid128_to_uint8_xrnint("0", "[78000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[7c000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[7c003fffffffffff38c15b08ffffffff]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[7c003fffffffffff38c15b0affffffff]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[7e000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xrnint("0", "[8a4d8e841f35463a,998969443f4fea58]", "0", "20")
+ }
+
+ private func bid128_to_uint8_xrnint(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .toNearestOrEven, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_uint8_xrninta() {
+ self.bid128_to_uint8_xrninta("0", "[0001ed09bead87c0378d8e62ffffffff]", "0", "20")
+ self.bid128_to_uint8_xrninta("0", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_to_uint8_xrninta("0", "0.1", "0", "20")
+ self.bid128_to_uint8_xrninta("0", "0.5", "1", "20")
+ self.bid128_to_uint8_xrninta("0", "1.0", "1", "00")
+ self.bid128_to_uint8_xrninta("0", "1073741824", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "1", "1", "00")
+ self.bid128_to_uint8_xrninta("0", "257", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[2FFCF684DF56C3E01BC6C73200000000]", "1", "20")
+ self.bid128_to_uint8_xrninta("0", "[2FFDEC8B86EF679D76FC433D80000000]", "1", "20")
+ self.bid128_to_uint8_xrninta("0", "[2FFE314DC6448D9338C15B0A00000000]", "1", "00")
+ self.bid128_to_uint8_xrninta("0", "[2FFE49F4A966D45CD522088F00000000]", "2", "20")
+ self.bid128_to_uint8_xrninta("0", "[30023E5E8B72E12C27CBA28640000000]", "127", "20")
+ self.bid128_to_uint8_xrninta("0", "[30023E9DA751F13D8814481980000000]", "127", "00")
+ self.bid128_to_uint8_xrninta("0", "[30023EDCC331014EE85CEDACC0000000]", "128", "20")
+ self.bid128_to_uint8_xrninta("0", "[30023F1BDF10116048A5934000000000]", "128", "00")
+ self.bid128_to_uint8_xrninta("0", "[30023F5AFAEF2171A8EE38D340000000]", "129", "20")
+ self.bid128_to_uint8_xrninta("0", "[30023F9A16CE31830936DE6680000000]", "129", "00")
+ self.bid128_to_uint8_xrninta("0", "[30027DB98662029DD0B9DB5980000000]", "255", "00")
+ self.bid128_to_uint8_xrninta("0", "[30027DF8A24112AF310280ECC0000000]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[30027E37BE2022C0914B268000000000]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[30027E76D9FF32D1F193CC1340000000]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[30027EB5F5DE42E351DC71A680000000]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[300293E952CDA8B9AA44111E00000000]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[300294286EACB8CB0A8CB6B140000000]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[303A00000000000000000000000003E7]", "1", "20")
+ self.bid128_to_uint8_xrninta("0", "[303E0000000000000000000000000005]", "1", "20")
+ self.bid128_to_uint8_xrninta("0", "[303E000000000000000000000000000F]", "2", "20")
+ self.bid128_to_uint8_xrninta("0", "[303E00000000000000000000000004F1]", "127", "20")
+ self.bid128_to_uint8_xrninta("0", "[303E00000000000000000000000004FB]", "128", "20")
+ self.bid128_to_uint8_xrninta("0", "[303E0000000000000000000000000505]", "129", "20")
+ self.bid128_to_uint8_xrninta("0", "[303E00000000000000000000000009FB]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[303E0000000000000000000000000A05]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[303E0000000000000000000000000BBD]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[30400000000000000000000000000001]", "1", "00")
+ self.bid128_to_uint8_xrninta("0", "[3040000000000000000000000000007F]", "127", "00")
+ self.bid128_to_uint8_xrninta("0", "[30400000000000000000000000000080]", "128", "00")
+ self.bid128_to_uint8_xrninta("0", "[30400000000000000000000000000081]", "129", "00")
+ self.bid128_to_uint8_xrninta("0", "[304000000000000000000000000000FF]", "255", "00")
+ self.bid128_to_uint8_xrninta("0", "[30400000000000000000000000000100]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[30400000000000000000000000000101]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[3041ED09BEAD87C0378D8E6400000000]", "0", "00")
+ self.bid128_to_uint8_xrninta("0", "[30440000000000000000000000000003]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "4294967296", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "5.05", "5", "20")
+ self.bid128_to_uint8_xrninta("0", "[78000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[7c000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[7c003fffffffffff38c15b08ffffffff]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[7c003fffffffffff38c15b0affffffff]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[7e000000000000000000000000000000]", "128", "01")
+ self.bid128_to_uint8_xrninta("0", "[d779dcf61bb2b557,28b7045bd8b68c89]", "128", "01")
+ }
+
+ private func bid128_to_uint8_xrninta(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseUInt8(_expected, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ let result: UInt8 = arg0._toExactlyInt(rounding: .toNearestOrAwayFromZero, status: &status)
+ self.assertInt(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelToStringTests.swift b/Tests/DecimalTests/Intel - generated/IntelToStringTests.swift
new file mode 100644
index 0000000..56f8f57
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelToStringTests.swift
@@ -0,0 +1,145 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelToStringTests: XCTestCase, IntelMixin {
+
+ func test_bid32_to_string() {
+ self.bid32_to_string("0", "[0200000a]", "+1.0e-96", "00")
+ self.bid32_to_string("0", "[3200000a]", "+1.0", "00")
+ self.bid32_to_string("0", "[6018967f]", "+9.999999e-95", "00")
+ self.bid32_to_string("0", "[77f8967f]", "+9.999999e96", "00")
+ self.bid32_to_string("0", "[78000000]", "+Inf", "00")
+ self.bid32_to_string("0", "[78000200]", "+Inf", "00")
+ self.bid32_to_string("0", "[7c000000]", "+NaN", "00")
+ self.bid32_to_string("0", "[7c000200]", "+NaN", "00")
+ self.bid32_to_string("0", "[7e000000]", "+SNaN", "00")
+ self.bid32_to_string("0", "[7e000200]", "+SNaN", "00")
+ self.bid32_to_string("0", "[8200000a]", "-1.0e-96", "00")
+ self.bid32_to_string("0", "[b200000a]", "-1.0", "00")
+ self.bid32_to_string("0", "[e018967f]", "-9.999999e-95", "00")
+ self.bid32_to_string("0", "[f7f8967f]", "-9.999999e96", "00")
+ self.bid32_to_string("0", "[f8000000]", "-Inf", "00")
+ self.bid32_to_string("0", "[f8fff000]", "-Inf", "00")
+ self.bid32_to_string("0", "[fc000000]", "-NaN", "00")
+ self.bid32_to_string("0", "[fcfff000]", "-NaN", "00")
+ self.bid32_to_string("0", "[fe000000]", "-SNaN", "00")
+ self.bid32_to_string("0", "[fefff000]", "-SNaN", "00")
+ }
+
+ private func bid32_to_string(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Dummy assign 'status', so that the compiler does not complain.
+ status = DecimalStatus()
+
+ let result = String(arg0)
+ let resultIntel = self.toIntel_toString(arg0, result: result)
+ self.assertToString(Decimal32.self, resultIntel, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_to_string() {
+ self.bid64_to_string("0", "[31c0000000000037]", "+55E+0", "00")
+ self.bid64_to_string("0", "[64ff55cb7bb8be2b]", "+0E-239", "00")
+ self.bid64_to_string("0", "[69dbb75d7734cd9e]", "+0E-83", "00")
+ self.bid64_to_string("0", "[6ddd5f2bc961d9c6]", "+0E+45", "00")
+ self.bid64_to_string("0", "[7933324ba39af65d]", "+Inf", "00")
+ self.bid64_to_string("0", "[7c03ffffffffffff]", "+NaN", "00")
+ self.bid64_to_string("0", "[7e00000000000000]", "+SNaN", "00")
+ self.bid64_to_string("0", "[be20000000000014]", "-20E+99", "00")
+ self.bid64_to_string("0", "[ff9ef506fff9e3bf]", "-SNaN", "00")
+ self.bid64_to_string("0", "[ffdbb3ffaefefdff]", "-SNaN", "00")
+ self.bid64_to_string("3", "[f8f0000000000001]", "-Inf", "00")
+ self.bid64_to_string("3", "[fcf0000000000000]", "-NaN", "00")
+ }
+
+ private func bid64_to_string(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Dummy assign 'status', so that the compiler does not complain.
+ status = DecimalStatus()
+
+ let result = String(arg0)
+ let resultIntel = self.toIntel_toString(arg0, result: result)
+ self.assertToString(Decimal64.self, resultIntel, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_to_string() {
+ self.bid128_to_string("0", "[0001ed09bead87c0378d8e62ffffffff]", "+9999999999999999999999995705032703E-6176", "00")
+ self.bid128_to_string("0", "[0001ed09bead87c0378d8e64ffffffff]", "+0E-6176", "00")
+ self.bid128_to_string("0", "[30400000000000000000000000000010]", "+16E+0", "00")
+ self.bid128_to_string("0", "[60000000000000000000000000000000]", "+0E-6176", "00")
+ self.bid128_to_string("0", "[69dbb75d7734cd9e1234567890123456]", "+0E-1129", "00")
+ self.bid128_to_string("0", "[79003fffffffffff38c15b08ffffffff]", "+Inf", "00")
+ self.bid128_to_string("0", "[79100000000000000000000000000000]", "+Inf", "00")
+ self.bid128_to_string("0", "[7c003fffffffffff38c15b08ffffffff]", "+NaN", "00")
+ self.bid128_to_string("0", "[7c003fffffffffff38c15b0affffffff]", "+NaN", "00")
+ self.bid128_to_string("0", "[7e000000000000000000000000000000]", "+SNaN", "00")
+ self.bid128_to_string("0", "[7eff3fffffffffffffffffffffffffff]", "+SNaN", "00")
+ self.bid128_to_string("0", "[b0fa0000000000000000000001312d00]", "-20000000E+93", "00")
+ self.bid128_to_string("0", "[e0000000000000000000000000000001]", "-0E-6176", "00")
+ self.bid128_to_string("0", "[f9003fffffffffff38c15b08ffffffff]", "-Inf", "00")
+ self.bid128_to_string("1", "[0001ed09bead87c0378d8e62ffffffff]", "+9999999999999999999999995705032703E-6176", "00")
+ self.bid128_to_string("1", "[0001ed09bead87c0378d8e64ffffffff]", "+0E-6176", "00")
+ self.bid128_to_string("1", "[7c003fffffffffff38c15b08ffffffff]", "+NaN", "00")
+ self.bid128_to_string("1", "[7c003fffffffffff38c15b0affffffff]", "+NaN", "00")
+ self.bid128_to_string("2", "[0001ed09bead87c0378d8e62ffffffff]", "+9999999999999999999999995705032703E-6176", "00")
+ self.bid128_to_string("2", "[0001ed09bead87c0378d8e64ffffffff]", "+0E-6176", "00")
+ self.bid128_to_string("2", "[7c003fffffffffff38c15b08ffffffff]", "+NaN", "00")
+ self.bid128_to_string("2", "[7c003fffffffffff38c15b0affffffff]", "+NaN", "00")
+ self.bid128_to_string("3", "[0001ed09bead87c0378d8e62ffffffff]", "+9999999999999999999999995705032703E-6176", "00")
+ self.bid128_to_string("3", "[0001ed09bead87c0378d8e64ffffffff]", "+0E-6176", "00")
+ self.bid128_to_string("3", "[7c003fffffffffff38c15b08ffffffff]", "+NaN", "00")
+ self.bid128_to_string("3", "[7c003fffffffffff38c15b0affffffff]", "+NaN", "00")
+ self.bid128_to_string("3", "[fe003fffffffffffffffffffffffffff]", "-SNaN", "00")
+ self.bid128_to_string("4", "[0001ed09bead87c0378d8e62ffffffff]", "+9999999999999999999999995705032703E-6176", "00")
+ self.bid128_to_string("4", "[0001ed09bead87c0378d8e64ffffffff]", "+0E-6176", "00")
+ self.bid128_to_string("4", "[7c003fffffffffff38c15b08ffffffff]", "+NaN", "00")
+ self.bid128_to_string("4", "[7c003fffffffffff38c15b0affffffff]", "+NaN", "00")
+ }
+
+ private func bid128_to_string(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expectedStatus = self.parseStatus(_expectedStatus, file, line) else { return }
+
+ var status = DecimalStatus()
+ // Dummy assign 'status', so that the compiler does not complain.
+ status = DecimalStatus()
+
+ let result = String(arg0)
+ let resultIntel = self.toIntel_toString(arg0, result: result)
+ self.assertToString(Decimal128.self, resultIntel, expected, file, line)
+ self.assertStatus(status, expectedStatus, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelTotalOrderTests.swift b/Tests/DecimalTests/Intel - generated/IntelTotalOrderTests.swift
new file mode 100644
index 0000000..2e43df6
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelTotalOrderTests.swift
@@ -0,0 +1,611 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelTotalOrderTests: XCTestCase, IntelMixin {
+
+ func test_bid32_totalOrder() {
+ self.bid32_totalOrder("0", "[00000000]", "[21020082]", "1", "00")
+ self.bid32_totalOrder("0", "[00000001]", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "[00080001]", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "0E+89", "Infinity", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "[00000001]", "0", "00")
+ self.bid32_totalOrder("0", "1.0", "[00080001]", "0", "00")
+ self.bid32_totalOrder("0", "1.00", "1", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "-1.0", "0", "00")
+ self.bid32_totalOrder("0", "-1.0", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "-1.0e-96", "0", "00")
+ self.bid32_totalOrder("0", "1.0", "1.0e-96", "0", "00")
+ self.bid32_totalOrder("0", "1.0", "[6098967f]", "0", "00")
+ self.bid32_totalOrder("0", "1.0", "[60989680]", "0", "00")
+ self.bid32_totalOrder("0", "1.0", "[7c000000]", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "[7c8f423f]", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "[7c8f4240]", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "[7e100000]", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "[7e100100]", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "[7e8f423f]", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "[7e8f4240]", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "[80000001]", "0", "00")
+ self.bid32_totalOrder("0", "1.0", "-9.999999e-95", "0", "00")
+ self.bid32_totalOrder("0", "1.0", "9.999999e-95", "0", "00")
+ self.bid32_totalOrder("0", "1.0", "-9.999999e96", "0", "00")
+ self.bid32_totalOrder("0", "1.0", "9.999999e96", "1", "00")
+ self.bid32_totalOrder("0", "1.0E+91", "1.234567E+95", "1", "00")
+ self.bid32_totalOrder("0", "-1.0e-96", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "1.0e-96", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "1.0", "[fc100000]", "0", "00")
+ self.bid32_totalOrder("0", "1.0", "[fc100100]", "0", "00")
+ self.bid32_totalOrder("0", "1.0", "[fe000000]", "0", "00")
+ self.bid32_totalOrder("0", "1", "1.0", "0", "00")
+ self.bid32_totalOrder("0", "[1913a25c]", "[17b56781]", "0", "00")
+ self.bid32_totalOrder("0", "1E+89", "1E+90", "1", "00")
+ self.bid32_totalOrder("0", "[3f000000]", "[01000000]", "0", "00")
+ self.bid32_totalOrder("0", "[6098967f]", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "[60989680]", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "[78000000]", "[0a43704a]", "0", "00")
+ self.bid32_totalOrder("0", "[7c000000]", "1.0", "0", "00")
+ self.bid32_totalOrder("0", "[7c8f423f]", "1.0", "0", "00")
+ self.bid32_totalOrder("0", "[7c8f423f]", "[7e100000]", "0", "00")
+ self.bid32_totalOrder("0", "[7c8f423f]", "Infinity", "0", "00")
+ self.bid32_totalOrder("0", "[7c8f4240]", "1.0", "0", "00")
+ self.bid32_totalOrder("0", "[7e0afbfe]", "[7e000000]", "0", "00")
+ self.bid32_totalOrder("0", "[7e0efddf]", "[7e07fffd]", "0", "00")
+ self.bid32_totalOrder("0", "[7e100000]", "1.0", "0", "00")
+ self.bid32_totalOrder("0", "[7e100100]", "1.0", "0", "00")
+ self.bid32_totalOrder("0", "[7e8f423f]", "1.0", "0", "00")
+ self.bid32_totalOrder("0", "[7e8f4240]", "1.0", "0", "00")
+ self.bid32_totalOrder("0", "[80000001]", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "[90752206]", "[91045f9f]", "0", "00")
+ self.bid32_totalOrder("0", "-9.999999e-95", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "9.999999e-95", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "9.999999e96", "1.0", "0", "00")
+ self.bid32_totalOrder("0", "-9.999999e96", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "[e9ee807c]", "[f8000000]", "0", "00")
+ self.bid32_totalOrder("0", "[f8000000]", "[a7031841]", "1", "00")
+ self.bid32_totalOrder("0", "[fc000000]", "[fe000000]", "1", "00")
+ self.bid32_totalOrder("0", "[fc100000]", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "[fc100100]", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "[fe000000]", "1.0", "1", "00")
+ self.bid32_totalOrder("0", "[fe000000]", "[fe0de7ff]", "0", "00")
+ self.bid32_totalOrder("0", "[fe077e9f]", "[fe09ff9f]", "0", "00")
+ self.bid32_totalOrder("0", "[fe07ffea]", "[fe000000]", "1", "00")
+ self.bid32_totalOrder("0", "Infinity", "0E+89", "0", "00")
+ self.bid32_totalOrder("0", "Infinity", "NaN", "1", "00")
+ self.bid32_totalOrder("0", "[7e000000]", "[7e0b297f]", "1", "00")
+ self.bid32_totalOrder("0", "[7c0f423f]", "NaN", "0", "00")
+ self.bid32_totalOrder("0", "[7c000000]", "[7e000000]", "0", "00")
+ self.bid32_totalOrder("0", "[7e000000]", "[7c000000]", "1", "00")
+ self.bid32_totalOrder("0", "[fc000000]", "[fe000000]", "1", "00")
+ self.bid32_totalOrder("0", "[fe000000]", "[fc000000]", "0", "00")
+ self.bid32_totalOrder("0", "[7e000002]", "[7e000001]", "0", "00")
+ self.bid32_totalOrder("0", "[7c000001]", "[7c000002]", "1", "00")
+ self.bid32_totalOrder("0", "[fe000002]", "[fe000001]", "1", "00")
+ self.bid32_totalOrder("0", "[78000001]", "[78000002]", "1", "00")
+ self.bid32_totalOrder("0", "0", "1", "1", "00")
+ self.bid32_totalOrder("0", "-0", "-1", "0", "00")
+ self.bid32_totalOrder("0", "-1", "-0", "1", "00")
+ self.bid32_totalOrder("0", "-12", "-10", "1", "00")
+ self.bid32_totalOrder("0", "10", "12", "1", "00")
+ self.bid32_totalOrder("0", "-10", "-12", "0", "00")
+ self.bid32_totalOrder("0", "-2E+10", "-10", "1", "00")
+ self.bid32_totalOrder("0", "10", "2E+10", "1", "00")
+ self.bid32_totalOrder("0", "-10", "-2E+10", "0", "00")
+ self.bid32_totalOrder("0", "99", "1E+2", "1", "00")
+ self.bid32_totalOrder("0", "-99", "-1E+2", "0", "00")
+ self.bid32_totalOrder("0", "-101", "-1E+2", "1", "00")
+ self.bid32_totalOrder("0", "101", "1E+2", "0", "00")
+ self.bid32_totalOrder("0", "[77f89680]", "[77f89681]", "1", "00")
+ }
+
+ private func bid32_totalOrder(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isTotallyOrdered(belowOrEqualTo: arg1)
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid32_totalOrderMag() {
+ self.bid32_totalOrderMag("0", "[00000000]", "[2d63d55d]", "1", "00")
+ self.bid32_totalOrderMag("0", "[00000001]", "1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "[00080001]", "1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "[02080082]", "[00185004]", "0", "00")
+ self.bid32_totalOrderMag("0", "0E+89", "0E+90", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[00000001]", "0", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[00080001]", "0", "00")
+ self.bid32_totalOrderMag("0", "1.00", "1", "1", "00")
+ self.bid32_totalOrderMag("0", "-1.0", "1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "-1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "-1.0e-96", "0", "00")
+ self.bid32_totalOrderMag("0", "1.0", "1.0e-96", "0", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[6098967f]", "0", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[60989680]", "0", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[7c000000]", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[7c8f423f]", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[7c8f4240]", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[7e100000]", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[7e100100]", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[7e8f423f]", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[7e8f4240]", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[80000001]", "0", "00")
+ self.bid32_totalOrderMag("0", "1.0", "-9.999999e-95", "0", "00")
+ self.bid32_totalOrderMag("0", "1.0", "9.999999e-95", "0", "00")
+ self.bid32_totalOrderMag("0", "1.0", "-9.999999e96", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "9.999999e96", "1", "00")
+ self.bid32_totalOrderMag("0", "-1.0e-96", "1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0e-96", "1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[fc100000]", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[fc100100]", "1", "00")
+ self.bid32_totalOrderMag("0", "1.0", "[fe000000]", "1", "00")
+ self.bid32_totalOrderMag("0", "1", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[39800000]", "[08000000]", "0", "00")
+ self.bid32_totalOrderMag("0", "[4d6627c2]", "[00000000]", "0", "00")
+ self.bid32_totalOrderMag("0", "[6098967f]", "1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "[60989680]", "1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "[7c000000]", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[7c8f423f]", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[7c8f423f]", "[7e100000]", "0", "00")
+ self.bid32_totalOrderMag("0", "[7c8f423f]", "Infinity", "0", "00")
+ self.bid32_totalOrderMag("0", "[7c8f4240]", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[7e100000]", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[7e100100]", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[7e8f423f]", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[7e8f4240]", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[80000001]", "1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "[97f94c0c]", "[19a20ab1]", "1", "00")
+ self.bid32_totalOrderMag("0", "-9.999999e-95", "1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "9.999999e-95", "1.0", "1", "00")
+ self.bid32_totalOrderMag("0", "-9.999999e96", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "9.999999e96", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[bbaea547]", "[78000000]", "1", "00")
+ self.bid32_totalOrderMag("0", "[f8000000]", "[04421908]", "0", "00")
+ self.bid32_totalOrderMag("0", "[fc100000]", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[fc100100]", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[fe000000]", "1.0", "0", "00")
+ self.bid32_totalOrderMag("0", "[fe000000]", "[fe000000]", "1", "00")
+ self.bid32_totalOrderMag("0", "[fe0dedcf]", "[fe0affff]", "0", "00")
+ self.bid32_totalOrderMag("0", "[fe0effff]", "[fe000000]", "0", "00")
+ self.bid32_totalOrderMag("0", "Infinity", "NaN", "1", "00")
+ self.bid32_totalOrderMag("0", "[7c000000]", "[7e000000]", "0", "00")
+ self.bid32_totalOrderMag("0", "[7e000000]", "[7c000000]", "1", "00")
+ self.bid32_totalOrderMag("0", "[fc000000]", "[fe000000]", "0", "00")
+ self.bid32_totalOrderMag("0", "[fe000000]", "[fc000000]", "1", "00")
+ self.bid32_totalOrderMag("0", "[78000000]", "[78000000]", "1", "00")
+ self.bid32_totalOrderMag("0", "[f8000000]", "[f8000000]", "1", "00")
+ self.bid32_totalOrderMag("0", "[32800001]", "[2F8F4240]", "0", "00")
+ self.bid32_totalOrderMag("0", "[b2800001]", "[AF8F4240]", "0", "00")
+ self.bid32_totalOrderMag("0", "[7e000002]", "[7e000001]", "0", "00")
+ self.bid32_totalOrderMag("0", "[7c000001]", "[7c000002]", "1", "00")
+ self.bid32_totalOrderMag("0", "[78000001]", "[78000002]", "1", "00")
+ self.bid32_totalOrderMag("0", "101", "1E+2", "0", "00")
+ self.bid32_totalOrderMag("0", "99", "1E+2", "1", "00")
+ self.bid32_totalOrderMag("0", "1E+2", "101", "1", "00")
+ self.bid32_totalOrderMag("0", "1E+2", "99", "0", "00")
+ }
+
+ private func bid32_totalOrderMag(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal32(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let arg0Mag = arg0.magnitude
+ let arg1Mag = arg1.magnitude
+ let result = arg0Mag.isTotallyOrdered(belowOrEqualTo: arg1Mag)
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid64_totalOrder() {
+ self.bid64_totalOrder("0", "0", "-0", "0", "00")
+ self.bid64_totalOrder("0", "[0000000000000000]", "[0000000000000000]", "1", "00")
+ self.bid64_totalOrder("0", "[0000000000000000]", "[6aeb34ffd6033a6b]", "1", "00")
+ self.bid64_totalOrder("0", "[0006082180080050]", "[6dce1c55d77c6627]", "0", "00")
+ self.bid64_totalOrder("0", "[0010230100040000]", "[0000000000000000]", "0", "00")
+ self.bid64_totalOrder("0", "[0c3b000000000000]", "[be33a88e4eb91a55]", "0", "00")
+ self.bid64_totalOrder("0", "-0", "QNaN", "1", "00")
+ self.bid64_totalOrder("0", "0", "QNaN", "1", "00")
+ self.bid64_totalOrder("0", "0", "SNaN", "1", "00")
+ self.bid64_totalOrder("0", "1.0", "1", "1", "00")
+ self.bid64_totalOrder("0", "1", "1.0", "0", "00")
+ self.bid64_totalOrder("0", "[3c7e3b50324cdad4]", "[1f8869a841318bd3]", "0", "00")
+ self.bid64_totalOrder("0", "[3f60e6ce2fb54e99]", "[8560efb99fe1a25a]", "0", "00")
+ self.bid64_totalOrder("0", "[4151292dc7ddfb1f]", "[7bfffe6ecafbffff]", "1", "00")
+ self.bid64_totalOrder("0", "[41849debe6a63955]", "[dbffacb4c26fd3d7]", "0", "00")
+ self.bid64_totalOrder("0", "[44b806eafb78769d]", "[0640000000000000]", "0", "00")
+ self.bid64_totalOrder("0", "[4b6d62a46e996446]", "[e3c8c6341743c275]", "0", "00")
+ self.bid64_totalOrder("0", "[66e2cfdfe3bfbfdf]", "[e76a78fade4d5645]", "0", "00")
+ self.bid64_totalOrder("0", "[751e6e94d0717b7e]", "[2a1f1efd5d0ad7da]", "1", "00")
+ self.bid64_totalOrder("0", "[7bfb891c1f1ffc2f]", "[1af564ed868185c2]", "0", "00")
+ self.bid64_totalOrder("0", "[7dab90d3d035a79a]", "[7dfb854bdd6bbd27]", "1", "00")
+ self.bid64_totalOrder("0", "[7eff8406185cfc33]", "[7ff3dfdbb7dbccdf]", "0", "00")
+ self.bid64_totalOrder("0", "[7f6cb6613f7fcf9f]", "[7d4bbd7355a38753]", "1", "00")
+ self.bid64_totalOrder("0", "[7ffdfdfffbeb6fff]", "[7edb7be3d55e3ff6]", "1", "00")
+ self.bid64_totalOrder("0", "[7ffffffedff99ffb]", "[fddadb79ef5f5fff]", "0", "00")
+ self.bid64_totalOrder("0", "[8532eede32e2a8cf]", "[47080932e15557fb]", "1", "00")
+ self.bid64_totalOrder("0", "[9be87b086d79f76a]", "[fcf3f1f5adbde7ef]", "0", "00")
+ self.bid64_totalOrder("0", "[a2eb6743df3efd23]", "[49dce550ac84506e]", "1", "00")
+ self.bid64_totalOrder("0", "[a3267a003b7ab3de]", "[ba58fbd307145e22]", "0", "00")
+ self.bid64_totalOrder("0", "[afa2e30e0bbf5cbc]", "[a26ddb6b5f642f7e]", "1", "00")
+ self.bid64_totalOrder("0", "[c301c82408095502]", "[c1db421e000440e8]", "1", "00")
+ self.bid64_totalOrder("0", "[cc2ae74b8f509bd5]", "[cc84166baa1cff47]", "0", "00")
+ self.bid64_totalOrder("0", "[d10505fc78a67979]", "[9cc0000000000000]", "1", "00")
+ self.bid64_totalOrder("0", "[d9b8810fefc917b0]", "[44cd418c6d196c9f]", "1", "00")
+ self.bid64_totalOrder("0", "[e0c377cb6a1bfd75]", "[ec0b6505adc3dd15]", "0", "00")
+ self.bid64_totalOrder("0", "[e7f2d9d4efddf9ed]", "[9ecca8e8e2e6225b]", "1", "00")
+ self.bid64_totalOrder("0", "[f4dd3a17d84856c2]", "[efbed79af883dff7]", "1", "00")
+ self.bid64_totalOrder("0", "[f7ffdfffefbf7fff]", "[f7fffffffffaff7f]", "1", "00")
+ self.bid64_totalOrder("0", "[f8f48edf7b7eed66]", "[9828040808fe386d]", "1", "00")
+ self.bid64_totalOrder("0", "[fdedcae7dddedc7b]", "[fcf697bfb2f5be8d]", "0", "00")
+ self.bid64_totalOrder("0", "[ffbffd77ffdbbf6e]", "[fffeafdbfffef7ff]", "0", "00")
+ self.bid64_totalOrder("0", "[ffbffffffeffdfff]", "[ffffffffffffffff]", "1", "00")
+ self.bid64_totalOrder("0", "[ffffeffbffefbfff]", "[f4fe78fdf4e4e9d7]", "1", "00")
+ self.bid64_totalOrder("0", "[ffffffffffffffff]", "[fd9c97fbff77fff7]", "0", "00")
+ self.bid64_totalOrder("0", "-Infinity", "Infinity", "1", "00")
+ self.bid64_totalOrder("0", "Infinity", "SNaN", "1", "00")
+ self.bid64_totalOrder("0", "QNaN", "0", "0", "00")
+ self.bid64_totalOrder("0", "QNaN", "Infinity", "0", "00")
+ self.bid64_totalOrder("0", "[7c00000000000000]", "[7e00000000000000]", "0", "00")
+ self.bid64_totalOrder("0", "[7e00000000000000]", "[7c00000000000000]", "1", "00")
+ self.bid64_totalOrder("0", "[fc00000000000000]", "[fe00000000000000]", "1", "00")
+ self.bid64_totalOrder("0", "[fe00000000000000]", "[fc00000000000000]", "0", "00")
+ self.bid64_totalOrder("0", "[fc03000000000002]", "[fc03000000000001]", "1", "00")
+ self.bid64_totalOrder("0", "[7e03000000000001]", "[7e03000000000002]", "1", "00")
+ self.bid64_totalOrder("0", "+Inf", "[7800000000000001]", "1", "00")
+ self.bid64_totalOrder("0", "-2", "-Inf", "0", "00")
+ self.bid64_totalOrder("0", "+0E+2", "+0", "0", "00")
+ self.bid64_totalOrder("0", "-0", "-1.0", "0", "00")
+ self.bid64_totalOrder("0", "123", "124E+1", "1", "00")
+ self.bid64_totalOrder("0", "123E+20", "124E+1", "0", "00")
+ self.bid64_totalOrder("0", "124", "1E+20", "1", "00")
+ self.bid64_totalOrder("0", "-1E+14", "-10000E+10", "1", "00")
+ self.bid64_totalOrder("0", "-1E+14", "-10001E+10", "0", "00")
+ self.bid64_totalOrder("0", "1E+14", "10000E+10", "0", "00")
+ self.bid64_totalOrder("0", "1E+14", "10001E+10", "1", "00")
+ self.bid64_totalOrder("0", "-10000E+10", "-1E+14", "0", "00")
+ self.bid64_totalOrder("0", "-10001E+10", "-1E+14", "1", "00")
+ self.bid64_totalOrder("0", "10000E+10", "1E+14", "1", "00")
+ self.bid64_totalOrder("0", "10001E+10", "1E+14", "0", "00")
+ }
+
+ private func bid64_totalOrder(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isTotallyOrdered(belowOrEqualTo: arg1)
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid64_totalOrderMag() {
+ self.bid64_totalOrderMag("0", "[0000000000000000]", "[0000000000000000]", "1", "00")
+ self.bid64_totalOrderMag("0", "[0000000000000000]", "[d20670083d534a46]", "1", "00")
+ self.bid64_totalOrderMag("0", "0", "-0", "1", "00")
+ self.bid64_totalOrderMag("0", "[00483400205a0108]", "[add057004d852602]", "1", "00")
+ self.bid64_totalOrderMag("0", "[00b38b8003045514]", "[0200000200000010]", "1", "00")
+ self.bid64_totalOrderMag("0", "[0805627795f7eba4]", "[fff6fffffff7fffd]", "1", "00")
+ self.bid64_totalOrderMag("0", "[0b00940c0b1b4608]", "[fa41ef73c1309469]", "1", "00")
+ self.bid64_totalOrderMag("0", "[0e805bff31e759b3]", "[1ca72375d331f47e]", "1", "00")
+ self.bid64_totalOrderMag("0", "-0", "QNaN", "1", "00")
+ self.bid64_totalOrderMag("0", "0", "QNaN", "1", "00")
+ self.bid64_totalOrderMag("0", "0", "SNaN", "1", "00")
+ self.bid64_totalOrderMag("0", "1.0", "1", "1", "00")
+ self.bid64_totalOrderMag("0", "[1042838468a08140]", "[0000000000000000]", "0", "00")
+ self.bid64_totalOrderMag("0", "1", "1.0", "0", "00")
+ self.bid64_totalOrderMag("0", "[114c9d58a9875a64]", "[b7ee522b503e48ec]", "1", "00")
+ self.bid64_totalOrderMag("0", "[1ac0000000000000]", "[0ae3000000000000]", "1", "00")
+ self.bid64_totalOrderMag("0", "[41ea521fb46122c8]", "[c680b612e2260824]", "1", "00")
+ self.bid64_totalOrderMag("0", "[562c25bc1f510abe]", "[f0db2d59a451555a]", "0", "00")
+ self.bid64_totalOrderMag("0", "[6485f1b24ce8f132]", "[46a4d9ff4d79acc6]", "1", "00")
+ self.bid64_totalOrderMag("0", "[7de33f7afafffbe7]", "[ff3e7ecffaee79bb]", "0", "00")
+ self.bid64_totalOrderMag("0", "[7ebfbeccd7abf5fd]", "[f3a8462662a1b521]", "0", "00")
+ self.bid64_totalOrderMag("0", "[7ff7f7d77ff3955d]", "[ffffcfbfffffffff]", "1", "00")
+ self.bid64_totalOrderMag("0", "[7fff7fb3fff7fbff]", "[ffffbfdffffffffe]", "0", "00")
+ self.bid64_totalOrderMag("0", "[8019705df2d97759]", "[39f7cd4942b7e9bd]", "1", "00")
+ self.bid64_totalOrderMag("0", "[861f7326409d7e2f]", "[98b2ffef06945516]", "1", "00")
+ self.bid64_totalOrderMag("0", "[9760a805c4aca603]", "[690eb432257773e3]", "0", "00")
+ self.bid64_totalOrderMag("0", "[9cff4f9fbb20d24c]", "[c3904953ae1cae58]", "1", "00")
+ self.bid64_totalOrderMag("0", "[ae94a16fa3e37d1e]", "[c7474bda93dac462]", "1", "00")
+ self.bid64_totalOrderMag("0", "[b1c17d35c37c6403]", "[b0de5d7824d03b0b]", "0", "00")
+ self.bid64_totalOrderMag("0", "[d200000000000000]", "[eec1895edf539d95]", "1", "00")
+ self.bid64_totalOrderMag("0", "[df8dafd6481a0b9b]", "[f41933285dc060a0]", "0", "00")
+ self.bid64_totalOrderMag("0", "[ebb10b24d1cc0719]", "[c22aa1ef3bb5db78]", "1", "00")
+ self.bid64_totalOrderMag("0", "[ebfffbffffffffff]", "[6e97e7f87bc60295]", "1", "00")
+ self.bid64_totalOrderMag("0", "[eff968927d3c49e4]", "[923a2ad67a9ea634]", "0", "00")
+ self.bid64_totalOrderMag("0", "[f81696b10870a09a]", "[4de22fca6a2c3fa4]", "0", "00")
+ self.bid64_totalOrderMag("0", "[ff7b3ebefedc78fc]", "[ffb6ffff7f7ffff3]", "0", "00")
+ self.bid64_totalOrderMag("0", "-Infinity", "Infinity", "1", "00")
+ self.bid64_totalOrderMag("0", "Infinity", "SNaN", "1", "00")
+ self.bid64_totalOrderMag("0", "QNaN", "0", "0", "00")
+ self.bid64_totalOrderMag("0", "QNaN", "Infinity", "0", "00")
+ self.bid64_totalOrderMag("0", "[7c00000000000000]", "[7e00000000000000]", "0", "00")
+ self.bid64_totalOrderMag("0", "[7e00000000000000]", "[7c00000000000000]", "1", "00")
+ self.bid64_totalOrderMag("0", "[fc00000000000000]", "[fe00000000000000]", "0", "00")
+ self.bid64_totalOrderMag("0", "[fe00000000000000]", "[fc00000000000000]", "1", "00")
+ self.bid64_totalOrderMag("0", "[7800000000000000]", "[7800000000000000]", "1", "00")
+ self.bid64_totalOrderMag("0", "[f800000000000000]", "[f800000000000000]", "1", "00")
+ self.bid64_totalOrderMag("0", "[31C0000000000001]", "[2FE38D7EA4C68000]", "0", "00")
+ self.bid64_totalOrderMag("0", "[B1C0000000000001]", "[AFE38D7EA4C68000]", "0", "00")
+ self.bid64_totalOrderMag("0", "[7c03000000000001]", "[7c03000000000002]", "1", "00")
+ self.bid64_totalOrderMag("0", "Inf", "[7800000000000001]", "1", "00")
+ self.bid64_totalOrderMag("0", "0E+2", "0", "0", "00")
+ self.bid64_totalOrderMag("0", "1E+14", "10001E+10", "1", "00")
+ self.bid64_totalOrderMag("0", "10001E+10", "1E+14", "0", "00")
+ self.bid64_totalOrderMag("0", "1E+14", "10000E+10", "0", "00")
+ }
+
+ private func bid64_totalOrderMag(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let arg0Mag = arg0.magnitude
+ let arg1Mag = arg1.magnitude
+ let result = arg0Mag.isTotallyOrdered(belowOrEqualTo: arg1Mag)
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid128_totalOrder() {
+ self.bid128_totalOrder("0", "[0000000000000000,ffffffffffffffff]", "[0000000000000000,ffffffffffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[0000800001000200,028008416282930c]", "[0020008101001000,2020400c02040100]", "1", "00")
+ self.bid128_totalOrder("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_totalOrder("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[0004000020130048,25fa092c1e1ee6c8]", "[0000400000000000,0cd15632d0300103]", "1", "00")
+ self.bid128_totalOrder("0", "[004a580447021010,018f6f3bbd0d2b88]", "[0084008281a14083,fb7dfdffff77ffff]", "1", "00")
+ self.bid128_totalOrder("0", "[0d000c1446001003,fff5ffffffffffff]", "[08002e0002094414,78f0040000120004]", "0", "00")
+ self.bid128_totalOrder("0", "0", "-Infinity", "0", "00")
+ self.bid128_totalOrder("0", "0", "QNaN", "1", "00")
+ self.bid128_totalOrder("0", "1.0", "1", "1", "00")
+ self.bid128_totalOrder("0", "1", "1.0", "0", "00")
+ self.bid128_totalOrder("0", "[133a000000000000,0000000000000000]", "[2ade000000000000,0000000000000000]", "1", "00")
+ self.bid128_totalOrder("0", "[14802824191014a1,779d8daf351dfbee]", "[144d08441c682a02,8020066102104124]", "0", "00")
+ self.bid128_totalOrder("0", "[185f5fa24d678c66,b29a0597043e64fc]", "[6400200200000000,2fffddfefff3e34e]", "0", "00")
+ self.bid128_totalOrder("0", "[246b0a5e3e2f0324,8efd6c2a05a2acea]", "[278b7fd44a9b967a,a629ff533ce0677a]", "1", "00")
+ self.bid128_totalOrder("0", "[32696fa0fd49eb8d,f7318b060050df56]", "[bac66c3159b9fa68,2e68dc8db7f63bd8]", "0", "00")
+ self.bid128_totalOrder("0", "[3a28583606597e4c,b960d8f0ddd43c6b]", "[34fe000000000000,0000000000000000]", "0", "00")
+ self.bid128_totalOrder("0", "[53ae5da8aee8ba2e,8dfcb7418d496b79]", "[bbc600ff3db059c2,1ee248bdb3d15c2c]", "0", "00")
+ self.bid128_totalOrder("0", "[58ba441288e818be,bc6faf765177bea8]", "[c391142a9af6d586,7fd21fc8b8784561]", "0", "00")
+ self.bid128_totalOrder("0", "[6afe92605d9dbde4,1406dc372a61e19d]", "[6e67cd1242f59aad,8bc82ab07f0ec0b7]", "1", "00")
+ self.bid128_totalOrder("0", "[7bef7f677f3afb5f,1348491fb70fa9ca]", "[4244302914040e41,f9485447f5f41a0b]", "0", "00")
+ self.bid128_totalOrder("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_totalOrder("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_totalOrder("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_totalOrder("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_totalOrder("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[7f38682481572d59,0b67b82e477cd7de]", "[7fd6165ccd7e3941,55c06abeb13d164a]", "0", "00")
+ self.bid128_totalOrder("0", "[7f92e6cefdbfdbf5,acfef76ffcf9fdfe]", "[7c634f77456b79ab,c09a0440490302b8]", "1", "00")
+ self.bid128_totalOrder("0", "[7fbddf7fe0f7fcef,0000000000000044]", "[5538785dc81d8f21,69efe5ec26c4cc1c]", "0", "00")
+ self.bid128_totalOrder("0", "[7fbfffffffffefff,dfbffeffdbff3fd3]", "[7e77797e867ffee6,fe47ae03f239dee9]", "1", "00")
+ self.bid128_totalOrder("0", "[7fdcd2f4deacbfad,83fef3574ff7cf17]", "[7edfbefe5d3fff9f,df96ca7b7356e9ea]", "0", "00")
+ self.bid128_totalOrder("0", "[84805120d24f0803,97907a7f05a0db1a]", "[df7fbff77f7bbdbf,16baefbfbfffbffd]", "0", "00")
+ self.bid128_totalOrder("0", "[9321daf777a7c9f7,45012202bd800100]", "[c0a4e6830729b80d,0000008000000900]", "0", "00")
+ self.bid128_totalOrder("0", "[95c6a7ea4b25d7cf,6c8e2de8dcd31341]", "[0000000000100000,6086088f8a13d900]", "1", "00")
+ self.bid128_totalOrder("0", "[b4ed28f193776566,50ede266cec5a024]", "[8500081120808040,9fa00800188f365c]", "1", "00")
+ self.bid128_totalOrder("0", "[b78f9a2ad65fd8af,c2fdac509f2bdc67]", "[b5e738ae96c4c8f6,974cd11cdcd27cc8]", "1", "00")
+ self.bid128_totalOrder("0", "[bfbffeff4fffff9f,ffffffffffffcfff]", "[efef96ffddfffd9e,6c964cc486963418]", "1", "00")
+ self.bid128_totalOrder("0", "[cb79c5a0de13eb98,e8aecf850026cca6]", "[3cfba2a583390d06,4d0547c14266f9e3]", "1", "00")
+ self.bid128_totalOrder("0", "[ddf2cc200b3b8941,afcf7ffef1ffff79]", "[fbdfb7ffa99fff7b,93bbb3f53fec6fc6]", "0", "00")
+ self.bid128_totalOrder("0", "[dee13a4422840ac7,080a21756dda1bfe]", "[a5ae000000000000,0000000000000000]", "1", "00")
+ self.bid128_totalOrder("0", "[e0a24502dd0784c2,364c30b8f85ed837]", "[a7b1e02861f61979,68317a09807c26cf]", "0", "00")
+ self.bid128_totalOrder("0", "[f77ffffff7ffb9f7,ffffffffffffffff]", "[feef85516b0b4d6c,2de2a3a4a70855ca]", "0", "00")
+ self.bid128_totalOrder("0", "[f800000000000000,0000000000000000]", "[4c094a8ea1ef7251,af241ec9d388942a]", "1", "00")
+ self.bid128_totalOrder("0", "[fbeeb7ff032f7ff7,0000200012010000]", "[e7efd96f747f796f,ffffffffffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[fdf2ff2dff6bbf7a,2818000001000250]", "[ff2c8f8b4b10c818,5c26005e04e5b158]", "1", "00")
+ self.bid128_totalOrder("0", "[feffeffffedefdff,bffb587655e7a90e]", "[ff6edfefffefffdd,a0002655100208c8]", "1", "00")
+ self.bid128_totalOrder("0", "[ffeffbffbfbacdff,529db3ce9947f86b]", "[1bfe5c2f9969b3f7,bfe3fbfdffdffe7f]", "1", "00")
+ self.bid128_totalOrder("0", "[ffffffff7fdffdff,4cb54af98e997b8a]", "[fffdfefdfdfff777,0100000000008084]", "1", "00")
+ self.bid128_totalOrder("0", "[ffffffffffffffff,ffefdfffffffff9f]", "[ffbc1f7fbbddcc7f,0150880281258400]", "0", "00")
+ self.bid128_totalOrder("0", "Infinity", "0", "0", "00")
+ self.bid128_totalOrder("0", "Infinity", "QNaN", "1", "00")
+ self.bid128_totalOrder("0", "-Infinity", "SNaN", "1", "00")
+ self.bid128_totalOrder("0", "Infinity", "SNaN", "1", "00")
+ self.bid128_totalOrder("0", "QNaN", "0", "0", "00")
+ self.bid128_totalOrder("0", "QNaN", "-Infinity", "0", "00")
+ self.bid128_totalOrder("0", "SNaN", "QNaN", "1", "00")
+ self.bid128_totalOrder("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b09ffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[fc00314dc6448d9338c15b09ffffffff]", "[fc00314dc6448d9338c15b09ffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b0a00000000]", "0", "00")
+ self.bid128_totalOrder("0", "[fc00314dc6448d9338c15b09ffffffff]", "[fc00314dc6448d9338c15b0a00000000]", "1", "00")
+ self.bid128_totalOrder("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c00314dc6448d9338c15b09ffffffff]", "1", "00")
+ self.bid128_totalOrder("0", "[fc00314dc6448d9338c15b0a00000000]", "[fc00314dc6448d9338c15b09ffffffff]", "0", "00")
+ self.bid128_totalOrder("0", "[7c000000000000000000000000000000]", "[7e000000000000000000000000000000]", "0", "00")
+ self.bid128_totalOrder("0", "[7e000000000000000000000000000000]", "[7c000000000000000000000000000000]", "1", "00")
+ self.bid128_totalOrder("0", "[fc000000000000000000000000000000]", "[fe000000000000000000000000000000]", "1", "00")
+ self.bid128_totalOrder("0", "[fe000000000000000000000000000000]", "[fc000000000000000000000000000000]", "0", "00")
+ self.bid128_totalOrder("0", "11E+3", "8E+2", "0", "00")
+ self.bid128_totalOrder("0", "-12323E-21", "-21324E-122", "1", "00")
+ self.bid128_totalOrder("0", "1E+40", "100000000000000000000E+20", "0", "00")
+ self.bid128_totalOrder("0", "100000000000000000000E+20", "1E+40", "1", "00")
+ self.bid128_totalOrder("0", "-1E+40", "-100000000000000000000E+20", "1", "00")
+ self.bid128_totalOrder("0", "-100000000000000000000E+20", "-1E+40", "0", "00")
+ self.bid128_totalOrder("0", "+Inf", "+Inf", "1", "00")
+ self.bid128_totalOrder("0", "[78000000000000000000000000000001]", "+Inf", "1", "00")
+ self.bid128_totalOrder("0", "1", "+Inf", "1", "00")
+ self.bid128_totalOrder("0", "-0", "-0E-2", "1", "00")
+ self.bid128_totalOrder("0", "1E+40", "9999999999999999999E+20", "0", "00")
+ self.bid128_totalOrder("0", "1E+40", "100000000000000000001E+20", "1", "00")
+ self.bid128_totalOrder("0", "-1E+40", "-9999999999999999999E+20", "1", "00")
+ self.bid128_totalOrder("0", "-1E+40", "-100000000000000000001E+20", "0", "00")
+ self.bid128_totalOrder("0", "9999999999999999999E+20", "1E+40", "1", "00")
+ self.bid128_totalOrder("0", "100000000000000000001E+20", "1E+40", "0", "00")
+ self.bid128_totalOrder("0", "-9999999999999999999E+20", "-1E+40", "0", "00")
+ self.bid128_totalOrder("0", "-100000000000000000001E+20", "-1E+40", "1", "00")
+ self.bid128_totalOrder("0", "1E+20", "1000000000000000E+5", "0", "00")
+ self.bid128_totalOrder("0", "-1E+20", "-1000000000000000E+5", "1", "00")
+ self.bid128_totalOrder("0", "-1E+20", "-1000000000000001E+5", "0", "00")
+ self.bid128_totalOrder("0", "1E+20", "1000000000000001E+5", "1", "00")
+ self.bid128_totalOrder("0", "1000000000000000E+5", "1E+20", "1", "00")
+ self.bid128_totalOrder("0", "-1000000000000000E+5", "-1E+20", "0", "00")
+ self.bid128_totalOrder("0", "-1000000000000001E+5", "-1E+20", "1", "00")
+ self.bid128_totalOrder("0", "1000000000000001E+5", "1E+20", "0", "00")
+ self.bid128_totalOrder("0", "-99999999999999999999999E+20", "-999999999999999999999999999999E+1", "1", "00")
+ self.bid128_totalOrder("0", "1E+1", "1E+35", "1", "00")
+ }
+
+ private func bid128_totalOrder(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let result = arg0.isTotallyOrdered(belowOrEqualTo: arg1)
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_bid128_totalOrderMag() {
+ self.bid128_totalOrderMag("0", "[0000000000000000,ffffffffffffffff]", "[0000000000000000,ffffffffffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_totalOrderMag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[0001ed09bead87c0378d8e62ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[0001ed09bead87c0378d8e64ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "0", "-0", "1", "00")
+ self.bid128_totalOrderMag("0", "[0028314020110011,e6ac6b687fdf8799]", "[0000508709422280,cffbffd796feef77]", "0", "00")
+ self.bid128_totalOrderMag("0", "[003fbc5db19556c4,7f5c8cd6a1b1f29f]", "[007c01b21f5380be,1a0a082210006c07]", "1", "00")
+ self.bid128_totalOrderMag("0", "[0210a24480458100,581bf32f8507f4cb]", "[9dce33bbbd6a92f1,302ddfeacd6c884e]", "1", "00")
+ self.bid128_totalOrderMag("0", "[088dda260a6cc577,fffeffffffeffffd]", "[0002000003814020,fffbdb57fabe5e73]", "0", "00")
+ self.bid128_totalOrderMag("0", "1.0", "1", "1", "00")
+ self.bid128_totalOrderMag("0", "1", "1.0", "0", "00")
+ self.bid128_totalOrderMag("0", "[276a000000000000,0000000000000000]", "[be5753c0543a6cf9,c8d5b1e8301dadec]", "1", "00")
+ self.bid128_totalOrderMag("0", "[2a129da1c2c8ab57,c05bf2f3a3dd6c79]", "[24b76ab1cf5b1ccf,7bdb02f454ec5262]", "0", "00")
+ self.bid128_totalOrderMag("0", "[3550000000000000,0000000000000000]", "[d47d8d9d12923a2f,df4548763768b5c4]", "1", "00")
+ self.bid128_totalOrderMag("0", "[4000280084800001,adeaa717a9cb1212]", "[bfdba7ce3f6fefbd,b81fe6de106e659d]", "0", "00")
+ self.bid128_totalOrderMag("0", "[4dd2000000000000,0000000000000000]", "[ce0c000000000000,0000000000000000]", "1", "00")
+ self.bid128_totalOrderMag("0", "[5169449868718a6a,c0159130231f8508]", "[d1ffd1569cfa3483,e96b8cbb20bf3378]", "1", "00")
+ self.bid128_totalOrderMag("0", "[5b52000000000000,0000000000000000]", "[7e00147c43f054b1,ad3a93204a1da3d9]", "1", "00")
+ self.bid128_totalOrderMag("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_totalOrderMag("0", "[7c003fffffffffff38c15b08ffffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_totalOrderMag("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[7c003fffffffffff38c15b08ffffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e62ffffffff]", "0", "00")
+ self.bid128_totalOrderMag("0", "[7c003fffffffffff38c15b0affffffff]", "[0001ed09bead87c0378d8e64ffffffff]", "0", "00")
+ self.bid128_totalOrderMag("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b08ffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[7c003fffffffffff38c15b0affffffff]", "[7c003fffffffffff38c15b0affffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[82190be94470063f,10401000c0508100]", "[82247014e98cc58c,01162860c1040200]", "1", "00")
+ self.bid128_totalOrderMag("0", "[86269a7979ca2d87,4978b5044e274c0a]", "[d5b8b907c86dbdcb,94841026237637ed]", "1", "00")
+ self.bid128_totalOrderMag("0", "[89052df8fc1fffe8,b97605d51a4d31d8]", "[ca41a994068522df,cc95eb1728935769]", "1", "00")
+ self.bid128_totalOrderMag("0", "[affafda2ee0927d4,40a387e5f875866b]", "[7800000000000000,0000000000000000]", "1", "00")
+ self.bid128_totalOrderMag("0", "[bc161ffd96c45d0d,615042fd53173352]", "[eb7de35af4f967bb,fdff5dfb6deffdfe]", "0", "00")
+ self.bid128_totalOrderMag("0", "[be53197ffac646e2,ef8ba7eecb1f798b]", "[fadc2fd79bc3de5b,7ef77ff5f7f78b7f]", "1", "00")
+ self.bid128_totalOrderMag("0", "[cd648f28071ceffd,84e53b0e64b782fb]", "[d5d831cbf0718403,2fe43caf13be00bb]", "1", "00")
+ self.bid128_totalOrderMag("0", "[d75ffb7b77efff1d,b1440e2a480d018a]", "[f3151396fee635a0,02bb952491cb9fbb]", "0", "00")
+ self.bid128_totalOrderMag("0", "[da9eb397b9a8a0e7,667c064baeeb9399]", "[a168cfa21b0d15db,8b8d052f84264e13]", "0", "00")
+ self.bid128_totalOrderMag("0", "[edf53ff1f7fcf3a5,1000821c0b10266c]", "[ff3ded162f7635f7,0818580950004148]", "1", "00")
+ self.bid128_totalOrderMag("0", "[eeaf6da8b4958a35,3e6b3e71cdf8871c]", "[42e6362eb8e491c5,9901200038910e58]", "1", "00")
+ self.bid128_totalOrderMag("0", "[efffeffbf7ffffff,f7ef5ffeddf9defa]", "[3ffffff7fffff7ff,84084b013e452495]", "1", "00")
+ self.bid128_totalOrderMag("0", "[fa56994806d37cc8,5af4e64953940c4f]", "[5e0e5ebce21eb6bb,feefdefd3b6ff3ef]", "0", "00")
+ self.bid128_totalOrderMag("0", "[fc002aa35b8e7285,75fa419351eef6dc]", "[b22837a2d039a8bf,438738bbbbc1eb45]", "0", "00")
+ self.bid128_totalOrderMag("0", "[fef7fefffaffffff,fffffeffeffedaff]", "[03de304a7b96c292,3f63a7c7fffb6fdf]", "0", "00")
+ self.bid128_totalOrderMag("0", "[ff3af6697ebbffff,3ed6db7d1db085ee]", "[7c5f158e134285fb,cb700965f8b4ea03]", "1", "00")
+ self.bid128_totalOrderMag("0", "[ff3fdffcfeffdbbe,cbfe75e3bded5b74]", "[fe4feef72fc7fff6,1ecc263683f984d3]", "1", "00")
+ self.bid128_totalOrderMag("0", "[fffad7edfe7f3336,0900100008013144]", "[ffffffffffffffff,4fb1ce6acb373b57]", "0", "00")
+ self.bid128_totalOrderMag("0", "[ffffffffffffffff,3008004900200008]", "[fffeabffffffffff,95a2105266a63869]", "1", "00")
+ self.bid128_totalOrderMag("0", "Infinity", "SNaN", "1", "00")
+ self.bid128_totalOrderMag("0", "QNaN", "-0", "0", "00")
+ self.bid128_totalOrderMag("0", "QNaN", "-Infinity", "0", "00")
+ self.bid128_totalOrderMag("0", "SNaN", "-0", "0", "00")
+ self.bid128_totalOrderMag("0", "SNaN", "0", "0", "00")
+ self.bid128_totalOrderMag("0", "SNaN", "-2.3565784324E0", "0", "00")
+ self.bid128_totalOrderMag("0", "SNaN", "-Infinity", "0", "00")
+ self.bid128_totalOrderMag("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b09ffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[fc00314dc6448d9338c15b09ffffffff]", "[fc00314dc6448d9338c15b09ffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[7c00314dc6448d9338c15b09ffffffff]", "[7c00314dc6448d9338c15b0a00000000]", "0", "00")
+ self.bid128_totalOrderMag("0", "[fc00314dc6448d9338c15b09ffffffff]", "[fc00314dc6448d9338c15b0a00000000]", "0", "00")
+ self.bid128_totalOrderMag("0", "[7c00314dc6448d9338c15b0a00000000]", "[7c00314dc6448d9338c15b09ffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[fc00314dc6448d9338c15b0a00000000]", "[fc00314dc6448d9338c15b09ffffffff]", "1", "00")
+ self.bid128_totalOrderMag("0", "[7c000000000000000000000000000000]", "[7e000000000000000000000000000000]", "0", "00")
+ self.bid128_totalOrderMag("0", "[7e000000000000000000000000000000]", "[7c000000000000000000000000000000]", "1", "00")
+ self.bid128_totalOrderMag("0", "[fc000000000000000000000000000000]", "[fe000000000000000000000000000000]", "0", "00")
+ self.bid128_totalOrderMag("0", "[fe000000000000000000000000000000]", "[fc000000000000000000000000000000]", "1", "00")
+ self.bid128_totalOrderMag("0", "[78000000000000000000000000000000]", "[78000000000000000000000000000000]", "1", "00")
+ self.bid128_totalOrderMag("0", "[f8000000000000000000000000000000]", "[f8000000000000000000000000000000]", "1", "00")
+ self.bid128_totalOrderMag("0", "[30400000000000000000000000000001]", "[2FFE314DC6448D9338C15B0A00000000]", "0", "00")
+ self.bid128_totalOrderMag("0", "[b0400000000000000000000000000001]", "[AFFE314DC6448D9338C15B0A00000000]", "0", "00")
+ self.bid128_totalOrderMag("0", "[78000000000000000000000000000001]", "+Inf", "1", "00")
+ self.bid128_totalOrderMag("0", "1E+40", "9999999999999999999E+20", "0", "00")
+ self.bid128_totalOrderMag("0", "1E+40", "100000000000000000001E+20", "1", "00")
+ self.bid128_totalOrderMag("0", "9999999999999999999E+20", "1E+40", "1", "00")
+ self.bid128_totalOrderMag("0", "100000000000000000001E+20", "1E+40", "0", "00")
+ self.bid128_totalOrderMag("0", "1E+20", "1000000000000000E+5", "0", "00")
+ self.bid128_totalOrderMag("0", "1E+20", "1000000000000001E+5", "1", "00")
+ self.bid128_totalOrderMag("0", "1000000000000000E+5", "1E+20", "1", "00")
+ self.bid128_totalOrderMag("0", "1000000000000001E+5", "1E+20", "0", "00")
+ self.bid128_totalOrderMag("0", "1E+40", "100000000000000000000E+20", "0", "00")
+ self.bid128_totalOrderMag("0", "100000000000000000000E+20", "1E+40", "1", "00")
+ }
+
+ private func bid128_totalOrderMag(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseInt32(_expected, file, line) else { return }
+
+ let arg0Mag = arg0.magnitude
+ let arg1Mag = arg1.magnitude
+ let result = arg0Mag.isTotallyOrdered(belowOrEqualTo: arg1Mag)
+ self.assertBool(result, expected, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/IntelUnaryTests.swift b/Tests/DecimalTests/Intel - generated/IntelUnaryTests.swift
new file mode 100644
index 0000000..11c725b
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/IntelUnaryTests.swift
@@ -0,0 +1,136 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class IntelUnaryTests: XCTestCase, IntelMixin {
+
+ func test_bid32_negate() {
+ self.bid32_negate("0", "[00000001]", "[80000001]", "00")
+ self.bid32_negate("0", "[00080001]", "[80080001]", "00")
+ self.bid32_negate("0", "-1.0", "[3200000a]", "00")
+ self.bid32_negate("0", "1.0", "[b200000a]", "00")
+ self.bid32_negate("0", "-1.0e-96", "[0200000a]", "00")
+ self.bid32_negate("0", "1.0e-96", "[8200000a]", "00")
+ self.bid32_negate("0", "[6098967f]", "[e098967f]", "00")
+ self.bid32_negate("0", "[60989680]", "[e0989680]", "00")
+ self.bid32_negate("0", "[7c000000]", "[fc000000]", "00")
+ self.bid32_negate("0", "[7c8f423f]", "[fc8f423f]", "00")
+ self.bid32_negate("0", "[7c8f4240]", "[fc8f4240]", "00")
+ self.bid32_negate("0", "[7e100000]", "[fe100000]", "00")
+ self.bid32_negate("0", "[7e100100]", "[fe100100]", "00")
+ self.bid32_negate("0", "[7e8f423f]", "[fe8f423f]", "00")
+ self.bid32_negate("0", "[7e8f4240]", "[fe8f4240]", "00")
+ self.bid32_negate("0", "[80000001]", "[00000001]", "00")
+ self.bid32_negate("0", "-9.999999e-95", "[6018967f]", "00")
+ self.bid32_negate("0", "9.999999e-95", "[e018967f]", "00")
+ self.bid32_negate("0", "-9.999999e96", "[77f8967f]", "00")
+ self.bid32_negate("0", "9.999999e96", "[f7f8967f]", "00")
+ self.bid32_negate("0", "[fc100000]", "[7c100000]", "00")
+ self.bid32_negate("0", "[fc100100]", "[7c100100]", "00")
+ self.bid32_negate("0", "[fe000000]", "[7e000000]", "00")
+ }
+
+ private func bid32_negate(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal32(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+
+ let result1 = -arg0
+ self.assertEqual(result1, expected, .fuzzyStatus, file, line)
+
+ var result2 = arg0
+ result2.negate()
+ self.assertEqual(result2, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid64_negate() {
+ self.bid64_negate("0", "-0", "[31c0000000000000]", "00")
+ self.bid64_negate("0", "0", "[b1c0000000000000]", "00")
+ self.bid64_negate("0", "[0bd1000000000000]", "[8bd1000000000000]", "00")
+ self.bid64_negate("0", "[0fcf000000000000]", "[8fcf000000000000]", "00")
+ self.bid64_negate("0", "[13c0000000000000]", "[93c0000000000000]", "00")
+ self.bid64_negate("0", "[286e30609a2e0627]", "[a86e30609a2e0627]", "00")
+ self.bid64_negate("0", "[454b948762d28008]", "[c54b948762d28008]", "00")
+ self.bid64_negate("0", "[51d48f690517f435]", "[d1d48f690517f435]", "00")
+ self.bid64_negate("0", "[61e2cf8004a62830]", "[e1e2cf8004a62830]", "00")
+ self.bid64_negate("0", "[9e592e1cd58718c1]", "[1e592e1cd58718c1]", "00")
+ self.bid64_negate("0", "[b080000000000000]", "[3080000000000000]", "00")
+ self.bid64_negate("0", "[b7ef8416f3c99d8b]", "[37ef8416f3c99d8b]", "00")
+ self.bid64_negate("0", "[d4acd4c449d27624]", "[54acd4c449d27624]", "00")
+ self.bid64_negate("0", "Infinity", "[f800000000000000]", "00")
+ self.bid64_negate("0", "QNaN", "[fc00000000000000]", "00")
+ self.bid64_negate("0", "SNaN", "[fe00000000000000]", "00")
+ }
+
+ private func bid64_negate(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result1 = -arg0
+ self.assertEqual(result1, expected, .fuzzyStatus, file, line)
+
+ var result2 = arg0
+ result2.negate()
+ self.assertEqual(result2, expected, .fuzzyStatus, file, line)
+ }
+
+ func test_bid128_negate() {
+ self.bid128_negate("0", "[0001ed09bead87c0378d8e62ffffffff]", "[8001ed09bead87c0378d8e62ffffffff]", "00")
+ self.bid128_negate("0", "[0001ed09bead87c0378d8e64ffffffff]", "[8001ed09bead87c0378d8e64ffffffff]", "00")
+ self.bid128_negate("0", "-0", "[30400000000000000000000000000000]", "00")
+ self.bid128_negate("0", "0", "[b0400000000000000000000000000000]", "00")
+ self.bid128_negate("0", "[126fdbaf02bceaee,d9697b435c361fe1]", "[926fdbaf02bceaeed9697b435c361fe1]", "00")
+ self.bid128_negate("0", "[2b237eb316d839ca,2d37d68b0227c11e]", "[ab237eb316d839ca2d37d68b0227c11e]", "00")
+ self.bid128_negate("0", "[4e1c2958e3bd4c51,6f86468008d2aa28]", "[ce1c2958e3bd4c516f86468008d2aa28]", "00")
+ self.bid128_negate("0", "[50d3b7f263af5b88,b87a6768ec8b46d0]", "[d0d3b7f263af5b88b87a6768ec8b46d0]", "00")
+ self.bid128_negate("0", "[50d9e61cdd280bd8,e25a31953ffc0a48]", "[d0d9e61cdd280bd8e25a31953ffc0a48]", "00")
+ self.bid128_negate("0", "[7c003fffffffffff38c15b08ffffffff]", "[fc003fffffffffff38c15b08ffffffff]", "00")
+ self.bid128_negate("0", "[7c003fffffffffff38c15b0affffffff]", "[fc003fffffffffff38c15b0affffffff]", "00")
+ self.bid128_negate("0", "[8daa55a8f5cff6db,55b5bea4a37b8a72]", "[0daa55a8f5cff6db55b5bea4a37b8a72]", "00")
+ self.bid128_negate("0", "[9b147225df5ff554,350ecd34592da44a]", "[1b147225df5ff554350ecd34592da44a]", "00")
+ self.bid128_negate("0", "[9e477b02c3805ef4,b738f98b244817dd]", "[1e477b02c3805ef4b738f98b244817dd]", "00")
+ self.bid128_negate("0", "[a21e1edbb763cb70,4d680be7caaddd1a]", "[221e1edbb763cb704d680be7caaddd1a]", "00")
+ self.bid128_negate("0", "[aa1a04dcb7d4ea0f,8363e10e1240d936]", "[2a1a04dcb7d4ea0f8363e10e1240d936]", "00")
+ self.bid128_negate("0", "[fffffffffeffffba,b0086298e0a00010]", "[7ffffffffeffffbab0086298e0a00010]", "00")
+ self.bid128_negate("0", "-Infinity", "[78000000000000000000000000000000]", "00")
+ self.bid128_negate("0", "Infinity", "[f8000000000000000000000000000000]", "00")
+ self.bid128_negate("0", "QNaN", "[fc000000000000000000000000000000]", "00")
+ self.bid128_negate("0", "SNaN", "[fe000000000000000000000000000000]", "00")
+ }
+
+ private func bid128_negate(
+ _ _rounding: String,
+ _ _arg0: String,
+ _ _expected: String,
+ _ _expectedStatus: String,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result1 = -arg0
+ self.assertEqual(result1, expected, .fuzzyStatus, file, line)
+
+ var result2 = arg0
+ result2.negate()
+ self.assertEqual(result2, expected, .fuzzyStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - generated/README.md b/Tests/DecimalTests/Intel - generated/README.md
new file mode 100644
index 0000000..b0d46be
--- /dev/null
+++ b/Tests/DecimalTests/Intel - generated/README.md
@@ -0,0 +1,2 @@
+All of the files in this directory were automatically generated.
+See README in the repository root for details.
diff --git a/Tests/DecimalTests/Intel - helpers/IntelConstants.swift b/Tests/DecimalTests/Intel - helpers/IntelConstants.swift
new file mode 100755
index 0000000..9029e05
--- /dev/null
+++ b/Tests/DecimalTests/Intel - helpers/IntelConstants.swift
@@ -0,0 +1,30 @@
+/// `DecimalFloatingPointRoundingRule.toNearestOrEven`
+let BID_ROUNDING_TO_NEAREST: Int32 = 0
+/// `DecimalFloatingPointRoundingRule.down`
+let BID_ROUNDING_DOWN: Int32 = 1
+/// `DecimalFloatingPointRoundingRule.up`
+let BID_ROUNDING_UP: Int32 = 2
+/// `DecimalFloatingPointRoundingRule.towardZero`
+let BID_ROUNDING_TO_ZERO: Int32 = 3
+/// `DecimalFloatingPointRoundingRule.toNearestOrAwayFromZero`
+let BID_ROUNDING_TIES_AWAY: Int32 = 4
+
+// Status
+let BID_INVALID_EXCEPTION: Int32 = 1
+let BID_DENORMAL_EXCEPTION: Int32 = 2
+let BID_ZERO_DIVIDE_EXCEPTION: Int32 = 4
+let BID_OVERFLOW_EXCEPTION: Int32 = 8
+let BID_UNDERFLOW_EXCEPTION: Int32 = 16
+let BID_INEXACT_EXCEPTION: Int32 = 32
+
+// Floating point class
+let BID_CLASS_SIGNALING_NAN: Int32 = 0
+let BID_CLASS_QUIET_NAN: Int32 = 1
+let BID_CLASS_NEGATIVE_INFINITY: Int32 = 2
+let BID_CLASS_NEGATIVE_NORMAL: Int32 = 3
+let BID_CLASS_NEGATIVE_SUBNORMAL: Int32 = 4
+let BID_CLASS_NEGATIVE_ZERO: Int32 = 5
+let BID_CLASS_POSITIVE_ZERO: Int32 = 6
+let BID_CLASS_POSITIVE_SUBNORMAL: Int32 = 7
+let BID_CLASS_POSITIVE_NORMAL: Int32 = 8
+let BID_CLASS_POSITIVE_INFINITY: Int32 = 9
diff --git a/Tests/DecimalTests/Intel - helpers/IntelMixin+Assert.swift b/Tests/DecimalTests/Intel - helpers/IntelMixin+Assert.swift
new file mode 100644
index 0000000..d2e97d4
--- /dev/null
+++ b/Tests/DecimalTests/Intel - helpers/IntelMixin+Assert.swift
@@ -0,0 +1,431 @@
+import XCTest
+@testable import Decimal
+
+// swiftlint:disable switch_case_alignment
+// swiftlint:disable function_default_parameter_at_end
+
+enum IntelEqualMode {
+ /// COMPARE_FUZZY_STATUS
+ ///
+ /// ```
+ /// expected_status != *pfpsf
+ /// check64 (R64, Q64) // return a == b ? 0 : 1
+ /// i1 != i2
+ /// Qi64 != qi64
+ /// R64_1 != B64
+ /// ```
+ case fuzzyStatus
+ /// COMPARE_EQUAL_STATUS
+ ///
+ /// ```
+ /// check64 (R64, Q64)
+ /// BIDECIMAL_CALL2_NORND (bid64_quiet_not_equal, Q64, R64);
+ /// expected_status != *pfpsf
+ /// ```
+ case equalStatus
+ /// COMPARE_RELATIVE_ERROR
+ ///
+ /// ```
+ /// check64_rel(R64, Q64)
+ /// (expected_status&trans_flags_mask) != (*pfpsf&trans_flags_mask)
+ /// ```
+ case relativeError
+}
+
+extension IntelMixin {
+
+ func assertEqual(
+ _ lhs: Decimal32,
+ _ rhs: Decimal32,
+ _ mode: IntelEqualMode,
+ ulp: Double? = nil,
+ rounding: DecimalFloatingPointRoundingRule? = nil,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String = ""
+ ) {
+ func ulpMax(rounding: DecimalFloatingPointRoundingRule) -> Double {
+ switch rounding {
+ /* 0 */ case .toNearestOrEven: return 0.5
+ /* 2 */ case .up: return 1.01
+ /* 1 */ case .down: return 1.01
+ /* 3 */ case .towardZero: return 1.01
+ /* 4 */ case .toNearestOrAwayFromZero: return 0.5
+ }
+ }
+
+ self.assertEqual(lhs, rhs, mode, ulp, rounding, ulpMax(rounding:), message, file, line)
+ }
+
+ func assertEqual(
+ _ lhs: Decimal64,
+ _ rhs: Decimal64,
+ _ mode: IntelEqualMode,
+ ulp: Double? = nil,
+ rounding: DecimalFloatingPointRoundingRule? = nil,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String = ""
+ ) {
+ func ulpMax(rounding: DecimalFloatingPointRoundingRule) -> Double {
+ switch rounding {
+ /* 0 */ case .toNearestOrEven: return 0.55
+ /* 2 */ case .up: return 1.05
+ /* 1 */ case .down: return 1.05
+ /* 3 */ case .towardZero: return 1.05
+ /* 4 */ case .toNearestOrAwayFromZero: return 0.55
+ }
+ }
+
+ self.assertEqual(lhs, rhs, mode, ulp, rounding, ulpMax(rounding:), message, file, line)
+ }
+
+ func assertEqual(
+ _ lhs: Decimal128,
+ _ rhs: Decimal128,
+ _ mode: IntelEqualMode,
+ ulp: Double? = nil,
+ rounding: DecimalFloatingPointRoundingRule? = nil,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String = ""
+ ) {
+ func ulpMax(rounding: DecimalFloatingPointRoundingRule) -> Double {
+ switch rounding {
+ /* 0 */ case .toNearestOrEven: return 2.0
+ /* 2 */ case .up: return 5.0
+ /* 1 */ case .down: return 5.0
+ /* 3 */ case .towardZero: return 5.0
+ /* 4 */ case .toNearestOrAwayFromZero: return 2.0
+ }
+ }
+
+ self.assertEqual(lhs, rhs, mode, ulp, rounding, ulpMax(rounding:), message, file, line)
+ }
+
+ private func assertEqual(
+ _ lhs: T,
+ _ rhs: T,
+ _ mode: IntelEqualMode,
+ _ ulp: Double?,
+ _ rounding: DecimalFloatingPointRoundingRule?,
+ _ getUlpMax: (DecimalFloatingPointRoundingRule) -> Double,
+ _ message: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ // If they are equal according to our NaN notion then here is nothing else to do here.
+ if self.isEqualNaN(lhs, rhs) {
+ return
+ }
+
+ var ulp = ulp
+
+ switch mode {
+ case .fuzzyStatus:
+ // else if (restype == OP_DEC64 && cmp == CMP_FUZZYSTATUS) {
+ // if (
+ // expected_status != *pfpsf
+ // || check64 (R64, Q64) // return a == b ? 0 : 1
+ // || i1 != i2
+ // || Qi64 != qi64
+ // || R64_1 != B64
+ // )
+ // print_mismatch (cmp);
+ // }
+ XCTAssertEqual(lhs.bid, rhs.bid, "\(lhs) != \(rhs) (BID) " + message, file: file, line: line)
+
+ case .equalStatus:
+ // else if (restype == OP_DEC64 && cmp == CMP_EQUALSTATUS) {
+ // int c;
+ // unsigned int tmp_pfpsf = *pfpsf;
+ // BIDECIMAL_CALL2_NORND (bid64_quiet_not_equal, c, Q64, R64);
+ //
+ // if (
+ // expected_status != tmp_pfpsf
+ // ||
+ // (
+ // check64 (R64, Q64) // return a == b ? 0 : 1
+ // &&
+ // c // bid64_quiet_not_equal(a, b)
+ // )
+ // )
+ // print_mismatch (cmp);
+ // }
+ // TODO: [assertEqual] bid equality?
+ XCTAssertEqual(lhs, rhs, message, file: file, line: line)
+
+ case .relativeError:
+ // else if (restype == OP_DEC64 && cmp == CMP_RELATIVEERR) {
+ // if (
+ // (expected_status&trans_flags_mask) != (*pfpsf&trans_flags_mask)
+ // || check64_rel(R64, Q64)
+ // )
+ // print_mismatch (cmp);
+ // }
+ ulp = ulp ?? 0.0
+ }
+
+ if let ulp = ulp {
+ guard let rounding = rounding else {
+ preconditionFailure("Rounding argument is required when asserting relative equality.")
+ }
+
+ let ulpMax = getUlpMax(rounding)
+ self.assertRelativeEquality(lhs, rhs, ulp: ulp, ulpMax: ulpMax, message, file, line)
+ }
+ }
+
+ func assertRelativeEquality(
+ _ lhs: T,
+ _ rhs: T,
+ ulp: Double,
+ ulpMax: Double,
+ _ message: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ let message = message.isEmpty ? "ulp" : message + "- ulp"
+
+ func unpack(_ d: T) -> T.FiniteUnpack? {
+ if d._isInfiniteOrNaN { return nil }
+ return d._unpackFiniteOrZero()
+ }
+
+ func quantizeAndUnpack(_ a: T, _ b: T) -> T.FiniteUnpack? {
+ var status = DecimalStatus()
+ let q = a._quantize(other: b, rounding: .towardZero, status: &status)
+
+ XCTAssert(
+ status.isEmpty,
+ message + ": error when quantize(\(a), \(b)): \(status).",
+ file: file,
+ line: line
+ )
+ let u = unpack(q)
+ XCTAssertNotNil(
+ u,
+ message + ": unable to unpack quantize(\(a), \(b)).",
+ file: file,
+ line: line
+ )
+
+ return u
+ }
+
+ // 'ulp' for infinity/NaN does not make sense.
+ guard let lhsUnpack = unpack(lhs),
+ let rhsUnpack = unpack(rhs) else {
+ return
+ }
+
+ // We need to quantize to get equal exponent.
+ var lhsQuantUnpack = lhsUnpack
+ var rhsQuantUnpack = rhsUnpack
+
+ if lhsUnpack.exponent < rhsUnpack.exponent {
+ guard let r1 = quantizeAndUnpack(lhs, rhs) else { return }
+ lhsQuantUnpack = r1
+ } else if lhsUnpack.exponent > rhsUnpack.exponent {
+ guard let r2 = quantizeAndUnpack(rhs, lhs) else { return }
+ rhsQuantUnpack = r2
+ }
+
+ let lhsSig = lhsQuantUnpack.significand.canonical
+ let rhsSig = rhsQuantUnpack.significand.canonical
+
+ // Significand is unsigned, be careful to not go <0.
+ let diffInt = lhsSig > rhsSig ? lhsSig - rhsSig : rhsSig - lhsSig
+ var diff = Double(diffInt).magnitude
+
+ if lhs < rhs {
+ diff *= -1
+ }
+
+ let ulpResult = (diff + ulp).magnitude
+ XCTAssertLessThanOrEqual(ulpResult, ulpMax, message, file: file, line: line)
+ }
+
+ func assertStatus(
+ _ lhs: DecimalStatus,
+ _ rhs: DecimalStatus,
+ _ mode: IntelEqualMode,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ switch mode {
+ case .fuzzyStatus,
+ .equalStatus:
+ XCTAssertEqual(lhs, rhs, file: file, line: line)
+
+ case .relativeError:
+ // unsigned int trans_flags_mask = 0x05;
+ let mask: DecimalStatus = .isInvalidOperation | .isDivisionByZero
+ let l = lhs & mask
+ let r = rhs & mask
+ XCTAssertEqual(l, r, file: file, line: line)
+ }
+ }
+
+ func assertToString(
+ _ t: T.Type,
+ _ result: String,
+ _ expected: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ // Intel pseudo-code:
+ //
+ // if strcmp(func, "bid32_to_string") == 0:
+ // if *op1 == '[':
+ // A32 = a32 = parse_hex_32(op1+1)
+ // istr1 = bid32_to_string(A32)
+ // else:
+ // A32 = a32 = bid32_from_string(op1)
+ // istr1 = op1
+ //
+ // if *res == '[':
+ // R32 = q32 = parse_hex_32(res+1)
+ // rstr = bid32_to_string(R32)
+ // else:
+ // R32 = q32 = bid32_from_string(res)
+ // rstr = res
+ //
+ // convstr = bid32_to_string(A32)
+ // Q32 = bid32_from_string(convstr)
+ //
+ // if (R32 != Q32)
+ // print_mismatch (cmp);
+
+ guard let Q32: T = self.parseDecimal(result, file, line, "parse result") else { return }
+ guard let R32: T = self.parseDecimal(expected, file, line, "parse expected") else { return }
+
+ // If they are equal according to our NaN notion then here is nothing else to do here.
+ if self.isEqualNaN(Q32, R32) {
+ return
+ }
+
+ // If only one of them is Nan (or they are different types of NaN)
+ // then we can use default compare (NaN are never equal to anything).
+ XCTAssertEqual(Q32, R32, "\(result) vs \(expected)", file: file, line: line)
+ }
+
+ func assertFloatingPointClass(
+ _ lhs: FloatingPointClassification,
+ _ rhs: Int32,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ let rhsClass: FloatingPointClassification
+
+ switch rhs {
+ case BID_CLASS_SIGNALING_NAN: rhsClass = .signalingNaN
+ case BID_CLASS_QUIET_NAN: rhsClass = .quietNaN
+ case BID_CLASS_NEGATIVE_INFINITY: rhsClass = .negativeInfinity
+ case BID_CLASS_NEGATIVE_NORMAL: rhsClass = .negativeNormal
+ case BID_CLASS_NEGATIVE_SUBNORMAL: rhsClass = .negativeSubnormal
+ case BID_CLASS_NEGATIVE_ZERO: rhsClass = .negativeZero
+ case BID_CLASS_POSITIVE_ZERO: rhsClass = .positiveZero
+ case BID_CLASS_POSITIVE_SUBNORMAL: rhsClass = .positiveSubnormal
+ case BID_CLASS_POSITIVE_NORMAL: rhsClass = .positiveNormal
+ case BID_CLASS_POSITIVE_INFINITY: rhsClass = .positiveInfinity
+ default:
+ preconditionFailure("Unknown decimal floating point class: \(rhs).")
+ }
+
+ XCTAssertEqual(lhs, rhsClass, file: file, line: line)
+ }
+
+ func assertBool(
+ _ lhs: Bool,
+ _ rhs: Int32,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ let rhsBool = self.isTrue(rhs)
+ XCTAssertEqual(lhs, rhsBool, file: file, line: line)
+ }
+
+ func assertNotBool(
+ _ lhs: Bool,
+ _ rhs: Int32,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ let rhsBool = self.isTrue(rhs)
+ XCTAssertNotEqual(lhs, rhsBool, file: file, line: line)
+ }
+
+ func assertInt(
+ _ lhs: T,
+ _ rhs: T,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String = ""
+ ) {
+ XCTAssertEqual(lhs, rhs, message, file: file, line: line)
+ }
+
+ func assertBinaryFloatingPoint(
+ _ lhs: T,
+ _ rhs: T,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String = ""
+ ) {
+ // If they are equal according to our NaN notion then here is nothing else to do here.
+ if self.isEqualNaN(lhs, rhs) {
+ return
+ }
+
+ XCTAssertEqual(lhs, rhs, message, file: file, line: line)
+ }
+
+ func assertSign(
+ _ lhs: FloatingPointSign,
+ _ rhs: Int32,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ let rhsSign: FloatingPointSign = self.isTrue(rhs) ? .minus : .plus
+ XCTAssertEqual(lhs, rhsSign, file: file, line: line)
+ }
+
+ private func isTrue(_ n: Int32) -> Bool {
+ return n != 0
+ }
+
+ // MARK: - NaN
+
+ private typealias NaN = (
+ sign: FloatingPointSign,
+ isQuietNaN: Bool,
+ isSignalingNaN: Bool,
+ payload: T
+ )
+
+ private func isEqualNaN(_ lhs: T, _ rhs: T) -> Bool {
+ guard lhs.isNaN && rhs.isNaN else { return false }
+ let l: NaN = (lhs.sign, lhs.isQuietNaN, lhs.isSignalingNaN, 0)
+ let r: NaN = (rhs.sign, rhs.isQuietNaN, rhs.isSignalingNaN, 0)
+ return self.isEqualNaN(lhs: l, rhs: r)
+ }
+
+ private func isEqualNaN(
+ _ lhs: T,
+ _ rhs: T
+ ) -> Bool {
+ guard lhs.isNaN && rhs.isNaN else { return false }
+ let l: NaN = (lhs.sign, lhs.isQuietNaN, lhs.isSignalingNaN, lhs._unpackNaN().canonical)
+ let r: NaN = (rhs.sign, rhs.isQuietNaN, rhs.isSignalingNaN, rhs._unpackNaN().canonical)
+ return self.isEqualNaN(lhs: l, rhs: r)
+ }
+
+ private func isEqualNaN(lhs: NaN, rhs: NaN) -> Bool {
+ let isQuietEqual = lhs.isQuietNaN && rhs.isQuietNaN
+ let isSignalingEqual = lhs.isSignalingNaN && rhs.isSignalingNaN
+ let isSignEqual = lhs.sign == rhs.sign
+ let isPayloadEqual = lhs.payload == rhs.payload
+ return (isQuietEqual || isSignalingEqual) && isSignEqual && isPayloadEqual
+ }
+}
diff --git a/Tests/DecimalTests/Intel - helpers/IntelMixin+ConvertToIntel.swift b/Tests/DecimalTests/Intel - helpers/IntelMixin+ConvertToIntel.swift
new file mode 100644
index 0000000..115d198
--- /dev/null
+++ b/Tests/DecimalTests/Intel - helpers/IntelMixin+ConvertToIntel.swift
@@ -0,0 +1,148 @@
+import XCTest
+@testable import Decimal
+
+// Sometimes Swift and Intel have different semantic for a given operation.
+// This code converts Swift result to Intel result.
+extension IntelMixin {
+
+ func toIntel_toString(
+ _ arg0: T,
+ result: String
+ ) -> String {
+ // Intel does not support nan payload
+ if result.contains("nan"), let parenIndex = result.lastIndex(of: "(") {
+ let noPayload = result[..(
+ _ arg0: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ status: inout DecimalStatus,
+ result: T?
+ ) -> T {
+ if let result = result {
+ return result
+ }
+
+ // In Swift parsing failure is 'nil', in Intel 'NaN' with sign.
+ let first = arg0.first { !$0.isWhitespace }
+ let isMinus = first == "-"
+ let signMask = isMinus ? T.signMask : 0
+ return T(canonical: signMask | T.nanQuietMask)
+ }
+
+ func toIntel_decimalToDecimal(
+ _ arg0: Src,
+ result: Dst,
+ status: inout DecimalStatus
+ ) -> Dst {
+ // In Intel: sNaN -> qNaN + InvalidOperation
+ // In Swift: sNaN -> sNaN
+ if arg0._isSignalingNaN && result._isSignalingNaN {
+ status.set(.isInvalidOperation)
+ let preserveMask = ~Dst.nanSignalingMask
+ let bid = (result.bid & preserveMask) | Dst.nanQuietMask
+ return Dst(unchecked: bid)
+ }
+
+ return result
+ }
+
+ func toIntel_initFromDecimalEncoding(expected: T) -> T {
+ // Intel returns trash after the NaN bits. Clear them.
+ if expected._isNaN {
+ let keep = T.signMask | T.nanSignalingMask | T.nanPayloadMask
+ return T(unchecked: expected.bid & keep)
+ }
+
+ return expected
+ }
+
+ func toIntel_round(status: inout DecimalStatus) {
+ // Swift
+ // We implement 'roundToIntegralExact' which signals 'isInexact'.
+ // IEEE 754
+ // 5.9 Details of operations to round a floating-point datum to integral value
+ // These operations shall not signal any exception except for signaling NaN
+ // input.
+ status.clear(.isInexact)
+ }
+
+ func toIntel_scaleB(
+ _ arg0: T,
+ _ exponent: Int,
+ result: T,
+ status: inout DecimalStatus
+ ) -> T {
+ if arg0._isSignalingNaN && result._isSignalingNaN && !status.isInvalidOperation {
+ // Remove signaling flag
+ status.set(.isInvalidOperation)
+ let signaling = T.nanSignalingMask ^ T.nanQuietMask
+ let bid = result.bid & ~signaling
+ return T(unchecked: bid)
+ }
+
+ return result
+ }
+
+ func toIntel_logB(_ arg0: T, result: Int) -> Int32 {
+ if arg0._isInfinite && result == Int.max { return Int32.max }
+ if arg0._isNaN && result == Int.max { return Int32.min }
+ if arg0._isZero && result == Int.min { return Int32.min }
+ return Int32(result)
+ }
+
+ typealias IntelFrexp = (exponent: Int32, significand: T)
+
+ func toIntel_frexp(
+ _ arg0: T,
+ exponent: Int,
+ significand: T
+ ) -> IntelFrexp {
+ let intelExponent: Int32 = {
+ if arg0._isInfinite && exponent == Int.max { return 0 }
+ if arg0._isNaN && exponent == Int.max { return 0 }
+ if arg0._isZero && exponent == Int.min { return 0 }
+ return Int32(exponent) + 1
+ }()
+
+ let intelSignificand: T = {
+ let copySign = arg0.bid & T.signMask
+
+ if arg0._isSignalingNaN && significand._isSignalingNaN {
+ return T(canonical: copySign | T.nanQuietMask)
+ }
+
+ let withSign = T(unchecked: copySign | (significand.bid & ~T.signMask))
+
+ if arg0._isNaN && significand._isNaN { return withSign }
+ if arg0._isZero && arg0._isZero { return withSign }
+ if arg0._isInfinite && significand._isInfinite { return withSign }
+
+ // Basically: exponent -= 1
+ let exponentShift: Int
+ let significandMask: T.BID
+
+ if significand._isSet(T.combinationHighBits11Mask) {
+ exponentShift = T.exponentShift_11
+ significandMask = T.combinationHighBits11Mask | T.significandMask_11
+ } else {
+ exponentShift = T.exponentShift_00_01_10
+ significandMask = T.significandMask_00_01_10
+ }
+
+ let oldExponent = (significand.bid >> exponentShift) & T.exponentMask
+ let newExponent = (oldExponent - 1) << exponentShift
+ assert(oldExponent != 0)
+
+ let copySignificand = significand.bid & significandMask
+ return T(canonical: copySign | newExponent | copySignificand)
+ }()
+
+ return (intelExponent, intelSignificand)
+ }
+}
diff --git a/Tests/DecimalTests/Intel - helpers/IntelMixin+Parse.swift b/Tests/DecimalTests/Intel - helpers/IntelMixin+Parse.swift
new file mode 100644
index 0000000..90c252a
--- /dev/null
+++ b/Tests/DecimalTests/Intel - helpers/IntelMixin+Parse.swift
@@ -0,0 +1,443 @@
+import XCTest
+@testable import Decimal
+
+// MARK: - Decimal
+
+extension IntelMixin {
+
+ func parseDecimal32(_ s: String, _ file: StaticString, _ line: UInt) -> Decimal32? {
+ return self.parseDecimal(s, file, line)
+ }
+
+ func parseDecimal64(_ s: String, _ file: StaticString, _ line: UInt) -> Decimal64? {
+ return self.parseDecimal(s, file, line)
+ }
+
+ func parseDecimal128(_ s: String, _ file: StaticString, _ line: UInt) -> Decimal128? {
+ return self.parseDecimal(s, file, line)
+ }
+
+ func parseDecimal(
+ _ s: String,
+ _ file: StaticString,
+ _ line: UInt,
+ _ comment: String = ""
+ ) -> T? {
+ if s.hasPrefix("[") {
+ if let bid = self.parseHexInsideBrackets(T.BID.self, s) {
+ return T(unchecked: bid)
+ }
+
+ XCTFail("Unable to parse \(T.self) from: \(s). \(comment)", file: file, line: line)
+ return nil
+ }
+
+ var status = DecimalStatus()
+ if let d = T._parse(s, rounding: .toNearestOrEven, status: &status) {
+ return d
+ }
+
+ let lower = s.lowercased()
+ if lower == "qnan" || lower == "null" {
+ return T.nan
+ }
+
+ XCTFail("Unable to parse \(T.self) from: \(s). \(comment)", file: file, line: line)
+ return nil
+ }
+
+ func parseDenselyPackedDecimal32(_ s: String, _ file: StaticString, _ line: UInt) -> UInt32? {
+ return self.parseDenselyPackedDecimal(s, file, line)
+ }
+
+ func parseDenselyPackedDecimal64(_ s: String, _ file: StaticString, _ line: UInt) -> UInt64? {
+ return self.parseDenselyPackedDecimal(s, file, line)
+ }
+
+ func parseDenselyPackedDecimal128(_ s: String, _ file: StaticString, _ line: UInt) -> UInt128? {
+ return self.parseDenselyPackedDecimal(s, file, line)
+ }
+
+ func parseDenselyPackedDecimal(
+ _ s: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) -> T? {
+ if let hex = self.parseHexInsideBrackets(T.self, s) {
+ return hex
+ }
+
+ // Predefined outputs for some weird inputs.
+ let lower = s.lowercased()
+
+ if lower == "1e-102" {
+ return T.zero
+ }
+
+ XCTFail("Unable to parse DenselyPackedDecimal\(T.bitWidth) from: \(s).", file: file, line: line)
+ return nil
+ }
+}
+
+// MARK: - Int
+
+// Unsigned integer that is one of the Intel operands.
+private protocol IntelUnsignedInteger: FixedWidthInteger {
+ associatedtype Signed: FixedWidthInteger
+ init(bitPattern: Signed)
+}
+
+extension UInt8: IntelUnsignedInteger {}
+extension UInt16: IntelUnsignedInteger {}
+extension UInt32: IntelUnsignedInteger {}
+extension UInt64: IntelUnsignedInteger {}
+
+extension IntelMixin {
+
+ func parseInt(_ s: String, _ file: StaticString, _ line: UInt) -> Int? {
+ return self.parseFixedWidthInt(s, file, line)
+ }
+
+ func parseInt8(_ s: String, _ file: StaticString, _ line: UInt) -> Int8? {
+ return self.parseFixedWidthInt(s, file, line)
+ }
+
+ func parseInt16(_ s: String, _ file: StaticString, _ line: UInt) -> Int16? {
+ return self.parseFixedWidthInt(s, file, line)
+ }
+
+ func parseInt32(_ s: String, _ file: StaticString, _ line: UInt) -> Int32? {
+ return self.parseFixedWidthInt(s, file, line)
+ }
+
+ func parseInt64(_ s: String, _ file: StaticString, _ line: UInt) -> Int64? {
+ return self.parseFixedWidthInt(s, file, line)
+ }
+
+ func parseUInt8(_ s: String, _ file: StaticString, _ line: UInt) -> UInt8? {
+ return self.parseUnsignedFixedWidthInt(s, file, line)
+ }
+
+ func parseUInt16(_ s: String, _ file: StaticString, _ line: UInt) -> UInt16? {
+ return self.parseUnsignedFixedWidthInt(s, file, line)
+ }
+
+ func parseUInt32(_ s: String, _ file: StaticString, _ line: UInt) -> UInt32? {
+ return self.parseUnsignedFixedWidthInt(s, file, line)
+ }
+
+ func parseUInt64(_ s: String, _ file: StaticString, _ line: UInt) -> UInt64? {
+ return self.parseUnsignedFixedWidthInt(s, file, line)
+ }
+
+ private func parseFixedWidthInt(
+ _ s: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) -> T? {
+ if let hex = self.parseHexInsideBrackets(T.self, s) {
+ return hex
+ }
+
+ if let int = T(s) {
+ return int
+ }
+
+ if let predefined: T = self.getPredefinedInt(s) {
+ return predefined
+ }
+
+ XCTFail("Unable to parse \(T.self) from \(s).", file: file, line: line)
+ return nil
+ }
+
+ private func parseUnsignedFixedWidthInt(
+ _ s: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) -> T? {
+ if let hex = self.parseHexInsideBrackets(T.self, s) {
+ return hex
+ }
+
+ if let uint = T(s) {
+ return uint
+ }
+
+ // Intel sometimes uses signed inputs for unsigned numbers.
+ // For example "-9223372036854775808".
+ // #define BID_FMT_LLU "%I64u"
+ // sscanf(op, BID_FMT_LLU, &bid)
+ if let int = T.Signed(s) {
+ return T(bitPattern: int)
+ }
+
+ // "-9223372036854775809" overflows even Int64.
+ // AFAIK, this is UB for "sscanf".
+ if s == "-9223372036854775809", let int = T.Signed("-9223372036854775800") {
+ return T(bitPattern: int)
+ }
+
+ if let predefined: T = self.getPredefinedInt(s) {
+ return predefined
+ }
+
+ XCTFail("Unable to parse \(T.self) from \(s).", file: file, line: line)
+ return nil
+ }
+
+ private func parseHexInsideBrackets(_ t: T.Type, _ s: String) -> T? {
+ guard s.hasPrefix("[") else {
+ return nil
+ }
+
+ assert(s.hasSuffix("]"))
+ let inside = s.dropFirst().dropLast()
+ let split = inside.split(separator: ",", omittingEmptySubsequences: true)
+
+ switch split.count {
+ case 1:
+ return self.parseHex(T.self, inside)
+
+ case 2:
+ // 2 part split is sometimes used for for Decimal128.
+ assert(T.self == UInt128.self, "Unexpected \(T.self) split into 2 parts: \(s).")
+ let high = self.parseHex(UInt64.self, split[0])
+ let low = self.parseHex(UInt64.self, split[1])
+ return T(high) << 64 | T(low)
+
+ default:
+ return nil
+ }
+ }
+
+ private func parseHex(
+ _ t: T.Type,
+ _ s: S
+ ) -> T {
+ // 's' is a raw bit pattern that can't be parsed via 'T(s, radix: 16)'.
+ // Swift would think that it overflows.
+
+ let _0: UInt32 = 48
+ let _A: UInt32 = 65
+ let _a: UInt32 = 97
+
+ var result: T = 0
+
+ for scalar in s.unicodeScalars {
+ let ascii = scalar.value
+
+ let hexDigit: UInt32 =
+ ascii >= _a ? ascii - _a + 10 :
+ ascii >= _A ? ascii - _A + 10 :
+ ascii - _0
+
+ assert(0 <= hexDigit && hexDigit <= 15)
+ result = (result << 4) | T(hexDigit)
+ }
+
+ return result
+ }
+
+ /// Predefined outputs for some weird inputs.
+ /// Intel uses 'sscanf(op, "%d", &bid)' which stops at 1st unrecognized character.
+ private func getPredefinedInt(_ s: String) -> T? {
+ let lower = s.lowercased()
+
+ switch lower {
+ case "1.0", "1.0e-96": return T(1)
+ case "-1.0", "-1.0e-96": return T(-1)
+ case "9.999999e96", "9.999999e-95": return T(9)
+ case "-9.999999e96", "-9.999999e-95": return T(-9)
+ default: break
+ }
+
+ return nil
+ }
+}
+
+// MARK: - Binary floating point
+
+// Binary floating point that is one of the Intel operands.
+private protocol IntelBinaryFloatingPoint: BinaryFloatingPoint {
+ associatedtype BitPattern: FixedWidthInteger
+
+ init(bitPattern: BitPattern)
+ init?(_ s: String)
+}
+
+extension Float: IntelBinaryFloatingPoint {}
+extension Double: IntelBinaryFloatingPoint {}
+
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+private let float80_signMask: UInt128 = 1 << 79
+private let float80_exponentMask: UInt128 = (1 << 15) - 1
+private let float80_significandMask: UInt128 = (1 << 64) - 1
+
+extension Float80: IntelBinaryFloatingPoint {
+ fileprivate init(bitPattern: UInt128) {
+ let isNegative = (bitPattern & float80_signMask) == float80_signMask
+ let exponent = UInt((bitPattern >> 64) & float80_exponentMask)
+ let significand = UInt64(bitPattern & float80_significandMask)
+
+ self = Float80(
+ sign: isNegative ? .minus : .plus,
+ exponentBitPattern: exponent,
+ significandBitPattern: significand
+ )
+ }
+}
+
+#endif
+
+extension IntelMixin {
+
+ func parseFloat(_ s: String, _ file: StaticString, _ line: UInt) -> Float? {
+ return self.parseBinaryFloatingPoint(s, file, line)
+ }
+
+ func parseDouble(_ s: String, _ file: StaticString, _ line: UInt) -> Double? {
+ return self.parseBinaryFloatingPoint(s, file, line)
+ }
+
+#if (arch(i386) || arch(x86_64)) && !os(Windows) && !os(Android)
+
+ func parseFloat80(_ s: String, _ file: StaticString, _ line: UInt) -> Float80? {
+ return self.parseBinaryFloatingPoint(s, file, line)
+ }
+
+#endif
+
+ private func parseBinaryFloatingPoint(
+ _ s: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) -> T? {
+ // This input is 128 bits, which is longer than Float80.
+ // Trimming trailing '0' to bring it back to 80 bits does the trick.
+ // 4073 96FF 33D4 AAC3 D365 0000 0000 0000 = 8 groups * 16 bits each = 128 bits
+ let s = T.self == Float80.self && s == "[407396FF33D4AAC3D365000000000000]" ?
+ "[407396FF33D4AAC3D365]" :
+ s
+
+ if s.hasPrefix("[") {
+ if let bitPattern = self.parseHexInsideBrackets(T.BitPattern.self, s) {
+ return T(bitPattern: bitPattern)
+ }
+
+ XCTFail("Unable to parse \(T.self) from: \(s)", file: file, line: line)
+ return nil
+ }
+
+ // Remove the 'e0' suffix (e0 == 0 -> 2**0 = 1).
+ let lower = s.lowercased()
+
+ if lower == "+0.00000100000e0", let d = T("+0.00000100000") {
+ return d
+ }
+
+ if lower == "+85886696878585969769557975866955695.e0",
+ let d = T("+85886696878585969769557975866955695") {
+ return d
+ }
+
+ if lower == "+9862472843996373385459829996945747934.44e0",
+ let d = T("+9862472843996373385459829996945747934.44") {
+ return d
+ }
+
+ XCTFail("Unable to parse \(T.self) from: \(s).", file: file, line: line)
+ return T(s)
+ }
+}
+
+// MARK: - Status
+
+extension IntelMixin {
+
+ func parseStatus(_ s: String, _ file: StaticString, _ line: UInt) -> DecimalStatus? {
+ var s = s[...]
+
+ if s.starts(with: "0x") {
+ s = s.dropFirst(2)
+ }
+
+ guard let int = Int32(s, radix: 16) else {
+ XCTFail("Unable to parse status from \(s).", file: file, line: line)
+ return nil
+ }
+
+ func isSet(_ n: Int32, _ flag: Int32) -> Bool {
+ return (int & flag) == flag
+ }
+
+ var result = DecimalStatus()
+
+ if isSet(int, BID_INVALID_EXCEPTION) { result.set(.isInvalidOperation) }
+ if isSet(int, BID_DENORMAL_EXCEPTION) { result.set(.isBinaryFloatingPointSubnormal) }
+ if isSet(int, BID_ZERO_DIVIDE_EXCEPTION) { result.set(.isDivisionByZero) }
+ if isSet(int, BID_OVERFLOW_EXCEPTION) { result.set(.isOverflow) }
+ if isSet(int, BID_UNDERFLOW_EXCEPTION) { result.set(.isUnderflow) }
+ if isSet(int, BID_INEXACT_EXCEPTION) { result.set(.isInexact) }
+
+ return result
+ }
+}
+
+// MARK: - Other
+
+extension IntelMixin {
+
+ func parseRounding(
+ _ s: String,
+ _ file: StaticString,
+ _ line: UInt
+ ) -> DecimalFloatingPointRoundingRule? {
+ // Intel:
+ // char *roundstr_bid[] = { "half_even", "down", "up", "zero", "half_away" };
+ //
+ // In main:
+ // sscanf(line, "%s %d %s %s %s %s %x", funcstr, &rnd_mode, …)
+ // strcpy (rounding, roundstr_bid[rnd_mode]);
+
+ switch s {
+ case "0": return .toNearestOrEven
+ case "1": return .down
+ case "2": return .up
+ case "3": return .towardZero
+ case "4": return .toNearestOrAwayFromZero
+ default:
+ XCTFail("Unable to parse rounding from \(s).", file: file, line: line)
+ return nil
+ }
+ }
+
+ /// Double ??:
+ /// - Outer -> parsing succeeded or not
+ /// - Inner -> value
+ func parseUlp(_ s: String?, _ file: StaticString, _ line: UInt) -> Double?? {
+ guard let s = s else {
+ return .some(nil)
+ }
+
+ if let d = Double(s) {
+ return .some(d)
+ }
+
+ XCTFail("Unable to parse Ulp from \(s) (as Double).", file: file, line: line)
+ return nil
+ }
+
+ func parseLongIntSize(_ s: String?, _ file: StaticString, _ line: UInt) -> Int? {
+ if let s = s {
+ assert(
+ ["00", "01", "28", "30"].contains(s),
+ "Unexpected LongIntSize: \(s)."
+ )
+ }
+
+ // Never used -> value does not matter.
+ return 0
+ }
+}
diff --git a/Tests/DecimalTests/Intel - helpers/IntelMixin.swift b/Tests/DecimalTests/Intel - helpers/IntelMixin.swift
new file mode 100644
index 0000000..f4f149e
--- /dev/null
+++ b/Tests/DecimalTests/Intel - helpers/IntelMixin.swift
@@ -0,0 +1,42 @@
+@testable import Decimal
+
+protocol IntelMixin {}
+
+extension IntelMixin {
+
+ /// Intel does not have tests for `truncatingRemainder`, just the standard
+ /// `remainder`.
+ ///
+ /// Note that this is not the correct code! But it does not have to be.
+ /// It just needs to be correct enough to make those tests usable.
+ func remainderFromTruncatingRemainder(
+ _ lhs: T,
+ dividingBy rhs: T
+ ) -> T {
+ let remainder = lhs.truncatingRemainder(dividingBy: rhs)
+
+ if remainder.isNaN || remainder.isInfinite {
+ return remainder
+ }
+
+ // We can either 'rhs/2' or '2*remainder'.
+ let rhsMag = rhs.magnitude
+ let remainderMag = remainder.magnitude
+ let remainder2Mag = remainderMag.multiplied(by: 2, rounding: .towardZero)
+
+ // Exactly half?
+ if remainder2Mag == rhsMag {
+ return -remainder
+ }
+
+ // Below half?
+ if remainder2Mag < rhsMag {
+ return remainder
+ }
+
+ // Above half -> sub and reverse sign
+ let sign = lhs._sign ^ T.signMask
+ let sub = rhsMag.subtracting(remainderMag, rounding: .towardZero)
+ return T(unchecked: sign | sub.bid)
+ }
+}
diff --git a/Tests/DecimalTests/LogScaleTests.swift b/Tests/DecimalTests/LogScaleTests.swift
new file mode 100644
index 0000000..1f9cb43
--- /dev/null
+++ b/Tests/DecimalTests/LogScaleTests.swift
@@ -0,0 +1,207 @@
+import XCTest
+@testable import Decimal
+
+class LogScaleTests: XCTestCase, DecimalTests {
+
+ // MARK: - Scale - exponent overflow
+
+ func test_scale_exponentOverflow() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let e0 = T("3E0", rounding: .towardZero),
+ let e5 = T("3E5", rounding: .towardZero),
+ let e_5 = T("3E-5", rounding: .towardZero) else {
+ XCTFail("Parsing failed", file: file, line: line)
+ return
+ }
+
+ typealias Input = (d: T, exponent: T.Exponent)
+ typealias Rounding = (rounding: DecimalFloatingPointRoundingRule, expected: T)
+
+ let cases: [Input] = [
+ (e0, .max), // max
+ (e0, .max - 5), // below max
+ (e5, .max), // T.Exponent overflow
+ (e5, .max - 5), // max
+ (e5, .max - 10), // below max
+ (e_5, .max), // below max
+ ]
+
+ let roundings: [Rounding] = [
+ (.toNearestOrEven, T.infinity),
+ (.toNearestOrAwayFromZero, T.infinity),
+ (.up, T.infinity),
+ (.down, T.greatestFiniteMagnitude),
+ (.towardZero, T.greatestFiniteMagnitude)
+ ]
+
+ for (d, exponent) in cases {
+ for (rounding, expected) in roundings {
+ var status = DecimalStatus()
+ let result = T(
+ sign: .plus,
+ exponent: exponent,
+ significand: d,
+ rounding: rounding,
+ status: &status
+ )
+
+ let m = "\(d) + \(exponent), \(rounding)"
+ self.assertEqual(result, expected, m, file, line)
+ }
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_scale_exponentUnderflow() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let e0 = T("3E0", rounding: .towardZero),
+ let e5 = T("3E5", rounding: .towardZero),
+ let e_5 = T("3E-5", rounding: .towardZero) else {
+ XCTFail("Parsing failed", file: file, line: line)
+ return
+ }
+
+ typealias Input = (d: T, exponent: T.Exponent)
+ typealias Rounding = (rounding: DecimalFloatingPointRoundingRule, expected: T)
+
+ let cases: [Input] = [
+ (e0, .min), // min
+ (e0, .min + 5), // above min
+ (e_5, .min), // T.Exponent overflow
+ (e_5, .min + 5), // min
+ (e_5, .min + 10), // above min
+ (e5, .min), // above min
+ ]
+
+ let minSignedExponent = T.Exponent(T.minSignedExponent)
+ let zero = T(sign: .plus, exponent: minSignedExponent, significand: T.zero)
+
+ let roundings: [Rounding] = [
+ (.toNearestOrEven, zero),
+ (.toNearestOrAwayFromZero, zero),
+ (.up, T.leastNonzeroMagnitude),
+ (.down, zero),
+ (.towardZero, zero)
+ ]
+
+ for (d, exponent) in cases {
+ for (rounding, expected) in roundings {
+ var status = DecimalStatus()
+ let result = T(
+ sign: .plus,
+ exponent: exponent,
+ significand: d,
+ rounding: rounding,
+ status: &status
+ )
+
+ let m = "\(d) + \(exponent), \(rounding)"
+ self.assertEqual(result, expected, m, file, line)
+ }
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ // MARK: - Destruct + restore
+
+ private static let destructRestoreStrings = [
+ "inf",
+ "nan",
+ "nan(0x12)",
+ "snan",
+ "snan(0x12)",
+ "0",
+ "1",
+ "4",
+ "123",
+ "0.123",
+ "0.0123",
+ "0.00123",
+ "1.234",
+ "12.34",
+ "123.4",
+ "123.0",
+ ]
+
+ func test_destructRestore() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ for s in Self.destructRestoreStrings {
+ if let d = T(s) {
+ self.assertDestructRestoreEqual(+d, file, line)
+ self.assertDestructRestoreEqual(-d, file, line)
+ } else {
+ XCTFail(s, file: file, line: line)
+ }
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_destructRestore_generated() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ for d: T in self.generateDecimals(approximateCount: 1000) {
+ self.assertDestructRestoreEqual(+d, file, line)
+ self.assertDestructRestoreEqual(-d, file, line)
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ private func assertDestructRestoreEqual(
+ _ d: T,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ let sign = d.sign
+ let exponent = d.exponent
+ let significand = d.significand
+ var status = DecimalStatus()
+
+ let result = T(
+ sign: sign,
+ exponent: exponent,
+ significand: significand,
+ rounding: .towardZero,
+ status: &status
+ )
+
+ // 0.exponent = Int.min
+ if result.isZero && d.isZero {
+ self.assertEqualByEqualEqual(result, d, file, line)
+ } else {
+ self.assertEqual(result, d, file, line)
+ }
+
+ self.assertStatusIsEmpty(status, String(describing: d), file, line)
+ }
+}
diff --git a/Tests/DecimalTests/PackTests.swift b/Tests/DecimalTests/PackTests.swift
new file mode 100644
index 0000000..f9c70f8
--- /dev/null
+++ b/Tests/DecimalTests/PackTests.swift
@@ -0,0 +1,1242 @@
+import XCTest
+@testable import Decimal
+
+// swiftlint:disable comma
+
+private typealias T = Decimal32
+private typealias BID = T.BID
+
+class PackTests: XCTestCase, DecimalTests {
+
+ // MARK: - Limits
+
+ func test_normal_greatestFiniteMagnitude() {
+ func run(
+ _ sign: T.Sign,
+ rounding: DecimalFloatingPointRoundingRule,
+ expected: T,
+ message: String,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ self.run(
+ sign: sign,
+ significand: T.maxDecimalDigits,
+ exponent: T.maxSignedExponent,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: DecimalStatus(),
+ message: message,
+ file,
+ line
+ )
+ }
+
+ for r in Self.roundingRules {
+ let m = String(describing: r)
+ run(.plus, rounding: r, expected: T.greatestFiniteMagnitude, message: m)
+ run(.minus, rounding: r, expected: -T.greatestFiniteMagnitude, message: m)
+ }
+ }
+
+ func test_normal_leastNonzeroMagnitude() {
+ func run(
+ _ sign: T.Sign,
+ rounding: DecimalFloatingPointRoundingRule,
+ expected: T,
+ message: String,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ self.run(
+ sign: sign,
+ significand: 1,
+ exponent: T.minSignedExponent,
+ roundingDigitCount: 0,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: DecimalStatus(),
+ message: message,
+ file,
+ line
+ )
+ }
+
+ for r in Self.roundingRules {
+ let m = String(describing: r)
+ run(.plus, rounding: r, expected: T.leastNonzeroMagnitude, message: m)
+ run(.minus, rounding: r, expected: -T.leastNonzeroMagnitude, message: m)
+ }
+ }
+
+ // MARK: - Rounding
+
+ func test_normal_rounding_zero_isExact() {
+ func run(
+ _ sign: T.Sign,
+ rounding: DecimalFloatingPointRoundingRule,
+ expected: T,
+ message: String,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ self.run(
+ sign: sign,
+ significand: 12300,
+ exponent: 7,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: DecimalStatus(),
+ message: message,
+ file,
+ line
+ )
+ }
+
+ let expected = T._packWithoutChecks(
+ sign: .plus,
+ significand: 123,
+ signedExponent: 7
+ )
+
+ for r in Self.roundingRules {
+ let m = String(describing: r)
+ run(.plus, rounding: r, expected: expected, message: m)
+ run(.minus, rounding: r, expected: -expected, message: m)
+ }
+ }
+
+ func test_normal_rounding_up() {
+ func run(
+ _ sign: T.Sign,
+ _ significand: BID,
+ expected: String,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ self.run(
+ sign: sign,
+ significand: significand,
+ exponent: 11,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: .isInexact,
+ file,
+ line
+ )
+ }
+
+ let rounding = DecimalFloatingPointRoundingRule.up
+
+ // 123.42
+ run(.plus, 12342, expected: "124E11")
+ run(.minus, 12342, expected: "-123E11")
+
+ // 123.50
+ run(.plus, 12350, expected: "124E11")
+ run(.minus, 12350, expected: "-123E11")
+
+ // 123.51
+ run(.plus, 12351, expected: "124E11")
+ run(.minus, 12351, expected: "-123E11")
+
+ // 999.99
+ run(.plus, 99999, expected: "1000E11")
+ run(.minus, 99999, expected: "-999E11")
+
+ // maxDecimalDigits - exponent increase
+ let max = T.maxDecimalDigits * 100 + 94
+ run(.plus, max, expected: "1000000E12")
+ run(.minus, max, expected: "-9999999E11")
+
+ // maxDecimalDigits - overflow
+ self.run(
+ sign: .plus,
+ significand: max,
+ exponent: T.maxSignedExponent,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: T.infinity,
+ expectedStatus: .isOverflowInexact
+ )
+
+ self.run(
+ sign: .minus,
+ significand: max,
+ exponent: T.maxSignedExponent,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: -T.greatestFiniteMagnitude,
+ expectedStatus: .isInexact
+ )
+ }
+
+ func test_normal_rounding_down() {
+ func run(
+ _ sign: T.Sign,
+ _ significand: BID,
+ expected: String,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ self.run(
+ sign: sign,
+ significand: significand,
+ exponent: 11,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: .isInexact,
+ file,
+ line
+ )
+ }
+
+ let rounding = DecimalFloatingPointRoundingRule.down
+
+ // 123.42
+ run(.plus, 12342, expected: "123E11")
+ run(.minus, 12342, expected: "-124E11")
+
+ // 123.50
+ run(.plus, 12350, expected: "123E11")
+ run(.minus, 12350, expected: "-124E11")
+
+ // 123.51
+ run(.plus, 12351, expected: "123E11")
+ run(.minus, 12351, expected: "-124E11")
+
+ // 999.99
+ run(.plus, 99999, expected: "999E11")
+ run(.minus, 99999, expected: "-1000E11")
+
+ // maxDecimalDigits - exponent increase
+ let max = T.maxDecimalDigits * 100 + 94
+ run(.plus, max, expected: "9999999E11")
+ run(.minus, max, expected: "-1000000E12")
+
+ // maxDecimalDigits - overflow
+ self.run(
+ sign: .plus,
+ significand: max,
+ exponent: T.maxSignedExponent,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: T.greatestFiniteMagnitude,
+ expectedStatus: .isInexact
+ )
+
+ self.run(
+ sign: .minus,
+ significand: max,
+ exponent: T.maxSignedExponent,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: -T.infinity,
+ expectedStatus: .isOverflowInexact
+ )
+ }
+
+ func test_normal_rounding_towardZero() {
+ func run(
+ _ sign: T.Sign,
+ _ significand: BID,
+ expected: String,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ self.run(
+ sign: sign,
+ significand: significand,
+ exponent: 11,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: .isInexact,
+ file,
+ line
+ )
+ }
+
+ let rounding = DecimalFloatingPointRoundingRule.towardZero
+
+ // 123.42
+ run(.plus, 12342, expected: "123E11")
+ run(.minus, 12342, expected: "-123E11")
+
+ // 123.50
+ run(.plus, 12350, expected: "123E11")
+ run(.minus, 12350, expected: "-123E11")
+
+ // 123.51
+ run(.plus, 12351, expected: "123E11")
+ run(.minus, 12351, expected: "-123E11")
+
+ // 999.99
+ run(.plus, 99999, expected: "999E11")
+ run(.minus, 99999, expected: "-999E11")
+
+ // maxDecimalDigits - exponent increase
+ let max = T.maxDecimalDigits * 100 + 94
+ run(.plus, max, expected: "9999999E11")
+ run(.minus, max, expected: "-9999999E11")
+
+ // maxDecimalDigits - overflow
+ self.run(
+ sign: .plus,
+ significand: max,
+ exponent: T.maxSignedExponent,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: T.greatestFiniteMagnitude,
+ expectedStatus: .isInexact
+ )
+
+ self.run(
+ sign: .minus,
+ significand: max,
+ exponent: T.maxSignedExponent,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: -T.greatestFiniteMagnitude,
+ expectedStatus: .isInexact
+ )
+ }
+
+ func test_normal_rounding_toNearestOrEven() {
+ func run(
+ _ sign: T.Sign,
+ _ significand: BID,
+ expected: String,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ self.run(
+ sign: sign,
+ significand: significand,
+ exponent: 11,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: .isInexact,
+ file,
+ line
+ )
+ }
+
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+
+ // 123.42
+ run(.plus, 12342, expected: "123E11")
+ run(.minus, 12342, expected: "-123E11")
+
+ // 123.50, odd -> even
+ run(.plus, 12350, expected: "124E11")
+ run(.minus, 12350, expected: "-124E11")
+
+ // 124.50, even
+ run(.plus, 12450, expected: "124E11")
+ run(.minus, 12450, expected: "-124E11")
+
+ // 123.51
+ run(.plus, 12351, expected: "124E11")
+ run(.minus, 12351, expected: "-124E11")
+
+ // 999.99
+ run(.plus, 99999, expected: "1000E11")
+ run(.minus, 99999, expected: "-1000E11")
+
+ // maxDecimalDigits - exponent increase
+ let max = T.maxDecimalDigits * 100 + 94
+ run(.plus, max, expected: "1000000E12")
+ run(.minus, max, expected: "-1000000E12")
+
+ // maxDecimalDigits - overflow
+ self.run(
+ sign: .plus,
+ significand: max,
+ exponent: T.maxSignedExponent,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: T.infinity,
+ expectedStatus: .isOverflowInexact
+ )
+
+ self.run(
+ sign: .minus,
+ significand: max,
+ exponent: T.maxSignedExponent,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: -T.infinity,
+ expectedStatus: .isOverflowInexact
+ )
+ }
+
+ func test_normal_rounding_toNearestOrAwayFromZero() {
+ func run(
+ _ sign: T.Sign,
+ _ significand: BID,
+ expected: String,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ self.run(
+ sign: sign,
+ significand: significand,
+ exponent: 11,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: .isInexact,
+ file,
+ line
+ )
+ }
+
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrAwayFromZero
+
+ // 123.42
+ run(.plus, 12342, expected: "123E11")
+ run(.minus, 12342, expected: "-123E11")
+
+ // 123.50, odd <- should not matter
+ run(.plus, 12350, expected: "124E11")
+ run(.minus, 12350, expected: "-124E11")
+
+ // 124.50, even <- should not matter
+ run(.plus, 12450, expected: "125E11")
+ run(.minus, 12450, expected: "-125E11")
+
+ // 123.51
+ run(.plus, 12351, expected: "124E11")
+ run(.minus, 12351, expected: "-124E11")
+
+ // 999.99
+ run(.plus, 99999, expected: "1000E11")
+ run(.minus, 99999, expected: "-1000E11")
+
+ // maxDecimalDigits - exponent increase
+ let max = T.maxDecimalDigits * 100 + 94
+ run(.plus, max, expected: "1000000E12")
+ run(.minus, max, expected: "-1000000E12")
+
+ // maxDecimalDigits - overflow
+ self.run(
+ sign: .plus,
+ significand: max,
+ exponent: T.maxSignedExponent,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: T.infinity,
+ expectedStatus: .isOverflowInexact
+ )
+
+ self.run(
+ sign: .minus,
+ significand: max,
+ exponent: T.maxSignedExponent,
+ roundingDigitCount: 2,
+ rounding: rounding,
+ expected: -T.infinity,
+ expectedStatus: .isOverflowInexact
+ )
+ }
+
+ // MARK: - Overflow
+
+ func test_overflow_zero() {
+ func run(
+ _ sign: T.Sign,
+ exponent: Int,
+ roundingDigitCount: Int,
+ expected: T,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ for r in Self.roundingRules {
+ self.run(
+ sign: sign,
+ significand: 0,
+ exponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: r,
+ expected: expected,
+ expectedStatus: DecimalStatus(),
+ file,
+ line
+ )
+ }
+ }
+
+ let expected = T._packWithoutChecks(
+ sign: .plus,
+ significand: 0,
+ signedExponent: T.maxSignedExponent
+ )
+
+ // exponent = Int.max
+ run(.plus, exponent: Int.max, roundingDigitCount: 0, expected: expected)
+ run(.minus, exponent: Int.max, roundingDigitCount: 0, expected: -expected)
+
+ let maxPlus1 = T.maxSignedExponent + 1
+ run(.plus, exponent: maxPlus1, roundingDigitCount: 0, expected: expected)
+ run(.minus, exponent: maxPlus1, roundingDigitCount: 0, expected: -expected)
+
+ // rounding digits
+ run(.plus, exponent: maxPlus1, roundingDigitCount: 5, expected: expected)
+ run(.minus, exponent: maxPlus1, roundingDigitCount: 5, expected: -expected)
+ }
+
+ func test_overflow_exponentTotallyOutOfRange() {
+ // exponent = Int.max
+ self.runExpectingInfinitelyBigValue(
+ significand: 123,
+ exponent: Int.max,
+ roundingDigitCount: 0
+ )
+
+ // exponent = max + precision
+ let withPrecision = T.maxSignedExponent + T.precisionInDigits
+ self.runExpectingInfinitelyBigValue(
+ significand: 123,
+ exponent: withPrecision,
+ roundingDigitCount: 0
+ )
+
+ // rounding digits
+ self.runExpectingInfinitelyBigValue(
+ significand: 123,
+ exponent: withPrecision,
+ roundingDigitCount: T.precisionInDigits
+ )
+ }
+
+ /// rounding digit count == exponent diff
+ func test_overflow_useAllRoundingDigits() {
+ // With rounding digits -> valid decimal
+ var roundingDigitCount = 3
+ let expected = T._packWithoutChecks(
+ sign: .plus,
+ significand: 1234567,
+ signedExponent: T.maxSignedExponent
+ )
+
+ for r in Self.roundingRules {
+ self.run(
+ sign: .plus,
+ significand: 1234567,
+ exponent: T.maxSignedExponent + roundingDigitCount,
+ roundingDigitCount: roundingDigitCount,
+ rounding: r,
+ expected: expected,
+ expectedStatus: DecimalStatus()
+ )
+
+ self.run(
+ sign: .minus,
+ significand: 1234567,
+ exponent: T.maxSignedExponent + roundingDigitCount,
+ roundingDigitCount: roundingDigitCount,
+ rounding: r,
+ expected: -expected,
+ expectedStatus: DecimalStatus()
+ )
+ }
+
+ // With rounding digits -> significand overflow
+ // - exponent will be correct
+ // - significand will be too big
+ roundingDigitCount = 2
+
+ self.runExpectingInfinitelyBigValue(
+ significand: 123456789,
+ exponent: T.maxSignedExponent + roundingDigitCount,
+ roundingDigitCount: roundingDigitCount
+ )
+ }
+
+ /// rounding digit count < exponent diff
+ /// We need to multiply by power of 10 to get it to normal.
+ func test_overflow_useAllRoundingDigits_andMore() {
+ func run(
+ _ sign: T.Sign,
+ _ significand: BID,
+ exponent: Int,
+ roundingDigitCount: Int,
+ expected: T,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ for r in Self.roundingRules {
+ self.run(
+ sign: sign,
+ significand: significand,
+ exponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: r,
+ expected: expected,
+ expectedStatus: DecimalStatus(),
+ file,
+ line
+ )
+ }
+ }
+
+ let max = T.maxSignedExponent
+
+ // | Needed exponent decrease | From rounding digits | From mul
+ // Test 1 | 4 | 2 | 2
+ // Test 2 | 4 | 3 | 1
+ let expected1 = T._packWithoutChecks(sign: .plus, significand: 1234500, signedExponent: max)
+ run(.plus, 12345, exponent: max + 4, roundingDigitCount: 2, expected: expected1)
+ run(.minus, 12345, exponent: max + 4, roundingDigitCount: 2, expected: -expected1)
+
+ let expected2 = T._packWithoutChecks(sign: .plus, significand: 1234560, signedExponent: max)
+ run(.plus, 123456, exponent: max + 4, roundingDigitCount: 3, expected: expected2)
+ run(.minus, 123456, exponent: max + 4, roundingDigitCount: 3, expected: -expected2)
+
+ // Not enough digits to mul
+ self.runExpectingInfinitelyBigValue(
+ significand: 123457,
+ exponent: max + 4,
+ roundingDigitCount: 2
+ )
+
+ // Not enough digits to mul - full significand
+ self.runExpectingInfinitelyBigValue(
+ significand: 1234578,
+ exponent: max + 2,
+ roundingDigitCount: 1
+ )
+ }
+
+ /// rounding digit count > exponent diff
+ /// Remaining rounding digits are used for rounding.
+ func test_overflow_useSomeRoundingDigits_andRound() {
+ // We need to decrease the exponent by 2.
+ // Take those 2 numbers from rounding digits.
+ // Ooops… significand is too big
+ self.runExpectingInfinitelyBigValue(
+ significand: 123456789,
+ exponent: T.maxSignedExponent + 2,
+ roundingDigitCount: 3
+ )
+ }
+
+ func test_overflow_useSomeRoundingDigits_andRound_up() {
+ let r = DecimalFloatingPointRoundingRule.up
+
+ let noRounding = T._packWithoutChecks(
+ sign: .plus,
+ significand: 1234567,
+ signedExponent: T.maxSignedExponent
+ )
+
+ let rounded = T._packWithoutChecks(
+ sign: .plus,
+ significand: 1234568,
+ signedExponent: T.maxSignedExponent
+ )
+
+ // Exact
+ self.runRoundedOverflow(.plus, 1234567_00, r, expected: noRounding)
+ self.runRoundedOverflow(.minus, 1234567_00, r, expected: -noRounding)
+
+ // Below half
+ self.runRoundedOverflow(.plus, 1234567_42, r, expected: rounded, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_42, r, expected: -noRounding, .isInexact)
+
+ // Half
+ self.runRoundedOverflow(.plus, 1234567_50, r, expected: rounded, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_50, r, expected: -noRounding, .isInexact)
+
+ // Above half
+ self.runRoundedOverflow(.plus, 1234567_51, r, expected: rounded, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_51, r, expected: -noRounding, .isInexact)
+
+ // Overflow after rounding
+ self.runRoundedOverflow(.plus, 9999999_51, r, expected: T.infinity, .isOverflowInexact)
+ self.runRoundedOverflow(.minus, 9999999_51, r, expected: -T.greatestFiniteMagnitude, .isInexact)
+ }
+
+ func test_overflow_useSomeRoundingDigits_andRound_down() {
+ let r = DecimalFloatingPointRoundingRule.down
+
+ let noRounding = T._packWithoutChecks(
+ sign: .plus,
+ significand: 1234567,
+ signedExponent: T.maxSignedExponent
+ )
+
+ let rounded = T._packWithoutChecks(
+ sign: .plus,
+ significand: 1234568,
+ signedExponent: T.maxSignedExponent
+ )
+
+ // Exact
+ self.runRoundedOverflow(.plus, 1234567_00, r, expected: noRounding)
+ self.runRoundedOverflow(.minus, 1234567_00, r, expected: -noRounding)
+
+ // Below half
+ self.runRoundedOverflow(.plus, 1234567_42, r, expected: noRounding, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_42, r, expected: -rounded, .isInexact)
+
+ // Half
+ self.runRoundedOverflow(.plus, 1234567_50, r, expected: noRounding, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_50, r, expected: -rounded, .isInexact)
+
+ // Above half
+ self.runRoundedOverflow(.plus, 1234567_51, r, expected: noRounding, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_51, r, expected: -rounded, .isInexact)
+
+ // Overflow after rounding
+ self.runRoundedOverflow(.plus, 9999999_51, r, expected: T.greatestFiniteMagnitude, .isInexact)
+ self.runRoundedOverflow(.minus, 9999999_51, r, expected: -T.infinity, .isOverflowInexact)
+ }
+
+ func test_overflow_useSomeRoundingDigits_andRound_towardZero() {
+ let r = DecimalFloatingPointRoundingRule.towardZero
+
+ let noRounding = T._packWithoutChecks(
+ sign: .plus,
+ significand: 1234567,
+ signedExponent: T.maxSignedExponent
+ )
+
+ // Exact
+ self.runRoundedOverflow(.plus, 1234567_00, r, expected: noRounding)
+ self.runRoundedOverflow(.minus, 1234567_00, r, expected: -noRounding)
+
+ // Below half
+ self.runRoundedOverflow(.plus, 1234567_42, r, expected: noRounding, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_42, r, expected: -noRounding, .isInexact)
+
+ // Half
+ self.runRoundedOverflow(.plus, 1234567_50, r, expected: noRounding, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_50, r, expected: -noRounding, .isInexact)
+
+ // Above half
+ self.runRoundedOverflow(.plus, 1234567_51, r, expected: noRounding, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_51, r, expected: -noRounding, .isInexact)
+
+ // Overflow after rounding
+ self.runRoundedOverflow(.plus, 9999999_51, r, expected: T.greatestFiniteMagnitude, .isInexact)
+ self.runRoundedOverflow(.minus, 9999999_51, r, expected: -T.greatestFiniteMagnitude, .isInexact)
+ }
+
+ func test_overflow_useSomeRoundingDigits_andRound_toNearestOrEven() {
+ let r = DecimalFloatingPointRoundingRule.toNearestOrEven
+
+ let noRounding = T._packWithoutChecks(
+ sign: .plus,
+ significand: 1234567,
+ signedExponent: T.maxSignedExponent
+ )
+
+ let rounded = T._packWithoutChecks(
+ sign: .plus,
+ significand: 1234568,
+ signedExponent: T.maxSignedExponent
+ )
+
+ // Exact
+ self.runRoundedOverflow(.plus, 1234567_00, r, expected: noRounding)
+ self.runRoundedOverflow(.minus, 1234567_00, r, expected: -noRounding)
+
+ // Below half
+ self.runRoundedOverflow(.plus, 1234567_42, r, expected: noRounding, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_42, r, expected: -noRounding, .isInexact)
+
+ // Half - odd
+ self.runRoundedOverflow(.plus, 1234567_50, r, expected: rounded, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_50, r, expected: -rounded, .isInexact)
+
+ // Half - even
+ // We will reuse 'rounded', because it is even
+ self.runRoundedOverflow(.plus, 1234568_50, r, expected: rounded, .isInexact)
+ self.runRoundedOverflow(.minus, 1234568_50, r, expected: -rounded, .isInexact)
+
+ // Above half
+ self.runRoundedOverflow(.plus, 1234567_51, r, expected: rounded, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_51, r, expected: -rounded, .isInexact)
+
+ // Overflow after rounding
+ self.runRoundedOverflow(.plus, 9999999_51, r, expected: T.infinity, .isOverflowInexact)
+ self.runRoundedOverflow(.minus, 9999999_51, r, expected: -T.infinity, .isOverflowInexact)
+ }
+
+ func test_overflow_useSomeRoundingDigits_andRound_toNearestOrAwayFromZero() {
+ let r = DecimalFloatingPointRoundingRule.toNearestOrAwayFromZero
+
+ let noRounding = T._packWithoutChecks(
+ sign: .plus,
+ significand: 1234567,
+ signedExponent: T.maxSignedExponent
+ )
+
+ let rounded = T._packWithoutChecks(
+ sign: .plus,
+ significand: 1234568,
+ signedExponent: T.maxSignedExponent
+ )
+
+ // Exact
+ self.runRoundedOverflow(.plus, 1234567_00, r, expected: noRounding)
+ self.runRoundedOverflow(.minus, 1234567_00, r, expected: -noRounding)
+
+ // Below half
+ self.runRoundedOverflow(.plus, 1234567_42, r, expected: noRounding, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_42, r, expected: -noRounding, .isInexact)
+
+ // Half - odd <- should not matter
+ self.runRoundedOverflow(.plus, 1234567_50, r, expected: rounded, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_50, r, expected: -rounded, .isInexact)
+
+ // Half - even <- should not matter
+ // We will use number before 'noRounding' that should round to 'noRounding'.
+ self.runRoundedOverflow(.plus, 1234566_50, r, expected: noRounding, .isInexact)
+ self.runRoundedOverflow(.minus, 1234566_50, r, expected: -noRounding, .isInexact)
+
+ // Above half
+ self.runRoundedOverflow(.plus, 1234567_51, r, expected: rounded, .isInexact)
+ self.runRoundedOverflow(.minus, 1234567_51, r, expected: -rounded, .isInexact)
+
+ // Overflow after rounding
+ self.runRoundedOverflow(.plus, 9999999_51, r, expected: T.infinity, .isOverflowInexact)
+ self.runRoundedOverflow(.minus, 9999999_51, r, expected: -T.infinity, .isOverflowInexact)
+ }
+
+ /// Rounding digits:
+ /// - 1 goes to the significand
+ /// - remaining 2 are used for rounding
+ private func runRoundedOverflow(
+ _ sign: T.Sign,
+ _ significand: BID,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ expected: T,
+ _ expectedStatus: DecimalStatus = DecimalStatus(),
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ self.run(
+ sign: sign,
+ significand: significand,
+ exponent: T.maxSignedExponent + 1,
+ roundingDigitCount: 3,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: expectedStatus,
+ file,
+ line
+ )
+ }
+
+ // MARK: - Underflow
+
+ func test_underflow_zero() {
+ func run(
+ _ sign: T.Sign,
+ exponent: Int,
+ roundingDigitCount: Int,
+ expected: T,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ for r in Self.roundingRules {
+ self.run(
+ sign: sign,
+ significand: 0,
+ exponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: r,
+ expected: expected,
+ expectedStatus: DecimalStatus(),
+ file,
+ line
+ )
+ }
+ }
+
+ let expected = T._packWithoutChecks(
+ sign: .plus,
+ significand: 0,
+ signedExponent: T.minSignedExponent
+ )
+
+ // exponent = Int.max
+ run(.plus, exponent: Int.min, roundingDigitCount: 0, expected: expected)
+ run(.minus, exponent: Int.min, roundingDigitCount: 0, expected: -expected)
+
+ let minMinus1 = T.minSignedExponent - 1
+ run(.plus, exponent: minMinus1, roundingDigitCount: 0, expected: expected)
+ run(.minus, exponent: minMinus1, roundingDigitCount: 0, expected: -expected)
+
+ // rounding digits
+ run(.plus, exponent: minMinus1, roundingDigitCount: 5, expected: expected)
+ run(.minus, exponent: minMinus1, roundingDigitCount: 5, expected: -expected)
+ }
+
+ func test_underflow_exponentTotallyOutOfRange() {
+ // exponent = Int.max
+ self.runExpectingInfinitelySmallValue(
+ significand: 123,
+ exponent: Int.min,
+ roundingDigitCount: 0
+ )
+
+ // exponent = min - precision
+ let withPrecision = T.minSignedExponent - T.precisionInDigits
+ self.runExpectingInfinitelySmallValue(
+ significand: 123,
+ exponent: withPrecision,
+ roundingDigitCount: 0
+ )
+
+ // rounding digits
+ self.runExpectingInfinitelySmallValue(
+ significand: 123,
+ exponent: withPrecision,
+ roundingDigitCount: 2
+ )
+ }
+
+ /// Increase exponent by cutting significand digits.
+ func test_underflow_eatSignificandDigits_andRound_up() {
+ let r = DecimalFloatingPointRoundingRule.up
+
+ let noRounding = T._packWithoutChecks(
+ sign: .plus,
+ significand: 12345,
+ signedExponent: T.minSignedExponent
+ )
+
+ let rounded = T._packWithoutChecks(
+ sign: .plus,
+ significand: 12346,
+ signedExponent: T.minSignedExponent
+ )
+
+ // Exact
+ self.runRoundedUnderflow(.plus, 12345_000, r, expected: noRounding)
+ self.runRoundedUnderflow(.minus, 12345_000, r, expected: -noRounding)
+
+ // Below half
+ self.runRoundedUnderflow(.plus, 12345_402, r, expected: rounded, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_402, r, expected: -noRounding, .isUnderflowInexact)
+
+ // Half
+ self.runRoundedUnderflow(.plus, 12345_500, r, expected: rounded, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_500, r, expected: -noRounding, .isUnderflowInexact)
+
+ // Above half
+ self.runRoundedUnderflow(.plus, 12345_501, r, expected: rounded, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_501, r, expected: -noRounding, .isUnderflowInexact)
+ }
+
+ /// Increase exponent by cutting significand digits.
+ func test_underflow_eatSignificandDigits_andRound_down() {
+ let r = DecimalFloatingPointRoundingRule.down
+
+ let noRounding = T._packWithoutChecks(
+ sign: .plus,
+ significand: 12345,
+ signedExponent: T.minSignedExponent
+ )
+
+ let rounded = T._packWithoutChecks(
+ sign: .plus,
+ significand: 12346,
+ signedExponent: T.minSignedExponent
+ )
+
+ // Exact
+ self.runRoundedUnderflow(.plus, 12345_000, r, expected: noRounding)
+ self.runRoundedUnderflow(.minus, 12345_000, r, expected: -noRounding)
+
+ // Below half
+ self.runRoundedUnderflow(.plus, 12345_402, r, expected: noRounding, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_402, r, expected: -rounded, .isUnderflowInexact)
+
+ // Half
+ self.runRoundedUnderflow(.plus, 12345_500, r, expected: noRounding, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_500, r, expected: -rounded, .isUnderflowInexact)
+
+ // Above half
+ self.runRoundedUnderflow(.plus, 12345_501, r, expected: noRounding, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_501, r, expected: -rounded, .isUnderflowInexact)
+ }
+
+ /// Increase exponent by cutting significand digits.
+ func test_underflow_eatSignificandDigits_andRound_towardZero() {
+ let r = DecimalFloatingPointRoundingRule.towardZero
+
+ let noRounding = T._packWithoutChecks(
+ sign: .plus,
+ significand: 12345,
+ signedExponent: T.minSignedExponent
+ )
+
+ // Exact
+ self.runRoundedUnderflow(.plus, 12345_000, r, expected: noRounding)
+ self.runRoundedUnderflow(.minus, 12345_000, r, expected: -noRounding)
+
+ // Below half
+ self.runRoundedUnderflow(.plus, 12345_402, r, expected: noRounding, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_402, r, expected: -noRounding, .isUnderflowInexact)
+
+ // Half
+ self.runRoundedUnderflow(.plus, 12345_500, r, expected: noRounding, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_500, r, expected: -noRounding, .isUnderflowInexact)
+
+ // Above half
+ self.runRoundedUnderflow(.plus, 12345_501, r, expected: noRounding, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_501, r, expected: -noRounding, .isUnderflowInexact)
+ }
+
+ /// Increase exponent by cutting significand digits.
+ func test_underflow_eatSignificandDigits_andRound_toNearestOrEven() {
+ let r = DecimalFloatingPointRoundingRule.toNearestOrEven
+
+ let noRounding = T._packWithoutChecks(
+ sign: .plus,
+ significand: 12345,
+ signedExponent: T.minSignedExponent
+ )
+
+ let rounded = T._packWithoutChecks(
+ sign: .plus,
+ significand: 12346,
+ signedExponent: T.minSignedExponent
+ )
+
+ // Exact
+ self.runRoundedUnderflow(.plus, 12345_000, r, expected: noRounding)
+ self.runRoundedUnderflow(.minus, 12345_000, r, expected: -noRounding)
+
+ // Below half
+ self.runRoundedUnderflow(.plus, 12345_402, r, expected: noRounding, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_402, r, expected: -noRounding, .isUnderflowInexact)
+
+ // Half - odd
+ self.runRoundedUnderflow(.plus, 12345_500, r, expected: rounded, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_500, r, expected: -rounded, .isUnderflowInexact)
+
+ // Half - even
+ // We will reuse 'rounded', because it is even
+ self.runRoundedUnderflow(.plus, 12346_500, r, expected: rounded, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12346_500, r, expected: -rounded, .isUnderflowInexact)
+
+ // Above half
+ self.runRoundedUnderflow(.plus, 12345_501, r, expected: rounded, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_501, r, expected: -rounded, .isUnderflowInexact)
+ }
+
+ /// Increase exponent by cutting significand digits.
+ func test_underflow_eatSignificandDigits_andRound_toNearestOrAwayFromZero() {
+ let r = DecimalFloatingPointRoundingRule.toNearestOrAwayFromZero
+
+ let noRounding = T._packWithoutChecks(
+ sign: .plus,
+ significand: 12345,
+ signedExponent: T.minSignedExponent
+ )
+
+ let rounded = T._packWithoutChecks(
+ sign: .plus,
+ significand: 12346,
+ signedExponent: T.minSignedExponent
+ )
+
+ // Exact
+ self.runRoundedUnderflow(.plus, 12345_000, r, expected: noRounding)
+ self.runRoundedUnderflow(.minus, 12345_000, r, expected: -noRounding)
+
+ // Below half
+ self.runRoundedUnderflow(.plus, 12345_402, r, expected: noRounding, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_402, r, expected: -noRounding, .isUnderflowInexact)
+
+ // Half - odd <- should not matter
+ self.runRoundedUnderflow(.plus, 12345_500, r, expected: rounded, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_500, r, expected: -rounded, .isUnderflowInexact)
+
+ // Half - even <- should not matter
+ // We will use number before 'noRounding' that should round to 'noRounding'.
+ self.runRoundedUnderflow(.plus, 12344_500, r, expected: noRounding, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12344_500, r, expected: -noRounding, .isUnderflowInexact)
+
+ // Above half
+ self.runRoundedUnderflow(.plus, 12345_501, r, expected: rounded, .isUnderflowInexact)
+ self.runRoundedUnderflow(.minus, 12345_501, r, expected: -rounded, .isUnderflowInexact)
+ }
+
+ /// Significand:
+ /// - 1 rounding digits
+ /// - 2 used to increase exponent
+ private func runRoundedUnderflow(
+ _ sign: T.Sign,
+ _ significand: BID,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ expected: T,
+ _ expectedStatus: DecimalStatus = DecimalStatus(),
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ self.run(
+ sign: sign,
+ significand: significand,
+ exponent: T.minSignedExponent - 2,
+ roundingDigitCount: 1,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: expectedStatus,
+ file,
+ line
+ )
+ }
+
+ // MARK: - Helpers
+
+ private func run(
+ sign: T.Sign,
+ significand: BID,
+ exponent: Int,
+ roundingDigitCount: Int,
+ rounding: DecimalFloatingPointRoundingRule,
+ expected: String,
+ expectedStatus: DecimalStatus,
+ message: String = "",
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ if let e: T = self.parseExact(expected, file, line) {
+ self.run(
+ sign: sign,
+ significand: significand,
+ exponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ expected: e,
+ expectedStatus: expectedStatus,
+ message: message,
+ file,
+ line
+ )
+ }
+ }
+
+ private func run(
+ sign: T.Sign,
+ significand: BID,
+ exponent: Int,
+ roundingDigitCount: Int,
+ rounding: DecimalFloatingPointRoundingRule,
+ expected: T,
+ expectedStatus: DecimalStatus,
+ message: String = "",
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ var status = DecimalStatus()
+
+ let result = T._pack(
+ sign: sign,
+ significand: significand,
+ signedExponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ status: &status
+ )
+
+ self.assertEqual(result, expected, message, file, line)
+ self.assertStatus(status, expectedStatus, message, file, line)
+ }
+
+ private func runExpectingInfinitelyBigValue(
+ significand: BID,
+ exponent: Int,
+ roundingDigitCount: Int,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ func run(
+ _ sign: T.Sign,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ expected: T
+ ) {
+ self.run(
+ sign: sign,
+ significand: significand,
+ exponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: .isOverflowInexact,
+ message: rounding.description,
+ file,
+ line
+ )
+ }
+
+ run(.plus, .up, expected: T.infinity)
+ run(.plus, .down, expected: T.greatestFiniteMagnitude)
+ run(.plus, .towardZero, expected: T.greatestFiniteMagnitude)
+ run(.plus, .toNearestOrEven, expected: T.infinity)
+ run(.plus, .toNearestOrAwayFromZero, expected: T.infinity)
+
+ run(.minus, .up, expected: -T.greatestFiniteMagnitude)
+ run(.minus, .down, expected: -T.infinity)
+ run(.minus, .towardZero, expected: -T.greatestFiniteMagnitude)
+ run(.minus, .toNearestOrEven, expected: -T.infinity)
+ run(.minus, .toNearestOrAwayFromZero, expected: -T.infinity)
+ }
+
+ private func runExpectingInfinitelySmallValue(
+ significand: BID,
+ exponent: Int,
+ roundingDigitCount: Int,
+ _ file: StaticString = #file,
+ _ line: UInt = #line
+ ) {
+ func run(
+ _ sign: T.Sign,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ expected: T
+ ) {
+ self.run(
+ sign: sign,
+ significand: significand,
+ exponent: exponent,
+ roundingDigitCount: roundingDigitCount,
+ rounding: rounding,
+ expected: expected,
+ expectedStatus: .isUnderflowInexact,
+ message: rounding.description,
+ file,
+ line
+ )
+ }
+
+ let zero = T._packWithoutChecks(
+ sign: .plus,
+ significand: 0,
+ signedExponent: T.minSignedExponent
+ )
+
+ run(.plus, .up, expected: T.leastNonzeroMagnitude)
+ run(.plus, .down, expected: zero)
+ run(.plus, .towardZero, expected: zero)
+ run(.plus, .toNearestOrEven, expected: zero)
+ run(.plus, .toNearestOrAwayFromZero, expected: zero)
+
+ run(.minus, .up, expected: -zero)
+ run(.minus, .down, expected: -T.leastNonzeroMagnitude)
+ run(.minus, .towardZero, expected: -zero)
+ run(.minus, .toNearestOrEven, expected: -zero)
+ run(.minus, .toNearestOrAwayFromZero, expected: -zero)
+ }
+}
diff --git a/Tests/DecimalTests/PropertiesTests.swift b/Tests/DecimalTests/PropertiesTests.swift
new file mode 100644
index 0000000..ef6660b
--- /dev/null
+++ b/Tests/DecimalTests/PropertiesTests.swift
@@ -0,0 +1,335 @@
+import XCTest
+@testable import Decimal
+
+private func assertDouble(_ d: Double, _ expected: String...) {
+ let s = String(d)
+ let isExpected = expected.contains { $0 == s }
+ Swift.print(s, isExpected ? "🟢" : "🔴")
+}
+
+private func assertDouble(_ d: Double, _ expected: Double) {
+ let e = String(expected)
+ assertDouble(d, e)
+}
+
+class PropertiesTests: XCTestCase, DecimalTests {
+
+ // MARK: - Abs
+
+ func test_magnitude_nan_double() {
+ // IEEE 754: sign does not matter
+ // Swift: always positive
+ let nan = Double.nan
+ assertDouble(nan.magnitude, "nan")
+ assertDouble((+nan).magnitude, "nan")
+ assertDouble((-nan).magnitude, "nan")
+
+ // IEEE 754: returns nan with whatever sign + invalid operation
+ // Swift: positive nan/snan
+ let snan = Double.signalingNaN
+ assertDouble(snan.magnitude, "nan", "snan")
+ assertDouble((+snan).magnitude, "nan", "snan")
+ assertDouble((-snan).magnitude, "nan", "snan")
+ }
+
+ func test_magnitude_nan() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let nan = T.nan
+ self.assertEqual(nan.magnitude, nan, file, line)
+ self.assertEqual((-nan).magnitude, nan, file, line)
+
+ let snan = T.signalingNaN
+ self.assertEqual(snan.magnitude, snan, file, line)
+ self.assertEqual((-snan).magnitude, snan, file, line)
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ // MARK: - ULP
+
+ // Check how 'Double' works, so we can reproduce it.
+ func test_ulp_double() {
+ // NaN
+ let nan = Double.nan
+ assertDouble((+nan).ulp, "nan")
+ assertDouble((-nan).ulp, "nan")
+
+ let payload = Double(nan: 123, signaling: false)
+ assertDouble((+payload).ulp, "nan")
+ assertDouble((-payload).ulp, "nan")
+
+ // Signaling NaN
+ let snan = Double.signalingNaN
+ assertDouble((+snan).ulp, "nan")
+ assertDouble((-snan).ulp, "nan")
+
+ let sPayload = Double(nan: 123, signaling: true)
+ assertDouble((+sPayload).ulp, "nan")
+ assertDouble((-sPayload).ulp, "nan")
+
+ // Infinity
+ let inf = Double.infinity
+ assertDouble((+inf).ulp, "nan")
+ assertDouble((-inf).ulp, "nan")
+
+ // Zero
+ let zero = Double.zero
+ assertDouble((+zero).ulp, Double.leastNonzeroMagnitude)
+ assertDouble((-zero).ulp, Double.leastNonzeroMagnitude)
+
+ // greatestFinite
+ let greatestFinite = Double.greatestFiniteMagnitude
+ let greatestFiniteExpected = greatestFinite.nextDown.ulp
+ assertDouble((+greatestFinite).ulp, greatestFiniteExpected)
+ assertDouble((-greatestFinite).ulp, greatestFiniteExpected)
+
+ // Finite
+ func assertDoubleBySubtraction(
+ _ d: Double,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let unsigned = d.magnitude
+
+ let expected = unsigned == Double.greatestFiniteMagnitude ?
+ unsigned - unsigned.nextDown :
+ unsigned.nextUp - unsigned
+
+ assertDouble(d.ulp, expected)
+ }
+
+ var d = 1.0
+
+ for _ in 0..<10 {
+ assertDoubleBySubtraction(d)
+ assertDoubleBySubtraction(d.nextDown)
+ assertDoubleBySubtraction(d.nextUp)
+
+ assertDoubleBySubtraction((-d))
+ assertDoubleBySubtraction((-d).nextDown)
+ assertDoubleBySubtraction((-d).nextUp)
+
+ // Go to the next number (most important!)
+ d *= 2
+ }
+ }
+
+ func test_ulp_nan() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ // NaN
+ let nan = T.nan
+ self.assertQuietNaN((+nan).ulp, "+nan", file, line)
+ self.assertQuietNaN((-nan).ulp, "-nan", file, line)
+
+ let payload = T(nan: 123, signaling: false)
+ self.assertQuietNaN((+payload).ulp, file, line)
+ self.assertQuietNaN((-payload).ulp, file, line)
+
+ // Signaling NaN
+ let snan = T.signalingNaN
+ self.assertQuietNaN((+snan).ulp, file, line)
+ self.assertQuietNaN((-snan).ulp, file, line)
+
+ let sPayload = T(nan: 123, signaling: true)
+ self.assertQuietNaN((+sPayload).ulp, file, line)
+ self.assertQuietNaN((-sPayload).ulp, file, line)
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_ulp_infinity() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ self.assertQuietNaN((+T.infinity).ulp, file, line)
+ self.assertQuietNaN((-T.infinity).ulp, file, line)
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_ulp_zero() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let leastNonzero = T.leastNonzeroMagnitude
+ self.assertEqual((+T.zero).ulp, leastNonzero, "+0", file, line)
+ self.assertEqual((-T.zero).ulp, leastNonzero, "-0", file, line)
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_ulp_greatestFiniteMagnitude() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let greatestFinite = T.greatestFiniteMagnitude
+ let expected = greatestFinite.nextDown.ulp
+
+ self.assertEqual((+greatestFinite).ulp, expected, "Plus", file, line)
+ self.assertEqual((-greatestFinite).ulp, expected, "Minus", file, line)
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ func test_ulp_finite() {
+ func test(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let min = -15
+ let max = 15
+
+ for e in min..(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ let min = T.minSignedExponent
+ let max = min + T.precisionInDigits + 1
+
+ for e in min..(
+ _ t: T.Type,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ for d: T in self.generateDecimals(approximateCount: 50) {
+ let expected = self.getUlpBySubtraction(d, file, line)
+ self.assertEqual(d.ulp, expected, "\(d)", file, line)
+
+ let cohorts = CohortGenerator(finiteOrZero: d)
+
+ if let inc = cohorts.incrementExponent(allowInexact: false) {
+ self.assertEqual(inc.ulp, expected, "\(d) -> \(inc)", file, line)
+ }
+
+ if let dec = cohorts.decrementExponent() {
+ self.assertEqual(dec.ulp, expected, "\(d) -> \(dec)", file, line)
+ }
+ }
+ }
+
+ test(Decimal32.self)
+ test(Decimal64.self)
+ test(Decimal128.self)
+ }
+
+ private func assertEqualUlpBySubtraction(
+ _ d: T,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ let expected = self.getUlpBySubtraction(d, file, line)
+ XCTAssertEqual(d.ulp, expected, "\(d)", file: file, line: line)
+ }
+
+ private func getUlpBySubtraction(
+ _ d: T,
+ _ file: StaticString,
+ _ line: UInt
+ ) -> T {
+ assert(d.isFinite)
+
+ let lhs: T
+ let rhs: T
+ let magnitude = d.magnitude
+ var status = DecimalStatus()
+
+ if magnitude.bid == T.greatestFiniteMagnitude.bid {
+ lhs = magnitude
+ rhs = magnitude._nextDown(status: &status)
+ } else {
+ lhs = magnitude._nextUp(status: &status)
+ rhs = magnitude
+ }
+
+ // Next can only signal on signaling NaN, and we have already handled it.
+ XCTAssert(
+ status.isEmpty,
+ "\(d).ulp: next signalled an exception.",
+ file: file,
+ line: line
+ )
+
+ // Rounding does not matter, because it should never round.
+ // Any other status should also not happen.
+ let rounding = DecimalFloatingPointRoundingRule.toNearestOrEven
+ let result = lhs._subtracting(other: rhs, rounding: rounding, status: &status)
+
+ XCTAssert(
+ status.isEmpty,
+ "\(d).ulp: subtraction signalled an exception.",
+ file: file,
+ line: line
+ )
+
+ return result
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/README.md b/Tests/DecimalTests/Speleotrove - generated/README.md
new file mode 100644
index 0000000..b0d46be
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/README.md
@@ -0,0 +1,2 @@
+All of the files in this directory were automatically generated.
+See README in the repository root for details.
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveAddTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveAddTests.swift
new file mode 100644
index 0000000..18aa076
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveAddTests.swift
@@ -0,0 +1,2047 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveAddTests: XCTestCase, SpeleotroveMixin {
+
+ func test_add64() {
+ /* ddadd001 */ self.add64("1", "1", "2", .toNearestOrEven)
+ /* ddadd002 */ self.add64("2", "3", "5", .toNearestOrEven)
+ /* ddadd003 */ self.add64("5.75", "3.3", "9.05", .toNearestOrEven)
+ /* ddadd004 */ self.add64("5", "-3", "2", .toNearestOrEven)
+ /* ddadd005 */ self.add64("-5", "-3", "-8", .toNearestOrEven)
+ /* ddadd006 */ self.add64("-7", "2.5", "-4.5", .toNearestOrEven)
+ /* ddadd007 */ self.add64("0.7", "0.3", "1.0", .toNearestOrEven)
+ /* ddadd008 */ self.add64("1.25", "1.25", "2.50", .toNearestOrEven)
+ /* ddadd009 */ self.add64("1.23456789", "1.00000000", "2.23456789", .toNearestOrEven)
+ /* ddadd010 */ self.add64("1.23456789", "1.00000011", "2.23456800", .toNearestOrEven)
+ /* ddadd011 */ self.add64("0.4444444444444446", "0.5555555555555555", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd012 */ self.add64("0.4444444444444445", "0.5555555555555555", "1.000000000000000", .toNearestOrEven)
+ /* ddadd013 */ self.add64("0.4444444444444444", "0.5555555555555555", "0.9999999999999999", .toNearestOrEven)
+ /* ddadd014 */ self.add64("4444444444444444", "0.49", "4444444444444444", .toNearestOrEven, .isInexact)
+ /* ddadd015 */ self.add64("4444444444444444", "0.499", "4444444444444444", .toNearestOrEven, .isInexact)
+ /* ddadd016 */ self.add64("4444444444444444", "0.4999", "4444444444444444", .toNearestOrEven, .isInexact)
+ /* ddadd017 */ self.add64("4444444444444444", "0.5000", "4444444444444444", .toNearestOrEven, .isInexact)
+ /* ddadd018 */ self.add64("4444444444444444", "0.5001", "4444444444444445", .toNearestOrEven, .isInexact)
+ /* ddadd019 */ self.add64("4444444444444444", "0.501", "4444444444444445", .toNearestOrEven, .isInexact)
+ /* ddadd020 */ self.add64("4444444444444444", "0.51", "4444444444444445", .toNearestOrEven, .isInexact)
+ /* ddadd021 */ self.add64("0", "1", "1", .toNearestOrEven)
+ /* ddadd022 */ self.add64("1", "1", "2", .toNearestOrEven)
+ /* ddadd023 */ self.add64("2", "1", "3", .toNearestOrEven)
+ /* ddadd024 */ self.add64("3", "1", "4", .toNearestOrEven)
+ /* ddadd025 */ self.add64("4", "1", "5", .toNearestOrEven)
+ /* ddadd026 */ self.add64("5", "1", "6", .toNearestOrEven)
+ /* ddadd027 */ self.add64("6", "1", "7", .toNearestOrEven)
+ /* ddadd028 */ self.add64("7", "1", "8", .toNearestOrEven)
+ /* ddadd029 */ self.add64("8", "1", "9", .toNearestOrEven)
+ /* ddadd030 */ self.add64("9", "1", "10", .toNearestOrEven)
+ /* ddadd031 */ self.add64("0.9998", "0.0000", "0.9998", .toNearestOrEven)
+ /* ddadd032 */ self.add64("0.9998", "0.0001", "0.9999", .toNearestOrEven)
+ /* ddadd033 */ self.add64("0.9998", "0.0002", "1.0000", .toNearestOrEven)
+ /* ddadd034 */ self.add64("0.9998", "0.0003", "1.0001", .toNearestOrEven)
+ /* ddadd035 */ self.add64("70", "10000e+16", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddadd036 */ self.add64("700", "10000e+16", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddadd037 */ self.add64("7000", "10000e+16", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddadd038 */ self.add64("70000", "10000e+16", "1.000000000000001E+20", .toNearestOrEven, .isInexact)
+ /* ddadd039 */ self.add64("700000", "10000e+16", "1.000000000000007E+20", .toNearestOrEven)
+ /* ddadd040 */ self.add64("10000e+16", "70", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddadd041 */ self.add64("10000e+16", "700", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddadd042 */ self.add64("10000e+16", "7000", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddadd044 */ self.add64("10000e+16", "70000", "1.000000000000001E+20", .toNearestOrEven, .isInexact)
+ /* ddadd045 */ self.add64("10000e+16", "700000", "1.000000000000007E+20", .toNearestOrEven)
+ /* ddadd046 */ self.add64("10000e+9", "7", "10000000000007", .toNearestOrEven)
+ /* ddadd047 */ self.add64("10000e+9", "70", "10000000000070", .toNearestOrEven)
+ /* ddadd048 */ self.add64("10000e+9", "700", "10000000000700", .toNearestOrEven)
+ /* ddadd049 */ self.add64("10000e+9", "7000", "10000000007000", .toNearestOrEven)
+ /* ddadd050 */ self.add64("10000e+9", "70000", "10000000070000", .toNearestOrEven)
+ /* ddadd051 */ self.add64("10000e+9", "700000", "10000000700000", .toNearestOrEven)
+ /* ddadd052 */ self.add64("10000e+9", "7000000", "10000007000000", .toNearestOrEven)
+ /* ddadd053 */ self.add64("12", "7.00", "19.00", .toNearestOrEven)
+ /* ddadd054 */ self.add64("1.3", "-1.07", "0.23", .toNearestOrEven)
+ /* ddadd055 */ self.add64("1.3", "-1.30", "0.00", .toNearestOrEven)
+ /* ddadd056 */ self.add64("1.3", "-2.07", "-0.77", .toNearestOrEven)
+ /* ddadd057 */ self.add64("1E+2", "1E+4", "1.01E+4", .toNearestOrEven)
+ /* ddadd061 */ self.add64("1", "0.0001", "1.0001", .toNearestOrEven)
+ /* ddadd062 */ self.add64("1", "0.00001", "1.00001", .toNearestOrEven)
+ /* ddadd063 */ self.add64("1", "0.000001", "1.000001", .toNearestOrEven)
+ /* ddadd064 */ self.add64("1", "0.0000001", "1.0000001", .toNearestOrEven)
+ /* ddadd065 */ self.add64("1", "0.00000001", "1.00000001", .toNearestOrEven)
+ /* ddadd070 */ self.add64("1", "0", "1", .toNearestOrEven)
+ /* ddadd071 */ self.add64("1", "0.", "1", .toNearestOrEven)
+ /* ddadd072 */ self.add64("1", ".0", "1.0", .toNearestOrEven)
+ /* ddadd073 */ self.add64("1", "0.0", "1.0", .toNearestOrEven)
+ /* ddadd074 */ self.add64("1", "0.00", "1.00", .toNearestOrEven)
+ /* ddadd075 */ self.add64("0", "1", "1", .toNearestOrEven)
+ /* ddadd076 */ self.add64("0.", "1", "1", .toNearestOrEven)
+ /* ddadd077 */ self.add64(".0", "1", "1.0", .toNearestOrEven)
+ /* ddadd078 */ self.add64("0.0", "1", "1.0", .toNearestOrEven)
+ /* ddadd079 */ self.add64("0.00", "1", "1.00", .toNearestOrEven)
+ /* ddadd080 */ self.add64("999999998", "1", "999999999", .toNearestOrEven)
+ /* ddadd081 */ self.add64("999999999", "1", "1000000000", .toNearestOrEven)
+ /* ddadd082 */ self.add64("99999999", "1", "100000000", .toNearestOrEven)
+ /* ddadd083 */ self.add64("9999999", "1", "10000000", .toNearestOrEven)
+ /* ddadd084 */ self.add64("999999", "1", "1000000", .toNearestOrEven)
+ /* ddadd085 */ self.add64("99999", "1", "100000", .toNearestOrEven)
+ /* ddadd086 */ self.add64("9999", "1", "10000", .toNearestOrEven)
+ /* ddadd087 */ self.add64("999", "1", "1000", .toNearestOrEven)
+ /* ddadd088 */ self.add64("99", "1", "100", .toNearestOrEven)
+ /* ddadd089 */ self.add64("9", "1", "10", .toNearestOrEven)
+ /* ddadd090 */ self.add64("-56267E-10", "0", "-0.0000056267", .toNearestOrEven)
+ /* ddadd091 */ self.add64("-56267E-6", "0", "-0.056267", .toNearestOrEven)
+ /* ddadd092 */ self.add64("-56267E-5", "0", "-0.56267", .toNearestOrEven)
+ /* ddadd093 */ self.add64("-56267E-4", "0", "-5.6267", .toNearestOrEven)
+ /* ddadd094 */ self.add64("-56267E-3", "0", "-56.267", .toNearestOrEven)
+ /* ddadd095 */ self.add64("-56267E-2", "0", "-562.67", .toNearestOrEven)
+ /* ddadd096 */ self.add64("-56267E-1", "0", "-5626.7", .toNearestOrEven)
+ /* ddadd097 */ self.add64("-56267E-0", "0", "-56267", .toNearestOrEven)
+ /* ddadd098 */ self.add64("-5E-10", "0", "-5E-10", .toNearestOrEven)
+ /* ddadd099 */ self.add64("-5E-7", "0", "-5E-7", .toNearestOrEven)
+ /* ddadd100 */ self.add64("-5E-6", "0", "-0.000005", .toNearestOrEven)
+ /* ddadd101 */ self.add64("-5E-5", "0", "-0.00005", .toNearestOrEven)
+ /* ddadd102 */ self.add64("-5E-4", "0", "-0.0005", .toNearestOrEven)
+ /* ddadd103 */ self.add64("-5E-1", "0", "-0.5", .toNearestOrEven)
+ /* ddadd104 */ self.add64("-5E0", "0", "-5", .toNearestOrEven)
+ /* ddadd105 */ self.add64("-5E1", "0", "-50", .toNearestOrEven)
+ /* ddadd106 */ self.add64("-5E5", "0", "-500000", .toNearestOrEven)
+ /* ddadd107 */ self.add64("-5E15", "0", "-5000000000000000", .toNearestOrEven)
+ /* ddadd108 */ self.add64("-5E16", "0", "-5.000000000000000E+16", .toNearestOrEven)
+ /* ddadd109 */ self.add64("-5E17", "0", "-5.000000000000000E+17", .toNearestOrEven)
+ /* ddadd110 */ self.add64("-5E18", "0", "-5.000000000000000E+18", .toNearestOrEven)
+ /* ddadd111 */ self.add64("-5E100", "0", "-5.000000000000000E+100", .toNearestOrEven)
+ /* ddadd113 */ self.add64("0", "-56267E-10", "-0.0000056267", .toNearestOrEven)
+ /* ddadd114 */ self.add64("0", "-56267E-6", "-0.056267", .toNearestOrEven)
+ /* ddadd116 */ self.add64("0", "-56267E-5", "-0.56267", .toNearestOrEven)
+ /* ddadd117 */ self.add64("0", "-56267E-4", "-5.6267", .toNearestOrEven)
+ /* ddadd119 */ self.add64("0", "-56267E-3", "-56.267", .toNearestOrEven)
+ /* ddadd120 */ self.add64("0", "-56267E-2", "-562.67", .toNearestOrEven)
+ /* ddadd121 */ self.add64("0", "-56267E-1", "-5626.7", .toNearestOrEven)
+ /* ddadd122 */ self.add64("0", "-56267E-0", "-56267", .toNearestOrEven)
+ /* ddadd123 */ self.add64("0", "-5E-10", "-5E-10", .toNearestOrEven)
+ /* ddadd124 */ self.add64("0", "-5E-7", "-5E-7", .toNearestOrEven)
+ /* ddadd125 */ self.add64("0", "-5E-6", "-0.000005", .toNearestOrEven)
+ /* ddadd126 */ self.add64("0", "-5E-5", "-0.00005", .toNearestOrEven)
+ /* ddadd127 */ self.add64("0", "-5E-4", "-0.0005", .toNearestOrEven)
+ /* ddadd128 */ self.add64("0", "-5E-1", "-0.5", .toNearestOrEven)
+ /* ddadd129 */ self.add64("0", "-5E0", "-5", .toNearestOrEven)
+ /* ddadd130 */ self.add64("0", "-5E1", "-50", .toNearestOrEven)
+ /* ddadd131 */ self.add64("0", "-5E5", "-500000", .toNearestOrEven)
+ /* ddadd132 */ self.add64("0", "-5E15", "-5000000000000000", .toNearestOrEven)
+ /* ddadd133 */ self.add64("0", "-5E16", "-5.000000000000000E+16", .toNearestOrEven)
+ /* ddadd134 */ self.add64("0", "-5E17", "-5.000000000000000E+17", .toNearestOrEven)
+ /* ddadd135 */ self.add64("0", "-5E18", "-5.000000000000000E+18", .toNearestOrEven)
+ /* ddadd136 */ self.add64("0", "-5E100", "-5.000000000000000E+100", .toNearestOrEven)
+ /* ddadd137 */ self.add64("1", "0E-19", "1.000000000000000", .toNearestOrEven)
+ /* ddadd138 */ self.add64("-1", "0E-19", "-1.000000000000000", .toNearestOrEven)
+ /* ddadd139 */ self.add64("0E-19", "1", "1.000000000000000", .toNearestOrEven)
+ /* ddadd140 */ self.add64("0E-19", "-1", "-1.000000000000000", .toNearestOrEven)
+ /* ddadd141 */ self.add64("1E+11", "0.0000", "100000000000.0000", .toNearestOrEven)
+ /* ddadd142 */ self.add64("1E+11", "0.00000", "100000000000.0000", .toNearestOrEven)
+ /* ddadd143 */ self.add64("0.000", "1E+12", "1000000000000.000", .toNearestOrEven)
+ /* ddadd144 */ self.add64("0.0000", "1E+12", "1000000000000.000", .toNearestOrEven)
+ /* ddadd146 */ self.add64("00.0", "0", "0.0", .toNearestOrEven)
+ /* ddadd147 */ self.add64("0.00", "0", "0.00", .toNearestOrEven)
+ /* ddadd148 */ self.add64("0", "0.00", "0.00", .toNearestOrEven)
+ /* ddadd149 */ self.add64("0", "00.0", "0.0", .toNearestOrEven)
+ /* ddadd150 */ self.add64("00.0", "0.00", "0.00", .toNearestOrEven)
+ /* ddadd151 */ self.add64("0.00", "00.0", "0.00", .toNearestOrEven)
+ /* ddadd152 */ self.add64("3", ".3", "3.3", .toNearestOrEven)
+ /* ddadd153 */ self.add64("3.", ".3", "3.3", .toNearestOrEven)
+ /* ddadd154 */ self.add64("3.0", ".3", "3.3", .toNearestOrEven)
+ /* ddadd155 */ self.add64("3.00", ".3", "3.30", .toNearestOrEven)
+ /* ddadd156 */ self.add64("3", "3", "6", .toNearestOrEven)
+ /* ddadd157 */ self.add64("3", "+3", "6", .toNearestOrEven)
+ /* ddadd158 */ self.add64("3", "-3", "0", .toNearestOrEven)
+ /* ddadd159 */ self.add64("0.3", "-0.3", "0.0", .toNearestOrEven)
+ /* ddadd160 */ self.add64("0.03", "-0.03", "0.00", .toNearestOrEven)
+ /* ddadd161 */ self.add64("1E+12", "-1", "999999999999", .toNearestOrEven)
+ /* ddadd162 */ self.add64("1E+12", "1.11", "1000000000001.11", .toNearestOrEven)
+ /* ddadd163 */ self.add64("1.11", "1E+12", "1000000000001.11", .toNearestOrEven)
+ /* ddadd164 */ self.add64("-1", "1E+12", "999999999999", .toNearestOrEven)
+ /* ddadd165 */ self.add64("7E+12", "-1", "6999999999999", .toNearestOrEven)
+ /* ddadd166 */ self.add64("7E+12", "1.11", "7000000000001.11", .toNearestOrEven)
+ /* ddadd167 */ self.add64("1.11", "7E+12", "7000000000001.11", .toNearestOrEven)
+ /* ddadd168 */ self.add64("-1", "7E+12", "6999999999999", .toNearestOrEven)
+ /* ddadd170 */ self.add64("4.444444444444444", "0.5555555555555567", "5.000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd171 */ self.add64("4.444444444444444", "0.5555555555555566", "5.000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd172 */ self.add64("4.444444444444444", "0.5555555555555565", "5.000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd173 */ self.add64("4.444444444444444", "0.5555555555555564", "5.000000000000000", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd174 */ self.add64("4.444444444444444", "0.5555555555555553", "4.999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd175 */ self.add64("4.444444444444444", "0.5555555555555552", "4.999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd176 */ self.add64("4.444444444444444", "0.5555555555555551", "4.999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd177 */ self.add64("4.444444444444444", "0.5555555555555550", "4.999999999999999", .toNearestOrAwayFromZero)
+ /* ddadd178 */ self.add64("4.444444444444444", "0.5555555555555545", "4.999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd179 */ self.add64("4.444444444444444", "0.5555555555555544", "4.999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd180 */ self.add64("4.444444444444444", "0.5555555555555543", "4.999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd181 */ self.add64("4.444444444444444", "0.5555555555555542", "4.999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd182 */ self.add64("4.444444444444444", "0.5555555555555541", "4.999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd183 */ self.add64("4.444444444444444", "0.5555555555555540", "4.999999999999998", .toNearestOrAwayFromZero)
+ /* ddadd200 */ self.add64("1234560123456789", "0", "1234560123456789", .toNearestOrAwayFromZero)
+ /* ddadd201 */ self.add64("1234560123456789", "0.000000001", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd202 */ self.add64("1234560123456789", "0.000001", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd203 */ self.add64("1234560123456789", "0.1", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd204 */ self.add64("1234560123456789", "0.4", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd205 */ self.add64("1234560123456789", "0.49", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd206 */ self.add64("1234560123456789", "0.499999", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd207 */ self.add64("1234560123456789", "0.499999999", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd208 */ self.add64("1234560123456789", "0.5", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd209 */ self.add64("1234560123456789", "0.500000001", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd210 */ self.add64("1234560123456789", "0.500001", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd211 */ self.add64("1234560123456789", "0.51", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd212 */ self.add64("1234560123456789", "0.6", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd213 */ self.add64("1234560123456789", "0.9", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd214 */ self.add64("1234560123456789", "0.99999", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd215 */ self.add64("1234560123456789", "0.999999999", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd216 */ self.add64("1234560123456789", "1", "1234560123456790", .toNearestOrAwayFromZero)
+ /* ddadd217 */ self.add64("1234560123456789", "1.000000001", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd218 */ self.add64("1234560123456789", "1.00001", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd219 */ self.add64("1234560123456789", "1.1", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd220 */ self.add64("1234560123456789", "0", "1234560123456789", .toNearestOrEven)
+ /* ddadd221 */ self.add64("1234560123456789", "0.000000001", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddadd222 */ self.add64("1234560123456789", "0.000001", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddadd223 */ self.add64("1234560123456789", "0.1", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddadd224 */ self.add64("1234560123456789", "0.4", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddadd225 */ self.add64("1234560123456789", "0.49", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddadd226 */ self.add64("1234560123456789", "0.499999", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddadd227 */ self.add64("1234560123456789", "0.499999999", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddadd228 */ self.add64("1234560123456789", "0.5", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddadd229 */ self.add64("1234560123456789", "0.500000001", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddadd230 */ self.add64("1234560123456789", "0.500001", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddadd231 */ self.add64("1234560123456789", "0.51", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddadd232 */ self.add64("1234560123456789", "0.6", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddadd233 */ self.add64("1234560123456789", "0.9", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddadd234 */ self.add64("1234560123456789", "0.99999", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddadd235 */ self.add64("1234560123456789", "0.999999999", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddadd236 */ self.add64("1234560123456789", "1", "1234560123456790", .toNearestOrEven)
+ /* ddadd237 */ self.add64("1234560123456789", "1.00000001", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddadd238 */ self.add64("1234560123456789", "1.00001", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddadd239 */ self.add64("1234560123456789", "1.1", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddadd240 */ self.add64("1234560123456788", "0.499999999", "1234560123456788", .toNearestOrEven, .isInexact)
+ /* ddadd241 */ self.add64("1234560123456788", "0.5", "1234560123456788", .toNearestOrEven, .isInexact)
+ /* ddadd242 */ self.add64("1234560123456788", "0.500000001", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddadd250 */ self.add64("1234560123456789", "0", "1234560123456789", .towardZero)
+ /* ddadd251 */ self.add64("1234560123456789", "0.000000001", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd252 */ self.add64("1234560123456789", "0.000001", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd253 */ self.add64("1234560123456789", "0.1", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd254 */ self.add64("1234560123456789", "0.4", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd255 */ self.add64("1234560123456789", "0.49", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd256 */ self.add64("1234560123456789", "0.499999", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd257 */ self.add64("1234560123456789", "0.499999999", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd258 */ self.add64("1234560123456789", "0.5", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd259 */ self.add64("1234560123456789", "0.500000001", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd260 */ self.add64("1234560123456789", "0.500001", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd261 */ self.add64("1234560123456789", "0.51", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd262 */ self.add64("1234560123456789", "0.6", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd263 */ self.add64("1234560123456789", "0.9", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd264 */ self.add64("1234560123456789", "0.99999", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd265 */ self.add64("1234560123456789", "0.999999999", "1234560123456789", .towardZero, .isInexact)
+ /* ddadd266 */ self.add64("1234560123456789", "1", "1234560123456790", .towardZero)
+ /* ddadd267 */ self.add64("1234560123456789", "1.00000001", "1234560123456790", .towardZero, .isInexact)
+ /* ddadd268 */ self.add64("1234560123456789", "1.00001", "1234560123456790", .towardZero, .isInexact)
+ /* ddadd269 */ self.add64("1234560123456789", "1.1", "1234560123456790", .towardZero, .isInexact)
+ /* ddadd301 */ self.add64("-1", "1", "0", .toNearestOrAwayFromZero)
+ /* ddadd302 */ self.add64("0", "1", "1", .toNearestOrAwayFromZero)
+ /* ddadd303 */ self.add64("1", "1", "2", .toNearestOrAwayFromZero)
+ /* ddadd304 */ self.add64("12", "1", "13", .toNearestOrAwayFromZero)
+ /* ddadd305 */ self.add64("98", "1", "99", .toNearestOrAwayFromZero)
+ /* ddadd306 */ self.add64("99", "1", "100", .toNearestOrAwayFromZero)
+ /* ddadd307 */ self.add64("100", "1", "101", .toNearestOrAwayFromZero)
+ /* ddadd308 */ self.add64("101", "1", "102", .toNearestOrAwayFromZero)
+ /* ddadd309 */ self.add64("-1", "-1", "-2", .toNearestOrAwayFromZero)
+ /* ddadd310 */ self.add64("0", "-1", "-1", .toNearestOrAwayFromZero)
+ /* ddadd311 */ self.add64("1", "-1", "0", .toNearestOrAwayFromZero)
+ /* ddadd312 */ self.add64("12", "-1", "11", .toNearestOrAwayFromZero)
+ /* ddadd313 */ self.add64("98", "-1", "97", .toNearestOrAwayFromZero)
+ /* ddadd314 */ self.add64("99", "-1", "98", .toNearestOrAwayFromZero)
+ /* ddadd315 */ self.add64("100", "-1", "99", .toNearestOrAwayFromZero)
+ /* ddadd316 */ self.add64("101", "-1", "100", .toNearestOrAwayFromZero)
+ /* ddadd321 */ self.add64("-0.01", "0.01", "0.00", .toNearestOrAwayFromZero)
+ /* ddadd322 */ self.add64("0.00", "0.01", "0.01", .toNearestOrAwayFromZero)
+ /* ddadd323 */ self.add64("0.01", "0.01", "0.02", .toNearestOrAwayFromZero)
+ /* ddadd324 */ self.add64("0.12", "0.01", "0.13", .toNearestOrAwayFromZero)
+ /* ddadd325 */ self.add64("0.98", "0.01", "0.99", .toNearestOrAwayFromZero)
+ /* ddadd326 */ self.add64("0.99", "0.01", "1.00", .toNearestOrAwayFromZero)
+ /* ddadd327 */ self.add64("1.00", "0.01", "1.01", .toNearestOrAwayFromZero)
+ /* ddadd328 */ self.add64("1.01", "0.01", "1.02", .toNearestOrAwayFromZero)
+ /* ddadd329 */ self.add64("-0.01", "-0.01", "-0.02", .toNearestOrAwayFromZero)
+ /* ddadd330 */ self.add64("0.00", "-0.01", "-0.01", .toNearestOrAwayFromZero)
+ /* ddadd331 */ self.add64("0.01", "-0.01", "0.00", .toNearestOrAwayFromZero)
+ /* ddadd332 */ self.add64("0.12", "-0.01", "0.11", .toNearestOrAwayFromZero)
+ /* ddadd333 */ self.add64("0.98", "-0.01", "0.97", .toNearestOrAwayFromZero)
+ /* ddadd334 */ self.add64("0.99", "-0.01", "0.98", .toNearestOrAwayFromZero)
+ /* ddadd335 */ self.add64("1.00", "-0.01", "0.99", .toNearestOrAwayFromZero)
+ /* ddadd336 */ self.add64("1.01", "-0.01", "1.00", .toNearestOrAwayFromZero)
+ /* ddadd340 */ self.add64("1E+3", "0", "1000", .toNearestOrAwayFromZero)
+ /* ddadd341 */ self.add64("1E+15", "0", "1000000000000000", .toNearestOrAwayFromZero)
+ /* ddadd342 */ self.add64("1E+16", "0", "1.000000000000000E+16", .toNearestOrAwayFromZero)
+ /* ddadd343 */ self.add64("1E+20", "0", "1.000000000000000E+20", .toNearestOrAwayFromZero)
+ /* ddadd344 */ self.add64("1E+3", "1", "1001", .toNearestOrAwayFromZero)
+ /* ddadd345 */ self.add64("1E+15", "1", "1000000000000001", .toNearestOrAwayFromZero)
+ /* ddadd346 */ self.add64("1E+16", "1", "1.000000000000000E+16", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd347 */ self.add64("1E+20", "1", "1.000000000000000E+20", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd348 */ self.add64("1E+3", "7", "1007", .toNearestOrAwayFromZero)
+ /* ddadd349 */ self.add64("1E+15", "7", "1000000000000007", .toNearestOrAwayFromZero)
+ /* ddadd350 */ self.add64("1E+16", "7", "1.000000000000001E+16", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd351 */ self.add64("1E+20", "7", "1.000000000000000E+20", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd360 */ self.add64("0E+50", "10000E+1", "1.0000E+5", .toNearestOrAwayFromZero)
+ /* ddadd361 */ self.add64("0E-50", "10000E+1", "100000.0000000000", .toNearestOrAwayFromZero)
+ /* ddadd362 */ self.add64("10000E+1", "0E-50", "100000.0000000000", .toNearestOrAwayFromZero)
+ /* ddadd363 */ self.add64("10000E+1", "10000E-50", "100000.0000000000", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd364 */ self.add64("9.999999999999999E+384", "-9.999999999999999E+384", "0E+369", .toNearestOrAwayFromZero)
+ /* ddadd372 */ self.add64("999999999999999", "815", "1000000000000814", .toNearestOrAwayFromZero)
+ /* ddadd373 */ self.add64("9999999999999999", "815", "1.000000000000081E+16", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd374 */ self.add64("999999999999999", "815", "1000000000000814", .toNearestOrEven)
+ /* ddadd375 */ self.add64("9999999999999999", "815", "1.000000000000081E+16", .toNearestOrEven, .isInexact)
+ /* ddadd380 */ self.add64("1E+384", "1E+384", "2.000000000000000E+384", .toNearestOrEven)
+ /* ddadd381 */ self.add64("1E+380", "1E+380", "2.00000000000E+380", .toNearestOrEven)
+ /* ddadd382 */ self.add64("1E+376", "1E+376", "2.0000000E+376", .toNearestOrEven)
+ /* ddadd383 */ self.add64("1E+372", "1E+372", "2.000E+372", .toNearestOrEven)
+ /* ddadd384 */ self.add64("1E+370", "1E+370", "2.0E+370", .toNearestOrEven)
+ /* ddadd385 */ self.add64("1E+369", "1E+369", "2E+369", .toNearestOrEven)
+ /* ddadd386 */ self.add64("1E+368", "1E+368", "2E+368", .toNearestOrEven)
+ /* ddadd400 */ self.add64("1", "77e-14", "1.00000000000077", .toNearestOrEven)
+ /* ddadd401 */ self.add64("1", "77e-15", "1.000000000000077", .toNearestOrEven)
+ /* ddadd402 */ self.add64("1", "77e-16", "1.000000000000008", .toNearestOrEven, .isInexact)
+ /* ddadd403 */ self.add64("1", "77e-17", "1.000000000000001", .toNearestOrEven, .isInexact)
+ /* ddadd404 */ self.add64("1", "77e-18", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd405 */ self.add64("1", "77e-19", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd406 */ self.add64("1", "77e-299", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd410 */ self.add64("10", "77e-14", "10.00000000000077", .toNearestOrEven)
+ /* ddadd411 */ self.add64("10", "77e-15", "10.00000000000008", .toNearestOrEven, .isInexact)
+ /* ddadd412 */ self.add64("10", "77e-16", "10.00000000000001", .toNearestOrEven, .isInexact)
+ /* ddadd413 */ self.add64("10", "77e-17", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd414 */ self.add64("10", "77e-18", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd415 */ self.add64("10", "77e-19", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd416 */ self.add64("10", "77e-299", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd420 */ self.add64("77e-14", "1", "1.00000000000077", .toNearestOrEven)
+ /* ddadd421 */ self.add64("77e-15", "1", "1.000000000000077", .toNearestOrEven)
+ /* ddadd422 */ self.add64("77e-16", "1", "1.000000000000008", .toNearestOrEven, .isInexact)
+ /* ddadd423 */ self.add64("77e-17", "1", "1.000000000000001", .toNearestOrEven, .isInexact)
+ /* ddadd424 */ self.add64("77e-18", "1", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd425 */ self.add64("77e-19", "1", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd426 */ self.add64("77e-299", "1", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd430 */ self.add64("77e-14", "10", "10.00000000000077", .toNearestOrEven)
+ /* ddadd431 */ self.add64("77e-15", "10", "10.00000000000008", .toNearestOrEven, .isInexact)
+ /* ddadd432 */ self.add64("77e-16", "10", "10.00000000000001", .toNearestOrEven, .isInexact)
+ /* ddadd433 */ self.add64("77e-17", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd434 */ self.add64("77e-18", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd435 */ self.add64("77e-19", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd436 */ self.add64("77e-299", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd539 */ self.add64("4444444444444444", "3333333333333333", "7777777777777777", .toNearestOrEven)
+ /* ddadd540 */ self.add64("4444444444444444", "4444444444444444", "8888888888888888", .toNearestOrEven)
+ /* ddadd541 */ self.add64("4444444444444444", "5555555555555555", "9999999999999999", .toNearestOrEven)
+ /* ddadd542 */ self.add64("3333333333333333", "4444444444444444", "7777777777777777", .toNearestOrEven)
+ /* ddadd543 */ self.add64("4444444444444444", "4444444444444444", "8888888888888888", .toNearestOrEven)
+ /* ddadd544 */ self.add64("5555555555555555", "4444444444444444", "9999999999999999", .toNearestOrEven)
+ /* ddadd545 */ self.add64("3000004000000000", "3000000000000040", "6000004000000040", .toNearestOrEven)
+ /* ddadd546 */ self.add64("3000000400000000", "4000000000000400", "7000000400000400", .toNearestOrEven)
+ /* ddadd547 */ self.add64("3000000040000000", "5000000000004000", "8000000040004000", .toNearestOrEven)
+ /* ddadd548 */ self.add64("4000000004000000", "3000000000040000", "7000000004040000", .toNearestOrEven)
+ /* ddadd549 */ self.add64("4000000000400000", "4000000000400000", "8000000000800000", .toNearestOrEven)
+ /* ddadd550 */ self.add64("4000000000040000", "5000000004000000", "9000000004040000", .toNearestOrEven)
+ /* ddadd551 */ self.add64("5000000000004000", "3000000040000000", "8000000040004000", .toNearestOrEven)
+ /* ddadd552 */ self.add64("5000000000000400", "4000000400000000", "9000000400000400", .toNearestOrEven)
+ /* ddadd553 */ self.add64("5000000000000040", "5000004000000000", "1.000000400000004E+16", .toNearestOrEven)
+ /* ddadd554 */ self.add64("8999999999999999", "0000000000000001", "9000000000000000", .toNearestOrEven)
+ /* ddadd555 */ self.add64("0000000000000001", "8999999999999999", "9000000000000000", .toNearestOrEven)
+ /* ddadd556 */ self.add64("0999999999999999", "0000000000000001", "1000000000000000", .toNearestOrEven)
+ /* ddadd557 */ self.add64("0000000000000001", "0999999999999999", "1000000000000000", .toNearestOrEven)
+ /* ddadd558 */ self.add64("4444444444444444", "4555555555555556", "9000000000000000", .toNearestOrEven)
+ /* ddadd559 */ self.add64("4555555555555556", "4444444444444444", "9000000000000000", .toNearestOrEven)
+ /* ddadd6440 */ self.add64("1", "-77e-14", "0.99999999999923", .toNearestOrEven)
+ /* ddadd6441 */ self.add64("1", "-77e-15", "0.999999999999923", .toNearestOrEven)
+ /* ddadd6442 */ self.add64("1", "-77e-16", "0.9999999999999923", .toNearestOrEven)
+ /* ddadd6443 */ self.add64("1", "-77e-17", "0.9999999999999992", .toNearestOrEven, .isInexact)
+ /* ddadd6444 */ self.add64("1", "-77e-18", "0.9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd6445 */ self.add64("1", "-77e-19", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6446 */ self.add64("1", "-77e-99", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6450 */ self.add64("10", "-77e-14", "9.99999999999923", .toNearestOrEven)
+ /* ddadd6451 */ self.add64("10", "-77e-15", "9.999999999999923", .toNearestOrEven)
+ /* ddadd6452 */ self.add64("10", "-77e-16", "9.999999999999992", .toNearestOrEven, .isInexact)
+ /* ddadd6453 */ self.add64("10", "-77e-17", "9.999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd6454 */ self.add64("10", "-77e-18", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6455 */ self.add64("10", "-77e-19", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6456 */ self.add64("10", "-77e-99", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6460 */ self.add64("-77e-14", "1", "0.99999999999923", .toNearestOrEven)
+ /* ddadd6461 */ self.add64("-77e-15", "1", "0.999999999999923", .toNearestOrEven)
+ /* ddadd6462 */ self.add64("-77e-16", "1", "0.9999999999999923", .toNearestOrEven)
+ /* ddadd6463 */ self.add64("-77e-17", "1", "0.9999999999999992", .toNearestOrEven, .isInexact)
+ /* ddadd6464 */ self.add64("-77e-18", "1", "0.9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd6465 */ self.add64("-77e-19", "1", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6466 */ self.add64("-77e-99", "1", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6470 */ self.add64("-77e-14", "10", "9.99999999999923", .toNearestOrEven)
+ /* ddadd6471 */ self.add64("-77e-15", "10", "9.999999999999923", .toNearestOrEven)
+ /* ddadd6472 */ self.add64("-77e-16", "10", "9.999999999999992", .toNearestOrEven, .isInexact)
+ /* ddadd6473 */ self.add64("-77e-17", "10", "9.999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd6474 */ self.add64("-77e-18", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6475 */ self.add64("-77e-19", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6476 */ self.add64("-77e-99", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6480 */ self.add64("-1", "77e-14", "-0.99999999999923", .toNearestOrEven)
+ /* ddadd6481 */ self.add64("-1", "77e-15", "-0.999999999999923", .toNearestOrEven)
+ /* ddadd6482 */ self.add64("-1", "77e-16", "-0.9999999999999923", .toNearestOrEven)
+ /* ddadd6483 */ self.add64("-1", "77e-17", "-0.9999999999999992", .toNearestOrEven, .isInexact)
+ /* ddadd6484 */ self.add64("-1", "77e-18", "-0.9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd6485 */ self.add64("-1", "77e-19", "-1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6486 */ self.add64("-1", "77e-99", "-1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6490 */ self.add64("-10", "77e-14", "-9.99999999999923", .toNearestOrEven)
+ /* ddadd6491 */ self.add64("-10", "77e-15", "-9.999999999999923", .toNearestOrEven)
+ /* ddadd6492 */ self.add64("-10", "77e-16", "-9.999999999999992", .toNearestOrEven, .isInexact)
+ /* ddadd6493 */ self.add64("-10", "77e-17", "-9.999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd6494 */ self.add64("-10", "77e-18", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6495 */ self.add64("-10", "77e-19", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6496 */ self.add64("-10", "77e-99", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6500 */ self.add64("77e-14", "-1", "-0.99999999999923", .toNearestOrEven)
+ /* ddadd6501 */ self.add64("77e-15", "-1", "-0.999999999999923", .toNearestOrEven)
+ /* ddadd6502 */ self.add64("77e-16", "-1", "-0.9999999999999923", .toNearestOrEven)
+ /* ddadd6503 */ self.add64("77e-17", "-1", "-0.9999999999999992", .toNearestOrEven, .isInexact)
+ /* ddadd6504 */ self.add64("77e-18", "-1", "-0.9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd6505 */ self.add64("77e-19", "-1", "-1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6506 */ self.add64("77e-99", "-1", "-1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6510 */ self.add64("77e-14", "-10", "-9.99999999999923", .toNearestOrEven)
+ /* ddadd6511 */ self.add64("77e-15", "-10", "-9.999999999999923", .toNearestOrEven)
+ /* ddadd6512 */ self.add64("77e-16", "-10", "-9.999999999999992", .toNearestOrEven, .isInexact)
+ /* ddadd6513 */ self.add64("77e-17", "-10", "-9.999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd6514 */ self.add64("77e-18", "-10", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6515 */ self.add64("77e-19", "-10", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6516 */ self.add64("77e-99", "-10", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddadd6540 */ self.add64("6543210123456789", "0", "6543210123456789", .toNearestOrAwayFromZero)
+ /* ddadd6541 */ self.add64("6543210123456789", "0.000000001", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6542 */ self.add64("6543210123456789", "0.000001", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6543 */ self.add64("6543210123456789", "0.1", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6544 */ self.add64("6543210123456789", "0.4", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6545 */ self.add64("6543210123456789", "0.49", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6546 */ self.add64("6543210123456789", "0.499999", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6547 */ self.add64("6543210123456789", "0.499999999", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6548 */ self.add64("6543210123456789", "0.5", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6549 */ self.add64("6543210123456789", "0.500000001", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6550 */ self.add64("6543210123456789", "0.500001", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6551 */ self.add64("6543210123456789", "0.51", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6552 */ self.add64("6543210123456789", "0.6", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6553 */ self.add64("6543210123456789", "0.9", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6554 */ self.add64("6543210123456789", "0.99999", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6555 */ self.add64("6543210123456789", "0.999999999", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6556 */ self.add64("6543210123456789", "1", "6543210123456790", .toNearestOrAwayFromZero)
+ /* ddadd6557 */ self.add64("6543210123456789", "1.000000001", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6558 */ self.add64("6543210123456789", "1.00001", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6559 */ self.add64("6543210123456789", "1.1", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd6560 */ self.add64("6543210123456789", "0", "6543210123456789", .toNearestOrEven)
+ /* ddadd6561 */ self.add64("6543210123456789", "0.000000001", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddadd6562 */ self.add64("6543210123456789", "0.000001", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddadd6563 */ self.add64("6543210123456789", "0.1", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddadd6564 */ self.add64("6543210123456789", "0.4", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddadd6565 */ self.add64("6543210123456789", "0.49", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddadd6566 */ self.add64("6543210123456789", "0.499999", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddadd6567 */ self.add64("6543210123456789", "0.499999999", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddadd6568 */ self.add64("6543210123456789", "0.5", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddadd6569 */ self.add64("6543210123456789", "0.500000001", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddadd6570 */ self.add64("6543210123456789", "0.500001", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddadd6571 */ self.add64("6543210123456789", "0.51", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddadd6572 */ self.add64("6543210123456789", "0.6", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddadd6573 */ self.add64("6543210123456789", "0.9", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddadd6574 */ self.add64("6543210123456789", "0.99999", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddadd6575 */ self.add64("6543210123456789", "0.999999999", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddadd6576 */ self.add64("6543210123456789", "1", "6543210123456790", .toNearestOrEven)
+ /* ddadd6577 */ self.add64("6543210123456789", "1.00000001", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddadd6578 */ self.add64("6543210123456789", "1.00001", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddadd6579 */ self.add64("6543210123456789", "1.1", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddadd71100 */ self.add64("1e+2", "-1e-383", "99.99999999999999", .towardZero, .isInexact)
+ /* ddadd71101 */ self.add64("1e+1", "-1e-383", "9.999999999999999", .towardZero, .isInexact)
+ /* ddadd71103 */ self.add64("+1", "-1e-383", "0.9999999999999999", .towardZero, .isInexact)
+ /* ddadd71104 */ self.add64("1e-1", "-1e-383", "0.09999999999999999", .towardZero, .isInexact)
+ /* ddadd71105 */ self.add64("1e-2", "-1e-383", "0.009999999999999999", .towardZero, .isInexact)
+ /* ddadd71106 */ self.add64("1e-3", "-1e-383", "0.0009999999999999999", .towardZero, .isInexact)
+ /* ddadd71107 */ self.add64("1e-4", "-1e-383", "0.00009999999999999999", .towardZero, .isInexact)
+ /* ddadd71108 */ self.add64("1e-5", "-1e-383", "0.000009999999999999999", .towardZero, .isInexact)
+ /* ddadd71109 */ self.add64("1e-6", "-1e-383", "9.999999999999999E-7", .towardZero, .isInexact)
+ /* ddadd71110 */ self.add64("-1e+2", "+1e-383", "-99.99999999999999", .up, .isInexact)
+ /* ddadd71111 */ self.add64("-1e+1", "+1e-383", "-9.999999999999999", .up, .isInexact)
+ /* ddadd71113 */ self.add64("-1", "+1e-383", "-0.9999999999999999", .up, .isInexact)
+ /* ddadd71114 */ self.add64("-1e-1", "+1e-383", "-0.09999999999999999", .up, .isInexact)
+ /* ddadd71115 */ self.add64("-1e-2", "+1e-383", "-0.009999999999999999", .up, .isInexact)
+ /* ddadd71116 */ self.add64("-1e-3", "+1e-383", "-0.0009999999999999999", .up, .isInexact)
+ /* ddadd71117 */ self.add64("-1e-4", "+1e-383", "-0.00009999999999999999", .up, .isInexact)
+ /* ddadd71118 */ self.add64("-1e-5", "+1e-383", "-0.000009999999999999999", .up, .isInexact)
+ /* ddadd71119 */ self.add64("-1e-6", "+1e-383", "-9.999999999999999E-7", .up, .isInexact)
+ /* ddadd71300 */ self.add64("1E16", "-0.5", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71310 */ self.add64("1E16", "-0.51", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71311 */ self.add64("1E16", "-0.501", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71312 */ self.add64("1E16", "-0.5001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71313 */ self.add64("1E16", "-0.50001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71314 */ self.add64("1E16", "-0.500001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71315 */ self.add64("1E16", "-0.5000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71316 */ self.add64("1E16", "-0.50000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71317 */ self.add64("1E16", "-0.500000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71318 */ self.add64("1E16", "-0.5000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71319 */ self.add64("1E16", "-0.50000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71320 */ self.add64("1E16", "-0.500000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71321 */ self.add64("1E16", "-0.5000000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71322 */ self.add64("1E16", "-0.50000000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71323 */ self.add64("1E16", "-0.500000000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71324 */ self.add64("1E16", "-0.5000000000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71325 */ self.add64("1E16", "-0.5000000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71326 */ self.add64("1E16", "-0.500000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71327 */ self.add64("1E16", "-0.50000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71328 */ self.add64("1E16", "-0.5000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71329 */ self.add64("1E16", "-0.500000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71330 */ self.add64("1E16", "-0.50000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71331 */ self.add64("1E16", "-0.5000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71332 */ self.add64("1E16", "-0.500000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71333 */ self.add64("1E16", "-0.50000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71334 */ self.add64("1E16", "-0.5000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71335 */ self.add64("1E16", "-0.500000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71336 */ self.add64("1E16", "-0.50000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71337 */ self.add64("1E16", "-0.5000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71338 */ self.add64("1E16", "-0.500", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71339 */ self.add64("1E16", "-0.50", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71340 */ self.add64("1E16", "-5000000.000010001", "9999999995000000", .toNearestOrEven, .isInexact)
+ /* ddadd71341 */ self.add64("1E16", "-5000000.000000001", "9999999995000000", .toNearestOrEven, .isInexact)
+ /* ddadd71349 */ self.add64("9999999999999999", "0.4", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71350 */ self.add64("9999999999999999", "0.49", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71351 */ self.add64("9999999999999999", "0.499", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71352 */ self.add64("9999999999999999", "0.4999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71353 */ self.add64("9999999999999999", "0.49999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71354 */ self.add64("9999999999999999", "0.499999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71355 */ self.add64("9999999999999999", "0.4999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71356 */ self.add64("9999999999999999", "0.49999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71357 */ self.add64("9999999999999999", "0.499999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71358 */ self.add64("9999999999999999", "0.4999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71359 */ self.add64("9999999999999999", "0.49999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71360 */ self.add64("9999999999999999", "0.499999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71361 */ self.add64("9999999999999999", "0.4999999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71362 */ self.add64("9999999999999999", "0.49999999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71363 */ self.add64("9999999999999999", "0.499999999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71364 */ self.add64("9999999999999999", "0.4999999999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddadd71365 */ self.add64("9999999999999999", "0.5000000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71367 */ self.add64("9999999999999999", "0.500000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71368 */ self.add64("9999999999999999", "0.50000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71369 */ self.add64("9999999999999999", "0.5000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71370 */ self.add64("9999999999999999", "0.500000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71371 */ self.add64("9999999999999999", "0.50000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71372 */ self.add64("9999999999999999", "0.5000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71373 */ self.add64("9999999999999999", "0.500000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71374 */ self.add64("9999999999999999", "0.50000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71375 */ self.add64("9999999999999999", "0.5000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71376 */ self.add64("9999999999999999", "0.500000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71377 */ self.add64("9999999999999999", "0.50000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71378 */ self.add64("9999999999999999", "0.5000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71379 */ self.add64("9999999999999999", "0.500", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71380 */ self.add64("9999999999999999", "0.50", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71381 */ self.add64("9999999999999999", "0.5", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71382 */ self.add64("9999999999999999", "0.5000000000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71383 */ self.add64("9999999999999999", "0.500000000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71384 */ self.add64("9999999999999999", "0.50000000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71385 */ self.add64("9999999999999999", "0.5000000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71386 */ self.add64("9999999999999999", "0.500000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71387 */ self.add64("9999999999999999", "0.50000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71388 */ self.add64("9999999999999999", "0.5000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71389 */ self.add64("9999999999999999", "0.500000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71390 */ self.add64("9999999999999999", "0.50000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71391 */ self.add64("9999999999999999", "0.5000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71392 */ self.add64("9999999999999999", "0.500001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71393 */ self.add64("9999999999999999", "0.50001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71394 */ self.add64("9999999999999999", "0.5001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71395 */ self.add64("9999999999999999", "0.501", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71396 */ self.add64("9999999999999999", "0.51", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddadd71420 */ self.add64("0", "1.123456789012345", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71421 */ self.add64("0", "1.123456789012345E-1", "0.1123456789012345", .toNearestOrEven)
+ /* ddadd71422 */ self.add64("0", "1.123456789012345E-2", "0.01123456789012345", .toNearestOrEven)
+ /* ddadd71423 */ self.add64("0", "1.123456789012345E-3", "0.001123456789012345", .toNearestOrEven)
+ /* ddadd71424 */ self.add64("0", "1.123456789012345E-4", "0.0001123456789012345", .toNearestOrEven)
+ /* ddadd71425 */ self.add64("0", "1.123456789012345E-5", "0.00001123456789012345", .toNearestOrEven)
+ /* ddadd71426 */ self.add64("0", "1.123456789012345E-6", "0.000001123456789012345", .toNearestOrEven)
+ /* ddadd71427 */ self.add64("0", "1.123456789012345E-7", "1.123456789012345E-7", .toNearestOrEven)
+ /* ddadd71428 */ self.add64("0", "1.123456789012345E-8", "1.123456789012345E-8", .toNearestOrEven)
+ /* ddadd71429 */ self.add64("0", "1.123456789012345E-9", "1.123456789012345E-9", .toNearestOrEven)
+ /* ddadd71430 */ self.add64("0", "1.123456789012345E-10", "1.123456789012345E-10", .toNearestOrEven)
+ /* ddadd71431 */ self.add64("0", "1.123456789012345E-11", "1.123456789012345E-11", .toNearestOrEven)
+ /* ddadd71432 */ self.add64("0", "1.123456789012345E-12", "1.123456789012345E-12", .toNearestOrEven)
+ /* ddadd71433 */ self.add64("0", "1.123456789012345E-13", "1.123456789012345E-13", .toNearestOrEven)
+ /* ddadd71434 */ self.add64("0", "1.123456789012345E-14", "1.123456789012345E-14", .toNearestOrEven)
+ /* ddadd71435 */ self.add64("0", "1.123456789012345E-15", "1.123456789012345E-15", .toNearestOrEven)
+ /* ddadd71436 */ self.add64("0", "1.123456789012345E-16", "1.123456789012345E-16", .toNearestOrEven)
+ /* ddadd71437 */ self.add64("0", "1.123456789012345E-17", "1.123456789012345E-17", .toNearestOrEven)
+ /* ddadd71438 */ self.add64("0", "1.123456789012345E-18", "1.123456789012345E-18", .toNearestOrEven)
+ /* ddadd71439 */ self.add64("0", "1.123456789012345E-19", "1.123456789012345E-19", .toNearestOrEven)
+ /* ddadd71440 */ self.add64("1.123456789012345", "0", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71441 */ self.add64("1.123456789012345E-1", "0", "0.1123456789012345", .toNearestOrEven)
+ /* ddadd71442 */ self.add64("1.123456789012345E-2", "0", "0.01123456789012345", .toNearestOrEven)
+ /* ddadd71443 */ self.add64("1.123456789012345E-3", "0", "0.001123456789012345", .toNearestOrEven)
+ /* ddadd71444 */ self.add64("1.123456789012345E-4", "0", "0.0001123456789012345", .toNearestOrEven)
+ /* ddadd71445 */ self.add64("1.123456789012345E-5", "0", "0.00001123456789012345", .toNearestOrEven)
+ /* ddadd71446 */ self.add64("1.123456789012345E-6", "0", "0.000001123456789012345", .toNearestOrEven)
+ /* ddadd71447 */ self.add64("1.123456789012345E-7", "0", "1.123456789012345E-7", .toNearestOrEven)
+ /* ddadd71448 */ self.add64("1.123456789012345E-8", "0", "1.123456789012345E-8", .toNearestOrEven)
+ /* ddadd71449 */ self.add64("1.123456789012345E-9", "0", "1.123456789012345E-9", .toNearestOrEven)
+ /* ddadd71450 */ self.add64("1.123456789012345E-10", "0", "1.123456789012345E-10", .toNearestOrEven)
+ /* ddadd71451 */ self.add64("1.123456789012345E-11", "0", "1.123456789012345E-11", .toNearestOrEven)
+ /* ddadd71452 */ self.add64("1.123456789012345E-12", "0", "1.123456789012345E-12", .toNearestOrEven)
+ /* ddadd71453 */ self.add64("1.123456789012345E-13", "0", "1.123456789012345E-13", .toNearestOrEven)
+ /* ddadd71454 */ self.add64("1.123456789012345E-14", "0", "1.123456789012345E-14", .toNearestOrEven)
+ /* ddadd71455 */ self.add64("1.123456789012345E-15", "0", "1.123456789012345E-15", .toNearestOrEven)
+ /* ddadd71456 */ self.add64("1.123456789012345E-16", "0", "1.123456789012345E-16", .toNearestOrEven)
+ /* ddadd71457 */ self.add64("1.123456789012345E-17", "0", "1.123456789012345E-17", .toNearestOrEven)
+ /* ddadd71458 */ self.add64("1.123456789012345E-18", "0", "1.123456789012345E-18", .toNearestOrEven)
+ /* ddadd71459 */ self.add64("1.123456789012345E-19", "0", "1.123456789012345E-19", .toNearestOrEven)
+ /* ddadd71460 */ self.add64("1.123456789012345", "0E-0", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71461 */ self.add64("1.123456789012345", "0E-1", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71462 */ self.add64("1.123456789012345", "0E-2", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71463 */ self.add64("1.123456789012345", "0E-3", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71464 */ self.add64("1.123456789012345", "0E-4", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71465 */ self.add64("1.123456789012345", "0E-5", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71466 */ self.add64("1.123456789012345", "0E-6", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71467 */ self.add64("1.123456789012345", "0E-7", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71468 */ self.add64("1.123456789012345", "0E-8", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71469 */ self.add64("1.123456789012345", "0E-9", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71470 */ self.add64("1.123456789012345", "0E-10", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71471 */ self.add64("1.123456789012345", "0E-11", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71472 */ self.add64("1.123456789012345", "0E-12", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71473 */ self.add64("1.123456789012345", "0E-13", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71474 */ self.add64("1.123456789012345", "0E-14", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71475 */ self.add64("1.123456789012345", "0E-15", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71476 */ self.add64("1.123456789012345", "0E-16", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71477 */ self.add64("1.123456789012345", "0E-17", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71478 */ self.add64("1.123456789012345", "0E-18", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71479 */ self.add64("1.123456789012345", "0E-19", "1.123456789012345", .toNearestOrEven)
+ /* ddadd71500 */ self.add64("0", "0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* ddadd71501 */ self.add64("-0", "0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* ddadd71502 */ self.add64("0", "-0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* ddadd71503 */ self.add64("-0", "-0E-19", "-0E-19", .toNearestOrAwayFromZero)
+ /* ddadd71511 */ self.add64("-11", "11", "0", .toNearestOrAwayFromZero)
+ /* ddadd71512 */ self.add64("11", "-11", "0", .toNearestOrAwayFromZero)
+ /* ddadd71540 */ self.add64("0", "0E-19", "0E-19", .toNearestOrEven)
+ /* ddadd71541 */ self.add64("-0", "0E-19", "0E-19", .toNearestOrEven)
+ /* ddadd71542 */ self.add64("0", "-0E-19", "0E-19", .toNearestOrEven)
+ /* ddadd71543 */ self.add64("-0", "-0E-19", "-0E-19", .toNearestOrEven)
+ /* ddadd71551 */ self.add64("-11", "11", "0", .toNearestOrEven)
+ /* ddadd71552 */ self.add64("11", "-11", "0", .toNearestOrEven)
+ /* ddadd71580 */ self.add64("0", "0E-19", "0E-19", .towardZero)
+ /* ddadd71581 */ self.add64("-0", "0E-19", "0E-19", .towardZero)
+ /* ddadd71582 */ self.add64("0", "-0E-19", "0E-19", .towardZero)
+ /* ddadd71583 */ self.add64("-0", "-0E-19", "-0E-19", .towardZero)
+ /* ddadd71591 */ self.add64("-11", "11", "0", .towardZero)
+ /* ddadd71592 */ self.add64("11", "-11", "0", .towardZero)
+ /* ddadd71600 */ self.add64("0", "0E-19", "0E-19", .up)
+ /* ddadd71601 */ self.add64("-0", "0E-19", "0E-19", .up)
+ /* ddadd71602 */ self.add64("0", "-0E-19", "0E-19", .up)
+ /* ddadd71603 */ self.add64("-0", "-0E-19", "-0E-19", .up)
+ /* ddadd71611 */ self.add64("-11", "11", "0", .up)
+ /* ddadd71612 */ self.add64("11", "-11", "0", .up)
+ /* ddadd71620 */ self.add64("0", "0E-19", "0E-19", .down)
+ /* ddadd71621 */ self.add64("-0", "0E-19", "-0E-19", .down)
+ /* ddadd71622 */ self.add64("0", "-0E-19", "-0E-19", .down)
+ /* ddadd71623 */ self.add64("-0", "-0E-19", "-0E-19", .down)
+ /* ddadd71631 */ self.add64("-11", "11", "-0", .down)
+ /* ddadd71632 */ self.add64("11", "-11", "-0", .down)
+ /* ddadd71701 */ self.add64("130E-2", "120E-2", "2.50", .down)
+ /* ddadd71702 */ self.add64("130E-2", "12E-1", "2.50", .down)
+ /* ddadd71703 */ self.add64("130E-2", "1E0", "2.30", .down)
+ /* ddadd71704 */ self.add64("1E2", "1E4", "1.01E+4", .down)
+ /* ddadd71705 */ self.add64("130E-2", "-120E-2", "0.10", .down)
+ /* ddadd71706 */ self.add64("130E-2", "-12E-1", "0.10", .down)
+ /* ddadd71707 */ self.add64("130E-2", "-1E0", "0.30", .down)
+ /* ddadd71708 */ self.add64("1E2", "-1E4", "-9.9E+3", .down)
+ /* ddadd71801 */ self.add64("7.8822773805862E+277", "-5.1757503820663E-21", "7.882277380586200E+277", .up, .isInexact)
+ /* ddadd71802 */ self.add64("7.882277380586200E+277", "12.341", "7.882277380586201E+277", .up, .isInexact)
+ /* ddadd71803 */ self.add64("7.882277380586201E+277", "2.7270545046613E-31", "7.882277380586202E+277", .up, .isInexact)
+ /* ddadd71811 */ self.add64("12.341", "-5.1757503820663E-21", "12.34100000000000", .up, .isInexact)
+ /* ddadd71812 */ self.add64("12.34100000000000", "2.7270545046613E-31", "12.34100000000001", .up, .isInexact)
+ /* ddadd71813 */ self.add64("12.34100000000001", "7.8822773805862E+277", "7.882277380586201E+277", .up, .isInexact)
+ /* ddadd75001 */ self.add64("1234567890123456", "1", "1234567890123457", .toNearestOrEven)
+ /* ddadd75002 */ self.add64("1234567890123456", "0.6", "1234567890123457", .toNearestOrEven, .isInexact)
+ /* ddadd75003 */ self.add64("1234567890123456", "0.06", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75004 */ self.add64("1234567890123456", "6E-3", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75005 */ self.add64("1234567890123456", "6E-4", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75006 */ self.add64("1234567890123456", "6E-5", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75007 */ self.add64("1234567890123456", "6E-6", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75008 */ self.add64("1234567890123456", "6E-7", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75009 */ self.add64("1234567890123456", "6E-8", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75010 */ self.add64("1234567890123456", "6E-9", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75011 */ self.add64("1234567890123456", "6E-10", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75012 */ self.add64("1234567890123456", "6E-11", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75013 */ self.add64("1234567890123456", "6E-12", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75014 */ self.add64("1234567890123456", "6E-13", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75015 */ self.add64("1234567890123456", "6E-14", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75016 */ self.add64("1234567890123456", "6E-15", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75017 */ self.add64("1234567890123456", "6E-16", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75018 */ self.add64("1234567890123456", "6E-17", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75019 */ self.add64("1234567890123456", "6E-18", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75020 */ self.add64("1234567890123456", "6E-19", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75021 */ self.add64("1234567890123456", "6E-20", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddadd75030 */ self.add64("12345678", "1", "12345679", .toNearestOrEven)
+ /* ddadd75031 */ self.add64("12345678", "0.1", "12345678.1", .toNearestOrEven)
+ /* ddadd75032 */ self.add64("12345678", "0.12", "12345678.12", .toNearestOrEven)
+ /* ddadd75033 */ self.add64("12345678", "0.123", "12345678.123", .toNearestOrEven)
+ /* ddadd75034 */ self.add64("12345678", "0.1234", "12345678.1234", .toNearestOrEven)
+ /* ddadd75035 */ self.add64("12345678", "0.12345", "12345678.12345", .toNearestOrEven)
+ /* ddadd75036 */ self.add64("12345678", "0.123456", "12345678.123456", .toNearestOrEven)
+ /* ddadd75037 */ self.add64("12345678", "0.1234567", "12345678.1234567", .toNearestOrEven)
+ /* ddadd75038 */ self.add64("12345678", "0.12345678", "12345678.12345678", .toNearestOrEven)
+ /* ddadd75039 */ self.add64("12345678", "0.123456789", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddadd75040 */ self.add64("12345678", "0.123456785", "12345678.12345678", .toNearestOrEven, .isInexact)
+ /* ddadd75041 */ self.add64("12345678", "0.1234567850", "12345678.12345678", .toNearestOrEven, .isInexact)
+ /* ddadd75042 */ self.add64("12345678", "0.1234567851", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddadd75043 */ self.add64("12345678", "0.12345678501", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddadd75044 */ self.add64("12345678", "0.123456785001", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddadd75045 */ self.add64("12345678", "0.1234567850001", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddadd75046 */ self.add64("12345678", "0.12345678500001", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddadd75047 */ self.add64("12345678", "0.123456785000001", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddadd75048 */ self.add64("12345678", "0.1234567850000001", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddadd75049 */ self.add64("12345678", "0.1234567850000000", "12345678.12345678", .toNearestOrEven, .isInexact)
+ /* ddadd75050 */ self.add64("12345678", "0.0234567750000000", "12345678.02345678", .toNearestOrEven, .isInexact)
+ /* ddadd75051 */ self.add64("12345678", "0.0034567750000000", "12345678.00345678", .toNearestOrEven, .isInexact)
+ /* ddadd75052 */ self.add64("12345678", "0.0004567750000000", "12345678.00045678", .toNearestOrEven, .isInexact)
+ /* ddadd75053 */ self.add64("12345678", "0.0000567750000000", "12345678.00005678", .toNearestOrEven, .isInexact)
+ /* ddadd75054 */ self.add64("12345678", "0.0000067750000000", "12345678.00000678", .toNearestOrEven, .isInexact)
+ /* ddadd75055 */ self.add64("12345678", "0.0000007750000000", "12345678.00000078", .toNearestOrEven, .isInexact)
+ /* ddadd75056 */ self.add64("12345678", "0.0000000750000000", "12345678.00000008", .toNearestOrEven, .isInexact)
+ /* ddadd75057 */ self.add64("12345678", "0.0000000050000000", "12345678.00000000", .toNearestOrEven, .isInexact)
+ /* ddadd75060 */ self.add64("12345678", "0.0234567750000001", "12345678.02345678", .toNearestOrEven, .isInexact)
+ /* ddadd75061 */ self.add64("12345678", "0.0034567750000001", "12345678.00345678", .toNearestOrEven, .isInexact)
+ /* ddadd75062 */ self.add64("12345678", "0.0004567750000001", "12345678.00045678", .toNearestOrEven, .isInexact)
+ /* ddadd75063 */ self.add64("12345678", "0.0000567750000001", "12345678.00005678", .toNearestOrEven, .isInexact)
+ /* ddadd75064 */ self.add64("12345678", "0.0000067750000001", "12345678.00000678", .toNearestOrEven, .isInexact)
+ /* ddadd75065 */ self.add64("12345678", "0.0000007750000001", "12345678.00000078", .toNearestOrEven, .isInexact)
+ /* ddadd75066 */ self.add64("12345678", "0.0000000750000001", "12345678.00000008", .toNearestOrEven, .isInexact)
+ /* ddadd75067 */ self.add64("12345678", "0.0000000050000001", "12345678.00000001", .toNearestOrEven, .isInexact)
+ /* ddadd7540 */ self.add64("6543210123456788", "0.499999999", "6543210123456788", .toNearestOrEven, .isInexact)
+ /* ddadd7541 */ self.add64("6543210123456788", "0.5", "6543210123456788", .toNearestOrEven, .isInexact)
+ /* ddadd7542 */ self.add64("6543210123456788", "0.500000001", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddadd7550 */ self.add64("6543210123456789", "0", "6543210123456789", .towardZero)
+ /* ddadd7551 */ self.add64("6543210123456789", "0.000000001", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7552 */ self.add64("6543210123456789", "0.000001", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7553 */ self.add64("6543210123456789", "0.1", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7554 */ self.add64("6543210123456789", "0.4", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7555 */ self.add64("6543210123456789", "0.49", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7556 */ self.add64("6543210123456789", "0.499999", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7557 */ self.add64("6543210123456789", "0.499999999", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7558 */ self.add64("6543210123456789", "0.5", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7559 */ self.add64("6543210123456789", "0.500000001", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7560 */ self.add64("6543210123456789", "0.500001", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7561 */ self.add64("6543210123456789", "0.51", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7562 */ self.add64("6543210123456789", "0.6", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7563 */ self.add64("6543210123456789", "0.9", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7564 */ self.add64("6543210123456789", "0.99999", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7565 */ self.add64("6543210123456789", "0.999999999", "6543210123456789", .towardZero, .isInexact)
+ /* ddadd7566 */ self.add64("6543210123456789", "1", "6543210123456790", .towardZero)
+ /* ddadd7567 */ self.add64("6543210123456789", "1.00000001", "6543210123456790", .towardZero, .isInexact)
+ /* ddadd7568 */ self.add64("6543210123456789", "1.00001", "6543210123456790", .towardZero, .isInexact)
+ /* ddadd7569 */ self.add64("6543210123456789", "1.1", "6543210123456790", .towardZero, .isInexact)
+ /* ddadd7575 */ self.add64("1E-383", "-1E-398", "9.99999999999999E-384", .toNearestOrEven)
+ /* ddadd7576 */ self.add64("-1E-383", "+1E-398", "-9.99999999999999E-384", .toNearestOrEven)
+ /* ddadd7577 */ self.add64("7.000000000000E-385", "-1.00000E-391", "6.999999000000E-385", .toNearestOrEven)
+ /* ddadd7661 */ self.add64("1e-398", "9.000000000000000E+384", "9.000000000000000E+384", .towardZero, .isInexact)
+ /* ddadd7662 */ self.add64("0", "9.000000000000000E+384", "9.000000000000000E+384", .towardZero)
+ /* ddadd7663 */ self.add64("1e-388", "9.000000000000000E+374", "9.000000000000000E+374", .towardZero, .isInexact)
+ /* ddadd7664 */ self.add64("0", "9.000000000000000E+374", "9.000000000000000E+374", .towardZero)
+ /* ddadd7701 */ self.add64("5.00", "1.00E-3", "5.00100", .toNearestOrEven)
+ /* ddadd7702 */ self.add64("00.00", "0.000", "0.000", .toNearestOrEven)
+ /* ddadd7703 */ self.add64("00.00", "0E-3", "0.000", .toNearestOrEven)
+ /* ddadd7704 */ self.add64("0E-3", "00.00", "0.000", .toNearestOrEven)
+ /* ddadd7710 */ self.add64("0E+3", "00.00", "0.00", .toNearestOrEven)
+ /* ddadd7711 */ self.add64("0E+3", "00.0", "0.0", .toNearestOrEven)
+ /* ddadd7712 */ self.add64("0E+3", "00.", "0", .toNearestOrEven)
+ /* ddadd7713 */ self.add64("0E+3", "00.E+1", "0E+1", .toNearestOrEven)
+ /* ddadd7714 */ self.add64("0E+3", "00.E+2", "0E+2", .toNearestOrEven)
+ /* ddadd7715 */ self.add64("0E+3", "00.E+3", "0E+3", .toNearestOrEven)
+ /* ddadd7716 */ self.add64("0E+3", "00.E+4", "0E+3", .toNearestOrEven)
+ /* ddadd7717 */ self.add64("0E+3", "00.E+5", "0E+3", .toNearestOrEven)
+ /* ddadd7718 */ self.add64("0E+3", "-00.0", "0.0", .toNearestOrEven)
+ /* ddadd7719 */ self.add64("0E+3", "-00.", "0", .toNearestOrEven)
+ /* ddadd7720 */ self.add64("00.00", "0E+3", "0.00", .toNearestOrEven)
+ /* ddadd7721 */ self.add64("00.0", "0E+3", "0.0", .toNearestOrEven)
+ /* ddadd7722 */ self.add64("00.", "0E+3", "0", .toNearestOrEven)
+ /* ddadd7723 */ self.add64("00.E+1", "0E+3", "0E+1", .toNearestOrEven)
+ /* ddadd7724 */ self.add64("00.E+2", "0E+3", "0E+2", .toNearestOrEven)
+ /* ddadd7725 */ self.add64("00.E+3", "0E+3", "0E+3", .toNearestOrEven)
+ /* ddadd7726 */ self.add64("00.E+4", "0E+3", "0E+3", .toNearestOrEven)
+ /* ddadd7727 */ self.add64("00.E+5", "0E+3", "0E+3", .toNearestOrEven)
+ /* ddadd7728 */ self.add64("-00.00", "0E+3", "0.00", .toNearestOrEven)
+ /* ddadd7729 */ self.add64("-00.0", "0E+3", "0.0", .toNearestOrEven)
+ /* ddadd7730 */ self.add64("-00.", "0E+3", "0", .toNearestOrEven)
+ /* ddadd7731 */ self.add64("0E+3", "-00.E+1", "0E+1", .toNearestOrEven)
+ /* ddadd7732 */ self.add64("0", "0", "0", .toNearestOrEven)
+ /* ddadd7733 */ self.add64("0", "-0", "0", .toNearestOrEven)
+ /* ddadd7734 */ self.add64("-0", "0", "0", .toNearestOrEven)
+ /* ddadd7735 */ self.add64("-0", "-0", "-0", .toNearestOrEven)
+ /* ddadd7736 */ self.add64("1", "-1", "0", .toNearestOrEven)
+ /* ddadd7737 */ self.add64("-1", "-1", "-2", .toNearestOrEven)
+ /* ddadd7738 */ self.add64("1", "1", "2", .toNearestOrEven)
+ /* ddadd7739 */ self.add64("-1", "1", "0", .toNearestOrEven)
+ /* ddadd7741 */ self.add64("0", "-1", "-1", .toNearestOrEven)
+ /* ddadd7742 */ self.add64("-0", "-1", "-1", .toNearestOrEven)
+ /* ddadd7743 */ self.add64("0", "1", "1", .toNearestOrEven)
+ /* ddadd7744 */ self.add64("-0", "1", "1", .toNearestOrEven)
+ /* ddadd7745 */ self.add64("-1", "0", "-1", .toNearestOrEven)
+ /* ddadd7746 */ self.add64("-1", "-0", "-1", .toNearestOrEven)
+ /* ddadd7747 */ self.add64("1", "0", "1", .toNearestOrEven)
+ /* ddadd7748 */ self.add64("1", "-0", "1", .toNearestOrEven)
+ /* ddadd7751 */ self.add64("0.0", "-1", "-1.0", .toNearestOrEven)
+ /* ddadd7752 */ self.add64("-0.0", "-1", "-1.0", .toNearestOrEven)
+ /* ddadd7753 */ self.add64("0.0", "1", "1.0", .toNearestOrEven)
+ /* ddadd7754 */ self.add64("-0.0", "1", "1.0", .toNearestOrEven)
+ /* ddadd7755 */ self.add64("-1.0", "0", "-1.0", .toNearestOrEven)
+ /* ddadd7756 */ self.add64("-1.0", "-0", "-1.0", .toNearestOrEven)
+ /* ddadd7757 */ self.add64("1.0", "0", "1.0", .toNearestOrEven)
+ /* ddadd7758 */ self.add64("1.0", "-0", "1.0", .toNearestOrEven)
+ /* ddadd7761 */ self.add64("0", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddadd7762 */ self.add64("-0", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddadd7763 */ self.add64("0", "1.0", "1.0", .toNearestOrEven)
+ /* ddadd7764 */ self.add64("-0", "1.0", "1.0", .toNearestOrEven)
+ /* ddadd7765 */ self.add64("-1", "0.0", "-1.0", .toNearestOrEven)
+ /* ddadd7766 */ self.add64("-1", "-0.0", "-1.0", .toNearestOrEven)
+ /* ddadd7767 */ self.add64("1", "0.0", "1.0", .toNearestOrEven)
+ /* ddadd7768 */ self.add64("1", "-0.0", "1.0", .toNearestOrEven)
+ /* ddadd7771 */ self.add64("0.0", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddadd7772 */ self.add64("-0.0", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddadd7773 */ self.add64("0.0", "1.0", "1.0", .toNearestOrEven)
+ /* ddadd7774 */ self.add64("-0.0", "1.0", "1.0", .toNearestOrEven)
+ /* ddadd7775 */ self.add64("-1.0", "0.0", "-1.0", .toNearestOrEven)
+ /* ddadd7776 */ self.add64("-1.0", "-0.0", "-1.0", .toNearestOrEven)
+ /* ddadd7777 */ self.add64("1.0", "0.0", "1.0", .toNearestOrEven)
+ /* ddadd7778 */ self.add64("1.0", "-0.0", "1.0", .toNearestOrEven)
+ /* ddadd7780 */ self.add64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddadd7781 */ self.add64("-Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* ddadd7782 */ self.add64("-Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* ddadd7783 */ self.add64("-Inf", "-0", "-Infinity", .toNearestOrEven)
+ /* ddadd7784 */ self.add64("-Inf", "0", "-Infinity", .toNearestOrEven)
+ /* ddadd7785 */ self.add64("-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* ddadd7786 */ self.add64("-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* ddadd7787 */ self.add64("-1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddadd7788 */ self.add64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddadd7789 */ self.add64("-1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddadd7790 */ self.add64("-0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddadd7791 */ self.add64("0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddadd7792 */ self.add64("1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddadd7793 */ self.add64("1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddadd7794 */ self.add64("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7800 */ self.add64("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7801 */ self.add64("Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* ddadd7802 */ self.add64("Inf", "-1", "Infinity", .toNearestOrEven)
+ /* ddadd7803 */ self.add64("Inf", "-0", "Infinity", .toNearestOrEven)
+ /* ddadd7804 */ self.add64("Inf", "0", "Infinity", .toNearestOrEven)
+ /* ddadd7805 */ self.add64("Inf", "1", "Infinity", .toNearestOrEven)
+ /* ddadd7806 */ self.add64("Inf", "1000", "Infinity", .toNearestOrEven)
+ /* ddadd7807 */ self.add64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddadd7808 */ self.add64("-1000", "Inf", "Infinity", .toNearestOrEven)
+ /* ddadd7809 */ self.add64("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7810 */ self.add64("-1", "Inf", "Infinity", .toNearestOrEven)
+ /* ddadd7811 */ self.add64("-0", "Inf", "Infinity", .toNearestOrEven)
+ /* ddadd7812 */ self.add64("0", "Inf", "Infinity", .toNearestOrEven)
+ /* ddadd7813 */ self.add64("1", "Inf", "Infinity", .toNearestOrEven)
+ /* ddadd7814 */ self.add64("1000", "Inf", "Infinity", .toNearestOrEven)
+ /* ddadd7815 */ self.add64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddadd7821 */ self.add64("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* ddadd7822 */ self.add64("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* ddadd7823 */ self.add64("NaN", "-1", "NaN", .toNearestOrEven)
+ /* ddadd7824 */ self.add64("NaN", "-0", "NaN", .toNearestOrEven)
+ /* ddadd7825 */ self.add64("NaN", "0", "NaN", .toNearestOrEven)
+ /* ddadd7826 */ self.add64("NaN", "1", "NaN", .toNearestOrEven)
+ /* ddadd7827 */ self.add64("NaN", "1000", "NaN", .toNearestOrEven)
+ /* ddadd7828 */ self.add64("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* ddadd7829 */ self.add64("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* ddadd7830 */ self.add64("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddadd7831 */ self.add64("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddadd7832 */ self.add64("-1", "NaN", "NaN", .toNearestOrEven)
+ /* ddadd7833 */ self.add64("-0", "NaN", "NaN", .toNearestOrEven)
+ /* ddadd7834 */ self.add64("0", "NaN", "NaN", .toNearestOrEven)
+ /* ddadd7835 */ self.add64("1", "NaN", "NaN", .toNearestOrEven)
+ /* ddadd7836 */ self.add64("1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddadd7837 */ self.add64("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddadd7841 */ self.add64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7842 */ self.add64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7843 */ self.add64("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7844 */ self.add64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7845 */ self.add64("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7846 */ self.add64("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7847 */ self.add64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7848 */ self.add64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7849 */ self.add64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7850 */ self.add64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7851 */ self.add64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7852 */ self.add64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7853 */ self.add64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7854 */ self.add64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7855 */ self.add64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7856 */ self.add64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7857 */ self.add64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7858 */ self.add64("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7859 */ self.add64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7861 */ self.add64("NaN(0x1)", "-Inf", "NaN(0x1)", .toNearestOrEven)
+ /* ddadd7862 */ self.add64("+NaN(0x2)", "-1000", "NaN(0x2)", .toNearestOrEven)
+ /* ddadd7863 */ self.add64("NaN(0x3)", "1000", "NaN(0x3)", .toNearestOrEven)
+ /* ddadd7864 */ self.add64("NaN(0x4)", "Inf", "NaN(0x4)", .toNearestOrEven)
+ /* ddadd7865 */ self.add64("NaN(0x5)", "+NaN(0x6)", "NaN(0x5)", .toNearestOrEven)
+ /* ddadd7866 */ self.add64("-Inf", "NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* ddadd7867 */ self.add64("-1000", "NaN(0x8)", "NaN(0x8)", .toNearestOrEven)
+ /* ddadd7868 */ self.add64("1000", "NaN(0x9)", "NaN(0x9)", .toNearestOrEven)
+ /* ddadd7869 */ self.add64("Inf", "+NaN(0xa)", "NaN(0xa)", .toNearestOrEven)
+ /* ddadd7871 */ self.add64("sNaN(0xb)", "-Inf", "NaN(0xb)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7872 */ self.add64("sNaN(0xc)", "-1000", "NaN(0xc)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7873 */ self.add64("sNaN(0xd)", "1000", "NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7874 */ self.add64("sNaN(0xe)", "NaN(0x11)", "NaN(0xe)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7875 */ self.add64("sNaN(0xf)", "sNaN(0x12)", "NaN(0xf)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7876 */ self.add64("NaN(0x10)", "sNaN(0x13)", "NaN(0x13)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7877 */ self.add64("-Inf", "+sNaN(0x14)", "NaN(0x14)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7878 */ self.add64("-1000", "sNaN(0x15)", "NaN(0x15)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7879 */ self.add64("1000", "sNaN(0x16)", "NaN(0x16)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7880 */ self.add64("Inf", "sNaN(0x17)", "NaN(0x17)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7881 */ self.add64("+NaN(0x19)", "+sNaN(0x18)", "NaN(0x18)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7882 */ self.add64("-NaN(0x1a)", "NaN(0x1c)", "-NaN(0x1a)", .toNearestOrEven)
+ /* ddadd7883 */ self.add64("-sNaN(0x1b)", "sNaN(0x1d)", "-NaN(0x1b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7884 */ self.add64("1000", "-NaN(0x1e)", "-NaN(0x1e)", .toNearestOrEven)
+ /* ddadd7885 */ self.add64("1000", "-sNaN(0x1f)", "-NaN(0x1f)", .toNearestOrEven, .isInvalidOperation)
+ /* ddadd7973 */ self.add64("9.999999999999999E+384", "1", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd7974 */ self.add64("9999999999999999E+369", "1", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd7975 */ self.add64("9999999999999999E+369", "1E+369", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7976 */ self.add64("9999999999999999E+369", "9E+368", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7977 */ self.add64("9999999999999999E+369", "8E+368", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7978 */ self.add64("9999999999999999E+369", "7E+368", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7979 */ self.add64("9999999999999999E+369", "6E+368", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7980 */ self.add64("9999999999999999E+369", "5E+368", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7981 */ self.add64("9999999999999999E+369", "4E+368", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd7982 */ self.add64("9999999999999999E+369", "3E+368", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd7983 */ self.add64("9999999999999999E+369", "2E+368", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd7984 */ self.add64("9999999999999999E+369", "1E+368", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd7986 */ self.add64("-9.999999999999999E+384", "-1", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd7987 */ self.add64("-9999999999999999E+369", "-1", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd7988 */ self.add64("-9999999999999999E+369", "-1E+369", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7989 */ self.add64("-9999999999999999E+369", "-9E+368", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7990 */ self.add64("-9999999999999999E+369", "-8E+368", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7991 */ self.add64("-9999999999999999E+369", "-7E+368", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7992 */ self.add64("-9999999999999999E+369", "-6E+368", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7993 */ self.add64("-9999999999999999E+369", "-5E+368", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd7994 */ self.add64("-9999999999999999E+369", "-4E+368", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd7995 */ self.add64("-9999999999999999E+369", "-3E+368", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd7996 */ self.add64("-9999999999999999E+369", "-2E+368", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd7997 */ self.add64("-9999999999999999E+369", "-1E+368", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddadd81100 */ self.add64(".2300", "12345678901234.00", "12345678901234.23", .toNearestOrEven)
+ /* ddadd81101 */ self.add64(".2301", "12345678901234.00", "12345678901234.23", .toNearestOrEven, .isInexact)
+ /* ddadd81102 */ self.add64(".2310", "12345678901234.00", "12345678901234.23", .toNearestOrEven, .isInexact)
+ /* ddadd81103 */ self.add64(".2350", "12345678901234.00", "12345678901234.24", .toNearestOrEven, .isInexact)
+ /* ddadd81104 */ self.add64(".2351", "12345678901234.00", "12345678901234.24", .toNearestOrEven, .isInexact)
+ /* ddadd81105 */ self.add64(".2450", "12345678901234.00", "12345678901234.24", .toNearestOrEven, .isInexact)
+ /* ddadd81106 */ self.add64(".2451", "12345678901234.00", "12345678901234.25", .toNearestOrEven, .isInexact)
+ /* ddadd81107 */ self.add64(".2360", "12345678901234.00", "12345678901234.24", .toNearestOrEven, .isInexact)
+ /* ddadd81108 */ self.add64(".2370", "12345678901234.00", "12345678901234.24", .toNearestOrEven, .isInexact)
+ /* ddadd81109 */ self.add64(".2399", "12345678901234.00", "12345678901234.24", .toNearestOrEven, .isInexact)
+ /* ddadd81120 */ self.add64("9999999999999999E+369", "9E+369", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd81121 */ self.add64("-9999999999999999E+369", "-9E+369", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddadd81200 */ self.add64(".2300", "12345678901234.00", "12345678901234.23", .toNearestOrAwayFromZero)
+ /* ddadd81201 */ self.add64(".2301", "12345678901234.00", "12345678901234.23", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd81202 */ self.add64(".2310", "12345678901234.00", "12345678901234.23", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd81203 */ self.add64(".2350", "12345678901234.00", "12345678901234.24", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd81204 */ self.add64(".2351", "12345678901234.00", "12345678901234.24", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd81205 */ self.add64(".2450", "12345678901234.00", "12345678901234.25", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd81206 */ self.add64(".2451", "12345678901234.00", "12345678901234.25", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd81207 */ self.add64(".2360", "12345678901234.00", "12345678901234.24", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd81208 */ self.add64(".2370", "12345678901234.00", "12345678901234.24", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd81209 */ self.add64(".2399", "12345678901234.00", "12345678901234.24", .toNearestOrAwayFromZero, .isInexact)
+ /* ddadd81220 */ self.add64("9999999999999999E+369", "9E+369", "Infinity", .toNearestOrAwayFromZero, .isInexact | .isOverflow)
+ /* ddadd81221 */ self.add64("-9999999999999999E+369", "-9E+369", "-Infinity", .toNearestOrAwayFromZero, .isInexact | .isOverflow)
+ /* ddadd81500 */ self.add64(".2300", "12345678901234.00", "12345678901234.23", .towardZero)
+ /* ddadd81501 */ self.add64(".2301", "12345678901234.00", "12345678901234.23", .towardZero, .isInexact)
+ /* ddadd81502 */ self.add64(".2310", "12345678901234.00", "12345678901234.23", .towardZero, .isInexact)
+ /* ddadd81503 */ self.add64(".2350", "12345678901234.00", "12345678901234.23", .towardZero, .isInexact)
+ /* ddadd81504 */ self.add64(".2351", "12345678901234.00", "12345678901234.23", .towardZero, .isInexact)
+ /* ddadd81505 */ self.add64(".2450", "12345678901234.00", "12345678901234.24", .towardZero, .isInexact)
+ /* ddadd81506 */ self.add64(".2451", "12345678901234.00", "12345678901234.24", .towardZero, .isInexact)
+ /* ddadd81507 */ self.add64(".2360", "12345678901234.00", "12345678901234.23", .towardZero, .isInexact)
+ /* ddadd81508 */ self.add64(".2370", "12345678901234.00", "12345678901234.23", .towardZero, .isInexact)
+ /* ddadd81509 */ self.add64(".2399", "12345678901234.00", "12345678901234.23", .towardZero, .isInexact)
+ /* ddadd81511 */ self.add64("-.2399", "-12345678901234.00", "-12345678901234.23", .towardZero, .isInexact)
+ /* ddadd81520 */ self.add64("9999999999999999E+369", "9E+369", "9.999999999999999E+384", .towardZero, .isInexact | .isOverflow)
+ /* ddadd81521 */ self.add64("-9999999999999999E+369", "-9E+369", "-9.999999999999999E+384", .towardZero, .isInexact | .isOverflow)
+ /* ddadd81600 */ self.add64(".2300", "12345678901234.00", "12345678901234.23", .up)
+ /* ddadd81601 */ self.add64(".2301", "12345678901234.00", "12345678901234.24", .up, .isInexact)
+ /* ddadd81602 */ self.add64(".2310", "12345678901234.00", "12345678901234.24", .up, .isInexact)
+ /* ddadd81603 */ self.add64(".2350", "12345678901234.00", "12345678901234.24", .up, .isInexact)
+ /* ddadd81604 */ self.add64(".2351", "12345678901234.00", "12345678901234.24", .up, .isInexact)
+ /* ddadd81605 */ self.add64(".2450", "12345678901234.00", "12345678901234.25", .up, .isInexact)
+ /* ddadd81606 */ self.add64(".2451", "12345678901234.00", "12345678901234.25", .up, .isInexact)
+ /* ddadd81607 */ self.add64(".2360", "12345678901234.00", "12345678901234.24", .up, .isInexact)
+ /* ddadd81608 */ self.add64(".2370", "12345678901234.00", "12345678901234.24", .up, .isInexact)
+ /* ddadd81609 */ self.add64(".2399", "12345678901234.00", "12345678901234.24", .up, .isInexact)
+ /* ddadd81611 */ self.add64("-.2399", "-12345678901234.00", "-12345678901234.23", .up, .isInexact)
+ /* ddadd81620 */ self.add64("9999999999999999E+369", "9E+369", "Infinity", .up, .isInexact | .isOverflow)
+ /* ddadd81621 */ self.add64("-9999999999999999E+369", "-9E+369", "-9.999999999999999E+384", .up, .isInexact | .isOverflow)
+ /* ddadd81700 */ self.add64(".2300", "12345678901234.00", "12345678901234.23", .down)
+ /* ddadd81701 */ self.add64(".2301", "12345678901234.00", "12345678901234.23", .down, .isInexact)
+ /* ddadd81702 */ self.add64(".2310", "12345678901234.00", "12345678901234.23", .down, .isInexact)
+ /* ddadd81703 */ self.add64(".2350", "12345678901234.00", "12345678901234.23", .down, .isInexact)
+ /* ddadd81704 */ self.add64(".2351", "12345678901234.00", "12345678901234.23", .down, .isInexact)
+ /* ddadd81705 */ self.add64(".2450", "12345678901234.00", "12345678901234.24", .down, .isInexact)
+ /* ddadd81706 */ self.add64(".2451", "12345678901234.00", "12345678901234.24", .down, .isInexact)
+ /* ddadd81707 */ self.add64(".2360", "12345678901234.00", "12345678901234.23", .down, .isInexact)
+ /* ddadd81708 */ self.add64(".2370", "12345678901234.00", "12345678901234.23", .down, .isInexact)
+ /* ddadd81709 */ self.add64(".2399", "12345678901234.00", "12345678901234.23", .down, .isInexact)
+ /* ddadd81711 */ self.add64("-.2399", "-12345678901234.00", "-12345678901234.24", .down, .isInexact)
+ /* ddadd81720 */ self.add64("9999999999999999E+369", "9E+369", "9.999999999999999E+384", .down, .isInexact | .isOverflow)
+ /* ddadd81721 */ self.add64("-9999999999999999E+369", "-9E+369", "-Infinity", .down, .isInexact | .isOverflow)
+ /* ddcan202 */ self.add64("0E+384", "#77ffff3fcff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan203 */ self.add64("#77fcffffcff3fcff", "0E+384", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan204 */ self.add64("0E-398", "#77ffff3fcff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan205 */ self.add64("#77fcffffcff3fcff", "0E-398", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan206 */ self.add64("-1E-398", "#77ffff3fcff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven, .isInexact)
+ /* ddcan207 */ self.add64("#77ffff3fcff3fcff", "-1E-398", "#77fcff3fcff3fcff", .toNearestOrEven, .isInexact)
+ /* ddcan211 */ self.add64("0", "#7c03ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan212 */ self.add64("#7c03ff3fcff3fcff", "0", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan213 */ self.add64("0", "#7c40ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan214 */ self.add64("#7c40ff3fcff3fcff", "0", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan215 */ self.add64("0", "#7e00ffffcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan216 */ self.add64("#7e00ffffcff3fcff", "0", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan217 */ self.add64("0", "#7e80ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan218 */ self.add64("#7e80ff3fcff3fcff", "0", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan220 */ self.add64("0", "#7880000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan221 */ self.add64("#7880000000000000", "0", "#7800000000000000", .toNearestOrEven)
+ /* ddcan222 */ self.add64("0", "#7802000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan223 */ self.add64("#7802000000000000", "0", "#7800000000000000", .toNearestOrEven)
+ /* ddcan224 */ self.add64("0", "#7800000000000001", "#7800000000000000", .toNearestOrEven)
+ /* ddcan225 */ self.add64("#7800000000000001", "0", "#7800000000000000", .toNearestOrEven)
+ /* ddcan226 */ self.add64("0", "#7800002000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan227 */ self.add64("#7800002000000000", "0", "#7800000000000000", .toNearestOrEven)
+ }
+
+ private func add64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.adding(arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_add(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_add128() {
+ /* dqadd001 */ self.add128("1", "1", "2", .toNearestOrEven)
+ /* dqadd002 */ self.add128("2", "3", "5", .toNearestOrEven)
+ /* dqadd003 */ self.add128("5.75", "3.3", "9.05", .toNearestOrEven)
+ /* dqadd004 */ self.add128("5", "-3", "2", .toNearestOrEven)
+ /* dqadd005 */ self.add128("-5", "-3", "-8", .toNearestOrEven)
+ /* dqadd006 */ self.add128("-7", "2.5", "-4.5", .toNearestOrEven)
+ /* dqadd007 */ self.add128("0.7", "0.3", "1.0", .toNearestOrEven)
+ /* dqadd008 */ self.add128("1.25", "1.25", "2.50", .toNearestOrEven)
+ /* dqadd009 */ self.add128("1.23456789", "1.00000000", "2.23456789", .toNearestOrEven)
+ /* dqadd010 */ self.add128("1.23456789", "1.00000011", "2.23456800", .toNearestOrEven)
+ /* dqadd011 */ self.add128("0.4444444444444444444444444444444446", "0.5555555555555555555555555555555555", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd012 */ self.add128("0.4444444444444444444444444444444445", "0.5555555555555555555555555555555555", "1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd013 */ self.add128("0.4444444444444444444444444444444444", "0.5555555555555555555555555555555555", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqadd014 */ self.add128("4444444444444444444444444444444444", "0.49", "4444444444444444444444444444444444", .toNearestOrEven, .isInexact)
+ /* dqadd015 */ self.add128("4444444444444444444444444444444444", "0.499", "4444444444444444444444444444444444", .toNearestOrEven, .isInexact)
+ /* dqadd016 */ self.add128("4444444444444444444444444444444444", "0.4999", "4444444444444444444444444444444444", .toNearestOrEven, .isInexact)
+ /* dqadd017 */ self.add128("4444444444444444444444444444444444", "0.5000", "4444444444444444444444444444444444", .toNearestOrEven, .isInexact)
+ /* dqadd018 */ self.add128("4444444444444444444444444444444444", "0.5001", "4444444444444444444444444444444445", .toNearestOrEven, .isInexact)
+ /* dqadd019 */ self.add128("4444444444444444444444444444444444", "0.501", "4444444444444444444444444444444445", .toNearestOrEven, .isInexact)
+ /* dqadd020 */ self.add128("4444444444444444444444444444444444", "0.51", "4444444444444444444444444444444445", .toNearestOrEven, .isInexact)
+ /* dqadd021 */ self.add128("0", "1", "1", .toNearestOrEven)
+ /* dqadd022 */ self.add128("1", "1", "2", .toNearestOrEven)
+ /* dqadd023 */ self.add128("2", "1", "3", .toNearestOrEven)
+ /* dqadd024 */ self.add128("3", "1", "4", .toNearestOrEven)
+ /* dqadd025 */ self.add128("4", "1", "5", .toNearestOrEven)
+ /* dqadd026 */ self.add128("5", "1", "6", .toNearestOrEven)
+ /* dqadd027 */ self.add128("6", "1", "7", .toNearestOrEven)
+ /* dqadd028 */ self.add128("7", "1", "8", .toNearestOrEven)
+ /* dqadd029 */ self.add128("8", "1", "9", .toNearestOrEven)
+ /* dqadd030 */ self.add128("9", "1", "10", .toNearestOrEven)
+ /* dqadd031 */ self.add128("0.9998", "0.0000", "0.9998", .toNearestOrEven)
+ /* dqadd032 */ self.add128("0.9998", "0.0001", "0.9999", .toNearestOrEven)
+ /* dqadd033 */ self.add128("0.9998", "0.0002", "1.0000", .toNearestOrEven)
+ /* dqadd034 */ self.add128("0.9998", "0.0003", "1.0001", .toNearestOrEven)
+ /* dqadd035 */ self.add128("70", "10000e+34", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd036 */ self.add128("700", "10000e+34", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd037 */ self.add128("7000", "10000e+34", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd038 */ self.add128("70000", "10000e+34", "1.000000000000000000000000000000001E+38", .toNearestOrEven, .isInexact)
+ /* dqadd039 */ self.add128("700000", "10000e+34", "1.000000000000000000000000000000007E+38", .toNearestOrEven)
+ /* dqadd040 */ self.add128("10000e+34", "70", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd041 */ self.add128("10000e+34", "700", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd042 */ self.add128("10000e+34", "7000", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd044 */ self.add128("10000e+34", "70000", "1.000000000000000000000000000000001E+38", .toNearestOrEven, .isInexact)
+ /* dqadd045 */ self.add128("10000e+34", "700000", "1.000000000000000000000000000000007E+38", .toNearestOrEven)
+ /* dqadd046 */ self.add128("10000e+9", "7", "10000000000007", .toNearestOrEven)
+ /* dqadd047 */ self.add128("10000e+9", "70", "10000000000070", .toNearestOrEven)
+ /* dqadd048 */ self.add128("10000e+9", "700", "10000000000700", .toNearestOrEven)
+ /* dqadd049 */ self.add128("10000e+9", "7000", "10000000007000", .toNearestOrEven)
+ /* dqadd050 */ self.add128("10000e+9", "70000", "10000000070000", .toNearestOrEven)
+ /* dqadd051 */ self.add128("10000e+9", "700000", "10000000700000", .toNearestOrEven)
+ /* dqadd052 */ self.add128("10000e+9", "7000000", "10000007000000", .toNearestOrEven)
+ /* dqadd053 */ self.add128("12", "7.00", "19.00", .toNearestOrEven)
+ /* dqadd054 */ self.add128("1.3", "-1.07", "0.23", .toNearestOrEven)
+ /* dqadd055 */ self.add128("1.3", "-1.30", "0.00", .toNearestOrEven)
+ /* dqadd056 */ self.add128("1.3", "-2.07", "-0.77", .toNearestOrEven)
+ /* dqadd057 */ self.add128("1E+2", "1E+4", "1.01E+4", .toNearestOrEven)
+ /* dqadd061 */ self.add128("1", "0.0001", "1.0001", .toNearestOrEven)
+ /* dqadd062 */ self.add128("1", "0.00001", "1.00001", .toNearestOrEven)
+ /* dqadd063 */ self.add128("1", "0.000001", "1.000001", .toNearestOrEven)
+ /* dqadd064 */ self.add128("1", "0.0000001", "1.0000001", .toNearestOrEven)
+ /* dqadd065 */ self.add128("1", "0.00000001", "1.00000001", .toNearestOrEven)
+ /* dqadd070 */ self.add128("1", "0", "1", .toNearestOrEven)
+ /* dqadd071 */ self.add128("1", "0.", "1", .toNearestOrEven)
+ /* dqadd072 */ self.add128("1", ".0", "1.0", .toNearestOrEven)
+ /* dqadd073 */ self.add128("1", "0.0", "1.0", .toNearestOrEven)
+ /* dqadd074 */ self.add128("1", "0.00", "1.00", .toNearestOrEven)
+ /* dqadd075 */ self.add128("0", "1", "1", .toNearestOrEven)
+ /* dqadd076 */ self.add128("0.", "1", "1", .toNearestOrEven)
+ /* dqadd077 */ self.add128(".0", "1", "1.0", .toNearestOrEven)
+ /* dqadd078 */ self.add128("0.0", "1", "1.0", .toNearestOrEven)
+ /* dqadd079 */ self.add128("0.00", "1", "1.00", .toNearestOrEven)
+ /* dqadd080 */ self.add128("999999998", "1", "999999999", .toNearestOrEven)
+ /* dqadd081 */ self.add128("999999999", "1", "1000000000", .toNearestOrEven)
+ /* dqadd082 */ self.add128("99999999", "1", "100000000", .toNearestOrEven)
+ /* dqadd083 */ self.add128("9999999", "1", "10000000", .toNearestOrEven)
+ /* dqadd084 */ self.add128("999999", "1", "1000000", .toNearestOrEven)
+ /* dqadd085 */ self.add128("99999", "1", "100000", .toNearestOrEven)
+ /* dqadd086 */ self.add128("9999", "1", "10000", .toNearestOrEven)
+ /* dqadd087 */ self.add128("999", "1", "1000", .toNearestOrEven)
+ /* dqadd088 */ self.add128("99", "1", "100", .toNearestOrEven)
+ /* dqadd089 */ self.add128("9", "1", "10", .toNearestOrEven)
+ /* dqadd090 */ self.add128("-56267E-10", "0", "-0.0000056267", .toNearestOrEven)
+ /* dqadd091 */ self.add128("-56267E-6", "0", "-0.056267", .toNearestOrEven)
+ /* dqadd092 */ self.add128("-56267E-5", "0", "-0.56267", .toNearestOrEven)
+ /* dqadd093 */ self.add128("-56267E-4", "0", "-5.6267", .toNearestOrEven)
+ /* dqadd094 */ self.add128("-56267E-3", "0", "-56.267", .toNearestOrEven)
+ /* dqadd095 */ self.add128("-56267E-2", "0", "-562.67", .toNearestOrEven)
+ /* dqadd096 */ self.add128("-56267E-1", "0", "-5626.7", .toNearestOrEven)
+ /* dqadd097 */ self.add128("-56267E-0", "0", "-56267", .toNearestOrEven)
+ /* dqadd098 */ self.add128("-5E-10", "0", "-5E-10", .toNearestOrEven)
+ /* dqadd099 */ self.add128("-5E-7", "0", "-5E-7", .toNearestOrEven)
+ /* dqadd100 */ self.add128("-5E-6", "0", "-0.000005", .toNearestOrEven)
+ /* dqadd101 */ self.add128("-5E-5", "0", "-0.00005", .toNearestOrEven)
+ /* dqadd102 */ self.add128("-5E-4", "0", "-0.0005", .toNearestOrEven)
+ /* dqadd103 */ self.add128("-5E-1", "0", "-0.5", .toNearestOrEven)
+ /* dqadd104 */ self.add128("-5E0", "0", "-5", .toNearestOrEven)
+ /* dqadd105 */ self.add128("-5E1", "0", "-50", .toNearestOrEven)
+ /* dqadd106 */ self.add128("-5E5", "0", "-500000", .toNearestOrEven)
+ /* dqadd107 */ self.add128("-5E33", "0", "-5000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd108 */ self.add128("-5E34", "0", "-5.000000000000000000000000000000000E+34", .toNearestOrEven)
+ /* dqadd109 */ self.add128("-5E35", "0", "-5.000000000000000000000000000000000E+35", .toNearestOrEven)
+ /* dqadd110 */ self.add128("-5E36", "0", "-5.000000000000000000000000000000000E+36", .toNearestOrEven)
+ /* dqadd111 */ self.add128("-5E100", "0", "-5.000000000000000000000000000000000E+100", .toNearestOrEven)
+ /* dqadd113 */ self.add128("0", "-56267E-10", "-0.0000056267", .toNearestOrEven)
+ /* dqadd114 */ self.add128("0", "-56267E-6", "-0.056267", .toNearestOrEven)
+ /* dqadd116 */ self.add128("0", "-56267E-5", "-0.56267", .toNearestOrEven)
+ /* dqadd117 */ self.add128("0", "-56267E-4", "-5.6267", .toNearestOrEven)
+ /* dqadd119 */ self.add128("0", "-56267E-3", "-56.267", .toNearestOrEven)
+ /* dqadd120 */ self.add128("0", "-56267E-2", "-562.67", .toNearestOrEven)
+ /* dqadd121 */ self.add128("0", "-56267E-1", "-5626.7", .toNearestOrEven)
+ /* dqadd122 */ self.add128("0", "-56267E-0", "-56267", .toNearestOrEven)
+ /* dqadd123 */ self.add128("0", "-5E-10", "-5E-10", .toNearestOrEven)
+ /* dqadd124 */ self.add128("0", "-5E-7", "-5E-7", .toNearestOrEven)
+ /* dqadd125 */ self.add128("0", "-5E-6", "-0.000005", .toNearestOrEven)
+ /* dqadd126 */ self.add128("0", "-5E-5", "-0.00005", .toNearestOrEven)
+ /* dqadd127 */ self.add128("0", "-5E-4", "-0.0005", .toNearestOrEven)
+ /* dqadd128 */ self.add128("0", "-5E-1", "-0.5", .toNearestOrEven)
+ /* dqadd129 */ self.add128("0", "-5E0", "-5", .toNearestOrEven)
+ /* dqadd130 */ self.add128("0", "-5E1", "-50", .toNearestOrEven)
+ /* dqadd131 */ self.add128("0", "-5E5", "-500000", .toNearestOrEven)
+ /* dqadd132 */ self.add128("0", "-5E33", "-5000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd133 */ self.add128("0", "-5E34", "-5.000000000000000000000000000000000E+34", .toNearestOrEven)
+ /* dqadd134 */ self.add128("0", "-5E35", "-5.000000000000000000000000000000000E+35", .toNearestOrEven)
+ /* dqadd135 */ self.add128("0", "-5E36", "-5.000000000000000000000000000000000E+36", .toNearestOrEven)
+ /* dqadd136 */ self.add128("0", "-5E100", "-5.000000000000000000000000000000000E+100", .toNearestOrEven)
+ /* dqadd137 */ self.add128("1", "0E-39", "1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd138 */ self.add128("-1", "0E-39", "-1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd139 */ self.add128("0E-39", "1", "1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd140 */ self.add128("0E-39", "-1", "-1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd141 */ self.add128("1E+29", "0.0000", "100000000000000000000000000000.0000", .toNearestOrEven)
+ /* dqadd142 */ self.add128("1E+29", "0.00000", "100000000000000000000000000000.0000", .toNearestOrEven)
+ /* dqadd143 */ self.add128("0.000", "1E+30", "1000000000000000000000000000000.000", .toNearestOrEven)
+ /* dqadd144 */ self.add128("0.0000", "1E+30", "1000000000000000000000000000000.000", .toNearestOrEven)
+ /* dqadd146 */ self.add128("00.0", "0", "0.0", .toNearestOrEven)
+ /* dqadd147 */ self.add128("0.00", "0", "0.00", .toNearestOrEven)
+ /* dqadd148 */ self.add128("0", "0.00", "0.00", .toNearestOrEven)
+ /* dqadd149 */ self.add128("0", "00.0", "0.0", .toNearestOrEven)
+ /* dqadd150 */ self.add128("00.0", "0.00", "0.00", .toNearestOrEven)
+ /* dqadd151 */ self.add128("0.00", "00.0", "0.00", .toNearestOrEven)
+ /* dqadd152 */ self.add128("3", ".3", "3.3", .toNearestOrEven)
+ /* dqadd153 */ self.add128("3.", ".3", "3.3", .toNearestOrEven)
+ /* dqadd154 */ self.add128("3.0", ".3", "3.3", .toNearestOrEven)
+ /* dqadd155 */ self.add128("3.00", ".3", "3.30", .toNearestOrEven)
+ /* dqadd156 */ self.add128("3", "3", "6", .toNearestOrEven)
+ /* dqadd157 */ self.add128("3", "+3", "6", .toNearestOrEven)
+ /* dqadd158 */ self.add128("3", "-3", "0", .toNearestOrEven)
+ /* dqadd159 */ self.add128("0.3", "-0.3", "0.0", .toNearestOrEven)
+ /* dqadd160 */ self.add128("0.03", "-0.03", "0.00", .toNearestOrEven)
+ /* dqadd161 */ self.add128("1E+12", "-1", "999999999999", .toNearestOrEven)
+ /* dqadd162 */ self.add128("1E+12", "1.11", "1000000000001.11", .toNearestOrEven)
+ /* dqadd163 */ self.add128("1.11", "1E+12", "1000000000001.11", .toNearestOrEven)
+ /* dqadd164 */ self.add128("-1", "1E+12", "999999999999", .toNearestOrEven)
+ /* dqadd165 */ self.add128("7E+12", "-1", "6999999999999", .toNearestOrEven)
+ /* dqadd166 */ self.add128("7E+12", "1.11", "7000000000001.11", .toNearestOrEven)
+ /* dqadd167 */ self.add128("1.11", "7E+12", "7000000000001.11", .toNearestOrEven)
+ /* dqadd168 */ self.add128("-1", "7E+12", "6999999999999", .toNearestOrEven)
+ /* dqadd170 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555567", "5.000000000000000000000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd171 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555566", "5.000000000000000000000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd172 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555565", "5.000000000000000000000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd173 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555564", "5.000000000000000000000000000000000", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd174 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555553", "4.999999999999999999999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd175 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555552", "4.999999999999999999999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd176 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555551", "4.999999999999999999999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd177 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555550", "4.999999999999999999999999999999999", .toNearestOrAwayFromZero)
+ /* dqadd178 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555545", "4.999999999999999999999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd179 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555544", "4.999999999999999999999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd180 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555543", "4.999999999999999999999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd181 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555542", "4.999999999999999999999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd182 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555541", "4.999999999999999999999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd183 */ self.add128("4.444444444444444444444444444444444", "0.5555555555555555555555555555555540", "4.999999999999999999999999999999998", .toNearestOrAwayFromZero)
+ /* dqadd200 */ self.add128("1231234567890123456784560123456789", "0", "1231234567890123456784560123456789", .toNearestOrAwayFromZero)
+ /* dqadd201 */ self.add128("1231234567890123456784560123456789", "0.000000001", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd202 */ self.add128("1231234567890123456784560123456789", "0.000001", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd203 */ self.add128("1231234567890123456784560123456789", "0.1", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd204 */ self.add128("1231234567890123456784560123456789", "0.4", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd205 */ self.add128("1231234567890123456784560123456789", "0.49", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd206 */ self.add128("1231234567890123456784560123456789", "0.499999", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd207 */ self.add128("1231234567890123456784560123456789", "0.499999999", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd208 */ self.add128("1231234567890123456784560123456789", "0.5", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd209 */ self.add128("1231234567890123456784560123456789", "0.500000001", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd210 */ self.add128("1231234567890123456784560123456789", "0.500001", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd211 */ self.add128("1231234567890123456784560123456789", "0.51", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd212 */ self.add128("1231234567890123456784560123456789", "0.6", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd213 */ self.add128("1231234567890123456784560123456789", "0.9", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd214 */ self.add128("1231234567890123456784560123456789", "0.99999", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd215 */ self.add128("1231234567890123456784560123456789", "0.999999999", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd216 */ self.add128("1231234567890123456784560123456789", "1", "1231234567890123456784560123456790", .toNearestOrAwayFromZero)
+ /* dqadd217 */ self.add128("1231234567890123456784560123456789", "1.000000001", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd218 */ self.add128("1231234567890123456784560123456789", "1.00001", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd219 */ self.add128("1231234567890123456784560123456789", "1.1", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd220 */ self.add128("1231234567890123456784560123456789", "0", "1231234567890123456784560123456789", .toNearestOrEven)
+ /* dqadd221 */ self.add128("1231234567890123456784560123456789", "0.000000001", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd222 */ self.add128("1231234567890123456784560123456789", "0.000001", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd223 */ self.add128("1231234567890123456784560123456789", "0.1", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd224 */ self.add128("1231234567890123456784560123456789", "0.4", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd225 */ self.add128("1231234567890123456784560123456789", "0.49", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd226 */ self.add128("1231234567890123456784560123456789", "0.499999", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd227 */ self.add128("1231234567890123456784560123456789", "0.499999999", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd228 */ self.add128("1231234567890123456784560123456789", "0.5", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd229 */ self.add128("1231234567890123456784560123456789", "0.500000001", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd230 */ self.add128("1231234567890123456784560123456789", "0.500001", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd231 */ self.add128("1231234567890123456784560123456789", "0.51", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd232 */ self.add128("1231234567890123456784560123456789", "0.6", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd233 */ self.add128("1231234567890123456784560123456789", "0.9", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd234 */ self.add128("1231234567890123456784560123456789", "0.99999", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd235 */ self.add128("1231234567890123456784560123456789", "0.999999999", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd236 */ self.add128("1231234567890123456784560123456789", "1", "1231234567890123456784560123456790", .toNearestOrEven)
+ /* dqadd237 */ self.add128("1231234567890123456784560123456789", "1.00000001", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd238 */ self.add128("1231234567890123456784560123456789", "1.00001", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd239 */ self.add128("1231234567890123456784560123456789", "1.1", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd240 */ self.add128("1231234567890123456784560123456788", "0.499999999", "1231234567890123456784560123456788", .toNearestOrEven, .isInexact)
+ /* dqadd241 */ self.add128("1231234567890123456784560123456788", "0.5", "1231234567890123456784560123456788", .toNearestOrEven, .isInexact)
+ /* dqadd242 */ self.add128("1231234567890123456784560123456788", "0.500000001", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd250 */ self.add128("1231234567890123456784560123456789", "0", "1231234567890123456784560123456789", .towardZero)
+ /* dqadd251 */ self.add128("1231234567890123456784560123456789", "0.000000001", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd252 */ self.add128("1231234567890123456784560123456789", "0.000001", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd253 */ self.add128("1231234567890123456784560123456789", "0.1", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd254 */ self.add128("1231234567890123456784560123456789", "0.4", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd255 */ self.add128("1231234567890123456784560123456789", "0.49", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd256 */ self.add128("1231234567890123456784560123456789", "0.499999", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd257 */ self.add128("1231234567890123456784560123456789", "0.499999999", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd258 */ self.add128("1231234567890123456784560123456789", "0.5", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd259 */ self.add128("1231234567890123456784560123456789", "0.500000001", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd260 */ self.add128("1231234567890123456784560123456789", "0.500001", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd261 */ self.add128("1231234567890123456784560123456789", "0.51", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd262 */ self.add128("1231234567890123456784560123456789", "0.6", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd263 */ self.add128("1231234567890123456784560123456789", "0.9", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd264 */ self.add128("1231234567890123456784560123456789", "0.99999", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd265 */ self.add128("1231234567890123456784560123456789", "0.999999999", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd266 */ self.add128("1231234567890123456784560123456789", "1", "1231234567890123456784560123456790", .towardZero)
+ /* dqadd267 */ self.add128("1231234567890123456784560123456789", "1.00000001", "1231234567890123456784560123456790", .towardZero, .isInexact)
+ /* dqadd268 */ self.add128("1231234567890123456784560123456789", "1.00001", "1231234567890123456784560123456790", .towardZero, .isInexact)
+ /* dqadd269 */ self.add128("1231234567890123456784560123456789", "1.1", "1231234567890123456784560123456790", .towardZero, .isInexact)
+ /* dqadd301 */ self.add128("-1", "1", "0", .toNearestOrAwayFromZero)
+ /* dqadd302 */ self.add128("0", "1", "1", .toNearestOrAwayFromZero)
+ /* dqadd303 */ self.add128("1", "1", "2", .toNearestOrAwayFromZero)
+ /* dqadd304 */ self.add128("12", "1", "13", .toNearestOrAwayFromZero)
+ /* dqadd305 */ self.add128("98", "1", "99", .toNearestOrAwayFromZero)
+ /* dqadd306 */ self.add128("99", "1", "100", .toNearestOrAwayFromZero)
+ /* dqadd307 */ self.add128("100", "1", "101", .toNearestOrAwayFromZero)
+ /* dqadd308 */ self.add128("101", "1", "102", .toNearestOrAwayFromZero)
+ /* dqadd309 */ self.add128("-1", "-1", "-2", .toNearestOrAwayFromZero)
+ /* dqadd310 */ self.add128("0", "-1", "-1", .toNearestOrAwayFromZero)
+ /* dqadd311 */ self.add128("1", "-1", "0", .toNearestOrAwayFromZero)
+ /* dqadd312 */ self.add128("12", "-1", "11", .toNearestOrAwayFromZero)
+ /* dqadd313 */ self.add128("98", "-1", "97", .toNearestOrAwayFromZero)
+ /* dqadd314 */ self.add128("99", "-1", "98", .toNearestOrAwayFromZero)
+ /* dqadd315 */ self.add128("100", "-1", "99", .toNearestOrAwayFromZero)
+ /* dqadd316 */ self.add128("101", "-1", "100", .toNearestOrAwayFromZero)
+ /* dqadd321 */ self.add128("-0.01", "0.01", "0.00", .toNearestOrAwayFromZero)
+ /* dqadd322 */ self.add128("0.00", "0.01", "0.01", .toNearestOrAwayFromZero)
+ /* dqadd323 */ self.add128("0.01", "0.01", "0.02", .toNearestOrAwayFromZero)
+ /* dqadd324 */ self.add128("0.12", "0.01", "0.13", .toNearestOrAwayFromZero)
+ /* dqadd325 */ self.add128("0.98", "0.01", "0.99", .toNearestOrAwayFromZero)
+ /* dqadd326 */ self.add128("0.99", "0.01", "1.00", .toNearestOrAwayFromZero)
+ /* dqadd327 */ self.add128("1.00", "0.01", "1.01", .toNearestOrAwayFromZero)
+ /* dqadd328 */ self.add128("1.01", "0.01", "1.02", .toNearestOrAwayFromZero)
+ /* dqadd329 */ self.add128("-0.01", "-0.01", "-0.02", .toNearestOrAwayFromZero)
+ /* dqadd330 */ self.add128("0.00", "-0.01", "-0.01", .toNearestOrAwayFromZero)
+ /* dqadd331 */ self.add128("0.01", "-0.01", "0.00", .toNearestOrAwayFromZero)
+ /* dqadd332 */ self.add128("0.12", "-0.01", "0.11", .toNearestOrAwayFromZero)
+ /* dqadd333 */ self.add128("0.98", "-0.01", "0.97", .toNearestOrAwayFromZero)
+ /* dqadd334 */ self.add128("0.99", "-0.01", "0.98", .toNearestOrAwayFromZero)
+ /* dqadd335 */ self.add128("1.00", "-0.01", "0.99", .toNearestOrAwayFromZero)
+ /* dqadd336 */ self.add128("1.01", "-0.01", "1.00", .toNearestOrAwayFromZero)
+ /* dqadd340 */ self.add128("1E+3", "0", "1000", .toNearestOrAwayFromZero)
+ /* dqadd341 */ self.add128("1E+33", "0", "1000000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqadd342 */ self.add128("1E+34", "0", "1.000000000000000000000000000000000E+34", .toNearestOrAwayFromZero)
+ /* dqadd343 */ self.add128("1E+35", "0", "1.000000000000000000000000000000000E+35", .toNearestOrAwayFromZero)
+ /* dqadd344 */ self.add128("1E+3", "1", "1001", .toNearestOrAwayFromZero)
+ /* dqadd345 */ self.add128("1E+33", "1", "1000000000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* dqadd346 */ self.add128("1E+34", "1", "1.000000000000000000000000000000000E+34", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd347 */ self.add128("1E+35", "1", "1.000000000000000000000000000000000E+35", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd348 */ self.add128("1E+3", "7", "1007", .toNearestOrAwayFromZero)
+ /* dqadd349 */ self.add128("1E+33", "7", "1000000000000000000000000000000007", .toNearestOrAwayFromZero)
+ /* dqadd350 */ self.add128("1E+34", "7", "1.000000000000000000000000000000001E+34", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd351 */ self.add128("1E+35", "7", "1.000000000000000000000000000000000E+35", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd360 */ self.add128("0E+50", "10000E+1", "1.0000E+5", .toNearestOrAwayFromZero)
+ /* dqadd361 */ self.add128("0E-50", "10000E+1", "100000.0000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqadd362 */ self.add128("10000E+1", "0E-50", "100000.0000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqadd363 */ self.add128("10000E+1", "10000E-50", "100000.0000000000000000000000000000", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd364 */ self.add128("9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", "0E+6111", .toNearestOrAwayFromZero)
+ /* dqadd372 */ self.add128("999999999999999999999999999999999", "815", "1000000000000000000000000000000814", .toNearestOrAwayFromZero)
+ /* dqadd373 */ self.add128("9999999999999999999999999999999999", "815", "1.000000000000000000000000000000081E+34", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd374 */ self.add128("999999999999999999999999999999999", "815", "1000000000000000000000000000000814", .toNearestOrEven)
+ /* dqadd375 */ self.add128("9999999999999999999999999999999999", "815", "1.000000000000000000000000000000081E+34", .toNearestOrEven, .isInexact)
+ /* dqadd400 */ self.add128("1", "77e-32", "1.00000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd401 */ self.add128("1", "77e-33", "1.000000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd402 */ self.add128("1", "77e-34", "1.000000000000000000000000000000008", .toNearestOrEven, .isInexact)
+ /* dqadd403 */ self.add128("1", "77e-35", "1.000000000000000000000000000000001", .toNearestOrEven, .isInexact)
+ /* dqadd404 */ self.add128("1", "77e-36", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd405 */ self.add128("1", "77e-37", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd406 */ self.add128("1", "77e-299", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd410 */ self.add128("10", "77e-32", "10.00000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd411 */ self.add128("10", "77e-33", "10.00000000000000000000000000000008", .toNearestOrEven, .isInexact)
+ /* dqadd412 */ self.add128("10", "77e-34", "10.00000000000000000000000000000001", .toNearestOrEven, .isInexact)
+ /* dqadd413 */ self.add128("10", "77e-35", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd414 */ self.add128("10", "77e-36", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd415 */ self.add128("10", "77e-37", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd416 */ self.add128("10", "77e-299", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd420 */ self.add128("77e-32", "1", "1.00000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd421 */ self.add128("77e-33", "1", "1.000000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd422 */ self.add128("77e-34", "1", "1.000000000000000000000000000000008", .toNearestOrEven, .isInexact)
+ /* dqadd423 */ self.add128("77e-35", "1", "1.000000000000000000000000000000001", .toNearestOrEven, .isInexact)
+ /* dqadd424 */ self.add128("77e-36", "1", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd425 */ self.add128("77e-37", "1", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd426 */ self.add128("77e-299", "1", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd430 */ self.add128("77e-32", "10", "10.00000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd431 */ self.add128("77e-33", "10", "10.00000000000000000000000000000008", .toNearestOrEven, .isInexact)
+ /* dqadd432 */ self.add128("77e-34", "10", "10.00000000000000000000000000000001", .toNearestOrEven, .isInexact)
+ /* dqadd433 */ self.add128("77e-35", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd434 */ self.add128("77e-36", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd435 */ self.add128("77e-37", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd436 */ self.add128("77e-299", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd501 */ self.add128("4444444444444444444444444444444444", "5555555555555555555555555555555555", "9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqadd502 */ self.add128("4444444444444444444444444444444444", "4555555555555555555555555555555555", "8999999999999999999999999999999999", .toNearestOrEven)
+ /* dqadd503 */ self.add128("4444444444444444444444444444444444", "3555555555555555555055555555555555", "7999999999999999999499999999999999", .toNearestOrEven)
+ /* dqadd504 */ self.add128("4444444444444444444444444444444444", "3955555555555555555555555555555555", "8399999999999999999999999999999999", .toNearestOrEven)
+ /* dqadd505 */ self.add128("4444444444444444444444444444444444", "4955555555555555555555555555555555", "9399999999999999999999999999999999", .toNearestOrEven)
+ /* dqadd506 */ self.add128("4444444444444444444444444444444444", "5955555555555555555555555555555555", "1.040000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd511 */ self.add128("344444444444444444444444444444444", "555555555555555555555555555555555", "899999999999999999999999999999999", .toNearestOrEven)
+ /* dqadd512 */ self.add128("34444444444444444444444444444444", "55555555555555555555555555555555", "89999999999999999999999999999999", .toNearestOrEven)
+ /* dqadd513 */ self.add128("3444444444444444444444444444444", "5555555555555555555555555555555", "8999999999999999999999999999999", .toNearestOrEven)
+ /* dqadd514 */ self.add128("344444444444444444444444444444", "555555555555555555555555555555", "899999999999999999999999999999", .toNearestOrEven)
+ /* dqadd515 */ self.add128("34444444444444444444444444444", "55555555555555555555555555555", "89999999999999999999999999999", .toNearestOrEven)
+ /* dqadd516 */ self.add128("3444444444444444444444444444", "5555555555555555555555555555", "8999999999999999999999999999", .toNearestOrEven)
+ /* dqadd517 */ self.add128("344444444444444444444444444", "555555555555555555555555555", "899999999999999999999999999", .toNearestOrEven)
+ /* dqadd518 */ self.add128("34444444444444444444444444", "55555555555555555555555555", "89999999999999999999999999", .toNearestOrEven)
+ /* dqadd519 */ self.add128("3444444444444444444444444", "5555555555555555555555555", "8999999999999999999999999", .toNearestOrEven)
+ /* dqadd520 */ self.add128("344444444444444444444444", "555555555555555555555555", "899999999999999999999999", .toNearestOrEven)
+ /* dqadd521 */ self.add128("34444444444444444444444", "55555555555555555555555", "89999999999999999999999", .toNearestOrEven)
+ /* dqadd522 */ self.add128("3444444444444444444444", "5555555555555555555555", "8999999999999999999999", .toNearestOrEven)
+ /* dqadd523 */ self.add128("4444444444444444444444", "3333333333333333333333", "7777777777777777777777", .toNearestOrEven)
+ /* dqadd524 */ self.add128("344444444444444444444", "555555555555555555555", "899999999999999999999", .toNearestOrEven)
+ /* dqadd525 */ self.add128("34444444444444444444", "55555555555555555555", "89999999999999999999", .toNearestOrEven)
+ /* dqadd526 */ self.add128("3444444444444444444", "5555555555555555555", "8999999999999999999", .toNearestOrEven)
+ /* dqadd527 */ self.add128("344444444444444444", "555555555555555555", "899999999999999999", .toNearestOrEven)
+ /* dqadd528 */ self.add128("34444444444444444", "55555555555555555", "89999999999999999", .toNearestOrEven)
+ /* dqadd529 */ self.add128("3444444444444444", "5555555555555555", "8999999999999999", .toNearestOrEven)
+ /* dqadd530 */ self.add128("344444444444444", "555555555555555", "899999999999999", .toNearestOrEven)
+ /* dqadd531 */ self.add128("34444444444444", "55555555555555", "89999999999999", .toNearestOrEven)
+ /* dqadd532 */ self.add128("3444444444444", "5555555555555", "8999999999999", .toNearestOrEven)
+ /* dqadd533 */ self.add128("344444444444", "555555555555", "899999999999", .toNearestOrEven)
+ /* dqadd534 */ self.add128("34444444444", "55555555555", "89999999999", .toNearestOrEven)
+ /* dqadd535 */ self.add128("3444444444", "5555555555", "8999999999", .toNearestOrEven)
+ /* dqadd536 */ self.add128("344444444", "555555555", "899999999", .toNearestOrEven)
+ /* dqadd537 */ self.add128("34444444", "55555555", "89999999", .toNearestOrEven)
+ /* dqadd538 */ self.add128("3444444", "5555555", "8999999", .toNearestOrEven)
+ /* dqadd539 */ self.add128("344444", "555555", "899999", .toNearestOrEven)
+ /* dqadd540 */ self.add128("34444", "55555", "89999", .toNearestOrEven)
+ /* dqadd541 */ self.add128("3444", "5555", "8999", .toNearestOrEven)
+ /* dqadd542 */ self.add128("344", "555", "899", .toNearestOrEven)
+ /* dqadd543 */ self.add128("34", "55", "89", .toNearestOrEven)
+ /* dqadd544 */ self.add128("3", "5", "8", .toNearestOrEven)
+ /* dqadd545 */ self.add128("3000004000000000000000000000000000", "3000000000000040000000000000000000", "6000004000000040000000000000000000", .toNearestOrEven)
+ /* dqadd546 */ self.add128("3000000400000000000000000000000000", "4000000000000400000000000000000000", "7000000400000400000000000000000000", .toNearestOrEven)
+ /* dqadd547 */ self.add128("3000000040000000000000000000000000", "5000000000004000000000000000000000", "8000000040004000000000000000000000", .toNearestOrEven)
+ /* dqadd548 */ self.add128("4000000004000000000000000000000000", "3000000000040000000000000000000000", "7000000004040000000000000000000000", .toNearestOrEven)
+ /* dqadd549 */ self.add128("4000000000400000000000000000000000", "4000000000400000000000000000000000", "8000000000800000000000000000000000", .toNearestOrEven)
+ /* dqadd550 */ self.add128("4000000000040000000000000000000000", "5000000004000000000000000000000000", "9000000004040000000000000000000000", .toNearestOrEven)
+ /* dqadd551 */ self.add128("5000000000004000000000000000000000", "3000000040000000000000000000000000", "8000000040004000000000000000000000", .toNearestOrEven)
+ /* dqadd552 */ self.add128("5000000000000400000000000000000000", "4000000400000000000000000000000000", "9000000400000400000000000000000000", .toNearestOrEven)
+ /* dqadd553 */ self.add128("5000000000000040000000000000000000", "5000004000000000000000000000000000", "1.000000400000004000000000000000000E+34", .toNearestOrEven)
+ /* dqadd554 */ self.add128("8999999999999999999999999999999999", "0000000000000000000000000000000001", "9000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd555 */ self.add128("0000000000000000000000000000000001", "8999999999999999999999999999999999", "9000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd556 */ self.add128("4444444444444444444444444444444444", "4555555555555555555555555555555556", "9000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd557 */ self.add128("4555555555555555555555555555555556", "4444444444444444444444444444444444", "9000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd6440 */ self.add128("1", "-77e-32", "0.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6441 */ self.add128("1", "-77e-33", "0.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6442 */ self.add128("1", "-77e-34", "0.9999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6443 */ self.add128("1", "-77e-35", "0.9999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd6444 */ self.add128("1", "-77e-36", "0.9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd6445 */ self.add128("1", "-77e-37", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6446 */ self.add128("1", "-77e-99", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6450 */ self.add128("10", "-77e-32", "9.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6451 */ self.add128("10", "-77e-33", "9.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6452 */ self.add128("10", "-77e-34", "9.999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd6453 */ self.add128("10", "-77e-35", "9.999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd6454 */ self.add128("10", "-77e-36", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6455 */ self.add128("10", "-77e-37", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6456 */ self.add128("10", "-77e-99", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6460 */ self.add128("-77e-32", "1", "0.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6461 */ self.add128("-77e-33", "1", "0.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6462 */ self.add128("-77e-34", "1", "0.9999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6463 */ self.add128("-77e-35", "1", "0.9999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd6464 */ self.add128("-77e-36", "1", "0.9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd6465 */ self.add128("-77e-37", "1", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6466 */ self.add128("-77e-99", "1", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6470 */ self.add128("-77e-32", "10", "9.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6471 */ self.add128("-77e-33", "10", "9.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6472 */ self.add128("-77e-34", "10", "9.999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd6473 */ self.add128("-77e-35", "10", "9.999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd6474 */ self.add128("-77e-36", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6475 */ self.add128("-77e-37", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6476 */ self.add128("-77e-99", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6480 */ self.add128("-1", "77e-32", "-0.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6481 */ self.add128("-1", "77e-33", "-0.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6482 */ self.add128("-1", "77e-34", "-0.9999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6483 */ self.add128("-1", "77e-35", "-0.9999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd6484 */ self.add128("-1", "77e-36", "-0.9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd6485 */ self.add128("-1", "77e-37", "-1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6486 */ self.add128("-1", "77e-99", "-1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6490 */ self.add128("-10", "77e-32", "-9.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6491 */ self.add128("-10", "77e-33", "-9.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6492 */ self.add128("-10", "77e-34", "-9.999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd6493 */ self.add128("-10", "77e-35", "-9.999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd6494 */ self.add128("-10", "77e-36", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6495 */ self.add128("-10", "77e-37", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6496 */ self.add128("-10", "77e-99", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6500 */ self.add128("77e-32", "-1", "-0.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6501 */ self.add128("77e-33", "-1", "-0.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6502 */ self.add128("77e-34", "-1", "-0.9999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6503 */ self.add128("77e-35", "-1", "-0.9999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd6504 */ self.add128("77e-36", "-1", "-0.9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd6505 */ self.add128("77e-37", "-1", "-1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6506 */ self.add128("77e-99", "-1", "-1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6510 */ self.add128("77e-32", "-10", "-9.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6511 */ self.add128("77e-33", "-10", "-9.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd6512 */ self.add128("77e-34", "-10", "-9.999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd6513 */ self.add128("77e-35", "-10", "-9.999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd6514 */ self.add128("77e-36", "-10", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6515 */ self.add128("77e-37", "-10", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6516 */ self.add128("77e-99", "-10", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd6540 */ self.add128("9876543219876543216543210123456789", "0", "9876543219876543216543210123456789", .toNearestOrAwayFromZero)
+ /* dqadd6541 */ self.add128("9876543219876543216543210123456789", "0.000000001", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6542 */ self.add128("9876543219876543216543210123456789", "0.000001", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6543 */ self.add128("9876543219876543216543210123456789", "0.1", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6544 */ self.add128("9876543219876543216543210123456789", "0.4", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6545 */ self.add128("9876543219876543216543210123456789", "0.49", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6546 */ self.add128("9876543219876543216543210123456789", "0.499999", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6547 */ self.add128("9876543219876543216543210123456789", "0.499999999", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6548 */ self.add128("9876543219876543216543210123456789", "0.5", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6549 */ self.add128("9876543219876543216543210123456789", "0.500000001", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6550 */ self.add128("9876543219876543216543210123456789", "0.500001", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6551 */ self.add128("9876543219876543216543210123456789", "0.51", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6552 */ self.add128("9876543219876543216543210123456789", "0.6", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6553 */ self.add128("9876543219876543216543210123456789", "0.9", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6554 */ self.add128("9876543219876543216543210123456789", "0.99999", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6555 */ self.add128("9876543219876543216543210123456789", "0.999999999", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6556 */ self.add128("9876543219876543216543210123456789", "1", "9876543219876543216543210123456790", .toNearestOrAwayFromZero)
+ /* dqadd6557 */ self.add128("9876543219876543216543210123456789", "1.000000001", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6558 */ self.add128("9876543219876543216543210123456789", "1.00001", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6559 */ self.add128("9876543219876543216543210123456789", "1.1", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd6560 */ self.add128("9876543219876543216543210123456789", "0", "9876543219876543216543210123456789", .toNearestOrEven)
+ /* dqadd6561 */ self.add128("9876543219876543216543210123456789", "0.000000001", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd6562 */ self.add128("9876543219876543216543210123456789", "0.000001", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd6563 */ self.add128("9876543219876543216543210123456789", "0.1", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd6564 */ self.add128("9876543219876543216543210123456789", "0.4", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd6565 */ self.add128("9876543219876543216543210123456789", "0.49", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd6566 */ self.add128("9876543219876543216543210123456789", "0.499999", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd6567 */ self.add128("9876543219876543216543210123456789", "0.499999999", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd6568 */ self.add128("9876543219876543216543210123456789", "0.5", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd6569 */ self.add128("9876543219876543216543210123456789", "0.500000001", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd6570 */ self.add128("9876543219876543216543210123456789", "0.500001", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd6571 */ self.add128("9876543219876543216543210123456789", "0.51", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd6572 */ self.add128("9876543219876543216543210123456789", "0.6", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd6573 */ self.add128("9876543219876543216543210123456789", "0.9", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd6574 */ self.add128("9876543219876543216543210123456789", "0.99999", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd6575 */ self.add128("9876543219876543216543210123456789", "0.999999999", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd6576 */ self.add128("9876543219876543216543210123456789", "1", "9876543219876543216543210123456790", .toNearestOrEven)
+ /* dqadd6577 */ self.add128("9876543219876543216543210123456789", "1.00000001", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd6578 */ self.add128("9876543219876543216543210123456789", "1.00001", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd6579 */ self.add128("9876543219876543216543210123456789", "1.1", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd71100 */ self.add128("1e+2", "-1e-6143", "99.99999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd71101 */ self.add128("1e+1", "-1e-6143", "9.999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd71103 */ self.add128("+1", "-1e-6143", "0.9999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd71104 */ self.add128("1e-1", "-1e-6143", "0.09999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd71105 */ self.add128("1e-2", "-1e-6143", "0.009999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd71106 */ self.add128("1e-3", "-1e-6143", "0.0009999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd71107 */ self.add128("1e-4", "-1e-6143", "0.00009999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd71108 */ self.add128("1e-5", "-1e-6143", "0.000009999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd71109 */ self.add128("1e-6", "-1e-6143", "9.999999999999999999999999999999999E-7", .towardZero, .isInexact)
+ /* dqadd71110 */ self.add128("-1e+2", "+1e-6143", "-99.99999999999999999999999999999999", .up, .isInexact)
+ /* dqadd71111 */ self.add128("-1e+1", "+1e-6143", "-9.999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd71113 */ self.add128("-1", "+1e-6143", "-0.9999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd71114 */ self.add128("-1e-1", "+1e-6143", "-0.09999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd71115 */ self.add128("-1e-2", "+1e-6143", "-0.009999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd71116 */ self.add128("-1e-3", "+1e-6143", "-0.0009999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd71117 */ self.add128("-1e-4", "+1e-6143", "-0.00009999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd71118 */ self.add128("-1e-5", "+1e-6143", "-0.000009999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd71119 */ self.add128("-1e-6", "+1e-6143", "-9.999999999999999999999999999999999E-7", .up, .isInexact)
+ /* dqadd71300 */ self.add128("1E34", "-0.5", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71310 */ self.add128("1E34", "-0.51", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71311 */ self.add128("1E34", "-0.501", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71312 */ self.add128("1E34", "-0.5001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71313 */ self.add128("1E34", "-0.50001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71314 */ self.add128("1E34", "-0.500001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71315 */ self.add128("1E34", "-0.5000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71316 */ self.add128("1E34", "-0.50000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71317 */ self.add128("1E34", "-0.500000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71318 */ self.add128("1E34", "-0.5000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71319 */ self.add128("1E34", "-0.50000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71320 */ self.add128("1E34", "-0.500000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71321 */ self.add128("1E34", "-0.5000000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71322 */ self.add128("1E34", "-0.50000000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71323 */ self.add128("1E34", "-0.500000000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71324 */ self.add128("1E34", "-0.5000000000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71325 */ self.add128("1E34", "-0.5000000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71326 */ self.add128("1E34", "-0.500000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71327 */ self.add128("1E34", "-0.50000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71328 */ self.add128("1E34", "-0.5000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71329 */ self.add128("1E34", "-0.500000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71330 */ self.add128("1E34", "-0.50000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71331 */ self.add128("1E34", "-0.5000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71332 */ self.add128("1E34", "-0.500000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71333 */ self.add128("1E34", "-0.50000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71334 */ self.add128("1E34", "-0.5000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71335 */ self.add128("1E34", "-0.500000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71336 */ self.add128("1E34", "-0.50000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71337 */ self.add128("1E34", "-0.5000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71338 */ self.add128("1E34", "-0.500", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71339 */ self.add128("1E34", "-0.50", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71340 */ self.add128("1E34", "-5000000.000010001", "9999999999999999999999999995000000", .toNearestOrEven, .isInexact)
+ /* dqadd71341 */ self.add128("1E34", "-5000000.000000001", "9999999999999999999999999995000000", .toNearestOrEven, .isInexact)
+ /* dqadd71349 */ self.add128("9999999999999999999999999999999999", "0.4", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71350 */ self.add128("9999999999999999999999999999999999", "0.49", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71351 */ self.add128("9999999999999999999999999999999999", "0.499", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71352 */ self.add128("9999999999999999999999999999999999", "0.4999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71353 */ self.add128("9999999999999999999999999999999999", "0.49999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71354 */ self.add128("9999999999999999999999999999999999", "0.499999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71355 */ self.add128("9999999999999999999999999999999999", "0.4999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71356 */ self.add128("9999999999999999999999999999999999", "0.49999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71357 */ self.add128("9999999999999999999999999999999999", "0.499999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71358 */ self.add128("9999999999999999999999999999999999", "0.4999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71359 */ self.add128("9999999999999999999999999999999999", "0.49999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71360 */ self.add128("9999999999999999999999999999999999", "0.499999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71361 */ self.add128("9999999999999999999999999999999999", "0.4999999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71362 */ self.add128("9999999999999999999999999999999999", "0.49999999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71363 */ self.add128("9999999999999999999999999999999999", "0.499999999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71364 */ self.add128("9999999999999999999999999999999999", "0.4999999999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd71365 */ self.add128("9999999999999999999999999999999999", "0.5000000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71367 */ self.add128("9999999999999999999999999999999999", "0.500000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71368 */ self.add128("9999999999999999999999999999999999", "0.50000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71369 */ self.add128("9999999999999999999999999999999999", "0.5000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71370 */ self.add128("9999999999999999999999999999999999", "0.500000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71371 */ self.add128("9999999999999999999999999999999999", "0.50000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71372 */ self.add128("9999999999999999999999999999999999", "0.5000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71373 */ self.add128("9999999999999999999999999999999999", "0.500000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71374 */ self.add128("9999999999999999999999999999999999", "0.50000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71375 */ self.add128("9999999999999999999999999999999999", "0.5000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71376 */ self.add128("9999999999999999999999999999999999", "0.500000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71377 */ self.add128("9999999999999999999999999999999999", "0.50000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71378 */ self.add128("9999999999999999999999999999999999", "0.5000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71379 */ self.add128("9999999999999999999999999999999999", "0.500", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71380 */ self.add128("9999999999999999999999999999999999", "0.50", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71381 */ self.add128("9999999999999999999999999999999999", "0.5", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71382 */ self.add128("9999999999999999999999999999999999", "0.5000000000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71383 */ self.add128("9999999999999999999999999999999999", "0.500000000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71384 */ self.add128("9999999999999999999999999999999999", "0.50000000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71385 */ self.add128("9999999999999999999999999999999999", "0.5000000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71386 */ self.add128("9999999999999999999999999999999999", "0.500000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71387 */ self.add128("9999999999999999999999999999999999", "0.50000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71388 */ self.add128("9999999999999999999999999999999999", "0.5000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71389 */ self.add128("9999999999999999999999999999999999", "0.500000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71390 */ self.add128("9999999999999999999999999999999999", "0.50000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71391 */ self.add128("9999999999999999999999999999999999", "0.5000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71392 */ self.add128("9999999999999999999999999999999999", "0.500001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71393 */ self.add128("9999999999999999999999999999999999", "0.50001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71394 */ self.add128("9999999999999999999999999999999999", "0.5001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71395 */ self.add128("9999999999999999999999999999999999", "0.501", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71396 */ self.add128("9999999999999999999999999999999999", "0.51", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd71420 */ self.add128("0", "1.123456789987654321123456789012345", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71421 */ self.add128("0", "1.123456789987654321123456789012345E-1", "0.1123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71422 */ self.add128("0", "1.123456789987654321123456789012345E-2", "0.01123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71423 */ self.add128("0", "1.123456789987654321123456789012345E-3", "0.001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71424 */ self.add128("0", "1.123456789987654321123456789012345E-4", "0.0001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71425 */ self.add128("0", "1.123456789987654321123456789012345E-5", "0.00001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71426 */ self.add128("0", "1.123456789987654321123456789012345E-6", "0.000001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71427 */ self.add128("0", "1.123456789987654321123456789012345E-7", "1.123456789987654321123456789012345E-7", .toNearestOrEven)
+ /* dqadd71428 */ self.add128("0", "1.123456789987654321123456789012345E-8", "1.123456789987654321123456789012345E-8", .toNearestOrEven)
+ /* dqadd71429 */ self.add128("0", "1.123456789987654321123456789012345E-9", "1.123456789987654321123456789012345E-9", .toNearestOrEven)
+ /* dqadd71430 */ self.add128("0", "1.123456789987654321123456789012345E-10", "1.123456789987654321123456789012345E-10", .toNearestOrEven)
+ /* dqadd71431 */ self.add128("0", "1.123456789987654321123456789012345E-11", "1.123456789987654321123456789012345E-11", .toNearestOrEven)
+ /* dqadd71432 */ self.add128("0", "1.123456789987654321123456789012345E-12", "1.123456789987654321123456789012345E-12", .toNearestOrEven)
+ /* dqadd71433 */ self.add128("0", "1.123456789987654321123456789012345E-13", "1.123456789987654321123456789012345E-13", .toNearestOrEven)
+ /* dqadd71434 */ self.add128("0", "1.123456789987654321123456789012345E-14", "1.123456789987654321123456789012345E-14", .toNearestOrEven)
+ /* dqadd71435 */ self.add128("0", "1.123456789987654321123456789012345E-15", "1.123456789987654321123456789012345E-15", .toNearestOrEven)
+ /* dqadd71436 */ self.add128("0", "1.123456789987654321123456789012345E-16", "1.123456789987654321123456789012345E-16", .toNearestOrEven)
+ /* dqadd71437 */ self.add128("0", "1.123456789987654321123456789012345E-17", "1.123456789987654321123456789012345E-17", .toNearestOrEven)
+ /* dqadd71438 */ self.add128("0", "1.123456789987654321123456789012345E-18", "1.123456789987654321123456789012345E-18", .toNearestOrEven)
+ /* dqadd71439 */ self.add128("0", "1.123456789987654321123456789012345E-19", "1.123456789987654321123456789012345E-19", .toNearestOrEven)
+ /* dqadd71440 */ self.add128("0", "1.123456789987654321123456789012345E-20", "1.123456789987654321123456789012345E-20", .toNearestOrEven)
+ /* dqadd71441 */ self.add128("0", "1.123456789987654321123456789012345E-21", "1.123456789987654321123456789012345E-21", .toNearestOrEven)
+ /* dqadd71442 */ self.add128("0", "1.123456789987654321123456789012345E-22", "1.123456789987654321123456789012345E-22", .toNearestOrEven)
+ /* dqadd71443 */ self.add128("0", "1.123456789987654321123456789012345E-23", "1.123456789987654321123456789012345E-23", .toNearestOrEven)
+ /* dqadd71444 */ self.add128("0", "1.123456789987654321123456789012345E-24", "1.123456789987654321123456789012345E-24", .toNearestOrEven)
+ /* dqadd71445 */ self.add128("0", "1.123456789987654321123456789012345E-25", "1.123456789987654321123456789012345E-25", .toNearestOrEven)
+ /* dqadd71446 */ self.add128("0", "1.123456789987654321123456789012345E-26", "1.123456789987654321123456789012345E-26", .toNearestOrEven)
+ /* dqadd71447 */ self.add128("0", "1.123456789987654321123456789012345E-27", "1.123456789987654321123456789012345E-27", .toNearestOrEven)
+ /* dqadd71448 */ self.add128("0", "1.123456789987654321123456789012345E-28", "1.123456789987654321123456789012345E-28", .toNearestOrEven)
+ /* dqadd71449 */ self.add128("0", "1.123456789987654321123456789012345E-29", "1.123456789987654321123456789012345E-29", .toNearestOrEven)
+ /* dqadd71450 */ self.add128("0", "1.123456789987654321123456789012345E-30", "1.123456789987654321123456789012345E-30", .toNearestOrEven)
+ /* dqadd71451 */ self.add128("0", "1.123456789987654321123456789012345E-31", "1.123456789987654321123456789012345E-31", .toNearestOrEven)
+ /* dqadd71452 */ self.add128("0", "1.123456789987654321123456789012345E-32", "1.123456789987654321123456789012345E-32", .toNearestOrEven)
+ /* dqadd71453 */ self.add128("0", "1.123456789987654321123456789012345E-33", "1.123456789987654321123456789012345E-33", .toNearestOrEven)
+ /* dqadd71454 */ self.add128("0", "1.123456789987654321123456789012345E-34", "1.123456789987654321123456789012345E-34", .toNearestOrEven)
+ /* dqadd71455 */ self.add128("0", "1.123456789987654321123456789012345E-35", "1.123456789987654321123456789012345E-35", .toNearestOrEven)
+ /* dqadd71456 */ self.add128("0", "1.123456789987654321123456789012345E-36", "1.123456789987654321123456789012345E-36", .toNearestOrEven)
+ /* dqadd71460 */ self.add128("1.123456789987654321123456789012345", "0", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71461 */ self.add128("1.123456789987654321123456789012345E-1", "0", "0.1123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71462 */ self.add128("1.123456789987654321123456789012345E-2", "0", "0.01123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71463 */ self.add128("1.123456789987654321123456789012345E-3", "0", "0.001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71464 */ self.add128("1.123456789987654321123456789012345E-4", "0", "0.0001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71465 */ self.add128("1.123456789987654321123456789012345E-5", "0", "0.00001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71466 */ self.add128("1.123456789987654321123456789012345E-6", "0", "0.000001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71467 */ self.add128("1.123456789987654321123456789012345E-7", "0", "1.123456789987654321123456789012345E-7", .toNearestOrEven)
+ /* dqadd71468 */ self.add128("1.123456789987654321123456789012345E-8", "0", "1.123456789987654321123456789012345E-8", .toNearestOrEven)
+ /* dqadd71469 */ self.add128("1.123456789987654321123456789012345E-9", "0", "1.123456789987654321123456789012345E-9", .toNearestOrEven)
+ /* dqadd71470 */ self.add128("1.123456789987654321123456789012345E-10", "0", "1.123456789987654321123456789012345E-10", .toNearestOrEven)
+ /* dqadd71471 */ self.add128("1.123456789987654321123456789012345E-11", "0", "1.123456789987654321123456789012345E-11", .toNearestOrEven)
+ /* dqadd71472 */ self.add128("1.123456789987654321123456789012345E-12", "0", "1.123456789987654321123456789012345E-12", .toNearestOrEven)
+ /* dqadd71473 */ self.add128("1.123456789987654321123456789012345E-13", "0", "1.123456789987654321123456789012345E-13", .toNearestOrEven)
+ /* dqadd71474 */ self.add128("1.123456789987654321123456789012345E-14", "0", "1.123456789987654321123456789012345E-14", .toNearestOrEven)
+ /* dqadd71475 */ self.add128("1.123456789987654321123456789012345E-15", "0", "1.123456789987654321123456789012345E-15", .toNearestOrEven)
+ /* dqadd71476 */ self.add128("1.123456789987654321123456789012345E-16", "0", "1.123456789987654321123456789012345E-16", .toNearestOrEven)
+ /* dqadd71477 */ self.add128("1.123456789987654321123456789012345E-17", "0", "1.123456789987654321123456789012345E-17", .toNearestOrEven)
+ /* dqadd71478 */ self.add128("1.123456789987654321123456789012345E-18", "0", "1.123456789987654321123456789012345E-18", .toNearestOrEven)
+ /* dqadd71479 */ self.add128("1.123456789987654321123456789012345E-19", "0", "1.123456789987654321123456789012345E-19", .toNearestOrEven)
+ /* dqadd71480 */ self.add128("1.123456789987654321123456789012345E-20", "0", "1.123456789987654321123456789012345E-20", .toNearestOrEven)
+ /* dqadd71481 */ self.add128("1.123456789987654321123456789012345E-21", "0", "1.123456789987654321123456789012345E-21", .toNearestOrEven)
+ /* dqadd71482 */ self.add128("1.123456789987654321123456789012345E-22", "0", "1.123456789987654321123456789012345E-22", .toNearestOrEven)
+ /* dqadd71483 */ self.add128("1.123456789987654321123456789012345E-23", "0", "1.123456789987654321123456789012345E-23", .toNearestOrEven)
+ /* dqadd71484 */ self.add128("1.123456789987654321123456789012345E-24", "0", "1.123456789987654321123456789012345E-24", .toNearestOrEven)
+ /* dqadd71485 */ self.add128("1.123456789987654321123456789012345E-25", "0", "1.123456789987654321123456789012345E-25", .toNearestOrEven)
+ /* dqadd71486 */ self.add128("1.123456789987654321123456789012345E-26", "0", "1.123456789987654321123456789012345E-26", .toNearestOrEven)
+ /* dqadd71487 */ self.add128("1.123456789987654321123456789012345E-27", "0", "1.123456789987654321123456789012345E-27", .toNearestOrEven)
+ /* dqadd71488 */ self.add128("1.123456789987654321123456789012345E-28", "0", "1.123456789987654321123456789012345E-28", .toNearestOrEven)
+ /* dqadd71489 */ self.add128("1.123456789987654321123456789012345E-29", "0", "1.123456789987654321123456789012345E-29", .toNearestOrEven)
+ /* dqadd71490 */ self.add128("1.123456789987654321123456789012345E-30", "0", "1.123456789987654321123456789012345E-30", .toNearestOrEven)
+ /* dqadd71491 */ self.add128("1.123456789987654321123456789012345E-31", "0", "1.123456789987654321123456789012345E-31", .toNearestOrEven)
+ /* dqadd71492 */ self.add128("1.123456789987654321123456789012345E-32", "0", "1.123456789987654321123456789012345E-32", .toNearestOrEven)
+ /* dqadd71493 */ self.add128("1.123456789987654321123456789012345E-33", "0", "1.123456789987654321123456789012345E-33", .toNearestOrEven)
+ /* dqadd71494 */ self.add128("1.123456789987654321123456789012345E-34", "0", "1.123456789987654321123456789012345E-34", .toNearestOrEven)
+ /* dqadd71495 */ self.add128("1.123456789987654321123456789012345E-35", "0", "1.123456789987654321123456789012345E-35", .toNearestOrEven)
+ /* dqadd71496 */ self.add128("1.123456789987654321123456789012345E-36", "0", "1.123456789987654321123456789012345E-36", .toNearestOrEven)
+ /* dqadd71500 */ self.add128("1.123456789987654321123456789012345", "0E-0", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71501 */ self.add128("1.123456789987654321123456789012345", "0E-1", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71502 */ self.add128("1.123456789987654321123456789012345", "0E-2", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71503 */ self.add128("1.123456789987654321123456789012345", "0E-3", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71504 */ self.add128("1.123456789987654321123456789012345", "0E-4", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71505 */ self.add128("1.123456789987654321123456789012345", "0E-5", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71506 */ self.add128("1.123456789987654321123456789012345", "0E-6", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71507 */ self.add128("1.123456789987654321123456789012345", "0E-7", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71508 */ self.add128("1.123456789987654321123456789012345", "0E-8", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71509 */ self.add128("1.123456789987654321123456789012345", "0E-9", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71510 */ self.add128("1.123456789987654321123456789012345", "0E-10", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71511 */ self.add128("1.123456789987654321123456789012345", "0E-11", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71512 */ self.add128("1.123456789987654321123456789012345", "0E-12", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71513 */ self.add128("1.123456789987654321123456789012345", "0E-13", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71514 */ self.add128("1.123456789987654321123456789012345", "0E-14", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71515 */ self.add128("1.123456789987654321123456789012345", "0E-15", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71516 */ self.add128("1.123456789987654321123456789012345", "0E-16", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71517 */ self.add128("1.123456789987654321123456789012345", "0E-17", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71518 */ self.add128("1.123456789987654321123456789012345", "0E-18", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71519 */ self.add128("1.123456789987654321123456789012345", "0E-19", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71520 */ self.add128("1.123456789987654321123456789012345", "0E-20", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71521 */ self.add128("1.123456789987654321123456789012345", "0E-21", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71522 */ self.add128("1.123456789987654321123456789012345", "0E-22", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71523 */ self.add128("1.123456789987654321123456789012345", "0E-23", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71524 */ self.add128("1.123456789987654321123456789012345", "0E-24", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71525 */ self.add128("1.123456789987654321123456789012345", "0E-25", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71526 */ self.add128("1.123456789987654321123456789012345", "0E-26", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71527 */ self.add128("1.123456789987654321123456789012345", "0E-27", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71528 */ self.add128("1.123456789987654321123456789012345", "0E-28", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71529 */ self.add128("1.123456789987654321123456789012345", "0E-29", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71530 */ self.add128("1.123456789987654321123456789012345", "0E-30", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71531 */ self.add128("1.123456789987654321123456789012345", "0E-31", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71532 */ self.add128("1.123456789987654321123456789012345", "0E-32", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71533 */ self.add128("1.123456789987654321123456789012345", "0E-33", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71534 */ self.add128("1.123456789987654321123456789012345", "0E-34", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71535 */ self.add128("1.123456789987654321123456789012345", "0E-35", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71536 */ self.add128("1.123456789987654321123456789012345", "0E-36", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71537 */ self.add128("1.123456789987654321123456789012345", "0E-37", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd71600 */ self.add128("0", "0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* dqadd71601 */ self.add128("-0", "0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* dqadd71602 */ self.add128("0", "-0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* dqadd71603 */ self.add128("-0", "-0E-19", "-0E-19", .toNearestOrAwayFromZero)
+ /* dqadd71611 */ self.add128("-11", "11", "0", .toNearestOrAwayFromZero)
+ /* dqadd71612 */ self.add128("11", "-11", "0", .toNearestOrAwayFromZero)
+ /* dqadd71640 */ self.add128("0", "0E-19", "0E-19", .toNearestOrEven)
+ /* dqadd71641 */ self.add128("-0", "0E-19", "0E-19", .toNearestOrEven)
+ /* dqadd71642 */ self.add128("0", "-0E-19", "0E-19", .toNearestOrEven)
+ /* dqadd71643 */ self.add128("-0", "-0E-19", "-0E-19", .toNearestOrEven)
+ /* dqadd71651 */ self.add128("-11", "11", "0", .toNearestOrEven)
+ /* dqadd71652 */ self.add128("11", "-11", "0", .toNearestOrEven)
+ /* dqadd71680 */ self.add128("0", "0E-19", "0E-19", .towardZero)
+ /* dqadd71681 */ self.add128("-0", "0E-19", "0E-19", .towardZero)
+ /* dqadd71682 */ self.add128("0", "-0E-19", "0E-19", .towardZero)
+ /* dqadd71683 */ self.add128("-0", "-0E-19", "-0E-19", .towardZero)
+ /* dqadd71691 */ self.add128("-11", "11", "0", .towardZero)
+ /* dqadd71692 */ self.add128("11", "-11", "0", .towardZero)
+ /* dqadd71700 */ self.add128("0", "0E-19", "0E-19", .up)
+ /* dqadd71701 */ self.add128("-0", "0E-19", "0E-19", .up)
+ /* dqadd71702 */ self.add128("0", "-0E-19", "0E-19", .up)
+ /* dqadd71703 */ self.add128("-0", "-0E-19", "-0E-19", .up)
+ /* dqadd71711 */ self.add128("-11", "11", "0", .up)
+ /* dqadd71712 */ self.add128("11", "-11", "0", .up)
+ /* dqadd71720 */ self.add128("0", "0E-19", "0E-19", .down)
+ /* dqadd71721 */ self.add128("-0", "0E-19", "-0E-19", .down)
+ /* dqadd71722 */ self.add128("0", "-0E-19", "-0E-19", .down)
+ /* dqadd71723 */ self.add128("-0", "-0E-19", "-0E-19", .down)
+ /* dqadd71731 */ self.add128("-11", "11", "-0", .down)
+ /* dqadd71732 */ self.add128("11", "-11", "-0", .down)
+ /* dqadd71741 */ self.add128("130E-2", "120E-2", "2.50", .down)
+ /* dqadd71742 */ self.add128("130E-2", "12E-1", "2.50", .down)
+ /* dqadd71743 */ self.add128("130E-2", "1E0", "2.30", .down)
+ /* dqadd71744 */ self.add128("1E2", "1E4", "1.01E+4", .down)
+ /* dqadd71745 */ self.add128("130E-2", "-120E-2", "0.10", .down)
+ /* dqadd71746 */ self.add128("130E-2", "-12E-1", "0.10", .down)
+ /* dqadd71747 */ self.add128("130E-2", "-1E0", "0.30", .down)
+ /* dqadd71748 */ self.add128("1E2", "-1E4", "-9.9E+3", .down)
+ /* dqadd75001 */ self.add128("1239876543211234567894567890123456", "1", "1239876543211234567894567890123457", .toNearestOrEven)
+ /* dqadd75002 */ self.add128("1239876543211234567894567890123456", "0.6", "1239876543211234567894567890123457", .toNearestOrEven, .isInexact)
+ /* dqadd75003 */ self.add128("1239876543211234567894567890123456", "0.06", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75004 */ self.add128("1239876543211234567894567890123456", "6E-3", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75005 */ self.add128("1239876543211234567894567890123456", "6E-4", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75006 */ self.add128("1239876543211234567894567890123456", "6E-5", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75007 */ self.add128("1239876543211234567894567890123456", "6E-6", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75008 */ self.add128("1239876543211234567894567890123456", "6E-7", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75009 */ self.add128("1239876543211234567894567890123456", "6E-8", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75010 */ self.add128("1239876543211234567894567890123456", "6E-9", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75011 */ self.add128("1239876543211234567894567890123456", "6E-10", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75012 */ self.add128("1239876543211234567894567890123456", "6E-11", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75013 */ self.add128("1239876543211234567894567890123456", "6E-12", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75014 */ self.add128("1239876543211234567894567890123456", "6E-13", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75015 */ self.add128("1239876543211234567894567890123456", "6E-14", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75016 */ self.add128("1239876543211234567894567890123456", "6E-15", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75017 */ self.add128("1239876543211234567894567890123456", "6E-16", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75018 */ self.add128("1239876543211234567894567890123456", "6E-17", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75019 */ self.add128("1239876543211234567894567890123456", "6E-18", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75020 */ self.add128("1239876543211234567894567890123456", "6E-19", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75021 */ self.add128("1239876543211234567894567890123456", "6E-20", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd75030 */ self.add128("12398765432112345678945678", "1", "12398765432112345678945679", .toNearestOrEven)
+ /* dqadd75031 */ self.add128("12398765432112345678945678", "0.1", "12398765432112345678945678.1", .toNearestOrEven)
+ /* dqadd75032 */ self.add128("12398765432112345678945678", "0.12", "12398765432112345678945678.12", .toNearestOrEven)
+ /* dqadd75033 */ self.add128("12398765432112345678945678", "0.123", "12398765432112345678945678.123", .toNearestOrEven)
+ /* dqadd75034 */ self.add128("12398765432112345678945678", "0.1234", "12398765432112345678945678.1234", .toNearestOrEven)
+ /* dqadd75035 */ self.add128("12398765432112345678945678", "0.12345", "12398765432112345678945678.12345", .toNearestOrEven)
+ /* dqadd75036 */ self.add128("12398765432112345678945678", "0.123456", "12398765432112345678945678.123456", .toNearestOrEven)
+ /* dqadd75037 */ self.add128("12398765432112345678945678", "0.1234567", "12398765432112345678945678.1234567", .toNearestOrEven)
+ /* dqadd75038 */ self.add128("12398765432112345678945678", "0.12345678", "12398765432112345678945678.12345678", .toNearestOrEven)
+ /* dqadd75039 */ self.add128("12398765432112345678945678", "0.123456789", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd75040 */ self.add128("12398765432112345678945678", "0.123456785", "12398765432112345678945678.12345678", .toNearestOrEven, .isInexact)
+ /* dqadd75041 */ self.add128("12398765432112345678945678", "0.1234567850", "12398765432112345678945678.12345678", .toNearestOrEven, .isInexact)
+ /* dqadd75042 */ self.add128("12398765432112345678945678", "0.1234567851", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd75043 */ self.add128("12398765432112345678945678", "0.12345678501", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd75044 */ self.add128("12398765432112345678945678", "0.123456785001", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd75045 */ self.add128("12398765432112345678945678", "0.1234567850001", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd75046 */ self.add128("12398765432112345678945678", "0.12345678500001", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd75047 */ self.add128("12398765432112345678945678", "0.123456785000001", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd75048 */ self.add128("12398765432112345678945678", "0.1234567850000001", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd75049 */ self.add128("12398765432112345678945678", "0.1234567850000000", "12398765432112345678945678.12345678", .toNearestOrEven, .isInexact)
+ /* dqadd75050 */ self.add128("12398765432112345678945678", "0.0234567750000000", "12398765432112345678945678.02345678", .toNearestOrEven, .isInexact)
+ /* dqadd75051 */ self.add128("12398765432112345678945678", "0.0034567750000000", "12398765432112345678945678.00345678", .toNearestOrEven, .isInexact)
+ /* dqadd75052 */ self.add128("12398765432112345678945678", "0.0004567750000000", "12398765432112345678945678.00045678", .toNearestOrEven, .isInexact)
+ /* dqadd75053 */ self.add128("12398765432112345678945678", "0.0000567750000000", "12398765432112345678945678.00005678", .toNearestOrEven, .isInexact)
+ /* dqadd75054 */ self.add128("12398765432112345678945678", "0.0000067750000000", "12398765432112345678945678.00000678", .toNearestOrEven, .isInexact)
+ /* dqadd75055 */ self.add128("12398765432112345678945678", "0.0000007750000000", "12398765432112345678945678.00000078", .toNearestOrEven, .isInexact)
+ /* dqadd75056 */ self.add128("12398765432112345678945678", "0.0000000750000000", "12398765432112345678945678.00000008", .toNearestOrEven, .isInexact)
+ /* dqadd75057 */ self.add128("12398765432112345678945678", "0.0000000050000000", "12398765432112345678945678.00000000", .toNearestOrEven, .isInexact)
+ /* dqadd75060 */ self.add128("12398765432112345678945678", "0.0234567750000001", "12398765432112345678945678.02345678", .toNearestOrEven, .isInexact)
+ /* dqadd75061 */ self.add128("12398765432112345678945678", "0.0034567750000001", "12398765432112345678945678.00345678", .toNearestOrEven, .isInexact)
+ /* dqadd75062 */ self.add128("12398765432112345678945678", "0.0004567750000001", "12398765432112345678945678.00045678", .toNearestOrEven, .isInexact)
+ /* dqadd75063 */ self.add128("12398765432112345678945678", "0.0000567750000001", "12398765432112345678945678.00005678", .toNearestOrEven, .isInexact)
+ /* dqadd75064 */ self.add128("12398765432112345678945678", "0.0000067750000001", "12398765432112345678945678.00000678", .toNearestOrEven, .isInexact)
+ /* dqadd75065 */ self.add128("12398765432112345678945678", "0.0000007750000001", "12398765432112345678945678.00000078", .toNearestOrEven, .isInexact)
+ /* dqadd75066 */ self.add128("12398765432112345678945678", "0.0000000750000001", "12398765432112345678945678.00000008", .toNearestOrEven, .isInexact)
+ /* dqadd75067 */ self.add128("12398765432112345678945678", "0.0000000050000001", "12398765432112345678945678.00000001", .toNearestOrEven, .isInexact)
+ /* dqadd7540 */ self.add128("9876543219876543216543210123456788", "0.499999999", "9876543219876543216543210123456788", .toNearestOrEven, .isInexact)
+ /* dqadd7541 */ self.add128("9876543219876543216543210123456788", "0.5", "9876543219876543216543210123456788", .toNearestOrEven, .isInexact)
+ /* dqadd7542 */ self.add128("9876543219876543216543210123456788", "0.500000001", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd7550 */ self.add128("9876543219876543216543210123456789", "0", "9876543219876543216543210123456789", .towardZero)
+ /* dqadd7551 */ self.add128("9876543219876543216543210123456789", "0.000000001", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7552 */ self.add128("9876543219876543216543210123456789", "0.000001", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7553 */ self.add128("9876543219876543216543210123456789", "0.1", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7554 */ self.add128("9876543219876543216543210123456789", "0.4", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7555 */ self.add128("9876543219876543216543210123456789", "0.49", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7556 */ self.add128("9876543219876543216543210123456789", "0.499999", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7557 */ self.add128("9876543219876543216543210123456789", "0.499999999", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7558 */ self.add128("9876543219876543216543210123456789", "0.5", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7559 */ self.add128("9876543219876543216543210123456789", "0.500000001", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7560 */ self.add128("9876543219876543216543210123456789", "0.500001", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7561 */ self.add128("9876543219876543216543210123456789", "0.51", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7562 */ self.add128("9876543219876543216543210123456789", "0.6", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7563 */ self.add128("9876543219876543216543210123456789", "0.9", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7564 */ self.add128("9876543219876543216543210123456789", "0.99999", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7565 */ self.add128("9876543219876543216543210123456789", "0.999999999", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd7566 */ self.add128("9876543219876543216543210123456789", "1", "9876543219876543216543210123456790", .towardZero)
+ /* dqadd7567 */ self.add128("9876543219876543216543210123456789", "1.00000001", "9876543219876543216543210123456790", .towardZero, .isInexact)
+ /* dqadd7568 */ self.add128("9876543219876543216543210123456789", "1.00001", "9876543219876543216543210123456790", .towardZero, .isInexact)
+ /* dqadd7569 */ self.add128("9876543219876543216543210123456789", "1.1", "9876543219876543216543210123456790", .towardZero, .isInexact)
+ /* dqadd7575 */ self.add128("1E-6143", "-1E-6176", "9.99999999999999999999999999999999E-6144", .toNearestOrEven)
+ /* dqadd7576 */ self.add128("-1E-6143", "+1E-6176", "-9.99999999999999999999999999999999E-6144", .toNearestOrEven)
+ /* dqadd7701 */ self.add128("5.00", "1.00E-3", "5.00100", .toNearestOrEven)
+ /* dqadd7702 */ self.add128("00.00", "0.000", "0.000", .toNearestOrEven)
+ /* dqadd7703 */ self.add128("00.00", "0E-3", "0.000", .toNearestOrEven)
+ /* dqadd7704 */ self.add128("0E-3", "00.00", "0.000", .toNearestOrEven)
+ /* dqadd7710 */ self.add128("0E+3", "00.00", "0.00", .toNearestOrEven)
+ /* dqadd7711 */ self.add128("0E+3", "00.0", "0.0", .toNearestOrEven)
+ /* dqadd7712 */ self.add128("0E+3", "00.", "0", .toNearestOrEven)
+ /* dqadd7713 */ self.add128("0E+3", "00.E+1", "0E+1", .toNearestOrEven)
+ /* dqadd7714 */ self.add128("0E+3", "00.E+2", "0E+2", .toNearestOrEven)
+ /* dqadd7715 */ self.add128("0E+3", "00.E+3", "0E+3", .toNearestOrEven)
+ /* dqadd7716 */ self.add128("0E+3", "00.E+4", "0E+3", .toNearestOrEven)
+ /* dqadd7717 */ self.add128("0E+3", "00.E+5", "0E+3", .toNearestOrEven)
+ /* dqadd7718 */ self.add128("0E+3", "-00.0", "0.0", .toNearestOrEven)
+ /* dqadd7719 */ self.add128("0E+3", "-00.", "0", .toNearestOrEven)
+ /* dqadd7720 */ self.add128("00.00", "0E+3", "0.00", .toNearestOrEven)
+ /* dqadd7721 */ self.add128("00.0", "0E+3", "0.0", .toNearestOrEven)
+ /* dqadd7722 */ self.add128("00.", "0E+3", "0", .toNearestOrEven)
+ /* dqadd7723 */ self.add128("00.E+1", "0E+3", "0E+1", .toNearestOrEven)
+ /* dqadd7724 */ self.add128("00.E+2", "0E+3", "0E+2", .toNearestOrEven)
+ /* dqadd7725 */ self.add128("00.E+3", "0E+3", "0E+3", .toNearestOrEven)
+ /* dqadd7726 */ self.add128("00.E+4", "0E+3", "0E+3", .toNearestOrEven)
+ /* dqadd7727 */ self.add128("00.E+5", "0E+3", "0E+3", .toNearestOrEven)
+ /* dqadd7728 */ self.add128("-00.00", "0E+3", "0.00", .toNearestOrEven)
+ /* dqadd7729 */ self.add128("-00.0", "0E+3", "0.0", .toNearestOrEven)
+ /* dqadd7730 */ self.add128("-00.", "0E+3", "0", .toNearestOrEven)
+ /* dqadd7731 */ self.add128("0E+3", "-00.E+1", "0E+1", .toNearestOrEven)
+ /* dqadd7732 */ self.add128("0", "0", "0", .toNearestOrEven)
+ /* dqadd7733 */ self.add128("0", "-0", "0", .toNearestOrEven)
+ /* dqadd7734 */ self.add128("-0", "0", "0", .toNearestOrEven)
+ /* dqadd7735 */ self.add128("-0", "-0", "-0", .toNearestOrEven)
+ /* dqadd7736 */ self.add128("1", "-1", "0", .toNearestOrEven)
+ /* dqadd7737 */ self.add128("-1", "-1", "-2", .toNearestOrEven)
+ /* dqadd7738 */ self.add128("1", "1", "2", .toNearestOrEven)
+ /* dqadd7739 */ self.add128("-1", "1", "0", .toNearestOrEven)
+ /* dqadd7741 */ self.add128("0", "-1", "-1", .toNearestOrEven)
+ /* dqadd7742 */ self.add128("-0", "-1", "-1", .toNearestOrEven)
+ /* dqadd7743 */ self.add128("0", "1", "1", .toNearestOrEven)
+ /* dqadd7744 */ self.add128("-0", "1", "1", .toNearestOrEven)
+ /* dqadd7745 */ self.add128("-1", "0", "-1", .toNearestOrEven)
+ /* dqadd7746 */ self.add128("-1", "-0", "-1", .toNearestOrEven)
+ /* dqadd7747 */ self.add128("1", "0", "1", .toNearestOrEven)
+ /* dqadd7748 */ self.add128("1", "-0", "1", .toNearestOrEven)
+ /* dqadd7751 */ self.add128("0.0", "-1", "-1.0", .toNearestOrEven)
+ /* dqadd7752 */ self.add128("-0.0", "-1", "-1.0", .toNearestOrEven)
+ /* dqadd7753 */ self.add128("0.0", "1", "1.0", .toNearestOrEven)
+ /* dqadd7754 */ self.add128("-0.0", "1", "1.0", .toNearestOrEven)
+ /* dqadd7755 */ self.add128("-1.0", "0", "-1.0", .toNearestOrEven)
+ /* dqadd7756 */ self.add128("-1.0", "-0", "-1.0", .toNearestOrEven)
+ /* dqadd7757 */ self.add128("1.0", "0", "1.0", .toNearestOrEven)
+ /* dqadd7758 */ self.add128("1.0", "-0", "1.0", .toNearestOrEven)
+ /* dqadd7761 */ self.add128("0", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqadd7762 */ self.add128("-0", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqadd7763 */ self.add128("0", "1.0", "1.0", .toNearestOrEven)
+ /* dqadd7764 */ self.add128("-0", "1.0", "1.0", .toNearestOrEven)
+ /* dqadd7765 */ self.add128("-1", "0.0", "-1.0", .toNearestOrEven)
+ /* dqadd7766 */ self.add128("-1", "-0.0", "-1.0", .toNearestOrEven)
+ /* dqadd7767 */ self.add128("1", "0.0", "1.0", .toNearestOrEven)
+ /* dqadd7768 */ self.add128("1", "-0.0", "1.0", .toNearestOrEven)
+ /* dqadd7771 */ self.add128("0.0", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqadd7772 */ self.add128("-0.0", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqadd7773 */ self.add128("0.0", "1.0", "1.0", .toNearestOrEven)
+ /* dqadd7774 */ self.add128("-0.0", "1.0", "1.0", .toNearestOrEven)
+ /* dqadd7775 */ self.add128("-1.0", "0.0", "-1.0", .toNearestOrEven)
+ /* dqadd7776 */ self.add128("-1.0", "-0.0", "-1.0", .toNearestOrEven)
+ /* dqadd7777 */ self.add128("1.0", "0.0", "1.0", .toNearestOrEven)
+ /* dqadd7778 */ self.add128("1.0", "-0.0", "1.0", .toNearestOrEven)
+ /* dqadd7780 */ self.add128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd7781 */ self.add128("-Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* dqadd7782 */ self.add128("-Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* dqadd7783 */ self.add128("-Inf", "-0", "-Infinity", .toNearestOrEven)
+ /* dqadd7784 */ self.add128("-Inf", "0", "-Infinity", .toNearestOrEven)
+ /* dqadd7785 */ self.add128("-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* dqadd7786 */ self.add128("-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* dqadd7787 */ self.add128("-1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd7788 */ self.add128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd7789 */ self.add128("-1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd7790 */ self.add128("-0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd7791 */ self.add128("0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd7792 */ self.add128("1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd7793 */ self.add128("1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd7794 */ self.add128("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7800 */ self.add128("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7801 */ self.add128("Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* dqadd7802 */ self.add128("Inf", "-1", "Infinity", .toNearestOrEven)
+ /* dqadd7803 */ self.add128("Inf", "-0", "Infinity", .toNearestOrEven)
+ /* dqadd7804 */ self.add128("Inf", "0", "Infinity", .toNearestOrEven)
+ /* dqadd7805 */ self.add128("Inf", "1", "Infinity", .toNearestOrEven)
+ /* dqadd7806 */ self.add128("Inf", "1000", "Infinity", .toNearestOrEven)
+ /* dqadd7807 */ self.add128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd7808 */ self.add128("-1000", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd7809 */ self.add128("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7810 */ self.add128("-1", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd7811 */ self.add128("-0", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd7812 */ self.add128("0", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd7813 */ self.add128("1", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd7814 */ self.add128("1000", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd7815 */ self.add128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd7821 */ self.add128("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* dqadd7822 */ self.add128("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* dqadd7823 */ self.add128("NaN", "-1", "NaN", .toNearestOrEven)
+ /* dqadd7824 */ self.add128("NaN", "-0", "NaN", .toNearestOrEven)
+ /* dqadd7825 */ self.add128("NaN", "0", "NaN", .toNearestOrEven)
+ /* dqadd7826 */ self.add128("NaN", "1", "NaN", .toNearestOrEven)
+ /* dqadd7827 */ self.add128("NaN", "1000", "NaN", .toNearestOrEven)
+ /* dqadd7828 */ self.add128("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* dqadd7829 */ self.add128("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd7830 */ self.add128("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd7831 */ self.add128("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd7832 */ self.add128("-1", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd7833 */ self.add128("-0", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd7834 */ self.add128("0", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd7835 */ self.add128("1", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd7836 */ self.add128("1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd7837 */ self.add128("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd7841 */ self.add128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7842 */ self.add128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7843 */ self.add128("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7844 */ self.add128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7845 */ self.add128("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7846 */ self.add128("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7847 */ self.add128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7848 */ self.add128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7849 */ self.add128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7850 */ self.add128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7851 */ self.add128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7852 */ self.add128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7853 */ self.add128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7854 */ self.add128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7855 */ self.add128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7856 */ self.add128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7857 */ self.add128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7858 */ self.add128("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7859 */ self.add128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7861 */ self.add128("NaN(0x1)", "-Inf", "NaN(0x1)", .toNearestOrEven)
+ /* dqadd7862 */ self.add128("+NaN(0x2)", "-1000", "NaN(0x2)", .toNearestOrEven)
+ /* dqadd7863 */ self.add128("NaN(0x3)", "1000", "NaN(0x3)", .toNearestOrEven)
+ /* dqadd7864 */ self.add128("NaN(0x4)", "Inf", "NaN(0x4)", .toNearestOrEven)
+ /* dqadd7865 */ self.add128("NaN(0x5)", "+NaN(0x6)", "NaN(0x5)", .toNearestOrEven)
+ /* dqadd7866 */ self.add128("-Inf", "NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* dqadd7867 */ self.add128("-1000", "NaN(0x8)", "NaN(0x8)", .toNearestOrEven)
+ /* dqadd7868 */ self.add128("1000", "NaN(0x9)", "NaN(0x9)", .toNearestOrEven)
+ /* dqadd7869 */ self.add128("Inf", "+NaN(0xa)", "NaN(0xa)", .toNearestOrEven)
+ /* dqadd7871 */ self.add128("sNaN(0xb)", "-Inf", "NaN(0xb)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7872 */ self.add128("sNaN(0xc)", "-1000", "NaN(0xc)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7873 */ self.add128("sNaN(0xd)", "1000", "NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7874 */ self.add128("sNaN(0xe)", "NaN(0x11)", "NaN(0xe)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7875 */ self.add128("sNaN(0xf)", "sNaN(0x12)", "NaN(0xf)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7876 */ self.add128("NaN(0x10)", "sNaN(0x13)", "NaN(0x13)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7877 */ self.add128("-Inf", "+sNaN(0x14)", "NaN(0x14)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7878 */ self.add128("-1000", "sNaN(0x15)", "NaN(0x15)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7879 */ self.add128("1000", "sNaN(0x16)", "NaN(0x16)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7880 */ self.add128("Inf", "sNaN(0x17)", "NaN(0x17)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7881 */ self.add128("+NaN(0x19)", "+sNaN(0x18)", "NaN(0x18)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7882 */ self.add128("-NaN(0x1a)", "NaN(0x1c)", "-NaN(0x1a)", .toNearestOrEven)
+ /* dqadd7883 */ self.add128("-sNaN(0x1b)", "sNaN(0x1d)", "-NaN(0x1b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7884 */ self.add128("1000", "-NaN(0x1e)", "-NaN(0x1e)", .toNearestOrEven)
+ /* dqadd7885 */ self.add128("1000", "-sNaN(0x1f)", "-NaN(0x1f)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd7973 */ self.add128("9.999999999999999999999999999999999E+6144", "1", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd7974 */ self.add128("9999999999999999999999999999999999E+6111", "1", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd7975 */ self.add128("9999999999999999999999999999999999E+6111", "1E+6111", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7976 */ self.add128("9999999999999999999999999999999999E+6111", "9E+6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7977 */ self.add128("9999999999999999999999999999999999E+6111", "8E+6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7978 */ self.add128("9999999999999999999999999999999999E+6111", "7E+6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7979 */ self.add128("9999999999999999999999999999999999E+6111", "6E+6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7980 */ self.add128("9999999999999999999999999999999999E+6111", "5E+6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7981 */ self.add128("9999999999999999999999999999999999E+6111", "4E+6110", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd7982 */ self.add128("9999999999999999999999999999999999E+6111", "3E+6110", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd7983 */ self.add128("9999999999999999999999999999999999E+6111", "2E+6110", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd7984 */ self.add128("9999999999999999999999999999999999E+6111", "1E+6110", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd7986 */ self.add128("-9.999999999999999999999999999999999E+6144", "-1", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd7987 */ self.add128("-9999999999999999999999999999999999E+6111", "-1", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd7988 */ self.add128("-9999999999999999999999999999999999E+6111", "-1E+6111", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7989 */ self.add128("-9999999999999999999999999999999999E+6111", "-9E+6110", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7990 */ self.add128("-9999999999999999999999999999999999E+6111", "-8E+6110", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7991 */ self.add128("-9999999999999999999999999999999999E+6111", "-7E+6110", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7992 */ self.add128("-9999999999999999999999999999999999E+6111", "-6E+6110", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7993 */ self.add128("-9999999999999999999999999999999999E+6111", "-5E+6110", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd7994 */ self.add128("-9999999999999999999999999999999999E+6111", "-4E+6110", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd7995 */ self.add128("-9999999999999999999999999999999999E+6111", "-3E+6110", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd7996 */ self.add128("-9999999999999999999999999999999999E+6111", "-2E+6110", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd7997 */ self.add128("-9999999999999999999999999999999999E+6111", "-1E+6110", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqcan202 */ self.add128("0E+6144", "#77ffcff3fcff3fcffffcff3fcff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan203 */ self.add128("#77ffcff3fcff3fcff3fcff3ffff3fcff", "0E+6144", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan204 */ self.add128("0E-6176", "#77ffcff3ffff3fcff3fcff3fcff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan205 */ self.add128("#77ffcff3fcff3fcff3fcff3fcff3ffff", "0E-6176", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan206 */ self.add128("-1E-6176", "#77ffcff3fcff3fcff3fcff3fcfffffff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInexact)
+ /* dqcan207 */ self.add128("#77ffcffffffffffffffffffffff3fcff", "-1E-6176", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInexact)
+ /* dqcan211 */ self.add128("0", "#7c000ff3fcff3fcff3fcfffffff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan212 */ self.add128("#7c000ff3fcff3fcfffffff3fcff3fcff", "0", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan213 */ self.add128("0", "#7c400ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan214 */ self.add128("#7c020ff3fcff3fcff3fcff3fcff3fcff", "0", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan215 */ self.add128("0", "#7e000ff3fcffffcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan216 */ self.add128("#7e003ff3fcff3fcff3fcff3fcff3fcff", "0", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan217 */ self.add128("0", "#7e500ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan218 */ self.add128("#7e0e0ff3fcff3fcff3fcff3fcff3fcff", "0", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan220 */ self.add128("0", "#78010000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan221 */ self.add128("#78680000000000000000000000000000", "0", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan222 */ self.add128("0", "#78002000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan223 */ self.add128("#78000000000000000000000000000001", "0", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan224 */ self.add128("0", "#78000002000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan225 */ self.add128("#780000000000f0000000000000000000", "0", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan226 */ self.add128("0", "#78000000000000000005000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan227 */ self.add128("#780000000000000000000000000a0000", "0", "#78000000000000000000000000000000", .toNearestOrEven)
+ }
+
+ private func add128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.adding(arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_add(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveCompareTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveCompareTests.swift
new file mode 100644
index 0000000..c2e63ad
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveCompareTests.swift
@@ -0,0 +1,2564 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveCompareTests: XCTestCase, SpeleotroveMixin {
+
+ // MARK: - Compare
+
+ func test_compare64() {
+ /* ddcan231 */ self.compare64("-Inf", "1", "#a238000000000001", .toNearestOrEven)
+ /* ddcan232 */ self.compare64("-Inf", "-Inf", "#2238000000000000", .toNearestOrEven)
+ /* ddcan233 */ self.compare64("1", "-Inf", "#2238000000000001", .toNearestOrEven)
+ /* ddcan234 */ self.compare64("#7c00ff3ffff3fcff", "-1000", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan235 */ self.compare64("#7e00ff3ffff3fcff", "-1000", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom001 */ self.compare64("-2", "-2", "0", .toNearestOrEven)
+ /* ddcom002 */ self.compare64("-2", "-1", "-1", .toNearestOrEven)
+ /* ddcom003 */ self.compare64("-2", "0", "-1", .toNearestOrEven)
+ /* ddcom004 */ self.compare64("-2", "1", "-1", .toNearestOrEven)
+ /* ddcom005 */ self.compare64("-2", "2", "-1", .toNearestOrEven)
+ /* ddcom006 */ self.compare64("-1", "-2", "1", .toNearestOrEven)
+ /* ddcom007 */ self.compare64("-1", "-1", "0", .toNearestOrEven)
+ /* ddcom008 */ self.compare64("-1", "0", "-1", .toNearestOrEven)
+ /* ddcom009 */ self.compare64("-1", "1", "-1", .toNearestOrEven)
+ /* ddcom010 */ self.compare64("-1", "2", "-1", .toNearestOrEven)
+ /* ddcom011 */ self.compare64("0", "-2", "1", .toNearestOrEven)
+ /* ddcom012 */ self.compare64("0", "-1", "1", .toNearestOrEven)
+ /* ddcom013 */ self.compare64("0", "0", "0", .toNearestOrEven)
+ /* ddcom014 */ self.compare64("0", "1", "-1", .toNearestOrEven)
+ /* ddcom015 */ self.compare64("0", "2", "-1", .toNearestOrEven)
+ /* ddcom016 */ self.compare64("1", "-2", "1", .toNearestOrEven)
+ /* ddcom017 */ self.compare64("1", "-1", "1", .toNearestOrEven)
+ /* ddcom018 */ self.compare64("1", "0", "1", .toNearestOrEven)
+ /* ddcom019 */ self.compare64("1", "1", "0", .toNearestOrEven)
+ /* ddcom020 */ self.compare64("1", "2", "-1", .toNearestOrEven)
+ /* ddcom021 */ self.compare64("2", "-2", "1", .toNearestOrEven)
+ /* ddcom022 */ self.compare64("2", "-1", "1", .toNearestOrEven)
+ /* ddcom023 */ self.compare64("2", "0", "1", .toNearestOrEven)
+ /* ddcom025 */ self.compare64("2", "1", "1", .toNearestOrEven)
+ /* ddcom026 */ self.compare64("2", "2", "0", .toNearestOrEven)
+ /* ddcom031 */ self.compare64("-20", "-20", "0", .toNearestOrEven)
+ /* ddcom032 */ self.compare64("-20", "-10", "-1", .toNearestOrEven)
+ /* ddcom033 */ self.compare64("-20", "00", "-1", .toNearestOrEven)
+ /* ddcom034 */ self.compare64("-20", "10", "-1", .toNearestOrEven)
+ /* ddcom035 */ self.compare64("-20", "20", "-1", .toNearestOrEven)
+ /* ddcom036 */ self.compare64("-10", "-20", "1", .toNearestOrEven)
+ /* ddcom037 */ self.compare64("-10", "-10", "0", .toNearestOrEven)
+ /* ddcom038 */ self.compare64("-10", "00", "-1", .toNearestOrEven)
+ /* ddcom039 */ self.compare64("-10", "10", "-1", .toNearestOrEven)
+ /* ddcom040 */ self.compare64("-10", "20", "-1", .toNearestOrEven)
+ /* ddcom041 */ self.compare64("00", "-20", "1", .toNearestOrEven)
+ /* ddcom042 */ self.compare64("00", "-10", "1", .toNearestOrEven)
+ /* ddcom043 */ self.compare64("00", "00", "0", .toNearestOrEven)
+ /* ddcom044 */ self.compare64("00", "10", "-1", .toNearestOrEven)
+ /* ddcom045 */ self.compare64("00", "20", "-1", .toNearestOrEven)
+ /* ddcom046 */ self.compare64("10", "-20", "1", .toNearestOrEven)
+ /* ddcom047 */ self.compare64("10", "-10", "1", .toNearestOrEven)
+ /* ddcom048 */ self.compare64("10", "00", "1", .toNearestOrEven)
+ /* ddcom049 */ self.compare64("10", "10", "0", .toNearestOrEven)
+ /* ddcom050 */ self.compare64("10", "20", "-1", .toNearestOrEven)
+ /* ddcom051 */ self.compare64("20", "-20", "1", .toNearestOrEven)
+ /* ddcom052 */ self.compare64("20", "-10", "1", .toNearestOrEven)
+ /* ddcom053 */ self.compare64("20", "00", "1", .toNearestOrEven)
+ /* ddcom055 */ self.compare64("20", "10", "1", .toNearestOrEven)
+ /* ddcom056 */ self.compare64("20", "20", "0", .toNearestOrEven)
+ /* ddcom061 */ self.compare64("-2.0", "-2.0", "0", .toNearestOrEven)
+ /* ddcom062 */ self.compare64("-2.0", "-1.0", "-1", .toNearestOrEven)
+ /* ddcom063 */ self.compare64("-2.0", "0.0", "-1", .toNearestOrEven)
+ /* ddcom064 */ self.compare64("-2.0", "1.0", "-1", .toNearestOrEven)
+ /* ddcom065 */ self.compare64("-2.0", "2.0", "-1", .toNearestOrEven)
+ /* ddcom066 */ self.compare64("-1.0", "-2.0", "1", .toNearestOrEven)
+ /* ddcom067 */ self.compare64("-1.0", "-1.0", "0", .toNearestOrEven)
+ /* ddcom068 */ self.compare64("-1.0", "0.0", "-1", .toNearestOrEven)
+ /* ddcom069 */ self.compare64("-1.0", "1.0", "-1", .toNearestOrEven)
+ /* ddcom070 */ self.compare64("-1.0", "2.0", "-1", .toNearestOrEven)
+ /* ddcom071 */ self.compare64("0.0", "-2.0", "1", .toNearestOrEven)
+ /* ddcom072 */ self.compare64("0.0", "-1.0", "1", .toNearestOrEven)
+ /* ddcom073 */ self.compare64("0.0", "0.0", "0", .toNearestOrEven)
+ /* ddcom074 */ self.compare64("0.0", "1.0", "-1", .toNearestOrEven)
+ /* ddcom075 */ self.compare64("0.0", "2.0", "-1", .toNearestOrEven)
+ /* ddcom076 */ self.compare64("1.0", "-2.0", "1", .toNearestOrEven)
+ /* ddcom077 */ self.compare64("1.0", "-1.0", "1", .toNearestOrEven)
+ /* ddcom078 */ self.compare64("1.0", "0.0", "1", .toNearestOrEven)
+ /* ddcom079 */ self.compare64("1.0", "1.0", "0", .toNearestOrEven)
+ /* ddcom080 */ self.compare64("1.0", "2.0", "-1", .toNearestOrEven)
+ /* ddcom081 */ self.compare64("2.0", "-2.0", "1", .toNearestOrEven)
+ /* ddcom082 */ self.compare64("2.0", "-1.0", "1", .toNearestOrEven)
+ /* ddcom083 */ self.compare64("2.0", "0.0", "1", .toNearestOrEven)
+ /* ddcom085 */ self.compare64("2.0", "1.0", "1", .toNearestOrEven)
+ /* ddcom086 */ self.compare64("2.0", "2.0", "0", .toNearestOrEven)
+ /* ddcom087 */ self.compare64("1.0", "0.1", "1", .toNearestOrEven)
+ /* ddcom088 */ self.compare64("0.1", "1.0", "-1", .toNearestOrEven)
+ /* ddcom095 */ self.compare64("9.999999999999999E+384", "9.999999999999999E+384", "0", .toNearestOrEven)
+ /* ddcom096 */ self.compare64("-9.999999999999999E+384", "9.999999999999999E+384", "-1", .toNearestOrEven)
+ /* ddcom097 */ self.compare64("9.999999999999999E+384", "-9.999999999999999E+384", "1", .toNearestOrEven)
+ /* ddcom098 */ self.compare64("-9.999999999999999E+384", "-9.999999999999999E+384", "0", .toNearestOrEven)
+ /* ddcom100 */ self.compare64("7.0", "7.0", "0", .toNearestOrEven)
+ /* ddcom101 */ self.compare64("7.0", "7", "0", .toNearestOrEven)
+ /* ddcom102 */ self.compare64("7", "7.0", "0", .toNearestOrEven)
+ /* ddcom103 */ self.compare64("7E+0", "7.0", "0", .toNearestOrEven)
+ /* ddcom104 */ self.compare64("70E-1", "7.0", "0", .toNearestOrEven)
+ /* ddcom105 */ self.compare64("0.7E+1", "7", "0", .toNearestOrEven)
+ /* ddcom106 */ self.compare64("70E-1", "7", "0", .toNearestOrEven)
+ /* ddcom107 */ self.compare64("7.0", "7E+0", "0", .toNearestOrEven)
+ /* ddcom108 */ self.compare64("7.0", "70E-1", "0", .toNearestOrEven)
+ /* ddcom109 */ self.compare64("7", "0.7E+1", "0", .toNearestOrEven)
+ /* ddcom110 */ self.compare64("7", "70E-1", "0", .toNearestOrEven)
+ /* ddcom120 */ self.compare64("8.0", "7.0", "1", .toNearestOrEven)
+ /* ddcom121 */ self.compare64("8.0", "7", "1", .toNearestOrEven)
+ /* ddcom122 */ self.compare64("8", "7.0", "1", .toNearestOrEven)
+ /* ddcom123 */ self.compare64("8E+0", "7.0", "1", .toNearestOrEven)
+ /* ddcom124 */ self.compare64("80E-1", "7.0", "1", .toNearestOrEven)
+ /* ddcom125 */ self.compare64("0.8E+1", "7", "1", .toNearestOrEven)
+ /* ddcom126 */ self.compare64("80E-1", "7", "1", .toNearestOrEven)
+ /* ddcom127 */ self.compare64("8.0", "7E+0", "1", .toNearestOrEven)
+ /* ddcom128 */ self.compare64("8.0", "70E-1", "1", .toNearestOrEven)
+ /* ddcom129 */ self.compare64("8", "0.7E+1", "1", .toNearestOrEven)
+ /* ddcom130 */ self.compare64("8", "70E-1", "1", .toNearestOrEven)
+ /* ddcom140 */ self.compare64("8.0", "9.0", "-1", .toNearestOrEven)
+ /* ddcom141 */ self.compare64("8.0", "9", "-1", .toNearestOrEven)
+ /* ddcom142 */ self.compare64("8", "9.0", "-1", .toNearestOrEven)
+ /* ddcom143 */ self.compare64("8E+0", "9.0", "-1", .toNearestOrEven)
+ /* ddcom144 */ self.compare64("80E-1", "9.0", "-1", .toNearestOrEven)
+ /* ddcom145 */ self.compare64("0.8E+1", "9", "-1", .toNearestOrEven)
+ /* ddcom146 */ self.compare64("80E-1", "9", "-1", .toNearestOrEven)
+ /* ddcom147 */ self.compare64("8.0", "9E+0", "-1", .toNearestOrEven)
+ /* ddcom148 */ self.compare64("8.0", "90E-1", "-1", .toNearestOrEven)
+ /* ddcom149 */ self.compare64("8", "0.9E+1", "-1", .toNearestOrEven)
+ /* ddcom150 */ self.compare64("8", "90E-1", "-1", .toNearestOrEven)
+ /* ddcom200 */ self.compare64("-7.0", "7.0", "-1", .toNearestOrEven)
+ /* ddcom201 */ self.compare64("-7.0", "7", "-1", .toNearestOrEven)
+ /* ddcom202 */ self.compare64("-7", "7.0", "-1", .toNearestOrEven)
+ /* ddcom203 */ self.compare64("-7E+0", "7.0", "-1", .toNearestOrEven)
+ /* ddcom204 */ self.compare64("-70E-1", "7.0", "-1", .toNearestOrEven)
+ /* ddcom205 */ self.compare64("-0.7E+1", "7", "-1", .toNearestOrEven)
+ /* ddcom206 */ self.compare64("-70E-1", "7", "-1", .toNearestOrEven)
+ /* ddcom207 */ self.compare64("-7.0", "7E+0", "-1", .toNearestOrEven)
+ /* ddcom208 */ self.compare64("-7.0", "70E-1", "-1", .toNearestOrEven)
+ /* ddcom209 */ self.compare64("-7", "0.7E+1", "-1", .toNearestOrEven)
+ /* ddcom210 */ self.compare64("-7", "70E-1", "-1", .toNearestOrEven)
+ /* ddcom220 */ self.compare64("-8.0", "7.0", "-1", .toNearestOrEven)
+ /* ddcom221 */ self.compare64("-8.0", "7", "-1", .toNearestOrEven)
+ /* ddcom222 */ self.compare64("-8", "7.0", "-1", .toNearestOrEven)
+ /* ddcom223 */ self.compare64("-8E+0", "7.0", "-1", .toNearestOrEven)
+ /* ddcom224 */ self.compare64("-80E-1", "7.0", "-1", .toNearestOrEven)
+ /* ddcom225 */ self.compare64("-0.8E+1", "7", "-1", .toNearestOrEven)
+ /* ddcom226 */ self.compare64("-80E-1", "7", "-1", .toNearestOrEven)
+ /* ddcom227 */ self.compare64("-8.0", "7E+0", "-1", .toNearestOrEven)
+ /* ddcom228 */ self.compare64("-8.0", "70E-1", "-1", .toNearestOrEven)
+ /* ddcom229 */ self.compare64("-8", "0.7E+1", "-1", .toNearestOrEven)
+ /* ddcom230 */ self.compare64("-8", "70E-1", "-1", .toNearestOrEven)
+ /* ddcom240 */ self.compare64("-8.0", "9.0", "-1", .toNearestOrEven)
+ /* ddcom241 */ self.compare64("-8.0", "9", "-1", .toNearestOrEven)
+ /* ddcom242 */ self.compare64("-8", "9.0", "-1", .toNearestOrEven)
+ /* ddcom243 */ self.compare64("-8E+0", "9.0", "-1", .toNearestOrEven)
+ /* ddcom244 */ self.compare64("-80E-1", "9.0", "-1", .toNearestOrEven)
+ /* ddcom245 */ self.compare64("-0.8E+1", "9", "-1", .toNearestOrEven)
+ /* ddcom246 */ self.compare64("-80E-1", "9", "-1", .toNearestOrEven)
+ /* ddcom247 */ self.compare64("-8.0", "9E+0", "-1", .toNearestOrEven)
+ /* ddcom248 */ self.compare64("-8.0", "90E-1", "-1", .toNearestOrEven)
+ /* ddcom249 */ self.compare64("-8", "0.9E+1", "-1", .toNearestOrEven)
+ /* ddcom250 */ self.compare64("-8", "90E-1", "-1", .toNearestOrEven)
+ /* ddcom300 */ self.compare64("7.0", "-7.0", "1", .toNearestOrEven)
+ /* ddcom301 */ self.compare64("7.0", "-7", "1", .toNearestOrEven)
+ /* ddcom302 */ self.compare64("7", "-7.0", "1", .toNearestOrEven)
+ /* ddcom303 */ self.compare64("7E+0", "-7.0", "1", .toNearestOrEven)
+ /* ddcom304 */ self.compare64("70E-1", "-7.0", "1", .toNearestOrEven)
+ /* ddcom305 */ self.compare64(".7E+1", "-7", "1", .toNearestOrEven)
+ /* ddcom306 */ self.compare64("70E-1", "-7", "1", .toNearestOrEven)
+ /* ddcom307 */ self.compare64("7.0", "-7E+0", "1", .toNearestOrEven)
+ /* ddcom308 */ self.compare64("7.0", "-70E-1", "1", .toNearestOrEven)
+ /* ddcom309 */ self.compare64("7", "-.7E+1", "1", .toNearestOrEven)
+ /* ddcom310 */ self.compare64("7", "-70E-1", "1", .toNearestOrEven)
+ /* ddcom320 */ self.compare64("8.0", "-7.0", "1", .toNearestOrEven)
+ /* ddcom321 */ self.compare64("8.0", "-7", "1", .toNearestOrEven)
+ /* ddcom322 */ self.compare64("8", "-7.0", "1", .toNearestOrEven)
+ /* ddcom323 */ self.compare64("8E+0", "-7.0", "1", .toNearestOrEven)
+ /* ddcom324 */ self.compare64("80E-1", "-7.0", "1", .toNearestOrEven)
+ /* ddcom325 */ self.compare64(".8E+1", "-7", "1", .toNearestOrEven)
+ /* ddcom326 */ self.compare64("80E-1", "-7", "1", .toNearestOrEven)
+ /* ddcom327 */ self.compare64("8.0", "-7E+0", "1", .toNearestOrEven)
+ /* ddcom328 */ self.compare64("8.0", "-70E-1", "1", .toNearestOrEven)
+ /* ddcom329 */ self.compare64("8", "-.7E+1", "1", .toNearestOrEven)
+ /* ddcom330 */ self.compare64("8", "-70E-1", "1", .toNearestOrEven)
+ /* ddcom340 */ self.compare64("8.0", "-9.0", "1", .toNearestOrEven)
+ /* ddcom341 */ self.compare64("8.0", "-9", "1", .toNearestOrEven)
+ /* ddcom342 */ self.compare64("8", "-9.0", "1", .toNearestOrEven)
+ /* ddcom343 */ self.compare64("8E+0", "-9.0", "1", .toNearestOrEven)
+ /* ddcom344 */ self.compare64("80E-1", "-9.0", "1", .toNearestOrEven)
+ /* ddcom345 */ self.compare64(".8E+1", "-9", "1", .toNearestOrEven)
+ /* ddcom346 */ self.compare64("80E-1", "-9", "1", .toNearestOrEven)
+ /* ddcom347 */ self.compare64("8.0", "-9E+0", "1", .toNearestOrEven)
+ /* ddcom348 */ self.compare64("8.0", "-90E-1", "1", .toNearestOrEven)
+ /* ddcom349 */ self.compare64("8", "-.9E+1", "1", .toNearestOrEven)
+ /* ddcom350 */ self.compare64("8", "-90E-1", "1", .toNearestOrEven)
+ /* ddcom400 */ self.compare64("-7.0", "-7.0", "0", .toNearestOrEven)
+ /* ddcom401 */ self.compare64("-7.0", "-7", "0", .toNearestOrEven)
+ /* ddcom402 */ self.compare64("-7", "-7.0", "0", .toNearestOrEven)
+ /* ddcom403 */ self.compare64("-7E+0", "-7.0", "0", .toNearestOrEven)
+ /* ddcom404 */ self.compare64("-70E-1", "-7.0", "0", .toNearestOrEven)
+ /* ddcom405 */ self.compare64("-.7E+1", "-7", "0", .toNearestOrEven)
+ /* ddcom406 */ self.compare64("-70E-1", "-7", "0", .toNearestOrEven)
+ /* ddcom407 */ self.compare64("-7.0", "-7E+0", "0", .toNearestOrEven)
+ /* ddcom408 */ self.compare64("-7.0", "-70E-1", "0", .toNearestOrEven)
+ /* ddcom409 */ self.compare64("-7", "-.7E+1", "0", .toNearestOrEven)
+ /* ddcom410 */ self.compare64("-7", "-70E-1", "0", .toNearestOrEven)
+ /* ddcom420 */ self.compare64("-8.0", "-7.0", "-1", .toNearestOrEven)
+ /* ddcom421 */ self.compare64("-8.0", "-7", "-1", .toNearestOrEven)
+ /* ddcom422 */ self.compare64("-8", "-7.0", "-1", .toNearestOrEven)
+ /* ddcom423 */ self.compare64("-8E+0", "-7.0", "-1", .toNearestOrEven)
+ /* ddcom424 */ self.compare64("-80E-1", "-7.0", "-1", .toNearestOrEven)
+ /* ddcom425 */ self.compare64("-.8E+1", "-7", "-1", .toNearestOrEven)
+ /* ddcom426 */ self.compare64("-80E-1", "-7", "-1", .toNearestOrEven)
+ /* ddcom427 */ self.compare64("-8.0", "-7E+0", "-1", .toNearestOrEven)
+ /* ddcom428 */ self.compare64("-8.0", "-70E-1", "-1", .toNearestOrEven)
+ /* ddcom429 */ self.compare64("-8", "-.7E+1", "-1", .toNearestOrEven)
+ /* ddcom430 */ self.compare64("-8", "-70E-1", "-1", .toNearestOrEven)
+ /* ddcom440 */ self.compare64("-8.0", "-9.0", "1", .toNearestOrEven)
+ /* ddcom441 */ self.compare64("-8.0", "-9", "1", .toNearestOrEven)
+ /* ddcom442 */ self.compare64("-8", "-9.0", "1", .toNearestOrEven)
+ /* ddcom443 */ self.compare64("-8E+0", "-9.0", "1", .toNearestOrEven)
+ /* ddcom444 */ self.compare64("-80E-1", "-9.0", "1", .toNearestOrEven)
+ /* ddcom445 */ self.compare64("-.8E+1", "-9", "1", .toNearestOrEven)
+ /* ddcom446 */ self.compare64("-80E-1", "-9", "1", .toNearestOrEven)
+ /* ddcom447 */ self.compare64("-8.0", "-9E+0", "1", .toNearestOrEven)
+ /* ddcom448 */ self.compare64("-8.0", "-90E-1", "1", .toNearestOrEven)
+ /* ddcom449 */ self.compare64("-8", "-.9E+1", "1", .toNearestOrEven)
+ /* ddcom450 */ self.compare64("-8", "-90E-1", "1", .toNearestOrEven)
+ /* ddcom451 */ self.compare64("1.0", "0.1", "1", .toNearestOrEven)
+ /* ddcom452 */ self.compare64("0.1", "1.0", "-1", .toNearestOrEven)
+ /* ddcom453 */ self.compare64("10.0", "0.1", "1", .toNearestOrEven)
+ /* ddcom454 */ self.compare64("0.1", "10.0", "-1", .toNearestOrEven)
+ /* ddcom455 */ self.compare64("100", "1.0", "1", .toNearestOrEven)
+ /* ddcom456 */ self.compare64("1.0", "100", "-1", .toNearestOrEven)
+ /* ddcom457 */ self.compare64("1000", "10.0", "1", .toNearestOrEven)
+ /* ddcom458 */ self.compare64("10.0", "1000", "-1", .toNearestOrEven)
+ /* ddcom459 */ self.compare64("10000", "100.0", "1", .toNearestOrEven)
+ /* ddcom460 */ self.compare64("100.0", "10000", "-1", .toNearestOrEven)
+ /* ddcom461 */ self.compare64("100000", "1000.0", "1", .toNearestOrEven)
+ /* ddcom462 */ self.compare64("1000.0", "100000", "-1", .toNearestOrEven)
+ /* ddcom463 */ self.compare64("1000000", "10000.0", "1", .toNearestOrEven)
+ /* ddcom464 */ self.compare64("10000.0", "1000000", "-1", .toNearestOrEven)
+ /* ddcom473 */ self.compare64("123.4560000000000E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcom474 */ self.compare64("123.456000000000E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcom475 */ self.compare64("123.45600000000E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcom476 */ self.compare64("123.4560000000E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcom477 */ self.compare64("123.456000000E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcom478 */ self.compare64("123.45600000E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcom479 */ self.compare64("123.4560000E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcom480 */ self.compare64("123.456000E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcom481 */ self.compare64("123.45600E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcom482 */ self.compare64("123.4560E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcom483 */ self.compare64("123.456E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcom487 */ self.compare64("123.456E+89", "123.4560000000000E+89", "0", .toNearestOrEven)
+ /* ddcom488 */ self.compare64("123.456E-89", "123.456000000000E-89", "0", .toNearestOrEven)
+ /* ddcom489 */ self.compare64("123.456E+89", "123.45600000000E+89", "0", .toNearestOrEven)
+ /* ddcom490 */ self.compare64("123.456E-89", "123.4560000000E-89", "0", .toNearestOrEven)
+ /* ddcom491 */ self.compare64("123.456E+89", "123.456000000E+89", "0", .toNearestOrEven)
+ /* ddcom492 */ self.compare64("123.456E-89", "123.45600000E-89", "0", .toNearestOrEven)
+ /* ddcom493 */ self.compare64("123.456E+89", "123.4560000E+89", "0", .toNearestOrEven)
+ /* ddcom494 */ self.compare64("123.456E-89", "123.456000E-89", "0", .toNearestOrEven)
+ /* ddcom495 */ self.compare64("123.456E+89", "123.45600E+89", "0", .toNearestOrEven)
+ /* ddcom496 */ self.compare64("123.456E-89", "123.4560E-89", "0", .toNearestOrEven)
+ /* ddcom497 */ self.compare64("123.456E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcom500 */ self.compare64("1", "1E-15", "1", .toNearestOrEven)
+ /* ddcom501 */ self.compare64("1", "1E-14", "1", .toNearestOrEven)
+ /* ddcom502 */ self.compare64("1", "1E-13", "1", .toNearestOrEven)
+ /* ddcom503 */ self.compare64("1", "1E-12", "1", .toNearestOrEven)
+ /* ddcom504 */ self.compare64("1", "1E-11", "1", .toNearestOrEven)
+ /* ddcom505 */ self.compare64("1", "1E-10", "1", .toNearestOrEven)
+ /* ddcom506 */ self.compare64("1", "1E-9", "1", .toNearestOrEven)
+ /* ddcom507 */ self.compare64("1", "1E-8", "1", .toNearestOrEven)
+ /* ddcom508 */ self.compare64("1", "1E-7", "1", .toNearestOrEven)
+ /* ddcom509 */ self.compare64("1", "1E-6", "1", .toNearestOrEven)
+ /* ddcom510 */ self.compare64("1", "1E-5", "1", .toNearestOrEven)
+ /* ddcom511 */ self.compare64("1", "1E-4", "1", .toNearestOrEven)
+ /* ddcom512 */ self.compare64("1", "1E-3", "1", .toNearestOrEven)
+ /* ddcom513 */ self.compare64("1", "1E-2", "1", .toNearestOrEven)
+ /* ddcom514 */ self.compare64("1", "1E-1", "1", .toNearestOrEven)
+ /* ddcom515 */ self.compare64("1", "1E-0", "0", .toNearestOrEven)
+ /* ddcom516 */ self.compare64("1", "1E+1", "-1", .toNearestOrEven)
+ /* ddcom517 */ self.compare64("1", "1E+2", "-1", .toNearestOrEven)
+ /* ddcom518 */ self.compare64("1", "1E+3", "-1", .toNearestOrEven)
+ /* ddcom519 */ self.compare64("1", "1E+4", "-1", .toNearestOrEven)
+ /* ddcom521 */ self.compare64("1", "1E+5", "-1", .toNearestOrEven)
+ /* ddcom522 */ self.compare64("1", "1E+6", "-1", .toNearestOrEven)
+ /* ddcom523 */ self.compare64("1", "1E+7", "-1", .toNearestOrEven)
+ /* ddcom524 */ self.compare64("1", "1E+8", "-1", .toNearestOrEven)
+ /* ddcom525 */ self.compare64("1", "1E+9", "-1", .toNearestOrEven)
+ /* ddcom526 */ self.compare64("1", "1E+10", "-1", .toNearestOrEven)
+ /* ddcom527 */ self.compare64("1", "1E+11", "-1", .toNearestOrEven)
+ /* ddcom528 */ self.compare64("1", "1E+12", "-1", .toNearestOrEven)
+ /* ddcom529 */ self.compare64("1", "1E+13", "-1", .toNearestOrEven)
+ /* ddcom530 */ self.compare64("1", "1E+14", "-1", .toNearestOrEven)
+ /* ddcom531 */ self.compare64("1", "1E+15", "-1", .toNearestOrEven)
+ /* ddcom540 */ self.compare64("1E-15", "1", "-1", .toNearestOrEven)
+ /* ddcom541 */ self.compare64("1E-14", "1", "-1", .toNearestOrEven)
+ /* ddcom542 */ self.compare64("1E-13", "1", "-1", .toNearestOrEven)
+ /* ddcom543 */ self.compare64("1E-12", "1", "-1", .toNearestOrEven)
+ /* ddcom544 */ self.compare64("1E-11", "1", "-1", .toNearestOrEven)
+ /* ddcom545 */ self.compare64("1E-10", "1", "-1", .toNearestOrEven)
+ /* ddcom546 */ self.compare64("1E-9", "1", "-1", .toNearestOrEven)
+ /* ddcom547 */ self.compare64("1E-8", "1", "-1", .toNearestOrEven)
+ /* ddcom548 */ self.compare64("1E-7", "1", "-1", .toNearestOrEven)
+ /* ddcom549 */ self.compare64("1E-6", "1", "-1", .toNearestOrEven)
+ /* ddcom550 */ self.compare64("1E-5", "1", "-1", .toNearestOrEven)
+ /* ddcom551 */ self.compare64("1E-4", "1", "-1", .toNearestOrEven)
+ /* ddcom552 */ self.compare64("1E-3", "1", "-1", .toNearestOrEven)
+ /* ddcom553 */ self.compare64("1E-2", "1", "-1", .toNearestOrEven)
+ /* ddcom554 */ self.compare64("1E-1", "1", "-1", .toNearestOrEven)
+ /* ddcom555 */ self.compare64("1E-0", "1", "0", .toNearestOrEven)
+ /* ddcom556 */ self.compare64("1E+1", "1", "1", .toNearestOrEven)
+ /* ddcom557 */ self.compare64("1E+2", "1", "1", .toNearestOrEven)
+ /* ddcom558 */ self.compare64("1E+3", "1", "1", .toNearestOrEven)
+ /* ddcom559 */ self.compare64("1E+4", "1", "1", .toNearestOrEven)
+ /* ddcom561 */ self.compare64("1E+5", "1", "1", .toNearestOrEven)
+ /* ddcom562 */ self.compare64("1E+6", "1", "1", .toNearestOrEven)
+ /* ddcom563 */ self.compare64("1E+7", "1", "1", .toNearestOrEven)
+ /* ddcom564 */ self.compare64("1E+8", "1", "1", .toNearestOrEven)
+ /* ddcom565 */ self.compare64("1E+9", "1", "1", .toNearestOrEven)
+ /* ddcom566 */ self.compare64("1E+10", "1", "1", .toNearestOrEven)
+ /* ddcom567 */ self.compare64("1E+11", "1", "1", .toNearestOrEven)
+ /* ddcom568 */ self.compare64("1E+12", "1", "1", .toNearestOrEven)
+ /* ddcom569 */ self.compare64("1E+13", "1", "1", .toNearestOrEven)
+ /* ddcom570 */ self.compare64("1E+14", "1", "1", .toNearestOrEven)
+ /* ddcom571 */ self.compare64("1E+15", "1", "1", .toNearestOrEven)
+ /* ddcom580 */ self.compare64("0.000000987654321", "1E-15", "1", .toNearestOrEven)
+ /* ddcom581 */ self.compare64("0.000000987654321", "1E-14", "1", .toNearestOrEven)
+ /* ddcom582 */ self.compare64("0.000000987654321", "1E-13", "1", .toNearestOrEven)
+ /* ddcom583 */ self.compare64("0.000000987654321", "1E-12", "1", .toNearestOrEven)
+ /* ddcom584 */ self.compare64("0.000000987654321", "1E-11", "1", .toNearestOrEven)
+ /* ddcom585 */ self.compare64("0.000000987654321", "1E-10", "1", .toNearestOrEven)
+ /* ddcom586 */ self.compare64("0.000000987654321", "1E-9", "1", .toNearestOrEven)
+ /* ddcom587 */ self.compare64("0.000000987654321", "1E-8", "1", .toNearestOrEven)
+ /* ddcom588 */ self.compare64("0.000000987654321", "1E-7", "1", .toNearestOrEven)
+ /* ddcom589 */ self.compare64("0.000000987654321", "1E-6", "-1", .toNearestOrEven)
+ /* ddcom590 */ self.compare64("0.000000987654321", "1E-5", "-1", .toNearestOrEven)
+ /* ddcom591 */ self.compare64("0.000000987654321", "1E-4", "-1", .toNearestOrEven)
+ /* ddcom592 */ self.compare64("0.000000987654321", "1E-3", "-1", .toNearestOrEven)
+ /* ddcom593 */ self.compare64("0.000000987654321", "1E-2", "-1", .toNearestOrEven)
+ /* ddcom594 */ self.compare64("0.000000987654321", "1E-1", "-1", .toNearestOrEven)
+ /* ddcom595 */ self.compare64("0.000000987654321", "1E-0", "-1", .toNearestOrEven)
+ /* ddcom596 */ self.compare64("0.000000987654321", "1E+1", "-1", .toNearestOrEven)
+ /* ddcom597 */ self.compare64("0.000000987654321", "1E+2", "-1", .toNearestOrEven)
+ /* ddcom598 */ self.compare64("0.000000987654321", "1E+3", "-1", .toNearestOrEven)
+ /* ddcom599 */ self.compare64("0.000000987654321", "1E+4", "-1", .toNearestOrEven)
+ /* ddcom600 */ self.compare64("12", "12.2345", "-1", .toNearestOrEven)
+ /* ddcom601 */ self.compare64("12.0", "12.2345", "-1", .toNearestOrEven)
+ /* ddcom602 */ self.compare64("12.00", "12.2345", "-1", .toNearestOrEven)
+ /* ddcom603 */ self.compare64("12.000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcom604 */ self.compare64("12.0000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcom605 */ self.compare64("12.00000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcom606 */ self.compare64("12.000000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcom607 */ self.compare64("12.0000000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcom608 */ self.compare64("12.00000000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcom609 */ self.compare64("12.000000000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcom610 */ self.compare64("12.1234", "12", "1", .toNearestOrEven)
+ /* ddcom611 */ self.compare64("12.1234", "12.0", "1", .toNearestOrEven)
+ /* ddcom612 */ self.compare64("12.1234", "12.00", "1", .toNearestOrEven)
+ /* ddcom613 */ self.compare64("12.1234", "12.000", "1", .toNearestOrEven)
+ /* ddcom614 */ self.compare64("12.1234", "12.0000", "1", .toNearestOrEven)
+ /* ddcom615 */ self.compare64("12.1234", "12.00000", "1", .toNearestOrEven)
+ /* ddcom616 */ self.compare64("12.1234", "12.000000", "1", .toNearestOrEven)
+ /* ddcom617 */ self.compare64("12.1234", "12.0000000", "1", .toNearestOrEven)
+ /* ddcom618 */ self.compare64("12.1234", "12.00000000", "1", .toNearestOrEven)
+ /* ddcom619 */ self.compare64("12.1234", "12.000000000", "1", .toNearestOrEven)
+ /* ddcom620 */ self.compare64("-12", "-12.2345", "1", .toNearestOrEven)
+ /* ddcom621 */ self.compare64("-12.0", "-12.2345", "1", .toNearestOrEven)
+ /* ddcom622 */ self.compare64("-12.00", "-12.2345", "1", .toNearestOrEven)
+ /* ddcom623 */ self.compare64("-12.000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcom624 */ self.compare64("-12.0000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcom625 */ self.compare64("-12.00000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcom626 */ self.compare64("-12.000000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcom627 */ self.compare64("-12.0000000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcom628 */ self.compare64("-12.00000000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcom629 */ self.compare64("-12.000000000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcom630 */ self.compare64("-12.1234", "-12", "-1", .toNearestOrEven)
+ /* ddcom631 */ self.compare64("-12.1234", "-12.0", "-1", .toNearestOrEven)
+ /* ddcom632 */ self.compare64("-12.1234", "-12.00", "-1", .toNearestOrEven)
+ /* ddcom633 */ self.compare64("-12.1234", "-12.000", "-1", .toNearestOrEven)
+ /* ddcom634 */ self.compare64("-12.1234", "-12.0000", "-1", .toNearestOrEven)
+ /* ddcom635 */ self.compare64("-12.1234", "-12.00000", "-1", .toNearestOrEven)
+ /* ddcom636 */ self.compare64("-12.1234", "-12.000000", "-1", .toNearestOrEven)
+ /* ddcom637 */ self.compare64("-12.1234", "-12.0000000", "-1", .toNearestOrEven)
+ /* ddcom638 */ self.compare64("-12.1234", "-12.00000000", "-1", .toNearestOrEven)
+ /* ddcom639 */ self.compare64("-12.1234", "-12.000000000", "-1", .toNearestOrEven)
+ /* ddcom640 */ self.compare64("0", "0", "0", .toNearestOrEven)
+ /* ddcom641 */ self.compare64("0", "-0", "0", .toNearestOrEven)
+ /* ddcom642 */ self.compare64("0", "-0.0", "0", .toNearestOrEven)
+ /* ddcom643 */ self.compare64("0", "0.0", "0", .toNearestOrEven)
+ /* ddcom644 */ self.compare64("-0", "0", "0", .toNearestOrEven)
+ /* ddcom645 */ self.compare64("-0", "-0", "0", .toNearestOrEven)
+ /* ddcom646 */ self.compare64("-0", "-0.0", "0", .toNearestOrEven)
+ /* ddcom647 */ self.compare64("-0", "0.0", "0", .toNearestOrEven)
+ /* ddcom648 */ self.compare64("0.0", "0", "0", .toNearestOrEven)
+ /* ddcom649 */ self.compare64("0.0", "-0", "0", .toNearestOrEven)
+ /* ddcom650 */ self.compare64("0.0", "-0.0", "0", .toNearestOrEven)
+ /* ddcom651 */ self.compare64("0.0", "0.0", "0", .toNearestOrEven)
+ /* ddcom652 */ self.compare64("-0.0", "0", "0", .toNearestOrEven)
+ /* ddcom653 */ self.compare64("-0.0", "-0", "0", .toNearestOrEven)
+ /* ddcom654 */ self.compare64("-0.0", "-0.0", "0", .toNearestOrEven)
+ /* ddcom655 */ self.compare64("-0.0", "0.0", "0", .toNearestOrEven)
+ /* ddcom656 */ self.compare64("-0E1", "0.0", "0", .toNearestOrEven)
+ /* ddcom657 */ self.compare64("-0E2", "0.0", "0", .toNearestOrEven)
+ /* ddcom658 */ self.compare64("0E1", "0.0", "0", .toNearestOrEven)
+ /* ddcom659 */ self.compare64("0E2", "0.0", "0", .toNearestOrEven)
+ /* ddcom660 */ self.compare64("-0E1", "0", "0", .toNearestOrEven)
+ /* ddcom661 */ self.compare64("-0E2", "0", "0", .toNearestOrEven)
+ /* ddcom662 */ self.compare64("0E1", "0", "0", .toNearestOrEven)
+ /* ddcom663 */ self.compare64("0E2", "0", "0", .toNearestOrEven)
+ /* ddcom664 */ self.compare64("-0E1", "-0E1", "0", .toNearestOrEven)
+ /* ddcom665 */ self.compare64("-0E2", "-0E1", "0", .toNearestOrEven)
+ /* ddcom666 */ self.compare64("0E1", "-0E1", "0", .toNearestOrEven)
+ /* ddcom667 */ self.compare64("0E2", "-0E1", "0", .toNearestOrEven)
+ /* ddcom668 */ self.compare64("-0E1", "-0E2", "0", .toNearestOrEven)
+ /* ddcom669 */ self.compare64("-0E2", "-0E2", "0", .toNearestOrEven)
+ /* ddcom670 */ self.compare64("0E1", "-0E2", "0", .toNearestOrEven)
+ /* ddcom671 */ self.compare64("0E2", "-0E2", "0", .toNearestOrEven)
+ /* ddcom672 */ self.compare64("-0E1", "0E1", "0", .toNearestOrEven)
+ /* ddcom673 */ self.compare64("-0E2", "0E1", "0", .toNearestOrEven)
+ /* ddcom674 */ self.compare64("0E1", "0E1", "0", .toNearestOrEven)
+ /* ddcom675 */ self.compare64("0E2", "0E1", "0", .toNearestOrEven)
+ /* ddcom676 */ self.compare64("-0E1", "0E2", "0", .toNearestOrEven)
+ /* ddcom677 */ self.compare64("-0E2", "0E2", "0", .toNearestOrEven)
+ /* ddcom678 */ self.compare64("0E1", "0E2", "0", .toNearestOrEven)
+ /* ddcom679 */ self.compare64("0E2", "0E2", "0", .toNearestOrEven)
+ /* ddcom680 */ self.compare64("12", "12", "0", .toNearestOrEven)
+ /* ddcom681 */ self.compare64("12", "12.0", "0", .toNearestOrEven)
+ /* ddcom682 */ self.compare64("12", "12.00", "0", .toNearestOrEven)
+ /* ddcom683 */ self.compare64("12", "12.000", "0", .toNearestOrEven)
+ /* ddcom684 */ self.compare64("12", "12.0000", "0", .toNearestOrEven)
+ /* ddcom685 */ self.compare64("12", "12.00000", "0", .toNearestOrEven)
+ /* ddcom686 */ self.compare64("12", "12.000000", "0", .toNearestOrEven)
+ /* ddcom687 */ self.compare64("12", "12.0000000", "0", .toNearestOrEven)
+ /* ddcom688 */ self.compare64("12", "12.00000000", "0", .toNearestOrEven)
+ /* ddcom689 */ self.compare64("12", "12.000000000", "0", .toNearestOrEven)
+ /* ddcom690 */ self.compare64("12", "12", "0", .toNearestOrEven)
+ /* ddcom691 */ self.compare64("12.0", "12", "0", .toNearestOrEven)
+ /* ddcom692 */ self.compare64("12.00", "12", "0", .toNearestOrEven)
+ /* ddcom693 */ self.compare64("12.000", "12", "0", .toNearestOrEven)
+ /* ddcom694 */ self.compare64("12.0000", "12", "0", .toNearestOrEven)
+ /* ddcom695 */ self.compare64("12.00000", "12", "0", .toNearestOrEven)
+ /* ddcom696 */ self.compare64("12.000000", "12", "0", .toNearestOrEven)
+ /* ddcom697 */ self.compare64("12.0000000", "12", "0", .toNearestOrEven)
+ /* ddcom698 */ self.compare64("12.00000000", "12", "0", .toNearestOrEven)
+ /* ddcom699 */ self.compare64("12.000000000", "12", "0", .toNearestOrEven)
+ /* ddcom700 */ self.compare64("1234567890123456", "1234567890123455", "1", .toNearestOrEven)
+ /* ddcom701 */ self.compare64("1234567890123456", "1234567890123456", "0", .toNearestOrEven)
+ /* ddcom702 */ self.compare64("1234567890123456", "1234567890123457", "-1", .toNearestOrEven)
+ /* ddcom703 */ self.compare64("1234567890123456", "0234567890123456", "1", .toNearestOrEven)
+ /* ddcom704 */ self.compare64("1234567890123456", "1234567890123456", "0", .toNearestOrEven)
+ /* ddcom705 */ self.compare64("1234567890123456", "2234567890123456", "-1", .toNearestOrEven)
+ /* ddcom706 */ self.compare64("1134567890123456", "1034567890123456", "1", .toNearestOrEven)
+ /* ddcom707 */ self.compare64("1134567890123456", "1134567890123456", "0", .toNearestOrEven)
+ /* ddcom708 */ self.compare64("1134567890123456", "1234567890123456", "-1", .toNearestOrEven)
+ /* ddcom721 */ self.compare64("12345678000", "1", "1", .toNearestOrEven)
+ /* ddcom722 */ self.compare64("1", "12345678000", "-1", .toNearestOrEven)
+ /* ddcom723 */ self.compare64("1234567800", "1", "1", .toNearestOrEven)
+ /* ddcom724 */ self.compare64("1", "1234567800", "-1", .toNearestOrEven)
+ /* ddcom725 */ self.compare64("1234567890", "1", "1", .toNearestOrEven)
+ /* ddcom726 */ self.compare64("1", "1234567890", "-1", .toNearestOrEven)
+ /* ddcom727 */ self.compare64("1234567891", "1", "1", .toNearestOrEven)
+ /* ddcom728 */ self.compare64("1", "1234567891", "-1", .toNearestOrEven)
+ /* ddcom729 */ self.compare64("12345678901", "1", "1", .toNearestOrEven)
+ /* ddcom730 */ self.compare64("1", "12345678901", "-1", .toNearestOrEven)
+ /* ddcom731 */ self.compare64("1234567896", "1", "1", .toNearestOrEven)
+ /* ddcom732 */ self.compare64("1", "1234567896", "-1", .toNearestOrEven)
+ /* ddcom740 */ self.compare64("1", "0.9999999", "1", .toNearestOrEven)
+ /* ddcom741 */ self.compare64("1", "0.999999", "1", .toNearestOrEven)
+ /* ddcom742 */ self.compare64("1", "0.99999", "1", .toNearestOrEven)
+ /* ddcom743 */ self.compare64("1", "1.0000", "0", .toNearestOrEven)
+ /* ddcom744 */ self.compare64("1", "1.00001", "-1", .toNearestOrEven)
+ /* ddcom745 */ self.compare64("1", "1.000001", "-1", .toNearestOrEven)
+ /* ddcom746 */ self.compare64("1", "1.0000001", "-1", .toNearestOrEven)
+ /* ddcom750 */ self.compare64("0.9999999", "1", "-1", .toNearestOrEven)
+ /* ddcom751 */ self.compare64("0.999999", "1", "-1", .toNearestOrEven)
+ /* ddcom752 */ self.compare64("0.99999", "1", "-1", .toNearestOrEven)
+ /* ddcom753 */ self.compare64("1.0000", "1", "0", .toNearestOrEven)
+ /* ddcom754 */ self.compare64("1.00001", "1", "1", .toNearestOrEven)
+ /* ddcom755 */ self.compare64("1.000001", "1", "1", .toNearestOrEven)
+ /* ddcom756 */ self.compare64("1.0000001", "1", "1", .toNearestOrEven)
+ /* ddcom780 */ self.compare64("Inf", "-Inf", "1", .toNearestOrEven)
+ /* ddcom781 */ self.compare64("Inf", "-1000", "1", .toNearestOrEven)
+ /* ddcom782 */ self.compare64("Inf", "-1", "1", .toNearestOrEven)
+ /* ddcom783 */ self.compare64("Inf", "-0", "1", .toNearestOrEven)
+ /* ddcom784 */ self.compare64("Inf", "0", "1", .toNearestOrEven)
+ /* ddcom785 */ self.compare64("Inf", "1", "1", .toNearestOrEven)
+ /* ddcom786 */ self.compare64("Inf", "1000", "1", .toNearestOrEven)
+ /* ddcom787 */ self.compare64("Inf", "Inf", "0", .toNearestOrEven)
+ /* ddcom788 */ self.compare64("-1000", "Inf", "-1", .toNearestOrEven)
+ /* ddcom789 */ self.compare64("-Inf", "Inf", "-1", .toNearestOrEven)
+ /* ddcom790 */ self.compare64("-1", "Inf", "-1", .toNearestOrEven)
+ /* ddcom791 */ self.compare64("-0", "Inf", "-1", .toNearestOrEven)
+ /* ddcom792 */ self.compare64("0", "Inf", "-1", .toNearestOrEven)
+ /* ddcom793 */ self.compare64("1", "Inf", "-1", .toNearestOrEven)
+ /* ddcom794 */ self.compare64("1000", "Inf", "-1", .toNearestOrEven)
+ /* ddcom795 */ self.compare64("Inf", "Inf", "0", .toNearestOrEven)
+ /* ddcom800 */ self.compare64("-Inf", "-Inf", "0", .toNearestOrEven)
+ /* ddcom801 */ self.compare64("-Inf", "-1000", "-1", .toNearestOrEven)
+ /* ddcom802 */ self.compare64("-Inf", "-1", "-1", .toNearestOrEven)
+ /* ddcom803 */ self.compare64("-Inf", "-0", "-1", .toNearestOrEven)
+ /* ddcom804 */ self.compare64("-Inf", "0", "-1", .toNearestOrEven)
+ /* ddcom805 */ self.compare64("-Inf", "1", "-1", .toNearestOrEven)
+ /* ddcom806 */ self.compare64("-Inf", "1000", "-1", .toNearestOrEven)
+ /* ddcom807 */ self.compare64("-Inf", "Inf", "-1", .toNearestOrEven)
+ /* ddcom808 */ self.compare64("-Inf", "-Inf", "0", .toNearestOrEven)
+ /* ddcom809 */ self.compare64("-1000", "-Inf", "1", .toNearestOrEven)
+ /* ddcom810 */ self.compare64("-1", "-Inf", "1", .toNearestOrEven)
+ /* ddcom811 */ self.compare64("-0", "-Inf", "1", .toNearestOrEven)
+ /* ddcom812 */ self.compare64("0", "-Inf", "1", .toNearestOrEven)
+ /* ddcom813 */ self.compare64("1", "-Inf", "1", .toNearestOrEven)
+ /* ddcom814 */ self.compare64("1000", "-Inf", "1", .toNearestOrEven)
+ /* ddcom815 */ self.compare64("Inf", "-Inf", "1", .toNearestOrEven)
+ /* ddcom821 */ self.compare64("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* ddcom822 */ self.compare64("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* ddcom823 */ self.compare64("NaN", "-1", "NaN", .toNearestOrEven)
+ /* ddcom824 */ self.compare64("NaN", "-0", "NaN", .toNearestOrEven)
+ /* ddcom825 */ self.compare64("NaN", "0", "NaN", .toNearestOrEven)
+ /* ddcom826 */ self.compare64("NaN", "1", "NaN", .toNearestOrEven)
+ /* ddcom827 */ self.compare64("NaN", "1000", "NaN", .toNearestOrEven)
+ /* ddcom828 */ self.compare64("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* ddcom829 */ self.compare64("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* ddcom830 */ self.compare64("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddcom831 */ self.compare64("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddcom832 */ self.compare64("-1", "NaN", "NaN", .toNearestOrEven)
+ /* ddcom833 */ self.compare64("-0", "NaN", "NaN", .toNearestOrEven)
+ /* ddcom834 */ self.compare64("0", "NaN", "NaN", .toNearestOrEven)
+ /* ddcom835 */ self.compare64("1", "NaN", "NaN", .toNearestOrEven)
+ /* ddcom836 */ self.compare64("1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddcom837 */ self.compare64("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddcom838 */ self.compare64("-NaN", "-NaN", "-NaN", .toNearestOrEven)
+ /* ddcom839 */ self.compare64("+NaN", "-NaN", "NaN", .toNearestOrEven)
+ /* ddcom840 */ self.compare64("-NaN", "+NaN", "-NaN", .toNearestOrEven)
+ /* ddcom841 */ self.compare64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom842 */ self.compare64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom843 */ self.compare64("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom844 */ self.compare64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom845 */ self.compare64("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom846 */ self.compare64("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom847 */ self.compare64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom848 */ self.compare64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom849 */ self.compare64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom850 */ self.compare64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom851 */ self.compare64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom852 */ self.compare64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom853 */ self.compare64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom854 */ self.compare64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom855 */ self.compare64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom856 */ self.compare64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom857 */ self.compare64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom858 */ self.compare64("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom859 */ self.compare64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom860 */ self.compare64("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrEven)
+ /* ddcom861 */ self.compare64("NaN(0x8)", "999", "NaN(0x8)", .toNearestOrEven)
+ /* ddcom862 */ self.compare64("NaN(0x4d)", "Inf", "NaN(0x4d)", .toNearestOrEven)
+ /* ddcom863 */ self.compare64("-NaN(0x43)", "NaN(0x5)", "-NaN(0x43)", .toNearestOrEven)
+ /* ddcom864 */ self.compare64("-Inf", "-NaN(0x4)", "-NaN(0x4)", .toNearestOrEven)
+ /* ddcom865 */ self.compare64("-999", "-NaN(0x21)", "-NaN(0x21)", .toNearestOrEven)
+ /* ddcom866 */ self.compare64("Inf", "NaN(0x2)", "NaN(0x2)", .toNearestOrEven)
+ /* ddcom867 */ self.compare64("-NaN(0x29)", "-NaN(0x2a)", "-NaN(0x29)", .toNearestOrEven)
+ /* ddcom868 */ self.compare64("+NaN(0x29)", "-NaN(0x2a)", "NaN(0x29)", .toNearestOrEven)
+ /* ddcom869 */ self.compare64("-NaN(0x29)", "+NaN(0x2a)", "-NaN(0x29)", .toNearestOrEven)
+ /* ddcom870 */ self.compare64("+NaN(0x29)", "+NaN(0x2a)", "NaN(0x29)", .toNearestOrEven)
+ /* ddcom871 */ self.compare64("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom872 */ self.compare64("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom873 */ self.compare64("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom874 */ self.compare64("sNaN(0x10)", "sNaN(0x5e)", "NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom875 */ self.compare64("NaN(0x55)", "sNaN(0x53)", "NaN(0x53)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom876 */ self.compare64("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom877 */ self.compare64("088", "sNaN(0x51)", "NaN(0x51)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom878 */ self.compare64("Inf", "sNaN(0x5a)", "NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom879 */ self.compare64("NaN", "-sNaN(0x59)", "-NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcom880 */ self.compare64("+1.23456789012345E-0", "9E+384", "-1", .toNearestOrEven)
+ /* ddcom881 */ self.compare64("9E+384", "+1.23456789012345E-0", "1", .toNearestOrEven)
+ /* ddcom882 */ self.compare64("+0.100", "9E-383", "1", .toNearestOrEven)
+ /* ddcom883 */ self.compare64("9E-383", "+0.100", "-1", .toNearestOrEven)
+ /* ddcom885 */ self.compare64("-1.23456789012345E-0", "9E+384", "-1", .toNearestOrEven)
+ /* ddcom886 */ self.compare64("9E+384", "-1.23456789012345E-0", "1", .toNearestOrEven)
+ /* ddcom887 */ self.compare64("-0.100", "9E-383", "-1", .toNearestOrEven)
+ /* ddcom888 */ self.compare64("9E-383", "-0.100", "1", .toNearestOrEven)
+ /* ddcom900 */ self.compare64("0E-383", "0", "0", .toNearestOrEven)
+ /* ddcom901 */ self.compare64("0E-383", "-0", "0", .toNearestOrEven)
+ /* ddcom902 */ self.compare64("-0E-383", "0", "0", .toNearestOrEven)
+ /* ddcom903 */ self.compare64("-0E-383", "-0", "0", .toNearestOrEven)
+ /* ddcom904 */ self.compare64("0E-383", "0E+384", "0", .toNearestOrEven)
+ /* ddcom905 */ self.compare64("0E-383", "-0E+384", "0", .toNearestOrEven)
+ /* ddcom906 */ self.compare64("-0E-383", "0E+384", "0", .toNearestOrEven)
+ /* ddcom907 */ self.compare64("-0E-383", "-0E+384", "0", .toNearestOrEven)
+ /* ddcom908 */ self.compare64("0", "0E+384", "0", .toNearestOrEven)
+ /* ddcom909 */ self.compare64("0", "-0E+384", "0", .toNearestOrEven)
+ /* ddcom910 */ self.compare64("-0", "0E+384", "0", .toNearestOrEven)
+ /* ddcom911 */ self.compare64("-0", "-0E+384", "0", .toNearestOrEven)
+ /* ddcom930 */ self.compare64("0E+384", "0", "0", .toNearestOrEven)
+ /* ddcom931 */ self.compare64("0E+384", "-0", "0", .toNearestOrEven)
+ /* ddcom932 */ self.compare64("-0E+384", "0", "0", .toNearestOrEven)
+ /* ddcom933 */ self.compare64("-0E+384", "-0", "0", .toNearestOrEven)
+ /* ddcom934 */ self.compare64("0E+384", "0E-383", "0", .toNearestOrEven)
+ /* ddcom935 */ self.compare64("0E+384", "-0E-383", "0", .toNearestOrEven)
+ /* ddcom936 */ self.compare64("-0E+384", "0E-383", "0", .toNearestOrEven)
+ /* ddcom937 */ self.compare64("-0E+384", "-0E-383", "0", .toNearestOrEven)
+ /* ddcom938 */ self.compare64("0", "0E-383", "0", .toNearestOrEven)
+ /* ddcom939 */ self.compare64("0", "-0E-383", "0", .toNearestOrEven)
+ /* ddcom940 */ self.compare64("-0", "0E-383", "0", .toNearestOrEven)
+ /* ddcom941 */ self.compare64("-0", "-0E-383", "0", .toNearestOrEven)
+ /* ddcom961 */ self.compare64("1e+77", "1e+11", "1", .toNearestOrEven)
+ /* ddcom962 */ self.compare64("1e+77", "-1e+11", "1", .toNearestOrEven)
+ /* ddcom963 */ self.compare64("-1e+77", "1e+11", "-1", .toNearestOrEven)
+ /* ddcom964 */ self.compare64("-1e+77", "-1e+11", "-1", .toNearestOrEven)
+ /* ddcom965 */ self.compare64("1e-77", "1e-11", "-1", .toNearestOrEven)
+ /* ddcom966 */ self.compare64("1e-77", "-1e-11", "1", .toNearestOrEven)
+ /* ddcom967 */ self.compare64("-1e-77", "1e-11", "-1", .toNearestOrEven)
+ /* ddcom968 */ self.compare64("-1e-77", "-1e-11", "1", .toNearestOrEven)
+ /* ddcomp1001 */ self.compare64("1", "1.000000000000000", "0", .toNearestOrEven)
+ /* ddcomp1002 */ self.compare64("1", "1.00000000000000", "0", .toNearestOrEven)
+ /* ddcomp1003 */ self.compare64("1", "1.0000000000000", "0", .toNearestOrEven)
+ /* ddcomp1004 */ self.compare64("1", "1.000000000000", "0", .toNearestOrEven)
+ /* ddcomp1005 */ self.compare64("1", "1.00000000000", "0", .toNearestOrEven)
+ /* ddcomp1006 */ self.compare64("1", "1.0000000000", "0", .toNearestOrEven)
+ /* ddcomp1007 */ self.compare64("1", "1.000000000", "0", .toNearestOrEven)
+ /* ddcomp1008 */ self.compare64("1", "1.00000000", "0", .toNearestOrEven)
+ /* ddcomp1009 */ self.compare64("1", "1.0000000", "0", .toNearestOrEven)
+ /* ddcomp1010 */ self.compare64("1", "1.000000", "0", .toNearestOrEven)
+ /* ddcomp1011 */ self.compare64("1", "1.00000", "0", .toNearestOrEven)
+ /* ddcomp1012 */ self.compare64("1", "1.0000", "0", .toNearestOrEven)
+ /* ddcomp1013 */ self.compare64("1", "1.000", "0", .toNearestOrEven)
+ /* ddcomp1014 */ self.compare64("1", "1.00", "0", .toNearestOrEven)
+ /* ddcomp1015 */ self.compare64("1", "1.0", "0", .toNearestOrEven)
+ /* ddcomp1021 */ self.compare64("1.000000000000000", "1", "0", .toNearestOrEven)
+ /* ddcomp1022 */ self.compare64("1.00000000000000", "1", "0", .toNearestOrEven)
+ /* ddcomp1023 */ self.compare64("1.0000000000000", "1", "0", .toNearestOrEven)
+ /* ddcomp1024 */ self.compare64("1.000000000000", "1", "0", .toNearestOrEven)
+ /* ddcomp1025 */ self.compare64("1.00000000000", "1", "0", .toNearestOrEven)
+ /* ddcomp1026 */ self.compare64("1.0000000000", "1", "0", .toNearestOrEven)
+ /* ddcomp1027 */ self.compare64("1.000000000", "1", "0", .toNearestOrEven)
+ /* ddcomp1028 */ self.compare64("1.00000000", "1", "0", .toNearestOrEven)
+ /* ddcomp1029 */ self.compare64("1.0000000", "1", "0", .toNearestOrEven)
+ /* ddcomp1030 */ self.compare64("1.000000", "1", "0", .toNearestOrEven)
+ /* ddcomp1031 */ self.compare64("1.00000", "1", "0", .toNearestOrEven)
+ /* ddcomp1032 */ self.compare64("1.0000", "1", "0", .toNearestOrEven)
+ /* ddcomp1033 */ self.compare64("1.000", "1", "0", .toNearestOrEven)
+ /* ddcomp1034 */ self.compare64("1.00", "1", "0", .toNearestOrEven)
+ /* ddcomp1035 */ self.compare64("1.0", "1", "0", .toNearestOrEven)
+ /* ddcomp1040 */ self.compare64("0", "0.000000000000000", "0", .toNearestOrEven)
+ /* ddcomp1041 */ self.compare64("0", "1.000000000000000", "-1", .toNearestOrEven)
+ /* ddcomp1042 */ self.compare64("0", "2.000000000000000", "-1", .toNearestOrEven)
+ /* ddcomp1043 */ self.compare64("0", "3.000000000000000", "-1", .toNearestOrEven)
+ /* ddcomp1044 */ self.compare64("0", "4.000000000000000", "-1", .toNearestOrEven)
+ /* ddcomp1045 */ self.compare64("0", "5.000000000000000", "-1", .toNearestOrEven)
+ /* ddcomp1046 */ self.compare64("0", "6.000000000000000", "-1", .toNearestOrEven)
+ /* ddcomp1047 */ self.compare64("0", "7.000000000000000", "-1", .toNearestOrEven)
+ /* ddcomp1048 */ self.compare64("0", "8.000000000000000", "-1", .toNearestOrEven)
+ /* ddcomp1049 */ self.compare64("0", "9.000000000000000", "-1", .toNearestOrEven)
+ /* ddcomp1050 */ self.compare64("0.000000000000000", "0", "0", .toNearestOrEven)
+ /* ddcomp1051 */ self.compare64("1.000000000000000", "0", "1", .toNearestOrEven)
+ /* ddcomp1052 */ self.compare64("2.000000000000000", "0", "1", .toNearestOrEven)
+ /* ddcomp1053 */ self.compare64("3.000000000000000", "0", "1", .toNearestOrEven)
+ /* ddcomp1054 */ self.compare64("4.000000000000000", "0", "1", .toNearestOrEven)
+ /* ddcomp1055 */ self.compare64("5.000000000000000", "0", "1", .toNearestOrEven)
+ /* ddcomp1056 */ self.compare64("6.000000000000000", "0", "1", .toNearestOrEven)
+ /* ddcomp1057 */ self.compare64("7.000000000000000", "0", "1", .toNearestOrEven)
+ /* ddcomp1058 */ self.compare64("8.000000000000000", "0", "1", .toNearestOrEven)
+ /* ddcomp1059 */ self.compare64("9.000000000000000", "0", "1", .toNearestOrEven)
+ }
+
+ private func compare64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ self.assertCompare(
+ arg0,
+ arg1,
+ status: &status,
+ expected: expected,
+ expectedStatus: expectedStatus,
+ file,
+ line
+ )
+ }
+
+ func test_compare128() {
+ /* dqcan231 */ self.compare128("-Inf", "1", "#a2080000000000000000000000000001", .toNearestOrEven)
+ /* dqcan232 */ self.compare128("-Inf", "-Inf", "#22080000000000000000000000000000", .toNearestOrEven)
+ /* dqcan233 */ self.compare128("1", "-Inf", "#22080000000000000000000000000001", .toNearestOrEven)
+ /* dqcan234 */ self.compare128("#7c010ff3fcff3fcff3fcff3ffffffcff", "-1000", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan235 */ self.compare128("#7e004ff3fcff3fcff3ffffffcff3fcff", "-1000", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom001 */ self.compare128("-2", "-2", "0", .toNearestOrEven)
+ /* dqcom002 */ self.compare128("-2", "-1", "-1", .toNearestOrEven)
+ /* dqcom003 */ self.compare128("-2", "0", "-1", .toNearestOrEven)
+ /* dqcom004 */ self.compare128("-2", "1", "-1", .toNearestOrEven)
+ /* dqcom005 */ self.compare128("-2", "2", "-1", .toNearestOrEven)
+ /* dqcom006 */ self.compare128("-1", "-2", "1", .toNearestOrEven)
+ /* dqcom007 */ self.compare128("-1", "-1", "0", .toNearestOrEven)
+ /* dqcom008 */ self.compare128("-1", "0", "-1", .toNearestOrEven)
+ /* dqcom009 */ self.compare128("-1", "1", "-1", .toNearestOrEven)
+ /* dqcom010 */ self.compare128("-1", "2", "-1", .toNearestOrEven)
+ /* dqcom011 */ self.compare128("0", "-2", "1", .toNearestOrEven)
+ /* dqcom012 */ self.compare128("0", "-1", "1", .toNearestOrEven)
+ /* dqcom013 */ self.compare128("0", "0", "0", .toNearestOrEven)
+ /* dqcom014 */ self.compare128("0", "1", "-1", .toNearestOrEven)
+ /* dqcom015 */ self.compare128("0", "2", "-1", .toNearestOrEven)
+ /* dqcom016 */ self.compare128("1", "-2", "1", .toNearestOrEven)
+ /* dqcom017 */ self.compare128("1", "-1", "1", .toNearestOrEven)
+ /* dqcom018 */ self.compare128("1", "0", "1", .toNearestOrEven)
+ /* dqcom019 */ self.compare128("1", "1", "0", .toNearestOrEven)
+ /* dqcom020 */ self.compare128("1", "2", "-1", .toNearestOrEven)
+ /* dqcom021 */ self.compare128("2", "-2", "1", .toNearestOrEven)
+ /* dqcom022 */ self.compare128("2", "-1", "1", .toNearestOrEven)
+ /* dqcom023 */ self.compare128("2", "0", "1", .toNearestOrEven)
+ /* dqcom025 */ self.compare128("2", "1", "1", .toNearestOrEven)
+ /* dqcom026 */ self.compare128("2", "2", "0", .toNearestOrEven)
+ /* dqcom031 */ self.compare128("-20", "-20", "0", .toNearestOrEven)
+ /* dqcom032 */ self.compare128("-20", "-10", "-1", .toNearestOrEven)
+ /* dqcom033 */ self.compare128("-20", "00", "-1", .toNearestOrEven)
+ /* dqcom034 */ self.compare128("-20", "10", "-1", .toNearestOrEven)
+ /* dqcom035 */ self.compare128("-20", "20", "-1", .toNearestOrEven)
+ /* dqcom036 */ self.compare128("-10", "-20", "1", .toNearestOrEven)
+ /* dqcom037 */ self.compare128("-10", "-10", "0", .toNearestOrEven)
+ /* dqcom038 */ self.compare128("-10", "00", "-1", .toNearestOrEven)
+ /* dqcom039 */ self.compare128("-10", "10", "-1", .toNearestOrEven)
+ /* dqcom040 */ self.compare128("-10", "20", "-1", .toNearestOrEven)
+ /* dqcom041 */ self.compare128("00", "-20", "1", .toNearestOrEven)
+ /* dqcom042 */ self.compare128("00", "-10", "1", .toNearestOrEven)
+ /* dqcom043 */ self.compare128("00", "00", "0", .toNearestOrEven)
+ /* dqcom044 */ self.compare128("00", "10", "-1", .toNearestOrEven)
+ /* dqcom045 */ self.compare128("00", "20", "-1", .toNearestOrEven)
+ /* dqcom046 */ self.compare128("10", "-20", "1", .toNearestOrEven)
+ /* dqcom047 */ self.compare128("10", "-10", "1", .toNearestOrEven)
+ /* dqcom048 */ self.compare128("10", "00", "1", .toNearestOrEven)
+ /* dqcom049 */ self.compare128("10", "10", "0", .toNearestOrEven)
+ /* dqcom050 */ self.compare128("10", "20", "-1", .toNearestOrEven)
+ /* dqcom051 */ self.compare128("20", "-20", "1", .toNearestOrEven)
+ /* dqcom052 */ self.compare128("20", "-10", "1", .toNearestOrEven)
+ /* dqcom053 */ self.compare128("20", "00", "1", .toNearestOrEven)
+ /* dqcom055 */ self.compare128("20", "10", "1", .toNearestOrEven)
+ /* dqcom056 */ self.compare128("20", "20", "0", .toNearestOrEven)
+ /* dqcom061 */ self.compare128("-2.0", "-2.0", "0", .toNearestOrEven)
+ /* dqcom062 */ self.compare128("-2.0", "-1.0", "-1", .toNearestOrEven)
+ /* dqcom063 */ self.compare128("-2.0", "0.0", "-1", .toNearestOrEven)
+ /* dqcom064 */ self.compare128("-2.0", "1.0", "-1", .toNearestOrEven)
+ /* dqcom065 */ self.compare128("-2.0", "2.0", "-1", .toNearestOrEven)
+ /* dqcom066 */ self.compare128("-1.0", "-2.0", "1", .toNearestOrEven)
+ /* dqcom067 */ self.compare128("-1.0", "-1.0", "0", .toNearestOrEven)
+ /* dqcom068 */ self.compare128("-1.0", "0.0", "-1", .toNearestOrEven)
+ /* dqcom069 */ self.compare128("-1.0", "1.0", "-1", .toNearestOrEven)
+ /* dqcom070 */ self.compare128("-1.0", "2.0", "-1", .toNearestOrEven)
+ /* dqcom071 */ self.compare128("0.0", "-2.0", "1", .toNearestOrEven)
+ /* dqcom072 */ self.compare128("0.0", "-1.0", "1", .toNearestOrEven)
+ /* dqcom073 */ self.compare128("0.0", "0.0", "0", .toNearestOrEven)
+ /* dqcom074 */ self.compare128("0.0", "1.0", "-1", .toNearestOrEven)
+ /* dqcom075 */ self.compare128("0.0", "2.0", "-1", .toNearestOrEven)
+ /* dqcom076 */ self.compare128("1.0", "-2.0", "1", .toNearestOrEven)
+ /* dqcom077 */ self.compare128("1.0", "-1.0", "1", .toNearestOrEven)
+ /* dqcom078 */ self.compare128("1.0", "0.0", "1", .toNearestOrEven)
+ /* dqcom079 */ self.compare128("1.0", "1.0", "0", .toNearestOrEven)
+ /* dqcom080 */ self.compare128("1.0", "2.0", "-1", .toNearestOrEven)
+ /* dqcom081 */ self.compare128("2.0", "-2.0", "1", .toNearestOrEven)
+ /* dqcom082 */ self.compare128("2.0", "-1.0", "1", .toNearestOrEven)
+ /* dqcom083 */ self.compare128("2.0", "0.0", "1", .toNearestOrEven)
+ /* dqcom085 */ self.compare128("2.0", "1.0", "1", .toNearestOrEven)
+ /* dqcom086 */ self.compare128("2.0", "2.0", "0", .toNearestOrEven)
+ /* dqcom090 */ self.compare128("9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", "0", .toNearestOrEven)
+ /* dqcom091 */ self.compare128("-9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", "-1", .toNearestOrEven)
+ /* dqcom092 */ self.compare128("9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", "1", .toNearestOrEven)
+ /* dqcom093 */ self.compare128("-9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", "0", .toNearestOrEven)
+ /* dqcom100 */ self.compare128("7.0", "7.0", "0", .toNearestOrEven)
+ /* dqcom101 */ self.compare128("7.0", "7", "0", .toNearestOrEven)
+ /* dqcom102 */ self.compare128("7", "7.0", "0", .toNearestOrEven)
+ /* dqcom103 */ self.compare128("7E+0", "7.0", "0", .toNearestOrEven)
+ /* dqcom104 */ self.compare128("70E-1", "7.0", "0", .toNearestOrEven)
+ /* dqcom105 */ self.compare128("0.7E+1", "7", "0", .toNearestOrEven)
+ /* dqcom106 */ self.compare128("70E-1", "7", "0", .toNearestOrEven)
+ /* dqcom107 */ self.compare128("7.0", "7E+0", "0", .toNearestOrEven)
+ /* dqcom108 */ self.compare128("7.0", "70E-1", "0", .toNearestOrEven)
+ /* dqcom109 */ self.compare128("7", "0.7E+1", "0", .toNearestOrEven)
+ /* dqcom110 */ self.compare128("7", "70E-1", "0", .toNearestOrEven)
+ /* dqcom120 */ self.compare128("8.0", "7.0", "1", .toNearestOrEven)
+ /* dqcom121 */ self.compare128("8.0", "7", "1", .toNearestOrEven)
+ /* dqcom122 */ self.compare128("8", "7.0", "1", .toNearestOrEven)
+ /* dqcom123 */ self.compare128("8E+0", "7.0", "1", .toNearestOrEven)
+ /* dqcom124 */ self.compare128("80E-1", "7.0", "1", .toNearestOrEven)
+ /* dqcom125 */ self.compare128("0.8E+1", "7", "1", .toNearestOrEven)
+ /* dqcom126 */ self.compare128("80E-1", "7", "1", .toNearestOrEven)
+ /* dqcom127 */ self.compare128("8.0", "7E+0", "1", .toNearestOrEven)
+ /* dqcom128 */ self.compare128("8.0", "70E-1", "1", .toNearestOrEven)
+ /* dqcom129 */ self.compare128("8", "0.7E+1", "1", .toNearestOrEven)
+ /* dqcom130 */ self.compare128("8", "70E-1", "1", .toNearestOrEven)
+ /* dqcom140 */ self.compare128("8.0", "9.0", "-1", .toNearestOrEven)
+ /* dqcom141 */ self.compare128("8.0", "9", "-1", .toNearestOrEven)
+ /* dqcom142 */ self.compare128("8", "9.0", "-1", .toNearestOrEven)
+ /* dqcom143 */ self.compare128("8E+0", "9.0", "-1", .toNearestOrEven)
+ /* dqcom144 */ self.compare128("80E-1", "9.0", "-1", .toNearestOrEven)
+ /* dqcom145 */ self.compare128("0.8E+1", "9", "-1", .toNearestOrEven)
+ /* dqcom146 */ self.compare128("80E-1", "9", "-1", .toNearestOrEven)
+ /* dqcom147 */ self.compare128("8.0", "9E+0", "-1", .toNearestOrEven)
+ /* dqcom148 */ self.compare128("8.0", "90E-1", "-1", .toNearestOrEven)
+ /* dqcom149 */ self.compare128("8", "0.9E+1", "-1", .toNearestOrEven)
+ /* dqcom150 */ self.compare128("8", "90E-1", "-1", .toNearestOrEven)
+ /* dqcom200 */ self.compare128("-7.0", "7.0", "-1", .toNearestOrEven)
+ /* dqcom201 */ self.compare128("-7.0", "7", "-1", .toNearestOrEven)
+ /* dqcom202 */ self.compare128("-7", "7.0", "-1", .toNearestOrEven)
+ /* dqcom203 */ self.compare128("-7E+0", "7.0", "-1", .toNearestOrEven)
+ /* dqcom204 */ self.compare128("-70E-1", "7.0", "-1", .toNearestOrEven)
+ /* dqcom205 */ self.compare128("-0.7E+1", "7", "-1", .toNearestOrEven)
+ /* dqcom206 */ self.compare128("-70E-1", "7", "-1", .toNearestOrEven)
+ /* dqcom207 */ self.compare128("-7.0", "7E+0", "-1", .toNearestOrEven)
+ /* dqcom208 */ self.compare128("-7.0", "70E-1", "-1", .toNearestOrEven)
+ /* dqcom209 */ self.compare128("-7", "0.7E+1", "-1", .toNearestOrEven)
+ /* dqcom210 */ self.compare128("-7", "70E-1", "-1", .toNearestOrEven)
+ /* dqcom220 */ self.compare128("-8.0", "7.0", "-1", .toNearestOrEven)
+ /* dqcom221 */ self.compare128("-8.0", "7", "-1", .toNearestOrEven)
+ /* dqcom222 */ self.compare128("-8", "7.0", "-1", .toNearestOrEven)
+ /* dqcom223 */ self.compare128("-8E+0", "7.0", "-1", .toNearestOrEven)
+ /* dqcom224 */ self.compare128("-80E-1", "7.0", "-1", .toNearestOrEven)
+ /* dqcom225 */ self.compare128("-0.8E+1", "7", "-1", .toNearestOrEven)
+ /* dqcom226 */ self.compare128("-80E-1", "7", "-1", .toNearestOrEven)
+ /* dqcom227 */ self.compare128("-8.0", "7E+0", "-1", .toNearestOrEven)
+ /* dqcom228 */ self.compare128("-8.0", "70E-1", "-1", .toNearestOrEven)
+ /* dqcom229 */ self.compare128("-8", "0.7E+1", "-1", .toNearestOrEven)
+ /* dqcom230 */ self.compare128("-8", "70E-1", "-1", .toNearestOrEven)
+ /* dqcom240 */ self.compare128("-8.0", "9.0", "-1", .toNearestOrEven)
+ /* dqcom241 */ self.compare128("-8.0", "9", "-1", .toNearestOrEven)
+ /* dqcom242 */ self.compare128("-8", "9.0", "-1", .toNearestOrEven)
+ /* dqcom243 */ self.compare128("-8E+0", "9.0", "-1", .toNearestOrEven)
+ /* dqcom244 */ self.compare128("-80E-1", "9.0", "-1", .toNearestOrEven)
+ /* dqcom245 */ self.compare128("-0.8E+1", "9", "-1", .toNearestOrEven)
+ /* dqcom246 */ self.compare128("-80E-1", "9", "-1", .toNearestOrEven)
+ /* dqcom247 */ self.compare128("-8.0", "9E+0", "-1", .toNearestOrEven)
+ /* dqcom248 */ self.compare128("-8.0", "90E-1", "-1", .toNearestOrEven)
+ /* dqcom249 */ self.compare128("-8", "0.9E+1", "-1", .toNearestOrEven)
+ /* dqcom250 */ self.compare128("-8", "90E-1", "-1", .toNearestOrEven)
+ /* dqcom300 */ self.compare128("7.0", "-7.0", "1", .toNearestOrEven)
+ /* dqcom301 */ self.compare128("7.0", "-7", "1", .toNearestOrEven)
+ /* dqcom302 */ self.compare128("7", "-7.0", "1", .toNearestOrEven)
+ /* dqcom303 */ self.compare128("7E+0", "-7.0", "1", .toNearestOrEven)
+ /* dqcom304 */ self.compare128("70E-1", "-7.0", "1", .toNearestOrEven)
+ /* dqcom305 */ self.compare128(".7E+1", "-7", "1", .toNearestOrEven)
+ /* dqcom306 */ self.compare128("70E-1", "-7", "1", .toNearestOrEven)
+ /* dqcom307 */ self.compare128("7.0", "-7E+0", "1", .toNearestOrEven)
+ /* dqcom308 */ self.compare128("7.0", "-70E-1", "1", .toNearestOrEven)
+ /* dqcom309 */ self.compare128("7", "-.7E+1", "1", .toNearestOrEven)
+ /* dqcom310 */ self.compare128("7", "-70E-1", "1", .toNearestOrEven)
+ /* dqcom320 */ self.compare128("8.0", "-7.0", "1", .toNearestOrEven)
+ /* dqcom321 */ self.compare128("8.0", "-7", "1", .toNearestOrEven)
+ /* dqcom322 */ self.compare128("8", "-7.0", "1", .toNearestOrEven)
+ /* dqcom323 */ self.compare128("8E+0", "-7.0", "1", .toNearestOrEven)
+ /* dqcom324 */ self.compare128("80E-1", "-7.0", "1", .toNearestOrEven)
+ /* dqcom325 */ self.compare128(".8E+1", "-7", "1", .toNearestOrEven)
+ /* dqcom326 */ self.compare128("80E-1", "-7", "1", .toNearestOrEven)
+ /* dqcom327 */ self.compare128("8.0", "-7E+0", "1", .toNearestOrEven)
+ /* dqcom328 */ self.compare128("8.0", "-70E-1", "1", .toNearestOrEven)
+ /* dqcom329 */ self.compare128("8", "-.7E+1", "1", .toNearestOrEven)
+ /* dqcom330 */ self.compare128("8", "-70E-1", "1", .toNearestOrEven)
+ /* dqcom340 */ self.compare128("8.0", "-9.0", "1", .toNearestOrEven)
+ /* dqcom341 */ self.compare128("8.0", "-9", "1", .toNearestOrEven)
+ /* dqcom342 */ self.compare128("8", "-9.0", "1", .toNearestOrEven)
+ /* dqcom343 */ self.compare128("8E+0", "-9.0", "1", .toNearestOrEven)
+ /* dqcom344 */ self.compare128("80E-1", "-9.0", "1", .toNearestOrEven)
+ /* dqcom345 */ self.compare128(".8E+1", "-9", "1", .toNearestOrEven)
+ /* dqcom346 */ self.compare128("80E-1", "-9", "1", .toNearestOrEven)
+ /* dqcom347 */ self.compare128("8.0", "-9E+0", "1", .toNearestOrEven)
+ /* dqcom348 */ self.compare128("8.0", "-90E-1", "1", .toNearestOrEven)
+ /* dqcom349 */ self.compare128("8", "-.9E+1", "1", .toNearestOrEven)
+ /* dqcom350 */ self.compare128("8", "-90E-1", "1", .toNearestOrEven)
+ /* dqcom400 */ self.compare128("-7.0", "-7.0", "0", .toNearestOrEven)
+ /* dqcom401 */ self.compare128("-7.0", "-7", "0", .toNearestOrEven)
+ /* dqcom402 */ self.compare128("-7", "-7.0", "0", .toNearestOrEven)
+ /* dqcom403 */ self.compare128("-7E+0", "-7.0", "0", .toNearestOrEven)
+ /* dqcom404 */ self.compare128("-70E-1", "-7.0", "0", .toNearestOrEven)
+ /* dqcom405 */ self.compare128("-.7E+1", "-7", "0", .toNearestOrEven)
+ /* dqcom406 */ self.compare128("-70E-1", "-7", "0", .toNearestOrEven)
+ /* dqcom407 */ self.compare128("-7.0", "-7E+0", "0", .toNearestOrEven)
+ /* dqcom408 */ self.compare128("-7.0", "-70E-1", "0", .toNearestOrEven)
+ /* dqcom409 */ self.compare128("-7", "-.7E+1", "0", .toNearestOrEven)
+ /* dqcom410 */ self.compare128("-7", "-70E-1", "0", .toNearestOrEven)
+ /* dqcom420 */ self.compare128("-8.0", "-7.0", "-1", .toNearestOrEven)
+ /* dqcom421 */ self.compare128("-8.0", "-7", "-1", .toNearestOrEven)
+ /* dqcom422 */ self.compare128("-8", "-7.0", "-1", .toNearestOrEven)
+ /* dqcom423 */ self.compare128("-8E+0", "-7.0", "-1", .toNearestOrEven)
+ /* dqcom424 */ self.compare128("-80E-1", "-7.0", "-1", .toNearestOrEven)
+ /* dqcom425 */ self.compare128("-.8E+1", "-7", "-1", .toNearestOrEven)
+ /* dqcom426 */ self.compare128("-80E-1", "-7", "-1", .toNearestOrEven)
+ /* dqcom427 */ self.compare128("-8.0", "-7E+0", "-1", .toNearestOrEven)
+ /* dqcom428 */ self.compare128("-8.0", "-70E-1", "-1", .toNearestOrEven)
+ /* dqcom429 */ self.compare128("-8", "-.7E+1", "-1", .toNearestOrEven)
+ /* dqcom430 */ self.compare128("-8", "-70E-1", "-1", .toNearestOrEven)
+ /* dqcom440 */ self.compare128("-8.0", "-9.0", "1", .toNearestOrEven)
+ /* dqcom441 */ self.compare128("-8.0", "-9", "1", .toNearestOrEven)
+ /* dqcom442 */ self.compare128("-8", "-9.0", "1", .toNearestOrEven)
+ /* dqcom443 */ self.compare128("-8E+0", "-9.0", "1", .toNearestOrEven)
+ /* dqcom444 */ self.compare128("-80E-1", "-9.0", "1", .toNearestOrEven)
+ /* dqcom445 */ self.compare128("-.8E+1", "-9", "1", .toNearestOrEven)
+ /* dqcom446 */ self.compare128("-80E-1", "-9", "1", .toNearestOrEven)
+ /* dqcom447 */ self.compare128("-8.0", "-9E+0", "1", .toNearestOrEven)
+ /* dqcom448 */ self.compare128("-8.0", "-90E-1", "1", .toNearestOrEven)
+ /* dqcom449 */ self.compare128("-8", "-.9E+1", "1", .toNearestOrEven)
+ /* dqcom450 */ self.compare128("-8", "-90E-1", "1", .toNearestOrEven)
+ /* dqcom451 */ self.compare128("1.0", "0.1", "1", .toNearestOrEven)
+ /* dqcom452 */ self.compare128("0.1", "1.0", "-1", .toNearestOrEven)
+ /* dqcom453 */ self.compare128("10.0", "0.1", "1", .toNearestOrEven)
+ /* dqcom454 */ self.compare128("0.1", "10.0", "-1", .toNearestOrEven)
+ /* dqcom455 */ self.compare128("100", "1.0", "1", .toNearestOrEven)
+ /* dqcom456 */ self.compare128("1.0", "100", "-1", .toNearestOrEven)
+ /* dqcom457 */ self.compare128("1000", "10.0", "1", .toNearestOrEven)
+ /* dqcom458 */ self.compare128("10.0", "1000", "-1", .toNearestOrEven)
+ /* dqcom459 */ self.compare128("10000", "100.0", "1", .toNearestOrEven)
+ /* dqcom460 */ self.compare128("100.0", "10000", "-1", .toNearestOrEven)
+ /* dqcom461 */ self.compare128("100000", "1000.0", "1", .toNearestOrEven)
+ /* dqcom462 */ self.compare128("1000.0", "100000", "-1", .toNearestOrEven)
+ /* dqcom463 */ self.compare128("1000000", "10000.0", "1", .toNearestOrEven)
+ /* dqcom464 */ self.compare128("10000.0", "1000000", "-1", .toNearestOrEven)
+ /* dqcom473 */ self.compare128("123.9999999999999999994560000000000E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcom474 */ self.compare128("123.999999999999999999456000000000E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcom475 */ self.compare128("123.99999999999999999945600000000E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcom476 */ self.compare128("123.9999999999999999994560000000E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcom477 */ self.compare128("123.999999999999999999456000000E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcom478 */ self.compare128("123.99999999999999999945600000E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcom479 */ self.compare128("123.9999999999999999994560000E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcom480 */ self.compare128("123.999999999999999999456000E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcom481 */ self.compare128("123.99999999999999999945600E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcom482 */ self.compare128("123.9999999999999999994560E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcom483 */ self.compare128("123.999999999999999999456E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcom487 */ self.compare128("123.999999999999999999456E+89", "123.9999999999999999994560000000000E+89", "0", .toNearestOrEven)
+ /* dqcom488 */ self.compare128("123.999999999999999999456E-89", "123.999999999999999999456000000000E-89", "0", .toNearestOrEven)
+ /* dqcom489 */ self.compare128("123.999999999999999999456E+89", "123.99999999999999999945600000000E+89", "0", .toNearestOrEven)
+ /* dqcom490 */ self.compare128("123.999999999999999999456E-89", "123.9999999999999999994560000000E-89", "0", .toNearestOrEven)
+ /* dqcom491 */ self.compare128("123.999999999999999999456E+89", "123.999999999999999999456000000E+89", "0", .toNearestOrEven)
+ /* dqcom492 */ self.compare128("123.999999999999999999456E-89", "123.99999999999999999945600000E-89", "0", .toNearestOrEven)
+ /* dqcom493 */ self.compare128("123.999999999999999999456E+89", "123.9999999999999999994560000E+89", "0", .toNearestOrEven)
+ /* dqcom494 */ self.compare128("123.999999999999999999456E-89", "123.999999999999999999456000E-89", "0", .toNearestOrEven)
+ /* dqcom495 */ self.compare128("123.999999999999999999456E+89", "123.99999999999999999945600E+89", "0", .toNearestOrEven)
+ /* dqcom496 */ self.compare128("123.999999999999999999456E-89", "123.9999999999999999994560E-89", "0", .toNearestOrEven)
+ /* dqcom497 */ self.compare128("123.999999999999999999456E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcom500 */ self.compare128("1", "1E-15", "1", .toNearestOrEven)
+ /* dqcom501 */ self.compare128("1", "1E-14", "1", .toNearestOrEven)
+ /* dqcom502 */ self.compare128("1", "1E-13", "1", .toNearestOrEven)
+ /* dqcom503 */ self.compare128("1", "1E-12", "1", .toNearestOrEven)
+ /* dqcom504 */ self.compare128("1", "1E-11", "1", .toNearestOrEven)
+ /* dqcom505 */ self.compare128("1", "1E-10", "1", .toNearestOrEven)
+ /* dqcom506 */ self.compare128("1", "1E-9", "1", .toNearestOrEven)
+ /* dqcom507 */ self.compare128("1", "1E-8", "1", .toNearestOrEven)
+ /* dqcom508 */ self.compare128("1", "1E-7", "1", .toNearestOrEven)
+ /* dqcom509 */ self.compare128("1", "1E-6", "1", .toNearestOrEven)
+ /* dqcom510 */ self.compare128("1", "1E-5", "1", .toNearestOrEven)
+ /* dqcom511 */ self.compare128("1", "1E-4", "1", .toNearestOrEven)
+ /* dqcom512 */ self.compare128("1", "1E-3", "1", .toNearestOrEven)
+ /* dqcom513 */ self.compare128("1", "1E-2", "1", .toNearestOrEven)
+ /* dqcom514 */ self.compare128("1", "1E-1", "1", .toNearestOrEven)
+ /* dqcom515 */ self.compare128("1", "1E-0", "0", .toNearestOrEven)
+ /* dqcom516 */ self.compare128("1", "1E+1", "-1", .toNearestOrEven)
+ /* dqcom517 */ self.compare128("1", "1E+2", "-1", .toNearestOrEven)
+ /* dqcom518 */ self.compare128("1", "1E+3", "-1", .toNearestOrEven)
+ /* dqcom519 */ self.compare128("1", "1E+4", "-1", .toNearestOrEven)
+ /* dqcom521 */ self.compare128("1", "1E+5", "-1", .toNearestOrEven)
+ /* dqcom522 */ self.compare128("1", "1E+6", "-1", .toNearestOrEven)
+ /* dqcom523 */ self.compare128("1", "1E+7", "-1", .toNearestOrEven)
+ /* dqcom524 */ self.compare128("1", "1E+8", "-1", .toNearestOrEven)
+ /* dqcom525 */ self.compare128("1", "1E+9", "-1", .toNearestOrEven)
+ /* dqcom526 */ self.compare128("1", "1E+10", "-1", .toNearestOrEven)
+ /* dqcom527 */ self.compare128("1", "1E+11", "-1", .toNearestOrEven)
+ /* dqcom528 */ self.compare128("1", "1E+12", "-1", .toNearestOrEven)
+ /* dqcom529 */ self.compare128("1", "1E+13", "-1", .toNearestOrEven)
+ /* dqcom530 */ self.compare128("1", "1E+14", "-1", .toNearestOrEven)
+ /* dqcom531 */ self.compare128("1", "1E+15", "-1", .toNearestOrEven)
+ /* dqcom540 */ self.compare128("1E-15", "1", "-1", .toNearestOrEven)
+ /* dqcom541 */ self.compare128("1E-14", "1", "-1", .toNearestOrEven)
+ /* dqcom542 */ self.compare128("1E-13", "1", "-1", .toNearestOrEven)
+ /* dqcom543 */ self.compare128("1E-12", "1", "-1", .toNearestOrEven)
+ /* dqcom544 */ self.compare128("1E-11", "1", "-1", .toNearestOrEven)
+ /* dqcom545 */ self.compare128("1E-10", "1", "-1", .toNearestOrEven)
+ /* dqcom546 */ self.compare128("1E-9", "1", "-1", .toNearestOrEven)
+ /* dqcom547 */ self.compare128("1E-8", "1", "-1", .toNearestOrEven)
+ /* dqcom548 */ self.compare128("1E-7", "1", "-1", .toNearestOrEven)
+ /* dqcom549 */ self.compare128("1E-6", "1", "-1", .toNearestOrEven)
+ /* dqcom550 */ self.compare128("1E-5", "1", "-1", .toNearestOrEven)
+ /* dqcom551 */ self.compare128("1E-4", "1", "-1", .toNearestOrEven)
+ /* dqcom552 */ self.compare128("1E-3", "1", "-1", .toNearestOrEven)
+ /* dqcom553 */ self.compare128("1E-2", "1", "-1", .toNearestOrEven)
+ /* dqcom554 */ self.compare128("1E-1", "1", "-1", .toNearestOrEven)
+ /* dqcom555 */ self.compare128("1E-0", "1", "0", .toNearestOrEven)
+ /* dqcom556 */ self.compare128("1E+1", "1", "1", .toNearestOrEven)
+ /* dqcom557 */ self.compare128("1E+2", "1", "1", .toNearestOrEven)
+ /* dqcom558 */ self.compare128("1E+3", "1", "1", .toNearestOrEven)
+ /* dqcom559 */ self.compare128("1E+4", "1", "1", .toNearestOrEven)
+ /* dqcom561 */ self.compare128("1E+5", "1", "1", .toNearestOrEven)
+ /* dqcom562 */ self.compare128("1E+6", "1", "1", .toNearestOrEven)
+ /* dqcom563 */ self.compare128("1E+7", "1", "1", .toNearestOrEven)
+ /* dqcom564 */ self.compare128("1E+8", "1", "1", .toNearestOrEven)
+ /* dqcom565 */ self.compare128("1E+9", "1", "1", .toNearestOrEven)
+ /* dqcom566 */ self.compare128("1E+10", "1", "1", .toNearestOrEven)
+ /* dqcom567 */ self.compare128("1E+11", "1", "1", .toNearestOrEven)
+ /* dqcom568 */ self.compare128("1E+12", "1", "1", .toNearestOrEven)
+ /* dqcom569 */ self.compare128("1E+13", "1", "1", .toNearestOrEven)
+ /* dqcom570 */ self.compare128("1E+14", "1", "1", .toNearestOrEven)
+ /* dqcom571 */ self.compare128("1E+15", "1", "1", .toNearestOrEven)
+ /* dqcom580 */ self.compare128("0.000000987654321", "1E-15", "1", .toNearestOrEven)
+ /* dqcom581 */ self.compare128("0.000000987654321", "1E-14", "1", .toNearestOrEven)
+ /* dqcom582 */ self.compare128("0.000000987654321", "1E-13", "1", .toNearestOrEven)
+ /* dqcom583 */ self.compare128("0.000000987654321", "1E-12", "1", .toNearestOrEven)
+ /* dqcom584 */ self.compare128("0.000000987654321", "1E-11", "1", .toNearestOrEven)
+ /* dqcom585 */ self.compare128("0.000000987654321", "1E-10", "1", .toNearestOrEven)
+ /* dqcom586 */ self.compare128("0.000000987654321", "1E-9", "1", .toNearestOrEven)
+ /* dqcom587 */ self.compare128("0.000000987654321", "1E-8", "1", .toNearestOrEven)
+ /* dqcom588 */ self.compare128("0.000000987654321", "1E-7", "1", .toNearestOrEven)
+ /* dqcom589 */ self.compare128("0.000000987654321", "1E-6", "-1", .toNearestOrEven)
+ /* dqcom590 */ self.compare128("0.000000987654321", "1E-5", "-1", .toNearestOrEven)
+ /* dqcom591 */ self.compare128("0.000000987654321", "1E-4", "-1", .toNearestOrEven)
+ /* dqcom592 */ self.compare128("0.000000987654321", "1E-3", "-1", .toNearestOrEven)
+ /* dqcom593 */ self.compare128("0.000000987654321", "1E-2", "-1", .toNearestOrEven)
+ /* dqcom594 */ self.compare128("0.000000987654321", "1E-1", "-1", .toNearestOrEven)
+ /* dqcom595 */ self.compare128("0.000000987654321", "1E-0", "-1", .toNearestOrEven)
+ /* dqcom596 */ self.compare128("0.000000987654321", "1E+1", "-1", .toNearestOrEven)
+ /* dqcom597 */ self.compare128("0.000000987654321", "1E+2", "-1", .toNearestOrEven)
+ /* dqcom598 */ self.compare128("0.000000987654321", "1E+3", "-1", .toNearestOrEven)
+ /* dqcom599 */ self.compare128("0.000000987654321", "1E+4", "-1", .toNearestOrEven)
+ /* dqcom600 */ self.compare128("12", "12.2345", "-1", .toNearestOrEven)
+ /* dqcom601 */ self.compare128("12.0", "12.2345", "-1", .toNearestOrEven)
+ /* dqcom602 */ self.compare128("12.00", "12.2345", "-1", .toNearestOrEven)
+ /* dqcom603 */ self.compare128("12.000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcom604 */ self.compare128("12.0000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcom605 */ self.compare128("12.00000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcom606 */ self.compare128("12.000000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcom607 */ self.compare128("12.0000000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcom608 */ self.compare128("12.00000000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcom609 */ self.compare128("12.000000000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcom610 */ self.compare128("12.1234", "12", "1", .toNearestOrEven)
+ /* dqcom611 */ self.compare128("12.1234", "12.0", "1", .toNearestOrEven)
+ /* dqcom612 */ self.compare128("12.1234", "12.00", "1", .toNearestOrEven)
+ /* dqcom613 */ self.compare128("12.1234", "12.000", "1", .toNearestOrEven)
+ /* dqcom614 */ self.compare128("12.1234", "12.0000", "1", .toNearestOrEven)
+ /* dqcom615 */ self.compare128("12.1234", "12.00000", "1", .toNearestOrEven)
+ /* dqcom616 */ self.compare128("12.1234", "12.000000", "1", .toNearestOrEven)
+ /* dqcom617 */ self.compare128("12.1234", "12.0000000", "1", .toNearestOrEven)
+ /* dqcom618 */ self.compare128("12.1234", "12.00000000", "1", .toNearestOrEven)
+ /* dqcom619 */ self.compare128("12.1234", "12.000000000", "1", .toNearestOrEven)
+ /* dqcom620 */ self.compare128("-12", "-12.2345", "1", .toNearestOrEven)
+ /* dqcom621 */ self.compare128("-12.0", "-12.2345", "1", .toNearestOrEven)
+ /* dqcom622 */ self.compare128("-12.00", "-12.2345", "1", .toNearestOrEven)
+ /* dqcom623 */ self.compare128("-12.000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcom624 */ self.compare128("-12.0000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcom625 */ self.compare128("-12.00000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcom626 */ self.compare128("-12.000000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcom627 */ self.compare128("-12.0000000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcom628 */ self.compare128("-12.00000000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcom629 */ self.compare128("-12.000000000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcom630 */ self.compare128("-12.1234", "-12", "-1", .toNearestOrEven)
+ /* dqcom631 */ self.compare128("-12.1234", "-12.0", "-1", .toNearestOrEven)
+ /* dqcom632 */ self.compare128("-12.1234", "-12.00", "-1", .toNearestOrEven)
+ /* dqcom633 */ self.compare128("-12.1234", "-12.000", "-1", .toNearestOrEven)
+ /* dqcom634 */ self.compare128("-12.1234", "-12.0000", "-1", .toNearestOrEven)
+ /* dqcom635 */ self.compare128("-12.1234", "-12.00000", "-1", .toNearestOrEven)
+ /* dqcom636 */ self.compare128("-12.1234", "-12.000000", "-1", .toNearestOrEven)
+ /* dqcom637 */ self.compare128("-12.1234", "-12.0000000", "-1", .toNearestOrEven)
+ /* dqcom638 */ self.compare128("-12.1234", "-12.00000000", "-1", .toNearestOrEven)
+ /* dqcom639 */ self.compare128("-12.1234", "-12.000000000", "-1", .toNearestOrEven)
+ /* dqcom640 */ self.compare128("0", "0", "0", .toNearestOrEven)
+ /* dqcom641 */ self.compare128("0", "-0", "0", .toNearestOrEven)
+ /* dqcom642 */ self.compare128("0", "-0.0", "0", .toNearestOrEven)
+ /* dqcom643 */ self.compare128("0", "0.0", "0", .toNearestOrEven)
+ /* dqcom644 */ self.compare128("-0", "0", "0", .toNearestOrEven)
+ /* dqcom645 */ self.compare128("-0", "-0", "0", .toNearestOrEven)
+ /* dqcom646 */ self.compare128("-0", "-0.0", "0", .toNearestOrEven)
+ /* dqcom647 */ self.compare128("-0", "0.0", "0", .toNearestOrEven)
+ /* dqcom648 */ self.compare128("0.0", "0", "0", .toNearestOrEven)
+ /* dqcom649 */ self.compare128("0.0", "-0", "0", .toNearestOrEven)
+ /* dqcom650 */ self.compare128("0.0", "-0.0", "0", .toNearestOrEven)
+ /* dqcom651 */ self.compare128("0.0", "0.0", "0", .toNearestOrEven)
+ /* dqcom652 */ self.compare128("-0.0", "0", "0", .toNearestOrEven)
+ /* dqcom653 */ self.compare128("-0.0", "-0", "0", .toNearestOrEven)
+ /* dqcom654 */ self.compare128("-0.0", "-0.0", "0", .toNearestOrEven)
+ /* dqcom655 */ self.compare128("-0.0", "0.0", "0", .toNearestOrEven)
+ /* dqcom656 */ self.compare128("-0E1", "0.0", "0", .toNearestOrEven)
+ /* dqcom657 */ self.compare128("-0E2", "0.0", "0", .toNearestOrEven)
+ /* dqcom658 */ self.compare128("0E1", "0.0", "0", .toNearestOrEven)
+ /* dqcom659 */ self.compare128("0E2", "0.0", "0", .toNearestOrEven)
+ /* dqcom660 */ self.compare128("-0E1", "0", "0", .toNearestOrEven)
+ /* dqcom661 */ self.compare128("-0E2", "0", "0", .toNearestOrEven)
+ /* dqcom662 */ self.compare128("0E1", "0", "0", .toNearestOrEven)
+ /* dqcom663 */ self.compare128("0E2", "0", "0", .toNearestOrEven)
+ /* dqcom664 */ self.compare128("-0E1", "-0E1", "0", .toNearestOrEven)
+ /* dqcom665 */ self.compare128("-0E2", "-0E1", "0", .toNearestOrEven)
+ /* dqcom666 */ self.compare128("0E1", "-0E1", "0", .toNearestOrEven)
+ /* dqcom667 */ self.compare128("0E2", "-0E1", "0", .toNearestOrEven)
+ /* dqcom668 */ self.compare128("-0E1", "-0E2", "0", .toNearestOrEven)
+ /* dqcom669 */ self.compare128("-0E2", "-0E2", "0", .toNearestOrEven)
+ /* dqcom670 */ self.compare128("0E1", "-0E2", "0", .toNearestOrEven)
+ /* dqcom671 */ self.compare128("0E2", "-0E2", "0", .toNearestOrEven)
+ /* dqcom672 */ self.compare128("-0E1", "0E1", "0", .toNearestOrEven)
+ /* dqcom673 */ self.compare128("-0E2", "0E1", "0", .toNearestOrEven)
+ /* dqcom674 */ self.compare128("0E1", "0E1", "0", .toNearestOrEven)
+ /* dqcom675 */ self.compare128("0E2", "0E1", "0", .toNearestOrEven)
+ /* dqcom676 */ self.compare128("-0E1", "0E2", "0", .toNearestOrEven)
+ /* dqcom677 */ self.compare128("-0E2", "0E2", "0", .toNearestOrEven)
+ /* dqcom678 */ self.compare128("0E1", "0E2", "0", .toNearestOrEven)
+ /* dqcom679 */ self.compare128("0E2", "0E2", "0", .toNearestOrEven)
+ /* dqcom680 */ self.compare128("12", "12", "0", .toNearestOrEven)
+ /* dqcom681 */ self.compare128("12", "12.0", "0", .toNearestOrEven)
+ /* dqcom682 */ self.compare128("12", "12.00", "0", .toNearestOrEven)
+ /* dqcom683 */ self.compare128("12", "12.000", "0", .toNearestOrEven)
+ /* dqcom684 */ self.compare128("12", "12.0000", "0", .toNearestOrEven)
+ /* dqcom685 */ self.compare128("12", "12.00000", "0", .toNearestOrEven)
+ /* dqcom686 */ self.compare128("12", "12.000000", "0", .toNearestOrEven)
+ /* dqcom687 */ self.compare128("12", "12.0000000", "0", .toNearestOrEven)
+ /* dqcom688 */ self.compare128("12", "12.00000000", "0", .toNearestOrEven)
+ /* dqcom689 */ self.compare128("12", "12.000000000", "0", .toNearestOrEven)
+ /* dqcom690 */ self.compare128("12", "12", "0", .toNearestOrEven)
+ /* dqcom691 */ self.compare128("12.0", "12", "0", .toNearestOrEven)
+ /* dqcom692 */ self.compare128("12.00", "12", "0", .toNearestOrEven)
+ /* dqcom693 */ self.compare128("12.000", "12", "0", .toNearestOrEven)
+ /* dqcom694 */ self.compare128("12.0000", "12", "0", .toNearestOrEven)
+ /* dqcom695 */ self.compare128("12.00000", "12", "0", .toNearestOrEven)
+ /* dqcom696 */ self.compare128("12.000000", "12", "0", .toNearestOrEven)
+ /* dqcom697 */ self.compare128("12.0000000", "12", "0", .toNearestOrEven)
+ /* dqcom698 */ self.compare128("12.00000000", "12", "0", .toNearestOrEven)
+ /* dqcom699 */ self.compare128("12.000000000", "12", "0", .toNearestOrEven)
+ /* dqcom700 */ self.compare128("1234567899999999999999999990123456", "1234567899999999999999999990123455", "1", .toNearestOrEven)
+ /* dqcom701 */ self.compare128("1234567899999999999999999990123456", "1234567899999999999999999990123456", "0", .toNearestOrEven)
+ /* dqcom702 */ self.compare128("1234567899999999999999999990123456", "1234567899999999999999999990123457", "-1", .toNearestOrEven)
+ /* dqcom703 */ self.compare128("1234567899999999999999999990123456", "0234567899999999999999999990123456", "1", .toNearestOrEven)
+ /* dqcom704 */ self.compare128("1234567899999999999999999990123456", "1234567899999999999999999990123456", "0", .toNearestOrEven)
+ /* dqcom705 */ self.compare128("1234567899999999999999999990123456", "2234567899999999999999999990123456", "-1", .toNearestOrEven)
+ /* dqcom706 */ self.compare128("1134567899999999999999999990123456", "1034567899999999999999999990123456", "1", .toNearestOrEven)
+ /* dqcom707 */ self.compare128("1134567899999999999999999990123456", "1134567899999999999999999990123456", "0", .toNearestOrEven)
+ /* dqcom708 */ self.compare128("1134567899999999999999999990123456", "1234567899999999999999999990123456", "-1", .toNearestOrEven)
+ /* dqcom721 */ self.compare128("12345678000", "1", "1", .toNearestOrEven)
+ /* dqcom722 */ self.compare128("1", "12345678000", "-1", .toNearestOrEven)
+ /* dqcom723 */ self.compare128("1234567800", "1", "1", .toNearestOrEven)
+ /* dqcom724 */ self.compare128("1", "1234567800", "-1", .toNearestOrEven)
+ /* dqcom725 */ self.compare128("1234567890", "1", "1", .toNearestOrEven)
+ /* dqcom726 */ self.compare128("1", "1234567890", "-1", .toNearestOrEven)
+ /* dqcom727 */ self.compare128("1234567891", "1", "1", .toNearestOrEven)
+ /* dqcom728 */ self.compare128("1", "1234567891", "-1", .toNearestOrEven)
+ /* dqcom729 */ self.compare128("12345678901", "1", "1", .toNearestOrEven)
+ /* dqcom730 */ self.compare128("1", "12345678901", "-1", .toNearestOrEven)
+ /* dqcom731 */ self.compare128("1234567896", "1", "1", .toNearestOrEven)
+ /* dqcom732 */ self.compare128("1", "1234567896", "-1", .toNearestOrEven)
+ /* dqcom740 */ self.compare128("1", "0.9999999", "1", .toNearestOrEven)
+ /* dqcom741 */ self.compare128("1", "0.999999", "1", .toNearestOrEven)
+ /* dqcom742 */ self.compare128("1", "0.99999", "1", .toNearestOrEven)
+ /* dqcom743 */ self.compare128("1", "1.0000", "0", .toNearestOrEven)
+ /* dqcom744 */ self.compare128("1", "1.00001", "-1", .toNearestOrEven)
+ /* dqcom745 */ self.compare128("1", "1.000001", "-1", .toNearestOrEven)
+ /* dqcom746 */ self.compare128("1", "1.0000001", "-1", .toNearestOrEven)
+ /* dqcom750 */ self.compare128("0.9999999", "1", "-1", .toNearestOrEven)
+ /* dqcom751 */ self.compare128("0.999999", "1", "-1", .toNearestOrEven)
+ /* dqcom752 */ self.compare128("0.99999", "1", "-1", .toNearestOrEven)
+ /* dqcom753 */ self.compare128("1.0000", "1", "0", .toNearestOrEven)
+ /* dqcom754 */ self.compare128("1.00001", "1", "1", .toNearestOrEven)
+ /* dqcom755 */ self.compare128("1.000001", "1", "1", .toNearestOrEven)
+ /* dqcom756 */ self.compare128("1.0000001", "1", "1", .toNearestOrEven)
+ /* dqcom780 */ self.compare128("Inf", "-Inf", "1", .toNearestOrEven)
+ /* dqcom781 */ self.compare128("Inf", "-1000", "1", .toNearestOrEven)
+ /* dqcom782 */ self.compare128("Inf", "-1", "1", .toNearestOrEven)
+ /* dqcom783 */ self.compare128("Inf", "-0", "1", .toNearestOrEven)
+ /* dqcom784 */ self.compare128("Inf", "0", "1", .toNearestOrEven)
+ /* dqcom785 */ self.compare128("Inf", "1", "1", .toNearestOrEven)
+ /* dqcom786 */ self.compare128("Inf", "1000", "1", .toNearestOrEven)
+ /* dqcom787 */ self.compare128("Inf", "Inf", "0", .toNearestOrEven)
+ /* dqcom788 */ self.compare128("-1000", "Inf", "-1", .toNearestOrEven)
+ /* dqcom789 */ self.compare128("-Inf", "Inf", "-1", .toNearestOrEven)
+ /* dqcom790 */ self.compare128("-1", "Inf", "-1", .toNearestOrEven)
+ /* dqcom791 */ self.compare128("-0", "Inf", "-1", .toNearestOrEven)
+ /* dqcom792 */ self.compare128("0", "Inf", "-1", .toNearestOrEven)
+ /* dqcom793 */ self.compare128("1", "Inf", "-1", .toNearestOrEven)
+ /* dqcom794 */ self.compare128("1000", "Inf", "-1", .toNearestOrEven)
+ /* dqcom795 */ self.compare128("Inf", "Inf", "0", .toNearestOrEven)
+ /* dqcom800 */ self.compare128("-Inf", "-Inf", "0", .toNearestOrEven)
+ /* dqcom801 */ self.compare128("-Inf", "-1000", "-1", .toNearestOrEven)
+ /* dqcom802 */ self.compare128("-Inf", "-1", "-1", .toNearestOrEven)
+ /* dqcom803 */ self.compare128("-Inf", "-0", "-1", .toNearestOrEven)
+ /* dqcom804 */ self.compare128("-Inf", "0", "-1", .toNearestOrEven)
+ /* dqcom805 */ self.compare128("-Inf", "1", "-1", .toNearestOrEven)
+ /* dqcom806 */ self.compare128("-Inf", "1000", "-1", .toNearestOrEven)
+ /* dqcom807 */ self.compare128("-Inf", "Inf", "-1", .toNearestOrEven)
+ /* dqcom808 */ self.compare128("-Inf", "-Inf", "0", .toNearestOrEven)
+ /* dqcom809 */ self.compare128("-1000", "-Inf", "1", .toNearestOrEven)
+ /* dqcom810 */ self.compare128("-1", "-Inf", "1", .toNearestOrEven)
+ /* dqcom811 */ self.compare128("-0", "-Inf", "1", .toNearestOrEven)
+ /* dqcom812 */ self.compare128("0", "-Inf", "1", .toNearestOrEven)
+ /* dqcom813 */ self.compare128("1", "-Inf", "1", .toNearestOrEven)
+ /* dqcom814 */ self.compare128("1000", "-Inf", "1", .toNearestOrEven)
+ /* dqcom815 */ self.compare128("Inf", "-Inf", "1", .toNearestOrEven)
+ /* dqcom821 */ self.compare128("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* dqcom822 */ self.compare128("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* dqcom823 */ self.compare128("NaN", "-1", "NaN", .toNearestOrEven)
+ /* dqcom824 */ self.compare128("NaN", "-0", "NaN", .toNearestOrEven)
+ /* dqcom825 */ self.compare128("NaN", "0", "NaN", .toNearestOrEven)
+ /* dqcom826 */ self.compare128("NaN", "1", "NaN", .toNearestOrEven)
+ /* dqcom827 */ self.compare128("NaN", "1000", "NaN", .toNearestOrEven)
+ /* dqcom828 */ self.compare128("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* dqcom829 */ self.compare128("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* dqcom830 */ self.compare128("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqcom831 */ self.compare128("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqcom832 */ self.compare128("-1", "NaN", "NaN", .toNearestOrEven)
+ /* dqcom833 */ self.compare128("-0", "NaN", "NaN", .toNearestOrEven)
+ /* dqcom834 */ self.compare128("0", "NaN", "NaN", .toNearestOrEven)
+ /* dqcom835 */ self.compare128("1", "NaN", "NaN", .toNearestOrEven)
+ /* dqcom836 */ self.compare128("1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqcom837 */ self.compare128("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqcom838 */ self.compare128("-NaN", "-NaN", "-NaN", .toNearestOrEven)
+ /* dqcom839 */ self.compare128("+NaN", "-NaN", "NaN", .toNearestOrEven)
+ /* dqcom840 */ self.compare128("-NaN", "+NaN", "-NaN", .toNearestOrEven)
+ /* dqcom841 */ self.compare128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom842 */ self.compare128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom843 */ self.compare128("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom844 */ self.compare128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom845 */ self.compare128("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom846 */ self.compare128("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom847 */ self.compare128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom848 */ self.compare128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom849 */ self.compare128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom850 */ self.compare128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom851 */ self.compare128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom852 */ self.compare128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom853 */ self.compare128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom854 */ self.compare128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom855 */ self.compare128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom856 */ self.compare128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom857 */ self.compare128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom858 */ self.compare128("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom859 */ self.compare128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom860 */ self.compare128("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrEven)
+ /* dqcom861 */ self.compare128("NaN(0x8)", "999", "NaN(0x8)", .toNearestOrEven)
+ /* dqcom862 */ self.compare128("NaN(0x4d)", "Inf", "NaN(0x4d)", .toNearestOrEven)
+ /* dqcom863 */ self.compare128("-NaN(0x43)", "NaN(0x5)", "-NaN(0x43)", .toNearestOrEven)
+ /* dqcom864 */ self.compare128("-Inf", "-NaN(0x4)", "-NaN(0x4)", .toNearestOrEven)
+ /* dqcom865 */ self.compare128("-999", "-NaN(0x21)", "-NaN(0x21)", .toNearestOrEven)
+ /* dqcom866 */ self.compare128("Inf", "NaN(0x2)", "NaN(0x2)", .toNearestOrEven)
+ /* dqcom867 */ self.compare128("-NaN(0x29)", "-NaN(0x2a)", "-NaN(0x29)", .toNearestOrEven)
+ /* dqcom868 */ self.compare128("+NaN(0x29)", "-NaN(0x2a)", "NaN(0x29)", .toNearestOrEven)
+ /* dqcom869 */ self.compare128("-NaN(0x29)", "+NaN(0x2a)", "-NaN(0x29)", .toNearestOrEven)
+ /* dqcom870 */ self.compare128("+NaN(0x29)", "+NaN(0x2a)", "NaN(0x29)", .toNearestOrEven)
+ /* dqcom871 */ self.compare128("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom872 */ self.compare128("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom873 */ self.compare128("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom874 */ self.compare128("sNaN(0x10)", "sNaN(0x5e)", "NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom875 */ self.compare128("NaN(0x55)", "sNaN(0x53)", "NaN(0x53)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom876 */ self.compare128("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom877 */ self.compare128("088", "sNaN(0x51)", "NaN(0x51)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom878 */ self.compare128("Inf", "sNaN(0x5a)", "NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom879 */ self.compare128("NaN", "-sNaN(0x59)", "-NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcom880 */ self.compare128("+1.23456789012345E-0", "9E+6144", "-1", .toNearestOrEven)
+ /* dqcom881 */ self.compare128("9E+6144", "+1.23456789012345E-0", "1", .toNearestOrEven)
+ /* dqcom882 */ self.compare128("+0.100", "9E-6143", "1", .toNearestOrEven)
+ /* dqcom883 */ self.compare128("9E-6143", "+0.100", "-1", .toNearestOrEven)
+ /* dqcom885 */ self.compare128("-1.23456789012345E-0", "9E+6144", "-1", .toNearestOrEven)
+ /* dqcom886 */ self.compare128("9E+6144", "-1.23456789012345E-0", "1", .toNearestOrEven)
+ /* dqcom887 */ self.compare128("-0.100", "9E-6143", "-1", .toNearestOrEven)
+ /* dqcom888 */ self.compare128("9E-6143", "-0.100", "1", .toNearestOrEven)
+ /* dqcom901 */ self.compare128("1e+77", "1e+11", "1", .toNearestOrEven)
+ /* dqcom902 */ self.compare128("1e+77", "-1e+11", "1", .toNearestOrEven)
+ /* dqcom903 */ self.compare128("-1e+77", "1e+11", "-1", .toNearestOrEven)
+ /* dqcom904 */ self.compare128("-1e+77", "-1e+11", "-1", .toNearestOrEven)
+ /* dqcom905 */ self.compare128("1e-77", "1e-11", "-1", .toNearestOrEven)
+ /* dqcom906 */ self.compare128("1e-77", "-1e-11", "1", .toNearestOrEven)
+ /* dqcom907 */ self.compare128("-1e-77", "1e-11", "-1", .toNearestOrEven)
+ /* dqcom908 */ self.compare128("-1e-77", "-1e-11", "1", .toNearestOrEven)
+ /* dqcomp1001 */ self.compare128("1", "1.000000000000000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1002 */ self.compare128("1", "1.00000000000000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1003 */ self.compare128("1", "1.0000000000000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1004 */ self.compare128("1", "1.000000000000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1005 */ self.compare128("1", "1.00000000000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1006 */ self.compare128("1", "1.0000000000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1007 */ self.compare128("1", "1.000000000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1008 */ self.compare128("1", "1.00000000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1009 */ self.compare128("1", "1.0000000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1010 */ self.compare128("1", "1.000000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1011 */ self.compare128("1", "1.00000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1012 */ self.compare128("1", "1.0000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1013 */ self.compare128("1", "1.000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1014 */ self.compare128("1", "1.00000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1015 */ self.compare128("1", "1.0000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1016 */ self.compare128("1", "1.000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1017 */ self.compare128("1", "1.00000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1018 */ self.compare128("1", "1.0000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1019 */ self.compare128("1", "1.000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1020 */ self.compare128("1", "1.00000000000000", "0", .toNearestOrEven)
+ /* dqcomp1021 */ self.compare128("1", "1.0000000000000", "0", .toNearestOrEven)
+ /* dqcomp1022 */ self.compare128("1", "1.000000000000", "0", .toNearestOrEven)
+ /* dqcomp1023 */ self.compare128("1", "1.00000000000", "0", .toNearestOrEven)
+ /* dqcomp1024 */ self.compare128("1", "1.0000000000", "0", .toNearestOrEven)
+ /* dqcomp1025 */ self.compare128("1", "1.000000000", "0", .toNearestOrEven)
+ /* dqcomp1026 */ self.compare128("1", "1.00000000", "0", .toNearestOrEven)
+ /* dqcomp1027 */ self.compare128("1", "1.0000000", "0", .toNearestOrEven)
+ /* dqcomp1028 */ self.compare128("1", "1.000000", "0", .toNearestOrEven)
+ /* dqcomp1029 */ self.compare128("1", "1.00000", "0", .toNearestOrEven)
+ /* dqcomp1030 */ self.compare128("1", "1.0000", "0", .toNearestOrEven)
+ /* dqcomp1031 */ self.compare128("1", "1.000", "0", .toNearestOrEven)
+ /* dqcomp1032 */ self.compare128("1", "1.00", "0", .toNearestOrEven)
+ /* dqcomp1033 */ self.compare128("1", "1.0", "0", .toNearestOrEven)
+ /* dqcomp1041 */ self.compare128("1.000000000000000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1042 */ self.compare128("1.00000000000000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1043 */ self.compare128("1.0000000000000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1044 */ self.compare128("1.000000000000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1045 */ self.compare128("1.00000000000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1046 */ self.compare128("1.0000000000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1047 */ self.compare128("1.000000000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1048 */ self.compare128("1.00000000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1049 */ self.compare128("1.0000000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1050 */ self.compare128("1.000000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1051 */ self.compare128("1.00000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1052 */ self.compare128("1.0000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1053 */ self.compare128("1.000000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1054 */ self.compare128("1.00000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1055 */ self.compare128("1.0000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1056 */ self.compare128("1.000000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1057 */ self.compare128("1.00000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1058 */ self.compare128("1.0000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1059 */ self.compare128("1.000000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1060 */ self.compare128("1.00000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1061 */ self.compare128("1.0000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1062 */ self.compare128("1.000000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1063 */ self.compare128("1.00000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1064 */ self.compare128("1.0000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1065 */ self.compare128("1.000000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1066 */ self.compare128("1.00000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1067 */ self.compare128("1.0000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1068 */ self.compare128("1.000000", "1", "0", .toNearestOrEven)
+ /* dqcomp1069 */ self.compare128("1.00000", "1", "0", .toNearestOrEven)
+ /* dqcomp1070 */ self.compare128("1.0000", "1", "0", .toNearestOrEven)
+ /* dqcomp1071 */ self.compare128("1.000", "1", "0", .toNearestOrEven)
+ /* dqcomp1072 */ self.compare128("1.00", "1", "0", .toNearestOrEven)
+ /* dqcomp1073 */ self.compare128("1.0", "1", "0", .toNearestOrEven)
+ /* dqcomp1080 */ self.compare128("0", "0.000000000000000000000000000000000", "0", .toNearestOrEven)
+ /* dqcomp1081 */ self.compare128("0", "1.000000000000000000000000000000000", "-1", .toNearestOrEven)
+ /* dqcomp1082 */ self.compare128("0", "2.000000000000000000000000000000000", "-1", .toNearestOrEven)
+ /* dqcomp1083 */ self.compare128("0", "3.000000000000000000000000000000000", "-1", .toNearestOrEven)
+ /* dqcomp1084 */ self.compare128("0", "4.000000000000000000000000000000000", "-1", .toNearestOrEven)
+ /* dqcomp1085 */ self.compare128("0", "5.000000000000000000000000000000000", "-1", .toNearestOrEven)
+ /* dqcomp1086 */ self.compare128("0", "6.000000000000000000000000000000000", "-1", .toNearestOrEven)
+ /* dqcomp1087 */ self.compare128("0", "7.000000000000000000000000000000000", "-1", .toNearestOrEven)
+ /* dqcomp1088 */ self.compare128("0", "8.000000000000000000000000000000000", "-1", .toNearestOrEven)
+ /* dqcomp1089 */ self.compare128("0", "9.000000000000000000000000000000000", "-1", .toNearestOrEven)
+ /* dqcomp1090 */ self.compare128("0.000000000000000000000000000000000", "0", "0", .toNearestOrEven)
+ /* dqcomp1091 */ self.compare128("1.000000000000000000000000000000000", "0", "1", .toNearestOrEven)
+ /* dqcomp1092 */ self.compare128("2.000000000000000000000000000000000", "0", "1", .toNearestOrEven)
+ /* dqcomp1093 */ self.compare128("3.000000000000000000000000000000000", "0", "1", .toNearestOrEven)
+ /* dqcomp1094 */ self.compare128("4.000000000000000000000000000000000", "0", "1", .toNearestOrEven)
+ /* dqcomp1095 */ self.compare128("5.000000000000000000000000000000000", "0", "1", .toNearestOrEven)
+ /* dqcomp1096 */ self.compare128("6.000000000000000000000000000000000", "0", "1", .toNearestOrEven)
+ /* dqcomp1097 */ self.compare128("7.000000000000000000000000000000000", "0", "1", .toNearestOrEven)
+ /* dqcomp1098 */ self.compare128("8.000000000000000000000000000000000", "0", "1", .toNearestOrEven)
+ /* dqcomp1099 */ self.compare128("9.000000000000000000000000000000000", "0", "1", .toNearestOrEven)
+ }
+
+ private func compare128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ self.assertCompare(
+ arg0,
+ arg1,
+ status: &status,
+ expected: expected,
+ expectedStatus: expectedStatus,
+ file,
+ line
+ )
+ }
+
+ // MARK: - Comparesig
+
+ func test_comparesig64() {
+ /* ddcan241 */ self.comparesig64("-Inf", "1", "#a238000000000001", .toNearestOrEven)
+ /* ddcan242 */ self.comparesig64("-Inf", "-Inf", "#2238000000000000", .toNearestOrEven)
+ /* ddcan243 */ self.comparesig64("1", "-Inf", "#2238000000000001", .toNearestOrEven)
+ /* ddcan244 */ self.comparesig64("#7c00ff3ffff3fcff", "-1000", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan245 */ self.comparesig64("#7e00ff3ffff3fcff", "-1000", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms001 */ self.comparesig64("-2", "-2", "0", .toNearestOrEven)
+ /* ddcms002 */ self.comparesig64("-2", "-1", "-1", .toNearestOrEven)
+ /* ddcms003 */ self.comparesig64("-2", "0", "-1", .toNearestOrEven)
+ /* ddcms004 */ self.comparesig64("-2", "1", "-1", .toNearestOrEven)
+ /* ddcms005 */ self.comparesig64("-2", "2", "-1", .toNearestOrEven)
+ /* ddcms006 */ self.comparesig64("-1", "-2", "1", .toNearestOrEven)
+ /* ddcms007 */ self.comparesig64("-1", "-1", "0", .toNearestOrEven)
+ /* ddcms008 */ self.comparesig64("-1", "0", "-1", .toNearestOrEven)
+ /* ddcms009 */ self.comparesig64("-1", "1", "-1", .toNearestOrEven)
+ /* ddcms010 */ self.comparesig64("-1", "2", "-1", .toNearestOrEven)
+ /* ddcms011 */ self.comparesig64("0", "-2", "1", .toNearestOrEven)
+ /* ddcms012 */ self.comparesig64("0", "-1", "1", .toNearestOrEven)
+ /* ddcms013 */ self.comparesig64("0", "0", "0", .toNearestOrEven)
+ /* ddcms014 */ self.comparesig64("0", "1", "-1", .toNearestOrEven)
+ /* ddcms015 */ self.comparesig64("0", "2", "-1", .toNearestOrEven)
+ /* ddcms016 */ self.comparesig64("1", "-2", "1", .toNearestOrEven)
+ /* ddcms017 */ self.comparesig64("1", "-1", "1", .toNearestOrEven)
+ /* ddcms018 */ self.comparesig64("1", "0", "1", .toNearestOrEven)
+ /* ddcms019 */ self.comparesig64("1", "1", "0", .toNearestOrEven)
+ /* ddcms020 */ self.comparesig64("1", "2", "-1", .toNearestOrEven)
+ /* ddcms021 */ self.comparesig64("2", "-2", "1", .toNearestOrEven)
+ /* ddcms022 */ self.comparesig64("2", "-1", "1", .toNearestOrEven)
+ /* ddcms023 */ self.comparesig64("2", "0", "1", .toNearestOrEven)
+ /* ddcms025 */ self.comparesig64("2", "1", "1", .toNearestOrEven)
+ /* ddcms026 */ self.comparesig64("2", "2", "0", .toNearestOrEven)
+ /* ddcms031 */ self.comparesig64("-20", "-20", "0", .toNearestOrEven)
+ /* ddcms032 */ self.comparesig64("-20", "-10", "-1", .toNearestOrEven)
+ /* ddcms033 */ self.comparesig64("-20", "00", "-1", .toNearestOrEven)
+ /* ddcms034 */ self.comparesig64("-20", "10", "-1", .toNearestOrEven)
+ /* ddcms035 */ self.comparesig64("-20", "20", "-1", .toNearestOrEven)
+ /* ddcms036 */ self.comparesig64("-10", "-20", "1", .toNearestOrEven)
+ /* ddcms037 */ self.comparesig64("-10", "-10", "0", .toNearestOrEven)
+ /* ddcms038 */ self.comparesig64("-10", "00", "-1", .toNearestOrEven)
+ /* ddcms039 */ self.comparesig64("-10", "10", "-1", .toNearestOrEven)
+ /* ddcms040 */ self.comparesig64("-10", "20", "-1", .toNearestOrEven)
+ /* ddcms041 */ self.comparesig64("00", "-20", "1", .toNearestOrEven)
+ /* ddcms042 */ self.comparesig64("00", "-10", "1", .toNearestOrEven)
+ /* ddcms043 */ self.comparesig64("00", "00", "0", .toNearestOrEven)
+ /* ddcms044 */ self.comparesig64("00", "10", "-1", .toNearestOrEven)
+ /* ddcms045 */ self.comparesig64("00", "20", "-1", .toNearestOrEven)
+ /* ddcms046 */ self.comparesig64("10", "-20", "1", .toNearestOrEven)
+ /* ddcms047 */ self.comparesig64("10", "-10", "1", .toNearestOrEven)
+ /* ddcms048 */ self.comparesig64("10", "00", "1", .toNearestOrEven)
+ /* ddcms049 */ self.comparesig64("10", "10", "0", .toNearestOrEven)
+ /* ddcms050 */ self.comparesig64("10", "20", "-1", .toNearestOrEven)
+ /* ddcms051 */ self.comparesig64("20", "-20", "1", .toNearestOrEven)
+ /* ddcms052 */ self.comparesig64("20", "-10", "1", .toNearestOrEven)
+ /* ddcms053 */ self.comparesig64("20", "00", "1", .toNearestOrEven)
+ /* ddcms055 */ self.comparesig64("20", "10", "1", .toNearestOrEven)
+ /* ddcms056 */ self.comparesig64("20", "20", "0", .toNearestOrEven)
+ /* ddcms061 */ self.comparesig64("-2.0", "-2.0", "0", .toNearestOrEven)
+ /* ddcms062 */ self.comparesig64("-2.0", "-1.0", "-1", .toNearestOrEven)
+ /* ddcms063 */ self.comparesig64("-2.0", "0.0", "-1", .toNearestOrEven)
+ /* ddcms064 */ self.comparesig64("-2.0", "1.0", "-1", .toNearestOrEven)
+ /* ddcms065 */ self.comparesig64("-2.0", "2.0", "-1", .toNearestOrEven)
+ /* ddcms066 */ self.comparesig64("-1.0", "-2.0", "1", .toNearestOrEven)
+ /* ddcms067 */ self.comparesig64("-1.0", "-1.0", "0", .toNearestOrEven)
+ /* ddcms068 */ self.comparesig64("-1.0", "0.0", "-1", .toNearestOrEven)
+ /* ddcms069 */ self.comparesig64("-1.0", "1.0", "-1", .toNearestOrEven)
+ /* ddcms070 */ self.comparesig64("-1.0", "2.0", "-1", .toNearestOrEven)
+ /* ddcms071 */ self.comparesig64("0.0", "-2.0", "1", .toNearestOrEven)
+ /* ddcms072 */ self.comparesig64("0.0", "-1.0", "1", .toNearestOrEven)
+ /* ddcms073 */ self.comparesig64("0.0", "0.0", "0", .toNearestOrEven)
+ /* ddcms074 */ self.comparesig64("0.0", "1.0", "-1", .toNearestOrEven)
+ /* ddcms075 */ self.comparesig64("0.0", "2.0", "-1", .toNearestOrEven)
+ /* ddcms076 */ self.comparesig64("1.0", "-2.0", "1", .toNearestOrEven)
+ /* ddcms077 */ self.comparesig64("1.0", "-1.0", "1", .toNearestOrEven)
+ /* ddcms078 */ self.comparesig64("1.0", "0.0", "1", .toNearestOrEven)
+ /* ddcms079 */ self.comparesig64("1.0", "1.0", "0", .toNearestOrEven)
+ /* ddcms080 */ self.comparesig64("1.0", "2.0", "-1", .toNearestOrEven)
+ /* ddcms081 */ self.comparesig64("2.0", "-2.0", "1", .toNearestOrEven)
+ /* ddcms082 */ self.comparesig64("2.0", "-1.0", "1", .toNearestOrEven)
+ /* ddcms083 */ self.comparesig64("2.0", "0.0", "1", .toNearestOrEven)
+ /* ddcms085 */ self.comparesig64("2.0", "1.0", "1", .toNearestOrEven)
+ /* ddcms086 */ self.comparesig64("2.0", "2.0", "0", .toNearestOrEven)
+ /* ddcms090 */ self.comparesig64("9.999999999999999E+384", "9.999999999999999E+384", "0", .toNearestOrEven)
+ /* ddcms091 */ self.comparesig64("-9.999999999999999E+384", "9.999999999999999E+384", "-1", .toNearestOrEven)
+ /* ddcms092 */ self.comparesig64("9.999999999999999E+384", "-9.999999999999999E+384", "1", .toNearestOrEven)
+ /* ddcms093 */ self.comparesig64("-9.999999999999999E+384", "-9.999999999999999E+384", "0", .toNearestOrEven)
+ /* ddcms100 */ self.comparesig64("7.0", "7.0", "0", .toNearestOrEven)
+ /* ddcms101 */ self.comparesig64("7.0", "7", "0", .toNearestOrEven)
+ /* ddcms102 */ self.comparesig64("7", "7.0", "0", .toNearestOrEven)
+ /* ddcms103 */ self.comparesig64("7E+0", "7.0", "0", .toNearestOrEven)
+ /* ddcms104 */ self.comparesig64("70E-1", "7.0", "0", .toNearestOrEven)
+ /* ddcms105 */ self.comparesig64("0.7E+1", "7", "0", .toNearestOrEven)
+ /* ddcms106 */ self.comparesig64("70E-1", "7", "0", .toNearestOrEven)
+ /* ddcms107 */ self.comparesig64("7.0", "7E+0", "0", .toNearestOrEven)
+ /* ddcms108 */ self.comparesig64("7.0", "70E-1", "0", .toNearestOrEven)
+ /* ddcms109 */ self.comparesig64("7", "0.7E+1", "0", .toNearestOrEven)
+ /* ddcms110 */ self.comparesig64("7", "70E-1", "0", .toNearestOrEven)
+ /* ddcms120 */ self.comparesig64("8.0", "7.0", "1", .toNearestOrEven)
+ /* ddcms121 */ self.comparesig64("8.0", "7", "1", .toNearestOrEven)
+ /* ddcms122 */ self.comparesig64("8", "7.0", "1", .toNearestOrEven)
+ /* ddcms123 */ self.comparesig64("8E+0", "7.0", "1", .toNearestOrEven)
+ /* ddcms124 */ self.comparesig64("80E-1", "7.0", "1", .toNearestOrEven)
+ /* ddcms125 */ self.comparesig64("0.8E+1", "7", "1", .toNearestOrEven)
+ /* ddcms126 */ self.comparesig64("80E-1", "7", "1", .toNearestOrEven)
+ /* ddcms127 */ self.comparesig64("8.0", "7E+0", "1", .toNearestOrEven)
+ /* ddcms128 */ self.comparesig64("8.0", "70E-1", "1", .toNearestOrEven)
+ /* ddcms129 */ self.comparesig64("8", "0.7E+1", "1", .toNearestOrEven)
+ /* ddcms130 */ self.comparesig64("8", "70E-1", "1", .toNearestOrEven)
+ /* ddcms140 */ self.comparesig64("8.0", "9.0", "-1", .toNearestOrEven)
+ /* ddcms141 */ self.comparesig64("8.0", "9", "-1", .toNearestOrEven)
+ /* ddcms142 */ self.comparesig64("8", "9.0", "-1", .toNearestOrEven)
+ /* ddcms143 */ self.comparesig64("8E+0", "9.0", "-1", .toNearestOrEven)
+ /* ddcms144 */ self.comparesig64("80E-1", "9.0", "-1", .toNearestOrEven)
+ /* ddcms145 */ self.comparesig64("0.8E+1", "9", "-1", .toNearestOrEven)
+ /* ddcms146 */ self.comparesig64("80E-1", "9", "-1", .toNearestOrEven)
+ /* ddcms147 */ self.comparesig64("8.0", "9E+0", "-1", .toNearestOrEven)
+ /* ddcms148 */ self.comparesig64("8.0", "90E-1", "-1", .toNearestOrEven)
+ /* ddcms149 */ self.comparesig64("8", "0.9E+1", "-1", .toNearestOrEven)
+ /* ddcms150 */ self.comparesig64("8", "90E-1", "-1", .toNearestOrEven)
+ /* ddcms200 */ self.comparesig64("-7.0", "7.0", "-1", .toNearestOrEven)
+ /* ddcms201 */ self.comparesig64("-7.0", "7", "-1", .toNearestOrEven)
+ /* ddcms202 */ self.comparesig64("-7", "7.0", "-1", .toNearestOrEven)
+ /* ddcms203 */ self.comparesig64("-7E+0", "7.0", "-1", .toNearestOrEven)
+ /* ddcms204 */ self.comparesig64("-70E-1", "7.0", "-1", .toNearestOrEven)
+ /* ddcms205 */ self.comparesig64("-0.7E+1", "7", "-1", .toNearestOrEven)
+ /* ddcms206 */ self.comparesig64("-70E-1", "7", "-1", .toNearestOrEven)
+ /* ddcms207 */ self.comparesig64("-7.0", "7E+0", "-1", .toNearestOrEven)
+ /* ddcms208 */ self.comparesig64("-7.0", "70E-1", "-1", .toNearestOrEven)
+ /* ddcms209 */ self.comparesig64("-7", "0.7E+1", "-1", .toNearestOrEven)
+ /* ddcms210 */ self.comparesig64("-7", "70E-1", "-1", .toNearestOrEven)
+ /* ddcms220 */ self.comparesig64("-8.0", "7.0", "-1", .toNearestOrEven)
+ /* ddcms221 */ self.comparesig64("-8.0", "7", "-1", .toNearestOrEven)
+ /* ddcms222 */ self.comparesig64("-8", "7.0", "-1", .toNearestOrEven)
+ /* ddcms223 */ self.comparesig64("-8E+0", "7.0", "-1", .toNearestOrEven)
+ /* ddcms224 */ self.comparesig64("-80E-1", "7.0", "-1", .toNearestOrEven)
+ /* ddcms225 */ self.comparesig64("-0.8E+1", "7", "-1", .toNearestOrEven)
+ /* ddcms226 */ self.comparesig64("-80E-1", "7", "-1", .toNearestOrEven)
+ /* ddcms227 */ self.comparesig64("-8.0", "7E+0", "-1", .toNearestOrEven)
+ /* ddcms228 */ self.comparesig64("-8.0", "70E-1", "-1", .toNearestOrEven)
+ /* ddcms229 */ self.comparesig64("-8", "0.7E+1", "-1", .toNearestOrEven)
+ /* ddcms230 */ self.comparesig64("-8", "70E-1", "-1", .toNearestOrEven)
+ /* ddcms240 */ self.comparesig64("-8.0", "9.0", "-1", .toNearestOrEven)
+ /* ddcms241 */ self.comparesig64("-8.0", "9", "-1", .toNearestOrEven)
+ /* ddcms242 */ self.comparesig64("-8", "9.0", "-1", .toNearestOrEven)
+ /* ddcms243 */ self.comparesig64("-8E+0", "9.0", "-1", .toNearestOrEven)
+ /* ddcms244 */ self.comparesig64("-80E-1", "9.0", "-1", .toNearestOrEven)
+ /* ddcms245 */ self.comparesig64("-0.8E+1", "9", "-1", .toNearestOrEven)
+ /* ddcms246 */ self.comparesig64("-80E-1", "9", "-1", .toNearestOrEven)
+ /* ddcms247 */ self.comparesig64("-8.0", "9E+0", "-1", .toNearestOrEven)
+ /* ddcms248 */ self.comparesig64("-8.0", "90E-1", "-1", .toNearestOrEven)
+ /* ddcms249 */ self.comparesig64("-8", "0.9E+1", "-1", .toNearestOrEven)
+ /* ddcms250 */ self.comparesig64("-8", "90E-1", "-1", .toNearestOrEven)
+ /* ddcms300 */ self.comparesig64("7.0", "-7.0", "1", .toNearestOrEven)
+ /* ddcms301 */ self.comparesig64("7.0", "-7", "1", .toNearestOrEven)
+ /* ddcms302 */ self.comparesig64("7", "-7.0", "1", .toNearestOrEven)
+ /* ddcms303 */ self.comparesig64("7E+0", "-7.0", "1", .toNearestOrEven)
+ /* ddcms304 */ self.comparesig64("70E-1", "-7.0", "1", .toNearestOrEven)
+ /* ddcms305 */ self.comparesig64(".7E+1", "-7", "1", .toNearestOrEven)
+ /* ddcms306 */ self.comparesig64("70E-1", "-7", "1", .toNearestOrEven)
+ /* ddcms307 */ self.comparesig64("7.0", "-7E+0", "1", .toNearestOrEven)
+ /* ddcms308 */ self.comparesig64("7.0", "-70E-1", "1", .toNearestOrEven)
+ /* ddcms309 */ self.comparesig64("7", "-.7E+1", "1", .toNearestOrEven)
+ /* ddcms310 */ self.comparesig64("7", "-70E-1", "1", .toNearestOrEven)
+ /* ddcms320 */ self.comparesig64("8.0", "-7.0", "1", .toNearestOrEven)
+ /* ddcms321 */ self.comparesig64("8.0", "-7", "1", .toNearestOrEven)
+ /* ddcms322 */ self.comparesig64("8", "-7.0", "1", .toNearestOrEven)
+ /* ddcms323 */ self.comparesig64("8E+0", "-7.0", "1", .toNearestOrEven)
+ /* ddcms324 */ self.comparesig64("80E-1", "-7.0", "1", .toNearestOrEven)
+ /* ddcms325 */ self.comparesig64(".8E+1", "-7", "1", .toNearestOrEven)
+ /* ddcms326 */ self.comparesig64("80E-1", "-7", "1", .toNearestOrEven)
+ /* ddcms327 */ self.comparesig64("8.0", "-7E+0", "1", .toNearestOrEven)
+ /* ddcms328 */ self.comparesig64("8.0", "-70E-1", "1", .toNearestOrEven)
+ /* ddcms329 */ self.comparesig64("8", "-.7E+1", "1", .toNearestOrEven)
+ /* ddcms330 */ self.comparesig64("8", "-70E-1", "1", .toNearestOrEven)
+ /* ddcms340 */ self.comparesig64("8.0", "-9.0", "1", .toNearestOrEven)
+ /* ddcms341 */ self.comparesig64("8.0", "-9", "1", .toNearestOrEven)
+ /* ddcms342 */ self.comparesig64("8", "-9.0", "1", .toNearestOrEven)
+ /* ddcms343 */ self.comparesig64("8E+0", "-9.0", "1", .toNearestOrEven)
+ /* ddcms344 */ self.comparesig64("80E-1", "-9.0", "1", .toNearestOrEven)
+ /* ddcms345 */ self.comparesig64(".8E+1", "-9", "1", .toNearestOrEven)
+ /* ddcms346 */ self.comparesig64("80E-1", "-9", "1", .toNearestOrEven)
+ /* ddcms347 */ self.comparesig64("8.0", "-9E+0", "1", .toNearestOrEven)
+ /* ddcms348 */ self.comparesig64("8.0", "-90E-1", "1", .toNearestOrEven)
+ /* ddcms349 */ self.comparesig64("8", "-.9E+1", "1", .toNearestOrEven)
+ /* ddcms350 */ self.comparesig64("8", "-90E-1", "1", .toNearestOrEven)
+ /* ddcms400 */ self.comparesig64("-7.0", "-7.0", "0", .toNearestOrEven)
+ /* ddcms401 */ self.comparesig64("-7.0", "-7", "0", .toNearestOrEven)
+ /* ddcms402 */ self.comparesig64("-7", "-7.0", "0", .toNearestOrEven)
+ /* ddcms403 */ self.comparesig64("-7E+0", "-7.0", "0", .toNearestOrEven)
+ /* ddcms404 */ self.comparesig64("-70E-1", "-7.0", "0", .toNearestOrEven)
+ /* ddcms405 */ self.comparesig64("-.7E+1", "-7", "0", .toNearestOrEven)
+ /* ddcms406 */ self.comparesig64("-70E-1", "-7", "0", .toNearestOrEven)
+ /* ddcms407 */ self.comparesig64("-7.0", "-7E+0", "0", .toNearestOrEven)
+ /* ddcms408 */ self.comparesig64("-7.0", "-70E-1", "0", .toNearestOrEven)
+ /* ddcms409 */ self.comparesig64("-7", "-.7E+1", "0", .toNearestOrEven)
+ /* ddcms410 */ self.comparesig64("-7", "-70E-1", "0", .toNearestOrEven)
+ /* ddcms420 */ self.comparesig64("-8.0", "-7.0", "-1", .toNearestOrEven)
+ /* ddcms421 */ self.comparesig64("-8.0", "-7", "-1", .toNearestOrEven)
+ /* ddcms422 */ self.comparesig64("-8", "-7.0", "-1", .toNearestOrEven)
+ /* ddcms423 */ self.comparesig64("-8E+0", "-7.0", "-1", .toNearestOrEven)
+ /* ddcms424 */ self.comparesig64("-80E-1", "-7.0", "-1", .toNearestOrEven)
+ /* ddcms425 */ self.comparesig64("-.8E+1", "-7", "-1", .toNearestOrEven)
+ /* ddcms426 */ self.comparesig64("-80E-1", "-7", "-1", .toNearestOrEven)
+ /* ddcms427 */ self.comparesig64("-8.0", "-7E+0", "-1", .toNearestOrEven)
+ /* ddcms428 */ self.comparesig64("-8.0", "-70E-1", "-1", .toNearestOrEven)
+ /* ddcms429 */ self.comparesig64("-8", "-.7E+1", "-1", .toNearestOrEven)
+ /* ddcms430 */ self.comparesig64("-8", "-70E-1", "-1", .toNearestOrEven)
+ /* ddcms440 */ self.comparesig64("-8.0", "-9.0", "1", .toNearestOrEven)
+ /* ddcms441 */ self.comparesig64("-8.0", "-9", "1", .toNearestOrEven)
+ /* ddcms442 */ self.comparesig64("-8", "-9.0", "1", .toNearestOrEven)
+ /* ddcms443 */ self.comparesig64("-8E+0", "-9.0", "1", .toNearestOrEven)
+ /* ddcms444 */ self.comparesig64("-80E-1", "-9.0", "1", .toNearestOrEven)
+ /* ddcms445 */ self.comparesig64("-.8E+1", "-9", "1", .toNearestOrEven)
+ /* ddcms446 */ self.comparesig64("-80E-1", "-9", "1", .toNearestOrEven)
+ /* ddcms447 */ self.comparesig64("-8.0", "-9E+0", "1", .toNearestOrEven)
+ /* ddcms448 */ self.comparesig64("-8.0", "-90E-1", "1", .toNearestOrEven)
+ /* ddcms449 */ self.comparesig64("-8", "-.9E+1", "1", .toNearestOrEven)
+ /* ddcms450 */ self.comparesig64("-8", "-90E-1", "1", .toNearestOrEven)
+ /* ddcms473 */ self.comparesig64("123.4560000000000E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcms474 */ self.comparesig64("123.456000000000E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcms475 */ self.comparesig64("123.45600000000E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcms476 */ self.comparesig64("123.4560000000E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcms477 */ self.comparesig64("123.456000000E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcms478 */ self.comparesig64("123.45600000E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcms479 */ self.comparesig64("123.4560000E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcms480 */ self.comparesig64("123.456000E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcms481 */ self.comparesig64("123.45600E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcms482 */ self.comparesig64("123.4560E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcms483 */ self.comparesig64("123.456E-89", "123.456E-89", "0", .toNearestOrEven)
+ /* ddcms487 */ self.comparesig64("123.456E+89", "123.4560000000000E+89", "0", .toNearestOrEven)
+ /* ddcms488 */ self.comparesig64("123.456E-89", "123.456000000000E-89", "0", .toNearestOrEven)
+ /* ddcms489 */ self.comparesig64("123.456E+89", "123.45600000000E+89", "0", .toNearestOrEven)
+ /* ddcms490 */ self.comparesig64("123.456E-89", "123.4560000000E-89", "0", .toNearestOrEven)
+ /* ddcms491 */ self.comparesig64("123.456E+89", "123.456000000E+89", "0", .toNearestOrEven)
+ /* ddcms492 */ self.comparesig64("123.456E-89", "123.45600000E-89", "0", .toNearestOrEven)
+ /* ddcms493 */ self.comparesig64("123.456E+89", "123.4560000E+89", "0", .toNearestOrEven)
+ /* ddcms494 */ self.comparesig64("123.456E-89", "123.456000E-89", "0", .toNearestOrEven)
+ /* ddcms495 */ self.comparesig64("123.456E+89", "123.45600E+89", "0", .toNearestOrEven)
+ /* ddcms496 */ self.comparesig64("123.456E-89", "123.4560E-89", "0", .toNearestOrEven)
+ /* ddcms497 */ self.comparesig64("123.456E+89", "123.456E+89", "0", .toNearestOrEven)
+ /* ddcms500 */ self.comparesig64("1", "1E-15", "1", .toNearestOrEven)
+ /* ddcms501 */ self.comparesig64("1", "1E-14", "1", .toNearestOrEven)
+ /* ddcms502 */ self.comparesig64("1", "1E-13", "1", .toNearestOrEven)
+ /* ddcms503 */ self.comparesig64("1", "1E-12", "1", .toNearestOrEven)
+ /* ddcms504 */ self.comparesig64("1", "1E-11", "1", .toNearestOrEven)
+ /* ddcms505 */ self.comparesig64("1", "1E-10", "1", .toNearestOrEven)
+ /* ddcms506 */ self.comparesig64("1", "1E-9", "1", .toNearestOrEven)
+ /* ddcms507 */ self.comparesig64("1", "1E-8", "1", .toNearestOrEven)
+ /* ddcms508 */ self.comparesig64("1", "1E-7", "1", .toNearestOrEven)
+ /* ddcms509 */ self.comparesig64("1", "1E-6", "1", .toNearestOrEven)
+ /* ddcms510 */ self.comparesig64("1", "1E-5", "1", .toNearestOrEven)
+ /* ddcms511 */ self.comparesig64("1", "1E-4", "1", .toNearestOrEven)
+ /* ddcms512 */ self.comparesig64("1", "1E-3", "1", .toNearestOrEven)
+ /* ddcms513 */ self.comparesig64("1", "1E-2", "1", .toNearestOrEven)
+ /* ddcms514 */ self.comparesig64("1", "1E-1", "1", .toNearestOrEven)
+ /* ddcms515 */ self.comparesig64("1", "1E-0", "0", .toNearestOrEven)
+ /* ddcms516 */ self.comparesig64("1", "1E+1", "-1", .toNearestOrEven)
+ /* ddcms517 */ self.comparesig64("1", "1E+2", "-1", .toNearestOrEven)
+ /* ddcms518 */ self.comparesig64("1", "1E+3", "-1", .toNearestOrEven)
+ /* ddcms519 */ self.comparesig64("1", "1E+4", "-1", .toNearestOrEven)
+ /* ddcms521 */ self.comparesig64("1", "1E+5", "-1", .toNearestOrEven)
+ /* ddcms522 */ self.comparesig64("1", "1E+6", "-1", .toNearestOrEven)
+ /* ddcms523 */ self.comparesig64("1", "1E+7", "-1", .toNearestOrEven)
+ /* ddcms524 */ self.comparesig64("1", "1E+8", "-1", .toNearestOrEven)
+ /* ddcms525 */ self.comparesig64("1", "1E+9", "-1", .toNearestOrEven)
+ /* ddcms526 */ self.comparesig64("1", "1E+10", "-1", .toNearestOrEven)
+ /* ddcms527 */ self.comparesig64("1", "1E+11", "-1", .toNearestOrEven)
+ /* ddcms528 */ self.comparesig64("1", "1E+12", "-1", .toNearestOrEven)
+ /* ddcms529 */ self.comparesig64("1", "1E+13", "-1", .toNearestOrEven)
+ /* ddcms530 */ self.comparesig64("1", "1E+14", "-1", .toNearestOrEven)
+ /* ddcms531 */ self.comparesig64("1", "1E+15", "-1", .toNearestOrEven)
+ /* ddcms540 */ self.comparesig64("1E-15", "1", "-1", .toNearestOrEven)
+ /* ddcms541 */ self.comparesig64("1E-14", "1", "-1", .toNearestOrEven)
+ /* ddcms542 */ self.comparesig64("1E-13", "1", "-1", .toNearestOrEven)
+ /* ddcms543 */ self.comparesig64("1E-12", "1", "-1", .toNearestOrEven)
+ /* ddcms544 */ self.comparesig64("1E-11", "1", "-1", .toNearestOrEven)
+ /* ddcms545 */ self.comparesig64("1E-10", "1", "-1", .toNearestOrEven)
+ /* ddcms546 */ self.comparesig64("1E-9", "1", "-1", .toNearestOrEven)
+ /* ddcms547 */ self.comparesig64("1E-8", "1", "-1", .toNearestOrEven)
+ /* ddcms548 */ self.comparesig64("1E-7", "1", "-1", .toNearestOrEven)
+ /* ddcms549 */ self.comparesig64("1E-6", "1", "-1", .toNearestOrEven)
+ /* ddcms550 */ self.comparesig64("1E-5", "1", "-1", .toNearestOrEven)
+ /* ddcms551 */ self.comparesig64("1E-4", "1", "-1", .toNearestOrEven)
+ /* ddcms552 */ self.comparesig64("1E-3", "1", "-1", .toNearestOrEven)
+ /* ddcms553 */ self.comparesig64("1E-2", "1", "-1", .toNearestOrEven)
+ /* ddcms554 */ self.comparesig64("1E-1", "1", "-1", .toNearestOrEven)
+ /* ddcms555 */ self.comparesig64("1E-0", "1", "0", .toNearestOrEven)
+ /* ddcms556 */ self.comparesig64("1E+1", "1", "1", .toNearestOrEven)
+ /* ddcms557 */ self.comparesig64("1E+2", "1", "1", .toNearestOrEven)
+ /* ddcms558 */ self.comparesig64("1E+3", "1", "1", .toNearestOrEven)
+ /* ddcms559 */ self.comparesig64("1E+4", "1", "1", .toNearestOrEven)
+ /* ddcms561 */ self.comparesig64("1E+5", "1", "1", .toNearestOrEven)
+ /* ddcms562 */ self.comparesig64("1E+6", "1", "1", .toNearestOrEven)
+ /* ddcms563 */ self.comparesig64("1E+7", "1", "1", .toNearestOrEven)
+ /* ddcms564 */ self.comparesig64("1E+8", "1", "1", .toNearestOrEven)
+ /* ddcms565 */ self.comparesig64("1E+9", "1", "1", .toNearestOrEven)
+ /* ddcms566 */ self.comparesig64("1E+10", "1", "1", .toNearestOrEven)
+ /* ddcms567 */ self.comparesig64("1E+11", "1", "1", .toNearestOrEven)
+ /* ddcms568 */ self.comparesig64("1E+12", "1", "1", .toNearestOrEven)
+ /* ddcms569 */ self.comparesig64("1E+13", "1", "1", .toNearestOrEven)
+ /* ddcms570 */ self.comparesig64("1E+14", "1", "1", .toNearestOrEven)
+ /* ddcms571 */ self.comparesig64("1E+15", "1", "1", .toNearestOrEven)
+ /* ddcms580 */ self.comparesig64("0.000000987654321", "1E-15", "1", .toNearestOrEven)
+ /* ddcms581 */ self.comparesig64("0.000000987654321", "1E-14", "1", .toNearestOrEven)
+ /* ddcms582 */ self.comparesig64("0.000000987654321", "1E-13", "1", .toNearestOrEven)
+ /* ddcms583 */ self.comparesig64("0.000000987654321", "1E-12", "1", .toNearestOrEven)
+ /* ddcms584 */ self.comparesig64("0.000000987654321", "1E-11", "1", .toNearestOrEven)
+ /* ddcms585 */ self.comparesig64("0.000000987654321", "1E-10", "1", .toNearestOrEven)
+ /* ddcms586 */ self.comparesig64("0.000000987654321", "1E-9", "1", .toNearestOrEven)
+ /* ddcms587 */ self.comparesig64("0.000000987654321", "1E-8", "1", .toNearestOrEven)
+ /* ddcms588 */ self.comparesig64("0.000000987654321", "1E-7", "1", .toNearestOrEven)
+ /* ddcms589 */ self.comparesig64("0.000000987654321", "1E-6", "-1", .toNearestOrEven)
+ /* ddcms590 */ self.comparesig64("0.000000987654321", "1E-5", "-1", .toNearestOrEven)
+ /* ddcms591 */ self.comparesig64("0.000000987654321", "1E-4", "-1", .toNearestOrEven)
+ /* ddcms592 */ self.comparesig64("0.000000987654321", "1E-3", "-1", .toNearestOrEven)
+ /* ddcms593 */ self.comparesig64("0.000000987654321", "1E-2", "-1", .toNearestOrEven)
+ /* ddcms594 */ self.comparesig64("0.000000987654321", "1E-1", "-1", .toNearestOrEven)
+ /* ddcms595 */ self.comparesig64("0.000000987654321", "1E-0", "-1", .toNearestOrEven)
+ /* ddcms596 */ self.comparesig64("0.000000987654321", "1E+1", "-1", .toNearestOrEven)
+ /* ddcms597 */ self.comparesig64("0.000000987654321", "1E+2", "-1", .toNearestOrEven)
+ /* ddcms598 */ self.comparesig64("0.000000987654321", "1E+3", "-1", .toNearestOrEven)
+ /* ddcms599 */ self.comparesig64("0.000000987654321", "1E+4", "-1", .toNearestOrEven)
+ /* ddcms600 */ self.comparesig64("12", "12.2345", "-1", .toNearestOrEven)
+ /* ddcms601 */ self.comparesig64("12.0", "12.2345", "-1", .toNearestOrEven)
+ /* ddcms602 */ self.comparesig64("12.00", "12.2345", "-1", .toNearestOrEven)
+ /* ddcms603 */ self.comparesig64("12.000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcms604 */ self.comparesig64("12.0000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcms605 */ self.comparesig64("12.00000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcms606 */ self.comparesig64("12.000000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcms607 */ self.comparesig64("12.0000000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcms608 */ self.comparesig64("12.00000000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcms609 */ self.comparesig64("12.000000000", "12.2345", "-1", .toNearestOrEven)
+ /* ddcms610 */ self.comparesig64("12.1234", "12", "1", .toNearestOrEven)
+ /* ddcms611 */ self.comparesig64("12.1234", "12.0", "1", .toNearestOrEven)
+ /* ddcms612 */ self.comparesig64("12.1234", "12.00", "1", .toNearestOrEven)
+ /* ddcms613 */ self.comparesig64("12.1234", "12.000", "1", .toNearestOrEven)
+ /* ddcms614 */ self.comparesig64("12.1234", "12.0000", "1", .toNearestOrEven)
+ /* ddcms615 */ self.comparesig64("12.1234", "12.00000", "1", .toNearestOrEven)
+ /* ddcms616 */ self.comparesig64("12.1234", "12.000000", "1", .toNearestOrEven)
+ /* ddcms617 */ self.comparesig64("12.1234", "12.0000000", "1", .toNearestOrEven)
+ /* ddcms618 */ self.comparesig64("12.1234", "12.00000000", "1", .toNearestOrEven)
+ /* ddcms619 */ self.comparesig64("12.1234", "12.000000000", "1", .toNearestOrEven)
+ /* ddcms620 */ self.comparesig64("-12", "-12.2345", "1", .toNearestOrEven)
+ /* ddcms621 */ self.comparesig64("-12.0", "-12.2345", "1", .toNearestOrEven)
+ /* ddcms622 */ self.comparesig64("-12.00", "-12.2345", "1", .toNearestOrEven)
+ /* ddcms623 */ self.comparesig64("-12.000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcms624 */ self.comparesig64("-12.0000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcms625 */ self.comparesig64("-12.00000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcms626 */ self.comparesig64("-12.000000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcms627 */ self.comparesig64("-12.0000000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcms628 */ self.comparesig64("-12.00000000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcms629 */ self.comparesig64("-12.000000000", "-12.2345", "1", .toNearestOrEven)
+ /* ddcms630 */ self.comparesig64("-12.1234", "-12", "-1", .toNearestOrEven)
+ /* ddcms631 */ self.comparesig64("-12.1234", "-12.0", "-1", .toNearestOrEven)
+ /* ddcms632 */ self.comparesig64("-12.1234", "-12.00", "-1", .toNearestOrEven)
+ /* ddcms633 */ self.comparesig64("-12.1234", "-12.000", "-1", .toNearestOrEven)
+ /* ddcms634 */ self.comparesig64("-12.1234", "-12.0000", "-1", .toNearestOrEven)
+ /* ddcms635 */ self.comparesig64("-12.1234", "-12.00000", "-1", .toNearestOrEven)
+ /* ddcms636 */ self.comparesig64("-12.1234", "-12.000000", "-1", .toNearestOrEven)
+ /* ddcms637 */ self.comparesig64("-12.1234", "-12.0000000", "-1", .toNearestOrEven)
+ /* ddcms638 */ self.comparesig64("-12.1234", "-12.00000000", "-1", .toNearestOrEven)
+ /* ddcms639 */ self.comparesig64("-12.1234", "-12.000000000", "-1", .toNearestOrEven)
+ /* ddcms640 */ self.comparesig64("0", "0", "0", .toNearestOrEven)
+ /* ddcms641 */ self.comparesig64("0", "-0", "0", .toNearestOrEven)
+ /* ddcms642 */ self.comparesig64("0", "-0.0", "0", .toNearestOrEven)
+ /* ddcms643 */ self.comparesig64("0", "0.0", "0", .toNearestOrEven)
+ /* ddcms644 */ self.comparesig64("-0", "0", "0", .toNearestOrEven)
+ /* ddcms645 */ self.comparesig64("-0", "-0", "0", .toNearestOrEven)
+ /* ddcms646 */ self.comparesig64("-0", "-0.0", "0", .toNearestOrEven)
+ /* ddcms647 */ self.comparesig64("-0", "0.0", "0", .toNearestOrEven)
+ /* ddcms648 */ self.comparesig64("0.0", "0", "0", .toNearestOrEven)
+ /* ddcms649 */ self.comparesig64("0.0", "-0", "0", .toNearestOrEven)
+ /* ddcms650 */ self.comparesig64("0.0", "-0.0", "0", .toNearestOrEven)
+ /* ddcms651 */ self.comparesig64("0.0", "0.0", "0", .toNearestOrEven)
+ /* ddcms652 */ self.comparesig64("-0.0", "0", "0", .toNearestOrEven)
+ /* ddcms653 */ self.comparesig64("-0.0", "-0", "0", .toNearestOrEven)
+ /* ddcms654 */ self.comparesig64("-0.0", "-0.0", "0", .toNearestOrEven)
+ /* ddcms655 */ self.comparesig64("-0.0", "0.0", "0", .toNearestOrEven)
+ /* ddcms656 */ self.comparesig64("-0E1", "0.0", "0", .toNearestOrEven)
+ /* ddcms657 */ self.comparesig64("-0E2", "0.0", "0", .toNearestOrEven)
+ /* ddcms658 */ self.comparesig64("0E1", "0.0", "0", .toNearestOrEven)
+ /* ddcms659 */ self.comparesig64("0E2", "0.0", "0", .toNearestOrEven)
+ /* ddcms660 */ self.comparesig64("-0E1", "0", "0", .toNearestOrEven)
+ /* ddcms661 */ self.comparesig64("-0E2", "0", "0", .toNearestOrEven)
+ /* ddcms662 */ self.comparesig64("0E1", "0", "0", .toNearestOrEven)
+ /* ddcms663 */ self.comparesig64("0E2", "0", "0", .toNearestOrEven)
+ /* ddcms664 */ self.comparesig64("-0E1", "-0E1", "0", .toNearestOrEven)
+ /* ddcms665 */ self.comparesig64("-0E2", "-0E1", "0", .toNearestOrEven)
+ /* ddcms666 */ self.comparesig64("0E1", "-0E1", "0", .toNearestOrEven)
+ /* ddcms667 */ self.comparesig64("0E2", "-0E1", "0", .toNearestOrEven)
+ /* ddcms668 */ self.comparesig64("-0E1", "-0E2", "0", .toNearestOrEven)
+ /* ddcms669 */ self.comparesig64("-0E2", "-0E2", "0", .toNearestOrEven)
+ /* ddcms670 */ self.comparesig64("0E1", "-0E2", "0", .toNearestOrEven)
+ /* ddcms671 */ self.comparesig64("0E2", "-0E2", "0", .toNearestOrEven)
+ /* ddcms672 */ self.comparesig64("-0E1", "0E1", "0", .toNearestOrEven)
+ /* ddcms673 */ self.comparesig64("-0E2", "0E1", "0", .toNearestOrEven)
+ /* ddcms674 */ self.comparesig64("0E1", "0E1", "0", .toNearestOrEven)
+ /* ddcms675 */ self.comparesig64("0E2", "0E1", "0", .toNearestOrEven)
+ /* ddcms676 */ self.comparesig64("-0E1", "0E2", "0", .toNearestOrEven)
+ /* ddcms677 */ self.comparesig64("-0E2", "0E2", "0", .toNearestOrEven)
+ /* ddcms678 */ self.comparesig64("0E1", "0E2", "0", .toNearestOrEven)
+ /* ddcms679 */ self.comparesig64("0E2", "0E2", "0", .toNearestOrEven)
+ /* ddcms680 */ self.comparesig64("12", "12", "0", .toNearestOrEven)
+ /* ddcms681 */ self.comparesig64("12", "12.0", "0", .toNearestOrEven)
+ /* ddcms682 */ self.comparesig64("12", "12.00", "0", .toNearestOrEven)
+ /* ddcms683 */ self.comparesig64("12", "12.000", "0", .toNearestOrEven)
+ /* ddcms684 */ self.comparesig64("12", "12.0000", "0", .toNearestOrEven)
+ /* ddcms685 */ self.comparesig64("12", "12.00000", "0", .toNearestOrEven)
+ /* ddcms686 */ self.comparesig64("12", "12.000000", "0", .toNearestOrEven)
+ /* ddcms687 */ self.comparesig64("12", "12.0000000", "0", .toNearestOrEven)
+ /* ddcms688 */ self.comparesig64("12", "12.00000000", "0", .toNearestOrEven)
+ /* ddcms689 */ self.comparesig64("12", "12.000000000", "0", .toNearestOrEven)
+ /* ddcms690 */ self.comparesig64("12", "12", "0", .toNearestOrEven)
+ /* ddcms691 */ self.comparesig64("12.0", "12", "0", .toNearestOrEven)
+ /* ddcms692 */ self.comparesig64("12.00", "12", "0", .toNearestOrEven)
+ /* ddcms693 */ self.comparesig64("12.000", "12", "0", .toNearestOrEven)
+ /* ddcms694 */ self.comparesig64("12.0000", "12", "0", .toNearestOrEven)
+ /* ddcms695 */ self.comparesig64("12.00000", "12", "0", .toNearestOrEven)
+ /* ddcms696 */ self.comparesig64("12.000000", "12", "0", .toNearestOrEven)
+ /* ddcms697 */ self.comparesig64("12.0000000", "12", "0", .toNearestOrEven)
+ /* ddcms698 */ self.comparesig64("12.00000000", "12", "0", .toNearestOrEven)
+ /* ddcms699 */ self.comparesig64("12.000000000", "12", "0", .toNearestOrEven)
+ /* ddcms700 */ self.comparesig64("1234567890123456", "1234567890123455", "1", .toNearestOrEven)
+ /* ddcms701 */ self.comparesig64("1234567890123456", "1234567890123456", "0", .toNearestOrEven)
+ /* ddcms702 */ self.comparesig64("1234567890123456", "1234567890123457", "-1", .toNearestOrEven)
+ /* ddcms703 */ self.comparesig64("1234567890123456", "0234567890123456", "1", .toNearestOrEven)
+ /* ddcms704 */ self.comparesig64("1234567890123456", "1234567890123456", "0", .toNearestOrEven)
+ /* ddcms705 */ self.comparesig64("1234567890123456", "2234567890123456", "-1", .toNearestOrEven)
+ /* ddcms706 */ self.comparesig64("1134567890123456", "1034567890123456", "1", .toNearestOrEven)
+ /* ddcms707 */ self.comparesig64("1134567890123456", "1134567890123456", "0", .toNearestOrEven)
+ /* ddcms708 */ self.comparesig64("1134567890123456", "1234567890123456", "-1", .toNearestOrEven)
+ /* ddcms721 */ self.comparesig64("12345678000", "1", "1", .toNearestOrEven)
+ /* ddcms722 */ self.comparesig64("1", "12345678000", "-1", .toNearestOrEven)
+ /* ddcms723 */ self.comparesig64("1234567800", "1", "1", .toNearestOrEven)
+ /* ddcms724 */ self.comparesig64("1", "1234567800", "-1", .toNearestOrEven)
+ /* ddcms725 */ self.comparesig64("1234567890", "1", "1", .toNearestOrEven)
+ /* ddcms726 */ self.comparesig64("1", "1234567890", "-1", .toNearestOrEven)
+ /* ddcms727 */ self.comparesig64("1234567891", "1", "1", .toNearestOrEven)
+ /* ddcms728 */ self.comparesig64("1", "1234567891", "-1", .toNearestOrEven)
+ /* ddcms729 */ self.comparesig64("12345678901", "1", "1", .toNearestOrEven)
+ /* ddcms730 */ self.comparesig64("1", "12345678901", "-1", .toNearestOrEven)
+ /* ddcms731 */ self.comparesig64("1234567896", "1", "1", .toNearestOrEven)
+ /* ddcms732 */ self.comparesig64("1", "1234567896", "-1", .toNearestOrEven)
+ /* ddcms740 */ self.comparesig64("1", "0.9999999", "1", .toNearestOrEven)
+ /* ddcms741 */ self.comparesig64("1", "0.999999", "1", .toNearestOrEven)
+ /* ddcms742 */ self.comparesig64("1", "0.99999", "1", .toNearestOrEven)
+ /* ddcms743 */ self.comparesig64("1", "1.0000", "0", .toNearestOrEven)
+ /* ddcms744 */ self.comparesig64("1", "1.00001", "-1", .toNearestOrEven)
+ /* ddcms745 */ self.comparesig64("1", "1.000001", "-1", .toNearestOrEven)
+ /* ddcms746 */ self.comparesig64("1", "1.0000001", "-1", .toNearestOrEven)
+ /* ddcms750 */ self.comparesig64("0.9999999", "1", "-1", .toNearestOrEven)
+ /* ddcms751 */ self.comparesig64("0.999999", "1", "-1", .toNearestOrEven)
+ /* ddcms752 */ self.comparesig64("0.99999", "1", "-1", .toNearestOrEven)
+ /* ddcms753 */ self.comparesig64("1.0000", "1", "0", .toNearestOrEven)
+ /* ddcms754 */ self.comparesig64("1.00001", "1", "1", .toNearestOrEven)
+ /* ddcms755 */ self.comparesig64("1.000001", "1", "1", .toNearestOrEven)
+ /* ddcms756 */ self.comparesig64("1.0000001", "1", "1", .toNearestOrEven)
+ /* ddcms780 */ self.comparesig64("Inf", "-Inf", "1", .toNearestOrEven)
+ /* ddcms781 */ self.comparesig64("Inf", "-1000", "1", .toNearestOrEven)
+ /* ddcms782 */ self.comparesig64("Inf", "-1", "1", .toNearestOrEven)
+ /* ddcms783 */ self.comparesig64("Inf", "-0", "1", .toNearestOrEven)
+ /* ddcms784 */ self.comparesig64("Inf", "0", "1", .toNearestOrEven)
+ /* ddcms785 */ self.comparesig64("Inf", "1", "1", .toNearestOrEven)
+ /* ddcms786 */ self.comparesig64("Inf", "1000", "1", .toNearestOrEven)
+ /* ddcms787 */ self.comparesig64("Inf", "Inf", "0", .toNearestOrEven)
+ /* ddcms788 */ self.comparesig64("-1000", "Inf", "-1", .toNearestOrEven)
+ /* ddcms789 */ self.comparesig64("-Inf", "Inf", "-1", .toNearestOrEven)
+ /* ddcms790 */ self.comparesig64("-1", "Inf", "-1", .toNearestOrEven)
+ /* ddcms791 */ self.comparesig64("-0", "Inf", "-1", .toNearestOrEven)
+ /* ddcms792 */ self.comparesig64("0", "Inf", "-1", .toNearestOrEven)
+ /* ddcms793 */ self.comparesig64("1", "Inf", "-1", .toNearestOrEven)
+ /* ddcms794 */ self.comparesig64("1000", "Inf", "-1", .toNearestOrEven)
+ /* ddcms795 */ self.comparesig64("Inf", "Inf", "0", .toNearestOrEven)
+ /* ddcms800 */ self.comparesig64("-Inf", "-Inf", "0", .toNearestOrEven)
+ /* ddcms801 */ self.comparesig64("-Inf", "-1000", "-1", .toNearestOrEven)
+ /* ddcms802 */ self.comparesig64("-Inf", "-1", "-1", .toNearestOrEven)
+ /* ddcms803 */ self.comparesig64("-Inf", "-0", "-1", .toNearestOrEven)
+ /* ddcms804 */ self.comparesig64("-Inf", "0", "-1", .toNearestOrEven)
+ /* ddcms805 */ self.comparesig64("-Inf", "1", "-1", .toNearestOrEven)
+ /* ddcms806 */ self.comparesig64("-Inf", "1000", "-1", .toNearestOrEven)
+ /* ddcms807 */ self.comparesig64("-Inf", "Inf", "-1", .toNearestOrEven)
+ /* ddcms808 */ self.comparesig64("-Inf", "-Inf", "0", .toNearestOrEven)
+ /* ddcms809 */ self.comparesig64("-1000", "-Inf", "1", .toNearestOrEven)
+ /* ddcms810 */ self.comparesig64("-1", "-Inf", "1", .toNearestOrEven)
+ /* ddcms811 */ self.comparesig64("-0", "-Inf", "1", .toNearestOrEven)
+ /* ddcms812 */ self.comparesig64("0", "-Inf", "1", .toNearestOrEven)
+ /* ddcms813 */ self.comparesig64("1", "-Inf", "1", .toNearestOrEven)
+ /* ddcms814 */ self.comparesig64("1000", "-Inf", "1", .toNearestOrEven)
+ /* ddcms815 */ self.comparesig64("Inf", "-Inf", "1", .toNearestOrEven)
+ /* ddcms821 */ self.comparesig64("NaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms822 */ self.comparesig64("NaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms823 */ self.comparesig64("NaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms824 */ self.comparesig64("NaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms825 */ self.comparesig64("NaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms826 */ self.comparesig64("NaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms827 */ self.comparesig64("NaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms828 */ self.comparesig64("NaN", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms829 */ self.comparesig64("NaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms830 */ self.comparesig64("-Inf", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms831 */ self.comparesig64("-1000", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms832 */ self.comparesig64("-1", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms833 */ self.comparesig64("-0", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms834 */ self.comparesig64("0", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms835 */ self.comparesig64("1", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms836 */ self.comparesig64("1000", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms837 */ self.comparesig64("Inf", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms838 */ self.comparesig64("-NaN", "-NaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms839 */ self.comparesig64("+NaN", "-NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms840 */ self.comparesig64("-NaN", "+NaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms841 */ self.comparesig64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms842 */ self.comparesig64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms843 */ self.comparesig64("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms844 */ self.comparesig64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms845 */ self.comparesig64("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms846 */ self.comparesig64("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms847 */ self.comparesig64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms848 */ self.comparesig64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms849 */ self.comparesig64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms850 */ self.comparesig64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms851 */ self.comparesig64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms852 */ self.comparesig64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms853 */ self.comparesig64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms854 */ self.comparesig64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms855 */ self.comparesig64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms856 */ self.comparesig64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms857 */ self.comparesig64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms858 */ self.comparesig64("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms859 */ self.comparesig64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms860 */ self.comparesig64("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms861 */ self.comparesig64("NaN(0x8)", "999", "NaN(0x8)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms862 */ self.comparesig64("NaN(0x4d)", "Inf", "NaN(0x4d)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms863 */ self.comparesig64("-NaN(0x43)", "NaN(0x5)", "-NaN(0x43)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms864 */ self.comparesig64("-Inf", "-NaN(0x4)", "-NaN(0x4)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms865 */ self.comparesig64("-999", "-NaN(0x21)", "-NaN(0x21)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms866 */ self.comparesig64("Inf", "NaN(0x2)", "NaN(0x2)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms867 */ self.comparesig64("-NaN(0x29)", "-NaN(0x2a)", "-NaN(0x29)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms868 */ self.comparesig64("+NaN(0x29)", "-NaN(0x2a)", "NaN(0x29)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms869 */ self.comparesig64("-NaN(0x29)", "+NaN(0x2a)", "-NaN(0x29)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms870 */ self.comparesig64("+NaN(0x29)", "+NaN(0x2a)", "NaN(0x29)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms871 */ self.comparesig64("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms872 */ self.comparesig64("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms873 */ self.comparesig64("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms874 */ self.comparesig64("sNaN(0x10)", "sNaN(0x5e)", "NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms875 */ self.comparesig64("NaN(0x55)", "sNaN(0x53)", "NaN(0x53)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms876 */ self.comparesig64("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms877 */ self.comparesig64("088", "sNaN(0x51)", "NaN(0x51)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms878 */ self.comparesig64("Inf", "sNaN(0x5a)", "NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms879 */ self.comparesig64("NaN", "-sNaN(0x59)", "-NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* ddcms880 */ self.comparesig64("+1.23456789012345E-0", "9E+384", "-1", .toNearestOrEven)
+ /* ddcms881 */ self.comparesig64("9E+384", "+1.23456789012345E-0", "1", .toNearestOrEven)
+ /* ddcms882 */ self.comparesig64("+0.100", "9E-383", "1", .toNearestOrEven)
+ /* ddcms883 */ self.comparesig64("9E-383", "+0.100", "-1", .toNearestOrEven)
+ /* ddcms885 */ self.comparesig64("-1.23456789012345E-0", "9E+384", "-1", .toNearestOrEven)
+ /* ddcms886 */ self.comparesig64("9E+384", "-1.23456789012345E-0", "1", .toNearestOrEven)
+ /* ddcms887 */ self.comparesig64("-0.100", "9E-383", "-1", .toNearestOrEven)
+ /* ddcms888 */ self.comparesig64("9E-383", "-0.100", "1", .toNearestOrEven)
+ /* ddcms901 */ self.comparesig64("1e+77", "1e+11", "1", .toNearestOrEven)
+ /* ddcms902 */ self.comparesig64("1e+77", "-1e+11", "1", .toNearestOrEven)
+ /* ddcms903 */ self.comparesig64("-1e+77", "1e+11", "-1", .toNearestOrEven)
+ /* ddcms904 */ self.comparesig64("-1e+77", "-1e+11", "-1", .toNearestOrEven)
+ /* ddcms905 */ self.comparesig64("1e-77", "1e-11", "-1", .toNearestOrEven)
+ /* ddcms906 */ self.comparesig64("1e-77", "-1e-11", "1", .toNearestOrEven)
+ /* ddcms907 */ self.comparesig64("-1e-77", "1e-11", "-1", .toNearestOrEven)
+ /* ddcms908 */ self.comparesig64("-1e-77", "-1e-11", "1", .toNearestOrEven)
+ }
+
+ private func comparesig64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ self.assertCompareSignaling(
+ arg0,
+ arg1,
+ status: &status,
+ expected: expected,
+ expectedStatus: expectedStatus,
+ file,
+ line
+ )
+ }
+
+ func test_comparesig128() {
+ /* dqcan241 */ self.comparesig128("-Inf", "1", "#a2080000000000000000000000000001", .toNearestOrEven)
+ /* dqcan242 */ self.comparesig128("-Inf", "-Inf", "#22080000000000000000000000000000", .toNearestOrEven)
+ /* dqcan243 */ self.comparesig128("1", "-Inf", "#22080000000000000000000000000001", .toNearestOrEven)
+ /* dqcan244 */ self.comparesig128("#7c400ff3ffff3fcff3fcff3fcff3fcff", "-1000", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan245 */ self.comparesig128("#7e050ff3fcfffffff3fcff3fcff3fcff", "-1000", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms001 */ self.comparesig128("-2", "-2", "0", .toNearestOrEven)
+ /* dqcms002 */ self.comparesig128("-2", "-1", "-1", .toNearestOrEven)
+ /* dqcms003 */ self.comparesig128("-2", "0", "-1", .toNearestOrEven)
+ /* dqcms004 */ self.comparesig128("-2", "1", "-1", .toNearestOrEven)
+ /* dqcms005 */ self.comparesig128("-2", "2", "-1", .toNearestOrEven)
+ /* dqcms006 */ self.comparesig128("-1", "-2", "1", .toNearestOrEven)
+ /* dqcms007 */ self.comparesig128("-1", "-1", "0", .toNearestOrEven)
+ /* dqcms008 */ self.comparesig128("-1", "0", "-1", .toNearestOrEven)
+ /* dqcms009 */ self.comparesig128("-1", "1", "-1", .toNearestOrEven)
+ /* dqcms010 */ self.comparesig128("-1", "2", "-1", .toNearestOrEven)
+ /* dqcms011 */ self.comparesig128("0", "-2", "1", .toNearestOrEven)
+ /* dqcms012 */ self.comparesig128("0", "-1", "1", .toNearestOrEven)
+ /* dqcms013 */ self.comparesig128("0", "0", "0", .toNearestOrEven)
+ /* dqcms014 */ self.comparesig128("0", "1", "-1", .toNearestOrEven)
+ /* dqcms015 */ self.comparesig128("0", "2", "-1", .toNearestOrEven)
+ /* dqcms016 */ self.comparesig128("1", "-2", "1", .toNearestOrEven)
+ /* dqcms017 */ self.comparesig128("1", "-1", "1", .toNearestOrEven)
+ /* dqcms018 */ self.comparesig128("1", "0", "1", .toNearestOrEven)
+ /* dqcms019 */ self.comparesig128("1", "1", "0", .toNearestOrEven)
+ /* dqcms020 */ self.comparesig128("1", "2", "-1", .toNearestOrEven)
+ /* dqcms021 */ self.comparesig128("2", "-2", "1", .toNearestOrEven)
+ /* dqcms022 */ self.comparesig128("2", "-1", "1", .toNearestOrEven)
+ /* dqcms023 */ self.comparesig128("2", "0", "1", .toNearestOrEven)
+ /* dqcms025 */ self.comparesig128("2", "1", "1", .toNearestOrEven)
+ /* dqcms026 */ self.comparesig128("2", "2", "0", .toNearestOrEven)
+ /* dqcms031 */ self.comparesig128("-20", "-20", "0", .toNearestOrEven)
+ /* dqcms032 */ self.comparesig128("-20", "-10", "-1", .toNearestOrEven)
+ /* dqcms033 */ self.comparesig128("-20", "00", "-1", .toNearestOrEven)
+ /* dqcms034 */ self.comparesig128("-20", "10", "-1", .toNearestOrEven)
+ /* dqcms035 */ self.comparesig128("-20", "20", "-1", .toNearestOrEven)
+ /* dqcms036 */ self.comparesig128("-10", "-20", "1", .toNearestOrEven)
+ /* dqcms037 */ self.comparesig128("-10", "-10", "0", .toNearestOrEven)
+ /* dqcms038 */ self.comparesig128("-10", "00", "-1", .toNearestOrEven)
+ /* dqcms039 */ self.comparesig128("-10", "10", "-1", .toNearestOrEven)
+ /* dqcms040 */ self.comparesig128("-10", "20", "-1", .toNearestOrEven)
+ /* dqcms041 */ self.comparesig128("00", "-20", "1", .toNearestOrEven)
+ /* dqcms042 */ self.comparesig128("00", "-10", "1", .toNearestOrEven)
+ /* dqcms043 */ self.comparesig128("00", "00", "0", .toNearestOrEven)
+ /* dqcms044 */ self.comparesig128("00", "10", "-1", .toNearestOrEven)
+ /* dqcms045 */ self.comparesig128("00", "20", "-1", .toNearestOrEven)
+ /* dqcms046 */ self.comparesig128("10", "-20", "1", .toNearestOrEven)
+ /* dqcms047 */ self.comparesig128("10", "-10", "1", .toNearestOrEven)
+ /* dqcms048 */ self.comparesig128("10", "00", "1", .toNearestOrEven)
+ /* dqcms049 */ self.comparesig128("10", "10", "0", .toNearestOrEven)
+ /* dqcms050 */ self.comparesig128("10", "20", "-1", .toNearestOrEven)
+ /* dqcms051 */ self.comparesig128("20", "-20", "1", .toNearestOrEven)
+ /* dqcms052 */ self.comparesig128("20", "-10", "1", .toNearestOrEven)
+ /* dqcms053 */ self.comparesig128("20", "00", "1", .toNearestOrEven)
+ /* dqcms055 */ self.comparesig128("20", "10", "1", .toNearestOrEven)
+ /* dqcms056 */ self.comparesig128("20", "20", "0", .toNearestOrEven)
+ /* dqcms061 */ self.comparesig128("-2.0", "-2.0", "0", .toNearestOrEven)
+ /* dqcms062 */ self.comparesig128("-2.0", "-1.0", "-1", .toNearestOrEven)
+ /* dqcms063 */ self.comparesig128("-2.0", "0.0", "-1", .toNearestOrEven)
+ /* dqcms064 */ self.comparesig128("-2.0", "1.0", "-1", .toNearestOrEven)
+ /* dqcms065 */ self.comparesig128("-2.0", "2.0", "-1", .toNearestOrEven)
+ /* dqcms066 */ self.comparesig128("-1.0", "-2.0", "1", .toNearestOrEven)
+ /* dqcms067 */ self.comparesig128("-1.0", "-1.0", "0", .toNearestOrEven)
+ /* dqcms068 */ self.comparesig128("-1.0", "0.0", "-1", .toNearestOrEven)
+ /* dqcms069 */ self.comparesig128("-1.0", "1.0", "-1", .toNearestOrEven)
+ /* dqcms070 */ self.comparesig128("-1.0", "2.0", "-1", .toNearestOrEven)
+ /* dqcms071 */ self.comparesig128("0.0", "-2.0", "1", .toNearestOrEven)
+ /* dqcms072 */ self.comparesig128("0.0", "-1.0", "1", .toNearestOrEven)
+ /* dqcms073 */ self.comparesig128("0.0", "0.0", "0", .toNearestOrEven)
+ /* dqcms074 */ self.comparesig128("0.0", "1.0", "-1", .toNearestOrEven)
+ /* dqcms075 */ self.comparesig128("0.0", "2.0", "-1", .toNearestOrEven)
+ /* dqcms076 */ self.comparesig128("1.0", "-2.0", "1", .toNearestOrEven)
+ /* dqcms077 */ self.comparesig128("1.0", "-1.0", "1", .toNearestOrEven)
+ /* dqcms078 */ self.comparesig128("1.0", "0.0", "1", .toNearestOrEven)
+ /* dqcms079 */ self.comparesig128("1.0", "1.0", "0", .toNearestOrEven)
+ /* dqcms080 */ self.comparesig128("1.0", "2.0", "-1", .toNearestOrEven)
+ /* dqcms081 */ self.comparesig128("2.0", "-2.0", "1", .toNearestOrEven)
+ /* dqcms082 */ self.comparesig128("2.0", "-1.0", "1", .toNearestOrEven)
+ /* dqcms083 */ self.comparesig128("2.0", "0.0", "1", .toNearestOrEven)
+ /* dqcms085 */ self.comparesig128("2.0", "1.0", "1", .toNearestOrEven)
+ /* dqcms086 */ self.comparesig128("2.0", "2.0", "0", .toNearestOrEven)
+ /* dqcms090 */ self.comparesig128("9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", "0", .toNearestOrEven)
+ /* dqcms091 */ self.comparesig128("-9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", "-1", .toNearestOrEven)
+ /* dqcms092 */ self.comparesig128("9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", "1", .toNearestOrEven)
+ /* dqcms093 */ self.comparesig128("-9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", "0", .toNearestOrEven)
+ /* dqcms100 */ self.comparesig128("7.0", "7.0", "0", .toNearestOrEven)
+ /* dqcms101 */ self.comparesig128("7.0", "7", "0", .toNearestOrEven)
+ /* dqcms102 */ self.comparesig128("7", "7.0", "0", .toNearestOrEven)
+ /* dqcms103 */ self.comparesig128("7E+0", "7.0", "0", .toNearestOrEven)
+ /* dqcms104 */ self.comparesig128("70E-1", "7.0", "0", .toNearestOrEven)
+ /* dqcms105 */ self.comparesig128("0.7E+1", "7", "0", .toNearestOrEven)
+ /* dqcms106 */ self.comparesig128("70E-1", "7", "0", .toNearestOrEven)
+ /* dqcms107 */ self.comparesig128("7.0", "7E+0", "0", .toNearestOrEven)
+ /* dqcms108 */ self.comparesig128("7.0", "70E-1", "0", .toNearestOrEven)
+ /* dqcms109 */ self.comparesig128("7", "0.7E+1", "0", .toNearestOrEven)
+ /* dqcms110 */ self.comparesig128("7", "70E-1", "0", .toNearestOrEven)
+ /* dqcms120 */ self.comparesig128("8.0", "7.0", "1", .toNearestOrEven)
+ /* dqcms121 */ self.comparesig128("8.0", "7", "1", .toNearestOrEven)
+ /* dqcms122 */ self.comparesig128("8", "7.0", "1", .toNearestOrEven)
+ /* dqcms123 */ self.comparesig128("8E+0", "7.0", "1", .toNearestOrEven)
+ /* dqcms124 */ self.comparesig128("80E-1", "7.0", "1", .toNearestOrEven)
+ /* dqcms125 */ self.comparesig128("0.8E+1", "7", "1", .toNearestOrEven)
+ /* dqcms126 */ self.comparesig128("80E-1", "7", "1", .toNearestOrEven)
+ /* dqcms127 */ self.comparesig128("8.0", "7E+0", "1", .toNearestOrEven)
+ /* dqcms128 */ self.comparesig128("8.0", "70E-1", "1", .toNearestOrEven)
+ /* dqcms129 */ self.comparesig128("8", "0.7E+1", "1", .toNearestOrEven)
+ /* dqcms130 */ self.comparesig128("8", "70E-1", "1", .toNearestOrEven)
+ /* dqcms140 */ self.comparesig128("8.0", "9.0", "-1", .toNearestOrEven)
+ /* dqcms141 */ self.comparesig128("8.0", "9", "-1", .toNearestOrEven)
+ /* dqcms142 */ self.comparesig128("8", "9.0", "-1", .toNearestOrEven)
+ /* dqcms143 */ self.comparesig128("8E+0", "9.0", "-1", .toNearestOrEven)
+ /* dqcms144 */ self.comparesig128("80E-1", "9.0", "-1", .toNearestOrEven)
+ /* dqcms145 */ self.comparesig128("0.8E+1", "9", "-1", .toNearestOrEven)
+ /* dqcms146 */ self.comparesig128("80E-1", "9", "-1", .toNearestOrEven)
+ /* dqcms147 */ self.comparesig128("8.0", "9E+0", "-1", .toNearestOrEven)
+ /* dqcms148 */ self.comparesig128("8.0", "90E-1", "-1", .toNearestOrEven)
+ /* dqcms149 */ self.comparesig128("8", "0.9E+1", "-1", .toNearestOrEven)
+ /* dqcms150 */ self.comparesig128("8", "90E-1", "-1", .toNearestOrEven)
+ /* dqcms200 */ self.comparesig128("-7.0", "7.0", "-1", .toNearestOrEven)
+ /* dqcms201 */ self.comparesig128("-7.0", "7", "-1", .toNearestOrEven)
+ /* dqcms202 */ self.comparesig128("-7", "7.0", "-1", .toNearestOrEven)
+ /* dqcms203 */ self.comparesig128("-7E+0", "7.0", "-1", .toNearestOrEven)
+ /* dqcms204 */ self.comparesig128("-70E-1", "7.0", "-1", .toNearestOrEven)
+ /* dqcms205 */ self.comparesig128("-0.7E+1", "7", "-1", .toNearestOrEven)
+ /* dqcms206 */ self.comparesig128("-70E-1", "7", "-1", .toNearestOrEven)
+ /* dqcms207 */ self.comparesig128("-7.0", "7E+0", "-1", .toNearestOrEven)
+ /* dqcms208 */ self.comparesig128("-7.0", "70E-1", "-1", .toNearestOrEven)
+ /* dqcms209 */ self.comparesig128("-7", "0.7E+1", "-1", .toNearestOrEven)
+ /* dqcms210 */ self.comparesig128("-7", "70E-1", "-1", .toNearestOrEven)
+ /* dqcms220 */ self.comparesig128("-8.0", "7.0", "-1", .toNearestOrEven)
+ /* dqcms221 */ self.comparesig128("-8.0", "7", "-1", .toNearestOrEven)
+ /* dqcms222 */ self.comparesig128("-8", "7.0", "-1", .toNearestOrEven)
+ /* dqcms223 */ self.comparesig128("-8E+0", "7.0", "-1", .toNearestOrEven)
+ /* dqcms224 */ self.comparesig128("-80E-1", "7.0", "-1", .toNearestOrEven)
+ /* dqcms225 */ self.comparesig128("-0.8E+1", "7", "-1", .toNearestOrEven)
+ /* dqcms226 */ self.comparesig128("-80E-1", "7", "-1", .toNearestOrEven)
+ /* dqcms227 */ self.comparesig128("-8.0", "7E+0", "-1", .toNearestOrEven)
+ /* dqcms228 */ self.comparesig128("-8.0", "70E-1", "-1", .toNearestOrEven)
+ /* dqcms229 */ self.comparesig128("-8", "0.7E+1", "-1", .toNearestOrEven)
+ /* dqcms230 */ self.comparesig128("-8", "70E-1", "-1", .toNearestOrEven)
+ /* dqcms240 */ self.comparesig128("-8.0", "9.0", "-1", .toNearestOrEven)
+ /* dqcms241 */ self.comparesig128("-8.0", "9", "-1", .toNearestOrEven)
+ /* dqcms242 */ self.comparesig128("-8", "9.0", "-1", .toNearestOrEven)
+ /* dqcms243 */ self.comparesig128("-8E+0", "9.0", "-1", .toNearestOrEven)
+ /* dqcms244 */ self.comparesig128("-80E-1", "9.0", "-1", .toNearestOrEven)
+ /* dqcms245 */ self.comparesig128("-0.8E+1", "9", "-1", .toNearestOrEven)
+ /* dqcms246 */ self.comparesig128("-80E-1", "9", "-1", .toNearestOrEven)
+ /* dqcms247 */ self.comparesig128("-8.0", "9E+0", "-1", .toNearestOrEven)
+ /* dqcms248 */ self.comparesig128("-8.0", "90E-1", "-1", .toNearestOrEven)
+ /* dqcms249 */ self.comparesig128("-8", "0.9E+1", "-1", .toNearestOrEven)
+ /* dqcms250 */ self.comparesig128("-8", "90E-1", "-1", .toNearestOrEven)
+ /* dqcms300 */ self.comparesig128("7.0", "-7.0", "1", .toNearestOrEven)
+ /* dqcms301 */ self.comparesig128("7.0", "-7", "1", .toNearestOrEven)
+ /* dqcms302 */ self.comparesig128("7", "-7.0", "1", .toNearestOrEven)
+ /* dqcms303 */ self.comparesig128("7E+0", "-7.0", "1", .toNearestOrEven)
+ /* dqcms304 */ self.comparesig128("70E-1", "-7.0", "1", .toNearestOrEven)
+ /* dqcms305 */ self.comparesig128(".7E+1", "-7", "1", .toNearestOrEven)
+ /* dqcms306 */ self.comparesig128("70E-1", "-7", "1", .toNearestOrEven)
+ /* dqcms307 */ self.comparesig128("7.0", "-7E+0", "1", .toNearestOrEven)
+ /* dqcms308 */ self.comparesig128("7.0", "-70E-1", "1", .toNearestOrEven)
+ /* dqcms309 */ self.comparesig128("7", "-.7E+1", "1", .toNearestOrEven)
+ /* dqcms310 */ self.comparesig128("7", "-70E-1", "1", .toNearestOrEven)
+ /* dqcms320 */ self.comparesig128("8.0", "-7.0", "1", .toNearestOrEven)
+ /* dqcms321 */ self.comparesig128("8.0", "-7", "1", .toNearestOrEven)
+ /* dqcms322 */ self.comparesig128("8", "-7.0", "1", .toNearestOrEven)
+ /* dqcms323 */ self.comparesig128("8E+0", "-7.0", "1", .toNearestOrEven)
+ /* dqcms324 */ self.comparesig128("80E-1", "-7.0", "1", .toNearestOrEven)
+ /* dqcms325 */ self.comparesig128(".8E+1", "-7", "1", .toNearestOrEven)
+ /* dqcms326 */ self.comparesig128("80E-1", "-7", "1", .toNearestOrEven)
+ /* dqcms327 */ self.comparesig128("8.0", "-7E+0", "1", .toNearestOrEven)
+ /* dqcms328 */ self.comparesig128("8.0", "-70E-1", "1", .toNearestOrEven)
+ /* dqcms329 */ self.comparesig128("8", "-.7E+1", "1", .toNearestOrEven)
+ /* dqcms330 */ self.comparesig128("8", "-70E-1", "1", .toNearestOrEven)
+ /* dqcms340 */ self.comparesig128("8.0", "-9.0", "1", .toNearestOrEven)
+ /* dqcms341 */ self.comparesig128("8.0", "-9", "1", .toNearestOrEven)
+ /* dqcms342 */ self.comparesig128("8", "-9.0", "1", .toNearestOrEven)
+ /* dqcms343 */ self.comparesig128("8E+0", "-9.0", "1", .toNearestOrEven)
+ /* dqcms344 */ self.comparesig128("80E-1", "-9.0", "1", .toNearestOrEven)
+ /* dqcms345 */ self.comparesig128(".8E+1", "-9", "1", .toNearestOrEven)
+ /* dqcms346 */ self.comparesig128("80E-1", "-9", "1", .toNearestOrEven)
+ /* dqcms347 */ self.comparesig128("8.0", "-9E+0", "1", .toNearestOrEven)
+ /* dqcms348 */ self.comparesig128("8.0", "-90E-1", "1", .toNearestOrEven)
+ /* dqcms349 */ self.comparesig128("8", "-.9E+1", "1", .toNearestOrEven)
+ /* dqcms350 */ self.comparesig128("8", "-90E-1", "1", .toNearestOrEven)
+ /* dqcms400 */ self.comparesig128("-7.0", "-7.0", "0", .toNearestOrEven)
+ /* dqcms401 */ self.comparesig128("-7.0", "-7", "0", .toNearestOrEven)
+ /* dqcms402 */ self.comparesig128("-7", "-7.0", "0", .toNearestOrEven)
+ /* dqcms403 */ self.comparesig128("-7E+0", "-7.0", "0", .toNearestOrEven)
+ /* dqcms404 */ self.comparesig128("-70E-1", "-7.0", "0", .toNearestOrEven)
+ /* dqcms405 */ self.comparesig128("-.7E+1", "-7", "0", .toNearestOrEven)
+ /* dqcms406 */ self.comparesig128("-70E-1", "-7", "0", .toNearestOrEven)
+ /* dqcms407 */ self.comparesig128("-7.0", "-7E+0", "0", .toNearestOrEven)
+ /* dqcms408 */ self.comparesig128("-7.0", "-70E-1", "0", .toNearestOrEven)
+ /* dqcms409 */ self.comparesig128("-7", "-.7E+1", "0", .toNearestOrEven)
+ /* dqcms410 */ self.comparesig128("-7", "-70E-1", "0", .toNearestOrEven)
+ /* dqcms420 */ self.comparesig128("-8.0", "-7.0", "-1", .toNearestOrEven)
+ /* dqcms421 */ self.comparesig128("-8.0", "-7", "-1", .toNearestOrEven)
+ /* dqcms422 */ self.comparesig128("-8", "-7.0", "-1", .toNearestOrEven)
+ /* dqcms423 */ self.comparesig128("-8E+0", "-7.0", "-1", .toNearestOrEven)
+ /* dqcms424 */ self.comparesig128("-80E-1", "-7.0", "-1", .toNearestOrEven)
+ /* dqcms425 */ self.comparesig128("-.8E+1", "-7", "-1", .toNearestOrEven)
+ /* dqcms426 */ self.comparesig128("-80E-1", "-7", "-1", .toNearestOrEven)
+ /* dqcms427 */ self.comparesig128("-8.0", "-7E+0", "-1", .toNearestOrEven)
+ /* dqcms428 */ self.comparesig128("-8.0", "-70E-1", "-1", .toNearestOrEven)
+ /* dqcms429 */ self.comparesig128("-8", "-.7E+1", "-1", .toNearestOrEven)
+ /* dqcms430 */ self.comparesig128("-8", "-70E-1", "-1", .toNearestOrEven)
+ /* dqcms440 */ self.comparesig128("-8.0", "-9.0", "1", .toNearestOrEven)
+ /* dqcms441 */ self.comparesig128("-8.0", "-9", "1", .toNearestOrEven)
+ /* dqcms442 */ self.comparesig128("-8", "-9.0", "1", .toNearestOrEven)
+ /* dqcms443 */ self.comparesig128("-8E+0", "-9.0", "1", .toNearestOrEven)
+ /* dqcms444 */ self.comparesig128("-80E-1", "-9.0", "1", .toNearestOrEven)
+ /* dqcms445 */ self.comparesig128("-.8E+1", "-9", "1", .toNearestOrEven)
+ /* dqcms446 */ self.comparesig128("-80E-1", "-9", "1", .toNearestOrEven)
+ /* dqcms447 */ self.comparesig128("-8.0", "-9E+0", "1", .toNearestOrEven)
+ /* dqcms448 */ self.comparesig128("-8.0", "-90E-1", "1", .toNearestOrEven)
+ /* dqcms449 */ self.comparesig128("-8", "-.9E+1", "1", .toNearestOrEven)
+ /* dqcms450 */ self.comparesig128("-8", "-90E-1", "1", .toNearestOrEven)
+ /* dqcms473 */ self.comparesig128("123.9999999999999999994560000000000E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcms474 */ self.comparesig128("123.999999999999999999456000000000E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcms475 */ self.comparesig128("123.99999999999999999945600000000E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcms476 */ self.comparesig128("123.9999999999999999994560000000E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcms477 */ self.comparesig128("123.999999999999999999456000000E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcms478 */ self.comparesig128("123.99999999999999999945600000E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcms479 */ self.comparesig128("123.9999999999999999994560000E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcms480 */ self.comparesig128("123.999999999999999999456000E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcms481 */ self.comparesig128("123.99999999999999999945600E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcms482 */ self.comparesig128("123.9999999999999999994560E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcms483 */ self.comparesig128("123.999999999999999999456E-89", "123.999999999999999999456E-89", "0", .toNearestOrEven)
+ /* dqcms487 */ self.comparesig128("123.999999999999999999456E+89", "123.9999999999999999994560000000000E+89", "0", .toNearestOrEven)
+ /* dqcms488 */ self.comparesig128("123.999999999999999999456E-89", "123.999999999999999999456000000000E-89", "0", .toNearestOrEven)
+ /* dqcms489 */ self.comparesig128("123.999999999999999999456E+89", "123.99999999999999999945600000000E+89", "0", .toNearestOrEven)
+ /* dqcms490 */ self.comparesig128("123.999999999999999999456E-89", "123.9999999999999999994560000000E-89", "0", .toNearestOrEven)
+ /* dqcms491 */ self.comparesig128("123.999999999999999999456E+89", "123.999999999999999999456000000E+89", "0", .toNearestOrEven)
+ /* dqcms492 */ self.comparesig128("123.999999999999999999456E-89", "123.99999999999999999945600000E-89", "0", .toNearestOrEven)
+ /* dqcms493 */ self.comparesig128("123.999999999999999999456E+89", "123.9999999999999999994560000E+89", "0", .toNearestOrEven)
+ /* dqcms494 */ self.comparesig128("123.999999999999999999456E-89", "123.999999999999999999456000E-89", "0", .toNearestOrEven)
+ /* dqcms495 */ self.comparesig128("123.999999999999999999456E+89", "123.99999999999999999945600E+89", "0", .toNearestOrEven)
+ /* dqcms496 */ self.comparesig128("123.999999999999999999456E-89", "123.9999999999999999994560E-89", "0", .toNearestOrEven)
+ /* dqcms497 */ self.comparesig128("123.999999999999999999456E+89", "123.999999999999999999456E+89", "0", .toNearestOrEven)
+ /* dqcms500 */ self.comparesig128("1", "1E-15", "1", .toNearestOrEven)
+ /* dqcms501 */ self.comparesig128("1", "1E-14", "1", .toNearestOrEven)
+ /* dqcms502 */ self.comparesig128("1", "1E-13", "1", .toNearestOrEven)
+ /* dqcms503 */ self.comparesig128("1", "1E-12", "1", .toNearestOrEven)
+ /* dqcms504 */ self.comparesig128("1", "1E-11", "1", .toNearestOrEven)
+ /* dqcms505 */ self.comparesig128("1", "1E-10", "1", .toNearestOrEven)
+ /* dqcms506 */ self.comparesig128("1", "1E-9", "1", .toNearestOrEven)
+ /* dqcms507 */ self.comparesig128("1", "1E-8", "1", .toNearestOrEven)
+ /* dqcms508 */ self.comparesig128("1", "1E-7", "1", .toNearestOrEven)
+ /* dqcms509 */ self.comparesig128("1", "1E-6", "1", .toNearestOrEven)
+ /* dqcms510 */ self.comparesig128("1", "1E-5", "1", .toNearestOrEven)
+ /* dqcms511 */ self.comparesig128("1", "1E-4", "1", .toNearestOrEven)
+ /* dqcms512 */ self.comparesig128("1", "1E-3", "1", .toNearestOrEven)
+ /* dqcms513 */ self.comparesig128("1", "1E-2", "1", .toNearestOrEven)
+ /* dqcms514 */ self.comparesig128("1", "1E-1", "1", .toNearestOrEven)
+ /* dqcms515 */ self.comparesig128("1", "1E-0", "0", .toNearestOrEven)
+ /* dqcms516 */ self.comparesig128("1", "1E+1", "-1", .toNearestOrEven)
+ /* dqcms517 */ self.comparesig128("1", "1E+2", "-1", .toNearestOrEven)
+ /* dqcms518 */ self.comparesig128("1", "1E+3", "-1", .toNearestOrEven)
+ /* dqcms519 */ self.comparesig128("1", "1E+4", "-1", .toNearestOrEven)
+ /* dqcms521 */ self.comparesig128("1", "1E+5", "-1", .toNearestOrEven)
+ /* dqcms522 */ self.comparesig128("1", "1E+6", "-1", .toNearestOrEven)
+ /* dqcms523 */ self.comparesig128("1", "1E+7", "-1", .toNearestOrEven)
+ /* dqcms524 */ self.comparesig128("1", "1E+8", "-1", .toNearestOrEven)
+ /* dqcms525 */ self.comparesig128("1", "1E+9", "-1", .toNearestOrEven)
+ /* dqcms526 */ self.comparesig128("1", "1E+10", "-1", .toNearestOrEven)
+ /* dqcms527 */ self.comparesig128("1", "1E+11", "-1", .toNearestOrEven)
+ /* dqcms528 */ self.comparesig128("1", "1E+12", "-1", .toNearestOrEven)
+ /* dqcms529 */ self.comparesig128("1", "1E+13", "-1", .toNearestOrEven)
+ /* dqcms530 */ self.comparesig128("1", "1E+14", "-1", .toNearestOrEven)
+ /* dqcms531 */ self.comparesig128("1", "1E+15", "-1", .toNearestOrEven)
+ /* dqcms540 */ self.comparesig128("1E-15", "1", "-1", .toNearestOrEven)
+ /* dqcms541 */ self.comparesig128("1E-14", "1", "-1", .toNearestOrEven)
+ /* dqcms542 */ self.comparesig128("1E-13", "1", "-1", .toNearestOrEven)
+ /* dqcms543 */ self.comparesig128("1E-12", "1", "-1", .toNearestOrEven)
+ /* dqcms544 */ self.comparesig128("1E-11", "1", "-1", .toNearestOrEven)
+ /* dqcms545 */ self.comparesig128("1E-10", "1", "-1", .toNearestOrEven)
+ /* dqcms546 */ self.comparesig128("1E-9", "1", "-1", .toNearestOrEven)
+ /* dqcms547 */ self.comparesig128("1E-8", "1", "-1", .toNearestOrEven)
+ /* dqcms548 */ self.comparesig128("1E-7", "1", "-1", .toNearestOrEven)
+ /* dqcms549 */ self.comparesig128("1E-6", "1", "-1", .toNearestOrEven)
+ /* dqcms550 */ self.comparesig128("1E-5", "1", "-1", .toNearestOrEven)
+ /* dqcms551 */ self.comparesig128("1E-4", "1", "-1", .toNearestOrEven)
+ /* dqcms552 */ self.comparesig128("1E-3", "1", "-1", .toNearestOrEven)
+ /* dqcms553 */ self.comparesig128("1E-2", "1", "-1", .toNearestOrEven)
+ /* dqcms554 */ self.comparesig128("1E-1", "1", "-1", .toNearestOrEven)
+ /* dqcms555 */ self.comparesig128("1E-0", "1", "0", .toNearestOrEven)
+ /* dqcms556 */ self.comparesig128("1E+1", "1", "1", .toNearestOrEven)
+ /* dqcms557 */ self.comparesig128("1E+2", "1", "1", .toNearestOrEven)
+ /* dqcms558 */ self.comparesig128("1E+3", "1", "1", .toNearestOrEven)
+ /* dqcms559 */ self.comparesig128("1E+4", "1", "1", .toNearestOrEven)
+ /* dqcms561 */ self.comparesig128("1E+5", "1", "1", .toNearestOrEven)
+ /* dqcms562 */ self.comparesig128("1E+6", "1", "1", .toNearestOrEven)
+ /* dqcms563 */ self.comparesig128("1E+7", "1", "1", .toNearestOrEven)
+ /* dqcms564 */ self.comparesig128("1E+8", "1", "1", .toNearestOrEven)
+ /* dqcms565 */ self.comparesig128("1E+9", "1", "1", .toNearestOrEven)
+ /* dqcms566 */ self.comparesig128("1E+10", "1", "1", .toNearestOrEven)
+ /* dqcms567 */ self.comparesig128("1E+11", "1", "1", .toNearestOrEven)
+ /* dqcms568 */ self.comparesig128("1E+12", "1", "1", .toNearestOrEven)
+ /* dqcms569 */ self.comparesig128("1E+13", "1", "1", .toNearestOrEven)
+ /* dqcms570 */ self.comparesig128("1E+14", "1", "1", .toNearestOrEven)
+ /* dqcms571 */ self.comparesig128("1E+15", "1", "1", .toNearestOrEven)
+ /* dqcms580 */ self.comparesig128("0.000000987654321", "1E-15", "1", .toNearestOrEven)
+ /* dqcms581 */ self.comparesig128("0.000000987654321", "1E-14", "1", .toNearestOrEven)
+ /* dqcms582 */ self.comparesig128("0.000000987654321", "1E-13", "1", .toNearestOrEven)
+ /* dqcms583 */ self.comparesig128("0.000000987654321", "1E-12", "1", .toNearestOrEven)
+ /* dqcms584 */ self.comparesig128("0.000000987654321", "1E-11", "1", .toNearestOrEven)
+ /* dqcms585 */ self.comparesig128("0.000000987654321", "1E-10", "1", .toNearestOrEven)
+ /* dqcms586 */ self.comparesig128("0.000000987654321", "1E-9", "1", .toNearestOrEven)
+ /* dqcms587 */ self.comparesig128("0.000000987654321", "1E-8", "1", .toNearestOrEven)
+ /* dqcms588 */ self.comparesig128("0.000000987654321", "1E-7", "1", .toNearestOrEven)
+ /* dqcms589 */ self.comparesig128("0.000000987654321", "1E-6", "-1", .toNearestOrEven)
+ /* dqcms590 */ self.comparesig128("0.000000987654321", "1E-5", "-1", .toNearestOrEven)
+ /* dqcms591 */ self.comparesig128("0.000000987654321", "1E-4", "-1", .toNearestOrEven)
+ /* dqcms592 */ self.comparesig128("0.000000987654321", "1E-3", "-1", .toNearestOrEven)
+ /* dqcms593 */ self.comparesig128("0.000000987654321", "1E-2", "-1", .toNearestOrEven)
+ /* dqcms594 */ self.comparesig128("0.000000987654321", "1E-1", "-1", .toNearestOrEven)
+ /* dqcms595 */ self.comparesig128("0.000000987654321", "1E-0", "-1", .toNearestOrEven)
+ /* dqcms596 */ self.comparesig128("0.000000987654321", "1E+1", "-1", .toNearestOrEven)
+ /* dqcms597 */ self.comparesig128("0.000000987654321", "1E+2", "-1", .toNearestOrEven)
+ /* dqcms598 */ self.comparesig128("0.000000987654321", "1E+3", "-1", .toNearestOrEven)
+ /* dqcms599 */ self.comparesig128("0.000000987654321", "1E+4", "-1", .toNearestOrEven)
+ /* dqcms600 */ self.comparesig128("12", "12.2345", "-1", .toNearestOrEven)
+ /* dqcms601 */ self.comparesig128("12.0", "12.2345", "-1", .toNearestOrEven)
+ /* dqcms602 */ self.comparesig128("12.00", "12.2345", "-1", .toNearestOrEven)
+ /* dqcms603 */ self.comparesig128("12.000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcms604 */ self.comparesig128("12.0000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcms605 */ self.comparesig128("12.00000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcms606 */ self.comparesig128("12.000000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcms607 */ self.comparesig128("12.0000000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcms608 */ self.comparesig128("12.00000000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcms609 */ self.comparesig128("12.000000000", "12.2345", "-1", .toNearestOrEven)
+ /* dqcms610 */ self.comparesig128("12.1234", "12", "1", .toNearestOrEven)
+ /* dqcms611 */ self.comparesig128("12.1234", "12.0", "1", .toNearestOrEven)
+ /* dqcms612 */ self.comparesig128("12.1234", "12.00", "1", .toNearestOrEven)
+ /* dqcms613 */ self.comparesig128("12.1234", "12.000", "1", .toNearestOrEven)
+ /* dqcms614 */ self.comparesig128("12.1234", "12.0000", "1", .toNearestOrEven)
+ /* dqcms615 */ self.comparesig128("12.1234", "12.00000", "1", .toNearestOrEven)
+ /* dqcms616 */ self.comparesig128("12.1234", "12.000000", "1", .toNearestOrEven)
+ /* dqcms617 */ self.comparesig128("12.1234", "12.0000000", "1", .toNearestOrEven)
+ /* dqcms618 */ self.comparesig128("12.1234", "12.00000000", "1", .toNearestOrEven)
+ /* dqcms619 */ self.comparesig128("12.1234", "12.000000000", "1", .toNearestOrEven)
+ /* dqcms620 */ self.comparesig128("-12", "-12.2345", "1", .toNearestOrEven)
+ /* dqcms621 */ self.comparesig128("-12.0", "-12.2345", "1", .toNearestOrEven)
+ /* dqcms622 */ self.comparesig128("-12.00", "-12.2345", "1", .toNearestOrEven)
+ /* dqcms623 */ self.comparesig128("-12.000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcms624 */ self.comparesig128("-12.0000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcms625 */ self.comparesig128("-12.00000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcms626 */ self.comparesig128("-12.000000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcms627 */ self.comparesig128("-12.0000000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcms628 */ self.comparesig128("-12.00000000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcms629 */ self.comparesig128("-12.000000000", "-12.2345", "1", .toNearestOrEven)
+ /* dqcms630 */ self.comparesig128("-12.1234", "-12", "-1", .toNearestOrEven)
+ /* dqcms631 */ self.comparesig128("-12.1234", "-12.0", "-1", .toNearestOrEven)
+ /* dqcms632 */ self.comparesig128("-12.1234", "-12.00", "-1", .toNearestOrEven)
+ /* dqcms633 */ self.comparesig128("-12.1234", "-12.000", "-1", .toNearestOrEven)
+ /* dqcms634 */ self.comparesig128("-12.1234", "-12.0000", "-1", .toNearestOrEven)
+ /* dqcms635 */ self.comparesig128("-12.1234", "-12.00000", "-1", .toNearestOrEven)
+ /* dqcms636 */ self.comparesig128("-12.1234", "-12.000000", "-1", .toNearestOrEven)
+ /* dqcms637 */ self.comparesig128("-12.1234", "-12.0000000", "-1", .toNearestOrEven)
+ /* dqcms638 */ self.comparesig128("-12.1234", "-12.00000000", "-1", .toNearestOrEven)
+ /* dqcms639 */ self.comparesig128("-12.1234", "-12.000000000", "-1", .toNearestOrEven)
+ /* dqcms640 */ self.comparesig128("0", "0", "0", .toNearestOrEven)
+ /* dqcms641 */ self.comparesig128("0", "-0", "0", .toNearestOrEven)
+ /* dqcms642 */ self.comparesig128("0", "-0.0", "0", .toNearestOrEven)
+ /* dqcms643 */ self.comparesig128("0", "0.0", "0", .toNearestOrEven)
+ /* dqcms644 */ self.comparesig128("-0", "0", "0", .toNearestOrEven)
+ /* dqcms645 */ self.comparesig128("-0", "-0", "0", .toNearestOrEven)
+ /* dqcms646 */ self.comparesig128("-0", "-0.0", "0", .toNearestOrEven)
+ /* dqcms647 */ self.comparesig128("-0", "0.0", "0", .toNearestOrEven)
+ /* dqcms648 */ self.comparesig128("0.0", "0", "0", .toNearestOrEven)
+ /* dqcms649 */ self.comparesig128("0.0", "-0", "0", .toNearestOrEven)
+ /* dqcms650 */ self.comparesig128("0.0", "-0.0", "0", .toNearestOrEven)
+ /* dqcms651 */ self.comparesig128("0.0", "0.0", "0", .toNearestOrEven)
+ /* dqcms652 */ self.comparesig128("-0.0", "0", "0", .toNearestOrEven)
+ /* dqcms653 */ self.comparesig128("-0.0", "-0", "0", .toNearestOrEven)
+ /* dqcms654 */ self.comparesig128("-0.0", "-0.0", "0", .toNearestOrEven)
+ /* dqcms655 */ self.comparesig128("-0.0", "0.0", "0", .toNearestOrEven)
+ /* dqcms656 */ self.comparesig128("-0E1", "0.0", "0", .toNearestOrEven)
+ /* dqcms657 */ self.comparesig128("-0E2", "0.0", "0", .toNearestOrEven)
+ /* dqcms658 */ self.comparesig128("0E1", "0.0", "0", .toNearestOrEven)
+ /* dqcms659 */ self.comparesig128("0E2", "0.0", "0", .toNearestOrEven)
+ /* dqcms660 */ self.comparesig128("-0E1", "0", "0", .toNearestOrEven)
+ /* dqcms661 */ self.comparesig128("-0E2", "0", "0", .toNearestOrEven)
+ /* dqcms662 */ self.comparesig128("0E1", "0", "0", .toNearestOrEven)
+ /* dqcms663 */ self.comparesig128("0E2", "0", "0", .toNearestOrEven)
+ /* dqcms664 */ self.comparesig128("-0E1", "-0E1", "0", .toNearestOrEven)
+ /* dqcms665 */ self.comparesig128("-0E2", "-0E1", "0", .toNearestOrEven)
+ /* dqcms666 */ self.comparesig128("0E1", "-0E1", "0", .toNearestOrEven)
+ /* dqcms667 */ self.comparesig128("0E2", "-0E1", "0", .toNearestOrEven)
+ /* dqcms668 */ self.comparesig128("-0E1", "-0E2", "0", .toNearestOrEven)
+ /* dqcms669 */ self.comparesig128("-0E2", "-0E2", "0", .toNearestOrEven)
+ /* dqcms670 */ self.comparesig128("0E1", "-0E2", "0", .toNearestOrEven)
+ /* dqcms671 */ self.comparesig128("0E2", "-0E2", "0", .toNearestOrEven)
+ /* dqcms672 */ self.comparesig128("-0E1", "0E1", "0", .toNearestOrEven)
+ /* dqcms673 */ self.comparesig128("-0E2", "0E1", "0", .toNearestOrEven)
+ /* dqcms674 */ self.comparesig128("0E1", "0E1", "0", .toNearestOrEven)
+ /* dqcms675 */ self.comparesig128("0E2", "0E1", "0", .toNearestOrEven)
+ /* dqcms676 */ self.comparesig128("-0E1", "0E2", "0", .toNearestOrEven)
+ /* dqcms677 */ self.comparesig128("-0E2", "0E2", "0", .toNearestOrEven)
+ /* dqcms678 */ self.comparesig128("0E1", "0E2", "0", .toNearestOrEven)
+ /* dqcms679 */ self.comparesig128("0E2", "0E2", "0", .toNearestOrEven)
+ /* dqcms680 */ self.comparesig128("12", "12", "0", .toNearestOrEven)
+ /* dqcms681 */ self.comparesig128("12", "12.0", "0", .toNearestOrEven)
+ /* dqcms682 */ self.comparesig128("12", "12.00", "0", .toNearestOrEven)
+ /* dqcms683 */ self.comparesig128("12", "12.000", "0", .toNearestOrEven)
+ /* dqcms684 */ self.comparesig128("12", "12.0000", "0", .toNearestOrEven)
+ /* dqcms685 */ self.comparesig128("12", "12.00000", "0", .toNearestOrEven)
+ /* dqcms686 */ self.comparesig128("12", "12.000000", "0", .toNearestOrEven)
+ /* dqcms687 */ self.comparesig128("12", "12.0000000", "0", .toNearestOrEven)
+ /* dqcms688 */ self.comparesig128("12", "12.00000000", "0", .toNearestOrEven)
+ /* dqcms689 */ self.comparesig128("12", "12.000000000", "0", .toNearestOrEven)
+ /* dqcms690 */ self.comparesig128("12", "12", "0", .toNearestOrEven)
+ /* dqcms691 */ self.comparesig128("12.0", "12", "0", .toNearestOrEven)
+ /* dqcms692 */ self.comparesig128("12.00", "12", "0", .toNearestOrEven)
+ /* dqcms693 */ self.comparesig128("12.000", "12", "0", .toNearestOrEven)
+ /* dqcms694 */ self.comparesig128("12.0000", "12", "0", .toNearestOrEven)
+ /* dqcms695 */ self.comparesig128("12.00000", "12", "0", .toNearestOrEven)
+ /* dqcms696 */ self.comparesig128("12.000000", "12", "0", .toNearestOrEven)
+ /* dqcms697 */ self.comparesig128("12.0000000", "12", "0", .toNearestOrEven)
+ /* dqcms698 */ self.comparesig128("12.00000000", "12", "0", .toNearestOrEven)
+ /* dqcms699 */ self.comparesig128("12.000000000", "12", "0", .toNearestOrEven)
+ /* dqcms700 */ self.comparesig128("1234567899999999999999999990123456", "1234567899999999999999999990123455", "1", .toNearestOrEven)
+ /* dqcms701 */ self.comparesig128("1234567899999999999999999990123456", "1234567899999999999999999990123456", "0", .toNearestOrEven)
+ /* dqcms702 */ self.comparesig128("1234567899999999999999999990123456", "1234567899999999999999999990123457", "-1", .toNearestOrEven)
+ /* dqcms703 */ self.comparesig128("1234567899999999999999999990123456", "0234567899999999999999999990123456", "1", .toNearestOrEven)
+ /* dqcms704 */ self.comparesig128("1234567899999999999999999990123456", "1234567899999999999999999990123456", "0", .toNearestOrEven)
+ /* dqcms705 */ self.comparesig128("1234567899999999999999999990123456", "2234567899999999999999999990123456", "-1", .toNearestOrEven)
+ /* dqcms706 */ self.comparesig128("1134567899999999999999999990123456", "1034567899999999999999999990123456", "1", .toNearestOrEven)
+ /* dqcms707 */ self.comparesig128("1134567899999999999999999990123456", "1134567899999999999999999990123456", "0", .toNearestOrEven)
+ /* dqcms708 */ self.comparesig128("1134567899999999999999999990123456", "1234567899999999999999999990123456", "-1", .toNearestOrEven)
+ /* dqcms721 */ self.comparesig128("12345678000", "1", "1", .toNearestOrEven)
+ /* dqcms722 */ self.comparesig128("1", "12345678000", "-1", .toNearestOrEven)
+ /* dqcms723 */ self.comparesig128("1234567800", "1", "1", .toNearestOrEven)
+ /* dqcms724 */ self.comparesig128("1", "1234567800", "-1", .toNearestOrEven)
+ /* dqcms725 */ self.comparesig128("1234567890", "1", "1", .toNearestOrEven)
+ /* dqcms726 */ self.comparesig128("1", "1234567890", "-1", .toNearestOrEven)
+ /* dqcms727 */ self.comparesig128("1234567891", "1", "1", .toNearestOrEven)
+ /* dqcms728 */ self.comparesig128("1", "1234567891", "-1", .toNearestOrEven)
+ /* dqcms729 */ self.comparesig128("12345678901", "1", "1", .toNearestOrEven)
+ /* dqcms730 */ self.comparesig128("1", "12345678901", "-1", .toNearestOrEven)
+ /* dqcms731 */ self.comparesig128("1234567896", "1", "1", .toNearestOrEven)
+ /* dqcms732 */ self.comparesig128("1", "1234567896", "-1", .toNearestOrEven)
+ /* dqcms740 */ self.comparesig128("1", "0.9999999", "1", .toNearestOrEven)
+ /* dqcms741 */ self.comparesig128("1", "0.999999", "1", .toNearestOrEven)
+ /* dqcms742 */ self.comparesig128("1", "0.99999", "1", .toNearestOrEven)
+ /* dqcms743 */ self.comparesig128("1", "1.0000", "0", .toNearestOrEven)
+ /* dqcms744 */ self.comparesig128("1", "1.00001", "-1", .toNearestOrEven)
+ /* dqcms745 */ self.comparesig128("1", "1.000001", "-1", .toNearestOrEven)
+ /* dqcms746 */ self.comparesig128("1", "1.0000001", "-1", .toNearestOrEven)
+ /* dqcms750 */ self.comparesig128("0.9999999", "1", "-1", .toNearestOrEven)
+ /* dqcms751 */ self.comparesig128("0.999999", "1", "-1", .toNearestOrEven)
+ /* dqcms752 */ self.comparesig128("0.99999", "1", "-1", .toNearestOrEven)
+ /* dqcms753 */ self.comparesig128("1.0000", "1", "0", .toNearestOrEven)
+ /* dqcms754 */ self.comparesig128("1.00001", "1", "1", .toNearestOrEven)
+ /* dqcms755 */ self.comparesig128("1.000001", "1", "1", .toNearestOrEven)
+ /* dqcms756 */ self.comparesig128("1.0000001", "1", "1", .toNearestOrEven)
+ /* dqcms780 */ self.comparesig128("Inf", "-Inf", "1", .toNearestOrEven)
+ /* dqcms781 */ self.comparesig128("Inf", "-1000", "1", .toNearestOrEven)
+ /* dqcms782 */ self.comparesig128("Inf", "-1", "1", .toNearestOrEven)
+ /* dqcms783 */ self.comparesig128("Inf", "-0", "1", .toNearestOrEven)
+ /* dqcms784 */ self.comparesig128("Inf", "0", "1", .toNearestOrEven)
+ /* dqcms785 */ self.comparesig128("Inf", "1", "1", .toNearestOrEven)
+ /* dqcms786 */ self.comparesig128("Inf", "1000", "1", .toNearestOrEven)
+ /* dqcms787 */ self.comparesig128("Inf", "Inf", "0", .toNearestOrEven)
+ /* dqcms788 */ self.comparesig128("-1000", "Inf", "-1", .toNearestOrEven)
+ /* dqcms789 */ self.comparesig128("-Inf", "Inf", "-1", .toNearestOrEven)
+ /* dqcms790 */ self.comparesig128("-1", "Inf", "-1", .toNearestOrEven)
+ /* dqcms791 */ self.comparesig128("-0", "Inf", "-1", .toNearestOrEven)
+ /* dqcms792 */ self.comparesig128("0", "Inf", "-1", .toNearestOrEven)
+ /* dqcms793 */ self.comparesig128("1", "Inf", "-1", .toNearestOrEven)
+ /* dqcms794 */ self.comparesig128("1000", "Inf", "-1", .toNearestOrEven)
+ /* dqcms795 */ self.comparesig128("Inf", "Inf", "0", .toNearestOrEven)
+ /* dqcms800 */ self.comparesig128("-Inf", "-Inf", "0", .toNearestOrEven)
+ /* dqcms801 */ self.comparesig128("-Inf", "-1000", "-1", .toNearestOrEven)
+ /* dqcms802 */ self.comparesig128("-Inf", "-1", "-1", .toNearestOrEven)
+ /* dqcms803 */ self.comparesig128("-Inf", "-0", "-1", .toNearestOrEven)
+ /* dqcms804 */ self.comparesig128("-Inf", "0", "-1", .toNearestOrEven)
+ /* dqcms805 */ self.comparesig128("-Inf", "1", "-1", .toNearestOrEven)
+ /* dqcms806 */ self.comparesig128("-Inf", "1000", "-1", .toNearestOrEven)
+ /* dqcms807 */ self.comparesig128("-Inf", "Inf", "-1", .toNearestOrEven)
+ /* dqcms808 */ self.comparesig128("-Inf", "-Inf", "0", .toNearestOrEven)
+ /* dqcms809 */ self.comparesig128("-1000", "-Inf", "1", .toNearestOrEven)
+ /* dqcms810 */ self.comparesig128("-1", "-Inf", "1", .toNearestOrEven)
+ /* dqcms811 */ self.comparesig128("-0", "-Inf", "1", .toNearestOrEven)
+ /* dqcms812 */ self.comparesig128("0", "-Inf", "1", .toNearestOrEven)
+ /* dqcms813 */ self.comparesig128("1", "-Inf", "1", .toNearestOrEven)
+ /* dqcms814 */ self.comparesig128("1000", "-Inf", "1", .toNearestOrEven)
+ /* dqcms815 */ self.comparesig128("Inf", "-Inf", "1", .toNearestOrEven)
+ /* dqcms821 */ self.comparesig128("NaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms822 */ self.comparesig128("NaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms823 */ self.comparesig128("NaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms824 */ self.comparesig128("NaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms825 */ self.comparesig128("NaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms826 */ self.comparesig128("NaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms827 */ self.comparesig128("NaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms828 */ self.comparesig128("NaN", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms829 */ self.comparesig128("NaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms830 */ self.comparesig128("-Inf", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms831 */ self.comparesig128("-1000", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms832 */ self.comparesig128("-1", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms833 */ self.comparesig128("-0", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms834 */ self.comparesig128("0", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms835 */ self.comparesig128("1", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms836 */ self.comparesig128("1000", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms837 */ self.comparesig128("Inf", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms838 */ self.comparesig128("-NaN", "-NaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms839 */ self.comparesig128("+NaN", "-NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms840 */ self.comparesig128("-NaN", "+NaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms841 */ self.comparesig128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms842 */ self.comparesig128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms843 */ self.comparesig128("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms844 */ self.comparesig128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms845 */ self.comparesig128("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms846 */ self.comparesig128("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms847 */ self.comparesig128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms848 */ self.comparesig128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms849 */ self.comparesig128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms850 */ self.comparesig128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms851 */ self.comparesig128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms852 */ self.comparesig128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms853 */ self.comparesig128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms854 */ self.comparesig128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms855 */ self.comparesig128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms856 */ self.comparesig128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms857 */ self.comparesig128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms858 */ self.comparesig128("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms859 */ self.comparesig128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms860 */ self.comparesig128("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms861 */ self.comparesig128("NaN(0x8)", "999", "NaN(0x8)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms862 */ self.comparesig128("NaN(0x4d)", "Inf", "NaN(0x4d)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms863 */ self.comparesig128("-NaN(0x43)", "NaN(0x5)", "-NaN(0x43)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms864 */ self.comparesig128("-Inf", "-NaN(0x4)", "-NaN(0x4)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms865 */ self.comparesig128("-999", "-NaN(0x21)", "-NaN(0x21)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms866 */ self.comparesig128("Inf", "NaN(0x2)", "NaN(0x2)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms867 */ self.comparesig128("-NaN(0x29)", "-NaN(0x2a)", "-NaN(0x29)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms868 */ self.comparesig128("+NaN(0x29)", "-NaN(0x2a)", "NaN(0x29)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms869 */ self.comparesig128("-NaN(0x29)", "+NaN(0x2a)", "-NaN(0x29)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms870 */ self.comparesig128("+NaN(0x29)", "+NaN(0x2a)", "NaN(0x29)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms871 */ self.comparesig128("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms872 */ self.comparesig128("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms873 */ self.comparesig128("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms874 */ self.comparesig128("sNaN(0x10)", "sNaN(0x5e)", "NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms875 */ self.comparesig128("NaN(0x55)", "sNaN(0x53)", "NaN(0x53)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms876 */ self.comparesig128("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms877 */ self.comparesig128("088", "sNaN(0x51)", "NaN(0x51)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms878 */ self.comparesig128("Inf", "sNaN(0x5a)", "NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms879 */ self.comparesig128("NaN", "-sNaN(0x59)", "-NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* dqcms880 */ self.comparesig128("+1.23456789012345E-0", "9E+6144", "-1", .toNearestOrEven)
+ /* dqcms881 */ self.comparesig128("9E+6144", "+1.23456789012345E-0", "1", .toNearestOrEven)
+ /* dqcms882 */ self.comparesig128("+0.100", "9E-6143", "1", .toNearestOrEven)
+ /* dqcms883 */ self.comparesig128("9E-6143", "+0.100", "-1", .toNearestOrEven)
+ /* dqcms885 */ self.comparesig128("-1.23456789012345E-0", "9E+6144", "-1", .toNearestOrEven)
+ /* dqcms886 */ self.comparesig128("9E+6144", "-1.23456789012345E-0", "1", .toNearestOrEven)
+ /* dqcms887 */ self.comparesig128("-0.100", "9E-6143", "-1", .toNearestOrEven)
+ /* dqcms888 */ self.comparesig128("9E-6143", "-0.100", "1", .toNearestOrEven)
+ /* dqcms901 */ self.comparesig128("1e+77", "1e+11", "1", .toNearestOrEven)
+ /* dqcms902 */ self.comparesig128("1e+77", "-1e+11", "1", .toNearestOrEven)
+ /* dqcms903 */ self.comparesig128("-1e+77", "1e+11", "-1", .toNearestOrEven)
+ /* dqcms904 */ self.comparesig128("-1e+77", "-1e+11", "-1", .toNearestOrEven)
+ /* dqcms905 */ self.comparesig128("1e-77", "1e-11", "-1", .toNearestOrEven)
+ /* dqcms906 */ self.comparesig128("1e-77", "-1e-11", "1", .toNearestOrEven)
+ /* dqcms907 */ self.comparesig128("-1e-77", "1e-11", "-1", .toNearestOrEven)
+ /* dqcms908 */ self.comparesig128("-1e-77", "-1e-11", "1", .toNearestOrEven)
+ }
+
+ private func comparesig128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ self.assertCompareSignaling(
+ arg0,
+ arg1,
+ status: &status,
+ expected: expected,
+ expectedStatus: expectedStatus,
+ file,
+ line
+ )
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveDivTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveDivTests.swift
new file mode 100644
index 0000000..9b29ae5
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveDivTests.swift
@@ -0,0 +1,2232 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveDivTests: XCTestCase, SpeleotroveMixin {
+
+ // MARK: - Divide
+
+ func test_divide64() {
+ /* dddiv001 */ self.divide64("1", "1", "1", .toNearestOrEven)
+ /* dddiv002 */ self.divide64("2", "1", "2", .toNearestOrEven)
+ /* dddiv003 */ self.divide64("1", "2", "0.5", .toNearestOrEven)
+ /* dddiv004 */ self.divide64("2", "2", "1", .toNearestOrEven)
+ /* dddiv005 */ self.divide64("0", "1", "0", .toNearestOrEven)
+ /* dddiv006 */ self.divide64("0", "2", "0", .toNearestOrEven)
+ /* dddiv007 */ self.divide64("1", "3", "0.3333333333333333", .toNearestOrEven, .isInexact)
+ /* dddiv008 */ self.divide64("2", "3", "0.6666666666666667", .toNearestOrEven, .isInexact)
+ /* dddiv009 */ self.divide64("3", "3", "1", .toNearestOrEven)
+ /* dddiv010 */ self.divide64("2.4", "1", "2.4", .toNearestOrEven)
+ /* dddiv011 */ self.divide64("2.4", "-1", "-2.4", .toNearestOrEven)
+ /* dddiv012 */ self.divide64("-2.4", "1", "-2.4", .toNearestOrEven)
+ /* dddiv013 */ self.divide64("-2.4", "-1", "2.4", .toNearestOrEven)
+ /* dddiv014 */ self.divide64("2.40", "1", "2.40", .toNearestOrEven)
+ /* dddiv015 */ self.divide64("2.400", "1", "2.400", .toNearestOrEven)
+ /* dddiv016 */ self.divide64("2.4", "2", "1.2", .toNearestOrEven)
+ /* dddiv017 */ self.divide64("2.400", "2", "1.200", .toNearestOrEven)
+ /* dddiv018 */ self.divide64("2.", "2", "1", .toNearestOrEven)
+ /* dddiv019 */ self.divide64("20", "20", "1", .toNearestOrEven)
+ /* dddiv020 */ self.divide64("187", "187", "1", .toNearestOrEven)
+ /* dddiv021 */ self.divide64("5", "2", "2.5", .toNearestOrEven)
+ /* dddiv022 */ self.divide64("50", "20", "2.5", .toNearestOrEven)
+ /* dddiv023 */ self.divide64("500", "200", "2.5", .toNearestOrEven)
+ /* dddiv024 */ self.divide64("50.0", "20.0", "2.5", .toNearestOrEven)
+ /* dddiv025 */ self.divide64("5.00", "2.00", "2.5", .toNearestOrEven)
+ /* dddiv026 */ self.divide64("5", "2.0", "2.5", .toNearestOrEven)
+ /* dddiv027 */ self.divide64("5", "2.000", "2.5", .toNearestOrEven)
+ /* dddiv028 */ self.divide64("5", "0.20", "25", .toNearestOrEven)
+ /* dddiv029 */ self.divide64("5", "0.200", "25", .toNearestOrEven)
+ /* dddiv030 */ self.divide64("10", "1", "10", .toNearestOrEven)
+ /* dddiv031 */ self.divide64("100", "1", "100", .toNearestOrEven)
+ /* dddiv032 */ self.divide64("1000", "1", "1000", .toNearestOrEven)
+ /* dddiv033 */ self.divide64("1000", "100", "10", .toNearestOrEven)
+ /* dddiv035 */ self.divide64("1", "2", "0.5", .toNearestOrEven)
+ /* dddiv036 */ self.divide64("1", "4", "0.25", .toNearestOrEven)
+ /* dddiv037 */ self.divide64("1", "8", "0.125", .toNearestOrEven)
+ /* dddiv038 */ self.divide64("1", "16", "0.0625", .toNearestOrEven)
+ /* dddiv039 */ self.divide64("1", "32", "0.03125", .toNearestOrEven)
+ /* dddiv040 */ self.divide64("1", "64", "0.015625", .toNearestOrEven)
+ /* dddiv041 */ self.divide64("1", "-2", "-0.5", .toNearestOrEven)
+ /* dddiv042 */ self.divide64("1", "-4", "-0.25", .toNearestOrEven)
+ /* dddiv043 */ self.divide64("1", "-8", "-0.125", .toNearestOrEven)
+ /* dddiv044 */ self.divide64("1", "-16", "-0.0625", .toNearestOrEven)
+ /* dddiv045 */ self.divide64("1", "-32", "-0.03125", .toNearestOrEven)
+ /* dddiv046 */ self.divide64("1", "-64", "-0.015625", .toNearestOrEven)
+ /* dddiv047 */ self.divide64("-1", "2", "-0.5", .toNearestOrEven)
+ /* dddiv048 */ self.divide64("-1", "4", "-0.25", .toNearestOrEven)
+ /* dddiv049 */ self.divide64("-1", "8", "-0.125", .toNearestOrEven)
+ /* dddiv050 */ self.divide64("-1", "16", "-0.0625", .toNearestOrEven)
+ /* dddiv051 */ self.divide64("-1", "32", "-0.03125", .toNearestOrEven)
+ /* dddiv052 */ self.divide64("-1", "64", "-0.015625", .toNearestOrEven)
+ /* dddiv053 */ self.divide64("-1", "-2", "0.5", .toNearestOrEven)
+ /* dddiv054 */ self.divide64("-1", "-4", "0.25", .toNearestOrEven)
+ /* dddiv055 */ self.divide64("-1", "-8", "0.125", .toNearestOrEven)
+ /* dddiv056 */ self.divide64("-1", "-16", "0.0625", .toNearestOrEven)
+ /* dddiv057 */ self.divide64("-1", "-32", "0.03125", .toNearestOrEven)
+ /* dddiv058 */ self.divide64("-1", "-64", "0.015625", .toNearestOrEven)
+ /* dddiv060 */ self.divide64("1", "7", "0.1428571428571429", .toNearestOrEven, .isInexact)
+ /* dddiv061 */ self.divide64("1.2345678", "1.9876543", "0.6211179680490717", .toNearestOrEven, .isInexact)
+ /* dddiv071 */ self.divide64("9999999999999999", "1", "9999999999999999", .toNearestOrEven)
+ /* dddiv072 */ self.divide64("999999999999999", "1", "999999999999999", .toNearestOrEven)
+ /* dddiv073 */ self.divide64("99999999999999", "1", "99999999999999", .toNearestOrEven)
+ /* dddiv074 */ self.divide64("9999999999999", "1", "9999999999999", .toNearestOrEven)
+ /* dddiv075 */ self.divide64("999999999999", "1", "999999999999", .toNearestOrEven)
+ /* dddiv076 */ self.divide64("99999999999", "1", "99999999999", .toNearestOrEven)
+ /* dddiv077 */ self.divide64("9999999999", "1", "9999999999", .toNearestOrEven)
+ /* dddiv078 */ self.divide64("999999999", "1", "999999999", .toNearestOrEven)
+ /* dddiv079 */ self.divide64("99999999", "1", "99999999", .toNearestOrEven)
+ /* dddiv080 */ self.divide64("9999999", "1", "9999999", .toNearestOrEven)
+ /* dddiv081 */ self.divide64("999999", "1", "999999", .toNearestOrEven)
+ /* dddiv082 */ self.divide64("99999", "1", "99999", .toNearestOrEven)
+ /* dddiv083 */ self.divide64("9999", "1", "9999", .toNearestOrEven)
+ /* dddiv084 */ self.divide64("999", "1", "999", .toNearestOrEven)
+ /* dddiv085 */ self.divide64("99", "1", "99", .toNearestOrEven)
+ /* dddiv086 */ self.divide64("9", "1", "9", .toNearestOrEven)
+ /* dddiv090 */ self.divide64("0.", "1", "0", .toNearestOrEven)
+ /* dddiv091 */ self.divide64(".0", "1", "0.0", .toNearestOrEven)
+ /* dddiv092 */ self.divide64("0.00", "1", "0.00", .toNearestOrEven)
+ /* dddiv093 */ self.divide64("0.00E+9", "1", "0E+7", .toNearestOrEven)
+ /* dddiv094 */ self.divide64("0.0000E-50", "1", "0E-54", .toNearestOrEven)
+ /* dddiv095 */ self.divide64("1", "1E-8", "1E+8", .toNearestOrEven)
+ /* dddiv096 */ self.divide64("1", "1E-9", "1E+9", .toNearestOrEven)
+ /* dddiv097 */ self.divide64("1", "1E-10", "1E+10", .toNearestOrEven)
+ /* dddiv098 */ self.divide64("1", "1E-11", "1E+11", .toNearestOrEven)
+ /* dddiv099 */ self.divide64("1", "1E-12", "1E+12", .toNearestOrEven)
+ /* dddiv100 */ self.divide64("1", "1", "1", .toNearestOrEven)
+ /* dddiv101 */ self.divide64("1", "2", "0.5", .toNearestOrEven)
+ /* dddiv102 */ self.divide64("1", "3", "0.3333333333333333", .toNearestOrEven, .isInexact)
+ /* dddiv1021 */ self.divide64("1E0", "1E0", "1", .toNearestOrAwayFromZero)
+ /* dddiv1022 */ self.divide64("1E0", "2E0", "0.5", .toNearestOrAwayFromZero)
+ /* dddiv1023 */ self.divide64("1E0", "3E0", "0.3333333333333333", .toNearestOrAwayFromZero, .isInexact)
+ /* dddiv1024 */ self.divide64("100E-2", "1000E-3", "1", .toNearestOrAwayFromZero)
+ /* dddiv1025 */ self.divide64("24E-1", "2E0", "1.2", .toNearestOrAwayFromZero)
+ /* dddiv1026 */ self.divide64("2400E-3", "2E0", "1.200", .toNearestOrAwayFromZero)
+ /* dddiv1027 */ self.divide64("5E0", "2E0", "2.5", .toNearestOrAwayFromZero)
+ /* dddiv1028 */ self.divide64("5E0", "20E-1", "2.5", .toNearestOrAwayFromZero)
+ /* dddiv1029 */ self.divide64("5E0", "2000E-3", "2.5", .toNearestOrAwayFromZero)
+ /* dddiv103 */ self.divide64("1", "4", "0.25", .toNearestOrEven)
+ /* dddiv1030 */ self.divide64("5E0", "2E-1", "25", .toNearestOrAwayFromZero)
+ /* dddiv1031 */ self.divide64("5E0", "20E-2", "25", .toNearestOrAwayFromZero)
+ /* dddiv1032 */ self.divide64("480E-2", "3E0", "1.60", .toNearestOrAwayFromZero)
+ /* dddiv1033 */ self.divide64("47E-1", "2E0", "2.35", .toNearestOrAwayFromZero)
+ /* dddiv104 */ self.divide64("1", "5", "0.2", .toNearestOrEven)
+ /* dddiv1041 */ self.divide64("6", "11", "0.5454545454545455", .toNearestOrEven, .isInexact)
+ /* dddiv105 */ self.divide64("1", "6", "0.1666666666666667", .toNearestOrEven, .isInexact)
+ /* dddiv1051 */ self.divide64("1e+277", "1e-311", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dddiv1052 */ self.divide64("1e+277", "-1e-311", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dddiv1053 */ self.divide64("-1e+277", "1e-311", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dddiv1054 */ self.divide64("-1e+277", "-1e-311", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dddiv1055 */ self.divide64("1e-277", "1e+311", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1056 */ self.divide64("1e-277", "-1e+311", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1057 */ self.divide64("-1e-277", "1e+311", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1058 */ self.divide64("-1e-277", "-1e+311", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv106 */ self.divide64("1", "7", "0.1428571428571429", .toNearestOrEven, .isInexact)
+ /* dddiv1060 */ self.divide64("1e-291", "1e+101", "1E-392", .toNearestOrEven)
+ /* dddiv1061 */ self.divide64("1e-291", "1e+102", "1E-393", .toNearestOrEven)
+ /* dddiv1062 */ self.divide64("1e-291", "1e+103", "1E-394", .toNearestOrEven)
+ /* dddiv1063 */ self.divide64("1e-291", "1e+104", "1E-395", .toNearestOrEven)
+ /* dddiv1064 */ self.divide64("1e-291", "1e+105", "1E-396", .toNearestOrEven)
+ /* dddiv1065 */ self.divide64("1e-291", "1e+106", "1E-397", .toNearestOrEven)
+ /* dddiv1066 */ self.divide64("1e-291", "1e+107", "1E-398", .toNearestOrEven)
+ /* dddiv1067 */ self.divide64("1e-291", "1e+108", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1068 */ self.divide64("1e-291", "1e+109", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1069 */ self.divide64("1e-291", "1e+110", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv107 */ self.divide64("1", "8", "0.125", .toNearestOrEven)
+ /* dddiv1070 */ self.divide64("1e+60", "1e-321", "1.000000000000E+381", .toNearestOrEven)
+ /* dddiv1071 */ self.divide64("1e+60", "1e-322", "1.0000000000000E+382", .toNearestOrEven)
+ /* dddiv1072 */ self.divide64("1e+60", "1e-323", "1.00000000000000E+383", .toNearestOrEven)
+ /* dddiv1073 */ self.divide64("1e+60", "1e-324", "1.000000000000000E+384", .toNearestOrEven)
+ /* dddiv1074 */ self.divide64("1e+60", "1e-325", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dddiv1075 */ self.divide64("1e+60", "1e-326", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dddiv1076 */ self.divide64("1e+60", "1e-327", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dddiv1077 */ self.divide64("1e+60", "1e-328", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dddiv1078 */ self.divide64("1e+60", "1e-329", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dddiv1079 */ self.divide64("1e+60", "1e-330", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dddiv108 */ self.divide64("1", "9", "0.1111111111111111", .toNearestOrEven, .isInexact)
+ /* dddiv109 */ self.divide64("1", "10", "0.1", .toNearestOrEven)
+ /* dddiv110 */ self.divide64("1", "1", "1", .toNearestOrEven)
+ /* dddiv1101 */ self.divide64("1.0000E-394", "1", "1.0000E-394", .toNearestOrEven)
+ /* dddiv1102 */ self.divide64("1.000E-394", "1e+1", "1.000E-395", .toNearestOrEven)
+ /* dddiv1103 */ self.divide64("1.00E-394", "1e+2", "1.00E-396", .toNearestOrEven)
+ /* dddiv1104 */ self.divide64("1.0E-394", "1e+3", "1.0E-397", .toNearestOrEven)
+ /* dddiv1105 */ self.divide64("1.0E-394", "1e+4", "1E-398", .toNearestOrEven)
+ /* dddiv1106 */ self.divide64("1.3E-394", "1e+4", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1107 */ self.divide64("1.5E-394", "1e+4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1108 */ self.divide64("1.7E-394", "1e+4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1109 */ self.divide64("2.3E-394", "1e+4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv111 */ self.divide64("2", "1", "2", .toNearestOrEven)
+ /* dddiv1110 */ self.divide64("2.5E-394", "1e+4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1111 */ self.divide64("2.7E-394", "1e+4", "3E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1112 */ self.divide64("1.49E-394", "1e+4", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1113 */ self.divide64("1.50E-394", "1e+4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1114 */ self.divide64("1.51E-394", "1e+4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1115 */ self.divide64("2.49E-394", "1e+4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1116 */ self.divide64("2.50E-394", "1e+4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1117 */ self.divide64("2.51E-394", "1e+4", "3E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1118 */ self.divide64("1E-394", "1e+4", "1E-398", .toNearestOrEven)
+ /* dddiv1119 */ self.divide64("3E-394", "1e+5", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv112 */ self.divide64("3", "1", "3", .toNearestOrEven)
+ /* dddiv1120 */ self.divide64("5E-394", "1e+5", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1121 */ self.divide64("7E-394", "1e+5", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1122 */ self.divide64("9E-394", "1e+5", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1123 */ self.divide64("9.9E-394", "1e+5", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1124 */ self.divide64("1E-394", "-1e+4", "-1E-398", .toNearestOrEven)
+ /* dddiv1125 */ self.divide64("3E-394", "-1e+5", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1126 */ self.divide64("-5E-394", "1e+5", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1127 */ self.divide64("7E-394", "-1e+5", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1128 */ self.divide64("-9E-394", "1e+5", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1129 */ self.divide64("9.9E-394", "-1e+5", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv113 */ self.divide64("4", "1", "4", .toNearestOrEven)
+ /* dddiv1130 */ self.divide64("3.0E-394", "-1e+5", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1131 */ self.divide64("1.0E-199", "1e+200", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv1132 */ self.divide64("1.0E-199", "1e+199", "1E-398", .toNearestOrEven)
+ /* dddiv1133 */ self.divide64("1.0E-199", "1e+198", "1.0E-397", .toNearestOrEven)
+ /* dddiv1134 */ self.divide64("2.0E-199", "2e+198", "1.0E-397", .toNearestOrEven)
+ /* dddiv1135 */ self.divide64("4.0E-199", "4e+198", "1.0E-397", .toNearestOrEven)
+ /* dddiv1136 */ self.divide64("10.0E-199", "10e+198", "1.0E-397", .toNearestOrEven)
+ /* dddiv1137 */ self.divide64("30.0E-199", "30e+198", "1.0E-397", .toNearestOrEven)
+ /* dddiv114 */ self.divide64("5", "1", "5", .toNearestOrEven)
+ /* dddiv115 */ self.divide64("6", "1", "6", .toNearestOrEven)
+ /* dddiv116 */ self.divide64("7", "1", "7", .toNearestOrEven)
+ /* dddiv117 */ self.divide64("8", "1", "8", .toNearestOrEven)
+ /* dddiv118 */ self.divide64("9", "1", "9", .toNearestOrEven)
+ /* dddiv119 */ self.divide64("10", "1", "10", .toNearestOrEven)
+ /* dddiv120 */ self.divide64("3E+1", "0.001", "3E+4", .toNearestOrEven)
+ /* dddiv121 */ self.divide64("2.200", "2", "1.100", .toNearestOrEven)
+ /* dddiv130 */ self.divide64("12345", "4.999", "2469.493898779756", .toNearestOrEven, .isInexact)
+ /* dddiv131 */ self.divide64("12345", "4.99", "2473.947895791583", .toNearestOrEven, .isInexact)
+ /* dddiv132 */ self.divide64("12345", "4.9", "2519.387755102041", .toNearestOrEven, .isInexact)
+ /* dddiv133 */ self.divide64("12345", "5", "2469", .toNearestOrEven)
+ /* dddiv134 */ self.divide64("12345", "5.1", "2420.588235294118", .toNearestOrEven, .isInexact)
+ /* dddiv135 */ self.divide64("12345", "5.01", "2464.071856287425", .toNearestOrEven, .isInexact)
+ /* dddiv136 */ self.divide64("12345", "5.001", "2468.506298740252", .toNearestOrEven, .isInexact)
+ /* dddiv2010 */ self.divide64("-3.303226714900711E-35", "8.796578842713183E+73", "-3.755126594058783E-109", .toNearestOrEven, .isInexact)
+ /* dddiv2011 */ self.divide64("933153327821073.6", "68782181090246.25", "13.56678885475763", .toNearestOrEven, .isInexact)
+ /* dddiv2012 */ self.divide64("5.04752436057906E-72", "-8.179481771238642E+64", "-6.170958627632835E-137", .toNearestOrEven, .isInexact)
+ /* dddiv2013 */ self.divide64("-3707613309582318", "3394911196503.048", "-1092.109070010836", .toNearestOrEven, .isInexact)
+ /* dddiv2014 */ self.divide64("99689.0555190461", "-4.735208553891464", "-21052.72753765411", .toNearestOrEven, .isInexact)
+ /* dddiv2015 */ self.divide64("-1447915775613329", "269750797.8184875", "-5367605.164925653", .toNearestOrEven, .isInexact)
+ /* dddiv2016 */ self.divide64("-9.394881304225258E-19", "-830585.0252671636", "1.131116143251358E-24", .toNearestOrEven, .isInexact)
+ /* dddiv2017 */ self.divide64("-1.056283432738934", "88.58754555124013", "-0.01192361100159352", .toNearestOrEven, .isInexact)
+ /* dddiv2018 */ self.divide64("5763220933343.081", "689089567025052.1", "0.008363529516524456", .toNearestOrEven, .isInexact)
+ /* dddiv2019 */ self.divide64("873819.122103216", "9.740612494523300E-49", "8.970884763093948E+53", .toNearestOrEven, .isInexact)
+ /* dddiv2020 */ self.divide64("8022914.838533576", "6178.566801742713", "1298.507420243583", .toNearestOrEven, .isInexact)
+ /* dddiv2021 */ self.divide64("203982.7605650363", "-2158.283639053435", "-94.51156320422168", .toNearestOrEven, .isInexact)
+ /* dddiv2022 */ self.divide64("803.6310547013030", "7101143795399.238", "1.131692411611166E-10", .toNearestOrEven, .isInexact)
+ /* dddiv2023 */ self.divide64("9.251697842123399E-82", "-1.342350220606119E-7", "-6.892163982321936E-75", .toNearestOrEven, .isInexact)
+ /* dddiv2024 */ self.divide64("-1.980600645637992E-53", "-5.474262753214457E+77", "3.618022617703168E-131", .toNearestOrEven, .isInexact)
+ /* dddiv2025 */ self.divide64("-210.0322996351690", "-8.580951835872843E+80", "2.447657365434971E-79", .toNearestOrEven, .isInexact)
+ /* dddiv2026 */ self.divide64("-1.821980314020370E+85", "-3.018915267138165", "6.035215144503042E+84", .toNearestOrEven, .isInexact)
+ /* dddiv2027 */ self.divide64("-772264503601.1047", "5.158258271408988E-86", "-1.497141986630614E+97", .toNearestOrEven, .isInexact)
+ /* dddiv2028 */ self.divide64("-767.0532415847106", "2.700027228028939E-59", "-2.840909282772941E+61", .toNearestOrEven, .isInexact)
+ /* dddiv2029 */ self.divide64("496724.8548250093", "7.32700588163100E+66", "6.779370220929013E-62", .toNearestOrEven, .isInexact)
+ /* dddiv2030 */ self.divide64("-304232651447703.9", "-108.9730808657440", "2791814721862.565", .toNearestOrEven, .isInexact)
+ /* dddiv2031 */ self.divide64("-7.233817192699405E+42", "-5711302004.149411", "1.266579352211430E+33", .toNearestOrEven, .isInexact)
+ /* dddiv2032 */ self.divide64("-9.999221444912745E+96", "4010569406446197", "-2.493217404202250E+81", .toNearestOrEven, .isInexact)
+ /* dddiv2033 */ self.divide64("-1837272.061937622", "8.356322838066762", "-219866.0939196882", .toNearestOrEven, .isInexact)
+ /* dddiv2034 */ self.divide64("2168.517555606529", "209.1910258615061", "10.36620737756784", .toNearestOrEven, .isInexact)
+ /* dddiv2035 */ self.divide64("-1.884389790576371E+88", "2.95181953870583E+20", "-6.383824505079828E+67", .toNearestOrEven, .isInexact)
+ /* dddiv2036 */ self.divide64("732263.6037438196", "961222.3634446889", "0.7618045850698269", .toNearestOrEven, .isInexact)
+ /* dddiv2037 */ self.divide64("-813461419.0348336", "5.376293753809143E+84", "-1.513052404285927E-76", .toNearestOrEven, .isInexact)
+ /* dddiv2038 */ self.divide64("-45562133508108.50", "-9.776843494690107E+51", "4.660208945029519E-39", .toNearestOrEven, .isInexact)
+ /* dddiv2039 */ self.divide64("-6.489393172441016E+80", "-9101965.097852113", "7.129661674897421E+73", .toNearestOrEven, .isInexact)
+ /* dddiv2040 */ self.divide64("3.694576237117349E+93", "6683512.012622003", "5.527896456443912E+86", .toNearestOrEven, .isInexact)
+ /* dddiv2041 */ self.divide64("-2.252877726403272E+19", "-7451913256.181367", "3023220546.125531", .toNearestOrEven, .isInexact)
+ /* dddiv2042 */ self.divide64("518303.1989111842", "50.01587020474133", "10362.77479107123", .toNearestOrEven, .isInexact)
+ /* dddiv2043 */ self.divide64("2.902087881880103E+24", "33.32400992305702", "8.708699488989578E+22", .toNearestOrEven, .isInexact)
+ /* dddiv2044 */ self.divide64("549619.4559510557", "1660824845196338", "3.309316196351104E-10", .toNearestOrEven, .isInexact)
+ /* dddiv2045 */ self.divide64("-6775670774684043", "8292152023.077262", "-817118.4941891062", .toNearestOrEven, .isInexact)
+ /* dddiv2046 */ self.divide64("-77.50923921524079", "-5.636882655425815E+74", "1.375037302588405E-73", .toNearestOrEven, .isInexact)
+ /* dddiv2047 */ self.divide64("-2.984889459605149E-10", "-88106156784122.99", "3.387833005721384E-24", .toNearestOrEven, .isInexact)
+ /* dddiv2048 */ self.divide64("0.949517293997085", "44767115.96450998", "2.121015110175589E-8", .toNearestOrEven, .isInexact)
+ /* dddiv2049 */ self.divide64("-2760937211.084521", "-1087015876975408", "0.000002539923537057024", .toNearestOrEven, .isInexact)
+ /* dddiv2050 */ self.divide64("28438351.85030536", "-4.209397904088624E-47", "-6.755919135770688E+53", .toNearestOrEven, .isInexact)
+ /* dddiv2051 */ self.divide64("-85562731.6820956", "-7.166045442530185E+45", "1.194002080621542E-38", .toNearestOrEven, .isInexact)
+ /* dddiv2052 */ self.divide64("2533802852165.25", "7154.119606235955", "354173957.3317501", .toNearestOrEven, .isInexact)
+ /* dddiv2053 */ self.divide64("-8858831346851.474", "97.59734208801716", "-90769186509.83577", .toNearestOrEven, .isInexact)
+ /* dddiv2054 */ self.divide64("176783629801387.5", "840073263.3109817", "210438.3480848206", .toNearestOrEven, .isInexact)
+ /* dddiv2055 */ self.divide64("-493506471796175.6", "79733894790822.03", "-6.189418854940746", .toNearestOrEven, .isInexact)
+ /* dddiv2056 */ self.divide64("790.1682542103445", "829.9449370367435", "0.9520731062371214", .toNearestOrEven, .isInexact)
+ /* dddiv2057 */ self.divide64("-8920459838.583164", "-4767.889187899214", "1870945.294035581", .toNearestOrEven, .isInexact)
+ /* dddiv2058 */ self.divide64("53536687164422.1", "53137.5007032689", "1007512330.385698", .toNearestOrEven, .isInexact)
+ /* dddiv2059 */ self.divide64("4.051532311146561E-74", "-2.343089768972261E+94", "-1.729140882606332E-168", .toNearestOrEven, .isInexact)
+ /* dddiv2060 */ self.divide64("-14847758778636.88", "3.062543516383807E-43", "-4.848178874587497E+55", .toNearestOrEven, .isInexact)
+ /* dddiv220 */ self.divide64("391", "597", "0.6549413735343384", .toNearestOrEven, .isInexact)
+ /* dddiv221 */ self.divide64("391", "-597", "-0.6549413735343384", .toNearestOrEven, .isInexact)
+ /* dddiv222 */ self.divide64("-391", "597", "-0.6549413735343384", .toNearestOrEven, .isInexact)
+ /* dddiv223 */ self.divide64("-391", "-597", "0.6549413735343384", .toNearestOrEven, .isInexact)
+ /* dddiv270 */ self.divide64("1", "1e384", "1E-384", .toNearestOrEven)
+ /* dddiv271 */ self.divide64("1", "0.9e384", "1.11111111111111E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv272 */ self.divide64("1", "0.99e384", "1.01010101010101E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv273 */ self.divide64("1", "0.9999999999999999e384", "1.00000000000000E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dddiv274 */ self.divide64("9e384", "1", "9.000000000000000E+384", .toNearestOrEven)
+ /* dddiv275 */ self.divide64("9.9e384", "1", "9.900000000000000E+384", .toNearestOrEven)
+ /* dddiv276 */ self.divide64("9.99e384", "1", "9.990000000000000E+384", .toNearestOrEven)
+ /* dddiv277 */ self.divide64("9.9999999999999e384", "1", "9.999999999999900E+384", .toNearestOrEven)
+ /* dddiv278 */ self.divide64("9.99999999999999e384", "1", "9.999999999999990E+384", .toNearestOrEven)
+ /* dddiv279 */ self.divide64("9.999999999999999e384", "1", "9.999999999999999E+384", .toNearestOrEven)
+ /* dddiv285 */ self.divide64("9.9e384", "1.1", "9.000000000000000E+384", .toNearestOrEven)
+ /* dddiv286 */ self.divide64("9.99e384", "1.1", "9.081818181818182E+384", .toNearestOrEven, .isInexact)
+ /* dddiv287 */ self.divide64("9.9999999999999e384", "1.1", "9.090909090909000E+384", .toNearestOrEven)
+ /* dddiv288 */ self.divide64("9.99999999999999e384", "1.1", "9.090909090909082E+384", .toNearestOrEven, .isInexact)
+ /* dddiv289 */ self.divide64("9.999999999999999e384", "1.1", "9.090909090909090E+384", .toNearestOrEven)
+ /* dddiv3001 */ self.divide64("1", "3", "0.3333333333333334", .up, .isInexact)
+ /* dddiv3002 */ self.divide64("2", "3", "0.6666666666666667", .up, .isInexact)
+ /* dddiv3003 */ self.divide64("1", "99999", "0.00001000010000100002", .up, .isInexact)
+ /* dddiv3004 */ self.divide64("1", "999999", "0.000001000001000001001", .up, .isInexact)
+ /* dddiv301 */ self.divide64("0", "7", "0", .toNearestOrEven)
+ /* dddiv3011 */ self.divide64("1", "3", "0.3333333333333333", .down, .isInexact)
+ /* dddiv3012 */ self.divide64("2", "3", "0.6666666666666666", .down, .isInexact)
+ /* dddiv3013 */ self.divide64("1", "99999", "0.00001000010000100001", .down, .isInexact)
+ /* dddiv3014 */ self.divide64("1", "999999", "0.000001000001000001000", .down, .isInexact)
+ /* dddiv302 */ self.divide64("0", "7E-5", "0E+5", .toNearestOrEven)
+ /* dddiv303 */ self.divide64("0", "7E-1", "0E+1", .toNearestOrEven)
+ /* dddiv3031 */ self.divide64("1", "3", "0.3333333333333333", .towardZero, .isInexact)
+ /* dddiv3032 */ self.divide64("2", "3", "0.6666666666666666", .towardZero, .isInexact)
+ /* dddiv3033 */ self.divide64("1", "99999", "0.00001000010000100001", .towardZero, .isInexact)
+ /* dddiv3034 */ self.divide64("1", "999999", "0.000001000001000001000", .towardZero, .isInexact)
+ /* dddiv304 */ self.divide64("0", "7E+1", "0.0", .toNearestOrEven)
+ /* dddiv3041 */ self.divide64("1", "3", "0.3333333333333333", .toNearestOrAwayFromZero, .isInexact)
+ /* dddiv3042 */ self.divide64("2", "3", "0.6666666666666667", .toNearestOrAwayFromZero, .isInexact)
+ /* dddiv3043 */ self.divide64("1", "99999", "0.00001000010000100001", .toNearestOrAwayFromZero, .isInexact)
+ /* dddiv3044 */ self.divide64("1", "999999", "0.000001000001000001000", .toNearestOrAwayFromZero, .isInexact)
+ /* dddiv305 */ self.divide64("0", "7E+5", "0.00000", .toNearestOrEven)
+ /* dddiv306 */ self.divide64("0", "7E+6", "0.000000", .toNearestOrEven)
+ /* dddiv3061 */ self.divide64("1", "3", "0.3333333333333333", .toNearestOrEven, .isInexact)
+ /* dddiv3062 */ self.divide64("2", "3", "0.6666666666666667", .toNearestOrEven, .isInexact)
+ /* dddiv3063 */ self.divide64("1", "99999", "0.00001000010000100001", .toNearestOrEven, .isInexact)
+ /* dddiv3064 */ self.divide64("1", "999999", "0.000001000001000001000", .toNearestOrEven, .isInexact)
+ /* dddiv307 */ self.divide64("0", "7E+7", "0E-7", .toNearestOrEven)
+ /* dddiv308 */ self.divide64("0", "70E-5", "0E+5", .toNearestOrEven)
+ /* dddiv309 */ self.divide64("0", "70E-1", "0E+1", .toNearestOrEven)
+ /* dddiv310 */ self.divide64("0", "70E+0", "0", .toNearestOrEven)
+ /* dddiv311 */ self.divide64("0", "70E+1", "0.0", .toNearestOrEven)
+ /* dddiv312 */ self.divide64("0", "70E+5", "0.00000", .toNearestOrEven)
+ /* dddiv313 */ self.divide64("0", "70E+6", "0.000000", .toNearestOrEven)
+ /* dddiv314 */ self.divide64("0", "70E+7", "0E-7", .toNearestOrEven)
+ /* dddiv315 */ self.divide64("0", "700E-5", "0E+5", .toNearestOrEven)
+ /* dddiv316 */ self.divide64("0", "700E-1", "0E+1", .toNearestOrEven)
+ /* dddiv317 */ self.divide64("0", "700E+0", "0", .toNearestOrEven)
+ /* dddiv318 */ self.divide64("0", "700E+1", "0.0", .toNearestOrEven)
+ /* dddiv319 */ self.divide64("0", "700E+5", "0.00000", .toNearestOrEven)
+ /* dddiv320 */ self.divide64("0", "700E+6", "0.000000", .toNearestOrEven)
+ /* dddiv321 */ self.divide64("0", "700E+7", "0E-7", .toNearestOrEven)
+ /* dddiv322 */ self.divide64("0", "700E+77", "0E-77", .toNearestOrEven)
+ /* dddiv331 */ self.divide64("0E-3", "7E-5", "0E+2", .toNearestOrEven)
+ /* dddiv332 */ self.divide64("0E-3", "7E-1", "0.00", .toNearestOrEven)
+ /* dddiv333 */ self.divide64("0E-3", "7E+1", "0.0000", .toNearestOrEven)
+ /* dddiv334 */ self.divide64("0E-3", "7E+5", "0E-8", .toNearestOrEven)
+ /* dddiv335 */ self.divide64("0E-1", "7E-5", "0E+4", .toNearestOrEven)
+ /* dddiv336 */ self.divide64("0E-1", "7E-1", "0", .toNearestOrEven)
+ /* dddiv337 */ self.divide64("0E-1", "7E+1", "0.00", .toNearestOrEven)
+ /* dddiv338 */ self.divide64("0E-1", "7E+5", "0.000000", .toNearestOrEven)
+ /* dddiv339 */ self.divide64("0E+1", "7E-5", "0E+6", .toNearestOrEven)
+ /* dddiv340 */ self.divide64("0E+1", "7E-1", "0E+2", .toNearestOrEven)
+ /* dddiv341 */ self.divide64("0E+1", "7E+1", "0", .toNearestOrEven)
+ /* dddiv342 */ self.divide64("0E+1", "7E+5", "0.0000", .toNearestOrEven)
+ /* dddiv343 */ self.divide64("0E+3", "7E-5", "0E+8", .toNearestOrEven)
+ /* dddiv344 */ self.divide64("0E+3", "7E-1", "0E+4", .toNearestOrEven)
+ /* dddiv345 */ self.divide64("0E+3", "7E+1", "0E+2", .toNearestOrEven)
+ /* dddiv346 */ self.divide64("0E+3", "7E+5", "0.00", .toNearestOrEven)
+ /* dddiv4001 */ self.divide64("3195385192916917", "3195385192946695", "0.9999999999906809", .toNearestOrEven, .isInexact)
+ /* dddiv4002 */ self.divide64("1393723067526993", "1393723067519475", "1.000000000005394", .toNearestOrEven, .isInexact)
+ /* dddiv4003 */ self.divide64("759985543702302", "759985543674015", "1.000000000037220", .toNearestOrEven, .isInexact)
+ /* dddiv4004 */ self.divide64("9579158456027302", "9579158456036864", "0.9999999999990018", .toNearestOrEven, .isInexact)
+ /* dddiv4005 */ self.divide64("7079398299143569", "7079398299156904", "0.9999999999981164", .toNearestOrEven, .isInexact)
+ /* dddiv4006 */ self.divide64("6636169255366598", "6636169255336386", "1.000000000004553", .toNearestOrEven, .isInexact)
+ /* dddiv4007 */ self.divide64("6964813971340090", "6964813971321554", "1.000000000002661", .toNearestOrEven, .isInexact)
+ /* dddiv4008 */ self.divide64("4182275225480784", "4182275225454009", "1.000000000006402", .toNearestOrEven, .isInexact)
+ /* dddiv4009 */ self.divide64("9228325124938029", "9228325124918730", "1.000000000002091", .toNearestOrEven, .isInexact)
+ /* dddiv4010 */ self.divide64("3428346338630192", "3428346338609843", "1.000000000005936", .toNearestOrEven, .isInexact)
+ /* dddiv4011 */ self.divide64("2143511550722893", "2143511550751754", "0.9999999999865356", .toNearestOrEven, .isInexact)
+ /* dddiv4012 */ self.divide64("1672732924396785", "1672732924401811", "0.9999999999969953", .toNearestOrEven, .isInexact)
+ /* dddiv4013 */ self.divide64("4190714611948216", "4190714611948664", "0.9999999999998931", .toNearestOrEven, .isInexact)
+ /* dddiv4014 */ self.divide64("3942254800848877", "3942254800814556", "1.000000000008706", .toNearestOrEven, .isInexact)
+ /* dddiv4015 */ self.divide64("2854459826952334", "2854459826960762", "0.9999999999970474", .toNearestOrEven, .isInexact)
+ /* dddiv4016 */ self.divide64("2853258953664731", "2853258953684471", "0.9999999999930816", .toNearestOrEven, .isInexact)
+ /* dddiv4017 */ self.divide64("9453512638125978", "9453512638146425", "0.9999999999978371", .toNearestOrEven, .isInexact)
+ /* dddiv4018 */ self.divide64("339476633940369", "339476633912887", "1.000000000080954", .toNearestOrEven, .isInexact)
+ /* dddiv4019 */ self.divide64("4542181492688467", "4542181492697735", "0.9999999999979596", .toNearestOrEven, .isInexact)
+ /* dddiv4020 */ self.divide64("7312600192399197", "7312600192395424", "1.000000000000516", .toNearestOrEven, .isInexact)
+ /* dddiv4021 */ self.divide64("1811674985570111", "1811674985603935", "0.9999999999813300", .toNearestOrEven, .isInexact)
+ /* dddiv4022 */ self.divide64("1706462639003481", "1706462639017740", "0.9999999999916441", .toNearestOrEven, .isInexact)
+ /* dddiv4023 */ self.divide64("6697052654940368", "6697052654934110", "1.000000000000934", .toNearestOrEven, .isInexact)
+ /* dddiv4024 */ self.divide64("5015283664277539", "5015283664310719", "0.9999999999933842", .toNearestOrEven, .isInexact)
+ /* dddiv4025 */ self.divide64("2359501561537464", "2359501561502464", "1.000000000014834", .toNearestOrEven, .isInexact)
+ /* dddiv4026 */ self.divide64("2669850227909157", "2669850227901548", "1.000000000002850", .toNearestOrEven, .isInexact)
+ /* dddiv4027 */ self.divide64("9329725546974648", "9329725547002445", "0.9999999999970206", .toNearestOrEven, .isInexact)
+ /* dddiv4028 */ self.divide64("3228562867071248", "3228562867106206", "0.9999999999891723", .toNearestOrEven, .isInexact)
+ /* dddiv4029 */ self.divide64("4862226644921175", "4862226644909380", "1.000000000002426", .toNearestOrEven, .isInexact)
+ /* dddiv4030 */ self.divide64("1022267997054529", "1022267997071329", "0.9999999999835660", .toNearestOrEven, .isInexact)
+ /* dddiv4031 */ self.divide64("1048777482023719", "1048777482000948", "1.000000000021712", .toNearestOrEven, .isInexact)
+ /* dddiv4032 */ self.divide64("9980113777337098", "9980113777330539", "1.000000000000657", .toNearestOrEven, .isInexact)
+ /* dddiv4033 */ self.divide64("7506839167963908", "7506839167942901", "1.000000000002798", .toNearestOrEven, .isInexact)
+ /* dddiv4034 */ self.divide64("231119751977860", "231119751962453", "1.000000000066662", .toNearestOrEven, .isInexact)
+ /* dddiv4035 */ self.divide64("4034903664762962", "4034903664795526", "0.9999999999919294", .toNearestOrEven, .isInexact)
+ /* dddiv4036 */ self.divide64("5700122152274696", "5700122152251386", "1.000000000004089", .toNearestOrEven, .isInexact)
+ /* dddiv4037 */ self.divide64("6869599590293110", "6869599590293495", "0.9999999999999440", .toNearestOrEven, .isInexact)
+ /* dddiv4038 */ self.divide64("5576281960092797", "5576281960105579", "0.9999999999977078", .toNearestOrEven, .isInexact)
+ /* dddiv4039 */ self.divide64("2304844888381318", "2304844888353073", "1.000000000012255", .toNearestOrEven, .isInexact)
+ /* dddiv4040 */ self.divide64("3265933651656452", "3265933651682779", "0.9999999999919389", .toNearestOrEven, .isInexact)
+ /* dddiv4041 */ self.divide64("5235714985079914", "5235714985066131", "1.000000000002632", .toNearestOrEven, .isInexact)
+ /* dddiv4042 */ self.divide64("5578481572827551", "5578481572822945", "1.000000000000826", .toNearestOrEven, .isInexact)
+ /* dddiv4043 */ self.divide64("4909616081396134", "4909616081373076", "1.000000000004696", .toNearestOrEven, .isInexact)
+ /* dddiv4044 */ self.divide64("636447224349537", "636447224338757", "1.000000000016938", .toNearestOrEven, .isInexact)
+ /* dddiv4045 */ self.divide64("1539373428396640", "1539373428364727", "1.000000000020731", .toNearestOrEven, .isInexact)
+ /* dddiv4046 */ self.divide64("2028786707377893", "2028786707378866", "0.9999999999995204", .toNearestOrEven, .isInexact)
+ /* dddiv4047 */ self.divide64("137643260486222", "137643260487419", "0.9999999999913036", .toNearestOrEven, .isInexact)
+ /* dddiv4048 */ self.divide64("247451519746765", "247451519752267", "0.9999999999777653", .toNearestOrEven, .isInexact)
+ /* dddiv4049 */ self.divide64("7877858475022054", "7877858474999794", "1.000000000002826", .toNearestOrEven, .isInexact)
+ /* dddiv4050 */ self.divide64("7333242694766258", "7333242694744628", "1.000000000002950", .toNearestOrEven, .isInexact)
+ /* dddiv4051 */ self.divide64("124051503698592", "124051503699397", "0.9999999999935108", .toNearestOrEven, .isInexact)
+ /* dddiv4052 */ self.divide64("8944737432385188", "8944737432406860", "0.9999999999975771", .toNearestOrEven, .isInexact)
+ /* dddiv4053 */ self.divide64("9883948923406874", "9883948923424843", "0.9999999999981820", .toNearestOrEven, .isInexact)
+ /* dddiv4054 */ self.divide64("6829178741654284", "6829178741671973", "0.9999999999974098", .toNearestOrEven, .isInexact)
+ /* dddiv4055 */ self.divide64("7342752479768122", "7342752479793385", "0.9999999999965595", .toNearestOrEven, .isInexact)
+ /* dddiv4056 */ self.divide64("8066426579008783", "8066426578977563", "1.000000000003870", .toNearestOrEven, .isInexact)
+ /* dddiv4057 */ self.divide64("8992775071383295", "8992775071352712", "1.000000000003401", .toNearestOrEven, .isInexact)
+ /* dddiv4058 */ self.divide64("5485011755545641", "5485011755543611", "1.000000000000370", .toNearestOrEven, .isInexact)
+ /* dddiv4059 */ self.divide64("5779983054353918", "5779983054365300", "0.9999999999980308", .toNearestOrEven, .isInexact)
+ /* dddiv4060 */ self.divide64("9502265102713774", "9502265102735208", "0.9999999999977443", .toNearestOrEven, .isInexact)
+ /* dddiv4061 */ self.divide64("2109558399130981", "2109558399116281", "1.000000000006968", .toNearestOrEven, .isInexact)
+ /* dddiv4062 */ self.divide64("5296182636350471", "5296182636351521", "0.9999999999998017", .toNearestOrEven, .isInexact)
+ /* dddiv4063 */ self.divide64("1440019225591883", "1440019225601844", "0.9999999999930827", .toNearestOrEven, .isInexact)
+ /* dddiv4064 */ self.divide64("8182110791881341", "8182110791847174", "1.000000000004176", .toNearestOrEven, .isInexact)
+ /* dddiv4065 */ self.divide64("489098235512060", "489098235534516", "0.9999999999540869", .toNearestOrEven, .isInexact)
+ /* dddiv4066 */ self.divide64("6475687084782038", "6475687084756089", "1.000000000004007", .toNearestOrEven, .isInexact)
+ /* dddiv4067 */ self.divide64("8094348555736948", "8094348555759236", "0.9999999999972465", .toNearestOrEven, .isInexact)
+ /* dddiv4068 */ self.divide64("1982766816291543", "1982766816309463", "0.9999999999909621", .toNearestOrEven, .isInexact)
+ /* dddiv4069 */ self.divide64("9277314300113251", "9277314300084467", "1.000000000003103", .toNearestOrEven, .isInexact)
+ /* dddiv4070 */ self.divide64("4335532959318934", "4335532959293167", "1.000000000005943", .toNearestOrEven, .isInexact)
+ /* dddiv4071 */ self.divide64("7767113032981348", "7767113032968132", "1.000000000001702", .toNearestOrEven, .isInexact)
+ /* dddiv4072 */ self.divide64("1578548053342868", "1578548053370448", "0.9999999999825282", .toNearestOrEven, .isInexact)
+ /* dddiv4073 */ self.divide64("3790420686666898", "3790420686636315", "1.000000000008068", .toNearestOrEven, .isInexact)
+ /* dddiv4074 */ self.divide64("871682421955147", "871682421976441", "0.9999999999755714", .toNearestOrEven, .isInexact)
+ /* dddiv4075 */ self.divide64("744141054479940", "744141054512329", "0.9999999999564746", .toNearestOrEven, .isInexact)
+ /* dddiv4076 */ self.divide64("8956824183670735", "8956824183641741", "1.000000000003237", .toNearestOrEven, .isInexact)
+ /* dddiv4077 */ self.divide64("8337291694485682", "8337291694451193", "1.000000000004137", .toNearestOrEven, .isInexact)
+ /* dddiv4078 */ self.divide64("4107775944683669", "4107775944657097", "1.000000000006469", .toNearestOrEven, .isInexact)
+ /* dddiv4079 */ self.divide64("8691900057964648", "8691900057997555", "0.9999999999962141", .toNearestOrEven, .isInexact)
+ /* dddiv4080 */ self.divide64("2229528520536462", "2229528520502337", "1.000000000015306", .toNearestOrEven, .isInexact)
+ /* dddiv4081 */ self.divide64("398442083774322", "398442083746273", "1.000000000070397", .toNearestOrEven, .isInexact)
+ /* dddiv4082 */ self.divide64("5319819776808759", "5319819776838313", "0.9999999999944445", .toNearestOrEven, .isInexact)
+ /* dddiv4083 */ self.divide64("7710491299066855", "7710491299041858", "1.000000000003242", .toNearestOrEven, .isInexact)
+ /* dddiv4084 */ self.divide64("9083231296087266", "9083231296058160", "1.000000000003204", .toNearestOrEven, .isInexact)
+ /* dddiv4085 */ self.divide64("3566873574904559", "3566873574890328", "1.000000000003990", .toNearestOrEven, .isInexact)
+ /* dddiv4086 */ self.divide64("596343290550525", "596343290555614", "0.9999999999914663", .toNearestOrEven, .isInexact)
+ /* dddiv4087 */ self.divide64("278227925093192", "278227925068104", "1.000000000090171", .toNearestOrEven, .isInexact)
+ /* dddiv4088 */ self.divide64("3292902958490649", "3292902958519881", "0.9999999999911227", .toNearestOrEven, .isInexact)
+ /* dddiv4089 */ self.divide64("5521871364245881", "5521871364229536", "1.000000000002960", .toNearestOrEven, .isInexact)
+ /* dddiv4090 */ self.divide64("2406505602883617", "2406505602857997", "1.000000000010646", .toNearestOrEven, .isInexact)
+ /* dddiv4091 */ self.divide64("7741146984869208", "7741146984867255", "1.000000000000252", .toNearestOrEven, .isInexact)
+ /* dddiv4092 */ self.divide64("4576041832414909", "4576041832405102", "1.000000000002143", .toNearestOrEven, .isInexact)
+ /* dddiv4093 */ self.divide64("9183756982878057", "9183756982901934", "0.9999999999974001", .toNearestOrEven, .isInexact)
+ /* dddiv4094 */ self.divide64("6215736513855159", "6215736513870342", "0.9999999999975573", .toNearestOrEven, .isInexact)
+ /* dddiv4095 */ self.divide64("248554968534533", "248554968551417", "0.9999999999320714", .toNearestOrEven, .isInexact)
+ /* dddiv4096 */ self.divide64("376314165668645", "376314165659755", "1.000000000023624", .toNearestOrEven, .isInexact)
+ /* dddiv4097 */ self.divide64("5513569249809718", "5513569249808906", "1.000000000000147", .toNearestOrEven, .isInexact)
+ /* dddiv4098 */ self.divide64("3367992242167904", "3367992242156228", "1.000000000003467", .toNearestOrEven, .isInexact)
+ /* dddiv4099 */ self.divide64("6134869538966967", "6134869538985986", "0.9999999999968999", .toNearestOrEven, .isInexact)
+ /* dddiv441 */ self.divide64("12345678000", "1", "12345678000", .toNearestOrEven)
+ /* dddiv442 */ self.divide64("1", "12345678000", "8.100000664200054E-11", .toNearestOrEven, .isInexact)
+ /* dddiv443 */ self.divide64("1234567800", "1", "1234567800", .toNearestOrEven)
+ /* dddiv444 */ self.divide64("1", "1234567800", "8.100000664200054E-10", .toNearestOrEven, .isInexact)
+ /* dddiv445 */ self.divide64("1234567890", "1", "1234567890", .toNearestOrEven)
+ /* dddiv446 */ self.divide64("1", "1234567890", "8.100000073710001E-10", .toNearestOrEven, .isInexact)
+ /* dddiv447 */ self.divide64("1234567891", "1", "1234567891", .toNearestOrEven)
+ /* dddiv448 */ self.divide64("1", "1234567891", "8.100000067149001E-10", .toNearestOrEven, .isInexact)
+ /* dddiv449 */ self.divide64("12345678901", "1", "12345678901", .toNearestOrEven)
+ /* dddiv450 */ self.divide64("1", "12345678901", "8.100000073053901E-11", .toNearestOrEven, .isInexact)
+ /* dddiv451 */ self.divide64("1234567896", "1", "1234567896", .toNearestOrEven)
+ /* dddiv452 */ self.divide64("1", "1234567896", "8.100000034344000E-10", .toNearestOrEven, .isInexact)
+ /* dddiv453 */ self.divide64("1e+1", "1", "1E+1", .toNearestOrEven)
+ /* dddiv454 */ self.divide64("1e+1", "1.0", "1E+1", .toNearestOrEven)
+ /* dddiv455 */ self.divide64("1e+1", "1.00", "1E+1", .toNearestOrEven)
+ /* dddiv456 */ self.divide64("1e+2", "2", "5E+1", .toNearestOrEven)
+ /* dddiv457 */ self.divide64("1e+2", "2.0", "5E+1", .toNearestOrEven)
+ /* dddiv458 */ self.divide64("1e+2", "2.00", "5E+1", .toNearestOrEven)
+ /* dddiv460 */ self.divide64("3e0", "2e0", "1.5", .toNearestOrEven)
+ /* dddiv461 */ self.divide64("30e-1", "2e0", "1.5", .toNearestOrEven)
+ /* dddiv462 */ self.divide64("300e-2", "2e0", "1.50", .toNearestOrEven)
+ /* dddiv464 */ self.divide64("3000e-3", "2e0", "1.500", .toNearestOrEven)
+ /* dddiv465 */ self.divide64("3e0", "20e-1", "1.5", .toNearestOrEven)
+ /* dddiv466 */ self.divide64("30e-1", "20e-1", "1.5", .toNearestOrEven)
+ /* dddiv467 */ self.divide64("300e-2", "20e-1", "1.5", .toNearestOrEven)
+ /* dddiv468 */ self.divide64("3000e-3", "20e-1", "1.50", .toNearestOrEven)
+ /* dddiv469 */ self.divide64("3e0", "200e-2", "1.5", .toNearestOrEven)
+ /* dddiv470 */ self.divide64("30e-1", "200e-2", "1.5", .toNearestOrEven)
+ /* dddiv471 */ self.divide64("300e-2", "200e-2", "1.5", .toNearestOrEven)
+ /* dddiv472 */ self.divide64("3000e-3", "200e-2", "1.5", .toNearestOrEven)
+ /* dddiv473 */ self.divide64("3e0", "2000e-3", "1.5", .toNearestOrEven)
+ /* dddiv474 */ self.divide64("30e-1", "2000e-3", "1.5", .toNearestOrEven)
+ /* dddiv475 */ self.divide64("300e-2", "2000e-3", "1.5", .toNearestOrEven)
+ /* dddiv476 */ self.divide64("3000e-3", "2000e-3", "1.5", .toNearestOrEven)
+ /* dddiv480 */ self.divide64("1", "1.0E+33", "1E-33", .toNearestOrEven)
+ /* dddiv481 */ self.divide64("1", "10E+33", "1E-34", .toNearestOrEven)
+ /* dddiv482 */ self.divide64("1", "1.0E-33", "1E+33", .toNearestOrEven)
+ /* dddiv483 */ self.divide64("1", "10E-33", "1E+32", .toNearestOrEven)
+ /* dddiv484 */ self.divide64("0e5", "1e3", "0E+2", .toNearestOrEven)
+ /* dddiv485 */ self.divide64("0e5", "2e3", "0E+2", .toNearestOrEven)
+ /* dddiv486 */ self.divide64("0e5", "10e2", "0E+3", .toNearestOrEven)
+ /* dddiv487 */ self.divide64("0e5", "20e2", "0E+3", .toNearestOrEven)
+ /* dddiv488 */ self.divide64("0e5", "100e1", "0E+4", .toNearestOrEven)
+ /* dddiv489 */ self.divide64("0e5", "200e1", "0E+4", .toNearestOrEven)
+ /* dddiv491 */ self.divide64("1e5", "1e3", "1E+2", .toNearestOrEven)
+ /* dddiv492 */ self.divide64("1e5", "2e3", "5E+1", .toNearestOrEven)
+ /* dddiv493 */ self.divide64("1e5", "10e2", "1E+2", .toNearestOrEven)
+ /* dddiv494 */ self.divide64("1e5", "20e2", "5E+1", .toNearestOrEven)
+ /* dddiv495 */ self.divide64("1e5", "100e1", "1E+2", .toNearestOrEven)
+ /* dddiv496 */ self.divide64("1e5", "200e1", "5E+1", .toNearestOrEven)
+ /* dddiv497 */ self.divide64("0E+380", "1000E-13", "0E+369", .toNearestOrAwayFromZero)
+ /* dddiv498 */ self.divide64("0E-390", "1000E+13", "0E-398", .toNearestOrAwayFromZero)
+ /* dddiv500 */ self.divide64("1", "9.9", "0.1010101010101010", .toNearestOrAwayFromZero, .isInexact)
+ /* dddiv501 */ self.divide64("1", "9.09", "0.1100110011001100", .toNearestOrAwayFromZero, .isInexact)
+ /* dddiv502 */ self.divide64("1", "9.009", "0.1110001110001110", .toNearestOrAwayFromZero, .isInexact)
+ /* dddiv511 */ self.divide64("1", "2", "0.5", .toNearestOrAwayFromZero)
+ /* dddiv512 */ self.divide64("1.0", "2", "0.5", .toNearestOrAwayFromZero)
+ /* dddiv513 */ self.divide64("1.00", "2", "0.50", .toNearestOrAwayFromZero)
+ /* dddiv514 */ self.divide64("1.000", "2", "0.500", .toNearestOrAwayFromZero)
+ /* dddiv515 */ self.divide64("1.0000", "2", "0.5000", .toNearestOrAwayFromZero)
+ /* dddiv516 */ self.divide64("1.00000", "2", "0.50000", .toNearestOrAwayFromZero)
+ /* dddiv517 */ self.divide64("1.000000", "2", "0.500000", .toNearestOrAwayFromZero)
+ /* dddiv518 */ self.divide64("1.0000000", "2", "0.5000000", .toNearestOrAwayFromZero)
+ /* dddiv519 */ self.divide64("1.00", "2.00", "0.5", .toNearestOrAwayFromZero)
+ /* dddiv521 */ self.divide64("2", "1", "2", .toNearestOrAwayFromZero)
+ /* dddiv522 */ self.divide64("2", "1.0", "2", .toNearestOrAwayFromZero)
+ /* dddiv523 */ self.divide64("2", "1.00", "2", .toNearestOrAwayFromZero)
+ /* dddiv524 */ self.divide64("2", "1.000", "2", .toNearestOrAwayFromZero)
+ /* dddiv525 */ self.divide64("2", "1.0000", "2", .toNearestOrAwayFromZero)
+ /* dddiv526 */ self.divide64("2", "1.00000", "2", .toNearestOrAwayFromZero)
+ /* dddiv527 */ self.divide64("2", "1.000000", "2", .toNearestOrAwayFromZero)
+ /* dddiv528 */ self.divide64("2", "1.0000000", "2", .toNearestOrAwayFromZero)
+ /* dddiv529 */ self.divide64("2.00", "1.00", "2", .toNearestOrAwayFromZero)
+ /* dddiv530 */ self.divide64("2.40", "2", "1.20", .toNearestOrAwayFromZero)
+ /* dddiv531 */ self.divide64("2.40", "4", "0.60", .toNearestOrAwayFromZero)
+ /* dddiv532 */ self.divide64("2.40", "10", "0.24", .toNearestOrAwayFromZero)
+ /* dddiv533 */ self.divide64("2.40", "2.0", "1.2", .toNearestOrAwayFromZero)
+ /* dddiv534 */ self.divide64("2.40", "4.0", "0.6", .toNearestOrAwayFromZero)
+ /* dddiv535 */ self.divide64("2.40", "10.0", "0.24", .toNearestOrAwayFromZero)
+ /* dddiv536 */ self.divide64("2.40", "2.00", "1.2", .toNearestOrAwayFromZero)
+ /* dddiv537 */ self.divide64("2.40", "4.00", "0.6", .toNearestOrAwayFromZero)
+ /* dddiv538 */ self.divide64("2.40", "10.00", "0.24", .toNearestOrAwayFromZero)
+ /* dddiv539 */ self.divide64("0.9", "0.1", "9", .toNearestOrAwayFromZero)
+ /* dddiv540 */ self.divide64("0.9", "0.01", "9E+1", .toNearestOrAwayFromZero)
+ /* dddiv541 */ self.divide64("0.9", "0.001", "9E+2", .toNearestOrAwayFromZero)
+ /* dddiv542 */ self.divide64("5", "2", "2.5", .toNearestOrAwayFromZero)
+ /* dddiv543 */ self.divide64("5", "2.0", "2.5", .toNearestOrAwayFromZero)
+ /* dddiv544 */ self.divide64("5", "2.00", "2.5", .toNearestOrAwayFromZero)
+ /* dddiv545 */ self.divide64("5", "20", "0.25", .toNearestOrAwayFromZero)
+ /* dddiv546 */ self.divide64("5", "20.0", "0.25", .toNearestOrAwayFromZero)
+ /* dddiv547 */ self.divide64("2.400", "2", "1.200", .toNearestOrAwayFromZero)
+ /* dddiv548 */ self.divide64("2.400", "2.0", "1.20", .toNearestOrAwayFromZero)
+ /* dddiv549 */ self.divide64("2.400", "2.400", "1", .toNearestOrAwayFromZero)
+ /* dddiv550 */ self.divide64("240", "1", "240", .toNearestOrAwayFromZero)
+ /* dddiv551 */ self.divide64("240", "10", "24", .toNearestOrAwayFromZero)
+ /* dddiv552 */ self.divide64("240", "100", "2.4", .toNearestOrAwayFromZero)
+ /* dddiv553 */ self.divide64("240", "1000", "0.24", .toNearestOrAwayFromZero)
+ /* dddiv554 */ self.divide64("2400", "1", "2400", .toNearestOrAwayFromZero)
+ /* dddiv555 */ self.divide64("2400", "10", "240", .toNearestOrAwayFromZero)
+ /* dddiv556 */ self.divide64("2400", "100", "24", .toNearestOrAwayFromZero)
+ /* dddiv557 */ self.divide64("2400", "1000", "2.4", .toNearestOrAwayFromZero)
+ /* dddiv600 */ self.divide64("2.4E+9", "2", "1.2E+9", .toNearestOrAwayFromZero)
+ /* dddiv601 */ self.divide64("2.40E+9", "2", "1.20E+9", .toNearestOrAwayFromZero)
+ /* dddiv602 */ self.divide64("2.400E+9", "2", "1.200E+9", .toNearestOrAwayFromZero)
+ /* dddiv603 */ self.divide64("2.4000E+9", "2", "1.2000E+9", .toNearestOrAwayFromZero)
+ /* dddiv604 */ self.divide64("24E+8", "2", "1.2E+9", .toNearestOrAwayFromZero)
+ /* dddiv605 */ self.divide64("240E+7", "2", "1.20E+9", .toNearestOrAwayFromZero)
+ /* dddiv606 */ self.divide64("2400E+6", "2", "1.200E+9", .toNearestOrAwayFromZero)
+ /* dddiv607 */ self.divide64("24000E+5", "2", "1.2000E+9", .toNearestOrAwayFromZero)
+ /* dddiv731 */ self.divide64("5.00", "1E-3", "5.00E+3", .toNearestOrAwayFromZero)
+ /* dddiv732 */ self.divide64("00.00", "0.000", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv733 */ self.divide64("00.00", "0E-3", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv734 */ self.divide64("0", "-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv735 */ self.divide64("-0", "0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv736 */ self.divide64("-0", "-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv741 */ self.divide64("0", "-1", "-0", .toNearestOrAwayFromZero)
+ /* dddiv742 */ self.divide64("-0", "-1", "0", .toNearestOrAwayFromZero)
+ /* dddiv743 */ self.divide64("0", "1", "0", .toNearestOrAwayFromZero)
+ /* dddiv744 */ self.divide64("-0", "1", "-0", .toNearestOrAwayFromZero)
+ /* dddiv745 */ self.divide64("-1", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv746 */ self.divide64("-1", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv747 */ self.divide64("1", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv748 */ self.divide64("1", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv751 */ self.divide64("0.0", "-1", "-0.0", .toNearestOrAwayFromZero)
+ /* dddiv752 */ self.divide64("-0.0", "-1", "0.0", .toNearestOrAwayFromZero)
+ /* dddiv753 */ self.divide64("0.0", "1", "0.0", .toNearestOrAwayFromZero)
+ /* dddiv754 */ self.divide64("-0.0", "1", "-0.0", .toNearestOrAwayFromZero)
+ /* dddiv755 */ self.divide64("-1.0", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv756 */ self.divide64("-1.0", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv757 */ self.divide64("1.0", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv758 */ self.divide64("1.0", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv761 */ self.divide64("0", "-1.0", "-0E+1", .toNearestOrAwayFromZero)
+ /* dddiv762 */ self.divide64("-0", "-1.0", "0E+1", .toNearestOrAwayFromZero)
+ /* dddiv763 */ self.divide64("0", "1.0", "0E+1", .toNearestOrAwayFromZero)
+ /* dddiv764 */ self.divide64("-0", "1.0", "-0E+1", .toNearestOrAwayFromZero)
+ /* dddiv765 */ self.divide64("-1", "0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv766 */ self.divide64("-1", "-0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv767 */ self.divide64("1", "0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv768 */ self.divide64("1", "-0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv771 */ self.divide64("0.0", "-1.0", "-0", .toNearestOrAwayFromZero)
+ /* dddiv772 */ self.divide64("-0.0", "-1.0", "0", .toNearestOrAwayFromZero)
+ /* dddiv773 */ self.divide64("0.0", "1.0", "0", .toNearestOrAwayFromZero)
+ /* dddiv774 */ self.divide64("-0.0", "1.0", "-0", .toNearestOrAwayFromZero)
+ /* dddiv775 */ self.divide64("-1.0", "0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv776 */ self.divide64("-1.0", "-0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv777 */ self.divide64("1.0", "0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv778 */ self.divide64("1.0", "-0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv780 */ self.divide64("Inf", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv781 */ self.divide64("Inf", "-1000", "-Infinity", .toNearestOrAwayFromZero)
+ /* dddiv782 */ self.divide64("Inf", "-1", "-Infinity", .toNearestOrAwayFromZero)
+ /* dddiv783 */ self.divide64("Inf", "-0", "-Infinity", .toNearestOrAwayFromZero)
+ /* dddiv784 */ self.divide64("Inf", "0", "Infinity", .toNearestOrAwayFromZero)
+ /* dddiv785 */ self.divide64("Inf", "1", "Infinity", .toNearestOrAwayFromZero)
+ /* dddiv786 */ self.divide64("Inf", "1000", "Infinity", .toNearestOrAwayFromZero)
+ /* dddiv787 */ self.divide64("Inf", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv788 */ self.divide64("-1000", "Inf", "-0E-398", .toNearestOrAwayFromZero)
+ /* dddiv789 */ self.divide64("-Inf", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv790 */ self.divide64("-1", "Inf", "-0E-398", .toNearestOrAwayFromZero)
+ /* dddiv791 */ self.divide64("-0", "Inf", "-0E-398", .toNearestOrAwayFromZero)
+ /* dddiv792 */ self.divide64("0", "Inf", "0E-398", .toNearestOrAwayFromZero)
+ /* dddiv793 */ self.divide64("1", "Inf", "0E-398", .toNearestOrAwayFromZero)
+ /* dddiv794 */ self.divide64("1000", "Inf", "0E-398", .toNearestOrAwayFromZero)
+ /* dddiv795 */ self.divide64("Inf", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv800 */ self.divide64("-Inf", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv801 */ self.divide64("-Inf", "-1000", "Infinity", .toNearestOrAwayFromZero)
+ /* dddiv802 */ self.divide64("-Inf", "-1", "Infinity", .toNearestOrAwayFromZero)
+ /* dddiv803 */ self.divide64("-Inf", "-0", "Infinity", .toNearestOrAwayFromZero)
+ /* dddiv804 */ self.divide64("-Inf", "0", "-Infinity", .toNearestOrAwayFromZero)
+ /* dddiv805 */ self.divide64("-Inf", "1", "-Infinity", .toNearestOrAwayFromZero)
+ /* dddiv806 */ self.divide64("-Inf", "1000", "-Infinity", .toNearestOrAwayFromZero)
+ /* dddiv807 */ self.divide64("-Inf", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv808 */ self.divide64("-1000", "Inf", "-0E-398", .toNearestOrAwayFromZero)
+ /* dddiv809 */ self.divide64("-Inf", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv810 */ self.divide64("-1", "-Inf", "0E-398", .toNearestOrAwayFromZero)
+ /* dddiv811 */ self.divide64("-0", "-Inf", "0E-398", .toNearestOrAwayFromZero)
+ /* dddiv812 */ self.divide64("0", "-Inf", "-0E-398", .toNearestOrAwayFromZero)
+ /* dddiv813 */ self.divide64("1", "-Inf", "-0E-398", .toNearestOrAwayFromZero)
+ /* dddiv814 */ self.divide64("1000", "-Inf", "-0E-398", .toNearestOrAwayFromZero)
+ /* dddiv815 */ self.divide64("Inf", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv821 */ self.divide64("NaN", "-Inf", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv822 */ self.divide64("NaN", "-1000", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv823 */ self.divide64("NaN", "-1", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv824 */ self.divide64("NaN", "-0", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv825 */ self.divide64("NaN", "0", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv826 */ self.divide64("NaN", "1", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv827 */ self.divide64("NaN", "1000", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv828 */ self.divide64("NaN", "Inf", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv829 */ self.divide64("NaN", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv830 */ self.divide64("-Inf", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv831 */ self.divide64("-1000", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv832 */ self.divide64("-1", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv833 */ self.divide64("-0", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv834 */ self.divide64("0", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv835 */ self.divide64("1", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv836 */ self.divide64("1000", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv837 */ self.divide64("Inf", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dddiv841 */ self.divide64("sNaN", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv842 */ self.divide64("sNaN", "-1000", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv843 */ self.divide64("sNaN", "-1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv844 */ self.divide64("sNaN", "-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv845 */ self.divide64("sNaN", "0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv846 */ self.divide64("sNaN", "1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv847 */ self.divide64("sNaN", "1000", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv848 */ self.divide64("sNaN", "NaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv849 */ self.divide64("sNaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv850 */ self.divide64("NaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv851 */ self.divide64("-Inf", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv852 */ self.divide64("-1000", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv853 */ self.divide64("-1", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv854 */ self.divide64("-0", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv855 */ self.divide64("0", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv856 */ self.divide64("1", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv857 */ self.divide64("1000", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv858 */ self.divide64("Inf", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv859 */ self.divide64("NaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv861 */ self.divide64("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrAwayFromZero)
+ /* dddiv862 */ self.divide64("NaN(0x8)", "1000", "NaN(0x8)", .toNearestOrAwayFromZero)
+ /* dddiv863 */ self.divide64("NaN(0x7)", "Inf", "NaN(0x7)", .toNearestOrAwayFromZero)
+ /* dddiv864 */ self.divide64("NaN(0x6)", "NaN(0x5)", "NaN(0x6)", .toNearestOrAwayFromZero)
+ /* dddiv865 */ self.divide64("-Inf", "NaN(0x4)", "NaN(0x4)", .toNearestOrAwayFromZero)
+ /* dddiv866 */ self.divide64("-1000", "NaN(0x3)", "NaN(0x3)", .toNearestOrAwayFromZero)
+ /* dddiv867 */ self.divide64("Inf", "NaN(0x2)", "NaN(0x2)", .toNearestOrAwayFromZero)
+ /* dddiv871 */ self.divide64("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv872 */ self.divide64("sNaN(0x62)", "-1", "NaN(0x62)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv873 */ self.divide64("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv874 */ self.divide64("sNaN(0x60)", "sNaN(0x5e)", "NaN(0x60)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv875 */ self.divide64("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv876 */ self.divide64("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv877 */ self.divide64("0", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv878 */ self.divide64("Inf", "sNaN(0x5a)", "NaN(0x5a)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv879 */ self.divide64("NaN", "sNaN(0x59)", "NaN(0x59)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv881 */ self.divide64("-NaN(0x9)", "-Inf", "-NaN(0x9)", .toNearestOrAwayFromZero)
+ /* dddiv882 */ self.divide64("-NaN(0x8)", "1000", "-NaN(0x8)", .toNearestOrAwayFromZero)
+ /* dddiv883 */ self.divide64("-NaN(0x7)", "Inf", "-NaN(0x7)", .toNearestOrAwayFromZero)
+ /* dddiv884 */ self.divide64("-NaN(0x6)", "-NaN(0x5)", "-NaN(0x6)", .toNearestOrAwayFromZero)
+ /* dddiv885 */ self.divide64("-Inf", "-NaN(0x4)", "-NaN(0x4)", .toNearestOrAwayFromZero)
+ /* dddiv886 */ self.divide64("-1000", "-NaN(0x3)", "-NaN(0x3)", .toNearestOrAwayFromZero)
+ /* dddiv887 */ self.divide64("Inf", "-NaN(0x2)", "-NaN(0x2)", .toNearestOrAwayFromZero)
+ /* dddiv891 */ self.divide64("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv892 */ self.divide64("-sNaN(0x62)", "-1", "-NaN(0x62)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv893 */ self.divide64("-sNaN(0x61)", "NaN", "-NaN(0x61)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv894 */ self.divide64("-sNaN(0x60)", "-sNaN(0x5e)", "-NaN(0x60)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv895 */ self.divide64("-NaN(0x5f)", "-sNaN(0x5d)", "-NaN(0x5d)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv896 */ self.divide64("-Inf", "-sNaN(0x5c)", "-NaN(0x5c)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv897 */ self.divide64("0", "-sNaN(0x5b)", "-NaN(0x5b)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv898 */ self.divide64("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv899 */ self.divide64("-NaN", "-sNaN(0x59)", "-NaN(0x59)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv901 */ self.divide64("0", "0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv902 */ self.divide64("0.0E5", "0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv903 */ self.divide64("0.000", "0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dddiv904 */ self.divide64("0.0001", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv905 */ self.divide64("0.01", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv906 */ self.divide64("0.1", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv907 */ self.divide64("1", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv908 */ self.divide64("1", "0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv909 */ self.divide64("10", "0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv910 */ self.divide64("1E+100", "0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv911 */ self.divide64("1E+100", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv921 */ self.divide64("-0.0001", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv922 */ self.divide64("-0.01", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv923 */ self.divide64("-0.1", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv924 */ self.divide64("-1", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv925 */ self.divide64("-1", "0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv926 */ self.divide64("-10", "0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv927 */ self.divide64("-1E+100", "0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv928 */ self.divide64("-1E+100", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv931 */ self.divide64("0.0001", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv932 */ self.divide64("0.01", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv933 */ self.divide64("0.1", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv934 */ self.divide64("1", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv935 */ self.divide64("1", "-0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv936 */ self.divide64("10", "-0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv937 */ self.divide64("1E+100", "-0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv938 */ self.divide64("1E+100", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv941 */ self.divide64("-0.0001", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv942 */ self.divide64("-0.01", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv943 */ self.divide64("-0.1", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv944 */ self.divide64("-1", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv945 */ self.divide64("-1", "-0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv946 */ self.divide64("-10", "-0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv947 */ self.divide64("-1E+100", "-0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dddiv948 */ self.divide64("-1E+100", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ }
+
+ private func divide64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.divided(by: arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_div(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_divide128() {
+ /* dqdiv001 */ self.divide128("1", "1", "1", .toNearestOrEven)
+ /* dqdiv002 */ self.divide128("2", "1", "2", .toNearestOrEven)
+ /* dqdiv003 */ self.divide128("1", "2", "0.5", .toNearestOrEven)
+ /* dqdiv004 */ self.divide128("2", "2", "1", .toNearestOrEven)
+ /* dqdiv005 */ self.divide128("0", "1", "0", .toNearestOrEven)
+ /* dqdiv006 */ self.divide128("0", "2", "0", .toNearestOrEven)
+ /* dqdiv007 */ self.divide128("1", "3", "0.3333333333333333333333333333333333", .toNearestOrEven, .isInexact)
+ /* dqdiv008 */ self.divide128("2", "3", "0.6666666666666666666666666666666667", .toNearestOrEven, .isInexact)
+ /* dqdiv009 */ self.divide128("3", "3", "1", .toNearestOrEven)
+ /* dqdiv010 */ self.divide128("2.4", "1", "2.4", .toNearestOrEven)
+ /* dqdiv011 */ self.divide128("2.4", "-1", "-2.4", .toNearestOrEven)
+ /* dqdiv012 */ self.divide128("-2.4", "1", "-2.4", .toNearestOrEven)
+ /* dqdiv013 */ self.divide128("-2.4", "-1", "2.4", .toNearestOrEven)
+ /* dqdiv014 */ self.divide128("2.40", "1", "2.40", .toNearestOrEven)
+ /* dqdiv015 */ self.divide128("2.400", "1", "2.400", .toNearestOrEven)
+ /* dqdiv016 */ self.divide128("2.4", "2", "1.2", .toNearestOrEven)
+ /* dqdiv017 */ self.divide128("2.400", "2", "1.200", .toNearestOrEven)
+ /* dqdiv018 */ self.divide128("2.", "2", "1", .toNearestOrEven)
+ /* dqdiv019 */ self.divide128("20", "20", "1", .toNearestOrEven)
+ /* dqdiv020 */ self.divide128("187", "187", "1", .toNearestOrEven)
+ /* dqdiv021 */ self.divide128("5", "2", "2.5", .toNearestOrEven)
+ /* dqdiv022 */ self.divide128("50", "20", "2.5", .toNearestOrEven)
+ /* dqdiv023 */ self.divide128("500", "200", "2.5", .toNearestOrEven)
+ /* dqdiv024 */ self.divide128("50.0", "20.0", "2.5", .toNearestOrEven)
+ /* dqdiv025 */ self.divide128("5.00", "2.00", "2.5", .toNearestOrEven)
+ /* dqdiv026 */ self.divide128("5", "2.0", "2.5", .toNearestOrEven)
+ /* dqdiv027 */ self.divide128("5", "2.000", "2.5", .toNearestOrEven)
+ /* dqdiv028 */ self.divide128("5", "0.20", "25", .toNearestOrEven)
+ /* dqdiv029 */ self.divide128("5", "0.200", "25", .toNearestOrEven)
+ /* dqdiv030 */ self.divide128("10", "1", "10", .toNearestOrEven)
+ /* dqdiv031 */ self.divide128("100", "1", "100", .toNearestOrEven)
+ /* dqdiv032 */ self.divide128("1000", "1", "1000", .toNearestOrEven)
+ /* dqdiv033 */ self.divide128("1000", "100", "10", .toNearestOrEven)
+ /* dqdiv035 */ self.divide128("1", "2", "0.5", .toNearestOrEven)
+ /* dqdiv036 */ self.divide128("1", "4", "0.25", .toNearestOrEven)
+ /* dqdiv037 */ self.divide128("1", "8", "0.125", .toNearestOrEven)
+ /* dqdiv038 */ self.divide128("1", "16", "0.0625", .toNearestOrEven)
+ /* dqdiv039 */ self.divide128("1", "32", "0.03125", .toNearestOrEven)
+ /* dqdiv040 */ self.divide128("1", "64", "0.015625", .toNearestOrEven)
+ /* dqdiv041 */ self.divide128("1", "-2", "-0.5", .toNearestOrEven)
+ /* dqdiv042 */ self.divide128("1", "-4", "-0.25", .toNearestOrEven)
+ /* dqdiv043 */ self.divide128("1", "-8", "-0.125", .toNearestOrEven)
+ /* dqdiv044 */ self.divide128("1", "-16", "-0.0625", .toNearestOrEven)
+ /* dqdiv045 */ self.divide128("1", "-32", "-0.03125", .toNearestOrEven)
+ /* dqdiv046 */ self.divide128("1", "-64", "-0.015625", .toNearestOrEven)
+ /* dqdiv047 */ self.divide128("-1", "2", "-0.5", .toNearestOrEven)
+ /* dqdiv048 */ self.divide128("-1", "4", "-0.25", .toNearestOrEven)
+ /* dqdiv049 */ self.divide128("-1", "8", "-0.125", .toNearestOrEven)
+ /* dqdiv050 */ self.divide128("-1", "16", "-0.0625", .toNearestOrEven)
+ /* dqdiv051 */ self.divide128("-1", "32", "-0.03125", .toNearestOrEven)
+ /* dqdiv052 */ self.divide128("-1", "64", "-0.015625", .toNearestOrEven)
+ /* dqdiv053 */ self.divide128("-1", "-2", "0.5", .toNearestOrEven)
+ /* dqdiv054 */ self.divide128("-1", "-4", "0.25", .toNearestOrEven)
+ /* dqdiv055 */ self.divide128("-1", "-8", "0.125", .toNearestOrEven)
+ /* dqdiv056 */ self.divide128("-1", "-16", "0.0625", .toNearestOrEven)
+ /* dqdiv057 */ self.divide128("-1", "-32", "0.03125", .toNearestOrEven)
+ /* dqdiv058 */ self.divide128("-1", "-64", "0.015625", .toNearestOrEven)
+ /* dqdiv060 */ self.divide128("1", "7", "0.1428571428571428571428571428571429", .toNearestOrEven, .isInexact)
+ /* dqdiv061 */ self.divide128("1.2345678", "1.9876543", "0.6211179680490717123193907511985359", .toNearestOrEven, .isInexact)
+ /* dqdiv067 */ self.divide128("9999999999999999999999999999999999", "1", "9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqdiv068 */ self.divide128("999999999999999999999999999999999", "1", "999999999999999999999999999999999", .toNearestOrEven)
+ /* dqdiv069 */ self.divide128("99999999999999999999999999999999", "1", "99999999999999999999999999999999", .toNearestOrEven)
+ /* dqdiv070 */ self.divide128("99999999999999999", "1", "99999999999999999", .toNearestOrEven)
+ /* dqdiv071 */ self.divide128("9999999999999999", "1", "9999999999999999", .toNearestOrEven)
+ /* dqdiv072 */ self.divide128("999999999999999", "1", "999999999999999", .toNearestOrEven)
+ /* dqdiv073 */ self.divide128("99999999999999", "1", "99999999999999", .toNearestOrEven)
+ /* dqdiv074 */ self.divide128("9999999999999", "1", "9999999999999", .toNearestOrEven)
+ /* dqdiv075 */ self.divide128("999999999999", "1", "999999999999", .toNearestOrEven)
+ /* dqdiv076 */ self.divide128("99999999999", "1", "99999999999", .toNearestOrEven)
+ /* dqdiv077 */ self.divide128("9999999999", "1", "9999999999", .toNearestOrEven)
+ /* dqdiv078 */ self.divide128("999999999", "1", "999999999", .toNearestOrEven)
+ /* dqdiv079 */ self.divide128("99999999", "1", "99999999", .toNearestOrEven)
+ /* dqdiv080 */ self.divide128("9999999", "1", "9999999", .toNearestOrEven)
+ /* dqdiv081 */ self.divide128("999999", "1", "999999", .toNearestOrEven)
+ /* dqdiv082 */ self.divide128("99999", "1", "99999", .toNearestOrEven)
+ /* dqdiv083 */ self.divide128("9999", "1", "9999", .toNearestOrEven)
+ /* dqdiv084 */ self.divide128("999", "1", "999", .toNearestOrEven)
+ /* dqdiv085 */ self.divide128("99", "1", "99", .toNearestOrEven)
+ /* dqdiv086 */ self.divide128("9", "1", "9", .toNearestOrEven)
+ /* dqdiv090 */ self.divide128("0.", "1", "0", .toNearestOrEven)
+ /* dqdiv091 */ self.divide128(".0", "1", "0.0", .toNearestOrEven)
+ /* dqdiv092 */ self.divide128("0.00", "1", "0.00", .toNearestOrEven)
+ /* dqdiv093 */ self.divide128("0.00E+9", "1", "0E+7", .toNearestOrEven)
+ /* dqdiv094 */ self.divide128("0.0000E-50", "1", "0E-54", .toNearestOrEven)
+ /* dqdiv095 */ self.divide128("1", "1E-8", "1E+8", .toNearestOrEven)
+ /* dqdiv096 */ self.divide128("1", "1E-9", "1E+9", .toNearestOrEven)
+ /* dqdiv097 */ self.divide128("1", "1E-10", "1E+10", .toNearestOrEven)
+ /* dqdiv098 */ self.divide128("1", "1E-11", "1E+11", .toNearestOrEven)
+ /* dqdiv099 */ self.divide128("1", "1E-12", "1E+12", .toNearestOrEven)
+ /* dqdiv100 */ self.divide128("1", "1", "1", .toNearestOrEven)
+ /* dqdiv101 */ self.divide128("1", "2", "0.5", .toNearestOrEven)
+ /* dqdiv102 */ self.divide128("1", "3", "0.3333333333333333333333333333333333", .toNearestOrEven, .isInexact)
+ /* dqdiv1021 */ self.divide128("1E0", "1E0", "1", .toNearestOrAwayFromZero)
+ /* dqdiv1022 */ self.divide128("1E0", "2E0", "0.5", .toNearestOrAwayFromZero)
+ /* dqdiv1023 */ self.divide128("1E0", "3E0", "0.3333333333333333333333333333333333", .toNearestOrAwayFromZero, .isInexact)
+ /* dqdiv1024 */ self.divide128("100E-2", "1000E-3", "1", .toNearestOrAwayFromZero)
+ /* dqdiv1025 */ self.divide128("24E-1", "2E0", "1.2", .toNearestOrAwayFromZero)
+ /* dqdiv1026 */ self.divide128("2400E-3", "2E0", "1.200", .toNearestOrAwayFromZero)
+ /* dqdiv1027 */ self.divide128("5E0", "2E0", "2.5", .toNearestOrAwayFromZero)
+ /* dqdiv1028 */ self.divide128("5E0", "20E-1", "2.5", .toNearestOrAwayFromZero)
+ /* dqdiv1029 */ self.divide128("5E0", "2000E-3", "2.5", .toNearestOrAwayFromZero)
+ /* dqdiv103 */ self.divide128("1", "4", "0.25", .toNearestOrEven)
+ /* dqdiv1030 */ self.divide128("5E0", "2E-1", "25", .toNearestOrAwayFromZero)
+ /* dqdiv1031 */ self.divide128("5E0", "20E-2", "25", .toNearestOrAwayFromZero)
+ /* dqdiv1032 */ self.divide128("480E-2", "3E0", "1.60", .toNearestOrAwayFromZero)
+ /* dqdiv1033 */ self.divide128("47E-1", "2E0", "2.35", .toNearestOrAwayFromZero)
+ /* dqdiv104 */ self.divide128("1", "5", "0.2", .toNearestOrEven)
+ /* dqdiv1041 */ self.divide128("6", "11", "0.5454545454545454545454545454545455", .toNearestOrEven, .isInexact)
+ /* dqdiv105 */ self.divide128("1", "6", "0.1666666666666666666666666666666667", .toNearestOrEven, .isInexact)
+ /* dqdiv1050 */ self.divide128("8.336804418094040989630006819881709E-6143", "8.336804418094040989630006819889000E-6143", "0.9999999999999999999999999999991254", .toNearestOrEven, .isInexact)
+ /* dqdiv106 */ self.divide128("1", "7", "0.1428571428571428571428571428571429", .toNearestOrEven, .isInexact)
+ /* dqdiv107 */ self.divide128("1", "8", "0.125", .toNearestOrEven)
+ /* dqdiv108 */ self.divide128("1", "9", "0.1111111111111111111111111111111111", .toNearestOrEven, .isInexact)
+ /* dqdiv109 */ self.divide128("1", "10", "0.1", .toNearestOrEven)
+ /* dqdiv110 */ self.divide128("1", "1", "1", .toNearestOrEven)
+ /* dqdiv111 */ self.divide128("2", "1", "2", .toNearestOrEven)
+ /* dqdiv112 */ self.divide128("3", "1", "3", .toNearestOrEven)
+ /* dqdiv113 */ self.divide128("4", "1", "4", .toNearestOrEven)
+ /* dqdiv114 */ self.divide128("5", "1", "5", .toNearestOrEven)
+ /* dqdiv115 */ self.divide128("6", "1", "6", .toNearestOrEven)
+ /* dqdiv116 */ self.divide128("7", "1", "7", .toNearestOrEven)
+ /* dqdiv117 */ self.divide128("8", "1", "8", .toNearestOrEven)
+ /* dqdiv118 */ self.divide128("9", "1", "9", .toNearestOrEven)
+ /* dqdiv119 */ self.divide128("10", "1", "10", .toNearestOrEven)
+ /* dqdiv120 */ self.divide128("3E+1", "0.001", "3E+4", .toNearestOrEven)
+ /* dqdiv121 */ self.divide128("2.200", "2", "1.100", .toNearestOrEven)
+ /* dqdiv130 */ self.divide128("12345", "4.999", "2469.493898779755951190238047609522", .toNearestOrEven, .isInexact)
+ /* dqdiv131 */ self.divide128("12345", "4.99", "2473.947895791583166332665330661323", .toNearestOrEven, .isInexact)
+ /* dqdiv132 */ self.divide128("12345", "4.9", "2519.387755102040816326530612244898", .toNearestOrEven, .isInexact)
+ /* dqdiv133 */ self.divide128("12345", "5", "2469", .toNearestOrEven)
+ /* dqdiv134 */ self.divide128("12345", "5.1", "2420.588235294117647058823529411765", .toNearestOrEven, .isInexact)
+ /* dqdiv135 */ self.divide128("12345", "5.01", "2464.071856287425149700598802395210", .toNearestOrEven, .isInexact)
+ /* dqdiv136 */ self.divide128("12345", "5.001", "2468.506298740251949610077984403119", .toNearestOrEven, .isInexact)
+ /* dqdiv1751 */ self.divide128("1e+4277", "1e-3311", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqdiv1752 */ self.divide128("1e+4277", "-1e-3311", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqdiv1753 */ self.divide128("-1e+4277", "1e-3311", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqdiv1754 */ self.divide128("-1e+4277", "-1e-3311", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqdiv1755 */ self.divide128("1e-4277", "1e+3311", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1756 */ self.divide128("1e-4277", "-1e+3311", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1757 */ self.divide128("-1e-4277", "1e+3311", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1758 */ self.divide128("-1e-4277", "-1e+3311", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1760 */ self.divide128("1e-6069", "1e+101", "1E-6170", .toNearestOrEven)
+ /* dqdiv1761 */ self.divide128("1e-6069", "1e+102", "1E-6171", .toNearestOrEven)
+ /* dqdiv1762 */ self.divide128("1e-6069", "1e+103", "1E-6172", .toNearestOrEven)
+ /* dqdiv1763 */ self.divide128("1e-6069", "1e+104", "1E-6173", .toNearestOrEven)
+ /* dqdiv1764 */ self.divide128("1e-6069", "1e+105", "1E-6174", .toNearestOrEven)
+ /* dqdiv1765 */ self.divide128("1e-6069", "1e+106", "1E-6175", .toNearestOrEven)
+ /* dqdiv1766 */ self.divide128("1e-6069", "1e+107", "1E-6176", .toNearestOrEven)
+ /* dqdiv1767 */ self.divide128("1e-6069", "1e+108", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1768 */ self.divide128("1e-6069", "1e+109", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1769 */ self.divide128("1e-6069", "1e+110", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1770 */ self.divide128("1e+40", "1e-6101", "1.000000000000000000000000000000E+6141", .toNearestOrEven)
+ /* dqdiv1771 */ self.divide128("1e+40", "1e-6102", "1.0000000000000000000000000000000E+6142", .toNearestOrEven)
+ /* dqdiv1772 */ self.divide128("1e+40", "1e-6103", "1.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqdiv1773 */ self.divide128("1e+40", "1e-6104", "1.000000000000000000000000000000000E+6144", .toNearestOrEven)
+ /* dqdiv1774 */ self.divide128("1e+40", "1e-6105", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqdiv1775 */ self.divide128("1e+40", "1e-6106", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqdiv1776 */ self.divide128("1e+40", "1e-6107", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqdiv1777 */ self.divide128("1e+40", "1e-6108", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqdiv1778 */ self.divide128("1e+40", "1e-6109", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqdiv1779 */ self.divide128("1e+40", "1e-6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqdiv1801 */ self.divide128("1.0000E-6172", "1", "1.0000E-6172", .toNearestOrEven)
+ /* dqdiv1802 */ self.divide128("1.000E-6172", "1e+1", "1.000E-6173", .toNearestOrEven)
+ /* dqdiv1803 */ self.divide128("1.00E-6172", "1e+2", "1.00E-6174", .toNearestOrEven)
+ /* dqdiv1804 */ self.divide128("1.0E-6172", "1e+3", "1.0E-6175", .toNearestOrEven)
+ /* dqdiv1805 */ self.divide128("1.0E-6172", "1e+4", "1E-6176", .toNearestOrEven)
+ /* dqdiv1806 */ self.divide128("1.3E-6172", "1e+4", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1807 */ self.divide128("1.5E-6172", "1e+4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1808 */ self.divide128("1.7E-6172", "1e+4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1809 */ self.divide128("2.3E-6172", "1e+4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1810 */ self.divide128("2.5E-6172", "1e+4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1811 */ self.divide128("2.7E-6172", "1e+4", "3E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1812 */ self.divide128("1.49E-6172", "1e+4", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1813 */ self.divide128("1.50E-6172", "1e+4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1814 */ self.divide128("1.51E-6172", "1e+4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1815 */ self.divide128("2.49E-6172", "1e+4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1816 */ self.divide128("2.50E-6172", "1e+4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1817 */ self.divide128("2.51E-6172", "1e+4", "3E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1818 */ self.divide128("1E-6172", "1e+4", "1E-6176", .toNearestOrEven)
+ /* dqdiv1819 */ self.divide128("3E-6172", "1e+5", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1820 */ self.divide128("5E-6172", "1e+5", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1821 */ self.divide128("7E-6172", "1e+5", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1822 */ self.divide128("9E-6172", "1e+5", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1823 */ self.divide128("9.9E-6172", "1e+5", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1824 */ self.divide128("1E-6172", "-1e+4", "-1E-6176", .toNearestOrEven)
+ /* dqdiv1825 */ self.divide128("3E-6172", "-1e+5", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1826 */ self.divide128("-5E-6172", "1e+5", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1827 */ self.divide128("7E-6172", "-1e+5", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1828 */ self.divide128("-9E-6172", "1e+5", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1829 */ self.divide128("9.9E-6172", "-1e+5", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1830 */ self.divide128("3.0E-6172", "-1e+5", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1831 */ self.divide128("1.0E-5977", "1e+200", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv1832 */ self.divide128("1.0E-5977", "1e+199", "1E-6176", .toNearestOrEven)
+ /* dqdiv1833 */ self.divide128("1.0E-5977", "1e+198", "1.0E-6175", .toNearestOrEven)
+ /* dqdiv1834 */ self.divide128("2.0E-5977", "2e+198", "1.0E-6175", .toNearestOrEven)
+ /* dqdiv1835 */ self.divide128("4.0E-5977", "4e+198", "1.0E-6175", .toNearestOrEven)
+ /* dqdiv1836 */ self.divide128("10.0E-5977", "10e+198", "1.0E-6175", .toNearestOrEven)
+ /* dqdiv1837 */ self.divide128("30.0E-5977", "30e+198", "1.0E-6175", .toNearestOrEven)
+ /* dqdiv1838 */ self.divide128("40.0E-5982", "40e+166", "1.0E-6148", .toNearestOrEven)
+ /* dqdiv1839 */ self.divide128("40.0E-5982", "40e+165", "1.0E-6147", .toNearestOrEven)
+ /* dqdiv1840 */ self.divide128("40.0E-5982", "40e+164", "1.0E-6146", .toNearestOrEven)
+ /* dqdiv2010 */ self.divide128("-5231195652931651968034356117118850", "-7243718664422548573203260970.34995", "722169.9095831284624736051460550680", .toNearestOrEven, .isInexact)
+ /* dqdiv2011 */ self.divide128("-89584669773927.82711237350022515352", "-42077943728529635884.21142627532985", "0.000002129017291146471565928125887527266", .toNearestOrEven, .isInexact)
+ /* dqdiv2012 */ self.divide128("-2.828201693360723203806974891946180E-232", "812596541221823960386384403089240.9", "-3.480450075640521320040055759125120E-265", .toNearestOrEven, .isInexact)
+ /* dqdiv2013 */ self.divide128("-6442775372761069267502937539408720", "24904085056.69185465145182606089196", "-258703556388226463687701.4884719589", .toNearestOrEven, .isInexact)
+ /* dqdiv2014 */ self.divide128("5.535520011272625629610079879714705", "-44343664650.57203052003068113531208", "-1.248322630728089308975940533493562E-10", .toNearestOrEven, .isInexact)
+ /* dqdiv2015 */ self.divide128("65919273712517865964325.99419625010", "-314733354141381737378622515.7789054", "-0.0002094448295521490616379784758911632", .toNearestOrEven, .isInexact)
+ /* dqdiv2016 */ self.divide128("-7.779172568193197107115275140431129E+759", "-140453015639.3988987652895178782143", "5.538629792161641534962774244238115E+748", .toNearestOrEven, .isInexact)
+ /* dqdiv2017 */ self.divide128("644314832597569.0181226067518178797", "-115024585257425.1635759521565201075", "-5.601540150356479257367687450922795", .toNearestOrEven, .isInexact)
+ /* dqdiv2018 */ self.divide128("6.898640941579611450676592553286870E-47", "-11272429881407851485163914999.25943", "-6.119923578285338689371137648319280E-75", .toNearestOrEven, .isInexact)
+ /* dqdiv2019 */ self.divide128("-3591344544888727133.30819750163254", "5329395.423792795661446561090331037", "-673874662941.1968525589460533725290", .toNearestOrEven, .isInexact)
+ /* dqdiv2020 */ self.divide128("-7.682356781384631313156462724425838E+747", "-6.60375855512219057281922141809940E+703", "1.163330960279556016678379128875149E+44", .toNearestOrEven, .isInexact)
+ /* dqdiv2021 */ self.divide128("-4511495596596941820863224.274679699", "3365395017.263329795449661616090724", "-1340554548115304.904166888018346299", .toNearestOrEven, .isInexact)
+ /* dqdiv2022 */ self.divide128("5.211164127840931517263639608151299", "164.5566381356276567012533847006453", "0.03166790587655228864478260157156510", .toNearestOrEven, .isInexact)
+ /* dqdiv2023 */ self.divide128("-49891.2243893458830384077684620383", "-47179.9312961860747554053371171530", "1.057467084386767291602189656430268", .toNearestOrEven, .isInexact)
+ /* dqdiv2024 */ self.divide128("15065477.47214268488077415462413353", "4366211.120892953261309529740552596", "3.450469309661227984244545513441359", .toNearestOrEven, .isInexact)
+ /* dqdiv2025 */ self.divide128("1.575670269440761846109602429612644E+370", "653199649324740300.006185482643439", "2.412233795700359170904588548041481E+352", .toNearestOrEven, .isInexact)
+ /* dqdiv2026 */ self.divide128("-2112422311733448924573432192.620145", "-80067206.03590693153848215848613406", "26383115089417660175.20102646756574", .toNearestOrEven, .isInexact)
+ /* dqdiv2027 */ self.divide128("-67096536051279809.32218611548721839", "-869685412881941081664251990181.1049", "7.715035236584805921278566365231168E-14", .toNearestOrEven, .isInexact)
+ /* dqdiv2028 */ self.divide128("-58612908548962047.21866913425488972", "-978449597531.3873665583475633831644", "59903.86085991703091236507859837023", .toNearestOrEven, .isInexact)
+ /* dqdiv2029 */ self.divide128("-133032412010942.1476864138213319796", "-7.882059293498670705446528648201359E-428", "1.687787506504433064549515681693715E+441", .toNearestOrEven, .isInexact)
+ /* dqdiv2030 */ self.divide128("1.83746698338966029492299716360513E+977", "-9.897926608979649951672839879128603E+154", "-1.856416051542212552042390218062458E+822", .toNearestOrEven, .isInexact)
+ /* dqdiv2031 */ self.divide128("-113742475841399236307128962.1507063", "8298602.203049834732657567965262989", "-13706221006665137826.16557393919929", .toNearestOrEven, .isInexact)
+ /* dqdiv2032 */ self.divide128("196.4787574650754152995941808331862", "929.6553388472318094427422117172394", "0.2113458066176526651006917922814018", .toNearestOrEven, .isInexact)
+ /* dqdiv2033 */ self.divide128("71931221465.43867996282803628130350", "3838685934206426257090718.402248853", "1.873850132527423413607199513324021E-14", .toNearestOrEven, .isInexact)
+ /* dqdiv2034 */ self.divide128("488.4282502289651653783596246312885", "-80.68940956806634280078706577953188", "-6.053189047280693318844801899473272", .toNearestOrEven, .isInexact)
+ /* dqdiv2035 */ self.divide128("9.001764344963921754981762913247394E-162", "-8.585540973667205753734967645386919E-729", "-1.048479574271827326396012573232934E+567", .toNearestOrEven, .isInexact)
+ /* dqdiv2036 */ self.divide128("-7.404133959409894743706402857145471E-828", "-51.38159929460289711134684843086265", "1.441008855516029461032061785219773E-829", .toNearestOrEven, .isInexact)
+ /* dqdiv2037 */ self.divide128("2.967520235574419794048994436040717E-613", "-6252513855.91394894949879262731889", "-4.746123405656409127572998751885338E-623", .toNearestOrEven, .isInexact)
+ /* dqdiv2038 */ self.divide128("-18826852654824040505.83920366765051", "-6336924877942437992590557460147340", "2.970976146546494669807886278519194E-15", .toNearestOrEven, .isInexact)
+ /* dqdiv2039 */ self.divide128("-8.101406784809197604949584001735949E+561", "4.823300306948942821076681658771635E+361", "-1.679639721610839204738445747238987E+200", .toNearestOrEven, .isInexact)
+ /* dqdiv2040 */ self.divide128("-6.11981977773094052331062585191723E+295", "1.507610253755339328302779005586534E+238", "-4.059285058911577244044418416044763E+57", .toNearestOrEven, .isInexact)
+ /* dqdiv2041 */ self.divide128("6.472638850046815880599220534274055E-596", "-4.475233712083047516933911786159972", "-1.446324207062261745520496475778879E-596", .toNearestOrEven, .isInexact)
+ /* dqdiv2042 */ self.divide128("-84438593330.71277839631144509397112", "-586684596204401664208947.4054879633", "1.439250218550041228759983937772504E-13", .toNearestOrEven, .isInexact)
+ /* dqdiv2043 */ self.divide128("9.354533233294022616695815656704369E-24", "405.500390626135304252144163591746", "2.306911028827774549740571229736198E-26", .toNearestOrEven, .isInexact)
+ /* dqdiv2044 */ self.divide128("985606423350210.7374876650149957881", "-36811563697.41925681866694859828794", "-26774.36990864119445335813354717711", .toNearestOrEven, .isInexact)
+ /* dqdiv2045 */ self.divide128("-8.187280774177715706278002247766311E-123", "-38784124393.91212870828430001300068", "2.110987653356139147357240727794365E-133", .toNearestOrEven, .isInexact)
+ /* dqdiv2046 */ self.divide128("-4.612203126350070903459245798371657E+912", "7.971562182727956290901984736800519E+64", "-5.785820922708683237098826662769748E+847", .toNearestOrEven, .isInexact)
+ /* dqdiv2047 */ self.divide128("4.661015909421485298247928967977089E+888", "-6.360911253323922338737311563845581E+388", "-7.327591478321365980156654539638836E+499", .toNearestOrEven, .isInexact)
+ /* dqdiv2048 */ self.divide128("9156078172903.257500003260710833030", "7.189796653262147139071634237964074E-90", "1.273482215766000994365201545096026E+102", .toNearestOrEven, .isInexact)
+ /* dqdiv2049 */ self.divide128("-1.710722303327476586373477781276586E-311", "-3167561628260156837329323.729380695", "5.400754599578613984875752958645655E-336", .toNearestOrEven, .isInexact)
+ /* dqdiv2050 */ self.divide128("-4.647935210881806238321616345413021E-878", "209388.5431867744648177308460639582", "-2.219765771394593733140494297388140E-883", .toNearestOrEven, .isInexact)
+ /* dqdiv2051 */ self.divide128("5958.694728395760992719084781582700", "4.541510156564315632536353171846096E-746", "1.312051393253638664947852693005480E+749", .toNearestOrEven, .isInexact)
+ /* dqdiv2052 */ self.divide128("-7.935732544649702175256699886872093E-489", "-7.433329073664793138998765647467971E+360", "1.067587949626076917672271619664656E-849", .toNearestOrEven, .isInexact)
+ /* dqdiv2053 */ self.divide128("-2746650864601157.863589959939901350", "7.016684945507647528907184694359598E+548", "-3.914456593009309529351254950429932E-534", .toNearestOrEven, .isInexact)
+ /* dqdiv2054 */ self.divide128("3605149408631197365447953.994569178", "-75614025825649082.78264864428237833", "-47678315.88472693507060063188020532", .toNearestOrEven, .isInexact)
+ /* dqdiv2055 */ self.divide128("788194320921798404906375214.196349", "-6.222718148433247384932573401976337E-418", "-1.266639918634671803982222244977287E+444", .toNearestOrEven, .isInexact)
+ /* dqdiv2056 */ self.divide128("5620722730534752.758208943447603211", "6.843552841168538319123000917657759E-139", "8.213164800485434666629970443739554E+153", .toNearestOrEven, .isInexact)
+ /* dqdiv2057 */ self.divide128("7304534676713703938102.403949019402", "-576169.3685010935108153023803590835", "-12677756014201995.31969237144394772", .toNearestOrEven, .isInexact)
+ /* dqdiv2058 */ self.divide128("8067918762.134621639254916786945547", "-8.774771480055536009105596163864758E+954", "-9.194448858836332156766764605125245E-946", .toNearestOrEven, .isInexact)
+ /* dqdiv2059 */ self.divide128("8.702093454123046507578256899537563E-324", "-5.875399733016018404580201176576293E-401", "-1.481106622452052581470443526957335E+77", .toNearestOrEven, .isInexact)
+ /* dqdiv2060 */ self.divide128("-41426.01662518451861386352415092356", "90.00146621684478300510769802013464", "-460.2815750287318692732067709176200", .toNearestOrEven, .isInexact)
+ /* dqdiv220 */ self.divide128("391", "597", "0.6549413735343383584589614740368509", .toNearestOrEven, .isInexact)
+ /* dqdiv221 */ self.divide128("391", "-597", "-0.6549413735343383584589614740368509", .toNearestOrEven, .isInexact)
+ /* dqdiv222 */ self.divide128("-391", "597", "-0.6549413735343383584589614740368509", .toNearestOrEven, .isInexact)
+ /* dqdiv223 */ self.divide128("-391", "-597", "0.6549413735343383584589614740368509", .toNearestOrEven, .isInexact)
+ /* dqdiv270 */ self.divide128("1", "1e6144", "1E-6144", .toNearestOrEven)
+ /* dqdiv271 */ self.divide128("1", "0.9e6144", "1.11111111111111111111111111111111E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv272 */ self.divide128("1", "0.99e6144", "1.01010101010101010101010101010101E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv273 */ self.divide128("1", "0.9999999999999999e6144", "1.00000000000000010000000000000001E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv274 */ self.divide128("9e6144", "1", "9.000000000000000000000000000000000E+6144", .toNearestOrEven)
+ /* dqdiv275 */ self.divide128("9.9e6144", "1", "9.900000000000000000000000000000000E+6144", .toNearestOrEven)
+ /* dqdiv276 */ self.divide128("9.99e6144", "1", "9.990000000000000000000000000000000E+6144", .toNearestOrEven)
+ /* dqdiv277 */ self.divide128("9.999999999999999e6144", "1", "9.999999999999999000000000000000000E+6144", .toNearestOrEven)
+ /* dqdiv278 */ self.divide128("1", "0.9999999999999999999999999999999999e6144", "1.00000000000000000000000000000000E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqdiv279 */ self.divide128("9.999999999999999999999999999999999e6144", "1", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqdiv301 */ self.divide128("0", "7", "0", .toNearestOrEven)
+ /* dqdiv302 */ self.divide128("0", "7E-5", "0E+5", .toNearestOrEven)
+ /* dqdiv303 */ self.divide128("0", "7E-1", "0E+1", .toNearestOrEven)
+ /* dqdiv304 */ self.divide128("0", "7E+1", "0.0", .toNearestOrEven)
+ /* dqdiv305 */ self.divide128("0", "7E+5", "0.00000", .toNearestOrEven)
+ /* dqdiv306 */ self.divide128("0", "7E+6", "0.000000", .toNearestOrEven)
+ /* dqdiv307 */ self.divide128("0", "7E+7", "0E-7", .toNearestOrEven)
+ /* dqdiv308 */ self.divide128("0", "70E-5", "0E+5", .toNearestOrEven)
+ /* dqdiv309 */ self.divide128("0", "70E-1", "0E+1", .toNearestOrEven)
+ /* dqdiv310 */ self.divide128("0", "70E+0", "0", .toNearestOrEven)
+ /* dqdiv311 */ self.divide128("0", "70E+1", "0.0", .toNearestOrEven)
+ /* dqdiv312 */ self.divide128("0", "70E+5", "0.00000", .toNearestOrEven)
+ /* dqdiv313 */ self.divide128("0", "70E+6", "0.000000", .toNearestOrEven)
+ /* dqdiv314 */ self.divide128("0", "70E+7", "0E-7", .toNearestOrEven)
+ /* dqdiv315 */ self.divide128("0", "700E-5", "0E+5", .toNearestOrEven)
+ /* dqdiv316 */ self.divide128("0", "700E-1", "0E+1", .toNearestOrEven)
+ /* dqdiv317 */ self.divide128("0", "700E+0", "0", .toNearestOrEven)
+ /* dqdiv318 */ self.divide128("0", "700E+1", "0.0", .toNearestOrEven)
+ /* dqdiv319 */ self.divide128("0", "700E+5", "0.00000", .toNearestOrEven)
+ /* dqdiv320 */ self.divide128("0", "700E+6", "0.000000", .toNearestOrEven)
+ /* dqdiv321 */ self.divide128("0", "700E+7", "0E-7", .toNearestOrEven)
+ /* dqdiv322 */ self.divide128("0", "700E+77", "0E-77", .toNearestOrEven)
+ /* dqdiv331 */ self.divide128("0E-3", "7E-5", "0E+2", .toNearestOrEven)
+ /* dqdiv332 */ self.divide128("0E-3", "7E-1", "0.00", .toNearestOrEven)
+ /* dqdiv333 */ self.divide128("0E-3", "7E+1", "0.0000", .toNearestOrEven)
+ /* dqdiv334 */ self.divide128("0E-3", "7E+5", "0E-8", .toNearestOrEven)
+ /* dqdiv335 */ self.divide128("0E-1", "7E-5", "0E+4", .toNearestOrEven)
+ /* dqdiv336 */ self.divide128("0E-1", "7E-1", "0", .toNearestOrEven)
+ /* dqdiv337 */ self.divide128("0E-1", "7E+1", "0.00", .toNearestOrEven)
+ /* dqdiv338 */ self.divide128("0E-1", "7E+5", "0.000000", .toNearestOrEven)
+ /* dqdiv339 */ self.divide128("0E+1", "7E-5", "0E+6", .toNearestOrEven)
+ /* dqdiv340 */ self.divide128("0E+1", "7E-1", "0E+2", .toNearestOrEven)
+ /* dqdiv341 */ self.divide128("0E+1", "7E+1", "0", .toNearestOrEven)
+ /* dqdiv342 */ self.divide128("0E+1", "7E+5", "0.0000", .toNearestOrEven)
+ /* dqdiv343 */ self.divide128("0E+3", "7E-5", "0E+8", .toNearestOrEven)
+ /* dqdiv344 */ self.divide128("0E+3", "7E-1", "0E+4", .toNearestOrEven)
+ /* dqdiv345 */ self.divide128("0E+3", "7E+1", "0E+2", .toNearestOrEven)
+ /* dqdiv346 */ self.divide128("0E+3", "7E+5", "0.00", .toNearestOrEven)
+ /* dqdiv4001 */ self.divide128("2003100352770753969878925664524900", "2003100352770753969878925664497824", "1.000000000000000000000000000013517", .toNearestOrEven, .isInexact)
+ /* dqdiv4002 */ self.divide128("4817785793916490652579552318371645", "4817785793916490652579552318362097", "1.000000000000000000000000000001982", .toNearestOrEven, .isInexact)
+ /* dqdiv4003 */ self.divide128("8299187410920067325648068439560282", "8299187410920067325648068439591159", "0.9999999999999999999999999999962795", .toNearestOrEven, .isInexact)
+ /* dqdiv4004 */ self.divide128("5641088455897407044544461785365899", "5641088455897407044544461785389965", "0.9999999999999999999999999999957338", .toNearestOrEven, .isInexact)
+ /* dqdiv4005 */ self.divide128("5752274694706545359326361313490424", "5752274694706545359326361313502723", "0.9999999999999999999999999999978619", .toNearestOrEven, .isInexact)
+ /* dqdiv4006 */ self.divide128("6762079477373670594829319346099665", "6762079477373670594829319346132579", "0.9999999999999999999999999999951326", .toNearestOrEven, .isInexact)
+ /* dqdiv4007 */ self.divide128("7286425153691890341633023222602916", "7286425153691890341633023222606556", "0.9999999999999999999999999999995004", .toNearestOrEven, .isInexact)
+ /* dqdiv4008 */ self.divide128("9481233991901305727648306421946655", "9481233991901305727648306421919124", "1.000000000000000000000000000002904", .toNearestOrEven, .isInexact)
+ /* dqdiv4009 */ self.divide128("4282053941893951742029444065614311", "4282053941893951742029444065583077", "1.000000000000000000000000000007294", .toNearestOrEven, .isInexact)
+ /* dqdiv4010 */ self.divide128("626888225441250639741781850338695", "626888225441250639741781850327299", "1.000000000000000000000000000018179", .toNearestOrEven, .isInexact)
+ /* dqdiv4011 */ self.divide128("3860973649222028009456598604468547", "3860973649222028009456598604476849", "0.9999999999999999999999999999978498", .toNearestOrEven, .isInexact)
+ /* dqdiv4012 */ self.divide128("4753157080127468127908060607821839", "4753157080127468127908060607788379", "1.000000000000000000000000000007040", .toNearestOrEven, .isInexact)
+ /* dqdiv4013 */ self.divide128("552448546203754062805706277880419", "552448546203754062805706277881903", "0.9999999999999999999999999999973138", .toNearestOrEven, .isInexact)
+ /* dqdiv4014 */ self.divide128("8405954527952158455323713728917395", "8405954527952158455323713728933866", "0.9999999999999999999999999999980406", .toNearestOrEven, .isInexact)
+ /* dqdiv4015 */ self.divide128("7554096502235321142555802238016116", "7554096502235321142555802238026546", "0.9999999999999999999999999999986193", .toNearestOrEven, .isInexact)
+ /* dqdiv4016 */ self.divide128("4053257674127518606871054934746782", "4053257674127518606871054934767355", "0.9999999999999999999999999999949243", .toNearestOrEven, .isInexact)
+ /* dqdiv4017 */ self.divide128("7112419420755090454716888844011582", "7112419420755090454716888844038105", "0.9999999999999999999999999999962709", .toNearestOrEven, .isInexact)
+ /* dqdiv4018 */ self.divide128("3132302137520072728164549730911846", "3132302137520072728164549730908416", "1.000000000000000000000000000001095", .toNearestOrEven, .isInexact)
+ /* dqdiv4019 */ self.divide128("4788374045841416355706715048161013", "4788374045841416355706715048190077", "0.9999999999999999999999999999939303", .toNearestOrEven, .isInexact)
+ /* dqdiv4020 */ self.divide128("9466021636047630218238075099510597", "9466021636047630218238075099484053", "1.000000000000000000000000000002804", .toNearestOrEven, .isInexact)
+ /* dqdiv4021 */ self.divide128("912742745646765625597399692138650", "912742745646765625597399692139042", "0.9999999999999999999999999999995705", .toNearestOrEven, .isInexact)
+ /* dqdiv4022 */ self.divide128("9508402742933643208806264897188504", "9508402742933643208806264897195973", "0.9999999999999999999999999999992145", .toNearestOrEven, .isInexact)
+ /* dqdiv4023 */ self.divide128("1186956795727233704962361914360895", "1186956795727233704962361914329577", "1.000000000000000000000000000026385", .toNearestOrEven, .isInexact)
+ /* dqdiv4024 */ self.divide128("5972210268839014812696916170967938", "5972210268839014812696916170954974", "1.000000000000000000000000000002171", .toNearestOrEven, .isInexact)
+ /* dqdiv4025 */ self.divide128("2303801625521619930894460139793140", "2303801625521619930894460139799643", "0.9999999999999999999999999999971773", .toNearestOrEven, .isInexact)
+ /* dqdiv4026 */ self.divide128("6022231560002898264777393473966595", "6022231560002898264777393473947198", "1.000000000000000000000000000003221", .toNearestOrEven, .isInexact)
+ /* dqdiv4027 */ self.divide128("8426148335801396199969346032210893", "8426148335801396199969346032203179", "1.000000000000000000000000000000915", .toNearestOrEven, .isInexact)
+ /* dqdiv4028 */ self.divide128("8812278947028784637382847098411749", "8812278947028784637382847098385317", "1.000000000000000000000000000002999", .toNearestOrEven, .isInexact)
+ /* dqdiv4029 */ self.divide128("8145282002348367383264197170116146", "8145282002348367383264197170083988", "1.000000000000000000000000000003948", .toNearestOrEven, .isInexact)
+ /* dqdiv4030 */ self.divide128("6821577571876840153123510107387026", "6821577571876840153123510107418008", "0.9999999999999999999999999999954582", .toNearestOrEven, .isInexact)
+ /* dqdiv4031 */ self.divide128("9018555319518966970480565482023720", "9018555319518966970480565482013346", "1.000000000000000000000000000001150", .toNearestOrEven, .isInexact)
+ /* dqdiv4032 */ self.divide128("4602155712998228449640717252788864", "4602155712998228449640717252818502", "0.9999999999999999999999999999935600", .toNearestOrEven, .isInexact)
+ /* dqdiv4033 */ self.divide128("6675607481522785614506828292264472", "6675607481522785614506828292277100", "0.9999999999999999999999999999981083", .toNearestOrEven, .isInexact)
+ /* dqdiv4034 */ self.divide128("4015881516871833897766945836264472", "4015881516871833897766945836262645", "1.000000000000000000000000000000455", .toNearestOrEven, .isInexact)
+ /* dqdiv4035 */ self.divide128("1415580205933411837595459716910365", "1415580205933411837595459716880139", "1.000000000000000000000000000021352", .toNearestOrEven, .isInexact)
+ /* dqdiv4036 */ self.divide128("9432968297069542816752035276361552", "9432968297069542816752035276353054", "1.000000000000000000000000000000901", .toNearestOrEven, .isInexact)
+ /* dqdiv4037 */ self.divide128("4799319591303848500532766682140658", "4799319591303848500532766682172655", "0.9999999999999999999999999999933330", .toNearestOrEven, .isInexact)
+ /* dqdiv4038 */ self.divide128("316854270732839529790584284987472", "316854270732839529790584285004832", "0.9999999999999999999999999999452114", .toNearestOrEven, .isInexact)
+ /* dqdiv4039 */ self.divide128("3598981300592490427826027975697415", "3598981300592490427826027975686712", "1.000000000000000000000000000002974", .toNearestOrEven, .isInexact)
+ /* dqdiv4040 */ self.divide128("1664315435694461371155800682196520", "1664315435694461371155800682195617", "1.000000000000000000000000000000543", .toNearestOrEven, .isInexact)
+ /* dqdiv4041 */ self.divide128("1680872316531128890102855316510581", "1680872316531128890102855316495545", "1.000000000000000000000000000008945", .toNearestOrEven, .isInexact)
+ /* dqdiv4042 */ self.divide128("9881274879566405475755499281644730", "9881274879566405475755499281615743", "1.000000000000000000000000000002934", .toNearestOrEven, .isInexact)
+ /* dqdiv4043 */ self.divide128("4737225957717466960447204232279216", "4737225957717466960447204232277452", "1.000000000000000000000000000000372", .toNearestOrEven, .isInexact)
+ /* dqdiv4044 */ self.divide128("2482097379414867061213319346418288", "2482097379414867061213319346387936", "1.000000000000000000000000000012228", .toNearestOrEven, .isInexact)
+ /* dqdiv4045 */ self.divide128("7406977595233762723576434122161868", "7406977595233762723576434122189042", "0.9999999999999999999999999999963313", .toNearestOrEven, .isInexact)
+ /* dqdiv4046 */ self.divide128("228782057757566047086593281773577", "228782057757566047086593281769727", "1.000000000000000000000000000016828", .toNearestOrEven, .isInexact)
+ /* dqdiv4047 */ self.divide128("2956594270240579648823270540367653", "2956594270240579648823270540368556", "0.9999999999999999999999999999996946", .toNearestOrEven, .isInexact)
+ /* dqdiv4048 */ self.divide128("6326964098897620620534136767634340", "6326964098897620620534136767619339", "1.000000000000000000000000000002371", .toNearestOrEven, .isInexact)
+ /* dqdiv4049 */ self.divide128("414586440456590215247002678327800", "414586440456590215247002678316922", "1.000000000000000000000000000026238", .toNearestOrEven, .isInexact)
+ /* dqdiv4050 */ self.divide128("7364552208570039386220505636779125", "7364552208570039386220505636803548", "0.9999999999999999999999999999966837", .toNearestOrEven, .isInexact)
+ /* dqdiv4051 */ self.divide128("5626266749902369710022824950590056", "5626266749902369710022824950591008", "0.9999999999999999999999999999998308", .toNearestOrEven, .isInexact)
+ /* dqdiv4052 */ self.divide128("4863278293916197454987481343460484", "4863278293916197454987481343442522", "1.000000000000000000000000000003693", .toNearestOrEven, .isInexact)
+ /* dqdiv4053 */ self.divide128("1170713582030637359713249796835483", "1170713582030637359713249796823345", "1.000000000000000000000000000010368", .toNearestOrEven, .isInexact)
+ /* dqdiv4054 */ self.divide128("9838062494725965667776326556052931", "9838062494725965667776326556061002", "0.9999999999999999999999999999991796", .toNearestOrEven, .isInexact)
+ /* dqdiv4055 */ self.divide128("4071388731298861093005687091498922", "4071388731298861093005687091498278", "1.000000000000000000000000000000158", .toNearestOrEven, .isInexact)
+ /* dqdiv4056 */ self.divide128("8753155722324706795855038590272526", "8753155722324706795855038590276656", "0.9999999999999999999999999999995282", .toNearestOrEven, .isInexact)
+ /* dqdiv4057 */ self.divide128("4399941911533273418844742658240485", "4399941911533273418844742658219891", "1.000000000000000000000000000004681", .toNearestOrEven, .isInexact)
+ /* dqdiv4058 */ self.divide128("4127884159949503677776430620050269", "4127884159949503677776430620026091", "1.000000000000000000000000000005857", .toNearestOrEven, .isInexact)
+ /* dqdiv4059 */ self.divide128("5536160822360800067042528317438808", "5536160822360800067042528317450687", "0.9999999999999999999999999999978543", .toNearestOrEven, .isInexact)
+ /* dqdiv4060 */ self.divide128("3973234998468664936671088237710246", "3973234998468664936671088237741886", "0.9999999999999999999999999999920367", .toNearestOrEven, .isInexact)
+ /* dqdiv4061 */ self.divide128("9824855935638263593410444142327358", "9824855935638263593410444142328576", "0.9999999999999999999999999999998760", .toNearestOrEven, .isInexact)
+ /* dqdiv4062 */ self.divide128("5917078517340218131867327300814867", "5917078517340218131867327300788701", "1.000000000000000000000000000004422", .toNearestOrEven, .isInexact)
+ /* dqdiv4063 */ self.divide128("4354236601830544882286139612521362", "4354236601830544882286139612543223", "0.9999999999999999999999999999949794", .toNearestOrEven, .isInexact)
+ /* dqdiv4064 */ self.divide128("8058474772375259017342110013891294", "8058474772375259017342110013906792", "0.9999999999999999999999999999980768", .toNearestOrEven, .isInexact)
+ /* dqdiv4065 */ self.divide128("5519604020981748170517093746166328", "5519604020981748170517093746181763", "0.9999999999999999999999999999972036", .toNearestOrEven, .isInexact)
+ /* dqdiv4066 */ self.divide128("1502130966879805458831323782443139", "1502130966879805458831323782412213", "1.000000000000000000000000000020588", .toNearestOrEven, .isInexact)
+ /* dqdiv4067 */ self.divide128("562795633719481212915159787980270", "562795633719481212915159788007066", "0.9999999999999999999999999999523877", .toNearestOrEven, .isInexact)
+ /* dqdiv4068 */ self.divide128("6584743324494664273941281557268878", "6584743324494664273941281557258945", "1.000000000000000000000000000001508", .toNearestOrEven, .isInexact)
+ /* dqdiv4069 */ self.divide128("3632000327285743997976431109416500", "3632000327285743997976431109408107", "1.000000000000000000000000000002311", .toNearestOrEven, .isInexact)
+ /* dqdiv4070 */ self.divide128("1145827237315430089388953838561450", "1145827237315430089388953838527332", "1.000000000000000000000000000029776", .toNearestOrEven, .isInexact)
+ /* dqdiv4071 */ self.divide128("8874431010357691869725372317350380", "8874431010357691869725372317316472", "1.000000000000000000000000000003821", .toNearestOrEven, .isInexact)
+ /* dqdiv4072 */ self.divide128("992948718902804648119753141202196", "992948718902804648119753141235222", "0.9999999999999999999999999999667395", .toNearestOrEven, .isInexact)
+ /* dqdiv4073 */ self.divide128("2522735183374218505142417265439989", "2522735183374218505142417265453779", "0.9999999999999999999999999999945337", .toNearestOrEven, .isInexact)
+ /* dqdiv4074 */ self.divide128("2668419161912936508006872303501052", "2668419161912936508006872303471036", "1.000000000000000000000000000011249", .toNearestOrEven, .isInexact)
+ /* dqdiv4075 */ self.divide128("3036169085665186712590941111775092", "3036169085665186712590941111808846", "0.9999999999999999999999999999888827", .toNearestOrEven, .isInexact)
+ /* dqdiv4076 */ self.divide128("9441634604917231638508898934006147", "9441634604917231638508898934000288", "1.000000000000000000000000000000621", .toNearestOrEven, .isInexact)
+ /* dqdiv4077 */ self.divide128("2677301353164377091111458811839190", "2677301353164377091111458811867722", "0.9999999999999999999999999999893430", .toNearestOrEven, .isInexact)
+ /* dqdiv4078 */ self.divide128("6844979203112066166583765857171426", "6844979203112066166583765857189682", "0.9999999999999999999999999999973329", .toNearestOrEven, .isInexact)
+ /* dqdiv4079 */ self.divide128("2220337435141796724323783960231661", "2220337435141796724323783960208778", "1.000000000000000000000000000010306", .toNearestOrEven, .isInexact)
+ /* dqdiv4080 */ self.divide128("6447424700019783931569996989561380", "6447424700019783931569996989572454", "0.9999999999999999999999999999982824", .toNearestOrEven, .isInexact)
+ /* dqdiv4081 */ self.divide128("7512856762696607119847092195587180", "7512856762696607119847092195557346", "1.000000000000000000000000000003971", .toNearestOrEven, .isInexact)
+ /* dqdiv4082 */ self.divide128("7395261981193960399087819077237482", "7395261981193960399087819077242487", "0.9999999999999999999999999999993232", .toNearestOrEven, .isInexact)
+ /* dqdiv4083 */ self.divide128("2253442467682584035792724884376735", "2253442467682584035792724884407178", "0.9999999999999999999999999999864904", .toNearestOrEven, .isInexact)
+ /* dqdiv4084 */ self.divide128("8153138680300213135577336466190997", "8153138680300213135577336466220607", "0.9999999999999999999999999999963683", .toNearestOrEven, .isInexact)
+ /* dqdiv4085 */ self.divide128("4668731252254148074041022681801390", "4668731252254148074041022681778101", "1.000000000000000000000000000004988", .toNearestOrEven, .isInexact)
+ /* dqdiv4086 */ self.divide128("6078404557993669696040425501815056", "6078404557993669696040425501797612", "1.000000000000000000000000000002870", .toNearestOrEven, .isInexact)
+ /* dqdiv4087 */ self.divide128("2306352359874261623223356878316278", "2306352359874261623223356878335612", "0.9999999999999999999999999999916171", .toNearestOrEven, .isInexact)
+ /* dqdiv4088 */ self.divide128("3264842186668480362900909564091908", "3264842186668480362900909564058658", "1.000000000000000000000000000010184", .toNearestOrEven, .isInexact)
+ /* dqdiv4089 */ self.divide128("6971985047279636878957959608612204", "6971985047279636878957959608615088", "0.9999999999999999999999999999995863", .toNearestOrEven, .isInexact)
+ /* dqdiv4090 */ self.divide128("5262810889952721235466445973816257", "5262810889952721235466445973783077", "1.000000000000000000000000000006305", .toNearestOrEven, .isInexact)
+ /* dqdiv4091 */ self.divide128("7947944731035267178548357070080288", "7947944731035267178548357070061339", "1.000000000000000000000000000002384", .toNearestOrEven, .isInexact)
+ /* dqdiv4092 */ self.divide128("5071808908395375108383035800443229", "5071808908395375108383035800412429", "1.000000000000000000000000000006073", .toNearestOrEven, .isInexact)
+ /* dqdiv4093 */ self.divide128("2043146542084503655511507209262969", "2043146542084503655511507209249263", "1.000000000000000000000000000006708", .toNearestOrEven, .isInexact)
+ /* dqdiv4094 */ self.divide128("4097632735384534181661959731264802", "4097632735384534181661959731234499", "1.000000000000000000000000000007395", .toNearestOrEven, .isInexact)
+ /* dqdiv4095 */ self.divide128("3061477642831387489729464587044430", "3061477642831387489729464587059452", "0.9999999999999999999999999999950932", .toNearestOrEven, .isInexact)
+ /* dqdiv4096 */ self.divide128("3429854941039776159498802936252638", "3429854941039776159498802936246415", "1.000000000000000000000000000001814", .toNearestOrEven, .isInexact)
+ /* dqdiv4097 */ self.divide128("4874324979578599700024133278284545", "4874324979578599700024133278262131", "1.000000000000000000000000000004598", .toNearestOrEven, .isInexact)
+ /* dqdiv4098 */ self.divide128("5701652369691833541455978515820882", "5701652369691833541455978515834854", "0.9999999999999999999999999999975495", .toNearestOrEven, .isInexact)
+ /* dqdiv4099 */ self.divide128("2928205728402945266953255632343113", "2928205728402945266953255632373794", "0.9999999999999999999999999999895223", .toNearestOrEven, .isInexact)
+ /* dqdiv441 */ self.divide128("12345678000", "1", "12345678000", .toNearestOrEven)
+ /* dqdiv442 */ self.divide128("1", "12345678000", "8.100000664200054464404466081166219E-11", .toNearestOrEven, .isInexact)
+ /* dqdiv443 */ self.divide128("1234567800", "1", "1234567800", .toNearestOrEven)
+ /* dqdiv444 */ self.divide128("1", "1234567800", "8.100000664200054464404466081166219E-10", .toNearestOrEven, .isInexact)
+ /* dqdiv445 */ self.divide128("1234567890", "1", "1234567890", .toNearestOrEven)
+ /* dqdiv446 */ self.divide128("1", "1234567890", "8.100000073710000670761006103925156E-10", .toNearestOrEven, .isInexact)
+ /* dqdiv447 */ self.divide128("1234567891", "1", "1234567891", .toNearestOrEven)
+ /* dqdiv448 */ self.divide128("1", "1234567891", "8.100000067149000556665214614754629E-10", .toNearestOrEven, .isInexact)
+ /* dqdiv449 */ self.divide128("12345678901", "1", "12345678901", .toNearestOrEven)
+ /* dqdiv450 */ self.divide128("1", "12345678901", "8.100000073053900658873130042376760E-11", .toNearestOrEven, .isInexact)
+ /* dqdiv451 */ self.divide128("1234567896", "1", "1234567896", .toNearestOrEven)
+ /* dqdiv452 */ self.divide128("1", "1234567896", "8.100000034344000145618560617422697E-10", .toNearestOrEven, .isInexact)
+ /* dqdiv453 */ self.divide128("1e+1", "1", "1E+1", .toNearestOrEven)
+ /* dqdiv454 */ self.divide128("1e+1", "1.0", "1E+1", .toNearestOrEven)
+ /* dqdiv455 */ self.divide128("1e+1", "1.00", "1E+1", .toNearestOrEven)
+ /* dqdiv456 */ self.divide128("1e+2", "2", "5E+1", .toNearestOrEven)
+ /* dqdiv457 */ self.divide128("1e+2", "2.0", "5E+1", .toNearestOrEven)
+ /* dqdiv458 */ self.divide128("1e+2", "2.00", "5E+1", .toNearestOrEven)
+ /* dqdiv460 */ self.divide128("3e0", "2e0", "1.5", .toNearestOrEven)
+ /* dqdiv461 */ self.divide128("30e-1", "2e0", "1.5", .toNearestOrEven)
+ /* dqdiv462 */ self.divide128("300e-2", "2e0", "1.50", .toNearestOrEven)
+ /* dqdiv464 */ self.divide128("3000e-3", "2e0", "1.500", .toNearestOrEven)
+ /* dqdiv465 */ self.divide128("3e0", "20e-1", "1.5", .toNearestOrEven)
+ /* dqdiv466 */ self.divide128("30e-1", "20e-1", "1.5", .toNearestOrEven)
+ /* dqdiv467 */ self.divide128("300e-2", "20e-1", "1.5", .toNearestOrEven)
+ /* dqdiv468 */ self.divide128("3000e-3", "20e-1", "1.50", .toNearestOrEven)
+ /* dqdiv469 */ self.divide128("3e0", "200e-2", "1.5", .toNearestOrEven)
+ /* dqdiv470 */ self.divide128("30e-1", "200e-2", "1.5", .toNearestOrEven)
+ /* dqdiv471 */ self.divide128("300e-2", "200e-2", "1.5", .toNearestOrEven)
+ /* dqdiv472 */ self.divide128("3000e-3", "200e-2", "1.5", .toNearestOrEven)
+ /* dqdiv473 */ self.divide128("3e0", "2000e-3", "1.5", .toNearestOrEven)
+ /* dqdiv474 */ self.divide128("30e-1", "2000e-3", "1.5", .toNearestOrEven)
+ /* dqdiv475 */ self.divide128("300e-2", "2000e-3", "1.5", .toNearestOrEven)
+ /* dqdiv476 */ self.divide128("3000e-3", "2000e-3", "1.5", .toNearestOrEven)
+ /* dqdiv480 */ self.divide128("1", "1.0E+33", "1E-33", .toNearestOrEven)
+ /* dqdiv481 */ self.divide128("1", "10E+33", "1E-34", .toNearestOrEven)
+ /* dqdiv482 */ self.divide128("1", "1.0E-33", "1E+33", .toNearestOrEven)
+ /* dqdiv483 */ self.divide128("1", "10E-33", "1E+32", .toNearestOrEven)
+ /* dqdiv484 */ self.divide128("0e5", "1e3", "0E+2", .toNearestOrEven)
+ /* dqdiv485 */ self.divide128("0e5", "2e3", "0E+2", .toNearestOrEven)
+ /* dqdiv486 */ self.divide128("0e5", "10e2", "0E+3", .toNearestOrEven)
+ /* dqdiv487 */ self.divide128("0e5", "20e2", "0E+3", .toNearestOrEven)
+ /* dqdiv488 */ self.divide128("0e5", "100e1", "0E+4", .toNearestOrEven)
+ /* dqdiv489 */ self.divide128("0e5", "200e1", "0E+4", .toNearestOrEven)
+ /* dqdiv491 */ self.divide128("1e5", "1e3", "1E+2", .toNearestOrEven)
+ /* dqdiv492 */ self.divide128("1e5", "2e3", "5E+1", .toNearestOrEven)
+ /* dqdiv493 */ self.divide128("1e5", "10e2", "1E+2", .toNearestOrEven)
+ /* dqdiv494 */ self.divide128("1e5", "20e2", "5E+1", .toNearestOrEven)
+ /* dqdiv495 */ self.divide128("1e5", "100e1", "1E+2", .toNearestOrEven)
+ /* dqdiv496 */ self.divide128("1e5", "200e1", "5E+1", .toNearestOrEven)
+ /* dqdiv497 */ self.divide128("0E+6108", "1000E-33", "0E+6111", .toNearestOrAwayFromZero)
+ /* dqdiv498 */ self.divide128("0E-6170", "1000E+33", "0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv500 */ self.divide128("1", "9.9", "0.1010101010101010101010101010101010", .toNearestOrAwayFromZero, .isInexact)
+ /* dqdiv501 */ self.divide128("1", "9.09", "0.1100110011001100110011001100110011", .toNearestOrAwayFromZero, .isInexact)
+ /* dqdiv502 */ self.divide128("1", "9.009", "0.1110001110001110001110001110001110", .toNearestOrAwayFromZero, .isInexact)
+ /* dqdiv511 */ self.divide128("1", "2", "0.5", .toNearestOrAwayFromZero)
+ /* dqdiv512 */ self.divide128("1.0", "2", "0.5", .toNearestOrAwayFromZero)
+ /* dqdiv513 */ self.divide128("1.00", "2", "0.50", .toNearestOrAwayFromZero)
+ /* dqdiv514 */ self.divide128("1.000", "2", "0.500", .toNearestOrAwayFromZero)
+ /* dqdiv515 */ self.divide128("1.0000", "2", "0.5000", .toNearestOrAwayFromZero)
+ /* dqdiv516 */ self.divide128("1.00000", "2", "0.50000", .toNearestOrAwayFromZero)
+ /* dqdiv517 */ self.divide128("1.000000", "2", "0.500000", .toNearestOrAwayFromZero)
+ /* dqdiv518 */ self.divide128("1.0000000", "2", "0.5000000", .toNearestOrAwayFromZero)
+ /* dqdiv519 */ self.divide128("1.00", "2.00", "0.5", .toNearestOrAwayFromZero)
+ /* dqdiv521 */ self.divide128("2", "1", "2", .toNearestOrAwayFromZero)
+ /* dqdiv522 */ self.divide128("2", "1.0", "2", .toNearestOrAwayFromZero)
+ /* dqdiv523 */ self.divide128("2", "1.00", "2", .toNearestOrAwayFromZero)
+ /* dqdiv524 */ self.divide128("2", "1.000", "2", .toNearestOrAwayFromZero)
+ /* dqdiv525 */ self.divide128("2", "1.0000", "2", .toNearestOrAwayFromZero)
+ /* dqdiv526 */ self.divide128("2", "1.00000", "2", .toNearestOrAwayFromZero)
+ /* dqdiv527 */ self.divide128("2", "1.000000", "2", .toNearestOrAwayFromZero)
+ /* dqdiv528 */ self.divide128("2", "1.0000000", "2", .toNearestOrAwayFromZero)
+ /* dqdiv529 */ self.divide128("2.00", "1.00", "2", .toNearestOrAwayFromZero)
+ /* dqdiv530 */ self.divide128("2.40", "2", "1.20", .toNearestOrAwayFromZero)
+ /* dqdiv531 */ self.divide128("2.40", "4", "0.60", .toNearestOrAwayFromZero)
+ /* dqdiv532 */ self.divide128("2.40", "10", "0.24", .toNearestOrAwayFromZero)
+ /* dqdiv533 */ self.divide128("2.40", "2.0", "1.2", .toNearestOrAwayFromZero)
+ /* dqdiv534 */ self.divide128("2.40", "4.0", "0.6", .toNearestOrAwayFromZero)
+ /* dqdiv535 */ self.divide128("2.40", "10.0", "0.24", .toNearestOrAwayFromZero)
+ /* dqdiv536 */ self.divide128("2.40", "2.00", "1.2", .toNearestOrAwayFromZero)
+ /* dqdiv537 */ self.divide128("2.40", "4.00", "0.6", .toNearestOrAwayFromZero)
+ /* dqdiv538 */ self.divide128("2.40", "10.00", "0.24", .toNearestOrAwayFromZero)
+ /* dqdiv539 */ self.divide128("0.9", "0.1", "9", .toNearestOrAwayFromZero)
+ /* dqdiv540 */ self.divide128("0.9", "0.01", "9E+1", .toNearestOrAwayFromZero)
+ /* dqdiv541 */ self.divide128("0.9", "0.001", "9E+2", .toNearestOrAwayFromZero)
+ /* dqdiv542 */ self.divide128("5", "2", "2.5", .toNearestOrAwayFromZero)
+ /* dqdiv543 */ self.divide128("5", "2.0", "2.5", .toNearestOrAwayFromZero)
+ /* dqdiv544 */ self.divide128("5", "2.00", "2.5", .toNearestOrAwayFromZero)
+ /* dqdiv545 */ self.divide128("5", "20", "0.25", .toNearestOrAwayFromZero)
+ /* dqdiv546 */ self.divide128("5", "20.0", "0.25", .toNearestOrAwayFromZero)
+ /* dqdiv547 */ self.divide128("2.400", "2", "1.200", .toNearestOrAwayFromZero)
+ /* dqdiv548 */ self.divide128("2.400", "2.0", "1.20", .toNearestOrAwayFromZero)
+ /* dqdiv549 */ self.divide128("2.400", "2.400", "1", .toNearestOrAwayFromZero)
+ /* dqdiv550 */ self.divide128("240", "1", "240", .toNearestOrAwayFromZero)
+ /* dqdiv551 */ self.divide128("240", "10", "24", .toNearestOrAwayFromZero)
+ /* dqdiv552 */ self.divide128("240", "100", "2.4", .toNearestOrAwayFromZero)
+ /* dqdiv553 */ self.divide128("240", "1000", "0.24", .toNearestOrAwayFromZero)
+ /* dqdiv554 */ self.divide128("2400", "1", "2400", .toNearestOrAwayFromZero)
+ /* dqdiv555 */ self.divide128("2400", "10", "240", .toNearestOrAwayFromZero)
+ /* dqdiv556 */ self.divide128("2400", "100", "24", .toNearestOrAwayFromZero)
+ /* dqdiv557 */ self.divide128("2400", "1000", "2.4", .toNearestOrAwayFromZero)
+ /* dqdiv600 */ self.divide128("2.4E+9", "2", "1.2E+9", .toNearestOrAwayFromZero)
+ /* dqdiv601 */ self.divide128("2.40E+9", "2", "1.20E+9", .toNearestOrAwayFromZero)
+ /* dqdiv602 */ self.divide128("2.400E+9", "2", "1.200E+9", .toNearestOrAwayFromZero)
+ /* dqdiv603 */ self.divide128("2.4000E+9", "2", "1.2000E+9", .toNearestOrAwayFromZero)
+ /* dqdiv604 */ self.divide128("24E+8", "2", "1.2E+9", .toNearestOrAwayFromZero)
+ /* dqdiv605 */ self.divide128("240E+7", "2", "1.20E+9", .toNearestOrAwayFromZero)
+ /* dqdiv606 */ self.divide128("2400E+6", "2", "1.200E+9", .toNearestOrAwayFromZero)
+ /* dqdiv607 */ self.divide128("24000E+5", "2", "1.2000E+9", .toNearestOrAwayFromZero)
+ /* dqdiv731 */ self.divide128("5.00", "1E-3", "5.00E+3", .toNearestOrAwayFromZero)
+ /* dqdiv732 */ self.divide128("00.00", "0.000", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv733 */ self.divide128("00.00", "0E-3", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv734 */ self.divide128("0", "-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv735 */ self.divide128("-0", "0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv736 */ self.divide128("-0", "-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv741 */ self.divide128("0", "-1", "-0", .toNearestOrAwayFromZero)
+ /* dqdiv742 */ self.divide128("-0", "-1", "0", .toNearestOrAwayFromZero)
+ /* dqdiv743 */ self.divide128("0", "1", "0", .toNearestOrAwayFromZero)
+ /* dqdiv744 */ self.divide128("-0", "1", "-0", .toNearestOrAwayFromZero)
+ /* dqdiv745 */ self.divide128("-1", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv746 */ self.divide128("-1", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv747 */ self.divide128("1", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv748 */ self.divide128("1", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv751 */ self.divide128("0.0", "-1", "-0.0", .toNearestOrAwayFromZero)
+ /* dqdiv752 */ self.divide128("-0.0", "-1", "0.0", .toNearestOrAwayFromZero)
+ /* dqdiv753 */ self.divide128("0.0", "1", "0.0", .toNearestOrAwayFromZero)
+ /* dqdiv754 */ self.divide128("-0.0", "1", "-0.0", .toNearestOrAwayFromZero)
+ /* dqdiv755 */ self.divide128("-1.0", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv756 */ self.divide128("-1.0", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv757 */ self.divide128("1.0", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv758 */ self.divide128("1.0", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv761 */ self.divide128("0", "-1.0", "-0E+1", .toNearestOrAwayFromZero)
+ /* dqdiv762 */ self.divide128("-0", "-1.0", "0E+1", .toNearestOrAwayFromZero)
+ /* dqdiv763 */ self.divide128("0", "1.0", "0E+1", .toNearestOrAwayFromZero)
+ /* dqdiv764 */ self.divide128("-0", "1.0", "-0E+1", .toNearestOrAwayFromZero)
+ /* dqdiv765 */ self.divide128("-1", "0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv766 */ self.divide128("-1", "-0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv767 */ self.divide128("1", "0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv768 */ self.divide128("1", "-0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv771 */ self.divide128("0.0", "-1.0", "-0", .toNearestOrAwayFromZero)
+ /* dqdiv772 */ self.divide128("-0.0", "-1.0", "0", .toNearestOrAwayFromZero)
+ /* dqdiv773 */ self.divide128("0.0", "1.0", "0", .toNearestOrAwayFromZero)
+ /* dqdiv774 */ self.divide128("-0.0", "1.0", "-0", .toNearestOrAwayFromZero)
+ /* dqdiv775 */ self.divide128("-1.0", "0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv776 */ self.divide128("-1.0", "-0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv777 */ self.divide128("1.0", "0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv778 */ self.divide128("1.0", "-0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv780 */ self.divide128("Inf", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv781 */ self.divide128("Inf", "-1000", "-Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv782 */ self.divide128("Inf", "-1", "-Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv783 */ self.divide128("Inf", "-0", "-Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv784 */ self.divide128("Inf", "0", "Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv785 */ self.divide128("Inf", "1", "Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv786 */ self.divide128("Inf", "1000", "Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv787 */ self.divide128("Inf", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv788 */ self.divide128("-1000", "Inf", "-0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv789 */ self.divide128("-Inf", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv790 */ self.divide128("-1", "Inf", "-0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv791 */ self.divide128("-0", "Inf", "-0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv792 */ self.divide128("0", "Inf", "0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv793 */ self.divide128("1", "Inf", "0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv794 */ self.divide128("1000", "Inf", "0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv795 */ self.divide128("Inf", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv800 */ self.divide128("-Inf", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv801 */ self.divide128("-Inf", "-1000", "Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv802 */ self.divide128("-Inf", "-1", "Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv803 */ self.divide128("-Inf", "-0", "Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv804 */ self.divide128("-Inf", "0", "-Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv805 */ self.divide128("-Inf", "1", "-Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv806 */ self.divide128("-Inf", "1000", "-Infinity", .toNearestOrAwayFromZero)
+ /* dqdiv807 */ self.divide128("-Inf", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv808 */ self.divide128("-1000", "Inf", "-0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv809 */ self.divide128("-Inf", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv810 */ self.divide128("-1", "-Inf", "0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv811 */ self.divide128("-0", "-Inf", "0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv812 */ self.divide128("0", "-Inf", "-0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv813 */ self.divide128("1", "-Inf", "-0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv814 */ self.divide128("1000", "-Inf", "-0E-6176", .toNearestOrAwayFromZero)
+ /* dqdiv815 */ self.divide128("Inf", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv821 */ self.divide128("NaN", "-Inf", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv822 */ self.divide128("NaN", "-1000", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv823 */ self.divide128("NaN", "-1", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv824 */ self.divide128("NaN", "-0", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv825 */ self.divide128("NaN", "0", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv826 */ self.divide128("NaN", "1", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv827 */ self.divide128("NaN", "1000", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv828 */ self.divide128("NaN", "Inf", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv829 */ self.divide128("NaN", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv830 */ self.divide128("-Inf", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv831 */ self.divide128("-1000", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv832 */ self.divide128("-1", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv833 */ self.divide128("-0", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv834 */ self.divide128("0", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv835 */ self.divide128("1", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv836 */ self.divide128("1000", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv837 */ self.divide128("Inf", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqdiv841 */ self.divide128("sNaN", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv842 */ self.divide128("sNaN", "-1000", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv843 */ self.divide128("sNaN", "-1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv844 */ self.divide128("sNaN", "-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv845 */ self.divide128("sNaN", "0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv846 */ self.divide128("sNaN", "1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv847 */ self.divide128("sNaN", "1000", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv848 */ self.divide128("sNaN", "NaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv849 */ self.divide128("sNaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv850 */ self.divide128("NaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv851 */ self.divide128("-Inf", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv852 */ self.divide128("-1000", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv853 */ self.divide128("-1", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv854 */ self.divide128("-0", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv855 */ self.divide128("0", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv856 */ self.divide128("1", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv857 */ self.divide128("1000", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv858 */ self.divide128("Inf", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv859 */ self.divide128("NaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv861 */ self.divide128("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrAwayFromZero)
+ /* dqdiv862 */ self.divide128("NaN(0x8)", "1000", "NaN(0x8)", .toNearestOrAwayFromZero)
+ /* dqdiv863 */ self.divide128("NaN(0x7)", "Inf", "NaN(0x7)", .toNearestOrAwayFromZero)
+ /* dqdiv864 */ self.divide128("NaN(0x6)", "NaN(0x5)", "NaN(0x6)", .toNearestOrAwayFromZero)
+ /* dqdiv865 */ self.divide128("-Inf", "NaN(0x4)", "NaN(0x4)", .toNearestOrAwayFromZero)
+ /* dqdiv866 */ self.divide128("-1000", "NaN(0x3)", "NaN(0x3)", .toNearestOrAwayFromZero)
+ /* dqdiv867 */ self.divide128("Inf", "NaN(0x2)", "NaN(0x2)", .toNearestOrAwayFromZero)
+ /* dqdiv871 */ self.divide128("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv872 */ self.divide128("sNaN(0x62)", "-1", "NaN(0x62)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv873 */ self.divide128("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv874 */ self.divide128("sNaN(0x60)", "sNaN(0x5e)", "NaN(0x60)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv875 */ self.divide128("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv876 */ self.divide128("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv877 */ self.divide128("0", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv878 */ self.divide128("Inf", "sNaN(0x5a)", "NaN(0x5a)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv879 */ self.divide128("NaN", "sNaN(0x59)", "NaN(0x59)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv881 */ self.divide128("-NaN(0x9)", "-Inf", "-NaN(0x9)", .toNearestOrAwayFromZero)
+ /* dqdiv882 */ self.divide128("-NaN(0x8)", "1000", "-NaN(0x8)", .toNearestOrAwayFromZero)
+ /* dqdiv883 */ self.divide128("-NaN(0x7)", "Inf", "-NaN(0x7)", .toNearestOrAwayFromZero)
+ /* dqdiv884 */ self.divide128("-NaN(0x6)", "-NaN(0x5)", "-NaN(0x6)", .toNearestOrAwayFromZero)
+ /* dqdiv885 */ self.divide128("-Inf", "-NaN(0x4)", "-NaN(0x4)", .toNearestOrAwayFromZero)
+ /* dqdiv886 */ self.divide128("-1000", "-NaN(0x3)", "-NaN(0x3)", .toNearestOrAwayFromZero)
+ /* dqdiv887 */ self.divide128("Inf", "-NaN(0x2)", "-NaN(0x2)", .toNearestOrAwayFromZero)
+ /* dqdiv891 */ self.divide128("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv892 */ self.divide128("-sNaN(0x62)", "-1", "-NaN(0x62)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv893 */ self.divide128("-sNaN(0x61)", "NaN", "-NaN(0x61)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv894 */ self.divide128("-sNaN(0x60)", "-sNaN(0x5e)", "-NaN(0x60)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv895 */ self.divide128("-NaN(0x5f)", "-sNaN(0x5d)", "-NaN(0x5d)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv896 */ self.divide128("-Inf", "-sNaN(0x5c)", "-NaN(0x5c)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv897 */ self.divide128("0", "-sNaN(0x5b)", "-NaN(0x5b)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv898 */ self.divide128("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv899 */ self.divide128("-NaN", "-sNaN(0x59)", "-NaN(0x59)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv901 */ self.divide128("0", "0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv902 */ self.divide128("0.0E5", "0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv903 */ self.divide128("0.000", "0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqdiv904 */ self.divide128("0.0001", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv905 */ self.divide128("0.01", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv906 */ self.divide128("0.1", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv907 */ self.divide128("1", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv908 */ self.divide128("1", "0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv909 */ self.divide128("10", "0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv910 */ self.divide128("1E+100", "0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv911 */ self.divide128("1E+100", "0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv921 */ self.divide128("-0.0001", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv922 */ self.divide128("-0.01", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv923 */ self.divide128("-0.1", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv924 */ self.divide128("-1", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv925 */ self.divide128("-1", "0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv926 */ self.divide128("-10", "0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv927 */ self.divide128("-1E+100", "0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv928 */ self.divide128("-1E+100", "0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv931 */ self.divide128("0.0001", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv932 */ self.divide128("0.01", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv933 */ self.divide128("0.1", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv934 */ self.divide128("1", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv935 */ self.divide128("1", "-0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv936 */ self.divide128("10", "-0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv937 */ self.divide128("1E+100", "-0.0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv938 */ self.divide128("1E+100", "-0", "-Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv941 */ self.divide128("-0.0001", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv942 */ self.divide128("-0.01", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv943 */ self.divide128("-0.1", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv944 */ self.divide128("-1", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv945 */ self.divide128("-1", "-0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv946 */ self.divide128("-10", "-0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv947 */ self.divide128("-1E+100", "-0.0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ /* dqdiv948 */ self.divide128("-1E+100", "-0", "Infinity", .toNearestOrAwayFromZero, .isDivisionByZero)
+ }
+
+ private func divide128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.divided(by: arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_div(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ // MARK: - Divideint
+
+ func test_divideint64() {
+ /* dddvi001 */ self.divideint64("1", "1", "1", .toNearestOrEven)
+ /* dddvi002 */ self.divideint64("2", "1", "2", .toNearestOrEven)
+ /* dddvi003 */ self.divideint64("1", "2", "0", .toNearestOrEven)
+ /* dddvi004 */ self.divideint64("2", "2", "1", .toNearestOrEven)
+ /* dddvi005 */ self.divideint64("0", "1", "0", .toNearestOrEven)
+ /* dddvi006 */ self.divideint64("0", "2", "0", .toNearestOrEven)
+ /* dddvi007 */ self.divideint64("1", "3", "0", .toNearestOrEven)
+ /* dddvi008 */ self.divideint64("2", "3", "0", .toNearestOrEven)
+ /* dddvi009 */ self.divideint64("3", "3", "1", .toNearestOrEven)
+ /* dddvi010 */ self.divideint64("2.4", "1", "2", .toNearestOrEven)
+ /* dddvi011 */ self.divideint64("2.4", "-1", "-2", .toNearestOrEven)
+ /* dddvi012 */ self.divideint64("-2.4", "1", "-2", .toNearestOrEven)
+ /* dddvi013 */ self.divideint64("-2.4", "-1", "2", .toNearestOrEven)
+ /* dddvi014 */ self.divideint64("2.40", "1", "2", .toNearestOrEven)
+ /* dddvi015 */ self.divideint64("2.400", "1", "2", .toNearestOrEven)
+ /* dddvi016 */ self.divideint64("2.4", "2", "1", .toNearestOrEven)
+ /* dddvi017 */ self.divideint64("2.400", "2", "1", .toNearestOrEven)
+ /* dddvi018 */ self.divideint64("2.", "2", "1", .toNearestOrEven)
+ /* dddvi019 */ self.divideint64("20", "20", "1", .toNearestOrEven)
+ /* dddvi020 */ self.divideint64("187", "187", "1", .toNearestOrEven)
+ /* dddvi021 */ self.divideint64("5", "2", "2", .toNearestOrEven)
+ /* dddvi022 */ self.divideint64("5", "2.0", "2", .toNearestOrEven)
+ /* dddvi023 */ self.divideint64("5", "2.000", "2", .toNearestOrEven)
+ /* dddvi024 */ self.divideint64("5", "0.200", "25", .toNearestOrEven)
+ /* dddvi025 */ self.divideint64("5", "0.200", "25", .toNearestOrEven)
+ /* dddvi030 */ self.divideint64("1", "2", "0", .toNearestOrEven)
+ /* dddvi031 */ self.divideint64("1", "4", "0", .toNearestOrEven)
+ /* dddvi032 */ self.divideint64("1", "8", "0", .toNearestOrEven)
+ /* dddvi033 */ self.divideint64("1", "16", "0", .toNearestOrEven)
+ /* dddvi034 */ self.divideint64("1", "32", "0", .toNearestOrEven)
+ /* dddvi035 */ self.divideint64("1", "64", "0", .toNearestOrEven)
+ /* dddvi040 */ self.divideint64("1", "-2", "-0", .toNearestOrEven)
+ /* dddvi041 */ self.divideint64("1", "-4", "-0", .toNearestOrEven)
+ /* dddvi042 */ self.divideint64("1", "-8", "-0", .toNearestOrEven)
+ /* dddvi043 */ self.divideint64("1", "-16", "-0", .toNearestOrEven)
+ /* dddvi044 */ self.divideint64("1", "-32", "-0", .toNearestOrEven)
+ /* dddvi045 */ self.divideint64("1", "-64", "-0", .toNearestOrEven)
+ /* dddvi050 */ self.divideint64("-1", "2", "-0", .toNearestOrEven)
+ /* dddvi051 */ self.divideint64("-1", "4", "-0", .toNearestOrEven)
+ /* dddvi052 */ self.divideint64("-1", "8", "-0", .toNearestOrEven)
+ /* dddvi053 */ self.divideint64("-1", "16", "-0", .toNearestOrEven)
+ /* dddvi054 */ self.divideint64("-1", "32", "-0", .toNearestOrEven)
+ /* dddvi055 */ self.divideint64("-1", "64", "-0", .toNearestOrEven)
+ /* dddvi060 */ self.divideint64("-1", "-2", "0", .toNearestOrEven)
+ /* dddvi061 */ self.divideint64("-1", "-4", "0", .toNearestOrEven)
+ /* dddvi062 */ self.divideint64("-1", "-8", "0", .toNearestOrEven)
+ /* dddvi063 */ self.divideint64("-1", "-16", "0", .toNearestOrEven)
+ /* dddvi064 */ self.divideint64("-1", "-32", "0", .toNearestOrEven)
+ /* dddvi065 */ self.divideint64("-1", "-64", "0", .toNearestOrEven)
+ /* dddvi070 */ self.divideint64("999999999", "1", "999999999", .toNearestOrEven)
+ /* dddvi071 */ self.divideint64("999999999.4", "1", "999999999", .toNearestOrEven)
+ /* dddvi072 */ self.divideint64("999999999.5", "1", "999999999", .toNearestOrEven)
+ /* dddvi073 */ self.divideint64("999999999.9", "1", "999999999", .toNearestOrEven)
+ /* dddvi074 */ self.divideint64("999999999.999", "1", "999999999", .toNearestOrEven)
+ /* dddvi090 */ self.divideint64("0.", "1", "0", .toNearestOrEven)
+ /* dddvi091 */ self.divideint64(".0", "1", "0", .toNearestOrEven)
+ /* dddvi092 */ self.divideint64("0.00", "1", "0", .toNearestOrEven)
+ /* dddvi093 */ self.divideint64("0.00E+9", "1", "0", .toNearestOrEven)
+ /* dddvi094 */ self.divideint64("0.0000E-50", "1", "0", .toNearestOrEven)
+ /* dddvi100 */ self.divideint64("1", "1", "1", .toNearestOrEven)
+ /* dddvi101 */ self.divideint64("1", "2", "0", .toNearestOrEven)
+ /* dddvi102 */ self.divideint64("1", "3", "0", .toNearestOrEven)
+ /* dddvi103 */ self.divideint64("1", "4", "0", .toNearestOrEven)
+ /* dddvi104 */ self.divideint64("1", "5", "0", .toNearestOrEven)
+ /* dddvi105 */ self.divideint64("1", "6", "0", .toNearestOrEven)
+ /* dddvi1051 */ self.divideint64("1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi1052 */ self.divideint64("1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi1053 */ self.divideint64("-1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi1054 */ self.divideint64("-1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi1055 */ self.divideint64("1e-277", "1e+311", "0", .toNearestOrEven)
+ /* dddvi1056 */ self.divideint64("1e-277", "-1e+311", "-0", .toNearestOrEven)
+ /* dddvi1057 */ self.divideint64("-1e-277", "1e+311", "-0", .toNearestOrEven)
+ /* dddvi1058 */ self.divideint64("-1e-277", "-1e+311", "0", .toNearestOrEven)
+ /* dddvi106 */ self.divideint64("1", "7", "0", .toNearestOrEven)
+ /* dddvi1060 */ self.divideint64("1e-291", "1e+101", "0", .toNearestOrEven)
+ /* dddvi1061 */ self.divideint64("1e-291", "1e+102", "0", .toNearestOrEven)
+ /* dddvi1062 */ self.divideint64("1e-291", "1e+103", "0", .toNearestOrEven)
+ /* dddvi1063 */ self.divideint64("1e-291", "1e+104", "0", .toNearestOrEven)
+ /* dddvi1064 */ self.divideint64("1e-291", "1e+105", "0", .toNearestOrEven)
+ /* dddvi1065 */ self.divideint64("1e-291", "1e+106", "0", .toNearestOrEven)
+ /* dddvi1066 */ self.divideint64("1e-291", "1e+107", "0", .toNearestOrEven)
+ /* dddvi1067 */ self.divideint64("1e-291", "1e+108", "0", .toNearestOrEven)
+ /* dddvi1068 */ self.divideint64("1e-291", "1e+109", "0", .toNearestOrEven)
+ /* dddvi1069 */ self.divideint64("1e-291", "1e+110", "0", .toNearestOrEven)
+ /* dddvi107 */ self.divideint64("1", "8", "0", .toNearestOrEven)
+ /* dddvi108 */ self.divideint64("1", "9", "0", .toNearestOrEven)
+ /* dddvi109 */ self.divideint64("1", "10", "0", .toNearestOrEven)
+ /* dddvi110 */ self.divideint64("1", "1", "1", .toNearestOrEven)
+ /* dddvi1101 */ self.divideint64("1.0000E-394", "1", "0", .toNearestOrEven)
+ /* dddvi1102 */ self.divideint64("1.000E-394", "1e+1", "0", .toNearestOrEven)
+ /* dddvi1103 */ self.divideint64("1.00E-394", "1e+2", "0", .toNearestOrEven)
+ /* dddvi111 */ self.divideint64("2", "1", "2", .toNearestOrEven)
+ /* dddvi1118 */ self.divideint64("1E-394", "1e+4", "0", .toNearestOrEven)
+ /* dddvi1119 */ self.divideint64("3E-394", "-1e+5", "-0", .toNearestOrEven)
+ /* dddvi112 */ self.divideint64("3", "1", "3", .toNearestOrEven)
+ /* dddvi1120 */ self.divideint64("5E-394", "1e+5", "0", .toNearestOrEven)
+ /* dddvi1124 */ self.divideint64("1E-394", "-1e+4", "-0", .toNearestOrEven)
+ /* dddvi113 */ self.divideint64("4", "1", "4", .toNearestOrEven)
+ /* dddvi1130 */ self.divideint64("3.0E-394", "-1e+5", "-0", .toNearestOrEven)
+ /* dddvi1131 */ self.divideint64("1.0E-199", "1e+200", "0", .toNearestOrEven)
+ /* dddvi1132 */ self.divideint64("1.0E-199", "1e+199", "0", .toNearestOrEven)
+ /* dddvi1133 */ self.divideint64("1.0E-199", "1e+198", "0", .toNearestOrEven)
+ /* dddvi1134 */ self.divideint64("2.0E-199", "2e+198", "0", .toNearestOrEven)
+ /* dddvi1135 */ self.divideint64("4.0E-199", "4e+198", "0", .toNearestOrEven)
+ /* dddvi114 */ self.divideint64("5", "1", "5", .toNearestOrEven)
+ /* dddvi115 */ self.divideint64("6", "1", "6", .toNearestOrEven)
+ /* dddvi116 */ self.divideint64("7", "1", "7", .toNearestOrEven)
+ /* dddvi117 */ self.divideint64("8", "1", "8", .toNearestOrEven)
+ /* dddvi118 */ self.divideint64("9", "1", "9", .toNearestOrEven)
+ /* dddvi119 */ self.divideint64("10", "1", "10", .toNearestOrEven)
+ /* dddvi131 */ self.divideint64("101.3", "1", "101", .toNearestOrEven)
+ /* dddvi132 */ self.divideint64("101.0", "1", "101", .toNearestOrEven)
+ /* dddvi133 */ self.divideint64("101.3", "3", "33", .toNearestOrEven)
+ /* dddvi134 */ self.divideint64("101.0", "3", "33", .toNearestOrEven)
+ /* dddvi135 */ self.divideint64("2.4", "1", "2", .toNearestOrEven)
+ /* dddvi136 */ self.divideint64("2.400", "1", "2", .toNearestOrEven)
+ /* dddvi137 */ self.divideint64("18", "18", "1", .toNearestOrEven)
+ /* dddvi138 */ self.divideint64("1120", "1000", "1", .toNearestOrEven)
+ /* dddvi139 */ self.divideint64("2.4", "2", "1", .toNearestOrEven)
+ /* dddvi140 */ self.divideint64("2.400", "2", "1", .toNearestOrEven)
+ /* dddvi141 */ self.divideint64("0.5", "2.000", "0", .toNearestOrEven)
+ /* dddvi142 */ self.divideint64("8.005", "7", "1", .toNearestOrEven)
+ /* dddvi143 */ self.divideint64("5", "2", "2", .toNearestOrEven)
+ /* dddvi144 */ self.divideint64("0", "2", "0", .toNearestOrEven)
+ /* dddvi145 */ self.divideint64("0.00", "2", "0", .toNearestOrEven)
+ /* dddvi150 */ self.divideint64("12345", "4.999", "2469", .toNearestOrEven)
+ /* dddvi151 */ self.divideint64("12345", "4.99", "2473", .toNearestOrEven)
+ /* dddvi152 */ self.divideint64("12345", "4.9", "2519", .toNearestOrEven)
+ /* dddvi153 */ self.divideint64("12345", "5", "2469", .toNearestOrEven)
+ /* dddvi154 */ self.divideint64("12345", "5.1", "2420", .toNearestOrEven)
+ /* dddvi155 */ self.divideint64("12345", "5.01", "2464", .toNearestOrEven)
+ /* dddvi156 */ self.divideint64("12345", "5.001", "2468", .toNearestOrEven)
+ /* dddvi157 */ self.divideint64("101", "7.6", "13", .toNearestOrEven)
+ /* dddvi160 */ self.divideint64("1", "1", "1", .toNearestOrEven)
+ /* dddvi161 */ self.divideint64("1", "10", "0", .toNearestOrEven)
+ /* dddvi162 */ self.divideint64("1", "100", "0", .toNearestOrEven)
+ /* dddvi163 */ self.divideint64("1", "1000", "0", .toNearestOrEven)
+ /* dddvi164 */ self.divideint64("1", "10000", "0", .toNearestOrEven)
+ /* dddvi165 */ self.divideint64("1", "100000", "0", .toNearestOrEven)
+ /* dddvi166 */ self.divideint64("1", "1000000", "0", .toNearestOrEven)
+ /* dddvi167 */ self.divideint64("1", "10000000", "0", .toNearestOrEven)
+ /* dddvi168 */ self.divideint64("1", "100000000", "0", .toNearestOrEven)
+ /* dddvi170 */ self.divideint64("1", "-1", "-1", .toNearestOrEven)
+ /* dddvi171 */ self.divideint64("1", "-10", "-0", .toNearestOrEven)
+ /* dddvi172 */ self.divideint64("1", "-100", "-0", .toNearestOrEven)
+ /* dddvi173 */ self.divideint64("1", "-1000", "-0", .toNearestOrEven)
+ /* dddvi174 */ self.divideint64("1", "-10000", "-0", .toNearestOrEven)
+ /* dddvi175 */ self.divideint64("1", "-100000", "-0", .toNearestOrEven)
+ /* dddvi176 */ self.divideint64("1", "-1000000", "-0", .toNearestOrEven)
+ /* dddvi177 */ self.divideint64("1", "-10000000", "-0", .toNearestOrEven)
+ /* dddvi178 */ self.divideint64("1", "-100000000", "-0", .toNearestOrEven)
+ /* dddvi180 */ self.divideint64("-1", "1", "-1", .toNearestOrEven)
+ /* dddvi181 */ self.divideint64("-1", "10", "-0", .toNearestOrEven)
+ /* dddvi182 */ self.divideint64("-1", "100", "-0", .toNearestOrEven)
+ /* dddvi183 */ self.divideint64("-1", "1000", "-0", .toNearestOrEven)
+ /* dddvi184 */ self.divideint64("-1", "10000", "-0", .toNearestOrEven)
+ /* dddvi185 */ self.divideint64("-1", "100000", "-0", .toNearestOrEven)
+ /* dddvi186 */ self.divideint64("-1", "1000000", "-0", .toNearestOrEven)
+ /* dddvi187 */ self.divideint64("-1", "10000000", "-0", .toNearestOrEven)
+ /* dddvi188 */ self.divideint64("-1", "100000000", "-0", .toNearestOrEven)
+ /* dddvi190 */ self.divideint64("-1", "-1", "1", .toNearestOrEven)
+ /* dddvi191 */ self.divideint64("-1", "-10", "0", .toNearestOrEven)
+ /* dddvi192 */ self.divideint64("-1", "-100", "0", .toNearestOrEven)
+ /* dddvi193 */ self.divideint64("-1", "-1000", "0", .toNearestOrEven)
+ /* dddvi194 */ self.divideint64("-1", "-10000", "0", .toNearestOrEven)
+ /* dddvi195 */ self.divideint64("-1", "-100000", "0", .toNearestOrEven)
+ /* dddvi196 */ self.divideint64("-1", "-1000000", "0", .toNearestOrEven)
+ /* dddvi197 */ self.divideint64("-1", "-10000000", "0", .toNearestOrEven)
+ /* dddvi198 */ self.divideint64("-1", "-100000000", "0", .toNearestOrEven)
+ /* dddvi201 */ self.divideint64("0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi202 */ self.divideint64("0.0E5", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi203 */ self.divideint64("0.000", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi204 */ self.divideint64("0.0001", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi205 */ self.divideint64("0.01", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi206 */ self.divideint64("0.1", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi207 */ self.divideint64("1", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi208 */ self.divideint64("1", "0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi209 */ self.divideint64("10", "0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi210 */ self.divideint64("1E+100", "0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi211 */ self.divideint64("1E+380", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi214 */ self.divideint64("-0.0001", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi215 */ self.divideint64("-0.01", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi216 */ self.divideint64("-0.1", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi217 */ self.divideint64("-1", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi218 */ self.divideint64("-1", "0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi219 */ self.divideint64("-10", "0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi220 */ self.divideint64("-1E+100", "0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi221 */ self.divideint64("-1E+380", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi270 */ self.divideint64("1", "1e384", "0", .toNearestOrEven)
+ /* dddvi271 */ self.divideint64("1", "0.9e384", "0", .toNearestOrEven)
+ /* dddvi272 */ self.divideint64("1", "0.99e384", "0", .toNearestOrEven)
+ /* dddvi273 */ self.divideint64("1", "0.9999999999999999e384", "0", .toNearestOrEven)
+ /* dddvi274 */ self.divideint64("9e384", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi275 */ self.divideint64("9.9e384", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi276 */ self.divideint64("9.99e384", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi277 */ self.divideint64("9.999999999999999e384", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi280 */ self.divideint64("0.1", "9e-383", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi281 */ self.divideint64("0.1", "99e-383", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi282 */ self.divideint64("0.1", "999e-383", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi283 */ self.divideint64("0.1", "9e-382", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi284 */ self.divideint64("0.1", "99e-382", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi301 */ self.divideint64("0.9", "2", "0", .toNearestOrEven)
+ /* dddvi302 */ self.divideint64("0.9", "2.0", "0", .toNearestOrEven)
+ /* dddvi303 */ self.divideint64("0.9", "2.1", "0", .toNearestOrEven)
+ /* dddvi304 */ self.divideint64("0.9", "2.00", "0", .toNearestOrEven)
+ /* dddvi305 */ self.divideint64("0.9", "2.01", "0", .toNearestOrEven)
+ /* dddvi306 */ self.divideint64("0.12", "1", "0", .toNearestOrEven)
+ /* dddvi307 */ self.divideint64("0.12", "1.0", "0", .toNearestOrEven)
+ /* dddvi308 */ self.divideint64("0.12", "1.00", "0", .toNearestOrEven)
+ /* dddvi309 */ self.divideint64("0.12", "1.0", "0", .toNearestOrEven)
+ /* dddvi310 */ self.divideint64("0.12", "1.00", "0", .toNearestOrEven)
+ /* dddvi311 */ self.divideint64("0.12", "2", "0", .toNearestOrEven)
+ /* dddvi312 */ self.divideint64("0.12", "2.0", "0", .toNearestOrEven)
+ /* dddvi313 */ self.divideint64("0.12", "2.1", "0", .toNearestOrEven)
+ /* dddvi314 */ self.divideint64("0.12", "2.00", "0", .toNearestOrEven)
+ /* dddvi315 */ self.divideint64("0.12", "2.01", "0", .toNearestOrEven)
+ /* dddvi330 */ self.divideint64("1234567890123456", "10", "123456789012345", .toNearestOrEven)
+ /* dddvi331 */ self.divideint64("1234567890123456", "1", "1234567890123456", .toNearestOrEven)
+ /* dddvi332 */ self.divideint64("1234567890123456", "0.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi333 */ self.divideint64("1234567890123456", "0.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi401 */ self.divideint64("12345678000", "100", "123456780", .toNearestOrEven)
+ /* dddvi402 */ self.divideint64("1", "12345678000", "0", .toNearestOrEven)
+ /* dddvi403 */ self.divideint64("1234567800", "10", "123456780", .toNearestOrEven)
+ /* dddvi404 */ self.divideint64("1", "1234567800", "0", .toNearestOrEven)
+ /* dddvi405 */ self.divideint64("1234567890", "10", "123456789", .toNearestOrEven)
+ /* dddvi406 */ self.divideint64("1", "1234567890", "0", .toNearestOrEven)
+ /* dddvi407 */ self.divideint64("1234567891", "10", "123456789", .toNearestOrEven)
+ /* dddvi408 */ self.divideint64("1", "1234567891", "0", .toNearestOrEven)
+ /* dddvi409 */ self.divideint64("12345678901", "100", "123456789", .toNearestOrEven)
+ /* dddvi410 */ self.divideint64("1", "12345678901", "0", .toNearestOrEven)
+ /* dddvi411 */ self.divideint64("1234567896", "10", "123456789", .toNearestOrEven)
+ /* dddvi412 */ self.divideint64("1", "1234567896", "0", .toNearestOrEven)
+ /* dddvi413 */ self.divideint64("12345678948", "100", "123456789", .toNearestOrEven)
+ /* dddvi414 */ self.divideint64("12345678949", "100", "123456789", .toNearestOrEven)
+ /* dddvi415 */ self.divideint64("12345678950", "100", "123456789", .toNearestOrEven)
+ /* dddvi416 */ self.divideint64("12345678951", "100", "123456789", .toNearestOrEven)
+ /* dddvi417 */ self.divideint64("12345678999", "100", "123456789", .toNearestOrEven)
+ /* dddvi441 */ self.divideint64("12345678000", "1", "12345678000", .toNearestOrEven)
+ /* dddvi442 */ self.divideint64("1", "12345678000", "0", .toNearestOrEven)
+ /* dddvi443 */ self.divideint64("1234567800", "1", "1234567800", .toNearestOrEven)
+ /* dddvi444 */ self.divideint64("1", "1234567800", "0", .toNearestOrEven)
+ /* dddvi445 */ self.divideint64("1234567890", "1", "1234567890", .toNearestOrEven)
+ /* dddvi446 */ self.divideint64("1", "1234567890", "0", .toNearestOrEven)
+ /* dddvi447 */ self.divideint64("1234567891", "1", "1234567891", .toNearestOrEven)
+ /* dddvi448 */ self.divideint64("1", "1234567891", "0", .toNearestOrEven)
+ /* dddvi449 */ self.divideint64("12345678901", "1", "12345678901", .toNearestOrEven)
+ /* dddvi450 */ self.divideint64("1", "12345678901", "0", .toNearestOrEven)
+ /* dddvi451 */ self.divideint64("1234567896", "1", "1234567896", .toNearestOrEven)
+ /* dddvi452 */ self.divideint64("1", "1234567896", "0", .toNearestOrEven)
+ /* dddvi531 */ self.divideint64("5.00", "1E-3", "5000", .toNearestOrEven)
+ /* dddvi532 */ self.divideint64("00.00", "0.000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi533 */ self.divideint64("00.00", "0E-3", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi534 */ self.divideint64("0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi535 */ self.divideint64("-0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi536 */ self.divideint64("-0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi541 */ self.divideint64("0", "-1", "-0", .toNearestOrEven)
+ /* dddvi542 */ self.divideint64("-0", "-1", "0", .toNearestOrEven)
+ /* dddvi543 */ self.divideint64("0", "1", "0", .toNearestOrEven)
+ /* dddvi544 */ self.divideint64("-0", "1", "-0", .toNearestOrEven)
+ /* dddvi545 */ self.divideint64("-1", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi546 */ self.divideint64("-1", "-0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi547 */ self.divideint64("1", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi548 */ self.divideint64("1", "-0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi551 */ self.divideint64("0.0", "-1", "-0", .toNearestOrEven)
+ /* dddvi552 */ self.divideint64("-0.0", "-1", "0", .toNearestOrEven)
+ /* dddvi553 */ self.divideint64("0.0", "1", "0", .toNearestOrEven)
+ /* dddvi554 */ self.divideint64("-0.0", "1", "-0", .toNearestOrEven)
+ /* dddvi555 */ self.divideint64("-1.0", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi556 */ self.divideint64("-1.0", "-0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi557 */ self.divideint64("1.0", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi558 */ self.divideint64("1.0", "-0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi561 */ self.divideint64("0", "-1.0", "-0", .toNearestOrEven)
+ /* dddvi562 */ self.divideint64("-0", "-1.0", "0", .toNearestOrEven)
+ /* dddvi563 */ self.divideint64("0", "1.0", "0", .toNearestOrEven)
+ /* dddvi564 */ self.divideint64("-0", "1.0", "-0", .toNearestOrEven)
+ /* dddvi565 */ self.divideint64("-1", "0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi566 */ self.divideint64("-1", "-0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi567 */ self.divideint64("1", "0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi568 */ self.divideint64("1", "-0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi571 */ self.divideint64("0.0", "-1.0", "-0", .toNearestOrEven)
+ /* dddvi572 */ self.divideint64("-0.0", "-1.0", "0", .toNearestOrEven)
+ /* dddvi573 */ self.divideint64("0.0", "1.0", "0", .toNearestOrEven)
+ /* dddvi574 */ self.divideint64("-0.0", "1.0", "-0", .toNearestOrEven)
+ /* dddvi575 */ self.divideint64("-1.0", "0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi576 */ self.divideint64("-1.0", "-0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi577 */ self.divideint64("1.0", "0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi578 */ self.divideint64("1.0", "-0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dddvi580 */ self.divideint64("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi581 */ self.divideint64("Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* dddvi582 */ self.divideint64("Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* dddvi583 */ self.divideint64("Inf", "-0", "-Infinity", .toNearestOrEven)
+ /* dddvi584 */ self.divideint64("Inf", "0", "Infinity", .toNearestOrEven)
+ /* dddvi585 */ self.divideint64("Inf", "1", "Infinity", .toNearestOrEven)
+ /* dddvi586 */ self.divideint64("Inf", "1000", "Infinity", .toNearestOrEven)
+ /* dddvi587 */ self.divideint64("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi588 */ self.divideint64("-1000", "Inf", "-0", .toNearestOrEven)
+ /* dddvi589 */ self.divideint64("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi590 */ self.divideint64("-1", "Inf", "-0", .toNearestOrEven)
+ /* dddvi591 */ self.divideint64("-0", "Inf", "-0", .toNearestOrEven)
+ /* dddvi592 */ self.divideint64("0", "Inf", "0", .toNearestOrEven)
+ /* dddvi593 */ self.divideint64("1", "Inf", "0", .toNearestOrEven)
+ /* dddvi594 */ self.divideint64("1000", "Inf", "0", .toNearestOrEven)
+ /* dddvi595 */ self.divideint64("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi600 */ self.divideint64("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi601 */ self.divideint64("-Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* dddvi602 */ self.divideint64("-Inf", "-1", "Infinity", .toNearestOrEven)
+ /* dddvi603 */ self.divideint64("-Inf", "-0", "Infinity", .toNearestOrEven)
+ /* dddvi604 */ self.divideint64("-Inf", "0", "-Infinity", .toNearestOrEven)
+ /* dddvi605 */ self.divideint64("-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* dddvi606 */ self.divideint64("-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* dddvi607 */ self.divideint64("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi608 */ self.divideint64("-1000", "Inf", "-0", .toNearestOrEven)
+ /* dddvi609 */ self.divideint64("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi610 */ self.divideint64("-1", "-Inf", "0", .toNearestOrEven)
+ /* dddvi611 */ self.divideint64("-0", "-Inf", "0", .toNearestOrEven)
+ /* dddvi612 */ self.divideint64("0", "-Inf", "-0", .toNearestOrEven)
+ /* dddvi613 */ self.divideint64("1", "-Inf", "-0", .toNearestOrEven)
+ /* dddvi614 */ self.divideint64("1000", "-Inf", "-0", .toNearestOrEven)
+ /* dddvi615 */ self.divideint64("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi621 */ self.divideint64("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* dddvi622 */ self.divideint64("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* dddvi623 */ self.divideint64("NaN", "-1", "NaN", .toNearestOrEven)
+ /* dddvi624 */ self.divideint64("NaN", "-0", "NaN", .toNearestOrEven)
+ /* dddvi625 */ self.divideint64("NaN", "0", "NaN", .toNearestOrEven)
+ /* dddvi626 */ self.divideint64("NaN", "1", "NaN", .toNearestOrEven)
+ /* dddvi627 */ self.divideint64("NaN", "1000", "NaN", .toNearestOrEven)
+ /* dddvi628 */ self.divideint64("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* dddvi629 */ self.divideint64("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* dddvi630 */ self.divideint64("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dddvi631 */ self.divideint64("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* dddvi632 */ self.divideint64("-1", "NaN", "NaN", .toNearestOrEven)
+ /* dddvi633 */ self.divideint64("-0", "NaN", "NaN", .toNearestOrEven)
+ /* dddvi634 */ self.divideint64("0", "NaN", "NaN", .toNearestOrEven)
+ /* dddvi635 */ self.divideint64("1", "NaN", "NaN", .toNearestOrEven)
+ /* dddvi636 */ self.divideint64("1000", "NaN", "NaN", .toNearestOrEven)
+ /* dddvi637 */ self.divideint64("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dddvi641 */ self.divideint64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi642 */ self.divideint64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi643 */ self.divideint64("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi644 */ self.divideint64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi645 */ self.divideint64("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi646 */ self.divideint64("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi647 */ self.divideint64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi648 */ self.divideint64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi649 */ self.divideint64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi650 */ self.divideint64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi651 */ self.divideint64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi652 */ self.divideint64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi653 */ self.divideint64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi654 */ self.divideint64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi655 */ self.divideint64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi656 */ self.divideint64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi657 */ self.divideint64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi658 */ self.divideint64("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi659 */ self.divideint64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi661 */ self.divideint64("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrEven)
+ /* dddvi662 */ self.divideint64("NaN(0x8)", "1000", "NaN(0x8)", .toNearestOrEven)
+ /* dddvi663 */ self.divideint64("NaN(0x7)", "Inf", "NaN(0x7)", .toNearestOrEven)
+ /* dddvi664 */ self.divideint64("-NaN(0x6)", "NaN(0x5)", "-NaN(0x6)", .toNearestOrEven)
+ /* dddvi665 */ self.divideint64("-Inf", "NaN(0x4)", "NaN(0x4)", .toNearestOrEven)
+ /* dddvi666 */ self.divideint64("-1000", "NaN(0x3)", "NaN(0x3)", .toNearestOrEven)
+ /* dddvi667 */ self.divideint64("Inf", "-NaN(0x2)", "-NaN(0x2)", .toNearestOrEven)
+ /* dddvi671 */ self.divideint64("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi672 */ self.divideint64("sNaN(0x62)", "-1", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi673 */ self.divideint64("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi674 */ self.divideint64("sNaN(0x60)", "sNaN(0x5e)", "NaN(0x60)", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi675 */ self.divideint64("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi676 */ self.divideint64("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi677 */ self.divideint64("0", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi678 */ self.divideint64("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dddvi679 */ self.divideint64("NaN", "sNaN(0x59)", "NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ }
+
+ private func divideint64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = self.divideInt(arg0, by: arg1, rounding: rounding)
+ self.assertEqualByEqualEqual(result, expected, file, line)
+ }
+
+ func test_divideint128() {
+ /* dqdvi001 */ self.divideint128("1", "1", "1", .toNearestOrEven)
+ /* dqdvi002 */ self.divideint128("2", "1", "2", .toNearestOrEven)
+ /* dqdvi003 */ self.divideint128("1", "2", "0", .toNearestOrEven)
+ /* dqdvi004 */ self.divideint128("2", "2", "1", .toNearestOrEven)
+ /* dqdvi005 */ self.divideint128("0", "1", "0", .toNearestOrEven)
+ /* dqdvi006 */ self.divideint128("0", "2", "0", .toNearestOrEven)
+ /* dqdvi007 */ self.divideint128("1", "3", "0", .toNearestOrEven)
+ /* dqdvi008 */ self.divideint128("2", "3", "0", .toNearestOrEven)
+ /* dqdvi009 */ self.divideint128("3", "3", "1", .toNearestOrEven)
+ /* dqdvi010 */ self.divideint128("2.4", "1", "2", .toNearestOrEven)
+ /* dqdvi011 */ self.divideint128("2.4", "-1", "-2", .toNearestOrEven)
+ /* dqdvi012 */ self.divideint128("-2.4", "1", "-2", .toNearestOrEven)
+ /* dqdvi013 */ self.divideint128("-2.4", "-1", "2", .toNearestOrEven)
+ /* dqdvi014 */ self.divideint128("2.40", "1", "2", .toNearestOrEven)
+ /* dqdvi015 */ self.divideint128("2.400", "1", "2", .toNearestOrEven)
+ /* dqdvi016 */ self.divideint128("2.4", "2", "1", .toNearestOrEven)
+ /* dqdvi017 */ self.divideint128("2.400", "2", "1", .toNearestOrEven)
+ /* dqdvi018 */ self.divideint128("2.", "2", "1", .toNearestOrEven)
+ /* dqdvi019 */ self.divideint128("20", "20", "1", .toNearestOrEven)
+ /* dqdvi020 */ self.divideint128("187", "187", "1", .toNearestOrEven)
+ /* dqdvi021 */ self.divideint128("5", "2", "2", .toNearestOrEven)
+ /* dqdvi022 */ self.divideint128("5", "2.0", "2", .toNearestOrEven)
+ /* dqdvi023 */ self.divideint128("5", "2.000", "2", .toNearestOrEven)
+ /* dqdvi024 */ self.divideint128("5", "0.200", "25", .toNearestOrEven)
+ /* dqdvi025 */ self.divideint128("5", "0.200", "25", .toNearestOrEven)
+ /* dqdvi030 */ self.divideint128("1", "2", "0", .toNearestOrEven)
+ /* dqdvi031 */ self.divideint128("1", "4", "0", .toNearestOrEven)
+ /* dqdvi032 */ self.divideint128("1", "8", "0", .toNearestOrEven)
+ /* dqdvi033 */ self.divideint128("1", "16", "0", .toNearestOrEven)
+ /* dqdvi034 */ self.divideint128("1", "32", "0", .toNearestOrEven)
+ /* dqdvi035 */ self.divideint128("1", "64", "0", .toNearestOrEven)
+ /* dqdvi040 */ self.divideint128("1", "-2", "-0", .toNearestOrEven)
+ /* dqdvi041 */ self.divideint128("1", "-4", "-0", .toNearestOrEven)
+ /* dqdvi042 */ self.divideint128("1", "-8", "-0", .toNearestOrEven)
+ /* dqdvi043 */ self.divideint128("1", "-16", "-0", .toNearestOrEven)
+ /* dqdvi044 */ self.divideint128("1", "-32", "-0", .toNearestOrEven)
+ /* dqdvi045 */ self.divideint128("1", "-64", "-0", .toNearestOrEven)
+ /* dqdvi050 */ self.divideint128("-1", "2", "-0", .toNearestOrEven)
+ /* dqdvi051 */ self.divideint128("-1", "4", "-0", .toNearestOrEven)
+ /* dqdvi052 */ self.divideint128("-1", "8", "-0", .toNearestOrEven)
+ /* dqdvi053 */ self.divideint128("-1", "16", "-0", .toNearestOrEven)
+ /* dqdvi054 */ self.divideint128("-1", "32", "-0", .toNearestOrEven)
+ /* dqdvi055 */ self.divideint128("-1", "64", "-0", .toNearestOrEven)
+ /* dqdvi060 */ self.divideint128("-1", "-2", "0", .toNearestOrEven)
+ /* dqdvi061 */ self.divideint128("-1", "-4", "0", .toNearestOrEven)
+ /* dqdvi062 */ self.divideint128("-1", "-8", "0", .toNearestOrEven)
+ /* dqdvi063 */ self.divideint128("-1", "-16", "0", .toNearestOrEven)
+ /* dqdvi064 */ self.divideint128("-1", "-32", "0", .toNearestOrEven)
+ /* dqdvi065 */ self.divideint128("-1", "-64", "0", .toNearestOrEven)
+ /* dqdvi070 */ self.divideint128("999999999", "1", "999999999", .toNearestOrEven)
+ /* dqdvi071 */ self.divideint128("999999999.4", "1", "999999999", .toNearestOrEven)
+ /* dqdvi072 */ self.divideint128("999999999.5", "1", "999999999", .toNearestOrEven)
+ /* dqdvi073 */ self.divideint128("999999999.9", "1", "999999999", .toNearestOrEven)
+ /* dqdvi074 */ self.divideint128("999999999.999", "1", "999999999", .toNearestOrEven)
+ /* dqdvi090 */ self.divideint128("0.", "1", "0", .toNearestOrEven)
+ /* dqdvi091 */ self.divideint128(".0", "1", "0", .toNearestOrEven)
+ /* dqdvi092 */ self.divideint128("0.00", "1", "0", .toNearestOrEven)
+ /* dqdvi093 */ self.divideint128("0.00E+9", "1", "0", .toNearestOrEven)
+ /* dqdvi094 */ self.divideint128("0.0000E-50", "1", "0", .toNearestOrEven)
+ /* dqdvi100 */ self.divideint128("1", "1", "1", .toNearestOrEven)
+ /* dqdvi101 */ self.divideint128("1", "2", "0", .toNearestOrEven)
+ /* dqdvi102 */ self.divideint128("1", "3", "0", .toNearestOrEven)
+ /* dqdvi103 */ self.divideint128("1", "4", "0", .toNearestOrEven)
+ /* dqdvi104 */ self.divideint128("1", "5", "0", .toNearestOrEven)
+ /* dqdvi105 */ self.divideint128("1", "6", "0", .toNearestOrEven)
+ /* dqdvi1051 */ self.divideint128("1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi1052 */ self.divideint128("1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi1053 */ self.divideint128("-1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi1054 */ self.divideint128("-1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi1055 */ self.divideint128("1e-277", "1e+311", "0", .toNearestOrEven)
+ /* dqdvi1056 */ self.divideint128("1e-277", "-1e+311", "-0", .toNearestOrEven)
+ /* dqdvi1057 */ self.divideint128("-1e-277", "1e+311", "-0", .toNearestOrEven)
+ /* dqdvi1058 */ self.divideint128("-1e-277", "-1e+311", "0", .toNearestOrEven)
+ /* dqdvi106 */ self.divideint128("1", "7", "0", .toNearestOrEven)
+ /* dqdvi1060 */ self.divideint128("1e-291", "1e+101", "0", .toNearestOrEven)
+ /* dqdvi1061 */ self.divideint128("1e-291", "1e+102", "0", .toNearestOrEven)
+ /* dqdvi1062 */ self.divideint128("1e-291", "1e+103", "0", .toNearestOrEven)
+ /* dqdvi1063 */ self.divideint128("1e-291", "1e+104", "0", .toNearestOrEven)
+ /* dqdvi1064 */ self.divideint128("1e-291", "1e+105", "0", .toNearestOrEven)
+ /* dqdvi1065 */ self.divideint128("1e-291", "1e+106", "0", .toNearestOrEven)
+ /* dqdvi1066 */ self.divideint128("1e-291", "1e+107", "0", .toNearestOrEven)
+ /* dqdvi1067 */ self.divideint128("1e-291", "1e+108", "0", .toNearestOrEven)
+ /* dqdvi1068 */ self.divideint128("1e-291", "1e+109", "0", .toNearestOrEven)
+ /* dqdvi1069 */ self.divideint128("1e-291", "1e+110", "0", .toNearestOrEven)
+ /* dqdvi107 */ self.divideint128("1", "8", "0", .toNearestOrEven)
+ /* dqdvi108 */ self.divideint128("1", "9", "0", .toNearestOrEven)
+ /* dqdvi109 */ self.divideint128("1", "10", "0", .toNearestOrEven)
+ /* dqdvi110 */ self.divideint128("1", "1", "1", .toNearestOrEven)
+ /* dqdvi1101 */ self.divideint128("1.0000E-394", "1", "0", .toNearestOrEven)
+ /* dqdvi1102 */ self.divideint128("1.000E-394", "1e+1", "0", .toNearestOrEven)
+ /* dqdvi1103 */ self.divideint128("1.00E-394", "1e+2", "0", .toNearestOrEven)
+ /* dqdvi111 */ self.divideint128("2", "1", "2", .toNearestOrEven)
+ /* dqdvi1118 */ self.divideint128("1E-394", "1e+4", "0", .toNearestOrEven)
+ /* dqdvi1119 */ self.divideint128("3E-394", "-1e+5", "-0", .toNearestOrEven)
+ /* dqdvi112 */ self.divideint128("3", "1", "3", .toNearestOrEven)
+ /* dqdvi1120 */ self.divideint128("5E-394", "1e+5", "0", .toNearestOrEven)
+ /* dqdvi1124 */ self.divideint128("1E-394", "-1e+4", "-0", .toNearestOrEven)
+ /* dqdvi113 */ self.divideint128("4", "1", "4", .toNearestOrEven)
+ /* dqdvi1130 */ self.divideint128("3.0E-394", "-1e+5", "-0", .toNearestOrEven)
+ /* dqdvi1131 */ self.divideint128("1.0E-199", "1e+200", "0", .toNearestOrEven)
+ /* dqdvi1132 */ self.divideint128("1.0E-199", "1e+199", "0", .toNearestOrEven)
+ /* dqdvi1133 */ self.divideint128("1.0E-199", "1e+198", "0", .toNearestOrEven)
+ /* dqdvi1134 */ self.divideint128("2.0E-199", "2e+198", "0", .toNearestOrEven)
+ /* dqdvi1135 */ self.divideint128("4.0E-199", "4e+198", "0", .toNearestOrEven)
+ /* dqdvi114 */ self.divideint128("5", "1", "5", .toNearestOrEven)
+ /* dqdvi115 */ self.divideint128("6", "1", "6", .toNearestOrEven)
+ /* dqdvi116 */ self.divideint128("7", "1", "7", .toNearestOrEven)
+ /* dqdvi117 */ self.divideint128("8", "1", "8", .toNearestOrEven)
+ /* dqdvi118 */ self.divideint128("9", "1", "9", .toNearestOrEven)
+ /* dqdvi119 */ self.divideint128("10", "1", "10", .toNearestOrEven)
+ /* dqdvi131 */ self.divideint128("101.3", "1", "101", .toNearestOrEven)
+ /* dqdvi132 */ self.divideint128("101.0", "1", "101", .toNearestOrEven)
+ /* dqdvi133 */ self.divideint128("101.3", "3", "33", .toNearestOrEven)
+ /* dqdvi134 */ self.divideint128("101.0", "3", "33", .toNearestOrEven)
+ /* dqdvi135 */ self.divideint128("2.4", "1", "2", .toNearestOrEven)
+ /* dqdvi136 */ self.divideint128("2.400", "1", "2", .toNearestOrEven)
+ /* dqdvi137 */ self.divideint128("18", "18", "1", .toNearestOrEven)
+ /* dqdvi138 */ self.divideint128("1120", "1000", "1", .toNearestOrEven)
+ /* dqdvi139 */ self.divideint128("2.4", "2", "1", .toNearestOrEven)
+ /* dqdvi140 */ self.divideint128("2.400", "2", "1", .toNearestOrEven)
+ /* dqdvi141 */ self.divideint128("0.5", "2.000", "0", .toNearestOrEven)
+ /* dqdvi142 */ self.divideint128("8.005", "7", "1", .toNearestOrEven)
+ /* dqdvi143 */ self.divideint128("5", "2", "2", .toNearestOrEven)
+ /* dqdvi144 */ self.divideint128("0", "2", "0", .toNearestOrEven)
+ /* dqdvi145 */ self.divideint128("0.00", "2", "0", .toNearestOrEven)
+ /* dqdvi150 */ self.divideint128("12345", "4.999", "2469", .toNearestOrEven)
+ /* dqdvi151 */ self.divideint128("12345", "4.99", "2473", .toNearestOrEven)
+ /* dqdvi152 */ self.divideint128("12345", "4.9", "2519", .toNearestOrEven)
+ /* dqdvi153 */ self.divideint128("12345", "5", "2469", .toNearestOrEven)
+ /* dqdvi154 */ self.divideint128("12345", "5.1", "2420", .toNearestOrEven)
+ /* dqdvi155 */ self.divideint128("12345", "5.01", "2464", .toNearestOrEven)
+ /* dqdvi156 */ self.divideint128("12345", "5.001", "2468", .toNearestOrEven)
+ /* dqdvi157 */ self.divideint128("101", "7.6", "13", .toNearestOrEven)
+ /* dqdvi160 */ self.divideint128("1", "1", "1", .toNearestOrEven)
+ /* dqdvi161 */ self.divideint128("1", "10", "0", .toNearestOrEven)
+ /* dqdvi162 */ self.divideint128("1", "100", "0", .toNearestOrEven)
+ /* dqdvi163 */ self.divideint128("1", "1000", "0", .toNearestOrEven)
+ /* dqdvi164 */ self.divideint128("1", "10000", "0", .toNearestOrEven)
+ /* dqdvi165 */ self.divideint128("1", "100000", "0", .toNearestOrEven)
+ /* dqdvi166 */ self.divideint128("1", "1000000", "0", .toNearestOrEven)
+ /* dqdvi167 */ self.divideint128("1", "10000000", "0", .toNearestOrEven)
+ /* dqdvi168 */ self.divideint128("1", "100000000", "0", .toNearestOrEven)
+ /* dqdvi170 */ self.divideint128("1", "-1", "-1", .toNearestOrEven)
+ /* dqdvi171 */ self.divideint128("1", "-10", "-0", .toNearestOrEven)
+ /* dqdvi172 */ self.divideint128("1", "-100", "-0", .toNearestOrEven)
+ /* dqdvi173 */ self.divideint128("1", "-1000", "-0", .toNearestOrEven)
+ /* dqdvi174 */ self.divideint128("1", "-10000", "-0", .toNearestOrEven)
+ /* dqdvi175 */ self.divideint128("1", "-100000", "-0", .toNearestOrEven)
+ /* dqdvi176 */ self.divideint128("1", "-1000000", "-0", .toNearestOrEven)
+ /* dqdvi177 */ self.divideint128("1", "-10000000", "-0", .toNearestOrEven)
+ /* dqdvi178 */ self.divideint128("1", "-100000000", "-0", .toNearestOrEven)
+ /* dqdvi180 */ self.divideint128("-1", "1", "-1", .toNearestOrEven)
+ /* dqdvi181 */ self.divideint128("-1", "10", "-0", .toNearestOrEven)
+ /* dqdvi182 */ self.divideint128("-1", "100", "-0", .toNearestOrEven)
+ /* dqdvi183 */ self.divideint128("-1", "1000", "-0", .toNearestOrEven)
+ /* dqdvi184 */ self.divideint128("-1", "10000", "-0", .toNearestOrEven)
+ /* dqdvi185 */ self.divideint128("-1", "100000", "-0", .toNearestOrEven)
+ /* dqdvi186 */ self.divideint128("-1", "1000000", "-0", .toNearestOrEven)
+ /* dqdvi187 */ self.divideint128("-1", "10000000", "-0", .toNearestOrEven)
+ /* dqdvi188 */ self.divideint128("-1", "100000000", "-0", .toNearestOrEven)
+ /* dqdvi190 */ self.divideint128("-1", "-1", "1", .toNearestOrEven)
+ /* dqdvi191 */ self.divideint128("-1", "-10", "0", .toNearestOrEven)
+ /* dqdvi192 */ self.divideint128("-1", "-100", "0", .toNearestOrEven)
+ /* dqdvi193 */ self.divideint128("-1", "-1000", "0", .toNearestOrEven)
+ /* dqdvi194 */ self.divideint128("-1", "-10000", "0", .toNearestOrEven)
+ /* dqdvi195 */ self.divideint128("-1", "-100000", "0", .toNearestOrEven)
+ /* dqdvi196 */ self.divideint128("-1", "-1000000", "0", .toNearestOrEven)
+ /* dqdvi197 */ self.divideint128("-1", "-10000000", "0", .toNearestOrEven)
+ /* dqdvi198 */ self.divideint128("-1", "-100000000", "0", .toNearestOrEven)
+ /* dqdvi201 */ self.divideint128("0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi202 */ self.divideint128("0.0E5", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi203 */ self.divideint128("0.000", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi204 */ self.divideint128("0.0001", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi205 */ self.divideint128("0.01", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi206 */ self.divideint128("0.1", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi207 */ self.divideint128("1", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi208 */ self.divideint128("1", "0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi209 */ self.divideint128("10", "0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi210 */ self.divideint128("1E+100", "0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi211 */ self.divideint128("1E+380", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi214 */ self.divideint128("-0.0001", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi215 */ self.divideint128("-0.01", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi216 */ self.divideint128("-0.1", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi217 */ self.divideint128("-1", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi218 */ self.divideint128("-1", "0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi219 */ self.divideint128("-10", "0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi220 */ self.divideint128("-1E+100", "0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi221 */ self.divideint128("-1E+380", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi270 */ self.divideint128("1", "1e384", "0", .toNearestOrEven)
+ /* dqdvi271 */ self.divideint128("1", "0.9e384", "0", .toNearestOrEven)
+ /* dqdvi272 */ self.divideint128("1", "0.99e384", "0", .toNearestOrEven)
+ /* dqdvi273 */ self.divideint128("1", "0.9999999999999999e384", "0", .toNearestOrEven)
+ /* dqdvi274 */ self.divideint128("9e384", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi275 */ self.divideint128("9.9e384", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi276 */ self.divideint128("9.99e384", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi277 */ self.divideint128("9.999999999999999e384", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi280 */ self.divideint128("0.1", "9e-383", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi281 */ self.divideint128("0.1", "99e-383", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi282 */ self.divideint128("0.1", "999e-383", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi283 */ self.divideint128("0.1", "9e-382", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi284 */ self.divideint128("0.1", "99e-382", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi301 */ self.divideint128("0.9", "2", "0", .toNearestOrEven)
+ /* dqdvi302 */ self.divideint128("0.9", "2.0", "0", .toNearestOrEven)
+ /* dqdvi303 */ self.divideint128("0.9", "2.1", "0", .toNearestOrEven)
+ /* dqdvi304 */ self.divideint128("0.9", "2.00", "0", .toNearestOrEven)
+ /* dqdvi305 */ self.divideint128("0.9", "2.01", "0", .toNearestOrEven)
+ /* dqdvi306 */ self.divideint128("0.12", "1", "0", .toNearestOrEven)
+ /* dqdvi307 */ self.divideint128("0.12", "1.0", "0", .toNearestOrEven)
+ /* dqdvi308 */ self.divideint128("0.12", "1.00", "0", .toNearestOrEven)
+ /* dqdvi309 */ self.divideint128("0.12", "1.0", "0", .toNearestOrEven)
+ /* dqdvi310 */ self.divideint128("0.12", "1.00", "0", .toNearestOrEven)
+ /* dqdvi311 */ self.divideint128("0.12", "2", "0", .toNearestOrEven)
+ /* dqdvi312 */ self.divideint128("0.12", "2.0", "0", .toNearestOrEven)
+ /* dqdvi313 */ self.divideint128("0.12", "2.1", "0", .toNearestOrEven)
+ /* dqdvi314 */ self.divideint128("0.12", "2.00", "0", .toNearestOrEven)
+ /* dqdvi315 */ self.divideint128("0.12", "2.01", "0", .toNearestOrEven)
+ /* dqdvi330 */ self.divideint128("1234567987654321987654321890123456", "10", "123456798765432198765432189012345", .toNearestOrEven)
+ /* dqdvi331 */ self.divideint128("1234567987654321987654321890123456", "1", "1234567987654321987654321890123456", .toNearestOrEven)
+ /* dqdvi332 */ self.divideint128("1234567987654321987654321890123456", "0.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi333 */ self.divideint128("1234567987654321987654321890123456", "0.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi401 */ self.divideint128("12345678000", "100", "123456780", .toNearestOrEven)
+ /* dqdvi402 */ self.divideint128("1", "12345678000", "0", .toNearestOrEven)
+ /* dqdvi403 */ self.divideint128("1234567800", "10", "123456780", .toNearestOrEven)
+ /* dqdvi404 */ self.divideint128("1", "1234567800", "0", .toNearestOrEven)
+ /* dqdvi405 */ self.divideint128("1234567890", "10", "123456789", .toNearestOrEven)
+ /* dqdvi406 */ self.divideint128("1", "1234567890", "0", .toNearestOrEven)
+ /* dqdvi407 */ self.divideint128("1234567891", "10", "123456789", .toNearestOrEven)
+ /* dqdvi408 */ self.divideint128("1", "1234567891", "0", .toNearestOrEven)
+ /* dqdvi409 */ self.divideint128("12345678901", "100", "123456789", .toNearestOrEven)
+ /* dqdvi410 */ self.divideint128("1", "12345678901", "0", .toNearestOrEven)
+ /* dqdvi411 */ self.divideint128("1234567896", "10", "123456789", .toNearestOrEven)
+ /* dqdvi412 */ self.divideint128("1", "1234567896", "0", .toNearestOrEven)
+ /* dqdvi413 */ self.divideint128("12345678948", "100", "123456789", .toNearestOrEven)
+ /* dqdvi414 */ self.divideint128("12345678949", "100", "123456789", .toNearestOrEven)
+ /* dqdvi415 */ self.divideint128("12345678950", "100", "123456789", .toNearestOrEven)
+ /* dqdvi416 */ self.divideint128("12345678951", "100", "123456789", .toNearestOrEven)
+ /* dqdvi417 */ self.divideint128("12345678999", "100", "123456789", .toNearestOrEven)
+ /* dqdvi441 */ self.divideint128("12345678000", "1", "12345678000", .toNearestOrEven)
+ /* dqdvi442 */ self.divideint128("1", "12345678000", "0", .toNearestOrEven)
+ /* dqdvi443 */ self.divideint128("1234567800", "1", "1234567800", .toNearestOrEven)
+ /* dqdvi444 */ self.divideint128("1", "1234567800", "0", .toNearestOrEven)
+ /* dqdvi445 */ self.divideint128("1234567890", "1", "1234567890", .toNearestOrEven)
+ /* dqdvi446 */ self.divideint128("1", "1234567890", "0", .toNearestOrEven)
+ /* dqdvi447 */ self.divideint128("1234567891", "1", "1234567891", .toNearestOrEven)
+ /* dqdvi448 */ self.divideint128("1", "1234567891", "0", .toNearestOrEven)
+ /* dqdvi449 */ self.divideint128("12345678901", "1", "12345678901", .toNearestOrEven)
+ /* dqdvi450 */ self.divideint128("1", "12345678901", "0", .toNearestOrEven)
+ /* dqdvi451 */ self.divideint128("1234567896", "1", "1234567896", .toNearestOrEven)
+ /* dqdvi452 */ self.divideint128("1", "1234567896", "0", .toNearestOrEven)
+ /* dqdvi531 */ self.divideint128("5.00", "1E-3", "5000", .toNearestOrEven)
+ /* dqdvi532 */ self.divideint128("00.00", "0.000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi533 */ self.divideint128("00.00", "0E-3", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi534 */ self.divideint128("0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi535 */ self.divideint128("-0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi536 */ self.divideint128("-0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi541 */ self.divideint128("0", "-1", "-0", .toNearestOrEven)
+ /* dqdvi542 */ self.divideint128("-0", "-1", "0", .toNearestOrEven)
+ /* dqdvi543 */ self.divideint128("0", "1", "0", .toNearestOrEven)
+ /* dqdvi544 */ self.divideint128("-0", "1", "-0", .toNearestOrEven)
+ /* dqdvi545 */ self.divideint128("-1", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi546 */ self.divideint128("-1", "-0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi547 */ self.divideint128("1", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi548 */ self.divideint128("1", "-0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi551 */ self.divideint128("0.0", "-1", "-0", .toNearestOrEven)
+ /* dqdvi552 */ self.divideint128("-0.0", "-1", "0", .toNearestOrEven)
+ /* dqdvi553 */ self.divideint128("0.0", "1", "0", .toNearestOrEven)
+ /* dqdvi554 */ self.divideint128("-0.0", "1", "-0", .toNearestOrEven)
+ /* dqdvi555 */ self.divideint128("-1.0", "0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi556 */ self.divideint128("-1.0", "-0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi557 */ self.divideint128("1.0", "0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi558 */ self.divideint128("1.0", "-0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi561 */ self.divideint128("0", "-1.0", "-0", .toNearestOrEven)
+ /* dqdvi562 */ self.divideint128("-0", "-1.0", "0", .toNearestOrEven)
+ /* dqdvi563 */ self.divideint128("0", "1.0", "0", .toNearestOrEven)
+ /* dqdvi564 */ self.divideint128("-0", "1.0", "-0", .toNearestOrEven)
+ /* dqdvi565 */ self.divideint128("-1", "0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi566 */ self.divideint128("-1", "-0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi567 */ self.divideint128("1", "0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi568 */ self.divideint128("1", "-0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi571 */ self.divideint128("0.0", "-1.0", "-0", .toNearestOrEven)
+ /* dqdvi572 */ self.divideint128("-0.0", "-1.0", "0", .toNearestOrEven)
+ /* dqdvi573 */ self.divideint128("0.0", "1.0", "0", .toNearestOrEven)
+ /* dqdvi574 */ self.divideint128("-0.0", "1.0", "-0", .toNearestOrEven)
+ /* dqdvi575 */ self.divideint128("-1.0", "0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi576 */ self.divideint128("-1.0", "-0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi577 */ self.divideint128("1.0", "0.0", "Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi578 */ self.divideint128("1.0", "-0.0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqdvi580 */ self.divideint128("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi581 */ self.divideint128("Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* dqdvi582 */ self.divideint128("Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* dqdvi583 */ self.divideint128("Inf", "-0", "-Infinity", .toNearestOrEven)
+ /* dqdvi584 */ self.divideint128("Inf", "0", "Infinity", .toNearestOrEven)
+ /* dqdvi585 */ self.divideint128("Inf", "1", "Infinity", .toNearestOrEven)
+ /* dqdvi586 */ self.divideint128("Inf", "1000", "Infinity", .toNearestOrEven)
+ /* dqdvi587 */ self.divideint128("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi588 */ self.divideint128("-1000", "Inf", "-0", .toNearestOrEven)
+ /* dqdvi589 */ self.divideint128("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi590 */ self.divideint128("-1", "Inf", "-0", .toNearestOrEven)
+ /* dqdvi591 */ self.divideint128("-0", "Inf", "-0", .toNearestOrEven)
+ /* dqdvi592 */ self.divideint128("0", "Inf", "0", .toNearestOrEven)
+ /* dqdvi593 */ self.divideint128("1", "Inf", "0", .toNearestOrEven)
+ /* dqdvi594 */ self.divideint128("1000", "Inf", "0", .toNearestOrEven)
+ /* dqdvi595 */ self.divideint128("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi600 */ self.divideint128("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi601 */ self.divideint128("-Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* dqdvi602 */ self.divideint128("-Inf", "-1", "Infinity", .toNearestOrEven)
+ /* dqdvi603 */ self.divideint128("-Inf", "-0", "Infinity", .toNearestOrEven)
+ /* dqdvi604 */ self.divideint128("-Inf", "0", "-Infinity", .toNearestOrEven)
+ /* dqdvi605 */ self.divideint128("-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* dqdvi606 */ self.divideint128("-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* dqdvi607 */ self.divideint128("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi608 */ self.divideint128("-1000", "Inf", "-0", .toNearestOrEven)
+ /* dqdvi609 */ self.divideint128("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi610 */ self.divideint128("-1", "-Inf", "0", .toNearestOrEven)
+ /* dqdvi611 */ self.divideint128("-0", "-Inf", "0", .toNearestOrEven)
+ /* dqdvi612 */ self.divideint128("0", "-Inf", "-0", .toNearestOrEven)
+ /* dqdvi613 */ self.divideint128("1", "-Inf", "-0", .toNearestOrEven)
+ /* dqdvi614 */ self.divideint128("1000", "-Inf", "-0", .toNearestOrEven)
+ /* dqdvi615 */ self.divideint128("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi621 */ self.divideint128("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* dqdvi622 */ self.divideint128("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* dqdvi623 */ self.divideint128("NaN", "-1", "NaN", .toNearestOrEven)
+ /* dqdvi624 */ self.divideint128("NaN", "-0", "NaN", .toNearestOrEven)
+ /* dqdvi625 */ self.divideint128("NaN", "0", "NaN", .toNearestOrEven)
+ /* dqdvi626 */ self.divideint128("NaN", "1", "NaN", .toNearestOrEven)
+ /* dqdvi627 */ self.divideint128("NaN", "1000", "NaN", .toNearestOrEven)
+ /* dqdvi628 */ self.divideint128("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* dqdvi629 */ self.divideint128("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* dqdvi630 */ self.divideint128("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqdvi631 */ self.divideint128("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqdvi632 */ self.divideint128("-1", "NaN", "NaN", .toNearestOrEven)
+ /* dqdvi633 */ self.divideint128("-0", "NaN", "NaN", .toNearestOrEven)
+ /* dqdvi634 */ self.divideint128("0", "NaN", "NaN", .toNearestOrEven)
+ /* dqdvi635 */ self.divideint128("1", "NaN", "NaN", .toNearestOrEven)
+ /* dqdvi636 */ self.divideint128("1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqdvi637 */ self.divideint128("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqdvi641 */ self.divideint128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi642 */ self.divideint128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi643 */ self.divideint128("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi644 */ self.divideint128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi645 */ self.divideint128("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi646 */ self.divideint128("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi647 */ self.divideint128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi648 */ self.divideint128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi649 */ self.divideint128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi650 */ self.divideint128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi651 */ self.divideint128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi652 */ self.divideint128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi653 */ self.divideint128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi654 */ self.divideint128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi655 */ self.divideint128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi656 */ self.divideint128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi657 */ self.divideint128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi658 */ self.divideint128("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi659 */ self.divideint128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi661 */ self.divideint128("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrEven)
+ /* dqdvi662 */ self.divideint128("NaN(0x8)", "1000", "NaN(0x8)", .toNearestOrEven)
+ /* dqdvi663 */ self.divideint128("NaN(0x7)", "Inf", "NaN(0x7)", .toNearestOrEven)
+ /* dqdvi664 */ self.divideint128("-NaN(0x6)", "NaN(0x5)", "-NaN(0x6)", .toNearestOrEven)
+ /* dqdvi665 */ self.divideint128("-Inf", "NaN(0x4)", "NaN(0x4)", .toNearestOrEven)
+ /* dqdvi666 */ self.divideint128("-1000", "NaN(0x3)", "NaN(0x3)", .toNearestOrEven)
+ /* dqdvi667 */ self.divideint128("Inf", "-NaN(0x2)", "-NaN(0x2)", .toNearestOrEven)
+ /* dqdvi671 */ self.divideint128("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi672 */ self.divideint128("sNaN(0x62)", "-1", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi673 */ self.divideint128("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi674 */ self.divideint128("sNaN(0x60)", "sNaN(0x5e)", "NaN(0x60)", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi675 */ self.divideint128("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi676 */ self.divideint128("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi677 */ self.divideint128("0", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi678 */ self.divideint128("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi679 */ self.divideint128("NaN", "sNaN(0x59)", "NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* dqdvi700 */ self.divideint128("8.336804418094040989630006819881709E-6143", "8.336804418094040989630006819889000E-6143", "0", .toNearestOrEven)
+ }
+
+ private func divideint128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = self.divideInt(arg0, by: arg1, rounding: rounding)
+ self.assertEqualByEqualEqual(result, expected, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveFusedMultiplyAddTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveFusedMultiplyAddTests.swift
new file mode 100644
index 0000000..b66c97b
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveFusedMultiplyAddTests.swift
@@ -0,0 +1,2749 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveFusedMultiplyAddTests: XCTestCase, SpeleotroveMixin {
+
+ func test_fma64() {
+ /* ddfma0001 */ self.fma64("1", "1", "1", "2", .toNearestOrEven)
+ /* ddfma0002 */ self.fma64("1", "1", "2", "3", .toNearestOrEven)
+ /* ddfma0003 */ self.fma64("2", "2", "3", "7", .toNearestOrEven)
+ /* ddfma0004 */ self.fma64("9", "9", "9", "90", .toNearestOrEven)
+ /* ddfma0005 */ self.fma64("-1", "1", "1", "0", .toNearestOrEven)
+ /* ddfma0006 */ self.fma64("-1", "1", "2", "1", .toNearestOrEven)
+ /* ddfma0007 */ self.fma64("-2", "2", "3", "-1", .toNearestOrEven)
+ /* ddfma0008 */ self.fma64("-9", "9", "9", "-72", .toNearestOrEven)
+ /* ddfma0011 */ self.fma64("1", "-1", "1", "0", .toNearestOrEven)
+ /* ddfma0012 */ self.fma64("1", "-1", "2", "1", .toNearestOrEven)
+ /* ddfma0013 */ self.fma64("2", "-2", "3", "-1", .toNearestOrEven)
+ /* ddfma0014 */ self.fma64("9", "-9", "9", "-72", .toNearestOrEven)
+ /* ddfma0015 */ self.fma64("1", "1", "-1", "0", .toNearestOrEven)
+ /* ddfma0016 */ self.fma64("1", "1", "-2", "-1", .toNearestOrEven)
+ /* ddfma0017 */ self.fma64("2", "2", "-3", "1", .toNearestOrEven)
+ /* ddfma0018 */ self.fma64("9", "9", "-9", "72", .toNearestOrEven)
+ /* ddfma0100 */ self.fma64("25.2", "63.6", "-438", "1164.72", .toNearestOrEven)
+ /* ddfma0101 */ self.fma64("0.301", "0.380", "334", "334.114380", .toNearestOrEven)
+ /* ddfma0102 */ self.fma64("49.2", "-4.8", "23.3", "-212.86", .toNearestOrEven)
+ /* ddfma0103 */ self.fma64("4.22", "0.079", "-94.6", "-94.26662", .toNearestOrEven)
+ /* ddfma0104 */ self.fma64("903", "0.797", "0.887", "720.578", .toNearestOrEven)
+ /* ddfma0105 */ self.fma64("6.13", "-161", "65.9", "-921.03", .toNearestOrEven)
+ /* ddfma0106 */ self.fma64("28.2", "727", "5.45", "20506.85", .toNearestOrEven)
+ /* ddfma0107 */ self.fma64("4", "605", "688", "3108", .toNearestOrEven)
+ /* ddfma0108 */ self.fma64("93.3", "0.19", "0.226", "17.953", .toNearestOrEven)
+ /* ddfma0109 */ self.fma64("0.169", "-341", "5.61", "-52.019", .toNearestOrEven)
+ /* ddfma0110 */ self.fma64("-72.2", "30", "-51.2", "-2217.2", .toNearestOrEven)
+ /* ddfma0111 */ self.fma64("-0.409", "13", "20.4", "15.083", .toNearestOrEven)
+ /* ddfma0112 */ self.fma64("317", "77.0", "19.0", "24428.0", .toNearestOrEven)
+ /* ddfma0113 */ self.fma64("47", "6.58", "1.62", "310.88", .toNearestOrEven)
+ /* ddfma0114 */ self.fma64("1.36", "0.984", "0.493", "1.83124", .toNearestOrEven)
+ /* ddfma0115 */ self.fma64("72.7", "274", "1.56", "19921.36", .toNearestOrEven)
+ /* ddfma0116 */ self.fma64("335", "847", "83", "283828", .toNearestOrEven)
+ /* ddfma0117 */ self.fma64("666", "0.247", "25.4", "189.902", .toNearestOrEven)
+ /* ddfma0118 */ self.fma64("-3.87", "3.06", "78.0", "66.1578", .toNearestOrEven)
+ /* ddfma0119 */ self.fma64("0.742", "192", "35.6", "178.064", .toNearestOrEven)
+ /* ddfma0120 */ self.fma64("-91.6", "5.29", "0.153", "-484.411", .toNearestOrEven)
+ /* ddfma0201 */ self.fma64("27583489.6645", "2582471078.04", "2593183.42371", "7.123356429257970E+16", .toNearestOrEven, .isInexact)
+ /* ddfma0208 */ self.fma64("24280.355566", "939577.397653", "2032.013252", "22813275328.80507", .toNearestOrEven, .isInexact)
+ /* ddfma0209 */ self.fma64("7848976432", "-2586831.2281", "137903.517909", "-2.030397734278061E+16", .toNearestOrEven, .isInexact)
+ /* ddfma0217 */ self.fma64("56890.388731", "35872030.4255", "339337.123410", "2040774094814.078", .toNearestOrEven, .isInexact)
+ /* ddfma0220 */ self.fma64("7533543.57445", "360317763928", "5073392.31638", "2.714469575205050E+18", .toNearestOrEven, .isInexact)
+ /* ddfma0223 */ self.fma64("739945255.563", "13672312784.1", "-994381.53572", "1.011676297716715E+19", .toNearestOrEven, .isInexact)
+ /* ddfma0224 */ self.fma64("-413510957218", "704729988550", "9234162614.0", "-2.914135721455314E+23", .toNearestOrEven, .isInexact)
+ /* ddfma0226 */ self.fma64("437484.00601", "598906432790", "894450638.442", "2.620119863365787E+17", .toNearestOrEven, .isInexact)
+ /* ddfma0253 */ self.fma64("73287556929", "173651305.784", "-358312568.389", "1.272647995808177E+19", .toNearestOrEven, .isInexact)
+ /* ddfma0257 */ self.fma64("203258304486", "-8628278.8066", "153127.446727", "-1.753769320861850E+18", .toNearestOrEven, .isInexact)
+ /* ddfma0260 */ self.fma64("42560533.1774", "-3643605282.86", "178277.96377", "-1.550737835263347E+17", .toNearestOrEven, .isInexact)
+ /* ddfma0269 */ self.fma64("142656587375", "203118879670", "604576103991", "2.897624620576004E+22", .toNearestOrEven, .isInexact)
+ /* ddfma0800 */ self.fma64("Inf", "Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddfma0801 */ self.fma64("Inf", "Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma0802 */ self.fma64("Inf", "-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma0803 */ self.fma64("Inf", "-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddfma0804 */ self.fma64("-Inf", "Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma0805 */ self.fma64("-Inf", "Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddfma0806 */ self.fma64("-Inf", "-Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddfma0807 */ self.fma64("-Inf", "-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma0900 */ self.fma64("NaN(0x2)", "NaN(0x3)", "NaN(0x5)", "NaN(0x2)", .toNearestOrEven)
+ /* ddfma0901 */ self.fma64("0", "NaN(0x3)", "NaN(0x5)", "NaN(0x3)", .toNearestOrEven)
+ /* ddfma0902 */ self.fma64("0", "0", "NaN(0x5)", "NaN(0x5)", .toNearestOrEven)
+ /* ddfma0903 */ self.fma64("sNaN(0x1)", "sNaN(0x2)", "sNaN(0x3)", "NaN(0x1)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma0904 */ self.fma64("0", "sNaN(0x2)", "sNaN(0x3)", "NaN(0x2)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma0905 */ self.fma64("0", "0", "sNaN(0x3)", "NaN(0x3)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma0906 */ self.fma64("sNaN(0x1)", "sNaN(0x2)", "sNaN(0x3)", "NaN(0x1)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma0907 */ self.fma64("NaN(0x7)", "sNaN(0x2)", "sNaN(0x3)", "NaN(0x2)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma0908 */ self.fma64("NaN(0x7)", "NaN(0x5)", "sNaN(0x3)", "NaN(0x3)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2000 */ self.fma64("2", "2", "0e+384", "4", .toNearestOrEven)
+ /* ddfma2001 */ self.fma64("2", "3", "0e+384", "6", .toNearestOrEven)
+ /* ddfma2002 */ self.fma64("5", "1", "0e+384", "5", .toNearestOrEven)
+ /* ddfma2003 */ self.fma64("5", "2", "0e+384", "10", .toNearestOrEven)
+ /* ddfma2004 */ self.fma64("1.20", "2", "0e+384", "2.40", .toNearestOrEven)
+ /* ddfma2005 */ self.fma64("1.20", "0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2006 */ self.fma64("1.20", "-2", "0e+384", "-2.40", .toNearestOrEven)
+ /* ddfma2007 */ self.fma64("-1.20", "2", "0e+384", "-2.40", .toNearestOrEven)
+ /* ddfma2008 */ self.fma64("-1.20", "0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2009 */ self.fma64("-1.20", "-2", "0e+384", "2.40", .toNearestOrEven)
+ /* ddfma2010 */ self.fma64("5.09", "7.1", "0e+384", "36.139", .toNearestOrEven)
+ /* ddfma2011 */ self.fma64("2.5", "4", "0e+384", "10.0", .toNearestOrEven)
+ /* ddfma2012 */ self.fma64("2.50", "4", "0e+384", "10.00", .toNearestOrEven)
+ /* ddfma2013 */ self.fma64("1.23456789", "1.00000000", "0e+384", "1.234567890000000", .toNearestOrEven)
+ /* ddfma2015 */ self.fma64("2.50", "4", "0e+384", "10.00", .toNearestOrEven)
+ /* ddfma2016 */ self.fma64("9.999999999", "9.999999999", "0e+384", "99.99999998000000", .toNearestOrEven, .isInexact)
+ /* ddfma2017 */ self.fma64("9.999999999", "-9.999999999", "0e+384", "-99.99999998000000", .toNearestOrEven, .isInexact)
+ /* ddfma2018 */ self.fma64("-9.999999999", "9.999999999", "0e+384", "-99.99999998000000", .toNearestOrEven, .isInexact)
+ /* ddfma2019 */ self.fma64("-9.999999999", "-9.999999999", "0e+384", "99.99999998000000", .toNearestOrEven, .isInexact)
+ /* ddfma2021 */ self.fma64("0", "0", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2022 */ self.fma64("0", "-0", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2023 */ self.fma64("-0", "0", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2024 */ self.fma64("-0", "-0", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2025 */ self.fma64("-0.0", "-0.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2026 */ self.fma64("-0.0", "-0.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2027 */ self.fma64("-0.0", "-0.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2028 */ self.fma64("-0.0", "-0.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2030 */ self.fma64("5.00", "1E-3", "0e+384", "0.00500", .toNearestOrEven)
+ /* ddfma2031 */ self.fma64("00.00", "0.000", "0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2032 */ self.fma64("00.00", "0E-3", "0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2033 */ self.fma64("0E-3", "00.00", "0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2034 */ self.fma64("-5.00", "1E-3", "0e+384", "-0.00500", .toNearestOrEven)
+ /* ddfma2035 */ self.fma64("-00.00", "0.000", "0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2036 */ self.fma64("-00.00", "0E-3", "0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2037 */ self.fma64("-0E-3", "00.00", "0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2038 */ self.fma64("5.00", "-1E-3", "0e+384", "-0.00500", .toNearestOrEven)
+ /* ddfma2039 */ self.fma64("00.00", "-0.000", "0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2040 */ self.fma64("00.00", "-0E-3", "0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2041 */ self.fma64("0E-3", "-00.00", "0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2042 */ self.fma64("-5.00", "-1E-3", "0e+384", "0.00500", .toNearestOrEven)
+ /* ddfma2043 */ self.fma64("-00.00", "-0.000", "0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2044 */ self.fma64("-00.00", "-0E-3", "0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2045 */ self.fma64("-0E-3", "-00.00", "-0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2046 */ self.fma64("-0E-3", "00.00", "-0e+384", "-0.00000", .toNearestOrEven)
+ /* ddfma2047 */ self.fma64("0E-3", "-00.00", "-0e+384", "-0.00000", .toNearestOrEven)
+ /* ddfma2048 */ self.fma64("0E-3", "00.00", "-0e+384", "0.00000", .toNearestOrEven)
+ /* ddfma2050 */ self.fma64("1.20", "3", "0e+384", "3.60", .toNearestOrEven)
+ /* ddfma2051 */ self.fma64("7", "3", "0e+384", "21", .toNearestOrEven)
+ /* ddfma2052 */ self.fma64("0.9", "0.8", "0e+384", "0.72", .toNearestOrEven)
+ /* ddfma2053 */ self.fma64("0.9", "-0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2054 */ self.fma64("654321", "654321", "0e+384", "428135971041", .toNearestOrEven)
+ /* ddfma2060 */ self.fma64("123.45", "1e7", "0e+384", "1.2345E+9", .toNearestOrEven)
+ /* ddfma2061 */ self.fma64("123.45", "1e8", "0e+384", "1.2345E+10", .toNearestOrEven)
+ /* ddfma2062 */ self.fma64("123.45", "1e+9", "0e+384", "1.2345E+11", .toNearestOrEven)
+ /* ddfma2063 */ self.fma64("123.45", "1e10", "0e+384", "1.2345E+12", .toNearestOrEven)
+ /* ddfma2064 */ self.fma64("123.45", "1e11", "0e+384", "1.2345E+13", .toNearestOrEven)
+ /* ddfma2065 */ self.fma64("123.45", "1e12", "0e+384", "1.2345E+14", .toNearestOrEven)
+ /* ddfma2066 */ self.fma64("123.45", "1e13", "0e+384", "1.2345E+15", .toNearestOrEven)
+ /* ddfma2080 */ self.fma64("0.1", "1230123456456789", "0e+384", "123012345645678.9", .toNearestOrEven)
+ /* ddfma2084 */ self.fma64("0.1", "1230123456456789", "0e+384", "123012345645678.9", .toNearestOrEven)
+ /* ddfma2090 */ self.fma64("1230123456456789", "0.1", "0e+384", "123012345645678.9", .toNearestOrEven)
+ /* ddfma2094 */ self.fma64("1230123456456789", "0.1", "0e+384", "123012345645678.9", .toNearestOrEven)
+ /* ddfma2101 */ self.fma64("9", "9", "0e+384", "81", .toNearestOrEven)
+ /* ddfma2102 */ self.fma64("9", "90", "0e+384", "810", .toNearestOrEven)
+ /* ddfma2103 */ self.fma64("9", "900", "0e+384", "8100", .toNearestOrEven)
+ /* ddfma2104 */ self.fma64("9", "9000", "0e+384", "81000", .toNearestOrEven)
+ /* ddfma2105 */ self.fma64("9", "90000", "0e+384", "810000", .toNearestOrEven)
+ /* ddfma2106 */ self.fma64("9", "900000", "0e+384", "8100000", .toNearestOrEven)
+ /* ddfma2107 */ self.fma64("9", "9000000", "0e+384", "81000000", .toNearestOrEven)
+ /* ddfma2108 */ self.fma64("9", "90000000", "0e+384", "810000000", .toNearestOrEven)
+ /* ddfma2109 */ self.fma64("9", "900000000", "0e+384", "8100000000", .toNearestOrEven)
+ /* ddfma2110 */ self.fma64("9", "9000000000", "0e+384", "81000000000", .toNearestOrEven)
+ /* ddfma2111 */ self.fma64("9", "90000000000", "0e+384", "810000000000", .toNearestOrEven)
+ /* ddfma2112 */ self.fma64("9", "900000000000", "0e+384", "8100000000000", .toNearestOrEven)
+ /* ddfma2113 */ self.fma64("9", "9000000000000", "0e+384", "81000000000000", .toNearestOrEven)
+ /* ddfma2114 */ self.fma64("9", "90000000000000", "0e+384", "810000000000000", .toNearestOrEven)
+ /* ddfma2115 */ self.fma64("9", "900000000000000", "0e+384", "8100000000000000", .toNearestOrEven)
+ /* ddfma2131 */ self.fma64("3", "3", "0e+384", "9", .toNearestOrEven)
+ /* ddfma2132 */ self.fma64("3", "30", "0e+384", "90", .toNearestOrEven)
+ /* ddfma2133 */ self.fma64("3", "300", "0e+384", "900", .toNearestOrEven)
+ /* ddfma2134 */ self.fma64("3", "3000", "0e+384", "9000", .toNearestOrEven)
+ /* ddfma2135 */ self.fma64("3", "30000", "0e+384", "90000", .toNearestOrEven)
+ /* ddfma2136 */ self.fma64("3", "300000", "0e+384", "900000", .toNearestOrEven)
+ /* ddfma2137 */ self.fma64("3", "3000000", "0e+384", "9000000", .toNearestOrEven)
+ /* ddfma2138 */ self.fma64("3", "30000000", "0e+384", "90000000", .toNearestOrEven)
+ /* ddfma2139 */ self.fma64("3", "300000000", "0e+384", "900000000", .toNearestOrEven)
+ /* ddfma2140 */ self.fma64("3", "3000000000", "0e+384", "9000000000", .toNearestOrEven)
+ /* ddfma2141 */ self.fma64("3", "30000000000", "0e+384", "90000000000", .toNearestOrEven)
+ /* ddfma2142 */ self.fma64("3", "300000000000", "0e+384", "900000000000", .toNearestOrEven)
+ /* ddfma2143 */ self.fma64("3", "3000000000000", "0e+384", "9000000000000", .toNearestOrEven)
+ /* ddfma2144 */ self.fma64("3", "30000000000000", "0e+384", "90000000000000", .toNearestOrEven)
+ /* ddfma2145 */ self.fma64("3", "300000000000000", "0e+384", "900000000000000", .toNearestOrEven)
+ /* ddfma2301 */ self.fma64("9", "9", "0e+384", "81", .toNearestOrEven)
+ /* ddfma2302 */ self.fma64("9", "90", "0e+384", "810", .toNearestOrEven)
+ /* ddfma2303 */ self.fma64("9", "900", "0e+384", "8100", .toNearestOrEven)
+ /* ddfma2304 */ self.fma64("9", "9000", "0e+384", "81000", .toNearestOrEven)
+ /* ddfma2305 */ self.fma64("9", "90000", "0e+384", "810000", .toNearestOrEven)
+ /* ddfma2306 */ self.fma64("9", "900000", "0e+384", "8100000", .toNearestOrEven)
+ /* ddfma2307 */ self.fma64("9", "9000000", "0e+384", "81000000", .toNearestOrEven)
+ /* ddfma2308 */ self.fma64("9", "90000000", "0e+384", "810000000", .toNearestOrEven)
+ /* ddfma2309 */ self.fma64("9", "900000000", "0e+384", "8100000000", .toNearestOrEven)
+ /* ddfma2310 */ self.fma64("9", "9000000000", "0e+384", "81000000000", .toNearestOrEven)
+ /* ddfma2311 */ self.fma64("9", "90000000000", "0e+384", "810000000000", .toNearestOrEven)
+ /* ddfma2312 */ self.fma64("9", "900000000000", "0e+384", "8100000000000", .toNearestOrEven)
+ /* ddfma2313 */ self.fma64("9", "9000000000000", "0e+384", "81000000000000", .toNearestOrEven)
+ /* ddfma2314 */ self.fma64("9", "90000000000000", "0e+384", "810000000000000", .toNearestOrEven)
+ /* ddfma2315 */ self.fma64("9", "900000000000000", "0e+384", "8100000000000000", .toNearestOrEven)
+ /* ddfma2316 */ self.fma64("9", "9000000000000000", "0e+384", "8.100000000000000E+16", .toNearestOrEven)
+ /* ddfma2317 */ self.fma64("90", "9000000000000000", "0e+384", "8.100000000000000E+17", .toNearestOrEven)
+ /* ddfma2318 */ self.fma64("900", "9000000000000000", "0e+384", "8.100000000000000E+18", .toNearestOrEven)
+ /* ddfma2319 */ self.fma64("9000", "9000000000000000", "0e+384", "8.100000000000000E+19", .toNearestOrEven)
+ /* ddfma2320 */ self.fma64("90000", "9000000000000000", "0e+384", "8.100000000000000E+20", .toNearestOrEven)
+ /* ddfma2321 */ self.fma64("900000", "9000000000000000", "0e+384", "8.100000000000000E+21", .toNearestOrEven)
+ /* ddfma2322 */ self.fma64("9000000", "9000000000000000", "0e+384", "8.100000000000000E+22", .toNearestOrEven)
+ /* ddfma2323 */ self.fma64("90000000", "9000000000000000", "0e+384", "8.100000000000000E+23", .toNearestOrEven)
+ /* ddfma2504 */ self.fma64("0E-260", "1000E-260", "0e+384", "0E-398", .toNearestOrEven)
+ /* ddfma2505 */ self.fma64("100E+260", "0E+260", "0e+384", "0E+369", .toNearestOrEven)
+ /* ddfma2541 */ self.fma64("0", "-1", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2542 */ self.fma64("-0", "-1", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2543 */ self.fma64("0", "1", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2544 */ self.fma64("-0", "1", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2545 */ self.fma64("-1", "0", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2546 */ self.fma64("-1", "-0", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2547 */ self.fma64("1", "0", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2548 */ self.fma64("1", "-0", "0e+384", "0", .toNearestOrEven)
+ /* ddfma2551 */ self.fma64("0.0", "-1", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2552 */ self.fma64("-0.0", "-1", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2553 */ self.fma64("0.0", "1", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2554 */ self.fma64("-0.0", "1", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2555 */ self.fma64("-1.0", "0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2556 */ self.fma64("-1.0", "-0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2557 */ self.fma64("1.0", "0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2558 */ self.fma64("1.0", "-0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2561 */ self.fma64("0", "-1.0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2562 */ self.fma64("-0", "-1.0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2563 */ self.fma64("0", "1.0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2564 */ self.fma64("-0", "1.0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2565 */ self.fma64("-1", "0.0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2566 */ self.fma64("-1", "-0.0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2567 */ self.fma64("1", "0.0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2568 */ self.fma64("1", "-0.0", "0e+384", "0.0", .toNearestOrEven)
+ /* ddfma2571 */ self.fma64("0.0", "-1.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2572 */ self.fma64("-0.0", "-1.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2573 */ self.fma64("0.0", "1.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2574 */ self.fma64("-0.0", "1.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2575 */ self.fma64("-1.0", "0.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2576 */ self.fma64("-1.0", "-0.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2577 */ self.fma64("1.0", "0.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2578 */ self.fma64("1.0", "-0.0", "0e+384", "0.00", .toNearestOrEven)
+ /* ddfma2580 */ self.fma64("Inf", "-Inf", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2581 */ self.fma64("Inf", "-1000", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2582 */ self.fma64("Inf", "-1", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2583 */ self.fma64("Inf", "-0", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2584 */ self.fma64("Inf", "0", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2585 */ self.fma64("Inf", "1", "0e+384", "Infinity", .toNearestOrEven)
+ /* ddfma2586 */ self.fma64("Inf", "1000", "0e+384", "Infinity", .toNearestOrEven)
+ /* ddfma2587 */ self.fma64("Inf", "Inf", "0e+384", "Infinity", .toNearestOrEven)
+ /* ddfma2588 */ self.fma64("-1000", "Inf", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2589 */ self.fma64("-Inf", "Inf", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2590 */ self.fma64("-1", "Inf", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2591 */ self.fma64("-0", "Inf", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2592 */ self.fma64("0", "Inf", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2593 */ self.fma64("1", "Inf", "0e+384", "Infinity", .toNearestOrEven)
+ /* ddfma2594 */ self.fma64("1000", "Inf", "0e+384", "Infinity", .toNearestOrEven)
+ /* ddfma2595 */ self.fma64("Inf", "Inf", "0e+384", "Infinity", .toNearestOrEven)
+ /* ddfma2600 */ self.fma64("-Inf", "-Inf", "0e+384", "Infinity", .toNearestOrEven)
+ /* ddfma2601 */ self.fma64("-Inf", "-1000", "0e+384", "Infinity", .toNearestOrEven)
+ /* ddfma2602 */ self.fma64("-Inf", "-1", "0e+384", "Infinity", .toNearestOrEven)
+ /* ddfma2603 */ self.fma64("-Inf", "-0", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2604 */ self.fma64("-Inf", "0", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2605 */ self.fma64("-Inf", "1", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2606 */ self.fma64("-Inf", "1000", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2607 */ self.fma64("-Inf", "Inf", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2608 */ self.fma64("-1000", "Inf", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2609 */ self.fma64("-Inf", "-Inf", "0e+384", "Infinity", .toNearestOrEven)
+ /* ddfma2610 */ self.fma64("-1", "-Inf", "0e+384", "Infinity", .toNearestOrEven)
+ /* ddfma2611 */ self.fma64("-0", "-Inf", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2612 */ self.fma64("0", "-Inf", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2613 */ self.fma64("1", "-Inf", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2614 */ self.fma64("1000", "-Inf", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2615 */ self.fma64("Inf", "-Inf", "0e+384", "-Infinity", .toNearestOrEven)
+ /* ddfma2621 */ self.fma64("NaN", "-Inf", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2622 */ self.fma64("NaN", "-1000", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2623 */ self.fma64("NaN", "-1", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2624 */ self.fma64("NaN", "-0", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2625 */ self.fma64("NaN", "0", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2626 */ self.fma64("NaN", "1", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2627 */ self.fma64("NaN", "1000", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2628 */ self.fma64("NaN", "Inf", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2629 */ self.fma64("NaN", "NaN", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2630 */ self.fma64("-Inf", "NaN", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2631 */ self.fma64("-1000", "NaN", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2632 */ self.fma64("-1", "NaN", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2633 */ self.fma64("-0", "NaN", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2634 */ self.fma64("0", "NaN", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2635 */ self.fma64("1", "NaN", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2636 */ self.fma64("1000", "NaN", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2637 */ self.fma64("Inf", "NaN", "0e+384", "NaN", .toNearestOrEven)
+ /* ddfma2641 */ self.fma64("sNaN", "-Inf", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2642 */ self.fma64("sNaN", "-1000", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2643 */ self.fma64("sNaN", "-1", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2644 */ self.fma64("sNaN", "-0", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2645 */ self.fma64("sNaN", "0", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2646 */ self.fma64("sNaN", "1", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2647 */ self.fma64("sNaN", "1000", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2648 */ self.fma64("sNaN", "NaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2649 */ self.fma64("sNaN", "sNaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2650 */ self.fma64("NaN", "sNaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2651 */ self.fma64("-Inf", "sNaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2652 */ self.fma64("-1000", "sNaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2653 */ self.fma64("-1", "sNaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2654 */ self.fma64("-0", "sNaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2655 */ self.fma64("0", "sNaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2656 */ self.fma64("1", "sNaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2657 */ self.fma64("1000", "sNaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2658 */ self.fma64("Inf", "sNaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2659 */ self.fma64("NaN", "sNaN", "0e+384", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2661 */ self.fma64("NaN(0x9)", "-Inf", "0e+384", "NaN(0x9)", .toNearestOrEven)
+ /* ddfma2662 */ self.fma64("NaN(0x8)", "999", "0e+384", "NaN(0x8)", .toNearestOrEven)
+ /* ddfma2663 */ self.fma64("NaN(0x47)", "Inf", "0e+384", "NaN(0x47)", .toNearestOrEven)
+ /* ddfma2664 */ self.fma64("NaN(0x6)", "NaN(0x5)", "0e+384", "NaN(0x6)", .toNearestOrEven)
+ /* ddfma2665 */ self.fma64("-Inf", "NaN(0x4)", "0e+384", "NaN(0x4)", .toNearestOrEven)
+ /* ddfma2666 */ self.fma64("-999", "NaN(0x21)", "0e+384", "NaN(0x21)", .toNearestOrEven)
+ /* ddfma2667 */ self.fma64("Inf", "NaN(0x2)", "0e+384", "NaN(0x2)", .toNearestOrEven)
+ /* ddfma2671 */ self.fma64("sNaN(0x63)", "-Inf", "0e+384", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2672 */ self.fma64("sNaN(0x62)", "-11", "0e+384", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2673 */ self.fma64("sNaN(0x61)", "NaN", "0e+384", "NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2674 */ self.fma64("sNaN(0x10)", "sNaN(0x5e)", "0e+384", "NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2675 */ self.fma64("NaN(0x5f)", "sNaN(0x5d)", "0e+384", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2676 */ self.fma64("-Inf", "sNaN(0x5c)", "0e+384", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2677 */ self.fma64("088", "sNaN(0x5b)", "0e+384", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2678 */ self.fma64("Inf", "sNaN(0x5a)", "0e+384", "NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2679 */ self.fma64("NaN", "sNaN(0x59)", "0e+384", "NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2681 */ self.fma64("-NaN(0x9)", "-Inf", "0e+384", "-NaN(0x9)", .toNearestOrEven)
+ /* ddfma2682 */ self.fma64("-NaN(0x8)", "999", "0e+384", "-NaN(0x8)", .toNearestOrEven)
+ /* ddfma2683 */ self.fma64("-NaN(0x47)", "Inf", "0e+384", "-NaN(0x47)", .toNearestOrEven)
+ /* ddfma2684 */ self.fma64("-NaN(0x6)", "-NaN(0x5)", "0e+384", "-NaN(0x6)", .toNearestOrEven)
+ /* ddfma2685 */ self.fma64("-Inf", "-NaN(0x4)", "0e+384", "-NaN(0x4)", .toNearestOrEven)
+ /* ddfma2686 */ self.fma64("-999", "-NaN(0x21)", "0e+384", "-NaN(0x21)", .toNearestOrEven)
+ /* ddfma2687 */ self.fma64("Inf", "-NaN(0x2)", "0e+384", "-NaN(0x2)", .toNearestOrEven)
+ /* ddfma2691 */ self.fma64("-sNaN(0x63)", "-Inf", "0e+384", "-NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2692 */ self.fma64("-sNaN(0x62)", "-11", "0e+384", "-NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2693 */ self.fma64("-sNaN(0x61)", "NaN", "0e+384", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2694 */ self.fma64("-sNaN(0x10)", "-sNaN(0x5e)", "0e+384", "-NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2695 */ self.fma64("-NaN(0x5f)", "-sNaN(0x5d)", "0e+384", "-NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2696 */ self.fma64("-Inf", "-sNaN(0x5c)", "0e+384", "-NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2697 */ self.fma64("088", "-sNaN(0x5b)", "0e+384", "-NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2698 */ self.fma64("Inf", "-sNaN(0x5a)", "0e+384", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2699 */ self.fma64("-NaN", "-sNaN(0x59)", "0e+384", "-NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2701 */ self.fma64("-NaN", "-Inf", "0e+384", "-NaN", .toNearestOrEven)
+ /* ddfma2702 */ self.fma64("-NaN", "999", "0e+384", "-NaN", .toNearestOrEven)
+ /* ddfma2703 */ self.fma64("-NaN", "Inf", "0e+384", "-NaN", .toNearestOrEven)
+ /* ddfma2704 */ self.fma64("-NaN", "-NaN", "0e+384", "-NaN", .toNearestOrEven)
+ /* ddfma2705 */ self.fma64("-Inf", "-NaN(0x0)", "0e+384", "-NaN", .toNearestOrEven)
+ /* ddfma2706 */ self.fma64("-999", "-NaN", "0e+384", "-NaN", .toNearestOrEven)
+ /* ddfma2707 */ self.fma64("Inf", "-NaN", "0e+384", "-NaN", .toNearestOrEven)
+ /* ddfma2711 */ self.fma64("-sNaN", "-Inf", "0e+384", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2712 */ self.fma64("-sNaN", "-11", "0e+384", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2713 */ self.fma64("-sNaN(0x0)", "NaN", "0e+384", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2714 */ self.fma64("-sNaN", "-sNaN", "0e+384", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2715 */ self.fma64("-NaN", "-sNaN", "0e+384", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2716 */ self.fma64("-Inf", "-sNaN", "0e+384", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2717 */ self.fma64("088", "-sNaN", "0e+384", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2718 */ self.fma64("Inf", "-sNaN", "0e+384", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2719 */ self.fma64("-NaN", "-sNaN", "0e+384", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma2751 */ self.fma64("1e+277", "1e+311", "0e+384", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2752 */ self.fma64("1e+277", "-1e+311", "0e+384", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2753 */ self.fma64("-1e+277", "1e+311", "0e+384", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2754 */ self.fma64("-1e+277", "-1e+311", "0e+384", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2755 */ self.fma64("1e-277", "1e-311", "0e+384", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2756 */ self.fma64("1e-277", "-1e-311", "0e+384", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2757 */ self.fma64("-1e-277", "1e-311", "0e+384", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2758 */ self.fma64("-1e-277", "-1e-311", "0e+384", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2760 */ self.fma64("1e-291", "1e-101", "0e+384", "1E-392", .toNearestOrEven)
+ /* ddfma2761 */ self.fma64("1e-291", "1e-102", "0e+384", "1E-393", .toNearestOrEven)
+ /* ddfma2762 */ self.fma64("1e-291", "1e-103", "0e+384", "1E-394", .toNearestOrEven)
+ /* ddfma2763 */ self.fma64("1e-291", "1e-104", "0e+384", "1E-395", .toNearestOrEven)
+ /* ddfma2764 */ self.fma64("1e-291", "1e-105", "0e+384", "1E-396", .toNearestOrEven)
+ /* ddfma2765 */ self.fma64("1e-291", "1e-106", "0e+384", "1E-397", .toNearestOrEven)
+ /* ddfma2766 */ self.fma64("1e-291", "1e-107", "0e+384", "1E-398", .toNearestOrEven)
+ /* ddfma2767 */ self.fma64("1e-291", "1e-108", "0e+384", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2768 */ self.fma64("1e-291", "1e-109", "0e+384", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2769 */ self.fma64("1e-291", "1e-110", "0e+384", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2770 */ self.fma64("1e+60", "1e+321", "0e+384", "1.000000000000E+381", .toNearestOrEven)
+ /* ddfma2771 */ self.fma64("1e+60", "1e+322", "0e+384", "1.0000000000000E+382", .toNearestOrEven)
+ /* ddfma2772 */ self.fma64("1e+60", "1e+323", "0e+384", "1.00000000000000E+383", .toNearestOrEven)
+ /* ddfma2773 */ self.fma64("1e+60", "1e+324", "0e+384", "1.000000000000000E+384", .toNearestOrEven)
+ /* ddfma2774 */ self.fma64("1e+60", "1e+325", "0e+384", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2775 */ self.fma64("1e+60", "1e+326", "0e+384", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2776 */ self.fma64("1e+60", "1e+327", "0e+384", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2777 */ self.fma64("1e+60", "1e+328", "0e+384", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2778 */ self.fma64("1e+60", "1e+329", "0e+384", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2779 */ self.fma64("1e+60", "1e+330", "0e+384", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2801 */ self.fma64("1.0000E-394", "1", "0e+384", "1.0000E-394", .toNearestOrEven)
+ /* ddfma2802 */ self.fma64("1.000E-394", "1e-1", "0e+384", "1.000E-395", .toNearestOrEven)
+ /* ddfma2803 */ self.fma64("1.00E-394", "1e-2", "0e+384", "1.00E-396", .toNearestOrEven)
+ /* ddfma2804 */ self.fma64("1.0E-394", "1e-3", "0e+384", "1.0E-397", .toNearestOrEven)
+ /* ddfma2805 */ self.fma64("1.0E-394", "1e-4", "0e+384", "1E-398", .toNearestOrEven)
+ /* ddfma2806 */ self.fma64("1.3E-394", "1e-4", "0e+384", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2807 */ self.fma64("1.5E-394", "1e-4", "0e+384", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2808 */ self.fma64("1.7E-394", "1e-4", "0e+384", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2809 */ self.fma64("2.3E-394", "1e-4", "0e+384", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2810 */ self.fma64("2.5E-394", "1e-4", "0e+384", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2811 */ self.fma64("2.7E-394", "1e-4", "0e+384", "3E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2812 */ self.fma64("1.49E-394", "1e-4", "0e+384", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2813 */ self.fma64("1.50E-394", "1e-4", "0e+384", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2814 */ self.fma64("1.51E-394", "1e-4", "0e+384", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2815 */ self.fma64("2.49E-394", "1e-4", "0e+384", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2816 */ self.fma64("2.50E-394", "1e-4", "0e+384", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2817 */ self.fma64("2.51E-394", "1e-4", "0e+384", "3E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2818 */ self.fma64("1E-394", "1e-4", "0e+384", "1E-398", .toNearestOrEven)
+ /* ddfma2819 */ self.fma64("3E-394", "1e-5", "0e+384", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2820 */ self.fma64("5E-394", "1e-5", "0e+384", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2821 */ self.fma64("7E-394", "1e-5", "0e+384", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2822 */ self.fma64("9E-394", "1e-5", "0e+384", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2823 */ self.fma64("9.9E-394", "1e-5", "0e+384", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2824 */ self.fma64("1E-394", "-1e-4", "0e+384", "-1E-398", .toNearestOrEven)
+ /* ddfma2825 */ self.fma64("3E-394", "-1e-5", "0e+384", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2826 */ self.fma64("-5E-394", "1e-5", "0e+384", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2827 */ self.fma64("7E-394", "-1e-5", "0e+384", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2828 */ self.fma64("-9E-394", "1e-5", "0e+384", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2829 */ self.fma64("9.9E-394", "-1e-5", "0e+384", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2830 */ self.fma64("3.0E-394", "-1e-5", "0e+384", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2831 */ self.fma64("1.0E-199", "1e-200", "0e+384", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2832 */ self.fma64("1.0E-199", "1e-199", "0e+384", "1E-398", .toNearestOrEven)
+ /* ddfma2833 */ self.fma64("1.0E-199", "1e-198", "0e+384", "1.0E-397", .toNearestOrEven)
+ /* ddfma2834 */ self.fma64("2.0E-199", "2e-198", "0e+384", "4.0E-397", .toNearestOrEven)
+ /* ddfma2835 */ self.fma64("4.0E-199", "4e-198", "0e+384", "1.60E-396", .toNearestOrEven)
+ /* ddfma2836 */ self.fma64("10.0E-199", "10e-198", "0e+384", "1.000E-395", .toNearestOrEven)
+ /* ddfma2837 */ self.fma64("30.0E-199", "30e-198", "0e+384", "9.000E-395", .toNearestOrEven)
+ /* ddfma2838 */ self.fma64("40.0E-199", "40e-188", "0e+384", "1.6000E-384", .toNearestOrEven)
+ /* ddfma2839 */ self.fma64("40.0E-199", "40e-187", "0e+384", "1.6000E-383", .toNearestOrEven)
+ /* ddfma2840 */ self.fma64("40.0E-199", "40e-186", "0e+384", "1.6000E-382", .toNearestOrEven)
+ /* ddfma2870 */ self.fma64("100", "9.999E+383", "0e+384", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2871 */ self.fma64("100", "-9.999E+383", "0e+384", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2872 */ self.fma64("9.999E+383", "100", "0e+384", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2873 */ self.fma64("-9.999E+383", "100", "0e+384", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma2881 */ self.fma64("1.2347E-355", "1.2347E-40", "0e+384", "1.524E-395", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2882 */ self.fma64("1.234E-355", "1.234E-40", "0e+384", "1.523E-395", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2883 */ self.fma64("1.23E-355", "1.23E-40", "0e+384", "1.513E-395", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2884 */ self.fma64("1.2E-355", "1.2E-40", "0e+384", "1.44E-395", .toNearestOrEven)
+ /* ddfma2885 */ self.fma64("1.2E-355", "1.2E-41", "0e+384", "1.44E-396", .toNearestOrEven)
+ /* ddfma2886 */ self.fma64("1.2E-355", "1.2E-42", "0e+384", "1.4E-397", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2887 */ self.fma64("1.2E-355", "1.3E-42", "0e+384", "1.6E-397", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2888 */ self.fma64("1.3E-355", "1.3E-42", "0e+384", "1.7E-397", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2889 */ self.fma64("1.3E-355", "1.3E-43", "0e+384", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2890 */ self.fma64("1.3E-356", "1.3E-43", "0e+384", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2891 */ self.fma64("1.2345E-39", "1.234E-355", "0e+384", "1.5234E-394", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2892 */ self.fma64("1.23456E-39", "1.234E-355", "0e+384", "1.5234E-394", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2893 */ self.fma64("1.2345E-40", "1.234E-355", "0e+384", "1.523E-395", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2894 */ self.fma64("1.23456E-40", "1.234E-355", "0e+384", "1.523E-395", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2895 */ self.fma64("1.2345E-41", "1.234E-355", "0e+384", "1.52E-396", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2896 */ self.fma64("1.23456E-41", "1.234E-355", "0e+384", "1.52E-396", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2900 */ self.fma64("0.3000000000E-191", "0.3000000000E-191", "0e+384", "9.00000000000000E-384", .toNearestOrEven)
+ /* ddfma2901 */ self.fma64("0.3000000001E-191", "0.3000000001E-191", "0e+384", "9.00000000600000E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2902 */ self.fma64("9.999999999999999E-383", "0.0999999999999", "0e+384", "9.99999999999000E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2903 */ self.fma64("9.999999999999999E-383", "0.09999999999999", "0e+384", "9.99999999999900E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2904 */ self.fma64("9.999999999999999E-383", "0.099999999999999", "0e+384", "9.99999999999990E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2905 */ self.fma64("9.999999999999999E-383", "0.0999999999999999", "0e+384", "9.99999999999999E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2906 */ self.fma64("9.999999999999999E-383", "1", "0e+384", "9.999999999999999E-383", .toNearestOrEven)
+ /* ddfma2907 */ self.fma64("1", "0.09999999999999999", "0e+384", "0.09999999999999999", .toNearestOrEven)
+ /* ddfma2908 */ self.fma64("9.999999999999999E-383", "0.09999999999999999", "0e+384", "1.000000000000000E-383", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddfma2909 */ self.fma64("9999999999999999", "9999999999999999", "0e+384", "9.999999999999998E+31", .toNearestOrEven, .isInexact)
+ /* ddfma3001 */ self.fma64("1", "1", "1", "2", .toNearestOrEven)
+ /* ddfma3002 */ self.fma64("1", "2", "3", "5", .toNearestOrEven)
+ /* ddfma3003 */ self.fma64("1", "5.75", "3.3", "9.05", .toNearestOrEven)
+ /* ddfma3004 */ self.fma64("1", "5", "-3", "2", .toNearestOrEven)
+ /* ddfma3005 */ self.fma64("1", "-5", "-3", "-8", .toNearestOrEven)
+ /* ddfma3006 */ self.fma64("1", "-7", "2.5", "-4.5", .toNearestOrEven)
+ /* ddfma3007 */ self.fma64("1", "0.7", "0.3", "1.0", .toNearestOrEven)
+ /* ddfma3008 */ self.fma64("1", "1.25", "1.25", "2.50", .toNearestOrEven)
+ /* ddfma3009 */ self.fma64("1", "1.23456789", "1.00000000", "2.23456789", .toNearestOrEven)
+ /* ddfma3010 */ self.fma64("1", "1.23456789", "1.00000011", "2.23456800", .toNearestOrEven)
+ /* ddfma3011 */ self.fma64("1", "0.4444444444444446", "0.5555555555555555", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3012 */ self.fma64("1", "0.4444444444444445", "0.5555555555555555", "1.000000000000000", .toNearestOrEven)
+ /* ddfma3013 */ self.fma64("1", "0.4444444444444444", "0.5555555555555555", "0.9999999999999999", .toNearestOrEven)
+ /* ddfma3014 */ self.fma64("1", "4444444444444444", "0.49", "4444444444444444", .toNearestOrEven, .isInexact)
+ /* ddfma3015 */ self.fma64("1", "4444444444444444", "0.499", "4444444444444444", .toNearestOrEven, .isInexact)
+ /* ddfma3016 */ self.fma64("1", "4444444444444444", "0.4999", "4444444444444444", .toNearestOrEven, .isInexact)
+ /* ddfma3017 */ self.fma64("1", "4444444444444444", "0.5000", "4444444444444444", .toNearestOrEven, .isInexact)
+ /* ddfma3018 */ self.fma64("1", "4444444444444444", "0.5001", "4444444444444445", .toNearestOrEven, .isInexact)
+ /* ddfma3019 */ self.fma64("1", "4444444444444444", "0.501", "4444444444444445", .toNearestOrEven, .isInexact)
+ /* ddfma3020 */ self.fma64("1", "4444444444444444", "0.51", "4444444444444445", .toNearestOrEven, .isInexact)
+ /* ddfma3021 */ self.fma64("1", "0", "1", "1", .toNearestOrEven)
+ /* ddfma3022 */ self.fma64("1", "1", "1", "2", .toNearestOrEven)
+ /* ddfma3023 */ self.fma64("1", "2", "1", "3", .toNearestOrEven)
+ /* ddfma3024 */ self.fma64("1", "3", "1", "4", .toNearestOrEven)
+ /* ddfma3025 */ self.fma64("1", "4", "1", "5", .toNearestOrEven)
+ /* ddfma3026 */ self.fma64("1", "5", "1", "6", .toNearestOrEven)
+ /* ddfma3027 */ self.fma64("1", "6", "1", "7", .toNearestOrEven)
+ /* ddfma3028 */ self.fma64("1", "7", "1", "8", .toNearestOrEven)
+ /* ddfma3029 */ self.fma64("1", "8", "1", "9", .toNearestOrEven)
+ /* ddfma3030 */ self.fma64("1", "9", "1", "10", .toNearestOrEven)
+ /* ddfma3031 */ self.fma64("1", "0.9998", "0.0000", "0.9998", .toNearestOrEven)
+ /* ddfma3032 */ self.fma64("1", "0.9998", "0.0001", "0.9999", .toNearestOrEven)
+ /* ddfma3033 */ self.fma64("1", "0.9998", "0.0002", "1.0000", .toNearestOrEven)
+ /* ddfma3034 */ self.fma64("1", "0.9998", "0.0003", "1.0001", .toNearestOrEven)
+ /* ddfma3035 */ self.fma64("1", "70", "10000e+16", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddfma3036 */ self.fma64("1", "700", "10000e+16", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddfma3037 */ self.fma64("1", "7000", "10000e+16", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddfma3038 */ self.fma64("1", "70000", "10000e+16", "1.000000000000001E+20", .toNearestOrEven, .isInexact)
+ /* ddfma3039 */ self.fma64("1", "700000", "10000e+16", "1.000000000000007E+20", .toNearestOrEven)
+ /* ddfma3040 */ self.fma64("1", "10000e+16", "70", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddfma3041 */ self.fma64("1", "10000e+16", "700", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddfma3042 */ self.fma64("1", "10000e+16", "7000", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddfma3044 */ self.fma64("1", "10000e+16", "70000", "1.000000000000001E+20", .toNearestOrEven, .isInexact)
+ /* ddfma3045 */ self.fma64("1", "10000e+16", "700000", "1.000000000000007E+20", .toNearestOrEven)
+ /* ddfma3046 */ self.fma64("1", "10000e+9", "7", "10000000000007", .toNearestOrEven)
+ /* ddfma3047 */ self.fma64("1", "10000e+9", "70", "10000000000070", .toNearestOrEven)
+ /* ddfma3048 */ self.fma64("1", "10000e+9", "700", "10000000000700", .toNearestOrEven)
+ /* ddfma3049 */ self.fma64("1", "10000e+9", "7000", "10000000007000", .toNearestOrEven)
+ /* ddfma3050 */ self.fma64("1", "10000e+9", "70000", "10000000070000", .toNearestOrEven)
+ /* ddfma3051 */ self.fma64("1", "10000e+9", "700000", "10000000700000", .toNearestOrEven)
+ /* ddfma3052 */ self.fma64("1", "10000e+9", "7000000", "10000007000000", .toNearestOrEven)
+ /* ddfma3053 */ self.fma64("1", "12", "7.00", "19.00", .toNearestOrEven)
+ /* ddfma3054 */ self.fma64("1", "1.3", "-1.07", "0.23", .toNearestOrEven)
+ /* ddfma3055 */ self.fma64("1", "1.3", "-1.30", "0.00", .toNearestOrEven)
+ /* ddfma3056 */ self.fma64("1", "1.3", "-2.07", "-0.77", .toNearestOrEven)
+ /* ddfma3057 */ self.fma64("1", "1E+2", "1E+4", "1.01E+4", .toNearestOrEven)
+ /* ddfma3061 */ self.fma64("1", "1", "0.0001", "1.0001", .toNearestOrEven)
+ /* ddfma3062 */ self.fma64("1", "1", "0.00001", "1.00001", .toNearestOrEven)
+ /* ddfma3063 */ self.fma64("1", "1", "0.000001", "1.000001", .toNearestOrEven)
+ /* ddfma3064 */ self.fma64("1", "1", "0.0000001", "1.0000001", .toNearestOrEven)
+ /* ddfma3065 */ self.fma64("1", "1", "0.00000001", "1.00000001", .toNearestOrEven)
+ /* ddfma3070 */ self.fma64("1", "1", "0", "1", .toNearestOrEven)
+ /* ddfma3071 */ self.fma64("1", "1", "0.", "1", .toNearestOrEven)
+ /* ddfma3072 */ self.fma64("1", "1", ".0", "1.0", .toNearestOrEven)
+ /* ddfma3073 */ self.fma64("1", "1", "0.0", "1.0", .toNearestOrEven)
+ /* ddfma3074 */ self.fma64("1", "1", "0.00", "1.00", .toNearestOrEven)
+ /* ddfma3075 */ self.fma64("1", "0", "1", "1", .toNearestOrEven)
+ /* ddfma3076 */ self.fma64("1", "0.", "1", "1", .toNearestOrEven)
+ /* ddfma3077 */ self.fma64("1", ".0", "1", "1.0", .toNearestOrEven)
+ /* ddfma3078 */ self.fma64("1", "0.0", "1", "1.0", .toNearestOrEven)
+ /* ddfma3079 */ self.fma64("1", "0.00", "1", "1.00", .toNearestOrEven)
+ /* ddfma3080 */ self.fma64("1", "999999998", "1", "999999999", .toNearestOrEven)
+ /* ddfma3081 */ self.fma64("1", "999999999", "1", "1000000000", .toNearestOrEven)
+ /* ddfma3082 */ self.fma64("1", "99999999", "1", "100000000", .toNearestOrEven)
+ /* ddfma3083 */ self.fma64("1", "9999999", "1", "10000000", .toNearestOrEven)
+ /* ddfma3084 */ self.fma64("1", "999999", "1", "1000000", .toNearestOrEven)
+ /* ddfma3085 */ self.fma64("1", "99999", "1", "100000", .toNearestOrEven)
+ /* ddfma3086 */ self.fma64("1", "9999", "1", "10000", .toNearestOrEven)
+ /* ddfma3087 */ self.fma64("1", "999", "1", "1000", .toNearestOrEven)
+ /* ddfma3088 */ self.fma64("1", "99", "1", "100", .toNearestOrEven)
+ /* ddfma3089 */ self.fma64("1", "9", "1", "10", .toNearestOrEven)
+ /* ddfma3090 */ self.fma64("1", "-56267E-10", "0", "-0.0000056267", .toNearestOrEven)
+ /* ddfma3091 */ self.fma64("1", "-56267E-6", "0", "-0.056267", .toNearestOrEven)
+ /* ddfma3092 */ self.fma64("1", "-56267E-5", "0", "-0.56267", .toNearestOrEven)
+ /* ddfma3093 */ self.fma64("1", "-56267E-4", "0", "-5.6267", .toNearestOrEven)
+ /* ddfma3094 */ self.fma64("1", "-56267E-3", "0", "-56.267", .toNearestOrEven)
+ /* ddfma3095 */ self.fma64("1", "-56267E-2", "0", "-562.67", .toNearestOrEven)
+ /* ddfma3096 */ self.fma64("1", "-56267E-1", "0", "-5626.7", .toNearestOrEven)
+ /* ddfma3097 */ self.fma64("1", "-56267E-0", "0", "-56267", .toNearestOrEven)
+ /* ddfma3098 */ self.fma64("1", "-5E-10", "0", "-5E-10", .toNearestOrEven)
+ /* ddfma3099 */ self.fma64("1", "-5E-7", "0", "-5E-7", .toNearestOrEven)
+ /* ddfma3100 */ self.fma64("1", "-5E-6", "0", "-0.000005", .toNearestOrEven)
+ /* ddfma3101 */ self.fma64("1", "-5E-5", "0", "-0.00005", .toNearestOrEven)
+ /* ddfma3102 */ self.fma64("1", "-5E-4", "0", "-0.0005", .toNearestOrEven)
+ /* ddfma3103 */ self.fma64("1", "-5E-1", "0", "-0.5", .toNearestOrEven)
+ /* ddfma3104 */ self.fma64("1", "-5E0", "0", "-5", .toNearestOrEven)
+ /* ddfma3105 */ self.fma64("1", "-5E1", "0", "-50", .toNearestOrEven)
+ /* ddfma3106 */ self.fma64("1", "-5E5", "0", "-500000", .toNearestOrEven)
+ /* ddfma3107 */ self.fma64("1", "-5E15", "0", "-5000000000000000", .toNearestOrEven)
+ /* ddfma3108 */ self.fma64("1", "-5E16", "0", "-5.000000000000000E+16", .toNearestOrEven)
+ /* ddfma3109 */ self.fma64("1", "-5E17", "0", "-5.000000000000000E+17", .toNearestOrEven)
+ /* ddfma3110 */ self.fma64("1", "-5E18", "0", "-5.000000000000000E+18", .toNearestOrEven)
+ /* ddfma3111 */ self.fma64("1", "-5E100", "0", "-5.000000000000000E+100", .toNearestOrEven)
+ /* ddfma3113 */ self.fma64("1", "0", "-56267E-10", "-0.0000056267", .toNearestOrEven)
+ /* ddfma3114 */ self.fma64("1", "0", "-56267E-6", "-0.056267", .toNearestOrEven)
+ /* ddfma3116 */ self.fma64("1", "0", "-56267E-5", "-0.56267", .toNearestOrEven)
+ /* ddfma3117 */ self.fma64("1", "0", "-56267E-4", "-5.6267", .toNearestOrEven)
+ /* ddfma3119 */ self.fma64("1", "0", "-56267E-3", "-56.267", .toNearestOrEven)
+ /* ddfma3120 */ self.fma64("1", "0", "-56267E-2", "-562.67", .toNearestOrEven)
+ /* ddfma3121 */ self.fma64("1", "0", "-56267E-1", "-5626.7", .toNearestOrEven)
+ /* ddfma3122 */ self.fma64("1", "0", "-56267E-0", "-56267", .toNearestOrEven)
+ /* ddfma3123 */ self.fma64("1", "0", "-5E-10", "-5E-10", .toNearestOrEven)
+ /* ddfma3124 */ self.fma64("1", "0", "-5E-7", "-5E-7", .toNearestOrEven)
+ /* ddfma3125 */ self.fma64("1", "0", "-5E-6", "-0.000005", .toNearestOrEven)
+ /* ddfma3126 */ self.fma64("1", "0", "-5E-5", "-0.00005", .toNearestOrEven)
+ /* ddfma3127 */ self.fma64("1", "0", "-5E-4", "-0.0005", .toNearestOrEven)
+ /* ddfma3128 */ self.fma64("1", "0", "-5E-1", "-0.5", .toNearestOrEven)
+ /* ddfma3129 */ self.fma64("1", "0", "-5E0", "-5", .toNearestOrEven)
+ /* ddfma3130 */ self.fma64("1", "0", "-5E1", "-50", .toNearestOrEven)
+ /* ddfma3131 */ self.fma64("1", "0", "-5E5", "-500000", .toNearestOrEven)
+ /* ddfma3132 */ self.fma64("1", "0", "-5E15", "-5000000000000000", .toNearestOrEven)
+ /* ddfma3133 */ self.fma64("1", "0", "-5E16", "-5.000000000000000E+16", .toNearestOrEven)
+ /* ddfma3134 */ self.fma64("1", "0", "-5E17", "-5.000000000000000E+17", .toNearestOrEven)
+ /* ddfma3135 */ self.fma64("1", "0", "-5E18", "-5.000000000000000E+18", .toNearestOrEven)
+ /* ddfma3136 */ self.fma64("1", "0", "-5E100", "-5.000000000000000E+100", .toNearestOrEven)
+ /* ddfma3137 */ self.fma64("1", "1", "0E-19", "1.000000000000000", .toNearestOrEven)
+ /* ddfma3138 */ self.fma64("1", "-1", "0E-19", "-1.000000000000000", .toNearestOrEven)
+ /* ddfma3139 */ self.fma64("1", "0E-19", "1", "1.000000000000000", .toNearestOrEven)
+ /* ddfma3140 */ self.fma64("1", "0E-19", "-1", "-1.000000000000000", .toNearestOrEven)
+ /* ddfma3141 */ self.fma64("1", "1E+11", "0.0000", "100000000000.0000", .toNearestOrEven)
+ /* ddfma3142 */ self.fma64("1", "1E+11", "0.00000", "100000000000.0000", .toNearestOrEven)
+ /* ddfma3143 */ self.fma64("1", "0.000", "1E+12", "1000000000000.000", .toNearestOrEven)
+ /* ddfma3144 */ self.fma64("1", "0.0000", "1E+12", "1000000000000.000", .toNearestOrEven)
+ /* ddfma3146 */ self.fma64("1", "00.0", "0", "0.0", .toNearestOrEven)
+ /* ddfma3147 */ self.fma64("1", "0.00", "0", "0.00", .toNearestOrEven)
+ /* ddfma3148 */ self.fma64("1", "0", "0.00", "0.00", .toNearestOrEven)
+ /* ddfma3149 */ self.fma64("1", "0", "00.0", "0.0", .toNearestOrEven)
+ /* ddfma3150 */ self.fma64("1", "00.0", "0.00", "0.00", .toNearestOrEven)
+ /* ddfma3151 */ self.fma64("1", "0.00", "00.0", "0.00", .toNearestOrEven)
+ /* ddfma3152 */ self.fma64("1", "3", ".3", "3.3", .toNearestOrEven)
+ /* ddfma3153 */ self.fma64("1", "3.", ".3", "3.3", .toNearestOrEven)
+ /* ddfma3154 */ self.fma64("1", "3.0", ".3", "3.3", .toNearestOrEven)
+ /* ddfma3155 */ self.fma64("1", "3.00", ".3", "3.30", .toNearestOrEven)
+ /* ddfma3156 */ self.fma64("1", "3", "3", "6", .toNearestOrEven)
+ /* ddfma3157 */ self.fma64("1", "3", "+3", "6", .toNearestOrEven)
+ /* ddfma3158 */ self.fma64("1", "3", "-3", "0", .toNearestOrEven)
+ /* ddfma3159 */ self.fma64("1", "0.3", "-0.3", "0.0", .toNearestOrEven)
+ /* ddfma3160 */ self.fma64("1", "0.03", "-0.03", "0.00", .toNearestOrEven)
+ /* ddfma3161 */ self.fma64("1", "1E+12", "-1", "999999999999", .toNearestOrEven)
+ /* ddfma3162 */ self.fma64("1", "1E+12", "1.11", "1000000000001.11", .toNearestOrEven)
+ /* ddfma3163 */ self.fma64("1", "1.11", "1E+12", "1000000000001.11", .toNearestOrEven)
+ /* ddfma3164 */ self.fma64("1", "-1", "1E+12", "999999999999", .toNearestOrEven)
+ /* ddfma3165 */ self.fma64("1", "7E+12", "-1", "6999999999999", .toNearestOrEven)
+ /* ddfma3166 */ self.fma64("1", "7E+12", "1.11", "7000000000001.11", .toNearestOrEven)
+ /* ddfma3167 */ self.fma64("1", "1.11", "7E+12", "7000000000001.11", .toNearestOrEven)
+ /* ddfma3168 */ self.fma64("1", "-1", "7E+12", "6999999999999", .toNearestOrEven)
+ /* ddfma3170 */ self.fma64("1", "4.444444444444444", "0.5555555555555567", "5.000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3171 */ self.fma64("1", "4.444444444444444", "0.5555555555555566", "5.000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3172 */ self.fma64("1", "4.444444444444444", "0.5555555555555565", "5.000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3173 */ self.fma64("1", "4.444444444444444", "0.5555555555555564", "5.000000000000000", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3174 */ self.fma64("1", "4.444444444444444", "0.5555555555555553", "4.999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3175 */ self.fma64("1", "4.444444444444444", "0.5555555555555552", "4.999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3176 */ self.fma64("1", "4.444444444444444", "0.5555555555555551", "4.999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3177 */ self.fma64("1", "4.444444444444444", "0.5555555555555550", "4.999999999999999", .toNearestOrAwayFromZero)
+ /* ddfma3178 */ self.fma64("1", "4.444444444444444", "0.5555555555555545", "4.999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3179 */ self.fma64("1", "4.444444444444444", "0.5555555555555544", "4.999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3180 */ self.fma64("1", "4.444444444444444", "0.5555555555555543", "4.999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3181 */ self.fma64("1", "4.444444444444444", "0.5555555555555542", "4.999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3182 */ self.fma64("1", "4.444444444444444", "0.5555555555555541", "4.999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3183 */ self.fma64("1", "4.444444444444444", "0.5555555555555540", "4.999999999999998", .toNearestOrAwayFromZero)
+ /* ddfma3200 */ self.fma64("1", "1234560123456789", "0", "1234560123456789", .toNearestOrAwayFromZero)
+ /* ddfma3201 */ self.fma64("1", "1234560123456789", "0.000000001", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3202 */ self.fma64("1", "1234560123456789", "0.000001", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3203 */ self.fma64("1", "1234560123456789", "0.1", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3204 */ self.fma64("1", "1234560123456789", "0.4", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3205 */ self.fma64("1", "1234560123456789", "0.49", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3206 */ self.fma64("1", "1234560123456789", "0.499999", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3207 */ self.fma64("1", "1234560123456789", "0.499999999", "1234560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3208 */ self.fma64("1", "1234560123456789", "0.5", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3209 */ self.fma64("1", "1234560123456789", "0.500000001", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3210 */ self.fma64("1", "1234560123456789", "0.500001", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3211 */ self.fma64("1", "1234560123456789", "0.51", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3212 */ self.fma64("1", "1234560123456789", "0.6", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3213 */ self.fma64("1", "1234560123456789", "0.9", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3214 */ self.fma64("1", "1234560123456789", "0.99999", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3215 */ self.fma64("1", "1234560123456789", "0.999999999", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3216 */ self.fma64("1", "1234560123456789", "1", "1234560123456790", .toNearestOrAwayFromZero)
+ /* ddfma3217 */ self.fma64("1", "1234560123456789", "1.000000001", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3218 */ self.fma64("1", "1234560123456789", "1.00001", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3219 */ self.fma64("1", "1234560123456789", "1.1", "1234560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3220 */ self.fma64("1", "1234560123456789", "0", "1234560123456789", .toNearestOrEven)
+ /* ddfma3221 */ self.fma64("1", "1234560123456789", "0.000000001", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddfma3222 */ self.fma64("1", "1234560123456789", "0.000001", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddfma3223 */ self.fma64("1", "1234560123456789", "0.1", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddfma3224 */ self.fma64("1", "1234560123456789", "0.4", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddfma3225 */ self.fma64("1", "1234560123456789", "0.49", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddfma3226 */ self.fma64("1", "1234560123456789", "0.499999", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddfma3227 */ self.fma64("1", "1234560123456789", "0.499999999", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddfma3228 */ self.fma64("1", "1234560123456789", "0.5", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddfma3229 */ self.fma64("1", "1234560123456789", "0.500000001", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddfma3230 */ self.fma64("1", "1234560123456789", "0.500001", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddfma3231 */ self.fma64("1", "1234560123456789", "0.51", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddfma3232 */ self.fma64("1", "1234560123456789", "0.6", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddfma3233 */ self.fma64("1", "1234560123456789", "0.9", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddfma3234 */ self.fma64("1", "1234560123456789", "0.99999", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddfma3235 */ self.fma64("1", "1234560123456789", "0.999999999", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddfma3236 */ self.fma64("1", "1234560123456789", "1", "1234560123456790", .toNearestOrEven)
+ /* ddfma3237 */ self.fma64("1", "1234560123456789", "1.00000001", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddfma3238 */ self.fma64("1", "1234560123456789", "1.00001", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddfma3239 */ self.fma64("1", "1234560123456789", "1.1", "1234560123456790", .toNearestOrEven, .isInexact)
+ /* ddfma3240 */ self.fma64("1", "1234560123456788", "0.499999999", "1234560123456788", .toNearestOrEven, .isInexact)
+ /* ddfma3241 */ self.fma64("1", "1234560123456788", "0.5", "1234560123456788", .toNearestOrEven, .isInexact)
+ /* ddfma3242 */ self.fma64("1", "1234560123456788", "0.500000001", "1234560123456789", .toNearestOrEven, .isInexact)
+ /* ddfma3250 */ self.fma64("1", "1234560123456789", "0", "1234560123456789", .towardZero)
+ /* ddfma3251 */ self.fma64("1", "1234560123456789", "0.000000001", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3252 */ self.fma64("1", "1234560123456789", "0.000001", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3253 */ self.fma64("1", "1234560123456789", "0.1", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3254 */ self.fma64("1", "1234560123456789", "0.4", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3255 */ self.fma64("1", "1234560123456789", "0.49", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3256 */ self.fma64("1", "1234560123456789", "0.499999", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3257 */ self.fma64("1", "1234560123456789", "0.499999999", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3258 */ self.fma64("1", "1234560123456789", "0.5", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3259 */ self.fma64("1", "1234560123456789", "0.500000001", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3260 */ self.fma64("1", "1234560123456789", "0.500001", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3261 */ self.fma64("1", "1234560123456789", "0.51", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3262 */ self.fma64("1", "1234560123456789", "0.6", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3263 */ self.fma64("1", "1234560123456789", "0.9", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3264 */ self.fma64("1", "1234560123456789", "0.99999", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3265 */ self.fma64("1", "1234560123456789", "0.999999999", "1234560123456789", .towardZero, .isInexact)
+ /* ddfma3266 */ self.fma64("1", "1234560123456789", "1", "1234560123456790", .towardZero)
+ /* ddfma3267 */ self.fma64("1", "1234560123456789", "1.00000001", "1234560123456790", .towardZero, .isInexact)
+ /* ddfma3268 */ self.fma64("1", "1234560123456789", "1.00001", "1234560123456790", .towardZero, .isInexact)
+ /* ddfma3269 */ self.fma64("1", "1234560123456789", "1.1", "1234560123456790", .towardZero, .isInexact)
+ /* ddfma3301 */ self.fma64("1", "-1", "1", "0", .toNearestOrAwayFromZero)
+ /* ddfma3302 */ self.fma64("1", "0", "1", "1", .toNearestOrAwayFromZero)
+ /* ddfma3303 */ self.fma64("1", "1", "1", "2", .toNearestOrAwayFromZero)
+ /* ddfma3304 */ self.fma64("1", "12", "1", "13", .toNearestOrAwayFromZero)
+ /* ddfma3305 */ self.fma64("1", "98", "1", "99", .toNearestOrAwayFromZero)
+ /* ddfma3306 */ self.fma64("1", "99", "1", "100", .toNearestOrAwayFromZero)
+ /* ddfma3307 */ self.fma64("1", "100", "1", "101", .toNearestOrAwayFromZero)
+ /* ddfma3308 */ self.fma64("1", "101", "1", "102", .toNearestOrAwayFromZero)
+ /* ddfma3309 */ self.fma64("1", "-1", "-1", "-2", .toNearestOrAwayFromZero)
+ /* ddfma3310 */ self.fma64("1", "0", "-1", "-1", .toNearestOrAwayFromZero)
+ /* ddfma3311 */ self.fma64("1", "1", "-1", "0", .toNearestOrAwayFromZero)
+ /* ddfma3312 */ self.fma64("1", "12", "-1", "11", .toNearestOrAwayFromZero)
+ /* ddfma3313 */ self.fma64("1", "98", "-1", "97", .toNearestOrAwayFromZero)
+ /* ddfma3314 */ self.fma64("1", "99", "-1", "98", .toNearestOrAwayFromZero)
+ /* ddfma3315 */ self.fma64("1", "100", "-1", "99", .toNearestOrAwayFromZero)
+ /* ddfma3316 */ self.fma64("1", "101", "-1", "100", .toNearestOrAwayFromZero)
+ /* ddfma3321 */ self.fma64("1", "-0.01", "0.01", "0.00", .toNearestOrAwayFromZero)
+ /* ddfma3322 */ self.fma64("1", "0.00", "0.01", "0.01", .toNearestOrAwayFromZero)
+ /* ddfma3323 */ self.fma64("1", "0.01", "0.01", "0.02", .toNearestOrAwayFromZero)
+ /* ddfma3324 */ self.fma64("1", "0.12", "0.01", "0.13", .toNearestOrAwayFromZero)
+ /* ddfma3325 */ self.fma64("1", "0.98", "0.01", "0.99", .toNearestOrAwayFromZero)
+ /* ddfma3326 */ self.fma64("1", "0.99", "0.01", "1.00", .toNearestOrAwayFromZero)
+ /* ddfma3327 */ self.fma64("1", "1.00", "0.01", "1.01", .toNearestOrAwayFromZero)
+ /* ddfma3328 */ self.fma64("1", "1.01", "0.01", "1.02", .toNearestOrAwayFromZero)
+ /* ddfma3329 */ self.fma64("1", "-0.01", "-0.01", "-0.02", .toNearestOrAwayFromZero)
+ /* ddfma3330 */ self.fma64("1", "0.00", "-0.01", "-0.01", .toNearestOrAwayFromZero)
+ /* ddfma3331 */ self.fma64("1", "0.01", "-0.01", "0.00", .toNearestOrAwayFromZero)
+ /* ddfma3332 */ self.fma64("1", "0.12", "-0.01", "0.11", .toNearestOrAwayFromZero)
+ /* ddfma3333 */ self.fma64("1", "0.98", "-0.01", "0.97", .toNearestOrAwayFromZero)
+ /* ddfma3334 */ self.fma64("1", "0.99", "-0.01", "0.98", .toNearestOrAwayFromZero)
+ /* ddfma3335 */ self.fma64("1", "1.00", "-0.01", "0.99", .toNearestOrAwayFromZero)
+ /* ddfma3336 */ self.fma64("1", "1.01", "-0.01", "1.00", .toNearestOrAwayFromZero)
+ /* ddfma3340 */ self.fma64("1", "1E+3", "0", "1000", .toNearestOrAwayFromZero)
+ /* ddfma3341 */ self.fma64("1", "1E+15", "0", "1000000000000000", .toNearestOrAwayFromZero)
+ /* ddfma3342 */ self.fma64("1", "1E+16", "0", "1.000000000000000E+16", .toNearestOrAwayFromZero)
+ /* ddfma3343 */ self.fma64("1", "1E+20", "0", "1.000000000000000E+20", .toNearestOrAwayFromZero)
+ /* ddfma3344 */ self.fma64("1", "1E+3", "1", "1001", .toNearestOrAwayFromZero)
+ /* ddfma3345 */ self.fma64("1", "1E+15", "1", "1000000000000001", .toNearestOrAwayFromZero)
+ /* ddfma3346 */ self.fma64("1", "1E+16", "1", "1.000000000000000E+16", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3347 */ self.fma64("1", "1E+20", "1", "1.000000000000000E+20", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3348 */ self.fma64("1", "1E+3", "7", "1007", .toNearestOrAwayFromZero)
+ /* ddfma3349 */ self.fma64("1", "1E+15", "7", "1000000000000007", .toNearestOrAwayFromZero)
+ /* ddfma3350 */ self.fma64("1", "1E+16", "7", "1.000000000000001E+16", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3351 */ self.fma64("1", "1E+20", "7", "1.000000000000000E+20", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3360 */ self.fma64("1", "0E+50", "10000E+1", "1.0000E+5", .toNearestOrAwayFromZero)
+ /* ddfma3361 */ self.fma64("1", "0E-50", "10000E+1", "100000.0000000000", .toNearestOrAwayFromZero)
+ /* ddfma3362 */ self.fma64("1", "10000E+1", "0E-50", "100000.0000000000", .toNearestOrAwayFromZero)
+ /* ddfma3363 */ self.fma64("1", "10000E+1", "10000E-50", "100000.0000000000", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3364 */ self.fma64("1", "9.999999999999999E+384", "-9.999999999999999E+384", "0E+369", .toNearestOrAwayFromZero)
+ /* ddfma3372 */ self.fma64("1", "999999999999999", "815", "1000000000000814", .toNearestOrAwayFromZero)
+ /* ddfma3373 */ self.fma64("1", "9999999999999999", "815", "1.000000000000081E+16", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma3374 */ self.fma64("1", "999999999999999", "815", "1000000000000814", .toNearestOrEven)
+ /* ddfma3375 */ self.fma64("1", "9999999999999999", "815", "1.000000000000081E+16", .toNearestOrEven, .isInexact)
+ /* ddfma3400 */ self.fma64("1", "1", "77e-14", "1.00000000000077", .toNearestOrEven)
+ /* ddfma3401 */ self.fma64("1", "1", "77e-15", "1.000000000000077", .toNearestOrEven)
+ /* ddfma3402 */ self.fma64("1", "1", "77e-16", "1.000000000000008", .toNearestOrEven, .isInexact)
+ /* ddfma3403 */ self.fma64("1", "1", "77e-17", "1.000000000000001", .toNearestOrEven, .isInexact)
+ /* ddfma3404 */ self.fma64("1", "1", "77e-18", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3405 */ self.fma64("1", "1", "77e-19", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3406 */ self.fma64("1", "1", "77e-299", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3410 */ self.fma64("1", "10", "77e-14", "10.00000000000077", .toNearestOrEven)
+ /* ddfma3411 */ self.fma64("1", "10", "77e-15", "10.00000000000008", .toNearestOrEven, .isInexact)
+ /* ddfma3412 */ self.fma64("1", "10", "77e-16", "10.00000000000001", .toNearestOrEven, .isInexact)
+ /* ddfma3413 */ self.fma64("1", "10", "77e-17", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3414 */ self.fma64("1", "10", "77e-18", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3415 */ self.fma64("1", "10", "77e-19", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3416 */ self.fma64("1", "10", "77e-299", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3420 */ self.fma64("1", "77e-14", "1", "1.00000000000077", .toNearestOrEven)
+ /* ddfma3421 */ self.fma64("1", "77e-15", "1", "1.000000000000077", .toNearestOrEven)
+ /* ddfma3422 */ self.fma64("1", "77e-16", "1", "1.000000000000008", .toNearestOrEven, .isInexact)
+ /* ddfma3423 */ self.fma64("1", "77e-17", "1", "1.000000000000001", .toNearestOrEven, .isInexact)
+ /* ddfma3424 */ self.fma64("1", "77e-18", "1", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3425 */ self.fma64("1", "77e-19", "1", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3426 */ self.fma64("1", "77e-299", "1", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3430 */ self.fma64("1", "77e-14", "10", "10.00000000000077", .toNearestOrEven)
+ /* ddfma3431 */ self.fma64("1", "77e-15", "10", "10.00000000000008", .toNearestOrEven, .isInexact)
+ /* ddfma3432 */ self.fma64("1", "77e-16", "10", "10.00000000000001", .toNearestOrEven, .isInexact)
+ /* ddfma3433 */ self.fma64("1", "77e-17", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3434 */ self.fma64("1", "77e-18", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3435 */ self.fma64("1", "77e-19", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma3436 */ self.fma64("1", "77e-299", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36440 */ self.fma64("1", "1", "-77e-14", "0.99999999999923", .toNearestOrEven)
+ /* ddfma36441 */ self.fma64("1", "1", "-77e-15", "0.999999999999923", .toNearestOrEven)
+ /* ddfma36442 */ self.fma64("1", "1", "-77e-16", "0.9999999999999923", .toNearestOrEven)
+ /* ddfma36443 */ self.fma64("1", "1", "-77e-17", "0.9999999999999992", .toNearestOrEven, .isInexact)
+ /* ddfma36444 */ self.fma64("1", "1", "-77e-18", "0.9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma36445 */ self.fma64("1", "1", "-77e-19", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36446 */ self.fma64("1", "1", "-77e-99", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36450 */ self.fma64("1", "10", "-77e-14", "9.99999999999923", .toNearestOrEven)
+ /* ddfma36451 */ self.fma64("1", "10", "-77e-15", "9.999999999999923", .toNearestOrEven)
+ /* ddfma36452 */ self.fma64("1", "10", "-77e-16", "9.999999999999992", .toNearestOrEven, .isInexact)
+ /* ddfma36453 */ self.fma64("1", "10", "-77e-17", "9.999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma36454 */ self.fma64("1", "10", "-77e-18", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36455 */ self.fma64("1", "10", "-77e-19", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36456 */ self.fma64("1", "10", "-77e-99", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36460 */ self.fma64("1", "-77e-14", "1", "0.99999999999923", .toNearestOrEven)
+ /* ddfma36461 */ self.fma64("1", "-77e-15", "1", "0.999999999999923", .toNearestOrEven)
+ /* ddfma36462 */ self.fma64("1", "-77e-16", "1", "0.9999999999999923", .toNearestOrEven)
+ /* ddfma36463 */ self.fma64("1", "-77e-17", "1", "0.9999999999999992", .toNearestOrEven, .isInexact)
+ /* ddfma36464 */ self.fma64("1", "-77e-18", "1", "0.9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma36465 */ self.fma64("1", "-77e-19", "1", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36466 */ self.fma64("1", "-77e-99", "1", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36470 */ self.fma64("1", "-77e-14", "10", "9.99999999999923", .toNearestOrEven)
+ /* ddfma36471 */ self.fma64("1", "-77e-15", "10", "9.999999999999923", .toNearestOrEven)
+ /* ddfma36472 */ self.fma64("1", "-77e-16", "10", "9.999999999999992", .toNearestOrEven, .isInexact)
+ /* ddfma36473 */ self.fma64("1", "-77e-17", "10", "9.999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma36474 */ self.fma64("1", "-77e-18", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36475 */ self.fma64("1", "-77e-19", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36476 */ self.fma64("1", "-77e-99", "10", "10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36480 */ self.fma64("1", "-1", "77e-14", "-0.99999999999923", .toNearestOrEven)
+ /* ddfma36481 */ self.fma64("1", "-1", "77e-15", "-0.999999999999923", .toNearestOrEven)
+ /* ddfma36482 */ self.fma64("1", "-1", "77e-16", "-0.9999999999999923", .toNearestOrEven)
+ /* ddfma36483 */ self.fma64("1", "-1", "77e-17", "-0.9999999999999992", .toNearestOrEven, .isInexact)
+ /* ddfma36484 */ self.fma64("1", "-1", "77e-18", "-0.9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma36485 */ self.fma64("1", "-1", "77e-19", "-1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36486 */ self.fma64("1", "-1", "77e-99", "-1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36490 */ self.fma64("1", "-10", "77e-14", "-9.99999999999923", .toNearestOrEven)
+ /* ddfma36491 */ self.fma64("1", "-10", "77e-15", "-9.999999999999923", .toNearestOrEven)
+ /* ddfma36492 */ self.fma64("1", "-10", "77e-16", "-9.999999999999992", .toNearestOrEven, .isInexact)
+ /* ddfma36493 */ self.fma64("1", "-10", "77e-17", "-9.999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma36494 */ self.fma64("1", "-10", "77e-18", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36495 */ self.fma64("1", "-10", "77e-19", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36496 */ self.fma64("1", "-10", "77e-99", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36500 */ self.fma64("1", "77e-14", "-1", "-0.99999999999923", .toNearestOrEven)
+ /* ddfma36501 */ self.fma64("1", "77e-15", "-1", "-0.999999999999923", .toNearestOrEven)
+ /* ddfma36502 */ self.fma64("1", "77e-16", "-1", "-0.9999999999999923", .toNearestOrEven)
+ /* ddfma36503 */ self.fma64("1", "77e-17", "-1", "-0.9999999999999992", .toNearestOrEven, .isInexact)
+ /* ddfma36504 */ self.fma64("1", "77e-18", "-1", "-0.9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma36505 */ self.fma64("1", "77e-19", "-1", "-1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36506 */ self.fma64("1", "77e-99", "-1", "-1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36510 */ self.fma64("1", "77e-14", "-10", "-9.99999999999923", .toNearestOrEven)
+ /* ddfma36511 */ self.fma64("1", "77e-15", "-10", "-9.999999999999923", .toNearestOrEven)
+ /* ddfma36512 */ self.fma64("1", "77e-16", "-10", "-9.999999999999992", .toNearestOrEven, .isInexact)
+ /* ddfma36513 */ self.fma64("1", "77e-17", "-10", "-9.999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma36514 */ self.fma64("1", "77e-18", "-10", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36515 */ self.fma64("1", "77e-19", "-10", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36516 */ self.fma64("1", "77e-99", "-10", "-10.00000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36520 */ self.fma64("1", "1", "-7777e-16", "0.9999999999992223", .toNearestOrEven)
+ /* ddfma36521 */ self.fma64("1", "1", "-7777e-17", "0.9999999999999222", .toNearestOrEven, .isInexact)
+ /* ddfma36522 */ self.fma64("1", "1", "-7777e-18", "0.9999999999999922", .toNearestOrEven, .isInexact)
+ /* ddfma36523 */ self.fma64("1", "1", "-7777e-19", "0.9999999999999992", .toNearestOrEven, .isInexact)
+ /* ddfma36524 */ self.fma64("1", "1", "-7777e-20", "0.9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma36525 */ self.fma64("1", "1", "-7777e-21", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36526 */ self.fma64("1", "1", "-7777e-22", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddfma36540 */ self.fma64("1", "6543210123456789", "0", "6543210123456789", .toNearestOrAwayFromZero)
+ /* ddfma36541 */ self.fma64("1", "6543210123456789", "0.000000001", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36542 */ self.fma64("1", "6543210123456789", "0.000001", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36543 */ self.fma64("1", "6543210123456789", "0.1", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36544 */ self.fma64("1", "6543210123456789", "0.4", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36545 */ self.fma64("1", "6543210123456789", "0.49", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36546 */ self.fma64("1", "6543210123456789", "0.499999", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36547 */ self.fma64("1", "6543210123456789", "0.499999999", "6543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36548 */ self.fma64("1", "6543210123456789", "0.5", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36549 */ self.fma64("1", "6543210123456789", "0.500000001", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36550 */ self.fma64("1", "6543210123456789", "0.500001", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36551 */ self.fma64("1", "6543210123456789", "0.51", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36552 */ self.fma64("1", "6543210123456789", "0.6", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36553 */ self.fma64("1", "6543210123456789", "0.9", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36554 */ self.fma64("1", "6543210123456789", "0.99999", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36555 */ self.fma64("1", "6543210123456789", "0.999999999", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36556 */ self.fma64("1", "6543210123456789", "1", "6543210123456790", .toNearestOrAwayFromZero)
+ /* ddfma36557 */ self.fma64("1", "6543210123456789", "1.000000001", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36558 */ self.fma64("1", "6543210123456789", "1.00001", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36559 */ self.fma64("1", "6543210123456789", "1.1", "6543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* ddfma36560 */ self.fma64("1", "6543210123456789", "0", "6543210123456789", .toNearestOrEven)
+ /* ddfma36561 */ self.fma64("1", "6543210123456789", "0.000000001", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddfma36562 */ self.fma64("1", "6543210123456789", "0.000001", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddfma36563 */ self.fma64("1", "6543210123456789", "0.1", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddfma36564 */ self.fma64("1", "6543210123456789", "0.4", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddfma36565 */ self.fma64("1", "6543210123456789", "0.49", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddfma36566 */ self.fma64("1", "6543210123456789", "0.499999", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddfma36567 */ self.fma64("1", "6543210123456789", "0.499999999", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddfma36568 */ self.fma64("1", "6543210123456789", "0.5", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddfma36569 */ self.fma64("1", "6543210123456789", "0.500000001", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddfma36570 */ self.fma64("1", "6543210123456789", "0.500001", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddfma36571 */ self.fma64("1", "6543210123456789", "0.51", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddfma36572 */ self.fma64("1", "6543210123456789", "0.6", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddfma36573 */ self.fma64("1", "6543210123456789", "0.9", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddfma36574 */ self.fma64("1", "6543210123456789", "0.99999", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddfma36575 */ self.fma64("1", "6543210123456789", "0.999999999", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddfma36576 */ self.fma64("1", "6543210123456789", "1", "6543210123456790", .toNearestOrEven)
+ /* ddfma36577 */ self.fma64("1", "6543210123456789", "1.00000001", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddfma36578 */ self.fma64("1", "6543210123456789", "1.00001", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddfma36579 */ self.fma64("1", "6543210123456789", "1.1", "6543210123456790", .toNearestOrEven, .isInexact)
+ /* ddfma371100 */ self.fma64("1", "1e+2", "-1e-383", "99.99999999999999", .towardZero, .isInexact)
+ /* ddfma371101 */ self.fma64("1", "1e+1", "-1e-383", "9.999999999999999", .towardZero, .isInexact)
+ /* ddfma371103 */ self.fma64("1", "+1", "-1e-383", "0.9999999999999999", .towardZero, .isInexact)
+ /* ddfma371104 */ self.fma64("1", "1e-1", "-1e-383", "0.09999999999999999", .towardZero, .isInexact)
+ /* ddfma371105 */ self.fma64("1", "1e-2", "-1e-383", "0.009999999999999999", .towardZero, .isInexact)
+ /* ddfma371106 */ self.fma64("1", "1e-3", "-1e-383", "0.0009999999999999999", .towardZero, .isInexact)
+ /* ddfma371107 */ self.fma64("1", "1e-4", "-1e-383", "0.00009999999999999999", .towardZero, .isInexact)
+ /* ddfma371108 */ self.fma64("1", "1e-5", "-1e-383", "0.000009999999999999999", .towardZero, .isInexact)
+ /* ddfma371109 */ self.fma64("1", "1e-6", "-1e-383", "9.999999999999999E-7", .towardZero, .isInexact)
+ /* ddfma371110 */ self.fma64("1", "-1e+2", "+1e-383", "-99.99999999999999", .up, .isInexact)
+ /* ddfma371111 */ self.fma64("1", "-1e+1", "+1e-383", "-9.999999999999999", .up, .isInexact)
+ /* ddfma371113 */ self.fma64("1", "-1", "+1e-383", "-0.9999999999999999", .up, .isInexact)
+ /* ddfma371114 */ self.fma64("1", "-1e-1", "+1e-383", "-0.09999999999999999", .up, .isInexact)
+ /* ddfma371115 */ self.fma64("1", "-1e-2", "+1e-383", "-0.009999999999999999", .up, .isInexact)
+ /* ddfma371116 */ self.fma64("1", "-1e-3", "+1e-383", "-0.0009999999999999999", .up, .isInexact)
+ /* ddfma371117 */ self.fma64("1", "-1e-4", "+1e-383", "-0.00009999999999999999", .up, .isInexact)
+ /* ddfma371118 */ self.fma64("1", "-1e-5", "+1e-383", "-0.000009999999999999999", .up, .isInexact)
+ /* ddfma371119 */ self.fma64("1", "-1e-6", "+1e-383", "-9.999999999999999E-7", .up, .isInexact)
+ /* ddfma371300 */ self.fma64("1", "1E16", "-0.5", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371310 */ self.fma64("1", "1E16", "-0.51", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371311 */ self.fma64("1", "1E16", "-0.501", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371312 */ self.fma64("1", "1E16", "-0.5001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371313 */ self.fma64("1", "1E16", "-0.50001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371314 */ self.fma64("1", "1E16", "-0.500001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371315 */ self.fma64("1", "1E16", "-0.5000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371316 */ self.fma64("1", "1E16", "-0.50000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371317 */ self.fma64("1", "1E16", "-0.500000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371318 */ self.fma64("1", "1E16", "-0.5000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371319 */ self.fma64("1", "1E16", "-0.50000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371320 */ self.fma64("1", "1E16", "-0.500000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371321 */ self.fma64("1", "1E16", "-0.5000000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371322 */ self.fma64("1", "1E16", "-0.50000000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371323 */ self.fma64("1", "1E16", "-0.500000000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371324 */ self.fma64("1", "1E16", "-0.5000000000000001", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371325 */ self.fma64("1", "1E16", "-0.5000000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371326 */ self.fma64("1", "1E16", "-0.500000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371327 */ self.fma64("1", "1E16", "-0.50000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371328 */ self.fma64("1", "1E16", "-0.5000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371329 */ self.fma64("1", "1E16", "-0.500000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371330 */ self.fma64("1", "1E16", "-0.50000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371331 */ self.fma64("1", "1E16", "-0.5000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371332 */ self.fma64("1", "1E16", "-0.500000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371333 */ self.fma64("1", "1E16", "-0.50000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371334 */ self.fma64("1", "1E16", "-0.5000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371335 */ self.fma64("1", "1E16", "-0.500000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371336 */ self.fma64("1", "1E16", "-0.50000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371337 */ self.fma64("1", "1E16", "-0.5000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371338 */ self.fma64("1", "1E16", "-0.500", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371339 */ self.fma64("1", "1E16", "-0.50", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371340 */ self.fma64("1", "1E16", "-5000000.000010001", "9999999995000000", .toNearestOrEven, .isInexact)
+ /* ddfma371341 */ self.fma64("1", "1E16", "-5000000.000000001", "9999999995000000", .toNearestOrEven, .isInexact)
+ /* ddfma371349 */ self.fma64("1", "9999999999999999", "0.4", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371350 */ self.fma64("1", "9999999999999999", "0.49", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371351 */ self.fma64("1", "9999999999999999", "0.499", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371352 */ self.fma64("1", "9999999999999999", "0.4999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371353 */ self.fma64("1", "9999999999999999", "0.49999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371354 */ self.fma64("1", "9999999999999999", "0.499999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371355 */ self.fma64("1", "9999999999999999", "0.4999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371356 */ self.fma64("1", "9999999999999999", "0.49999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371357 */ self.fma64("1", "9999999999999999", "0.499999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371358 */ self.fma64("1", "9999999999999999", "0.4999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371359 */ self.fma64("1", "9999999999999999", "0.49999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371360 */ self.fma64("1", "9999999999999999", "0.499999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371361 */ self.fma64("1", "9999999999999999", "0.4999999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371362 */ self.fma64("1", "9999999999999999", "0.49999999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371363 */ self.fma64("1", "9999999999999999", "0.499999999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371364 */ self.fma64("1", "9999999999999999", "0.4999999999999999", "9999999999999999", .toNearestOrEven, .isInexact)
+ /* ddfma371365 */ self.fma64("1", "9999999999999999", "0.5000000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371367 */ self.fma64("1", "9999999999999999", "0.500000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371368 */ self.fma64("1", "9999999999999999", "0.50000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371369 */ self.fma64("1", "9999999999999999", "0.5000000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371370 */ self.fma64("1", "9999999999999999", "0.500000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371371 */ self.fma64("1", "9999999999999999", "0.50000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371372 */ self.fma64("1", "9999999999999999", "0.5000000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371373 */ self.fma64("1", "9999999999999999", "0.500000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371374 */ self.fma64("1", "9999999999999999", "0.50000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371375 */ self.fma64("1", "9999999999999999", "0.5000000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371376 */ self.fma64("1", "9999999999999999", "0.500000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371377 */ self.fma64("1", "9999999999999999", "0.50000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371378 */ self.fma64("1", "9999999999999999", "0.5000", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371379 */ self.fma64("1", "9999999999999999", "0.500", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371380 */ self.fma64("1", "9999999999999999", "0.50", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371381 */ self.fma64("1", "9999999999999999", "0.5", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371382 */ self.fma64("1", "9999999999999999", "0.5000000000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371383 */ self.fma64("1", "9999999999999999", "0.500000000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371384 */ self.fma64("1", "9999999999999999", "0.50000000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371385 */ self.fma64("1", "9999999999999999", "0.5000000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371386 */ self.fma64("1", "9999999999999999", "0.500000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371387 */ self.fma64("1", "9999999999999999", "0.50000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371388 */ self.fma64("1", "9999999999999999", "0.5000000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371389 */ self.fma64("1", "9999999999999999", "0.500000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371390 */ self.fma64("1", "9999999999999999", "0.50000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371391 */ self.fma64("1", "9999999999999999", "0.5000001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371392 */ self.fma64("1", "9999999999999999", "0.500001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371393 */ self.fma64("1", "9999999999999999", "0.50001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371394 */ self.fma64("1", "9999999999999999", "0.5001", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371395 */ self.fma64("1", "9999999999999999", "0.501", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371396 */ self.fma64("1", "9999999999999999", "0.51", "1.000000000000000E+16", .toNearestOrEven, .isInexact)
+ /* ddfma371420 */ self.fma64("1", "0", "1.123456789012345", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371421 */ self.fma64("1", "0", "1.123456789012345E-1", "0.1123456789012345", .toNearestOrEven)
+ /* ddfma371422 */ self.fma64("1", "0", "1.123456789012345E-2", "0.01123456789012345", .toNearestOrEven)
+ /* ddfma371423 */ self.fma64("1", "0", "1.123456789012345E-3", "0.001123456789012345", .toNearestOrEven)
+ /* ddfma371424 */ self.fma64("1", "0", "1.123456789012345E-4", "0.0001123456789012345", .toNearestOrEven)
+ /* ddfma371425 */ self.fma64("1", "0", "1.123456789012345E-5", "0.00001123456789012345", .toNearestOrEven)
+ /* ddfma371426 */ self.fma64("1", "0", "1.123456789012345E-6", "0.000001123456789012345", .toNearestOrEven)
+ /* ddfma371427 */ self.fma64("1", "0", "1.123456789012345E-7", "1.123456789012345E-7", .toNearestOrEven)
+ /* ddfma371428 */ self.fma64("1", "0", "1.123456789012345E-8", "1.123456789012345E-8", .toNearestOrEven)
+ /* ddfma371429 */ self.fma64("1", "0", "1.123456789012345E-9", "1.123456789012345E-9", .toNearestOrEven)
+ /* ddfma371430 */ self.fma64("1", "0", "1.123456789012345E-10", "1.123456789012345E-10", .toNearestOrEven)
+ /* ddfma371431 */ self.fma64("1", "0", "1.123456789012345E-11", "1.123456789012345E-11", .toNearestOrEven)
+ /* ddfma371432 */ self.fma64("1", "0", "1.123456789012345E-12", "1.123456789012345E-12", .toNearestOrEven)
+ /* ddfma371433 */ self.fma64("1", "0", "1.123456789012345E-13", "1.123456789012345E-13", .toNearestOrEven)
+ /* ddfma371434 */ self.fma64("1", "0", "1.123456789012345E-14", "1.123456789012345E-14", .toNearestOrEven)
+ /* ddfma371435 */ self.fma64("1", "0", "1.123456789012345E-15", "1.123456789012345E-15", .toNearestOrEven)
+ /* ddfma371436 */ self.fma64("1", "0", "1.123456789012345E-16", "1.123456789012345E-16", .toNearestOrEven)
+ /* ddfma371437 */ self.fma64("1", "0", "1.123456789012345E-17", "1.123456789012345E-17", .toNearestOrEven)
+ /* ddfma371438 */ self.fma64("1", "0", "1.123456789012345E-18", "1.123456789012345E-18", .toNearestOrEven)
+ /* ddfma371439 */ self.fma64("1", "0", "1.123456789012345E-19", "1.123456789012345E-19", .toNearestOrEven)
+ /* ddfma371440 */ self.fma64("1", "1.123456789012345", "0", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371441 */ self.fma64("1", "1.123456789012345E-1", "0", "0.1123456789012345", .toNearestOrEven)
+ /* ddfma371442 */ self.fma64("1", "1.123456789012345E-2", "0", "0.01123456789012345", .toNearestOrEven)
+ /* ddfma371443 */ self.fma64("1", "1.123456789012345E-3", "0", "0.001123456789012345", .toNearestOrEven)
+ /* ddfma371444 */ self.fma64("1", "1.123456789012345E-4", "0", "0.0001123456789012345", .toNearestOrEven)
+ /* ddfma371445 */ self.fma64("1", "1.123456789012345E-5", "0", "0.00001123456789012345", .toNearestOrEven)
+ /* ddfma371446 */ self.fma64("1", "1.123456789012345E-6", "0", "0.000001123456789012345", .toNearestOrEven)
+ /* ddfma371447 */ self.fma64("1", "1.123456789012345E-7", "0", "1.123456789012345E-7", .toNearestOrEven)
+ /* ddfma371448 */ self.fma64("1", "1.123456789012345E-8", "0", "1.123456789012345E-8", .toNearestOrEven)
+ /* ddfma371449 */ self.fma64("1", "1.123456789012345E-9", "0", "1.123456789012345E-9", .toNearestOrEven)
+ /* ddfma371450 */ self.fma64("1", "1.123456789012345E-10", "0", "1.123456789012345E-10", .toNearestOrEven)
+ /* ddfma371451 */ self.fma64("1", "1.123456789012345E-11", "0", "1.123456789012345E-11", .toNearestOrEven)
+ /* ddfma371452 */ self.fma64("1", "1.123456789012345E-12", "0", "1.123456789012345E-12", .toNearestOrEven)
+ /* ddfma371453 */ self.fma64("1", "1.123456789012345E-13", "0", "1.123456789012345E-13", .toNearestOrEven)
+ /* ddfma371454 */ self.fma64("1", "1.123456789012345E-14", "0", "1.123456789012345E-14", .toNearestOrEven)
+ /* ddfma371455 */ self.fma64("1", "1.123456789012345E-15", "0", "1.123456789012345E-15", .toNearestOrEven)
+ /* ddfma371456 */ self.fma64("1", "1.123456789012345E-16", "0", "1.123456789012345E-16", .toNearestOrEven)
+ /* ddfma371457 */ self.fma64("1", "1.123456789012345E-17", "0", "1.123456789012345E-17", .toNearestOrEven)
+ /* ddfma371458 */ self.fma64("1", "1.123456789012345E-18", "0", "1.123456789012345E-18", .toNearestOrEven)
+ /* ddfma371459 */ self.fma64("1", "1.123456789012345E-19", "0", "1.123456789012345E-19", .toNearestOrEven)
+ /* ddfma371460 */ self.fma64("1", "1.123456789012345", "0E-0", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371461 */ self.fma64("1", "1.123456789012345", "0E-1", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371462 */ self.fma64("1", "1.123456789012345", "0E-2", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371463 */ self.fma64("1", "1.123456789012345", "0E-3", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371464 */ self.fma64("1", "1.123456789012345", "0E-4", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371465 */ self.fma64("1", "1.123456789012345", "0E-5", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371466 */ self.fma64("1", "1.123456789012345", "0E-6", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371467 */ self.fma64("1", "1.123456789012345", "0E-7", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371468 */ self.fma64("1", "1.123456789012345", "0E-8", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371469 */ self.fma64("1", "1.123456789012345", "0E-9", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371470 */ self.fma64("1", "1.123456789012345", "0E-10", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371471 */ self.fma64("1", "1.123456789012345", "0E-11", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371472 */ self.fma64("1", "1.123456789012345", "0E-12", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371473 */ self.fma64("1", "1.123456789012345", "0E-13", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371474 */ self.fma64("1", "1.123456789012345", "0E-14", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371475 */ self.fma64("1", "1.123456789012345", "0E-15", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371476 */ self.fma64("1", "1.123456789012345", "0E-16", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371477 */ self.fma64("1", "1.123456789012345", "0E-17", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371478 */ self.fma64("1", "1.123456789012345", "0E-18", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371479 */ self.fma64("1", "1.123456789012345", "0E-19", "1.123456789012345", .toNearestOrEven)
+ /* ddfma371500 */ self.fma64("1", "0", "0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* ddfma371501 */ self.fma64("1", "-0", "0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* ddfma371502 */ self.fma64("1", "0", "-0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* ddfma371503 */ self.fma64("1", "-0", "-0E-19", "-0E-19", .toNearestOrAwayFromZero)
+ /* ddfma371511 */ self.fma64("1", "-11", "11", "0", .toNearestOrAwayFromZero)
+ /* ddfma371512 */ self.fma64("1", "11", "-11", "0", .toNearestOrAwayFromZero)
+ /* ddfma371540 */ self.fma64("1", "0", "0E-19", "0E-19", .toNearestOrEven)
+ /* ddfma371541 */ self.fma64("1", "-0", "0E-19", "0E-19", .toNearestOrEven)
+ /* ddfma371542 */ self.fma64("1", "0", "-0E-19", "0E-19", .toNearestOrEven)
+ /* ddfma371543 */ self.fma64("1", "-0", "-0E-19", "-0E-19", .toNearestOrEven)
+ /* ddfma371551 */ self.fma64("1", "-11", "11", "0", .toNearestOrEven)
+ /* ddfma371552 */ self.fma64("1", "11", "-11", "0", .toNearestOrEven)
+ /* ddfma371580 */ self.fma64("1", "0", "0E-19", "0E-19", .towardZero)
+ /* ddfma371581 */ self.fma64("1", "-0", "0E-19", "0E-19", .towardZero)
+ /* ddfma371582 */ self.fma64("1", "0", "-0E-19", "0E-19", .towardZero)
+ /* ddfma371583 */ self.fma64("1", "-0", "-0E-19", "-0E-19", .towardZero)
+ /* ddfma371591 */ self.fma64("1", "-11", "11", "0", .towardZero)
+ /* ddfma371592 */ self.fma64("1", "11", "-11", "0", .towardZero)
+ /* ddfma371600 */ self.fma64("1", "0", "0E-19", "0E-19", .up)
+ /* ddfma371601 */ self.fma64("1", "-0", "0E-19", "0E-19", .up)
+ /* ddfma371602 */ self.fma64("1", "0", "-0E-19", "0E-19", .up)
+ /* ddfma371603 */ self.fma64("1", "-0", "-0E-19", "-0E-19", .up)
+ /* ddfma371611 */ self.fma64("1", "-11", "11", "0", .up)
+ /* ddfma371612 */ self.fma64("1", "11", "-11", "0", .up)
+ /* ddfma371620 */ self.fma64("1", "0", "0E-19", "0E-19", .down)
+ /* ddfma371621 */ self.fma64("1", "-0", "0E-19", "-0E-19", .down)
+ /* ddfma371622 */ self.fma64("1", "0", "-0E-19", "-0E-19", .down)
+ /* ddfma371623 */ self.fma64("1", "-0", "-0E-19", "-0E-19", .down)
+ /* ddfma371631 */ self.fma64("1", "-11", "11", "-0", .down)
+ /* ddfma371632 */ self.fma64("1", "11", "-11", "-0", .down)
+ /* ddfma371701 */ self.fma64("1", "130E-2", "120E-2", "2.50", .down)
+ /* ddfma371702 */ self.fma64("1", "130E-2", "12E-1", "2.50", .down)
+ /* ddfma371703 */ self.fma64("1", "130E-2", "1E0", "2.30", .down)
+ /* ddfma371704 */ self.fma64("1", "1E2", "1E4", "1.01E+4", .down)
+ /* ddfma371705 */ self.fma64("1", "130E-2", "-120E-2", "0.10", .down)
+ /* ddfma371706 */ self.fma64("1", "130E-2", "-12E-1", "0.10", .down)
+ /* ddfma371707 */ self.fma64("1", "130E-2", "-1E0", "0.30", .down)
+ /* ddfma371708 */ self.fma64("1", "1E2", "-1E4", "-9.9E+3", .down)
+ /* ddfma375001 */ self.fma64("1", "1234567890123456", "1", "1234567890123457", .toNearestOrEven)
+ /* ddfma375002 */ self.fma64("1", "1234567890123456", "0.6", "1234567890123457", .toNearestOrEven, .isInexact)
+ /* ddfma375003 */ self.fma64("1", "1234567890123456", "0.06", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375004 */ self.fma64("1", "1234567890123456", "6E-3", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375005 */ self.fma64("1", "1234567890123456", "6E-4", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375006 */ self.fma64("1", "1234567890123456", "6E-5", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375007 */ self.fma64("1", "1234567890123456", "6E-6", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375008 */ self.fma64("1", "1234567890123456", "6E-7", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375009 */ self.fma64("1", "1234567890123456", "6E-8", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375010 */ self.fma64("1", "1234567890123456", "6E-9", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375011 */ self.fma64("1", "1234567890123456", "6E-10", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375012 */ self.fma64("1", "1234567890123456", "6E-11", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375013 */ self.fma64("1", "1234567890123456", "6E-12", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375014 */ self.fma64("1", "1234567890123456", "6E-13", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375015 */ self.fma64("1", "1234567890123456", "6E-14", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375016 */ self.fma64("1", "1234567890123456", "6E-15", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375017 */ self.fma64("1", "1234567890123456", "6E-16", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375018 */ self.fma64("1", "1234567890123456", "6E-17", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375019 */ self.fma64("1", "1234567890123456", "6E-18", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375020 */ self.fma64("1", "1234567890123456", "6E-19", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375021 */ self.fma64("1", "1234567890123456", "6E-20", "1234567890123456", .toNearestOrEven, .isInexact)
+ /* ddfma375030 */ self.fma64("1", "12345678", "1", "12345679", .toNearestOrEven)
+ /* ddfma375031 */ self.fma64("1", "12345678", "0.1", "12345678.1", .toNearestOrEven)
+ /* ddfma375032 */ self.fma64("1", "12345678", "0.12", "12345678.12", .toNearestOrEven)
+ /* ddfma375033 */ self.fma64("1", "12345678", "0.123", "12345678.123", .toNearestOrEven)
+ /* ddfma375034 */ self.fma64("1", "12345678", "0.1234", "12345678.1234", .toNearestOrEven)
+ /* ddfma375035 */ self.fma64("1", "12345678", "0.12345", "12345678.12345", .toNearestOrEven)
+ /* ddfma375036 */ self.fma64("1", "12345678", "0.123456", "12345678.123456", .toNearestOrEven)
+ /* ddfma375037 */ self.fma64("1", "12345678", "0.1234567", "12345678.1234567", .toNearestOrEven)
+ /* ddfma375038 */ self.fma64("1", "12345678", "0.12345678", "12345678.12345678", .toNearestOrEven)
+ /* ddfma375039 */ self.fma64("1", "12345678", "0.123456789", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddfma375040 */ self.fma64("1", "12345678", "0.123456785", "12345678.12345678", .toNearestOrEven, .isInexact)
+ /* ddfma375041 */ self.fma64("1", "12345678", "0.1234567850", "12345678.12345678", .toNearestOrEven, .isInexact)
+ /* ddfma375042 */ self.fma64("1", "12345678", "0.1234567851", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddfma375043 */ self.fma64("1", "12345678", "0.12345678501", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddfma375044 */ self.fma64("1", "12345678", "0.123456785001", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddfma375045 */ self.fma64("1", "12345678", "0.1234567850001", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddfma375046 */ self.fma64("1", "12345678", "0.12345678500001", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddfma375047 */ self.fma64("1", "12345678", "0.123456785000001", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddfma375048 */ self.fma64("1", "12345678", "0.1234567850000001", "12345678.12345679", .toNearestOrEven, .isInexact)
+ /* ddfma375049 */ self.fma64("1", "12345678", "0.1234567850000000", "12345678.12345678", .toNearestOrEven, .isInexact)
+ /* ddfma375050 */ self.fma64("1", "12345678", "0.0234567750000000", "12345678.02345678", .toNearestOrEven, .isInexact)
+ /* ddfma375051 */ self.fma64("1", "12345678", "0.0034567750000000", "12345678.00345678", .toNearestOrEven, .isInexact)
+ /* ddfma375052 */ self.fma64("1", "12345678", "0.0004567750000000", "12345678.00045678", .toNearestOrEven, .isInexact)
+ /* ddfma375053 */ self.fma64("1", "12345678", "0.0000567750000000", "12345678.00005678", .toNearestOrEven, .isInexact)
+ /* ddfma375054 */ self.fma64("1", "12345678", "0.0000067750000000", "12345678.00000678", .toNearestOrEven, .isInexact)
+ /* ddfma375055 */ self.fma64("1", "12345678", "0.0000007750000000", "12345678.00000078", .toNearestOrEven, .isInexact)
+ /* ddfma375056 */ self.fma64("1", "12345678", "0.0000000750000000", "12345678.00000008", .toNearestOrEven, .isInexact)
+ /* ddfma375057 */ self.fma64("1", "12345678", "0.0000000050000000", "12345678.00000000", .toNearestOrEven, .isInexact)
+ /* ddfma375060 */ self.fma64("1", "12345678", "0.0234567750000001", "12345678.02345678", .toNearestOrEven, .isInexact)
+ /* ddfma375061 */ self.fma64("1", "12345678", "0.0034567750000001", "12345678.00345678", .toNearestOrEven, .isInexact)
+ /* ddfma375062 */ self.fma64("1", "12345678", "0.0004567750000001", "12345678.00045678", .toNearestOrEven, .isInexact)
+ /* ddfma375063 */ self.fma64("1", "12345678", "0.0000567750000001", "12345678.00005678", .toNearestOrEven, .isInexact)
+ /* ddfma375064 */ self.fma64("1", "12345678", "0.0000067750000001", "12345678.00000678", .toNearestOrEven, .isInexact)
+ /* ddfma375065 */ self.fma64("1", "12345678", "0.0000007750000001", "12345678.00000078", .toNearestOrEven, .isInexact)
+ /* ddfma375066 */ self.fma64("1", "12345678", "0.0000000750000001", "12345678.00000008", .toNearestOrEven, .isInexact)
+ /* ddfma375067 */ self.fma64("1", "12345678", "0.0000000050000001", "12345678.00000001", .toNearestOrEven, .isInexact)
+ /* ddfma37540 */ self.fma64("1", "6543210123456788", "0.499999999", "6543210123456788", .toNearestOrEven, .isInexact)
+ /* ddfma37541 */ self.fma64("1", "6543210123456788", "0.5", "6543210123456788", .toNearestOrEven, .isInexact)
+ /* ddfma37542 */ self.fma64("1", "6543210123456788", "0.500000001", "6543210123456789", .toNearestOrEven, .isInexact)
+ /* ddfma37550 */ self.fma64("1", "6543210123456789", "0", "6543210123456789", .towardZero)
+ /* ddfma37551 */ self.fma64("1", "6543210123456789", "0.000000001", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37552 */ self.fma64("1", "6543210123456789", "0.000001", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37553 */ self.fma64("1", "6543210123456789", "0.1", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37554 */ self.fma64("1", "6543210123456789", "0.4", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37555 */ self.fma64("1", "6543210123456789", "0.49", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37556 */ self.fma64("1", "6543210123456789", "0.499999", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37557 */ self.fma64("1", "6543210123456789", "0.499999999", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37558 */ self.fma64("1", "6543210123456789", "0.5", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37559 */ self.fma64("1", "6543210123456789", "0.500000001", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37560 */ self.fma64("1", "6543210123456789", "0.500001", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37561 */ self.fma64("1", "6543210123456789", "0.51", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37562 */ self.fma64("1", "6543210123456789", "0.6", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37563 */ self.fma64("1", "6543210123456789", "0.9", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37564 */ self.fma64("1", "6543210123456789", "0.99999", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37565 */ self.fma64("1", "6543210123456789", "0.999999999", "6543210123456789", .towardZero, .isInexact)
+ /* ddfma37566 */ self.fma64("1", "6543210123456789", "1", "6543210123456790", .towardZero)
+ /* ddfma37567 */ self.fma64("1", "6543210123456789", "1.00000001", "6543210123456790", .towardZero, .isInexact)
+ /* ddfma37568 */ self.fma64("1", "6543210123456789", "1.00001", "6543210123456790", .towardZero, .isInexact)
+ /* ddfma37569 */ self.fma64("1", "6543210123456789", "1.1", "6543210123456790", .towardZero, .isInexact)
+ /* ddfma37575 */ self.fma64("1", "1E-383", "-1E-398", "9.99999999999999E-384", .toNearestOrEven)
+ /* ddfma37576 */ self.fma64("1", "-1E-383", "+1E-398", "-9.99999999999999E-384", .toNearestOrEven)
+ /* ddfma37661 */ self.fma64("1", "1e-398", "9.000000000000000E+384", "9.000000000000000E+384", .towardZero, .isInexact)
+ /* ddfma37662 */ self.fma64("1", "0", "9.000000000000000E+384", "9.000000000000000E+384", .towardZero)
+ /* ddfma37663 */ self.fma64("1", "1e-388", "9.000000000000000E+374", "9.000000000000000E+374", .towardZero, .isInexact)
+ /* ddfma37664 */ self.fma64("1", "0", "9.000000000000000E+374", "9.000000000000000E+374", .towardZero)
+ /* ddfma37701 */ self.fma64("1", "5.00", "1.00E-3", "5.00100", .toNearestOrEven)
+ /* ddfma37702 */ self.fma64("1", "00.00", "0.000", "0.000", .toNearestOrEven)
+ /* ddfma37703 */ self.fma64("1", "00.00", "0E-3", "0.000", .toNearestOrEven)
+ /* ddfma37704 */ self.fma64("1", "0E-3", "00.00", "0.000", .toNearestOrEven)
+ /* ddfma37710 */ self.fma64("1", "0E+3", "00.00", "0.00", .toNearestOrEven)
+ /* ddfma37711 */ self.fma64("1", "0E+3", "00.0", "0.0", .toNearestOrEven)
+ /* ddfma37712 */ self.fma64("1", "0E+3", "00.", "0", .toNearestOrEven)
+ /* ddfma37713 */ self.fma64("1", "0E+3", "00.E+1", "0E+1", .toNearestOrEven)
+ /* ddfma37714 */ self.fma64("1", "0E+3", "00.E+2", "0E+2", .toNearestOrEven)
+ /* ddfma37715 */ self.fma64("1", "0E+3", "00.E+3", "0E+3", .toNearestOrEven)
+ /* ddfma37716 */ self.fma64("1", "0E+3", "00.E+4", "0E+3", .toNearestOrEven)
+ /* ddfma37717 */ self.fma64("1", "0E+3", "00.E+5", "0E+3", .toNearestOrEven)
+ /* ddfma37718 */ self.fma64("1", "0E+3", "-00.0", "0.0", .toNearestOrEven)
+ /* ddfma37719 */ self.fma64("1", "0E+3", "-00.", "0", .toNearestOrEven)
+ /* ddfma37720 */ self.fma64("1", "00.00", "0E+3", "0.00", .toNearestOrEven)
+ /* ddfma37721 */ self.fma64("1", "00.0", "0E+3", "0.0", .toNearestOrEven)
+ /* ddfma37722 */ self.fma64("1", "00.", "0E+3", "0", .toNearestOrEven)
+ /* ddfma37723 */ self.fma64("1", "00.E+1", "0E+3", "0E+1", .toNearestOrEven)
+ /* ddfma37724 */ self.fma64("1", "00.E+2", "0E+3", "0E+2", .toNearestOrEven)
+ /* ddfma37725 */ self.fma64("1", "00.E+3", "0E+3", "0E+3", .toNearestOrEven)
+ /* ddfma37726 */ self.fma64("1", "00.E+4", "0E+3", "0E+3", .toNearestOrEven)
+ /* ddfma37727 */ self.fma64("1", "00.E+5", "0E+3", "0E+3", .toNearestOrEven)
+ /* ddfma37728 */ self.fma64("1", "-00.00", "0E+3", "0.00", .toNearestOrEven)
+ /* ddfma37729 */ self.fma64("1", "-00.0", "0E+3", "0.0", .toNearestOrEven)
+ /* ddfma37730 */ self.fma64("1", "-00.", "0E+3", "0", .toNearestOrEven)
+ /* ddfma37731 */ self.fma64("1", "0E+3", "-00.E+1", "0E+1", .toNearestOrEven)
+ /* ddfma37732 */ self.fma64("1", "0", "0", "0", .toNearestOrEven)
+ /* ddfma37733 */ self.fma64("1", "0", "-0", "0", .toNearestOrEven)
+ /* ddfma37734 */ self.fma64("1", "-0", "0", "0", .toNearestOrEven)
+ /* ddfma37735 */ self.fma64("1", "-0", "-0", "-0", .toNearestOrEven)
+ /* ddfma37736 */ self.fma64("1", "1", "-1", "0", .toNearestOrEven)
+ /* ddfma37737 */ self.fma64("1", "-1", "-1", "-2", .toNearestOrEven)
+ /* ddfma37738 */ self.fma64("1", "1", "1", "2", .toNearestOrEven)
+ /* ddfma37739 */ self.fma64("1", "-1", "1", "0", .toNearestOrEven)
+ /* ddfma37741 */ self.fma64("1", "0", "-1", "-1", .toNearestOrEven)
+ /* ddfma37742 */ self.fma64("1", "-0", "-1", "-1", .toNearestOrEven)
+ /* ddfma37743 */ self.fma64("1", "0", "1", "1", .toNearestOrEven)
+ /* ddfma37744 */ self.fma64("1", "-0", "1", "1", .toNearestOrEven)
+ /* ddfma37745 */ self.fma64("1", "-1", "0", "-1", .toNearestOrEven)
+ /* ddfma37746 */ self.fma64("1", "-1", "-0", "-1", .toNearestOrEven)
+ /* ddfma37747 */ self.fma64("1", "1", "0", "1", .toNearestOrEven)
+ /* ddfma37748 */ self.fma64("1", "1", "-0", "1", .toNearestOrEven)
+ /* ddfma37751 */ self.fma64("1", "0.0", "-1", "-1.0", .toNearestOrEven)
+ /* ddfma37752 */ self.fma64("1", "-0.0", "-1", "-1.0", .toNearestOrEven)
+ /* ddfma37753 */ self.fma64("1", "0.0", "1", "1.0", .toNearestOrEven)
+ /* ddfma37754 */ self.fma64("1", "-0.0", "1", "1.0", .toNearestOrEven)
+ /* ddfma37755 */ self.fma64("1", "-1.0", "0", "-1.0", .toNearestOrEven)
+ /* ddfma37756 */ self.fma64("1", "-1.0", "-0", "-1.0", .toNearestOrEven)
+ /* ddfma37757 */ self.fma64("1", "1.0", "0", "1.0", .toNearestOrEven)
+ /* ddfma37758 */ self.fma64("1", "1.0", "-0", "1.0", .toNearestOrEven)
+ /* ddfma37761 */ self.fma64("1", "0", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddfma37762 */ self.fma64("1", "-0", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddfma37763 */ self.fma64("1", "0", "1.0", "1.0", .toNearestOrEven)
+ /* ddfma37764 */ self.fma64("1", "-0", "1.0", "1.0", .toNearestOrEven)
+ /* ddfma37765 */ self.fma64("1", "-1", "0.0", "-1.0", .toNearestOrEven)
+ /* ddfma37766 */ self.fma64("1", "-1", "-0.0", "-1.0", .toNearestOrEven)
+ /* ddfma37767 */ self.fma64("1", "1", "0.0", "1.0", .toNearestOrEven)
+ /* ddfma37768 */ self.fma64("1", "1", "-0.0", "1.0", .toNearestOrEven)
+ /* ddfma37771 */ self.fma64("1", "0.0", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddfma37772 */ self.fma64("1", "-0.0", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddfma37773 */ self.fma64("1", "0.0", "1.0", "1.0", .toNearestOrEven)
+ /* ddfma37774 */ self.fma64("1", "-0.0", "1.0", "1.0", .toNearestOrEven)
+ /* ddfma37775 */ self.fma64("1", "-1.0", "0.0", "-1.0", .toNearestOrEven)
+ /* ddfma37776 */ self.fma64("1", "-1.0", "-0.0", "-1.0", .toNearestOrEven)
+ /* ddfma37777 */ self.fma64("1", "1.0", "0.0", "1.0", .toNearestOrEven)
+ /* ddfma37778 */ self.fma64("1", "1.0", "-0.0", "1.0", .toNearestOrEven)
+ /* ddfma37780 */ self.fma64("1", "-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddfma37781 */ self.fma64("1", "-Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* ddfma37782 */ self.fma64("1", "-Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* ddfma37783 */ self.fma64("1", "-Inf", "-0", "-Infinity", .toNearestOrEven)
+ /* ddfma37784 */ self.fma64("1", "-Inf", "0", "-Infinity", .toNearestOrEven)
+ /* ddfma37785 */ self.fma64("1", "-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* ddfma37786 */ self.fma64("1", "-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* ddfma37787 */ self.fma64("1", "-1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddfma37788 */ self.fma64("1", "-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddfma37789 */ self.fma64("1", "-1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddfma37790 */ self.fma64("1", "-0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddfma37791 */ self.fma64("1", "0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddfma37792 */ self.fma64("1", "1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddfma37793 */ self.fma64("1", "1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddfma37794 */ self.fma64("1", "Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37800 */ self.fma64("1", "Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37801 */ self.fma64("1", "Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* ddfma37802 */ self.fma64("1", "Inf", "-1", "Infinity", .toNearestOrEven)
+ /* ddfma37803 */ self.fma64("1", "Inf", "-0", "Infinity", .toNearestOrEven)
+ /* ddfma37804 */ self.fma64("1", "Inf", "0", "Infinity", .toNearestOrEven)
+ /* ddfma37805 */ self.fma64("1", "Inf", "1", "Infinity", .toNearestOrEven)
+ /* ddfma37806 */ self.fma64("1", "Inf", "1000", "Infinity", .toNearestOrEven)
+ /* ddfma37807 */ self.fma64("1", "Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddfma37808 */ self.fma64("1", "-1000", "Inf", "Infinity", .toNearestOrEven)
+ /* ddfma37809 */ self.fma64("1", "-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37810 */ self.fma64("1", "-1", "Inf", "Infinity", .toNearestOrEven)
+ /* ddfma37811 */ self.fma64("1", "-0", "Inf", "Infinity", .toNearestOrEven)
+ /* ddfma37812 */ self.fma64("1", "0", "Inf", "Infinity", .toNearestOrEven)
+ /* ddfma37813 */ self.fma64("1", "1", "Inf", "Infinity", .toNearestOrEven)
+ /* ddfma37814 */ self.fma64("1", "1000", "Inf", "Infinity", .toNearestOrEven)
+ /* ddfma37815 */ self.fma64("1", "Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddfma37821 */ self.fma64("1", "NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* ddfma37822 */ self.fma64("1", "NaN", "-1000", "NaN", .toNearestOrEven)
+ /* ddfma37823 */ self.fma64("1", "NaN", "-1", "NaN", .toNearestOrEven)
+ /* ddfma37824 */ self.fma64("1", "NaN", "-0", "NaN", .toNearestOrEven)
+ /* ddfma37825 */ self.fma64("1", "NaN", "0", "NaN", .toNearestOrEven)
+ /* ddfma37826 */ self.fma64("1", "NaN", "1", "NaN", .toNearestOrEven)
+ /* ddfma37827 */ self.fma64("1", "NaN", "1000", "NaN", .toNearestOrEven)
+ /* ddfma37828 */ self.fma64("1", "NaN", "Inf", "NaN", .toNearestOrEven)
+ /* ddfma37829 */ self.fma64("1", "NaN", "NaN", "NaN", .toNearestOrEven)
+ /* ddfma37830 */ self.fma64("1", "-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddfma37831 */ self.fma64("1", "-1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddfma37832 */ self.fma64("1", "-1", "NaN", "NaN", .toNearestOrEven)
+ /* ddfma37833 */ self.fma64("1", "-0", "NaN", "NaN", .toNearestOrEven)
+ /* ddfma37834 */ self.fma64("1", "0", "NaN", "NaN", .toNearestOrEven)
+ /* ddfma37835 */ self.fma64("1", "1", "NaN", "NaN", .toNearestOrEven)
+ /* ddfma37836 */ self.fma64("1", "1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddfma37837 */ self.fma64("1", "Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddfma37841 */ self.fma64("1", "sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37842 */ self.fma64("1", "sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37843 */ self.fma64("1", "sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37844 */ self.fma64("1", "sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37845 */ self.fma64("1", "sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37846 */ self.fma64("1", "sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37847 */ self.fma64("1", "sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37848 */ self.fma64("1", "sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37849 */ self.fma64("1", "sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37850 */ self.fma64("1", "NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37851 */ self.fma64("1", "-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37852 */ self.fma64("1", "-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37853 */ self.fma64("1", "-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37854 */ self.fma64("1", "-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37855 */ self.fma64("1", "0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37856 */ self.fma64("1", "1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37857 */ self.fma64("1", "1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37858 */ self.fma64("1", "Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37859 */ self.fma64("1", "NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37861 */ self.fma64("1", "NaN(0x1)", "-Inf", "NaN(0x1)", .toNearestOrEven)
+ /* ddfma37862 */ self.fma64("1", "+NaN(0x2)", "-1000", "NaN(0x2)", .toNearestOrEven)
+ /* ddfma37863 */ self.fma64("1", "NaN(0x3)", "1000", "NaN(0x3)", .toNearestOrEven)
+ /* ddfma37864 */ self.fma64("1", "NaN(0x4)", "Inf", "NaN(0x4)", .toNearestOrEven)
+ /* ddfma37865 */ self.fma64("1", "NaN(0x5)", "+NaN(0x6)", "NaN(0x5)", .toNearestOrEven)
+ /* ddfma37866 */ self.fma64("1", "-Inf", "NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* ddfma37867 */ self.fma64("1", "-1000", "NaN(0x8)", "NaN(0x8)", .toNearestOrEven)
+ /* ddfma37868 */ self.fma64("1", "1000", "NaN(0x9)", "NaN(0x9)", .toNearestOrEven)
+ /* ddfma37869 */ self.fma64("1", "Inf", "+NaN(0xa)", "NaN(0xa)", .toNearestOrEven)
+ /* ddfma37871 */ self.fma64("1", "sNaN(0xb)", "-Inf", "NaN(0xb)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37872 */ self.fma64("1", "sNaN(0xc)", "-1000", "NaN(0xc)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37873 */ self.fma64("1", "sNaN(0xd)", "1000", "NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37874 */ self.fma64("1", "sNaN(0xe)", "NaN(0x11)", "NaN(0xe)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37875 */ self.fma64("1", "sNaN(0xf)", "sNaN(0x12)", "NaN(0xf)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37876 */ self.fma64("1", "NaN(0x10)", "sNaN(0x13)", "NaN(0x13)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37877 */ self.fma64("1", "-Inf", "+sNaN(0x14)", "NaN(0x14)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37878 */ self.fma64("1", "-1000", "sNaN(0x15)", "NaN(0x15)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37879 */ self.fma64("1", "1000", "sNaN(0x16)", "NaN(0x16)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37880 */ self.fma64("1", "Inf", "sNaN(0x17)", "NaN(0x17)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37881 */ self.fma64("1", "+NaN(0x19)", "+sNaN(0x18)", "NaN(0x18)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37882 */ self.fma64("1", "-NaN(0x1a)", "NaN(0x1c)", "-NaN(0x1a)", .toNearestOrEven)
+ /* ddfma37883 */ self.fma64("1", "-sNaN(0x1b)", "sNaN(0x1d)", "-NaN(0x1b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37884 */ self.fma64("1", "1000", "-NaN(0x1e)", "-NaN(0x1e)", .toNearestOrEven)
+ /* ddfma37885 */ self.fma64("1", "1000", "-sNaN(0x1f)", "-NaN(0x1f)", .toNearestOrEven, .isInvalidOperation)
+ /* ddfma37973 */ self.fma64("1", "9.999999999999999E+384", "1", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddfma37974 */ self.fma64("1", "9999999999999999E+369", "1", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddfma37975 */ self.fma64("1", "9999999999999999E+369", "1E+369", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37976 */ self.fma64("1", "9999999999999999E+369", "9E+368", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37977 */ self.fma64("1", "9999999999999999E+369", "8E+368", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37978 */ self.fma64("1", "9999999999999999E+369", "7E+368", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37979 */ self.fma64("1", "9999999999999999E+369", "6E+368", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37980 */ self.fma64("1", "9999999999999999E+369", "5E+368", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37981 */ self.fma64("1", "9999999999999999E+369", "4E+368", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddfma37982 */ self.fma64("1", "9999999999999999E+369", "3E+368", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddfma37983 */ self.fma64("1", "9999999999999999E+369", "2E+368", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddfma37984 */ self.fma64("1", "9999999999999999E+369", "1E+368", "9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddfma37986 */ self.fma64("1", "-9.999999999999999E+384", "-1", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddfma37987 */ self.fma64("1", "-9999999999999999E+369", "-1", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddfma37988 */ self.fma64("1", "-9999999999999999E+369", "-1E+369", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37989 */ self.fma64("1", "-9999999999999999E+369", "-9E+368", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37990 */ self.fma64("1", "-9999999999999999E+369", "-8E+368", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37991 */ self.fma64("1", "-9999999999999999E+369", "-7E+368", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37992 */ self.fma64("1", "-9999999999999999E+369", "-6E+368", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37993 */ self.fma64("1", "-9999999999999999E+369", "-5E+368", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddfma37994 */ self.fma64("1", "-9999999999999999E+369", "-4E+368", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddfma37995 */ self.fma64("1", "-9999999999999999E+369", "-3E+368", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddfma37996 */ self.fma64("1", "-9999999999999999E+369", "-2E+368", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* ddfma37997 */ self.fma64("1", "-9999999999999999E+369", "-1E+368", "-9.999999999999999E+384", .toNearestOrEven, .isInexact)
+ /* fma0300 */ self.fma64("9e+384", "10", "0", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* fma0301 */ self.fma64("1e+384", "10", "0", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* fma0302 */ self.fma64("1e+384", "10", "-1e+384", "9.000000000000000E+384", .toNearestOrEven)
+ /* fma0303 */ self.fma64("1e+384", "10", "-9e+384", "1.000000000000000E+384", .toNearestOrEven)
+ /* fma0305 */ self.fma64("1e-398", "0.1", "0", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* fma0306 */ self.fma64("1e-398", "0.1", "1", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* fma0307 */ self.fma64("1e-398", "0.1", "1e-398", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ }
+
+ private func fma64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _arg2: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let arg2 = self.parseDecimal64(_arg2, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg2.addingProduct(arg0, arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_fma(arg0, arg1, arg2, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_fma128() {
+ /* dqadd3001 */ self.fma128("1", "1", "1", "2", .toNearestOrEven)
+ /* dqadd3002 */ self.fma128("1", "2", "3", "5", .toNearestOrEven)
+ /* dqadd3003 */ self.fma128("1", "5.75", "3.3", "9.05", .toNearestOrEven)
+ /* dqadd3004 */ self.fma128("1", "5", "-3", "2", .toNearestOrEven)
+ /* dqadd3005 */ self.fma128("1", "-5", "-3", "-8", .toNearestOrEven)
+ /* dqadd3006 */ self.fma128("1", "-7", "2.5", "-4.5", .toNearestOrEven)
+ /* dqadd3007 */ self.fma128("1", "0.7", "0.3", "1.0", .toNearestOrEven)
+ /* dqadd3008 */ self.fma128("1", "1.25", "1.25", "2.50", .toNearestOrEven)
+ /* dqadd3009 */ self.fma128("1", "1.23456789", "1.00000000", "2.23456789", .toNearestOrEven)
+ /* dqadd3010 */ self.fma128("1", "1.23456789", "1.00000011", "2.23456800", .toNearestOrEven)
+ /* dqadd3011 */ self.fma128("1", "0.4444444444444444444444444444444446", "0.5555555555555555555555555555555555", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3012 */ self.fma128("1", "0.4444444444444444444444444444444445", "0.5555555555555555555555555555555555", "1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd3013 */ self.fma128("1", "0.4444444444444444444444444444444444", "0.5555555555555555555555555555555555", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqadd3014 */ self.fma128("1", "4444444444444444444444444444444444", "0.49", "4444444444444444444444444444444444", .toNearestOrEven, .isInexact)
+ /* dqadd3015 */ self.fma128("1", "4444444444444444444444444444444444", "0.499", "4444444444444444444444444444444444", .toNearestOrEven, .isInexact)
+ /* dqadd3016 */ self.fma128("1", "4444444444444444444444444444444444", "0.4999", "4444444444444444444444444444444444", .toNearestOrEven, .isInexact)
+ /* dqadd3017 */ self.fma128("1", "4444444444444444444444444444444444", "0.5000", "4444444444444444444444444444444444", .toNearestOrEven, .isInexact)
+ /* dqadd3018 */ self.fma128("1", "4444444444444444444444444444444444", "0.5001", "4444444444444444444444444444444445", .toNearestOrEven, .isInexact)
+ /* dqadd3019 */ self.fma128("1", "4444444444444444444444444444444444", "0.501", "4444444444444444444444444444444445", .toNearestOrEven, .isInexact)
+ /* dqadd3020 */ self.fma128("1", "4444444444444444444444444444444444", "0.51", "4444444444444444444444444444444445", .toNearestOrEven, .isInexact)
+ /* dqadd3021 */ self.fma128("1", "0", "1", "1", .toNearestOrEven)
+ /* dqadd3022 */ self.fma128("1", "1", "1", "2", .toNearestOrEven)
+ /* dqadd3023 */ self.fma128("1", "2", "1", "3", .toNearestOrEven)
+ /* dqadd3024 */ self.fma128("1", "3", "1", "4", .toNearestOrEven)
+ /* dqadd3025 */ self.fma128("1", "4", "1", "5", .toNearestOrEven)
+ /* dqadd3026 */ self.fma128("1", "5", "1", "6", .toNearestOrEven)
+ /* dqadd3027 */ self.fma128("1", "6", "1", "7", .toNearestOrEven)
+ /* dqadd3028 */ self.fma128("1", "7", "1", "8", .toNearestOrEven)
+ /* dqadd3029 */ self.fma128("1", "8", "1", "9", .toNearestOrEven)
+ /* dqadd3030 */ self.fma128("1", "9", "1", "10", .toNearestOrEven)
+ /* dqadd3031 */ self.fma128("1", "0.9998", "0.0000", "0.9998", .toNearestOrEven)
+ /* dqadd3032 */ self.fma128("1", "0.9998", "0.0001", "0.9999", .toNearestOrEven)
+ /* dqadd3033 */ self.fma128("1", "0.9998", "0.0002", "1.0000", .toNearestOrEven)
+ /* dqadd3034 */ self.fma128("1", "0.9998", "0.0003", "1.0001", .toNearestOrEven)
+ /* dqadd3035 */ self.fma128("1", "70", "10000e+34", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd3036 */ self.fma128("1", "700", "10000e+34", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd3037 */ self.fma128("1", "7000", "10000e+34", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd3038 */ self.fma128("1", "70000", "10000e+34", "1.000000000000000000000000000000001E+38", .toNearestOrEven, .isInexact)
+ /* dqadd3039 */ self.fma128("1", "700000", "10000e+34", "1.000000000000000000000000000000007E+38", .toNearestOrEven)
+ /* dqadd3040 */ self.fma128("1", "10000e+34", "70", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd3041 */ self.fma128("1", "10000e+34", "700", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd3042 */ self.fma128("1", "10000e+34", "7000", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqadd3044 */ self.fma128("1", "10000e+34", "70000", "1.000000000000000000000000000000001E+38", .toNearestOrEven, .isInexact)
+ /* dqadd3045 */ self.fma128("1", "10000e+34", "700000", "1.000000000000000000000000000000007E+38", .toNearestOrEven)
+ /* dqadd3046 */ self.fma128("1", "10000e+9", "7", "10000000000007", .toNearestOrEven)
+ /* dqadd3047 */ self.fma128("1", "10000e+9", "70", "10000000000070", .toNearestOrEven)
+ /* dqadd3048 */ self.fma128("1", "10000e+9", "700", "10000000000700", .toNearestOrEven)
+ /* dqadd3049 */ self.fma128("1", "10000e+9", "7000", "10000000007000", .toNearestOrEven)
+ /* dqadd3050 */ self.fma128("1", "10000e+9", "70000", "10000000070000", .toNearestOrEven)
+ /* dqadd3051 */ self.fma128("1", "10000e+9", "700000", "10000000700000", .toNearestOrEven)
+ /* dqadd3052 */ self.fma128("1", "10000e+9", "7000000", "10000007000000", .toNearestOrEven)
+ /* dqadd3053 */ self.fma128("1", "12", "7.00", "19.00", .toNearestOrEven)
+ /* dqadd3054 */ self.fma128("1", "1.3", "-1.07", "0.23", .toNearestOrEven)
+ /* dqadd3055 */ self.fma128("1", "1.3", "-1.30", "0.00", .toNearestOrEven)
+ /* dqadd3056 */ self.fma128("1", "1.3", "-2.07", "-0.77", .toNearestOrEven)
+ /* dqadd3057 */ self.fma128("1", "1E+2", "1E+4", "1.01E+4", .toNearestOrEven)
+ /* dqadd3061 */ self.fma128("1", "1", "0.0001", "1.0001", .toNearestOrEven)
+ /* dqadd3062 */ self.fma128("1", "1", "0.00001", "1.00001", .toNearestOrEven)
+ /* dqadd3063 */ self.fma128("1", "1", "0.000001", "1.000001", .toNearestOrEven)
+ /* dqadd3064 */ self.fma128("1", "1", "0.0000001", "1.0000001", .toNearestOrEven)
+ /* dqadd3065 */ self.fma128("1", "1", "0.00000001", "1.00000001", .toNearestOrEven)
+ /* dqadd3070 */ self.fma128("1", "1", "0", "1", .toNearestOrEven)
+ /* dqadd3071 */ self.fma128("1", "1", "0.", "1", .toNearestOrEven)
+ /* dqadd3072 */ self.fma128("1", "1", ".0", "1.0", .toNearestOrEven)
+ /* dqadd3073 */ self.fma128("1", "1", "0.0", "1.0", .toNearestOrEven)
+ /* dqadd3074 */ self.fma128("1", "1", "0.00", "1.00", .toNearestOrEven)
+ /* dqadd3075 */ self.fma128("1", "0", "1", "1", .toNearestOrEven)
+ /* dqadd3076 */ self.fma128("1", "0.", "1", "1", .toNearestOrEven)
+ /* dqadd3077 */ self.fma128("1", ".0", "1", "1.0", .toNearestOrEven)
+ /* dqadd3078 */ self.fma128("1", "0.0", "1", "1.0", .toNearestOrEven)
+ /* dqadd3079 */ self.fma128("1", "0.00", "1", "1.00", .toNearestOrEven)
+ /* dqadd3080 */ self.fma128("1", "999999998", "1", "999999999", .toNearestOrEven)
+ /* dqadd3081 */ self.fma128("1", "999999999", "1", "1000000000", .toNearestOrEven)
+ /* dqadd3082 */ self.fma128("1", "99999999", "1", "100000000", .toNearestOrEven)
+ /* dqadd3083 */ self.fma128("1", "9999999", "1", "10000000", .toNearestOrEven)
+ /* dqadd3084 */ self.fma128("1", "999999", "1", "1000000", .toNearestOrEven)
+ /* dqadd3085 */ self.fma128("1", "99999", "1", "100000", .toNearestOrEven)
+ /* dqadd3086 */ self.fma128("1", "9999", "1", "10000", .toNearestOrEven)
+ /* dqadd3087 */ self.fma128("1", "999", "1", "1000", .toNearestOrEven)
+ /* dqadd3088 */ self.fma128("1", "99", "1", "100", .toNearestOrEven)
+ /* dqadd3089 */ self.fma128("1", "9", "1", "10", .toNearestOrEven)
+ /* dqadd3090 */ self.fma128("1", "-56267E-10", "0", "-0.0000056267", .toNearestOrEven)
+ /* dqadd3091 */ self.fma128("1", "-56267E-6", "0", "-0.056267", .toNearestOrEven)
+ /* dqadd3092 */ self.fma128("1", "-56267E-5", "0", "-0.56267", .toNearestOrEven)
+ /* dqadd3093 */ self.fma128("1", "-56267E-4", "0", "-5.6267", .toNearestOrEven)
+ /* dqadd3094 */ self.fma128("1", "-56267E-3", "0", "-56.267", .toNearestOrEven)
+ /* dqadd3095 */ self.fma128("1", "-56267E-2", "0", "-562.67", .toNearestOrEven)
+ /* dqadd3096 */ self.fma128("1", "-56267E-1", "0", "-5626.7", .toNearestOrEven)
+ /* dqadd3097 */ self.fma128("1", "-56267E-0", "0", "-56267", .toNearestOrEven)
+ /* dqadd3098 */ self.fma128("1", "-5E-10", "0", "-5E-10", .toNearestOrEven)
+ /* dqadd3099 */ self.fma128("1", "-5E-7", "0", "-5E-7", .toNearestOrEven)
+ /* dqadd3100 */ self.fma128("1", "-5E-6", "0", "-0.000005", .toNearestOrEven)
+ /* dqadd3101 */ self.fma128("1", "-5E-5", "0", "-0.00005", .toNearestOrEven)
+ /* dqadd3102 */ self.fma128("1", "-5E-4", "0", "-0.0005", .toNearestOrEven)
+ /* dqadd3103 */ self.fma128("1", "-5E-1", "0", "-0.5", .toNearestOrEven)
+ /* dqadd3104 */ self.fma128("1", "-5E0", "0", "-5", .toNearestOrEven)
+ /* dqadd3105 */ self.fma128("1", "-5E1", "0", "-50", .toNearestOrEven)
+ /* dqadd3106 */ self.fma128("1", "-5E5", "0", "-500000", .toNearestOrEven)
+ /* dqadd3107 */ self.fma128("1", "-5E33", "0", "-5000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd3108 */ self.fma128("1", "-5E34", "0", "-5.000000000000000000000000000000000E+34", .toNearestOrEven)
+ /* dqadd3109 */ self.fma128("1", "-5E35", "0", "-5.000000000000000000000000000000000E+35", .toNearestOrEven)
+ /* dqadd3110 */ self.fma128("1", "-5E36", "0", "-5.000000000000000000000000000000000E+36", .toNearestOrEven)
+ /* dqadd3111 */ self.fma128("1", "-5E100", "0", "-5.000000000000000000000000000000000E+100", .toNearestOrEven)
+ /* dqadd3113 */ self.fma128("1", "0", "-56267E-10", "-0.0000056267", .toNearestOrEven)
+ /* dqadd3114 */ self.fma128("1", "0", "-56267E-6", "-0.056267", .toNearestOrEven)
+ /* dqadd3116 */ self.fma128("1", "0", "-56267E-5", "-0.56267", .toNearestOrEven)
+ /* dqadd3117 */ self.fma128("1", "0", "-56267E-4", "-5.6267", .toNearestOrEven)
+ /* dqadd3119 */ self.fma128("1", "0", "-56267E-3", "-56.267", .toNearestOrEven)
+ /* dqadd3120 */ self.fma128("1", "0", "-56267E-2", "-562.67", .toNearestOrEven)
+ /* dqadd3121 */ self.fma128("1", "0", "-56267E-1", "-5626.7", .toNearestOrEven)
+ /* dqadd3122 */ self.fma128("1", "0", "-56267E-0", "-56267", .toNearestOrEven)
+ /* dqadd3123 */ self.fma128("1", "0", "-5E-10", "-5E-10", .toNearestOrEven)
+ /* dqadd3124 */ self.fma128("1", "0", "-5E-7", "-5E-7", .toNearestOrEven)
+ /* dqadd3125 */ self.fma128("1", "0", "-5E-6", "-0.000005", .toNearestOrEven)
+ /* dqadd3126 */ self.fma128("1", "0", "-5E-5", "-0.00005", .toNearestOrEven)
+ /* dqadd3127 */ self.fma128("1", "0", "-5E-4", "-0.0005", .toNearestOrEven)
+ /* dqadd3128 */ self.fma128("1", "0", "-5E-1", "-0.5", .toNearestOrEven)
+ /* dqadd3129 */ self.fma128("1", "0", "-5E0", "-5", .toNearestOrEven)
+ /* dqadd3130 */ self.fma128("1", "0", "-5E1", "-50", .toNearestOrEven)
+ /* dqadd3131 */ self.fma128("1", "0", "-5E5", "-500000", .toNearestOrEven)
+ /* dqadd3132 */ self.fma128("1", "0", "-5E33", "-5000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd3133 */ self.fma128("1", "0", "-5E34", "-5.000000000000000000000000000000000E+34", .toNearestOrEven)
+ /* dqadd3134 */ self.fma128("1", "0", "-5E35", "-5.000000000000000000000000000000000E+35", .toNearestOrEven)
+ /* dqadd3135 */ self.fma128("1", "0", "-5E36", "-5.000000000000000000000000000000000E+36", .toNearestOrEven)
+ /* dqadd3136 */ self.fma128("1", "0", "-5E100", "-5.000000000000000000000000000000000E+100", .toNearestOrEven)
+ /* dqadd3137 */ self.fma128("1", "1", "0E-39", "1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd3138 */ self.fma128("1", "-1", "0E-39", "-1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd3139 */ self.fma128("1", "0E-39", "1", "1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd3140 */ self.fma128("1", "0E-39", "-1", "-1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqadd3141 */ self.fma128("1", "1E+29", "0.0000", "100000000000000000000000000000.0000", .toNearestOrEven)
+ /* dqadd3142 */ self.fma128("1", "1E+29", "0.00000", "100000000000000000000000000000.0000", .toNearestOrEven)
+ /* dqadd3143 */ self.fma128("1", "0.000", "1E+30", "1000000000000000000000000000000.000", .toNearestOrEven)
+ /* dqadd3144 */ self.fma128("1", "0.0000", "1E+30", "1000000000000000000000000000000.000", .toNearestOrEven)
+ /* dqadd3146 */ self.fma128("1", "00.0", "0", "0.0", .toNearestOrEven)
+ /* dqadd3147 */ self.fma128("1", "0.00", "0", "0.00", .toNearestOrEven)
+ /* dqadd3148 */ self.fma128("1", "0", "0.00", "0.00", .toNearestOrEven)
+ /* dqadd3149 */ self.fma128("1", "0", "00.0", "0.0", .toNearestOrEven)
+ /* dqadd3150 */ self.fma128("1", "00.0", "0.00", "0.00", .toNearestOrEven)
+ /* dqadd3151 */ self.fma128("1", "0.00", "00.0", "0.00", .toNearestOrEven)
+ /* dqadd3152 */ self.fma128("1", "3", ".3", "3.3", .toNearestOrEven)
+ /* dqadd3153 */ self.fma128("1", "3.", ".3", "3.3", .toNearestOrEven)
+ /* dqadd3154 */ self.fma128("1", "3.0", ".3", "3.3", .toNearestOrEven)
+ /* dqadd3155 */ self.fma128("1", "3.00", ".3", "3.30", .toNearestOrEven)
+ /* dqadd3156 */ self.fma128("1", "3", "3", "6", .toNearestOrEven)
+ /* dqadd3157 */ self.fma128("1", "3", "+3", "6", .toNearestOrEven)
+ /* dqadd3158 */ self.fma128("1", "3", "-3", "0", .toNearestOrEven)
+ /* dqadd3159 */ self.fma128("1", "0.3", "-0.3", "0.0", .toNearestOrEven)
+ /* dqadd3160 */ self.fma128("1", "0.03", "-0.03", "0.00", .toNearestOrEven)
+ /* dqadd3161 */ self.fma128("1", "1E+12", "-1", "999999999999", .toNearestOrEven)
+ /* dqadd3162 */ self.fma128("1", "1E+12", "1.11", "1000000000001.11", .toNearestOrEven)
+ /* dqadd3163 */ self.fma128("1", "1.11", "1E+12", "1000000000001.11", .toNearestOrEven)
+ /* dqadd3164 */ self.fma128("1", "-1", "1E+12", "999999999999", .toNearestOrEven)
+ /* dqadd3165 */ self.fma128("1", "7E+12", "-1", "6999999999999", .toNearestOrEven)
+ /* dqadd3166 */ self.fma128("1", "7E+12", "1.11", "7000000000001.11", .toNearestOrEven)
+ /* dqadd3167 */ self.fma128("1", "1.11", "7E+12", "7000000000001.11", .toNearestOrEven)
+ /* dqadd3168 */ self.fma128("1", "-1", "7E+12", "6999999999999", .toNearestOrEven)
+ /* dqadd3170 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555567", "5.000000000000000000000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3171 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555566", "5.000000000000000000000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3172 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555565", "5.000000000000000000000000000000001", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3173 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555564", "5.000000000000000000000000000000000", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3174 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555553", "4.999999999999999999999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3175 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555552", "4.999999999999999999999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3176 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555551", "4.999999999999999999999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3177 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555550", "4.999999999999999999999999999999999", .toNearestOrAwayFromZero)
+ /* dqadd3178 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555545", "4.999999999999999999999999999999999", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3179 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555544", "4.999999999999999999999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3180 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555543", "4.999999999999999999999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3181 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555542", "4.999999999999999999999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3182 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555541", "4.999999999999999999999999999999998", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3183 */ self.fma128("1", "4.444444444444444444444444444444444", "0.5555555555555555555555555555555540", "4.999999999999999999999999999999998", .toNearestOrAwayFromZero)
+ /* dqadd3200 */ self.fma128("1", "1231234567890123456784560123456789", "0", "1231234567890123456784560123456789", .toNearestOrAwayFromZero)
+ /* dqadd3201 */ self.fma128("1", "1231234567890123456784560123456789", "0.000000001", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3202 */ self.fma128("1", "1231234567890123456784560123456789", "0.000001", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3203 */ self.fma128("1", "1231234567890123456784560123456789", "0.1", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3204 */ self.fma128("1", "1231234567890123456784560123456789", "0.4", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3205 */ self.fma128("1", "1231234567890123456784560123456789", "0.49", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3206 */ self.fma128("1", "1231234567890123456784560123456789", "0.499999", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3207 */ self.fma128("1", "1231234567890123456784560123456789", "0.499999999", "1231234567890123456784560123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3208 */ self.fma128("1", "1231234567890123456784560123456789", "0.5", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3209 */ self.fma128("1", "1231234567890123456784560123456789", "0.500000001", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3210 */ self.fma128("1", "1231234567890123456784560123456789", "0.500001", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3211 */ self.fma128("1", "1231234567890123456784560123456789", "0.51", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3212 */ self.fma128("1", "1231234567890123456784560123456789", "0.6", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3213 */ self.fma128("1", "1231234567890123456784560123456789", "0.9", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3214 */ self.fma128("1", "1231234567890123456784560123456789", "0.99999", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3215 */ self.fma128("1", "1231234567890123456784560123456789", "0.999999999", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3216 */ self.fma128("1", "1231234567890123456784560123456789", "1", "1231234567890123456784560123456790", .toNearestOrAwayFromZero)
+ /* dqadd3217 */ self.fma128("1", "1231234567890123456784560123456789", "1.000000001", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3218 */ self.fma128("1", "1231234567890123456784560123456789", "1.00001", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3219 */ self.fma128("1", "1231234567890123456784560123456789", "1.1", "1231234567890123456784560123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3220 */ self.fma128("1", "1231234567890123456784560123456789", "0", "1231234567890123456784560123456789", .toNearestOrEven)
+ /* dqadd3221 */ self.fma128("1", "1231234567890123456784560123456789", "0.000000001", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd3222 */ self.fma128("1", "1231234567890123456784560123456789", "0.000001", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd3223 */ self.fma128("1", "1231234567890123456784560123456789", "0.1", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd3224 */ self.fma128("1", "1231234567890123456784560123456789", "0.4", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd3225 */ self.fma128("1", "1231234567890123456784560123456789", "0.49", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd3226 */ self.fma128("1", "1231234567890123456784560123456789", "0.499999", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd3227 */ self.fma128("1", "1231234567890123456784560123456789", "0.499999999", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd3228 */ self.fma128("1", "1231234567890123456784560123456789", "0.5", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd3229 */ self.fma128("1", "1231234567890123456784560123456789", "0.500000001", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd3230 */ self.fma128("1", "1231234567890123456784560123456789", "0.500001", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd3231 */ self.fma128("1", "1231234567890123456784560123456789", "0.51", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd3232 */ self.fma128("1", "1231234567890123456784560123456789", "0.6", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd3233 */ self.fma128("1", "1231234567890123456784560123456789", "0.9", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd3234 */ self.fma128("1", "1231234567890123456784560123456789", "0.99999", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd3235 */ self.fma128("1", "1231234567890123456784560123456789", "0.999999999", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd3236 */ self.fma128("1", "1231234567890123456784560123456789", "1", "1231234567890123456784560123456790", .toNearestOrEven)
+ /* dqadd3237 */ self.fma128("1", "1231234567890123456784560123456789", "1.00000001", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd3238 */ self.fma128("1", "1231234567890123456784560123456789", "1.00001", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd3239 */ self.fma128("1", "1231234567890123456784560123456789", "1.1", "1231234567890123456784560123456790", .toNearestOrEven, .isInexact)
+ /* dqadd3240 */ self.fma128("1", "1231234567890123456784560123456788", "0.499999999", "1231234567890123456784560123456788", .toNearestOrEven, .isInexact)
+ /* dqadd3241 */ self.fma128("1", "1231234567890123456784560123456788", "0.5", "1231234567890123456784560123456788", .toNearestOrEven, .isInexact)
+ /* dqadd3242 */ self.fma128("1", "1231234567890123456784560123456788", "0.500000001", "1231234567890123456784560123456789", .toNearestOrEven, .isInexact)
+ /* dqadd3250 */ self.fma128("1", "1231234567890123456784560123456789", "0", "1231234567890123456784560123456789", .towardZero)
+ /* dqadd3251 */ self.fma128("1", "1231234567890123456784560123456789", "0.000000001", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3252 */ self.fma128("1", "1231234567890123456784560123456789", "0.000001", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3253 */ self.fma128("1", "1231234567890123456784560123456789", "0.1", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3254 */ self.fma128("1", "1231234567890123456784560123456789", "0.4", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3255 */ self.fma128("1", "1231234567890123456784560123456789", "0.49", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3256 */ self.fma128("1", "1231234567890123456784560123456789", "0.499999", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3257 */ self.fma128("1", "1231234567890123456784560123456789", "0.499999999", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3258 */ self.fma128("1", "1231234567890123456784560123456789", "0.5", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3259 */ self.fma128("1", "1231234567890123456784560123456789", "0.500000001", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3260 */ self.fma128("1", "1231234567890123456784560123456789", "0.500001", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3261 */ self.fma128("1", "1231234567890123456784560123456789", "0.51", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3262 */ self.fma128("1", "1231234567890123456784560123456789", "0.6", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3263 */ self.fma128("1", "1231234567890123456784560123456789", "0.9", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3264 */ self.fma128("1", "1231234567890123456784560123456789", "0.99999", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3265 */ self.fma128("1", "1231234567890123456784560123456789", "0.999999999", "1231234567890123456784560123456789", .towardZero, .isInexact)
+ /* dqadd3266 */ self.fma128("1", "1231234567890123456784560123456789", "1", "1231234567890123456784560123456790", .towardZero)
+ /* dqadd3267 */ self.fma128("1", "1231234567890123456784560123456789", "1.00000001", "1231234567890123456784560123456790", .towardZero, .isInexact)
+ /* dqadd3268 */ self.fma128("1", "1231234567890123456784560123456789", "1.00001", "1231234567890123456784560123456790", .towardZero, .isInexact)
+ /* dqadd3269 */ self.fma128("1", "1231234567890123456784560123456789", "1.1", "1231234567890123456784560123456790", .towardZero, .isInexact)
+ /* dqadd3301 */ self.fma128("1", "-1", "1", "0", .toNearestOrAwayFromZero)
+ /* dqadd3302 */ self.fma128("1", "0", "1", "1", .toNearestOrAwayFromZero)
+ /* dqadd3303 */ self.fma128("1", "1", "1", "2", .toNearestOrAwayFromZero)
+ /* dqadd3304 */ self.fma128("1", "12", "1", "13", .toNearestOrAwayFromZero)
+ /* dqadd3305 */ self.fma128("1", "98", "1", "99", .toNearestOrAwayFromZero)
+ /* dqadd3306 */ self.fma128("1", "99", "1", "100", .toNearestOrAwayFromZero)
+ /* dqadd3307 */ self.fma128("1", "100", "1", "101", .toNearestOrAwayFromZero)
+ /* dqadd3308 */ self.fma128("1", "101", "1", "102", .toNearestOrAwayFromZero)
+ /* dqadd3309 */ self.fma128("1", "-1", "-1", "-2", .toNearestOrAwayFromZero)
+ /* dqadd3310 */ self.fma128("1", "0", "-1", "-1", .toNearestOrAwayFromZero)
+ /* dqadd3311 */ self.fma128("1", "1", "-1", "0", .toNearestOrAwayFromZero)
+ /* dqadd3312 */ self.fma128("1", "12", "-1", "11", .toNearestOrAwayFromZero)
+ /* dqadd3313 */ self.fma128("1", "98", "-1", "97", .toNearestOrAwayFromZero)
+ /* dqadd3314 */ self.fma128("1", "99", "-1", "98", .toNearestOrAwayFromZero)
+ /* dqadd3315 */ self.fma128("1", "100", "-1", "99", .toNearestOrAwayFromZero)
+ /* dqadd3316 */ self.fma128("1", "101", "-1", "100", .toNearestOrAwayFromZero)
+ /* dqadd3321 */ self.fma128("1", "-0.01", "0.01", "0.00", .toNearestOrAwayFromZero)
+ /* dqadd3322 */ self.fma128("1", "0.00", "0.01", "0.01", .toNearestOrAwayFromZero)
+ /* dqadd3323 */ self.fma128("1", "0.01", "0.01", "0.02", .toNearestOrAwayFromZero)
+ /* dqadd3324 */ self.fma128("1", "0.12", "0.01", "0.13", .toNearestOrAwayFromZero)
+ /* dqadd3325 */ self.fma128("1", "0.98", "0.01", "0.99", .toNearestOrAwayFromZero)
+ /* dqadd3326 */ self.fma128("1", "0.99", "0.01", "1.00", .toNearestOrAwayFromZero)
+ /* dqadd3327 */ self.fma128("1", "1.00", "0.01", "1.01", .toNearestOrAwayFromZero)
+ /* dqadd3328 */ self.fma128("1", "1.01", "0.01", "1.02", .toNearestOrAwayFromZero)
+ /* dqadd3329 */ self.fma128("1", "-0.01", "-0.01", "-0.02", .toNearestOrAwayFromZero)
+ /* dqadd3330 */ self.fma128("1", "0.00", "-0.01", "-0.01", .toNearestOrAwayFromZero)
+ /* dqadd3331 */ self.fma128("1", "0.01", "-0.01", "0.00", .toNearestOrAwayFromZero)
+ /* dqadd3332 */ self.fma128("1", "0.12", "-0.01", "0.11", .toNearestOrAwayFromZero)
+ /* dqadd3333 */ self.fma128("1", "0.98", "-0.01", "0.97", .toNearestOrAwayFromZero)
+ /* dqadd3334 */ self.fma128("1", "0.99", "-0.01", "0.98", .toNearestOrAwayFromZero)
+ /* dqadd3335 */ self.fma128("1", "1.00", "-0.01", "0.99", .toNearestOrAwayFromZero)
+ /* dqadd3336 */ self.fma128("1", "1.01", "-0.01", "1.00", .toNearestOrAwayFromZero)
+ /* dqadd3340 */ self.fma128("1", "1E+3", "0", "1000", .toNearestOrAwayFromZero)
+ /* dqadd3341 */ self.fma128("1", "1E+33", "0", "1000000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqadd3342 */ self.fma128("1", "1E+34", "0", "1.000000000000000000000000000000000E+34", .toNearestOrAwayFromZero)
+ /* dqadd3343 */ self.fma128("1", "1E+35", "0", "1.000000000000000000000000000000000E+35", .toNearestOrAwayFromZero)
+ /* dqadd3344 */ self.fma128("1", "1E+3", "1", "1001", .toNearestOrAwayFromZero)
+ /* dqadd3345 */ self.fma128("1", "1E+33", "1", "1000000000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* dqadd3346 */ self.fma128("1", "1E+34", "1", "1.000000000000000000000000000000000E+34", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3347 */ self.fma128("1", "1E+35", "1", "1.000000000000000000000000000000000E+35", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3348 */ self.fma128("1", "1E+3", "7", "1007", .toNearestOrAwayFromZero)
+ /* dqadd3349 */ self.fma128("1", "1E+33", "7", "1000000000000000000000000000000007", .toNearestOrAwayFromZero)
+ /* dqadd3350 */ self.fma128("1", "1E+34", "7", "1.000000000000000000000000000000001E+34", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3351 */ self.fma128("1", "1E+35", "7", "1.000000000000000000000000000000000E+35", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3360 */ self.fma128("1", "0E+50", "10000E+1", "1.0000E+5", .toNearestOrAwayFromZero)
+ /* dqadd3361 */ self.fma128("1", "0E-50", "10000E+1", "100000.0000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqadd3362 */ self.fma128("1", "10000E+1", "0E-50", "100000.0000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqadd3363 */ self.fma128("1", "10000E+1", "10000E-50", "100000.0000000000000000000000000000", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3364 */ self.fma128("1", "9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", "0E+6111", .toNearestOrAwayFromZero)
+ /* dqadd3372 */ self.fma128("1", "999999999999999999999999999999999", "815", "1000000000000000000000000000000814", .toNearestOrAwayFromZero)
+ /* dqadd3373 */ self.fma128("1", "9999999999999999999999999999999999", "815", "1.000000000000000000000000000000081E+34", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd3374 */ self.fma128("1", "999999999999999999999999999999999", "815", "1000000000000000000000000000000814", .toNearestOrEven)
+ /* dqadd3375 */ self.fma128("1", "9999999999999999999999999999999999", "815", "1.000000000000000000000000000000081E+34", .toNearestOrEven, .isInexact)
+ /* dqadd3400 */ self.fma128("1", "1", "77e-32", "1.00000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd3401 */ self.fma128("1", "1", "77e-33", "1.000000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd3402 */ self.fma128("1", "1", "77e-34", "1.000000000000000000000000000000008", .toNearestOrEven, .isInexact)
+ /* dqadd3403 */ self.fma128("1", "1", "77e-35", "1.000000000000000000000000000000001", .toNearestOrEven, .isInexact)
+ /* dqadd3404 */ self.fma128("1", "1", "77e-36", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3405 */ self.fma128("1", "1", "77e-37", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3406 */ self.fma128("1", "1", "77e-299", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3410 */ self.fma128("1", "10", "77e-32", "10.00000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd3411 */ self.fma128("1", "10", "77e-33", "10.00000000000000000000000000000008", .toNearestOrEven, .isInexact)
+ /* dqadd3412 */ self.fma128("1", "10", "77e-34", "10.00000000000000000000000000000001", .toNearestOrEven, .isInexact)
+ /* dqadd3413 */ self.fma128("1", "10", "77e-35", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3414 */ self.fma128("1", "10", "77e-36", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3415 */ self.fma128("1", "10", "77e-37", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3416 */ self.fma128("1", "10", "77e-299", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3420 */ self.fma128("1", "77e-32", "1", "1.00000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd3421 */ self.fma128("1", "77e-33", "1", "1.000000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd3422 */ self.fma128("1", "77e-34", "1", "1.000000000000000000000000000000008", .toNearestOrEven, .isInexact)
+ /* dqadd3423 */ self.fma128("1", "77e-35", "1", "1.000000000000000000000000000000001", .toNearestOrEven, .isInexact)
+ /* dqadd3424 */ self.fma128("1", "77e-36", "1", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3425 */ self.fma128("1", "77e-37", "1", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3426 */ self.fma128("1", "77e-299", "1", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3430 */ self.fma128("1", "77e-32", "10", "10.00000000000000000000000000000077", .toNearestOrEven)
+ /* dqadd3431 */ self.fma128("1", "77e-33", "10", "10.00000000000000000000000000000008", .toNearestOrEven, .isInexact)
+ /* dqadd3432 */ self.fma128("1", "77e-34", "10", "10.00000000000000000000000000000001", .toNearestOrEven, .isInexact)
+ /* dqadd3433 */ self.fma128("1", "77e-35", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3434 */ self.fma128("1", "77e-36", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3435 */ self.fma128("1", "77e-37", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd3436 */ self.fma128("1", "77e-299", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36440 */ self.fma128("1", "1", "-77e-32", "0.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36441 */ self.fma128("1", "1", "-77e-33", "0.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36442 */ self.fma128("1", "1", "-77e-34", "0.9999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36443 */ self.fma128("1", "1", "-77e-35", "0.9999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd36444 */ self.fma128("1", "1", "-77e-36", "0.9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd36445 */ self.fma128("1", "1", "-77e-37", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36446 */ self.fma128("1", "1", "-77e-99", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36450 */ self.fma128("1", "10", "-77e-32", "9.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36451 */ self.fma128("1", "10", "-77e-33", "9.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36452 */ self.fma128("1", "10", "-77e-34", "9.999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd36453 */ self.fma128("1", "10", "-77e-35", "9.999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd36454 */ self.fma128("1", "10", "-77e-36", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36455 */ self.fma128("1", "10", "-77e-37", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36456 */ self.fma128("1", "10", "-77e-99", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36460 */ self.fma128("1", "-77e-32", "1", "0.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36461 */ self.fma128("1", "-77e-33", "1", "0.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36462 */ self.fma128("1", "-77e-34", "1", "0.9999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36463 */ self.fma128("1", "-77e-35", "1", "0.9999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd36464 */ self.fma128("1", "-77e-36", "1", "0.9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd36465 */ self.fma128("1", "-77e-37", "1", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36466 */ self.fma128("1", "-77e-99", "1", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36470 */ self.fma128("1", "-77e-32", "10", "9.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36471 */ self.fma128("1", "-77e-33", "10", "9.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36472 */ self.fma128("1", "-77e-34", "10", "9.999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd36473 */ self.fma128("1", "-77e-35", "10", "9.999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd36474 */ self.fma128("1", "-77e-36", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36475 */ self.fma128("1", "-77e-37", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36476 */ self.fma128("1", "-77e-99", "10", "10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36480 */ self.fma128("1", "-1", "77e-32", "-0.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36481 */ self.fma128("1", "-1", "77e-33", "-0.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36482 */ self.fma128("1", "-1", "77e-34", "-0.9999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36483 */ self.fma128("1", "-1", "77e-35", "-0.9999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd36484 */ self.fma128("1", "-1", "77e-36", "-0.9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd36485 */ self.fma128("1", "-1", "77e-37", "-1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36486 */ self.fma128("1", "-1", "77e-99", "-1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36490 */ self.fma128("1", "-10", "77e-32", "-9.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36491 */ self.fma128("1", "-10", "77e-33", "-9.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36492 */ self.fma128("1", "-10", "77e-34", "-9.999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd36493 */ self.fma128("1", "-10", "77e-35", "-9.999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd36494 */ self.fma128("1", "-10", "77e-36", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36495 */ self.fma128("1", "-10", "77e-37", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36496 */ self.fma128("1", "-10", "77e-99", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36500 */ self.fma128("1", "77e-32", "-1", "-0.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36501 */ self.fma128("1", "77e-33", "-1", "-0.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36502 */ self.fma128("1", "77e-34", "-1", "-0.9999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36503 */ self.fma128("1", "77e-35", "-1", "-0.9999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd36504 */ self.fma128("1", "77e-36", "-1", "-0.9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd36505 */ self.fma128("1", "77e-37", "-1", "-1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36506 */ self.fma128("1", "77e-99", "-1", "-1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36510 */ self.fma128("1", "77e-32", "-10", "-9.99999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36511 */ self.fma128("1", "77e-33", "-10", "-9.999999999999999999999999999999923", .toNearestOrEven)
+ /* dqadd36512 */ self.fma128("1", "77e-34", "-10", "-9.999999999999999999999999999999992", .toNearestOrEven, .isInexact)
+ /* dqadd36513 */ self.fma128("1", "77e-35", "-10", "-9.999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd36514 */ self.fma128("1", "77e-36", "-10", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36515 */ self.fma128("1", "77e-37", "-10", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36516 */ self.fma128("1", "77e-99", "-10", "-10.00000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqadd36540 */ self.fma128("1", "9876543219876543216543210123456789", "0", "9876543219876543216543210123456789", .toNearestOrAwayFromZero)
+ /* dqadd36541 */ self.fma128("1", "9876543219876543216543210123456789", "0.000000001", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36542 */ self.fma128("1", "9876543219876543216543210123456789", "0.000001", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36543 */ self.fma128("1", "9876543219876543216543210123456789", "0.1", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36544 */ self.fma128("1", "9876543219876543216543210123456789", "0.4", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36545 */ self.fma128("1", "9876543219876543216543210123456789", "0.49", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36546 */ self.fma128("1", "9876543219876543216543210123456789", "0.499999", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36547 */ self.fma128("1", "9876543219876543216543210123456789", "0.499999999", "9876543219876543216543210123456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36548 */ self.fma128("1", "9876543219876543216543210123456789", "0.5", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36549 */ self.fma128("1", "9876543219876543216543210123456789", "0.500000001", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36550 */ self.fma128("1", "9876543219876543216543210123456789", "0.500001", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36551 */ self.fma128("1", "9876543219876543216543210123456789", "0.51", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36552 */ self.fma128("1", "9876543219876543216543210123456789", "0.6", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36553 */ self.fma128("1", "9876543219876543216543210123456789", "0.9", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36554 */ self.fma128("1", "9876543219876543216543210123456789", "0.99999", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36555 */ self.fma128("1", "9876543219876543216543210123456789", "0.999999999", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36556 */ self.fma128("1", "9876543219876543216543210123456789", "1", "9876543219876543216543210123456790", .toNearestOrAwayFromZero)
+ /* dqadd36557 */ self.fma128("1", "9876543219876543216543210123456789", "1.000000001", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36558 */ self.fma128("1", "9876543219876543216543210123456789", "1.00001", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36559 */ self.fma128("1", "9876543219876543216543210123456789", "1.1", "9876543219876543216543210123456790", .toNearestOrAwayFromZero, .isInexact)
+ /* dqadd36560 */ self.fma128("1", "9876543219876543216543210123456789", "0", "9876543219876543216543210123456789", .toNearestOrEven)
+ /* dqadd36561 */ self.fma128("1", "9876543219876543216543210123456789", "0.000000001", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd36562 */ self.fma128("1", "9876543219876543216543210123456789", "0.000001", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd36563 */ self.fma128("1", "9876543219876543216543210123456789", "0.1", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd36564 */ self.fma128("1", "9876543219876543216543210123456789", "0.4", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd36565 */ self.fma128("1", "9876543219876543216543210123456789", "0.49", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd36566 */ self.fma128("1", "9876543219876543216543210123456789", "0.499999", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd36567 */ self.fma128("1", "9876543219876543216543210123456789", "0.499999999", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd36568 */ self.fma128("1", "9876543219876543216543210123456789", "0.5", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd36569 */ self.fma128("1", "9876543219876543216543210123456789", "0.500000001", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd36570 */ self.fma128("1", "9876543219876543216543210123456789", "0.500001", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd36571 */ self.fma128("1", "9876543219876543216543210123456789", "0.51", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd36572 */ self.fma128("1", "9876543219876543216543210123456789", "0.6", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd36573 */ self.fma128("1", "9876543219876543216543210123456789", "0.9", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd36574 */ self.fma128("1", "9876543219876543216543210123456789", "0.99999", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd36575 */ self.fma128("1", "9876543219876543216543210123456789", "0.999999999", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd36576 */ self.fma128("1", "9876543219876543216543210123456789", "1", "9876543219876543216543210123456790", .toNearestOrEven)
+ /* dqadd36577 */ self.fma128("1", "9876543219876543216543210123456789", "1.00000001", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd36578 */ self.fma128("1", "9876543219876543216543210123456789", "1.00001", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd36579 */ self.fma128("1", "9876543219876543216543210123456789", "1.1", "9876543219876543216543210123456790", .toNearestOrEven, .isInexact)
+ /* dqadd371100 */ self.fma128("1", "1e+2", "-1e-6143", "99.99999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd371101 */ self.fma128("1", "1e+1", "-1e-6143", "9.999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd371103 */ self.fma128("1", "+1", "-1e-6143", "0.9999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd371104 */ self.fma128("1", "1e-1", "-1e-6143", "0.09999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd371105 */ self.fma128("1", "1e-2", "-1e-6143", "0.009999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd371106 */ self.fma128("1", "1e-3", "-1e-6143", "0.0009999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd371107 */ self.fma128("1", "1e-4", "-1e-6143", "0.00009999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd371108 */ self.fma128("1", "1e-5", "-1e-6143", "0.000009999999999999999999999999999999999", .towardZero, .isInexact)
+ /* dqadd371109 */ self.fma128("1", "1e-6", "-1e-6143", "9.999999999999999999999999999999999E-7", .towardZero, .isInexact)
+ /* dqadd371110 */ self.fma128("1", "-1e+2", "+1e-6143", "-99.99999999999999999999999999999999", .up, .isInexact)
+ /* dqadd371111 */ self.fma128("1", "-1e+1", "+1e-6143", "-9.999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd371113 */ self.fma128("1", "-1", "+1e-6143", "-0.9999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd371114 */ self.fma128("1", "-1e-1", "+1e-6143", "-0.09999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd371115 */ self.fma128("1", "-1e-2", "+1e-6143", "-0.009999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd371116 */ self.fma128("1", "-1e-3", "+1e-6143", "-0.0009999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd371117 */ self.fma128("1", "-1e-4", "+1e-6143", "-0.00009999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd371118 */ self.fma128("1", "-1e-5", "+1e-6143", "-0.000009999999999999999999999999999999999", .up, .isInexact)
+ /* dqadd371119 */ self.fma128("1", "-1e-6", "+1e-6143", "-9.999999999999999999999999999999999E-7", .up, .isInexact)
+ /* dqadd371300 */ self.fma128("1", "1E34", "-0.5", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371310 */ self.fma128("1", "1E34", "-0.51", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371311 */ self.fma128("1", "1E34", "-0.501", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371312 */ self.fma128("1", "1E34", "-0.5001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371313 */ self.fma128("1", "1E34", "-0.50001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371314 */ self.fma128("1", "1E34", "-0.500001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371315 */ self.fma128("1", "1E34", "-0.5000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371316 */ self.fma128("1", "1E34", "-0.50000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371317 */ self.fma128("1", "1E34", "-0.500000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371318 */ self.fma128("1", "1E34", "-0.5000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371319 */ self.fma128("1", "1E34", "-0.50000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371320 */ self.fma128("1", "1E34", "-0.500000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371321 */ self.fma128("1", "1E34", "-0.5000000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371322 */ self.fma128("1", "1E34", "-0.50000000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371323 */ self.fma128("1", "1E34", "-0.500000000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371324 */ self.fma128("1", "1E34", "-0.5000000000000001", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371325 */ self.fma128("1", "1E34", "-0.5000000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371326 */ self.fma128("1", "1E34", "-0.500000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371327 */ self.fma128("1", "1E34", "-0.50000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371328 */ self.fma128("1", "1E34", "-0.5000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371329 */ self.fma128("1", "1E34", "-0.500000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371330 */ self.fma128("1", "1E34", "-0.50000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371331 */ self.fma128("1", "1E34", "-0.5000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371332 */ self.fma128("1", "1E34", "-0.500000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371333 */ self.fma128("1", "1E34", "-0.50000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371334 */ self.fma128("1", "1E34", "-0.5000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371335 */ self.fma128("1", "1E34", "-0.500000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371336 */ self.fma128("1", "1E34", "-0.50000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371337 */ self.fma128("1", "1E34", "-0.5000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371338 */ self.fma128("1", "1E34", "-0.500", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371339 */ self.fma128("1", "1E34", "-0.50", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371340 */ self.fma128("1", "1E34", "-5000000.000010001", "9999999999999999999999999995000000", .toNearestOrEven, .isInexact)
+ /* dqadd371341 */ self.fma128("1", "1E34", "-5000000.000000001", "9999999999999999999999999995000000", .toNearestOrEven, .isInexact)
+ /* dqadd371349 */ self.fma128("1", "9999999999999999999999999999999999", "0.4", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371350 */ self.fma128("1", "9999999999999999999999999999999999", "0.49", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371351 */ self.fma128("1", "9999999999999999999999999999999999", "0.499", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371352 */ self.fma128("1", "9999999999999999999999999999999999", "0.4999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371353 */ self.fma128("1", "9999999999999999999999999999999999", "0.49999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371354 */ self.fma128("1", "9999999999999999999999999999999999", "0.499999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371355 */ self.fma128("1", "9999999999999999999999999999999999", "0.4999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371356 */ self.fma128("1", "9999999999999999999999999999999999", "0.49999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371357 */ self.fma128("1", "9999999999999999999999999999999999", "0.499999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371358 */ self.fma128("1", "9999999999999999999999999999999999", "0.4999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371359 */ self.fma128("1", "9999999999999999999999999999999999", "0.49999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371360 */ self.fma128("1", "9999999999999999999999999999999999", "0.499999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371361 */ self.fma128("1", "9999999999999999999999999999999999", "0.4999999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371362 */ self.fma128("1", "9999999999999999999999999999999999", "0.49999999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371363 */ self.fma128("1", "9999999999999999999999999999999999", "0.499999999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371364 */ self.fma128("1", "9999999999999999999999999999999999", "0.4999999999999999", "9999999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqadd371365 */ self.fma128("1", "9999999999999999999999999999999999", "0.5000000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371367 */ self.fma128("1", "9999999999999999999999999999999999", "0.500000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371368 */ self.fma128("1", "9999999999999999999999999999999999", "0.50000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371369 */ self.fma128("1", "9999999999999999999999999999999999", "0.5000000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371370 */ self.fma128("1", "9999999999999999999999999999999999", "0.500000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371371 */ self.fma128("1", "9999999999999999999999999999999999", "0.50000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371372 */ self.fma128("1", "9999999999999999999999999999999999", "0.5000000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371373 */ self.fma128("1", "9999999999999999999999999999999999", "0.500000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371374 */ self.fma128("1", "9999999999999999999999999999999999", "0.50000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371375 */ self.fma128("1", "9999999999999999999999999999999999", "0.5000000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371376 */ self.fma128("1", "9999999999999999999999999999999999", "0.500000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371377 */ self.fma128("1", "9999999999999999999999999999999999", "0.50000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371378 */ self.fma128("1", "9999999999999999999999999999999999", "0.5000", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371379 */ self.fma128("1", "9999999999999999999999999999999999", "0.500", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371380 */ self.fma128("1", "9999999999999999999999999999999999", "0.50", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371381 */ self.fma128("1", "9999999999999999999999999999999999", "0.5", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371382 */ self.fma128("1", "9999999999999999999999999999999999", "0.5000000000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371383 */ self.fma128("1", "9999999999999999999999999999999999", "0.500000000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371384 */ self.fma128("1", "9999999999999999999999999999999999", "0.50000000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371385 */ self.fma128("1", "9999999999999999999999999999999999", "0.5000000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371386 */ self.fma128("1", "9999999999999999999999999999999999", "0.500000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371387 */ self.fma128("1", "9999999999999999999999999999999999", "0.50000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371388 */ self.fma128("1", "9999999999999999999999999999999999", "0.5000000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371389 */ self.fma128("1", "9999999999999999999999999999999999", "0.500000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371390 */ self.fma128("1", "9999999999999999999999999999999999", "0.50000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371391 */ self.fma128("1", "9999999999999999999999999999999999", "0.5000001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371392 */ self.fma128("1", "9999999999999999999999999999999999", "0.500001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371393 */ self.fma128("1", "9999999999999999999999999999999999", "0.50001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371394 */ self.fma128("1", "9999999999999999999999999999999999", "0.5001", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371395 */ self.fma128("1", "9999999999999999999999999999999999", "0.501", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371396 */ self.fma128("1", "9999999999999999999999999999999999", "0.51", "1.000000000000000000000000000000000E+34", .toNearestOrEven, .isInexact)
+ /* dqadd371420 */ self.fma128("1", "0", "1.123456789987654321123456789012345", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371421 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-1", "0.1123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371422 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-2", "0.01123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371423 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-3", "0.001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371424 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-4", "0.0001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371425 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-5", "0.00001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371426 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-6", "0.000001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371427 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-7", "1.123456789987654321123456789012345E-7", .toNearestOrEven)
+ /* dqadd371428 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-8", "1.123456789987654321123456789012345E-8", .toNearestOrEven)
+ /* dqadd371429 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-9", "1.123456789987654321123456789012345E-9", .toNearestOrEven)
+ /* dqadd371430 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-10", "1.123456789987654321123456789012345E-10", .toNearestOrEven)
+ /* dqadd371431 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-11", "1.123456789987654321123456789012345E-11", .toNearestOrEven)
+ /* dqadd371432 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-12", "1.123456789987654321123456789012345E-12", .toNearestOrEven)
+ /* dqadd371433 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-13", "1.123456789987654321123456789012345E-13", .toNearestOrEven)
+ /* dqadd371434 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-14", "1.123456789987654321123456789012345E-14", .toNearestOrEven)
+ /* dqadd371435 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-15", "1.123456789987654321123456789012345E-15", .toNearestOrEven)
+ /* dqadd371436 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-16", "1.123456789987654321123456789012345E-16", .toNearestOrEven)
+ /* dqadd371437 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-17", "1.123456789987654321123456789012345E-17", .toNearestOrEven)
+ /* dqadd371438 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-18", "1.123456789987654321123456789012345E-18", .toNearestOrEven)
+ /* dqadd371439 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-19", "1.123456789987654321123456789012345E-19", .toNearestOrEven)
+ /* dqadd371440 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-20", "1.123456789987654321123456789012345E-20", .toNearestOrEven)
+ /* dqadd371441 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-21", "1.123456789987654321123456789012345E-21", .toNearestOrEven)
+ /* dqadd371442 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-22", "1.123456789987654321123456789012345E-22", .toNearestOrEven)
+ /* dqadd371443 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-23", "1.123456789987654321123456789012345E-23", .toNearestOrEven)
+ /* dqadd371444 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-24", "1.123456789987654321123456789012345E-24", .toNearestOrEven)
+ /* dqadd371445 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-25", "1.123456789987654321123456789012345E-25", .toNearestOrEven)
+ /* dqadd371446 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-26", "1.123456789987654321123456789012345E-26", .toNearestOrEven)
+ /* dqadd371447 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-27", "1.123456789987654321123456789012345E-27", .toNearestOrEven)
+ /* dqadd371448 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-28", "1.123456789987654321123456789012345E-28", .toNearestOrEven)
+ /* dqadd371449 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-29", "1.123456789987654321123456789012345E-29", .toNearestOrEven)
+ /* dqadd371450 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-30", "1.123456789987654321123456789012345E-30", .toNearestOrEven)
+ /* dqadd371451 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-31", "1.123456789987654321123456789012345E-31", .toNearestOrEven)
+ /* dqadd371452 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-32", "1.123456789987654321123456789012345E-32", .toNearestOrEven)
+ /* dqadd371453 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-33", "1.123456789987654321123456789012345E-33", .toNearestOrEven)
+ /* dqadd371454 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-34", "1.123456789987654321123456789012345E-34", .toNearestOrEven)
+ /* dqadd371455 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-35", "1.123456789987654321123456789012345E-35", .toNearestOrEven)
+ /* dqadd371456 */ self.fma128("1", "0", "1.123456789987654321123456789012345E-36", "1.123456789987654321123456789012345E-36", .toNearestOrEven)
+ /* dqadd371460 */ self.fma128("1", "1.123456789987654321123456789012345", "0", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371461 */ self.fma128("1", "1.123456789987654321123456789012345E-1", "0", "0.1123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371462 */ self.fma128("1", "1.123456789987654321123456789012345E-2", "0", "0.01123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371463 */ self.fma128("1", "1.123456789987654321123456789012345E-3", "0", "0.001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371464 */ self.fma128("1", "1.123456789987654321123456789012345E-4", "0", "0.0001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371465 */ self.fma128("1", "1.123456789987654321123456789012345E-5", "0", "0.00001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371466 */ self.fma128("1", "1.123456789987654321123456789012345E-6", "0", "0.000001123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371467 */ self.fma128("1", "1.123456789987654321123456789012345E-7", "0", "1.123456789987654321123456789012345E-7", .toNearestOrEven)
+ /* dqadd371468 */ self.fma128("1", "1.123456789987654321123456789012345E-8", "0", "1.123456789987654321123456789012345E-8", .toNearestOrEven)
+ /* dqadd371469 */ self.fma128("1", "1.123456789987654321123456789012345E-9", "0", "1.123456789987654321123456789012345E-9", .toNearestOrEven)
+ /* dqadd371470 */ self.fma128("1", "1.123456789987654321123456789012345E-10", "0", "1.123456789987654321123456789012345E-10", .toNearestOrEven)
+ /* dqadd371471 */ self.fma128("1", "1.123456789987654321123456789012345E-11", "0", "1.123456789987654321123456789012345E-11", .toNearestOrEven)
+ /* dqadd371472 */ self.fma128("1", "1.123456789987654321123456789012345E-12", "0", "1.123456789987654321123456789012345E-12", .toNearestOrEven)
+ /* dqadd371473 */ self.fma128("1", "1.123456789987654321123456789012345E-13", "0", "1.123456789987654321123456789012345E-13", .toNearestOrEven)
+ /* dqadd371474 */ self.fma128("1", "1.123456789987654321123456789012345E-14", "0", "1.123456789987654321123456789012345E-14", .toNearestOrEven)
+ /* dqadd371475 */ self.fma128("1", "1.123456789987654321123456789012345E-15", "0", "1.123456789987654321123456789012345E-15", .toNearestOrEven)
+ /* dqadd371476 */ self.fma128("1", "1.123456789987654321123456789012345E-16", "0", "1.123456789987654321123456789012345E-16", .toNearestOrEven)
+ /* dqadd371477 */ self.fma128("1", "1.123456789987654321123456789012345E-17", "0", "1.123456789987654321123456789012345E-17", .toNearestOrEven)
+ /* dqadd371478 */ self.fma128("1", "1.123456789987654321123456789012345E-18", "0", "1.123456789987654321123456789012345E-18", .toNearestOrEven)
+ /* dqadd371479 */ self.fma128("1", "1.123456789987654321123456789012345E-19", "0", "1.123456789987654321123456789012345E-19", .toNearestOrEven)
+ /* dqadd371480 */ self.fma128("1", "1.123456789987654321123456789012345E-20", "0", "1.123456789987654321123456789012345E-20", .toNearestOrEven)
+ /* dqadd371481 */ self.fma128("1", "1.123456789987654321123456789012345E-21", "0", "1.123456789987654321123456789012345E-21", .toNearestOrEven)
+ /* dqadd371482 */ self.fma128("1", "1.123456789987654321123456789012345E-22", "0", "1.123456789987654321123456789012345E-22", .toNearestOrEven)
+ /* dqadd371483 */ self.fma128("1", "1.123456789987654321123456789012345E-23", "0", "1.123456789987654321123456789012345E-23", .toNearestOrEven)
+ /* dqadd371484 */ self.fma128("1", "1.123456789987654321123456789012345E-24", "0", "1.123456789987654321123456789012345E-24", .toNearestOrEven)
+ /* dqadd371485 */ self.fma128("1", "1.123456789987654321123456789012345E-25", "0", "1.123456789987654321123456789012345E-25", .toNearestOrEven)
+ /* dqadd371486 */ self.fma128("1", "1.123456789987654321123456789012345E-26", "0", "1.123456789987654321123456789012345E-26", .toNearestOrEven)
+ /* dqadd371487 */ self.fma128("1", "1.123456789987654321123456789012345E-27", "0", "1.123456789987654321123456789012345E-27", .toNearestOrEven)
+ /* dqadd371488 */ self.fma128("1", "1.123456789987654321123456789012345E-28", "0", "1.123456789987654321123456789012345E-28", .toNearestOrEven)
+ /* dqadd371489 */ self.fma128("1", "1.123456789987654321123456789012345E-29", "0", "1.123456789987654321123456789012345E-29", .toNearestOrEven)
+ /* dqadd371490 */ self.fma128("1", "1.123456789987654321123456789012345E-30", "0", "1.123456789987654321123456789012345E-30", .toNearestOrEven)
+ /* dqadd371491 */ self.fma128("1", "1.123456789987654321123456789012345E-31", "0", "1.123456789987654321123456789012345E-31", .toNearestOrEven)
+ /* dqadd371492 */ self.fma128("1", "1.123456789987654321123456789012345E-32", "0", "1.123456789987654321123456789012345E-32", .toNearestOrEven)
+ /* dqadd371493 */ self.fma128("1", "1.123456789987654321123456789012345E-33", "0", "1.123456789987654321123456789012345E-33", .toNearestOrEven)
+ /* dqadd371494 */ self.fma128("1", "1.123456789987654321123456789012345E-34", "0", "1.123456789987654321123456789012345E-34", .toNearestOrEven)
+ /* dqadd371495 */ self.fma128("1", "1.123456789987654321123456789012345E-35", "0", "1.123456789987654321123456789012345E-35", .toNearestOrEven)
+ /* dqadd371496 */ self.fma128("1", "1.123456789987654321123456789012345E-36", "0", "1.123456789987654321123456789012345E-36", .toNearestOrEven)
+ /* dqadd371500 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-0", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371501 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-1", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371502 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-2", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371503 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-3", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371504 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-4", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371505 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-5", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371506 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-6", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371507 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-7", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371508 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-8", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371509 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-9", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371510 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-10", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371511 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-11", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371512 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-12", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371513 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-13", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371514 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-14", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371515 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-15", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371516 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-16", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371517 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-17", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371518 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-18", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371519 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-19", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371520 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-20", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371521 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-21", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371522 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-22", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371523 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-23", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371524 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-24", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371525 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-25", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371526 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-26", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371527 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-27", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371528 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-28", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371529 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-29", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371530 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-30", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371531 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-31", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371532 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-32", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371533 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-33", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371534 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-34", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371535 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-35", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371536 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-36", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371537 */ self.fma128("1", "1.123456789987654321123456789012345", "0E-37", "1.123456789987654321123456789012345", .toNearestOrEven)
+ /* dqadd371600 */ self.fma128("1", "0", "0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* dqadd371601 */ self.fma128("1", "-0", "0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* dqadd371602 */ self.fma128("1", "0", "-0E-19", "0E-19", .toNearestOrAwayFromZero)
+ /* dqadd371603 */ self.fma128("1", "-0", "-0E-19", "-0E-19", .toNearestOrAwayFromZero)
+ /* dqadd371611 */ self.fma128("1", "-11", "11", "0", .toNearestOrAwayFromZero)
+ /* dqadd371612 */ self.fma128("1", "11", "-11", "0", .toNearestOrAwayFromZero)
+ /* dqadd371613 */ self.fma128("9E6144", "10", "1", "Infinity", .toNearestOrAwayFromZero, .isInexact | .isOverflow)
+ /* dqadd371614 */ self.fma128("-9E6144", "10", "1", "-Infinity", .toNearestOrAwayFromZero, .isInexact | .isOverflow)
+ /* dqadd371640 */ self.fma128("1", "0", "0E-19", "0E-19", .toNearestOrEven)
+ /* dqadd371641 */ self.fma128("1", "-0", "0E-19", "0E-19", .toNearestOrEven)
+ /* dqadd371642 */ self.fma128("1", "0", "-0E-19", "0E-19", .toNearestOrEven)
+ /* dqadd371643 */ self.fma128("1", "-0", "-0E-19", "-0E-19", .toNearestOrEven)
+ /* dqadd371651 */ self.fma128("1", "-11", "11", "0", .toNearestOrEven)
+ /* dqadd371652 */ self.fma128("1", "11", "-11", "0", .toNearestOrEven)
+ /* dqadd371653 */ self.fma128("9E6144", "10", "1", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd371654 */ self.fma128("-9E6144", "10", "1", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd371680 */ self.fma128("1", "0", "0E-19", "0E-19", .towardZero)
+ /* dqadd371681 */ self.fma128("1", "-0", "0E-19", "0E-19", .towardZero)
+ /* dqadd371682 */ self.fma128("1", "0", "-0E-19", "0E-19", .towardZero)
+ /* dqadd371683 */ self.fma128("1", "-0", "-0E-19", "-0E-19", .towardZero)
+ /* dqadd371691 */ self.fma128("1", "-11", "11", "0", .towardZero)
+ /* dqadd371692 */ self.fma128("1", "11", "-11", "0", .towardZero)
+ /* dqadd371693 */ self.fma128("9E6144", "10", "1", "9.999999999999999999999999999999999E+6144", .towardZero, .isInexact | .isOverflow)
+ /* dqadd371694 */ self.fma128("-9E6144", "10", "1", "-9.999999999999999999999999999999999E+6144", .towardZero, .isInexact | .isOverflow)
+ /* dqadd371700 */ self.fma128("1", "0", "0E-19", "0E-19", .up)
+ /* dqadd371701 */ self.fma128("1", "-0", "0E-19", "0E-19", .up)
+ /* dqadd371702 */ self.fma128("1", "0", "-0E-19", "0E-19", .up)
+ /* dqadd371703 */ self.fma128("1", "-0", "-0E-19", "-0E-19", .up)
+ /* dqadd371711 */ self.fma128("1", "-11", "11", "0", .up)
+ /* dqadd371712 */ self.fma128("1", "11", "-11", "0", .up)
+ /* dqadd371713 */ self.fma128("9E6144", "10", "1", "Infinity", .up, .isInexact | .isOverflow)
+ /* dqadd371714 */ self.fma128("-9E6144", "10", "1", "-9.999999999999999999999999999999999E+6144", .up, .isInexact | .isOverflow)
+ /* dqadd371720 */ self.fma128("1", "0", "0E-19", "0E-19", .down)
+ /* dqadd371721 */ self.fma128("1", "-0", "0E-19", "-0E-19", .down)
+ /* dqadd371722 */ self.fma128("1", "0", "-0E-19", "-0E-19", .down)
+ /* dqadd371723 */ self.fma128("1", "-0", "-0E-19", "-0E-19", .down)
+ /* dqadd371731 */ self.fma128("1", "-11", "11", "-0", .down)
+ /* dqadd371732 */ self.fma128("1", "11", "-11", "-0", .down)
+ /* dqadd371733 */ self.fma128("9E6144", "10", "1", "9.999999999999999999999999999999999E+6144", .down, .isInexact | .isOverflow)
+ /* dqadd371734 */ self.fma128("-9E6144", "10", "1", "-Infinity", .down, .isInexact | .isOverflow)
+ /* dqadd375001 */ self.fma128("1", "1239876543211234567894567890123456", "1", "1239876543211234567894567890123457", .toNearestOrEven)
+ /* dqadd375002 */ self.fma128("1", "1239876543211234567894567890123456", "0.6", "1239876543211234567894567890123457", .toNearestOrEven, .isInexact)
+ /* dqadd375003 */ self.fma128("1", "1239876543211234567894567890123456", "0.06", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375004 */ self.fma128("1", "1239876543211234567894567890123456", "6E-3", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375005 */ self.fma128("1", "1239876543211234567894567890123456", "6E-4", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375006 */ self.fma128("1", "1239876543211234567894567890123456", "6E-5", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375007 */ self.fma128("1", "1239876543211234567894567890123456", "6E-6", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375008 */ self.fma128("1", "1239876543211234567894567890123456", "6E-7", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375009 */ self.fma128("1", "1239876543211234567894567890123456", "6E-8", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375010 */ self.fma128("1", "1239876543211234567894567890123456", "6E-9", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375011 */ self.fma128("1", "1239876543211234567894567890123456", "6E-10", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375012 */ self.fma128("1", "1239876543211234567894567890123456", "6E-11", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375013 */ self.fma128("1", "1239876543211234567894567890123456", "6E-12", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375014 */ self.fma128("1", "1239876543211234567894567890123456", "6E-13", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375015 */ self.fma128("1", "1239876543211234567894567890123456", "6E-14", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375016 */ self.fma128("1", "1239876543211234567894567890123456", "6E-15", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375017 */ self.fma128("1", "1239876543211234567894567890123456", "6E-16", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375018 */ self.fma128("1", "1239876543211234567894567890123456", "6E-17", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375019 */ self.fma128("1", "1239876543211234567894567890123456", "6E-18", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375020 */ self.fma128("1", "1239876543211234567894567890123456", "6E-19", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375021 */ self.fma128("1", "1239876543211234567894567890123456", "6E-20", "1239876543211234567894567890123456", .toNearestOrEven, .isInexact)
+ /* dqadd375030 */ self.fma128("1", "12398765432112345678945678", "1", "12398765432112345678945679", .toNearestOrEven)
+ /* dqadd375031 */ self.fma128("1", "12398765432112345678945678", "0.1", "12398765432112345678945678.1", .toNearestOrEven)
+ /* dqadd375032 */ self.fma128("1", "12398765432112345678945678", "0.12", "12398765432112345678945678.12", .toNearestOrEven)
+ /* dqadd375033 */ self.fma128("1", "12398765432112345678945678", "0.123", "12398765432112345678945678.123", .toNearestOrEven)
+ /* dqadd375034 */ self.fma128("1", "12398765432112345678945678", "0.1234", "12398765432112345678945678.1234", .toNearestOrEven)
+ /* dqadd375035 */ self.fma128("1", "12398765432112345678945678", "0.12345", "12398765432112345678945678.12345", .toNearestOrEven)
+ /* dqadd375036 */ self.fma128("1", "12398765432112345678945678", "0.123456", "12398765432112345678945678.123456", .toNearestOrEven)
+ /* dqadd375037 */ self.fma128("1", "12398765432112345678945678", "0.1234567", "12398765432112345678945678.1234567", .toNearestOrEven)
+ /* dqadd375038 */ self.fma128("1", "12398765432112345678945678", "0.12345678", "12398765432112345678945678.12345678", .toNearestOrEven)
+ /* dqadd375039 */ self.fma128("1", "12398765432112345678945678", "0.123456789", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd375040 */ self.fma128("1", "12398765432112345678945678", "0.123456785", "12398765432112345678945678.12345678", .toNearestOrEven, .isInexact)
+ /* dqadd375041 */ self.fma128("1", "12398765432112345678945678", "0.1234567850", "12398765432112345678945678.12345678", .toNearestOrEven, .isInexact)
+ /* dqadd375042 */ self.fma128("1", "12398765432112345678945678", "0.1234567851", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd375043 */ self.fma128("1", "12398765432112345678945678", "0.12345678501", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd375044 */ self.fma128("1", "12398765432112345678945678", "0.123456785001", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd375045 */ self.fma128("1", "12398765432112345678945678", "0.1234567850001", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd375046 */ self.fma128("1", "12398765432112345678945678", "0.12345678500001", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd375047 */ self.fma128("1", "12398765432112345678945678", "0.123456785000001", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd375048 */ self.fma128("1", "12398765432112345678945678", "0.1234567850000001", "12398765432112345678945678.12345679", .toNearestOrEven, .isInexact)
+ /* dqadd375049 */ self.fma128("1", "12398765432112345678945678", "0.1234567850000000", "12398765432112345678945678.12345678", .toNearestOrEven, .isInexact)
+ /* dqadd375050 */ self.fma128("1", "12398765432112345678945678", "0.0234567750000000", "12398765432112345678945678.02345678", .toNearestOrEven, .isInexact)
+ /* dqadd375051 */ self.fma128("1", "12398765432112345678945678", "0.0034567750000000", "12398765432112345678945678.00345678", .toNearestOrEven, .isInexact)
+ /* dqadd375052 */ self.fma128("1", "12398765432112345678945678", "0.0004567750000000", "12398765432112345678945678.00045678", .toNearestOrEven, .isInexact)
+ /* dqadd375053 */ self.fma128("1", "12398765432112345678945678", "0.0000567750000000", "12398765432112345678945678.00005678", .toNearestOrEven, .isInexact)
+ /* dqadd375054 */ self.fma128("1", "12398765432112345678945678", "0.0000067750000000", "12398765432112345678945678.00000678", .toNearestOrEven, .isInexact)
+ /* dqadd375055 */ self.fma128("1", "12398765432112345678945678", "0.0000007750000000", "12398765432112345678945678.00000078", .toNearestOrEven, .isInexact)
+ /* dqadd375056 */ self.fma128("1", "12398765432112345678945678", "0.0000000750000000", "12398765432112345678945678.00000008", .toNearestOrEven, .isInexact)
+ /* dqadd375057 */ self.fma128("1", "12398765432112345678945678", "0.0000000050000000", "12398765432112345678945678.00000000", .toNearestOrEven, .isInexact)
+ /* dqadd375060 */ self.fma128("1", "12398765432112345678945678", "0.0234567750000001", "12398765432112345678945678.02345678", .toNearestOrEven, .isInexact)
+ /* dqadd375061 */ self.fma128("1", "12398765432112345678945678", "0.0034567750000001", "12398765432112345678945678.00345678", .toNearestOrEven, .isInexact)
+ /* dqadd375062 */ self.fma128("1", "12398765432112345678945678", "0.0004567750000001", "12398765432112345678945678.00045678", .toNearestOrEven, .isInexact)
+ /* dqadd375063 */ self.fma128("1", "12398765432112345678945678", "0.0000567750000001", "12398765432112345678945678.00005678", .toNearestOrEven, .isInexact)
+ /* dqadd375064 */ self.fma128("1", "12398765432112345678945678", "0.0000067750000001", "12398765432112345678945678.00000678", .toNearestOrEven, .isInexact)
+ /* dqadd375065 */ self.fma128("1", "12398765432112345678945678", "0.0000007750000001", "12398765432112345678945678.00000078", .toNearestOrEven, .isInexact)
+ /* dqadd375066 */ self.fma128("1", "12398765432112345678945678", "0.0000000750000001", "12398765432112345678945678.00000008", .toNearestOrEven, .isInexact)
+ /* dqadd375067 */ self.fma128("1", "12398765432112345678945678", "0.0000000050000001", "12398765432112345678945678.00000001", .toNearestOrEven, .isInexact)
+ /* dqadd37540 */ self.fma128("1", "9876543219876543216543210123456788", "0.499999999", "9876543219876543216543210123456788", .toNearestOrEven, .isInexact)
+ /* dqadd37541 */ self.fma128("1", "9876543219876543216543210123456788", "0.5", "9876543219876543216543210123456788", .toNearestOrEven, .isInexact)
+ /* dqadd37542 */ self.fma128("1", "9876543219876543216543210123456788", "0.500000001", "9876543219876543216543210123456789", .toNearestOrEven, .isInexact)
+ /* dqadd37550 */ self.fma128("1", "9876543219876543216543210123456789", "0", "9876543219876543216543210123456789", .towardZero)
+ /* dqadd37551 */ self.fma128("1", "9876543219876543216543210123456789", "0.000000001", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37552 */ self.fma128("1", "9876543219876543216543210123456789", "0.000001", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37553 */ self.fma128("1", "9876543219876543216543210123456789", "0.1", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37554 */ self.fma128("1", "9876543219876543216543210123456789", "0.4", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37555 */ self.fma128("1", "9876543219876543216543210123456789", "0.49", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37556 */ self.fma128("1", "9876543219876543216543210123456789", "0.499999", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37557 */ self.fma128("1", "9876543219876543216543210123456789", "0.499999999", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37558 */ self.fma128("1", "9876543219876543216543210123456789", "0.5", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37559 */ self.fma128("1", "9876543219876543216543210123456789", "0.500000001", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37560 */ self.fma128("1", "9876543219876543216543210123456789", "0.500001", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37561 */ self.fma128("1", "9876543219876543216543210123456789", "0.51", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37562 */ self.fma128("1", "9876543219876543216543210123456789", "0.6", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37563 */ self.fma128("1", "9876543219876543216543210123456789", "0.9", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37564 */ self.fma128("1", "9876543219876543216543210123456789", "0.99999", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37565 */ self.fma128("1", "9876543219876543216543210123456789", "0.999999999", "9876543219876543216543210123456789", .towardZero, .isInexact)
+ /* dqadd37566 */ self.fma128("1", "9876543219876543216543210123456789", "1", "9876543219876543216543210123456790", .towardZero)
+ /* dqadd37567 */ self.fma128("1", "9876543219876543216543210123456789", "1.00000001", "9876543219876543216543210123456790", .towardZero, .isInexact)
+ /* dqadd37568 */ self.fma128("1", "9876543219876543216543210123456789", "1.00001", "9876543219876543216543210123456790", .towardZero, .isInexact)
+ /* dqadd37569 */ self.fma128("1", "9876543219876543216543210123456789", "1.1", "9876543219876543216543210123456790", .towardZero, .isInexact)
+ /* dqadd37575 */ self.fma128("1", "1E-6143", "-1E-6176", "9.99999999999999999999999999999999E-6144", .toNearestOrEven)
+ /* dqadd37576 */ self.fma128("1", "-1E-6143", "+1E-6176", "-9.99999999999999999999999999999999E-6144", .toNearestOrEven)
+ /* dqadd37701 */ self.fma128("1", "5.00", "1.00E-3", "5.00100", .toNearestOrEven)
+ /* dqadd37702 */ self.fma128("1", "00.00", "0.000", "0.000", .toNearestOrEven)
+ /* dqadd37703 */ self.fma128("1", "00.00", "0E-3", "0.000", .toNearestOrEven)
+ /* dqadd37704 */ self.fma128("1", "0E-3", "00.00", "0.000", .toNearestOrEven)
+ /* dqadd37710 */ self.fma128("1", "0E+3", "00.00", "0.00", .toNearestOrEven)
+ /* dqadd37711 */ self.fma128("1", "0E+3", "00.0", "0.0", .toNearestOrEven)
+ /* dqadd37712 */ self.fma128("1", "0E+3", "00.", "0", .toNearestOrEven)
+ /* dqadd37713 */ self.fma128("1", "0E+3", "00.E+1", "0E+1", .toNearestOrEven)
+ /* dqadd37714 */ self.fma128("1", "0E+3", "00.E+2", "0E+2", .toNearestOrEven)
+ /* dqadd37715 */ self.fma128("1", "0E+3", "00.E+3", "0E+3", .toNearestOrEven)
+ /* dqadd37716 */ self.fma128("1", "0E+3", "00.E+4", "0E+3", .toNearestOrEven)
+ /* dqadd37717 */ self.fma128("1", "0E+3", "00.E+5", "0E+3", .toNearestOrEven)
+ /* dqadd37718 */ self.fma128("1", "0E+3", "-00.0", "0.0", .toNearestOrEven)
+ /* dqadd37719 */ self.fma128("1", "0E+3", "-00.", "0", .toNearestOrEven)
+ /* dqadd37720 */ self.fma128("1", "00.00", "0E+3", "0.00", .toNearestOrEven)
+ /* dqadd37721 */ self.fma128("1", "00.0", "0E+3", "0.0", .toNearestOrEven)
+ /* dqadd37722 */ self.fma128("1", "00.", "0E+3", "0", .toNearestOrEven)
+ /* dqadd37723 */ self.fma128("1", "00.E+1", "0E+3", "0E+1", .toNearestOrEven)
+ /* dqadd37724 */ self.fma128("1", "00.E+2", "0E+3", "0E+2", .toNearestOrEven)
+ /* dqadd37725 */ self.fma128("1", "00.E+3", "0E+3", "0E+3", .toNearestOrEven)
+ /* dqadd37726 */ self.fma128("1", "00.E+4", "0E+3", "0E+3", .toNearestOrEven)
+ /* dqadd37727 */ self.fma128("1", "00.E+5", "0E+3", "0E+3", .toNearestOrEven)
+ /* dqadd37728 */ self.fma128("1", "-00.00", "0E+3", "0.00", .toNearestOrEven)
+ /* dqadd37729 */ self.fma128("1", "-00.0", "0E+3", "0.0", .toNearestOrEven)
+ /* dqadd37730 */ self.fma128("1", "-00.", "0E+3", "0", .toNearestOrEven)
+ /* dqadd37731 */ self.fma128("1", "0E+3", "-00.E+1", "0E+1", .toNearestOrEven)
+ /* dqadd37732 */ self.fma128("1", "0", "0", "0", .toNearestOrEven)
+ /* dqadd37733 */ self.fma128("1", "0", "-0", "0", .toNearestOrEven)
+ /* dqadd37734 */ self.fma128("1", "-0", "0", "0", .toNearestOrEven)
+ /* dqadd37735 */ self.fma128("1", "-0", "-0", "-0", .toNearestOrEven)
+ /* dqadd37736 */ self.fma128("1", "1", "-1", "0", .toNearestOrEven)
+ /* dqadd37737 */ self.fma128("1", "-1", "-1", "-2", .toNearestOrEven)
+ /* dqadd37738 */ self.fma128("1", "1", "1", "2", .toNearestOrEven)
+ /* dqadd37739 */ self.fma128("1", "-1", "1", "0", .toNearestOrEven)
+ /* dqadd37741 */ self.fma128("1", "0", "-1", "-1", .toNearestOrEven)
+ /* dqadd37742 */ self.fma128("1", "-0", "-1", "-1", .toNearestOrEven)
+ /* dqadd37743 */ self.fma128("1", "0", "1", "1", .toNearestOrEven)
+ /* dqadd37744 */ self.fma128("1", "-0", "1", "1", .toNearestOrEven)
+ /* dqadd37745 */ self.fma128("1", "-1", "0", "-1", .toNearestOrEven)
+ /* dqadd37746 */ self.fma128("1", "-1", "-0", "-1", .toNearestOrEven)
+ /* dqadd37747 */ self.fma128("1", "1", "0", "1", .toNearestOrEven)
+ /* dqadd37748 */ self.fma128("1", "1", "-0", "1", .toNearestOrEven)
+ /* dqadd37751 */ self.fma128("1", "0.0", "-1", "-1.0", .toNearestOrEven)
+ /* dqadd37752 */ self.fma128("1", "-0.0", "-1", "-1.0", .toNearestOrEven)
+ /* dqadd37753 */ self.fma128("1", "0.0", "1", "1.0", .toNearestOrEven)
+ /* dqadd37754 */ self.fma128("1", "-0.0", "1", "1.0", .toNearestOrEven)
+ /* dqadd37755 */ self.fma128("1", "-1.0", "0", "-1.0", .toNearestOrEven)
+ /* dqadd37756 */ self.fma128("1", "-1.0", "-0", "-1.0", .toNearestOrEven)
+ /* dqadd37757 */ self.fma128("1", "1.0", "0", "1.0", .toNearestOrEven)
+ /* dqadd37758 */ self.fma128("1", "1.0", "-0", "1.0", .toNearestOrEven)
+ /* dqadd37761 */ self.fma128("1", "0", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqadd37762 */ self.fma128("1", "-0", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqadd37763 */ self.fma128("1", "0", "1.0", "1.0", .toNearestOrEven)
+ /* dqadd37764 */ self.fma128("1", "-0", "1.0", "1.0", .toNearestOrEven)
+ /* dqadd37765 */ self.fma128("1", "-1", "0.0", "-1.0", .toNearestOrEven)
+ /* dqadd37766 */ self.fma128("1", "-1", "-0.0", "-1.0", .toNearestOrEven)
+ /* dqadd37767 */ self.fma128("1", "1", "0.0", "1.0", .toNearestOrEven)
+ /* dqadd37768 */ self.fma128("1", "1", "-0.0", "1.0", .toNearestOrEven)
+ /* dqadd37771 */ self.fma128("1", "0.0", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqadd37772 */ self.fma128("1", "-0.0", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqadd37773 */ self.fma128("1", "0.0", "1.0", "1.0", .toNearestOrEven)
+ /* dqadd37774 */ self.fma128("1", "-0.0", "1.0", "1.0", .toNearestOrEven)
+ /* dqadd37775 */ self.fma128("1", "-1.0", "0.0", "-1.0", .toNearestOrEven)
+ /* dqadd37776 */ self.fma128("1", "-1.0", "-0.0", "-1.0", .toNearestOrEven)
+ /* dqadd37777 */ self.fma128("1", "1.0", "0.0", "1.0", .toNearestOrEven)
+ /* dqadd37778 */ self.fma128("1", "1.0", "-0.0", "1.0", .toNearestOrEven)
+ /* dqadd37780 */ self.fma128("1", "-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd37781 */ self.fma128("1", "-Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* dqadd37782 */ self.fma128("1", "-Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* dqadd37783 */ self.fma128("1", "-Inf", "-0", "-Infinity", .toNearestOrEven)
+ /* dqadd37784 */ self.fma128("1", "-Inf", "0", "-Infinity", .toNearestOrEven)
+ /* dqadd37785 */ self.fma128("1", "-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* dqadd37786 */ self.fma128("1", "-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* dqadd37787 */ self.fma128("1", "-1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd37788 */ self.fma128("1", "-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd37789 */ self.fma128("1", "-1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd37790 */ self.fma128("1", "-0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd37791 */ self.fma128("1", "0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd37792 */ self.fma128("1", "1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd37793 */ self.fma128("1", "1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqadd37794 */ self.fma128("1", "Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37800 */ self.fma128("1", "Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37801 */ self.fma128("1", "Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* dqadd37802 */ self.fma128("1", "Inf", "-1", "Infinity", .toNearestOrEven)
+ /* dqadd37803 */ self.fma128("1", "Inf", "-0", "Infinity", .toNearestOrEven)
+ /* dqadd37804 */ self.fma128("1", "Inf", "0", "Infinity", .toNearestOrEven)
+ /* dqadd37805 */ self.fma128("1", "Inf", "1", "Infinity", .toNearestOrEven)
+ /* dqadd37806 */ self.fma128("1", "Inf", "1000", "Infinity", .toNearestOrEven)
+ /* dqadd37807 */ self.fma128("1", "Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd37808 */ self.fma128("1", "-1000", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd37809 */ self.fma128("1", "-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37810 */ self.fma128("1", "-1", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd37811 */ self.fma128("1", "-0", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd37812 */ self.fma128("1", "0", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd37813 */ self.fma128("1", "1", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd37814 */ self.fma128("1", "1000", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd37815 */ self.fma128("1", "Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqadd37821 */ self.fma128("1", "NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* dqadd37822 */ self.fma128("1", "NaN", "-1000", "NaN", .toNearestOrEven)
+ /* dqadd37823 */ self.fma128("1", "NaN", "-1", "NaN", .toNearestOrEven)
+ /* dqadd37824 */ self.fma128("1", "NaN", "-0", "NaN", .toNearestOrEven)
+ /* dqadd37825 */ self.fma128("1", "NaN", "0", "NaN", .toNearestOrEven)
+ /* dqadd37826 */ self.fma128("1", "NaN", "1", "NaN", .toNearestOrEven)
+ /* dqadd37827 */ self.fma128("1", "NaN", "1000", "NaN", .toNearestOrEven)
+ /* dqadd37828 */ self.fma128("1", "NaN", "Inf", "NaN", .toNearestOrEven)
+ /* dqadd37829 */ self.fma128("1", "NaN", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd37830 */ self.fma128("1", "-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd37831 */ self.fma128("1", "-1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd37832 */ self.fma128("1", "-1", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd37833 */ self.fma128("1", "-0", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd37834 */ self.fma128("1", "0", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd37835 */ self.fma128("1", "1", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd37836 */ self.fma128("1", "1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd37837 */ self.fma128("1", "Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqadd37841 */ self.fma128("1", "sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37842 */ self.fma128("1", "sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37843 */ self.fma128("1", "sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37844 */ self.fma128("1", "sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37845 */ self.fma128("1", "sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37846 */ self.fma128("1", "sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37847 */ self.fma128("1", "sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37848 */ self.fma128("1", "sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37849 */ self.fma128("1", "sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37850 */ self.fma128("1", "NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37851 */ self.fma128("1", "-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37852 */ self.fma128("1", "-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37853 */ self.fma128("1", "-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37854 */ self.fma128("1", "-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37855 */ self.fma128("1", "0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37856 */ self.fma128("1", "1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37857 */ self.fma128("1", "1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37858 */ self.fma128("1", "Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37859 */ self.fma128("1", "NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37861 */ self.fma128("1", "NaN(0x1)", "-Inf", "NaN(0x1)", .toNearestOrEven)
+ /* dqadd37862 */ self.fma128("1", "+NaN(0x2)", "-1000", "NaN(0x2)", .toNearestOrEven)
+ /* dqadd37863 */ self.fma128("1", "NaN(0x3)", "1000", "NaN(0x3)", .toNearestOrEven)
+ /* dqadd37864 */ self.fma128("1", "NaN(0x4)", "Inf", "NaN(0x4)", .toNearestOrEven)
+ /* dqadd37865 */ self.fma128("1", "NaN(0x5)", "+NaN(0x6)", "NaN(0x5)", .toNearestOrEven)
+ /* dqadd37866 */ self.fma128("1", "-Inf", "NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* dqadd37867 */ self.fma128("1", "-1000", "NaN(0x8)", "NaN(0x8)", .toNearestOrEven)
+ /* dqadd37868 */ self.fma128("1", "1000", "NaN(0x9)", "NaN(0x9)", .toNearestOrEven)
+ /* dqadd37869 */ self.fma128("1", "Inf", "+NaN(0xa)", "NaN(0xa)", .toNearestOrEven)
+ /* dqadd37871 */ self.fma128("1", "sNaN(0xb)", "-Inf", "NaN(0xb)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37872 */ self.fma128("1", "sNaN(0xc)", "-1000", "NaN(0xc)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37873 */ self.fma128("1", "sNaN(0xd)", "1000", "NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37874 */ self.fma128("1", "sNaN(0xe)", "NaN(0x11)", "NaN(0xe)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37875 */ self.fma128("1", "sNaN(0xf)", "sNaN(0x12)", "NaN(0xf)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37876 */ self.fma128("1", "NaN(0x10)", "sNaN(0x13)", "NaN(0x13)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37877 */ self.fma128("1", "-Inf", "+sNaN(0x14)", "NaN(0x14)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37878 */ self.fma128("1", "-1000", "sNaN(0x15)", "NaN(0x15)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37879 */ self.fma128("1", "1000", "sNaN(0x16)", "NaN(0x16)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37880 */ self.fma128("1", "Inf", "sNaN(0x17)", "NaN(0x17)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37881 */ self.fma128("1", "+NaN(0x19)", "+sNaN(0x18)", "NaN(0x18)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37882 */ self.fma128("1", "-NaN(0x1a)", "NaN(0x1c)", "-NaN(0x1a)", .toNearestOrEven)
+ /* dqadd37883 */ self.fma128("1", "-sNaN(0x1b)", "sNaN(0x1d)", "-NaN(0x1b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37884 */ self.fma128("1", "1000", "-NaN(0x1e)", "-NaN(0x1e)", .toNearestOrEven)
+ /* dqadd37885 */ self.fma128("1", "1000", "-sNaN(0x1f)", "-NaN(0x1f)", .toNearestOrEven, .isInvalidOperation)
+ /* dqadd37973 */ self.fma128("1", "9.999999999999999999999999999999999E+6144", "1", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd37974 */ self.fma128("1", "9999999999999999999999999999999999E+6111", "1", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd37975 */ self.fma128("1", "9999999999999999999999999999999999E+6111", "1E+6111", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37976 */ self.fma128("1", "9999999999999999999999999999999999E+6111", "9E+6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37977 */ self.fma128("1", "9999999999999999999999999999999999E+6111", "8E+6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37978 */ self.fma128("1", "9999999999999999999999999999999999E+6111", "7E+6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37979 */ self.fma128("1", "9999999999999999999999999999999999E+6111", "6E+6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37980 */ self.fma128("1", "9999999999999999999999999999999999E+6111", "5E+6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37981 */ self.fma128("1", "9999999999999999999999999999999999E+6111", "4E+6110", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd37982 */ self.fma128("1", "9999999999999999999999999999999999E+6111", "3E+6110", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd37983 */ self.fma128("1", "9999999999999999999999999999999999E+6111", "2E+6110", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd37984 */ self.fma128("1", "9999999999999999999999999999999999E+6111", "1E+6110", "9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd37986 */ self.fma128("1", "-9.999999999999999999999999999999999E+6144", "-1", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd37987 */ self.fma128("1", "-9999999999999999999999999999999999E+6111", "-1", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd37988 */ self.fma128("1", "-9999999999999999999999999999999999E+6111", "-1E+6111", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37989 */ self.fma128("1", "-9999999999999999999999999999999999E+6111", "-9E+6110", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37990 */ self.fma128("1", "-9999999999999999999999999999999999E+6111", "-8E+6110", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37991 */ self.fma128("1", "-9999999999999999999999999999999999E+6111", "-7E+6110", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37992 */ self.fma128("1", "-9999999999999999999999999999999999E+6111", "-6E+6110", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37993 */ self.fma128("1", "-9999999999999999999999999999999999E+6111", "-5E+6110", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqadd37994 */ self.fma128("1", "-9999999999999999999999999999999999E+6111", "-4E+6110", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd37995 */ self.fma128("1", "-9999999999999999999999999999999999E+6111", "-3E+6110", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd37996 */ self.fma128("1", "-9999999999999999999999999999999999E+6111", "-2E+6110", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqadd37997 */ self.fma128("1", "-9999999999999999999999999999999999E+6111", "-1E+6110", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven, .isInexact)
+ /* dqfma0001 */ self.fma128("1", "1", "1", "2", .toNearestOrEven)
+ /* dqfma0002 */ self.fma128("1", "1", "2", "3", .toNearestOrEven)
+ /* dqfma0003 */ self.fma128("2", "2", "3", "7", .toNearestOrEven)
+ /* dqfma0004 */ self.fma128("9", "9", "9", "90", .toNearestOrEven)
+ /* dqfma0005 */ self.fma128("-1", "1", "1", "0", .toNearestOrEven)
+ /* dqfma0006 */ self.fma128("-1", "1", "2", "1", .toNearestOrEven)
+ /* dqfma0007 */ self.fma128("-2", "2", "3", "-1", .toNearestOrEven)
+ /* dqfma0008 */ self.fma128("-9", "9", "9", "-72", .toNearestOrEven)
+ /* dqfma0011 */ self.fma128("1", "-1", "1", "0", .toNearestOrEven)
+ /* dqfma0012 */ self.fma128("1", "-1", "2", "1", .toNearestOrEven)
+ /* dqfma0013 */ self.fma128("2", "-2", "3", "-1", .toNearestOrEven)
+ /* dqfma0014 */ self.fma128("9", "-9", "9", "-72", .toNearestOrEven)
+ /* dqfma0015 */ self.fma128("1", "1", "-1", "0", .toNearestOrEven)
+ /* dqfma0016 */ self.fma128("1", "1", "-2", "-1", .toNearestOrEven)
+ /* dqfma0017 */ self.fma128("2", "2", "-3", "1", .toNearestOrEven)
+ /* dqfma0018 */ self.fma128("9", "9", "-9", "72", .toNearestOrEven)
+ /* dqfma0100 */ self.fma128("25.2", "63.6", "-438", "1164.72", .toNearestOrEven)
+ /* dqfma0101 */ self.fma128("0.301", "0.380", "334", "334.114380", .toNearestOrEven)
+ /* dqfma0102 */ self.fma128("49.2", "-4.8", "23.3", "-212.86", .toNearestOrEven)
+ /* dqfma0103 */ self.fma128("4.22", "0.079", "-94.6", "-94.26662", .toNearestOrEven)
+ /* dqfma0104 */ self.fma128("903", "0.797", "0.887", "720.578", .toNearestOrEven)
+ /* dqfma0105 */ self.fma128("6.13", "-161", "65.9", "-921.03", .toNearestOrEven)
+ /* dqfma0106 */ self.fma128("28.2", "727", "5.45", "20506.85", .toNearestOrEven)
+ /* dqfma0107 */ self.fma128("4", "605", "688", "3108", .toNearestOrEven)
+ /* dqfma0108 */ self.fma128("93.3", "0.19", "0.226", "17.953", .toNearestOrEven)
+ /* dqfma0109 */ self.fma128("0.169", "-341", "5.61", "-52.019", .toNearestOrEven)
+ /* dqfma0110 */ self.fma128("-72.2", "30", "-51.2", "-2217.2", .toNearestOrEven)
+ /* dqfma0111 */ self.fma128("-0.409", "13", "20.4", "15.083", .toNearestOrEven)
+ /* dqfma0112 */ self.fma128("317", "77.0", "19.0", "24428.0", .toNearestOrEven)
+ /* dqfma0113 */ self.fma128("47", "6.58", "1.62", "310.88", .toNearestOrEven)
+ /* dqfma0114 */ self.fma128("1.36", "0.984", "0.493", "1.83124", .toNearestOrEven)
+ /* dqfma0115 */ self.fma128("72.7", "274", "1.56", "19921.36", .toNearestOrEven)
+ /* dqfma0116 */ self.fma128("335", "847", "83", "283828", .toNearestOrEven)
+ /* dqfma0117 */ self.fma128("666", "0.247", "25.4", "189.902", .toNearestOrEven)
+ /* dqfma0118 */ self.fma128("-3.87", "3.06", "78.0", "66.1578", .toNearestOrEven)
+ /* dqfma0119 */ self.fma128("0.742", "192", "35.6", "178.064", .toNearestOrEven)
+ /* dqfma0120 */ self.fma128("-91.6", "5.29", "0.153", "-484.411", .toNearestOrEven)
+ /* dqfma0202 */ self.fma128("68537985861355864457.5694", "6565875762972086605.85969", "35892634447236753.172812", "4.500119002100000209469729375698779E+38", .toNearestOrEven, .isInexact)
+ /* dqfma0208 */ self.fma128("89261822344727628571.9", "6717595845654131383336.89", "5061036497288796076266.11", "5.996248469584594346858881620185513E+41", .toNearestOrEven, .isInexact)
+ /* dqfma0210 */ self.fma128("320506237232448685.495971", "59257597764017967.984448", "3205615239077711589912.85", "1.899242968678256924021594770874071E+34", .toNearestOrEven, .isInexact)
+ /* dqfma0215 */ self.fma128("220247843259112263.17995", "321392340287987979002.80", "47533279819997167655440", "7.078596978842809537929699954860308E+37", .toNearestOrEven, .isInexact)
+ /* dqfma0226 */ self.fma128("23880729790368880412.1449", "512947333827064719.55407", "217117438419590824502.963", "1.224955667581427559754106862350744E+37", .toNearestOrEven, .isInexact)
+ /* dqfma0229 */ self.fma128("2539892357016099706.4126", "-996142232667504817717435", "53682082598315949425.937", "-2.530094043253148806272276368579143E+42", .toNearestOrEven, .isInexact)
+ /* dqfma0233 */ self.fma128("4546339491341624464.0804", "3768717864169205581", "83578980278690395184.620", "1.713387085759711954319391412788453E+37", .toNearestOrEven, .isInexact)
+ /* dqfma0235 */ self.fma128("409242119433816131.42253", "992633815166741501.477249", "70179636544416756129546", "4.062275663405823716411579117771548E+35", .toNearestOrEven, .isInexact)
+ /* dqfma0258 */ self.fma128("817941336593541742159684", "733867339769310729266598", "78563844650942419311830.8", "6.002604327732568490562249875306822E+47", .toNearestOrEven, .isInexact)
+ /* dqfma0264 */ self.fma128("387617310169161270.737532", "-5229442703414956061216.62", "57665666816652967150473.5", "-2.027022514381452197510103395283873E+39", .toNearestOrEven, .isInexact)
+ /* dqfma0267 */ self.fma128("-847655845720565274701.210", "92685316564117739.83984", "22780950041376424429.5686", "-7.856525039803554001144089842730360E+37", .toNearestOrEven, .isInexact)
+ /* dqfma0268 */ self.fma128("21590290365127685.3675", "7853139227576541379426.8", "-3275859437236180.761544", "1.695515562011520746125607502237558E+38", .toNearestOrEven, .isInexact)
+ /* dqfma0269 */ self.fma128("-974320636272862697.971586", "867109103641860247440.756", "-9775170775902454762.98", "-8.448422935783289219748115038014709E+38", .toNearestOrEven, .isInexact)
+ /* dqfma0300 */ self.fma128("9e+6144", "10", "0", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma0301 */ self.fma128("1e+6144", "10", "0", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma0302 */ self.fma128("1e+6144", "10", "-1e+6144", "9.000000000000000000000000000000000E+6144", .toNearestOrEven)
+ /* dqfma0303 */ self.fma128("1e+6144", "10", "-9e+6144", "1.000000000000000000000000000000000E+6144", .toNearestOrEven)
+ /* dqfma0305 */ self.fma128("1e-6176", "0.1", "0", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma0306 */ self.fma128("1e-6176", "0.1", "1", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqfma0307 */ self.fma128("1e-6176", "0.1", "1e-6176", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma0800 */ self.fma128("Inf", "Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqfma0801 */ self.fma128("Inf", "Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma0802 */ self.fma128("Inf", "-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma0803 */ self.fma128("Inf", "-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqfma0804 */ self.fma128("-Inf", "Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma0805 */ self.fma128("-Inf", "Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqfma0806 */ self.fma128("-Inf", "-Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqfma0807 */ self.fma128("-Inf", "-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma0900 */ self.fma128("NaN(0x2)", "NaN(0x3)", "NaN(0x5)", "NaN(0x2)", .toNearestOrEven)
+ /* dqfma0901 */ self.fma128("0", "NaN(0x3)", "NaN(0x5)", "NaN(0x3)", .toNearestOrEven)
+ /* dqfma0902 */ self.fma128("0", "0", "NaN(0x5)", "NaN(0x5)", .toNearestOrEven)
+ /* dqfma0903 */ self.fma128("sNaN(0x1)", "sNaN(0x2)", "sNaN(0x3)", "NaN(0x1)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma0904 */ self.fma128("0", "sNaN(0x2)", "sNaN(0x3)", "NaN(0x2)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma0905 */ self.fma128("0", "0", "sNaN(0x3)", "NaN(0x3)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma0906 */ self.fma128("sNaN(0x1)", "sNaN(0x2)", "sNaN(0x3)", "NaN(0x1)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma0907 */ self.fma128("NaN(0x7)", "sNaN(0x2)", "sNaN(0x3)", "NaN(0x2)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma0908 */ self.fma128("NaN(0x7)", "NaN(0x5)", "sNaN(0x3)", "NaN(0x3)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2000 */ self.fma128("2", "2", "0e+6144", "4", .toNearestOrEven)
+ /* dqfma2001 */ self.fma128("2", "3", "0e+6144", "6", .toNearestOrEven)
+ /* dqfma2002 */ self.fma128("5", "1", "0e+6144", "5", .toNearestOrEven)
+ /* dqfma2003 */ self.fma128("5", "2", "0e+6144", "10", .toNearestOrEven)
+ /* dqfma2004 */ self.fma128("1.20", "2", "0e+6144", "2.40", .toNearestOrEven)
+ /* dqfma2005 */ self.fma128("1.20", "0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2006 */ self.fma128("1.20", "-2", "0e+6144", "-2.40", .toNearestOrEven)
+ /* dqfma2007 */ self.fma128("-1.20", "2", "0e+6144", "-2.40", .toNearestOrEven)
+ /* dqfma2008 */ self.fma128("-1.20", "0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2009 */ self.fma128("-1.20", "-2", "0e+6144", "2.40", .toNearestOrEven)
+ /* dqfma2010 */ self.fma128("5.09", "7.1", "0e+6144", "36.139", .toNearestOrEven)
+ /* dqfma2011 */ self.fma128("2.5", "4", "0e+6144", "10.0", .toNearestOrEven)
+ /* dqfma2012 */ self.fma128("2.50", "4", "0e+6144", "10.00", .toNearestOrEven)
+ /* dqfma2013 */ self.fma128("1.23456789", "1.0000000000000000000000000000", "0e+6144", "1.234567890000000000000000000000000", .toNearestOrEven)
+ /* dqfma2015 */ self.fma128("2.50", "4", "0e+6144", "10.00", .toNearestOrEven)
+ /* dqfma2016 */ self.fma128("9.99999999999999999", "9.99999999999999999", "0e+6144", "99.99999999999999980000000000000000", .toNearestOrEven, .isInexact)
+ /* dqfma2017 */ self.fma128("9.99999999999999999", "-9.99999999999999999", "0e+6144", "-99.99999999999999980000000000000000", .toNearestOrEven, .isInexact)
+ /* dqfma2018 */ self.fma128("-9.99999999999999999", "9.99999999999999999", "0e+6144", "-99.99999999999999980000000000000000", .toNearestOrEven, .isInexact)
+ /* dqfma2019 */ self.fma128("-9.99999999999999999", "-9.99999999999999999", "0e+6144", "99.99999999999999980000000000000000", .toNearestOrEven, .isInexact)
+ /* dqfma2021 */ self.fma128("0", "0", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2022 */ self.fma128("0", "-0", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2023 */ self.fma128("-0", "0", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2024 */ self.fma128("-0", "-0", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2025 */ self.fma128("-0.0", "-0.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2026 */ self.fma128("-0.0", "-0.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2027 */ self.fma128("-0.0", "-0.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2028 */ self.fma128("-0.0", "-0.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2030 */ self.fma128("5.00", "1E-3", "0e+6144", "0.00500", .toNearestOrEven)
+ /* dqfma2031 */ self.fma128("00.00", "0.000", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2032 */ self.fma128("00.00", "0E-3", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2033 */ self.fma128("0E-3", "00.00", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2034 */ self.fma128("-5.00", "1E-3", "0e+6144", "-0.00500", .toNearestOrEven)
+ /* dqfma2035 */ self.fma128("-00.00", "0.000", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2036 */ self.fma128("-00.00", "0E-3", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2037 */ self.fma128("-0E-3", "00.00", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2038 */ self.fma128("5.00", "-1E-3", "0e+6144", "-0.00500", .toNearestOrEven)
+ /* dqfma2039 */ self.fma128("00.00", "-0.000", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2040 */ self.fma128("00.00", "-0E-3", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2041 */ self.fma128("0E-3", "-00.00", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2042 */ self.fma128("-5.00", "-1E-3", "0e+6144", "0.00500", .toNearestOrEven)
+ /* dqfma2043 */ self.fma128("-00.00", "-0.000", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2044 */ self.fma128("-00.00", "-0E-3", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2045 */ self.fma128("-0E-3", "-00.00", "0e+6144", "0.00000", .toNearestOrEven)
+ /* dqfma2050 */ self.fma128("1.20", "3", "0e+6144", "3.60", .toNearestOrEven)
+ /* dqfma2051 */ self.fma128("7", "3", "0e+6144", "21", .toNearestOrEven)
+ /* dqfma2052 */ self.fma128("0.9", "0.8", "0e+6144", "0.72", .toNearestOrEven)
+ /* dqfma2053 */ self.fma128("0.9", "-0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2054 */ self.fma128("654321", "654321", "0e+6144", "428135971041", .toNearestOrEven)
+ /* dqfma2060 */ self.fma128("123.45", "1e7", "0e+6144", "1.2345E+9", .toNearestOrEven)
+ /* dqfma2061 */ self.fma128("123.45", "1e8", "0e+6144", "1.2345E+10", .toNearestOrEven)
+ /* dqfma2062 */ self.fma128("123.45", "1e+9", "0e+6144", "1.2345E+11", .toNearestOrEven)
+ /* dqfma2063 */ self.fma128("123.45", "1e10", "0e+6144", "1.2345E+12", .toNearestOrEven)
+ /* dqfma2064 */ self.fma128("123.45", "1e11", "0e+6144", "1.2345E+13", .toNearestOrEven)
+ /* dqfma2065 */ self.fma128("123.45", "1e12", "0e+6144", "1.2345E+14", .toNearestOrEven)
+ /* dqfma2066 */ self.fma128("123.45", "1e13", "0e+6144", "1.2345E+15", .toNearestOrEven)
+ /* dqfma2080 */ self.fma128("0.1", "1230123456456789", "0e+6144", "123012345645678.9", .toNearestOrEven)
+ /* dqfma2084 */ self.fma128("0.1", "1230123456456789", "0e+6144", "123012345645678.9", .toNearestOrEven)
+ /* dqfma2090 */ self.fma128("1230123456456789", "0.1", "0e+6144", "123012345645678.9", .toNearestOrEven)
+ /* dqfma2094 */ self.fma128("1230123456456789", "0.1", "0e+6144", "123012345645678.9", .toNearestOrEven)
+ /* dqfma21001 */ self.fma128("130E-2", "120E-2", "0e+6144", "1.5600", .toNearestOrAwayFromZero)
+ /* dqfma21002 */ self.fma128("130E-2", "12E-1", "0e+6144", "1.560", .toNearestOrAwayFromZero)
+ /* dqfma21003 */ self.fma128("130E-2", "1E0", "0e+6144", "1.30", .toNearestOrAwayFromZero)
+ /* dqfma21004 */ self.fma128("1E2", "1E4", "0e+6144", "1E+6", .toNearestOrAwayFromZero)
+ /* dqfma2101 */ self.fma128("9", "9", "0e+6144", "81", .toNearestOrEven)
+ /* dqfma2102 */ self.fma128("9", "90", "0e+6144", "810", .toNearestOrEven)
+ /* dqfma2103 */ self.fma128("9", "900", "0e+6144", "8100", .toNearestOrEven)
+ /* dqfma2104 */ self.fma128("9", "9000", "0e+6144", "81000", .toNearestOrEven)
+ /* dqfma2105 */ self.fma128("9", "90000", "0e+6144", "810000", .toNearestOrEven)
+ /* dqfma2106 */ self.fma128("9", "900000", "0e+6144", "8100000", .toNearestOrEven)
+ /* dqfma2107 */ self.fma128("9", "9000000", "0e+6144", "81000000", .toNearestOrEven)
+ /* dqfma2108 */ self.fma128("9", "90000000", "0e+6144", "810000000", .toNearestOrEven)
+ /* dqfma2109 */ self.fma128("9", "900000000", "0e+6144", "8100000000", .toNearestOrEven)
+ /* dqfma2110 */ self.fma128("9", "9000000000", "0e+6144", "81000000000", .toNearestOrEven)
+ /* dqfma2111 */ self.fma128("9", "90000000000", "0e+6144", "810000000000", .toNearestOrEven)
+ /* dqfma2112 */ self.fma128("9", "900000000000", "0e+6144", "8100000000000", .toNearestOrEven)
+ /* dqfma2113 */ self.fma128("9", "9000000000000", "0e+6144", "81000000000000", .toNearestOrEven)
+ /* dqfma2114 */ self.fma128("9", "90000000000000", "0e+6144", "810000000000000", .toNearestOrEven)
+ /* dqfma2115 */ self.fma128("9", "900000000000000", "0e+6144", "8100000000000000", .toNearestOrEven)
+ /* dqfma2131 */ self.fma128("3", "3", "0e+6144", "9", .toNearestOrEven)
+ /* dqfma2132 */ self.fma128("3", "30", "0e+6144", "90", .toNearestOrEven)
+ /* dqfma2133 */ self.fma128("3", "300", "0e+6144", "900", .toNearestOrEven)
+ /* dqfma2134 */ self.fma128("3", "3000", "0e+6144", "9000", .toNearestOrEven)
+ /* dqfma2135 */ self.fma128("3", "30000", "0e+6144", "90000", .toNearestOrEven)
+ /* dqfma2136 */ self.fma128("3", "300000", "0e+6144", "900000", .toNearestOrEven)
+ /* dqfma2137 */ self.fma128("3", "3000000", "0e+6144", "9000000", .toNearestOrEven)
+ /* dqfma2138 */ self.fma128("3", "30000000", "0e+6144", "90000000", .toNearestOrEven)
+ /* dqfma2139 */ self.fma128("3", "300000000", "0e+6144", "900000000", .toNearestOrEven)
+ /* dqfma2140 */ self.fma128("3", "3000000000", "0e+6144", "9000000000", .toNearestOrEven)
+ /* dqfma2141 */ self.fma128("3", "30000000000", "0e+6144", "90000000000", .toNearestOrEven)
+ /* dqfma2142 */ self.fma128("3", "300000000000", "0e+6144", "900000000000", .toNearestOrEven)
+ /* dqfma2143 */ self.fma128("3", "3000000000000", "0e+6144", "9000000000000", .toNearestOrEven)
+ /* dqfma2144 */ self.fma128("3", "30000000000000", "0e+6144", "90000000000000", .toNearestOrEven)
+ /* dqfma2145 */ self.fma128("3", "300000000000000", "0e+6144", "900000000000000", .toNearestOrEven)
+ /* dqfma2146 */ self.fma128("3", "3000000000000000", "0e+6144", "9000000000000000", .toNearestOrEven)
+ /* dqfma2147 */ self.fma128("3", "30000000000000000", "0e+6144", "90000000000000000", .toNearestOrEven)
+ /* dqfma2148 */ self.fma128("3", "300000000000000000", "0e+6144", "900000000000000000", .toNearestOrEven)
+ /* dqfma2149 */ self.fma128("3", "3000000000000000000", "0e+6144", "9000000000000000000", .toNearestOrEven)
+ /* dqfma2150 */ self.fma128("3", "30000000000000000000", "0e+6144", "90000000000000000000", .toNearestOrEven)
+ /* dqfma2151 */ self.fma128("3", "300000000000000000000", "0e+6144", "900000000000000000000", .toNearestOrEven)
+ /* dqfma2152 */ self.fma128("3", "3000000000000000000000", "0e+6144", "9000000000000000000000", .toNearestOrEven)
+ /* dqfma2153 */ self.fma128("3", "30000000000000000000000", "0e+6144", "90000000000000000000000", .toNearestOrEven)
+ /* dqfma2263 */ self.fma128("30269.587755640502150977251770554", "4.8046009735990873395936309640543", "0e+6144", "145433.2908011933696719165119928296", .toNearestOrEven, .isInexact)
+ /* dqfma2301 */ self.fma128("900000000000000000", "9", "0e+6144", "8100000000000000000", .toNearestOrEven)
+ /* dqfma2302 */ self.fma128("900000000000000000", "90", "0e+6144", "81000000000000000000", .toNearestOrEven)
+ /* dqfma2303 */ self.fma128("900000000000000000", "900", "0e+6144", "810000000000000000000", .toNearestOrEven)
+ /* dqfma2304 */ self.fma128("900000000000000000", "9000", "0e+6144", "8100000000000000000000", .toNearestOrEven)
+ /* dqfma2305 */ self.fma128("900000000000000000", "90000", "0e+6144", "81000000000000000000000", .toNearestOrEven)
+ /* dqfma2306 */ self.fma128("900000000000000000", "900000", "0e+6144", "810000000000000000000000", .toNearestOrEven)
+ /* dqfma2307 */ self.fma128("900000000000000000", "9000000", "0e+6144", "8100000000000000000000000", .toNearestOrEven)
+ /* dqfma2308 */ self.fma128("900000000000000000", "90000000", "0e+6144", "81000000000000000000000000", .toNearestOrEven)
+ /* dqfma2309 */ self.fma128("900000000000000000", "900000000", "0e+6144", "810000000000000000000000000", .toNearestOrEven)
+ /* dqfma2310 */ self.fma128("900000000000000000", "9000000000", "0e+6144", "8100000000000000000000000000", .toNearestOrEven)
+ /* dqfma2311 */ self.fma128("900000000000000000", "90000000000", "0e+6144", "81000000000000000000000000000", .toNearestOrEven)
+ /* dqfma2312 */ self.fma128("900000000000000000", "900000000000", "0e+6144", "810000000000000000000000000000", .toNearestOrEven)
+ /* dqfma2313 */ self.fma128("900000000000000000", "9000000000000", "0e+6144", "8100000000000000000000000000000", .toNearestOrEven)
+ /* dqfma2314 */ self.fma128("900000000000000000", "90000000000000", "0e+6144", "81000000000000000000000000000000", .toNearestOrEven)
+ /* dqfma2315 */ self.fma128("900000000000000000", "900000000000000", "0e+6144", "810000000000000000000000000000000", .toNearestOrEven)
+ /* dqfma2316 */ self.fma128("900000000000000000", "9000000000000000", "0e+6144", "8100000000000000000000000000000000", .toNearestOrEven)
+ /* dqfma2317 */ self.fma128("9000000000000000000", "9000000000000000", "0e+6144", "8.100000000000000000000000000000000E+34", .toNearestOrEven)
+ /* dqfma2318 */ self.fma128("90000000000000000000", "9000000000000000", "0e+6144", "8.100000000000000000000000000000000E+35", .toNearestOrEven)
+ /* dqfma2319 */ self.fma128("900000000000000000000", "9000000000000000", "0e+6144", "8.100000000000000000000000000000000E+36", .toNearestOrEven)
+ /* dqfma2320 */ self.fma128("9000000000000000000000", "9000000000000000", "0e+6144", "8.100000000000000000000000000000000E+37", .toNearestOrEven)
+ /* dqfma2321 */ self.fma128("90000000000000000000000", "9000000000000000", "0e+6144", "8.100000000000000000000000000000000E+38", .toNearestOrEven)
+ /* dqfma2322 */ self.fma128("900000000000000000000000", "9000000000000000", "0e+6144", "8.100000000000000000000000000000000E+39", .toNearestOrEven)
+ /* dqfma2323 */ self.fma128("9000000000000000000000000", "9000000000000000", "0e+6144", "8.100000000000000000000000000000000E+40", .toNearestOrEven)
+ /* dqfma2504 */ self.fma128("0E-4260", "1000E-4260", "0e+6144", "0E-6176", .toNearestOrEven)
+ /* dqfma2505 */ self.fma128("100E+4260", "0E+4260", "0e+6144", "0E+6111", .toNearestOrEven)
+ /* dqfma2530 */ self.fma128("-1.0", "-0.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2531 */ self.fma128("-1.0", "0.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2532 */ self.fma128("1.0", "-0.0", "-0e+6144", "-0.00", .toNearestOrEven)
+ /* dqfma2533 */ self.fma128("1.0", "0.0", "-0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2534 */ self.fma128("-1.0", "-0.0", "-0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2535 */ self.fma128("-1.0", "0.0", "-0e+6144", "-0.00", .toNearestOrEven)
+ /* dqfma2541 */ self.fma128("0", "-1", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2542 */ self.fma128("-0", "-1", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2543 */ self.fma128("0", "1", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2544 */ self.fma128("-0", "1", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2545 */ self.fma128("-1", "0", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2546 */ self.fma128("-1", "-0", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2547 */ self.fma128("1", "0", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2548 */ self.fma128("1", "-0", "0e+6144", "0", .toNearestOrEven)
+ /* dqfma2551 */ self.fma128("0.0", "-1", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2552 */ self.fma128("-0.0", "-1", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2553 */ self.fma128("0.0", "1", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2554 */ self.fma128("-0.0", "1", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2555 */ self.fma128("-1.0", "0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2556 */ self.fma128("-1.0", "-0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2557 */ self.fma128("1.0", "0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2558 */ self.fma128("1.0", "-0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2561 */ self.fma128("0", "-1.0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2562 */ self.fma128("-0", "-1.0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2563 */ self.fma128("0", "1.0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2564 */ self.fma128("-0", "1.0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2565 */ self.fma128("-1", "0.0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2566 */ self.fma128("-1", "-0.0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2567 */ self.fma128("1", "0.0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2568 */ self.fma128("1", "-0.0", "0e+6144", "0.0", .toNearestOrEven)
+ /* dqfma2571 */ self.fma128("0.0", "-1.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2572 */ self.fma128("-0.0", "-1.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2573 */ self.fma128("0.0", "1.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2574 */ self.fma128("-0.0", "1.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2575 */ self.fma128("-1.0", "0.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2576 */ self.fma128("-1.0", "-0.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2577 */ self.fma128("1.0", "0.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2578 */ self.fma128("1.0", "-0.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2579 */ self.fma128("1.0", "0.0", "0e+6144", "0.00", .toNearestOrEven)
+ /* dqfma2580 */ self.fma128("Inf", "-Inf", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2581 */ self.fma128("Inf", "-1000", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2582 */ self.fma128("Inf", "-1", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2583 */ self.fma128("Inf", "-0", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2584 */ self.fma128("Inf", "0", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2585 */ self.fma128("Inf", "1", "0e+6144", "Infinity", .toNearestOrEven)
+ /* dqfma2586 */ self.fma128("Inf", "1000", "0e+6144", "Infinity", .toNearestOrEven)
+ /* dqfma2587 */ self.fma128("Inf", "Inf", "0e+6144", "Infinity", .toNearestOrEven)
+ /* dqfma2588 */ self.fma128("-1000", "Inf", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2589 */ self.fma128("-Inf", "Inf", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2590 */ self.fma128("-1", "Inf", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2591 */ self.fma128("-0", "Inf", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2592 */ self.fma128("0", "Inf", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2593 */ self.fma128("1", "Inf", "0e+6144", "Infinity", .toNearestOrEven)
+ /* dqfma2594 */ self.fma128("1000", "Inf", "0e+6144", "Infinity", .toNearestOrEven)
+ /* dqfma2595 */ self.fma128("Inf", "Inf", "0e+6144", "Infinity", .toNearestOrEven)
+ /* dqfma2600 */ self.fma128("-Inf", "-Inf", "0e+6144", "Infinity", .toNearestOrEven)
+ /* dqfma2601 */ self.fma128("-Inf", "-1000", "0e+6144", "Infinity", .toNearestOrEven)
+ /* dqfma2602 */ self.fma128("-Inf", "-1", "0e+6144", "Infinity", .toNearestOrEven)
+ /* dqfma2603 */ self.fma128("-Inf", "-0", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2604 */ self.fma128("-Inf", "0", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2605 */ self.fma128("-Inf", "1", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2606 */ self.fma128("-Inf", "1000", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2607 */ self.fma128("-Inf", "Inf", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2608 */ self.fma128("-1000", "Inf", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2609 */ self.fma128("-Inf", "-Inf", "0e+6144", "Infinity", .toNearestOrEven)
+ /* dqfma2610 */ self.fma128("-1", "-Inf", "0e+6144", "Infinity", .toNearestOrEven)
+ /* dqfma2611 */ self.fma128("-0", "-Inf", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2612 */ self.fma128("0", "-Inf", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2613 */ self.fma128("1", "-Inf", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2614 */ self.fma128("1000", "-Inf", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2615 */ self.fma128("Inf", "-Inf", "0e+6144", "-Infinity", .toNearestOrEven)
+ /* dqfma2621 */ self.fma128("NaN", "-Inf", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2622 */ self.fma128("NaN", "-1000", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2623 */ self.fma128("NaN", "-1", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2624 */ self.fma128("NaN", "-0", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2625 */ self.fma128("NaN", "0", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2626 */ self.fma128("NaN", "1", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2627 */ self.fma128("NaN", "1000", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2628 */ self.fma128("NaN", "Inf", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2629 */ self.fma128("NaN", "NaN", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2630 */ self.fma128("-Inf", "NaN", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2631 */ self.fma128("-1000", "NaN", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2632 */ self.fma128("-1", "NaN", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2633 */ self.fma128("-0", "NaN", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2634 */ self.fma128("0", "NaN", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2635 */ self.fma128("1", "NaN", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2636 */ self.fma128("1000", "NaN", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2637 */ self.fma128("Inf", "NaN", "0e+6144", "NaN", .toNearestOrEven)
+ /* dqfma2641 */ self.fma128("sNaN", "-Inf", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2642 */ self.fma128("sNaN", "-1000", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2643 */ self.fma128("sNaN", "-1", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2644 */ self.fma128("sNaN", "-0", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2645 */ self.fma128("sNaN", "0", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2646 */ self.fma128("sNaN", "1", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2647 */ self.fma128("sNaN", "1000", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2648 */ self.fma128("sNaN", "NaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2649 */ self.fma128("sNaN", "sNaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2650 */ self.fma128("NaN", "sNaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2651 */ self.fma128("-Inf", "sNaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2652 */ self.fma128("-1000", "sNaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2653 */ self.fma128("-1", "sNaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2654 */ self.fma128("-0", "sNaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2655 */ self.fma128("0", "sNaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2656 */ self.fma128("1", "sNaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2657 */ self.fma128("1000", "sNaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2658 */ self.fma128("Inf", "sNaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2659 */ self.fma128("NaN", "sNaN", "0e+6144", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2661 */ self.fma128("NaN(0x9)", "-Inf", "0e+6144", "NaN(0x9)", .toNearestOrEven)
+ /* dqfma2662 */ self.fma128("NaN(0x8)", "999", "0e+6144", "NaN(0x8)", .toNearestOrEven)
+ /* dqfma2663 */ self.fma128("NaN(0x47)", "Inf", "0e+6144", "NaN(0x47)", .toNearestOrEven)
+ /* dqfma2664 */ self.fma128("NaN(0x6)", "NaN(0x5)", "0e+6144", "NaN(0x6)", .toNearestOrEven)
+ /* dqfma2665 */ self.fma128("-Inf", "NaN(0x4)", "0e+6144", "NaN(0x4)", .toNearestOrEven)
+ /* dqfma2666 */ self.fma128("-999", "NaN(0x21)", "0e+6144", "NaN(0x21)", .toNearestOrEven)
+ /* dqfma2667 */ self.fma128("Inf", "NaN(0x2)", "0e+6144", "NaN(0x2)", .toNearestOrEven)
+ /* dqfma2671 */ self.fma128("sNaN(0x63)", "-Inf", "0e+6144", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2672 */ self.fma128("sNaN(0x62)", "-11", "0e+6144", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2673 */ self.fma128("sNaN(0x61)", "NaN", "0e+6144", "NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2674 */ self.fma128("sNaN(0x10)", "sNaN(0x5e)", "0e+6144", "NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2675 */ self.fma128("NaN(0x5f)", "sNaN(0x5d)", "0e+6144", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2676 */ self.fma128("-Inf", "sNaN(0x5c)", "0e+6144", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2677 */ self.fma128("088", "sNaN(0x5b)", "0e+6144", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2678 */ self.fma128("Inf", "sNaN(0x5a)", "0e+6144", "NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2679 */ self.fma128("NaN", "sNaN(0x59)", "0e+6144", "NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2681 */ self.fma128("-NaN(0x9)", "-Inf", "0e+6144", "-NaN(0x9)", .toNearestOrEven)
+ /* dqfma2682 */ self.fma128("-NaN(0x8)", "999", "0e+6144", "-NaN(0x8)", .toNearestOrEven)
+ /* dqfma2683 */ self.fma128("-NaN(0x47)", "Inf", "0e+6144", "-NaN(0x47)", .toNearestOrEven)
+ /* dqfma2684 */ self.fma128("-NaN(0x6)", "-NaN(0x5)", "0e+6144", "-NaN(0x6)", .toNearestOrEven)
+ /* dqfma2685 */ self.fma128("-Inf", "-NaN(0x4)", "0e+6144", "-NaN(0x4)", .toNearestOrEven)
+ /* dqfma2686 */ self.fma128("-999", "-NaN(0x21)", "0e+6144", "-NaN(0x21)", .toNearestOrEven)
+ /* dqfma2687 */ self.fma128("Inf", "-NaN(0x2)", "0e+6144", "-NaN(0x2)", .toNearestOrEven)
+ /* dqfma2691 */ self.fma128("-sNaN(0x63)", "-Inf", "0e+6144", "-NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2692 */ self.fma128("-sNaN(0x62)", "-11", "0e+6144", "-NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2693 */ self.fma128("-sNaN(0x61)", "NaN", "0e+6144", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2694 */ self.fma128("-sNaN(0x10)", "-sNaN(0x5e)", "0e+6144", "-NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2695 */ self.fma128("-NaN(0x5f)", "-sNaN(0x5d)", "0e+6144", "-NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2696 */ self.fma128("-Inf", "-sNaN(0x5c)", "0e+6144", "-NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2697 */ self.fma128("088", "-sNaN(0x5b)", "0e+6144", "-NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2698 */ self.fma128("Inf", "-sNaN(0x5a)", "0e+6144", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2699 */ self.fma128("-NaN", "-sNaN(0x59)", "0e+6144", "-NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2701 */ self.fma128("-NaN", "-Inf", "0e+6144", "-NaN", .toNearestOrEven)
+ /* dqfma2702 */ self.fma128("-NaN", "999", "0e+6144", "-NaN", .toNearestOrEven)
+ /* dqfma2703 */ self.fma128("-NaN", "Inf", "0e+6144", "-NaN", .toNearestOrEven)
+ /* dqfma2704 */ self.fma128("-NaN", "-NaN", "0e+6144", "-NaN", .toNearestOrEven)
+ /* dqfma2705 */ self.fma128("-Inf", "-NaN(0x0)", "0e+6144", "-NaN", .toNearestOrEven)
+ /* dqfma2706 */ self.fma128("-999", "-NaN", "0e+6144", "-NaN", .toNearestOrEven)
+ /* dqfma2707 */ self.fma128("Inf", "-NaN", "0e+6144", "-NaN", .toNearestOrEven)
+ /* dqfma2711 */ self.fma128("-sNaN", "-Inf", "0e+6144", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2712 */ self.fma128("-sNaN", "-11", "0e+6144", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2713 */ self.fma128("-sNaN(0x0)", "NaN", "0e+6144", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2714 */ self.fma128("-sNaN", "-sNaN", "0e+6144", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2715 */ self.fma128("-NaN", "-sNaN", "0e+6144", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2716 */ self.fma128("-Inf", "-sNaN", "0e+6144", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2717 */ self.fma128("088", "-sNaN", "0e+6144", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2718 */ self.fma128("Inf", "-sNaN", "0e+6144", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2719 */ self.fma128("-NaN", "-sNaN", "0e+6144", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqfma2751 */ self.fma128("1e+4277", "1e+3311", "0e+6144", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2752 */ self.fma128("1e+4277", "-1e+3311", "0e+6144", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2753 */ self.fma128("-1e+4277", "1e+3311", "0e+6144", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2754 */ self.fma128("-1e+4277", "-1e+3311", "0e+6144", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2755 */ self.fma128("1e-4277", "1e-3311", "0e+6144", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2756 */ self.fma128("1e-4277", "-1e-3311", "0e+6144", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2757 */ self.fma128("-1e-4277", "1e-3311", "0e+6144", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2758 */ self.fma128("-1e-4277", "-1e-3311", "0e+6144", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2760 */ self.fma128("1e-6069", "1e-101", "0e+6144", "1E-6170", .toNearestOrEven)
+ /* dqfma2761 */ self.fma128("1e-6069", "1e-102", "0e+6144", "1E-6171", .toNearestOrEven)
+ /* dqfma2762 */ self.fma128("1e-6069", "1e-103", "0e+6144", "1E-6172", .toNearestOrEven)
+ /* dqfma2763 */ self.fma128("1e-6069", "1e-104", "0e+6144", "1E-6173", .toNearestOrEven)
+ /* dqfma2764 */ self.fma128("1e-6069", "1e-105", "0e+6144", "1E-6174", .toNearestOrEven)
+ /* dqfma2765 */ self.fma128("1e-6069", "1e-106", "0e+6144", "1E-6175", .toNearestOrEven)
+ /* dqfma2766 */ self.fma128("1e-6069", "1e-107", "0e+6144", "1E-6176", .toNearestOrEven)
+ /* dqfma2767 */ self.fma128("1e-6069", "1e-108", "0e+6144", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2768 */ self.fma128("1e-6069", "1e-109", "0e+6144", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2769 */ self.fma128("1e-6069", "1e-110", "0e+6144", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2770 */ self.fma128("1e+40", "1e+6101", "0e+6144", "1.000000000000000000000000000000E+6141", .toNearestOrEven)
+ /* dqfma2771 */ self.fma128("1e+40", "1e+6102", "0e+6144", "1.0000000000000000000000000000000E+6142", .toNearestOrEven)
+ /* dqfma2772 */ self.fma128("1e+40", "1e+6103", "0e+6144", "1.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqfma2773 */ self.fma128("1e+40", "1e+6104", "0e+6144", "1.000000000000000000000000000000000E+6144", .toNearestOrEven)
+ /* dqfma2774 */ self.fma128("1e+40", "1e+6105", "0e+6144", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2775 */ self.fma128("1e+40", "1e+6106", "0e+6144", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2776 */ self.fma128("1e+40", "1e+6107", "0e+6144", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2777 */ self.fma128("1e+40", "1e+6108", "0e+6144", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2778 */ self.fma128("1e+40", "1e+6109", "0e+6144", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2779 */ self.fma128("1e+40", "1e+6110", "0e+6144", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2801 */ self.fma128("1.0000E-6172", "1", "0e+6144", "1.0000E-6172", .toNearestOrEven)
+ /* dqfma2802 */ self.fma128("1.000E-6172", "1e-1", "0e+6144", "1.000E-6173", .toNearestOrEven)
+ /* dqfma2803 */ self.fma128("1.00E-6172", "1e-2", "0e+6144", "1.00E-6174", .toNearestOrEven)
+ /* dqfma2804 */ self.fma128("1.0E-6172", "1e-3", "0e+6144", "1.0E-6175", .toNearestOrEven)
+ /* dqfma2805 */ self.fma128("1.0E-6172", "1e-4", "0e+6144", "1E-6176", .toNearestOrEven)
+ /* dqfma2806 */ self.fma128("1.3E-6172", "1e-4", "0e+6144", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2807 */ self.fma128("1.5E-6172", "1e-4", "0e+6144", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2808 */ self.fma128("1.7E-6172", "1e-4", "0e+6144", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2809 */ self.fma128("2.3E-6172", "1e-4", "0e+6144", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2810 */ self.fma128("2.5E-6172", "1e-4", "0e+6144", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2811 */ self.fma128("2.7E-6172", "1e-4", "0e+6144", "3E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2812 */ self.fma128("1.49E-6172", "1e-4", "0e+6144", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2813 */ self.fma128("1.50E-6172", "1e-4", "0e+6144", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2814 */ self.fma128("1.51E-6172", "1e-4", "0e+6144", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2815 */ self.fma128("2.49E-6172", "1e-4", "0e+6144", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2816 */ self.fma128("2.50E-6172", "1e-4", "0e+6144", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2817 */ self.fma128("2.51E-6172", "1e-4", "0e+6144", "3E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2818 */ self.fma128("1E-6172", "1e-4", "0e+6144", "1E-6176", .toNearestOrEven)
+ /* dqfma2819 */ self.fma128("3E-6172", "1e-5", "0e+6144", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2820 */ self.fma128("5E-6172", "1e-5", "0e+6144", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2821 */ self.fma128("7E-6172", "1e-5", "0e+6144", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2822 */ self.fma128("9E-6172", "1e-5", "0e+6144", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2823 */ self.fma128("9.9E-6172", "1e-5", "0e+6144", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2824 */ self.fma128("1E-6172", "-1e-4", "0e+6144", "-1E-6176", .toNearestOrEven)
+ /* dqfma2825 */ self.fma128("3E-6172", "-1e-5", "0e+6144", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2826 */ self.fma128("-5E-6172", "1e-5", "0e+6144", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2827 */ self.fma128("7E-6172", "-1e-5", "0e+6144", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2828 */ self.fma128("-9E-6172", "1e-5", "0e+6144", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2829 */ self.fma128("9.9E-6172", "-1e-5", "0e+6144", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2830 */ self.fma128("3.0E-6172", "-1e-5", "0e+6144", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2831 */ self.fma128("1.0E-5977", "1e-200", "0e+6144", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2832 */ self.fma128("1.0E-5977", "1e-199", "0e+6144", "1E-6176", .toNearestOrEven)
+ /* dqfma2833 */ self.fma128("1.0E-5977", "1e-198", "0e+6144", "1.0E-6175", .toNearestOrEven)
+ /* dqfma2834 */ self.fma128("2.0E-5977", "2e-198", "0e+6144", "4.0E-6175", .toNearestOrEven)
+ /* dqfma2835 */ self.fma128("4.0E-5977", "4e-198", "0e+6144", "1.60E-6174", .toNearestOrEven)
+ /* dqfma2836 */ self.fma128("10.0E-5977", "10e-198", "0e+6144", "1.000E-6173", .toNearestOrEven)
+ /* dqfma2837 */ self.fma128("30.0E-5977", "30e-198", "0e+6144", "9.000E-6173", .toNearestOrEven)
+ /* dqfma2838 */ self.fma128("40.0E-5982", "40e-166", "0e+6144", "1.6000E-6145", .toNearestOrEven)
+ /* dqfma2839 */ self.fma128("40.0E-5982", "40e-165", "0e+6144", "1.6000E-6144", .toNearestOrEven)
+ /* dqfma2840 */ self.fma128("40.0E-5982", "40e-164", "0e+6144", "1.6000E-6143", .toNearestOrEven)
+ /* dqfma2870 */ self.fma128("100", "9.999E+6143", "0e+6144", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2871 */ self.fma128("100", "-9.999E+6143", "0e+6144", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2872 */ self.fma128("9.999E+6143", "100", "0e+6144", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2873 */ self.fma128("-9.999E+6143", "100", "0e+6144", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqfma2881 */ self.fma128("1.2347E-6133", "1.2347E-40", "0e+6144", "1.524E-6173", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2882 */ self.fma128("1.234E-6133", "1.234E-40", "0e+6144", "1.523E-6173", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2883 */ self.fma128("1.23E-6133", "1.23E-40", "0e+6144", "1.513E-6173", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2884 */ self.fma128("1.2E-6133", "1.2E-40", "0e+6144", "1.44E-6173", .toNearestOrEven)
+ /* dqfma2885 */ self.fma128("1.2E-6133", "1.2E-41", "0e+6144", "1.44E-6174", .toNearestOrEven)
+ /* dqfma2886 */ self.fma128("1.2E-6133", "1.2E-42", "0e+6144", "1.4E-6175", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2887 */ self.fma128("1.2E-6133", "1.3E-42", "0e+6144", "1.6E-6175", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2888 */ self.fma128("1.3E-6133", "1.3E-42", "0e+6144", "1.7E-6175", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2889 */ self.fma128("1.3E-6133", "1.3E-43", "0e+6144", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2890 */ self.fma128("1.3E-6134", "1.3E-43", "0e+6144", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2891 */ self.fma128("1.2345E-39", "1.234E-6133", "0e+6144", "1.5234E-6172", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2892 */ self.fma128("1.23456E-39", "1.234E-6133", "0e+6144", "1.5234E-6172", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2893 */ self.fma128("1.2345E-40", "1.234E-6133", "0e+6144", "1.523E-6173", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2894 */ self.fma128("1.23456E-40", "1.234E-6133", "0e+6144", "1.523E-6173", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2895 */ self.fma128("1.2345E-41", "1.234E-6133", "0e+6144", "1.52E-6174", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2896 */ self.fma128("1.23456E-41", "1.234E-6133", "0e+6144", "1.52E-6174", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2906 */ self.fma128("9.999999999999999999999999999999999E-6143", "1", "0e+6144", "9.999999999999999999999999999999999E-6143", .toNearestOrEven)
+ /* dqfma2907 */ self.fma128("1", "0.09999999999999999999999999999999999", "0e+6144", "0.09999999999999999999999999999999999", .toNearestOrEven)
+ /* dqfma2908 */ self.fma128("9.999999999999999999999999999999999E-6143", "0.09999999999999999999999999999999999", "0e+6144", "1.000000000000000000000000000000000E-6143", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqfma2909 */ self.fma128("9999999999999999999999999999999999", "9999999999999999999999999999999999", "0e+6144", "9.999999999999999999999999999999998E+67", .toNearestOrEven, .isInexact)
+ }
+
+ private func fma128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _arg2: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let arg2 = self.parseDecimal128(_arg2, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg2.addingProduct(arg0, arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_fma(arg0, arg1, arg2, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveInitFromStringTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveInitFromStringTests.swift
new file mode 100644
index 0000000..048b070
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveInitFromStringTests.swift
@@ -0,0 +1,1124 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveInitFromStringTests: XCTestCase, SpeleotroveMixin {
+
+ func test_apply32() {
+ /* decs001 */ self.apply32("#A23003D0", "-7.50", .toNearestOrAwayFromZero)
+ /* decs002 */ self.apply32("-7.50", "#A23003D0", .toNearestOrAwayFromZero)
+ /* decs003 */ self.apply32("#A26003D0", "-7.50E+3", .toNearestOrAwayFromZero)
+ /* decs004 */ self.apply32("-7.50E+3", "#A26003D0", .toNearestOrAwayFromZero)
+ /* decs005 */ self.apply32("#A25003D0", "-750", .toNearestOrAwayFromZero)
+ /* decs006 */ self.apply32("-750", "#A25003D0", .toNearestOrAwayFromZero)
+ /* decs007 */ self.apply32("#A24003D0", "-75.0", .toNearestOrAwayFromZero)
+ /* decs008 */ self.apply32("-75.0", "#A24003D0", .toNearestOrAwayFromZero)
+ /* decs009 */ self.apply32("#A22003D0", "-0.750", .toNearestOrAwayFromZero)
+ /* decs010 */ self.apply32("-0.750", "#A22003D0", .toNearestOrAwayFromZero)
+ /* decs011 */ self.apply32("#A21003D0", "-0.0750", .toNearestOrAwayFromZero)
+ /* decs012 */ self.apply32("-0.0750", "#A21003D0", .toNearestOrAwayFromZero)
+ /* decs013 */ self.apply32("#A1f003D0", "-0.000750", .toNearestOrAwayFromZero)
+ /* decs014 */ self.apply32("-0.000750", "#A1f003D0", .toNearestOrAwayFromZero)
+ /* decs015 */ self.apply32("#A1d003D0", "-0.00000750", .toNearestOrAwayFromZero)
+ /* decs016 */ self.apply32("-0.00000750", "#A1d003D0", .toNearestOrAwayFromZero)
+ /* decs017 */ self.apply32("#A1c003D0", "-7.50E-7", .toNearestOrAwayFromZero)
+ /* decs018 */ self.apply32("-7.50E-7", "#A1c003D0", .toNearestOrAwayFromZero)
+ /* decs020 */ self.apply32("1234567", "#2654d2e7", .toNearestOrAwayFromZero)
+ /* decs021 */ self.apply32("-1234567", "#a654d2e7", .toNearestOrAwayFromZero)
+ /* decs022 */ self.apply32("1111111", "#26524491", .toNearestOrAwayFromZero)
+ /* decs031 */ self.apply32("9.999999E+96", "#77f3fcff", .toNearestOrAwayFromZero)
+ /* decs032 */ self.apply32("#77f3fcff", "9.999999E+96", .toNearestOrAwayFromZero)
+ /* decs033 */ self.apply32("1.234567E+96", "#47f4d2e7", .toNearestOrAwayFromZero)
+ /* decs034 */ self.apply32("#47f4d2e7", "1.234567E+96", .toNearestOrAwayFromZero)
+ /* decs035 */ self.apply32("1.23E+96", "#47f4c000", .toNearestOrAwayFromZero)
+ /* decs036 */ self.apply32("#47f4c000", "1.230000E+96", .toNearestOrAwayFromZero)
+ /* decs037 */ self.apply32("1E+96", "#47f00000", .toNearestOrAwayFromZero)
+ /* decs038 */ self.apply32("#47f00000", "1.000000E+96", .toNearestOrAwayFromZero)
+ /* decs051 */ self.apply32("12345", "#225049c5", .toNearestOrAwayFromZero)
+ /* decs052 */ self.apply32("#225049c5", "12345", .toNearestOrAwayFromZero)
+ /* decs053 */ self.apply32("1234", "#22500534", .toNearestOrAwayFromZero)
+ /* decs054 */ self.apply32("#22500534", "1234", .toNearestOrAwayFromZero)
+ /* decs055 */ self.apply32("123", "#225000a3", .toNearestOrAwayFromZero)
+ /* decs056 */ self.apply32("#225000a3", "123", .toNearestOrAwayFromZero)
+ /* decs057 */ self.apply32("12", "#22500012", .toNearestOrAwayFromZero)
+ /* decs058 */ self.apply32("#22500012", "12", .toNearestOrAwayFromZero)
+ /* decs059 */ self.apply32("1", "#22500001", .toNearestOrAwayFromZero)
+ /* decs060 */ self.apply32("#22500001", "1", .toNearestOrAwayFromZero)
+ /* decs061 */ self.apply32("1.23", "#223000a3", .toNearestOrAwayFromZero)
+ /* decs062 */ self.apply32("#223000a3", "1.23", .toNearestOrAwayFromZero)
+ /* decs063 */ self.apply32("123.45", "#223049c5", .toNearestOrAwayFromZero)
+ /* decs064 */ self.apply32("#223049c5", "123.45", .toNearestOrAwayFromZero)
+ /* decs071 */ self.apply32("1E-95", "#00600001", .toNearestOrAwayFromZero)
+ /* decs072 */ self.apply32("#00600001", "1E-95", .toNearestOrAwayFromZero)
+ /* decs073 */ self.apply32("1.000000E-95", "#04000000", .toNearestOrAwayFromZero)
+ /* decs074 */ self.apply32("#04000000", "1.000000E-95", .toNearestOrAwayFromZero)
+ /* decs075 */ self.apply32("1.000001E-95", "#04000001", .toNearestOrAwayFromZero)
+ /* decs076 */ self.apply32("#04000001", "1.000001E-95", .toNearestOrAwayFromZero)
+ /* decs077 */ self.apply32("0.100000E-95", "#00020000", .toNearestOrAwayFromZero)
+ /* decs078 */ self.apply32("#00020000", "1.00000E-96", .toNearestOrAwayFromZero)
+ /* decs079 */ self.apply32("0.000010E-95", "#00000010", .toNearestOrAwayFromZero)
+ /* decs07x */ self.apply32("1.00000E-96", "1.00000E-96", .toNearestOrAwayFromZero)
+ /* decs080 */ self.apply32("#00000010", "1.0E-100", .toNearestOrAwayFromZero)
+ /* decs081 */ self.apply32("0.000001E-95", "#00000001", .toNearestOrAwayFromZero)
+ /* decs082 */ self.apply32("#00000001", "1E-101", .toNearestOrAwayFromZero)
+ /* decs083 */ self.apply32("1e-101", "#00000001", .toNearestOrAwayFromZero)
+ /* decs084 */ self.apply32("#00000001", "1E-101", .toNearestOrAwayFromZero)
+ /* decs08x */ self.apply32("1e-101", "1E-101", .toNearestOrAwayFromZero)
+ /* decs090 */ self.apply32("1e-101", "#00000001", .toNearestOrAwayFromZero)
+ /* decs122 */ self.apply32("-9.999999E+96", "#f7f3fcff", .toNearestOrAwayFromZero)
+ /* decs123 */ self.apply32("#f7f3fcff", "-9.999999E+96", .toNearestOrAwayFromZero)
+ /* decs124 */ self.apply32("-1.234567E+96", "#c7f4d2e7", .toNearestOrAwayFromZero)
+ /* decs125 */ self.apply32("#c7f4d2e7", "-1.234567E+96", .toNearestOrAwayFromZero)
+ /* decs130 */ self.apply32("-1.23E+96", "#c7f4c000", .toNearestOrAwayFromZero)
+ /* decs131 */ self.apply32("#c7f4c000", "-1.230000E+96", .toNearestOrAwayFromZero)
+ /* decs132 */ self.apply32("-1E+96", "#c7f00000", .toNearestOrAwayFromZero)
+ /* decs133 */ self.apply32("#c7f00000", "-1.000000E+96", .toNearestOrAwayFromZero)
+ /* decs151 */ self.apply32("-12345", "#a25049c5", .toNearestOrAwayFromZero)
+ /* decs152 */ self.apply32("#a25049c5", "-12345", .toNearestOrAwayFromZero)
+ /* decs153 */ self.apply32("-1234", "#a2500534", .toNearestOrAwayFromZero)
+ /* decs154 */ self.apply32("#a2500534", "-1234", .toNearestOrAwayFromZero)
+ /* decs155 */ self.apply32("-123", "#a25000a3", .toNearestOrAwayFromZero)
+ /* decs156 */ self.apply32("#a25000a3", "-123", .toNearestOrAwayFromZero)
+ /* decs157 */ self.apply32("-12", "#a2500012", .toNearestOrAwayFromZero)
+ /* decs158 */ self.apply32("#a2500012", "-12", .toNearestOrAwayFromZero)
+ /* decs159 */ self.apply32("-1", "#a2500001", .toNearestOrAwayFromZero)
+ /* decs160 */ self.apply32("#a2500001", "-1", .toNearestOrAwayFromZero)
+ /* decs161 */ self.apply32("-1.23", "#a23000a3", .toNearestOrAwayFromZero)
+ /* decs162 */ self.apply32("#a23000a3", "-1.23", .toNearestOrAwayFromZero)
+ /* decs163 */ self.apply32("-123.45", "#a23049c5", .toNearestOrAwayFromZero)
+ /* decs164 */ self.apply32("#a23049c5", "-123.45", .toNearestOrAwayFromZero)
+ /* decs171 */ self.apply32("-1E-95", "#80600001", .toNearestOrAwayFromZero)
+ /* decs172 */ self.apply32("#80600001", "-1E-95", .toNearestOrAwayFromZero)
+ /* decs173 */ self.apply32("-1.000000E-95", "#84000000", .toNearestOrAwayFromZero)
+ /* decs174 */ self.apply32("#84000000", "-1.000000E-95", .toNearestOrAwayFromZero)
+ /* decs175 */ self.apply32("-1.000001E-95", "#84000001", .toNearestOrAwayFromZero)
+ /* decs176 */ self.apply32("#84000001", "-1.000001E-95", .toNearestOrAwayFromZero)
+ /* decs177 */ self.apply32("-0.100000E-95", "#80020000", .toNearestOrAwayFromZero)
+ /* decs178 */ self.apply32("#80020000", "-1.00000E-96", .toNearestOrAwayFromZero)
+ /* decs179 */ self.apply32("-0.000010E-95", "#80000010", .toNearestOrAwayFromZero)
+ /* decs180 */ self.apply32("#80000010", "-1.0E-100", .toNearestOrAwayFromZero)
+ /* decs181 */ self.apply32("-0.000001E-95", "#80000001", .toNearestOrAwayFromZero)
+ /* decs182 */ self.apply32("#80000001", "-1E-101", .toNearestOrAwayFromZero)
+ /* decs183 */ self.apply32("-1e-101", "#80000001", .toNearestOrAwayFromZero)
+ /* decs184 */ self.apply32("#80000001", "-1E-101", .toNearestOrAwayFromZero)
+ /* decs190 */ self.apply32("-1e-101", "#80000001", .toNearestOrAwayFromZero)
+ /* decs400 */ self.apply32("0E-400", "#00000000", .toNearestOrAwayFromZero)
+ /* decs401 */ self.apply32("0E-101", "#00000000", .toNearestOrAwayFromZero)
+ /* decs402 */ self.apply32("#00000000", "0E-101", .toNearestOrAwayFromZero)
+ /* decs403 */ self.apply32("0.000000E-95", "#00000000", .toNearestOrAwayFromZero)
+ /* decs404 */ self.apply32("#00000000", "0E-101", .toNearestOrAwayFromZero)
+ /* decs405 */ self.apply32("0E-2", "#22300000", .toNearestOrAwayFromZero)
+ /* decs406 */ self.apply32("#22300000", "0.00", .toNearestOrAwayFromZero)
+ /* decs407 */ self.apply32("0", "#22500000", .toNearestOrAwayFromZero)
+ /* decs408 */ self.apply32("#22500000", "0", .toNearestOrAwayFromZero)
+ /* decs409 */ self.apply32("0E+3", "#22800000", .toNearestOrAwayFromZero)
+ /* decs410 */ self.apply32("#22800000", "0E+3", .toNearestOrAwayFromZero)
+ /* decs411 */ self.apply32("0E+90", "#43f00000", .toNearestOrAwayFromZero)
+ /* decs412 */ self.apply32("#43f00000", "0E+90", .toNearestOrAwayFromZero)
+ /* decs413 */ self.apply32("0E+91", "#43f00000", .toNearestOrAwayFromZero)
+ /* decs414 */ self.apply32("#43f00000", "0E+90", .toNearestOrAwayFromZero)
+ /* decs415 */ self.apply32("0E+96", "#43f00000", .toNearestOrAwayFromZero)
+ /* decs416 */ self.apply32("#43f00000", "0E+90", .toNearestOrAwayFromZero)
+ /* decs417 */ self.apply32("0E+400", "#43f00000", .toNearestOrAwayFromZero)
+ /* decs418 */ self.apply32("#43f00000", "0E+90", .toNearestOrAwayFromZero)
+ /* decs420 */ self.apply32("-0E-400", "#80000000", .toNearestOrAwayFromZero)
+ /* decs421 */ self.apply32("-0E-101", "#80000000", .toNearestOrAwayFromZero)
+ /* decs422 */ self.apply32("#80000000", "-0E-101", .toNearestOrAwayFromZero)
+ /* decs423 */ self.apply32("-0.000000E-95", "#80000000", .toNearestOrAwayFromZero)
+ /* decs424 */ self.apply32("#80000000", "-0E-101", .toNearestOrAwayFromZero)
+ /* decs425 */ self.apply32("-0E-2", "#a2300000", .toNearestOrAwayFromZero)
+ /* decs426 */ self.apply32("#a2300000", "-0.00", .toNearestOrAwayFromZero)
+ /* decs427 */ self.apply32("-0", "#a2500000", .toNearestOrAwayFromZero)
+ /* decs428 */ self.apply32("#a2500000", "-0", .toNearestOrAwayFromZero)
+ /* decs429 */ self.apply32("-0E+3", "#a2800000", .toNearestOrAwayFromZero)
+ /* decs430 */ self.apply32("#a2800000", "-0E+3", .toNearestOrAwayFromZero)
+ /* decs431 */ self.apply32("-0E+90", "#c3f00000", .toNearestOrAwayFromZero)
+ /* decs432 */ self.apply32("#c3f00000", "-0E+90", .toNearestOrAwayFromZero)
+ /* decs433 */ self.apply32("-0E+91", "#c3f00000", .toNearestOrAwayFromZero)
+ /* decs434 */ self.apply32("#c3f00000", "-0E+90", .toNearestOrAwayFromZero)
+ /* decs435 */ self.apply32("-0E+96", "#c3f00000", .toNearestOrAwayFromZero)
+ /* decs436 */ self.apply32("#c3f00000", "-0E+90", .toNearestOrAwayFromZero)
+ /* decs437 */ self.apply32("-0E+400", "#c3f00000", .toNearestOrAwayFromZero)
+ /* decs438 */ self.apply32("#c3f00000", "-0E+90", .toNearestOrAwayFromZero)
+ /* decs500 */ self.apply32("Infinity", "#78000000", .toNearestOrAwayFromZero)
+ /* decs501 */ self.apply32("#78787878", "#78000000", .toNearestOrAwayFromZero)
+ /* decs502 */ self.apply32("#78000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decs503 */ self.apply32("#79797979", "#78000000", .toNearestOrAwayFromZero)
+ /* decs504 */ self.apply32("#79000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decs505 */ self.apply32("#7a7a7a7a", "#78000000", .toNearestOrAwayFromZero)
+ /* decs506 */ self.apply32("#7a000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decs507 */ self.apply32("#7b7b7b7b", "#78000000", .toNearestOrAwayFromZero)
+ /* decs508 */ self.apply32("#7b000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decs509 */ self.apply32("#7c7c7c7c", "#7c0c7c7c", .toNearestOrAwayFromZero)
+ /* decs510 */ self.apply32("NaN", "#7c000000", .toNearestOrAwayFromZero)
+ /* decs511 */ self.apply32("#7c000000", "NaN", .toNearestOrAwayFromZero)
+ /* decs512 */ self.apply32("#7d7d7d7d", "#7c0d7d7d", .toNearestOrAwayFromZero)
+ /* decs513 */ self.apply32("#7d000000", "NaN", .toNearestOrAwayFromZero)
+ /* decs514 */ self.apply32("#7e7e7e7e", "#7e0e7c7e", .toNearestOrAwayFromZero)
+ /* decs515 */ self.apply32("#7e000000", "sNaN", .toNearestOrAwayFromZero)
+ /* decs516 */ self.apply32("#7f7f7f7f", "#7e0f7c7f", .toNearestOrAwayFromZero)
+ /* decs517 */ self.apply32("#7f000000", "sNaN", .toNearestOrAwayFromZero)
+ /* decs518 */ self.apply32("#7fffffff", "sNaN(0xf423f)", .toNearestOrAwayFromZero)
+ /* decs519 */ self.apply32("#7fffffff", "#7e03fcff", .toNearestOrAwayFromZero)
+ /* decs520 */ self.apply32("-Infinity", "#f8000000", .toNearestOrAwayFromZero)
+ /* decs521 */ self.apply32("#f8787878", "#f8000000", .toNearestOrAwayFromZero)
+ /* decs522 */ self.apply32("#f8000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decs523 */ self.apply32("#f9797979", "#f8000000", .toNearestOrAwayFromZero)
+ /* decs524 */ self.apply32("#f9000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decs525 */ self.apply32("#fa7a7a7a", "#f8000000", .toNearestOrAwayFromZero)
+ /* decs526 */ self.apply32("#fa000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decs527 */ self.apply32("#fb7b7b7b", "#f8000000", .toNearestOrAwayFromZero)
+ /* decs528 */ self.apply32("#fb000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decs529 */ self.apply32("-NaN", "#fc000000", .toNearestOrAwayFromZero)
+ /* decs530 */ self.apply32("#fc7c7c7c", "#fc0c7c7c", .toNearestOrAwayFromZero)
+ /* decs531 */ self.apply32("#fc000000", "-NaN", .toNearestOrAwayFromZero)
+ /* decs532 */ self.apply32("#fd7d7d7d", "#fc0d7d7d", .toNearestOrAwayFromZero)
+ /* decs533 */ self.apply32("#fd000000", "-NaN", .toNearestOrAwayFromZero)
+ /* decs534 */ self.apply32("#fe7e7e7e", "#fe0e7c7e", .toNearestOrAwayFromZero)
+ /* decs535 */ self.apply32("#fe000000", "-sNaN", .toNearestOrAwayFromZero)
+ /* decs536 */ self.apply32("#ff7f7f7f", "#fe0f7c7f", .toNearestOrAwayFromZero)
+ /* decs537 */ self.apply32("#ff000000", "-sNaN", .toNearestOrAwayFromZero)
+ /* decs538 */ self.apply32("#ffffffff", "-sNaN(0xf423f)", .toNearestOrAwayFromZero)
+ /* decs539 */ self.apply32("#ffffffff", "#fe03fcff", .toNearestOrAwayFromZero)
+ /* decs540 */ self.apply32("NaN", "#7c000000", .toNearestOrAwayFromZero)
+ /* decs541 */ self.apply32("NaN(0x0)", "#7c000000", .toNearestOrAwayFromZero)
+ /* decs542 */ self.apply32("NaN(0x1)", "#7c000001", .toNearestOrAwayFromZero)
+ /* decs543 */ self.apply32("NaN(0xc)", "#7c000012", .toNearestOrAwayFromZero)
+ /* decs544 */ self.apply32("NaN(0x4f)", "#7c000079", .toNearestOrAwayFromZero)
+ /* decs545 */ self.apply32("NaN(0x3039)", "#7c0049c5", .toNearestOrAwayFromZero)
+ /* decs546 */ self.apply32("NaN(0x1e240)", "#7c028e56", .toNearestOrAwayFromZero)
+ /* decs547 */ self.apply32("NaN(0xc3437)", "#7c0f7fdf", .toNearestOrAwayFromZero)
+ /* decs548 */ self.apply32("NaN(0xf423f)", "#7c03fcff", .toNearestOrAwayFromZero)
+ /* decs601 */ self.apply32("1E+96", "#47f00000", .toNearestOrAwayFromZero)
+ /* decs602 */ self.apply32("#47f00000", "1.000000E+96", .toNearestOrAwayFromZero)
+ /* decs603 */ self.apply32("1E+95", "#43f20000", .toNearestOrAwayFromZero)
+ /* decs604 */ self.apply32("#43f20000", "1.00000E+95", .toNearestOrAwayFromZero)
+ /* decs605 */ self.apply32("1E+94", "#43f04000", .toNearestOrAwayFromZero)
+ /* decs606 */ self.apply32("#43f04000", "1.0000E+94", .toNearestOrAwayFromZero)
+ /* decs607 */ self.apply32("1E+93", "#43f00400", .toNearestOrAwayFromZero)
+ /* decs608 */ self.apply32("#43f00400", "1.000E+93", .toNearestOrAwayFromZero)
+ /* decs609 */ self.apply32("1E+92", "#43f00080", .toNearestOrAwayFromZero)
+ /* decs610 */ self.apply32("#43f00080", "1.00E+92", .toNearestOrAwayFromZero)
+ /* decs611 */ self.apply32("1E+91", "#43f00010", .toNearestOrAwayFromZero)
+ /* decs612 */ self.apply32("#43f00010", "1.0E+91", .toNearestOrAwayFromZero)
+ /* decs613 */ self.apply32("1E+90", "#43f00001", .toNearestOrAwayFromZero)
+ /* decs614 */ self.apply32("#43f00001", "1E+90", .toNearestOrAwayFromZero)
+ /* decs700 */ self.apply32("#22500000", "0", .toNearestOrAwayFromZero)
+ /* decs701 */ self.apply32("#22500009", "9", .toNearestOrAwayFromZero)
+ /* decs702 */ self.apply32("#22500010", "10", .toNearestOrAwayFromZero)
+ /* decs703 */ self.apply32("#22500019", "19", .toNearestOrAwayFromZero)
+ /* decs704 */ self.apply32("#22500020", "20", .toNearestOrAwayFromZero)
+ /* decs705 */ self.apply32("#22500029", "29", .toNearestOrAwayFromZero)
+ /* decs706 */ self.apply32("#22500030", "30", .toNearestOrAwayFromZero)
+ /* decs707 */ self.apply32("#22500039", "39", .toNearestOrAwayFromZero)
+ /* decs708 */ self.apply32("#22500040", "40", .toNearestOrAwayFromZero)
+ /* decs709 */ self.apply32("#22500049", "49", .toNearestOrAwayFromZero)
+ /* decs710 */ self.apply32("#22500050", "50", .toNearestOrAwayFromZero)
+ /* decs711 */ self.apply32("#22500059", "59", .toNearestOrAwayFromZero)
+ /* decs712 */ self.apply32("#22500060", "60", .toNearestOrAwayFromZero)
+ /* decs713 */ self.apply32("#22500069", "69", .toNearestOrAwayFromZero)
+ /* decs714 */ self.apply32("#22500070", "70", .toNearestOrAwayFromZero)
+ /* decs715 */ self.apply32("#22500071", "71", .toNearestOrAwayFromZero)
+ /* decs716 */ self.apply32("#22500072", "72", .toNearestOrAwayFromZero)
+ /* decs717 */ self.apply32("#22500073", "73", .toNearestOrAwayFromZero)
+ /* decs718 */ self.apply32("#22500074", "74", .toNearestOrAwayFromZero)
+ /* decs719 */ self.apply32("#22500075", "75", .toNearestOrAwayFromZero)
+ /* decs720 */ self.apply32("#22500076", "76", .toNearestOrAwayFromZero)
+ /* decs721 */ self.apply32("#22500077", "77", .toNearestOrAwayFromZero)
+ /* decs722 */ self.apply32("#22500078", "78", .toNearestOrAwayFromZero)
+ /* decs723 */ self.apply32("#22500079", "79", .toNearestOrAwayFromZero)
+ /* decs730 */ self.apply32("#2250029e", "994", .toNearestOrAwayFromZero)
+ /* decs731 */ self.apply32("#2250029f", "995", .toNearestOrAwayFromZero)
+ /* decs732 */ self.apply32("#225002a0", "520", .toNearestOrAwayFromZero)
+ /* decs733 */ self.apply32("#225002a1", "521", .toNearestOrAwayFromZero)
+ /* decs740 */ self.apply32("#225003f7", "777", .toNearestOrAwayFromZero)
+ /* decs741 */ self.apply32("#225003f8", "778", .toNearestOrAwayFromZero)
+ /* decs742 */ self.apply32("#225003eb", "787", .toNearestOrAwayFromZero)
+ /* decs743 */ self.apply32("#2250037d", "877", .toNearestOrAwayFromZero)
+ /* decs744 */ self.apply32("#2250039f", "997", .toNearestOrAwayFromZero)
+ /* decs745 */ self.apply32("#225003bf", "979", .toNearestOrAwayFromZero)
+ /* decs746 */ self.apply32("#225003df", "799", .toNearestOrAwayFromZero)
+ /* decs747 */ self.apply32("#2250006e", "888", .toNearestOrAwayFromZero)
+ /* decs750 */ self.apply32("#2250006e", "888", .toNearestOrAwayFromZero)
+ /* decs751 */ self.apply32("#2250016e", "888", .toNearestOrAwayFromZero)
+ /* decs752 */ self.apply32("#2250026e", "888", .toNearestOrAwayFromZero)
+ /* decs753 */ self.apply32("#2250036e", "888", .toNearestOrAwayFromZero)
+ /* decs754 */ self.apply32("#2250006f", "889", .toNearestOrAwayFromZero)
+ /* decs755 */ self.apply32("#2250016f", "889", .toNearestOrAwayFromZero)
+ /* decs756 */ self.apply32("#2250026f", "889", .toNearestOrAwayFromZero)
+ /* decs757 */ self.apply32("#2250036f", "889", .toNearestOrAwayFromZero)
+ /* decs760 */ self.apply32("#2250007e", "898", .toNearestOrAwayFromZero)
+ /* decs761 */ self.apply32("#2250017e", "898", .toNearestOrAwayFromZero)
+ /* decs762 */ self.apply32("#2250027e", "898", .toNearestOrAwayFromZero)
+ /* decs763 */ self.apply32("#2250037e", "898", .toNearestOrAwayFromZero)
+ /* decs764 */ self.apply32("#2250007f", "899", .toNearestOrAwayFromZero)
+ /* decs765 */ self.apply32("#2250017f", "899", .toNearestOrAwayFromZero)
+ /* decs766 */ self.apply32("#2250027f", "899", .toNearestOrAwayFromZero)
+ /* decs767 */ self.apply32("#2250037f", "899", .toNearestOrAwayFromZero)
+ /* decs770 */ self.apply32("#225000ee", "988", .toNearestOrAwayFromZero)
+ /* decs771 */ self.apply32("#225001ee", "988", .toNearestOrAwayFromZero)
+ /* decs772 */ self.apply32("#225002ee", "988", .toNearestOrAwayFromZero)
+ /* decs773 */ self.apply32("#225003ee", "988", .toNearestOrAwayFromZero)
+ /* decs774 */ self.apply32("#225000ef", "989", .toNearestOrAwayFromZero)
+ /* decs775 */ self.apply32("#225001ef", "989", .toNearestOrAwayFromZero)
+ /* decs776 */ self.apply32("#225002ef", "989", .toNearestOrAwayFromZero)
+ /* decs777 */ self.apply32("#225003ef", "989", .toNearestOrAwayFromZero)
+ /* decs780 */ self.apply32("#225000fe", "998", .toNearestOrAwayFromZero)
+ /* decs781 */ self.apply32("#225001fe", "998", .toNearestOrAwayFromZero)
+ /* decs782 */ self.apply32("#225002fe", "998", .toNearestOrAwayFromZero)
+ /* decs783 */ self.apply32("#225003fe", "998", .toNearestOrAwayFromZero)
+ /* decs784 */ self.apply32("#225000ff", "999", .toNearestOrAwayFromZero)
+ /* decs785 */ self.apply32("#225001ff", "999", .toNearestOrAwayFromZero)
+ /* decs786 */ self.apply32("#225002ff", "999", .toNearestOrAwayFromZero)
+ /* decs787 */ self.apply32("#225003ff", "999", .toNearestOrAwayFromZero)
+ /* decs790 */ self.apply32("2.00E-99", "#00000100", .toNearestOrAwayFromZero)
+ /* decs791 */ self.apply32("#00000100", "2.00E-99", .toNearestOrAwayFromZero)
+ }
+
+ private func apply32(
+ _ arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let expected = self.parseDecimal32(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ if let result: Decimal32 = self.parseDecimal(arg0, rounding: rounding, status: &status, file, line) {
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ } else {
+ XCTFail(arg0)
+ }
+ }
+
+ func test_apply64() {
+ /* ddadd7972 */ self.apply64("9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddadd7985 */ self.apply64("-9.999999999999999E+384", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddcan001 */ self.apply64("9.999999999999999E+384", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan002 */ self.apply64("0", "#2238000000000000", .toNearestOrEven)
+ /* ddcan003 */ self.apply64("1", "#2238000000000001", .toNearestOrEven)
+ /* ddcan004 */ self.apply64("-1", "#a238000000000001", .toNearestOrEven)
+ /* ddcan005 */ self.apply64("Infinity", "#7800000000000000", .toNearestOrEven)
+ /* ddcan006 */ self.apply64("-Infinity", "#f800000000000000", .toNearestOrEven)
+ /* ddcan007 */ self.apply64("-NaN", "#fc00000000000000", .toNearestOrEven)
+ /* ddcan008 */ self.apply64("-sNaN", "#fe00000000000000", .toNearestOrEven)
+ /* ddcan009 */ self.apply64("NaN(0x38d7ea4c67fff)", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan010 */ self.apply64("sNaN(0x38d7ea4c67fff)", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan012 */ self.apply64("7.50", "#22300000000003d0", .toNearestOrEven)
+ /* ddcan013 */ self.apply64("9.99", "#22300000000000ff", .toNearestOrEven)
+ /* ddfma37972 */ self.apply64("9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddfma37985 */ self.apply64("-9.999999999999999E+384", "-9.999999999999999E+384", .toNearestOrEven)
+ /* decan011 */ self.apply64("9999999999999999", "#6e38ff3fcff3fcff", .toNearestOrEven)
+ /* decd038 */ self.apply64("1E+384", "#47fc000000000000", .toNearestOrAwayFromZero)
+ /* decd039 */ self.apply64("#47fc000000000000", "1.000000000000000E+384", .toNearestOrAwayFromZero)
+ /* decd051 */ self.apply64("12345", "#22380000000049c5", .toNearestOrAwayFromZero)
+ /* decd052 */ self.apply64("#22380000000049c5", "12345", .toNearestOrAwayFromZero)
+ /* decd053 */ self.apply64("1234", "#2238000000000534", .toNearestOrAwayFromZero)
+ /* decd054 */ self.apply64("#2238000000000534", "1234", .toNearestOrAwayFromZero)
+ /* decd055 */ self.apply64("123", "#22380000000000a3", .toNearestOrAwayFromZero)
+ /* decd056 */ self.apply64("#22380000000000a3", "123", .toNearestOrAwayFromZero)
+ /* decd057 */ self.apply64("12", "#2238000000000012", .toNearestOrAwayFromZero)
+ /* decd058 */ self.apply64("#2238000000000012", "12", .toNearestOrAwayFromZero)
+ /* decd059 */ self.apply64("1", "#2238000000000001", .toNearestOrAwayFromZero)
+ /* decd060 */ self.apply64("#2238000000000001", "1", .toNearestOrAwayFromZero)
+ /* decd061 */ self.apply64("1.23", "#22300000000000a3", .toNearestOrAwayFromZero)
+ /* decd062 */ self.apply64("#22300000000000a3", "1.23", .toNearestOrAwayFromZero)
+ /* decd063 */ self.apply64("123.45", "#22300000000049c5", .toNearestOrAwayFromZero)
+ /* decd064 */ self.apply64("#22300000000049c5", "123.45", .toNearestOrAwayFromZero)
+ /* decd071 */ self.apply64("1E-383", "#003c000000000001", .toNearestOrAwayFromZero)
+ /* decd072 */ self.apply64("#003c000000000001", "1E-383", .toNearestOrAwayFromZero)
+ /* decd073 */ self.apply64("1.000000000000000E-383", "#0400000000000000", .toNearestOrAwayFromZero)
+ /* decd074 */ self.apply64("#0400000000000000", "1.000000000000000E-383", .toNearestOrAwayFromZero)
+ /* decd075 */ self.apply64("1.000000000000001E-383", "#0400000000000001", .toNearestOrAwayFromZero)
+ /* decd076 */ self.apply64("#0400000000000001", "1.000000000000001E-383", .toNearestOrAwayFromZero)
+ /* decd077 */ self.apply64("0.100000000000000E-383", "#0000800000000000", .toNearestOrAwayFromZero)
+ /* decd078 */ self.apply64("#0000800000000000", "1.00000000000000E-384", .toNearestOrAwayFromZero)
+ /* decd079 */ self.apply64("0.000000000000010E-383", "#0000000000000010", .toNearestOrAwayFromZero)
+ /* decd080 */ self.apply64("#0000000000000010", "1.0E-397", .toNearestOrAwayFromZero)
+ /* decd081 */ self.apply64("0.00000000000001E-383", "#0004000000000001", .toNearestOrAwayFromZero)
+ /* decd082 */ self.apply64("#0004000000000001", "1E-397", .toNearestOrAwayFromZero)
+ /* decd083 */ self.apply64("0.000000000000001E-383", "#0000000000000001", .toNearestOrAwayFromZero)
+ /* decd084 */ self.apply64("#0000000000000001", "1E-398", .toNearestOrAwayFromZero)
+ /* decd085 */ self.apply64("9999999999999999E-398", "#6400ff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decd086 */ self.apply64("#6400ff3fcff3fcff", "9.999999999999999E-383", .toNearestOrAwayFromZero)
+ /* decd088 */ self.apply64("1.111111111111111E-383", "#0400912449124491", .toNearestOrAwayFromZero)
+ /* decd089 */ self.apply64("#0400912449124491", "1.111111111111111E-383", .toNearestOrAwayFromZero)
+ /* decd090 */ self.apply64("40", "#2238000000000040", .toNearestOrAwayFromZero)
+ /* decd091 */ self.apply64("39.99", "#2230000000000cff", .toNearestOrAwayFromZero)
+ /* decd122 */ self.apply64("-9.999999999999999E+384", "#f7fcff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decd123 */ self.apply64("#f7fcff3fcff3fcff", "-9.999999999999999E+384", .toNearestOrAwayFromZero)
+ /* decd124 */ self.apply64("-1.234567890123456E+384", "#c7fd34b9c1e28e56", .toNearestOrAwayFromZero)
+ /* decd125 */ self.apply64("#c7fd34b9c1e28e56", "-1.234567890123456E+384", .toNearestOrAwayFromZero)
+ /* decd130 */ self.apply64("-1.23E+384", "#c7fd300000000000", .toNearestOrAwayFromZero)
+ /* decd131 */ self.apply64("#c7fd300000000000", "-1.230000000000000E+384", .toNearestOrAwayFromZero)
+ /* decd132 */ self.apply64("-1E+384", "#c7fc000000000000", .toNearestOrAwayFromZero)
+ /* decd133 */ self.apply64("#c7fc000000000000", "-1.000000000000000E+384", .toNearestOrAwayFromZero)
+ /* decd151 */ self.apply64("-12345", "#a2380000000049c5", .toNearestOrAwayFromZero)
+ /* decd152 */ self.apply64("#a2380000000049c5", "-12345", .toNearestOrAwayFromZero)
+ /* decd153 */ self.apply64("-1234", "#a238000000000534", .toNearestOrAwayFromZero)
+ /* decd154 */ self.apply64("#a238000000000534", "-1234", .toNearestOrAwayFromZero)
+ /* decd155 */ self.apply64("-123", "#a2380000000000a3", .toNearestOrAwayFromZero)
+ /* decd156 */ self.apply64("#a2380000000000a3", "-123", .toNearestOrAwayFromZero)
+ /* decd157 */ self.apply64("-12", "#a238000000000012", .toNearestOrAwayFromZero)
+ /* decd158 */ self.apply64("#a238000000000012", "-12", .toNearestOrAwayFromZero)
+ /* decd159 */ self.apply64("-1", "#a238000000000001", .toNearestOrAwayFromZero)
+ /* decd160 */ self.apply64("#a238000000000001", "-1", .toNearestOrAwayFromZero)
+ /* decd161 */ self.apply64("-1.23", "#a2300000000000a3", .toNearestOrAwayFromZero)
+ /* decd162 */ self.apply64("#a2300000000000a3", "-1.23", .toNearestOrAwayFromZero)
+ /* decd163 */ self.apply64("-123.45", "#a2300000000049c5", .toNearestOrAwayFromZero)
+ /* decd164 */ self.apply64("#a2300000000049c5", "-123.45", .toNearestOrAwayFromZero)
+ /* decd171 */ self.apply64("-1E-383", "#803c000000000001", .toNearestOrAwayFromZero)
+ /* decd172 */ self.apply64("#803c000000000001", "-1E-383", .toNearestOrAwayFromZero)
+ /* decd173 */ self.apply64("-1.000000000000000E-383", "#8400000000000000", .toNearestOrAwayFromZero)
+ /* decd174 */ self.apply64("#8400000000000000", "-1.000000000000000E-383", .toNearestOrAwayFromZero)
+ /* decd175 */ self.apply64("-1.000000000000001E-383", "#8400000000000001", .toNearestOrAwayFromZero)
+ /* decd176 */ self.apply64("#8400000000000001", "-1.000000000000001E-383", .toNearestOrAwayFromZero)
+ /* decd177 */ self.apply64("-0.100000000000000E-383", "#8000800000000000", .toNearestOrAwayFromZero)
+ /* decd178 */ self.apply64("#8000800000000000", "-1.00000000000000E-384", .toNearestOrAwayFromZero)
+ /* decd179 */ self.apply64("-0.000000000000010E-383", "#8000000000000010", .toNearestOrAwayFromZero)
+ /* decd180 */ self.apply64("#8000000000000010", "-1.0E-397", .toNearestOrAwayFromZero)
+ /* decd181 */ self.apply64("-0.00000000000001E-383", "#8004000000000001", .toNearestOrAwayFromZero)
+ /* decd182 */ self.apply64("#8004000000000001", "-1E-397", .toNearestOrAwayFromZero)
+ /* decd183 */ self.apply64("-0.000000000000001E-383", "#8000000000000001", .toNearestOrAwayFromZero)
+ /* decd184 */ self.apply64("#8000000000000001", "-1E-398", .toNearestOrAwayFromZero)
+ /* decd185 */ self.apply64("-9999999999999999E-398", "#e400ff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decd186 */ self.apply64("#e400ff3fcff3fcff", "-9.999999999999999E-383", .toNearestOrAwayFromZero)
+ /* decd187 */ self.apply64("1.11111111111524E-384", "#00009124491246a4", .toNearestOrAwayFromZero)
+ /* decd188 */ self.apply64("#00009124491246a4", "1.11111111111524E-384", .toNearestOrAwayFromZero)
+ /* decd189 */ self.apply64("-1e-398", "#8000000000000001", .toNearestOrAwayFromZero)
+ /* decd190 */ self.apply64("-1.0e-398", "#8000000000000001", .toNearestOrAwayFromZero)
+ /* decd401 */ self.apply64("0E-500", "#0000000000000000", .toNearestOrAwayFromZero)
+ /* decd402 */ self.apply64("0E-400", "#0000000000000000", .toNearestOrAwayFromZero)
+ /* decd403 */ self.apply64("0E-398", "#0000000000000000", .toNearestOrAwayFromZero)
+ /* decd404 */ self.apply64("#0000000000000000", "0E-398", .toNearestOrAwayFromZero)
+ /* decd405 */ self.apply64("0.000000000000000E-383", "#0000000000000000", .toNearestOrAwayFromZero)
+ /* decd406 */ self.apply64("#0000000000000000", "0E-398", .toNearestOrAwayFromZero)
+ /* decd407 */ self.apply64("0E-2", "#2230000000000000", .toNearestOrAwayFromZero)
+ /* decd408 */ self.apply64("#2230000000000000", "0.00", .toNearestOrAwayFromZero)
+ /* decd409 */ self.apply64("0", "#2238000000000000", .toNearestOrAwayFromZero)
+ /* decd410 */ self.apply64("#2238000000000000", "0", .toNearestOrAwayFromZero)
+ /* decd411 */ self.apply64("0E+3", "#2244000000000000", .toNearestOrAwayFromZero)
+ /* decd412 */ self.apply64("#2244000000000000", "0E+3", .toNearestOrAwayFromZero)
+ /* decd413 */ self.apply64("0E+369", "#43fc000000000000", .toNearestOrAwayFromZero)
+ /* decd414 */ self.apply64("#43fc000000000000", "0E+369", .toNearestOrAwayFromZero)
+ /* decd415 */ self.apply64("0E+370", "#43fc000000000000", .toNearestOrAwayFromZero)
+ /* decd416 */ self.apply64("#43fc000000000000", "0E+369", .toNearestOrAwayFromZero)
+ /* decd417 */ self.apply64("0E+384", "#43fc000000000000", .toNearestOrAwayFromZero)
+ /* decd418 */ self.apply64("#43fc000000000000", "0E+369", .toNearestOrAwayFromZero)
+ /* decd419 */ self.apply64("0E+400", "#43fc000000000000", .toNearestOrAwayFromZero)
+ /* decd420 */ self.apply64("#43fc000000000000", "0E+369", .toNearestOrAwayFromZero)
+ /* decd421 */ self.apply64("0E+500", "#43fc000000000000", .toNearestOrAwayFromZero)
+ /* decd422 */ self.apply64("#43fc000000000000", "0E+369", .toNearestOrAwayFromZero)
+ /* decd431 */ self.apply64("-0E-400", "#8000000000000000", .toNearestOrAwayFromZero)
+ /* decd432 */ self.apply64("-0E-400", "#8000000000000000", .toNearestOrAwayFromZero)
+ /* decd433 */ self.apply64("-0E-398", "#8000000000000000", .toNearestOrAwayFromZero)
+ /* decd434 */ self.apply64("#8000000000000000", "-0E-398", .toNearestOrAwayFromZero)
+ /* decd435 */ self.apply64("-0.000000000000000E-383", "#8000000000000000", .toNearestOrAwayFromZero)
+ /* decd436 */ self.apply64("#8000000000000000", "-0E-398", .toNearestOrAwayFromZero)
+ /* decd437 */ self.apply64("-0E-2", "#a230000000000000", .toNearestOrAwayFromZero)
+ /* decd438 */ self.apply64("#a230000000000000", "-0.00", .toNearestOrAwayFromZero)
+ /* decd439 */ self.apply64("-0", "#a238000000000000", .toNearestOrAwayFromZero)
+ /* decd440 */ self.apply64("#a238000000000000", "-0", .toNearestOrAwayFromZero)
+ /* decd441 */ self.apply64("-0E+3", "#a244000000000000", .toNearestOrAwayFromZero)
+ /* decd442 */ self.apply64("#a244000000000000", "-0E+3", .toNearestOrAwayFromZero)
+ /* decd443 */ self.apply64("-0E+369", "#c3fc000000000000", .toNearestOrAwayFromZero)
+ /* decd444 */ self.apply64("#c3fc000000000000", "-0E+369", .toNearestOrAwayFromZero)
+ /* decd445 */ self.apply64("-0E+370", "#c3fc000000000000", .toNearestOrAwayFromZero)
+ /* decd446 */ self.apply64("#c3fc000000000000", "-0E+369", .toNearestOrAwayFromZero)
+ /* decd447 */ self.apply64("-0E+384", "#c3fc000000000000", .toNearestOrAwayFromZero)
+ /* decd448 */ self.apply64("#c3fc000000000000", "-0E+369", .toNearestOrAwayFromZero)
+ /* decd449 */ self.apply64("-0E+400", "#c3fc000000000000", .toNearestOrAwayFromZero)
+ /* decd450 */ self.apply64("#c3fc000000000000", "-0E+369", .toNearestOrAwayFromZero)
+ /* decd451 */ self.apply64("-0E+500", "#c3fc000000000000", .toNearestOrAwayFromZero)
+ /* decd452 */ self.apply64("#c3fc000000000000", "-0E+369", .toNearestOrAwayFromZero)
+ /* decd460 */ self.apply64("#225c000000000007", "7E+9", .toNearestOrAwayFromZero)
+ /* decd461 */ self.apply64("7E+9", "#225c000000000007", .toNearestOrAwayFromZero)
+ /* decd462 */ self.apply64("#23c4000000000007", "7E+99", .toNearestOrAwayFromZero)
+ /* decd463 */ self.apply64("7E+99", "#23c4000000000007", .toNearestOrAwayFromZero)
+ /* decd500 */ self.apply64("Infinity", "#7800000000000000", .toNearestOrAwayFromZero)
+ /* decd501 */ self.apply64("#7878787878787878", "#7800000000000000", .toNearestOrAwayFromZero)
+ /* decd502 */ self.apply64("#7800000000000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decd503 */ self.apply64("#7979797979797979", "#7800000000000000", .toNearestOrAwayFromZero)
+ /* decd504 */ self.apply64("#7900000000000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decd505 */ self.apply64("#7a7a7a7a7a7a7a7a", "#7800000000000000", .toNearestOrAwayFromZero)
+ /* decd506 */ self.apply64("#7a00000000000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decd507 */ self.apply64("#7b7b7b7b7b7b7b7b", "#7800000000000000", .toNearestOrAwayFromZero)
+ /* decd508 */ self.apply64("#7b00000000000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decd509 */ self.apply64("NaN", "#7c00000000000000", .toNearestOrAwayFromZero)
+ /* decd510 */ self.apply64("#7c7c7c7c7c7c7c7c", "#7c007c7c7c7c7c7c", .toNearestOrAwayFromZero)
+ /* decd511 */ self.apply64("#7c00000000000000", "NaN", .toNearestOrAwayFromZero)
+ /* decd512 */ self.apply64("#7d7d7d7d7d7d7d7d", "#7c017d7d7d7d7d7d", .toNearestOrAwayFromZero)
+ /* decd513 */ self.apply64("#7d00000000000000", "NaN", .toNearestOrAwayFromZero)
+ /* decd514 */ self.apply64("#7e7e7e7e7e7e7e7e", "#7e007e7e7e7e7c7e", .toNearestOrAwayFromZero)
+ /* decd515 */ self.apply64("#7e00000000000000", "sNaN", .toNearestOrAwayFromZero)
+ /* decd516 */ self.apply64("#7f7f7f7f7f7f7f7f", "#7e007f7f7f7f7c7f", .toNearestOrAwayFromZero)
+ /* decd517 */ self.apply64("#7f00000000000000", "sNaN", .toNearestOrAwayFromZero)
+ /* decd518 */ self.apply64("#7fffffffffffffff", "sNaN(0x38d7ea4c67fff)", .toNearestOrAwayFromZero)
+ /* decd519 */ self.apply64("#7fffffffffffffff", "#7e00ff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decd520 */ self.apply64("-Infinity", "#f800000000000000", .toNearestOrAwayFromZero)
+ /* decd521 */ self.apply64("#f878787878787878", "#f800000000000000", .toNearestOrAwayFromZero)
+ /* decd522 */ self.apply64("#f800000000000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decd523 */ self.apply64("#f979797979797979", "#f800000000000000", .toNearestOrAwayFromZero)
+ /* decd524 */ self.apply64("#f900000000000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decd525 */ self.apply64("#fa7a7a7a7a7a7a7a", "#f800000000000000", .toNearestOrAwayFromZero)
+ /* decd526 */ self.apply64("#fa00000000000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decd527 */ self.apply64("#fb7b7b7b7b7b7b7b", "#f800000000000000", .toNearestOrAwayFromZero)
+ /* decd528 */ self.apply64("#fb00000000000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decd529 */ self.apply64("-NaN", "#fc00000000000000", .toNearestOrAwayFromZero)
+ /* decd530 */ self.apply64("#fc7c7c7c7c7c7c7c", "#fc007c7c7c7c7c7c", .toNearestOrAwayFromZero)
+ /* decd531 */ self.apply64("#fc00000000000000", "-NaN", .toNearestOrAwayFromZero)
+ /* decd532 */ self.apply64("#fd7d7d7d7d7d7d7d", "#fc017d7d7d7d7d7d", .toNearestOrAwayFromZero)
+ /* decd533 */ self.apply64("#fd00000000000000", "-NaN", .toNearestOrAwayFromZero)
+ /* decd534 */ self.apply64("#fe7e7e7e7e7e7e7e", "#fe007e7e7e7e7c7e", .toNearestOrAwayFromZero)
+ /* decd535 */ self.apply64("#fe00000000000000", "-sNaN", .toNearestOrAwayFromZero)
+ /* decd536 */ self.apply64("#ff7f7f7f7f7f7f7f", "#fe007f7f7f7f7c7f", .toNearestOrAwayFromZero)
+ /* decd537 */ self.apply64("#ff00000000000000", "-sNaN", .toNearestOrAwayFromZero)
+ /* decd538 */ self.apply64("#ffffffffffffffff", "-sNaN(0x38d7ea4c67fff)", .toNearestOrAwayFromZero)
+ /* decd539 */ self.apply64("#ffffffffffffffff", "#fe00ff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decd540 */ self.apply64("NaN", "#7c00000000000000", .toNearestOrAwayFromZero)
+ /* decd541 */ self.apply64("NaN(0x0)", "#7c00000000000000", .toNearestOrAwayFromZero)
+ /* decd542 */ self.apply64("NaN(0x1)", "#7c00000000000001", .toNearestOrAwayFromZero)
+ /* decd543 */ self.apply64("NaN(0xc)", "#7c00000000000012", .toNearestOrAwayFromZero)
+ /* decd544 */ self.apply64("NaN(0x4f)", "#7c00000000000079", .toNearestOrAwayFromZero)
+ /* decd545 */ self.apply64("NaN(0x3039)", "#7c000000000049c5", .toNearestOrAwayFromZero)
+ /* decd546 */ self.apply64("NaN(0x1e240)", "#7c00000000028e56", .toNearestOrAwayFromZero)
+ /* decd547 */ self.apply64("NaN(0xc3437)", "#7c000000000f7fdf", .toNearestOrAwayFromZero)
+ /* decd548 */ self.apply64("NaN(0x2d769e6f55ff7)", "#7c03dff7fdff7fdf", .toNearestOrAwayFromZero)
+ /* decd549 */ self.apply64("NaN(0x38d7ea4c67fff)", "#7c00ff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decd601 */ self.apply64("1E+384", "#47fc000000000000", .toNearestOrAwayFromZero)
+ /* decd602 */ self.apply64("#47fc000000000000", "1.000000000000000E+384", .toNearestOrAwayFromZero)
+ /* decd603 */ self.apply64("1E+383", "#43fc800000000000", .toNearestOrAwayFromZero)
+ /* decd604 */ self.apply64("#43fc800000000000", "1.00000000000000E+383", .toNearestOrAwayFromZero)
+ /* decd605 */ self.apply64("1E+382", "#43fc100000000000", .toNearestOrAwayFromZero)
+ /* decd606 */ self.apply64("#43fc100000000000", "1.0000000000000E+382", .toNearestOrAwayFromZero)
+ /* decd607 */ self.apply64("1E+381", "#43fc010000000000", .toNearestOrAwayFromZero)
+ /* decd608 */ self.apply64("#43fc010000000000", "1.000000000000E+381", .toNearestOrAwayFromZero)
+ /* decd609 */ self.apply64("1E+380", "#43fc002000000000", .toNearestOrAwayFromZero)
+ /* decd610 */ self.apply64("#43fc002000000000", "1.00000000000E+380", .toNearestOrAwayFromZero)
+ /* decd611 */ self.apply64("1E+379", "#43fc000400000000", .toNearestOrAwayFromZero)
+ /* decd612 */ self.apply64("#43fc000400000000", "1.0000000000E+379", .toNearestOrAwayFromZero)
+ /* decd613 */ self.apply64("1E+378", "#43fc000040000000", .toNearestOrAwayFromZero)
+ /* decd614 */ self.apply64("#43fc000040000000", "1.000000000E+378", .toNearestOrAwayFromZero)
+ /* decd615 */ self.apply64("1E+377", "#43fc000008000000", .toNearestOrAwayFromZero)
+ /* decd616 */ self.apply64("#43fc000008000000", "1.00000000E+377", .toNearestOrAwayFromZero)
+ /* decd617 */ self.apply64("1E+376", "#43fc000001000000", .toNearestOrAwayFromZero)
+ /* decd618 */ self.apply64("#43fc000001000000", "1.0000000E+376", .toNearestOrAwayFromZero)
+ /* decd619 */ self.apply64("1E+375", "#43fc000000100000", .toNearestOrAwayFromZero)
+ /* decd620 */ self.apply64("#43fc000000100000", "1.000000E+375", .toNearestOrAwayFromZero)
+ /* decd621 */ self.apply64("1E+374", "#43fc000000020000", .toNearestOrAwayFromZero)
+ /* decd622 */ self.apply64("#43fc000000020000", "1.00000E+374", .toNearestOrAwayFromZero)
+ /* decd623 */ self.apply64("1E+373", "#43fc000000004000", .toNearestOrAwayFromZero)
+ /* decd624 */ self.apply64("#43fc000000004000", "1.0000E+373", .toNearestOrAwayFromZero)
+ /* decd625 */ self.apply64("1E+372", "#43fc000000000400", .toNearestOrAwayFromZero)
+ /* decd626 */ self.apply64("#43fc000000000400", "1.000E+372", .toNearestOrAwayFromZero)
+ /* decd627 */ self.apply64("1E+371", "#43fc000000000080", .toNearestOrAwayFromZero)
+ /* decd628 */ self.apply64("#43fc000000000080", "1.00E+371", .toNearestOrAwayFromZero)
+ /* decd629 */ self.apply64("1E+370", "#43fc000000000010", .toNearestOrAwayFromZero)
+ /* decd630 */ self.apply64("#43fc000000000010", "1.0E+370", .toNearestOrAwayFromZero)
+ /* decd631 */ self.apply64("1E+369", "#43fc000000000001", .toNearestOrAwayFromZero)
+ /* decd632 */ self.apply64("#43fc000000000001", "1E+369", .toNearestOrAwayFromZero)
+ /* decd633 */ self.apply64("1E+368", "#43f8000000000001", .toNearestOrAwayFromZero)
+ /* decd634 */ self.apply64("#43f8000000000001", "1E+368", .toNearestOrAwayFromZero)
+ /* decd641 */ self.apply64("9E+384", "#77fc000000000000", .toNearestOrAwayFromZero)
+ /* decd642 */ self.apply64("#77fc000000000000", "9.000000000000000E+384", .toNearestOrAwayFromZero)
+ /* decd643 */ self.apply64("9E+383", "#43fc8c0000000000", .toNearestOrAwayFromZero)
+ /* decd644 */ self.apply64("#43fc8c0000000000", "9.00000000000000E+383", .toNearestOrAwayFromZero)
+ /* decd645 */ self.apply64("9E+382", "#43fc1a0000000000", .toNearestOrAwayFromZero)
+ /* decd646 */ self.apply64("#43fc1a0000000000", "9.0000000000000E+382", .toNearestOrAwayFromZero)
+ /* decd647 */ self.apply64("9E+381", "#43fc090000000000", .toNearestOrAwayFromZero)
+ /* decd648 */ self.apply64("#43fc090000000000", "9.000000000000E+381", .toNearestOrAwayFromZero)
+ /* decd649 */ self.apply64("9E+380", "#43fc002300000000", .toNearestOrAwayFromZero)
+ /* decd650 */ self.apply64("#43fc002300000000", "9.00000000000E+380", .toNearestOrAwayFromZero)
+ /* decd651 */ self.apply64("9E+379", "#43fc000680000000", .toNearestOrAwayFromZero)
+ /* decd652 */ self.apply64("#43fc000680000000", "9.0000000000E+379", .toNearestOrAwayFromZero)
+ /* decd653 */ self.apply64("9E+378", "#43fc000240000000", .toNearestOrAwayFromZero)
+ /* decd654 */ self.apply64("#43fc000240000000", "9.000000000E+378", .toNearestOrAwayFromZero)
+ /* decd655 */ self.apply64("9E+377", "#43fc000008c00000", .toNearestOrAwayFromZero)
+ /* decd656 */ self.apply64("#43fc000008c00000", "9.00000000E+377", .toNearestOrAwayFromZero)
+ /* decd657 */ self.apply64("9E+376", "#43fc000001a00000", .toNearestOrAwayFromZero)
+ /* decd658 */ self.apply64("#43fc000001a00000", "9.0000000E+376", .toNearestOrAwayFromZero)
+ /* decd659 */ self.apply64("9E+375", "#43fc000000900000", .toNearestOrAwayFromZero)
+ /* decd660 */ self.apply64("#43fc000000900000", "9.000000E+375", .toNearestOrAwayFromZero)
+ /* decd661 */ self.apply64("9E+374", "#43fc000000023000", .toNearestOrAwayFromZero)
+ /* decd662 */ self.apply64("#43fc000000023000", "9.00000E+374", .toNearestOrAwayFromZero)
+ /* decd663 */ self.apply64("9E+373", "#43fc000000006800", .toNearestOrAwayFromZero)
+ /* decd664 */ self.apply64("#43fc000000006800", "9.0000E+373", .toNearestOrAwayFromZero)
+ /* decd665 */ self.apply64("9E+372", "#43fc000000002400", .toNearestOrAwayFromZero)
+ /* decd666 */ self.apply64("#43fc000000002400", "9.000E+372", .toNearestOrAwayFromZero)
+ /* decd667 */ self.apply64("9E+371", "#43fc00000000008c", .toNearestOrAwayFromZero)
+ /* decd668 */ self.apply64("#43fc00000000008c", "9.00E+371", .toNearestOrAwayFromZero)
+ /* decd669 */ self.apply64("9E+370", "#43fc00000000001a", .toNearestOrAwayFromZero)
+ /* decd670 */ self.apply64("#43fc00000000001a", "9.0E+370", .toNearestOrAwayFromZero)
+ /* decd671 */ self.apply64("9E+369", "#43fc000000000009", .toNearestOrAwayFromZero)
+ /* decd672 */ self.apply64("#43fc000000000009", "9E+369", .toNearestOrAwayFromZero)
+ /* decd673 */ self.apply64("9E+368", "#43f8000000000009", .toNearestOrAwayFromZero)
+ /* decd674 */ self.apply64("#43f8000000000009", "9E+368", .toNearestOrAwayFromZero)
+ /* decd700 */ self.apply64("#2238000000000000", "0", .toNearestOrAwayFromZero)
+ /* decd701 */ self.apply64("#2238000000000009", "9", .toNearestOrAwayFromZero)
+ /* decd702 */ self.apply64("#2238000000000010", "10", .toNearestOrAwayFromZero)
+ /* decd703 */ self.apply64("#2238000000000019", "19", .toNearestOrAwayFromZero)
+ /* decd704 */ self.apply64("#2238000000000020", "20", .toNearestOrAwayFromZero)
+ /* decd705 */ self.apply64("#2238000000000029", "29", .toNearestOrAwayFromZero)
+ /* decd706 */ self.apply64("#2238000000000030", "30", .toNearestOrAwayFromZero)
+ /* decd707 */ self.apply64("#2238000000000039", "39", .toNearestOrAwayFromZero)
+ /* decd708 */ self.apply64("#2238000000000040", "40", .toNearestOrAwayFromZero)
+ /* decd709 */ self.apply64("#2238000000000049", "49", .toNearestOrAwayFromZero)
+ /* decd710 */ self.apply64("#2238000000000050", "50", .toNearestOrAwayFromZero)
+ /* decd711 */ self.apply64("#2238000000000059", "59", .toNearestOrAwayFromZero)
+ /* decd712 */ self.apply64("#2238000000000060", "60", .toNearestOrAwayFromZero)
+ /* decd713 */ self.apply64("#2238000000000069", "69", .toNearestOrAwayFromZero)
+ /* decd714 */ self.apply64("#2238000000000070", "70", .toNearestOrAwayFromZero)
+ /* decd715 */ self.apply64("#2238000000000071", "71", .toNearestOrAwayFromZero)
+ /* decd716 */ self.apply64("#2238000000000072", "72", .toNearestOrAwayFromZero)
+ /* decd717 */ self.apply64("#2238000000000073", "73", .toNearestOrAwayFromZero)
+ /* decd718 */ self.apply64("#2238000000000074", "74", .toNearestOrAwayFromZero)
+ /* decd719 */ self.apply64("#2238000000000075", "75", .toNearestOrAwayFromZero)
+ /* decd720 */ self.apply64("#2238000000000076", "76", .toNearestOrAwayFromZero)
+ /* decd721 */ self.apply64("#2238000000000077", "77", .toNearestOrAwayFromZero)
+ /* decd722 */ self.apply64("#2238000000000078", "78", .toNearestOrAwayFromZero)
+ /* decd723 */ self.apply64("#2238000000000079", "79", .toNearestOrAwayFromZero)
+ /* decd725 */ self.apply64("#223800000000029e", "994", .toNearestOrAwayFromZero)
+ /* decd726 */ self.apply64("#223800000000029f", "995", .toNearestOrAwayFromZero)
+ /* decd727 */ self.apply64("#22380000000002a0", "520", .toNearestOrAwayFromZero)
+ /* decd728 */ self.apply64("#22380000000002a1", "521", .toNearestOrAwayFromZero)
+ /* decd730 */ self.apply64("#2238000000000188", "308", .toNearestOrAwayFromZero)
+ /* decd731 */ self.apply64("#22380000000001a3", "323", .toNearestOrAwayFromZero)
+ /* decd732 */ self.apply64("#223800000000002a", "82", .toNearestOrAwayFromZero)
+ /* decd733 */ self.apply64("#22380000000001a9", "329", .toNearestOrAwayFromZero)
+ /* decd734 */ self.apply64("#2238000000000081", "101", .toNearestOrAwayFromZero)
+ /* decd735 */ self.apply64("#22380000000002a2", "522", .toNearestOrAwayFromZero)
+ /* decd740 */ self.apply64("#22380000000003f7", "777", .toNearestOrAwayFromZero)
+ /* decd741 */ self.apply64("#22380000000003f8", "778", .toNearestOrAwayFromZero)
+ /* decd742 */ self.apply64("#22380000000003eb", "787", .toNearestOrAwayFromZero)
+ /* decd743 */ self.apply64("#223800000000037d", "877", .toNearestOrAwayFromZero)
+ /* decd744 */ self.apply64("#223800000000039f", "997", .toNearestOrAwayFromZero)
+ /* decd745 */ self.apply64("#22380000000003bf", "979", .toNearestOrAwayFromZero)
+ /* decd746 */ self.apply64("#22380000000003df", "799", .toNearestOrAwayFromZero)
+ /* decd747 */ self.apply64("#223800000000006e", "888", .toNearestOrAwayFromZero)
+ /* decd750 */ self.apply64("#223800000000006e", "888", .toNearestOrAwayFromZero)
+ /* decd751 */ self.apply64("#223800000000016e", "888", .toNearestOrAwayFromZero)
+ /* decd752 */ self.apply64("#223800000000026e", "888", .toNearestOrAwayFromZero)
+ /* decd753 */ self.apply64("#223800000000036e", "888", .toNearestOrAwayFromZero)
+ /* decd754 */ self.apply64("#223800000000006f", "889", .toNearestOrAwayFromZero)
+ /* decd755 */ self.apply64("#223800000000016f", "889", .toNearestOrAwayFromZero)
+ /* decd756 */ self.apply64("#223800000000026f", "889", .toNearestOrAwayFromZero)
+ /* decd757 */ self.apply64("#223800000000036f", "889", .toNearestOrAwayFromZero)
+ /* decd760 */ self.apply64("#223800000000007e", "898", .toNearestOrAwayFromZero)
+ /* decd761 */ self.apply64("#223800000000017e", "898", .toNearestOrAwayFromZero)
+ /* decd762 */ self.apply64("#223800000000027e", "898", .toNearestOrAwayFromZero)
+ /* decd763 */ self.apply64("#223800000000037e", "898", .toNearestOrAwayFromZero)
+ /* decd764 */ self.apply64("#223800000000007f", "899", .toNearestOrAwayFromZero)
+ /* decd765 */ self.apply64("#223800000000017f", "899", .toNearestOrAwayFromZero)
+ /* decd766 */ self.apply64("#223800000000027f", "899", .toNearestOrAwayFromZero)
+ /* decd767 */ self.apply64("#223800000000037f", "899", .toNearestOrAwayFromZero)
+ /* decd770 */ self.apply64("#22380000000000ee", "988", .toNearestOrAwayFromZero)
+ /* decd771 */ self.apply64("#22380000000001ee", "988", .toNearestOrAwayFromZero)
+ /* decd772 */ self.apply64("#22380000000002ee", "988", .toNearestOrAwayFromZero)
+ /* decd773 */ self.apply64("#22380000000003ee", "988", .toNearestOrAwayFromZero)
+ /* decd774 */ self.apply64("#22380000000000ef", "989", .toNearestOrAwayFromZero)
+ /* decd775 */ self.apply64("#22380000000001ef", "989", .toNearestOrAwayFromZero)
+ /* decd776 */ self.apply64("#22380000000002ef", "989", .toNearestOrAwayFromZero)
+ /* decd777 */ self.apply64("#22380000000003ef", "989", .toNearestOrAwayFromZero)
+ /* decd780 */ self.apply64("#22380000000000fe", "998", .toNearestOrAwayFromZero)
+ /* decd781 */ self.apply64("#22380000000001fe", "998", .toNearestOrAwayFromZero)
+ /* decd782 */ self.apply64("#22380000000002fe", "998", .toNearestOrAwayFromZero)
+ /* decd783 */ self.apply64("#22380000000003fe", "998", .toNearestOrAwayFromZero)
+ /* decd784 */ self.apply64("#22380000000000ff", "999", .toNearestOrAwayFromZero)
+ /* decd785 */ self.apply64("#22380000000001ff", "999", .toNearestOrAwayFromZero)
+ /* decd786 */ self.apply64("#22380000000002ff", "999", .toNearestOrAwayFromZero)
+ /* decd787 */ self.apply64("#22380000000003ff", "999", .toNearestOrAwayFromZero)
+ /* decd800 */ self.apply64("-2147483646", "#a23800008c78af46", .toNearestOrAwayFromZero)
+ /* decd801 */ self.apply64("-2147483647", "#a23800008c78af47", .toNearestOrAwayFromZero)
+ /* decd802 */ self.apply64("-2147483648", "#a23800008c78af48", .toNearestOrAwayFromZero)
+ /* decd803 */ self.apply64("-2147483649", "#a23800008c78af49", .toNearestOrAwayFromZero)
+ /* decd804 */ self.apply64("2147483646", "#223800008c78af46", .toNearestOrAwayFromZero)
+ /* decd805 */ self.apply64("2147483647", "#223800008c78af47", .toNearestOrAwayFromZero)
+ /* decd806 */ self.apply64("2147483648", "#223800008c78af48", .toNearestOrAwayFromZero)
+ /* decd807 */ self.apply64("2147483649", "#223800008c78af49", .toNearestOrAwayFromZero)
+ /* decd808 */ self.apply64("4294967294", "#2238000115afb55a", .toNearestOrAwayFromZero)
+ /* decd809 */ self.apply64("4294967295", "#2238000115afb55b", .toNearestOrAwayFromZero)
+ /* decd810 */ self.apply64("4294967296", "#2238000115afb57a", .toNearestOrAwayFromZero)
+ /* decd811 */ self.apply64("4294967297", "#2238000115afb57b", .toNearestOrAwayFromZero)
+ /* decd820 */ self.apply64("#a23800008c78af46", "-2147483646", .toNearestOrAwayFromZero)
+ /* decd821 */ self.apply64("#a23800008c78af47", "-2147483647", .toNearestOrAwayFromZero)
+ /* decd822 */ self.apply64("#a23800008c78af48", "-2147483648", .toNearestOrAwayFromZero)
+ /* decd823 */ self.apply64("#a23800008c78af49", "-2147483649", .toNearestOrAwayFromZero)
+ /* decd824 */ self.apply64("#223800008c78af46", "2147483646", .toNearestOrAwayFromZero)
+ /* decd825 */ self.apply64("#223800008c78af47", "2147483647", .toNearestOrAwayFromZero)
+ /* decd826 */ self.apply64("#223800008c78af48", "2147483648", .toNearestOrAwayFromZero)
+ /* decd827 */ self.apply64("#223800008c78af49", "2147483649", .toNearestOrAwayFromZero)
+ /* decd828 */ self.apply64("#2238000115afb55a", "4294967294", .toNearestOrAwayFromZero)
+ /* decd829 */ self.apply64("#2238000115afb55b", "4294967295", .toNearestOrAwayFromZero)
+ /* decd830 */ self.apply64("#2238000115afb57a", "4294967296", .toNearestOrAwayFromZero)
+ /* decd831 */ self.apply64("#2238000115afb57b", "4294967297", .toNearestOrAwayFromZero)
+ /* decd840 */ self.apply64("#2870000000000000", "2.000000000000000E-99", .toNearestOrAwayFromZero)
+ /* decd850 */ self.apply64("#0004070000000000", "7.000000000000E-385", .toNearestOrAwayFromZero)
+ /* decd851 */ self.apply64("#0008000000020000", "1.00000E-391", .toNearestOrAwayFromZero)
+ /* dece001 */ self.apply64("#A2300000000003D0", "-7.50", .toNearestOrAwayFromZero)
+ /* dece002 */ self.apply64("-7.50", "#A2300000000003D0", .toNearestOrAwayFromZero)
+ /* dece003 */ self.apply64("#A23c0000000003D0", "-7.50E+3", .toNearestOrAwayFromZero)
+ /* dece004 */ self.apply64("-7.50E+3", "#A23c0000000003D0", .toNearestOrAwayFromZero)
+ /* dece005 */ self.apply64("#A2380000000003D0", "-750", .toNearestOrAwayFromZero)
+ /* dece006 */ self.apply64("-750", "#A2380000000003D0", .toNearestOrAwayFromZero)
+ /* dece007 */ self.apply64("#A2340000000003D0", "-75.0", .toNearestOrAwayFromZero)
+ /* dece008 */ self.apply64("-75.0", "#A2340000000003D0", .toNearestOrAwayFromZero)
+ /* dece009 */ self.apply64("#A22c0000000003D0", "-0.750", .toNearestOrAwayFromZero)
+ /* dece010 */ self.apply64("-0.750", "#A22c0000000003D0", .toNearestOrAwayFromZero)
+ /* dece011 */ self.apply64("#A2280000000003D0", "-0.0750", .toNearestOrAwayFromZero)
+ /* dece012 */ self.apply64("-0.0750", "#A2280000000003D0", .toNearestOrAwayFromZero)
+ /* dece013 */ self.apply64("#A2200000000003D0", "-0.000750", .toNearestOrAwayFromZero)
+ /* dece014 */ self.apply64("-0.000750", "#A2200000000003D0", .toNearestOrAwayFromZero)
+ /* dece015 */ self.apply64("#A2180000000003D0", "-0.00000750", .toNearestOrAwayFromZero)
+ /* dece016 */ self.apply64("-0.00000750", "#A2180000000003D0", .toNearestOrAwayFromZero)
+ /* dece017 */ self.apply64("#A2140000000003D0", "-7.50E-7", .toNearestOrAwayFromZero)
+ /* dece018 */ self.apply64("-7.50E-7", "#A2140000000003D0", .toNearestOrAwayFromZero)
+ /* dece020 */ self.apply64("1234567890123456", "#263934b9c1e28e56", .toNearestOrAwayFromZero)
+ /* dece021 */ self.apply64("-1234567890123456", "#a63934b9c1e28e56", .toNearestOrAwayFromZero)
+ /* dece022 */ self.apply64("1234.567890123456", "#260934b9c1e28e56", .toNearestOrAwayFromZero)
+ /* dece023 */ self.apply64("#260934b9c1e28e56", "1234.567890123456", .toNearestOrAwayFromZero)
+ /* dece024 */ self.apply64("1111111111111111", "#2638912449124491", .toNearestOrAwayFromZero)
+ /* dece025 */ self.apply64("9999999999999999", "#6e38ff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* dece031 */ self.apply64("9999999999999999E+369", "#77fcff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* dece032 */ self.apply64("9.999999999999999E+384", "#77fcff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* dece033 */ self.apply64("#77fcff3fcff3fcff", "9.999999999999999E+384", .toNearestOrAwayFromZero)
+ /* dece034 */ self.apply64("1.234567890123456E+384", "#47fd34b9c1e28e56", .toNearestOrAwayFromZero)
+ /* dece035 */ self.apply64("#47fd34b9c1e28e56", "1.234567890123456E+384", .toNearestOrAwayFromZero)
+ /* dece036 */ self.apply64("1.23E+384", "#47fd300000000000", .toNearestOrAwayFromZero)
+ /* dece037 */ self.apply64("#47fd300000000000", "1.230000000000000E+384", .toNearestOrAwayFromZero)
+ }
+
+ private func apply64(
+ _ arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ if let result: Decimal64 = self.parseDecimal(arg0, rounding: rounding, status: &status, file, line) {
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ } else {
+ XCTFail(arg0)
+ }
+ }
+
+ func test_apply128() {
+ /* decan011 */ self.apply128("9999999999999999999999999999999999", "#6e080ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* decq001 */ self.apply128("#A20780000000000000000000000003D0", "-7.50", .toNearestOrAwayFromZero)
+ /* decq002 */ self.apply128("-7.50", "#A20780000000000000000000000003D0", .toNearestOrAwayFromZero)
+ /* decq003 */ self.apply128("#A20840000000000000000000000003D0", "-7.50E+3", .toNearestOrAwayFromZero)
+ /* decq004 */ self.apply128("-7.50E+3", "#A20840000000000000000000000003D0", .toNearestOrAwayFromZero)
+ /* decq005 */ self.apply128("#A20800000000000000000000000003D0", "-750", .toNearestOrAwayFromZero)
+ /* decq006 */ self.apply128("-750", "#A20800000000000000000000000003D0", .toNearestOrAwayFromZero)
+ /* decq007 */ self.apply128("#A207c0000000000000000000000003D0", "-75.0", .toNearestOrAwayFromZero)
+ /* decq008 */ self.apply128("-75.0", "#A207c0000000000000000000000003D0", .toNearestOrAwayFromZero)
+ /* decq009 */ self.apply128("#A20740000000000000000000000003D0", "-0.750", .toNearestOrAwayFromZero)
+ /* decq010 */ self.apply128("-0.750", "#A20740000000000000000000000003D0", .toNearestOrAwayFromZero)
+ /* decq011 */ self.apply128("#A20700000000000000000000000003D0", "-0.0750", .toNearestOrAwayFromZero)
+ /* decq012 */ self.apply128("-0.0750", "#A20700000000000000000000000003D0", .toNearestOrAwayFromZero)
+ /* decq013 */ self.apply128("#A20680000000000000000000000003D0", "-0.000750", .toNearestOrAwayFromZero)
+ /* decq014 */ self.apply128("-0.000750", "#A20680000000000000000000000003D0", .toNearestOrAwayFromZero)
+ /* decq015 */ self.apply128("#A20600000000000000000000000003D0", "-0.00000750", .toNearestOrAwayFromZero)
+ /* decq016 */ self.apply128("-0.00000750", "#A20600000000000000000000000003D0", .toNearestOrAwayFromZero)
+ /* decq017 */ self.apply128("#A205c0000000000000000000000003D0", "-7.50E-7", .toNearestOrAwayFromZero)
+ /* decq018 */ self.apply128("-7.50E-7", "#A205c0000000000000000000000003D0", .toNearestOrAwayFromZero)
+ /* decq020 */ self.apply128("1234567890123456789012345678901234", "#2608134b9c1e28e56f3c127177823534", .toNearestOrAwayFromZero)
+ /* decq021 */ self.apply128("-1234567890123456789012345678901234", "#a608134b9c1e28e56f3c127177823534", .toNearestOrAwayFromZero)
+ /* decq022 */ self.apply128("1111111111111111111111111111111111", "#26080912449124491244912449124491", .toNearestOrAwayFromZero)
+ /* decq031 */ self.apply128("9.999999999999999999999999999999999E+6144", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decq032 */ self.apply128("#77ffcff3fcff3fcff3fcff3fcff3fcff", "9.999999999999999999999999999999999E+6144", .toNearestOrAwayFromZero)
+ /* decq033 */ self.apply128("1.234567890123456789012345678901234E+6144", "#47ffd34b9c1e28e56f3c127177823534", .toNearestOrAwayFromZero)
+ /* decq034 */ self.apply128("#47ffd34b9c1e28e56f3c127177823534", "1.234567890123456789012345678901234E+6144", .toNearestOrAwayFromZero)
+ /* decq035 */ self.apply128("1.23E+6144", "#47ffd300000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq036 */ self.apply128("#47ffd300000000000000000000000000", "1.230000000000000000000000000000000E+6144", .toNearestOrAwayFromZero)
+ /* decq037 */ self.apply128("1E+6144", "#47ffc000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq038 */ self.apply128("#47ffc000000000000000000000000000", "1.000000000000000000000000000000000E+6144", .toNearestOrAwayFromZero)
+ /* decq051 */ self.apply128("12345", "#220800000000000000000000000049c5", .toNearestOrAwayFromZero)
+ /* decq052 */ self.apply128("#220800000000000000000000000049c5", "12345", .toNearestOrAwayFromZero)
+ /* decq053 */ self.apply128("1234", "#22080000000000000000000000000534", .toNearestOrAwayFromZero)
+ /* decq054 */ self.apply128("#22080000000000000000000000000534", "1234", .toNearestOrAwayFromZero)
+ /* decq055 */ self.apply128("123", "#220800000000000000000000000000a3", .toNearestOrAwayFromZero)
+ /* decq056 */ self.apply128("#220800000000000000000000000000a3", "123", .toNearestOrAwayFromZero)
+ /* decq057 */ self.apply128("12", "#22080000000000000000000000000012", .toNearestOrAwayFromZero)
+ /* decq058 */ self.apply128("#22080000000000000000000000000012", "12", .toNearestOrAwayFromZero)
+ /* decq059 */ self.apply128("1", "#22080000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq060 */ self.apply128("#22080000000000000000000000000001", "1", .toNearestOrAwayFromZero)
+ /* decq061 */ self.apply128("1.23", "#220780000000000000000000000000a3", .toNearestOrAwayFromZero)
+ /* decq062 */ self.apply128("#220780000000000000000000000000a3", "1.23", .toNearestOrAwayFromZero)
+ /* decq063 */ self.apply128("123.45", "#220780000000000000000000000049c5", .toNearestOrAwayFromZero)
+ /* decq064 */ self.apply128("#220780000000000000000000000049c5", "123.45", .toNearestOrAwayFromZero)
+ /* decq071 */ self.apply128("1E-6143", "#00084000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq072 */ self.apply128("#00084000000000000000000000000001", "1E-6143", .toNearestOrAwayFromZero)
+ /* decq073 */ self.apply128("1.000000000000000000000000000000000E-6143", "#04000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq074 */ self.apply128("#04000000000000000000000000000000", "1.000000000000000000000000000000000E-6143", .toNearestOrAwayFromZero)
+ /* decq075 */ self.apply128("1.000000000000000000000000000000001E-6143", "#04000000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq076 */ self.apply128("#04000000000000000000000000000001", "1.000000000000000000000000000000001E-6143", .toNearestOrAwayFromZero)
+ /* decq077 */ self.apply128("0.100000000000000000000000000000000E-6143", "#00000800000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq078 */ self.apply128("#00000800000000000000000000000000", "1.00000000000000000000000000000000E-6144", .toNearestOrAwayFromZero)
+ /* decq079 */ self.apply128("0.000000000000000000000000000000010E-6143", "#00000000000000000000000000000010", .toNearestOrAwayFromZero)
+ /* decq080 */ self.apply128("#00000000000000000000000000000010", "1.0E-6175", .toNearestOrAwayFromZero)
+ /* decq081 */ self.apply128("0.00000000000000000000000000000001E-6143", "#00004000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq082 */ self.apply128("#00004000000000000000000000000001", "1E-6175", .toNearestOrAwayFromZero)
+ /* decq083 */ self.apply128("0.000000000000000000000000000000001E-6143", "#00000000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq084 */ self.apply128("#00000000000000000000000000000001", "1E-6176", .toNearestOrAwayFromZero)
+ /* decq090 */ self.apply128("1e-6176", "#00000000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq100 */ self.apply128("999999999999999999999999999999999e-6176", "#00000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decq122 */ self.apply128("-9.999999999999999999999999999999999E+6144", "#f7ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decq123 */ self.apply128("#f7ffcff3fcff3fcff3fcff3fcff3fcff", "-9.999999999999999999999999999999999E+6144", .toNearestOrAwayFromZero)
+ /* decq124 */ self.apply128("-1.234567890123456789012345678901234E+6144", "#c7ffd34b9c1e28e56f3c127177823534", .toNearestOrAwayFromZero)
+ /* decq125 */ self.apply128("#c7ffd34b9c1e28e56f3c127177823534", "-1.234567890123456789012345678901234E+6144", .toNearestOrAwayFromZero)
+ /* decq130 */ self.apply128("-1.23E+6144", "#c7ffd300000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq131 */ self.apply128("#c7ffd300000000000000000000000000", "-1.230000000000000000000000000000000E+6144", .toNearestOrAwayFromZero)
+ /* decq132 */ self.apply128("-1E+6144", "#c7ffc000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq133 */ self.apply128("#c7ffc000000000000000000000000000", "-1.000000000000000000000000000000000E+6144", .toNearestOrAwayFromZero)
+ /* decq151 */ self.apply128("-12345", "#a20800000000000000000000000049c5", .toNearestOrAwayFromZero)
+ /* decq152 */ self.apply128("#a20800000000000000000000000049c5", "-12345", .toNearestOrAwayFromZero)
+ /* decq153 */ self.apply128("-1234", "#a2080000000000000000000000000534", .toNearestOrAwayFromZero)
+ /* decq154 */ self.apply128("#a2080000000000000000000000000534", "-1234", .toNearestOrAwayFromZero)
+ /* decq155 */ self.apply128("-123", "#a20800000000000000000000000000a3", .toNearestOrAwayFromZero)
+ /* decq156 */ self.apply128("#a20800000000000000000000000000a3", "-123", .toNearestOrAwayFromZero)
+ /* decq157 */ self.apply128("-12", "#a2080000000000000000000000000012", .toNearestOrAwayFromZero)
+ /* decq158 */ self.apply128("#a2080000000000000000000000000012", "-12", .toNearestOrAwayFromZero)
+ /* decq159 */ self.apply128("-1", "#a2080000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq160 */ self.apply128("#a2080000000000000000000000000001", "-1", .toNearestOrAwayFromZero)
+ /* decq161 */ self.apply128("-1.23", "#a20780000000000000000000000000a3", .toNearestOrAwayFromZero)
+ /* decq162 */ self.apply128("#a20780000000000000000000000000a3", "-1.23", .toNearestOrAwayFromZero)
+ /* decq163 */ self.apply128("-123.45", "#a20780000000000000000000000049c5", .toNearestOrAwayFromZero)
+ /* decq164 */ self.apply128("#a20780000000000000000000000049c5", "-123.45", .toNearestOrAwayFromZero)
+ /* decq171 */ self.apply128("-1E-6143", "#80084000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq172 */ self.apply128("#80084000000000000000000000000001", "-1E-6143", .toNearestOrAwayFromZero)
+ /* decq173 */ self.apply128("-1.000000000000000000000000000000000E-6143", "#84000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq174 */ self.apply128("#84000000000000000000000000000000", "-1.000000000000000000000000000000000E-6143", .toNearestOrAwayFromZero)
+ /* decq175 */ self.apply128("-1.000000000000000000000000000000001E-6143", "#84000000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq176 */ self.apply128("#84000000000000000000000000000001", "-1.000000000000000000000000000000001E-6143", .toNearestOrAwayFromZero)
+ /* decq177 */ self.apply128("-0.100000000000000000000000000000000E-6143", "#80000800000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq178 */ self.apply128("#80000800000000000000000000000000", "-1.00000000000000000000000000000000E-6144", .toNearestOrAwayFromZero)
+ /* decq179 */ self.apply128("-0.000000000000000000000000000000010E-6143", "#80000000000000000000000000000010", .toNearestOrAwayFromZero)
+ /* decq180 */ self.apply128("#80000000000000000000000000000010", "-1.0E-6175", .toNearestOrAwayFromZero)
+ /* decq181 */ self.apply128("-0.00000000000000000000000000000001E-6143", "#80004000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq182 */ self.apply128("#80004000000000000000000000000001", "-1E-6175", .toNearestOrAwayFromZero)
+ /* decq183 */ self.apply128("-0.000000000000000000000000000000001E-6143", "#80000000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq184 */ self.apply128("#80000000000000000000000000000001", "-1E-6176", .toNearestOrAwayFromZero)
+ /* decq190 */ self.apply128("-1e-6176", "#80000000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq200 */ self.apply128("-999999999999999999999999999999999e-6176", "#80000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decq400 */ self.apply128("0E-8000", "#00000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq401 */ self.apply128("0E-6177", "#00000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq402 */ self.apply128("0E-6176", "#00000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq403 */ self.apply128("#00000000000000000000000000000000", "0E-6176", .toNearestOrAwayFromZero)
+ /* decq404 */ self.apply128("0.000000000000000000000000000000000E-6143", "#00000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq405 */ self.apply128("#00000000000000000000000000000000", "0E-6176", .toNearestOrAwayFromZero)
+ /* decq406 */ self.apply128("0E-2", "#22078000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq407 */ self.apply128("#22078000000000000000000000000000", "0.00", .toNearestOrAwayFromZero)
+ /* decq408 */ self.apply128("0", "#22080000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq409 */ self.apply128("#22080000000000000000000000000000", "0", .toNearestOrAwayFromZero)
+ /* decq410 */ self.apply128("0E+3", "#2208c000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq411 */ self.apply128("#2208c000000000000000000000000000", "0E+3", .toNearestOrAwayFromZero)
+ /* decq412 */ self.apply128("0E+6111", "#43ffc000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq413 */ self.apply128("#43ffc000000000000000000000000000", "0E+6111", .toNearestOrAwayFromZero)
+ /* decq414 */ self.apply128("0E+6112", "#43ffc000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq415 */ self.apply128("#43ffc000000000000000000000000000", "0E+6111", .toNearestOrAwayFromZero)
+ /* decq416 */ self.apply128("0E+6144", "#43ffc000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq417 */ self.apply128("#43ffc000000000000000000000000000", "0E+6111", .toNearestOrAwayFromZero)
+ /* decq418 */ self.apply128("0E+8000", "#43ffc000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq419 */ self.apply128("#43ffc000000000000000000000000000", "0E+6111", .toNearestOrAwayFromZero)
+ /* decq420 */ self.apply128("-0E-8000", "#80000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq421 */ self.apply128("-0E-6177", "#80000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq422 */ self.apply128("-0E-6176", "#80000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq423 */ self.apply128("#80000000000000000000000000000000", "-0E-6176", .toNearestOrAwayFromZero)
+ /* decq424 */ self.apply128("-0.000000000000000000000000000000000E-6143", "#80000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq425 */ self.apply128("#80000000000000000000000000000000", "-0E-6176", .toNearestOrAwayFromZero)
+ /* decq426 */ self.apply128("-0E-2", "#a2078000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq427 */ self.apply128("#a2078000000000000000000000000000", "-0.00", .toNearestOrAwayFromZero)
+ /* decq428 */ self.apply128("-0", "#a2080000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq429 */ self.apply128("#a2080000000000000000000000000000", "-0", .toNearestOrAwayFromZero)
+ /* decq430 */ self.apply128("-0E+3", "#a208c000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq431 */ self.apply128("#a208c000000000000000000000000000", "-0E+3", .toNearestOrAwayFromZero)
+ /* decq432 */ self.apply128("-0E+6111", "#c3ffc000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq433 */ self.apply128("#c3ffc000000000000000000000000000", "-0E+6111", .toNearestOrAwayFromZero)
+ /* decq434 */ self.apply128("-0E+6112", "#c3ffc000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq435 */ self.apply128("#c3ffc000000000000000000000000000", "-0E+6111", .toNearestOrAwayFromZero)
+ /* decq436 */ self.apply128("-0E+6144", "#c3ffc000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq437 */ self.apply128("#c3ffc000000000000000000000000000", "-0E+6111", .toNearestOrAwayFromZero)
+ /* decq438 */ self.apply128("-0E+8000", "#c3ffc000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq439 */ self.apply128("#c3ffc000000000000000000000000000", "-0E+6111", .toNearestOrAwayFromZero)
+ /* decq440 */ self.apply128("#22080000000000000000000000000007", "7", .toNearestOrAwayFromZero)
+ /* decq441 */ self.apply128("7", "#22080000000000000000000000000007", .toNearestOrAwayFromZero)
+ /* decq442 */ self.apply128("#220a4000000000000000000000000007", "7E+9", .toNearestOrAwayFromZero)
+ /* decq443 */ self.apply128("7E+9", "#220a4000000000000000000000000007", .toNearestOrAwayFromZero)
+ /* decq444 */ self.apply128("#2220c000000000000000000000000007", "7E+99", .toNearestOrAwayFromZero)
+ /* decq445 */ self.apply128("7E+99", "#2220c000000000000000000000000007", .toNearestOrAwayFromZero)
+ /* decq446 */ self.apply128("#2301c000000000000000000000000007", "7E+999", .toNearestOrAwayFromZero)
+ /* decq447 */ self.apply128("7E+999", "#2301c000000000000000000000000007", .toNearestOrAwayFromZero)
+ /* decq448 */ self.apply128("#43e3c000000000000000000000000007", "7E+5999", .toNearestOrAwayFromZero)
+ /* decq449 */ self.apply128("7E+5999", "#43e3c000000000000000000000000007", .toNearestOrAwayFromZero)
+ /* decq500 */ self.apply128("Infinity", "#78000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq501 */ self.apply128("#78787878787878787878787878787878", "#78000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq502 */ self.apply128("#78000000000000000000000000000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decq503 */ self.apply128("#79797979797979797979797979797979", "#78000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq504 */ self.apply128("#79000000000000000000000000000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decq505 */ self.apply128("#7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a", "#78000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq506 */ self.apply128("#7a000000000000000000000000000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decq507 */ self.apply128("#7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b", "#78000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq508 */ self.apply128("#7b000000000000000000000000000000", "Infinity", .toNearestOrAwayFromZero)
+ /* decq509 */ self.apply128("NaN", "#7c000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq510 */ self.apply128("#7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c", "#7c003c7c7c7c7c7c7c7c7c7c7c7c7c7c", .toNearestOrAwayFromZero)
+ /* decq511 */ self.apply128("#7c000000000000000000000000000000", "NaN", .toNearestOrAwayFromZero)
+ /* decq512 */ self.apply128("#7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d", "#7c003d7d7d7d7d7d7d7d7d7d7d7d7d7d", .toNearestOrAwayFromZero)
+ /* decq513 */ self.apply128("#7d000000000000000000000000000000", "NaN", .toNearestOrAwayFromZero)
+ /* decq514 */ self.apply128("#7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e", "#7e003e7e7c7e7e7e7e7c7e7e7e7e7c7e", .toNearestOrAwayFromZero)
+ /* decq515 */ self.apply128("#7e000000000000000000000000000000", "sNaN", .toNearestOrAwayFromZero)
+ /* decq516 */ self.apply128("#7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f", "#7e003f7f7c7f7f7f7f7c7f7f7f7f7c7f", .toNearestOrAwayFromZero)
+ /* decq517 */ self.apply128("#7f000000000000000000000000000000", "sNaN", .toNearestOrAwayFromZero)
+ /* decq518 */ self.apply128("#7fffffffffffffffffffffffffffffff", "sNaN(0x314dc6448d9338c15b09ffffffff)", .toNearestOrAwayFromZero)
+ /* decq519 */ self.apply128("#7fffffffffffffffffffffffffffffff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decq520 */ self.apply128("-Infinity", "#f8000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq521 */ self.apply128("#f8787878787878787878787878787878", "#f8000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq522 */ self.apply128("#f8000000000000000000000000000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decq523 */ self.apply128("#f9797979797979797979797979797979", "#f8000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq524 */ self.apply128("#f9000000000000000000000000000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decq525 */ self.apply128("#fa7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a", "#f8000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq526 */ self.apply128("#fa000000000000000000000000000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decq527 */ self.apply128("#fb7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b", "#f8000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq528 */ self.apply128("#fb000000000000000000000000000000", "-Infinity", .toNearestOrAwayFromZero)
+ /* decq529 */ self.apply128("-NaN", "#fc000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq530 */ self.apply128("#fc7c7c7c7c7c7c7c7c7c7c7c7c7c7c7c", "#fc003c7c7c7c7c7c7c7c7c7c7c7c7c7c", .toNearestOrAwayFromZero)
+ /* decq531 */ self.apply128("#fc000000000000000000000000000000", "-NaN", .toNearestOrAwayFromZero)
+ /* decq532 */ self.apply128("#fd7d7d7d7d7d7d7d7d7d7d7d7d7d7d7d", "#fc003d7d7d7d7d7d7d7d7d7d7d7d7d7d", .toNearestOrAwayFromZero)
+ /* decq533 */ self.apply128("#fd000000000000000000000000000000", "-NaN", .toNearestOrAwayFromZero)
+ /* decq534 */ self.apply128("#fe7e7e7e7e7e7e7e7e7e7e7e7e7e7e7e", "#fe003e7e7c7e7e7e7e7c7e7e7e7e7c7e", .toNearestOrAwayFromZero)
+ /* decq535 */ self.apply128("#fe000000000000000000000000000000", "-sNaN", .toNearestOrAwayFromZero)
+ /* decq536 */ self.apply128("#ff7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f", "#fe003f7f7c7f7f7f7f7c7f7f7f7f7c7f", .toNearestOrAwayFromZero)
+ /* decq537 */ self.apply128("#ff000000000000000000000000000000", "-sNaN", .toNearestOrAwayFromZero)
+ /* decq538 */ self.apply128("#ffffffffffffffffffffffffffffffff", "-sNaN(0x314dc6448d9338c15b09ffffffff)", .toNearestOrAwayFromZero)
+ /* decq539 */ self.apply128("#ffffffffffffffffffffffffffffffff", "#fe000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decq540 */ self.apply128("NaN", "#7c000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq541 */ self.apply128("NaN(0x0)", "#7c000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq542 */ self.apply128("NaN(0x1)", "#7c000000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq543 */ self.apply128("NaN(0xc)", "#7c000000000000000000000000000012", .toNearestOrAwayFromZero)
+ /* decq544 */ self.apply128("NaN(0x4f)", "#7c000000000000000000000000000079", .toNearestOrAwayFromZero)
+ /* decq545 */ self.apply128("NaN(0x3039)", "#7c0000000000000000000000000049c5", .toNearestOrAwayFromZero)
+ /* decq546 */ self.apply128("NaN(0x1e240)", "#7c000000000000000000000000028e56", .toNearestOrAwayFromZero)
+ /* decq547 */ self.apply128("NaN(0xc3437)", "#7c0000000000000000000000000f7fdf", .toNearestOrAwayFromZero)
+ /* decq548 */ self.apply128("NaN(0x276ee4885174b90d72d6cbfadff7)", "#7c003dff7fdff7fdff7fdff7fdff7fdf", .toNearestOrAwayFromZero)
+ /* decq549 */ self.apply128("NaN(0x314dc6448d9338c15b09ffffffff)", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decq550 */ self.apply128("9999999999999999999999999999999999", "#6e080ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrAwayFromZero)
+ /* decq601 */ self.apply128("1E+6144", "#47ffc000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq602 */ self.apply128("#47ffc000000000000000000000000000", "1.000000000000000000000000000000000E+6144", .toNearestOrAwayFromZero)
+ /* decq603 */ self.apply128("1E+6143", "#43ffc800000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq604 */ self.apply128("#43ffc800000000000000000000000000", "1.00000000000000000000000000000000E+6143", .toNearestOrAwayFromZero)
+ /* decq605 */ self.apply128("1E+6142", "#43ffc100000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq606 */ self.apply128("#43ffc100000000000000000000000000", "1.0000000000000000000000000000000E+6142", .toNearestOrAwayFromZero)
+ /* decq607 */ self.apply128("1E+6141", "#43ffc010000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq608 */ self.apply128("#43ffc010000000000000000000000000", "1.000000000000000000000000000000E+6141", .toNearestOrAwayFromZero)
+ /* decq609 */ self.apply128("1E+6140", "#43ffc002000000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq610 */ self.apply128("#43ffc002000000000000000000000000", "1.00000000000000000000000000000E+6140", .toNearestOrAwayFromZero)
+ /* decq611 */ self.apply128("1E+6139", "#43ffc000400000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq612 */ self.apply128("#43ffc000400000000000000000000000", "1.0000000000000000000000000000E+6139", .toNearestOrAwayFromZero)
+ /* decq613 */ self.apply128("1E+6138", "#43ffc000040000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq614 */ self.apply128("#43ffc000040000000000000000000000", "1.000000000000000000000000000E+6138", .toNearestOrAwayFromZero)
+ /* decq615 */ self.apply128("1E+6137", "#43ffc000008000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq616 */ self.apply128("#43ffc000008000000000000000000000", "1.00000000000000000000000000E+6137", .toNearestOrAwayFromZero)
+ /* decq617 */ self.apply128("1E+6136", "#43ffc000001000000000000000000000", .toNearestOrAwayFromZero)
+ /* decq618 */ self.apply128("#43ffc000001000000000000000000000", "1.0000000000000000000000000E+6136", .toNearestOrAwayFromZero)
+ /* decq619 */ self.apply128("1E+6135", "#43ffc000000100000000000000000000", .toNearestOrAwayFromZero)
+ /* decq620 */ self.apply128("#43ffc000000100000000000000000000", "1.000000000000000000000000E+6135", .toNearestOrAwayFromZero)
+ /* decq621 */ self.apply128("1E+6134", "#43ffc000000020000000000000000000", .toNearestOrAwayFromZero)
+ /* decq622 */ self.apply128("#43ffc000000020000000000000000000", "1.00000000000000000000000E+6134", .toNearestOrAwayFromZero)
+ /* decq623 */ self.apply128("1E+6133", "#43ffc000000004000000000000000000", .toNearestOrAwayFromZero)
+ /* decq624 */ self.apply128("#43ffc000000004000000000000000000", "1.0000000000000000000000E+6133", .toNearestOrAwayFromZero)
+ /* decq625 */ self.apply128("1E+6132", "#43ffc000000000400000000000000000", .toNearestOrAwayFromZero)
+ /* decq626 */ self.apply128("#43ffc000000000400000000000000000", "1.000000000000000000000E+6132", .toNearestOrAwayFromZero)
+ /* decq627 */ self.apply128("1E+6131", "#43ffc000000000080000000000000000", .toNearestOrAwayFromZero)
+ /* decq628 */ self.apply128("#43ffc000000000080000000000000000", "1.00000000000000000000E+6131", .toNearestOrAwayFromZero)
+ /* decq629 */ self.apply128("1E+6130", "#43ffc000000000010000000000000000", .toNearestOrAwayFromZero)
+ /* decq630 */ self.apply128("#43ffc000000000010000000000000000", "1.0000000000000000000E+6130", .toNearestOrAwayFromZero)
+ /* decq631 */ self.apply128("1E+6129", "#43ffc000000000001000000000000000", .toNearestOrAwayFromZero)
+ /* decq632 */ self.apply128("#43ffc000000000001000000000000000", "1.000000000000000000E+6129", .toNearestOrAwayFromZero)
+ /* decq633 */ self.apply128("1E+6128", "#43ffc000000000000200000000000000", .toNearestOrAwayFromZero)
+ /* decq634 */ self.apply128("#43ffc000000000000200000000000000", "1.00000000000000000E+6128", .toNearestOrAwayFromZero)
+ /* decq635 */ self.apply128("1E+6127", "#43ffc000000000000040000000000000", .toNearestOrAwayFromZero)
+ /* decq636 */ self.apply128("#43ffc000000000000040000000000000", "1.0000000000000000E+6127", .toNearestOrAwayFromZero)
+ /* decq637 */ self.apply128("1E+6126", "#43ffc000000000000004000000000000", .toNearestOrAwayFromZero)
+ /* decq638 */ self.apply128("#43ffc000000000000004000000000000", "1.000000000000000E+6126", .toNearestOrAwayFromZero)
+ /* decq639 */ self.apply128("1E+6125", "#43ffc000000000000000800000000000", .toNearestOrAwayFromZero)
+ /* decq640 */ self.apply128("#43ffc000000000000000800000000000", "1.00000000000000E+6125", .toNearestOrAwayFromZero)
+ /* decq641 */ self.apply128("1E+6124", "#43ffc000000000000000100000000000", .toNearestOrAwayFromZero)
+ /* decq642 */ self.apply128("#43ffc000000000000000100000000000", "1.0000000000000E+6124", .toNearestOrAwayFromZero)
+ /* decq643 */ self.apply128("1E+6123", "#43ffc000000000000000010000000000", .toNearestOrAwayFromZero)
+ /* decq644 */ self.apply128("#43ffc000000000000000010000000000", "1.000000000000E+6123", .toNearestOrAwayFromZero)
+ /* decq645 */ self.apply128("1E+6122", "#43ffc000000000000000002000000000", .toNearestOrAwayFromZero)
+ /* decq646 */ self.apply128("#43ffc000000000000000002000000000", "1.00000000000E+6122", .toNearestOrAwayFromZero)
+ /* decq647 */ self.apply128("1E+6121", "#43ffc000000000000000000400000000", .toNearestOrAwayFromZero)
+ /* decq648 */ self.apply128("#43ffc000000000000000000400000000", "1.0000000000E+6121", .toNearestOrAwayFromZero)
+ /* decq649 */ self.apply128("1E+6120", "#43ffc000000000000000000040000000", .toNearestOrAwayFromZero)
+ /* decq650 */ self.apply128("#43ffc000000000000000000040000000", "1.000000000E+6120", .toNearestOrAwayFromZero)
+ /* decq651 */ self.apply128("1E+6119", "#43ffc000000000000000000008000000", .toNearestOrAwayFromZero)
+ /* decq652 */ self.apply128("#43ffc000000000000000000008000000", "1.00000000E+6119", .toNearestOrAwayFromZero)
+ /* decq653 */ self.apply128("1E+6118", "#43ffc000000000000000000001000000", .toNearestOrAwayFromZero)
+ /* decq654 */ self.apply128("#43ffc000000000000000000001000000", "1.0000000E+6118", .toNearestOrAwayFromZero)
+ /* decq655 */ self.apply128("1E+6117", "#43ffc000000000000000000000100000", .toNearestOrAwayFromZero)
+ /* decq656 */ self.apply128("#43ffc000000000000000000000100000", "1.000000E+6117", .toNearestOrAwayFromZero)
+ /* decq657 */ self.apply128("1E+6116", "#43ffc000000000000000000000020000", .toNearestOrAwayFromZero)
+ /* decq658 */ self.apply128("#43ffc000000000000000000000020000", "1.00000E+6116", .toNearestOrAwayFromZero)
+ /* decq659 */ self.apply128("1E+6115", "#43ffc000000000000000000000004000", .toNearestOrAwayFromZero)
+ /* decq660 */ self.apply128("#43ffc000000000000000000000004000", "1.0000E+6115", .toNearestOrAwayFromZero)
+ /* decq661 */ self.apply128("1E+6114", "#43ffc000000000000000000000000400", .toNearestOrAwayFromZero)
+ /* decq662 */ self.apply128("#43ffc000000000000000000000000400", "1.000E+6114", .toNearestOrAwayFromZero)
+ /* decq663 */ self.apply128("1E+6113", "#43ffc000000000000000000000000080", .toNearestOrAwayFromZero)
+ /* decq664 */ self.apply128("#43ffc000000000000000000000000080", "1.00E+6113", .toNearestOrAwayFromZero)
+ /* decq665 */ self.apply128("1E+6112", "#43ffc000000000000000000000000010", .toNearestOrAwayFromZero)
+ /* decq666 */ self.apply128("#43ffc000000000000000000000000010", "1.0E+6112", .toNearestOrAwayFromZero)
+ /* decq667 */ self.apply128("1E+6111", "#43ffc000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq668 */ self.apply128("#43ffc000000000000000000000000001", "1E+6111", .toNearestOrAwayFromZero)
+ /* decq669 */ self.apply128("1E+6110", "#43ff8000000000000000000000000001", .toNearestOrAwayFromZero)
+ /* decq670 */ self.apply128("#43ff8000000000000000000000000001", "1E+6110", .toNearestOrAwayFromZero)
+ /* decq700 */ self.apply128("#22080000000000000000000000000000", "0", .toNearestOrAwayFromZero)
+ /* decq701 */ self.apply128("#22080000000000000000000000000009", "9", .toNearestOrAwayFromZero)
+ /* decq702 */ self.apply128("#22080000000000000000000000000010", "10", .toNearestOrAwayFromZero)
+ /* decq703 */ self.apply128("#22080000000000000000000000000019", "19", .toNearestOrAwayFromZero)
+ /* decq704 */ self.apply128("#22080000000000000000000000000020", "20", .toNearestOrAwayFromZero)
+ /* decq705 */ self.apply128("#22080000000000000000000000000029", "29", .toNearestOrAwayFromZero)
+ /* decq706 */ self.apply128("#22080000000000000000000000000030", "30", .toNearestOrAwayFromZero)
+ /* decq707 */ self.apply128("#22080000000000000000000000000039", "39", .toNearestOrAwayFromZero)
+ /* decq708 */ self.apply128("#22080000000000000000000000000040", "40", .toNearestOrAwayFromZero)
+ /* decq709 */ self.apply128("#22080000000000000000000000000049", "49", .toNearestOrAwayFromZero)
+ /* decq710 */ self.apply128("#22080000000000000000000000000050", "50", .toNearestOrAwayFromZero)
+ /* decq711 */ self.apply128("#22080000000000000000000000000059", "59", .toNearestOrAwayFromZero)
+ /* decq712 */ self.apply128("#22080000000000000000000000000060", "60", .toNearestOrAwayFromZero)
+ /* decq713 */ self.apply128("#22080000000000000000000000000069", "69", .toNearestOrAwayFromZero)
+ /* decq714 */ self.apply128("#22080000000000000000000000000070", "70", .toNearestOrAwayFromZero)
+ /* decq715 */ self.apply128("#22080000000000000000000000000071", "71", .toNearestOrAwayFromZero)
+ /* decq716 */ self.apply128("#22080000000000000000000000000072", "72", .toNearestOrAwayFromZero)
+ /* decq717 */ self.apply128("#22080000000000000000000000000073", "73", .toNearestOrAwayFromZero)
+ /* decq718 */ self.apply128("#22080000000000000000000000000074", "74", .toNearestOrAwayFromZero)
+ /* decq719 */ self.apply128("#22080000000000000000000000000075", "75", .toNearestOrAwayFromZero)
+ /* decq720 */ self.apply128("#22080000000000000000000000000076", "76", .toNearestOrAwayFromZero)
+ /* decq721 */ self.apply128("#22080000000000000000000000000077", "77", .toNearestOrAwayFromZero)
+ /* decq722 */ self.apply128("#22080000000000000000000000000078", "78", .toNearestOrAwayFromZero)
+ /* decq723 */ self.apply128("#22080000000000000000000000000079", "79", .toNearestOrAwayFromZero)
+ /* decq730 */ self.apply128("#2208000000000000000000000000029e", "994", .toNearestOrAwayFromZero)
+ /* decq731 */ self.apply128("#2208000000000000000000000000029f", "995", .toNearestOrAwayFromZero)
+ /* decq732 */ self.apply128("#220800000000000000000000000002a0", "520", .toNearestOrAwayFromZero)
+ /* decq733 */ self.apply128("#220800000000000000000000000002a1", "521", .toNearestOrAwayFromZero)
+ /* decq740 */ self.apply128("#220800000000000000000000000003f7", "777", .toNearestOrAwayFromZero)
+ /* decq741 */ self.apply128("#220800000000000000000000000003f8", "778", .toNearestOrAwayFromZero)
+ /* decq742 */ self.apply128("#220800000000000000000000000003eb", "787", .toNearestOrAwayFromZero)
+ /* decq743 */ self.apply128("#2208000000000000000000000000037d", "877", .toNearestOrAwayFromZero)
+ /* decq744 */ self.apply128("#2208000000000000000000000000039f", "997", .toNearestOrAwayFromZero)
+ /* decq745 */ self.apply128("#220800000000000000000000000003bf", "979", .toNearestOrAwayFromZero)
+ /* decq746 */ self.apply128("#220800000000000000000000000003df", "799", .toNearestOrAwayFromZero)
+ /* decq747 */ self.apply128("#2208000000000000000000000000006e", "888", .toNearestOrAwayFromZero)
+ /* decq750 */ self.apply128("#2208000000000000000000000000006e", "888", .toNearestOrAwayFromZero)
+ /* decq751 */ self.apply128("#2208000000000000000000000000016e", "888", .toNearestOrAwayFromZero)
+ /* decq752 */ self.apply128("#2208000000000000000000000000026e", "888", .toNearestOrAwayFromZero)
+ /* decq753 */ self.apply128("#2208000000000000000000000000036e", "888", .toNearestOrAwayFromZero)
+ /* decq754 */ self.apply128("#2208000000000000000000000000006f", "889", .toNearestOrAwayFromZero)
+ /* decq755 */ self.apply128("#2208000000000000000000000000016f", "889", .toNearestOrAwayFromZero)
+ /* decq756 */ self.apply128("#2208000000000000000000000000026f", "889", .toNearestOrAwayFromZero)
+ /* decq757 */ self.apply128("#2208000000000000000000000000036f", "889", .toNearestOrAwayFromZero)
+ /* decq760 */ self.apply128("#2208000000000000000000000000007e", "898", .toNearestOrAwayFromZero)
+ /* decq761 */ self.apply128("#2208000000000000000000000000017e", "898", .toNearestOrAwayFromZero)
+ /* decq762 */ self.apply128("#2208000000000000000000000000027e", "898", .toNearestOrAwayFromZero)
+ /* decq763 */ self.apply128("#2208000000000000000000000000037e", "898", .toNearestOrAwayFromZero)
+ /* decq764 */ self.apply128("#2208000000000000000000000000007f", "899", .toNearestOrAwayFromZero)
+ /* decq765 */ self.apply128("#2208000000000000000000000000017f", "899", .toNearestOrAwayFromZero)
+ /* decq766 */ self.apply128("#2208000000000000000000000000027f", "899", .toNearestOrAwayFromZero)
+ /* decq767 */ self.apply128("#2208000000000000000000000000037f", "899", .toNearestOrAwayFromZero)
+ /* decq770 */ self.apply128("#220800000000000000000000000000ee", "988", .toNearestOrAwayFromZero)
+ /* decq771 */ self.apply128("#220800000000000000000000000001ee", "988", .toNearestOrAwayFromZero)
+ /* decq772 */ self.apply128("#220800000000000000000000000002ee", "988", .toNearestOrAwayFromZero)
+ /* decq773 */ self.apply128("#220800000000000000000000000003ee", "988", .toNearestOrAwayFromZero)
+ /* decq774 */ self.apply128("#220800000000000000000000000000ef", "989", .toNearestOrAwayFromZero)
+ /* decq775 */ self.apply128("#220800000000000000000000000001ef", "989", .toNearestOrAwayFromZero)
+ /* decq776 */ self.apply128("#220800000000000000000000000002ef", "989", .toNearestOrAwayFromZero)
+ /* decq777 */ self.apply128("#220800000000000000000000000003ef", "989", .toNearestOrAwayFromZero)
+ /* decq780 */ self.apply128("#220800000000000000000000000000fe", "998", .toNearestOrAwayFromZero)
+ /* decq781 */ self.apply128("#220800000000000000000000000001fe", "998", .toNearestOrAwayFromZero)
+ /* decq782 */ self.apply128("#220800000000000000000000000002fe", "998", .toNearestOrAwayFromZero)
+ /* decq783 */ self.apply128("#220800000000000000000000000003fe", "998", .toNearestOrAwayFromZero)
+ /* decq784 */ self.apply128("#220800000000000000000000000000ff", "999", .toNearestOrAwayFromZero)
+ /* decq785 */ self.apply128("#220800000000000000000000000001ff", "999", .toNearestOrAwayFromZero)
+ /* decq786 */ self.apply128("#220800000000000000000000000002ff", "999", .toNearestOrAwayFromZero)
+ /* decq787 */ self.apply128("#220800000000000000000000000003ff", "999", .toNearestOrAwayFromZero)
+ /* decq790 */ self.apply128("#2208000000000000000000000000c000", "30000", .toNearestOrAwayFromZero)
+ /* decq791 */ self.apply128("#22080000000000000000000000007800", "890000", .toNearestOrAwayFromZero)
+ /* decq792 */ self.apply128("30000", "#2208000000000000000000000000c000", .toNearestOrAwayFromZero)
+ /* decq793 */ self.apply128("890000", "#22080000000000000000000000007800", .toNearestOrAwayFromZero)
+ /* decq800 */ self.apply128("-2147483646", "#a208000000000000000000008c78af46", .toNearestOrAwayFromZero)
+ /* decq801 */ self.apply128("-2147483647", "#a208000000000000000000008c78af47", .toNearestOrAwayFromZero)
+ /* decq802 */ self.apply128("-2147483648", "#a208000000000000000000008c78af48", .toNearestOrAwayFromZero)
+ /* decq803 */ self.apply128("-2147483649", "#a208000000000000000000008c78af49", .toNearestOrAwayFromZero)
+ /* decq804 */ self.apply128("2147483646", "#2208000000000000000000008c78af46", .toNearestOrAwayFromZero)
+ /* decq805 */ self.apply128("2147483647", "#2208000000000000000000008c78af47", .toNearestOrAwayFromZero)
+ /* decq806 */ self.apply128("2147483648", "#2208000000000000000000008c78af48", .toNearestOrAwayFromZero)
+ /* decq807 */ self.apply128("2147483649", "#2208000000000000000000008c78af49", .toNearestOrAwayFromZero)
+ /* decq808 */ self.apply128("4294967294", "#22080000000000000000000115afb55a", .toNearestOrAwayFromZero)
+ /* decq809 */ self.apply128("4294967295", "#22080000000000000000000115afb55b", .toNearestOrAwayFromZero)
+ /* decq810 */ self.apply128("4294967296", "#22080000000000000000000115afb57a", .toNearestOrAwayFromZero)
+ /* decq811 */ self.apply128("4294967297", "#22080000000000000000000115afb57b", .toNearestOrAwayFromZero)
+ /* decq820 */ self.apply128("#a208000000000000000000008c78af46", "-2147483646", .toNearestOrAwayFromZero)
+ /* decq821 */ self.apply128("#a208000000000000000000008c78af47", "-2147483647", .toNearestOrAwayFromZero)
+ /* decq822 */ self.apply128("#a208000000000000000000008c78af48", "-2147483648", .toNearestOrAwayFromZero)
+ /* decq823 */ self.apply128("#a208000000000000000000008c78af49", "-2147483649", .toNearestOrAwayFromZero)
+ /* decq824 */ self.apply128("#2208000000000000000000008c78af46", "2147483646", .toNearestOrAwayFromZero)
+ /* decq825 */ self.apply128("#2208000000000000000000008c78af47", "2147483647", .toNearestOrAwayFromZero)
+ /* decq826 */ self.apply128("#2208000000000000000000008c78af48", "2147483648", .toNearestOrAwayFromZero)
+ /* decq827 */ self.apply128("#2208000000000000000000008c78af49", "2147483649", .toNearestOrAwayFromZero)
+ /* decq828 */ self.apply128("#22080000000000000000000115afb55a", "4294967294", .toNearestOrAwayFromZero)
+ /* decq829 */ self.apply128("#22080000000000000000000115afb55b", "4294967295", .toNearestOrAwayFromZero)
+ /* decq830 */ self.apply128("#22080000000000000000000115afb57a", "4294967296", .toNearestOrAwayFromZero)
+ /* decq831 */ self.apply128("#22080000000000000000000115afb57b", "4294967297", .toNearestOrAwayFromZero)
+ /* decq840 */ self.apply128("#2080000000000000F294000000172636", "8.81125000000001349436E-1548", .toNearestOrAwayFromZero)
+ /* decq841 */ self.apply128("#20800000000000008000000000000000", "8.000000000000000000E-1550", .toNearestOrAwayFromZero)
+ /* decq842 */ self.apply128("#1EF98490000000010F6E4E0000000000", "7.049000000000010795488000000000000E-3097", .toNearestOrAwayFromZero)
+ /* dqadd37972 */ self.apply128("9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqadd37985 */ self.apply128("-9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqadd7972 */ self.apply128("9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqadd7985 */ self.apply128("-9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqcan001 */ self.apply128("9.999999999999999999999999999999999E+6144", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan002 */ self.apply128("0", "#22080000000000000000000000000000", .toNearestOrEven)
+ /* dqcan003 */ self.apply128("1", "#22080000000000000000000000000001", .toNearestOrEven)
+ /* dqcan004 */ self.apply128("-1", "#a2080000000000000000000000000001", .toNearestOrEven)
+ /* dqcan005 */ self.apply128("Infinity", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan006 */ self.apply128("-Infinity", "#f8000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan007 */ self.apply128("-NaN", "#fc000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan008 */ self.apply128("-sNaN", "#fe000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan009 */ self.apply128("NaN(0x314dc6448d9338c15b09ffffffff)", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan010 */ self.apply128("sNaN(0x314dc6448d9338c15b09ffffffff)", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan012 */ self.apply128("7.50", "#220780000000000000000000000003d0", .toNearestOrEven)
+ /* dqcan013 */ self.apply128("9.99", "#220780000000000000000000000000ff", .toNearestOrEven)
+ }
+
+ private func apply128(
+ _ arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ if let result: Decimal128 = self.parseDecimal(arg0, rounding: rounding, status: &status, file, line) {
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ } else {
+ XCTFail(arg0)
+ }
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveLogScaleTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveLogScaleTests.swift
new file mode 100644
index 0000000..82f977a
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveLogScaleTests.swift
@@ -0,0 +1,703 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveLogScaleTests: XCTestCase, SpeleotroveMixin {
+
+ // MARK: - Logb
+
+ func test_logb64() {
+ /* ddlogb000 */ self.logb64("0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* ddlogb001 */ self.logb64("1E-398", "-398", .toNearestOrEven)
+ /* ddlogb002 */ self.logb64("1E-383", "-383", .toNearestOrEven)
+ /* ddlogb003 */ self.logb64("0.001", "-3", .toNearestOrEven)
+ /* ddlogb004 */ self.logb64("0.03", "-2", .toNearestOrEven)
+ /* ddlogb005 */ self.logb64("1", "0", .toNearestOrEven)
+ /* ddlogb006 */ self.logb64("2", "0", .toNearestOrEven)
+ /* ddlogb0061 */ self.logb64("1", "0", .toNearestOrEven)
+ /* ddlogb0062 */ self.logb64("1.0", "0", .toNearestOrEven)
+ /* ddlogb0063 */ self.logb64("1.000000000000000", "0", .toNearestOrEven)
+ /* ddlogb007 */ self.logb64("2.5", "0", .toNearestOrEven)
+ /* ddlogb008 */ self.logb64("2.500", "0", .toNearestOrEven)
+ /* ddlogb009 */ self.logb64("10", "1", .toNearestOrEven)
+ /* ddlogb010 */ self.logb64("70", "1", .toNearestOrEven)
+ /* ddlogb011 */ self.logb64("100", "2", .toNearestOrEven)
+ /* ddlogb012 */ self.logb64("333", "2", .toNearestOrEven)
+ /* ddlogb013 */ self.logb64("9E+384", "384", .toNearestOrEven)
+ /* ddlogb014 */ self.logb64("+Infinity", "Infinity", .toNearestOrEven)
+ /* ddlogb021 */ self.logb64("-0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* ddlogb022 */ self.logb64("-1E-398", "-398", .toNearestOrEven)
+ /* ddlogb023 */ self.logb64("-9E-383", "-383", .toNearestOrEven)
+ /* ddlogb024 */ self.logb64("-0.001", "-3", .toNearestOrEven)
+ /* ddlogb025 */ self.logb64("-1", "0", .toNearestOrEven)
+ /* ddlogb026 */ self.logb64("-2", "0", .toNearestOrEven)
+ /* ddlogb027 */ self.logb64("-10", "1", .toNearestOrEven)
+ /* ddlogb028 */ self.logb64("-70", "1", .toNearestOrEven)
+ /* ddlogb029 */ self.logb64("-100", "2", .toNearestOrEven)
+ /* ddlogb030 */ self.logb64("-9E+384", "384", .toNearestOrEven)
+ /* ddlogb031 */ self.logb64("-Infinity", "Infinity", .toNearestOrEven)
+ /* ddlogb1100 */ self.logb64("1", "0", .toNearestOrEven)
+ /* ddlogb1101 */ self.logb64("10", "1", .toNearestOrEven)
+ /* ddlogb1102 */ self.logb64("100", "2", .toNearestOrEven)
+ /* ddlogb1103 */ self.logb64("1000", "3", .toNearestOrEven)
+ /* ddlogb1104 */ self.logb64("10000", "4", .toNearestOrEven)
+ /* ddlogb1105 */ self.logb64("100000", "5", .toNearestOrEven)
+ /* ddlogb1106 */ self.logb64("1000000", "6", .toNearestOrEven)
+ /* ddlogb1107 */ self.logb64("10000000", "7", .toNearestOrEven)
+ /* ddlogb1108 */ self.logb64("100000000", "8", .toNearestOrEven)
+ /* ddlogb1109 */ self.logb64("1000000000", "9", .toNearestOrEven)
+ /* ddlogb111 */ self.logb64("0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* ddlogb1110 */ self.logb64("10000000000", "10", .toNearestOrEven)
+ /* ddlogb1111 */ self.logb64("100000000000", "11", .toNearestOrEven)
+ /* ddlogb1112 */ self.logb64("1000000000000", "12", .toNearestOrEven)
+ /* ddlogb1113 */ self.logb64("0.00000000001", "-11", .toNearestOrEven)
+ /* ddlogb1114 */ self.logb64("0.0000000001", "-10", .toNearestOrEven)
+ /* ddlogb1115 */ self.logb64("0.000000001", "-9", .toNearestOrEven)
+ /* ddlogb1116 */ self.logb64("0.00000001", "-8", .toNearestOrEven)
+ /* ddlogb1117 */ self.logb64("0.0000001", "-7", .toNearestOrEven)
+ /* ddlogb1118 */ self.logb64("0.000001", "-6", .toNearestOrEven)
+ /* ddlogb1119 */ self.logb64("0.00001", "-5", .toNearestOrEven)
+ /* ddlogb112 */ self.logb64("-0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* ddlogb1120 */ self.logb64("0.0001", "-4", .toNearestOrEven)
+ /* ddlogb1121 */ self.logb64("0.001", "-3", .toNearestOrEven)
+ /* ddlogb1122 */ self.logb64("0.01", "-2", .toNearestOrEven)
+ /* ddlogb1123 */ self.logb64("0.1", "-1", .toNearestOrEven)
+ /* ddlogb1124 */ self.logb64("1E-99", "-99", .toNearestOrEven)
+ /* ddlogb1125 */ self.logb64("1E-100", "-100", .toNearestOrEven)
+ /* ddlogb1126 */ self.logb64("1E-383", "-383", .toNearestOrEven)
+ /* ddlogb1127 */ self.logb64("1E-299", "-299", .toNearestOrEven)
+ /* ddlogb113 */ self.logb64("0E+4", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* ddlogb114 */ self.logb64("-0E+4", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* ddlogb115 */ self.logb64("0.0000", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* ddlogb116 */ self.logb64("-0.0000", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* ddlogb117 */ self.logb64("0E-141", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* ddlogb118 */ self.logb64("-0E-141", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* ddlogb121 */ self.logb64("268268268", "8", .toNearestOrEven)
+ /* ddlogb122 */ self.logb64("-268268268", "8", .toNearestOrEven)
+ /* ddlogb123 */ self.logb64("134134134", "8", .toNearestOrEven)
+ /* ddlogb124 */ self.logb64("-134134134", "8", .toNearestOrEven)
+ /* ddlogb131 */ self.logb64("9.999999999999999E+384", "384", .toNearestOrEven)
+ /* ddlogb132 */ self.logb64("1E-383", "-383", .toNearestOrEven)
+ /* ddlogb133 */ self.logb64("1.000000000000000E-383", "-383", .toNearestOrEven)
+ /* ddlogb134 */ self.logb64("1E-398", "-398", .toNearestOrEven)
+ /* ddlogb135 */ self.logb64("-1E-398", "-398", .toNearestOrEven)
+ /* ddlogb136 */ self.logb64("-1.000000000000000E-383", "-383", .toNearestOrEven)
+ /* ddlogb137 */ self.logb64("-1E-383", "-383", .toNearestOrEven)
+ /* ddlogb138 */ self.logb64("-9.999999999999999E+384", "384", .toNearestOrEven)
+ /* ddlogb1400 */ self.logb64("10E-3", "-2", .toNearestOrEven)
+ /* ddlogb1401 */ self.logb64("10E-2", "-1", .toNearestOrEven)
+ /* ddlogb1402 */ self.logb64("100E-2", "0", .toNearestOrEven)
+ /* ddlogb1403 */ self.logb64("1000E-2", "1", .toNearestOrEven)
+ /* ddlogb1404 */ self.logb64("10000E-2", "2", .toNearestOrEven)
+ /* ddlogb1405 */ self.logb64("10E-1", "0", .toNearestOrEven)
+ /* ddlogb1406 */ self.logb64("100E-1", "1", .toNearestOrEven)
+ /* ddlogb1407 */ self.logb64("1000E-1", "2", .toNearestOrEven)
+ /* ddlogb1408 */ self.logb64("10000E-1", "3", .toNearestOrEven)
+ /* ddlogb1409 */ self.logb64("10E0", "1", .toNearestOrEven)
+ /* ddlogb1410 */ self.logb64("100E0", "2", .toNearestOrEven)
+ /* ddlogb1411 */ self.logb64("1000E0", "3", .toNearestOrEven)
+ /* ddlogb1412 */ self.logb64("10000E0", "4", .toNearestOrEven)
+ /* ddlogb1413 */ self.logb64("10E1", "2", .toNearestOrEven)
+ /* ddlogb1414 */ self.logb64("100E1", "3", .toNearestOrEven)
+ /* ddlogb1415 */ self.logb64("1000E1", "4", .toNearestOrEven)
+ /* ddlogb1416 */ self.logb64("10000E1", "5", .toNearestOrEven)
+ /* ddlogb1417 */ self.logb64("10E2", "3", .toNearestOrEven)
+ /* ddlogb1418 */ self.logb64("100E2", "4", .toNearestOrEven)
+ /* ddlogb1419 */ self.logb64("1000E2", "5", .toNearestOrEven)
+ /* ddlogb1420 */ self.logb64("10000E2", "6", .toNearestOrEven)
+ /* ddlogb820 */ self.logb64("Infinity", "Infinity", .toNearestOrEven)
+ /* ddlogb821 */ self.logb64("0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* ddlogb822 */ self.logb64("NaN", "NaN", .toNearestOrEven)
+ /* ddlogb823 */ self.logb64("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddlogb824 */ self.logb64("sNaN(0x7b)", "NaN(0x7b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddlogb825 */ self.logb64("-sNaN(0x141)", "-NaN(0x141)", .toNearestOrEven, .isInvalidOperation)
+ /* ddlogb826 */ self.logb64("NaN(0x1c8)", "NaN(0x1c8)", .toNearestOrEven)
+ /* ddlogb827 */ self.logb64("-NaN(0x28e)", "-NaN(0x28e)", .toNearestOrEven)
+ /* ddlogb828 */ self.logb64("NaN(0x1)", "NaN(0x1)", .toNearestOrEven)
+ }
+
+ private func logb64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = self.logB(arg0, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_logb128() {
+ /* dqlogb000 */ self.logb128("0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqlogb001 */ self.logb128("1E-6176", "-6176", .toNearestOrEven)
+ /* dqlogb002 */ self.logb128("1E-6143", "-6143", .toNearestOrEven)
+ /* dqlogb003 */ self.logb128("0.001", "-3", .toNearestOrEven)
+ /* dqlogb004 */ self.logb128("0.03", "-2", .toNearestOrEven)
+ /* dqlogb005 */ self.logb128("1", "0", .toNearestOrEven)
+ /* dqlogb006 */ self.logb128("2", "0", .toNearestOrEven)
+ /* dqlogb0061 */ self.logb128("1", "0", .toNearestOrEven)
+ /* dqlogb0062 */ self.logb128("1.0", "0", .toNearestOrEven)
+ /* dqlogb0063 */ self.logb128("1.000000000000000", "0", .toNearestOrEven)
+ /* dqlogb007 */ self.logb128("2.5", "0", .toNearestOrEven)
+ /* dqlogb008 */ self.logb128("2.50", "0", .toNearestOrEven)
+ /* dqlogb009 */ self.logb128("2.500", "0", .toNearestOrEven)
+ /* dqlogb010 */ self.logb128("10", "1", .toNearestOrEven)
+ /* dqlogb011 */ self.logb128("70", "1", .toNearestOrEven)
+ /* dqlogb012 */ self.logb128("100", "2", .toNearestOrEven)
+ /* dqlogb013 */ self.logb128("250", "2", .toNearestOrEven)
+ /* dqlogb014 */ self.logb128("9E+6144", "6144", .toNearestOrEven)
+ /* dqlogb015 */ self.logb128("+Infinity", "Infinity", .toNearestOrEven)
+ /* dqlogb021 */ self.logb128("-0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqlogb022 */ self.logb128("-1E-6176", "-6176", .toNearestOrEven)
+ /* dqlogb023 */ self.logb128("-9E-6143", "-6143", .toNearestOrEven)
+ /* dqlogb024 */ self.logb128("-0.001", "-3", .toNearestOrEven)
+ /* dqlogb025 */ self.logb128("-1", "0", .toNearestOrEven)
+ /* dqlogb026 */ self.logb128("-2", "0", .toNearestOrEven)
+ /* dqlogb027 */ self.logb128("-10", "1", .toNearestOrEven)
+ /* dqlogb028 */ self.logb128("-70", "1", .toNearestOrEven)
+ /* dqlogb029 */ self.logb128("-100", "2", .toNearestOrEven)
+ /* dqlogb030 */ self.logb128("-9E+6144", "6144", .toNearestOrEven)
+ /* dqlogb031 */ self.logb128("-Infinity", "Infinity", .toNearestOrEven)
+ /* dqlogb1100 */ self.logb128("1", "0", .toNearestOrEven)
+ /* dqlogb1101 */ self.logb128("10", "1", .toNearestOrEven)
+ /* dqlogb1102 */ self.logb128("100", "2", .toNearestOrEven)
+ /* dqlogb1103 */ self.logb128("1000", "3", .toNearestOrEven)
+ /* dqlogb1104 */ self.logb128("10000", "4", .toNearestOrEven)
+ /* dqlogb1105 */ self.logb128("100000", "5", .toNearestOrEven)
+ /* dqlogb1106 */ self.logb128("1000000", "6", .toNearestOrEven)
+ /* dqlogb1107 */ self.logb128("10000000", "7", .toNearestOrEven)
+ /* dqlogb1108 */ self.logb128("100000000", "8", .toNearestOrEven)
+ /* dqlogb1109 */ self.logb128("1000000000", "9", .toNearestOrEven)
+ /* dqlogb111 */ self.logb128("0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqlogb1110 */ self.logb128("10000000000", "10", .toNearestOrEven)
+ /* dqlogb1111 */ self.logb128("100000000000", "11", .toNearestOrEven)
+ /* dqlogb1112 */ self.logb128("1000000000000", "12", .toNearestOrEven)
+ /* dqlogb1113 */ self.logb128("0.00000000001", "-11", .toNearestOrEven)
+ /* dqlogb1114 */ self.logb128("0.0000000001", "-10", .toNearestOrEven)
+ /* dqlogb1115 */ self.logb128("0.000000001", "-9", .toNearestOrEven)
+ /* dqlogb1116 */ self.logb128("0.00000001", "-8", .toNearestOrEven)
+ /* dqlogb1117 */ self.logb128("0.0000001", "-7", .toNearestOrEven)
+ /* dqlogb1118 */ self.logb128("0.000001", "-6", .toNearestOrEven)
+ /* dqlogb1119 */ self.logb128("0.00001", "-5", .toNearestOrEven)
+ /* dqlogb112 */ self.logb128("-0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqlogb1120 */ self.logb128("0.0001", "-4", .toNearestOrEven)
+ /* dqlogb1121 */ self.logb128("0.001", "-3", .toNearestOrEven)
+ /* dqlogb1122 */ self.logb128("0.01", "-2", .toNearestOrEven)
+ /* dqlogb1123 */ self.logb128("0.1", "-1", .toNearestOrEven)
+ /* dqlogb1124 */ self.logb128("1E-99", "-99", .toNearestOrEven)
+ /* dqlogb1125 */ self.logb128("1E-100", "-100", .toNearestOrEven)
+ /* dqlogb1126 */ self.logb128("1E-6143", "-6143", .toNearestOrEven)
+ /* dqlogb1127 */ self.logb128("1E-299", "-299", .toNearestOrEven)
+ /* dqlogb113 */ self.logb128("0E+4", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqlogb114 */ self.logb128("-0E+4", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqlogb115 */ self.logb128("0.0000", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqlogb116 */ self.logb128("-0.0000", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqlogb117 */ self.logb128("0E-141", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqlogb118 */ self.logb128("-0E-141", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqlogb121 */ self.logb128("268268268", "8", .toNearestOrEven)
+ /* dqlogb122 */ self.logb128("-268268268", "8", .toNearestOrEven)
+ /* dqlogb123 */ self.logb128("134134134", "8", .toNearestOrEven)
+ /* dqlogb124 */ self.logb128("-134134134", "8", .toNearestOrEven)
+ /* dqlogb131 */ self.logb128("9.999999999999999999999999999999999E+6144", "6144", .toNearestOrEven)
+ /* dqlogb132 */ self.logb128("1E-6143", "-6143", .toNearestOrEven)
+ /* dqlogb133 */ self.logb128("1.000000000000000000000000000000000E-6143", "-6143", .toNearestOrEven)
+ /* dqlogb134 */ self.logb128("1E-6176", "-6176", .toNearestOrEven)
+ /* dqlogb135 */ self.logb128("-1E-6176", "-6176", .toNearestOrEven)
+ /* dqlogb136 */ self.logb128("-1.000000000000000000000000000000000E-6143", "-6143", .toNearestOrEven)
+ /* dqlogb137 */ self.logb128("-1E-6143", "-6143", .toNearestOrEven)
+ /* dqlogb1400 */ self.logb128("10E-3", "-2", .toNearestOrEven)
+ /* dqlogb1401 */ self.logb128("10E-2", "-1", .toNearestOrEven)
+ /* dqlogb1402 */ self.logb128("100E-2", "0", .toNearestOrEven)
+ /* dqlogb1403 */ self.logb128("1000E-2", "1", .toNearestOrEven)
+ /* dqlogb1404 */ self.logb128("10000E-2", "2", .toNearestOrEven)
+ /* dqlogb1405 */ self.logb128("10E-1", "0", .toNearestOrEven)
+ /* dqlogb1406 */ self.logb128("100E-1", "1", .toNearestOrEven)
+ /* dqlogb1407 */ self.logb128("1000E-1", "2", .toNearestOrEven)
+ /* dqlogb1408 */ self.logb128("10000E-1", "3", .toNearestOrEven)
+ /* dqlogb1409 */ self.logb128("10E0", "1", .toNearestOrEven)
+ /* dqlogb1410 */ self.logb128("100E0", "2", .toNearestOrEven)
+ /* dqlogb1411 */ self.logb128("1000E0", "3", .toNearestOrEven)
+ /* dqlogb1412 */ self.logb128("10000E0", "4", .toNearestOrEven)
+ /* dqlogb1413 */ self.logb128("10E1", "2", .toNearestOrEven)
+ /* dqlogb1414 */ self.logb128("100E1", "3", .toNearestOrEven)
+ /* dqlogb1415 */ self.logb128("1000E1", "4", .toNearestOrEven)
+ /* dqlogb1416 */ self.logb128("10000E1", "5", .toNearestOrEven)
+ /* dqlogb1417 */ self.logb128("10E2", "3", .toNearestOrEven)
+ /* dqlogb1418 */ self.logb128("100E2", "4", .toNearestOrEven)
+ /* dqlogb1419 */ self.logb128("1000E2", "5", .toNearestOrEven)
+ /* dqlogb1420 */ self.logb128("10000E2", "6", .toNearestOrEven)
+ /* dqlogb1614 */ self.logb128("-9.999999999999999999999999999999999E+6144", "6144", .toNearestOrEven)
+ /* dqlogb820 */ self.logb128("Infinity", "Infinity", .toNearestOrEven)
+ /* dqlogb821 */ self.logb128("0", "-Infinity", .toNearestOrEven, .isDivisionByZero)
+ /* dqlogb822 */ self.logb128("NaN", "NaN", .toNearestOrEven)
+ /* dqlogb823 */ self.logb128("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqlogb824 */ self.logb128("sNaN(0x7b)", "NaN(0x7b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqlogb825 */ self.logb128("-sNaN(0x141)", "-NaN(0x141)", .toNearestOrEven, .isInvalidOperation)
+ /* dqlogb826 */ self.logb128("NaN(0x1c8)", "NaN(0x1c8)", .toNearestOrEven)
+ /* dqlogb827 */ self.logb128("-NaN(0x28e)", "-NaN(0x28e)", .toNearestOrEven)
+ /* dqlogb828 */ self.logb128("NaN(0x1)", "NaN(0x1)", .toNearestOrEven)
+ }
+
+ private func logb128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = self.logB(arg0, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ // MARK: - Scaleb
+
+ func test_scaleb64() {
+ /* ddscb001 */ self.scaleb64("7.50", "10", "7.50E+10", .toNearestOrEven)
+ /* ddscb002 */ self.scaleb64("7.50", "3", "7.50E+3", .toNearestOrEven)
+ /* ddscb003 */ self.scaleb64("7.50", "2", "750", .toNearestOrEven)
+ /* ddscb004 */ self.scaleb64("7.50", "1", "75.0", .toNearestOrEven)
+ /* ddscb005 */ self.scaleb64("7.50", "0", "7.50", .toNearestOrEven)
+ /* ddscb006 */ self.scaleb64("7.50", "-1", "0.750", .toNearestOrEven)
+ /* ddscb007 */ self.scaleb64("7.50", "-2", "0.0750", .toNearestOrEven)
+ /* ddscb008 */ self.scaleb64("7.50", "-10", "7.50E-10", .toNearestOrEven)
+ /* ddscb009 */ self.scaleb64("-7.50", "3", "-7.50E+3", .toNearestOrEven)
+ /* ddscb010 */ self.scaleb64("-7.50", "2", "-750", .toNearestOrEven)
+ /* ddscb011 */ self.scaleb64("-7.50", "1", "-75.0", .toNearestOrEven)
+ /* ddscb012 */ self.scaleb64("-7.50", "0", "-7.50", .toNearestOrEven)
+ /* ddscb013 */ self.scaleb64("-7.50", "-1", "-0.750", .toNearestOrEven)
+ /* ddscb014 */ self.scaleb64("Infinity", "1", "Infinity", .toNearestOrEven)
+ /* ddscb015 */ self.scaleb64("-Infinity", "2", "-Infinity", .toNearestOrEven)
+ /* ddscb016 */ self.scaleb64("Infinity", "-1", "Infinity", .toNearestOrEven)
+ /* ddscb017 */ self.scaleb64("-Infinity", "-2", "-Infinity", .toNearestOrEven)
+ /* ddscb018 */ self.scaleb64("10", "Infinity", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb019 */ self.scaleb64("10", "-Infinity", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb021 */ self.scaleb64("NaN", "1", "NaN", .toNearestOrEven)
+ /* ddscb022 */ self.scaleb64("-NaN", "-1", "-NaN", .toNearestOrEven)
+ /* ddscb023 */ self.scaleb64("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb024 */ self.scaleb64("-sNaN", "1", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb025 */ self.scaleb64("4", "NaN", "NaN", .toNearestOrEven)
+ /* ddscb026 */ self.scaleb64("-Inf", "-NaN", "-NaN", .toNearestOrEven)
+ /* ddscb027 */ self.scaleb64("4", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb028 */ self.scaleb64("Inf", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb030 */ self.scaleb64("1.23", "1", "12.3", .toNearestOrEven)
+ /* ddscb031 */ self.scaleb64("1.23", "1.00", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb032 */ self.scaleb64("1.23", "1.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb033 */ self.scaleb64("1.23", "1.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb034 */ self.scaleb64("1.23", "0.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb035 */ self.scaleb64("1.23", "0.11", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb036 */ self.scaleb64("1.23", "0.999999999", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb037 */ self.scaleb64("1.23", "-1", "0.123", .toNearestOrEven)
+ /* ddscb038 */ self.scaleb64("1.23", "-1.00", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb039 */ self.scaleb64("1.23", "-1.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb040 */ self.scaleb64("1.23", "-1.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb041 */ self.scaleb64("1.23", "-0.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb042 */ self.scaleb64("1.23", "-0.11", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb043 */ self.scaleb64("1.23", "-0.999999999", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb044 */ self.scaleb64("1.23", "0.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb045 */ self.scaleb64("1.23", "1E+1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb046 */ self.scaleb64("1.23", "1.1234E+6", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb047 */ self.scaleb64("1.23", "1.123E+4", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb051 */ self.scaleb64("7", "-2", "0.07", .toNearestOrEven)
+ /* ddscb052 */ self.scaleb64("-7", "-2", "-0.07", .toNearestOrEven)
+ /* ddscb053 */ self.scaleb64("75", "-2", "0.75", .toNearestOrEven)
+ /* ddscb054 */ self.scaleb64("-75", "-2", "-0.75", .toNearestOrEven)
+ /* ddscb055 */ self.scaleb64("7.50", "-2", "0.0750", .toNearestOrEven)
+ /* ddscb056 */ self.scaleb64("-7.50", "-2", "-0.0750", .toNearestOrEven)
+ /* ddscb057 */ self.scaleb64("7.500", "-2", "0.07500", .toNearestOrEven)
+ /* ddscb058 */ self.scaleb64("-7.500", "-2", "-0.07500", .toNearestOrEven)
+ /* ddscb061 */ self.scaleb64("7", "-1", "0.7", .toNearestOrEven)
+ /* ddscb062 */ self.scaleb64("-7", "-1", "-0.7", .toNearestOrEven)
+ /* ddscb063 */ self.scaleb64("75", "-1", "7.5", .toNearestOrEven)
+ /* ddscb064 */ self.scaleb64("-75", "-1", "-7.5", .toNearestOrEven)
+ /* ddscb065 */ self.scaleb64("7.50", "-1", "0.750", .toNearestOrEven)
+ /* ddscb066 */ self.scaleb64("-7.50", "-1", "-0.750", .toNearestOrEven)
+ /* ddscb067 */ self.scaleb64("7.500", "-1", "0.7500", .toNearestOrEven)
+ /* ddscb068 */ self.scaleb64("-7.500", "-1", "-0.7500", .toNearestOrEven)
+ /* ddscb071 */ self.scaleb64("7", "0", "7", .toNearestOrEven)
+ /* ddscb072 */ self.scaleb64("-7", "0", "-7", .toNearestOrEven)
+ /* ddscb073 */ self.scaleb64("75", "0", "75", .toNearestOrEven)
+ /* ddscb074 */ self.scaleb64("-75", "0", "-75", .toNearestOrEven)
+ /* ddscb075 */ self.scaleb64("7.50", "0", "7.50", .toNearestOrEven)
+ /* ddscb076 */ self.scaleb64("-7.50", "0", "-7.50", .toNearestOrEven)
+ /* ddscb077 */ self.scaleb64("7.500", "0", "7.500", .toNearestOrEven)
+ /* ddscb078 */ self.scaleb64("-7.500", "0", "-7.500", .toNearestOrEven)
+ /* ddscb081 */ self.scaleb64("7", "1", "7E+1", .toNearestOrEven)
+ /* ddscb082 */ self.scaleb64("-7", "1", "-7E+1", .toNearestOrEven)
+ /* ddscb083 */ self.scaleb64("75", "1", "7.5E+2", .toNearestOrEven)
+ /* ddscb084 */ self.scaleb64("-75", "1", "-7.5E+2", .toNearestOrEven)
+ /* ddscb085 */ self.scaleb64("7.50", "1", "75.0", .toNearestOrEven)
+ /* ddscb086 */ self.scaleb64("-7.50", "1", "-75.0", .toNearestOrEven)
+ /* ddscb087 */ self.scaleb64("7.500", "1", "75.00", .toNearestOrEven)
+ /* ddscb088 */ self.scaleb64("-7.500", "1", "-75.00", .toNearestOrEven)
+ /* ddscb091 */ self.scaleb64("7", "2", "7E+2", .toNearestOrEven)
+ /* ddscb092 */ self.scaleb64("-7", "2", "-7E+2", .toNearestOrEven)
+ /* ddscb093 */ self.scaleb64("75", "2", "7.5E+3", .toNearestOrEven)
+ /* ddscb094 */ self.scaleb64("-75", "2", "-7.5E+3", .toNearestOrEven)
+ /* ddscb095 */ self.scaleb64("7.50", "2", "750", .toNearestOrEven)
+ /* ddscb096 */ self.scaleb64("-7.50", "2", "-750", .toNearestOrEven)
+ /* ddscb097 */ self.scaleb64("7.500", "2", "750.0", .toNearestOrEven)
+ /* ddscb098 */ self.scaleb64("-7.500", "2", "-750.0", .toNearestOrEven)
+ /* ddscb111 */ self.scaleb64("0", "1", "0E+1", .toNearestOrEven)
+ /* ddscb112 */ self.scaleb64("-0", "2", "-0E+2", .toNearestOrEven)
+ /* ddscb113 */ self.scaleb64("0E+4", "3", "0E+7", .toNearestOrEven)
+ /* ddscb114 */ self.scaleb64("-0E+4", "4", "-0E+8", .toNearestOrEven)
+ /* ddscb115 */ self.scaleb64("0.0000", "5", "0E+1", .toNearestOrEven)
+ /* ddscb116 */ self.scaleb64("-0.0000", "6", "-0E+2", .toNearestOrEven)
+ /* ddscb117 */ self.scaleb64("0E-141", "7", "0E-134", .toNearestOrEven)
+ /* ddscb118 */ self.scaleb64("-0E-141", "8", "-0E-133", .toNearestOrEven)
+ /* ddscb120 */ self.scaleb64("1.23", "799", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddscb121 */ self.scaleb64("1.23", "800", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddscb122 */ self.scaleb64("1.23", "801", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb123 */ self.scaleb64("1.23", "802", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb124 */ self.scaleb64("1.23", "-799", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddscb125 */ self.scaleb64("1.23", "-800", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddscb126 */ self.scaleb64("1.23", "-801", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb127 */ self.scaleb64("1.23", "-802", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb132 */ self.scaleb64("9.999999999999999E+384", "+384", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddscb133 */ self.scaleb64("9.999999999999999E+384", "+10", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddscb134 */ self.scaleb64("9.999999999999999E+384", "+1", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddscb135 */ self.scaleb64("9.999999999999999E+384", "0", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddscb136 */ self.scaleb64("9.999999999999999E+384", "-1", "9.999999999999999E+383", .toNearestOrEven)
+ /* ddscb137 */ self.scaleb64("1E-383", "+1", "1E-382", .toNearestOrEven)
+ /* ddscb138 */ self.scaleb64("1E-383", "-0", "1E-383", .toNearestOrEven)
+ /* ddscb139 */ self.scaleb64("1E-383", "-1", "1E-384", .toNearestOrEven)
+ /* ddscb140 */ self.scaleb64("1.000000000000000E-383", "+1", "1.000000000000000E-382", .toNearestOrEven)
+ /* ddscb141 */ self.scaleb64("1.000000000000000E-383", "0", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddscb142 */ self.scaleb64("1.000000000000000E-383", "-1", "1.00000000000000E-384", .toNearestOrEven)
+ /* ddscb143 */ self.scaleb64("1E-398", "+1", "1E-397", .toNearestOrEven)
+ /* ddscb144 */ self.scaleb64("1E-398", "-0", "1E-398", .toNearestOrEven)
+ /* ddscb145 */ self.scaleb64("1E-398", "-1", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddscb150 */ self.scaleb64("-1E-398", "+1", "-1E-397", .toNearestOrEven)
+ /* ddscb151 */ self.scaleb64("-1E-398", "-0", "-1E-398", .toNearestOrEven)
+ /* ddscb152 */ self.scaleb64("-1E-398", "-1", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddscb153 */ self.scaleb64("-1.000000000000000E-383", "+1", "-1.000000000000000E-382", .toNearestOrEven)
+ /* ddscb154 */ self.scaleb64("-1.000000000000000E-383", "+0", "-1.000000000000000E-383", .toNearestOrEven)
+ /* ddscb155 */ self.scaleb64("-1.000000000000000E-383", "-1", "-1.00000000000000E-384", .toNearestOrEven)
+ /* ddscb156 */ self.scaleb64("-1E-383", "+1", "-1E-382", .toNearestOrEven)
+ /* ddscb157 */ self.scaleb64("-1E-383", "-0", "-1E-383", .toNearestOrEven)
+ /* ddscb158 */ self.scaleb64("-1E-383", "-1", "-1E-384", .toNearestOrEven)
+ /* ddscb159 */ self.scaleb64("-9.999999999999999E+384", "+1", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddscb160 */ self.scaleb64("-9.999999999999999E+384", "+0", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddscb161 */ self.scaleb64("-9.999999999999999E+384", "-1", "-9.999999999999999E+383", .toNearestOrEven)
+ /* ddscb162 */ self.scaleb64("-9E+384", "+1", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddscb163 */ self.scaleb64("-1E+384", "+1", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddscb171 */ self.scaleb64("1000E+365", "+1", "1.000E+369", .toNearestOrEven)
+ /* ddscb172 */ self.scaleb64("1000E+366", "+1", "1.000E+370", .toNearestOrEven)
+ /* ddscb173 */ self.scaleb64("1000E+367", "+1", "1.000E+371", .toNearestOrEven)
+ /* ddscb174 */ self.scaleb64("1000E+368", "+1", "1.000E+372", .toNearestOrEven)
+ /* ddscb175 */ self.scaleb64("1000E+369", "+1", "1.0000E+373", .toNearestOrEven)
+ /* ddscb176 */ self.scaleb64("1000E+370", "+1", "1.00000E+374", .toNearestOrEven)
+ /* ddscb177 */ self.scaleb64("1000E+371", "+1", "1.000000E+375", .toNearestOrEven)
+ /* ddscb178 */ self.scaleb64("1000E+372", "+1", "1.0000000E+376", .toNearestOrEven)
+ /* ddscb179 */ self.scaleb64("1000E+373", "+1", "1.00000000E+377", .toNearestOrEven)
+ /* ddscb180 */ self.scaleb64("1000E+374", "+1", "1.000000000E+378", .toNearestOrEven)
+ /* ddscb181 */ self.scaleb64("1000E+375", "+1", "1.0000000000E+379", .toNearestOrEven)
+ /* ddscb182 */ self.scaleb64("1000E+376", "+1", "1.00000000000E+380", .toNearestOrEven)
+ /* ddscb183 */ self.scaleb64("1000E+377", "+1", "1.000000000000E+381", .toNearestOrEven)
+ /* ddscb184 */ self.scaleb64("1000E+378", "+1", "1.0000000000000E+382", .toNearestOrEven)
+ /* ddscb185 */ self.scaleb64("1000E+379", "+1", "1.00000000000000E+383", .toNearestOrEven)
+ /* ddscb186 */ self.scaleb64("1000E+380", "+1", "1.000000000000000E+384", .toNearestOrEven)
+ /* ddscb187 */ self.scaleb64("1000E+381", "+1", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddscb201 */ self.scaleb64("1.000000000000000E-383", "0", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddscb202 */ self.scaleb64("1.000000000000000E-383", "-1", "1.00000000000000E-384", .toNearestOrEven)
+ /* ddscb203 */ self.scaleb64("1.000000000000000E-383", "-2", "1.0000000000000E-385", .toNearestOrEven)
+ /* ddscb204 */ self.scaleb64("1.000000000000000E-383", "-3", "1.000000000000E-386", .toNearestOrEven)
+ /* ddscb205 */ self.scaleb64("1.000000000000000E-383", "-4", "1.00000000000E-387", .toNearestOrEven)
+ /* ddscb206 */ self.scaleb64("1.000000000000000E-383", "-5", "1.0000000000E-388", .toNearestOrEven)
+ /* ddscb207 */ self.scaleb64("1.000000000000000E-383", "-6", "1.000000000E-389", .toNearestOrEven)
+ /* ddscb208 */ self.scaleb64("1.000000000000000E-383", "-7", "1.00000000E-390", .toNearestOrEven)
+ /* ddscb209 */ self.scaleb64("1.000000000000000E-383", "-8", "1.0000000E-391", .toNearestOrEven)
+ /* ddscb210 */ self.scaleb64("1.000000000000000E-383", "-9", "1.000000E-392", .toNearestOrEven)
+ /* ddscb211 */ self.scaleb64("1.000000000000000E-383", "-10", "1.00000E-393", .toNearestOrEven)
+ /* ddscb212 */ self.scaleb64("1.000000000000000E-383", "-11", "1.0000E-394", .toNearestOrEven)
+ /* ddscb213 */ self.scaleb64("1.000000000000000E-383", "-12", "1.000E-395", .toNearestOrEven)
+ /* ddscb214 */ self.scaleb64("1.000000000000000E-383", "-13", "1.00E-396", .toNearestOrEven)
+ /* ddscb215 */ self.scaleb64("1.000000000000000E-383", "-14", "1.0E-397", .toNearestOrEven)
+ /* ddscb216 */ self.scaleb64("1.000000000000000E-383", "-15", "1E-398", .toNearestOrEven)
+ /* ddscb217 */ self.scaleb64("1.000000000000000E-383", "-16", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddscb218 */ self.scaleb64("1.000000000000000E-383", "-17", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddscb861 */ self.scaleb64("NaN(0x1)", "-Inf", "NaN(0x1)", .toNearestOrEven)
+ /* ddscb862 */ self.scaleb64("-NaN(0x2)", "-1000", "-NaN(0x2)", .toNearestOrEven)
+ /* ddscb863 */ self.scaleb64("NaN(0x3)", "1000", "NaN(0x3)", .toNearestOrEven)
+ /* ddscb864 */ self.scaleb64("NaN(0x4)", "Inf", "NaN(0x4)", .toNearestOrEven)
+ /* ddscb865 */ self.scaleb64("NaN(0x5)", "NaN(0x3d)", "NaN(0x5)", .toNearestOrEven)
+ /* ddscb866 */ self.scaleb64("-Inf", "-NaN(0x47)", "-NaN(0x47)", .toNearestOrEven)
+ /* ddscb867 */ self.scaleb64("-1000", "NaN(0x51)", "NaN(0x51)", .toNearestOrEven)
+ /* ddscb868 */ self.scaleb64("1000", "NaN(0x5b)", "NaN(0x5b)", .toNearestOrEven)
+ /* ddscb869 */ self.scaleb64("Inf", "NaN(0x65)", "NaN(0x65)", .toNearestOrEven)
+ /* ddscb871 */ self.scaleb64("sNaN(0xb)", "-Inf", "NaN(0xb)", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb872 */ self.scaleb64("sNaN(0xc)", "-1000", "NaN(0xc)", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb873 */ self.scaleb64("-sNaN(0xd)", "1000", "-NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb874 */ self.scaleb64("sNaN(0xe)", "NaN(0xab)", "NaN(0xe)", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb875 */ self.scaleb64("sNaN(0xf)", "sNaN(0xb5)", "NaN(0xf)", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb876 */ self.scaleb64("NaN(0x10)", "sNaN(0xbf)", "NaN(0xbf)", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb877 */ self.scaleb64("-Inf", "sNaN(0xc9)", "NaN(0xc9)", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb878 */ self.scaleb64("-1000", "sNaN(0xd3)", "NaN(0xd3)", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb879 */ self.scaleb64("1000", "-sNaN(0xdd)", "-NaN(0xdd)", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb880 */ self.scaleb64("Inf", "sNaN(0xe7)", "NaN(0xe7)", .toNearestOrEven, .isInvalidOperation)
+ /* ddscb881 */ self.scaleb64("NaN(0x19)", "sNaN(0xf1)", "NaN(0xf1)", .toNearestOrEven, .isInvalidOperation)
+ }
+
+ private func scaleb64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = self.scaleB(arg0, arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_scaleb128() {
+ /* dqscb001 */ self.scaleb128("7.50", "10", "7.50E+10", .toNearestOrEven)
+ /* dqscb002 */ self.scaleb128("7.50", "3", "7.50E+3", .toNearestOrEven)
+ /* dqscb003 */ self.scaleb128("7.50", "2", "750", .toNearestOrEven)
+ /* dqscb004 */ self.scaleb128("7.50", "1", "75.0", .toNearestOrEven)
+ /* dqscb005 */ self.scaleb128("7.50", "0", "7.50", .toNearestOrEven)
+ /* dqscb006 */ self.scaleb128("7.50", "-1", "0.750", .toNearestOrEven)
+ /* dqscb007 */ self.scaleb128("7.50", "-2", "0.0750", .toNearestOrEven)
+ /* dqscb008 */ self.scaleb128("7.50", "-10", "7.50E-10", .toNearestOrEven)
+ /* dqscb009 */ self.scaleb128("-7.50", "3", "-7.50E+3", .toNearestOrEven)
+ /* dqscb010 */ self.scaleb128("-7.50", "2", "-750", .toNearestOrEven)
+ /* dqscb011 */ self.scaleb128("-7.50", "1", "-75.0", .toNearestOrEven)
+ /* dqscb012 */ self.scaleb128("-7.50", "0", "-7.50", .toNearestOrEven)
+ /* dqscb013 */ self.scaleb128("-7.50", "-1", "-0.750", .toNearestOrEven)
+ /* dqscb014 */ self.scaleb128("Infinity", "1", "Infinity", .toNearestOrEven)
+ /* dqscb015 */ self.scaleb128("-Infinity", "2", "-Infinity", .toNearestOrEven)
+ /* dqscb016 */ self.scaleb128("Infinity", "-1", "Infinity", .toNearestOrEven)
+ /* dqscb017 */ self.scaleb128("-Infinity", "-2", "-Infinity", .toNearestOrEven)
+ /* dqscb018 */ self.scaleb128("10", "Infinity", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb019 */ self.scaleb128("10", "-Infinity", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb021 */ self.scaleb128("NaN", "1", "NaN", .toNearestOrEven)
+ /* dqscb022 */ self.scaleb128("-NaN", "-1", "-NaN", .toNearestOrEven)
+ /* dqscb023 */ self.scaleb128("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb024 */ self.scaleb128("-sNaN", "1", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb025 */ self.scaleb128("4", "NaN", "NaN", .toNearestOrEven)
+ /* dqscb026 */ self.scaleb128("-Inf", "-NaN", "-NaN", .toNearestOrEven)
+ /* dqscb027 */ self.scaleb128("4", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb028 */ self.scaleb128("Inf", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb030 */ self.scaleb128("1.23", "1", "12.3", .toNearestOrEven)
+ /* dqscb031 */ self.scaleb128("1.23", "1.00", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb032 */ self.scaleb128("1.23", "1.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb033 */ self.scaleb128("1.23", "1.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb034 */ self.scaleb128("1.23", "0.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb035 */ self.scaleb128("1.23", "0.11", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb036 */ self.scaleb128("1.23", "0.999999999", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb037 */ self.scaleb128("1.23", "-1", "0.123", .toNearestOrEven)
+ /* dqscb039 */ self.scaleb128("1.23", "-1.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb040 */ self.scaleb128("1.23", "-1.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb041 */ self.scaleb128("1.23", "-0.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb042 */ self.scaleb128("1.23", "-0.11", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb043 */ self.scaleb128("1.23", "-0.999999999", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb044 */ self.scaleb128("1.23", "0.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb045 */ self.scaleb128("1.23", "1E+1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb046 */ self.scaleb128("1.23", "1.1234E+6", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb047 */ self.scaleb128("1.23", "1.123E+4", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb051 */ self.scaleb128("7", "-2", "0.07", .toNearestOrEven)
+ /* dqscb052 */ self.scaleb128("-7", "-2", "-0.07", .toNearestOrEven)
+ /* dqscb053 */ self.scaleb128("75", "-2", "0.75", .toNearestOrEven)
+ /* dqscb054 */ self.scaleb128("-75", "-2", "-0.75", .toNearestOrEven)
+ /* dqscb055 */ self.scaleb128("7.50", "-2", "0.0750", .toNearestOrEven)
+ /* dqscb056 */ self.scaleb128("-7.50", "-2", "-0.0750", .toNearestOrEven)
+ /* dqscb057 */ self.scaleb128("7.500", "-2", "0.07500", .toNearestOrEven)
+ /* dqscb058 */ self.scaleb128("-7.500", "-2", "-0.07500", .toNearestOrEven)
+ /* dqscb061 */ self.scaleb128("7", "-1", "0.7", .toNearestOrEven)
+ /* dqscb0614 */ self.scaleb128("1.23", "-1.00", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb062 */ self.scaleb128("-7", "-1", "-0.7", .toNearestOrEven)
+ /* dqscb063 */ self.scaleb128("75", "-1", "7.5", .toNearestOrEven)
+ /* dqscb064 */ self.scaleb128("-75", "-1", "-7.5", .toNearestOrEven)
+ /* dqscb065 */ self.scaleb128("7.50", "-1", "0.750", .toNearestOrEven)
+ /* dqscb066 */ self.scaleb128("-7.50", "-1", "-0.750", .toNearestOrEven)
+ /* dqscb067 */ self.scaleb128("7.500", "-1", "0.7500", .toNearestOrEven)
+ /* dqscb068 */ self.scaleb128("-7.500", "-1", "-0.7500", .toNearestOrEven)
+ /* dqscb071 */ self.scaleb128("7", "0", "7", .toNearestOrEven)
+ /* dqscb072 */ self.scaleb128("-7", "0", "-7", .toNearestOrEven)
+ /* dqscb073 */ self.scaleb128("75", "0", "75", .toNearestOrEven)
+ /* dqscb074 */ self.scaleb128("-75", "0", "-75", .toNearestOrEven)
+ /* dqscb075 */ self.scaleb128("7.50", "0", "7.50", .toNearestOrEven)
+ /* dqscb076 */ self.scaleb128("-7.50", "0", "-7.50", .toNearestOrEven)
+ /* dqscb077 */ self.scaleb128("7.500", "0", "7.500", .toNearestOrEven)
+ /* dqscb078 */ self.scaleb128("-7.500", "0", "-7.500", .toNearestOrEven)
+ /* dqscb081 */ self.scaleb128("7", "1", "7E+1", .toNearestOrEven)
+ /* dqscb082 */ self.scaleb128("-7", "1", "-7E+1", .toNearestOrEven)
+ /* dqscb083 */ self.scaleb128("75", "1", "7.5E+2", .toNearestOrEven)
+ /* dqscb084 */ self.scaleb128("-75", "1", "-7.5E+2", .toNearestOrEven)
+ /* dqscb085 */ self.scaleb128("7.50", "1", "75.0", .toNearestOrEven)
+ /* dqscb086 */ self.scaleb128("-7.50", "1", "-75.0", .toNearestOrEven)
+ /* dqscb087 */ self.scaleb128("7.500", "1", "75.00", .toNearestOrEven)
+ /* dqscb088 */ self.scaleb128("-7.500", "1", "-75.00", .toNearestOrEven)
+ /* dqscb091 */ self.scaleb128("7", "2", "7E+2", .toNearestOrEven)
+ /* dqscb092 */ self.scaleb128("-7", "2", "-7E+2", .toNearestOrEven)
+ /* dqscb093 */ self.scaleb128("75", "2", "7.5E+3", .toNearestOrEven)
+ /* dqscb094 */ self.scaleb128("-75", "2", "-7.5E+3", .toNearestOrEven)
+ /* dqscb095 */ self.scaleb128("7.50", "2", "750", .toNearestOrEven)
+ /* dqscb096 */ self.scaleb128("-7.50", "2", "-750", .toNearestOrEven)
+ /* dqscb097 */ self.scaleb128("7.500", "2", "750.0", .toNearestOrEven)
+ /* dqscb098 */ self.scaleb128("-7.500", "2", "-750.0", .toNearestOrEven)
+ /* dqscb111 */ self.scaleb128("0", "1", "0E+1", .toNearestOrEven)
+ /* dqscb112 */ self.scaleb128("-0", "2", "-0E+2", .toNearestOrEven)
+ /* dqscb113 */ self.scaleb128("0E+4", "3", "0E+7", .toNearestOrEven)
+ /* dqscb114 */ self.scaleb128("-0E+4", "4", "-0E+8", .toNearestOrEven)
+ /* dqscb115 */ self.scaleb128("0.0000", "5", "0E+1", .toNearestOrEven)
+ /* dqscb116 */ self.scaleb128("-0.0000", "6", "-0E+2", .toNearestOrEven)
+ /* dqscb117 */ self.scaleb128("0E-141", "7", "0E-134", .toNearestOrEven)
+ /* dqscb118 */ self.scaleb128("-0E-141", "8", "-0E-133", .toNearestOrEven)
+ /* dqscb120 */ self.scaleb128("1.23", "12355", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqscb121 */ self.scaleb128("1.23", "12356", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqscb122 */ self.scaleb128("1.23", "12357", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb123 */ self.scaleb128("1.23", "12358", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb124 */ self.scaleb128("1.23", "-12355", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqscb125 */ self.scaleb128("1.23", "-12356", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqscb126 */ self.scaleb128("1.23", "-12357", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb127 */ self.scaleb128("1.23", "-12358", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb132 */ self.scaleb128("9.999999999999999999999999999999999E+6144", "+6144", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqscb133 */ self.scaleb128("9.999999999999999999999999999999999E+6144", "+10", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqscb134 */ self.scaleb128("9.999999999999999999999999999999999E+6144", "+1", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqscb135 */ self.scaleb128("9.999999999999999999999999999999999E+6144", "0", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqscb136 */ self.scaleb128("9.999999999999999999999999999999999E+6144", "-1", "9.999999999999999999999999999999999E+6143", .toNearestOrEven)
+ /* dqscb137 */ self.scaleb128("1E-6143", "+1", "1E-6142", .toNearestOrEven)
+ /* dqscb139 */ self.scaleb128("1E-6143", "-1", "1E-6144", .toNearestOrEven)
+ /* dqscb140 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "+1", "1.000000000000000000000000000000000E-6142", .toNearestOrEven)
+ /* dqscb141 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "0", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqscb142 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-1", "1.00000000000000000000000000000000E-6144", .toNearestOrEven)
+ /* dqscb143 */ self.scaleb128("1E-6176", "+1", "1E-6175", .toNearestOrEven)
+ /* dqscb144 */ self.scaleb128("1E-6176", "-0", "1E-6176", .toNearestOrEven)
+ /* dqscb145 */ self.scaleb128("1E-6176", "-1", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqscb150 */ self.scaleb128("-1E-6176", "+1", "-1E-6175", .toNearestOrEven)
+ /* dqscb151 */ self.scaleb128("-1E-6176", "-0", "-1E-6176", .toNearestOrEven)
+ /* dqscb152 */ self.scaleb128("-1E-6176", "-1", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqscb153 */ self.scaleb128("-1.000000000000000000000000000000000E-6143", "+1", "-1.000000000000000000000000000000000E-6142", .toNearestOrEven)
+ /* dqscb154 */ self.scaleb128("-1.000000000000000000000000000000000E-6143", "+0", "-1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqscb155 */ self.scaleb128("-1.000000000000000000000000000000000E-6143", "-1", "-1.00000000000000000000000000000000E-6144", .toNearestOrEven)
+ /* dqscb156 */ self.scaleb128("-1E-6143", "+1", "-1E-6142", .toNearestOrEven)
+ /* dqscb157 */ self.scaleb128("-1E-6143", "-0", "-1E-6143", .toNearestOrEven)
+ /* dqscb158 */ self.scaleb128("-1E-6143", "-1", "-1E-6144", .toNearestOrEven)
+ /* dqscb159 */ self.scaleb128("-9.999999999999999999999999999999999E+6144", "+1", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqscb160 */ self.scaleb128("-9.999999999999999999999999999999999E+6144", "+0", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqscb161 */ self.scaleb128("-9.999999999999999999999999999999999E+6144", "-1", "-9.999999999999999999999999999999999E+6143", .toNearestOrEven)
+ /* dqscb1614 */ self.scaleb128("1E-6143", "-0", "1E-6143", .toNearestOrEven)
+ /* dqscb162 */ self.scaleb128("-9E+6144", "+1", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqscb163 */ self.scaleb128("-1E+6144", "+1", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqscb171 */ self.scaleb128("1000E+6109", "+1", "1.000E+6113", .toNearestOrEven)
+ /* dqscb172 */ self.scaleb128("1000E+6110", "+1", "1.000E+6114", .toNearestOrEven)
+ /* dqscb173 */ self.scaleb128("1000E+6111", "+1", "1.0000E+6115", .toNearestOrEven)
+ /* dqscb174 */ self.scaleb128("1000E+6112", "+1", "1.00000E+6116", .toNearestOrEven)
+ /* dqscb175 */ self.scaleb128("1000E+6113", "+1", "1.000000E+6117", .toNearestOrEven)
+ /* dqscb176 */ self.scaleb128("1000E+6114", "+1", "1.0000000E+6118", .toNearestOrEven)
+ /* dqscb177 */ self.scaleb128("1000E+6131", "+1", "1.000000000000000000000000E+6135", .toNearestOrEven)
+ /* dqscb178 */ self.scaleb128("1000E+6132", "+1", "1.0000000000000000000000000E+6136", .toNearestOrEven)
+ /* dqscb179 */ self.scaleb128("1000E+6133", "+1", "1.00000000000000000000000000E+6137", .toNearestOrEven)
+ /* dqscb180 */ self.scaleb128("1000E+6134", "+1", "1.000000000000000000000000000E+6138", .toNearestOrEven)
+ /* dqscb181 */ self.scaleb128("1000E+6135", "+1", "1.0000000000000000000000000000E+6139", .toNearestOrEven)
+ /* dqscb182 */ self.scaleb128("1000E+6136", "+1", "1.00000000000000000000000000000E+6140", .toNearestOrEven)
+ /* dqscb183 */ self.scaleb128("1000E+6137", "+1", "1.000000000000000000000000000000E+6141", .toNearestOrEven)
+ /* dqscb184 */ self.scaleb128("1000E+6138", "+1", "1.0000000000000000000000000000000E+6142", .toNearestOrEven)
+ /* dqscb185 */ self.scaleb128("1000E+6139", "+1", "1.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqscb186 */ self.scaleb128("1000E+6140", "+1", "1.000000000000000000000000000000000E+6144", .toNearestOrEven)
+ /* dqscb187 */ self.scaleb128("1000E+6141", "+1", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqscb202 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-19", "1.00000000000000E-6162", .toNearestOrEven)
+ /* dqscb203 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-20", "1.0000000000000E-6163", .toNearestOrEven)
+ /* dqscb204 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-21", "1.000000000000E-6164", .toNearestOrEven)
+ /* dqscb205 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-22", "1.00000000000E-6165", .toNearestOrEven)
+ /* dqscb206 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-23", "1.0000000000E-6166", .toNearestOrEven)
+ /* dqscb207 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-24", "1.000000000E-6167", .toNearestOrEven)
+ /* dqscb208 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-25", "1.00000000E-6168", .toNearestOrEven)
+ /* dqscb209 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-26", "1.0000000E-6169", .toNearestOrEven)
+ /* dqscb210 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-27", "1.000000E-6170", .toNearestOrEven)
+ /* dqscb211 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-28", "1.00000E-6171", .toNearestOrEven)
+ /* dqscb212 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-29", "1.0000E-6172", .toNearestOrEven)
+ /* dqscb213 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-30", "1.000E-6173", .toNearestOrEven)
+ /* dqscb214 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-31", "1.00E-6174", .toNearestOrEven)
+ /* dqscb215 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-32", "1.0E-6175", .toNearestOrEven)
+ /* dqscb216 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-33", "1E-6176", .toNearestOrEven)
+ /* dqscb217 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-34", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqscb218 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-35", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqscb221 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "0", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqscb222 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-1", "1.00000000000000000000000000000000E-6144", .toNearestOrEven)
+ /* dqscb223 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-2", "1.0000000000000000000000000000000E-6145", .toNearestOrEven)
+ /* dqscb224 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-3", "1.000000000000000000000000000000E-6146", .toNearestOrEven)
+ /* dqscb225 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-4", "1.00000000000000000000000000000E-6147", .toNearestOrEven)
+ /* dqscb226 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-5", "1.0000000000000000000000000000E-6148", .toNearestOrEven)
+ /* dqscb227 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-6", "1.000000000000000000000000000E-6149", .toNearestOrEven)
+ /* dqscb228 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-7", "1.00000000000000000000000000E-6150", .toNearestOrEven)
+ /* dqscb229 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-8", "1.0000000000000000000000000E-6151", .toNearestOrEven)
+ /* dqscb230 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-9", "1.000000000000000000000000E-6152", .toNearestOrEven)
+ /* dqscb231 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-10", "1.00000000000000000000000E-6153", .toNearestOrEven)
+ /* dqscb232 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-11", "1.0000000000000000000000E-6154", .toNearestOrEven)
+ /* dqscb233 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-12", "1.000000000000000000000E-6155", .toNearestOrEven)
+ /* dqscb234 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-13", "1.00000000000000000000E-6156", .toNearestOrEven)
+ /* dqscb235 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-14", "1.0000000000000000000E-6157", .toNearestOrEven)
+ /* dqscb236 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-15", "1.000000000000000000E-6158", .toNearestOrEven)
+ /* dqscb237 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-16", "1.00000000000000000E-6159", .toNearestOrEven)
+ /* dqscb238 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-17", "1.0000000000000000E-6160", .toNearestOrEven)
+ /* dqscb239 */ self.scaleb128("1.000000000000000000000000000000000E-6143", "-18", "1.000000000000000E-6161", .toNearestOrEven)
+ /* dqscb861 */ self.scaleb128("NaN(0x1)", "-Inf", "NaN(0x1)", .toNearestOrEven)
+ /* dqscb862 */ self.scaleb128("-NaN(0x2)", "-1000", "-NaN(0x2)", .toNearestOrEven)
+ /* dqscb863 */ self.scaleb128("NaN(0x3)", "1000", "NaN(0x3)", .toNearestOrEven)
+ /* dqscb864 */ self.scaleb128("NaN(0x4)", "Inf", "NaN(0x4)", .toNearestOrEven)
+ /* dqscb865 */ self.scaleb128("NaN(0x5)", "NaN(0x3d)", "NaN(0x5)", .toNearestOrEven)
+ /* dqscb866 */ self.scaleb128("-Inf", "-NaN(0x47)", "-NaN(0x47)", .toNearestOrEven)
+ /* dqscb867 */ self.scaleb128("-1000", "NaN(0x51)", "NaN(0x51)", .toNearestOrEven)
+ /* dqscb868 */ self.scaleb128("1000", "NaN(0x5b)", "NaN(0x5b)", .toNearestOrEven)
+ /* dqscb869 */ self.scaleb128("Inf", "NaN(0x65)", "NaN(0x65)", .toNearestOrEven)
+ /* dqscb871 */ self.scaleb128("sNaN(0xb)", "-Inf", "NaN(0xb)", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb872 */ self.scaleb128("sNaN(0xc)", "-1000", "NaN(0xc)", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb873 */ self.scaleb128("-sNaN(0xd)", "1000", "-NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb874 */ self.scaleb128("sNaN(0xe)", "NaN(0xab)", "NaN(0xe)", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb875 */ self.scaleb128("sNaN(0xf)", "sNaN(0xb5)", "NaN(0xf)", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb876 */ self.scaleb128("NaN(0x10)", "sNaN(0xbf)", "NaN(0xbf)", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb877 */ self.scaleb128("-Inf", "sNaN(0xc9)", "NaN(0xc9)", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb878 */ self.scaleb128("-1000", "sNaN(0xd3)", "NaN(0xd3)", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb879 */ self.scaleb128("1000", "-sNaN(0xdd)", "-NaN(0xdd)", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb880 */ self.scaleb128("Inf", "sNaN(0xe7)", "NaN(0xe7)", .toNearestOrEven, .isInvalidOperation)
+ /* dqscb881 */ self.scaleb128("NaN(0x19)", "sNaN(0xf1)", "NaN(0xf1)", .toNearestOrEven, .isInvalidOperation)
+ }
+
+ private func scaleb128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = self.scaleB(arg0, arg1, rounding: rounding, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveMinMaxTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveMinMaxTests.swift
new file mode 100644
index 0000000..bba86f1
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveMinMaxTests.swift
@@ -0,0 +1,2154 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveMinMaxTests: XCTestCase, SpeleotroveMixin {
+
+ // MARK: - Max
+
+ func test_max64() {
+ /* ddmax001 */ self.max64("-2", "-2", "-2", .toNearestOrEven)
+ /* ddmax002 */ self.max64("-2", "-1", "-1", .toNearestOrEven)
+ /* ddmax003 */ self.max64("-2", "0", "0", .toNearestOrEven)
+ /* ddmax004 */ self.max64("-2", "1", "1", .toNearestOrEven)
+ /* ddmax005 */ self.max64("-2", "2", "2", .toNearestOrEven)
+ /* ddmax006 */ self.max64("-1", "-2", "-1", .toNearestOrEven)
+ /* ddmax007 */ self.max64("-1", "-1", "-1", .toNearestOrEven)
+ /* ddmax008 */ self.max64("-1", "0", "0", .toNearestOrEven)
+ /* ddmax009 */ self.max64("-1", "1", "1", .toNearestOrEven)
+ /* ddmax010 */ self.max64("-1", "2", "2", .toNearestOrEven)
+ /* ddmax011 */ self.max64("0", "-2", "0", .toNearestOrEven)
+ /* ddmax012 */ self.max64("0", "-1", "0", .toNearestOrEven)
+ /* ddmax013 */ self.max64("0", "0", "0", .toNearestOrEven)
+ /* ddmax014 */ self.max64("0", "1", "1", .toNearestOrEven)
+ /* ddmax015 */ self.max64("0", "2", "2", .toNearestOrEven)
+ /* ddmax016 */ self.max64("1", "-2", "1", .toNearestOrEven)
+ /* ddmax017 */ self.max64("1", "-1", "1", .toNearestOrEven)
+ /* ddmax018 */ self.max64("1", "0", "1", .toNearestOrEven)
+ /* ddmax019 */ self.max64("1", "1", "1", .toNearestOrEven)
+ /* ddmax020 */ self.max64("1", "2", "2", .toNearestOrEven)
+ /* ddmax021 */ self.max64("2", "-2", "2", .toNearestOrEven)
+ /* ddmax022 */ self.max64("2", "-1", "2", .toNearestOrEven)
+ /* ddmax023 */ self.max64("2", "0", "2", .toNearestOrEven)
+ /* ddmax025 */ self.max64("2", "1", "2", .toNearestOrEven)
+ /* ddmax026 */ self.max64("2", "2", "2", .toNearestOrEven)
+ /* ddmax030 */ self.max64("0", "0", "0", .toNearestOrEven)
+ /* ddmax031 */ self.max64("0", "-0", "0", .toNearestOrEven)
+ /* ddmax032 */ self.max64("0", "-0.0", "0", .toNearestOrEven)
+ /* ddmax033 */ self.max64("0", "0.0", "0", .toNearestOrEven)
+ /* ddmax034 */ self.max64("-0", "0", "0", .toNearestOrEven)
+ /* ddmax035 */ self.max64("-0", "-0", "-0", .toNearestOrEven)
+ /* ddmax036 */ self.max64("-0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmax037 */ self.max64("-0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmax038 */ self.max64("0.0", "0", "0", .toNearestOrEven)
+ /* ddmax039 */ self.max64("0.0", "-0", "0.0", .toNearestOrEven)
+ /* ddmax040 */ self.max64("0.0", "-0.0", "0.0", .toNearestOrEven)
+ /* ddmax041 */ self.max64("0.0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmax042 */ self.max64("-0.0", "0", "0", .toNearestOrEven)
+ /* ddmax043 */ self.max64("-0.0", "-0", "-0.0", .toNearestOrEven)
+ /* ddmax044 */ self.max64("-0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmax045 */ self.max64("-0.0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmax050 */ self.max64("-0E1", "0E1", "0E+1", .toNearestOrEven)
+ /* ddmax051 */ self.max64("-0E2", "0E2", "0E+2", .toNearestOrEven)
+ /* ddmax052 */ self.max64("-0E2", "0E1", "0E+1", .toNearestOrEven)
+ /* ddmax053 */ self.max64("-0E1", "0E2", "0E+2", .toNearestOrEven)
+ /* ddmax054 */ self.max64("0E1", "-0E1", "0E+1", .toNearestOrEven)
+ /* ddmax055 */ self.max64("0E2", "-0E2", "0E+2", .toNearestOrEven)
+ /* ddmax056 */ self.max64("0E2", "-0E1", "0E+2", .toNearestOrEven)
+ /* ddmax057 */ self.max64("0E1", "-0E2", "0E+1", .toNearestOrEven)
+ /* ddmax058 */ self.max64("0E1", "0E1", "0E+1", .toNearestOrEven)
+ /* ddmax059 */ self.max64("0E2", "0E2", "0E+2", .toNearestOrEven)
+ /* ddmax060 */ self.max64("0E2", "0E1", "0E+2", .toNearestOrEven)
+ /* ddmax061 */ self.max64("0E1", "0E2", "0E+2", .toNearestOrEven)
+ /* ddmax062 */ self.max64("-0E1", "-0E1", "-0E+1", .toNearestOrEven)
+ /* ddmax063 */ self.max64("-0E2", "-0E2", "-0E+2", .toNearestOrEven)
+ /* ddmax064 */ self.max64("-0E2", "-0E1", "-0E+1", .toNearestOrEven)
+ /* ddmax065 */ self.max64("-0E1", "-0E2", "-0E+1", .toNearestOrEven)
+ /* ddmax090 */ self.max64("Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* ddmax091 */ self.max64("Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* ddmax092 */ self.max64("Inf", "-1", "Infinity", .toNearestOrEven)
+ /* ddmax093 */ self.max64("Inf", "-0", "Infinity", .toNearestOrEven)
+ /* ddmax094 */ self.max64("Inf", "0", "Infinity", .toNearestOrEven)
+ /* ddmax095 */ self.max64("Inf", "1", "Infinity", .toNearestOrEven)
+ /* ddmax096 */ self.max64("Inf", "1000", "Infinity", .toNearestOrEven)
+ /* ddmax097 */ self.max64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax098 */ self.max64("-1000", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax099 */ self.max64("-Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax100 */ self.max64("-1", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax101 */ self.max64("-0", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax102 */ self.max64("0", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax103 */ self.max64("1", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax104 */ self.max64("1000", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax105 */ self.max64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax120 */ self.max64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmax121 */ self.max64("-Inf", "-1000", "-1000", .toNearestOrEven)
+ /* ddmax122 */ self.max64("-Inf", "-1", "-1", .toNearestOrEven)
+ /* ddmax123 */ self.max64("-Inf", "-0", "-0", .toNearestOrEven)
+ /* ddmax124 */ self.max64("-Inf", "0", "0", .toNearestOrEven)
+ /* ddmax125 */ self.max64("-Inf", "1", "1", .toNearestOrEven)
+ /* ddmax126 */ self.max64("-Inf", "1000", "1000", .toNearestOrEven)
+ /* ddmax127 */ self.max64("-Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax128 */ self.max64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmax129 */ self.max64("-1000", "-Inf", "-1000", .toNearestOrEven)
+ /* ddmax130 */ self.max64("-1", "-Inf", "-1", .toNearestOrEven)
+ /* ddmax131 */ self.max64("-0", "-Inf", "-0", .toNearestOrEven)
+ /* ddmax132 */ self.max64("0", "-Inf", "0", .toNearestOrEven)
+ /* ddmax133 */ self.max64("1", "-Inf", "1", .toNearestOrEven)
+ /* ddmax134 */ self.max64("1000", "-Inf", "1000", .toNearestOrEven)
+ /* ddmax135 */ self.max64("Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* ddmax141 */ self.max64("NaN", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmax142 */ self.max64("NaN", "-1000", "-1000", .toNearestOrEven)
+ /* ddmax143 */ self.max64("NaN", "-1", "-1", .toNearestOrEven)
+ /* ddmax144 */ self.max64("NaN", "-0", "-0", .toNearestOrEven)
+ /* ddmax145 */ self.max64("NaN", "0", "0", .toNearestOrEven)
+ /* ddmax146 */ self.max64("NaN", "1", "1", .toNearestOrEven)
+ /* ddmax147 */ self.max64("NaN", "1000", "1000", .toNearestOrEven)
+ /* ddmax148 */ self.max64("NaN", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax149 */ self.max64("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* ddmax150 */ self.max64("-Inf", "NaN", "-Infinity", .toNearestOrEven)
+ /* ddmax151 */ self.max64("-1000", "NaN", "-1000", .toNearestOrEven)
+ /* ddmax152 */ self.max64("-1", "NaN", "-1", .toNearestOrEven)
+ /* ddmax153 */ self.max64("-0", "NaN", "-0", .toNearestOrEven)
+ /* ddmax154 */ self.max64("0", "NaN", "0", .toNearestOrEven)
+ /* ddmax155 */ self.max64("1", "NaN", "1", .toNearestOrEven)
+ /* ddmax156 */ self.max64("1000", "NaN", "1000", .toNearestOrEven)
+ /* ddmax157 */ self.max64("Inf", "NaN", "Infinity", .toNearestOrEven)
+ /* ddmax161 */ self.max64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax162 */ self.max64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax163 */ self.max64("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax164 */ self.max64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax165 */ self.max64("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax166 */ self.max64("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax167 */ self.max64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax168 */ self.max64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax169 */ self.max64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax170 */ self.max64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax171 */ self.max64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax172 */ self.max64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax173 */ self.max64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax174 */ self.max64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax175 */ self.max64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax176 */ self.max64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax177 */ self.max64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax178 */ self.max64("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax179 */ self.max64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax181 */ self.max64("NaN(0x9)", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmax182 */ self.max64("NaN(0x8)", "9", "9", .toNearestOrEven)
+ /* ddmax183 */ self.max64("-NaN(0x7)", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax184 */ self.max64("-NaN(0x1)", "NaN(0xb)", "-NaN(0x1)", .toNearestOrEven)
+ /* ddmax185 */ self.max64("NaN(0x2)", "NaN(0xc)", "NaN(0x2)", .toNearestOrEven)
+ /* ddmax186 */ self.max64("-NaN(0xd)", "-NaN(0x7)", "-NaN(0xd)", .toNearestOrEven)
+ /* ddmax187 */ self.max64("NaN(0xe)", "-NaN(0x5)", "NaN(0xe)", .toNearestOrEven)
+ /* ddmax188 */ self.max64("-Inf", "NaN(0x4)", "-Infinity", .toNearestOrEven)
+ /* ddmax189 */ self.max64("-9", "-NaN(0x3)", "-9", .toNearestOrEven)
+ /* ddmax190 */ self.max64("Inf", "NaN(0x2)", "Infinity", .toNearestOrEven)
+ /* ddmax191 */ self.max64("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax192 */ self.max64("sNaN(0x62)", "-1", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax193 */ self.max64("-sNaN(0x61)", "NaN", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax194 */ self.max64("sNaN(0x60)", "sNaN(0x5e)", "NaN(0x60)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax195 */ self.max64("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax196 */ self.max64("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax197 */ self.max64("0", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax198 */ self.max64("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax199 */ self.max64("NaN", "sNaN(0x59)", "NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmax221 */ self.max64("12345678000", "1", "12345678000", .toNearestOrEven)
+ /* ddmax222 */ self.max64("1", "12345678000", "12345678000", .toNearestOrEven)
+ /* ddmax223 */ self.max64("1234567800", "1", "1234567800", .toNearestOrEven)
+ /* ddmax224 */ self.max64("1", "1234567800", "1234567800", .toNearestOrEven)
+ /* ddmax225 */ self.max64("1234567890", "1", "1234567890", .toNearestOrEven)
+ /* ddmax226 */ self.max64("1", "1234567890", "1234567890", .toNearestOrEven)
+ /* ddmax227 */ self.max64("1234567891", "1", "1234567891", .toNearestOrEven)
+ /* ddmax228 */ self.max64("1", "1234567891", "1234567891", .toNearestOrEven)
+ /* ddmax229 */ self.max64("12345678901", "1", "12345678901", .toNearestOrEven)
+ /* ddmax230 */ self.max64("1", "12345678901", "12345678901", .toNearestOrEven)
+ /* ddmax231 */ self.max64("1234567896", "1", "1234567896", .toNearestOrEven)
+ /* ddmax232 */ self.max64("1", "1234567896", "1234567896", .toNearestOrEven)
+ /* ddmax233 */ self.max64("-1234567891", "1", "1", .toNearestOrEven)
+ /* ddmax234 */ self.max64("1", "-1234567891", "1", .toNearestOrEven)
+ /* ddmax235 */ self.max64("-12345678901", "1", "1", .toNearestOrEven)
+ /* ddmax236 */ self.max64("1", "-12345678901", "1", .toNearestOrEven)
+ /* ddmax237 */ self.max64("-1234567896", "1", "1", .toNearestOrEven)
+ /* ddmax238 */ self.max64("1", "-1234567896", "1", .toNearestOrEven)
+ /* ddmax280 */ self.max64("3", "2", "3", .toNearestOrEven)
+ /* ddmax281 */ self.max64("-10", "3", "3", .toNearestOrEven)
+ /* ddmax282 */ self.max64("1.0", "1", "1", .toNearestOrEven)
+ /* ddmax283 */ self.max64("1", "1.0", "1", .toNearestOrEven)
+ /* ddmax284 */ self.max64("7", "NaN", "7", .toNearestOrEven)
+ /* ddmax401 */ self.max64("Inf", "1.1", "Infinity", .toNearestOrEven)
+ /* ddmax402 */ self.max64("1.1", "1", "1.1", .toNearestOrEven)
+ /* ddmax403 */ self.max64("1", "1.0", "1", .toNearestOrEven)
+ /* ddmax404 */ self.max64("1.0", "0.1", "1.0", .toNearestOrEven)
+ /* ddmax405 */ self.max64("0.1", "0.10", "0.1", .toNearestOrEven)
+ /* ddmax406 */ self.max64("0.10", "0.100", "0.10", .toNearestOrEven)
+ /* ddmax407 */ self.max64("0.10", "0", "0.10", .toNearestOrEven)
+ /* ddmax408 */ self.max64("0", "0.0", "0", .toNearestOrEven)
+ /* ddmax409 */ self.max64("0.0", "-0", "0.0", .toNearestOrEven)
+ /* ddmax410 */ self.max64("0.0", "-0.0", "0.0", .toNearestOrEven)
+ /* ddmax411 */ self.max64("0.00", "-0.0", "0.00", .toNearestOrEven)
+ /* ddmax412 */ self.max64("0.0", "-0.00", "0.0", .toNearestOrEven)
+ /* ddmax413 */ self.max64("0", "-0.0", "0", .toNearestOrEven)
+ /* ddmax414 */ self.max64("0", "-0", "0", .toNearestOrEven)
+ /* ddmax415 */ self.max64("-0.0", "-0", "-0.0", .toNearestOrEven)
+ /* ddmax416 */ self.max64("-0", "-0.100", "-0", .toNearestOrEven)
+ /* ddmax417 */ self.max64("-0.100", "-0.10", "-0.100", .toNearestOrEven)
+ /* ddmax418 */ self.max64("-0.10", "-0.1", "-0.10", .toNearestOrEven)
+ /* ddmax419 */ self.max64("-0.1", "-1.0", "-0.1", .toNearestOrEven)
+ /* ddmax420 */ self.max64("-1.0", "-1", "-1.0", .toNearestOrEven)
+ /* ddmax421 */ self.max64("-1", "-1.1", "-1", .toNearestOrEven)
+ /* ddmax423 */ self.max64("-1.1", "-Inf", "-1.1", .toNearestOrEven)
+ /* ddmax431 */ self.max64("1.1", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmax432 */ self.max64("1", "1.1", "1.1", .toNearestOrEven)
+ /* ddmax433 */ self.max64("1.0", "1", "1", .toNearestOrEven)
+ /* ddmax434 */ self.max64("0.1", "1.0", "1.0", .toNearestOrEven)
+ /* ddmax435 */ self.max64("0.10", "0.1", "0.1", .toNearestOrEven)
+ /* ddmax436 */ self.max64("0.100", "0.10", "0.10", .toNearestOrEven)
+ /* ddmax437 */ self.max64("0", "0.10", "0.10", .toNearestOrEven)
+ /* ddmax438 */ self.max64("0.0", "0", "0", .toNearestOrEven)
+ /* ddmax439 */ self.max64("-0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmax440 */ self.max64("-0.0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmax441 */ self.max64("-0.0", "0.00", "0.00", .toNearestOrEven)
+ /* ddmax442 */ self.max64("-0.00", "0.0", "0.0", .toNearestOrEven)
+ /* ddmax443 */ self.max64("-0.0", "0", "0", .toNearestOrEven)
+ /* ddmax444 */ self.max64("-0", "0", "0", .toNearestOrEven)
+ /* ddmax445 */ self.max64("-0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmax446 */ self.max64("-0.100", "-0", "-0", .toNearestOrEven)
+ /* ddmax447 */ self.max64("-0.10", "-0.100", "-0.100", .toNearestOrEven)
+ /* ddmax448 */ self.max64("-0.1", "-0.10", "-0.10", .toNearestOrEven)
+ /* ddmax449 */ self.max64("-1.0", "-0.1", "-0.1", .toNearestOrEven)
+ /* ddmax450 */ self.max64("-1", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddmax451 */ self.max64("-1.1", "-1", "-1", .toNearestOrEven)
+ /* ddmax453 */ self.max64("-Inf", "-1.1", "-1.1", .toNearestOrEven)
+ /* ddmax460 */ self.max64("1000", "1E+3", "1E+3", .toNearestOrEven)
+ /* ddmax461 */ self.max64("1E+3", "1000", "1E+3", .toNearestOrEven)
+ /* ddmax462 */ self.max64("1000", "-1E+3", "1000", .toNearestOrEven)
+ /* ddmax463 */ self.max64("1E+3", "-1000", "1E+3", .toNearestOrEven)
+ /* ddmax464 */ self.max64("-1000", "1E+3", "1E+3", .toNearestOrEven)
+ /* ddmax465 */ self.max64("-1E+3", "1000", "1000", .toNearestOrEven)
+ /* ddmax466 */ self.max64("-1000", "-1E+3", "-1000", .toNearestOrEven)
+ /* ddmax467 */ self.max64("-1E+3", "-1000", "-1000", .toNearestOrEven)
+ /* ddmax471 */ self.max64("1.0", "0.1", "1.0", .toNearestOrEven)
+ /* ddmax472 */ self.max64("0.1", "1.0", "1.0", .toNearestOrEven)
+ /* ddmax473 */ self.max64("10.0", "0.1", "10.0", .toNearestOrEven)
+ /* ddmax474 */ self.max64("0.1", "10.0", "10.0", .toNearestOrEven)
+ /* ddmax475 */ self.max64("100", "1.0", "100", .toNearestOrEven)
+ /* ddmax476 */ self.max64("1.0", "100", "100", .toNearestOrEven)
+ /* ddmax477 */ self.max64("1000", "10.0", "1000", .toNearestOrEven)
+ /* ddmax478 */ self.max64("10.0", "1000", "1000", .toNearestOrEven)
+ /* ddmax479 */ self.max64("10000", "100.0", "10000", .toNearestOrEven)
+ /* ddmax480 */ self.max64("100.0", "10000", "10000", .toNearestOrEven)
+ /* ddmax481 */ self.max64("100000", "1000.0", "100000", .toNearestOrEven)
+ /* ddmax482 */ self.max64("1000.0", "100000", "100000", .toNearestOrEven)
+ /* ddmax483 */ self.max64("1000000", "10000.0", "1000000", .toNearestOrEven)
+ /* ddmax484 */ self.max64("10000.0", "1000000", "1000000", .toNearestOrEven)
+ /* ddmax510 */ self.max64("1.00E-383", "0", "1.00E-383", .toNearestOrEven)
+ /* ddmax511 */ self.max64("0.1E-383", "0", "1E-384", .toNearestOrEven)
+ /* ddmax512 */ self.max64("0.10E-383", "0", "1.0E-384", .toNearestOrEven)
+ /* ddmax513 */ self.max64("0.100E-383", "0", "1.00E-384", .toNearestOrEven)
+ /* ddmax514 */ self.max64("0.01E-383", "0", "1E-385", .toNearestOrEven)
+ /* ddmax515 */ self.max64("0.999E-383", "0", "9.99E-384", .toNearestOrEven)
+ /* ddmax516 */ self.max64("0.099E-383", "0", "9.9E-385", .toNearestOrEven)
+ /* ddmax517 */ self.max64("0.009E-383", "0", "9E-386", .toNearestOrEven)
+ /* ddmax518 */ self.max64("0.001E-383", "0", "1E-386", .toNearestOrEven)
+ /* ddmax519 */ self.max64("0.0009E-383", "0", "9E-387", .toNearestOrEven)
+ /* ddmax520 */ self.max64("0.0001E-383", "0", "1E-387", .toNearestOrEven)
+ /* ddmax530 */ self.max64("-1.00E-383", "0", "0", .toNearestOrEven)
+ /* ddmax531 */ self.max64("-0.1E-383", "0", "0", .toNearestOrEven)
+ /* ddmax532 */ self.max64("-0.10E-383", "0", "0", .toNearestOrEven)
+ /* ddmax533 */ self.max64("-0.100E-383", "0", "0", .toNearestOrEven)
+ /* ddmax534 */ self.max64("-0.01E-383", "0", "0", .toNearestOrEven)
+ /* ddmax535 */ self.max64("-0.999E-383", "0", "0", .toNearestOrEven)
+ /* ddmax536 */ self.max64("-0.099E-383", "0", "0", .toNearestOrEven)
+ /* ddmax537 */ self.max64("-0.009E-383", "0", "0", .toNearestOrEven)
+ /* ddmax538 */ self.max64("-0.001E-383", "0", "0", .toNearestOrEven)
+ /* ddmax539 */ self.max64("-0.0009E-383", "0", "0", .toNearestOrEven)
+ /* ddmax540 */ self.max64("-0.0001E-383", "0", "0", .toNearestOrEven)
+ }
+
+ private func max64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = Decimal64.maximum(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_max(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_max128() {
+ /* dqmax001 */ self.max128("-2", "-2", "-2", .toNearestOrEven)
+ /* dqmax002 */ self.max128("-2", "-1", "-1", .toNearestOrEven)
+ /* dqmax003 */ self.max128("-2", "0", "0", .toNearestOrEven)
+ /* dqmax004 */ self.max128("-2", "1", "1", .toNearestOrEven)
+ /* dqmax005 */ self.max128("-2", "2", "2", .toNearestOrEven)
+ /* dqmax006 */ self.max128("-1", "-2", "-1", .toNearestOrEven)
+ /* dqmax007 */ self.max128("-1", "-1", "-1", .toNearestOrEven)
+ /* dqmax008 */ self.max128("-1", "0", "0", .toNearestOrEven)
+ /* dqmax009 */ self.max128("-1", "1", "1", .toNearestOrEven)
+ /* dqmax010 */ self.max128("-1", "2", "2", .toNearestOrEven)
+ /* dqmax011 */ self.max128("0", "-2", "0", .toNearestOrEven)
+ /* dqmax012 */ self.max128("0", "-1", "0", .toNearestOrEven)
+ /* dqmax013 */ self.max128("0", "0", "0", .toNearestOrEven)
+ /* dqmax014 */ self.max128("0", "1", "1", .toNearestOrEven)
+ /* dqmax015 */ self.max128("0", "2", "2", .toNearestOrEven)
+ /* dqmax016 */ self.max128("1", "-2", "1", .toNearestOrEven)
+ /* dqmax017 */ self.max128("1", "-1", "1", .toNearestOrEven)
+ /* dqmax018 */ self.max128("1", "0", "1", .toNearestOrEven)
+ /* dqmax019 */ self.max128("1", "1", "1", .toNearestOrEven)
+ /* dqmax020 */ self.max128("1", "2", "2", .toNearestOrEven)
+ /* dqmax021 */ self.max128("2", "-2", "2", .toNearestOrEven)
+ /* dqmax022 */ self.max128("2", "-1", "2", .toNearestOrEven)
+ /* dqmax023 */ self.max128("2", "0", "2", .toNearestOrEven)
+ /* dqmax025 */ self.max128("2", "1", "2", .toNearestOrEven)
+ /* dqmax026 */ self.max128("2", "2", "2", .toNearestOrEven)
+ /* dqmax030 */ self.max128("0", "0", "0", .toNearestOrEven)
+ /* dqmax031 */ self.max128("0", "-0", "0", .toNearestOrEven)
+ /* dqmax032 */ self.max128("0", "-0.0", "0", .toNearestOrEven)
+ /* dqmax033 */ self.max128("0", "0.0", "0", .toNearestOrEven)
+ /* dqmax034 */ self.max128("-0", "0", "0", .toNearestOrEven)
+ /* dqmax035 */ self.max128("-0", "-0", "-0", .toNearestOrEven)
+ /* dqmax036 */ self.max128("-0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmax037 */ self.max128("-0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmax038 */ self.max128("0.0", "0", "0", .toNearestOrEven)
+ /* dqmax039 */ self.max128("0.0", "-0", "0.0", .toNearestOrEven)
+ /* dqmax040 */ self.max128("0.0", "-0.0", "0.0", .toNearestOrEven)
+ /* dqmax041 */ self.max128("0.0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmax042 */ self.max128("-0.0", "0", "0", .toNearestOrEven)
+ /* dqmax043 */ self.max128("-0.0", "-0", "-0.0", .toNearestOrEven)
+ /* dqmax044 */ self.max128("-0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmax045 */ self.max128("-0.0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmax050 */ self.max128("-0E1", "0E1", "0E+1", .toNearestOrEven)
+ /* dqmax051 */ self.max128("-0E2", "0E2", "0E+2", .toNearestOrEven)
+ /* dqmax052 */ self.max128("-0E2", "0E1", "0E+1", .toNearestOrEven)
+ /* dqmax053 */ self.max128("-0E1", "0E2", "0E+2", .toNearestOrEven)
+ /* dqmax054 */ self.max128("0E1", "-0E1", "0E+1", .toNearestOrEven)
+ /* dqmax055 */ self.max128("0E2", "-0E2", "0E+2", .toNearestOrEven)
+ /* dqmax056 */ self.max128("0E2", "-0E1", "0E+2", .toNearestOrEven)
+ /* dqmax057 */ self.max128("0E1", "-0E2", "0E+1", .toNearestOrEven)
+ /* dqmax058 */ self.max128("0E1", "0E1", "0E+1", .toNearestOrEven)
+ /* dqmax059 */ self.max128("0E2", "0E2", "0E+2", .toNearestOrEven)
+ /* dqmax060 */ self.max128("0E2", "0E1", "0E+2", .toNearestOrEven)
+ /* dqmax061 */ self.max128("0E1", "0E2", "0E+2", .toNearestOrEven)
+ /* dqmax062 */ self.max128("-0E1", "-0E1", "-0E+1", .toNearestOrEven)
+ /* dqmax063 */ self.max128("-0E2", "-0E2", "-0E+2", .toNearestOrEven)
+ /* dqmax064 */ self.max128("-0E2", "-0E1", "-0E+1", .toNearestOrEven)
+ /* dqmax065 */ self.max128("-0E1", "-0E2", "-0E+1", .toNearestOrEven)
+ /* dqmax090 */ self.max128("Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* dqmax091 */ self.max128("Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* dqmax092 */ self.max128("Inf", "-1", "Infinity", .toNearestOrEven)
+ /* dqmax093 */ self.max128("Inf", "-0", "Infinity", .toNearestOrEven)
+ /* dqmax094 */ self.max128("Inf", "0", "Infinity", .toNearestOrEven)
+ /* dqmax095 */ self.max128("Inf", "1", "Infinity", .toNearestOrEven)
+ /* dqmax096 */ self.max128("Inf", "1000", "Infinity", .toNearestOrEven)
+ /* dqmax097 */ self.max128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax098 */ self.max128("-1000", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax099 */ self.max128("-Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax100 */ self.max128("-1", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax101 */ self.max128("-0", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax102 */ self.max128("0", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax103 */ self.max128("1", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax104 */ self.max128("1000", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax105 */ self.max128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax120 */ self.max128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmax121 */ self.max128("-Inf", "-1000", "-1000", .toNearestOrEven)
+ /* dqmax122 */ self.max128("-Inf", "-1", "-1", .toNearestOrEven)
+ /* dqmax123 */ self.max128("-Inf", "-0", "-0", .toNearestOrEven)
+ /* dqmax124 */ self.max128("-Inf", "0", "0", .toNearestOrEven)
+ /* dqmax125 */ self.max128("-Inf", "1", "1", .toNearestOrEven)
+ /* dqmax126 */ self.max128("-Inf", "1000", "1000", .toNearestOrEven)
+ /* dqmax127 */ self.max128("-Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax128 */ self.max128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmax129 */ self.max128("-1000", "-Inf", "-1000", .toNearestOrEven)
+ /* dqmax130 */ self.max128("-1", "-Inf", "-1", .toNearestOrEven)
+ /* dqmax131 */ self.max128("-0", "-Inf", "-0", .toNearestOrEven)
+ /* dqmax132 */ self.max128("0", "-Inf", "0", .toNearestOrEven)
+ /* dqmax133 */ self.max128("1", "-Inf", "1", .toNearestOrEven)
+ /* dqmax134 */ self.max128("1000", "-Inf", "1000", .toNearestOrEven)
+ /* dqmax135 */ self.max128("Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* dqmax141 */ self.max128("NaN", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmax142 */ self.max128("NaN", "-1000", "-1000", .toNearestOrEven)
+ /* dqmax143 */ self.max128("NaN", "-1", "-1", .toNearestOrEven)
+ /* dqmax144 */ self.max128("NaN", "-0", "-0", .toNearestOrEven)
+ /* dqmax145 */ self.max128("NaN", "0", "0", .toNearestOrEven)
+ /* dqmax146 */ self.max128("NaN", "1", "1", .toNearestOrEven)
+ /* dqmax147 */ self.max128("NaN", "1000", "1000", .toNearestOrEven)
+ /* dqmax148 */ self.max128("NaN", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax149 */ self.max128("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* dqmax150 */ self.max128("-Inf", "NaN", "-Infinity", .toNearestOrEven)
+ /* dqmax151 */ self.max128("-1000", "NaN", "-1000", .toNearestOrEven)
+ /* dqmax152 */ self.max128("-1", "NaN", "-1", .toNearestOrEven)
+ /* dqmax153 */ self.max128("-0", "NaN", "-0", .toNearestOrEven)
+ /* dqmax154 */ self.max128("0", "NaN", "0", .toNearestOrEven)
+ /* dqmax155 */ self.max128("1", "NaN", "1", .toNearestOrEven)
+ /* dqmax156 */ self.max128("1000", "NaN", "1000", .toNearestOrEven)
+ /* dqmax157 */ self.max128("Inf", "NaN", "Infinity", .toNearestOrEven)
+ /* dqmax161 */ self.max128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax162 */ self.max128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax163 */ self.max128("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax164 */ self.max128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax165 */ self.max128("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax166 */ self.max128("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax167 */ self.max128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax168 */ self.max128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax169 */ self.max128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax170 */ self.max128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax171 */ self.max128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax172 */ self.max128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax173 */ self.max128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax174 */ self.max128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax175 */ self.max128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax176 */ self.max128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax177 */ self.max128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax178 */ self.max128("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax179 */ self.max128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax181 */ self.max128("NaN(0x9)", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmax182 */ self.max128("NaN(0x8)", "9", "9", .toNearestOrEven)
+ /* dqmax183 */ self.max128("-NaN(0x7)", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax184 */ self.max128("-NaN(0x1)", "NaN(0xb)", "-NaN(0x1)", .toNearestOrEven)
+ /* dqmax185 */ self.max128("NaN(0x2)", "NaN(0xc)", "NaN(0x2)", .toNearestOrEven)
+ /* dqmax186 */ self.max128("-NaN(0xd)", "-NaN(0x7)", "-NaN(0xd)", .toNearestOrEven)
+ /* dqmax187 */ self.max128("NaN(0xe)", "-NaN(0x5)", "NaN(0xe)", .toNearestOrEven)
+ /* dqmax188 */ self.max128("-Inf", "NaN(0x4)", "-Infinity", .toNearestOrEven)
+ /* dqmax189 */ self.max128("-9", "-NaN(0x3)", "-9", .toNearestOrEven)
+ /* dqmax190 */ self.max128("Inf", "NaN(0x2)", "Infinity", .toNearestOrEven)
+ /* dqmax191 */ self.max128("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax192 */ self.max128("sNaN(0x62)", "-1", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax193 */ self.max128("-sNaN(0x61)", "NaN", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax194 */ self.max128("sNaN(0x60)", "sNaN(0x5e)", "NaN(0x60)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax195 */ self.max128("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax196 */ self.max128("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax197 */ self.max128("0", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax198 */ self.max128("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax199 */ self.max128("NaN", "sNaN(0x59)", "NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmax221 */ self.max128("12345678000", "1", "12345678000", .toNearestOrEven)
+ /* dqmax222 */ self.max128("1", "12345678000", "12345678000", .toNearestOrEven)
+ /* dqmax223 */ self.max128("1234567800", "1", "1234567800", .toNearestOrEven)
+ /* dqmax224 */ self.max128("1", "1234567800", "1234567800", .toNearestOrEven)
+ /* dqmax225 */ self.max128("1234567890", "1", "1234567890", .toNearestOrEven)
+ /* dqmax226 */ self.max128("1", "1234567890", "1234567890", .toNearestOrEven)
+ /* dqmax227 */ self.max128("1234567891", "1", "1234567891", .toNearestOrEven)
+ /* dqmax228 */ self.max128("1", "1234567891", "1234567891", .toNearestOrEven)
+ /* dqmax229 */ self.max128("12345678901", "1", "12345678901", .toNearestOrEven)
+ /* dqmax230 */ self.max128("1", "12345678901", "12345678901", .toNearestOrEven)
+ /* dqmax231 */ self.max128("1234567896", "1", "1234567896", .toNearestOrEven)
+ /* dqmax232 */ self.max128("1", "1234567896", "1234567896", .toNearestOrEven)
+ /* dqmax233 */ self.max128("-1234567891", "1", "1", .toNearestOrEven)
+ /* dqmax234 */ self.max128("1", "-1234567891", "1", .toNearestOrEven)
+ /* dqmax235 */ self.max128("-12345678901", "1", "1", .toNearestOrEven)
+ /* dqmax236 */ self.max128("1", "-12345678901", "1", .toNearestOrEven)
+ /* dqmax237 */ self.max128("-1234567896", "1", "1", .toNearestOrEven)
+ /* dqmax238 */ self.max128("1", "-1234567896", "1", .toNearestOrEven)
+ /* dqmax280 */ self.max128("3", "2", "3", .toNearestOrEven)
+ /* dqmax281 */ self.max128("-10", "3", "3", .toNearestOrEven)
+ /* dqmax282 */ self.max128("1.0", "1", "1", .toNearestOrEven)
+ /* dqmax283 */ self.max128("1", "1.0", "1", .toNearestOrEven)
+ /* dqmax284 */ self.max128("7", "NaN", "7", .toNearestOrEven)
+ /* dqmax401 */ self.max128("Inf", "1.1", "Infinity", .toNearestOrEven)
+ /* dqmax402 */ self.max128("1.1", "1", "1.1", .toNearestOrEven)
+ /* dqmax403 */ self.max128("1", "1.0", "1", .toNearestOrEven)
+ /* dqmax404 */ self.max128("1.0", "0.1", "1.0", .toNearestOrEven)
+ /* dqmax405 */ self.max128("0.1", "0.10", "0.1", .toNearestOrEven)
+ /* dqmax406 */ self.max128("0.10", "0.100", "0.10", .toNearestOrEven)
+ /* dqmax407 */ self.max128("0.10", "0", "0.10", .toNearestOrEven)
+ /* dqmax408 */ self.max128("0", "0.0", "0", .toNearestOrEven)
+ /* dqmax409 */ self.max128("0.0", "-0", "0.0", .toNearestOrEven)
+ /* dqmax410 */ self.max128("0.0", "-0.0", "0.0", .toNearestOrEven)
+ /* dqmax411 */ self.max128("0.00", "-0.0", "0.00", .toNearestOrEven)
+ /* dqmax412 */ self.max128("0.0", "-0.00", "0.0", .toNearestOrEven)
+ /* dqmax413 */ self.max128("0", "-0.0", "0", .toNearestOrEven)
+ /* dqmax414 */ self.max128("0", "-0", "0", .toNearestOrEven)
+ /* dqmax415 */ self.max128("-0.0", "-0", "-0.0", .toNearestOrEven)
+ /* dqmax416 */ self.max128("-0", "-0.100", "-0", .toNearestOrEven)
+ /* dqmax417 */ self.max128("-0.100", "-0.10", "-0.100", .toNearestOrEven)
+ /* dqmax418 */ self.max128("-0.10", "-0.1", "-0.10", .toNearestOrEven)
+ /* dqmax419 */ self.max128("-0.1", "-1.0", "-0.1", .toNearestOrEven)
+ /* dqmax420 */ self.max128("-1.0", "-1", "-1.0", .toNearestOrEven)
+ /* dqmax421 */ self.max128("-1", "-1.1", "-1", .toNearestOrEven)
+ /* dqmax423 */ self.max128("-1.1", "-Inf", "-1.1", .toNearestOrEven)
+ /* dqmax431 */ self.max128("1.1", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmax432 */ self.max128("1", "1.1", "1.1", .toNearestOrEven)
+ /* dqmax433 */ self.max128("1.0", "1", "1", .toNearestOrEven)
+ /* dqmax434 */ self.max128("0.1", "1.0", "1.0", .toNearestOrEven)
+ /* dqmax435 */ self.max128("0.10", "0.1", "0.1", .toNearestOrEven)
+ /* dqmax436 */ self.max128("0.100", "0.10", "0.10", .toNearestOrEven)
+ /* dqmax437 */ self.max128("0", "0.10", "0.10", .toNearestOrEven)
+ /* dqmax438 */ self.max128("0.0", "0", "0", .toNearestOrEven)
+ /* dqmax439 */ self.max128("-0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmax440 */ self.max128("-0.0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmax441 */ self.max128("-0.0", "0.00", "0.00", .toNearestOrEven)
+ /* dqmax442 */ self.max128("-0.00", "0.0", "0.0", .toNearestOrEven)
+ /* dqmax443 */ self.max128("-0.0", "0", "0", .toNearestOrEven)
+ /* dqmax444 */ self.max128("-0", "0", "0", .toNearestOrEven)
+ /* dqmax445 */ self.max128("-0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmax446 */ self.max128("-0.100", "-0", "-0", .toNearestOrEven)
+ /* dqmax447 */ self.max128("-0.10", "-0.100", "-0.100", .toNearestOrEven)
+ /* dqmax448 */ self.max128("-0.1", "-0.10", "-0.10", .toNearestOrEven)
+ /* dqmax449 */ self.max128("-1.0", "-0.1", "-0.1", .toNearestOrEven)
+ /* dqmax450 */ self.max128("-1", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqmax451 */ self.max128("-1.1", "-1", "-1", .toNearestOrEven)
+ /* dqmax453 */ self.max128("-Inf", "-1.1", "-1.1", .toNearestOrEven)
+ /* dqmax460 */ self.max128("1000", "1E+3", "1E+3", .toNearestOrEven)
+ /* dqmax461 */ self.max128("1E+3", "1000", "1E+3", .toNearestOrEven)
+ /* dqmax462 */ self.max128("1000", "-1E+3", "1000", .toNearestOrEven)
+ /* dqmax463 */ self.max128("1E+3", "-1000", "1E+3", .toNearestOrEven)
+ /* dqmax464 */ self.max128("-1000", "1E+3", "1E+3", .toNearestOrEven)
+ /* dqmax465 */ self.max128("-1E+3", "1000", "1000", .toNearestOrEven)
+ /* dqmax466 */ self.max128("-1000", "-1E+3", "-1000", .toNearestOrEven)
+ /* dqmax467 */ self.max128("-1E+3", "-1000", "-1000", .toNearestOrEven)
+ /* dqmax471 */ self.max128("1.0", "0.1", "1.0", .toNearestOrEven)
+ /* dqmax472 */ self.max128("0.1", "1.0", "1.0", .toNearestOrEven)
+ /* dqmax473 */ self.max128("10.0", "0.1", "10.0", .toNearestOrEven)
+ /* dqmax474 */ self.max128("0.1", "10.0", "10.0", .toNearestOrEven)
+ /* dqmax475 */ self.max128("100", "1.0", "100", .toNearestOrEven)
+ /* dqmax476 */ self.max128("1.0", "100", "100", .toNearestOrEven)
+ /* dqmax477 */ self.max128("1000", "10.0", "1000", .toNearestOrEven)
+ /* dqmax478 */ self.max128("10.0", "1000", "1000", .toNearestOrEven)
+ /* dqmax479 */ self.max128("10000", "100.0", "10000", .toNearestOrEven)
+ /* dqmax480 */ self.max128("100.0", "10000", "10000", .toNearestOrEven)
+ /* dqmax481 */ self.max128("100000", "1000.0", "100000", .toNearestOrEven)
+ /* dqmax482 */ self.max128("1000.0", "100000", "100000", .toNearestOrEven)
+ /* dqmax483 */ self.max128("1000000", "10000.0", "1000000", .toNearestOrEven)
+ /* dqmax484 */ self.max128("10000.0", "1000000", "1000000", .toNearestOrEven)
+ /* dqmax510 */ self.max128("1.00E-6143", "0", "1.00E-6143", .toNearestOrEven)
+ /* dqmax511 */ self.max128("0.1E-6143", "0", "1E-6144", .toNearestOrEven)
+ /* dqmax512 */ self.max128("0.10E-6143", "0", "1.0E-6144", .toNearestOrEven)
+ /* dqmax513 */ self.max128("0.100E-6143", "0", "1.00E-6144", .toNearestOrEven)
+ /* dqmax514 */ self.max128("0.01E-6143", "0", "1E-6145", .toNearestOrEven)
+ /* dqmax515 */ self.max128("0.999E-6143", "0", "9.99E-6144", .toNearestOrEven)
+ /* dqmax516 */ self.max128("0.099E-6143", "0", "9.9E-6145", .toNearestOrEven)
+ /* dqmax517 */ self.max128("0.009E-6143", "0", "9E-6146", .toNearestOrEven)
+ /* dqmax518 */ self.max128("0.001E-6143", "0", "1E-6146", .toNearestOrEven)
+ /* dqmax519 */ self.max128("0.0009E-6143", "0", "9E-6147", .toNearestOrEven)
+ /* dqmax520 */ self.max128("0.0001E-6143", "0", "1E-6147", .toNearestOrEven)
+ /* dqmax530 */ self.max128("-1.00E-6143", "0", "0", .toNearestOrEven)
+ /* dqmax531 */ self.max128("-0.1E-6143", "0", "0", .toNearestOrEven)
+ /* dqmax532 */ self.max128("-0.10E-6143", "0", "0", .toNearestOrEven)
+ /* dqmax533 */ self.max128("-0.100E-6143", "0", "0", .toNearestOrEven)
+ /* dqmax534 */ self.max128("-0.01E-6143", "0", "0", .toNearestOrEven)
+ /* dqmax535 */ self.max128("-0.999E-6143", "0", "0", .toNearestOrEven)
+ /* dqmax536 */ self.max128("-0.099E-6143", "0", "0", .toNearestOrEven)
+ /* dqmax537 */ self.max128("-0.009E-6143", "0", "0", .toNearestOrEven)
+ /* dqmax538 */ self.max128("-0.001E-6143", "0", "0", .toNearestOrEven)
+ /* dqmax539 */ self.max128("-0.0009E-6143", "0", "0", .toNearestOrEven)
+ /* dqmax540 */ self.max128("-0.0001E-6143", "0", "0", .toNearestOrEven)
+ }
+
+ private func max128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = Decimal128.maximum(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_max(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ // MARK: - Maxmag
+
+ func test_maxmag64() {
+ /* ddmxg001 */ self.maxmag64("-2", "-2", "-2", .toNearestOrEven)
+ /* ddmxg002 */ self.maxmag64("-2", "-1", "-2", .toNearestOrEven)
+ /* ddmxg003 */ self.maxmag64("-2", "0", "-2", .toNearestOrEven)
+ /* ddmxg004 */ self.maxmag64("-2", "1", "-2", .toNearestOrEven)
+ /* ddmxg005 */ self.maxmag64("-2", "2", "2", .toNearestOrEven)
+ /* ddmxg006 */ self.maxmag64("-1", "-2", "-2", .toNearestOrEven)
+ /* ddmxg007 */ self.maxmag64("-1", "-1", "-1", .toNearestOrEven)
+ /* ddmxg008 */ self.maxmag64("-1", "0", "-1", .toNearestOrEven)
+ /* ddmxg009 */ self.maxmag64("-1", "1", "1", .toNearestOrEven)
+ /* ddmxg010 */ self.maxmag64("-1", "2", "2", .toNearestOrEven)
+ /* ddmxg011 */ self.maxmag64("0", "-2", "-2", .toNearestOrEven)
+ /* ddmxg012 */ self.maxmag64("0", "-1", "-1", .toNearestOrEven)
+ /* ddmxg013 */ self.maxmag64("0", "0", "0", .toNearestOrEven)
+ /* ddmxg014 */ self.maxmag64("0", "1", "1", .toNearestOrEven)
+ /* ddmxg015 */ self.maxmag64("0", "2", "2", .toNearestOrEven)
+ /* ddmxg016 */ self.maxmag64("1", "-2", "-2", .toNearestOrEven)
+ /* ddmxg017 */ self.maxmag64("1", "-1", "1", .toNearestOrEven)
+ /* ddmxg018 */ self.maxmag64("1", "0", "1", .toNearestOrEven)
+ /* ddmxg019 */ self.maxmag64("1", "1", "1", .toNearestOrEven)
+ /* ddmxg020 */ self.maxmag64("1", "2", "2", .toNearestOrEven)
+ /* ddmxg021 */ self.maxmag64("2", "-2", "2", .toNearestOrEven)
+ /* ddmxg022 */ self.maxmag64("2", "-1", "2", .toNearestOrEven)
+ /* ddmxg023 */ self.maxmag64("2", "0", "2", .toNearestOrEven)
+ /* ddmxg025 */ self.maxmag64("2", "1", "2", .toNearestOrEven)
+ /* ddmxg026 */ self.maxmag64("2", "2", "2", .toNearestOrEven)
+ /* ddmxg030 */ self.maxmag64("0", "0", "0", .toNearestOrEven)
+ /* ddmxg031 */ self.maxmag64("0", "-0", "0", .toNearestOrEven)
+ /* ddmxg032 */ self.maxmag64("0", "-0.0", "0", .toNearestOrEven)
+ /* ddmxg033 */ self.maxmag64("0", "0.0", "0", .toNearestOrEven)
+ /* ddmxg034 */ self.maxmag64("-0", "0", "0", .toNearestOrEven)
+ /* ddmxg035 */ self.maxmag64("-0", "-0", "-0", .toNearestOrEven)
+ /* ddmxg036 */ self.maxmag64("-0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmxg037 */ self.maxmag64("-0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmxg038 */ self.maxmag64("0.0", "0", "0", .toNearestOrEven)
+ /* ddmxg039 */ self.maxmag64("0.0", "-0", "0.0", .toNearestOrEven)
+ /* ddmxg040 */ self.maxmag64("0.0", "-0.0", "0.0", .toNearestOrEven)
+ /* ddmxg041 */ self.maxmag64("0.0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmxg042 */ self.maxmag64("-0.0", "0", "0", .toNearestOrEven)
+ /* ddmxg043 */ self.maxmag64("-0.0", "-0", "-0.0", .toNearestOrEven)
+ /* ddmxg044 */ self.maxmag64("-0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmxg045 */ self.maxmag64("-0.0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmxg050 */ self.maxmag64("-0E1", "0E1", "0E+1", .toNearestOrEven)
+ /* ddmxg051 */ self.maxmag64("-0E2", "0E2", "0E+2", .toNearestOrEven)
+ /* ddmxg052 */ self.maxmag64("-0E2", "0E1", "0E+1", .toNearestOrEven)
+ /* ddmxg053 */ self.maxmag64("-0E1", "0E2", "0E+2", .toNearestOrEven)
+ /* ddmxg054 */ self.maxmag64("0E1", "-0E1", "0E+1", .toNearestOrEven)
+ /* ddmxg055 */ self.maxmag64("0E2", "-0E2", "0E+2", .toNearestOrEven)
+ /* ddmxg056 */ self.maxmag64("0E2", "-0E1", "0E+2", .toNearestOrEven)
+ /* ddmxg057 */ self.maxmag64("0E1", "-0E2", "0E+1", .toNearestOrEven)
+ /* ddmxg058 */ self.maxmag64("0E1", "0E1", "0E+1", .toNearestOrEven)
+ /* ddmxg059 */ self.maxmag64("0E2", "0E2", "0E+2", .toNearestOrEven)
+ /* ddmxg060 */ self.maxmag64("0E2", "0E1", "0E+2", .toNearestOrEven)
+ /* ddmxg061 */ self.maxmag64("0E1", "0E2", "0E+2", .toNearestOrEven)
+ /* ddmxg062 */ self.maxmag64("-0E1", "-0E1", "-0E+1", .toNearestOrEven)
+ /* ddmxg063 */ self.maxmag64("-0E2", "-0E2", "-0E+2", .toNearestOrEven)
+ /* ddmxg064 */ self.maxmag64("-0E2", "-0E1", "-0E+1", .toNearestOrEven)
+ /* ddmxg065 */ self.maxmag64("-0E1", "-0E2", "-0E+1", .toNearestOrEven)
+ /* ddmxg090 */ self.maxmag64("Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg091 */ self.maxmag64("Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* ddmxg092 */ self.maxmag64("Inf", "-1", "Infinity", .toNearestOrEven)
+ /* ddmxg093 */ self.maxmag64("Inf", "-0", "Infinity", .toNearestOrEven)
+ /* ddmxg094 */ self.maxmag64("Inf", "0", "Infinity", .toNearestOrEven)
+ /* ddmxg095 */ self.maxmag64("Inf", "1", "Infinity", .toNearestOrEven)
+ /* ddmxg096 */ self.maxmag64("Inf", "1000", "Infinity", .toNearestOrEven)
+ /* ddmxg097 */ self.maxmag64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg098 */ self.maxmag64("-1000", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg099 */ self.maxmag64("-Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg100 */ self.maxmag64("-1", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg101 */ self.maxmag64("-0", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg102 */ self.maxmag64("0", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg103 */ self.maxmag64("1", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg104 */ self.maxmag64("1000", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg105 */ self.maxmag64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg120 */ self.maxmag64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmxg121 */ self.maxmag64("-Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* ddmxg122 */ self.maxmag64("-Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* ddmxg123 */ self.maxmag64("-Inf", "-0", "-Infinity", .toNearestOrEven)
+ /* ddmxg124 */ self.maxmag64("-Inf", "0", "-Infinity", .toNearestOrEven)
+ /* ddmxg125 */ self.maxmag64("-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* ddmxg126 */ self.maxmag64("-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* ddmxg127 */ self.maxmag64("-Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg128 */ self.maxmag64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmxg129 */ self.maxmag64("-1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmxg130 */ self.maxmag64("-1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmxg131 */ self.maxmag64("-0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmxg132 */ self.maxmag64("0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmxg133 */ self.maxmag64("1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmxg134 */ self.maxmag64("1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmxg135 */ self.maxmag64("Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg141 */ self.maxmag64("NaN", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmxg142 */ self.maxmag64("NaN", "-1000", "-1000", .toNearestOrEven)
+ /* ddmxg143 */ self.maxmag64("NaN", "-1", "-1", .toNearestOrEven)
+ /* ddmxg144 */ self.maxmag64("NaN", "-0", "-0", .toNearestOrEven)
+ /* ddmxg145 */ self.maxmag64("NaN", "0", "0", .toNearestOrEven)
+ /* ddmxg146 */ self.maxmag64("NaN", "1", "1", .toNearestOrEven)
+ /* ddmxg147 */ self.maxmag64("NaN", "1000", "1000", .toNearestOrEven)
+ /* ddmxg148 */ self.maxmag64("NaN", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg149 */ self.maxmag64("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* ddmxg150 */ self.maxmag64("-Inf", "NaN", "-Infinity", .toNearestOrEven)
+ /* ddmxg151 */ self.maxmag64("-1000", "NaN", "-1000", .toNearestOrEven)
+ /* ddmxg152 */ self.maxmag64("-1", "NaN", "-1", .toNearestOrEven)
+ /* ddmxg153 */ self.maxmag64("-0", "NaN", "-0", .toNearestOrEven)
+ /* ddmxg154 */ self.maxmag64("0", "NaN", "0", .toNearestOrEven)
+ /* ddmxg155 */ self.maxmag64("1", "NaN", "1", .toNearestOrEven)
+ /* ddmxg156 */ self.maxmag64("1000", "NaN", "1000", .toNearestOrEven)
+ /* ddmxg157 */ self.maxmag64("Inf", "NaN", "Infinity", .toNearestOrEven)
+ /* ddmxg161 */ self.maxmag64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg162 */ self.maxmag64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg163 */ self.maxmag64("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg164 */ self.maxmag64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg165 */ self.maxmag64("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg166 */ self.maxmag64("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg167 */ self.maxmag64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg168 */ self.maxmag64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg169 */ self.maxmag64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg170 */ self.maxmag64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg171 */ self.maxmag64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg172 */ self.maxmag64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg173 */ self.maxmag64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg174 */ self.maxmag64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg175 */ self.maxmag64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg176 */ self.maxmag64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg177 */ self.maxmag64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg178 */ self.maxmag64("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg179 */ self.maxmag64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg181 */ self.maxmag64("NaN(0x9)", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmxg182 */ self.maxmag64("NaN(0x8)", "9", "9", .toNearestOrEven)
+ /* ddmxg183 */ self.maxmag64("-NaN(0x7)", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg184 */ self.maxmag64("-NaN(0x1)", "NaN(0xb)", "-NaN(0x1)", .toNearestOrEven)
+ /* ddmxg185 */ self.maxmag64("NaN(0x2)", "NaN(0xc)", "NaN(0x2)", .toNearestOrEven)
+ /* ddmxg186 */ self.maxmag64("-NaN(0xd)", "-NaN(0x7)", "-NaN(0xd)", .toNearestOrEven)
+ /* ddmxg187 */ self.maxmag64("NaN(0xe)", "-NaN(0x5)", "NaN(0xe)", .toNearestOrEven)
+ /* ddmxg188 */ self.maxmag64("-Inf", "NaN(0x4)", "-Infinity", .toNearestOrEven)
+ /* ddmxg189 */ self.maxmag64("-9", "-NaN(0x3)", "-9", .toNearestOrEven)
+ /* ddmxg190 */ self.maxmag64("Inf", "NaN(0x2)", "Infinity", .toNearestOrEven)
+ /* ddmxg191 */ self.maxmag64("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg192 */ self.maxmag64("sNaN(0x62)", "-1", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg193 */ self.maxmag64("-sNaN(0x61)", "NaN", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg194 */ self.maxmag64("sNaN(0x60)", "sNaN(0x5e)", "NaN(0x60)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg195 */ self.maxmag64("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg196 */ self.maxmag64("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg197 */ self.maxmag64("0", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg198 */ self.maxmag64("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg199 */ self.maxmag64("NaN", "sNaN(0x59)", "NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmxg221 */ self.maxmag64("12345678000", "1", "12345678000", .toNearestOrEven)
+ /* ddmxg222 */ self.maxmag64("1", "12345678000", "12345678000", .toNearestOrEven)
+ /* ddmxg223 */ self.maxmag64("1234567800", "1", "1234567800", .toNearestOrEven)
+ /* ddmxg224 */ self.maxmag64("1", "1234567800", "1234567800", .toNearestOrEven)
+ /* ddmxg225 */ self.maxmag64("1234567890", "1", "1234567890", .toNearestOrEven)
+ /* ddmxg226 */ self.maxmag64("1", "1234567890", "1234567890", .toNearestOrEven)
+ /* ddmxg227 */ self.maxmag64("1234567891", "1", "1234567891", .toNearestOrEven)
+ /* ddmxg228 */ self.maxmag64("1", "1234567891", "1234567891", .toNearestOrEven)
+ /* ddmxg229 */ self.maxmag64("12345678901", "1", "12345678901", .toNearestOrEven)
+ /* ddmxg230 */ self.maxmag64("1", "12345678901", "12345678901", .toNearestOrEven)
+ /* ddmxg231 */ self.maxmag64("1234567896", "1", "1234567896", .toNearestOrEven)
+ /* ddmxg232 */ self.maxmag64("1", "1234567896", "1234567896", .toNearestOrEven)
+ /* ddmxg233 */ self.maxmag64("-1234567891", "1", "-1234567891", .toNearestOrEven)
+ /* ddmxg234 */ self.maxmag64("1", "-1234567891", "-1234567891", .toNearestOrEven)
+ /* ddmxg235 */ self.maxmag64("-12345678901", "1", "-12345678901", .toNearestOrEven)
+ /* ddmxg236 */ self.maxmag64("1", "-12345678901", "-12345678901", .toNearestOrEven)
+ /* ddmxg237 */ self.maxmag64("-1234567896", "1", "-1234567896", .toNearestOrEven)
+ /* ddmxg238 */ self.maxmag64("1", "-1234567896", "-1234567896", .toNearestOrEven)
+ /* ddmxg280 */ self.maxmag64("3", "2", "3", .toNearestOrEven)
+ /* ddmxg281 */ self.maxmag64("-10", "3", "-10", .toNearestOrEven)
+ /* ddmxg282 */ self.maxmag64("1.0", "1", "1", .toNearestOrEven)
+ /* ddmxg283 */ self.maxmag64("1", "1.0", "1", .toNearestOrEven)
+ /* ddmxg284 */ self.maxmag64("7", "NaN", "7", .toNearestOrEven)
+ /* ddmxg401 */ self.maxmag64("Inf", "1.1", "Infinity", .toNearestOrEven)
+ /* ddmxg402 */ self.maxmag64("1.1", "1", "1.1", .toNearestOrEven)
+ /* ddmxg403 */ self.maxmag64("1", "1.0", "1", .toNearestOrEven)
+ /* ddmxg404 */ self.maxmag64("1.0", "0.1", "1.0", .toNearestOrEven)
+ /* ddmxg405 */ self.maxmag64("0.1", "0.10", "0.1", .toNearestOrEven)
+ /* ddmxg406 */ self.maxmag64("0.10", "0.100", "0.10", .toNearestOrEven)
+ /* ddmxg407 */ self.maxmag64("0.10", "0", "0.10", .toNearestOrEven)
+ /* ddmxg408 */ self.maxmag64("0", "0.0", "0", .toNearestOrEven)
+ /* ddmxg409 */ self.maxmag64("0.0", "-0", "0.0", .toNearestOrEven)
+ /* ddmxg410 */ self.maxmag64("0.0", "-0.0", "0.0", .toNearestOrEven)
+ /* ddmxg411 */ self.maxmag64("0.00", "-0.0", "0.00", .toNearestOrEven)
+ /* ddmxg412 */ self.maxmag64("0.0", "-0.00", "0.0", .toNearestOrEven)
+ /* ddmxg413 */ self.maxmag64("0", "-0.0", "0", .toNearestOrEven)
+ /* ddmxg414 */ self.maxmag64("0", "-0", "0", .toNearestOrEven)
+ /* ddmxg415 */ self.maxmag64("-0.0", "-0", "-0.0", .toNearestOrEven)
+ /* ddmxg416 */ self.maxmag64("-0", "-0.100", "-0.100", .toNearestOrEven)
+ /* ddmxg417 */ self.maxmag64("-0.100", "-0.10", "-0.100", .toNearestOrEven)
+ /* ddmxg418 */ self.maxmag64("-0.10", "-0.1", "-0.10", .toNearestOrEven)
+ /* ddmxg419 */ self.maxmag64("-0.1", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddmxg420 */ self.maxmag64("-1.0", "-1", "-1.0", .toNearestOrEven)
+ /* ddmxg421 */ self.maxmag64("-1", "-1.1", "-1.1", .toNearestOrEven)
+ /* ddmxg423 */ self.maxmag64("-1.1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmxg431 */ self.maxmag64("1.1", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmxg432 */ self.maxmag64("1", "1.1", "1.1", .toNearestOrEven)
+ /* ddmxg433 */ self.maxmag64("1.0", "1", "1", .toNearestOrEven)
+ /* ddmxg434 */ self.maxmag64("0.1", "1.0", "1.0", .toNearestOrEven)
+ /* ddmxg435 */ self.maxmag64("0.10", "0.1", "0.1", .toNearestOrEven)
+ /* ddmxg436 */ self.maxmag64("0.100", "0.10", "0.10", .toNearestOrEven)
+ /* ddmxg437 */ self.maxmag64("0", "0.10", "0.10", .toNearestOrEven)
+ /* ddmxg438 */ self.maxmag64("0.0", "0", "0", .toNearestOrEven)
+ /* ddmxg439 */ self.maxmag64("-0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmxg440 */ self.maxmag64("-0.0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmxg441 */ self.maxmag64("-0.0", "0.00", "0.00", .toNearestOrEven)
+ /* ddmxg442 */ self.maxmag64("-0.00", "0.0", "0.0", .toNearestOrEven)
+ /* ddmxg443 */ self.maxmag64("-0.0", "0", "0", .toNearestOrEven)
+ /* ddmxg444 */ self.maxmag64("-0", "0", "0", .toNearestOrEven)
+ /* ddmxg445 */ self.maxmag64("-0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmxg446 */ self.maxmag64("-0.100", "-0", "-0.100", .toNearestOrEven)
+ /* ddmxg447 */ self.maxmag64("-0.10", "-0.100", "-0.100", .toNearestOrEven)
+ /* ddmxg448 */ self.maxmag64("-0.1", "-0.10", "-0.10", .toNearestOrEven)
+ /* ddmxg449 */ self.maxmag64("-1.0", "-0.1", "-1.0", .toNearestOrEven)
+ /* ddmxg450 */ self.maxmag64("-1", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddmxg451 */ self.maxmag64("-1.1", "-1", "-1.1", .toNearestOrEven)
+ /* ddmxg453 */ self.maxmag64("-Inf", "-1.1", "-Infinity", .toNearestOrEven)
+ /* ddmxg460 */ self.maxmag64("1000", "1E+3", "1E+3", .toNearestOrEven)
+ /* ddmxg461 */ self.maxmag64("1E+3", "1000", "1E+3", .toNearestOrEven)
+ /* ddmxg462 */ self.maxmag64("1000", "-1E+3", "1000", .toNearestOrEven)
+ /* ddmxg463 */ self.maxmag64("1E+3", "-1000", "1E+3", .toNearestOrEven)
+ /* ddmxg464 */ self.maxmag64("-1000", "1E+3", "1E+3", .toNearestOrEven)
+ /* ddmxg465 */ self.maxmag64("-1E+3", "1000", "1000", .toNearestOrEven)
+ /* ddmxg466 */ self.maxmag64("-1000", "-1E+3", "-1000", .toNearestOrEven)
+ /* ddmxg467 */ self.maxmag64("-1E+3", "-1000", "-1000", .toNearestOrEven)
+ /* ddmxg510 */ self.maxmag64("1.00E-383", "0", "1.00E-383", .toNearestOrEven)
+ /* ddmxg511 */ self.maxmag64("0.1E-383", "0", "1E-384", .toNearestOrEven)
+ /* ddmxg512 */ self.maxmag64("0.10E-383", "0", "1.0E-384", .toNearestOrEven)
+ /* ddmxg513 */ self.maxmag64("0.100E-383", "0", "1.00E-384", .toNearestOrEven)
+ /* ddmxg514 */ self.maxmag64("0.01E-383", "0", "1E-385", .toNearestOrEven)
+ /* ddmxg515 */ self.maxmag64("0.999E-383", "0", "9.99E-384", .toNearestOrEven)
+ /* ddmxg516 */ self.maxmag64("0.099E-383", "0", "9.9E-385", .toNearestOrEven)
+ /* ddmxg517 */ self.maxmag64("0.009E-383", "0", "9E-386", .toNearestOrEven)
+ /* ddmxg518 */ self.maxmag64("0.001E-383", "0", "1E-386", .toNearestOrEven)
+ /* ddmxg519 */ self.maxmag64("0.0009E-383", "0", "9E-387", .toNearestOrEven)
+ /* ddmxg520 */ self.maxmag64("0.0001E-383", "0", "1E-387", .toNearestOrEven)
+ /* ddmxg530 */ self.maxmag64("-1.00E-383", "0", "-1.00E-383", .toNearestOrEven)
+ /* ddmxg531 */ self.maxmag64("-0.1E-383", "0", "-1E-384", .toNearestOrEven)
+ /* ddmxg532 */ self.maxmag64("-0.10E-383", "0", "-1.0E-384", .toNearestOrEven)
+ /* ddmxg533 */ self.maxmag64("-0.100E-383", "0", "-1.00E-384", .toNearestOrEven)
+ /* ddmxg534 */ self.maxmag64("-0.01E-383", "0", "-1E-385", .toNearestOrEven)
+ /* ddmxg535 */ self.maxmag64("-0.999E-383", "0", "-9.99E-384", .toNearestOrEven)
+ /* ddmxg536 */ self.maxmag64("-0.099E-383", "0", "-9.9E-385", .toNearestOrEven)
+ /* ddmxg537 */ self.maxmag64("-0.009E-383", "0", "-9E-386", .toNearestOrEven)
+ /* ddmxg538 */ self.maxmag64("-0.001E-383", "0", "-1E-386", .toNearestOrEven)
+ /* ddmxg539 */ self.maxmag64("-0.0009E-383", "0", "-9E-387", .toNearestOrEven)
+ /* ddmxg540 */ self.maxmag64("-0.0001E-383", "0", "-1E-387", .toNearestOrEven)
+ }
+
+ private func maxmag64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = Decimal64.maximumMagnitude(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_max(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_maxmag128() {
+ /* dqmxg001 */ self.maxmag128("-2", "-2", "-2", .toNearestOrEven)
+ /* dqmxg002 */ self.maxmag128("-2", "-1", "-2", .toNearestOrEven)
+ /* dqmxg003 */ self.maxmag128("-2", "0", "-2", .toNearestOrEven)
+ /* dqmxg004 */ self.maxmag128("-2", "1", "-2", .toNearestOrEven)
+ /* dqmxg005 */ self.maxmag128("-2", "2", "2", .toNearestOrEven)
+ /* dqmxg006 */ self.maxmag128("-1", "-2", "-2", .toNearestOrEven)
+ /* dqmxg007 */ self.maxmag128("-1", "-1", "-1", .toNearestOrEven)
+ /* dqmxg008 */ self.maxmag128("-1", "0", "-1", .toNearestOrEven)
+ /* dqmxg009 */ self.maxmag128("-1", "1", "1", .toNearestOrEven)
+ /* dqmxg010 */ self.maxmag128("-1", "2", "2", .toNearestOrEven)
+ /* dqmxg011 */ self.maxmag128("0", "-2", "-2", .toNearestOrEven)
+ /* dqmxg012 */ self.maxmag128("0", "-1", "-1", .toNearestOrEven)
+ /* dqmxg013 */ self.maxmag128("0", "0", "0", .toNearestOrEven)
+ /* dqmxg014 */ self.maxmag128("0", "1", "1", .toNearestOrEven)
+ /* dqmxg015 */ self.maxmag128("0", "2", "2", .toNearestOrEven)
+ /* dqmxg016 */ self.maxmag128("1", "-2", "-2", .toNearestOrEven)
+ /* dqmxg017 */ self.maxmag128("1", "-1", "1", .toNearestOrEven)
+ /* dqmxg018 */ self.maxmag128("1", "0", "1", .toNearestOrEven)
+ /* dqmxg019 */ self.maxmag128("1", "1", "1", .toNearestOrEven)
+ /* dqmxg020 */ self.maxmag128("1", "2", "2", .toNearestOrEven)
+ /* dqmxg021 */ self.maxmag128("2", "-2", "2", .toNearestOrEven)
+ /* dqmxg022 */ self.maxmag128("2", "-1", "2", .toNearestOrEven)
+ /* dqmxg023 */ self.maxmag128("2", "0", "2", .toNearestOrEven)
+ /* dqmxg025 */ self.maxmag128("2", "1", "2", .toNearestOrEven)
+ /* dqmxg026 */ self.maxmag128("2", "2", "2", .toNearestOrEven)
+ /* dqmxg030 */ self.maxmag128("0", "0", "0", .toNearestOrEven)
+ /* dqmxg031 */ self.maxmag128("0", "-0", "0", .toNearestOrEven)
+ /* dqmxg032 */ self.maxmag128("0", "-0.0", "0", .toNearestOrEven)
+ /* dqmxg033 */ self.maxmag128("0", "0.0", "0", .toNearestOrEven)
+ /* dqmxg034 */ self.maxmag128("-0", "0", "0", .toNearestOrEven)
+ /* dqmxg035 */ self.maxmag128("-0", "-0", "-0", .toNearestOrEven)
+ /* dqmxg036 */ self.maxmag128("-0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmxg037 */ self.maxmag128("-0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmxg038 */ self.maxmag128("0.0", "0", "0", .toNearestOrEven)
+ /* dqmxg039 */ self.maxmag128("0.0", "-0", "0.0", .toNearestOrEven)
+ /* dqmxg040 */ self.maxmag128("0.0", "-0.0", "0.0", .toNearestOrEven)
+ /* dqmxg041 */ self.maxmag128("0.0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmxg042 */ self.maxmag128("-0.0", "0", "0", .toNearestOrEven)
+ /* dqmxg043 */ self.maxmag128("-0.0", "-0", "-0.0", .toNearestOrEven)
+ /* dqmxg044 */ self.maxmag128("-0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmxg045 */ self.maxmag128("-0.0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmxg050 */ self.maxmag128("-0E1", "0E1", "0E+1", .toNearestOrEven)
+ /* dqmxg051 */ self.maxmag128("-0E2", "0E2", "0E+2", .toNearestOrEven)
+ /* dqmxg052 */ self.maxmag128("-0E2", "0E1", "0E+1", .toNearestOrEven)
+ /* dqmxg053 */ self.maxmag128("-0E1", "0E2", "0E+2", .toNearestOrEven)
+ /* dqmxg054 */ self.maxmag128("0E1", "-0E1", "0E+1", .toNearestOrEven)
+ /* dqmxg055 */ self.maxmag128("0E2", "-0E2", "0E+2", .toNearestOrEven)
+ /* dqmxg056 */ self.maxmag128("0E2", "-0E1", "0E+2", .toNearestOrEven)
+ /* dqmxg057 */ self.maxmag128("0E1", "-0E2", "0E+1", .toNearestOrEven)
+ /* dqmxg058 */ self.maxmag128("0E1", "0E1", "0E+1", .toNearestOrEven)
+ /* dqmxg059 */ self.maxmag128("0E2", "0E2", "0E+2", .toNearestOrEven)
+ /* dqmxg060 */ self.maxmag128("0E2", "0E1", "0E+2", .toNearestOrEven)
+ /* dqmxg061 */ self.maxmag128("0E1", "0E2", "0E+2", .toNearestOrEven)
+ /* dqmxg062 */ self.maxmag128("-0E1", "-0E1", "-0E+1", .toNearestOrEven)
+ /* dqmxg063 */ self.maxmag128("-0E2", "-0E2", "-0E+2", .toNearestOrEven)
+ /* dqmxg064 */ self.maxmag128("-0E2", "-0E1", "-0E+1", .toNearestOrEven)
+ /* dqmxg065 */ self.maxmag128("-0E1", "-0E2", "-0E+1", .toNearestOrEven)
+ /* dqmxg090 */ self.maxmag128("Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg091 */ self.maxmag128("Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* dqmxg092 */ self.maxmag128("Inf", "-1", "Infinity", .toNearestOrEven)
+ /* dqmxg093 */ self.maxmag128("Inf", "-0", "Infinity", .toNearestOrEven)
+ /* dqmxg094 */ self.maxmag128("Inf", "0", "Infinity", .toNearestOrEven)
+ /* dqmxg095 */ self.maxmag128("Inf", "1", "Infinity", .toNearestOrEven)
+ /* dqmxg096 */ self.maxmag128("Inf", "1000", "Infinity", .toNearestOrEven)
+ /* dqmxg097 */ self.maxmag128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg098 */ self.maxmag128("-1000", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg099 */ self.maxmag128("-Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg100 */ self.maxmag128("-1", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg101 */ self.maxmag128("-0", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg102 */ self.maxmag128("0", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg103 */ self.maxmag128("1", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg104 */ self.maxmag128("1000", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg105 */ self.maxmag128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg120 */ self.maxmag128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmxg121 */ self.maxmag128("-Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* dqmxg122 */ self.maxmag128("-Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* dqmxg123 */ self.maxmag128("-Inf", "-0", "-Infinity", .toNearestOrEven)
+ /* dqmxg124 */ self.maxmag128("-Inf", "0", "-Infinity", .toNearestOrEven)
+ /* dqmxg125 */ self.maxmag128("-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* dqmxg126 */ self.maxmag128("-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* dqmxg127 */ self.maxmag128("-Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg128 */ self.maxmag128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmxg129 */ self.maxmag128("-1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmxg130 */ self.maxmag128("-1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmxg131 */ self.maxmag128("-0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmxg132 */ self.maxmag128("0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmxg133 */ self.maxmag128("1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmxg134 */ self.maxmag128("1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmxg135 */ self.maxmag128("Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg141 */ self.maxmag128("NaN", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmxg142 */ self.maxmag128("NaN", "-1000", "-1000", .toNearestOrEven)
+ /* dqmxg143 */ self.maxmag128("NaN", "-1", "-1", .toNearestOrEven)
+ /* dqmxg144 */ self.maxmag128("NaN", "-0", "-0", .toNearestOrEven)
+ /* dqmxg145 */ self.maxmag128("NaN", "0", "0", .toNearestOrEven)
+ /* dqmxg146 */ self.maxmag128("NaN", "1", "1", .toNearestOrEven)
+ /* dqmxg147 */ self.maxmag128("NaN", "1000", "1000", .toNearestOrEven)
+ /* dqmxg148 */ self.maxmag128("NaN", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg149 */ self.maxmag128("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* dqmxg150 */ self.maxmag128("-Inf", "NaN", "-Infinity", .toNearestOrEven)
+ /* dqmxg151 */ self.maxmag128("-1000", "NaN", "-1000", .toNearestOrEven)
+ /* dqmxg152 */ self.maxmag128("-1", "NaN", "-1", .toNearestOrEven)
+ /* dqmxg153 */ self.maxmag128("-0", "NaN", "-0", .toNearestOrEven)
+ /* dqmxg154 */ self.maxmag128("0", "NaN", "0", .toNearestOrEven)
+ /* dqmxg155 */ self.maxmag128("1", "NaN", "1", .toNearestOrEven)
+ /* dqmxg156 */ self.maxmag128("1000", "NaN", "1000", .toNearestOrEven)
+ /* dqmxg157 */ self.maxmag128("Inf", "NaN", "Infinity", .toNearestOrEven)
+ /* dqmxg161 */ self.maxmag128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg162 */ self.maxmag128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg163 */ self.maxmag128("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg164 */ self.maxmag128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg165 */ self.maxmag128("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg166 */ self.maxmag128("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg167 */ self.maxmag128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg168 */ self.maxmag128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg169 */ self.maxmag128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg170 */ self.maxmag128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg171 */ self.maxmag128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg172 */ self.maxmag128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg173 */ self.maxmag128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg174 */ self.maxmag128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg175 */ self.maxmag128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg176 */ self.maxmag128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg177 */ self.maxmag128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg178 */ self.maxmag128("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg179 */ self.maxmag128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg181 */ self.maxmag128("NaN(0x9)", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmxg182 */ self.maxmag128("NaN(0x8)", "9", "9", .toNearestOrEven)
+ /* dqmxg183 */ self.maxmag128("-NaN(0x7)", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg184 */ self.maxmag128("-NaN(0x1)", "NaN(0xb)", "-NaN(0x1)", .toNearestOrEven)
+ /* dqmxg185 */ self.maxmag128("NaN(0x2)", "NaN(0xc)", "NaN(0x2)", .toNearestOrEven)
+ /* dqmxg186 */ self.maxmag128("-NaN(0xd)", "-NaN(0x7)", "-NaN(0xd)", .toNearestOrEven)
+ /* dqmxg187 */ self.maxmag128("NaN(0xe)", "-NaN(0x5)", "NaN(0xe)", .toNearestOrEven)
+ /* dqmxg188 */ self.maxmag128("-Inf", "NaN(0x4)", "-Infinity", .toNearestOrEven)
+ /* dqmxg189 */ self.maxmag128("-9", "-NaN(0x3)", "-9", .toNearestOrEven)
+ /* dqmxg190 */ self.maxmag128("Inf", "NaN(0x2)", "Infinity", .toNearestOrEven)
+ /* dqmxg191 */ self.maxmag128("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg192 */ self.maxmag128("sNaN(0x62)", "-1", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg193 */ self.maxmag128("-sNaN(0x61)", "NaN", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg194 */ self.maxmag128("sNaN(0x60)", "sNaN(0x5e)", "NaN(0x60)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg195 */ self.maxmag128("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg196 */ self.maxmag128("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg197 */ self.maxmag128("0", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg198 */ self.maxmag128("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg199 */ self.maxmag128("NaN", "sNaN(0x59)", "NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmxg221 */ self.maxmag128("12345678000", "1", "12345678000", .toNearestOrEven)
+ /* dqmxg222 */ self.maxmag128("1", "12345678000", "12345678000", .toNearestOrEven)
+ /* dqmxg223 */ self.maxmag128("1234567800", "1", "1234567800", .toNearestOrEven)
+ /* dqmxg224 */ self.maxmag128("1", "1234567800", "1234567800", .toNearestOrEven)
+ /* dqmxg225 */ self.maxmag128("1234567890", "1", "1234567890", .toNearestOrEven)
+ /* dqmxg226 */ self.maxmag128("1", "1234567890", "1234567890", .toNearestOrEven)
+ /* dqmxg227 */ self.maxmag128("1234567891", "1", "1234567891", .toNearestOrEven)
+ /* dqmxg228 */ self.maxmag128("1", "1234567891", "1234567891", .toNearestOrEven)
+ /* dqmxg229 */ self.maxmag128("12345678901", "1", "12345678901", .toNearestOrEven)
+ /* dqmxg230 */ self.maxmag128("1", "12345678901", "12345678901", .toNearestOrEven)
+ /* dqmxg231 */ self.maxmag128("1234567896", "1", "1234567896", .toNearestOrEven)
+ /* dqmxg232 */ self.maxmag128("1", "1234567896", "1234567896", .toNearestOrEven)
+ /* dqmxg233 */ self.maxmag128("-1234567891", "1", "-1234567891", .toNearestOrEven)
+ /* dqmxg234 */ self.maxmag128("1", "-1234567891", "-1234567891", .toNearestOrEven)
+ /* dqmxg235 */ self.maxmag128("-12345678901", "1", "-12345678901", .toNearestOrEven)
+ /* dqmxg236 */ self.maxmag128("1", "-12345678901", "-12345678901", .toNearestOrEven)
+ /* dqmxg237 */ self.maxmag128("-1234567896", "1", "-1234567896", .toNearestOrEven)
+ /* dqmxg238 */ self.maxmag128("1", "-1234567896", "-1234567896", .toNearestOrEven)
+ /* dqmxg280 */ self.maxmag128("3", "2", "3", .toNearestOrEven)
+ /* dqmxg281 */ self.maxmag128("-10", "3", "-10", .toNearestOrEven)
+ /* dqmxg282 */ self.maxmag128("1.0", "1", "1", .toNearestOrEven)
+ /* dqmxg283 */ self.maxmag128("1", "1.0", "1", .toNearestOrEven)
+ /* dqmxg284 */ self.maxmag128("7", "NaN", "7", .toNearestOrEven)
+ /* dqmxg401 */ self.maxmag128("Inf", "1.1", "Infinity", .toNearestOrEven)
+ /* dqmxg402 */ self.maxmag128("1.1", "1", "1.1", .toNearestOrEven)
+ /* dqmxg403 */ self.maxmag128("1", "1.0", "1", .toNearestOrEven)
+ /* dqmxg404 */ self.maxmag128("1.0", "0.1", "1.0", .toNearestOrEven)
+ /* dqmxg405 */ self.maxmag128("0.1", "0.10", "0.1", .toNearestOrEven)
+ /* dqmxg406 */ self.maxmag128("0.10", "0.100", "0.10", .toNearestOrEven)
+ /* dqmxg407 */ self.maxmag128("0.10", "0", "0.10", .toNearestOrEven)
+ /* dqmxg408 */ self.maxmag128("0", "0.0", "0", .toNearestOrEven)
+ /* dqmxg409 */ self.maxmag128("0.0", "-0", "0.0", .toNearestOrEven)
+ /* dqmxg410 */ self.maxmag128("0.0", "-0.0", "0.0", .toNearestOrEven)
+ /* dqmxg411 */ self.maxmag128("0.00", "-0.0", "0.00", .toNearestOrEven)
+ /* dqmxg412 */ self.maxmag128("0.0", "-0.00", "0.0", .toNearestOrEven)
+ /* dqmxg413 */ self.maxmag128("0", "-0.0", "0", .toNearestOrEven)
+ /* dqmxg414 */ self.maxmag128("0", "-0", "0", .toNearestOrEven)
+ /* dqmxg415 */ self.maxmag128("-0.0", "-0", "-0.0", .toNearestOrEven)
+ /* dqmxg416 */ self.maxmag128("-0", "-0.100", "-0.100", .toNearestOrEven)
+ /* dqmxg417 */ self.maxmag128("-0.100", "-0.10", "-0.100", .toNearestOrEven)
+ /* dqmxg418 */ self.maxmag128("-0.10", "-0.1", "-0.10", .toNearestOrEven)
+ /* dqmxg419 */ self.maxmag128("-0.1", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqmxg420 */ self.maxmag128("-1.0", "-1", "-1.0", .toNearestOrEven)
+ /* dqmxg421 */ self.maxmag128("-1", "-1.1", "-1.1", .toNearestOrEven)
+ /* dqmxg423 */ self.maxmag128("-1.1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmxg431 */ self.maxmag128("1.1", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmxg432 */ self.maxmag128("1", "1.1", "1.1", .toNearestOrEven)
+ /* dqmxg433 */ self.maxmag128("1.0", "1", "1", .toNearestOrEven)
+ /* dqmxg434 */ self.maxmag128("0.1", "1.0", "1.0", .toNearestOrEven)
+ /* dqmxg435 */ self.maxmag128("0.10", "0.1", "0.1", .toNearestOrEven)
+ /* dqmxg436 */ self.maxmag128("0.100", "0.10", "0.10", .toNearestOrEven)
+ /* dqmxg437 */ self.maxmag128("0", "0.10", "0.10", .toNearestOrEven)
+ /* dqmxg438 */ self.maxmag128("0.0", "0", "0", .toNearestOrEven)
+ /* dqmxg439 */ self.maxmag128("-0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmxg440 */ self.maxmag128("-0.0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmxg441 */ self.maxmag128("-0.0", "0.00", "0.00", .toNearestOrEven)
+ /* dqmxg442 */ self.maxmag128("-0.00", "0.0", "0.0", .toNearestOrEven)
+ /* dqmxg443 */ self.maxmag128("-0.0", "0", "0", .toNearestOrEven)
+ /* dqmxg444 */ self.maxmag128("-0", "0", "0", .toNearestOrEven)
+ /* dqmxg445 */ self.maxmag128("-0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmxg446 */ self.maxmag128("-0.100", "-0", "-0.100", .toNearestOrEven)
+ /* dqmxg447 */ self.maxmag128("-0.10", "-0.100", "-0.100", .toNearestOrEven)
+ /* dqmxg448 */ self.maxmag128("-0.1", "-0.10", "-0.10", .toNearestOrEven)
+ /* dqmxg449 */ self.maxmag128("-1.0", "-0.1", "-1.0", .toNearestOrEven)
+ /* dqmxg450 */ self.maxmag128("-1", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqmxg451 */ self.maxmag128("-1.1", "-1", "-1.1", .toNearestOrEven)
+ /* dqmxg453 */ self.maxmag128("-Inf", "-1.1", "-Infinity", .toNearestOrEven)
+ /* dqmxg460 */ self.maxmag128("1000", "1E+3", "1E+3", .toNearestOrEven)
+ /* dqmxg461 */ self.maxmag128("1E+3", "1000", "1E+3", .toNearestOrEven)
+ /* dqmxg462 */ self.maxmag128("1000", "-1E+3", "1000", .toNearestOrEven)
+ /* dqmxg463 */ self.maxmag128("1E+3", "-1000", "1E+3", .toNearestOrEven)
+ /* dqmxg464 */ self.maxmag128("-1000", "1E+3", "1E+3", .toNearestOrEven)
+ /* dqmxg465 */ self.maxmag128("-1E+3", "1000", "1000", .toNearestOrEven)
+ /* dqmxg466 */ self.maxmag128("-1000", "-1E+3", "-1000", .toNearestOrEven)
+ /* dqmxg467 */ self.maxmag128("-1E+3", "-1000", "-1000", .toNearestOrEven)
+ /* dqmxg510 */ self.maxmag128("1.00E-6143", "0", "1.00E-6143", .toNearestOrEven)
+ /* dqmxg511 */ self.maxmag128("0.1E-6143", "0", "1E-6144", .toNearestOrEven)
+ /* dqmxg512 */ self.maxmag128("0.10E-6143", "0", "1.0E-6144", .toNearestOrEven)
+ /* dqmxg513 */ self.maxmag128("0.100E-6143", "0", "1.00E-6144", .toNearestOrEven)
+ /* dqmxg514 */ self.maxmag128("0.01E-6143", "0", "1E-6145", .toNearestOrEven)
+ /* dqmxg515 */ self.maxmag128("0.999E-6143", "0", "9.99E-6144", .toNearestOrEven)
+ /* dqmxg516 */ self.maxmag128("0.099E-6143", "0", "9.9E-6145", .toNearestOrEven)
+ /* dqmxg517 */ self.maxmag128("0.009E-6143", "0", "9E-6146", .toNearestOrEven)
+ /* dqmxg518 */ self.maxmag128("0.001E-6143", "0", "1E-6146", .toNearestOrEven)
+ /* dqmxg519 */ self.maxmag128("0.0009E-6143", "0", "9E-6147", .toNearestOrEven)
+ /* dqmxg520 */ self.maxmag128("0.0001E-6143", "0", "1E-6147", .toNearestOrEven)
+ /* dqmxg530 */ self.maxmag128("-1.00E-6143", "0", "-1.00E-6143", .toNearestOrEven)
+ /* dqmxg531 */ self.maxmag128("-0.1E-6143", "0", "-1E-6144", .toNearestOrEven)
+ /* dqmxg532 */ self.maxmag128("-0.10E-6143", "0", "-1.0E-6144", .toNearestOrEven)
+ /* dqmxg533 */ self.maxmag128("-0.100E-6143", "0", "-1.00E-6144", .toNearestOrEven)
+ /* dqmxg534 */ self.maxmag128("-0.01E-6143", "0", "-1E-6145", .toNearestOrEven)
+ /* dqmxg535 */ self.maxmag128("-0.999E-6143", "0", "-9.99E-6144", .toNearestOrEven)
+ /* dqmxg536 */ self.maxmag128("-0.099E-6143", "0", "-9.9E-6145", .toNearestOrEven)
+ /* dqmxg537 */ self.maxmag128("-0.009E-6143", "0", "-9E-6146", .toNearestOrEven)
+ /* dqmxg538 */ self.maxmag128("-0.001E-6143", "0", "-1E-6146", .toNearestOrEven)
+ /* dqmxg539 */ self.maxmag128("-0.0009E-6143", "0", "-9E-6147", .toNearestOrEven)
+ /* dqmxg540 */ self.maxmag128("-0.0001E-6143", "0", "-1E-6147", .toNearestOrEven)
+ }
+
+ private func maxmag128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = Decimal128.maximumMagnitude(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_max(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ // MARK: - Min
+
+ func test_min64() {
+ /* ddmin001 */ self.min64("-2", "-2", "-2", .toNearestOrEven)
+ /* ddmin002 */ self.min64("-2", "-1", "-2", .toNearestOrEven)
+ /* ddmin003 */ self.min64("-2", "0", "-2", .toNearestOrEven)
+ /* ddmin004 */ self.min64("-2", "1", "-2", .toNearestOrEven)
+ /* ddmin005 */ self.min64("-2", "2", "-2", .toNearestOrEven)
+ /* ddmin006 */ self.min64("-1", "-2", "-2", .toNearestOrEven)
+ /* ddmin007 */ self.min64("-1", "-1", "-1", .toNearestOrEven)
+ /* ddmin008 */ self.min64("-1", "0", "-1", .toNearestOrEven)
+ /* ddmin009 */ self.min64("-1", "1", "-1", .toNearestOrEven)
+ /* ddmin010 */ self.min64("-1", "2", "-1", .toNearestOrEven)
+ /* ddmin011 */ self.min64("0", "-2", "-2", .toNearestOrEven)
+ /* ddmin012 */ self.min64("0", "-1", "-1", .toNearestOrEven)
+ /* ddmin013 */ self.min64("0", "0", "0", .toNearestOrEven)
+ /* ddmin014 */ self.min64("0", "1", "0", .toNearestOrEven)
+ /* ddmin015 */ self.min64("0", "2", "0", .toNearestOrEven)
+ /* ddmin016 */ self.min64("1", "-2", "-2", .toNearestOrEven)
+ /* ddmin017 */ self.min64("1", "-1", "-1", .toNearestOrEven)
+ /* ddmin018 */ self.min64("1", "0", "0", .toNearestOrEven)
+ /* ddmin019 */ self.min64("1", "1", "1", .toNearestOrEven)
+ /* ddmin020 */ self.min64("1", "2", "1", .toNearestOrEven)
+ /* ddmin021 */ self.min64("2", "-2", "-2", .toNearestOrEven)
+ /* ddmin022 */ self.min64("2", "-1", "-1", .toNearestOrEven)
+ /* ddmin023 */ self.min64("2", "0", "0", .toNearestOrEven)
+ /* ddmin025 */ self.min64("2", "1", "1", .toNearestOrEven)
+ /* ddmin026 */ self.min64("2", "2", "2", .toNearestOrEven)
+ /* ddmin030 */ self.min64("0", "0", "0", .toNearestOrEven)
+ /* ddmin031 */ self.min64("0", "-0", "-0", .toNearestOrEven)
+ /* ddmin032 */ self.min64("0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmin033 */ self.min64("0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmin034 */ self.min64("-0", "0", "-0", .toNearestOrEven)
+ /* ddmin035 */ self.min64("-0", "-0", "-0", .toNearestOrEven)
+ /* ddmin036 */ self.min64("-0", "-0.0", "-0", .toNearestOrEven)
+ /* ddmin037 */ self.min64("-0", "0.0", "-0", .toNearestOrEven)
+ /* ddmin038 */ self.min64("0.0", "0", "0.0", .toNearestOrEven)
+ /* ddmin039 */ self.min64("0.0", "-0", "-0", .toNearestOrEven)
+ /* ddmin040 */ self.min64("0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmin041 */ self.min64("0.0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmin042 */ self.min64("-0.0", "0", "-0.0", .toNearestOrEven)
+ /* ddmin043 */ self.min64("-0.0", "-0", "-0", .toNearestOrEven)
+ /* ddmin044 */ self.min64("-0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmin045 */ self.min64("-0.0", "0.0", "-0.0", .toNearestOrEven)
+ /* ddmin046 */ self.min64("0E1", "-0E1", "-0E+1", .toNearestOrEven)
+ /* ddmin047 */ self.min64("-0E1", "0E2", "-0E+1", .toNearestOrEven)
+ /* ddmin048 */ self.min64("0E2", "0E1", "0E+1", .toNearestOrEven)
+ /* ddmin049 */ self.min64("0E1", "0E2", "0E+1", .toNearestOrEven)
+ /* ddmin050 */ self.min64("-0E3", "-0E2", "-0E+3", .toNearestOrEven)
+ /* ddmin051 */ self.min64("-0E2", "-0E3", "-0E+3", .toNearestOrEven)
+ /* ddmin090 */ self.min64("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin091 */ self.min64("Inf", "-1000", "-1000", .toNearestOrEven)
+ /* ddmin092 */ self.min64("Inf", "-1", "-1", .toNearestOrEven)
+ /* ddmin093 */ self.min64("Inf", "-0", "-0", .toNearestOrEven)
+ /* ddmin094 */ self.min64("Inf", "0", "0", .toNearestOrEven)
+ /* ddmin095 */ self.min64("Inf", "1", "1", .toNearestOrEven)
+ /* ddmin096 */ self.min64("Inf", "1000", "1000", .toNearestOrEven)
+ /* ddmin097 */ self.min64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmin098 */ self.min64("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* ddmin099 */ self.min64("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin100 */ self.min64("-1", "Inf", "-1", .toNearestOrEven)
+ /* ddmin101 */ self.min64("-0", "Inf", "-0", .toNearestOrEven)
+ /* ddmin102 */ self.min64("0", "Inf", "0", .toNearestOrEven)
+ /* ddmin103 */ self.min64("1", "Inf", "1", .toNearestOrEven)
+ /* ddmin104 */ self.min64("1000", "Inf", "1000", .toNearestOrEven)
+ /* ddmin105 */ self.min64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmin120 */ self.min64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin121 */ self.min64("-Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* ddmin122 */ self.min64("-Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* ddmin123 */ self.min64("-Inf", "-0", "-Infinity", .toNearestOrEven)
+ /* ddmin124 */ self.min64("-Inf", "0", "-Infinity", .toNearestOrEven)
+ /* ddmin125 */ self.min64("-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* ddmin126 */ self.min64("-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* ddmin127 */ self.min64("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin128 */ self.min64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin129 */ self.min64("-1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin130 */ self.min64("-1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin131 */ self.min64("-0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin132 */ self.min64("0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin133 */ self.min64("1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin134 */ self.min64("1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin135 */ self.min64("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin141 */ self.min64("NaN", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin142 */ self.min64("NaN", "-1000", "-1000", .toNearestOrEven)
+ /* ddmin143 */ self.min64("NaN", "-1", "-1", .toNearestOrEven)
+ /* ddmin144 */ self.min64("NaN", "-0", "-0", .toNearestOrEven)
+ /* ddmin145 */ self.min64("NaN", "0", "0", .toNearestOrEven)
+ /* ddmin146 */ self.min64("NaN", "1", "1", .toNearestOrEven)
+ /* ddmin147 */ self.min64("NaN", "1000", "1000", .toNearestOrEven)
+ /* ddmin148 */ self.min64("NaN", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmin149 */ self.min64("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* ddmin150 */ self.min64("-Inf", "NaN", "-Infinity", .toNearestOrEven)
+ /* ddmin151 */ self.min64("-1000", "NaN", "-1000", .toNearestOrEven)
+ /* ddmin152 */ self.min64("-1", "-NaN", "-1", .toNearestOrEven)
+ /* ddmin153 */ self.min64("-0", "NaN", "-0", .toNearestOrEven)
+ /* ddmin154 */ self.min64("0", "-NaN", "0", .toNearestOrEven)
+ /* ddmin155 */ self.min64("1", "NaN", "1", .toNearestOrEven)
+ /* ddmin156 */ self.min64("1000", "NaN", "1000", .toNearestOrEven)
+ /* ddmin157 */ self.min64("Inf", "NaN", "Infinity", .toNearestOrEven)
+ /* ddmin161 */ self.min64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin162 */ self.min64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin163 */ self.min64("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin164 */ self.min64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin165 */ self.min64("-sNaN", "0", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin166 */ self.min64("-sNaN", "1", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin167 */ self.min64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin168 */ self.min64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin169 */ self.min64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin170 */ self.min64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin171 */ self.min64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin172 */ self.min64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin173 */ self.min64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin174 */ self.min64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin175 */ self.min64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin176 */ self.min64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin177 */ self.min64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin178 */ self.min64("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin179 */ self.min64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin181 */ self.min64("NaN(0x9)", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin182 */ self.min64("-NaN(0x8)", "9990", "9990", .toNearestOrEven)
+ /* ddmin183 */ self.min64("NaN(0x47)", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmin184 */ self.min64("NaN(0x1)", "NaN(0x36)", "NaN(0x1)", .toNearestOrEven)
+ /* ddmin185 */ self.min64("NaN(0x16)", "-NaN(0x35)", "NaN(0x16)", .toNearestOrEven)
+ /* ddmin186 */ self.min64("-NaN(0x3)", "NaN(0x6)", "-NaN(0x3)", .toNearestOrEven)
+ /* ddmin187 */ self.min64("-NaN(0x2c)", "NaN(0x7)", "-NaN(0x2c)", .toNearestOrEven)
+ /* ddmin188 */ self.min64("-Inf", "NaN(0x29)", "-Infinity", .toNearestOrEven)
+ /* ddmin189 */ self.min64("-9999", "-NaN(0x21)", "-9999", .toNearestOrEven)
+ /* ddmin190 */ self.min64("Inf", "NaN(0x2)", "Infinity", .toNearestOrEven)
+ /* ddmin191 */ self.min64("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin192 */ self.min64("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin193 */ self.min64("-sNaN(0x61)", "NaN(0x8)", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin194 */ self.min64("sNaN(0x45)", "sNaN(0x5e)", "NaN(0x45)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin195 */ self.min64("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin196 */ self.min64("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin197 */ self.min64("088", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin198 */ self.min64("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin199 */ self.min64("NaN", "sNaN(0x56)", "NaN(0x56)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmin221 */ self.min64("-12345678000", "1", "-12345678000", .toNearestOrEven)
+ /* ddmin222 */ self.min64("1", "-12345678000", "-12345678000", .toNearestOrEven)
+ /* ddmin223 */ self.min64("-1234567800", "1", "-1234567800", .toNearestOrEven)
+ /* ddmin224 */ self.min64("1", "-1234567800", "-1234567800", .toNearestOrEven)
+ /* ddmin225 */ self.min64("-1234567890", "1", "-1234567890", .toNearestOrEven)
+ /* ddmin226 */ self.min64("1", "-1234567890", "-1234567890", .toNearestOrEven)
+ /* ddmin227 */ self.min64("-1234567891", "1", "-1234567891", .toNearestOrEven)
+ /* ddmin228 */ self.min64("1", "-1234567891", "-1234567891", .toNearestOrEven)
+ /* ddmin229 */ self.min64("-12345678901", "1", "-12345678901", .toNearestOrEven)
+ /* ddmin230 */ self.min64("1", "-12345678901", "-12345678901", .toNearestOrEven)
+ /* ddmin231 */ self.min64("-1234567896", "1", "-1234567896", .toNearestOrEven)
+ /* ddmin232 */ self.min64("1", "-1234567896", "-1234567896", .toNearestOrEven)
+ /* ddmin233 */ self.min64("1234567891", "1", "1", .toNearestOrEven)
+ /* ddmin234 */ self.min64("1", "1234567891", "1", .toNearestOrEven)
+ /* ddmin235 */ self.min64("12345678901", "1", "1", .toNearestOrEven)
+ /* ddmin236 */ self.min64("1", "12345678901", "1", .toNearestOrEven)
+ /* ddmin237 */ self.min64("1234567896", "1", "1", .toNearestOrEven)
+ /* ddmin238 */ self.min64("1", "1234567896", "1", .toNearestOrEven)
+ /* ddmin280 */ self.min64("3", "2", "2", .toNearestOrEven)
+ /* ddmin281 */ self.min64("-10", "3", "-10", .toNearestOrEven)
+ /* ddmin282 */ self.min64("1.0", "1", "1.0", .toNearestOrEven)
+ /* ddmin283 */ self.min64("1", "1.0", "1.0", .toNearestOrEven)
+ /* ddmin284 */ self.min64("7", "NaN", "7", .toNearestOrEven)
+ /* ddmin401 */ self.min64("Inf", "1.1", "1.1", .toNearestOrEven)
+ /* ddmin402 */ self.min64("1.1", "1", "1", .toNearestOrEven)
+ /* ddmin403 */ self.min64("1", "1.0", "1.0", .toNearestOrEven)
+ /* ddmin404 */ self.min64("1.0", "0.1", "0.1", .toNearestOrEven)
+ /* ddmin405 */ self.min64("0.1", "0.10", "0.10", .toNearestOrEven)
+ /* ddmin406 */ self.min64("0.10", "0.100", "0.100", .toNearestOrEven)
+ /* ddmin407 */ self.min64("0.10", "0", "0", .toNearestOrEven)
+ /* ddmin408 */ self.min64("0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmin409 */ self.min64("0.0", "-0", "-0", .toNearestOrEven)
+ /* ddmin410 */ self.min64("0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmin411 */ self.min64("0.00", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmin412 */ self.min64("0.0", "-0.00", "-0.00", .toNearestOrEven)
+ /* ddmin413 */ self.min64("0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmin414 */ self.min64("0", "-0", "-0", .toNearestOrEven)
+ /* ddmin415 */ self.min64("-0.0", "-0", "-0", .toNearestOrEven)
+ /* ddmin416 */ self.min64("-0", "-0.100", "-0.100", .toNearestOrEven)
+ /* ddmin417 */ self.min64("-0.100", "-0.10", "-0.10", .toNearestOrEven)
+ /* ddmin418 */ self.min64("-0.10", "-0.1", "-0.1", .toNearestOrEven)
+ /* ddmin419 */ self.min64("-0.1", "-1.0", "-1.0", .toNearestOrEven)
+ /* ddmin420 */ self.min64("-1.0", "-1", "-1", .toNearestOrEven)
+ /* ddmin421 */ self.min64("-1", "-1.1", "-1.1", .toNearestOrEven)
+ /* ddmin423 */ self.min64("-1.1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmin431 */ self.min64("1.1", "Inf", "1.1", .toNearestOrEven)
+ /* ddmin432 */ self.min64("1", "1.1", "1", .toNearestOrEven)
+ /* ddmin433 */ self.min64("1.0", "1", "1.0", .toNearestOrEven)
+ /* ddmin434 */ self.min64("0.1", "1.0", "0.1", .toNearestOrEven)
+ /* ddmin435 */ self.min64("0.10", "0.1", "0.10", .toNearestOrEven)
+ /* ddmin436 */ self.min64("0.100", "0.10", "0.100", .toNearestOrEven)
+ /* ddmin437 */ self.min64("0", "0.10", "0", .toNearestOrEven)
+ /* ddmin438 */ self.min64("0.0", "0", "0.0", .toNearestOrEven)
+ /* ddmin439 */ self.min64("-0", "0.0", "-0", .toNearestOrEven)
+ /* ddmin440 */ self.min64("-0.0", "0.0", "-0.0", .toNearestOrEven)
+ /* ddmin441 */ self.min64("-0.0", "0.00", "-0.0", .toNearestOrEven)
+ /* ddmin442 */ self.min64("-0.00", "0.0", "-0.00", .toNearestOrEven)
+ /* ddmin443 */ self.min64("-0.0", "0", "-0.0", .toNearestOrEven)
+ /* ddmin444 */ self.min64("-0", "0", "-0", .toNearestOrEven)
+ /* ddmin445 */ self.min64("-0", "-0.0", "-0", .toNearestOrEven)
+ /* ddmin446 */ self.min64("-0.100", "-0", "-0.100", .toNearestOrEven)
+ /* ddmin447 */ self.min64("-0.10", "-0.100", "-0.10", .toNearestOrEven)
+ /* ddmin448 */ self.min64("-0.1", "-0.10", "-0.1", .toNearestOrEven)
+ /* ddmin449 */ self.min64("-1.0", "-0.1", "-1.0", .toNearestOrEven)
+ /* ddmin450 */ self.min64("-1", "-1.0", "-1", .toNearestOrEven)
+ /* ddmin451 */ self.min64("-1.1", "-1", "-1.1", .toNearestOrEven)
+ /* ddmin453 */ self.min64("-Inf", "-1.1", "-Infinity", .toNearestOrEven)
+ /* ddmin460 */ self.min64("1000", "1E+3", "1000", .toNearestOrEven)
+ /* ddmin461 */ self.min64("1E+3", "1000", "1000", .toNearestOrEven)
+ /* ddmin462 */ self.min64("1000", "-1E+3", "-1E+3", .toNearestOrEven)
+ /* ddmin463 */ self.min64("1E+3", "-384", "-384", .toNearestOrEven)
+ /* ddmin464 */ self.min64("-384", "1E+3", "-384", .toNearestOrEven)
+ /* ddmin465 */ self.min64("-1E+3", "1000", "-1E+3", .toNearestOrEven)
+ /* ddmin466 */ self.min64("-384", "-1E+3", "-1E+3", .toNearestOrEven)
+ /* ddmin467 */ self.min64("-1E+3", "-384", "-1E+3", .toNearestOrEven)
+ /* ddmin471 */ self.min64("1.0", "0.1", "0.1", .toNearestOrEven)
+ /* ddmin472 */ self.min64("0.1", "1.0", "0.1", .toNearestOrEven)
+ /* ddmin473 */ self.min64("10.0", "0.1", "0.1", .toNearestOrEven)
+ /* ddmin474 */ self.min64("0.1", "10.0", "0.1", .toNearestOrEven)
+ /* ddmin475 */ self.min64("100", "1.0", "1.0", .toNearestOrEven)
+ /* ddmin476 */ self.min64("1.0", "100", "1.0", .toNearestOrEven)
+ /* ddmin477 */ self.min64("1000", "10.0", "10.0", .toNearestOrEven)
+ /* ddmin478 */ self.min64("10.0", "1000", "10.0", .toNearestOrEven)
+ /* ddmin479 */ self.min64("10000", "100.0", "100.0", .toNearestOrEven)
+ /* ddmin480 */ self.min64("100.0", "10000", "100.0", .toNearestOrEven)
+ /* ddmin481 */ self.min64("100000", "1000.0", "1000.0", .toNearestOrEven)
+ /* ddmin482 */ self.min64("1000.0", "100000", "1000.0", .toNearestOrEven)
+ /* ddmin483 */ self.min64("1000000", "10000.0", "10000.0", .toNearestOrEven)
+ /* ddmin484 */ self.min64("10000.0", "1000000", "10000.0", .toNearestOrEven)
+ /* ddmin510 */ self.min64("1.00E-383", "0", "0", .toNearestOrEven)
+ /* ddmin511 */ self.min64("0.1E-383", "0", "0", .toNearestOrEven)
+ /* ddmin512 */ self.min64("0.10E-383", "0", "0", .toNearestOrEven)
+ /* ddmin513 */ self.min64("0.100E-383", "0", "0", .toNearestOrEven)
+ /* ddmin514 */ self.min64("0.01E-383", "0", "0", .toNearestOrEven)
+ /* ddmin515 */ self.min64("0.999E-383", "0", "0", .toNearestOrEven)
+ /* ddmin516 */ self.min64("0.099E-383", "0", "0", .toNearestOrEven)
+ /* ddmin517 */ self.min64("0.009E-383", "0", "0", .toNearestOrEven)
+ /* ddmin518 */ self.min64("0.001E-383", "0", "0", .toNearestOrEven)
+ /* ddmin519 */ self.min64("0.0009E-383", "0", "0", .toNearestOrEven)
+ /* ddmin520 */ self.min64("0.0001E-383", "0", "0", .toNearestOrEven)
+ /* ddmin530 */ self.min64("-1.00E-383", "0", "-1.00E-383", .toNearestOrEven)
+ /* ddmin531 */ self.min64("-0.1E-383", "0", "-1E-384", .toNearestOrEven)
+ /* ddmin532 */ self.min64("-0.10E-383", "0", "-1.0E-384", .toNearestOrEven)
+ /* ddmin533 */ self.min64("-0.100E-383", "0", "-1.00E-384", .toNearestOrEven)
+ /* ddmin534 */ self.min64("-0.01E-383", "0", "-1E-385", .toNearestOrEven)
+ /* ddmin535 */ self.min64("-0.999E-383", "0", "-9.99E-384", .toNearestOrEven)
+ /* ddmin536 */ self.min64("-0.099E-383", "0", "-9.9E-385", .toNearestOrEven)
+ /* ddmin537 */ self.min64("-0.009E-383", "0", "-9E-386", .toNearestOrEven)
+ /* ddmin538 */ self.min64("-0.001E-383", "0", "-1E-386", .toNearestOrEven)
+ /* ddmin539 */ self.min64("-0.0009E-383", "0", "-9E-387", .toNearestOrEven)
+ /* ddmin540 */ self.min64("-0.0001E-383", "0", "-1E-387", .toNearestOrEven)
+ }
+
+ private func min64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = Decimal64.minimum(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_min(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_min128() {
+ /* dqmin001 */ self.min128("-2", "-2", "-2", .toNearestOrEven)
+ /* dqmin002 */ self.min128("-2", "-1", "-2", .toNearestOrEven)
+ /* dqmin003 */ self.min128("-2", "0", "-2", .toNearestOrEven)
+ /* dqmin004 */ self.min128("-2", "1", "-2", .toNearestOrEven)
+ /* dqmin005 */ self.min128("-2", "2", "-2", .toNearestOrEven)
+ /* dqmin006 */ self.min128("-1", "-2", "-2", .toNearestOrEven)
+ /* dqmin007 */ self.min128("-1", "-1", "-1", .toNearestOrEven)
+ /* dqmin008 */ self.min128("-1", "0", "-1", .toNearestOrEven)
+ /* dqmin009 */ self.min128("-1", "1", "-1", .toNearestOrEven)
+ /* dqmin010 */ self.min128("-1", "2", "-1", .toNearestOrEven)
+ /* dqmin011 */ self.min128("0", "-2", "-2", .toNearestOrEven)
+ /* dqmin012 */ self.min128("0", "-1", "-1", .toNearestOrEven)
+ /* dqmin013 */ self.min128("0", "0", "0", .toNearestOrEven)
+ /* dqmin014 */ self.min128("0", "1", "0", .toNearestOrEven)
+ /* dqmin015 */ self.min128("0", "2", "0", .toNearestOrEven)
+ /* dqmin016 */ self.min128("1", "-2", "-2", .toNearestOrEven)
+ /* dqmin017 */ self.min128("1", "-1", "-1", .toNearestOrEven)
+ /* dqmin018 */ self.min128("1", "0", "0", .toNearestOrEven)
+ /* dqmin019 */ self.min128("1", "1", "1", .toNearestOrEven)
+ /* dqmin020 */ self.min128("1", "2", "1", .toNearestOrEven)
+ /* dqmin021 */ self.min128("2", "-2", "-2", .toNearestOrEven)
+ /* dqmin022 */ self.min128("2", "-1", "-1", .toNearestOrEven)
+ /* dqmin023 */ self.min128("2", "0", "0", .toNearestOrEven)
+ /* dqmin025 */ self.min128("2", "1", "1", .toNearestOrEven)
+ /* dqmin026 */ self.min128("2", "2", "2", .toNearestOrEven)
+ /* dqmin030 */ self.min128("0", "0", "0", .toNearestOrEven)
+ /* dqmin031 */ self.min128("0", "-0", "-0", .toNearestOrEven)
+ /* dqmin032 */ self.min128("0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmin033 */ self.min128("0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmin034 */ self.min128("-0", "0", "-0", .toNearestOrEven)
+ /* dqmin035 */ self.min128("-0", "-0", "-0", .toNearestOrEven)
+ /* dqmin036 */ self.min128("-0", "-0.0", "-0", .toNearestOrEven)
+ /* dqmin037 */ self.min128("-0", "0.0", "-0", .toNearestOrEven)
+ /* dqmin038 */ self.min128("0.0", "0", "0.0", .toNearestOrEven)
+ /* dqmin039 */ self.min128("0.0", "-0", "-0", .toNearestOrEven)
+ /* dqmin040 */ self.min128("0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmin041 */ self.min128("0.0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmin042 */ self.min128("-0.0", "0", "-0.0", .toNearestOrEven)
+ /* dqmin043 */ self.min128("-0.0", "-0", "-0", .toNearestOrEven)
+ /* dqmin044 */ self.min128("-0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmin045 */ self.min128("-0.0", "0.0", "-0.0", .toNearestOrEven)
+ /* dqmin046 */ self.min128("0E1", "-0E1", "-0E+1", .toNearestOrEven)
+ /* dqmin047 */ self.min128("-0E1", "0E2", "-0E+1", .toNearestOrEven)
+ /* dqmin048 */ self.min128("0E2", "0E1", "0E+1", .toNearestOrEven)
+ /* dqmin049 */ self.min128("0E1", "0E2", "0E+1", .toNearestOrEven)
+ /* dqmin050 */ self.min128("-0E3", "-0E2", "-0E+3", .toNearestOrEven)
+ /* dqmin051 */ self.min128("-0E2", "-0E3", "-0E+3", .toNearestOrEven)
+ /* dqmin090 */ self.min128("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin091 */ self.min128("Inf", "-1000", "-1000", .toNearestOrEven)
+ /* dqmin092 */ self.min128("Inf", "-1", "-1", .toNearestOrEven)
+ /* dqmin093 */ self.min128("Inf", "-0", "-0", .toNearestOrEven)
+ /* dqmin094 */ self.min128("Inf", "0", "0", .toNearestOrEven)
+ /* dqmin095 */ self.min128("Inf", "1", "1", .toNearestOrEven)
+ /* dqmin096 */ self.min128("Inf", "1000", "1000", .toNearestOrEven)
+ /* dqmin097 */ self.min128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmin098 */ self.min128("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* dqmin099 */ self.min128("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin100 */ self.min128("-1", "Inf", "-1", .toNearestOrEven)
+ /* dqmin101 */ self.min128("-0", "Inf", "-0", .toNearestOrEven)
+ /* dqmin102 */ self.min128("0", "Inf", "0", .toNearestOrEven)
+ /* dqmin103 */ self.min128("1", "Inf", "1", .toNearestOrEven)
+ /* dqmin104 */ self.min128("1000", "Inf", "1000", .toNearestOrEven)
+ /* dqmin105 */ self.min128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmin120 */ self.min128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin121 */ self.min128("-Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* dqmin122 */ self.min128("-Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* dqmin123 */ self.min128("-Inf", "-0", "-Infinity", .toNearestOrEven)
+ /* dqmin124 */ self.min128("-Inf", "0", "-Infinity", .toNearestOrEven)
+ /* dqmin125 */ self.min128("-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* dqmin126 */ self.min128("-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* dqmin127 */ self.min128("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin128 */ self.min128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin129 */ self.min128("-1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin130 */ self.min128("-1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin131 */ self.min128("-0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin132 */ self.min128("0", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin133 */ self.min128("1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin134 */ self.min128("1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin135 */ self.min128("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin141 */ self.min128("NaN", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin142 */ self.min128("NaN", "-1000", "-1000", .toNearestOrEven)
+ /* dqmin143 */ self.min128("NaN", "-1", "-1", .toNearestOrEven)
+ /* dqmin144 */ self.min128("NaN", "-0", "-0", .toNearestOrEven)
+ /* dqmin145 */ self.min128("NaN", "0", "0", .toNearestOrEven)
+ /* dqmin146 */ self.min128("NaN", "1", "1", .toNearestOrEven)
+ /* dqmin147 */ self.min128("NaN", "1000", "1000", .toNearestOrEven)
+ /* dqmin148 */ self.min128("NaN", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmin149 */ self.min128("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* dqmin150 */ self.min128("-Inf", "NaN", "-Infinity", .toNearestOrEven)
+ /* dqmin151 */ self.min128("-1000", "NaN", "-1000", .toNearestOrEven)
+ /* dqmin152 */ self.min128("-1", "-NaN", "-1", .toNearestOrEven)
+ /* dqmin153 */ self.min128("-0", "NaN", "-0", .toNearestOrEven)
+ /* dqmin154 */ self.min128("0", "-NaN", "0", .toNearestOrEven)
+ /* dqmin155 */ self.min128("1", "NaN", "1", .toNearestOrEven)
+ /* dqmin156 */ self.min128("1000", "NaN", "1000", .toNearestOrEven)
+ /* dqmin157 */ self.min128("Inf", "NaN", "Infinity", .toNearestOrEven)
+ /* dqmin161 */ self.min128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin162 */ self.min128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin163 */ self.min128("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin164 */ self.min128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin165 */ self.min128("-sNaN", "0", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin166 */ self.min128("-sNaN", "1", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin167 */ self.min128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin168 */ self.min128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin169 */ self.min128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin170 */ self.min128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin171 */ self.min128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin172 */ self.min128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin173 */ self.min128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin174 */ self.min128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin175 */ self.min128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin176 */ self.min128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin177 */ self.min128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin178 */ self.min128("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin179 */ self.min128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin181 */ self.min128("NaN(0x9)", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin182 */ self.min128("-NaN(0x8)", "9990", "9990", .toNearestOrEven)
+ /* dqmin183 */ self.min128("NaN(0x47)", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmin184 */ self.min128("NaN(0x1)", "NaN(0x36)", "NaN(0x1)", .toNearestOrEven)
+ /* dqmin185 */ self.min128("NaN(0x16)", "-NaN(0x35)", "NaN(0x16)", .toNearestOrEven)
+ /* dqmin186 */ self.min128("-NaN(0x3)", "NaN(0x6)", "-NaN(0x3)", .toNearestOrEven)
+ /* dqmin187 */ self.min128("-NaN(0x2c)", "NaN(0x7)", "-NaN(0x2c)", .toNearestOrEven)
+ /* dqmin188 */ self.min128("-Inf", "NaN(0x29)", "-Infinity", .toNearestOrEven)
+ /* dqmin189 */ self.min128("-9999", "-NaN(0x21)", "-9999", .toNearestOrEven)
+ /* dqmin190 */ self.min128("Inf", "NaN(0x2)", "Infinity", .toNearestOrEven)
+ /* dqmin191 */ self.min128("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin192 */ self.min128("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin193 */ self.min128("-sNaN(0x61)", "NaN(0x8)", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin194 */ self.min128("sNaN(0x45)", "sNaN(0x5e)", "NaN(0x45)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin195 */ self.min128("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin196 */ self.min128("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin197 */ self.min128("088", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin198 */ self.min128("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin199 */ self.min128("NaN", "sNaN(0x56)", "NaN(0x56)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmin221 */ self.min128("-12345678000", "1", "-12345678000", .toNearestOrEven)
+ /* dqmin222 */ self.min128("1", "-12345678000", "-12345678000", .toNearestOrEven)
+ /* dqmin223 */ self.min128("-1234567800", "1", "-1234567800", .toNearestOrEven)
+ /* dqmin224 */ self.min128("1", "-1234567800", "-1234567800", .toNearestOrEven)
+ /* dqmin225 */ self.min128("-1234567890", "1", "-1234567890", .toNearestOrEven)
+ /* dqmin226 */ self.min128("1", "-1234567890", "-1234567890", .toNearestOrEven)
+ /* dqmin227 */ self.min128("-1234567891", "1", "-1234567891", .toNearestOrEven)
+ /* dqmin228 */ self.min128("1", "-1234567891", "-1234567891", .toNearestOrEven)
+ /* dqmin229 */ self.min128("-12345678901", "1", "-12345678901", .toNearestOrEven)
+ /* dqmin230 */ self.min128("1", "-12345678901", "-12345678901", .toNearestOrEven)
+ /* dqmin231 */ self.min128("-1234567896", "1", "-1234567896", .toNearestOrEven)
+ /* dqmin232 */ self.min128("1", "-1234567896", "-1234567896", .toNearestOrEven)
+ /* dqmin233 */ self.min128("1234567891", "1", "1", .toNearestOrEven)
+ /* dqmin234 */ self.min128("1", "1234567891", "1", .toNearestOrEven)
+ /* dqmin235 */ self.min128("12345678901", "1", "1", .toNearestOrEven)
+ /* dqmin236 */ self.min128("1", "12345678901", "1", .toNearestOrEven)
+ /* dqmin237 */ self.min128("1234567896", "1", "1", .toNearestOrEven)
+ /* dqmin238 */ self.min128("1", "1234567896", "1", .toNearestOrEven)
+ /* dqmin280 */ self.min128("3", "2", "2", .toNearestOrEven)
+ /* dqmin281 */ self.min128("-10", "3", "-10", .toNearestOrEven)
+ /* dqmin282 */ self.min128("1.0", "1", "1.0", .toNearestOrEven)
+ /* dqmin283 */ self.min128("1", "1.0", "1.0", .toNearestOrEven)
+ /* dqmin284 */ self.min128("7", "NaN", "7", .toNearestOrEven)
+ /* dqmin401 */ self.min128("Inf", "1.1", "1.1", .toNearestOrEven)
+ /* dqmin402 */ self.min128("1.1", "1", "1", .toNearestOrEven)
+ /* dqmin403 */ self.min128("1", "1.0", "1.0", .toNearestOrEven)
+ /* dqmin404 */ self.min128("1.0", "0.1", "0.1", .toNearestOrEven)
+ /* dqmin405 */ self.min128("0.1", "0.10", "0.10", .toNearestOrEven)
+ /* dqmin406 */ self.min128("0.10", "0.100", "0.100", .toNearestOrEven)
+ /* dqmin407 */ self.min128("0.10", "0", "0", .toNearestOrEven)
+ /* dqmin408 */ self.min128("0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmin409 */ self.min128("0.0", "-0", "-0", .toNearestOrEven)
+ /* dqmin410 */ self.min128("0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmin411 */ self.min128("0.00", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmin412 */ self.min128("0.0", "-0.00", "-0.00", .toNearestOrEven)
+ /* dqmin413 */ self.min128("0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmin414 */ self.min128("0", "-0", "-0", .toNearestOrEven)
+ /* dqmin415 */ self.min128("-0.0", "-0", "-0", .toNearestOrEven)
+ /* dqmin416 */ self.min128("-0", "-0.100", "-0.100", .toNearestOrEven)
+ /* dqmin417 */ self.min128("-0.100", "-0.10", "-0.10", .toNearestOrEven)
+ /* dqmin418 */ self.min128("-0.10", "-0.1", "-0.1", .toNearestOrEven)
+ /* dqmin419 */ self.min128("-0.1", "-1.0", "-1.0", .toNearestOrEven)
+ /* dqmin420 */ self.min128("-1.0", "-1", "-1", .toNearestOrEven)
+ /* dqmin421 */ self.min128("-1", "-1.1", "-1.1", .toNearestOrEven)
+ /* dqmin423 */ self.min128("-1.1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmin431 */ self.min128("1.1", "Inf", "1.1", .toNearestOrEven)
+ /* dqmin432 */ self.min128("1", "1.1", "1", .toNearestOrEven)
+ /* dqmin433 */ self.min128("1.0", "1", "1.0", .toNearestOrEven)
+ /* dqmin434 */ self.min128("0.1", "1.0", "0.1", .toNearestOrEven)
+ /* dqmin435 */ self.min128("0.10", "0.1", "0.10", .toNearestOrEven)
+ /* dqmin436 */ self.min128("0.100", "0.10", "0.100", .toNearestOrEven)
+ /* dqmin437 */ self.min128("0", "0.10", "0", .toNearestOrEven)
+ /* dqmin438 */ self.min128("0.0", "0", "0.0", .toNearestOrEven)
+ /* dqmin439 */ self.min128("-0", "0.0", "-0", .toNearestOrEven)
+ /* dqmin440 */ self.min128("-0.0", "0.0", "-0.0", .toNearestOrEven)
+ /* dqmin441 */ self.min128("-0.0", "0.00", "-0.0", .toNearestOrEven)
+ /* dqmin442 */ self.min128("-0.00", "0.0", "-0.00", .toNearestOrEven)
+ /* dqmin443 */ self.min128("-0.0", "0", "-0.0", .toNearestOrEven)
+ /* dqmin444 */ self.min128("-0", "0", "-0", .toNearestOrEven)
+ /* dqmin445 */ self.min128("-0", "-0.0", "-0", .toNearestOrEven)
+ /* dqmin446 */ self.min128("-0.100", "-0", "-0.100", .toNearestOrEven)
+ /* dqmin447 */ self.min128("-0.10", "-0.100", "-0.10", .toNearestOrEven)
+ /* dqmin448 */ self.min128("-0.1", "-0.10", "-0.1", .toNearestOrEven)
+ /* dqmin449 */ self.min128("-1.0", "-0.1", "-1.0", .toNearestOrEven)
+ /* dqmin450 */ self.min128("-1", "-1.0", "-1", .toNearestOrEven)
+ /* dqmin451 */ self.min128("-1.1", "-1", "-1.1", .toNearestOrEven)
+ /* dqmin453 */ self.min128("-Inf", "-1.1", "-Infinity", .toNearestOrEven)
+ /* dqmin460 */ self.min128("1000", "1E+3", "1000", .toNearestOrEven)
+ /* dqmin461 */ self.min128("1E+3", "1000", "1000", .toNearestOrEven)
+ /* dqmin462 */ self.min128("1000", "-1E+3", "-1E+3", .toNearestOrEven)
+ /* dqmin463 */ self.min128("1E+3", "-384", "-384", .toNearestOrEven)
+ /* dqmin464 */ self.min128("-384", "1E+3", "-384", .toNearestOrEven)
+ /* dqmin465 */ self.min128("-1E+3", "1000", "-1E+3", .toNearestOrEven)
+ /* dqmin466 */ self.min128("-384", "-1E+3", "-1E+3", .toNearestOrEven)
+ /* dqmin467 */ self.min128("-1E+3", "-384", "-1E+3", .toNearestOrEven)
+ /* dqmin471 */ self.min128("1.0", "0.1", "0.1", .toNearestOrEven)
+ /* dqmin472 */ self.min128("0.1", "1.0", "0.1", .toNearestOrEven)
+ /* dqmin473 */ self.min128("10.0", "0.1", "0.1", .toNearestOrEven)
+ /* dqmin474 */ self.min128("0.1", "10.0", "0.1", .toNearestOrEven)
+ /* dqmin475 */ self.min128("100", "1.0", "1.0", .toNearestOrEven)
+ /* dqmin476 */ self.min128("1.0", "100", "1.0", .toNearestOrEven)
+ /* dqmin477 */ self.min128("1000", "10.0", "10.0", .toNearestOrEven)
+ /* dqmin478 */ self.min128("10.0", "1000", "10.0", .toNearestOrEven)
+ /* dqmin479 */ self.min128("10000", "100.0", "100.0", .toNearestOrEven)
+ /* dqmin480 */ self.min128("100.0", "10000", "100.0", .toNearestOrEven)
+ /* dqmin481 */ self.min128("100000", "1000.0", "1000.0", .toNearestOrEven)
+ /* dqmin482 */ self.min128("1000.0", "100000", "1000.0", .toNearestOrEven)
+ /* dqmin483 */ self.min128("1000000", "10000.0", "10000.0", .toNearestOrEven)
+ /* dqmin484 */ self.min128("10000.0", "1000000", "10000.0", .toNearestOrEven)
+ /* dqmin510 */ self.min128("1.00E-6143", "0", "0", .toNearestOrEven)
+ /* dqmin511 */ self.min128("0.1E-6143", "0", "0", .toNearestOrEven)
+ /* dqmin512 */ self.min128("0.10E-6143", "0", "0", .toNearestOrEven)
+ /* dqmin513 */ self.min128("0.100E-6143", "0", "0", .toNearestOrEven)
+ /* dqmin514 */ self.min128("0.01E-6143", "0", "0", .toNearestOrEven)
+ /* dqmin515 */ self.min128("0.999E-6143", "0", "0", .toNearestOrEven)
+ /* dqmin516 */ self.min128("0.099E-6143", "0", "0", .toNearestOrEven)
+ /* dqmin517 */ self.min128("0.009E-6143", "0", "0", .toNearestOrEven)
+ /* dqmin518 */ self.min128("0.001E-6143", "0", "0", .toNearestOrEven)
+ /* dqmin519 */ self.min128("0.0009E-6143", "0", "0", .toNearestOrEven)
+ /* dqmin520 */ self.min128("0.0001E-6143", "0", "0", .toNearestOrEven)
+ /* dqmin530 */ self.min128("-1.00E-6143", "0", "-1.00E-6143", .toNearestOrEven)
+ /* dqmin531 */ self.min128("-0.1E-6143", "0", "-1E-6144", .toNearestOrEven)
+ /* dqmin532 */ self.min128("-0.10E-6143", "0", "-1.0E-6144", .toNearestOrEven)
+ /* dqmin533 */ self.min128("-0.100E-6143", "0", "-1.00E-6144", .toNearestOrEven)
+ /* dqmin534 */ self.min128("-0.01E-6143", "0", "-1E-6145", .toNearestOrEven)
+ /* dqmin535 */ self.min128("-0.999E-6143", "0", "-9.99E-6144", .toNearestOrEven)
+ /* dqmin536 */ self.min128("-0.099E-6143", "0", "-9.9E-6145", .toNearestOrEven)
+ /* dqmin537 */ self.min128("-0.009E-6143", "0", "-9E-6146", .toNearestOrEven)
+ /* dqmin538 */ self.min128("-0.001E-6143", "0", "-1E-6146", .toNearestOrEven)
+ /* dqmin539 */ self.min128("-0.0009E-6143", "0", "-9E-6147", .toNearestOrEven)
+ /* dqmin540 */ self.min128("-0.0001E-6143", "0", "-1E-6147", .toNearestOrEven)
+ }
+
+ private func min128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = Decimal128.minimum(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_min(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ // MARK: - Minmag
+
+ func test_minmag64() {
+ /* ddmng001 */ self.minmag64("-2", "-2", "-2", .toNearestOrEven)
+ /* ddmng002 */ self.minmag64("-2", "-1", "-1", .toNearestOrEven)
+ /* ddmng003 */ self.minmag64("-2", "0", "0", .toNearestOrEven)
+ /* ddmng004 */ self.minmag64("-2", "1", "1", .toNearestOrEven)
+ /* ddmng005 */ self.minmag64("-2", "2", "-2", .toNearestOrEven)
+ /* ddmng006 */ self.minmag64("-1", "-2", "-1", .toNearestOrEven)
+ /* ddmng007 */ self.minmag64("-1", "-1", "-1", .toNearestOrEven)
+ /* ddmng008 */ self.minmag64("-1", "0", "0", .toNearestOrEven)
+ /* ddmng009 */ self.minmag64("-1", "1", "-1", .toNearestOrEven)
+ /* ddmng010 */ self.minmag64("-1", "2", "-1", .toNearestOrEven)
+ /* ddmng011 */ self.minmag64("0", "-2", "0", .toNearestOrEven)
+ /* ddmng012 */ self.minmag64("0", "-1", "0", .toNearestOrEven)
+ /* ddmng013 */ self.minmag64("0", "0", "0", .toNearestOrEven)
+ /* ddmng014 */ self.minmag64("0", "1", "0", .toNearestOrEven)
+ /* ddmng015 */ self.minmag64("0", "2", "0", .toNearestOrEven)
+ /* ddmng016 */ self.minmag64("1", "-2", "1", .toNearestOrEven)
+ /* ddmng017 */ self.minmag64("1", "-1", "-1", .toNearestOrEven)
+ /* ddmng018 */ self.minmag64("1", "0", "0", .toNearestOrEven)
+ /* ddmng019 */ self.minmag64("1", "1", "1", .toNearestOrEven)
+ /* ddmng020 */ self.minmag64("1", "2", "1", .toNearestOrEven)
+ /* ddmng021 */ self.minmag64("2", "-2", "-2", .toNearestOrEven)
+ /* ddmng022 */ self.minmag64("2", "-1", "-1", .toNearestOrEven)
+ /* ddmng023 */ self.minmag64("2", "0", "0", .toNearestOrEven)
+ /* ddmng025 */ self.minmag64("2", "1", "1", .toNearestOrEven)
+ /* ddmng026 */ self.minmag64("2", "2", "2", .toNearestOrEven)
+ /* ddmng030 */ self.minmag64("0", "0", "0", .toNearestOrEven)
+ /* ddmng031 */ self.minmag64("0", "-0", "-0", .toNearestOrEven)
+ /* ddmng032 */ self.minmag64("0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmng033 */ self.minmag64("0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmng034 */ self.minmag64("-0", "0", "-0", .toNearestOrEven)
+ /* ddmng035 */ self.minmag64("-0", "-0", "-0", .toNearestOrEven)
+ /* ddmng036 */ self.minmag64("-0", "-0.0", "-0", .toNearestOrEven)
+ /* ddmng037 */ self.minmag64("-0", "0.0", "-0", .toNearestOrEven)
+ /* ddmng038 */ self.minmag64("0.0", "0", "0.0", .toNearestOrEven)
+ /* ddmng039 */ self.minmag64("0.0", "-0", "-0", .toNearestOrEven)
+ /* ddmng040 */ self.minmag64("0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmng041 */ self.minmag64("0.0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmng042 */ self.minmag64("-0.0", "0", "-0.0", .toNearestOrEven)
+ /* ddmng043 */ self.minmag64("-0.0", "-0", "-0", .toNearestOrEven)
+ /* ddmng044 */ self.minmag64("-0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmng045 */ self.minmag64("-0.0", "0.0", "-0.0", .toNearestOrEven)
+ /* ddmng046 */ self.minmag64("0E1", "-0E1", "-0E+1", .toNearestOrEven)
+ /* ddmng047 */ self.minmag64("-0E1", "0E2", "-0E+1", .toNearestOrEven)
+ /* ddmng048 */ self.minmag64("0E2", "0E1", "0E+1", .toNearestOrEven)
+ /* ddmng049 */ self.minmag64("0E1", "0E2", "0E+1", .toNearestOrEven)
+ /* ddmng050 */ self.minmag64("-0E3", "-0E2", "-0E+3", .toNearestOrEven)
+ /* ddmng051 */ self.minmag64("-0E2", "-0E3", "-0E+3", .toNearestOrEven)
+ /* ddmng090 */ self.minmag64("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmng091 */ self.minmag64("Inf", "-1000", "-1000", .toNearestOrEven)
+ /* ddmng092 */ self.minmag64("Inf", "-1", "-1", .toNearestOrEven)
+ /* ddmng093 */ self.minmag64("Inf", "-0", "-0", .toNearestOrEven)
+ /* ddmng094 */ self.minmag64("Inf", "0", "0", .toNearestOrEven)
+ /* ddmng095 */ self.minmag64("Inf", "1", "1", .toNearestOrEven)
+ /* ddmng096 */ self.minmag64("Inf", "1000", "1000", .toNearestOrEven)
+ /* ddmng097 */ self.minmag64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmng098 */ self.minmag64("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* ddmng099 */ self.minmag64("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* ddmng100 */ self.minmag64("-1", "Inf", "-1", .toNearestOrEven)
+ /* ddmng101 */ self.minmag64("-0", "Inf", "-0", .toNearestOrEven)
+ /* ddmng102 */ self.minmag64("0", "Inf", "0", .toNearestOrEven)
+ /* ddmng103 */ self.minmag64("1", "Inf", "1", .toNearestOrEven)
+ /* ddmng104 */ self.minmag64("1000", "Inf", "1000", .toNearestOrEven)
+ /* ddmng105 */ self.minmag64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmng120 */ self.minmag64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmng121 */ self.minmag64("-Inf", "-1000", "-1000", .toNearestOrEven)
+ /* ddmng122 */ self.minmag64("-Inf", "-1", "-1", .toNearestOrEven)
+ /* ddmng123 */ self.minmag64("-Inf", "-0", "-0", .toNearestOrEven)
+ /* ddmng124 */ self.minmag64("-Inf", "0", "0", .toNearestOrEven)
+ /* ddmng125 */ self.minmag64("-Inf", "1", "1", .toNearestOrEven)
+ /* ddmng126 */ self.minmag64("-Inf", "1000", "1000", .toNearestOrEven)
+ /* ddmng127 */ self.minmag64("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* ddmng128 */ self.minmag64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmng129 */ self.minmag64("-1000", "-Inf", "-1000", .toNearestOrEven)
+ /* ddmng130 */ self.minmag64("-1", "-Inf", "-1", .toNearestOrEven)
+ /* ddmng131 */ self.minmag64("-0", "-Inf", "-0", .toNearestOrEven)
+ /* ddmng132 */ self.minmag64("0", "-Inf", "0", .toNearestOrEven)
+ /* ddmng133 */ self.minmag64("1", "-Inf", "1", .toNearestOrEven)
+ /* ddmng134 */ self.minmag64("1000", "-Inf", "1000", .toNearestOrEven)
+ /* ddmng135 */ self.minmag64("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmng141 */ self.minmag64("NaN", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmng142 */ self.minmag64("NaN", "-1000", "-1000", .toNearestOrEven)
+ /* ddmng143 */ self.minmag64("NaN", "-1", "-1", .toNearestOrEven)
+ /* ddmng144 */ self.minmag64("NaN", "-0", "-0", .toNearestOrEven)
+ /* ddmng145 */ self.minmag64("NaN", "0", "0", .toNearestOrEven)
+ /* ddmng146 */ self.minmag64("NaN", "1", "1", .toNearestOrEven)
+ /* ddmng147 */ self.minmag64("NaN", "1000", "1000", .toNearestOrEven)
+ /* ddmng148 */ self.minmag64("NaN", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmng149 */ self.minmag64("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* ddmng150 */ self.minmag64("-Inf", "NaN", "-Infinity", .toNearestOrEven)
+ /* ddmng151 */ self.minmag64("-1000", "NaN", "-1000", .toNearestOrEven)
+ /* ddmng152 */ self.minmag64("-1", "-NaN", "-1", .toNearestOrEven)
+ /* ddmng153 */ self.minmag64("-0", "NaN", "-0", .toNearestOrEven)
+ /* ddmng154 */ self.minmag64("0", "-NaN", "0", .toNearestOrEven)
+ /* ddmng155 */ self.minmag64("1", "NaN", "1", .toNearestOrEven)
+ /* ddmng156 */ self.minmag64("1000", "NaN", "1000", .toNearestOrEven)
+ /* ddmng157 */ self.minmag64("Inf", "NaN", "Infinity", .toNearestOrEven)
+ /* ddmng161 */ self.minmag64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng162 */ self.minmag64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng163 */ self.minmag64("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng164 */ self.minmag64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng165 */ self.minmag64("-sNaN", "0", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng166 */ self.minmag64("-sNaN", "1", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng167 */ self.minmag64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng168 */ self.minmag64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng169 */ self.minmag64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng170 */ self.minmag64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng171 */ self.minmag64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng172 */ self.minmag64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng173 */ self.minmag64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng174 */ self.minmag64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng175 */ self.minmag64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng176 */ self.minmag64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng177 */ self.minmag64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng178 */ self.minmag64("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng179 */ self.minmag64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng181 */ self.minmag64("NaN(0x9)", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmng182 */ self.minmag64("-NaN(0x8)", "9990", "9990", .toNearestOrEven)
+ /* ddmng183 */ self.minmag64("NaN(0x47)", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmng184 */ self.minmag64("NaN(0x1)", "NaN(0x36)", "NaN(0x1)", .toNearestOrEven)
+ /* ddmng185 */ self.minmag64("NaN(0x16)", "-NaN(0x35)", "NaN(0x16)", .toNearestOrEven)
+ /* ddmng186 */ self.minmag64("-NaN(0x3)", "NaN(0x6)", "-NaN(0x3)", .toNearestOrEven)
+ /* ddmng187 */ self.minmag64("-NaN(0x2c)", "NaN(0x7)", "-NaN(0x2c)", .toNearestOrEven)
+ /* ddmng188 */ self.minmag64("-Inf", "NaN(0x29)", "-Infinity", .toNearestOrEven)
+ /* ddmng189 */ self.minmag64("-9999", "-NaN(0x21)", "-9999", .toNearestOrEven)
+ /* ddmng190 */ self.minmag64("Inf", "NaN(0x2)", "Infinity", .toNearestOrEven)
+ /* ddmng191 */ self.minmag64("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng192 */ self.minmag64("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng193 */ self.minmag64("-sNaN(0x61)", "NaN(0x8)", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng194 */ self.minmag64("sNaN(0x45)", "sNaN(0x5e)", "NaN(0x45)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng195 */ self.minmag64("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng196 */ self.minmag64("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng197 */ self.minmag64("088", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng198 */ self.minmag64("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng199 */ self.minmag64("NaN", "sNaN(0x56)", "NaN(0x56)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmng221 */ self.minmag64("-12345678000", "1", "1", .toNearestOrEven)
+ /* ddmng222 */ self.minmag64("1", "-12345678000", "1", .toNearestOrEven)
+ /* ddmng223 */ self.minmag64("-1234567800", "1", "1", .toNearestOrEven)
+ /* ddmng224 */ self.minmag64("1", "-1234567800", "1", .toNearestOrEven)
+ /* ddmng225 */ self.minmag64("-1234567890", "1", "1", .toNearestOrEven)
+ /* ddmng226 */ self.minmag64("1", "-1234567890", "1", .toNearestOrEven)
+ /* ddmng227 */ self.minmag64("-1234567891", "1", "1", .toNearestOrEven)
+ /* ddmng228 */ self.minmag64("1", "-1234567891", "1", .toNearestOrEven)
+ /* ddmng229 */ self.minmag64("-12345678901", "1", "1", .toNearestOrEven)
+ /* ddmng230 */ self.minmag64("1", "-12345678901", "1", .toNearestOrEven)
+ /* ddmng231 */ self.minmag64("-1234567896", "1", "1", .toNearestOrEven)
+ /* ddmng232 */ self.minmag64("1", "-1234567896", "1", .toNearestOrEven)
+ /* ddmng233 */ self.minmag64("1234567891", "1", "1", .toNearestOrEven)
+ /* ddmng234 */ self.minmag64("1", "1234567891", "1", .toNearestOrEven)
+ /* ddmng235 */ self.minmag64("12345678901", "1", "1", .toNearestOrEven)
+ /* ddmng236 */ self.minmag64("1", "12345678901", "1", .toNearestOrEven)
+ /* ddmng237 */ self.minmag64("1234567896", "1", "1", .toNearestOrEven)
+ /* ddmng238 */ self.minmag64("1", "1234567896", "1", .toNearestOrEven)
+ /* ddmng280 */ self.minmag64("3", "2", "2", .toNearestOrEven)
+ /* ddmng281 */ self.minmag64("-10", "3", "3", .toNearestOrEven)
+ /* ddmng282 */ self.minmag64("1.0", "1", "1.0", .toNearestOrEven)
+ /* ddmng283 */ self.minmag64("1", "1.0", "1.0", .toNearestOrEven)
+ /* ddmng284 */ self.minmag64("7", "NaN", "7", .toNearestOrEven)
+ /* ddmng401 */ self.minmag64("Inf", "1.1", "1.1", .toNearestOrEven)
+ /* ddmng402 */ self.minmag64("1.1", "1", "1", .toNearestOrEven)
+ /* ddmng403 */ self.minmag64("1", "1.0", "1.0", .toNearestOrEven)
+ /* ddmng404 */ self.minmag64("1.0", "0.1", "0.1", .toNearestOrEven)
+ /* ddmng405 */ self.minmag64("0.1", "0.10", "0.10", .toNearestOrEven)
+ /* ddmng406 */ self.minmag64("0.10", "0.100", "0.100", .toNearestOrEven)
+ /* ddmng407 */ self.minmag64("0.10", "0", "0", .toNearestOrEven)
+ /* ddmng408 */ self.minmag64("0", "0.0", "0.0", .toNearestOrEven)
+ /* ddmng409 */ self.minmag64("0.0", "-0", "-0", .toNearestOrEven)
+ /* ddmng410 */ self.minmag64("0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmng411 */ self.minmag64("0.00", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmng412 */ self.minmag64("0.0", "-0.00", "-0.00", .toNearestOrEven)
+ /* ddmng413 */ self.minmag64("0", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmng414 */ self.minmag64("0", "-0", "-0", .toNearestOrEven)
+ /* ddmng415 */ self.minmag64("-0.0", "-0", "-0", .toNearestOrEven)
+ /* ddmng416 */ self.minmag64("-0", "-0.100", "-0", .toNearestOrEven)
+ /* ddmng417 */ self.minmag64("-0.100", "-0.10", "-0.10", .toNearestOrEven)
+ /* ddmng418 */ self.minmag64("-0.10", "-0.1", "-0.1", .toNearestOrEven)
+ /* ddmng419 */ self.minmag64("-0.1", "-1.0", "-0.1", .toNearestOrEven)
+ /* ddmng420 */ self.minmag64("-1.0", "-1", "-1", .toNearestOrEven)
+ /* ddmng421 */ self.minmag64("-1", "-1.1", "-1", .toNearestOrEven)
+ /* ddmng423 */ self.minmag64("-1.1", "-Inf", "-1.1", .toNearestOrEven)
+ /* ddmng431 */ self.minmag64("1.1", "Inf", "1.1", .toNearestOrEven)
+ /* ddmng432 */ self.minmag64("1", "1.1", "1", .toNearestOrEven)
+ /* ddmng433 */ self.minmag64("1.0", "1", "1.0", .toNearestOrEven)
+ /* ddmng434 */ self.minmag64("0.1", "1.0", "0.1", .toNearestOrEven)
+ /* ddmng435 */ self.minmag64("0.10", "0.1", "0.10", .toNearestOrEven)
+ /* ddmng436 */ self.minmag64("0.100", "0.10", "0.100", .toNearestOrEven)
+ /* ddmng437 */ self.minmag64("0", "0.10", "0", .toNearestOrEven)
+ /* ddmng438 */ self.minmag64("0.0", "0", "0.0", .toNearestOrEven)
+ /* ddmng439 */ self.minmag64("-0", "0.0", "-0", .toNearestOrEven)
+ /* ddmng440 */ self.minmag64("-0.0", "0.0", "-0.0", .toNearestOrEven)
+ /* ddmng441 */ self.minmag64("-0.0", "0.00", "-0.0", .toNearestOrEven)
+ /* ddmng442 */ self.minmag64("-0.00", "0.0", "-0.00", .toNearestOrEven)
+ /* ddmng443 */ self.minmag64("-0.0", "0", "-0.0", .toNearestOrEven)
+ /* ddmng444 */ self.minmag64("-0", "0", "-0", .toNearestOrEven)
+ /* ddmng445 */ self.minmag64("-0", "-0.0", "-0", .toNearestOrEven)
+ /* ddmng446 */ self.minmag64("-0.100", "-0", "-0", .toNearestOrEven)
+ /* ddmng447 */ self.minmag64("-0.10", "-0.100", "-0.10", .toNearestOrEven)
+ /* ddmng448 */ self.minmag64("-0.1", "-0.10", "-0.1", .toNearestOrEven)
+ /* ddmng449 */ self.minmag64("-1.0", "-0.1", "-0.1", .toNearestOrEven)
+ /* ddmng450 */ self.minmag64("-1", "-1.0", "-1", .toNearestOrEven)
+ /* ddmng451 */ self.minmag64("-1.1", "-1", "-1", .toNearestOrEven)
+ /* ddmng453 */ self.minmag64("-Inf", "-1.1", "-1.1", .toNearestOrEven)
+ /* ddmng460 */ self.minmag64("1000", "1E+3", "1000", .toNearestOrEven)
+ /* ddmng461 */ self.minmag64("1E+3", "1000", "1000", .toNearestOrEven)
+ /* ddmng462 */ self.minmag64("1000", "-1E+3", "-1E+3", .toNearestOrEven)
+ /* ddmng463 */ self.minmag64("1E+3", "-384", "-384", .toNearestOrEven)
+ /* ddmng464 */ self.minmag64("-384", "1E+3", "-384", .toNearestOrEven)
+ /* ddmng465 */ self.minmag64("-1E+3", "1000", "-1E+3", .toNearestOrEven)
+ /* ddmng466 */ self.minmag64("-384", "-1E+3", "-384", .toNearestOrEven)
+ /* ddmng467 */ self.minmag64("-1E+3", "-384", "-384", .toNearestOrEven)
+ /* ddmng510 */ self.minmag64("1.00E-383", "0", "0", .toNearestOrEven)
+ /* ddmng511 */ self.minmag64("0.1E-383", "0", "0", .toNearestOrEven)
+ /* ddmng512 */ self.minmag64("0.10E-383", "0", "0", .toNearestOrEven)
+ /* ddmng513 */ self.minmag64("0.100E-383", "0", "0", .toNearestOrEven)
+ /* ddmng514 */ self.minmag64("0.01E-383", "0", "0", .toNearestOrEven)
+ /* ddmng515 */ self.minmag64("0.999E-383", "0", "0", .toNearestOrEven)
+ /* ddmng516 */ self.minmag64("0.099E-383", "0", "0", .toNearestOrEven)
+ /* ddmng517 */ self.minmag64("0.009E-383", "0", "0", .toNearestOrEven)
+ /* ddmng518 */ self.minmag64("0.001E-383", "0", "0", .toNearestOrEven)
+ /* ddmng519 */ self.minmag64("0.0009E-383", "0", "0", .toNearestOrEven)
+ /* ddmng520 */ self.minmag64("0.0001E-383", "0", "0", .toNearestOrEven)
+ /* ddmng530 */ self.minmag64("-1.00E-383", "0", "0", .toNearestOrEven)
+ /* ddmng531 */ self.minmag64("-0.1E-383", "0", "0", .toNearestOrEven)
+ /* ddmng532 */ self.minmag64("-0.10E-383", "0", "0", .toNearestOrEven)
+ /* ddmng533 */ self.minmag64("-0.100E-383", "0", "0", .toNearestOrEven)
+ /* ddmng534 */ self.minmag64("-0.01E-383", "0", "0", .toNearestOrEven)
+ /* ddmng535 */ self.minmag64("-0.999E-383", "0", "0", .toNearestOrEven)
+ /* ddmng536 */ self.minmag64("-0.099E-383", "0", "0", .toNearestOrEven)
+ /* ddmng537 */ self.minmag64("-0.009E-383", "0", "0", .toNearestOrEven)
+ /* ddmng538 */ self.minmag64("-0.001E-383", "0", "0", .toNearestOrEven)
+ /* ddmng539 */ self.minmag64("-0.0009E-383", "0", "0", .toNearestOrEven)
+ /* ddmng540 */ self.minmag64("-0.0001E-383", "0", "0", .toNearestOrEven)
+ }
+
+ private func minmag64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = Decimal64.minimumMagnitude(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_min(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_minmag128() {
+ /* dqmng001 */ self.minmag128("-2", "-2", "-2", .toNearestOrEven)
+ /* dqmng002 */ self.minmag128("-2", "-1", "-1", .toNearestOrEven)
+ /* dqmng003 */ self.minmag128("-2", "0", "0", .toNearestOrEven)
+ /* dqmng004 */ self.minmag128("-2", "1", "1", .toNearestOrEven)
+ /* dqmng005 */ self.minmag128("-2", "2", "-2", .toNearestOrEven)
+ /* dqmng006 */ self.minmag128("-1", "-2", "-1", .toNearestOrEven)
+ /* dqmng007 */ self.minmag128("-1", "-1", "-1", .toNearestOrEven)
+ /* dqmng008 */ self.minmag128("-1", "0", "0", .toNearestOrEven)
+ /* dqmng009 */ self.minmag128("-1", "1", "-1", .toNearestOrEven)
+ /* dqmng010 */ self.minmag128("-1", "2", "-1", .toNearestOrEven)
+ /* dqmng011 */ self.minmag128("0", "-2", "0", .toNearestOrEven)
+ /* dqmng012 */ self.minmag128("0", "-1", "0", .toNearestOrEven)
+ /* dqmng013 */ self.minmag128("0", "0", "0", .toNearestOrEven)
+ /* dqmng014 */ self.minmag128("0", "1", "0", .toNearestOrEven)
+ /* dqmng015 */ self.minmag128("0", "2", "0", .toNearestOrEven)
+ /* dqmng016 */ self.minmag128("1", "-2", "1", .toNearestOrEven)
+ /* dqmng017 */ self.minmag128("1", "-1", "-1", .toNearestOrEven)
+ /* dqmng018 */ self.minmag128("1", "0", "0", .toNearestOrEven)
+ /* dqmng019 */ self.minmag128("1", "1", "1", .toNearestOrEven)
+ /* dqmng020 */ self.minmag128("1", "2", "1", .toNearestOrEven)
+ /* dqmng021 */ self.minmag128("2", "-2", "-2", .toNearestOrEven)
+ /* dqmng022 */ self.minmag128("2", "-1", "-1", .toNearestOrEven)
+ /* dqmng023 */ self.minmag128("2", "0", "0", .toNearestOrEven)
+ /* dqmng025 */ self.minmag128("2", "1", "1", .toNearestOrEven)
+ /* dqmng026 */ self.minmag128("2", "2", "2", .toNearestOrEven)
+ /* dqmng030 */ self.minmag128("0", "0", "0", .toNearestOrEven)
+ /* dqmng031 */ self.minmag128("0", "-0", "-0", .toNearestOrEven)
+ /* dqmng032 */ self.minmag128("0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmng033 */ self.minmag128("0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmng034 */ self.minmag128("-0", "0", "-0", .toNearestOrEven)
+ /* dqmng035 */ self.minmag128("-0", "-0", "-0", .toNearestOrEven)
+ /* dqmng036 */ self.minmag128("-0", "-0.0", "-0", .toNearestOrEven)
+ /* dqmng037 */ self.minmag128("-0", "0.0", "-0", .toNearestOrEven)
+ /* dqmng038 */ self.minmag128("0.0", "0", "0.0", .toNearestOrEven)
+ /* dqmng039 */ self.minmag128("0.0", "-0", "-0", .toNearestOrEven)
+ /* dqmng040 */ self.minmag128("0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmng041 */ self.minmag128("0.0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmng042 */ self.minmag128("-0.0", "0", "-0.0", .toNearestOrEven)
+ /* dqmng043 */ self.minmag128("-0.0", "-0", "-0", .toNearestOrEven)
+ /* dqmng044 */ self.minmag128("-0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmng045 */ self.minmag128("-0.0", "0.0", "-0.0", .toNearestOrEven)
+ /* dqmng046 */ self.minmag128("0E1", "-0E1", "-0E+1", .toNearestOrEven)
+ /* dqmng047 */ self.minmag128("-0E1", "0E2", "-0E+1", .toNearestOrEven)
+ /* dqmng048 */ self.minmag128("0E2", "0E1", "0E+1", .toNearestOrEven)
+ /* dqmng049 */ self.minmag128("0E1", "0E2", "0E+1", .toNearestOrEven)
+ /* dqmng050 */ self.minmag128("-0E3", "-0E2", "-0E+3", .toNearestOrEven)
+ /* dqmng051 */ self.minmag128("-0E2", "-0E3", "-0E+3", .toNearestOrEven)
+ /* dqmng090 */ self.minmag128("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmng091 */ self.minmag128("Inf", "-1000", "-1000", .toNearestOrEven)
+ /* dqmng092 */ self.minmag128("Inf", "-1", "-1", .toNearestOrEven)
+ /* dqmng093 */ self.minmag128("Inf", "-0", "-0", .toNearestOrEven)
+ /* dqmng094 */ self.minmag128("Inf", "0", "0", .toNearestOrEven)
+ /* dqmng095 */ self.minmag128("Inf", "1", "1", .toNearestOrEven)
+ /* dqmng096 */ self.minmag128("Inf", "1000", "1000", .toNearestOrEven)
+ /* dqmng097 */ self.minmag128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmng098 */ self.minmag128("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* dqmng099 */ self.minmag128("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* dqmng100 */ self.minmag128("-1", "Inf", "-1", .toNearestOrEven)
+ /* dqmng101 */ self.minmag128("-0", "Inf", "-0", .toNearestOrEven)
+ /* dqmng102 */ self.minmag128("0", "Inf", "0", .toNearestOrEven)
+ /* dqmng103 */ self.minmag128("1", "Inf", "1", .toNearestOrEven)
+ /* dqmng104 */ self.minmag128("1000", "Inf", "1000", .toNearestOrEven)
+ /* dqmng105 */ self.minmag128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmng120 */ self.minmag128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmng121 */ self.minmag128("-Inf", "-1000", "-1000", .toNearestOrEven)
+ /* dqmng122 */ self.minmag128("-Inf", "-1", "-1", .toNearestOrEven)
+ /* dqmng123 */ self.minmag128("-Inf", "-0", "-0", .toNearestOrEven)
+ /* dqmng124 */ self.minmag128("-Inf", "0", "0", .toNearestOrEven)
+ /* dqmng125 */ self.minmag128("-Inf", "1", "1", .toNearestOrEven)
+ /* dqmng126 */ self.minmag128("-Inf", "1000", "1000", .toNearestOrEven)
+ /* dqmng127 */ self.minmag128("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* dqmng128 */ self.minmag128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmng129 */ self.minmag128("-1000", "-Inf", "-1000", .toNearestOrEven)
+ /* dqmng130 */ self.minmag128("-1", "-Inf", "-1", .toNearestOrEven)
+ /* dqmng131 */ self.minmag128("-0", "-Inf", "-0", .toNearestOrEven)
+ /* dqmng132 */ self.minmag128("0", "-Inf", "0", .toNearestOrEven)
+ /* dqmng133 */ self.minmag128("1", "-Inf", "1", .toNearestOrEven)
+ /* dqmng134 */ self.minmag128("1000", "-Inf", "1000", .toNearestOrEven)
+ /* dqmng135 */ self.minmag128("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmng141 */ self.minmag128("NaN", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmng142 */ self.minmag128("NaN", "-1000", "-1000", .toNearestOrEven)
+ /* dqmng143 */ self.minmag128("NaN", "-1", "-1", .toNearestOrEven)
+ /* dqmng144 */ self.minmag128("NaN", "-0", "-0", .toNearestOrEven)
+ /* dqmng145 */ self.minmag128("NaN", "0", "0", .toNearestOrEven)
+ /* dqmng146 */ self.minmag128("NaN", "1", "1", .toNearestOrEven)
+ /* dqmng147 */ self.minmag128("NaN", "1000", "1000", .toNearestOrEven)
+ /* dqmng148 */ self.minmag128("NaN", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmng149 */ self.minmag128("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* dqmng150 */ self.minmag128("-Inf", "NaN", "-Infinity", .toNearestOrEven)
+ /* dqmng151 */ self.minmag128("-1000", "NaN", "-1000", .toNearestOrEven)
+ /* dqmng152 */ self.minmag128("-1", "-NaN", "-1", .toNearestOrEven)
+ /* dqmng153 */ self.minmag128("-0", "NaN", "-0", .toNearestOrEven)
+ /* dqmng154 */ self.minmag128("0", "-NaN", "0", .toNearestOrEven)
+ /* dqmng155 */ self.minmag128("1", "NaN", "1", .toNearestOrEven)
+ /* dqmng156 */ self.minmag128("1000", "NaN", "1000", .toNearestOrEven)
+ /* dqmng157 */ self.minmag128("Inf", "NaN", "Infinity", .toNearestOrEven)
+ /* dqmng161 */ self.minmag128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng162 */ self.minmag128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng163 */ self.minmag128("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng164 */ self.minmag128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng165 */ self.minmag128("-sNaN", "0", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng166 */ self.minmag128("-sNaN", "1", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng167 */ self.minmag128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng168 */ self.minmag128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng169 */ self.minmag128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng170 */ self.minmag128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng171 */ self.minmag128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng172 */ self.minmag128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng173 */ self.minmag128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng174 */ self.minmag128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng175 */ self.minmag128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng176 */ self.minmag128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng177 */ self.minmag128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng178 */ self.minmag128("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng179 */ self.minmag128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng181 */ self.minmag128("NaN(0x9)", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmng182 */ self.minmag128("-NaN(0x8)", "9990", "9990", .toNearestOrEven)
+ /* dqmng183 */ self.minmag128("NaN(0x47)", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmng184 */ self.minmag128("NaN(0x1)", "NaN(0x36)", "NaN(0x1)", .toNearestOrEven)
+ /* dqmng185 */ self.minmag128("NaN(0x16)", "-NaN(0x35)", "NaN(0x16)", .toNearestOrEven)
+ /* dqmng186 */ self.minmag128("-NaN(0x3)", "NaN(0x6)", "-NaN(0x3)", .toNearestOrEven)
+ /* dqmng187 */ self.minmag128("-NaN(0x2c)", "NaN(0x7)", "-NaN(0x2c)", .toNearestOrEven)
+ /* dqmng188 */ self.minmag128("-Inf", "NaN(0x29)", "-Infinity", .toNearestOrEven)
+ /* dqmng189 */ self.minmag128("-9999", "-NaN(0x21)", "-9999", .toNearestOrEven)
+ /* dqmng190 */ self.minmag128("Inf", "NaN(0x2)", "Infinity", .toNearestOrEven)
+ /* dqmng191 */ self.minmag128("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng192 */ self.minmag128("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng193 */ self.minmag128("-sNaN(0x61)", "NaN(0x8)", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng194 */ self.minmag128("sNaN(0x45)", "sNaN(0x5e)", "NaN(0x45)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng195 */ self.minmag128("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng196 */ self.minmag128("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng197 */ self.minmag128("088", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng198 */ self.minmag128("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng199 */ self.minmag128("NaN", "sNaN(0x56)", "NaN(0x56)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmng221 */ self.minmag128("-12345678000", "1", "1", .toNearestOrEven)
+ /* dqmng222 */ self.minmag128("1", "-12345678000", "1", .toNearestOrEven)
+ /* dqmng223 */ self.minmag128("-1234567800", "1", "1", .toNearestOrEven)
+ /* dqmng224 */ self.minmag128("1", "-1234567800", "1", .toNearestOrEven)
+ /* dqmng225 */ self.minmag128("-1234567890", "1", "1", .toNearestOrEven)
+ /* dqmng226 */ self.minmag128("1", "-1234567890", "1", .toNearestOrEven)
+ /* dqmng227 */ self.minmag128("-1234567891", "1", "1", .toNearestOrEven)
+ /* dqmng228 */ self.minmag128("1", "-1234567891", "1", .toNearestOrEven)
+ /* dqmng229 */ self.minmag128("-12345678901", "1", "1", .toNearestOrEven)
+ /* dqmng230 */ self.minmag128("1", "-12345678901", "1", .toNearestOrEven)
+ /* dqmng231 */ self.minmag128("-1234567896", "1", "1", .toNearestOrEven)
+ /* dqmng232 */ self.minmag128("1", "-1234567896", "1", .toNearestOrEven)
+ /* dqmng233 */ self.minmag128("1234567891", "1", "1", .toNearestOrEven)
+ /* dqmng234 */ self.minmag128("1", "1234567891", "1", .toNearestOrEven)
+ /* dqmng235 */ self.minmag128("12345678901", "1", "1", .toNearestOrEven)
+ /* dqmng236 */ self.minmag128("1", "12345678901", "1", .toNearestOrEven)
+ /* dqmng237 */ self.minmag128("1234567896", "1", "1", .toNearestOrEven)
+ /* dqmng238 */ self.minmag128("1", "1234567896", "1", .toNearestOrEven)
+ /* dqmng280 */ self.minmag128("3", "2", "2", .toNearestOrEven)
+ /* dqmng281 */ self.minmag128("-10", "3", "3", .toNearestOrEven)
+ /* dqmng282 */ self.minmag128("1.0", "1", "1.0", .toNearestOrEven)
+ /* dqmng283 */ self.minmag128("1", "1.0", "1.0", .toNearestOrEven)
+ /* dqmng284 */ self.minmag128("7", "NaN", "7", .toNearestOrEven)
+ /* dqmng401 */ self.minmag128("Inf", "1.1", "1.1", .toNearestOrEven)
+ /* dqmng402 */ self.minmag128("1.1", "1", "1", .toNearestOrEven)
+ /* dqmng403 */ self.minmag128("1", "1.0", "1.0", .toNearestOrEven)
+ /* dqmng404 */ self.minmag128("1.0", "0.1", "0.1", .toNearestOrEven)
+ /* dqmng405 */ self.minmag128("0.1", "0.10", "0.10", .toNearestOrEven)
+ /* dqmng406 */ self.minmag128("0.10", "0.100", "0.100", .toNearestOrEven)
+ /* dqmng407 */ self.minmag128("0.10", "0", "0", .toNearestOrEven)
+ /* dqmng408 */ self.minmag128("0", "0.0", "0.0", .toNearestOrEven)
+ /* dqmng409 */ self.minmag128("0.0", "-0", "-0", .toNearestOrEven)
+ /* dqmng410 */ self.minmag128("0.0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmng411 */ self.minmag128("0.00", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmng412 */ self.minmag128("0.0", "-0.00", "-0.00", .toNearestOrEven)
+ /* dqmng413 */ self.minmag128("0", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmng414 */ self.minmag128("0", "-0", "-0", .toNearestOrEven)
+ /* dqmng415 */ self.minmag128("-0.0", "-0", "-0", .toNearestOrEven)
+ /* dqmng416 */ self.minmag128("-0", "-0.100", "-0", .toNearestOrEven)
+ /* dqmng417 */ self.minmag128("-0.100", "-0.10", "-0.10", .toNearestOrEven)
+ /* dqmng418 */ self.minmag128("-0.10", "-0.1", "-0.1", .toNearestOrEven)
+ /* dqmng419 */ self.minmag128("-0.1", "-1.0", "-0.1", .toNearestOrEven)
+ /* dqmng420 */ self.minmag128("-1.0", "-1", "-1", .toNearestOrEven)
+ /* dqmng421 */ self.minmag128("-1", "-1.1", "-1", .toNearestOrEven)
+ /* dqmng423 */ self.minmag128("-1.1", "-Inf", "-1.1", .toNearestOrEven)
+ /* dqmng431 */ self.minmag128("1.1", "Inf", "1.1", .toNearestOrEven)
+ /* dqmng432 */ self.minmag128("1", "1.1", "1", .toNearestOrEven)
+ /* dqmng433 */ self.minmag128("1.0", "1", "1.0", .toNearestOrEven)
+ /* dqmng434 */ self.minmag128("0.1", "1.0", "0.1", .toNearestOrEven)
+ /* dqmng435 */ self.minmag128("0.10", "0.1", "0.10", .toNearestOrEven)
+ /* dqmng436 */ self.minmag128("0.100", "0.10", "0.100", .toNearestOrEven)
+ /* dqmng437 */ self.minmag128("0", "0.10", "0", .toNearestOrEven)
+ /* dqmng438 */ self.minmag128("0.0", "0", "0.0", .toNearestOrEven)
+ /* dqmng439 */ self.minmag128("-0", "0.0", "-0", .toNearestOrEven)
+ /* dqmng440 */ self.minmag128("-0.0", "0.0", "-0.0", .toNearestOrEven)
+ /* dqmng441 */ self.minmag128("-0.0", "0.00", "-0.0", .toNearestOrEven)
+ /* dqmng442 */ self.minmag128("-0.00", "0.0", "-0.00", .toNearestOrEven)
+ /* dqmng443 */ self.minmag128("-0.0", "0", "-0.0", .toNearestOrEven)
+ /* dqmng444 */ self.minmag128("-0", "0", "-0", .toNearestOrEven)
+ /* dqmng445 */ self.minmag128("-0", "-0.0", "-0", .toNearestOrEven)
+ /* dqmng446 */ self.minmag128("-0.100", "-0", "-0", .toNearestOrEven)
+ /* dqmng447 */ self.minmag128("-0.10", "-0.100", "-0.10", .toNearestOrEven)
+ /* dqmng448 */ self.minmag128("-0.1", "-0.10", "-0.1", .toNearestOrEven)
+ /* dqmng449 */ self.minmag128("-1.0", "-0.1", "-0.1", .toNearestOrEven)
+ /* dqmng450 */ self.minmag128("-1", "-1.0", "-1", .toNearestOrEven)
+ /* dqmng451 */ self.minmag128("-1.1", "-1", "-1", .toNearestOrEven)
+ /* dqmng453 */ self.minmag128("-Inf", "-1.1", "-1.1", .toNearestOrEven)
+ /* dqmng460 */ self.minmag128("1000", "1E+3", "1000", .toNearestOrEven)
+ /* dqmng461 */ self.minmag128("1E+3", "1000", "1000", .toNearestOrEven)
+ /* dqmng462 */ self.minmag128("1000", "-1E+3", "-1E+3", .toNearestOrEven)
+ /* dqmng463 */ self.minmag128("1E+3", "-384", "-384", .toNearestOrEven)
+ /* dqmng464 */ self.minmag128("-384", "1E+3", "-384", .toNearestOrEven)
+ /* dqmng465 */ self.minmag128("-1E+3", "1000", "-1E+3", .toNearestOrEven)
+ /* dqmng466 */ self.minmag128("-384", "-1E+3", "-384", .toNearestOrEven)
+ /* dqmng467 */ self.minmag128("-1E+3", "-384", "-384", .toNearestOrEven)
+ /* dqmng510 */ self.minmag128("1.00E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng511 */ self.minmag128("0.1E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng512 */ self.minmag128("0.10E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng513 */ self.minmag128("0.100E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng514 */ self.minmag128("0.01E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng515 */ self.minmag128("0.999E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng516 */ self.minmag128("0.099E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng517 */ self.minmag128("0.009E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng518 */ self.minmag128("0.001E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng519 */ self.minmag128("0.0009E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng520 */ self.minmag128("0.0001E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng530 */ self.minmag128("-1.00E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng531 */ self.minmag128("-0.1E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng532 */ self.minmag128("-0.10E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng533 */ self.minmag128("-0.100E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng534 */ self.minmag128("-0.01E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng535 */ self.minmag128("-0.999E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng536 */ self.minmag128("-0.099E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng537 */ self.minmag128("-0.009E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng538 */ self.minmag128("-0.001E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng539 */ self.minmag128("-0.0009E-6143", "0", "0", .toNearestOrEven)
+ /* dqmng540 */ self.minmag128("-0.0001E-6143", "0", "0", .toNearestOrEven)
+ }
+
+ private func minmag128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = Decimal128.minimumMagnitude(arg0, arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_min(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveMulTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveMulTests.swift
new file mode 100644
index 0000000..0e7bb3e
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveMulTests.swift
@@ -0,0 +1,1014 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveMulTests: XCTestCase, SpeleotroveMixin {
+
+ func test_multiply64() {
+ /* ddcan302 */ self.multiply64("1", "#77ffff3fcff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan303 */ self.multiply64("#77fcffffcff3fcff", "1", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan306 */ self.multiply64("-1", "#77ffff3fcff3fcff", "#f7fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan307 */ self.multiply64("#77fcffffcff3fcff", "-1", "#f7fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan311 */ self.multiply64("1", "#7c03ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan312 */ self.multiply64("#7c03ff3fcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan313 */ self.multiply64("1", "#7c40ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan314 */ self.multiply64("#7c40ff3fcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan315 */ self.multiply64("1", "#7e00ffffcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan316 */ self.multiply64("#7e00ffffcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan317 */ self.multiply64("1", "#7e80ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan318 */ self.multiply64("#7e80ff3fcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan320 */ self.multiply64("1", "#7880000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan321 */ self.multiply64("#7880000000000000", "1", "#7800000000000000", .toNearestOrEven)
+ /* ddcan322 */ self.multiply64("1", "#7802000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan323 */ self.multiply64("#7802000000000000", "1", "#7800000000000000", .toNearestOrEven)
+ /* ddcan324 */ self.multiply64("1", "#7800000000000001", "#7800000000000000", .toNearestOrEven)
+ /* ddcan325 */ self.multiply64("#7800000000000001", "1", "#7800000000000000", .toNearestOrEven)
+ /* ddcan326 */ self.multiply64("1", "#7800002000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan327 */ self.multiply64("#7800002000000000", "1", "#7800000000000000", .toNearestOrEven)
+ /* ddm2 */ self.multiply64("999999999999999", "999999999999999", "9.999999999999980E+29", .toNearestOrEven, .isInexact)
+ /* ddmul000 */ self.multiply64("2", "2", "4", .toNearestOrEven)
+ /* ddmul001 */ self.multiply64("2", "3", "6", .toNearestOrEven)
+ /* ddmul002 */ self.multiply64("5", "1", "5", .toNearestOrEven)
+ /* ddmul003 */ self.multiply64("5", "2", "10", .toNearestOrEven)
+ /* ddmul004 */ self.multiply64("1.20", "2", "2.40", .toNearestOrEven)
+ /* ddmul005 */ self.multiply64("1.20", "0", "0.00", .toNearestOrEven)
+ /* ddmul006 */ self.multiply64("1.20", "-2", "-2.40", .toNearestOrEven)
+ /* ddmul007 */ self.multiply64("-1.20", "2", "-2.40", .toNearestOrEven)
+ /* ddmul008 */ self.multiply64("-1.20", "0", "-0.00", .toNearestOrEven)
+ /* ddmul009 */ self.multiply64("-1.20", "-2", "2.40", .toNearestOrEven)
+ /* ddmul010 */ self.multiply64("5.09", "7.1", "36.139", .toNearestOrEven)
+ /* ddmul011 */ self.multiply64("2.5", "4", "10.0", .toNearestOrEven)
+ /* ddmul012 */ self.multiply64("2.50", "4", "10.00", .toNearestOrEven)
+ /* ddmul013 */ self.multiply64("1.23456789", "1.00000000", "1.234567890000000", .toNearestOrEven)
+ /* ddmul015 */ self.multiply64("2.50", "4", "10.00", .toNearestOrEven)
+ /* ddmul016 */ self.multiply64("9.999999999", "9.999999999", "99.99999998000000", .toNearestOrEven, .isInexact)
+ /* ddmul017 */ self.multiply64("9.999999999", "-9.999999999", "-99.99999998000000", .toNearestOrEven, .isInexact)
+ /* ddmul018 */ self.multiply64("-9.999999999", "9.999999999", "-99.99999998000000", .toNearestOrEven, .isInexact)
+ /* ddmul019 */ self.multiply64("-9.999999999", "-9.999999999", "99.99999998000000", .toNearestOrEven, .isInexact)
+ /* ddmul021 */ self.multiply64("0", "0", "0", .toNearestOrEven)
+ /* ddmul022 */ self.multiply64("0", "-0", "-0", .toNearestOrEven)
+ /* ddmul023 */ self.multiply64("-0", "0", "-0", .toNearestOrEven)
+ /* ddmul024 */ self.multiply64("-0", "-0", "0", .toNearestOrEven)
+ /* ddmul025 */ self.multiply64("-0.0", "-0.0", "0.00", .toNearestOrEven)
+ /* ddmul026 */ self.multiply64("-0.0", "-0.0", "0.00", .toNearestOrEven)
+ /* ddmul027 */ self.multiply64("-0.0", "-0.0", "0.00", .toNearestOrEven)
+ /* ddmul028 */ self.multiply64("-0.0", "-0.0", "0.00", .toNearestOrEven)
+ /* ddmul030 */ self.multiply64("5.00", "1E-3", "0.00500", .toNearestOrEven)
+ /* ddmul031 */ self.multiply64("00.00", "0.000", "0.00000", .toNearestOrEven)
+ /* ddmul032 */ self.multiply64("00.00", "0E-3", "0.00000", .toNearestOrEven)
+ /* ddmul033 */ self.multiply64("0E-3", "00.00", "0.00000", .toNearestOrEven)
+ /* ddmul034 */ self.multiply64("-5.00", "1E-3", "-0.00500", .toNearestOrEven)
+ /* ddmul035 */ self.multiply64("-00.00", "0.000", "-0.00000", .toNearestOrEven)
+ /* ddmul036 */ self.multiply64("-00.00", "0E-3", "-0.00000", .toNearestOrEven)
+ /* ddmul037 */ self.multiply64("-0E-3", "00.00", "-0.00000", .toNearestOrEven)
+ /* ddmul038 */ self.multiply64("5.00", "-1E-3", "-0.00500", .toNearestOrEven)
+ /* ddmul039 */ self.multiply64("00.00", "-0.000", "-0.00000", .toNearestOrEven)
+ /* ddmul040 */ self.multiply64("00.00", "-0E-3", "-0.00000", .toNearestOrEven)
+ /* ddmul041 */ self.multiply64("0E-3", "-00.00", "-0.00000", .toNearestOrEven)
+ /* ddmul042 */ self.multiply64("-5.00", "-1E-3", "0.00500", .toNearestOrEven)
+ /* ddmul043 */ self.multiply64("-00.00", "-0.000", "0.00000", .toNearestOrEven)
+ /* ddmul044 */ self.multiply64("-00.00", "-0E-3", "0.00000", .toNearestOrEven)
+ /* ddmul045 */ self.multiply64("-0E-3", "-00.00", "0.00000", .toNearestOrEven)
+ /* ddmul050 */ self.multiply64("1.20", "3", "3.60", .toNearestOrEven)
+ /* ddmul051 */ self.multiply64("7", "3", "21", .toNearestOrEven)
+ /* ddmul052 */ self.multiply64("0.9", "0.8", "0.72", .toNearestOrEven)
+ /* ddmul053 */ self.multiply64("0.9", "-0", "-0.0", .toNearestOrEven)
+ /* ddmul054 */ self.multiply64("654321", "654321", "428135971041", .toNearestOrEven)
+ /* ddmul060 */ self.multiply64("123.45", "1e7", "1.2345E+9", .toNearestOrEven)
+ /* ddmul061 */ self.multiply64("123.45", "1e8", "1.2345E+10", .toNearestOrEven)
+ /* ddmul062 */ self.multiply64("123.45", "1e+9", "1.2345E+11", .toNearestOrEven)
+ /* ddmul063 */ self.multiply64("123.45", "1e10", "1.2345E+12", .toNearestOrEven)
+ /* ddmul064 */ self.multiply64("123.45", "1e11", "1.2345E+13", .toNearestOrEven)
+ /* ddmul065 */ self.multiply64("123.45", "1e12", "1.2345E+14", .toNearestOrEven)
+ /* ddmul066 */ self.multiply64("123.45", "1e13", "1.2345E+15", .toNearestOrEven)
+ /* ddmul080 */ self.multiply64("0.1", "1230123456456789", "123012345645678.9", .toNearestOrEven)
+ /* ddmul084 */ self.multiply64("0.1", "1230123456456789", "123012345645678.9", .toNearestOrEven)
+ /* ddmul090 */ self.multiply64("1230123456456789", "0.1", "123012345645678.9", .toNearestOrEven)
+ /* ddmul094 */ self.multiply64("1230123456456789", "0.1", "123012345645678.9", .toNearestOrEven)
+ /* ddmul1001 */ self.multiply64("1", "10", "10", .toNearestOrEven)
+ /* ddmul1002 */ self.multiply64("1", "100", "100", .toNearestOrEven)
+ /* ddmul1003 */ self.multiply64("1", "1000", "1000", .toNearestOrEven)
+ /* ddmul1004 */ self.multiply64("1", "10000", "10000", .toNearestOrEven)
+ /* ddmul1005 */ self.multiply64("1", "100000", "100000", .toNearestOrEven)
+ /* ddmul1006 */ self.multiply64("1", "1000000", "1000000", .toNearestOrEven)
+ /* ddmul1007 */ self.multiply64("1", "10000000", "10000000", .toNearestOrEven)
+ /* ddmul1008 */ self.multiply64("1", "100000000", "100000000", .toNearestOrEven)
+ /* ddmul1009 */ self.multiply64("1", "1000000000", "1000000000", .toNearestOrEven)
+ /* ddmul101 */ self.multiply64("9", "9", "81", .toNearestOrEven)
+ /* ddmul1010 */ self.multiply64("1", "10000000000", "10000000000", .toNearestOrEven)
+ /* ddmul1011 */ self.multiply64("1", "100000000000", "100000000000", .toNearestOrEven)
+ /* ddmul1012 */ self.multiply64("1", "1000000000000", "1000000000000", .toNearestOrEven)
+ /* ddmul1013 */ self.multiply64("1", "10000000000000", "10000000000000", .toNearestOrEven)
+ /* ddmul1014 */ self.multiply64("1", "100000000000000", "100000000000000", .toNearestOrEven)
+ /* ddmul1015 */ self.multiply64("1", "1000000000000000", "1000000000000000", .toNearestOrEven)
+ /* ddmul102 */ self.multiply64("9", "90", "810", .toNearestOrEven)
+ /* ddmul1021 */ self.multiply64("10", "1", "10", .toNearestOrEven)
+ /* ddmul1022 */ self.multiply64("10", "10", "100", .toNearestOrEven)
+ /* ddmul1023 */ self.multiply64("10", "100", "1000", .toNearestOrEven)
+ /* ddmul1024 */ self.multiply64("10", "1000", "10000", .toNearestOrEven)
+ /* ddmul1025 */ self.multiply64("10", "10000", "100000", .toNearestOrEven)
+ /* ddmul1026 */ self.multiply64("10", "100000", "1000000", .toNearestOrEven)
+ /* ddmul1027 */ self.multiply64("10", "1000000", "10000000", .toNearestOrEven)
+ /* ddmul1028 */ self.multiply64("10", "10000000", "100000000", .toNearestOrEven)
+ /* ddmul1029 */ self.multiply64("10", "100000000", "1000000000", .toNearestOrEven)
+ /* ddmul103 */ self.multiply64("9", "900", "8100", .toNearestOrEven)
+ /* ddmul1030 */ self.multiply64("10", "1000000000", "10000000000", .toNearestOrEven)
+ /* ddmul1031 */ self.multiply64("10", "10000000000", "100000000000", .toNearestOrEven)
+ /* ddmul1032 */ self.multiply64("10", "100000000000", "1000000000000", .toNearestOrEven)
+ /* ddmul1033 */ self.multiply64("10", "1000000000000", "10000000000000", .toNearestOrEven)
+ /* ddmul1034 */ self.multiply64("10", "10000000000000", "100000000000000", .toNearestOrEven)
+ /* ddmul1035 */ self.multiply64("10", "100000000000000", "1000000000000000", .toNearestOrEven)
+ /* ddmul104 */ self.multiply64("9", "9000", "81000", .toNearestOrEven)
+ /* ddmul1041 */ self.multiply64("100", "0.1", "10.0", .toNearestOrEven)
+ /* ddmul1042 */ self.multiply64("100", "1", "100", .toNearestOrEven)
+ /* ddmul1043 */ self.multiply64("100", "10", "1000", .toNearestOrEven)
+ /* ddmul1044 */ self.multiply64("100", "100", "10000", .toNearestOrEven)
+ /* ddmul1045 */ self.multiply64("100", "1000", "100000", .toNearestOrEven)
+ /* ddmul1046 */ self.multiply64("100", "10000", "1000000", .toNearestOrEven)
+ /* ddmul1047 */ self.multiply64("100", "100000", "10000000", .toNearestOrEven)
+ /* ddmul1048 */ self.multiply64("100", "1000000", "100000000", .toNearestOrEven)
+ /* ddmul1049 */ self.multiply64("100", "10000000", "1000000000", .toNearestOrEven)
+ /* ddmul105 */ self.multiply64("9", "90000", "810000", .toNearestOrEven)
+ /* ddmul1050 */ self.multiply64("100", "100000000", "10000000000", .toNearestOrEven)
+ /* ddmul1051 */ self.multiply64("100", "1000000000", "100000000000", .toNearestOrEven)
+ /* ddmul1052 */ self.multiply64("100", "10000000000", "1000000000000", .toNearestOrEven)
+ /* ddmul1053 */ self.multiply64("100", "100000000000", "10000000000000", .toNearestOrEven)
+ /* ddmul1054 */ self.multiply64("100", "1000000000000", "100000000000000", .toNearestOrEven)
+ /* ddmul1055 */ self.multiply64("100", "10000000000000", "1000000000000000", .toNearestOrEven)
+ /* ddmul106 */ self.multiply64("9", "900000", "8100000", .toNearestOrEven)
+ /* ddmul1061 */ self.multiply64("1000", "0.01", "10.00", .toNearestOrEven)
+ /* ddmul1062 */ self.multiply64("1000", "0.1", "100.0", .toNearestOrEven)
+ /* ddmul1063 */ self.multiply64("1000", "1", "1000", .toNearestOrEven)
+ /* ddmul1064 */ self.multiply64("1000", "10", "10000", .toNearestOrEven)
+ /* ddmul1065 */ self.multiply64("1000", "100", "100000", .toNearestOrEven)
+ /* ddmul1066 */ self.multiply64("1000", "1000", "1000000", .toNearestOrEven)
+ /* ddmul1067 */ self.multiply64("1000", "10000", "10000000", .toNearestOrEven)
+ /* ddmul1068 */ self.multiply64("1000", "100000", "100000000", .toNearestOrEven)
+ /* ddmul1069 */ self.multiply64("1000", "1000000", "1000000000", .toNearestOrEven)
+ /* ddmul107 */ self.multiply64("9", "9000000", "81000000", .toNearestOrEven)
+ /* ddmul1070 */ self.multiply64("1000", "10000000", "10000000000", .toNearestOrEven)
+ /* ddmul1071 */ self.multiply64("1000", "100000000", "100000000000", .toNearestOrEven)
+ /* ddmul1072 */ self.multiply64("1000", "1000000000", "1000000000000", .toNearestOrEven)
+ /* ddmul1073 */ self.multiply64("1000", "10000000000", "10000000000000", .toNearestOrEven)
+ /* ddmul1074 */ self.multiply64("1000", "100000000000", "100000000000000", .toNearestOrEven)
+ /* ddmul1075 */ self.multiply64("1000", "1000000000000", "1000000000000000", .toNearestOrEven)
+ /* ddmul108 */ self.multiply64("9", "90000000", "810000000", .toNearestOrEven)
+ /* ddmul1081 */ self.multiply64("10000", "0.001", "10.000", .toNearestOrEven)
+ /* ddmul1082 */ self.multiply64("10000", "0.01", "100.00", .toNearestOrEven)
+ /* ddmul1083 */ self.multiply64("10000", "0.1", "1000.0", .toNearestOrEven)
+ /* ddmul1084 */ self.multiply64("10000", "1", "10000", .toNearestOrEven)
+ /* ddmul1085 */ self.multiply64("10000", "10", "100000", .toNearestOrEven)
+ /* ddmul1086 */ self.multiply64("10000", "100", "1000000", .toNearestOrEven)
+ /* ddmul1087 */ self.multiply64("10000", "1000", "10000000", .toNearestOrEven)
+ /* ddmul1088 */ self.multiply64("10000", "10000", "100000000", .toNearestOrEven)
+ /* ddmul1089 */ self.multiply64("10000", "100000", "1000000000", .toNearestOrEven)
+ /* ddmul109 */ self.multiply64("9", "900000000", "8100000000", .toNearestOrEven)
+ /* ddmul1090 */ self.multiply64("10000", "1000000", "10000000000", .toNearestOrEven)
+ /* ddmul1091 */ self.multiply64("10000", "10000000", "100000000000", .toNearestOrEven)
+ /* ddmul1092 */ self.multiply64("10000", "100000000", "1000000000000", .toNearestOrEven)
+ /* ddmul1093 */ self.multiply64("10000", "1000000000", "10000000000000", .toNearestOrEven)
+ /* ddmul1094 */ self.multiply64("10000", "10000000000", "100000000000000", .toNearestOrEven)
+ /* ddmul1095 */ self.multiply64("10000", "100000000000", "1000000000000000", .toNearestOrEven)
+ /* ddmul1097 */ self.multiply64("10000", "99999999999", "999999999990000", .toNearestOrEven)
+ /* ddmul1098 */ self.multiply64("10000", "99999999999", "999999999990000", .toNearestOrEven)
+ /* ddmul110 */ self.multiply64("9", "9000000000", "81000000000", .toNearestOrEven)
+ /* ddmul111 */ self.multiply64("9", "90000000000", "810000000000", .toNearestOrEven)
+ /* ddmul112 */ self.multiply64("9", "900000000000", "8100000000000", .toNearestOrEven)
+ /* ddmul113 */ self.multiply64("9", "9000000000000", "81000000000000", .toNearestOrEven)
+ /* ddmul114 */ self.multiply64("9", "90000000000000", "810000000000000", .toNearestOrEven)
+ /* ddmul115 */ self.multiply64("9", "900000000000000", "8100000000000000", .toNearestOrEven)
+ /* ddmul131 */ self.multiply64("3", "3", "9", .toNearestOrEven)
+ /* ddmul132 */ self.multiply64("3", "30", "90", .toNearestOrEven)
+ /* ddmul133 */ self.multiply64("3", "300", "900", .toNearestOrEven)
+ /* ddmul134 */ self.multiply64("3", "3000", "9000", .toNearestOrEven)
+ /* ddmul135 */ self.multiply64("3", "30000", "90000", .toNearestOrEven)
+ /* ddmul136 */ self.multiply64("3", "300000", "900000", .toNearestOrEven)
+ /* ddmul137 */ self.multiply64("3", "3000000", "9000000", .toNearestOrEven)
+ /* ddmul138 */ self.multiply64("3", "30000000", "90000000", .toNearestOrEven)
+ /* ddmul139 */ self.multiply64("3", "300000000", "900000000", .toNearestOrEven)
+ /* ddmul140 */ self.multiply64("3", "3000000000", "9000000000", .toNearestOrEven)
+ /* ddmul141 */ self.multiply64("3", "30000000000", "90000000000", .toNearestOrEven)
+ /* ddmul142 */ self.multiply64("3", "300000000000", "900000000000", .toNearestOrEven)
+ /* ddmul143 */ self.multiply64("3", "3000000000000", "9000000000000", .toNearestOrEven)
+ /* ddmul144 */ self.multiply64("3", "30000000000000", "90000000000000", .toNearestOrEven)
+ /* ddmul145 */ self.multiply64("3", "300000000000000", "900000000000000", .toNearestOrEven)
+ /* ddmul301 */ self.multiply64("9", "9", "81", .toNearestOrEven)
+ /* ddmul302 */ self.multiply64("9", "90", "810", .toNearestOrEven)
+ /* ddmul303 */ self.multiply64("9", "900", "8100", .toNearestOrEven)
+ /* ddmul304 */ self.multiply64("9", "9000", "81000", .toNearestOrEven)
+ /* ddmul305 */ self.multiply64("9", "90000", "810000", .toNearestOrEven)
+ /* ddmul306 */ self.multiply64("9", "900000", "8100000", .toNearestOrEven)
+ /* ddmul307 */ self.multiply64("9", "9000000", "81000000", .toNearestOrEven)
+ /* ddmul308 */ self.multiply64("9", "90000000", "810000000", .toNearestOrEven)
+ /* ddmul309 */ self.multiply64("9", "900000000", "8100000000", .toNearestOrEven)
+ /* ddmul310 */ self.multiply64("9", "9000000000", "81000000000", .toNearestOrEven)
+ /* ddmul311 */ self.multiply64("9", "90000000000", "810000000000", .toNearestOrEven)
+ /* ddmul312 */ self.multiply64("9", "900000000000", "8100000000000", .toNearestOrEven)
+ /* ddmul313 */ self.multiply64("9", "9000000000000", "81000000000000", .toNearestOrEven)
+ /* ddmul314 */ self.multiply64("9", "90000000000000", "810000000000000", .toNearestOrEven)
+ /* ddmul315 */ self.multiply64("9", "900000000000000", "8100000000000000", .toNearestOrEven)
+ /* ddmul316 */ self.multiply64("9", "9000000000000000", "8.100000000000000E+16", .toNearestOrEven)
+ /* ddmul317 */ self.multiply64("90", "9000000000000000", "8.100000000000000E+17", .toNearestOrEven)
+ /* ddmul318 */ self.multiply64("900", "9000000000000000", "8.100000000000000E+18", .toNearestOrEven)
+ /* ddmul319 */ self.multiply64("9000", "9000000000000000", "8.100000000000000E+19", .toNearestOrEven)
+ /* ddmul320 */ self.multiply64("90000", "9000000000000000", "8.100000000000000E+20", .toNearestOrEven)
+ /* ddmul321 */ self.multiply64("900000", "9000000000000000", "8.100000000000000E+21", .toNearestOrEven)
+ /* ddmul322 */ self.multiply64("9000000", "9000000000000000", "8.100000000000000E+22", .toNearestOrEven)
+ /* ddmul323 */ self.multiply64("90000000", "9000000000000000", "8.100000000000000E+23", .toNearestOrEven)
+ /* ddmul504 */ self.multiply64("0E-260", "1000E-260", "0E-398", .toNearestOrEven)
+ /* ddmul505 */ self.multiply64("100E+260", "0E+260", "0E+369", .toNearestOrEven)
+ /* ddmul506 */ self.multiply64("77.1", "850", "65535.0", .toNearestOrEven)
+ /* ddmul541 */ self.multiply64("0", "-1", "-0", .toNearestOrEven)
+ /* ddmul542 */ self.multiply64("-0", "-1", "0", .toNearestOrEven)
+ /* ddmul543 */ self.multiply64("0", "1", "0", .toNearestOrEven)
+ /* ddmul544 */ self.multiply64("-0", "1", "-0", .toNearestOrEven)
+ /* ddmul545 */ self.multiply64("-1", "0", "-0", .toNearestOrEven)
+ /* ddmul546 */ self.multiply64("-1", "-0", "0", .toNearestOrEven)
+ /* ddmul547 */ self.multiply64("1", "0", "0", .toNearestOrEven)
+ /* ddmul548 */ self.multiply64("1", "-0", "-0", .toNearestOrEven)
+ /* ddmul551 */ self.multiply64("0.0", "-1", "-0.0", .toNearestOrEven)
+ /* ddmul552 */ self.multiply64("-0.0", "-1", "0.0", .toNearestOrEven)
+ /* ddmul553 */ self.multiply64("0.0", "1", "0.0", .toNearestOrEven)
+ /* ddmul554 */ self.multiply64("-0.0", "1", "-0.0", .toNearestOrEven)
+ /* ddmul555 */ self.multiply64("-1.0", "0", "-0.0", .toNearestOrEven)
+ /* ddmul556 */ self.multiply64("-1.0", "-0", "0.0", .toNearestOrEven)
+ /* ddmul557 */ self.multiply64("1.0", "0", "0.0", .toNearestOrEven)
+ /* ddmul558 */ self.multiply64("1.0", "-0", "-0.0", .toNearestOrEven)
+ /* ddmul561 */ self.multiply64("0", "-1.0", "-0.0", .toNearestOrEven)
+ /* ddmul562 */ self.multiply64("-0", "-1.0", "0.0", .toNearestOrEven)
+ /* ddmul563 */ self.multiply64("0", "1.0", "0.0", .toNearestOrEven)
+ /* ddmul564 */ self.multiply64("-0", "1.0", "-0.0", .toNearestOrEven)
+ /* ddmul565 */ self.multiply64("-1", "0.0", "-0.0", .toNearestOrEven)
+ /* ddmul566 */ self.multiply64("-1", "-0.0", "0.0", .toNearestOrEven)
+ /* ddmul567 */ self.multiply64("1", "0.0", "0.0", .toNearestOrEven)
+ /* ddmul568 */ self.multiply64("1", "-0.0", "-0.0", .toNearestOrEven)
+ /* ddmul571 */ self.multiply64("0.0", "-1.0", "-0.00", .toNearestOrEven)
+ /* ddmul572 */ self.multiply64("-0.0", "-1.0", "0.00", .toNearestOrEven)
+ /* ddmul573 */ self.multiply64("0.0", "1.0", "0.00", .toNearestOrEven)
+ /* ddmul574 */ self.multiply64("-0.0", "1.0", "-0.00", .toNearestOrEven)
+ /* ddmul575 */ self.multiply64("-1.0", "0.0", "-0.00", .toNearestOrEven)
+ /* ddmul576 */ self.multiply64("-1.0", "-0.0", "0.00", .toNearestOrEven)
+ /* ddmul577 */ self.multiply64("1.0", "0.0", "0.00", .toNearestOrEven)
+ /* ddmul578 */ self.multiply64("1.0", "-0.0", "-0.00", .toNearestOrEven)
+ /* ddmul580 */ self.multiply64("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmul581 */ self.multiply64("Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* ddmul582 */ self.multiply64("Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* ddmul583 */ self.multiply64("Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul584 */ self.multiply64("Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul585 */ self.multiply64("Inf", "1", "Infinity", .toNearestOrEven)
+ /* ddmul586 */ self.multiply64("Inf", "1000", "Infinity", .toNearestOrEven)
+ /* ddmul587 */ self.multiply64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmul588 */ self.multiply64("-1000", "Inf", "-Infinity", .toNearestOrEven)
+ /* ddmul589 */ self.multiply64("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* ddmul590 */ self.multiply64("-1", "Inf", "-Infinity", .toNearestOrEven)
+ /* ddmul591 */ self.multiply64("-0", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul592 */ self.multiply64("0", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul593 */ self.multiply64("1", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmul594 */ self.multiply64("1000", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmul595 */ self.multiply64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddmul600 */ self.multiply64("-Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* ddmul601 */ self.multiply64("-Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* ddmul602 */ self.multiply64("-Inf", "-1", "Infinity", .toNearestOrEven)
+ /* ddmul603 */ self.multiply64("-Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul604 */ self.multiply64("-Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul605 */ self.multiply64("-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* ddmul606 */ self.multiply64("-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* ddmul607 */ self.multiply64("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* ddmul608 */ self.multiply64("-1000", "Inf", "-Infinity", .toNearestOrEven)
+ /* ddmul609 */ self.multiply64("-Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* ddmul610 */ self.multiply64("-1", "-Inf", "Infinity", .toNearestOrEven)
+ /* ddmul611 */ self.multiply64("-0", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul612 */ self.multiply64("0", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul613 */ self.multiply64("1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmul614 */ self.multiply64("1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmul615 */ self.multiply64("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddmul621 */ self.multiply64("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* ddmul622 */ self.multiply64("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* ddmul623 */ self.multiply64("NaN", "-1", "NaN", .toNearestOrEven)
+ /* ddmul624 */ self.multiply64("NaN", "-0", "NaN", .toNearestOrEven)
+ /* ddmul625 */ self.multiply64("NaN", "0", "NaN", .toNearestOrEven)
+ /* ddmul626 */ self.multiply64("NaN", "1", "NaN", .toNearestOrEven)
+ /* ddmul627 */ self.multiply64("NaN", "1000", "NaN", .toNearestOrEven)
+ /* ddmul628 */ self.multiply64("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* ddmul629 */ self.multiply64("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* ddmul630 */ self.multiply64("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddmul631 */ self.multiply64("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddmul632 */ self.multiply64("-1", "NaN", "NaN", .toNearestOrEven)
+ /* ddmul633 */ self.multiply64("-0", "NaN", "NaN", .toNearestOrEven)
+ /* ddmul634 */ self.multiply64("0", "NaN", "NaN", .toNearestOrEven)
+ /* ddmul635 */ self.multiply64("1", "NaN", "NaN", .toNearestOrEven)
+ /* ddmul636 */ self.multiply64("1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddmul637 */ self.multiply64("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddmul641 */ self.multiply64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul642 */ self.multiply64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul643 */ self.multiply64("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul644 */ self.multiply64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul645 */ self.multiply64("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul646 */ self.multiply64("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul647 */ self.multiply64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul648 */ self.multiply64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul649 */ self.multiply64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul650 */ self.multiply64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul651 */ self.multiply64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul652 */ self.multiply64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul653 */ self.multiply64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul654 */ self.multiply64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul655 */ self.multiply64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul656 */ self.multiply64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul657 */ self.multiply64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul658 */ self.multiply64("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul659 */ self.multiply64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul661 */ self.multiply64("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrEven)
+ /* ddmul662 */ self.multiply64("NaN(0x8)", "999", "NaN(0x8)", .toNearestOrEven)
+ /* ddmul663 */ self.multiply64("NaN(0x47)", "Inf", "NaN(0x47)", .toNearestOrEven)
+ /* ddmul664 */ self.multiply64("NaN(0x6)", "NaN(0x5)", "NaN(0x6)", .toNearestOrEven)
+ /* ddmul665 */ self.multiply64("-Inf", "NaN(0x4)", "NaN(0x4)", .toNearestOrEven)
+ /* ddmul666 */ self.multiply64("-999", "NaN(0x21)", "NaN(0x21)", .toNearestOrEven)
+ /* ddmul667 */ self.multiply64("Inf", "NaN(0x2)", "NaN(0x2)", .toNearestOrEven)
+ /* ddmul671 */ self.multiply64("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul672 */ self.multiply64("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul673 */ self.multiply64("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul674 */ self.multiply64("sNaN(0x10)", "sNaN(0x5e)", "NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul675 */ self.multiply64("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul676 */ self.multiply64("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul677 */ self.multiply64("088", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul678 */ self.multiply64("Inf", "sNaN(0x5a)", "NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul679 */ self.multiply64("NaN", "sNaN(0x59)", "NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul681 */ self.multiply64("-NaN(0x9)", "-Inf", "-NaN(0x9)", .toNearestOrEven)
+ /* ddmul682 */ self.multiply64("-NaN(0x8)", "999", "-NaN(0x8)", .toNearestOrEven)
+ /* ddmul683 */ self.multiply64("-NaN(0x47)", "Inf", "-NaN(0x47)", .toNearestOrEven)
+ /* ddmul684 */ self.multiply64("-NaN(0x6)", "-NaN(0x5)", "-NaN(0x6)", .toNearestOrEven)
+ /* ddmul685 */ self.multiply64("-Inf", "-NaN(0x4)", "-NaN(0x4)", .toNearestOrEven)
+ /* ddmul686 */ self.multiply64("-999", "-NaN(0x21)", "-NaN(0x21)", .toNearestOrEven)
+ /* ddmul687 */ self.multiply64("Inf", "-NaN(0x2)", "-NaN(0x2)", .toNearestOrEven)
+ /* ddmul691 */ self.multiply64("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul692 */ self.multiply64("-sNaN(0x62)", "-11", "-NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul693 */ self.multiply64("-sNaN(0x61)", "NaN", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul694 */ self.multiply64("-sNaN(0x10)", "-sNaN(0x5e)", "-NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul695 */ self.multiply64("-NaN(0x5f)", "-sNaN(0x5d)", "-NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul696 */ self.multiply64("-Inf", "-sNaN(0x5c)", "-NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul697 */ self.multiply64("088", "-sNaN(0x5b)", "-NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul698 */ self.multiply64("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul699 */ self.multiply64("-NaN", "-sNaN(0x59)", "-NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul701 */ self.multiply64("-NaN", "-Inf", "-NaN", .toNearestOrEven)
+ /* ddmul702 */ self.multiply64("-NaN", "999", "-NaN", .toNearestOrEven)
+ /* ddmul703 */ self.multiply64("-NaN", "Inf", "-NaN", .toNearestOrEven)
+ /* ddmul704 */ self.multiply64("-NaN", "-NaN", "-NaN", .toNearestOrEven)
+ /* ddmul705 */ self.multiply64("-Inf", "-NaN(0x0)", "-NaN", .toNearestOrEven)
+ /* ddmul706 */ self.multiply64("-999", "-NaN", "-NaN", .toNearestOrEven)
+ /* ddmul707 */ self.multiply64("Inf", "-NaN", "-NaN", .toNearestOrEven)
+ /* ddmul711 */ self.multiply64("-sNaN", "-Inf", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul712 */ self.multiply64("-sNaN", "-11", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul713 */ self.multiply64("-sNaN(0x0)", "NaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul714 */ self.multiply64("-sNaN", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul715 */ self.multiply64("-NaN", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul716 */ self.multiply64("-Inf", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul717 */ self.multiply64("088", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul718 */ self.multiply64("Inf", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul719 */ self.multiply64("-NaN", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmul751 */ self.multiply64("1e+277", "1e+311", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul752 */ self.multiply64("1e+277", "-1e+311", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul753 */ self.multiply64("-1e+277", "1e+311", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul754 */ self.multiply64("-1e+277", "-1e+311", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul755 */ self.multiply64("1e-277", "1e-311", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul756 */ self.multiply64("1e-277", "-1e-311", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul757 */ self.multiply64("-1e-277", "1e-311", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul758 */ self.multiply64("-1e-277", "-1e-311", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul760 */ self.multiply64("1e-291", "1e-101", "1E-392", .toNearestOrEven)
+ /* ddmul761 */ self.multiply64("1e-291", "1e-102", "1E-393", .toNearestOrEven)
+ /* ddmul762 */ self.multiply64("1e-291", "1e-103", "1E-394", .toNearestOrEven)
+ /* ddmul763 */ self.multiply64("1e-291", "1e-104", "1E-395", .toNearestOrEven)
+ /* ddmul764 */ self.multiply64("1e-291", "1e-105", "1E-396", .toNearestOrEven)
+ /* ddmul765 */ self.multiply64("1e-291", "1e-106", "1E-397", .toNearestOrEven)
+ /* ddmul766 */ self.multiply64("1e-291", "1e-107", "1E-398", .toNearestOrEven)
+ /* ddmul767 */ self.multiply64("1e-291", "1e-108", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul768 */ self.multiply64("1e-291", "1e-109", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul769 */ self.multiply64("1e-291", "1e-110", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul770 */ self.multiply64("1e+60", "1e+321", "1.000000000000E+381", .toNearestOrEven)
+ /* ddmul771 */ self.multiply64("1e+60", "1e+322", "1.0000000000000E+382", .toNearestOrEven)
+ /* ddmul772 */ self.multiply64("1e+60", "1e+323", "1.00000000000000E+383", .toNearestOrEven)
+ /* ddmul773 */ self.multiply64("1e+60", "1e+324", "1.000000000000000E+384", .toNearestOrEven)
+ /* ddmul774 */ self.multiply64("1e+60", "1e+325", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul775 */ self.multiply64("1e+60", "1e+326", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul776 */ self.multiply64("1e+60", "1e+327", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul777 */ self.multiply64("1e+60", "1e+328", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul778 */ self.multiply64("1e+60", "1e+329", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul779 */ self.multiply64("1e+60", "1e+330", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul801 */ self.multiply64("1.0000E-394", "1", "1.0000E-394", .toNearestOrEven)
+ /* ddmul802 */ self.multiply64("1.000E-394", "1e-1", "1.000E-395", .toNearestOrEven)
+ /* ddmul803 */ self.multiply64("1.00E-394", "1e-2", "1.00E-396", .toNearestOrEven)
+ /* ddmul804 */ self.multiply64("1.0E-394", "1e-3", "1.0E-397", .toNearestOrEven)
+ /* ddmul805 */ self.multiply64("1.0E-394", "1e-4", "1E-398", .toNearestOrEven)
+ /* ddmul806 */ self.multiply64("1.3E-394", "1e-4", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul807 */ self.multiply64("1.5E-394", "1e-4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul808 */ self.multiply64("1.7E-394", "1e-4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul809 */ self.multiply64("2.3E-394", "1e-4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul810 */ self.multiply64("2.5E-394", "1e-4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul811 */ self.multiply64("2.7E-394", "1e-4", "3E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul812 */ self.multiply64("1.49E-394", "1e-4", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul813 */ self.multiply64("1.50E-394", "1e-4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul814 */ self.multiply64("1.51E-394", "1e-4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul815 */ self.multiply64("2.49E-394", "1e-4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul816 */ self.multiply64("2.50E-394", "1e-4", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul817 */ self.multiply64("2.51E-394", "1e-4", "3E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul818 */ self.multiply64("1E-394", "1e-4", "1E-398", .toNearestOrEven)
+ /* ddmul819 */ self.multiply64("3E-394", "1e-5", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul820 */ self.multiply64("5E-394", "1e-5", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul821 */ self.multiply64("7E-394", "1e-5", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul822 */ self.multiply64("9E-394", "1e-5", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul823 */ self.multiply64("9.9E-394", "1e-5", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul824 */ self.multiply64("1E-394", "-1e-4", "-1E-398", .toNearestOrEven)
+ /* ddmul825 */ self.multiply64("3E-394", "-1e-5", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul826 */ self.multiply64("-5E-394", "1e-5", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul827 */ self.multiply64("7E-394", "-1e-5", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul828 */ self.multiply64("-9E-394", "1e-5", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul829 */ self.multiply64("9.9E-394", "-1e-5", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul830 */ self.multiply64("3.0E-394", "-1e-5", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul831 */ self.multiply64("1.0E-199", "1e-200", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul832 */ self.multiply64("1.0E-199", "1e-199", "1E-398", .toNearestOrEven)
+ /* ddmul833 */ self.multiply64("1.0E-199", "1e-198", "1.0E-397", .toNearestOrEven)
+ /* ddmul834 */ self.multiply64("2.0E-199", "2e-198", "4.0E-397", .toNearestOrEven)
+ /* ddmul835 */ self.multiply64("4.0E-199", "4e-198", "1.60E-396", .toNearestOrEven)
+ /* ddmul836 */ self.multiply64("10.0E-199", "10e-198", "1.000E-395", .toNearestOrEven)
+ /* ddmul837 */ self.multiply64("30.0E-199", "30e-198", "9.000E-395", .toNearestOrEven)
+ /* ddmul838 */ self.multiply64("40.0E-199", "40e-188", "1.6000E-384", .toNearestOrEven)
+ /* ddmul839 */ self.multiply64("40.0E-199", "40e-187", "1.6000E-383", .toNearestOrEven)
+ /* ddmul840 */ self.multiply64("40.0E-199", "40e-186", "1.6000E-382", .toNearestOrEven)
+ /* ddmul870 */ self.multiply64("100", "9.999E+383", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul871 */ self.multiply64("100", "-9.999E+383", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul872 */ self.multiply64("9.999E+383", "100", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul873 */ self.multiply64("-9.999E+383", "100", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddmul881 */ self.multiply64("1.2347E-355", "1.2347E-40", "1.524E-395", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul882 */ self.multiply64("1.234E-355", "1.234E-40", "1.523E-395", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul883 */ self.multiply64("1.23E-355", "1.23E-40", "1.513E-395", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul884 */ self.multiply64("1.2E-355", "1.2E-40", "1.44E-395", .toNearestOrEven)
+ /* ddmul885 */ self.multiply64("1.2E-355", "1.2E-41", "1.44E-396", .toNearestOrEven)
+ /* ddmul886 */ self.multiply64("1.2E-355", "1.2E-42", "1.4E-397", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul887 */ self.multiply64("1.2E-355", "1.3E-42", "1.6E-397", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul888 */ self.multiply64("1.3E-355", "1.3E-42", "1.7E-397", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul889 */ self.multiply64("1.3E-355", "1.3E-43", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul890 */ self.multiply64("1.3E-356", "1.3E-43", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul891 */ self.multiply64("1.2345E-39", "1.234E-355", "1.5234E-394", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul892 */ self.multiply64("1.23456E-39", "1.234E-355", "1.5234E-394", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul893 */ self.multiply64("1.2345E-40", "1.234E-355", "1.523E-395", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul894 */ self.multiply64("1.23456E-40", "1.234E-355", "1.523E-395", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul895 */ self.multiply64("1.2345E-41", "1.234E-355", "1.52E-396", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul896 */ self.multiply64("1.23456E-41", "1.234E-355", "1.52E-396", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul900 */ self.multiply64("0.3000000000E-191", "0.3000000000E-191", "9.00000000000000E-384", .toNearestOrEven)
+ /* ddmul901 */ self.multiply64("0.3000000001E-191", "0.3000000001E-191", "9.00000000600000E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul902 */ self.multiply64("9.999999999999999E-383", "0.0999999999999", "9.99999999999000E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul903 */ self.multiply64("9.999999999999999E-383", "0.09999999999999", "9.99999999999900E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul904 */ self.multiply64("9.999999999999999E-383", "0.099999999999999", "9.99999999999990E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul905 */ self.multiply64("9.999999999999999E-383", "0.0999999999999999", "9.99999999999999E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul906 */ self.multiply64("9.999999999999999E-383", "0.09999999999999999", "1.000000000000000E-383", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul907 */ self.multiply64("9.999999999999999E-383", "1", "9.999999999999999E-383", .toNearestOrEven)
+ /* ddmul908 */ self.multiply64("1", "0.09999999999999999", "0.09999999999999999", .toNearestOrEven)
+ /* ddmul910 */ self.multiply64("1e-398", "0.99", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul911 */ self.multiply64("1e-398", "0.75", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul912 */ self.multiply64("1e-398", "0.5", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul913 */ self.multiply64("1e-398", "0.25", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul914 */ self.multiply64("1e-398", "0.01", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddmul920 */ self.multiply64("9999999999999999", "9999999999999999", "9.999999999999998E+31", .toNearestOrEven, .isInexact)
+ }
+
+ private func multiply64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.multiplied(by: arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_mul(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_multiply128() {
+ /* decq843 */ self.multiply128("#20800000000000008000000000000000", "#2080000000000000F294000000172636", "#1EF98490000000010F6E4E0000000000", .toNearestOrAwayFromZero)
+ /* dqcan302 */ self.multiply128("1", "#77ffff3fcff3fcff0000000000000000", "#77ffff3fcff3fcff0000000000000000", .toNearestOrEven)
+ /* dqcan303 */ self.multiply128("#77fcffffcff3fcff0000000000000000", "1", "#77fccfffcff3fcff0000000000000000", .toNearestOrEven)
+ /* dqcan306 */ self.multiply128("-1", "#77ffff3fcff3fcff0000000000000000", "#f7ffff3fcff3fcff0000000000000000", .toNearestOrEven)
+ /* dqcan307 */ self.multiply128("#77fcffffcff3fcff0000000000000000", "-1", "#f7fccfffcff3fcff0000000000000000", .toNearestOrEven)
+ /* dqcan311 */ self.multiply128("1", "#7c03ff3fcff3fcff0000000000000000", "#7c003f3fcff3fcff0000000000000000", .toNearestOrEven)
+ /* dqcan312 */ self.multiply128("#7c03ff3fcff3fcff0000000000000000", "1", "#7c003f3fcff3fcff0000000000000000", .toNearestOrEven)
+ /* dqcan313 */ self.multiply128("1", "#7c40ff3fcff3fcff0000000000000000", "#7c003f3fcff3fcff0000000000000000", .toNearestOrEven)
+ /* dqcan314 */ self.multiply128("#7c40ff3fcff3fcff0000000000000000", "1", "#7c003f3fcff3fcff0000000000000000", .toNearestOrEven)
+ /* dqcan315 */ self.multiply128("1", "#7e00ffffcff3fcff0000000000000000", "#7c000fffcff3fcff0000000000000000", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan316 */ self.multiply128("#7e00ffffcff3fcff0000000000000000", "1", "#7c000fffcff3fcff0000000000000000", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan317 */ self.multiply128("1", "#7e80ff3fcff3fcff0000000000000000", "#7c003f3fcff3fcff0000000000000000", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan318 */ self.multiply128("#7e80ff3fcff3fcff0000000000000000", "1", "#7c003f3fcff3fcff0000000000000000", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan320 */ self.multiply128("1", "#78800000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan321 */ self.multiply128("#78800000000000000000000000000000", "1", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan322 */ self.multiply128("1", "#78020000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan323 */ self.multiply128("#78020000000000000000000000000000", "1", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan324 */ self.multiply128("1", "#78000000000000010000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan325 */ self.multiply128("#78000000000000010000000000000000", "1", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan326 */ self.multiply128("1", "#78000020000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan327 */ self.multiply128("#78000020000000000000000000000000", "1", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqmul000 */ self.multiply128("2", "2", "4", .toNearestOrEven)
+ /* dqmul001 */ self.multiply128("2", "3", "6", .toNearestOrEven)
+ /* dqmul002 */ self.multiply128("5", "1", "5", .toNearestOrEven)
+ /* dqmul003 */ self.multiply128("5", "2", "10", .toNearestOrEven)
+ /* dqmul004 */ self.multiply128("1.20", "2", "2.40", .toNearestOrEven)
+ /* dqmul005 */ self.multiply128("1.20", "0", "0.00", .toNearestOrEven)
+ /* dqmul006 */ self.multiply128("1.20", "-2", "-2.40", .toNearestOrEven)
+ /* dqmul007 */ self.multiply128("-1.20", "2", "-2.40", .toNearestOrEven)
+ /* dqmul008 */ self.multiply128("-1.20", "0", "-0.00", .toNearestOrEven)
+ /* dqmul009 */ self.multiply128("-1.20", "-2", "2.40", .toNearestOrEven)
+ /* dqmul010 */ self.multiply128("5.09", "7.1", "36.139", .toNearestOrEven)
+ /* dqmul011 */ self.multiply128("2.5", "4", "10.0", .toNearestOrEven)
+ /* dqmul012 */ self.multiply128("2.50", "4", "10.00", .toNearestOrEven)
+ /* dqmul013 */ self.multiply128("1.23456789", "1.0000000000000000000000000000", "1.234567890000000000000000000000000", .toNearestOrEven)
+ /* dqmul015 */ self.multiply128("2.50", "4", "10.00", .toNearestOrEven)
+ /* dqmul016 */ self.multiply128("9.99999999999999999", "9.99999999999999999", "99.99999999999999980000000000000000", .toNearestOrEven, .isInexact)
+ /* dqmul017 */ self.multiply128("9.99999999999999999", "-9.99999999999999999", "-99.99999999999999980000000000000000", .toNearestOrEven, .isInexact)
+ /* dqmul018 */ self.multiply128("-9.99999999999999999", "9.99999999999999999", "-99.99999999999999980000000000000000", .toNearestOrEven, .isInexact)
+ /* dqmul019 */ self.multiply128("-9.99999999999999999", "-9.99999999999999999", "99.99999999999999980000000000000000", .toNearestOrEven, .isInexact)
+ /* dqmul021 */ self.multiply128("0", "0", "0", .toNearestOrEven)
+ /* dqmul022 */ self.multiply128("0", "-0", "-0", .toNearestOrEven)
+ /* dqmul023 */ self.multiply128("-0", "0", "-0", .toNearestOrEven)
+ /* dqmul024 */ self.multiply128("-0", "-0", "0", .toNearestOrEven)
+ /* dqmul025 */ self.multiply128("-0.0", "-0.0", "0.00", .toNearestOrEven)
+ /* dqmul026 */ self.multiply128("-0.0", "-0.0", "0.00", .toNearestOrEven)
+ /* dqmul027 */ self.multiply128("-0.0", "-0.0", "0.00", .toNearestOrEven)
+ /* dqmul028 */ self.multiply128("-0.0", "-0.0", "0.00", .toNearestOrEven)
+ /* dqmul030 */ self.multiply128("5.00", "1E-3", "0.00500", .toNearestOrEven)
+ /* dqmul031 */ self.multiply128("00.00", "0.000", "0.00000", .toNearestOrEven)
+ /* dqmul032 */ self.multiply128("00.00", "0E-3", "0.00000", .toNearestOrEven)
+ /* dqmul033 */ self.multiply128("0E-3", "00.00", "0.00000", .toNearestOrEven)
+ /* dqmul034 */ self.multiply128("-5.00", "1E-3", "-0.00500", .toNearestOrEven)
+ /* dqmul035 */ self.multiply128("-00.00", "0.000", "-0.00000", .toNearestOrEven)
+ /* dqmul036 */ self.multiply128("-00.00", "0E-3", "-0.00000", .toNearestOrEven)
+ /* dqmul037 */ self.multiply128("-0E-3", "00.00", "-0.00000", .toNearestOrEven)
+ /* dqmul038 */ self.multiply128("5.00", "-1E-3", "-0.00500", .toNearestOrEven)
+ /* dqmul039 */ self.multiply128("00.00", "-0.000", "-0.00000", .toNearestOrEven)
+ /* dqmul040 */ self.multiply128("00.00", "-0E-3", "-0.00000", .toNearestOrEven)
+ /* dqmul041 */ self.multiply128("0E-3", "-00.00", "-0.00000", .toNearestOrEven)
+ /* dqmul042 */ self.multiply128("-5.00", "-1E-3", "0.00500", .toNearestOrEven)
+ /* dqmul043 */ self.multiply128("-00.00", "-0.000", "0.00000", .toNearestOrEven)
+ /* dqmul044 */ self.multiply128("-00.00", "-0E-3", "0.00000", .toNearestOrEven)
+ /* dqmul045 */ self.multiply128("-0E-3", "-00.00", "0.00000", .toNearestOrEven)
+ /* dqmul050 */ self.multiply128("1.20", "3", "3.60", .toNearestOrEven)
+ /* dqmul051 */ self.multiply128("7", "3", "21", .toNearestOrEven)
+ /* dqmul052 */ self.multiply128("0.9", "0.8", "0.72", .toNearestOrEven)
+ /* dqmul053 */ self.multiply128("0.9", "-0", "-0.0", .toNearestOrEven)
+ /* dqmul054 */ self.multiply128("654321", "654321", "428135971041", .toNearestOrEven)
+ /* dqmul060 */ self.multiply128("123.45", "1e7", "1.2345E+9", .toNearestOrEven)
+ /* dqmul061 */ self.multiply128("123.45", "1e8", "1.2345E+10", .toNearestOrEven)
+ /* dqmul062 */ self.multiply128("123.45", "1e+9", "1.2345E+11", .toNearestOrEven)
+ /* dqmul063 */ self.multiply128("123.45", "1e10", "1.2345E+12", .toNearestOrEven)
+ /* dqmul064 */ self.multiply128("123.45", "1e11", "1.2345E+13", .toNearestOrEven)
+ /* dqmul065 */ self.multiply128("123.45", "1e12", "1.2345E+14", .toNearestOrEven)
+ /* dqmul066 */ self.multiply128("123.45", "1e13", "1.2345E+15", .toNearestOrEven)
+ /* dqmul080 */ self.multiply128("0.1", "1230123456456789", "123012345645678.9", .toNearestOrEven)
+ /* dqmul084 */ self.multiply128("0.1", "1230123456456789", "123012345645678.9", .toNearestOrEven)
+ /* dqmul090 */ self.multiply128("1230123456456789", "0.1", "123012345645678.9", .toNearestOrEven)
+ /* dqmul094 */ self.multiply128("1230123456456789", "0.1", "123012345645678.9", .toNearestOrEven)
+ /* dqmul1001 */ self.multiply128("1", "10", "10", .toNearestOrAwayFromZero)
+ /* dqmul1002 */ self.multiply128("1", "100", "100", .toNearestOrAwayFromZero)
+ /* dqmul1003 */ self.multiply128("1", "1000", "1000", .toNearestOrAwayFromZero)
+ /* dqmul1004 */ self.multiply128("1", "10000", "10000", .toNearestOrAwayFromZero)
+ /* dqmul1005 */ self.multiply128("1", "100000", "100000", .toNearestOrAwayFromZero)
+ /* dqmul1006 */ self.multiply128("1", "1000000", "1000000", .toNearestOrAwayFromZero)
+ /* dqmul1007 */ self.multiply128("1", "10000000", "10000000", .toNearestOrAwayFromZero)
+ /* dqmul1008 */ self.multiply128("1", "100000000", "100000000", .toNearestOrAwayFromZero)
+ /* dqmul1009 */ self.multiply128("1", "1000000000", "1000000000", .toNearestOrAwayFromZero)
+ /* dqmul101 */ self.multiply128("9", "9", "81", .toNearestOrEven)
+ /* dqmul1010 */ self.multiply128("1", "10000000000", "10000000000", .toNearestOrAwayFromZero)
+ /* dqmul1011 */ self.multiply128("1", "100000000000", "100000000000", .toNearestOrAwayFromZero)
+ /* dqmul1012 */ self.multiply128("1", "1000000000000", "1000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1013 */ self.multiply128("1", "10000000000000", "10000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1014 */ self.multiply128("1", "100000000000000", "100000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1015 */ self.multiply128("1", "1000000000000000", "1000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1016 */ self.multiply128("1", "1000000000000000000", "1000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1017 */ self.multiply128("1", "100000000000000000000000000", "100000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1018 */ self.multiply128("1", "1000000000000000000000000000", "1000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1019 */ self.multiply128("1", "10000000000000000000000000000", "10000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul102 */ self.multiply128("9", "90", "810", .toNearestOrEven)
+ /* dqmul1020 */ self.multiply128("1", "1000000000000000000000000000000000", "1000000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1021 */ self.multiply128("10", "1", "10", .toNearestOrAwayFromZero)
+ /* dqmul1022 */ self.multiply128("10", "10", "100", .toNearestOrAwayFromZero)
+ /* dqmul1023 */ self.multiply128("10", "100", "1000", .toNearestOrAwayFromZero)
+ /* dqmul1024 */ self.multiply128("10", "1000", "10000", .toNearestOrAwayFromZero)
+ /* dqmul1025 */ self.multiply128("10", "10000", "100000", .toNearestOrAwayFromZero)
+ /* dqmul1026 */ self.multiply128("10", "100000", "1000000", .toNearestOrAwayFromZero)
+ /* dqmul1027 */ self.multiply128("10", "1000000", "10000000", .toNearestOrAwayFromZero)
+ /* dqmul1028 */ self.multiply128("10", "10000000", "100000000", .toNearestOrAwayFromZero)
+ /* dqmul1029 */ self.multiply128("10", "100000000", "1000000000", .toNearestOrAwayFromZero)
+ /* dqmul103 */ self.multiply128("9", "900", "8100", .toNearestOrEven)
+ /* dqmul1030 */ self.multiply128("10", "1000000000", "10000000000", .toNearestOrAwayFromZero)
+ /* dqmul1031 */ self.multiply128("10", "10000000000", "100000000000", .toNearestOrAwayFromZero)
+ /* dqmul1032 */ self.multiply128("10", "100000000000", "1000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1033 */ self.multiply128("10", "1000000000000", "10000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1034 */ self.multiply128("10", "10000000000000", "100000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1035 */ self.multiply128("10", "100000000000000", "1000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1036 */ self.multiply128("10", "100000000000000000", "1000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1037 */ self.multiply128("10", "10000000000000000000000000", "100000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1038 */ self.multiply128("10", "100000000000000000000000000", "1000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1039 */ self.multiply128("10", "1000000000000000000000000000", "10000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul104 */ self.multiply128("9", "9000", "81000", .toNearestOrEven)
+ /* dqmul1040 */ self.multiply128("10", "100000000000000000000000000000000", "1000000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1041 */ self.multiply128("100", "0.1", "10.0", .toNearestOrAwayFromZero)
+ /* dqmul1042 */ self.multiply128("100", "1", "100", .toNearestOrAwayFromZero)
+ /* dqmul1043 */ self.multiply128("100", "10", "1000", .toNearestOrAwayFromZero)
+ /* dqmul1044 */ self.multiply128("100", "100", "10000", .toNearestOrAwayFromZero)
+ /* dqmul1045 */ self.multiply128("100", "1000", "100000", .toNearestOrAwayFromZero)
+ /* dqmul1046 */ self.multiply128("100", "10000", "1000000", .toNearestOrAwayFromZero)
+ /* dqmul1047 */ self.multiply128("100", "100000", "10000000", .toNearestOrAwayFromZero)
+ /* dqmul1048 */ self.multiply128("100", "1000000", "100000000", .toNearestOrAwayFromZero)
+ /* dqmul1049 */ self.multiply128("100", "10000000", "1000000000", .toNearestOrAwayFromZero)
+ /* dqmul105 */ self.multiply128("9", "90000", "810000", .toNearestOrEven)
+ /* dqmul1050 */ self.multiply128("100", "100000000", "10000000000", .toNearestOrAwayFromZero)
+ /* dqmul1051 */ self.multiply128("100", "1000000000", "100000000000", .toNearestOrAwayFromZero)
+ /* dqmul1052 */ self.multiply128("100", "10000000000", "1000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1053 */ self.multiply128("100", "100000000000", "10000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1054 */ self.multiply128("100", "1000000000000", "100000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1055 */ self.multiply128("100", "10000000000000", "1000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1056 */ self.multiply128("100", "10000000000000000", "1000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1057 */ self.multiply128("100", "1000000000000000000000000", "100000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1058 */ self.multiply128("100", "10000000000000000000000000", "1000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1059 */ self.multiply128("100", "100000000000000000000000000", "10000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul106 */ self.multiply128("9", "900000", "8100000", .toNearestOrEven)
+ /* dqmul1060 */ self.multiply128("100", "10000000000000000000000000000000", "1000000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1061 */ self.multiply128("1000", "0.01", "10.00", .toNearestOrAwayFromZero)
+ /* dqmul1062 */ self.multiply128("1000", "0.1", "100.0", .toNearestOrAwayFromZero)
+ /* dqmul1063 */ self.multiply128("1000", "1", "1000", .toNearestOrAwayFromZero)
+ /* dqmul1064 */ self.multiply128("1000", "10", "10000", .toNearestOrAwayFromZero)
+ /* dqmul1065 */ self.multiply128("1000", "100", "100000", .toNearestOrAwayFromZero)
+ /* dqmul1066 */ self.multiply128("1000", "1000", "1000000", .toNearestOrAwayFromZero)
+ /* dqmul1067 */ self.multiply128("1000", "10000", "10000000", .toNearestOrAwayFromZero)
+ /* dqmul1068 */ self.multiply128("1000", "100000", "100000000", .toNearestOrAwayFromZero)
+ /* dqmul1069 */ self.multiply128("1000", "1000000", "1000000000", .toNearestOrAwayFromZero)
+ /* dqmul107 */ self.multiply128("9", "9000000", "81000000", .toNearestOrEven)
+ /* dqmul1070 */ self.multiply128("1000", "10000000", "10000000000", .toNearestOrAwayFromZero)
+ /* dqmul1071 */ self.multiply128("1000", "100000000", "100000000000", .toNearestOrAwayFromZero)
+ /* dqmul1072 */ self.multiply128("1000", "1000000000", "1000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1073 */ self.multiply128("1000", "10000000000", "10000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1074 */ self.multiply128("1000", "100000000000", "100000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1075 */ self.multiply128("1000", "1000000000000", "1000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1076 */ self.multiply128("1000", "1000000000000000", "1000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1077 */ self.multiply128("1000", "100000000000000000000000", "100000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1078 */ self.multiply128("1000", "1000000000000000000000000", "1000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1079 */ self.multiply128("1000", "10000000000000000000000000", "10000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul108 */ self.multiply128("9", "90000000", "810000000", .toNearestOrEven)
+ /* dqmul1080 */ self.multiply128("1000", "1000000000000000000000000000000", "1000000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1081 */ self.multiply128("10000", "0.001", "10.000", .toNearestOrAwayFromZero)
+ /* dqmul1082 */ self.multiply128("10000", "0.01", "100.00", .toNearestOrAwayFromZero)
+ /* dqmul1083 */ self.multiply128("10000", "0.1", "1000.0", .toNearestOrAwayFromZero)
+ /* dqmul1084 */ self.multiply128("10000", "1", "10000", .toNearestOrAwayFromZero)
+ /* dqmul1085 */ self.multiply128("10000", "10", "100000", .toNearestOrAwayFromZero)
+ /* dqmul1086 */ self.multiply128("10000", "100", "1000000", .toNearestOrAwayFromZero)
+ /* dqmul1087 */ self.multiply128("10000", "1000", "10000000", .toNearestOrAwayFromZero)
+ /* dqmul1088 */ self.multiply128("10000", "10000", "100000000", .toNearestOrAwayFromZero)
+ /* dqmul1089 */ self.multiply128("10000", "100000", "1000000000", .toNearestOrAwayFromZero)
+ /* dqmul109 */ self.multiply128("9", "900000000", "8100000000", .toNearestOrEven)
+ /* dqmul1090 */ self.multiply128("10000", "1000000", "10000000000", .toNearestOrAwayFromZero)
+ /* dqmul1091 */ self.multiply128("10000", "10000000", "100000000000", .toNearestOrAwayFromZero)
+ /* dqmul1092 */ self.multiply128("10000", "100000000", "1000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1093 */ self.multiply128("10000", "1000000000", "10000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1094 */ self.multiply128("10000", "10000000000", "100000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1095 */ self.multiply128("10000", "100000000000", "1000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1096 */ self.multiply128("10000", "100000000000000", "1000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1097 */ self.multiply128("10000", "10000000000000000000000", "100000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1098 */ self.multiply128("10000", "100000000000000000000000", "1000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1099 */ self.multiply128("10000", "1000000000000000000000000", "10000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul110 */ self.multiply128("9", "9000000000", "81000000000", .toNearestOrEven)
+ /* dqmul1100 */ self.multiply128("10000", "100000000000000000000000000000", "1000000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqmul1107 */ self.multiply128("10000", "99999999999", "999999999990000", .toNearestOrAwayFromZero)
+ /* dqmul1108 */ self.multiply128("10000", "99999999999", "999999999990000", .toNearestOrAwayFromZero)
+ /* dqmul111 */ self.multiply128("9", "90000000000", "810000000000", .toNearestOrEven)
+ /* dqmul1110 */ self.multiply128("0.0003333333333333333333333333333333333", "1000", "0.3333333333333333333333333333333333", .toNearestOrAwayFromZero)
+ /* dqmul112 */ self.multiply128("9", "900000000000", "8100000000000", .toNearestOrEven)
+ /* dqmul113 */ self.multiply128("9", "9000000000000", "81000000000000", .toNearestOrEven)
+ /* dqmul114 */ self.multiply128("9", "90000000000000", "810000000000000", .toNearestOrEven)
+ /* dqmul115 */ self.multiply128("9", "900000000000000", "8100000000000000", .toNearestOrEven)
+ /* dqmul131 */ self.multiply128("3", "3", "9", .toNearestOrEven)
+ /* dqmul132 */ self.multiply128("3", "30", "90", .toNearestOrEven)
+ /* dqmul133 */ self.multiply128("3", "300", "900", .toNearestOrEven)
+ /* dqmul134 */ self.multiply128("3", "3000", "9000", .toNearestOrEven)
+ /* dqmul135 */ self.multiply128("3", "30000", "90000", .toNearestOrEven)
+ /* dqmul136 */ self.multiply128("3", "300000", "900000", .toNearestOrEven)
+ /* dqmul137 */ self.multiply128("3", "3000000", "9000000", .toNearestOrEven)
+ /* dqmul138 */ self.multiply128("3", "30000000", "90000000", .toNearestOrEven)
+ /* dqmul139 */ self.multiply128("3", "300000000", "900000000", .toNearestOrEven)
+ /* dqmul140 */ self.multiply128("3", "3000000000", "9000000000", .toNearestOrEven)
+ /* dqmul141 */ self.multiply128("3", "30000000000", "90000000000", .toNearestOrEven)
+ /* dqmul142 */ self.multiply128("3", "300000000000", "900000000000", .toNearestOrEven)
+ /* dqmul143 */ self.multiply128("3", "3000000000000", "9000000000000", .toNearestOrEven)
+ /* dqmul144 */ self.multiply128("3", "30000000000000", "90000000000000", .toNearestOrEven)
+ /* dqmul145 */ self.multiply128("3", "300000000000000", "900000000000000", .toNearestOrEven)
+ /* dqmul146 */ self.multiply128("3", "3000000000000000", "9000000000000000", .toNearestOrEven)
+ /* dqmul147 */ self.multiply128("3", "30000000000000000", "90000000000000000", .toNearestOrEven)
+ /* dqmul148 */ self.multiply128("3", "300000000000000000", "900000000000000000", .toNearestOrEven)
+ /* dqmul149 */ self.multiply128("3", "3000000000000000000", "9000000000000000000", .toNearestOrEven)
+ /* dqmul150 */ self.multiply128("3", "30000000000000000000", "90000000000000000000", .toNearestOrEven)
+ /* dqmul151 */ self.multiply128("3", "300000000000000000000", "900000000000000000000", .toNearestOrEven)
+ /* dqmul152 */ self.multiply128("3", "3000000000000000000000", "9000000000000000000000", .toNearestOrEven)
+ /* dqmul153 */ self.multiply128("3", "30000000000000000000000", "90000000000000000000000", .toNearestOrEven)
+ /* dqmul263 */ self.multiply128("30269.587755640502150977251770554", "4.8046009735990873395936309640543", "145433.2908011933696719165119928296", .toNearestOrEven, .isInexact)
+ /* dqmul301 */ self.multiply128("900000000000000000", "9", "8100000000000000000", .toNearestOrEven)
+ /* dqmul302 */ self.multiply128("900000000000000000", "90", "81000000000000000000", .toNearestOrEven)
+ /* dqmul303 */ self.multiply128("900000000000000000", "900", "810000000000000000000", .toNearestOrEven)
+ /* dqmul304 */ self.multiply128("900000000000000000", "9000", "8100000000000000000000", .toNearestOrEven)
+ /* dqmul305 */ self.multiply128("900000000000000000", "90000", "81000000000000000000000", .toNearestOrEven)
+ /* dqmul306 */ self.multiply128("900000000000000000", "900000", "810000000000000000000000", .toNearestOrEven)
+ /* dqmul307 */ self.multiply128("900000000000000000", "9000000", "8100000000000000000000000", .toNearestOrEven)
+ /* dqmul308 */ self.multiply128("900000000000000000", "90000000", "81000000000000000000000000", .toNearestOrEven)
+ /* dqmul309 */ self.multiply128("900000000000000000", "900000000", "810000000000000000000000000", .toNearestOrEven)
+ /* dqmul310 */ self.multiply128("900000000000000000", "9000000000", "8100000000000000000000000000", .toNearestOrEven)
+ /* dqmul311 */ self.multiply128("900000000000000000", "90000000000", "81000000000000000000000000000", .toNearestOrEven)
+ /* dqmul312 */ self.multiply128("900000000000000000", "900000000000", "810000000000000000000000000000", .toNearestOrEven)
+ /* dqmul313 */ self.multiply128("900000000000000000", "9000000000000", "8100000000000000000000000000000", .toNearestOrEven)
+ /* dqmul314 */ self.multiply128("900000000000000000", "90000000000000", "81000000000000000000000000000000", .toNearestOrEven)
+ /* dqmul315 */ self.multiply128("900000000000000000", "900000000000000", "810000000000000000000000000000000", .toNearestOrEven)
+ /* dqmul316 */ self.multiply128("900000000000000000", "9000000000000000", "8100000000000000000000000000000000", .toNearestOrEven)
+ /* dqmul317 */ self.multiply128("9000000000000000000", "9000000000000000", "8.100000000000000000000000000000000E+34", .toNearestOrEven)
+ /* dqmul318 */ self.multiply128("90000000000000000000", "9000000000000000", "8.100000000000000000000000000000000E+35", .toNearestOrEven)
+ /* dqmul319 */ self.multiply128("900000000000000000000", "9000000000000000", "8.100000000000000000000000000000000E+36", .toNearestOrEven)
+ /* dqmul320 */ self.multiply128("9000000000000000000000", "9000000000000000", "8.100000000000000000000000000000000E+37", .toNearestOrEven)
+ /* dqmul321 */ self.multiply128("90000000000000000000000", "9000000000000000", "8.100000000000000000000000000000000E+38", .toNearestOrEven)
+ /* dqmul322 */ self.multiply128("900000000000000000000000", "9000000000000000", "8.100000000000000000000000000000000E+39", .toNearestOrEven)
+ /* dqmul323 */ self.multiply128("9000000000000000000000000", "9000000000000000", "8.100000000000000000000000000000000E+40", .toNearestOrEven)
+ /* dqmul504 */ self.multiply128("0E-4260", "1000E-4260", "0E-6176", .toNearestOrEven)
+ /* dqmul505 */ self.multiply128("100E+4260", "0E+4260", "0E+6111", .toNearestOrEven)
+ /* dqmul541 */ self.multiply128("0", "-1", "-0", .toNearestOrEven)
+ /* dqmul542 */ self.multiply128("-0", "-1", "0", .toNearestOrEven)
+ /* dqmul543 */ self.multiply128("0", "1", "0", .toNearestOrEven)
+ /* dqmul544 */ self.multiply128("-0", "1", "-0", .toNearestOrEven)
+ /* dqmul545 */ self.multiply128("-1", "0", "-0", .toNearestOrEven)
+ /* dqmul546 */ self.multiply128("-1", "-0", "0", .toNearestOrEven)
+ /* dqmul547 */ self.multiply128("1", "0", "0", .toNearestOrEven)
+ /* dqmul548 */ self.multiply128("1", "-0", "-0", .toNearestOrEven)
+ /* dqmul551 */ self.multiply128("0.0", "-1", "-0.0", .toNearestOrEven)
+ /* dqmul552 */ self.multiply128("-0.0", "-1", "0.0", .toNearestOrEven)
+ /* dqmul553 */ self.multiply128("0.0", "1", "0.0", .toNearestOrEven)
+ /* dqmul554 */ self.multiply128("-0.0", "1", "-0.0", .toNearestOrEven)
+ /* dqmul555 */ self.multiply128("-1.0", "0", "-0.0", .toNearestOrEven)
+ /* dqmul556 */ self.multiply128("-1.0", "-0", "0.0", .toNearestOrEven)
+ /* dqmul557 */ self.multiply128("1.0", "0", "0.0", .toNearestOrEven)
+ /* dqmul558 */ self.multiply128("1.0", "-0", "-0.0", .toNearestOrEven)
+ /* dqmul561 */ self.multiply128("0", "-1.0", "-0.0", .toNearestOrEven)
+ /* dqmul562 */ self.multiply128("-0", "-1.0", "0.0", .toNearestOrEven)
+ /* dqmul563 */ self.multiply128("0", "1.0", "0.0", .toNearestOrEven)
+ /* dqmul564 */ self.multiply128("-0", "1.0", "-0.0", .toNearestOrEven)
+ /* dqmul565 */ self.multiply128("-1", "0.0", "-0.0", .toNearestOrEven)
+ /* dqmul566 */ self.multiply128("-1", "-0.0", "0.0", .toNearestOrEven)
+ /* dqmul567 */ self.multiply128("1", "0.0", "0.0", .toNearestOrEven)
+ /* dqmul568 */ self.multiply128("1", "-0.0", "-0.0", .toNearestOrEven)
+ /* dqmul571 */ self.multiply128("0.0", "-1.0", "-0.00", .toNearestOrEven)
+ /* dqmul572 */ self.multiply128("-0.0", "-1.0", "0.00", .toNearestOrEven)
+ /* dqmul573 */ self.multiply128("0.0", "1.0", "0.00", .toNearestOrEven)
+ /* dqmul574 */ self.multiply128("-0.0", "1.0", "-0.00", .toNearestOrEven)
+ /* dqmul575 */ self.multiply128("-1.0", "0.0", "-0.00", .toNearestOrEven)
+ /* dqmul576 */ self.multiply128("-1.0", "-0.0", "0.00", .toNearestOrEven)
+ /* dqmul577 */ self.multiply128("1.0", "0.0", "0.00", .toNearestOrEven)
+ /* dqmul578 */ self.multiply128("1.0", "-0.0", "-0.00", .toNearestOrEven)
+ /* dqmul580 */ self.multiply128("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmul581 */ self.multiply128("Inf", "-1000", "-Infinity", .toNearestOrEven)
+ /* dqmul582 */ self.multiply128("Inf", "-1", "-Infinity", .toNearestOrEven)
+ /* dqmul583 */ self.multiply128("Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul584 */ self.multiply128("Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul585 */ self.multiply128("Inf", "1", "Infinity", .toNearestOrEven)
+ /* dqmul586 */ self.multiply128("Inf", "1000", "Infinity", .toNearestOrEven)
+ /* dqmul587 */ self.multiply128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmul588 */ self.multiply128("-1000", "Inf", "-Infinity", .toNearestOrEven)
+ /* dqmul589 */ self.multiply128("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* dqmul590 */ self.multiply128("-1", "Inf", "-Infinity", .toNearestOrEven)
+ /* dqmul591 */ self.multiply128("-0", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul592 */ self.multiply128("0", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul593 */ self.multiply128("1", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmul594 */ self.multiply128("1000", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmul595 */ self.multiply128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqmul600 */ self.multiply128("-Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* dqmul601 */ self.multiply128("-Inf", "-1000", "Infinity", .toNearestOrEven)
+ /* dqmul602 */ self.multiply128("-Inf", "-1", "Infinity", .toNearestOrEven)
+ /* dqmul603 */ self.multiply128("-Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul604 */ self.multiply128("-Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul605 */ self.multiply128("-Inf", "1", "-Infinity", .toNearestOrEven)
+ /* dqmul606 */ self.multiply128("-Inf", "1000", "-Infinity", .toNearestOrEven)
+ /* dqmul607 */ self.multiply128("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* dqmul608 */ self.multiply128("-1000", "Inf", "-Infinity", .toNearestOrEven)
+ /* dqmul609 */ self.multiply128("-Inf", "-Inf", "Infinity", .toNearestOrEven)
+ /* dqmul610 */ self.multiply128("-1", "-Inf", "Infinity", .toNearestOrEven)
+ /* dqmul611 */ self.multiply128("-0", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul612 */ self.multiply128("0", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul613 */ self.multiply128("1", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmul614 */ self.multiply128("1000", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmul615 */ self.multiply128("Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqmul621 */ self.multiply128("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* dqmul622 */ self.multiply128("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* dqmul623 */ self.multiply128("NaN", "-1", "NaN", .toNearestOrEven)
+ /* dqmul624 */ self.multiply128("NaN", "-0", "NaN", .toNearestOrEven)
+ /* dqmul625 */ self.multiply128("NaN", "0", "NaN", .toNearestOrEven)
+ /* dqmul626 */ self.multiply128("NaN", "1", "NaN", .toNearestOrEven)
+ /* dqmul627 */ self.multiply128("NaN", "1000", "NaN", .toNearestOrEven)
+ /* dqmul628 */ self.multiply128("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* dqmul629 */ self.multiply128("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* dqmul630 */ self.multiply128("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqmul631 */ self.multiply128("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqmul632 */ self.multiply128("-1", "NaN", "NaN", .toNearestOrEven)
+ /* dqmul633 */ self.multiply128("-0", "NaN", "NaN", .toNearestOrEven)
+ /* dqmul634 */ self.multiply128("0", "NaN", "NaN", .toNearestOrEven)
+ /* dqmul635 */ self.multiply128("1", "NaN", "NaN", .toNearestOrEven)
+ /* dqmul636 */ self.multiply128("1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqmul637 */ self.multiply128("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqmul641 */ self.multiply128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul642 */ self.multiply128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul643 */ self.multiply128("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul644 */ self.multiply128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul645 */ self.multiply128("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul646 */ self.multiply128("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul647 */ self.multiply128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul648 */ self.multiply128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul649 */ self.multiply128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul650 */ self.multiply128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul651 */ self.multiply128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul652 */ self.multiply128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul653 */ self.multiply128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul654 */ self.multiply128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul655 */ self.multiply128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul656 */ self.multiply128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul657 */ self.multiply128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul658 */ self.multiply128("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul659 */ self.multiply128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul661 */ self.multiply128("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrEven)
+ /* dqmul662 */ self.multiply128("NaN(0x8)", "999", "NaN(0x8)", .toNearestOrEven)
+ /* dqmul663 */ self.multiply128("NaN(0x47)", "Inf", "NaN(0x47)", .toNearestOrEven)
+ /* dqmul664 */ self.multiply128("NaN(0x6)", "NaN(0x5)", "NaN(0x6)", .toNearestOrEven)
+ /* dqmul665 */ self.multiply128("-Inf", "NaN(0x4)", "NaN(0x4)", .toNearestOrEven)
+ /* dqmul666 */ self.multiply128("-999", "NaN(0x21)", "NaN(0x21)", .toNearestOrEven)
+ /* dqmul667 */ self.multiply128("Inf", "NaN(0x2)", "NaN(0x2)", .toNearestOrEven)
+ /* dqmul671 */ self.multiply128("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul672 */ self.multiply128("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul673 */ self.multiply128("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul674 */ self.multiply128("sNaN(0x10)", "sNaN(0x5e)", "NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul675 */ self.multiply128("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul676 */ self.multiply128("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul677 */ self.multiply128("088", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul678 */ self.multiply128("Inf", "sNaN(0x5a)", "NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul679 */ self.multiply128("NaN", "sNaN(0x59)", "NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul681 */ self.multiply128("-NaN(0x9)", "-Inf", "-NaN(0x9)", .toNearestOrEven)
+ /* dqmul682 */ self.multiply128("-NaN(0x8)", "999", "-NaN(0x8)", .toNearestOrEven)
+ /* dqmul683 */ self.multiply128("-NaN(0x47)", "Inf", "-NaN(0x47)", .toNearestOrEven)
+ /* dqmul684 */ self.multiply128("-NaN(0x6)", "-NaN(0x5)", "-NaN(0x6)", .toNearestOrEven)
+ /* dqmul685 */ self.multiply128("-Inf", "-NaN(0x4)", "-NaN(0x4)", .toNearestOrEven)
+ /* dqmul686 */ self.multiply128("-999", "-NaN(0x21)", "-NaN(0x21)", .toNearestOrEven)
+ /* dqmul687 */ self.multiply128("Inf", "-NaN(0x2)", "-NaN(0x2)", .toNearestOrEven)
+ /* dqmul691 */ self.multiply128("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul692 */ self.multiply128("-sNaN(0x62)", "-11", "-NaN(0x62)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul693 */ self.multiply128("-sNaN(0x61)", "NaN", "-NaN(0x61)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul694 */ self.multiply128("-sNaN(0x10)", "-sNaN(0x5e)", "-NaN(0x10)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul695 */ self.multiply128("-NaN(0x5f)", "-sNaN(0x5d)", "-NaN(0x5d)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul696 */ self.multiply128("-Inf", "-sNaN(0x5c)", "-NaN(0x5c)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul697 */ self.multiply128("088", "-sNaN(0x5b)", "-NaN(0x5b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul698 */ self.multiply128("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul699 */ self.multiply128("-NaN", "-sNaN(0x59)", "-NaN(0x59)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul701 */ self.multiply128("-NaN", "-Inf", "-NaN", .toNearestOrEven)
+ /* dqmul702 */ self.multiply128("-NaN", "999", "-NaN", .toNearestOrEven)
+ /* dqmul703 */ self.multiply128("-NaN", "Inf", "-NaN", .toNearestOrEven)
+ /* dqmul704 */ self.multiply128("-NaN", "-NaN", "-NaN", .toNearestOrEven)
+ /* dqmul705 */ self.multiply128("-Inf", "-NaN(0x0)", "-NaN", .toNearestOrEven)
+ /* dqmul706 */ self.multiply128("-999", "-NaN", "-NaN", .toNearestOrEven)
+ /* dqmul707 */ self.multiply128("Inf", "-NaN", "-NaN", .toNearestOrEven)
+ /* dqmul711 */ self.multiply128("-sNaN", "-Inf", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul712 */ self.multiply128("-sNaN", "-11", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul713 */ self.multiply128("-sNaN(0x0)", "NaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul714 */ self.multiply128("-sNaN", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul715 */ self.multiply128("-NaN", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul716 */ self.multiply128("-Inf", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul717 */ self.multiply128("088", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul718 */ self.multiply128("Inf", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul719 */ self.multiply128("-NaN", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmul751 */ self.multiply128("1e+4277", "1e+3311", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul752 */ self.multiply128("1e+4277", "-1e+3311", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul753 */ self.multiply128("-1e+4277", "1e+3311", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul754 */ self.multiply128("-1e+4277", "-1e+3311", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul755 */ self.multiply128("1e-4277", "1e-3311", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul756 */ self.multiply128("1e-4277", "-1e-3311", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul757 */ self.multiply128("-1e-4277", "1e-3311", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul758 */ self.multiply128("-1e-4277", "-1e-3311", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul760 */ self.multiply128("1e-6069", "1e-101", "1E-6170", .toNearestOrEven)
+ /* dqmul761 */ self.multiply128("1e-6069", "1e-102", "1E-6171", .toNearestOrEven)
+ /* dqmul762 */ self.multiply128("1e-6069", "1e-103", "1E-6172", .toNearestOrEven)
+ /* dqmul763 */ self.multiply128("1e-6069", "1e-104", "1E-6173", .toNearestOrEven)
+ /* dqmul764 */ self.multiply128("1e-6069", "1e-105", "1E-6174", .toNearestOrEven)
+ /* dqmul765 */ self.multiply128("1e-6069", "1e-106", "1E-6175", .toNearestOrEven)
+ /* dqmul766 */ self.multiply128("1e-6069", "1e-107", "1E-6176", .toNearestOrEven)
+ /* dqmul767 */ self.multiply128("1e-6069", "1e-108", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul768 */ self.multiply128("1e-6069", "1e-109", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul769 */ self.multiply128("1e-6069", "1e-110", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul770 */ self.multiply128("1e+40", "1e+6101", "1.000000000000000000000000000000E+6141", .toNearestOrEven)
+ /* dqmul771 */ self.multiply128("1e+40", "1e+6102", "1.0000000000000000000000000000000E+6142", .toNearestOrEven)
+ /* dqmul772 */ self.multiply128("1e+40", "1e+6103", "1.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqmul773 */ self.multiply128("1e+40", "1e+6104", "1.000000000000000000000000000000000E+6144", .toNearestOrEven)
+ /* dqmul774 */ self.multiply128("1e+40", "1e+6105", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul775 */ self.multiply128("1e+40", "1e+6106", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul776 */ self.multiply128("1e+40", "1e+6107", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul777 */ self.multiply128("1e+40", "1e+6108", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul778 */ self.multiply128("1e+40", "1e+6109", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul779 */ self.multiply128("1e+40", "1e+6110", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul801 */ self.multiply128("1.0000E-6172", "1", "1.0000E-6172", .toNearestOrEven)
+ /* dqmul802 */ self.multiply128("1.000E-6172", "1e-1", "1.000E-6173", .toNearestOrEven)
+ /* dqmul803 */ self.multiply128("1.00E-6172", "1e-2", "1.00E-6174", .toNearestOrEven)
+ /* dqmul804 */ self.multiply128("1.0E-6172", "1e-3", "1.0E-6175", .toNearestOrEven)
+ /* dqmul805 */ self.multiply128("1.0E-6172", "1e-4", "1E-6176", .toNearestOrEven)
+ /* dqmul806 */ self.multiply128("1.3E-6172", "1e-4", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul807 */ self.multiply128("1.5E-6172", "1e-4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul808 */ self.multiply128("1.7E-6172", "1e-4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul809 */ self.multiply128("2.3E-6172", "1e-4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul810 */ self.multiply128("2.5E-6172", "1e-4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul811 */ self.multiply128("2.7E-6172", "1e-4", "3E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul812 */ self.multiply128("1.49E-6172", "1e-4", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul813 */ self.multiply128("1.50E-6172", "1e-4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul814 */ self.multiply128("1.51E-6172", "1e-4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul815 */ self.multiply128("2.49E-6172", "1e-4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul816 */ self.multiply128("2.50E-6172", "1e-4", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul817 */ self.multiply128("2.51E-6172", "1e-4", "3E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul818 */ self.multiply128("1E-6172", "1e-4", "1E-6176", .toNearestOrEven)
+ /* dqmul819 */ self.multiply128("3E-6172", "1e-5", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul820 */ self.multiply128("5E-6172", "1e-5", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul821 */ self.multiply128("7E-6172", "1e-5", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul822 */ self.multiply128("9E-6172", "1e-5", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul823 */ self.multiply128("9.9E-6172", "1e-5", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul824 */ self.multiply128("1E-6172", "-1e-4", "-1E-6176", .toNearestOrEven)
+ /* dqmul825 */ self.multiply128("3E-6172", "-1e-5", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul826 */ self.multiply128("-5E-6172", "1e-5", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul827 */ self.multiply128("7E-6172", "-1e-5", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul828 */ self.multiply128("-9E-6172", "1e-5", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul829 */ self.multiply128("9.9E-6172", "-1e-5", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul830 */ self.multiply128("3.0E-6172", "-1e-5", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul831 */ self.multiply128("1.0E-5977", "1e-200", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul832 */ self.multiply128("1.0E-5977", "1e-199", "1E-6176", .toNearestOrEven)
+ /* dqmul833 */ self.multiply128("1.0E-5977", "1e-198", "1.0E-6175", .toNearestOrEven)
+ /* dqmul834 */ self.multiply128("2.0E-5977", "2e-198", "4.0E-6175", .toNearestOrEven)
+ /* dqmul835 */ self.multiply128("4.0E-5977", "4e-198", "1.60E-6174", .toNearestOrEven)
+ /* dqmul836 */ self.multiply128("10.0E-5977", "10e-198", "1.000E-6173", .toNearestOrEven)
+ /* dqmul837 */ self.multiply128("30.0E-5977", "30e-198", "9.000E-6173", .toNearestOrEven)
+ /* dqmul838 */ self.multiply128("40.0E-5982", "40e-166", "1.6000E-6145", .toNearestOrEven)
+ /* dqmul839 */ self.multiply128("40.0E-5982", "40e-165", "1.6000E-6144", .toNearestOrEven)
+ /* dqmul840 */ self.multiply128("40.0E-5982", "40e-164", "1.6000E-6143", .toNearestOrEven)
+ /* dqmul870 */ self.multiply128("100", "9.999E+6143", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul871 */ self.multiply128("100", "-9.999E+6143", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul872 */ self.multiply128("9.999E+6143", "100", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul873 */ self.multiply128("-9.999E+6143", "100", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqmul881 */ self.multiply128("1.2347E-6133", "1.2347E-40", "1.524E-6173", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul882 */ self.multiply128("1.234E-6133", "1.234E-40", "1.523E-6173", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul883 */ self.multiply128("1.23E-6133", "1.23E-40", "1.513E-6173", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul884 */ self.multiply128("1.2E-6133", "1.2E-40", "1.44E-6173", .toNearestOrEven)
+ /* dqmul885 */ self.multiply128("1.2E-6133", "1.2E-41", "1.44E-6174", .toNearestOrEven)
+ /* dqmul886 */ self.multiply128("1.2E-6133", "1.2E-42", "1.4E-6175", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul887 */ self.multiply128("1.2E-6133", "1.3E-42", "1.6E-6175", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul888 */ self.multiply128("1.3E-6133", "1.3E-42", "1.7E-6175", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul889 */ self.multiply128("1.3E-6133", "1.3E-43", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul890 */ self.multiply128("1.3E-6134", "1.3E-43", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul891 */ self.multiply128("1.2345E-39", "1.234E-6133", "1.5234E-6172", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul892 */ self.multiply128("1.23456E-39", "1.234E-6133", "1.5234E-6172", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul893 */ self.multiply128("1.2345E-40", "1.234E-6133", "1.523E-6173", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul894 */ self.multiply128("1.23456E-40", "1.234E-6133", "1.523E-6173", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul895 */ self.multiply128("1.2345E-41", "1.234E-6133", "1.52E-6174", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul896 */ self.multiply128("1.23456E-41", "1.234E-6133", "1.52E-6174", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul906 */ self.multiply128("9.999999999999999999999999999999999E-6143", "1", "9.999999999999999999999999999999999E-6143", .toNearestOrEven)
+ /* dqmul907 */ self.multiply128("1", "0.09999999999999999999999999999999999", "0.09999999999999999999999999999999999", .toNearestOrEven)
+ /* dqmul908 */ self.multiply128("9.999999999999999999999999999999999E-6143", "0.09999999999999999999999999999999999", "1.000000000000000000000000000000000E-6143", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqmul909 */ self.multiply128("9999999999999999999999999999999999", "9999999999999999999999999999999999", "9.999999999999999999999999999999998E+67", .toNearestOrEven, .isInexact)
+ /* dqmul910 */ self.multiply128("8.81125000000001349436E-1548", "8.000000000000000000E-1550", "7.049000000000010795488000000000000E-3097", .toNearestOrEven)
+ /* dqmul911 */ self.multiply128("130E-2", "120E-2", "1.5600", .toNearestOrAwayFromZero)
+ /* dqmul912 */ self.multiply128("130E-2", "12E-1", "1.560", .toNearestOrAwayFromZero)
+ /* dqmul913 */ self.multiply128("130E-2", "1E0", "1.30", .toNearestOrAwayFromZero)
+ /* dqmul914 */ self.multiply128("1E2", "1E4", "1E+6", .toNearestOrAwayFromZero)
+ }
+
+ private func multiply128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.multiplied(by: arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_mul(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveNextTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveNextTests.swift
new file mode 100644
index 0000000..01aef98
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveNextTests.swift
@@ -0,0 +1,1082 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveNextTests: XCTestCase, SpeleotroveMixin {
+
+ // MARK: - Nextminus
+
+ func test_nextminus64() {
+ /* ddnextm001 */ self.nextminus64("0.9999999999999995", "0.9999999999999994", .toNearestOrEven)
+ /* ddnextm002 */ self.nextminus64("0.9999999999999996", "0.9999999999999995", .toNearestOrEven)
+ /* ddnextm003 */ self.nextminus64("0.9999999999999997", "0.9999999999999996", .toNearestOrEven)
+ /* ddnextm004 */ self.nextminus64("0.9999999999999998", "0.9999999999999997", .toNearestOrEven)
+ /* ddnextm005 */ self.nextminus64("0.9999999999999999", "0.9999999999999998", .toNearestOrEven)
+ /* ddnextm006 */ self.nextminus64("1.000000000000000", "0.9999999999999999", .toNearestOrEven)
+ /* ddnextm007 */ self.nextminus64("1.0", "0.9999999999999999", .toNearestOrEven)
+ /* ddnextm008 */ self.nextminus64("1", "0.9999999999999999", .toNearestOrEven)
+ /* ddnextm009 */ self.nextminus64("1.000000000000001", "1.000000000000000", .toNearestOrEven)
+ /* ddnextm010 */ self.nextminus64("1.000000000000002", "1.000000000000001", .toNearestOrEven)
+ /* ddnextm011 */ self.nextminus64("1.000000000000003", "1.000000000000002", .toNearestOrEven)
+ /* ddnextm012 */ self.nextminus64("1.000000000000004", "1.000000000000003", .toNearestOrEven)
+ /* ddnextm013 */ self.nextminus64("1.000000000000005", "1.000000000000004", .toNearestOrEven)
+ /* ddnextm014 */ self.nextminus64("1.000000000000006", "1.000000000000005", .toNearestOrEven)
+ /* ddnextm015 */ self.nextminus64("1.000000000000007", "1.000000000000006", .toNearestOrEven)
+ /* ddnextm016 */ self.nextminus64("1.000000000000008", "1.000000000000007", .toNearestOrEven)
+ /* ddnextm017 */ self.nextminus64("1.000000000000009", "1.000000000000008", .toNearestOrEven)
+ /* ddnextm018 */ self.nextminus64("1.000000000000010", "1.000000000000009", .toNearestOrEven)
+ /* ddnextm019 */ self.nextminus64("1.000000000000011", "1.000000000000010", .toNearestOrEven)
+ /* ddnextm020 */ self.nextminus64("1.000000000000012", "1.000000000000011", .toNearestOrEven)
+ /* ddnextm021 */ self.nextminus64("-0.9999999999999995", "-0.9999999999999996", .toNearestOrEven)
+ /* ddnextm022 */ self.nextminus64("-0.9999999999999996", "-0.9999999999999997", .toNearestOrEven)
+ /* ddnextm023 */ self.nextminus64("-0.9999999999999997", "-0.9999999999999998", .toNearestOrEven)
+ /* ddnextm024 */ self.nextminus64("-0.9999999999999998", "-0.9999999999999999", .toNearestOrEven)
+ /* ddnextm025 */ self.nextminus64("-0.9999999999999999", "-1.000000000000000", .toNearestOrEven)
+ /* ddnextm026 */ self.nextminus64("-1.000000000000000", "-1.000000000000001", .toNearestOrEven)
+ /* ddnextm027 */ self.nextminus64("-1.0", "-1.000000000000001", .toNearestOrEven)
+ /* ddnextm028 */ self.nextminus64("-1", "-1.000000000000001", .toNearestOrEven)
+ /* ddnextm029 */ self.nextminus64("-1.000000000000001", "-1.000000000000002", .toNearestOrEven)
+ /* ddnextm030 */ self.nextminus64("-1.000000000000002", "-1.000000000000003", .toNearestOrEven)
+ /* ddnextm031 */ self.nextminus64("-1.000000000000003", "-1.000000000000004", .toNearestOrEven)
+ /* ddnextm032 */ self.nextminus64("-1.000000000000004", "-1.000000000000005", .toNearestOrEven)
+ /* ddnextm033 */ self.nextminus64("-1.000000000000005", "-1.000000000000006", .toNearestOrEven)
+ /* ddnextm034 */ self.nextminus64("-1.000000000000006", "-1.000000000000007", .toNearestOrEven)
+ /* ddnextm035 */ self.nextminus64("-1.000000000000007", "-1.000000000000008", .toNearestOrEven)
+ /* ddnextm036 */ self.nextminus64("-1.000000000000008", "-1.000000000000009", .toNearestOrEven)
+ /* ddnextm037 */ self.nextminus64("-1.000000000000009", "-1.000000000000010", .toNearestOrEven)
+ /* ddnextm038 */ self.nextminus64("-1.000000000000010", "-1.000000000000011", .toNearestOrEven)
+ /* ddnextm039 */ self.nextminus64("-1.000000000000011", "-1.000000000000012", .toNearestOrEven)
+ /* ddnextm062 */ self.nextminus64("1E-398", "0E-398", .toNearestOrEven)
+ /* ddnextm065 */ self.nextminus64("-1E-398", "-2E-398", .toNearestOrEven)
+ /* ddnextm100 */ self.nextminus64("-0", "-1E-398", .toNearestOrEven)
+ /* ddnextm101 */ self.nextminus64("0", "-1E-398", .toNearestOrEven)
+ /* ddnextm102 */ self.nextminus64("0.00", "-1E-398", .toNearestOrEven)
+ /* ddnextm103 */ self.nextminus64("-0.00", "-1E-398", .toNearestOrEven)
+ /* ddnextm104 */ self.nextminus64("0E-300", "-1E-398", .toNearestOrEven)
+ /* ddnextm105 */ self.nextminus64("0E+300", "-1E-398", .toNearestOrEven)
+ /* ddnextm106 */ self.nextminus64("0E+30000", "-1E-398", .toNearestOrEven)
+ /* ddnextm107 */ self.nextminus64("-0E+30000", "-1E-398", .toNearestOrEven)
+ /* ddnextm150 */ self.nextminus64("Inf", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextm151 */ self.nextminus64("-Inf", "-Infinity", .toNearestOrEven)
+ /* ddnextm152 */ self.nextminus64("NaN", "NaN", .toNearestOrEven)
+ /* ddnextm153 */ self.nextminus64("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextm154 */ self.nextminus64("NaN(0x4d)", "NaN(0x4d)", .toNearestOrEven)
+ /* ddnextm155 */ self.nextminus64("sNaN(0x58)", "NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextm156 */ self.nextminus64("-NaN", "-NaN", .toNearestOrEven)
+ /* ddnextm157 */ self.nextminus64("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextm158 */ self.nextminus64("-NaN(0x4d)", "-NaN(0x4d)", .toNearestOrEven)
+ /* ddnextm159 */ self.nextminus64("-sNaN(0x58)", "-NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextm170 */ self.nextminus64("9.999999999999999E+384", "9.999999999999998E+384", .toNearestOrEven)
+ /* ddnextm171 */ self.nextminus64("9.999999999999998E+384", "9.999999999999997E+384", .toNearestOrEven)
+ /* ddnextm172 */ self.nextminus64("1E-383", "9.99999999999999E-384", .toNearestOrEven)
+ /* ddnextm173 */ self.nextminus64("1.000000000000000E-383", "9.99999999999999E-384", .toNearestOrEven)
+ /* ddnextm174 */ self.nextminus64("9E-398", "8E-398", .toNearestOrEven)
+ /* ddnextm175 */ self.nextminus64("9.9E-397", "9.8E-397", .toNearestOrEven)
+ /* ddnextm176 */ self.nextminus64("9.99999999999E-387", "9.99999999998E-387", .toNearestOrEven)
+ /* ddnextm177 */ self.nextminus64("9.99999999999999E-384", "9.99999999999998E-384", .toNearestOrEven)
+ /* ddnextm178 */ self.nextminus64("9.99999999999998E-384", "9.99999999999997E-384", .toNearestOrEven)
+ /* ddnextm179 */ self.nextminus64("9.99999999999997E-384", "9.99999999999996E-384", .toNearestOrEven)
+ /* ddnextm180 */ self.nextminus64("0E-398", "-1E-398", .toNearestOrEven)
+ /* ddnextm181 */ self.nextminus64("1E-398", "0E-398", .toNearestOrEven)
+ /* ddnextm182 */ self.nextminus64("2E-398", "1E-398", .toNearestOrEven)
+ /* ddnextm183 */ self.nextminus64("-0E-398", "-1E-398", .toNearestOrEven)
+ /* ddnextm184 */ self.nextminus64("-1E-398", "-2E-398", .toNearestOrEven)
+ /* ddnextm185 */ self.nextminus64("-2E-398", "-3E-398", .toNearestOrEven)
+ /* ddnextm186 */ self.nextminus64("-10E-398", "-1.1E-397", .toNearestOrEven)
+ /* ddnextm187 */ self.nextminus64("-100E-398", "-1.01E-396", .toNearestOrEven)
+ /* ddnextm188 */ self.nextminus64("-100000E-398", "-1.00001E-393", .toNearestOrEven)
+ /* ddnextm189 */ self.nextminus64("-1.00000000000E-383", "-1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextm190 */ self.nextminus64("-1.000000000000000E-383", "-1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextm191 */ self.nextminus64("-1E-383", "-1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextm192 */ self.nextminus64("-9.999999999999998E+384", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextm193 */ self.nextminus64("-9.999999999999999E+384", "-Infinity", .toNearestOrEven)
+ }
+
+ private func nextminus64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.nextDown(status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_nextminus128() {
+ /* dqnextm001 */ self.nextminus128("0.9999999999999999999999999999999995", "0.9999999999999999999999999999999994", .toNearestOrEven)
+ /* dqnextm002 */ self.nextminus128("0.9999999999999999999999999999999996", "0.9999999999999999999999999999999995", .toNearestOrEven)
+ /* dqnextm003 */ self.nextminus128("0.9999999999999999999999999999999997", "0.9999999999999999999999999999999996", .toNearestOrEven)
+ /* dqnextm004 */ self.nextminus128("0.9999999999999999999999999999999998", "0.9999999999999999999999999999999997", .toNearestOrEven)
+ /* dqnextm005 */ self.nextminus128("0.9999999999999999999999999999999999", "0.9999999999999999999999999999999998", .toNearestOrEven)
+ /* dqnextm006 */ self.nextminus128("1.000000000000000000000000000000000", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextm007 */ self.nextminus128("1.0", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextm008 */ self.nextminus128("1", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextm009 */ self.nextminus128("1.000000000000000000000000000000001", "1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqnextm010 */ self.nextminus128("1.000000000000000000000000000000002", "1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextm011 */ self.nextminus128("1.000000000000000000000000000000003", "1.000000000000000000000000000000002", .toNearestOrEven)
+ /* dqnextm012 */ self.nextminus128("1.000000000000000000000000000000004", "1.000000000000000000000000000000003", .toNearestOrEven)
+ /* dqnextm013 */ self.nextminus128("1.000000000000000000000000000000005", "1.000000000000000000000000000000004", .toNearestOrEven)
+ /* dqnextm014 */ self.nextminus128("1.000000000000000000000000000000006", "1.000000000000000000000000000000005", .toNearestOrEven)
+ /* dqnextm015 */ self.nextminus128("1.000000000000000000000000000000007", "1.000000000000000000000000000000006", .toNearestOrEven)
+ /* dqnextm016 */ self.nextminus128("1.000000000000000000000000000000008", "1.000000000000000000000000000000007", .toNearestOrEven)
+ /* dqnextm017 */ self.nextminus128("1.000000000000000000000000000000009", "1.000000000000000000000000000000008", .toNearestOrEven)
+ /* dqnextm018 */ self.nextminus128("1.000000000000000000000000000000010", "1.000000000000000000000000000000009", .toNearestOrEven)
+ /* dqnextm019 */ self.nextminus128("1.000000000000000000000000000000011", "1.000000000000000000000000000000010", .toNearestOrEven)
+ /* dqnextm020 */ self.nextminus128("1.000000000000000000000000000000012", "1.000000000000000000000000000000011", .toNearestOrEven)
+ /* dqnextm021 */ self.nextminus128("-0.9999999999999999999999999999999995", "-0.9999999999999999999999999999999996", .toNearestOrEven)
+ /* dqnextm022 */ self.nextminus128("-0.9999999999999999999999999999999996", "-0.9999999999999999999999999999999997", .toNearestOrEven)
+ /* dqnextm023 */ self.nextminus128("-0.9999999999999999999999999999999997", "-0.9999999999999999999999999999999998", .toNearestOrEven)
+ /* dqnextm024 */ self.nextminus128("-0.9999999999999999999999999999999998", "-0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextm025 */ self.nextminus128("-0.9999999999999999999999999999999999", "-1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqnextm026 */ self.nextminus128("-1.000000000000000000000000000000000", "-1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextm027 */ self.nextminus128("-1.0", "-1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextm028 */ self.nextminus128("-1", "-1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextm029 */ self.nextminus128("-1.000000000000000000000000000000001", "-1.000000000000000000000000000000002", .toNearestOrEven)
+ /* dqnextm030 */ self.nextminus128("-1.000000000000000000000000000000002", "-1.000000000000000000000000000000003", .toNearestOrEven)
+ /* dqnextm031 */ self.nextminus128("-1.000000000000000000000000000000003", "-1.000000000000000000000000000000004", .toNearestOrEven)
+ /* dqnextm032 */ self.nextminus128("-1.000000000000000000000000000000004", "-1.000000000000000000000000000000005", .toNearestOrEven)
+ /* dqnextm033 */ self.nextminus128("-1.000000000000000000000000000000005", "-1.000000000000000000000000000000006", .toNearestOrEven)
+ /* dqnextm034 */ self.nextminus128("-1.000000000000000000000000000000006", "-1.000000000000000000000000000000007", .toNearestOrEven)
+ /* dqnextm035 */ self.nextminus128("-1.000000000000000000000000000000007", "-1.000000000000000000000000000000008", .toNearestOrEven)
+ /* dqnextm036 */ self.nextminus128("-1.000000000000000000000000000000008", "-1.000000000000000000000000000000009", .toNearestOrEven)
+ /* dqnextm037 */ self.nextminus128("-1.000000000000000000000000000000009", "-1.000000000000000000000000000000010", .toNearestOrEven)
+ /* dqnextm038 */ self.nextminus128("-1.000000000000000000000000000000010", "-1.000000000000000000000000000000011", .toNearestOrEven)
+ /* dqnextm039 */ self.nextminus128("-1.000000000000000000000000000000011", "-1.000000000000000000000000000000012", .toNearestOrEven)
+ /* dqnextm062 */ self.nextminus128("1E-6176", "0E-6176", .toNearestOrEven)
+ /* dqnextm065 */ self.nextminus128("-1E-6176", "-2E-6176", .toNearestOrEven)
+ /* dqnextm100 */ self.nextminus128("-0", "-1E-6176", .toNearestOrEven)
+ /* dqnextm101 */ self.nextminus128("0", "-1E-6176", .toNearestOrEven)
+ /* dqnextm102 */ self.nextminus128("0.00", "-1E-6176", .toNearestOrEven)
+ /* dqnextm103 */ self.nextminus128("-0.00", "-1E-6176", .toNearestOrEven)
+ /* dqnextm104 */ self.nextminus128("0E-300", "-1E-6176", .toNearestOrEven)
+ /* dqnextm105 */ self.nextminus128("0E+300", "-1E-6176", .toNearestOrEven)
+ /* dqnextm106 */ self.nextminus128("0E+30000", "-1E-6176", .toNearestOrEven)
+ /* dqnextm107 */ self.nextminus128("-0E+30000", "-1E-6176", .toNearestOrEven)
+ /* dqnextm150 */ self.nextminus128("Inf", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextm151 */ self.nextminus128("-Inf", "-Infinity", .toNearestOrEven)
+ /* dqnextm152 */ self.nextminus128("NaN", "NaN", .toNearestOrEven)
+ /* dqnextm153 */ self.nextminus128("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextm154 */ self.nextminus128("NaN(0x4d)", "NaN(0x4d)", .toNearestOrEven)
+ /* dqnextm155 */ self.nextminus128("sNaN(0x58)", "NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextm156 */ self.nextminus128("-NaN", "-NaN", .toNearestOrEven)
+ /* dqnextm157 */ self.nextminus128("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextm158 */ self.nextminus128("-NaN(0x4d)", "-NaN(0x4d)", .toNearestOrEven)
+ /* dqnextm159 */ self.nextminus128("-sNaN(0x58)", "-NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextm170 */ self.nextminus128("9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999998E+6144", .toNearestOrEven)
+ /* dqnextm171 */ self.nextminus128("9.999999999999999999999999999999998E+6144", "9.999999999999999999999999999999997E+6144", .toNearestOrEven)
+ /* dqnextm172 */ self.nextminus128("1E-6143", "9.99999999999999999999999999999999E-6144", .toNearestOrEven)
+ /* dqnextm173 */ self.nextminus128("1.000000000000000000000000000000000E-6143", "9.99999999999999999999999999999999E-6144", .toNearestOrEven)
+ /* dqnextm174 */ self.nextminus128("9E-6176", "8E-6176", .toNearestOrEven)
+ /* dqnextm175 */ self.nextminus128("9.9E-6175", "9.8E-6175", .toNearestOrEven)
+ /* dqnextm176 */ self.nextminus128("9.99999999999999999999999999999E-6147", "9.99999999999999999999999999998E-6147", .toNearestOrEven)
+ /* dqnextm177 */ self.nextminus128("9.99999999999999999999999999999999E-6144", "9.99999999999999999999999999999998E-6144", .toNearestOrEven)
+ /* dqnextm178 */ self.nextminus128("9.99999999999999999999999999999998E-6144", "9.99999999999999999999999999999997E-6144", .toNearestOrEven)
+ /* dqnextm179 */ self.nextminus128("9.99999999999999999999999999999997E-6144", "9.99999999999999999999999999999996E-6144", .toNearestOrEven)
+ /* dqnextm180 */ self.nextminus128("0E-6176", "-1E-6176", .toNearestOrEven)
+ /* dqnextm181 */ self.nextminus128("1E-6176", "0E-6176", .toNearestOrEven)
+ /* dqnextm182 */ self.nextminus128("2E-6176", "1E-6176", .toNearestOrEven)
+ /* dqnextm183 */ self.nextminus128("-0E-6176", "-1E-6176", .toNearestOrEven)
+ /* dqnextm184 */ self.nextminus128("-1E-6176", "-2E-6176", .toNearestOrEven)
+ /* dqnextm185 */ self.nextminus128("-2E-6176", "-3E-6176", .toNearestOrEven)
+ /* dqnextm186 */ self.nextminus128("-10E-6176", "-1.1E-6175", .toNearestOrEven)
+ /* dqnextm187 */ self.nextminus128("-100E-6176", "-1.01E-6174", .toNearestOrEven)
+ /* dqnextm188 */ self.nextminus128("-100000E-6176", "-1.00001E-6171", .toNearestOrEven)
+ /* dqnextm189 */ self.nextminus128("-1.00000000000000000000000000000E-6143", "-1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextm190 */ self.nextminus128("-1.000000000000000000000000000000000E-6143", "-1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextm191 */ self.nextminus128("-1E-6143", "-1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextm192 */ self.nextminus128("-9.999999999999999999999999999999998E+6144", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextm193 */ self.nextminus128("-9.999999999999999999999999999999999E+6144", "-Infinity", .toNearestOrEven)
+ }
+
+ private func nextminus128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.nextDown(status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ // MARK: - Nextplus
+
+ func test_nextplus64() {
+ /* ddnextp001 */ self.nextplus64("0.9999999999999995", "0.9999999999999996", .toNearestOrEven)
+ /* ddnextp002 */ self.nextplus64("0.9999999999999996", "0.9999999999999997", .toNearestOrEven)
+ /* ddnextp003 */ self.nextplus64("0.9999999999999997", "0.9999999999999998", .toNearestOrEven)
+ /* ddnextp004 */ self.nextplus64("0.9999999999999998", "0.9999999999999999", .toNearestOrEven)
+ /* ddnextp005 */ self.nextplus64("0.9999999999999999", "1.000000000000000", .toNearestOrEven)
+ /* ddnextp006 */ self.nextplus64("1.000000000000000", "1.000000000000001", .toNearestOrEven)
+ /* ddnextp007 */ self.nextplus64("1.0", "1.000000000000001", .toNearestOrEven)
+ /* ddnextp008 */ self.nextplus64("1", "1.000000000000001", .toNearestOrEven)
+ /* ddnextp009 */ self.nextplus64("1.000000000000001", "1.000000000000002", .toNearestOrEven)
+ /* ddnextp010 */ self.nextplus64("1.000000000000002", "1.000000000000003", .toNearestOrEven)
+ /* ddnextp011 */ self.nextplus64("1.000000000000003", "1.000000000000004", .toNearestOrEven)
+ /* ddnextp012 */ self.nextplus64("1.000000000000004", "1.000000000000005", .toNearestOrEven)
+ /* ddnextp013 */ self.nextplus64("1.000000000000005", "1.000000000000006", .toNearestOrEven)
+ /* ddnextp014 */ self.nextplus64("1.000000000000006", "1.000000000000007", .toNearestOrEven)
+ /* ddnextp015 */ self.nextplus64("1.000000000000007", "1.000000000000008", .toNearestOrEven)
+ /* ddnextp016 */ self.nextplus64("1.000000000000008", "1.000000000000009", .toNearestOrEven)
+ /* ddnextp017 */ self.nextplus64("1.000000000000009", "1.000000000000010", .toNearestOrEven)
+ /* ddnextp018 */ self.nextplus64("1.000000000000010", "1.000000000000011", .toNearestOrEven)
+ /* ddnextp019 */ self.nextplus64("1.000000000000011", "1.000000000000012", .toNearestOrEven)
+ /* ddnextp021 */ self.nextplus64("-0.9999999999999995", "-0.9999999999999994", .toNearestOrEven)
+ /* ddnextp022 */ self.nextplus64("-0.9999999999999996", "-0.9999999999999995", .toNearestOrEven)
+ /* ddnextp023 */ self.nextplus64("-0.9999999999999997", "-0.9999999999999996", .toNearestOrEven)
+ /* ddnextp024 */ self.nextplus64("-0.9999999999999998", "-0.9999999999999997", .toNearestOrEven)
+ /* ddnextp025 */ self.nextplus64("-0.9999999999999999", "-0.9999999999999998", .toNearestOrEven)
+ /* ddnextp026 */ self.nextplus64("-1.000000000000000", "-0.9999999999999999", .toNearestOrEven)
+ /* ddnextp027 */ self.nextplus64("-1.0", "-0.9999999999999999", .toNearestOrEven)
+ /* ddnextp028 */ self.nextplus64("-1", "-0.9999999999999999", .toNearestOrEven)
+ /* ddnextp029 */ self.nextplus64("-1.000000000000001", "-1.000000000000000", .toNearestOrEven)
+ /* ddnextp030 */ self.nextplus64("-1.000000000000002", "-1.000000000000001", .toNearestOrEven)
+ /* ddnextp031 */ self.nextplus64("-1.000000000000003", "-1.000000000000002", .toNearestOrEven)
+ /* ddnextp032 */ self.nextplus64("-1.000000000000004", "-1.000000000000003", .toNearestOrEven)
+ /* ddnextp033 */ self.nextplus64("-1.000000000000005", "-1.000000000000004", .toNearestOrEven)
+ /* ddnextp034 */ self.nextplus64("-1.000000000000006", "-1.000000000000005", .toNearestOrEven)
+ /* ddnextp035 */ self.nextplus64("-1.000000000000007", "-1.000000000000006", .toNearestOrEven)
+ /* ddnextp036 */ self.nextplus64("-1.000000000000008", "-1.000000000000007", .toNearestOrEven)
+ /* ddnextp037 */ self.nextplus64("-1.000000000000009", "-1.000000000000008", .toNearestOrEven)
+ /* ddnextp038 */ self.nextplus64("-1.000000000000010", "-1.000000000000009", .toNearestOrEven)
+ /* ddnextp039 */ self.nextplus64("-1.000000000000011", "-1.000000000000010", .toNearestOrEven)
+ /* ddnextp040 */ self.nextplus64("-1.000000000000012", "-1.000000000000011", .toNearestOrEven)
+ /* ddnextp100 */ self.nextplus64("0", "1E-398", .toNearestOrEven)
+ /* ddnextp101 */ self.nextplus64("0.00", "1E-398", .toNearestOrEven)
+ /* ddnextp102 */ self.nextplus64("0E-300", "1E-398", .toNearestOrEven)
+ /* ddnextp103 */ self.nextplus64("0E+300", "1E-398", .toNearestOrEven)
+ /* ddnextp104 */ self.nextplus64("0E+30000", "1E-398", .toNearestOrEven)
+ /* ddnextp105 */ self.nextplus64("-0", "1E-398", .toNearestOrEven)
+ /* ddnextp106 */ self.nextplus64("-0.00", "1E-398", .toNearestOrEven)
+ /* ddnextp107 */ self.nextplus64("-0E-300", "1E-398", .toNearestOrEven)
+ /* ddnextp108 */ self.nextplus64("-0E+300", "1E-398", .toNearestOrEven)
+ /* ddnextp109 */ self.nextplus64("-0E+30000", "1E-398", .toNearestOrEven)
+ /* ddnextp150 */ self.nextplus64("Inf", "Infinity", .toNearestOrEven)
+ /* ddnextp151 */ self.nextplus64("-Inf", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextp152 */ self.nextplus64("NaN", "NaN", .toNearestOrEven)
+ /* ddnextp153 */ self.nextplus64("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextp154 */ self.nextplus64("NaN(0x4d)", "NaN(0x4d)", .toNearestOrEven)
+ /* ddnextp155 */ self.nextplus64("sNaN(0x58)", "NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextp156 */ self.nextplus64("-NaN", "-NaN", .toNearestOrEven)
+ /* ddnextp157 */ self.nextplus64("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextp158 */ self.nextplus64("-NaN(0x4d)", "-NaN(0x4d)", .toNearestOrEven)
+ /* ddnextp159 */ self.nextplus64("-sNaN(0x58)", "-NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextp170 */ self.nextplus64("-9.999999999999999E+384", "-9.999999999999998E+384", .toNearestOrEven)
+ /* ddnextp171 */ self.nextplus64("-9.999999999999998E+384", "-9.999999999999997E+384", .toNearestOrEven)
+ /* ddnextp172 */ self.nextplus64("-1E-383", "-9.99999999999999E-384", .toNearestOrEven)
+ /* ddnextp173 */ self.nextplus64("-1.000000000000000E-383", "-9.99999999999999E-384", .toNearestOrEven)
+ /* ddnextp174 */ self.nextplus64("-9E-398", "-8E-398", .toNearestOrEven)
+ /* ddnextp175 */ self.nextplus64("-9.9E-397", "-9.8E-397", .toNearestOrEven)
+ /* ddnextp176 */ self.nextplus64("-9.99999999999E-387", "-9.99999999998E-387", .toNearestOrEven)
+ /* ddnextp177 */ self.nextplus64("-9.99999999999999E-384", "-9.99999999999998E-384", .toNearestOrEven)
+ /* ddnextp178 */ self.nextplus64("-9.99999999999998E-384", "-9.99999999999997E-384", .toNearestOrEven)
+ /* ddnextp179 */ self.nextplus64("-9.99999999999997E-384", "-9.99999999999996E-384", .toNearestOrEven)
+ /* ddnextp180 */ self.nextplus64("-0E-398", "1E-398", .toNearestOrEven)
+ /* ddnextp181 */ self.nextplus64("-1E-398", "-0E-398", .toNearestOrEven)
+ /* ddnextp182 */ self.nextplus64("-2E-398", "-1E-398", .toNearestOrEven)
+ /* ddnextp183 */ self.nextplus64("0E-398", "1E-398", .toNearestOrEven)
+ /* ddnextp184 */ self.nextplus64("1E-398", "2E-398", .toNearestOrEven)
+ /* ddnextp185 */ self.nextplus64("2E-398", "3E-398", .toNearestOrEven)
+ /* ddnextp186 */ self.nextplus64("10E-398", "1.1E-397", .toNearestOrEven)
+ /* ddnextp187 */ self.nextplus64("100E-398", "1.01E-396", .toNearestOrEven)
+ /* ddnextp188 */ self.nextplus64("100000E-398", "1.00001E-393", .toNearestOrEven)
+ /* ddnextp189 */ self.nextplus64("1.00000000000E-383", "1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextp190 */ self.nextplus64("1.000000000000000E-383", "1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextp191 */ self.nextplus64("1E-383", "1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextp192 */ self.nextplus64("9.999999999999998E+384", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextp193 */ self.nextplus64("9.999999999999999E+384", "Infinity", .toNearestOrEven)
+ }
+
+ private func nextplus64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.nextUp(status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_nextplus128() {
+ /* dqnextp001 */ self.nextplus128("0.9999999999999999999999999999999995", "0.9999999999999999999999999999999996", .toNearestOrEven)
+ /* dqnextp002 */ self.nextplus128("0.9999999999999999999999999999999996", "0.9999999999999999999999999999999997", .toNearestOrEven)
+ /* dqnextp003 */ self.nextplus128("0.9999999999999999999999999999999997", "0.9999999999999999999999999999999998", .toNearestOrEven)
+ /* dqnextp004 */ self.nextplus128("0.9999999999999999999999999999999998", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextp005 */ self.nextplus128("0.9999999999999999999999999999999999", "1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqnextp006 */ self.nextplus128("1.000000000000000000000000000000000", "1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextp007 */ self.nextplus128("1.0", "1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextp008 */ self.nextplus128("1", "1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextp009 */ self.nextplus128("1.000000000000000000000000000000001", "1.000000000000000000000000000000002", .toNearestOrEven)
+ /* dqnextp010 */ self.nextplus128("1.000000000000000000000000000000002", "1.000000000000000000000000000000003", .toNearestOrEven)
+ /* dqnextp011 */ self.nextplus128("1.000000000000000000000000000000003", "1.000000000000000000000000000000004", .toNearestOrEven)
+ /* dqnextp012 */ self.nextplus128("1.000000000000000000000000000000004", "1.000000000000000000000000000000005", .toNearestOrEven)
+ /* dqnextp013 */ self.nextplus128("1.000000000000000000000000000000005", "1.000000000000000000000000000000006", .toNearestOrEven)
+ /* dqnextp014 */ self.nextplus128("1.000000000000000000000000000000006", "1.000000000000000000000000000000007", .toNearestOrEven)
+ /* dqnextp015 */ self.nextplus128("1.000000000000000000000000000000007", "1.000000000000000000000000000000008", .toNearestOrEven)
+ /* dqnextp016 */ self.nextplus128("1.000000000000000000000000000000008", "1.000000000000000000000000000000009", .toNearestOrEven)
+ /* dqnextp017 */ self.nextplus128("1.000000000000000000000000000000009", "1.000000000000000000000000000000010", .toNearestOrEven)
+ /* dqnextp018 */ self.nextplus128("1.000000000000000000000000000000010", "1.000000000000000000000000000000011", .toNearestOrEven)
+ /* dqnextp019 */ self.nextplus128("1.000000000000000000000000000000011", "1.000000000000000000000000000000012", .toNearestOrEven)
+ /* dqnextp021 */ self.nextplus128("-0.9999999999999999999999999999999995", "-0.9999999999999999999999999999999994", .toNearestOrEven)
+ /* dqnextp022 */ self.nextplus128("-0.9999999999999999999999999999999996", "-0.9999999999999999999999999999999995", .toNearestOrEven)
+ /* dqnextp023 */ self.nextplus128("-0.9999999999999999999999999999999997", "-0.9999999999999999999999999999999996", .toNearestOrEven)
+ /* dqnextp024 */ self.nextplus128("-0.9999999999999999999999999999999998", "-0.9999999999999999999999999999999997", .toNearestOrEven)
+ /* dqnextp025 */ self.nextplus128("-0.9999999999999999999999999999999999", "-0.9999999999999999999999999999999998", .toNearestOrEven)
+ /* dqnextp026 */ self.nextplus128("-1.000000000000000000000000000000000", "-0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextp027 */ self.nextplus128("-1.0", "-0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextp028 */ self.nextplus128("-1", "-0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextp029 */ self.nextplus128("-1.000000000000000000000000000000001", "-1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqnextp030 */ self.nextplus128("-1.000000000000000000000000000000002", "-1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextp031 */ self.nextplus128("-1.000000000000000000000000000000003", "-1.000000000000000000000000000000002", .toNearestOrEven)
+ /* dqnextp032 */ self.nextplus128("-1.000000000000000000000000000000004", "-1.000000000000000000000000000000003", .toNearestOrEven)
+ /* dqnextp033 */ self.nextplus128("-1.000000000000000000000000000000005", "-1.000000000000000000000000000000004", .toNearestOrEven)
+ /* dqnextp034 */ self.nextplus128("-1.000000000000000000000000000000006", "-1.000000000000000000000000000000005", .toNearestOrEven)
+ /* dqnextp035 */ self.nextplus128("-1.000000000000000000000000000000007", "-1.000000000000000000000000000000006", .toNearestOrEven)
+ /* dqnextp036 */ self.nextplus128("-1.000000000000000000000000000000008", "-1.000000000000000000000000000000007", .toNearestOrEven)
+ /* dqnextp037 */ self.nextplus128("-1.000000000000000000000000000000009", "-1.000000000000000000000000000000008", .toNearestOrEven)
+ /* dqnextp038 */ self.nextplus128("-1.000000000000000000000000000000010", "-1.000000000000000000000000000000009", .toNearestOrEven)
+ /* dqnextp039 */ self.nextplus128("-1.000000000000000000000000000000011", "-1.000000000000000000000000000000010", .toNearestOrEven)
+ /* dqnextp040 */ self.nextplus128("-1.000000000000000000000000000000012", "-1.000000000000000000000000000000011", .toNearestOrEven)
+ /* dqnextp100 */ self.nextplus128("0", "1E-6176", .toNearestOrEven)
+ /* dqnextp101 */ self.nextplus128("0.00", "1E-6176", .toNearestOrEven)
+ /* dqnextp102 */ self.nextplus128("0E-300", "1E-6176", .toNearestOrEven)
+ /* dqnextp103 */ self.nextplus128("0E+300", "1E-6176", .toNearestOrEven)
+ /* dqnextp104 */ self.nextplus128("0E+30000", "1E-6176", .toNearestOrEven)
+ /* dqnextp105 */ self.nextplus128("-0", "1E-6176", .toNearestOrEven)
+ /* dqnextp106 */ self.nextplus128("-0.00", "1E-6176", .toNearestOrEven)
+ /* dqnextp107 */ self.nextplus128("-0E-300", "1E-6176", .toNearestOrEven)
+ /* dqnextp108 */ self.nextplus128("-0E+300", "1E-6176", .toNearestOrEven)
+ /* dqnextp109 */ self.nextplus128("-0E+30000", "1E-6176", .toNearestOrEven)
+ /* dqnextp150 */ self.nextplus128("Inf", "Infinity", .toNearestOrEven)
+ /* dqnextp151 */ self.nextplus128("-Inf", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextp152 */ self.nextplus128("NaN", "NaN", .toNearestOrEven)
+ /* dqnextp153 */ self.nextplus128("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextp154 */ self.nextplus128("NaN(0x4d)", "NaN(0x4d)", .toNearestOrEven)
+ /* dqnextp155 */ self.nextplus128("sNaN(0x58)", "NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextp156 */ self.nextplus128("-NaN", "-NaN", .toNearestOrEven)
+ /* dqnextp157 */ self.nextplus128("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextp158 */ self.nextplus128("-NaN(0x4d)", "-NaN(0x4d)", .toNearestOrEven)
+ /* dqnextp159 */ self.nextplus128("-sNaN(0x58)", "-NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextp170 */ self.nextplus128("-9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999998E+6144", .toNearestOrEven)
+ /* dqnextp171 */ self.nextplus128("-9.999999999999999999999999999999998E+6144", "-9.999999999999999999999999999999997E+6144", .toNearestOrEven)
+ /* dqnextp172 */ self.nextplus128("-1E-6143", "-9.99999999999999999999999999999999E-6144", .toNearestOrEven)
+ /* dqnextp173 */ self.nextplus128("-1.000000000000000E-6143", "-9.99999999999999999999999999999999E-6144", .toNearestOrEven)
+ /* dqnextp174 */ self.nextplus128("-9E-6176", "-8E-6176", .toNearestOrEven)
+ /* dqnextp175 */ self.nextplus128("-9.9E-6175", "-9.8E-6175", .toNearestOrEven)
+ /* dqnextp176 */ self.nextplus128("-9.99999999999999999999999999999E-6147", "-9.99999999999999999999999999998E-6147", .toNearestOrEven)
+ /* dqnextp177 */ self.nextplus128("-9.99999999999999999999999999999999E-6144", "-9.99999999999999999999999999999998E-6144", .toNearestOrEven)
+ /* dqnextp178 */ self.nextplus128("-9.99999999999999999999999999999998E-6144", "-9.99999999999999999999999999999997E-6144", .toNearestOrEven)
+ /* dqnextp179 */ self.nextplus128("-9.99999999999999999999999999999997E-6144", "-9.99999999999999999999999999999996E-6144", .toNearestOrEven)
+ /* dqnextp180 */ self.nextplus128("-0E-6176", "1E-6176", .toNearestOrEven)
+ /* dqnextp181 */ self.nextplus128("-1E-6176", "-0E-6176", .toNearestOrEven)
+ /* dqnextp182 */ self.nextplus128("-2E-6176", "-1E-6176", .toNearestOrEven)
+ /* dqnextp183 */ self.nextplus128("0E-6176", "1E-6176", .toNearestOrEven)
+ /* dqnextp184 */ self.nextplus128("1E-6176", "2E-6176", .toNearestOrEven)
+ /* dqnextp185 */ self.nextplus128("2E-6176", "3E-6176", .toNearestOrEven)
+ /* dqnextp186 */ self.nextplus128("10E-6176", "1.1E-6175", .toNearestOrEven)
+ /* dqnextp187 */ self.nextplus128("100E-6176", "1.01E-6174", .toNearestOrEven)
+ /* dqnextp188 */ self.nextplus128("100000E-6176", "1.00001E-6171", .toNearestOrEven)
+ /* dqnextp189 */ self.nextplus128("1.00000000000000000000000000000E-6143", "1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextp190 */ self.nextplus128("1.000000000000000000000000000000000E-6143", "1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextp191 */ self.nextplus128("1E-6143", "1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextp192 */ self.nextplus128("9.999999999999999999999999999999998E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextp193 */ self.nextplus128("9.999999999999999999999999999999999E+6144", "Infinity", .toNearestOrEven)
+ }
+
+ private func nextplus128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.nextUp(status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ // MARK: - Nexttoward
+
+ func test_nexttoward64() {
+ /* ddnextt001 */ self.nexttoward64("10", "10", "10", .toNearestOrEven)
+ /* ddnextt002 */ self.nexttoward64("-10", "-10", "-10", .toNearestOrEven)
+ /* ddnextt003 */ self.nexttoward64("1", "10", "1.000000000000001", .toNearestOrEven)
+ /* ddnextt004 */ self.nexttoward64("1", "-10", "0.9999999999999999", .toNearestOrEven)
+ /* ddnextt005 */ self.nexttoward64("-1", "10", "-0.9999999999999999", .toNearestOrEven)
+ /* ddnextt006 */ self.nexttoward64("-1", "-10", "-1.000000000000001", .toNearestOrEven)
+ /* ddnextt007 */ self.nexttoward64("0", "10", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt008 */ self.nexttoward64("0", "-10", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt009 */ self.nexttoward64("9.999999999999999E+384", "+Infinity", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddnextt010 */ self.nexttoward64("-9.999999999999999E+384", "-Infinity", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddnextt011 */ self.nexttoward64("9.999999999999999", "10", "10.00000000000000", .toNearestOrEven)
+ /* ddnextt012 */ self.nexttoward64("10", "9.999999999999999", "9.999999999999999", .toNearestOrEven)
+ /* ddnextt013 */ self.nexttoward64("-9.999999999999999", "-10", "-10.00000000000000", .toNearestOrEven)
+ /* ddnextt014 */ self.nexttoward64("-10", "-9.999999999999999", "-9.999999999999999", .toNearestOrEven)
+ /* ddnextt015 */ self.nexttoward64("9.999999999999998", "10", "9.999999999999999", .toNearestOrEven)
+ /* ddnextt016 */ self.nexttoward64("10", "9.999999999999998", "9.999999999999999", .toNearestOrEven)
+ /* ddnextt017 */ self.nexttoward64("-9.999999999999998", "-10", "-9.999999999999999", .toNearestOrEven)
+ /* ddnextt018 */ self.nexttoward64("-10", "-9.999999999999998", "-9.999999999999999", .toNearestOrEven)
+ /* ddnextt101 */ self.nexttoward64("7", "7", "7", .toNearestOrEven)
+ /* ddnextt102 */ self.nexttoward64("-7", "-7", "-7", .toNearestOrEven)
+ /* ddnextt103 */ self.nexttoward64("75", "75", "75", .toNearestOrEven)
+ /* ddnextt104 */ self.nexttoward64("-75", "-75", "-75", .toNearestOrEven)
+ /* ddnextt105 */ self.nexttoward64("7.50", "7.5", "7.50", .toNearestOrEven)
+ /* ddnextt106 */ self.nexttoward64("-7.50", "-7.50", "-7.50", .toNearestOrEven)
+ /* ddnextt107 */ self.nexttoward64("7.500", "7.5000", "7.500", .toNearestOrEven)
+ /* ddnextt108 */ self.nexttoward64("-7.500", "-7.5", "-7.500", .toNearestOrEven)
+ /* ddnextt111 */ self.nexttoward64("0", "0", "0", .toNearestOrEven)
+ /* ddnextt112 */ self.nexttoward64("-0", "-0", "-0", .toNearestOrEven)
+ /* ddnextt113 */ self.nexttoward64("0E+4", "0", "0E+4", .toNearestOrEven)
+ /* ddnextt114 */ self.nexttoward64("-0E+4", "-0", "-0E+4", .toNearestOrEven)
+ /* ddnextt115 */ self.nexttoward64("0.00000000000", "0.000000000000", "0E-11", .toNearestOrEven)
+ /* ddnextt116 */ self.nexttoward64("-0.00000000000", "-0.00", "-0E-11", .toNearestOrEven)
+ /* ddnextt117 */ self.nexttoward64("0E-141", "0", "0E-141", .toNearestOrEven)
+ /* ddnextt118 */ self.nexttoward64("-0E-141", "-000", "-0E-141", .toNearestOrEven)
+ /* ddnextt121 */ self.nexttoward64("268268268", "268268268", "268268268", .toNearestOrEven)
+ /* ddnextt122 */ self.nexttoward64("-268268268", "-268268268", "-268268268", .toNearestOrEven)
+ /* ddnextt123 */ self.nexttoward64("134134134", "134134134", "134134134", .toNearestOrEven)
+ /* ddnextt124 */ self.nexttoward64("-134134134", "-134134134", "-134134134", .toNearestOrEven)
+ /* ddnextt131 */ self.nexttoward64("9.999999999999999E+384", "9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt132 */ self.nexttoward64("1E-383", "1E-383", "1E-383", .toNearestOrEven)
+ /* ddnextt133 */ self.nexttoward64("1.000000000000000E-383", "1.000000000000000E-383", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddnextt134 */ self.nexttoward64("1E-398", "1E-398", "1E-398", .toNearestOrEven)
+ /* ddnextt135 */ self.nexttoward64("-1E-398", "-1E-398", "-1E-398", .toNearestOrEven)
+ /* ddnextt136 */ self.nexttoward64("-1.000000000000000E-383", "-1.000000000000000E-383", "-1.000000000000000E-383", .toNearestOrEven)
+ /* ddnextt137 */ self.nexttoward64("-1E-383", "-1E-383", "-1E-383", .toNearestOrEven)
+ /* ddnextt138 */ self.nexttoward64("-9.999999999999999E+384", "-9.999999999999999E+384", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt201 */ self.nexttoward64("0.9999999999999995", "Infinity", "0.9999999999999996", .toNearestOrEven)
+ /* ddnextt202 */ self.nexttoward64("0.9999999999999996", "Infinity", "0.9999999999999997", .toNearestOrEven)
+ /* ddnextt203 */ self.nexttoward64("0.9999999999999997", "Infinity", "0.9999999999999998", .toNearestOrEven)
+ /* ddnextt204 */ self.nexttoward64("0.9999999999999998", "Infinity", "0.9999999999999999", .toNearestOrEven)
+ /* ddnextt205 */ self.nexttoward64("0.9999999999999999", "Infinity", "1.000000000000000", .toNearestOrEven)
+ /* ddnextt206 */ self.nexttoward64("1.000000000000000", "Infinity", "1.000000000000001", .toNearestOrEven)
+ /* ddnextt207 */ self.nexttoward64("1.0", "Infinity", "1.000000000000001", .toNearestOrEven)
+ /* ddnextt208 */ self.nexttoward64("1", "Infinity", "1.000000000000001", .toNearestOrEven)
+ /* ddnextt209 */ self.nexttoward64("1.000000000000001", "Infinity", "1.000000000000002", .toNearestOrEven)
+ /* ddnextt210 */ self.nexttoward64("1.000000000000002", "Infinity", "1.000000000000003", .toNearestOrEven)
+ /* ddnextt211 */ self.nexttoward64("1.000000000000003", "Infinity", "1.000000000000004", .toNearestOrEven)
+ /* ddnextt212 */ self.nexttoward64("1.000000000000004", "Infinity", "1.000000000000005", .toNearestOrEven)
+ /* ddnextt213 */ self.nexttoward64("1.000000000000005", "Infinity", "1.000000000000006", .toNearestOrEven)
+ /* ddnextt214 */ self.nexttoward64("1.000000000000006", "Infinity", "1.000000000000007", .toNearestOrEven)
+ /* ddnextt215 */ self.nexttoward64("1.000000000000007", "Infinity", "1.000000000000008", .toNearestOrEven)
+ /* ddnextt216 */ self.nexttoward64("1.000000000000008", "Infinity", "1.000000000000009", .toNearestOrEven)
+ /* ddnextt217 */ self.nexttoward64("1.000000000000009", "Infinity", "1.000000000000010", .toNearestOrEven)
+ /* ddnextt218 */ self.nexttoward64("1.000000000000010", "Infinity", "1.000000000000011", .toNearestOrEven)
+ /* ddnextt219 */ self.nexttoward64("1.000000000000011", "Infinity", "1.000000000000012", .toNearestOrEven)
+ /* ddnextt221 */ self.nexttoward64("-0.9999999999999995", "Infinity", "-0.9999999999999994", .toNearestOrEven)
+ /* ddnextt222 */ self.nexttoward64("-0.9999999999999996", "Infinity", "-0.9999999999999995", .toNearestOrEven)
+ /* ddnextt223 */ self.nexttoward64("-0.9999999999999997", "Infinity", "-0.9999999999999996", .toNearestOrEven)
+ /* ddnextt224 */ self.nexttoward64("-0.9999999999999998", "Infinity", "-0.9999999999999997", .toNearestOrEven)
+ /* ddnextt225 */ self.nexttoward64("-0.9999999999999999", "Infinity", "-0.9999999999999998", .toNearestOrEven)
+ /* ddnextt226 */ self.nexttoward64("-1.000000000000000", "Infinity", "-0.9999999999999999", .toNearestOrEven)
+ /* ddnextt227 */ self.nexttoward64("-1.0", "Infinity", "-0.9999999999999999", .toNearestOrEven)
+ /* ddnextt228 */ self.nexttoward64("-1", "Infinity", "-0.9999999999999999", .toNearestOrEven)
+ /* ddnextt229 */ self.nexttoward64("-1.000000000000001", "Infinity", "-1.000000000000000", .toNearestOrEven)
+ /* ddnextt230 */ self.nexttoward64("-1.000000000000002", "Infinity", "-1.000000000000001", .toNearestOrEven)
+ /* ddnextt231 */ self.nexttoward64("-1.000000000000003", "Infinity", "-1.000000000000002", .toNearestOrEven)
+ /* ddnextt232 */ self.nexttoward64("-1.000000000000004", "Infinity", "-1.000000000000003", .toNearestOrEven)
+ /* ddnextt233 */ self.nexttoward64("-1.000000000000005", "Infinity", "-1.000000000000004", .toNearestOrEven)
+ /* ddnextt234 */ self.nexttoward64("-1.000000000000006", "Infinity", "-1.000000000000005", .toNearestOrEven)
+ /* ddnextt235 */ self.nexttoward64("-1.000000000000007", "Infinity", "-1.000000000000006", .toNearestOrEven)
+ /* ddnextt236 */ self.nexttoward64("-1.000000000000008", "Infinity", "-1.000000000000007", .toNearestOrEven)
+ /* ddnextt237 */ self.nexttoward64("-1.000000000000009", "Infinity", "-1.000000000000008", .toNearestOrEven)
+ /* ddnextt238 */ self.nexttoward64("-1.000000000000010", "Infinity", "-1.000000000000009", .toNearestOrEven)
+ /* ddnextt239 */ self.nexttoward64("-1.000000000000011", "Infinity", "-1.000000000000010", .toNearestOrEven)
+ /* ddnextt240 */ self.nexttoward64("-1.000000000000012", "Infinity", "-1.000000000000011", .toNearestOrEven)
+ /* ddnextt300 */ self.nexttoward64("0", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt301 */ self.nexttoward64("0.00", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt302 */ self.nexttoward64("0E-300", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt303 */ self.nexttoward64("0E+300", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt304 */ self.nexttoward64("0E+30000", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt305 */ self.nexttoward64("-0", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt306 */ self.nexttoward64("-0.00", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt307 */ self.nexttoward64("-0E-300", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt308 */ self.nexttoward64("-0E+300", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt309 */ self.nexttoward64("-0E+30000", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt350 */ self.nexttoward64("Inf", "Infinity", "Infinity", .toNearestOrEven)
+ /* ddnextt351 */ self.nexttoward64("-Inf", "Infinity", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt352 */ self.nexttoward64("NaN", "Infinity", "NaN", .toNearestOrEven)
+ /* ddnextt353 */ self.nexttoward64("sNaN", "Infinity", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt354 */ self.nexttoward64("NaN(0x4d)", "Infinity", "NaN(0x4d)", .toNearestOrEven)
+ /* ddnextt355 */ self.nexttoward64("sNaN(0x58)", "Infinity", "NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt356 */ self.nexttoward64("-NaN", "Infinity", "-NaN", .toNearestOrEven)
+ /* ddnextt357 */ self.nexttoward64("-sNaN", "Infinity", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt358 */ self.nexttoward64("-NaN(0x4d)", "Infinity", "-NaN(0x4d)", .toNearestOrEven)
+ /* ddnextt359 */ self.nexttoward64("-sNaN(0x58)", "Infinity", "-NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt370 */ self.nexttoward64("-9.999999999999999E+384", "Infinity", "-9.999999999999998E+384", .toNearestOrEven)
+ /* ddnextt371 */ self.nexttoward64("-9.999999999999998E+384", "Infinity", "-9.999999999999997E+384", .toNearestOrEven)
+ /* ddnextt372 */ self.nexttoward64("-1E-383", "Infinity", "-9.99999999999999E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt373 */ self.nexttoward64("-1.000000000000000E-383", "Infinity", "-9.99999999999999E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt374 */ self.nexttoward64("-9E-398", "Infinity", "-8E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt375 */ self.nexttoward64("-9.9E-397", "Infinity", "-9.8E-397", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt376 */ self.nexttoward64("-9.99999999999E-387", "Infinity", "-9.99999999998E-387", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt377 */ self.nexttoward64("-9.99999999999999E-384", "Infinity", "-9.99999999999998E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt378 */ self.nexttoward64("-9.99999999999998E-384", "Infinity", "-9.99999999999997E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt379 */ self.nexttoward64("-9.99999999999997E-384", "Infinity", "-9.99999999999996E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt380 */ self.nexttoward64("-0E-398", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt381 */ self.nexttoward64("-1E-398", "Infinity", "-0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt382 */ self.nexttoward64("-2E-398", "Infinity", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt383 */ self.nexttoward64("0E-398", "Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt384 */ self.nexttoward64("1E-398", "Infinity", "2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt385 */ self.nexttoward64("2E-398", "Infinity", "3E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt386 */ self.nexttoward64("10E-398", "Infinity", "1.1E-397", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt387 */ self.nexttoward64("100E-398", "Infinity", "1.01E-396", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt388 */ self.nexttoward64("100000E-398", "Infinity", "1.00001E-393", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt389 */ self.nexttoward64("1.00000000000E-383", "Infinity", "1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextt390 */ self.nexttoward64("1.000000000000000E-383", "Infinity", "1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextt391 */ self.nexttoward64("1E-383", "Infinity", "1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextt392 */ self.nexttoward64("9.999999999999997E+384", "Infinity", "9.999999999999998E+384", .toNearestOrEven)
+ /* ddnextt393 */ self.nexttoward64("9.999999999999998E+384", "Infinity", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt394 */ self.nexttoward64("9.999999999999999E+384", "Infinity", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddnextt401 */ self.nexttoward64("0.9999999999999995", "-Infinity", "0.9999999999999994", .toNearestOrEven)
+ /* ddnextt402 */ self.nexttoward64("0.9999999999999996", "-Infinity", "0.9999999999999995", .toNearestOrEven)
+ /* ddnextt403 */ self.nexttoward64("0.9999999999999997", "-Infinity", "0.9999999999999996", .toNearestOrEven)
+ /* ddnextt404 */ self.nexttoward64("0.9999999999999998", "-Infinity", "0.9999999999999997", .toNearestOrEven)
+ /* ddnextt405 */ self.nexttoward64("0.9999999999999999", "-Infinity", "0.9999999999999998", .toNearestOrEven)
+ /* ddnextt406 */ self.nexttoward64("1.000000000000000", "-Infinity", "0.9999999999999999", .toNearestOrEven)
+ /* ddnextt407 */ self.nexttoward64("1.0", "-Infinity", "0.9999999999999999", .toNearestOrEven)
+ /* ddnextt408 */ self.nexttoward64("1", "-Infinity", "0.9999999999999999", .toNearestOrEven)
+ /* ddnextt409 */ self.nexttoward64("1.000000000000001", "-Infinity", "1.000000000000000", .toNearestOrEven)
+ /* ddnextt410 */ self.nexttoward64("1.000000000000002", "-Infinity", "1.000000000000001", .toNearestOrEven)
+ /* ddnextt411 */ self.nexttoward64("1.000000000000003", "-Infinity", "1.000000000000002", .toNearestOrEven)
+ /* ddnextt412 */ self.nexttoward64("1.000000000000004", "-Infinity", "1.000000000000003", .toNearestOrEven)
+ /* ddnextt413 */ self.nexttoward64("1.000000000000005", "-Infinity", "1.000000000000004", .toNearestOrEven)
+ /* ddnextt414 */ self.nexttoward64("1.000000000000006", "-Infinity", "1.000000000000005", .toNearestOrEven)
+ /* ddnextt415 */ self.nexttoward64("1.000000000000007", "-Infinity", "1.000000000000006", .toNearestOrEven)
+ /* ddnextt416 */ self.nexttoward64("1.000000000000008", "-Infinity", "1.000000000000007", .toNearestOrEven)
+ /* ddnextt417 */ self.nexttoward64("1.000000000000009", "-Infinity", "1.000000000000008", .toNearestOrEven)
+ /* ddnextt418 */ self.nexttoward64("1.000000000000010", "-Infinity", "1.000000000000009", .toNearestOrEven)
+ /* ddnextt419 */ self.nexttoward64("1.000000000000011", "-Infinity", "1.000000000000010", .toNearestOrEven)
+ /* ddnextt420 */ self.nexttoward64("1.000000000000012", "-Infinity", "1.000000000000011", .toNearestOrEven)
+ /* ddnextt421 */ self.nexttoward64("-0.9999999999999995", "-Infinity", "-0.9999999999999996", .toNearestOrEven)
+ /* ddnextt422 */ self.nexttoward64("-0.9999999999999996", "-Infinity", "-0.9999999999999997", .toNearestOrEven)
+ /* ddnextt423 */ self.nexttoward64("-0.9999999999999997", "-Infinity", "-0.9999999999999998", .toNearestOrEven)
+ /* ddnextt424 */ self.nexttoward64("-0.9999999999999998", "-Infinity", "-0.9999999999999999", .toNearestOrEven)
+ /* ddnextt425 */ self.nexttoward64("-0.9999999999999999", "-Infinity", "-1.000000000000000", .toNearestOrEven)
+ /* ddnextt426 */ self.nexttoward64("-1.000000000000000", "-Infinity", "-1.000000000000001", .toNearestOrEven)
+ /* ddnextt427 */ self.nexttoward64("-1.0", "-Infinity", "-1.000000000000001", .toNearestOrEven)
+ /* ddnextt428 */ self.nexttoward64("-1", "-Infinity", "-1.000000000000001", .toNearestOrEven)
+ /* ddnextt429 */ self.nexttoward64("-1.000000000000001", "-Infinity", "-1.000000000000002", .toNearestOrEven)
+ /* ddnextt430 */ self.nexttoward64("-1.000000000000002", "-Infinity", "-1.000000000000003", .toNearestOrEven)
+ /* ddnextt431 */ self.nexttoward64("-1.000000000000003", "-Infinity", "-1.000000000000004", .toNearestOrEven)
+ /* ddnextt432 */ self.nexttoward64("-1.000000000000004", "-Infinity", "-1.000000000000005", .toNearestOrEven)
+ /* ddnextt433 */ self.nexttoward64("-1.000000000000005", "-Infinity", "-1.000000000000006", .toNearestOrEven)
+ /* ddnextt434 */ self.nexttoward64("-1.000000000000006", "-Infinity", "-1.000000000000007", .toNearestOrEven)
+ /* ddnextt435 */ self.nexttoward64("-1.000000000000007", "-Infinity", "-1.000000000000008", .toNearestOrEven)
+ /* ddnextt436 */ self.nexttoward64("-1.000000000000008", "-Infinity", "-1.000000000000009", .toNearestOrEven)
+ /* ddnextt437 */ self.nexttoward64("-1.000000000000009", "-Infinity", "-1.000000000000010", .toNearestOrEven)
+ /* ddnextt438 */ self.nexttoward64("-1.000000000000010", "-Infinity", "-1.000000000000011", .toNearestOrEven)
+ /* ddnextt439 */ self.nexttoward64("-1.000000000000011", "-Infinity", "-1.000000000000012", .toNearestOrEven)
+ /* ddnextt500 */ self.nexttoward64("-0", "-Infinity", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt501 */ self.nexttoward64("0", "-Infinity", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt502 */ self.nexttoward64("0.00", "-Infinity", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt503 */ self.nexttoward64("-0.00", "-Infinity", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt504 */ self.nexttoward64("0E-300", "-Infinity", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt505 */ self.nexttoward64("0E+300", "-Infinity", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt506 */ self.nexttoward64("0E+30000", "-Infinity", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt507 */ self.nexttoward64("-0E+30000", "-Infinity", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt550 */ self.nexttoward64("Inf", "-Infinity", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt551 */ self.nexttoward64("-Inf", "-Infinity", "-Infinity", .toNearestOrEven)
+ /* ddnextt552 */ self.nexttoward64("NaN", "-Infinity", "NaN", .toNearestOrEven)
+ /* ddnextt553 */ self.nexttoward64("sNaN", "-Infinity", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt554 */ self.nexttoward64("NaN(0x4d)", "-Infinity", "NaN(0x4d)", .toNearestOrEven)
+ /* ddnextt555 */ self.nexttoward64("sNaN(0x58)", "-Infinity", "NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt556 */ self.nexttoward64("-NaN", "-Infinity", "-NaN", .toNearestOrEven)
+ /* ddnextt557 */ self.nexttoward64("-sNaN", "-Infinity", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt558 */ self.nexttoward64("-NaN(0x4d)", "-Infinity", "-NaN(0x4d)", .toNearestOrEven)
+ /* ddnextt559 */ self.nexttoward64("-sNaN(0x58)", "-Infinity", "-NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt670 */ self.nexttoward64("9.999999999999999E+384", "-Infinity", "9.999999999999998E+384", .toNearestOrEven)
+ /* ddnextt671 */ self.nexttoward64("9.999999999999998E+384", "-Infinity", "9.999999999999997E+384", .toNearestOrEven)
+ /* ddnextt672 */ self.nexttoward64("1E-383", "-Infinity", "9.99999999999999E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt673 */ self.nexttoward64("1.000000000000000E-383", "-Infinity", "9.99999999999999E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt674 */ self.nexttoward64("9E-398", "-Infinity", "8E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt675 */ self.nexttoward64("9.9E-397", "-Infinity", "9.8E-397", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt676 */ self.nexttoward64("9.99999999999E-387", "-Infinity", "9.99999999998E-387", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt677 */ self.nexttoward64("9.99999999999999E-384", "-Infinity", "9.99999999999998E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt678 */ self.nexttoward64("9.99999999999998E-384", "-Infinity", "9.99999999999997E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt679 */ self.nexttoward64("9.99999999999997E-384", "-Infinity", "9.99999999999996E-384", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt680 */ self.nexttoward64("0E-398", "-Infinity", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt681 */ self.nexttoward64("1E-398", "-Infinity", "0E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt682 */ self.nexttoward64("2E-398", "-Infinity", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt683 */ self.nexttoward64("-0E-398", "-Infinity", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt684 */ self.nexttoward64("-1E-398", "-Infinity", "-2E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt685 */ self.nexttoward64("-2E-398", "-Infinity", "-3E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt686 */ self.nexttoward64("-10E-398", "-Infinity", "-1.1E-397", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt687 */ self.nexttoward64("-100E-398", "-Infinity", "-1.01E-396", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt688 */ self.nexttoward64("-100000E-398", "-Infinity", "-1.00001E-393", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt689 */ self.nexttoward64("-1.00000000000E-383", "-Infinity", "-1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextt690 */ self.nexttoward64("-1.000000000000000E-383", "-Infinity", "-1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextt691 */ self.nexttoward64("-1E-383", "-Infinity", "-1.000000000000001E-383", .toNearestOrEven)
+ /* ddnextt692 */ self.nexttoward64("-9.999999999999998E+384", "-Infinity", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt693 */ self.nexttoward64("-9.999999999999999E+384", "-Infinity", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* ddnextt780 */ self.nexttoward64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddnextt781 */ self.nexttoward64("-Inf", "-1000", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt782 */ self.nexttoward64("-Inf", "-1", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt783 */ self.nexttoward64("-Inf", "-0", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt784 */ self.nexttoward64("-Inf", "0", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt785 */ self.nexttoward64("-Inf", "1", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt786 */ self.nexttoward64("-Inf", "1000", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt787 */ self.nexttoward64("-1000", "-Inf", "-1000.000000000001", .toNearestOrEven)
+ /* ddnextt788 */ self.nexttoward64("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* ddnextt789 */ self.nexttoward64("-1", "-Inf", "-1.000000000000001", .toNearestOrEven)
+ /* ddnextt790 */ self.nexttoward64("-0", "-Inf", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt791 */ self.nexttoward64("0", "-Inf", "-1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt792 */ self.nexttoward64("1", "-Inf", "0.9999999999999999", .toNearestOrEven)
+ /* ddnextt793 */ self.nexttoward64("1000", "-Inf", "999.9999999999999", .toNearestOrEven)
+ /* ddnextt794 */ self.nexttoward64("Inf", "-Inf", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt800 */ self.nexttoward64("Inf", "-Inf", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt801 */ self.nexttoward64("Inf", "-1000", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt802 */ self.nexttoward64("Inf", "-1", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt803 */ self.nexttoward64("Inf", "-0", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt804 */ self.nexttoward64("Inf", "0", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt805 */ self.nexttoward64("Inf", "1", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt806 */ self.nexttoward64("Inf", "1000", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt807 */ self.nexttoward64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddnextt808 */ self.nexttoward64("-1000", "Inf", "-999.9999999999999", .toNearestOrEven)
+ /* ddnextt809 */ self.nexttoward64("-Inf", "Inf", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddnextt810 */ self.nexttoward64("-1", "Inf", "-0.9999999999999999", .toNearestOrEven)
+ /* ddnextt811 */ self.nexttoward64("-0", "Inf", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt812 */ self.nexttoward64("0", "Inf", "1E-398", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* ddnextt813 */ self.nexttoward64("1", "Inf", "1.000000000000001", .toNearestOrEven)
+ /* ddnextt814 */ self.nexttoward64("1000", "Inf", "1000.000000000001", .toNearestOrEven)
+ /* ddnextt815 */ self.nexttoward64("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* ddnextt821 */ self.nexttoward64("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* ddnextt822 */ self.nexttoward64("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* ddnextt823 */ self.nexttoward64("NaN", "-1", "NaN", .toNearestOrEven)
+ /* ddnextt824 */ self.nexttoward64("NaN", "-0", "NaN", .toNearestOrEven)
+ /* ddnextt825 */ self.nexttoward64("NaN", "0", "NaN", .toNearestOrEven)
+ /* ddnextt826 */ self.nexttoward64("NaN", "1", "NaN", .toNearestOrEven)
+ /* ddnextt827 */ self.nexttoward64("NaN", "1000", "NaN", .toNearestOrEven)
+ /* ddnextt828 */ self.nexttoward64("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* ddnextt829 */ self.nexttoward64("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* ddnextt830 */ self.nexttoward64("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddnextt831 */ self.nexttoward64("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddnextt832 */ self.nexttoward64("-1", "NaN", "NaN", .toNearestOrEven)
+ /* ddnextt833 */ self.nexttoward64("-0", "NaN", "NaN", .toNearestOrEven)
+ /* ddnextt834 */ self.nexttoward64("0", "NaN", "NaN", .toNearestOrEven)
+ /* ddnextt835 */ self.nexttoward64("1", "NaN", "NaN", .toNearestOrEven)
+ /* ddnextt836 */ self.nexttoward64("1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddnextt837 */ self.nexttoward64("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddnextt841 */ self.nexttoward64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt842 */ self.nexttoward64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt843 */ self.nexttoward64("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt844 */ self.nexttoward64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt845 */ self.nexttoward64("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt846 */ self.nexttoward64("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt847 */ self.nexttoward64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt848 */ self.nexttoward64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt849 */ self.nexttoward64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt850 */ self.nexttoward64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt851 */ self.nexttoward64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt852 */ self.nexttoward64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt853 */ self.nexttoward64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt854 */ self.nexttoward64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt855 */ self.nexttoward64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt856 */ self.nexttoward64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt857 */ self.nexttoward64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt858 */ self.nexttoward64("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt859 */ self.nexttoward64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt861 */ self.nexttoward64("NaN(0x1)", "-Inf", "NaN(0x1)", .toNearestOrEven)
+ /* ddnextt862 */ self.nexttoward64("+NaN(0x2)", "-1000", "NaN(0x2)", .toNearestOrEven)
+ /* ddnextt863 */ self.nexttoward64("NaN(0x3)", "1000", "NaN(0x3)", .toNearestOrEven)
+ /* ddnextt864 */ self.nexttoward64("NaN(0x4)", "Inf", "NaN(0x4)", .toNearestOrEven)
+ /* ddnextt865 */ self.nexttoward64("NaN(0x5)", "+NaN(0x6)", "NaN(0x5)", .toNearestOrEven)
+ /* ddnextt866 */ self.nexttoward64("-Inf", "NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* ddnextt867 */ self.nexttoward64("-1000", "NaN(0x8)", "NaN(0x8)", .toNearestOrEven)
+ /* ddnextt868 */ self.nexttoward64("1000", "NaN(0x9)", "NaN(0x9)", .toNearestOrEven)
+ /* ddnextt869 */ self.nexttoward64("Inf", "+NaN(0xa)", "NaN(0xa)", .toNearestOrEven)
+ /* ddnextt871 */ self.nexttoward64("sNaN(0xb)", "-Inf", "NaN(0xb)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt872 */ self.nexttoward64("sNaN(0xc)", "-1000", "NaN(0xc)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt873 */ self.nexttoward64("sNaN(0xd)", "1000", "NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt874 */ self.nexttoward64("sNaN(0xe)", "NaN(0x11)", "NaN(0xe)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt875 */ self.nexttoward64("sNaN(0xf)", "sNaN(0x12)", "NaN(0xf)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt876 */ self.nexttoward64("NaN(0x10)", "sNaN(0x13)", "NaN(0x13)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt877 */ self.nexttoward64("-Inf", "+sNaN(0x14)", "NaN(0x14)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt878 */ self.nexttoward64("-1000", "sNaN(0x15)", "NaN(0x15)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt879 */ self.nexttoward64("1000", "sNaN(0x16)", "NaN(0x16)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt880 */ self.nexttoward64("Inf", "sNaN(0x17)", "NaN(0x17)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt881 */ self.nexttoward64("+NaN(0x19)", "+sNaN(0x18)", "NaN(0x18)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt882 */ self.nexttoward64("-NaN(0x1a)", "NaN(0x1c)", "-NaN(0x1a)", .toNearestOrEven)
+ /* ddnextt883 */ self.nexttoward64("-sNaN(0x1b)", "sNaN(0x1d)", "-NaN(0x1b)", .toNearestOrEven, .isInvalidOperation)
+ /* ddnextt884 */ self.nexttoward64("1000", "-NaN(0x1e)", "-NaN(0x1e)", .toNearestOrEven)
+ /* ddnextt885 */ self.nexttoward64("1000", "-sNaN(0x1f)", "-NaN(0x1f)", .toNearestOrEven, .isInvalidOperation)
+ }
+
+ private func nexttoward64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = self.nextToward(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_nexttoward128() {
+ /* dqnextt001 */ self.nexttoward128("10", "10", "10", .toNearestOrEven)
+ /* dqnextt002 */ self.nexttoward128("-10", "-10", "-10", .toNearestOrEven)
+ /* dqnextt003 */ self.nexttoward128("1", "10", "1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt004 */ self.nexttoward128("1", "-10", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt005 */ self.nexttoward128("-1", "10", "-0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt006 */ self.nexttoward128("-1", "-10", "-1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt007 */ self.nexttoward128("0", "10", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt008 */ self.nexttoward128("0", "-10", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt009 */ self.nexttoward128("9.999999999999999999999999999999999E+6144", "+Infinity", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqnextt010 */ self.nexttoward128("-9.999999999999999999999999999999999E+6144", "-Infinity", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqnextt011 */ self.nexttoward128("9.999999999999999999999999999999999", "10", "10.00000000000000000000000000000000", .toNearestOrEven)
+ /* dqnextt012 */ self.nexttoward128("10", "9.999999999999999999999999999999999", "9.999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt013 */ self.nexttoward128("-9.999999999999999999999999999999999", "-10", "-10.00000000000000000000000000000000", .toNearestOrEven)
+ /* dqnextt014 */ self.nexttoward128("-10", "-9.999999999999999999999999999999999", "-9.999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt015 */ self.nexttoward128("9.999999999999999999999999999999998", "10", "9.999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt016 */ self.nexttoward128("10", "9.999999999999999999999999999999998", "9.999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt017 */ self.nexttoward128("-9.999999999999999999999999999999998", "-10", "-9.999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt018 */ self.nexttoward128("-10", "-9.999999999999999999999999999999998", "-9.999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt101 */ self.nexttoward128("7", "7", "7", .toNearestOrEven)
+ /* dqnextt102 */ self.nexttoward128("-7", "-7", "-7", .toNearestOrEven)
+ /* dqnextt103 */ self.nexttoward128("75", "75", "75", .toNearestOrEven)
+ /* dqnextt104 */ self.nexttoward128("-75", "-75", "-75", .toNearestOrEven)
+ /* dqnextt105 */ self.nexttoward128("7.50", "7.5", "7.50", .toNearestOrEven)
+ /* dqnextt106 */ self.nexttoward128("-7.50", "-7.50", "-7.50", .toNearestOrEven)
+ /* dqnextt107 */ self.nexttoward128("7.500", "7.5000", "7.500", .toNearestOrEven)
+ /* dqnextt108 */ self.nexttoward128("-7.500", "-7.5", "-7.500", .toNearestOrEven)
+ /* dqnextt111 */ self.nexttoward128("0", "0", "0", .toNearestOrEven)
+ /* dqnextt112 */ self.nexttoward128("-0", "-0", "-0", .toNearestOrEven)
+ /* dqnextt113 */ self.nexttoward128("0E+4", "0", "0E+4", .toNearestOrEven)
+ /* dqnextt114 */ self.nexttoward128("-0E+4", "-0", "-0E+4", .toNearestOrEven)
+ /* dqnextt115 */ self.nexttoward128("0.00000000000", "0.000000000000", "0E-11", .toNearestOrEven)
+ /* dqnextt116 */ self.nexttoward128("-0.00000000000", "-0.00", "-0E-11", .toNearestOrEven)
+ /* dqnextt117 */ self.nexttoward128("0E-141", "0", "0E-141", .toNearestOrEven)
+ /* dqnextt118 */ self.nexttoward128("-0E-141", "-000", "-0E-141", .toNearestOrEven)
+ /* dqnextt121 */ self.nexttoward128("268268268", "268268268", "268268268", .toNearestOrEven)
+ /* dqnextt122 */ self.nexttoward128("-268268268", "-268268268", "-268268268", .toNearestOrEven)
+ /* dqnextt123 */ self.nexttoward128("134134134", "134134134", "134134134", .toNearestOrEven)
+ /* dqnextt124 */ self.nexttoward128("-134134134", "-134134134", "-134134134", .toNearestOrEven)
+ /* dqnextt131 */ self.nexttoward128("9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt132 */ self.nexttoward128("1E-6143", "1E-6143", "1E-6143", .toNearestOrEven)
+ /* dqnextt133 */ self.nexttoward128("1.000000000000000000000000000000000E-6143", "1.000000000000000000000000000000000E-6143", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqnextt134 */ self.nexttoward128("1E-6176", "1E-6176", "1E-6176", .toNearestOrEven)
+ /* dqnextt135 */ self.nexttoward128("-1E-6176", "-1E-6176", "-1E-6176", .toNearestOrEven)
+ /* dqnextt136 */ self.nexttoward128("-1.000000000000000000000000000000000E-6143", "-1.000000000000000000000000000000000E-6143", "-1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqnextt137 */ self.nexttoward128("-1E-6143", "-1E-6143", "-1E-6143", .toNearestOrEven)
+ /* dqnextt138 */ self.nexttoward128("-9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt201 */ self.nexttoward128("0.9999999999999999999999999999999995", "Infinity", "0.9999999999999999999999999999999996", .toNearestOrEven)
+ /* dqnextt202 */ self.nexttoward128("0.9999999999999999999999999999999996", "Infinity", "0.9999999999999999999999999999999997", .toNearestOrEven)
+ /* dqnextt203 */ self.nexttoward128("0.9999999999999999999999999999999997", "Infinity", "0.9999999999999999999999999999999998", .toNearestOrEven)
+ /* dqnextt204 */ self.nexttoward128("0.9999999999999999999999999999999998", "Infinity", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt205 */ self.nexttoward128("0.9999999999999999999999999999999999", "Infinity", "1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqnextt206 */ self.nexttoward128("1.000000000000000000000000000000000", "Infinity", "1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt207 */ self.nexttoward128("1.0", "Infinity", "1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt208 */ self.nexttoward128("1", "Infinity", "1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt209 */ self.nexttoward128("1.000000000000000000000000000000001", "Infinity", "1.000000000000000000000000000000002", .toNearestOrEven)
+ /* dqnextt210 */ self.nexttoward128("1.000000000000000000000000000000002", "Infinity", "1.000000000000000000000000000000003", .toNearestOrEven)
+ /* dqnextt211 */ self.nexttoward128("1.000000000000000000000000000000003", "Infinity", "1.000000000000000000000000000000004", .toNearestOrEven)
+ /* dqnextt212 */ self.nexttoward128("1.000000000000000000000000000000004", "Infinity", "1.000000000000000000000000000000005", .toNearestOrEven)
+ /* dqnextt213 */ self.nexttoward128("1.000000000000000000000000000000005", "Infinity", "1.000000000000000000000000000000006", .toNearestOrEven)
+ /* dqnextt214 */ self.nexttoward128("1.000000000000000000000000000000006", "Infinity", "1.000000000000000000000000000000007", .toNearestOrEven)
+ /* dqnextt215 */ self.nexttoward128("1.000000000000000000000000000000007", "Infinity", "1.000000000000000000000000000000008", .toNearestOrEven)
+ /* dqnextt216 */ self.nexttoward128("1.000000000000000000000000000000008", "Infinity", "1.000000000000000000000000000000009", .toNearestOrEven)
+ /* dqnextt217 */ self.nexttoward128("1.000000000000000000000000000000009", "Infinity", "1.000000000000000000000000000000010", .toNearestOrEven)
+ /* dqnextt218 */ self.nexttoward128("1.000000000000000000000000000000010", "Infinity", "1.000000000000000000000000000000011", .toNearestOrEven)
+ /* dqnextt219 */ self.nexttoward128("1.000000000000000000000000000000011", "Infinity", "1.000000000000000000000000000000012", .toNearestOrEven)
+ /* dqnextt221 */ self.nexttoward128("-0.9999999999999999999999999999999995", "Infinity", "-0.9999999999999999999999999999999994", .toNearestOrEven)
+ /* dqnextt222 */ self.nexttoward128("-0.9999999999999999999999999999999996", "Infinity", "-0.9999999999999999999999999999999995", .toNearestOrEven)
+ /* dqnextt223 */ self.nexttoward128("-0.9999999999999999999999999999999997", "Infinity", "-0.9999999999999999999999999999999996", .toNearestOrEven)
+ /* dqnextt224 */ self.nexttoward128("-0.9999999999999999999999999999999998", "Infinity", "-0.9999999999999999999999999999999997", .toNearestOrEven)
+ /* dqnextt225 */ self.nexttoward128("-0.9999999999999999999999999999999999", "Infinity", "-0.9999999999999999999999999999999998", .toNearestOrEven)
+ /* dqnextt226 */ self.nexttoward128("-1.000000000000000000000000000000000", "Infinity", "-0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt227 */ self.nexttoward128("-1.0", "Infinity", "-0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt228 */ self.nexttoward128("-1", "Infinity", "-0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt229 */ self.nexttoward128("-1.000000000000000000000000000000001", "Infinity", "-1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqnextt230 */ self.nexttoward128("-1.000000000000000000000000000000002", "Infinity", "-1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt231 */ self.nexttoward128("-1.000000000000000000000000000000003", "Infinity", "-1.000000000000000000000000000000002", .toNearestOrEven)
+ /* dqnextt232 */ self.nexttoward128("-1.000000000000000000000000000000004", "Infinity", "-1.000000000000000000000000000000003", .toNearestOrEven)
+ /* dqnextt233 */ self.nexttoward128("-1.000000000000000000000000000000005", "Infinity", "-1.000000000000000000000000000000004", .toNearestOrEven)
+ /* dqnextt234 */ self.nexttoward128("-1.000000000000000000000000000000006", "Infinity", "-1.000000000000000000000000000000005", .toNearestOrEven)
+ /* dqnextt235 */ self.nexttoward128("-1.000000000000000000000000000000007", "Infinity", "-1.000000000000000000000000000000006", .toNearestOrEven)
+ /* dqnextt236 */ self.nexttoward128("-1.000000000000000000000000000000008", "Infinity", "-1.000000000000000000000000000000007", .toNearestOrEven)
+ /* dqnextt237 */ self.nexttoward128("-1.000000000000000000000000000000009", "Infinity", "-1.000000000000000000000000000000008", .toNearestOrEven)
+ /* dqnextt238 */ self.nexttoward128("-1.000000000000000000000000000000010", "Infinity", "-1.000000000000000000000000000000009", .toNearestOrEven)
+ /* dqnextt239 */ self.nexttoward128("-1.000000000000000000000000000000011", "Infinity", "-1.000000000000000000000000000000010", .toNearestOrEven)
+ /* dqnextt240 */ self.nexttoward128("-1.000000000000000000000000000000012", "Infinity", "-1.000000000000000000000000000000011", .toNearestOrEven)
+ /* dqnextt300 */ self.nexttoward128("0", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt301 */ self.nexttoward128("0.00", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt302 */ self.nexttoward128("0E-300", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt303 */ self.nexttoward128("0E+300", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt304 */ self.nexttoward128("0E+30000", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt305 */ self.nexttoward128("-0", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt306 */ self.nexttoward128("-0.00", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt307 */ self.nexttoward128("-0E-300", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt308 */ self.nexttoward128("-0E+300", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt309 */ self.nexttoward128("-0E+30000", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt350 */ self.nexttoward128("Inf", "Infinity", "Infinity", .toNearestOrEven)
+ /* dqnextt351 */ self.nexttoward128("-Inf", "Infinity", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt352 */ self.nexttoward128("NaN", "Infinity", "NaN", .toNearestOrEven)
+ /* dqnextt353 */ self.nexttoward128("sNaN", "Infinity", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt354 */ self.nexttoward128("NaN(0x4d)", "Infinity", "NaN(0x4d)", .toNearestOrEven)
+ /* dqnextt355 */ self.nexttoward128("sNaN(0x58)", "Infinity", "NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt356 */ self.nexttoward128("-NaN", "Infinity", "-NaN", .toNearestOrEven)
+ /* dqnextt357 */ self.nexttoward128("-sNaN", "Infinity", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt358 */ self.nexttoward128("-NaN(0x4d)", "Infinity", "-NaN(0x4d)", .toNearestOrEven)
+ /* dqnextt359 */ self.nexttoward128("-sNaN(0x58)", "Infinity", "-NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt370 */ self.nexttoward128("-9.999999999999999999999999999999999E+6144", "Infinity", "-9.999999999999999999999999999999998E+6144", .toNearestOrEven)
+ /* dqnextt371 */ self.nexttoward128("-9.999999999999999999999999999999998E+6144", "Infinity", "-9.999999999999999999999999999999997E+6144", .toNearestOrEven)
+ /* dqnextt372 */ self.nexttoward128("-1E-6143", "Infinity", "-9.99999999999999999999999999999999E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt373 */ self.nexttoward128("-1.000000000000000E-6143", "Infinity", "-9.99999999999999999999999999999999E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt374 */ self.nexttoward128("-9E-6176", "Infinity", "-8E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt375 */ self.nexttoward128("-9.9E-6175", "Infinity", "-9.8E-6175", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt376 */ self.nexttoward128("-9.99999999999999999999999999999E-6147", "Infinity", "-9.99999999999999999999999999998E-6147", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt377 */ self.nexttoward128("-9.99999999999999999999999999999999E-6144", "Infinity", "-9.99999999999999999999999999999998E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt378 */ self.nexttoward128("-9.99999999999999999999999999999998E-6144", "Infinity", "-9.99999999999999999999999999999997E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt379 */ self.nexttoward128("-9.99999999999999999999999999999997E-6144", "Infinity", "-9.99999999999999999999999999999996E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt380 */ self.nexttoward128("-0E-6176", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt381 */ self.nexttoward128("-1E-6176", "Infinity", "-0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt382 */ self.nexttoward128("-2E-6176", "Infinity", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt383 */ self.nexttoward128("0E-6176", "Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt384 */ self.nexttoward128("1E-6176", "Infinity", "2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt385 */ self.nexttoward128("2E-6176", "Infinity", "3E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt386 */ self.nexttoward128("10E-6176", "Infinity", "1.1E-6175", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt387 */ self.nexttoward128("100E-6176", "Infinity", "1.01E-6174", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt388 */ self.nexttoward128("100000E-6176", "Infinity", "1.00001E-6171", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt389 */ self.nexttoward128("1.00000000000000000000000000000E-6143", "Infinity", "1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextt390 */ self.nexttoward128("1.000000000000000000000000000000000E-6143", "Infinity", "1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextt391 */ self.nexttoward128("1E-6143", "Infinity", "1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextt392 */ self.nexttoward128("9.999999999999999999999999999999997E+6144", "Infinity", "9.999999999999999999999999999999998E+6144", .toNearestOrEven)
+ /* dqnextt393 */ self.nexttoward128("9.999999999999999999999999999999998E+6144", "Infinity", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt394 */ self.nexttoward128("9.999999999999999999999999999999999E+6144", "Infinity", "Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqnextt401 */ self.nexttoward128("0.9999999999999999999999999999999995", "-Infinity", "0.9999999999999999999999999999999994", .toNearestOrEven)
+ /* dqnextt402 */ self.nexttoward128("0.9999999999999999999999999999999996", "-Infinity", "0.9999999999999999999999999999999995", .toNearestOrEven)
+ /* dqnextt403 */ self.nexttoward128("0.9999999999999999999999999999999997", "-Infinity", "0.9999999999999999999999999999999996", .toNearestOrEven)
+ /* dqnextt404 */ self.nexttoward128("0.9999999999999999999999999999999998", "-Infinity", "0.9999999999999999999999999999999997", .toNearestOrEven)
+ /* dqnextt405 */ self.nexttoward128("0.9999999999999999999999999999999999", "-Infinity", "0.9999999999999999999999999999999998", .toNearestOrEven)
+ /* dqnextt406 */ self.nexttoward128("1.000000000000000000000000000000000", "-Infinity", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt407 */ self.nexttoward128("1.0", "-Infinity", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt408 */ self.nexttoward128("1", "-Infinity", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt409 */ self.nexttoward128("1.000000000000000000000000000000001", "-Infinity", "1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqnextt410 */ self.nexttoward128("1.000000000000000000000000000000002", "-Infinity", "1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt411 */ self.nexttoward128("1.000000000000000000000000000000003", "-Infinity", "1.000000000000000000000000000000002", .toNearestOrEven)
+ /* dqnextt412 */ self.nexttoward128("1.000000000000000000000000000000004", "-Infinity", "1.000000000000000000000000000000003", .toNearestOrEven)
+ /* dqnextt413 */ self.nexttoward128("1.000000000000000000000000000000005", "-Infinity", "1.000000000000000000000000000000004", .toNearestOrEven)
+ /* dqnextt414 */ self.nexttoward128("1.000000000000000000000000000000006", "-Infinity", "1.000000000000000000000000000000005", .toNearestOrEven)
+ /* dqnextt415 */ self.nexttoward128("1.000000000000000000000000000000007", "-Infinity", "1.000000000000000000000000000000006", .toNearestOrEven)
+ /* dqnextt416 */ self.nexttoward128("1.000000000000000000000000000000008", "-Infinity", "1.000000000000000000000000000000007", .toNearestOrEven)
+ /* dqnextt417 */ self.nexttoward128("1.000000000000000000000000000000009", "-Infinity", "1.000000000000000000000000000000008", .toNearestOrEven)
+ /* dqnextt418 */ self.nexttoward128("1.000000000000000000000000000000010", "-Infinity", "1.000000000000000000000000000000009", .toNearestOrEven)
+ /* dqnextt419 */ self.nexttoward128("1.000000000000000000000000000000011", "-Infinity", "1.000000000000000000000000000000010", .toNearestOrEven)
+ /* dqnextt420 */ self.nexttoward128("1.000000000000000000000000000000012", "-Infinity", "1.000000000000000000000000000000011", .toNearestOrEven)
+ /* dqnextt421 */ self.nexttoward128("-0.9999999999999999999999999999999995", "-Infinity", "-0.9999999999999999999999999999999996", .toNearestOrEven)
+ /* dqnextt422 */ self.nexttoward128("-0.9999999999999999999999999999999996", "-Infinity", "-0.9999999999999999999999999999999997", .toNearestOrEven)
+ /* dqnextt423 */ self.nexttoward128("-0.9999999999999999999999999999999997", "-Infinity", "-0.9999999999999999999999999999999998", .toNearestOrEven)
+ /* dqnextt424 */ self.nexttoward128("-0.9999999999999999999999999999999998", "-Infinity", "-0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt425 */ self.nexttoward128("-0.9999999999999999999999999999999999", "-Infinity", "-1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqnextt426 */ self.nexttoward128("-1.000000000000000000000000000000000", "-Infinity", "-1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt427 */ self.nexttoward128("-1.0", "-Infinity", "-1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt428 */ self.nexttoward128("-1", "-Infinity", "-1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt429 */ self.nexttoward128("-1.000000000000000000000000000000001", "-Infinity", "-1.000000000000000000000000000000002", .toNearestOrEven)
+ /* dqnextt430 */ self.nexttoward128("-1.000000000000000000000000000000002", "-Infinity", "-1.000000000000000000000000000000003", .toNearestOrEven)
+ /* dqnextt431 */ self.nexttoward128("-1.000000000000000000000000000000003", "-Infinity", "-1.000000000000000000000000000000004", .toNearestOrEven)
+ /* dqnextt432 */ self.nexttoward128("-1.000000000000000000000000000000004", "-Infinity", "-1.000000000000000000000000000000005", .toNearestOrEven)
+ /* dqnextt433 */ self.nexttoward128("-1.000000000000000000000000000000005", "-Infinity", "-1.000000000000000000000000000000006", .toNearestOrEven)
+ /* dqnextt434 */ self.nexttoward128("-1.000000000000000000000000000000006", "-Infinity", "-1.000000000000000000000000000000007", .toNearestOrEven)
+ /* dqnextt435 */ self.nexttoward128("-1.000000000000000000000000000000007", "-Infinity", "-1.000000000000000000000000000000008", .toNearestOrEven)
+ /* dqnextt436 */ self.nexttoward128("-1.000000000000000000000000000000008", "-Infinity", "-1.000000000000000000000000000000009", .toNearestOrEven)
+ /* dqnextt437 */ self.nexttoward128("-1.000000000000000000000000000000009", "-Infinity", "-1.000000000000000000000000000000010", .toNearestOrEven)
+ /* dqnextt438 */ self.nexttoward128("-1.000000000000000000000000000000010", "-Infinity", "-1.000000000000000000000000000000011", .toNearestOrEven)
+ /* dqnextt439 */ self.nexttoward128("-1.000000000000000000000000000000011", "-Infinity", "-1.000000000000000000000000000000012", .toNearestOrEven)
+ /* dqnextt500 */ self.nexttoward128("-0", "-Infinity", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt501 */ self.nexttoward128("0", "-Infinity", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt502 */ self.nexttoward128("0.00", "-Infinity", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt503 */ self.nexttoward128("-0.00", "-Infinity", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt504 */ self.nexttoward128("0E-300", "-Infinity", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt505 */ self.nexttoward128("0E+300", "-Infinity", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt506 */ self.nexttoward128("0E+30000", "-Infinity", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt507 */ self.nexttoward128("-0E+30000", "-Infinity", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt550 */ self.nexttoward128("Inf", "-Infinity", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt551 */ self.nexttoward128("-Inf", "-Infinity", "-Infinity", .toNearestOrEven)
+ /* dqnextt552 */ self.nexttoward128("NaN", "-Infinity", "NaN", .toNearestOrEven)
+ /* dqnextt553 */ self.nexttoward128("sNaN", "-Infinity", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt554 */ self.nexttoward128("NaN(0x4d)", "-Infinity", "NaN(0x4d)", .toNearestOrEven)
+ /* dqnextt555 */ self.nexttoward128("sNaN(0x58)", "-Infinity", "NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt556 */ self.nexttoward128("-NaN", "-Infinity", "-NaN", .toNearestOrEven)
+ /* dqnextt557 */ self.nexttoward128("-sNaN", "-Infinity", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt558 */ self.nexttoward128("-NaN(0x4d)", "-Infinity", "-NaN(0x4d)", .toNearestOrEven)
+ /* dqnextt559 */ self.nexttoward128("-sNaN(0x58)", "-Infinity", "-NaN(0x58)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt670 */ self.nexttoward128("9.999999999999999999999999999999999E+6144", "-Infinity", "9.999999999999999999999999999999998E+6144", .toNearestOrEven)
+ /* dqnextt671 */ self.nexttoward128("9.999999999999999999999999999999998E+6144", "-Infinity", "9.999999999999999999999999999999997E+6144", .toNearestOrEven)
+ /* dqnextt672 */ self.nexttoward128("1E-6143", "-Infinity", "9.99999999999999999999999999999999E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt673 */ self.nexttoward128("1.000000000000000000000000000000000E-6143", "-Infinity", "9.99999999999999999999999999999999E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt674 */ self.nexttoward128("9E-6176", "-Infinity", "8E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt675 */ self.nexttoward128("9.9E-6175", "-Infinity", "9.8E-6175", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt676 */ self.nexttoward128("9.99999999999999999999999999999E-6147", "-Infinity", "9.99999999999999999999999999998E-6147", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt677 */ self.nexttoward128("9.99999999999999999999999999999999E-6144", "-Infinity", "9.99999999999999999999999999999998E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt678 */ self.nexttoward128("9.99999999999999999999999999999998E-6144", "-Infinity", "9.99999999999999999999999999999997E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt679 */ self.nexttoward128("9.99999999999999999999999999999997E-6144", "-Infinity", "9.99999999999999999999999999999996E-6144", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt680 */ self.nexttoward128("0E-6176", "-Infinity", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt681 */ self.nexttoward128("1E-6176", "-Infinity", "0E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt682 */ self.nexttoward128("2E-6176", "-Infinity", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt683 */ self.nexttoward128("-0E-6176", "-Infinity", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt684 */ self.nexttoward128("-1E-6176", "-Infinity", "-2E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt685 */ self.nexttoward128("-2E-6176", "-Infinity", "-3E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt686 */ self.nexttoward128("-10E-6176", "-Infinity", "-1.1E-6175", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt687 */ self.nexttoward128("-100E-6176", "-Infinity", "-1.01E-6174", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt688 */ self.nexttoward128("-100000E-6176", "-Infinity", "-1.00001E-6171", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt689 */ self.nexttoward128("-1.00000000000000000000000000000E-6143", "-Infinity", "-1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextt690 */ self.nexttoward128("-1.000000000000000000000000000000000E-6143", "-Infinity", "-1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextt691 */ self.nexttoward128("-1E-6143", "-Infinity", "-1.000000000000000000000000000000001E-6143", .toNearestOrEven)
+ /* dqnextt692 */ self.nexttoward128("-9.999999999999999999999999999999998E+6144", "-Infinity", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt693 */ self.nexttoward128("-9.999999999999999999999999999999999E+6144", "-Infinity", "-Infinity", .toNearestOrEven, .isInexact | .isOverflow)
+ /* dqnextt780 */ self.nexttoward128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqnextt781 */ self.nexttoward128("-Inf", "-1000", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt782 */ self.nexttoward128("-Inf", "-1", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt783 */ self.nexttoward128("-Inf", "-0", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt784 */ self.nexttoward128("-Inf", "0", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt785 */ self.nexttoward128("-Inf", "1", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt786 */ self.nexttoward128("-Inf", "1000", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt787 */ self.nexttoward128("-1000", "-Inf", "-1000.000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt788 */ self.nexttoward128("-Inf", "-Inf", "-Infinity", .toNearestOrEven)
+ /* dqnextt789 */ self.nexttoward128("-1", "-Inf", "-1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt790 */ self.nexttoward128("-0", "-Inf", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt791 */ self.nexttoward128("0", "-Inf", "-1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt792 */ self.nexttoward128("1", "-Inf", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt793 */ self.nexttoward128("1000", "-Inf", "999.9999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt794 */ self.nexttoward128("Inf", "-Inf", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt800 */ self.nexttoward128("Inf", "-Inf", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt801 */ self.nexttoward128("Inf", "-1000", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt802 */ self.nexttoward128("Inf", "-1", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt803 */ self.nexttoward128("Inf", "-0", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt804 */ self.nexttoward128("Inf", "0", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt805 */ self.nexttoward128("Inf", "1", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt806 */ self.nexttoward128("Inf", "1000", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt807 */ self.nexttoward128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqnextt808 */ self.nexttoward128("-1000", "Inf", "-999.9999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt809 */ self.nexttoward128("-Inf", "Inf", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqnextt810 */ self.nexttoward128("-1", "Inf", "-0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqnextt811 */ self.nexttoward128("-0", "Inf", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt812 */ self.nexttoward128("0", "Inf", "1E-6176", .toNearestOrEven, .isInexact | .isUnderflow)
+ /* dqnextt813 */ self.nexttoward128("1", "Inf", "1.000000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt814 */ self.nexttoward128("1000", "Inf", "1000.000000000000000000000000000001", .toNearestOrEven)
+ /* dqnextt815 */ self.nexttoward128("Inf", "Inf", "Infinity", .toNearestOrEven)
+ /* dqnextt821 */ self.nexttoward128("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* dqnextt822 */ self.nexttoward128("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* dqnextt823 */ self.nexttoward128("NaN", "-1", "NaN", .toNearestOrEven)
+ /* dqnextt824 */ self.nexttoward128("NaN", "-0", "NaN", .toNearestOrEven)
+ /* dqnextt825 */ self.nexttoward128("NaN", "0", "NaN", .toNearestOrEven)
+ /* dqnextt826 */ self.nexttoward128("NaN", "1", "NaN", .toNearestOrEven)
+ /* dqnextt827 */ self.nexttoward128("NaN", "1000", "NaN", .toNearestOrEven)
+ /* dqnextt828 */ self.nexttoward128("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* dqnextt829 */ self.nexttoward128("NaN", "NaN", "NaN", .toNearestOrEven)
+ /* dqnextt830 */ self.nexttoward128("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqnextt831 */ self.nexttoward128("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqnextt832 */ self.nexttoward128("-1", "NaN", "NaN", .toNearestOrEven)
+ /* dqnextt833 */ self.nexttoward128("-0", "NaN", "NaN", .toNearestOrEven)
+ /* dqnextt834 */ self.nexttoward128("0", "NaN", "NaN", .toNearestOrEven)
+ /* dqnextt835 */ self.nexttoward128("1", "NaN", "NaN", .toNearestOrEven)
+ /* dqnextt836 */ self.nexttoward128("1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqnextt837 */ self.nexttoward128("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqnextt841 */ self.nexttoward128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt842 */ self.nexttoward128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt843 */ self.nexttoward128("sNaN", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt844 */ self.nexttoward128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt845 */ self.nexttoward128("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt846 */ self.nexttoward128("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt847 */ self.nexttoward128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt848 */ self.nexttoward128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt849 */ self.nexttoward128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt850 */ self.nexttoward128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt851 */ self.nexttoward128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt852 */ self.nexttoward128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt853 */ self.nexttoward128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt854 */ self.nexttoward128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt855 */ self.nexttoward128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt856 */ self.nexttoward128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt857 */ self.nexttoward128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt858 */ self.nexttoward128("Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt859 */ self.nexttoward128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt861 */ self.nexttoward128("NaN(0x1)", "-Inf", "NaN(0x1)", .toNearestOrEven)
+ /* dqnextt862 */ self.nexttoward128("+NaN(0x2)", "-1000", "NaN(0x2)", .toNearestOrEven)
+ /* dqnextt863 */ self.nexttoward128("NaN(0x3)", "1000", "NaN(0x3)", .toNearestOrEven)
+ /* dqnextt864 */ self.nexttoward128("NaN(0x4)", "Inf", "NaN(0x4)", .toNearestOrEven)
+ /* dqnextt865 */ self.nexttoward128("NaN(0x5)", "+NaN(0x6)", "NaN(0x5)", .toNearestOrEven)
+ /* dqnextt866 */ self.nexttoward128("-Inf", "NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* dqnextt867 */ self.nexttoward128("-1000", "NaN(0x8)", "NaN(0x8)", .toNearestOrEven)
+ /* dqnextt868 */ self.nexttoward128("1000", "NaN(0x9)", "NaN(0x9)", .toNearestOrEven)
+ /* dqnextt869 */ self.nexttoward128("Inf", "+NaN(0xa)", "NaN(0xa)", .toNearestOrEven)
+ /* dqnextt871 */ self.nexttoward128("sNaN(0xb)", "-Inf", "NaN(0xb)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt872 */ self.nexttoward128("sNaN(0xc)", "-1000", "NaN(0xc)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt873 */ self.nexttoward128("sNaN(0xd)", "1000", "NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt874 */ self.nexttoward128("sNaN(0xe)", "NaN(0x11)", "NaN(0xe)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt875 */ self.nexttoward128("sNaN(0xf)", "sNaN(0x12)", "NaN(0xf)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt876 */ self.nexttoward128("NaN(0x10)", "sNaN(0x13)", "NaN(0x13)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt877 */ self.nexttoward128("-Inf", "+sNaN(0x14)", "NaN(0x14)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt878 */ self.nexttoward128("-1000", "sNaN(0x15)", "NaN(0x15)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt879 */ self.nexttoward128("1000", "sNaN(0x16)", "NaN(0x16)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt880 */ self.nexttoward128("Inf", "sNaN(0x17)", "NaN(0x17)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt881 */ self.nexttoward128("+NaN(0x19)", "+sNaN(0x18)", "NaN(0x18)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt882 */ self.nexttoward128("-NaN(0x1a)", "NaN(0x1c)", "-NaN(0x1a)", .toNearestOrEven)
+ /* dqnextt883 */ self.nexttoward128("-sNaN(0x1b)", "sNaN(0x1d)", "-NaN(0x1b)", .toNearestOrEven, .isInvalidOperation)
+ /* dqnextt884 */ self.nexttoward128("1000", "-NaN(0x1e)", "-NaN(0x1e)", .toNearestOrEven)
+ /* dqnextt885 */ self.nexttoward128("1000", "-sNaN(0x1f)", "-NaN(0x1f)", .toNearestOrEven, .isInvalidOperation)
+ }
+
+ private func nexttoward128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = self.nextToward(arg0, arg1, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveOtherTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveOtherTests.swift
new file mode 100644
index 0000000..399cb1a
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveOtherTests.swift
@@ -0,0 +1,1224 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveOtherTests: XCTestCase, SpeleotroveMixin {
+
+ // MARK: - Canonical
+
+ func test_canonical64() {
+ /* ddcan021 */ self.canonical64("#77fcff3fcff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan022 */ self.canonical64("#77fcff3fcff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan023 */ self.canonical64("#77ffff3fcff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan024 */ self.canonical64("#77ffff3fcff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan025 */ self.canonical64("#77fcffffcff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan026 */ self.canonical64("#77fcffffcff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan027 */ self.canonical64("#77fcff3ffff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan028 */ self.canonical64("#77fcff3ffff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan030 */ self.canonical64("#77fcff3fcffffcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan031 */ self.canonical64("#77fcff3fcffffcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan032 */ self.canonical64("#77fcff3fcff3ffff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan033 */ self.canonical64("#77fcff3fcff3ffff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan035 */ self.canonical64("#77fcff3fdff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan036 */ self.canonical64("#77fcff3feff3fcff", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan100 */ self.canonical64("NaN(0x38d7ea4c67fff)", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan101 */ self.canonical64("#7c00ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan102 */ self.canonical64("#7c03ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan103 */ self.canonical64("#7c00ffffcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan104 */ self.canonical64("#7c00ff3ffff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan105 */ self.canonical64("#7c00ff3fcffffcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan106 */ self.canonical64("#7c00ff3fcff3ffff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan107 */ self.canonical64("#7c00ff3fcff3ffff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan110 */ self.canonical64("#7c00ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan112 */ self.canonical64("#7d00ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan113 */ self.canonical64("#7c80ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan114 */ self.canonical64("#7c40ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan115 */ self.canonical64("#7c20ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan116 */ self.canonical64("#7c10ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan117 */ self.canonical64("#7c08ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan118 */ self.canonical64("#7c04ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan120 */ self.canonical64("sNaN(0x38d7ea4c67fff)", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan121 */ self.canonical64("#7e00ff3fcff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan122 */ self.canonical64("#7e03ff3fcff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan123 */ self.canonical64("#7e00ffffcff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan124 */ self.canonical64("#7e00ff3ffff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan125 */ self.canonical64("#7e00ff3fcffffcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan126 */ self.canonical64("#7e00ff3fcff3ffff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan127 */ self.canonical64("#7e00ff3fcff3ffff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan130 */ self.canonical64("#7e00ff3fcff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan132 */ self.canonical64("#7f00ff3fcff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan133 */ self.canonical64("#7e80ff3fcff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan134 */ self.canonical64("#7e40ff3fcff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan135 */ self.canonical64("#7e20ff3fcff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan136 */ self.canonical64("#7e10ff3fcff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan137 */ self.canonical64("#7e08ff3fcff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan138 */ self.canonical64("#7e04ff3fcff3fcff", "#7e00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan140 */ self.canonical64("#7800000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan141 */ self.canonical64("#7900000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan142 */ self.canonical64("#7a00000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan143 */ self.canonical64("#7880000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan144 */ self.canonical64("#7840000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan145 */ self.canonical64("#7820000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan146 */ self.canonical64("#7810000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan147 */ self.canonical64("#7808000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan148 */ self.canonical64("#7804000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan150 */ self.canonical64("#7800000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan151 */ self.canonical64("#7802000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan152 */ self.canonical64("#7800000000000001", "#7800000000000000", .toNearestOrEven)
+ /* ddcan153 */ self.canonical64("#7801000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan154 */ self.canonical64("#7800200000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan155 */ self.canonical64("#7800080000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan156 */ self.canonical64("#7800002000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan157 */ self.canonical64("#7800000400000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan158 */ self.canonical64("#7800000040000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan159 */ self.canonical64("#7800000008000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan160 */ self.canonical64("#7800000000400000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan161 */ self.canonical64("#7800000000020000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan162 */ self.canonical64("#7800000000008000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan163 */ self.canonical64("#7800000000000200", "#7800000000000000", .toNearestOrEven)
+ /* ddcan164 */ self.canonical64("#7800000000000040", "#7800000000000000", .toNearestOrEven)
+ /* ddcan165 */ self.canonical64("#7800000000000008", "#7800000000000000", .toNearestOrEven)
+ }
+
+ private func canonical64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = self.canonical(arg0)
+ self.assertEqual(result, expected, file, line)
+ }
+
+ func test_canonical128() {
+ /* dqcan021 */ self.canonical128("#77ffcff3fcff3fcff3fcff3fcff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan022 */ self.canonical128("#77fffff3fcff3fcff3fcff3fcff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan023 */ self.canonical128("#77ffcffffcff3fcff3fcff3fcff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan024 */ self.canonical128("#77ffcff3ffff3fcff3fcff3fcff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan025 */ self.canonical128("#77ffcff3fcffffcff3fcff3fcff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan026 */ self.canonical128("#77ffcff3fcff3ffff3fcff3fcff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan027 */ self.canonical128("#77ffcff3fcff3fcffffcff3fcff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan028 */ self.canonical128("#77ffcff3fcff3fcff3ffff3fcff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan029 */ self.canonical128("#77ffcff3fcff3fcff3fcffffcff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan030 */ self.canonical128("#77ffcff3fcff3fcff3fcff3ffff3fcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan031 */ self.canonical128("#77ffcff3fcff3fcff3fcff3fcffffcff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan032 */ self.canonical128("#77ffcff3fcff3fcff3fcff3fcff3ffff", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan061 */ self.canonical128("#7c000ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan062 */ self.canonical128("#7c000ffffcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan063 */ self.canonical128("#7c000ff3ffff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan064 */ self.canonical128("#7c000ff3fcffffcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan065 */ self.canonical128("#7c000ff3fcff3ffff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan066 */ self.canonical128("#7c000ff3fcff3fcffffcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan067 */ self.canonical128("#7c000ff3fcff3fcff3ffff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan068 */ self.canonical128("#7c000ff3fcff3fcff3fcffffcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan069 */ self.canonical128("#7c000ff3fcff3fcff3fcff3ffff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan070 */ self.canonical128("#7c000ff3fcff3fcff3fcff3fcffffcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan071 */ self.canonical128("#7c000ff3fcff3fcff3fcff3fcff3ffff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan081 */ self.canonical128("#7d000ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan082 */ self.canonical128("#7c800ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan083 */ self.canonical128("#7c400ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan084 */ self.canonical128("#7c200ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan085 */ self.canonical128("#7c100ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan086 */ self.canonical128("#7c080ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan087 */ self.canonical128("#7c040ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan088 */ self.canonical128("#7c020ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan089 */ self.canonical128("#7c010ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan090 */ self.canonical128("#7c008ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan091 */ self.canonical128("#7c004ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan100 */ self.canonical128("#7e000ff3fcff3fcff3fcff3fcffffcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan101 */ self.canonical128("#7e000ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan102 */ self.canonical128("#7e000ffffcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan103 */ self.canonical128("#7e000ff3ffff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan104 */ self.canonical128("#7e000ff3fcffffcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan105 */ self.canonical128("#7e000ff3fcff3ffff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan106 */ self.canonical128("#7e000ff3fcff3fcffffcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan107 */ self.canonical128("#7e000ff3fcff3fcff3ffff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan108 */ self.canonical128("#7e000ff3fcff3fcff3fcffffcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan109 */ self.canonical128("#7e000ff3fcff3fcff3fcff3ffff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan111 */ self.canonical128("#7e000ff3fcff3fcff3fcff3fcff3ffff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan121 */ self.canonical128("#7f000ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan122 */ self.canonical128("#7e800ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan123 */ self.canonical128("#7e400ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan124 */ self.canonical128("#7e200ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan125 */ self.canonical128("#7e100ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan126 */ self.canonical128("#7e080ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan127 */ self.canonical128("#7e040ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan128 */ self.canonical128("#7e020ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan129 */ self.canonical128("#7e010ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan130 */ self.canonical128("#7e008ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan131 */ self.canonical128("#7e004ff3fcff3fcff3fcff3fcff3fcff", "#7e000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan137 */ self.canonical128("#78000000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan138 */ self.canonical128("#79000000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan139 */ self.canonical128("#7a000000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan140 */ self.canonical128("#78800000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan141 */ self.canonical128("#78400000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan142 */ self.canonical128("#78200000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan143 */ self.canonical128("#78100000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan144 */ self.canonical128("#78080000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan145 */ self.canonical128("#78040000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan146 */ self.canonical128("#78020000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan147 */ self.canonical128("#78010000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan148 */ self.canonical128("#78008000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan149 */ self.canonical128("#78004000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan150 */ self.canonical128("#78000000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan151 */ self.canonical128("#78020000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan152 */ self.canonical128("#78000000000000000000000000000001", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan153 */ self.canonical128("#78010000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan154 */ self.canonical128("#78002000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan155 */ self.canonical128("#78000800000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan156 */ self.canonical128("#78000020000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan157 */ self.canonical128("#78000004000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan158 */ self.canonical128("#78000000400000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan159 */ self.canonical128("#78000000080000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan160 */ self.canonical128("#78000000004000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan161 */ self.canonical128("#78000000000200000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan162 */ self.canonical128("#78000000000080000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan163 */ self.canonical128("#78000000000002000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan164 */ self.canonical128("#78000000000000400000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan165 */ self.canonical128("#78000000000000080000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan166 */ self.canonical128("#78000000000000001000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan167 */ self.canonical128("#78000000000000000200000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan168 */ self.canonical128("#78000000000000000080000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan169 */ self.canonical128("#78000000000000000004000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan170 */ self.canonical128("#78000000000000000000400000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan171 */ self.canonical128("#78000000000000000000010000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan172 */ self.canonical128("#78000000000000000000002000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan173 */ self.canonical128("#78000000000000000000000400000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan174 */ self.canonical128("#78000000000000000000000080000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan175 */ self.canonical128("#78000000000000000000000002000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan176 */ self.canonical128("#78000000000000000000000000400000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan177 */ self.canonical128("#78000000000000000000000000020000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan178 */ self.canonical128("#78000000000000000000000000001000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan179 */ self.canonical128("#78000000000000000000000000000400", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan180 */ self.canonical128("#78000000000000000000000000000020", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan181 */ self.canonical128("#78000000000000000000000000000008", "#78000000000000000000000000000000", .toNearestOrEven)
+ }
+
+ private func canonical128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = self.canonical(arg0)
+ self.assertEqual(result, expected, file, line)
+ }
+
+ // MARK: - Copy
+
+ func test_copy64() {
+ /* ddcan250 */ self.copy64("#77ffff3fcff3fcff", "#77ffff3fcff3fcff", .toNearestOrEven)
+ /* ddcan251 */ self.copy64("#77fcff3fdff3fcff", "#77fcff3fdff3fcff", .toNearestOrEven)
+ /* ddcan252 */ self.copy64("#7c03ff3fcff3fcff", "#7c03ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan253 */ self.copy64("#7c00ff3fcff3ffff", "#7c00ff3fcff3ffff", .toNearestOrEven)
+ /* ddcan254 */ self.copy64("#7d00ff3fcff3fcff", "#7d00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan255 */ self.copy64("#7c04ff3fcff3fcff", "#7c04ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan256 */ self.copy64("#7e00ff3fcffffcff", "#7e00ff3fcffffcff", .toNearestOrEven)
+ /* ddcan257 */ self.copy64("#7e40ff3fcff3fcff", "#7e40ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan258 */ self.copy64("#7a00000000000000", "#7a00000000000000", .toNearestOrEven)
+ /* ddcan259 */ self.copy64("#7800200000000000", "#7800200000000000", .toNearestOrEven)
+ /* ddcpy001 */ self.copy64("+7.50", "7.50", .toNearestOrEven)
+ /* ddcpy011 */ self.copy64("Infinity", "Infinity", .toNearestOrEven)
+ /* ddcpy012 */ self.copy64("-Infinity", "-Infinity", .toNearestOrEven)
+ /* ddcpy021 */ self.copy64("NaN", "NaN", .toNearestOrEven)
+ /* ddcpy022 */ self.copy64("-NaN", "-NaN", .toNearestOrEven)
+ /* ddcpy023 */ self.copy64("sNaN", "sNaN", .toNearestOrEven)
+ /* ddcpy024 */ self.copy64("-sNaN", "-sNaN", .toNearestOrEven)
+ /* ddcpy031 */ self.copy64("NaN(0xa)", "NaN(0xa)", .toNearestOrEven)
+ /* ddcpy032 */ self.copy64("-NaN(0xa)", "-NaN(0xa)", .toNearestOrEven)
+ /* ddcpy033 */ self.copy64("sNaN(0xa)", "sNaN(0xa)", .toNearestOrEven)
+ /* ddcpy034 */ self.copy64("-sNaN(0xa)", "-sNaN(0xa)", .toNearestOrEven)
+ /* ddcpy035 */ self.copy64("NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* ddcpy036 */ self.copy64("-NaN(0x7)", "-NaN(0x7)", .toNearestOrEven)
+ /* ddcpy037 */ self.copy64("sNaN(0x65)", "sNaN(0x65)", .toNearestOrEven)
+ /* ddcpy038 */ self.copy64("-sNaN(0x65)", "-sNaN(0x65)", .toNearestOrEven)
+ /* ddcpy101 */ self.copy64("7", "7", .toNearestOrEven)
+ /* ddcpy102 */ self.copy64("-7", "-7", .toNearestOrEven)
+ /* ddcpy103 */ self.copy64("75", "75", .toNearestOrEven)
+ /* ddcpy104 */ self.copy64("-75", "-75", .toNearestOrEven)
+ /* ddcpy105 */ self.copy64("7.50", "7.50", .toNearestOrEven)
+ /* ddcpy106 */ self.copy64("-7.50", "-7.50", .toNearestOrEven)
+ /* ddcpy107 */ self.copy64("7.500", "7.500", .toNearestOrEven)
+ /* ddcpy108 */ self.copy64("-7.500", "-7.500", .toNearestOrEven)
+ /* ddcpy111 */ self.copy64("0", "0", .toNearestOrEven)
+ /* ddcpy112 */ self.copy64("-0", "-0", .toNearestOrEven)
+ /* ddcpy113 */ self.copy64("0E+4", "0E+4", .toNearestOrEven)
+ /* ddcpy114 */ self.copy64("-0E+4", "-0E+4", .toNearestOrEven)
+ /* ddcpy115 */ self.copy64("0.0000", "0.0000", .toNearestOrEven)
+ /* ddcpy116 */ self.copy64("-0.0000", "-0.0000", .toNearestOrEven)
+ /* ddcpy117 */ self.copy64("0E-141", "0E-141", .toNearestOrEven)
+ /* ddcpy118 */ self.copy64("-0E-141", "-0E-141", .toNearestOrEven)
+ /* ddcpy121 */ self.copy64("2682682682682682", "2682682682682682", .toNearestOrEven)
+ /* ddcpy122 */ self.copy64("-2682682682682682", "-2682682682682682", .toNearestOrEven)
+ /* ddcpy123 */ self.copy64("1341341341341341", "1341341341341341", .toNearestOrEven)
+ /* ddcpy124 */ self.copy64("-1341341341341341", "-1341341341341341", .toNearestOrEven)
+ /* ddcpy131 */ self.copy64("9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddcpy132 */ self.copy64("1E-383", "1E-383", .toNearestOrEven)
+ /* ddcpy133 */ self.copy64("1.000000000000000E-383", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddcpy134 */ self.copy64("1E-398", "1E-398", .toNearestOrEven)
+ /* ddcpy135 */ self.copy64("-1E-398", "-1E-398", .toNearestOrEven)
+ /* ddcpy136 */ self.copy64("-1.000000000000000E-383", "-1.000000000000000E-383", .toNearestOrEven)
+ /* ddcpy137 */ self.copy64("-1E-383", "-1E-383", .toNearestOrEven)
+ /* ddcpy138 */ self.copy64("-9.999999999999999E+384", "-9.999999999999999E+384", .toNearestOrEven)
+ }
+
+ private func copy64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = arg0
+ self.assertEqual(result, expected, file, line)
+ }
+
+ func test_copy128() {
+ /* dqcan250 */ self.copy128("#6e080ff3fcff3fcfffffff3fcfffffff", "#6e080ff3fcff3fcfffffff3fcfffffff", .toNearestOrEven)
+ /* dqcan251 */ self.copy128("#ee080ff3fcff3ffff3fcff3ffff3fcff", "#ee080ff3fcff3ffff3fcff3ffff3fcff", .toNearestOrEven)
+ /* dqcan252 */ self.copy128("#7c000ff3fcffffffffffffffcff3fcff", "#7c000ff3fcffffffffffffffcff3fcff", .toNearestOrEven)
+ /* dqcan253 */ self.copy128("#7c080ff3fcff3fcff3fcff3fcff3fcff", "#7c080ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan254 */ self.copy128("#7e003ff3fcffffffffffffffcff3fcff", "#7e003ff3fcffffffffffffffcff3fcff", .toNearestOrEven)
+ /* dqcan255 */ self.copy128("#7e100ff3fcff3fcff3fcff3fcff3fcff", "#7e100ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan258 */ self.copy128("#78002000000000000000000000000000", "#78002000000000000000000000000000", .toNearestOrEven)
+ /* dqcan259 */ self.copy128("#78000000000010000000000000100000", "#78000000000010000000000000100000", .toNearestOrEven)
+ /* dqcpy001 */ self.copy128("+7.50", "7.50", .toNearestOrEven)
+ /* dqcpy011 */ self.copy128("Infinity", "Infinity", .toNearestOrEven)
+ /* dqcpy012 */ self.copy128("-Infinity", "-Infinity", .toNearestOrEven)
+ /* dqcpy021 */ self.copy128("NaN", "NaN", .toNearestOrEven)
+ /* dqcpy022 */ self.copy128("-NaN", "-NaN", .toNearestOrEven)
+ /* dqcpy023 */ self.copy128("sNaN", "sNaN", .toNearestOrEven)
+ /* dqcpy024 */ self.copy128("-sNaN", "-sNaN", .toNearestOrEven)
+ /* dqcpy031 */ self.copy128("NaN(0xa)", "NaN(0xa)", .toNearestOrEven)
+ /* dqcpy032 */ self.copy128("-NaN(0xa)", "-NaN(0xa)", .toNearestOrEven)
+ /* dqcpy033 */ self.copy128("sNaN(0xa)", "sNaN(0xa)", .toNearestOrEven)
+ /* dqcpy034 */ self.copy128("-sNaN(0xa)", "-sNaN(0xa)", .toNearestOrEven)
+ /* dqcpy035 */ self.copy128("NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* dqcpy036 */ self.copy128("-NaN(0x7)", "-NaN(0x7)", .toNearestOrEven)
+ /* dqcpy037 */ self.copy128("sNaN(0x65)", "sNaN(0x65)", .toNearestOrEven)
+ /* dqcpy038 */ self.copy128("-sNaN(0x65)", "-sNaN(0x65)", .toNearestOrEven)
+ /* dqcpy101 */ self.copy128("7", "7", .toNearestOrEven)
+ /* dqcpy102 */ self.copy128("-7", "-7", .toNearestOrEven)
+ /* dqcpy103 */ self.copy128("75", "75", .toNearestOrEven)
+ /* dqcpy104 */ self.copy128("-75", "-75", .toNearestOrEven)
+ /* dqcpy105 */ self.copy128("7.50", "7.50", .toNearestOrEven)
+ /* dqcpy106 */ self.copy128("-7.50", "-7.50", .toNearestOrEven)
+ /* dqcpy107 */ self.copy128("7.500", "7.500", .toNearestOrEven)
+ /* dqcpy108 */ self.copy128("-7.500", "-7.500", .toNearestOrEven)
+ /* dqcpy111 */ self.copy128("0", "0", .toNearestOrEven)
+ /* dqcpy112 */ self.copy128("-0", "-0", .toNearestOrEven)
+ /* dqcpy113 */ self.copy128("0E+4", "0E+4", .toNearestOrEven)
+ /* dqcpy114 */ self.copy128("-0E+4", "-0E+4", .toNearestOrEven)
+ /* dqcpy115 */ self.copy128("0.0000", "0.0000", .toNearestOrEven)
+ /* dqcpy116 */ self.copy128("-0.0000", "-0.0000", .toNearestOrEven)
+ /* dqcpy117 */ self.copy128("0E-141", "0E-141", .toNearestOrEven)
+ /* dqcpy118 */ self.copy128("-0E-141", "-0E-141", .toNearestOrEven)
+ /* dqcpy121 */ self.copy128("2682682682682682682682682682682682", "2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqcpy122 */ self.copy128("-2682682682682682682682682682682682", "-2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqcpy123 */ self.copy128("1341341341341341341341341341341341", "1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqcpy124 */ self.copy128("-1341341341341341341341341341341341", "-1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqcpy131 */ self.copy128("9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqcpy132 */ self.copy128("1E-6143", "1E-6143", .toNearestOrEven)
+ /* dqcpy133 */ self.copy128("1.000000000000000000000000000000000E-6143", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqcpy134 */ self.copy128("1E-6176", "1E-6176", .toNearestOrEven)
+ /* dqcpy135 */ self.copy128("-1E-6176", "-1E-6176", .toNearestOrEven)
+ /* dqcpy136 */ self.copy128("-1.000000000000000000000000000000000E-6143", "-1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqcpy137 */ self.copy128("-1E-6143", "-1E-6143", .toNearestOrEven)
+ /* dqcpy138 */ self.copy128("-9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ }
+
+ private func copy128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = arg0
+ self.assertEqual(result, expected, file, line)
+ }
+
+ // MARK: - Copyabs
+
+ func test_copyabs64() {
+ /* ddcan260 */ self.copyabs64("#f7ffff3fcff3fcff", "#77ffff3fcff3fcff", .toNearestOrEven)
+ /* ddcan261 */ self.copyabs64("#f7fcff3fdff3fcff", "#77fcff3fdff3fcff", .toNearestOrEven)
+ /* ddcan262 */ self.copyabs64("#fc03ff3fcff3fcff", "#7c03ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan263 */ self.copyabs64("#fc00ff3fcff3ffff", "#7c00ff3fcff3ffff", .toNearestOrEven)
+ /* ddcan264 */ self.copyabs64("#fd00ff3fcff3fcff", "#7d00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan265 */ self.copyabs64("#fc04ff3fcff3fcff", "#7c04ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan266 */ self.copyabs64("#fe00ff3fcffffcff", "#7e00ff3fcffffcff", .toNearestOrEven)
+ /* ddcan267 */ self.copyabs64("#fe40ff3fcff3fcff", "#7e40ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan268 */ self.copyabs64("#fa00000000000000", "#7a00000000000000", .toNearestOrEven)
+ /* ddcan269 */ self.copyabs64("#f800200000000000", "#7800200000000000", .toNearestOrEven)
+ /* ddcpa001 */ self.copyabs64("+7.50", "7.50", .toNearestOrEven)
+ /* ddcpa011 */ self.copyabs64("Infinity", "Infinity", .toNearestOrEven)
+ /* ddcpa012 */ self.copyabs64("-Infinity", "Infinity", .toNearestOrEven)
+ /* ddcpa021 */ self.copyabs64("NaN", "NaN", .toNearestOrEven)
+ /* ddcpa022 */ self.copyabs64("-NaN", "NaN", .toNearestOrEven)
+ /* ddcpa023 */ self.copyabs64("sNaN", "sNaN", .toNearestOrEven)
+ /* ddcpa024 */ self.copyabs64("-sNaN", "sNaN", .toNearestOrEven)
+ /* ddcpa031 */ self.copyabs64("NaN(0xa)", "NaN(0xa)", .toNearestOrEven)
+ /* ddcpa032 */ self.copyabs64("-NaN(0xf)", "NaN(0xf)", .toNearestOrEven)
+ /* ddcpa033 */ self.copyabs64("sNaN(0xf)", "sNaN(0xf)", .toNearestOrEven)
+ /* ddcpa034 */ self.copyabs64("-sNaN(0xa)", "sNaN(0xa)", .toNearestOrEven)
+ /* ddcpa035 */ self.copyabs64("NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* ddcpa036 */ self.copyabs64("-NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* ddcpa037 */ self.copyabs64("sNaN(0x65)", "sNaN(0x65)", .toNearestOrEven)
+ /* ddcpa038 */ self.copyabs64("-sNaN(0x65)", "sNaN(0x65)", .toNearestOrEven)
+ /* ddcpa101 */ self.copyabs64("7", "7", .toNearestOrEven)
+ /* ddcpa102 */ self.copyabs64("-7", "7", .toNearestOrEven)
+ /* ddcpa103 */ self.copyabs64("75", "75", .toNearestOrEven)
+ /* ddcpa104 */ self.copyabs64("-75", "75", .toNearestOrEven)
+ /* ddcpa105 */ self.copyabs64("7.10", "7.10", .toNearestOrEven)
+ /* ddcpa106 */ self.copyabs64("-7.10", "7.10", .toNearestOrEven)
+ /* ddcpa107 */ self.copyabs64("7.500", "7.500", .toNearestOrEven)
+ /* ddcpa108 */ self.copyabs64("-7.500", "7.500", .toNearestOrEven)
+ /* ddcpa111 */ self.copyabs64("0", "0", .toNearestOrEven)
+ /* ddcpa112 */ self.copyabs64("-0", "0", .toNearestOrEven)
+ /* ddcpa113 */ self.copyabs64("0E+6", "0E+6", .toNearestOrEven)
+ /* ddcpa114 */ self.copyabs64("-0E+6", "0E+6", .toNearestOrEven)
+ /* ddcpa115 */ self.copyabs64("0.0000", "0.0000", .toNearestOrEven)
+ /* ddcpa116 */ self.copyabs64("-0.0000", "0.0000", .toNearestOrEven)
+ /* ddcpa117 */ self.copyabs64("0E-141", "0E-141", .toNearestOrEven)
+ /* ddcpa118 */ self.copyabs64("-0E-141", "0E-141", .toNearestOrEven)
+ /* ddcpa121 */ self.copyabs64("2682682682682682", "2682682682682682", .toNearestOrEven)
+ /* ddcpa122 */ self.copyabs64("-2682682682682682", "2682682682682682", .toNearestOrEven)
+ /* ddcpa123 */ self.copyabs64("1341341341341341", "1341341341341341", .toNearestOrEven)
+ /* ddcpa124 */ self.copyabs64("-1341341341341341", "1341341341341341", .toNearestOrEven)
+ /* ddcpa131 */ self.copyabs64("9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddcpa132 */ self.copyabs64("1E-383", "1E-383", .toNearestOrEven)
+ /* ddcpa133 */ self.copyabs64("1.000000000000000E-383", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddcpa134 */ self.copyabs64("1E-398", "1E-398", .toNearestOrEven)
+ /* ddcpa135 */ self.copyabs64("-1E-398", "1E-398", .toNearestOrEven)
+ /* ddcpa136 */ self.copyabs64("-1.000000000000000E-383", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddcpa137 */ self.copyabs64("-1E-383", "1E-383", .toNearestOrEven)
+ /* ddcpa138 */ self.copyabs64("-9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ }
+
+ private func copyabs64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = self.copyAbs(arg0)
+ self.assertEqual(result, expected, file, line)
+ }
+
+ func test_copyabs128() {
+ /* dqcan260 */ self.copyabs128("#6e080ff3fcff3fcfffffff3fcfffffff", "#6e080ff3fcff3fcfffffff3fcfffffff", .toNearestOrEven)
+ /* dqcan261 */ self.copyabs128("#ee080ff3fcff3ffff3fcff3ffff3fcff", "#6e080ff3fcff3ffff3fcff3ffff3fcff", .toNearestOrEven)
+ /* dqcan262 */ self.copyabs128("#fc000ff3fcffffffffffffffcff3fcff", "#7c000ff3fcffffffffffffffcff3fcff", .toNearestOrEven)
+ /* dqcan263 */ self.copyabs128("#fc080ff3fcff3fcff3fcff3fcff3fcff", "#7c080ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan264 */ self.copyabs128("#fe003ff3fcffffffffffffffcff3fcff", "#7e003ff3fcffffffffffffffcff3fcff", .toNearestOrEven)
+ /* dqcan265 */ self.copyabs128("#fe100ff3fcff3fcff3fcff3fcff3fcff", "#7e100ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan268 */ self.copyabs128("#f8002000000000000000000000000000", "#78002000000000000000000000000000", .toNearestOrEven)
+ /* dqcan269 */ self.copyabs128("#f8000000000000700700700000000000", "#78000000000000700700700000000000", .toNearestOrEven)
+ /* dqcpa001 */ self.copyabs128("+7.50", "7.50", .toNearestOrEven)
+ /* dqcpa011 */ self.copyabs128("Infinity", "Infinity", .toNearestOrEven)
+ /* dqcpa012 */ self.copyabs128("-Infinity", "Infinity", .toNearestOrEven)
+ /* dqcpa021 */ self.copyabs128("NaN", "NaN", .toNearestOrEven)
+ /* dqcpa022 */ self.copyabs128("-NaN", "NaN", .toNearestOrEven)
+ /* dqcpa023 */ self.copyabs128("sNaN", "sNaN", .toNearestOrEven)
+ /* dqcpa024 */ self.copyabs128("-sNaN", "sNaN", .toNearestOrEven)
+ /* dqcpa031 */ self.copyabs128("NaN(0xa)", "NaN(0xa)", .toNearestOrEven)
+ /* dqcpa032 */ self.copyabs128("-NaN(0xf)", "NaN(0xf)", .toNearestOrEven)
+ /* dqcpa033 */ self.copyabs128("sNaN(0xf)", "sNaN(0xf)", .toNearestOrEven)
+ /* dqcpa034 */ self.copyabs128("-sNaN(0xa)", "sNaN(0xa)", .toNearestOrEven)
+ /* dqcpa035 */ self.copyabs128("NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* dqcpa036 */ self.copyabs128("-NaN(0x7)", "NaN(0x7)", .toNearestOrEven)
+ /* dqcpa037 */ self.copyabs128("sNaN(0x65)", "sNaN(0x65)", .toNearestOrEven)
+ /* dqcpa038 */ self.copyabs128("-sNaN(0x65)", "sNaN(0x65)", .toNearestOrEven)
+ /* dqcpa101 */ self.copyabs128("7", "7", .toNearestOrEven)
+ /* dqcpa102 */ self.copyabs128("-7", "7", .toNearestOrEven)
+ /* dqcpa103 */ self.copyabs128("75", "75", .toNearestOrEven)
+ /* dqcpa104 */ self.copyabs128("-75", "75", .toNearestOrEven)
+ /* dqcpa105 */ self.copyabs128("7.10", "7.10", .toNearestOrEven)
+ /* dqcpa106 */ self.copyabs128("-7.10", "7.10", .toNearestOrEven)
+ /* dqcpa107 */ self.copyabs128("7.500", "7.500", .toNearestOrEven)
+ /* dqcpa108 */ self.copyabs128("-7.500", "7.500", .toNearestOrEven)
+ /* dqcpa111 */ self.copyabs128("0", "0", .toNearestOrEven)
+ /* dqcpa112 */ self.copyabs128("-0", "0", .toNearestOrEven)
+ /* dqcpa113 */ self.copyabs128("0E+6", "0E+6", .toNearestOrEven)
+ /* dqcpa114 */ self.copyabs128("-0E+6", "0E+6", .toNearestOrEven)
+ /* dqcpa115 */ self.copyabs128("0.0000", "0.0000", .toNearestOrEven)
+ /* dqcpa116 */ self.copyabs128("-0.0000", "0.0000", .toNearestOrEven)
+ /* dqcpa117 */ self.copyabs128("0E-141", "0E-141", .toNearestOrEven)
+ /* dqcpa118 */ self.copyabs128("-0E-141", "0E-141", .toNearestOrEven)
+ /* dqcpa121 */ self.copyabs128("2682682682682682682682682682682682", "2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqcpa122 */ self.copyabs128("-2682682682682682682682682682682682", "2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqcpa123 */ self.copyabs128("1341341341341341341341341341341341", "1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqcpa124 */ self.copyabs128("-1341341341341341341341341341341341", "1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqcpa131 */ self.copyabs128("9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqcpa132 */ self.copyabs128("1E-6143", "1E-6143", .toNearestOrEven)
+ /* dqcpa133 */ self.copyabs128("1.000000000000000000000000000000000E-6143", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqcpa134 */ self.copyabs128("1E-6176", "1E-6176", .toNearestOrEven)
+ /* dqcpa135 */ self.copyabs128("-1E-6176", "1E-6176", .toNearestOrEven)
+ /* dqcpa136 */ self.copyabs128("-1.000000000000000000000000000000000E-6143", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqcpa137 */ self.copyabs128("-1E-6143", "1E-6143", .toNearestOrEven)
+ /* dqcpa138 */ self.copyabs128("-9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ }
+
+ private func copyabs128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = self.copyAbs(arg0)
+ self.assertEqual(result, expected, file, line)
+ }
+
+ // MARK: - Copynegate
+
+ func test_copynegate64() {
+ /* ddcan270 */ self.copynegate64("#77ffff3fcff3fcff", "#f7ffff3fcff3fcff", .toNearestOrEven)
+ /* ddcan271 */ self.copynegate64("#77fcff3fdff3fcff", "#f7fcff3fdff3fcff", .toNearestOrEven)
+ /* ddcan272 */ self.copynegate64("#7c03ff3fcff3fcff", "#fc03ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan273 */ self.copynegate64("#7c00ff3fcff3ffff", "#fc00ff3fcff3ffff", .toNearestOrEven)
+ /* ddcan274 */ self.copynegate64("#7d00ff3fcff3fcff", "#fd00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan275 */ self.copynegate64("#7c04ff3fcff3fcff", "#fc04ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan276 */ self.copynegate64("#7e00ff3fcffffcff", "#fe00ff3fcffffcff", .toNearestOrEven)
+ /* ddcan277 */ self.copynegate64("#7e40ff3fcff3fcff", "#fe40ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan278 */ self.copynegate64("#7a00000000000000", "#fa00000000000000", .toNearestOrEven)
+ /* ddcan279 */ self.copynegate64("#7800200000000000", "#f800200000000000", .toNearestOrEven)
+ /* ddcpn001 */ self.copynegate64("+7.50", "-7.50", .toNearestOrEven)
+ /* ddcpn011 */ self.copynegate64("Infinity", "-Infinity", .toNearestOrEven)
+ /* ddcpn012 */ self.copynegate64("-Infinity", "Infinity", .toNearestOrEven)
+ /* ddcpn021 */ self.copynegate64("NaN", "-NaN", .toNearestOrEven)
+ /* ddcpn022 */ self.copynegate64("-NaN", "NaN", .toNearestOrEven)
+ /* ddcpn023 */ self.copynegate64("sNaN", "-sNaN", .toNearestOrEven)
+ /* ddcpn024 */ self.copynegate64("-sNaN", "sNaN", .toNearestOrEven)
+ /* ddcpn031 */ self.copynegate64("NaN(0xd)", "-NaN(0xd)", .toNearestOrEven)
+ /* ddcpn032 */ self.copynegate64("-NaN(0xd)", "NaN(0xd)", .toNearestOrEven)
+ /* ddcpn033 */ self.copynegate64("sNaN(0xd)", "-sNaN(0xd)", .toNearestOrEven)
+ /* ddcpn034 */ self.copynegate64("-sNaN(0xd)", "sNaN(0xd)", .toNearestOrEven)
+ /* ddcpn035 */ self.copynegate64("NaN(0x46)", "-NaN(0x46)", .toNearestOrEven)
+ /* ddcpn036 */ self.copynegate64("-NaN(0x46)", "NaN(0x46)", .toNearestOrEven)
+ /* ddcpn037 */ self.copynegate64("sNaN(0x65)", "-sNaN(0x65)", .toNearestOrEven)
+ /* ddcpn038 */ self.copynegate64("-sNaN(0x65)", "sNaN(0x65)", .toNearestOrEven)
+ /* ddcpn101 */ self.copynegate64("7", "-7", .toNearestOrEven)
+ /* ddcpn102 */ self.copynegate64("-7", "7", .toNearestOrEven)
+ /* ddcpn103 */ self.copynegate64("75", "-75", .toNearestOrEven)
+ /* ddcpn104 */ self.copynegate64("-75", "75", .toNearestOrEven)
+ /* ddcpn105 */ self.copynegate64("7.50", "-7.50", .toNearestOrEven)
+ /* ddcpn106 */ self.copynegate64("-7.50", "7.50", .toNearestOrEven)
+ /* ddcpn107 */ self.copynegate64("7.500", "-7.500", .toNearestOrEven)
+ /* ddcpn108 */ self.copynegate64("-7.500", "7.500", .toNearestOrEven)
+ /* ddcpn111 */ self.copynegate64("0", "-0", .toNearestOrEven)
+ /* ddcpn112 */ self.copynegate64("-0", "0", .toNearestOrEven)
+ /* ddcpn113 */ self.copynegate64("0E+4", "-0E+4", .toNearestOrEven)
+ /* ddcpn114 */ self.copynegate64("-0E+4", "0E+4", .toNearestOrEven)
+ /* ddcpn115 */ self.copynegate64("0.0000", "-0.0000", .toNearestOrEven)
+ /* ddcpn116 */ self.copynegate64("-0.0000", "0.0000", .toNearestOrEven)
+ /* ddcpn117 */ self.copynegate64("0E-141", "-0E-141", .toNearestOrEven)
+ /* ddcpn118 */ self.copynegate64("-0E-141", "0E-141", .toNearestOrEven)
+ /* ddcpn121 */ self.copynegate64("2682682682682682", "-2682682682682682", .toNearestOrEven)
+ /* ddcpn122 */ self.copynegate64("-2682682682682682", "2682682682682682", .toNearestOrEven)
+ /* ddcpn123 */ self.copynegate64("1341341341341341", "-1341341341341341", .toNearestOrEven)
+ /* ddcpn124 */ self.copynegate64("-1341341341341341", "1341341341341341", .toNearestOrEven)
+ /* ddcpn131 */ self.copynegate64("9.999999999999999E+384", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddcpn132 */ self.copynegate64("1E-383", "-1E-383", .toNearestOrEven)
+ /* ddcpn133 */ self.copynegate64("1.000000000000000E-383", "-1.000000000000000E-383", .toNearestOrEven)
+ /* ddcpn134 */ self.copynegate64("1E-398", "-1E-398", .toNearestOrEven)
+ /* ddcpn135 */ self.copynegate64("-1E-398", "1E-398", .toNearestOrEven)
+ /* ddcpn136 */ self.copynegate64("-1.000000000000000E-383", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddcpn137 */ self.copynegate64("-1E-383", "1E-383", .toNearestOrEven)
+ /* ddcpn138 */ self.copynegate64("-9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ }
+
+ private func copynegate64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = self.copyNegate(arg0)
+ self.assertEqual(result, expected, file, line)
+ }
+
+ func test_copynegate128() {
+ /* dqcan270 */ self.copynegate128("#6e080ff3fcff3fcfffffff3fcfffffff", "#ee080ff3fcff3fcfffffff3fcfffffff", .toNearestOrEven)
+ /* dqcan271 */ self.copynegate128("#ee080ff3fcff3ffff3fcff3ffff3fcff", "#6e080ff3fcff3ffff3fcff3ffff3fcff", .toNearestOrEven)
+ /* dqcan272 */ self.copynegate128("#7c000ff3fcffffffffffff3fcff3fcff", "#fc000ff3fcffffffffffff3fcff3fcff", .toNearestOrEven)
+ /* dqcan273 */ self.copynegate128("#7c080ff3fcff3fcff3fcff3fcff3fcff", "#fc080ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan274 */ self.copynegate128("#7e003ff3fcffffffffffffffcff3fcff", "#fe003ff3fcffffffffffffffcff3fcff", .toNearestOrEven)
+ /* dqcan275 */ self.copynegate128("#7e100ff3fcff3fcff3fcff3fcff3fcff", "#fe100ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan278 */ self.copynegate128("#78002000000000000000000000000000", "#f8002000000000000000000000000000", .toNearestOrEven)
+ /* dqcan279 */ self.copynegate128("#78000000000010000000000000100000", "#f8000000000010000000000000100000", .toNearestOrEven)
+ /* dqcpn001 */ self.copynegate128("+7.50", "-7.50", .toNearestOrEven)
+ /* dqcpn011 */ self.copynegate128("Infinity", "-Infinity", .toNearestOrEven)
+ /* dqcpn012 */ self.copynegate128("-Infinity", "Infinity", .toNearestOrEven)
+ /* dqcpn021 */ self.copynegate128("NaN", "-NaN", .toNearestOrEven)
+ /* dqcpn022 */ self.copynegate128("-NaN", "NaN", .toNearestOrEven)
+ /* dqcpn023 */ self.copynegate128("sNaN", "-sNaN", .toNearestOrEven)
+ /* dqcpn024 */ self.copynegate128("-sNaN", "sNaN", .toNearestOrEven)
+ /* dqcpn031 */ self.copynegate128("NaN(0xd)", "-NaN(0xd)", .toNearestOrEven)
+ /* dqcpn032 */ self.copynegate128("-NaN(0xd)", "NaN(0xd)", .toNearestOrEven)
+ /* dqcpn033 */ self.copynegate128("sNaN(0xd)", "-sNaN(0xd)", .toNearestOrEven)
+ /* dqcpn034 */ self.copynegate128("-sNaN(0xd)", "sNaN(0xd)", .toNearestOrEven)
+ /* dqcpn035 */ self.copynegate128("NaN(0x46)", "-NaN(0x46)", .toNearestOrEven)
+ /* dqcpn036 */ self.copynegate128("-NaN(0x46)", "NaN(0x46)", .toNearestOrEven)
+ /* dqcpn037 */ self.copynegate128("sNaN(0x65)", "-sNaN(0x65)", .toNearestOrEven)
+ /* dqcpn038 */ self.copynegate128("-sNaN(0x65)", "sNaN(0x65)", .toNearestOrEven)
+ /* dqcpn101 */ self.copynegate128("7", "-7", .toNearestOrEven)
+ /* dqcpn102 */ self.copynegate128("-7", "7", .toNearestOrEven)
+ /* dqcpn103 */ self.copynegate128("75", "-75", .toNearestOrEven)
+ /* dqcpn104 */ self.copynegate128("-75", "75", .toNearestOrEven)
+ /* dqcpn105 */ self.copynegate128("7.50", "-7.50", .toNearestOrEven)
+ /* dqcpn106 */ self.copynegate128("-7.50", "7.50", .toNearestOrEven)
+ /* dqcpn107 */ self.copynegate128("7.500", "-7.500", .toNearestOrEven)
+ /* dqcpn108 */ self.copynegate128("-7.500", "7.500", .toNearestOrEven)
+ /* dqcpn111 */ self.copynegate128("0", "-0", .toNearestOrEven)
+ /* dqcpn112 */ self.copynegate128("-0", "0", .toNearestOrEven)
+ /* dqcpn113 */ self.copynegate128("0E+4", "-0E+4", .toNearestOrEven)
+ /* dqcpn114 */ self.copynegate128("-0E+4", "0E+4", .toNearestOrEven)
+ /* dqcpn115 */ self.copynegate128("0.0000", "-0.0000", .toNearestOrEven)
+ /* dqcpn116 */ self.copynegate128("-0.0000", "0.0000", .toNearestOrEven)
+ /* dqcpn117 */ self.copynegate128("0E-141", "-0E-141", .toNearestOrEven)
+ /* dqcpn118 */ self.copynegate128("-0E-141", "0E-141", .toNearestOrEven)
+ /* dqcpn121 */ self.copynegate128("2682682682682682682682682682682682", "-2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqcpn122 */ self.copynegate128("-2682682682682682682682682682682682", "2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqcpn123 */ self.copynegate128("1341341341341341341341341341341341", "-1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqcpn124 */ self.copynegate128("-1341341341341341341341341341341341", "1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqcpn131 */ self.copynegate128("9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqcpn132 */ self.copynegate128("1E-6143", "-1E-6143", .toNearestOrEven)
+ /* dqcpn133 */ self.copynegate128("1.000000000000000000000000000000000E-6143", "-1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqcpn134 */ self.copynegate128("1E-6176", "-1E-6176", .toNearestOrEven)
+ /* dqcpn135 */ self.copynegate128("-1E-6176", "1E-6176", .toNearestOrEven)
+ /* dqcpn136 */ self.copynegate128("-1.000000000000000000000000000000000E-6143", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqcpn137 */ self.copynegate128("-1E-6143", "1E-6143", .toNearestOrEven)
+ /* dqcpn138 */ self.copynegate128("-9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ }
+
+ private func copynegate128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = self.copyNegate(arg0)
+ self.assertEqual(result, expected, file, line)
+ }
+
+ // MARK: - Copysign
+
+ func test_copysign64() {
+ /* ddcan280 */ self.copysign64("#77ffff3fcff3fcff", "-1", "#f7ffff3fcff3fcff", .toNearestOrEven)
+ /* ddcan281 */ self.copysign64("#77fcff3fdff3fcff", "1", "#77fcff3fdff3fcff", .toNearestOrEven)
+ /* ddcan282 */ self.copysign64("#7c03ff3fcff3fcff", "-1", "#fc03ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan283 */ self.copysign64("#7c00ff3fcff3ffff", "1", "#7c00ff3fcff3ffff", .toNearestOrEven)
+ /* ddcan284 */ self.copysign64("#7d00ff3fcff3fcff", "-1", "#fd00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan285 */ self.copysign64("#7c04ff3fcff3fcff", "1", "#7c04ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan286 */ self.copysign64("#7e00ff3fcffffcff", "-1", "#fe00ff3fcffffcff", .toNearestOrEven)
+ /* ddcan287 */ self.copysign64("#7e40ff3fcff3fcff", "1", "#7e40ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan288 */ self.copysign64("#7a00000000000000", "-1", "#fa00000000000000", .toNearestOrEven)
+ /* ddcan289 */ self.copysign64("#7800200000000000", "1", "#7800200000000000", .toNearestOrEven)
+ /* ddcps001 */ self.copysign64("+7.50", "11", "7.50", .toNearestOrEven)
+ /* ddcps011 */ self.copysign64("Infinity", "11", "Infinity", .toNearestOrEven)
+ /* ddcps012 */ self.copysign64("-Infinity", "11", "Infinity", .toNearestOrEven)
+ /* ddcps021 */ self.copysign64("NaN", "11", "NaN", .toNearestOrEven)
+ /* ddcps022 */ self.copysign64("-NaN", "11", "NaN", .toNearestOrEven)
+ /* ddcps023 */ self.copysign64("sNaN", "11", "sNaN", .toNearestOrEven)
+ /* ddcps024 */ self.copysign64("-sNaN", "11", "sNaN", .toNearestOrEven)
+ /* ddcps031 */ self.copysign64("NaN(0xa)", "11", "NaN(0xa)", .toNearestOrEven)
+ /* ddcps032 */ self.copysign64("-NaN(0xa)", "11", "NaN(0xa)", .toNearestOrEven)
+ /* ddcps033 */ self.copysign64("sNaN(0xa)", "11", "sNaN(0xa)", .toNearestOrEven)
+ /* ddcps034 */ self.copysign64("-sNaN(0xa)", "11", "sNaN(0xa)", .toNearestOrEven)
+ /* ddcps035 */ self.copysign64("NaN(0x7)", "11", "NaN(0x7)", .toNearestOrEven)
+ /* ddcps036 */ self.copysign64("-NaN(0x7)", "11", "NaN(0x7)", .toNearestOrEven)
+ /* ddcps037 */ self.copysign64("sNaN(0x65)", "11", "sNaN(0x65)", .toNearestOrEven)
+ /* ddcps038 */ self.copysign64("-sNaN(0x65)", "11", "sNaN(0x65)", .toNearestOrEven)
+ /* ddcps101 */ self.copysign64("7", "11", "7", .toNearestOrEven)
+ /* ddcps102 */ self.copysign64("-7", "11", "7", .toNearestOrEven)
+ /* ddcps103 */ self.copysign64("75", "11", "75", .toNearestOrEven)
+ /* ddcps104 */ self.copysign64("-75", "11", "75", .toNearestOrEven)
+ /* ddcps105 */ self.copysign64("7.50", "11", "7.50", .toNearestOrEven)
+ /* ddcps106 */ self.copysign64("-7.50", "11", "7.50", .toNearestOrEven)
+ /* ddcps107 */ self.copysign64("7.500", "11", "7.500", .toNearestOrEven)
+ /* ddcps108 */ self.copysign64("-7.500", "11", "7.500", .toNearestOrEven)
+ /* ddcps111 */ self.copysign64("0", "11", "0", .toNearestOrEven)
+ /* ddcps112 */ self.copysign64("-0", "11", "0", .toNearestOrEven)
+ /* ddcps113 */ self.copysign64("0E+4", "11", "0E+4", .toNearestOrEven)
+ /* ddcps114 */ self.copysign64("-0E+4", "11", "0E+4", .toNearestOrEven)
+ /* ddcps115 */ self.copysign64("0.0000", "11", "0.0000", .toNearestOrEven)
+ /* ddcps116 */ self.copysign64("-0.0000", "11", "0.0000", .toNearestOrEven)
+ /* ddcps117 */ self.copysign64("0E-141", "11", "0E-141", .toNearestOrEven)
+ /* ddcps118 */ self.copysign64("-0E-141", "11", "0E-141", .toNearestOrEven)
+ /* ddcps121 */ self.copysign64("2682682682682682", "11", "2682682682682682", .toNearestOrEven)
+ /* ddcps122 */ self.copysign64("-2682682682682682", "11", "2682682682682682", .toNearestOrEven)
+ /* ddcps123 */ self.copysign64("1341341341341341", "11", "1341341341341341", .toNearestOrEven)
+ /* ddcps124 */ self.copysign64("-1341341341341341", "11", "1341341341341341", .toNearestOrEven)
+ /* ddcps131 */ self.copysign64("9.999999999999999E+384", "11", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddcps132 */ self.copysign64("1E-383", "11", "1E-383", .toNearestOrEven)
+ /* ddcps133 */ self.copysign64("1.000000000000000E-383", "11", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddcps134 */ self.copysign64("1E-398", "11", "1E-398", .toNearestOrEven)
+ /* ddcps135 */ self.copysign64("-1E-398", "11", "1E-398", .toNearestOrEven)
+ /* ddcps136 */ self.copysign64("-1.000000000000000E-383", "11", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddcps137 */ self.copysign64("-1E-383", "11", "1E-383", .toNearestOrEven)
+ /* ddcps138 */ self.copysign64("-9.999999999999999E+384", "11", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddcps211 */ self.copysign64("Infinity", "-34", "-Infinity", .toNearestOrEven)
+ /* ddcps212 */ self.copysign64("-Infinity", "-34", "-Infinity", .toNearestOrEven)
+ /* ddcps221 */ self.copysign64("NaN", "-34", "-NaN", .toNearestOrEven)
+ /* ddcps222 */ self.copysign64("-NaN", "-34", "-NaN", .toNearestOrEven)
+ /* ddcps223 */ self.copysign64("sNaN", "-34", "-sNaN", .toNearestOrEven)
+ /* ddcps224 */ self.copysign64("-sNaN", "-34", "-sNaN", .toNearestOrEven)
+ /* ddcps231 */ self.copysign64("NaN(0xa)", "-34", "-NaN(0xa)", .toNearestOrEven)
+ /* ddcps232 */ self.copysign64("-NaN(0xa)", "-34", "-NaN(0xa)", .toNearestOrEven)
+ /* ddcps233 */ self.copysign64("sNaN(0xa)", "-34", "-sNaN(0xa)", .toNearestOrEven)
+ /* ddcps234 */ self.copysign64("-sNaN(0xa)", "-34", "-sNaN(0xa)", .toNearestOrEven)
+ /* ddcps235 */ self.copysign64("NaN(0x7)", "-34", "-NaN(0x7)", .toNearestOrEven)
+ /* ddcps236 */ self.copysign64("-NaN(0x7)", "-34", "-NaN(0x7)", .toNearestOrEven)
+ /* ddcps237 */ self.copysign64("sNaN(0x65)", "-34", "-sNaN(0x65)", .toNearestOrEven)
+ /* ddcps238 */ self.copysign64("-sNaN(0x65)", "-34", "-sNaN(0x65)", .toNearestOrEven)
+ /* ddcps301 */ self.copysign64("7", "-34", "-7", .toNearestOrEven)
+ /* ddcps302 */ self.copysign64("-7", "-34", "-7", .toNearestOrEven)
+ /* ddcps303 */ self.copysign64("75", "-34", "-75", .toNearestOrEven)
+ /* ddcps304 */ self.copysign64("-75", "-34", "-75", .toNearestOrEven)
+ /* ddcps305 */ self.copysign64("7.50", "-34", "-7.50", .toNearestOrEven)
+ /* ddcps306 */ self.copysign64("-7.50", "-34", "-7.50", .toNearestOrEven)
+ /* ddcps307 */ self.copysign64("7.500", "-34", "-7.500", .toNearestOrEven)
+ /* ddcps308 */ self.copysign64("-7.500", "-34", "-7.500", .toNearestOrEven)
+ /* ddcps311 */ self.copysign64("0", "-34", "-0", .toNearestOrEven)
+ /* ddcps312 */ self.copysign64("-0", "-34", "-0", .toNearestOrEven)
+ /* ddcps313 */ self.copysign64("0E+4", "-34", "-0E+4", .toNearestOrEven)
+ /* ddcps314 */ self.copysign64("-0E+4", "-34", "-0E+4", .toNearestOrEven)
+ /* ddcps315 */ self.copysign64("0.0000", "-34", "-0.0000", .toNearestOrEven)
+ /* ddcps316 */ self.copysign64("-0.0000", "-34", "-0.0000", .toNearestOrEven)
+ /* ddcps317 */ self.copysign64("0E-141", "-34", "-0E-141", .toNearestOrEven)
+ /* ddcps318 */ self.copysign64("-0E-141", "-34", "-0E-141", .toNearestOrEven)
+ /* ddcps321 */ self.copysign64("2682682682682682", "-34", "-2682682682682682", .toNearestOrEven)
+ /* ddcps322 */ self.copysign64("-2682682682682682", "-34", "-2682682682682682", .toNearestOrEven)
+ /* ddcps323 */ self.copysign64("1341341341341341", "-34", "-1341341341341341", .toNearestOrEven)
+ /* ddcps324 */ self.copysign64("-1341341341341341", "-34", "-1341341341341341", .toNearestOrEven)
+ /* ddcps331 */ self.copysign64("9.999999999999999E+384", "-34", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddcps332 */ self.copysign64("1E-383", "-34", "-1E-383", .toNearestOrEven)
+ /* ddcps333 */ self.copysign64("1.000000000000000E-383", "-34", "-1.000000000000000E-383", .toNearestOrEven)
+ /* ddcps334 */ self.copysign64("1E-398", "-34", "-1E-398", .toNearestOrEven)
+ /* ddcps335 */ self.copysign64("-1E-398", "-34", "-1E-398", .toNearestOrEven)
+ /* ddcps336 */ self.copysign64("-1.000000000000000E-383", "-34", "-1.000000000000000E-383", .toNearestOrEven)
+ /* ddcps337 */ self.copysign64("-1E-383", "-34", "-1E-383", .toNearestOrEven)
+ /* ddcps338 */ self.copysign64("-9.999999999999999E+384", "-34", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddcps401 */ self.copysign64("701", "-34", "-701", .toNearestOrEven)
+ /* ddcps402 */ self.copysign64("-720", "-34", "-720", .toNearestOrEven)
+ /* ddcps403 */ self.copysign64("701", "-0", "-701", .toNearestOrEven)
+ /* ddcps404 */ self.copysign64("-720", "-0", "-720", .toNearestOrEven)
+ /* ddcps405 */ self.copysign64("701", "+0", "701", .toNearestOrEven)
+ /* ddcps406 */ self.copysign64("-720", "+0", "720", .toNearestOrEven)
+ /* ddcps407 */ self.copysign64("701", "+34", "701", .toNearestOrEven)
+ /* ddcps408 */ self.copysign64("-720", "+34", "720", .toNearestOrEven)
+ /* ddcps413 */ self.copysign64("701", "-Inf", "-701", .toNearestOrEven)
+ /* ddcps414 */ self.copysign64("-720", "-Inf", "-720", .toNearestOrEven)
+ /* ddcps415 */ self.copysign64("701", "+Inf", "701", .toNearestOrEven)
+ /* ddcps416 */ self.copysign64("-720", "+Inf", "720", .toNearestOrEven)
+ /* ddcps420 */ self.copysign64("701", "-NaN", "-701", .toNearestOrEven)
+ /* ddcps421 */ self.copysign64("-720", "-NaN", "-720", .toNearestOrEven)
+ /* ddcps422 */ self.copysign64("701", "+NaN", "701", .toNearestOrEven)
+ /* ddcps423 */ self.copysign64("-720", "+NaN", "720", .toNearestOrEven)
+ /* ddcps425 */ self.copysign64("-720", "+NaN(0x8)", "720", .toNearestOrEven)
+ /* ddcps426 */ self.copysign64("701", "-sNaN", "-701", .toNearestOrEven)
+ /* ddcps427 */ self.copysign64("-720", "-sNaN", "-720", .toNearestOrEven)
+ /* ddcps428 */ self.copysign64("701", "+sNaN", "701", .toNearestOrEven)
+ /* ddcps429 */ self.copysign64("-720", "+sNaN", "720", .toNearestOrEven)
+ /* ddcps430 */ self.copysign64("-720", "+sNaN(0x3)", "720", .toNearestOrEven)
+ }
+
+ private func copysign64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = Decimal64(signOf: arg1, magnitudeOf: arg0)
+ self.assertEqual(result, expected, file, line)
+ }
+
+ func test_copysign128() {
+ /* dqcan280 */ self.copysign128("#6e080ff3fcff3fcfffffff3fcfffffff", "-1", "#ee080ff3fcff3fcfffffff3fcfffffff", .toNearestOrEven)
+ /* dqcan281 */ self.copysign128("#ee080ff3fcff3ffff3fcff3ffff3fcff", "1", "#6e080ff3fcff3ffff3fcff3ffff3fcff", .toNearestOrEven)
+ /* dqcan282 */ self.copysign128("#7c000ff3fcffffffffffffffcff3fcff", "-1", "#fc000ff3fcffffffffffffffcff3fcff", .toNearestOrEven)
+ /* dqcan283 */ self.copysign128("#7c080ff3fcff3fcff3fcff3fcff3fcff", "1", "#7c080ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan284 */ self.copysign128("#7e003ff3fcffffffffffffffcff3fcff", "-1", "#fe003ff3fcffffffffffffffcff3fcff", .toNearestOrEven)
+ /* dqcan285 */ self.copysign128("#7e100ff3fcff3fcff3fcff3fcff3fcff", "1", "#7e100ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan288 */ self.copysign128("#78002000000000000000000000000000", "-1", "#f8002000000000000000000000000000", .toNearestOrEven)
+ /* dqcan289 */ self.copysign128("#78000000000010000000000000100000", "1", "#78000000000010000000000000100000", .toNearestOrEven)
+ /* dqcps001 */ self.copysign128("+7.50", "11", "7.50", .toNearestOrEven)
+ /* dqcps011 */ self.copysign128("Infinity", "11", "Infinity", .toNearestOrEven)
+ /* dqcps012 */ self.copysign128("-Infinity", "11", "Infinity", .toNearestOrEven)
+ /* dqcps021 */ self.copysign128("NaN", "11", "NaN", .toNearestOrEven)
+ /* dqcps022 */ self.copysign128("-NaN", "11", "NaN", .toNearestOrEven)
+ /* dqcps023 */ self.copysign128("sNaN", "11", "sNaN", .toNearestOrEven)
+ /* dqcps024 */ self.copysign128("-sNaN", "11", "sNaN", .toNearestOrEven)
+ /* dqcps031 */ self.copysign128("NaN(0xa)", "11", "NaN(0xa)", .toNearestOrEven)
+ /* dqcps032 */ self.copysign128("-NaN(0xa)", "11", "NaN(0xa)", .toNearestOrEven)
+ /* dqcps033 */ self.copysign128("sNaN(0xa)", "11", "sNaN(0xa)", .toNearestOrEven)
+ /* dqcps034 */ self.copysign128("-sNaN(0xa)", "11", "sNaN(0xa)", .toNearestOrEven)
+ /* dqcps035 */ self.copysign128("NaN(0x7)", "11", "NaN(0x7)", .toNearestOrEven)
+ /* dqcps036 */ self.copysign128("-NaN(0x7)", "11", "NaN(0x7)", .toNearestOrEven)
+ /* dqcps037 */ self.copysign128("sNaN(0x65)", "11", "sNaN(0x65)", .toNearestOrEven)
+ /* dqcps038 */ self.copysign128("-sNaN(0x65)", "11", "sNaN(0x65)", .toNearestOrEven)
+ /* dqcps101 */ self.copysign128("7", "11", "7", .toNearestOrEven)
+ /* dqcps102 */ self.copysign128("-7", "11", "7", .toNearestOrEven)
+ /* dqcps103 */ self.copysign128("75", "11", "75", .toNearestOrEven)
+ /* dqcps104 */ self.copysign128("-75", "11", "75", .toNearestOrEven)
+ /* dqcps105 */ self.copysign128("7.50", "11", "7.50", .toNearestOrEven)
+ /* dqcps106 */ self.copysign128("-7.50", "11", "7.50", .toNearestOrEven)
+ /* dqcps107 */ self.copysign128("7.500", "11", "7.500", .toNearestOrEven)
+ /* dqcps108 */ self.copysign128("-7.500", "11", "7.500", .toNearestOrEven)
+ /* dqcps111 */ self.copysign128("0", "11", "0", .toNearestOrEven)
+ /* dqcps112 */ self.copysign128("-0", "11", "0", .toNearestOrEven)
+ /* dqcps113 */ self.copysign128("0E+4", "11", "0E+4", .toNearestOrEven)
+ /* dqcps114 */ self.copysign128("-0E+4", "11", "0E+4", .toNearestOrEven)
+ /* dqcps115 */ self.copysign128("0.0000", "11", "0.0000", .toNearestOrEven)
+ /* dqcps116 */ self.copysign128("-0.0000", "11", "0.0000", .toNearestOrEven)
+ /* dqcps117 */ self.copysign128("0E-141", "11", "0E-141", .toNearestOrEven)
+ /* dqcps118 */ self.copysign128("-0E-141", "11", "0E-141", .toNearestOrEven)
+ /* dqcps121 */ self.copysign128("2682682682682682682682682682682682", "8", "2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqcps122 */ self.copysign128("-2682682682682682682682682682682682", "8", "2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqcps123 */ self.copysign128("1341341341341341341341341341341341", "8", "1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqcps124 */ self.copysign128("-1341341341341341341341341341341341", "8", "1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqcps131 */ self.copysign128("9.999999999999999999999999999999999E+6144", "8", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqcps132 */ self.copysign128("1E-6143", "8", "1E-6143", .toNearestOrEven)
+ /* dqcps133 */ self.copysign128("1.000000000000000000000000000000000E-6143", "8", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqcps134 */ self.copysign128("1E-6176", "8", "1E-6176", .toNearestOrEven)
+ /* dqcps135 */ self.copysign128("-1E-6176", "8", "1E-6176", .toNearestOrEven)
+ /* dqcps136 */ self.copysign128("-1.000000000000000000000000000000000E-6143", "8", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqcps137 */ self.copysign128("-1E-6143", "8", "1E-6143", .toNearestOrEven)
+ /* dqcps138 */ self.copysign128("-9.999999999999999999999999999999999E+6144", "8", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqcps211 */ self.copysign128("Infinity", "-34", "-Infinity", .toNearestOrEven)
+ /* dqcps212 */ self.copysign128("-Infinity", "-34", "-Infinity", .toNearestOrEven)
+ /* dqcps221 */ self.copysign128("NaN", "-34", "-NaN", .toNearestOrEven)
+ /* dqcps222 */ self.copysign128("-NaN", "-34", "-NaN", .toNearestOrEven)
+ /* dqcps223 */ self.copysign128("sNaN", "-34", "-sNaN", .toNearestOrEven)
+ /* dqcps224 */ self.copysign128("-sNaN", "-34", "-sNaN", .toNearestOrEven)
+ /* dqcps231 */ self.copysign128("NaN(0xa)", "-34", "-NaN(0xa)", .toNearestOrEven)
+ /* dqcps232 */ self.copysign128("-NaN(0xa)", "-34", "-NaN(0xa)", .toNearestOrEven)
+ /* dqcps233 */ self.copysign128("sNaN(0xa)", "-34", "-sNaN(0xa)", .toNearestOrEven)
+ /* dqcps234 */ self.copysign128("-sNaN(0xa)", "-34", "-sNaN(0xa)", .toNearestOrEven)
+ /* dqcps235 */ self.copysign128("NaN(0x7)", "-34", "-NaN(0x7)", .toNearestOrEven)
+ /* dqcps236 */ self.copysign128("-NaN(0x7)", "-34", "-NaN(0x7)", .toNearestOrEven)
+ /* dqcps237 */ self.copysign128("sNaN(0x65)", "-34", "-sNaN(0x65)", .toNearestOrEven)
+ /* dqcps238 */ self.copysign128("-sNaN(0x65)", "-34", "-sNaN(0x65)", .toNearestOrEven)
+ /* dqcps301 */ self.copysign128("7", "-34", "-7", .toNearestOrEven)
+ /* dqcps302 */ self.copysign128("-7", "-34", "-7", .toNearestOrEven)
+ /* dqcps303 */ self.copysign128("75", "-34", "-75", .toNearestOrEven)
+ /* dqcps304 */ self.copysign128("-75", "-34", "-75", .toNearestOrEven)
+ /* dqcps305 */ self.copysign128("7.50", "-34", "-7.50", .toNearestOrEven)
+ /* dqcps306 */ self.copysign128("-7.50", "-34", "-7.50", .toNearestOrEven)
+ /* dqcps307 */ self.copysign128("7.500", "-34", "-7.500", .toNearestOrEven)
+ /* dqcps308 */ self.copysign128("-7.500", "-34", "-7.500", .toNearestOrEven)
+ /* dqcps311 */ self.copysign128("0", "-34", "-0", .toNearestOrEven)
+ /* dqcps312 */ self.copysign128("-0", "-34", "-0", .toNearestOrEven)
+ /* dqcps313 */ self.copysign128("0E+4", "-34", "-0E+4", .toNearestOrEven)
+ /* dqcps314 */ self.copysign128("-0E+4", "-34", "-0E+4", .toNearestOrEven)
+ /* dqcps315 */ self.copysign128("0.0000", "-34", "-0.0000", .toNearestOrEven)
+ /* dqcps316 */ self.copysign128("-0.0000", "-34", "-0.0000", .toNearestOrEven)
+ /* dqcps317 */ self.copysign128("0E-141", "-34", "-0E-141", .toNearestOrEven)
+ /* dqcps318 */ self.copysign128("-0E-141", "-34", "-0E-141", .toNearestOrEven)
+ /* dqcps321 */ self.copysign128("2682682682682682682682682682682682", "-9", "-2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqcps322 */ self.copysign128("-2682682682682682682682682682682682", "-9", "-2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqcps323 */ self.copysign128("1341341341341341341341341341341341", "-9", "-1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqcps324 */ self.copysign128("-1341341341341341341341341341341341", "-9", "-1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqcps331 */ self.copysign128("9.999999999999999999999999999999999E+6144", "-1", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqcps332 */ self.copysign128("1E-6143", "-1", "-1E-6143", .toNearestOrEven)
+ /* dqcps333 */ self.copysign128("1.000000000000000000000000000000000E-6143", "-1", "-1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqcps334 */ self.copysign128("1E-6176", "-1", "-1E-6176", .toNearestOrEven)
+ /* dqcps335 */ self.copysign128("-1E-6176", "-3", "-1E-6176", .toNearestOrEven)
+ /* dqcps336 */ self.copysign128("-1.000000000000000000000000000000000E-6143", "-3", "-1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqcps337 */ self.copysign128("-1E-6143", "-3", "-1E-6143", .toNearestOrEven)
+ /* dqcps338 */ self.copysign128("-9.999999999999999999999999999999999E+6144", "-3", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqcps401 */ self.copysign128("701", "-34", "-701", .toNearestOrEven)
+ /* dqcps402 */ self.copysign128("-720", "-34", "-720", .toNearestOrEven)
+ /* dqcps403 */ self.copysign128("701", "-0", "-701", .toNearestOrEven)
+ /* dqcps404 */ self.copysign128("-720", "-0", "-720", .toNearestOrEven)
+ /* dqcps405 */ self.copysign128("701", "+0", "701", .toNearestOrEven)
+ /* dqcps406 */ self.copysign128("-720", "+0", "720", .toNearestOrEven)
+ /* dqcps407 */ self.copysign128("701", "+34", "701", .toNearestOrEven)
+ /* dqcps408 */ self.copysign128("-720", "+34", "720", .toNearestOrEven)
+ /* dqcps413 */ self.copysign128("701", "-Inf", "-701", .toNearestOrEven)
+ /* dqcps414 */ self.copysign128("-720", "-Inf", "-720", .toNearestOrEven)
+ /* dqcps415 */ self.copysign128("701", "+Inf", "701", .toNearestOrEven)
+ /* dqcps416 */ self.copysign128("-720", "+Inf", "720", .toNearestOrEven)
+ /* dqcps420 */ self.copysign128("701", "-NaN", "-701", .toNearestOrEven)
+ /* dqcps421 */ self.copysign128("-720", "-NaN", "-720", .toNearestOrEven)
+ /* dqcps422 */ self.copysign128("701", "+NaN", "701", .toNearestOrEven)
+ /* dqcps423 */ self.copysign128("-720", "+NaN", "720", .toNearestOrEven)
+ /* dqcps425 */ self.copysign128("-720", "+NaN(0x8)", "720", .toNearestOrEven)
+ /* dqcps426 */ self.copysign128("701", "-sNaN", "-701", .toNearestOrEven)
+ /* dqcps427 */ self.copysign128("-720", "-sNaN", "-720", .toNearestOrEven)
+ /* dqcps428 */ self.copysign128("701", "+sNaN", "701", .toNearestOrEven)
+ /* dqcps429 */ self.copysign128("-720", "+sNaN", "720", .toNearestOrEven)
+ /* dqcps430 */ self.copysign128("-720", "+sNaN(0x3)", "720", .toNearestOrEven)
+ }
+
+ private func copysign128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = Decimal128(signOf: arg1, magnitudeOf: arg0)
+ self.assertEqual(result, expected, file, line)
+ }
+
+ // MARK: - Reduce
+
+ func test_reduce64() {
+ /* ddred001 */ self.reduce64("1", "1", .toNearestOrEven)
+ /* ddred002 */ self.reduce64("-1", "-1", .toNearestOrEven)
+ /* ddred003 */ self.reduce64("1.00", "1", .toNearestOrEven)
+ /* ddred004 */ self.reduce64("-1.00", "-1", .toNearestOrEven)
+ /* ddred005 */ self.reduce64("0", "0", .toNearestOrEven)
+ /* ddred006 */ self.reduce64("0.00", "0", .toNearestOrEven)
+ /* ddred007 */ self.reduce64("00.0", "0", .toNearestOrEven)
+ /* ddred008 */ self.reduce64("00.00", "0", .toNearestOrEven)
+ /* ddred009 */ self.reduce64("00", "0", .toNearestOrEven)
+ /* ddred010 */ self.reduce64("0E+1", "0", .toNearestOrEven)
+ /* ddred011 */ self.reduce64("0E+5", "0", .toNearestOrEven)
+ /* ddred012 */ self.reduce64("-2", "-2", .toNearestOrEven)
+ /* ddred013 */ self.reduce64("2", "2", .toNearestOrEven)
+ /* ddred014 */ self.reduce64("-2.00", "-2", .toNearestOrEven)
+ /* ddred015 */ self.reduce64("2.00", "2", .toNearestOrEven)
+ /* ddred016 */ self.reduce64("-0", "-0", .toNearestOrEven)
+ /* ddred017 */ self.reduce64("-0.00", "-0", .toNearestOrEven)
+ /* ddred018 */ self.reduce64("-00.0", "-0", .toNearestOrEven)
+ /* ddred019 */ self.reduce64("-00.00", "-0", .toNearestOrEven)
+ /* ddred020 */ self.reduce64("-00", "-0", .toNearestOrEven)
+ /* ddred021 */ self.reduce64("-0E+5", "-0", .toNearestOrEven)
+ /* ddred022 */ self.reduce64("-0E+1", "-0", .toNearestOrEven)
+ /* ddred030 */ self.reduce64("+0.1", "0.1", .toNearestOrEven)
+ /* ddred031 */ self.reduce64("-0.1", "-0.1", .toNearestOrEven)
+ /* ddred032 */ self.reduce64("+0.01", "0.01", .toNearestOrEven)
+ /* ddred033 */ self.reduce64("-0.01", "-0.01", .toNearestOrEven)
+ /* ddred034 */ self.reduce64("+0.001", "0.001", .toNearestOrEven)
+ /* ddred035 */ self.reduce64("-0.001", "-0.001", .toNearestOrEven)
+ /* ddred036 */ self.reduce64("+0.000001", "0.000001", .toNearestOrEven)
+ /* ddred037 */ self.reduce64("-0.000001", "-0.000001", .toNearestOrEven)
+ /* ddred038 */ self.reduce64("+0.000000000001", "1E-12", .toNearestOrEven)
+ /* ddred039 */ self.reduce64("-0.000000000001", "-1E-12", .toNearestOrEven)
+ /* ddred041 */ self.reduce64("1.1", "1.1", .toNearestOrEven)
+ /* ddred042 */ self.reduce64("1.10", "1.1", .toNearestOrEven)
+ /* ddred043 */ self.reduce64("1.100", "1.1", .toNearestOrEven)
+ /* ddred044 */ self.reduce64("1.110", "1.11", .toNearestOrEven)
+ /* ddred045 */ self.reduce64("-1.1", "-1.1", .toNearestOrEven)
+ /* ddred046 */ self.reduce64("-1.10", "-1.1", .toNearestOrEven)
+ /* ddred047 */ self.reduce64("-1.100", "-1.1", .toNearestOrEven)
+ /* ddred048 */ self.reduce64("-1.110", "-1.11", .toNearestOrEven)
+ /* ddred049 */ self.reduce64("9.9", "9.9", .toNearestOrEven)
+ /* ddred050 */ self.reduce64("9.90", "9.9", .toNearestOrEven)
+ /* ddred051 */ self.reduce64("9.900", "9.9", .toNearestOrEven)
+ /* ddred052 */ self.reduce64("9.990", "9.99", .toNearestOrEven)
+ /* ddred053 */ self.reduce64("-9.9", "-9.9", .toNearestOrEven)
+ /* ddred054 */ self.reduce64("-9.90", "-9.9", .toNearestOrEven)
+ /* ddred055 */ self.reduce64("-9.900", "-9.9", .toNearestOrEven)
+ /* ddred056 */ self.reduce64("-9.990", "-9.99", .toNearestOrEven)
+ /* ddred060 */ self.reduce64("10.0", "1E+1", .toNearestOrEven)
+ /* ddred061 */ self.reduce64("10.00", "1E+1", .toNearestOrEven)
+ /* ddred062 */ self.reduce64("100.0", "1E+2", .toNearestOrEven)
+ /* ddred063 */ self.reduce64("100.00", "1E+2", .toNearestOrEven)
+ /* ddred064 */ self.reduce64("1.1000E+3", "1.1E+3", .toNearestOrEven)
+ /* ddred065 */ self.reduce64("1.10000E+3", "1.1E+3", .toNearestOrEven)
+ /* ddred066 */ self.reduce64("-10.0", "-1E+1", .toNearestOrEven)
+ /* ddred067 */ self.reduce64("-10.00", "-1E+1", .toNearestOrEven)
+ /* ddred068 */ self.reduce64("-100.0", "-1E+2", .toNearestOrEven)
+ /* ddred069 */ self.reduce64("-100.00", "-1E+2", .toNearestOrEven)
+ /* ddred070 */ self.reduce64("-1.1000E+3", "-1.1E+3", .toNearestOrEven)
+ /* ddred071 */ self.reduce64("-1.10000E+3", "-1.1E+3", .toNearestOrEven)
+ /* ddred080 */ self.reduce64("10E+1", "1E+2", .toNearestOrEven)
+ /* ddred081 */ self.reduce64("100E+1", "1E+3", .toNearestOrEven)
+ /* ddred082 */ self.reduce64("1.0E+2", "1E+2", .toNearestOrEven)
+ /* ddred083 */ self.reduce64("1.0E+3", "1E+3", .toNearestOrEven)
+ /* ddred084 */ self.reduce64("1.1E+3", "1.1E+3", .toNearestOrEven)
+ /* ddred085 */ self.reduce64("1.00E+3", "1E+3", .toNearestOrEven)
+ /* ddred086 */ self.reduce64("1.10E+3", "1.1E+3", .toNearestOrEven)
+ /* ddred087 */ self.reduce64("-10E+1", "-1E+2", .toNearestOrEven)
+ /* ddred088 */ self.reduce64("-100E+1", "-1E+3", .toNearestOrEven)
+ /* ddred089 */ self.reduce64("-1.0E+2", "-1E+2", .toNearestOrEven)
+ /* ddred090 */ self.reduce64("-1.0E+3", "-1E+3", .toNearestOrEven)
+ /* ddred091 */ self.reduce64("-1.1E+3", "-1.1E+3", .toNearestOrEven)
+ /* ddred092 */ self.reduce64("-1.00E+3", "-1E+3", .toNearestOrEven)
+ /* ddred093 */ self.reduce64("-1.10E+3", "-1.1E+3", .toNearestOrEven)
+ /* ddred100 */ self.reduce64("11", "11", .toNearestOrEven)
+ /* ddred101 */ self.reduce64("10", "1E+1", .toNearestOrEven)
+ /* ddred102 */ self.reduce64("10.", "1E+1", .toNearestOrEven)
+ /* ddred103 */ self.reduce64("1.1E+1", "11", .toNearestOrEven)
+ /* ddred104 */ self.reduce64("1.0E+1", "1E+1", .toNearestOrEven)
+ /* ddred105 */ self.reduce64("1.10E+2", "1.1E+2", .toNearestOrEven)
+ /* ddred106 */ self.reduce64("1.00E+2", "1E+2", .toNearestOrEven)
+ /* ddred107 */ self.reduce64("1.100E+3", "1.1E+3", .toNearestOrEven)
+ /* ddred108 */ self.reduce64("1.000E+3", "1E+3", .toNearestOrEven)
+ /* ddred109 */ self.reduce64("1.000000E+6", "1E+6", .toNearestOrEven)
+ /* ddred110 */ self.reduce64("-11", "-11", .toNearestOrEven)
+ /* ddred111 */ self.reduce64("-10", "-1E+1", .toNearestOrEven)
+ /* ddred112 */ self.reduce64("-10.", "-1E+1", .toNearestOrEven)
+ /* ddred113 */ self.reduce64("-1.1E+1", "-11", .toNearestOrEven)
+ /* ddred114 */ self.reduce64("-1.0E+1", "-1E+1", .toNearestOrEven)
+ /* ddred115 */ self.reduce64("-1.10E+2", "-1.1E+2", .toNearestOrEven)
+ /* ddred116 */ self.reduce64("-1.00E+2", "-1E+2", .toNearestOrEven)
+ /* ddred117 */ self.reduce64("-1.100E+3", "-1.1E+3", .toNearestOrEven)
+ /* ddred118 */ self.reduce64("-1.000E+3", "-1E+3", .toNearestOrEven)
+ /* ddred119 */ self.reduce64("-1.00000E+5", "-1E+5", .toNearestOrEven)
+ /* ddred120 */ self.reduce64("-1.000000E+6", "-1E+6", .toNearestOrEven)
+ /* ddred121 */ self.reduce64("-10.00000E+6", "-1E+7", .toNearestOrEven)
+ /* ddred122 */ self.reduce64("-100.0000E+6", "-1E+8", .toNearestOrEven)
+ /* ddred123 */ self.reduce64("-1000.000E+6", "-1E+9", .toNearestOrEven)
+ /* ddred124 */ self.reduce64("-10000.00E+6", "-1E+10", .toNearestOrEven)
+ /* ddred125 */ self.reduce64("-100000.0E+6", "-1E+11", .toNearestOrEven)
+ /* ddred126 */ self.reduce64("-1000000.E+6", "-1E+12", .toNearestOrEven)
+ /* ddred140 */ self.reduce64("2.1", "2.1", .toNearestOrEven)
+ /* ddred141 */ self.reduce64("-2.0", "-2", .toNearestOrEven)
+ /* ddred142 */ self.reduce64("1.200", "1.2", .toNearestOrEven)
+ /* ddred143 */ self.reduce64("-120", "-1.2E+2", .toNearestOrEven)
+ /* ddred144 */ self.reduce64("120.00", "1.2E+2", .toNearestOrEven)
+ /* ddred145 */ self.reduce64("0.00", "0", .toNearestOrEven)
+ /* ddred151 */ self.reduce64("9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddred152 */ self.reduce64("9.999999000000000E+380", "9.99999900000E+380", .toNearestOrEven)
+ /* ddred153 */ self.reduce64("9.999999999990000E+384", "9.999999999990000E+384", .toNearestOrEven)
+ /* ddred154 */ self.reduce64("1E-383", "1E-383", .toNearestOrEven)
+ /* ddred155 */ self.reduce64("1.000000000000000E-383", "1E-383", .toNearestOrEven)
+ /* ddred156 */ self.reduce64("2.000E-395", "2E-395", .toNearestOrEven)
+ /* ddred157 */ self.reduce64("1E-398", "1E-398", .toNearestOrEven)
+ /* ddred161 */ self.reduce64("-1E-398", "-1E-398", .toNearestOrEven)
+ /* ddred162 */ self.reduce64("-2.000E-395", "-2E-395", .toNearestOrEven)
+ /* ddred163 */ self.reduce64("-1.000000000000000E-383", "-1E-383", .toNearestOrEven)
+ /* ddred164 */ self.reduce64("-1E-383", "-1E-383", .toNearestOrEven)
+ /* ddred165 */ self.reduce64("-9.999999000000000E+380", "-9.99999900000E+380", .toNearestOrEven)
+ /* ddred166 */ self.reduce64("-9.999999999990000E+384", "-9.999999999990000E+384", .toNearestOrEven)
+ /* ddred167 */ self.reduce64("-9.999999999999990E+384", "-9.999999999999990E+384", .toNearestOrEven)
+ /* ddred168 */ self.reduce64("-9.999999999999999E+384", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddred169 */ self.reduce64("-9.999999999999990E+384", "-9.999999999999990E+384", .toNearestOrEven)
+ /* ddred820 */ self.reduce64("Inf", "Infinity", .toNearestOrEven)
+ /* ddred821 */ self.reduce64("-Inf", "-Infinity", .toNearestOrEven)
+ /* ddred822 */ self.reduce64("NaN", "NaN", .toNearestOrEven)
+ /* ddred823 */ self.reduce64("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddred824 */ self.reduce64("NaN(0x65)", "NaN(0x65)", .toNearestOrEven)
+ /* ddred825 */ self.reduce64("sNaN(0xa)", "NaN(0xa)", .toNearestOrEven, .isInvalidOperation)
+ /* ddred827 */ self.reduce64("-NaN", "-NaN", .toNearestOrEven)
+ /* ddred828 */ self.reduce64("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddred829 */ self.reduce64("-NaN(0x65)", "-NaN(0x65)", .toNearestOrEven)
+ /* ddred830 */ self.reduce64("-sNaN(0xa)", "-NaN(0xa)", .toNearestOrEven, .isInvalidOperation)
+ }
+
+ private func reduce64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = self.reduce(arg0, expected: expected)
+ self.assertEqual(result, expected, file, line)
+ }
+
+ func test_reduce128() {
+ /* dqred001 */ self.reduce128("1", "1", .toNearestOrEven)
+ /* dqred002 */ self.reduce128("-1", "-1", .toNearestOrEven)
+ /* dqred003 */ self.reduce128("1.00", "1", .toNearestOrEven)
+ /* dqred004 */ self.reduce128("-1.00", "-1", .toNearestOrEven)
+ /* dqred005 */ self.reduce128("0", "0", .toNearestOrEven)
+ /* dqred006 */ self.reduce128("0.00", "0", .toNearestOrEven)
+ /* dqred007 */ self.reduce128("00.0", "0", .toNearestOrEven)
+ /* dqred008 */ self.reduce128("00.00", "0", .toNearestOrEven)
+ /* dqred009 */ self.reduce128("00", "0", .toNearestOrEven)
+ /* dqred010 */ self.reduce128("0E+1", "0", .toNearestOrEven)
+ /* dqred011 */ self.reduce128("0E+5", "0", .toNearestOrEven)
+ /* dqred012 */ self.reduce128("-2", "-2", .toNearestOrEven)
+ /* dqred013 */ self.reduce128("2", "2", .toNearestOrEven)
+ /* dqred014 */ self.reduce128("-2.00", "-2", .toNearestOrEven)
+ /* dqred015 */ self.reduce128("2.00", "2", .toNearestOrEven)
+ /* dqred016 */ self.reduce128("-0", "-0", .toNearestOrEven)
+ /* dqred017 */ self.reduce128("-0.00", "-0", .toNearestOrEven)
+ /* dqred018 */ self.reduce128("-00.0", "-0", .toNearestOrEven)
+ /* dqred019 */ self.reduce128("-00.00", "-0", .toNearestOrEven)
+ /* dqred020 */ self.reduce128("-00", "-0", .toNearestOrEven)
+ /* dqred021 */ self.reduce128("-0E+5", "-0", .toNearestOrEven)
+ /* dqred022 */ self.reduce128("-0E+1", "-0", .toNearestOrEven)
+ /* dqred030 */ self.reduce128("+0.1", "0.1", .toNearestOrEven)
+ /* dqred031 */ self.reduce128("-0.1", "-0.1", .toNearestOrEven)
+ /* dqred032 */ self.reduce128("+0.01", "0.01", .toNearestOrEven)
+ /* dqred033 */ self.reduce128("-0.01", "-0.01", .toNearestOrEven)
+ /* dqred034 */ self.reduce128("+0.001", "0.001", .toNearestOrEven)
+ /* dqred035 */ self.reduce128("-0.001", "-0.001", .toNearestOrEven)
+ /* dqred036 */ self.reduce128("+0.000001", "0.000001", .toNearestOrEven)
+ /* dqred037 */ self.reduce128("-0.000001", "-0.000001", .toNearestOrEven)
+ /* dqred038 */ self.reduce128("+0.000000000001", "1E-12", .toNearestOrEven)
+ /* dqred039 */ self.reduce128("-0.000000000001", "-1E-12", .toNearestOrEven)
+ /* dqred041 */ self.reduce128("1.1", "1.1", .toNearestOrEven)
+ /* dqred042 */ self.reduce128("1.10", "1.1", .toNearestOrEven)
+ /* dqred043 */ self.reduce128("1.100", "1.1", .toNearestOrEven)
+ /* dqred044 */ self.reduce128("1.110", "1.11", .toNearestOrEven)
+ /* dqred045 */ self.reduce128("-1.1", "-1.1", .toNearestOrEven)
+ /* dqred046 */ self.reduce128("-1.10", "-1.1", .toNearestOrEven)
+ /* dqred047 */ self.reduce128("-1.100", "-1.1", .toNearestOrEven)
+ /* dqred048 */ self.reduce128("-1.110", "-1.11", .toNearestOrEven)
+ /* dqred049 */ self.reduce128("9.9", "9.9", .toNearestOrEven)
+ /* dqred050 */ self.reduce128("9.90", "9.9", .toNearestOrEven)
+ /* dqred051 */ self.reduce128("9.900", "9.9", .toNearestOrEven)
+ /* dqred052 */ self.reduce128("9.990", "9.99", .toNearestOrEven)
+ /* dqred053 */ self.reduce128("-9.9", "-9.9", .toNearestOrEven)
+ /* dqred054 */ self.reduce128("-9.90", "-9.9", .toNearestOrEven)
+ /* dqred055 */ self.reduce128("-9.900", "-9.9", .toNearestOrEven)
+ /* dqred056 */ self.reduce128("-9.990", "-9.99", .toNearestOrEven)
+ /* dqred060 */ self.reduce128("10.0", "1E+1", .toNearestOrEven)
+ /* dqred061 */ self.reduce128("10.00", "1E+1", .toNearestOrEven)
+ /* dqred062 */ self.reduce128("100.0", "1E+2", .toNearestOrEven)
+ /* dqred063 */ self.reduce128("100.00", "1E+2", .toNearestOrEven)
+ /* dqred064 */ self.reduce128("1.1000E+3", "1.1E+3", .toNearestOrEven)
+ /* dqred065 */ self.reduce128("1.10000E+3", "1.1E+3", .toNearestOrEven)
+ /* dqred066 */ self.reduce128("-10.0", "-1E+1", .toNearestOrEven)
+ /* dqred067 */ self.reduce128("-10.00", "-1E+1", .toNearestOrEven)
+ /* dqred068 */ self.reduce128("-100.0", "-1E+2", .toNearestOrEven)
+ /* dqred069 */ self.reduce128("-100.00", "-1E+2", .toNearestOrEven)
+ /* dqred070 */ self.reduce128("-1.1000E+3", "-1.1E+3", .toNearestOrEven)
+ /* dqred071 */ self.reduce128("-1.10000E+3", "-1.1E+3", .toNearestOrEven)
+ /* dqred080 */ self.reduce128("10E+1", "1E+2", .toNearestOrEven)
+ /* dqred081 */ self.reduce128("100E+1", "1E+3", .toNearestOrEven)
+ /* dqred082 */ self.reduce128("1.0E+2", "1E+2", .toNearestOrEven)
+ /* dqred083 */ self.reduce128("1.0E+3", "1E+3", .toNearestOrEven)
+ /* dqred084 */ self.reduce128("1.1E+3", "1.1E+3", .toNearestOrEven)
+ /* dqred085 */ self.reduce128("1.00E+3", "1E+3", .toNearestOrEven)
+ /* dqred086 */ self.reduce128("1.10E+3", "1.1E+3", .toNearestOrEven)
+ /* dqred087 */ self.reduce128("-10E+1", "-1E+2", .toNearestOrEven)
+ /* dqred088 */ self.reduce128("-100E+1", "-1E+3", .toNearestOrEven)
+ /* dqred089 */ self.reduce128("-1.0E+2", "-1E+2", .toNearestOrEven)
+ /* dqred090 */ self.reduce128("-1.0E+3", "-1E+3", .toNearestOrEven)
+ /* dqred091 */ self.reduce128("-1.1E+3", "-1.1E+3", .toNearestOrEven)
+ /* dqred092 */ self.reduce128("-1.00E+3", "-1E+3", .toNearestOrEven)
+ /* dqred093 */ self.reduce128("-1.10E+3", "-1.1E+3", .toNearestOrEven)
+ /* dqred100 */ self.reduce128("11", "11", .toNearestOrEven)
+ /* dqred101 */ self.reduce128("10", "1E+1", .toNearestOrEven)
+ /* dqred102 */ self.reduce128("10.", "1E+1", .toNearestOrEven)
+ /* dqred103 */ self.reduce128("1.1E+1", "11", .toNearestOrEven)
+ /* dqred104 */ self.reduce128("1.0E+1", "1E+1", .toNearestOrEven)
+ /* dqred105 */ self.reduce128("1.10E+2", "1.1E+2", .toNearestOrEven)
+ /* dqred106 */ self.reduce128("1.00E+2", "1E+2", .toNearestOrEven)
+ /* dqred107 */ self.reduce128("1.100E+3", "1.1E+3", .toNearestOrEven)
+ /* dqred108 */ self.reduce128("1.000E+3", "1E+3", .toNearestOrEven)
+ /* dqred109 */ self.reduce128("1.000000E+6", "1E+6", .toNearestOrEven)
+ /* dqred110 */ self.reduce128("-11", "-11", .toNearestOrEven)
+ /* dqred111 */ self.reduce128("-10", "-1E+1", .toNearestOrEven)
+ /* dqred112 */ self.reduce128("-10.", "-1E+1", .toNearestOrEven)
+ /* dqred113 */ self.reduce128("-1.1E+1", "-11", .toNearestOrEven)
+ /* dqred114 */ self.reduce128("-1.0E+1", "-1E+1", .toNearestOrEven)
+ /* dqred115 */ self.reduce128("-1.10E+2", "-1.1E+2", .toNearestOrEven)
+ /* dqred116 */ self.reduce128("-1.00E+2", "-1E+2", .toNearestOrEven)
+ /* dqred117 */ self.reduce128("-1.100E+3", "-1.1E+3", .toNearestOrEven)
+ /* dqred118 */ self.reduce128("-1.000E+3", "-1E+3", .toNearestOrEven)
+ /* dqred119 */ self.reduce128("-1.00000E+5", "-1E+5", .toNearestOrEven)
+ /* dqred120 */ self.reduce128("-1.000000E+6", "-1E+6", .toNearestOrEven)
+ /* dqred121 */ self.reduce128("-10.00000E+6", "-1E+7", .toNearestOrEven)
+ /* dqred122 */ self.reduce128("-100.0000E+6", "-1E+8", .toNearestOrEven)
+ /* dqred123 */ self.reduce128("-1000.000E+6", "-1E+9", .toNearestOrEven)
+ /* dqred124 */ self.reduce128("-10000.00E+6", "-1E+10", .toNearestOrEven)
+ /* dqred125 */ self.reduce128("-100000.0E+6", "-1E+11", .toNearestOrEven)
+ /* dqred126 */ self.reduce128("-1000000.E+6", "-1E+12", .toNearestOrEven)
+ /* dqred140 */ self.reduce128("2.1", "2.1", .toNearestOrEven)
+ /* dqred141 */ self.reduce128("-2.0", "-2", .toNearestOrEven)
+ /* dqred142 */ self.reduce128("1.200", "1.2", .toNearestOrEven)
+ /* dqred143 */ self.reduce128("-120", "-1.2E+2", .toNearestOrEven)
+ /* dqred144 */ self.reduce128("120.00", "1.2E+2", .toNearestOrEven)
+ /* dqred145 */ self.reduce128("0.00", "0", .toNearestOrEven)
+ /* dqred151 */ self.reduce128("9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqred152 */ self.reduce128("9.999999999999999999999999000000000E+6140", "9.99999999999999999999999900000E+6140", .toNearestOrEven)
+ /* dqred153 */ self.reduce128("9.999999999999999999999999999990000E+6144", "9.999999999999999999999999999990000E+6144", .toNearestOrEven)
+ /* dqred154 */ self.reduce128("1E-6143", "1E-6143", .toNearestOrEven)
+ /* dqred155 */ self.reduce128("1.000000000000000000000000000000000E-6143", "1E-6143", .toNearestOrEven)
+ /* dqred156 */ self.reduce128("2.000E-6173", "2E-6173", .toNearestOrEven)
+ /* dqred157 */ self.reduce128("1E-6176", "1E-6176", .toNearestOrEven)
+ /* dqred161 */ self.reduce128("-1E-6176", "-1E-6176", .toNearestOrEven)
+ /* dqred162 */ self.reduce128("-2.000E-6173", "-2E-6173", .toNearestOrEven)
+ /* dqred163 */ self.reduce128("-1.000000000000000000000000000000000E-6143", "-1E-6143", .toNearestOrEven)
+ /* dqred164 */ self.reduce128("-1E-6143", "-1E-6143", .toNearestOrEven)
+ /* dqred165 */ self.reduce128("-9.999999999999999999999999000000000E+6140", "-9.99999999999999999999999900000E+6140", .toNearestOrEven)
+ /* dqred166 */ self.reduce128("-9.999999999999999999999999999990000E+6144", "-9.999999999999999999999999999990000E+6144", .toNearestOrEven)
+ /* dqred167 */ self.reduce128("-9.999999999999999999999999999999990E+6144", "-9.999999999999999999999999999999990E+6144", .toNearestOrEven)
+ /* dqred168 */ self.reduce128("-9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqred169 */ self.reduce128("-9.999999999999999999999999999999990E+6144", "-9.999999999999999999999999999999990E+6144", .toNearestOrEven)
+ /* dqred820 */ self.reduce128("Inf", "Infinity", .toNearestOrEven)
+ /* dqred821 */ self.reduce128("-Inf", "-Infinity", .toNearestOrEven)
+ /* dqred822 */ self.reduce128("NaN", "NaN", .toNearestOrEven)
+ /* dqred823 */ self.reduce128("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqred824 */ self.reduce128("NaN(0x65)", "NaN(0x65)", .toNearestOrEven)
+ /* dqred825 */ self.reduce128("sNaN(0xa)", "NaN(0xa)", .toNearestOrEven, .isInvalidOperation)
+ /* dqred827 */ self.reduce128("-NaN", "-NaN", .toNearestOrEven)
+ /* dqred828 */ self.reduce128("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqred829 */ self.reduce128("-NaN(0x65)", "-NaN(0x65)", .toNearestOrEven)
+ /* dqred830 */ self.reduce128("-sNaN(0xa)", "-NaN(0xa)", .toNearestOrEven, .isInvalidOperation)
+ }
+
+ private func reduce128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = self.reduce(arg0, expected: expected)
+ self.assertEqual(result, expected, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotrovePropertyTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotrovePropertyTests.swift
new file mode 100644
index 0000000..0fdb270
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotrovePropertyTests.swift
@@ -0,0 +1,318 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotrovePropertyTests: XCTestCase, SpeleotroveMixin {
+
+ // MARK: - Abs
+
+ func test_abs64() {
+ /* ddabs001 */ self.abs64("1", "1", .toNearestOrEven)
+ /* ddabs002 */ self.abs64("-1", "1", .toNearestOrEven)
+ /* ddabs003 */ self.abs64("1.00", "1.00", .toNearestOrEven)
+ /* ddabs004 */ self.abs64("-1.00", "1.00", .toNearestOrEven)
+ /* ddabs005 */ self.abs64("0", "0", .toNearestOrEven)
+ /* ddabs006 */ self.abs64("0.00", "0.00", .toNearestOrEven)
+ /* ddabs007 */ self.abs64("00.0", "0.0", .toNearestOrEven)
+ /* ddabs008 */ self.abs64("00.00", "0.00", .toNearestOrEven)
+ /* ddabs009 */ self.abs64("00", "0", .toNearestOrEven)
+ /* ddabs010 */ self.abs64("-2", "2", .toNearestOrEven)
+ /* ddabs011 */ self.abs64("2", "2", .toNearestOrEven)
+ /* ddabs012 */ self.abs64("-2.00", "2.00", .toNearestOrEven)
+ /* ddabs013 */ self.abs64("2.00", "2.00", .toNearestOrEven)
+ /* ddabs014 */ self.abs64("-0", "0", .toNearestOrEven)
+ /* ddabs015 */ self.abs64("-0.00", "0.00", .toNearestOrEven)
+ /* ddabs016 */ self.abs64("-00.0", "0.0", .toNearestOrEven)
+ /* ddabs017 */ self.abs64("-00.00", "0.00", .toNearestOrEven)
+ /* ddabs018 */ self.abs64("-00", "0", .toNearestOrEven)
+ /* ddabs020 */ self.abs64("-2000000", "2000000", .toNearestOrEven)
+ /* ddabs021 */ self.abs64("2000000", "2000000", .toNearestOrEven)
+ /* ddabs030 */ self.abs64("+0.1", "0.1", .toNearestOrEven)
+ /* ddabs031 */ self.abs64("-0.1", "0.1", .toNearestOrEven)
+ /* ddabs032 */ self.abs64("+0.01", "0.01", .toNearestOrEven)
+ /* ddabs033 */ self.abs64("-0.01", "0.01", .toNearestOrEven)
+ /* ddabs034 */ self.abs64("+0.001", "0.001", .toNearestOrEven)
+ /* ddabs035 */ self.abs64("-0.001", "0.001", .toNearestOrEven)
+ /* ddabs036 */ self.abs64("+0.000001", "0.000001", .toNearestOrEven)
+ /* ddabs037 */ self.abs64("-0.000001", "0.000001", .toNearestOrEven)
+ /* ddabs038 */ self.abs64("+0.000000000001", "1E-12", .toNearestOrEven)
+ /* ddabs039 */ self.abs64("-0.000000000001", "1E-12", .toNearestOrEven)
+ /* ddabs040 */ self.abs64("2.1", "2.1", .toNearestOrEven)
+ /* ddabs041 */ self.abs64("-100", "100", .toNearestOrEven)
+ /* ddabs042 */ self.abs64("101.5", "101.5", .toNearestOrEven)
+ /* ddabs043 */ self.abs64("-101.5", "101.5", .toNearestOrEven)
+ /* ddabs060 */ self.abs64("-56267E-10", "0.0000056267", .toNearestOrEven)
+ /* ddabs061 */ self.abs64("-56267E-5", "0.56267", .toNearestOrEven)
+ /* ddabs062 */ self.abs64("-56267E-2", "562.67", .toNearestOrEven)
+ /* ddabs063 */ self.abs64("-56267E-1", "5626.7", .toNearestOrEven)
+ /* ddabs065 */ self.abs64("-56267E-0", "56267", .toNearestOrEven)
+ /* ddabs111 */ self.abs64("0", "0", .toNearestOrEven)
+ /* ddabs112 */ self.abs64("-0", "0", .toNearestOrEven)
+ /* ddabs113 */ self.abs64("0E+6", "0E+6", .toNearestOrEven)
+ /* ddabs114 */ self.abs64("-0E+6", "0E+6", .toNearestOrEven)
+ /* ddabs115 */ self.abs64("0.0000", "0.0000", .toNearestOrEven)
+ /* ddabs116 */ self.abs64("-0.0000", "0.0000", .toNearestOrEven)
+ /* ddabs117 */ self.abs64("0E-141", "0E-141", .toNearestOrEven)
+ /* ddabs118 */ self.abs64("-0E-141", "0E-141", .toNearestOrEven)
+ /* ddabs121 */ self.abs64("2682682682682682", "2682682682682682", .toNearestOrEven)
+ /* ddabs122 */ self.abs64("-2682682682682682", "2682682682682682", .toNearestOrEven)
+ /* ddabs123 */ self.abs64("1341341341341341", "1341341341341341", .toNearestOrEven)
+ /* ddabs124 */ self.abs64("-1341341341341341", "1341341341341341", .toNearestOrEven)
+ /* ddabs131 */ self.abs64("9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddabs132 */ self.abs64("1E-383", "1E-383", .toNearestOrEven)
+ /* ddabs133 */ self.abs64("1.000000000000000E-383", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddabs134 */ self.abs64("1E-398", "1E-398", .toNearestOrEven)
+ /* ddabs135 */ self.abs64("-1E-398", "1E-398", .toNearestOrEven)
+ /* ddabs136 */ self.abs64("-1.000000000000000E-383", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddabs137 */ self.abs64("-1E-383", "1E-383", .toNearestOrEven)
+ /* ddabs138 */ self.abs64("-9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddabs321 */ self.abs64("1234567890123456", "1234567890123456", .toNearestOrEven)
+ /* ddabs322 */ self.abs64("12345678000", "12345678000", .toNearestOrEven)
+ /* ddabs323 */ self.abs64("1234567800", "1234567800", .toNearestOrEven)
+ /* ddabs324 */ self.abs64("1234567890", "1234567890", .toNearestOrEven)
+ /* ddabs325 */ self.abs64("1234567891", "1234567891", .toNearestOrEven)
+ /* ddabs326 */ self.abs64("12345678901", "12345678901", .toNearestOrEven)
+ /* ddabs327 */ self.abs64("1234567896", "1234567896", .toNearestOrEven)
+ /* ddabs520 */ self.abs64("Inf", "Infinity", .toNearestOrEven)
+ /* ddabs521 */ self.abs64("-Inf", "Infinity", .toNearestOrEven)
+ /* ddabs522 */ self.abs64("NaN", "NaN", .toNearestOrEven)
+ /* ddabs523 */ self.abs64("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddabs524 */ self.abs64("NaN(0x16)", "NaN(0x16)", .toNearestOrEven)
+ /* ddabs525 */ self.abs64("sNaN(0x21)", "NaN(0x21)", .toNearestOrEven, .isInvalidOperation)
+ /* ddabs526 */ self.abs64("-NaN(0x16)", "-NaN(0x16)", .toNearestOrEven)
+ /* ddabs527 */ self.abs64("-sNaN(0x21)", "-NaN(0x21)", .toNearestOrEven, .isInvalidOperation)
+ }
+
+ private func abs64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = arg0.magnitude
+ let speleotroveResult = self.toSpeleotrove_magnitude(arg0, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ }
+
+ func test_abs128() {
+ /* dqabs001 */ self.abs128("1", "1", .toNearestOrEven)
+ /* dqabs002 */ self.abs128("-1", "1", .toNearestOrEven)
+ /* dqabs003 */ self.abs128("1.00", "1.00", .toNearestOrEven)
+ /* dqabs004 */ self.abs128("-1.00", "1.00", .toNearestOrEven)
+ /* dqabs005 */ self.abs128("0", "0", .toNearestOrEven)
+ /* dqabs006 */ self.abs128("0.00", "0.00", .toNearestOrEven)
+ /* dqabs007 */ self.abs128("00.0", "0.0", .toNearestOrEven)
+ /* dqabs008 */ self.abs128("00.00", "0.00", .toNearestOrEven)
+ /* dqabs009 */ self.abs128("00", "0", .toNearestOrEven)
+ /* dqabs010 */ self.abs128("-2", "2", .toNearestOrEven)
+ /* dqabs011 */ self.abs128("2", "2", .toNearestOrEven)
+ /* dqabs012 */ self.abs128("-2.00", "2.00", .toNearestOrEven)
+ /* dqabs013 */ self.abs128("2.00", "2.00", .toNearestOrEven)
+ /* dqabs014 */ self.abs128("-0", "0", .toNearestOrEven)
+ /* dqabs015 */ self.abs128("-0.00", "0.00", .toNearestOrEven)
+ /* dqabs016 */ self.abs128("-00.0", "0.0", .toNearestOrEven)
+ /* dqabs017 */ self.abs128("-00.00", "0.00", .toNearestOrEven)
+ /* dqabs018 */ self.abs128("-00", "0", .toNearestOrEven)
+ /* dqabs020 */ self.abs128("-2000000", "2000000", .toNearestOrEven)
+ /* dqabs021 */ self.abs128("2000000", "2000000", .toNearestOrEven)
+ /* dqabs030 */ self.abs128("+0.1", "0.1", .toNearestOrEven)
+ /* dqabs031 */ self.abs128("-0.1", "0.1", .toNearestOrEven)
+ /* dqabs032 */ self.abs128("+0.01", "0.01", .toNearestOrEven)
+ /* dqabs033 */ self.abs128("-0.01", "0.01", .toNearestOrEven)
+ /* dqabs034 */ self.abs128("+0.001", "0.001", .toNearestOrEven)
+ /* dqabs035 */ self.abs128("-0.001", "0.001", .toNearestOrEven)
+ /* dqabs036 */ self.abs128("+0.000001", "0.000001", .toNearestOrEven)
+ /* dqabs037 */ self.abs128("-0.000001", "0.000001", .toNearestOrEven)
+ /* dqabs038 */ self.abs128("+0.000000000001", "1E-12", .toNearestOrEven)
+ /* dqabs039 */ self.abs128("-0.000000000001", "1E-12", .toNearestOrEven)
+ /* dqabs040 */ self.abs128("2.1", "2.1", .toNearestOrEven)
+ /* dqabs041 */ self.abs128("-100", "100", .toNearestOrEven)
+ /* dqabs042 */ self.abs128("101.5", "101.5", .toNearestOrEven)
+ /* dqabs043 */ self.abs128("-101.5", "101.5", .toNearestOrEven)
+ /* dqabs060 */ self.abs128("-56267E-10", "0.0000056267", .toNearestOrEven)
+ /* dqabs061 */ self.abs128("-56267E-5", "0.56267", .toNearestOrEven)
+ /* dqabs062 */ self.abs128("-56267E-2", "562.67", .toNearestOrEven)
+ /* dqabs063 */ self.abs128("-56267E-1", "5626.7", .toNearestOrEven)
+ /* dqabs065 */ self.abs128("-56267E-0", "56267", .toNearestOrEven)
+ /* dqabs111 */ self.abs128("0", "0", .toNearestOrEven)
+ /* dqabs112 */ self.abs128("-0", "0", .toNearestOrEven)
+ /* dqabs113 */ self.abs128("0E+6", "0E+6", .toNearestOrEven)
+ /* dqabs114 */ self.abs128("-0E+6", "0E+6", .toNearestOrEven)
+ /* dqabs115 */ self.abs128("0.0000", "0.0000", .toNearestOrEven)
+ /* dqabs116 */ self.abs128("-0.0000", "0.0000", .toNearestOrEven)
+ /* dqabs117 */ self.abs128("0E-141", "0E-141", .toNearestOrEven)
+ /* dqabs118 */ self.abs128("-0E-141", "0E-141", .toNearestOrEven)
+ /* dqabs121 */ self.abs128("2682682682682682682682682682682682", "2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqabs122 */ self.abs128("-2682682682682682682682682682682682", "2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqabs123 */ self.abs128("1341341341341341341341341341341341", "1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqabs124 */ self.abs128("-1341341341341341341341341341341341", "1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqabs131 */ self.abs128("9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqabs132 */ self.abs128("1E-6143", "1E-6143", .toNearestOrEven)
+ /* dqabs133 */ self.abs128("1.000000000000000000000000000000000E-6143", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqabs134 */ self.abs128("1E-6176", "1E-6176", .toNearestOrEven)
+ /* dqabs135 */ self.abs128("-1E-6176", "1E-6176", .toNearestOrEven)
+ /* dqabs136 */ self.abs128("-1.000000000000000000000000000000000E-6143", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqabs137 */ self.abs128("-1E-6143", "1E-6143", .toNearestOrEven)
+ /* dqabs138 */ self.abs128("-9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqabs321 */ self.abs128("1234567890123456", "1234567890123456", .toNearestOrEven)
+ /* dqabs322 */ self.abs128("12345678000", "12345678000", .toNearestOrEven)
+ /* dqabs323 */ self.abs128("1234567800", "1234567800", .toNearestOrEven)
+ /* dqabs324 */ self.abs128("1234567890", "1234567890", .toNearestOrEven)
+ /* dqabs325 */ self.abs128("1234567891", "1234567891", .toNearestOrEven)
+ /* dqabs326 */ self.abs128("12345678901", "12345678901", .toNearestOrEven)
+ /* dqabs327 */ self.abs128("1234567896", "1234567896", .toNearestOrEven)
+ /* dqabs520 */ self.abs128("Inf", "Infinity", .toNearestOrEven)
+ /* dqabs521 */ self.abs128("-Inf", "Infinity", .toNearestOrEven)
+ /* dqabs522 */ self.abs128("NaN", "NaN", .toNearestOrEven)
+ /* dqabs523 */ self.abs128("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqabs524 */ self.abs128("NaN(0x16)", "NaN(0x16)", .toNearestOrEven)
+ /* dqabs525 */ self.abs128("sNaN(0x21)", "NaN(0x21)", .toNearestOrEven, .isInvalidOperation)
+ /* dqabs526 */ self.abs128("-NaN(0x16)", "-NaN(0x16)", .toNearestOrEven)
+ /* dqabs527 */ self.abs128("-sNaN(0x21)", "-NaN(0x21)", .toNearestOrEven, .isInvalidOperation)
+ }
+
+ private func abs128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = arg0.magnitude
+ let speleotroveResult = self.toSpeleotrove_magnitude(arg0, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ }
+
+ // MARK: - Class
+
+ func test_class64() {
+ /* ddcla001 */ self.class64("0", .positiveZero, .toNearestOrEven)
+ /* ddcla002 */ self.class64("0.00", .positiveZero, .toNearestOrEven)
+ /* ddcla003 */ self.class64("0E+5", .positiveZero, .toNearestOrEven)
+ /* ddcla004 */ self.class64("1E-396", .positiveSubnormal, .toNearestOrEven)
+ /* ddcla005 */ self.class64("0.1E-383", .positiveSubnormal, .toNearestOrEven)
+ /* ddcla006 */ self.class64("0.999999999999999E-383", .positiveSubnormal, .toNearestOrEven)
+ /* ddcla007 */ self.class64("1.000000000000000E-383", .positiveNormal, .toNearestOrEven)
+ /* ddcla008 */ self.class64("1E-383", .positiveNormal, .toNearestOrEven)
+ /* ddcla009 */ self.class64("1E-100", .positiveNormal, .toNearestOrEven)
+ /* ddcla010 */ self.class64("1E-10", .positiveNormal, .toNearestOrEven)
+ /* ddcla012 */ self.class64("1E-1", .positiveNormal, .toNearestOrEven)
+ /* ddcla013 */ self.class64("1", .positiveNormal, .toNearestOrEven)
+ /* ddcla014 */ self.class64("2.50", .positiveNormal, .toNearestOrEven)
+ /* ddcla015 */ self.class64("100.100", .positiveNormal, .toNearestOrEven)
+ /* ddcla016 */ self.class64("1E+30", .positiveNormal, .toNearestOrEven)
+ /* ddcla017 */ self.class64("1E+384", .positiveNormal, .toNearestOrEven)
+ /* ddcla018 */ self.class64("9.999999999999999E+384", .positiveNormal, .toNearestOrEven)
+ /* ddcla019 */ self.class64("Inf", .positiveInfinity, .toNearestOrEven)
+ /* ddcla021 */ self.class64("-0", .negativeZero, .toNearestOrEven)
+ /* ddcla022 */ self.class64("-0.00", .negativeZero, .toNearestOrEven)
+ /* ddcla023 */ self.class64("-0E+5", .negativeZero, .toNearestOrEven)
+ /* ddcla024 */ self.class64("-1E-396", .negativeSubnormal, .toNearestOrEven)
+ /* ddcla025 */ self.class64("-0.1E-383", .negativeSubnormal, .toNearestOrEven)
+ /* ddcla026 */ self.class64("-0.999999999999999E-383", .negativeSubnormal, .toNearestOrEven)
+ /* ddcla027 */ self.class64("-1.000000000000000E-383", .negativeNormal, .toNearestOrEven)
+ /* ddcla028 */ self.class64("-1E-383", .negativeNormal, .toNearestOrEven)
+ /* ddcla029 */ self.class64("-1E-100", .negativeNormal, .toNearestOrEven)
+ /* ddcla030 */ self.class64("-1E-10", .negativeNormal, .toNearestOrEven)
+ /* ddcla032 */ self.class64("-1E-1", .negativeNormal, .toNearestOrEven)
+ /* ddcla033 */ self.class64("-1", .negativeNormal, .toNearestOrEven)
+ /* ddcla034 */ self.class64("-2.50", .negativeNormal, .toNearestOrEven)
+ /* ddcla035 */ self.class64("-100.100", .negativeNormal, .toNearestOrEven)
+ /* ddcla036 */ self.class64("-1E+30", .negativeNormal, .toNearestOrEven)
+ /* ddcla037 */ self.class64("-1E+384", .negativeNormal, .toNearestOrEven)
+ /* ddcla038 */ self.class64("-9.999999999999999E+384", .negativeNormal, .toNearestOrEven)
+ /* ddcla039 */ self.class64("-Inf", .negativeInfinity, .toNearestOrEven)
+ /* ddcla041 */ self.class64("NaN", .quietNaN, .toNearestOrEven)
+ /* ddcla042 */ self.class64("-NaN", .quietNaN, .toNearestOrEven)
+ /* ddcla043 */ self.class64("+NaN(0x3039)", .quietNaN, .toNearestOrEven)
+ /* ddcla044 */ self.class64("sNaN", .signalingNaN, .toNearestOrEven)
+ /* ddcla045 */ self.class64("-sNaN", .signalingNaN, .toNearestOrEven)
+ /* ddcla046 */ self.class64("+sNaN(0x3039)", .signalingNaN, .toNearestOrEven)
+ }
+
+ private func class64(
+ _ _arg0: String,
+ _ expected: FloatingPointClassification,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+
+ let result = arg0.floatingPointClass
+ XCTAssertEqual(result, expected, file: file, line: line)
+ }
+
+ func test_class128() {
+ /* dqcla001 */ self.class128("0", .positiveZero, .toNearestOrEven)
+ /* dqcla002 */ self.class128("0.00", .positiveZero, .toNearestOrEven)
+ /* dqcla003 */ self.class128("0E+5", .positiveZero, .toNearestOrEven)
+ /* dqcla004 */ self.class128("1E-6176", .positiveSubnormal, .toNearestOrEven)
+ /* dqcla005 */ self.class128("0.1E-6143", .positiveSubnormal, .toNearestOrEven)
+ /* dqcla006 */ self.class128("0.99999999999999999999999999999999E-6143", .positiveSubnormal, .toNearestOrEven)
+ /* dqcla007 */ self.class128("1.00000000000000000000000000000000E-6143", .positiveNormal, .toNearestOrEven)
+ /* dqcla008 */ self.class128("1E-6143", .positiveNormal, .toNearestOrEven)
+ /* dqcla009 */ self.class128("1E-100", .positiveNormal, .toNearestOrEven)
+ /* dqcla010 */ self.class128("1E-10", .positiveNormal, .toNearestOrEven)
+ /* dqcla012 */ self.class128("1E-1", .positiveNormal, .toNearestOrEven)
+ /* dqcla013 */ self.class128("1", .positiveNormal, .toNearestOrEven)
+ /* dqcla014 */ self.class128("2.50", .positiveNormal, .toNearestOrEven)
+ /* dqcla015 */ self.class128("100.100", .positiveNormal, .toNearestOrEven)
+ /* dqcla016 */ self.class128("1E+30", .positiveNormal, .toNearestOrEven)
+ /* dqcla017 */ self.class128("1E+6144", .positiveNormal, .toNearestOrEven)
+ /* dqcla018 */ self.class128("9.99999999999999999999999999999999E+6144", .positiveNormal, .toNearestOrEven)
+ /* dqcla019 */ self.class128("Inf", .positiveInfinity, .toNearestOrEven)
+ /* dqcla021 */ self.class128("-0", .negativeZero, .toNearestOrEven)
+ /* dqcla022 */ self.class128("-0.00", .negativeZero, .toNearestOrEven)
+ /* dqcla023 */ self.class128("-0E+5", .negativeZero, .toNearestOrEven)
+ /* dqcla024 */ self.class128("-1E-6176", .negativeSubnormal, .toNearestOrEven)
+ /* dqcla025 */ self.class128("-0.1E-6143", .negativeSubnormal, .toNearestOrEven)
+ /* dqcla026 */ self.class128("-0.99999999999999999999999999999999E-6143", .negativeSubnormal, .toNearestOrEven)
+ /* dqcla027 */ self.class128("-1.00000000000000000000000000000000E-6143", .negativeNormal, .toNearestOrEven)
+ /* dqcla028 */ self.class128("-1E-6143", .negativeNormal, .toNearestOrEven)
+ /* dqcla029 */ self.class128("-1E-100", .negativeNormal, .toNearestOrEven)
+ /* dqcla030 */ self.class128("-1E-10", .negativeNormal, .toNearestOrEven)
+ /* dqcla032 */ self.class128("-1E-1", .negativeNormal, .toNearestOrEven)
+ /* dqcla033 */ self.class128("-1", .negativeNormal, .toNearestOrEven)
+ /* dqcla034 */ self.class128("-2.50", .negativeNormal, .toNearestOrEven)
+ /* dqcla035 */ self.class128("-100.100", .negativeNormal, .toNearestOrEven)
+ /* dqcla036 */ self.class128("-1E+30", .negativeNormal, .toNearestOrEven)
+ /* dqcla037 */ self.class128("-1E+6144", .negativeNormal, .toNearestOrEven)
+ /* dqcla039 */ self.class128("-Inf", .negativeInfinity, .toNearestOrEven)
+ /* dqcla041 */ self.class128("NaN", .quietNaN, .toNearestOrEven)
+ /* dqcla042 */ self.class128("-NaN", .quietNaN, .toNearestOrEven)
+ /* dqcla043 */ self.class128("+NaN(0x3039)", .quietNaN, .toNearestOrEven)
+ /* dqcla044 */ self.class128("sNaN", .signalingNaN, .toNearestOrEven)
+ /* dqcla045 */ self.class128("-sNaN", .signalingNaN, .toNearestOrEven)
+ /* dqcla046 */ self.class128("+sNaN(0x3039)", .signalingNaN, .toNearestOrEven)
+ /* dqcla0614 */ self.class128("-9.99999999999999999999999999999999E+6144", .negativeNormal, .toNearestOrEven)
+ }
+
+ private func class128(
+ _ _arg0: String,
+ _ expected: FloatingPointClassification,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+
+ let result = arg0.floatingPointClass
+ XCTAssertEqual(result, expected, file: file, line: line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveQuantumTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveQuantumTests.swift
new file mode 100644
index 0000000..3b6fe57
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveQuantumTests.swift
@@ -0,0 +1,2001 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveQuantumTests: XCTestCase, SpeleotroveMixin {
+
+ // MARK: - Quantize
+
+ func test_quantize64() {
+ /* ddcan401 */ self.quantize64("#6e38ff3ffff3fcff", "1", "#6e38ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan402 */ self.quantize64("#6e38ff3fcff3fdff", "0", "#6e38ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan403 */ self.quantize64("#7880000000000000", "Inf", "#7800000000000000", .toNearestOrEven)
+ /* ddcan404 */ self.quantize64("#7802000000000000", "-Inf", "#7800000000000000", .toNearestOrEven)
+ /* ddcan410 */ self.quantize64("#7c03ff3fcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan411 */ self.quantize64("#7c03ff3fcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan412 */ self.quantize64("#7c40ff3fcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan413 */ self.quantize64("#7c40ff3fcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan414 */ self.quantize64("#7e00ffffcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan415 */ self.quantize64("#7e00ffffcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan416 */ self.quantize64("#7e80ff3fcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan417 */ self.quantize64("#7e80ff3fcff3fcff", "1", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddqua001 */ self.quantize64("0", "1e0", "0", .toNearestOrEven)
+ /* ddqua002 */ self.quantize64("1", "1e0", "1", .toNearestOrEven)
+ /* ddqua003 */ self.quantize64("0.1", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua005 */ self.quantize64("0.1", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua006 */ self.quantize64("0.1", "1e0", "0", .toNearestOrEven, .isInexact)
+ /* ddqua007 */ self.quantize64("0.1", "1e-1", "0.1", .toNearestOrEven)
+ /* ddqua008 */ self.quantize64("0.1", "1e-2", "0.10", .toNearestOrEven)
+ /* ddqua009 */ self.quantize64("0.1", "1e-3", "0.100", .toNearestOrEven)
+ /* ddqua010 */ self.quantize64("0.9", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua011 */ self.quantize64("0.9", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua012 */ self.quantize64("0.9", "1e+0", "1", .toNearestOrEven, .isInexact)
+ /* ddqua013 */ self.quantize64("0.9", "1e-1", "0.9", .toNearestOrEven)
+ /* ddqua014 */ self.quantize64("0.9", "1e-2", "0.90", .toNearestOrEven)
+ /* ddqua015 */ self.quantize64("0.9", "1e-3", "0.900", .toNearestOrEven)
+ /* ddqua021 */ self.quantize64("-0", "1e0", "-0", .toNearestOrEven)
+ /* ddqua022 */ self.quantize64("-1", "1e0", "-1", .toNearestOrEven)
+ /* ddqua023 */ self.quantize64("-0.1", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua025 */ self.quantize64("-0.1", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua026 */ self.quantize64("-0.1", "1e0", "-0", .toNearestOrEven, .isInexact)
+ /* ddqua027 */ self.quantize64("-0.1", "1e-1", "-0.1", .toNearestOrEven)
+ /* ddqua028 */ self.quantize64("-0.1", "1e-2", "-0.10", .toNearestOrEven)
+ /* ddqua029 */ self.quantize64("-0.1", "1e-3", "-0.100", .toNearestOrEven)
+ /* ddqua030 */ self.quantize64("-0.9", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua031 */ self.quantize64("-0.9", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua032 */ self.quantize64("-0.9", "1e+0", "-1", .toNearestOrEven, .isInexact)
+ /* ddqua033 */ self.quantize64("-0.9", "1e-1", "-0.9", .toNearestOrEven)
+ /* ddqua034 */ self.quantize64("-0.9", "1e-2", "-0.90", .toNearestOrEven)
+ /* ddqua035 */ self.quantize64("-0.9", "1e-3", "-0.900", .toNearestOrEven)
+ /* ddqua036 */ self.quantize64("-0.5", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua037 */ self.quantize64("-0.5", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua038 */ self.quantize64("-0.5", "1e+0", "-0", .toNearestOrEven, .isInexact)
+ /* ddqua039 */ self.quantize64("-0.5", "1e-1", "-0.5", .toNearestOrEven)
+ /* ddqua040 */ self.quantize64("-0.5", "1e-2", "-0.50", .toNearestOrEven)
+ /* ddqua041 */ self.quantize64("-0.5", "1e-3", "-0.500", .toNearestOrEven)
+ /* ddqua042 */ self.quantize64("-0.9", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua043 */ self.quantize64("-0.9", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua044 */ self.quantize64("-0.9", "1e+0", "-1", .toNearestOrEven, .isInexact)
+ /* ddqua045 */ self.quantize64("-0.9", "1e-1", "-0.9", .toNearestOrEven)
+ /* ddqua046 */ self.quantize64("-0.9", "1e-2", "-0.90", .toNearestOrEven)
+ /* ddqua047 */ self.quantize64("-0.9", "1e-3", "-0.900", .toNearestOrEven)
+ /* ddqua060 */ self.quantize64("2.17", "0.001", "2.170", .toNearestOrEven)
+ /* ddqua061 */ self.quantize64("2.17", "0.01", "2.17", .toNearestOrEven)
+ /* ddqua062 */ self.quantize64("2.17", "0.1", "2.2", .toNearestOrEven, .isInexact)
+ /* ddqua063 */ self.quantize64("2.17", "1e+0", "2", .toNearestOrEven, .isInexact)
+ /* ddqua064 */ self.quantize64("2.17", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua065 */ self.quantize64("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* ddqua066 */ self.quantize64("2", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddqua067 */ self.quantize64("-0.1", "1", "-0", .toNearestOrEven, .isInexact)
+ /* ddqua068 */ self.quantize64("-0", "1e+5", "-0E+5", .toNearestOrEven)
+ /* ddqua069 */ self.quantize64("+123456789012345.6", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddqua070 */ self.quantize64("-987654335236450.6", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddqua071 */ self.quantize64("217", "1e-1", "217.0", .toNearestOrEven)
+ /* ddqua072 */ self.quantize64("217", "1e+0", "217", .toNearestOrEven)
+ /* ddqua073 */ self.quantize64("217", "1e+1", "2.2E+2", .toNearestOrEven, .isInexact)
+ /* ddqua074 */ self.quantize64("217", "1e+2", "2E+2", .toNearestOrEven, .isInexact)
+ /* ddqua089 */ self.quantize64("12", "1e+4", "0E+4", .toNearestOrEven, .isInexact)
+ /* ddqua090 */ self.quantize64("12", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua091 */ self.quantize64("12", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua092 */ self.quantize64("12", "1e+1", "1E+1", .toNearestOrEven, .isInexact)
+ /* ddqua093 */ self.quantize64("1.2345", "1e-2", "1.23", .toNearestOrEven, .isInexact)
+ /* ddqua094 */ self.quantize64("1.2355", "1e-2", "1.24", .toNearestOrEven, .isInexact)
+ /* ddqua095 */ self.quantize64("1.2345", "1e-6", "1.234500", .toNearestOrEven)
+ /* ddqua096 */ self.quantize64("9.9999", "1e-2", "10.00", .toNearestOrEven, .isInexact)
+ /* ddqua097 */ self.quantize64("0.0001", "1e-2", "0.00", .toNearestOrEven, .isInexact)
+ /* ddqua098 */ self.quantize64("0.001", "1e-2", "0.00", .toNearestOrEven, .isInexact)
+ /* ddqua099 */ self.quantize64("0.009", "1e-2", "0.01", .toNearestOrEven, .isInexact)
+ /* ddqua100 */ self.quantize64("92", "1e+2", "1E+2", .toNearestOrEven, .isInexact)
+ /* ddqua1001 */ self.quantize64("0.000", "0.001", "0.000", .toNearestOrAwayFromZero)
+ /* ddqua1002 */ self.quantize64("0.001", "0.001", "0.001", .toNearestOrAwayFromZero)
+ /* ddqua1003 */ self.quantize64("0.0012", "0.001", "0.001", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1004 */ self.quantize64("0.0018", "0.001", "0.002", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1005 */ self.quantize64("0.501", "0.001", "0.501", .toNearestOrAwayFromZero)
+ /* ddqua1006 */ self.quantize64("0.5012", "0.001", "0.501", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1007 */ self.quantize64("0.5018", "0.001", "0.502", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1008 */ self.quantize64("0.999", "0.001", "0.999", .toNearestOrAwayFromZero)
+ /* ddqua101 */ self.quantize64("-1", "1e0", "-1", .toNearestOrEven)
+ /* ddqua102 */ self.quantize64("-1", "1e-1", "-1.0", .toNearestOrEven)
+ /* ddqua1021 */ self.quantize64("8.666666666666000E+384", "1.000000000000000E+384", "8.666666666666000E+384", .toNearestOrAwayFromZero)
+ /* ddqua1022 */ self.quantize64("-8.666666666666000E+384", "1.000000000000000E+384", "-8.666666666666000E+384", .toNearestOrAwayFromZero)
+ /* ddqua1027 */ self.quantize64("8.666666666666000E+323", "1E+31", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua1029 */ self.quantize64("8.66666666E+3", "1E+3", "9E+3", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua103 */ self.quantize64("-1", "1e-2", "-1.00", .toNearestOrEven)
+ /* ddqua104 */ self.quantize64("0", "1e0", "0", .toNearestOrEven)
+ /* ddqua1040 */ self.quantize64("-2147483646", "0", "-2147483646", .toNearestOrAwayFromZero)
+ /* ddqua1041 */ self.quantize64("-2147483647", "0", "-2147483647", .toNearestOrAwayFromZero)
+ /* ddqua1042 */ self.quantize64("-2147483648", "0", "-2147483648", .toNearestOrAwayFromZero)
+ /* ddqua1043 */ self.quantize64("-2147483649", "0", "-2147483649", .toNearestOrAwayFromZero)
+ /* ddqua1044 */ self.quantize64("2147483646", "0", "2147483646", .toNearestOrAwayFromZero)
+ /* ddqua1045 */ self.quantize64("2147483647", "0", "2147483647", .toNearestOrAwayFromZero)
+ /* ddqua1046 */ self.quantize64("2147483648", "0", "2147483648", .toNearestOrAwayFromZero)
+ /* ddqua1047 */ self.quantize64("2147483649", "0", "2147483649", .toNearestOrAwayFromZero)
+ /* ddqua1048 */ self.quantize64("4294967294", "0", "4294967294", .toNearestOrAwayFromZero)
+ /* ddqua1049 */ self.quantize64("4294967295", "0", "4294967295", .toNearestOrAwayFromZero)
+ /* ddqua105 */ self.quantize64("0", "1e-1", "0.0", .toNearestOrEven)
+ /* ddqua1050 */ self.quantize64("4294967296", "0", "4294967296", .toNearestOrAwayFromZero)
+ /* ddqua1051 */ self.quantize64("4294967297", "0", "4294967297", .toNearestOrAwayFromZero)
+ /* ddqua106 */ self.quantize64("0", "1e-2", "0.00", .toNearestOrEven)
+ /* ddqua107 */ self.quantize64("0.00", "1e0", "0", .toNearestOrEven)
+ /* ddqua108 */ self.quantize64("0", "1e+1", "0E+1", .toNearestOrEven)
+ /* ddqua109 */ self.quantize64("0", "1e+2", "0E+2", .toNearestOrEven)
+ /* ddqua110 */ self.quantize64("+1", "1e0", "1", .toNearestOrEven)
+ /* ddqua1100 */ self.quantize64("1.2300", "1.00", "1.23", .toNearestOrEven)
+ /* ddqua1101 */ self.quantize64("1.2301", "1.00", "1.23", .toNearestOrEven, .isInexact)
+ /* ddqua1102 */ self.quantize64("1.2310", "1.00", "1.23", .toNearestOrEven, .isInexact)
+ /* ddqua1103 */ self.quantize64("1.2350", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* ddqua1104 */ self.quantize64("1.2351", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* ddqua1105 */ self.quantize64("1.2450", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* ddqua1106 */ self.quantize64("1.2451", "1.00", "1.25", .toNearestOrEven, .isInexact)
+ /* ddqua1107 */ self.quantize64("1.2360", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* ddqua1108 */ self.quantize64("1.2370", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* ddqua1109 */ self.quantize64("1.2399", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* ddqua111 */ self.quantize64("+1", "1e-1", "1.0", .toNearestOrEven)
+ /* ddqua112 */ self.quantize64("+1", "1e-2", "1.00", .toNearestOrEven)
+ /* ddqua120 */ self.quantize64("1.04", "1e-3", "1.040", .toNearestOrEven)
+ /* ddqua1200 */ self.quantize64("1.2300", "1.00", "1.23", .toNearestOrAwayFromZero)
+ /* ddqua1201 */ self.quantize64("1.2301", "1.00", "1.23", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1202 */ self.quantize64("1.2310", "1.00", "1.23", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1203 */ self.quantize64("1.2350", "1.00", "1.24", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1204 */ self.quantize64("1.2351", "1.00", "1.24", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1205 */ self.quantize64("1.2450", "1.00", "1.25", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1206 */ self.quantize64("1.2451", "1.00", "1.25", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1207 */ self.quantize64("1.2360", "1.00", "1.24", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1208 */ self.quantize64("1.2370", "1.00", "1.24", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1209 */ self.quantize64("1.2399", "1.00", "1.24", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua121 */ self.quantize64("1.04", "1e-2", "1.04", .toNearestOrEven)
+ /* ddqua122 */ self.quantize64("1.04", "1e-1", "1.0", .toNearestOrEven, .isInexact)
+ /* ddqua123 */ self.quantize64("1.04", "1e0", "1", .toNearestOrEven, .isInexact)
+ /* ddqua124 */ self.quantize64("1.05", "1e-3", "1.050", .toNearestOrEven)
+ /* ddqua125 */ self.quantize64("1.05", "1e-2", "1.05", .toNearestOrEven)
+ /* ddqua126 */ self.quantize64("1.05", "1e-1", "1.0", .toNearestOrEven, .isInexact)
+ /* ddqua131 */ self.quantize64("1.05", "1e0", "1", .toNearestOrEven, .isInexact)
+ /* ddqua132 */ self.quantize64("1.06", "1e-3", "1.060", .toNearestOrEven)
+ /* ddqua133 */ self.quantize64("1.06", "1e-2", "1.06", .toNearestOrEven)
+ /* ddqua134 */ self.quantize64("1.06", "1e-1", "1.1", .toNearestOrEven, .isInexact)
+ /* ddqua135 */ self.quantize64("1.06", "1e0", "1", .toNearestOrEven, .isInexact)
+ /* ddqua140 */ self.quantize64("-10", "1e-2", "-10.00", .toNearestOrEven)
+ /* ddqua141 */ self.quantize64("+1", "1e-2", "1.00", .toNearestOrEven)
+ /* ddqua142 */ self.quantize64("+10", "1e-2", "10.00", .toNearestOrEven)
+ /* ddqua143 */ self.quantize64("1E+17", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddqua144 */ self.quantize64("1E-17", "1e-2", "0.00", .toNearestOrEven, .isInexact)
+ /* ddqua145 */ self.quantize64("1E-3", "1e-2", "0.00", .toNearestOrEven, .isInexact)
+ /* ddqua146 */ self.quantize64("1E-2", "1e-2", "0.01", .toNearestOrEven)
+ /* ddqua147 */ self.quantize64("1E-1", "1e-2", "0.10", .toNearestOrEven)
+ /* ddqua148 */ self.quantize64("0E-17", "1e-2", "0.00", .toNearestOrEven)
+ /* ddqua150 */ self.quantize64("1.0600", "1e-5", "1.06000", .toNearestOrEven)
+ /* ddqua1500 */ self.quantize64("1.2300", "1.00", "1.23", .towardZero)
+ /* ddqua1501 */ self.quantize64("1.2301", "1.00", "1.23", .towardZero, .isInexact)
+ /* ddqua1502 */ self.quantize64("1.2310", "1.00", "1.23", .towardZero, .isInexact)
+ /* ddqua1503 */ self.quantize64("1.2350", "1.00", "1.23", .towardZero, .isInexact)
+ /* ddqua1504 */ self.quantize64("1.2351", "1.00", "1.23", .towardZero, .isInexact)
+ /* ddqua1505 */ self.quantize64("1.2450", "1.00", "1.24", .towardZero, .isInexact)
+ /* ddqua1506 */ self.quantize64("1.2451", "1.00", "1.24", .towardZero, .isInexact)
+ /* ddqua1507 */ self.quantize64("1.2360", "1.00", "1.23", .towardZero, .isInexact)
+ /* ddqua1508 */ self.quantize64("1.2370", "1.00", "1.23", .towardZero, .isInexact)
+ /* ddqua1509 */ self.quantize64("1.2399", "1.00", "1.23", .towardZero, .isInexact)
+ /* ddqua151 */ self.quantize64("1.0600", "1e-4", "1.0600", .toNearestOrEven)
+ /* ddqua1511 */ self.quantize64("-1.2399", "1.00", "-1.23", .towardZero, .isInexact)
+ /* ddqua152 */ self.quantize64("1.0600", "1e-3", "1.060", .toNearestOrEven)
+ /* ddqua153 */ self.quantize64("1.0600", "1e-2", "1.06", .toNearestOrEven)
+ /* ddqua154 */ self.quantize64("1.0600", "1e-1", "1.1", .toNearestOrEven, .isInexact)
+ /* ddqua155 */ self.quantize64("1.0600", "1e0", "1", .toNearestOrEven, .isInexact)
+ /* ddqua157 */ self.quantize64("-0.5", "1e+0", "-1", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua158 */ self.quantize64("1.05", "1e-1", "1.1", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua159 */ self.quantize64("1.06", "1e0", "1", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua1600 */ self.quantize64("1.2300", "1.00", "1.23", .up)
+ /* ddqua1601 */ self.quantize64("1.2301", "1.00", "1.24", .up, .isInexact)
+ /* ddqua1602 */ self.quantize64("1.2310", "1.00", "1.24", .up, .isInexact)
+ /* ddqua1603 */ self.quantize64("1.2350", "1.00", "1.24", .up, .isInexact)
+ /* ddqua1604 */ self.quantize64("1.2351", "1.00", "1.24", .up, .isInexact)
+ /* ddqua1605 */ self.quantize64("1.2450", "1.00", "1.25", .up, .isInexact)
+ /* ddqua1606 */ self.quantize64("1.2451", "1.00", "1.25", .up, .isInexact)
+ /* ddqua1607 */ self.quantize64("1.2360", "1.00", "1.24", .up, .isInexact)
+ /* ddqua1608 */ self.quantize64("1.2370", "1.00", "1.24", .up, .isInexact)
+ /* ddqua1609 */ self.quantize64("1.2399", "1.00", "1.24", .up, .isInexact)
+ /* ddqua161 */ self.quantize64("0", "-9e0", "0", .toNearestOrEven)
+ /* ddqua1611 */ self.quantize64("-1.2399", "1.00", "-1.23", .up, .isInexact)
+ /* ddqua162 */ self.quantize64("1", "-7e0", "1", .toNearestOrEven)
+ /* ddqua163 */ self.quantize64("0.1", "-1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua165 */ self.quantize64("0.1", "0e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua166 */ self.quantize64("0.1", "2e0", "0", .toNearestOrEven, .isInexact)
+ /* ddqua167 */ self.quantize64("0.1", "3e-1", "0.1", .toNearestOrEven)
+ /* ddqua168 */ self.quantize64("0.1", "44e-2", "0.10", .toNearestOrEven)
+ /* ddqua169 */ self.quantize64("0.1", "555e-3", "0.100", .toNearestOrEven)
+ /* ddqua170 */ self.quantize64("0.9", "6666e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua1700 */ self.quantize64("1.2300", "1.00", "1.23", .down)
+ /* ddqua1701 */ self.quantize64("1.2301", "1.00", "1.23", .down, .isInexact)
+ /* ddqua1702 */ self.quantize64("1.2310", "1.00", "1.23", .down, .isInexact)
+ /* ddqua1703 */ self.quantize64("1.2350", "1.00", "1.23", .down, .isInexact)
+ /* ddqua1704 */ self.quantize64("1.2351", "1.00", "1.23", .down, .isInexact)
+ /* ddqua1705 */ self.quantize64("1.2450", "1.00", "1.24", .down, .isInexact)
+ /* ddqua1706 */ self.quantize64("1.2451", "1.00", "1.24", .down, .isInexact)
+ /* ddqua1707 */ self.quantize64("1.2360", "1.00", "1.23", .down, .isInexact)
+ /* ddqua1708 */ self.quantize64("1.2370", "1.00", "1.23", .down, .isInexact)
+ /* ddqua1709 */ self.quantize64("1.2399", "1.00", "1.23", .down, .isInexact)
+ /* ddqua171 */ self.quantize64("0.9", "-777e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua1711 */ self.quantize64("-1.2399", "1.00", "-1.24", .down, .isInexact)
+ /* ddqua172 */ self.quantize64("0.9", "-88e+0", "1", .toNearestOrEven, .isInexact)
+ /* ddqua173 */ self.quantize64("0.9", "-9e-1", "0.9", .toNearestOrEven)
+ /* ddqua174 */ self.quantize64("0.9", "0e-2", "0.90", .toNearestOrEven)
+ /* ddqua175 */ self.quantize64("0.9", "1.1e-3", "0.9000", .toNearestOrEven)
+ /* ddqua181 */ self.quantize64("-0", "1.1e0", "-0.0", .toNearestOrEven)
+ /* ddqua182 */ self.quantize64("-1", "-1e0", "-1", .toNearestOrEven)
+ /* ddqua183 */ self.quantize64("-0.1", "11e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua185 */ self.quantize64("-0.1", "111e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua186 */ self.quantize64("-0.1", "71e0", "-0", .toNearestOrEven, .isInexact)
+ /* ddqua187 */ self.quantize64("-0.1", "-91e-1", "-0.1", .toNearestOrEven)
+ /* ddqua188 */ self.quantize64("-0.1", "-.1e-2", "-0.100", .toNearestOrEven)
+ /* ddqua189 */ self.quantize64("-0.1", "-1e-3", "-0.100", .toNearestOrEven)
+ /* ddqua190 */ self.quantize64("-0.9", "0e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua191 */ self.quantize64("-0.9", "-0e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua192 */ self.quantize64("-0.9", "-10e+0", "-1", .toNearestOrEven, .isInexact)
+ /* ddqua193 */ self.quantize64("-0.9", "100e-1", "-0.9", .toNearestOrEven)
+ /* ddqua194 */ self.quantize64("-0.9", "999e-2", "-0.90", .toNearestOrEven)
+ /* ddqua201 */ self.quantize64("-1", "1e+0", "-1", .toNearestOrEven)
+ /* ddqua202 */ self.quantize64("-1", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua203 */ self.quantize64("-1", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua204 */ self.quantize64("0", "1e+0", "0", .toNearestOrEven)
+ /* ddqua205 */ self.quantize64("0", "1e+1", "0E+1", .toNearestOrEven)
+ /* ddqua206 */ self.quantize64("0", "1e+2", "0E+2", .toNearestOrEven)
+ /* ddqua207 */ self.quantize64("+1", "1e+0", "1", .toNearestOrEven)
+ /* ddqua208 */ self.quantize64("+1", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua209 */ self.quantize64("+1", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua220 */ self.quantize64("1.04", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua221 */ self.quantize64("1.04", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua222 */ self.quantize64("1.04", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua223 */ self.quantize64("1.04", "1e+0", "1", .toNearestOrEven, .isInexact)
+ /* ddqua224 */ self.quantize64("1.05", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua225 */ self.quantize64("1.05", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua226 */ self.quantize64("1.05", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua227 */ self.quantize64("1.05", "1e+0", "1", .toNearestOrEven, .isInexact)
+ /* ddqua228 */ self.quantize64("1.05", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua229 */ self.quantize64("1.05", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua230 */ self.quantize64("1.05", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua231 */ self.quantize64("1.05", "1e+0", "1", .toNearestOrEven, .isInexact)
+ /* ddqua232 */ self.quantize64("1.06", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua233 */ self.quantize64("1.06", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua234 */ self.quantize64("1.06", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua235 */ self.quantize64("1.06", "1e+0", "1", .toNearestOrEven, .isInexact)
+ /* ddqua240 */ self.quantize64("-10", "1e+1", "-1E+1", .toNearestOrEven)
+ /* ddqua241 */ self.quantize64("+1", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua242 */ self.quantize64("+10", "1e+1", "1E+1", .toNearestOrEven)
+ /* ddqua243 */ self.quantize64("1E+1", "1e+1", "1E+1", .toNearestOrEven)
+ /* ddqua244 */ self.quantize64("1E+2", "1e+1", "1.0E+2", .toNearestOrEven)
+ /* ddqua245 */ self.quantize64("1E+3", "1e+1", "1.00E+3", .toNearestOrEven)
+ /* ddqua246 */ self.quantize64("1E+4", "1e+1", "1.000E+4", .toNearestOrEven)
+ /* ddqua247 */ self.quantize64("1E+5", "1e+1", "1.0000E+5", .toNearestOrEven)
+ /* ddqua248 */ self.quantize64("1E+6", "1e+1", "1.00000E+6", .toNearestOrEven)
+ /* ddqua249 */ self.quantize64("1E+7", "1e+1", "1.000000E+7", .toNearestOrEven)
+ /* ddqua250 */ self.quantize64("1E+8", "1e+1", "1.0000000E+8", .toNearestOrEven)
+ /* ddqua251 */ self.quantize64("1E+9", "1e+1", "1.00000000E+9", .toNearestOrEven)
+ /* ddqua252 */ self.quantize64("1E+17", "1e+1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddqua253 */ self.quantize64("1E-17", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua254 */ self.quantize64("1E-2", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua255 */ self.quantize64("0E-17", "1e+1", "0E+1", .toNearestOrEven)
+ /* ddqua256 */ self.quantize64("-0E-17", "1e+1", "-0E+1", .toNearestOrEven)
+ /* ddqua257 */ self.quantize64("-0E-1", "1e+1", "-0E+1", .toNearestOrEven)
+ /* ddqua258 */ self.quantize64("-0", "1e+1", "-0E+1", .toNearestOrEven)
+ /* ddqua259 */ self.quantize64("-0E+1", "1e+1", "-0E+1", .toNearestOrEven)
+ /* ddqua260 */ self.quantize64("-10", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua261 */ self.quantize64("+1", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua262 */ self.quantize64("+10", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua263 */ self.quantize64("1E+1", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua264 */ self.quantize64("1E+2", "1e+2", "1E+2", .toNearestOrEven)
+ /* ddqua265 */ self.quantize64("1E+3", "1e+2", "1.0E+3", .toNearestOrEven)
+ /* ddqua266 */ self.quantize64("1E+4", "1e+2", "1.00E+4", .toNearestOrEven)
+ /* ddqua267 */ self.quantize64("1E+5", "1e+2", "1.000E+5", .toNearestOrEven)
+ /* ddqua268 */ self.quantize64("1E+6", "1e+2", "1.0000E+6", .toNearestOrEven)
+ /* ddqua269 */ self.quantize64("1E+7", "1e+2", "1.00000E+7", .toNearestOrEven)
+ /* ddqua270 */ self.quantize64("1E+8", "1e+2", "1.000000E+8", .toNearestOrEven)
+ /* ddqua271 */ self.quantize64("1E+9", "1e+2", "1.0000000E+9", .toNearestOrEven)
+ /* ddqua272 */ self.quantize64("1E+10", "1e+2", "1.00000000E+10", .toNearestOrEven)
+ /* ddqua273 */ self.quantize64("1E-10", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua274 */ self.quantize64("1E-2", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua275 */ self.quantize64("0E-10", "1e+2", "0E+2", .toNearestOrEven)
+ /* ddqua280 */ self.quantize64("-10", "1e+3", "-0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua281 */ self.quantize64("+1", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua282 */ self.quantize64("+10", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua283 */ self.quantize64("1E+1", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua284 */ self.quantize64("1E+2", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua285 */ self.quantize64("1E+3", "1e+3", "1E+3", .toNearestOrEven)
+ /* ddqua286 */ self.quantize64("1E+4", "1e+3", "1.0E+4", .toNearestOrEven)
+ /* ddqua287 */ self.quantize64("1E+5", "1e+3", "1.00E+5", .toNearestOrEven)
+ /* ddqua288 */ self.quantize64("1E+6", "1e+3", "1.000E+6", .toNearestOrEven)
+ /* ddqua289 */ self.quantize64("1E+7", "1e+3", "1.0000E+7", .toNearestOrEven)
+ /* ddqua290 */ self.quantize64("1E+8", "1e+3", "1.00000E+8", .toNearestOrEven)
+ /* ddqua291 */ self.quantize64("1E+9", "1e+3", "1.000000E+9", .toNearestOrEven)
+ /* ddqua292 */ self.quantize64("1E+10", "1e+3", "1.0000000E+10", .toNearestOrEven)
+ /* ddqua293 */ self.quantize64("1E-10", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua294 */ self.quantize64("1E-2", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua295 */ self.quantize64("0E-10", "1e+3", "0E+3", .toNearestOrEven)
+ /* ddqua300 */ self.quantize64("0.0078", "1e-5", "0.00780", .toNearestOrEven)
+ /* ddqua301 */ self.quantize64("0.0078", "1e-4", "0.0078", .toNearestOrEven)
+ /* ddqua302 */ self.quantize64("0.0078", "1e-3", "0.008", .toNearestOrEven, .isInexact)
+ /* ddqua303 */ self.quantize64("0.0078", "1e-2", "0.01", .toNearestOrEven, .isInexact)
+ /* ddqua304 */ self.quantize64("0.0078", "1e-1", "0.0", .toNearestOrEven, .isInexact)
+ /* ddqua305 */ self.quantize64("0.0078", "1e0", "0", .toNearestOrEven, .isInexact)
+ /* ddqua306 */ self.quantize64("0.0078", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua307 */ self.quantize64("0.0078", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua310 */ self.quantize64("-0.0078", "1e-5", "-0.00780", .toNearestOrEven)
+ /* ddqua311 */ self.quantize64("-0.0078", "1e-4", "-0.0078", .toNearestOrEven)
+ /* ddqua312 */ self.quantize64("-0.0078", "1e-3", "-0.008", .toNearestOrEven, .isInexact)
+ /* ddqua313 */ self.quantize64("-0.0078", "1e-2", "-0.01", .toNearestOrEven, .isInexact)
+ /* ddqua314 */ self.quantize64("-0.0078", "1e-1", "-0.0", .toNearestOrEven, .isInexact)
+ /* ddqua315 */ self.quantize64("-0.0078", "1e0", "-0", .toNearestOrEven, .isInexact)
+ /* ddqua316 */ self.quantize64("-0.0078", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua317 */ self.quantize64("-0.0078", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua320 */ self.quantize64("0.078", "1e-5", "0.07800", .toNearestOrEven)
+ /* ddqua321 */ self.quantize64("0.078", "1e-4", "0.0780", .toNearestOrEven)
+ /* ddqua322 */ self.quantize64("0.078", "1e-3", "0.078", .toNearestOrEven)
+ /* ddqua323 */ self.quantize64("0.078", "1e-2", "0.08", .toNearestOrEven, .isInexact)
+ /* ddqua324 */ self.quantize64("0.078", "1e-1", "0.1", .toNearestOrEven, .isInexact)
+ /* ddqua325 */ self.quantize64("0.078", "1e0", "0", .toNearestOrEven, .isInexact)
+ /* ddqua326 */ self.quantize64("0.078", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua327 */ self.quantize64("0.078", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua330 */ self.quantize64("-0.078", "1e-5", "-0.07800", .toNearestOrEven)
+ /* ddqua331 */ self.quantize64("-0.078", "1e-4", "-0.0780", .toNearestOrEven)
+ /* ddqua332 */ self.quantize64("-0.078", "1e-3", "-0.078", .toNearestOrEven)
+ /* ddqua333 */ self.quantize64("-0.078", "1e-2", "-0.08", .toNearestOrEven, .isInexact)
+ /* ddqua334 */ self.quantize64("-0.078", "1e-1", "-0.1", .toNearestOrEven, .isInexact)
+ /* ddqua335 */ self.quantize64("-0.078", "1e0", "-0", .toNearestOrEven, .isInexact)
+ /* ddqua336 */ self.quantize64("-0.078", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua337 */ self.quantize64("-0.078", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua340 */ self.quantize64("0.78", "1e-5", "0.78000", .toNearestOrEven)
+ /* ddqua341 */ self.quantize64("0.78", "1e-4", "0.7800", .toNearestOrEven)
+ /* ddqua342 */ self.quantize64("0.78", "1e-3", "0.780", .toNearestOrEven)
+ /* ddqua343 */ self.quantize64("0.78", "1e-2", "0.78", .toNearestOrEven)
+ /* ddqua344 */ self.quantize64("0.78", "1e-1", "0.8", .toNearestOrEven, .isInexact)
+ /* ddqua345 */ self.quantize64("0.78", "1e0", "1", .toNearestOrEven, .isInexact)
+ /* ddqua346 */ self.quantize64("0.78", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua347 */ self.quantize64("0.78", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua350 */ self.quantize64("-0.78", "1e-5", "-0.78000", .toNearestOrEven)
+ /* ddqua351 */ self.quantize64("-0.78", "1e-4", "-0.7800", .toNearestOrEven)
+ /* ddqua352 */ self.quantize64("-0.78", "1e-3", "-0.780", .toNearestOrEven)
+ /* ddqua353 */ self.quantize64("-0.78", "1e-2", "-0.78", .toNearestOrEven)
+ /* ddqua354 */ self.quantize64("-0.78", "1e-1", "-0.8", .toNearestOrEven, .isInexact)
+ /* ddqua355 */ self.quantize64("-0.78", "1e0", "-1", .toNearestOrEven, .isInexact)
+ /* ddqua356 */ self.quantize64("-0.78", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* ddqua357 */ self.quantize64("-0.78", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua360 */ self.quantize64("7.8", "1e-5", "7.80000", .toNearestOrEven)
+ /* ddqua361 */ self.quantize64("7.8", "1e-4", "7.8000", .toNearestOrEven)
+ /* ddqua362 */ self.quantize64("7.8", "1e-3", "7.800", .toNearestOrEven)
+ /* ddqua363 */ self.quantize64("7.8", "1e-2", "7.80", .toNearestOrEven)
+ /* ddqua364 */ self.quantize64("7.8", "1e-1", "7.8", .toNearestOrEven)
+ /* ddqua365 */ self.quantize64("7.8", "1e0", "8", .toNearestOrEven, .isInexact)
+ /* ddqua366 */ self.quantize64("7.8", "1e+1", "1E+1", .toNearestOrEven, .isInexact)
+ /* ddqua367 */ self.quantize64("7.8", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua368 */ self.quantize64("7.8", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua370 */ self.quantize64("-7.8", "1e-5", "-7.80000", .toNearestOrEven)
+ /* ddqua371 */ self.quantize64("-7.8", "1e-4", "-7.8000", .toNearestOrEven)
+ /* ddqua372 */ self.quantize64("-7.8", "1e-3", "-7.800", .toNearestOrEven)
+ /* ddqua373 */ self.quantize64("-7.8", "1e-2", "-7.80", .toNearestOrEven)
+ /* ddqua374 */ self.quantize64("-7.8", "1e-1", "-7.8", .toNearestOrEven)
+ /* ddqua375 */ self.quantize64("-7.8", "1e0", "-8", .toNearestOrEven, .isInexact)
+ /* ddqua376 */ self.quantize64("-7.8", "1e+1", "-1E+1", .toNearestOrEven, .isInexact)
+ /* ddqua377 */ self.quantize64("-7.8", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* ddqua378 */ self.quantize64("-7.8", "1e+3", "-0E+3", .toNearestOrEven, .isInexact)
+ /* ddqua380 */ self.quantize64("1234567352364.506", "1e-2", "1234567352364.51", .toNearestOrEven, .isInexact)
+ /* ddqua381 */ self.quantize64("12345673523645.06", "1e-2", "12345673523645.06", .toNearestOrEven)
+ /* ddqua382 */ self.quantize64("123456735236450.6", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddqua383 */ self.quantize64("1234567352364506", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddqua384 */ self.quantize64("-1234567352364.506", "1e-2", "-1234567352364.51", .toNearestOrEven, .isInexact)
+ /* ddqua385 */ self.quantize64("-12345673523645.06", "1e-2", "-12345673523645.06", .toNearestOrEven)
+ /* ddqua386 */ self.quantize64("-123456735236450.6", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddqua387 */ self.quantize64("-1234567352364506", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddqua389 */ self.quantize64("123456735236450.6", "1e-2", "NaN", .towardZero, .isInvalidOperation)
+ /* ddqua391 */ self.quantize64("12345678912.34567", "1e-3", "12345678912.346", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua392 */ self.quantize64("123456789123.4567", "1e-3", "123456789123.457", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua393 */ self.quantize64("1234567891234.567", "1e-3", "1234567891234.567", .toNearestOrAwayFromZero)
+ /* ddqua394 */ self.quantize64("12345678912345.67", "1e-3", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua395 */ self.quantize64("123456789123456.7", "1e-3", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua396 */ self.quantize64("1234567891234567.", "1e-3", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua400 */ self.quantize64("9.999", "1e-5", "9.99900", .toNearestOrAwayFromZero)
+ /* ddqua401 */ self.quantize64("9.999", "1e-4", "9.9990", .toNearestOrAwayFromZero)
+ /* ddqua402 */ self.quantize64("9.999", "1e-3", "9.999", .toNearestOrAwayFromZero)
+ /* ddqua403 */ self.quantize64("9.999", "1e-2", "10.00", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua404 */ self.quantize64("9.999", "1e-1", "10.0", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua405 */ self.quantize64("9.999", "1e0", "10", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua406 */ self.quantize64("9.999", "1e1", "1E+1", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua407 */ self.quantize64("9.999", "1e2", "0E+2", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua410 */ self.quantize64("0.999", "1e-5", "0.99900", .toNearestOrAwayFromZero)
+ /* ddqua411 */ self.quantize64("0.999", "1e-4", "0.9990", .toNearestOrAwayFromZero)
+ /* ddqua412 */ self.quantize64("0.999", "1e-3", "0.999", .toNearestOrAwayFromZero)
+ /* ddqua413 */ self.quantize64("0.999", "1e-2", "1.00", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua414 */ self.quantize64("0.999", "1e-1", "1.0", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua415 */ self.quantize64("0.999", "1e0", "1", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua416 */ self.quantize64("0.999", "1e1", "0E+1", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua420 */ self.quantize64("0.0999", "1e-5", "0.09990", .toNearestOrAwayFromZero)
+ /* ddqua421 */ self.quantize64("0.0999", "1e-4", "0.0999", .toNearestOrAwayFromZero)
+ /* ddqua422 */ self.quantize64("0.0999", "1e-3", "0.100", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua423 */ self.quantize64("0.0999", "1e-2", "0.10", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua424 */ self.quantize64("0.0999", "1e-1", "0.1", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua425 */ self.quantize64("0.0999", "1e0", "0", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua426 */ self.quantize64("0.0999", "1e1", "0E+1", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua430 */ self.quantize64("0.00999", "1e-5", "0.00999", .toNearestOrAwayFromZero)
+ /* ddqua431 */ self.quantize64("0.00999", "1e-4", "0.0100", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua432 */ self.quantize64("0.00999", "1e-3", "0.010", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua433 */ self.quantize64("0.00999", "1e-2", "0.01", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua434 */ self.quantize64("0.00999", "1e-1", "0.0", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua435 */ self.quantize64("0.00999", "1e0", "0", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua436 */ self.quantize64("0.00999", "1e1", "0E+1", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua440 */ self.quantize64("0.000999", "1e-5", "0.00100", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua441 */ self.quantize64("0.000999", "1e-4", "0.0010", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua442 */ self.quantize64("0.000999", "1e-3", "0.001", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua443 */ self.quantize64("0.000999", "1e-2", "0.00", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua444 */ self.quantize64("0.000999", "1e-1", "0.0", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua445 */ self.quantize64("0.000999", "1e0", "0", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua446 */ self.quantize64("0.000999", "1e1", "0E+1", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua481 */ self.quantize64("12345678000", "1e+3", "1.2345678E+10", .toNearestOrAwayFromZero)
+ /* ddqua482 */ self.quantize64("1234567800", "1e+1", "1.23456780E+9", .toNearestOrAwayFromZero)
+ /* ddqua483 */ self.quantize64("1234567890", "1e+1", "1.23456789E+9", .toNearestOrAwayFromZero)
+ /* ddqua484 */ self.quantize64("1234567891", "1e+1", "1.23456789E+9", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua485 */ self.quantize64("12345678901", "1e+2", "1.23456789E+10", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua486 */ self.quantize64("1234567896", "1e+1", "1.23456790E+9", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua487 */ self.quantize64("1234.987643", "1e-4", "1234.9876", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua488 */ self.quantize64("1234.987647", "1e-4", "1234.9876", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua491 */ self.quantize64("12345678000", "1e+3", "1.2345678E+10", .toNearestOrAwayFromZero)
+ /* ddqua492 */ self.quantize64("1234567800", "1e+1", "1.23456780E+9", .toNearestOrAwayFromZero)
+ /* ddqua493 */ self.quantize64("1234567890", "1e+1", "1.23456789E+9", .toNearestOrAwayFromZero)
+ /* ddqua494 */ self.quantize64("1234567891", "1e+1", "1.23456789E+9", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua495 */ self.quantize64("12345678901", "1e+2", "1.23456789E+10", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua496 */ self.quantize64("1234567896", "1e+1", "1.23456790E+9", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua497 */ self.quantize64("1234.987643", "1e-4", "1234.9876", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua498 */ self.quantize64("1234.987647", "1e-4", "1234.9876", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua500 */ self.quantize64("0", "1e1", "0E+1", .toNearestOrAwayFromZero)
+ /* ddqua501 */ self.quantize64("0", "1e0", "0", .toNearestOrAwayFromZero)
+ /* ddqua502 */ self.quantize64("0", "1e-1", "0.0", .toNearestOrAwayFromZero)
+ /* ddqua503 */ self.quantize64("0.0", "1e-1", "0.0", .toNearestOrAwayFromZero)
+ /* ddqua504 */ self.quantize64("0.0", "1e0", "0", .toNearestOrAwayFromZero)
+ /* ddqua505 */ self.quantize64("0.0", "1e+1", "0E+1", .toNearestOrAwayFromZero)
+ /* ddqua506 */ self.quantize64("0E+1", "1e-1", "0.0", .toNearestOrAwayFromZero)
+ /* ddqua507 */ self.quantize64("0E+1", "1e0", "0", .toNearestOrAwayFromZero)
+ /* ddqua508 */ self.quantize64("0E+1", "1e+1", "0E+1", .toNearestOrAwayFromZero)
+ /* ddqua509 */ self.quantize64("-0", "1e1", "-0E+1", .toNearestOrAwayFromZero)
+ /* ddqua510 */ self.quantize64("-0", "1e0", "-0", .toNearestOrAwayFromZero)
+ /* ddqua511 */ self.quantize64("-0", "1e-1", "-0.0", .toNearestOrAwayFromZero)
+ /* ddqua512 */ self.quantize64("-0.0", "1e-1", "-0.0", .toNearestOrAwayFromZero)
+ /* ddqua513 */ self.quantize64("-0.0", "1e0", "-0", .toNearestOrAwayFromZero)
+ /* ddqua514 */ self.quantize64("-0.0", "1e+1", "-0E+1", .toNearestOrAwayFromZero)
+ /* ddqua515 */ self.quantize64("-0E+1", "1e-1", "-0.0", .toNearestOrAwayFromZero)
+ /* ddqua516 */ self.quantize64("-0E+1", "1e0", "-0", .toNearestOrAwayFromZero)
+ /* ddqua517 */ self.quantize64("-0E+1", "1e+1", "-0E+1", .toNearestOrAwayFromZero)
+ /* ddqua520 */ self.quantize64("1.234", "1e359", "0E+359", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua521 */ self.quantize64("123.456", "1e359", "0E+359", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua522 */ self.quantize64("1.234", "1e359", "0E+359", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua523 */ self.quantize64("123.456", "1e359", "0E+359", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua526 */ self.quantize64("1.234", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua527 */ self.quantize64("123.456", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua528 */ self.quantize64("1.234", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua529 */ self.quantize64("123.456", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua532 */ self.quantize64("1.234E+299", "1e299", "1E+299", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua533 */ self.quantize64("1.234E+298", "1e299", "0E+299", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua534 */ self.quantize64("1.234", "1e299", "0E+299", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua537 */ self.quantize64("0", "1e-299", "0E-299", .toNearestOrAwayFromZero)
+ /* ddqua538 */ self.quantize64("1.234", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua539 */ self.quantize64("1.234", "1e-300", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua580 */ self.quantize64("Inf", "-Inf", "Infinity", .toNearestOrAwayFromZero)
+ /* ddqua581 */ self.quantize64("Inf", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua582 */ self.quantize64("Inf", "1e-1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua583 */ self.quantize64("Inf", "1e0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua584 */ self.quantize64("Inf", "1e1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua585 */ self.quantize64("Inf", "1e299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua586 */ self.quantize64("Inf", "Inf", "Infinity", .toNearestOrAwayFromZero)
+ /* ddqua587 */ self.quantize64("-1000", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua588 */ self.quantize64("-Inf", "Inf", "-Infinity", .toNearestOrAwayFromZero)
+ /* ddqua589 */ self.quantize64("-1", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua590 */ self.quantize64("0", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua591 */ self.quantize64("1", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua592 */ self.quantize64("1000", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua593 */ self.quantize64("Inf", "Inf", "Infinity", .toNearestOrAwayFromZero)
+ /* ddqua594 */ self.quantize64("Inf", "1e-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua595 */ self.quantize64("-0", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua600 */ self.quantize64("-Inf", "-Inf", "-Infinity", .toNearestOrAwayFromZero)
+ /* ddqua601 */ self.quantize64("-Inf", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua602 */ self.quantize64("-Inf", "1e-1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua603 */ self.quantize64("-Inf", "1e0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua604 */ self.quantize64("-Inf", "1e1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua605 */ self.quantize64("-Inf", "1e299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua606 */ self.quantize64("-Inf", "Inf", "-Infinity", .toNearestOrAwayFromZero)
+ /* ddqua607 */ self.quantize64("-1000", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua608 */ self.quantize64("-Inf", "-Inf", "-Infinity", .toNearestOrAwayFromZero)
+ /* ddqua609 */ self.quantize64("-1", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua610 */ self.quantize64("0", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua611 */ self.quantize64("1", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua612 */ self.quantize64("1000", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua613 */ self.quantize64("Inf", "-Inf", "Infinity", .toNearestOrAwayFromZero)
+ /* ddqua614 */ self.quantize64("-Inf", "1e-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua615 */ self.quantize64("-0", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua621 */ self.quantize64("NaN", "-Inf", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua622 */ self.quantize64("NaN", "1e-299", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua623 */ self.quantize64("NaN", "1e-1", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua624 */ self.quantize64("NaN", "1e0", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua625 */ self.quantize64("NaN", "1e1", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua626 */ self.quantize64("NaN", "1e299", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua627 */ self.quantize64("NaN", "Inf", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua628 */ self.quantize64("NaN", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua629 */ self.quantize64("-Inf", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua630 */ self.quantize64("-1000", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua631 */ self.quantize64("-1", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua632 */ self.quantize64("0", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua633 */ self.quantize64("1", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua634 */ self.quantize64("1000", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua635 */ self.quantize64("Inf", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua636 */ self.quantize64("NaN", "1e-0", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua637 */ self.quantize64("-0", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* ddqua641 */ self.quantize64("sNaN", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua642 */ self.quantize64("sNaN", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua643 */ self.quantize64("sNaN", "1e-1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua644 */ self.quantize64("sNaN", "1e0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua645 */ self.quantize64("sNaN", "1e1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua646 */ self.quantize64("sNaN", "1e299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua647 */ self.quantize64("sNaN", "NaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua648 */ self.quantize64("sNaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua649 */ self.quantize64("NaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua650 */ self.quantize64("-Inf", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua651 */ self.quantize64("-1000", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua652 */ self.quantize64("-1", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua653 */ self.quantize64("0", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua654 */ self.quantize64("1", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua655 */ self.quantize64("1000", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua656 */ self.quantize64("Inf", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua657 */ self.quantize64("NaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua658 */ self.quantize64("sNaN", "1e-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua659 */ self.quantize64("-0", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua661 */ self.quantize64("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrAwayFromZero)
+ /* ddqua662 */ self.quantize64("NaN(0x8)", "919", "NaN(0x8)", .toNearestOrAwayFromZero)
+ /* ddqua663 */ self.quantize64("NaN(0x47)", "Inf", "NaN(0x47)", .toNearestOrAwayFromZero)
+ /* ddqua664 */ self.quantize64("NaN(0x6)", "NaN(0x5)", "NaN(0x6)", .toNearestOrAwayFromZero)
+ /* ddqua665 */ self.quantize64("-Inf", "NaN(0x4)", "NaN(0x4)", .toNearestOrAwayFromZero)
+ /* ddqua666 */ self.quantize64("-919", "NaN(0x1f)", "NaN(0x1f)", .toNearestOrAwayFromZero)
+ /* ddqua667 */ self.quantize64("Inf", "NaN(0x2)", "NaN(0x2)", .toNearestOrAwayFromZero)
+ /* ddqua671 */ self.quantize64("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua672 */ self.quantize64("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua673 */ self.quantize64("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua674 */ self.quantize64("sNaN(0x10)", "sNaN(0x5e)", "NaN(0x10)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua675 */ self.quantize64("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua676 */ self.quantize64("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua677 */ self.quantize64("088", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua678 */ self.quantize64("Inf", "sNaN(0x5a)", "NaN(0x5a)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua679 */ self.quantize64("NaN", "sNaN(0x58)", "NaN(0x58)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua681 */ self.quantize64("-NaN(0x9)", "-Inf", "-NaN(0x9)", .toNearestOrAwayFromZero)
+ /* ddqua682 */ self.quantize64("-NaN(0x8)", "919", "-NaN(0x8)", .toNearestOrAwayFromZero)
+ /* ddqua683 */ self.quantize64("-NaN(0x47)", "Inf", "-NaN(0x47)", .toNearestOrAwayFromZero)
+ /* ddqua684 */ self.quantize64("-NaN(0x6)", "-NaN(0x5)", "-NaN(0x6)", .toNearestOrAwayFromZero)
+ /* ddqua685 */ self.quantize64("-Inf", "-NaN(0x4)", "-NaN(0x4)", .toNearestOrAwayFromZero)
+ /* ddqua686 */ self.quantize64("-919", "-NaN(0x1f)", "-NaN(0x1f)", .toNearestOrAwayFromZero)
+ /* ddqua687 */ self.quantize64("Inf", "-NaN(0x2)", "-NaN(0x2)", .toNearestOrAwayFromZero)
+ /* ddqua691 */ self.quantize64("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua692 */ self.quantize64("-sNaN(0x62)", "-11", "-NaN(0x62)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua693 */ self.quantize64("-sNaN(0x61)", "NaN", "-NaN(0x61)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua694 */ self.quantize64("-sNaN(0x10)", "sNaN(0x5e)", "-NaN(0x10)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua695 */ self.quantize64("-NaN(0x5f)", "-sNaN(0x5d)", "-NaN(0x5d)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua696 */ self.quantize64("-Inf", "-sNaN(0x5c)", "-NaN(0x5c)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua697 */ self.quantize64("088", "-sNaN(0x5b)", "-NaN(0x5b)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua698 */ self.quantize64("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua699 */ self.quantize64("NaN", "-sNaN(0x58)", "-NaN(0x58)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* ddqua710 */ self.quantize64("1.00E-383", "1e-383", "1E-383", .toNearestOrAwayFromZero)
+ /* ddqua711 */ self.quantize64("0.1E-383", "2e-384", "1E-384", .toNearestOrAwayFromZero)
+ /* ddqua712 */ self.quantize64("0.10E-383", "3e-384", "1E-384", .toNearestOrAwayFromZero)
+ /* ddqua713 */ self.quantize64("0.100E-383", "4e-384", "1E-384", .toNearestOrAwayFromZero)
+ /* ddqua714 */ self.quantize64("0.01E-383", "5e-385", "1E-385", .toNearestOrAwayFromZero)
+ /* ddqua715 */ self.quantize64("0.999E-383", "1e-383", "1E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua716 */ self.quantize64("0.099E-383", "10e-384", "1E-384", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua717 */ self.quantize64("0.009E-383", "1e-385", "1E-385", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua718 */ self.quantize64("0.001E-383", "1e-385", "0E-385", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua719 */ self.quantize64("0.0009E-383", "1e-385", "0E-385", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua720 */ self.quantize64("0.0001E-383", "1e-385", "0E-385", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua730 */ self.quantize64("-1.00E-383", "1e-383", "-1E-383", .toNearestOrAwayFromZero)
+ /* ddqua731 */ self.quantize64("-0.1E-383", "1e-383", "-0E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua732 */ self.quantize64("-0.10E-383", "1e-383", "-0E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua733 */ self.quantize64("-0.100E-383", "1e-383", "-0E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua734 */ self.quantize64("-0.01E-383", "1e-383", "-0E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua735 */ self.quantize64("-0.999E-383", "90e-383", "-1E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua736 */ self.quantize64("-0.099E-383", "-1e-383", "-0E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua737 */ self.quantize64("-0.009E-383", "-1e-383", "-0E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua738 */ self.quantize64("-0.001E-383", "-0e-383", "-0E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua739 */ self.quantize64("-0.0001E-383", "0e-383", "-0E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua740 */ self.quantize64("-1.00E-383", "1e-384", "-1.0E-383", .toNearestOrAwayFromZero)
+ /* ddqua741 */ self.quantize64("-0.1E-383", "1e-384", "-1E-384", .toNearestOrAwayFromZero)
+ /* ddqua742 */ self.quantize64("-0.10E-383", "1e-384", "-1E-384", .toNearestOrAwayFromZero)
+ /* ddqua743 */ self.quantize64("-0.100E-383", "1e-384", "-1E-384", .toNearestOrAwayFromZero)
+ /* ddqua744 */ self.quantize64("-0.01E-383", "1e-384", "-0E-384", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua745 */ self.quantize64("-0.999E-383", "1e-384", "-1.0E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua746 */ self.quantize64("-0.099E-383", "1e-384", "-1E-384", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua747 */ self.quantize64("-0.009E-383", "1e-384", "-0E-384", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua748 */ self.quantize64("-0.001E-383", "1e-384", "-0E-384", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua749 */ self.quantize64("-0.0001E-383", "1e-384", "-0E-384", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua750 */ self.quantize64("-1.00E-383", "1e-385", "-1.00E-383", .toNearestOrAwayFromZero)
+ /* ddqua751 */ self.quantize64("-0.1E-383", "1e-385", "-1.0E-384", .toNearestOrAwayFromZero)
+ /* ddqua752 */ self.quantize64("-0.10E-383", "1e-385", "-1.0E-384", .toNearestOrAwayFromZero)
+ /* ddqua753 */ self.quantize64("-0.100E-383", "1e-385", "-1.0E-384", .toNearestOrAwayFromZero)
+ /* ddqua754 */ self.quantize64("-0.01E-383", "1e-385", "-1E-385", .toNearestOrAwayFromZero)
+ /* ddqua755 */ self.quantize64("-0.999E-383", "1e-385", "-1.00E-383", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua756 */ self.quantize64("-0.099E-383", "1e-385", "-1.0E-384", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua757 */ self.quantize64("-0.009E-383", "1e-385", "-1E-385", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua758 */ self.quantize64("-0.001E-383", "1e-385", "-0E-385", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua759 */ self.quantize64("-0.0001E-383", "1e-385", "-0E-385", .toNearestOrAwayFromZero, .isInexact)
+ /* ddqua760 */ self.quantize64("-1.00E-383", "1e-386", "-1.000E-383", .toNearestOrAwayFromZero)
+ /* ddqua761 */ self.quantize64("-0.1E-383", "1e-386", "-1.00E-384", .toNearestOrAwayFromZero)
+ /* ddqua762 */ self.quantize64("-0.10E-383", "1e-386", "-1.00E-384", .toNearestOrAwayFromZero)
+ /* ddqua763 */ self.quantize64("-0.100E-383", "1e-386", "-1.00E-384", .toNearestOrAwayFromZero)
+ /* ddqua764 */ self.quantize64("-0.01E-383", "1e-386", "-1.0E-385", .toNearestOrAwayFromZero)
+ /* ddqua765 */ self.quantize64("-0.999E-383", "1e-386", "-9.99E-384", .toNearestOrAwayFromZero)
+ /* ddqua766 */ self.quantize64("-0.099E-383", "1e-386", "-9.9E-385", .toNearestOrAwayFromZero)
+ /* ddqua767 */ self.quantize64("-0.009E-383", "1e-386", "-9E-386", .toNearestOrAwayFromZero)
+ /* ddqua768 */ self.quantize64("-0.001E-383", "1e-386", "-1E-386", .toNearestOrAwayFromZero)
+ /* ddqua769 */ self.quantize64("-0.0001E-383", "1e-386", "-0E-386", .toNearestOrAwayFromZero, .isInexact)
+ }
+
+ private func quantize64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.quantized(to: arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_quantize(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_quantize128() {
+ /* dqcan401 */ self.quantize128("#ee080ff3fcff3fcff3fffffffff3fcff", "0", "#ee080ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan402 */ self.quantize128("#ee080ff3fffffffffffcff3fcff3fcff", "0", "#ee080ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan403 */ self.quantize128("#78800000000000000000000000000000", "Inf", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan404 */ self.quantize128("#78020000000000000000000000000000", "-Inf", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan410 */ self.quantize128("#7c080ff3fcff3fcff3fcff3fcff3fcff", "1", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan411 */ self.quantize128("#fc000ff3fcfffffff3fcff3fcff3fcff", "1", "#fc000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan412 */ self.quantize128("#7e100ff3fcff3fcff3fcff3fcff3fcff", "1", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan413 */ self.quantize128("#fe000ff3fcff3fcff3ffffffcff3fcff", "1", "#fc000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqqua001 */ self.quantize128("0", "1e0", "0", .toNearestOrEven)
+ /* dqqua002 */ self.quantize128("1", "1e0", "1", .toNearestOrEven)
+ /* dqqua003 */ self.quantize128("0.1", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua005 */ self.quantize128("0.1", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua006 */ self.quantize128("0.1", "1e0", "0", .toNearestOrEven, .isInexact)
+ /* dqqua007 */ self.quantize128("0.1", "1e-1", "0.1", .toNearestOrEven)
+ /* dqqua008 */ self.quantize128("0.1", "1e-2", "0.10", .toNearestOrEven)
+ /* dqqua009 */ self.quantize128("0.1", "1e-3", "0.100", .toNearestOrEven)
+ /* dqqua010 */ self.quantize128("0.9", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua011 */ self.quantize128("0.9", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua012 */ self.quantize128("0.9", "1e+0", "1", .toNearestOrEven, .isInexact)
+ /* dqqua013 */ self.quantize128("0.9", "1e-1", "0.9", .toNearestOrEven)
+ /* dqqua014 */ self.quantize128("0.9", "1e-2", "0.90", .toNearestOrEven)
+ /* dqqua015 */ self.quantize128("0.9", "1e-3", "0.900", .toNearestOrEven)
+ /* dqqua021 */ self.quantize128("-0", "1e0", "-0", .toNearestOrEven)
+ /* dqqua022 */ self.quantize128("-1", "1e0", "-1", .toNearestOrEven)
+ /* dqqua023 */ self.quantize128("-0.1", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua025 */ self.quantize128("-0.1", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua026 */ self.quantize128("-0.1", "1e0", "-0", .toNearestOrEven, .isInexact)
+ /* dqqua027 */ self.quantize128("-0.1", "1e-1", "-0.1", .toNearestOrEven)
+ /* dqqua028 */ self.quantize128("-0.1", "1e-2", "-0.10", .toNearestOrEven)
+ /* dqqua029 */ self.quantize128("-0.1", "1e-3", "-0.100", .toNearestOrEven)
+ /* dqqua030 */ self.quantize128("-0.9", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua031 */ self.quantize128("-0.9", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua032 */ self.quantize128("-0.9", "1e+0", "-1", .toNearestOrEven, .isInexact)
+ /* dqqua033 */ self.quantize128("-0.9", "1e-1", "-0.9", .toNearestOrEven)
+ /* dqqua034 */ self.quantize128("-0.9", "1e-2", "-0.90", .toNearestOrEven)
+ /* dqqua035 */ self.quantize128("-0.9", "1e-3", "-0.900", .toNearestOrEven)
+ /* dqqua036 */ self.quantize128("-0.5", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua037 */ self.quantize128("-0.5", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua038 */ self.quantize128("-0.5", "1e+0", "-0", .toNearestOrEven, .isInexact)
+ /* dqqua039 */ self.quantize128("-0.5", "1e-1", "-0.5", .toNearestOrEven)
+ /* dqqua040 */ self.quantize128("-0.5", "1e-2", "-0.50", .toNearestOrEven)
+ /* dqqua041 */ self.quantize128("-0.5", "1e-3", "-0.500", .toNearestOrEven)
+ /* dqqua042 */ self.quantize128("-0.9", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua043 */ self.quantize128("-0.9", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua044 */ self.quantize128("-0.9", "1e+0", "-1", .toNearestOrEven, .isInexact)
+ /* dqqua045 */ self.quantize128("-0.9", "1e-1", "-0.9", .toNearestOrEven)
+ /* dqqua046 */ self.quantize128("-0.9", "1e-2", "-0.90", .toNearestOrEven)
+ /* dqqua047 */ self.quantize128("-0.9", "1e-3", "-0.900", .toNearestOrEven)
+ /* dqqua060 */ self.quantize128("2.17", "0.001", "2.170", .toNearestOrEven)
+ /* dqqua061 */ self.quantize128("2.17", "0.01", "2.17", .toNearestOrEven)
+ /* dqqua062 */ self.quantize128("2.17", "0.1", "2.2", .toNearestOrEven, .isInexact)
+ /* dqqua063 */ self.quantize128("2.17", "1e+0", "2", .toNearestOrEven, .isInexact)
+ /* dqqua064 */ self.quantize128("2.17", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua065 */ self.quantize128("-Inf", "Inf", "-Infinity", .toNearestOrEven)
+ /* dqqua066 */ self.quantize128("2", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqqua067 */ self.quantize128("-0.1", "1", "-0", .toNearestOrEven, .isInexact)
+ /* dqqua068 */ self.quantize128("-0", "1e+5", "-0E+5", .toNearestOrEven)
+ /* dqqua069 */ self.quantize128("+123451234567899876543216789012345.6", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqqua070 */ self.quantize128("-987651234567899876543214335236450.6", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqqua071 */ self.quantize128("217", "1e-1", "217.0", .toNearestOrEven)
+ /* dqqua072 */ self.quantize128("217", "1e+0", "217", .toNearestOrEven)
+ /* dqqua073 */ self.quantize128("217", "1e+1", "2.2E+2", .toNearestOrEven, .isInexact)
+ /* dqqua074 */ self.quantize128("217", "1e+2", "2E+2", .toNearestOrEven, .isInexact)
+ /* dqqua089 */ self.quantize128("12", "1e+4", "0E+4", .toNearestOrEven, .isInexact)
+ /* dqqua090 */ self.quantize128("12", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua091 */ self.quantize128("12", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua092 */ self.quantize128("12", "1e+1", "1E+1", .toNearestOrEven, .isInexact)
+ /* dqqua093 */ self.quantize128("1.2345", "1e-2", "1.23", .toNearestOrEven, .isInexact)
+ /* dqqua094 */ self.quantize128("1.2355", "1e-2", "1.24", .toNearestOrEven, .isInexact)
+ /* dqqua095 */ self.quantize128("1.2345", "1e-6", "1.234500", .toNearestOrEven)
+ /* dqqua096 */ self.quantize128("9.9999", "1e-2", "10.00", .toNearestOrEven, .isInexact)
+ /* dqqua097 */ self.quantize128("0.0001", "1e-2", "0.00", .toNearestOrEven, .isInexact)
+ /* dqqua098 */ self.quantize128("0.001", "1e-2", "0.00", .toNearestOrEven, .isInexact)
+ /* dqqua099 */ self.quantize128("0.009", "1e-2", "0.01", .toNearestOrEven, .isInexact)
+ /* dqqua100 */ self.quantize128("92", "1e+2", "1E+2", .toNearestOrEven, .isInexact)
+ /* dqqua1001 */ self.quantize128("0.000", "0.001", "0.000", .toNearestOrAwayFromZero)
+ /* dqqua1002 */ self.quantize128("0.001", "0.001", "0.001", .toNearestOrAwayFromZero)
+ /* dqqua1003 */ self.quantize128("0.0012", "0.001", "0.001", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1004 */ self.quantize128("0.0018", "0.001", "0.002", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1005 */ self.quantize128("0.501", "0.001", "0.501", .toNearestOrAwayFromZero)
+ /* dqqua1006 */ self.quantize128("0.5012", "0.001", "0.501", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1007 */ self.quantize128("0.5018", "0.001", "0.502", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1008 */ self.quantize128("0.999", "0.001", "0.999", .toNearestOrAwayFromZero)
+ /* dqqua101 */ self.quantize128("-1", "1e0", "-1", .toNearestOrEven)
+ /* dqqua102 */ self.quantize128("-1", "1e-1", "-1.0", .toNearestOrEven)
+ /* dqqua103 */ self.quantize128("-1", "1e-2", "-1.00", .toNearestOrEven)
+ /* dqqua104 */ self.quantize128("0", "1e0", "0", .toNearestOrEven)
+ /* dqqua1040 */ self.quantize128("-2147483646", "0", "-2147483646", .toNearestOrAwayFromZero)
+ /* dqqua1041 */ self.quantize128("-2147483647", "0", "-2147483647", .toNearestOrAwayFromZero)
+ /* dqqua1042 */ self.quantize128("-2147483648", "0", "-2147483648", .toNearestOrAwayFromZero)
+ /* dqqua1043 */ self.quantize128("-2147483649", "0", "-2147483649", .toNearestOrAwayFromZero)
+ /* dqqua1044 */ self.quantize128("2147483646", "0", "2147483646", .toNearestOrAwayFromZero)
+ /* dqqua1045 */ self.quantize128("2147483647", "0", "2147483647", .toNearestOrAwayFromZero)
+ /* dqqua1046 */ self.quantize128("2147483648", "0", "2147483648", .toNearestOrAwayFromZero)
+ /* dqqua1047 */ self.quantize128("2147483649", "0", "2147483649", .toNearestOrAwayFromZero)
+ /* dqqua1048 */ self.quantize128("4294967294", "0", "4294967294", .toNearestOrAwayFromZero)
+ /* dqqua1049 */ self.quantize128("4294967295", "0", "4294967295", .toNearestOrAwayFromZero)
+ /* dqqua105 */ self.quantize128("0", "1e-1", "0.0", .toNearestOrEven)
+ /* dqqua1050 */ self.quantize128("4294967296", "0", "4294967296", .toNearestOrAwayFromZero)
+ /* dqqua1051 */ self.quantize128("4294967297", "0", "4294967297", .toNearestOrAwayFromZero)
+ /* dqqua106 */ self.quantize128("0", "1e-2", "0.00", .toNearestOrEven)
+ /* dqqua107 */ self.quantize128("0.00", "1e0", "0", .toNearestOrEven)
+ /* dqqua108 */ self.quantize128("0", "1e+1", "0E+1", .toNearestOrEven)
+ /* dqqua109 */ self.quantize128("0", "1e+2", "0E+2", .toNearestOrEven)
+ /* dqqua110 */ self.quantize128("+1", "1e0", "1", .toNearestOrEven)
+ /* dqqua1100 */ self.quantize128("1.2300", "1.00", "1.23", .toNearestOrEven)
+ /* dqqua1101 */ self.quantize128("1.2301", "1.00", "1.23", .toNearestOrEven, .isInexact)
+ /* dqqua1102 */ self.quantize128("1.2310", "1.00", "1.23", .toNearestOrEven, .isInexact)
+ /* dqqua1103 */ self.quantize128("1.2350", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* dqqua1104 */ self.quantize128("1.2351", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* dqqua1105 */ self.quantize128("1.2450", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* dqqua1106 */ self.quantize128("1.2451", "1.00", "1.25", .toNearestOrEven, .isInexact)
+ /* dqqua1107 */ self.quantize128("1.2360", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* dqqua1108 */ self.quantize128("1.2370", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* dqqua1109 */ self.quantize128("1.2399", "1.00", "1.24", .toNearestOrEven, .isInexact)
+ /* dqqua111 */ self.quantize128("+1", "1e-1", "1.0", .toNearestOrEven)
+ /* dqqua112 */ self.quantize128("+1", "1e-2", "1.00", .toNearestOrEven)
+ /* dqqua120 */ self.quantize128("1.04", "1e-3", "1.040", .toNearestOrEven)
+ /* dqqua1200 */ self.quantize128("1.2300", "1.00", "1.23", .toNearestOrAwayFromZero)
+ /* dqqua1201 */ self.quantize128("1.2301", "1.00", "1.23", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1202 */ self.quantize128("1.2310", "1.00", "1.23", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1203 */ self.quantize128("1.2350", "1.00", "1.24", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1204 */ self.quantize128("1.2351", "1.00", "1.24", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1205 */ self.quantize128("1.2450", "1.00", "1.25", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1206 */ self.quantize128("1.2451", "1.00", "1.25", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1207 */ self.quantize128("1.2360", "1.00", "1.24", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1208 */ self.quantize128("1.2370", "1.00", "1.24", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1209 */ self.quantize128("1.2399", "1.00", "1.24", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua121 */ self.quantize128("1.04", "1e-2", "1.04", .toNearestOrEven)
+ /* dqqua122 */ self.quantize128("1.04", "1e-1", "1.0", .toNearestOrEven, .isInexact)
+ /* dqqua123 */ self.quantize128("1.04", "1e0", "1", .toNearestOrEven, .isInexact)
+ /* dqqua124 */ self.quantize128("1.05", "1e-3", "1.050", .toNearestOrEven)
+ /* dqqua125 */ self.quantize128("1.05", "1e-2", "1.05", .toNearestOrEven)
+ /* dqqua126 */ self.quantize128("1.05", "1e-1", "1.0", .toNearestOrEven, .isInexact)
+ /* dqqua131 */ self.quantize128("1.05", "1e0", "1", .toNearestOrEven, .isInexact)
+ /* dqqua132 */ self.quantize128("1.06", "1e-3", "1.060", .toNearestOrEven)
+ /* dqqua133 */ self.quantize128("1.06", "1e-2", "1.06", .toNearestOrEven)
+ /* dqqua134 */ self.quantize128("1.06", "1e-1", "1.1", .toNearestOrEven, .isInexact)
+ /* dqqua135 */ self.quantize128("1.06", "1e0", "1", .toNearestOrEven, .isInexact)
+ /* dqqua140 */ self.quantize128("-10", "1e-2", "-10.00", .toNearestOrEven)
+ /* dqqua141 */ self.quantize128("+1", "1e-2", "1.00", .toNearestOrEven)
+ /* dqqua142 */ self.quantize128("+10", "1e-2", "10.00", .toNearestOrEven)
+ /* dqqua143 */ self.quantize128("1E+37", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqqua144 */ self.quantize128("1E-37", "1e-2", "0.00", .toNearestOrEven, .isInexact)
+ /* dqqua145 */ self.quantize128("1E-3", "1e-2", "0.00", .toNearestOrEven, .isInexact)
+ /* dqqua146 */ self.quantize128("1E-2", "1e-2", "0.01", .toNearestOrEven)
+ /* dqqua147 */ self.quantize128("1E-1", "1e-2", "0.10", .toNearestOrEven)
+ /* dqqua148 */ self.quantize128("0E-37", "1e-2", "0.00", .toNearestOrEven)
+ /* dqqua150 */ self.quantize128("1.0600", "1e-5", "1.06000", .toNearestOrEven)
+ /* dqqua1500 */ self.quantize128("1.2300", "1.00", "1.23", .towardZero)
+ /* dqqua1501 */ self.quantize128("1.2301", "1.00", "1.23", .towardZero, .isInexact)
+ /* dqqua1502 */ self.quantize128("1.2310", "1.00", "1.23", .towardZero, .isInexact)
+ /* dqqua1503 */ self.quantize128("1.2350", "1.00", "1.23", .towardZero, .isInexact)
+ /* dqqua1504 */ self.quantize128("1.2351", "1.00", "1.23", .towardZero, .isInexact)
+ /* dqqua1505 */ self.quantize128("1.2450", "1.00", "1.24", .towardZero, .isInexact)
+ /* dqqua1506 */ self.quantize128("1.2451", "1.00", "1.24", .towardZero, .isInexact)
+ /* dqqua1507 */ self.quantize128("1.2360", "1.00", "1.23", .towardZero, .isInexact)
+ /* dqqua1508 */ self.quantize128("1.2370", "1.00", "1.23", .towardZero, .isInexact)
+ /* dqqua1509 */ self.quantize128("1.2399", "1.00", "1.23", .towardZero, .isInexact)
+ /* dqqua151 */ self.quantize128("1.0600", "1e-4", "1.0600", .toNearestOrEven)
+ /* dqqua1511 */ self.quantize128("-1.2399", "1.00", "-1.23", .towardZero, .isInexact)
+ /* dqqua152 */ self.quantize128("1.0600", "1e-3", "1.060", .toNearestOrEven)
+ /* dqqua153 */ self.quantize128("1.0600", "1e-2", "1.06", .toNearestOrEven)
+ /* dqqua154 */ self.quantize128("1.0600", "1e-1", "1.1", .toNearestOrEven, .isInexact)
+ /* dqqua155 */ self.quantize128("1.0600", "1e0", "1", .toNearestOrEven, .isInexact)
+ /* dqqua157 */ self.quantize128("-0.5", "1e+0", "-1", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua158 */ self.quantize128("1.05", "1e-1", "1.1", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua159 */ self.quantize128("1.06", "1e0", "1", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua1600 */ self.quantize128("1.2300", "1.00", "1.23", .up)
+ /* dqqua1601 */ self.quantize128("1.2301", "1.00", "1.24", .up, .isInexact)
+ /* dqqua1602 */ self.quantize128("1.2310", "1.00", "1.24", .up, .isInexact)
+ /* dqqua1603 */ self.quantize128("1.2350", "1.00", "1.24", .up, .isInexact)
+ /* dqqua1604 */ self.quantize128("1.2351", "1.00", "1.24", .up, .isInexact)
+ /* dqqua1605 */ self.quantize128("1.2450", "1.00", "1.25", .up, .isInexact)
+ /* dqqua1606 */ self.quantize128("1.2451", "1.00", "1.25", .up, .isInexact)
+ /* dqqua1607 */ self.quantize128("1.2360", "1.00", "1.24", .up, .isInexact)
+ /* dqqua1608 */ self.quantize128("1.2370", "1.00", "1.24", .up, .isInexact)
+ /* dqqua1609 */ self.quantize128("1.2399", "1.00", "1.24", .up, .isInexact)
+ /* dqqua161 */ self.quantize128("0", "-9e0", "0", .toNearestOrEven)
+ /* dqqua1611 */ self.quantize128("-1.2399", "1.00", "-1.23", .up, .isInexact)
+ /* dqqua162 */ self.quantize128("1", "-7e0", "1", .toNearestOrEven)
+ /* dqqua163 */ self.quantize128("0.1", "-1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua165 */ self.quantize128("0.1", "0e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua166 */ self.quantize128("0.1", "2e0", "0", .toNearestOrEven, .isInexact)
+ /* dqqua167 */ self.quantize128("0.1", "3e-1", "0.1", .toNearestOrEven)
+ /* dqqua168 */ self.quantize128("0.1", "44e-2", "0.10", .toNearestOrEven)
+ /* dqqua169 */ self.quantize128("0.1", "555e-3", "0.100", .toNearestOrEven)
+ /* dqqua170 */ self.quantize128("0.9", "6666e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua1700 */ self.quantize128("1.2300", "1.00", "1.23", .down)
+ /* dqqua1701 */ self.quantize128("1.2301", "1.00", "1.23", .down, .isInexact)
+ /* dqqua1702 */ self.quantize128("1.2310", "1.00", "1.23", .down, .isInexact)
+ /* dqqua1703 */ self.quantize128("1.2350", "1.00", "1.23", .down, .isInexact)
+ /* dqqua1704 */ self.quantize128("1.2351", "1.00", "1.23", .down, .isInexact)
+ /* dqqua1705 */ self.quantize128("1.2450", "1.00", "1.24", .down, .isInexact)
+ /* dqqua1706 */ self.quantize128("1.2451", "1.00", "1.24", .down, .isInexact)
+ /* dqqua1707 */ self.quantize128("1.2360", "1.00", "1.23", .down, .isInexact)
+ /* dqqua1708 */ self.quantize128("1.2370", "1.00", "1.23", .down, .isInexact)
+ /* dqqua1709 */ self.quantize128("1.2399", "1.00", "1.23", .down, .isInexact)
+ /* dqqua171 */ self.quantize128("0.9", "-777e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua1711 */ self.quantize128("-1.2399", "1.00", "-1.24", .down, .isInexact)
+ /* dqqua172 */ self.quantize128("0.9", "-88e+0", "1", .toNearestOrEven, .isInexact)
+ /* dqqua173 */ self.quantize128("0.9", "-9e-1", "0.9", .toNearestOrEven)
+ /* dqqua174 */ self.quantize128("0.9", "0e-2", "0.90", .toNearestOrEven)
+ /* dqqua175 */ self.quantize128("0.9", "1.1e-3", "0.9000", .toNearestOrEven)
+ /* dqqua181 */ self.quantize128("-0", "1.1e0", "-0.0", .toNearestOrEven)
+ /* dqqua182 */ self.quantize128("-1", "-1e0", "-1", .toNearestOrEven)
+ /* dqqua183 */ self.quantize128("-0.1", "11e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua185 */ self.quantize128("-0.1", "111e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua186 */ self.quantize128("-0.1", "71e0", "-0", .toNearestOrEven, .isInexact)
+ /* dqqua187 */ self.quantize128("-0.1", "-91e-1", "-0.1", .toNearestOrEven)
+ /* dqqua188 */ self.quantize128("-0.1", "-.1e-2", "-0.100", .toNearestOrEven)
+ /* dqqua189 */ self.quantize128("-0.1", "-1e-3", "-0.100", .toNearestOrEven)
+ /* dqqua190 */ self.quantize128("-0.9", "0e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua191 */ self.quantize128("-0.9", "-0e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua192 */ self.quantize128("-0.9", "-10e+0", "-1", .toNearestOrEven, .isInexact)
+ /* dqqua193 */ self.quantize128("-0.9", "100e-1", "-0.9", .toNearestOrEven)
+ /* dqqua194 */ self.quantize128("-0.9", "999e-2", "-0.90", .toNearestOrEven)
+ /* dqqua201 */ self.quantize128("-1", "1e+0", "-1", .toNearestOrEven)
+ /* dqqua202 */ self.quantize128("-1", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua203 */ self.quantize128("-1", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua204 */ self.quantize128("0", "1e+0", "0", .toNearestOrEven)
+ /* dqqua205 */ self.quantize128("0", "1e+1", "0E+1", .toNearestOrEven)
+ /* dqqua206 */ self.quantize128("0", "1e+2", "0E+2", .toNearestOrEven)
+ /* dqqua207 */ self.quantize128("+1", "1e+0", "1", .toNearestOrEven)
+ /* dqqua208 */ self.quantize128("+1", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua209 */ self.quantize128("+1", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua220 */ self.quantize128("1.04", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua221 */ self.quantize128("1.04", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua222 */ self.quantize128("1.04", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua223 */ self.quantize128("1.04", "1e+0", "1", .toNearestOrEven, .isInexact)
+ /* dqqua224 */ self.quantize128("1.05", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua225 */ self.quantize128("1.05", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua226 */ self.quantize128("1.05", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua227 */ self.quantize128("1.05", "1e+0", "1", .toNearestOrEven, .isInexact)
+ /* dqqua228 */ self.quantize128("1.05", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua229 */ self.quantize128("1.05", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua230 */ self.quantize128("1.05", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua231 */ self.quantize128("1.05", "1e+0", "1", .toNearestOrEven, .isInexact)
+ /* dqqua232 */ self.quantize128("1.06", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua233 */ self.quantize128("1.06", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua234 */ self.quantize128("1.06", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua235 */ self.quantize128("1.06", "1e+0", "1", .toNearestOrEven, .isInexact)
+ /* dqqua240 */ self.quantize128("-10", "1e+1", "-1E+1", .toNearestOrEven)
+ /* dqqua241 */ self.quantize128("+1", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua242 */ self.quantize128("+10", "1e+1", "1E+1", .toNearestOrEven)
+ /* dqqua243 */ self.quantize128("1E+1", "1e+1", "1E+1", .toNearestOrEven)
+ /* dqqua244 */ self.quantize128("1E+2", "1e+1", "1.0E+2", .toNearestOrEven)
+ /* dqqua245 */ self.quantize128("1E+3", "1e+1", "1.00E+3", .toNearestOrEven)
+ /* dqqua246 */ self.quantize128("1E+4", "1e+1", "1.000E+4", .toNearestOrEven)
+ /* dqqua247 */ self.quantize128("1E+5", "1e+1", "1.0000E+5", .toNearestOrEven)
+ /* dqqua248 */ self.quantize128("1E+6", "1e+1", "1.00000E+6", .toNearestOrEven)
+ /* dqqua249 */ self.quantize128("1E+7", "1e+1", "1.000000E+7", .toNearestOrEven)
+ /* dqqua250 */ self.quantize128("1E+8", "1e+1", "1.0000000E+8", .toNearestOrEven)
+ /* dqqua251 */ self.quantize128("1E+9", "1e+1", "1.00000000E+9", .toNearestOrEven)
+ /* dqqua252 */ self.quantize128("1E+37", "1e+1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqqua253 */ self.quantize128("1E-37", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua254 */ self.quantize128("1E-2", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua255 */ self.quantize128("0E-37", "1e+1", "0E+1", .toNearestOrEven)
+ /* dqqua256 */ self.quantize128("-0E-37", "1e+1", "-0E+1", .toNearestOrEven)
+ /* dqqua257 */ self.quantize128("-0E-1", "1e+1", "-0E+1", .toNearestOrEven)
+ /* dqqua258 */ self.quantize128("-0", "1e+1", "-0E+1", .toNearestOrEven)
+ /* dqqua259 */ self.quantize128("-0E+1", "1e+1", "-0E+1", .toNearestOrEven)
+ /* dqqua260 */ self.quantize128("-10", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua261 */ self.quantize128("+1", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua262 */ self.quantize128("+10", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua263 */ self.quantize128("1E+1", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua264 */ self.quantize128("1E+2", "1e+2", "1E+2", .toNearestOrEven)
+ /* dqqua265 */ self.quantize128("1E+3", "1e+2", "1.0E+3", .toNearestOrEven)
+ /* dqqua266 */ self.quantize128("1E+4", "1e+2", "1.00E+4", .toNearestOrEven)
+ /* dqqua267 */ self.quantize128("1E+5", "1e+2", "1.000E+5", .toNearestOrEven)
+ /* dqqua268 */ self.quantize128("1E+6", "1e+2", "1.0000E+6", .toNearestOrEven)
+ /* dqqua269 */ self.quantize128("1E+7", "1e+2", "1.00000E+7", .toNearestOrEven)
+ /* dqqua270 */ self.quantize128("1E+8", "1e+2", "1.000000E+8", .toNearestOrEven)
+ /* dqqua271 */ self.quantize128("1E+9", "1e+2", "1.0000000E+9", .toNearestOrEven)
+ /* dqqua272 */ self.quantize128("1E+10", "1e+2", "1.00000000E+10", .toNearestOrEven)
+ /* dqqua273 */ self.quantize128("1E-10", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua274 */ self.quantize128("1E-2", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua275 */ self.quantize128("0E-10", "1e+2", "0E+2", .toNearestOrEven)
+ /* dqqua280 */ self.quantize128("-10", "1e+3", "-0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua281 */ self.quantize128("+1", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua282 */ self.quantize128("+10", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua283 */ self.quantize128("1E+1", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua284 */ self.quantize128("1E+2", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua285 */ self.quantize128("1E+3", "1e+3", "1E+3", .toNearestOrEven)
+ /* dqqua286 */ self.quantize128("1E+4", "1e+3", "1.0E+4", .toNearestOrEven)
+ /* dqqua287 */ self.quantize128("1E+5", "1e+3", "1.00E+5", .toNearestOrEven)
+ /* dqqua288 */ self.quantize128("1E+6", "1e+3", "1.000E+6", .toNearestOrEven)
+ /* dqqua289 */ self.quantize128("1E+7", "1e+3", "1.0000E+7", .toNearestOrEven)
+ /* dqqua290 */ self.quantize128("1E+8", "1e+3", "1.00000E+8", .toNearestOrEven)
+ /* dqqua291 */ self.quantize128("1E+9", "1e+3", "1.000000E+9", .toNearestOrEven)
+ /* dqqua292 */ self.quantize128("1E+10", "1e+3", "1.0000000E+10", .toNearestOrEven)
+ /* dqqua293 */ self.quantize128("1E-10", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua294 */ self.quantize128("1E-2", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua295 */ self.quantize128("0E-10", "1e+3", "0E+3", .toNearestOrEven)
+ /* dqqua300 */ self.quantize128("0.0078", "1e-5", "0.00780", .toNearestOrEven)
+ /* dqqua301 */ self.quantize128("0.0078", "1e-4", "0.0078", .toNearestOrEven)
+ /* dqqua302 */ self.quantize128("0.0078", "1e-3", "0.008", .toNearestOrEven, .isInexact)
+ /* dqqua303 */ self.quantize128("0.0078", "1e-2", "0.01", .toNearestOrEven, .isInexact)
+ /* dqqua304 */ self.quantize128("0.0078", "1e-1", "0.0", .toNearestOrEven, .isInexact)
+ /* dqqua305 */ self.quantize128("0.0078", "1e0", "0", .toNearestOrEven, .isInexact)
+ /* dqqua306 */ self.quantize128("0.0078", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua307 */ self.quantize128("0.0078", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua310 */ self.quantize128("-0.0078", "1e-5", "-0.00780", .toNearestOrEven)
+ /* dqqua311 */ self.quantize128("-0.0078", "1e-4", "-0.0078", .toNearestOrEven)
+ /* dqqua312 */ self.quantize128("-0.0078", "1e-3", "-0.008", .toNearestOrEven, .isInexact)
+ /* dqqua313 */ self.quantize128("-0.0078", "1e-2", "-0.01", .toNearestOrEven, .isInexact)
+ /* dqqua314 */ self.quantize128("-0.0078", "1e-1", "-0.0", .toNearestOrEven, .isInexact)
+ /* dqqua315 */ self.quantize128("-0.0078", "1e0", "-0", .toNearestOrEven, .isInexact)
+ /* dqqua316 */ self.quantize128("-0.0078", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua317 */ self.quantize128("-0.0078", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua320 */ self.quantize128("0.078", "1e-5", "0.07800", .toNearestOrEven)
+ /* dqqua321 */ self.quantize128("0.078", "1e-4", "0.0780", .toNearestOrEven)
+ /* dqqua322 */ self.quantize128("0.078", "1e-3", "0.078", .toNearestOrEven)
+ /* dqqua323 */ self.quantize128("0.078", "1e-2", "0.08", .toNearestOrEven, .isInexact)
+ /* dqqua324 */ self.quantize128("0.078", "1e-1", "0.1", .toNearestOrEven, .isInexact)
+ /* dqqua325 */ self.quantize128("0.078", "1e0", "0", .toNearestOrEven, .isInexact)
+ /* dqqua326 */ self.quantize128("0.078", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua327 */ self.quantize128("0.078", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua330 */ self.quantize128("-0.078", "1e-5", "-0.07800", .toNearestOrEven)
+ /* dqqua331 */ self.quantize128("-0.078", "1e-4", "-0.0780", .toNearestOrEven)
+ /* dqqua332 */ self.quantize128("-0.078", "1e-3", "-0.078", .toNearestOrEven)
+ /* dqqua333 */ self.quantize128("-0.078", "1e-2", "-0.08", .toNearestOrEven, .isInexact)
+ /* dqqua334 */ self.quantize128("-0.078", "1e-1", "-0.1", .toNearestOrEven, .isInexact)
+ /* dqqua335 */ self.quantize128("-0.078", "1e0", "-0", .toNearestOrEven, .isInexact)
+ /* dqqua336 */ self.quantize128("-0.078", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua337 */ self.quantize128("-0.078", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua340 */ self.quantize128("0.78", "1e-5", "0.78000", .toNearestOrEven)
+ /* dqqua341 */ self.quantize128("0.78", "1e-4", "0.7800", .toNearestOrEven)
+ /* dqqua342 */ self.quantize128("0.78", "1e-3", "0.780", .toNearestOrEven)
+ /* dqqua343 */ self.quantize128("0.78", "1e-2", "0.78", .toNearestOrEven)
+ /* dqqua344 */ self.quantize128("0.78", "1e-1", "0.8", .toNearestOrEven, .isInexact)
+ /* dqqua345 */ self.quantize128("0.78", "1e0", "1", .toNearestOrEven, .isInexact)
+ /* dqqua346 */ self.quantize128("0.78", "1e+1", "0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua347 */ self.quantize128("0.78", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua350 */ self.quantize128("-0.78", "1e-5", "-0.78000", .toNearestOrEven)
+ /* dqqua351 */ self.quantize128("-0.78", "1e-4", "-0.7800", .toNearestOrEven)
+ /* dqqua352 */ self.quantize128("-0.78", "1e-3", "-0.780", .toNearestOrEven)
+ /* dqqua353 */ self.quantize128("-0.78", "1e-2", "-0.78", .toNearestOrEven)
+ /* dqqua354 */ self.quantize128("-0.78", "1e-1", "-0.8", .toNearestOrEven, .isInexact)
+ /* dqqua355 */ self.quantize128("-0.78", "1e0", "-1", .toNearestOrEven, .isInexact)
+ /* dqqua356 */ self.quantize128("-0.78", "1e+1", "-0E+1", .toNearestOrEven, .isInexact)
+ /* dqqua357 */ self.quantize128("-0.78", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua360 */ self.quantize128("7.8", "1e-5", "7.80000", .toNearestOrEven)
+ /* dqqua361 */ self.quantize128("7.8", "1e-4", "7.8000", .toNearestOrEven)
+ /* dqqua362 */ self.quantize128("7.8", "1e-3", "7.800", .toNearestOrEven)
+ /* dqqua363 */ self.quantize128("7.8", "1e-2", "7.80", .toNearestOrEven)
+ /* dqqua364 */ self.quantize128("7.8", "1e-1", "7.8", .toNearestOrEven)
+ /* dqqua365 */ self.quantize128("7.8", "1e0", "8", .toNearestOrEven, .isInexact)
+ /* dqqua366 */ self.quantize128("7.8", "1e+1", "1E+1", .toNearestOrEven, .isInexact)
+ /* dqqua367 */ self.quantize128("7.8", "1e+2", "0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua368 */ self.quantize128("7.8", "1e+3", "0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua370 */ self.quantize128("-7.8", "1e-5", "-7.80000", .toNearestOrEven)
+ /* dqqua371 */ self.quantize128("-7.8", "1e-4", "-7.8000", .toNearestOrEven)
+ /* dqqua372 */ self.quantize128("-7.8", "1e-3", "-7.800", .toNearestOrEven)
+ /* dqqua373 */ self.quantize128("-7.8", "1e-2", "-7.80", .toNearestOrEven)
+ /* dqqua374 */ self.quantize128("-7.8", "1e-1", "-7.8", .toNearestOrEven)
+ /* dqqua375 */ self.quantize128("-7.8", "1e0", "-8", .toNearestOrEven, .isInexact)
+ /* dqqua376 */ self.quantize128("-7.8", "1e+1", "-1E+1", .toNearestOrEven, .isInexact)
+ /* dqqua377 */ self.quantize128("-7.8", "1e+2", "-0E+2", .toNearestOrEven, .isInexact)
+ /* dqqua378 */ self.quantize128("-7.8", "1e+3", "-0E+3", .toNearestOrEven, .isInexact)
+ /* dqqua380 */ self.quantize128("1122334455667788991234567352364.506", "1e-2", "1122334455667788991234567352364.51", .toNearestOrEven, .isInexact)
+ /* dqqua381 */ self.quantize128("11223344556677889912345673523645.06", "1e-2", "11223344556677889912345673523645.06", .toNearestOrEven)
+ /* dqqua382 */ self.quantize128("112233445566778899123456735236450.6", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqqua383 */ self.quantize128("1122334455667788991234567352364506", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqqua384 */ self.quantize128("-1122334455667788991234567352364.506", "1e-2", "-1122334455667788991234567352364.51", .toNearestOrEven, .isInexact)
+ /* dqqua385 */ self.quantize128("-11223344556677889912345673523645.06", "1e-2", "-11223344556677889912345673523645.06", .toNearestOrEven)
+ /* dqqua386 */ self.quantize128("-112233445566778899123456735236450.6", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqqua387 */ self.quantize128("-1122334455667788991234567352364506", "1e-2", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqqua389 */ self.quantize128("112233445566778899123456735236450.6", "1e-2", "NaN", .towardZero, .isInvalidOperation)
+ /* dqqua391 */ self.quantize128("11223344556677889912345678912.34567", "1e-3", "11223344556677889912345678912.346", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua392 */ self.quantize128("112233445566778899123456789123.4567", "1e-3", "112233445566778899123456789123.457", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua393 */ self.quantize128("1122334455667788991234567891234567.", "1e-3", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua400 */ self.quantize128("9.999", "1e-5", "9.99900", .toNearestOrAwayFromZero)
+ /* dqqua401 */ self.quantize128("9.999", "1e-4", "9.9990", .toNearestOrAwayFromZero)
+ /* dqqua402 */ self.quantize128("9.999", "1e-3", "9.999", .toNearestOrAwayFromZero)
+ /* dqqua403 */ self.quantize128("9.999", "1e-2", "10.00", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua404 */ self.quantize128("9.999", "1e-1", "10.0", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua405 */ self.quantize128("9.999", "1e0", "10", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua406 */ self.quantize128("9.999", "1e1", "1E+1", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua407 */ self.quantize128("9.999", "1e2", "0E+2", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua410 */ self.quantize128("0.999", "1e-5", "0.99900", .toNearestOrAwayFromZero)
+ /* dqqua411 */ self.quantize128("0.999", "1e-4", "0.9990", .toNearestOrAwayFromZero)
+ /* dqqua412 */ self.quantize128("0.999", "1e-3", "0.999", .toNearestOrAwayFromZero)
+ /* dqqua413 */ self.quantize128("0.999", "1e-2", "1.00", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua414 */ self.quantize128("0.999", "1e-1", "1.0", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua415 */ self.quantize128("0.999", "1e0", "1", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua416 */ self.quantize128("0.999", "1e1", "0E+1", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua420 */ self.quantize128("0.0999", "1e-5", "0.09990", .toNearestOrAwayFromZero)
+ /* dqqua421 */ self.quantize128("0.0999", "1e-4", "0.0999", .toNearestOrAwayFromZero)
+ /* dqqua422 */ self.quantize128("0.0999", "1e-3", "0.100", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua423 */ self.quantize128("0.0999", "1e-2", "0.10", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua424 */ self.quantize128("0.0999", "1e-1", "0.1", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua425 */ self.quantize128("0.0999", "1e0", "0", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua426 */ self.quantize128("0.0999", "1e1", "0E+1", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua430 */ self.quantize128("0.00999", "1e-5", "0.00999", .toNearestOrAwayFromZero)
+ /* dqqua431 */ self.quantize128("0.00999", "1e-4", "0.0100", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua432 */ self.quantize128("0.00999", "1e-3", "0.010", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua433 */ self.quantize128("0.00999", "1e-2", "0.01", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua434 */ self.quantize128("0.00999", "1e-1", "0.0", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua435 */ self.quantize128("0.00999", "1e0", "0", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua436 */ self.quantize128("0.00999", "1e1", "0E+1", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua440 */ self.quantize128("0.000999", "1e-5", "0.00100", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua441 */ self.quantize128("0.000999", "1e-4", "0.0010", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua442 */ self.quantize128("0.000999", "1e-3", "0.001", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua443 */ self.quantize128("0.000999", "1e-2", "0.00", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua444 */ self.quantize128("0.000999", "1e-1", "0.0", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua445 */ self.quantize128("0.000999", "1e0", "0", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua446 */ self.quantize128("0.000999", "1e1", "0E+1", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua481 */ self.quantize128("12345678000", "1e+3", "1.2345678E+10", .toNearestOrAwayFromZero)
+ /* dqqua482 */ self.quantize128("1234567800", "1e+1", "1.23456780E+9", .toNearestOrAwayFromZero)
+ /* dqqua483 */ self.quantize128("1234567890", "1e+1", "1.23456789E+9", .toNearestOrAwayFromZero)
+ /* dqqua484 */ self.quantize128("1234567891", "1e+1", "1.23456789E+9", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua485 */ self.quantize128("12345678901", "1e+2", "1.23456789E+10", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua486 */ self.quantize128("1234567896", "1e+1", "1.23456790E+9", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua487 */ self.quantize128("1234.987643", "1e-4", "1234.9876", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua488 */ self.quantize128("1234.987647", "1e-4", "1234.9876", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua491 */ self.quantize128("12345678000", "1e+3", "1.2345678E+10", .toNearestOrAwayFromZero)
+ /* dqqua492 */ self.quantize128("1234567800", "1e+1", "1.23456780E+9", .toNearestOrAwayFromZero)
+ /* dqqua493 */ self.quantize128("1234567890", "1e+1", "1.23456789E+9", .toNearestOrAwayFromZero)
+ /* dqqua494 */ self.quantize128("1234567891", "1e+1", "1.23456789E+9", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua495 */ self.quantize128("12345678901", "1e+2", "1.23456789E+10", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua496 */ self.quantize128("1234567896", "1e+1", "1.23456790E+9", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua497 */ self.quantize128("1234.987643", "1e-4", "1234.9876", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua498 */ self.quantize128("1234.987647", "1e-4", "1234.9876", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua500 */ self.quantize128("0", "1e1", "0E+1", .toNearestOrAwayFromZero)
+ /* dqqua501 */ self.quantize128("0", "1e0", "0", .toNearestOrAwayFromZero)
+ /* dqqua502 */ self.quantize128("0", "1e-1", "0.0", .toNearestOrAwayFromZero)
+ /* dqqua503 */ self.quantize128("0.0", "1e-1", "0.0", .toNearestOrAwayFromZero)
+ /* dqqua504 */ self.quantize128("0.0", "1e0", "0", .toNearestOrAwayFromZero)
+ /* dqqua505 */ self.quantize128("0.0", "1e+1", "0E+1", .toNearestOrAwayFromZero)
+ /* dqqua506 */ self.quantize128("0E+1", "1e-1", "0.0", .toNearestOrAwayFromZero)
+ /* dqqua507 */ self.quantize128("0E+1", "1e0", "0", .toNearestOrAwayFromZero)
+ /* dqqua508 */ self.quantize128("0E+1", "1e+1", "0E+1", .toNearestOrAwayFromZero)
+ /* dqqua509 */ self.quantize128("-0", "1e1", "-0E+1", .toNearestOrAwayFromZero)
+ /* dqqua510 */ self.quantize128("-0", "1e0", "-0", .toNearestOrAwayFromZero)
+ /* dqqua511 */ self.quantize128("-0", "1e-1", "-0.0", .toNearestOrAwayFromZero)
+ /* dqqua512 */ self.quantize128("-0.0", "1e-1", "-0.0", .toNearestOrAwayFromZero)
+ /* dqqua513 */ self.quantize128("-0.0", "1e0", "-0", .toNearestOrAwayFromZero)
+ /* dqqua514 */ self.quantize128("-0.0", "1e+1", "-0E+1", .toNearestOrAwayFromZero)
+ /* dqqua515 */ self.quantize128("-0E+1", "1e-1", "-0.0", .toNearestOrAwayFromZero)
+ /* dqqua516 */ self.quantize128("-0E+1", "1e0", "-0", .toNearestOrAwayFromZero)
+ /* dqqua517 */ self.quantize128("-0E+1", "1e+1", "-0E+1", .toNearestOrAwayFromZero)
+ /* dqqua518 */ self.quantize128("0", "0E-3", "0.000", .toNearestOrAwayFromZero)
+ /* dqqua519 */ self.quantize128("0", "0E-33", "0E-33", .toNearestOrAwayFromZero)
+ /* dqqua520 */ self.quantize128("0.00000000000000000000000000000000", "0E-33", "0E-33", .toNearestOrAwayFromZero)
+ /* dqqua521 */ self.quantize128("0.000000000000000000000000000000000", "0E-33", "0E-33", .toNearestOrAwayFromZero)
+ /* dqqua523 */ self.quantize128("1", "0E-33", "1.000000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqqua524 */ self.quantize128("12", "0E-32", "12.00000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqqua525 */ self.quantize128("123", "0E-31", "123.0000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqqua526 */ self.quantize128("123", "0E-32", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua527 */ self.quantize128("123.4", "0E-31", "123.4000000000000000000000000000000", .toNearestOrAwayFromZero)
+ /* dqqua528 */ self.quantize128("123.4", "0E-32", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua530 */ self.quantize128("1.234", "1e359", "0E+359", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua531 */ self.quantize128("123.456", "1e359", "0E+359", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua532 */ self.quantize128("1.234", "1e359", "0E+359", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua533 */ self.quantize128("123.456", "1e359", "0E+359", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua536 */ self.quantize128("1.234", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua537 */ self.quantize128("123.456", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua538 */ self.quantize128("1.234", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua539 */ self.quantize128("123.456", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua542 */ self.quantize128("1.234E+299", "1e299", "1E+299", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua543 */ self.quantize128("1.234E+298", "1e299", "0E+299", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua544 */ self.quantize128("1.234", "1e299", "0E+299", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua547 */ self.quantize128("0", "1e-299", "0E-299", .toNearestOrAwayFromZero)
+ /* dqqua548 */ self.quantize128("1.234", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua549 */ self.quantize128("1.234", "1e-300", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua580 */ self.quantize128("Inf", "-Inf", "Infinity", .toNearestOrAwayFromZero)
+ /* dqqua581 */ self.quantize128("Inf", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua582 */ self.quantize128("Inf", "1e-1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua583 */ self.quantize128("Inf", "1e0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua584 */ self.quantize128("Inf", "1e1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua585 */ self.quantize128("Inf", "1e299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua586 */ self.quantize128("Inf", "Inf", "Infinity", .toNearestOrAwayFromZero)
+ /* dqqua587 */ self.quantize128("-1000", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua588 */ self.quantize128("-Inf", "Inf", "-Infinity", .toNearestOrAwayFromZero)
+ /* dqqua589 */ self.quantize128("-1", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua590 */ self.quantize128("0", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua591 */ self.quantize128("1", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua592 */ self.quantize128("1000", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua593 */ self.quantize128("Inf", "Inf", "Infinity", .toNearestOrAwayFromZero)
+ /* dqqua594 */ self.quantize128("Inf", "1e-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua595 */ self.quantize128("-0", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua600 */ self.quantize128("-Inf", "-Inf", "-Infinity", .toNearestOrAwayFromZero)
+ /* dqqua601 */ self.quantize128("-Inf", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua602 */ self.quantize128("-Inf", "1e-1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua603 */ self.quantize128("-Inf", "1e0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua604 */ self.quantize128("-Inf", "1e1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua605 */ self.quantize128("-Inf", "1e299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua606 */ self.quantize128("-Inf", "Inf", "-Infinity", .toNearestOrAwayFromZero)
+ /* dqqua607 */ self.quantize128("-1000", "Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua608 */ self.quantize128("-Inf", "-Inf", "-Infinity", .toNearestOrAwayFromZero)
+ /* dqqua609 */ self.quantize128("-1", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua610 */ self.quantize128("0", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua611 */ self.quantize128("1", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua612 */ self.quantize128("1000", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua613 */ self.quantize128("Inf", "-Inf", "Infinity", .toNearestOrAwayFromZero)
+ /* dqqua614 */ self.quantize128("-Inf", "1e-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua615 */ self.quantize128("-0", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua621 */ self.quantize128("NaN", "-Inf", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua622 */ self.quantize128("NaN", "1e-299", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua623 */ self.quantize128("NaN", "1e-1", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua624 */ self.quantize128("NaN", "1e0", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua625 */ self.quantize128("NaN", "1e1", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua626 */ self.quantize128("NaN", "1e299", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua627 */ self.quantize128("NaN", "Inf", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua628 */ self.quantize128("NaN", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua629 */ self.quantize128("-Inf", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua630 */ self.quantize128("-1000", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua631 */ self.quantize128("-1", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua632 */ self.quantize128("0", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua633 */ self.quantize128("1", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua634 */ self.quantize128("1000", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua635 */ self.quantize128("Inf", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua636 */ self.quantize128("NaN", "1e-0", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua637 */ self.quantize128("-0", "NaN", "NaN", .toNearestOrAwayFromZero)
+ /* dqqua641 */ self.quantize128("sNaN", "-Inf", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua642 */ self.quantize128("sNaN", "1e-299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua643 */ self.quantize128("sNaN", "1e-1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua644 */ self.quantize128("sNaN", "1e0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua645 */ self.quantize128("sNaN", "1e1", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua646 */ self.quantize128("sNaN", "1e299", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua647 */ self.quantize128("sNaN", "NaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua648 */ self.quantize128("sNaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua649 */ self.quantize128("NaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua650 */ self.quantize128("-Inf", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua651 */ self.quantize128("-1000", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua652 */ self.quantize128("-1", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua653 */ self.quantize128("0", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua654 */ self.quantize128("1", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua655 */ self.quantize128("1000", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua656 */ self.quantize128("Inf", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua657 */ self.quantize128("NaN", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua658 */ self.quantize128("sNaN", "1e-0", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua659 */ self.quantize128("-0", "sNaN", "NaN", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua661 */ self.quantize128("NaN(0x9)", "-Inf", "NaN(0x9)", .toNearestOrAwayFromZero)
+ /* dqqua662 */ self.quantize128("NaN(0x8)", "919", "NaN(0x8)", .toNearestOrAwayFromZero)
+ /* dqqua663 */ self.quantize128("NaN(0x47)", "Inf", "NaN(0x47)", .toNearestOrAwayFromZero)
+ /* dqqua664 */ self.quantize128("NaN(0x6)", "NaN(0x5)", "NaN(0x6)", .toNearestOrAwayFromZero)
+ /* dqqua665 */ self.quantize128("-Inf", "NaN(0x4)", "NaN(0x4)", .toNearestOrAwayFromZero)
+ /* dqqua666 */ self.quantize128("-919", "NaN(0x1f)", "NaN(0x1f)", .toNearestOrAwayFromZero)
+ /* dqqua667 */ self.quantize128("Inf", "NaN(0x2)", "NaN(0x2)", .toNearestOrAwayFromZero)
+ /* dqqua671 */ self.quantize128("sNaN(0x63)", "-Inf", "NaN(0x63)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua672 */ self.quantize128("sNaN(0x62)", "-11", "NaN(0x62)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua673 */ self.quantize128("sNaN(0x61)", "NaN", "NaN(0x61)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua674 */ self.quantize128("sNaN(0x10)", "sNaN(0x5e)", "NaN(0x10)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua675 */ self.quantize128("NaN(0x5f)", "sNaN(0x5d)", "NaN(0x5d)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua676 */ self.quantize128("-Inf", "sNaN(0x5c)", "NaN(0x5c)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua677 */ self.quantize128("088", "sNaN(0x5b)", "NaN(0x5b)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua678 */ self.quantize128("Inf", "sNaN(0x5a)", "NaN(0x5a)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua679 */ self.quantize128("NaN", "sNaN(0x58)", "NaN(0x58)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua681 */ self.quantize128("-NaN(0x9)", "-Inf", "-NaN(0x9)", .toNearestOrAwayFromZero)
+ /* dqqua682 */ self.quantize128("-NaN(0x8)", "919", "-NaN(0x8)", .toNearestOrAwayFromZero)
+ /* dqqua683 */ self.quantize128("-NaN(0x47)", "Inf", "-NaN(0x47)", .toNearestOrAwayFromZero)
+ /* dqqua684 */ self.quantize128("-NaN(0x6)", "-NaN(0x5)", "-NaN(0x6)", .toNearestOrAwayFromZero)
+ /* dqqua685 */ self.quantize128("-Inf", "-NaN(0x4)", "-NaN(0x4)", .toNearestOrAwayFromZero)
+ /* dqqua686 */ self.quantize128("-919", "-NaN(0x1f)", "-NaN(0x1f)", .toNearestOrAwayFromZero)
+ /* dqqua687 */ self.quantize128("Inf", "-NaN(0x2)", "-NaN(0x2)", .toNearestOrAwayFromZero)
+ /* dqqua691 */ self.quantize128("-sNaN(0x63)", "-Inf", "-NaN(0x63)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua692 */ self.quantize128("-sNaN(0x62)", "-11", "-NaN(0x62)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua693 */ self.quantize128("-sNaN(0x61)", "NaN", "-NaN(0x61)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua694 */ self.quantize128("-sNaN(0x10)", "sNaN(0x5e)", "-NaN(0x10)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua695 */ self.quantize128("-NaN(0x5f)", "-sNaN(0x5d)", "-NaN(0x5d)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua696 */ self.quantize128("-Inf", "-sNaN(0x5c)", "-NaN(0x5c)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua697 */ self.quantize128("088", "-sNaN(0x5b)", "-NaN(0x5b)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua698 */ self.quantize128("Inf", "-sNaN(0x5a)", "-NaN(0x5a)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua699 */ self.quantize128("NaN", "-sNaN(0x58)", "-NaN(0x58)", .toNearestOrAwayFromZero, .isInvalidOperation)
+ /* dqqua710 */ self.quantize128("1.00E-6143", "1e-6143", "1E-6143", .toNearestOrAwayFromZero)
+ /* dqqua711 */ self.quantize128("0.1E-6143", "2e-6144", "1E-6144", .toNearestOrAwayFromZero)
+ /* dqqua712 */ self.quantize128("0.10E-6143", "3e-6144", "1E-6144", .toNearestOrAwayFromZero)
+ /* dqqua713 */ self.quantize128("0.100E-6143", "4e-6144", "1E-6144", .toNearestOrAwayFromZero)
+ /* dqqua714 */ self.quantize128("0.01E-6143", "5e-6145", "1E-6145", .toNearestOrAwayFromZero)
+ /* dqqua715 */ self.quantize128("0.999E-6143", "1e-6143", "1E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua716 */ self.quantize128("0.099E-6143", "10e-6144", "1E-6144", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua717 */ self.quantize128("0.009E-6143", "1e-6145", "1E-6145", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua718 */ self.quantize128("0.001E-6143", "1e-6145", "0E-6145", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua719 */ self.quantize128("0.0009E-6143", "1e-6145", "0E-6145", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua720 */ self.quantize128("0.0001E-6143", "1e-6145", "0E-6145", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua730 */ self.quantize128("-1.00E-6143", "1e-6143", "-1E-6143", .toNearestOrAwayFromZero)
+ /* dqqua731 */ self.quantize128("-0.1E-6143", "1e-6143", "-0E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua732 */ self.quantize128("-0.10E-6143", "1e-6143", "-0E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua733 */ self.quantize128("-0.100E-6143", "1e-6143", "-0E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua734 */ self.quantize128("-0.01E-6143", "1e-6143", "-0E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua735 */ self.quantize128("-0.999E-6143", "90e-6143", "-1E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua736 */ self.quantize128("-0.099E-6143", "-1e-6143", "-0E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua737 */ self.quantize128("-0.009E-6143", "-1e-6143", "-0E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua738 */ self.quantize128("-0.001E-6143", "-0e-6143", "-0E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua739 */ self.quantize128("-0.0001E-6143", "0e-6143", "-0E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua740 */ self.quantize128("-1.00E-6143", "1e-6144", "-1.0E-6143", .toNearestOrAwayFromZero)
+ /* dqqua741 */ self.quantize128("-0.1E-6143", "1e-6144", "-1E-6144", .toNearestOrAwayFromZero)
+ /* dqqua742 */ self.quantize128("-0.10E-6143", "1e-6144", "-1E-6144", .toNearestOrAwayFromZero)
+ /* dqqua743 */ self.quantize128("-0.100E-6143", "1e-6144", "-1E-6144", .toNearestOrAwayFromZero)
+ /* dqqua744 */ self.quantize128("-0.01E-6143", "1e-6144", "-0E-6144", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua745 */ self.quantize128("-0.999E-6143", "1e-6144", "-1.0E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua746 */ self.quantize128("-0.099E-6143", "1e-6144", "-1E-6144", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua747 */ self.quantize128("-0.009E-6143", "1e-6144", "-0E-6144", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua748 */ self.quantize128("-0.001E-6143", "1e-6144", "-0E-6144", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua749 */ self.quantize128("-0.0001E-6143", "1e-6144", "-0E-6144", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua750 */ self.quantize128("-1.00E-6143", "1e-6145", "-1.00E-6143", .toNearestOrAwayFromZero)
+ /* dqqua751 */ self.quantize128("-0.1E-6143", "1e-6145", "-1.0E-6144", .toNearestOrAwayFromZero)
+ /* dqqua752 */ self.quantize128("-0.10E-6143", "1e-6145", "-1.0E-6144", .toNearestOrAwayFromZero)
+ /* dqqua753 */ self.quantize128("-0.100E-6143", "1e-6145", "-1.0E-6144", .toNearestOrAwayFromZero)
+ /* dqqua754 */ self.quantize128("-0.01E-6143", "1e-6145", "-1E-6145", .toNearestOrAwayFromZero)
+ /* dqqua755 */ self.quantize128("-0.999E-6143", "1e-6145", "-1.00E-6143", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua756 */ self.quantize128("-0.099E-6143", "1e-6145", "-1.0E-6144", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua757 */ self.quantize128("-0.009E-6143", "1e-6145", "-1E-6145", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua758 */ self.quantize128("-0.001E-6143", "1e-6145", "-0E-6145", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua759 */ self.quantize128("-0.0001E-6143", "1e-6145", "-0E-6145", .toNearestOrAwayFromZero, .isInexact)
+ /* dqqua760 */ self.quantize128("-1.00E-6143", "1e-6146", "-1.000E-6143", .toNearestOrAwayFromZero)
+ /* dqqua761 */ self.quantize128("-0.1E-6143", "1e-6146", "-1.00E-6144", .toNearestOrAwayFromZero)
+ /* dqqua762 */ self.quantize128("-0.10E-6143", "1e-6146", "-1.00E-6144", .toNearestOrAwayFromZero)
+ /* dqqua763 */ self.quantize128("-0.100E-6143", "1e-6146", "-1.00E-6144", .toNearestOrAwayFromZero)
+ /* dqqua764 */ self.quantize128("-0.01E-6143", "1e-6146", "-1.0E-6145", .toNearestOrAwayFromZero)
+ /* dqqua765 */ self.quantize128("-0.999E-6143", "1e-6146", "-9.99E-6144", .toNearestOrAwayFromZero)
+ /* dqqua766 */ self.quantize128("-0.099E-6143", "1e-6146", "-9.9E-6145", .toNearestOrAwayFromZero)
+ /* dqqua767 */ self.quantize128("-0.009E-6143", "1e-6146", "-9E-6146", .toNearestOrAwayFromZero)
+ /* dqqua768 */ self.quantize128("-0.001E-6143", "1e-6146", "-1E-6146", .toNearestOrAwayFromZero)
+ /* dqqua769 */ self.quantize128("-0.0001E-6143", "1e-6146", "-0E-6146", .toNearestOrAwayFromZero, .isInexact)
+ }
+
+ private func quantize128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.quantized(to: arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_quantize(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ // MARK: - Samequantum
+
+ func test_samequantum64() {
+ /* ddsamq001 */ self.samequantum64("0", "0", true, .toNearestOrEven)
+ /* ddsamq002 */ self.samequantum64("0", "1", true, .toNearestOrEven)
+ /* ddsamq003 */ self.samequantum64("1", "0", true, .toNearestOrEven)
+ /* ddsamq004 */ self.samequantum64("1", "1", true, .toNearestOrEven)
+ /* ddsamq011 */ self.samequantum64("10", "1E+1", false, .toNearestOrEven)
+ /* ddsamq0110 */ self.samequantum64("-Inf", "-Inf", true, .toNearestOrEven)
+ /* ddsamq0111 */ self.samequantum64("-Inf", "Inf", true, .toNearestOrEven)
+ /* ddsamq0112 */ self.samequantum64("-Inf", "NaN", false, .toNearestOrEven)
+ /* ddsamq0113 */ self.samequantum64("-Inf", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq0114 */ self.samequantum64("-Inf", "-7", false, .toNearestOrEven)
+ /* ddsamq0115 */ self.samequantum64("-Inf", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq0116 */ self.samequantum64("-Inf", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq0117 */ self.samequantum64("-Inf", "-0", false, .toNearestOrEven)
+ /* ddsamq0118 */ self.samequantum64("-Inf", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq0119 */ self.samequantum64("-Inf", "0E-3", false, .toNearestOrEven)
+ /* ddsamq012 */ self.samequantum64("10E+1", "10E+1", true, .toNearestOrEven)
+ /* ddsamq0120 */ self.samequantum64("-Inf", "0", false, .toNearestOrEven)
+ /* ddsamq0121 */ self.samequantum64("-Inf", "0E+3", false, .toNearestOrEven)
+ /* ddsamq0122 */ self.samequantum64("-Inf", "7E-3", false, .toNearestOrEven)
+ /* ddsamq0123 */ self.samequantum64("-Inf", "7", false, .toNearestOrEven)
+ /* ddsamq0124 */ self.samequantum64("-Inf", "7E+3", false, .toNearestOrEven)
+ /* ddsamq0125 */ self.samequantum64("-Inf", "sNaN", false, .toNearestOrEven)
+ /* ddsamq013 */ self.samequantum64("100", "10E+1", false, .toNearestOrEven)
+ /* ddsamq014 */ self.samequantum64("100", "1E+2", false, .toNearestOrEven)
+ /* ddsamq015 */ self.samequantum64("0.1", "1E-2", false, .toNearestOrEven)
+ /* ddsamq016 */ self.samequantum64("0.1", "1E-1", true, .toNearestOrEven)
+ /* ddsamq017 */ self.samequantum64("0.1", "1E-0", false, .toNearestOrEven)
+ /* ddsamq018 */ self.samequantum64("999", "999", true, .toNearestOrEven)
+ /* ddsamq019 */ self.samequantum64("999E-1", "99.9", true, .toNearestOrEven)
+ /* ddsamq020 */ self.samequantum64("111E-1", "22.2", true, .toNearestOrEven)
+ /* ddsamq021 */ self.samequantum64("111E-1", "1234.2", true, .toNearestOrEven)
+ /* ddsamq0210 */ self.samequantum64("Inf", "-Inf", true, .toNearestOrEven)
+ /* ddsamq0211 */ self.samequantum64("Inf", "Inf", true, .toNearestOrEven)
+ /* ddsamq0212 */ self.samequantum64("Inf", "NaN", false, .toNearestOrEven)
+ /* ddsamq0213 */ self.samequantum64("Inf", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq0214 */ self.samequantum64("Inf", "-7", false, .toNearestOrEven)
+ /* ddsamq0215 */ self.samequantum64("Inf", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq0216 */ self.samequantum64("Inf", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq0217 */ self.samequantum64("Inf", "-0", false, .toNearestOrEven)
+ /* ddsamq0218 */ self.samequantum64("Inf", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq0219 */ self.samequantum64("Inf", "0E-3", false, .toNearestOrEven)
+ /* ddsamq0220 */ self.samequantum64("Inf", "0", false, .toNearestOrEven)
+ /* ddsamq0221 */ self.samequantum64("Inf", "0E+3", false, .toNearestOrEven)
+ /* ddsamq0222 */ self.samequantum64("Inf", "7E-3", false, .toNearestOrEven)
+ /* ddsamq0223 */ self.samequantum64("Inf", "7", false, .toNearestOrEven)
+ /* ddsamq0224 */ self.samequantum64("Inf", "7E+3", false, .toNearestOrEven)
+ /* ddsamq0225 */ self.samequantum64("Inf", "sNaN", false, .toNearestOrEven)
+ /* ddsamq030 */ self.samequantum64("0.0", "1.1", true, .toNearestOrEven)
+ /* ddsamq031 */ self.samequantum64("0.0", "1.11", false, .toNearestOrEven)
+ /* ddsamq0310 */ self.samequantum64("NaN", "-Inf", false, .toNearestOrEven)
+ /* ddsamq0311 */ self.samequantum64("NaN", "Inf", false, .toNearestOrEven)
+ /* ddsamq0312 */ self.samequantum64("NaN", "NaN", true, .toNearestOrEven)
+ /* ddsamq0313 */ self.samequantum64("NaN", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq0314 */ self.samequantum64("NaN", "-7", false, .toNearestOrEven)
+ /* ddsamq0315 */ self.samequantum64("NaN", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq0316 */ self.samequantum64("NaN", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq0317 */ self.samequantum64("NaN", "-0", false, .toNearestOrEven)
+ /* ddsamq0318 */ self.samequantum64("NaN", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq0319 */ self.samequantum64("NaN", "0E-3", false, .toNearestOrEven)
+ /* ddsamq032 */ self.samequantum64("0.0", "0", false, .toNearestOrEven)
+ /* ddsamq0320 */ self.samequantum64("NaN", "0", false, .toNearestOrEven)
+ /* ddsamq0321 */ self.samequantum64("NaN", "0E+3", false, .toNearestOrEven)
+ /* ddsamq0322 */ self.samequantum64("NaN", "7E-3", false, .toNearestOrEven)
+ /* ddsamq0323 */ self.samequantum64("NaN", "7", false, .toNearestOrEven)
+ /* ddsamq0324 */ self.samequantum64("NaN", "7E+3", false, .toNearestOrEven)
+ /* ddsamq0325 */ self.samequantum64("NaN", "sNaN", true, .toNearestOrEven)
+ /* ddsamq033 */ self.samequantum64("0.0", "0.0", true, .toNearestOrEven)
+ /* ddsamq034 */ self.samequantum64("0.0", "0.00", false, .toNearestOrEven)
+ /* ddsamq035 */ self.samequantum64("0E+1", "0E+0", false, .toNearestOrEven)
+ /* ddsamq036 */ self.samequantum64("0E+1", "0E+1", true, .toNearestOrEven)
+ /* ddsamq037 */ self.samequantum64("0E+1", "0E+2", false, .toNearestOrEven)
+ /* ddsamq038 */ self.samequantum64("0E-17", "0E-16", false, .toNearestOrEven)
+ /* ddsamq039 */ self.samequantum64("0E-17", "0E-17", true, .toNearestOrEven)
+ /* ddsamq040 */ self.samequantum64("0E-17", "0E-18", false, .toNearestOrEven)
+ /* ddsamq041 */ self.samequantum64("0E-17", "0.0E-15", false, .toNearestOrEven)
+ /* ddsamq0410 */ self.samequantum64("-7E+3", "-Inf", false, .toNearestOrEven)
+ /* ddsamq0411 */ self.samequantum64("-7E+3", "Inf", false, .toNearestOrEven)
+ /* ddsamq0412 */ self.samequantum64("-7E+3", "NaN", false, .toNearestOrEven)
+ /* ddsamq0413 */ self.samequantum64("-7E+3", "-7E+3", true, .toNearestOrEven)
+ /* ddsamq0414 */ self.samequantum64("-7E+3", "-7", false, .toNearestOrEven)
+ /* ddsamq0415 */ self.samequantum64("-7E+3", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq0416 */ self.samequantum64("-7E+3", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq0417 */ self.samequantum64("-7E+3", "-0", false, .toNearestOrEven)
+ /* ddsamq0418 */ self.samequantum64("-7E+3", "-0E+3", true, .toNearestOrEven)
+ /* ddsamq0419 */ self.samequantum64("-7E+3", "0E-3", false, .toNearestOrEven)
+ /* ddsamq042 */ self.samequantum64("0E-17", "0.0E-16", true, .toNearestOrEven)
+ /* ddsamq0420 */ self.samequantum64("-7E+3", "0", false, .toNearestOrEven)
+ /* ddsamq0421 */ self.samequantum64("-7E+3", "0E+3", true, .toNearestOrEven)
+ /* ddsamq0422 */ self.samequantum64("-7E+3", "7E-3", false, .toNearestOrEven)
+ /* ddsamq0423 */ self.samequantum64("-7E+3", "7", false, .toNearestOrEven)
+ /* ddsamq0424 */ self.samequantum64("-7E+3", "7E+3", true, .toNearestOrEven)
+ /* ddsamq0425 */ self.samequantum64("-7E+3", "sNaN", false, .toNearestOrEven)
+ /* ddsamq043 */ self.samequantum64("0E-17", "0.0E-17", false, .toNearestOrEven)
+ /* ddsamq044 */ self.samequantum64("-0E-17", "0.0E-16", true, .toNearestOrEven)
+ /* ddsamq045 */ self.samequantum64("0E-17", "-0.0E-17", false, .toNearestOrEven)
+ /* ddsamq046 */ self.samequantum64("0E-17", "-0.0E-16", true, .toNearestOrEven)
+ /* ddsamq047 */ self.samequantum64("-0E-17", "0.0E-17", false, .toNearestOrEven)
+ /* ddsamq048 */ self.samequantum64("-0E-17", "-0.0E-16", true, .toNearestOrEven)
+ /* ddsamq049 */ self.samequantum64("-0E-17", "-0.0E-17", false, .toNearestOrEven)
+ /* ddsamq051 */ self.samequantum64("9.999999999999999E+384", "9.999999999999999E+384", true, .toNearestOrEven)
+ /* ddsamq0510 */ self.samequantum64("-7", "-Inf", false, .toNearestOrEven)
+ /* ddsamq0511 */ self.samequantum64("-7", "Inf", false, .toNearestOrEven)
+ /* ddsamq0512 */ self.samequantum64("-7", "NaN", false, .toNearestOrEven)
+ /* ddsamq0513 */ self.samequantum64("-7", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq0514 */ self.samequantum64("-7", "-7", true, .toNearestOrEven)
+ /* ddsamq0515 */ self.samequantum64("-7", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq0516 */ self.samequantum64("-7", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq0517 */ self.samequantum64("-7", "-0", true, .toNearestOrEven)
+ /* ddsamq0518 */ self.samequantum64("-7", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq0519 */ self.samequantum64("-7", "0E-3", false, .toNearestOrEven)
+ /* ddsamq052 */ self.samequantum64("1E-383", "1E-383", true, .toNearestOrEven)
+ /* ddsamq0520 */ self.samequantum64("-7", "0", true, .toNearestOrEven)
+ /* ddsamq0521 */ self.samequantum64("-7", "0E+3", false, .toNearestOrEven)
+ /* ddsamq0522 */ self.samequantum64("-7", "7E-3", false, .toNearestOrEven)
+ /* ddsamq0523 */ self.samequantum64("-7", "7", true, .toNearestOrEven)
+ /* ddsamq0524 */ self.samequantum64("-7", "7E+3", false, .toNearestOrEven)
+ /* ddsamq0525 */ self.samequantum64("-7", "sNaN", false, .toNearestOrEven)
+ /* ddsamq053 */ self.samequantum64("1.000000000000000E-383", "1.000000000000000E-383", true, .toNearestOrEven)
+ /* ddsamq054 */ self.samequantum64("1E-398", "1E-398", true, .toNearestOrEven)
+ /* ddsamq055 */ self.samequantum64("9.999999999999999E+384", "9.999999999999999E+384", true, .toNearestOrEven)
+ /* ddsamq056 */ self.samequantum64("1E-383", "1E-383", true, .toNearestOrEven)
+ /* ddsamq057 */ self.samequantum64("1.000000000000000E-383", "1.000000000000000E-383", true, .toNearestOrEven)
+ /* ddsamq058 */ self.samequantum64("1E-398", "1E-398", true, .toNearestOrEven)
+ /* ddsamq061 */ self.samequantum64("-1E-398", "-1E-398", true, .toNearestOrEven)
+ /* ddsamq0610 */ self.samequantum64("-7E-3", "-Inf", false, .toNearestOrEven)
+ /* ddsamq0611 */ self.samequantum64("-7E-3", "Inf", false, .toNearestOrEven)
+ /* ddsamq0612 */ self.samequantum64("-7E-3", "NaN", false, .toNearestOrEven)
+ /* ddsamq0613 */ self.samequantum64("-7E-3", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq0614 */ self.samequantum64("-7E-3", "-7", false, .toNearestOrEven)
+ /* ddsamq0615 */ self.samequantum64("-7E-3", "-7E-3", true, .toNearestOrEven)
+ /* ddsamq0616 */ self.samequantum64("-7E-3", "-0E-3", true, .toNearestOrEven)
+ /* ddsamq0617 */ self.samequantum64("-7E-3", "-0", false, .toNearestOrEven)
+ /* ddsamq0618 */ self.samequantum64("-7E-3", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq0619 */ self.samequantum64("-7E-3", "0E-3", true, .toNearestOrEven)
+ /* ddsamq062 */ self.samequantum64("-1.000000000000000E-383", "-1.000000000000000E-383", true, .toNearestOrEven)
+ /* ddsamq0620 */ self.samequantum64("-7E-3", "0", false, .toNearestOrEven)
+ /* ddsamq0621 */ self.samequantum64("-7E-3", "0E+3", false, .toNearestOrEven)
+ /* ddsamq0622 */ self.samequantum64("-7E-3", "7E-3", true, .toNearestOrEven)
+ /* ddsamq0623 */ self.samequantum64("-7E-3", "7", false, .toNearestOrEven)
+ /* ddsamq0624 */ self.samequantum64("-7E-3", "7E+3", false, .toNearestOrEven)
+ /* ddsamq0625 */ self.samequantum64("-7E-3", "sNaN", false, .toNearestOrEven)
+ /* ddsamq063 */ self.samequantum64("-1E-383", "-1E-383", true, .toNearestOrEven)
+ /* ddsamq064 */ self.samequantum64("-9.999999999999999E+384", "-9.999999999999999E+384", true, .toNearestOrEven)
+ /* ddsamq065 */ self.samequantum64("-1E-398", "-1E-398", true, .toNearestOrEven)
+ /* ddsamq066 */ self.samequantum64("-1.000000000000000E-383", "-1.000000000000000E-383", true, .toNearestOrEven)
+ /* ddsamq067 */ self.samequantum64("-1E-383", "-1E-383", true, .toNearestOrEven)
+ /* ddsamq068 */ self.samequantum64("-9.999999999999999E+384", "-9.999999999999999E+384", true, .toNearestOrEven)
+ /* ddsamq071 */ self.samequantum64("-4E-398", "-1E-398", true, .toNearestOrEven)
+ /* ddsamq0710 */ self.samequantum64("-0E-3", "-Inf", false, .toNearestOrEven)
+ /* ddsamq0711 */ self.samequantum64("-0E-3", "Inf", false, .toNearestOrEven)
+ /* ddsamq0712 */ self.samequantum64("-0E-3", "NaN", false, .toNearestOrEven)
+ /* ddsamq0713 */ self.samequantum64("-0E-3", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq0714 */ self.samequantum64("-0E-3", "-7", false, .toNearestOrEven)
+ /* ddsamq0715 */ self.samequantum64("-0E-3", "-7E-3", true, .toNearestOrEven)
+ /* ddsamq0716 */ self.samequantum64("-0E-3", "-0E-3", true, .toNearestOrEven)
+ /* ddsamq0717 */ self.samequantum64("-0E-3", "-0", false, .toNearestOrEven)
+ /* ddsamq0718 */ self.samequantum64("-0E-3", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq0719 */ self.samequantum64("-0E-3", "0E-3", true, .toNearestOrEven)
+ /* ddsamq072 */ self.samequantum64("-4.000000000000000E-383", "-1.000040000000000E-383", true, .toNearestOrEven)
+ /* ddsamq0720 */ self.samequantum64("-0E-3", "0", false, .toNearestOrEven)
+ /* ddsamq0721 */ self.samequantum64("-0E-3", "0E+3", false, .toNearestOrEven)
+ /* ddsamq0722 */ self.samequantum64("-0E-3", "7E-3", true, .toNearestOrEven)
+ /* ddsamq0723 */ self.samequantum64("-0E-3", "7", false, .toNearestOrEven)
+ /* ddsamq0724 */ self.samequantum64("-0E-3", "7E+3", false, .toNearestOrEven)
+ /* ddsamq0725 */ self.samequantum64("-0E-3", "sNaN", false, .toNearestOrEven)
+ /* ddsamq073 */ self.samequantum64("-4E-383", "-1E-383", true, .toNearestOrEven)
+ /* ddsamq074 */ self.samequantum64("-4.999999999999999E+384", "-9.999999999949999E+384", true, .toNearestOrEven)
+ /* ddsamq075 */ self.samequantum64("-4E-398", "-1E-398", true, .toNearestOrEven)
+ /* ddsamq076 */ self.samequantum64("-4.000000000000000E-383", "-1.004000000000000E-383", true, .toNearestOrEven)
+ /* ddsamq077 */ self.samequantum64("-4E-383", "-1E-383", true, .toNearestOrEven)
+ /* ddsamq078 */ self.samequantum64("-4.999999999999999E+384", "-9.949999999999999E+384", true, .toNearestOrEven)
+ /* ddsamq081 */ self.samequantum64("-4E-397", "-1E-398", false, .toNearestOrEven)
+ /* ddsamq0810 */ self.samequantum64("-0", "-Inf", false, .toNearestOrEven)
+ /* ddsamq0811 */ self.samequantum64("-0", "Inf", false, .toNearestOrEven)
+ /* ddsamq0812 */ self.samequantum64("-0", "NaN", false, .toNearestOrEven)
+ /* ddsamq0813 */ self.samequantum64("-0", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq0814 */ self.samequantum64("-0", "-7", true, .toNearestOrEven)
+ /* ddsamq0815 */ self.samequantum64("-0", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq0816 */ self.samequantum64("-0", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq0817 */ self.samequantum64("-0", "-0", true, .toNearestOrEven)
+ /* ddsamq0818 */ self.samequantum64("-0", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq0819 */ self.samequantum64("-0", "0E-3", false, .toNearestOrEven)
+ /* ddsamq082 */ self.samequantum64("-4.000000000000000E-383", "-1.000040000000000E-336", false, .toNearestOrEven)
+ /* ddsamq0820 */ self.samequantum64("-0", "0", true, .toNearestOrEven)
+ /* ddsamq0821 */ self.samequantum64("-0", "0E+3", false, .toNearestOrEven)
+ /* ddsamq0822 */ self.samequantum64("-0", "7E-3", false, .toNearestOrEven)
+ /* ddsamq0823 */ self.samequantum64("-0", "7", true, .toNearestOrEven)
+ /* ddsamq0824 */ self.samequantum64("-0", "7E+3", false, .toNearestOrEven)
+ /* ddsamq0825 */ self.samequantum64("-0", "sNaN", false, .toNearestOrEven)
+ /* ddsamq083 */ self.samequantum64("-4E-346", "-1E-383", false, .toNearestOrEven)
+ /* ddsamq084 */ self.samequantum64("-4.999999999999999E+384", "-9.999499999999999E+336", false, .toNearestOrEven)
+ /* ddsamq085 */ self.samequantum64("-4E-397", "-1E-398", false, .toNearestOrEven)
+ /* ddsamq086 */ self.samequantum64("-4.000000000000000E-383", "-1.004000000000000E-336", false, .toNearestOrEven)
+ /* ddsamq087 */ self.samequantum64("-4E-346", "-1E-383", false, .toNearestOrEven)
+ /* ddsamq088 */ self.samequantum64("-4.999999999999999E+384", "-9.949999999999999E+336", false, .toNearestOrEven)
+ /* ddsamq0910 */ self.samequantum64("-0E+3", "-Inf", false, .toNearestOrEven)
+ /* ddsamq0911 */ self.samequantum64("-0E+3", "Inf", false, .toNearestOrEven)
+ /* ddsamq0912 */ self.samequantum64("-0E+3", "NaN", false, .toNearestOrEven)
+ /* ddsamq0913 */ self.samequantum64("-0E+3", "-7E+3", true, .toNearestOrEven)
+ /* ddsamq0914 */ self.samequantum64("-0E+3", "-7", false, .toNearestOrEven)
+ /* ddsamq0915 */ self.samequantum64("-0E+3", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq0916 */ self.samequantum64("-0E+3", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq0917 */ self.samequantum64("-0E+3", "-0", false, .toNearestOrEven)
+ /* ddsamq0918 */ self.samequantum64("-0E+3", "-0E+3", true, .toNearestOrEven)
+ /* ddsamq0919 */ self.samequantum64("-0E+3", "0E-3", false, .toNearestOrEven)
+ /* ddsamq0920 */ self.samequantum64("-0E+3", "0", false, .toNearestOrEven)
+ /* ddsamq0921 */ self.samequantum64("-0E+3", "0E+3", true, .toNearestOrEven)
+ /* ddsamq0922 */ self.samequantum64("-0E+3", "7E-3", false, .toNearestOrEven)
+ /* ddsamq0923 */ self.samequantum64("-0E+3", "7", false, .toNearestOrEven)
+ /* ddsamq0924 */ self.samequantum64("-0E+3", "7E+3", true, .toNearestOrEven)
+ /* ddsamq0925 */ self.samequantum64("-0E+3", "sNaN", false, .toNearestOrEven)
+ /* ddsamq1110 */ self.samequantum64("0E-3", "-Inf", false, .toNearestOrEven)
+ /* ddsamq1111 */ self.samequantum64("0E-3", "Inf", false, .toNearestOrEven)
+ /* ddsamq1112 */ self.samequantum64("0E-3", "NaN", false, .toNearestOrEven)
+ /* ddsamq1113 */ self.samequantum64("0E-3", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq1114 */ self.samequantum64("0E-3", "-7", false, .toNearestOrEven)
+ /* ddsamq1115 */ self.samequantum64("0E-3", "-7E-3", true, .toNearestOrEven)
+ /* ddsamq1116 */ self.samequantum64("0E-3", "-0E-3", true, .toNearestOrEven)
+ /* ddsamq1117 */ self.samequantum64("0E-3", "-0", false, .toNearestOrEven)
+ /* ddsamq1118 */ self.samequantum64("0E-3", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq1119 */ self.samequantum64("0E-3", "0E-3", true, .toNearestOrEven)
+ /* ddsamq1120 */ self.samequantum64("0E-3", "0", false, .toNearestOrEven)
+ /* ddsamq1121 */ self.samequantum64("0E-3", "0E+3", false, .toNearestOrEven)
+ /* ddsamq1122 */ self.samequantum64("0E-3", "7E-3", true, .toNearestOrEven)
+ /* ddsamq1123 */ self.samequantum64("0E-3", "7", false, .toNearestOrEven)
+ /* ddsamq1124 */ self.samequantum64("0E-3", "7E+3", false, .toNearestOrEven)
+ /* ddsamq1125 */ self.samequantum64("0E-3", "sNaN", false, .toNearestOrEven)
+ /* ddsamq1210 */ self.samequantum64("0", "-Inf", false, .toNearestOrEven)
+ /* ddsamq1211 */ self.samequantum64("0", "Inf", false, .toNearestOrEven)
+ /* ddsamq1212 */ self.samequantum64("0", "NaN", false, .toNearestOrEven)
+ /* ddsamq1213 */ self.samequantum64("0", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq1214 */ self.samequantum64("0", "-7", true, .toNearestOrEven)
+ /* ddsamq1215 */ self.samequantum64("0", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq1216 */ self.samequantum64("0", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq1217 */ self.samequantum64("0", "-0", true, .toNearestOrEven)
+ /* ddsamq1218 */ self.samequantum64("0", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq1219 */ self.samequantum64("0", "0E-3", false, .toNearestOrEven)
+ /* ddsamq1220 */ self.samequantum64("0", "0", true, .toNearestOrEven)
+ /* ddsamq1221 */ self.samequantum64("0", "0E+3", false, .toNearestOrEven)
+ /* ddsamq1222 */ self.samequantum64("0", "7E-3", false, .toNearestOrEven)
+ /* ddsamq1223 */ self.samequantum64("0", "7", true, .toNearestOrEven)
+ /* ddsamq1224 */ self.samequantum64("0", "7E+3", false, .toNearestOrEven)
+ /* ddsamq1225 */ self.samequantum64("0", "sNaN", false, .toNearestOrEven)
+ /* ddsamq1310 */ self.samequantum64("0E+3", "-Inf", false, .toNearestOrEven)
+ /* ddsamq1311 */ self.samequantum64("0E+3", "Inf", false, .toNearestOrEven)
+ /* ddsamq1312 */ self.samequantum64("0E+3", "NaN", false, .toNearestOrEven)
+ /* ddsamq1313 */ self.samequantum64("0E+3", "-7E+3", true, .toNearestOrEven)
+ /* ddsamq1314 */ self.samequantum64("0E+3", "-7", false, .toNearestOrEven)
+ /* ddsamq1315 */ self.samequantum64("0E+3", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq1316 */ self.samequantum64("0E+3", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq1317 */ self.samequantum64("0E+3", "-0", false, .toNearestOrEven)
+ /* ddsamq1318 */ self.samequantum64("0E+3", "-0E+3", true, .toNearestOrEven)
+ /* ddsamq1319 */ self.samequantum64("0E+3", "0E-3", false, .toNearestOrEven)
+ /* ddsamq1320 */ self.samequantum64("0E+3", "0", false, .toNearestOrEven)
+ /* ddsamq1321 */ self.samequantum64("0E+3", "0E+3", true, .toNearestOrEven)
+ /* ddsamq1322 */ self.samequantum64("0E+3", "7E-3", false, .toNearestOrEven)
+ /* ddsamq1323 */ self.samequantum64("0E+3", "7", false, .toNearestOrEven)
+ /* ddsamq1324 */ self.samequantum64("0E+3", "7E+3", true, .toNearestOrEven)
+ /* ddsamq1325 */ self.samequantum64("0E+3", "sNaN", false, .toNearestOrEven)
+ /* ddsamq1410 */ self.samequantum64("7E-3", "-Inf", false, .toNearestOrEven)
+ /* ddsamq1411 */ self.samequantum64("7E-3", "Inf", false, .toNearestOrEven)
+ /* ddsamq1412 */ self.samequantum64("7E-3", "NaN", false, .toNearestOrEven)
+ /* ddsamq1413 */ self.samequantum64("7E-3", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq1414 */ self.samequantum64("7E-3", "-7", false, .toNearestOrEven)
+ /* ddsamq1415 */ self.samequantum64("7E-3", "-7E-3", true, .toNearestOrEven)
+ /* ddsamq1416 */ self.samequantum64("7E-3", "-0E-3", true, .toNearestOrEven)
+ /* ddsamq1417 */ self.samequantum64("7E-3", "-0", false, .toNearestOrEven)
+ /* ddsamq1418 */ self.samequantum64("7E-3", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq1419 */ self.samequantum64("7E-3", "0E-3", true, .toNearestOrEven)
+ /* ddsamq1420 */ self.samequantum64("7E-3", "0", false, .toNearestOrEven)
+ /* ddsamq1421 */ self.samequantum64("7E-3", "0E+3", false, .toNearestOrEven)
+ /* ddsamq1422 */ self.samequantum64("7E-3", "7E-3", true, .toNearestOrEven)
+ /* ddsamq1423 */ self.samequantum64("7E-3", "7", false, .toNearestOrEven)
+ /* ddsamq1424 */ self.samequantum64("7E-3", "7E+3", false, .toNearestOrEven)
+ /* ddsamq1425 */ self.samequantum64("7E-3", "sNaN", false, .toNearestOrEven)
+ /* ddsamq1510 */ self.samequantum64("7", "-Inf", false, .toNearestOrEven)
+ /* ddsamq1511 */ self.samequantum64("7", "Inf", false, .toNearestOrEven)
+ /* ddsamq1512 */ self.samequantum64("7", "NaN", false, .toNearestOrEven)
+ /* ddsamq1513 */ self.samequantum64("7", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq1514 */ self.samequantum64("7", "-7", true, .toNearestOrEven)
+ /* ddsamq1515 */ self.samequantum64("7", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq1516 */ self.samequantum64("7", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq1517 */ self.samequantum64("7", "-0", true, .toNearestOrEven)
+ /* ddsamq1518 */ self.samequantum64("7", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq1519 */ self.samequantum64("7", "0E-3", false, .toNearestOrEven)
+ /* ddsamq1520 */ self.samequantum64("7", "0", true, .toNearestOrEven)
+ /* ddsamq1521 */ self.samequantum64("7", "0E+3", false, .toNearestOrEven)
+ /* ddsamq1522 */ self.samequantum64("7", "7E-3", false, .toNearestOrEven)
+ /* ddsamq1523 */ self.samequantum64("7", "7", true, .toNearestOrEven)
+ /* ddsamq1524 */ self.samequantum64("7", "7E+3", false, .toNearestOrEven)
+ /* ddsamq1525 */ self.samequantum64("7", "sNaN", false, .toNearestOrEven)
+ /* ddsamq1610 */ self.samequantum64("7E+3", "-Inf", false, .toNearestOrEven)
+ /* ddsamq1611 */ self.samequantum64("7E+3", "Inf", false, .toNearestOrEven)
+ /* ddsamq1612 */ self.samequantum64("7E+3", "NaN", false, .toNearestOrEven)
+ /* ddsamq1613 */ self.samequantum64("7E+3", "-7E+3", true, .toNearestOrEven)
+ /* ddsamq1614 */ self.samequantum64("7E+3", "-7", false, .toNearestOrEven)
+ /* ddsamq1615 */ self.samequantum64("7E+3", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq1616 */ self.samequantum64("7E+3", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq1617 */ self.samequantum64("7E+3", "-0", false, .toNearestOrEven)
+ /* ddsamq1618 */ self.samequantum64("7E+3", "-0E+3", true, .toNearestOrEven)
+ /* ddsamq1619 */ self.samequantum64("7E+3", "0E-3", false, .toNearestOrEven)
+ /* ddsamq1620 */ self.samequantum64("7E+3", "0", false, .toNearestOrEven)
+ /* ddsamq1621 */ self.samequantum64("7E+3", "0E+3", true, .toNearestOrEven)
+ /* ddsamq1622 */ self.samequantum64("7E+3", "7E-3", false, .toNearestOrEven)
+ /* ddsamq1623 */ self.samequantum64("7E+3", "7", false, .toNearestOrEven)
+ /* ddsamq1624 */ self.samequantum64("7E+3", "7E+3", true, .toNearestOrEven)
+ /* ddsamq1625 */ self.samequantum64("7E+3", "sNaN", false, .toNearestOrEven)
+ /* ddsamq1710 */ self.samequantum64("sNaN", "-Inf", false, .toNearestOrEven)
+ /* ddsamq1711 */ self.samequantum64("sNaN", "Inf", false, .toNearestOrEven)
+ /* ddsamq1712 */ self.samequantum64("sNaN", "NaN", true, .toNearestOrEven)
+ /* ddsamq1713 */ self.samequantum64("sNaN", "-7E+3", false, .toNearestOrEven)
+ /* ddsamq1714 */ self.samequantum64("sNaN", "-7", false, .toNearestOrEven)
+ /* ddsamq1715 */ self.samequantum64("sNaN", "-7E-3", false, .toNearestOrEven)
+ /* ddsamq1716 */ self.samequantum64("sNaN", "-0E-3", false, .toNearestOrEven)
+ /* ddsamq1717 */ self.samequantum64("sNaN", "-0", false, .toNearestOrEven)
+ /* ddsamq1718 */ self.samequantum64("sNaN", "-0E+3", false, .toNearestOrEven)
+ /* ddsamq1719 */ self.samequantum64("sNaN", "0E-3", false, .toNearestOrEven)
+ /* ddsamq1720 */ self.samequantum64("sNaN", "0", false, .toNearestOrEven)
+ /* ddsamq1721 */ self.samequantum64("sNaN", "0E+3", false, .toNearestOrEven)
+ /* ddsamq1722 */ self.samequantum64("sNaN", "7E-3", false, .toNearestOrEven)
+ /* ddsamq1723 */ self.samequantum64("sNaN", "7", false, .toNearestOrEven)
+ /* ddsamq1724 */ self.samequantum64("sNaN", "7E+3", false, .toNearestOrEven)
+ /* ddsamq1725 */ self.samequantum64("sNaN", "sNaN", true, .toNearestOrEven)
+ /* ddsamq1730 */ self.samequantum64("sNaN(0x3)", "sNaN(0x3)", true, .toNearestOrEven)
+ /* ddsamq1731 */ self.samequantum64("sNaN(0x3)", "sNaN(0x4)", true, .toNearestOrEven)
+ /* ddsamq1732 */ self.samequantum64("NaN(0x3)", "NaN(0x3)", true, .toNearestOrEven)
+ /* ddsamq1733 */ self.samequantum64("NaN(0x3)", "NaN(0x4)", true, .toNearestOrEven)
+ /* ddsamq1734 */ self.samequantum64("sNaN(0x3)", "3", false, .toNearestOrEven)
+ /* ddsamq1735 */ self.samequantum64("NaN(0x3)", "3", false, .toNearestOrEven)
+ /* ddsamq1736 */ self.samequantum64("4", "sNaN(0x4)", false, .toNearestOrEven)
+ /* ddsamq1737 */ self.samequantum64("3", "NaN(0x3)", false, .toNearestOrEven)
+ /* ddsamq1738 */ self.samequantum64("Inf", "sNaN(0x4)", false, .toNearestOrEven)
+ /* ddsamq1739 */ self.samequantum64("-Inf", "NaN(0x3)", false, .toNearestOrEven)
+ }
+
+ private func samequantum64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ expected: Bool,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+
+ let result = arg0.sameQuantum(as: arg1)
+ self.assertBool(result, expected, file, line)
+ }
+
+ func test_samequantum128() {
+ /* dqsamq001 */ self.samequantum128("0", "0", true, .toNearestOrEven)
+ /* dqsamq002 */ self.samequantum128("0", "1", true, .toNearestOrEven)
+ /* dqsamq003 */ self.samequantum128("1", "0", true, .toNearestOrEven)
+ /* dqsamq004 */ self.samequantum128("1", "1", true, .toNearestOrEven)
+ /* dqsamq011 */ self.samequantum128("10", "1E+1", false, .toNearestOrEven)
+ /* dqsamq0110 */ self.samequantum128("-Inf", "-Inf", true, .toNearestOrEven)
+ /* dqsamq0111 */ self.samequantum128("-Inf", "Inf", true, .toNearestOrEven)
+ /* dqsamq0112 */ self.samequantum128("-Inf", "NaN", false, .toNearestOrEven)
+ /* dqsamq0113 */ self.samequantum128("-Inf", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq0114 */ self.samequantum128("-Inf", "-7", false, .toNearestOrEven)
+ /* dqsamq0115 */ self.samequantum128("-Inf", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq0116 */ self.samequantum128("-Inf", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq0117 */ self.samequantum128("-Inf", "-0", false, .toNearestOrEven)
+ /* dqsamq0118 */ self.samequantum128("-Inf", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq0119 */ self.samequantum128("-Inf", "0E-3", false, .toNearestOrEven)
+ /* dqsamq012 */ self.samequantum128("10E+1", "10E+1", true, .toNearestOrEven)
+ /* dqsamq0120 */ self.samequantum128("-Inf", "0", false, .toNearestOrEven)
+ /* dqsamq0121 */ self.samequantum128("-Inf", "0E+3", false, .toNearestOrEven)
+ /* dqsamq0122 */ self.samequantum128("-Inf", "7E-3", false, .toNearestOrEven)
+ /* dqsamq0123 */ self.samequantum128("-Inf", "7", false, .toNearestOrEven)
+ /* dqsamq0124 */ self.samequantum128("-Inf", "7E+3", false, .toNearestOrEven)
+ /* dqsamq0125 */ self.samequantum128("-Inf", "sNaN", false, .toNearestOrEven)
+ /* dqsamq013 */ self.samequantum128("100", "10E+1", false, .toNearestOrEven)
+ /* dqsamq014 */ self.samequantum128("100", "1E+2", false, .toNearestOrEven)
+ /* dqsamq015 */ self.samequantum128("0.1", "1E-2", false, .toNearestOrEven)
+ /* dqsamq016 */ self.samequantum128("0.1", "1E-1", true, .toNearestOrEven)
+ /* dqsamq017 */ self.samequantum128("0.1", "1E-0", false, .toNearestOrEven)
+ /* dqsamq018 */ self.samequantum128("999", "999", true, .toNearestOrEven)
+ /* dqsamq019 */ self.samequantum128("999E-1", "99.9", true, .toNearestOrEven)
+ /* dqsamq020 */ self.samequantum128("111E-1", "22.2", true, .toNearestOrEven)
+ /* dqsamq021 */ self.samequantum128("111E-1", "1234.2", true, .toNearestOrEven)
+ /* dqsamq0210 */ self.samequantum128("Inf", "-Inf", true, .toNearestOrEven)
+ /* dqsamq0211 */ self.samequantum128("Inf", "Inf", true, .toNearestOrEven)
+ /* dqsamq0212 */ self.samequantum128("Inf", "NaN", false, .toNearestOrEven)
+ /* dqsamq0213 */ self.samequantum128("Inf", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq0214 */ self.samequantum128("Inf", "-7", false, .toNearestOrEven)
+ /* dqsamq0215 */ self.samequantum128("Inf", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq0216 */ self.samequantum128("Inf", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq0217 */ self.samequantum128("Inf", "-0", false, .toNearestOrEven)
+ /* dqsamq0218 */ self.samequantum128("Inf", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq0219 */ self.samequantum128("Inf", "0E-3", false, .toNearestOrEven)
+ /* dqsamq0220 */ self.samequantum128("Inf", "0", false, .toNearestOrEven)
+ /* dqsamq0221 */ self.samequantum128("Inf", "0E+3", false, .toNearestOrEven)
+ /* dqsamq0222 */ self.samequantum128("Inf", "7E-3", false, .toNearestOrEven)
+ /* dqsamq0223 */ self.samequantum128("Inf", "7", false, .toNearestOrEven)
+ /* dqsamq0224 */ self.samequantum128("Inf", "7E+3", false, .toNearestOrEven)
+ /* dqsamq0225 */ self.samequantum128("Inf", "sNaN", false, .toNearestOrEven)
+ /* dqsamq030 */ self.samequantum128("0.0", "1.1", true, .toNearestOrEven)
+ /* dqsamq031 */ self.samequantum128("0.0", "1.11", false, .toNearestOrEven)
+ /* dqsamq0310 */ self.samequantum128("NaN", "-Inf", false, .toNearestOrEven)
+ /* dqsamq0311 */ self.samequantum128("NaN", "Inf", false, .toNearestOrEven)
+ /* dqsamq0312 */ self.samequantum128("NaN", "NaN", true, .toNearestOrEven)
+ /* dqsamq0313 */ self.samequantum128("NaN", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq0314 */ self.samequantum128("NaN", "-7", false, .toNearestOrEven)
+ /* dqsamq0315 */ self.samequantum128("NaN", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq0316 */ self.samequantum128("NaN", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq0317 */ self.samequantum128("NaN", "-0", false, .toNearestOrEven)
+ /* dqsamq0318 */ self.samequantum128("NaN", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq0319 */ self.samequantum128("NaN", "0E-3", false, .toNearestOrEven)
+ /* dqsamq032 */ self.samequantum128("0.0", "0", false, .toNearestOrEven)
+ /* dqsamq0320 */ self.samequantum128("NaN", "0", false, .toNearestOrEven)
+ /* dqsamq0321 */ self.samequantum128("NaN", "0E+3", false, .toNearestOrEven)
+ /* dqsamq0322 */ self.samequantum128("NaN", "7E-3", false, .toNearestOrEven)
+ /* dqsamq0323 */ self.samequantum128("NaN", "7", false, .toNearestOrEven)
+ /* dqsamq0324 */ self.samequantum128("NaN", "7E+3", false, .toNearestOrEven)
+ /* dqsamq0325 */ self.samequantum128("NaN", "sNaN", true, .toNearestOrEven)
+ /* dqsamq033 */ self.samequantum128("0.0", "0.0", true, .toNearestOrEven)
+ /* dqsamq034 */ self.samequantum128("0.0", "0.00", false, .toNearestOrEven)
+ /* dqsamq035 */ self.samequantum128("0E+1", "0E+0", false, .toNearestOrEven)
+ /* dqsamq036 */ self.samequantum128("0E+1", "0E+1", true, .toNearestOrEven)
+ /* dqsamq037 */ self.samequantum128("0E+1", "0E+2", false, .toNearestOrEven)
+ /* dqsamq038 */ self.samequantum128("0E-17", "0E-16", false, .toNearestOrEven)
+ /* dqsamq039 */ self.samequantum128("0E-17", "0E-17", true, .toNearestOrEven)
+ /* dqsamq040 */ self.samequantum128("0E-17", "0E-18", false, .toNearestOrEven)
+ /* dqsamq041 */ self.samequantum128("0E-17", "0.0E-15", false, .toNearestOrEven)
+ /* dqsamq0410 */ self.samequantum128("-7E+3", "-Inf", false, .toNearestOrEven)
+ /* dqsamq0411 */ self.samequantum128("-7E+3", "Inf", false, .toNearestOrEven)
+ /* dqsamq0412 */ self.samequantum128("-7E+3", "NaN", false, .toNearestOrEven)
+ /* dqsamq0413 */ self.samequantum128("-7E+3", "-7E+3", true, .toNearestOrEven)
+ /* dqsamq0414 */ self.samequantum128("-7E+3", "-7", false, .toNearestOrEven)
+ /* dqsamq0415 */ self.samequantum128("-7E+3", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq0416 */ self.samequantum128("-7E+3", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq0417 */ self.samequantum128("-7E+3", "-0", false, .toNearestOrEven)
+ /* dqsamq0418 */ self.samequantum128("-7E+3", "-0E+3", true, .toNearestOrEven)
+ /* dqsamq0419 */ self.samequantum128("-7E+3", "0E-3", false, .toNearestOrEven)
+ /* dqsamq042 */ self.samequantum128("0E-17", "0.0E-16", true, .toNearestOrEven)
+ /* dqsamq0420 */ self.samequantum128("-7E+3", "0", false, .toNearestOrEven)
+ /* dqsamq0421 */ self.samequantum128("-7E+3", "0E+3", true, .toNearestOrEven)
+ /* dqsamq0422 */ self.samequantum128("-7E+3", "7E-3", false, .toNearestOrEven)
+ /* dqsamq0423 */ self.samequantum128("-7E+3", "7", false, .toNearestOrEven)
+ /* dqsamq0424 */ self.samequantum128("-7E+3", "7E+3", true, .toNearestOrEven)
+ /* dqsamq0425 */ self.samequantum128("-7E+3", "sNaN", false, .toNearestOrEven)
+ /* dqsamq043 */ self.samequantum128("0E-17", "0.0E-17", false, .toNearestOrEven)
+ /* dqsamq044 */ self.samequantum128("-0E-17", "0.0E-16", true, .toNearestOrEven)
+ /* dqsamq045 */ self.samequantum128("0E-17", "-0.0E-17", false, .toNearestOrEven)
+ /* dqsamq046 */ self.samequantum128("0E-17", "-0.0E-16", true, .toNearestOrEven)
+ /* dqsamq047 */ self.samequantum128("-0E-17", "0.0E-17", false, .toNearestOrEven)
+ /* dqsamq048 */ self.samequantum128("-0E-17", "-0.0E-16", true, .toNearestOrEven)
+ /* dqsamq049 */ self.samequantum128("-0E-17", "-0.0E-17", false, .toNearestOrEven)
+ /* dqsamq051 */ self.samequantum128("9.99999999999999999999999999999999E+6144", "9.99999999999999999999999999999999E+6144", true, .toNearestOrEven)
+ /* dqsamq0510 */ self.samequantum128("-7", "-Inf", false, .toNearestOrEven)
+ /* dqsamq0511 */ self.samequantum128("-7", "Inf", false, .toNearestOrEven)
+ /* dqsamq0512 */ self.samequantum128("-7", "NaN", false, .toNearestOrEven)
+ /* dqsamq0513 */ self.samequantum128("-7", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq0514 */ self.samequantum128("-7", "-7", true, .toNearestOrEven)
+ /* dqsamq0515 */ self.samequantum128("-7", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq0516 */ self.samequantum128("-7", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq0517 */ self.samequantum128("-7", "-0", true, .toNearestOrEven)
+ /* dqsamq0518 */ self.samequantum128("-7", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq0519 */ self.samequantum128("-7", "0E-3", false, .toNearestOrEven)
+ /* dqsamq052 */ self.samequantum128("1E-6143", "1E-6143", true, .toNearestOrEven)
+ /* dqsamq0520 */ self.samequantum128("-7", "0", true, .toNearestOrEven)
+ /* dqsamq0521 */ self.samequantum128("-7", "0E+3", false, .toNearestOrEven)
+ /* dqsamq0522 */ self.samequantum128("-7", "7E-3", false, .toNearestOrEven)
+ /* dqsamq0523 */ self.samequantum128("-7", "7", true, .toNearestOrEven)
+ /* dqsamq0524 */ self.samequantum128("-7", "7E+3", false, .toNearestOrEven)
+ /* dqsamq0525 */ self.samequantum128("-7", "sNaN", false, .toNearestOrEven)
+ /* dqsamq053 */ self.samequantum128("1.00000000000000000000000000000000E-6143", "1.00000000000000000000000000000000E-6143", true, .toNearestOrEven)
+ /* dqsamq054 */ self.samequantum128("1E-6176", "1E-6176", true, .toNearestOrEven)
+ /* dqsamq055 */ self.samequantum128("9.99999999999999999999999999999999E+6144", "9.99999999999999999999999999999999E+6144", true, .toNearestOrEven)
+ /* dqsamq056 */ self.samequantum128("1E-6143", "1E-6143", true, .toNearestOrEven)
+ /* dqsamq057 */ self.samequantum128("1.00000000000000000000000000000000E-6143", "1.00000000000000000000000000000000E-6143", true, .toNearestOrEven)
+ /* dqsamq058 */ self.samequantum128("1E-6176", "1E-6176", true, .toNearestOrEven)
+ /* dqsamq061 */ self.samequantum128("-1E-6176", "-1E-6176", true, .toNearestOrEven)
+ /* dqsamq0610 */ self.samequantum128("-7E-3", "-Inf", false, .toNearestOrEven)
+ /* dqsamq0611 */ self.samequantum128("-7E-3", "Inf", false, .toNearestOrEven)
+ /* dqsamq0612 */ self.samequantum128("-7E-3", "NaN", false, .toNearestOrEven)
+ /* dqsamq0613 */ self.samequantum128("-7E-3", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq0614 */ self.samequantum128("-7E-3", "-7", false, .toNearestOrEven)
+ /* dqsamq0615 */ self.samequantum128("-7E-3", "-7E-3", true, .toNearestOrEven)
+ /* dqsamq0616 */ self.samequantum128("-7E-3", "-0E-3", true, .toNearestOrEven)
+ /* dqsamq0617 */ self.samequantum128("-7E-3", "-0", false, .toNearestOrEven)
+ /* dqsamq0618 */ self.samequantum128("-7E-3", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq0619 */ self.samequantum128("-7E-3", "0E-3", true, .toNearestOrEven)
+ /* dqsamq062 */ self.samequantum128("-1.00000000000000000000000000000000E-6143", "-1.00000000000000000000000000000000E-6143", true, .toNearestOrEven)
+ /* dqsamq0620 */ self.samequantum128("-7E-3", "0", false, .toNearestOrEven)
+ /* dqsamq0621 */ self.samequantum128("-7E-3", "0E+3", false, .toNearestOrEven)
+ /* dqsamq0622 */ self.samequantum128("-7E-3", "7E-3", true, .toNearestOrEven)
+ /* dqsamq0623 */ self.samequantum128("-7E-3", "7", false, .toNearestOrEven)
+ /* dqsamq0624 */ self.samequantum128("-7E-3", "7E+3", false, .toNearestOrEven)
+ /* dqsamq0625 */ self.samequantum128("-7E-3", "sNaN", false, .toNearestOrEven)
+ /* dqsamq063 */ self.samequantum128("-1E-6143", "-1E-6143", true, .toNearestOrEven)
+ /* dqsamq064 */ self.samequantum128("-9.99999999999999999999999999999999E+6144", "-9.99999999999999999999999999999999E+6144", true, .toNearestOrEven)
+ /* dqsamq065 */ self.samequantum128("-1E-6176", "-1E-6176", true, .toNearestOrEven)
+ /* dqsamq066 */ self.samequantum128("-1.00000000000000000000000000000000E-6143", "-1.00000000000000000000000000000000E-6143", true, .toNearestOrEven)
+ /* dqsamq067 */ self.samequantum128("-1E-6143", "-1E-6143", true, .toNearestOrEven)
+ /* dqsamq068 */ self.samequantum128("-9.99999999999999999999999999999999E+6144", "-9.99999999999999999999999999999999E+6144", true, .toNearestOrEven)
+ /* dqsamq071 */ self.samequantum128("-4E-6176", "-1E-6176", true, .toNearestOrEven)
+ /* dqsamq0710 */ self.samequantum128("-0E-3", "-Inf", false, .toNearestOrEven)
+ /* dqsamq0711 */ self.samequantum128("-0E-3", "Inf", false, .toNearestOrEven)
+ /* dqsamq0712 */ self.samequantum128("-0E-3", "NaN", false, .toNearestOrEven)
+ /* dqsamq0713 */ self.samequantum128("-0E-3", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq0714 */ self.samequantum128("-0E-3", "-7", false, .toNearestOrEven)
+ /* dqsamq0715 */ self.samequantum128("-0E-3", "-7E-3", true, .toNearestOrEven)
+ /* dqsamq0716 */ self.samequantum128("-0E-3", "-0E-3", true, .toNearestOrEven)
+ /* dqsamq0717 */ self.samequantum128("-0E-3", "-0", false, .toNearestOrEven)
+ /* dqsamq0718 */ self.samequantum128("-0E-3", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq0719 */ self.samequantum128("-0E-3", "0E-3", true, .toNearestOrEven)
+ /* dqsamq072 */ self.samequantum128("-4.00000000000000000000000000000000E-6143", "-1.00000000000000000000000000004000E-6143", true, .toNearestOrEven)
+ /* dqsamq0720 */ self.samequantum128("-0E-3", "0", false, .toNearestOrEven)
+ /* dqsamq0721 */ self.samequantum128("-0E-3", "0E+3", false, .toNearestOrEven)
+ /* dqsamq0722 */ self.samequantum128("-0E-3", "7E-3", true, .toNearestOrEven)
+ /* dqsamq0723 */ self.samequantum128("-0E-3", "7", false, .toNearestOrEven)
+ /* dqsamq0724 */ self.samequantum128("-0E-3", "7E+3", false, .toNearestOrEven)
+ /* dqsamq0725 */ self.samequantum128("-0E-3", "sNaN", false, .toNearestOrEven)
+ /* dqsamq073 */ self.samequantum128("-4E-6143", "-1E-6143", true, .toNearestOrEven)
+ /* dqsamq074 */ self.samequantum128("-4.99999999999999999999999999999999E+6144", "-9.99949999999999999999999999999999E+6144", true, .toNearestOrEven)
+ /* dqsamq075 */ self.samequantum128("-4E-6176", "-1E-6176", true, .toNearestOrEven)
+ /* dqsamq076 */ self.samequantum128("-4.00000000000000000000000000000000E-6143", "-1.00400000000000000000000000000000E-6143", true, .toNearestOrEven)
+ /* dqsamq077 */ self.samequantum128("-4E-6143", "-1E-6143", true, .toNearestOrEven)
+ /* dqsamq078 */ self.samequantum128("-4.99999999999999999999999999999999E+6144", "-9.94999999999999999999999999999999E+6144", true, .toNearestOrEven)
+ /* dqsamq081 */ self.samequantum128("-4E-1006", "-1E-6176", false, .toNearestOrEven)
+ /* dqsamq0810 */ self.samequantum128("-0", "-Inf", false, .toNearestOrEven)
+ /* dqsamq0811 */ self.samequantum128("-0", "Inf", false, .toNearestOrEven)
+ /* dqsamq0812 */ self.samequantum128("-0", "NaN", false, .toNearestOrEven)
+ /* dqsamq0813 */ self.samequantum128("-0", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq0814 */ self.samequantum128("-0", "-7", true, .toNearestOrEven)
+ /* dqsamq0815 */ self.samequantum128("-0", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq0816 */ self.samequantum128("-0", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq0817 */ self.samequantum128("-0", "-0", true, .toNearestOrEven)
+ /* dqsamq0818 */ self.samequantum128("-0", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq0819 */ self.samequantum128("-0", "0E-3", false, .toNearestOrEven)
+ /* dqsamq082 */ self.samequantum128("-4.00000000000000000000000000000000E-6143", "-1.00004000000000000000000000000000E-6136", false, .toNearestOrEven)
+ /* dqsamq0820 */ self.samequantum128("-0", "0", true, .toNearestOrEven)
+ /* dqsamq0821 */ self.samequantum128("-0", "0E+3", false, .toNearestOrEven)
+ /* dqsamq0822 */ self.samequantum128("-0", "7E-3", false, .toNearestOrEven)
+ /* dqsamq0823 */ self.samequantum128("-0", "7", true, .toNearestOrEven)
+ /* dqsamq0824 */ self.samequantum128("-0", "7E+3", false, .toNearestOrEven)
+ /* dqsamq0825 */ self.samequantum128("-0", "sNaN", false, .toNearestOrEven)
+ /* dqsamq083 */ self.samequantum128("-4E-6140", "-1E-6143", false, .toNearestOrEven)
+ /* dqsamq084 */ self.samequantum128("-4.99999999999999999999999999999999E+6144", "-9.99949999999999999999999999999999E+6136", false, .toNearestOrEven)
+ /* dqsamq085 */ self.samequantum128("-4E-1006", "-1E-6176", false, .toNearestOrEven)
+ /* dqsamq086 */ self.samequantum128("-4.00000000000000000000000000000000E-6143", "-1.00400000000000000000000000000000E-6136", false, .toNearestOrEven)
+ /* dqsamq087 */ self.samequantum128("-4E-6133", "-1E-6143", false, .toNearestOrEven)
+ /* dqsamq088 */ self.samequantum128("-4.99999999999999999999999999999999E+6144", "-9.94999999999999999999999999999999E+6136", false, .toNearestOrEven)
+ /* dqsamq0910 */ self.samequantum128("-0E+3", "-Inf", false, .toNearestOrEven)
+ /* dqsamq0911 */ self.samequantum128("-0E+3", "Inf", false, .toNearestOrEven)
+ /* dqsamq0912 */ self.samequantum128("-0E+3", "NaN", false, .toNearestOrEven)
+ /* dqsamq0913 */ self.samequantum128("-0E+3", "-7E+3", true, .toNearestOrEven)
+ /* dqsamq0914 */ self.samequantum128("-0E+3", "-7", false, .toNearestOrEven)
+ /* dqsamq0915 */ self.samequantum128("-0E+3", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq0916 */ self.samequantum128("-0E+3", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq0917 */ self.samequantum128("-0E+3", "-0", false, .toNearestOrEven)
+ /* dqsamq0918 */ self.samequantum128("-0E+3", "-0E+3", true, .toNearestOrEven)
+ /* dqsamq0919 */ self.samequantum128("-0E+3", "0E-3", false, .toNearestOrEven)
+ /* dqsamq0920 */ self.samequantum128("-0E+3", "0", false, .toNearestOrEven)
+ /* dqsamq0921 */ self.samequantum128("-0E+3", "0E+3", true, .toNearestOrEven)
+ /* dqsamq0922 */ self.samequantum128("-0E+3", "7E-3", false, .toNearestOrEven)
+ /* dqsamq0923 */ self.samequantum128("-0E+3", "7", false, .toNearestOrEven)
+ /* dqsamq0924 */ self.samequantum128("-0E+3", "7E+3", true, .toNearestOrEven)
+ /* dqsamq0925 */ self.samequantum128("-0E+3", "sNaN", false, .toNearestOrEven)
+ /* dqsamq1110 */ self.samequantum128("0E-3", "-Inf", false, .toNearestOrEven)
+ /* dqsamq1111 */ self.samequantum128("0E-3", "Inf", false, .toNearestOrEven)
+ /* dqsamq1112 */ self.samequantum128("0E-3", "NaN", false, .toNearestOrEven)
+ /* dqsamq1113 */ self.samequantum128("0E-3", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq1114 */ self.samequantum128("0E-3", "-7", false, .toNearestOrEven)
+ /* dqsamq1115 */ self.samequantum128("0E-3", "-7E-3", true, .toNearestOrEven)
+ /* dqsamq1116 */ self.samequantum128("0E-3", "-0E-3", true, .toNearestOrEven)
+ /* dqsamq1117 */ self.samequantum128("0E-3", "-0", false, .toNearestOrEven)
+ /* dqsamq1118 */ self.samequantum128("0E-3", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq1119 */ self.samequantum128("0E-3", "0E-3", true, .toNearestOrEven)
+ /* dqsamq1120 */ self.samequantum128("0E-3", "0", false, .toNearestOrEven)
+ /* dqsamq1121 */ self.samequantum128("0E-3", "0E+3", false, .toNearestOrEven)
+ /* dqsamq1122 */ self.samequantum128("0E-3", "7E-3", true, .toNearestOrEven)
+ /* dqsamq1123 */ self.samequantum128("0E-3", "7", false, .toNearestOrEven)
+ /* dqsamq1124 */ self.samequantum128("0E-3", "7E+3", false, .toNearestOrEven)
+ /* dqsamq1125 */ self.samequantum128("0E-3", "sNaN", false, .toNearestOrEven)
+ /* dqsamq1210 */ self.samequantum128("0", "-Inf", false, .toNearestOrEven)
+ /* dqsamq1211 */ self.samequantum128("0", "Inf", false, .toNearestOrEven)
+ /* dqsamq1212 */ self.samequantum128("0", "NaN", false, .toNearestOrEven)
+ /* dqsamq1213 */ self.samequantum128("0", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq1214 */ self.samequantum128("0", "-7", true, .toNearestOrEven)
+ /* dqsamq1215 */ self.samequantum128("0", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq1216 */ self.samequantum128("0", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq1217 */ self.samequantum128("0", "-0", true, .toNearestOrEven)
+ /* dqsamq1218 */ self.samequantum128("0", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq1219 */ self.samequantum128("0", "0E-3", false, .toNearestOrEven)
+ /* dqsamq1220 */ self.samequantum128("0", "0", true, .toNearestOrEven)
+ /* dqsamq1221 */ self.samequantum128("0", "0E+3", false, .toNearestOrEven)
+ /* dqsamq1222 */ self.samequantum128("0", "7E-3", false, .toNearestOrEven)
+ /* dqsamq1223 */ self.samequantum128("0", "7", true, .toNearestOrEven)
+ /* dqsamq1224 */ self.samequantum128("0", "7E+3", false, .toNearestOrEven)
+ /* dqsamq1225 */ self.samequantum128("0", "sNaN", false, .toNearestOrEven)
+ /* dqsamq1310 */ self.samequantum128("0E+3", "-Inf", false, .toNearestOrEven)
+ /* dqsamq1311 */ self.samequantum128("0E+3", "Inf", false, .toNearestOrEven)
+ /* dqsamq1312 */ self.samequantum128("0E+3", "NaN", false, .toNearestOrEven)
+ /* dqsamq1313 */ self.samequantum128("0E+3", "-7E+3", true, .toNearestOrEven)
+ /* dqsamq1314 */ self.samequantum128("0E+3", "-7", false, .toNearestOrEven)
+ /* dqsamq1315 */ self.samequantum128("0E+3", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq1316 */ self.samequantum128("0E+3", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq1317 */ self.samequantum128("0E+3", "-0", false, .toNearestOrEven)
+ /* dqsamq1318 */ self.samequantum128("0E+3", "-0E+3", true, .toNearestOrEven)
+ /* dqsamq1319 */ self.samequantum128("0E+3", "0E-3", false, .toNearestOrEven)
+ /* dqsamq1320 */ self.samequantum128("0E+3", "0", false, .toNearestOrEven)
+ /* dqsamq1321 */ self.samequantum128("0E+3", "0E+3", true, .toNearestOrEven)
+ /* dqsamq1322 */ self.samequantum128("0E+3", "7E-3", false, .toNearestOrEven)
+ /* dqsamq1323 */ self.samequantum128("0E+3", "7", false, .toNearestOrEven)
+ /* dqsamq1324 */ self.samequantum128("0E+3", "7E+3", true, .toNearestOrEven)
+ /* dqsamq1325 */ self.samequantum128("0E+3", "sNaN", false, .toNearestOrEven)
+ /* dqsamq1410 */ self.samequantum128("7E-3", "-Inf", false, .toNearestOrEven)
+ /* dqsamq1411 */ self.samequantum128("7E-3", "Inf", false, .toNearestOrEven)
+ /* dqsamq1412 */ self.samequantum128("7E-3", "NaN", false, .toNearestOrEven)
+ /* dqsamq1413 */ self.samequantum128("7E-3", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq1414 */ self.samequantum128("7E-3", "-7", false, .toNearestOrEven)
+ /* dqsamq1415 */ self.samequantum128("7E-3", "-7E-3", true, .toNearestOrEven)
+ /* dqsamq1416 */ self.samequantum128("7E-3", "-0E-3", true, .toNearestOrEven)
+ /* dqsamq1417 */ self.samequantum128("7E-3", "-0", false, .toNearestOrEven)
+ /* dqsamq1418 */ self.samequantum128("7E-3", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq1419 */ self.samequantum128("7E-3", "0E-3", true, .toNearestOrEven)
+ /* dqsamq1420 */ self.samequantum128("7E-3", "0", false, .toNearestOrEven)
+ /* dqsamq1421 */ self.samequantum128("7E-3", "0E+3", false, .toNearestOrEven)
+ /* dqsamq1422 */ self.samequantum128("7E-3", "7E-3", true, .toNearestOrEven)
+ /* dqsamq1423 */ self.samequantum128("7E-3", "7", false, .toNearestOrEven)
+ /* dqsamq1424 */ self.samequantum128("7E-3", "7E+3", false, .toNearestOrEven)
+ /* dqsamq1425 */ self.samequantum128("7E-3", "sNaN", false, .toNearestOrEven)
+ /* dqsamq1510 */ self.samequantum128("7", "-Inf", false, .toNearestOrEven)
+ /* dqsamq1511 */ self.samequantum128("7", "Inf", false, .toNearestOrEven)
+ /* dqsamq1512 */ self.samequantum128("7", "NaN", false, .toNearestOrEven)
+ /* dqsamq1513 */ self.samequantum128("7", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq1514 */ self.samequantum128("7", "-7", true, .toNearestOrEven)
+ /* dqsamq1515 */ self.samequantum128("7", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq1516 */ self.samequantum128("7", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq1517 */ self.samequantum128("7", "-0", true, .toNearestOrEven)
+ /* dqsamq1518 */ self.samequantum128("7", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq1519 */ self.samequantum128("7", "0E-3", false, .toNearestOrEven)
+ /* dqsamq1520 */ self.samequantum128("7", "0", true, .toNearestOrEven)
+ /* dqsamq1521 */ self.samequantum128("7", "0E+3", false, .toNearestOrEven)
+ /* dqsamq1522 */ self.samequantum128("7", "7E-3", false, .toNearestOrEven)
+ /* dqsamq1523 */ self.samequantum128("7", "7", true, .toNearestOrEven)
+ /* dqsamq1524 */ self.samequantum128("7", "7E+3", false, .toNearestOrEven)
+ /* dqsamq1525 */ self.samequantum128("7", "sNaN", false, .toNearestOrEven)
+ /* dqsamq1610 */ self.samequantum128("7E+3", "-Inf", false, .toNearestOrEven)
+ /* dqsamq1611 */ self.samequantum128("7E+3", "Inf", false, .toNearestOrEven)
+ /* dqsamq1612 */ self.samequantum128("7E+3", "NaN", false, .toNearestOrEven)
+ /* dqsamq1613 */ self.samequantum128("7E+3", "-7E+3", true, .toNearestOrEven)
+ /* dqsamq1614 */ self.samequantum128("7E+3", "-7", false, .toNearestOrEven)
+ /* dqsamq1615 */ self.samequantum128("7E+3", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq1616 */ self.samequantum128("7E+3", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq1617 */ self.samequantum128("7E+3", "-0", false, .toNearestOrEven)
+ /* dqsamq1618 */ self.samequantum128("7E+3", "-0E+3", true, .toNearestOrEven)
+ /* dqsamq1619 */ self.samequantum128("7E+3", "0E-3", false, .toNearestOrEven)
+ /* dqsamq1620 */ self.samequantum128("7E+3", "0", false, .toNearestOrEven)
+ /* dqsamq1621 */ self.samequantum128("7E+3", "0E+3", true, .toNearestOrEven)
+ /* dqsamq1622 */ self.samequantum128("7E+3", "7E-3", false, .toNearestOrEven)
+ /* dqsamq1623 */ self.samequantum128("7E+3", "7", false, .toNearestOrEven)
+ /* dqsamq1624 */ self.samequantum128("7E+3", "7E+3", true, .toNearestOrEven)
+ /* dqsamq1625 */ self.samequantum128("7E+3", "sNaN", false, .toNearestOrEven)
+ /* dqsamq1710 */ self.samequantum128("sNaN", "-Inf", false, .toNearestOrEven)
+ /* dqsamq1711 */ self.samequantum128("sNaN", "Inf", false, .toNearestOrEven)
+ /* dqsamq1712 */ self.samequantum128("sNaN", "NaN", true, .toNearestOrEven)
+ /* dqsamq1713 */ self.samequantum128("sNaN", "-7E+3", false, .toNearestOrEven)
+ /* dqsamq1714 */ self.samequantum128("sNaN", "-7", false, .toNearestOrEven)
+ /* dqsamq1715 */ self.samequantum128("sNaN", "-7E-3", false, .toNearestOrEven)
+ /* dqsamq1716 */ self.samequantum128("sNaN", "-0E-3", false, .toNearestOrEven)
+ /* dqsamq1717 */ self.samequantum128("sNaN", "-0", false, .toNearestOrEven)
+ /* dqsamq1718 */ self.samequantum128("sNaN", "-0E+3", false, .toNearestOrEven)
+ /* dqsamq1719 */ self.samequantum128("sNaN", "0E-3", false, .toNearestOrEven)
+ /* dqsamq1720 */ self.samequantum128("sNaN", "0", false, .toNearestOrEven)
+ /* dqsamq1721 */ self.samequantum128("sNaN", "0E+3", false, .toNearestOrEven)
+ /* dqsamq1722 */ self.samequantum128("sNaN", "7E-3", false, .toNearestOrEven)
+ /* dqsamq1723 */ self.samequantum128("sNaN", "7", false, .toNearestOrEven)
+ /* dqsamq1724 */ self.samequantum128("sNaN", "7E+3", false, .toNearestOrEven)
+ /* dqsamq1725 */ self.samequantum128("sNaN", "sNaN", true, .toNearestOrEven)
+ /* dqsamq1730 */ self.samequantum128("sNaN(0x3)", "sNaN(0x3)", true, .toNearestOrEven)
+ /* dqsamq1731 */ self.samequantum128("sNaN(0x3)", "sNaN(0x4)", true, .toNearestOrEven)
+ /* dqsamq1732 */ self.samequantum128("NaN(0x3)", "NaN(0x3)", true, .toNearestOrEven)
+ /* dqsamq1733 */ self.samequantum128("NaN(0x3)", "NaN(0x4)", true, .toNearestOrEven)
+ /* dqsamq1734 */ self.samequantum128("sNaN(0x3)", "3", false, .toNearestOrEven)
+ /* dqsamq1735 */ self.samequantum128("NaN(0x3)", "3", false, .toNearestOrEven)
+ /* dqsamq1736 */ self.samequantum128("4", "sNaN(0x4)", false, .toNearestOrEven)
+ /* dqsamq1737 */ self.samequantum128("3", "NaN(0x3)", false, .toNearestOrEven)
+ /* dqsamq1738 */ self.samequantum128("Inf", "sNaN(0x4)", false, .toNearestOrEven)
+ /* dqsamq1739 */ self.samequantum128("-Inf", "NaN(0x3)", false, .toNearestOrEven)
+ }
+
+ private func samequantum128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ expected: Bool,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+
+ let result = arg0.sameQuantum(as: arg1)
+ self.assertBool(result, expected, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveRemTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveRemTests.swift
new file mode 100644
index 0000000..27501e3
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveRemTests.swift
@@ -0,0 +1,2172 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveRemTests: XCTestCase, SpeleotroveMixin {
+
+ // MARK: - Remainder
+
+ func test_remainder64() {
+ /* ddrem001 */ self.remainder64("1", "1", "0", .toNearestOrEven)
+ /* ddrem002 */ self.remainder64("2", "1", "0", .toNearestOrEven)
+ /* ddrem003 */ self.remainder64("1", "2", "1", .toNearestOrEven)
+ /* ddrem004 */ self.remainder64("2", "2", "0", .toNearestOrEven)
+ /* ddrem005 */ self.remainder64("0", "1", "0", .toNearestOrEven)
+ /* ddrem006 */ self.remainder64("0", "2", "0", .toNearestOrEven)
+ /* ddrem007 */ self.remainder64("1", "3", "1", .toNearestOrEven)
+ /* ddrem008 */ self.remainder64("2", "3", "2", .toNearestOrEven)
+ /* ddrem009 */ self.remainder64("3", "3", "0", .toNearestOrEven)
+ /* ddrem010 */ self.remainder64("2.4", "1", "0.4", .toNearestOrEven)
+ /* ddrem011 */ self.remainder64("2.4", "-1", "0.4", .toNearestOrEven)
+ /* ddrem012 */ self.remainder64("-2.4", "1", "-0.4", .toNearestOrEven)
+ /* ddrem013 */ self.remainder64("-2.4", "-1", "-0.4", .toNearestOrEven)
+ /* ddrem014 */ self.remainder64("2.40", "1", "0.40", .toNearestOrEven)
+ /* ddrem015 */ self.remainder64("2.400", "1", "0.400", .toNearestOrEven)
+ /* ddrem016 */ self.remainder64("2.4", "2", "0.4", .toNearestOrEven)
+ /* ddrem017 */ self.remainder64("2.400", "2", "0.400", .toNearestOrEven)
+ /* ddrem018 */ self.remainder64("2.", "2", "0", .toNearestOrEven)
+ /* ddrem019 */ self.remainder64("20", "20", "0", .toNearestOrEven)
+ /* ddrem020 */ self.remainder64("187", "187", "0", .toNearestOrEven)
+ /* ddrem021 */ self.remainder64("5", "2", "1", .toNearestOrEven)
+ /* ddrem022 */ self.remainder64("5", "2.0", "1.0", .toNearestOrEven)
+ /* ddrem023 */ self.remainder64("5", "2.000", "1.000", .toNearestOrEven)
+ /* ddrem024 */ self.remainder64("5", "0.200", "0.000", .toNearestOrEven)
+ /* ddrem025 */ self.remainder64("5", "0.200", "0.000", .toNearestOrEven)
+ /* ddrem030 */ self.remainder64("1", "2", "1", .toNearestOrEven)
+ /* ddrem031 */ self.remainder64("1", "4", "1", .toNearestOrEven)
+ /* ddrem032 */ self.remainder64("1", "8", "1", .toNearestOrEven)
+ /* ddrem033 */ self.remainder64("1", "16", "1", .toNearestOrEven)
+ /* ddrem034 */ self.remainder64("1", "32", "1", .toNearestOrEven)
+ /* ddrem035 */ self.remainder64("1", "64", "1", .toNearestOrEven)
+ /* ddrem040 */ self.remainder64("1", "-2", "1", .toNearestOrEven)
+ /* ddrem041 */ self.remainder64("1", "-4", "1", .toNearestOrEven)
+ /* ddrem042 */ self.remainder64("1", "-8", "1", .toNearestOrEven)
+ /* ddrem043 */ self.remainder64("1", "-16", "1", .toNearestOrEven)
+ /* ddrem044 */ self.remainder64("1", "-32", "1", .toNearestOrEven)
+ /* ddrem045 */ self.remainder64("1", "-64", "1", .toNearestOrEven)
+ /* ddrem050 */ self.remainder64("-1", "2", "-1", .toNearestOrEven)
+ /* ddrem051 */ self.remainder64("-1", "4", "-1", .toNearestOrEven)
+ /* ddrem052 */ self.remainder64("-1", "8", "-1", .toNearestOrEven)
+ /* ddrem053 */ self.remainder64("-1", "16", "-1", .toNearestOrEven)
+ /* ddrem054 */ self.remainder64("-1", "32", "-1", .toNearestOrEven)
+ /* ddrem055 */ self.remainder64("-1", "64", "-1", .toNearestOrEven)
+ /* ddrem060 */ self.remainder64("-1", "-2", "-1", .toNearestOrEven)
+ /* ddrem061 */ self.remainder64("-1", "-4", "-1", .toNearestOrEven)
+ /* ddrem062 */ self.remainder64("-1", "-8", "-1", .toNearestOrEven)
+ /* ddrem063 */ self.remainder64("-1", "-16", "-1", .toNearestOrEven)
+ /* ddrem064 */ self.remainder64("-1", "-32", "-1", .toNearestOrEven)
+ /* ddrem065 */ self.remainder64("-1", "-64", "-1", .toNearestOrEven)
+ /* ddrem066 */ self.remainder64("999999999", "1", "0", .toNearestOrEven)
+ /* ddrem067 */ self.remainder64("999999999.4", "1", "0.4", .toNearestOrEven)
+ /* ddrem068 */ self.remainder64("999999999.5", "1", "0.5", .toNearestOrEven)
+ /* ddrem069 */ self.remainder64("999999999.9", "1", "0.9", .toNearestOrEven)
+ /* ddrem070 */ self.remainder64("999999999.999", "1", "0.999", .toNearestOrEven)
+ /* ddrem071 */ self.remainder64("999999.999999", "1", "0.999999", .toNearestOrEven)
+ /* ddrem072 */ self.remainder64("9", "1", "0", .toNearestOrEven)
+ /* ddrem073 */ self.remainder64("9999999999999999", "1", "0", .toNearestOrEven)
+ /* ddrem074 */ self.remainder64("9999999999999999", "2", "1", .toNearestOrEven)
+ /* ddrem075 */ self.remainder64("9999999999999999", "3", "0", .toNearestOrEven)
+ /* ddrem076 */ self.remainder64("9999999999999999", "4", "3", .toNearestOrEven)
+ /* ddrem080 */ self.remainder64("0.", "1", "0", .toNearestOrEven)
+ /* ddrem081 */ self.remainder64(".0", "1", "0.0", .toNearestOrEven)
+ /* ddrem082 */ self.remainder64("0.00", "1", "0.00", .toNearestOrEven)
+ /* ddrem083 */ self.remainder64("0.00E+9", "1", "0", .toNearestOrEven)
+ /* ddrem084 */ self.remainder64("0.00E+3", "1", "0", .toNearestOrEven)
+ /* ddrem085 */ self.remainder64("0.00E+2", "1", "0", .toNearestOrEven)
+ /* ddrem086 */ self.remainder64("0.00E+1", "1", "0.0", .toNearestOrEven)
+ /* ddrem087 */ self.remainder64("0.00E+0", "1", "0.00", .toNearestOrEven)
+ /* ddrem088 */ self.remainder64("0.00E-0", "1", "0.00", .toNearestOrEven)
+ /* ddrem089 */ self.remainder64("0.00E-1", "1", "0.000", .toNearestOrEven)
+ /* ddrem090 */ self.remainder64("0.00E-2", "1", "0.0000", .toNearestOrEven)
+ /* ddrem091 */ self.remainder64("0.00E-3", "1", "0.00000", .toNearestOrEven)
+ /* ddrem092 */ self.remainder64("0.00E-4", "1", "0.000000", .toNearestOrEven)
+ /* ddrem093 */ self.remainder64("0.00E-5", "1", "0E-7", .toNearestOrEven)
+ /* ddrem094 */ self.remainder64("0.00E-6", "1", "0E-8", .toNearestOrEven)
+ /* ddrem095 */ self.remainder64("0.0000E-50", "1", "0E-54", .toNearestOrEven)
+ /* ddrem101 */ self.remainder64("0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem102 */ self.remainder64("0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem103 */ self.remainder64("-0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem104 */ self.remainder64("-0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem105 */ self.remainder64("0.0E5", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem1051 */ self.remainder64("1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem1052 */ self.remainder64("1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem1053 */ self.remainder64("-1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem1054 */ self.remainder64("-1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem1055 */ self.remainder64("1e-277", "1e+311", "1E-277", .toNearestOrEven)
+ /* ddrem1056 */ self.remainder64("1e-277", "-1e+311", "1E-277", .toNearestOrEven)
+ /* ddrem1057 */ self.remainder64("-1e-277", "1e+311", "-1E-277", .toNearestOrEven)
+ /* ddrem1058 */ self.remainder64("-1e-277", "-1e+311", "-1E-277", .toNearestOrEven)
+ /* ddrem106 */ self.remainder64("0.000", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem107 */ self.remainder64("0.0001", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem108 */ self.remainder64("0.01", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem109 */ self.remainder64("0.1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem110 */ self.remainder64("1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem1101 */ self.remainder64("1234567890123456", "1.000000000000001", "0.765432109876546", .toNearestOrEven)
+ /* ddrem1102 */ self.remainder64("1234567890123456", "1.00000000000001", "0.65432109876557", .toNearestOrEven)
+ /* ddrem1103 */ self.remainder64("1234567890123456", "1.0000000000001", "0.5432109876668", .toNearestOrEven)
+ /* ddrem1104 */ self.remainder64("1234567890123455", "4.000000000000001", "2.691358027469137", .toNearestOrEven)
+ /* ddrem1105 */ self.remainder64("1234567890123456", "4.000000000000001", "3.691358027469137", .toNearestOrEven)
+ /* ddrem1106 */ self.remainder64("1234567890123456", "4.9999999999999", "0.6913578024696", .toNearestOrEven)
+ /* ddrem1107 */ self.remainder64("1234567890123456", "4.99999999999999", "3.46913578024691", .toNearestOrEven)
+ /* ddrem1108 */ self.remainder64("1234567890123456", "4.999999999999999", "1.246913578024691", .toNearestOrEven)
+ /* ddrem1109 */ self.remainder64("1234567890123456", "5.000000000000001", "0.753086421975309", .toNearestOrEven)
+ /* ddrem111 */ self.remainder64("1", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem1110 */ self.remainder64("1234567890123456", "5.00000000000001", "3.53086421975310", .toNearestOrEven)
+ /* ddrem1111 */ self.remainder64("1234567890123456", "5.0000000000001", "1.3086421975314", .toNearestOrEven)
+ /* ddrem112 */ self.remainder64("10", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem113 */ self.remainder64("1E+100", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem114 */ self.remainder64("1E+380", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem115 */ self.remainder64("0.0001", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem116 */ self.remainder64("0.01", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem119 */ self.remainder64("0.1", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem120 */ self.remainder64("1", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem121 */ self.remainder64("1", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem122 */ self.remainder64("10", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem123 */ self.remainder64("1E+100", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem124 */ self.remainder64("1E+384", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem130 */ self.remainder64("0", "1", "0", .toNearestOrEven)
+ /* ddrem131 */ self.remainder64("0", "-1", "0", .toNearestOrEven)
+ /* ddrem132 */ self.remainder64("0.0", "1", "0.0", .toNearestOrEven)
+ /* ddrem133 */ self.remainder64("0.0", "-1", "0.0", .toNearestOrEven)
+ /* ddrem134 */ self.remainder64("-0", "1", "-0", .toNearestOrEven)
+ /* ddrem135 */ self.remainder64("-0", "-1", "-0", .toNearestOrEven)
+ /* ddrem136 */ self.remainder64("-0.0", "1", "-0.0", .toNearestOrEven)
+ /* ddrem137 */ self.remainder64("-0.0", "-1", "-0.0", .toNearestOrEven)
+ /* ddrem143 */ self.remainder64("0.5", "2", "0.5", .toNearestOrEven)
+ /* ddrem144 */ self.remainder64("0.5", "2.1", "0.5", .toNearestOrEven)
+ /* ddrem145 */ self.remainder64("0.5", "2.01", "0.50", .toNearestOrEven)
+ /* ddrem146 */ self.remainder64("0.5", "2.001", "0.500", .toNearestOrEven)
+ /* ddrem147 */ self.remainder64("0.50", "2", "0.50", .toNearestOrEven)
+ /* ddrem148 */ self.remainder64("0.50", "2.01", "0.50", .toNearestOrEven)
+ /* ddrem149 */ self.remainder64("0.50", "2.001", "0.500", .toNearestOrEven)
+ /* ddrem150 */ self.remainder64("1", "1", "0", .toNearestOrEven)
+ /* ddrem151 */ self.remainder64("1", "2", "1", .toNearestOrEven)
+ /* ddrem152 */ self.remainder64("1", "3", "1", .toNearestOrEven)
+ /* ddrem153 */ self.remainder64("1", "4", "1", .toNearestOrEven)
+ /* ddrem154 */ self.remainder64("1", "5", "1", .toNearestOrEven)
+ /* ddrem155 */ self.remainder64("1", "6", "1", .toNearestOrEven)
+ /* ddrem156 */ self.remainder64("1", "7", "1", .toNearestOrEven)
+ /* ddrem157 */ self.remainder64("1", "8", "1", .toNearestOrEven)
+ /* ddrem158 */ self.remainder64("1", "9", "1", .toNearestOrEven)
+ /* ddrem159 */ self.remainder64("1", "10", "1", .toNearestOrEven)
+ /* ddrem160 */ self.remainder64("1", "1", "0", .toNearestOrEven)
+ /* ddrem161 */ self.remainder64("2", "1", "0", .toNearestOrEven)
+ /* ddrem162 */ self.remainder64("3", "1", "0", .toNearestOrEven)
+ /* ddrem163 */ self.remainder64("4", "1", "0", .toNearestOrEven)
+ /* ddrem164 */ self.remainder64("5", "1", "0", .toNearestOrEven)
+ /* ddrem165 */ self.remainder64("6", "1", "0", .toNearestOrEven)
+ /* ddrem166 */ self.remainder64("7", "1", "0", .toNearestOrEven)
+ /* ddrem167 */ self.remainder64("8", "1", "0", .toNearestOrEven)
+ /* ddrem168 */ self.remainder64("9", "1", "0", .toNearestOrEven)
+ /* ddrem169 */ self.remainder64("10", "1", "0", .toNearestOrEven)
+ /* ddrem171 */ self.remainder64("0.4", "1.020", "0.400", .toNearestOrEven)
+ /* ddrem172 */ self.remainder64("0.50", "1.020", "0.500", .toNearestOrEven)
+ /* ddrem173 */ self.remainder64("0.51", "1.020", "0.510", .toNearestOrEven)
+ /* ddrem174 */ self.remainder64("0.52", "1.020", "0.520", .toNearestOrEven)
+ /* ddrem175 */ self.remainder64("0.6", "1.020", "0.600", .toNearestOrEven)
+ /* ddrem201 */ self.remainder64("0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem202 */ self.remainder64("0.0E5", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem203 */ self.remainder64("0.000", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem204 */ self.remainder64("0.0001", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem205 */ self.remainder64("0.01", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem206 */ self.remainder64("0.1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem207 */ self.remainder64("1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem208 */ self.remainder64("1", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem209 */ self.remainder64("10", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem210 */ self.remainder64("1E+100", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem211 */ self.remainder64("1E+380", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem231 */ self.remainder64("-0.4", "1.020", "-0.400", .toNearestOrEven)
+ /* ddrem232 */ self.remainder64("-0.50", "1.020", "-0.500", .toNearestOrEven)
+ /* ddrem233 */ self.remainder64("-0.51", "1.020", "-0.510", .toNearestOrEven)
+ /* ddrem234 */ self.remainder64("-0.52", "1.020", "-0.520", .toNearestOrEven)
+ /* ddrem235 */ self.remainder64("-0.6", "1.020", "-0.600", .toNearestOrEven)
+ /* ddrem240 */ self.remainder64("1E+2", "1.00", "0.00", .toNearestOrEven)
+ /* ddrem301 */ self.remainder64("1", "3", "1", .toNearestOrEven)
+ /* ddrem302 */ self.remainder64("5", "5", "0", .toNearestOrEven)
+ /* ddrem303 */ self.remainder64("13", "10", "3", .toNearestOrEven)
+ /* ddrem304 */ self.remainder64("13", "50", "13", .toNearestOrEven)
+ /* ddrem305 */ self.remainder64("13", "100", "13", .toNearestOrEven)
+ /* ddrem306 */ self.remainder64("13", "1000", "13", .toNearestOrEven)
+ /* ddrem307 */ self.remainder64(".13", "1", "0.13", .toNearestOrEven)
+ /* ddrem308 */ self.remainder64("0.133", "1", "0.133", .toNearestOrEven)
+ /* ddrem309 */ self.remainder64("0.1033", "1", "0.1033", .toNearestOrEven)
+ /* ddrem310 */ self.remainder64("1.033", "1", "0.033", .toNearestOrEven)
+ /* ddrem311 */ self.remainder64("10.33", "1", "0.33", .toNearestOrEven)
+ /* ddrem312 */ self.remainder64("10.33", "10", "0.33", .toNearestOrEven)
+ /* ddrem313 */ self.remainder64("103.3", "1", "0.3", .toNearestOrEven)
+ /* ddrem314 */ self.remainder64("133", "10", "3", .toNearestOrEven)
+ /* ddrem315 */ self.remainder64("1033", "10", "3", .toNearestOrEven)
+ /* ddrem316 */ self.remainder64("1033", "50", "33", .toNearestOrEven)
+ /* ddrem317 */ self.remainder64("101.0", "3", "2.0", .toNearestOrEven)
+ /* ddrem318 */ self.remainder64("102.0", "3", "0.0", .toNearestOrEven)
+ /* ddrem319 */ self.remainder64("103.0", "3", "1.0", .toNearestOrEven)
+ /* ddrem320 */ self.remainder64("2.40", "1", "0.40", .toNearestOrEven)
+ /* ddrem321 */ self.remainder64("2.400", "1", "0.400", .toNearestOrEven)
+ /* ddrem322 */ self.remainder64("2.4", "1", "0.4", .toNearestOrEven)
+ /* ddrem323 */ self.remainder64("2.4", "2", "0.4", .toNearestOrEven)
+ /* ddrem324 */ self.remainder64("2.400", "2", "0.400", .toNearestOrEven)
+ /* ddrem325 */ self.remainder64("1", "0.3", "0.1", .toNearestOrEven)
+ /* ddrem326 */ self.remainder64("1", "0.30", "0.10", .toNearestOrEven)
+ /* ddrem327 */ self.remainder64("1", "0.300", "0.100", .toNearestOrEven)
+ /* ddrem328 */ self.remainder64("1", "0.3000", "0.1000", .toNearestOrEven)
+ /* ddrem329 */ self.remainder64("1.0", "0.3", "0.1", .toNearestOrEven)
+ /* ddrem330 */ self.remainder64("1.00", "0.3", "0.10", .toNearestOrEven)
+ /* ddrem331 */ self.remainder64("1.000", "0.3", "0.100", .toNearestOrEven)
+ /* ddrem332 */ self.remainder64("1.0000", "0.3", "0.1000", .toNearestOrEven)
+ /* ddrem333 */ self.remainder64("0.5", "2", "0.5", .toNearestOrEven)
+ /* ddrem334 */ self.remainder64("0.5", "2.1", "0.5", .toNearestOrEven)
+ /* ddrem335 */ self.remainder64("0.5", "2.01", "0.50", .toNearestOrEven)
+ /* ddrem336 */ self.remainder64("0.5", "2.001", "0.500", .toNearestOrEven)
+ /* ddrem337 */ self.remainder64("0.50", "2", "0.50", .toNearestOrEven)
+ /* ddrem338 */ self.remainder64("0.50", "2.01", "0.50", .toNearestOrEven)
+ /* ddrem339 */ self.remainder64("0.50", "2.001", "0.500", .toNearestOrEven)
+ /* ddrem340 */ self.remainder64("0.5", "0.5000001", "0.5000000", .toNearestOrEven)
+ /* ddrem341 */ self.remainder64("0.5", "0.50000001", "0.50000000", .toNearestOrEven)
+ /* ddrem342 */ self.remainder64("0.5", "0.500000001", "0.500000000", .toNearestOrEven)
+ /* ddrem343 */ self.remainder64("0.5", "0.5000000001", "0.5000000000", .toNearestOrEven)
+ /* ddrem344 */ self.remainder64("0.5", "0.50000000001", "0.50000000000", .toNearestOrEven)
+ /* ddrem345 */ self.remainder64("0.5", "0.4999999", "1E-7", .toNearestOrEven)
+ /* ddrem346 */ self.remainder64("0.5", "0.49999999", "1E-8", .toNearestOrEven)
+ /* ddrem347 */ self.remainder64("0.5", "0.499999999", "1E-9", .toNearestOrEven)
+ /* ddrem348 */ self.remainder64("0.5", "0.4999999999", "1E-10", .toNearestOrEven)
+ /* ddrem349 */ self.remainder64("0.5", "0.49999999999", "1E-11", .toNearestOrEven)
+ /* ddrem350 */ self.remainder64("0.5", "0.499999999999", "1E-12", .toNearestOrEven)
+ /* ddrem351 */ self.remainder64("0.03", "7", "0.03", .toNearestOrEven)
+ /* ddrem352 */ self.remainder64("5", "2", "1", .toNearestOrEven)
+ /* ddrem353 */ self.remainder64("4.1", "2", "0.1", .toNearestOrEven)
+ /* ddrem354 */ self.remainder64("4.01", "2", "0.01", .toNearestOrEven)
+ /* ddrem355 */ self.remainder64("4.001", "2", "0.001", .toNearestOrEven)
+ /* ddrem356 */ self.remainder64("4.0001", "2", "0.0001", .toNearestOrEven)
+ /* ddrem357 */ self.remainder64("4.00001", "2", "0.00001", .toNearestOrEven)
+ /* ddrem358 */ self.remainder64("4.000001", "2", "0.000001", .toNearestOrEven)
+ /* ddrem359 */ self.remainder64("4.0000001", "2", "1E-7", .toNearestOrEven)
+ /* ddrem360 */ self.remainder64("1.2", "0.7345", "0.4655", .toNearestOrEven)
+ /* ddrem361 */ self.remainder64("0.8", "12", "0.8", .toNearestOrEven)
+ /* ddrem362 */ self.remainder64("0.8", "0.2", "0.0", .toNearestOrEven)
+ /* ddrem363 */ self.remainder64("0.8", "0.3", "0.2", .toNearestOrEven)
+ /* ddrem364 */ self.remainder64("0.800", "12", "0.800", .toNearestOrEven)
+ /* ddrem365 */ self.remainder64("0.800", "1.7", "0.800", .toNearestOrEven)
+ /* ddrem366 */ self.remainder64("2.400", "2", "0.400", .toNearestOrEven)
+ /* ddrem371 */ self.remainder64("2.400", "2", "0.400", .toNearestOrEven)
+ /* ddrem381 */ self.remainder64("12345", "1", "0", .toNearestOrEven)
+ /* ddrem382 */ self.remainder64("12345", "1.0001", "0.7657", .toNearestOrEven)
+ /* ddrem383 */ self.remainder64("12345", "1.001", "0.668", .toNearestOrEven)
+ /* ddrem384 */ self.remainder64("12345", "1.01", "0.78", .toNearestOrEven)
+ /* ddrem385 */ self.remainder64("12345", "1.1", "0.8", .toNearestOrEven)
+ /* ddrem386 */ self.remainder64("12355", "4", "3", .toNearestOrEven)
+ /* ddrem387 */ self.remainder64("12345", "4", "1", .toNearestOrEven)
+ /* ddrem388 */ self.remainder64("12355", "4.0001", "2.6912", .toNearestOrEven)
+ /* ddrem389 */ self.remainder64("12345", "4.0001", "0.6914", .toNearestOrEven)
+ /* ddrem390 */ self.remainder64("12345", "4.9", "1.9", .toNearestOrEven)
+ /* ddrem391 */ self.remainder64("12345", "4.99", "4.73", .toNearestOrEven)
+ /* ddrem392 */ self.remainder64("12345", "4.999", "2.469", .toNearestOrEven)
+ /* ddrem393 */ self.remainder64("12345", "4.9999", "0.2469", .toNearestOrEven)
+ /* ddrem394 */ self.remainder64("12345", "5", "0", .toNearestOrEven)
+ /* ddrem395 */ self.remainder64("12345", "5.0001", "4.7532", .toNearestOrEven)
+ /* ddrem396 */ self.remainder64("12345", "5.001", "2.532", .toNearestOrEven)
+ /* ddrem397 */ self.remainder64("12345", "5.01", "0.36", .toNearestOrEven)
+ /* ddrem398 */ self.remainder64("12345", "5.1", "3.0", .toNearestOrEven)
+ /* ddrem401 */ self.remainder64("0.5", "1", "0.5", .toNearestOrEven)
+ /* ddrem402 */ self.remainder64("0.55", "1", "0.55", .toNearestOrEven)
+ /* ddrem403 */ self.remainder64("0.555", "1", "0.555", .toNearestOrEven)
+ /* ddrem404 */ self.remainder64("0.5555", "1", "0.5555", .toNearestOrEven)
+ /* ddrem405 */ self.remainder64("0.55555", "1", "0.55555", .toNearestOrEven)
+ /* ddrem406 */ self.remainder64("0.555555", "1", "0.555555", .toNearestOrEven)
+ /* ddrem407 */ self.remainder64("0.5555555", "1", "0.5555555", .toNearestOrEven)
+ /* ddrem408 */ self.remainder64("0.55555555", "1", "0.55555555", .toNearestOrEven)
+ /* ddrem409 */ self.remainder64("0.555555555", "1", "0.555555555", .toNearestOrEven)
+ /* ddrem421 */ self.remainder64("1E+384", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem422 */ self.remainder64("1E+384", "1E+383", "0E+369", .toNearestOrEven)
+ /* ddrem423 */ self.remainder64("1E+384", "2E+383", "0E+369", .toNearestOrEven)
+ /* ddrem424 */ self.remainder64("1E+384", "3E+383", "1.00000000000000E+383", .toNearestOrEven)
+ /* ddrem425 */ self.remainder64("1E+384", "4E+383", "2.00000000000000E+383", .toNearestOrEven)
+ /* ddrem426 */ self.remainder64("1E+384", "5E+383", "0E+369", .toNearestOrEven)
+ /* ddrem427 */ self.remainder64("1E+384", "6E+383", "4.00000000000000E+383", .toNearestOrEven)
+ /* ddrem428 */ self.remainder64("1E+384", "7E+383", "3.00000000000000E+383", .toNearestOrEven)
+ /* ddrem429 */ self.remainder64("1E+384", "8E+383", "2.00000000000000E+383", .toNearestOrEven)
+ /* ddrem430 */ self.remainder64("1E+384", "9E+383", "1.00000000000000E+383", .toNearestOrEven)
+ /* ddrem431 */ self.remainder64("1E-397", "1E-398", "0E-398", .toNearestOrEven)
+ /* ddrem432 */ self.remainder64("1E-397", "2E-398", "0E-398", .toNearestOrEven)
+ /* ddrem433 */ self.remainder64("1E-397", "3E-398", "1E-398", .toNearestOrEven)
+ /* ddrem434 */ self.remainder64("1E-397", "4E-398", "2E-398", .toNearestOrEven)
+ /* ddrem435 */ self.remainder64("1E-397", "5E-398", "0E-398", .toNearestOrEven)
+ /* ddrem436 */ self.remainder64("1E-397", "6E-398", "4E-398", .toNearestOrEven)
+ /* ddrem437 */ self.remainder64("1E-397", "7E-398", "3E-398", .toNearestOrEven)
+ /* ddrem438 */ self.remainder64("1E-397", "8E-398", "2E-398", .toNearestOrEven)
+ /* ddrem439 */ self.remainder64("1E-397", "9E-398", "1E-398", .toNearestOrEven)
+ /* ddrem440 */ self.remainder64("1E-397", "10E-398", "0E-398", .toNearestOrEven)
+ /* ddrem441 */ self.remainder64("1E-397", "11E-398", "1.0E-397", .toNearestOrEven)
+ /* ddrem442 */ self.remainder64("100E-397", "11E-398", "1.0E-397", .toNearestOrEven)
+ /* ddrem443 */ self.remainder64("100E-397", "20E-398", "0E-398", .toNearestOrEven)
+ /* ddrem444 */ self.remainder64("100E-397", "21E-398", "1.3E-397", .toNearestOrEven)
+ /* ddrem445 */ self.remainder64("100E-397", "30E-398", "1.0E-397", .toNearestOrEven)
+ /* ddrem650 */ self.remainder64("1", "1", "0", .toNearestOrEven)
+ /* ddrem651 */ self.remainder64("-1", "1", "-0", .toNearestOrEven)
+ /* ddrem652 */ self.remainder64("1", "-1", "0", .toNearestOrEven)
+ /* ddrem653 */ self.remainder64("-1", "-1", "-0", .toNearestOrEven)
+ /* ddrem654 */ self.remainder64("0", "1", "0", .toNearestOrEven)
+ /* ddrem655 */ self.remainder64("-0", "1", "-0", .toNearestOrEven)
+ /* ddrem656 */ self.remainder64("0", "-1", "0", .toNearestOrEven)
+ /* ddrem657 */ self.remainder64("-0", "-1", "-0", .toNearestOrEven)
+ /* ddrem658 */ self.remainder64("0.00", "1", "0.00", .toNearestOrEven)
+ /* ddrem659 */ self.remainder64("-0.00", "1", "-0.00", .toNearestOrEven)
+ /* ddrem680 */ self.remainder64("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem681 */ self.remainder64("Inf", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem682 */ self.remainder64("Inf", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem683 */ self.remainder64("Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem684 */ self.remainder64("Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem685 */ self.remainder64("Inf", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem686 */ self.remainder64("Inf", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem687 */ self.remainder64("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem688 */ self.remainder64("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* ddrem689 */ self.remainder64("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem691 */ self.remainder64("-1", "Inf", "-1", .toNearestOrEven)
+ /* ddrem692 */ self.remainder64("0", "Inf", "0", .toNearestOrEven)
+ /* ddrem693 */ self.remainder64("-0", "Inf", "-0", .toNearestOrEven)
+ /* ddrem694 */ self.remainder64("1", "Inf", "1", .toNearestOrEven)
+ /* ddrem695 */ self.remainder64("1000", "Inf", "1000", .toNearestOrEven)
+ /* ddrem696 */ self.remainder64("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem700 */ self.remainder64("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem701 */ self.remainder64("-Inf", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem702 */ self.remainder64("-Inf", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem703 */ self.remainder64("-Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem704 */ self.remainder64("-Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem705 */ self.remainder64("-Inf", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem706 */ self.remainder64("-Inf", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem707 */ self.remainder64("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem708 */ self.remainder64("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem709 */ self.remainder64("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* ddrem710 */ self.remainder64("-1", "-Inf", "-1", .toNearestOrEven)
+ /* ddrem711 */ self.remainder64("-0", "-Inf", "-0", .toNearestOrEven)
+ /* ddrem712 */ self.remainder64("0", "-Inf", "0", .toNearestOrEven)
+ /* ddrem713 */ self.remainder64("1", "-Inf", "1", .toNearestOrEven)
+ /* ddrem714 */ self.remainder64("1000", "-Inf", "1000", .toNearestOrEven)
+ /* ddrem715 */ self.remainder64("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem721 */ self.remainder64("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* ddrem722 */ self.remainder64("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* ddrem723 */ self.remainder64("NaN", "-1", "NaN", .toNearestOrEven)
+ /* ddrem724 */ self.remainder64("NaN", "-0", "NaN", .toNearestOrEven)
+ /* ddrem725 */ self.remainder64("-NaN", "0", "-NaN", .toNearestOrEven)
+ /* ddrem726 */ self.remainder64("NaN", "1", "NaN", .toNearestOrEven)
+ /* ddrem727 */ self.remainder64("NaN", "1000", "NaN", .toNearestOrEven)
+ /* ddrem728 */ self.remainder64("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* ddrem729 */ self.remainder64("NaN", "-NaN", "NaN", .toNearestOrEven)
+ /* ddrem730 */ self.remainder64("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddrem731 */ self.remainder64("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddrem732 */ self.remainder64("-1", "NaN", "NaN", .toNearestOrEven)
+ /* ddrem733 */ self.remainder64("-0", "-NaN", "-NaN", .toNearestOrEven)
+ /* ddrem734 */ self.remainder64("0", "NaN", "NaN", .toNearestOrEven)
+ /* ddrem735 */ self.remainder64("1", "-NaN", "-NaN", .toNearestOrEven)
+ /* ddrem736 */ self.remainder64("1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddrem737 */ self.remainder64("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddrem741 */ self.remainder64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem742 */ self.remainder64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem743 */ self.remainder64("-sNaN", "-1", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem744 */ self.remainder64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem745 */ self.remainder64("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem746 */ self.remainder64("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem747 */ self.remainder64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem749 */ self.remainder64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem750 */ self.remainder64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem751 */ self.remainder64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem752 */ self.remainder64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem753 */ self.remainder64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem754 */ self.remainder64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem755 */ self.remainder64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem756 */ self.remainder64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem757 */ self.remainder64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem758 */ self.remainder64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem759 */ self.remainder64("Inf", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem760 */ self.remainder64("NaN(0x1)", "NaN(0x7)", "NaN(0x1)", .toNearestOrEven)
+ /* ddrem761 */ self.remainder64("sNaN(0x2)", "NaN(0x8)", "NaN(0x2)", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem762 */ self.remainder64("NaN(0x3)", "sNaN(0x9)", "NaN(0x9)", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem763 */ self.remainder64("sNaN(0x4)", "sNaN(0xa)", "NaN(0x4)", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem764 */ self.remainder64("15", "NaN(0xb)", "NaN(0xb)", .toNearestOrEven)
+ /* ddrem765 */ self.remainder64("NaN(0x6)", "NaN(0xc)", "NaN(0x6)", .toNearestOrEven)
+ /* ddrem766 */ self.remainder64("Inf", "NaN(0xd)", "NaN(0xd)", .toNearestOrEven)
+ /* ddrem767 */ self.remainder64("NaN(0xe)", "-Inf", "NaN(0xe)", .toNearestOrEven)
+ /* ddrem768 */ self.remainder64("0", "NaN(0xf)", "NaN(0xf)", .toNearestOrEven)
+ /* ddrem769 */ self.remainder64("NaN(0x10)", "-0", "NaN(0x10)", .toNearestOrEven)
+ /* ddrem770 */ self.remainder64("1234567890123456", "10", "6", .toNearestOrEven)
+ /* ddrem771 */ self.remainder64("1234567890123456", "1", "0", .toNearestOrEven)
+ /* ddrem772 */ self.remainder64("1234567890123456", "0.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem773 */ self.remainder64("1234567890123456", "0.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrem801 */ self.remainder64("12345678000", "100", "0", .toNearestOrEven)
+ /* ddrem802 */ self.remainder64("1", "12345678000", "1", .toNearestOrEven)
+ /* ddrem803 */ self.remainder64("1234567800", "10", "0", .toNearestOrEven)
+ /* ddrem804 */ self.remainder64("1", "1234567800", "1", .toNearestOrEven)
+ /* ddrem805 */ self.remainder64("1234567890", "10", "0", .toNearestOrEven)
+ /* ddrem806 */ self.remainder64("1", "1234567890", "1", .toNearestOrEven)
+ /* ddrem807 */ self.remainder64("1234567891", "10", "1", .toNearestOrEven)
+ /* ddrem808 */ self.remainder64("1", "1234567891", "1", .toNearestOrEven)
+ /* ddrem809 */ self.remainder64("12345678901", "100", "1", .toNearestOrEven)
+ /* ddrem810 */ self.remainder64("1", "12345678901", "1", .toNearestOrEven)
+ /* ddrem811 */ self.remainder64("1234567896", "10", "6", .toNearestOrEven)
+ /* ddrem812 */ self.remainder64("1", "1234567896", "1", .toNearestOrEven)
+ /* ddrem821 */ self.remainder64("12345678000", "100", "0", .toNearestOrEven)
+ /* ddrem822 */ self.remainder64("1", "12345678000", "1", .toNearestOrEven)
+ /* ddrem823 */ self.remainder64("1234567800", "10", "0", .toNearestOrEven)
+ /* ddrem824 */ self.remainder64("1", "1234567800", "1", .toNearestOrEven)
+ /* ddrem825 */ self.remainder64("1234567890", "10", "0", .toNearestOrEven)
+ /* ddrem826 */ self.remainder64("1", "1234567890", "1", .toNearestOrEven)
+ /* ddrem827 */ self.remainder64("1234567891", "10", "1", .toNearestOrEven)
+ /* ddrem828 */ self.remainder64("1", "1234567891", "1", .toNearestOrEven)
+ /* ddrem829 */ self.remainder64("12345678901", "100", "1", .toNearestOrEven)
+ /* ddrem830 */ self.remainder64("1", "12345678901", "1", .toNearestOrEven)
+ /* ddrem831 */ self.remainder64("1234567896", "10", "6", .toNearestOrEven)
+ /* ddrem832 */ self.remainder64("1", "1234567896", "1", .toNearestOrEven)
+ /* ddrem840 */ self.remainder64("100000000.0", "1", "0.0", .toNearestOrEven)
+ /* ddrem841 */ self.remainder64("100000000.4", "1", "0.4", .toNearestOrEven)
+ /* ddrem842 */ self.remainder64("100000000.5", "1", "0.5", .toNearestOrEven)
+ /* ddrem843 */ self.remainder64("100000000.9", "1", "0.9", .toNearestOrEven)
+ /* ddrem844 */ self.remainder64("100000000.999", "1", "0.999", .toNearestOrEven)
+ /* ddrem850 */ self.remainder64("100000003", "5", "3", .toNearestOrEven)
+ /* ddrem851 */ self.remainder64("10000003", "5", "3", .toNearestOrEven)
+ /* ddrem852 */ self.remainder64("1000003", "5", "3", .toNearestOrEven)
+ /* ddrem853 */ self.remainder64("100003", "5", "3", .toNearestOrEven)
+ /* ddrem854 */ self.remainder64("10003", "5", "3", .toNearestOrEven)
+ /* ddrem855 */ self.remainder64("1003", "5", "3", .toNearestOrEven)
+ /* ddrem856 */ self.remainder64("103", "5", "3", .toNearestOrEven)
+ /* ddrem857 */ self.remainder64("13", "5", "3", .toNearestOrEven)
+ /* ddrem858 */ self.remainder64("1", "5", "1", .toNearestOrEven)
+ /* ddrem860 */ self.remainder64("123.0e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrem861 */ self.remainder64("1230", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrem862 */ self.remainder64("12.3e2", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrem863 */ self.remainder64("1.23e3", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrem864 */ self.remainder64("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrem870 */ self.remainder64("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrem871 */ self.remainder64("123e1", "100000000000000", "1230", .toNearestOrEven)
+ /* ddrem872 */ self.remainder64("123e1", "10000000000000", "1230", .toNearestOrEven)
+ /* ddrem873 */ self.remainder64("123e1", "1000000000000", "1230", .toNearestOrEven)
+ /* ddrem874 */ self.remainder64("123e1", "100000000000", "1230", .toNearestOrEven)
+ /* ddrem875 */ self.remainder64("123e1", "10000000000", "1230", .toNearestOrEven)
+ /* ddrem876 */ self.remainder64("123e1", "1000000000", "1230", .toNearestOrEven)
+ /* ddrem877 */ self.remainder64("123e1", "100000000", "1230", .toNearestOrEven)
+ /* ddrem878 */ self.remainder64("1230", "100000000", "1230", .toNearestOrEven)
+ /* ddrem879 */ self.remainder64("123e1", "10000000", "1230", .toNearestOrEven)
+ /* ddrem880 */ self.remainder64("123e1", "1000000", "1230", .toNearestOrEven)
+ /* ddrem881 */ self.remainder64("123e1", "100000", "1230", .toNearestOrEven)
+ /* ddrem882 */ self.remainder64("123e1", "10000", "1230", .toNearestOrEven)
+ /* ddrem883 */ self.remainder64("123e1", "1000", "230", .toNearestOrEven)
+ /* ddrem884 */ self.remainder64("123e1", "100", "30", .toNearestOrEven)
+ /* ddrem885 */ self.remainder64("123e1", "10", "0", .toNearestOrEven)
+ /* ddrem886 */ self.remainder64("123e1", "1", "0", .toNearestOrEven)
+ /* ddrem890 */ self.remainder64("123e1", "2000000000000000", "1230", .toNearestOrEven)
+ /* ddrem891 */ self.remainder64("123e1", "200000000000000", "1230", .toNearestOrEven)
+ /* ddrem892 */ self.remainder64("123e1", "20000000000000", "1230", .toNearestOrEven)
+ /* ddrem893 */ self.remainder64("123e1", "2000000000000", "1230", .toNearestOrEven)
+ /* ddrem894 */ self.remainder64("123e1", "200000000000", "1230", .toNearestOrEven)
+ /* ddrem895 */ self.remainder64("123e1", "20000000000", "1230", .toNearestOrEven)
+ /* ddrem896 */ self.remainder64("123e1", "2000000000", "1230", .toNearestOrEven)
+ /* ddrem897 */ self.remainder64("123e1", "200000000", "1230", .toNearestOrEven)
+ /* ddrem899 */ self.remainder64("123e1", "20000000", "1230", .toNearestOrEven)
+ /* ddrem900 */ self.remainder64("123e1", "2000000", "1230", .toNearestOrEven)
+ /* ddrem901 */ self.remainder64("123e1", "200000", "1230", .toNearestOrEven)
+ /* ddrem902 */ self.remainder64("123e1", "20000", "1230", .toNearestOrEven)
+ /* ddrem903 */ self.remainder64("123e1", "2000", "1230", .toNearestOrEven)
+ /* ddrem904 */ self.remainder64("123e1", "200", "30", .toNearestOrEven)
+ /* ddrem905 */ self.remainder64("123e1", "20", "10", .toNearestOrEven)
+ /* ddrem906 */ self.remainder64("123e1", "2", "0", .toNearestOrEven)
+ /* ddrem910 */ self.remainder64("123e1", "5000000000000000", "1230", .toNearestOrEven)
+ /* ddrem911 */ self.remainder64("123e1", "500000000000000", "1230", .toNearestOrEven)
+ /* ddrem912 */ self.remainder64("123e1", "50000000000000", "1230", .toNearestOrEven)
+ /* ddrem913 */ self.remainder64("123e1", "5000000000000", "1230", .toNearestOrEven)
+ /* ddrem914 */ self.remainder64("123e1", "500000000000", "1230", .toNearestOrEven)
+ /* ddrem915 */ self.remainder64("123e1", "50000000000", "1230", .toNearestOrEven)
+ /* ddrem916 */ self.remainder64("123e1", "5000000000", "1230", .toNearestOrEven)
+ /* ddrem917 */ self.remainder64("123e1", "500000000", "1230", .toNearestOrEven)
+ /* ddrem919 */ self.remainder64("123e1", "50000000", "1230", .toNearestOrEven)
+ /* ddrem920 */ self.remainder64("123e1", "5000000", "1230", .toNearestOrEven)
+ /* ddrem921 */ self.remainder64("123e1", "500000", "1230", .toNearestOrEven)
+ /* ddrem922 */ self.remainder64("123e1", "50000", "1230", .toNearestOrEven)
+ /* ddrem923 */ self.remainder64("123e1", "5000", "1230", .toNearestOrEven)
+ /* ddrem924 */ self.remainder64("123e1", "500", "230", .toNearestOrEven)
+ /* ddrem925 */ self.remainder64("123e1", "50", "30", .toNearestOrEven)
+ /* ddrem926 */ self.remainder64("123e1", "5", "0", .toNearestOrEven)
+ /* ddrem930 */ self.remainder64("123e1", "9000000000000000", "1230", .toNearestOrEven)
+ /* ddrem931 */ self.remainder64("123e1", "900000000000000", "1230", .toNearestOrEven)
+ /* ddrem932 */ self.remainder64("123e1", "90000000000000", "1230", .toNearestOrEven)
+ /* ddrem933 */ self.remainder64("123e1", "9000000000000", "1230", .toNearestOrEven)
+ /* ddrem934 */ self.remainder64("123e1", "900000000000", "1230", .toNearestOrEven)
+ /* ddrem935 */ self.remainder64("123e1", "90000000000", "1230", .toNearestOrEven)
+ /* ddrem936 */ self.remainder64("123e1", "9000000000", "1230", .toNearestOrEven)
+ /* ddrem937 */ self.remainder64("123e1", "900000000", "1230", .toNearestOrEven)
+ /* ddrem939 */ self.remainder64("123e1", "90000000", "1230", .toNearestOrEven)
+ /* ddrem940 */ self.remainder64("123e1", "9000000", "1230", .toNearestOrEven)
+ /* ddrem941 */ self.remainder64("123e1", "900000", "1230", .toNearestOrEven)
+ /* ddrem942 */ self.remainder64("123e1", "90000", "1230", .toNearestOrEven)
+ /* ddrem943 */ self.remainder64("123e1", "9000", "1230", .toNearestOrEven)
+ /* ddrem944 */ self.remainder64("123e1", "900", "330", .toNearestOrEven)
+ /* ddrem945 */ self.remainder64("123e1", "90", "60", .toNearestOrEven)
+ /* ddrem946 */ self.remainder64("123e1", "9", "6", .toNearestOrEven)
+ /* ddrem950 */ self.remainder64("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrem961 */ self.remainder64("123e1", "2999999999999999", "1230", .toNearestOrEven)
+ /* ddrem962 */ self.remainder64("123e1", "3999999999999999", "1230", .toNearestOrEven)
+ /* ddrem963 */ self.remainder64("123e1", "4999999999999999", "1230", .toNearestOrEven)
+ /* ddrem964 */ self.remainder64("123e1", "5999999999999999", "1230", .toNearestOrEven)
+ /* ddrem965 */ self.remainder64("123e1", "6999999999999999", "1230", .toNearestOrEven)
+ /* ddrem966 */ self.remainder64("123e1", "7999999999999999", "1230", .toNearestOrEven)
+ /* ddrem967 */ self.remainder64("123e1", "8999999999999999", "1230", .toNearestOrEven)
+ /* ddrem968 */ self.remainder64("123e1", "9999999999999999", "1230", .toNearestOrEven)
+ /* ddrem969 */ self.remainder64("123e1", "9876543210987654", "1230", .toNearestOrEven)
+ /* ddrem980 */ self.remainder64("123e1", "1000E299", "1.23E+3", .toNearestOrEven)
+ }
+
+ private func remainder64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.truncatingRemainder(dividingBy: arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_rem(arg0, arg1, result: result, status: &status)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+
+ let result2 = self.truncatingRemainderFromReminder(arg0, dividingBy: arg1)
+ self.assertEqual(result2, expected, file, line)
+ }
+
+ func test_remainder128() {
+ /* dqrem001 */ self.remainder128("1", "1", "0", .toNearestOrEven)
+ /* dqrem002 */ self.remainder128("2", "1", "0", .toNearestOrEven)
+ /* dqrem003 */ self.remainder128("1", "2", "1", .toNearestOrEven)
+ /* dqrem004 */ self.remainder128("2", "2", "0", .toNearestOrEven)
+ /* dqrem005 */ self.remainder128("0", "1", "0", .toNearestOrEven)
+ /* dqrem006 */ self.remainder128("0", "2", "0", .toNearestOrEven)
+ /* dqrem007 */ self.remainder128("1", "3", "1", .toNearestOrEven)
+ /* dqrem008 */ self.remainder128("2", "3", "2", .toNearestOrEven)
+ /* dqrem009 */ self.remainder128("3", "3", "0", .toNearestOrEven)
+ /* dqrem010 */ self.remainder128("2.4", "1", "0.4", .toNearestOrEven)
+ /* dqrem011 */ self.remainder128("2.4", "-1", "0.4", .toNearestOrEven)
+ /* dqrem012 */ self.remainder128("-2.4", "1", "-0.4", .toNearestOrEven)
+ /* dqrem013 */ self.remainder128("-2.4", "-1", "-0.4", .toNearestOrEven)
+ /* dqrem014 */ self.remainder128("2.40", "1", "0.40", .toNearestOrEven)
+ /* dqrem015 */ self.remainder128("2.400", "1", "0.400", .toNearestOrEven)
+ /* dqrem016 */ self.remainder128("2.4", "2", "0.4", .toNearestOrEven)
+ /* dqrem017 */ self.remainder128("2.400", "2", "0.400", .toNearestOrEven)
+ /* dqrem018 */ self.remainder128("2.", "2", "0", .toNearestOrEven)
+ /* dqrem019 */ self.remainder128("20", "20", "0", .toNearestOrEven)
+ /* dqrem020 */ self.remainder128("187", "187", "0", .toNearestOrEven)
+ /* dqrem021 */ self.remainder128("5", "2", "1", .toNearestOrEven)
+ /* dqrem022 */ self.remainder128("5", "2.0", "1.0", .toNearestOrEven)
+ /* dqrem023 */ self.remainder128("5", "2.000", "1.000", .toNearestOrEven)
+ /* dqrem024 */ self.remainder128("5", "0.200", "0.000", .toNearestOrEven)
+ /* dqrem025 */ self.remainder128("5", "0.200", "0.000", .toNearestOrEven)
+ /* dqrem030 */ self.remainder128("1", "2", "1", .toNearestOrEven)
+ /* dqrem031 */ self.remainder128("1", "4", "1", .toNearestOrEven)
+ /* dqrem032 */ self.remainder128("1", "8", "1", .toNearestOrEven)
+ /* dqrem033 */ self.remainder128("1", "16", "1", .toNearestOrEven)
+ /* dqrem034 */ self.remainder128("1", "32", "1", .toNearestOrEven)
+ /* dqrem035 */ self.remainder128("1", "64", "1", .toNearestOrEven)
+ /* dqrem040 */ self.remainder128("1", "-2", "1", .toNearestOrEven)
+ /* dqrem041 */ self.remainder128("1", "-4", "1", .toNearestOrEven)
+ /* dqrem042 */ self.remainder128("1", "-8", "1", .toNearestOrEven)
+ /* dqrem043 */ self.remainder128("1", "-16", "1", .toNearestOrEven)
+ /* dqrem044 */ self.remainder128("1", "-32", "1", .toNearestOrEven)
+ /* dqrem045 */ self.remainder128("1", "-64", "1", .toNearestOrEven)
+ /* dqrem050 */ self.remainder128("-1", "2", "-1", .toNearestOrEven)
+ /* dqrem051 */ self.remainder128("-1", "4", "-1", .toNearestOrEven)
+ /* dqrem052 */ self.remainder128("-1", "8", "-1", .toNearestOrEven)
+ /* dqrem053 */ self.remainder128("-1", "16", "-1", .toNearestOrEven)
+ /* dqrem054 */ self.remainder128("-1", "32", "-1", .toNearestOrEven)
+ /* dqrem055 */ self.remainder128("-1", "64", "-1", .toNearestOrEven)
+ /* dqrem060 */ self.remainder128("-1", "-2", "-1", .toNearestOrEven)
+ /* dqrem061 */ self.remainder128("-1", "-4", "-1", .toNearestOrEven)
+ /* dqrem062 */ self.remainder128("-1", "-8", "-1", .toNearestOrEven)
+ /* dqrem063 */ self.remainder128("-1", "-16", "-1", .toNearestOrEven)
+ /* dqrem064 */ self.remainder128("-1", "-32", "-1", .toNearestOrEven)
+ /* dqrem065 */ self.remainder128("-1", "-64", "-1", .toNearestOrEven)
+ /* dqrem066 */ self.remainder128("999999999", "1", "0", .toNearestOrEven)
+ /* dqrem067 */ self.remainder128("999999999.4", "1", "0.4", .toNearestOrEven)
+ /* dqrem068 */ self.remainder128("999999999.5", "1", "0.5", .toNearestOrEven)
+ /* dqrem069 */ self.remainder128("999999999.9", "1", "0.9", .toNearestOrEven)
+ /* dqrem070 */ self.remainder128("999999999.999", "1", "0.999", .toNearestOrEven)
+ /* dqrem071 */ self.remainder128("999999.999999", "1", "0.999999", .toNearestOrEven)
+ /* dqrem072 */ self.remainder128("9", "1", "0", .toNearestOrEven)
+ /* dqrem080 */ self.remainder128("0.", "1", "0", .toNearestOrEven)
+ /* dqrem081 */ self.remainder128(".0", "1", "0.0", .toNearestOrEven)
+ /* dqrem082 */ self.remainder128("0.00", "1", "0.00", .toNearestOrEven)
+ /* dqrem083 */ self.remainder128("0.00E+9", "1", "0", .toNearestOrEven)
+ /* dqrem084 */ self.remainder128("0.00E+3", "1", "0", .toNearestOrEven)
+ /* dqrem085 */ self.remainder128("0.00E+2", "1", "0", .toNearestOrEven)
+ /* dqrem086 */ self.remainder128("0.00E+1", "1", "0.0", .toNearestOrEven)
+ /* dqrem087 */ self.remainder128("0.00E+0", "1", "0.00", .toNearestOrEven)
+ /* dqrem088 */ self.remainder128("0.00E-0", "1", "0.00", .toNearestOrEven)
+ /* dqrem089 */ self.remainder128("0.00E-1", "1", "0.000", .toNearestOrEven)
+ /* dqrem090 */ self.remainder128("0.00E-2", "1", "0.0000", .toNearestOrEven)
+ /* dqrem091 */ self.remainder128("0.00E-3", "1", "0.00000", .toNearestOrEven)
+ /* dqrem092 */ self.remainder128("0.00E-4", "1", "0.000000", .toNearestOrEven)
+ /* dqrem093 */ self.remainder128("0.00E-5", "1", "0E-7", .toNearestOrEven)
+ /* dqrem094 */ self.remainder128("0.00E-6", "1", "0E-8", .toNearestOrEven)
+ /* dqrem095 */ self.remainder128("0.0000E-50", "1", "0E-54", .toNearestOrEven)
+ /* dqrem101 */ self.remainder128("0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem102 */ self.remainder128("0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem103 */ self.remainder128("-0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem104 */ self.remainder128("-0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem105 */ self.remainder128("0.0E5", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem1051 */ self.remainder128("1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem1052 */ self.remainder128("1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem1053 */ self.remainder128("-1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem1054 */ self.remainder128("-1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem1055 */ self.remainder128("1e-277", "1e+311", "1E-277", .toNearestOrEven)
+ /* dqrem1056 */ self.remainder128("1e-277", "-1e+311", "1E-277", .toNearestOrEven)
+ /* dqrem1057 */ self.remainder128("-1e-277", "1e+311", "-1E-277", .toNearestOrEven)
+ /* dqrem1058 */ self.remainder128("-1e-277", "-1e+311", "-1E-277", .toNearestOrEven)
+ /* dqrem106 */ self.remainder128("0.000", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem107 */ self.remainder128("0.0001", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem1070 */ self.remainder128("8.336804418094040989630006819881709E-6143", "8.336804418094040989630006819889000E-6143", "8.336804418094040989630006819881709E-6143", .toNearestOrEven)
+ /* dqrem108 */ self.remainder128("0.01", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem109 */ self.remainder128("0.1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem110 */ self.remainder128("1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem111 */ self.remainder128("1", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem112 */ self.remainder128("10", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem1120 */ self.remainder128("1234567890123456789012345678901234", "1.000000000000000000000000000000001", "0.765432109876543210987654321098768", .toNearestOrEven)
+ /* dqrem1121 */ self.remainder128("1234567890123456789012345678901234", "1.00000000000000000000000000000001", "0.65432109876543210987654321098779", .toNearestOrEven)
+ /* dqrem1122 */ self.remainder128("1234567890123456789012345678901234", "1.0000000000000000000000000000001", "0.5432109876543210987654321098890", .toNearestOrEven)
+ /* dqrem1123 */ self.remainder128("1234567890123456789012345678901255", "4.000000000000000000000000000000001", "2.691358027469135802746913580274687", .toNearestOrEven)
+ /* dqrem1124 */ self.remainder128("1234567890123456789012345678901234", "4.000000000000000000000000000000001", "1.691358027469135802746913580274692", .toNearestOrEven)
+ /* dqrem1125 */ self.remainder128("1234567890123456789012345678901234", "4.9999999999999999999999999999999", "3.6913578024691357802469135780251", .toNearestOrEven)
+ /* dqrem1126 */ self.remainder128("1234567890123456789012345678901234", "4.99999999999999999999999999999999", "1.46913578024691357802469135780247", .toNearestOrEven)
+ /* dqrem1127 */ self.remainder128("1234567890123456789012345678901234", "4.999999999999999999999999999999999", "4.246913578024691357802469135780246", .toNearestOrEven)
+ /* dqrem1128 */ self.remainder128("1234567890123456789012345678901234", "5.0000000000000000000000000000001", "4.3086421975308642197530864219759", .toNearestOrEven)
+ /* dqrem113 */ self.remainder128("1E+100", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem114 */ self.remainder128("1E+380", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem115 */ self.remainder128("0.0001", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem116 */ self.remainder128("0.01", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem119 */ self.remainder128("0.1", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem120 */ self.remainder128("1", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem121 */ self.remainder128("1", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem122 */ self.remainder128("10", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem123 */ self.remainder128("1E+100", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem124 */ self.remainder128("1E+384", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem130 */ self.remainder128("0", "1", "0", .toNearestOrEven)
+ /* dqrem131 */ self.remainder128("0", "-1", "0", .toNearestOrEven)
+ /* dqrem132 */ self.remainder128("0.0", "1", "0.0", .toNearestOrEven)
+ /* dqrem133 */ self.remainder128("0.0", "-1", "0.0", .toNearestOrEven)
+ /* dqrem134 */ self.remainder128("-0", "1", "-0", .toNearestOrEven)
+ /* dqrem135 */ self.remainder128("-0", "-1", "-0", .toNearestOrEven)
+ /* dqrem136 */ self.remainder128("-0.0", "1", "-0.0", .toNearestOrEven)
+ /* dqrem137 */ self.remainder128("-0.0", "-1", "-0.0", .toNearestOrEven)
+ /* dqrem143 */ self.remainder128("0.5", "2", "0.5", .toNearestOrEven)
+ /* dqrem144 */ self.remainder128("0.5", "2.1", "0.5", .toNearestOrEven)
+ /* dqrem145 */ self.remainder128("0.5", "2.01", "0.50", .toNearestOrEven)
+ /* dqrem146 */ self.remainder128("0.5", "2.001", "0.500", .toNearestOrEven)
+ /* dqrem147 */ self.remainder128("0.50", "2", "0.50", .toNearestOrEven)
+ /* dqrem148 */ self.remainder128("0.50", "2.01", "0.50", .toNearestOrEven)
+ /* dqrem149 */ self.remainder128("0.50", "2.001", "0.500", .toNearestOrEven)
+ /* dqrem150 */ self.remainder128("1", "1", "0", .toNearestOrEven)
+ /* dqrem151 */ self.remainder128("1", "2", "1", .toNearestOrEven)
+ /* dqrem152 */ self.remainder128("1", "3", "1", .toNearestOrEven)
+ /* dqrem153 */ self.remainder128("1", "4", "1", .toNearestOrEven)
+ /* dqrem154 */ self.remainder128("1", "5", "1", .toNearestOrEven)
+ /* dqrem155 */ self.remainder128("1", "6", "1", .toNearestOrEven)
+ /* dqrem156 */ self.remainder128("1", "7", "1", .toNearestOrEven)
+ /* dqrem157 */ self.remainder128("1", "8", "1", .toNearestOrEven)
+ /* dqrem158 */ self.remainder128("1", "9", "1", .toNearestOrEven)
+ /* dqrem159 */ self.remainder128("1", "10", "1", .toNearestOrEven)
+ /* dqrem160 */ self.remainder128("1", "1", "0", .toNearestOrEven)
+ /* dqrem161 */ self.remainder128("2", "1", "0", .toNearestOrEven)
+ /* dqrem162 */ self.remainder128("3", "1", "0", .toNearestOrEven)
+ /* dqrem163 */ self.remainder128("4", "1", "0", .toNearestOrEven)
+ /* dqrem164 */ self.remainder128("5", "1", "0", .toNearestOrEven)
+ /* dqrem165 */ self.remainder128("6", "1", "0", .toNearestOrEven)
+ /* dqrem166 */ self.remainder128("7", "1", "0", .toNearestOrEven)
+ /* dqrem167 */ self.remainder128("8", "1", "0", .toNearestOrEven)
+ /* dqrem168 */ self.remainder128("9", "1", "0", .toNearestOrEven)
+ /* dqrem169 */ self.remainder128("10", "1", "0", .toNearestOrEven)
+ /* dqrem171 */ self.remainder128("0.4", "1.020", "0.400", .toNearestOrEven)
+ /* dqrem172 */ self.remainder128("0.50", "1.020", "0.500", .toNearestOrEven)
+ /* dqrem173 */ self.remainder128("0.51", "1.020", "0.510", .toNearestOrEven)
+ /* dqrem174 */ self.remainder128("0.52", "1.020", "0.520", .toNearestOrEven)
+ /* dqrem175 */ self.remainder128("0.6", "1.020", "0.600", .toNearestOrEven)
+ /* dqrem201 */ self.remainder128("0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem202 */ self.remainder128("0.0E5", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem203 */ self.remainder128("0.000", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem204 */ self.remainder128("0.0001", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem205 */ self.remainder128("0.01", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem206 */ self.remainder128("0.1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem207 */ self.remainder128("1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem208 */ self.remainder128("1", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem209 */ self.remainder128("10", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem210 */ self.remainder128("1E+100", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem211 */ self.remainder128("1E+380", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem231 */ self.remainder128("-0.4", "1.020", "-0.400", .toNearestOrEven)
+ /* dqrem232 */ self.remainder128("-0.50", "1.020", "-0.500", .toNearestOrEven)
+ /* dqrem233 */ self.remainder128("-0.51", "1.020", "-0.510", .toNearestOrEven)
+ /* dqrem234 */ self.remainder128("-0.52", "1.020", "-0.520", .toNearestOrEven)
+ /* dqrem235 */ self.remainder128("-0.6", "1.020", "-0.600", .toNearestOrEven)
+ /* dqrem240 */ self.remainder128("1E+2", "1.00", "0.00", .toNearestOrEven)
+ /* dqrem301 */ self.remainder128("1", "3", "1", .toNearestOrEven)
+ /* dqrem302 */ self.remainder128("5", "5", "0", .toNearestOrEven)
+ /* dqrem303 */ self.remainder128("13", "10", "3", .toNearestOrEven)
+ /* dqrem304 */ self.remainder128("13", "50", "13", .toNearestOrEven)
+ /* dqrem305 */ self.remainder128("13", "100", "13", .toNearestOrEven)
+ /* dqrem306 */ self.remainder128("13", "1000", "13", .toNearestOrEven)
+ /* dqrem307 */ self.remainder128(".13", "1", "0.13", .toNearestOrEven)
+ /* dqrem308 */ self.remainder128("0.133", "1", "0.133", .toNearestOrEven)
+ /* dqrem309 */ self.remainder128("0.1033", "1", "0.1033", .toNearestOrEven)
+ /* dqrem310 */ self.remainder128("1.033", "1", "0.033", .toNearestOrEven)
+ /* dqrem311 */ self.remainder128("10.33", "1", "0.33", .toNearestOrEven)
+ /* dqrem312 */ self.remainder128("10.33", "10", "0.33", .toNearestOrEven)
+ /* dqrem313 */ self.remainder128("103.3", "1", "0.3", .toNearestOrEven)
+ /* dqrem314 */ self.remainder128("133", "10", "3", .toNearestOrEven)
+ /* dqrem315 */ self.remainder128("1033", "10", "3", .toNearestOrEven)
+ /* dqrem316 */ self.remainder128("1033", "50", "33", .toNearestOrEven)
+ /* dqrem317 */ self.remainder128("101.0", "3", "2.0", .toNearestOrEven)
+ /* dqrem318 */ self.remainder128("102.0", "3", "0.0", .toNearestOrEven)
+ /* dqrem319 */ self.remainder128("103.0", "3", "1.0", .toNearestOrEven)
+ /* dqrem320 */ self.remainder128("2.40", "1", "0.40", .toNearestOrEven)
+ /* dqrem321 */ self.remainder128("2.400", "1", "0.400", .toNearestOrEven)
+ /* dqrem322 */ self.remainder128("2.4", "1", "0.4", .toNearestOrEven)
+ /* dqrem323 */ self.remainder128("2.4", "2", "0.4", .toNearestOrEven)
+ /* dqrem324 */ self.remainder128("2.400", "2", "0.400", .toNearestOrEven)
+ /* dqrem325 */ self.remainder128("1", "0.3", "0.1", .toNearestOrEven)
+ /* dqrem326 */ self.remainder128("1", "0.30", "0.10", .toNearestOrEven)
+ /* dqrem327 */ self.remainder128("1", "0.300", "0.100", .toNearestOrEven)
+ /* dqrem328 */ self.remainder128("1", "0.3000", "0.1000", .toNearestOrEven)
+ /* dqrem329 */ self.remainder128("1.0", "0.3", "0.1", .toNearestOrEven)
+ /* dqrem330 */ self.remainder128("1.00", "0.3", "0.10", .toNearestOrEven)
+ /* dqrem331 */ self.remainder128("1.000", "0.3", "0.100", .toNearestOrEven)
+ /* dqrem332 */ self.remainder128("1.0000", "0.3", "0.1000", .toNearestOrEven)
+ /* dqrem333 */ self.remainder128("0.5", "2", "0.5", .toNearestOrEven)
+ /* dqrem334 */ self.remainder128("0.5", "2.1", "0.5", .toNearestOrEven)
+ /* dqrem335 */ self.remainder128("0.5", "2.01", "0.50", .toNearestOrEven)
+ /* dqrem336 */ self.remainder128("0.5", "2.001", "0.500", .toNearestOrEven)
+ /* dqrem337 */ self.remainder128("0.50", "2", "0.50", .toNearestOrEven)
+ /* dqrem338 */ self.remainder128("0.50", "2.01", "0.50", .toNearestOrEven)
+ /* dqrem339 */ self.remainder128("0.50", "2.001", "0.500", .toNearestOrEven)
+ /* dqrem340 */ self.remainder128("0.5", "0.5000001", "0.5000000", .toNearestOrEven)
+ /* dqrem341 */ self.remainder128("0.5", "0.50000001", "0.50000000", .toNearestOrEven)
+ /* dqrem342 */ self.remainder128("0.5", "0.500000001", "0.500000000", .toNearestOrEven)
+ /* dqrem343 */ self.remainder128("0.5", "0.5000000001", "0.5000000000", .toNearestOrEven)
+ /* dqrem344 */ self.remainder128("0.5", "0.50000000001", "0.50000000000", .toNearestOrEven)
+ /* dqrem345 */ self.remainder128("0.5", "0.4999999", "1E-7", .toNearestOrEven)
+ /* dqrem346 */ self.remainder128("0.5", "0.49999999", "1E-8", .toNearestOrEven)
+ /* dqrem347 */ self.remainder128("0.5", "0.499999999", "1E-9", .toNearestOrEven)
+ /* dqrem348 */ self.remainder128("0.5", "0.4999999999", "1E-10", .toNearestOrEven)
+ /* dqrem349 */ self.remainder128("0.5", "0.49999999999", "1E-11", .toNearestOrEven)
+ /* dqrem350 */ self.remainder128("0.5", "0.499999999999", "1E-12", .toNearestOrEven)
+ /* dqrem351 */ self.remainder128("0.03", "7", "0.03", .toNearestOrEven)
+ /* dqrem352 */ self.remainder128("5", "2", "1", .toNearestOrEven)
+ /* dqrem353 */ self.remainder128("4.1", "2", "0.1", .toNearestOrEven)
+ /* dqrem354 */ self.remainder128("4.01", "2", "0.01", .toNearestOrEven)
+ /* dqrem355 */ self.remainder128("4.001", "2", "0.001", .toNearestOrEven)
+ /* dqrem356 */ self.remainder128("4.0001", "2", "0.0001", .toNearestOrEven)
+ /* dqrem357 */ self.remainder128("4.00001", "2", "0.00001", .toNearestOrEven)
+ /* dqrem358 */ self.remainder128("4.000001", "2", "0.000001", .toNearestOrEven)
+ /* dqrem359 */ self.remainder128("4.0000001", "2", "1E-7", .toNearestOrEven)
+ /* dqrem360 */ self.remainder128("1.2", "0.7345", "0.4655", .toNearestOrEven)
+ /* dqrem361 */ self.remainder128("0.8", "12", "0.8", .toNearestOrEven)
+ /* dqrem362 */ self.remainder128("0.8", "0.2", "0.0", .toNearestOrEven)
+ /* dqrem363 */ self.remainder128("0.8", "0.3", "0.2", .toNearestOrEven)
+ /* dqrem364 */ self.remainder128("0.800", "12", "0.800", .toNearestOrEven)
+ /* dqrem365 */ self.remainder128("0.800", "1.7", "0.800", .toNearestOrEven)
+ /* dqrem366 */ self.remainder128("2.400", "2", "0.400", .toNearestOrEven)
+ /* dqrem371 */ self.remainder128("2.400", "2", "0.400", .toNearestOrEven)
+ /* dqrem381 */ self.remainder128("12345", "1", "0", .toNearestOrEven)
+ /* dqrem382 */ self.remainder128("12345", "1.0001", "0.7657", .toNearestOrEven)
+ /* dqrem383 */ self.remainder128("12345", "1.001", "0.668", .toNearestOrEven)
+ /* dqrem384 */ self.remainder128("12345", "1.01", "0.78", .toNearestOrEven)
+ /* dqrem385 */ self.remainder128("12345", "1.1", "0.8", .toNearestOrEven)
+ /* dqrem386 */ self.remainder128("12355", "4", "3", .toNearestOrEven)
+ /* dqrem387 */ self.remainder128("12345", "4", "1", .toNearestOrEven)
+ /* dqrem388 */ self.remainder128("12355", "4.0001", "2.6912", .toNearestOrEven)
+ /* dqrem389 */ self.remainder128("12345", "4.0001", "0.6914", .toNearestOrEven)
+ /* dqrem390 */ self.remainder128("12345", "4.9", "1.9", .toNearestOrEven)
+ /* dqrem391 */ self.remainder128("12345", "4.99", "4.73", .toNearestOrEven)
+ /* dqrem392 */ self.remainder128("12345", "4.999", "2.469", .toNearestOrEven)
+ /* dqrem393 */ self.remainder128("12345", "4.9999", "0.2469", .toNearestOrEven)
+ /* dqrem394 */ self.remainder128("12345", "5", "0", .toNearestOrEven)
+ /* dqrem395 */ self.remainder128("12345", "5.0001", "4.7532", .toNearestOrEven)
+ /* dqrem396 */ self.remainder128("12345", "5.001", "2.532", .toNearestOrEven)
+ /* dqrem397 */ self.remainder128("12345", "5.01", "0.36", .toNearestOrEven)
+ /* dqrem398 */ self.remainder128("12345", "5.1", "3.0", .toNearestOrEven)
+ /* dqrem401 */ self.remainder128("0.5", "1", "0.5", .toNearestOrEven)
+ /* dqrem402 */ self.remainder128("0.55", "1", "0.55", .toNearestOrEven)
+ /* dqrem403 */ self.remainder128("0.555", "1", "0.555", .toNearestOrEven)
+ /* dqrem404 */ self.remainder128("0.5555", "1", "0.5555", .toNearestOrEven)
+ /* dqrem405 */ self.remainder128("0.55555", "1", "0.55555", .toNearestOrEven)
+ /* dqrem406 */ self.remainder128("0.555555", "1", "0.555555", .toNearestOrEven)
+ /* dqrem407 */ self.remainder128("0.5555555", "1", "0.5555555", .toNearestOrEven)
+ /* dqrem408 */ self.remainder128("0.55555555", "1", "0.55555555", .toNearestOrEven)
+ /* dqrem409 */ self.remainder128("0.555555555", "1", "0.555555555", .toNearestOrEven)
+ /* dqrem421 */ self.remainder128("1E+6144", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem422 */ self.remainder128("1E+6144", "1E+6143", "0E+6111", .toNearestOrEven)
+ /* dqrem423 */ self.remainder128("1E+6144", "2E+6143", "0E+6111", .toNearestOrEven)
+ /* dqrem424 */ self.remainder128("1E+6144", "3E+6143", "1.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrem425 */ self.remainder128("1E+6144", "4E+6143", "2.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrem426 */ self.remainder128("1E+6144", "5E+6143", "0E+6111", .toNearestOrEven)
+ /* dqrem427 */ self.remainder128("1E+6144", "6E+6143", "4.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrem428 */ self.remainder128("1E+6144", "7E+6143", "3.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrem429 */ self.remainder128("1E+6144", "8E+6143", "2.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrem430 */ self.remainder128("1E+6144", "9E+6143", "1.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrem431 */ self.remainder128("1E-6175", "1E-6176", "0E-6176", .toNearestOrEven)
+ /* dqrem432 */ self.remainder128("1E-6175", "2E-6176", "0E-6176", .toNearestOrEven)
+ /* dqrem433 */ self.remainder128("1E-6175", "3E-6176", "1E-6176", .toNearestOrEven)
+ /* dqrem434 */ self.remainder128("1E-6175", "4E-6176", "2E-6176", .toNearestOrEven)
+ /* dqrem435 */ self.remainder128("1E-6175", "5E-6176", "0E-6176", .toNearestOrEven)
+ /* dqrem436 */ self.remainder128("1E-6175", "6E-6176", "4E-6176", .toNearestOrEven)
+ /* dqrem437 */ self.remainder128("1E-6175", "7E-6176", "3E-6176", .toNearestOrEven)
+ /* dqrem438 */ self.remainder128("1E-6175", "8E-6176", "2E-6176", .toNearestOrEven)
+ /* dqrem439 */ self.remainder128("1E-6175", "9E-6176", "1E-6176", .toNearestOrEven)
+ /* dqrem440 */ self.remainder128("1E-6175", "10E-6176", "0E-6176", .toNearestOrEven)
+ /* dqrem441 */ self.remainder128("1E-6175", "11E-6176", "1.0E-6175", .toNearestOrEven)
+ /* dqrem442 */ self.remainder128("100E-6175", "11E-6176", "1.0E-6175", .toNearestOrEven)
+ /* dqrem443 */ self.remainder128("100E-6175", "20E-6176", "0E-6176", .toNearestOrEven)
+ /* dqrem444 */ self.remainder128("100E-6175", "21E-6176", "1.3E-6175", .toNearestOrEven)
+ /* dqrem445 */ self.remainder128("100E-6175", "30E-6176", "1.0E-6175", .toNearestOrEven)
+ /* dqrem650 */ self.remainder128("1", "1", "0", .toNearestOrEven)
+ /* dqrem651 */ self.remainder128("-1", "1", "-0", .toNearestOrEven)
+ /* dqrem652 */ self.remainder128("1", "-1", "0", .toNearestOrEven)
+ /* dqrem653 */ self.remainder128("-1", "-1", "-0", .toNearestOrEven)
+ /* dqrem654 */ self.remainder128("0", "1", "0", .toNearestOrEven)
+ /* dqrem655 */ self.remainder128("-0", "1", "-0", .toNearestOrEven)
+ /* dqrem656 */ self.remainder128("0", "-1", "0", .toNearestOrEven)
+ /* dqrem657 */ self.remainder128("-0", "-1", "-0", .toNearestOrEven)
+ /* dqrem658 */ self.remainder128("0.00", "1", "0.00", .toNearestOrEven)
+ /* dqrem659 */ self.remainder128("-0.00", "1", "-0.00", .toNearestOrEven)
+ /* dqrem680 */ self.remainder128("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem681 */ self.remainder128("Inf", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem682 */ self.remainder128("Inf", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem683 */ self.remainder128("Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem684 */ self.remainder128("Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem685 */ self.remainder128("Inf", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem686 */ self.remainder128("Inf", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem687 */ self.remainder128("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem688 */ self.remainder128("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* dqrem689 */ self.remainder128("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem691 */ self.remainder128("-1", "Inf", "-1", .toNearestOrEven)
+ /* dqrem692 */ self.remainder128("0", "Inf", "0", .toNearestOrEven)
+ /* dqrem693 */ self.remainder128("-0", "Inf", "-0", .toNearestOrEven)
+ /* dqrem694 */ self.remainder128("1", "Inf", "1", .toNearestOrEven)
+ /* dqrem695 */ self.remainder128("1000", "Inf", "1000", .toNearestOrEven)
+ /* dqrem696 */ self.remainder128("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem700 */ self.remainder128("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem701 */ self.remainder128("-Inf", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem702 */ self.remainder128("-Inf", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem703 */ self.remainder128("-Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem704 */ self.remainder128("-Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem705 */ self.remainder128("-Inf", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem706 */ self.remainder128("-Inf", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem707 */ self.remainder128("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem708 */ self.remainder128("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem709 */ self.remainder128("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* dqrem710 */ self.remainder128("-1", "-Inf", "-1", .toNearestOrEven)
+ /* dqrem711 */ self.remainder128("-0", "-Inf", "-0", .toNearestOrEven)
+ /* dqrem712 */ self.remainder128("0", "-Inf", "0", .toNearestOrEven)
+ /* dqrem713 */ self.remainder128("1", "-Inf", "1", .toNearestOrEven)
+ /* dqrem714 */ self.remainder128("1000", "-Inf", "1000", .toNearestOrEven)
+ /* dqrem715 */ self.remainder128("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem721 */ self.remainder128("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* dqrem722 */ self.remainder128("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* dqrem723 */ self.remainder128("NaN", "-1", "NaN", .toNearestOrEven)
+ /* dqrem724 */ self.remainder128("NaN", "-0", "NaN", .toNearestOrEven)
+ /* dqrem725 */ self.remainder128("-NaN", "0", "-NaN", .toNearestOrEven)
+ /* dqrem726 */ self.remainder128("NaN", "1", "NaN", .toNearestOrEven)
+ /* dqrem727 */ self.remainder128("NaN", "1000", "NaN", .toNearestOrEven)
+ /* dqrem728 */ self.remainder128("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* dqrem729 */ self.remainder128("NaN", "-NaN", "NaN", .toNearestOrEven)
+ /* dqrem730 */ self.remainder128("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqrem731 */ self.remainder128("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqrem732 */ self.remainder128("-1", "NaN", "NaN", .toNearestOrEven)
+ /* dqrem733 */ self.remainder128("-0", "-NaN", "-NaN", .toNearestOrEven)
+ /* dqrem734 */ self.remainder128("0", "NaN", "NaN", .toNearestOrEven)
+ /* dqrem735 */ self.remainder128("1", "-NaN", "-NaN", .toNearestOrEven)
+ /* dqrem736 */ self.remainder128("1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqrem737 */ self.remainder128("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqrem741 */ self.remainder128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem742 */ self.remainder128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem743 */ self.remainder128("-sNaN", "-1", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem744 */ self.remainder128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem745 */ self.remainder128("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem746 */ self.remainder128("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem747 */ self.remainder128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem749 */ self.remainder128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem750 */ self.remainder128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem751 */ self.remainder128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem752 */ self.remainder128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem753 */ self.remainder128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem754 */ self.remainder128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem755 */ self.remainder128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem756 */ self.remainder128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem757 */ self.remainder128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem758 */ self.remainder128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem759 */ self.remainder128("Inf", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem760 */ self.remainder128("NaN(0x1)", "NaN(0x7)", "NaN(0x1)", .toNearestOrEven)
+ /* dqrem761 */ self.remainder128("sNaN(0x2)", "NaN(0x8)", "NaN(0x2)", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem762 */ self.remainder128("NaN(0x3)", "sNaN(0x9)", "NaN(0x9)", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem763 */ self.remainder128("sNaN(0x4)", "sNaN(0xa)", "NaN(0x4)", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem764 */ self.remainder128("15", "NaN(0xb)", "NaN(0xb)", .toNearestOrEven)
+ /* dqrem765 */ self.remainder128("NaN(0x6)", "NaN(0xc)", "NaN(0x6)", .toNearestOrEven)
+ /* dqrem766 */ self.remainder128("Inf", "NaN(0xd)", "NaN(0xd)", .toNearestOrEven)
+ /* dqrem767 */ self.remainder128("NaN(0xe)", "-Inf", "NaN(0xe)", .toNearestOrEven)
+ /* dqrem768 */ self.remainder128("0", "NaN(0xf)", "NaN(0xf)", .toNearestOrEven)
+ /* dqrem769 */ self.remainder128("NaN(0x10)", "-0", "NaN(0x10)", .toNearestOrEven)
+ /* dqrem770 */ self.remainder128("1234568888888887777777777890123456", "10", "6", .toNearestOrEven)
+ /* dqrem771 */ self.remainder128("1234568888888887777777777890123456", "1", "0", .toNearestOrEven)
+ /* dqrem772 */ self.remainder128("1234568888888887777777777890123456", "0.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem773 */ self.remainder128("1234568888888887777777777890123456", "0.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrem801 */ self.remainder128("12345678000", "100", "0", .toNearestOrEven)
+ /* dqrem802 */ self.remainder128("1", "12345678000", "1", .toNearestOrEven)
+ /* dqrem803 */ self.remainder128("1234567800", "10", "0", .toNearestOrEven)
+ /* dqrem804 */ self.remainder128("1", "1234567800", "1", .toNearestOrEven)
+ /* dqrem805 */ self.remainder128("1234567890", "10", "0", .toNearestOrEven)
+ /* dqrem806 */ self.remainder128("1", "1234567890", "1", .toNearestOrEven)
+ /* dqrem807 */ self.remainder128("1234567891", "10", "1", .toNearestOrEven)
+ /* dqrem808 */ self.remainder128("1", "1234567891", "1", .toNearestOrEven)
+ /* dqrem809 */ self.remainder128("12345678901", "100", "1", .toNearestOrEven)
+ /* dqrem810 */ self.remainder128("1", "12345678901", "1", .toNearestOrEven)
+ /* dqrem811 */ self.remainder128("1234567896", "10", "6", .toNearestOrEven)
+ /* dqrem812 */ self.remainder128("1", "1234567896", "1", .toNearestOrEven)
+ /* dqrem821 */ self.remainder128("12345678000", "100", "0", .toNearestOrEven)
+ /* dqrem822 */ self.remainder128("1", "12345678000", "1", .toNearestOrEven)
+ /* dqrem823 */ self.remainder128("1234567800", "10", "0", .toNearestOrEven)
+ /* dqrem824 */ self.remainder128("1", "1234567800", "1", .toNearestOrEven)
+ /* dqrem825 */ self.remainder128("1234567890", "10", "0", .toNearestOrEven)
+ /* dqrem826 */ self.remainder128("1", "1234567890", "1", .toNearestOrEven)
+ /* dqrem827 */ self.remainder128("1234567891", "10", "1", .toNearestOrEven)
+ /* dqrem828 */ self.remainder128("1", "1234567891", "1", .toNearestOrEven)
+ /* dqrem829 */ self.remainder128("12345678901", "100", "1", .toNearestOrEven)
+ /* dqrem830 */ self.remainder128("1", "12345678901", "1", .toNearestOrEven)
+ /* dqrem831 */ self.remainder128("1234567896", "10", "6", .toNearestOrEven)
+ /* dqrem832 */ self.remainder128("1", "1234567896", "1", .toNearestOrEven)
+ /* dqrem840 */ self.remainder128("100000000.0", "1", "0.0", .toNearestOrEven)
+ /* dqrem841 */ self.remainder128("100000000.4", "1", "0.4", .toNearestOrEven)
+ /* dqrem842 */ self.remainder128("100000000.5", "1", "0.5", .toNearestOrEven)
+ /* dqrem843 */ self.remainder128("100000000.9", "1", "0.9", .toNearestOrEven)
+ /* dqrem844 */ self.remainder128("100000000.999", "1", "0.999", .toNearestOrEven)
+ /* dqrem850 */ self.remainder128("100000003", "5", "3", .toNearestOrEven)
+ /* dqrem851 */ self.remainder128("10000003", "5", "3", .toNearestOrEven)
+ /* dqrem852 */ self.remainder128("1000003", "5", "3", .toNearestOrEven)
+ /* dqrem853 */ self.remainder128("100003", "5", "3", .toNearestOrEven)
+ /* dqrem854 */ self.remainder128("10003", "5", "3", .toNearestOrEven)
+ /* dqrem855 */ self.remainder128("1003", "5", "3", .toNearestOrEven)
+ /* dqrem856 */ self.remainder128("103", "5", "3", .toNearestOrEven)
+ /* dqrem857 */ self.remainder128("13", "5", "3", .toNearestOrEven)
+ /* dqrem858 */ self.remainder128("1", "5", "1", .toNearestOrEven)
+ /* dqrem860 */ self.remainder128("123.0e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrem861 */ self.remainder128("1230", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrem862 */ self.remainder128("12.3e2", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrem863 */ self.remainder128("1.23e3", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrem864 */ self.remainder128("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrem870 */ self.remainder128("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrem871 */ self.remainder128("123e1", "100000000000000", "1230", .toNearestOrEven)
+ /* dqrem872 */ self.remainder128("123e1", "10000000000000", "1230", .toNearestOrEven)
+ /* dqrem873 */ self.remainder128("123e1", "1000000000000", "1230", .toNearestOrEven)
+ /* dqrem874 */ self.remainder128("123e1", "100000000000", "1230", .toNearestOrEven)
+ /* dqrem875 */ self.remainder128("123e1", "10000000000", "1230", .toNearestOrEven)
+ /* dqrem876 */ self.remainder128("123e1", "1000000000", "1230", .toNearestOrEven)
+ /* dqrem877 */ self.remainder128("123e1", "100000000", "1230", .toNearestOrEven)
+ /* dqrem878 */ self.remainder128("1230", "100000000", "1230", .toNearestOrEven)
+ /* dqrem879 */ self.remainder128("123e1", "10000000", "1230", .toNearestOrEven)
+ /* dqrem880 */ self.remainder128("123e1", "1000000", "1230", .toNearestOrEven)
+ /* dqrem881 */ self.remainder128("123e1", "100000", "1230", .toNearestOrEven)
+ /* dqrem882 */ self.remainder128("123e1", "10000", "1230", .toNearestOrEven)
+ /* dqrem883 */ self.remainder128("123e1", "1000", "230", .toNearestOrEven)
+ /* dqrem884 */ self.remainder128("123e1", "100", "30", .toNearestOrEven)
+ /* dqrem885 */ self.remainder128("123e1", "10", "0", .toNearestOrEven)
+ /* dqrem886 */ self.remainder128("123e1", "1", "0", .toNearestOrEven)
+ /* dqrem890 */ self.remainder128("123e1", "2000000000000000", "1230", .toNearestOrEven)
+ /* dqrem891 */ self.remainder128("123e1", "200000000000000", "1230", .toNearestOrEven)
+ /* dqrem892 */ self.remainder128("123e1", "20000000000000", "1230", .toNearestOrEven)
+ /* dqrem893 */ self.remainder128("123e1", "2000000000000", "1230", .toNearestOrEven)
+ /* dqrem894 */ self.remainder128("123e1", "200000000000", "1230", .toNearestOrEven)
+ /* dqrem895 */ self.remainder128("123e1", "20000000000", "1230", .toNearestOrEven)
+ /* dqrem896 */ self.remainder128("123e1", "2000000000", "1230", .toNearestOrEven)
+ /* dqrem897 */ self.remainder128("123e1", "200000000", "1230", .toNearestOrEven)
+ /* dqrem899 */ self.remainder128("123e1", "20000000", "1230", .toNearestOrEven)
+ /* dqrem900 */ self.remainder128("123e1", "2000000", "1230", .toNearestOrEven)
+ /* dqrem901 */ self.remainder128("123e1", "200000", "1230", .toNearestOrEven)
+ /* dqrem902 */ self.remainder128("123e1", "20000", "1230", .toNearestOrEven)
+ /* dqrem903 */ self.remainder128("123e1", "2000", "1230", .toNearestOrEven)
+ /* dqrem904 */ self.remainder128("123e1", "200", "30", .toNearestOrEven)
+ /* dqrem905 */ self.remainder128("123e1", "20", "10", .toNearestOrEven)
+ /* dqrem906 */ self.remainder128("123e1", "2", "0", .toNearestOrEven)
+ /* dqrem910 */ self.remainder128("123e1", "5000000000000000", "1230", .toNearestOrEven)
+ /* dqrem911 */ self.remainder128("123e1", "500000000000000", "1230", .toNearestOrEven)
+ /* dqrem912 */ self.remainder128("123e1", "50000000000000", "1230", .toNearestOrEven)
+ /* dqrem913 */ self.remainder128("123e1", "5000000000000", "1230", .toNearestOrEven)
+ /* dqrem914 */ self.remainder128("123e1", "500000000000", "1230", .toNearestOrEven)
+ /* dqrem915 */ self.remainder128("123e1", "50000000000", "1230", .toNearestOrEven)
+ /* dqrem916 */ self.remainder128("123e1", "5000000000", "1230", .toNearestOrEven)
+ /* dqrem917 */ self.remainder128("123e1", "500000000", "1230", .toNearestOrEven)
+ /* dqrem919 */ self.remainder128("123e1", "50000000", "1230", .toNearestOrEven)
+ /* dqrem920 */ self.remainder128("123e1", "5000000", "1230", .toNearestOrEven)
+ /* dqrem921 */ self.remainder128("123e1", "500000", "1230", .toNearestOrEven)
+ /* dqrem922 */ self.remainder128("123e1", "50000", "1230", .toNearestOrEven)
+ /* dqrem923 */ self.remainder128("123e1", "5000", "1230", .toNearestOrEven)
+ /* dqrem924 */ self.remainder128("123e1", "500", "230", .toNearestOrEven)
+ /* dqrem925 */ self.remainder128("123e1", "50", "30", .toNearestOrEven)
+ /* dqrem926 */ self.remainder128("123e1", "5", "0", .toNearestOrEven)
+ /* dqrem930 */ self.remainder128("123e1", "9000000000000000", "1230", .toNearestOrEven)
+ /* dqrem931 */ self.remainder128("123e1", "900000000000000", "1230", .toNearestOrEven)
+ /* dqrem932 */ self.remainder128("123e1", "90000000000000", "1230", .toNearestOrEven)
+ /* dqrem933 */ self.remainder128("123e1", "9000000000000", "1230", .toNearestOrEven)
+ /* dqrem934 */ self.remainder128("123e1", "900000000000", "1230", .toNearestOrEven)
+ /* dqrem935 */ self.remainder128("123e1", "90000000000", "1230", .toNearestOrEven)
+ /* dqrem936 */ self.remainder128("123e1", "9000000000", "1230", .toNearestOrEven)
+ /* dqrem937 */ self.remainder128("123e1", "900000000", "1230", .toNearestOrEven)
+ /* dqrem939 */ self.remainder128("123e1", "90000000", "1230", .toNearestOrEven)
+ /* dqrem940 */ self.remainder128("123e1", "9000000", "1230", .toNearestOrEven)
+ /* dqrem941 */ self.remainder128("123e1", "900000", "1230", .toNearestOrEven)
+ /* dqrem942 */ self.remainder128("123e1", "90000", "1230", .toNearestOrEven)
+ /* dqrem943 */ self.remainder128("123e1", "9000", "1230", .toNearestOrEven)
+ /* dqrem944 */ self.remainder128("123e1", "900", "330", .toNearestOrEven)
+ /* dqrem945 */ self.remainder128("123e1", "90", "60", .toNearestOrEven)
+ /* dqrem946 */ self.remainder128("123e1", "9", "6", .toNearestOrEven)
+ /* dqrem950 */ self.remainder128("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrem961 */ self.remainder128("123e1", "2999999999999999", "1230", .toNearestOrEven)
+ /* dqrem962 */ self.remainder128("123e1", "3999999999999999", "1230", .toNearestOrEven)
+ /* dqrem963 */ self.remainder128("123e1", "4999999999999999", "1230", .toNearestOrEven)
+ /* dqrem964 */ self.remainder128("123e1", "5999999999999999", "1230", .toNearestOrEven)
+ /* dqrem965 */ self.remainder128("123e1", "6999999999999999", "1230", .toNearestOrEven)
+ /* dqrem966 */ self.remainder128("123e1", "7999999999999999", "1230", .toNearestOrEven)
+ /* dqrem967 */ self.remainder128("123e1", "8999999999999999", "1230", .toNearestOrEven)
+ /* dqrem968 */ self.remainder128("123e1", "9999999999999999", "1230", .toNearestOrEven)
+ /* dqrem969 */ self.remainder128("123e1", "9876543210987654", "1230", .toNearestOrEven)
+ /* dqrem980 */ self.remainder128("123e1", "1000E299", "1.23E+3", .toNearestOrEven)
+ }
+
+ private func remainder128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.truncatingRemainder(dividingBy: arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_rem(arg0, arg1, result: result, status: &status)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+
+ let result2 = self.truncatingRemainderFromReminder(arg0, dividingBy: arg1)
+ self.assertEqual(result2, expected, file, line)
+ }
+
+ // MARK: - Remaindernear
+
+ func test_remaindernear64() {
+ /* ddrmn001 */ self.remaindernear64("1", "1", "0", .toNearestOrEven)
+ /* ddrmn002 */ self.remaindernear64("2", "1", "0", .toNearestOrEven)
+ /* ddrmn003 */ self.remaindernear64("1", "2", "1", .toNearestOrEven)
+ /* ddrmn004 */ self.remaindernear64("2", "2", "0", .toNearestOrEven)
+ /* ddrmn005 */ self.remaindernear64("0", "1", "0", .toNearestOrEven)
+ /* ddrmn006 */ self.remaindernear64("0", "2", "0", .toNearestOrEven)
+ /* ddrmn007 */ self.remaindernear64("1", "3", "1", .toNearestOrEven)
+ /* ddrmn008 */ self.remaindernear64("2", "3", "-1", .toNearestOrEven)
+ /* ddrmn009 */ self.remaindernear64("3", "3", "0", .toNearestOrEven)
+ /* ddrmn010 */ self.remaindernear64("2.4", "1", "0.4", .toNearestOrEven)
+ /* ddrmn011 */ self.remaindernear64("2.4", "-1", "0.4", .toNearestOrEven)
+ /* ddrmn012 */ self.remaindernear64("-2.4", "1", "-0.4", .toNearestOrEven)
+ /* ddrmn013 */ self.remaindernear64("-2.4", "-1", "-0.4", .toNearestOrEven)
+ /* ddrmn014 */ self.remaindernear64("2.40", "1", "0.40", .toNearestOrEven)
+ /* ddrmn015 */ self.remaindernear64("2.400", "1", "0.400", .toNearestOrEven)
+ /* ddrmn016 */ self.remaindernear64("2.4", "2", "0.4", .toNearestOrEven)
+ /* ddrmn017 */ self.remaindernear64("2.400", "2", "0.400", .toNearestOrEven)
+ /* ddrmn018 */ self.remaindernear64("2.", "2", "0", .toNearestOrEven)
+ /* ddrmn019 */ self.remaindernear64("20", "20", "0", .toNearestOrEven)
+ /* ddrmn020 */ self.remaindernear64("187", "187", "0", .toNearestOrEven)
+ /* ddrmn021 */ self.remaindernear64("5", "2", "1", .toNearestOrEven)
+ /* ddrmn022 */ self.remaindernear64("5", "2.0", "1.0", .toNearestOrEven)
+ /* ddrmn023 */ self.remaindernear64("5", "2.000", "1.000", .toNearestOrEven)
+ /* ddrmn024 */ self.remaindernear64("5", "0.200", "0.000", .toNearestOrEven)
+ /* ddrmn025 */ self.remaindernear64("5", "0.200", "0.000", .toNearestOrEven)
+ /* ddrmn030 */ self.remaindernear64("1", "2", "1", .toNearestOrEven)
+ /* ddrmn031 */ self.remaindernear64("1", "4", "1", .toNearestOrEven)
+ /* ddrmn032 */ self.remaindernear64("1", "8", "1", .toNearestOrEven)
+ /* ddrmn033 */ self.remaindernear64("1", "16", "1", .toNearestOrEven)
+ /* ddrmn034 */ self.remaindernear64("1", "32", "1", .toNearestOrEven)
+ /* ddrmn035 */ self.remaindernear64("1", "64", "1", .toNearestOrEven)
+ /* ddrmn040 */ self.remaindernear64("1", "-2", "1", .toNearestOrEven)
+ /* ddrmn041 */ self.remaindernear64("1", "-4", "1", .toNearestOrEven)
+ /* ddrmn042 */ self.remaindernear64("1", "-8", "1", .toNearestOrEven)
+ /* ddrmn043 */ self.remaindernear64("1", "-16", "1", .toNearestOrEven)
+ /* ddrmn044 */ self.remaindernear64("1", "-32", "1", .toNearestOrEven)
+ /* ddrmn045 */ self.remaindernear64("1", "-64", "1", .toNearestOrEven)
+ /* ddrmn050 */ self.remaindernear64("-1", "2", "-1", .toNearestOrEven)
+ /* ddrmn051 */ self.remaindernear64("-1", "4", "-1", .toNearestOrEven)
+ /* ddrmn052 */ self.remaindernear64("-1", "8", "-1", .toNearestOrEven)
+ /* ddrmn053 */ self.remaindernear64("-1", "16", "-1", .toNearestOrEven)
+ /* ddrmn054 */ self.remaindernear64("-1", "32", "-1", .toNearestOrEven)
+ /* ddrmn055 */ self.remaindernear64("-1", "64", "-1", .toNearestOrEven)
+ /* ddrmn060 */ self.remaindernear64("-1", "-2", "-1", .toNearestOrEven)
+ /* ddrmn061 */ self.remaindernear64("-1", "-4", "-1", .toNearestOrEven)
+ /* ddrmn062 */ self.remaindernear64("-1", "-8", "-1", .toNearestOrEven)
+ /* ddrmn063 */ self.remaindernear64("-1", "-16", "-1", .toNearestOrEven)
+ /* ddrmn064 */ self.remaindernear64("-1", "-32", "-1", .toNearestOrEven)
+ /* ddrmn065 */ self.remaindernear64("-1", "-64", "-1", .toNearestOrEven)
+ /* ddrmn066 */ self.remaindernear64("9.9", "1", "-0.1", .toNearestOrEven)
+ /* ddrmn067 */ self.remaindernear64("99.7", "1", "-0.3", .toNearestOrEven)
+ /* ddrmn068 */ self.remaindernear64("999999999", "1", "0", .toNearestOrEven)
+ /* ddrmn069 */ self.remaindernear64("999999999.4", "1", "0.4", .toNearestOrEven)
+ /* ddrmn070 */ self.remaindernear64("999999999.5", "1", "-0.5", .toNearestOrEven)
+ /* ddrmn071 */ self.remaindernear64("999999999.9", "1", "-0.1", .toNearestOrEven)
+ /* ddrmn072 */ self.remaindernear64("999999999.999", "1", "-0.001", .toNearestOrEven)
+ /* ddrmn073 */ self.remaindernear64("999999.999999", "1", "-0.000001", .toNearestOrEven)
+ /* ddrmn074 */ self.remaindernear64("9", "1", "0", .toNearestOrEven)
+ /* ddrmn075 */ self.remaindernear64("9999999999999999", "1", "0", .toNearestOrEven)
+ /* ddrmn076 */ self.remaindernear64("9999999999999999", "2", "-1", .toNearestOrEven)
+ /* ddrmn077 */ self.remaindernear64("9999999999999999", "3", "0", .toNearestOrEven)
+ /* ddrmn078 */ self.remaindernear64("9999999999999999", "4", "-1", .toNearestOrEven)
+ /* ddrmn080 */ self.remaindernear64("0.", "1", "0", .toNearestOrEven)
+ /* ddrmn081 */ self.remaindernear64(".0", "1", "0.0", .toNearestOrEven)
+ /* ddrmn082 */ self.remaindernear64("0.00", "1", "0.00", .toNearestOrEven)
+ /* ddrmn083 */ self.remaindernear64("0.00E+9", "1", "0", .toNearestOrEven)
+ /* ddrmn084 */ self.remaindernear64("0.00E+3", "1", "0", .toNearestOrEven)
+ /* ddrmn085 */ self.remaindernear64("0.00E+2", "1", "0", .toNearestOrEven)
+ /* ddrmn086 */ self.remaindernear64("0.00E+1", "1", "0.0", .toNearestOrEven)
+ /* ddrmn087 */ self.remaindernear64("0.00E+0", "1", "0.00", .toNearestOrEven)
+ /* ddrmn088 */ self.remaindernear64("0.00E-0", "1", "0.00", .toNearestOrEven)
+ /* ddrmn089 */ self.remaindernear64("0.00E-1", "1", "0.000", .toNearestOrEven)
+ /* ddrmn090 */ self.remaindernear64("0.00E-2", "1", "0.0000", .toNearestOrEven)
+ /* ddrmn091 */ self.remaindernear64("0.00E-3", "1", "0.00000", .toNearestOrEven)
+ /* ddrmn092 */ self.remaindernear64("0.00E-4", "1", "0.000000", .toNearestOrEven)
+ /* ddrmn093 */ self.remaindernear64("0.00E-5", "1", "0E-7", .toNearestOrEven)
+ /* ddrmn094 */ self.remaindernear64("0.00E-6", "1", "0E-8", .toNearestOrEven)
+ /* ddrmn095 */ self.remaindernear64("0.0000E-50", "1", "0E-54", .toNearestOrEven)
+ /* ddrmn101 */ self.remaindernear64("0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn102 */ self.remaindernear64("0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn103 */ self.remaindernear64("-0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn104 */ self.remaindernear64("-0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn105 */ self.remaindernear64("0.0E5", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn1051 */ self.remaindernear64("1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn1052 */ self.remaindernear64("1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn1053 */ self.remaindernear64("-1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn1054 */ self.remaindernear64("-1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn1055 */ self.remaindernear64("1e-277", "1e+311", "1E-277", .toNearestOrEven)
+ /* ddrmn1056 */ self.remaindernear64("1e-277", "-1e+311", "1E-277", .toNearestOrEven)
+ /* ddrmn1057 */ self.remaindernear64("-1e-277", "1e+311", "-1E-277", .toNearestOrEven)
+ /* ddrmn1058 */ self.remaindernear64("-1e-277", "-1e+311", "-1E-277", .toNearestOrEven)
+ /* ddrmn106 */ self.remaindernear64("0.000", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn107 */ self.remaindernear64("0.0001", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn108 */ self.remaindernear64("0.01", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn109 */ self.remaindernear64("0.1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn110 */ self.remaindernear64("1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn1100 */ self.remaindernear64("1234567890123456", "1.000000000000001", "-0.234567890123455", .toNearestOrEven)
+ /* ddrmn1101 */ self.remaindernear64("1234567890123456", "1.00000000000001", "-0.34567890123444", .toNearestOrEven)
+ /* ddrmn1102 */ self.remaindernear64("1234567890123456", "1.0000000000001", "-0.4567890123333", .toNearestOrEven)
+ /* ddrmn1103 */ self.remaindernear64("1234567890123455", "4.000000000000001", "-1.308641972530864", .toNearestOrEven)
+ /* ddrmn1104 */ self.remaindernear64("1234567890123456", "4.000000000000001", "-0.308641972530864", .toNearestOrEven)
+ /* ddrmn111 */ self.remaindernear64("1", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn1110 */ self.remaindernear64("1234567890123456", "5.0000000000001", "1.3086421975314", .toNearestOrEven)
+ /* ddrmn1115 */ self.remaindernear64("1234567890123456", "4.9999999999999", "0.6913578024696", .toNearestOrEven)
+ /* ddrmn1116 */ self.remaindernear64("1234567890123456", "4.99999999999999", "-1.53086421975308", .toNearestOrEven)
+ /* ddrmn1117 */ self.remaindernear64("1234567890123456", "4.999999999999999", "1.246913578024691", .toNearestOrEven)
+ /* ddrmn1118 */ self.remaindernear64("1234567890123456", "5.000000000000001", "0.753086421975309", .toNearestOrEven)
+ /* ddrmn1119 */ self.remaindernear64("1234567890123456", "5.00000000000001", "-1.46913578024691", .toNearestOrEven)
+ /* ddrmn112 */ self.remaindernear64("10", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn113 */ self.remaindernear64("1E+100", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn114 */ self.remaindernear64("1E+380", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn115 */ self.remaindernear64("0.0001", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn116 */ self.remaindernear64("0.01", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn119 */ self.remaindernear64("0.1", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn120 */ self.remaindernear64("1", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn121 */ self.remaindernear64("1", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn122 */ self.remaindernear64("10", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn123 */ self.remaindernear64("1E+100", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn124 */ self.remaindernear64("1E+384", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn130 */ self.remaindernear64("0", "1", "0", .toNearestOrEven)
+ /* ddrmn131 */ self.remaindernear64("0", "-1", "0", .toNearestOrEven)
+ /* ddrmn132 */ self.remaindernear64("0.0", "1", "0.0", .toNearestOrEven)
+ /* ddrmn133 */ self.remaindernear64("0.0", "-1", "0.0", .toNearestOrEven)
+ /* ddrmn134 */ self.remaindernear64("-0", "1", "-0", .toNearestOrEven)
+ /* ddrmn135 */ self.remaindernear64("-0", "-1", "-0", .toNearestOrEven)
+ /* ddrmn136 */ self.remaindernear64("-0.0", "1", "-0.0", .toNearestOrEven)
+ /* ddrmn137 */ self.remaindernear64("-0.0", "-1", "-0.0", .toNearestOrEven)
+ /* ddrmn143 */ self.remaindernear64("0.5", "2", "0.5", .toNearestOrEven)
+ /* ddrmn144 */ self.remaindernear64("0.5", "2.1", "0.5", .toNearestOrEven)
+ /* ddrmn145 */ self.remaindernear64("0.5", "2.01", "0.50", .toNearestOrEven)
+ /* ddrmn146 */ self.remaindernear64("0.5", "2.001", "0.500", .toNearestOrEven)
+ /* ddrmn147 */ self.remaindernear64("0.50", "2", "0.50", .toNearestOrEven)
+ /* ddrmn148 */ self.remaindernear64("0.50", "2.01", "0.50", .toNearestOrEven)
+ /* ddrmn149 */ self.remaindernear64("0.50", "2.001", "0.500", .toNearestOrEven)
+ /* ddrmn150 */ self.remaindernear64("1", "1", "0", .toNearestOrEven)
+ /* ddrmn151 */ self.remaindernear64("1", "2", "1", .toNearestOrEven)
+ /* ddrmn152 */ self.remaindernear64("1", "3", "1", .toNearestOrEven)
+ /* ddrmn153 */ self.remaindernear64("1", "4", "1", .toNearestOrEven)
+ /* ddrmn154 */ self.remaindernear64("1", "5", "1", .toNearestOrEven)
+ /* ddrmn155 */ self.remaindernear64("1", "6", "1", .toNearestOrEven)
+ /* ddrmn156 */ self.remaindernear64("1", "7", "1", .toNearestOrEven)
+ /* ddrmn157 */ self.remaindernear64("1", "8", "1", .toNearestOrEven)
+ /* ddrmn158 */ self.remaindernear64("1", "9", "1", .toNearestOrEven)
+ /* ddrmn159 */ self.remaindernear64("1", "10", "1", .toNearestOrEven)
+ /* ddrmn160 */ self.remaindernear64("1", "1", "0", .toNearestOrEven)
+ /* ddrmn161 */ self.remaindernear64("2", "1", "0", .toNearestOrEven)
+ /* ddrmn162 */ self.remaindernear64("3", "1", "0", .toNearestOrEven)
+ /* ddrmn163 */ self.remaindernear64("4", "1", "0", .toNearestOrEven)
+ /* ddrmn164 */ self.remaindernear64("5", "1", "0", .toNearestOrEven)
+ /* ddrmn165 */ self.remaindernear64("6", "1", "0", .toNearestOrEven)
+ /* ddrmn166 */ self.remaindernear64("7", "1", "0", .toNearestOrEven)
+ /* ddrmn167 */ self.remaindernear64("8", "1", "0", .toNearestOrEven)
+ /* ddrmn168 */ self.remaindernear64("9", "1", "0", .toNearestOrEven)
+ /* ddrmn169 */ self.remaindernear64("10", "1", "0", .toNearestOrEven)
+ /* ddrmn171 */ self.remaindernear64("0.4", "1.020", "0.400", .toNearestOrEven)
+ /* ddrmn172 */ self.remaindernear64("0.50", "1.020", "0.500", .toNearestOrEven)
+ /* ddrmn173 */ self.remaindernear64("0.51", "1.020", "0.510", .toNearestOrEven)
+ /* ddrmn174 */ self.remaindernear64("0.52", "1.020", "-0.500", .toNearestOrEven)
+ /* ddrmn175 */ self.remaindernear64("0.6", "1.020", "-0.420", .toNearestOrEven)
+ /* ddrmn201 */ self.remaindernear64("0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn202 */ self.remaindernear64("0.0E5", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn203 */ self.remaindernear64("0.000", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn204 */ self.remaindernear64("0.0001", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn205 */ self.remaindernear64("0.01", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn206 */ self.remaindernear64("0.1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn207 */ self.remaindernear64("1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn208 */ self.remaindernear64("1", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn209 */ self.remaindernear64("10", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn210 */ self.remaindernear64("1E+100", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn211 */ self.remaindernear64("1E+380", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn221 */ self.remaindernear64("2.1", "3", "-0.9", .toNearestOrEven)
+ /* ddrmn222 */ self.remaindernear64("10", "6", "-2", .toNearestOrEven)
+ /* ddrmn223 */ self.remaindernear64("10", "3", "1", .toNearestOrEven)
+ /* ddrmn224 */ self.remaindernear64("-10", "3", "-1", .toNearestOrEven)
+ /* ddrmn225 */ self.remaindernear64("10.2", "1", "0.2", .toNearestOrEven)
+ /* ddrmn226 */ self.remaindernear64("10", "0.3", "0.1", .toNearestOrEven)
+ /* ddrmn227 */ self.remaindernear64("3.6", "1.3", "-0.3", .toNearestOrEven)
+ /* ddrmn231 */ self.remaindernear64("-0.4", "1.020", "-0.400", .toNearestOrEven)
+ /* ddrmn232 */ self.remaindernear64("-0.50", "1.020", "-0.500", .toNearestOrEven)
+ /* ddrmn233 */ self.remaindernear64("-0.51", "1.020", "-0.510", .toNearestOrEven)
+ /* ddrmn234 */ self.remaindernear64("-0.52", "1.020", "0.500", .toNearestOrEven)
+ /* ddrmn235 */ self.remaindernear64("-0.6", "1.020", "0.420", .toNearestOrEven)
+ /* ddrmn240 */ self.remaindernear64("1E+2", "1.00", "0.00", .toNearestOrEven)
+ /* ddrmn301 */ self.remaindernear64("1", "3", "1", .toNearestOrEven)
+ /* ddrmn302 */ self.remaindernear64("5", "5", "0", .toNearestOrEven)
+ /* ddrmn303 */ self.remaindernear64("13", "10", "3", .toNearestOrEven)
+ /* ddrmn304 */ self.remaindernear64("13", "50", "13", .toNearestOrEven)
+ /* ddrmn305 */ self.remaindernear64("13", "100", "13", .toNearestOrEven)
+ /* ddrmn306 */ self.remaindernear64("13", "1000", "13", .toNearestOrEven)
+ /* ddrmn307 */ self.remaindernear64(".13", "1", "0.13", .toNearestOrEven)
+ /* ddrmn308 */ self.remaindernear64("0.133", "1", "0.133", .toNearestOrEven)
+ /* ddrmn309 */ self.remaindernear64("0.1033", "1", "0.1033", .toNearestOrEven)
+ /* ddrmn310 */ self.remaindernear64("1.033", "1", "0.033", .toNearestOrEven)
+ /* ddrmn311 */ self.remaindernear64("10.33", "1", "0.33", .toNearestOrEven)
+ /* ddrmn312 */ self.remaindernear64("10.33", "10", "0.33", .toNearestOrEven)
+ /* ddrmn313 */ self.remaindernear64("103.3", "1", "0.3", .toNearestOrEven)
+ /* ddrmn314 */ self.remaindernear64("133", "10", "3", .toNearestOrEven)
+ /* ddrmn315 */ self.remaindernear64("1033", "10", "3", .toNearestOrEven)
+ /* ddrmn316 */ self.remaindernear64("1033", "50", "-17", .toNearestOrEven)
+ /* ddrmn317 */ self.remaindernear64("101.0", "3", "-1.0", .toNearestOrEven)
+ /* ddrmn318 */ self.remaindernear64("102.0", "3", "0.0", .toNearestOrEven)
+ /* ddrmn319 */ self.remaindernear64("103.0", "3", "1.0", .toNearestOrEven)
+ /* ddrmn320 */ self.remaindernear64("2.40", "1", "0.40", .toNearestOrEven)
+ /* ddrmn321 */ self.remaindernear64("2.400", "1", "0.400", .toNearestOrEven)
+ /* ddrmn322 */ self.remaindernear64("2.4", "1", "0.4", .toNearestOrEven)
+ /* ddrmn323 */ self.remaindernear64("2.4", "2", "0.4", .toNearestOrEven)
+ /* ddrmn324 */ self.remaindernear64("2.400", "2", "0.400", .toNearestOrEven)
+ /* ddrmn325 */ self.remaindernear64("1", "0.3", "0.1", .toNearestOrEven)
+ /* ddrmn326 */ self.remaindernear64("1", "0.30", "0.10", .toNearestOrEven)
+ /* ddrmn327 */ self.remaindernear64("1", "0.300", "0.100", .toNearestOrEven)
+ /* ddrmn328 */ self.remaindernear64("1", "0.3000", "0.1000", .toNearestOrEven)
+ /* ddrmn329 */ self.remaindernear64("1.0", "0.3", "0.1", .toNearestOrEven)
+ /* ddrmn330 */ self.remaindernear64("1.00", "0.3", "0.10", .toNearestOrEven)
+ /* ddrmn331 */ self.remaindernear64("1.000", "0.3", "0.100", .toNearestOrEven)
+ /* ddrmn332 */ self.remaindernear64("1.0000", "0.3", "0.1000", .toNearestOrEven)
+ /* ddrmn333 */ self.remaindernear64("0.5", "2", "0.5", .toNearestOrEven)
+ /* ddrmn334 */ self.remaindernear64("0.5", "2.1", "0.5", .toNearestOrEven)
+ /* ddrmn335 */ self.remaindernear64("0.5", "2.01", "0.50", .toNearestOrEven)
+ /* ddrmn336 */ self.remaindernear64("0.5", "2.001", "0.500", .toNearestOrEven)
+ /* ddrmn337 */ self.remaindernear64("0.50", "2", "0.50", .toNearestOrEven)
+ /* ddrmn338 */ self.remaindernear64("0.50", "2.01", "0.50", .toNearestOrEven)
+ /* ddrmn339 */ self.remaindernear64("0.50", "2.001", "0.500", .toNearestOrEven)
+ /* ddrmn340 */ self.remaindernear64("0.5", "0.5000001", "-1E-7", .toNearestOrEven)
+ /* ddrmn341 */ self.remaindernear64("0.5", "0.50000001", "-1E-8", .toNearestOrEven)
+ /* ddrmn342 */ self.remaindernear64("0.5", "0.500000001", "-1E-9", .toNearestOrEven)
+ /* ddrmn343 */ self.remaindernear64("0.5", "0.5000000001", "-1E-10", .toNearestOrEven)
+ /* ddrmn344 */ self.remaindernear64("0.5", "0.50000000001", "-1E-11", .toNearestOrEven)
+ /* ddrmn345 */ self.remaindernear64("0.5", "0.4999999", "1E-7", .toNearestOrEven)
+ /* ddrmn346 */ self.remaindernear64("0.5", "0.49999999", "1E-8", .toNearestOrEven)
+ /* ddrmn347 */ self.remaindernear64("0.5", "0.499999999", "1E-9", .toNearestOrEven)
+ /* ddrmn348 */ self.remaindernear64("0.5", "0.4999999999", "1E-10", .toNearestOrEven)
+ /* ddrmn349 */ self.remaindernear64("0.5", "0.49999999999", "1E-11", .toNearestOrEven)
+ /* ddrmn350 */ self.remaindernear64("0.5", "0.499999999999", "1E-12", .toNearestOrEven)
+ /* ddrmn351 */ self.remaindernear64("0.03", "7", "0.03", .toNearestOrEven)
+ /* ddrmn352 */ self.remaindernear64("5", "2", "1", .toNearestOrEven)
+ /* ddrmn353 */ self.remaindernear64("4.1", "2", "0.1", .toNearestOrEven)
+ /* ddrmn354 */ self.remaindernear64("4.01", "2", "0.01", .toNearestOrEven)
+ /* ddrmn355 */ self.remaindernear64("4.001", "2", "0.001", .toNearestOrEven)
+ /* ddrmn356 */ self.remaindernear64("4.0001", "2", "0.0001", .toNearestOrEven)
+ /* ddrmn357 */ self.remaindernear64("4.00001", "2", "0.00001", .toNearestOrEven)
+ /* ddrmn358 */ self.remaindernear64("4.000001", "2", "0.000001", .toNearestOrEven)
+ /* ddrmn359 */ self.remaindernear64("4.0000001", "2", "1E-7", .toNearestOrEven)
+ /* ddrmn360 */ self.remaindernear64("1.2", "0.7345", "-0.2690", .toNearestOrEven)
+ /* ddrmn361 */ self.remaindernear64("0.8", "12", "0.8", .toNearestOrEven)
+ /* ddrmn362 */ self.remaindernear64("0.8", "0.2", "0.0", .toNearestOrEven)
+ /* ddrmn363 */ self.remaindernear64("0.8", "0.3", "-0.1", .toNearestOrEven)
+ /* ddrmn364 */ self.remaindernear64("0.800", "12", "0.800", .toNearestOrEven)
+ /* ddrmn365 */ self.remaindernear64("0.800", "1.7", "0.800", .toNearestOrEven)
+ /* ddrmn366 */ self.remaindernear64("2.400", "2", "0.400", .toNearestOrEven)
+ /* ddrmn371 */ self.remaindernear64("121", "2", "1", .toNearestOrEven)
+ /* ddrmn372 */ self.remaindernear64("122", "2", "0", .toNearestOrEven)
+ /* ddrmn373 */ self.remaindernear64("123", "2", "-1", .toNearestOrEven)
+ /* ddrmn374 */ self.remaindernear64("124", "2", "0", .toNearestOrEven)
+ /* ddrmn375 */ self.remaindernear64("125", "2", "1", .toNearestOrEven)
+ /* ddrmn376 */ self.remaindernear64("126", "2", "0", .toNearestOrEven)
+ /* ddrmn377 */ self.remaindernear64("127", "2", "-1", .toNearestOrEven)
+ /* ddrmn381 */ self.remaindernear64("12345", "1", "0", .toNearestOrEven)
+ /* ddrmn382 */ self.remaindernear64("12345", "1.0001", "-0.2344", .toNearestOrEven)
+ /* ddrmn383 */ self.remaindernear64("12345", "1.001", "-0.333", .toNearestOrEven)
+ /* ddrmn384 */ self.remaindernear64("12345", "1.01", "-0.23", .toNearestOrEven)
+ /* ddrmn385 */ self.remaindernear64("12345", "1.1", "-0.3", .toNearestOrEven)
+ /* ddrmn386 */ self.remaindernear64("12355", "4", "-1", .toNearestOrEven)
+ /* ddrmn387 */ self.remaindernear64("12345", "4", "1", .toNearestOrEven)
+ /* ddrmn388 */ self.remaindernear64("12355", "4.0001", "-1.3089", .toNearestOrEven)
+ /* ddrmn389 */ self.remaindernear64("12345", "4.0001", "0.6914", .toNearestOrEven)
+ /* ddrmn390 */ self.remaindernear64("12345", "4.9", "1.9", .toNearestOrEven)
+ /* ddrmn391 */ self.remaindernear64("12345", "4.99", "-0.26", .toNearestOrEven)
+ /* ddrmn392 */ self.remaindernear64("12345", "4.999", "2.469", .toNearestOrEven)
+ /* ddrmn393 */ self.remaindernear64("12345", "4.9999", "0.2469", .toNearestOrEven)
+ /* ddrmn394 */ self.remaindernear64("12345", "5", "0", .toNearestOrEven)
+ /* ddrmn395 */ self.remaindernear64("12345", "5.0001", "-0.2469", .toNearestOrEven)
+ /* ddrmn396 */ self.remaindernear64("12345", "5.001", "-2.469", .toNearestOrEven)
+ /* ddrmn397 */ self.remaindernear64("12345", "5.01", "0.36", .toNearestOrEven)
+ /* ddrmn398 */ self.remaindernear64("12345", "5.1", "-2.1", .toNearestOrEven)
+ /* ddrmn401 */ self.remaindernear64("0.4", "1", "0.4", .toNearestOrEven)
+ /* ddrmn402 */ self.remaindernear64("0.45", "1", "0.45", .toNearestOrEven)
+ /* ddrmn403 */ self.remaindernear64("0.455", "1", "0.455", .toNearestOrEven)
+ /* ddrmn404 */ self.remaindernear64("0.4555", "1", "0.4555", .toNearestOrEven)
+ /* ddrmn405 */ self.remaindernear64("0.45555", "1", "0.45555", .toNearestOrEven)
+ /* ddrmn406 */ self.remaindernear64("0.455555", "1", "0.455555", .toNearestOrEven)
+ /* ddrmn407 */ self.remaindernear64("0.4555555", "1", "0.4555555", .toNearestOrEven)
+ /* ddrmn408 */ self.remaindernear64("0.45555555", "1", "0.45555555", .toNearestOrEven)
+ /* ddrmn409 */ self.remaindernear64("0.455555555", "1", "0.455555555", .toNearestOrEven)
+ /* ddrmn411 */ self.remaindernear64("0.5", "1", "0.5", .toNearestOrEven)
+ /* ddrmn412 */ self.remaindernear64("0.55", "1", "-0.45", .toNearestOrEven)
+ /* ddrmn413 */ self.remaindernear64("0.555", "1", "-0.445", .toNearestOrEven)
+ /* ddrmn414 */ self.remaindernear64("0.5555", "1", "-0.4445", .toNearestOrEven)
+ /* ddrmn415 */ self.remaindernear64("0.55555", "1", "-0.44445", .toNearestOrEven)
+ /* ddrmn416 */ self.remaindernear64("0.555555", "1", "-0.444445", .toNearestOrEven)
+ /* ddrmn417 */ self.remaindernear64("0.5555555", "1", "-0.4444445", .toNearestOrEven)
+ /* ddrmn418 */ self.remaindernear64("0.55555555", "1", "-0.44444445", .toNearestOrEven)
+ /* ddrmn419 */ self.remaindernear64("0.555555555", "1", "-0.444444445", .toNearestOrEven)
+ /* ddrmn421 */ self.remaindernear64("1E+384", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn422 */ self.remaindernear64("1E+384", "1E+383", "0E+369", .toNearestOrEven)
+ /* ddrmn423 */ self.remaindernear64("1E+384", "2E+383", "0E+369", .toNearestOrEven)
+ /* ddrmn424 */ self.remaindernear64("1E+384", "3E+383", "1.00000000000000E+383", .toNearestOrEven)
+ /* ddrmn425 */ self.remaindernear64("1E+384", "4E+383", "2.00000000000000E+383", .toNearestOrEven)
+ /* ddrmn426 */ self.remaindernear64("1E+384", "5E+383", "0E+369", .toNearestOrEven)
+ /* ddrmn427 */ self.remaindernear64("1E+384", "6E+383", "-2.00000000000000E+383", .toNearestOrEven)
+ /* ddrmn428 */ self.remaindernear64("1E+384", "7E+383", "3.00000000000000E+383", .toNearestOrEven)
+ /* ddrmn429 */ self.remaindernear64("1E+384", "8E+383", "2.00000000000000E+383", .toNearestOrEven)
+ /* ddrmn430 */ self.remaindernear64("1E+384", "9E+383", "1.00000000000000E+383", .toNearestOrEven)
+ /* ddrmn431 */ self.remaindernear64("1E-397", "1E-398", "0E-398", .toNearestOrEven)
+ /* ddrmn432 */ self.remaindernear64("1E-397", "2E-398", "0E-398", .toNearestOrEven)
+ /* ddrmn433 */ self.remaindernear64("1E-397", "3E-398", "1E-398", .toNearestOrEven)
+ /* ddrmn434 */ self.remaindernear64("1E-397", "4E-398", "2E-398", .toNearestOrEven)
+ /* ddrmn435 */ self.remaindernear64("1E-397", "5E-398", "0E-398", .toNearestOrEven)
+ /* ddrmn436 */ self.remaindernear64("1E-397", "6E-398", "-2E-398", .toNearestOrEven)
+ /* ddrmn437 */ self.remaindernear64("1E-397", "7E-398", "3E-398", .toNearestOrEven)
+ /* ddrmn438 */ self.remaindernear64("1E-397", "8E-398", "2E-398", .toNearestOrEven)
+ /* ddrmn439 */ self.remaindernear64("1E-397", "9E-398", "1E-398", .toNearestOrEven)
+ /* ddrmn440 */ self.remaindernear64("1E-397", "10E-398", "0E-398", .toNearestOrEven)
+ /* ddrmn441 */ self.remaindernear64("1E-397", "11E-398", "-1E-398", .toNearestOrEven)
+ /* ddrmn442 */ self.remaindernear64("100E-397", "11E-398", "-1E-398", .toNearestOrEven)
+ /* ddrmn443 */ self.remaindernear64("100E-397", "20E-398", "0E-398", .toNearestOrEven)
+ /* ddrmn444 */ self.remaindernear64("100E-397", "21E-398", "-8E-398", .toNearestOrEven)
+ /* ddrmn445 */ self.remaindernear64("100E-397", "30E-398", "1.0E-397", .toNearestOrEven)
+ /* ddrmn650 */ self.remaindernear64("1", "1", "0", .toNearestOrEven)
+ /* ddrmn651 */ self.remaindernear64("-1", "1", "-0", .toNearestOrEven)
+ /* ddrmn652 */ self.remaindernear64("1", "-1", "0", .toNearestOrEven)
+ /* ddrmn653 */ self.remaindernear64("-1", "-1", "-0", .toNearestOrEven)
+ /* ddrmn654 */ self.remaindernear64("0", "1", "0", .toNearestOrEven)
+ /* ddrmn655 */ self.remaindernear64("-0", "1", "-0", .toNearestOrEven)
+ /* ddrmn656 */ self.remaindernear64("0", "-1", "0", .toNearestOrEven)
+ /* ddrmn657 */ self.remaindernear64("-0", "-1", "-0", .toNearestOrEven)
+ /* ddrmn658 */ self.remaindernear64("0.00", "1", "0.00", .toNearestOrEven)
+ /* ddrmn659 */ self.remaindernear64("-0.00", "1", "-0.00", .toNearestOrEven)
+ /* ddrmn680 */ self.remaindernear64("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn681 */ self.remaindernear64("Inf", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn682 */ self.remaindernear64("Inf", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn683 */ self.remaindernear64("Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn684 */ self.remaindernear64("Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn685 */ self.remaindernear64("Inf", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn686 */ self.remaindernear64("Inf", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn687 */ self.remaindernear64("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn688 */ self.remaindernear64("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* ddrmn689 */ self.remaindernear64("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn691 */ self.remaindernear64("-1", "Inf", "-1", .toNearestOrEven)
+ /* ddrmn692 */ self.remaindernear64("0", "Inf", "0", .toNearestOrEven)
+ /* ddrmn693 */ self.remaindernear64("-0", "Inf", "-0", .toNearestOrEven)
+ /* ddrmn694 */ self.remaindernear64("1", "Inf", "1", .toNearestOrEven)
+ /* ddrmn695 */ self.remaindernear64("1000", "Inf", "1000", .toNearestOrEven)
+ /* ddrmn696 */ self.remaindernear64("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn700 */ self.remaindernear64("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn701 */ self.remaindernear64("-Inf", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn702 */ self.remaindernear64("-Inf", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn703 */ self.remaindernear64("-Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn704 */ self.remaindernear64("-Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn705 */ self.remaindernear64("-Inf", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn706 */ self.remaindernear64("-Inf", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn707 */ self.remaindernear64("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn708 */ self.remaindernear64("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn709 */ self.remaindernear64("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* ddrmn710 */ self.remaindernear64("-1", "-Inf", "-1", .toNearestOrEven)
+ /* ddrmn711 */ self.remaindernear64("-0", "-Inf", "-0", .toNearestOrEven)
+ /* ddrmn712 */ self.remaindernear64("0", "-Inf", "0", .toNearestOrEven)
+ /* ddrmn713 */ self.remaindernear64("1", "-Inf", "1", .toNearestOrEven)
+ /* ddrmn714 */ self.remaindernear64("1000", "-Inf", "1000", .toNearestOrEven)
+ /* ddrmn715 */ self.remaindernear64("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn721 */ self.remaindernear64("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* ddrmn722 */ self.remaindernear64("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* ddrmn723 */ self.remaindernear64("NaN", "-1", "NaN", .toNearestOrEven)
+ /* ddrmn724 */ self.remaindernear64("NaN", "-0", "NaN", .toNearestOrEven)
+ /* ddrmn725 */ self.remaindernear64("-NaN", "0", "-NaN", .toNearestOrEven)
+ /* ddrmn726 */ self.remaindernear64("NaN", "1", "NaN", .toNearestOrEven)
+ /* ddrmn727 */ self.remaindernear64("NaN", "1000", "NaN", .toNearestOrEven)
+ /* ddrmn728 */ self.remaindernear64("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* ddrmn729 */ self.remaindernear64("NaN", "-NaN", "NaN", .toNearestOrEven)
+ /* ddrmn730 */ self.remaindernear64("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddrmn731 */ self.remaindernear64("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddrmn732 */ self.remaindernear64("-1", "NaN", "NaN", .toNearestOrEven)
+ /* ddrmn733 */ self.remaindernear64("-0", "-NaN", "-NaN", .toNearestOrEven)
+ /* ddrmn734 */ self.remaindernear64("0", "NaN", "NaN", .toNearestOrEven)
+ /* ddrmn735 */ self.remaindernear64("1", "-NaN", "-NaN", .toNearestOrEven)
+ /* ddrmn736 */ self.remaindernear64("1000", "NaN", "NaN", .toNearestOrEven)
+ /* ddrmn737 */ self.remaindernear64("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* ddrmn741 */ self.remaindernear64("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn742 */ self.remaindernear64("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn743 */ self.remaindernear64("-sNaN", "-1", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn744 */ self.remaindernear64("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn745 */ self.remaindernear64("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn746 */ self.remaindernear64("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn747 */ self.remaindernear64("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn749 */ self.remaindernear64("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn750 */ self.remaindernear64("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn751 */ self.remaindernear64("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn752 */ self.remaindernear64("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn753 */ self.remaindernear64("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn754 */ self.remaindernear64("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn755 */ self.remaindernear64("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn756 */ self.remaindernear64("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn757 */ self.remaindernear64("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn758 */ self.remaindernear64("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn759 */ self.remaindernear64("Inf", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn760 */ self.remaindernear64("NaN(0x1)", "NaN(0x7)", "NaN(0x1)", .toNearestOrEven)
+ /* ddrmn761 */ self.remaindernear64("sNaN(0x2)", "NaN(0x8)", "NaN(0x2)", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn762 */ self.remaindernear64("NaN(0x3)", "sNaN(0x9)", "NaN(0x9)", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn763 */ self.remaindernear64("sNaN(0x4)", "sNaN(0xa)", "NaN(0x4)", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn764 */ self.remaindernear64("15", "NaN(0xb)", "NaN(0xb)", .toNearestOrEven)
+ /* ddrmn765 */ self.remaindernear64("NaN(0x6)", "NaN(0xc)", "NaN(0x6)", .toNearestOrEven)
+ /* ddrmn766 */ self.remaindernear64("Inf", "NaN(0xd)", "NaN(0xd)", .toNearestOrEven)
+ /* ddrmn767 */ self.remaindernear64("NaN(0xe)", "-Inf", "NaN(0xe)", .toNearestOrEven)
+ /* ddrmn768 */ self.remaindernear64("0", "NaN(0xf)", "NaN(0xf)", .toNearestOrEven)
+ /* ddrmn769 */ self.remaindernear64("NaN(0x10)", "-0", "NaN(0x10)", .toNearestOrEven)
+ /* ddrmn770 */ self.remaindernear64("1234567890123456", "10", "-4", .toNearestOrEven)
+ /* ddrmn771 */ self.remaindernear64("1234567890123456", "1", "0", .toNearestOrEven)
+ /* ddrmn772 */ self.remaindernear64("1234567890123456", "0.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn773 */ self.remaindernear64("1234567890123456", "0.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddrmn801 */ self.remaindernear64("12345678000", "100", "0", .toNearestOrEven)
+ /* ddrmn802 */ self.remaindernear64("1", "12345678000", "1", .toNearestOrEven)
+ /* ddrmn803 */ self.remaindernear64("1234567800", "10", "0", .toNearestOrEven)
+ /* ddrmn804 */ self.remaindernear64("1", "1234567800", "1", .toNearestOrEven)
+ /* ddrmn805 */ self.remaindernear64("1234567890", "10", "0", .toNearestOrEven)
+ /* ddrmn806 */ self.remaindernear64("1", "1234567890", "1", .toNearestOrEven)
+ /* ddrmn807 */ self.remaindernear64("1234567891", "10", "1", .toNearestOrEven)
+ /* ddrmn808 */ self.remaindernear64("1", "1234567891", "1", .toNearestOrEven)
+ /* ddrmn809 */ self.remaindernear64("12345678901", "100", "1", .toNearestOrEven)
+ /* ddrmn810 */ self.remaindernear64("1", "12345678901", "1", .toNearestOrEven)
+ /* ddrmn811 */ self.remaindernear64("1234567896", "10", "-4", .toNearestOrEven)
+ /* ddrmn812 */ self.remaindernear64("1", "1234567896", "1", .toNearestOrEven)
+ /* ddrmn821 */ self.remaindernear64("12345678000", "100", "0", .toNearestOrEven)
+ /* ddrmn822 */ self.remaindernear64("1", "12345678000", "1", .toNearestOrEven)
+ /* ddrmn823 */ self.remaindernear64("1234567800", "10", "0", .toNearestOrEven)
+ /* ddrmn824 */ self.remaindernear64("1", "1234567800", "1", .toNearestOrEven)
+ /* ddrmn825 */ self.remaindernear64("1234567890", "10", "0", .toNearestOrEven)
+ /* ddrmn826 */ self.remaindernear64("1", "1234567890", "1", .toNearestOrEven)
+ /* ddrmn827 */ self.remaindernear64("1234567891", "10", "1", .toNearestOrEven)
+ /* ddrmn828 */ self.remaindernear64("1", "1234567891", "1", .toNearestOrEven)
+ /* ddrmn829 */ self.remaindernear64("12345678901", "100", "1", .toNearestOrEven)
+ /* ddrmn830 */ self.remaindernear64("1", "12345678901", "1", .toNearestOrEven)
+ /* ddrmn831 */ self.remaindernear64("1234567896", "10", "-4", .toNearestOrEven)
+ /* ddrmn832 */ self.remaindernear64("1", "1234567896", "1", .toNearestOrEven)
+ /* ddrmn840 */ self.remaindernear64("100000000.0", "1", "0.0", .toNearestOrEven)
+ /* ddrmn841 */ self.remaindernear64("100000000.4", "1", "0.4", .toNearestOrEven)
+ /* ddrmn842 */ self.remaindernear64("100000000.5", "1", "0.5", .toNearestOrEven)
+ /* ddrmn843 */ self.remaindernear64("100000000.9", "1", "-0.1", .toNearestOrEven)
+ /* ddrmn844 */ self.remaindernear64("100000000.999", "1", "-0.001", .toNearestOrEven)
+ /* ddrmn850 */ self.remaindernear64("100000003", "5", "-2", .toNearestOrEven)
+ /* ddrmn851 */ self.remaindernear64("10000003", "5", "-2", .toNearestOrEven)
+ /* ddrmn852 */ self.remaindernear64("1000003", "5", "-2", .toNearestOrEven)
+ /* ddrmn853 */ self.remaindernear64("100003", "5", "-2", .toNearestOrEven)
+ /* ddrmn854 */ self.remaindernear64("10003", "5", "-2", .toNearestOrEven)
+ /* ddrmn855 */ self.remaindernear64("1003", "5", "-2", .toNearestOrEven)
+ /* ddrmn856 */ self.remaindernear64("103", "5", "-2", .toNearestOrEven)
+ /* ddrmn857 */ self.remaindernear64("13", "5", "-2", .toNearestOrEven)
+ /* ddrmn858 */ self.remaindernear64("1", "5", "1", .toNearestOrEven)
+ /* ddrmn860 */ self.remaindernear64("123.0e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrmn861 */ self.remaindernear64("1230", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrmn862 */ self.remaindernear64("12.3e2", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrmn863 */ self.remaindernear64("1.23e3", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrmn864 */ self.remaindernear64("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrmn870 */ self.remaindernear64("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrmn871 */ self.remaindernear64("123e1", "100000000000000", "1230", .toNearestOrEven)
+ /* ddrmn872 */ self.remaindernear64("123e1", "10000000000000", "1230", .toNearestOrEven)
+ /* ddrmn873 */ self.remaindernear64("123e1", "1000000000000", "1230", .toNearestOrEven)
+ /* ddrmn874 */ self.remaindernear64("123e1", "100000000000", "1230", .toNearestOrEven)
+ /* ddrmn875 */ self.remaindernear64("123e1", "10000000000", "1230", .toNearestOrEven)
+ /* ddrmn876 */ self.remaindernear64("123e1", "1000000000", "1230", .toNearestOrEven)
+ /* ddrmn877 */ self.remaindernear64("123e1", "100000000", "1230", .toNearestOrEven)
+ /* ddrmn878 */ self.remaindernear64("1230", "100000000", "1230", .toNearestOrEven)
+ /* ddrmn879 */ self.remaindernear64("123e1", "10000000", "1230", .toNearestOrEven)
+ /* ddrmn880 */ self.remaindernear64("123e1", "1000000", "1230", .toNearestOrEven)
+ /* ddrmn881 */ self.remaindernear64("123e1", "100000", "1230", .toNearestOrEven)
+ /* ddrmn882 */ self.remaindernear64("123e1", "10000", "1230", .toNearestOrEven)
+ /* ddrmn883 */ self.remaindernear64("123e1", "1000", "230", .toNearestOrEven)
+ /* ddrmn884 */ self.remaindernear64("123e1", "100", "30", .toNearestOrEven)
+ /* ddrmn885 */ self.remaindernear64("123e1", "10", "0", .toNearestOrEven)
+ /* ddrmn886 */ self.remaindernear64("123e1", "1", "0", .toNearestOrEven)
+ /* ddrmn890 */ self.remaindernear64("123e1", "2000000000000000", "1230", .toNearestOrEven)
+ /* ddrmn891 */ self.remaindernear64("123e1", "200000000000000", "1230", .toNearestOrEven)
+ /* ddrmn892 */ self.remaindernear64("123e1", "20000000000000", "1230", .toNearestOrEven)
+ /* ddrmn893 */ self.remaindernear64("123e1", "2000000000000", "1230", .toNearestOrEven)
+ /* ddrmn894 */ self.remaindernear64("123e1", "200000000000", "1230", .toNearestOrEven)
+ /* ddrmn895 */ self.remaindernear64("123e1", "20000000000", "1230", .toNearestOrEven)
+ /* ddrmn896 */ self.remaindernear64("123e1", "2000000000", "1230", .toNearestOrEven)
+ /* ddrmn897 */ self.remaindernear64("123e1", "200000000", "1230", .toNearestOrEven)
+ /* ddrmn899 */ self.remaindernear64("123e1", "20000000", "1230", .toNearestOrEven)
+ /* ddrmn900 */ self.remaindernear64("123e1", "2000000", "1230", .toNearestOrEven)
+ /* ddrmn901 */ self.remaindernear64("123e1", "200000", "1230", .toNearestOrEven)
+ /* ddrmn902 */ self.remaindernear64("123e1", "20000", "1230", .toNearestOrEven)
+ /* ddrmn903 */ self.remaindernear64("123e1", "2000", "-770", .toNearestOrEven)
+ /* ddrmn904 */ self.remaindernear64("123e1", "200", "30", .toNearestOrEven)
+ /* ddrmn905 */ self.remaindernear64("123e1", "20", "-10", .toNearestOrEven)
+ /* ddrmn906 */ self.remaindernear64("123e1", "2", "0", .toNearestOrEven)
+ /* ddrmn910 */ self.remaindernear64("123e1", "5000000000000000", "1230", .toNearestOrEven)
+ /* ddrmn911 */ self.remaindernear64("123e1", "500000000000000", "1230", .toNearestOrEven)
+ /* ddrmn912 */ self.remaindernear64("123e1", "50000000000000", "1230", .toNearestOrEven)
+ /* ddrmn913 */ self.remaindernear64("123e1", "5000000000000", "1230", .toNearestOrEven)
+ /* ddrmn914 */ self.remaindernear64("123e1", "500000000000", "1230", .toNearestOrEven)
+ /* ddrmn915 */ self.remaindernear64("123e1", "50000000000", "1230", .toNearestOrEven)
+ /* ddrmn916 */ self.remaindernear64("123e1", "5000000000", "1230", .toNearestOrEven)
+ /* ddrmn917 */ self.remaindernear64("123e1", "500000000", "1230", .toNearestOrEven)
+ /* ddrmn919 */ self.remaindernear64("123e1", "50000000", "1230", .toNearestOrEven)
+ /* ddrmn920 */ self.remaindernear64("123e1", "5000000", "1230", .toNearestOrEven)
+ /* ddrmn921 */ self.remaindernear64("123e1", "500000", "1230", .toNearestOrEven)
+ /* ddrmn922 */ self.remaindernear64("123e1", "50000", "1230", .toNearestOrEven)
+ /* ddrmn923 */ self.remaindernear64("123e1", "5000", "1230", .toNearestOrEven)
+ /* ddrmn924 */ self.remaindernear64("123e1", "500", "230", .toNearestOrEven)
+ /* ddrmn925 */ self.remaindernear64("123e1", "50", "-20", .toNearestOrEven)
+ /* ddrmn926 */ self.remaindernear64("123e1", "5", "0", .toNearestOrEven)
+ /* ddrmn930 */ self.remaindernear64("123e1", "9000000000000000", "1230", .toNearestOrEven)
+ /* ddrmn931 */ self.remaindernear64("123e1", "900000000000000", "1230", .toNearestOrEven)
+ /* ddrmn932 */ self.remaindernear64("123e1", "90000000000000", "1230", .toNearestOrEven)
+ /* ddrmn933 */ self.remaindernear64("123e1", "9000000000000", "1230", .toNearestOrEven)
+ /* ddrmn934 */ self.remaindernear64("123e1", "900000000000", "1230", .toNearestOrEven)
+ /* ddrmn935 */ self.remaindernear64("123e1", "90000000000", "1230", .toNearestOrEven)
+ /* ddrmn936 */ self.remaindernear64("123e1", "9000000000", "1230", .toNearestOrEven)
+ /* ddrmn937 */ self.remaindernear64("123e1", "900000000", "1230", .toNearestOrEven)
+ /* ddrmn939 */ self.remaindernear64("123e1", "90000000", "1230", .toNearestOrEven)
+ /* ddrmn940 */ self.remaindernear64("123e1", "9000000", "1230", .toNearestOrEven)
+ /* ddrmn941 */ self.remaindernear64("123e1", "900000", "1230", .toNearestOrEven)
+ /* ddrmn942 */ self.remaindernear64("123e1", "90000", "1230", .toNearestOrEven)
+ /* ddrmn943 */ self.remaindernear64("123e1", "9000", "1230", .toNearestOrEven)
+ /* ddrmn944 */ self.remaindernear64("123e1", "900", "330", .toNearestOrEven)
+ /* ddrmn945 */ self.remaindernear64("123e1", "90", "-30", .toNearestOrEven)
+ /* ddrmn946 */ self.remaindernear64("123e1", "9", "-3", .toNearestOrEven)
+ /* ddrmn950 */ self.remaindernear64("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* ddrmn961 */ self.remaindernear64("123e1", "2999999999999999", "1230", .toNearestOrEven)
+ /* ddrmn962 */ self.remaindernear64("123e1", "3999999999999999", "1230", .toNearestOrEven)
+ /* ddrmn963 */ self.remaindernear64("123e1", "4999999999999999", "1230", .toNearestOrEven)
+ /* ddrmn964 */ self.remaindernear64("123e1", "5999999999999999", "1230", .toNearestOrEven)
+ /* ddrmn965 */ self.remaindernear64("123e1", "6999999999999999", "1230", .toNearestOrEven)
+ /* ddrmn966 */ self.remaindernear64("123e1", "7999999999999999", "1230", .toNearestOrEven)
+ /* ddrmn967 */ self.remaindernear64("123e1", "8999999999999999", "1230", .toNearestOrEven)
+ /* ddrmn968 */ self.remaindernear64("123e1", "9999999999999999", "1230", .toNearestOrEven)
+ /* ddrmn969 */ self.remaindernear64("123e1", "9876543210987654", "1230", .toNearestOrEven)
+ /* ddrmn980 */ self.remaindernear64("123e1", "1000E299", "1.23E+3", .toNearestOrEven)
+ }
+
+ private func remaindernear64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.remainder(dividingBy: arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_rem(arg0, arg1, result: result, status: &status)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_remaindernear128() {
+ /* dqrmn001 */ self.remaindernear128("1", "1", "0", .toNearestOrEven)
+ /* dqrmn002 */ self.remaindernear128("2", "1", "0", .toNearestOrEven)
+ /* dqrmn003 */ self.remaindernear128("1", "2", "1", .toNearestOrEven)
+ /* dqrmn004 */ self.remaindernear128("2", "2", "0", .toNearestOrEven)
+ /* dqrmn005 */ self.remaindernear128("0", "1", "0", .toNearestOrEven)
+ /* dqrmn006 */ self.remaindernear128("0", "2", "0", .toNearestOrEven)
+ /* dqrmn007 */ self.remaindernear128("1", "3", "1", .toNearestOrEven)
+ /* dqrmn008 */ self.remaindernear128("2", "3", "-1", .toNearestOrEven)
+ /* dqrmn009 */ self.remaindernear128("3", "3", "0", .toNearestOrEven)
+ /* dqrmn010 */ self.remaindernear128("2.4", "1", "0.4", .toNearestOrEven)
+ /* dqrmn011 */ self.remaindernear128("2.4", "-1", "0.4", .toNearestOrEven)
+ /* dqrmn012 */ self.remaindernear128("-2.4", "1", "-0.4", .toNearestOrEven)
+ /* dqrmn013 */ self.remaindernear128("-2.4", "-1", "-0.4", .toNearestOrEven)
+ /* dqrmn014 */ self.remaindernear128("2.40", "1", "0.40", .toNearestOrEven)
+ /* dqrmn015 */ self.remaindernear128("2.400", "1", "0.400", .toNearestOrEven)
+ /* dqrmn016 */ self.remaindernear128("2.4", "2", "0.4", .toNearestOrEven)
+ /* dqrmn017 */ self.remaindernear128("2.400", "2", "0.400", .toNearestOrEven)
+ /* dqrmn018 */ self.remaindernear128("2.", "2", "0", .toNearestOrEven)
+ /* dqrmn019 */ self.remaindernear128("20", "20", "0", .toNearestOrEven)
+ /* dqrmn020 */ self.remaindernear128("187", "187", "0", .toNearestOrEven)
+ /* dqrmn021 */ self.remaindernear128("5", "2", "1", .toNearestOrEven)
+ /* dqrmn022 */ self.remaindernear128("5", "2.0", "1.0", .toNearestOrEven)
+ /* dqrmn023 */ self.remaindernear128("5", "2.000", "1.000", .toNearestOrEven)
+ /* dqrmn024 */ self.remaindernear128("5", "0.200", "0.000", .toNearestOrEven)
+ /* dqrmn025 */ self.remaindernear128("5", "0.200", "0.000", .toNearestOrEven)
+ /* dqrmn030 */ self.remaindernear128("1", "2", "1", .toNearestOrEven)
+ /* dqrmn031 */ self.remaindernear128("1", "4", "1", .toNearestOrEven)
+ /* dqrmn032 */ self.remaindernear128("1", "8", "1", .toNearestOrEven)
+ /* dqrmn033 */ self.remaindernear128("1", "16", "1", .toNearestOrEven)
+ /* dqrmn034 */ self.remaindernear128("1", "32", "1", .toNearestOrEven)
+ /* dqrmn035 */ self.remaindernear128("1", "64", "1", .toNearestOrEven)
+ /* dqrmn040 */ self.remaindernear128("1", "-2", "1", .toNearestOrEven)
+ /* dqrmn041 */ self.remaindernear128("1", "-4", "1", .toNearestOrEven)
+ /* dqrmn042 */ self.remaindernear128("1", "-8", "1", .toNearestOrEven)
+ /* dqrmn043 */ self.remaindernear128("1", "-16", "1", .toNearestOrEven)
+ /* dqrmn044 */ self.remaindernear128("1", "-32", "1", .toNearestOrEven)
+ /* dqrmn045 */ self.remaindernear128("1", "-64", "1", .toNearestOrEven)
+ /* dqrmn050 */ self.remaindernear128("-1", "2", "-1", .toNearestOrEven)
+ /* dqrmn051 */ self.remaindernear128("-1", "4", "-1", .toNearestOrEven)
+ /* dqrmn052 */ self.remaindernear128("-1", "8", "-1", .toNearestOrEven)
+ /* dqrmn053 */ self.remaindernear128("-1", "16", "-1", .toNearestOrEven)
+ /* dqrmn054 */ self.remaindernear128("-1", "32", "-1", .toNearestOrEven)
+ /* dqrmn055 */ self.remaindernear128("-1", "64", "-1", .toNearestOrEven)
+ /* dqrmn060 */ self.remaindernear128("-1", "-2", "-1", .toNearestOrEven)
+ /* dqrmn061 */ self.remaindernear128("-1", "-4", "-1", .toNearestOrEven)
+ /* dqrmn062 */ self.remaindernear128("-1", "-8", "-1", .toNearestOrEven)
+ /* dqrmn063 */ self.remaindernear128("-1", "-16", "-1", .toNearestOrEven)
+ /* dqrmn064 */ self.remaindernear128("-1", "-32", "-1", .toNearestOrEven)
+ /* dqrmn065 */ self.remaindernear128("-1", "-64", "-1", .toNearestOrEven)
+ /* dqrmn066 */ self.remaindernear128("9.9", "1", "-0.1", .toNearestOrEven)
+ /* dqrmn067 */ self.remaindernear128("99.7", "1", "-0.3", .toNearestOrEven)
+ /* dqrmn068 */ self.remaindernear128("999999999", "1", "0", .toNearestOrEven)
+ /* dqrmn069 */ self.remaindernear128("999999999.4", "1", "0.4", .toNearestOrEven)
+ /* dqrmn070 */ self.remaindernear128("999999999.5", "1", "-0.5", .toNearestOrEven)
+ /* dqrmn071 */ self.remaindernear128("999999999.9", "1", "-0.1", .toNearestOrEven)
+ /* dqrmn072 */ self.remaindernear128("999999999.999", "1", "-0.001", .toNearestOrEven)
+ /* dqrmn073 */ self.remaindernear128("999999.999999", "1", "-0.000001", .toNearestOrEven)
+ /* dqrmn074 */ self.remaindernear128("9", "1", "0", .toNearestOrEven)
+ /* dqrmn075 */ self.remaindernear128("9999999999999999", "1", "0", .toNearestOrEven)
+ /* dqrmn076 */ self.remaindernear128("9999999999999999", "2", "-1", .toNearestOrEven)
+ /* dqrmn077 */ self.remaindernear128("9999999999999999", "3", "0", .toNearestOrEven)
+ /* dqrmn078 */ self.remaindernear128("9999999999999999", "4", "-1", .toNearestOrEven)
+ /* dqrmn080 */ self.remaindernear128("0.", "1", "0", .toNearestOrEven)
+ /* dqrmn081 */ self.remaindernear128(".0", "1", "0.0", .toNearestOrEven)
+ /* dqrmn082 */ self.remaindernear128("0.00", "1", "0.00", .toNearestOrEven)
+ /* dqrmn083 */ self.remaindernear128("0.00E+9", "1", "0", .toNearestOrEven)
+ /* dqrmn084 */ self.remaindernear128("0.00E+3", "1", "0", .toNearestOrEven)
+ /* dqrmn085 */ self.remaindernear128("0.00E+2", "1", "0", .toNearestOrEven)
+ /* dqrmn086 */ self.remaindernear128("0.00E+1", "1", "0.0", .toNearestOrEven)
+ /* dqrmn087 */ self.remaindernear128("0.00E+0", "1", "0.00", .toNearestOrEven)
+ /* dqrmn088 */ self.remaindernear128("0.00E-0", "1", "0.00", .toNearestOrEven)
+ /* dqrmn089 */ self.remaindernear128("0.00E-1", "1", "0.000", .toNearestOrEven)
+ /* dqrmn090 */ self.remaindernear128("0.00E-2", "1", "0.0000", .toNearestOrEven)
+ /* dqrmn091 */ self.remaindernear128("0.00E-3", "1", "0.00000", .toNearestOrEven)
+ /* dqrmn092 */ self.remaindernear128("0.00E-4", "1", "0.000000", .toNearestOrEven)
+ /* dqrmn093 */ self.remaindernear128("0.00E-5", "1", "0E-7", .toNearestOrEven)
+ /* dqrmn094 */ self.remaindernear128("0.00E-6", "1", "0E-8", .toNearestOrEven)
+ /* dqrmn095 */ self.remaindernear128("0.0000E-50", "1", "0E-54", .toNearestOrEven)
+ /* dqrmn101 */ self.remaindernear128("0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn102 */ self.remaindernear128("0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn103 */ self.remaindernear128("-0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn104 */ self.remaindernear128("-0", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn105 */ self.remaindernear128("0.0E5", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn1051 */ self.remaindernear128("1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn1052 */ self.remaindernear128("1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn1053 */ self.remaindernear128("-1e+277", "1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn1054 */ self.remaindernear128("-1e+277", "-1e-311", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn1055 */ self.remaindernear128("1e-277", "1e+311", "1E-277", .toNearestOrEven)
+ /* dqrmn1056 */ self.remaindernear128("1e-277", "-1e+311", "1E-277", .toNearestOrEven)
+ /* dqrmn1057 */ self.remaindernear128("-1e-277", "1e+311", "-1E-277", .toNearestOrEven)
+ /* dqrmn1058 */ self.remaindernear128("-1e-277", "-1e+311", "-1E-277", .toNearestOrEven)
+ /* dqrmn106 */ self.remaindernear128("0.000", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn107 */ self.remaindernear128("0.0001", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn1070 */ self.remaindernear128("8.336804418094040989630006819881709E-6143", "8.336804418094040989630006819889000E-6143", "-7291E-6176", .toNearestOrEven)
+ /* dqrmn108 */ self.remaindernear128("0.01", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn109 */ self.remaindernear128("0.1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn110 */ self.remaindernear128("1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn1101 */ self.remaindernear128("1234567890123456789012345678901234", "1.000000000000000000000000000000001", "-0.234567890123456789012345678901233", .toNearestOrEven)
+ /* dqrmn1102 */ self.remaindernear128("1234567890123456789012345678901234", "1.00000000000000000000000000000001", "-0.34567890123456789012345678901222", .toNearestOrEven)
+ /* dqrmn1103 */ self.remaindernear128("1234567890123456789012345678901234", "1.0000000000000000000000000000001", "-0.4567890123456789012345678901111", .toNearestOrEven)
+ /* dqrmn1104 */ self.remaindernear128("1234567890123456789012345678901255", "4.000000000000000000000000000000001", "-1.308641972530864197253086419725314", .toNearestOrEven)
+ /* dqrmn1105 */ self.remaindernear128("1234567890123456789012345678901234", "4.000000000000000000000000000000001", "1.691358027469135802746913580274692", .toNearestOrEven)
+ /* dqrmn1106 */ self.remaindernear128("1234567890123456789012345678901234", "4.9999999999999999999999999999999", "-1.3086421975308642197530864219748", .toNearestOrEven)
+ /* dqrmn1107 */ self.remaindernear128("1234567890123456789012345678901234", "4.99999999999999999999999999999999", "1.46913578024691357802469135780247", .toNearestOrEven)
+ /* dqrmn1108 */ self.remaindernear128("1234567890123456789012345678901234", "4.999999999999999999999999999999999", "-0.753086421975308642197530864219753", .toNearestOrEven)
+ /* dqrmn1109 */ self.remaindernear128("1234567890123456789012345678901234", "5.000000000000000000000000000000001", "-1.246913578024691357802469135780247", .toNearestOrEven)
+ /* dqrmn111 */ self.remaindernear128("1", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn1110 */ self.remaindernear128("1234567890123456789012345678901234", "5.00000000000000000000000000000001", "1.53086421975308642197530864219754", .toNearestOrEven)
+ /* dqrmn1111 */ self.remaindernear128("1234567890123456789012345678901234", "5.0000000000000000000000000000001", "-0.6913578024691357802469135780242", .toNearestOrEven)
+ /* dqrmn112 */ self.remaindernear128("10", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn113 */ self.remaindernear128("1E+100", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn114 */ self.remaindernear128("1E+380", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn115 */ self.remaindernear128("0.0001", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn116 */ self.remaindernear128("0.01", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn119 */ self.remaindernear128("0.1", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn120 */ self.remaindernear128("1", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn121 */ self.remaindernear128("1", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn122 */ self.remaindernear128("10", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn123 */ self.remaindernear128("1E+100", "-0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn124 */ self.remaindernear128("1E+384", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn130 */ self.remaindernear128("0", "1", "0", .toNearestOrEven)
+ /* dqrmn131 */ self.remaindernear128("0", "-1", "0", .toNearestOrEven)
+ /* dqrmn132 */ self.remaindernear128("0.0", "1", "0.0", .toNearestOrEven)
+ /* dqrmn133 */ self.remaindernear128("0.0", "-1", "0.0", .toNearestOrEven)
+ /* dqrmn134 */ self.remaindernear128("-0", "1", "-0", .toNearestOrEven)
+ /* dqrmn135 */ self.remaindernear128("-0", "-1", "-0", .toNearestOrEven)
+ /* dqrmn136 */ self.remaindernear128("-0.0", "1", "-0.0", .toNearestOrEven)
+ /* dqrmn137 */ self.remaindernear128("-0.0", "-1", "-0.0", .toNearestOrEven)
+ /* dqrmn143 */ self.remaindernear128("0.5", "2", "0.5", .toNearestOrEven)
+ /* dqrmn144 */ self.remaindernear128("0.5", "2.1", "0.5", .toNearestOrEven)
+ /* dqrmn145 */ self.remaindernear128("0.5", "2.01", "0.50", .toNearestOrEven)
+ /* dqrmn146 */ self.remaindernear128("0.5", "2.001", "0.500", .toNearestOrEven)
+ /* dqrmn147 */ self.remaindernear128("0.50", "2", "0.50", .toNearestOrEven)
+ /* dqrmn148 */ self.remaindernear128("0.50", "2.01", "0.50", .toNearestOrEven)
+ /* dqrmn149 */ self.remaindernear128("0.50", "2.001", "0.500", .toNearestOrEven)
+ /* dqrmn150 */ self.remaindernear128("1", "1", "0", .toNearestOrEven)
+ /* dqrmn151 */ self.remaindernear128("1", "2", "1", .toNearestOrEven)
+ /* dqrmn152 */ self.remaindernear128("1", "3", "1", .toNearestOrEven)
+ /* dqrmn153 */ self.remaindernear128("1", "4", "1", .toNearestOrEven)
+ /* dqrmn154 */ self.remaindernear128("1", "5", "1", .toNearestOrEven)
+ /* dqrmn155 */ self.remaindernear128("1", "6", "1", .toNearestOrEven)
+ /* dqrmn156 */ self.remaindernear128("1", "7", "1", .toNearestOrEven)
+ /* dqrmn157 */ self.remaindernear128("1", "8", "1", .toNearestOrEven)
+ /* dqrmn158 */ self.remaindernear128("1", "9", "1", .toNearestOrEven)
+ /* dqrmn159 */ self.remaindernear128("1", "10", "1", .toNearestOrEven)
+ /* dqrmn160 */ self.remaindernear128("1", "1", "0", .toNearestOrEven)
+ /* dqrmn161 */ self.remaindernear128("2", "1", "0", .toNearestOrEven)
+ /* dqrmn162 */ self.remaindernear128("3", "1", "0", .toNearestOrEven)
+ /* dqrmn163 */ self.remaindernear128("4", "1", "0", .toNearestOrEven)
+ /* dqrmn164 */ self.remaindernear128("5", "1", "0", .toNearestOrEven)
+ /* dqrmn165 */ self.remaindernear128("6", "1", "0", .toNearestOrEven)
+ /* dqrmn166 */ self.remaindernear128("7", "1", "0", .toNearestOrEven)
+ /* dqrmn167 */ self.remaindernear128("8", "1", "0", .toNearestOrEven)
+ /* dqrmn168 */ self.remaindernear128("9", "1", "0", .toNearestOrEven)
+ /* dqrmn169 */ self.remaindernear128("10", "1", "0", .toNearestOrEven)
+ /* dqrmn171 */ self.remaindernear128("0.4", "1.020", "0.400", .toNearestOrEven)
+ /* dqrmn172 */ self.remaindernear128("0.50", "1.020", "0.500", .toNearestOrEven)
+ /* dqrmn173 */ self.remaindernear128("0.51", "1.020", "0.510", .toNearestOrEven)
+ /* dqrmn174 */ self.remaindernear128("0.52", "1.020", "-0.500", .toNearestOrEven)
+ /* dqrmn175 */ self.remaindernear128("0.6", "1.020", "-0.420", .toNearestOrEven)
+ /* dqrmn201 */ self.remaindernear128("0", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn202 */ self.remaindernear128("0.0E5", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn203 */ self.remaindernear128("0.000", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn204 */ self.remaindernear128("0.0001", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn205 */ self.remaindernear128("0.01", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn206 */ self.remaindernear128("0.1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn207 */ self.remaindernear128("1", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn208 */ self.remaindernear128("1", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn209 */ self.remaindernear128("10", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn210 */ self.remaindernear128("1E+100", "0.0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn211 */ self.remaindernear128("1E+380", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn221 */ self.remaindernear128("2.1", "3", "-0.9", .toNearestOrEven)
+ /* dqrmn222 */ self.remaindernear128("10", "6", "-2", .toNearestOrEven)
+ /* dqrmn223 */ self.remaindernear128("10", "3", "1", .toNearestOrEven)
+ /* dqrmn224 */ self.remaindernear128("-10", "3", "-1", .toNearestOrEven)
+ /* dqrmn225 */ self.remaindernear128("10.2", "1", "0.2", .toNearestOrEven)
+ /* dqrmn226 */ self.remaindernear128("10", "0.3", "0.1", .toNearestOrEven)
+ /* dqrmn227 */ self.remaindernear128("3.6", "1.3", "-0.3", .toNearestOrEven)
+ /* dqrmn231 */ self.remaindernear128("-0.4", "1.020", "-0.400", .toNearestOrEven)
+ /* dqrmn232 */ self.remaindernear128("-0.50", "1.020", "-0.500", .toNearestOrEven)
+ /* dqrmn233 */ self.remaindernear128("-0.51", "1.020", "-0.510", .toNearestOrEven)
+ /* dqrmn234 */ self.remaindernear128("-0.52", "1.020", "0.500", .toNearestOrEven)
+ /* dqrmn235 */ self.remaindernear128("-0.6", "1.020", "0.420", .toNearestOrEven)
+ /* dqrmn240 */ self.remaindernear128("1E+2", "1.00", "0.00", .toNearestOrEven)
+ /* dqrmn301 */ self.remaindernear128("1", "3", "1", .toNearestOrEven)
+ /* dqrmn302 */ self.remaindernear128("5", "5", "0", .toNearestOrEven)
+ /* dqrmn303 */ self.remaindernear128("13", "10", "3", .toNearestOrEven)
+ /* dqrmn304 */ self.remaindernear128("13", "50", "13", .toNearestOrEven)
+ /* dqrmn305 */ self.remaindernear128("13", "100", "13", .toNearestOrEven)
+ /* dqrmn306 */ self.remaindernear128("13", "1000", "13", .toNearestOrEven)
+ /* dqrmn307 */ self.remaindernear128(".13", "1", "0.13", .toNearestOrEven)
+ /* dqrmn308 */ self.remaindernear128("0.133", "1", "0.133", .toNearestOrEven)
+ /* dqrmn309 */ self.remaindernear128("0.1033", "1", "0.1033", .toNearestOrEven)
+ /* dqrmn310 */ self.remaindernear128("1.033", "1", "0.033", .toNearestOrEven)
+ /* dqrmn311 */ self.remaindernear128("10.33", "1", "0.33", .toNearestOrEven)
+ /* dqrmn312 */ self.remaindernear128("10.33", "10", "0.33", .toNearestOrEven)
+ /* dqrmn313 */ self.remaindernear128("103.3", "1", "0.3", .toNearestOrEven)
+ /* dqrmn314 */ self.remaindernear128("133", "10", "3", .toNearestOrEven)
+ /* dqrmn315 */ self.remaindernear128("1033", "10", "3", .toNearestOrEven)
+ /* dqrmn316 */ self.remaindernear128("1033", "50", "-17", .toNearestOrEven)
+ /* dqrmn317 */ self.remaindernear128("101.0", "3", "-1.0", .toNearestOrEven)
+ /* dqrmn318 */ self.remaindernear128("102.0", "3", "0.0", .toNearestOrEven)
+ /* dqrmn319 */ self.remaindernear128("103.0", "3", "1.0", .toNearestOrEven)
+ /* dqrmn320 */ self.remaindernear128("2.40", "1", "0.40", .toNearestOrEven)
+ /* dqrmn321 */ self.remaindernear128("2.400", "1", "0.400", .toNearestOrEven)
+ /* dqrmn322 */ self.remaindernear128("2.4", "1", "0.4", .toNearestOrEven)
+ /* dqrmn323 */ self.remaindernear128("2.4", "2", "0.4", .toNearestOrEven)
+ /* dqrmn324 */ self.remaindernear128("2.400", "2", "0.400", .toNearestOrEven)
+ /* dqrmn325 */ self.remaindernear128("1", "0.3", "0.1", .toNearestOrEven)
+ /* dqrmn326 */ self.remaindernear128("1", "0.30", "0.10", .toNearestOrEven)
+ /* dqrmn327 */ self.remaindernear128("1", "0.300", "0.100", .toNearestOrEven)
+ /* dqrmn328 */ self.remaindernear128("1", "0.3000", "0.1000", .toNearestOrEven)
+ /* dqrmn329 */ self.remaindernear128("1.0", "0.3", "0.1", .toNearestOrEven)
+ /* dqrmn330 */ self.remaindernear128("1.00", "0.3", "0.10", .toNearestOrEven)
+ /* dqrmn331 */ self.remaindernear128("1.000", "0.3", "0.100", .toNearestOrEven)
+ /* dqrmn332 */ self.remaindernear128("1.0000", "0.3", "0.1000", .toNearestOrEven)
+ /* dqrmn333 */ self.remaindernear128("0.5", "2", "0.5", .toNearestOrEven)
+ /* dqrmn334 */ self.remaindernear128("0.5", "2.1", "0.5", .toNearestOrEven)
+ /* dqrmn335 */ self.remaindernear128("0.5", "2.01", "0.50", .toNearestOrEven)
+ /* dqrmn336 */ self.remaindernear128("0.5", "2.001", "0.500", .toNearestOrEven)
+ /* dqrmn337 */ self.remaindernear128("0.50", "2", "0.50", .toNearestOrEven)
+ /* dqrmn338 */ self.remaindernear128("0.50", "2.01", "0.50", .toNearestOrEven)
+ /* dqrmn339 */ self.remaindernear128("0.50", "2.001", "0.500", .toNearestOrEven)
+ /* dqrmn340 */ self.remaindernear128("0.5", "0.5000001", "-1E-7", .toNearestOrEven)
+ /* dqrmn341 */ self.remaindernear128("0.5", "0.50000001", "-1E-8", .toNearestOrEven)
+ /* dqrmn342 */ self.remaindernear128("0.5", "0.500000001", "-1E-9", .toNearestOrEven)
+ /* dqrmn343 */ self.remaindernear128("0.5", "0.5000000001", "-1E-10", .toNearestOrEven)
+ /* dqrmn344 */ self.remaindernear128("0.5", "0.50000000001", "-1E-11", .toNearestOrEven)
+ /* dqrmn345 */ self.remaindernear128("0.5", "0.4999999", "1E-7", .toNearestOrEven)
+ /* dqrmn346 */ self.remaindernear128("0.5", "0.49999999", "1E-8", .toNearestOrEven)
+ /* dqrmn347 */ self.remaindernear128("0.5", "0.499999999", "1E-9", .toNearestOrEven)
+ /* dqrmn348 */ self.remaindernear128("0.5", "0.4999999999", "1E-10", .toNearestOrEven)
+ /* dqrmn349 */ self.remaindernear128("0.5", "0.49999999999", "1E-11", .toNearestOrEven)
+ /* dqrmn350 */ self.remaindernear128("0.5", "0.499999999999", "1E-12", .toNearestOrEven)
+ /* dqrmn351 */ self.remaindernear128("0.03", "7", "0.03", .toNearestOrEven)
+ /* dqrmn352 */ self.remaindernear128("5", "2", "1", .toNearestOrEven)
+ /* dqrmn353 */ self.remaindernear128("4.1", "2", "0.1", .toNearestOrEven)
+ /* dqrmn354 */ self.remaindernear128("4.01", "2", "0.01", .toNearestOrEven)
+ /* dqrmn355 */ self.remaindernear128("4.001", "2", "0.001", .toNearestOrEven)
+ /* dqrmn356 */ self.remaindernear128("4.0001", "2", "0.0001", .toNearestOrEven)
+ /* dqrmn357 */ self.remaindernear128("4.00001", "2", "0.00001", .toNearestOrEven)
+ /* dqrmn358 */ self.remaindernear128("4.000001", "2", "0.000001", .toNearestOrEven)
+ /* dqrmn359 */ self.remaindernear128("4.0000001", "2", "1E-7", .toNearestOrEven)
+ /* dqrmn360 */ self.remaindernear128("1.2", "0.7345", "-0.2690", .toNearestOrEven)
+ /* dqrmn361 */ self.remaindernear128("0.8", "12", "0.8", .toNearestOrEven)
+ /* dqrmn362 */ self.remaindernear128("0.8", "0.2", "0.0", .toNearestOrEven)
+ /* dqrmn363 */ self.remaindernear128("0.8", "0.3", "-0.1", .toNearestOrEven)
+ /* dqrmn364 */ self.remaindernear128("0.800", "12", "0.800", .toNearestOrEven)
+ /* dqrmn365 */ self.remaindernear128("0.800", "1.7", "0.800", .toNearestOrEven)
+ /* dqrmn366 */ self.remaindernear128("2.400", "2", "0.400", .toNearestOrEven)
+ /* dqrmn371 */ self.remaindernear128("121", "2", "1", .toNearestOrEven)
+ /* dqrmn372 */ self.remaindernear128("122", "2", "0", .toNearestOrEven)
+ /* dqrmn373 */ self.remaindernear128("123", "2", "-1", .toNearestOrEven)
+ /* dqrmn374 */ self.remaindernear128("124", "2", "0", .toNearestOrEven)
+ /* dqrmn375 */ self.remaindernear128("125", "2", "1", .toNearestOrEven)
+ /* dqrmn376 */ self.remaindernear128("126", "2", "0", .toNearestOrEven)
+ /* dqrmn377 */ self.remaindernear128("127", "2", "-1", .toNearestOrEven)
+ /* dqrmn381 */ self.remaindernear128("12345", "1", "0", .toNearestOrEven)
+ /* dqrmn382 */ self.remaindernear128("12345", "1.0001", "-0.2344", .toNearestOrEven)
+ /* dqrmn383 */ self.remaindernear128("12345", "1.001", "-0.333", .toNearestOrEven)
+ /* dqrmn384 */ self.remaindernear128("12345", "1.01", "-0.23", .toNearestOrEven)
+ /* dqrmn385 */ self.remaindernear128("12345", "1.1", "-0.3", .toNearestOrEven)
+ /* dqrmn386 */ self.remaindernear128("12355", "4", "-1", .toNearestOrEven)
+ /* dqrmn387 */ self.remaindernear128("12345", "4", "1", .toNearestOrEven)
+ /* dqrmn388 */ self.remaindernear128("12355", "4.0001", "-1.3089", .toNearestOrEven)
+ /* dqrmn389 */ self.remaindernear128("12345", "4.0001", "0.6914", .toNearestOrEven)
+ /* dqrmn390 */ self.remaindernear128("12345", "4.9", "1.9", .toNearestOrEven)
+ /* dqrmn391 */ self.remaindernear128("12345", "4.99", "-0.26", .toNearestOrEven)
+ /* dqrmn392 */ self.remaindernear128("12345", "4.999", "2.469", .toNearestOrEven)
+ /* dqrmn393 */ self.remaindernear128("12345", "4.9999", "0.2469", .toNearestOrEven)
+ /* dqrmn394 */ self.remaindernear128("12345", "5", "0", .toNearestOrEven)
+ /* dqrmn395 */ self.remaindernear128("12345", "5.0001", "-0.2469", .toNearestOrEven)
+ /* dqrmn396 */ self.remaindernear128("12345", "5.001", "-2.469", .toNearestOrEven)
+ /* dqrmn397 */ self.remaindernear128("12345", "5.01", "0.36", .toNearestOrEven)
+ /* dqrmn398 */ self.remaindernear128("12345", "5.1", "-2.1", .toNearestOrEven)
+ /* dqrmn401 */ self.remaindernear128("0.4", "1", "0.4", .toNearestOrEven)
+ /* dqrmn402 */ self.remaindernear128("0.45", "1", "0.45", .toNearestOrEven)
+ /* dqrmn403 */ self.remaindernear128("0.455", "1", "0.455", .toNearestOrEven)
+ /* dqrmn404 */ self.remaindernear128("0.4555", "1", "0.4555", .toNearestOrEven)
+ /* dqrmn405 */ self.remaindernear128("0.45555", "1", "0.45555", .toNearestOrEven)
+ /* dqrmn406 */ self.remaindernear128("0.455555", "1", "0.455555", .toNearestOrEven)
+ /* dqrmn407 */ self.remaindernear128("0.4555555", "1", "0.4555555", .toNearestOrEven)
+ /* dqrmn408 */ self.remaindernear128("0.45555555", "1", "0.45555555", .toNearestOrEven)
+ /* dqrmn409 */ self.remaindernear128("0.455555555", "1", "0.455555555", .toNearestOrEven)
+ /* dqrmn411 */ self.remaindernear128("0.5", "1", "0.5", .toNearestOrEven)
+ /* dqrmn412 */ self.remaindernear128("0.55", "1", "-0.45", .toNearestOrEven)
+ /* dqrmn413 */ self.remaindernear128("0.555", "1", "-0.445", .toNearestOrEven)
+ /* dqrmn414 */ self.remaindernear128("0.5555", "1", "-0.4445", .toNearestOrEven)
+ /* dqrmn415 */ self.remaindernear128("0.55555", "1", "-0.44445", .toNearestOrEven)
+ /* dqrmn416 */ self.remaindernear128("0.555555", "1", "-0.444445", .toNearestOrEven)
+ /* dqrmn417 */ self.remaindernear128("0.5555555", "1", "-0.4444445", .toNearestOrEven)
+ /* dqrmn418 */ self.remaindernear128("0.55555555", "1", "-0.44444445", .toNearestOrEven)
+ /* dqrmn419 */ self.remaindernear128("0.555555555", "1", "-0.444444445", .toNearestOrEven)
+ /* dqrmn421 */ self.remaindernear128("1E+6144", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn422 */ self.remaindernear128("1E+6144", "1E+6143", "0E+6111", .toNearestOrEven)
+ /* dqrmn423 */ self.remaindernear128("1E+6144", "2E+6143", "0E+6111", .toNearestOrEven)
+ /* dqrmn424 */ self.remaindernear128("1E+6144", "3E+6143", "1.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrmn425 */ self.remaindernear128("1E+6144", "4E+6143", "2.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrmn426 */ self.remaindernear128("1E+6144", "5E+6143", "0E+6111", .toNearestOrEven)
+ /* dqrmn427 */ self.remaindernear128("1E+6144", "6E+6143", "-2.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrmn428 */ self.remaindernear128("1E+6144", "7E+6143", "3.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrmn429 */ self.remaindernear128("1E+6144", "8E+6143", "2.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrmn430 */ self.remaindernear128("1E+6144", "9E+6143", "1.00000000000000000000000000000000E+6143", .toNearestOrEven)
+ /* dqrmn431 */ self.remaindernear128("1E-6175", "1E-6176", "0E-6176", .toNearestOrEven)
+ /* dqrmn432 */ self.remaindernear128("1E-6175", "2E-6176", "0E-6176", .toNearestOrEven)
+ /* dqrmn433 */ self.remaindernear128("1E-6175", "3E-6176", "1E-6176", .toNearestOrEven)
+ /* dqrmn434 */ self.remaindernear128("1E-6175", "4E-6176", "2E-6176", .toNearestOrEven)
+ /* dqrmn435 */ self.remaindernear128("1E-6175", "5E-6176", "0E-6176", .toNearestOrEven)
+ /* dqrmn436 */ self.remaindernear128("1E-6175", "6E-6176", "-2E-6176", .toNearestOrEven)
+ /* dqrmn437 */ self.remaindernear128("1E-6175", "7E-6176", "3E-6176", .toNearestOrEven)
+ /* dqrmn438 */ self.remaindernear128("1E-6175", "8E-6176", "2E-6176", .toNearestOrEven)
+ /* dqrmn439 */ self.remaindernear128("1E-6175", "9E-6176", "1E-6176", .toNearestOrEven)
+ /* dqrmn440 */ self.remaindernear128("1E-6175", "10E-6176", "0E-6176", .toNearestOrEven)
+ /* dqrmn441 */ self.remaindernear128("1E-6175", "11E-6176", "-1E-6176", .toNearestOrEven)
+ /* dqrmn442 */ self.remaindernear128("100E-6175", "11E-6176", "-1E-6176", .toNearestOrEven)
+ /* dqrmn443 */ self.remaindernear128("100E-6175", "20E-6176", "0E-6176", .toNearestOrEven)
+ /* dqrmn444 */ self.remaindernear128("100E-6175", "21E-6176", "-8E-6176", .toNearestOrEven)
+ /* dqrmn445 */ self.remaindernear128("100E-6175", "30E-6176", "1.0E-6175", .toNearestOrEven)
+ /* dqrmn650 */ self.remaindernear128("1", "1", "0", .toNearestOrEven)
+ /* dqrmn651 */ self.remaindernear128("-1", "1", "-0", .toNearestOrEven)
+ /* dqrmn652 */ self.remaindernear128("1", "-1", "0", .toNearestOrEven)
+ /* dqrmn653 */ self.remaindernear128("-1", "-1", "-0", .toNearestOrEven)
+ /* dqrmn654 */ self.remaindernear128("0", "1", "0", .toNearestOrEven)
+ /* dqrmn655 */ self.remaindernear128("-0", "1", "-0", .toNearestOrEven)
+ /* dqrmn656 */ self.remaindernear128("0", "-1", "0", .toNearestOrEven)
+ /* dqrmn657 */ self.remaindernear128("-0", "-1", "-0", .toNearestOrEven)
+ /* dqrmn658 */ self.remaindernear128("0.00", "1", "0.00", .toNearestOrEven)
+ /* dqrmn659 */ self.remaindernear128("-0.00", "1", "-0.00", .toNearestOrEven)
+ /* dqrmn680 */ self.remaindernear128("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn681 */ self.remaindernear128("Inf", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn682 */ self.remaindernear128("Inf", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn683 */ self.remaindernear128("Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn684 */ self.remaindernear128("Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn685 */ self.remaindernear128("Inf", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn686 */ self.remaindernear128("Inf", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn687 */ self.remaindernear128("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn688 */ self.remaindernear128("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* dqrmn689 */ self.remaindernear128("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn691 */ self.remaindernear128("-1", "Inf", "-1", .toNearestOrEven)
+ /* dqrmn692 */ self.remaindernear128("0", "Inf", "0", .toNearestOrEven)
+ /* dqrmn693 */ self.remaindernear128("-0", "Inf", "-0", .toNearestOrEven)
+ /* dqrmn694 */ self.remaindernear128("1", "Inf", "1", .toNearestOrEven)
+ /* dqrmn695 */ self.remaindernear128("1000", "Inf", "1000", .toNearestOrEven)
+ /* dqrmn696 */ self.remaindernear128("Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn700 */ self.remaindernear128("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn701 */ self.remaindernear128("-Inf", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn702 */ self.remaindernear128("-Inf", "-1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn703 */ self.remaindernear128("-Inf", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn704 */ self.remaindernear128("-Inf", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn705 */ self.remaindernear128("-Inf", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn706 */ self.remaindernear128("-Inf", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn707 */ self.remaindernear128("-Inf", "Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn708 */ self.remaindernear128("-Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn709 */ self.remaindernear128("-1000", "Inf", "-1000", .toNearestOrEven)
+ /* dqrmn710 */ self.remaindernear128("-1", "-Inf", "-1", .toNearestOrEven)
+ /* dqrmn711 */ self.remaindernear128("-0", "-Inf", "-0", .toNearestOrEven)
+ /* dqrmn712 */ self.remaindernear128("0", "-Inf", "0", .toNearestOrEven)
+ /* dqrmn713 */ self.remaindernear128("1", "-Inf", "1", .toNearestOrEven)
+ /* dqrmn714 */ self.remaindernear128("1000", "-Inf", "1000", .toNearestOrEven)
+ /* dqrmn715 */ self.remaindernear128("Inf", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn721 */ self.remaindernear128("NaN", "-Inf", "NaN", .toNearestOrEven)
+ /* dqrmn722 */ self.remaindernear128("NaN", "-1000", "NaN", .toNearestOrEven)
+ /* dqrmn723 */ self.remaindernear128("NaN", "-1", "NaN", .toNearestOrEven)
+ /* dqrmn724 */ self.remaindernear128("NaN", "-0", "NaN", .toNearestOrEven)
+ /* dqrmn725 */ self.remaindernear128("-NaN", "0", "-NaN", .toNearestOrEven)
+ /* dqrmn726 */ self.remaindernear128("NaN", "1", "NaN", .toNearestOrEven)
+ /* dqrmn727 */ self.remaindernear128("NaN", "1000", "NaN", .toNearestOrEven)
+ /* dqrmn728 */ self.remaindernear128("NaN", "Inf", "NaN", .toNearestOrEven)
+ /* dqrmn729 */ self.remaindernear128("NaN", "-NaN", "NaN", .toNearestOrEven)
+ /* dqrmn730 */ self.remaindernear128("-Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqrmn731 */ self.remaindernear128("-1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqrmn732 */ self.remaindernear128("-1", "NaN", "NaN", .toNearestOrEven)
+ /* dqrmn733 */ self.remaindernear128("-0", "-NaN", "-NaN", .toNearestOrEven)
+ /* dqrmn734 */ self.remaindernear128("0", "NaN", "NaN", .toNearestOrEven)
+ /* dqrmn735 */ self.remaindernear128("1", "-NaN", "-NaN", .toNearestOrEven)
+ /* dqrmn736 */ self.remaindernear128("1000", "NaN", "NaN", .toNearestOrEven)
+ /* dqrmn737 */ self.remaindernear128("Inf", "NaN", "NaN", .toNearestOrEven)
+ /* dqrmn741 */ self.remaindernear128("sNaN", "-Inf", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn742 */ self.remaindernear128("sNaN", "-1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn743 */ self.remaindernear128("-sNaN", "-1", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn744 */ self.remaindernear128("sNaN", "-0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn745 */ self.remaindernear128("sNaN", "0", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn746 */ self.remaindernear128("sNaN", "1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn747 */ self.remaindernear128("sNaN", "1000", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn749 */ self.remaindernear128("sNaN", "NaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn750 */ self.remaindernear128("sNaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn751 */ self.remaindernear128("NaN", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn752 */ self.remaindernear128("-Inf", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn753 */ self.remaindernear128("-1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn754 */ self.remaindernear128("-1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn755 */ self.remaindernear128("-0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn756 */ self.remaindernear128("0", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn757 */ self.remaindernear128("1", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn758 */ self.remaindernear128("1000", "sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn759 */ self.remaindernear128("Inf", "-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn760 */ self.remaindernear128("NaN(0x1)", "NaN(0x7)", "NaN(0x1)", .toNearestOrEven)
+ /* dqrmn761 */ self.remaindernear128("sNaN(0x2)", "NaN(0x8)", "NaN(0x2)", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn762 */ self.remaindernear128("NaN(0x3)", "sNaN(0x9)", "NaN(0x9)", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn763 */ self.remaindernear128("sNaN(0x4)", "sNaN(0xa)", "NaN(0x4)", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn764 */ self.remaindernear128("15", "NaN(0xb)", "NaN(0xb)", .toNearestOrEven)
+ /* dqrmn765 */ self.remaindernear128("NaN(0x6)", "NaN(0xc)", "NaN(0x6)", .toNearestOrEven)
+ /* dqrmn766 */ self.remaindernear128("Inf", "NaN(0xd)", "NaN(0xd)", .toNearestOrEven)
+ /* dqrmn767 */ self.remaindernear128("NaN(0xe)", "-Inf", "NaN(0xe)", .toNearestOrEven)
+ /* dqrmn768 */ self.remaindernear128("0", "NaN(0xf)", "NaN(0xf)", .toNearestOrEven)
+ /* dqrmn769 */ self.remaindernear128("NaN(0x10)", "-0", "NaN(0x10)", .toNearestOrEven)
+ /* dqrmn770 */ self.remaindernear128("1234500000000000000000067890123456", "10", "-4", .toNearestOrEven)
+ /* dqrmn771 */ self.remaindernear128("1234500000000000000000067890123456", "1", "0", .toNearestOrEven)
+ /* dqrmn772 */ self.remaindernear128("1234500000000000000000067890123456", "0.1", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn773 */ self.remaindernear128("1234500000000000000000067890123456", "0.01", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqrmn801 */ self.remaindernear128("12345678000", "100", "0", .toNearestOrEven)
+ /* dqrmn802 */ self.remaindernear128("1", "12345678000", "1", .toNearestOrEven)
+ /* dqrmn803 */ self.remaindernear128("1234567800", "10", "0", .toNearestOrEven)
+ /* dqrmn804 */ self.remaindernear128("1", "1234567800", "1", .toNearestOrEven)
+ /* dqrmn805 */ self.remaindernear128("1234567890", "10", "0", .toNearestOrEven)
+ /* dqrmn806 */ self.remaindernear128("1", "1234567890", "1", .toNearestOrEven)
+ /* dqrmn807 */ self.remaindernear128("1234567891", "10", "1", .toNearestOrEven)
+ /* dqrmn808 */ self.remaindernear128("1", "1234567891", "1", .toNearestOrEven)
+ /* dqrmn809 */ self.remaindernear128("12345678901", "100", "1", .toNearestOrEven)
+ /* dqrmn810 */ self.remaindernear128("1", "12345678901", "1", .toNearestOrEven)
+ /* dqrmn811 */ self.remaindernear128("1234567896", "10", "-4", .toNearestOrEven)
+ /* dqrmn812 */ self.remaindernear128("1", "1234567896", "1", .toNearestOrEven)
+ /* dqrmn821 */ self.remaindernear128("12345678000", "100", "0", .toNearestOrEven)
+ /* dqrmn822 */ self.remaindernear128("1", "12345678000", "1", .toNearestOrEven)
+ /* dqrmn823 */ self.remaindernear128("1234567800", "10", "0", .toNearestOrEven)
+ /* dqrmn824 */ self.remaindernear128("1", "1234567800", "1", .toNearestOrEven)
+ /* dqrmn825 */ self.remaindernear128("1234567890", "10", "0", .toNearestOrEven)
+ /* dqrmn826 */ self.remaindernear128("1", "1234567890", "1", .toNearestOrEven)
+ /* dqrmn827 */ self.remaindernear128("1234567891", "10", "1", .toNearestOrEven)
+ /* dqrmn828 */ self.remaindernear128("1", "1234567891", "1", .toNearestOrEven)
+ /* dqrmn829 */ self.remaindernear128("12345678901", "100", "1", .toNearestOrEven)
+ /* dqrmn830 */ self.remaindernear128("1", "12345678901", "1", .toNearestOrEven)
+ /* dqrmn831 */ self.remaindernear128("1234567896", "10", "-4", .toNearestOrEven)
+ /* dqrmn832 */ self.remaindernear128("1", "1234567896", "1", .toNearestOrEven)
+ /* dqrmn840 */ self.remaindernear128("100000000.0", "1", "0.0", .toNearestOrEven)
+ /* dqrmn841 */ self.remaindernear128("100000000.4", "1", "0.4", .toNearestOrEven)
+ /* dqrmn842 */ self.remaindernear128("100000000.5", "1", "0.5", .toNearestOrEven)
+ /* dqrmn843 */ self.remaindernear128("100000000.9", "1", "-0.1", .toNearestOrEven)
+ /* dqrmn844 */ self.remaindernear128("100000000.999", "1", "-0.001", .toNearestOrEven)
+ /* dqrmn850 */ self.remaindernear128("100000003", "5", "-2", .toNearestOrEven)
+ /* dqrmn851 */ self.remaindernear128("10000003", "5", "-2", .toNearestOrEven)
+ /* dqrmn852 */ self.remaindernear128("1000003", "5", "-2", .toNearestOrEven)
+ /* dqrmn853 */ self.remaindernear128("100003", "5", "-2", .toNearestOrEven)
+ /* dqrmn854 */ self.remaindernear128("10003", "5", "-2", .toNearestOrEven)
+ /* dqrmn855 */ self.remaindernear128("1003", "5", "-2", .toNearestOrEven)
+ /* dqrmn856 */ self.remaindernear128("103", "5", "-2", .toNearestOrEven)
+ /* dqrmn857 */ self.remaindernear128("13", "5", "-2", .toNearestOrEven)
+ /* dqrmn858 */ self.remaindernear128("1", "5", "1", .toNearestOrEven)
+ /* dqrmn860 */ self.remaindernear128("123.0e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrmn861 */ self.remaindernear128("1230", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrmn862 */ self.remaindernear128("12.3e2", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrmn863 */ self.remaindernear128("1.23e3", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrmn864 */ self.remaindernear128("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrmn870 */ self.remaindernear128("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrmn871 */ self.remaindernear128("123e1", "100000000000000", "1230", .toNearestOrEven)
+ /* dqrmn872 */ self.remaindernear128("123e1", "10000000000000", "1230", .toNearestOrEven)
+ /* dqrmn873 */ self.remaindernear128("123e1", "1000000000000", "1230", .toNearestOrEven)
+ /* dqrmn874 */ self.remaindernear128("123e1", "100000000000", "1230", .toNearestOrEven)
+ /* dqrmn875 */ self.remaindernear128("123e1", "10000000000", "1230", .toNearestOrEven)
+ /* dqrmn876 */ self.remaindernear128("123e1", "1000000000", "1230", .toNearestOrEven)
+ /* dqrmn877 */ self.remaindernear128("123e1", "100000000", "1230", .toNearestOrEven)
+ /* dqrmn878 */ self.remaindernear128("1230", "100000000", "1230", .toNearestOrEven)
+ /* dqrmn879 */ self.remaindernear128("123e1", "10000000", "1230", .toNearestOrEven)
+ /* dqrmn880 */ self.remaindernear128("123e1", "1000000", "1230", .toNearestOrEven)
+ /* dqrmn881 */ self.remaindernear128("123e1", "100000", "1230", .toNearestOrEven)
+ /* dqrmn882 */ self.remaindernear128("123e1", "10000", "1230", .toNearestOrEven)
+ /* dqrmn883 */ self.remaindernear128("123e1", "1000", "230", .toNearestOrEven)
+ /* dqrmn884 */ self.remaindernear128("123e1", "100", "30", .toNearestOrEven)
+ /* dqrmn885 */ self.remaindernear128("123e1", "10", "0", .toNearestOrEven)
+ /* dqrmn886 */ self.remaindernear128("123e1", "1", "0", .toNearestOrEven)
+ /* dqrmn890 */ self.remaindernear128("123e1", "2000000000000000", "1230", .toNearestOrEven)
+ /* dqrmn891 */ self.remaindernear128("123e1", "200000000000000", "1230", .toNearestOrEven)
+ /* dqrmn892 */ self.remaindernear128("123e1", "20000000000000", "1230", .toNearestOrEven)
+ /* dqrmn893 */ self.remaindernear128("123e1", "2000000000000", "1230", .toNearestOrEven)
+ /* dqrmn894 */ self.remaindernear128("123e1", "200000000000", "1230", .toNearestOrEven)
+ /* dqrmn895 */ self.remaindernear128("123e1", "20000000000", "1230", .toNearestOrEven)
+ /* dqrmn896 */ self.remaindernear128("123e1", "2000000000", "1230", .toNearestOrEven)
+ /* dqrmn897 */ self.remaindernear128("123e1", "200000000", "1230", .toNearestOrEven)
+ /* dqrmn899 */ self.remaindernear128("123e1", "20000000", "1230", .toNearestOrEven)
+ /* dqrmn900 */ self.remaindernear128("123e1", "2000000", "1230", .toNearestOrEven)
+ /* dqrmn901 */ self.remaindernear128("123e1", "200000", "1230", .toNearestOrEven)
+ /* dqrmn902 */ self.remaindernear128("123e1", "20000", "1230", .toNearestOrEven)
+ /* dqrmn903 */ self.remaindernear128("123e1", "2000", "-770", .toNearestOrEven)
+ /* dqrmn904 */ self.remaindernear128("123e1", "200", "30", .toNearestOrEven)
+ /* dqrmn905 */ self.remaindernear128("123e1", "20", "-10", .toNearestOrEven)
+ /* dqrmn906 */ self.remaindernear128("123e1", "2", "0", .toNearestOrEven)
+ /* dqrmn910 */ self.remaindernear128("123e1", "5000000000000000", "1230", .toNearestOrEven)
+ /* dqrmn911 */ self.remaindernear128("123e1", "500000000000000", "1230", .toNearestOrEven)
+ /* dqrmn912 */ self.remaindernear128("123e1", "50000000000000", "1230", .toNearestOrEven)
+ /* dqrmn913 */ self.remaindernear128("123e1", "5000000000000", "1230", .toNearestOrEven)
+ /* dqrmn914 */ self.remaindernear128("123e1", "500000000000", "1230", .toNearestOrEven)
+ /* dqrmn915 */ self.remaindernear128("123e1", "50000000000", "1230", .toNearestOrEven)
+ /* dqrmn916 */ self.remaindernear128("123e1", "5000000000", "1230", .toNearestOrEven)
+ /* dqrmn917 */ self.remaindernear128("123e1", "500000000", "1230", .toNearestOrEven)
+ /* dqrmn919 */ self.remaindernear128("123e1", "50000000", "1230", .toNearestOrEven)
+ /* dqrmn920 */ self.remaindernear128("123e1", "5000000", "1230", .toNearestOrEven)
+ /* dqrmn921 */ self.remaindernear128("123e1", "500000", "1230", .toNearestOrEven)
+ /* dqrmn922 */ self.remaindernear128("123e1", "50000", "1230", .toNearestOrEven)
+ /* dqrmn923 */ self.remaindernear128("123e1", "5000", "1230", .toNearestOrEven)
+ /* dqrmn924 */ self.remaindernear128("123e1", "500", "230", .toNearestOrEven)
+ /* dqrmn925 */ self.remaindernear128("123e1", "50", "-20", .toNearestOrEven)
+ /* dqrmn926 */ self.remaindernear128("123e1", "5", "0", .toNearestOrEven)
+ /* dqrmn930 */ self.remaindernear128("123e1", "9000000000000000", "1230", .toNearestOrEven)
+ /* dqrmn931 */ self.remaindernear128("123e1", "900000000000000", "1230", .toNearestOrEven)
+ /* dqrmn932 */ self.remaindernear128("123e1", "90000000000000", "1230", .toNearestOrEven)
+ /* dqrmn933 */ self.remaindernear128("123e1", "9000000000000", "1230", .toNearestOrEven)
+ /* dqrmn934 */ self.remaindernear128("123e1", "900000000000", "1230", .toNearestOrEven)
+ /* dqrmn935 */ self.remaindernear128("123e1", "90000000000", "1230", .toNearestOrEven)
+ /* dqrmn936 */ self.remaindernear128("123e1", "9000000000", "1230", .toNearestOrEven)
+ /* dqrmn937 */ self.remaindernear128("123e1", "900000000", "1230", .toNearestOrEven)
+ /* dqrmn939 */ self.remaindernear128("123e1", "90000000", "1230", .toNearestOrEven)
+ /* dqrmn940 */ self.remaindernear128("123e1", "9000000", "1230", .toNearestOrEven)
+ /* dqrmn941 */ self.remaindernear128("123e1", "900000", "1230", .toNearestOrEven)
+ /* dqrmn942 */ self.remaindernear128("123e1", "90000", "1230", .toNearestOrEven)
+ /* dqrmn943 */ self.remaindernear128("123e1", "9000", "1230", .toNearestOrEven)
+ /* dqrmn944 */ self.remaindernear128("123e1", "900", "330", .toNearestOrEven)
+ /* dqrmn945 */ self.remaindernear128("123e1", "90", "-30", .toNearestOrEven)
+ /* dqrmn946 */ self.remaindernear128("123e1", "9", "-3", .toNearestOrEven)
+ /* dqrmn950 */ self.remaindernear128("123e1", "1000000000000000", "1230", .toNearestOrEven)
+ /* dqrmn961 */ self.remaindernear128("123e1", "2999999999999999", "1230", .toNearestOrEven)
+ /* dqrmn962 */ self.remaindernear128("123e1", "3999999999999999", "1230", .toNearestOrEven)
+ /* dqrmn963 */ self.remaindernear128("123e1", "4999999999999999", "1230", .toNearestOrEven)
+ /* dqrmn964 */ self.remaindernear128("123e1", "5999999999999999", "1230", .toNearestOrEven)
+ /* dqrmn965 */ self.remaindernear128("123e1", "6999999999999999", "1230", .toNearestOrEven)
+ /* dqrmn966 */ self.remaindernear128("123e1", "7999999999999999", "1230", .toNearestOrEven)
+ /* dqrmn967 */ self.remaindernear128("123e1", "8999999999999999", "1230", .toNearestOrEven)
+ /* dqrmn968 */ self.remaindernear128("123e1", "9999999999999999", "1230", .toNearestOrEven)
+ /* dqrmn969 */ self.remaindernear128("123e1", "9876543210987654", "1230", .toNearestOrEven)
+ /* dqrmn980 */ self.remaindernear128("123e1", "1000E299", "1.23E+3", .toNearestOrEven)
+ }
+
+ private func remaindernear128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.remainder(dividingBy: arg1, status: &status)
+ let speleotroveResult = self.toSpeleotrove_rem(arg0, arg1, result: result, status: &status)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveRoundTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveRoundTests.swift
new file mode 100644
index 0000000..92b3f27
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveRoundTests.swift
@@ -0,0 +1,420 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveRoundTests: XCTestCase, SpeleotroveMixin {
+
+ func test_tointegralx64() {
+ /* ddcan601 */ self.tointegralx64("#6e38ff3ffff3fcff", "#6e38ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan602 */ self.tointegralx64("#6e38ff3fcff3fdff", "#6e38ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan603 */ self.tointegralx64("#7880000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan604 */ self.tointegralx64("#7802000000000000", "#7800000000000000", .toNearestOrEven)
+ /* ddcan610 */ self.tointegralx64("#7c03ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan611 */ self.tointegralx64("#7c03ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan612 */ self.tointegralx64("#7c40ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan613 */ self.tointegralx64("#7c40ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan614 */ self.tointegralx64("#7e00ffffcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan615 */ self.tointegralx64("#7e00ffffcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan616 */ self.tointegralx64("#7e80ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan617 */ self.tointegralx64("#7e80ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan618 */ self.tointegralx64("#2238000000000fff", "#2238000000000cff", .toNearestOrEven)
+ /* ddcan619 */ self.tointegralx64("#2230000000000fff", "#2238000000000040", .toNearestOrEven, .isInexact)
+ /* ddcan620 */ self.tointegralx64("#222c000000000fff", "#2238000000000004", .toNearestOrEven, .isInexact)
+ /* ddcan621 */ self.tointegralx64("#2228000000000fff", "#2238000000000000", .toNearestOrEven, .isInexact)
+ /* ddcan622 */ self.tointegralx64("#a238000000000fff", "#a238000000000cff", .toNearestOrEven)
+ /* ddcan623 */ self.tointegralx64("#a230000000000fff", "#a238000000000040", .toNearestOrEven, .isInexact)
+ /* ddcan624 */ self.tointegralx64("#a22c000000000fff", "#a238000000000004", .toNearestOrEven, .isInexact)
+ /* ddcan625 */ self.tointegralx64("#a228000000000fff", "#a238000000000000", .toNearestOrEven, .isInexact)
+ /* ddintx001 */ self.tointegralx64("0", "0", .toNearestOrEven)
+ /* ddintx002 */ self.tointegralx64("0.0", "0", .toNearestOrEven)
+ /* ddintx003 */ self.tointegralx64("0.1", "0", .toNearestOrEven, .isInexact)
+ /* ddintx004 */ self.tointegralx64("0.2", "0", .toNearestOrEven, .isInexact)
+ /* ddintx005 */ self.tointegralx64("0.3", "0", .toNearestOrEven, .isInexact)
+ /* ddintx006 */ self.tointegralx64("0.4", "0", .toNearestOrEven, .isInexact)
+ /* ddintx007 */ self.tointegralx64("0.5", "0", .toNearestOrEven, .isInexact)
+ /* ddintx008 */ self.tointegralx64("0.6", "1", .toNearestOrEven, .isInexact)
+ /* ddintx009 */ self.tointegralx64("0.7", "1", .toNearestOrEven, .isInexact)
+ /* ddintx010 */ self.tointegralx64("0.8", "1", .toNearestOrEven, .isInexact)
+ /* ddintx011 */ self.tointegralx64("0.9", "1", .toNearestOrEven, .isInexact)
+ /* ddintx012 */ self.tointegralx64("1", "1", .toNearestOrEven)
+ /* ddintx013 */ self.tointegralx64("1.0", "1", .toNearestOrEven)
+ /* ddintx014 */ self.tointegralx64("1.1", "1", .toNearestOrEven, .isInexact)
+ /* ddintx015 */ self.tointegralx64("1.2", "1", .toNearestOrEven, .isInexact)
+ /* ddintx016 */ self.tointegralx64("1.3", "1", .toNearestOrEven, .isInexact)
+ /* ddintx017 */ self.tointegralx64("1.4", "1", .toNearestOrEven, .isInexact)
+ /* ddintx018 */ self.tointegralx64("1.5", "2", .toNearestOrEven, .isInexact)
+ /* ddintx019 */ self.tointegralx64("1.6", "2", .toNearestOrEven, .isInexact)
+ /* ddintx020 */ self.tointegralx64("1.7", "2", .toNearestOrEven, .isInexact)
+ /* ddintx021 */ self.tointegralx64("1.8", "2", .toNearestOrEven, .isInexact)
+ /* ddintx022 */ self.tointegralx64("1.9", "2", .toNearestOrEven, .isInexact)
+ /* ddintx031 */ self.tointegralx64("-0", "-0", .toNearestOrEven)
+ /* ddintx032 */ self.tointegralx64("-0.0", "-0", .toNearestOrEven)
+ /* ddintx033 */ self.tointegralx64("-0.1", "-0", .toNearestOrEven, .isInexact)
+ /* ddintx034 */ self.tointegralx64("-0.2", "-0", .toNearestOrEven, .isInexact)
+ /* ddintx035 */ self.tointegralx64("-0.3", "-0", .toNearestOrEven, .isInexact)
+ /* ddintx036 */ self.tointegralx64("-0.4", "-0", .toNearestOrEven, .isInexact)
+ /* ddintx037 */ self.tointegralx64("-0.5", "-0", .toNearestOrEven, .isInexact)
+ /* ddintx038 */ self.tointegralx64("-0.6", "-1", .toNearestOrEven, .isInexact)
+ /* ddintx039 */ self.tointegralx64("-0.7", "-1", .toNearestOrEven, .isInexact)
+ /* ddintx040 */ self.tointegralx64("-0.8", "-1", .toNearestOrEven, .isInexact)
+ /* ddintx041 */ self.tointegralx64("-0.9", "-1", .toNearestOrEven, .isInexact)
+ /* ddintx042 */ self.tointegralx64("-1", "-1", .toNearestOrEven)
+ /* ddintx043 */ self.tointegralx64("-1.0", "-1", .toNearestOrEven)
+ /* ddintx044 */ self.tointegralx64("-1.1", "-1", .toNearestOrEven, .isInexact)
+ /* ddintx045 */ self.tointegralx64("-1.2", "-1", .toNearestOrEven, .isInexact)
+ /* ddintx046 */ self.tointegralx64("-1.3", "-1", .toNearestOrEven, .isInexact)
+ /* ddintx047 */ self.tointegralx64("-1.4", "-1", .toNearestOrEven, .isInexact)
+ /* ddintx048 */ self.tointegralx64("-1.5", "-2", .toNearestOrEven, .isInexact)
+ /* ddintx049 */ self.tointegralx64("-1.6", "-2", .toNearestOrEven, .isInexact)
+ /* ddintx050 */ self.tointegralx64("-1.7", "-2", .toNearestOrEven, .isInexact)
+ /* ddintx051 */ self.tointegralx64("-1.8", "-2", .toNearestOrEven, .isInexact)
+ /* ddintx052 */ self.tointegralx64("-1.9", "-2", .toNearestOrEven, .isInexact)
+ /* ddintx053 */ self.tointegralx64("10E+60", "1.0E+61", .toNearestOrEven)
+ /* ddintx054 */ self.tointegralx64("-10E+60", "-1.0E+61", .toNearestOrEven)
+ /* ddintx060 */ self.tointegralx64("56267E-17", "0", .toNearestOrEven, .isInexact)
+ /* ddintx061 */ self.tointegralx64("56267E-5", "1", .toNearestOrEven, .isInexact)
+ /* ddintx062 */ self.tointegralx64("56267E-2", "563", .toNearestOrEven, .isInexact)
+ /* ddintx063 */ self.tointegralx64("56267E-1", "5627", .toNearestOrEven, .isInexact)
+ /* ddintx065 */ self.tointegralx64("56267E-0", "56267", .toNearestOrEven)
+ /* ddintx066 */ self.tointegralx64("56267E+0", "56267", .toNearestOrEven)
+ /* ddintx067 */ self.tointegralx64("56267E+1", "5.6267E+5", .toNearestOrEven)
+ /* ddintx068 */ self.tointegralx64("56267E+9", "5.6267E+13", .toNearestOrEven)
+ /* ddintx069 */ self.tointegralx64("56267E+10", "5.6267E+14", .toNearestOrEven)
+ /* ddintx070 */ self.tointegralx64("56267E+11", "5.6267E+15", .toNearestOrEven)
+ /* ddintx071 */ self.tointegralx64("56267E+12", "5.6267E+16", .toNearestOrEven)
+ /* ddintx072 */ self.tointegralx64("56267E+13", "5.6267E+17", .toNearestOrEven)
+ /* ddintx073 */ self.tointegralx64("1.23E+96", "1.23E+96", .toNearestOrEven)
+ /* ddintx074 */ self.tointegralx64("1.23E+384", "#47fd300000000000", .toNearestOrEven)
+ /* ddintx080 */ self.tointegralx64("-56267E-10", "-0", .toNearestOrEven, .isInexact)
+ /* ddintx081 */ self.tointegralx64("-56267E-5", "-1", .toNearestOrEven, .isInexact)
+ /* ddintx082 */ self.tointegralx64("-56267E-2", "-563", .toNearestOrEven, .isInexact)
+ /* ddintx083 */ self.tointegralx64("-56267E-1", "-5627", .toNearestOrEven, .isInexact)
+ /* ddintx085 */ self.tointegralx64("-56267E-0", "-56267", .toNearestOrEven)
+ /* ddintx086 */ self.tointegralx64("-56267E+0", "-56267", .toNearestOrEven)
+ /* ddintx087 */ self.tointegralx64("-56267E+1", "-5.6267E+5", .toNearestOrEven)
+ /* ddintx088 */ self.tointegralx64("-56267E+9", "-5.6267E+13", .toNearestOrEven)
+ /* ddintx089 */ self.tointegralx64("-56267E+10", "-5.6267E+14", .toNearestOrEven)
+ /* ddintx090 */ self.tointegralx64("-56267E+11", "-5.6267E+15", .toNearestOrEven)
+ /* ddintx091 */ self.tointegralx64("-56267E+12", "-5.6267E+16", .toNearestOrEven)
+ /* ddintx092 */ self.tointegralx64("-56267E+13", "-5.6267E+17", .toNearestOrEven)
+ /* ddintx093 */ self.tointegralx64("-1.23E+96", "-1.23E+96", .toNearestOrEven)
+ /* ddintx094 */ self.tointegralx64("-1.23E+384", "#c7fd300000000000", .toNearestOrEven)
+ /* ddintx100 */ self.tointegralx64("1E-299", "0", .toNearestOrEven, .isInexact)
+ /* ddintx101 */ self.tointegralx64("0.1E-299", "0", .toNearestOrEven, .isInexact)
+ /* ddintx102 */ self.tointegralx64("0.01E-299", "0", .toNearestOrEven, .isInexact)
+ /* ddintx103 */ self.tointegralx64("0E-299", "0", .toNearestOrEven)
+ /* ddintx120 */ self.tointegralx64("Inf", "Infinity", .toNearestOrEven)
+ /* ddintx121 */ self.tointegralx64("-Inf", "-Infinity", .toNearestOrEven)
+ /* ddintx122 */ self.tointegralx64("NaN", "NaN", .toNearestOrEven)
+ /* ddintx123 */ self.tointegralx64("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddintx124 */ self.tointegralx64("0", "0", .toNearestOrEven)
+ /* ddintx125 */ self.tointegralx64("-0", "-0", .toNearestOrEven)
+ /* ddintx126 */ self.tointegralx64("0.000", "0", .toNearestOrEven)
+ /* ddintx127 */ self.tointegralx64("0.00", "0", .toNearestOrEven)
+ /* ddintx128 */ self.tointegralx64("0.0", "0", .toNearestOrEven)
+ /* ddintx129 */ self.tointegralx64("0", "0", .toNearestOrEven)
+ /* ddintx130 */ self.tointegralx64("0E-3", "0", .toNearestOrEven)
+ /* ddintx131 */ self.tointegralx64("0E-2", "0", .toNearestOrEven)
+ /* ddintx132 */ self.tointegralx64("0E-1", "0", .toNearestOrEven)
+ /* ddintx133 */ self.tointegralx64("0E-0", "0", .toNearestOrEven)
+ /* ddintx134 */ self.tointegralx64("0E+1", "0E+1", .toNearestOrEven)
+ /* ddintx135 */ self.tointegralx64("0E+2", "0E+2", .toNearestOrEven)
+ /* ddintx136 */ self.tointegralx64("0E+3", "0E+3", .toNearestOrEven)
+ /* ddintx137 */ self.tointegralx64("0E+4", "0E+4", .toNearestOrEven)
+ /* ddintx138 */ self.tointegralx64("0E+5", "0E+5", .toNearestOrEven)
+ /* ddintx139 */ self.tointegralx64("-0.000", "-0", .toNearestOrEven)
+ /* ddintx140 */ self.tointegralx64("-0.00", "-0", .toNearestOrEven)
+ /* ddintx141 */ self.tointegralx64("-0.0", "-0", .toNearestOrEven)
+ /* ddintx142 */ self.tointegralx64("-0", "-0", .toNearestOrEven)
+ /* ddintx143 */ self.tointegralx64("-0E-3", "-0", .toNearestOrEven)
+ /* ddintx144 */ self.tointegralx64("-0E-2", "-0", .toNearestOrEven)
+ /* ddintx145 */ self.tointegralx64("-0E-1", "-0", .toNearestOrEven)
+ /* ddintx146 */ self.tointegralx64("-0E-0", "-0", .toNearestOrEven)
+ /* ddintx147 */ self.tointegralx64("-0E+1", "-0E+1", .toNearestOrEven)
+ /* ddintx148 */ self.tointegralx64("-0E+2", "-0E+2", .toNearestOrEven)
+ /* ddintx149 */ self.tointegralx64("-0E+3", "-0E+3", .toNearestOrEven)
+ /* ddintx150 */ self.tointegralx64("-0E+4", "-0E+4", .toNearestOrEven)
+ /* ddintx151 */ self.tointegralx64("-0E+5", "-0E+5", .toNearestOrEven)
+ /* ddintx152 */ self.tointegralx64("NaN(0x328)", "NaN(0x328)", .toNearestOrEven)
+ /* ddintx153 */ self.tointegralx64("sNaN(0x50)", "NaN(0x50)", .toNearestOrEven, .isInvalidOperation)
+ /* ddintx154 */ self.tointegralx64("-NaN(0x328)", "-NaN(0x328)", .toNearestOrEven)
+ /* ddintx155 */ self.tointegralx64("-sNaN(0x50)", "-NaN(0x50)", .toNearestOrEven, .isInvalidOperation)
+ /* ddintx156 */ self.tointegralx64("-NaN", "-NaN", .toNearestOrEven)
+ /* ddintx157 */ self.tointegralx64("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddintx200 */ self.tointegralx64("2.1", "2", .toNearestOrAwayFromZero, .isInexact)
+ /* ddintx201 */ self.tointegralx64("100", "100", .toNearestOrAwayFromZero)
+ /* ddintx202 */ self.tointegralx64("100.0", "100", .toNearestOrAwayFromZero)
+ /* ddintx203 */ self.tointegralx64("101.5", "102", .toNearestOrAwayFromZero, .isInexact)
+ /* ddintx204 */ self.tointegralx64("-101.5", "-102", .toNearestOrAwayFromZero, .isInexact)
+ /* ddintx205 */ self.tointegralx64("10E+5", "1.0E+6", .toNearestOrAwayFromZero)
+ /* ddintx206 */ self.tointegralx64("7.89E+77", "7.89E+77", .toNearestOrAwayFromZero)
+ /* ddintx207 */ self.tointegralx64("-Inf", "-Infinity", .toNearestOrAwayFromZero)
+ /* ddintx210 */ self.tointegralx64("55.5", "56", .toNearestOrEven, .isInexact)
+ /* ddintx211 */ self.tointegralx64("56.5", "56", .toNearestOrEven, .isInexact)
+ /* ddintx212 */ self.tointegralx64("57.5", "58", .toNearestOrEven, .isInexact)
+ /* ddintx213 */ self.tointegralx64("-55.5", "-56", .toNearestOrEven, .isInexact)
+ /* ddintx214 */ self.tointegralx64("-56.5", "-56", .toNearestOrEven, .isInexact)
+ /* ddintx215 */ self.tointegralx64("-57.5", "-58", .toNearestOrEven, .isInexact)
+ /* ddintx220 */ self.tointegralx64("55.5", "56", .toNearestOrAwayFromZero, .isInexact)
+ /* ddintx221 */ self.tointegralx64("56.5", "57", .toNearestOrAwayFromZero, .isInexact)
+ /* ddintx222 */ self.tointegralx64("57.5", "58", .toNearestOrAwayFromZero, .isInexact)
+ /* ddintx223 */ self.tointegralx64("-55.5", "-56", .toNearestOrAwayFromZero, .isInexact)
+ /* ddintx224 */ self.tointegralx64("-56.5", "-57", .toNearestOrAwayFromZero, .isInexact)
+ /* ddintx225 */ self.tointegralx64("-57.5", "-58", .toNearestOrAwayFromZero, .isInexact)
+ /* ddintx250 */ self.tointegralx64("55.7", "55", .towardZero, .isInexact)
+ /* ddintx251 */ self.tointegralx64("56.7", "56", .towardZero, .isInexact)
+ /* ddintx252 */ self.tointegralx64("57.7", "57", .towardZero, .isInexact)
+ /* ddintx253 */ self.tointegralx64("-55.7", "-55", .towardZero, .isInexact)
+ /* ddintx254 */ self.tointegralx64("-56.7", "-56", .towardZero, .isInexact)
+ /* ddintx255 */ self.tointegralx64("-57.7", "-57", .towardZero, .isInexact)
+ /* ddintx260 */ self.tointegralx64("55.3", "56", .up, .isInexact)
+ /* ddintx261 */ self.tointegralx64("56.3", "57", .up, .isInexact)
+ /* ddintx262 */ self.tointegralx64("57.3", "58", .up, .isInexact)
+ /* ddintx263 */ self.tointegralx64("-55.3", "-55", .up, .isInexact)
+ /* ddintx264 */ self.tointegralx64("-56.3", "-56", .up, .isInexact)
+ /* ddintx265 */ self.tointegralx64("-57.3", "-57", .up, .isInexact)
+ /* ddintx270 */ self.tointegralx64("55.7", "55", .down, .isInexact)
+ /* ddintx271 */ self.tointegralx64("56.7", "56", .down, .isInexact)
+ /* ddintx272 */ self.tointegralx64("57.7", "57", .down, .isInexact)
+ /* ddintx273 */ self.tointegralx64("-55.7", "-56", .down, .isInexact)
+ /* ddintx274 */ self.tointegralx64("-56.7", "-57", .down, .isInexact)
+ /* ddintx275 */ self.tointegralx64("-57.7", "-58", .down, .isInexact)
+ /* ddintx300 */ self.tointegralx64("-2147483646", "-2147483646", .down)
+ /* ddintx301 */ self.tointegralx64("-2147483647", "-2147483647", .down)
+ /* ddintx302 */ self.tointegralx64("-2147483648", "-2147483648", .down)
+ /* ddintx303 */ self.tointegralx64("-2147483649", "-2147483649", .down)
+ /* ddintx304 */ self.tointegralx64("2147483646", "2147483646", .down)
+ /* ddintx305 */ self.tointegralx64("2147483647", "2147483647", .down)
+ /* ddintx306 */ self.tointegralx64("2147483648", "2147483648", .down)
+ /* ddintx307 */ self.tointegralx64("2147483649", "2147483649", .down)
+ /* ddintx308 */ self.tointegralx64("4294967294", "4294967294", .down)
+ /* ddintx309 */ self.tointegralx64("4294967295", "4294967295", .down)
+ /* ddintx310 */ self.tointegralx64("4294967296", "4294967296", .down)
+ /* ddintx311 */ self.tointegralx64("4294967297", "4294967297", .down)
+ }
+
+ private func tointegralx64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(rounding, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_tointegralx128() {
+ /* dqcan601 */ self.tointegralx128("#6e080ff3fdff3fcff3fcff3fcff3fcff", "#6e080ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan602 */ self.tointegralx128("#ee080ff3fcff3ffff3fcff3fcff3fcff", "#ee080ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan603 */ self.tointegralx128("#78800000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan604 */ self.tointegralx128("#78020000000000000000000000000000", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan614 */ self.tointegralx128("#7c100ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan615 */ self.tointegralx128("#fc000ff3fcff3fcff3fcffffcff3fcff", "#fc000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan616 */ self.tointegralx128("#7e010ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan617 */ self.tointegralx128("#fe000ff3fcff3fcff3fdff3fcff3fcff", "#fc000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan618 */ self.tointegralx128("#22080000000000000000000000000fff", "#22080000000000000000000000000cff", .toNearestOrEven)
+ /* dqcan619 */ self.tointegralx128("#22078000000000000000000000000fff", "#22080000000000000000000000000040", .toNearestOrEven, .isInexact)
+ /* dqcan620 */ self.tointegralx128("#22074000000000000000000000000fff", "#22080000000000000000000000000004", .toNearestOrEven, .isInexact)
+ /* dqcan621 */ self.tointegralx128("#22070000000000000000000000000fff", "#22080000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqcan622 */ self.tointegralx128("#a2080000000000000000000000000fff", "#a2080000000000000000000000000cff", .toNearestOrEven)
+ /* dqcan623 */ self.tointegralx128("#a2078000000000000000000000000fff", "#a2080000000000000000000000000040", .toNearestOrEven, .isInexact)
+ /* dqcan624 */ self.tointegralx128("#a2074000000000000000000000000fff", "#a2080000000000000000000000000004", .toNearestOrEven, .isInexact)
+ /* dqcan625 */ self.tointegralx128("#a2070000000000000000000000000fff", "#a2080000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqintx001 */ self.tointegralx128("0", "0", .toNearestOrEven)
+ /* dqintx002 */ self.tointegralx128("0.0", "0", .toNearestOrEven)
+ /* dqintx003 */ self.tointegralx128("0.1", "0", .toNearestOrEven, .isInexact)
+ /* dqintx004 */ self.tointegralx128("0.2", "0", .toNearestOrEven, .isInexact)
+ /* dqintx005 */ self.tointegralx128("0.3", "0", .toNearestOrEven, .isInexact)
+ /* dqintx006 */ self.tointegralx128("0.4", "0", .toNearestOrEven, .isInexact)
+ /* dqintx007 */ self.tointegralx128("0.5", "0", .toNearestOrEven, .isInexact)
+ /* dqintx008 */ self.tointegralx128("0.6", "1", .toNearestOrEven, .isInexact)
+ /* dqintx009 */ self.tointegralx128("0.7", "1", .toNearestOrEven, .isInexact)
+ /* dqintx010 */ self.tointegralx128("0.8", "1", .toNearestOrEven, .isInexact)
+ /* dqintx011 */ self.tointegralx128("0.9", "1", .toNearestOrEven, .isInexact)
+ /* dqintx012 */ self.tointegralx128("1", "1", .toNearestOrEven)
+ /* dqintx013 */ self.tointegralx128("1.0", "1", .toNearestOrEven)
+ /* dqintx014 */ self.tointegralx128("1.1", "1", .toNearestOrEven, .isInexact)
+ /* dqintx015 */ self.tointegralx128("1.2", "1", .toNearestOrEven, .isInexact)
+ /* dqintx016 */ self.tointegralx128("1.3", "1", .toNearestOrEven, .isInexact)
+ /* dqintx017 */ self.tointegralx128("1.4", "1", .toNearestOrEven, .isInexact)
+ /* dqintx018 */ self.tointegralx128("1.5", "2", .toNearestOrEven, .isInexact)
+ /* dqintx019 */ self.tointegralx128("1.6", "2", .toNearestOrEven, .isInexact)
+ /* dqintx020 */ self.tointegralx128("1.7", "2", .toNearestOrEven, .isInexact)
+ /* dqintx021 */ self.tointegralx128("1.8", "2", .toNearestOrEven, .isInexact)
+ /* dqintx022 */ self.tointegralx128("1.9", "2", .toNearestOrEven, .isInexact)
+ /* dqintx031 */ self.tointegralx128("-0", "-0", .toNearestOrEven)
+ /* dqintx032 */ self.tointegralx128("-0.0", "-0", .toNearestOrEven)
+ /* dqintx033 */ self.tointegralx128("-0.1", "-0", .toNearestOrEven, .isInexact)
+ /* dqintx034 */ self.tointegralx128("-0.2", "-0", .toNearestOrEven, .isInexact)
+ /* dqintx035 */ self.tointegralx128("-0.3", "-0", .toNearestOrEven, .isInexact)
+ /* dqintx036 */ self.tointegralx128("-0.4", "-0", .toNearestOrEven, .isInexact)
+ /* dqintx037 */ self.tointegralx128("-0.5", "-0", .toNearestOrEven, .isInexact)
+ /* dqintx038 */ self.tointegralx128("-0.6", "-1", .toNearestOrEven, .isInexact)
+ /* dqintx039 */ self.tointegralx128("-0.7", "-1", .toNearestOrEven, .isInexact)
+ /* dqintx040 */ self.tointegralx128("-0.8", "-1", .toNearestOrEven, .isInexact)
+ /* dqintx041 */ self.tointegralx128("-0.9", "-1", .toNearestOrEven, .isInexact)
+ /* dqintx042 */ self.tointegralx128("-1", "-1", .toNearestOrEven)
+ /* dqintx043 */ self.tointegralx128("-1.0", "-1", .toNearestOrEven)
+ /* dqintx044 */ self.tointegralx128("-1.1", "-1", .toNearestOrEven, .isInexact)
+ /* dqintx045 */ self.tointegralx128("-1.2", "-1", .toNearestOrEven, .isInexact)
+ /* dqintx046 */ self.tointegralx128("-1.3", "-1", .toNearestOrEven, .isInexact)
+ /* dqintx047 */ self.tointegralx128("-1.4", "-1", .toNearestOrEven, .isInexact)
+ /* dqintx048 */ self.tointegralx128("-1.5", "-2", .toNearestOrEven, .isInexact)
+ /* dqintx049 */ self.tointegralx128("-1.6", "-2", .toNearestOrEven, .isInexact)
+ /* dqintx050 */ self.tointegralx128("-1.7", "-2", .toNearestOrEven, .isInexact)
+ /* dqintx051 */ self.tointegralx128("-1.8", "-2", .toNearestOrEven, .isInexact)
+ /* dqintx052 */ self.tointegralx128("-1.9", "-2", .toNearestOrEven, .isInexact)
+ /* dqintx053 */ self.tointegralx128("10E+60", "1.0E+61", .toNearestOrEven)
+ /* dqintx054 */ self.tointegralx128("-10E+60", "-1.0E+61", .toNearestOrEven)
+ /* dqintx060 */ self.tointegralx128("56267E-17", "0", .toNearestOrEven, .isInexact)
+ /* dqintx061 */ self.tointegralx128("56267E-5", "1", .toNearestOrEven, .isInexact)
+ /* dqintx062 */ self.tointegralx128("56267E-2", "563", .toNearestOrEven, .isInexact)
+ /* dqintx063 */ self.tointegralx128("56267E-1", "5627", .toNearestOrEven, .isInexact)
+ /* dqintx065 */ self.tointegralx128("56267E-0", "56267", .toNearestOrEven)
+ /* dqintx066 */ self.tointegralx128("56267E+0", "56267", .toNearestOrEven)
+ /* dqintx067 */ self.tointegralx128("56267E+1", "5.6267E+5", .toNearestOrEven)
+ /* dqintx068 */ self.tointegralx128("56267E+9", "5.6267E+13", .toNearestOrEven)
+ /* dqintx069 */ self.tointegralx128("56267E+10", "5.6267E+14", .toNearestOrEven)
+ /* dqintx070 */ self.tointegralx128("56267E+11", "5.6267E+15", .toNearestOrEven)
+ /* dqintx071 */ self.tointegralx128("56267E+12", "5.6267E+16", .toNearestOrEven)
+ /* dqintx072 */ self.tointegralx128("56267E+13", "5.6267E+17", .toNearestOrEven)
+ /* dqintx073 */ self.tointegralx128("1.23E+96", "1.23E+96", .toNearestOrEven)
+ /* dqintx074 */ self.tointegralx128("1.23E+6144", "#47ffd300000000000000000000000000", .toNearestOrEven)
+ /* dqintx080 */ self.tointegralx128("-56267E-10", "-0", .toNearestOrEven, .isInexact)
+ /* dqintx081 */ self.tointegralx128("-56267E-5", "-1", .toNearestOrEven, .isInexact)
+ /* dqintx082 */ self.tointegralx128("-56267E-2", "-563", .toNearestOrEven, .isInexact)
+ /* dqintx083 */ self.tointegralx128("-56267E-1", "-5627", .toNearestOrEven, .isInexact)
+ /* dqintx085 */ self.tointegralx128("-56267E-0", "-56267", .toNearestOrEven)
+ /* dqintx086 */ self.tointegralx128("-56267E+0", "-56267", .toNearestOrEven)
+ /* dqintx087 */ self.tointegralx128("-56267E+1", "-5.6267E+5", .toNearestOrEven)
+ /* dqintx088 */ self.tointegralx128("-56267E+9", "-5.6267E+13", .toNearestOrEven)
+ /* dqintx089 */ self.tointegralx128("-56267E+10", "-5.6267E+14", .toNearestOrEven)
+ /* dqintx090 */ self.tointegralx128("-56267E+11", "-5.6267E+15", .toNearestOrEven)
+ /* dqintx091 */ self.tointegralx128("-56267E+12", "-5.6267E+16", .toNearestOrEven)
+ /* dqintx092 */ self.tointegralx128("-56267E+13", "-5.6267E+17", .toNearestOrEven)
+ /* dqintx093 */ self.tointegralx128("-1.23E+96", "-1.23E+96", .toNearestOrEven)
+ /* dqintx094 */ self.tointegralx128("-1.23E+6144", "#c7ffd300000000000000000000000000", .toNearestOrEven)
+ /* dqintx100 */ self.tointegralx128("1E-299", "0", .toNearestOrEven, .isInexact)
+ /* dqintx101 */ self.tointegralx128("0.1E-299", "0", .toNearestOrEven, .isInexact)
+ /* dqintx102 */ self.tointegralx128("0.01E-299", "0", .toNearestOrEven, .isInexact)
+ /* dqintx103 */ self.tointegralx128("0E-299", "0", .toNearestOrEven)
+ /* dqintx120 */ self.tointegralx128("Inf", "Infinity", .toNearestOrEven)
+ /* dqintx121 */ self.tointegralx128("-Inf", "-Infinity", .toNearestOrEven)
+ /* dqintx122 */ self.tointegralx128("NaN", "NaN", .toNearestOrEven)
+ /* dqintx123 */ self.tointegralx128("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqintx124 */ self.tointegralx128("0", "0", .toNearestOrEven)
+ /* dqintx125 */ self.tointegralx128("-0", "-0", .toNearestOrEven)
+ /* dqintx126 */ self.tointegralx128("0.000", "0", .toNearestOrEven)
+ /* dqintx127 */ self.tointegralx128("0.00", "0", .toNearestOrEven)
+ /* dqintx128 */ self.tointegralx128("0.0", "0", .toNearestOrEven)
+ /* dqintx129 */ self.tointegralx128("0", "0", .toNearestOrEven)
+ /* dqintx130 */ self.tointegralx128("0E-3", "0", .toNearestOrEven)
+ /* dqintx131 */ self.tointegralx128("0E-2", "0", .toNearestOrEven)
+ /* dqintx132 */ self.tointegralx128("0E-1", "0", .toNearestOrEven)
+ /* dqintx133 */ self.tointegralx128("0E-0", "0", .toNearestOrEven)
+ /* dqintx134 */ self.tointegralx128("0E+1", "0E+1", .toNearestOrEven)
+ /* dqintx135 */ self.tointegralx128("0E+2", "0E+2", .toNearestOrEven)
+ /* dqintx136 */ self.tointegralx128("0E+3", "0E+3", .toNearestOrEven)
+ /* dqintx137 */ self.tointegralx128("0E+4", "0E+4", .toNearestOrEven)
+ /* dqintx138 */ self.tointegralx128("0E+5", "0E+5", .toNearestOrEven)
+ /* dqintx139 */ self.tointegralx128("-0.000", "-0", .toNearestOrEven)
+ /* dqintx140 */ self.tointegralx128("-0.00", "-0", .toNearestOrEven)
+ /* dqintx141 */ self.tointegralx128("-0.0", "-0", .toNearestOrEven)
+ /* dqintx142 */ self.tointegralx128("-0", "-0", .toNearestOrEven)
+ /* dqintx143 */ self.tointegralx128("-0E-3", "-0", .toNearestOrEven)
+ /* dqintx144 */ self.tointegralx128("-0E-2", "-0", .toNearestOrEven)
+ /* dqintx145 */ self.tointegralx128("-0E-1", "-0", .toNearestOrEven)
+ /* dqintx146 */ self.tointegralx128("-0E-0", "-0", .toNearestOrEven)
+ /* dqintx147 */ self.tointegralx128("-0E+1", "-0E+1", .toNearestOrEven)
+ /* dqintx148 */ self.tointegralx128("-0E+2", "-0E+2", .toNearestOrEven)
+ /* dqintx149 */ self.tointegralx128("-0E+3", "-0E+3", .toNearestOrEven)
+ /* dqintx150 */ self.tointegralx128("-0E+4", "-0E+4", .toNearestOrEven)
+ /* dqintx151 */ self.tointegralx128("-0E+5", "-0E+5", .toNearestOrEven)
+ /* dqintx152 */ self.tointegralx128("NaN(0x328)", "NaN(0x328)", .toNearestOrEven)
+ /* dqintx153 */ self.tointegralx128("sNaN(0x50)", "NaN(0x50)", .toNearestOrEven, .isInvalidOperation)
+ /* dqintx154 */ self.tointegralx128("-NaN(0x328)", "-NaN(0x328)", .toNearestOrEven)
+ /* dqintx155 */ self.tointegralx128("-sNaN(0x50)", "-NaN(0x50)", .toNearestOrEven, .isInvalidOperation)
+ /* dqintx156 */ self.tointegralx128("-NaN", "-NaN", .toNearestOrEven)
+ /* dqintx157 */ self.tointegralx128("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqintx200 */ self.tointegralx128("2.1", "2", .toNearestOrAwayFromZero, .isInexact)
+ /* dqintx201 */ self.tointegralx128("100", "100", .toNearestOrAwayFromZero)
+ /* dqintx202 */ self.tointegralx128("100.0", "100", .toNearestOrAwayFromZero)
+ /* dqintx203 */ self.tointegralx128("101.5", "102", .toNearestOrAwayFromZero, .isInexact)
+ /* dqintx204 */ self.tointegralx128("-101.5", "-102", .toNearestOrAwayFromZero, .isInexact)
+ /* dqintx205 */ self.tointegralx128("10E+5", "1.0E+6", .toNearestOrAwayFromZero)
+ /* dqintx206 */ self.tointegralx128("7.89E+77", "7.89E+77", .toNearestOrAwayFromZero)
+ /* dqintx207 */ self.tointegralx128("-Inf", "-Infinity", .toNearestOrAwayFromZero)
+ /* dqintx210 */ self.tointegralx128("55.5", "56", .toNearestOrEven, .isInexact)
+ /* dqintx211 */ self.tointegralx128("56.5", "56", .toNearestOrEven, .isInexact)
+ /* dqintx212 */ self.tointegralx128("57.5", "58", .toNearestOrEven, .isInexact)
+ /* dqintx213 */ self.tointegralx128("-55.5", "-56", .toNearestOrEven, .isInexact)
+ /* dqintx214 */ self.tointegralx128("-56.5", "-56", .toNearestOrEven, .isInexact)
+ /* dqintx215 */ self.tointegralx128("-57.5", "-58", .toNearestOrEven, .isInexact)
+ /* dqintx220 */ self.tointegralx128("55.5", "56", .toNearestOrAwayFromZero, .isInexact)
+ /* dqintx221 */ self.tointegralx128("56.5", "57", .toNearestOrAwayFromZero, .isInexact)
+ /* dqintx222 */ self.tointegralx128("57.5", "58", .toNearestOrAwayFromZero, .isInexact)
+ /* dqintx223 */ self.tointegralx128("-55.5", "-56", .toNearestOrAwayFromZero, .isInexact)
+ /* dqintx224 */ self.tointegralx128("-56.5", "-57", .toNearestOrAwayFromZero, .isInexact)
+ /* dqintx225 */ self.tointegralx128("-57.5", "-58", .toNearestOrAwayFromZero, .isInexact)
+ /* dqintx250 */ self.tointegralx128("55.7", "55", .towardZero, .isInexact)
+ /* dqintx251 */ self.tointegralx128("56.7", "56", .towardZero, .isInexact)
+ /* dqintx252 */ self.tointegralx128("57.7", "57", .towardZero, .isInexact)
+ /* dqintx253 */ self.tointegralx128("-55.7", "-55", .towardZero, .isInexact)
+ /* dqintx254 */ self.tointegralx128("-56.7", "-56", .towardZero, .isInexact)
+ /* dqintx255 */ self.tointegralx128("-57.7", "-57", .towardZero, .isInexact)
+ /* dqintx260 */ self.tointegralx128("55.3", "56", .up, .isInexact)
+ /* dqintx261 */ self.tointegralx128("56.3", "57", .up, .isInexact)
+ /* dqintx262 */ self.tointegralx128("57.3", "58", .up, .isInexact)
+ /* dqintx263 */ self.tointegralx128("-55.3", "-55", .up, .isInexact)
+ /* dqintx264 */ self.tointegralx128("-56.3", "-56", .up, .isInexact)
+ /* dqintx265 */ self.tointegralx128("-57.3", "-57", .up, .isInexact)
+ /* dqintx270 */ self.tointegralx128("55.7", "55", .down, .isInexact)
+ /* dqintx271 */ self.tointegralx128("56.7", "56", .down, .isInexact)
+ /* dqintx272 */ self.tointegralx128("57.7", "57", .down, .isInexact)
+ /* dqintx273 */ self.tointegralx128("-55.7", "-56", .down, .isInexact)
+ /* dqintx274 */ self.tointegralx128("-56.7", "-57", .down, .isInexact)
+ /* dqintx275 */ self.tointegralx128("-57.7", "-58", .down, .isInexact)
+ /* dqintx300 */ self.tointegralx128("-2147483646", "-2147483646", .down)
+ /* dqintx301 */ self.tointegralx128("-2147483647", "-2147483647", .down)
+ /* dqintx302 */ self.tointegralx128("-2147483648", "-2147483648", .down)
+ /* dqintx303 */ self.tointegralx128("-2147483649", "-2147483649", .down)
+ /* dqintx304 */ self.tointegralx128("2147483646", "2147483646", .down)
+ /* dqintx305 */ self.tointegralx128("2147483647", "2147483647", .down)
+ /* dqintx306 */ self.tointegralx128("2147483648", "2147483648", .down)
+ /* dqintx307 */ self.tointegralx128("2147483649", "2147483649", .down)
+ /* dqintx308 */ self.tointegralx128("4294967294", "4294967294", .down)
+ /* dqintx309 */ self.tointegralx128("4294967295", "4294967295", .down)
+ /* dqintx310 */ self.tointegralx128("4294967296", "4294967296", .down)
+ /* dqintx311 */ self.tointegralx128("4294967297", "4294967297", .down)
+ }
+
+ private func tointegralx128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.rounded(rounding, status: &status)
+ self.assertEqual(result, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveSubTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveSubTests.swift
new file mode 100644
index 0000000..8ab9509
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveSubTests.swift
@@ -0,0 +1,1134 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveSubTests: XCTestCase, SpeleotroveMixin {
+
+ func test_subtract64() {
+ /* ddcan502 */ self.subtract64("0E+384", "#77ffff3fcff3fcff", "#f7fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan503 */ self.subtract64("#77fcffffcff3fcff", "0E+384", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan504 */ self.subtract64("0E-398", "#77ffff3fcff3fcff", "#f7fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan505 */ self.subtract64("#77fcffffcff3fcff", "0E-398", "#77fcff3fcff3fcff", .toNearestOrEven)
+ /* ddcan506 */ self.subtract64("-1E-398", "#77ffff3fcff3fcff", "#f7fcff3fcff3fcff", .toNearestOrEven, .isInexact)
+ /* ddcan507 */ self.subtract64("#77ffff3fcff3fcff", "-1E-398", "#77fcff3fcff3fcff", .toNearestOrEven, .isInexact)
+ /* ddcan511 */ self.subtract64("0", "#7c03ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan512 */ self.subtract64("#7c03ff3fcff3fcff", "0", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan513 */ self.subtract64("0", "#7c40ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan514 */ self.subtract64("#7c40ff3fcff3fcff", "0", "#7c00ff3fcff3fcff", .toNearestOrEven)
+ /* ddcan515 */ self.subtract64("0", "#7e00ffffcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan516 */ self.subtract64("#7e00ffffcff3fcff", "0", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan517 */ self.subtract64("0", "#7e80ff3fcff3fcff", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan518 */ self.subtract64("#7e80ff3fcff3fcff", "0", "#7c00ff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* ddcan520 */ self.subtract64("0", "#7880000000000000", "#f800000000000000", .toNearestOrEven)
+ /* ddcan521 */ self.subtract64("#7880000000000000", "0", "#7800000000000000", .toNearestOrEven)
+ /* ddcan522 */ self.subtract64("0", "#7802000000000000", "#f800000000000000", .toNearestOrEven)
+ /* ddcan523 */ self.subtract64("#7802000000000000", "0", "#7800000000000000", .toNearestOrEven)
+ /* ddcan524 */ self.subtract64("0", "#7800000000000001", "#f800000000000000", .toNearestOrEven)
+ /* ddcan525 */ self.subtract64("#7800000000000001", "0", "#7800000000000000", .toNearestOrEven)
+ /* ddcan526 */ self.subtract64("0", "#7800002000000000", "#f800000000000000", .toNearestOrEven)
+ /* ddcan527 */ self.subtract64("#7800002000000000", "0", "#7800000000000000", .toNearestOrEven)
+ /* ddsub001 */ self.subtract64("0", "0", "0", .toNearestOrEven)
+ /* ddsub002 */ self.subtract64("1", "1", "0", .toNearestOrEven)
+ /* ddsub003 */ self.subtract64("1", "2", "-1", .toNearestOrEven)
+ /* ddsub004 */ self.subtract64("2", "1", "1", .toNearestOrEven)
+ /* ddsub005 */ self.subtract64("2", "2", "0", .toNearestOrEven)
+ /* ddsub006 */ self.subtract64("3", "2", "1", .toNearestOrEven)
+ /* ddsub007 */ self.subtract64("2", "3", "-1", .toNearestOrEven)
+ /* ddsub011 */ self.subtract64("-0", "0", "-0", .toNearestOrEven)
+ /* ddsub012 */ self.subtract64("-1", "1", "-2", .toNearestOrEven)
+ /* ddsub013 */ self.subtract64("-1", "2", "-3", .toNearestOrEven)
+ /* ddsub014 */ self.subtract64("-2", "1", "-3", .toNearestOrEven)
+ /* ddsub015 */ self.subtract64("-2", "2", "-4", .toNearestOrEven)
+ /* ddsub016 */ self.subtract64("-3", "2", "-5", .toNearestOrEven)
+ /* ddsub017 */ self.subtract64("-2", "3", "-5", .toNearestOrEven)
+ /* ddsub021 */ self.subtract64("0", "-0", "0", .toNearestOrEven)
+ /* ddsub022 */ self.subtract64("1", "-1", "2", .toNearestOrEven)
+ /* ddsub023 */ self.subtract64("1", "-2", "3", .toNearestOrEven)
+ /* ddsub024 */ self.subtract64("2", "-1", "3", .toNearestOrEven)
+ /* ddsub025 */ self.subtract64("2", "-2", "4", .toNearestOrEven)
+ /* ddsub026 */ self.subtract64("3", "-2", "5", .toNearestOrEven)
+ /* ddsub027 */ self.subtract64("2", "-3", "5", .toNearestOrEven)
+ /* ddsub030 */ self.subtract64("11", "1", "10", .toNearestOrEven)
+ /* ddsub031 */ self.subtract64("10", "1", "9", .toNearestOrEven)
+ /* ddsub032 */ self.subtract64("9", "1", "8", .toNearestOrEven)
+ /* ddsub033 */ self.subtract64("1", "1", "0", .toNearestOrEven)
+ /* ddsub034 */ self.subtract64("0", "1", "-1", .toNearestOrEven)
+ /* ddsub035 */ self.subtract64("-1", "1", "-2", .toNearestOrEven)
+ /* ddsub036 */ self.subtract64("-9", "1", "-10", .toNearestOrEven)
+ /* ddsub037 */ self.subtract64("-10", "1", "-11", .toNearestOrEven)
+ /* ddsub038 */ self.subtract64("-11", "1", "-12", .toNearestOrEven)
+ /* ddsub040 */ self.subtract64("5.75", "3.3", "2.45", .toNearestOrEven)
+ /* ddsub041 */ self.subtract64("5", "-3", "8", .toNearestOrEven)
+ /* ddsub042 */ self.subtract64("-5", "-3", "-2", .toNearestOrEven)
+ /* ddsub043 */ self.subtract64("-7", "2.5", "-9.5", .toNearestOrEven)
+ /* ddsub044 */ self.subtract64("0.7", "0.3", "0.4", .toNearestOrEven)
+ /* ddsub045 */ self.subtract64("1.3", "0.3", "1.0", .toNearestOrEven)
+ /* ddsub046 */ self.subtract64("1.25", "1.25", "0.00", .toNearestOrEven)
+ /* ddsub050 */ self.subtract64("1.23456789", "1.00000000", "0.23456789", .toNearestOrEven)
+ /* ddsub051 */ self.subtract64("1.23456789", "1.00000089", "0.23456700", .toNearestOrEven)
+ /* ddsub060 */ self.subtract64("70", "10000e+16", "-1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddsub061 */ self.subtract64("700", "10000e+16", "-1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddsub062 */ self.subtract64("7000", "10000e+16", "-9.999999999999999E+19", .toNearestOrEven, .isInexact)
+ /* ddsub063 */ self.subtract64("70000", "10000e+16", "-9.999999999999993E+19", .toNearestOrEven)
+ /* ddsub064 */ self.subtract64("700000", "10000e+16", "-9.999999999999930E+19", .toNearestOrEven)
+ /* ddsub065 */ self.subtract64("10000e+16", "70", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddsub066 */ self.subtract64("10000e+16", "700", "1.000000000000000E+20", .toNearestOrEven, .isInexact)
+ /* ddsub067 */ self.subtract64("10000e+16", "7000", "9.999999999999999E+19", .toNearestOrEven, .isInexact)
+ /* ddsub068 */ self.subtract64("10000e+16", "70000", "9.999999999999993E+19", .toNearestOrEven)
+ /* ddsub069 */ self.subtract64("10000e+16", "700000", "9.999999999999930E+19", .toNearestOrEven)
+ /* ddsub090 */ self.subtract64("00.0", "0.0", "0.0", .toNearestOrEven)
+ /* ddsub091 */ self.subtract64("00.0", "0.00", "0.00", .toNearestOrEven)
+ /* ddsub092 */ self.subtract64("0.00", "00.0", "0.00", .toNearestOrEven)
+ /* ddsub093 */ self.subtract64("00.0", "0.00", "0.00", .toNearestOrEven)
+ /* ddsub094 */ self.subtract64("0.00", "00.0", "0.00", .toNearestOrEven)
+ /* ddsub095 */ self.subtract64("3", ".3", "2.7", .toNearestOrEven)
+ /* ddsub096 */ self.subtract64("3.", ".3", "2.7", .toNearestOrEven)
+ /* ddsub097 */ self.subtract64("3.0", ".3", "2.7", .toNearestOrEven)
+ /* ddsub098 */ self.subtract64("3.00", ".3", "2.70", .toNearestOrEven)
+ /* ddsub099 */ self.subtract64("3", "3", "0", .toNearestOrEven)
+ /* ddsub100 */ self.subtract64("3", "+3", "0", .toNearestOrEven)
+ /* ddsub101 */ self.subtract64("3", "-3", "6", .toNearestOrEven)
+ /* ddsub102 */ self.subtract64("3", "0.3", "2.7", .toNearestOrEven)
+ /* ddsub103 */ self.subtract64("3.", "0.3", "2.7", .toNearestOrEven)
+ /* ddsub104 */ self.subtract64("3.0", "0.3", "2.7", .toNearestOrEven)
+ /* ddsub105 */ self.subtract64("3.00", "0.3", "2.70", .toNearestOrEven)
+ /* ddsub106 */ self.subtract64("3", "3.0", "0.0", .toNearestOrEven)
+ /* ddsub107 */ self.subtract64("3", "+3.0", "0.0", .toNearestOrEven)
+ /* ddsub108 */ self.subtract64("3", "-3.0", "6.0", .toNearestOrEven)
+ /* ddsub120 */ self.subtract64("10.23456784", "10.23456789", "-5E-8", .toNearestOrEven)
+ /* ddsub121 */ self.subtract64("10.23456785", "10.23456789", "-4E-8", .toNearestOrEven)
+ /* ddsub122 */ self.subtract64("10.23456786", "10.23456789", "-3E-8", .toNearestOrEven)
+ /* ddsub123 */ self.subtract64("10.23456787", "10.23456789", "-2E-8", .toNearestOrEven)
+ /* ddsub124 */ self.subtract64("10.23456788", "10.23456789", "-1E-8", .toNearestOrEven)
+ /* ddsub125 */ self.subtract64("10.23456789", "10.23456789", "0E-8", .toNearestOrEven)
+ /* ddsub126 */ self.subtract64("10.23456790", "10.23456789", "1E-8", .toNearestOrEven)
+ /* ddsub127 */ self.subtract64("10.23456791", "10.23456789", "2E-8", .toNearestOrEven)
+ /* ddsub128 */ self.subtract64("10.23456792", "10.23456789", "3E-8", .toNearestOrEven)
+ /* ddsub129 */ self.subtract64("10.23456793", "10.23456789", "4E-8", .toNearestOrEven)
+ /* ddsub130 */ self.subtract64("10.23456794", "10.23456789", "5E-8", .toNearestOrEven)
+ /* ddsub131 */ self.subtract64("10.23456781", "10.23456786", "-5E-8", .toNearestOrEven)
+ /* ddsub132 */ self.subtract64("10.23456782", "10.23456786", "-4E-8", .toNearestOrEven)
+ /* ddsub133 */ self.subtract64("10.23456783", "10.23456786", "-3E-8", .toNearestOrEven)
+ /* ddsub134 */ self.subtract64("10.23456784", "10.23456786", "-2E-8", .toNearestOrEven)
+ /* ddsub135 */ self.subtract64("10.23456785", "10.23456786", "-1E-8", .toNearestOrEven)
+ /* ddsub136 */ self.subtract64("10.23456786", "10.23456786", "0E-8", .toNearestOrEven)
+ /* ddsub137 */ self.subtract64("10.23456787", "10.23456786", "1E-8", .toNearestOrEven)
+ /* ddsub138 */ self.subtract64("10.23456788", "10.23456786", "2E-8", .toNearestOrEven)
+ /* ddsub139 */ self.subtract64("10.23456789", "10.23456786", "3E-8", .toNearestOrEven)
+ /* ddsub140 */ self.subtract64("10.23456790", "10.23456786", "4E-8", .toNearestOrEven)
+ /* ddsub141 */ self.subtract64("10.23456791", "10.23456786", "5E-8", .toNearestOrEven)
+ /* ddsub142 */ self.subtract64("1", "0.999999999", "1E-9", .toNearestOrEven)
+ /* ddsub143 */ self.subtract64("0.999999999", "1", "-1E-9", .toNearestOrEven)
+ /* ddsub144 */ self.subtract64("-10.23456780", "-10.23456786", "6E-8", .toNearestOrEven)
+ /* ddsub145 */ self.subtract64("-10.23456790", "-10.23456786", "-4E-8", .toNearestOrEven)
+ /* ddsub146 */ self.subtract64("-10.23456791", "-10.23456786", "-5E-8", .toNearestOrEven)
+ /* ddsub160 */ self.subtract64("0", ".1", "-0.1", .toNearestOrEven)
+ /* ddsub161 */ self.subtract64("00", ".97983", "-0.97983", .toNearestOrEven)
+ /* ddsub162 */ self.subtract64("0", ".9", "-0.9", .toNearestOrEven)
+ /* ddsub163 */ self.subtract64("0", "0.102", "-0.102", .toNearestOrEven)
+ /* ddsub164 */ self.subtract64("0", ".4", "-0.4", .toNearestOrEven)
+ /* ddsub165 */ self.subtract64("0", ".307", "-0.307", .toNearestOrEven)
+ /* ddsub166 */ self.subtract64("0", ".43822", "-0.43822", .toNearestOrEven)
+ /* ddsub167 */ self.subtract64("0", ".911", "-0.911", .toNearestOrEven)
+ /* ddsub168 */ self.subtract64(".0", ".02", "-0.02", .toNearestOrEven)
+ /* ddsub169 */ self.subtract64("00", ".392", "-0.392", .toNearestOrEven)
+ /* ddsub170 */ self.subtract64("0", ".26", "-0.26", .toNearestOrEven)
+ /* ddsub171 */ self.subtract64("0", "0.51", "-0.51", .toNearestOrEven)
+ /* ddsub172 */ self.subtract64("0", ".2234", "-0.2234", .toNearestOrEven)
+ /* ddsub173 */ self.subtract64("0", ".2", "-0.2", .toNearestOrEven)
+ /* ddsub174 */ self.subtract64(".0", ".0008", "-0.0008", .toNearestOrEven)
+ /* ddsub180 */ self.subtract64("0.0", "-.1", "0.1", .toNearestOrEven)
+ /* ddsub181 */ self.subtract64("0.00", "-.97983", "0.97983", .toNearestOrEven)
+ /* ddsub182 */ self.subtract64("0.0", "-.9", "0.9", .toNearestOrEven)
+ /* ddsub183 */ self.subtract64("0.0", "-0.102", "0.102", .toNearestOrEven)
+ /* ddsub184 */ self.subtract64("0.0", "-.4", "0.4", .toNearestOrEven)
+ /* ddsub185 */ self.subtract64("0.0", "-.307", "0.307", .toNearestOrEven)
+ /* ddsub186 */ self.subtract64("0.0", "-.43822", "0.43822", .toNearestOrEven)
+ /* ddsub187 */ self.subtract64("0.0", "-.911", "0.911", .toNearestOrEven)
+ /* ddsub188 */ self.subtract64("0.0", "-.02", "0.02", .toNearestOrEven)
+ /* ddsub189 */ self.subtract64("0.00", "-.392", "0.392", .toNearestOrEven)
+ /* ddsub190 */ self.subtract64("0.0", "-.26", "0.26", .toNearestOrEven)
+ /* ddsub191 */ self.subtract64("0.0", "-0.51", "0.51", .toNearestOrEven)
+ /* ddsub192 */ self.subtract64("0.0", "-.2234", "0.2234", .toNearestOrEven)
+ /* ddsub193 */ self.subtract64("0.0", "-.2", "0.2", .toNearestOrEven)
+ /* ddsub194 */ self.subtract64("0.0", "-.0008", "0.0008", .toNearestOrEven)
+ /* ddsub200 */ self.subtract64("0", "-.1", "0.1", .toNearestOrEven)
+ /* ddsub201 */ self.subtract64("00", "-.97983", "0.97983", .toNearestOrEven)
+ /* ddsub202 */ self.subtract64("0", "-.9", "0.9", .toNearestOrEven)
+ /* ddsub203 */ self.subtract64("0", "-0.102", "0.102", .toNearestOrEven)
+ /* ddsub204 */ self.subtract64("0", "-.4", "0.4", .toNearestOrEven)
+ /* ddsub205 */ self.subtract64("0", "-.307", "0.307", .toNearestOrEven)
+ /* ddsub206 */ self.subtract64("0", "-.43822", "0.43822", .toNearestOrEven)
+ /* ddsub207 */ self.subtract64("0", "-.911", "0.911", .toNearestOrEven)
+ /* ddsub208 */ self.subtract64(".0", "-.02", "0.02", .toNearestOrEven)
+ /* ddsub209 */ self.subtract64("00", "-.392", "0.392", .toNearestOrEven)
+ /* ddsub210 */ self.subtract64("0", "-.26", "0.26", .toNearestOrEven)
+ /* ddsub211 */ self.subtract64("0", "-0.51", "0.51", .toNearestOrEven)
+ /* ddsub212 */ self.subtract64("0", "-.2234", "0.2234", .toNearestOrEven)
+ /* ddsub213 */ self.subtract64("0", "-.2", "0.2", .toNearestOrEven)
+ /* ddsub214 */ self.subtract64(".0", "-.0008", "0.0008", .toNearestOrEven)
+ /* ddsub220 */ self.subtract64("-56267E-12", "0", "-5.6267E-8", .toNearestOrEven)
+ /* ddsub221 */ self.subtract64("-56267E-11", "0", "-5.6267E-7", .toNearestOrEven)
+ /* ddsub222 */ self.subtract64("-56267E-10", "0", "-0.0000056267", .toNearestOrEven)
+ /* ddsub223 */ self.subtract64("-56267E-9", "0", "-0.000056267", .toNearestOrEven)
+ /* ddsub224 */ self.subtract64("-56267E-8", "0", "-0.00056267", .toNearestOrEven)
+ /* ddsub225 */ self.subtract64("-56267E-7", "0", "-0.0056267", .toNearestOrEven)
+ /* ddsub226 */ self.subtract64("-56267E-6", "0", "-0.056267", .toNearestOrEven)
+ /* ddsub227 */ self.subtract64("-56267E-5", "0", "-0.56267", .toNearestOrEven)
+ /* ddsub228 */ self.subtract64("-56267E-2", "0", "-562.67", .toNearestOrEven)
+ /* ddsub229 */ self.subtract64("-56267E-1", "0", "-5626.7", .toNearestOrEven)
+ /* ddsub230 */ self.subtract64("-56267E-0", "0", "-56267", .toNearestOrEven)
+ /* ddsub240 */ self.subtract64("0", "-56267E-12", "5.6267E-8", .toNearestOrEven)
+ /* ddsub241 */ self.subtract64("0", "-56267E-11", "5.6267E-7", .toNearestOrEven)
+ /* ddsub242 */ self.subtract64("0", "-56267E-10", "0.0000056267", .toNearestOrEven)
+ /* ddsub243 */ self.subtract64("0", "-56267E-9", "0.000056267", .toNearestOrEven)
+ /* ddsub244 */ self.subtract64("0", "-56267E-8", "0.00056267", .toNearestOrEven)
+ /* ddsub245 */ self.subtract64("0", "-56267E-7", "0.0056267", .toNearestOrEven)
+ /* ddsub246 */ self.subtract64("0", "-56267E-6", "0.056267", .toNearestOrEven)
+ /* ddsub247 */ self.subtract64("0", "-56267E-5", "0.56267", .toNearestOrEven)
+ /* ddsub248 */ self.subtract64("0", "-56267E-2", "562.67", .toNearestOrEven)
+ /* ddsub249 */ self.subtract64("0", "-56267E-1", "5626.7", .toNearestOrEven)
+ /* ddsub250 */ self.subtract64("0", "-56267E-0", "56267", .toNearestOrEven)
+ /* ddsub301 */ self.subtract64("1.23456789", "1.00000000", "0.23456789", .toNearestOrEven)
+ /* ddsub302 */ self.subtract64("1.23456789", "1.00000011", "0.23456778", .toNearestOrEven)
+ /* ddsub321 */ self.subtract64("0.9998", "0.0000", "0.9998", .toNearestOrEven)
+ /* ddsub322 */ self.subtract64("0.9998", "0.0001", "0.9997", .toNearestOrEven)
+ /* ddsub323 */ self.subtract64("0.9998", "0.0002", "0.9996", .toNearestOrEven)
+ /* ddsub324 */ self.subtract64("0.9998", "0.0003", "0.9995", .toNearestOrEven)
+ /* ddsub325 */ self.subtract64("0.9998", "-0.0000", "0.9998", .toNearestOrEven)
+ /* ddsub326 */ self.subtract64("0.9998", "-0.0001", "0.9999", .toNearestOrEven)
+ /* ddsub327 */ self.subtract64("0.9998", "-0.0002", "1.0000", .toNearestOrEven)
+ /* ddsub328 */ self.subtract64("0.9998", "-0.0003", "1.0001", .toNearestOrEven)
+ /* ddsub346 */ self.subtract64("10000e+9", "7", "9999999999993", .toNearestOrEven)
+ /* ddsub347 */ self.subtract64("10000e+9", "70", "9999999999930", .toNearestOrEven)
+ /* ddsub348 */ self.subtract64("10000e+9", "700", "9999999999300", .toNearestOrEven)
+ /* ddsub349 */ self.subtract64("10000e+9", "7000", "9999999993000", .toNearestOrEven)
+ /* ddsub350 */ self.subtract64("10000e+9", "70000", "9999999930000", .toNearestOrEven)
+ /* ddsub351 */ self.subtract64("10000e+9", "700000", "9999999300000", .toNearestOrEven)
+ /* ddsub352 */ self.subtract64("7", "10000e+9", "-9999999999993", .toNearestOrEven)
+ /* ddsub353 */ self.subtract64("70", "10000e+9", "-9999999999930", .toNearestOrEven)
+ /* ddsub354 */ self.subtract64("700", "10000e+9", "-9999999999300", .toNearestOrEven)
+ /* ddsub355 */ self.subtract64("7000", "10000e+9", "-9999999993000", .toNearestOrEven)
+ /* ddsub356 */ self.subtract64("70000", "10000e+9", "-9999999930000", .toNearestOrEven)
+ /* ddsub357 */ self.subtract64("700000", "10000e+9", "-9999999300000", .toNearestOrEven)
+ /* ddsub361 */ self.subtract64("1", "0.0001", "0.9999", .toNearestOrEven)
+ /* ddsub362 */ self.subtract64("1", "0.00001", "0.99999", .toNearestOrEven)
+ /* ddsub363 */ self.subtract64("1", "0.000001", "0.999999", .toNearestOrEven)
+ /* ddsub364 */ self.subtract64("1", "0.0000000000000001", "0.9999999999999999", .toNearestOrEven)
+ /* ddsub365 */ self.subtract64("1", "0.00000000000000001", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddsub366 */ self.subtract64("1", "0.000000000000000001", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddsub370 */ self.subtract64("1", "0", "1", .toNearestOrEven)
+ /* ddsub371 */ self.subtract64("1", "0.", "1", .toNearestOrEven)
+ /* ddsub372 */ self.subtract64("1", ".0", "1.0", .toNearestOrEven)
+ /* ddsub373 */ self.subtract64("1", "0.0", "1.0", .toNearestOrEven)
+ /* ddsub374 */ self.subtract64("0", "1", "-1", .toNearestOrEven)
+ /* ddsub375 */ self.subtract64("0.", "1", "-1", .toNearestOrEven)
+ /* ddsub376 */ self.subtract64(".0", "1", "-1.0", .toNearestOrEven)
+ /* ddsub377 */ self.subtract64("0.0", "1", "-1.0", .toNearestOrEven)
+ /* ddsub390 */ self.subtract64("-56267E-10", "0", "-0.0000056267", .toNearestOrEven)
+ /* ddsub391 */ self.subtract64("-56267E-6", "0", "-0.056267", .toNearestOrEven)
+ /* ddsub392 */ self.subtract64("-56267E-5", "0", "-0.56267", .toNearestOrEven)
+ /* ddsub393 */ self.subtract64("-56267E-4", "0", "-5.6267", .toNearestOrEven)
+ /* ddsub394 */ self.subtract64("-56267E-3", "0", "-56.267", .toNearestOrEven)
+ /* ddsub395 */ self.subtract64("-56267E-2", "0", "-562.67", .toNearestOrEven)
+ /* ddsub396 */ self.subtract64("-56267E-1", "0", "-5626.7", .toNearestOrEven)
+ /* ddsub397 */ self.subtract64("-56267E-0", "0", "-56267", .toNearestOrEven)
+ /* ddsub398 */ self.subtract64("-5E-10", "0", "-5E-10", .toNearestOrEven)
+ /* ddsub399 */ self.subtract64("-5E-7", "0", "-5E-7", .toNearestOrEven)
+ /* ddsub400 */ self.subtract64("-5E-6", "0", "-0.000005", .toNearestOrEven)
+ /* ddsub401 */ self.subtract64("-5E-5", "0", "-0.00005", .toNearestOrEven)
+ /* ddsub402 */ self.subtract64("-5E-4", "0", "-0.0005", .toNearestOrEven)
+ /* ddsub403 */ self.subtract64("-5E-1", "0", "-0.5", .toNearestOrEven)
+ /* ddsub404 */ self.subtract64("-5E0", "0", "-5", .toNearestOrEven)
+ /* ddsub405 */ self.subtract64("-5E1", "0", "-50", .toNearestOrEven)
+ /* ddsub406 */ self.subtract64("-5E5", "0", "-500000", .toNearestOrEven)
+ /* ddsub407 */ self.subtract64("-5E15", "0", "-5000000000000000", .toNearestOrEven)
+ /* ddsub408 */ self.subtract64("-5E16", "0", "-5.000000000000000E+16", .toNearestOrEven)
+ /* ddsub409 */ self.subtract64("-5E17", "0", "-5.000000000000000E+17", .toNearestOrEven)
+ /* ddsub410 */ self.subtract64("-5E18", "0", "-5.000000000000000E+18", .toNearestOrEven)
+ /* ddsub411 */ self.subtract64("-5E100", "0", "-5.000000000000000E+100", .toNearestOrEven)
+ /* ddsub420 */ self.subtract64("0", "-56267E-10", "0.0000056267", .toNearestOrEven)
+ /* ddsub421 */ self.subtract64("0", "-56267E-6", "0.056267", .toNearestOrEven)
+ /* ddsub422 */ self.subtract64("0", "-56267E-5", "0.56267", .toNearestOrEven)
+ /* ddsub423 */ self.subtract64("0", "-56267E-4", "5.6267", .toNearestOrEven)
+ /* ddsub424 */ self.subtract64("0", "-56267E-3", "56.267", .toNearestOrEven)
+ /* ddsub425 */ self.subtract64("0", "-56267E-2", "562.67", .toNearestOrEven)
+ /* ddsub426 */ self.subtract64("0", "-56267E-1", "5626.7", .toNearestOrEven)
+ /* ddsub427 */ self.subtract64("0", "-56267E-0", "56267", .toNearestOrEven)
+ /* ddsub428 */ self.subtract64("0", "-5E-10", "5E-10", .toNearestOrEven)
+ /* ddsub429 */ self.subtract64("0", "-5E-7", "5E-7", .toNearestOrEven)
+ /* ddsub430 */ self.subtract64("0", "-5E-6", "0.000005", .toNearestOrEven)
+ /* ddsub431 */ self.subtract64("0", "-5E-5", "0.00005", .toNearestOrEven)
+ /* ddsub432 */ self.subtract64("0", "-5E-4", "0.0005", .toNearestOrEven)
+ /* ddsub433 */ self.subtract64("0", "-5E-1", "0.5", .toNearestOrEven)
+ /* ddsub434 */ self.subtract64("0", "-5E0", "5", .toNearestOrEven)
+ /* ddsub435 */ self.subtract64("0", "-5E1", "50", .toNearestOrEven)
+ /* ddsub436 */ self.subtract64("0", "-5E5", "500000", .toNearestOrEven)
+ /* ddsub437 */ self.subtract64("0", "-5E15", "5000000000000000", .toNearestOrEven)
+ /* ddsub438 */ self.subtract64("0", "-5E16", "5.000000000000000E+16", .toNearestOrEven)
+ /* ddsub439 */ self.subtract64("0", "-5E17", "5.000000000000000E+17", .toNearestOrEven)
+ /* ddsub440 */ self.subtract64("0", "-5E18", "5.000000000000000E+18", .toNearestOrEven)
+ /* ddsub441 */ self.subtract64("0", "-5E100", "5.000000000000000E+100", .toNearestOrEven)
+ /* ddsub461 */ self.subtract64("1E+16", "1", "9999999999999999", .toNearestOrEven)
+ /* ddsub462 */ self.subtract64("1E+12", "-1.111", "1000000000001.111", .toNearestOrEven)
+ /* ddsub463 */ self.subtract64("1.111", "-1E+12", "1000000000001.111", .toNearestOrEven)
+ /* ddsub464 */ self.subtract64("-1", "-1E+16", "9999999999999999", .toNearestOrEven)
+ /* ddsub465 */ self.subtract64("7E+15", "1", "6999999999999999", .toNearestOrEven)
+ /* ddsub466 */ self.subtract64("7E+12", "-1.111", "7000000000001.111", .toNearestOrEven)
+ /* ddsub467 */ self.subtract64("1.111", "-7E+12", "7000000000001.111", .toNearestOrEven)
+ /* ddsub468 */ self.subtract64("-1", "-7E+15", "6999999999999999", .toNearestOrEven)
+ /* ddsub470 */ self.subtract64("0.4444444444444444", "-0.5555555555555563", "1.000000000000001", .toNearestOrEven, .isInexact)
+ /* ddsub471 */ self.subtract64("0.4444444444444444", "-0.5555555555555562", "1.000000000000001", .toNearestOrEven, .isInexact)
+ /* ddsub472 */ self.subtract64("0.4444444444444444", "-0.5555555555555561", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddsub473 */ self.subtract64("0.4444444444444444", "-0.5555555555555560", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddsub474 */ self.subtract64("0.4444444444444444", "-0.5555555555555559", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddsub475 */ self.subtract64("0.4444444444444444", "-0.5555555555555558", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddsub476 */ self.subtract64("0.4444444444444444", "-0.5555555555555557", "1.000000000000000", .toNearestOrEven, .isInexact)
+ /* ddsub477 */ self.subtract64("0.4444444444444444", "-0.5555555555555556", "1.000000000000000", .toNearestOrEven)
+ /* ddsub478 */ self.subtract64("0.4444444444444444", "-0.5555555555555555", "0.9999999999999999", .toNearestOrEven)
+ /* ddsub479 */ self.subtract64("0.4444444444444444", "-0.5555555555555554", "0.9999999999999998", .toNearestOrEven)
+ /* ddsub480 */ self.subtract64("0.4444444444444444", "-0.5555555555555553", "0.9999999999999997", .toNearestOrEven)
+ /* ddsub481 */ self.subtract64("0.4444444444444444", "-0.5555555555555552", "0.9999999999999996", .toNearestOrEven)
+ /* ddsub482 */ self.subtract64("0.4444444444444444", "-0.5555555555555551", "0.9999999999999995", .toNearestOrEven)
+ /* ddsub483 */ self.subtract64("0.4444444444444444", "-0.5555555555555550", "0.9999999999999994", .toNearestOrEven)
+ /* ddsub500 */ self.subtract64("1231234567456789", "0", "1231234567456789", .toNearestOrAwayFromZero)
+ /* ddsub501 */ self.subtract64("1231234567456789", "0.000000001", "1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub502 */ self.subtract64("1231234567456789", "0.000001", "1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub503 */ self.subtract64("1231234567456789", "0.1", "1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub504 */ self.subtract64("1231234567456789", "0.4", "1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub505 */ self.subtract64("1231234567456789", "0.49", "1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub506 */ self.subtract64("1231234567456789", "0.499999", "1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub507 */ self.subtract64("1231234567456789", "0.499999999", "1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub508 */ self.subtract64("1231234567456789", "0.5", "1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub509 */ self.subtract64("1231234567456789", "0.500000001", "1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub510 */ self.subtract64("1231234567456789", "0.500001", "1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub511 */ self.subtract64("1231234567456789", "0.51", "1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub512 */ self.subtract64("1231234567456789", "0.6", "1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub513 */ self.subtract64("1231234567456789", "0.9", "1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub514 */ self.subtract64("1231234567456789", "0.99999", "1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub515 */ self.subtract64("1231234567456789", "0.999999999", "1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub516 */ self.subtract64("1231234567456789", "1", "1231234567456788", .toNearestOrAwayFromZero)
+ /* ddsub517 */ self.subtract64("1231234567456789", "1.000000001", "1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub518 */ self.subtract64("1231234567456789", "1.00001", "1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub519 */ self.subtract64("1231234567456789", "1.1", "1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub520 */ self.subtract64("1231234567456789", "0", "1231234567456789", .toNearestOrEven)
+ /* ddsub521 */ self.subtract64("1231234567456789", "0.000000001", "1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub522 */ self.subtract64("1231234567456789", "0.000001", "1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub523 */ self.subtract64("1231234567456789", "0.1", "1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub524 */ self.subtract64("1231234567456789", "0.4", "1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub525 */ self.subtract64("1231234567456789", "0.49", "1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub526 */ self.subtract64("1231234567456789", "0.499999", "1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub527 */ self.subtract64("1231234567456789", "0.499999999", "1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub528 */ self.subtract64("1231234567456789", "0.5", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub529 */ self.subtract64("1231234567456789", "0.500000001", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub530 */ self.subtract64("1231234567456789", "0.500001", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub531 */ self.subtract64("1231234567456789", "0.51", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub532 */ self.subtract64("1231234567456789", "0.6", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub533 */ self.subtract64("1231234567456789", "0.9", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub534 */ self.subtract64("1231234567456789", "0.99999", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub535 */ self.subtract64("1231234567456789", "0.999999999", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub536 */ self.subtract64("1231234567456789", "1", "1231234567456788", .toNearestOrEven)
+ /* ddsub537 */ self.subtract64("1231234567456789", "1.00000001", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub538 */ self.subtract64("1231234567456789", "1.00001", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub539 */ self.subtract64("1231234567456789", "1.1", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub540 */ self.subtract64("1231234567456788", "0.499999999", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub541 */ self.subtract64("1231234567456788", "0.5", "1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub542 */ self.subtract64("1231234567456788", "0.500000001", "1231234567456787", .toNearestOrEven, .isInexact)
+ /* ddsub550 */ self.subtract64("1231234567456789", "0", "1231234567456789", .towardZero)
+ /* ddsub551 */ self.subtract64("1231234567456789", "0.000000001", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub552 */ self.subtract64("1231234567456789", "0.000001", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub553 */ self.subtract64("1231234567456789", "0.1", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub554 */ self.subtract64("1231234567456789", "0.4", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub555 */ self.subtract64("1231234567456789", "0.49", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub556 */ self.subtract64("1231234567456789", "0.499999", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub557 */ self.subtract64("1231234567456789", "0.499999999", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub558 */ self.subtract64("1231234567456789", "0.5", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub559 */ self.subtract64("1231234567456789", "0.500000001", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub560 */ self.subtract64("1231234567456789", "0.500001", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub561 */ self.subtract64("1231234567456789", "0.51", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub562 */ self.subtract64("1231234567456789", "0.6", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub563 */ self.subtract64("1231234567456789", "0.9", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub564 */ self.subtract64("1231234567456789", "0.99999", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub565 */ self.subtract64("1231234567456789", "0.999999999", "1231234567456788", .towardZero, .isInexact)
+ /* ddsub566 */ self.subtract64("1231234567456789", "1", "1231234567456788", .towardZero)
+ /* ddsub567 */ self.subtract64("1231234567456789", "1.00000001", "1231234567456787", .towardZero, .isInexact)
+ /* ddsub568 */ self.subtract64("1231234567456789", "1.00001", "1231234567456787", .towardZero, .isInexact)
+ /* ddsub569 */ self.subtract64("1231234567456789", "1.1", "1231234567456787", .towardZero, .isInexact)
+ /* ddsub600 */ self.subtract64("0", "1231234567456789", "-1231234567456789", .toNearestOrAwayFromZero)
+ /* ddsub601 */ self.subtract64("0.000000001", "1231234567456789", "-1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub602 */ self.subtract64("0.000001", "1231234567456789", "-1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub603 */ self.subtract64("0.1", "1231234567456789", "-1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub604 */ self.subtract64("0.4", "1231234567456789", "-1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub605 */ self.subtract64("0.49", "1231234567456789", "-1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub606 */ self.subtract64("0.499999", "1231234567456789", "-1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub607 */ self.subtract64("0.499999999", "1231234567456789", "-1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub608 */ self.subtract64("0.5", "1231234567456789", "-1231234567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub609 */ self.subtract64("0.500000001", "1231234567456789", "-1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub610 */ self.subtract64("0.500001", "1231234567456789", "-1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub611 */ self.subtract64("0.51", "1231234567456789", "-1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub612 */ self.subtract64("0.6", "1231234567456789", "-1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub613 */ self.subtract64("0.9", "1231234567456789", "-1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub614 */ self.subtract64("0.99999", "1231234567456789", "-1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub615 */ self.subtract64("0.999999999", "1231234567456789", "-1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub616 */ self.subtract64("1", "1231234567456789", "-1231234567456788", .toNearestOrAwayFromZero)
+ /* ddsub617 */ self.subtract64("1.000000001", "1231234567456789", "-1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub618 */ self.subtract64("1.00001", "1231234567456789", "-1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub619 */ self.subtract64("1.1", "1231234567456789", "-1231234567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* ddsub620 */ self.subtract64("0", "1231234567456789", "-1231234567456789", .toNearestOrEven)
+ /* ddsub621 */ self.subtract64("0.000000001", "1231234567456789", "-1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub622 */ self.subtract64("0.000001", "1231234567456789", "-1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub623 */ self.subtract64("0.1", "1231234567456789", "-1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub624 */ self.subtract64("0.4", "1231234567456789", "-1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub625 */ self.subtract64("0.49", "1231234567456789", "-1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub626 */ self.subtract64("0.499999", "1231234567456789", "-1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub627 */ self.subtract64("0.499999999", "1231234567456789", "-1231234567456789", .toNearestOrEven, .isInexact)
+ /* ddsub628 */ self.subtract64("0.5", "1231234567456789", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub629 */ self.subtract64("0.500000001", "1231234567456789", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub630 */ self.subtract64("0.500001", "1231234567456789", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub631 */ self.subtract64("0.51", "1231234567456789", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub632 */ self.subtract64("0.6", "1231234567456789", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub633 */ self.subtract64("0.9", "1231234567456789", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub634 */ self.subtract64("0.99999", "1231234567456789", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub635 */ self.subtract64("0.999999999", "1231234567456789", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub636 */ self.subtract64("1", "1231234567456789", "-1231234567456788", .toNearestOrEven)
+ /* ddsub637 */ self.subtract64("1.00000001", "1231234567456789", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub638 */ self.subtract64("1.00001", "1231234567456789", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub639 */ self.subtract64("1.1", "1231234567456789", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub640 */ self.subtract64("0.499999999", "1231234567456788", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub641 */ self.subtract64("0.5", "1231234567456788", "-1231234567456788", .toNearestOrEven, .isInexact)
+ /* ddsub642 */ self.subtract64("0.500000001", "1231234567456788", "-1231234567456787", .toNearestOrEven, .isInexact)
+ /* ddsub650 */ self.subtract64("0", "1231234567456789", "-1231234567456789", .towardZero)
+ /* ddsub651 */ self.subtract64("0.000000001", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub652 */ self.subtract64("0.000001", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub653 */ self.subtract64("0.1", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub654 */ self.subtract64("0.4", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub655 */ self.subtract64("0.49", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub656 */ self.subtract64("0.499999", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub657 */ self.subtract64("0.499999999", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub658 */ self.subtract64("0.5", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub659 */ self.subtract64("0.500000001", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub660 */ self.subtract64("0.500001", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub661 */ self.subtract64("0.51", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub662 */ self.subtract64("0.6", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub663 */ self.subtract64("0.9", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub664 */ self.subtract64("0.99999", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub665 */ self.subtract64("0.999999999", "1231234567456789", "-1231234567456788", .towardZero, .isInexact)
+ /* ddsub666 */ self.subtract64("1", "1231234567456789", "-1231234567456788", .towardZero)
+ /* ddsub667 */ self.subtract64("1.00000001", "1231234567456789", "-1231234567456787", .towardZero, .isInexact)
+ /* ddsub668 */ self.subtract64("1.00001", "1231234567456789", "-1231234567456787", .towardZero, .isInexact)
+ /* ddsub669 */ self.subtract64("1.1", "1231234567456789", "-1231234567456787", .towardZero, .isInexact)
+ /* ddsub670 */ self.subtract64("1234567456789", "1234567456788.1", "0.9", .toNearestOrAwayFromZero)
+ /* ddsub671 */ self.subtract64("1234567456789", "1234567456788.9", "0.1", .toNearestOrAwayFromZero)
+ /* ddsub672 */ self.subtract64("1234567456789", "1234567456789.1", "-0.1", .toNearestOrAwayFromZero)
+ /* ddsub673 */ self.subtract64("1234567456789", "1234567456789.5", "-0.5", .toNearestOrAwayFromZero)
+ /* ddsub674 */ self.subtract64("1234567456789", "1234567456789.9", "-0.9", .toNearestOrAwayFromZero)
+ /* ddsub680 */ self.subtract64("1234567456789", "1234567456788.1", "0.9", .toNearestOrEven)
+ /* ddsub681 */ self.subtract64("1234567456789", "1234567456788.9", "0.1", .toNearestOrEven)
+ /* ddsub682 */ self.subtract64("1234567456789", "1234567456789.1", "-0.1", .toNearestOrEven)
+ /* ddsub683 */ self.subtract64("1234567456789", "1234567456789.5", "-0.5", .toNearestOrEven)
+ /* ddsub684 */ self.subtract64("1234567456789", "1234567456789.9", "-0.9", .toNearestOrEven)
+ /* ddsub685 */ self.subtract64("1234567456788", "1234567456787.1", "0.9", .toNearestOrEven)
+ /* ddsub686 */ self.subtract64("1234567456788", "1234567456787.9", "0.1", .toNearestOrEven)
+ /* ddsub687 */ self.subtract64("1234567456788", "1234567456788.1", "-0.1", .toNearestOrEven)
+ /* ddsub688 */ self.subtract64("1234567456788", "1234567456788.5", "-0.5", .toNearestOrEven)
+ /* ddsub689 */ self.subtract64("1234567456788", "1234567456788.9", "-0.9", .toNearestOrEven)
+ /* ddsub690 */ self.subtract64("1234567456789", "1234567456788.1", "0.9", .towardZero)
+ /* ddsub691 */ self.subtract64("1234567456789", "1234567456788.9", "0.1", .towardZero)
+ /* ddsub692 */ self.subtract64("1234567456789", "1234567456789.1", "-0.1", .towardZero)
+ /* ddsub693 */ self.subtract64("1234567456789", "1234567456789.5", "-0.5", .towardZero)
+ /* ddsub694 */ self.subtract64("1234567456789", "1234567456789.9", "-0.9", .towardZero)
+ /* ddsub780 */ self.subtract64("-Inf", "Inf", "-Infinity", .towardZero)
+ /* ddsub781 */ self.subtract64("-Inf", "1000", "-Infinity", .towardZero)
+ /* ddsub782 */ self.subtract64("-Inf", "1", "-Infinity", .towardZero)
+ /* ddsub783 */ self.subtract64("-Inf", "-0", "-Infinity", .towardZero)
+ /* ddsub784 */ self.subtract64("-Inf", "-1", "-Infinity", .towardZero)
+ /* ddsub785 */ self.subtract64("-Inf", "-1000", "-Infinity", .towardZero)
+ /* ddsub787 */ self.subtract64("-1000", "Inf", "-Infinity", .towardZero)
+ /* ddsub788 */ self.subtract64("-Inf", "Inf", "-Infinity", .towardZero)
+ /* ddsub789 */ self.subtract64("-1", "Inf", "-Infinity", .towardZero)
+ /* ddsub790 */ self.subtract64("0", "Inf", "-Infinity", .towardZero)
+ /* ddsub791 */ self.subtract64("1", "Inf", "-Infinity", .towardZero)
+ /* ddsub792 */ self.subtract64("1000", "Inf", "-Infinity", .towardZero)
+ /* ddsub800 */ self.subtract64("Inf", "Inf", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub801 */ self.subtract64("Inf", "1000", "Infinity", .towardZero)
+ /* ddsub802 */ self.subtract64("Inf", "1", "Infinity", .towardZero)
+ /* ddsub803 */ self.subtract64("Inf", "0", "Infinity", .towardZero)
+ /* ddsub804 */ self.subtract64("Inf", "-0", "Infinity", .towardZero)
+ /* ddsub805 */ self.subtract64("Inf", "-1", "Infinity", .towardZero)
+ /* ddsub806 */ self.subtract64("Inf", "-1000", "Infinity", .towardZero)
+ /* ddsub807 */ self.subtract64("Inf", "-Inf", "Infinity", .towardZero)
+ /* ddsub808 */ self.subtract64("-1000", "-Inf", "Infinity", .towardZero)
+ /* ddsub809 */ self.subtract64("-Inf", "-Inf", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub810 */ self.subtract64("-1", "-Inf", "Infinity", .towardZero)
+ /* ddsub811 */ self.subtract64("-0", "-Inf", "Infinity", .towardZero)
+ /* ddsub812 */ self.subtract64("0", "-Inf", "Infinity", .towardZero)
+ /* ddsub813 */ self.subtract64("1", "-Inf", "Infinity", .towardZero)
+ /* ddsub814 */ self.subtract64("1000", "-Inf", "Infinity", .towardZero)
+ /* ddsub815 */ self.subtract64("Inf", "-Inf", "Infinity", .towardZero)
+ /* ddsub821 */ self.subtract64("NaN", "Inf", "NaN", .towardZero)
+ /* ddsub822 */ self.subtract64("-NaN", "1000", "-NaN", .towardZero)
+ /* ddsub823 */ self.subtract64("NaN", "1", "NaN", .towardZero)
+ /* ddsub824 */ self.subtract64("NaN", "0", "NaN", .towardZero)
+ /* ddsub825 */ self.subtract64("NaN", "-0", "NaN", .towardZero)
+ /* ddsub826 */ self.subtract64("NaN", "-1", "NaN", .towardZero)
+ /* ddsub827 */ self.subtract64("NaN", "-1000", "NaN", .towardZero)
+ /* ddsub828 */ self.subtract64("NaN", "-Inf", "NaN", .towardZero)
+ /* ddsub829 */ self.subtract64("-NaN", "NaN", "-NaN", .towardZero)
+ /* ddsub830 */ self.subtract64("-Inf", "NaN", "NaN", .towardZero)
+ /* ddsub831 */ self.subtract64("-1000", "NaN", "NaN", .towardZero)
+ /* ddsub832 */ self.subtract64("-1", "NaN", "NaN", .towardZero)
+ /* ddsub833 */ self.subtract64("-0", "NaN", "NaN", .towardZero)
+ /* ddsub834 */ self.subtract64("0", "NaN", "NaN", .towardZero)
+ /* ddsub835 */ self.subtract64("1", "NaN", "NaN", .towardZero)
+ /* ddsub836 */ self.subtract64("1000", "-NaN", "-NaN", .towardZero)
+ /* ddsub837 */ self.subtract64("Inf", "NaN", "NaN", .towardZero)
+ /* ddsub841 */ self.subtract64("sNaN", "Inf", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub842 */ self.subtract64("-sNaN", "1000", "-NaN", .towardZero, .isInvalidOperation)
+ /* ddsub843 */ self.subtract64("sNaN", "1", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub844 */ self.subtract64("sNaN", "0", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub845 */ self.subtract64("sNaN", "-0", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub846 */ self.subtract64("sNaN", "-1", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub847 */ self.subtract64("sNaN", "-1000", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub848 */ self.subtract64("sNaN", "NaN", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub849 */ self.subtract64("sNaN", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub850 */ self.subtract64("NaN", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub851 */ self.subtract64("-Inf", "-sNaN", "-NaN", .towardZero, .isInvalidOperation)
+ /* ddsub852 */ self.subtract64("-1000", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub853 */ self.subtract64("-1", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub854 */ self.subtract64("-0", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub855 */ self.subtract64("0", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub856 */ self.subtract64("1", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub857 */ self.subtract64("1000", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub858 */ self.subtract64("Inf", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub859 */ self.subtract64("NaN", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* ddsub861 */ self.subtract64("NaN(0x1)", "-Inf", "NaN(0x1)", .towardZero)
+ /* ddsub862 */ self.subtract64("-NaN(0x2)", "-1000", "-NaN(0x2)", .towardZero)
+ /* ddsub863 */ self.subtract64("NaN(0x3)", "1000", "NaN(0x3)", .towardZero)
+ /* ddsub864 */ self.subtract64("NaN(0x4)", "Inf", "NaN(0x4)", .towardZero)
+ /* ddsub865 */ self.subtract64("NaN(0x5)", "NaN(0x3d)", "NaN(0x5)", .towardZero)
+ /* ddsub866 */ self.subtract64("-Inf", "-NaN(0x47)", "-NaN(0x47)", .towardZero)
+ /* ddsub867 */ self.subtract64("-1000", "NaN(0x51)", "NaN(0x51)", .towardZero)
+ /* ddsub868 */ self.subtract64("1000", "NaN(0x5b)", "NaN(0x5b)", .towardZero)
+ /* ddsub869 */ self.subtract64("Inf", "NaN(0x65)", "NaN(0x65)", .towardZero)
+ /* ddsub871 */ self.subtract64("sNaN(0xb)", "-Inf", "NaN(0xb)", .towardZero, .isInvalidOperation)
+ /* ddsub872 */ self.subtract64("sNaN(0xc)", "-1000", "NaN(0xc)", .towardZero, .isInvalidOperation)
+ /* ddsub873 */ self.subtract64("-sNaN(0xd)", "1000", "-NaN(0xd)", .towardZero, .isInvalidOperation)
+ /* ddsub874 */ self.subtract64("sNaN(0xe)", "NaN(0xab)", "NaN(0xe)", .towardZero, .isInvalidOperation)
+ /* ddsub875 */ self.subtract64("sNaN(0xf)", "sNaN(0xb5)", "NaN(0xf)", .towardZero, .isInvalidOperation)
+ /* ddsub876 */ self.subtract64("NaN(0x10)", "sNaN(0xbf)", "NaN(0xbf)", .towardZero, .isInvalidOperation)
+ /* ddsub877 */ self.subtract64("-Inf", "sNaN(0xc9)", "NaN(0xc9)", .towardZero, .isInvalidOperation)
+ /* ddsub878 */ self.subtract64("-1000", "sNaN(0xd3)", "NaN(0xd3)", .towardZero, .isInvalidOperation)
+ /* ddsub879 */ self.subtract64("1000", "-sNaN(0xdd)", "-NaN(0xdd)", .towardZero, .isInvalidOperation)
+ /* ddsub880 */ self.subtract64("Inf", "sNaN(0xe7)", "NaN(0xe7)", .towardZero, .isInvalidOperation)
+ /* ddsub881 */ self.subtract64("NaN(0x19)", "sNaN(0xf1)", "NaN(0xf1)", .towardZero, .isInvalidOperation)
+ /* ddsub901 */ self.subtract64("2.E-3", "1.002", "-1.000", .towardZero)
+ /* ddsub902 */ self.subtract64("2.0E-3", "1.002", "-1.0000", .towardZero)
+ /* ddsub903 */ self.subtract64("2.00E-3", "1.0020", "-1.00000", .towardZero)
+ /* ddsub904 */ self.subtract64("2.000E-3", "1.00200", "-1.000000", .towardZero)
+ /* ddsub905 */ self.subtract64("2.0000E-3", "1.002000", "-1.0000000", .towardZero)
+ /* ddsub906 */ self.subtract64("2.00000E-3", "1.0020000", "-1.00000000", .towardZero)
+ /* ddsub907 */ self.subtract64("2.000000E-3", "1.00200000", "-1.000000000", .towardZero)
+ /* ddsub908 */ self.subtract64("2.0000000E-3", "1.002000000", "-1.0000000000", .towardZero)
+ /* ddsub910 */ self.subtract64("-103519362", "-51897955.3", "-51621406.7", .toNearestOrEven)
+ /* ddsub911 */ self.subtract64("159579.444", "89827.5229", "69751.9211", .toNearestOrEven)
+ /* ddsub920 */ self.subtract64("333.0000000123456", "33.00000001234566", "299.9999999999999", .toNearestOrEven, .isInexact)
+ /* ddsub921 */ self.subtract64("333.0000000123456", "33.00000001234565", "300.0000000000000", .toNearestOrEven, .isInexact)
+ /* ddsub922 */ self.subtract64("133.0000000123456", "33.00000001234565", "99.99999999999995", .toNearestOrEven)
+ /* ddsub923 */ self.subtract64("133.0000000123456", "33.00000001234564", "99.99999999999996", .toNearestOrEven)
+ /* ddsub924 */ self.subtract64("133.0000000123456", "33.00000001234540", "100.0000000000002", .toNearestOrEven)
+ /* ddsub925 */ self.subtract64("133.0000000123456", "43.00000001234560", "90.00000000000000", .toNearestOrEven)
+ /* ddsub926 */ self.subtract64("133.0000000123456", "43.00000001234561", "89.99999999999999", .toNearestOrEven)
+ /* ddsub927 */ self.subtract64("133.0000000123456", "43.00000001234566", "89.99999999999994", .toNearestOrEven)
+ /* ddsub928 */ self.subtract64("101.0000000123456", "91.00000001234566", "9.99999999999994", .toNearestOrEven)
+ /* ddsub929 */ self.subtract64("101.0000000123456", "99.00000001234566", "1.99999999999994", .toNearestOrEven)
+ }
+
+ private func subtract64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.subtracting(arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_sub(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+
+ func test_subtract128() {
+ /* dqcan502 */ self.subtract128("0E+6144", "#77ffcff3fcff3fcffffcff3fcff3fcff", "#f7ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan503 */ self.subtract128("#77ffcff3fcff3fcff3fcff3ffff3fcff", "0E+6144", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan504 */ self.subtract128("0E-6176", "#77ffcff3ffff3fcff3fcff3fcff3fcff", "#f7ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan505 */ self.subtract128("#77ffcff3fcff3fcff3fcff3fcff3ffff", "0E-6176", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan506 */ self.subtract128("-1E-6176", "#77ffcff3fcff3fcff3fcff3fcfffffff", "#f7ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInexact)
+ /* dqcan507 */ self.subtract128("#77ffcffffffffffffffffffffff3fcff", "-1E-6176", "#77ffcff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInexact)
+ /* dqcan511 */ self.subtract128("0", "#7c000ff3fcff3fcff3fcfffffff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan512 */ self.subtract128("#7c000ff3fcff3fcfffffff3fcff3fcff", "0", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan513 */ self.subtract128("0", "#7c400ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan514 */ self.subtract128("#7c020ff3fcff3fcff3fcff3fcff3fcff", "0", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven)
+ /* dqcan515 */ self.subtract128("0", "#7e000ff3fcffffcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan516 */ self.subtract128("#7e003ff3fcff3fcff3fcff3fcff3fcff", "0", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan517 */ self.subtract128("0", "#7e500ff3fcff3fcff3fcff3fcff3fcff", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan518 */ self.subtract128("#7e0e0ff3fcff3fcff3fcff3fcff3fcff", "0", "#7c000ff3fcff3fcff3fcff3fcff3fcff", .toNearestOrEven, .isInvalidOperation)
+ /* dqcan520 */ self.subtract128("0", "#78010000000000000000000000000000", "#f8000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan521 */ self.subtract128("#78680000000000000000000000000000", "0", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan522 */ self.subtract128("0", "#78002000000000000000000000000000", "#f8000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan523 */ self.subtract128("#78000000000000000000000000000001", "0", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan524 */ self.subtract128("0", "#78000002000000000000000000000000", "#f8000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan525 */ self.subtract128("#780000000000f0000000000000000000", "0", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan526 */ self.subtract128("0", "#78000000000000000005000000000000", "#f8000000000000000000000000000000", .toNearestOrEven)
+ /* dqcan527 */ self.subtract128("#780000000000000000000000000a0000", "0", "#78000000000000000000000000000000", .toNearestOrEven)
+ /* dqsub001 */ self.subtract128("0", "0", "0", .toNearestOrEven)
+ /* dqsub002 */ self.subtract128("1", "1", "0", .toNearestOrEven)
+ /* dqsub003 */ self.subtract128("1", "2", "-1", .toNearestOrEven)
+ /* dqsub004 */ self.subtract128("2", "1", "1", .toNearestOrEven)
+ /* dqsub005 */ self.subtract128("2", "2", "0", .toNearestOrEven)
+ /* dqsub006 */ self.subtract128("3", "2", "1", .toNearestOrEven)
+ /* dqsub007 */ self.subtract128("2", "3", "-1", .toNearestOrEven)
+ /* dqsub011 */ self.subtract128("-0", "0", "-0", .toNearestOrEven)
+ /* dqsub012 */ self.subtract128("-1", "1", "-2", .toNearestOrEven)
+ /* dqsub013 */ self.subtract128("-1", "2", "-3", .toNearestOrEven)
+ /* dqsub014 */ self.subtract128("-2", "1", "-3", .toNearestOrEven)
+ /* dqsub015 */ self.subtract128("-2", "2", "-4", .toNearestOrEven)
+ /* dqsub016 */ self.subtract128("-3", "2", "-5", .toNearestOrEven)
+ /* dqsub017 */ self.subtract128("-2", "3", "-5", .toNearestOrEven)
+ /* dqsub021 */ self.subtract128("0", "-0", "0", .toNearestOrEven)
+ /* dqsub022 */ self.subtract128("1", "-1", "2", .toNearestOrEven)
+ /* dqsub023 */ self.subtract128("1", "-2", "3", .toNearestOrEven)
+ /* dqsub024 */ self.subtract128("2", "-1", "3", .toNearestOrEven)
+ /* dqsub025 */ self.subtract128("2", "-2", "4", .toNearestOrEven)
+ /* dqsub026 */ self.subtract128("3", "-2", "5", .toNearestOrEven)
+ /* dqsub027 */ self.subtract128("2", "-3", "5", .toNearestOrEven)
+ /* dqsub030 */ self.subtract128("11", "1", "10", .toNearestOrEven)
+ /* dqsub031 */ self.subtract128("10", "1", "9", .toNearestOrEven)
+ /* dqsub032 */ self.subtract128("9", "1", "8", .toNearestOrEven)
+ /* dqsub033 */ self.subtract128("1", "1", "0", .toNearestOrEven)
+ /* dqsub034 */ self.subtract128("0", "1", "-1", .toNearestOrEven)
+ /* dqsub035 */ self.subtract128("-1", "1", "-2", .toNearestOrEven)
+ /* dqsub036 */ self.subtract128("-9", "1", "-10", .toNearestOrEven)
+ /* dqsub037 */ self.subtract128("-10", "1", "-11", .toNearestOrEven)
+ /* dqsub038 */ self.subtract128("-11", "1", "-12", .toNearestOrEven)
+ /* dqsub040 */ self.subtract128("5.75", "3.3", "2.45", .toNearestOrEven)
+ /* dqsub041 */ self.subtract128("5", "-3", "8", .toNearestOrEven)
+ /* dqsub042 */ self.subtract128("-5", "-3", "-2", .toNearestOrEven)
+ /* dqsub043 */ self.subtract128("-7", "2.5", "-9.5", .toNearestOrEven)
+ /* dqsub044 */ self.subtract128("0.7", "0.3", "0.4", .toNearestOrEven)
+ /* dqsub045 */ self.subtract128("1.3", "0.3", "1.0", .toNearestOrEven)
+ /* dqsub046 */ self.subtract128("1.25", "1.25", "0.00", .toNearestOrEven)
+ /* dqsub050 */ self.subtract128("1.23456789", "1.00000000", "0.23456789", .toNearestOrEven)
+ /* dqsub051 */ self.subtract128("1.23456789", "1.00000089", "0.23456700", .toNearestOrEven)
+ /* dqsub060 */ self.subtract128("70", "10000e+34", "-1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqsub061 */ self.subtract128("700", "10000e+34", "-1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqsub062 */ self.subtract128("7000", "10000e+34", "-9.999999999999999999999999999999999E+37", .toNearestOrEven, .isInexact)
+ /* dqsub063 */ self.subtract128("70000", "10000e+34", "-9.999999999999999999999999999999993E+37", .toNearestOrEven)
+ /* dqsub064 */ self.subtract128("700000", "10000e+34", "-9.999999999999999999999999999999930E+37", .toNearestOrEven)
+ /* dqsub065 */ self.subtract128("10000e+34", "70", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqsub066 */ self.subtract128("10000e+34", "700", "1.000000000000000000000000000000000E+38", .toNearestOrEven, .isInexact)
+ /* dqsub067 */ self.subtract128("10000e+34", "7000", "9.999999999999999999999999999999999E+37", .toNearestOrEven, .isInexact)
+ /* dqsub068 */ self.subtract128("10000e+34", "70000", "9.999999999999999999999999999999993E+37", .toNearestOrEven)
+ /* dqsub069 */ self.subtract128("10000e+34", "700000", "9.999999999999999999999999999999930E+37", .toNearestOrEven)
+ /* dqsub090 */ self.subtract128("00.0", "0.0", "0.0", .toNearestOrEven)
+ /* dqsub091 */ self.subtract128("00.0", "0.00", "0.00", .toNearestOrEven)
+ /* dqsub092 */ self.subtract128("0.00", "00.0", "0.00", .toNearestOrEven)
+ /* dqsub093 */ self.subtract128("00.0", "0.00", "0.00", .toNearestOrEven)
+ /* dqsub094 */ self.subtract128("0.00", "00.0", "0.00", .toNearestOrEven)
+ /* dqsub095 */ self.subtract128("3", ".3", "2.7", .toNearestOrEven)
+ /* dqsub096 */ self.subtract128("3.", ".3", "2.7", .toNearestOrEven)
+ /* dqsub097 */ self.subtract128("3.0", ".3", "2.7", .toNearestOrEven)
+ /* dqsub098 */ self.subtract128("3.00", ".3", "2.70", .toNearestOrEven)
+ /* dqsub099 */ self.subtract128("3", "3", "0", .toNearestOrEven)
+ /* dqsub100 */ self.subtract128("3", "+3", "0", .toNearestOrEven)
+ /* dqsub101 */ self.subtract128("3", "-3", "6", .toNearestOrEven)
+ /* dqsub102 */ self.subtract128("3", "0.3", "2.7", .toNearestOrEven)
+ /* dqsub103 */ self.subtract128("3.", "0.3", "2.7", .toNearestOrEven)
+ /* dqsub104 */ self.subtract128("3.0", "0.3", "2.7", .toNearestOrEven)
+ /* dqsub105 */ self.subtract128("3.00", "0.3", "2.70", .toNearestOrEven)
+ /* dqsub106 */ self.subtract128("3", "3.0", "0.0", .toNearestOrEven)
+ /* dqsub107 */ self.subtract128("3", "+3.0", "0.0", .toNearestOrEven)
+ /* dqsub108 */ self.subtract128("3", "-3.0", "6.0", .toNearestOrEven)
+ /* dqsub1125 */ self.subtract128("130E-2", "120E-2", "0.10", .towardZero)
+ /* dqsub1126 */ self.subtract128("130E-2", "12E-1", "0.10", .towardZero)
+ /* dqsub1127 */ self.subtract128("130E-2", "1E0", "0.30", .towardZero)
+ /* dqsub1128 */ self.subtract128("1E2", "1E4", "-9.9E+3", .towardZero)
+ /* dqsub120 */ self.subtract128("10.23456784", "10.23456789", "-5E-8", .toNearestOrEven)
+ /* dqsub121 */ self.subtract128("10.23456785", "10.23456789", "-4E-8", .toNearestOrEven)
+ /* dqsub122 */ self.subtract128("10.23456786", "10.23456789", "-3E-8", .toNearestOrEven)
+ /* dqsub123 */ self.subtract128("10.23456787", "10.23456789", "-2E-8", .toNearestOrEven)
+ /* dqsub124 */ self.subtract128("10.23456788", "10.23456789", "-1E-8", .toNearestOrEven)
+ /* dqsub125 */ self.subtract128("10.23456789", "10.23456789", "0E-8", .toNearestOrEven)
+ /* dqsub126 */ self.subtract128("10.23456790", "10.23456789", "1E-8", .toNearestOrEven)
+ /* dqsub127 */ self.subtract128("10.23456791", "10.23456789", "2E-8", .toNearestOrEven)
+ /* dqsub128 */ self.subtract128("10.23456792", "10.23456789", "3E-8", .toNearestOrEven)
+ /* dqsub129 */ self.subtract128("10.23456793", "10.23456789", "4E-8", .toNearestOrEven)
+ /* dqsub130 */ self.subtract128("10.23456794", "10.23456789", "5E-8", .toNearestOrEven)
+ /* dqsub131 */ self.subtract128("10.23456781", "10.23456786", "-5E-8", .toNearestOrEven)
+ /* dqsub132 */ self.subtract128("10.23456782", "10.23456786", "-4E-8", .toNearestOrEven)
+ /* dqsub133 */ self.subtract128("10.23456783", "10.23456786", "-3E-8", .toNearestOrEven)
+ /* dqsub134 */ self.subtract128("10.23456784", "10.23456786", "-2E-8", .toNearestOrEven)
+ /* dqsub135 */ self.subtract128("10.23456785", "10.23456786", "-1E-8", .toNearestOrEven)
+ /* dqsub136 */ self.subtract128("10.23456786", "10.23456786", "0E-8", .toNearestOrEven)
+ /* dqsub137 */ self.subtract128("10.23456787", "10.23456786", "1E-8", .toNearestOrEven)
+ /* dqsub138 */ self.subtract128("10.23456788", "10.23456786", "2E-8", .toNearestOrEven)
+ /* dqsub139 */ self.subtract128("10.23456789", "10.23456786", "3E-8", .toNearestOrEven)
+ /* dqsub140 */ self.subtract128("10.23456790", "10.23456786", "4E-8", .toNearestOrEven)
+ /* dqsub141 */ self.subtract128("10.23456791", "10.23456786", "5E-8", .toNearestOrEven)
+ /* dqsub142 */ self.subtract128("1", "0.999999999", "1E-9", .toNearestOrEven)
+ /* dqsub143 */ self.subtract128("0.999999999", "1", "-1E-9", .toNearestOrEven)
+ /* dqsub144 */ self.subtract128("-10.23456780", "-10.23456786", "6E-8", .toNearestOrEven)
+ /* dqsub145 */ self.subtract128("-10.23456790", "-10.23456786", "-4E-8", .toNearestOrEven)
+ /* dqsub146 */ self.subtract128("-10.23456791", "-10.23456786", "-5E-8", .toNearestOrEven)
+ /* dqsub160 */ self.subtract128("0", ".1", "-0.1", .toNearestOrEven)
+ /* dqsub161 */ self.subtract128("00", ".97983", "-0.97983", .toNearestOrEven)
+ /* dqsub162 */ self.subtract128("0", ".9", "-0.9", .toNearestOrEven)
+ /* dqsub163 */ self.subtract128("0", "0.102", "-0.102", .toNearestOrEven)
+ /* dqsub164 */ self.subtract128("0", ".4", "-0.4", .toNearestOrEven)
+ /* dqsub165 */ self.subtract128("0", ".307", "-0.307", .toNearestOrEven)
+ /* dqsub166 */ self.subtract128("0", ".43822", "-0.43822", .toNearestOrEven)
+ /* dqsub167 */ self.subtract128("0", ".911", "-0.911", .toNearestOrEven)
+ /* dqsub168 */ self.subtract128(".0", ".02", "-0.02", .toNearestOrEven)
+ /* dqsub169 */ self.subtract128("00", ".392", "-0.392", .toNearestOrEven)
+ /* dqsub170 */ self.subtract128("0", ".26", "-0.26", .toNearestOrEven)
+ /* dqsub171 */ self.subtract128("0", "0.51", "-0.51", .toNearestOrEven)
+ /* dqsub172 */ self.subtract128("0", ".2234", "-0.2234", .toNearestOrEven)
+ /* dqsub173 */ self.subtract128("0", ".2", "-0.2", .toNearestOrEven)
+ /* dqsub174 */ self.subtract128(".0", ".0008", "-0.0008", .toNearestOrEven)
+ /* dqsub180 */ self.subtract128("0.0", "-.1", "0.1", .toNearestOrEven)
+ /* dqsub181 */ self.subtract128("0.00", "-.97983", "0.97983", .toNearestOrEven)
+ /* dqsub182 */ self.subtract128("0.0", "-.9", "0.9", .toNearestOrEven)
+ /* dqsub183 */ self.subtract128("0.0", "-0.102", "0.102", .toNearestOrEven)
+ /* dqsub184 */ self.subtract128("0.0", "-.4", "0.4", .toNearestOrEven)
+ /* dqsub185 */ self.subtract128("0.0", "-.307", "0.307", .toNearestOrEven)
+ /* dqsub186 */ self.subtract128("0.0", "-.43822", "0.43822", .toNearestOrEven)
+ /* dqsub187 */ self.subtract128("0.0", "-.911", "0.911", .toNearestOrEven)
+ /* dqsub188 */ self.subtract128("0.0", "-.02", "0.02", .toNearestOrEven)
+ /* dqsub189 */ self.subtract128("0.00", "-.392", "0.392", .toNearestOrEven)
+ /* dqsub190 */ self.subtract128("0.0", "-.26", "0.26", .toNearestOrEven)
+ /* dqsub191 */ self.subtract128("0.0", "-0.51", "0.51", .toNearestOrEven)
+ /* dqsub192 */ self.subtract128("0.0", "-.2234", "0.2234", .toNearestOrEven)
+ /* dqsub193 */ self.subtract128("0.0", "-.2", "0.2", .toNearestOrEven)
+ /* dqsub194 */ self.subtract128("0.0", "-.0008", "0.0008", .toNearestOrEven)
+ /* dqsub200 */ self.subtract128("0", "-.1", "0.1", .toNearestOrEven)
+ /* dqsub201 */ self.subtract128("00", "-.97983", "0.97983", .toNearestOrEven)
+ /* dqsub202 */ self.subtract128("0", "-.9", "0.9", .toNearestOrEven)
+ /* dqsub203 */ self.subtract128("0", "-0.102", "0.102", .toNearestOrEven)
+ /* dqsub204 */ self.subtract128("0", "-.4", "0.4", .toNearestOrEven)
+ /* dqsub205 */ self.subtract128("0", "-.307", "0.307", .toNearestOrEven)
+ /* dqsub206 */ self.subtract128("0", "-.43822", "0.43822", .toNearestOrEven)
+ /* dqsub207 */ self.subtract128("0", "-.911", "0.911", .toNearestOrEven)
+ /* dqsub208 */ self.subtract128(".0", "-.02", "0.02", .toNearestOrEven)
+ /* dqsub209 */ self.subtract128("00", "-.392", "0.392", .toNearestOrEven)
+ /* dqsub210 */ self.subtract128("0", "-.26", "0.26", .toNearestOrEven)
+ /* dqsub211 */ self.subtract128("0", "-0.51", "0.51", .toNearestOrEven)
+ /* dqsub212 */ self.subtract128("0", "-.2234", "0.2234", .toNearestOrEven)
+ /* dqsub213 */ self.subtract128("0", "-.2", "0.2", .toNearestOrEven)
+ /* dqsub214 */ self.subtract128(".0", "-.0008", "0.0008", .toNearestOrEven)
+ /* dqsub220 */ self.subtract128("-56267E-12", "0", "-5.6267E-8", .toNearestOrEven)
+ /* dqsub221 */ self.subtract128("-56267E-11", "0", "-5.6267E-7", .toNearestOrEven)
+ /* dqsub222 */ self.subtract128("-56267E-10", "0", "-0.0000056267", .toNearestOrEven)
+ /* dqsub223 */ self.subtract128("-56267E-9", "0", "-0.000056267", .toNearestOrEven)
+ /* dqsub224 */ self.subtract128("-56267E-8", "0", "-0.00056267", .toNearestOrEven)
+ /* dqsub225 */ self.subtract128("-56267E-7", "0", "-0.0056267", .toNearestOrEven)
+ /* dqsub226 */ self.subtract128("-56267E-6", "0", "-0.056267", .toNearestOrEven)
+ /* dqsub227 */ self.subtract128("-56267E-5", "0", "-0.56267", .toNearestOrEven)
+ /* dqsub228 */ self.subtract128("-56267E-2", "0", "-562.67", .toNearestOrEven)
+ /* dqsub229 */ self.subtract128("-56267E-1", "0", "-5626.7", .toNearestOrEven)
+ /* dqsub230 */ self.subtract128("-56267E-0", "0", "-56267", .toNearestOrEven)
+ /* dqsub240 */ self.subtract128("0", "-56267E-12", "5.6267E-8", .toNearestOrEven)
+ /* dqsub241 */ self.subtract128("0", "-56267E-11", "5.6267E-7", .toNearestOrEven)
+ /* dqsub242 */ self.subtract128("0", "-56267E-10", "0.0000056267", .toNearestOrEven)
+ /* dqsub243 */ self.subtract128("0", "-56267E-9", "0.000056267", .toNearestOrEven)
+ /* dqsub244 */ self.subtract128("0", "-56267E-8", "0.00056267", .toNearestOrEven)
+ /* dqsub245 */ self.subtract128("0", "-56267E-7", "0.0056267", .toNearestOrEven)
+ /* dqsub246 */ self.subtract128("0", "-56267E-6", "0.056267", .toNearestOrEven)
+ /* dqsub247 */ self.subtract128("0", "-56267E-5", "0.56267", .toNearestOrEven)
+ /* dqsub248 */ self.subtract128("0", "-56267E-2", "562.67", .toNearestOrEven)
+ /* dqsub249 */ self.subtract128("0", "-56267E-1", "5626.7", .toNearestOrEven)
+ /* dqsub250 */ self.subtract128("0", "-56267E-0", "56267", .toNearestOrEven)
+ /* dqsub301 */ self.subtract128("1.23456789", "1.00000000", "0.23456789", .toNearestOrEven)
+ /* dqsub302 */ self.subtract128("1.23456789", "1.00000011", "0.23456778", .toNearestOrEven)
+ /* dqsub321 */ self.subtract128("0.9998", "0.0000", "0.9998", .toNearestOrEven)
+ /* dqsub322 */ self.subtract128("0.9998", "0.0001", "0.9997", .toNearestOrEven)
+ /* dqsub323 */ self.subtract128("0.9998", "0.0002", "0.9996", .toNearestOrEven)
+ /* dqsub324 */ self.subtract128("0.9998", "0.0003", "0.9995", .toNearestOrEven)
+ /* dqsub325 */ self.subtract128("0.9998", "-0.0000", "0.9998", .toNearestOrEven)
+ /* dqsub326 */ self.subtract128("0.9998", "-0.0001", "0.9999", .toNearestOrEven)
+ /* dqsub327 */ self.subtract128("0.9998", "-0.0002", "1.0000", .toNearestOrEven)
+ /* dqsub328 */ self.subtract128("0.9998", "-0.0003", "1.0001", .toNearestOrEven)
+ /* dqsub346 */ self.subtract128("10000e+9", "7", "9999999999993", .toNearestOrEven)
+ /* dqsub347 */ self.subtract128("10000e+9", "70", "9999999999930", .toNearestOrEven)
+ /* dqsub348 */ self.subtract128("10000e+9", "700", "9999999999300", .toNearestOrEven)
+ /* dqsub349 */ self.subtract128("10000e+9", "7000", "9999999993000", .toNearestOrEven)
+ /* dqsub350 */ self.subtract128("10000e+9", "70000", "9999999930000", .toNearestOrEven)
+ /* dqsub351 */ self.subtract128("10000e+9", "700000", "9999999300000", .toNearestOrEven)
+ /* dqsub352 */ self.subtract128("7", "10000e+9", "-9999999999993", .toNearestOrEven)
+ /* dqsub353 */ self.subtract128("70", "10000e+9", "-9999999999930", .toNearestOrEven)
+ /* dqsub354 */ self.subtract128("700", "10000e+9", "-9999999999300", .toNearestOrEven)
+ /* dqsub355 */ self.subtract128("7000", "10000e+9", "-9999999993000", .toNearestOrEven)
+ /* dqsub356 */ self.subtract128("70000", "10000e+9", "-9999999930000", .toNearestOrEven)
+ /* dqsub357 */ self.subtract128("700000", "10000e+9", "-9999999300000", .toNearestOrEven)
+ /* dqsub361 */ self.subtract128("1", "0.0001", "0.9999", .toNearestOrEven)
+ /* dqsub362 */ self.subtract128("1", "0.00001", "0.99999", .toNearestOrEven)
+ /* dqsub363 */ self.subtract128("1", "0.000001", "0.999999", .toNearestOrEven)
+ /* dqsub364 */ self.subtract128("1", "0.0000000000000000000000000000000001", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqsub365 */ self.subtract128("1", "0.00000000000000000000000000000000001", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqsub366 */ self.subtract128("1", "0.000000000000000000000000000000000001", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqsub370 */ self.subtract128("1", "0", "1", .toNearestOrEven)
+ /* dqsub371 */ self.subtract128("1", "0.", "1", .toNearestOrEven)
+ /* dqsub372 */ self.subtract128("1", ".0", "1.0", .toNearestOrEven)
+ /* dqsub373 */ self.subtract128("1", "0.0", "1.0", .toNearestOrEven)
+ /* dqsub374 */ self.subtract128("0", "1", "-1", .toNearestOrEven)
+ /* dqsub375 */ self.subtract128("0.", "1", "-1", .toNearestOrEven)
+ /* dqsub376 */ self.subtract128(".0", "1", "-1.0", .toNearestOrEven)
+ /* dqsub377 */ self.subtract128("0.0", "1", "-1.0", .toNearestOrEven)
+ /* dqsub390 */ self.subtract128("-56267E-10", "0", "-0.0000056267", .toNearestOrEven)
+ /* dqsub391 */ self.subtract128("-56267E-6", "0", "-0.056267", .toNearestOrEven)
+ /* dqsub392 */ self.subtract128("-56267E-5", "0", "-0.56267", .toNearestOrEven)
+ /* dqsub393 */ self.subtract128("-56267E-4", "0", "-5.6267", .toNearestOrEven)
+ /* dqsub394 */ self.subtract128("-56267E-3", "0", "-56.267", .toNearestOrEven)
+ /* dqsub395 */ self.subtract128("-56267E-2", "0", "-562.67", .toNearestOrEven)
+ /* dqsub396 */ self.subtract128("-56267E-1", "0", "-5626.7", .toNearestOrEven)
+ /* dqsub397 */ self.subtract128("-56267E-0", "0", "-56267", .toNearestOrEven)
+ /* dqsub398 */ self.subtract128("-5E-10", "0", "-5E-10", .toNearestOrEven)
+ /* dqsub399 */ self.subtract128("-5E-7", "0", "-5E-7", .toNearestOrEven)
+ /* dqsub400 */ self.subtract128("-5E-6", "0", "-0.000005", .toNearestOrEven)
+ /* dqsub401 */ self.subtract128("-5E-5", "0", "-0.00005", .toNearestOrEven)
+ /* dqsub402 */ self.subtract128("-5E-4", "0", "-0.0005", .toNearestOrEven)
+ /* dqsub403 */ self.subtract128("-5E-1", "0", "-0.5", .toNearestOrEven)
+ /* dqsub404 */ self.subtract128("-5E0", "0", "-5", .toNearestOrEven)
+ /* dqsub405 */ self.subtract128("-5E1", "0", "-50", .toNearestOrEven)
+ /* dqsub406 */ self.subtract128("-5E5", "0", "-500000", .toNearestOrEven)
+ /* dqsub407 */ self.subtract128("-5E33", "0", "-5000000000000000000000000000000000", .toNearestOrEven)
+ /* dqsub408 */ self.subtract128("-5E34", "0", "-5.000000000000000000000000000000000E+34", .toNearestOrEven)
+ /* dqsub409 */ self.subtract128("-5E35", "0", "-5.000000000000000000000000000000000E+35", .toNearestOrEven)
+ /* dqsub410 */ self.subtract128("-5E36", "0", "-5.000000000000000000000000000000000E+36", .toNearestOrEven)
+ /* dqsub411 */ self.subtract128("-5E100", "0", "-5.000000000000000000000000000000000E+100", .toNearestOrEven)
+ /* dqsub420 */ self.subtract128("0", "-56267E-10", "0.0000056267", .toNearestOrEven)
+ /* dqsub421 */ self.subtract128("0", "-56267E-6", "0.056267", .toNearestOrEven)
+ /* dqsub422 */ self.subtract128("0", "-56267E-5", "0.56267", .toNearestOrEven)
+ /* dqsub423 */ self.subtract128("0", "-56267E-4", "5.6267", .toNearestOrEven)
+ /* dqsub424 */ self.subtract128("0", "-56267E-3", "56.267", .toNearestOrEven)
+ /* dqsub425 */ self.subtract128("0", "-56267E-2", "562.67", .toNearestOrEven)
+ /* dqsub426 */ self.subtract128("0", "-56267E-1", "5626.7", .toNearestOrEven)
+ /* dqsub427 */ self.subtract128("0", "-56267E-0", "56267", .toNearestOrEven)
+ /* dqsub428 */ self.subtract128("0", "-5E-10", "5E-10", .toNearestOrEven)
+ /* dqsub429 */ self.subtract128("0", "-5E-7", "5E-7", .toNearestOrEven)
+ /* dqsub430 */ self.subtract128("0", "-5E-6", "0.000005", .toNearestOrEven)
+ /* dqsub431 */ self.subtract128("0", "-5E-5", "0.00005", .toNearestOrEven)
+ /* dqsub432 */ self.subtract128("0", "-5E-4", "0.0005", .toNearestOrEven)
+ /* dqsub433 */ self.subtract128("0", "-5E-1", "0.5", .toNearestOrEven)
+ /* dqsub434 */ self.subtract128("0", "-5E0", "5", .toNearestOrEven)
+ /* dqsub435 */ self.subtract128("0", "-5E1", "50", .toNearestOrEven)
+ /* dqsub436 */ self.subtract128("0", "-5E5", "500000", .toNearestOrEven)
+ /* dqsub437 */ self.subtract128("0", "-5E33", "5000000000000000000000000000000000", .toNearestOrEven)
+ /* dqsub438 */ self.subtract128("0", "-5E34", "5.000000000000000000000000000000000E+34", .toNearestOrEven)
+ /* dqsub439 */ self.subtract128("0", "-5E35", "5.000000000000000000000000000000000E+35", .toNearestOrEven)
+ /* dqsub440 */ self.subtract128("0", "-5E36", "5.000000000000000000000000000000000E+36", .toNearestOrEven)
+ /* dqsub441 */ self.subtract128("0", "-5E100", "5.000000000000000000000000000000000E+100", .toNearestOrEven)
+ /* dqsub461 */ self.subtract128("1E+16", "1", "9999999999999999", .toNearestOrEven)
+ /* dqsub462 */ self.subtract128("1E+12", "-1.111", "1000000000001.111", .toNearestOrEven)
+ /* dqsub463 */ self.subtract128("1.111", "-1E+12", "1000000000001.111", .toNearestOrEven)
+ /* dqsub464 */ self.subtract128("-1", "-1E+16", "9999999999999999", .toNearestOrEven)
+ /* dqsub465 */ self.subtract128("7E+15", "1", "6999999999999999", .toNearestOrEven)
+ /* dqsub466 */ self.subtract128("7E+12", "-1.111", "7000000000001.111", .toNearestOrEven)
+ /* dqsub467 */ self.subtract128("1.111", "-7E+12", "7000000000001.111", .toNearestOrEven)
+ /* dqsub468 */ self.subtract128("-1", "-7E+15", "6999999999999999", .toNearestOrEven)
+ /* dqsub470 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555563", "1.000000000000000000000000000000001", .toNearestOrEven, .isInexact)
+ /* dqsub471 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555562", "1.000000000000000000000000000000001", .toNearestOrEven, .isInexact)
+ /* dqsub472 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555561", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqsub473 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555560", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqsub474 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555559", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqsub475 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555558", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqsub476 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555557", "1.000000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqsub477 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555556", "1.000000000000000000000000000000000", .toNearestOrEven)
+ /* dqsub478 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555555", "0.9999999999999999999999999999999999", .toNearestOrEven)
+ /* dqsub479 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555554", "0.9999999999999999999999999999999998", .toNearestOrEven)
+ /* dqsub480 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555553", "0.9999999999999999999999999999999997", .toNearestOrEven)
+ /* dqsub481 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555552", "0.9999999999999999999999999999999996", .toNearestOrEven)
+ /* dqsub482 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555551", "0.9999999999999999999999999999999995", .toNearestOrEven)
+ /* dqsub483 */ self.subtract128("0.4444444444444444444444444444444444", "-0.5555555555555555555555555555555550", "0.9999999999999999999999999999999994", .toNearestOrEven)
+ /* dqsub500 */ self.subtract128("1231234555555555555555555567456789", "0", "1231234555555555555555555567456789", .toNearestOrAwayFromZero)
+ /* dqsub501 */ self.subtract128("1231234555555555555555555567456789", "0.000000001", "1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub502 */ self.subtract128("1231234555555555555555555567456789", "0.000001", "1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub503 */ self.subtract128("1231234555555555555555555567456789", "0.1", "1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub504 */ self.subtract128("1231234555555555555555555567456789", "0.4", "1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub505 */ self.subtract128("1231234555555555555555555567456789", "0.49", "1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub506 */ self.subtract128("1231234555555555555555555567456789", "0.499999", "1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub507 */ self.subtract128("1231234555555555555555555567456789", "0.499999999", "1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub508 */ self.subtract128("1231234555555555555555555567456789", "0.5", "1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub509 */ self.subtract128("1231234555555555555555555567456789", "0.500000001", "1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub510 */ self.subtract128("1231234555555555555555555567456789", "0.500001", "1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub511 */ self.subtract128("1231234555555555555555555567456789", "0.51", "1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub512 */ self.subtract128("1231234555555555555555555567456789", "0.6", "1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub513 */ self.subtract128("1231234555555555555555555567456789", "0.9", "1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub514 */ self.subtract128("1231234555555555555555555567456789", "0.99999", "1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub515 */ self.subtract128("1231234555555555555555555567456789", "0.999999999", "1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub516 */ self.subtract128("1231234555555555555555555567456789", "1", "1231234555555555555555555567456788", .toNearestOrAwayFromZero)
+ /* dqsub517 */ self.subtract128("1231234555555555555555555567456789", "1.000000001", "1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub518 */ self.subtract128("1231234555555555555555555567456789", "1.00001", "1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub519 */ self.subtract128("1231234555555555555555555567456789", "1.1", "1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub520 */ self.subtract128("1231234555555555555555555567456789", "0", "1231234555555555555555555567456789", .toNearestOrEven)
+ /* dqsub521 */ self.subtract128("1231234555555555555555555567456789", "0.000000001", "1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub522 */ self.subtract128("1231234555555555555555555567456789", "0.000001", "1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub523 */ self.subtract128("1231234555555555555555555567456789", "0.1", "1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub524 */ self.subtract128("1231234555555555555555555567456789", "0.4", "1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub525 */ self.subtract128("1231234555555555555555555567456789", "0.49", "1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub526 */ self.subtract128("1231234555555555555555555567456789", "0.499999", "1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub527 */ self.subtract128("1231234555555555555555555567456789", "0.499999999", "1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub528 */ self.subtract128("1231234555555555555555555567456789", "0.5", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub529 */ self.subtract128("1231234555555555555555555567456789", "0.500000001", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub530 */ self.subtract128("1231234555555555555555555567456789", "0.500001", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub531 */ self.subtract128("1231234555555555555555555567456789", "0.51", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub532 */ self.subtract128("1231234555555555555555555567456789", "0.6", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub533 */ self.subtract128("1231234555555555555555555567456789", "0.9", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub534 */ self.subtract128("1231234555555555555555555567456789", "0.99999", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub535 */ self.subtract128("1231234555555555555555555567456789", "0.999999999", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub536 */ self.subtract128("1231234555555555555555555567456789", "1", "1231234555555555555555555567456788", .toNearestOrEven)
+ /* dqsub537 */ self.subtract128("1231234555555555555555555567456789", "1.00000001", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub538 */ self.subtract128("1231234555555555555555555567456789", "1.00001", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub539 */ self.subtract128("1231234555555555555555555567456789", "1.1", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub540 */ self.subtract128("1231234555555555555555555567456788", "0.499999999", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub541 */ self.subtract128("1231234555555555555555555567456788", "0.5", "1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub542 */ self.subtract128("1231234555555555555555555567456788", "0.500000001", "1231234555555555555555555567456787", .toNearestOrEven, .isInexact)
+ /* dqsub550 */ self.subtract128("1231234555555555555555555567456789", "0", "1231234555555555555555555567456789", .towardZero)
+ /* dqsub551 */ self.subtract128("1231234555555555555555555567456789", "0.000000001", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub552 */ self.subtract128("1231234555555555555555555567456789", "0.000001", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub553 */ self.subtract128("1231234555555555555555555567456789", "0.1", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub554 */ self.subtract128("1231234555555555555555555567456789", "0.4", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub555 */ self.subtract128("1231234555555555555555555567456789", "0.49", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub556 */ self.subtract128("1231234555555555555555555567456789", "0.499999", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub557 */ self.subtract128("1231234555555555555555555567456789", "0.499999999", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub558 */ self.subtract128("1231234555555555555555555567456789", "0.5", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub559 */ self.subtract128("1231234555555555555555555567456789", "0.500000001", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub560 */ self.subtract128("1231234555555555555555555567456789", "0.500001", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub561 */ self.subtract128("1231234555555555555555555567456789", "0.51", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub562 */ self.subtract128("1231234555555555555555555567456789", "0.6", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub563 */ self.subtract128("1231234555555555555555555567456789", "0.9", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub564 */ self.subtract128("1231234555555555555555555567456789", "0.99999", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub565 */ self.subtract128("1231234555555555555555555567456789", "0.999999999", "1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub566 */ self.subtract128("1231234555555555555555555567456789", "1", "1231234555555555555555555567456788", .towardZero)
+ /* dqsub567 */ self.subtract128("1231234555555555555555555567456789", "1.00000001", "1231234555555555555555555567456787", .towardZero, .isInexact)
+ /* dqsub568 */ self.subtract128("1231234555555555555555555567456789", "1.00001", "1231234555555555555555555567456787", .towardZero, .isInexact)
+ /* dqsub569 */ self.subtract128("1231234555555555555555555567456789", "1.1", "1231234555555555555555555567456787", .towardZero, .isInexact)
+ /* dqsub600 */ self.subtract128("0", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrAwayFromZero)
+ /* dqsub601 */ self.subtract128("0.000000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub602 */ self.subtract128("0.000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub603 */ self.subtract128("0.1", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub604 */ self.subtract128("0.4", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub605 */ self.subtract128("0.49", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub606 */ self.subtract128("0.499999", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub607 */ self.subtract128("0.499999999", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub608 */ self.subtract128("0.5", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub609 */ self.subtract128("0.500000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub610 */ self.subtract128("0.500001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub611 */ self.subtract128("0.51", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub612 */ self.subtract128("0.6", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub613 */ self.subtract128("0.9", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub614 */ self.subtract128("0.99999", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub615 */ self.subtract128("0.999999999", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub616 */ self.subtract128("1", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrAwayFromZero)
+ /* dqsub617 */ self.subtract128("1.000000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub618 */ self.subtract128("1.00001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub619 */ self.subtract128("1.1", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrAwayFromZero, .isInexact)
+ /* dqsub620 */ self.subtract128("0", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrEven)
+ /* dqsub621 */ self.subtract128("0.000000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub622 */ self.subtract128("0.000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub623 */ self.subtract128("0.1", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub624 */ self.subtract128("0.4", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub625 */ self.subtract128("0.49", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub626 */ self.subtract128("0.499999", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub627 */ self.subtract128("0.499999999", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .toNearestOrEven, .isInexact)
+ /* dqsub628 */ self.subtract128("0.5", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub629 */ self.subtract128("0.500000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub630 */ self.subtract128("0.500001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub631 */ self.subtract128("0.51", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub632 */ self.subtract128("0.6", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub633 */ self.subtract128("0.9", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub634 */ self.subtract128("0.99999", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub635 */ self.subtract128("0.999999999", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub636 */ self.subtract128("1", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven)
+ /* dqsub637 */ self.subtract128("1.00000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub638 */ self.subtract128("1.00001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub639 */ self.subtract128("1.1", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub640 */ self.subtract128("0.499999999", "1231234555555555555555555567456788", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub641 */ self.subtract128("0.5", "1231234555555555555555555567456788", "-1231234555555555555555555567456788", .toNearestOrEven, .isInexact)
+ /* dqsub642 */ self.subtract128("0.500000001", "1231234555555555555555555567456788", "-1231234555555555555555555567456787", .toNearestOrEven, .isInexact)
+ /* dqsub650 */ self.subtract128("0", "1231234555555555555555555567456789", "-1231234555555555555555555567456789", .towardZero)
+ /* dqsub651 */ self.subtract128("0.000000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub652 */ self.subtract128("0.000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub653 */ self.subtract128("0.1", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub654 */ self.subtract128("0.4", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub655 */ self.subtract128("0.49", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub656 */ self.subtract128("0.499999", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub657 */ self.subtract128("0.499999999", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub658 */ self.subtract128("0.5", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub659 */ self.subtract128("0.500000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub660 */ self.subtract128("0.500001", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub661 */ self.subtract128("0.51", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub662 */ self.subtract128("0.6", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub663 */ self.subtract128("0.9", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub664 */ self.subtract128("0.99999", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub665 */ self.subtract128("0.999999999", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero, .isInexact)
+ /* dqsub666 */ self.subtract128("1", "1231234555555555555555555567456789", "-1231234555555555555555555567456788", .towardZero)
+ /* dqsub667 */ self.subtract128("1.00000001", "1231234555555555555555555567456789", "-1231234555555555555555555567456787", .towardZero, .isInexact)
+ /* dqsub668 */ self.subtract128("1.00001", "1231234555555555555555555567456789", "-1231234555555555555555555567456787", .towardZero, .isInexact)
+ /* dqsub669 */ self.subtract128("1.1", "1231234555555555555555555567456789", "-1231234555555555555555555567456787", .towardZero, .isInexact)
+ /* dqsub670 */ self.subtract128("1234567456789", "1234567456788.1", "0.9", .toNearestOrAwayFromZero)
+ /* dqsub671 */ self.subtract128("1234567456789", "1234567456788.9", "0.1", .toNearestOrAwayFromZero)
+ /* dqsub672 */ self.subtract128("1234567456789", "1234567456789.1", "-0.1", .toNearestOrAwayFromZero)
+ /* dqsub673 */ self.subtract128("1234567456789", "1234567456789.5", "-0.5", .toNearestOrAwayFromZero)
+ /* dqsub674 */ self.subtract128("1234567456789", "1234567456789.9", "-0.9", .toNearestOrAwayFromZero)
+ /* dqsub680 */ self.subtract128("1234567456789", "1234567456788.1", "0.9", .toNearestOrEven)
+ /* dqsub681 */ self.subtract128("1234567456789", "1234567456788.9", "0.1", .toNearestOrEven)
+ /* dqsub682 */ self.subtract128("1234567456789", "1234567456789.1", "-0.1", .toNearestOrEven)
+ /* dqsub683 */ self.subtract128("1234567456789", "1234567456789.5", "-0.5", .toNearestOrEven)
+ /* dqsub684 */ self.subtract128("1234567456789", "1234567456789.9", "-0.9", .toNearestOrEven)
+ /* dqsub685 */ self.subtract128("1234567456788", "1234567456787.1", "0.9", .toNearestOrEven)
+ /* dqsub686 */ self.subtract128("1234567456788", "1234567456787.9", "0.1", .toNearestOrEven)
+ /* dqsub687 */ self.subtract128("1234567456788", "1234567456788.1", "-0.1", .toNearestOrEven)
+ /* dqsub688 */ self.subtract128("1234567456788", "1234567456788.5", "-0.5", .toNearestOrEven)
+ /* dqsub689 */ self.subtract128("1234567456788", "1234567456788.9", "-0.9", .toNearestOrEven)
+ /* dqsub690 */ self.subtract128("1234567456789", "1234567456788.1", "0.9", .towardZero)
+ /* dqsub691 */ self.subtract128("1234567456789", "1234567456788.9", "0.1", .towardZero)
+ /* dqsub692 */ self.subtract128("1234567456789", "1234567456789.1", "-0.1", .towardZero)
+ /* dqsub693 */ self.subtract128("1234567456789", "1234567456789.5", "-0.5", .towardZero)
+ /* dqsub694 */ self.subtract128("1234567456789", "1234567456789.9", "-0.9", .towardZero)
+ /* dqsub780 */ self.subtract128("-Inf", "Inf", "-Infinity", .towardZero)
+ /* dqsub781 */ self.subtract128("-Inf", "1000", "-Infinity", .towardZero)
+ /* dqsub782 */ self.subtract128("-Inf", "1", "-Infinity", .towardZero)
+ /* dqsub783 */ self.subtract128("-Inf", "-0", "-Infinity", .towardZero)
+ /* dqsub784 */ self.subtract128("-Inf", "-1", "-Infinity", .towardZero)
+ /* dqsub785 */ self.subtract128("-Inf", "-1000", "-Infinity", .towardZero)
+ /* dqsub787 */ self.subtract128("-1000", "Inf", "-Infinity", .towardZero)
+ /* dqsub788 */ self.subtract128("-Inf", "Inf", "-Infinity", .towardZero)
+ /* dqsub789 */ self.subtract128("-1", "Inf", "-Infinity", .towardZero)
+ /* dqsub790 */ self.subtract128("0", "Inf", "-Infinity", .towardZero)
+ /* dqsub791 */ self.subtract128("1", "Inf", "-Infinity", .towardZero)
+ /* dqsub792 */ self.subtract128("1000", "Inf", "-Infinity", .towardZero)
+ /* dqsub800 */ self.subtract128("Inf", "Inf", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub801 */ self.subtract128("Inf", "1000", "Infinity", .towardZero)
+ /* dqsub802 */ self.subtract128("Inf", "1", "Infinity", .towardZero)
+ /* dqsub803 */ self.subtract128("Inf", "0", "Infinity", .towardZero)
+ /* dqsub804 */ self.subtract128("Inf", "-0", "Infinity", .towardZero)
+ /* dqsub805 */ self.subtract128("Inf", "-1", "Infinity", .towardZero)
+ /* dqsub806 */ self.subtract128("Inf", "-1000", "Infinity", .towardZero)
+ /* dqsub807 */ self.subtract128("Inf", "-Inf", "Infinity", .towardZero)
+ /* dqsub808 */ self.subtract128("-1000", "-Inf", "Infinity", .towardZero)
+ /* dqsub809 */ self.subtract128("-Inf", "-Inf", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub810 */ self.subtract128("-1", "-Inf", "Infinity", .towardZero)
+ /* dqsub811 */ self.subtract128("-0", "-Inf", "Infinity", .towardZero)
+ /* dqsub812 */ self.subtract128("0", "-Inf", "Infinity", .towardZero)
+ /* dqsub813 */ self.subtract128("1", "-Inf", "Infinity", .towardZero)
+ /* dqsub814 */ self.subtract128("1000", "-Inf", "Infinity", .towardZero)
+ /* dqsub815 */ self.subtract128("Inf", "-Inf", "Infinity", .towardZero)
+ /* dqsub821 */ self.subtract128("NaN", "Inf", "NaN", .towardZero)
+ /* dqsub822 */ self.subtract128("-NaN", "1000", "-NaN", .towardZero)
+ /* dqsub823 */ self.subtract128("NaN", "1", "NaN", .towardZero)
+ /* dqsub824 */ self.subtract128("NaN", "0", "NaN", .towardZero)
+ /* dqsub825 */ self.subtract128("NaN", "-0", "NaN", .towardZero)
+ /* dqsub826 */ self.subtract128("NaN", "-1", "NaN", .towardZero)
+ /* dqsub827 */ self.subtract128("NaN", "-1000", "NaN", .towardZero)
+ /* dqsub828 */ self.subtract128("NaN", "-Inf", "NaN", .towardZero)
+ /* dqsub829 */ self.subtract128("-NaN", "NaN", "-NaN", .towardZero)
+ /* dqsub830 */ self.subtract128("-Inf", "NaN", "NaN", .towardZero)
+ /* dqsub831 */ self.subtract128("-1000", "NaN", "NaN", .towardZero)
+ /* dqsub832 */ self.subtract128("-1", "NaN", "NaN", .towardZero)
+ /* dqsub833 */ self.subtract128("-0", "NaN", "NaN", .towardZero)
+ /* dqsub834 */ self.subtract128("0", "NaN", "NaN", .towardZero)
+ /* dqsub835 */ self.subtract128("1", "NaN", "NaN", .towardZero)
+ /* dqsub836 */ self.subtract128("1000", "-NaN", "-NaN", .towardZero)
+ /* dqsub837 */ self.subtract128("Inf", "NaN", "NaN", .towardZero)
+ /* dqsub841 */ self.subtract128("sNaN", "Inf", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub842 */ self.subtract128("-sNaN", "1000", "-NaN", .towardZero, .isInvalidOperation)
+ /* dqsub843 */ self.subtract128("sNaN", "1", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub844 */ self.subtract128("sNaN", "0", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub845 */ self.subtract128("sNaN", "-0", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub846 */ self.subtract128("sNaN", "-1", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub847 */ self.subtract128("sNaN", "-1000", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub848 */ self.subtract128("sNaN", "NaN", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub849 */ self.subtract128("sNaN", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub850 */ self.subtract128("NaN", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub851 */ self.subtract128("-Inf", "-sNaN", "-NaN", .towardZero, .isInvalidOperation)
+ /* dqsub852 */ self.subtract128("-1000", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub853 */ self.subtract128("-1", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub854 */ self.subtract128("-0", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub855 */ self.subtract128("0", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub856 */ self.subtract128("1", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub857 */ self.subtract128("1000", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub858 */ self.subtract128("Inf", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub859 */ self.subtract128("NaN", "sNaN", "NaN", .towardZero, .isInvalidOperation)
+ /* dqsub861 */ self.subtract128("NaN(0x1)", "-Inf", "NaN(0x1)", .towardZero)
+ /* dqsub862 */ self.subtract128("-NaN(0x2)", "-1000", "-NaN(0x2)", .towardZero)
+ /* dqsub863 */ self.subtract128("NaN(0x3)", "1000", "NaN(0x3)", .towardZero)
+ /* dqsub864 */ self.subtract128("NaN(0x4)", "Inf", "NaN(0x4)", .towardZero)
+ /* dqsub865 */ self.subtract128("NaN(0x5)", "NaN(0x3d)", "NaN(0x5)", .towardZero)
+ /* dqsub866 */ self.subtract128("-Inf", "-NaN(0x47)", "-NaN(0x47)", .towardZero)
+ /* dqsub867 */ self.subtract128("-1000", "NaN(0x51)", "NaN(0x51)", .towardZero)
+ /* dqsub868 */ self.subtract128("1000", "NaN(0x5b)", "NaN(0x5b)", .towardZero)
+ /* dqsub869 */ self.subtract128("Inf", "NaN(0x65)", "NaN(0x65)", .towardZero)
+ /* dqsub871 */ self.subtract128("sNaN(0xb)", "-Inf", "NaN(0xb)", .towardZero, .isInvalidOperation)
+ /* dqsub872 */ self.subtract128("sNaN(0xc)", "-1000", "NaN(0xc)", .towardZero, .isInvalidOperation)
+ /* dqsub873 */ self.subtract128("-sNaN(0xd)", "1000", "-NaN(0xd)", .towardZero, .isInvalidOperation)
+ /* dqsub874 */ self.subtract128("sNaN(0xe)", "NaN(0xab)", "NaN(0xe)", .towardZero, .isInvalidOperation)
+ /* dqsub875 */ self.subtract128("sNaN(0xf)", "sNaN(0xb5)", "NaN(0xf)", .towardZero, .isInvalidOperation)
+ /* dqsub876 */ self.subtract128("NaN(0x10)", "sNaN(0xbf)", "NaN(0xbf)", .towardZero, .isInvalidOperation)
+ /* dqsub877 */ self.subtract128("-Inf", "sNaN(0xc9)", "NaN(0xc9)", .towardZero, .isInvalidOperation)
+ /* dqsub878 */ self.subtract128("-1000", "sNaN(0xd3)", "NaN(0xd3)", .towardZero, .isInvalidOperation)
+ /* dqsub879 */ self.subtract128("1000", "-sNaN(0xdd)", "-NaN(0xdd)", .towardZero, .isInvalidOperation)
+ /* dqsub880 */ self.subtract128("Inf", "sNaN(0xe7)", "NaN(0xe7)", .towardZero, .isInvalidOperation)
+ /* dqsub881 */ self.subtract128("NaN(0x19)", "sNaN(0xf1)", "NaN(0xf1)", .towardZero, .isInvalidOperation)
+ /* dqsub901 */ self.subtract128("2.E-3", "1.002", "-1.000", .towardZero)
+ /* dqsub902 */ self.subtract128("2.0E-3", "1.002", "-1.0000", .towardZero)
+ /* dqsub903 */ self.subtract128("2.00E-3", "1.0020", "-1.00000", .towardZero)
+ /* dqsub904 */ self.subtract128("2.000E-3", "1.00200", "-1.000000", .towardZero)
+ /* dqsub905 */ self.subtract128("2.0000E-3", "1.002000", "-1.0000000", .towardZero)
+ /* dqsub906 */ self.subtract128("2.00000E-3", "1.0020000", "-1.00000000", .towardZero)
+ /* dqsub907 */ self.subtract128("2.000000E-3", "1.00200000", "-1.000000000", .towardZero)
+ /* dqsub908 */ self.subtract128("2.0000000E-3", "1.002000000", "-1.0000000000", .towardZero)
+ /* dqsub910 */ self.subtract128("-103519362", "-51897955.3", "-51621406.7", .toNearestOrEven)
+ /* dqsub911 */ self.subtract128("159579.444", "89827.5229", "69751.9211", .toNearestOrEven)
+ /* dqsub920 */ self.subtract128("333.0000000000000000000000000123456", "33.00000000000000000000000001234566", "299.9999999999999999999999999999999", .toNearestOrEven, .isInexact)
+ /* dqsub921 */ self.subtract128("333.0000000000000000000000000123456", "33.00000000000000000000000001234565", "300.0000000000000000000000000000000", .toNearestOrEven, .isInexact)
+ /* dqsub922 */ self.subtract128("133.0000000000000000000000000123456", "33.00000000000000000000000001234565", "99.99999999999999999999999999999995", .toNearestOrEven)
+ /* dqsub923 */ self.subtract128("133.0000000000000000000000000123456", "33.00000000000000000000000001234564", "99.99999999999999999999999999999996", .toNearestOrEven)
+ /* dqsub924 */ self.subtract128("133.0000000000000000000000000123456", "33.00000000000000000000000001234540", "100.0000000000000000000000000000002", .toNearestOrEven)
+ /* dqsub925 */ self.subtract128("133.0000000000000000000000000123456", "43.00000000000000000000000001234560", "90.00000000000000000000000000000000", .toNearestOrEven)
+ /* dqsub926 */ self.subtract128("133.0000000000000000000000000123456", "43.00000000000000000000000001234561", "89.99999999999999999999999999999999", .toNearestOrEven)
+ /* dqsub927 */ self.subtract128("133.0000000000000000000000000123456", "43.00000000000000000000000001234566", "89.99999999999999999999999999999994", .toNearestOrEven)
+ /* dqsub928 */ self.subtract128("101.0000000000000000000000000123456", "91.00000000000000000000000001234566", "9.99999999999999999999999999999994", .toNearestOrEven)
+ /* dqsub929 */ self.subtract128("101.0000000000000000000000000123456", "99.00000000000000000000000001234566", "1.99999999999999999999999999999994", .toNearestOrEven)
+ }
+
+ private func subtract128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+ let expectedStatus = _expectedStatus ?? DecimalStatus()
+
+ var status = DecimalStatus()
+ let result = arg0.subtracting(arg1, rounding: rounding, status: &status)
+ let speleotroveResult = self.toSpeleotrove_sub(arg0, arg1, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ self.assertStatus(status, expectedStatus, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveTotalOrderTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveTotalOrderTests.swift
new file mode 100644
index 0000000..462d09c
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveTotalOrderTests.swift
@@ -0,0 +1,2534 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveTotalOrderTests: XCTestCase, SpeleotroveMixin {
+
+ // MARK: - Comparetotal
+
+ func test_comparetotal64() {
+ /* ddcot001 */ self.comparetotal64("-2", "-2", 0, .toNearestOrEven)
+ /* ddcot002 */ self.comparetotal64("-2", "-1", -1, .toNearestOrEven)
+ /* ddcot003 */ self.comparetotal64("-2", "0", -1, .toNearestOrEven)
+ /* ddcot004 */ self.comparetotal64("-2", "1", -1, .toNearestOrEven)
+ /* ddcot005 */ self.comparetotal64("-2", "2", -1, .toNearestOrEven)
+ /* ddcot006 */ self.comparetotal64("-1", "-2", 1, .toNearestOrEven)
+ /* ddcot007 */ self.comparetotal64("-1", "-1", 0, .toNearestOrEven)
+ /* ddcot008 */ self.comparetotal64("-1", "0", -1, .toNearestOrEven)
+ /* ddcot009 */ self.comparetotal64("-1", "1", -1, .toNearestOrEven)
+ /* ddcot010 */ self.comparetotal64("-1", "2", -1, .toNearestOrEven)
+ /* ddcot011 */ self.comparetotal64("0", "-2", 1, .toNearestOrEven)
+ /* ddcot012 */ self.comparetotal64("0", "-1", 1, .toNearestOrEven)
+ /* ddcot013 */ self.comparetotal64("0", "0", 0, .toNearestOrEven)
+ /* ddcot014 */ self.comparetotal64("0", "1", -1, .toNearestOrEven)
+ /* ddcot015 */ self.comparetotal64("0", "2", -1, .toNearestOrEven)
+ /* ddcot016 */ self.comparetotal64("1", "-2", 1, .toNearestOrEven)
+ /* ddcot017 */ self.comparetotal64("1", "-1", 1, .toNearestOrEven)
+ /* ddcot018 */ self.comparetotal64("1", "0", 1, .toNearestOrEven)
+ /* ddcot019 */ self.comparetotal64("1", "1", 0, .toNearestOrEven)
+ /* ddcot020 */ self.comparetotal64("1", "2", -1, .toNearestOrEven)
+ /* ddcot021 */ self.comparetotal64("2", "-2", 1, .toNearestOrEven)
+ /* ddcot022 */ self.comparetotal64("2", "-1", 1, .toNearestOrEven)
+ /* ddcot023 */ self.comparetotal64("2", "0", 1, .toNearestOrEven)
+ /* ddcot025 */ self.comparetotal64("2", "1", 1, .toNearestOrEven)
+ /* ddcot026 */ self.comparetotal64("2", "2", 0, .toNearestOrEven)
+ /* ddcot031 */ self.comparetotal64("-20", "-20", 0, .toNearestOrEven)
+ /* ddcot032 */ self.comparetotal64("-20", "-10", -1, .toNearestOrEven)
+ /* ddcot033 */ self.comparetotal64("-20", "00", -1, .toNearestOrEven)
+ /* ddcot034 */ self.comparetotal64("-20", "10", -1, .toNearestOrEven)
+ /* ddcot035 */ self.comparetotal64("-20", "20", -1, .toNearestOrEven)
+ /* ddcot036 */ self.comparetotal64("-10", "-20", 1, .toNearestOrEven)
+ /* ddcot037 */ self.comparetotal64("-10", "-10", 0, .toNearestOrEven)
+ /* ddcot038 */ self.comparetotal64("-10", "00", -1, .toNearestOrEven)
+ /* ddcot039 */ self.comparetotal64("-10", "10", -1, .toNearestOrEven)
+ /* ddcot040 */ self.comparetotal64("-10", "20", -1, .toNearestOrEven)
+ /* ddcot041 */ self.comparetotal64("00", "-20", 1, .toNearestOrEven)
+ /* ddcot042 */ self.comparetotal64("00", "-10", 1, .toNearestOrEven)
+ /* ddcot043 */ self.comparetotal64("00", "00", 0, .toNearestOrEven)
+ /* ddcot044 */ self.comparetotal64("00", "10", -1, .toNearestOrEven)
+ /* ddcot045 */ self.comparetotal64("00", "20", -1, .toNearestOrEven)
+ /* ddcot046 */ self.comparetotal64("10", "-20", 1, .toNearestOrEven)
+ /* ddcot047 */ self.comparetotal64("10", "-10", 1, .toNearestOrEven)
+ /* ddcot048 */ self.comparetotal64("10", "00", 1, .toNearestOrEven)
+ /* ddcot049 */ self.comparetotal64("10", "10", 0, .toNearestOrEven)
+ /* ddcot050 */ self.comparetotal64("10", "20", -1, .toNearestOrEven)
+ /* ddcot051 */ self.comparetotal64("20", "-20", 1, .toNearestOrEven)
+ /* ddcot052 */ self.comparetotal64("20", "-10", 1, .toNearestOrEven)
+ /* ddcot053 */ self.comparetotal64("20", "00", 1, .toNearestOrEven)
+ /* ddcot055 */ self.comparetotal64("20", "10", 1, .toNearestOrEven)
+ /* ddcot056 */ self.comparetotal64("20", "20", 0, .toNearestOrEven)
+ /* ddcot061 */ self.comparetotal64("-2.0", "-2.0", 0, .toNearestOrEven)
+ /* ddcot062 */ self.comparetotal64("-2.0", "-1.0", -1, .toNearestOrEven)
+ /* ddcot063 */ self.comparetotal64("-2.0", "0.0", -1, .toNearestOrEven)
+ /* ddcot064 */ self.comparetotal64("-2.0", "1.0", -1, .toNearestOrEven)
+ /* ddcot065 */ self.comparetotal64("-2.0", "2.0", -1, .toNearestOrEven)
+ /* ddcot066 */ self.comparetotal64("-1.0", "-2.0", 1, .toNearestOrEven)
+ /* ddcot067 */ self.comparetotal64("-1.0", "-1.0", 0, .toNearestOrEven)
+ /* ddcot068 */ self.comparetotal64("-1.0", "0.0", -1, .toNearestOrEven)
+ /* ddcot069 */ self.comparetotal64("-1.0", "1.0", -1, .toNearestOrEven)
+ /* ddcot070 */ self.comparetotal64("-1.0", "2.0", -1, .toNearestOrEven)
+ /* ddcot071 */ self.comparetotal64("0.0", "-2.0", 1, .toNearestOrEven)
+ /* ddcot072 */ self.comparetotal64("0.0", "-1.0", 1, .toNearestOrEven)
+ /* ddcot073 */ self.comparetotal64("0.0", "0.0", 0, .toNearestOrEven)
+ /* ddcot074 */ self.comparetotal64("0.0", "1.0", -1, .toNearestOrEven)
+ /* ddcot075 */ self.comparetotal64("0.0", "2.0", -1, .toNearestOrEven)
+ /* ddcot076 */ self.comparetotal64("1.0", "-2.0", 1, .toNearestOrEven)
+ /* ddcot077 */ self.comparetotal64("1.0", "-1.0", 1, .toNearestOrEven)
+ /* ddcot078 */ self.comparetotal64("1.0", "0.0", 1, .toNearestOrEven)
+ /* ddcot079 */ self.comparetotal64("1.0", "1.0", 0, .toNearestOrEven)
+ /* ddcot080 */ self.comparetotal64("1.0", "2.0", -1, .toNearestOrEven)
+ /* ddcot081 */ self.comparetotal64("2.0", "-2.0", 1, .toNearestOrEven)
+ /* ddcot082 */ self.comparetotal64("2.0", "-1.0", 1, .toNearestOrEven)
+ /* ddcot083 */ self.comparetotal64("2.0", "0.0", 1, .toNearestOrEven)
+ /* ddcot085 */ self.comparetotal64("2.0", "1.0", 1, .toNearestOrEven)
+ /* ddcot086 */ self.comparetotal64("2.0", "2.0", 0, .toNearestOrEven)
+ /* ddcot090 */ self.comparetotal64("9.99999999E+384", "9.99999999E+384", 0, .toNearestOrEven)
+ /* ddcot091 */ self.comparetotal64("-9.99999999E+384", "9.99999999E+384", -1, .toNearestOrEven)
+ /* ddcot092 */ self.comparetotal64("9.99999999E+384", "-9.99999999E+384", 1, .toNearestOrEven)
+ /* ddcot093 */ self.comparetotal64("-9.99999999E+384", "-9.99999999E+384", 0, .toNearestOrEven)
+ /* ddcot100 */ self.comparetotal64("7.0", "7.0", 0, .toNearestOrEven)
+ /* ddcot101 */ self.comparetotal64("7.0", "7", -1, .toNearestOrEven)
+ /* ddcot102 */ self.comparetotal64("7", "7.0", 1, .toNearestOrEven)
+ /* ddcot103 */ self.comparetotal64("7E+0", "7.0", 1, .toNearestOrEven)
+ /* ddcot104 */ self.comparetotal64("70E-1", "7.0", 0, .toNearestOrEven)
+ /* ddcot105 */ self.comparetotal64("0.7E+1", "7", 0, .toNearestOrEven)
+ /* ddcot106 */ self.comparetotal64("70E-1", "7", -1, .toNearestOrEven)
+ /* ddcot107 */ self.comparetotal64("7.0", "7E+0", -1, .toNearestOrEven)
+ /* ddcot108 */ self.comparetotal64("7.0", "70E-1", 0, .toNearestOrEven)
+ /* ddcot109 */ self.comparetotal64("7", "0.7E+1", 0, .toNearestOrEven)
+ /* ddcot110 */ self.comparetotal64("7", "70E-1", 1, .toNearestOrEven)
+ /* ddcot1110 */ self.comparetotal64("0E-383", "0", -1, .toNearestOrEven)
+ /* ddcot1111 */ self.comparetotal64("0E-383", "-0", 1, .toNearestOrEven)
+ /* ddcot1112 */ self.comparetotal64("-0E-383", "0", -1, .toNearestOrEven)
+ /* ddcot1113 */ self.comparetotal64("-0E-383", "-0", 1, .toNearestOrEven)
+ /* ddcot1114 */ self.comparetotal64("0E-383", "0E+384", -1, .toNearestOrEven)
+ /* ddcot1115 */ self.comparetotal64("0E-383", "-0E+384", 1, .toNearestOrEven)
+ /* ddcot1116 */ self.comparetotal64("-0E-383", "0E+384", -1, .toNearestOrEven)
+ /* ddcot1117 */ self.comparetotal64("-0E-383", "-0E+384", 1, .toNearestOrEven)
+ /* ddcot1118 */ self.comparetotal64("0", "0E+384", -1, .toNearestOrEven)
+ /* ddcot1119 */ self.comparetotal64("0", "-0E+384", 1, .toNearestOrEven)
+ /* ddcot1120 */ self.comparetotal64("-0", "0E+384", -1, .toNearestOrEven)
+ /* ddcot1121 */ self.comparetotal64("-0", "-0E+384", 1, .toNearestOrEven)
+ /* ddcot1130 */ self.comparetotal64("0E+384", "0", 1, .toNearestOrEven)
+ /* ddcot1131 */ self.comparetotal64("0E+384", "-0", 1, .toNearestOrEven)
+ /* ddcot1132 */ self.comparetotal64("-0E+384", "0", -1, .toNearestOrEven)
+ /* ddcot1133 */ self.comparetotal64("-0E+384", "-0", -1, .toNearestOrEven)
+ /* ddcot1134 */ self.comparetotal64("0E+384", "0E-383", 1, .toNearestOrEven)
+ /* ddcot1135 */ self.comparetotal64("0E+384", "-0E-383", 1, .toNearestOrEven)
+ /* ddcot1136 */ self.comparetotal64("-0E+384", "0E-383", -1, .toNearestOrEven)
+ /* ddcot1137 */ self.comparetotal64("-0E+384", "-0E-383", -1, .toNearestOrEven)
+ /* ddcot1138 */ self.comparetotal64("0", "0E-383", 1, .toNearestOrEven)
+ /* ddcot1139 */ self.comparetotal64("0", "-0E-383", 1, .toNearestOrEven)
+ /* ddcot1140 */ self.comparetotal64("-0", "0E-383", -1, .toNearestOrEven)
+ /* ddcot1141 */ self.comparetotal64("-0", "-0E-383", -1, .toNearestOrEven)
+ /* ddcot120 */ self.comparetotal64("8.0", "7.0", 1, .toNearestOrEven)
+ /* ddcot121 */ self.comparetotal64("8.0", "7", 1, .toNearestOrEven)
+ /* ddcot122 */ self.comparetotal64("8", "7.0", 1, .toNearestOrEven)
+ /* ddcot123 */ self.comparetotal64("8E+0", "7.0", 1, .toNearestOrEven)
+ /* ddcot124 */ self.comparetotal64("80E-1", "7.0", 1, .toNearestOrEven)
+ /* ddcot125 */ self.comparetotal64("0.8E+1", "7", 1, .toNearestOrEven)
+ /* ddcot126 */ self.comparetotal64("80E-1", "7", 1, .toNearestOrEven)
+ /* ddcot127 */ self.comparetotal64("8.0", "7E+0", 1, .toNearestOrEven)
+ /* ddcot128 */ self.comparetotal64("8.0", "70E-1", 1, .toNearestOrEven)
+ /* ddcot129 */ self.comparetotal64("8", "0.7E+1", 1, .toNearestOrEven)
+ /* ddcot130 */ self.comparetotal64("8", "70E-1", 1, .toNearestOrEven)
+ /* ddcot140 */ self.comparetotal64("8.0", "9.0", -1, .toNearestOrEven)
+ /* ddcot141 */ self.comparetotal64("8.0", "9", -1, .toNearestOrEven)
+ /* ddcot142 */ self.comparetotal64("8", "9.0", -1, .toNearestOrEven)
+ /* ddcot143 */ self.comparetotal64("8E+0", "9.0", -1, .toNearestOrEven)
+ /* ddcot144 */ self.comparetotal64("80E-1", "9.0", -1, .toNearestOrEven)
+ /* ddcot145 */ self.comparetotal64("0.8E+1", "9", -1, .toNearestOrEven)
+ /* ddcot146 */ self.comparetotal64("80E-1", "9", -1, .toNearestOrEven)
+ /* ddcot147 */ self.comparetotal64("8.0", "9E+0", -1, .toNearestOrEven)
+ /* ddcot148 */ self.comparetotal64("8.0", "90E-1", -1, .toNearestOrEven)
+ /* ddcot149 */ self.comparetotal64("8", "0.9E+1", -1, .toNearestOrEven)
+ /* ddcot150 */ self.comparetotal64("8", "90E-1", -1, .toNearestOrEven)
+ /* ddcot200 */ self.comparetotal64("-7.0", "7.0", -1, .toNearestOrEven)
+ /* ddcot201 */ self.comparetotal64("-7.0", "7", -1, .toNearestOrEven)
+ /* ddcot202 */ self.comparetotal64("-7", "7.0", -1, .toNearestOrEven)
+ /* ddcot203 */ self.comparetotal64("-7E+0", "7.0", -1, .toNearestOrEven)
+ /* ddcot204 */ self.comparetotal64("-70E-1", "7.0", -1, .toNearestOrEven)
+ /* ddcot205 */ self.comparetotal64("-0.7E+1", "7", -1, .toNearestOrEven)
+ /* ddcot206 */ self.comparetotal64("-70E-1", "7", -1, .toNearestOrEven)
+ /* ddcot207 */ self.comparetotal64("-7.0", "7E+0", -1, .toNearestOrEven)
+ /* ddcot208 */ self.comparetotal64("-7.0", "70E-1", -1, .toNearestOrEven)
+ /* ddcot209 */ self.comparetotal64("-7", "0.7E+1", -1, .toNearestOrEven)
+ /* ddcot210 */ self.comparetotal64("-7", "70E-1", -1, .toNearestOrEven)
+ /* ddcot220 */ self.comparetotal64("-8.0", "7.0", -1, .toNearestOrEven)
+ /* ddcot221 */ self.comparetotal64("-8.0", "7", -1, .toNearestOrEven)
+ /* ddcot222 */ self.comparetotal64("-8", "7.0", -1, .toNearestOrEven)
+ /* ddcot223 */ self.comparetotal64("-8E+0", "7.0", -1, .toNearestOrEven)
+ /* ddcot224 */ self.comparetotal64("-80E-1", "7.0", -1, .toNearestOrEven)
+ /* ddcot225 */ self.comparetotal64("-0.8E+1", "7", -1, .toNearestOrEven)
+ /* ddcot226 */ self.comparetotal64("-80E-1", "7", -1, .toNearestOrEven)
+ /* ddcot227 */ self.comparetotal64("-8.0", "7E+0", -1, .toNearestOrEven)
+ /* ddcot228 */ self.comparetotal64("-8.0", "70E-1", -1, .toNearestOrEven)
+ /* ddcot229 */ self.comparetotal64("-8", "0.7E+1", -1, .toNearestOrEven)
+ /* ddcot230 */ self.comparetotal64("-8", "70E-1", -1, .toNearestOrEven)
+ /* ddcot240 */ self.comparetotal64("-8.0", "9.0", -1, .toNearestOrEven)
+ /* ddcot241 */ self.comparetotal64("-8.0", "9", -1, .toNearestOrEven)
+ /* ddcot242 */ self.comparetotal64("-8", "9.0", -1, .toNearestOrEven)
+ /* ddcot243 */ self.comparetotal64("-8E+0", "9.0", -1, .toNearestOrEven)
+ /* ddcot244 */ self.comparetotal64("-80E-1", "9.0", -1, .toNearestOrEven)
+ /* ddcot245 */ self.comparetotal64("-0.8E+1", "9", -1, .toNearestOrEven)
+ /* ddcot246 */ self.comparetotal64("-80E-1", "9", -1, .toNearestOrEven)
+ /* ddcot247 */ self.comparetotal64("-8.0", "9E+0", -1, .toNearestOrEven)
+ /* ddcot248 */ self.comparetotal64("-8.0", "90E-1", -1, .toNearestOrEven)
+ /* ddcot249 */ self.comparetotal64("-8", "0.9E+1", -1, .toNearestOrEven)
+ /* ddcot250 */ self.comparetotal64("-8", "90E-1", -1, .toNearestOrEven)
+ /* ddcot300 */ self.comparetotal64("7.0", "-7.0", 1, .toNearestOrEven)
+ /* ddcot301 */ self.comparetotal64("7.0", "-7", 1, .toNearestOrEven)
+ /* ddcot302 */ self.comparetotal64("7", "-7.0", 1, .toNearestOrEven)
+ /* ddcot303 */ self.comparetotal64("7E+0", "-7.0", 1, .toNearestOrEven)
+ /* ddcot304 */ self.comparetotal64("70E-1", "-7.0", 1, .toNearestOrEven)
+ /* ddcot305 */ self.comparetotal64(".7E+1", "-7", 1, .toNearestOrEven)
+ /* ddcot306 */ self.comparetotal64("70E-1", "-7", 1, .toNearestOrEven)
+ /* ddcot307 */ self.comparetotal64("7.0", "-7E+0", 1, .toNearestOrEven)
+ /* ddcot308 */ self.comparetotal64("7.0", "-70E-1", 1, .toNearestOrEven)
+ /* ddcot309 */ self.comparetotal64("7", "-.7E+1", 1, .toNearestOrEven)
+ /* ddcot310 */ self.comparetotal64("7", "-70E-1", 1, .toNearestOrEven)
+ /* ddcot320 */ self.comparetotal64("8.0", "-7.0", 1, .toNearestOrEven)
+ /* ddcot321 */ self.comparetotal64("8.0", "-7", 1, .toNearestOrEven)
+ /* ddcot322 */ self.comparetotal64("8", "-7.0", 1, .toNearestOrEven)
+ /* ddcot323 */ self.comparetotal64("8E+0", "-7.0", 1, .toNearestOrEven)
+ /* ddcot324 */ self.comparetotal64("80E-1", "-7.0", 1, .toNearestOrEven)
+ /* ddcot325 */ self.comparetotal64(".8E+1", "-7", 1, .toNearestOrEven)
+ /* ddcot326 */ self.comparetotal64("80E-1", "-7", 1, .toNearestOrEven)
+ /* ddcot327 */ self.comparetotal64("8.0", "-7E+0", 1, .toNearestOrEven)
+ /* ddcot328 */ self.comparetotal64("8.0", "-70E-1", 1, .toNearestOrEven)
+ /* ddcot329 */ self.comparetotal64("8", "-.7E+1", 1, .toNearestOrEven)
+ /* ddcot330 */ self.comparetotal64("8", "-70E-1", 1, .toNearestOrEven)
+ /* ddcot340 */ self.comparetotal64("8.0", "-9.0", 1, .toNearestOrEven)
+ /* ddcot341 */ self.comparetotal64("8.0", "-9", 1, .toNearestOrEven)
+ /* ddcot342 */ self.comparetotal64("8", "-9.0", 1, .toNearestOrEven)
+ /* ddcot343 */ self.comparetotal64("8E+0", "-9.0", 1, .toNearestOrEven)
+ /* ddcot344 */ self.comparetotal64("80E-1", "-9.0", 1, .toNearestOrEven)
+ /* ddcot345 */ self.comparetotal64(".8E+1", "-9", 1, .toNearestOrEven)
+ /* ddcot346 */ self.comparetotal64("80E-1", "-9", 1, .toNearestOrEven)
+ /* ddcot347 */ self.comparetotal64("8.0", "-9E+0", 1, .toNearestOrEven)
+ /* ddcot348 */ self.comparetotal64("8.0", "-90E-1", 1, .toNearestOrEven)
+ /* ddcot349 */ self.comparetotal64("8", "-.9E+1", 1, .toNearestOrEven)
+ /* ddcot350 */ self.comparetotal64("8", "-90E-1", 1, .toNearestOrEven)
+ /* ddcot400 */ self.comparetotal64("-7.0", "-7.0", 0, .toNearestOrEven)
+ /* ddcot401 */ self.comparetotal64("-7.0", "-7", 1, .toNearestOrEven)
+ /* ddcot402 */ self.comparetotal64("-7", "-7.0", -1, .toNearestOrEven)
+ /* ddcot403 */ self.comparetotal64("-7E+0", "-7.0", -1, .toNearestOrEven)
+ /* ddcot404 */ self.comparetotal64("-70E-1", "-7.0", 0, .toNearestOrEven)
+ /* ddcot405 */ self.comparetotal64("-.7E+1", "-7", 0, .toNearestOrEven)
+ /* ddcot406 */ self.comparetotal64("-70E-1", "-7", 1, .toNearestOrEven)
+ /* ddcot407 */ self.comparetotal64("-7.0", "-7E+0", 1, .toNearestOrEven)
+ /* ddcot408 */ self.comparetotal64("-7.0", "-70E-1", 0, .toNearestOrEven)
+ /* ddcot409 */ self.comparetotal64("-7", "-.7E+1", 0, .toNearestOrEven)
+ /* ddcot410 */ self.comparetotal64("-7", "-70E-1", -1, .toNearestOrEven)
+ /* ddcot420 */ self.comparetotal64("-8.0", "-7.0", -1, .toNearestOrEven)
+ /* ddcot421 */ self.comparetotal64("-8.0", "-7", -1, .toNearestOrEven)
+ /* ddcot422 */ self.comparetotal64("-8", "-7.0", -1, .toNearestOrEven)
+ /* ddcot423 */ self.comparetotal64("-8E+0", "-7.0", -1, .toNearestOrEven)
+ /* ddcot424 */ self.comparetotal64("-80E-1", "-7.0", -1, .toNearestOrEven)
+ /* ddcot425 */ self.comparetotal64("-.8E+1", "-7", -1, .toNearestOrEven)
+ /* ddcot426 */ self.comparetotal64("-80E-1", "-7", -1, .toNearestOrEven)
+ /* ddcot427 */ self.comparetotal64("-8.0", "-7E+0", -1, .toNearestOrEven)
+ /* ddcot428 */ self.comparetotal64("-8.0", "-70E-1", -1, .toNearestOrEven)
+ /* ddcot429 */ self.comparetotal64("-8", "-.7E+1", -1, .toNearestOrEven)
+ /* ddcot430 */ self.comparetotal64("-8", "-70E-1", -1, .toNearestOrEven)
+ /* ddcot440 */ self.comparetotal64("-8.0", "-9.0", 1, .toNearestOrEven)
+ /* ddcot441 */ self.comparetotal64("-8.0", "-9", 1, .toNearestOrEven)
+ /* ddcot442 */ self.comparetotal64("-8", "-9.0", 1, .toNearestOrEven)
+ /* ddcot443 */ self.comparetotal64("-8E+0", "-9.0", 1, .toNearestOrEven)
+ /* ddcot444 */ self.comparetotal64("-80E-1", "-9.0", 1, .toNearestOrEven)
+ /* ddcot445 */ self.comparetotal64("-.8E+1", "-9", 1, .toNearestOrEven)
+ /* ddcot446 */ self.comparetotal64("-80E-1", "-9", 1, .toNearestOrEven)
+ /* ddcot447 */ self.comparetotal64("-8.0", "-9E+0", 1, .toNearestOrEven)
+ /* ddcot448 */ self.comparetotal64("-8.0", "-90E-1", 1, .toNearestOrEven)
+ /* ddcot449 */ self.comparetotal64("-8", "-.9E+1", 1, .toNearestOrEven)
+ /* ddcot450 */ self.comparetotal64("-8", "-90E-1", 1, .toNearestOrEven)
+ /* ddcot473 */ self.comparetotal64("123.4560000000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* ddcot474 */ self.comparetotal64("123.456000000000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* ddcot475 */ self.comparetotal64("123.45600000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* ddcot476 */ self.comparetotal64("123.4560000000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* ddcot477 */ self.comparetotal64("123.456000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* ddcot478 */ self.comparetotal64("123.45600000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* ddcot479 */ self.comparetotal64("123.4560000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* ddcot480 */ self.comparetotal64("123.456000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* ddcot481 */ self.comparetotal64("123.45600E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* ddcot482 */ self.comparetotal64("123.4560E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* ddcot483 */ self.comparetotal64("123.456E-89", "123.456E-89", 0, .toNearestOrEven)
+ /* ddcot487 */ self.comparetotal64("123.456E+89", "123.4560000000000E+89", 1, .toNearestOrEven)
+ /* ddcot488 */ self.comparetotal64("123.456E-89", "123.456000000000E-89", 1, .toNearestOrEven)
+ /* ddcot489 */ self.comparetotal64("123.456E+89", "123.45600000000E+89", 1, .toNearestOrEven)
+ /* ddcot490 */ self.comparetotal64("123.456E-89", "123.4560000000E-89", 1, .toNearestOrEven)
+ /* ddcot491 */ self.comparetotal64("123.456E+89", "123.456000000E+89", 1, .toNearestOrEven)
+ /* ddcot492 */ self.comparetotal64("123.456E-89", "123.45600000E-89", 1, .toNearestOrEven)
+ /* ddcot493 */ self.comparetotal64("123.456E+89", "123.4560000E+89", 1, .toNearestOrEven)
+ /* ddcot494 */ self.comparetotal64("123.456E-89", "123.456000E-89", 1, .toNearestOrEven)
+ /* ddcot495 */ self.comparetotal64("123.456E+89", "123.45600E+89", 1, .toNearestOrEven)
+ /* ddcot496 */ self.comparetotal64("123.456E-89", "123.4560E-89", 1, .toNearestOrEven)
+ /* ddcot497 */ self.comparetotal64("123.456E+89", "123.456E+89", 0, .toNearestOrEven)
+ /* ddcot498 */ self.comparetotal64("1", "1E-17", 1, .toNearestOrEven)
+ /* ddcot499 */ self.comparetotal64("1", "1E-16", 1, .toNearestOrEven)
+ /* ddcot500 */ self.comparetotal64("1", "1E-15", 1, .toNearestOrEven)
+ /* ddcot501 */ self.comparetotal64("1", "1E-14", 1, .toNearestOrEven)
+ /* ddcot502 */ self.comparetotal64("1", "1E-13", 1, .toNearestOrEven)
+ /* ddcot503 */ self.comparetotal64("1", "1E-12", 1, .toNearestOrEven)
+ /* ddcot504 */ self.comparetotal64("1", "1E-11", 1, .toNearestOrEven)
+ /* ddcot505 */ self.comparetotal64("1", "1E-10", 1, .toNearestOrEven)
+ /* ddcot506 */ self.comparetotal64("1", "1E-9", 1, .toNearestOrEven)
+ /* ddcot507 */ self.comparetotal64("1", "1E-8", 1, .toNearestOrEven)
+ /* ddcot508 */ self.comparetotal64("1", "1E-7", 1, .toNearestOrEven)
+ /* ddcot509 */ self.comparetotal64("1", "1E-6", 1, .toNearestOrEven)
+ /* ddcot510 */ self.comparetotal64("1", "1E-5", 1, .toNearestOrEven)
+ /* ddcot511 */ self.comparetotal64("1", "1E-4", 1, .toNearestOrEven)
+ /* ddcot512 */ self.comparetotal64("1", "1E-3", 1, .toNearestOrEven)
+ /* ddcot513 */ self.comparetotal64("1", "1E-2", 1, .toNearestOrEven)
+ /* ddcot514 */ self.comparetotal64("1", "1E-1", 1, .toNearestOrEven)
+ /* ddcot515 */ self.comparetotal64("1", "1E-0", 0, .toNearestOrEven)
+ /* ddcot516 */ self.comparetotal64("1", "1E+1", -1, .toNearestOrEven)
+ /* ddcot517 */ self.comparetotal64("1", "1E+2", -1, .toNearestOrEven)
+ /* ddcot518 */ self.comparetotal64("1", "1E+3", -1, .toNearestOrEven)
+ /* ddcot519 */ self.comparetotal64("1", "1E+4", -1, .toNearestOrEven)
+ /* ddcot521 */ self.comparetotal64("1", "1E+5", -1, .toNearestOrEven)
+ /* ddcot522 */ self.comparetotal64("1", "1E+6", -1, .toNearestOrEven)
+ /* ddcot523 */ self.comparetotal64("1", "1E+7", -1, .toNearestOrEven)
+ /* ddcot524 */ self.comparetotal64("1", "1E+8", -1, .toNearestOrEven)
+ /* ddcot525 */ self.comparetotal64("1", "1E+9", -1, .toNearestOrEven)
+ /* ddcot526 */ self.comparetotal64("1", "1E+10", -1, .toNearestOrEven)
+ /* ddcot527 */ self.comparetotal64("1", "1E+11", -1, .toNearestOrEven)
+ /* ddcot528 */ self.comparetotal64("1", "1E+12", -1, .toNearestOrEven)
+ /* ddcot529 */ self.comparetotal64("1", "1E+13", -1, .toNearestOrEven)
+ /* ddcot530 */ self.comparetotal64("1", "1E+14", -1, .toNearestOrEven)
+ /* ddcot531 */ self.comparetotal64("1", "1E+15", -1, .toNearestOrEven)
+ /* ddcot532 */ self.comparetotal64("1", "1E+16", -1, .toNearestOrEven)
+ /* ddcot533 */ self.comparetotal64("1", "1E+17", -1, .toNearestOrEven)
+ /* ddcot538 */ self.comparetotal64("1E-17", "1", -1, .toNearestOrEven)
+ /* ddcot539 */ self.comparetotal64("1E-16", "1", -1, .toNearestOrEven)
+ /* ddcot540 */ self.comparetotal64("1E-15", "1", -1, .toNearestOrEven)
+ /* ddcot541 */ self.comparetotal64("1E-14", "1", -1, .toNearestOrEven)
+ /* ddcot542 */ self.comparetotal64("1E-13", "1", -1, .toNearestOrEven)
+ /* ddcot543 */ self.comparetotal64("1E-12", "1", -1, .toNearestOrEven)
+ /* ddcot544 */ self.comparetotal64("1E-11", "1", -1, .toNearestOrEven)
+ /* ddcot545 */ self.comparetotal64("1E-10", "1", -1, .toNearestOrEven)
+ /* ddcot546 */ self.comparetotal64("1E-9", "1", -1, .toNearestOrEven)
+ /* ddcot547 */ self.comparetotal64("1E-8", "1", -1, .toNearestOrEven)
+ /* ddcot548 */ self.comparetotal64("1E-7", "1", -1, .toNearestOrEven)
+ /* ddcot549 */ self.comparetotal64("1E-6", "1", -1, .toNearestOrEven)
+ /* ddcot550 */ self.comparetotal64("1E-5", "1", -1, .toNearestOrEven)
+ /* ddcot551 */ self.comparetotal64("1E-4", "1", -1, .toNearestOrEven)
+ /* ddcot552 */ self.comparetotal64("1E-3", "1", -1, .toNearestOrEven)
+ /* ddcot553 */ self.comparetotal64("1E-2", "1", -1, .toNearestOrEven)
+ /* ddcot554 */ self.comparetotal64("1E-1", "1", -1, .toNearestOrEven)
+ /* ddcot555 */ self.comparetotal64("1E-0", "1", 0, .toNearestOrEven)
+ /* ddcot556 */ self.comparetotal64("1E+1", "1", 1, .toNearestOrEven)
+ /* ddcot557 */ self.comparetotal64("1E+2", "1", 1, .toNearestOrEven)
+ /* ddcot558 */ self.comparetotal64("1E+3", "1", 1, .toNearestOrEven)
+ /* ddcot559 */ self.comparetotal64("1E+4", "1", 1, .toNearestOrEven)
+ /* ddcot561 */ self.comparetotal64("1E+5", "1", 1, .toNearestOrEven)
+ /* ddcot562 */ self.comparetotal64("1E+6", "1", 1, .toNearestOrEven)
+ /* ddcot563 */ self.comparetotal64("1E+7", "1", 1, .toNearestOrEven)
+ /* ddcot564 */ self.comparetotal64("1E+8", "1", 1, .toNearestOrEven)
+ /* ddcot565 */ self.comparetotal64("1E+9", "1", 1, .toNearestOrEven)
+ /* ddcot566 */ self.comparetotal64("1E+10", "1", 1, .toNearestOrEven)
+ /* ddcot567 */ self.comparetotal64("1E+11", "1", 1, .toNearestOrEven)
+ /* ddcot568 */ self.comparetotal64("1E+12", "1", 1, .toNearestOrEven)
+ /* ddcot569 */ self.comparetotal64("1E+13", "1", 1, .toNearestOrEven)
+ /* ddcot570 */ self.comparetotal64("1E+14", "1", 1, .toNearestOrEven)
+ /* ddcot571 */ self.comparetotal64("1E+15", "1", 1, .toNearestOrEven)
+ /* ddcot572 */ self.comparetotal64("1E+16", "1", 1, .toNearestOrEven)
+ /* ddcot573 */ self.comparetotal64("1E+17", "1", 1, .toNearestOrEven)
+ /* ddcot578 */ self.comparetotal64("0.000000987654321", "1E-17", 1, .toNearestOrEven)
+ /* ddcot579 */ self.comparetotal64("0.000000987654321", "1E-16", 1, .toNearestOrEven)
+ /* ddcot580 */ self.comparetotal64("0.000000987654321", "1E-15", 1, .toNearestOrEven)
+ /* ddcot581 */ self.comparetotal64("0.000000987654321", "1E-14", 1, .toNearestOrEven)
+ /* ddcot582 */ self.comparetotal64("0.000000987654321", "1E-13", 1, .toNearestOrEven)
+ /* ddcot583 */ self.comparetotal64("0.000000987654321", "1E-12", 1, .toNearestOrEven)
+ /* ddcot584 */ self.comparetotal64("0.000000987654321", "1E-11", 1, .toNearestOrEven)
+ /* ddcot585 */ self.comparetotal64("0.000000987654321", "1E-10", 1, .toNearestOrEven)
+ /* ddcot586 */ self.comparetotal64("0.000000987654321", "1E-9", 1, .toNearestOrEven)
+ /* ddcot587 */ self.comparetotal64("0.000000987654321", "1E-8", 1, .toNearestOrEven)
+ /* ddcot588 */ self.comparetotal64("0.000000987654321", "1E-7", 1, .toNearestOrEven)
+ /* ddcot589 */ self.comparetotal64("0.000000987654321", "1E-6", -1, .toNearestOrEven)
+ /* ddcot590 */ self.comparetotal64("0.000000987654321", "1E-5", -1, .toNearestOrEven)
+ /* ddcot591 */ self.comparetotal64("0.000000987654321", "1E-4", -1, .toNearestOrEven)
+ /* ddcot592 */ self.comparetotal64("0.000000987654321", "1E-3", -1, .toNearestOrEven)
+ /* ddcot593 */ self.comparetotal64("0.000000987654321", "1E-2", -1, .toNearestOrEven)
+ /* ddcot594 */ self.comparetotal64("0.000000987654321", "1E-1", -1, .toNearestOrEven)
+ /* ddcot595 */ self.comparetotal64("0.000000987654321", "1E-0", -1, .toNearestOrEven)
+ /* ddcot596 */ self.comparetotal64("0.000000987654321", "1E+1", -1, .toNearestOrEven)
+ /* ddcot597 */ self.comparetotal64("0.000000987654321", "1E+2", -1, .toNearestOrEven)
+ /* ddcot598 */ self.comparetotal64("0.000000987654321", "1E+3", -1, .toNearestOrEven)
+ /* ddcot599 */ self.comparetotal64("0.000000987654321", "1E+4", -1, .toNearestOrEven)
+ /* ddcot600 */ self.comparetotal64("12", "12.2345", -1, .toNearestOrEven)
+ /* ddcot601 */ self.comparetotal64("12.0", "12.2345", -1, .toNearestOrEven)
+ /* ddcot602 */ self.comparetotal64("12.00", "12.2345", -1, .toNearestOrEven)
+ /* ddcot603 */ self.comparetotal64("12.000", "12.2345", -1, .toNearestOrEven)
+ /* ddcot604 */ self.comparetotal64("12.0000", "12.2345", -1, .toNearestOrEven)
+ /* ddcot605 */ self.comparetotal64("12.00000", "12.2345", -1, .toNearestOrEven)
+ /* ddcot606 */ self.comparetotal64("12.000000", "12.2345", -1, .toNearestOrEven)
+ /* ddcot607 */ self.comparetotal64("12.0000000", "12.2345", -1, .toNearestOrEven)
+ /* ddcot608 */ self.comparetotal64("12.00000000", "12.2345", -1, .toNearestOrEven)
+ /* ddcot609 */ self.comparetotal64("12.000000000", "12.2345", -1, .toNearestOrEven)
+ /* ddcot610 */ self.comparetotal64("12.1234", "12", 1, .toNearestOrEven)
+ /* ddcot611 */ self.comparetotal64("12.1234", "12.0", 1, .toNearestOrEven)
+ /* ddcot612 */ self.comparetotal64("12.1234", "12.00", 1, .toNearestOrEven)
+ /* ddcot613 */ self.comparetotal64("12.1234", "12.000", 1, .toNearestOrEven)
+ /* ddcot614 */ self.comparetotal64("12.1234", "12.0000", 1, .toNearestOrEven)
+ /* ddcot615 */ self.comparetotal64("12.1234", "12.00000", 1, .toNearestOrEven)
+ /* ddcot616 */ self.comparetotal64("12.1234", "12.000000", 1, .toNearestOrEven)
+ /* ddcot617 */ self.comparetotal64("12.1234", "12.0000000", 1, .toNearestOrEven)
+ /* ddcot618 */ self.comparetotal64("12.1234", "12.00000000", 1, .toNearestOrEven)
+ /* ddcot619 */ self.comparetotal64("12.1234", "12.000000000", 1, .toNearestOrEven)
+ /* ddcot620 */ self.comparetotal64("-12", "-12.2345", 1, .toNearestOrEven)
+ /* ddcot621 */ self.comparetotal64("-12.0", "-12.2345", 1, .toNearestOrEven)
+ /* ddcot622 */ self.comparetotal64("-12.00", "-12.2345", 1, .toNearestOrEven)
+ /* ddcot623 */ self.comparetotal64("-12.000", "-12.2345", 1, .toNearestOrEven)
+ /* ddcot624 */ self.comparetotal64("-12.0000", "-12.2345", 1, .toNearestOrEven)
+ /* ddcot625 */ self.comparetotal64("-12.00000", "-12.2345", 1, .toNearestOrEven)
+ /* ddcot626 */ self.comparetotal64("-12.000000", "-12.2345", 1, .toNearestOrEven)
+ /* ddcot627 */ self.comparetotal64("-12.0000000", "-12.2345", 1, .toNearestOrEven)
+ /* ddcot628 */ self.comparetotal64("-12.00000000", "-12.2345", 1, .toNearestOrEven)
+ /* ddcot629 */ self.comparetotal64("-12.000000000", "-12.2345", 1, .toNearestOrEven)
+ /* ddcot630 */ self.comparetotal64("-12.1234", "-12", -1, .toNearestOrEven)
+ /* ddcot631 */ self.comparetotal64("-12.1234", "-12.0", -1, .toNearestOrEven)
+ /* ddcot632 */ self.comparetotal64("-12.1234", "-12.00", -1, .toNearestOrEven)
+ /* ddcot633 */ self.comparetotal64("-12.1234", "-12.000", -1, .toNearestOrEven)
+ /* ddcot634 */ self.comparetotal64("-12.1234", "-12.0000", -1, .toNearestOrEven)
+ /* ddcot635 */ self.comparetotal64("-12.1234", "-12.00000", -1, .toNearestOrEven)
+ /* ddcot636 */ self.comparetotal64("-12.1234", "-12.000000", -1, .toNearestOrEven)
+ /* ddcot637 */ self.comparetotal64("-12.1234", "-12.0000000", -1, .toNearestOrEven)
+ /* ddcot638 */ self.comparetotal64("-12.1234", "-12.00000000", -1, .toNearestOrEven)
+ /* ddcot639 */ self.comparetotal64("-12.1234", "-12.000000000", -1, .toNearestOrEven)
+ /* ddcot640 */ self.comparetotal64("0", "0", 0, .toNearestOrEven)
+ /* ddcot641 */ self.comparetotal64("0", "-0", 1, .toNearestOrEven)
+ /* ddcot642 */ self.comparetotal64("0", "-0.0", 1, .toNearestOrEven)
+ /* ddcot643 */ self.comparetotal64("0", "0.0", 1, .toNearestOrEven)
+ /* ddcot644 */ self.comparetotal64("-0", "0", -1, .toNearestOrEven)
+ /* ddcot645 */ self.comparetotal64("-0", "-0", 0, .toNearestOrEven)
+ /* ddcot646 */ self.comparetotal64("-0", "-0.0", -1, .toNearestOrEven)
+ /* ddcot647 */ self.comparetotal64("-0", "0.0", -1, .toNearestOrEven)
+ /* ddcot648 */ self.comparetotal64("0.0", "0", -1, .toNearestOrEven)
+ /* ddcot649 */ self.comparetotal64("0.0", "-0", 1, .toNearestOrEven)
+ /* ddcot650 */ self.comparetotal64("0.0", "-0.0", 1, .toNearestOrEven)
+ /* ddcot651 */ self.comparetotal64("0.0", "0.0", 0, .toNearestOrEven)
+ /* ddcot652 */ self.comparetotal64("-0.0", "0", -1, .toNearestOrEven)
+ /* ddcot653 */ self.comparetotal64("-0.0", "-0", 1, .toNearestOrEven)
+ /* ddcot654 */ self.comparetotal64("-0.0", "-0.0", 0, .toNearestOrEven)
+ /* ddcot655 */ self.comparetotal64("-0.0", "0.0", -1, .toNearestOrEven)
+ /* ddcot656 */ self.comparetotal64("-0E1", "0.0", -1, .toNearestOrEven)
+ /* ddcot657 */ self.comparetotal64("-0E2", "0.0", -1, .toNearestOrEven)
+ /* ddcot658 */ self.comparetotal64("0E1", "0.0", 1, .toNearestOrEven)
+ /* ddcot659 */ self.comparetotal64("0E2", "0.0", 1, .toNearestOrEven)
+ /* ddcot660 */ self.comparetotal64("-0E1", "0", -1, .toNearestOrEven)
+ /* ddcot661 */ self.comparetotal64("-0E2", "0", -1, .toNearestOrEven)
+ /* ddcot662 */ self.comparetotal64("0E1", "0", 1, .toNearestOrEven)
+ /* ddcot663 */ self.comparetotal64("0E2", "0", 1, .toNearestOrEven)
+ /* ddcot664 */ self.comparetotal64("-0E1", "-0E1", 0, .toNearestOrEven)
+ /* ddcot665 */ self.comparetotal64("-0E2", "-0E1", -1, .toNearestOrEven)
+ /* ddcot666 */ self.comparetotal64("0E1", "-0E1", 1, .toNearestOrEven)
+ /* ddcot667 */ self.comparetotal64("0E2", "-0E1", 1, .toNearestOrEven)
+ /* ddcot668 */ self.comparetotal64("-0E1", "-0E2", 1, .toNearestOrEven)
+ /* ddcot669 */ self.comparetotal64("-0E2", "-0E2", 0, .toNearestOrEven)
+ /* ddcot670 */ self.comparetotal64("0E1", "-0E2", 1, .toNearestOrEven)
+ /* ddcot671 */ self.comparetotal64("0E2", "-0E2", 1, .toNearestOrEven)
+ /* ddcot672 */ self.comparetotal64("-0E1", "0E1", -1, .toNearestOrEven)
+ /* ddcot673 */ self.comparetotal64("-0E2", "0E1", -1, .toNearestOrEven)
+ /* ddcot674 */ self.comparetotal64("0E1", "0E1", 0, .toNearestOrEven)
+ /* ddcot675 */ self.comparetotal64("0E2", "0E1", 1, .toNearestOrEven)
+ /* ddcot676 */ self.comparetotal64("-0E1", "0E2", -1, .toNearestOrEven)
+ /* ddcot677 */ self.comparetotal64("-0E2", "0E2", -1, .toNearestOrEven)
+ /* ddcot678 */ self.comparetotal64("0E1", "0E2", -1, .toNearestOrEven)
+ /* ddcot679 */ self.comparetotal64("0E2", "0E2", 0, .toNearestOrEven)
+ /* ddcot680 */ self.comparetotal64("12", "12", 0, .toNearestOrEven)
+ /* ddcot681 */ self.comparetotal64("12", "12.0", 1, .toNearestOrEven)
+ /* ddcot682 */ self.comparetotal64("12", "12.00", 1, .toNearestOrEven)
+ /* ddcot683 */ self.comparetotal64("12", "12.000", 1, .toNearestOrEven)
+ /* ddcot684 */ self.comparetotal64("12", "12.0000", 1, .toNearestOrEven)
+ /* ddcot685 */ self.comparetotal64("12", "12.00000", 1, .toNearestOrEven)
+ /* ddcot686 */ self.comparetotal64("12", "12.000000", 1, .toNearestOrEven)
+ /* ddcot687 */ self.comparetotal64("12", "12.0000000", 1, .toNearestOrEven)
+ /* ddcot688 */ self.comparetotal64("12", "12.00000000", 1, .toNearestOrEven)
+ /* ddcot689 */ self.comparetotal64("12", "12.000000000", 1, .toNearestOrEven)
+ /* ddcot690 */ self.comparetotal64("12", "12", 0, .toNearestOrEven)
+ /* ddcot691 */ self.comparetotal64("12.0", "12", -1, .toNearestOrEven)
+ /* ddcot692 */ self.comparetotal64("12.00", "12", -1, .toNearestOrEven)
+ /* ddcot693 */ self.comparetotal64("12.000", "12", -1, .toNearestOrEven)
+ /* ddcot694 */ self.comparetotal64("12.0000", "12", -1, .toNearestOrEven)
+ /* ddcot695 */ self.comparetotal64("12.00000", "12", -1, .toNearestOrEven)
+ /* ddcot696 */ self.comparetotal64("12.000000", "12", -1, .toNearestOrEven)
+ /* ddcot697 */ self.comparetotal64("12.0000000", "12", -1, .toNearestOrEven)
+ /* ddcot698 */ self.comparetotal64("12.00000000", "12", -1, .toNearestOrEven)
+ /* ddcot699 */ self.comparetotal64("12.000000000", "12", -1, .toNearestOrEven)
+ /* ddcot701 */ self.comparetotal64("12345678000", "1", 1, .toNearestOrEven)
+ /* ddcot702 */ self.comparetotal64("1", "12345678000", -1, .toNearestOrEven)
+ /* ddcot703 */ self.comparetotal64("1234567800", "1", 1, .toNearestOrEven)
+ /* ddcot704 */ self.comparetotal64("1", "1234567800", -1, .toNearestOrEven)
+ /* ddcot705 */ self.comparetotal64("1234567890", "1", 1, .toNearestOrEven)
+ /* ddcot706 */ self.comparetotal64("1", "1234567890", -1, .toNearestOrEven)
+ /* ddcot707 */ self.comparetotal64("1234567891", "1", 1, .toNearestOrEven)
+ /* ddcot708 */ self.comparetotal64("1", "1234567891", -1, .toNearestOrEven)
+ /* ddcot709 */ self.comparetotal64("12345678901", "1", 1, .toNearestOrEven)
+ /* ddcot710 */ self.comparetotal64("1", "12345678901", -1, .toNearestOrEven)
+ /* ddcot711 */ self.comparetotal64("1234567896", "1", 1, .toNearestOrEven)
+ /* ddcot712 */ self.comparetotal64("1", "1234567896", -1, .toNearestOrEven)
+ /* ddcot713 */ self.comparetotal64("-1234567891", "1", -1, .toNearestOrEven)
+ /* ddcot714 */ self.comparetotal64("1", "-1234567891", 1, .toNearestOrEven)
+ /* ddcot715 */ self.comparetotal64("-12345678901", "1", -1, .toNearestOrEven)
+ /* ddcot716 */ self.comparetotal64("1", "-12345678901", 1, .toNearestOrEven)
+ /* ddcot717 */ self.comparetotal64("-1234567896", "1", -1, .toNearestOrEven)
+ /* ddcot718 */ self.comparetotal64("1", "-1234567896", 1, .toNearestOrEven)
+ /* ddcot740 */ self.comparetotal64("1", "0.9999999", 1, .toNearestOrEven)
+ /* ddcot741 */ self.comparetotal64("1", "0.999999", 1, .toNearestOrEven)
+ /* ddcot742 */ self.comparetotal64("1", "0.99999", 1, .toNearestOrEven)
+ /* ddcot743 */ self.comparetotal64("1", "1.0000", 1, .toNearestOrEven)
+ /* ddcot744 */ self.comparetotal64("1", "1.00001", -1, .toNearestOrEven)
+ /* ddcot745 */ self.comparetotal64("1", "1.000001", -1, .toNearestOrEven)
+ /* ddcot746 */ self.comparetotal64("1", "1.0000001", -1, .toNearestOrEven)
+ /* ddcot750 */ self.comparetotal64("0.9999999", "1", -1, .toNearestOrEven)
+ /* ddcot751 */ self.comparetotal64("0.999999", "1", -1, .toNearestOrEven)
+ /* ddcot752 */ self.comparetotal64("0.99999", "1", -1, .toNearestOrEven)
+ /* ddcot753 */ self.comparetotal64("1.0000", "1", -1, .toNearestOrEven)
+ /* ddcot754 */ self.comparetotal64("1.00001", "1", 1, .toNearestOrEven)
+ /* ddcot755 */ self.comparetotal64("1.000001", "1", 1, .toNearestOrEven)
+ /* ddcot756 */ self.comparetotal64("1.0000001", "1", 1, .toNearestOrEven)
+ /* ddcot780 */ self.comparetotal64("Inf", "-Inf", 1, .toNearestOrEven)
+ /* ddcot781 */ self.comparetotal64("Inf", "-1000", 1, .toNearestOrEven)
+ /* ddcot782 */ self.comparetotal64("Inf", "-1", 1, .toNearestOrEven)
+ /* ddcot783 */ self.comparetotal64("Inf", "-0", 1, .toNearestOrEven)
+ /* ddcot784 */ self.comparetotal64("Inf", "0", 1, .toNearestOrEven)
+ /* ddcot785 */ self.comparetotal64("Inf", "1", 1, .toNearestOrEven)
+ /* ddcot786 */ self.comparetotal64("Inf", "1000", 1, .toNearestOrEven)
+ /* ddcot787 */ self.comparetotal64("Inf", "Inf", 0, .toNearestOrEven)
+ /* ddcot788 */ self.comparetotal64("-1000", "Inf", -1, .toNearestOrEven)
+ /* ddcot789 */ self.comparetotal64("-Inf", "Inf", -1, .toNearestOrEven)
+ /* ddcot790 */ self.comparetotal64("-1", "Inf", -1, .toNearestOrEven)
+ /* ddcot791 */ self.comparetotal64("-0", "Inf", -1, .toNearestOrEven)
+ /* ddcot792 */ self.comparetotal64("0", "Inf", -1, .toNearestOrEven)
+ /* ddcot793 */ self.comparetotal64("1", "Inf", -1, .toNearestOrEven)
+ /* ddcot794 */ self.comparetotal64("1000", "Inf", -1, .toNearestOrEven)
+ /* ddcot795 */ self.comparetotal64("Inf", "Inf", 0, .toNearestOrEven)
+ /* ddcot800 */ self.comparetotal64("-Inf", "-Inf", 0, .toNearestOrEven)
+ /* ddcot801 */ self.comparetotal64("-Inf", "-1000", -1, .toNearestOrEven)
+ /* ddcot802 */ self.comparetotal64("-Inf", "-1", -1, .toNearestOrEven)
+ /* ddcot803 */ self.comparetotal64("-Inf", "-0", -1, .toNearestOrEven)
+ /* ddcot804 */ self.comparetotal64("-Inf", "0", -1, .toNearestOrEven)
+ /* ddcot805 */ self.comparetotal64("-Inf", "1", -1, .toNearestOrEven)
+ /* ddcot806 */ self.comparetotal64("-Inf", "1000", -1, .toNearestOrEven)
+ /* ddcot807 */ self.comparetotal64("-Inf", "Inf", -1, .toNearestOrEven)
+ /* ddcot808 */ self.comparetotal64("-Inf", "-Inf", 0, .toNearestOrEven)
+ /* ddcot809 */ self.comparetotal64("-1000", "-Inf", 1, .toNearestOrEven)
+ /* ddcot810 */ self.comparetotal64("-1", "-Inf", 1, .toNearestOrEven)
+ /* ddcot811 */ self.comparetotal64("-0", "-Inf", 1, .toNearestOrEven)
+ /* ddcot812 */ self.comparetotal64("0", "-Inf", 1, .toNearestOrEven)
+ /* ddcot813 */ self.comparetotal64("1", "-Inf", 1, .toNearestOrEven)
+ /* ddcot814 */ self.comparetotal64("1000", "-Inf", 1, .toNearestOrEven)
+ /* ddcot815 */ self.comparetotal64("Inf", "-Inf", 1, .toNearestOrEven)
+ /* ddcot821 */ self.comparetotal64("NaN", "-Inf", 1, .toNearestOrEven)
+ /* ddcot822 */ self.comparetotal64("NaN", "-1000", 1, .toNearestOrEven)
+ /* ddcot823 */ self.comparetotal64("NaN", "-1", 1, .toNearestOrEven)
+ /* ddcot824 */ self.comparetotal64("NaN", "-0", 1, .toNearestOrEven)
+ /* ddcot825 */ self.comparetotal64("NaN", "0", 1, .toNearestOrEven)
+ /* ddcot826 */ self.comparetotal64("NaN", "1", 1, .toNearestOrEven)
+ /* ddcot827 */ self.comparetotal64("NaN", "1000", 1, .toNearestOrEven)
+ /* ddcot828 */ self.comparetotal64("NaN", "Inf", 1, .toNearestOrEven)
+ /* ddcot829 */ self.comparetotal64("NaN", "NaN", 0, .toNearestOrEven)
+ /* ddcot830 */ self.comparetotal64("-Inf", "NaN", -1, .toNearestOrEven)
+ /* ddcot831 */ self.comparetotal64("-1000", "NaN", -1, .toNearestOrEven)
+ /* ddcot832 */ self.comparetotal64("-1", "NaN", -1, .toNearestOrEven)
+ /* ddcot833 */ self.comparetotal64("-0", "NaN", -1, .toNearestOrEven)
+ /* ddcot834 */ self.comparetotal64("0", "NaN", -1, .toNearestOrEven)
+ /* ddcot835 */ self.comparetotal64("1", "NaN", -1, .toNearestOrEven)
+ /* ddcot836 */ self.comparetotal64("1000", "NaN", -1, .toNearestOrEven)
+ /* ddcot837 */ self.comparetotal64("Inf", "NaN", -1, .toNearestOrEven)
+ /* ddcot838 */ self.comparetotal64("-NaN", "-NaN", 0, .toNearestOrEven)
+ /* ddcot839 */ self.comparetotal64("+NaN", "-NaN", 1, .toNearestOrEven)
+ /* ddcot840 */ self.comparetotal64("-NaN", "+NaN", -1, .toNearestOrEven)
+ /* ddcot841 */ self.comparetotal64("sNaN", "-sNaN", 1, .toNearestOrEven)
+ /* ddcot842 */ self.comparetotal64("sNaN", "-NaN", 1, .toNearestOrEven)
+ /* ddcot843 */ self.comparetotal64("sNaN", "-Inf", 1, .toNearestOrEven)
+ /* ddcot844 */ self.comparetotal64("sNaN", "-1000", 1, .toNearestOrEven)
+ /* ddcot845 */ self.comparetotal64("sNaN", "-1", 1, .toNearestOrEven)
+ /* ddcot846 */ self.comparetotal64("sNaN", "-0", 1, .toNearestOrEven)
+ /* ddcot847 */ self.comparetotal64("sNaN", "0", 1, .toNearestOrEven)
+ /* ddcot848 */ self.comparetotal64("sNaN", "1", 1, .toNearestOrEven)
+ /* ddcot849 */ self.comparetotal64("sNaN", "1000", 1, .toNearestOrEven)
+ /* ddcot850 */ self.comparetotal64("sNaN", "NaN", -1, .toNearestOrEven)
+ /* ddcot851 */ self.comparetotal64("sNaN", "sNaN", 0, .toNearestOrEven)
+ /* ddcot852 */ self.comparetotal64("-sNaN", "sNaN", -1, .toNearestOrEven)
+ /* ddcot853 */ self.comparetotal64("-NaN", "sNaN", -1, .toNearestOrEven)
+ /* ddcot854 */ self.comparetotal64("-Inf", "sNaN", -1, .toNearestOrEven)
+ /* ddcot855 */ self.comparetotal64("-1000", "sNaN", -1, .toNearestOrEven)
+ /* ddcot856 */ self.comparetotal64("-1", "sNaN", -1, .toNearestOrEven)
+ /* ddcot857 */ self.comparetotal64("-0", "sNaN", -1, .toNearestOrEven)
+ /* ddcot858 */ self.comparetotal64("0", "sNaN", -1, .toNearestOrEven)
+ /* ddcot859 */ self.comparetotal64("1", "sNaN", -1, .toNearestOrEven)
+ /* ddcot860 */ self.comparetotal64("1000", "sNaN", -1, .toNearestOrEven)
+ /* ddcot861 */ self.comparetotal64("Inf", "sNaN", -1, .toNearestOrEven)
+ /* ddcot862 */ self.comparetotal64("NaN", "sNaN", 1, .toNearestOrEven)
+ /* ddcot863 */ self.comparetotal64("sNaN", "sNaN", 0, .toNearestOrEven)
+ /* ddcot871 */ self.comparetotal64("-sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* ddcot872 */ self.comparetotal64("-sNaN", "-NaN", 1, .toNearestOrEven)
+ /* ddcot873 */ self.comparetotal64("-sNaN", "-Inf", -1, .toNearestOrEven)
+ /* ddcot874 */ self.comparetotal64("-sNaN", "-1000", -1, .toNearestOrEven)
+ /* ddcot875 */ self.comparetotal64("-sNaN", "-1", -1, .toNearestOrEven)
+ /* ddcot876 */ self.comparetotal64("-sNaN", "-0", -1, .toNearestOrEven)
+ /* ddcot877 */ self.comparetotal64("-sNaN", "0", -1, .toNearestOrEven)
+ /* ddcot878 */ self.comparetotal64("-sNaN", "1", -1, .toNearestOrEven)
+ /* ddcot879 */ self.comparetotal64("-sNaN", "1000", -1, .toNearestOrEven)
+ /* ddcot880 */ self.comparetotal64("-sNaN", "NaN", -1, .toNearestOrEven)
+ /* ddcot881 */ self.comparetotal64("-sNaN", "sNaN", -1, .toNearestOrEven)
+ /* ddcot882 */ self.comparetotal64("-sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* ddcot883 */ self.comparetotal64("-NaN", "-sNaN", -1, .toNearestOrEven)
+ /* ddcot884 */ self.comparetotal64("-Inf", "-sNaN", 1, .toNearestOrEven)
+ /* ddcot885 */ self.comparetotal64("-1000", "-sNaN", 1, .toNearestOrEven)
+ /* ddcot886 */ self.comparetotal64("-1", "-sNaN", 1, .toNearestOrEven)
+ /* ddcot887 */ self.comparetotal64("-0", "-sNaN", 1, .toNearestOrEven)
+ /* ddcot888 */ self.comparetotal64("0", "-sNaN", 1, .toNearestOrEven)
+ /* ddcot889 */ self.comparetotal64("1", "-sNaN", 1, .toNearestOrEven)
+ /* ddcot890 */ self.comparetotal64("1000", "-sNaN", 1, .toNearestOrEven)
+ /* ddcot891 */ self.comparetotal64("Inf", "-sNaN", 1, .toNearestOrEven)
+ /* ddcot892 */ self.comparetotal64("NaN", "-sNaN", 1, .toNearestOrEven)
+ /* ddcot893 */ self.comparetotal64("sNaN", "-sNaN", 1, .toNearestOrEven)
+ /* ddcot960 */ self.comparetotal64("NaN(0x9)", "-Inf", 1, .toNearestOrEven)
+ /* ddcot961 */ self.comparetotal64("NaN(0x8)", "999", 1, .toNearestOrEven)
+ /* ddcot962 */ self.comparetotal64("NaN(0x4d)", "Inf", 1, .toNearestOrEven)
+ /* ddcot963 */ self.comparetotal64("-NaN(0x43)", "NaN(0x5)", -1, .toNearestOrEven)
+ /* ddcot964 */ self.comparetotal64("-Inf", "-NaN(0x4)", 1, .toNearestOrEven)
+ /* ddcot965 */ self.comparetotal64("-999", "-NaN(0x21)", 1, .toNearestOrEven)
+ /* ddcot966 */ self.comparetotal64("Inf", "NaN(0x2)", -1, .toNearestOrEven)
+ /* ddcot970 */ self.comparetotal64("-NaN(0x29)", "-NaN(0x2a)", 1, .toNearestOrEven)
+ /* ddcot971 */ self.comparetotal64("+NaN(0x29)", "-NaN(0x2a)", 1, .toNearestOrEven)
+ /* ddcot972 */ self.comparetotal64("-NaN(0x29)", "+NaN(0x2a)", -1, .toNearestOrEven)
+ /* ddcot973 */ self.comparetotal64("+NaN(0x29)", "+NaN(0x2a)", -1, .toNearestOrEven)
+ /* ddcot974 */ self.comparetotal64("-NaN(0x2a)", "-NaN(0x1)", -1, .toNearestOrEven)
+ /* ddcot975 */ self.comparetotal64("+NaN(0x2a)", "-NaN(0x1)", 1, .toNearestOrEven)
+ /* ddcot976 */ self.comparetotal64("-NaN(0x2a)", "+NaN(0x1)", -1, .toNearestOrEven)
+ /* ddcot977 */ self.comparetotal64("+NaN(0x2a)", "+NaN(0x1)", 1, .toNearestOrEven)
+ /* ddcot980 */ self.comparetotal64("-sNaN(0x303)", "-sNaN(0x304)", 1, .toNearestOrEven)
+ /* ddcot981 */ self.comparetotal64("+sNaN(0x303)", "-sNaN(0x304)", 1, .toNearestOrEven)
+ /* ddcot982 */ self.comparetotal64("-sNaN(0x303)", "+sNaN(0x304)", -1, .toNearestOrEven)
+ /* ddcot983 */ self.comparetotal64("+sNaN(0x303)", "+sNaN(0x304)", -1, .toNearestOrEven)
+ /* ddcot984 */ self.comparetotal64("-sNaN(0x304)", "-sNaN(0x303)", -1, .toNearestOrEven)
+ /* ddcot985 */ self.comparetotal64("+sNaN(0x304)", "-sNaN(0x303)", 1, .toNearestOrEven)
+ /* ddcot986 */ self.comparetotal64("-sNaN(0x304)", "+sNaN(0x303)", -1, .toNearestOrEven)
+ /* ddcot987 */ self.comparetotal64("+sNaN(0x304)", "+sNaN(0x303)", 1, .toNearestOrEven)
+ /* ddcot991 */ self.comparetotal64("-sNaN(0x63)", "-Inf", -1, .toNearestOrEven)
+ /* ddcot992 */ self.comparetotal64("sNaN(0x62)", "-11", 1, .toNearestOrEven)
+ /* ddcot993 */ self.comparetotal64("sNaN(0x61)", "NaN", -1, .toNearestOrEven)
+ /* ddcot994 */ self.comparetotal64("sNaN(0x10)", "sNaN(0x5e)", -1, .toNearestOrEven)
+ /* ddcot995 */ self.comparetotal64("NaN(0x55)", "sNaN(0x53)", 1, .toNearestOrEven)
+ /* ddcot996 */ self.comparetotal64("-Inf", "sNaN(0x5c)", -1, .toNearestOrEven)
+ /* ddcot997 */ self.comparetotal64("088", "sNaN(0x51)", -1, .toNearestOrEven)
+ /* ddcot998 */ self.comparetotal64("Inf", "sNaN(0x5a)", -1, .toNearestOrEven)
+ /* ddcot999 */ self.comparetotal64("NaN", "-sNaN(0x59)", 1, .toNearestOrEven)
+ }
+
+ private func comparetotal64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ expected: Int,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+
+ let result = self.totalOrder(arg0, arg1)
+ self.assertInt(result, expected, file, line)
+ }
+
+ func test_comparetotal128() {
+ /* dqcot001 */ self.comparetotal128("-2", "-2", 0, .toNearestOrEven)
+ /* dqcot002 */ self.comparetotal128("-2", "-1", -1, .toNearestOrEven)
+ /* dqcot003 */ self.comparetotal128("-2", "0", -1, .toNearestOrEven)
+ /* dqcot004 */ self.comparetotal128("-2", "1", -1, .toNearestOrEven)
+ /* dqcot005 */ self.comparetotal128("-2", "2", -1, .toNearestOrEven)
+ /* dqcot006 */ self.comparetotal128("-1", "-2", 1, .toNearestOrEven)
+ /* dqcot007 */ self.comparetotal128("-1", "-1", 0, .toNearestOrEven)
+ /* dqcot008 */ self.comparetotal128("-1", "0", -1, .toNearestOrEven)
+ /* dqcot009 */ self.comparetotal128("-1", "1", -1, .toNearestOrEven)
+ /* dqcot010 */ self.comparetotal128("-1", "2", -1, .toNearestOrEven)
+ /* dqcot011 */ self.comparetotal128("0", "-2", 1, .toNearestOrEven)
+ /* dqcot012 */ self.comparetotal128("0", "-1", 1, .toNearestOrEven)
+ /* dqcot013 */ self.comparetotal128("0", "0", 0, .toNearestOrEven)
+ /* dqcot014 */ self.comparetotal128("0", "1", -1, .toNearestOrEven)
+ /* dqcot015 */ self.comparetotal128("0", "2", -1, .toNearestOrEven)
+ /* dqcot016 */ self.comparetotal128("1", "-2", 1, .toNearestOrEven)
+ /* dqcot017 */ self.comparetotal128("1", "-1", 1, .toNearestOrEven)
+ /* dqcot018 */ self.comparetotal128("1", "0", 1, .toNearestOrEven)
+ /* dqcot019 */ self.comparetotal128("1", "1", 0, .toNearestOrEven)
+ /* dqcot020 */ self.comparetotal128("1", "2", -1, .toNearestOrEven)
+ /* dqcot021 */ self.comparetotal128("2", "-2", 1, .toNearestOrEven)
+ /* dqcot022 */ self.comparetotal128("2", "-1", 1, .toNearestOrEven)
+ /* dqcot023 */ self.comparetotal128("2", "0", 1, .toNearestOrEven)
+ /* dqcot025 */ self.comparetotal128("2", "1", 1, .toNearestOrEven)
+ /* dqcot026 */ self.comparetotal128("2", "2", 0, .toNearestOrEven)
+ /* dqcot031 */ self.comparetotal128("-20", "-20", 0, .toNearestOrEven)
+ /* dqcot032 */ self.comparetotal128("-20", "-10", -1, .toNearestOrEven)
+ /* dqcot033 */ self.comparetotal128("-20", "00", -1, .toNearestOrEven)
+ /* dqcot034 */ self.comparetotal128("-20", "10", -1, .toNearestOrEven)
+ /* dqcot035 */ self.comparetotal128("-20", "20", -1, .toNearestOrEven)
+ /* dqcot036 */ self.comparetotal128("-10", "-20", 1, .toNearestOrEven)
+ /* dqcot037 */ self.comparetotal128("-10", "-10", 0, .toNearestOrEven)
+ /* dqcot038 */ self.comparetotal128("-10", "00", -1, .toNearestOrEven)
+ /* dqcot039 */ self.comparetotal128("-10", "10", -1, .toNearestOrEven)
+ /* dqcot040 */ self.comparetotal128("-10", "20", -1, .toNearestOrEven)
+ /* dqcot041 */ self.comparetotal128("00", "-20", 1, .toNearestOrEven)
+ /* dqcot042 */ self.comparetotal128("00", "-10", 1, .toNearestOrEven)
+ /* dqcot043 */ self.comparetotal128("00", "00", 0, .toNearestOrEven)
+ /* dqcot044 */ self.comparetotal128("00", "10", -1, .toNearestOrEven)
+ /* dqcot045 */ self.comparetotal128("00", "20", -1, .toNearestOrEven)
+ /* dqcot046 */ self.comparetotal128("10", "-20", 1, .toNearestOrEven)
+ /* dqcot047 */ self.comparetotal128("10", "-10", 1, .toNearestOrEven)
+ /* dqcot048 */ self.comparetotal128("10", "00", 1, .toNearestOrEven)
+ /* dqcot049 */ self.comparetotal128("10", "10", 0, .toNearestOrEven)
+ /* dqcot050 */ self.comparetotal128("10", "20", -1, .toNearestOrEven)
+ /* dqcot051 */ self.comparetotal128("20", "-20", 1, .toNearestOrEven)
+ /* dqcot052 */ self.comparetotal128("20", "-10", 1, .toNearestOrEven)
+ /* dqcot053 */ self.comparetotal128("20", "00", 1, .toNearestOrEven)
+ /* dqcot055 */ self.comparetotal128("20", "10", 1, .toNearestOrEven)
+ /* dqcot056 */ self.comparetotal128("20", "20", 0, .toNearestOrEven)
+ /* dqcot061 */ self.comparetotal128("-2.0", "-2.0", 0, .toNearestOrEven)
+ /* dqcot062 */ self.comparetotal128("-2.0", "-1.0", -1, .toNearestOrEven)
+ /* dqcot063 */ self.comparetotal128("-2.0", "0.0", -1, .toNearestOrEven)
+ /* dqcot064 */ self.comparetotal128("-2.0", "1.0", -1, .toNearestOrEven)
+ /* dqcot065 */ self.comparetotal128("-2.0", "2.0", -1, .toNearestOrEven)
+ /* dqcot066 */ self.comparetotal128("-1.0", "-2.0", 1, .toNearestOrEven)
+ /* dqcot067 */ self.comparetotal128("-1.0", "-1.0", 0, .toNearestOrEven)
+ /* dqcot068 */ self.comparetotal128("-1.0", "0.0", -1, .toNearestOrEven)
+ /* dqcot069 */ self.comparetotal128("-1.0", "1.0", -1, .toNearestOrEven)
+ /* dqcot070 */ self.comparetotal128("-1.0", "2.0", -1, .toNearestOrEven)
+ /* dqcot071 */ self.comparetotal128("0.0", "-2.0", 1, .toNearestOrEven)
+ /* dqcot072 */ self.comparetotal128("0.0", "-1.0", 1, .toNearestOrEven)
+ /* dqcot073 */ self.comparetotal128("0.0", "0.0", 0, .toNearestOrEven)
+ /* dqcot074 */ self.comparetotal128("0.0", "1.0", -1, .toNearestOrEven)
+ /* dqcot075 */ self.comparetotal128("0.0", "2.0", -1, .toNearestOrEven)
+ /* dqcot076 */ self.comparetotal128("1.0", "-2.0", 1, .toNearestOrEven)
+ /* dqcot077 */ self.comparetotal128("1.0", "-1.0", 1, .toNearestOrEven)
+ /* dqcot078 */ self.comparetotal128("1.0", "0.0", 1, .toNearestOrEven)
+ /* dqcot079 */ self.comparetotal128("1.0", "1.0", 0, .toNearestOrEven)
+ /* dqcot080 */ self.comparetotal128("1.0", "2.0", -1, .toNearestOrEven)
+ /* dqcot081 */ self.comparetotal128("2.0", "-2.0", 1, .toNearestOrEven)
+ /* dqcot082 */ self.comparetotal128("2.0", "-1.0", 1, .toNearestOrEven)
+ /* dqcot083 */ self.comparetotal128("2.0", "0.0", 1, .toNearestOrEven)
+ /* dqcot085 */ self.comparetotal128("2.0", "1.0", 1, .toNearestOrEven)
+ /* dqcot086 */ self.comparetotal128("2.0", "2.0", 0, .toNearestOrEven)
+ /* dqcot090 */ self.comparetotal128("9.99999999999999999999999999999E+6144", "9.99999999999999999999999999999E+6144", 0, .toNearestOrEven)
+ /* dqcot091 */ self.comparetotal128("-9.99999999999999999999999999999E+6144", "9.99999999999999999999999999999E+6144", -1, .toNearestOrEven)
+ /* dqcot092 */ self.comparetotal128("9.99999999999999999999999999999E+6144", "-9.99999999999999999999999999999E+6144", 1, .toNearestOrEven)
+ /* dqcot093 */ self.comparetotal128("-9.99999999999999999999999999999E+6144", "-9.99999999999999999999999999999E+6144", 0, .toNearestOrEven)
+ /* dqcot100 */ self.comparetotal128("7.0", "7.0", 0, .toNearestOrEven)
+ /* dqcot101 */ self.comparetotal128("7.0", "7", -1, .toNearestOrEven)
+ /* dqcot102 */ self.comparetotal128("7", "7.0", 1, .toNearestOrEven)
+ /* dqcot103 */ self.comparetotal128("7E+0", "7.0", 1, .toNearestOrEven)
+ /* dqcot104 */ self.comparetotal128("70E-1", "7.0", 0, .toNearestOrEven)
+ /* dqcot105 */ self.comparetotal128("0.7E+1", "7", 0, .toNearestOrEven)
+ /* dqcot106 */ self.comparetotal128("70E-1", "7", -1, .toNearestOrEven)
+ /* dqcot107 */ self.comparetotal128("7.0", "7E+0", -1, .toNearestOrEven)
+ /* dqcot108 */ self.comparetotal128("7.0", "70E-1", 0, .toNearestOrEven)
+ /* dqcot109 */ self.comparetotal128("7", "0.7E+1", 0, .toNearestOrEven)
+ /* dqcot110 */ self.comparetotal128("7", "70E-1", 1, .toNearestOrEven)
+ /* dqcot1110 */ self.comparetotal128("0E-6143", "0", -1, .toNearestOrEven)
+ /* dqcot1111 */ self.comparetotal128("0E-6143", "-0", 1, .toNearestOrEven)
+ /* dqcot1112 */ self.comparetotal128("-0E-6143", "0", -1, .toNearestOrEven)
+ /* dqcot1113 */ self.comparetotal128("-0E-6143", "-0", 1, .toNearestOrEven)
+ /* dqcot1114 */ self.comparetotal128("0E-6143", "0E+6144", -1, .toNearestOrEven)
+ /* dqcot1115 */ self.comparetotal128("0E-6143", "-0E+6144", 1, .toNearestOrEven)
+ /* dqcot1116 */ self.comparetotal128("-0E-6143", "0E+6144", -1, .toNearestOrEven)
+ /* dqcot1117 */ self.comparetotal128("-0E-6143", "-0E+6144", 1, .toNearestOrEven)
+ /* dqcot1118 */ self.comparetotal128("0", "0E+6144", -1, .toNearestOrEven)
+ /* dqcot1119 */ self.comparetotal128("0", "-0E+6144", 1, .toNearestOrEven)
+ /* dqcot1120 */ self.comparetotal128("-0", "0E+6144", -1, .toNearestOrEven)
+ /* dqcot1121 */ self.comparetotal128("-0", "-0E+6144", 1, .toNearestOrEven)
+ /* dqcot1130 */ self.comparetotal128("0E+6144", "0", 1, .toNearestOrEven)
+ /* dqcot1131 */ self.comparetotal128("0E+6144", "-0", 1, .toNearestOrEven)
+ /* dqcot1132 */ self.comparetotal128("-0E+6144", "0", -1, .toNearestOrEven)
+ /* dqcot1133 */ self.comparetotal128("-0E+6144", "-0", -1, .toNearestOrEven)
+ /* dqcot1134 */ self.comparetotal128("0E+6144", "0E-6143", 1, .toNearestOrEven)
+ /* dqcot1135 */ self.comparetotal128("0E+6144", "-0E-6143", 1, .toNearestOrEven)
+ /* dqcot1136 */ self.comparetotal128("-0E+6144", "0E-6143", -1, .toNearestOrEven)
+ /* dqcot1137 */ self.comparetotal128("-0E+6144", "-0E-6143", -1, .toNearestOrEven)
+ /* dqcot1138 */ self.comparetotal128("0", "0E-6143", 1, .toNearestOrEven)
+ /* dqcot1139 */ self.comparetotal128("0", "-0E-6143", 1, .toNearestOrEven)
+ /* dqcot1140 */ self.comparetotal128("-0", "0E-6143", -1, .toNearestOrEven)
+ /* dqcot1141 */ self.comparetotal128("-0", "-0E-6143", -1, .toNearestOrEven)
+ /* dqcot120 */ self.comparetotal128("8.0", "7.0", 1, .toNearestOrEven)
+ /* dqcot121 */ self.comparetotal128("8.0", "7", 1, .toNearestOrEven)
+ /* dqcot122 */ self.comparetotal128("8", "7.0", 1, .toNearestOrEven)
+ /* dqcot123 */ self.comparetotal128("8E+0", "7.0", 1, .toNearestOrEven)
+ /* dqcot124 */ self.comparetotal128("80E-1", "7.0", 1, .toNearestOrEven)
+ /* dqcot125 */ self.comparetotal128("0.8E+1", "7", 1, .toNearestOrEven)
+ /* dqcot126 */ self.comparetotal128("80E-1", "7", 1, .toNearestOrEven)
+ /* dqcot127 */ self.comparetotal128("8.0", "7E+0", 1, .toNearestOrEven)
+ /* dqcot128 */ self.comparetotal128("8.0", "70E-1", 1, .toNearestOrEven)
+ /* dqcot129 */ self.comparetotal128("8", "0.7E+1", 1, .toNearestOrEven)
+ /* dqcot130 */ self.comparetotal128("8", "70E-1", 1, .toNearestOrEven)
+ /* dqcot140 */ self.comparetotal128("8.0", "9.0", -1, .toNearestOrEven)
+ /* dqcot141 */ self.comparetotal128("8.0", "9", -1, .toNearestOrEven)
+ /* dqcot142 */ self.comparetotal128("8", "9.0", -1, .toNearestOrEven)
+ /* dqcot143 */ self.comparetotal128("8E+0", "9.0", -1, .toNearestOrEven)
+ /* dqcot144 */ self.comparetotal128("80E-1", "9.0", -1, .toNearestOrEven)
+ /* dqcot145 */ self.comparetotal128("0.8E+1", "9", -1, .toNearestOrEven)
+ /* dqcot146 */ self.comparetotal128("80E-1", "9", -1, .toNearestOrEven)
+ /* dqcot147 */ self.comparetotal128("8.0", "9E+0", -1, .toNearestOrEven)
+ /* dqcot148 */ self.comparetotal128("8.0", "90E-1", -1, .toNearestOrEven)
+ /* dqcot149 */ self.comparetotal128("8", "0.9E+1", -1, .toNearestOrEven)
+ /* dqcot150 */ self.comparetotal128("8", "90E-1", -1, .toNearestOrEven)
+ /* dqcot200 */ self.comparetotal128("-7.0", "7.0", -1, .toNearestOrEven)
+ /* dqcot201 */ self.comparetotal128("-7.0", "7", -1, .toNearestOrEven)
+ /* dqcot202 */ self.comparetotal128("-7", "7.0", -1, .toNearestOrEven)
+ /* dqcot203 */ self.comparetotal128("-7E+0", "7.0", -1, .toNearestOrEven)
+ /* dqcot204 */ self.comparetotal128("-70E-1", "7.0", -1, .toNearestOrEven)
+ /* dqcot205 */ self.comparetotal128("-0.7E+1", "7", -1, .toNearestOrEven)
+ /* dqcot206 */ self.comparetotal128("-70E-1", "7", -1, .toNearestOrEven)
+ /* dqcot207 */ self.comparetotal128("-7.0", "7E+0", -1, .toNearestOrEven)
+ /* dqcot208 */ self.comparetotal128("-7.0", "70E-1", -1, .toNearestOrEven)
+ /* dqcot209 */ self.comparetotal128("-7", "0.7E+1", -1, .toNearestOrEven)
+ /* dqcot210 */ self.comparetotal128("-7", "70E-1", -1, .toNearestOrEven)
+ /* dqcot220 */ self.comparetotal128("-8.0", "7.0", -1, .toNearestOrEven)
+ /* dqcot221 */ self.comparetotal128("-8.0", "7", -1, .toNearestOrEven)
+ /* dqcot222 */ self.comparetotal128("-8", "7.0", -1, .toNearestOrEven)
+ /* dqcot223 */ self.comparetotal128("-8E+0", "7.0", -1, .toNearestOrEven)
+ /* dqcot224 */ self.comparetotal128("-80E-1", "7.0", -1, .toNearestOrEven)
+ /* dqcot225 */ self.comparetotal128("-0.8E+1", "7", -1, .toNearestOrEven)
+ /* dqcot226 */ self.comparetotal128("-80E-1", "7", -1, .toNearestOrEven)
+ /* dqcot227 */ self.comparetotal128("-8.0", "7E+0", -1, .toNearestOrEven)
+ /* dqcot228 */ self.comparetotal128("-8.0", "70E-1", -1, .toNearestOrEven)
+ /* dqcot229 */ self.comparetotal128("-8", "0.7E+1", -1, .toNearestOrEven)
+ /* dqcot230 */ self.comparetotal128("-8", "70E-1", -1, .toNearestOrEven)
+ /* dqcot240 */ self.comparetotal128("-8.0", "9.0", -1, .toNearestOrEven)
+ /* dqcot241 */ self.comparetotal128("-8.0", "9", -1, .toNearestOrEven)
+ /* dqcot242 */ self.comparetotal128("-8", "9.0", -1, .toNearestOrEven)
+ /* dqcot243 */ self.comparetotal128("-8E+0", "9.0", -1, .toNearestOrEven)
+ /* dqcot244 */ self.comparetotal128("-80E-1", "9.0", -1, .toNearestOrEven)
+ /* dqcot245 */ self.comparetotal128("-0.8E+1", "9", -1, .toNearestOrEven)
+ /* dqcot246 */ self.comparetotal128("-80E-1", "9", -1, .toNearestOrEven)
+ /* dqcot247 */ self.comparetotal128("-8.0", "9E+0", -1, .toNearestOrEven)
+ /* dqcot248 */ self.comparetotal128("-8.0", "90E-1", -1, .toNearestOrEven)
+ /* dqcot249 */ self.comparetotal128("-8", "0.9E+1", -1, .toNearestOrEven)
+ /* dqcot250 */ self.comparetotal128("-8", "90E-1", -1, .toNearestOrEven)
+ /* dqcot300 */ self.comparetotal128("7.0", "-7.0", 1, .toNearestOrEven)
+ /* dqcot301 */ self.comparetotal128("7.0", "-7", 1, .toNearestOrEven)
+ /* dqcot302 */ self.comparetotal128("7", "-7.0", 1, .toNearestOrEven)
+ /* dqcot303 */ self.comparetotal128("7E+0", "-7.0", 1, .toNearestOrEven)
+ /* dqcot304 */ self.comparetotal128("70E-1", "-7.0", 1, .toNearestOrEven)
+ /* dqcot305 */ self.comparetotal128(".7E+1", "-7", 1, .toNearestOrEven)
+ /* dqcot306 */ self.comparetotal128("70E-1", "-7", 1, .toNearestOrEven)
+ /* dqcot307 */ self.comparetotal128("7.0", "-7E+0", 1, .toNearestOrEven)
+ /* dqcot308 */ self.comparetotal128("7.0", "-70E-1", 1, .toNearestOrEven)
+ /* dqcot309 */ self.comparetotal128("7", "-.7E+1", 1, .toNearestOrEven)
+ /* dqcot310 */ self.comparetotal128("7", "-70E-1", 1, .toNearestOrEven)
+ /* dqcot320 */ self.comparetotal128("8.0", "-7.0", 1, .toNearestOrEven)
+ /* dqcot321 */ self.comparetotal128("8.0", "-7", 1, .toNearestOrEven)
+ /* dqcot322 */ self.comparetotal128("8", "-7.0", 1, .toNearestOrEven)
+ /* dqcot323 */ self.comparetotal128("8E+0", "-7.0", 1, .toNearestOrEven)
+ /* dqcot324 */ self.comparetotal128("80E-1", "-7.0", 1, .toNearestOrEven)
+ /* dqcot325 */ self.comparetotal128(".8E+1", "-7", 1, .toNearestOrEven)
+ /* dqcot326 */ self.comparetotal128("80E-1", "-7", 1, .toNearestOrEven)
+ /* dqcot327 */ self.comparetotal128("8.0", "-7E+0", 1, .toNearestOrEven)
+ /* dqcot328 */ self.comparetotal128("8.0", "-70E-1", 1, .toNearestOrEven)
+ /* dqcot329 */ self.comparetotal128("8", "-.7E+1", 1, .toNearestOrEven)
+ /* dqcot330 */ self.comparetotal128("8", "-70E-1", 1, .toNearestOrEven)
+ /* dqcot340 */ self.comparetotal128("8.0", "-9.0", 1, .toNearestOrEven)
+ /* dqcot341 */ self.comparetotal128("8.0", "-9", 1, .toNearestOrEven)
+ /* dqcot342 */ self.comparetotal128("8", "-9.0", 1, .toNearestOrEven)
+ /* dqcot343 */ self.comparetotal128("8E+0", "-9.0", 1, .toNearestOrEven)
+ /* dqcot344 */ self.comparetotal128("80E-1", "-9.0", 1, .toNearestOrEven)
+ /* dqcot345 */ self.comparetotal128(".8E+1", "-9", 1, .toNearestOrEven)
+ /* dqcot346 */ self.comparetotal128("80E-1", "-9", 1, .toNearestOrEven)
+ /* dqcot347 */ self.comparetotal128("8.0", "-9E+0", 1, .toNearestOrEven)
+ /* dqcot348 */ self.comparetotal128("8.0", "-90E-1", 1, .toNearestOrEven)
+ /* dqcot349 */ self.comparetotal128("8", "-.9E+1", 1, .toNearestOrEven)
+ /* dqcot350 */ self.comparetotal128("8", "-90E-1", 1, .toNearestOrEven)
+ /* dqcot400 */ self.comparetotal128("-7.0", "-7.0", 0, .toNearestOrEven)
+ /* dqcot401 */ self.comparetotal128("-7.0", "-7", 1, .toNearestOrEven)
+ /* dqcot402 */ self.comparetotal128("-7", "-7.0", -1, .toNearestOrEven)
+ /* dqcot403 */ self.comparetotal128("-7E+0", "-7.0", -1, .toNearestOrEven)
+ /* dqcot404 */ self.comparetotal128("-70E-1", "-7.0", 0, .toNearestOrEven)
+ /* dqcot405 */ self.comparetotal128("-.7E+1", "-7", 0, .toNearestOrEven)
+ /* dqcot406 */ self.comparetotal128("-70E-1", "-7", 1, .toNearestOrEven)
+ /* dqcot407 */ self.comparetotal128("-7.0", "-7E+0", 1, .toNearestOrEven)
+ /* dqcot408 */ self.comparetotal128("-7.0", "-70E-1", 0, .toNearestOrEven)
+ /* dqcot409 */ self.comparetotal128("-7", "-.7E+1", 0, .toNearestOrEven)
+ /* dqcot410 */ self.comparetotal128("-7", "-70E-1", -1, .toNearestOrEven)
+ /* dqcot420 */ self.comparetotal128("-8.0", "-7.0", -1, .toNearestOrEven)
+ /* dqcot421 */ self.comparetotal128("-8.0", "-7", -1, .toNearestOrEven)
+ /* dqcot422 */ self.comparetotal128("-8", "-7.0", -1, .toNearestOrEven)
+ /* dqcot423 */ self.comparetotal128("-8E+0", "-7.0", -1, .toNearestOrEven)
+ /* dqcot424 */ self.comparetotal128("-80E-1", "-7.0", -1, .toNearestOrEven)
+ /* dqcot425 */ self.comparetotal128("-.8E+1", "-7", -1, .toNearestOrEven)
+ /* dqcot426 */ self.comparetotal128("-80E-1", "-7", -1, .toNearestOrEven)
+ /* dqcot427 */ self.comparetotal128("-8.0", "-7E+0", -1, .toNearestOrEven)
+ /* dqcot428 */ self.comparetotal128("-8.0", "-70E-1", -1, .toNearestOrEven)
+ /* dqcot429 */ self.comparetotal128("-8", "-.7E+1", -1, .toNearestOrEven)
+ /* dqcot430 */ self.comparetotal128("-8", "-70E-1", -1, .toNearestOrEven)
+ /* dqcot440 */ self.comparetotal128("-8.0", "-9.0", 1, .toNearestOrEven)
+ /* dqcot441 */ self.comparetotal128("-8.0", "-9", 1, .toNearestOrEven)
+ /* dqcot442 */ self.comparetotal128("-8", "-9.0", 1, .toNearestOrEven)
+ /* dqcot443 */ self.comparetotal128("-8E+0", "-9.0", 1, .toNearestOrEven)
+ /* dqcot444 */ self.comparetotal128("-80E-1", "-9.0", 1, .toNearestOrEven)
+ /* dqcot445 */ self.comparetotal128("-.8E+1", "-9", 1, .toNearestOrEven)
+ /* dqcot446 */ self.comparetotal128("-80E-1", "-9", 1, .toNearestOrEven)
+ /* dqcot447 */ self.comparetotal128("-8.0", "-9E+0", 1, .toNearestOrEven)
+ /* dqcot448 */ self.comparetotal128("-8.0", "-90E-1", 1, .toNearestOrEven)
+ /* dqcot449 */ self.comparetotal128("-8", "-.9E+1", 1, .toNearestOrEven)
+ /* dqcot450 */ self.comparetotal128("-8", "-90E-1", 1, .toNearestOrEven)
+ /* dqcot473 */ self.comparetotal128("123.4560000000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* dqcot474 */ self.comparetotal128("123.456000000000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* dqcot475 */ self.comparetotal128("123.45600000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* dqcot476 */ self.comparetotal128("123.4560000000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* dqcot477 */ self.comparetotal128("123.456000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* dqcot478 */ self.comparetotal128("123.45600000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* dqcot479 */ self.comparetotal128("123.4560000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* dqcot480 */ self.comparetotal128("123.456000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* dqcot481 */ self.comparetotal128("123.45600E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* dqcot482 */ self.comparetotal128("123.4560E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* dqcot483 */ self.comparetotal128("123.456E-89", "123.456E-89", 0, .toNearestOrEven)
+ /* dqcot487 */ self.comparetotal128("123.456E+89", "123.4560000000000E+89", 1, .toNearestOrEven)
+ /* dqcot488 */ self.comparetotal128("123.456E-89", "123.456000000000E-89", 1, .toNearestOrEven)
+ /* dqcot489 */ self.comparetotal128("123.456E+89", "123.45600000000E+89", 1, .toNearestOrEven)
+ /* dqcot490 */ self.comparetotal128("123.456E-89", "123.4560000000E-89", 1, .toNearestOrEven)
+ /* dqcot491 */ self.comparetotal128("123.456E+89", "123.456000000E+89", 1, .toNearestOrEven)
+ /* dqcot492 */ self.comparetotal128("123.456E-89", "123.45600000E-89", 1, .toNearestOrEven)
+ /* dqcot493 */ self.comparetotal128("123.456E+89", "123.4560000E+89", 1, .toNearestOrEven)
+ /* dqcot494 */ self.comparetotal128("123.456E-89", "123.456000E-89", 1, .toNearestOrEven)
+ /* dqcot495 */ self.comparetotal128("123.456E+89", "123.45600E+89", 1, .toNearestOrEven)
+ /* dqcot496 */ self.comparetotal128("123.456E-89", "123.4560E-89", 1, .toNearestOrEven)
+ /* dqcot497 */ self.comparetotal128("123.456E+89", "123.456E+89", 0, .toNearestOrEven)
+ /* dqcot498 */ self.comparetotal128("1", "1E-17", 1, .toNearestOrEven)
+ /* dqcot499 */ self.comparetotal128("1", "1E-16", 1, .toNearestOrEven)
+ /* dqcot500 */ self.comparetotal128("1", "1E-15", 1, .toNearestOrEven)
+ /* dqcot501 */ self.comparetotal128("1", "1E-14", 1, .toNearestOrEven)
+ /* dqcot502 */ self.comparetotal128("1", "1E-13", 1, .toNearestOrEven)
+ /* dqcot503 */ self.comparetotal128("1", "1E-12", 1, .toNearestOrEven)
+ /* dqcot504 */ self.comparetotal128("1", "1E-11", 1, .toNearestOrEven)
+ /* dqcot505 */ self.comparetotal128("1", "1E-10", 1, .toNearestOrEven)
+ /* dqcot506 */ self.comparetotal128("1", "1E-9", 1, .toNearestOrEven)
+ /* dqcot507 */ self.comparetotal128("1", "1E-8", 1, .toNearestOrEven)
+ /* dqcot508 */ self.comparetotal128("1", "1E-7", 1, .toNearestOrEven)
+ /* dqcot509 */ self.comparetotal128("1", "1E-6", 1, .toNearestOrEven)
+ /* dqcot510 */ self.comparetotal128("1", "1E-5", 1, .toNearestOrEven)
+ /* dqcot511 */ self.comparetotal128("1", "1E-4", 1, .toNearestOrEven)
+ /* dqcot512 */ self.comparetotal128("1", "1E-3", 1, .toNearestOrEven)
+ /* dqcot513 */ self.comparetotal128("1", "1E-2", 1, .toNearestOrEven)
+ /* dqcot514 */ self.comparetotal128("1", "1E-1", 1, .toNearestOrEven)
+ /* dqcot515 */ self.comparetotal128("1", "1E-0", 0, .toNearestOrEven)
+ /* dqcot516 */ self.comparetotal128("1", "1E+1", -1, .toNearestOrEven)
+ /* dqcot517 */ self.comparetotal128("1", "1E+2", -1, .toNearestOrEven)
+ /* dqcot518 */ self.comparetotal128("1", "1E+3", -1, .toNearestOrEven)
+ /* dqcot519 */ self.comparetotal128("1", "1E+4", -1, .toNearestOrEven)
+ /* dqcot521 */ self.comparetotal128("1", "1E+5", -1, .toNearestOrEven)
+ /* dqcot522 */ self.comparetotal128("1", "1E+6", -1, .toNearestOrEven)
+ /* dqcot523 */ self.comparetotal128("1", "1E+7", -1, .toNearestOrEven)
+ /* dqcot524 */ self.comparetotal128("1", "1E+8", -1, .toNearestOrEven)
+ /* dqcot525 */ self.comparetotal128("1", "1E+9", -1, .toNearestOrEven)
+ /* dqcot526 */ self.comparetotal128("1", "1E+10", -1, .toNearestOrEven)
+ /* dqcot527 */ self.comparetotal128("1", "1E+11", -1, .toNearestOrEven)
+ /* dqcot528 */ self.comparetotal128("1", "1E+12", -1, .toNearestOrEven)
+ /* dqcot529 */ self.comparetotal128("1", "1E+13", -1, .toNearestOrEven)
+ /* dqcot530 */ self.comparetotal128("1", "1E+14", -1, .toNearestOrEven)
+ /* dqcot531 */ self.comparetotal128("1", "1E+15", -1, .toNearestOrEven)
+ /* dqcot532 */ self.comparetotal128("1", "1E+16", -1, .toNearestOrEven)
+ /* dqcot533 */ self.comparetotal128("1", "1E+17", -1, .toNearestOrEven)
+ /* dqcot538 */ self.comparetotal128("1E-17", "1", -1, .toNearestOrEven)
+ /* dqcot539 */ self.comparetotal128("1E-16", "1", -1, .toNearestOrEven)
+ /* dqcot540 */ self.comparetotal128("1E-15", "1", -1, .toNearestOrEven)
+ /* dqcot541 */ self.comparetotal128("1E-14", "1", -1, .toNearestOrEven)
+ /* dqcot542 */ self.comparetotal128("1E-13", "1", -1, .toNearestOrEven)
+ /* dqcot543 */ self.comparetotal128("1E-12", "1", -1, .toNearestOrEven)
+ /* dqcot544 */ self.comparetotal128("1E-11", "1", -1, .toNearestOrEven)
+ /* dqcot545 */ self.comparetotal128("1E-10", "1", -1, .toNearestOrEven)
+ /* dqcot546 */ self.comparetotal128("1E-9", "1", -1, .toNearestOrEven)
+ /* dqcot547 */ self.comparetotal128("1E-8", "1", -1, .toNearestOrEven)
+ /* dqcot548 */ self.comparetotal128("1E-7", "1", -1, .toNearestOrEven)
+ /* dqcot549 */ self.comparetotal128("1E-6", "1", -1, .toNearestOrEven)
+ /* dqcot550 */ self.comparetotal128("1E-5", "1", -1, .toNearestOrEven)
+ /* dqcot551 */ self.comparetotal128("1E-4", "1", -1, .toNearestOrEven)
+ /* dqcot552 */ self.comparetotal128("1E-3", "1", -1, .toNearestOrEven)
+ /* dqcot553 */ self.comparetotal128("1E-2", "1", -1, .toNearestOrEven)
+ /* dqcot554 */ self.comparetotal128("1E-1", "1", -1, .toNearestOrEven)
+ /* dqcot555 */ self.comparetotal128("1E-0", "1", 0, .toNearestOrEven)
+ /* dqcot556 */ self.comparetotal128("1E+1", "1", 1, .toNearestOrEven)
+ /* dqcot557 */ self.comparetotal128("1E+2", "1", 1, .toNearestOrEven)
+ /* dqcot558 */ self.comparetotal128("1E+3", "1", 1, .toNearestOrEven)
+ /* dqcot559 */ self.comparetotal128("1E+4", "1", 1, .toNearestOrEven)
+ /* dqcot561 */ self.comparetotal128("1E+5", "1", 1, .toNearestOrEven)
+ /* dqcot562 */ self.comparetotal128("1E+6", "1", 1, .toNearestOrEven)
+ /* dqcot563 */ self.comparetotal128("1E+7", "1", 1, .toNearestOrEven)
+ /* dqcot564 */ self.comparetotal128("1E+8", "1", 1, .toNearestOrEven)
+ /* dqcot565 */ self.comparetotal128("1E+9", "1", 1, .toNearestOrEven)
+ /* dqcot566 */ self.comparetotal128("1E+10", "1", 1, .toNearestOrEven)
+ /* dqcot567 */ self.comparetotal128("1E+11", "1", 1, .toNearestOrEven)
+ /* dqcot568 */ self.comparetotal128("1E+12", "1", 1, .toNearestOrEven)
+ /* dqcot569 */ self.comparetotal128("1E+13", "1", 1, .toNearestOrEven)
+ /* dqcot570 */ self.comparetotal128("1E+14", "1", 1, .toNearestOrEven)
+ /* dqcot571 */ self.comparetotal128("1E+15", "1", 1, .toNearestOrEven)
+ /* dqcot572 */ self.comparetotal128("1E+16", "1", 1, .toNearestOrEven)
+ /* dqcot573 */ self.comparetotal128("1E+17", "1", 1, .toNearestOrEven)
+ /* dqcot578 */ self.comparetotal128("0.000000987654321", "1E-17", 1, .toNearestOrEven)
+ /* dqcot579 */ self.comparetotal128("0.000000987654321", "1E-16", 1, .toNearestOrEven)
+ /* dqcot580 */ self.comparetotal128("0.000000987654321", "1E-15", 1, .toNearestOrEven)
+ /* dqcot581 */ self.comparetotal128("0.000000987654321", "1E-14", 1, .toNearestOrEven)
+ /* dqcot582 */ self.comparetotal128("0.000000987654321", "1E-13", 1, .toNearestOrEven)
+ /* dqcot583 */ self.comparetotal128("0.000000987654321", "1E-12", 1, .toNearestOrEven)
+ /* dqcot584 */ self.comparetotal128("0.000000987654321", "1E-11", 1, .toNearestOrEven)
+ /* dqcot585 */ self.comparetotal128("0.000000987654321", "1E-10", 1, .toNearestOrEven)
+ /* dqcot586 */ self.comparetotal128("0.000000987654321", "1E-9", 1, .toNearestOrEven)
+ /* dqcot587 */ self.comparetotal128("0.000000987654321", "1E-8", 1, .toNearestOrEven)
+ /* dqcot588 */ self.comparetotal128("0.000000987654321", "1E-7", 1, .toNearestOrEven)
+ /* dqcot589 */ self.comparetotal128("0.000000987654321", "1E-6", -1, .toNearestOrEven)
+ /* dqcot590 */ self.comparetotal128("0.000000987654321", "1E-5", -1, .toNearestOrEven)
+ /* dqcot591 */ self.comparetotal128("0.000000987654321", "1E-4", -1, .toNearestOrEven)
+ /* dqcot592 */ self.comparetotal128("0.000000987654321", "1E-3", -1, .toNearestOrEven)
+ /* dqcot593 */ self.comparetotal128("0.000000987654321", "1E-2", -1, .toNearestOrEven)
+ /* dqcot594 */ self.comparetotal128("0.000000987654321", "1E-1", -1, .toNearestOrEven)
+ /* dqcot595 */ self.comparetotal128("0.000000987654321", "1E-0", -1, .toNearestOrEven)
+ /* dqcot596 */ self.comparetotal128("0.000000987654321", "1E+1", -1, .toNearestOrEven)
+ /* dqcot597 */ self.comparetotal128("0.000000987654321", "1E+2", -1, .toNearestOrEven)
+ /* dqcot598 */ self.comparetotal128("0.000000987654321", "1E+3", -1, .toNearestOrEven)
+ /* dqcot599 */ self.comparetotal128("0.000000987654321", "1E+4", -1, .toNearestOrEven)
+ /* dqcot600 */ self.comparetotal128("12", "12.2345", -1, .toNearestOrEven)
+ /* dqcot601 */ self.comparetotal128("12.0", "12.2345", -1, .toNearestOrEven)
+ /* dqcot602 */ self.comparetotal128("12.00", "12.2345", -1, .toNearestOrEven)
+ /* dqcot603 */ self.comparetotal128("12.000", "12.2345", -1, .toNearestOrEven)
+ /* dqcot604 */ self.comparetotal128("12.0000", "12.2345", -1, .toNearestOrEven)
+ /* dqcot605 */ self.comparetotal128("12.00000", "12.2345", -1, .toNearestOrEven)
+ /* dqcot606 */ self.comparetotal128("12.000000", "12.2345", -1, .toNearestOrEven)
+ /* dqcot607 */ self.comparetotal128("12.0000000", "12.2345", -1, .toNearestOrEven)
+ /* dqcot608 */ self.comparetotal128("12.00000000", "12.2345", -1, .toNearestOrEven)
+ /* dqcot609 */ self.comparetotal128("12.000000000", "12.2345", -1, .toNearestOrEven)
+ /* dqcot610 */ self.comparetotal128("12.1234", "12", 1, .toNearestOrEven)
+ /* dqcot611 */ self.comparetotal128("12.1234", "12.0", 1, .toNearestOrEven)
+ /* dqcot612 */ self.comparetotal128("12.1234", "12.00", 1, .toNearestOrEven)
+ /* dqcot613 */ self.comparetotal128("12.1234", "12.000", 1, .toNearestOrEven)
+ /* dqcot614 */ self.comparetotal128("12.1234", "12.0000", 1, .toNearestOrEven)
+ /* dqcot615 */ self.comparetotal128("12.1234", "12.00000", 1, .toNearestOrEven)
+ /* dqcot616 */ self.comparetotal128("12.1234", "12.000000", 1, .toNearestOrEven)
+ /* dqcot617 */ self.comparetotal128("12.1234", "12.0000000", 1, .toNearestOrEven)
+ /* dqcot618 */ self.comparetotal128("12.1234", "12.00000000", 1, .toNearestOrEven)
+ /* dqcot619 */ self.comparetotal128("12.1234", "12.000000000", 1, .toNearestOrEven)
+ /* dqcot620 */ self.comparetotal128("-12", "-12.2345", 1, .toNearestOrEven)
+ /* dqcot621 */ self.comparetotal128("-12.0", "-12.2345", 1, .toNearestOrEven)
+ /* dqcot622 */ self.comparetotal128("-12.00", "-12.2345", 1, .toNearestOrEven)
+ /* dqcot623 */ self.comparetotal128("-12.000", "-12.2345", 1, .toNearestOrEven)
+ /* dqcot624 */ self.comparetotal128("-12.0000", "-12.2345", 1, .toNearestOrEven)
+ /* dqcot625 */ self.comparetotal128("-12.00000", "-12.2345", 1, .toNearestOrEven)
+ /* dqcot626 */ self.comparetotal128("-12.000000", "-12.2345", 1, .toNearestOrEven)
+ /* dqcot627 */ self.comparetotal128("-12.0000000", "-12.2345", 1, .toNearestOrEven)
+ /* dqcot628 */ self.comparetotal128("-12.00000000", "-12.2345", 1, .toNearestOrEven)
+ /* dqcot629 */ self.comparetotal128("-12.000000000", "-12.2345", 1, .toNearestOrEven)
+ /* dqcot630 */ self.comparetotal128("-12.1234", "-12", -1, .toNearestOrEven)
+ /* dqcot631 */ self.comparetotal128("-12.1234", "-12.0", -1, .toNearestOrEven)
+ /* dqcot632 */ self.comparetotal128("-12.1234", "-12.00", -1, .toNearestOrEven)
+ /* dqcot633 */ self.comparetotal128("-12.1234", "-12.000", -1, .toNearestOrEven)
+ /* dqcot634 */ self.comparetotal128("-12.1234", "-12.0000", -1, .toNearestOrEven)
+ /* dqcot635 */ self.comparetotal128("-12.1234", "-12.00000", -1, .toNearestOrEven)
+ /* dqcot636 */ self.comparetotal128("-12.1234", "-12.000000", -1, .toNearestOrEven)
+ /* dqcot637 */ self.comparetotal128("-12.1234", "-12.0000000", -1, .toNearestOrEven)
+ /* dqcot638 */ self.comparetotal128("-12.1234", "-12.00000000", -1, .toNearestOrEven)
+ /* dqcot639 */ self.comparetotal128("-12.1234", "-12.000000000", -1, .toNearestOrEven)
+ /* dqcot640 */ self.comparetotal128("0", "0", 0, .toNearestOrEven)
+ /* dqcot641 */ self.comparetotal128("0", "-0", 1, .toNearestOrEven)
+ /* dqcot642 */ self.comparetotal128("0", "-0.0", 1, .toNearestOrEven)
+ /* dqcot643 */ self.comparetotal128("0", "0.0", 1, .toNearestOrEven)
+ /* dqcot644 */ self.comparetotal128("-0", "0", -1, .toNearestOrEven)
+ /* dqcot645 */ self.comparetotal128("-0", "-0", 0, .toNearestOrEven)
+ /* dqcot646 */ self.comparetotal128("-0", "-0.0", -1, .toNearestOrEven)
+ /* dqcot647 */ self.comparetotal128("-0", "0.0", -1, .toNearestOrEven)
+ /* dqcot648 */ self.comparetotal128("0.0", "0", -1, .toNearestOrEven)
+ /* dqcot649 */ self.comparetotal128("0.0", "-0", 1, .toNearestOrEven)
+ /* dqcot650 */ self.comparetotal128("0.0", "-0.0", 1, .toNearestOrEven)
+ /* dqcot651 */ self.comparetotal128("0.0", "0.0", 0, .toNearestOrEven)
+ /* dqcot652 */ self.comparetotal128("-0.0", "0", -1, .toNearestOrEven)
+ /* dqcot653 */ self.comparetotal128("-0.0", "-0", 1, .toNearestOrEven)
+ /* dqcot654 */ self.comparetotal128("-0.0", "-0.0", 0, .toNearestOrEven)
+ /* dqcot655 */ self.comparetotal128("-0.0", "0.0", -1, .toNearestOrEven)
+ /* dqcot656 */ self.comparetotal128("-0E1", "0.0", -1, .toNearestOrEven)
+ /* dqcot657 */ self.comparetotal128("-0E2", "0.0", -1, .toNearestOrEven)
+ /* dqcot658 */ self.comparetotal128("0E1", "0.0", 1, .toNearestOrEven)
+ /* dqcot659 */ self.comparetotal128("0E2", "0.0", 1, .toNearestOrEven)
+ /* dqcot660 */ self.comparetotal128("-0E1", "0", -1, .toNearestOrEven)
+ /* dqcot661 */ self.comparetotal128("-0E2", "0", -1, .toNearestOrEven)
+ /* dqcot662 */ self.comparetotal128("0E1", "0", 1, .toNearestOrEven)
+ /* dqcot663 */ self.comparetotal128("0E2", "0", 1, .toNearestOrEven)
+ /* dqcot664 */ self.comparetotal128("-0E1", "-0E1", 0, .toNearestOrEven)
+ /* dqcot665 */ self.comparetotal128("-0E2", "-0E1", -1, .toNearestOrEven)
+ /* dqcot666 */ self.comparetotal128("0E1", "-0E1", 1, .toNearestOrEven)
+ /* dqcot667 */ self.comparetotal128("0E2", "-0E1", 1, .toNearestOrEven)
+ /* dqcot668 */ self.comparetotal128("-0E1", "-0E2", 1, .toNearestOrEven)
+ /* dqcot669 */ self.comparetotal128("-0E2", "-0E2", 0, .toNearestOrEven)
+ /* dqcot670 */ self.comparetotal128("0E1", "-0E2", 1, .toNearestOrEven)
+ /* dqcot671 */ self.comparetotal128("0E2", "-0E2", 1, .toNearestOrEven)
+ /* dqcot672 */ self.comparetotal128("-0E1", "0E1", -1, .toNearestOrEven)
+ /* dqcot673 */ self.comparetotal128("-0E2", "0E1", -1, .toNearestOrEven)
+ /* dqcot674 */ self.comparetotal128("0E1", "0E1", 0, .toNearestOrEven)
+ /* dqcot675 */ self.comparetotal128("0E2", "0E1", 1, .toNearestOrEven)
+ /* dqcot676 */ self.comparetotal128("-0E1", "0E2", -1, .toNearestOrEven)
+ /* dqcot677 */ self.comparetotal128("-0E2", "0E2", -1, .toNearestOrEven)
+ /* dqcot678 */ self.comparetotal128("0E1", "0E2", -1, .toNearestOrEven)
+ /* dqcot679 */ self.comparetotal128("0E2", "0E2", 0, .toNearestOrEven)
+ /* dqcot680 */ self.comparetotal128("12", "12", 0, .toNearestOrEven)
+ /* dqcot681 */ self.comparetotal128("12", "12.0", 1, .toNearestOrEven)
+ /* dqcot682 */ self.comparetotal128("12", "12.00", 1, .toNearestOrEven)
+ /* dqcot683 */ self.comparetotal128("12", "12.000", 1, .toNearestOrEven)
+ /* dqcot684 */ self.comparetotal128("12", "12.0000", 1, .toNearestOrEven)
+ /* dqcot685 */ self.comparetotal128("12", "12.00000", 1, .toNearestOrEven)
+ /* dqcot686 */ self.comparetotal128("12", "12.000000", 1, .toNearestOrEven)
+ /* dqcot687 */ self.comparetotal128("12", "12.0000000", 1, .toNearestOrEven)
+ /* dqcot688 */ self.comparetotal128("12", "12.00000000", 1, .toNearestOrEven)
+ /* dqcot689 */ self.comparetotal128("12", "12.000000000", 1, .toNearestOrEven)
+ /* dqcot690 */ self.comparetotal128("12", "12", 0, .toNearestOrEven)
+ /* dqcot691 */ self.comparetotal128("12.0", "12", -1, .toNearestOrEven)
+ /* dqcot692 */ self.comparetotal128("12.00", "12", -1, .toNearestOrEven)
+ /* dqcot693 */ self.comparetotal128("12.000", "12", -1, .toNearestOrEven)
+ /* dqcot694 */ self.comparetotal128("12.0000", "12", -1, .toNearestOrEven)
+ /* dqcot695 */ self.comparetotal128("12.00000", "12", -1, .toNearestOrEven)
+ /* dqcot696 */ self.comparetotal128("12.000000", "12", -1, .toNearestOrEven)
+ /* dqcot697 */ self.comparetotal128("12.0000000", "12", -1, .toNearestOrEven)
+ /* dqcot698 */ self.comparetotal128("12.00000000", "12", -1, .toNearestOrEven)
+ /* dqcot699 */ self.comparetotal128("12.000000000", "12", -1, .toNearestOrEven)
+ /* dqcot701 */ self.comparetotal128("12345678000", "1", 1, .toNearestOrEven)
+ /* dqcot702 */ self.comparetotal128("1", "12345678000", -1, .toNearestOrEven)
+ /* dqcot703 */ self.comparetotal128("1234567800", "1", 1, .toNearestOrEven)
+ /* dqcot704 */ self.comparetotal128("1", "1234567800", -1, .toNearestOrEven)
+ /* dqcot705 */ self.comparetotal128("1234567890", "1", 1, .toNearestOrEven)
+ /* dqcot706 */ self.comparetotal128("1", "1234567890", -1, .toNearestOrEven)
+ /* dqcot707 */ self.comparetotal128("1234567891", "1", 1, .toNearestOrEven)
+ /* dqcot708 */ self.comparetotal128("1", "1234567891", -1, .toNearestOrEven)
+ /* dqcot709 */ self.comparetotal128("12345678901", "1", 1, .toNearestOrEven)
+ /* dqcot710 */ self.comparetotal128("1", "12345678901", -1, .toNearestOrEven)
+ /* dqcot711 */ self.comparetotal128("1234567896", "1", 1, .toNearestOrEven)
+ /* dqcot712 */ self.comparetotal128("1", "1234567896", -1, .toNearestOrEven)
+ /* dqcot713 */ self.comparetotal128("-1234567891", "1", -1, .toNearestOrEven)
+ /* dqcot714 */ self.comparetotal128("1", "-1234567891", 1, .toNearestOrEven)
+ /* dqcot715 */ self.comparetotal128("-12345678901", "1", -1, .toNearestOrEven)
+ /* dqcot716 */ self.comparetotal128("1", "-12345678901", 1, .toNearestOrEven)
+ /* dqcot717 */ self.comparetotal128("-1234567896", "1", -1, .toNearestOrEven)
+ /* dqcot718 */ self.comparetotal128("1", "-1234567896", 1, .toNearestOrEven)
+ /* dqcot740 */ self.comparetotal128("1", "0.9999999", 1, .toNearestOrEven)
+ /* dqcot741 */ self.comparetotal128("1", "0.999999", 1, .toNearestOrEven)
+ /* dqcot742 */ self.comparetotal128("1", "0.99999", 1, .toNearestOrEven)
+ /* dqcot743 */ self.comparetotal128("1", "1.0000", 1, .toNearestOrEven)
+ /* dqcot744 */ self.comparetotal128("1", "1.00001", -1, .toNearestOrEven)
+ /* dqcot745 */ self.comparetotal128("1", "1.000001", -1, .toNearestOrEven)
+ /* dqcot746 */ self.comparetotal128("1", "1.0000001", -1, .toNearestOrEven)
+ /* dqcot750 */ self.comparetotal128("0.9999999", "1", -1, .toNearestOrEven)
+ /* dqcot751 */ self.comparetotal128("0.999999", "1", -1, .toNearestOrEven)
+ /* dqcot752 */ self.comparetotal128("0.99999", "1", -1, .toNearestOrEven)
+ /* dqcot753 */ self.comparetotal128("1.0000", "1", -1, .toNearestOrEven)
+ /* dqcot754 */ self.comparetotal128("1.00001", "1", 1, .toNearestOrEven)
+ /* dqcot755 */ self.comparetotal128("1.000001", "1", 1, .toNearestOrEven)
+ /* dqcot756 */ self.comparetotal128("1.0000001", "1", 1, .toNearestOrEven)
+ /* dqcot780 */ self.comparetotal128("Inf", "-Inf", 1, .toNearestOrEven)
+ /* dqcot781 */ self.comparetotal128("Inf", "-1000", 1, .toNearestOrEven)
+ /* dqcot782 */ self.comparetotal128("Inf", "-1", 1, .toNearestOrEven)
+ /* dqcot783 */ self.comparetotal128("Inf", "-0", 1, .toNearestOrEven)
+ /* dqcot784 */ self.comparetotal128("Inf", "0", 1, .toNearestOrEven)
+ /* dqcot785 */ self.comparetotal128("Inf", "1", 1, .toNearestOrEven)
+ /* dqcot786 */ self.comparetotal128("Inf", "1000", 1, .toNearestOrEven)
+ /* dqcot787 */ self.comparetotal128("Inf", "Inf", 0, .toNearestOrEven)
+ /* dqcot788 */ self.comparetotal128("-1000", "Inf", -1, .toNearestOrEven)
+ /* dqcot789 */ self.comparetotal128("-Inf", "Inf", -1, .toNearestOrEven)
+ /* dqcot790 */ self.comparetotal128("-1", "Inf", -1, .toNearestOrEven)
+ /* dqcot791 */ self.comparetotal128("-0", "Inf", -1, .toNearestOrEven)
+ /* dqcot792 */ self.comparetotal128("0", "Inf", -1, .toNearestOrEven)
+ /* dqcot793 */ self.comparetotal128("1", "Inf", -1, .toNearestOrEven)
+ /* dqcot794 */ self.comparetotal128("1000", "Inf", -1, .toNearestOrEven)
+ /* dqcot795 */ self.comparetotal128("Inf", "Inf", 0, .toNearestOrEven)
+ /* dqcot800 */ self.comparetotal128("-Inf", "-Inf", 0, .toNearestOrEven)
+ /* dqcot801 */ self.comparetotal128("-Inf", "-1000", -1, .toNearestOrEven)
+ /* dqcot802 */ self.comparetotal128("-Inf", "-1", -1, .toNearestOrEven)
+ /* dqcot803 */ self.comparetotal128("-Inf", "-0", -1, .toNearestOrEven)
+ /* dqcot804 */ self.comparetotal128("-Inf", "0", -1, .toNearestOrEven)
+ /* dqcot805 */ self.comparetotal128("-Inf", "1", -1, .toNearestOrEven)
+ /* dqcot806 */ self.comparetotal128("-Inf", "1000", -1, .toNearestOrEven)
+ /* dqcot807 */ self.comparetotal128("-Inf", "Inf", -1, .toNearestOrEven)
+ /* dqcot808 */ self.comparetotal128("-Inf", "-Inf", 0, .toNearestOrEven)
+ /* dqcot809 */ self.comparetotal128("-1000", "-Inf", 1, .toNearestOrEven)
+ /* dqcot810 */ self.comparetotal128("-1", "-Inf", 1, .toNearestOrEven)
+ /* dqcot811 */ self.comparetotal128("-0", "-Inf", 1, .toNearestOrEven)
+ /* dqcot812 */ self.comparetotal128("0", "-Inf", 1, .toNearestOrEven)
+ /* dqcot813 */ self.comparetotal128("1", "-Inf", 1, .toNearestOrEven)
+ /* dqcot814 */ self.comparetotal128("1000", "-Inf", 1, .toNearestOrEven)
+ /* dqcot815 */ self.comparetotal128("Inf", "-Inf", 1, .toNearestOrEven)
+ /* dqcot821 */ self.comparetotal128("NaN", "-Inf", 1, .toNearestOrEven)
+ /* dqcot822 */ self.comparetotal128("NaN", "-1000", 1, .toNearestOrEven)
+ /* dqcot823 */ self.comparetotal128("NaN", "-1", 1, .toNearestOrEven)
+ /* dqcot824 */ self.comparetotal128("NaN", "-0", 1, .toNearestOrEven)
+ /* dqcot825 */ self.comparetotal128("NaN", "0", 1, .toNearestOrEven)
+ /* dqcot826 */ self.comparetotal128("NaN", "1", 1, .toNearestOrEven)
+ /* dqcot827 */ self.comparetotal128("NaN", "1000", 1, .toNearestOrEven)
+ /* dqcot828 */ self.comparetotal128("NaN", "Inf", 1, .toNearestOrEven)
+ /* dqcot829 */ self.comparetotal128("NaN", "NaN", 0, .toNearestOrEven)
+ /* dqcot830 */ self.comparetotal128("-Inf", "NaN", -1, .toNearestOrEven)
+ /* dqcot831 */ self.comparetotal128("-1000", "NaN", -1, .toNearestOrEven)
+ /* dqcot832 */ self.comparetotal128("-1", "NaN", -1, .toNearestOrEven)
+ /* dqcot833 */ self.comparetotal128("-0", "NaN", -1, .toNearestOrEven)
+ /* dqcot834 */ self.comparetotal128("0", "NaN", -1, .toNearestOrEven)
+ /* dqcot835 */ self.comparetotal128("1", "NaN", -1, .toNearestOrEven)
+ /* dqcot836 */ self.comparetotal128("1000", "NaN", -1, .toNearestOrEven)
+ /* dqcot837 */ self.comparetotal128("Inf", "NaN", -1, .toNearestOrEven)
+ /* dqcot838 */ self.comparetotal128("-NaN", "-NaN", 0, .toNearestOrEven)
+ /* dqcot839 */ self.comparetotal128("+NaN", "-NaN", 1, .toNearestOrEven)
+ /* dqcot840 */ self.comparetotal128("-NaN", "+NaN", -1, .toNearestOrEven)
+ /* dqcot841 */ self.comparetotal128("sNaN", "-sNaN", 1, .toNearestOrEven)
+ /* dqcot842 */ self.comparetotal128("sNaN", "-NaN", 1, .toNearestOrEven)
+ /* dqcot843 */ self.comparetotal128("sNaN", "-Inf", 1, .toNearestOrEven)
+ /* dqcot844 */ self.comparetotal128("sNaN", "-1000", 1, .toNearestOrEven)
+ /* dqcot845 */ self.comparetotal128("sNaN", "-1", 1, .toNearestOrEven)
+ /* dqcot846 */ self.comparetotal128("sNaN", "-0", 1, .toNearestOrEven)
+ /* dqcot847 */ self.comparetotal128("sNaN", "0", 1, .toNearestOrEven)
+ /* dqcot848 */ self.comparetotal128("sNaN", "1", 1, .toNearestOrEven)
+ /* dqcot849 */ self.comparetotal128("sNaN", "1000", 1, .toNearestOrEven)
+ /* dqcot850 */ self.comparetotal128("sNaN", "NaN", -1, .toNearestOrEven)
+ /* dqcot851 */ self.comparetotal128("sNaN", "sNaN", 0, .toNearestOrEven)
+ /* dqcot852 */ self.comparetotal128("-sNaN", "sNaN", -1, .toNearestOrEven)
+ /* dqcot853 */ self.comparetotal128("-NaN", "sNaN", -1, .toNearestOrEven)
+ /* dqcot854 */ self.comparetotal128("-Inf", "sNaN", -1, .toNearestOrEven)
+ /* dqcot855 */ self.comparetotal128("-1000", "sNaN", -1, .toNearestOrEven)
+ /* dqcot856 */ self.comparetotal128("-1", "sNaN", -1, .toNearestOrEven)
+ /* dqcot857 */ self.comparetotal128("-0", "sNaN", -1, .toNearestOrEven)
+ /* dqcot858 */ self.comparetotal128("0", "sNaN", -1, .toNearestOrEven)
+ /* dqcot859 */ self.comparetotal128("1", "sNaN", -1, .toNearestOrEven)
+ /* dqcot860 */ self.comparetotal128("1000", "sNaN", -1, .toNearestOrEven)
+ /* dqcot861 */ self.comparetotal128("Inf", "sNaN", -1, .toNearestOrEven)
+ /* dqcot862 */ self.comparetotal128("NaN", "sNaN", 1, .toNearestOrEven)
+ /* dqcot863 */ self.comparetotal128("sNaN", "sNaN", 0, .toNearestOrEven)
+ /* dqcot871 */ self.comparetotal128("-sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* dqcot872 */ self.comparetotal128("-sNaN", "-NaN", 1, .toNearestOrEven)
+ /* dqcot873 */ self.comparetotal128("-sNaN", "-Inf", -1, .toNearestOrEven)
+ /* dqcot874 */ self.comparetotal128("-sNaN", "-1000", -1, .toNearestOrEven)
+ /* dqcot875 */ self.comparetotal128("-sNaN", "-1", -1, .toNearestOrEven)
+ /* dqcot876 */ self.comparetotal128("-sNaN", "-0", -1, .toNearestOrEven)
+ /* dqcot877 */ self.comparetotal128("-sNaN", "0", -1, .toNearestOrEven)
+ /* dqcot878 */ self.comparetotal128("-sNaN", "1", -1, .toNearestOrEven)
+ /* dqcot879 */ self.comparetotal128("-sNaN", "1000", -1, .toNearestOrEven)
+ /* dqcot880 */ self.comparetotal128("-sNaN", "NaN", -1, .toNearestOrEven)
+ /* dqcot881 */ self.comparetotal128("-sNaN", "sNaN", -1, .toNearestOrEven)
+ /* dqcot882 */ self.comparetotal128("-sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* dqcot883 */ self.comparetotal128("-NaN", "-sNaN", -1, .toNearestOrEven)
+ /* dqcot884 */ self.comparetotal128("-Inf", "-sNaN", 1, .toNearestOrEven)
+ /* dqcot885 */ self.comparetotal128("-1000", "-sNaN", 1, .toNearestOrEven)
+ /* dqcot886 */ self.comparetotal128("-1", "-sNaN", 1, .toNearestOrEven)
+ /* dqcot887 */ self.comparetotal128("-0", "-sNaN", 1, .toNearestOrEven)
+ /* dqcot888 */ self.comparetotal128("0", "-sNaN", 1, .toNearestOrEven)
+ /* dqcot889 */ self.comparetotal128("1", "-sNaN", 1, .toNearestOrEven)
+ /* dqcot890 */ self.comparetotal128("1000", "-sNaN", 1, .toNearestOrEven)
+ /* dqcot891 */ self.comparetotal128("Inf", "-sNaN", 1, .toNearestOrEven)
+ /* dqcot892 */ self.comparetotal128("NaN", "-sNaN", 1, .toNearestOrEven)
+ /* dqcot893 */ self.comparetotal128("sNaN", "-sNaN", 1, .toNearestOrEven)
+ /* dqcot960 */ self.comparetotal128("NaN(0x9)", "-Inf", 1, .toNearestOrEven)
+ /* dqcot961 */ self.comparetotal128("NaN(0x8)", "999", 1, .toNearestOrEven)
+ /* dqcot962 */ self.comparetotal128("NaN(0x4d)", "Inf", 1, .toNearestOrEven)
+ /* dqcot963 */ self.comparetotal128("-NaN(0x43)", "NaN(0x5)", -1, .toNearestOrEven)
+ /* dqcot964 */ self.comparetotal128("-Inf", "-NaN(0x4)", 1, .toNearestOrEven)
+ /* dqcot965 */ self.comparetotal128("-999", "-NaN(0x21)", 1, .toNearestOrEven)
+ /* dqcot966 */ self.comparetotal128("Inf", "NaN(0x2)", -1, .toNearestOrEven)
+ /* dqcot970 */ self.comparetotal128("-NaN(0x29)", "-NaN(0x2a)", 1, .toNearestOrEven)
+ /* dqcot971 */ self.comparetotal128("+NaN(0x29)", "-NaN(0x2a)", 1, .toNearestOrEven)
+ /* dqcot972 */ self.comparetotal128("-NaN(0x29)", "+NaN(0x2a)", -1, .toNearestOrEven)
+ /* dqcot973 */ self.comparetotal128("+NaN(0x29)", "+NaN(0x2a)", -1, .toNearestOrEven)
+ /* dqcot974 */ self.comparetotal128("-NaN(0x2a)", "-NaN(0x1)", -1, .toNearestOrEven)
+ /* dqcot975 */ self.comparetotal128("+NaN(0x2a)", "-NaN(0x1)", 1, .toNearestOrEven)
+ /* dqcot976 */ self.comparetotal128("-NaN(0x2a)", "+NaN(0x1)", -1, .toNearestOrEven)
+ /* dqcot977 */ self.comparetotal128("+NaN(0x2a)", "+NaN(0x1)", 1, .toNearestOrEven)
+ /* dqcot980 */ self.comparetotal128("-sNaN(0x303)", "-sNaN(0x304)", 1, .toNearestOrEven)
+ /* dqcot981 */ self.comparetotal128("+sNaN(0x303)", "-sNaN(0x304)", 1, .toNearestOrEven)
+ /* dqcot982 */ self.comparetotal128("-sNaN(0x303)", "+sNaN(0x304)", -1, .toNearestOrEven)
+ /* dqcot983 */ self.comparetotal128("+sNaN(0x303)", "+sNaN(0x304)", -1, .toNearestOrEven)
+ /* dqcot984 */ self.comparetotal128("-sNaN(0x304)", "-sNaN(0x303)", -1, .toNearestOrEven)
+ /* dqcot985 */ self.comparetotal128("+sNaN(0x304)", "-sNaN(0x303)", 1, .toNearestOrEven)
+ /* dqcot986 */ self.comparetotal128("-sNaN(0x304)", "+sNaN(0x303)", -1, .toNearestOrEven)
+ /* dqcot987 */ self.comparetotal128("+sNaN(0x304)", "+sNaN(0x303)", 1, .toNearestOrEven)
+ /* dqcot991 */ self.comparetotal128("-sNaN(0x63)", "-Inf", -1, .toNearestOrEven)
+ /* dqcot992 */ self.comparetotal128("sNaN(0x62)", "-11", 1, .toNearestOrEven)
+ /* dqcot993 */ self.comparetotal128("sNaN(0x61)", "NaN", -1, .toNearestOrEven)
+ /* dqcot994 */ self.comparetotal128("sNaN(0x10)", "sNaN(0x5e)", -1, .toNearestOrEven)
+ /* dqcot995 */ self.comparetotal128("NaN(0x55)", "sNaN(0x53)", 1, .toNearestOrEven)
+ /* dqcot996 */ self.comparetotal128("-Inf", "sNaN(0x5c)", -1, .toNearestOrEven)
+ /* dqcot997 */ self.comparetotal128("088", "sNaN(0x51)", -1, .toNearestOrEven)
+ /* dqcot998 */ self.comparetotal128("Inf", "sNaN(0x5a)", -1, .toNearestOrEven)
+ /* dqcot999 */ self.comparetotal128("NaN", "-sNaN(0x59)", 1, .toNearestOrEven)
+ }
+
+ private func comparetotal128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ expected: Int,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+
+ let result = self.totalOrder(arg0, arg1)
+ self.assertInt(result, expected, file, line)
+ }
+
+ // MARK: - Comparetotmag
+
+ func test_comparetotmag64() {
+ /* ddctm001 */ self.comparetotmag64("-2", "-2", 0, .toNearestOrEven)
+ /* ddctm002 */ self.comparetotmag64("-2", "-1", 1, .toNearestOrEven)
+ /* ddctm003 */ self.comparetotmag64("-2", "0", 1, .toNearestOrEven)
+ /* ddctm004 */ self.comparetotmag64("-2", "1", 1, .toNearestOrEven)
+ /* ddctm005 */ self.comparetotmag64("-2", "2", 0, .toNearestOrEven)
+ /* ddctm006 */ self.comparetotmag64("-1", "-2", -1, .toNearestOrEven)
+ /* ddctm007 */ self.comparetotmag64("-1", "-1", 0, .toNearestOrEven)
+ /* ddctm008 */ self.comparetotmag64("-1", "0", 1, .toNearestOrEven)
+ /* ddctm009 */ self.comparetotmag64("-1", "1", 0, .toNearestOrEven)
+ /* ddctm010 */ self.comparetotmag64("-1", "2", -1, .toNearestOrEven)
+ /* ddctm011 */ self.comparetotmag64("0", "-2", -1, .toNearestOrEven)
+ /* ddctm012 */ self.comparetotmag64("0", "-1", -1, .toNearestOrEven)
+ /* ddctm013 */ self.comparetotmag64("0", "0", 0, .toNearestOrEven)
+ /* ddctm014 */ self.comparetotmag64("0", "1", -1, .toNearestOrEven)
+ /* ddctm015 */ self.comparetotmag64("0", "2", -1, .toNearestOrEven)
+ /* ddctm016 */ self.comparetotmag64("1", "-2", -1, .toNearestOrEven)
+ /* ddctm017 */ self.comparetotmag64("1", "-1", 0, .toNearestOrEven)
+ /* ddctm018 */ self.comparetotmag64("1", "0", 1, .toNearestOrEven)
+ /* ddctm019 */ self.comparetotmag64("1", "1", 0, .toNearestOrEven)
+ /* ddctm020 */ self.comparetotmag64("1", "2", -1, .toNearestOrEven)
+ /* ddctm021 */ self.comparetotmag64("2", "-2", 0, .toNearestOrEven)
+ /* ddctm022 */ self.comparetotmag64("2", "-1", 1, .toNearestOrEven)
+ /* ddctm023 */ self.comparetotmag64("2", "0", 1, .toNearestOrEven)
+ /* ddctm025 */ self.comparetotmag64("2", "1", 1, .toNearestOrEven)
+ /* ddctm026 */ self.comparetotmag64("2", "2", 0, .toNearestOrEven)
+ /* ddctm031 */ self.comparetotmag64("-20", "-20", 0, .toNearestOrEven)
+ /* ddctm032 */ self.comparetotmag64("-20", "-10", 1, .toNearestOrEven)
+ /* ddctm033 */ self.comparetotmag64("-20", "00", 1, .toNearestOrEven)
+ /* ddctm034 */ self.comparetotmag64("-20", "10", 1, .toNearestOrEven)
+ /* ddctm035 */ self.comparetotmag64("-20", "20", 0, .toNearestOrEven)
+ /* ddctm036 */ self.comparetotmag64("-10", "-20", -1, .toNearestOrEven)
+ /* ddctm037 */ self.comparetotmag64("-10", "-10", 0, .toNearestOrEven)
+ /* ddctm038 */ self.comparetotmag64("-10", "00", 1, .toNearestOrEven)
+ /* ddctm039 */ self.comparetotmag64("-10", "10", 0, .toNearestOrEven)
+ /* ddctm040 */ self.comparetotmag64("-10", "20", -1, .toNearestOrEven)
+ /* ddctm041 */ self.comparetotmag64("00", "-20", -1, .toNearestOrEven)
+ /* ddctm042 */ self.comparetotmag64("00", "-10", -1, .toNearestOrEven)
+ /* ddctm043 */ self.comparetotmag64("00", "00", 0, .toNearestOrEven)
+ /* ddctm044 */ self.comparetotmag64("00", "10", -1, .toNearestOrEven)
+ /* ddctm045 */ self.comparetotmag64("00", "20", -1, .toNearestOrEven)
+ /* ddctm046 */ self.comparetotmag64("10", "-20", -1, .toNearestOrEven)
+ /* ddctm047 */ self.comparetotmag64("10", "-10", 0, .toNearestOrEven)
+ /* ddctm048 */ self.comparetotmag64("10", "00", 1, .toNearestOrEven)
+ /* ddctm049 */ self.comparetotmag64("10", "10", 0, .toNearestOrEven)
+ /* ddctm050 */ self.comparetotmag64("10", "20", -1, .toNearestOrEven)
+ /* ddctm051 */ self.comparetotmag64("20", "-20", 0, .toNearestOrEven)
+ /* ddctm052 */ self.comparetotmag64("20", "-10", 1, .toNearestOrEven)
+ /* ddctm053 */ self.comparetotmag64("20", "00", 1, .toNearestOrEven)
+ /* ddctm055 */ self.comparetotmag64("20", "10", 1, .toNearestOrEven)
+ /* ddctm056 */ self.comparetotmag64("20", "20", 0, .toNearestOrEven)
+ /* ddctm061 */ self.comparetotmag64("-2.0", "-2.0", 0, .toNearestOrEven)
+ /* ddctm062 */ self.comparetotmag64("-2.0", "-1.0", 1, .toNearestOrEven)
+ /* ddctm063 */ self.comparetotmag64("-2.0", "0.0", 1, .toNearestOrEven)
+ /* ddctm064 */ self.comparetotmag64("-2.0", "1.0", 1, .toNearestOrEven)
+ /* ddctm065 */ self.comparetotmag64("-2.0", "2.0", 0, .toNearestOrEven)
+ /* ddctm066 */ self.comparetotmag64("-1.0", "-2.0", -1, .toNearestOrEven)
+ /* ddctm067 */ self.comparetotmag64("-1.0", "-1.0", 0, .toNearestOrEven)
+ /* ddctm068 */ self.comparetotmag64("-1.0", "0.0", 1, .toNearestOrEven)
+ /* ddctm069 */ self.comparetotmag64("-1.0", "1.0", 0, .toNearestOrEven)
+ /* ddctm070 */ self.comparetotmag64("-1.0", "2.0", -1, .toNearestOrEven)
+ /* ddctm071 */ self.comparetotmag64("0.0", "-2.0", -1, .toNearestOrEven)
+ /* ddctm072 */ self.comparetotmag64("0.0", "-1.0", -1, .toNearestOrEven)
+ /* ddctm073 */ self.comparetotmag64("0.0", "0.0", 0, .toNearestOrEven)
+ /* ddctm074 */ self.comparetotmag64("0.0", "1.0", -1, .toNearestOrEven)
+ /* ddctm075 */ self.comparetotmag64("0.0", "2.0", -1, .toNearestOrEven)
+ /* ddctm076 */ self.comparetotmag64("1.0", "-2.0", -1, .toNearestOrEven)
+ /* ddctm077 */ self.comparetotmag64("1.0", "-1.0", 0, .toNearestOrEven)
+ /* ddctm078 */ self.comparetotmag64("1.0", "0.0", 1, .toNearestOrEven)
+ /* ddctm079 */ self.comparetotmag64("1.0", "1.0", 0, .toNearestOrEven)
+ /* ddctm080 */ self.comparetotmag64("1.0", "2.0", -1, .toNearestOrEven)
+ /* ddctm081 */ self.comparetotmag64("2.0", "-2.0", 0, .toNearestOrEven)
+ /* ddctm082 */ self.comparetotmag64("2.0", "-1.0", 1, .toNearestOrEven)
+ /* ddctm083 */ self.comparetotmag64("2.0", "0.0", 1, .toNearestOrEven)
+ /* ddctm085 */ self.comparetotmag64("2.0", "1.0", 1, .toNearestOrEven)
+ /* ddctm086 */ self.comparetotmag64("2.0", "2.0", 0, .toNearestOrEven)
+ /* ddctm090 */ self.comparetotmag64("9.99999999E+384", "9.99999999E+384", 0, .toNearestOrEven)
+ /* ddctm091 */ self.comparetotmag64("-9.99999999E+384", "9.99999999E+384", 0, .toNearestOrEven)
+ /* ddctm092 */ self.comparetotmag64("9.99999999E+384", "-9.99999999E+384", 0, .toNearestOrEven)
+ /* ddctm093 */ self.comparetotmag64("-9.99999999E+384", "-9.99999999E+384", 0, .toNearestOrEven)
+ /* ddctm100 */ self.comparetotmag64("7.0", "7.0", 0, .toNearestOrEven)
+ /* ddctm101 */ self.comparetotmag64("7.0", "7", -1, .toNearestOrEven)
+ /* ddctm102 */ self.comparetotmag64("7", "7.0", 1, .toNearestOrEven)
+ /* ddctm103 */ self.comparetotmag64("7E+0", "7.0", 1, .toNearestOrEven)
+ /* ddctm104 */ self.comparetotmag64("70E-1", "7.0", 0, .toNearestOrEven)
+ /* ddctm105 */ self.comparetotmag64("0.7E+1", "7", 0, .toNearestOrEven)
+ /* ddctm106 */ self.comparetotmag64("70E-1", "7", -1, .toNearestOrEven)
+ /* ddctm107 */ self.comparetotmag64("7.0", "7E+0", -1, .toNearestOrEven)
+ /* ddctm108 */ self.comparetotmag64("7.0", "70E-1", 0, .toNearestOrEven)
+ /* ddctm109 */ self.comparetotmag64("7", "0.7E+1", 0, .toNearestOrEven)
+ /* ddctm110 */ self.comparetotmag64("7", "70E-1", 1, .toNearestOrEven)
+ /* ddctm1110 */ self.comparetotmag64("0E-383", "0", -1, .toNearestOrEven)
+ /* ddctm1111 */ self.comparetotmag64("0E-383", "-0", -1, .toNearestOrEven)
+ /* ddctm1112 */ self.comparetotmag64("-0E-383", "0", -1, .toNearestOrEven)
+ /* ddctm1113 */ self.comparetotmag64("-0E-383", "-0", -1, .toNearestOrEven)
+ /* ddctm1114 */ self.comparetotmag64("0E-383", "0E+384", -1, .toNearestOrEven)
+ /* ddctm1115 */ self.comparetotmag64("0E-383", "-0E+384", -1, .toNearestOrEven)
+ /* ddctm1116 */ self.comparetotmag64("-0E-383", "0E+384", -1, .toNearestOrEven)
+ /* ddctm1117 */ self.comparetotmag64("-0E-383", "-0E+384", -1, .toNearestOrEven)
+ /* ddctm1118 */ self.comparetotmag64("0", "0E+384", -1, .toNearestOrEven)
+ /* ddctm1119 */ self.comparetotmag64("0", "-0E+384", -1, .toNearestOrEven)
+ /* ddctm1120 */ self.comparetotmag64("-0", "0E+384", -1, .toNearestOrEven)
+ /* ddctm1121 */ self.comparetotmag64("-0", "-0E+384", -1, .toNearestOrEven)
+ /* ddctm1130 */ self.comparetotmag64("0E+384", "0", 1, .toNearestOrEven)
+ /* ddctm1131 */ self.comparetotmag64("0E+384", "-0", 1, .toNearestOrEven)
+ /* ddctm1132 */ self.comparetotmag64("-0E+384", "0", 1, .toNearestOrEven)
+ /* ddctm1133 */ self.comparetotmag64("-0E+384", "-0", 1, .toNearestOrEven)
+ /* ddctm1134 */ self.comparetotmag64("0E+384", "0E-383", 1, .toNearestOrEven)
+ /* ddctm1135 */ self.comparetotmag64("0E+384", "-0E-383", 1, .toNearestOrEven)
+ /* ddctm1136 */ self.comparetotmag64("-0E+384", "0E-383", 1, .toNearestOrEven)
+ /* ddctm1137 */ self.comparetotmag64("-0E+384", "-0E-383", 1, .toNearestOrEven)
+ /* ddctm1138 */ self.comparetotmag64("0", "0E-383", 1, .toNearestOrEven)
+ /* ddctm1139 */ self.comparetotmag64("0", "-0E-383", 1, .toNearestOrEven)
+ /* ddctm1140 */ self.comparetotmag64("-0", "0E-383", 1, .toNearestOrEven)
+ /* ddctm1141 */ self.comparetotmag64("-0", "-0E-383", 1, .toNearestOrEven)
+ /* ddctm120 */ self.comparetotmag64("8.0", "7.0", 1, .toNearestOrEven)
+ /* ddctm121 */ self.comparetotmag64("8.0", "7", 1, .toNearestOrEven)
+ /* ddctm122 */ self.comparetotmag64("8", "7.0", 1, .toNearestOrEven)
+ /* ddctm123 */ self.comparetotmag64("8E+0", "7.0", 1, .toNearestOrEven)
+ /* ddctm124 */ self.comparetotmag64("80E-1", "7.0", 1, .toNearestOrEven)
+ /* ddctm125 */ self.comparetotmag64("0.8E+1", "7", 1, .toNearestOrEven)
+ /* ddctm126 */ self.comparetotmag64("80E-1", "7", 1, .toNearestOrEven)
+ /* ddctm127 */ self.comparetotmag64("8.0", "7E+0", 1, .toNearestOrEven)
+ /* ddctm128 */ self.comparetotmag64("8.0", "70E-1", 1, .toNearestOrEven)
+ /* ddctm129 */ self.comparetotmag64("8", "0.7E+1", 1, .toNearestOrEven)
+ /* ddctm130 */ self.comparetotmag64("8", "70E-1", 1, .toNearestOrEven)
+ /* ddctm140 */ self.comparetotmag64("8.0", "9.0", -1, .toNearestOrEven)
+ /* ddctm141 */ self.comparetotmag64("8.0", "9", -1, .toNearestOrEven)
+ /* ddctm142 */ self.comparetotmag64("8", "9.0", -1, .toNearestOrEven)
+ /* ddctm143 */ self.comparetotmag64("8E+0", "9.0", -1, .toNearestOrEven)
+ /* ddctm144 */ self.comparetotmag64("80E-1", "9.0", -1, .toNearestOrEven)
+ /* ddctm145 */ self.comparetotmag64("0.8E+1", "9", -1, .toNearestOrEven)
+ /* ddctm146 */ self.comparetotmag64("80E-1", "9", -1, .toNearestOrEven)
+ /* ddctm147 */ self.comparetotmag64("8.0", "9E+0", -1, .toNearestOrEven)
+ /* ddctm148 */ self.comparetotmag64("8.0", "90E-1", -1, .toNearestOrEven)
+ /* ddctm149 */ self.comparetotmag64("8", "0.9E+1", -1, .toNearestOrEven)
+ /* ddctm150 */ self.comparetotmag64("8", "90E-1", -1, .toNearestOrEven)
+ /* ddctm200 */ self.comparetotmag64("-7.0", "7.0", 0, .toNearestOrEven)
+ /* ddctm201 */ self.comparetotmag64("-7.0", "7", -1, .toNearestOrEven)
+ /* ddctm202 */ self.comparetotmag64("-7", "7.0", 1, .toNearestOrEven)
+ /* ddctm203 */ self.comparetotmag64("-7E+0", "7.0", 1, .toNearestOrEven)
+ /* ddctm204 */ self.comparetotmag64("-70E-1", "7.0", 0, .toNearestOrEven)
+ /* ddctm205 */ self.comparetotmag64("-0.7E+1", "7", 0, .toNearestOrEven)
+ /* ddctm206 */ self.comparetotmag64("-70E-1", "7", -1, .toNearestOrEven)
+ /* ddctm207 */ self.comparetotmag64("-7.0", "7E+0", -1, .toNearestOrEven)
+ /* ddctm208 */ self.comparetotmag64("-7.0", "70E-1", 0, .toNearestOrEven)
+ /* ddctm209 */ self.comparetotmag64("-7", "0.7E+1", 0, .toNearestOrEven)
+ /* ddctm210 */ self.comparetotmag64("-7", "70E-1", 1, .toNearestOrEven)
+ /* ddctm220 */ self.comparetotmag64("-8.0", "7.0", 1, .toNearestOrEven)
+ /* ddctm221 */ self.comparetotmag64("-8.0", "7", 1, .toNearestOrEven)
+ /* ddctm222 */ self.comparetotmag64("-8", "7.0", 1, .toNearestOrEven)
+ /* ddctm223 */ self.comparetotmag64("-8E+0", "7.0", 1, .toNearestOrEven)
+ /* ddctm224 */ self.comparetotmag64("-80E-1", "7.0", 1, .toNearestOrEven)
+ /* ddctm225 */ self.comparetotmag64("-0.8E+1", "7", 1, .toNearestOrEven)
+ /* ddctm226 */ self.comparetotmag64("-80E-1", "7", 1, .toNearestOrEven)
+ /* ddctm227 */ self.comparetotmag64("-8.0", "7E+0", 1, .toNearestOrEven)
+ /* ddctm228 */ self.comparetotmag64("-8.0", "70E-1", 1, .toNearestOrEven)
+ /* ddctm229 */ self.comparetotmag64("-8", "0.7E+1", 1, .toNearestOrEven)
+ /* ddctm230 */ self.comparetotmag64("-8", "70E-1", 1, .toNearestOrEven)
+ /* ddctm240 */ self.comparetotmag64("-8.0", "9.0", -1, .toNearestOrEven)
+ /* ddctm241 */ self.comparetotmag64("-8.0", "9", -1, .toNearestOrEven)
+ /* ddctm242 */ self.comparetotmag64("-8", "9.0", -1, .toNearestOrEven)
+ /* ddctm243 */ self.comparetotmag64("-8E+0", "9.0", -1, .toNearestOrEven)
+ /* ddctm244 */ self.comparetotmag64("-80E-1", "9.0", -1, .toNearestOrEven)
+ /* ddctm245 */ self.comparetotmag64("-0.8E+1", "9", -1, .toNearestOrEven)
+ /* ddctm246 */ self.comparetotmag64("-80E-1", "9", -1, .toNearestOrEven)
+ /* ddctm247 */ self.comparetotmag64("-8.0", "9E+0", -1, .toNearestOrEven)
+ /* ddctm248 */ self.comparetotmag64("-8.0", "90E-1", -1, .toNearestOrEven)
+ /* ddctm249 */ self.comparetotmag64("-8", "0.9E+1", -1, .toNearestOrEven)
+ /* ddctm250 */ self.comparetotmag64("-8", "90E-1", -1, .toNearestOrEven)
+ /* ddctm300 */ self.comparetotmag64("7.0", "-7.0", 0, .toNearestOrEven)
+ /* ddctm301 */ self.comparetotmag64("7.0", "-7", -1, .toNearestOrEven)
+ /* ddctm302 */ self.comparetotmag64("7", "-7.0", 1, .toNearestOrEven)
+ /* ddctm303 */ self.comparetotmag64("7E+0", "-7.0", 1, .toNearestOrEven)
+ /* ddctm304 */ self.comparetotmag64("70E-1", "-7.0", 0, .toNearestOrEven)
+ /* ddctm305 */ self.comparetotmag64(".7E+1", "-7", 0, .toNearestOrEven)
+ /* ddctm306 */ self.comparetotmag64("70E-1", "-7", -1, .toNearestOrEven)
+ /* ddctm307 */ self.comparetotmag64("7.0", "-7E+0", -1, .toNearestOrEven)
+ /* ddctm308 */ self.comparetotmag64("7.0", "-70E-1", 0, .toNearestOrEven)
+ /* ddctm309 */ self.comparetotmag64("7", "-.7E+1", 0, .toNearestOrEven)
+ /* ddctm310 */ self.comparetotmag64("7", "-70E-1", 1, .toNearestOrEven)
+ /* ddctm320 */ self.comparetotmag64("8.0", "-7.0", 1, .toNearestOrEven)
+ /* ddctm321 */ self.comparetotmag64("8.0", "-7", 1, .toNearestOrEven)
+ /* ddctm322 */ self.comparetotmag64("8", "-7.0", 1, .toNearestOrEven)
+ /* ddctm323 */ self.comparetotmag64("8E+0", "-7.0", 1, .toNearestOrEven)
+ /* ddctm324 */ self.comparetotmag64("80E-1", "-7.0", 1, .toNearestOrEven)
+ /* ddctm325 */ self.comparetotmag64(".8E+1", "-7", 1, .toNearestOrEven)
+ /* ddctm326 */ self.comparetotmag64("80E-1", "-7", 1, .toNearestOrEven)
+ /* ddctm327 */ self.comparetotmag64("8.0", "-7E+0", 1, .toNearestOrEven)
+ /* ddctm328 */ self.comparetotmag64("8.0", "-70E-1", 1, .toNearestOrEven)
+ /* ddctm329 */ self.comparetotmag64("8", "-.7E+1", 1, .toNearestOrEven)
+ /* ddctm330 */ self.comparetotmag64("8", "-70E-1", 1, .toNearestOrEven)
+ /* ddctm340 */ self.comparetotmag64("8.0", "-9.0", -1, .toNearestOrEven)
+ /* ddctm341 */ self.comparetotmag64("8.0", "-9", -1, .toNearestOrEven)
+ /* ddctm342 */ self.comparetotmag64("8", "-9.0", -1, .toNearestOrEven)
+ /* ddctm343 */ self.comparetotmag64("8E+0", "-9.0", -1, .toNearestOrEven)
+ /* ddctm344 */ self.comparetotmag64("80E-1", "-9.0", -1, .toNearestOrEven)
+ /* ddctm345 */ self.comparetotmag64(".8E+1", "-9", -1, .toNearestOrEven)
+ /* ddctm346 */ self.comparetotmag64("80E-1", "-9", -1, .toNearestOrEven)
+ /* ddctm347 */ self.comparetotmag64("8.0", "-9E+0", -1, .toNearestOrEven)
+ /* ddctm348 */ self.comparetotmag64("8.0", "-90E-1", -1, .toNearestOrEven)
+ /* ddctm349 */ self.comparetotmag64("8", "-.9E+1", -1, .toNearestOrEven)
+ /* ddctm350 */ self.comparetotmag64("8", "-90E-1", -1, .toNearestOrEven)
+ /* ddctm400 */ self.comparetotmag64("-7.0", "-7.0", 0, .toNearestOrEven)
+ /* ddctm401 */ self.comparetotmag64("-7.0", "-7", -1, .toNearestOrEven)
+ /* ddctm402 */ self.comparetotmag64("-7", "-7.0", 1, .toNearestOrEven)
+ /* ddctm403 */ self.comparetotmag64("-7E+0", "-7.0", 1, .toNearestOrEven)
+ /* ddctm404 */ self.comparetotmag64("-70E-1", "-7.0", 0, .toNearestOrEven)
+ /* ddctm405 */ self.comparetotmag64("-.7E+1", "-7", 0, .toNearestOrEven)
+ /* ddctm406 */ self.comparetotmag64("-70E-1", "-7", -1, .toNearestOrEven)
+ /* ddctm407 */ self.comparetotmag64("-7.0", "-7E+0", -1, .toNearestOrEven)
+ /* ddctm408 */ self.comparetotmag64("-7.0", "-70E-1", 0, .toNearestOrEven)
+ /* ddctm409 */ self.comparetotmag64("-7", "-.7E+1", 0, .toNearestOrEven)
+ /* ddctm410 */ self.comparetotmag64("-7", "-70E-1", 1, .toNearestOrEven)
+ /* ddctm420 */ self.comparetotmag64("-8.0", "-7.0", 1, .toNearestOrEven)
+ /* ddctm421 */ self.comparetotmag64("-8.0", "-7", 1, .toNearestOrEven)
+ /* ddctm422 */ self.comparetotmag64("-8", "-7.0", 1, .toNearestOrEven)
+ /* ddctm423 */ self.comparetotmag64("-8E+0", "-7.0", 1, .toNearestOrEven)
+ /* ddctm424 */ self.comparetotmag64("-80E-1", "-7.0", 1, .toNearestOrEven)
+ /* ddctm425 */ self.comparetotmag64("-.8E+1", "-7", 1, .toNearestOrEven)
+ /* ddctm426 */ self.comparetotmag64("-80E-1", "-7", 1, .toNearestOrEven)
+ /* ddctm427 */ self.comparetotmag64("-8.0", "-7E+0", 1, .toNearestOrEven)
+ /* ddctm428 */ self.comparetotmag64("-8.0", "-70E-1", 1, .toNearestOrEven)
+ /* ddctm429 */ self.comparetotmag64("-8", "-.7E+1", 1, .toNearestOrEven)
+ /* ddctm430 */ self.comparetotmag64("-8", "-70E-1", 1, .toNearestOrEven)
+ /* ddctm440 */ self.comparetotmag64("-8.0", "-9.0", -1, .toNearestOrEven)
+ /* ddctm441 */ self.comparetotmag64("-8.0", "-9", -1, .toNearestOrEven)
+ /* ddctm442 */ self.comparetotmag64("-8", "-9.0", -1, .toNearestOrEven)
+ /* ddctm443 */ self.comparetotmag64("-8E+0", "-9.0", -1, .toNearestOrEven)
+ /* ddctm444 */ self.comparetotmag64("-80E-1", "-9.0", -1, .toNearestOrEven)
+ /* ddctm445 */ self.comparetotmag64("-.8E+1", "-9", -1, .toNearestOrEven)
+ /* ddctm446 */ self.comparetotmag64("-80E-1", "-9", -1, .toNearestOrEven)
+ /* ddctm447 */ self.comparetotmag64("-8.0", "-9E+0", -1, .toNearestOrEven)
+ /* ddctm448 */ self.comparetotmag64("-8.0", "-90E-1", -1, .toNearestOrEven)
+ /* ddctm449 */ self.comparetotmag64("-8", "-.9E+1", -1, .toNearestOrEven)
+ /* ddctm450 */ self.comparetotmag64("-8", "-90E-1", -1, .toNearestOrEven)
+ /* ddctm473 */ self.comparetotmag64("123.4560000000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* ddctm474 */ self.comparetotmag64("123.456000000000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* ddctm475 */ self.comparetotmag64("123.45600000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* ddctm476 */ self.comparetotmag64("123.4560000000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* ddctm477 */ self.comparetotmag64("123.456000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* ddctm478 */ self.comparetotmag64("123.45600000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* ddctm479 */ self.comparetotmag64("123.4560000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* ddctm480 */ self.comparetotmag64("123.456000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* ddctm481 */ self.comparetotmag64("123.45600E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* ddctm482 */ self.comparetotmag64("123.4560E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* ddctm483 */ self.comparetotmag64("123.456E-89", "123.456E-89", 0, .toNearestOrEven)
+ /* ddctm487 */ self.comparetotmag64("123.456E+89", "123.4560000000000E+89", 1, .toNearestOrEven)
+ /* ddctm488 */ self.comparetotmag64("123.456E-89", "123.456000000000E-89", 1, .toNearestOrEven)
+ /* ddctm489 */ self.comparetotmag64("123.456E+89", "123.45600000000E+89", 1, .toNearestOrEven)
+ /* ddctm490 */ self.comparetotmag64("123.456E-89", "123.4560000000E-89", 1, .toNearestOrEven)
+ /* ddctm491 */ self.comparetotmag64("123.456E+89", "123.456000000E+89", 1, .toNearestOrEven)
+ /* ddctm492 */ self.comparetotmag64("123.456E-89", "123.45600000E-89", 1, .toNearestOrEven)
+ /* ddctm493 */ self.comparetotmag64("123.456E+89", "123.4560000E+89", 1, .toNearestOrEven)
+ /* ddctm494 */ self.comparetotmag64("123.456E-89", "123.456000E-89", 1, .toNearestOrEven)
+ /* ddctm495 */ self.comparetotmag64("123.456E+89", "123.45600E+89", 1, .toNearestOrEven)
+ /* ddctm496 */ self.comparetotmag64("123.456E-89", "123.4560E-89", 1, .toNearestOrEven)
+ /* ddctm497 */ self.comparetotmag64("123.456E+89", "123.456E+89", 0, .toNearestOrEven)
+ /* ddctm498 */ self.comparetotmag64("1", "1E-17", 1, .toNearestOrEven)
+ /* ddctm499 */ self.comparetotmag64("1", "1E-16", 1, .toNearestOrEven)
+ /* ddctm500 */ self.comparetotmag64("1", "1E-15", 1, .toNearestOrEven)
+ /* ddctm501 */ self.comparetotmag64("1", "1E-14", 1, .toNearestOrEven)
+ /* ddctm502 */ self.comparetotmag64("1", "1E-13", 1, .toNearestOrEven)
+ /* ddctm503 */ self.comparetotmag64("1", "1E-12", 1, .toNearestOrEven)
+ /* ddctm504 */ self.comparetotmag64("1", "1E-11", 1, .toNearestOrEven)
+ /* ddctm505 */ self.comparetotmag64("1", "1E-10", 1, .toNearestOrEven)
+ /* ddctm506 */ self.comparetotmag64("1", "1E-9", 1, .toNearestOrEven)
+ /* ddctm507 */ self.comparetotmag64("1", "1E-8", 1, .toNearestOrEven)
+ /* ddctm508 */ self.comparetotmag64("1", "1E-7", 1, .toNearestOrEven)
+ /* ddctm509 */ self.comparetotmag64("1", "1E-6", 1, .toNearestOrEven)
+ /* ddctm510 */ self.comparetotmag64("1", "1E-5", 1, .toNearestOrEven)
+ /* ddctm511 */ self.comparetotmag64("1", "1E-4", 1, .toNearestOrEven)
+ /* ddctm512 */ self.comparetotmag64("1", "1E-3", 1, .toNearestOrEven)
+ /* ddctm513 */ self.comparetotmag64("1", "1E-2", 1, .toNearestOrEven)
+ /* ddctm514 */ self.comparetotmag64("1", "1E-1", 1, .toNearestOrEven)
+ /* ddctm515 */ self.comparetotmag64("1", "1E-0", 0, .toNearestOrEven)
+ /* ddctm516 */ self.comparetotmag64("1", "1E+1", -1, .toNearestOrEven)
+ /* ddctm517 */ self.comparetotmag64("1", "1E+2", -1, .toNearestOrEven)
+ /* ddctm518 */ self.comparetotmag64("1", "1E+3", -1, .toNearestOrEven)
+ /* ddctm519 */ self.comparetotmag64("1", "1E+4", -1, .toNearestOrEven)
+ /* ddctm521 */ self.comparetotmag64("1", "1E+5", -1, .toNearestOrEven)
+ /* ddctm522 */ self.comparetotmag64("1", "1E+6", -1, .toNearestOrEven)
+ /* ddctm523 */ self.comparetotmag64("1", "1E+7", -1, .toNearestOrEven)
+ /* ddctm524 */ self.comparetotmag64("1", "1E+8", -1, .toNearestOrEven)
+ /* ddctm525 */ self.comparetotmag64("1", "1E+9", -1, .toNearestOrEven)
+ /* ddctm526 */ self.comparetotmag64("1", "1E+10", -1, .toNearestOrEven)
+ /* ddctm527 */ self.comparetotmag64("1", "1E+11", -1, .toNearestOrEven)
+ /* ddctm528 */ self.comparetotmag64("1", "1E+12", -1, .toNearestOrEven)
+ /* ddctm529 */ self.comparetotmag64("1", "1E+13", -1, .toNearestOrEven)
+ /* ddctm530 */ self.comparetotmag64("1", "1E+14", -1, .toNearestOrEven)
+ /* ddctm531 */ self.comparetotmag64("1", "1E+15", -1, .toNearestOrEven)
+ /* ddctm532 */ self.comparetotmag64("1", "1E+16", -1, .toNearestOrEven)
+ /* ddctm533 */ self.comparetotmag64("1", "1E+17", -1, .toNearestOrEven)
+ /* ddctm538 */ self.comparetotmag64("1E-17", "1", -1, .toNearestOrEven)
+ /* ddctm539 */ self.comparetotmag64("1E-16", "1", -1, .toNearestOrEven)
+ /* ddctm540 */ self.comparetotmag64("1E-15", "1", -1, .toNearestOrEven)
+ /* ddctm541 */ self.comparetotmag64("1E-14", "1", -1, .toNearestOrEven)
+ /* ddctm542 */ self.comparetotmag64("1E-13", "1", -1, .toNearestOrEven)
+ /* ddctm543 */ self.comparetotmag64("1E-12", "1", -1, .toNearestOrEven)
+ /* ddctm544 */ self.comparetotmag64("1E-11", "1", -1, .toNearestOrEven)
+ /* ddctm545 */ self.comparetotmag64("1E-10", "1", -1, .toNearestOrEven)
+ /* ddctm546 */ self.comparetotmag64("1E-9", "1", -1, .toNearestOrEven)
+ /* ddctm547 */ self.comparetotmag64("1E-8", "1", -1, .toNearestOrEven)
+ /* ddctm548 */ self.comparetotmag64("1E-7", "1", -1, .toNearestOrEven)
+ /* ddctm549 */ self.comparetotmag64("1E-6", "1", -1, .toNearestOrEven)
+ /* ddctm550 */ self.comparetotmag64("1E-5", "1", -1, .toNearestOrEven)
+ /* ddctm551 */ self.comparetotmag64("1E-4", "1", -1, .toNearestOrEven)
+ /* ddctm552 */ self.comparetotmag64("1E-3", "1", -1, .toNearestOrEven)
+ /* ddctm553 */ self.comparetotmag64("1E-2", "1", -1, .toNearestOrEven)
+ /* ddctm554 */ self.comparetotmag64("1E-1", "1", -1, .toNearestOrEven)
+ /* ddctm555 */ self.comparetotmag64("1E-0", "1", 0, .toNearestOrEven)
+ /* ddctm556 */ self.comparetotmag64("1E+1", "1", 1, .toNearestOrEven)
+ /* ddctm557 */ self.comparetotmag64("1E+2", "1", 1, .toNearestOrEven)
+ /* ddctm558 */ self.comparetotmag64("1E+3", "1", 1, .toNearestOrEven)
+ /* ddctm559 */ self.comparetotmag64("1E+4", "1", 1, .toNearestOrEven)
+ /* ddctm561 */ self.comparetotmag64("1E+5", "1", 1, .toNearestOrEven)
+ /* ddctm562 */ self.comparetotmag64("1E+6", "1", 1, .toNearestOrEven)
+ /* ddctm563 */ self.comparetotmag64("1E+7", "1", 1, .toNearestOrEven)
+ /* ddctm564 */ self.comparetotmag64("1E+8", "1", 1, .toNearestOrEven)
+ /* ddctm565 */ self.comparetotmag64("1E+9", "1", 1, .toNearestOrEven)
+ /* ddctm566 */ self.comparetotmag64("1E+10", "1", 1, .toNearestOrEven)
+ /* ddctm567 */ self.comparetotmag64("1E+11", "1", 1, .toNearestOrEven)
+ /* ddctm568 */ self.comparetotmag64("1E+12", "1", 1, .toNearestOrEven)
+ /* ddctm569 */ self.comparetotmag64("1E+13", "1", 1, .toNearestOrEven)
+ /* ddctm570 */ self.comparetotmag64("1E+14", "1", 1, .toNearestOrEven)
+ /* ddctm571 */ self.comparetotmag64("1E+15", "1", 1, .toNearestOrEven)
+ /* ddctm572 */ self.comparetotmag64("1E+16", "1", 1, .toNearestOrEven)
+ /* ddctm573 */ self.comparetotmag64("1E+17", "1", 1, .toNearestOrEven)
+ /* ddctm578 */ self.comparetotmag64("0.000000987654321", "1E-17", 1, .toNearestOrEven)
+ /* ddctm579 */ self.comparetotmag64("0.000000987654321", "1E-16", 1, .toNearestOrEven)
+ /* ddctm580 */ self.comparetotmag64("0.000000987654321", "1E-15", 1, .toNearestOrEven)
+ /* ddctm581 */ self.comparetotmag64("0.000000987654321", "1E-14", 1, .toNearestOrEven)
+ /* ddctm582 */ self.comparetotmag64("0.000000987654321", "1E-13", 1, .toNearestOrEven)
+ /* ddctm583 */ self.comparetotmag64("0.000000987654321", "1E-12", 1, .toNearestOrEven)
+ /* ddctm584 */ self.comparetotmag64("0.000000987654321", "1E-11", 1, .toNearestOrEven)
+ /* ddctm585 */ self.comparetotmag64("0.000000987654321", "1E-10", 1, .toNearestOrEven)
+ /* ddctm586 */ self.comparetotmag64("0.000000987654321", "1E-9", 1, .toNearestOrEven)
+ /* ddctm587 */ self.comparetotmag64("0.000000987654321", "1E-8", 1, .toNearestOrEven)
+ /* ddctm588 */ self.comparetotmag64("0.000000987654321", "1E-7", 1, .toNearestOrEven)
+ /* ddctm589 */ self.comparetotmag64("0.000000987654321", "1E-6", -1, .toNearestOrEven)
+ /* ddctm590 */ self.comparetotmag64("0.000000987654321", "1E-5", -1, .toNearestOrEven)
+ /* ddctm591 */ self.comparetotmag64("0.000000987654321", "1E-4", -1, .toNearestOrEven)
+ /* ddctm592 */ self.comparetotmag64("0.000000987654321", "1E-3", -1, .toNearestOrEven)
+ /* ddctm593 */ self.comparetotmag64("0.000000987654321", "1E-2", -1, .toNearestOrEven)
+ /* ddctm594 */ self.comparetotmag64("0.000000987654321", "1E-1", -1, .toNearestOrEven)
+ /* ddctm595 */ self.comparetotmag64("0.000000987654321", "1E-0", -1, .toNearestOrEven)
+ /* ddctm596 */ self.comparetotmag64("0.000000987654321", "1E+1", -1, .toNearestOrEven)
+ /* ddctm597 */ self.comparetotmag64("0.000000987654321", "1E+2", -1, .toNearestOrEven)
+ /* ddctm598 */ self.comparetotmag64("0.000000987654321", "1E+3", -1, .toNearestOrEven)
+ /* ddctm599 */ self.comparetotmag64("0.000000987654321", "1E+4", -1, .toNearestOrEven)
+ /* ddctm600 */ self.comparetotmag64("12", "12.2345", -1, .toNearestOrEven)
+ /* ddctm601 */ self.comparetotmag64("12.0", "12.2345", -1, .toNearestOrEven)
+ /* ddctm602 */ self.comparetotmag64("12.00", "12.2345", -1, .toNearestOrEven)
+ /* ddctm603 */ self.comparetotmag64("12.000", "12.2345", -1, .toNearestOrEven)
+ /* ddctm604 */ self.comparetotmag64("12.0000", "12.2345", -1, .toNearestOrEven)
+ /* ddctm605 */ self.comparetotmag64("12.00000", "12.2345", -1, .toNearestOrEven)
+ /* ddctm606 */ self.comparetotmag64("12.000000", "12.2345", -1, .toNearestOrEven)
+ /* ddctm607 */ self.comparetotmag64("12.0000000", "12.2345", -1, .toNearestOrEven)
+ /* ddctm608 */ self.comparetotmag64("12.00000000", "12.2345", -1, .toNearestOrEven)
+ /* ddctm609 */ self.comparetotmag64("12.000000000", "12.2345", -1, .toNearestOrEven)
+ /* ddctm610 */ self.comparetotmag64("12.1234", "12", 1, .toNearestOrEven)
+ /* ddctm611 */ self.comparetotmag64("12.1234", "12.0", 1, .toNearestOrEven)
+ /* ddctm612 */ self.comparetotmag64("12.1234", "12.00", 1, .toNearestOrEven)
+ /* ddctm613 */ self.comparetotmag64("12.1234", "12.000", 1, .toNearestOrEven)
+ /* ddctm614 */ self.comparetotmag64("12.1234", "12.0000", 1, .toNearestOrEven)
+ /* ddctm615 */ self.comparetotmag64("12.1234", "12.00000", 1, .toNearestOrEven)
+ /* ddctm616 */ self.comparetotmag64("12.1234", "12.000000", 1, .toNearestOrEven)
+ /* ddctm617 */ self.comparetotmag64("12.1234", "12.0000000", 1, .toNearestOrEven)
+ /* ddctm618 */ self.comparetotmag64("12.1234", "12.00000000", 1, .toNearestOrEven)
+ /* ddctm619 */ self.comparetotmag64("12.1234", "12.000000000", 1, .toNearestOrEven)
+ /* ddctm620 */ self.comparetotmag64("-12", "-12.2345", -1, .toNearestOrEven)
+ /* ddctm621 */ self.comparetotmag64("-12.0", "-12.2345", -1, .toNearestOrEven)
+ /* ddctm622 */ self.comparetotmag64("-12.00", "-12.2345", -1, .toNearestOrEven)
+ /* ddctm623 */ self.comparetotmag64("-12.000", "-12.2345", -1, .toNearestOrEven)
+ /* ddctm624 */ self.comparetotmag64("-12.0000", "-12.2345", -1, .toNearestOrEven)
+ /* ddctm625 */ self.comparetotmag64("-12.00000", "-12.2345", -1, .toNearestOrEven)
+ /* ddctm626 */ self.comparetotmag64("-12.000000", "-12.2345", -1, .toNearestOrEven)
+ /* ddctm627 */ self.comparetotmag64("-12.0000000", "-12.2345", -1, .toNearestOrEven)
+ /* ddctm628 */ self.comparetotmag64("-12.00000000", "-12.2345", -1, .toNearestOrEven)
+ /* ddctm629 */ self.comparetotmag64("-12.000000000", "-12.2345", -1, .toNearestOrEven)
+ /* ddctm630 */ self.comparetotmag64("-12.1234", "-12", 1, .toNearestOrEven)
+ /* ddctm631 */ self.comparetotmag64("-12.1234", "-12.0", 1, .toNearestOrEven)
+ /* ddctm632 */ self.comparetotmag64("-12.1234", "-12.00", 1, .toNearestOrEven)
+ /* ddctm633 */ self.comparetotmag64("-12.1234", "-12.000", 1, .toNearestOrEven)
+ /* ddctm634 */ self.comparetotmag64("-12.1234", "-12.0000", 1, .toNearestOrEven)
+ /* ddctm635 */ self.comparetotmag64("-12.1234", "-12.00000", 1, .toNearestOrEven)
+ /* ddctm636 */ self.comparetotmag64("-12.1234", "-12.000000", 1, .toNearestOrEven)
+ /* ddctm637 */ self.comparetotmag64("-12.1234", "-12.0000000", 1, .toNearestOrEven)
+ /* ddctm638 */ self.comparetotmag64("-12.1234", "-12.00000000", 1, .toNearestOrEven)
+ /* ddctm639 */ self.comparetotmag64("-12.1234", "-12.000000000", 1, .toNearestOrEven)
+ /* ddctm640 */ self.comparetotmag64("0", "0", 0, .toNearestOrEven)
+ /* ddctm641 */ self.comparetotmag64("0", "-0", 0, .toNearestOrEven)
+ /* ddctm642 */ self.comparetotmag64("0", "-0.0", 1, .toNearestOrEven)
+ /* ddctm643 */ self.comparetotmag64("0", "0.0", 1, .toNearestOrEven)
+ /* ddctm644 */ self.comparetotmag64("-0", "0", 0, .toNearestOrEven)
+ /* ddctm645 */ self.comparetotmag64("-0", "-0", 0, .toNearestOrEven)
+ /* ddctm646 */ self.comparetotmag64("-0", "-0.0", 1, .toNearestOrEven)
+ /* ddctm647 */ self.comparetotmag64("-0", "0.0", 1, .toNearestOrEven)
+ /* ddctm648 */ self.comparetotmag64("0.0", "0", -1, .toNearestOrEven)
+ /* ddctm649 */ self.comparetotmag64("0.0", "-0", -1, .toNearestOrEven)
+ /* ddctm650 */ self.comparetotmag64("0.0", "-0.0", 0, .toNearestOrEven)
+ /* ddctm651 */ self.comparetotmag64("0.0", "0.0", 0, .toNearestOrEven)
+ /* ddctm652 */ self.comparetotmag64("-0.0", "0", -1, .toNearestOrEven)
+ /* ddctm653 */ self.comparetotmag64("-0.0", "-0", -1, .toNearestOrEven)
+ /* ddctm654 */ self.comparetotmag64("-0.0", "-0.0", 0, .toNearestOrEven)
+ /* ddctm655 */ self.comparetotmag64("-0.0", "0.0", 0, .toNearestOrEven)
+ /* ddctm656 */ self.comparetotmag64("-0E1", "0.0", 1, .toNearestOrEven)
+ /* ddctm657 */ self.comparetotmag64("-0E2", "0.0", 1, .toNearestOrEven)
+ /* ddctm658 */ self.comparetotmag64("0E1", "0.0", 1, .toNearestOrEven)
+ /* ddctm659 */ self.comparetotmag64("0E2", "0.0", 1, .toNearestOrEven)
+ /* ddctm660 */ self.comparetotmag64("-0E1", "0", 1, .toNearestOrEven)
+ /* ddctm661 */ self.comparetotmag64("-0E2", "0", 1, .toNearestOrEven)
+ /* ddctm662 */ self.comparetotmag64("0E1", "0", 1, .toNearestOrEven)
+ /* ddctm663 */ self.comparetotmag64("0E2", "0", 1, .toNearestOrEven)
+ /* ddctm664 */ self.comparetotmag64("-0E1", "-0E1", 0, .toNearestOrEven)
+ /* ddctm665 */ self.comparetotmag64("-0E2", "-0E1", 1, .toNearestOrEven)
+ /* ddctm666 */ self.comparetotmag64("0E1", "-0E1", 0, .toNearestOrEven)
+ /* ddctm667 */ self.comparetotmag64("0E2", "-0E1", 1, .toNearestOrEven)
+ /* ddctm668 */ self.comparetotmag64("-0E1", "-0E2", -1, .toNearestOrEven)
+ /* ddctm669 */ self.comparetotmag64("-0E2", "-0E2", 0, .toNearestOrEven)
+ /* ddctm670 */ self.comparetotmag64("0E1", "-0E2", -1, .toNearestOrEven)
+ /* ddctm671 */ self.comparetotmag64("0E2", "-0E2", 0, .toNearestOrEven)
+ /* ddctm672 */ self.comparetotmag64("-0E1", "0E1", 0, .toNearestOrEven)
+ /* ddctm673 */ self.comparetotmag64("-0E2", "0E1", 1, .toNearestOrEven)
+ /* ddctm674 */ self.comparetotmag64("0E1", "0E1", 0, .toNearestOrEven)
+ /* ddctm675 */ self.comparetotmag64("0E2", "0E1", 1, .toNearestOrEven)
+ /* ddctm676 */ self.comparetotmag64("-0E1", "0E2", -1, .toNearestOrEven)
+ /* ddctm677 */ self.comparetotmag64("-0E2", "0E2", 0, .toNearestOrEven)
+ /* ddctm678 */ self.comparetotmag64("0E1", "0E2", -1, .toNearestOrEven)
+ /* ddctm679 */ self.comparetotmag64("0E2", "0E2", 0, .toNearestOrEven)
+ /* ddctm680 */ self.comparetotmag64("12", "12", 0, .toNearestOrEven)
+ /* ddctm681 */ self.comparetotmag64("12", "12.0", 1, .toNearestOrEven)
+ /* ddctm682 */ self.comparetotmag64("12", "12.00", 1, .toNearestOrEven)
+ /* ddctm683 */ self.comparetotmag64("12", "12.000", 1, .toNearestOrEven)
+ /* ddctm684 */ self.comparetotmag64("12", "12.0000", 1, .toNearestOrEven)
+ /* ddctm685 */ self.comparetotmag64("12", "12.00000", 1, .toNearestOrEven)
+ /* ddctm686 */ self.comparetotmag64("12", "12.000000", 1, .toNearestOrEven)
+ /* ddctm687 */ self.comparetotmag64("12", "12.0000000", 1, .toNearestOrEven)
+ /* ddctm688 */ self.comparetotmag64("12", "12.00000000", 1, .toNearestOrEven)
+ /* ddctm689 */ self.comparetotmag64("12", "12.000000000", 1, .toNearestOrEven)
+ /* ddctm690 */ self.comparetotmag64("12", "12", 0, .toNearestOrEven)
+ /* ddctm691 */ self.comparetotmag64("12.0", "12", -1, .toNearestOrEven)
+ /* ddctm692 */ self.comparetotmag64("12.00", "12", -1, .toNearestOrEven)
+ /* ddctm693 */ self.comparetotmag64("12.000", "12", -1, .toNearestOrEven)
+ /* ddctm694 */ self.comparetotmag64("12.0000", "12", -1, .toNearestOrEven)
+ /* ddctm695 */ self.comparetotmag64("12.00000", "12", -1, .toNearestOrEven)
+ /* ddctm696 */ self.comparetotmag64("12.000000", "12", -1, .toNearestOrEven)
+ /* ddctm697 */ self.comparetotmag64("12.0000000", "12", -1, .toNearestOrEven)
+ /* ddctm698 */ self.comparetotmag64("12.00000000", "12", -1, .toNearestOrEven)
+ /* ddctm699 */ self.comparetotmag64("12.000000000", "12", -1, .toNearestOrEven)
+ /* ddctm701 */ self.comparetotmag64("12345678000", "1", 1, .toNearestOrEven)
+ /* ddctm702 */ self.comparetotmag64("1", "12345678000", -1, .toNearestOrEven)
+ /* ddctm703 */ self.comparetotmag64("1234567800", "1", 1, .toNearestOrEven)
+ /* ddctm704 */ self.comparetotmag64("1", "1234567800", -1, .toNearestOrEven)
+ /* ddctm705 */ self.comparetotmag64("1234567890", "1", 1, .toNearestOrEven)
+ /* ddctm706 */ self.comparetotmag64("1", "1234567890", -1, .toNearestOrEven)
+ /* ddctm707 */ self.comparetotmag64("1234567891", "1", 1, .toNearestOrEven)
+ /* ddctm708 */ self.comparetotmag64("1", "1234567891", -1, .toNearestOrEven)
+ /* ddctm709 */ self.comparetotmag64("12345678901", "1", 1, .toNearestOrEven)
+ /* ddctm710 */ self.comparetotmag64("1", "12345678901", -1, .toNearestOrEven)
+ /* ddctm711 */ self.comparetotmag64("1234567896", "1", 1, .toNearestOrEven)
+ /* ddctm712 */ self.comparetotmag64("1", "1234567896", -1, .toNearestOrEven)
+ /* ddctm713 */ self.comparetotmag64("-1234567891", "1", 1, .toNearestOrEven)
+ /* ddctm714 */ self.comparetotmag64("1", "-1234567891", -1, .toNearestOrEven)
+ /* ddctm715 */ self.comparetotmag64("-12345678901", "1", 1, .toNearestOrEven)
+ /* ddctm716 */ self.comparetotmag64("1", "-12345678901", -1, .toNearestOrEven)
+ /* ddctm717 */ self.comparetotmag64("-1234567896", "1", 1, .toNearestOrEven)
+ /* ddctm718 */ self.comparetotmag64("1", "-1234567896", -1, .toNearestOrEven)
+ /* ddctm740 */ self.comparetotmag64("1", "0.9999999", 1, .toNearestOrEven)
+ /* ddctm741 */ self.comparetotmag64("1", "0.999999", 1, .toNearestOrEven)
+ /* ddctm742 */ self.comparetotmag64("1", "0.99999", 1, .toNearestOrEven)
+ /* ddctm743 */ self.comparetotmag64("1", "1.0000", 1, .toNearestOrEven)
+ /* ddctm744 */ self.comparetotmag64("1", "1.00001", -1, .toNearestOrEven)
+ /* ddctm745 */ self.comparetotmag64("1", "1.000001", -1, .toNearestOrEven)
+ /* ddctm746 */ self.comparetotmag64("1", "1.0000001", -1, .toNearestOrEven)
+ /* ddctm750 */ self.comparetotmag64("0.9999999", "1", -1, .toNearestOrEven)
+ /* ddctm751 */ self.comparetotmag64("0.999999", "1", -1, .toNearestOrEven)
+ /* ddctm752 */ self.comparetotmag64("0.99999", "1", -1, .toNearestOrEven)
+ /* ddctm753 */ self.comparetotmag64("1.0000", "1", -1, .toNearestOrEven)
+ /* ddctm754 */ self.comparetotmag64("1.00001", "1", 1, .toNearestOrEven)
+ /* ddctm755 */ self.comparetotmag64("1.000001", "1", 1, .toNearestOrEven)
+ /* ddctm756 */ self.comparetotmag64("1.0000001", "1", 1, .toNearestOrEven)
+ /* ddctm780 */ self.comparetotmag64("Inf", "-Inf", 0, .toNearestOrEven)
+ /* ddctm781 */ self.comparetotmag64("Inf", "-1000", 1, .toNearestOrEven)
+ /* ddctm782 */ self.comparetotmag64("Inf", "-1", 1, .toNearestOrEven)
+ /* ddctm783 */ self.comparetotmag64("Inf", "-0", 1, .toNearestOrEven)
+ /* ddctm784 */ self.comparetotmag64("Inf", "0", 1, .toNearestOrEven)
+ /* ddctm785 */ self.comparetotmag64("Inf", "1", 1, .toNearestOrEven)
+ /* ddctm786 */ self.comparetotmag64("Inf", "1000", 1, .toNearestOrEven)
+ /* ddctm787 */ self.comparetotmag64("Inf", "Inf", 0, .toNearestOrEven)
+ /* ddctm788 */ self.comparetotmag64("-1000", "Inf", -1, .toNearestOrEven)
+ /* ddctm789 */ self.comparetotmag64("-Inf", "Inf", 0, .toNearestOrEven)
+ /* ddctm790 */ self.comparetotmag64("-1", "Inf", -1, .toNearestOrEven)
+ /* ddctm791 */ self.comparetotmag64("-0", "Inf", -1, .toNearestOrEven)
+ /* ddctm792 */ self.comparetotmag64("0", "Inf", -1, .toNearestOrEven)
+ /* ddctm793 */ self.comparetotmag64("1", "Inf", -1, .toNearestOrEven)
+ /* ddctm794 */ self.comparetotmag64("1000", "Inf", -1, .toNearestOrEven)
+ /* ddctm795 */ self.comparetotmag64("Inf", "Inf", 0, .toNearestOrEven)
+ /* ddctm800 */ self.comparetotmag64("-Inf", "-Inf", 0, .toNearestOrEven)
+ /* ddctm801 */ self.comparetotmag64("-Inf", "-1000", 1, .toNearestOrEven)
+ /* ddctm802 */ self.comparetotmag64("-Inf", "-1", 1, .toNearestOrEven)
+ /* ddctm803 */ self.comparetotmag64("-Inf", "-0", 1, .toNearestOrEven)
+ /* ddctm804 */ self.comparetotmag64("-Inf", "0", 1, .toNearestOrEven)
+ /* ddctm805 */ self.comparetotmag64("-Inf", "1", 1, .toNearestOrEven)
+ /* ddctm806 */ self.comparetotmag64("-Inf", "1000", 1, .toNearestOrEven)
+ /* ddctm807 */ self.comparetotmag64("-Inf", "Inf", 0, .toNearestOrEven)
+ /* ddctm808 */ self.comparetotmag64("-Inf", "-Inf", 0, .toNearestOrEven)
+ /* ddctm809 */ self.comparetotmag64("-1000", "-Inf", -1, .toNearestOrEven)
+ /* ddctm810 */ self.comparetotmag64("-1", "-Inf", -1, .toNearestOrEven)
+ /* ddctm811 */ self.comparetotmag64("-0", "-Inf", -1, .toNearestOrEven)
+ /* ddctm812 */ self.comparetotmag64("0", "-Inf", -1, .toNearestOrEven)
+ /* ddctm813 */ self.comparetotmag64("1", "-Inf", -1, .toNearestOrEven)
+ /* ddctm814 */ self.comparetotmag64("1000", "-Inf", -1, .toNearestOrEven)
+ /* ddctm815 */ self.comparetotmag64("Inf", "-Inf", 0, .toNearestOrEven)
+ /* ddctm821 */ self.comparetotmag64("NaN", "-Inf", 1, .toNearestOrEven)
+ /* ddctm822 */ self.comparetotmag64("NaN", "-1000", 1, .toNearestOrEven)
+ /* ddctm823 */ self.comparetotmag64("NaN", "-1", 1, .toNearestOrEven)
+ /* ddctm824 */ self.comparetotmag64("NaN", "-0", 1, .toNearestOrEven)
+ /* ddctm825 */ self.comparetotmag64("NaN", "0", 1, .toNearestOrEven)
+ /* ddctm826 */ self.comparetotmag64("NaN", "1", 1, .toNearestOrEven)
+ /* ddctm827 */ self.comparetotmag64("NaN", "1000", 1, .toNearestOrEven)
+ /* ddctm828 */ self.comparetotmag64("NaN", "Inf", 1, .toNearestOrEven)
+ /* ddctm829 */ self.comparetotmag64("NaN", "NaN", 0, .toNearestOrEven)
+ /* ddctm830 */ self.comparetotmag64("-Inf", "NaN", -1, .toNearestOrEven)
+ /* ddctm831 */ self.comparetotmag64("-1000", "NaN", -1, .toNearestOrEven)
+ /* ddctm832 */ self.comparetotmag64("-1", "NaN", -1, .toNearestOrEven)
+ /* ddctm833 */ self.comparetotmag64("-0", "NaN", -1, .toNearestOrEven)
+ /* ddctm834 */ self.comparetotmag64("0", "NaN", -1, .toNearestOrEven)
+ /* ddctm835 */ self.comparetotmag64("1", "NaN", -1, .toNearestOrEven)
+ /* ddctm836 */ self.comparetotmag64("1000", "NaN", -1, .toNearestOrEven)
+ /* ddctm837 */ self.comparetotmag64("Inf", "NaN", -1, .toNearestOrEven)
+ /* ddctm838 */ self.comparetotmag64("-NaN", "-NaN", 0, .toNearestOrEven)
+ /* ddctm839 */ self.comparetotmag64("+NaN", "-NaN", 0, .toNearestOrEven)
+ /* ddctm840 */ self.comparetotmag64("-NaN", "+NaN", 0, .toNearestOrEven)
+ /* ddctm841 */ self.comparetotmag64("sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* ddctm842 */ self.comparetotmag64("sNaN", "-NaN", -1, .toNearestOrEven)
+ /* ddctm843 */ self.comparetotmag64("sNaN", "-Inf", 1, .toNearestOrEven)
+ /* ddctm844 */ self.comparetotmag64("sNaN", "-1000", 1, .toNearestOrEven)
+ /* ddctm845 */ self.comparetotmag64("sNaN", "-1", 1, .toNearestOrEven)
+ /* ddctm846 */ self.comparetotmag64("sNaN", "-0", 1, .toNearestOrEven)
+ /* ddctm847 */ self.comparetotmag64("sNaN", "0", 1, .toNearestOrEven)
+ /* ddctm848 */ self.comparetotmag64("sNaN", "1", 1, .toNearestOrEven)
+ /* ddctm849 */ self.comparetotmag64("sNaN", "1000", 1, .toNearestOrEven)
+ /* ddctm850 */ self.comparetotmag64("sNaN", "NaN", -1, .toNearestOrEven)
+ /* ddctm851 */ self.comparetotmag64("sNaN", "sNaN", 0, .toNearestOrEven)
+ /* ddctm852 */ self.comparetotmag64("-sNaN", "sNaN", 0, .toNearestOrEven)
+ /* ddctm853 */ self.comparetotmag64("-NaN", "sNaN", 1, .toNearestOrEven)
+ /* ddctm854 */ self.comparetotmag64("-Inf", "sNaN", -1, .toNearestOrEven)
+ /* ddctm855 */ self.comparetotmag64("-1000", "sNaN", -1, .toNearestOrEven)
+ /* ddctm856 */ self.comparetotmag64("-1", "sNaN", -1, .toNearestOrEven)
+ /* ddctm857 */ self.comparetotmag64("-0", "sNaN", -1, .toNearestOrEven)
+ /* ddctm858 */ self.comparetotmag64("0", "sNaN", -1, .toNearestOrEven)
+ /* ddctm859 */ self.comparetotmag64("1", "sNaN", -1, .toNearestOrEven)
+ /* ddctm860 */ self.comparetotmag64("1000", "sNaN", -1, .toNearestOrEven)
+ /* ddctm861 */ self.comparetotmag64("Inf", "sNaN", -1, .toNearestOrEven)
+ /* ddctm862 */ self.comparetotmag64("NaN", "sNaN", 1, .toNearestOrEven)
+ /* ddctm863 */ self.comparetotmag64("sNaN", "sNaN", 0, .toNearestOrEven)
+ /* ddctm871 */ self.comparetotmag64("-sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* ddctm872 */ self.comparetotmag64("-sNaN", "-NaN", -1, .toNearestOrEven)
+ /* ddctm873 */ self.comparetotmag64("-sNaN", "-Inf", 1, .toNearestOrEven)
+ /* ddctm874 */ self.comparetotmag64("-sNaN", "-1000", 1, .toNearestOrEven)
+ /* ddctm875 */ self.comparetotmag64("-sNaN", "-1", 1, .toNearestOrEven)
+ /* ddctm876 */ self.comparetotmag64("-sNaN", "-0", 1, .toNearestOrEven)
+ /* ddctm877 */ self.comparetotmag64("-sNaN", "0", 1, .toNearestOrEven)
+ /* ddctm878 */ self.comparetotmag64("-sNaN", "1", 1, .toNearestOrEven)
+ /* ddctm879 */ self.comparetotmag64("-sNaN", "1000", 1, .toNearestOrEven)
+ /* ddctm880 */ self.comparetotmag64("-sNaN", "NaN", -1, .toNearestOrEven)
+ /* ddctm881 */ self.comparetotmag64("-sNaN", "sNaN", 0, .toNearestOrEven)
+ /* ddctm882 */ self.comparetotmag64("-sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* ddctm883 */ self.comparetotmag64("-NaN", "-sNaN", 1, .toNearestOrEven)
+ /* ddctm884 */ self.comparetotmag64("-Inf", "-sNaN", -1, .toNearestOrEven)
+ /* ddctm885 */ self.comparetotmag64("-1000", "-sNaN", -1, .toNearestOrEven)
+ /* ddctm886 */ self.comparetotmag64("-1", "-sNaN", -1, .toNearestOrEven)
+ /* ddctm887 */ self.comparetotmag64("-0", "-sNaN", -1, .toNearestOrEven)
+ /* ddctm888 */ self.comparetotmag64("0", "-sNaN", -1, .toNearestOrEven)
+ /* ddctm889 */ self.comparetotmag64("1", "-sNaN", -1, .toNearestOrEven)
+ /* ddctm890 */ self.comparetotmag64("1000", "-sNaN", -1, .toNearestOrEven)
+ /* ddctm891 */ self.comparetotmag64("Inf", "-sNaN", -1, .toNearestOrEven)
+ /* ddctm892 */ self.comparetotmag64("NaN", "-sNaN", 1, .toNearestOrEven)
+ /* ddctm893 */ self.comparetotmag64("sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* ddctm960 */ self.comparetotmag64("NaN(0x9)", "-Inf", 1, .toNearestOrEven)
+ /* ddctm961 */ self.comparetotmag64("NaN(0x8)", "999", 1, .toNearestOrEven)
+ /* ddctm962 */ self.comparetotmag64("NaN(0x4d)", "Inf", 1, .toNearestOrEven)
+ /* ddctm963 */ self.comparetotmag64("-NaN(0x43)", "NaN(0x5)", 1, .toNearestOrEven)
+ /* ddctm964 */ self.comparetotmag64("-Inf", "-NaN(0x4)", -1, .toNearestOrEven)
+ /* ddctm965 */ self.comparetotmag64("-999", "-NaN(0x21)", -1, .toNearestOrEven)
+ /* ddctm966 */ self.comparetotmag64("Inf", "NaN(0x2)", -1, .toNearestOrEven)
+ /* ddctm970 */ self.comparetotmag64("-NaN(0x29)", "-NaN(0x2a)", -1, .toNearestOrEven)
+ /* ddctm971 */ self.comparetotmag64("+NaN(0x29)", "-NaN(0x2a)", -1, .toNearestOrEven)
+ /* ddctm972 */ self.comparetotmag64("-NaN(0x29)", "+NaN(0x2a)", -1, .toNearestOrEven)
+ /* ddctm973 */ self.comparetotmag64("+NaN(0x29)", "+NaN(0x2a)", -1, .toNearestOrEven)
+ /* ddctm974 */ self.comparetotmag64("-NaN(0x2a)", "-NaN(0x1)", 1, .toNearestOrEven)
+ /* ddctm975 */ self.comparetotmag64("+NaN(0x2a)", "-NaN(0x1)", 1, .toNearestOrEven)
+ /* ddctm976 */ self.comparetotmag64("-NaN(0x2a)", "+NaN(0x1)", 1, .toNearestOrEven)
+ /* ddctm977 */ self.comparetotmag64("+NaN(0x2a)", "+NaN(0x1)", 1, .toNearestOrEven)
+ /* ddctm980 */ self.comparetotmag64("-sNaN(0x303)", "-sNaN(0x304)", -1, .toNearestOrEven)
+ /* ddctm981 */ self.comparetotmag64("+sNaN(0x303)", "-sNaN(0x304)", -1, .toNearestOrEven)
+ /* ddctm982 */ self.comparetotmag64("-sNaN(0x303)", "+sNaN(0x304)", -1, .toNearestOrEven)
+ /* ddctm983 */ self.comparetotmag64("+sNaN(0x303)", "+sNaN(0x304)", -1, .toNearestOrEven)
+ /* ddctm984 */ self.comparetotmag64("-sNaN(0x304)", "-sNaN(0x303)", 1, .toNearestOrEven)
+ /* ddctm985 */ self.comparetotmag64("+sNaN(0x304)", "-sNaN(0x303)", 1, .toNearestOrEven)
+ /* ddctm986 */ self.comparetotmag64("-sNaN(0x304)", "+sNaN(0x303)", 1, .toNearestOrEven)
+ /* ddctm987 */ self.comparetotmag64("+sNaN(0x304)", "+sNaN(0x303)", 1, .toNearestOrEven)
+ /* ddctm991 */ self.comparetotmag64("-sNaN(0x63)", "-Inf", 1, .toNearestOrEven)
+ /* ddctm992 */ self.comparetotmag64("sNaN(0x62)", "-11", 1, .toNearestOrEven)
+ /* ddctm993 */ self.comparetotmag64("sNaN(0x61)", "NaN", -1, .toNearestOrEven)
+ /* ddctm994 */ self.comparetotmag64("sNaN(0x10)", "sNaN(0x5e)", -1, .toNearestOrEven)
+ /* ddctm995 */ self.comparetotmag64("NaN(0x55)", "sNaN(0x53)", 1, .toNearestOrEven)
+ /* ddctm996 */ self.comparetotmag64("-Inf", "sNaN(0x5c)", -1, .toNearestOrEven)
+ /* ddctm997 */ self.comparetotmag64("088", "sNaN(0x51)", -1, .toNearestOrEven)
+ /* ddctm998 */ self.comparetotmag64("Inf", "sNaN(0x5a)", -1, .toNearestOrEven)
+ /* ddctm999 */ self.comparetotmag64("NaN", "-sNaN(0x59)", 1, .toNearestOrEven)
+ }
+
+ private func comparetotmag64(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ expected: Int,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal64(_arg1, file, line) else { return }
+
+ let result = self.totalOrderMagnitude(arg0, arg1)
+ self.assertInt(result, expected, file, line)
+ }
+
+ func test_comparetotmag128() {
+ /* dqctm001 */ self.comparetotmag128("-2", "-2", 0, .toNearestOrEven)
+ /* dqctm002 */ self.comparetotmag128("-2", "-1", 1, .toNearestOrEven)
+ /* dqctm003 */ self.comparetotmag128("-2", "0", 1, .toNearestOrEven)
+ /* dqctm004 */ self.comparetotmag128("-2", "1", 1, .toNearestOrEven)
+ /* dqctm005 */ self.comparetotmag128("-2", "2", 0, .toNearestOrEven)
+ /* dqctm006 */ self.comparetotmag128("-1", "-2", -1, .toNearestOrEven)
+ /* dqctm007 */ self.comparetotmag128("-1", "-1", 0, .toNearestOrEven)
+ /* dqctm008 */ self.comparetotmag128("-1", "0", 1, .toNearestOrEven)
+ /* dqctm009 */ self.comparetotmag128("-1", "1", 0, .toNearestOrEven)
+ /* dqctm010 */ self.comparetotmag128("-1", "2", -1, .toNearestOrEven)
+ /* dqctm011 */ self.comparetotmag128("0", "-2", -1, .toNearestOrEven)
+ /* dqctm012 */ self.comparetotmag128("0", "-1", -1, .toNearestOrEven)
+ /* dqctm013 */ self.comparetotmag128("0", "0", 0, .toNearestOrEven)
+ /* dqctm014 */ self.comparetotmag128("0", "1", -1, .toNearestOrEven)
+ /* dqctm015 */ self.comparetotmag128("0", "2", -1, .toNearestOrEven)
+ /* dqctm016 */ self.comparetotmag128("1", "-2", -1, .toNearestOrEven)
+ /* dqctm017 */ self.comparetotmag128("1", "-1", 0, .toNearestOrEven)
+ /* dqctm018 */ self.comparetotmag128("1", "0", 1, .toNearestOrEven)
+ /* dqctm019 */ self.comparetotmag128("1", "1", 0, .toNearestOrEven)
+ /* dqctm020 */ self.comparetotmag128("1", "2", -1, .toNearestOrEven)
+ /* dqctm021 */ self.comparetotmag128("2", "-2", 0, .toNearestOrEven)
+ /* dqctm022 */ self.comparetotmag128("2", "-1", 1, .toNearestOrEven)
+ /* dqctm023 */ self.comparetotmag128("2", "0", 1, .toNearestOrEven)
+ /* dqctm025 */ self.comparetotmag128("2", "1", 1, .toNearestOrEven)
+ /* dqctm026 */ self.comparetotmag128("2", "2", 0, .toNearestOrEven)
+ /* dqctm031 */ self.comparetotmag128("-20", "-20", 0, .toNearestOrEven)
+ /* dqctm032 */ self.comparetotmag128("-20", "-10", 1, .toNearestOrEven)
+ /* dqctm033 */ self.comparetotmag128("-20", "00", 1, .toNearestOrEven)
+ /* dqctm034 */ self.comparetotmag128("-20", "10", 1, .toNearestOrEven)
+ /* dqctm035 */ self.comparetotmag128("-20", "20", 0, .toNearestOrEven)
+ /* dqctm036 */ self.comparetotmag128("-10", "-20", -1, .toNearestOrEven)
+ /* dqctm037 */ self.comparetotmag128("-10", "-10", 0, .toNearestOrEven)
+ /* dqctm038 */ self.comparetotmag128("-10", "00", 1, .toNearestOrEven)
+ /* dqctm039 */ self.comparetotmag128("-10", "10", 0, .toNearestOrEven)
+ /* dqctm040 */ self.comparetotmag128("-10", "20", -1, .toNearestOrEven)
+ /* dqctm041 */ self.comparetotmag128("00", "-20", -1, .toNearestOrEven)
+ /* dqctm042 */ self.comparetotmag128("00", "-10", -1, .toNearestOrEven)
+ /* dqctm043 */ self.comparetotmag128("00", "00", 0, .toNearestOrEven)
+ /* dqctm044 */ self.comparetotmag128("00", "10", -1, .toNearestOrEven)
+ /* dqctm045 */ self.comparetotmag128("00", "20", -1, .toNearestOrEven)
+ /* dqctm046 */ self.comparetotmag128("10", "-20", -1, .toNearestOrEven)
+ /* dqctm047 */ self.comparetotmag128("10", "-10", 0, .toNearestOrEven)
+ /* dqctm048 */ self.comparetotmag128("10", "00", 1, .toNearestOrEven)
+ /* dqctm049 */ self.comparetotmag128("10", "10", 0, .toNearestOrEven)
+ /* dqctm050 */ self.comparetotmag128("10", "20", -1, .toNearestOrEven)
+ /* dqctm051 */ self.comparetotmag128("20", "-20", 0, .toNearestOrEven)
+ /* dqctm052 */ self.comparetotmag128("20", "-10", 1, .toNearestOrEven)
+ /* dqctm053 */ self.comparetotmag128("20", "00", 1, .toNearestOrEven)
+ /* dqctm055 */ self.comparetotmag128("20", "10", 1, .toNearestOrEven)
+ /* dqctm056 */ self.comparetotmag128("20", "20", 0, .toNearestOrEven)
+ /* dqctm061 */ self.comparetotmag128("-2.0", "-2.0", 0, .toNearestOrEven)
+ /* dqctm062 */ self.comparetotmag128("-2.0", "-1.0", 1, .toNearestOrEven)
+ /* dqctm063 */ self.comparetotmag128("-2.0", "0.0", 1, .toNearestOrEven)
+ /* dqctm064 */ self.comparetotmag128("-2.0", "1.0", 1, .toNearestOrEven)
+ /* dqctm065 */ self.comparetotmag128("-2.0", "2.0", 0, .toNearestOrEven)
+ /* dqctm066 */ self.comparetotmag128("-1.0", "-2.0", -1, .toNearestOrEven)
+ /* dqctm067 */ self.comparetotmag128("-1.0", "-1.0", 0, .toNearestOrEven)
+ /* dqctm068 */ self.comparetotmag128("-1.0", "0.0", 1, .toNearestOrEven)
+ /* dqctm069 */ self.comparetotmag128("-1.0", "1.0", 0, .toNearestOrEven)
+ /* dqctm070 */ self.comparetotmag128("-1.0", "2.0", -1, .toNearestOrEven)
+ /* dqctm071 */ self.comparetotmag128("0.0", "-2.0", -1, .toNearestOrEven)
+ /* dqctm072 */ self.comparetotmag128("0.0", "-1.0", -1, .toNearestOrEven)
+ /* dqctm073 */ self.comparetotmag128("0.0", "0.0", 0, .toNearestOrEven)
+ /* dqctm074 */ self.comparetotmag128("0.0", "1.0", -1, .toNearestOrEven)
+ /* dqctm075 */ self.comparetotmag128("0.0", "2.0", -1, .toNearestOrEven)
+ /* dqctm076 */ self.comparetotmag128("1.0", "-2.0", -1, .toNearestOrEven)
+ /* dqctm077 */ self.comparetotmag128("1.0", "-1.0", 0, .toNearestOrEven)
+ /* dqctm078 */ self.comparetotmag128("1.0", "0.0", 1, .toNearestOrEven)
+ /* dqctm079 */ self.comparetotmag128("1.0", "1.0", 0, .toNearestOrEven)
+ /* dqctm080 */ self.comparetotmag128("1.0", "2.0", -1, .toNearestOrEven)
+ /* dqctm081 */ self.comparetotmag128("2.0", "-2.0", 0, .toNearestOrEven)
+ /* dqctm082 */ self.comparetotmag128("2.0", "-1.0", 1, .toNearestOrEven)
+ /* dqctm083 */ self.comparetotmag128("2.0", "0.0", 1, .toNearestOrEven)
+ /* dqctm085 */ self.comparetotmag128("2.0", "1.0", 1, .toNearestOrEven)
+ /* dqctm086 */ self.comparetotmag128("2.0", "2.0", 0, .toNearestOrEven)
+ /* dqctm090 */ self.comparetotmag128("9.99999999999999999999999999999E+6144", "9.99999999999999999999999999999E+6144", 0, .toNearestOrEven)
+ /* dqctm091 */ self.comparetotmag128("-9.99999999999999999999999999999E+6144", "9.99999999999999999999999999999E+6144", 0, .toNearestOrEven)
+ /* dqctm092 */ self.comparetotmag128("9.99999999999999999999999999999E+6144", "-9.99999999999999999999999999999E+6144", 0, .toNearestOrEven)
+ /* dqctm093 */ self.comparetotmag128("-9.99999999999999999999999999999E+6144", "-9.99999999999999999999999999999E+6144", 0, .toNearestOrEven)
+ /* dqctm100 */ self.comparetotmag128("7.0", "7.0", 0, .toNearestOrEven)
+ /* dqctm101 */ self.comparetotmag128("7.0", "7", -1, .toNearestOrEven)
+ /* dqctm102 */ self.comparetotmag128("7", "7.0", 1, .toNearestOrEven)
+ /* dqctm103 */ self.comparetotmag128("7E+0", "7.0", 1, .toNearestOrEven)
+ /* dqctm104 */ self.comparetotmag128("70E-1", "7.0", 0, .toNearestOrEven)
+ /* dqctm105 */ self.comparetotmag128("0.7E+1", "7", 0, .toNearestOrEven)
+ /* dqctm106 */ self.comparetotmag128("70E-1", "7", -1, .toNearestOrEven)
+ /* dqctm107 */ self.comparetotmag128("7.0", "7E+0", -1, .toNearestOrEven)
+ /* dqctm108 */ self.comparetotmag128("7.0", "70E-1", 0, .toNearestOrEven)
+ /* dqctm109 */ self.comparetotmag128("7", "0.7E+1", 0, .toNearestOrEven)
+ /* dqctm110 */ self.comparetotmag128("7", "70E-1", 1, .toNearestOrEven)
+ /* dqctm1110 */ self.comparetotmag128("0E-6143", "0", -1, .toNearestOrEven)
+ /* dqctm1111 */ self.comparetotmag128("0E-6143", "-0", -1, .toNearestOrEven)
+ /* dqctm1112 */ self.comparetotmag128("-0E-6143", "0", -1, .toNearestOrEven)
+ /* dqctm1113 */ self.comparetotmag128("-0E-6143", "-0", -1, .toNearestOrEven)
+ /* dqctm1114 */ self.comparetotmag128("0E-6143", "0E+6144", -1, .toNearestOrEven)
+ /* dqctm1115 */ self.comparetotmag128("0E-6143", "-0E+6144", -1, .toNearestOrEven)
+ /* dqctm1116 */ self.comparetotmag128("-0E-6143", "0E+6144", -1, .toNearestOrEven)
+ /* dqctm1117 */ self.comparetotmag128("-0E-6143", "-0E+6144", -1, .toNearestOrEven)
+ /* dqctm1118 */ self.comparetotmag128("0", "0E+6144", -1, .toNearestOrEven)
+ /* dqctm1119 */ self.comparetotmag128("0", "-0E+6144", -1, .toNearestOrEven)
+ /* dqctm1120 */ self.comparetotmag128("-0", "0E+6144", -1, .toNearestOrEven)
+ /* dqctm1121 */ self.comparetotmag128("-0", "-0E+6144", -1, .toNearestOrEven)
+ /* dqctm1130 */ self.comparetotmag128("0E+6144", "0", 1, .toNearestOrEven)
+ /* dqctm1131 */ self.comparetotmag128("0E+6144", "-0", 1, .toNearestOrEven)
+ /* dqctm1132 */ self.comparetotmag128("-0E+6144", "0", 1, .toNearestOrEven)
+ /* dqctm1133 */ self.comparetotmag128("-0E+6144", "-0", 1, .toNearestOrEven)
+ /* dqctm1134 */ self.comparetotmag128("0E+6144", "0E-6143", 1, .toNearestOrEven)
+ /* dqctm1135 */ self.comparetotmag128("0E+6144", "-0E-6143", 1, .toNearestOrEven)
+ /* dqctm1136 */ self.comparetotmag128("-0E+6144", "0E-6143", 1, .toNearestOrEven)
+ /* dqctm1137 */ self.comparetotmag128("-0E+6144", "-0E-6143", 1, .toNearestOrEven)
+ /* dqctm1138 */ self.comparetotmag128("0", "0E-6143", 1, .toNearestOrEven)
+ /* dqctm1139 */ self.comparetotmag128("0", "-0E-6143", 1, .toNearestOrEven)
+ /* dqctm1140 */ self.comparetotmag128("-0", "0E-6143", 1, .toNearestOrEven)
+ /* dqctm1141 */ self.comparetotmag128("-0", "-0E-6143", 1, .toNearestOrEven)
+ /* dqctm120 */ self.comparetotmag128("8.0", "7.0", 1, .toNearestOrEven)
+ /* dqctm121 */ self.comparetotmag128("8.0", "7", 1, .toNearestOrEven)
+ /* dqctm122 */ self.comparetotmag128("8", "7.0", 1, .toNearestOrEven)
+ /* dqctm123 */ self.comparetotmag128("8E+0", "7.0", 1, .toNearestOrEven)
+ /* dqctm124 */ self.comparetotmag128("80E-1", "7.0", 1, .toNearestOrEven)
+ /* dqctm125 */ self.comparetotmag128("0.8E+1", "7", 1, .toNearestOrEven)
+ /* dqctm126 */ self.comparetotmag128("80E-1", "7", 1, .toNearestOrEven)
+ /* dqctm127 */ self.comparetotmag128("8.0", "7E+0", 1, .toNearestOrEven)
+ /* dqctm128 */ self.comparetotmag128("8.0", "70E-1", 1, .toNearestOrEven)
+ /* dqctm129 */ self.comparetotmag128("8", "0.7E+1", 1, .toNearestOrEven)
+ /* dqctm130 */ self.comparetotmag128("8", "70E-1", 1, .toNearestOrEven)
+ /* dqctm140 */ self.comparetotmag128("8.0", "9.0", -1, .toNearestOrEven)
+ /* dqctm141 */ self.comparetotmag128("8.0", "9", -1, .toNearestOrEven)
+ /* dqctm142 */ self.comparetotmag128("8", "9.0", -1, .toNearestOrEven)
+ /* dqctm143 */ self.comparetotmag128("8E+0", "9.0", -1, .toNearestOrEven)
+ /* dqctm144 */ self.comparetotmag128("80E-1", "9.0", -1, .toNearestOrEven)
+ /* dqctm145 */ self.comparetotmag128("0.8E+1", "9", -1, .toNearestOrEven)
+ /* dqctm146 */ self.comparetotmag128("80E-1", "9", -1, .toNearestOrEven)
+ /* dqctm147 */ self.comparetotmag128("8.0", "9E+0", -1, .toNearestOrEven)
+ /* dqctm148 */ self.comparetotmag128("8.0", "90E-1", -1, .toNearestOrEven)
+ /* dqctm149 */ self.comparetotmag128("8", "0.9E+1", -1, .toNearestOrEven)
+ /* dqctm150 */ self.comparetotmag128("8", "90E-1", -1, .toNearestOrEven)
+ /* dqctm200 */ self.comparetotmag128("-7.0", "7.0", 0, .toNearestOrEven)
+ /* dqctm201 */ self.comparetotmag128("-7.0", "7", -1, .toNearestOrEven)
+ /* dqctm202 */ self.comparetotmag128("-7", "7.0", 1, .toNearestOrEven)
+ /* dqctm203 */ self.comparetotmag128("-7E+0", "7.0", 1, .toNearestOrEven)
+ /* dqctm204 */ self.comparetotmag128("-70E-1", "7.0", 0, .toNearestOrEven)
+ /* dqctm205 */ self.comparetotmag128("-0.7E+1", "7", 0, .toNearestOrEven)
+ /* dqctm206 */ self.comparetotmag128("-70E-1", "7", -1, .toNearestOrEven)
+ /* dqctm207 */ self.comparetotmag128("-7.0", "7E+0", -1, .toNearestOrEven)
+ /* dqctm208 */ self.comparetotmag128("-7.0", "70E-1", 0, .toNearestOrEven)
+ /* dqctm209 */ self.comparetotmag128("-7", "0.7E+1", 0, .toNearestOrEven)
+ /* dqctm210 */ self.comparetotmag128("-7", "70E-1", 1, .toNearestOrEven)
+ /* dqctm220 */ self.comparetotmag128("-8.0", "7.0", 1, .toNearestOrEven)
+ /* dqctm221 */ self.comparetotmag128("-8.0", "7", 1, .toNearestOrEven)
+ /* dqctm222 */ self.comparetotmag128("-8", "7.0", 1, .toNearestOrEven)
+ /* dqctm223 */ self.comparetotmag128("-8E+0", "7.0", 1, .toNearestOrEven)
+ /* dqctm224 */ self.comparetotmag128("-80E-1", "7.0", 1, .toNearestOrEven)
+ /* dqctm225 */ self.comparetotmag128("-0.8E+1", "7", 1, .toNearestOrEven)
+ /* dqctm226 */ self.comparetotmag128("-80E-1", "7", 1, .toNearestOrEven)
+ /* dqctm227 */ self.comparetotmag128("-8.0", "7E+0", 1, .toNearestOrEven)
+ /* dqctm228 */ self.comparetotmag128("-8.0", "70E-1", 1, .toNearestOrEven)
+ /* dqctm229 */ self.comparetotmag128("-8", "0.7E+1", 1, .toNearestOrEven)
+ /* dqctm230 */ self.comparetotmag128("-8", "70E-1", 1, .toNearestOrEven)
+ /* dqctm240 */ self.comparetotmag128("-8.0", "9.0", -1, .toNearestOrEven)
+ /* dqctm241 */ self.comparetotmag128("-8.0", "9", -1, .toNearestOrEven)
+ /* dqctm242 */ self.comparetotmag128("-8", "9.0", -1, .toNearestOrEven)
+ /* dqctm243 */ self.comparetotmag128("-8E+0", "9.0", -1, .toNearestOrEven)
+ /* dqctm244 */ self.comparetotmag128("-80E-1", "9.0", -1, .toNearestOrEven)
+ /* dqctm245 */ self.comparetotmag128("-0.8E+1", "9", -1, .toNearestOrEven)
+ /* dqctm246 */ self.comparetotmag128("-80E-1", "9", -1, .toNearestOrEven)
+ /* dqctm247 */ self.comparetotmag128("-8.0", "9E+0", -1, .toNearestOrEven)
+ /* dqctm248 */ self.comparetotmag128("-8.0", "90E-1", -1, .toNearestOrEven)
+ /* dqctm249 */ self.comparetotmag128("-8", "0.9E+1", -1, .toNearestOrEven)
+ /* dqctm250 */ self.comparetotmag128("-8", "90E-1", -1, .toNearestOrEven)
+ /* dqctm300 */ self.comparetotmag128("7.0", "-7.0", 0, .toNearestOrEven)
+ /* dqctm301 */ self.comparetotmag128("7.0", "-7", -1, .toNearestOrEven)
+ /* dqctm302 */ self.comparetotmag128("7", "-7.0", 1, .toNearestOrEven)
+ /* dqctm303 */ self.comparetotmag128("7E+0", "-7.0", 1, .toNearestOrEven)
+ /* dqctm304 */ self.comparetotmag128("70E-1", "-7.0", 0, .toNearestOrEven)
+ /* dqctm305 */ self.comparetotmag128(".7E+1", "-7", 0, .toNearestOrEven)
+ /* dqctm306 */ self.comparetotmag128("70E-1", "-7", -1, .toNearestOrEven)
+ /* dqctm307 */ self.comparetotmag128("7.0", "-7E+0", -1, .toNearestOrEven)
+ /* dqctm308 */ self.comparetotmag128("7.0", "-70E-1", 0, .toNearestOrEven)
+ /* dqctm309 */ self.comparetotmag128("7", "-.7E+1", 0, .toNearestOrEven)
+ /* dqctm310 */ self.comparetotmag128("7", "-70E-1", 1, .toNearestOrEven)
+ /* dqctm320 */ self.comparetotmag128("8.0", "-7.0", 1, .toNearestOrEven)
+ /* dqctm321 */ self.comparetotmag128("8.0", "-7", 1, .toNearestOrEven)
+ /* dqctm322 */ self.comparetotmag128("8", "-7.0", 1, .toNearestOrEven)
+ /* dqctm323 */ self.comparetotmag128("8E+0", "-7.0", 1, .toNearestOrEven)
+ /* dqctm324 */ self.comparetotmag128("80E-1", "-7.0", 1, .toNearestOrEven)
+ /* dqctm325 */ self.comparetotmag128(".8E+1", "-7", 1, .toNearestOrEven)
+ /* dqctm326 */ self.comparetotmag128("80E-1", "-7", 1, .toNearestOrEven)
+ /* dqctm327 */ self.comparetotmag128("8.0", "-7E+0", 1, .toNearestOrEven)
+ /* dqctm328 */ self.comparetotmag128("8.0", "-70E-1", 1, .toNearestOrEven)
+ /* dqctm329 */ self.comparetotmag128("8", "-.7E+1", 1, .toNearestOrEven)
+ /* dqctm330 */ self.comparetotmag128("8", "-70E-1", 1, .toNearestOrEven)
+ /* dqctm340 */ self.comparetotmag128("8.0", "-9.0", -1, .toNearestOrEven)
+ /* dqctm341 */ self.comparetotmag128("8.0", "-9", -1, .toNearestOrEven)
+ /* dqctm342 */ self.comparetotmag128("8", "-9.0", -1, .toNearestOrEven)
+ /* dqctm343 */ self.comparetotmag128("8E+0", "-9.0", -1, .toNearestOrEven)
+ /* dqctm344 */ self.comparetotmag128("80E-1", "-9.0", -1, .toNearestOrEven)
+ /* dqctm345 */ self.comparetotmag128(".8E+1", "-9", -1, .toNearestOrEven)
+ /* dqctm346 */ self.comparetotmag128("80E-1", "-9", -1, .toNearestOrEven)
+ /* dqctm347 */ self.comparetotmag128("8.0", "-9E+0", -1, .toNearestOrEven)
+ /* dqctm348 */ self.comparetotmag128("8.0", "-90E-1", -1, .toNearestOrEven)
+ /* dqctm349 */ self.comparetotmag128("8", "-.9E+1", -1, .toNearestOrEven)
+ /* dqctm350 */ self.comparetotmag128("8", "-90E-1", -1, .toNearestOrEven)
+ /* dqctm400 */ self.comparetotmag128("-7.0", "-7.0", 0, .toNearestOrEven)
+ /* dqctm401 */ self.comparetotmag128("-7.0", "-7", -1, .toNearestOrEven)
+ /* dqctm402 */ self.comparetotmag128("-7", "-7.0", 1, .toNearestOrEven)
+ /* dqctm403 */ self.comparetotmag128("-7E+0", "-7.0", 1, .toNearestOrEven)
+ /* dqctm404 */ self.comparetotmag128("-70E-1", "-7.0", 0, .toNearestOrEven)
+ /* dqctm405 */ self.comparetotmag128("-.7E+1", "-7", 0, .toNearestOrEven)
+ /* dqctm406 */ self.comparetotmag128("-70E-1", "-7", -1, .toNearestOrEven)
+ /* dqctm407 */ self.comparetotmag128("-7.0", "-7E+0", -1, .toNearestOrEven)
+ /* dqctm408 */ self.comparetotmag128("-7.0", "-70E-1", 0, .toNearestOrEven)
+ /* dqctm409 */ self.comparetotmag128("-7", "-.7E+1", 0, .toNearestOrEven)
+ /* dqctm410 */ self.comparetotmag128("-7", "-70E-1", 1, .toNearestOrEven)
+ /* dqctm420 */ self.comparetotmag128("-8.0", "-7.0", 1, .toNearestOrEven)
+ /* dqctm421 */ self.comparetotmag128("-8.0", "-7", 1, .toNearestOrEven)
+ /* dqctm422 */ self.comparetotmag128("-8", "-7.0", 1, .toNearestOrEven)
+ /* dqctm423 */ self.comparetotmag128("-8E+0", "-7.0", 1, .toNearestOrEven)
+ /* dqctm424 */ self.comparetotmag128("-80E-1", "-7.0", 1, .toNearestOrEven)
+ /* dqctm425 */ self.comparetotmag128("-.8E+1", "-7", 1, .toNearestOrEven)
+ /* dqctm426 */ self.comparetotmag128("-80E-1", "-7", 1, .toNearestOrEven)
+ /* dqctm427 */ self.comparetotmag128("-8.0", "-7E+0", 1, .toNearestOrEven)
+ /* dqctm428 */ self.comparetotmag128("-8.0", "-70E-1", 1, .toNearestOrEven)
+ /* dqctm429 */ self.comparetotmag128("-8", "-.7E+1", 1, .toNearestOrEven)
+ /* dqctm430 */ self.comparetotmag128("-8", "-70E-1", 1, .toNearestOrEven)
+ /* dqctm440 */ self.comparetotmag128("-8.0", "-9.0", -1, .toNearestOrEven)
+ /* dqctm441 */ self.comparetotmag128("-8.0", "-9", -1, .toNearestOrEven)
+ /* dqctm442 */ self.comparetotmag128("-8", "-9.0", -1, .toNearestOrEven)
+ /* dqctm443 */ self.comparetotmag128("-8E+0", "-9.0", -1, .toNearestOrEven)
+ /* dqctm444 */ self.comparetotmag128("-80E-1", "-9.0", -1, .toNearestOrEven)
+ /* dqctm445 */ self.comparetotmag128("-.8E+1", "-9", -1, .toNearestOrEven)
+ /* dqctm446 */ self.comparetotmag128("-80E-1", "-9", -1, .toNearestOrEven)
+ /* dqctm447 */ self.comparetotmag128("-8.0", "-9E+0", -1, .toNearestOrEven)
+ /* dqctm448 */ self.comparetotmag128("-8.0", "-90E-1", -1, .toNearestOrEven)
+ /* dqctm449 */ self.comparetotmag128("-8", "-.9E+1", -1, .toNearestOrEven)
+ /* dqctm450 */ self.comparetotmag128("-8", "-90E-1", -1, .toNearestOrEven)
+ /* dqctm473 */ self.comparetotmag128("123.4560000000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* dqctm474 */ self.comparetotmag128("123.456000000000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* dqctm475 */ self.comparetotmag128("123.45600000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* dqctm476 */ self.comparetotmag128("123.4560000000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* dqctm477 */ self.comparetotmag128("123.456000000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* dqctm478 */ self.comparetotmag128("123.45600000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* dqctm479 */ self.comparetotmag128("123.4560000E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* dqctm480 */ self.comparetotmag128("123.456000E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* dqctm481 */ self.comparetotmag128("123.45600E-89", "123.456E-89", -1, .toNearestOrEven)
+ /* dqctm482 */ self.comparetotmag128("123.4560E+89", "123.456E+89", -1, .toNearestOrEven)
+ /* dqctm483 */ self.comparetotmag128("123.456E-89", "123.456E-89", 0, .toNearestOrEven)
+ /* dqctm487 */ self.comparetotmag128("123.456E+89", "123.4560000000000E+89", 1, .toNearestOrEven)
+ /* dqctm488 */ self.comparetotmag128("123.456E-89", "123.456000000000E-89", 1, .toNearestOrEven)
+ /* dqctm489 */ self.comparetotmag128("123.456E+89", "123.45600000000E+89", 1, .toNearestOrEven)
+ /* dqctm490 */ self.comparetotmag128("123.456E-89", "123.4560000000E-89", 1, .toNearestOrEven)
+ /* dqctm491 */ self.comparetotmag128("123.456E+89", "123.456000000E+89", 1, .toNearestOrEven)
+ /* dqctm492 */ self.comparetotmag128("123.456E-89", "123.45600000E-89", 1, .toNearestOrEven)
+ /* dqctm493 */ self.comparetotmag128("123.456E+89", "123.4560000E+89", 1, .toNearestOrEven)
+ /* dqctm494 */ self.comparetotmag128("123.456E-89", "123.456000E-89", 1, .toNearestOrEven)
+ /* dqctm495 */ self.comparetotmag128("123.456E+89", "123.45600E+89", 1, .toNearestOrEven)
+ /* dqctm496 */ self.comparetotmag128("123.456E-89", "123.4560E-89", 1, .toNearestOrEven)
+ /* dqctm497 */ self.comparetotmag128("123.456E+89", "123.456E+89", 0, .toNearestOrEven)
+ /* dqctm498 */ self.comparetotmag128("1", "1E-17", 1, .toNearestOrEven)
+ /* dqctm499 */ self.comparetotmag128("1", "1E-16", 1, .toNearestOrEven)
+ /* dqctm500 */ self.comparetotmag128("1", "1E-15", 1, .toNearestOrEven)
+ /* dqctm501 */ self.comparetotmag128("1", "1E-14", 1, .toNearestOrEven)
+ /* dqctm502 */ self.comparetotmag128("1", "1E-13", 1, .toNearestOrEven)
+ /* dqctm503 */ self.comparetotmag128("1", "1E-12", 1, .toNearestOrEven)
+ /* dqctm504 */ self.comparetotmag128("1", "1E-11", 1, .toNearestOrEven)
+ /* dqctm505 */ self.comparetotmag128("1", "1E-10", 1, .toNearestOrEven)
+ /* dqctm506 */ self.comparetotmag128("1", "1E-9", 1, .toNearestOrEven)
+ /* dqctm507 */ self.comparetotmag128("1", "1E-8", 1, .toNearestOrEven)
+ /* dqctm508 */ self.comparetotmag128("1", "1E-7", 1, .toNearestOrEven)
+ /* dqctm509 */ self.comparetotmag128("1", "1E-6", 1, .toNearestOrEven)
+ /* dqctm510 */ self.comparetotmag128("1", "1E-5", 1, .toNearestOrEven)
+ /* dqctm511 */ self.comparetotmag128("1", "1E-4", 1, .toNearestOrEven)
+ /* dqctm512 */ self.comparetotmag128("1", "1E-3", 1, .toNearestOrEven)
+ /* dqctm513 */ self.comparetotmag128("1", "1E-2", 1, .toNearestOrEven)
+ /* dqctm514 */ self.comparetotmag128("1", "1E-1", 1, .toNearestOrEven)
+ /* dqctm515 */ self.comparetotmag128("1", "1E-0", 0, .toNearestOrEven)
+ /* dqctm516 */ self.comparetotmag128("1", "1E+1", -1, .toNearestOrEven)
+ /* dqctm517 */ self.comparetotmag128("1", "1E+2", -1, .toNearestOrEven)
+ /* dqctm518 */ self.comparetotmag128("1", "1E+3", -1, .toNearestOrEven)
+ /* dqctm519 */ self.comparetotmag128("1", "1E+4", -1, .toNearestOrEven)
+ /* dqctm521 */ self.comparetotmag128("1", "1E+5", -1, .toNearestOrEven)
+ /* dqctm522 */ self.comparetotmag128("1", "1E+6", -1, .toNearestOrEven)
+ /* dqctm523 */ self.comparetotmag128("1", "1E+7", -1, .toNearestOrEven)
+ /* dqctm524 */ self.comparetotmag128("1", "1E+8", -1, .toNearestOrEven)
+ /* dqctm525 */ self.comparetotmag128("1", "1E+9", -1, .toNearestOrEven)
+ /* dqctm526 */ self.comparetotmag128("1", "1E+10", -1, .toNearestOrEven)
+ /* dqctm527 */ self.comparetotmag128("1", "1E+11", -1, .toNearestOrEven)
+ /* dqctm528 */ self.comparetotmag128("1", "1E+12", -1, .toNearestOrEven)
+ /* dqctm529 */ self.comparetotmag128("1", "1E+13", -1, .toNearestOrEven)
+ /* dqctm530 */ self.comparetotmag128("1", "1E+14", -1, .toNearestOrEven)
+ /* dqctm531 */ self.comparetotmag128("1", "1E+15", -1, .toNearestOrEven)
+ /* dqctm532 */ self.comparetotmag128("1", "1E+16", -1, .toNearestOrEven)
+ /* dqctm533 */ self.comparetotmag128("1", "1E+17", -1, .toNearestOrEven)
+ /* dqctm538 */ self.comparetotmag128("1E-17", "1", -1, .toNearestOrEven)
+ /* dqctm539 */ self.comparetotmag128("1E-16", "1", -1, .toNearestOrEven)
+ /* dqctm540 */ self.comparetotmag128("1E-15", "1", -1, .toNearestOrEven)
+ /* dqctm541 */ self.comparetotmag128("1E-14", "1", -1, .toNearestOrEven)
+ /* dqctm542 */ self.comparetotmag128("1E-13", "1", -1, .toNearestOrEven)
+ /* dqctm543 */ self.comparetotmag128("1E-12", "1", -1, .toNearestOrEven)
+ /* dqctm544 */ self.comparetotmag128("1E-11", "1", -1, .toNearestOrEven)
+ /* dqctm545 */ self.comparetotmag128("1E-10", "1", -1, .toNearestOrEven)
+ /* dqctm546 */ self.comparetotmag128("1E-9", "1", -1, .toNearestOrEven)
+ /* dqctm547 */ self.comparetotmag128("1E-8", "1", -1, .toNearestOrEven)
+ /* dqctm548 */ self.comparetotmag128("1E-7", "1", -1, .toNearestOrEven)
+ /* dqctm549 */ self.comparetotmag128("1E-6", "1", -1, .toNearestOrEven)
+ /* dqctm550 */ self.comparetotmag128("1E-5", "1", -1, .toNearestOrEven)
+ /* dqctm551 */ self.comparetotmag128("1E-4", "1", -1, .toNearestOrEven)
+ /* dqctm552 */ self.comparetotmag128("1E-3", "1", -1, .toNearestOrEven)
+ /* dqctm553 */ self.comparetotmag128("1E-2", "1", -1, .toNearestOrEven)
+ /* dqctm554 */ self.comparetotmag128("1E-1", "1", -1, .toNearestOrEven)
+ /* dqctm555 */ self.comparetotmag128("1E-0", "1", 0, .toNearestOrEven)
+ /* dqctm556 */ self.comparetotmag128("1E+1", "1", 1, .toNearestOrEven)
+ /* dqctm557 */ self.comparetotmag128("1E+2", "1", 1, .toNearestOrEven)
+ /* dqctm558 */ self.comparetotmag128("1E+3", "1", 1, .toNearestOrEven)
+ /* dqctm559 */ self.comparetotmag128("1E+4", "1", 1, .toNearestOrEven)
+ /* dqctm561 */ self.comparetotmag128("1E+5", "1", 1, .toNearestOrEven)
+ /* dqctm562 */ self.comparetotmag128("1E+6", "1", 1, .toNearestOrEven)
+ /* dqctm563 */ self.comparetotmag128("1E+7", "1", 1, .toNearestOrEven)
+ /* dqctm564 */ self.comparetotmag128("1E+8", "1", 1, .toNearestOrEven)
+ /* dqctm565 */ self.comparetotmag128("1E+9", "1", 1, .toNearestOrEven)
+ /* dqctm566 */ self.comparetotmag128("1E+10", "1", 1, .toNearestOrEven)
+ /* dqctm567 */ self.comparetotmag128("1E+11", "1", 1, .toNearestOrEven)
+ /* dqctm568 */ self.comparetotmag128("1E+12", "1", 1, .toNearestOrEven)
+ /* dqctm569 */ self.comparetotmag128("1E+13", "1", 1, .toNearestOrEven)
+ /* dqctm570 */ self.comparetotmag128("1E+14", "1", 1, .toNearestOrEven)
+ /* dqctm571 */ self.comparetotmag128("1E+15", "1", 1, .toNearestOrEven)
+ /* dqctm572 */ self.comparetotmag128("1E+16", "1", 1, .toNearestOrEven)
+ /* dqctm573 */ self.comparetotmag128("1E+17", "1", 1, .toNearestOrEven)
+ /* dqctm578 */ self.comparetotmag128("0.000000987654321", "1E-17", 1, .toNearestOrEven)
+ /* dqctm579 */ self.comparetotmag128("0.000000987654321", "1E-16", 1, .toNearestOrEven)
+ /* dqctm580 */ self.comparetotmag128("0.000000987654321", "1E-15", 1, .toNearestOrEven)
+ /* dqctm581 */ self.comparetotmag128("0.000000987654321", "1E-14", 1, .toNearestOrEven)
+ /* dqctm582 */ self.comparetotmag128("0.000000987654321", "1E-13", 1, .toNearestOrEven)
+ /* dqctm583 */ self.comparetotmag128("0.000000987654321", "1E-12", 1, .toNearestOrEven)
+ /* dqctm584 */ self.comparetotmag128("0.000000987654321", "1E-11", 1, .toNearestOrEven)
+ /* dqctm585 */ self.comparetotmag128("0.000000987654321", "1E-10", 1, .toNearestOrEven)
+ /* dqctm586 */ self.comparetotmag128("0.000000987654321", "1E-9", 1, .toNearestOrEven)
+ /* dqctm587 */ self.comparetotmag128("0.000000987654321", "1E-8", 1, .toNearestOrEven)
+ /* dqctm588 */ self.comparetotmag128("0.000000987654321", "1E-7", 1, .toNearestOrEven)
+ /* dqctm589 */ self.comparetotmag128("0.000000987654321", "1E-6", -1, .toNearestOrEven)
+ /* dqctm590 */ self.comparetotmag128("0.000000987654321", "1E-5", -1, .toNearestOrEven)
+ /* dqctm591 */ self.comparetotmag128("0.000000987654321", "1E-4", -1, .toNearestOrEven)
+ /* dqctm592 */ self.comparetotmag128("0.000000987654321", "1E-3", -1, .toNearestOrEven)
+ /* dqctm593 */ self.comparetotmag128("0.000000987654321", "1E-2", -1, .toNearestOrEven)
+ /* dqctm594 */ self.comparetotmag128("0.000000987654321", "1E-1", -1, .toNearestOrEven)
+ /* dqctm595 */ self.comparetotmag128("0.000000987654321", "1E-0", -1, .toNearestOrEven)
+ /* dqctm596 */ self.comparetotmag128("0.000000987654321", "1E+1", -1, .toNearestOrEven)
+ /* dqctm597 */ self.comparetotmag128("0.000000987654321", "1E+2", -1, .toNearestOrEven)
+ /* dqctm598 */ self.comparetotmag128("0.000000987654321", "1E+3", -1, .toNearestOrEven)
+ /* dqctm599 */ self.comparetotmag128("0.000000987654321", "1E+4", -1, .toNearestOrEven)
+ /* dqctm600 */ self.comparetotmag128("12", "12.2345", -1, .toNearestOrEven)
+ /* dqctm601 */ self.comparetotmag128("12.0", "12.2345", -1, .toNearestOrEven)
+ /* dqctm602 */ self.comparetotmag128("12.00", "12.2345", -1, .toNearestOrEven)
+ /* dqctm603 */ self.comparetotmag128("12.000", "12.2345", -1, .toNearestOrEven)
+ /* dqctm604 */ self.comparetotmag128("12.0000", "12.2345", -1, .toNearestOrEven)
+ /* dqctm605 */ self.comparetotmag128("12.00000", "12.2345", -1, .toNearestOrEven)
+ /* dqctm606 */ self.comparetotmag128("12.000000", "12.2345", -1, .toNearestOrEven)
+ /* dqctm607 */ self.comparetotmag128("12.0000000", "12.2345", -1, .toNearestOrEven)
+ /* dqctm608 */ self.comparetotmag128("12.00000000", "12.2345", -1, .toNearestOrEven)
+ /* dqctm609 */ self.comparetotmag128("12.000000000", "12.2345", -1, .toNearestOrEven)
+ /* dqctm610 */ self.comparetotmag128("12.1234", "12", 1, .toNearestOrEven)
+ /* dqctm611 */ self.comparetotmag128("12.1234", "12.0", 1, .toNearestOrEven)
+ /* dqctm612 */ self.comparetotmag128("12.1234", "12.00", 1, .toNearestOrEven)
+ /* dqctm613 */ self.comparetotmag128("12.1234", "12.000", 1, .toNearestOrEven)
+ /* dqctm614 */ self.comparetotmag128("12.1234", "12.0000", 1, .toNearestOrEven)
+ /* dqctm615 */ self.comparetotmag128("12.1234", "12.00000", 1, .toNearestOrEven)
+ /* dqctm616 */ self.comparetotmag128("12.1234", "12.000000", 1, .toNearestOrEven)
+ /* dqctm617 */ self.comparetotmag128("12.1234", "12.0000000", 1, .toNearestOrEven)
+ /* dqctm618 */ self.comparetotmag128("12.1234", "12.00000000", 1, .toNearestOrEven)
+ /* dqctm619 */ self.comparetotmag128("12.1234", "12.000000000", 1, .toNearestOrEven)
+ /* dqctm620 */ self.comparetotmag128("-12", "-12.2345", -1, .toNearestOrEven)
+ /* dqctm621 */ self.comparetotmag128("-12.0", "-12.2345", -1, .toNearestOrEven)
+ /* dqctm622 */ self.comparetotmag128("-12.00", "-12.2345", -1, .toNearestOrEven)
+ /* dqctm623 */ self.comparetotmag128("-12.000", "-12.2345", -1, .toNearestOrEven)
+ /* dqctm624 */ self.comparetotmag128("-12.0000", "-12.2345", -1, .toNearestOrEven)
+ /* dqctm625 */ self.comparetotmag128("-12.00000", "-12.2345", -1, .toNearestOrEven)
+ /* dqctm626 */ self.comparetotmag128("-12.000000", "-12.2345", -1, .toNearestOrEven)
+ /* dqctm627 */ self.comparetotmag128("-12.0000000", "-12.2345", -1, .toNearestOrEven)
+ /* dqctm628 */ self.comparetotmag128("-12.00000000", "-12.2345", -1, .toNearestOrEven)
+ /* dqctm629 */ self.comparetotmag128("-12.000000000", "-12.2345", -1, .toNearestOrEven)
+ /* dqctm630 */ self.comparetotmag128("-12.1234", "-12", 1, .toNearestOrEven)
+ /* dqctm631 */ self.comparetotmag128("-12.1234", "-12.0", 1, .toNearestOrEven)
+ /* dqctm632 */ self.comparetotmag128("-12.1234", "-12.00", 1, .toNearestOrEven)
+ /* dqctm633 */ self.comparetotmag128("-12.1234", "-12.000", 1, .toNearestOrEven)
+ /* dqctm634 */ self.comparetotmag128("-12.1234", "-12.0000", 1, .toNearestOrEven)
+ /* dqctm635 */ self.comparetotmag128("-12.1234", "-12.00000", 1, .toNearestOrEven)
+ /* dqctm636 */ self.comparetotmag128("-12.1234", "-12.000000", 1, .toNearestOrEven)
+ /* dqctm637 */ self.comparetotmag128("-12.1234", "-12.0000000", 1, .toNearestOrEven)
+ /* dqctm638 */ self.comparetotmag128("-12.1234", "-12.00000000", 1, .toNearestOrEven)
+ /* dqctm639 */ self.comparetotmag128("-12.1234", "-12.000000000", 1, .toNearestOrEven)
+ /* dqctm640 */ self.comparetotmag128("0", "0", 0, .toNearestOrEven)
+ /* dqctm641 */ self.comparetotmag128("0", "-0", 0, .toNearestOrEven)
+ /* dqctm642 */ self.comparetotmag128("0", "-0.0", 1, .toNearestOrEven)
+ /* dqctm643 */ self.comparetotmag128("0", "0.0", 1, .toNearestOrEven)
+ /* dqctm644 */ self.comparetotmag128("-0", "0", 0, .toNearestOrEven)
+ /* dqctm645 */ self.comparetotmag128("-0", "-0", 0, .toNearestOrEven)
+ /* dqctm646 */ self.comparetotmag128("-0", "-0.0", 1, .toNearestOrEven)
+ /* dqctm647 */ self.comparetotmag128("-0", "0.0", 1, .toNearestOrEven)
+ /* dqctm648 */ self.comparetotmag128("0.0", "0", -1, .toNearestOrEven)
+ /* dqctm649 */ self.comparetotmag128("0.0", "-0", -1, .toNearestOrEven)
+ /* dqctm650 */ self.comparetotmag128("0.0", "-0.0", 0, .toNearestOrEven)
+ /* dqctm651 */ self.comparetotmag128("0.0", "0.0", 0, .toNearestOrEven)
+ /* dqctm652 */ self.comparetotmag128("-0.0", "0", -1, .toNearestOrEven)
+ /* dqctm653 */ self.comparetotmag128("-0.0", "-0", -1, .toNearestOrEven)
+ /* dqctm654 */ self.comparetotmag128("-0.0", "-0.0", 0, .toNearestOrEven)
+ /* dqctm655 */ self.comparetotmag128("-0.0", "0.0", 0, .toNearestOrEven)
+ /* dqctm656 */ self.comparetotmag128("-0E1", "0.0", 1, .toNearestOrEven)
+ /* dqctm657 */ self.comparetotmag128("-0E2", "0.0", 1, .toNearestOrEven)
+ /* dqctm658 */ self.comparetotmag128("0E1", "0.0", 1, .toNearestOrEven)
+ /* dqctm659 */ self.comparetotmag128("0E2", "0.0", 1, .toNearestOrEven)
+ /* dqctm660 */ self.comparetotmag128("-0E1", "0", 1, .toNearestOrEven)
+ /* dqctm661 */ self.comparetotmag128("-0E2", "0", 1, .toNearestOrEven)
+ /* dqctm662 */ self.comparetotmag128("0E1", "0", 1, .toNearestOrEven)
+ /* dqctm663 */ self.comparetotmag128("0E2", "0", 1, .toNearestOrEven)
+ /* dqctm664 */ self.comparetotmag128("-0E1", "-0E1", 0, .toNearestOrEven)
+ /* dqctm665 */ self.comparetotmag128("-0E2", "-0E1", 1, .toNearestOrEven)
+ /* dqctm666 */ self.comparetotmag128("0E1", "-0E1", 0, .toNearestOrEven)
+ /* dqctm667 */ self.comparetotmag128("0E2", "-0E1", 1, .toNearestOrEven)
+ /* dqctm668 */ self.comparetotmag128("-0E1", "-0E2", -1, .toNearestOrEven)
+ /* dqctm669 */ self.comparetotmag128("-0E2", "-0E2", 0, .toNearestOrEven)
+ /* dqctm670 */ self.comparetotmag128("0E1", "-0E2", -1, .toNearestOrEven)
+ /* dqctm671 */ self.comparetotmag128("0E2", "-0E2", 0, .toNearestOrEven)
+ /* dqctm672 */ self.comparetotmag128("-0E1", "0E1", 0, .toNearestOrEven)
+ /* dqctm673 */ self.comparetotmag128("-0E2", "0E1", 1, .toNearestOrEven)
+ /* dqctm674 */ self.comparetotmag128("0E1", "0E1", 0, .toNearestOrEven)
+ /* dqctm675 */ self.comparetotmag128("0E2", "0E1", 1, .toNearestOrEven)
+ /* dqctm676 */ self.comparetotmag128("-0E1", "0E2", -1, .toNearestOrEven)
+ /* dqctm677 */ self.comparetotmag128("-0E2", "0E2", 0, .toNearestOrEven)
+ /* dqctm678 */ self.comparetotmag128("0E1", "0E2", -1, .toNearestOrEven)
+ /* dqctm679 */ self.comparetotmag128("0E2", "0E2", 0, .toNearestOrEven)
+ /* dqctm680 */ self.comparetotmag128("12", "12", 0, .toNearestOrEven)
+ /* dqctm681 */ self.comparetotmag128("12", "12.0", 1, .toNearestOrEven)
+ /* dqctm682 */ self.comparetotmag128("12", "12.00", 1, .toNearestOrEven)
+ /* dqctm683 */ self.comparetotmag128("12", "12.000", 1, .toNearestOrEven)
+ /* dqctm684 */ self.comparetotmag128("12", "12.0000", 1, .toNearestOrEven)
+ /* dqctm685 */ self.comparetotmag128("12", "12.00000", 1, .toNearestOrEven)
+ /* dqctm686 */ self.comparetotmag128("12", "12.000000", 1, .toNearestOrEven)
+ /* dqctm687 */ self.comparetotmag128("12", "12.0000000", 1, .toNearestOrEven)
+ /* dqctm688 */ self.comparetotmag128("12", "12.00000000", 1, .toNearestOrEven)
+ /* dqctm689 */ self.comparetotmag128("12", "12.000000000", 1, .toNearestOrEven)
+ /* dqctm690 */ self.comparetotmag128("12", "12", 0, .toNearestOrEven)
+ /* dqctm691 */ self.comparetotmag128("12.0", "12", -1, .toNearestOrEven)
+ /* dqctm692 */ self.comparetotmag128("12.00", "12", -1, .toNearestOrEven)
+ /* dqctm693 */ self.comparetotmag128("12.000", "12", -1, .toNearestOrEven)
+ /* dqctm694 */ self.comparetotmag128("12.0000", "12", -1, .toNearestOrEven)
+ /* dqctm695 */ self.comparetotmag128("12.00000", "12", -1, .toNearestOrEven)
+ /* dqctm696 */ self.comparetotmag128("12.000000", "12", -1, .toNearestOrEven)
+ /* dqctm697 */ self.comparetotmag128("12.0000000", "12", -1, .toNearestOrEven)
+ /* dqctm698 */ self.comparetotmag128("12.00000000", "12", -1, .toNearestOrEven)
+ /* dqctm699 */ self.comparetotmag128("12.000000000", "12", -1, .toNearestOrEven)
+ /* dqctm701 */ self.comparetotmag128("12345678000", "1", 1, .toNearestOrEven)
+ /* dqctm702 */ self.comparetotmag128("1", "12345678000", -1, .toNearestOrEven)
+ /* dqctm703 */ self.comparetotmag128("1234567800", "1", 1, .toNearestOrEven)
+ /* dqctm704 */ self.comparetotmag128("1", "1234567800", -1, .toNearestOrEven)
+ /* dqctm705 */ self.comparetotmag128("1234567890", "1", 1, .toNearestOrEven)
+ /* dqctm706 */ self.comparetotmag128("1", "1234567890", -1, .toNearestOrEven)
+ /* dqctm707 */ self.comparetotmag128("1234567891", "1", 1, .toNearestOrEven)
+ /* dqctm708 */ self.comparetotmag128("1", "1234567891", -1, .toNearestOrEven)
+ /* dqctm709 */ self.comparetotmag128("12345678901", "1", 1, .toNearestOrEven)
+ /* dqctm710 */ self.comparetotmag128("1", "12345678901", -1, .toNearestOrEven)
+ /* dqctm711 */ self.comparetotmag128("1234567896", "1", 1, .toNearestOrEven)
+ /* dqctm712 */ self.comparetotmag128("1", "1234567896", -1, .toNearestOrEven)
+ /* dqctm713 */ self.comparetotmag128("-1234567891", "1", 1, .toNearestOrEven)
+ /* dqctm714 */ self.comparetotmag128("1", "-1234567891", -1, .toNearestOrEven)
+ /* dqctm715 */ self.comparetotmag128("-12345678901", "1", 1, .toNearestOrEven)
+ /* dqctm716 */ self.comparetotmag128("1", "-12345678901", -1, .toNearestOrEven)
+ /* dqctm717 */ self.comparetotmag128("-1234567896", "1", 1, .toNearestOrEven)
+ /* dqctm718 */ self.comparetotmag128("1", "-1234567896", -1, .toNearestOrEven)
+ /* dqctm740 */ self.comparetotmag128("1", "0.9999999", 1, .toNearestOrEven)
+ /* dqctm741 */ self.comparetotmag128("1", "0.999999", 1, .toNearestOrEven)
+ /* dqctm742 */ self.comparetotmag128("1", "0.99999", 1, .toNearestOrEven)
+ /* dqctm743 */ self.comparetotmag128("1", "1.0000", 1, .toNearestOrEven)
+ /* dqctm744 */ self.comparetotmag128("1", "1.00001", -1, .toNearestOrEven)
+ /* dqctm745 */ self.comparetotmag128("1", "1.000001", -1, .toNearestOrEven)
+ /* dqctm746 */ self.comparetotmag128("1", "1.0000001", -1, .toNearestOrEven)
+ /* dqctm750 */ self.comparetotmag128("0.9999999", "1", -1, .toNearestOrEven)
+ /* dqctm751 */ self.comparetotmag128("0.999999", "1", -1, .toNearestOrEven)
+ /* dqctm752 */ self.comparetotmag128("0.99999", "1", -1, .toNearestOrEven)
+ /* dqctm753 */ self.comparetotmag128("1.0000", "1", -1, .toNearestOrEven)
+ /* dqctm754 */ self.comparetotmag128("1.00001", "1", 1, .toNearestOrEven)
+ /* dqctm755 */ self.comparetotmag128("1.000001", "1", 1, .toNearestOrEven)
+ /* dqctm756 */ self.comparetotmag128("1.0000001", "1", 1, .toNearestOrEven)
+ /* dqctm780 */ self.comparetotmag128("Inf", "-Inf", 0, .toNearestOrEven)
+ /* dqctm781 */ self.comparetotmag128("Inf", "-1000", 1, .toNearestOrEven)
+ /* dqctm782 */ self.comparetotmag128("Inf", "-1", 1, .toNearestOrEven)
+ /* dqctm783 */ self.comparetotmag128("Inf", "-0", 1, .toNearestOrEven)
+ /* dqctm784 */ self.comparetotmag128("Inf", "0", 1, .toNearestOrEven)
+ /* dqctm785 */ self.comparetotmag128("Inf", "1", 1, .toNearestOrEven)
+ /* dqctm786 */ self.comparetotmag128("Inf", "1000", 1, .toNearestOrEven)
+ /* dqctm787 */ self.comparetotmag128("Inf", "Inf", 0, .toNearestOrEven)
+ /* dqctm788 */ self.comparetotmag128("-1000", "Inf", -1, .toNearestOrEven)
+ /* dqctm789 */ self.comparetotmag128("-Inf", "Inf", 0, .toNearestOrEven)
+ /* dqctm790 */ self.comparetotmag128("-1", "Inf", -1, .toNearestOrEven)
+ /* dqctm791 */ self.comparetotmag128("-0", "Inf", -1, .toNearestOrEven)
+ /* dqctm792 */ self.comparetotmag128("0", "Inf", -1, .toNearestOrEven)
+ /* dqctm793 */ self.comparetotmag128("1", "Inf", -1, .toNearestOrEven)
+ /* dqctm794 */ self.comparetotmag128("1000", "Inf", -1, .toNearestOrEven)
+ /* dqctm795 */ self.comparetotmag128("Inf", "Inf", 0, .toNearestOrEven)
+ /* dqctm800 */ self.comparetotmag128("-Inf", "-Inf", 0, .toNearestOrEven)
+ /* dqctm801 */ self.comparetotmag128("-Inf", "-1000", 1, .toNearestOrEven)
+ /* dqctm802 */ self.comparetotmag128("-Inf", "-1", 1, .toNearestOrEven)
+ /* dqctm803 */ self.comparetotmag128("-Inf", "-0", 1, .toNearestOrEven)
+ /* dqctm804 */ self.comparetotmag128("-Inf", "0", 1, .toNearestOrEven)
+ /* dqctm805 */ self.comparetotmag128("-Inf", "1", 1, .toNearestOrEven)
+ /* dqctm806 */ self.comparetotmag128("-Inf", "1000", 1, .toNearestOrEven)
+ /* dqctm807 */ self.comparetotmag128("-Inf", "Inf", 0, .toNearestOrEven)
+ /* dqctm808 */ self.comparetotmag128("-Inf", "-Inf", 0, .toNearestOrEven)
+ /* dqctm809 */ self.comparetotmag128("-1000", "-Inf", -1, .toNearestOrEven)
+ /* dqctm810 */ self.comparetotmag128("-1", "-Inf", -1, .toNearestOrEven)
+ /* dqctm811 */ self.comparetotmag128("-0", "-Inf", -1, .toNearestOrEven)
+ /* dqctm812 */ self.comparetotmag128("0", "-Inf", -1, .toNearestOrEven)
+ /* dqctm813 */ self.comparetotmag128("1", "-Inf", -1, .toNearestOrEven)
+ /* dqctm814 */ self.comparetotmag128("1000", "-Inf", -1, .toNearestOrEven)
+ /* dqctm815 */ self.comparetotmag128("Inf", "-Inf", 0, .toNearestOrEven)
+ /* dqctm821 */ self.comparetotmag128("NaN", "-Inf", 1, .toNearestOrEven)
+ /* dqctm822 */ self.comparetotmag128("NaN", "-1000", 1, .toNearestOrEven)
+ /* dqctm823 */ self.comparetotmag128("NaN", "-1", 1, .toNearestOrEven)
+ /* dqctm824 */ self.comparetotmag128("NaN", "-0", 1, .toNearestOrEven)
+ /* dqctm825 */ self.comparetotmag128("NaN", "0", 1, .toNearestOrEven)
+ /* dqctm826 */ self.comparetotmag128("NaN", "1", 1, .toNearestOrEven)
+ /* dqctm827 */ self.comparetotmag128("NaN", "1000", 1, .toNearestOrEven)
+ /* dqctm828 */ self.comparetotmag128("NaN", "Inf", 1, .toNearestOrEven)
+ /* dqctm829 */ self.comparetotmag128("NaN", "NaN", 0, .toNearestOrEven)
+ /* dqctm830 */ self.comparetotmag128("-Inf", "NaN", -1, .toNearestOrEven)
+ /* dqctm831 */ self.comparetotmag128("-1000", "NaN", -1, .toNearestOrEven)
+ /* dqctm832 */ self.comparetotmag128("-1", "NaN", -1, .toNearestOrEven)
+ /* dqctm833 */ self.comparetotmag128("-0", "NaN", -1, .toNearestOrEven)
+ /* dqctm834 */ self.comparetotmag128("0", "NaN", -1, .toNearestOrEven)
+ /* dqctm835 */ self.comparetotmag128("1", "NaN", -1, .toNearestOrEven)
+ /* dqctm836 */ self.comparetotmag128("1000", "NaN", -1, .toNearestOrEven)
+ /* dqctm837 */ self.comparetotmag128("Inf", "NaN", -1, .toNearestOrEven)
+ /* dqctm838 */ self.comparetotmag128("-NaN", "-NaN", 0, .toNearestOrEven)
+ /* dqctm839 */ self.comparetotmag128("+NaN", "-NaN", 0, .toNearestOrEven)
+ /* dqctm840 */ self.comparetotmag128("-NaN", "+NaN", 0, .toNearestOrEven)
+ /* dqctm841 */ self.comparetotmag128("sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* dqctm842 */ self.comparetotmag128("sNaN", "-NaN", -1, .toNearestOrEven)
+ /* dqctm843 */ self.comparetotmag128("sNaN", "-Inf", 1, .toNearestOrEven)
+ /* dqctm844 */ self.comparetotmag128("sNaN", "-1000", 1, .toNearestOrEven)
+ /* dqctm845 */ self.comparetotmag128("sNaN", "-1", 1, .toNearestOrEven)
+ /* dqctm846 */ self.comparetotmag128("sNaN", "-0", 1, .toNearestOrEven)
+ /* dqctm847 */ self.comparetotmag128("sNaN", "0", 1, .toNearestOrEven)
+ /* dqctm848 */ self.comparetotmag128("sNaN", "1", 1, .toNearestOrEven)
+ /* dqctm849 */ self.comparetotmag128("sNaN", "1000", 1, .toNearestOrEven)
+ /* dqctm850 */ self.comparetotmag128("sNaN", "NaN", -1, .toNearestOrEven)
+ /* dqctm851 */ self.comparetotmag128("sNaN", "sNaN", 0, .toNearestOrEven)
+ /* dqctm852 */ self.comparetotmag128("-sNaN", "sNaN", 0, .toNearestOrEven)
+ /* dqctm853 */ self.comparetotmag128("-NaN", "sNaN", 1, .toNearestOrEven)
+ /* dqctm854 */ self.comparetotmag128("-Inf", "sNaN", -1, .toNearestOrEven)
+ /* dqctm855 */ self.comparetotmag128("-1000", "sNaN", -1, .toNearestOrEven)
+ /* dqctm856 */ self.comparetotmag128("-1", "sNaN", -1, .toNearestOrEven)
+ /* dqctm857 */ self.comparetotmag128("-0", "sNaN", -1, .toNearestOrEven)
+ /* dqctm858 */ self.comparetotmag128("0", "sNaN", -1, .toNearestOrEven)
+ /* dqctm859 */ self.comparetotmag128("1", "sNaN", -1, .toNearestOrEven)
+ /* dqctm860 */ self.comparetotmag128("1000", "sNaN", -1, .toNearestOrEven)
+ /* dqctm861 */ self.comparetotmag128("Inf", "sNaN", -1, .toNearestOrEven)
+ /* dqctm862 */ self.comparetotmag128("NaN", "sNaN", 1, .toNearestOrEven)
+ /* dqctm863 */ self.comparetotmag128("sNaN", "sNaN", 0, .toNearestOrEven)
+ /* dqctm871 */ self.comparetotmag128("-sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* dqctm872 */ self.comparetotmag128("-sNaN", "-NaN", -1, .toNearestOrEven)
+ /* dqctm873 */ self.comparetotmag128("-sNaN", "-Inf", 1, .toNearestOrEven)
+ /* dqctm874 */ self.comparetotmag128("-sNaN", "-1000", 1, .toNearestOrEven)
+ /* dqctm875 */ self.comparetotmag128("-sNaN", "-1", 1, .toNearestOrEven)
+ /* dqctm876 */ self.comparetotmag128("-sNaN", "-0", 1, .toNearestOrEven)
+ /* dqctm877 */ self.comparetotmag128("-sNaN", "0", 1, .toNearestOrEven)
+ /* dqctm878 */ self.comparetotmag128("-sNaN", "1", 1, .toNearestOrEven)
+ /* dqctm879 */ self.comparetotmag128("-sNaN", "1000", 1, .toNearestOrEven)
+ /* dqctm880 */ self.comparetotmag128("-sNaN", "NaN", -1, .toNearestOrEven)
+ /* dqctm881 */ self.comparetotmag128("-sNaN", "sNaN", 0, .toNearestOrEven)
+ /* dqctm882 */ self.comparetotmag128("-sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* dqctm883 */ self.comparetotmag128("-NaN", "-sNaN", 1, .toNearestOrEven)
+ /* dqctm884 */ self.comparetotmag128("-Inf", "-sNaN", -1, .toNearestOrEven)
+ /* dqctm885 */ self.comparetotmag128("-1000", "-sNaN", -1, .toNearestOrEven)
+ /* dqctm886 */ self.comparetotmag128("-1", "-sNaN", -1, .toNearestOrEven)
+ /* dqctm887 */ self.comparetotmag128("-0", "-sNaN", -1, .toNearestOrEven)
+ /* dqctm888 */ self.comparetotmag128("0", "-sNaN", -1, .toNearestOrEven)
+ /* dqctm889 */ self.comparetotmag128("1", "-sNaN", -1, .toNearestOrEven)
+ /* dqctm890 */ self.comparetotmag128("1000", "-sNaN", -1, .toNearestOrEven)
+ /* dqctm891 */ self.comparetotmag128("Inf", "-sNaN", -1, .toNearestOrEven)
+ /* dqctm892 */ self.comparetotmag128("NaN", "-sNaN", 1, .toNearestOrEven)
+ /* dqctm893 */ self.comparetotmag128("sNaN", "-sNaN", 0, .toNearestOrEven)
+ /* dqctm960 */ self.comparetotmag128("NaN(0x9)", "-Inf", 1, .toNearestOrEven)
+ /* dqctm961 */ self.comparetotmag128("NaN(0x8)", "999", 1, .toNearestOrEven)
+ /* dqctm962 */ self.comparetotmag128("NaN(0x4d)", "Inf", 1, .toNearestOrEven)
+ /* dqctm963 */ self.comparetotmag128("-NaN(0x43)", "NaN(0x5)", 1, .toNearestOrEven)
+ /* dqctm964 */ self.comparetotmag128("-Inf", "-NaN(0x4)", -1, .toNearestOrEven)
+ /* dqctm965 */ self.comparetotmag128("-999", "-NaN(0x21)", -1, .toNearestOrEven)
+ /* dqctm966 */ self.comparetotmag128("Inf", "NaN(0x2)", -1, .toNearestOrEven)
+ /* dqctm970 */ self.comparetotmag128("-NaN(0x29)", "-NaN(0x2a)", -1, .toNearestOrEven)
+ /* dqctm971 */ self.comparetotmag128("+NaN(0x29)", "-NaN(0x2a)", -1, .toNearestOrEven)
+ /* dqctm972 */ self.comparetotmag128("-NaN(0x29)", "+NaN(0x2a)", -1, .toNearestOrEven)
+ /* dqctm973 */ self.comparetotmag128("+NaN(0x29)", "+NaN(0x2a)", -1, .toNearestOrEven)
+ /* dqctm974 */ self.comparetotmag128("-NaN(0x2a)", "-NaN(0x1)", 1, .toNearestOrEven)
+ /* dqctm975 */ self.comparetotmag128("+NaN(0x2a)", "-NaN(0x1)", 1, .toNearestOrEven)
+ /* dqctm976 */ self.comparetotmag128("-NaN(0x2a)", "+NaN(0x1)", 1, .toNearestOrEven)
+ /* dqctm977 */ self.comparetotmag128("+NaN(0x2a)", "+NaN(0x1)", 1, .toNearestOrEven)
+ /* dqctm980 */ self.comparetotmag128("-sNaN(0x303)", "-sNaN(0x304)", -1, .toNearestOrEven)
+ /* dqctm981 */ self.comparetotmag128("+sNaN(0x303)", "-sNaN(0x304)", -1, .toNearestOrEven)
+ /* dqctm982 */ self.comparetotmag128("-sNaN(0x303)", "+sNaN(0x304)", -1, .toNearestOrEven)
+ /* dqctm983 */ self.comparetotmag128("+sNaN(0x303)", "+sNaN(0x304)", -1, .toNearestOrEven)
+ /* dqctm984 */ self.comparetotmag128("-sNaN(0x304)", "-sNaN(0x303)", 1, .toNearestOrEven)
+ /* dqctm985 */ self.comparetotmag128("+sNaN(0x304)", "-sNaN(0x303)", 1, .toNearestOrEven)
+ /* dqctm986 */ self.comparetotmag128("-sNaN(0x304)", "+sNaN(0x303)", 1, .toNearestOrEven)
+ /* dqctm987 */ self.comparetotmag128("+sNaN(0x304)", "+sNaN(0x303)", 1, .toNearestOrEven)
+ /* dqctm991 */ self.comparetotmag128("-sNaN(0x63)", "-Inf", 1, .toNearestOrEven)
+ /* dqctm992 */ self.comparetotmag128("sNaN(0x62)", "-11", 1, .toNearestOrEven)
+ /* dqctm993 */ self.comparetotmag128("sNaN(0x61)", "NaN", -1, .toNearestOrEven)
+ /* dqctm994 */ self.comparetotmag128("sNaN(0x10)", "sNaN(0x5e)", -1, .toNearestOrEven)
+ /* dqctm995 */ self.comparetotmag128("NaN(0x55)", "sNaN(0x53)", 1, .toNearestOrEven)
+ /* dqctm996 */ self.comparetotmag128("-Inf", "sNaN(0x5c)", -1, .toNearestOrEven)
+ /* dqctm997 */ self.comparetotmag128("088", "sNaN(0x51)", -1, .toNearestOrEven)
+ /* dqctm998 */ self.comparetotmag128("Inf", "sNaN(0x5a)", -1, .toNearestOrEven)
+ /* dqctm999 */ self.comparetotmag128("NaN", "-sNaN(0x59)", 1, .toNearestOrEven)
+ }
+
+ private func comparetotmag128(
+ _ _arg0: String,
+ _ _arg1: String,
+ _ expected: Int,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let arg1 = self.parseDecimal128(_arg1, file, line) else { return }
+
+ let result = self.totalOrderMagnitude(arg0, arg1)
+ self.assertInt(result, expected, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - generated/SpeleotroveUnaryTests.swift b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveUnaryTests.swift
new file mode 100644
index 0000000..3daef80
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - generated/SpeleotroveUnaryTests.swift
@@ -0,0 +1,262 @@
+// =============================================================================
+// Automatically generated. DO NOT EDIT!
+// To regenerate: make gen
+// =============================================================================
+
+import XCTest
+@testable import Decimal
+
+class SpeleotroveUnaryTests: XCTestCase, SpeleotroveMixin {
+
+ // MARK: - Minus
+
+ func test_minus64() {
+ /* ddmns001 */ self.minus64("+7.50", "-7.50", .toNearestOrEven)
+ /* ddmns011 */ self.minus64("Infinity", "-Infinity", .toNearestOrEven)
+ /* ddmns012 */ self.minus64("-Infinity", "Infinity", .toNearestOrEven)
+ /* ddmns021 */ self.minus64("NaN", "NaN", .toNearestOrEven)
+ /* ddmns022 */ self.minus64("-NaN", "-NaN", .toNearestOrEven)
+ /* ddmns023 */ self.minus64("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmns024 */ self.minus64("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddmns031 */ self.minus64("NaN(0xd)", "NaN(0xd)", .toNearestOrEven)
+ /* ddmns032 */ self.minus64("-NaN(0xd)", "-NaN(0xd)", .toNearestOrEven)
+ /* ddmns033 */ self.minus64("sNaN(0xd)", "NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmns034 */ self.minus64("-sNaN(0xd)", "-NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmns035 */ self.minus64("NaN(0x46)", "NaN(0x46)", .toNearestOrEven)
+ /* ddmns036 */ self.minus64("-NaN(0x46)", "-NaN(0x46)", .toNearestOrEven)
+ /* ddmns037 */ self.minus64("sNaN(0x65)", "NaN(0x65)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmns038 */ self.minus64("-sNaN(0x65)", "-NaN(0x65)", .toNearestOrEven, .isInvalidOperation)
+ /* ddmns101 */ self.minus64("7", "-7", .toNearestOrEven)
+ /* ddmns102 */ self.minus64("-7", "7", .toNearestOrEven)
+ /* ddmns103 */ self.minus64("75", "-75", .toNearestOrEven)
+ /* ddmns104 */ self.minus64("-75", "75", .toNearestOrEven)
+ /* ddmns105 */ self.minus64("7.50", "-7.50", .toNearestOrEven)
+ /* ddmns106 */ self.minus64("-7.50", "7.50", .toNearestOrEven)
+ /* ddmns107 */ self.minus64("7.500", "-7.500", .toNearestOrEven)
+ /* ddmns108 */ self.minus64("-7.500", "7.500", .toNearestOrEven)
+ /* ddmns111 */ self.minus64("0", "0", .toNearestOrEven)
+ /* ddmns112 */ self.minus64("-0", "0", .toNearestOrEven)
+ /* ddmns113 */ self.minus64("0E+4", "0E+4", .toNearestOrEven)
+ /* ddmns114 */ self.minus64("-0E+4", "0E+4", .toNearestOrEven)
+ /* ddmns115 */ self.minus64("0.0000", "0.0000", .toNearestOrEven)
+ /* ddmns116 */ self.minus64("-0.0000", "0.0000", .toNearestOrEven)
+ /* ddmns117 */ self.minus64("0E-141", "0E-141", .toNearestOrEven)
+ /* ddmns118 */ self.minus64("-0E-141", "0E-141", .toNearestOrEven)
+ /* ddmns121 */ self.minus64("2682682682682682", "-2682682682682682", .toNearestOrEven)
+ /* ddmns122 */ self.minus64("-2682682682682682", "2682682682682682", .toNearestOrEven)
+ /* ddmns123 */ self.minus64("1341341341341341", "-1341341341341341", .toNearestOrEven)
+ /* ddmns124 */ self.minus64("-1341341341341341", "1341341341341341", .toNearestOrEven)
+ /* ddmns131 */ self.minus64("9.999999999999999E+384", "-9.999999999999999E+384", .toNearestOrEven)
+ /* ddmns132 */ self.minus64("1E-383", "-1E-383", .toNearestOrEven)
+ /* ddmns133 */ self.minus64("1.000000000000000E-383", "-1.000000000000000E-383", .toNearestOrEven)
+ /* ddmns134 */ self.minus64("1E-398", "-1E-398", .toNearestOrEven)
+ /* ddmns135 */ self.minus64("-1E-398", "1E-398", .toNearestOrEven)
+ /* ddmns136 */ self.minus64("-1.000000000000000E-383", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddmns137 */ self.minus64("-1E-383", "1E-383", .toNearestOrEven)
+ /* ddmns138 */ self.minus64("-9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ }
+
+ private func minus64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = -arg0
+ let speleotroveResult = self.toSpeleotrove_unaryMinus(arg0, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ }
+
+ func test_minus128() {
+ /* dqmns001 */ self.minus128("+7.50", "-7.50", .toNearestOrEven)
+ /* dqmns011 */ self.minus128("Infinity", "-Infinity", .toNearestOrEven)
+ /* dqmns012 */ self.minus128("-Infinity", "Infinity", .toNearestOrEven)
+ /* dqmns021 */ self.minus128("NaN", "NaN", .toNearestOrEven)
+ /* dqmns022 */ self.minus128("-NaN", "-NaN", .toNearestOrEven)
+ /* dqmns023 */ self.minus128("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmns024 */ self.minus128("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* dqmns031 */ self.minus128("NaN(0xd)", "NaN(0xd)", .toNearestOrEven)
+ /* dqmns032 */ self.minus128("-NaN(0xd)", "-NaN(0xd)", .toNearestOrEven)
+ /* dqmns033 */ self.minus128("sNaN(0xd)", "NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmns034 */ self.minus128("-sNaN(0xd)", "-NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmns035 */ self.minus128("NaN(0x46)", "NaN(0x46)", .toNearestOrEven)
+ /* dqmns036 */ self.minus128("-NaN(0x46)", "-NaN(0x46)", .toNearestOrEven)
+ /* dqmns037 */ self.minus128("sNaN(0x65)", "NaN(0x65)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmns038 */ self.minus128("-sNaN(0x65)", "-NaN(0x65)", .toNearestOrEven, .isInvalidOperation)
+ /* dqmns101 */ self.minus128("7", "-7", .toNearestOrEven)
+ /* dqmns102 */ self.minus128("-7", "7", .toNearestOrEven)
+ /* dqmns103 */ self.minus128("75", "-75", .toNearestOrEven)
+ /* dqmns104 */ self.minus128("-75", "75", .toNearestOrEven)
+ /* dqmns105 */ self.minus128("7.50", "-7.50", .toNearestOrEven)
+ /* dqmns106 */ self.minus128("-7.50", "7.50", .toNearestOrEven)
+ /* dqmns107 */ self.minus128("7.500", "-7.500", .toNearestOrEven)
+ /* dqmns108 */ self.minus128("-7.500", "7.500", .toNearestOrEven)
+ /* dqmns111 */ self.minus128("0", "0", .toNearestOrEven)
+ /* dqmns112 */ self.minus128("-0", "0", .toNearestOrEven)
+ /* dqmns113 */ self.minus128("0E+4", "0E+4", .toNearestOrEven)
+ /* dqmns114 */ self.minus128("-0E+4", "0E+4", .toNearestOrEven)
+ /* dqmns115 */ self.minus128("0.0000", "0.0000", .toNearestOrEven)
+ /* dqmns116 */ self.minus128("-0.0000", "0.0000", .toNearestOrEven)
+ /* dqmns117 */ self.minus128("0E-141", "0E-141", .toNearestOrEven)
+ /* dqmns118 */ self.minus128("-0E-141", "0E-141", .toNearestOrEven)
+ /* dqmns121 */ self.minus128("2682682682682682682682682682682682", "-2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqmns122 */ self.minus128("-2682682682682682682682682682682682", "2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqmns123 */ self.minus128("1341341341341341341341341341341341", "-1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqmns124 */ self.minus128("-1341341341341341341341341341341341", "1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqmns131 */ self.minus128("9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqmns132 */ self.minus128("1E-6143", "-1E-6143", .toNearestOrEven)
+ /* dqmns133 */ self.minus128("1.000000000000000000000000000000000E-6143", "-1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqmns134 */ self.minus128("1E-6176", "-1E-6176", .toNearestOrEven)
+ /* dqmns135 */ self.minus128("-1E-6176", "1E-6176", .toNearestOrEven)
+ /* dqmns136 */ self.minus128("-1.000000000000000000000000000000000E-6143", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqmns137 */ self.minus128("-1E-6143", "1E-6143", .toNearestOrEven)
+ /* dqmns138 */ self.minus128("-9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ }
+
+ private func minus128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = -arg0
+ let speleotroveResult = self.toSpeleotrove_unaryMinus(arg0, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ }
+
+ // MARK: - Plus
+
+ func test_plus64() {
+ /* ddpls001 */ self.plus64("+7.50", "7.50", .toNearestOrEven)
+ /* ddpls011 */ self.plus64("Infinity", "Infinity", .toNearestOrEven)
+ /* ddpls012 */ self.plus64("-Infinity", "-Infinity", .toNearestOrEven)
+ /* ddpls021 */ self.plus64("NaN", "NaN", .toNearestOrEven)
+ /* ddpls022 */ self.plus64("-NaN", "-NaN", .toNearestOrEven)
+ /* ddpls023 */ self.plus64("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddpls024 */ self.plus64("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddpls031 */ self.plus64("NaN(0xd)", "NaN(0xd)", .toNearestOrEven)
+ /* ddpls032 */ self.plus64("-NaN(0xd)", "-NaN(0xd)", .toNearestOrEven)
+ /* ddpls033 */ self.plus64("sNaN(0xd)", "NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* ddpls034 */ self.plus64("-sNaN(0xd)", "-NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* ddpls035 */ self.plus64("NaN(0x46)", "NaN(0x46)", .toNearestOrEven)
+ /* ddpls036 */ self.plus64("-NaN(0x46)", "-NaN(0x46)", .toNearestOrEven)
+ /* ddpls037 */ self.plus64("sNaN(0x65)", "NaN(0x65)", .toNearestOrEven, .isInvalidOperation)
+ /* ddpls038 */ self.plus64("-sNaN(0x65)", "-NaN(0x65)", .toNearestOrEven, .isInvalidOperation)
+ /* ddpls101 */ self.plus64("7", "7", .toNearestOrEven)
+ /* ddpls102 */ self.plus64("-7", "-7", .toNearestOrEven)
+ /* ddpls103 */ self.plus64("75", "75", .toNearestOrEven)
+ /* ddpls104 */ self.plus64("-75", "-75", .toNearestOrEven)
+ /* ddpls105 */ self.plus64("7.50", "7.50", .toNearestOrEven)
+ /* ddpls106 */ self.plus64("-7.50", "-7.50", .toNearestOrEven)
+ /* ddpls107 */ self.plus64("7.500", "7.500", .toNearestOrEven)
+ /* ddpls108 */ self.plus64("-7.500", "-7.500", .toNearestOrEven)
+ /* ddpls111 */ self.plus64("0", "0", .toNearestOrEven)
+ /* ddpls112 */ self.plus64("-0", "0", .toNearestOrEven)
+ /* ddpls113 */ self.plus64("0E+4", "0E+4", .toNearestOrEven)
+ /* ddpls114 */ self.plus64("-0E+4", "0E+4", .toNearestOrEven)
+ /* ddpls115 */ self.plus64("0.0000", "0.0000", .toNearestOrEven)
+ /* ddpls116 */ self.plus64("-0.0000", "0.0000", .toNearestOrEven)
+ /* ddpls117 */ self.plus64("0E-141", "0E-141", .toNearestOrEven)
+ /* ddpls118 */ self.plus64("-0E-141", "0E-141", .toNearestOrEven)
+ /* ddpls121 */ self.plus64("2682682682682682", "2682682682682682", .toNearestOrEven)
+ /* ddpls122 */ self.plus64("-2682682682682682", "-2682682682682682", .toNearestOrEven)
+ /* ddpls123 */ self.plus64("1341341341341341", "1341341341341341", .toNearestOrEven)
+ /* ddpls124 */ self.plus64("-1341341341341341", "-1341341341341341", .toNearestOrEven)
+ /* ddpls131 */ self.plus64("9.999999999999999E+384", "9.999999999999999E+384", .toNearestOrEven)
+ /* ddpls132 */ self.plus64("1E-383", "1E-383", .toNearestOrEven)
+ /* ddpls133 */ self.plus64("1.000000000000000E-383", "1.000000000000000E-383", .toNearestOrEven)
+ /* ddpls134 */ self.plus64("1E-398", "1E-398", .toNearestOrEven)
+ /* ddpls135 */ self.plus64("-1E-398", "-1E-398", .toNearestOrEven)
+ /* ddpls136 */ self.plus64("-1.000000000000000E-383", "-1.000000000000000E-383", .toNearestOrEven)
+ /* ddpls137 */ self.plus64("-1E-383", "-1E-383", .toNearestOrEven)
+ /* ddpls138 */ self.plus64("-9.999999999999999E+384", "-9.999999999999999E+384", .toNearestOrEven)
+ }
+
+ private func plus64(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal64(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal64(_expected, file, line) else { return }
+
+ let result = +arg0
+ let speleotroveResult = self.toSpeleotrove_unaryPlus(arg0, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ }
+
+ func test_plus128() {
+ /* ddqls021 */ self.plus128("NaN", "NaN", .toNearestOrEven)
+ /* ddqls022 */ self.plus128("-NaN", "-NaN", .toNearestOrEven)
+ /* ddqls023 */ self.plus128("sNaN", "NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddqls024 */ self.plus128("-sNaN", "-NaN", .toNearestOrEven, .isInvalidOperation)
+ /* ddqls031 */ self.plus128("NaN(0xd)", "NaN(0xd)", .toNearestOrEven)
+ /* ddqls032 */ self.plus128("-NaN(0xd)", "-NaN(0xd)", .toNearestOrEven)
+ /* ddqls033 */ self.plus128("sNaN(0xd)", "NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* ddqls034 */ self.plus128("-sNaN(0xd)", "-NaN(0xd)", .toNearestOrEven, .isInvalidOperation)
+ /* ddqls035 */ self.plus128("NaN(0x46)", "NaN(0x46)", .toNearestOrEven)
+ /* ddqls036 */ self.plus128("-NaN(0x46)", "-NaN(0x46)", .toNearestOrEven)
+ /* ddqls037 */ self.plus128("sNaN(0x65)", "NaN(0x65)", .toNearestOrEven, .isInvalidOperation)
+ /* ddqls038 */ self.plus128("-sNaN(0x65)", "-NaN(0x65)", .toNearestOrEven, .isInvalidOperation)
+ /* dqpls001 */ self.plus128("+7.50", "7.50", .toNearestOrEven)
+ /* dqpls011 */ self.plus128("Infinity", "Infinity", .toNearestOrEven)
+ /* dqpls012 */ self.plus128("-Infinity", "-Infinity", .toNearestOrEven)
+ /* dqpls101 */ self.plus128("7", "7", .toNearestOrEven)
+ /* dqpls102 */ self.plus128("-7", "-7", .toNearestOrEven)
+ /* dqpls103 */ self.plus128("75", "75", .toNearestOrEven)
+ /* dqpls104 */ self.plus128("-75", "-75", .toNearestOrEven)
+ /* dqpls105 */ self.plus128("7.50", "7.50", .toNearestOrEven)
+ /* dqpls106 */ self.plus128("-7.50", "-7.50", .toNearestOrEven)
+ /* dqpls107 */ self.plus128("7.500", "7.500", .toNearestOrEven)
+ /* dqpls108 */ self.plus128("-7.500", "-7.500", .toNearestOrEven)
+ /* dqpls111 */ self.plus128("0", "0", .toNearestOrEven)
+ /* dqpls112 */ self.plus128("-0", "0", .toNearestOrEven)
+ /* dqpls113 */ self.plus128("0E+4", "0E+4", .toNearestOrEven)
+ /* dqpls114 */ self.plus128("-0E+4", "0E+4", .toNearestOrEven)
+ /* dqpls115 */ self.plus128("0.0000", "0.0000", .toNearestOrEven)
+ /* dqpls116 */ self.plus128("-0.0000", "0.0000", .toNearestOrEven)
+ /* dqpls117 */ self.plus128("0E-141", "0E-141", .toNearestOrEven)
+ /* dqpls118 */ self.plus128("-0E-141", "0E-141", .toNearestOrEven)
+ /* dqpls121 */ self.plus128("2682682682682682682682682682682682", "2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqpls122 */ self.plus128("-2682682682682682682682682682682682", "-2682682682682682682682682682682682", .toNearestOrEven)
+ /* dqpls123 */ self.plus128("1341341341341341341341341341341341", "1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqpls124 */ self.plus128("-1341341341341341341341341341341341", "-1341341341341341341341341341341341", .toNearestOrEven)
+ /* dqpls131 */ self.plus128("9.999999999999999999999999999999999E+6144", "9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ /* dqpls132 */ self.plus128("1E-6143", "1E-6143", .toNearestOrEven)
+ /* dqpls133 */ self.plus128("1.000000000000000000000000000000000E-6143", "1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqpls134 */ self.plus128("1E-6176", "1E-6176", .toNearestOrEven)
+ /* dqpls135 */ self.plus128("-1E-6176", "-1E-6176", .toNearestOrEven)
+ /* dqpls136 */ self.plus128("-1.000000000000000000000000000000000E-6143", "-1.000000000000000000000000000000000E-6143", .toNearestOrEven)
+ /* dqpls137 */ self.plus128("-1E-6143", "-1E-6143", .toNearestOrEven)
+ /* dqpls138 */ self.plus128("-9.999999999999999999999999999999999E+6144", "-9.999999999999999999999999999999999E+6144", .toNearestOrEven)
+ }
+
+ private func plus128(
+ _ _arg0: String,
+ _ _expected: String,
+ _ rounding: DecimalFloatingPointRoundingRule,
+ _ _expectedStatus: DecimalStatus? = nil,
+ file: StaticString = #file,
+ line: UInt = #line
+ ) {
+ guard let arg0 = self.parseDecimal128(_arg0, file, line) else { return }
+ guard let expected = self.parseDecimal128(_expected, file, line) else { return }
+
+ let result = +arg0
+ let speleotroveResult = self.toSpeleotrove_unaryPlus(arg0, result: result)
+ self.assertEqual(speleotroveResult, expected, file, line)
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+Assert.swift b/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+Assert.swift
new file mode 100644
index 0000000..48f7c82
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+Assert.swift
@@ -0,0 +1,201 @@
+import XCTest
+@testable import Decimal
+
+extension SpeleotroveMixin {
+
+ /// Bid equality.
+ /// This is what you should use most of the time.
+ func assertEqual(
+ _ lhs: T,
+ _ rhs: T,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String? = nil
+ ) {
+ let m = self.createMessage("\(lhs) == \(rhs)", message)
+ XCTAssertEqual(lhs.bid, rhs.bid, m, file: file, line: line)
+ }
+
+ /// Equal via `==`.
+ func assertEqualByEqualEqual(
+ _ lhs: T,
+ _ rhs: T,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String? = nil
+ ) {
+ if lhs.isNaN || rhs.isNaN {
+ let m = self.createMessage("\(lhs) == \(rhs)", message)
+ XCTAssertEqual(lhs.bid, rhs.bid, m, file: file, line: line)
+ } else {
+ let m = self.createMessage(message)
+ XCTAssertEqual(lhs, rhs, m, file: file, line: line)
+ }
+ }
+
+ func assertCompare(
+ _ lhs: T,
+ _ rhs: T,
+ status: inout DecimalStatus,
+ expected: String,
+ expectedStatus: DecimalStatus,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ var expected = expected
+
+ if expected != "-1" && expected != "0" && expected != "1" {
+ var s = DecimalStatus()
+
+ guard let e: T = self.parseDecimal(expected, status: &s, file, line) else {
+ return
+ }
+
+ if e == T.zero {
+ expected = "0"
+ } else if e == T._one {
+ expected = "1"
+ } else if e == T._minusOne {
+ expected = "-1"
+ } else {
+ assert(e.isNaN, "Compare result can be -1, 0, 1 or NaN. Got: \(e).")
+ }
+ }
+
+ let expectedEqual = expected == "0"
+ let expectedLess = expected == "-1"
+ let expectedGreater = expected == "1"
+
+ let isEqual = lhs.isEqual(to: rhs, status: &status)
+ self.assertBool(isEqual, expectedEqual, file, line, "isEqual")
+ self.assertStatus(status, expectedStatus, file, line, "isEqual")
+ status.clearAll()
+
+ let isLess = lhs.isLess(than: rhs, status: &status)
+ self.assertBool(isLess, expectedLess, file, line, "isLess")
+ self.assertStatus(status, expectedStatus, file, line, "isLess")
+ status.clearAll()
+
+ let isLessEqual = lhs.isLessThanOrEqualTo(rhs, status: &status)
+ let expectedLessEqual = expectedEqual || expectedLess
+ self.assertBool(isLessEqual, expectedLessEqual, file, line, "isLessEqual")
+ self.assertStatus(status, expectedStatus, file, line, "isLessEqual")
+ status.clearAll()
+
+ let isGreater = rhs.isLess(than: lhs, status: &status)
+ self.assertBool(isGreater, expectedGreater, file, line, "isGreater")
+ self.assertStatus(status, expectedStatus, file, line, "isGreater")
+ status.clearAll()
+
+ let isGreaterEqual = rhs.isLessThanOrEqualTo(lhs, status: &status)
+ let expectedGreaterEqual = expectedEqual || expectedGreater
+ self.assertBool(isGreaterEqual, expectedGreaterEqual, file, line, "isGreaterEqual")
+ self.assertStatus(status, expectedStatus, file, line, "isGreaterEqual")
+ status.clearAll()
+ }
+
+ // https://speleotrove.com/decimal/daops.html#refnumcosi
+ // We do not have this operation, but we want those tests.
+ // Use only the public api!
+ func assertCompareSignaling(
+ _ lhs: T,
+ _ rhs: T,
+ status: inout DecimalStatus,
+ expected: String,
+ expectedStatus: DecimalStatus,
+ _ file: StaticString,
+ _ line: UInt
+ ) {
+ // compare-signal takes two operands and compares their values numerically.
+ // This operation is identical to compare, except that if neither operand is
+ // a signaling NaN then any quiet NaN operand is treated as though it were
+ // a signaling NaN.
+ // (That is, all NaNs signal, with signaling NaNs taking precedence over quiet NaNs.)
+ func addSignalingBit(_ d: T) -> T {
+ if d.isQuietNaN {
+ return T(unchecked: d.bid | T.nanSignalingMask)
+ }
+ return d
+ }
+
+ let lhs = addSignalingBit(lhs)
+ let rhs = addSignalingBit(rhs)
+
+ self.assertCompare(
+ lhs,
+ rhs,
+ status: &status,
+ expected: expected,
+ expectedStatus: expectedStatus,
+ file,
+ line
+ )
+ }
+
+ func assertStatus(
+ _ lhs: DecimalStatus,
+ _ rhs: DecimalStatus,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String? = nil
+ ) {
+ let m = self.createMessage(message)
+ XCTAssertEqual(lhs, rhs, m, file: file, line: line)
+ }
+
+ func assertInt(
+ _ lhs: Int,
+ _ rhs: Int,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String? = nil
+ ) {
+ let m = self.createMessage(message)
+ XCTAssertEqual(lhs, rhs, m, file: file, line: line)
+ }
+
+ func assertTrue(
+ _ value: Bool,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String? = nil
+ ) {
+ let m = self.createMessage(message)
+ XCTAssert(value, m, file: file, line: line)
+ }
+
+ func assertFalse(
+ _ value: Bool,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String? = nil
+ ) {
+ let m = self.createMessage(message)
+ XCTAssertFalse(value, m, file: file, line: line)
+ }
+
+ func assertBool(
+ _ lhs: Bool,
+ _ rhs: Bool,
+ _ file: StaticString,
+ _ line: UInt,
+ _ message: String? = nil
+ ) {
+ let m = self.createMessage(message)
+ XCTAssertEqual(lhs, rhs, m, file: file, line: line)
+ }
+
+ // MARK: - Helpers
+
+ private func createMessage(_ optional: String?) -> String {
+ return optional ?? ""
+ }
+
+ private func createMessage(_ s: String, _ optional: String?) -> String {
+ if let o = optional {
+ return s + ": " + o
+ }
+
+ return s
+ }
+}
diff --git a/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+ConvertToSpeleotrove.swift b/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+ConvertToSpeleotrove.swift
new file mode 100644
index 0000000..665f72e
--- /dev/null
+++ b/Tests/DecimalTests/Speleotrove - helpers/SpeleotroveMixin+ConvertToSpeleotrove.swift
@@ -0,0 +1,316 @@
+import XCTest
+@testable import Decimal
+
+// Sometimes Swift and Speleotrove have different semantic for a given operation.
+// This code converts Swift result to Speleotrove result.
+extension SpeleotroveMixin {
+
+ // MARK: - Properties
+
+ func toSpeleotrove_magnitude(
+ _ arg0: T,
+ result: T
+ ) -> T {
+ // Speleotrove: snan -> nan with the same sign + invalid operation
+ // Swift: -snan -> snan
+ if arg0.isSignalingNaN && result.sign == .plus && result.isSignalingNaN {
+ return self.removeSignalingBit(arg0)
+ }
+
+ // Speleotrove: -nan -> -nan + invalid operation
+ // Swift: -nan -> nan
+ if arg0.sign == .minus && arg0.isQuietNaN && result.sign == .plus && result.isQuietNaN {
+ return self.removeSignalingBit(arg0)
+ }
+
+ return result
+ }
+
+ // MARK: - Unary
+
+ func toSpeleotrove_unaryPlus(
+ _ arg0: T,
+ result: T
+ ) -> T {
+ if result._isSignalingNaN {
+ return self.removeSignalingBit(result)
+ }
+
+ // +(-0) -> +0
+ if arg0.sign == .minus && arg0.isZero && result.sign == .minus && result.isZero {
+ return result._magnitude
+ }
+
+ return result
+ }
+
+ func toSpeleotrove_unaryMinus(
+ _ arg0: T,
+ result: T
+ ) -> T {
+ if result.isNaN && arg0.sign != result.sign {
+ if result.isSignalingNaN {
+ return self.removeSignalingBit(arg0)
+ }
+
+ return arg0
+ }
+
+ // -(0) = 0
+ if arg0.sign == .plus && arg0.isZero && result.sign == .minus && result.isZero {
+ return result._magnitude
+ }
+
+ return result
+ }
+
+ // MARK: - Math
+
+ func toSpeleotrove_add(
+ _ arg0: T,
+ _ arg1: T,
+ result: T
+ ) -> T {
+ // NaN(…) + SNaN(payload) = NaN(payload)
+ if let d = self.nan_op_snan_is_snan(arg0, arg1, result: result) {
+ return d
+ }
+
+ return result
+ }
+
+ func toSpeleotrove_sub(
+ _ arg0: T,
+ _ arg1: T,
+ result: T
+ ) -> T {
+ // NaN(…) - SNaN(payload) = NaN(payload)
+ if let d = self.nan_op_snan_is_snan(arg0, arg1, result: result) {
+ return d
+ }
+
+ return result
+ }
+
+ func toSpeleotrove_mul(
+ _ arg0: T,
+ _ arg1: T,
+ result: T
+ ) -> T {
+ // NaN(…) * SNaN(payload) = NaN(payload)
+ if let d = self.nan_op_snan_is_snan(arg0, arg1, result: result) {
+ return d
+ }
+
+ return result
+ }
+
+ func toSpeleotrove_div